diff --git a/BRIDGES.md b/BRIDGES.md deleted file mode 100644 index a6f00aec09283e10d1a697bcef3f523881941663..0000000000000000000000000000000000000000 --- a/BRIDGES.md +++ /dev/null @@ -1,91 +0,0 @@ -# Using Parity Bridges Common dependency (`git subtree`) - -In `./bridges` sub-directory you can find a `git subtree` imported version of: -[`parity-bridges-common`](https://github.com/paritytech/parity-bridges-common/) repository. - -(For regular Cumulus contributor 1. is relevant) \ -(For Cumulus maintainer 1. and 2. are relevant) \ -(For Bridges team 1. and 2. and 3. are relevant) - -## How to fix broken Bridges code? - -To fix Bridges code simply create a commit in current (`Cumulus`) repo. Best if -the commit is isolated to changes in `./bridges` sub-directory, because it makes -it easier to import that change back to upstream repo. - -(Any changes to `bridges` subtree require Bridges team approve and they should manage backport to Bridges repo) - - -## How to pull latest Bridges code to the `bridges` subtree -(in practice) - -The `bridges` repo has a stabilized branch `polkadot-staging` dedicated for releasing. - -``` -cd - -# this will update new git branches from bridges repo -# there could be unresolved conflicts, but don't worry, -# lots of them are caused because of removed unneeded files with patch step, -BRANCH=polkadot-staging ./scripts/bridges_update_subtree.sh fetch - -# so, after fetch and before solving conflicts just run patch, -# this will remove unneeded files and checks if subtree modules compiles -./scripts/bridges_update_subtree.sh patch - -# if there are conflicts, this could help, -# this removes locally deleted files at least (move changes to git stash for commit) -./scripts/bridges_update_subtree.sh merge - -# (optional) when conflicts resolved, you can check build again - should pass -# also important: this updates global Cargo.lock -./scripts/bridges_update_subtree.sh patch - -# add changes to the commit, first command `fetch` starts merge, -# so after all conflicts are solved and patch passes and compiles, -# then we need to finish merge with: -git merge --continue -``` - -## How to pull latest Bridges code or contribute back? -(in theory) - -Note that it's totally fine to ping the **Bridges Team** to do that for you. The point -of adding the code as `git subtree` is to **reduce maintenance cost** for Cumulus/Polkadot -developers. - -If you still would like to either update the code to match latest code from the repo -or create an upstream PR read below. The following commands should be run in the -current (`polkadot`) repo. - -### Add Bridges repo as a local remote -``` -git remote add -f bridges git@github.com:paritytech/parity-bridges-common.git -``` - -If you plan to contribute back, consider forking the repository on Github and adding -your personal fork as a remote as well. -``` -git remote add -f my-bridges git@github.com:tomusdrw/parity-bridges-common.git -``` - -### To update Bridges -``` -git fetch bridges polkadot-staging -git subtree pull --prefix=bridges bridges polkadot-staging --squash -``` - -We use `--squash` to avoid adding individual commits and rather squashing them -all into one. - -### Clean unneeded files here -``` -./bridges/scripts/verify-pallets-build.sh --ignore-git-state --no-revert -``` - -### Contributing back to Bridges (creating upstream PR) -``` -git subtree push --prefix=bridges my-bridges polkadot-staging -``` -This command will push changes to your personal fork of Bridges repo, from where -you can simply create a PR to the main repo. diff --git a/Cargo.lock b/Cargo.lock index 2fdb0ae0015505784710f16b77ffcbca4eebe8dd..18cf711a69af070f01c3fccea46902f71b4cb6c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -192,8 +192,8 @@ dependencies = [ "dunce", "heck 0.4.1", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", "syn-solidity", "tiny-keccak", @@ -319,8 +319,8 @@ dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -333,8 +333,8 @@ dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -530,7 +530,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" dependencies = [ - "quote", + "quote 1.0.35", "syn 1.0.109", ] @@ -540,7 +540,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" dependencies = [ - "quote", + "quote 1.0.35", "syn 1.0.109", ] @@ -552,7 +552,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ "num-bigint", "num-traits", - "quote", + "quote 1.0.35", "syn 1.0.109", ] @@ -564,8 +564,8 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", "num-traits", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -666,8 +666,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -760,8 +760,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", "synstructure", ] @@ -772,8 +772,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -1090,6 +1090,16 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote 1.0.35", + "syn 1.0.109", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -1127,6 +1137,21 @@ dependencies = [ "futures-lite", ] +[[package]] +name = "async-global-executor" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" +dependencies = [ + "async-channel", + "async-executor", + "async-io", + "async-lock 2.8.0", + "blocking", + "futures-lite", + "once_cell", +] + [[package]] name = "async-io" version = "1.13.0" @@ -1197,6 +1222,33 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "async-std" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +dependencies = [ + "async-attributes", + "async-channel", + "async-global-executor", + "async-io", + "async-lock 2.8.0", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite 0.2.12", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + [[package]] name = "async-stream" version = "0.3.5" @@ -1214,8 +1266,8 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -1231,8 +1283,8 @@ version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -1279,8 +1331,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" dependencies = [ "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -1290,6 +1342,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "getrandom 0.2.10", + "instant", + "rand 0.8.5", +] + [[package]] name = "backtrace" version = "0.3.69" @@ -1410,8 +1473,8 @@ dependencies = [ "lazycell", "peeking_take_while", "prettyplease 0.2.12", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "regex", "rustc-hash", "shlex", @@ -1632,6 +1695,23 @@ dependencies = [ "scale-info", ] +[[package]] +name = "bp-beefy" +version = "0.1.0" +dependencies = [ + "binary-merkle-tree", + "bp-runtime", + "frame-support", + "pallet-beefy-mmr", + "pallet-mmr", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-beefy", + "sp-runtime", + "sp-std 14.0.0", +] + [[package]] name = "bp-bridge-hub-cumulus" version = "0.7.0" @@ -2394,6 +2474,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +[[package]] +name = "castaway" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" + [[package]] name = "cc" version = "1.0.83" @@ -2595,6 +2681,21 @@ dependencies = [ "libloading", ] +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags 1.3.2", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width", + "vec_map", +] + [[package]] name = "clap" version = "3.2.25" @@ -2609,7 +2710,7 @@ dependencies = [ "once_cell", "strsim 0.10.0", "termcolor", - "textwrap", + "textwrap 0.16.0", ] [[package]] @@ -2661,8 +2762,8 @@ checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ "heck 0.4.1", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -2673,8 +2774,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" dependencies = [ "heck 0.5.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -2832,8 +2933,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b" dependencies = [ "nom", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -3443,16 +3544,6 @@ dependencies = [ "itertools 0.10.5", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.3" @@ -3927,8 +4018,8 @@ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" dependencies = [ "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -4421,6 +4512,37 @@ dependencies = [ "url", ] +[[package]] +name = "curl" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2 0.5.6", + "windows-sys 0.52.0", +] + +[[package]] +name = "curl-sys" +version = "0.4.72+curl-8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" +dependencies = [ + "cc", + "libc", + "libnghttp2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.52.0", +] + [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -4457,8 +4579,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -4496,8 +4618,8 @@ dependencies = [ "cc", "codespan-reporting", "once_cell", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "scratch", "syn 2.0.53", ] @@ -4514,8 +4636,8 @@ version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -4603,8 +4725,8 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -4614,8 +4736,8 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -4625,8 +4747,8 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -4637,8 +4759,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -4733,8 +4855,8 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -4793,8 +4915,8 @@ dependencies = [ "common-path", "derive-syn-parse 0.2.0", "once_cell", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "regex", "syn 2.0.53", "termcolor", @@ -4842,8 +4964,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -5025,8 +5147,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ "heck 0.4.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -5037,8 +5159,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" dependencies = [ "heck 0.4.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -5057,8 +5179,8 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -5068,8 +5190,8 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -5131,6 +5253,21 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "equivocation-detector" +version = "0.1.0" +dependencies = [ + "async-std", + "async-trait", + "bp-header-chain", + "finality-relay", + "frame-support", + "futures", + "log", + "num-traits", + "relay-utils", +] + [[package]] name = "erased-serde" version = "0.4.4" @@ -5256,8 +5393,8 @@ checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881" dependencies = [ "blake3", "fs-err", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", ] [[package]] @@ -5268,8 +5405,8 @@ checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" dependencies = [ "blake2 0.10.6", "fs-err", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -5340,8 +5477,8 @@ dependencies = [ "expander 0.0.4", "indexmap 1.9.3", "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", "thiserror", ] @@ -5440,6 +5577,21 @@ dependencies = [ "scale-info", ] +[[package]] +name = "finality-relay" +version = "0.1.0" +dependencies = [ + "async-std", + "async-trait", + "backoff", + "bp-header-chain", + "futures", + "log", + "num-traits", + "parking_lot 0.12.1", + "relay-utils", +] + [[package]] name = "findshlibs" version = "0.10.2" @@ -5641,8 +5793,8 @@ dependencies = [ "frame-support", "parity-scale-codec", "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "scale-info", "sp-arithmetic", "syn 2.0.53", @@ -5812,8 +5964,8 @@ dependencies = [ "itertools 0.10.5", "macro_magic", "proc-macro-warning", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "regex", "sp-crypto-hashing", "syn 2.0.53", @@ -5825,8 +5977,8 @@ version = "10.0.0" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -5834,8 +5986,8 @@ dependencies = [ name = "frame-support-procedural-tools-derive" version = "11.0.0" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -6067,8 +6219,8 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -6250,6 +6402,18 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "glutton-westend-runtime" version = "3.0.0" @@ -6417,6 +6581,15 @@ dependencies = [ "hashbrown 0.14.3", ] +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "heck" version = "0.4.1" @@ -6727,8 +6900,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -6747,8 +6920,8 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", ] [[package]] @@ -6885,6 +7058,33 @@ dependencies = [ "winapi", ] +[[package]] +name = "isahc" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" +dependencies = [ + "async-channel", + "castaway", + "crossbeam-utils", + "curl", + "curl-sys", + "encoding_rs", + "event-listener 2.5.3", + "futures-lite", + "http", + "log", + "mime", + "once_cell", + "polling", + "slab", + "sluice", + "tracing", + "tracing-futures", + "url", + "waker-fn", +] + [[package]] name = "itertools" version = "0.10.5" @@ -6933,6 +7133,17 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" +[[package]] +name = "jsonpath_lib" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f" +dependencies = [ + "log", + "serde", + "serde_json", +] + [[package]] name = "jsonrpsee" version = "0.22.2" @@ -7024,8 +7235,8 @@ checksum = "30ca066e73dd70294aebc5c2675d8ffae43be944af027c857ce0d4c51785f014" dependencies = [ "heck 0.4.1", "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -7244,6 +7455,15 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "kvdb" version = "0.13.0" @@ -7368,6 +7588,16 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +[[package]] +name = "libnghttp2-sys" +version = "0.1.9+1.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "libp2p" version = "0.51.4" @@ -7676,7 +7906,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ "heck 0.4.1", - "quote", + "quote 1.0.35", "syn 1.0.109", ] @@ -7831,6 +8061,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", + "libc", "pkg-config", "vcpkg", ] @@ -8069,7 +8300,7 @@ checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d" dependencies = [ "macro_magic_core", "macro_magic_macros", - "quote", + "quote 1.0.35", "syn 2.0.53", ] @@ -8082,8 +8313,8 @@ dependencies = [ "const-random", "derive-syn-parse 0.1.5", "macro_magic_core_macros", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -8093,8 +8324,8 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -8105,7 +8336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", - "quote", + "quote 1.0.35", "syn 2.0.53", ] @@ -8236,6 +8467,24 @@ dependencies = [ "zeroize", ] +[[package]] +name = "messages-relay" +version = "0.1.0" +dependencies = [ + "async-std", + "async-trait", + "bp-messages", + "env_logger 0.11.3", + "finality-relay", + "futures", + "hex", + "log", + "num-traits", + "parking_lot 0.12.1", + "relay-utils", + "sp-arithmetic", +] + [[package]] name = "mick-jaeger" version = "0.1.8" @@ -8417,8 +8666,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -8524,8 +8773,8 @@ checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", "synstructure", ] @@ -8549,8 +8798,8 @@ checksum = "d38685e08adb338659871ecfc6ee47ba9b22dcc8abcf6975d379cc49145c3040" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro-error", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", "synstructure", ] @@ -8597,8 +8846,8 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -8917,6 +9166,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -9024,6 +9282,15 @@ dependencies = [ "libc", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "number_prefix" version = "0.4.0" @@ -9105,8 +9372,8 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -9172,8 +9439,8 @@ dependencies = [ "itertools 0.11.0", "petgraph", "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -9571,6 +9838,30 @@ dependencies = [ "sp-std 14.0.0", ] +[[package]] +name = "pallet-bridge-beefy" +version = "0.1.0" +dependencies = [ + "bp-beefy", + "bp-runtime", + "bp-test-utils", + "ckb-merkle-mountain-range", + "frame-support", + "frame-system", + "log", + "pallet-beefy-mmr", + "pallet-mmr", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "serde", + "sp-consensus-beefy", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0", +] + [[package]] name = "pallet-bridge-grandpa" version = "0.7.0" @@ -9852,8 +10143,8 @@ dependencies = [ name = "pallet-contracts-proc-macro" version = "18.0.0" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -11093,8 +11384,8 @@ name = "pallet-staking-reward-curve" version = "11.0.0" dependencies = [ "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "sp-runtime", "syn 2.0.53", ] @@ -11644,6 +11935,21 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "parachains-relay" +version = "0.1.0" +dependencies = [ + "async-std", + "async-trait", + "bp-polkadot-core", + "futures", + "log", + "parity-scale-codec", + "relay-substrate-client", + "relay-utils", + "sp-core", +] + [[package]] name = "parachains-runtimes-test-utils" version = "7.0.0" @@ -11736,8 +12042,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -11771,7 +12077,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.75", "syn 1.0.109", "synstructure", ] @@ -12192,8 +12498,8 @@ checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" dependencies = [ "pest", "pest_meta", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -12233,8 +12539,8 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -14174,8 +14480,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" dependencies = [ "polkavm-common", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -14371,7 +14677,7 @@ version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.75", "syn 1.0.109", ] @@ -14381,7 +14687,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.75", "syn 2.0.53", ] @@ -14442,8 +14748,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", "version_check", ] @@ -14454,8 +14760,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "version_check", ] @@ -14471,11 +14777,20 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + [[package]] name = "proc-macro2" version = "1.0.75" @@ -14543,8 +14858,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -14630,8 +14945,8 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -14643,8 +14958,8 @@ checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", "itertools 0.11.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -14811,13 +15126,22 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + [[package]] name = "quote" version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.75", ] [[package]] @@ -14942,9 +15266,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.7.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -14952,14 +15276,32 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", +] + +[[package]] +name = "rbtag" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c64936fcc0b811890a9d90020f3df5cec9c604efde88af7db6a35d365132a3" +dependencies = [ + "rbtag_derive", +] + +[[package]] +name = "rbtag_derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b75511b710ccca8adbb211e04763bd8c78fed585b0ec188a20ed9b0dd95567c4" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", ] [[package]] @@ -15039,8 +15381,8 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -15125,6 +15467,72 @@ version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" +[[package]] +name = "relay-substrate-client" +version = "0.1.0" +dependencies = [ + "async-std", + "async-trait", + "bp-header-chain", + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "finality-relay", + "frame-support", + "frame-system", + "futures", + "jsonrpsee", + "log", + "num-traits", + "pallet-balances", + "pallet-bridge-messages", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "parity-scale-codec", + "rand 0.8.5", + "relay-utils", + "sc-chain-spec", + "sc-rpc-api", + "sc-transaction-pool-api", + "scale-info", + "sp-consensus-grandpa", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-std 14.0.0", + "sp-trie", + "sp-version", + "staging-xcm", + "thiserror", + "tokio", +] + +[[package]] +name = "relay-utils" +version = "0.1.0" +dependencies = [ + "ansi_term", + "anyhow", + "async-std", + "async-trait", + "backoff", + "bp-runtime", + "env_logger 0.11.3", + "futures", + "isahc", + "jsonpath_lib", + "log", + "num-traits", + "serde_json", + "sp-runtime", + "substrate-prometheus-endpoint", + "sysinfo", + "thiserror", + "time", + "tokio", +] + [[package]] name = "remote-ext-tests-bags-list" version = "1.0.0" @@ -15530,8 +15938,8 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" dependencies = [ "cfg-if", "glob", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "regex", "relative-path", "rustc_version 0.4.0", @@ -15990,8 +16398,8 @@ name = "sc-chain-spec-derive" version = "11.0.0" dependencies = [ "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -17282,8 +17690,8 @@ name = "sc-tracing-proc-macro" version = "11.0.0" dependencies = [ "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -17373,8 +17781,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -17405,8 +17813,8 @@ version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "serde_derive_internals", "syn 1.0.109", ] @@ -17699,8 +18107,8 @@ version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -17710,8 +18118,8 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -17730,6 +18138,7 @@ version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ + "indexmap 2.2.3", "itoa", "ryu", "serde", @@ -17799,8 +18208,8 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -18039,6 +18448,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "sluice" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" +dependencies = [ + "async-channel", + "futures-core", + "futures-io", +] + [[package]] name = "smallvec" version = "1.11.2" @@ -18654,8 +19074,8 @@ dependencies = [ "blake2 0.10.6", "expander 2.0.0", "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -19039,7 +19459,7 @@ dependencies = [ name = "sp-crypto-hashing-proc-macro" version = "0.1.0" dependencies = [ - "quote", + "quote 1.0.35", "sp-crypto-hashing", "syn 2.0.53", ] @@ -19057,8 +19477,8 @@ name = "sp-debug-derive" version = "8.0.0" source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -19066,8 +19486,8 @@ dependencies = [ name = "sp-debug-derive" version = "14.0.0" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -19336,8 +19756,8 @@ source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf5 dependencies = [ "Inflector", "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -19348,8 +19768,8 @@ dependencies = [ "Inflector", "expander 2.0.0", "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -19609,8 +20029,8 @@ name = "sp-version-proc-macro" version = "13.0.0" dependencies = [ "parity-scale-codec", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "sp-version", "syn 2.0.53", ] @@ -19694,11 +20114,11 @@ checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439" dependencies = [ "Inflector", "num-format", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "serde", "serde_json", - "unicode-xid", + "unicode-xid 0.2.4", ] [[package]] @@ -19719,8 +20139,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -19988,8 +20408,8 @@ checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" dependencies = [ "cfg_aliases", "memchr", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -20026,6 +20446,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + [[package]] name = "strsim" version = "0.10.0" @@ -20038,6 +20464,30 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap 2.34.0", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2 1.0.75", + "quote 1.0.35", + "syn 1.0.109", +] + [[package]] name = "strum" version = "0.24.1" @@ -20069,8 +20519,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "rustversion", "syn 1.0.109", ] @@ -20082,8 +20532,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck 0.4.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "rustversion", "syn 2.0.53", ] @@ -20095,8 +20545,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ "heck 0.4.1", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "rustversion", "syn 2.0.53", ] @@ -20206,6 +20656,49 @@ dependencies = [ "tokio", ] +[[package]] +name = "substrate-relay-helper" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-std", + "async-trait", + "bp-header-chain", + "bp-messages", + "bp-parachains", + "bp-polkadot-core", + "bp-relayers", + "bp-runtime", + "bridge-runtime-common", + "equivocation-detector", + "finality-grandpa", + "finality-relay", + "frame-support", + "frame-system", + "futures", + "hex", + "log", + "messages-relay", + "num-traits", + "pallet-balances", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-bridge-parachains", + "pallet-grandpa", + "pallet-transaction-payment", + "parachains-relay", + "parity-scale-codec", + "rbtag", + "relay-substrate-client", + "relay-utils", + "sp-consensus-grandpa", + "sp-core", + "sp-runtime", + "structopt", + "strum 0.26.2", + "thiserror", +] + [[package]] name = "substrate-rpc-client" version = "0.33.0" @@ -20483,14 +20976,25 @@ dependencies = [ "symbolic-common", ] +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "unicode-ident", ] @@ -20500,8 +21004,8 @@ version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "unicode-ident", ] @@ -20512,8 +21016,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047" dependencies = [ "paste", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -20523,10 +21027,25 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", - "unicode-xid", + "unicode-xid 0.2.4", +] + +[[package]] +name = "sysinfo" +version = "0.30.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "windows 0.52.0", ] [[package]] @@ -20736,6 +21255,15 @@ dependencies = [ "westend-runtime-constants", ] +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + [[package]] name = "textwrap" version = "0.16.0" @@ -20766,8 +21294,8 @@ version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 1.0.109", ] @@ -20777,8 +21305,8 @@ version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -20859,6 +21387,8 @@ checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07" dependencies = [ "deranged", "itoa", + "libc", + "num_threads", "serde", "time-core", "time-macros", @@ -20938,8 +21468,8 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -21159,8 +21689,8 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -21201,8 +21731,8 @@ dependencies = [ "assert_matches", "expander 2.0.0", "proc-macro-crate 3.0.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -21590,12 +22120,24 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + [[package]] name = "unicode-width" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + [[package]] name = "unicode-xid" version = "0.2.4" @@ -21730,6 +22272,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version_check" version = "0.9.4" @@ -21833,8 +22381,8 @@ dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", "wasm-bindgen-shared", ] @@ -21857,7 +22405,7 @@ version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ - "quote", + "quote 1.0.35", "wasm-bindgen-macro-support", ] @@ -21867,8 +22415,8 @@ version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -21900,8 +22448,8 @@ version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", ] [[package]] @@ -22515,6 +23063,25 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-sys" version = "0.42.0" @@ -22929,8 +23496,8 @@ name = "xcm-procedural" version = "7.0.0" dependencies = [ "Inflector", - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "staging-xcm", "syn 2.0.53", "trybuild", @@ -23052,8 +23619,8 @@ version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] @@ -23072,8 +23639,8 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.75", + "quote 1.0.35", "syn 2.0.53", ] diff --git a/Cargo.toml b/Cargo.toml index 7fa374c4e49bc8beb56251f3675f38255295ab31..e074c3b81975ed51d0260622b3e4b31f79f609cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,12 +22,14 @@ members = [ "bridges/chains/chain-polkadot-bulletin", "bridges/chains/chain-rococo", "bridges/chains/chain-westend", + "bridges/modules/beefy", "bridges/modules/grandpa", "bridges/modules/messages", "bridges/modules/parachains", "bridges/modules/relayers", "bridges/modules/xcm-bridge-hub", "bridges/modules/xcm-bridge-hub-router", + "bridges/primitives/beefy", "bridges/primitives/header-chain", "bridges/primitives/messages", "bridges/primitives/parachains", @@ -37,6 +39,13 @@ members = [ "bridges/primitives/test-utils", "bridges/primitives/xcm-bridge-hub", "bridges/primitives/xcm-bridge-hub-router", + "bridges/relays/client-substrate", + "bridges/relays/equivocation", + "bridges/relays/finality", + "bridges/relays/lib-substrate-relay", + "bridges/relays/messages", + "bridges/relays/parachains", + "bridges/relays/utils", "bridges/snowbridge/pallets/ethereum-client", "bridges/snowbridge/pallets/ethereum-client/fixtures", "bridges/snowbridge/pallets/inbound-queue", diff --git a/bridges/.gitignore b/bridges/.gitignore deleted file mode 100644 index 5d10cfa41a4487247e2c331144d3dabf0ec5e6f7..0000000000000000000000000000000000000000 --- a/bridges/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -**/target/ -**/.env -**/.env2 -**/rust-toolchain -hfuzz_target -hfuzz_workspace -**/Cargo.lock - -**/*.rs.bk - -*.o -*.so -*.rlib -*.dll -.gdb_history - -*.exe - -.DS_Store - -.cargo -.idea -.vscode -*.iml -*.swp -*.swo diff --git a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs index c4e697fbe9526b85c7f10cf739c6893d50190fe9..abce872d7ba35cf24b013aa26b4b1f1d796b5785 100644 --- a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs +++ b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs @@ -107,5 +107,5 @@ frame_support::parameter_types! { /// Transaction fee that is paid at the Rococo BridgeHub for delivering single outbound message confirmation. /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_confirmation_transaction` + `33%`) - pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_829_647; + pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_901_781; } diff --git a/bridges/modules/beefy/Cargo.toml b/bridges/modules/beefy/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..438f32fb146042f2704deb3092381a2b5cc68394 --- /dev/null +++ b/bridges/modules/beefy/Cargo.toml @@ -0,0 +1,63 @@ +[package] +name = "pallet-bridge-beefy" +version = "0.1.0" +description = "Module implementing BEEFY on-chain light client used for bridging consensus of substrate-based chains." +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +publish = false + +[lints] +workspace = true + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } +log = { workspace = true } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } +serde = { optional = true, workspace = true } + +# Bridge Dependencies + +bp-beefy = { path = "../../primitives/beefy", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } + +# Substrate Dependencies + +frame-support = { path = "../../../substrate/frame/support", default-features = false } +frame-system = { path = "../../../substrate/frame/system", default-features = false } +sp-core = { path = "../../../substrate/primitives/core", default-features = false } +sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false } +sp-std = { path = "../../../substrate/primitives/std", default-features = false } + +[dev-dependencies] +sp-consensus-beefy = { path = "../../../substrate/primitives/consensus/beefy" } +mmr-lib = { package = "ckb-merkle-mountain-range", version = "0.5.2" } +pallet-beefy-mmr = { path = "../../../substrate/frame/beefy-mmr" } +pallet-mmr = { path = "../../../substrate/frame/merkle-mountain-range" } +rand = "0.8.5" +sp-io = { path = "../../../substrate/primitives/io" } +bp-test-utils = { path = "../../primitives/test-utils" } + +[features] +default = ["std"] +std = [ + "bp-beefy/std", + "bp-runtime/std", + "codec/std", + "frame-support/std", + "frame-system/std", + "log/std", + "scale-info/std", + "serde/std", + "sp-core/std", + "sp-runtime/std", + "sp-std/std", +] +try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "pallet-beefy-mmr/try-runtime", + "pallet-mmr/try-runtime", + "sp-runtime/try-runtime", +] diff --git a/bridges/modules/beefy/src/lib.rs b/bridges/modules/beefy/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..27c83921021bb4299b18cbf2d3216427f8c89ccc --- /dev/null +++ b/bridges/modules/beefy/src/lib.rs @@ -0,0 +1,651 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! BEEFY bridge pallet. +//! +//! This pallet is an on-chain BEEFY light client for Substrate-based chains that are using the +//! following pallets bundle: `pallet-mmr`, `pallet-beefy` and `pallet-beefy-mmr`. +//! +//! The pallet is able to verify MMR leaf proofs and BEEFY commitments, so it has access +//! to the following data of the bridged chain: +//! +//! - header hashes +//! - changes of BEEFY authorities +//! - extra data of MMR leafs +//! +//! Given the header hash, other pallets are able to verify header-based proofs +//! (e.g. storage proofs, transaction inclusion proofs, etc.). + +#![warn(missing_docs)] +#![cfg_attr(not(feature = "std"), no_std)] + +use bp_beefy::{ChainWithBeefy, InitializationData}; +use sp_std::{boxed::Box, prelude::*}; + +// Re-export in crate namespace for `construct_runtime!` +pub use pallet::*; + +mod utils; + +#[cfg(test)] +mod mock; +#[cfg(test)] +mod mock_chain; + +/// The target that will be used when publishing logs related to this pallet. +pub const LOG_TARGET: &str = "runtime::bridge-beefy"; + +/// Configured bridged chain. +pub type BridgedChain = >::BridgedChain; +/// Block number, used by configured bridged chain. +pub type BridgedBlockNumber = bp_runtime::BlockNumberOf>; +/// Block hash, used by configured bridged chain. +pub type BridgedBlockHash = bp_runtime::HashOf>; + +/// Pallet initialization data. +pub type InitializationDataOf = + InitializationData, bp_beefy::MmrHashOf>>; +/// BEEFY commitment hasher, used by configured bridged chain. +pub type BridgedBeefyCommitmentHasher = bp_beefy::BeefyCommitmentHasher>; +/// BEEFY validator id, used by configured bridged chain. +pub type BridgedBeefyAuthorityId = bp_beefy::BeefyAuthorityIdOf>; +/// BEEFY validator set, used by configured bridged chain. +pub type BridgedBeefyAuthoritySet = bp_beefy::BeefyAuthoritySetOf>; +/// BEEFY authority set, used by configured bridged chain. +pub type BridgedBeefyAuthoritySetInfo = bp_beefy::BeefyAuthoritySetInfoOf>; +/// BEEFY signed commitment, used by configured bridged chain. +pub type BridgedBeefySignedCommitment = bp_beefy::BeefySignedCommitmentOf>; +/// MMR hashing algorithm, used by configured bridged chain. +pub type BridgedMmrHashing = bp_beefy::MmrHashingOf>; +/// MMR hashing output type of `BridgedMmrHashing`. +pub type BridgedMmrHash = bp_beefy::MmrHashOf>; +/// The type of the MMR leaf extra data used by the configured bridged chain. +pub type BridgedBeefyMmrLeafExtra = bp_beefy::BeefyMmrLeafExtraOf>; +/// BEEFY MMR proof type used by the pallet +pub type BridgedMmrProof = bp_beefy::MmrProofOf>; +/// MMR leaf type, used by configured bridged chain. +pub type BridgedBeefyMmrLeaf = bp_beefy::BeefyMmrLeafOf>; +/// Imported commitment data, stored by the pallet. +pub type ImportedCommitment = bp_beefy::ImportedCommitment< + BridgedBlockNumber, + BridgedBlockHash, + BridgedMmrHash, +>; + +/// Some high level info about the imported commitments. +#[derive(codec::Encode, codec::Decode, scale_info::TypeInfo)] +pub struct ImportedCommitmentsInfoData { + /// Best known block number, provided in a BEEFY commitment. However this is not + /// the best proven block. The best proven block is this block's parent. + best_block_number: BlockNumber, + /// The head of the `ImportedBlockNumbers` ring buffer. + next_block_number_index: u32, +} + +#[frame_support::pallet(dev_mode)] +pub mod pallet { + use super::*; + use bp_runtime::{BasicOperatingMode, OwnedBridgeModule}; + use frame_support::pallet_prelude::*; + use frame_system::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + /// The upper bound on the number of requests allowed by the pallet. + /// + /// A request refers to an action which writes a header to storage. + /// + /// Once this bound is reached the pallet will reject all commitments + /// until the request count has decreased. + #[pallet::constant] + type MaxRequests: Get; + + /// Maximal number of imported commitments to keep in the storage. + /// + /// The setting is there to prevent growing the on-chain state indefinitely. Note + /// the setting does not relate to block numbers - we will simply keep as much items + /// in the storage, so it doesn't guarantee any fixed timeframe for imported commitments. + #[pallet::constant] + type CommitmentsToKeep: Get; + + /// The chain we are bridging to here. + type BridgedChain: ChainWithBeefy; + } + + #[pallet::pallet] + #[pallet::without_storage_info] + pub struct Pallet(PhantomData<(T, I)>); + + #[pallet::hooks] + impl, I: 'static> Hooks> for Pallet { + fn on_initialize(_n: BlockNumberFor) -> frame_support::weights::Weight { + >::mutate(|count| *count = count.saturating_sub(1)); + + Weight::from_parts(0, 0) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + } + + impl, I: 'static> OwnedBridgeModule for Pallet { + const LOG_TARGET: &'static str = LOG_TARGET; + type OwnerStorage = PalletOwner; + type OperatingMode = BasicOperatingMode; + type OperatingModeStorage = PalletOperatingMode; + } + + #[pallet::call] + impl, I: 'static> Pallet + where + BridgedMmrHashing: 'static + Send + Sync, + { + /// Initialize pallet with BEEFY authority set and best known finalized block number. + #[pallet::call_index(0)] + #[pallet::weight((T::DbWeight::get().reads_writes(2, 3), DispatchClass::Operational))] + pub fn initialize( + origin: OriginFor, + init_data: InitializationDataOf, + ) -> DispatchResult { + Self::ensure_owner_or_root(origin)?; + + let is_initialized = >::exists(); + ensure!(!is_initialized, >::AlreadyInitialized); + + log::info!(target: LOG_TARGET, "Initializing bridge BEEFY pallet: {:?}", init_data); + Ok(initialize::(init_data)?) + } + + /// Change `PalletOwner`. + /// + /// May only be called either by root, or by `PalletOwner`. + #[pallet::call_index(1)] + #[pallet::weight((T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational))] + pub fn set_owner(origin: OriginFor, new_owner: Option) -> DispatchResult { + >::set_owner(origin, new_owner) + } + + /// Halt or resume all pallet operations. + /// + /// May only be called either by root, or by `PalletOwner`. + #[pallet::call_index(2)] + #[pallet::weight((T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational))] + pub fn set_operating_mode( + origin: OriginFor, + operating_mode: BasicOperatingMode, + ) -> DispatchResult { + >::set_operating_mode(origin, operating_mode) + } + + /// Submit a commitment generated by BEEFY authority set. + /// + /// It will use the underlying storage pallet to fetch information about the current + /// authority set and best finalized block number in order to verify that the commitment + /// is valid. + /// + /// If successful in verification, it will update the underlying storage with the data + /// provided in the newly submitted commitment. + #[pallet::call_index(3)] + #[pallet::weight(0)] + pub fn submit_commitment( + origin: OriginFor, + commitment: BridgedBeefySignedCommitment, + validator_set: BridgedBeefyAuthoritySet, + mmr_leaf: Box>, + mmr_proof: BridgedMmrProof, + ) -> DispatchResult + where + BridgedBeefySignedCommitment: Clone, + { + Self::ensure_not_halted().map_err(Error::::BridgeModule)?; + ensure_signed(origin)?; + + ensure!(Self::request_count() < T::MaxRequests::get(), >::TooManyRequests); + + // Ensure that the commitment is for a better block. + let commitments_info = + ImportedCommitmentsInfo::::get().ok_or(Error::::NotInitialized)?; + ensure!( + commitment.commitment.block_number > commitments_info.best_block_number, + Error::::OldCommitment + ); + + // Verify commitment and mmr leaf. + let current_authority_set_info = CurrentAuthoritySetInfo::::get(); + let mmr_root = utils::verify_commitment::( + &commitment, + ¤t_authority_set_info, + &validator_set, + )?; + utils::verify_beefy_mmr_leaf::(&mmr_leaf, mmr_proof, mmr_root)?; + + // Update request count. + RequestCount::::mutate(|count| *count += 1); + // Update authority set if needed. + if mmr_leaf.beefy_next_authority_set.id > current_authority_set_info.id { + CurrentAuthoritySetInfo::::put(mmr_leaf.beefy_next_authority_set); + } + + // Import commitment. + let block_number_index = commitments_info.next_block_number_index; + let to_prune = ImportedBlockNumbers::::try_get(block_number_index); + ImportedCommitments::::insert( + commitment.commitment.block_number, + ImportedCommitment:: { + parent_number_and_hash: mmr_leaf.parent_number_and_hash, + mmr_root, + }, + ); + ImportedBlockNumbers::::insert( + block_number_index, + commitment.commitment.block_number, + ); + ImportedCommitmentsInfo::::put(ImportedCommitmentsInfoData { + best_block_number: commitment.commitment.block_number, + next_block_number_index: (block_number_index + 1) % T::CommitmentsToKeep::get(), + }); + if let Ok(old_block_number) = to_prune { + log::debug!( + target: LOG_TARGET, + "Pruning commitment for old block: {:?}.", + old_block_number + ); + ImportedCommitments::::remove(old_block_number); + } + + log::info!( + target: LOG_TARGET, + "Successfully imported commitment for block {:?}", + commitment.commitment.block_number, + ); + + Ok(()) + } + } + + /// The current number of requests which have written to storage. + /// + /// If the `RequestCount` hits `MaxRequests`, no more calls will be allowed to the pallet until + /// the request capacity is increased. + /// + /// The `RequestCount` is decreased by one at the beginning of every block. This is to ensure + /// that the pallet can always make progress. + #[pallet::storage] + #[pallet::getter(fn request_count)] + pub type RequestCount, I: 'static = ()> = StorageValue<_, u32, ValueQuery>; + + /// High level info about the imported commitments. + /// + /// Contains the following info: + /// - best known block number of the bridged chain, finalized by BEEFY + /// - the head of the `ImportedBlockNumbers` ring buffer + #[pallet::storage] + pub type ImportedCommitmentsInfo, I: 'static = ()> = + StorageValue<_, ImportedCommitmentsInfoData>>; + + /// A ring buffer containing the block numbers of the commitments that we have imported, + /// ordered by the insertion time. + #[pallet::storage] + pub(super) type ImportedBlockNumbers, I: 'static = ()> = + StorageMap<_, Identity, u32, BridgedBlockNumber>; + + /// All the commitments that we have imported and haven't been pruned yet. + #[pallet::storage] + pub type ImportedCommitments, I: 'static = ()> = + StorageMap<_, Blake2_128Concat, BridgedBlockNumber, ImportedCommitment>; + + /// The current BEEFY authority set at the bridged chain. + #[pallet::storage] + pub type CurrentAuthoritySetInfo, I: 'static = ()> = + StorageValue<_, BridgedBeefyAuthoritySetInfo, ValueQuery>; + + /// Optional pallet owner. + /// + /// Pallet owner has the right to halt all pallet operations and then resume it. If it is + /// `None`, then there are no direct ways to halt/resume pallet operations, but other + /// runtime methods may still be used to do that (i.e. `democracy::referendum` to update halt + /// flag directly or calling `halt_operations`). + #[pallet::storage] + pub type PalletOwner, I: 'static = ()> = + StorageValue<_, T::AccountId, OptionQuery>; + + /// The current operating mode of the pallet. + /// + /// Depending on the mode either all, or no transactions will be allowed. + #[pallet::storage] + pub type PalletOperatingMode, I: 'static = ()> = + StorageValue<_, BasicOperatingMode, ValueQuery>; + + #[pallet::genesis_config] + #[derive(frame_support::DefaultNoBound)] + pub struct GenesisConfig, I: 'static = ()> { + /// Optional module owner account. + pub owner: Option, + /// Optional module initialization data. + pub init_data: Option>, + } + + #[pallet::genesis_build] + impl, I: 'static> BuildGenesisConfig for GenesisConfig { + fn build(&self) { + if let Some(ref owner) = self.owner { + >::put(owner); + } + + if let Some(init_data) = self.init_data.clone() { + initialize::(init_data) + .expect("invalid initialization data of BEEFY bridge pallet"); + } else { + // Since the bridge hasn't been initialized we shouldn't allow anyone to perform + // transactions. + >::put(BasicOperatingMode::Halted); + } + } + } + + #[pallet::error] + pub enum Error { + /// The pallet has not been initialized yet. + NotInitialized, + /// The pallet has already been initialized. + AlreadyInitialized, + /// Invalid initial authority set. + InvalidInitialAuthoritySet, + /// There are too many requests for the current window to handle. + TooManyRequests, + /// The imported commitment is older than the best commitment known to the pallet. + OldCommitment, + /// The commitment is signed by unknown validator set. + InvalidCommitmentValidatorSetId, + /// The id of the provided validator set is invalid. + InvalidValidatorSetId, + /// The number of signatures in the commitment is invalid. + InvalidCommitmentSignaturesLen, + /// The number of validator ids provided is invalid. + InvalidValidatorSetLen, + /// There aren't enough correct signatures in the commitment to finalize the block. + NotEnoughCorrectSignatures, + /// MMR root is missing from the commitment. + MmrRootMissingFromCommitment, + /// MMR proof verification has failed. + MmrProofVerificationFailed, + /// The validators are not matching the merkle tree root of the authority set. + InvalidValidatorSetRoot, + /// Error generated by the `OwnedBridgeModule` trait. + BridgeModule(bp_runtime::OwnedBridgeModuleError), + } + + /// Initialize pallet with given parameters. + pub(super) fn initialize, I: 'static>( + init_data: InitializationDataOf, + ) -> Result<(), Error> { + if init_data.authority_set.len == 0 { + return Err(Error::::InvalidInitialAuthoritySet) + } + CurrentAuthoritySetInfo::::put(init_data.authority_set); + + >::put(init_data.operating_mode); + ImportedCommitmentsInfo::::put(ImportedCommitmentsInfoData { + best_block_number: init_data.best_block_number, + next_block_number_index: 0, + }); + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use bp_runtime::{BasicOperatingMode, OwnedBridgeModuleError}; + use bp_test_utils::generate_owned_bridge_module_tests; + use frame_support::{assert_noop, assert_ok, traits::Get}; + use mock::*; + use mock_chain::*; + use sp_consensus_beefy::mmr::BeefyAuthoritySet; + use sp_runtime::DispatchError; + + fn next_block() { + use frame_support::traits::OnInitialize; + + let current_number = frame_system::Pallet::::block_number(); + frame_system::Pallet::::set_block_number(current_number + 1); + let _ = Pallet::::on_initialize(current_number); + } + + fn import_header_chain(headers: Vec) { + for header in headers { + if header.commitment.is_some() { + assert_ok!(import_commitment(header)); + } + } + } + + #[test] + fn fails_to_initialize_if_already_initialized() { + run_test_with_initialize(32, || { + assert_noop!( + Pallet::::initialize( + RuntimeOrigin::root(), + InitializationData { + operating_mode: BasicOperatingMode::Normal, + best_block_number: 0, + authority_set: BeefyAuthoritySet { + id: 0, + len: 1, + keyset_commitment: [0u8; 32].into() + } + } + ), + Error::::AlreadyInitialized, + ); + }); + } + + #[test] + fn fails_to_initialize_if_authority_set_is_empty() { + run_test(|| { + assert_noop!( + Pallet::::initialize( + RuntimeOrigin::root(), + InitializationData { + operating_mode: BasicOperatingMode::Normal, + best_block_number: 0, + authority_set: BeefyAuthoritySet { + id: 0, + len: 0, + keyset_commitment: [0u8; 32].into() + } + } + ), + Error::::InvalidInitialAuthoritySet, + ); + }); + } + + #[test] + fn fails_to_import_commitment_if_halted() { + run_test_with_initialize(1, || { + assert_ok!(Pallet::::set_operating_mode( + RuntimeOrigin::root(), + BasicOperatingMode::Halted + )); + assert_noop!( + import_commitment(ChainBuilder::new(1).append_finalized_header().to_header()), + Error::::BridgeModule(OwnedBridgeModuleError::Halted), + ); + }) + } + + #[test] + fn fails_to_import_commitment_if_too_many_requests() { + run_test_with_initialize(1, || { + let max_requests = <::MaxRequests as Get>::get() as u64; + let mut chain = ChainBuilder::new(1); + for _ in 0..max_requests + 2 { + chain = chain.append_finalized_header(); + } + + // import `max_request` headers + for i in 0..max_requests { + assert_ok!(import_commitment(chain.header(i + 1))); + } + + // try to import next header: it fails because we are no longer accepting commitments + assert_noop!( + import_commitment(chain.header(max_requests + 1)), + Error::::TooManyRequests, + ); + + // when next block is "started", we allow import of next header + next_block(); + assert_ok!(import_commitment(chain.header(max_requests + 1))); + + // but we can't import two headers until next block and so on + assert_noop!( + import_commitment(chain.header(max_requests + 2)), + Error::::TooManyRequests, + ); + }) + } + + #[test] + fn fails_to_import_commitment_if_not_initialized() { + run_test(|| { + assert_noop!( + import_commitment(ChainBuilder::new(1).append_finalized_header().to_header()), + Error::::NotInitialized, + ); + }) + } + + #[test] + fn submit_commitment_works_with_long_chain_with_handoffs() { + run_test_with_initialize(3, || { + let chain = ChainBuilder::new(3) + .append_finalized_header() + .append_default_headers(16) // 2..17 + .append_finalized_header() // 18 + .append_default_headers(16) // 19..34 + .append_handoff_header(9) // 35 + .append_default_headers(8) // 36..43 + .append_finalized_header() // 44 + .append_default_headers(8) // 45..52 + .append_handoff_header(17) // 53 + .append_default_headers(4) // 54..57 + .append_finalized_header() // 58 + .append_default_headers(4); // 59..63 + import_header_chain(chain.to_chain()); + + assert_eq!( + ImportedCommitmentsInfo::::get().unwrap().best_block_number, + 58 + ); + assert_eq!(CurrentAuthoritySetInfo::::get().id, 2); + assert_eq!(CurrentAuthoritySetInfo::::get().len, 17); + + let imported_commitment = ImportedCommitments::::get(58).unwrap(); + assert_eq!( + imported_commitment, + bp_beefy::ImportedCommitment { + parent_number_and_hash: (57, chain.header(57).header.hash()), + mmr_root: chain.header(58).mmr_root, + }, + ); + }) + } + + #[test] + fn commitment_pruning_works() { + run_test_with_initialize(3, || { + let commitments_to_keep = >::CommitmentsToKeep::get(); + let commitments_to_import: Vec = ChainBuilder::new(3) + .append_finalized_headers(commitments_to_keep as usize + 2) + .to_chain(); + + // import exactly `CommitmentsToKeep` commitments + for index in 0..commitments_to_keep { + next_block(); + import_commitment(commitments_to_import[index as usize].clone()) + .expect("must succeed"); + assert_eq!( + ImportedCommitmentsInfo::::get().unwrap().next_block_number_index, + (index + 1) % commitments_to_keep + ); + } + + // ensure that all commitments are in the storage + assert_eq!( + ImportedCommitmentsInfo::::get().unwrap().best_block_number, + commitments_to_keep as TestBridgedBlockNumber + ); + assert_eq!( + ImportedCommitmentsInfo::::get().unwrap().next_block_number_index, + 0 + ); + for index in 0..commitments_to_keep { + assert!(ImportedCommitments::::get( + index as TestBridgedBlockNumber + 1 + ) + .is_some()); + assert_eq!( + ImportedBlockNumbers::::get(index), + Some(Into::into(index + 1)), + ); + } + + // import next commitment + next_block(); + import_commitment(commitments_to_import[commitments_to_keep as usize].clone()) + .expect("must succeed"); + assert_eq!( + ImportedCommitmentsInfo::::get().unwrap().next_block_number_index, + 1 + ); + assert!(ImportedCommitments::::get( + commitments_to_keep as TestBridgedBlockNumber + 1 + ) + .is_some()); + assert_eq!( + ImportedBlockNumbers::::get(0), + Some(Into::into(commitments_to_keep + 1)), + ); + // the side effect of the import is that the commitment#1 is pruned + assert!(ImportedCommitments::::get(1).is_none()); + + // import next commitment + next_block(); + import_commitment(commitments_to_import[commitments_to_keep as usize + 1].clone()) + .expect("must succeed"); + assert_eq!( + ImportedCommitmentsInfo::::get().unwrap().next_block_number_index, + 2 + ); + assert!(ImportedCommitments::::get( + commitments_to_keep as TestBridgedBlockNumber + 2 + ) + .is_some()); + assert_eq!( + ImportedBlockNumbers::::get(1), + Some(Into::into(commitments_to_keep + 2)), + ); + // the side effect of the import is that the commitment#2 is pruned + assert!(ImportedCommitments::::get(1).is_none()); + assert!(ImportedCommitments::::get(2).is_none()); + }); + } + + generate_owned_bridge_module_tests!(BasicOperatingMode::Normal, BasicOperatingMode::Halted); +} diff --git a/bridges/modules/beefy/src/mock.rs b/bridges/modules/beefy/src/mock.rs new file mode 100644 index 0000000000000000000000000000000000000000..c99566b6b06d1855319d614f4f4ddfbf2fb1918b --- /dev/null +++ b/bridges/modules/beefy/src/mock.rs @@ -0,0 +1,193 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate as beefy; +use crate::{ + utils::get_authorities_mmr_root, BridgedBeefyAuthoritySet, BridgedBeefyAuthoritySetInfo, + BridgedBeefyCommitmentHasher, BridgedBeefyMmrLeafExtra, BridgedBeefySignedCommitment, + BridgedMmrHash, BridgedMmrHashing, BridgedMmrProof, +}; + +use bp_beefy::{BeefyValidatorSignatureOf, ChainWithBeefy, Commitment, MmrDataOrHash}; +use bp_runtime::{BasicOperatingMode, Chain, ChainId}; +use codec::Encode; +use frame_support::{construct_runtime, derive_impl, weights::Weight}; +use sp_core::{sr25519::Signature, Pair}; +use sp_runtime::{ + testing::{Header, H256}, + traits::{BlakeTwo256, Hash}, +}; + +pub use sp_consensus_beefy::ecdsa_crypto::{AuthorityId as BeefyId, Pair as BeefyPair}; +use sp_core::crypto::Wraps; +use sp_runtime::traits::Keccak256; + +pub type TestAccountId = u64; +pub type TestBridgedBlockNumber = u64; +pub type TestBridgedBlockHash = H256; +pub type TestBridgedHeader = Header; +pub type TestBridgedAuthoritySetInfo = BridgedBeefyAuthoritySetInfo; +pub type TestBridgedValidatorSet = BridgedBeefyAuthoritySet; +pub type TestBridgedCommitment = BridgedBeefySignedCommitment; +pub type TestBridgedValidatorSignature = BeefyValidatorSignatureOf; +pub type TestBridgedCommitmentHasher = BridgedBeefyCommitmentHasher; +pub type TestBridgedMmrHashing = BridgedMmrHashing; +pub type TestBridgedMmrHash = BridgedMmrHash; +pub type TestBridgedBeefyMmrLeafExtra = BridgedBeefyMmrLeafExtra; +pub type TestBridgedMmrProof = BridgedMmrProof; +pub type TestBridgedRawMmrLeaf = sp_consensus_beefy::mmr::MmrLeaf< + TestBridgedBlockNumber, + TestBridgedBlockHash, + TestBridgedMmrHash, + TestBridgedBeefyMmrLeafExtra, +>; +pub type TestBridgedMmrNode = MmrDataOrHash; + +type Block = frame_system::mocking::MockBlock; + +construct_runtime! { + pub enum TestRuntime + { + System: frame_system::{Pallet, Call, Config, Storage, Event}, + Beefy: beefy::{Pallet}, + } +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] +impl frame_system::Config for TestRuntime { + type Block = Block; +} + +impl beefy::Config for TestRuntime { + type MaxRequests = frame_support::traits::ConstU32<16>; + type BridgedChain = TestBridgedChain; + type CommitmentsToKeep = frame_support::traits::ConstU32<16>; +} + +#[derive(Debug)] +pub struct TestBridgedChain; + +impl Chain for TestBridgedChain { + const ID: ChainId = *b"tbch"; + + type BlockNumber = TestBridgedBlockNumber; + type Hash = H256; + type Hasher = BlakeTwo256; + type Header = sp_runtime::testing::Header; + + type AccountId = TestAccountId; + type Balance = u64; + type Nonce = u64; + type Signature = Signature; + + fn max_extrinsic_size() -> u32 { + unreachable!() + } + fn max_extrinsic_weight() -> Weight { + unreachable!() + } +} + +impl ChainWithBeefy for TestBridgedChain { + type CommitmentHasher = Keccak256; + type MmrHashing = Keccak256; + type MmrHash = ::Output; + type BeefyMmrLeafExtra = (); + type AuthorityId = BeefyId; + type AuthorityIdToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum; +} + +/// Run test within test runtime. +pub fn run_test(test: impl FnOnce() -> T) -> T { + sp_io::TestExternalities::new(Default::default()).execute_with(test) +} + +/// Initialize pallet and run test. +pub fn run_test_with_initialize(initial_validators_count: u32, test: impl FnOnce() -> T) -> T { + run_test(|| { + let validators = validator_ids(0, initial_validators_count); + let authority_set = authority_set_info(0, &validators); + + crate::Pallet::::initialize( + RuntimeOrigin::root(), + bp_beefy::InitializationData { + operating_mode: BasicOperatingMode::Normal, + best_block_number: 0, + authority_set, + }, + ) + .expect("initialization data is correct"); + + test() + }) +} + +/// Import given commitment. +pub fn import_commitment( + header: crate::mock_chain::HeaderAndCommitment, +) -> sp_runtime::DispatchResult { + crate::Pallet::::submit_commitment( + RuntimeOrigin::signed(1), + header + .commitment + .expect("thou shall not call import_commitment on header without commitment"), + header.validator_set, + Box::new(header.leaf), + header.leaf_proof, + ) +} + +pub fn validator_pairs(index: u32, count: u32) -> Vec { + (index..index + count) + .map(|index| { + let mut seed = [1u8; 32]; + seed[0..8].copy_from_slice(&(index as u64).encode()); + BeefyPair::from_seed(&seed) + }) + .collect() +} + +/// Return identifiers of validators, starting at given index. +pub fn validator_ids(index: u32, count: u32) -> Vec { + validator_pairs(index, count).into_iter().map(|pair| pair.public()).collect() +} + +pub fn authority_set_info(id: u64, validators: &[BeefyId]) -> TestBridgedAuthoritySetInfo { + let merkle_root = get_authorities_mmr_root::(validators.iter()); + + TestBridgedAuthoritySetInfo { id, len: validators.len() as u32, keyset_commitment: merkle_root } +} + +/// Sign BEEFY commitment. +pub fn sign_commitment( + commitment: Commitment, + validator_pairs: &[BeefyPair], + signature_count: usize, +) -> TestBridgedCommitment { + let total_validators = validator_pairs.len(); + let random_validators = + rand::seq::index::sample(&mut rand::thread_rng(), total_validators, signature_count); + + let commitment_hash = TestBridgedCommitmentHasher::hash(&commitment.encode()); + let mut signatures = vec![None; total_validators]; + for validator_idx in random_validators.iter() { + let validator = &validator_pairs[validator_idx]; + signatures[validator_idx] = + Some(validator.as_inner_ref().sign_prehashed(commitment_hash.as_fixed_bytes()).into()); + } + + TestBridgedCommitment { commitment, signatures } +} diff --git a/bridges/modules/beefy/src/mock_chain.rs b/bridges/modules/beefy/src/mock_chain.rs new file mode 100644 index 0000000000000000000000000000000000000000..c83907f8395684d03cc62892e519565fb72237f7 --- /dev/null +++ b/bridges/modules/beefy/src/mock_chain.rs @@ -0,0 +1,299 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Utilities to build bridged chain and BEEFY+MMR structures. + +use crate::{ + mock::{ + sign_commitment, validator_pairs, BeefyPair, TestBridgedBlockNumber, TestBridgedCommitment, + TestBridgedHeader, TestBridgedMmrHash, TestBridgedMmrHashing, TestBridgedMmrNode, + TestBridgedMmrProof, TestBridgedRawMmrLeaf, TestBridgedValidatorSet, + TestBridgedValidatorSignature, TestRuntime, + }, + utils::get_authorities_mmr_root, +}; + +use bp_beefy::{BeefyPayload, Commitment, ValidatorSetId, MMR_ROOT_PAYLOAD_ID}; +use codec::Encode; +use pallet_mmr::NodeIndex; +use rand::Rng; +use sp_consensus_beefy::mmr::{BeefyNextAuthoritySet, MmrLeafVersion}; +use sp_core::Pair; +use sp_runtime::traits::{Hash, Header as HeaderT}; +use std::collections::HashMap; + +#[derive(Debug, Clone)] +pub struct HeaderAndCommitment { + pub header: TestBridgedHeader, + pub commitment: Option, + pub validator_set: TestBridgedValidatorSet, + pub leaf: TestBridgedRawMmrLeaf, + pub leaf_proof: TestBridgedMmrProof, + pub mmr_root: TestBridgedMmrHash, +} + +impl HeaderAndCommitment { + pub fn customize_signatures( + &mut self, + f: impl FnOnce(&mut Vec>), + ) { + if let Some(commitment) = &mut self.commitment { + f(&mut commitment.signatures); + } + } + + pub fn customize_commitment( + &mut self, + f: impl FnOnce(&mut Commitment), + validator_pairs: &[BeefyPair], + signature_count: usize, + ) { + if let Some(mut commitment) = self.commitment.take() { + f(&mut commitment.commitment); + self.commitment = + Some(sign_commitment(commitment.commitment, validator_pairs, signature_count)); + } + } +} + +pub struct ChainBuilder { + headers: Vec, + validator_set_id: ValidatorSetId, + validator_keys: Vec, + mmr: mmr_lib::MMR, +} + +struct BridgedMmrStorage { + nodes: HashMap, +} + +impl mmr_lib::MMRStore for BridgedMmrStorage { + fn get_elem(&self, pos: NodeIndex) -> mmr_lib::Result> { + Ok(self.nodes.get(&pos).cloned()) + } + + fn append(&mut self, pos: NodeIndex, elems: Vec) -> mmr_lib::Result<()> { + for (i, elem) in elems.into_iter().enumerate() { + self.nodes.insert(pos + i as NodeIndex, elem); + } + Ok(()) + } +} + +impl ChainBuilder { + /// Creates new chain builder with given validator set size. + pub fn new(initial_validators_count: u32) -> Self { + ChainBuilder { + headers: Vec::new(), + validator_set_id: 0, + validator_keys: validator_pairs(0, initial_validators_count), + mmr: mmr_lib::MMR::new(0, BridgedMmrStorage { nodes: HashMap::new() }), + } + } + + /// Get header with given number. + pub fn header(&self, number: TestBridgedBlockNumber) -> HeaderAndCommitment { + self.headers[number as usize - 1].clone() + } + + /// Returns single built header. + pub fn to_header(&self) -> HeaderAndCommitment { + assert_eq!(self.headers.len(), 1); + self.headers[0].clone() + } + + /// Returns built chain. + pub fn to_chain(&self) -> Vec { + self.headers.clone() + } + + /// Appends header, that has been finalized by BEEFY (so it has a linked signed commitment). + pub fn append_finalized_header(self) -> Self { + let next_validator_set_id = self.validator_set_id; + let next_validator_keys = self.validator_keys.clone(); + HeaderBuilder::with_chain(self, next_validator_set_id, next_validator_keys).finalize() + } + + /// Append multiple finalized headers at once. + pub fn append_finalized_headers(mut self, count: usize) -> Self { + for _ in 0..count { + self = self.append_finalized_header(); + } + self + } + + /// Appends header, that enacts new validator set. + /// + /// Such headers are explicitly finalized by BEEFY. + pub fn append_handoff_header(self, next_validators_len: u32) -> Self { + let new_validator_set_id = self.validator_set_id + 1; + let new_validator_pairs = + validator_pairs(rand::thread_rng().gen::() % (u32::MAX / 2), next_validators_len); + + HeaderBuilder::with_chain(self, new_validator_set_id, new_validator_pairs).finalize() + } + + /// Append several default header without commitment. + pub fn append_default_headers(mut self, count: usize) -> Self { + for _ in 0..count { + let next_validator_set_id = self.validator_set_id; + let next_validator_keys = self.validator_keys.clone(); + self = + HeaderBuilder::with_chain(self, next_validator_set_id, next_validator_keys).build() + } + self + } +} + +/// Custom header builder. +pub struct HeaderBuilder { + chain: ChainBuilder, + header: TestBridgedHeader, + leaf: TestBridgedRawMmrLeaf, + leaf_proof: Option, + next_validator_set_id: ValidatorSetId, + next_validator_keys: Vec, +} + +impl HeaderBuilder { + fn with_chain( + chain: ChainBuilder, + next_validator_set_id: ValidatorSetId, + next_validator_keys: Vec, + ) -> Self { + // we're starting with header#1, since header#0 is always finalized + let header_number = chain.headers.len() as TestBridgedBlockNumber + 1; + let header = TestBridgedHeader::new( + header_number, + Default::default(), + Default::default(), + chain.headers.last().map(|h| h.header.hash()).unwrap_or_default(), + Default::default(), + ); + + let next_validators = + next_validator_keys.iter().map(|pair| pair.public()).collect::>(); + let next_validators_mmr_root = + get_authorities_mmr_root::(next_validators.iter()); + let leaf = sp_consensus_beefy::mmr::MmrLeaf { + version: MmrLeafVersion::new(1, 0), + parent_number_and_hash: (header.number().saturating_sub(1), *header.parent_hash()), + beefy_next_authority_set: BeefyNextAuthoritySet { + id: next_validator_set_id, + len: next_validators.len() as u32, + keyset_commitment: next_validators_mmr_root, + }, + leaf_extra: (), + }; + + HeaderBuilder { + chain, + header, + leaf, + leaf_proof: None, + next_validator_keys, + next_validator_set_id, + } + } + + /// Customize generated proof of header MMR leaf. + /// + /// Can only be called once. + pub fn customize_proof( + mut self, + f: impl FnOnce(TestBridgedMmrProof) -> TestBridgedMmrProof, + ) -> Self { + assert!(self.leaf_proof.is_none()); + + let leaf_hash = TestBridgedMmrHashing::hash(&self.leaf.encode()); + let node = TestBridgedMmrNode::Hash(leaf_hash); + let leaf_position = self.chain.mmr.push(node).unwrap(); + + let proof = self.chain.mmr.gen_proof(vec![leaf_position]).unwrap(); + // genesis has no leaf => leaf index is header number minus 1 + let leaf_index = *self.header.number() - 1; + let leaf_count = *self.header.number(); + self.leaf_proof = Some(f(TestBridgedMmrProof { + leaf_indices: vec![leaf_index], + leaf_count, + items: proof.proof_items().iter().map(|i| i.hash()).collect(), + })); + + self + } + + /// Build header without commitment. + pub fn build(mut self) -> ChainBuilder { + if self.leaf_proof.is_none() { + self = self.customize_proof(|proof| proof); + } + + let validators = + self.chain.validator_keys.iter().map(|pair| pair.public()).collect::>(); + self.chain.headers.push(HeaderAndCommitment { + header: self.header, + commitment: None, + validator_set: TestBridgedValidatorSet::new(validators, self.chain.validator_set_id) + .unwrap(), + leaf: self.leaf, + leaf_proof: self.leaf_proof.expect("guaranteed by the customize_proof call above; qed"), + mmr_root: self.chain.mmr.get_root().unwrap().hash(), + }); + + self.chain.validator_set_id = self.next_validator_set_id; + self.chain.validator_keys = self.next_validator_keys; + + self.chain + } + + /// Build header with commitment. + pub fn finalize(self) -> ChainBuilder { + let validator_count = self.chain.validator_keys.len(); + let current_validator_set_id = self.chain.validator_set_id; + let current_validator_set_keys = self.chain.validator_keys.clone(); + let mut chain = self.build(); + + let last_header = chain.headers.last_mut().expect("added by append_header; qed"); + last_header.commitment = Some(sign_commitment( + Commitment { + payload: BeefyPayload::from_single_entry( + MMR_ROOT_PAYLOAD_ID, + chain.mmr.get_root().unwrap().hash().encode(), + ), + block_number: *last_header.header.number(), + validator_set_id: current_validator_set_id, + }, + ¤t_validator_set_keys, + validator_count * 2 / 3 + 1, + )); + + chain + } +} + +/// Default Merging & Hashing behavior for MMR. +pub struct BridgedMmrHashMerge; + +impl mmr_lib::Merge for BridgedMmrHashMerge { + type Item = TestBridgedMmrNode; + + fn merge(left: &Self::Item, right: &Self::Item) -> mmr_lib::Result { + let mut concat = left.hash().as_ref().to_vec(); + concat.extend_from_slice(right.hash().as_ref()); + + Ok(TestBridgedMmrNode::Hash(TestBridgedMmrHashing::hash(&concat))) + } +} diff --git a/bridges/modules/beefy/src/utils.rs b/bridges/modules/beefy/src/utils.rs new file mode 100644 index 0000000000000000000000000000000000000000..ce7a116308d1626fd400e2ffa79e44828aea63f2 --- /dev/null +++ b/bridges/modules/beefy/src/utils.rs @@ -0,0 +1,361 @@ +use crate::{ + BridgedBeefyAuthorityId, BridgedBeefyAuthoritySet, BridgedBeefyAuthoritySetInfo, + BridgedBeefyMmrLeaf, BridgedBeefySignedCommitment, BridgedChain, BridgedMmrHash, + BridgedMmrHashing, BridgedMmrProof, Config, Error, LOG_TARGET, +}; +use bp_beefy::{merkle_root, verify_mmr_leaves_proof, BeefyAuthorityId, MmrDataOrHash}; +use codec::Encode; +use frame_support::ensure; +use sp_runtime::traits::{Convert, Hash}; +use sp_std::{vec, vec::Vec}; + +type BridgedMmrDataOrHash = MmrDataOrHash, BridgedBeefyMmrLeaf>; +/// A way to encode validator id to the BEEFY merkle tree leaf. +type BridgedBeefyAuthorityIdToMerkleLeaf = + bp_beefy::BeefyAuthorityIdToMerkleLeafOf>; + +/// Get the MMR root for a collection of validators. +pub(crate) fn get_authorities_mmr_root< + 'a, + T: Config, + I: 'static, + V: Iterator>, +>( + authorities: V, +) -> BridgedMmrHash { + let merkle_leafs = authorities + .cloned() + .map(BridgedBeefyAuthorityIdToMerkleLeaf::::convert) + .collect::>(); + merkle_root::, _>(merkle_leafs) +} + +fn verify_authority_set, I: 'static>( + authority_set_info: &BridgedBeefyAuthoritySetInfo, + authority_set: &BridgedBeefyAuthoritySet, +) -> Result<(), Error> { + ensure!(authority_set.id() == authority_set_info.id, Error::::InvalidValidatorSetId); + ensure!( + authority_set.len() == authority_set_info.len as usize, + Error::::InvalidValidatorSetLen + ); + + // Ensure that the authority set that signed the commitment is the expected one. + let root = get_authorities_mmr_root::(authority_set.validators().iter()); + ensure!(root == authority_set_info.keyset_commitment, Error::::InvalidValidatorSetRoot); + + Ok(()) +} + +/// Number of correct signatures, required from given validators set to accept signed +/// commitment. +/// +/// We're using 'conservative' approach here, where signatures of `2/3+1` validators are +/// required.. +pub(crate) fn signatures_required(validators_len: usize) -> usize { + validators_len - validators_len.saturating_sub(1) / 3 +} + +fn verify_signatures, I: 'static>( + commitment: &BridgedBeefySignedCommitment, + authority_set: &BridgedBeefyAuthoritySet, +) -> Result<(), Error> { + ensure!( + commitment.signatures.len() == authority_set.len(), + Error::::InvalidCommitmentSignaturesLen + ); + + // Ensure that the commitment was signed by enough authorities. + let msg = commitment.commitment.encode(); + let mut missing_signatures = signatures_required(authority_set.len()); + for (idx, (authority, maybe_sig)) in + authority_set.validators().iter().zip(commitment.signatures.iter()).enumerate() + { + if let Some(sig) = maybe_sig { + if authority.verify(sig, &msg) { + missing_signatures = missing_signatures.saturating_sub(1); + if missing_signatures == 0 { + break + } + } else { + log::debug!( + target: LOG_TARGET, + "Signed commitment contains incorrect signature of validator {} ({:?}): {:?}", + idx, + authority, + sig, + ); + } + } + } + ensure!(missing_signatures == 0, Error::::NotEnoughCorrectSignatures); + + Ok(()) +} + +/// Extract MMR root from commitment payload. +fn extract_mmr_root, I: 'static>( + commitment: &BridgedBeefySignedCommitment, +) -> Result, Error> { + commitment + .commitment + .payload + .get_decoded(&bp_beefy::MMR_ROOT_PAYLOAD_ID) + .ok_or(Error::MmrRootMissingFromCommitment) +} + +pub(crate) fn verify_commitment, I: 'static>( + commitment: &BridgedBeefySignedCommitment, + authority_set_info: &BridgedBeefyAuthoritySetInfo, + authority_set: &BridgedBeefyAuthoritySet, +) -> Result, Error> { + // Ensure that the commitment is signed by the best known BEEFY validator set. + ensure!( + commitment.commitment.validator_set_id == authority_set_info.id, + Error::::InvalidCommitmentValidatorSetId + ); + ensure!( + commitment.signatures.len() == authority_set_info.len as usize, + Error::::InvalidCommitmentSignaturesLen + ); + + verify_authority_set(authority_set_info, authority_set)?; + verify_signatures(commitment, authority_set)?; + + extract_mmr_root(commitment) +} + +/// Verify MMR proof of given leaf. +pub(crate) fn verify_beefy_mmr_leaf, I: 'static>( + mmr_leaf: &BridgedBeefyMmrLeaf, + mmr_proof: BridgedMmrProof, + mmr_root: BridgedMmrHash, +) -> Result<(), Error> { + let mmr_proof_leaf_count = mmr_proof.leaf_count; + let mmr_proof_length = mmr_proof.items.len(); + + // Verify the mmr proof for the provided leaf. + let mmr_leaf_hash = BridgedMmrHashing::::hash(&mmr_leaf.encode()); + verify_mmr_leaves_proof( + mmr_root, + vec![BridgedMmrDataOrHash::::Hash(mmr_leaf_hash)], + mmr_proof, + ) + .map_err(|e| { + log::error!( + target: LOG_TARGET, + "MMR proof of leaf {:?} (root: {:?}, leaf count: {}, len: {}) \ + verification has failed with error: {:?}", + mmr_leaf_hash, + mmr_root, + mmr_proof_leaf_count, + mmr_proof_length, + e, + ); + + Error::::MmrProofVerificationFailed + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{mock::*, mock_chain::*, *}; + use bp_beefy::{BeefyPayload, MMR_ROOT_PAYLOAD_ID}; + use frame_support::{assert_noop, assert_ok}; + use sp_consensus_beefy::ValidatorSet; + + #[test] + fn submit_commitment_checks_metadata() { + run_test_with_initialize(8, || { + // Fails if `commitment.commitment.validator_set_id` differs. + let mut header = ChainBuilder::new(8).append_finalized_header().to_header(); + header.customize_commitment( + |commitment| { + commitment.validator_set_id += 1; + }, + &validator_pairs(0, 8), + 6, + ); + assert_noop!( + import_commitment(header), + Error::::InvalidCommitmentValidatorSetId, + ); + + // Fails if `commitment.signatures.len()` differs. + let mut header = ChainBuilder::new(8).append_finalized_header().to_header(); + header.customize_signatures(|signatures| { + signatures.pop(); + }); + assert_noop!( + import_commitment(header), + Error::::InvalidCommitmentSignaturesLen, + ); + }); + } + + #[test] + fn submit_commitment_checks_validator_set() { + run_test_with_initialize(8, || { + // Fails if `ValidatorSet::id` differs. + let mut header = ChainBuilder::new(8).append_finalized_header().to_header(); + header.validator_set = ValidatorSet::new(validator_ids(0, 8), 1).unwrap(); + assert_noop!( + import_commitment(header), + Error::::InvalidValidatorSetId, + ); + + // Fails if `ValidatorSet::len()` differs. + let mut header = ChainBuilder::new(8).append_finalized_header().to_header(); + header.validator_set = ValidatorSet::new(validator_ids(0, 5), 0).unwrap(); + assert_noop!( + import_commitment(header), + Error::::InvalidValidatorSetLen, + ); + + // Fails if the validators differ. + let mut header = ChainBuilder::new(8).append_finalized_header().to_header(); + header.validator_set = ValidatorSet::new(validator_ids(3, 8), 0).unwrap(); + assert_noop!( + import_commitment(header), + Error::::InvalidValidatorSetRoot, + ); + }); + } + + #[test] + fn submit_commitment_checks_signatures() { + run_test_with_initialize(20, || { + // Fails when there aren't enough signatures. + let mut header = ChainBuilder::new(20).append_finalized_header().to_header(); + header.customize_signatures(|signatures| { + let first_signature_idx = signatures.iter().position(Option::is_some).unwrap(); + signatures[first_signature_idx] = None; + }); + assert_noop!( + import_commitment(header), + Error::::NotEnoughCorrectSignatures, + ); + + // Fails when there aren't enough correct signatures. + let mut header = ChainBuilder::new(20).append_finalized_header().to_header(); + header.customize_signatures(|signatures| { + let first_signature_idx = signatures.iter().position(Option::is_some).unwrap(); + let last_signature_idx = signatures.len() - + signatures.iter().rev().position(Option::is_some).unwrap() - + 1; + signatures[first_signature_idx] = signatures[last_signature_idx].clone(); + }); + assert_noop!( + import_commitment(header), + Error::::NotEnoughCorrectSignatures, + ); + + // Returns Ok(()) when there are enough signatures, even if some are incorrect. + let mut header = ChainBuilder::new(20).append_finalized_header().to_header(); + header.customize_signatures(|signatures| { + let first_signature_idx = signatures.iter().position(Option::is_some).unwrap(); + let first_missing_signature_idx = + signatures.iter().position(Option::is_none).unwrap(); + signatures[first_missing_signature_idx] = signatures[first_signature_idx].clone(); + }); + assert_ok!(import_commitment(header)); + }); + } + + #[test] + fn submit_commitment_checks_mmr_proof() { + run_test_with_initialize(1, || { + let validators = validator_pairs(0, 1); + + // Fails if leaf is not for parent. + let mut header = ChainBuilder::new(1).append_finalized_header().to_header(); + header.leaf.parent_number_and_hash.0 += 1; + assert_noop!( + import_commitment(header), + Error::::MmrProofVerificationFailed, + ); + + // Fails if mmr proof is incorrect. + let mut header = ChainBuilder::new(1).append_finalized_header().to_header(); + header.leaf_proof.leaf_indices[0] += 1; + assert_noop!( + import_commitment(header), + Error::::MmrProofVerificationFailed, + ); + + // Fails if mmr root is incorrect. + let mut header = ChainBuilder::new(1).append_finalized_header().to_header(); + // Replace MMR root with zeroes. + header.customize_commitment( + |commitment| { + commitment.payload = + BeefyPayload::from_single_entry(MMR_ROOT_PAYLOAD_ID, [0u8; 32].encode()); + }, + &validators, + 1, + ); + assert_noop!( + import_commitment(header), + Error::::MmrProofVerificationFailed, + ); + }); + } + + #[test] + fn submit_commitment_extracts_mmr_root() { + run_test_with_initialize(1, || { + let validators = validator_pairs(0, 1); + + // Fails if there is no mmr root in the payload. + let mut header = ChainBuilder::new(1).append_finalized_header().to_header(); + // Remove MMR root from the payload. + header.customize_commitment( + |commitment| { + commitment.payload = BeefyPayload::from_single_entry(*b"xy", vec![]); + }, + &validators, + 1, + ); + assert_noop!( + import_commitment(header), + Error::::MmrRootMissingFromCommitment, + ); + + // Fails if mmr root can't be decoded. + let mut header = ChainBuilder::new(1).append_finalized_header().to_header(); + // MMR root is a 32-byte array and we have replaced it with single byte + header.customize_commitment( + |commitment| { + commitment.payload = + BeefyPayload::from_single_entry(MMR_ROOT_PAYLOAD_ID, vec![42]); + }, + &validators, + 1, + ); + assert_noop!( + import_commitment(header), + Error::::MmrRootMissingFromCommitment, + ); + }); + } + + #[test] + fn submit_commitment_stores_valid_data() { + run_test_with_initialize(20, || { + let header = ChainBuilder::new(20).append_handoff_header(30).to_header(); + assert_ok!(import_commitment(header.clone())); + + assert_eq!(ImportedCommitmentsInfo::::get().unwrap().best_block_number, 1); + assert_eq!(CurrentAuthoritySetInfo::::get().id, 1); + assert_eq!(CurrentAuthoritySetInfo::::get().len, 30); + assert_eq!( + ImportedCommitments::::get(1).unwrap(), + bp_beefy::ImportedCommitment { + parent_number_and_hash: (0, [0; 32].into()), + mmr_root: header.mmr_root, + }, + ); + }); + } +} diff --git a/bridges/primitives/beefy/Cargo.toml b/bridges/primitives/beefy/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..2a13685207cc633fe18633525231866511afd01e --- /dev/null +++ b/bridges/primitives/beefy/Cargo.toml @@ -0,0 +1,47 @@ +[package] +name = "bp-beefy" +description = "Primitives of pallet-bridge-beefy module." +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +publish = false + +[lints] +workspace = true + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["bit-vec", "derive"] } +serde = { default-features = false, features = ["alloc", "derive"], workspace = true } + +# Bridge Dependencies + +bp-runtime = { path = "../runtime", default-features = false } + +# Substrate Dependencies + +binary-merkle-tree = { path = "../../../substrate/utils/binary-merkle-tree", default-features = false } +sp-consensus-beefy = { path = "../../../substrate/primitives/consensus/beefy", default-features = false } +frame-support = { path = "../../../substrate/frame/support", default-features = false } +pallet-beefy-mmr = { path = "../../../substrate/frame/beefy-mmr", default-features = false } +pallet-mmr = { path = "../../../substrate/frame/merkle-mountain-range", default-features = false } +sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false } +sp-std = { path = "../../../substrate/primitives/std", default-features = false } + +[features] +default = ["std"] +std = [ + "binary-merkle-tree/std", + "bp-runtime/std", + "codec/std", + "frame-support/std", + "pallet-beefy-mmr/std", + "pallet-mmr/std", + "scale-info/std", + "serde/std", + "sp-consensus-beefy/std", + "sp-runtime/std", + "sp-std/std", +] diff --git a/bridges/primitives/beefy/src/lib.rs b/bridges/primitives/beefy/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..0441781e79a66f785b985047ad56da70c0f13d49 --- /dev/null +++ b/bridges/primitives/beefy/src/lib.rs @@ -0,0 +1,151 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Primitives that are used to interact with BEEFY bridge pallet. + +#![cfg_attr(not(feature = "std"), no_std)] +#![warn(missing_docs)] + +pub use binary_merkle_tree::merkle_root; +pub use pallet_beefy_mmr::BeefyEcdsaToEthereum; +pub use pallet_mmr::{ + primitives::{DataOrHash as MmrDataOrHash, Proof as MmrProof}, + verify_leaves_proof as verify_mmr_leaves_proof, +}; +pub use sp_consensus_beefy::{ + ecdsa_crypto::{ + AuthorityId as EcdsaValidatorId, AuthoritySignature as EcdsaValidatorSignature, + }, + known_payloads::MMR_ROOT_ID as MMR_ROOT_PAYLOAD_ID, + mmr::{BeefyAuthoritySet, MmrLeafVersion}, + BeefyAuthorityId, Commitment, Payload as BeefyPayload, SignedCommitment, ValidatorSet, + ValidatorSetId, BEEFY_ENGINE_ID, +}; + +use bp_runtime::{BasicOperatingMode, BlockNumberOf, Chain, HashOf}; +use codec::{Decode, Encode}; +use frame_support::Parameter; +use scale_info::TypeInfo; +use serde::{Deserialize, Serialize}; +use sp_runtime::{ + traits::{Convert, MaybeSerializeDeserialize}, + RuntimeAppPublic, RuntimeDebug, +}; +use sp_std::prelude::*; + +/// Substrate-based chain with BEEFY && MMR pallets deployed. +/// +/// Both BEEFY and MMR pallets and their clients may be configured to use different +/// primitives. Some of types can be configured in low-level pallets, but are constrained +/// when BEEFY+MMR bundle is used. +pub trait ChainWithBeefy: Chain { + /// The hashing algorithm used to compute the digest of the BEEFY commitment. + /// + /// Corresponds to the hashing algorithm, used by `sc_consensus_beefy::BeefyKeystore`. + type CommitmentHasher: sp_runtime::traits::Hash; + + /// The hashing algorithm used to build the MMR. + /// + /// The same algorithm is also used to compute merkle roots in BEEFY + /// (e.g. validator addresses root in leaf data). + /// + /// Corresponds to the `Hashing` field of the `pallet-mmr` configuration. + type MmrHashing: sp_runtime::traits::Hash; + + /// The output type of the hashing algorithm used to build the MMR. + /// + /// This type is actually stored in the MMR. + + /// Corresponds to the `Hash` field of the `pallet-mmr` configuration. + type MmrHash: sp_std::hash::Hash + + Parameter + + Copy + + AsRef<[u8]> + + Default + + MaybeSerializeDeserialize + + PartialOrd; + + /// The type expected for the MMR leaf extra data. + type BeefyMmrLeafExtra: Parameter; + + /// A way to identify a BEEFY validator. + /// + /// Corresponds to the `BeefyId` field of the `pallet-beefy` configuration. + type AuthorityId: BeefyAuthorityId + Parameter; + + /// A way to convert validator id to its raw representation in the BEEFY merkle tree. + /// + /// Corresponds to the `BeefyAuthorityToMerkleLeaf` field of the `pallet-beefy-mmr` + /// configuration. + type AuthorityIdToMerkleLeaf: Convert>; +} + +/// BEEFY validator id used by given Substrate chain. +pub type BeefyAuthorityIdOf = ::AuthorityId; +/// BEEFY validator set, containing both validator identifiers and the numeric set id. +pub type BeefyAuthoritySetOf = ValidatorSet>; +/// BEEFY authority set, containing both validator identifiers and the numeric set id. +pub type BeefyAuthoritySetInfoOf = sp_consensus_beefy::mmr::BeefyAuthoritySet>; +/// BEEFY validator signature used by given Substrate chain. +pub type BeefyValidatorSignatureOf = + <::AuthorityId as RuntimeAppPublic>::Signature; +/// Signed BEEFY commitment used by given Substrate chain. +pub type BeefySignedCommitmentOf = + SignedCommitment, BeefyValidatorSignatureOf>; +/// Hash algorithm, used to compute the digest of the BEEFY commitment before signing it. +pub type BeefyCommitmentHasher = ::CommitmentHasher; +/// Hash algorithm used in Beefy MMR construction by given Substrate chain. +pub type MmrHashingOf = ::MmrHashing; +/// Hash type, used in MMR construction by given Substrate chain. +pub type MmrHashOf = ::MmrHash; +/// BEEFY MMR proof type used by the given Substrate chain. +pub type MmrProofOf = MmrProof>; +/// The type of the MMR leaf extra data used by the given Substrate chain. +pub type BeefyMmrLeafExtraOf = ::BeefyMmrLeafExtra; +/// A way to convert a validator id to its raw representation in the BEEFY merkle tree, used by +/// the given Substrate chain. +pub type BeefyAuthorityIdToMerkleLeafOf = ::AuthorityIdToMerkleLeaf; +/// Actual type of leafs in the BEEFY MMR. +pub type BeefyMmrLeafOf = sp_consensus_beefy::mmr::MmrLeaf< + BlockNumberOf, + HashOf, + MmrHashOf, + BeefyMmrLeafExtraOf, +>; + +/// Data required for initializing the BEEFY pallet. +/// +/// Provides the initial context that the bridge needs in order to know +/// where to start the sync process from. +#[derive(Encode, Decode, RuntimeDebug, PartialEq, Clone, TypeInfo, Serialize, Deserialize)] +pub struct InitializationData { + /// Pallet operating mode. + pub operating_mode: BasicOperatingMode, + /// Number of the best block, finalized by BEEFY. + pub best_block_number: BlockNumber, + /// BEEFY authority set that will be finalizing descendants of the `best_beefy_block_number` + /// block. + pub authority_set: BeefyAuthoritySet, +} + +/// Basic data, stored by the pallet for every imported commitment. +#[derive(Encode, Decode, RuntimeDebug, PartialEq, TypeInfo)] +pub struct ImportedCommitment { + /// Block number and hash of the finalized block parent. + pub parent_number_and_hash: (BlockNumber, BlockHash), + /// MMR root at the imported block. + pub mmr_root: MmrHash, +} diff --git a/bridges/relays/client-substrate/Cargo.toml b/bridges/relays/client-substrate/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..2c98441fc3017e8bcd4a213b27d5f5d2fee3223d --- /dev/null +++ b/bridges/relays/client-substrate/Cargo.toml @@ -0,0 +1,61 @@ +[package] +name = "relay-substrate-client" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +publish = false + +[lints] +workspace = true + +[dependencies] +async-std = { version = "1.9.0", features = ["attributes"] } +async-trait = "0.1.79" +codec = { package = "parity-scale-codec", version = "3.6.1" } +futures = "0.3.30" +jsonrpsee = { version = "0.22", features = ["macros", "ws-client"] } +log = { workspace = true } +num-traits = "0.2" +rand = "0.8.5" +scale-info = { version = "2.11.1", features = ["derive"] } +tokio = { version = "1.37", features = ["rt-multi-thread"] } +thiserror = { workspace = true } + +# Bridge dependencies + +bp-header-chain = { path = "../../primitives/header-chain" } +bp-messages = { path = "../../primitives/messages" } +bp-polkadot-core = { path = "../../primitives/polkadot-core" } +bp-runtime = { path = "../../primitives/runtime" } +pallet-bridge-messages = { path = "../../modules/messages" } +finality-relay = { path = "../finality" } +relay-utils = { path = "../utils" } + +# Substrate Dependencies + +frame-support = { path = "../../../substrate/frame/support" } +frame-system = { path = "../../../substrate/frame/system" } +pallet-balances = { path = "../../../substrate/frame/balances" } +pallet-transaction-payment = { path = "../../../substrate/frame/transaction-payment" } +pallet-transaction-payment-rpc-runtime-api = { path = "../../../substrate/frame/transaction-payment/rpc/runtime-api" } +pallet-utility = { path = "../../../substrate/frame/utility" } +sc-chain-spec = { path = "../../../substrate/client/chain-spec" } +sc-rpc-api = { path = "../../../substrate/client/rpc-api" } +sc-transaction-pool-api = { path = "../../../substrate/client/transaction-pool/api" } +sp-consensus-grandpa = { path = "../../../substrate/primitives/consensus/grandpa" } +sp-core = { path = "../../../substrate/primitives/core" } +sp-rpc = { path = "../../../substrate/primitives/rpc" } +sp-runtime = { path = "../../../substrate/primitives/runtime" } +sp-std = { path = "../../../substrate/primitives/std" } +sp-trie = { path = "../../../substrate/primitives/trie" } +sp-version = { path = "../../../substrate/primitives/version" } + +# Polkadot Dependencies + +xcm = { package = "staging-xcm", path = "../../../polkadot/xcm" } + +[features] +default = [] +test-helpers = [] diff --git a/bridges/relays/client-substrate/src/calls.rs b/bridges/relays/client-substrate/src/calls.rs new file mode 100644 index 0000000000000000000000000000000000000000..71b9ec84aca30cc2384b50d4c99466798f46d72f --- /dev/null +++ b/bridges/relays/client-substrate/src/calls.rs @@ -0,0 +1,59 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Basic runtime calls. + +use codec::{Decode, Encode}; +use scale_info::TypeInfo; +use sp_std::{boxed::Box, vec::Vec}; + +use xcm::{VersionedLocation, VersionedXcm}; + +/// A minimized version of `frame-system::Call` that can be used without a runtime. +#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)] +#[allow(non_camel_case_types)] +pub enum SystemCall { + /// `frame-system::Call::remark` + #[codec(index = 1)] + remark(Vec), +} + +/// A minimized version of `pallet-utility::Call` that can be used without a runtime. +#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)] +#[allow(non_camel_case_types)] +pub enum UtilityCall { + /// `pallet-utility::Call::batch_all` + #[codec(index = 2)] + batch_all(Vec), +} + +/// A minimized version of `pallet-sudo::Call` that can be used without a runtime. +#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)] +#[allow(non_camel_case_types)] +pub enum SudoCall { + /// `pallet-sudo::Call::sudo` + #[codec(index = 0)] + sudo(Box), +} + +/// A minimized version of `pallet-xcm::Call`, that can be used without a runtime. +#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)] +#[allow(non_camel_case_types)] +pub enum XcmCall { + /// `pallet-xcm::Call::send` + #[codec(index = 0)] + send(Box, Box>), +} diff --git a/bridges/relays/client-substrate/src/chain.rs b/bridges/relays/client-substrate/src/chain.rs new file mode 100644 index 0000000000000000000000000000000000000000..2aba5f5674d97b2bcf8b3e2633c36b6bee52d98a --- /dev/null +++ b/bridges/relays/client-substrate/src/chain.rs @@ -0,0 +1,286 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::calls::UtilityCall; + +use crate::SimpleRuntimeVersion; +use bp_header_chain::ChainWithGrandpa as ChainWithGrandpaBase; +use bp_messages::ChainWithMessages as ChainWithMessagesBase; +use bp_runtime::{ + Chain as ChainBase, EncodedOrDecodedCall, HashOf, Parachain as ParachainBase, TransactionEra, + TransactionEraOf, UnderlyingChainProvider, +}; +use codec::{Codec, Decode, Encode}; +use jsonrpsee::core::{DeserializeOwned, Serialize}; +use num_traits::Zero; +use sc_transaction_pool_api::TransactionStatus; +use scale_info::TypeInfo; +use sp_core::{storage::StorageKey, Pair}; +use sp_runtime::{ + generic::SignedBlock, + traits::{Block as BlockT, Member}, + ConsensusEngineId, EncodedJustification, +}; +use std::{fmt::Debug, time::Duration}; + +/// Substrate-based chain from minimal relay-client point of view. +pub trait Chain: ChainBase + Clone { + /// Chain name. + const NAME: &'static str; + /// Name of the runtime API method that is returning best known finalized header number + /// and hash (as tuple). + /// + /// Keep in mind that this method is normally provided by the other chain, which is + /// bridged with this chain. + const BEST_FINALIZED_HEADER_ID_METHOD: &'static str; + + /// Average block interval. + /// + /// How often blocks are produced on that chain. It's suggested to set this value + /// to match the block time of the chain. + const AVERAGE_BLOCK_INTERVAL: Duration; + + /// Block type. + type SignedBlock: Member + Serialize + DeserializeOwned + BlockWithJustification; + /// The aggregated `Call` type. + type Call: Clone + Codec + Debug + Send + Sync; +} + +/// Bridge-supported network definition. +/// +/// Used to abstract away CLI commands. +pub trait ChainWithRuntimeVersion: Chain { + /// Current version of the chain runtime, known to relay. + /// + /// can be `None` if relay is not going to submit transactions to that chain. + const RUNTIME_VERSION: Option; +} + +/// Substrate-based relay chain that supports parachains. +/// +/// We assume that the parachains are supported using `runtime_parachains::paras` pallet. +pub trait RelayChain: Chain { + /// Name of the `runtime_parachains::paras` pallet in the runtime of this chain. + const PARAS_PALLET_NAME: &'static str; +} + +/// Substrate-based chain that is using direct GRANDPA finality from minimal relay-client point of +/// view. +/// +/// Keep in mind that parachains are relying on relay chain GRANDPA, so they should not implement +/// this trait. +pub trait ChainWithGrandpa: Chain + ChainWithGrandpaBase { + /// Name of the runtime API method that is returning the GRANDPA info associated with the + /// headers accepted by the `submit_finality_proofs` extrinsic in the queried block. + /// + /// Keep in mind that this method is normally provided by the other chain, which is + /// bridged with this chain. + const SYNCED_HEADERS_GRANDPA_INFO_METHOD: &'static str; + + /// The type of the key owner proof used by the grandpa engine. + type KeyOwnerProof: Decode + TypeInfo + Send; +} + +/// Substrate-based parachain from minimal relay-client point of view. +pub trait Parachain: Chain + ParachainBase {} + +impl Parachain for T where T: UnderlyingChainProvider + Chain + ParachainBase {} + +/// Substrate-based chain with messaging support from minimal relay-client point of view. +pub trait ChainWithMessages: Chain + ChainWithMessagesBase { + // TODO (https://github.com/paritytech/parity-bridges-common/issues/1692): check all the names + // after the issue is fixed - all names must be changed + + /// Name of the bridge relayers pallet (used in `construct_runtime` macro call) that is deployed + /// at some other chain to bridge with this `ChainWithMessages`. + /// + /// We assume that all chains that are bridging with this `ChainWithMessages` are using + /// the same name. + const WITH_CHAIN_RELAYERS_PALLET_NAME: Option<&'static str>; + + /// Name of the `ToOutboundLaneApi::message_details` runtime API method. + /// The method is provided by the runtime that is bridged with this `ChainWithMessages`. + const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str; + + /// Name of the `FromInboundLaneApi::message_details` runtime API method. + /// The method is provided by the runtime that is bridged with this `ChainWithMessages`. + const FROM_CHAIN_MESSAGE_DETAILS_METHOD: &'static str; +} + +/// Call type used by the chain. +pub type CallOf = ::Call; +/// Transaction status of the chain. +pub type TransactionStatusOf = TransactionStatus, HashOf>; + +/// Substrate-based chain with `AccountData` generic argument of `frame_system::AccountInfo` set to +/// the `pallet_balances::AccountData`. +pub trait ChainWithBalances: Chain { + /// Return runtime storage key for getting `frame_system::AccountInfo` of given account. + fn account_info_storage_key(account_id: &Self::AccountId) -> StorageKey; +} + +/// SCALE-encoded extrinsic. +pub type EncodedExtrinsic = Vec; + +/// Block with justification. +pub trait BlockWithJustification
{ + /// Return block header. + fn header(&self) -> Header; + /// Return encoded block extrinsics. + fn extrinsics(&self) -> Vec; + /// Return block justification, if known. + fn justification(&self, engine_id: ConsensusEngineId) -> Option<&EncodedJustification>; +} + +/// Transaction before it is signed. +#[derive(Clone, Debug, PartialEq)] +pub struct UnsignedTransaction { + /// Runtime call of this transaction. + pub call: EncodedOrDecodedCall, + /// Transaction nonce. + pub nonce: C::Nonce, + /// Tip included into transaction. + pub tip: C::Balance, + /// Transaction era used by the chain. + pub era: TransactionEraOf, +} + +impl UnsignedTransaction { + /// Create new unsigned transaction with given call, nonce, era and zero tip. + pub fn new(call: EncodedOrDecodedCall, nonce: C::Nonce) -> Self { + Self { call, nonce, era: TransactionEra::Immortal, tip: Zero::zero() } + } + + /// Convert to the transaction of the other compatible chain. + pub fn switch_chain(self) -> UnsignedTransaction + where + Other: Chain< + Nonce = C::Nonce, + Balance = C::Balance, + BlockNumber = C::BlockNumber, + Hash = C::Hash, + >, + { + UnsignedTransaction { + call: EncodedOrDecodedCall::Encoded(self.call.into_encoded()), + nonce: self.nonce, + tip: self.tip, + era: self.era, + } + } + + /// Set transaction tip. + #[must_use] + pub fn tip(mut self, tip: C::Balance) -> Self { + self.tip = tip; + self + } + + /// Set transaction era. + #[must_use] + pub fn era(mut self, era: TransactionEraOf) -> Self { + self.era = era; + self + } +} + +/// Account key pair used by transactions signing scheme. +pub type AccountKeyPairOf = ::AccountKeyPair; + +/// Substrate-based chain transactions signing scheme. +pub trait ChainWithTransactions: Chain { + /// Type of key pairs used to sign transactions. + type AccountKeyPair: Pair + Clone + Send + Sync; + /// Signed transaction. + type SignedTransaction: Clone + Debug + Codec + Send + 'static; + + /// Create transaction for given runtime call, signed by given account. + fn sign_transaction( + param: SignParam, + unsigned: UnsignedTransaction, + ) -> Result + where + Self: Sized; +} + +/// Sign transaction parameters +pub struct SignParam { + /// Version of the runtime specification. + pub spec_version: u32, + /// Transaction version + pub transaction_version: u32, + /// Hash of the genesis block. + pub genesis_hash: HashOf, + /// Signer account + pub signer: AccountKeyPairOf, +} + +impl BlockWithJustification for SignedBlock { + fn header(&self) -> Block::Header { + self.block.header().clone() + } + + fn extrinsics(&self) -> Vec { + self.block.extrinsics().iter().map(Encode::encode).collect() + } + + fn justification(&self, engine_id: ConsensusEngineId) -> Option<&EncodedJustification> { + self.justifications.as_ref().and_then(|j| j.get(engine_id)) + } +} + +/// Trait that provides functionality defined inside `pallet-utility` +pub trait UtilityPallet { + /// Create batch call from given calls vector. + fn build_batch_call(calls: Vec) -> C::Call; +} + +/// Structure that implements `UtilityPalletProvider` based on a full runtime. +pub struct FullRuntimeUtilityPallet { + _phantom: std::marker::PhantomData, +} + +impl UtilityPallet for FullRuntimeUtilityPallet +where + C: Chain, + R: pallet_utility::Config, + ::RuntimeCall: From>, +{ + fn build_batch_call(calls: Vec) -> C::Call { + pallet_utility::Call::batch_all { calls }.into() + } +} + +/// Structure that implements `UtilityPalletProvider` based on a call conversion. +pub struct MockedRuntimeUtilityPallet { + _phantom: std::marker::PhantomData, +} + +impl UtilityPallet for MockedRuntimeUtilityPallet +where + C: Chain, + C::Call: From>, +{ + fn build_batch_call(calls: Vec) -> C::Call { + UtilityCall::batch_all(calls).into() + } +} + +/// Substrate-based chain that uses `pallet-utility`. +pub trait ChainWithUtilityPallet: Chain { + /// The utility pallet provider. + type UtilityPallet: UtilityPallet; +} diff --git a/bridges/relays/client-substrate/src/client.rs b/bridges/relays/client-substrate/src/client.rs new file mode 100644 index 0000000000000000000000000000000000000000..afbda8599b2aa03c4ed4a7c33a93fdd429646516 --- /dev/null +++ b/bridges/relays/client-substrate/src/client.rs @@ -0,0 +1,990 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Substrate node client. + +use crate::{ + chain::{Chain, ChainWithTransactions}, + guard::Environment, + rpc::{ + SubstrateAuthorClient, SubstrateChainClient, SubstrateFinalityClient, + SubstrateFrameSystemClient, SubstrateStateClient, SubstrateSystemClient, + }, + transaction_stall_timeout, AccountKeyPairOf, ChainWithGrandpa, ConnectionParams, Error, HashOf, + HeaderIdOf, Result, SignParam, TransactionTracker, UnsignedTransaction, +}; + +use async_std::sync::{Arc, Mutex, RwLock}; +use async_trait::async_trait; +use bp_runtime::{HeaderIdProvider, StorageDoubleMapKeyProvider, StorageMapKeyProvider}; +use codec::{Decode, Encode}; +use frame_support::weights::Weight; +use futures::{SinkExt, StreamExt}; +use jsonrpsee::{ + core::DeserializeOwned, + ws_client::{WsClient as RpcClient, WsClientBuilder as RpcClientBuilder}, +}; +use num_traits::{Saturating, Zero}; +use pallet_transaction_payment::RuntimeDispatchInfo; +use relay_utils::{relay_loop::RECONNECT_DELAY, STALL_TIMEOUT}; +use sp_core::{ + storage::{StorageData, StorageKey}, + Bytes, Hasher, Pair, +}; +use sp_runtime::{ + traits::Header as HeaderT, + transaction_validity::{TransactionSource, TransactionValidity}, +}; +use sp_trie::StorageProof; +use sp_version::RuntimeVersion; +use std::{cmp::Ordering, future::Future}; + +const SUB_API_GRANDPA_AUTHORITIES: &str = "GrandpaApi_grandpa_authorities"; +const SUB_API_GRANDPA_GENERATE_KEY_OWNERSHIP_PROOF: &str = + "GrandpaApi_generate_key_ownership_proof"; +const SUB_API_TXPOOL_VALIDATE_TRANSACTION: &str = "TaggedTransactionQueue_validate_transaction"; +const SUB_API_TX_PAYMENT_QUERY_INFO: &str = "TransactionPaymentApi_query_info"; +const MAX_SUBSCRIPTION_CAPACITY: usize = 4096; + +/// The difference between best block number and number of its ancestor, that is enough +/// for us to consider that ancestor an "ancient" block with dropped state. +/// +/// The relay does not assume that it is connected to the archive node, so it always tries +/// to use the best available chain state. But sometimes it still may use state of some +/// old block. If the state of that block is already dropped, relay will see errors when +/// e.g. it tries to prove something. +/// +/// By default Substrate-based nodes are storing state for last 256 blocks. We'll use +/// half of this value. +pub const ANCIENT_BLOCK_THRESHOLD: u32 = 128; + +/// Returns `true` if we think that the state is already discarded for given block. +pub fn is_ancient_block + PartialOrd + Saturating>(block: N, best: N) -> bool { + best.saturating_sub(block) >= N::from(ANCIENT_BLOCK_THRESHOLD) +} + +/// Opaque justifications subscription type. +pub struct Subscription(pub(crate) Mutex>>); + +/// Opaque GRANDPA authorities set. +pub type OpaqueGrandpaAuthoritiesSet = Vec; + +/// A simple runtime version. It only includes the `spec_version` and `transaction_version`. +#[derive(Copy, Clone, Debug)] +pub struct SimpleRuntimeVersion { + /// Version of the runtime specification. + pub spec_version: u32, + /// All existing dispatches are fully compatible when this number doesn't change. + pub transaction_version: u32, +} + +impl SimpleRuntimeVersion { + /// Create a new instance of `SimpleRuntimeVersion` from a `RuntimeVersion`. + pub const fn from_runtime_version(runtime_version: &RuntimeVersion) -> Self { + Self { + spec_version: runtime_version.spec_version, + transaction_version: runtime_version.transaction_version, + } + } +} + +/// Chain runtime version in client +#[derive(Copy, Clone, Debug)] +pub enum ChainRuntimeVersion { + /// Auto query from chain. + Auto, + /// Custom runtime version, defined by user. + Custom(SimpleRuntimeVersion), +} + +/// Substrate client type. +/// +/// Cloning `Client` is a cheap operation that only clones internal references. Different +/// clones of the same client are guaranteed to use the same references. +pub struct Client { + // Lock order: `submit_signed_extrinsic_lock`, `data` + /// Client connection params. + params: Arc, + /// Saved chain runtime version. + chain_runtime_version: ChainRuntimeVersion, + /// If several tasks are submitting their transactions simultaneously using + /// `submit_signed_extrinsic` method, they may get the same transaction nonce. So one of + /// transactions will be rejected from the pool. This lock is here to prevent situations like + /// that. + submit_signed_extrinsic_lock: Arc>, + /// Genesis block hash. + genesis_hash: HashOf, + /// Shared dynamic data. + data: Arc>, +} + +/// Client data, shared by all `Client` clones. +struct ClientData { + /// Tokio runtime handle. + tokio: Arc, + /// Substrate RPC client. + client: Arc, +} + +/// Already encoded value. +struct PreEncoded(Vec); + +impl Encode for PreEncoded { + fn encode(&self) -> Vec { + self.0.clone() + } +} + +#[async_trait] +impl relay_utils::relay_loop::Client for Client { + type Error = Error; + + async fn reconnect(&mut self) -> Result<()> { + let mut data = self.data.write().await; + let (tokio, client) = Self::build_client(&self.params).await?; + data.tokio = tokio; + data.client = client; + Ok(()) + } +} + +impl Clone for Client { + fn clone(&self) -> Self { + Client { + params: self.params.clone(), + chain_runtime_version: self.chain_runtime_version, + submit_signed_extrinsic_lock: self.submit_signed_extrinsic_lock.clone(), + genesis_hash: self.genesis_hash, + data: self.data.clone(), + } + } +} + +impl std::fmt::Debug for Client { + fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result { + fmt.debug_struct("Client").field("genesis_hash", &self.genesis_hash).finish() + } +} + +impl Client { + /// Returns client that is able to call RPCs on Substrate node over websocket connection. + /// + /// This function will keep connecting to given Substrate node until connection is established + /// and is functional. If attempt fail, it will wait for `RECONNECT_DELAY` and retry again. + pub async fn new(params: ConnectionParams) -> Self { + let params = Arc::new(params); + loop { + match Self::try_connect(params.clone()).await { + Ok(client) => return client, + Err(error) => log::error!( + target: "bridge", + "Failed to connect to {} node: {:?}. Going to retry in {}s", + C::NAME, + error, + RECONNECT_DELAY.as_secs(), + ), + } + + async_std::task::sleep(RECONNECT_DELAY).await; + } + } + + /// Try to connect to Substrate node over websocket. Returns Substrate RPC client if connection + /// has been established or error otherwise. + pub async fn try_connect(params: Arc) -> Result { + let (tokio, client) = Self::build_client(¶ms).await?; + + let number: C::BlockNumber = Zero::zero(); + let genesis_hash_client = client.clone(); + let genesis_hash = tokio + .spawn(async move { + SubstrateChainClient::::block_hash(&*genesis_hash_client, Some(number)).await + }) + .await??; + + let chain_runtime_version = params.chain_runtime_version; + let mut client = Self { + params, + chain_runtime_version, + submit_signed_extrinsic_lock: Arc::new(Mutex::new(())), + genesis_hash, + data: Arc::new(RwLock::new(ClientData { tokio, client })), + }; + Self::ensure_correct_runtime_version(&mut client, chain_runtime_version).await?; + Ok(client) + } + + // Check runtime version to understand if we need are connected to expected version, or we + // need to wait for upgrade, we need to abort immediately. + async fn ensure_correct_runtime_version>( + env: &mut E, + expected: ChainRuntimeVersion, + ) -> Result<()> { + // we are only interested if version mode is bundled or passed using CLI + let expected = match expected { + ChainRuntimeVersion::Auto => return Ok(()), + ChainRuntimeVersion::Custom(expected) => expected, + }; + + // we need to wait if actual version is < than expected, we are OK of versions are the + // same and we need to abort if actual version is > than expected + let actual = SimpleRuntimeVersion::from_runtime_version(&env.runtime_version().await?); + match actual.spec_version.cmp(&expected.spec_version) { + Ordering::Less => + Err(Error::WaitingForRuntimeUpgrade { chain: C::NAME.into(), expected, actual }), + Ordering::Equal => Ok(()), + Ordering::Greater => { + log::error!( + target: "bridge", + "The {} client is configured to use runtime version {expected:?} and actual \ + version is {actual:?}. Aborting", + C::NAME, + ); + env.abort().await; + Err(Error::Custom("Aborted".into())) + }, + } + } + + /// Build client to use in connection. + async fn build_client( + params: &ConnectionParams, + ) -> Result<(Arc, Arc)> { + let tokio = tokio::runtime::Runtime::new()?; + + let uri = match params.uri { + Some(ref uri) => uri.clone(), + None => { + format!( + "{}://{}:{}{}", + if params.secure { "wss" } else { "ws" }, + params.host, + params.port, + match params.path { + Some(ref path) => format!("/{}", path), + None => String::new(), + }, + ) + }, + }; + log::info!(target: "bridge", "Connecting to {} node at {}", C::NAME, uri); + + let client = tokio + .spawn(async move { + RpcClientBuilder::default() + .max_buffer_capacity_per_subscription(MAX_SUBSCRIPTION_CAPACITY) + .build(&uri) + .await + }) + .await??; + + Ok((Arc::new(tokio), Arc::new(client))) + } +} + +impl Client { + /// Return simple runtime version, only include `spec_version` and `transaction_version`. + pub async fn simple_runtime_version(&self) -> Result { + Ok(match &self.chain_runtime_version { + ChainRuntimeVersion::Auto => { + let runtime_version = self.runtime_version().await?; + SimpleRuntimeVersion::from_runtime_version(&runtime_version) + }, + ChainRuntimeVersion::Custom(version) => *version, + }) + } + + /// Returns true if client is connected to at least one peer and is in synced state. + pub async fn ensure_synced(&self) -> Result<()> { + self.jsonrpsee_execute(|client| async move { + let health = SubstrateSystemClient::::health(&*client).await?; + let is_synced = !health.is_syncing && (!health.should_have_peers || health.peers > 0); + if is_synced { + Ok(()) + } else { + Err(Error::ClientNotSynced(health)) + } + }) + .await + } + + /// Return hash of the genesis block. + pub fn genesis_hash(&self) -> &C::Hash { + &self.genesis_hash + } + + /// Return hash of the best finalized block. + pub async fn best_finalized_header_hash(&self) -> Result { + self.jsonrpsee_execute(|client| async move { + Ok(SubstrateChainClient::::finalized_head(&*client).await?) + }) + .await + .map_err(|e| Error::FailedToReadBestFinalizedHeaderHash { + chain: C::NAME.into(), + error: e.boxed(), + }) + } + + /// Return number of the best finalized block. + pub async fn best_finalized_header_number(&self) -> Result { + Ok(*self.best_finalized_header().await?.number()) + } + + /// Return header of the best finalized block. + pub async fn best_finalized_header(&self) -> Result { + self.header_by_hash(self.best_finalized_header_hash().await?).await + } + + /// Returns the best Substrate header. + pub async fn best_header(&self) -> Result + where + C::Header: DeserializeOwned, + { + self.jsonrpsee_execute(|client| async move { + Ok(SubstrateChainClient::::header(&*client, None).await?) + }) + .await + .map_err(|e| Error::FailedToReadBestHeader { chain: C::NAME.into(), error: e.boxed() }) + } + + /// Get a Substrate block from its hash. + pub async fn get_block(&self, block_hash: Option) -> Result { + self.jsonrpsee_execute(move |client| async move { + Ok(SubstrateChainClient::::block(&*client, block_hash).await?) + }) + .await + } + + /// Get a Substrate header by its hash. + pub async fn header_by_hash(&self, block_hash: C::Hash) -> Result + where + C::Header: DeserializeOwned, + { + self.jsonrpsee_execute(move |client| async move { + Ok(SubstrateChainClient::::header(&*client, Some(block_hash)).await?) + }) + .await + .map_err(|e| Error::FailedToReadHeaderByHash { + chain: C::NAME.into(), + hash: format!("{block_hash}"), + error: e.boxed(), + }) + } + + /// Get a Substrate block hash by its number. + pub async fn block_hash_by_number(&self, number: C::BlockNumber) -> Result { + self.jsonrpsee_execute(move |client| async move { + Ok(SubstrateChainClient::::block_hash(&*client, Some(number)).await?) + }) + .await + } + + /// Get a Substrate header by its number. + pub async fn header_by_number(&self, block_number: C::BlockNumber) -> Result + where + C::Header: DeserializeOwned, + { + let block_hash = Self::block_hash_by_number(self, block_number).await?; + let header_by_hash = Self::header_by_hash(self, block_hash).await?; + Ok(header_by_hash) + } + + /// Return runtime version. + pub async fn runtime_version(&self) -> Result { + self.jsonrpsee_execute(move |client| async move { + Ok(SubstrateStateClient::::runtime_version(&*client).await?) + }) + .await + } + + /// Read value from runtime storage. + pub async fn storage_value( + &self, + storage_key: StorageKey, + block_hash: Option, + ) -> Result> { + self.raw_storage_value(storage_key, block_hash) + .await? + .map(|encoded_value| { + T::decode(&mut &encoded_value.0[..]).map_err(Error::ResponseParseFailed) + }) + .transpose() + } + + /// Read `MapStorage` value from runtime storage. + pub async fn storage_map_value( + &self, + pallet_prefix: &str, + key: &T::Key, + block_hash: Option, + ) -> Result> { + let storage_key = T::final_key(pallet_prefix, key); + + self.raw_storage_value(storage_key, block_hash) + .await? + .map(|encoded_value| { + T::Value::decode(&mut &encoded_value.0[..]).map_err(Error::ResponseParseFailed) + }) + .transpose() + } + + /// Read `DoubleMapStorage` value from runtime storage. + pub async fn storage_double_map_value( + &self, + pallet_prefix: &str, + key1: &T::Key1, + key2: &T::Key2, + block_hash: Option, + ) -> Result> { + let storage_key = T::final_key(pallet_prefix, key1, key2); + + self.raw_storage_value(storage_key, block_hash) + .await? + .map(|encoded_value| { + T::Value::decode(&mut &encoded_value.0[..]).map_err(Error::ResponseParseFailed) + }) + .transpose() + } + + /// Read raw value from runtime storage. + pub async fn raw_storage_value( + &self, + storage_key: StorageKey, + block_hash: Option, + ) -> Result> { + let cloned_storage_key = storage_key.clone(); + self.jsonrpsee_execute(move |client| async move { + Ok(SubstrateStateClient::::storage(&*client, storage_key.clone(), block_hash) + .await?) + }) + .await + .map_err(|e| Error::FailedToReadRuntimeStorageValue { + chain: C::NAME.into(), + key: cloned_storage_key, + error: e.boxed(), + }) + } + + /// Get the nonce of the given Substrate account. + /// + /// Note: It's the caller's responsibility to make sure `account` is a valid SS58 address. + pub async fn next_account_index(&self, account: C::AccountId) -> Result { + self.jsonrpsee_execute(move |client| async move { + Ok(SubstrateFrameSystemClient::::account_next_index(&*client, account).await?) + }) + .await + } + + /// Submit unsigned extrinsic for inclusion in a block. + /// + /// Note: The given transaction needs to be SCALE encoded beforehand. + pub async fn submit_unsigned_extrinsic(&self, transaction: Bytes) -> Result { + // one last check that the transaction is valid. Most of checks happen in the relay loop and + // it is the "final" check before submission. + let best_header_hash = self.best_header().await?.hash(); + self.validate_transaction(best_header_hash, PreEncoded(transaction.0.clone())) + .await + .map_err(|e| { + log::error!(target: "bridge", "Pre-submit {} transaction validation failed: {:?}", C::NAME, e); + e + })??; + + self.jsonrpsee_execute(move |client| async move { + let tx_hash = SubstrateAuthorClient::::submit_extrinsic(&*client, transaction) + .await + .map_err(|e| { + log::error!(target: "bridge", "Failed to send transaction to {} node: {:?}", C::NAME, e); + e + })?; + log::trace!(target: "bridge", "Sent transaction to {} node: {:?}", C::NAME, tx_hash); + Ok(tx_hash) + }) + .await + } + + async fn build_sign_params(&self, signer: AccountKeyPairOf) -> Result> + where + C: ChainWithTransactions, + { + let runtime_version = self.simple_runtime_version().await?; + Ok(SignParam:: { + spec_version: runtime_version.spec_version, + transaction_version: runtime_version.transaction_version, + genesis_hash: self.genesis_hash, + signer, + }) + } + + /// Submit an extrinsic signed by given account. + /// + /// All calls of this method are synchronized, so there can't be more than one active + /// `submit_signed_extrinsic()` call. This guarantees that no nonces collision may happen + /// if all client instances are clones of the same initial `Client`. + /// + /// Note: The given transaction needs to be SCALE encoded beforehand. + pub async fn submit_signed_extrinsic( + &self, + signer: &AccountKeyPairOf, + prepare_extrinsic: impl FnOnce(HeaderIdOf, C::Nonce) -> Result> + + Send + + 'static, + ) -> Result + where + C: ChainWithTransactions, + C::AccountId: From<::Public>, + { + let _guard = self.submit_signed_extrinsic_lock.lock().await; + let transaction_nonce = self.next_account_index(signer.public().into()).await?; + let best_header = self.best_header().await?; + let signing_data = self.build_sign_params(signer.clone()).await?; + + // By using parent of best block here, we are protecing again best-block reorganizations. + // E.g. transaction may have been submitted when the best block was `A[num=100]`. Then it + // has been changed to `B[num=100]`. Hash of `A` has been included into transaction + // signature payload. So when signature will be checked, the check will fail and transaction + // will be dropped from the pool. + let best_header_id = best_header.parent_id().unwrap_or_else(|| best_header.id()); + + let extrinsic = prepare_extrinsic(best_header_id, transaction_nonce)?; + let signed_extrinsic = C::sign_transaction(signing_data, extrinsic)?.encode(); + + // one last check that the transaction is valid. Most of checks happen in the relay loop and + // it is the "final" check before submission. + self.validate_transaction(best_header_id.1, PreEncoded(signed_extrinsic.clone())) + .await + .map_err(|e| { + log::error!(target: "bridge", "Pre-submit {} transaction validation failed: {:?}", C::NAME, e); + e + })??; + + self.jsonrpsee_execute(move |client| async move { + let tx_hash = + SubstrateAuthorClient::::submit_extrinsic(&*client, Bytes(signed_extrinsic)) + .await + .map_err(|e| { + log::error!(target: "bridge", "Failed to send transaction to {} node: {:?}", C::NAME, e); + e + })?; + log::trace!(target: "bridge", "Sent transaction to {} node: {:?}", C::NAME, tx_hash); + Ok(tx_hash) + }) + .await + } + + /// Does exactly the same as `submit_signed_extrinsic`, but keeps watching for extrinsic status + /// after submission. + pub async fn submit_and_watch_signed_extrinsic( + &self, + signer: &AccountKeyPairOf, + prepare_extrinsic: impl FnOnce(HeaderIdOf, C::Nonce) -> Result> + + Send + + 'static, + ) -> Result> + where + C: ChainWithTransactions, + C::AccountId: From<::Public>, + { + let self_clone = self.clone(); + let signing_data = self.build_sign_params(signer.clone()).await?; + let _guard = self.submit_signed_extrinsic_lock.lock().await; + let transaction_nonce = self.next_account_index(signer.public().into()).await?; + let best_header = self.best_header().await?; + let best_header_id = best_header.id(); + + let extrinsic = prepare_extrinsic(best_header_id, transaction_nonce)?; + let stall_timeout = transaction_stall_timeout( + extrinsic.era.mortality_period(), + C::AVERAGE_BLOCK_INTERVAL, + STALL_TIMEOUT, + ); + let signed_extrinsic = C::sign_transaction(signing_data, extrinsic)?.encode(); + + // one last check that the transaction is valid. Most of checks happen in the relay loop and + // it is the "final" check before submission. + self.validate_transaction(best_header_id.1, PreEncoded(signed_extrinsic.clone())) + .await + .map_err(|e| { + log::error!(target: "bridge", "Pre-submit {} transaction validation failed: {:?}", C::NAME, e); + e + })??; + + let (sender, receiver) = futures::channel::mpsc::channel(MAX_SUBSCRIPTION_CAPACITY); + let (tracker, subscription) = self + .jsonrpsee_execute(move |client| async move { + let tx_hash = C::Hasher::hash(&signed_extrinsic); + let subscription = SubstrateAuthorClient::::submit_and_watch_extrinsic( + &*client, + Bytes(signed_extrinsic), + ) + .await + .map_err(|e| { + log::error!(target: "bridge", "Failed to send transaction to {} node: {:?}", C::NAME, e); + e + })?; + log::trace!(target: "bridge", "Sent transaction to {} node: {:?}", C::NAME, tx_hash); + let tracker = TransactionTracker::new( + self_clone, + stall_timeout, + tx_hash, + Subscription(Mutex::new(receiver)), + ); + Ok((tracker, subscription)) + }) + .await?; + self.data.read().await.tokio.spawn(Subscription::background_worker( + C::NAME.into(), + "extrinsic".into(), + subscription, + sender, + )); + Ok(tracker) + } + + /// Returns pending extrinsics from transaction pool. + pub async fn pending_extrinsics(&self) -> Result> { + self.jsonrpsee_execute(move |client| async move { + Ok(SubstrateAuthorClient::::pending_extrinsics(&*client).await?) + }) + .await + } + + /// Validate transaction at given block state. + pub async fn validate_transaction( + &self, + at_block: C::Hash, + transaction: SignedTransaction, + ) -> Result { + self.jsonrpsee_execute(move |client| async move { + let call = SUB_API_TXPOOL_VALIDATE_TRANSACTION.to_string(); + let data = Bytes((TransactionSource::External, transaction, at_block).encode()); + + let encoded_response = + SubstrateStateClient::::call(&*client, call, data, Some(at_block)).await?; + let validity = TransactionValidity::decode(&mut &encoded_response.0[..]) + .map_err(Error::ResponseParseFailed)?; + + Ok(validity) + }) + .await + } + + /// Returns weight of the given transaction. + pub async fn extimate_extrinsic_weight( + &self, + transaction: SignedTransaction, + ) -> Result { + self.jsonrpsee_execute(move |client| async move { + let transaction_len = transaction.encoded_size() as u32; + + let call = SUB_API_TX_PAYMENT_QUERY_INFO.to_string(); + let data = Bytes((transaction, transaction_len).encode()); + + let encoded_response = + SubstrateStateClient::::call(&*client, call, data, None).await?; + let dispatch_info = + RuntimeDispatchInfo::::decode(&mut &encoded_response.0[..]) + .map_err(Error::ResponseParseFailed)?; + + Ok(dispatch_info.weight) + }) + .await + } + + /// Get the GRANDPA authority set at given block. + pub async fn grandpa_authorities_set( + &self, + block: C::Hash, + ) -> Result { + self.jsonrpsee_execute(move |client| async move { + let call = SUB_API_GRANDPA_AUTHORITIES.to_string(); + let data = Bytes(Vec::new()); + + let encoded_response = + SubstrateStateClient::::call(&*client, call, data, Some(block)).await?; + let authority_list = encoded_response.0; + + Ok(authority_list) + }) + .await + } + + /// Execute runtime call at given block, provided the input and output types. + /// It also performs the input encode and output decode. + pub async fn typed_state_call( + &self, + method_name: String, + input: Input, + at_block: Option, + ) -> Result { + let encoded_output = self + .state_call(method_name.clone(), Bytes(input.encode()), at_block) + .await + .map_err(|e| Error::ErrorExecutingRuntimeCall { + chain: C::NAME.into(), + method: method_name, + error: e.boxed(), + })?; + Output::decode(&mut &encoded_output.0[..]).map_err(Error::ResponseParseFailed) + } + + /// Execute runtime call at given block. + pub async fn state_call( + &self, + method: String, + data: Bytes, + at_block: Option, + ) -> Result { + self.jsonrpsee_execute(move |client| async move { + SubstrateStateClient::::call(&*client, method, data, at_block) + .await + .map_err(Into::into) + }) + .await + } + + /// Returns storage proof of given storage keys. + pub async fn prove_storage( + &self, + keys: Vec, + at_block: C::Hash, + ) -> Result { + self.jsonrpsee_execute(move |client| async move { + SubstrateStateClient::::prove_storage(&*client, keys, Some(at_block)) + .await + .map(|proof| { + StorageProof::new(proof.proof.into_iter().map(|b| b.0).collect::>()) + }) + .map_err(Into::into) + }) + .await + } + + /// Return `tokenDecimals` property from the set of chain properties. + pub async fn token_decimals(&self) -> Result> { + self.jsonrpsee_execute(move |client| async move { + let system_properties = SubstrateSystemClient::::properties(&*client).await?; + Ok(system_properties.get("tokenDecimals").and_then(|v| v.as_u64())) + }) + .await + } + + /// Return new finality justifications stream. + pub async fn subscribe_finality_justifications>( + &self, + ) -> Result> { + let subscription = self + .jsonrpsee_execute(move |client| async move { + Ok(FC::subscribe_justifications(&client).await?) + }) + .await?; + let (sender, receiver) = futures::channel::mpsc::channel(MAX_SUBSCRIPTION_CAPACITY); + self.data.read().await.tokio.spawn(Subscription::background_worker( + C::NAME.into(), + "justification".into(), + subscription, + sender, + )); + Ok(Subscription(Mutex::new(receiver))) + } + + /// Generates a proof of key ownership for the given authority in the given set. + pub async fn generate_grandpa_key_ownership_proof( + &self, + at: HashOf, + set_id: sp_consensus_grandpa::SetId, + authority_id: sp_consensus_grandpa::AuthorityId, + ) -> Result> + where + C: ChainWithGrandpa, + { + self.typed_state_call( + SUB_API_GRANDPA_GENERATE_KEY_OWNERSHIP_PROOF.into(), + (set_id, authority_id), + Some(at), + ) + .await + } + + /// Execute jsonrpsee future in tokio context. + async fn jsonrpsee_execute(&self, make_jsonrpsee_future: MF) -> Result + where + MF: FnOnce(Arc) -> F + Send + 'static, + F: Future> + Send + 'static, + T: Send + 'static, + { + let data = self.data.read().await; + let client = data.client.clone(); + data.tokio.spawn(make_jsonrpsee_future(client)).await? + } + + /// Returns `true` if version guard can be started. + /// + /// There's no reason to run version guard when version mode is set to `Auto`. It can + /// lead to relay shutdown when chain is upgraded, even though we have explicitly + /// said that we don't want to shutdown. + pub fn can_start_version_guard(&self) -> bool { + !matches!(self.chain_runtime_version, ChainRuntimeVersion::Auto) + } +} + +impl Subscription { + /// Consumes subscription and returns future statuses stream. + pub fn into_stream(self) -> impl futures::Stream { + futures::stream::unfold(self, |this| async { + let item = this.0.lock().await.next().await.unwrap_or(None); + item.map(|i| (i, this)) + }) + } + + /// Return next item from the subscription. + pub async fn next(&self) -> Result> { + let mut receiver = self.0.lock().await; + let item = receiver.next().await; + Ok(item.unwrap_or(None)) + } + + /// Background worker that is executed in tokio context as `jsonrpsee` requires. + async fn background_worker( + chain_name: String, + item_type: String, + mut subscription: jsonrpsee::core::client::Subscription, + mut sender: futures::channel::mpsc::Sender>, + ) { + loop { + match subscription.next().await { + Some(Ok(item)) => + if sender.send(Some(item)).await.is_err() { + break + }, + Some(Err(e)) => { + log::trace!( + target: "bridge", + "{} {} subscription stream has returned '{:?}'. Stream needs to be restarted.", + chain_name, + item_type, + e, + ); + let _ = sender.send(None).await; + break + }, + None => { + log::trace!( + target: "bridge", + "{} {} subscription stream has returned None. Stream needs to be restarted.", + chain_name, + item_type, + ); + let _ = sender.send(None).await; + break + }, + } + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{guard::tests::TestEnvironment, test_chain::TestChain}; + use futures::{channel::mpsc::unbounded, FutureExt}; + + async fn run_ensure_correct_runtime_version( + expected: ChainRuntimeVersion, + actual: RuntimeVersion, + ) -> Result<()> { + let ( + (mut runtime_version_tx, runtime_version_rx), + (slept_tx, _slept_rx), + (aborted_tx, mut aborted_rx), + ) = (unbounded(), unbounded(), unbounded()); + runtime_version_tx.send(actual).await.unwrap(); + let mut env = TestEnvironment { runtime_version_rx, slept_tx, aborted_tx }; + + let ensure_correct_runtime_version = + Client::::ensure_correct_runtime_version(&mut env, expected).boxed(); + let aborted = aborted_rx.next().map(|_| Err(Error::Custom("".into()))).boxed(); + futures::pin_mut!(ensure_correct_runtime_version, aborted); + futures::future::select(ensure_correct_runtime_version, aborted) + .await + .into_inner() + .0 + } + + #[async_std::test] + async fn ensure_correct_runtime_version_works() { + // when we are configured to use auto version + assert!(matches!( + run_ensure_correct_runtime_version( + ChainRuntimeVersion::Auto, + RuntimeVersion { + spec_version: 100, + transaction_version: 100, + ..Default::default() + }, + ) + .await, + Ok(()), + )); + // when actual == expected + assert!(matches!( + run_ensure_correct_runtime_version( + ChainRuntimeVersion::Custom(SimpleRuntimeVersion { + spec_version: 100, + transaction_version: 100 + }), + RuntimeVersion { + spec_version: 100, + transaction_version: 100, + ..Default::default() + }, + ) + .await, + Ok(()), + )); + // when actual spec version < expected spec version + assert!(matches!( + run_ensure_correct_runtime_version( + ChainRuntimeVersion::Custom(SimpleRuntimeVersion { + spec_version: 100, + transaction_version: 100 + }), + RuntimeVersion { spec_version: 99, transaction_version: 100, ..Default::default() }, + ) + .await, + Err(Error::WaitingForRuntimeUpgrade { + expected: SimpleRuntimeVersion { spec_version: 100, transaction_version: 100 }, + actual: SimpleRuntimeVersion { spec_version: 99, transaction_version: 100 }, + .. + }), + )); + // when actual spec version > expected spec version + assert!(matches!( + run_ensure_correct_runtime_version( + ChainRuntimeVersion::Custom(SimpleRuntimeVersion { + spec_version: 100, + transaction_version: 100 + }), + RuntimeVersion { + spec_version: 101, + transaction_version: 100, + ..Default::default() + }, + ) + .await, + Err(Error::Custom(_)), + )); + } +} diff --git a/bridges/relays/client-substrate/src/error.rs b/bridges/relays/client-substrate/src/error.rs new file mode 100644 index 0000000000000000000000000000000000000000..0b446681818879d662ba9a71679a799519cf491b --- /dev/null +++ b/bridges/relays/client-substrate/src/error.rs @@ -0,0 +1,165 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Substrate node RPC errors. + +use crate::SimpleRuntimeVersion; +use bp_polkadot_core::parachains::ParaId; +use jsonrpsee::core::ClientError as RpcError; +use relay_utils::MaybeConnectionError; +use sc_rpc_api::system::Health; +use sp_core::storage::StorageKey; +use sp_runtime::transaction_validity::TransactionValidityError; +use thiserror::Error; + +/// Result type used by Substrate client. +pub type Result = std::result::Result; + +/// Errors that can occur only when interacting with +/// a Substrate node through RPC. +#[derive(Error, Debug)] +pub enum Error { + /// IO error. + #[error("IO error: {0}")] + Io(#[from] std::io::Error), + /// An error that can occur when making a request to + /// an JSON-RPC server. + #[error("RPC error: {0}")] + RpcError(#[from] RpcError), + /// The response from the server could not be SCALE decoded. + #[error("Response parse failed: {0}")] + ResponseParseFailed(#[from] codec::Error), + /// Account does not exist on the chain. + #[error("Account does not exist on the chain.")] + AccountDoesNotExist, + /// Runtime storage is missing some mandatory value. + #[error("Mandatory storage value is missing from the runtime storage.")] + MissingMandatoryStorageValue, + /// Required parachain head is not present at the relay chain. + #[error("Parachain {0:?} head {1} is missing from the relay chain storage.")] + MissingRequiredParachainHead(ParaId, u64), + /// Failed to find finality proof for the given header. + #[error("Failed to find finality proof for header {0}.")] + FinalityProofNotFound(u64), + /// The client we're connected to is not synced, so we can't rely on its state. + #[error("Substrate client is not synced {0}.")] + ClientNotSynced(Health), + /// Failed to read best finalized header hash from given chain. + #[error("Failed to read best finalized header hash of {chain}: {error:?}.")] + FailedToReadBestFinalizedHeaderHash { + /// Name of the chain where the error has happened. + chain: String, + /// Underlying error. + error: Box, + }, + /// Failed to read best finalized header from given chain. + #[error("Failed to read best header of {chain}: {error:?}.")] + FailedToReadBestHeader { + /// Name of the chain where the error has happened. + chain: String, + /// Underlying error. + error: Box, + }, + /// Failed to read header by hash from given chain. + #[error("Failed to read header {hash} of {chain}: {error:?}.")] + FailedToReadHeaderByHash { + /// Name of the chain where the error has happened. + chain: String, + /// Hash of the header we've tried to read. + hash: String, + /// Underlying error. + error: Box, + }, + /// Failed to execute runtime call at given chain. + #[error("Failed to execute runtime call {method} at {chain}: {error:?}.")] + ErrorExecutingRuntimeCall { + /// Name of the chain where the error has happened. + chain: String, + /// Runtime method name. + method: String, + /// Underlying error. + error: Box, + }, + /// Failed to read sotrage value at given chain. + #[error("Failed to read storage value {key:?} at {chain}: {error:?}.")] + FailedToReadRuntimeStorageValue { + /// Name of the chain where the error has happened. + chain: String, + /// Runtime storage key + key: StorageKey, + /// Underlying error. + error: Box, + }, + /// The bridge pallet is halted and all transactions will be rejected. + #[error("Bridge pallet is halted.")] + BridgePalletIsHalted, + /// The bridge pallet is not yet initialized and all transactions will be rejected. + #[error("Bridge pallet is not initialized.")] + BridgePalletIsNotInitialized, + /// There's no best head of the parachain at the `pallet-bridge-parachains` at the target side. + #[error("No head of the ParaId({0}) at the bridge parachains pallet at {1}.")] + NoParachainHeadAtTarget(u32, String), + /// An error has happened when we have tried to parse storage proof. + #[error("Error when parsing storage proof: {0:?}.")] + StorageProofError(bp_runtime::StorageProofError), + /// The Substrate transaction is invalid. + #[error("Substrate transaction is invalid: {0:?}")] + TransactionInvalid(#[from] TransactionValidityError), + /// The client is configured to use newer runtime version than the connected chain uses. + /// The client will keep waiting until chain is upgraded to given version. + #[error("Waiting for {chain} runtime upgrade: expected {expected:?} actual {actual:?}")] + WaitingForRuntimeUpgrade { + /// Name of the chain where the error has happened. + chain: String, + /// Expected runtime version. + expected: SimpleRuntimeVersion, + /// Actual runtime version. + actual: SimpleRuntimeVersion, + }, + /// Custom logic error. + #[error("{0}")] + Custom(String), +} + +impl From for Error { + fn from(error: tokio::task::JoinError) -> Self { + Error::Custom(format!("Failed to wait tokio task: {error}")) + } +} + +impl Error { + /// Box the error. + pub fn boxed(self) -> Box { + Box::new(self) + } +} + +impl MaybeConnectionError for Error { + fn is_connection_error(&self) -> bool { + match *self { + Error::RpcError(RpcError::Transport(_)) | + Error::RpcError(RpcError::RestartNeeded(_)) | + Error::ClientNotSynced(_) => true, + Error::FailedToReadBestFinalizedHeaderHash { ref error, .. } => + error.is_connection_error(), + Error::FailedToReadBestHeader { ref error, .. } => error.is_connection_error(), + Error::FailedToReadHeaderByHash { ref error, .. } => error.is_connection_error(), + Error::ErrorExecutingRuntimeCall { ref error, .. } => error.is_connection_error(), + Error::FailedToReadRuntimeStorageValue { ref error, .. } => error.is_connection_error(), + _ => false, + } + } +} diff --git a/bridges/relays/client-substrate/src/guard.rs b/bridges/relays/client-substrate/src/guard.rs new file mode 100644 index 0000000000000000000000000000000000000000..47454892cd039f40e92a8f25db435698360bde9b --- /dev/null +++ b/bridges/relays/client-substrate/src/guard.rs @@ -0,0 +1,196 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Pallet provides a set of guard functions that are running in background threads +//! and are aborting process if some condition fails. + +use crate::{error::Error, Chain, Client}; + +use async_trait::async_trait; +use sp_version::RuntimeVersion; +use std::{ + fmt::Display, + time::{Duration, Instant}, +}; + +/// Guards environment. +#[async_trait] +pub trait Environment: Send + Sync + 'static { + /// Error type. + type Error: Display + Send + Sync + 'static; + + /// Return current runtime version. + async fn runtime_version(&mut self) -> Result; + + /// Return current time. + fn now(&self) -> Instant { + Instant::now() + } + + /// Sleep given amount of time. + async fn sleep(&mut self, duration: Duration) { + async_std::task::sleep(duration).await + } + + /// Abort current process. Called when guard condition check fails. + async fn abort(&mut self) { + std::process::abort(); + } +} + +/// Abort when runtime spec version is different from specified. +pub fn abort_on_spec_version_change( + mut env: impl Environment, + expected_spec_version: u32, +) { + async_std::task::spawn(async move { + log::info!( + target: "bridge-guard", + "Starting spec_version guard for {}. Expected spec_version: {}", + C::NAME, + expected_spec_version, + ); + + loop { + let actual_spec_version = env.runtime_version().await; + match actual_spec_version { + Ok(version) if version.spec_version == expected_spec_version => (), + Ok(version) => { + log::error!( + target: "bridge-guard", + "{} runtime spec version has changed from {} to {}. Aborting relay", + C::NAME, + expected_spec_version, + version.spec_version, + ); + + env.abort().await; + }, + Err(error) => log::warn!( + target: "bridge-guard", + "Failed to read {} runtime version: {}. Relay may need to be stopped manually", + C::NAME, + error, + ), + } + + env.sleep(conditions_check_delay::()).await; + } + }); +} + +/// Delay between conditions check. +fn conditions_check_delay() -> Duration { + C::AVERAGE_BLOCK_INTERVAL * (10 + rand::random::() % 10) +} + +#[async_trait] +impl Environment for Client { + type Error = Error; + + async fn runtime_version(&mut self) -> Result { + Client::::runtime_version(self).await + } +} + +#[cfg(test)] +pub(crate) mod tests { + use super::*; + use crate::test_chain::TestChain; + use futures::{ + channel::mpsc::{unbounded, UnboundedReceiver, UnboundedSender}, + future::FutureExt, + stream::StreamExt, + SinkExt, + }; + + pub struct TestEnvironment { + pub runtime_version_rx: UnboundedReceiver, + pub slept_tx: UnboundedSender<()>, + pub aborted_tx: UnboundedSender<()>, + } + + #[async_trait] + impl Environment for TestEnvironment { + type Error = Error; + + async fn runtime_version(&mut self) -> Result { + Ok(self.runtime_version_rx.next().await.unwrap_or_default()) + } + + async fn sleep(&mut self, _duration: Duration) { + let _ = self.slept_tx.send(()).await; + } + + async fn abort(&mut self) { + let _ = self.aborted_tx.send(()).await; + // simulate process abort :) + async_std::task::sleep(Duration::from_secs(60)).await; + } + } + + #[test] + fn aborts_when_spec_version_is_changed() { + async_std::task::block_on(async { + let ( + (mut runtime_version_tx, runtime_version_rx), + (slept_tx, mut slept_rx), + (aborted_tx, mut aborted_rx), + ) = (unbounded(), unbounded(), unbounded()); + abort_on_spec_version_change( + TestEnvironment { runtime_version_rx, slept_tx, aborted_tx }, + 0, + ); + + // client responds with wrong version + runtime_version_tx + .send(RuntimeVersion { spec_version: 42, ..Default::default() }) + .await + .unwrap(); + + // then the `abort` function is called + aborted_rx.next().await; + // and we do not reach the `sleep` function call + assert!(slept_rx.next().now_or_never().is_none()); + }); + } + + #[test] + fn does_not_aborts_when_spec_version_is_unchanged() { + async_std::task::block_on(async { + let ( + (mut runtime_version_tx, runtime_version_rx), + (slept_tx, mut slept_rx), + (aborted_tx, mut aborted_rx), + ) = (unbounded(), unbounded(), unbounded()); + abort_on_spec_version_change( + TestEnvironment { runtime_version_rx, slept_tx, aborted_tx }, + 42, + ); + + // client responds with the same version + runtime_version_tx + .send(RuntimeVersion { spec_version: 42, ..Default::default() }) + .await + .unwrap(); + + // then the `sleep` function is called + slept_rx.next().await; + // and the `abort` function is not called + assert!(aborted_rx.next().now_or_never().is_none()); + }); + } +} diff --git a/bridges/relays/client-substrate/src/lib.rs b/bridges/relays/client-substrate/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..d5b8d4dcced2d8b2e1883b6779905c536eec49f1 --- /dev/null +++ b/bridges/relays/client-substrate/src/lib.rs @@ -0,0 +1,101 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Tools to interact with Substrate node using RPC methods. + +#![warn(missing_docs)] + +mod chain; +mod client; +mod error; +mod rpc; +mod sync_header; +mod transaction_tracker; + +pub mod calls; +pub mod guard; +pub mod metrics; +pub mod test_chain; + +use std::time::Duration; + +pub use crate::{ + chain::{ + AccountKeyPairOf, BlockWithJustification, CallOf, Chain, ChainWithBalances, + ChainWithGrandpa, ChainWithMessages, ChainWithRuntimeVersion, ChainWithTransactions, + ChainWithUtilityPallet, FullRuntimeUtilityPallet, MockedRuntimeUtilityPallet, Parachain, + RelayChain, SignParam, TransactionStatusOf, UnsignedTransaction, UtilityPallet, + }, + client::{ + is_ancient_block, ChainRuntimeVersion, Client, OpaqueGrandpaAuthoritiesSet, + SimpleRuntimeVersion, Subscription, ANCIENT_BLOCK_THRESHOLD, + }, + error::{Error, Result}, + rpc::{SubstrateBeefyFinalityClient, SubstrateFinalityClient, SubstrateGrandpaFinalityClient}, + sync_header::SyncHeader, + transaction_tracker::TransactionTracker, +}; +pub use bp_runtime::{ + AccountIdOf, AccountPublicOf, BalanceOf, BlockNumberOf, Chain as ChainBase, HashOf, HeaderIdOf, + HeaderOf, NonceOf, Parachain as ParachainBase, SignatureOf, TransactionEra, TransactionEraOf, + UnderlyingChainProvider, +}; + +/// Substrate-over-websocket connection params. +#[derive(Debug, Clone)] +pub struct ConnectionParams { + /// Websocket endpoint URL. Overrides all other URL components (`host`, `port`, `path` and + /// `secure`). + pub uri: Option, + /// Websocket server host name. + pub host: String, + /// Websocket server TCP port. + pub port: u16, + /// Websocket endpoint path at server. + pub path: Option, + /// Use secure websocket connection. + pub secure: bool, + /// Defined chain runtime version + pub chain_runtime_version: ChainRuntimeVersion, +} + +impl Default for ConnectionParams { + fn default() -> Self { + ConnectionParams { + uri: None, + host: "localhost".into(), + port: 9944, + path: None, + secure: false, + chain_runtime_version: ChainRuntimeVersion::Auto, + } + } +} + +/// Returns stall timeout for relay loop. +/// +/// Relay considers himself stalled if he has submitted transaction to the node, but it has not +/// been mined for this period. +pub fn transaction_stall_timeout( + mortality_period: Option, + average_block_interval: Duration, + default_stall_timeout: Duration, +) -> Duration { + // 1 extra block for transaction to reach the pool && 1 for relayer to awake after it is mined + mortality_period + .map(|mortality_period| average_block_interval.saturating_mul(mortality_period + 1 + 1)) + .unwrap_or(default_stall_timeout) +} diff --git a/bridges/relays/client-substrate/src/metrics/float_storage_value.rs b/bridges/relays/client-substrate/src/metrics/float_storage_value.rs new file mode 100644 index 0000000000000000000000000000000000000000..7bb92693b38d27f42b623d323ba3e7ced8ebbda2 --- /dev/null +++ b/bridges/relays/client-substrate/src/metrics/float_storage_value.rs @@ -0,0 +1,133 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{chain::Chain, client::Client, Error as SubstrateError}; + +use async_std::sync::{Arc, RwLock}; +use async_trait::async_trait; +use codec::Decode; +use num_traits::One; +use relay_utils::metrics::{ + metric_name, register, F64SharedRef, Gauge, Metric, PrometheusError, Registry, + StandaloneMetric, F64, +}; +use sp_core::storage::{StorageData, StorageKey}; +use sp_runtime::{traits::UniqueSaturatedInto, FixedPointNumber, FixedU128}; +use std::{marker::PhantomData, time::Duration}; + +/// Storage value update interval (in blocks). +const UPDATE_INTERVAL_IN_BLOCKS: u32 = 5; + +/// Fied-point storage value and the way it is decoded from the raw storage value. +pub trait FloatStorageValue: 'static + Clone + Send + Sync { + /// Type of the value. + type Value: FixedPointNumber; + /// Try to decode value from the raw storage value. + fn decode( + &self, + maybe_raw_value: Option, + ) -> Result, SubstrateError>; +} + +/// Implementation of `FloatStorageValue` that expects encoded `FixedU128` value and returns `1` if +/// value is missing from the storage. +#[derive(Clone, Debug, Default)] +pub struct FixedU128OrOne; + +impl FloatStorageValue for FixedU128OrOne { + type Value = FixedU128; + + fn decode( + &self, + maybe_raw_value: Option, + ) -> Result, SubstrateError> { + maybe_raw_value + .map(|raw_value| { + FixedU128::decode(&mut &raw_value.0[..]) + .map_err(SubstrateError::ResponseParseFailed) + .map(Some) + }) + .unwrap_or_else(|| Ok(Some(FixedU128::one()))) + } +} + +/// Metric that represents fixed-point runtime storage value as float gauge. +#[derive(Clone, Debug)] +pub struct FloatStorageValueMetric { + value_converter: V, + client: Client, + storage_key: StorageKey, + metric: Gauge, + shared_value_ref: F64SharedRef, + _phantom: PhantomData, +} + +impl FloatStorageValueMetric { + /// Create new metric. + pub fn new( + value_converter: V, + client: Client, + storage_key: StorageKey, + name: String, + help: String, + ) -> Result { + let shared_value_ref = Arc::new(RwLock::new(None)); + Ok(FloatStorageValueMetric { + value_converter, + client, + storage_key, + metric: Gauge::new(metric_name(None, &name), help)?, + shared_value_ref, + _phantom: Default::default(), + }) + } + + /// Get shared reference to metric value. + pub fn shared_value_ref(&self) -> F64SharedRef { + self.shared_value_ref.clone() + } +} + +impl Metric for FloatStorageValueMetric { + fn register(&self, registry: &Registry) -> Result<(), PrometheusError> { + register(self.metric.clone(), registry).map(drop) + } +} + +#[async_trait] +impl StandaloneMetric for FloatStorageValueMetric { + fn update_interval(&self) -> Duration { + C::AVERAGE_BLOCK_INTERVAL * UPDATE_INTERVAL_IN_BLOCKS + } + + async fn update(&self) { + let value = self + .client + .raw_storage_value(self.storage_key.clone(), None) + .await + .and_then(|maybe_storage_value| { + self.value_converter.decode(maybe_storage_value).map(|maybe_fixed_point_value| { + maybe_fixed_point_value.map(|fixed_point_value| { + fixed_point_value.into_inner().unique_saturated_into() as f64 / + V::Value::DIV.unique_saturated_into() as f64 + }) + }) + }) + .map_err(|e| e.to_string()); + relay_utils::metrics::set_gauge_value(&self.metric, value.clone()); + *self.shared_value_ref.write().await = value.ok().and_then(|x| x); + } +} diff --git a/bridges/relays/client-substrate/src/metrics/mod.rs b/bridges/relays/client-substrate/src/metrics/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..fe200e2d3dca7ea84a41e61f18912acc0d3f4332 --- /dev/null +++ b/bridges/relays/client-substrate/src/metrics/mod.rs @@ -0,0 +1,21 @@ +// Copyright 2019-2020 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Contains several Substrate-specific metrics that may be exposed by relay. + +pub use float_storage_value::{FixedU128OrOne, FloatStorageValue, FloatStorageValueMetric}; + +mod float_storage_value; diff --git a/bridges/relays/client-substrate/src/rpc.rs b/bridges/relays/client-substrate/src/rpc.rs new file mode 100644 index 0000000000000000000000000000000000000000..60c29cdeb5c7707619b65d23800dcd7dfdfd840a --- /dev/null +++ b/bridges/relays/client-substrate/src/rpc.rs @@ -0,0 +1,176 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! The most generic Substrate node RPC interface. + +use async_trait::async_trait; + +use crate::{Chain, ChainWithGrandpa, TransactionStatusOf}; + +use jsonrpsee::{ + core::{client::Subscription, ClientError}, + proc_macros::rpc, + ws_client::WsClient, +}; +use pallet_transaction_payment_rpc_runtime_api::FeeDetails; +use sc_rpc_api::{state::ReadProof, system::Health}; +use sp_core::{ + storage::{StorageData, StorageKey}, + Bytes, +}; +use sp_rpc::number::NumberOrHex; +use sp_version::RuntimeVersion; + +/// RPC methods of Substrate `system` namespace, that we are using. +#[rpc(client, client_bounds(C: Chain), namespace = "system")] +pub(crate) trait SubstrateSystem { + /// Return node health. + #[method(name = "health")] + async fn health(&self) -> RpcResult; + /// Return system properties. + #[method(name = "properties")] + async fn properties(&self) -> RpcResult; +} + +/// RPC methods of Substrate `chain` namespace, that we are using. +#[rpc(client, client_bounds(C: Chain), namespace = "chain")] +pub(crate) trait SubstrateChain { + /// Get block hash by its number. + #[method(name = "getBlockHash")] + async fn block_hash(&self, block_number: Option) -> RpcResult; + /// Return block header by its hash. + #[method(name = "getHeader")] + async fn header(&self, block_hash: Option) -> RpcResult; + /// Return best finalized block hash. + #[method(name = "getFinalizedHead")] + async fn finalized_head(&self) -> RpcResult; + /// Return signed block (with justifications) by its hash. + #[method(name = "getBlock")] + async fn block(&self, block_hash: Option) -> RpcResult; +} + +/// RPC methods of Substrate `author` namespace, that we are using. +#[rpc(client, client_bounds(C: Chain), namespace = "author")] +pub(crate) trait SubstrateAuthor { + /// Submit extrinsic to the transaction pool. + #[method(name = "submitExtrinsic")] + async fn submit_extrinsic(&self, extrinsic: Bytes) -> RpcResult; + /// Return vector of pending extrinsics from the transaction pool. + #[method(name = "pendingExtrinsics")] + async fn pending_extrinsics(&self) -> RpcResult>; + /// Submit and watch for extrinsic state. + #[subscription(name = "submitAndWatchExtrinsic", unsubscribe = "unwatchExtrinsic", item = TransactionStatusOf)] + async fn submit_and_watch_extrinsic(&self, extrinsic: Bytes); +} + +/// RPC methods of Substrate `state` namespace, that we are using. +#[rpc(client, client_bounds(C: Chain), namespace = "state")] +pub(crate) trait SubstrateState { + /// Get current runtime version. + #[method(name = "getRuntimeVersion")] + async fn runtime_version(&self) -> RpcResult; + /// Call given runtime method. + #[method(name = "call")] + async fn call( + &self, + method: String, + data: Bytes, + at_block: Option, + ) -> RpcResult; + /// Get value of the runtime storage. + #[method(name = "getStorage")] + async fn storage( + &self, + key: StorageKey, + at_block: Option, + ) -> RpcResult>; + /// Get proof of the runtime storage value. + #[method(name = "getReadProof")] + async fn prove_storage( + &self, + keys: Vec, + hash: Option, + ) -> RpcResult>; +} + +/// RPC methods that we are using for a certain finality gadget. +#[async_trait] +pub trait SubstrateFinalityClient { + /// Subscribe to finality justifications. + async fn subscribe_justifications( + client: &WsClient, + ) -> Result, ClientError>; +} + +/// RPC methods of Substrate `grandpa` namespace, that we are using. +#[rpc(client, client_bounds(C: ChainWithGrandpa), namespace = "grandpa")] +pub(crate) trait SubstrateGrandpa { + /// Subscribe to GRANDPA justifications. + #[subscription(name = "subscribeJustifications", unsubscribe = "unsubscribeJustifications", item = Bytes)] + async fn subscribe_justifications(&self); +} + +/// RPC finality methods of Substrate `grandpa` namespace, that we are using. +pub struct SubstrateGrandpaFinalityClient; +#[async_trait] +impl SubstrateFinalityClient for SubstrateGrandpaFinalityClient { + async fn subscribe_justifications( + client: &WsClient, + ) -> Result, ClientError> { + SubstrateGrandpaClient::::subscribe_justifications(client).await + } +} + +// TODO: Use `ChainWithBeefy` instead of `Chain` after #1606 is merged +/// RPC methods of Substrate `beefy` namespace, that we are using. +#[rpc(client, client_bounds(C: Chain), namespace = "beefy")] +pub(crate) trait SubstrateBeefy { + /// Subscribe to BEEFY justifications. + #[subscription(name = "subscribeJustifications", unsubscribe = "unsubscribeJustifications", item = Bytes)] + async fn subscribe_justifications(&self); +} + +/// RPC finality methods of Substrate `beefy` namespace, that we are using. +pub struct SubstrateBeefyFinalityClient; +// TODO: Use `ChainWithBeefy` instead of `Chain` after #1606 is merged +#[async_trait] +impl SubstrateFinalityClient for SubstrateBeefyFinalityClient { + async fn subscribe_justifications( + client: &WsClient, + ) -> Result, ClientError> { + SubstrateBeefyClient::::subscribe_justifications(client).await + } +} + +/// RPC methods of Substrate `system` frame pallet, that we are using. +#[rpc(client, client_bounds(C: Chain), namespace = "system")] +pub(crate) trait SubstrateFrameSystem { + /// Return index of next account transaction. + #[method(name = "accountNextIndex")] + async fn account_next_index(&self, account_id: C::AccountId) -> RpcResult; +} + +/// RPC methods of Substrate `pallet_transaction_payment` frame pallet, that we are using. +#[rpc(client, client_bounds(C: Chain), namespace = "payment")] +pub(crate) trait SubstrateTransactionPayment { + /// Query transaction fee details. + #[method(name = "queryFeeDetails")] + async fn fee_details( + &self, + extrinsic: Bytes, + at_block: Option, + ) -> RpcResult>; +} diff --git a/bridges/relays/client-substrate/src/sync_header.rs b/bridges/relays/client-substrate/src/sync_header.rs new file mode 100644 index 0000000000000000000000000000000000000000..fdfd1f22ce9edf9311e2ae827baf0f2a8fffbe20 --- /dev/null +++ b/bridges/relays/client-substrate/src/sync_header.rs @@ -0,0 +1,61 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use bp_header_chain::ConsensusLogReader; +use finality_relay::SourceHeader as FinalitySourceHeader; +use sp_runtime::traits::Header as HeaderT; + +/// Generic wrapper for `sp_runtime::traits::Header` based headers, that +/// implements `finality_relay::SourceHeader` and may be used in headers sync directly. +#[derive(Clone, Debug, PartialEq)] +pub struct SyncHeader
(Header); + +impl
SyncHeader
{ + /// Extracts wrapped header from self. + pub fn into_inner(self) -> Header { + self.0 + } +} + +impl
std::ops::Deref for SyncHeader
{ + type Target = Header; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl
From
for SyncHeader
{ + fn from(header: Header) -> Self { + Self(header) + } +} + +impl FinalitySourceHeader + for SyncHeader
+{ + fn hash(&self) -> Header::Hash { + self.0.hash() + } + + fn number(&self) -> Header::Number { + *self.0.number() + } + + fn is_mandatory(&self) -> bool { + R::schedules_authorities_change(self.digest()) + } +} diff --git a/bridges/relays/client-substrate/src/test_chain.rs b/bridges/relays/client-substrate/src/test_chain.rs new file mode 100644 index 0000000000000000000000000000000000000000..77240d15884f4512458772b16f14f27b44f57f39 --- /dev/null +++ b/bridges/relays/client-substrate/src/test_chain.rs @@ -0,0 +1,132 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Pallet provides a set of guard functions that are running in background threads +//! and are aborting process if some condition fails. + +//! Test chain implementation to use in tests. + +#![cfg(any(feature = "test-helpers", test))] + +use crate::{Chain, ChainWithBalances, ChainWithMessages}; +use bp_messages::{ChainWithMessages as ChainWithMessagesBase, MessageNonce}; +use bp_runtime::ChainId; +use frame_support::weights::Weight; +use std::time::Duration; + +/// Chain that may be used in tests. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct TestChain; + +impl bp_runtime::Chain for TestChain { + const ID: ChainId = *b"test"; + + type BlockNumber = u32; + type Hash = sp_core::H256; + type Hasher = sp_runtime::traits::BlakeTwo256; + type Header = sp_runtime::generic::Header; + + type AccountId = u32; + type Balance = u32; + type Nonce = u32; + type Signature = sp_runtime::testing::TestSignature; + + fn max_extrinsic_size() -> u32 { + 100000 + } + + fn max_extrinsic_weight() -> Weight { + unreachable!() + } +} + +impl Chain for TestChain { + const NAME: &'static str = "Test"; + const BEST_FINALIZED_HEADER_ID_METHOD: &'static str = "TestMethod"; + const AVERAGE_BLOCK_INTERVAL: Duration = Duration::from_millis(0); + + type SignedBlock = sp_runtime::generic::SignedBlock< + sp_runtime::generic::Block, + >; + type Call = (); +} + +impl ChainWithBalances for TestChain { + fn account_info_storage_key(_account_id: &u32) -> sp_core::storage::StorageKey { + unreachable!() + } +} + +impl ChainWithMessagesBase for TestChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = "Test"; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 0; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 0; +} + +impl ChainWithMessages for TestChain { + const WITH_CHAIN_RELAYERS_PALLET_NAME: Option<&'static str> = None; + const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str = "TestMessagesDetailsMethod"; + const FROM_CHAIN_MESSAGE_DETAILS_METHOD: &'static str = "TestFromMessagesDetailsMethod"; +} + +/// Primitives-level parachain that may be used in tests. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct TestParachainBase; + +impl bp_runtime::Chain for TestParachainBase { + const ID: ChainId = *b"tstp"; + + type BlockNumber = u32; + type Hash = sp_core::H256; + type Hasher = sp_runtime::traits::BlakeTwo256; + type Header = sp_runtime::generic::Header; + + type AccountId = u32; + type Balance = u32; + type Nonce = u32; + type Signature = sp_runtime::testing::TestSignature; + + fn max_extrinsic_size() -> u32 { + unreachable!() + } + + fn max_extrinsic_weight() -> Weight { + unreachable!() + } +} + +impl bp_runtime::Parachain for TestParachainBase { + const PARACHAIN_ID: u32 = 1000; +} + +/// Parachain that may be used in tests. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct TestParachain; + +impl bp_runtime::UnderlyingChainProvider for TestParachain { + type Chain = TestParachainBase; +} + +impl Chain for TestParachain { + const NAME: &'static str = "TestParachain"; + const BEST_FINALIZED_HEADER_ID_METHOD: &'static str = "TestParachainMethod"; + const AVERAGE_BLOCK_INTERVAL: Duration = Duration::from_millis(0); + + type SignedBlock = sp_runtime::generic::SignedBlock< + sp_runtime::generic::Block, + >; + type Call = (); +} diff --git a/bridges/relays/client-substrate/src/transaction_tracker.rs b/bridges/relays/client-substrate/src/transaction_tracker.rs new file mode 100644 index 0000000000000000000000000000000000000000..00375768c45c27c23dfccb7730668108a6fab788 --- /dev/null +++ b/bridges/relays/client-substrate/src/transaction_tracker.rs @@ -0,0 +1,447 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Helper for tracking transaction invalidation events. + +use crate::{Chain, Client, Error, HashOf, HeaderIdOf, Subscription, TransactionStatusOf}; + +use async_trait::async_trait; +use futures::{future::Either, Future, FutureExt, Stream, StreamExt}; +use relay_utils::{HeaderId, TrackedTransactionStatus}; +use sp_runtime::traits::Header as _; +use std::time::Duration; + +/// Transaction tracker environment. +#[async_trait] +pub trait Environment: Send + Sync { + /// Returns header id by its hash. + async fn header_id_by_hash(&self, hash: HashOf) -> Result, Error>; +} + +#[async_trait] +impl Environment for Client { + async fn header_id_by_hash(&self, hash: HashOf) -> Result, Error> { + self.header_by_hash(hash).await.map(|h| HeaderId(*h.number(), hash)) + } +} + +/// Substrate transaction tracker implementation. +/// +/// Substrate node provides RPC API to submit and watch for transaction events. This way +/// we may know when transaction is included into block, finalized or rejected. There are +/// some edge cases, when we can't fully trust this mechanism - e.g. transaction may broadcasted +/// and then dropped out of node transaction pool (some other cases are also possible - node +/// restarts, connection lost, ...). Then we can't know for sure - what is currently happening +/// with our transaction. Is the transaction really lost? Is it still alive on the chain network? +/// +/// We have several options to handle such cases: +/// +/// 1) hope that the transaction is still alive and wait for its mining until it is spoiled; +/// +/// 2) assume that the transaction is lost and resubmit another transaction instantly; +/// +/// 3) wait for some time (if transaction is mortal - then until block where it dies; if it is +/// immortal - then for some time that we assume is long enough to mine it) and assume that it is +/// lost. +/// +/// This struct implements third option as it seems to be the most optimal. +pub struct TransactionTracker { + environment: E, + transaction_hash: HashOf, + stall_timeout: Duration, + subscription: Subscription>, +} + +impl> TransactionTracker { + /// Create transaction tracker. + pub fn new( + environment: E, + stall_timeout: Duration, + transaction_hash: HashOf, + subscription: Subscription>, + ) -> Self { + Self { environment, stall_timeout, transaction_hash, subscription } + } + + /// Wait for final transaction status and return it along with last known internal invalidation + /// status. + async fn do_wait( + self, + wait_for_stall_timeout: impl Future, + wait_for_stall_timeout_rest: impl Future, + ) -> (TrackedTransactionStatus>, Option>>) { + // sometimes we want to wait for the rest of the stall timeout even if + // `wait_for_invalidation` has been "select"ed first => it is shared + let wait_for_invalidation = watch_transaction_status::<_, C, _>( + self.environment, + self.transaction_hash, + self.subscription.into_stream(), + ); + futures::pin_mut!(wait_for_stall_timeout, wait_for_invalidation); + + match futures::future::select(wait_for_stall_timeout, wait_for_invalidation).await { + Either::Left((_, _)) => { + log::trace!( + target: "bridge", + "{} transaction {:?} is considered lost after timeout (no status response from the node)", + C::NAME, + self.transaction_hash, + ); + + (TrackedTransactionStatus::Lost, None) + }, + Either::Right((invalidation_status, _)) => match invalidation_status { + InvalidationStatus::Finalized(at_block) => + (TrackedTransactionStatus::Finalized(at_block), Some(invalidation_status)), + InvalidationStatus::Invalid => + (TrackedTransactionStatus::Lost, Some(invalidation_status)), + InvalidationStatus::Lost => { + // wait for the rest of stall timeout - this way we'll be sure that the + // transaction is actually dead if it has been crafted properly + wait_for_stall_timeout_rest.await; + // if someone is still watching for our transaction, then we're reporting + // an error here (which is treated as "transaction lost") + log::trace!( + target: "bridge", + "{} transaction {:?} is considered lost after timeout", + C::NAME, + self.transaction_hash, + ); + + (TrackedTransactionStatus::Lost, Some(invalidation_status)) + }, + }, + } + } +} + +#[async_trait] +impl> relay_utils::TransactionTracker for TransactionTracker { + type HeaderId = HeaderIdOf; + + async fn wait(self) -> TrackedTransactionStatus> { + let wait_for_stall_timeout = async_std::task::sleep(self.stall_timeout).shared(); + let wait_for_stall_timeout_rest = wait_for_stall_timeout.clone(); + self.do_wait(wait_for_stall_timeout, wait_for_stall_timeout_rest).await.0 + } +} + +/// Transaction invalidation status. +/// +/// Note that in places where the `TransactionTracker` is used, the finalization event will be +/// ignored - relay loops are detecting the mining/finalization using their own +/// techniques. That's why we're using `InvalidationStatus` here. +#[derive(Debug, PartialEq)] +enum InvalidationStatus { + /// Transaction has been included into block and finalized at given block. + Finalized(BlockId), + /// Transaction has been invalidated. + Invalid, + /// We have lost track of transaction status. + Lost, +} + +/// Watch for transaction status until transaction is finalized or we lose track of its status. +async fn watch_transaction_status< + E: Environment, + C: Chain, + S: Stream>, +>( + environment: E, + transaction_hash: HashOf, + subscription: S, +) -> InvalidationStatus> { + futures::pin_mut!(subscription); + + loop { + match subscription.next().await { + Some(TransactionStatusOf::::Finalized((block_hash, _))) => { + // the only "successful" outcome of this method is when the block with transaction + // has been finalized + log::trace!( + target: "bridge", + "{} transaction {:?} has been finalized at block: {:?}", + C::NAME, + transaction_hash, + block_hash, + ); + + let header_id = match environment.header_id_by_hash(block_hash).await { + Ok(header_id) => header_id, + Err(e) => { + log::error!( + target: "bridge", + "Failed to read header {:?} when watching for {} transaction {:?}: {:?}", + block_hash, + C::NAME, + transaction_hash, + e, + ); + // that's the best option we have here + return InvalidationStatus::Lost + }, + }; + return InvalidationStatus::Finalized(header_id) + }, + Some(TransactionStatusOf::::Invalid) => { + // if node says that the transaction is invalid, there are still chances that + // it is not actually invalid - e.g. if the block where transaction has been + // revalidated is retracted and transaction (at some other node pool) becomes + // valid again on other fork. But let's assume that the chances of this event + // are almost zero - there's a lot of things that must happen for this to be the + // case. + log::trace!( + target: "bridge", + "{} transaction {:?} has been invalidated", + C::NAME, + transaction_hash, + ); + return InvalidationStatus::Invalid + }, + Some(TransactionStatusOf::::Future) | + Some(TransactionStatusOf::::Ready) | + Some(TransactionStatusOf::::Broadcast(_)) => { + // nothing important (for us) has happened + }, + Some(TransactionStatusOf::::InBlock(block_hash)) => { + // TODO: read matching system event (ExtrinsicSuccess or ExtrinsicFailed), log it + // here and use it later (on finality) for reporting invalid transaction + // https://github.com/paritytech/parity-bridges-common/issues/1464 + log::trace!( + target: "bridge", + "{} transaction {:?} has been included in block: {:?}", + C::NAME, + transaction_hash, + block_hash, + ); + }, + Some(TransactionStatusOf::::Retracted(block_hash)) => { + log::trace!( + target: "bridge", + "{} transaction {:?} at block {:?} has been retracted", + C::NAME, + transaction_hash, + block_hash, + ); + }, + Some(TransactionStatusOf::::FinalityTimeout(block_hash)) => { + // finality is lagging? let's wait a bit more and report a stall + log::trace!( + target: "bridge", + "{} transaction {:?} block {:?} has not been finalized for too long", + C::NAME, + transaction_hash, + block_hash, + ); + return InvalidationStatus::Lost + }, + Some(TransactionStatusOf::::Usurped(new_transaction_hash)) => { + // this may be result of our transaction resubmitter work or some manual + // intervention. In both cases - let's start stall timeout, because the meaning + // of transaction may have changed + log::trace!( + target: "bridge", + "{} transaction {:?} has been usurped by new transaction: {:?}", + C::NAME, + transaction_hash, + new_transaction_hash, + ); + return InvalidationStatus::Lost + }, + Some(TransactionStatusOf::::Dropped) => { + // the transaction has been removed from the pool because of its limits. Let's wait + // a bit and report a stall + log::trace!( + target: "bridge", + "{} transaction {:?} has been dropped from the pool", + C::NAME, + transaction_hash, + ); + return InvalidationStatus::Lost + }, + None => { + // the status of transaction is unknown to us (the subscription has been closed?). + // Let's wait a bit and report a stall + return InvalidationStatus::Lost + }, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::test_chain::TestChain; + use futures::{FutureExt, SinkExt}; + use sc_transaction_pool_api::TransactionStatus; + + struct TestEnvironment(Result, Error>); + + #[async_trait] + impl Environment for TestEnvironment { + async fn header_id_by_hash( + &self, + _hash: HashOf, + ) -> Result, Error> { + self.0.as_ref().map_err(|_| Error::BridgePalletIsNotInitialized).cloned() + } + } + + async fn on_transaction_status( + status: TransactionStatus, HashOf>, + ) -> Option<( + TrackedTransactionStatus>, + InvalidationStatus>, + )> { + let (mut sender, receiver) = futures::channel::mpsc::channel(1); + let tx_tracker = TransactionTracker::::new( + TestEnvironment(Ok(HeaderId(0, Default::default()))), + Duration::from_secs(0), + Default::default(), + Subscription(async_std::sync::Mutex::new(receiver)), + ); + + let wait_for_stall_timeout = futures::future::pending(); + let wait_for_stall_timeout_rest = futures::future::ready(()); + sender.send(Some(status)).await.unwrap(); + tx_tracker + .do_wait(wait_for_stall_timeout, wait_for_stall_timeout_rest) + .now_or_never() + .map(|(ts, is)| (ts, is.unwrap())) + } + + #[async_std::test] + async fn returns_finalized_on_finalized() { + assert_eq!( + on_transaction_status(TransactionStatus::Finalized(Default::default())).await, + Some(( + TrackedTransactionStatus::Finalized(Default::default()), + InvalidationStatus::Finalized(Default::default()) + )), + ); + } + + #[async_std::test] + async fn returns_lost_on_finalized_and_environment_error() { + assert_eq!( + watch_transaction_status::<_, TestChain, _>( + TestEnvironment(Err(Error::BridgePalletIsNotInitialized)), + Default::default(), + futures::stream::iter([TransactionStatus::Finalized(Default::default())]) + ) + .now_or_never(), + Some(InvalidationStatus::Lost), + ); + } + + #[async_std::test] + async fn returns_invalid_on_invalid() { + assert_eq!( + on_transaction_status(TransactionStatus::Invalid).await, + Some((TrackedTransactionStatus::Lost, InvalidationStatus::Invalid)), + ); + } + + #[async_std::test] + async fn waits_on_future() { + assert_eq!(on_transaction_status(TransactionStatus::Future).await, None,); + } + + #[async_std::test] + async fn waits_on_ready() { + assert_eq!(on_transaction_status(TransactionStatus::Ready).await, None,); + } + + #[async_std::test] + async fn waits_on_broadcast() { + assert_eq!( + on_transaction_status(TransactionStatus::Broadcast(Default::default())).await, + None, + ); + } + + #[async_std::test] + async fn waits_on_in_block() { + assert_eq!( + on_transaction_status(TransactionStatus::InBlock(Default::default())).await, + None, + ); + } + + #[async_std::test] + async fn waits_on_retracted() { + assert_eq!( + on_transaction_status(TransactionStatus::Retracted(Default::default())).await, + None, + ); + } + + #[async_std::test] + async fn lost_on_finality_timeout() { + assert_eq!( + on_transaction_status(TransactionStatus::FinalityTimeout(Default::default())).await, + Some((TrackedTransactionStatus::Lost, InvalidationStatus::Lost)), + ); + } + + #[async_std::test] + async fn lost_on_usurped() { + assert_eq!( + on_transaction_status(TransactionStatus::Usurped(Default::default())).await, + Some((TrackedTransactionStatus::Lost, InvalidationStatus::Lost)), + ); + } + + #[async_std::test] + async fn lost_on_dropped() { + assert_eq!( + on_transaction_status(TransactionStatus::Dropped).await, + Some((TrackedTransactionStatus::Lost, InvalidationStatus::Lost)), + ); + } + + #[async_std::test] + async fn lost_on_subscription_error() { + assert_eq!( + watch_transaction_status::<_, TestChain, _>( + TestEnvironment(Ok(HeaderId(0, Default::default()))), + Default::default(), + futures::stream::iter([]) + ) + .now_or_never(), + Some(InvalidationStatus::Lost), + ); + } + + #[async_std::test] + async fn lost_on_timeout_when_waiting_for_invalidation_status() { + let (_sender, receiver) = futures::channel::mpsc::channel(1); + let tx_tracker = TransactionTracker::::new( + TestEnvironment(Ok(HeaderId(0, Default::default()))), + Duration::from_secs(0), + Default::default(), + Subscription(async_std::sync::Mutex::new(receiver)), + ); + + let wait_for_stall_timeout = futures::future::ready(()).shared(); + let wait_for_stall_timeout_rest = wait_for_stall_timeout.clone(); + let wait_result = tx_tracker + .do_wait(wait_for_stall_timeout, wait_for_stall_timeout_rest) + .now_or_never(); + + assert_eq!(wait_result, Some((TrackedTransactionStatus::Lost, None))); + } +} diff --git a/bridges/relays/equivocation/Cargo.toml b/bridges/relays/equivocation/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..5a067b62e0774ffb93e8b935ed287696e1fefd7c --- /dev/null +++ b/bridges/relays/equivocation/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "equivocation-detector" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +description = "Equivocation detector" +publish = false + +[lints] +workspace = true + +[dependencies] +async-std = { version = "1.9.0", features = ["attributes"] } +async-trait = "0.1.79" +bp-header-chain = { path = "../../primitives/header-chain" } +finality-relay = { path = "../finality" } +frame-support = { path = "../../../substrate/frame/support" } +futures = "0.3.30" +log = { workspace = true } +num-traits = "0.2" +relay-utils = { path = "../utils" } diff --git a/bridges/relays/equivocation/src/block_checker.rs b/bridges/relays/equivocation/src/block_checker.rs new file mode 100644 index 0000000000000000000000000000000000000000..c8131e5b9796f1050785676156ad1096181299ab --- /dev/null +++ b/bridges/relays/equivocation/src/block_checker.rs @@ -0,0 +1,471 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{ + handle_client_error, reporter::EquivocationsReporter, EquivocationDetectionPipeline, + EquivocationReportingContext, HeaderFinalityInfo, SourceClient, TargetClient, +}; + +use bp_header_chain::{FinalityProof, FindEquivocations as FindEquivocationsT}; +use finality_relay::FinalityProofsBuf; +use futures::future::{BoxFuture, FutureExt}; +use num_traits::Saturating; + +/// First step in the block checking state machine. +/// +/// Getting the finality info associated to the source headers synced with the target chain +/// at the specified block. +#[cfg_attr(test, derive(Debug, PartialEq))] +pub struct ReadSyncedHeaders { + pub target_block_num: P::TargetNumber, +} + +impl ReadSyncedHeaders

{ + pub async fn next>( + self, + target_client: &mut TC, + ) -> Result, Self> { + match target_client.synced_headers_finality_info(self.target_block_num).await { + Ok(synced_headers) => + Ok(ReadContext { target_block_num: self.target_block_num, synced_headers }), + Err(e) => { + log::error!( + target: "bridge", + "Could not get {} headers synced to {} at block {}: {e:?}", + P::SOURCE_NAME, + P::TARGET_NAME, + self.target_block_num + ); + + // Reconnect target client in case of a connection error. + handle_client_error(target_client, e).await; + + Err(self) + }, + } + } +} + +/// Second step in the block checking state machine. +/// +/// Reading the equivocation reporting context from the target chain. +#[cfg_attr(test, derive(Debug))] +pub struct ReadContext { + target_block_num: P::TargetNumber, + synced_headers: Vec>, +} + +impl ReadContext

{ + pub async fn next>( + self, + target_client: &mut TC, + ) -> Result>, Self> { + match EquivocationReportingContext::try_read_from_target::( + target_client, + self.target_block_num.saturating_sub(1.into()), + ) + .await + { + Ok(Some(context)) => Ok(Some(FindEquivocations { + target_block_num: self.target_block_num, + synced_headers: self.synced_headers, + context, + })), + Ok(None) => Ok(None), + Err(e) => { + log::error!( + target: "bridge", + "Could not read {} `EquivocationReportingContext` from {} at block {}: {e:?}", + P::SOURCE_NAME, + P::TARGET_NAME, + self.target_block_num.saturating_sub(1.into()), + ); + + // Reconnect target client in case of a connection error. + handle_client_error(target_client, e).await; + + Err(self) + }, + } + } +} + +/// Third step in the block checking state machine. +/// +/// Searching for equivocations in the source headers synced with the target chain. +#[cfg_attr(test, derive(Debug))] +pub struct FindEquivocations { + target_block_num: P::TargetNumber, + synced_headers: Vec>, + context: EquivocationReportingContext

, +} + +impl FindEquivocations

{ + pub fn next( + mut self, + finality_proofs_buf: &mut FinalityProofsBuf

, + ) -> Vec> { + let mut result = vec![]; + for synced_header in self.synced_headers { + match P::EquivocationsFinder::find_equivocations( + &self.context.synced_verification_context, + &synced_header.finality_proof, + finality_proofs_buf.buf().as_slice(), + ) { + Ok(equivocations) => + if !equivocations.is_empty() { + result.push(ReportEquivocations { + source_block_hash: self.context.synced_header_hash, + equivocations, + }) + }, + Err(e) => { + log::error!( + target: "bridge", + "Could not search for equivocations in the finality proof \ + for source header {:?} synced at target block {}: {e:?}", + synced_header.finality_proof.target_header_hash(), + self.target_block_num + ); + }, + }; + + finality_proofs_buf.prune(synced_header.finality_proof.target_header_number(), None); + self.context.update(synced_header); + } + + result + } +} + +/// Fourth step in the block checking state machine. +/// +/// Reporting the detected equivocations (if any). +#[cfg_attr(test, derive(Debug))] +pub struct ReportEquivocations { + source_block_hash: P::Hash, + equivocations: Vec, +} + +impl ReportEquivocations

{ + pub async fn next>( + mut self, + source_client: &mut SC, + reporter: &mut EquivocationsReporter<'_, P, SC>, + ) -> Result<(), Self> { + let mut unprocessed_equivocations = vec![]; + for equivocation in self.equivocations { + match reporter + .submit_report(source_client, self.source_block_hash, equivocation.clone()) + .await + { + Ok(_) => {}, + Err(e) => { + log::error!( + target: "bridge", + "Could not submit equivocation report to {} for {equivocation:?}: {e:?}", + P::SOURCE_NAME, + ); + + // Mark the equivocation as unprocessed + unprocessed_equivocations.push(equivocation); + // Reconnect source client in case of a connection error. + handle_client_error(source_client, e).await; + }, + } + } + + self.equivocations = unprocessed_equivocations; + if !self.equivocations.is_empty() { + return Err(self) + } + + Ok(()) + } +} + +/// Block checking state machine. +#[cfg_attr(test, derive(Debug))] +pub enum BlockChecker { + ReadSyncedHeaders(ReadSyncedHeaders

), + ReadContext(ReadContext

), + ReportEquivocations(Vec>), +} + +impl BlockChecker

{ + pub fn new(target_block_num: P::TargetNumber) -> Self { + Self::ReadSyncedHeaders(ReadSyncedHeaders { target_block_num }) + } + + pub fn run<'a, SC: SourceClient

, TC: TargetClient

>( + self, + source_client: &'a mut SC, + target_client: &'a mut TC, + finality_proofs_buf: &'a mut FinalityProofsBuf

, + reporter: &'a mut EquivocationsReporter, + ) -> BoxFuture<'a, Result<(), Self>> { + async move { + match self { + Self::ReadSyncedHeaders(state) => { + let read_context = + state.next(target_client).await.map_err(Self::ReadSyncedHeaders)?; + Self::ReadContext(read_context) + .run(source_client, target_client, finality_proofs_buf, reporter) + .await + }, + Self::ReadContext(state) => { + let maybe_find_equivocations = + state.next(target_client).await.map_err(Self::ReadContext)?; + let find_equivocations = match maybe_find_equivocations { + Some(find_equivocations) => find_equivocations, + None => return Ok(()), + }; + Self::ReportEquivocations(find_equivocations.next(finality_proofs_buf)) + .run(source_client, target_client, finality_proofs_buf, reporter) + .await + }, + Self::ReportEquivocations(state) => { + let mut failures = vec![]; + for report_equivocations in state { + if let Err(failure) = + report_equivocations.next(source_client, reporter).await + { + failures.push(failure); + } + } + + if !failures.is_empty() { + return Err(Self::ReportEquivocations(failures)) + } + + Ok(()) + }, + } + } + .boxed() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::mock::*; + use std::collections::HashMap; + + impl PartialEq for ReadContext { + fn eq(&self, other: &Self) -> bool { + self.target_block_num == other.target_block_num && + self.synced_headers == other.synced_headers + } + } + + impl PartialEq for FindEquivocations { + fn eq(&self, other: &Self) -> bool { + self.target_block_num == other.target_block_num && + self.synced_headers == other.synced_headers && + self.context == other.context + } + } + + impl PartialEq for ReportEquivocations { + fn eq(&self, other: &Self) -> bool { + self.source_block_hash == other.source_block_hash && + self.equivocations == other.equivocations + } + } + + impl PartialEq for BlockChecker { + fn eq(&self, _other: &Self) -> bool { + matches!(self, _other) + } + } + + #[async_std::test] + async fn block_checker_works() { + let mut source_client = TestSourceClient { ..Default::default() }; + let mut target_client = TestTargetClient { + best_synced_header_hash: HashMap::from([(9, Ok(Some(5)))]), + finality_verification_context: HashMap::from([( + 9, + Ok(TestFinalityVerificationContext { check_equivocations: true }), + )]), + synced_headers_finality_info: HashMap::from([( + 10, + Ok(vec![ + new_header_finality_info(6, None), + new_header_finality_info(7, Some(false)), + new_header_finality_info(8, None), + new_header_finality_info(9, Some(true)), + new_header_finality_info(10, None), + new_header_finality_info(11, None), + new_header_finality_info(12, None), + ]), + )]), + ..Default::default() + }; + let mut reporter = + EquivocationsReporter::::new(); + + let block_checker = BlockChecker::new(10); + assert!(block_checker + .run( + &mut source_client, + &mut target_client, + &mut FinalityProofsBuf::new(vec![ + TestFinalityProof(6, vec!["6-1"]), + TestFinalityProof(7, vec![]), + TestFinalityProof(8, vec!["8-1"]), + TestFinalityProof(9, vec!["9-1"]), + TestFinalityProof(10, vec![]), + TestFinalityProof(11, vec!["11-1", "11-2"]), + TestFinalityProof(12, vec!["12-1"]) + ]), + &mut reporter + ) + .await + .is_ok()); + assert_eq!( + *source_client.reported_equivocations.lock().unwrap(), + HashMap::from([(5, vec!["6-1"]), (9, vec!["11-1", "11-2", "12-1"])]) + ); + } + + #[async_std::test] + async fn block_checker_works_with_empty_context() { + let mut target_client = TestTargetClient { + best_synced_header_hash: HashMap::from([(9, Ok(None))]), + finality_verification_context: HashMap::from([( + 9, + Ok(TestFinalityVerificationContext { check_equivocations: true }), + )]), + synced_headers_finality_info: HashMap::from([( + 10, + Ok(vec![new_header_finality_info(6, None)]), + )]), + ..Default::default() + }; + let mut source_client = TestSourceClient { ..Default::default() }; + let mut reporter = + EquivocationsReporter::::new(); + + let block_checker = BlockChecker::new(10); + assert!(block_checker + .run( + &mut source_client, + &mut target_client, + &mut FinalityProofsBuf::new(vec![TestFinalityProof(6, vec!["6-1"])]), + &mut reporter + ) + .await + .is_ok()); + assert_eq!(*source_client.reported_equivocations.lock().unwrap(), HashMap::default()); + } + + #[async_std::test] + async fn read_synced_headers_handles_errors() { + let mut target_client = TestTargetClient { + synced_headers_finality_info: HashMap::from([ + (10, Err(TestClientError::NonConnection)), + (11, Err(TestClientError::Connection)), + ]), + ..Default::default() + }; + let mut source_client = TestSourceClient { ..Default::default() }; + let mut reporter = + EquivocationsReporter::::new(); + + // NonConnection error + let block_checker = BlockChecker::new(10); + assert_eq!( + block_checker + .run( + &mut source_client, + &mut target_client, + &mut FinalityProofsBuf::new(vec![]), + &mut reporter + ) + .await, + Err(BlockChecker::ReadSyncedHeaders(ReadSyncedHeaders { target_block_num: 10 })) + ); + assert_eq!(target_client.num_reconnects, 0); + + // Connection error + let block_checker = BlockChecker::new(11); + assert_eq!( + block_checker + .run( + &mut source_client, + &mut target_client, + &mut FinalityProofsBuf::new(vec![]), + &mut reporter + ) + .await, + Err(BlockChecker::ReadSyncedHeaders(ReadSyncedHeaders { target_block_num: 11 })) + ); + assert_eq!(target_client.num_reconnects, 1); + } + + #[async_std::test] + async fn read_context_handles_errors() { + let mut target_client = TestTargetClient { + synced_headers_finality_info: HashMap::from([(10, Ok(vec![])), (11, Ok(vec![]))]), + best_synced_header_hash: HashMap::from([ + (9, Err(TestClientError::NonConnection)), + (10, Err(TestClientError::Connection)), + ]), + ..Default::default() + }; + let mut source_client = TestSourceClient { ..Default::default() }; + let mut reporter = + EquivocationsReporter::::new(); + + // NonConnection error + let block_checker = BlockChecker::new(10); + assert_eq!( + block_checker + .run( + &mut source_client, + &mut target_client, + &mut FinalityProofsBuf::new(vec![]), + &mut reporter + ) + .await, + Err(BlockChecker::ReadContext(ReadContext { + target_block_num: 10, + synced_headers: vec![] + })) + ); + assert_eq!(target_client.num_reconnects, 0); + + // Connection error + let block_checker = BlockChecker::new(11); + assert_eq!( + block_checker + .run( + &mut source_client, + &mut target_client, + &mut FinalityProofsBuf::new(vec![]), + &mut reporter + ) + .await, + Err(BlockChecker::ReadContext(ReadContext { + target_block_num: 11, + synced_headers: vec![] + })) + ); + assert_eq!(target_client.num_reconnects, 1); + } +} diff --git a/bridges/relays/equivocation/src/equivocation_loop.rs b/bridges/relays/equivocation/src/equivocation_loop.rs new file mode 100644 index 0000000000000000000000000000000000000000..dfc4af0d4f62b21baa681aeb6ac6fd638e3e39a5 --- /dev/null +++ b/bridges/relays/equivocation/src/equivocation_loop.rs @@ -0,0 +1,308 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{ + handle_client_error, reporter::EquivocationsReporter, EquivocationDetectionPipeline, + SourceClient, TargetClient, +}; + +use crate::block_checker::BlockChecker; +use finality_relay::{FinalityProofsBuf, FinalityProofsStream}; +use futures::{select_biased, FutureExt}; +use num_traits::Saturating; +use relay_utils::{metrics::MetricsParams, FailedClient}; +use std::{future::Future, time::Duration}; + +/// Equivocations detection loop state. +struct EquivocationDetectionLoop< + P: EquivocationDetectionPipeline, + SC: SourceClient

, + TC: TargetClient

, +> { + source_client: SC, + target_client: TC, + + from_block_num: Option, + until_block_num: Option, + + reporter: EquivocationsReporter<'static, P, SC>, + + finality_proofs_stream: FinalityProofsStream, + finality_proofs_buf: FinalityProofsBuf

, +} + +impl, TC: TargetClient

> + EquivocationDetectionLoop +{ + async fn ensure_finality_proofs_stream(&mut self) { + match self.finality_proofs_stream.ensure_stream(&self.source_client).await { + Ok(_) => {}, + Err(e) => { + log::error!( + target: "bridge", + "Could not connect to the {} `FinalityProofsStream`: {e:?}", + P::SOURCE_NAME, + ); + + // Reconnect to the source client if needed + handle_client_error(&mut self.source_client, e).await; + }, + } + } + + async fn best_finalized_target_block_number(&mut self) -> Option { + match self.target_client.best_finalized_header_number().await { + Ok(block_num) => Some(block_num), + Err(e) => { + log::error!( + target: "bridge", + "Could not read best finalized header number from {}: {e:?}", + P::TARGET_NAME, + ); + + // Reconnect target client and move on + handle_client_error(&mut self.target_client, e).await; + + None + }, + } + } + + async fn do_run(&mut self, tick: Duration, exit_signal: impl Future) { + let exit_signal = exit_signal.fuse(); + futures::pin_mut!(exit_signal); + + loop { + // Make sure that we are connected to the source finality proofs stream. + self.ensure_finality_proofs_stream().await; + // Check the status of the pending equivocation reports + self.reporter.process_pending_reports().await; + + // Update blocks range. + if let Some(block_number) = self.best_finalized_target_block_number().await { + self.from_block_num.get_or_insert(block_number); + self.until_block_num = Some(block_number); + } + let (from, until) = match (self.from_block_num, self.until_block_num) { + (Some(from), Some(until)) => (from, until), + _ => continue, + }; + + // Check the available blocks + let mut current_block_number = from; + while current_block_number <= until { + self.finality_proofs_buf.fill(&mut self.finality_proofs_stream); + let block_checker = BlockChecker::new(current_block_number); + let _ = block_checker + .run( + &mut self.source_client, + &mut self.target_client, + &mut self.finality_proofs_buf, + &mut self.reporter, + ) + .await; + current_block_number = current_block_number.saturating_add(1.into()); + } + self.from_block_num = Some(current_block_number); + + select_biased! { + _ = exit_signal => return, + _ = async_std::task::sleep(tick).fuse() => {}, + } + } + } + + pub async fn run( + source_client: SC, + target_client: TC, + tick: Duration, + exit_signal: impl Future, + ) -> Result<(), FailedClient> { + let mut equivocation_detection_loop = Self { + source_client, + target_client, + from_block_num: None, + until_block_num: None, + reporter: EquivocationsReporter::::new(), + finality_proofs_stream: FinalityProofsStream::new(), + finality_proofs_buf: FinalityProofsBuf::new(vec![]), + }; + + equivocation_detection_loop.do_run(tick, exit_signal).await; + Ok(()) + } +} + +/// Spawn the equivocations detection loop. +pub async fn run( + source_client: impl SourceClient

, + target_client: impl TargetClient

, + tick: Duration, + metrics_params: MetricsParams, + exit_signal: impl Future + 'static + Send, +) -> Result<(), relay_utils::Error> { + let exit_signal = exit_signal.shared(); + relay_utils::relay_loop(source_client, target_client) + .with_metrics(metrics_params) + .expose() + .await? + .run( + format!("{}_to_{}_EquivocationDetection", P::SOURCE_NAME, P::TARGET_NAME), + move |source_client, target_client, _metrics| { + EquivocationDetectionLoop::run( + source_client, + target_client, + tick, + exit_signal.clone(), + ) + }, + ) + .await +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::mock::*; + use futures::{channel::mpsc::UnboundedSender, StreamExt}; + use std::{ + collections::{HashMap, VecDeque}, + sync::{Arc, Mutex}, + }; + + fn best_finalized_header_number( + best_finalized_headers: &Mutex>>, + exit_sender: &UnboundedSender<()>, + ) -> Result { + let mut best_finalized_headers = best_finalized_headers.lock().unwrap(); + let result = best_finalized_headers.pop_front().unwrap(); + if best_finalized_headers.is_empty() { + exit_sender.unbounded_send(()).unwrap(); + } + result + } + + #[async_std::test] + async fn multiple_blocks_are_checked_correctly() { + let best_finalized_headers = Arc::new(Mutex::new(VecDeque::from([Ok(10), Ok(12), Ok(13)]))); + let (exit_sender, exit_receiver) = futures::channel::mpsc::unbounded(); + + let source_client = TestSourceClient { + finality_proofs: Arc::new(Mutex::new(vec![ + TestFinalityProof(2, vec!["2-1"]), + TestFinalityProof(3, vec!["3-1", "3-2"]), + TestFinalityProof(4, vec!["4-1"]), + TestFinalityProof(5, vec!["5-1"]), + TestFinalityProof(6, vec!["6-1", "6-2"]), + TestFinalityProof(7, vec!["7-1", "7-2"]), + ])), + ..Default::default() + }; + let reported_equivocations = source_client.reported_equivocations.clone(); + let target_client = TestTargetClient { + best_finalized_header_number: Arc::new(move || { + best_finalized_header_number(&best_finalized_headers, &exit_sender) + }), + best_synced_header_hash: HashMap::from([ + (9, Ok(Some(1))), + (10, Ok(Some(3))), + (11, Ok(Some(5))), + (12, Ok(Some(6))), + ]), + finality_verification_context: HashMap::from([ + (9, Ok(TestFinalityVerificationContext { check_equivocations: true })), + (10, Ok(TestFinalityVerificationContext { check_equivocations: true })), + (11, Ok(TestFinalityVerificationContext { check_equivocations: false })), + (12, Ok(TestFinalityVerificationContext { check_equivocations: true })), + ]), + synced_headers_finality_info: HashMap::from([ + ( + 10, + Ok(vec![new_header_finality_info(2, None), new_header_finality_info(3, None)]), + ), + ( + 11, + Ok(vec![ + new_header_finality_info(4, None), + new_header_finality_info(5, Some(false)), + ]), + ), + (12, Ok(vec![new_header_finality_info(6, None)])), + (13, Ok(vec![new_header_finality_info(7, None)])), + ]), + ..Default::default() + }; + + assert!(run::( + source_client, + target_client, + Duration::from_secs(0), + MetricsParams { address: None, registry: Default::default() }, + exit_receiver.into_future().map(|(_, _)| ()), + ) + .await + .is_ok()); + assert_eq!( + *reported_equivocations.lock().unwrap(), + HashMap::from([ + (1, vec!["2-1", "3-1", "3-2"]), + (3, vec!["4-1", "5-1"]), + (6, vec!["7-1", "7-2"]) + ]) + ); + } + + #[async_std::test] + async fn blocks_following_error_are_checked_correctly() { + let best_finalized_headers = Mutex::new(VecDeque::from([Ok(10), Ok(11)])); + let (exit_sender, exit_receiver) = futures::channel::mpsc::unbounded(); + + let source_client = TestSourceClient { + finality_proofs: Arc::new(Mutex::new(vec![ + TestFinalityProof(2, vec!["2-1"]), + TestFinalityProof(3, vec!["3-1"]), + ])), + ..Default::default() + }; + let reported_equivocations = source_client.reported_equivocations.clone(); + let target_client = TestTargetClient { + best_finalized_header_number: Arc::new(move || { + best_finalized_header_number(&best_finalized_headers, &exit_sender) + }), + best_synced_header_hash: HashMap::from([(9, Ok(Some(1))), (10, Ok(Some(2)))]), + finality_verification_context: HashMap::from([ + (9, Ok(TestFinalityVerificationContext { check_equivocations: true })), + (10, Ok(TestFinalityVerificationContext { check_equivocations: true })), + ]), + synced_headers_finality_info: HashMap::from([ + (10, Err(TestClientError::NonConnection)), + (11, Ok(vec![new_header_finality_info(3, None)])), + ]), + ..Default::default() + }; + + assert!(run::( + source_client, + target_client, + Duration::from_secs(0), + MetricsParams { address: None, registry: Default::default() }, + exit_receiver.into_future().map(|(_, _)| ()), + ) + .await + .is_ok()); + assert_eq!(*reported_equivocations.lock().unwrap(), HashMap::from([(2, vec!["3-1"]),])); + } +} diff --git a/bridges/relays/equivocation/src/lib.rs b/bridges/relays/equivocation/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..56a71ef3bc63c422e336c27891b58aee682d605a --- /dev/null +++ b/bridges/relays/equivocation/src/lib.rs @@ -0,0 +1,137 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +mod block_checker; +mod equivocation_loop; +mod mock; +mod reporter; + +use async_trait::async_trait; +use bp_header_chain::{FinalityProof, FindEquivocations}; +use finality_relay::{FinalityPipeline, SourceClientBase}; +use relay_utils::{relay_loop::Client as RelayClient, MaybeConnectionError, TransactionTracker}; +use std::{fmt::Debug, time::Duration}; + +pub use equivocation_loop::run; + +#[cfg(not(test))] +const RECONNECT_DELAY: Duration = relay_utils::relay_loop::RECONNECT_DELAY; +#[cfg(test)] +const RECONNECT_DELAY: Duration = mock::TEST_RECONNECT_DELAY; + +pub trait EquivocationDetectionPipeline: FinalityPipeline { + /// Block number of the target chain. + type TargetNumber: relay_utils::BlockNumberBase; + /// The context needed for validating finality proofs. + type FinalityVerificationContext: Debug + Send; + /// The type of the equivocation proof. + type EquivocationProof: Clone + Debug + Send + Sync; + /// The equivocations finder. + type EquivocationsFinder: FindEquivocations< + Self::FinalityProof, + Self::FinalityVerificationContext, + Self::EquivocationProof, + >; +} + +type HeaderFinalityInfo

= bp_header_chain::HeaderFinalityInfo< +

::FinalityProof, +

::FinalityVerificationContext, +>; + +/// Source client used in equivocation detection loop. +#[async_trait] +pub trait SourceClient: SourceClientBase

{ + /// Transaction tracker to track submitted transactions. + type TransactionTracker: TransactionTracker; + + /// Report equivocation. + async fn report_equivocation( + &self, + at: P::Hash, + equivocation: P::EquivocationProof, + ) -> Result; +} + +/// Target client used in equivocation detection loop. +#[async_trait] +pub trait TargetClient: RelayClient { + /// Get the best finalized header number. + async fn best_finalized_header_number(&self) -> Result; + + /// Get the hash of the best source header known by the target at the provided block number. + async fn best_synced_header_hash( + &self, + at: P::TargetNumber, + ) -> Result, Self::Error>; + + /// Get the data stored by the target at the specified block for validating source finality + /// proofs. + async fn finality_verification_context( + &self, + at: P::TargetNumber, + ) -> Result; + + /// Get the finality info associated to the source headers synced with the target chain at the + /// specified block. + async fn synced_headers_finality_info( + &self, + at: P::TargetNumber, + ) -> Result>, Self::Error>; +} + +/// The context needed for finding equivocations inside finality proofs and reporting them. +#[derive(Debug, PartialEq)] +struct EquivocationReportingContext { + pub synced_header_hash: P::Hash, + pub synced_verification_context: P::FinalityVerificationContext, +} + +impl EquivocationReportingContext

{ + /// Try to get the `EquivocationReportingContext` used by the target chain + /// at the provided block. + pub async fn try_read_from_target>( + target_client: &TC, + at: P::TargetNumber, + ) -> Result, TC::Error> { + let maybe_best_synced_header_hash = target_client.best_synced_header_hash(at).await?; + Ok(match maybe_best_synced_header_hash { + Some(best_synced_header_hash) => Some(EquivocationReportingContext { + synced_header_hash: best_synced_header_hash, + synced_verification_context: target_client + .finality_verification_context(at) + .await?, + }), + None => None, + }) + } + + /// Update with the new context introduced by the `HeaderFinalityInfo

` if any. + pub fn update(&mut self, info: HeaderFinalityInfo

) { + if let Some(new_verification_context) = info.new_verification_context { + self.synced_header_hash = info.finality_proof.target_header_hash(); + self.synced_verification_context = new_verification_context; + } + } +} + +async fn handle_client_error(client: &mut C, e: C::Error) { + if e.is_connection_error() { + client.reconnect_until_success(RECONNECT_DELAY).await; + } else { + async_std::task::sleep(RECONNECT_DELAY).await; + } +} diff --git a/bridges/relays/equivocation/src/mock.rs b/bridges/relays/equivocation/src/mock.rs new file mode 100644 index 0000000000000000000000000000000000000000..ced5c6f3580652a0d044171171a2a87fab1854cf --- /dev/null +++ b/bridges/relays/equivocation/src/mock.rs @@ -0,0 +1,285 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +#![cfg(test)] + +use crate::{EquivocationDetectionPipeline, HeaderFinalityInfo, SourceClient, TargetClient}; +use async_trait::async_trait; +use bp_header_chain::{FinalityProof, FindEquivocations}; +use finality_relay::{FinalityPipeline, SourceClientBase}; +use futures::{Stream, StreamExt}; +use relay_utils::{ + relay_loop::Client as RelayClient, HeaderId, MaybeConnectionError, TrackedTransactionStatus, + TransactionTracker, +}; +use std::{ + collections::HashMap, + pin::Pin, + sync::{Arc, Mutex}, + time::Duration, +}; + +pub type TestSourceHashAndNumber = u64; +pub type TestTargetNumber = u64; +pub type TestEquivocationProof = &'static str; + +pub const TEST_RECONNECT_DELAY: Duration = Duration::from_secs(0); + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TestFinalityProof(pub TestSourceHashAndNumber, pub Vec); + +impl FinalityProof for TestFinalityProof { + fn target_header_hash(&self) -> TestSourceHashAndNumber { + self.0 + } + + fn target_header_number(&self) -> TestSourceHashAndNumber { + self.0 + } +} + +#[derive(Debug, Clone, PartialEq)] +pub struct TestEquivocationDetectionPipeline; + +impl FinalityPipeline for TestEquivocationDetectionPipeline { + const SOURCE_NAME: &'static str = "TestSource"; + const TARGET_NAME: &'static str = "TestTarget"; + + type Hash = TestSourceHashAndNumber; + type Number = TestSourceHashAndNumber; + type FinalityProof = TestFinalityProof; +} + +#[derive(Clone, Debug, PartialEq)] +pub struct TestFinalityVerificationContext { + pub check_equivocations: bool, +} + +pub struct TestEquivocationsFinder; + +impl FindEquivocations + for TestEquivocationsFinder +{ + type Error = (); + + fn find_equivocations( + verification_context: &TestFinalityVerificationContext, + synced_proof: &TestFinalityProof, + source_proofs: &[TestFinalityProof], + ) -> Result, Self::Error> { + if verification_context.check_equivocations { + // Get the equivocations from the source proofs, in order to make sure + // that they are correctly provided. + if let Some(proof) = source_proofs.iter().find(|proof| proof.0 == synced_proof.0) { + return Ok(proof.1.clone()) + } + } + + Ok(vec![]) + } +} + +impl EquivocationDetectionPipeline for TestEquivocationDetectionPipeline { + type TargetNumber = TestTargetNumber; + type FinalityVerificationContext = TestFinalityVerificationContext; + type EquivocationProof = TestEquivocationProof; + type EquivocationsFinder = TestEquivocationsFinder; +} + +#[derive(Debug, Clone)] +pub enum TestClientError { + Connection, + NonConnection, +} + +impl MaybeConnectionError for TestClientError { + fn is_connection_error(&self) -> bool { + match self { + TestClientError::Connection => true, + TestClientError::NonConnection => false, + } + } +} + +#[derive(Clone)] +pub struct TestSourceClient { + pub num_reconnects: u32, + pub finality_proofs: Arc>>, + pub reported_equivocations: + Arc>>>, +} + +impl Default for TestSourceClient { + fn default() -> Self { + Self { + num_reconnects: 0, + finality_proofs: Arc::new(Mutex::new(vec![])), + reported_equivocations: Arc::new(Mutex::new(Default::default())), + } + } +} + +#[async_trait] +impl RelayClient for TestSourceClient { + type Error = TestClientError; + + async fn reconnect(&mut self) -> Result<(), Self::Error> { + self.num_reconnects += 1; + + Ok(()) + } +} + +#[async_trait] +impl SourceClientBase for TestSourceClient { + type FinalityProofsStream = Pin + 'static + Send>>; + + async fn finality_proofs(&self) -> Result { + let finality_proofs = std::mem::take(&mut *self.finality_proofs.lock().unwrap()); + Ok(futures::stream::iter(finality_proofs).boxed()) + } +} + +#[derive(Clone, Debug)] +pub struct TestTransactionTracker( + pub TrackedTransactionStatus>, +); + +impl Default for TestTransactionTracker { + fn default() -> TestTransactionTracker { + TestTransactionTracker(TrackedTransactionStatus::Finalized(Default::default())) + } +} + +#[async_trait] +impl TransactionTracker for TestTransactionTracker { + type HeaderId = HeaderId; + + async fn wait( + self, + ) -> TrackedTransactionStatus> { + self.0 + } +} + +#[async_trait] +impl SourceClient for TestSourceClient { + type TransactionTracker = TestTransactionTracker; + + async fn report_equivocation( + &self, + at: TestSourceHashAndNumber, + equivocation: TestEquivocationProof, + ) -> Result { + self.reported_equivocations + .lock() + .unwrap() + .entry(at) + .or_default() + .push(equivocation); + + Ok(TestTransactionTracker::default()) + } +} + +#[derive(Clone)] +pub struct TestTargetClient { + pub num_reconnects: u32, + pub best_finalized_header_number: + Arc Result + Send + Sync>, + pub best_synced_header_hash: + HashMap, TestClientError>>, + pub finality_verification_context: + HashMap>, + pub synced_headers_finality_info: HashMap< + TestTargetNumber, + Result>, TestClientError>, + >, +} + +impl Default for TestTargetClient { + fn default() -> Self { + Self { + num_reconnects: 0, + best_finalized_header_number: Arc::new(|| Ok(0)), + best_synced_header_hash: Default::default(), + finality_verification_context: Default::default(), + synced_headers_finality_info: Default::default(), + } + } +} + +#[async_trait] +impl RelayClient for TestTargetClient { + type Error = TestClientError; + + async fn reconnect(&mut self) -> Result<(), Self::Error> { + self.num_reconnects += 1; + + Ok(()) + } +} + +#[async_trait] +impl TargetClient for TestTargetClient { + async fn best_finalized_header_number(&self) -> Result { + (self.best_finalized_header_number)() + } + + async fn best_synced_header_hash( + &self, + at: TestTargetNumber, + ) -> Result, Self::Error> { + self.best_synced_header_hash + .get(&at) + .unwrap_or(&Err(TestClientError::NonConnection)) + .clone() + } + + async fn finality_verification_context( + &self, + at: TestTargetNumber, + ) -> Result { + self.finality_verification_context + .get(&at) + .unwrap_or(&Err(TestClientError::NonConnection)) + .clone() + } + + async fn synced_headers_finality_info( + &self, + at: TestTargetNumber, + ) -> Result>, Self::Error> { + self.synced_headers_finality_info + .get(&at) + .unwrap_or(&Err(TestClientError::NonConnection)) + .clone() + } +} + +pub fn new_header_finality_info( + source_hdr: TestSourceHashAndNumber, + check_following_equivocations: Option, +) -> HeaderFinalityInfo { + HeaderFinalityInfo:: { + finality_proof: TestFinalityProof(source_hdr, vec![]), + new_verification_context: check_following_equivocations.map( + |check_following_equivocations| TestFinalityVerificationContext { + check_equivocations: check_following_equivocations, + }, + ), + } +} diff --git a/bridges/relays/equivocation/src/reporter.rs b/bridges/relays/equivocation/src/reporter.rs new file mode 100644 index 0000000000000000000000000000000000000000..9c4642383d1648b9eae81a5eb0b853fb07efd5d6 --- /dev/null +++ b/bridges/relays/equivocation/src/reporter.rs @@ -0,0 +1,129 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Helper struct used for submitting finality reports and tracking their status. + +use crate::{EquivocationDetectionPipeline, SourceClient}; + +use futures::FutureExt; +use relay_utils::{TrackedTransactionFuture, TrackedTransactionStatus, TransactionTracker}; +use std::{ + future::poll_fn, + task::{Context, Poll}, +}; + +pub struct EquivocationsReporter<'a, P: EquivocationDetectionPipeline, SC: SourceClient

> { + pending_reports: Vec>, +} + +impl<'a, P: EquivocationDetectionPipeline, SC: SourceClient

> EquivocationsReporter<'a, P, SC> { + pub fn new() -> Self { + Self { pending_reports: vec![] } + } + + /// Submit a `report_equivocation()` transaction to the source chain. + /// + /// We store the transaction tracker for future monitoring. + pub async fn submit_report( + &mut self, + source_client: &SC, + at: P::Hash, + equivocation: P::EquivocationProof, + ) -> Result<(), SC::Error> { + let pending_report = source_client.report_equivocation(at, equivocation).await?; + self.pending_reports.push(pending_report.wait()); + + Ok(()) + } + + fn do_process_pending_reports(&mut self, cx: &mut Context<'_>) -> Poll<()> { + self.pending_reports.retain_mut(|pending_report| { + match pending_report.poll_unpin(cx) { + Poll::Ready(tx_status) => { + match tx_status { + TrackedTransactionStatus::Lost => { + log::error!(target: "bridge", "Equivocation report tx was lost"); + }, + TrackedTransactionStatus::Finalized(id) => { + log::error!(target: "bridge", "Equivocation report tx was finalized in source block {id:?}"); + }, + } + + // The future was processed. Drop it. + false + }, + Poll::Pending => { + // The future is still pending. Retain it. + true + }, + } + }); + + Poll::Ready(()) + } + + /// Iterate through all the pending `report_equivocation()` transactions + /// and log the ones that finished. + pub async fn process_pending_reports(&mut self) { + poll_fn(|cx| self.do_process_pending_reports(cx)).await + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::mock::*; + use relay_utils::HeaderId; + use std::sync::Mutex; + + #[async_std::test] + async fn process_pending_reports_works() { + let polled_reports = Mutex::new(vec![]); + let finished_reports = Mutex::new(vec![]); + + let mut reporter = + EquivocationsReporter:: { + pending_reports: vec![ + Box::pin(async { + polled_reports.lock().unwrap().push(1); + finished_reports.lock().unwrap().push(1); + TrackedTransactionStatus::Finalized(HeaderId(1, 1)) + }), + Box::pin(async { + polled_reports.lock().unwrap().push(2); + finished_reports.lock().unwrap().push(2); + TrackedTransactionStatus::Finalized(HeaderId(2, 2)) + }), + Box::pin(async { + polled_reports.lock().unwrap().push(3); + std::future::pending::<()>().await; + finished_reports.lock().unwrap().push(3); + TrackedTransactionStatus::Finalized(HeaderId(3, 3)) + }), + Box::pin(async { + polled_reports.lock().unwrap().push(4); + finished_reports.lock().unwrap().push(4); + TrackedTransactionStatus::Finalized(HeaderId(4, 4)) + }), + ], + }; + + reporter.process_pending_reports().await; + assert_eq!(*polled_reports.lock().unwrap(), vec![1, 2, 3, 4]); + assert_eq!(*finished_reports.lock().unwrap(), vec![1, 2, 4]); + assert_eq!(reporter.pending_reports.len(), 1); + } +} diff --git a/bridges/relays/finality/Cargo.toml b/bridges/relays/finality/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..5ee4b10fa638f5ec226df14beca1e0c79d0055df --- /dev/null +++ b/bridges/relays/finality/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "finality-relay" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +description = "Finality proofs relay" +publish = false + +[lints] +workspace = true + +[dependencies] +async-std = "1.9.0" +async-trait = "0.1.79" +backoff = "0.4" +bp-header-chain = { path = "../../primitives/header-chain" } +futures = "0.3.30" +log = { workspace = true } +num-traits = "0.2" +relay-utils = { path = "../utils" } + +[dev-dependencies] +parking_lot = "0.12.1" diff --git a/bridges/relays/finality/README.md b/bridges/relays/finality/README.md new file mode 100644 index 0000000000000000000000000000000000000000..92e765cea0e505be7854e17a9b91df520bba32b0 --- /dev/null +++ b/bridges/relays/finality/README.md @@ -0,0 +1,60 @@ +# GRANDPA Finality Relay + +The finality relay is able to work with different finality engines. In the modern Substrate world they are GRANDPA +and BEEFY. Let's talk about GRANDPA here, because BEEFY relay and bridge BEEFY pallet are in development. + +In general, the relay works as follows: it connects to the source and target chain. The source chain must have the +[GRANDPA gadget](https://github.com/paritytech/finality-grandpa) running (so it can't be a parachain). The target +chain must have the [bridge GRANDPA pallet](../../modules/grandpa/) deployed at its runtime. The relay subscribes +to the GRANDPA finality notifications at the source chain and when the new justification is received, it is submitted +to the pallet at the target chain. + +Apart from that, the relay is watching for every source header that is missing at target. If it finds the missing +mandatory header (header that is changing the current GRANDPA validators set), it submits the justification for +this header. The case when the source node can't return the mandatory justification is considered a fatal error, +because the pallet can't proceed without it. + +More: [GRANDPA Finality Relay Sequence Diagram](../../docs/grandpa-finality-relay.html). + +## How to Use the Finality Relay + +The most important trait is the [`FinalitySyncPipeline`](./src/lib.rs), which defines the basic primitives of the +source chain (like block hash and number) and the type of finality proof (GRANDPA justification or MMR proof). Once +that is defined, there are two other traits - [`SourceClient`](./src/finality_loop.rs) and +[`TargetClient`](./src/finality_loop.rs). + +The `SourceClient` represents the Substrate node client that connects to the source chain. The client needs to +be able to return the best finalized header number, finalized header and its finality proof and the stream of +finality proofs. + +The `TargetClient` implementation must be able to craft finality delivery transaction and submit it to the target +node. The transaction is then tracked by the relay until it is mined and finalized. + +The main entrypoint for the crate is the [`run` function](./src/finality_loop.rs), which takes source and target +clients and [`FinalitySyncParams`](./src/finality_loop.rs) parameters. The most important parameter is the +`only_mandatory_headers` - it is set to `true`, the relay will only submit mandatory headers. Since transactions +with mandatory headers are fee-free, the cost of running such relay is zero (in terms of fees). + +## Finality Relay Metrics + +Finality relay provides several metrics. Metrics names depend on names of source and target chains. The list below +shows metrics names for Rococo (source chain) to BridgeHubWestend (target chain) finality relay. For other +chains, simply change chain names. So the metrics are: + +- `Rococo_to_BridgeHubWestend_Sync_best_source_block_number` - returns best finalized source chain (Rococo) block + number, known to the relay. + If relay is running in [on-demand mode](../bin-substrate/src/cli/relay_headers_and_messages/), the + number may not match (it may be far behind) the actual best finalized number; + +- `Rococo_to_BridgeHubWestend_Sync_best_source_at_target_block_number` - returns best finalized source chain (Rococo) + block number that is known to the bridge GRANDPA pallet at the target chain. + +- `Rococo_to_BridgeHubWestend_Sync_is_source_and_source_at_target_using_different_forks` - if this metrics is set + to `1`, then the best source chain header known to the target chain doesn't match the same-number-header + at the source chain. It means that the GRANDPA validators set has crafted the duplicate justification + and it has been submitted to the target chain. + Normally (if majority of validators are honest and if you're running finality relay without large breaks) + this shall not happen and the metric will have `0` value. + +If relay operates properly, you should see that the `Rococo_to_BridgeHubWestend_Sync_best_source_at_target_block_number` +tries to reach the `Rococo_to_BridgeHubWestend_Sync_best_source_block_number`. And the latter one always increases. diff --git a/bridges/relays/finality/src/base.rs b/bridges/relays/finality/src/base.rs new file mode 100644 index 0000000000000000000000000000000000000000..4253468eaace1ef2a2adc47790f7e16c38160200 --- /dev/null +++ b/bridges/relays/finality/src/base.rs @@ -0,0 +1,51 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use async_trait::async_trait; +use bp_header_chain::FinalityProof; +use futures::Stream; +use relay_utils::relay_loop::Client as RelayClient; +use std::fmt::Debug; + +/// Base finality pipeline. +pub trait FinalityPipeline: 'static + Clone + Debug + Send + Sync { + /// Name of the finality proofs source. + const SOURCE_NAME: &'static str; + /// Name of the finality proofs target. + const TARGET_NAME: &'static str; + + /// Synced headers are identified by this hash. + type Hash: Eq + Clone + Copy + Send + Sync + Debug; + /// Synced headers are identified by this number. + type Number: relay_utils::BlockNumberBase; + /// Finality proof type. + type FinalityProof: FinalityProof; +} + +/// Source client used in finality related loops. +#[async_trait] +pub trait SourceClientBase: RelayClient { + /// Stream of new finality proofs. The stream is allowed to miss proofs for some + /// headers, even if those headers are mandatory. + type FinalityProofsStream: Stream + Send + Unpin; + + /// Subscribe to new finality proofs. + async fn finality_proofs(&self) -> Result; +} + +/// Target client used in finality related loops. +#[async_trait] +pub trait TargetClientBase: RelayClient {} diff --git a/bridges/relays/finality/src/finality_loop.rs b/bridges/relays/finality/src/finality_loop.rs new file mode 100644 index 0000000000000000000000000000000000000000..e31d8a708122db84c4c87f257edee7ee4ba616bb --- /dev/null +++ b/bridges/relays/finality/src/finality_loop.rs @@ -0,0 +1,698 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! The loop basically reads all missing headers and their finality proofs from the source client. +//! The proof for the best possible header is then submitted to the target node. The only exception +//! is the mandatory headers, which we always submit to the target node. For such headers, we +//! assume that the persistent proof either exists, or will eventually become available. + +use crate::{sync_loop_metrics::SyncLoopMetrics, Error, FinalitySyncPipeline, SourceHeader}; + +use crate::{ + base::SourceClientBase, + finality_proofs::{FinalityProofsBuf, FinalityProofsStream}, + headers::{JustifiedHeader, JustifiedHeaderSelector}, +}; +use async_trait::async_trait; +use backoff::{backoff::Backoff, ExponentialBackoff}; +use futures::{future::Fuse, select, Future, FutureExt}; +use num_traits::Saturating; +use relay_utils::{ + metrics::MetricsParams, relay_loop::Client as RelayClient, retry_backoff, FailedClient, + HeaderId, MaybeConnectionError, TrackedTransactionStatus, TransactionTracker, +}; +use std::{ + fmt::Debug, + time::{Duration, Instant}, +}; + +/// Finality proof synchronization loop parameters. +#[derive(Debug, Clone)] +pub struct FinalitySyncParams { + /// Interval at which we check updates on both clients. Normally should be larger than + /// `min(source_block_time, target_block_time)`. + /// + /// This parameter may be used to limit transactions rate. Increase the value && you'll get + /// infrequent updates => sparse headers => potential slow down of bridge applications, but + /// pallet storage won't be super large. Decrease the value to near `source_block_time` and + /// you'll get transaction for (almost) every block of the source chain => all source headers + /// will be known to the target chain => bridge applications will run faster, but pallet + /// storage may explode (but if pruning is there, then it's fine). + pub tick: Duration, + /// Number of finality proofs to keep in internal buffer between loop iterations. + /// + /// While in "major syncing" state, we still read finality proofs from the stream. They're + /// stored in the internal buffer between loop iterations. When we're close to the tip of the + /// chain, we may meet finality delays if headers are not finalized frequently. So instead of + /// waiting for next finality proof to appear in the stream, we may use existing proof from + /// that buffer. + pub recent_finality_proofs_limit: usize, + /// Timeout before we treat our transactions as lost and restart the whole sync process. + pub stall_timeout: Duration, + /// If true, only mandatory headers are relayed. + pub only_mandatory_headers: bool, +} + +/// Source client used in finality synchronization loop. +#[async_trait] +pub trait SourceClient: SourceClientBase

{ + /// Get best finalized block number. + async fn best_finalized_block_number(&self) -> Result; + + /// Get canonical header and its finality proof by number. + async fn header_and_finality_proof( + &self, + number: P::Number, + ) -> Result<(P::Header, Option), Self::Error>; +} + +/// Target client used in finality synchronization loop. +#[async_trait] +pub trait TargetClient: RelayClient { + /// Transaction tracker to track submitted transactions. + type TransactionTracker: TransactionTracker; + + /// Get best finalized source block number. + async fn best_finalized_source_block_id( + &self, + ) -> Result, Self::Error>; + + /// Submit header finality proof. + async fn submit_finality_proof( + &self, + header: P::Header, + proof: P::FinalityProof, + ) -> Result; +} + +/// Return prefix that will be used by default to expose Prometheus metrics of the finality proofs +/// sync loop. +pub fn metrics_prefix() -> String { + format!("{}_to_{}_Sync", P::SOURCE_NAME, P::TARGET_NAME) +} + +pub struct SyncInfo { + pub best_number_at_source: P::Number, + pub best_number_at_target: P::Number, + pub is_using_same_fork: bool, +} + +impl SyncInfo

{ + /// Checks if both clients are on the same fork. + async fn is_on_same_fork>( + source_client: &SC, + id_at_target: &HeaderId, + ) -> Result { + let header_at_source = source_client.header_and_finality_proof(id_at_target.0).await?.0; + let header_hash_at_source = header_at_source.hash(); + Ok(if id_at_target.1 == header_hash_at_source { + true + } else { + log::error!( + target: "bridge", + "Source node ({}) and pallet at target node ({}) have different headers at the same height {:?}: \ + at-source {:?} vs at-target {:?}", + P::SOURCE_NAME, + P::TARGET_NAME, + id_at_target.0, + header_hash_at_source, + id_at_target.1, + ); + + false + }) + } + + async fn new, TC: TargetClient

>( + source_client: &SC, + target_client: &TC, + ) -> Result> { + let best_number_at_source = + source_client.best_finalized_block_number().await.map_err(Error::Source)?; + let best_id_at_target = + target_client.best_finalized_source_block_id().await.map_err(Error::Target)?; + let best_number_at_target = best_id_at_target.0; + + let is_using_same_fork = Self::is_on_same_fork(source_client, &best_id_at_target) + .await + .map_err(Error::Source)?; + + Ok(Self { best_number_at_source, best_number_at_target, is_using_same_fork }) + } + + fn update_metrics(&self, metrics_sync: &Option) { + if let Some(metrics_sync) = metrics_sync { + metrics_sync.update_best_block_at_source(self.best_number_at_source); + metrics_sync.update_best_block_at_target(self.best_number_at_target); + metrics_sync.update_using_same_fork(self.is_using_same_fork); + } + } + + pub fn num_headers(&self) -> P::Number { + self.best_number_at_source.saturating_sub(self.best_number_at_target) + } +} + +/// Information about transaction that we have submitted. +#[derive(Debug, Clone)] +pub struct Transaction { + /// Submitted transaction tracker. + tracker: Tracker, + /// The number of the header we have submitted. + header_number: Number, +} + +impl Transaction { + pub async fn submit< + P: FinalitySyncPipeline, + TC: TargetClient, + >( + target_client: &TC, + header: P::Header, + justification: P::FinalityProof, + ) -> Result { + let header_number = header.number(); + log::debug!( + target: "bridge", + "Going to submit finality proof of {} header #{:?} to {}", + P::SOURCE_NAME, + header_number, + P::TARGET_NAME, + ); + + let tracker = target_client.submit_finality_proof(header, justification).await?; + Ok(Transaction { tracker, header_number }) + } + + async fn track< + P: FinalitySyncPipeline, + SC: SourceClient

, + TC: TargetClient

, + >( + self, + target_client: TC, + ) -> Result<(), Error> { + match self.tracker.wait().await { + TrackedTransactionStatus::Finalized(_) => { + // The transaction has been finalized, but it may have been finalized in the + // "failed" state. So let's check if the block number was actually updated. + target_client + .best_finalized_source_block_id() + .await + .map_err(Error::Target) + .and_then(|best_id_at_target| { + if self.header_number > best_id_at_target.0 { + return Err(Error::ProofSubmissionTxFailed { + submitted_number: self.header_number, + best_number_at_target: best_id_at_target.0, + }) + } + Ok(()) + }) + }, + TrackedTransactionStatus::Lost => Err(Error::ProofSubmissionTxLost), + } + } +} + +/// Finality synchronization loop state. +struct FinalityLoop, TC: TargetClient

> { + source_client: SC, + target_client: TC, + + sync_params: FinalitySyncParams, + metrics_sync: Option, + + progress: (Instant, Option), + retry_backoff: ExponentialBackoff, + finality_proofs_stream: FinalityProofsStream, + finality_proofs_buf: FinalityProofsBuf

, + best_submitted_number: Option, +} + +impl, TC: TargetClient

> FinalityLoop { + pub fn new( + source_client: SC, + target_client: TC, + sync_params: FinalitySyncParams, + metrics_sync: Option, + ) -> Self { + Self { + source_client, + target_client, + sync_params, + metrics_sync, + progress: (Instant::now(), None), + retry_backoff: retry_backoff(), + finality_proofs_stream: FinalityProofsStream::new(), + finality_proofs_buf: FinalityProofsBuf::new(vec![]), + best_submitted_number: None, + } + } + + fn update_progress(&mut self, info: &SyncInfo

) { + let (prev_time, prev_best_number_at_target) = self.progress; + let now = Instant::now(); + + let needs_update = now - prev_time > Duration::from_secs(10) || + prev_best_number_at_target + .map(|prev_best_number_at_target| { + info.best_number_at_target.saturating_sub(prev_best_number_at_target) > + 10.into() + }) + .unwrap_or(true); + + if !needs_update { + return + } + + log::info!( + target: "bridge", + "Synced {:?} of {:?} headers", + info.best_number_at_target, + info.best_number_at_source, + ); + + self.progress = (now, Some(info.best_number_at_target)) + } + + pub async fn select_header_to_submit( + &mut self, + info: &SyncInfo

, + ) -> Result>, Error> { + // to see that the loop is progressing + log::trace!( + target: "bridge", + "Considering range of headers ({}; {}]", + info.best_number_at_target, + info.best_number_at_source + ); + + // read missing headers + let selector = JustifiedHeaderSelector::new::(&self.source_client, info).await?; + // if we see that the header schedules GRANDPA change, we need to submit it + if self.sync_params.only_mandatory_headers { + return Ok(selector.select_mandatory()) + } + + // all headers that are missing from the target client are non-mandatory + // => even if we have already selected some header and its persistent finality proof, + // we may try to select better header by reading non-persistent proofs from the stream + self.finality_proofs_buf.fill(&mut self.finality_proofs_stream); + let maybe_justified_header = selector.select(&self.finality_proofs_buf); + + // remove obsolete 'recent' finality proofs + keep its size under certain limit + let oldest_finality_proof_to_keep = maybe_justified_header + .as_ref() + .map(|justified_header| justified_header.number()) + .unwrap_or(info.best_number_at_target); + self.finality_proofs_buf.prune( + oldest_finality_proof_to_keep, + Some(self.sync_params.recent_finality_proofs_limit), + ); + + Ok(maybe_justified_header) + } + + pub async fn run_iteration( + &mut self, + ) -> Result< + Option>, + Error, + > { + // read best source headers ids from source and target nodes + let info = SyncInfo::new(&self.source_client, &self.target_client).await?; + info.update_metrics(&self.metrics_sync); + self.update_progress(&info); + + // if we have already submitted header, then we just need to wait for it + // if we're waiting too much, then we believe our transaction has been lost and restart sync + if Some(info.best_number_at_target) < self.best_submitted_number { + return Ok(None) + } + + // submit new header if we have something new + match self.select_header_to_submit(&info).await? { + Some(header) => { + let transaction = + Transaction::submit(&self.target_client, header.header, header.proof) + .await + .map_err(Error::Target)?; + self.best_submitted_number = Some(transaction.header_number); + Ok(Some(transaction)) + }, + None => Ok(None), + } + } + + async fn ensure_finality_proofs_stream(&mut self) -> Result<(), FailedClient> { + if let Err(e) = self.finality_proofs_stream.ensure_stream(&self.source_client).await { + if e.is_connection_error() { + return Err(FailedClient::Source) + } + } + + Ok(()) + } + + /// Run finality relay loop until connection to one of nodes is lost. + async fn run_until_connection_lost( + &mut self, + exit_signal: impl Future, + ) -> Result<(), FailedClient> { + self.ensure_finality_proofs_stream().await?; + let proof_submission_tx_tracker = Fuse::terminated(); + let exit_signal = exit_signal.fuse(); + futures::pin_mut!(exit_signal, proof_submission_tx_tracker); + + loop { + // run loop iteration + let next_tick = match self.run_iteration().await { + Ok(Some(tx)) => { + proof_submission_tx_tracker + .set(tx.track::(self.target_client.clone()).fuse()); + self.retry_backoff.reset(); + self.sync_params.tick + }, + Ok(None) => { + self.retry_backoff.reset(); + self.sync_params.tick + }, + Err(error) => { + log::error!(target: "bridge", "Finality sync loop iteration has failed with error: {:?}", error); + error.fail_if_connection_error()?; + self.retry_backoff + .next_backoff() + .unwrap_or(relay_utils::relay_loop::RECONNECT_DELAY) + }, + }; + self.ensure_finality_proofs_stream().await?; + + // wait till exit signal, or new source block + select! { + proof_submission_result = proof_submission_tx_tracker => { + if let Err(e) = proof_submission_result { + log::error!( + target: "bridge", + "Finality sync proof submission tx to {} has failed with error: {:?}.", + P::TARGET_NAME, + e, + ); + self.best_submitted_number = None; + e.fail_if_connection_error()?; + } + }, + _ = async_std::task::sleep(next_tick).fuse() => {}, + _ = exit_signal => return Ok(()), + } + } + } + + pub async fn run( + source_client: SC, + target_client: TC, + sync_params: FinalitySyncParams, + metrics_sync: Option, + exit_signal: impl Future, + ) -> Result<(), FailedClient> { + let mut finality_loop = Self::new(source_client, target_client, sync_params, metrics_sync); + finality_loop.run_until_connection_lost(exit_signal).await + } +} + +/// Run finality proofs synchronization loop. +pub async fn run( + source_client: impl SourceClient

, + target_client: impl TargetClient

, + sync_params: FinalitySyncParams, + metrics_params: MetricsParams, + exit_signal: impl Future + 'static + Send, +) -> Result<(), relay_utils::Error> { + let exit_signal = exit_signal.shared(); + relay_utils::relay_loop(source_client, target_client) + .with_metrics(metrics_params) + .loop_metric(SyncLoopMetrics::new( + Some(&metrics_prefix::

()), + "source", + "source_at_target", + )?)? + .expose() + .await? + .run(metrics_prefix::

(), move |source_client, target_client, metrics| { + FinalityLoop::run( + source_client, + target_client, + sync_params.clone(), + metrics, + exit_signal.clone(), + ) + }) + .await +} + +#[cfg(test)] +mod tests { + use super::*; + + use crate::mock::*; + use futures::{FutureExt, StreamExt}; + use parking_lot::Mutex; + use relay_utils::{FailedClient, HeaderId, TrackedTransactionStatus}; + use std::{collections::HashMap, sync::Arc}; + + fn prepare_test_clients( + exit_sender: futures::channel::mpsc::UnboundedSender<()>, + state_function: impl Fn(&mut ClientsData) -> bool + Send + Sync + 'static, + source_headers: HashMap)>, + ) -> (TestSourceClient, TestTargetClient) { + let internal_state_function: Arc = + Arc::new(move |data| { + if state_function(data) { + exit_sender.unbounded_send(()).unwrap(); + } + }); + let clients_data = Arc::new(Mutex::new(ClientsData { + source_best_block_number: 10, + source_headers, + source_proofs: vec![TestFinalityProof(12), TestFinalityProof(14)], + + target_best_block_id: HeaderId(5, 5), + target_headers: vec![], + target_transaction_tracker: TestTransactionTracker( + TrackedTransactionStatus::Finalized(Default::default()), + ), + })); + ( + TestSourceClient { + on_method_call: internal_state_function.clone(), + data: clients_data.clone(), + }, + TestTargetClient { on_method_call: internal_state_function, data: clients_data }, + ) + } + + fn test_sync_params() -> FinalitySyncParams { + FinalitySyncParams { + tick: Duration::from_secs(0), + recent_finality_proofs_limit: 1024, + stall_timeout: Duration::from_secs(1), + only_mandatory_headers: false, + } + } + + fn run_sync_loop( + state_function: impl Fn(&mut ClientsData) -> bool + Send + Sync + 'static, + ) -> (ClientsData, Result<(), FailedClient>) { + let (exit_sender, exit_receiver) = futures::channel::mpsc::unbounded(); + let (source_client, target_client) = prepare_test_clients( + exit_sender, + state_function, + vec![ + (5, (TestSourceHeader(false, 5, 5), None)), + (6, (TestSourceHeader(false, 6, 6), None)), + (7, (TestSourceHeader(false, 7, 7), Some(TestFinalityProof(7)))), + (8, (TestSourceHeader(true, 8, 8), Some(TestFinalityProof(8)))), + (9, (TestSourceHeader(false, 9, 9), Some(TestFinalityProof(9)))), + (10, (TestSourceHeader(false, 10, 10), None)), + ] + .into_iter() + .collect(), + ); + let sync_params = test_sync_params(); + + let clients_data = source_client.data.clone(); + let result = async_std::task::block_on(FinalityLoop::run( + source_client, + target_client, + sync_params, + None, + exit_receiver.into_future().map(|(_, _)| ()), + )); + + let clients_data = clients_data.lock().clone(); + (clients_data, result) + } + + #[test] + fn finality_sync_loop_works() { + let (client_data, result) = run_sync_loop(|data| { + // header#7 has persistent finality proof, but it isn't mandatory => it isn't submitted, + // because header#8 has persistent finality proof && it is mandatory => it is submitted + // header#9 has persistent finality proof, but it isn't mandatory => it is submitted, + // because there are no more persistent finality proofs + // + // once this ^^^ is done, we generate more blocks && read proof for blocks 12 and 14 + // from the stream + if data.target_best_block_id.0 == 9 { + data.source_best_block_number = 14; + data.source_headers.insert(11, (TestSourceHeader(false, 11, 11), None)); + data.source_headers + .insert(12, (TestSourceHeader(false, 12, 12), Some(TestFinalityProof(12)))); + data.source_headers.insert(13, (TestSourceHeader(false, 13, 13), None)); + data.source_headers + .insert(14, (TestSourceHeader(false, 14, 14), Some(TestFinalityProof(14)))); + } + // once this ^^^ is done, we generate more blocks && read persistent proof for block 16 + if data.target_best_block_id.0 == 14 { + data.source_best_block_number = 17; + data.source_headers.insert(15, (TestSourceHeader(false, 15, 15), None)); + data.source_headers + .insert(16, (TestSourceHeader(false, 16, 16), Some(TestFinalityProof(16)))); + data.source_headers.insert(17, (TestSourceHeader(false, 17, 17), None)); + } + + data.target_best_block_id.0 == 16 + }); + + assert_eq!(result, Ok(())); + assert_eq!( + client_data.target_headers, + vec![ + // before adding 11..14: finality proof for mandatory header#8 + (TestSourceHeader(true, 8, 8), TestFinalityProof(8)), + // before adding 11..14: persistent finality proof for non-mandatory header#9 + (TestSourceHeader(false, 9, 9), TestFinalityProof(9)), + // after adding 11..14: ephemeral finality proof for non-mandatory header#14 + (TestSourceHeader(false, 14, 14), TestFinalityProof(14)), + // after adding 15..17: persistent finality proof for non-mandatory header#16 + (TestSourceHeader(false, 16, 16), TestFinalityProof(16)), + ], + ); + } + + fn run_only_mandatory_headers_mode_test( + only_mandatory_headers: bool, + has_mandatory_headers: bool, + ) -> Option> { + let (exit_sender, _) = futures::channel::mpsc::unbounded(); + let (source_client, target_client) = prepare_test_clients( + exit_sender, + |_| false, + vec![ + (6, (TestSourceHeader(false, 6, 6), Some(TestFinalityProof(6)))), + (7, (TestSourceHeader(false, 7, 7), Some(TestFinalityProof(7)))), + (8, (TestSourceHeader(has_mandatory_headers, 8, 8), Some(TestFinalityProof(8)))), + (9, (TestSourceHeader(false, 9, 9), Some(TestFinalityProof(9)))), + (10, (TestSourceHeader(false, 10, 10), Some(TestFinalityProof(10)))), + ] + .into_iter() + .collect(), + ); + async_std::task::block_on(async { + let mut finality_loop = FinalityLoop::new( + source_client, + target_client, + FinalitySyncParams { + tick: Duration::from_secs(0), + recent_finality_proofs_limit: 0, + stall_timeout: Duration::from_secs(0), + only_mandatory_headers, + }, + None, + ); + let info = SyncInfo { + best_number_at_source: 10, + best_number_at_target: 5, + is_using_same_fork: true, + }; + finality_loop.select_header_to_submit(&info).await.unwrap() + }) + } + + #[test] + fn select_header_to_submit_skips_non_mandatory_headers_when_only_mandatory_headers_are_required( + ) { + assert_eq!(run_only_mandatory_headers_mode_test(true, false), None); + assert_eq!( + run_only_mandatory_headers_mode_test(false, false), + Some(JustifiedHeader { + header: TestSourceHeader(false, 10, 10), + proof: TestFinalityProof(10) + }), + ); + } + + #[test] + fn select_header_to_submit_selects_mandatory_headers_when_only_mandatory_headers_are_required() + { + assert_eq!( + run_only_mandatory_headers_mode_test(true, true), + Some(JustifiedHeader { + header: TestSourceHeader(true, 8, 8), + proof: TestFinalityProof(8) + }), + ); + assert_eq!( + run_only_mandatory_headers_mode_test(false, true), + Some(JustifiedHeader { + header: TestSourceHeader(true, 8, 8), + proof: TestFinalityProof(8) + }), + ); + } + + #[test] + fn different_forks_at_source_and_at_target_are_detected() { + let (exit_sender, _exit_receiver) = futures::channel::mpsc::unbounded(); + let (source_client, target_client) = prepare_test_clients( + exit_sender, + |_| false, + vec![ + (5, (TestSourceHeader(false, 5, 42), None)), + (6, (TestSourceHeader(false, 6, 6), None)), + (7, (TestSourceHeader(false, 7, 7), None)), + (8, (TestSourceHeader(false, 8, 8), None)), + (9, (TestSourceHeader(false, 9, 9), None)), + (10, (TestSourceHeader(false, 10, 10), None)), + ] + .into_iter() + .collect(), + ); + + let metrics_sync = SyncLoopMetrics::new(None, "source", "target").unwrap(); + async_std::task::block_on(async { + let mut finality_loop = FinalityLoop::new( + source_client, + target_client, + test_sync_params(), + Some(metrics_sync.clone()), + ); + finality_loop.run_iteration().await.unwrap() + }); + + assert!(!metrics_sync.is_using_same_fork()); + } +} diff --git a/bridges/relays/finality/src/finality_proofs.rs b/bridges/relays/finality/src/finality_proofs.rs new file mode 100644 index 0000000000000000000000000000000000000000..e78cf8d62790dfc5ad665b1d4f298a5abe592164 --- /dev/null +++ b/bridges/relays/finality/src/finality_proofs.rs @@ -0,0 +1,222 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{base::SourceClientBase, FinalityPipeline}; + +use bp_header_chain::FinalityProof; +use futures::{FutureExt, Stream, StreamExt}; +use std::pin::Pin; + +/// Source finality proofs stream that may be restarted. +#[derive(Default)] +pub struct FinalityProofsStream> { + /// The underlying stream. + stream: Option>>, +} + +impl> FinalityProofsStream { + pub fn new() -> Self { + Self { stream: None } + } + + pub fn from_stream(stream: SC::FinalityProofsStream) -> Self { + Self { stream: Some(Box::pin(stream)) } + } + + fn next(&mut self) -> Option<::Item> { + let stream = match &mut self.stream { + Some(stream) => stream, + None => return None, + }; + + match stream.next().now_or_never() { + Some(Some(finality_proof)) => Some(finality_proof), + Some(None) => { + self.stream = None; + None + }, + None => None, + } + } + + pub async fn ensure_stream(&mut self, source_client: &SC) -> Result<(), SC::Error> { + if self.stream.is_none() { + log::warn!(target: "bridge", "{} finality proofs stream is being started / restarted", + P::SOURCE_NAME); + + let stream = source_client.finality_proofs().await.map_err(|error| { + log::error!( + target: "bridge", + "Failed to subscribe to {} justifications: {:?}", + P::SOURCE_NAME, + error, + ); + + error + })?; + self.stream = Some(Box::pin(stream)); + } + + Ok(()) + } +} + +/// Source finality proofs buffer. +pub struct FinalityProofsBuf { + /// Proofs buffer. Ordered by target header number. + buf: Vec, +} + +impl FinalityProofsBuf

{ + pub fn new(buf: Vec) -> Self { + Self { buf } + } + + pub fn buf(&self) -> &Vec { + &self.buf + } + + pub fn fill>(&mut self, stream: &mut FinalityProofsStream) { + let mut proofs_count = 0; + let mut first_header_number = None; + let mut last_header_number = None; + while let Some(finality_proof) = stream.next() { + let target_header_number = finality_proof.target_header_number(); + first_header_number.get_or_insert(target_header_number); + last_header_number = Some(target_header_number); + proofs_count += 1; + + self.buf.push(finality_proof); + } + + if proofs_count != 0 { + log::trace!( + target: "bridge", + "Read {} finality proofs from {} finality stream for headers in range [{:?}; {:?}]", + proofs_count, + P::SOURCE_NAME, + first_header_number, + last_header_number, + ); + } + } + + /// Prune all finality proofs that target header numbers older than `first_to_keep`. + pub fn prune(&mut self, first_to_keep: P::Number, maybe_buf_limit: Option) { + let first_to_keep_idx = self + .buf + .binary_search_by_key(&first_to_keep, |hdr| hdr.target_header_number()) + .map(|idx| idx + 1) + .unwrap_or_else(|idx| idx); + let buf_limit_idx = match maybe_buf_limit { + Some(buf_limit) => self.buf.len().saturating_sub(buf_limit), + None => 0, + }; + + self.buf = self.buf.split_off(std::cmp::max(first_to_keep_idx, buf_limit_idx)); + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::mock::*; + + #[test] + fn finality_proofs_buf_fill_works() { + // when stream is currently empty, nothing is changed + let mut finality_proofs_buf = + FinalityProofsBuf:: { buf: vec![TestFinalityProof(1)] }; + let mut stream = + FinalityProofsStream::::from_stream( + Box::pin(futures::stream::pending()), + ); + finality_proofs_buf.fill(&mut stream); + assert_eq!(finality_proofs_buf.buf, vec![TestFinalityProof(1)]); + assert!(stream.stream.is_some()); + + // when stream has entry with target, it is added to the recent proofs container + let mut stream = + FinalityProofsStream::::from_stream( + Box::pin( + futures::stream::iter(vec![TestFinalityProof(4)]) + .chain(futures::stream::pending()), + ), + ); + finality_proofs_buf.fill(&mut stream); + assert_eq!(finality_proofs_buf.buf, vec![TestFinalityProof(1), TestFinalityProof(4)]); + assert!(stream.stream.is_some()); + + // when stream has ended, we'll need to restart it + let mut stream = + FinalityProofsStream::::from_stream( + Box::pin(futures::stream::empty()), + ); + finality_proofs_buf.fill(&mut stream); + assert_eq!(finality_proofs_buf.buf, vec![TestFinalityProof(1), TestFinalityProof(4)]); + assert!(stream.stream.is_none()); + } + + #[test] + fn finality_proofs_buf_prune_works() { + let original_finality_proofs_buf: Vec< + ::FinalityProof, + > = vec![ + TestFinalityProof(10), + TestFinalityProof(13), + TestFinalityProof(15), + TestFinalityProof(17), + TestFinalityProof(19), + ] + .into_iter() + .collect(); + + // when there's proof for justified header in the vec + let mut finality_proofs_buf = FinalityProofsBuf:: { + buf: original_finality_proofs_buf.clone(), + }; + finality_proofs_buf.prune(10, None); + assert_eq!(&original_finality_proofs_buf[1..], finality_proofs_buf.buf,); + + // when there are no proof for justified header in the vec + let mut finality_proofs_buf = FinalityProofsBuf:: { + buf: original_finality_proofs_buf.clone(), + }; + finality_proofs_buf.prune(11, None); + assert_eq!(&original_finality_proofs_buf[1..], finality_proofs_buf.buf,); + + // when there are too many entries after initial prune && they also need to be pruned + let mut finality_proofs_buf = FinalityProofsBuf:: { + buf: original_finality_proofs_buf.clone(), + }; + finality_proofs_buf.prune(10, Some(2)); + assert_eq!(&original_finality_proofs_buf[3..], finality_proofs_buf.buf,); + + // when last entry is pruned + let mut finality_proofs_buf = FinalityProofsBuf:: { + buf: original_finality_proofs_buf.clone(), + }; + finality_proofs_buf.prune(19, Some(2)); + assert_eq!(&original_finality_proofs_buf[5..], finality_proofs_buf.buf,); + + // when post-last entry is pruned + let mut finality_proofs_buf = FinalityProofsBuf:: { + buf: original_finality_proofs_buf.clone(), + }; + finality_proofs_buf.prune(20, Some(2)); + assert_eq!(&original_finality_proofs_buf[5..], finality_proofs_buf.buf,); + } +} diff --git a/bridges/relays/finality/src/headers.rs b/bridges/relays/finality/src/headers.rs new file mode 100644 index 0000000000000000000000000000000000000000..91f7cd0378ecd9ac8a0ee558266d993cc2253c9e --- /dev/null +++ b/bridges/relays/finality/src/headers.rs @@ -0,0 +1,238 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{ + finality_loop::SyncInfo, finality_proofs::FinalityProofsBuf, Error, FinalitySyncPipeline, + SourceClient, SourceHeader, TargetClient, +}; + +use bp_header_chain::FinalityProof; +use std::cmp::Ordering; + +/// Unjustified headers container. Ordered by header number. +pub type UnjustifiedHeaders = Vec; + +#[derive(Debug)] +#[cfg_attr(test, derive(Clone, PartialEq))] +pub struct JustifiedHeader { + pub header: P::Header, + pub proof: P::FinalityProof, +} + +impl JustifiedHeader

{ + pub fn number(&self) -> P::Number { + self.header.number() + } +} + +/// Finality proof that has been selected by the `read_missing_headers` function. +pub enum JustifiedHeaderSelector { + /// Mandatory header and its proof has been selected. We shall submit proof for this header. + Mandatory(JustifiedHeader

), + /// Regular header and its proof has been selected. We may submit this proof, or proof for + /// some better header. + Regular(UnjustifiedHeaders, JustifiedHeader

), + /// We haven't found any missing header with persistent proof at the target client. + None(UnjustifiedHeaders), +} + +impl JustifiedHeaderSelector

{ + pub(crate) async fn new, TC: TargetClient

>( + source_client: &SC, + info: &SyncInfo

, + ) -> Result> { + let mut unjustified_headers = Vec::new(); + let mut maybe_justified_header = None; + + let mut header_number = info.best_number_at_target + 1.into(); + while header_number <= info.best_number_at_source { + let (header, maybe_proof) = source_client + .header_and_finality_proof(header_number) + .await + .map_err(Error::Source)?; + + match (header.is_mandatory(), maybe_proof) { + (true, Some(proof)) => { + log::trace!(target: "bridge", "Header {:?} is mandatory", header_number); + return Ok(Self::Mandatory(JustifiedHeader { header, proof })) + }, + (true, None) => return Err(Error::MissingMandatoryFinalityProof(header.number())), + (false, Some(proof)) => { + log::trace!(target: "bridge", "Header {:?} has persistent finality proof", header_number); + unjustified_headers.clear(); + maybe_justified_header = Some(JustifiedHeader { header, proof }); + }, + (false, None) => { + unjustified_headers.push(header); + }, + } + + header_number = header_number + 1.into(); + } + + log::trace!( + target: "bridge", + "Read {} {} headers. Selected finality proof for header: {:?}", + info.num_headers(), + P::SOURCE_NAME, + maybe_justified_header.as_ref().map(|justified_header| &justified_header.header), + ); + + Ok(match maybe_justified_header { + Some(justified_header) => Self::Regular(unjustified_headers, justified_header), + None => Self::None(unjustified_headers), + }) + } + + pub fn select_mandatory(self) -> Option> { + match self { + JustifiedHeaderSelector::Mandatory(header) => Some(header), + _ => None, + } + } + + pub fn select(self, buf: &FinalityProofsBuf

) -> Option> { + let (unjustified_headers, maybe_justified_header) = match self { + JustifiedHeaderSelector::Mandatory(justified_header) => return Some(justified_header), + JustifiedHeaderSelector::Regular(unjustified_headers, justified_header) => + (unjustified_headers, Some(justified_header)), + JustifiedHeaderSelector::None(unjustified_headers) => (unjustified_headers, None), + }; + + let mut finality_proofs_iter = buf.buf().iter().rev(); + let mut maybe_finality_proof = finality_proofs_iter.next(); + + let mut unjustified_headers_iter = unjustified_headers.iter().rev(); + let mut maybe_unjustified_header = unjustified_headers_iter.next(); + + while let (Some(finality_proof), Some(unjustified_header)) = + (maybe_finality_proof, maybe_unjustified_header) + { + match finality_proof.target_header_number().cmp(&unjustified_header.number()) { + Ordering::Equal => { + log::trace!( + target: "bridge", + "Managed to improve selected {} finality proof {:?} to {:?}.", + P::SOURCE_NAME, + maybe_justified_header.as_ref().map(|justified_header| justified_header.number()), + finality_proof.target_header_number() + ); + return Some(JustifiedHeader { + header: unjustified_header.clone(), + proof: finality_proof.clone(), + }) + }, + Ordering::Less => maybe_unjustified_header = unjustified_headers_iter.next(), + Ordering::Greater => { + maybe_finality_proof = finality_proofs_iter.next(); + }, + } + } + + log::trace!( + target: "bridge", + "Could not improve selected {} finality proof {:?}.", + P::SOURCE_NAME, + maybe_justified_header.as_ref().map(|justified_header| justified_header.number()) + ); + maybe_justified_header + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::mock::*; + + #[test] + fn select_better_recent_finality_proof_works() { + // if there are no unjustified headers, nothing is changed + let finality_proofs_buf = + FinalityProofsBuf::::new(vec![TestFinalityProof(5)]); + let justified_header = + JustifiedHeader { header: TestSourceHeader(false, 2, 2), proof: TestFinalityProof(2) }; + let selector = JustifiedHeaderSelector::Regular(vec![], justified_header.clone()); + assert_eq!(selector.select(&finality_proofs_buf), Some(justified_header)); + + // if there are no buffered finality proofs, nothing is changed + let finality_proofs_buf = FinalityProofsBuf::::new(vec![]); + let justified_header = + JustifiedHeader { header: TestSourceHeader(false, 2, 2), proof: TestFinalityProof(2) }; + let selector = JustifiedHeaderSelector::Regular( + vec![TestSourceHeader(false, 5, 5)], + justified_header.clone(), + ); + assert_eq!(selector.select(&finality_proofs_buf), Some(justified_header)); + + // if there's no intersection between recent finality proofs and unjustified headers, + // nothing is changed + let finality_proofs_buf = FinalityProofsBuf::::new(vec![ + TestFinalityProof(1), + TestFinalityProof(4), + ]); + let justified_header = + JustifiedHeader { header: TestSourceHeader(false, 2, 2), proof: TestFinalityProof(2) }; + let selector = JustifiedHeaderSelector::Regular( + vec![TestSourceHeader(false, 9, 9), TestSourceHeader(false, 10, 10)], + justified_header.clone(), + ); + assert_eq!(selector.select(&finality_proofs_buf), Some(justified_header)); + + // if there's intersection between recent finality proofs and unjustified headers, but there + // are no proofs in this intersection, nothing is changed + let finality_proofs_buf = FinalityProofsBuf::::new(vec![ + TestFinalityProof(7), + TestFinalityProof(11), + ]); + let justified_header = + JustifiedHeader { header: TestSourceHeader(false, 2, 2), proof: TestFinalityProof(2) }; + let selector = JustifiedHeaderSelector::Regular( + vec![ + TestSourceHeader(false, 8, 8), + TestSourceHeader(false, 9, 9), + TestSourceHeader(false, 10, 10), + ], + justified_header.clone(), + ); + assert_eq!(selector.select(&finality_proofs_buf), Some(justified_header)); + + // if there's intersection between recent finality proofs and unjustified headers and + // there's a proof in this intersection: + // - this better (last from intersection) proof is selected; + // - 'obsolete' unjustified headers are pruned. + let finality_proofs_buf = FinalityProofsBuf::::new(vec![ + TestFinalityProof(7), + TestFinalityProof(9), + ]); + let justified_header = + JustifiedHeader { header: TestSourceHeader(false, 2, 2), proof: TestFinalityProof(2) }; + let selector = JustifiedHeaderSelector::Regular( + vec![ + TestSourceHeader(false, 8, 8), + TestSourceHeader(false, 9, 9), + TestSourceHeader(false, 10, 10), + ], + justified_header, + ); + assert_eq!( + selector.select(&finality_proofs_buf), + Some(JustifiedHeader { + header: TestSourceHeader(false, 9, 9), + proof: TestFinalityProof(9) + }) + ); + } +} diff --git a/bridges/relays/finality/src/lib.rs b/bridges/relays/finality/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..3579e68e1ef9c686575e3ddba239bead7bd9312f --- /dev/null +++ b/bridges/relays/finality/src/lib.rs @@ -0,0 +1,91 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! This crate has single entrypoint to run synchronization loop that is built around finality +//! proofs, as opposed to headers synchronization loop, which is built around headers. The headers +//! are still submitted to the target node, but are treated as auxiliary data as we are not trying +//! to submit all source headers to the target node. + +pub use crate::{ + base::{FinalityPipeline, SourceClientBase}, + finality_loop::{metrics_prefix, run, FinalitySyncParams, SourceClient, TargetClient}, + finality_proofs::{FinalityProofsBuf, FinalityProofsStream}, + sync_loop_metrics::SyncLoopMetrics, +}; + +use bp_header_chain::ConsensusLogReader; +use relay_utils::{FailedClient, MaybeConnectionError}; +use std::fmt::Debug; + +mod base; +mod finality_loop; +mod finality_proofs; +mod headers; +mod mock; +mod sync_loop_metrics; + +/// Finality proofs synchronization pipeline. +pub trait FinalitySyncPipeline: FinalityPipeline { + /// A reader that can extract the consensus log from the header digest and interpret it. + type ConsensusLogReader: ConsensusLogReader; + /// Type of header that we're syncing. + type Header: SourceHeader; +} + +/// Header that we're receiving from source node. +pub trait SourceHeader: Clone + Debug + PartialEq + Send + Sync { + /// Returns hash of header. + fn hash(&self) -> Hash; + /// Returns number of header. + fn number(&self) -> Number; + /// Returns true if this header needs to be submitted to target node. + fn is_mandatory(&self) -> bool; +} + +/// Error that may happen inside finality synchronization loop. +#[derive(Debug)] +enum Error { + /// Source client request has failed with given error. + Source(SourceError), + /// Target client request has failed with given error. + Target(TargetError), + /// Finality proof for mandatory header is missing from the source node. + MissingMandatoryFinalityProof(P::Number), + /// `submit_finality_proof` transaction failed + ProofSubmissionTxFailed { + #[allow(dead_code)] + submitted_number: P::Number, + #[allow(dead_code)] + best_number_at_target: P::Number, + }, + /// `submit_finality_proof` transaction lost + ProofSubmissionTxLost, +} + +impl Error +where + P: FinalitySyncPipeline, + SourceError: MaybeConnectionError, + TargetError: MaybeConnectionError, +{ + fn fail_if_connection_error(&self) -> Result<(), FailedClient> { + match *self { + Error::Source(ref error) if error.is_connection_error() => Err(FailedClient::Source), + Error::Target(ref error) if error.is_connection_error() => Err(FailedClient::Target), + _ => Ok(()), + } + } +} diff --git a/bridges/relays/finality/src/mock.rs b/bridges/relays/finality/src/mock.rs new file mode 100644 index 0000000000000000000000000000000000000000..e3ec4e4d0d47a04ce5a22ee75374ebe08064df5e --- /dev/null +++ b/bridges/relays/finality/src/mock.rs @@ -0,0 +1,213 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Tests for finality synchronization loop. + +#![cfg(test)] + +use crate::{ + base::SourceClientBase, + finality_loop::{SourceClient, TargetClient}, + FinalityPipeline, FinalitySyncPipeline, SourceHeader, +}; + +use async_trait::async_trait; +use bp_header_chain::{FinalityProof, GrandpaConsensusLogReader}; +use futures::{Stream, StreamExt}; +use parking_lot::Mutex; +use relay_utils::{ + relay_loop::Client as RelayClient, HeaderId, MaybeConnectionError, TrackedTransactionStatus, + TransactionTracker, +}; +use std::{collections::HashMap, pin::Pin, sync::Arc}; + +type IsMandatory = bool; +pub type TestNumber = u64; +type TestHash = u64; + +#[derive(Clone, Debug)] +pub struct TestTransactionTracker(pub TrackedTransactionStatus>); + +impl Default for TestTransactionTracker { + fn default() -> TestTransactionTracker { + TestTransactionTracker(TrackedTransactionStatus::Finalized(Default::default())) + } +} + +#[async_trait] +impl TransactionTracker for TestTransactionTracker { + type HeaderId = HeaderId; + + async fn wait(self) -> TrackedTransactionStatus> { + self.0 + } +} + +#[derive(Debug, Clone)] +pub enum TestError { + NonConnection, +} + +impl MaybeConnectionError for TestError { + fn is_connection_error(&self) -> bool { + false + } +} + +#[derive(Debug, Clone, PartialEq)] +pub struct TestFinalitySyncPipeline; + +impl FinalityPipeline for TestFinalitySyncPipeline { + const SOURCE_NAME: &'static str = "TestSource"; + const TARGET_NAME: &'static str = "TestTarget"; + + type Hash = TestHash; + type Number = TestNumber; + type FinalityProof = TestFinalityProof; +} + +impl FinalitySyncPipeline for TestFinalitySyncPipeline { + type ConsensusLogReader = GrandpaConsensusLogReader; + type Header = TestSourceHeader; +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TestSourceHeader(pub IsMandatory, pub TestNumber, pub TestHash); + +impl SourceHeader> + for TestSourceHeader +{ + fn hash(&self) -> TestHash { + self.2 + } + + fn number(&self) -> TestNumber { + self.1 + } + + fn is_mandatory(&self) -> bool { + self.0 + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TestFinalityProof(pub TestNumber); + +impl FinalityProof for TestFinalityProof { + fn target_header_hash(&self) -> TestHash { + Default::default() + } + + fn target_header_number(&self) -> TestNumber { + self.0 + } +} + +#[derive(Debug, Clone, Default)] +pub struct ClientsData { + pub source_best_block_number: TestNumber, + pub source_headers: HashMap)>, + pub source_proofs: Vec, + + pub target_best_block_id: HeaderId, + pub target_headers: Vec<(TestSourceHeader, TestFinalityProof)>, + pub target_transaction_tracker: TestTransactionTracker, +} + +#[derive(Clone)] +pub struct TestSourceClient { + pub on_method_call: Arc, + pub data: Arc>, +} + +#[async_trait] +impl RelayClient for TestSourceClient { + type Error = TestError; + + async fn reconnect(&mut self) -> Result<(), TestError> { + unreachable!() + } +} + +#[async_trait] +impl SourceClientBase for TestSourceClient { + type FinalityProofsStream = Pin + 'static + Send>>; + + async fn finality_proofs(&self) -> Result { + let mut data = self.data.lock(); + (self.on_method_call)(&mut data); + Ok(futures::stream::iter(data.source_proofs.clone()).boxed()) + } +} + +#[async_trait] +impl SourceClient for TestSourceClient { + async fn best_finalized_block_number(&self) -> Result { + let mut data = self.data.lock(); + (self.on_method_call)(&mut data); + Ok(data.source_best_block_number) + } + + async fn header_and_finality_proof( + &self, + number: TestNumber, + ) -> Result<(TestSourceHeader, Option), TestError> { + let mut data = self.data.lock(); + (self.on_method_call)(&mut data); + data.source_headers.get(&number).cloned().ok_or(TestError::NonConnection) + } +} + +#[derive(Clone)] +pub struct TestTargetClient { + pub on_method_call: Arc, + pub data: Arc>, +} + +#[async_trait] +impl RelayClient for TestTargetClient { + type Error = TestError; + + async fn reconnect(&mut self) -> Result<(), TestError> { + unreachable!() + } +} + +#[async_trait] +impl TargetClient for TestTargetClient { + type TransactionTracker = TestTransactionTracker; + + async fn best_finalized_source_block_id( + &self, + ) -> Result, TestError> { + let mut data = self.data.lock(); + (self.on_method_call)(&mut data); + Ok(data.target_best_block_id) + } + + async fn submit_finality_proof( + &self, + header: TestSourceHeader, + proof: TestFinalityProof, + ) -> Result { + let mut data = self.data.lock(); + (self.on_method_call)(&mut data); + data.target_best_block_id = HeaderId(header.number(), header.hash()); + data.target_headers.push((header, proof)); + (self.on_method_call)(&mut data); + Ok(data.target_transaction_tracker.clone()) + } +} diff --git a/bridges/relays/finality/src/sync_loop_metrics.rs b/bridges/relays/finality/src/sync_loop_metrics.rs new file mode 100644 index 0000000000000000000000000000000000000000..4da1df811f6ece0597520a99c44c1e29171c3e20 --- /dev/null +++ b/bridges/relays/finality/src/sync_loop_metrics.rs @@ -0,0 +1,95 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Metrics for headers synchronization relay loop. + +use relay_utils::{ + metrics::{metric_name, register, IntGauge, Metric, PrometheusError, Registry}, + UniqueSaturatedInto, +}; + +/// Headers sync metrics. +#[derive(Clone)] +pub struct SyncLoopMetrics { + /// Best syncing header at the source. + best_source_block_number: IntGauge, + /// Best syncing header at the target. + best_target_block_number: IntGauge, + /// Flag that has `0` value when best source headers at the source node and at-target-chain + /// are matching and `1` otherwise. + using_different_forks: IntGauge, +} + +impl SyncLoopMetrics { + /// Create and register headers loop metrics. + pub fn new( + prefix: Option<&str>, + at_source_chain_label: &str, + at_target_chain_label: &str, + ) -> Result { + Ok(SyncLoopMetrics { + best_source_block_number: IntGauge::new( + metric_name(prefix, &format!("best_{at_source_chain_label}_block_number")), + format!("Best block number at the {at_source_chain_label}"), + )?, + best_target_block_number: IntGauge::new( + metric_name(prefix, &format!("best_{at_target_chain_label}_block_number")), + format!("Best block number at the {at_target_chain_label}"), + )?, + using_different_forks: IntGauge::new( + metric_name(prefix, &format!("is_{at_source_chain_label}_and_{at_target_chain_label}_using_different_forks")), + "Whether the best finalized source block at target node is different (value 1) from the \ + corresponding block at the source node", + )?, + }) + } + + /// Returns current value of the using-same-fork flag. + #[cfg(test)] + pub(crate) fn is_using_same_fork(&self) -> bool { + self.using_different_forks.get() == 0 + } + + /// Update best block number at source. + pub fn update_best_block_at_source>( + &self, + source_best_number: Number, + ) { + self.best_source_block_number.set(source_best_number.unique_saturated_into()); + } + + /// Update best block number at target. + pub fn update_best_block_at_target>( + &self, + target_best_number: Number, + ) { + self.best_target_block_number.set(target_best_number.unique_saturated_into()); + } + + /// Update using-same-fork flag. + pub fn update_using_same_fork(&self, using_same_fork: bool) { + self.using_different_forks.set((!using_same_fork).into()) + } +} + +impl Metric for SyncLoopMetrics { + fn register(&self, registry: &Registry) -> Result<(), PrometheusError> { + register(self.best_source_block_number.clone(), registry)?; + register(self.best_target_block_number.clone(), registry)?; + register(self.using_different_forks.clone(), registry)?; + Ok(()) + } +} diff --git a/bridges/relays/lib-substrate-relay/Cargo.toml b/bridges/relays/lib-substrate-relay/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..3f657645b591c51ab74c5b6b64bfdd8ca04e7b18 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/Cargo.toml @@ -0,0 +1,62 @@ +[package] +name = "substrate-relay-helper" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +publish = false + +[lints] +workspace = true + +[dependencies] +anyhow = "1.0" +async-std = "1.9.0" +async-trait = "0.1.79" +codec = { package = "parity-scale-codec", version = "3.6.1" } +futures = "0.3.30" +hex = "0.4" +log = { workspace = true } +num-traits = "0.2" +rbtag = "0.3" +structopt = "0.3" +strum = { version = "0.26.2", features = ["derive"] } +thiserror = { workspace = true } + +# Bridge dependencies + +bp-header-chain = { path = "../../primitives/header-chain" } +bp-parachains = { path = "../../primitives/parachains" } +bp-polkadot-core = { path = "../../primitives/polkadot-core" } +bp-relayers = { path = "../../primitives/relayers" } +bridge-runtime-common = { path = "../../bin/runtime-common" } + +equivocation-detector = { path = "../equivocation" } +finality-grandpa = { version = "0.16.2" } +finality-relay = { path = "../finality" } +parachains-relay = { path = "../parachains" } +relay-utils = { path = "../utils" } +messages-relay = { path = "../messages" } +relay-substrate-client = { path = "../client-substrate" } + +pallet-bridge-grandpa = { path = "../../modules/grandpa" } +pallet-bridge-messages = { path = "../../modules/messages" } +pallet-bridge-parachains = { path = "../../modules/parachains" } + +bp-runtime = { path = "../../primitives/runtime" } +bp-messages = { path = "../../primitives/messages" } + +# Substrate Dependencies + +frame-support = { path = "../../../substrate/frame/support" } +frame-system = { path = "../../../substrate/frame/system" } +pallet-balances = { path = "../../../substrate/frame/balances" } +pallet-grandpa = { path = "../../../substrate/frame/grandpa" } +sp-core = { path = "../../../substrate/primitives/core" } +sp-consensus-grandpa = { path = "../../../substrate/primitives/consensus/grandpa" } +sp-runtime = { path = "../../../substrate/primitives/runtime" } + +[dev-dependencies] +pallet-transaction-payment = { path = "../../../substrate/frame/transaction-payment" } +relay-substrate-client = { path = "../client-substrate", features = ["test-helpers"] } diff --git a/bridges/relays/lib-substrate-relay/src/cli/bridge.rs b/bridges/relays/lib-substrate-relay/src/cli/bridge.rs new file mode 100644 index 0000000000000000000000000000000000000000..316f59a2b0c86e1bc78c1446bb69a90b0b0bf0f7 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/bridge.rs @@ -0,0 +1,110 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Basic traits for exposing bridges in the CLI. + +use crate::{ + equivocation::SubstrateEquivocationDetectionPipeline, + finality::SubstrateFinalitySyncPipeline, + messages_lane::{MessagesRelayLimits, SubstrateMessageLane}, + parachains::SubstrateParachainsPipeline, +}; +use pallet_bridge_parachains::{RelayBlockHash, RelayBlockHasher, RelayBlockNumber}; +use relay_substrate_client::{ + Chain, ChainWithRuntimeVersion, ChainWithTransactions, Parachain, RelayChain, +}; + +/// Minimal bridge representation that can be used from the CLI. +/// It connects a source chain to a target chain. +pub trait CliBridgeBase: Sized { + /// The source chain. + type Source: Chain + ChainWithRuntimeVersion; + /// The target chain. + type Target: ChainWithTransactions + ChainWithRuntimeVersion; +} + +/// Bridge representation that can be used from the CLI for relaying headers +/// from a relay chain to a relay chain. +pub trait RelayToRelayHeadersCliBridge: CliBridgeBase { + /// Finality proofs synchronization pipeline. + type Finality: SubstrateFinalitySyncPipeline< + SourceChain = Self::Source, + TargetChain = Self::Target, + >; +} + +/// Convenience trait that adds bounds to `CliBridgeBase`. +pub trait RelayToRelayEquivocationDetectionCliBridgeBase: CliBridgeBase { + /// The source chain with extra bounds. + type BoundedSource: ChainWithTransactions; +} + +impl RelayToRelayEquivocationDetectionCliBridgeBase for T +where + T: CliBridgeBase, + T::Source: ChainWithTransactions, +{ + type BoundedSource = T::Source; +} + +/// Bridge representation that can be used from the CLI for detecting equivocations +/// in the headers synchronized from a relay chain to a relay chain. +pub trait RelayToRelayEquivocationDetectionCliBridge: + RelayToRelayEquivocationDetectionCliBridgeBase +{ + /// Equivocation detection pipeline. + type Equivocation: SubstrateEquivocationDetectionPipeline< + SourceChain = Self::Source, + TargetChain = Self::Target, + >; +} + +/// Bridge representation that can be used from the CLI for relaying headers +/// from a parachain to a relay chain. +pub trait ParachainToRelayHeadersCliBridge: CliBridgeBase +where + Self::Source: Parachain, +{ + /// The `CliBridgeBase` type represents the parachain in this situation. + /// We need to add an extra type for the relay chain. + type SourceRelay: Chain + + ChainWithRuntimeVersion + + RelayChain; + /// Finality proofs synchronization pipeline (source parachain -> target). + type ParachainFinality: SubstrateParachainsPipeline< + SourceRelayChain = Self::SourceRelay, + SourceParachain = Self::Source, + TargetChain = Self::Target, + >; + /// Finality proofs synchronization pipeline (source relay chain -> target). + type RelayFinality: SubstrateFinalitySyncPipeline< + SourceChain = Self::SourceRelay, + TargetChain = Self::Target, + >; +} + +/// Bridge representation that can be used from the CLI for relaying messages. +pub trait MessagesCliBridge: CliBridgeBase { + /// The Source -> Destination messages synchronization pipeline. + type MessagesLane: SubstrateMessageLane; + + /// Optional messages delivery transaction limits that the messages relay is going + /// to use. If it returns `None`, limits are estimated using `TransactionPayment` API + /// at the target chain. + fn maybe_messages_limits() -> Option { + None + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/chain_schema.rs b/bridges/relays/lib-substrate-relay/src/cli/chain_schema.rs new file mode 100644 index 0000000000000000000000000000000000000000..6246bdbf015152fe0e82ac0a8287692df6a1ace9 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/chain_schema.rs @@ -0,0 +1,261 @@ +// Copyright 2019-2022 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Primitives related to chain CLI options. + +use relay_substrate_client::{AccountKeyPairOf, ChainWithTransactions}; +use structopt::StructOpt; +use strum::{EnumString, VariantNames}; + +use relay_substrate_client::{ChainRuntimeVersion, ChainWithRuntimeVersion, SimpleRuntimeVersion}; + +use crate::TransactionParams; + +#[doc = "Runtime version params."] +#[derive(StructOpt, Debug, PartialEq, Eq, Clone, Copy, EnumString, VariantNames)] +pub enum RuntimeVersionType { + /// Auto query version from chain + Auto, + /// Custom `spec_version` and `transaction_version` + Custom, + /// Read version from bundle dependencies directly. + Bundle, +} + +/// Create chain-specific set of runtime version parameters. +#[macro_export] +macro_rules! declare_chain_runtime_version_params_cli_schema { + ($chain:ident, $chain_prefix:ident) => { + bp_runtime::paste::item! { + #[doc = $chain " runtime version params."] + #[derive(StructOpt, Debug, PartialEq, Eq, Clone, Copy)] + pub struct [<$chain RuntimeVersionParams>] { + #[doc = "The type of runtime version for chain " $chain] + #[structopt(long, default_value = "Bundle")] + pub [<$chain_prefix _version_mode>]: RuntimeVersionType, + #[doc = "The custom sepc_version for chain " $chain] + #[structopt(long)] + pub [<$chain_prefix _spec_version>]: Option, + #[doc = "The custom transaction_version for chain " $chain] + #[structopt(long)] + pub [<$chain_prefix _transaction_version>]: Option, + } + + impl [<$chain RuntimeVersionParams>] { + /// Converts self into `ChainRuntimeVersion`. + pub fn into_runtime_version( + self, + bundle_runtime_version: Option, + ) -> anyhow::Result { + Ok(match self.[<$chain_prefix _version_mode>] { + RuntimeVersionType::Auto => ChainRuntimeVersion::Auto, + RuntimeVersionType::Custom => { + let custom_spec_version = self.[<$chain_prefix _spec_version>] + .ok_or_else(|| anyhow::Error::msg(format!("The {}-spec-version is required when choose custom mode", stringify!($chain_prefix))))?; + let custom_transaction_version = self.[<$chain_prefix _transaction_version>] + .ok_or_else(|| anyhow::Error::msg(format!("The {}-transaction-version is required when choose custom mode", stringify!($chain_prefix))))?; + ChainRuntimeVersion::Custom( + SimpleRuntimeVersion { + spec_version: custom_spec_version, + transaction_version: custom_transaction_version + } + ) + }, + RuntimeVersionType::Bundle => match bundle_runtime_version { + Some(runtime_version) => ChainRuntimeVersion::Custom(runtime_version), + None => { + return Err(anyhow::format_err!("Cannot use bundled runtime version of {}: it is not known to the relay", stringify!($chain_prefix))); + } + }, + }) + } + } + } + }; +} + +/// Create chain-specific set of runtime version parameters. +#[macro_export] +macro_rules! declare_chain_connection_params_cli_schema { + ($chain:ident, $chain_prefix:ident) => { + bp_runtime::paste::item! { + // TODO: https://github.com/paritytech/parity-bridges-common/issues/2909 + // remove all obsolete arguments (separate URI components) + + #[doc = $chain " connection params."] + #[derive(StructOpt, Debug, PartialEq, Eq, Clone)] + pub struct [<$chain ConnectionParams>] { + #[doc = "WS endpoint of " $chain ": full URI. Overrides all other connection string components (host, port, path, secure)."] + #[structopt(long)] + pub [<$chain_prefix _uri>]: Option, + #[doc = "WS endpoint of " $chain ": host component."] + #[structopt(long, default_value = "127.0.0.1")] + pub [<$chain_prefix _host>]: String, + #[doc = "WS endpoint of " $chain ": port component."] + #[structopt(long, default_value = "9944")] + pub [<$chain_prefix _port>]: u16, + #[doc = "WS endpoint of " $chain ": path component."] + #[structopt(long)] + pub [<$chain_prefix _path>]: Option, + #[doc = "Use secure websocket connection."] + #[structopt(long)] + pub [<$chain_prefix _secure>]: bool, + #[doc = "Custom runtime version"] + #[structopt(flatten)] + pub [<$chain_prefix _runtime_version>]: [<$chain RuntimeVersionParams>], + } + + impl [<$chain ConnectionParams>] { + /// Convert connection params into Substrate client. + #[allow(dead_code)] + pub async fn into_client( + self, + ) -> anyhow::Result> { + let chain_runtime_version = self + .[<$chain_prefix _runtime_version>] + .into_runtime_version(Chain::RUNTIME_VERSION)?; + Ok(relay_substrate_client::Client::new(relay_substrate_client::ConnectionParams { + uri: self.[<$chain_prefix _uri>], + host: self.[<$chain_prefix _host>], + port: self.[<$chain_prefix _port>], + path: self.[<$chain_prefix _path>], + secure: self.[<$chain_prefix _secure>], + chain_runtime_version, + }) + .await + ) + } + } + } + }; +} + +/// Create chain-specific set of signing parameters. +#[macro_export] +macro_rules! declare_chain_signing_params_cli_schema { + ($chain:ident, $chain_prefix:ident) => { + bp_runtime::paste::item! { + #[doc = $chain " signing params."] + #[derive(StructOpt, Debug, PartialEq, Eq, Clone)] + pub struct [<$chain SigningParams>] { + #[doc = "The SURI of secret key to use when transactions are submitted to the " $chain " node."] + #[structopt(long)] + pub [<$chain_prefix _signer>]: Option, + #[doc = "The password for the SURI of secret key to use when transactions are submitted to the " $chain " node."] + #[structopt(long)] + pub [<$chain_prefix _signer_password>]: Option, + + #[doc = "Path to the file, that contains SURI of secret key to use when transactions are submitted to the " $chain " node. Can be overridden with " $chain_prefix "_signer option."] + #[structopt(long)] + pub [<$chain_prefix _signer_file>]: Option, + #[doc = "Path to the file, that password for the SURI of secret key to use when transactions are submitted to the " $chain " node. Can be overridden with " $chain_prefix "_signer_password option."] + #[structopt(long)] + pub [<$chain_prefix _signer_password_file>]: Option, + + #[doc = "Transactions mortality period, in blocks. MUST be a power of two in [4; 65536] range. MAY NOT be larger than `BlockHashCount` parameter of the chain system module."] + #[structopt(long)] + pub [<$chain_prefix _transactions_mortality>]: Option, + } + + impl [<$chain SigningParams>] { + /// Return transactions mortality. + #[allow(dead_code)] + pub fn transactions_mortality(&self) -> anyhow::Result> { + self.[<$chain_prefix _transactions_mortality>] + .map(|transactions_mortality| { + if !(4..=65536).contains(&transactions_mortality) + || !transactions_mortality.is_power_of_two() + { + Err(anyhow::format_err!( + "Transactions mortality {} is not a power of two in a [4; 65536] range", + transactions_mortality, + )) + } else { + Ok(transactions_mortality) + } + }) + .transpose() + } + + /// Parse signing params into chain-specific KeyPair. + #[allow(dead_code)] + pub fn to_keypair(&self) -> anyhow::Result> { + let suri = match (self.[<$chain_prefix _signer>].as_ref(), self.[<$chain_prefix _signer_file>].as_ref()) { + (Some(suri), _) => suri.to_owned(), + (None, Some(suri_file)) => std::fs::read_to_string(suri_file) + .map_err(|err| anyhow::format_err!( + "Failed to read SURI from file {:?}: {}", + suri_file, + err, + ))?, + (None, None) => return Err(anyhow::format_err!( + "One of options must be specified: '{}' or '{}'", + stringify!([<$chain_prefix _signer>]), + stringify!([<$chain_prefix _signer_file>]), + )), + }; + + let suri_password = match ( + self.[<$chain_prefix _signer_password>].as_ref(), + self.[<$chain_prefix _signer_password_file>].as_ref(), + ) { + (Some(suri_password), _) => Some(suri_password.to_owned()), + (None, Some(suri_password_file)) => std::fs::read_to_string(suri_password_file) + .map(Some) + .map_err(|err| anyhow::format_err!( + "Failed to read SURI password from file {:?}: {}", + suri_password_file, + err, + ))?, + _ => None, + }; + + use sp_core::crypto::Pair; + + AccountKeyPairOf::::from_string( + &suri, + suri_password.as_deref() + ).map_err(|e| anyhow::format_err!("{:?}", e)) + } + + /// Return transaction parameters. + #[allow(dead_code)] + pub fn transaction_params( + &self, + ) -> anyhow::Result>> { + Ok(TransactionParams { + mortality: self.transactions_mortality()?, + signer: self.to_keypair::()?, + }) + } + } + } + }; +} + +/// Create chain-specific set of configuration objects: connection parameters, +/// signing parameters and bridge initialization parameters. +#[macro_export] +macro_rules! declare_chain_cli_schema { + ($chain:ident, $chain_prefix:ident) => { + $crate::declare_chain_runtime_version_params_cli_schema!($chain, $chain_prefix); + $crate::declare_chain_connection_params_cli_schema!($chain, $chain_prefix); + $crate::declare_chain_signing_params_cli_schema!($chain, $chain_prefix); + }; +} + +declare_chain_cli_schema!(Source, source); +declare_chain_cli_schema!(Target, target); diff --git a/bridges/relays/lib-substrate-relay/src/cli/detect_equivocations.rs b/bridges/relays/lib-substrate-relay/src/cli/detect_equivocations.rs new file mode 100644 index 0000000000000000000000000000000000000000..b98e41b2a43e4f88670ac8ed1d7129a0187fecfe --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/detect_equivocations.rs @@ -0,0 +1,65 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Primitives for exposing the equivocation detection functionality in the CLI. + +use crate::{ + cli::{bridge::*, chain_schema::*, PrometheusParams}, + equivocation, + equivocation::SubstrateEquivocationDetectionPipeline, +}; + +use async_trait::async_trait; +use relay_substrate_client::ChainWithTransactions; +use structopt::StructOpt; + +/// Start equivocation detection loop. +#[derive(StructOpt)] +pub struct DetectEquivocationsParams { + #[structopt(flatten)] + source: SourceConnectionParams, + #[structopt(flatten)] + source_sign: SourceSigningParams, + #[structopt(flatten)] + target: TargetConnectionParams, + #[structopt(flatten)] + prometheus_params: PrometheusParams, +} + +/// Trait used for starting the equivocation detection loop between 2 chains. +#[async_trait] +pub trait EquivocationsDetector: RelayToRelayEquivocationDetectionCliBridge +where + Self::Source: ChainWithTransactions, +{ + /// Start the equivocation detection loop. + async fn start(data: DetectEquivocationsParams) -> anyhow::Result<()> { + let source_client = data.source.into_client::().await?; + Self::Equivocation::start_relay_guards( + &source_client, + source_client.can_start_version_guard(), + ) + .await?; + + equivocation::run::( + source_client, + data.target.into_client::().await?, + data.source_sign.transaction_params::()?, + data.prometheus_params.into_metrics_params()?, + ) + .await + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/init_bridge.rs b/bridges/relays/lib-substrate-relay/src/cli/init_bridge.rs new file mode 100644 index 0000000000000000000000000000000000000000..bf7c86437ba77530ad37c5e8d376088639126a22 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/init_bridge.rs @@ -0,0 +1,85 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Primitives for exposing the bridge initialization functionality in the CLI. + +use async_trait::async_trait; +use codec::Encode; + +use crate::{ + cli::{bridge::CliBridgeBase, chain_schema::*}, + finality_base::engine::Engine, +}; +use bp_runtime::Chain as ChainBase; +use relay_substrate_client::{AccountKeyPairOf, Chain, UnsignedTransaction}; +use sp_core::Pair; +use structopt::StructOpt; + +/// Bridge initialization params. +#[derive(StructOpt)] +pub struct InitBridgeParams { + #[structopt(flatten)] + source: SourceConnectionParams, + #[structopt(flatten)] + target: TargetConnectionParams, + #[structopt(flatten)] + target_sign: TargetSigningParams, + /// Generates all required data, but does not submit extrinsic + #[structopt(long)] + dry_run: bool, +} + +/// Trait used for bridge initializing. +#[async_trait] +pub trait BridgeInitializer: CliBridgeBase +where + ::AccountId: From< as Pair>::Public>, +{ + /// The finality engine used by the source chain. + type Engine: Engine; + + /// Get the encoded call to init the bridge. + fn encode_init_bridge( + init_data: >::InitializationData, + ) -> ::Call; + + /// Initialize the bridge. + async fn init_bridge(data: InitBridgeParams) -> anyhow::Result<()> { + let source_client = data.source.into_client::().await?; + let target_client = data.target.into_client::().await?; + let target_sign = data.target_sign.to_keypair::()?; + let dry_run = data.dry_run; + + crate::finality::initialize::initialize::( + source_client, + target_client.clone(), + target_sign, + move |transaction_nonce, initialization_data| { + let call = Self::encode_init_bridge(initialization_data); + log::info!( + target: "bridge", + "Initialize bridge call encoded as hex string: {:?}", + format!("0x{}", hex::encode(call.encode())) + ); + Ok(UnsignedTransaction::new(call.into(), transaction_nonce)) + }, + dry_run, + ) + .await; + + Ok(()) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/mod.rs b/bridges/relays/lib-substrate-relay/src/cli/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..0dd0d5474b3a517b7eb67b641a5d3b427cad2b84 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/mod.rs @@ -0,0 +1,192 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Deal with CLI args of substrate-to-substrate relay. + +use codec::{Decode, Encode}; +use rbtag::BuildInfo; +use structopt::StructOpt; +use strum::{EnumString, VariantNames}; + +use bp_messages::LaneId; + +pub mod bridge; +pub mod chain_schema; +pub mod detect_equivocations; +pub mod init_bridge; +pub mod relay_headers; +pub mod relay_headers_and_messages; +pub mod relay_messages; +pub mod relay_parachains; + +/// The target that will be used when publishing logs related to this pallet. +pub const LOG_TARGET: &str = "bridge"; + +/// Lane id. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct HexLaneId(pub [u8; 4]); + +impl From for LaneId { + fn from(lane_id: HexLaneId) -> LaneId { + LaneId(lane_id.0) + } +} + +impl std::str::FromStr for HexLaneId { + type Err = hex::FromHexError; + + fn from_str(s: &str) -> Result { + let mut lane_id = [0u8; 4]; + hex::decode_to_slice(s, &mut lane_id)?; + Ok(HexLaneId(lane_id)) + } +} + +/// Nicer formatting for raw bytes vectors. +#[derive(Default, Encode, Decode, PartialEq, Eq)] +pub struct HexBytes(pub Vec); + +impl std::str::FromStr for HexBytes { + type Err = hex::FromHexError; + + fn from_str(s: &str) -> Result { + Ok(Self(hex::decode(s)?)) + } +} + +impl std::fmt::Debug for HexBytes { + fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(fmt, "0x{self}") + } +} + +impl std::fmt::Display for HexBytes { + fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(fmt, "{}", hex::encode(&self.0)) + } +} + +/// Prometheus metrics params. +#[derive(Clone, Debug, PartialEq, StructOpt)] +pub struct PrometheusParams { + /// Do not expose a Prometheus metric endpoint. + #[structopt(long)] + pub no_prometheus: bool, + /// Expose Prometheus endpoint at given interface. + #[structopt(long, default_value = "127.0.0.1")] + pub prometheus_host: String, + /// Expose Prometheus endpoint at given port. + #[structopt(long, default_value = "9616")] + pub prometheus_port: u16, +} + +/// Struct to get git commit info and build time. +#[derive(BuildInfo)] +struct SubstrateRelayBuildInfo; + +impl SubstrateRelayBuildInfo { + /// Get git commit in form ``. + pub fn get_git_commit() -> String { + // on gitlab we use images without git installed, so we can't use `rbtag` there + // locally we don't have `CI_*` env variables, so we can't rely on them + // => we are using `CI_*` env variables or else `rbtag` + let maybe_sha_from_ci = option_env!("CI_COMMIT_SHORT_SHA"); + maybe_sha_from_ci + .map(|short_sha| { + // we assume that on CI the copy is always clean + format!("{short_sha}-clean") + }) + .unwrap_or_else(|| SubstrateRelayBuildInfo.get_build_commit().into()) + } +} + +impl PrometheusParams { + /// Tries to convert CLI metrics params into metrics params, used by the relay. + pub fn into_metrics_params(self) -> anyhow::Result { + let metrics_address = if !self.no_prometheus { + Some(relay_utils::metrics::MetricsAddress { + host: self.prometheus_host, + port: self.prometheus_port, + }) + } else { + None + }; + + let relay_version = option_env!("CARGO_PKG_VERSION").unwrap_or("unknown"); + let relay_commit = SubstrateRelayBuildInfo::get_git_commit(); + relay_utils::metrics::MetricsParams::new( + metrics_address, + relay_version.into(), + relay_commit, + ) + .map_err(|e| anyhow::format_err!("{:?}", e)) + } +} + +/// Either explicit or maximal allowed value. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum ExplicitOrMaximal { + /// User has explicitly specified argument value. + Explicit(V), + /// Maximal allowed value for this argument. + Maximal, +} + +impl std::str::FromStr for ExplicitOrMaximal +where + V::Err: std::fmt::Debug, +{ + type Err = String; + + fn from_str(s: &str) -> Result { + if s.to_lowercase() == "max" { + return Ok(ExplicitOrMaximal::Maximal) + } + + V::from_str(s) + .map(ExplicitOrMaximal::Explicit) + .map_err(|e| format!("Failed to parse '{e:?}'. Expected 'max' or explicit value")) + } +} + +#[doc = "Runtime version params."] +#[derive(StructOpt, Debug, PartialEq, Eq, Clone, Copy, EnumString, VariantNames)] +pub enum RuntimeVersionType { + /// Auto query version from chain + Auto, + /// Custom `spec_version` and `transaction_version` + Custom, + /// Read version from bundle dependencies directly. + Bundle, +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn hex_bytes_display_matches_from_str_for_clap() { + // given + let hex = HexBytes(vec![1, 2, 3, 4]); + let display = format!("{hex}"); + + // when + let hex2: HexBytes = display.parse().unwrap(); + + // then + assert_eq!(hex.0, hex2.0); + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_headers.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_headers.rs new file mode 100644 index 0000000000000000000000000000000000000000..90558ed46138366221c1f9834d21060e7e54e66b --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_headers.rs @@ -0,0 +1,76 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Primitives for exposing the headers relaying functionality in the CLI. + +use async_trait::async_trait; +use structopt::StructOpt; + +use relay_utils::metrics::{GlobalMetrics, StandaloneMetric}; + +use crate::{ + cli::{bridge::*, chain_schema::*, PrometheusParams}, + finality::SubstrateFinalitySyncPipeline, +}; + +/// Chain headers relaying params. +#[derive(StructOpt)] +pub struct RelayHeadersParams { + /// If passed, only mandatory headers (headers that are changing the GRANDPA authorities set) + /// are relayed. + #[structopt(long)] + only_mandatory_headers: bool, + #[structopt(flatten)] + source: SourceConnectionParams, + #[structopt(flatten)] + target: TargetConnectionParams, + #[structopt(flatten)] + target_sign: TargetSigningParams, + #[structopt(flatten)] + prometheus_params: PrometheusParams, +} + +/// Trait used for relaying headers between 2 chains. +#[async_trait] +pub trait HeadersRelayer: RelayToRelayHeadersCliBridge { + /// Relay headers. + async fn relay_headers(data: RelayHeadersParams) -> anyhow::Result<()> { + let source_client = data.source.into_client::().await?; + let target_client = data.target.into_client::().await?; + let target_transactions_mortality = data.target_sign.target_transactions_mortality; + let target_sign = data.target_sign.to_keypair::()?; + + let metrics_params: relay_utils::metrics::MetricsParams = + data.prometheus_params.into_metrics_params()?; + GlobalMetrics::new()?.register_and_spawn(&metrics_params.registry)?; + + let target_transactions_params = crate::TransactionParams { + signer: target_sign, + mortality: target_transactions_mortality, + }; + Self::Finality::start_relay_guards(&target_client, target_client.can_start_version_guard()) + .await?; + + crate::finality::run::( + source_client, + target_client, + data.only_mandatory_headers, + target_transactions_params, + metrics_params, + ) + .await + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..27e9f1c21ba0dae1480ef8128afdfd635a1d22c2 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs @@ -0,0 +1,492 @@ +// Copyright 2019-2022 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Complex 2-ways headers+messages relays support. +//! +//! To add new complex relay between `ChainA` and `ChainB`, you must: +//! +//! 1) ensure that there's a `declare_chain_cli_schema!(...)` for both chains. +//! 2) add `declare_chain_to_chain_bridge_schema!(...)` or +//! `declare_chain_to_parachain_bridge_schema` for the bridge. +//! 3) declare a new struct for the added bridge and implement the `Full2WayBridge` trait for it. + +#[macro_use] +pub mod parachain_to_parachain; +#[macro_use] +pub mod relay_to_relay; +#[macro_use] +pub mod relay_to_parachain; + +use async_trait::async_trait; +use std::{marker::PhantomData, sync::Arc}; +use structopt::StructOpt; + +use futures::{FutureExt, TryFutureExt}; + +use crate::{ + cli::{bridge::MessagesCliBridge, HexLaneId, PrometheusParams}, + messages_lane::{MessagesRelayLimits, MessagesRelayParams}, + on_demand::OnDemandRelay, + TaggedAccount, TransactionParams, +}; +use bp_messages::LaneId; +use bp_runtime::BalanceOf; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, Chain, ChainWithBalances, ChainWithMessages, + ChainWithRuntimeVersion, ChainWithTransactions, Client, +}; +use relay_utils::metrics::MetricsParams; +use sp_core::Pair; + +/// Parameters that have the same names across all bridges. +#[derive(Debug, PartialEq, StructOpt)] +pub struct HeadersAndMessagesSharedParams { + /// Hex-encoded lane identifiers that should be served by the complex relay. + #[structopt(long, default_value = "00000000")] + pub lane: Vec, + /// If passed, only mandatory headers (headers that are changing the GRANDPA authorities set) + /// are relayed. + #[structopt(long)] + pub only_mandatory_headers: bool, + #[structopt(flatten)] + /// Prometheus metrics params. + pub prometheus_params: PrometheusParams, +} + +/// Bridge parameters, shared by all bridge types. +pub struct Full2WayBridgeCommonParams< + Left: ChainWithTransactions + ChainWithRuntimeVersion, + Right: ChainWithTransactions + ChainWithRuntimeVersion, +> { + /// Shared parameters. + pub shared: HeadersAndMessagesSharedParams, + /// Parameters of the left chain. + pub left: BridgeEndCommonParams, + /// Parameters of the right chain. + pub right: BridgeEndCommonParams, + + /// Common metric parameters. + pub metrics_params: MetricsParams, +} + +impl< + Left: ChainWithTransactions + ChainWithRuntimeVersion, + Right: ChainWithTransactions + ChainWithRuntimeVersion, + > Full2WayBridgeCommonParams +{ + /// Creates new bridge parameters from its components. + pub fn new>( + shared: HeadersAndMessagesSharedParams, + left: BridgeEndCommonParams, + right: BridgeEndCommonParams, + ) -> anyhow::Result { + // Create metrics registry. + let metrics_params = shared.prometheus_params.clone().into_metrics_params()?; + let metrics_params = relay_utils::relay_metrics(metrics_params).into_params(); + + Ok(Self { shared, left, right, metrics_params }) + } +} + +/// Parameters that are associated with one side of the bridge. +pub struct BridgeEndCommonParams { + /// Chain client. + pub client: Client, + /// Params used for sending transactions to the chain. + pub tx_params: TransactionParams>, + /// Accounts, which balances are exposed as metrics by the relay process. + pub accounts: Vec>>, +} + +/// All data of the bidirectional complex relay. +pub struct FullBridge< + 'a, + Source: ChainWithTransactions + ChainWithRuntimeVersion, + Target: ChainWithTransactions + ChainWithRuntimeVersion, + Bridge: MessagesCliBridge, +> { + source: &'a mut BridgeEndCommonParams, + target: &'a mut BridgeEndCommonParams, + metrics_params: &'a MetricsParams, + _phantom_data: PhantomData, +} + +impl< + 'a, + Source: ChainWithTransactions + ChainWithRuntimeVersion, + Target: ChainWithTransactions + ChainWithRuntimeVersion, + Bridge: MessagesCliBridge, + > FullBridge<'a, Source, Target, Bridge> +where + AccountIdOf: From< as Pair>::Public>, + AccountIdOf: From< as Pair>::Public>, + BalanceOf: TryFrom> + Into, +{ + /// Construct complex relay given it components. + fn new( + source: &'a mut BridgeEndCommonParams, + target: &'a mut BridgeEndCommonParams, + metrics_params: &'a MetricsParams, + ) -> Self { + Self { source, target, metrics_params, _phantom_data: Default::default() } + } + + /// Returns message relay parameters. + fn messages_relay_params( + &self, + source_to_target_headers_relay: Arc>, + target_to_source_headers_relay: Arc>, + lane_id: LaneId, + maybe_limits: Option, + ) -> MessagesRelayParams { + MessagesRelayParams { + source_client: self.source.client.clone(), + source_transaction_params: self.source.tx_params.clone(), + target_client: self.target.client.clone(), + target_transaction_params: self.target.tx_params.clone(), + source_to_target_headers_relay: Some(source_to_target_headers_relay), + target_to_source_headers_relay: Some(target_to_source_headers_relay), + lane_id, + limits: maybe_limits, + metrics_params: self.metrics_params.clone().disable(), + } + } +} + +/// Base portion of the bidirectional complex relay. +/// +/// This main purpose of extracting this trait is that in different relays the implementation +/// of `start_on_demand_headers_relayers` method will be different. But the number of +/// implementations is limited to relay <> relay, parachain <> relay and parachain <> parachain. +/// This trait allows us to reuse these implementations in different bridges. +#[async_trait] +pub trait Full2WayBridgeBase: Sized + Send + Sync { + /// The CLI params for the bridge. + type Params; + /// The left relay chain. + type Left: ChainWithTransactions + ChainWithRuntimeVersion; + /// The right destination chain (it can be a relay or a parachain). + type Right: ChainWithTransactions + ChainWithRuntimeVersion; + + /// Reference to common relay parameters. + fn common(&self) -> &Full2WayBridgeCommonParams; + + /// Mutable reference to common relay parameters. + fn mut_common(&mut self) -> &mut Full2WayBridgeCommonParams; + + /// Start on-demand headers relays. + async fn start_on_demand_headers_relayers( + &mut self, + ) -> anyhow::Result<( + Arc>, + Arc>, + )>; +} + +/// Bidirectional complex relay. +#[async_trait] +pub trait Full2WayBridge: Sized + Sync +where + AccountIdOf: From< as Pair>::Public>, + AccountIdOf: From< as Pair>::Public>, + BalanceOf: TryFrom> + Into, + BalanceOf: TryFrom> + Into, +{ + /// Base portion of the bidirectional complex relay. + type Base: Full2WayBridgeBase; + + /// The left relay chain. + type Left: ChainWithTransactions + + ChainWithBalances + + ChainWithMessages + + ChainWithRuntimeVersion; + /// The right relay chain. + type Right: ChainWithTransactions + + ChainWithBalances + + ChainWithMessages + + ChainWithRuntimeVersion; + + /// Left to Right bridge. + type L2R: MessagesCliBridge; + /// Right to Left bridge + type R2L: MessagesCliBridge; + + /// Construct new bridge. + fn new(params: ::Params) -> anyhow::Result; + + /// Reference to the base relay portion. + fn base(&self) -> &Self::Base; + + /// Mutable reference to the base relay portion. + fn mut_base(&mut self) -> &mut Self::Base; + + /// Creates and returns Left to Right complex relay. + fn left_to_right(&mut self) -> FullBridge { + let common = self.mut_base().mut_common(); + FullBridge::<_, _, Self::L2R>::new( + &mut common.left, + &mut common.right, + &common.metrics_params, + ) + } + + /// Creates and returns Right to Left complex relay. + fn right_to_left(&mut self) -> FullBridge { + let common = self.mut_base().mut_common(); + FullBridge::<_, _, Self::R2L>::new( + &mut common.right, + &mut common.left, + &common.metrics_params, + ) + } + + /// Start complex relay. + async fn run(&mut self) -> anyhow::Result<()> { + // Register standalone metrics. + { + let common = self.mut_base().mut_common(); + common.left.accounts.push(TaggedAccount::Messages { + id: common.left.tx_params.signer.public().into(), + bridged_chain: Self::Right::NAME.to_string(), + }); + common.right.accounts.push(TaggedAccount::Messages { + id: common.right.tx_params.signer.public().into(), + bridged_chain: Self::Left::NAME.to_string(), + }); + } + + // start on-demand header relays + let (left_to_right_on_demand_headers, right_to_left_on_demand_headers) = + self.mut_base().start_on_demand_headers_relayers().await?; + + // add balance-related metrics + let lanes = self + .base() + .common() + .shared + .lane + .iter() + .cloned() + .map(Into::into) + .collect::>(); + { + let common = self.mut_base().mut_common(); + crate::messages_metrics::add_relay_balances_metrics::<_, Self::Right>( + common.left.client.clone(), + &common.metrics_params, + &common.left.accounts, + &lanes, + ) + .await?; + crate::messages_metrics::add_relay_balances_metrics::<_, Self::Left>( + common.right.client.clone(), + &common.metrics_params, + &common.right.accounts, + &lanes, + ) + .await?; + } + + // Need 2x capacity since we consider both directions for each lane + let mut message_relays = Vec::with_capacity(lanes.len() * 2); + for lane in lanes { + let left_to_right_messages = crate::messages_lane::run::< + ::MessagesLane, + >(self.left_to_right().messages_relay_params( + left_to_right_on_demand_headers.clone(), + right_to_left_on_demand_headers.clone(), + lane, + Self::L2R::maybe_messages_limits(), + )) + .map_err(|e| anyhow::format_err!("{}", e)) + .boxed(); + message_relays.push(left_to_right_messages); + + let right_to_left_messages = crate::messages_lane::run::< + ::MessagesLane, + >(self.right_to_left().messages_relay_params( + right_to_left_on_demand_headers.clone(), + left_to_right_on_demand_headers.clone(), + lane, + Self::R2L::maybe_messages_limits(), + )) + .map_err(|e| anyhow::format_err!("{}", e)) + .boxed(); + message_relays.push(right_to_left_messages); + } + + relay_utils::relay_metrics(self.base().common().metrics_params.clone()) + .expose() + .await + .map_err(|e| anyhow::format_err!("{}", e))?; + + futures::future::select_all(message_relays).await.0 + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{cli::chain_schema::RuntimeVersionType, declare_chain_cli_schema}; + + use relay_substrate_client::{ChainRuntimeVersion, Parachain, SimpleRuntimeVersion}; + + #[test] + // We need `#[allow(dead_code)]` because some of the methods generated by the macros + // are not used. + #[allow(dead_code)] + fn should_parse_parachain_to_parachain_options() { + // Chains. + declare_chain_cli_schema!(Kusama, kusama); + declare_chain_cli_schema!(BridgeHubKusama, bridge_hub_kusama); + declare_chain_cli_schema!(Polkadot, polkadot); + declare_chain_cli_schema!(BridgeHubPolkadot, bridge_hub_polkadot); + // Means to override signers of different layer transactions. + declare_chain_cli_schema!( + KusamaHeadersToBridgeHubPolkadot, + kusama_headers_to_bridge_hub_polkadot + ); + declare_chain_cli_schema!( + KusamaParachainsToBridgeHubPolkadot, + kusama_parachains_to_bridge_hub_polkadot + ); + declare_chain_cli_schema!( + PolkadotHeadersToBridgeHubKusama, + polkadot_headers_to_bridge_hub_kusama + ); + declare_chain_cli_schema!( + PolkadotParachainsToBridgeHubKusama, + polkadot_parachains_to_bridge_hub_kusama + ); + // Bridges. + declare_parachain_to_parachain_bridge_schema!( + BridgeHubKusama, + Kusama, + BridgeHubPolkadot, + Polkadot + ); + + let res = BridgeHubKusamaBridgeHubPolkadotHeadersAndMessages::from_iter(vec![ + "bridge-hub-kusama-bridge-hub-polkadot-headers-and-messages", + "--bridge-hub-kusama-host", + "bridge-hub-kusama-node-collator1", + "--bridge-hub-kusama-port", + "9944", + "--bridge-hub-kusama-signer", + "//Iden", + "--bridge-hub-kusama-transactions-mortality", + "64", + "--kusama-host", + "kusama-alice", + "--kusama-port", + "9944", + "--bridge-hub-polkadot-host", + "bridge-hub-polkadot-collator1", + "--bridge-hub-polkadot-port", + "9944", + "--bridge-hub-polkadot-signer", + "//George", + "--bridge-hub-polkadot-transactions-mortality", + "64", + "--polkadot-host", + "polkadot-alice", + "--polkadot-port", + "9944", + "--lane", + "00000000", + "--prometheus-host", + "0.0.0.0", + ]); + + // then + assert_eq!( + res, + BridgeHubKusamaBridgeHubPolkadotHeadersAndMessages { + shared: HeadersAndMessagesSharedParams { + lane: vec![HexLaneId([0x00, 0x00, 0x00, 0x00])], + only_mandatory_headers: false, + prometheus_params: PrometheusParams { + no_prometheus: false, + prometheus_host: "0.0.0.0".into(), + prometheus_port: 9616, + }, + }, + left: BridgeHubKusamaConnectionParams { + bridge_hub_kusama_uri: None, + bridge_hub_kusama_host: "bridge-hub-kusama-node-collator1".into(), + bridge_hub_kusama_port: 9944, + bridge_hub_kusama_path: None, + bridge_hub_kusama_secure: false, + bridge_hub_kusama_runtime_version: BridgeHubKusamaRuntimeVersionParams { + bridge_hub_kusama_version_mode: RuntimeVersionType::Bundle, + bridge_hub_kusama_spec_version: None, + bridge_hub_kusama_transaction_version: None, + }, + }, + left_sign: BridgeHubKusamaSigningParams { + bridge_hub_kusama_signer: Some("//Iden".into()), + bridge_hub_kusama_signer_password: None, + bridge_hub_kusama_signer_file: None, + bridge_hub_kusama_signer_password_file: None, + bridge_hub_kusama_transactions_mortality: Some(64), + }, + left_relay: KusamaConnectionParams { + kusama_uri: None, + kusama_host: "kusama-alice".into(), + kusama_port: 9944, + kusama_path: None, + kusama_secure: false, + kusama_runtime_version: KusamaRuntimeVersionParams { + kusama_version_mode: RuntimeVersionType::Bundle, + kusama_spec_version: None, + kusama_transaction_version: None, + }, + }, + right: BridgeHubPolkadotConnectionParams { + bridge_hub_polkadot_uri: None, + bridge_hub_polkadot_host: "bridge-hub-polkadot-collator1".into(), + bridge_hub_polkadot_port: 9944, + bridge_hub_polkadot_path: None, + bridge_hub_polkadot_secure: false, + bridge_hub_polkadot_runtime_version: BridgeHubPolkadotRuntimeVersionParams { + bridge_hub_polkadot_version_mode: RuntimeVersionType::Bundle, + bridge_hub_polkadot_spec_version: None, + bridge_hub_polkadot_transaction_version: None, + }, + }, + right_sign: BridgeHubPolkadotSigningParams { + bridge_hub_polkadot_signer: Some("//George".into()), + bridge_hub_polkadot_signer_password: None, + bridge_hub_polkadot_signer_file: None, + bridge_hub_polkadot_signer_password_file: None, + bridge_hub_polkadot_transactions_mortality: Some(64), + }, + right_relay: PolkadotConnectionParams { + polkadot_uri: None, + polkadot_host: "polkadot-alice".into(), + polkadot_port: 9944, + polkadot_path: None, + polkadot_secure: false, + polkadot_runtime_version: PolkadotRuntimeVersionParams { + polkadot_version_mode: RuntimeVersionType::Bundle, + polkadot_spec_version: None, + polkadot_transaction_version: None, + }, + }, + } + ); + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/parachain_to_parachain.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/parachain_to_parachain.rs new file mode 100644 index 0000000000000000000000000000000000000000..76accfa29050613070c6579103d4e41f6084eea6 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/parachain_to_parachain.rs @@ -0,0 +1,217 @@ +// Copyright 2019-2022 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Parachain to parachain relayer CLI primitives. + +use async_trait::async_trait; +use std::sync::Arc; + +use crate::{ + cli::{ + bridge::{CliBridgeBase, MessagesCliBridge, ParachainToRelayHeadersCliBridge}, + relay_headers_and_messages::{Full2WayBridgeBase, Full2WayBridgeCommonParams}, + }, + finality::SubstrateFinalitySyncPipeline, + on_demand::{ + headers::OnDemandHeadersRelay, parachains::OnDemandParachainsRelay, OnDemandRelay, + }, +}; +use bp_polkadot_core::parachains::ParaHash; +use pallet_bridge_parachains::{RelayBlockHash, RelayBlockHasher, RelayBlockNumber}; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, Chain, ChainWithRuntimeVersion, ChainWithTransactions, Client, + Parachain, +}; +use sp_core::Pair; + +/// A base relay between two parachain from different consensus systems. +/// +/// Such relay starts 2 messages relay. It also starts 2 on-demand header relays and 2 on-demand +/// parachain heads relay. +pub struct ParachainToParachainBridge< + L2R: MessagesCliBridge + ParachainToRelayHeadersCliBridge, + R2L: MessagesCliBridge + ParachainToRelayHeadersCliBridge, +> where + ::Source: Parachain, + ::Source: Parachain, +{ + /// Parameters that are shared by all bridge types. + pub common: + Full2WayBridgeCommonParams<::Target, ::Target>, + /// Client of the left relay chain. + pub left_relay: Client<::SourceRelay>, + /// Client of the right relay chain. + pub right_relay: Client<::SourceRelay>, +} + +/// Create set of configuration objects specific to parachain-to-parachain relayer. +#[macro_export] +macro_rules! declare_parachain_to_parachain_bridge_schema { + // left-parachain, relay-chain-of-left-parachain, right-parachain, relay-chain-of-right-parachain + ($left_parachain:ident, $left_chain:ident, $right_parachain:ident, $right_chain:ident) => { + bp_runtime::paste::item! { + #[doc = $left_parachain ", " $left_chain ", " $right_parachain " and " $right_chain " headers+parachains+messages relay params."] + #[derive(Debug, PartialEq, StructOpt)] + pub struct [<$left_parachain $right_parachain HeadersAndMessages>] { + // shared parameters + #[structopt(flatten)] + shared: HeadersAndMessagesSharedParams, + + #[structopt(flatten)] + left: [<$left_parachain ConnectionParams>], + // default signer, which is always used to sign messages relay transactions on the left chain + #[structopt(flatten)] + left_sign: [<$left_parachain SigningParams>], + + #[structopt(flatten)] + left_relay: [<$left_chain ConnectionParams>], + + #[structopt(flatten)] + right: [<$right_parachain ConnectionParams>], + // default signer, which is always used to sign messages relay transactions on the right chain + #[structopt(flatten)] + right_sign: [<$right_parachain SigningParams>], + + #[structopt(flatten)] + right_relay: [<$right_chain ConnectionParams>], + } + + impl [<$left_parachain $right_parachain HeadersAndMessages>] { + async fn into_bridge< + Left: ChainWithTransactions + ChainWithRuntimeVersion + Parachain, + LeftRelay: ChainWithRuntimeVersion, + Right: ChainWithTransactions + ChainWithRuntimeVersion + Parachain, + RightRelay: ChainWithRuntimeVersion, + L2R: $crate::cli::bridge::CliBridgeBase + + MessagesCliBridge + + $crate::cli::bridge::ParachainToRelayHeadersCliBridge, + R2L: $crate::cli::bridge::CliBridgeBase + + MessagesCliBridge + + $crate::cli::bridge::ParachainToRelayHeadersCliBridge, + >( + self, + ) -> anyhow::Result<$crate::cli::relay_headers_and_messages::parachain_to_parachain::ParachainToParachainBridge> { + Ok($crate::cli::relay_headers_and_messages::parachain_to_parachain::ParachainToParachainBridge { + common: Full2WayBridgeCommonParams::new::( + self.shared, + BridgeEndCommonParams { + client: self.left.into_client::().await?, + tx_params: self.left_sign.transaction_params::()?, + accounts: vec![], + }, + BridgeEndCommonParams { + client: self.right.into_client::().await?, + tx_params: self.right_sign.transaction_params::()?, + accounts: vec![], + }, + )?, + left_relay: self.left_relay.into_client::().await?, + right_relay: self.right_relay.into_client::().await?, + }) + } + } + } + }; +} + +#[async_trait] +impl< + Left: Chain + ChainWithTransactions + ChainWithRuntimeVersion + Parachain, + Right: Chain + ChainWithTransactions + ChainWithRuntimeVersion + Parachain, + LeftRelay: Chain + + ChainWithRuntimeVersion, + RightRelay: Chain + + ChainWithRuntimeVersion, + L2R: CliBridgeBase + + MessagesCliBridge + + ParachainToRelayHeadersCliBridge, + R2L: CliBridgeBase + + MessagesCliBridge + + ParachainToRelayHeadersCliBridge, + > Full2WayBridgeBase for ParachainToParachainBridge +where + AccountIdOf: From< as Pair>::Public>, + AccountIdOf: From< as Pair>::Public>, +{ + type Params = ParachainToParachainBridge; + type Left = Left; + type Right = Right; + + fn common(&self) -> &Full2WayBridgeCommonParams { + &self.common + } + + fn mut_common(&mut self) -> &mut Full2WayBridgeCommonParams { + &mut self.common + } + + async fn start_on_demand_headers_relayers( + &mut self, + ) -> anyhow::Result<( + Arc>, + Arc>, + )> { + ::RelayFinality::start_relay_guards( + &self.common.right.client, + self.common.right.client.can_start_version_guard(), + ) + .await?; + ::RelayFinality::start_relay_guards( + &self.common.left.client, + self.common.left.client.can_start_version_guard(), + ) + .await?; + + let left_relay_to_right_on_demand_headers = + OnDemandHeadersRelay::<::RelayFinality>::new( + self.left_relay.clone(), + self.common.right.client.clone(), + self.common.right.tx_params.clone(), + self.common.shared.only_mandatory_headers, + Some(self.common.metrics_params.clone()), + ); + let right_relay_to_left_on_demand_headers = + OnDemandHeadersRelay::<::RelayFinality>::new( + self.right_relay.clone(), + self.common.left.client.clone(), + self.common.left.tx_params.clone(), + self.common.shared.only_mandatory_headers, + Some(self.common.metrics_params.clone()), + ); + + let left_to_right_on_demand_parachains = OnDemandParachainsRelay::< + ::ParachainFinality, + >::new( + self.left_relay.clone(), + self.common.right.client.clone(), + self.common.right.tx_params.clone(), + Arc::new(left_relay_to_right_on_demand_headers), + ); + let right_to_left_on_demand_parachains = OnDemandParachainsRelay::< + ::ParachainFinality, + >::new( + self.right_relay.clone(), + self.common.left.client.clone(), + self.common.left.tx_params.clone(), + Arc::new(right_relay_to_left_on_demand_headers), + ); + + Ok(( + Arc::new(left_to_right_on_demand_parachains), + Arc::new(right_to_left_on_demand_parachains), + )) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/relay_to_parachain.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/relay_to_parachain.rs new file mode 100644 index 0000000000000000000000000000000000000000..b75ac3e60c26934c7dda603a2c7a91649d17eb52 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/relay_to_parachain.rs @@ -0,0 +1,199 @@ +// Copyright 2019-2022 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Relay chain to parachain relayer CLI primitives. + +use async_trait::async_trait; +use std::sync::Arc; + +use crate::{ + cli::{ + bridge::{ + CliBridgeBase, MessagesCliBridge, ParachainToRelayHeadersCliBridge, + RelayToRelayHeadersCliBridge, + }, + relay_headers_and_messages::{Full2WayBridgeBase, Full2WayBridgeCommonParams}, + }, + finality::SubstrateFinalitySyncPipeline, + on_demand::{ + headers::OnDemandHeadersRelay, parachains::OnDemandParachainsRelay, OnDemandRelay, + }, +}; +use bp_polkadot_core::parachains::ParaHash; +use pallet_bridge_parachains::{RelayBlockHash, RelayBlockHasher, RelayBlockNumber}; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, Chain, ChainWithRuntimeVersion, ChainWithTransactions, Client, + Parachain, +}; +use sp_core::Pair; + +/// A base relay between standalone (relay) chain and a parachain from another consensus system. +/// +/// Such relay starts 2 messages relay. It also starts 2 on-demand header relays and 1 on-demand +/// parachain heads relay. +pub struct RelayToParachainBridge< + L2R: MessagesCliBridge + RelayToRelayHeadersCliBridge, + R2L: MessagesCliBridge + ParachainToRelayHeadersCliBridge, +> where + ::Source: Parachain, +{ + /// Parameters that are shared by all bridge types. + pub common: + Full2WayBridgeCommonParams<::Target, ::Target>, + /// Client of the right relay chain. + pub right_relay: Client<::SourceRelay>, +} + +/// Create set of configuration objects specific to relay-to-parachain relayer. +#[macro_export] +macro_rules! declare_relay_to_parachain_bridge_schema { + // chain, parachain, relay-chain-of-parachain + ($left_chain:ident, $right_parachain:ident, $right_chain:ident) => { + bp_runtime::paste::item! { + #[doc = $left_chain ", " $right_parachain " and " $right_chain " headers+parachains+messages relay params."] + #[derive(Debug, PartialEq, StructOpt)] + pub struct [<$left_chain $right_parachain HeadersAndMessages>] { + // shared parameters + #[structopt(flatten)] + shared: HeadersAndMessagesSharedParams, + + #[structopt(flatten)] + left: [<$left_chain ConnectionParams>], + // default signer, which is always used to sign messages relay transactions on the left chain + #[structopt(flatten)] + left_sign: [<$left_chain SigningParams>], + + #[structopt(flatten)] + right: [<$right_parachain ConnectionParams>], + // default signer, which is always used to sign messages relay transactions on the right chain + #[structopt(flatten)] + right_sign: [<$right_parachain SigningParams>], + + #[structopt(flatten)] + right_relay: [<$right_chain ConnectionParams>], + } + + impl [<$left_chain $right_parachain HeadersAndMessages>] { + async fn into_bridge< + Left: ChainWithTransactions + ChainWithRuntimeVersion, + Right: ChainWithTransactions + ChainWithRuntimeVersion + Parachain, + RightRelay: ChainWithRuntimeVersion, + L2R: CliBridgeBase + MessagesCliBridge + RelayToRelayHeadersCliBridge, + R2L: CliBridgeBase + + MessagesCliBridge + + ParachainToRelayHeadersCliBridge, + >( + self, + ) -> anyhow::Result> { + Ok(RelayToParachainBridge { + common: Full2WayBridgeCommonParams::new::( + self.shared, + BridgeEndCommonParams { + client: self.left.into_client::().await?, + tx_params: self.left_sign.transaction_params::()?, + accounts: vec![], + }, + BridgeEndCommonParams { + client: self.right.into_client::().await?, + tx_params: self.right_sign.transaction_params::()?, + accounts: vec![], + }, + )?, + right_relay: self.right_relay.into_client::().await?, + }) + } + } + } + }; +} + +#[async_trait] +impl< + Left: ChainWithTransactions + ChainWithRuntimeVersion, + Right: Chain + ChainWithTransactions + ChainWithRuntimeVersion + Parachain, + RightRelay: Chain + + ChainWithRuntimeVersion, + L2R: CliBridgeBase + + MessagesCliBridge + + RelayToRelayHeadersCliBridge, + R2L: CliBridgeBase + + MessagesCliBridge + + ParachainToRelayHeadersCliBridge, + > Full2WayBridgeBase for RelayToParachainBridge +where + AccountIdOf: From< as Pair>::Public>, + AccountIdOf: From< as Pair>::Public>, +{ + type Params = RelayToParachainBridge; + type Left = Left; + type Right = Right; + + fn common(&self) -> &Full2WayBridgeCommonParams { + &self.common + } + + fn mut_common(&mut self) -> &mut Full2WayBridgeCommonParams { + &mut self.common + } + + async fn start_on_demand_headers_relayers( + &mut self, + ) -> anyhow::Result<( + Arc>, + Arc>, + )> { + ::Finality::start_relay_guards( + &self.common.right.client, + self.common.right.client.can_start_version_guard(), + ) + .await?; + ::RelayFinality::start_relay_guards( + &self.common.left.client, + self.common.left.client.can_start_version_guard(), + ) + .await?; + + let left_to_right_on_demand_headers = + OnDemandHeadersRelay::<::Finality>::new( + self.common.left.client.clone(), + self.common.right.client.clone(), + self.common.right.tx_params.clone(), + self.common.shared.only_mandatory_headers, + None, + ); + let right_relay_to_left_on_demand_headers = + OnDemandHeadersRelay::<::RelayFinality>::new( + self.right_relay.clone(), + self.common.left.client.clone(), + self.common.left.tx_params.clone(), + self.common.shared.only_mandatory_headers, + Some(self.common.metrics_params.clone()), + ); + let right_to_left_on_demand_parachains = OnDemandParachainsRelay::< + ::ParachainFinality, + >::new( + self.right_relay.clone(), + self.common.left.client.clone(), + self.common.left.tx_params.clone(), + Arc::new(right_relay_to_left_on_demand_headers), + ); + + Ok(( + Arc::new(left_to_right_on_demand_headers), + Arc::new(right_to_left_on_demand_parachains), + )) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/relay_to_relay.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/relay_to_relay.rs new file mode 100644 index 0000000000000000000000000000000000000000..b397ff50a20a62833d96a3687c8d3c3494efc5c2 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/relay_to_relay.rs @@ -0,0 +1,169 @@ +// Copyright 2019-2022 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +// we don't have any relay/standalone <> relay/standalone chain bridges, but we may need it in a +// future +#![allow(unused_macros)] + +//! Relay chain to Relay chain relayer CLI primitives. + +use async_trait::async_trait; +use std::sync::Arc; + +use crate::{ + cli::{ + bridge::{CliBridgeBase, MessagesCliBridge, RelayToRelayHeadersCliBridge}, + relay_headers_and_messages::{Full2WayBridgeBase, Full2WayBridgeCommonParams}, + }, + finality::SubstrateFinalitySyncPipeline, + on_demand::{headers::OnDemandHeadersRelay, OnDemandRelay}, +}; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, ChainWithRuntimeVersion, ChainWithTransactions, +}; +use sp_core::Pair; + +/// A base relay between two standalone (relay) chains. +/// +/// Such relay starts 2 messages relay and 2 on-demand header relays. +pub struct RelayToRelayBridge< + L2R: MessagesCliBridge + RelayToRelayHeadersCliBridge, + R2L: MessagesCliBridge + RelayToRelayHeadersCliBridge, +> { + /// Parameters that are shared by all bridge types. + pub common: + Full2WayBridgeCommonParams<::Target, ::Target>, +} + +/// Create set of configuration objects specific to relay-to-relay relayer. +macro_rules! declare_relay_to_relay_bridge_schema { + ($left_chain:ident, $right_chain:ident) => { + bp_runtime::paste::item! { + #[doc = $left_chain " and " $right_chain " headers+messages relay params."] + #[derive(Debug, PartialEq, StructOpt)] + pub struct [<$left_chain $right_chain HeadersAndMessages>] { + #[structopt(flatten)] + shared: HeadersAndMessagesSharedParams, + + #[structopt(flatten)] + left: [<$left_chain ConnectionParams>], + // default signer, which is always used to sign messages relay transactions on the left chain + #[structopt(flatten)] + left_sign: [<$left_chain SigningParams>], + + #[structopt(flatten)] + right: [<$right_chain ConnectionParams>], + #[structopt(flatten)] + // default signer, which is always used to sign messages relay transactions on the right chain + right_sign: [<$right_chain SigningParams>], + } + + impl [<$left_chain $right_chain HeadersAndMessages>] { + async fn into_bridge< + Left: ChainWithTransactions + CliChain, + Right: ChainWithTransactions + CliChain, + L2R: CliBridgeBase + MessagesCliBridge + RelayToRelayHeadersCliBridge, + R2L: CliBridgeBase + MessagesCliBridge + RelayToRelayHeadersCliBridge, + >( + self, + ) -> anyhow::Result> { + Ok(RelayToRelayBridge { + common: Full2WayBridgeCommonParams::new::( + self.shared, + BridgeEndCommonParams { + client: self.left.into_client::().await?, + tx_params: self.left_sign.transaction_params::()?, + accounts: vec![], + }, + BridgeEndCommonParams { + client: self.right.into_client::().await?, + tx_params: self.right_sign.transaction_params::()?, + accounts: vec![], + }, + )?, + right_to_left_transaction_params: self.left_sign.transaction_params::(), + left_to_right_transaction_params: self.right_sign.transaction_params::(), + }) + } + } + } + }; +} + +#[async_trait] +impl< + Left: ChainWithTransactions + ChainWithRuntimeVersion, + Right: ChainWithTransactions + ChainWithRuntimeVersion, + L2R: CliBridgeBase + + MessagesCliBridge + + RelayToRelayHeadersCliBridge, + R2L: CliBridgeBase + + MessagesCliBridge + + RelayToRelayHeadersCliBridge, + > Full2WayBridgeBase for RelayToRelayBridge +where + AccountIdOf: From< as Pair>::Public>, + AccountIdOf: From< as Pair>::Public>, +{ + type Params = RelayToRelayBridge; + type Left = Left; + type Right = Right; + + fn common(&self) -> &Full2WayBridgeCommonParams { + &self.common + } + + fn mut_common(&mut self) -> &mut Full2WayBridgeCommonParams { + &mut self.common + } + + async fn start_on_demand_headers_relayers( + &mut self, + ) -> anyhow::Result<( + Arc>, + Arc>, + )> { + ::Finality::start_relay_guards( + &self.common.right.client, + self.common.right.client.can_start_version_guard(), + ) + .await?; + ::Finality::start_relay_guards( + &self.common.left.client, + self.common.left.client.can_start_version_guard(), + ) + .await?; + + let left_to_right_on_demand_headers = + OnDemandHeadersRelay::<::Finality>::new( + self.common.left.client.clone(), + self.common.right.client.clone(), + self.common.right.tx_params.clone(), + self.common.shared.only_mandatory_headers, + None, + ); + let right_to_left_on_demand_headers = + OnDemandHeadersRelay::<::Finality>::new( + self.common.right.client.clone(), + self.common.left.client.clone(), + self.common.left.tx_params.clone(), + self.common.shared.only_mandatory_headers, + None, + ); + + Ok((Arc::new(left_to_right_on_demand_headers), Arc::new(right_to_left_on_demand_headers))) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_messages.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_messages.rs new file mode 100644 index 0000000000000000000000000000000000000000..b672bd4f9b86812c87532012debb89e0a601451f --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_messages.rs @@ -0,0 +1,89 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Primitives for exposing the messages relaying functionality in the CLI. + +use crate::{ + cli::{bridge::*, chain_schema::*, HexLaneId, PrometheusParams}, + messages_lane::MessagesRelayParams, + TransactionParams, +}; + +use async_trait::async_trait; +use sp_core::Pair; +use structopt::StructOpt; + +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, BalanceOf, ChainWithRuntimeVersion, ChainWithTransactions, +}; + +/// Messages relaying params. +#[derive(StructOpt)] +pub struct RelayMessagesParams { + /// Hex-encoded lane id that should be served by the relay. Defaults to `00000000`. + #[structopt(long, default_value = "00000000")] + lane: HexLaneId, + #[structopt(flatten)] + source: SourceConnectionParams, + #[structopt(flatten)] + source_sign: SourceSigningParams, + #[structopt(flatten)] + target: TargetConnectionParams, + #[structopt(flatten)] + target_sign: TargetSigningParams, + #[structopt(flatten)] + prometheus_params: PrometheusParams, +} + +/// Trait used for relaying messages between 2 chains. +#[async_trait] +pub trait MessagesRelayer: MessagesCliBridge +where + Self::Source: ChainWithTransactions + ChainWithRuntimeVersion, + AccountIdOf: From< as Pair>::Public>, + AccountIdOf: From< as Pair>::Public>, + BalanceOf: TryFrom>, +{ + /// Start relaying messages. + async fn relay_messages(data: RelayMessagesParams) -> anyhow::Result<()> { + let source_client = data.source.into_client::().await?; + let source_sign = data.source_sign.to_keypair::()?; + let source_transactions_mortality = data.source_sign.transactions_mortality()?; + let target_client = data.target.into_client::().await?; + let target_sign = data.target_sign.to_keypair::()?; + let target_transactions_mortality = data.target_sign.transactions_mortality()?; + + crate::messages_lane::run::(MessagesRelayParams { + source_client, + source_transaction_params: TransactionParams { + signer: source_sign, + mortality: source_transactions_mortality, + }, + target_client, + target_transaction_params: TransactionParams { + signer: target_sign, + mortality: target_transactions_mortality, + }, + source_to_target_headers_relay: None, + target_to_source_headers_relay: None, + lane_id: data.lane.into(), + limits: Self::maybe_messages_limits(), + metrics_params: data.prometheus_params.into_metrics_params()?, + }) + .await + .map_err(|e| anyhow::format_err!("{}", e)) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_parachains.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_parachains.rs new file mode 100644 index 0000000000000000000000000000000000000000..e5a52349469bbdf36c7de228078d8d10b0e882f0 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_parachains.rs @@ -0,0 +1,91 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Primitives for exposing the parachains finality relaying functionality in the CLI. + +use async_std::sync::Mutex; +use async_trait::async_trait; +use parachains_relay::parachains_loop::{AvailableHeader, SourceClient, TargetClient}; +use relay_substrate_client::Parachain; +use relay_utils::metrics::{GlobalMetrics, StandaloneMetric}; +use std::sync::Arc; +use structopt::StructOpt; + +use crate::{ + cli::{ + bridge::{CliBridgeBase, ParachainToRelayHeadersCliBridge}, + chain_schema::*, + PrometheusParams, + }, + parachains::{source::ParachainsSource, target::ParachainsTarget, ParachainsPipelineAdapter}, + TransactionParams, +}; + +/// Parachains heads relaying params. +#[derive(StructOpt)] +pub struct RelayParachainsParams { + #[structopt(flatten)] + source: SourceConnectionParams, + #[structopt(flatten)] + target: TargetConnectionParams, + #[structopt(flatten)] + target_sign: TargetSigningParams, + #[structopt(flatten)] + prometheus_params: PrometheusParams, +} + +/// Trait used for relaying parachains finality between 2 chains. +#[async_trait] +pub trait ParachainsRelayer: ParachainToRelayHeadersCliBridge +where + ParachainsSource: + SourceClient>, + ParachainsTarget: + TargetClient>, + ::Source: Parachain, +{ + /// Start relaying parachains finality. + async fn relay_parachains(data: RelayParachainsParams) -> anyhow::Result<()> { + let source_client = data.source.into_client::().await?; + let source_client = ParachainsSource::::new( + source_client, + Arc::new(Mutex::new(AvailableHeader::Missing)), + ); + + let target_transaction_params = TransactionParams { + signer: data.target_sign.to_keypair::()?, + mortality: data.target_sign.target_transactions_mortality, + }; + let target_client = data.target.into_client::().await?; + let target_client = ParachainsTarget::::new( + target_client.clone(), + target_transaction_params, + ); + + let metrics_params: relay_utils::metrics::MetricsParams = + data.prometheus_params.into_metrics_params()?; + GlobalMetrics::new()?.register_and_spawn(&metrics_params.registry)?; + + parachains_relay::parachains_loop::run( + source_client, + target_client, + metrics_params, + futures::future::pending(), + ) + .await + .map_err(|e| anyhow::format_err!("{}", e)) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/equivocation/mod.rs b/bridges/relays/lib-substrate-relay/src/equivocation/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..f6d58cbaa4ab4c4d7f489de5a80ab226b3b475b4 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/equivocation/mod.rs @@ -0,0 +1,223 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Types and functions intended to ease adding of new Substrate -> Substrate +//! equivocation detection pipelines. + +mod source; +mod target; + +use crate::{ + equivocation::{source::SubstrateEquivocationSource, target::SubstrateEquivocationTarget}, + finality_base::{engine::Engine, SubstrateFinalityPipeline, SubstrateFinalityProof}, + TransactionParams, +}; + +use async_trait::async_trait; +use bp_runtime::{AccountIdOf, BlockNumberOf, HashOf}; +use equivocation_detector::EquivocationDetectionPipeline; +use finality_relay::FinalityPipeline; +use pallet_grandpa::{Call as GrandpaCall, Config as GrandpaConfig}; +use relay_substrate_client::{AccountKeyPairOf, CallOf, Chain, ChainWithTransactions, Client}; +use relay_utils::metrics::MetricsParams; +use sp_core::Pair; +use sp_runtime::traits::{Block, Header}; +use std::marker::PhantomData; + +/// Convenience trait that adds bounds to `SubstrateEquivocationDetectionPipeline`. +pub trait BaseSubstrateEquivocationDetectionPipeline: + SubstrateFinalityPipeline +{ + /// Bounded `SubstrateFinalityPipeline::SourceChain`. + type BoundedSourceChain: ChainWithTransactions; + + /// Bounded `AccountIdOf`. + type BoundedSourceChainAccountId: From< as Pair>::Public> + + Send; +} + +impl BaseSubstrateEquivocationDetectionPipeline for T +where + T: SubstrateFinalityPipeline, + T::SourceChain: ChainWithTransactions, + AccountIdOf: From< as Pair>::Public>, +{ + type BoundedSourceChain = T::SourceChain; + type BoundedSourceChainAccountId = AccountIdOf; +} + +/// Substrate -> Substrate equivocation detection pipeline. +#[async_trait] +pub trait SubstrateEquivocationDetectionPipeline: + BaseSubstrateEquivocationDetectionPipeline +{ + /// How the `report_equivocation` call is built ? + type ReportEquivocationCallBuilder: ReportEquivocationCallBuilder; + + /// Add relay guards if required. + async fn start_relay_guards( + source_client: &Client, + enable_version_guard: bool, + ) -> relay_substrate_client::Result<()> { + if enable_version_guard { + relay_substrate_client::guard::abort_on_spec_version_change( + source_client.clone(), + source_client.simple_runtime_version().await?.spec_version, + ); + } + Ok(()) + } +} + +type FinalityProoffOf

= <

::FinalityEngine as Engine< +

::SourceChain, +>>::FinalityProof; +type FinalityVerificationContextfOf

= + <

::FinalityEngine as Engine< +

::SourceChain, + >>::FinalityVerificationContext; +/// The type of the equivocation proof used by the `SubstrateEquivocationDetectionPipeline` +pub type EquivocationProofOf

= <

::FinalityEngine as Engine< +

::SourceChain, +>>::EquivocationProof; +type EquivocationsFinderOf

= <

::FinalityEngine as Engine< +

::SourceChain, +>>::EquivocationsFinder; +/// The type of the key owner proof used by the `SubstrateEquivocationDetectionPipeline` +pub type KeyOwnerProofOf

= <

::FinalityEngine as Engine< +

::SourceChain, +>>::KeyOwnerProof; + +/// Adapter that allows a `SubstrateEquivocationDetectionPipeline` to act as an +/// `EquivocationDetectionPipeline`. +#[derive(Clone, Debug)] +pub struct EquivocationDetectionPipelineAdapter { + _phantom: PhantomData

, +} + +impl FinalityPipeline + for EquivocationDetectionPipelineAdapter

+{ + const SOURCE_NAME: &'static str = P::SourceChain::NAME; + const TARGET_NAME: &'static str = P::TargetChain::NAME; + + type Hash = HashOf; + type Number = BlockNumberOf; + type FinalityProof = SubstrateFinalityProof

; +} + +impl EquivocationDetectionPipeline + for EquivocationDetectionPipelineAdapter

+{ + type TargetNumber = BlockNumberOf; + type FinalityVerificationContext = FinalityVerificationContextfOf

; + type EquivocationProof = EquivocationProofOf

; + type EquivocationsFinder = EquivocationsFinderOf

; +} + +/// Different ways of building `report_equivocation` calls. +pub trait ReportEquivocationCallBuilder { + /// Build a `report_equivocation` call to be executed on the source chain. + fn build_report_equivocation_call( + equivocation_proof: EquivocationProofOf

, + key_owner_proof: KeyOwnerProofOf

, + ) -> CallOf; +} + +/// Building the `report_equivocation` call when having direct access to the target chain runtime. +pub struct DirectReportGrandpaEquivocationCallBuilder { + _phantom: PhantomData<(P, R)>, +} + +impl ReportEquivocationCallBuilder

for DirectReportGrandpaEquivocationCallBuilder +where + P: SubstrateEquivocationDetectionPipeline, + P::FinalityEngine: Engine< + P::SourceChain, + EquivocationProof = sp_consensus_grandpa::EquivocationProof< + HashOf, + BlockNumberOf, + >, + >, + R: frame_system::Config> + + GrandpaConfig>, + ::Header: Header>, + CallOf: From>, +{ + fn build_report_equivocation_call( + equivocation_proof: EquivocationProofOf

, + key_owner_proof: KeyOwnerProofOf

, + ) -> CallOf { + GrandpaCall::::report_equivocation { + equivocation_proof: Box::new(equivocation_proof), + key_owner_proof, + } + .into() + } +} + +/// Macro that generates `ReportEquivocationCallBuilder` implementation for the case where +/// we only have access to the mocked version of the source chain runtime. +#[rustfmt::skip] +#[macro_export] +macro_rules! generate_report_equivocation_call_builder { + ($pipeline:ident, $mocked_builder:ident, $grandpa:path, $report_equivocation:path) => { + pub struct $mocked_builder; + + impl $crate::equivocation::ReportEquivocationCallBuilder<$pipeline> + for $mocked_builder + { + fn build_report_equivocation_call( + equivocation_proof: $crate::equivocation::EquivocationProofOf<$pipeline>, + key_owner_proof: $crate::equivocation::KeyOwnerProofOf<$pipeline>, + ) -> relay_substrate_client::CallOf< + <$pipeline as $crate::finality_base::SubstrateFinalityPipeline>::SourceChain + > { + bp_runtime::paste::item! { + $grandpa($report_equivocation { + equivocation_proof: Box::new(equivocation_proof), + key_owner_proof: key_owner_proof + }) + } + } + } + }; +} + +/// Run Substrate-to-Substrate equivocations detection loop. +pub async fn run( + source_client: Client, + target_client: Client, + source_transaction_params: TransactionParams>, + metrics_params: MetricsParams, +) -> anyhow::Result<()> { + log::info!( + target: "bridge", + "Starting {} -> {} equivocations detection loop", + P::SourceChain::NAME, + P::TargetChain::NAME, + ); + + equivocation_detector::run( + SubstrateEquivocationSource::

::new(source_client, source_transaction_params), + SubstrateEquivocationTarget::

::new(target_client), + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + metrics_params, + futures::future::pending(), + ) + .await + .map_err(|e| anyhow::format_err!("{}", e)) +} diff --git a/bridges/relays/lib-substrate-relay/src/equivocation/source.rs b/bridges/relays/lib-substrate-relay/src/equivocation/source.rs new file mode 100644 index 0000000000000000000000000000000000000000..a0c7dcf5cbc32c7e5a39de5acd53d92def24a22f --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/equivocation/source.rs @@ -0,0 +1,109 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Default generic implementation of equivocation source for basic Substrate client. + +use crate::{ + equivocation::{ + EquivocationDetectionPipelineAdapter, EquivocationProofOf, ReportEquivocationCallBuilder, + SubstrateEquivocationDetectionPipeline, + }, + finality_base::{engine::Engine, finality_proofs, SubstrateFinalityProofsStream}, + TransactionParams, +}; + +use async_trait::async_trait; +use bp_runtime::{HashOf, TransactionEra}; +use equivocation_detector::SourceClient; +use finality_relay::SourceClientBase; +use relay_substrate_client::{ + AccountKeyPairOf, Client, Error, TransactionTracker, UnsignedTransaction, +}; +use relay_utils::relay_loop::Client as RelayClient; + +/// Substrate node as equivocation source. +pub struct SubstrateEquivocationSource { + client: Client, + transaction_params: TransactionParams>, +} + +impl SubstrateEquivocationSource

{ + /// Create new instance of `SubstrateEquivocationSource`. + pub fn new( + client: Client, + transaction_params: TransactionParams>, + ) -> Self { + Self { client, transaction_params } + } +} + +impl Clone for SubstrateEquivocationSource

{ + fn clone(&self) -> Self { + Self { client: self.client.clone(), transaction_params: self.transaction_params.clone() } + } +} + +#[async_trait] +impl RelayClient for SubstrateEquivocationSource

{ + type Error = Error; + + async fn reconnect(&mut self) -> Result<(), Error> { + self.client.reconnect().await + } +} + +#[async_trait] +impl + SourceClientBase> for SubstrateEquivocationSource

+{ + type FinalityProofsStream = SubstrateFinalityProofsStream

; + + async fn finality_proofs(&self) -> Result { + finality_proofs::

(&self.client).await + } +} + +#[async_trait] +impl + SourceClient> for SubstrateEquivocationSource

+{ + type TransactionTracker = TransactionTracker>; + + async fn report_equivocation( + &self, + at: HashOf, + equivocation: EquivocationProofOf

, + ) -> Result { + let key_owner_proof = + P::FinalityEngine::generate_source_key_ownership_proof(&self.client, at, &equivocation) + .await?; + + let mortality = self.transaction_params.mortality; + let call = P::ReportEquivocationCallBuilder::build_report_equivocation_call( + equivocation, + key_owner_proof, + ); + self.client + .submit_and_watch_signed_extrinsic( + &self.transaction_params.signer, + move |best_block_id, transaction_nonce| { + Ok(UnsignedTransaction::new(call.into(), transaction_nonce) + .era(TransactionEra::new(best_block_id, mortality))) + }, + ) + .await + } +} diff --git a/bridges/relays/lib-substrate-relay/src/equivocation/target.rs b/bridges/relays/lib-substrate-relay/src/equivocation/target.rs new file mode 100644 index 0000000000000000000000000000000000000000..6eee2ab91d45b033a77e30b7d05ae28b246b9735 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/equivocation/target.rs @@ -0,0 +1,111 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Default generic implementation of equivocation source for basic Substrate client. + +use crate::{ + equivocation::{ + EquivocationDetectionPipelineAdapter, FinalityProoffOf, FinalityVerificationContextfOf, + SubstrateEquivocationDetectionPipeline, + }, + finality_base::{best_synced_header_id, engine::Engine}, +}; + +use async_trait::async_trait; +use bp_header_chain::HeaderFinalityInfo; +use bp_runtime::{BlockNumberOf, HashOf}; +use equivocation_detector::TargetClient; +use relay_substrate_client::{Client, Error}; +use relay_utils::relay_loop::Client as RelayClient; +use sp_runtime::traits::Header; +use std::marker::PhantomData; + +/// Substrate node as equivocation source. +pub struct SubstrateEquivocationTarget { + client: Client, + + _phantom: PhantomData

, +} + +impl SubstrateEquivocationTarget

{ + /// Create new instance of `SubstrateEquivocationTarget`. + pub fn new(client: Client) -> Self { + Self { client, _phantom: Default::default() } + } +} + +impl Clone for SubstrateEquivocationTarget

{ + fn clone(&self) -> Self { + Self { client: self.client.clone(), _phantom: Default::default() } + } +} + +#[async_trait] +impl RelayClient for SubstrateEquivocationTarget

{ + type Error = Error; + + async fn reconnect(&mut self) -> Result<(), Error> { + self.client.reconnect().await + } +} + +#[async_trait] +impl + TargetClient> for SubstrateEquivocationTarget

+{ + async fn best_finalized_header_number( + &self, + ) -> Result, Self::Error> { + self.client.best_finalized_header_number().await + } + + async fn best_synced_header_hash( + &self, + at: BlockNumberOf, + ) -> Result>, Self::Error> { + Ok(best_synced_header_id::( + &self.client, + self.client.header_by_number(at).await?.hash(), + ) + .await? + .map(|id| id.hash())) + } + + async fn finality_verification_context( + &self, + at: BlockNumberOf, + ) -> Result, Self::Error> { + P::FinalityEngine::finality_verification_context( + &self.client, + self.client.header_by_number(at).await?.hash(), + ) + .await + } + + async fn synced_headers_finality_info( + &self, + at: BlockNumberOf, + ) -> Result< + Vec, FinalityVerificationContextfOf

>>, + Self::Error, + > { + P::FinalityEngine::synced_headers_finality_info( + &self.client, + self.client.header_by_number(at).await?.hash(), + ) + .await + } +} diff --git a/bridges/relays/lib-substrate-relay/src/error.rs b/bridges/relays/lib-substrate-relay/src/error.rs new file mode 100644 index 0000000000000000000000000000000000000000..2ebd9130f3912ba4c0552860a2259b222220e8f8 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/error.rs @@ -0,0 +1,63 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Relay errors. + +use relay_substrate_client as client; +use sp_consensus_grandpa::AuthorityList; +use sp_runtime::traits::MaybeDisplay; +use std::fmt::Debug; +use thiserror::Error; + +/// Relay errors. +#[derive(Error, Debug)] +pub enum Error { + /// Failed to submit signed extrinsic from to the target chain. + #[error("Failed to submit {0} transaction: {1:?}")] + SubmitTransaction(&'static str, client::Error), + /// Failed subscribe to justification stream of the source chain. + #[error("Failed to subscribe to {0} justifications: {1:?}")] + Subscribe(&'static str, client::Error), + /// Failed subscribe to read justification from the source chain (client error). + #[error("Failed to read {0} justification from the stream: {1}")] + ReadJustification(&'static str, client::Error), + /// Failed subscribe to read justification from the source chain (stream ended). + #[error("Failed to read {0} justification from the stream: stream has ended unexpectedly")] + ReadJustificationStreamEnded(&'static str), + /// Failed subscribe to decode justification from the source chain. + #[error("Failed to decode {0} justification: {1:?}")] + DecodeJustification(&'static str, codec::Error), + /// GRANDPA authorities read from the source chain are invalid. + #[error("Read invalid {0} authorities set: {1:?}")] + ReadInvalidAuthorities(&'static str, AuthorityList), + /// Failed to guess initial GRANDPA authorities at the given header of the source chain. + #[error("Failed to guess initial {0} GRANDPA authorities set id: checked all possible ids in range [0; {1}]")] + GuessInitialAuthorities(&'static str, HeaderNumber), + /// Failed to retrieve GRANDPA authorities at the given header from the source chain. + #[error("Failed to retrive {0} GRANDPA authorities set at header {1}: {2:?}")] + RetrieveAuthorities(&'static str, Hash, client::Error), + /// Failed to decode GRANDPA authorities at the given header of the source chain. + #[error("Failed to decode {0} GRANDPA authorities set at header {1}: {2:?}")] + DecodeAuthorities(&'static str, Hash, codec::Error), + /// Failed to retrieve header by the hash from the source chain. + #[error("Failed to retrieve {0} header with hash {1}: {2:?}")] + RetrieveHeader(&'static str, Hash, client::Error), + /// Failed to submit signed extrinsic from to the target chain. + #[error( + "Failed to retrieve `is_initialized` flag of the with-{0} finality pallet at {1}: {2:?}" + )] + IsInitializedRetrieve(&'static str, &'static str, client::Error), +} diff --git a/bridges/relays/lib-substrate-relay/src/finality/initialize.rs b/bridges/relays/lib-substrate-relay/src/finality/initialize.rs new file mode 100644 index 0000000000000000000000000000000000000000..5dde46c39dd674e7c01eebba4b014bc999611eb5 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/finality/initialize.rs @@ -0,0 +1,163 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Initialize Substrate -> Substrate finality bridge. +//! +//! Initialization is a transaction that calls `initialize()` function of the +//! finality pallet (GRANDPA/BEEFY/...). This transaction brings initial header +//! and authorities set from source to target chain. The finality sync starts +//! with this header. + +use crate::{error::Error, finality_base::engine::Engine}; +use sp_core::Pair; + +use bp_runtime::HeaderIdOf; +use relay_substrate_client::{ + AccountKeyPairOf, Chain, ChainWithTransactions, Client, Error as SubstrateError, + UnsignedTransaction, +}; +use relay_utils::{TrackedTransactionStatus, TransactionTracker}; +use sp_runtime::traits::Header as HeaderT; + +/// Submit headers-bridge initialization transaction. +pub async fn initialize< + E: Engine, + SourceChain: Chain, + TargetChain: ChainWithTransactions, + F, +>( + source_client: Client, + target_client: Client, + target_signer: AccountKeyPairOf, + prepare_initialize_transaction: F, + dry_run: bool, +) where + F: FnOnce( + TargetChain::Nonce, + E::InitializationData, + ) -> Result, SubstrateError> + + Send + + 'static, + TargetChain::AccountId: From<::Public>, +{ + let result = do_initialize::( + source_client, + target_client, + target_signer, + prepare_initialize_transaction, + dry_run, + ) + .await; + + match result { + Ok(Some(tx_status)) => match tx_status { + TrackedTransactionStatus::Lost => { + log::error!( + target: "bridge", + "Failed to execute {}-headers bridge initialization transaction on {}: {:?}.", + SourceChain::NAME, + TargetChain::NAME, + tx_status + ) + }, + TrackedTransactionStatus::Finalized(_) => { + log::info!( + target: "bridge", + "Successfully executed {}-headers bridge initialization transaction on {}: {:?}.", + SourceChain::NAME, + TargetChain::NAME, + tx_status + ) + }, + }, + Ok(None) => (), + Err(err) => log::error!( + target: "bridge", + "Failed to submit {}-headers bridge initialization transaction to {}: {:?}", + SourceChain::NAME, + TargetChain::NAME, + err, + ), + } +} + +/// Craft and submit initialization transaction, returning any error that may occur. +async fn do_initialize< + E: Engine, + SourceChain: Chain, + TargetChain: ChainWithTransactions, + F, +>( + source_client: Client, + target_client: Client, + target_signer: AccountKeyPairOf, + prepare_initialize_transaction: F, + dry_run: bool, +) -> Result< + Option>>, + Error::Number>, +> +where + F: FnOnce( + TargetChain::Nonce, + E::InitializationData, + ) -> Result, SubstrateError> + + Send + + 'static, + TargetChain::AccountId: From<::Public>, +{ + let is_initialized = E::is_initialized(&target_client) + .await + .map_err(|e| Error::IsInitializedRetrieve(SourceChain::NAME, TargetChain::NAME, e))?; + if is_initialized { + log::info!( + target: "bridge", + "{}-headers bridge at {} is already initialized. Skipping", + SourceChain::NAME, + TargetChain::NAME, + ); + if !dry_run { + return Ok(None) + } + } + + let initialization_data = E::prepare_initialization_data(source_client).await?; + log::info!( + target: "bridge", + "Prepared initialization data for {}-headers bridge at {}: {:?}", + SourceChain::NAME, + TargetChain::NAME, + initialization_data, + ); + + let tx_status = target_client + .submit_and_watch_signed_extrinsic(&target_signer, move |_, transaction_nonce| { + let tx = prepare_initialize_transaction(transaction_nonce, initialization_data); + if dry_run { + Err(SubstrateError::Custom( + "Not submitting extrinsic in `dry-run` mode!".to_string(), + )) + } else { + tx + } + }) + .await + .map_err(|err| Error::SubmitTransaction(TargetChain::NAME, err))? + .wait() + .await; + + Ok(Some(tx_status)) +} diff --git a/bridges/relays/lib-substrate-relay/src/finality/mod.rs b/bridges/relays/lib-substrate-relay/src/finality/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..206f628b143b8a085dec9a0ef5de929c178c25f6 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/finality/mod.rs @@ -0,0 +1,270 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Types and functions intended to ease adding of new Substrate -> Substrate +//! finality proofs synchronization pipelines. + +use crate::{ + finality::{source::SubstrateFinalitySource, target::SubstrateFinalityTarget}, + finality_base::{engine::Engine, SubstrateFinalityPipeline, SubstrateFinalityProof}, + TransactionParams, +}; + +use async_trait::async_trait; +use bp_header_chain::justification::{GrandpaJustification, JustificationVerificationContext}; +use finality_relay::{FinalityPipeline, FinalitySyncPipeline}; +use pallet_bridge_grandpa::{Call as BridgeGrandpaCall, Config as BridgeGrandpaConfig}; +use relay_substrate_client::{ + transaction_stall_timeout, AccountIdOf, AccountKeyPairOf, BlockNumberOf, CallOf, Chain, + ChainWithTransactions, Client, HashOf, HeaderOf, SyncHeader, +}; +use relay_utils::metrics::MetricsParams; +use sp_core::Pair; +use std::{fmt::Debug, marker::PhantomData}; + +pub mod initialize; +pub mod source; +pub mod target; + +/// Default limit of recent finality proofs. +/// +/// Finality delay of 4096 blocks is unlikely to happen in practice in +/// Substrate+GRANDPA based chains (good to know). +pub(crate) const RECENT_FINALITY_PROOFS_LIMIT: usize = 4096; + +/// Convenience trait that adds bounds to `SubstrateFinalitySyncPipeline`. +pub trait BaseSubstrateFinalitySyncPipeline: + SubstrateFinalityPipeline +{ + /// Bounded `SubstrateFinalityPipeline::TargetChain`. + type BoundedTargetChain: ChainWithTransactions; + + /// Bounded `AccountIdOf`. + type BoundedTargetChainAccountId: From< as Pair>::Public> + + Send; +} + +impl BaseSubstrateFinalitySyncPipeline for T +where + T: SubstrateFinalityPipeline, + T::TargetChain: ChainWithTransactions, + AccountIdOf: From< as Pair>::Public>, +{ + type BoundedTargetChain = T::TargetChain; + type BoundedTargetChainAccountId = AccountIdOf; +} + +/// Substrate -> Substrate finality proofs synchronization pipeline. +#[async_trait] +pub trait SubstrateFinalitySyncPipeline: BaseSubstrateFinalitySyncPipeline { + /// How submit finality proof call is built? + type SubmitFinalityProofCallBuilder: SubmitFinalityProofCallBuilder; + + /// Add relay guards if required. + async fn start_relay_guards( + target_client: &Client, + enable_version_guard: bool, + ) -> relay_substrate_client::Result<()> { + if enable_version_guard { + relay_substrate_client::guard::abort_on_spec_version_change( + target_client.clone(), + target_client.simple_runtime_version().await?.spec_version, + ); + } + Ok(()) + } +} + +/// Adapter that allows all `SubstrateFinalitySyncPipeline` to act as `FinalitySyncPipeline`. +#[derive(Clone, Debug)] +pub struct FinalitySyncPipelineAdapter { + _phantom: PhantomData

, +} + +impl FinalityPipeline for FinalitySyncPipelineAdapter

{ + const SOURCE_NAME: &'static str = P::SourceChain::NAME; + const TARGET_NAME: &'static str = P::TargetChain::NAME; + + type Hash = HashOf; + type Number = BlockNumberOf; + type FinalityProof = SubstrateFinalityProof

; +} + +impl FinalitySyncPipeline for FinalitySyncPipelineAdapter

{ + type ConsensusLogReader = >::ConsensusLogReader; + type Header = SyncHeader>; +} + +/// Different ways of building `submit_finality_proof` calls. +pub trait SubmitFinalityProofCallBuilder { + /// Given source chain header, its finality proof and the current authority set id, build call + /// of `submit_finality_proof` function of bridge GRANDPA module at the target chain. + fn build_submit_finality_proof_call( + header: SyncHeader>, + proof: SubstrateFinalityProof

, + context: <

::FinalityEngine as Engine>::FinalityVerificationContext, + ) -> CallOf; +} + +/// Building `submit_finality_proof` call when you have direct access to the target +/// chain runtime. +pub struct DirectSubmitGrandpaFinalityProofCallBuilder { + _phantom: PhantomData<(P, R, I)>, +} + +impl SubmitFinalityProofCallBuilder

+ for DirectSubmitGrandpaFinalityProofCallBuilder +where + P: SubstrateFinalitySyncPipeline, + R: BridgeGrandpaConfig, + I: 'static, + R::BridgedChain: bp_runtime::Chain

>, + CallOf: From>, + P::FinalityEngine: Engine< + P::SourceChain, + FinalityProof = GrandpaJustification>, + FinalityVerificationContext = JustificationVerificationContext, + >, +{ + fn build_submit_finality_proof_call( + header: SyncHeader>, + proof: GrandpaJustification>, + _context: JustificationVerificationContext, + ) -> CallOf { + BridgeGrandpaCall::::submit_finality_proof { + finality_target: Box::new(header.into_inner()), + justification: proof, + } + .into() + } +} + +/// Macro that generates `SubmitFinalityProofCallBuilder` implementation for the case when +/// you only have an access to the mocked version of target chain runtime. In this case you +/// should provide "name" of the call variant for the bridge GRANDPA calls and the "name" of +/// the variant for the `submit_finality_proof` call within that first option. +#[rustfmt::skip] +#[macro_export] +macro_rules! generate_submit_finality_proof_call_builder { + ($pipeline:ident, $mocked_builder:ident, $bridge_grandpa:path, $submit_finality_proof:path) => { + pub struct $mocked_builder; + + impl $crate::finality::SubmitFinalityProofCallBuilder<$pipeline> + for $mocked_builder + { + fn build_submit_finality_proof_call( + header: relay_substrate_client::SyncHeader< + relay_substrate_client::HeaderOf< + <$pipeline as $crate::finality_base::SubstrateFinalityPipeline>::SourceChain + > + >, + proof: bp_header_chain::justification::GrandpaJustification< + relay_substrate_client::HeaderOf< + <$pipeline as $crate::finality_base::SubstrateFinalityPipeline>::SourceChain + > + >, + _context: bp_header_chain::justification::JustificationVerificationContext, + ) -> relay_substrate_client::CallOf< + <$pipeline as $crate::finality_base::SubstrateFinalityPipeline>::TargetChain + > { + bp_runtime::paste::item! { + $bridge_grandpa($submit_finality_proof { + finality_target: Box::new(header.into_inner()), + justification: proof + }) + } + } + } + }; +} + +/// Macro that generates `SubmitFinalityProofCallBuilder` implementation for the case when +/// you only have an access to the mocked version of target chain runtime. In this case you +/// should provide "name" of the call variant for the bridge GRANDPA calls and the "name" of +/// the variant for the `submit_finality_proof_ex` call within that first option. +#[rustfmt::skip] +#[macro_export] +macro_rules! generate_submit_finality_proof_ex_call_builder { + ($pipeline:ident, $mocked_builder:ident, $bridge_grandpa:path, $submit_finality_proof:path) => { + pub struct $mocked_builder; + + impl $crate::finality::SubmitFinalityProofCallBuilder<$pipeline> + for $mocked_builder + { + fn build_submit_finality_proof_call( + header: relay_substrate_client::SyncHeader< + relay_substrate_client::HeaderOf< + <$pipeline as $crate::finality_base::SubstrateFinalityPipeline>::SourceChain + > + >, + proof: bp_header_chain::justification::GrandpaJustification< + relay_substrate_client::HeaderOf< + <$pipeline as $crate::finality_base::SubstrateFinalityPipeline>::SourceChain + > + >, + context: bp_header_chain::justification::JustificationVerificationContext, + ) -> relay_substrate_client::CallOf< + <$pipeline as $crate::finality_base::SubstrateFinalityPipeline>::TargetChain + > { + bp_runtime::paste::item! { + $bridge_grandpa($submit_finality_proof { + finality_target: Box::new(header.into_inner()), + justification: proof, + current_set_id: context.authority_set_id + }) + } + } + } + }; +} + +/// Run Substrate-to-Substrate finality sync loop. +pub async fn run( + source_client: Client, + target_client: Client, + only_mandatory_headers: bool, + transaction_params: TransactionParams>, + metrics_params: MetricsParams, +) -> anyhow::Result<()> { + log::info!( + target: "bridge", + "Starting {} -> {} finality proof relay", + P::SourceChain::NAME, + P::TargetChain::NAME, + ); + + finality_relay::run( + SubstrateFinalitySource::

::new(source_client, None), + SubstrateFinalityTarget::

::new(target_client, transaction_params.clone()), + finality_relay::FinalitySyncParams { + tick: std::cmp::max( + P::SourceChain::AVERAGE_BLOCK_INTERVAL, + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + ), + recent_finality_proofs_limit: RECENT_FINALITY_PROOFS_LIMIT, + stall_timeout: transaction_stall_timeout( + transaction_params.mortality, + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + relay_utils::STALL_TIMEOUT, + ), + only_mandatory_headers, + }, + metrics_params, + futures::future::pending(), + ) + .await + .map_err(|e| anyhow::format_err!("{}", e)) +} diff --git a/bridges/relays/lib-substrate-relay/src/finality/source.rs b/bridges/relays/lib-substrate-relay/src/finality/source.rs new file mode 100644 index 0000000000000000000000000000000000000000..c94af6108957a0d2d4b0b4079220be9c11a5a470 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/finality/source.rs @@ -0,0 +1,259 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Default generic implementation of finality source for basic Substrate client. + +use crate::{ + finality::{FinalitySyncPipelineAdapter, SubstrateFinalitySyncPipeline}, + finality_base::{ + engine::Engine, finality_proofs, SubstrateFinalityProof, SubstrateFinalityProofsStream, + }, +}; + +use async_std::sync::{Arc, Mutex}; +use async_trait::async_trait; +use bp_header_chain::FinalityProof; +use codec::Decode; +use finality_relay::{SourceClient, SourceClientBase}; +use futures::{ + select, + stream::{try_unfold, Stream, StreamExt, TryStreamExt}, +}; +use num_traits::One; +use relay_substrate_client::{BlockNumberOf, BlockWithJustification, Client, Error, HeaderOf}; +use relay_utils::{relay_loop::Client as RelayClient, UniqueSaturatedInto}; + +/// Shared updatable reference to the maximal header number that we want to sync from the source. +pub type RequiredHeaderNumberRef = Arc::BlockNumber>>; + +/// Substrate node as finality source. +pub struct SubstrateFinalitySource { + client: Client, + maximal_header_number: Option>, +} + +impl SubstrateFinalitySource

{ + /// Create new headers source using given client. + pub fn new( + client: Client, + maximal_header_number: Option>, + ) -> Self { + SubstrateFinalitySource { client, maximal_header_number } + } + + /// Returns reference to the underlying RPC client. + pub fn client(&self) -> &Client { + &self.client + } + + /// Returns best finalized block number. + pub async fn on_chain_best_finalized_block_number( + &self, + ) -> Result, Error> { + // we **CAN** continue to relay finality proofs if source node is out of sync, because + // target node may be missing proofs that are already available at the source + self.client.best_finalized_header_number().await + } + + /// Return header and its justification of the given block or its descendant that + /// has a GRANDPA justification. + /// + /// This method is optimized for cases when `block_number` is close to the best finalized + /// chain block. + pub async fn prove_block_finality( + &self, + block_number: BlockNumberOf, + ) -> Result< + (relay_substrate_client::SyncHeader>, SubstrateFinalityProof

), + Error, + > { + // first, subscribe to proofs + let next_persistent_proof = + self.persistent_proofs_stream(block_number + One::one()).await?.fuse(); + let next_ephemeral_proof = self.ephemeral_proofs_stream(block_number).await?.fuse(); + + // in perfect world we'll need to return justfication for the requested `block_number` + let (header, maybe_proof) = self.header_and_finality_proof(block_number).await?; + if let Some(proof) = maybe_proof { + return Ok((header, proof)) + } + + // otherwise we don't care which header to return, so let's select first + futures::pin_mut!(next_persistent_proof, next_ephemeral_proof); + loop { + select! { + maybe_header_and_proof = next_persistent_proof.next() => match maybe_header_and_proof { + Some(header_and_proof) => return header_and_proof, + None => continue, + }, + maybe_header_and_proof = next_ephemeral_proof.next() => match maybe_header_and_proof { + Some(header_and_proof) => return header_and_proof, + None => continue, + }, + complete => return Err(Error::FinalityProofNotFound(block_number.unique_saturated_into())) + } + } + } + + /// Returns stream of headers and their persistent proofs, starting from given block. + async fn persistent_proofs_stream( + &self, + block_number: BlockNumberOf, + ) -> Result< + impl Stream< + Item = Result< + ( + relay_substrate_client::SyncHeader>, + SubstrateFinalityProof

, + ), + Error, + >, + >, + Error, + > { + let client = self.client.clone(); + let best_finalized_block_number = client.best_finalized_header_number().await?; + Ok(try_unfold((client, block_number), move |(client, current_block_number)| async move { + // if we've passed the `best_finalized_block_number`, we no longer need persistent + // justifications + if current_block_number > best_finalized_block_number { + return Ok(None) + } + + let (header, maybe_proof) = + header_and_finality_proof::

(&client, current_block_number).await?; + let next_block_number = current_block_number + One::one(); + let next_state = (client, next_block_number); + + Ok(Some((maybe_proof.map(|proof| (header, proof)), next_state))) + }) + .try_filter_map(|maybe_result| async { Ok(maybe_result) })) + } + + /// Returns stream of headers and their ephemeral proofs, starting from given block. + async fn ephemeral_proofs_stream( + &self, + block_number: BlockNumberOf, + ) -> Result< + impl Stream< + Item = Result< + ( + relay_substrate_client::SyncHeader>, + SubstrateFinalityProof

, + ), + Error, + >, + >, + Error, + > { + let client = self.client.clone(); + Ok(self.finality_proofs().await?.map(Ok).try_filter_map(move |proof| { + let client = client.clone(); + async move { + if proof.target_header_number() < block_number { + return Ok(None) + } + + let header = client.header_by_number(proof.target_header_number()).await?; + Ok(Some((header.into(), proof))) + } + })) + } +} + +impl Clone for SubstrateFinalitySource

{ + fn clone(&self) -> Self { + SubstrateFinalitySource { + client: self.client.clone(), + maximal_header_number: self.maximal_header_number.clone(), + } + } +} + +#[async_trait] +impl RelayClient for SubstrateFinalitySource

{ + type Error = Error; + + async fn reconnect(&mut self) -> Result<(), Error> { + self.client.reconnect().await + } +} + +#[async_trait] +impl SourceClientBase> + for SubstrateFinalitySource

+{ + type FinalityProofsStream = SubstrateFinalityProofsStream

; + + async fn finality_proofs(&self) -> Result { + finality_proofs::

(&self.client).await + } +} + +#[async_trait] +impl SourceClient> + for SubstrateFinalitySource

+{ + async fn best_finalized_block_number(&self) -> Result, Error> { + let mut finalized_header_number = self.on_chain_best_finalized_block_number().await?; + // never return block number larger than requested. This way we'll never sync headers + // past `maximal_header_number` + if let Some(ref maximal_header_number) = self.maximal_header_number { + let maximal_header_number = *maximal_header_number.lock().await; + if finalized_header_number > maximal_header_number { + finalized_header_number = maximal_header_number; + } + } + Ok(finalized_header_number) + } + + async fn header_and_finality_proof( + &self, + number: BlockNumberOf, + ) -> Result< + ( + relay_substrate_client::SyncHeader>, + Option>, + ), + Error, + > { + header_and_finality_proof::

(&self.client, number).await + } +} + +async fn header_and_finality_proof( + client: &Client, + number: BlockNumberOf, +) -> Result< + ( + relay_substrate_client::SyncHeader>, + Option>, + ), + Error, +> { + let header_hash = client.block_hash_by_number(number).await?; + let signed_block = client.get_block(Some(header_hash)).await?; + + let justification = signed_block + .justification(P::FinalityEngine::ID) + .map(|raw_justification| { + SubstrateFinalityProof::

::decode(&mut raw_justification.as_slice()) + }) + .transpose() + .map_err(Error::ResponseParseFailed)?; + + Ok((signed_block.header().into(), justification)) +} diff --git a/bridges/relays/lib-substrate-relay/src/finality/target.rs b/bridges/relays/lib-substrate-relay/src/finality/target.rs new file mode 100644 index 0000000000000000000000000000000000000000..18464d523f4f6cf4c9c165af82f6b7c2c2504070 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/finality/target.rs @@ -0,0 +1,130 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Substrate client as Substrate finality proof target. + +use crate::{ + finality::{ + FinalitySyncPipelineAdapter, SubmitFinalityProofCallBuilder, SubstrateFinalitySyncPipeline, + }, + finality_base::{best_synced_header_id, engine::Engine, SubstrateFinalityProof}, + TransactionParams, +}; + +use async_trait::async_trait; +use finality_relay::TargetClient; +use relay_substrate_client::{ + AccountKeyPairOf, Client, Error, HeaderIdOf, HeaderOf, SyncHeader, TransactionEra, + TransactionTracker, UnsignedTransaction, +}; +use relay_utils::relay_loop::Client as RelayClient; +use sp_runtime::traits::Header; + +/// Substrate client as Substrate finality target. +pub struct SubstrateFinalityTarget { + client: Client, + transaction_params: TransactionParams>, +} + +impl SubstrateFinalityTarget

{ + /// Create new Substrate headers target. + pub fn new( + client: Client, + transaction_params: TransactionParams>, + ) -> Self { + SubstrateFinalityTarget { client, transaction_params } + } + + /// Ensure that the bridge pallet at target chain is active. + pub async fn ensure_pallet_active(&self) -> Result<(), Error> { + let is_halted = P::FinalityEngine::is_halted(&self.client).await?; + if is_halted { + return Err(Error::BridgePalletIsHalted) + } + + let is_initialized = P::FinalityEngine::is_initialized(&self.client).await?; + if !is_initialized { + return Err(Error::BridgePalletIsNotInitialized) + } + + Ok(()) + } +} + +impl Clone for SubstrateFinalityTarget

{ + fn clone(&self) -> Self { + SubstrateFinalityTarget { + client: self.client.clone(), + transaction_params: self.transaction_params.clone(), + } + } +} + +#[async_trait] +impl RelayClient for SubstrateFinalityTarget

{ + type Error = Error; + + async fn reconnect(&mut self) -> Result<(), Error> { + self.client.reconnect().await + } +} + +#[async_trait] +impl TargetClient> + for SubstrateFinalityTarget

+{ + type TransactionTracker = TransactionTracker>; + + async fn best_finalized_source_block_id(&self) -> Result, Error> { + // we can't continue to relay finality if target node is out of sync, because + // it may have already received (some of) headers that we're going to relay + self.client.ensure_synced().await?; + // we can't relay finality if bridge pallet at target chain is halted + self.ensure_pallet_active().await?; + + Ok(best_synced_header_id::( + &self.client, + self.client.best_header().await?.hash(), + ) + .await? + .ok_or(Error::BridgePalletIsNotInitialized)?) + } + + async fn submit_finality_proof( + &self, + header: SyncHeader>, + mut proof: SubstrateFinalityProof

, + ) -> Result { + // verify and runtime module at target chain may require optimized finality proof + let context = + P::FinalityEngine::verify_and_optimize_proof(&self.client, &header, &mut proof).await?; + + // now we may submit optimized finality proof + let mortality = self.transaction_params.mortality; + let call = P::SubmitFinalityProofCallBuilder::build_submit_finality_proof_call( + header, proof, context, + ); + self.client + .submit_and_watch_signed_extrinsic( + &self.transaction_params.signer, + move |best_block_id, transaction_nonce| { + Ok(UnsignedTransaction::new(call.into(), transaction_nonce) + .era(TransactionEra::new(best_block_id, mortality))) + }, + ) + .await + } +} diff --git a/bridges/relays/lib-substrate-relay/src/finality_base/engine.rs b/bridges/relays/lib-substrate-relay/src/finality_base/engine.rs new file mode 100644 index 0000000000000000000000000000000000000000..e517b0fd9b9abd50d6445e7222ef24ed946554bf --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/finality_base/engine.rs @@ -0,0 +1,464 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Support of different finality engines, available in Substrate. + +use crate::error::Error; +use async_trait::async_trait; +use bp_header_chain::{ + justification::{ + verify_and_optimize_justification, GrandpaEquivocationsFinder, GrandpaJustification, + JustificationVerificationContext, + }, + max_expected_submit_finality_proof_arguments_size, AuthoritySet, ConsensusLogReader, + FinalityProof, FindEquivocations, GrandpaConsensusLogReader, HeaderFinalityInfo, + HeaderGrandpaInfo, StoredHeaderGrandpaInfo, +}; +use bp_runtime::{BasicOperatingMode, HeaderIdProvider, OperatingMode}; +use codec::{Decode, Encode}; +use num_traits::{One, Zero}; +use relay_substrate_client::{ + BlockNumberOf, Chain, ChainWithGrandpa, Client, Error as SubstrateError, HashOf, HeaderOf, + Subscription, SubstrateFinalityClient, SubstrateGrandpaFinalityClient, +}; +use sp_consensus_grandpa::{AuthorityList as GrandpaAuthoritiesSet, GRANDPA_ENGINE_ID}; +use sp_core::{storage::StorageKey, Bytes}; +use sp_runtime::{scale_info::TypeInfo, traits::Header, ConsensusEngineId, SaturatedConversion}; +use std::{fmt::Debug, marker::PhantomData}; + +/// Result of checking maximal expected call size. +pub enum MaxExpectedCallSizeCheck { + /// Size is ok and call will be refunded. + Ok, + /// The call size exceeds the maximal expected and relayer will only get partial refund. + Exceeds { + /// Actual call size. + call_size: u32, + /// Maximal expected call size. + max_call_size: u32, + }, +} + +/// Finality engine, used by the Substrate chain. +#[async_trait] +pub trait Engine: Send { + /// Unique consensus engine identifier. + const ID: ConsensusEngineId; + /// A reader that can extract the consensus log from the header digest and interpret it. + type ConsensusLogReader: ConsensusLogReader; + /// Type of Finality RPC client used by this engine. + type FinalityClient: SubstrateFinalityClient; + /// Type of finality proofs, used by consensus engine. + type FinalityProof: FinalityProof, BlockNumberOf> + Decode + Encode; + /// The context needed for verifying finality proofs. + type FinalityVerificationContext: Debug + Send; + /// The type of the equivocation proof used by the consensus engine. + type EquivocationProof: Clone + Debug + Send + Sync; + /// The equivocations finder. + type EquivocationsFinder: FindEquivocations< + Self::FinalityProof, + Self::FinalityVerificationContext, + Self::EquivocationProof, + >; + /// The type of the key owner proof used by the consensus engine. + type KeyOwnerProof: Send; + /// Type of bridge pallet initialization data. + type InitializationData: Debug + Send + Sync + 'static; + /// Type of bridge pallet operating mode. + type OperatingMode: OperatingMode + 'static; + + /// Returns storage at the bridged (target) chain that corresponds to some value that is + /// missing from the storage until bridge pallet is initialized. + /// + /// Note that we don't care about type of the value - just if it present or not. + fn is_initialized_key() -> StorageKey; + + /// Returns `Ok(true)` if finality pallet at the bridged chain has already been initialized. + async fn is_initialized( + target_client: &Client, + ) -> Result { + Ok(target_client + .raw_storage_value(Self::is_initialized_key(), None) + .await? + .is_some()) + } + + /// Returns storage key at the bridged (target) chain that corresponds to the variable + /// that holds the operating mode of the pallet. + fn pallet_operating_mode_key() -> StorageKey; + + /// Returns `Ok(true)` if finality pallet at the bridged chain is halted. + async fn is_halted( + target_client: &Client, + ) -> Result { + Ok(target_client + .storage_value::(Self::pallet_operating_mode_key(), None) + .await? + .map(|operating_mode| operating_mode.is_halted()) + .unwrap_or(false)) + } + + /// A method to subscribe to encoded finality proofs, given source client. + async fn source_finality_proofs( + source_client: &Client, + ) -> Result, SubstrateError> { + source_client.subscribe_finality_justifications::().await + } + + /// Verify and optimize finality proof before sending it to the target node. + /// + /// Apart from optimization, we expect this method to perform all required checks + /// that the `header` and `proof` are valid at the current state of the target chain. + async fn verify_and_optimize_proof( + target_client: &Client, + header: &C::Header, + proof: &mut Self::FinalityProof, + ) -> Result; + + /// Checks whether the given `header` and its finality `proof` fit the maximal expected + /// call size limit. If result is `MaxExpectedCallSizeCheck::Exceeds { .. }`, this + /// submission won't be fully refunded and relayer will spend its own funds on that. + fn check_max_expected_call_size( + header: &C::Header, + proof: &Self::FinalityProof, + ) -> MaxExpectedCallSizeCheck; + + /// Prepare initialization data for the finality bridge pallet. + async fn prepare_initialization_data( + client: Client, + ) -> Result, BlockNumberOf>>; + + /// Get the context needed for validating a finality proof. + async fn finality_verification_context( + target_client: &Client, + at: HashOf, + ) -> Result; + + /// Returns the finality info associated to the source headers synced with the target + /// at the provided block. + async fn synced_headers_finality_info( + target_client: &Client, + at: TargetChain::Hash, + ) -> Result< + Vec>, + SubstrateError, + >; + + /// Generate key ownership proof for the provided equivocation. + async fn generate_source_key_ownership_proof( + source_client: &Client, + at: C::Hash, + equivocation: &Self::EquivocationProof, + ) -> Result; +} + +/// GRANDPA finality engine. +pub struct Grandpa(PhantomData); + +impl Grandpa { + /// Read header by hash from the source client. + async fn source_header( + source_client: &Client, + header_hash: C::Hash, + ) -> Result, BlockNumberOf>> { + source_client + .header_by_hash(header_hash) + .await + .map_err(|err| Error::RetrieveHeader(C::NAME, header_hash, err)) + } + + /// Read GRANDPA authorities set at given header. + async fn source_authorities_set( + source_client: &Client, + header_hash: C::Hash, + ) -> Result, BlockNumberOf>> { + let raw_authorities_set = source_client + .grandpa_authorities_set(header_hash) + .await + .map_err(|err| Error::RetrieveAuthorities(C::NAME, header_hash, err))?; + GrandpaAuthoritiesSet::decode(&mut &raw_authorities_set[..]) + .map_err(|err| Error::DecodeAuthorities(C::NAME, header_hash, err)) + } +} + +#[async_trait] +impl Engine for Grandpa { + const ID: ConsensusEngineId = GRANDPA_ENGINE_ID; + type ConsensusLogReader = GrandpaConsensusLogReader<::Number>; + type FinalityClient = SubstrateGrandpaFinalityClient; + type FinalityProof = GrandpaJustification>; + type FinalityVerificationContext = JustificationVerificationContext; + type EquivocationProof = sp_consensus_grandpa::EquivocationProof, BlockNumberOf>; + type EquivocationsFinder = GrandpaEquivocationsFinder; + type KeyOwnerProof = C::KeyOwnerProof; + type InitializationData = bp_header_chain::InitializationData; + type OperatingMode = BasicOperatingMode; + + fn is_initialized_key() -> StorageKey { + bp_header_chain::storage_keys::best_finalized_key(C::WITH_CHAIN_GRANDPA_PALLET_NAME) + } + + fn pallet_operating_mode_key() -> StorageKey { + bp_header_chain::storage_keys::pallet_operating_mode_key(C::WITH_CHAIN_GRANDPA_PALLET_NAME) + } + + async fn verify_and_optimize_proof( + target_client: &Client, + header: &C::Header, + proof: &mut Self::FinalityProof, + ) -> Result { + let verification_context = Grandpa::::finality_verification_context( + target_client, + target_client.best_header().await?.hash(), + ) + .await?; + // we're risking with race here - we have decided to submit justification some time ago and + // actual authorities set (which we have read now) may have changed, so this + // `optimize_justification` may fail. But if target chain is configured properly, it'll fail + // anyway, after we submit transaction and failing earlier is better. So - it is fine + verify_and_optimize_justification( + (header.hash(), *header.number()), + &verification_context, + proof, + ) + .map(|_| verification_context) + .map_err(|e| { + SubstrateError::Custom(format!( + "Failed to optimize {} GRANDPA jutification for header {:?}: {:?}", + C::NAME, + header.id(), + e, + )) + }) + } + + fn check_max_expected_call_size( + header: &C::Header, + proof: &Self::FinalityProof, + ) -> MaxExpectedCallSizeCheck { + let is_mandatory = Self::ConsensusLogReader::schedules_authorities_change(header.digest()); + let call_size: u32 = + header.encoded_size().saturating_add(proof.encoded_size()).saturated_into(); + let max_call_size = max_expected_submit_finality_proof_arguments_size::( + is_mandatory, + proof.commit.precommits.len().saturated_into(), + ); + if call_size > max_call_size { + MaxExpectedCallSizeCheck::Exceeds { call_size, max_call_size } + } else { + MaxExpectedCallSizeCheck::Ok + } + } + + /// Prepare initialization data for the GRANDPA verifier pallet. + async fn prepare_initialization_data( + source_client: Client, + ) -> Result, BlockNumberOf>> { + // In ideal world we just need to get best finalized header and then to read GRANDPA + // authorities set (`pallet_grandpa::CurrentSetId` + `GrandpaApi::grandpa_authorities()`) at + // this header. + // + // But now there are problems with this approach - `CurrentSetId` may return invalid value. + // So here we're waiting for the next justification, read the authorities set and then try + // to figure out the set id with bruteforce. + let justifications = Self::source_finality_proofs(&source_client) + .await + .map_err(|err| Error::Subscribe(C::NAME, err))?; + // Read next justification - the header that it finalizes will be used as initial header. + let justification = justifications + .next() + .await + .map_err(|e| Error::ReadJustification(C::NAME, e)) + .and_then(|justification| { + justification.ok_or(Error::ReadJustificationStreamEnded(C::NAME)) + })?; + + // Read initial header. + let justification: GrandpaJustification = + Decode::decode(&mut &justification.0[..]) + .map_err(|err| Error::DecodeJustification(C::NAME, err))?; + + let (initial_header_hash, initial_header_number) = + (justification.commit.target_hash, justification.commit.target_number); + + let initial_header = Self::source_header(&source_client, initial_header_hash).await?; + log::trace!(target: "bridge", "Selected {} initial header: {}/{}", + C::NAME, + initial_header_number, + initial_header_hash, + ); + + // Read GRANDPA authorities set at initial header. + let initial_authorities_set = + Self::source_authorities_set(&source_client, initial_header_hash).await?; + log::trace!(target: "bridge", "Selected {} initial authorities set: {:?}", + C::NAME, + initial_authorities_set, + ); + + // If initial header changes the GRANDPA authorities set, then we need previous authorities + // to verify justification. + let mut authorities_for_verification = initial_authorities_set.clone(); + let scheduled_change = GrandpaConsensusLogReader::>::find_scheduled_change( + initial_header.digest(), + ); + assert!( + scheduled_change.as_ref().map(|c| c.delay.is_zero()).unwrap_or(true), + "GRANDPA authorities change at {} scheduled to happen in {:?} blocks. We expect\ + regular change to have zero delay", + initial_header_hash, + scheduled_change.as_ref().map(|c| c.delay), + ); + let schedules_change = scheduled_change.is_some(); + if schedules_change { + authorities_for_verification = + Self::source_authorities_set(&source_client, *initial_header.parent_hash()).await?; + log::trace!( + target: "bridge", + "Selected {} header is scheduling GRANDPA authorities set changes. Using previous set: {:?}", + C::NAME, + authorities_for_verification, + ); + } + + // Now let's try to guess authorities set id by verifying justification. + let mut initial_authorities_set_id = 0; + let mut min_possible_block_number = C::BlockNumber::zero(); + loop { + log::trace!( + target: "bridge", "Trying {} GRANDPA authorities set id: {}", + C::NAME, + initial_authorities_set_id, + ); + + let is_valid_set_id = verify_and_optimize_justification( + (initial_header_hash, initial_header_number), + &AuthoritySet { + authorities: authorities_for_verification.clone(), + set_id: initial_authorities_set_id, + } + .try_into() + .map_err(|_| { + Error::ReadInvalidAuthorities(C::NAME, authorities_for_verification.clone()) + })?, + &mut justification.clone(), + ) + .is_ok(); + + if is_valid_set_id { + break + } + + initial_authorities_set_id += 1; + min_possible_block_number += One::one(); + if min_possible_block_number > initial_header_number { + // there can't be more authorities set changes than headers => if we have reached + // `initial_block_number` and still have not found correct value of + // `initial_authorities_set_id`, then something else is broken => fail + return Err(Error::GuessInitialAuthorities(C::NAME, initial_header_number)) + } + } + + Ok(bp_header_chain::InitializationData { + header: Box::new(initial_header), + authority_list: initial_authorities_set, + set_id: if schedules_change { + initial_authorities_set_id + 1 + } else { + initial_authorities_set_id + }, + operating_mode: BasicOperatingMode::Normal, + }) + } + + async fn finality_verification_context( + target_client: &Client, + at: HashOf, + ) -> Result { + let current_authority_set_key = bp_header_chain::storage_keys::current_authority_set_key( + C::WITH_CHAIN_GRANDPA_PALLET_NAME, + ); + let authority_set: AuthoritySet = target_client + .storage_value(current_authority_set_key, Some(at)) + .await? + .map(Ok) + .unwrap_or(Err(SubstrateError::Custom(format!( + "{} `CurrentAuthoritySet` is missing from the {} storage", + C::NAME, + TargetChain::NAME, + ))))?; + + authority_set.try_into().map_err(|e| { + SubstrateError::Custom(format!( + "{} `CurrentAuthoritySet` from the {} storage is invalid: {e:?}", + C::NAME, + TargetChain::NAME, + )) + }) + } + + async fn synced_headers_finality_info( + target_client: &Client, + at: TargetChain::Hash, + ) -> Result>>, SubstrateError> { + let stored_headers_grandpa_info: Vec>> = target_client + .typed_state_call(C::SYNCED_HEADERS_GRANDPA_INFO_METHOD.to_string(), (), Some(at)) + .await?; + + let mut headers_grandpa_info = vec![]; + for stored_header_grandpa_info in stored_headers_grandpa_info { + headers_grandpa_info.push(stored_header_grandpa_info.try_into().map_err(|e| { + SubstrateError::Custom(format!( + "{} `AuthoritySet` synced to {} is invalid: {e:?} ", + C::NAME, + TargetChain::NAME, + )) + })?); + } + + Ok(headers_grandpa_info) + } + + async fn generate_source_key_ownership_proof( + source_client: &Client, + at: C::Hash, + equivocation: &Self::EquivocationProof, + ) -> Result { + let set_id = equivocation.set_id(); + let offender = equivocation.offender(); + + let opaque_key_owner_proof = source_client + .generate_grandpa_key_ownership_proof(at, set_id, offender.clone()) + .await? + .ok_or(SubstrateError::Custom(format!( + "Couldn't get GRANDPA key ownership proof from {} at block: {at} \ + for offender: {:?}, set_id: {set_id} ", + C::NAME, + offender.clone(), + )))?; + + let key_owner_proof = + opaque_key_owner_proof.decode().ok_or(SubstrateError::Custom(format!( + "Couldn't decode GRANDPA `OpaqueKeyOwnnershipProof` from {} at block: {at} + to `{:?}` for offender: {:?}, set_id: {set_id}, at block: {at}", + C::NAME, + ::type_info().path, + offender.clone(), + )))?; + + Ok(key_owner_proof) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/finality_base/mod.rs b/bridges/relays/lib-substrate-relay/src/finality_base/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..825960b1b3ef2cc4f73b7565d6a2c8fe3e30fdd9 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/finality_base/mod.rs @@ -0,0 +1,107 @@ +// Copyright 2019-2023 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Types and functions intended to ease adding of new Substrate -> Substrate +//! finality pipelines. + +pub mod engine; + +use crate::finality_base::engine::Engine; + +use async_trait::async_trait; +use bp_runtime::{HashOf, HeaderIdOf}; +use codec::Decode; +use futures::{stream::unfold, Stream, StreamExt}; +use relay_substrate_client::{Chain, Client, Error}; +use std::{fmt::Debug, pin::Pin}; + +/// Substrate -> Substrate finality related pipeline. +#[async_trait] +pub trait SubstrateFinalityPipeline: 'static + Clone + Debug + Send + Sync { + /// Headers of this chain are submitted to the `TargetChain`. + type SourceChain: Chain; + /// Headers of the `SourceChain` are submitted to this chain. + type TargetChain: Chain; + /// Finality engine. + type FinalityEngine: Engine; +} + +/// Substrate finality proof. Specific to the used `FinalityEngine`. +pub type SubstrateFinalityProof

= <

::FinalityEngine as Engine< +

::SourceChain, +>>::FinalityProof; + +/// Substrate finality proofs stream. +pub type SubstrateFinalityProofsStream

= + Pin> + Send>>; + +/// Subscribe to new finality proofs. +pub async fn finality_proofs( + client: &Client, +) -> Result, Error> { + Ok(unfold( + P::FinalityEngine::source_finality_proofs(client).await?, + move |subscription| async move { + loop { + let log_error = |err| { + log::error!( + target: "bridge", + "Failed to read justification target from the {} justifications stream: {:?}", + P::SourceChain::NAME, + err, + ); + }; + + let next_justification = + subscription.next().await.map_err(|err| log_error(err.to_string())).ok()??; + + let decoded_justification = + >::FinalityProof::decode( + &mut &next_justification[..], + ); + + let justification = match decoded_justification { + Ok(j) => j, + Err(err) => { + log_error(format!("decode failed with error {err:?}")); + continue + }, + }; + + return Some((justification, subscription)) + } + }, + ) + .boxed()) +} + +/// Get the id of the best `SourceChain` header known to the `TargetChain` at the provided +/// target block using the exposed runtime API method. +/// +/// The runtime API method should be `FinalityApi::best_finalized()`. +pub async fn best_synced_header_id( + target_client: &Client, + at: HashOf, +) -> Result>, Error> +where + SourceChain: Chain, + TargetChain: Chain, +{ + // now let's read id of best finalized peer header at our best finalized block + target_client + .typed_state_call(SourceChain::BEST_FINALIZED_HEADER_ID_METHOD.into(), (), Some(at)) + .await +} diff --git a/bridges/relays/lib-substrate-relay/src/lib.rs b/bridges/relays/lib-substrate-relay/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..b90453ae0db2d60364a18f70d5be2f278544cd37 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/lib.rs @@ -0,0 +1,129 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! The library of substrate relay. contains some public codes to provide to substrate relay. + +#![warn(missing_docs)] + +use relay_substrate_client::{Chain, ChainWithUtilityPallet, UtilityPallet}; + +use std::marker::PhantomData; + +pub mod cli; +pub mod equivocation; +pub mod error; +pub mod finality; +pub mod finality_base; +pub mod messages_lane; +pub mod messages_metrics; +pub mod messages_source; +pub mod messages_target; +pub mod on_demand; +pub mod parachains; + +/// Transaction creation parameters. +#[derive(Clone, Debug)] +pub struct TransactionParams { + /// Transactions author. + pub signer: TS, + /// Transactions mortality. + pub mortality: Option, +} + +/// Tagged relay account, which balance may be exposed as metrics by the relay. +#[derive(Clone, Debug)] +pub enum TaggedAccount { + /// Account, used to sign message (also headers and parachains) relay transactions from given + /// bridged chain. + Messages { + /// Account id. + id: AccountId, + /// Name of the bridged chain, which sends us messages or delivery confirmations. + bridged_chain: String, + }, +} + +impl TaggedAccount { + /// Returns reference to the account id. + pub fn id(&self) -> &AccountId { + match *self { + TaggedAccount::Messages { ref id, .. } => id, + } + } + + /// Returns stringified account tag. + pub fn tag(&self) -> String { + match *self { + TaggedAccount::Messages { ref bridged_chain, .. } => { + format!("{bridged_chain}Messages") + }, + } + } +} + +/// Batch call builder. +pub trait BatchCallBuilder: Clone + Send + Sync { + /// Create batch call from given calls vector. + fn build_batch_call(&self, _calls: Vec) -> Call; +} + +/// Batch call builder constructor. +pub trait BatchCallBuilderConstructor: Clone { + /// Call builder, used by this constructor. + type CallBuilder: BatchCallBuilder; + /// Create a new instance of a batch call builder. + fn new_builder() -> Option; +} + +/// Batch call builder based on `pallet-utility`. +#[derive(Clone)] +pub struct UtilityPalletBatchCallBuilder(PhantomData); + +impl BatchCallBuilder for UtilityPalletBatchCallBuilder +where + C: ChainWithUtilityPallet, +{ + fn build_batch_call(&self, calls: Vec) -> C::Call { + C::UtilityPallet::build_batch_call(calls) + } +} + +impl BatchCallBuilderConstructor for UtilityPalletBatchCallBuilder +where + C: ChainWithUtilityPallet, +{ + type CallBuilder = Self; + + fn new_builder() -> Option { + Some(Self(Default::default())) + } +} + +// A `BatchCallBuilderConstructor` that always returns `None`. +impl BatchCallBuilderConstructor for () { + type CallBuilder = (); + fn new_builder() -> Option { + None + } +} + +// Dummy `BatchCallBuilder` implementation that must never be used outside +// of the `impl BatchCallBuilderConstructor for ()` code. +impl BatchCallBuilder for () { + fn build_batch_call(&self, _calls: Vec) -> Call { + unreachable!("never called, because ()::new_builder() returns None; qed") + } +} diff --git a/bridges/relays/lib-substrate-relay/src/messages_lane.rs b/bridges/relays/lib-substrate-relay/src/messages_lane.rs new file mode 100644 index 0000000000000000000000000000000000000000..abeab8c1402d677923e480f65e869c4496feaf8b --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/messages_lane.rs @@ -0,0 +1,587 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Tools for supporting message lanes between two Substrate-based chains. + +use crate::{ + messages_source::{SubstrateMessagesProof, SubstrateMessagesSource}, + messages_target::{SubstrateMessagesDeliveryProof, SubstrateMessagesTarget}, + on_demand::OnDemandRelay, + BatchCallBuilder, BatchCallBuilderConstructor, TransactionParams, +}; + +use async_std::sync::Arc; +use bp_messages::{ChainWithMessages as _, LaneId, MessageNonce}; +use bp_runtime::{ + AccountIdOf, Chain as _, EncodedOrDecodedCall, HeaderIdOf, TransactionEra, WeightExtraOps, +}; +use bridge_runtime_common::messages::{ + source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, +}; +use codec::Encode; +use frame_support::{dispatch::GetDispatchInfo, weights::Weight}; +use messages_relay::{message_lane::MessageLane, message_lane_loop::BatchTransaction}; +use pallet_bridge_messages::{Call as BridgeMessagesCall, Config as BridgeMessagesConfig}; +use relay_substrate_client::{ + transaction_stall_timeout, AccountKeyPairOf, BalanceOf, BlockNumberOf, CallOf, Chain, + ChainWithMessages, ChainWithTransactions, Client, Error as SubstrateError, HashOf, SignParam, + UnsignedTransaction, +}; +use relay_utils::{ + metrics::{GlobalMetrics, MetricsParams, StandaloneMetric}, + STALL_TIMEOUT, +}; +use sp_core::Pair; +use sp_runtime::traits::Zero; +use std::{convert::TryFrom, fmt::Debug, marker::PhantomData}; + +/// Substrate -> Substrate messages synchronization pipeline. +pub trait SubstrateMessageLane: 'static + Clone + Debug + Send + Sync { + /// Messages of this chain are relayed to the `TargetChain`. + type SourceChain: ChainWithMessages + ChainWithTransactions; + /// Messages from the `SourceChain` are dispatched on this chain. + type TargetChain: ChainWithMessages + ChainWithTransactions; + + /// How receive messages proof call is built? + type ReceiveMessagesProofCallBuilder: ReceiveMessagesProofCallBuilder; + /// How receive messages delivery proof call is built? + type ReceiveMessagesDeliveryProofCallBuilder: ReceiveMessagesDeliveryProofCallBuilder; + + /// How batch calls are built at the source chain? + type SourceBatchCallBuilder: BatchCallBuilderConstructor>; + /// How batch calls are built at the target chain? + type TargetBatchCallBuilder: BatchCallBuilderConstructor>; +} + +/// Adapter that allows all `SubstrateMessageLane` to act as `MessageLane`. +#[derive(Clone, Debug)] +pub struct MessageLaneAdapter { + _phantom: PhantomData

, +} + +impl MessageLane for MessageLaneAdapter

{ + const SOURCE_NAME: &'static str = P::SourceChain::NAME; + const TARGET_NAME: &'static str = P::TargetChain::NAME; + + type MessagesProof = SubstrateMessagesProof; + type MessagesReceivingProof = SubstrateMessagesDeliveryProof; + + type SourceChainBalance = BalanceOf; + type SourceHeaderNumber = BlockNumberOf; + type SourceHeaderHash = HashOf; + + type TargetHeaderNumber = BlockNumberOf; + type TargetHeaderHash = HashOf; +} + +/// Substrate <-> Substrate messages relay parameters. +pub struct MessagesRelayParams { + /// Messages source client. + pub source_client: Client, + /// Source transaction params. + pub source_transaction_params: TransactionParams>, + /// Messages target client. + pub target_client: Client, + /// Target transaction params. + pub target_transaction_params: TransactionParams>, + /// Optional on-demand source to target headers relay. + pub source_to_target_headers_relay: + Option>>, + /// Optional on-demand target to source headers relay. + pub target_to_source_headers_relay: + Option>>, + /// Identifier of lane that needs to be served. + pub lane_id: LaneId, + /// Messages relay limits. If not provided, the relay tries to determine it automatically, + /// using `TransactionPayment` pallet runtime API. + pub limits: Option, + /// Metrics parameters. + pub metrics_params: MetricsParams, +} + +/// Delivery transaction limits. +pub struct MessagesRelayLimits { + /// Maximal number of messages in the delivery transaction. + pub max_messages_in_single_batch: MessageNonce, + /// Maximal cumulative weight of messages in the delivery transaction. + pub max_messages_weight_in_single_batch: Weight, +} + +/// Batch transaction that brings headers + and messages delivery/receiving confirmations to the +/// source node. +#[derive(Clone)] +pub struct BatchProofTransaction>> { + builder: B::CallBuilder, + proved_header: HeaderIdOf, + prove_calls: Vec>, + + /// Using `fn() -> B` in order to avoid implementing `Send` for `B`. + _phantom: PhantomData B>, +} + +impl>> std::fmt::Debug + for BatchProofTransaction +{ + fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result { + fmt.debug_struct("BatchProofTransaction") + .field("proved_header", &self.proved_header) + .finish() + } +} + +impl>> + BatchProofTransaction +{ + /// Creates a new instance of `BatchProofTransaction`. + pub async fn new( + relay: Arc>, + block_num: BlockNumberOf, + ) -> Result, SubstrateError> { + if let Some(builder) = B::new_builder() { + let (proved_header, prove_calls) = relay.prove_header(block_num).await?; + return Ok(Some(Self { + builder, + proved_header, + prove_calls, + _phantom: Default::default(), + })) + } + + Ok(None) + } + + /// Return a batch call that includes the provided call. + pub fn append_call_and_build(mut self, call: CallOf) -> CallOf { + self.prove_calls.push(call); + self.builder.build_batch_call(self.prove_calls) + } +} + +impl>> + BatchTransaction> for BatchProofTransaction +{ + fn required_header_id(&self) -> HeaderIdOf { + self.proved_header + } +} + +/// Run Substrate-to-Substrate messages sync loop. +pub async fn run(params: MessagesRelayParams

) -> anyhow::Result<()> +where + AccountIdOf: From< as Pair>::Public>, + AccountIdOf: From< as Pair>::Public>, + BalanceOf: TryFrom>, +{ + // 2/3 is reserved for proofs and tx overhead + let max_messages_size_in_single_batch = P::TargetChain::max_extrinsic_size() / 3; + let limits = match params.limits { + Some(limits) => limits, + None => + select_delivery_transaction_limits_rpc::

( + ¶ms, + P::TargetChain::max_extrinsic_weight(), + P::SourceChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, + ) + .await?, + }; + let (max_messages_in_single_batch, max_messages_weight_in_single_batch) = + (limits.max_messages_in_single_batch / 2, limits.max_messages_weight_in_single_batch / 2); + + let source_client = params.source_client; + let target_client = params.target_client; + let relayer_id_at_source: AccountIdOf = + params.source_transaction_params.signer.public().into(); + + log::info!( + target: "bridge", + "Starting {} -> {} messages relay.\n\t\ + {} relayer account id: {:?}\n\t\ + Max messages in single transaction: {}\n\t\ + Max messages size in single transaction: {}\n\t\ + Max messages weight in single transaction: {}\n\t\ + Tx mortality: {:?} (~{}m)/{:?} (~{}m)", + P::SourceChain::NAME, + P::TargetChain::NAME, + P::SourceChain::NAME, + relayer_id_at_source, + max_messages_in_single_batch, + max_messages_size_in_single_batch, + max_messages_weight_in_single_batch, + params.source_transaction_params.mortality, + transaction_stall_timeout( + params.source_transaction_params.mortality, + P::SourceChain::AVERAGE_BLOCK_INTERVAL, + STALL_TIMEOUT, + ).as_secs_f64() / 60.0f64, + params.target_transaction_params.mortality, + transaction_stall_timeout( + params.target_transaction_params.mortality, + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + STALL_TIMEOUT, + ).as_secs_f64() / 60.0f64, + ); + + messages_relay::message_lane_loop::run( + messages_relay::message_lane_loop::Params { + lane: params.lane_id, + source_tick: P::SourceChain::AVERAGE_BLOCK_INTERVAL, + target_tick: P::TargetChain::AVERAGE_BLOCK_INTERVAL, + reconnect_delay: relay_utils::relay_loop::RECONNECT_DELAY, + delivery_params: messages_relay::message_lane_loop::MessageDeliveryParams { + max_unrewarded_relayer_entries_at_target: + P::SourceChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, + max_unconfirmed_nonces_at_target: + P::SourceChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, + max_messages_in_single_batch, + max_messages_weight_in_single_batch, + max_messages_size_in_single_batch, + }, + }, + SubstrateMessagesSource::

::new( + source_client.clone(), + target_client.clone(), + params.lane_id, + params.source_transaction_params, + params.target_to_source_headers_relay, + ), + SubstrateMessagesTarget::

::new( + target_client, + source_client, + params.lane_id, + relayer_id_at_source, + params.target_transaction_params, + params.source_to_target_headers_relay, + ), + { + GlobalMetrics::new()?.register_and_spawn(¶ms.metrics_params.registry)?; + params.metrics_params + }, + futures::future::pending(), + ) + .await + .map_err(Into::into) +} + +/// Different ways of building `receive_messages_proof` calls. +pub trait ReceiveMessagesProofCallBuilder { + /// Given messages proof, build call of `receive_messages_proof` function of bridge + /// messages module at the target chain. + fn build_receive_messages_proof_call( + relayer_id_at_source: AccountIdOf, + proof: SubstrateMessagesProof, + messages_count: u32, + dispatch_weight: Weight, + trace_call: bool, + ) -> CallOf; +} + +/// Building `receive_messages_proof` call when you have direct access to the target +/// chain runtime. +pub struct DirectReceiveMessagesProofCallBuilder { + _phantom: PhantomData<(P, R, I)>, +} + +impl ReceiveMessagesProofCallBuilder

for DirectReceiveMessagesProofCallBuilder +where + P: SubstrateMessageLane, + R: BridgeMessagesConfig>, + I: 'static, + R::SourceHeaderChain: bp_messages::target_chain::SourceHeaderChain< + MessagesProof = FromBridgedChainMessagesProof>, + >, + CallOf: From> + GetDispatchInfo, +{ + fn build_receive_messages_proof_call( + relayer_id_at_source: AccountIdOf, + proof: SubstrateMessagesProof, + messages_count: u32, + dispatch_weight: Weight, + trace_call: bool, + ) -> CallOf { + let call: CallOf = BridgeMessagesCall::::receive_messages_proof { + relayer_id_at_bridged_chain: relayer_id_at_source, + proof: proof.1, + messages_count, + dispatch_weight, + } + .into(); + if trace_call { + // this trace isn't super-accurate, because limits are for transactions and we + // have a call here, but it provides required information + log::trace!( + target: "bridge", + "Prepared {} -> {} messages delivery call. Weight: {}/{}, size: {}/{}", + P::SourceChain::NAME, + P::TargetChain::NAME, + call.get_dispatch_info().weight, + P::TargetChain::max_extrinsic_weight(), + call.encode().len(), + P::TargetChain::max_extrinsic_size(), + ); + } + call + } +} + +/// Macro that generates `ReceiveMessagesProofCallBuilder` implementation for the case when +/// you only have an access to the mocked version of target chain runtime. In this case you +/// should provide "name" of the call variant for the bridge messages calls and the "name" of +/// the variant for the `receive_messages_proof` call within that first option. +#[rustfmt::skip] +#[macro_export] +macro_rules! generate_receive_message_proof_call_builder { + ($pipeline:ident, $mocked_builder:ident, $bridge_messages:path, $receive_messages_proof:path) => { + pub struct $mocked_builder; + + impl $crate::messages_lane::ReceiveMessagesProofCallBuilder<$pipeline> + for $mocked_builder + { + fn build_receive_messages_proof_call( + relayer_id_at_source: relay_substrate_client::AccountIdOf< + <$pipeline as $crate::messages_lane::SubstrateMessageLane>::SourceChain + >, + proof: $crate::messages_source::SubstrateMessagesProof< + <$pipeline as $crate::messages_lane::SubstrateMessageLane>::SourceChain + >, + messages_count: u32, + dispatch_weight: bp_messages::Weight, + _trace_call: bool, + ) -> relay_substrate_client::CallOf< + <$pipeline as $crate::messages_lane::SubstrateMessageLane>::TargetChain + > { + bp_runtime::paste::item! { + $bridge_messages($receive_messages_proof { + relayer_id_at_bridged_chain: relayer_id_at_source, + proof: proof.1, + messages_count: messages_count, + dispatch_weight: dispatch_weight, + }) + } + } + } + }; +} + +/// Different ways of building `receive_messages_delivery_proof` calls. +pub trait ReceiveMessagesDeliveryProofCallBuilder { + /// Given messages delivery proof, build call of `receive_messages_delivery_proof` function of + /// bridge messages module at the source chain. + fn build_receive_messages_delivery_proof_call( + proof: SubstrateMessagesDeliveryProof, + trace_call: bool, + ) -> CallOf; +} + +/// Building `receive_messages_delivery_proof` call when you have direct access to the source +/// chain runtime. +pub struct DirectReceiveMessagesDeliveryProofCallBuilder { + _phantom: PhantomData<(P, R, I)>, +} + +impl ReceiveMessagesDeliveryProofCallBuilder

+ for DirectReceiveMessagesDeliveryProofCallBuilder +where + P: SubstrateMessageLane, + R: BridgeMessagesConfig, + I: 'static, + R::TargetHeaderChain: bp_messages::source_chain::TargetHeaderChain< + R::OutboundPayload, + R::AccountId, + MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof>, + >, + CallOf: From> + GetDispatchInfo, +{ + fn build_receive_messages_delivery_proof_call( + proof: SubstrateMessagesDeliveryProof, + trace_call: bool, + ) -> CallOf { + let call: CallOf = + BridgeMessagesCall::::receive_messages_delivery_proof { + proof: proof.1, + relayers_state: proof.0, + } + .into(); + if trace_call { + // this trace isn't super-accurate, because limits are for transactions and we + // have a call here, but it provides required information + log::trace!( + target: "bridge", + "Prepared {} -> {} delivery confirmation transaction. Weight: {}/{}, size: {}/{}", + P::TargetChain::NAME, + P::SourceChain::NAME, + call.get_dispatch_info().weight, + P::SourceChain::max_extrinsic_weight(), + call.encode().len(), + P::SourceChain::max_extrinsic_size(), + ); + } + call + } +} + +/// Macro that generates `ReceiveMessagesDeliveryProofCallBuilder` implementation for the case when +/// you only have an access to the mocked version of source chain runtime. In this case you +/// should provide "name" of the call variant for the bridge messages calls and the "name" of +/// the variant for the `receive_messages_delivery_proof` call within that first option. +#[rustfmt::skip] +#[macro_export] +macro_rules! generate_receive_message_delivery_proof_call_builder { + ($pipeline:ident, $mocked_builder:ident, $bridge_messages:path, $receive_messages_delivery_proof:path) => { + pub struct $mocked_builder; + + impl $crate::messages_lane::ReceiveMessagesDeliveryProofCallBuilder<$pipeline> + for $mocked_builder + { + fn build_receive_messages_delivery_proof_call( + proof: $crate::messages_target::SubstrateMessagesDeliveryProof< + <$pipeline as $crate::messages_lane::SubstrateMessageLane>::TargetChain + >, + _trace_call: bool, + ) -> relay_substrate_client::CallOf< + <$pipeline as $crate::messages_lane::SubstrateMessageLane>::SourceChain + > { + bp_runtime::paste::item! { + $bridge_messages($receive_messages_delivery_proof { + proof: proof.1, + relayers_state: proof.0 + }) + } + } + } + }; +} + +/// Returns maximal number of messages and their maximal cumulative dispatch weight. +async fn select_delivery_transaction_limits_rpc( + params: &MessagesRelayParams

, + max_extrinsic_weight: Weight, + max_unconfirmed_messages_at_inbound_lane: MessageNonce, +) -> anyhow::Result +where + AccountIdOf: From< as Pair>::Public>, +{ + // We may try to guess accurate value, based on maximal number of messages and per-message + // weight overhead, but the relay loop isn't using this info in a super-accurate way anyway. + // So just a rough guess: let's say 1/3 of max tx weight is for tx itself and the rest is + // for messages dispatch. + + // Another thing to keep in mind is that our runtimes (when this code was written) accept + // messages with dispatch weight <= max_extrinsic_weight/2. So we can't reserve less than + // that for dispatch. + + let weight_for_delivery_tx = max_extrinsic_weight / 3; + let weight_for_messages_dispatch = max_extrinsic_weight - weight_for_delivery_tx; + + // weight of empty message delivery with outbound lane state + let delivery_tx_with_zero_messages = dummy_messages_delivery_transaction::

(params, 0)?; + let delivery_tx_with_zero_messages_weight = params + .target_client + .extimate_extrinsic_weight(delivery_tx_with_zero_messages) + .await + .map_err(|e| { + anyhow::format_err!("Failed to estimate delivery extrinsic weight: {:?}", e) + })?; + + // weight of single message delivery with outbound lane state + let delivery_tx_with_one_message = dummy_messages_delivery_transaction::

(params, 1)?; + let delivery_tx_with_one_message_weight = params + .target_client + .extimate_extrinsic_weight(delivery_tx_with_one_message) + .await + .map_err(|e| { + anyhow::format_err!("Failed to estimate delivery extrinsic weight: {:?}", e) + })?; + + // message overhead is roughly `delivery_tx_with_one_message_weight - + // delivery_tx_with_zero_messages_weight` + let delivery_tx_weight_rest = weight_for_delivery_tx - delivery_tx_with_zero_messages_weight; + let delivery_tx_message_overhead = + delivery_tx_with_one_message_weight.saturating_sub(delivery_tx_with_zero_messages_weight); + + let max_number_of_messages = std::cmp::min( + delivery_tx_weight_rest + .min_components_checked_div(delivery_tx_message_overhead) + .unwrap_or(u64::MAX), + max_unconfirmed_messages_at_inbound_lane, + ); + + assert!( + max_number_of_messages > 0, + "Relay should fit at least one message in every delivery transaction", + ); + assert!( + weight_for_messages_dispatch.ref_time() >= max_extrinsic_weight.ref_time() / 2, + "Relay shall be able to deliver messages with dispatch weight = max_extrinsic_weight / 2", + ); + + Ok(MessagesRelayLimits { + max_messages_in_single_batch: max_number_of_messages, + max_messages_weight_in_single_batch: weight_for_messages_dispatch, + }) +} + +/// Returns dummy message delivery transaction with zero messages and `1kb` proof. +fn dummy_messages_delivery_transaction( + params: &MessagesRelayParams

, + messages: u32, +) -> anyhow::Result<::SignedTransaction> +where + AccountIdOf: From< as Pair>::Public>, +{ + // we don't care about any call values here, because all that the estimation RPC does + // is calls `GetDispatchInfo::get_dispatch_info` for the wrapped call. So we only are + // interested in values that affect call weight - e.g. number of messages and the + // storage proof size + + let dummy_messages_delivery_call = + P::ReceiveMessagesProofCallBuilder::build_receive_messages_proof_call( + params.source_transaction_params.signer.public().into(), + ( + Weight::zero(), + FromBridgedChainMessagesProof { + bridged_header_hash: Default::default(), + // we may use per-chain `EXTRA_STORAGE_PROOF_SIZE`, but since we don't need + // exact values, this global estimation is fine + storage_proof: vec![vec![ + 42u8; + pallet_bridge_messages::EXTRA_STORAGE_PROOF_SIZE + as usize + ]], + lane: Default::default(), + nonces_start: 1, + nonces_end: messages as u64, + }, + ), + messages, + Weight::zero(), + false, + ); + P::TargetChain::sign_transaction( + SignParam { + spec_version: 0, + transaction_version: 0, + genesis_hash: Default::default(), + signer: params.target_transaction_params.signer.clone(), + }, + UnsignedTransaction { + call: EncodedOrDecodedCall::Decoded(dummy_messages_delivery_call), + nonce: Zero::zero(), + tip: Zero::zero(), + era: TransactionEra::Immortal, + }, + ) + .map_err(Into::into) +} diff --git a/bridges/relays/lib-substrate-relay/src/messages_metrics.rs b/bridges/relays/lib-substrate-relay/src/messages_metrics.rs new file mode 100644 index 0000000000000000000000000000000000000000..27bf6186c3ba0d0db6552128574c8759d45d220c --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/messages_metrics.rs @@ -0,0 +1,190 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Tools for supporting message lanes between two Substrate-based chains. + +use crate::TaggedAccount; + +use bp_messages::LaneId; +use bp_relayers::{RewardsAccountOwner, RewardsAccountParams}; +use bp_runtime::StorageDoubleMapKeyProvider; +use codec::Decode; +use frame_system::AccountInfo; +use pallet_balances::AccountData; +use relay_substrate_client::{ + metrics::{FloatStorageValue, FloatStorageValueMetric}, + AccountIdOf, BalanceOf, Chain, ChainWithBalances, ChainWithMessages, Client, + Error as SubstrateError, NonceOf, +}; +use relay_utils::metrics::{MetricsParams, StandaloneMetric}; +use sp_core::storage::StorageData; +use sp_runtime::{FixedPointNumber, FixedU128}; +use std::{convert::TryFrom, fmt::Debug, marker::PhantomData}; + +/// Add relay accounts balance metrics. +pub async fn add_relay_balances_metrics( + client: Client, + metrics: &MetricsParams, + relay_accounts: &Vec>>, + lanes: &[LaneId], +) -> anyhow::Result<()> +where + BalanceOf: Into + std::fmt::Debug, +{ + if relay_accounts.is_empty() { + return Ok(()) + } + + // if `tokenDecimals` is missing from system properties, we'll be using + let token_decimals = client + .token_decimals() + .await? + .map(|token_decimals| { + log::info!(target: "bridge", "Read `tokenDecimals` for {}: {}", C::NAME, token_decimals); + token_decimals + }) + .unwrap_or_else(|| { + // turns out it is normal not to have this property - e.g. when polkadot binary is + // started using `polkadot-local` chain. Let's use minimal nominal here + log::info!(target: "bridge", "Using default (zero) `tokenDecimals` value for {}", C::NAME); + 0 + }); + let token_decimals = u32::try_from(token_decimals).map_err(|e| { + anyhow::format_err!( + "Token decimals value ({}) of {} doesn't fit into u32: {:?}", + token_decimals, + C::NAME, + e, + ) + })?; + + for account in relay_accounts { + let relay_account_balance_metric = FloatStorageValueMetric::new( + AccountBalanceFromAccountInfo:: { token_decimals, _phantom: Default::default() }, + client.clone(), + C::account_info_storage_key(account.id()), + format!("at_{}_relay_{}_balance", C::NAME, account.tag()), + format!("Balance of the {} relay account at the {}", account.tag(), C::NAME), + )?; + relay_account_balance_metric.register_and_spawn(&metrics.registry)?; + + if let Some(relayers_pallet_name) = BC::WITH_CHAIN_RELAYERS_PALLET_NAME { + for lane in lanes { + FloatStorageValueMetric::new( + AccountBalance:: { token_decimals, _phantom: Default::default() }, + client.clone(), + bp_relayers::RelayerRewardsKeyProvider::, BalanceOf>::final_key( + relayers_pallet_name, + account.id(), + &RewardsAccountParams::new(*lane, BC::ID, RewardsAccountOwner::ThisChain), + ), + format!("at_{}_relay_{}_reward_for_msgs_from_{}_on_lane_{}", C::NAME, account.tag(), BC::NAME, hex::encode(lane.as_ref())), + format!("Reward of the {} relay account at {} for delivering messages from {} on lane {:?}", account.tag(), C::NAME, BC::NAME, lane), + )?.register_and_spawn(&metrics.registry)?; + + FloatStorageValueMetric::new( + AccountBalance:: { token_decimals, _phantom: Default::default() }, + client.clone(), + bp_relayers::RelayerRewardsKeyProvider::, BalanceOf>::final_key( + relayers_pallet_name, + account.id(), + &RewardsAccountParams::new(*lane, BC::ID, RewardsAccountOwner::BridgedChain), + ), + format!("at_{}_relay_{}_reward_for_msgs_to_{}_on_lane_{}", C::NAME, account.tag(), BC::NAME, hex::encode(lane.as_ref())), + format!("Reward of the {} relay account at {} for delivering messages confirmations from {} on lane {:?}", account.tag(), C::NAME, BC::NAME, lane), + )?.register_and_spawn(&metrics.registry)?; + } + } + } + + Ok(()) +} + +/// Adapter for `FloatStorageValueMetric` to decode account free balance. +#[derive(Clone, Debug)] +struct AccountBalanceFromAccountInfo { + token_decimals: u32, + _phantom: PhantomData, +} + +impl FloatStorageValue for AccountBalanceFromAccountInfo +where + C: Chain, + BalanceOf: Into, +{ + type Value = FixedU128; + + fn decode( + &self, + maybe_raw_value: Option, + ) -> Result, SubstrateError> { + maybe_raw_value + .map(|raw_value| { + AccountInfo::, AccountData>>::decode(&mut &raw_value.0[..]) + .map_err(SubstrateError::ResponseParseFailed) + .map(|account_data| { + convert_to_token_balance(account_data.data.free.into(), self.token_decimals) + }) + }) + .transpose() + } +} + +/// Adapter for `FloatStorageValueMetric` to decode account free balance. +#[derive(Clone, Debug)] +struct AccountBalance { + token_decimals: u32, + _phantom: PhantomData, +} + +impl FloatStorageValue for AccountBalance +where + C: Chain, + BalanceOf: Into, +{ + type Value = FixedU128; + + fn decode( + &self, + maybe_raw_value: Option, + ) -> Result, SubstrateError> { + maybe_raw_value + .map(|raw_value| { + BalanceOf::::decode(&mut &raw_value.0[..]) + .map_err(SubstrateError::ResponseParseFailed) + .map(|balance| convert_to_token_balance(balance.into(), self.token_decimals)) + }) + .transpose() + } +} + +/// Convert from raw `u128` balance (nominated in smallest chain token units) to the float regular +/// tokens value. +fn convert_to_token_balance(balance: u128, token_decimals: u32) -> FixedU128 { + FixedU128::from_inner(balance.saturating_mul(FixedU128::DIV / 10u128.pow(token_decimals))) +} + +#[cfg(test)] +mod tests { + use super::*; + #[test] + fn token_decimals_used_properly() { + let plancks = 425_000_000_000; + let token_decimals = 10; + let dots = convert_to_token_balance(plancks, token_decimals); + assert_eq!(dots, FixedU128::saturating_from_rational(425, 10)); + } +} diff --git a/bridges/relays/lib-substrate-relay/src/messages_source.rs b/bridges/relays/lib-substrate-relay/src/messages_source.rs new file mode 100644 index 0000000000000000000000000000000000000000..49deff046f9ca0914846d19b18653f85b8cd8554 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/messages_source.rs @@ -0,0 +1,713 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Substrate client as Substrate messages source. The chain we connect to should have +//! runtime that implements `HeaderApi` to allow bridging with +//! `` chain. + +use crate::{ + finality_base::best_synced_header_id, + messages_lane::{ + BatchProofTransaction, MessageLaneAdapter, ReceiveMessagesDeliveryProofCallBuilder, + SubstrateMessageLane, + }, + on_demand::OnDemandRelay, + TransactionParams, +}; + +use async_std::sync::Arc; +use async_trait::async_trait; +use bp_messages::{ + storage_keys::{operating_mode_key, outbound_lane_data_key}, + ChainWithMessages as _, InboundMessageDetails, LaneId, MessageNonce, MessagePayload, + MessagesOperatingMode, OutboundLaneData, OutboundMessageDetails, +}; +use bp_runtime::{BasicOperatingMode, HeaderIdProvider}; +use bridge_runtime_common::messages::target::FromBridgedChainMessagesProof; +use codec::Encode; +use frame_support::weights::Weight; +use messages_relay::{ + message_lane::{MessageLane, SourceHeaderIdOf, TargetHeaderIdOf}, + message_lane_loop::{ + ClientState, MessageDetails, MessageDetailsMap, MessageProofParameters, SourceClient, + SourceClientState, + }, +}; +use num_traits::Zero; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, BalanceOf, Chain, ChainWithMessages, Client, + Error as SubstrateError, HashOf, HeaderIdOf, TransactionEra, TransactionTracker, + UnsignedTransaction, +}; +use relay_utils::relay_loop::Client as RelayClient; +use sp_core::Pair; +use std::ops::RangeInclusive; + +/// Intermediate message proof returned by the source Substrate node. Includes everything +/// required to submit to the target node: cumulative dispatch weight of bundled messages and +/// the proof itself. +pub type SubstrateMessagesProof = (Weight, FromBridgedChainMessagesProof>); +type MessagesToRefine<'a> = Vec<(MessagePayload, &'a mut OutboundMessageDetails)>; + +/// Substrate client as Substrate messages source. +pub struct SubstrateMessagesSource { + source_client: Client, + target_client: Client, + lane_id: LaneId, + transaction_params: TransactionParams>, + target_to_source_headers_relay: Option>>, +} + +impl SubstrateMessagesSource

{ + /// Create new Substrate headers source. + pub fn new( + source_client: Client, + target_client: Client, + lane_id: LaneId, + transaction_params: TransactionParams>, + target_to_source_headers_relay: Option< + Arc>, + >, + ) -> Self { + SubstrateMessagesSource { + source_client, + target_client, + lane_id, + transaction_params, + target_to_source_headers_relay, + } + } + + /// Read outbound lane state from the on-chain storage at given block. + async fn outbound_lane_data( + &self, + id: SourceHeaderIdOf>, + ) -> Result, SubstrateError> { + self.source_client + .storage_value( + outbound_lane_data_key( + P::TargetChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &self.lane_id, + ), + Some(id.1), + ) + .await + } + + /// Ensure that the messages pallet at source chain is active. + async fn ensure_pallet_active(&self) -> Result<(), SubstrateError> { + ensure_messages_pallet_active::(&self.source_client).await + } +} + +impl Clone for SubstrateMessagesSource

{ + fn clone(&self) -> Self { + Self { + source_client: self.source_client.clone(), + target_client: self.target_client.clone(), + lane_id: self.lane_id, + transaction_params: self.transaction_params.clone(), + target_to_source_headers_relay: self.target_to_source_headers_relay.clone(), + } + } +} + +#[async_trait] +impl RelayClient for SubstrateMessagesSource

{ + type Error = SubstrateError; + + async fn reconnect(&mut self) -> Result<(), SubstrateError> { + // since the client calls RPC methods on both sides, we need to reconnect both + self.source_client.reconnect().await?; + self.target_client.reconnect().await?; + + // call reconnect on on-demand headers relay, because we may use different chains there + // and the error that has lead to reconnect may have came from those other chains + // (see `require_target_header_on_source`) + // + // this may lead to multiple reconnects to the same node during the same call and it + // needs to be addressed in the future + // TODO: https://github.com/paritytech/parity-bridges-common/issues/1928 + if let Some(ref mut target_to_source_headers_relay) = self.target_to_source_headers_relay { + target_to_source_headers_relay.reconnect().await?; + } + + Ok(()) + } +} + +#[async_trait] +impl SourceClient> for SubstrateMessagesSource

+where + AccountIdOf: From< as Pair>::Public>, +{ + type BatchTransaction = + BatchProofTransaction; + type TransactionTracker = TransactionTracker>; + + async fn state(&self) -> Result>, SubstrateError> { + // we can't continue to deliver confirmations if source node is out of sync, because + // it may have already received confirmations that we're going to deliver + // + // we can't continue to deliver messages if target node is out of sync, because + // it may have already received (some of) messages that we're going to deliver + self.source_client.ensure_synced().await?; + self.target_client.ensure_synced().await?; + // we can't relay confirmations if messages pallet at source chain is halted + self.ensure_pallet_active().await?; + + read_client_state(&self.source_client, Some(&self.target_client)).await + } + + async fn latest_generated_nonce( + &self, + id: SourceHeaderIdOf>, + ) -> Result<(SourceHeaderIdOf>, MessageNonce), SubstrateError> { + // lane data missing from the storage is fine until first message is sent + let latest_generated_nonce = self + .outbound_lane_data(id) + .await? + .map(|data| data.latest_generated_nonce) + .unwrap_or(0); + Ok((id, latest_generated_nonce)) + } + + async fn latest_confirmed_received_nonce( + &self, + id: SourceHeaderIdOf>, + ) -> Result<(SourceHeaderIdOf>, MessageNonce), SubstrateError> { + // lane data missing from the storage is fine until first message is sent + let latest_received_nonce = self + .outbound_lane_data(id) + .await? + .map(|data| data.latest_received_nonce) + .unwrap_or(0); + Ok((id, latest_received_nonce)) + } + + async fn generated_message_details( + &self, + id: SourceHeaderIdOf>, + nonces: RangeInclusive, + ) -> Result>, SubstrateError> { + let mut out_msgs_details = self + .source_client + .typed_state_call::<_, Vec<_>>( + P::TargetChain::TO_CHAIN_MESSAGE_DETAILS_METHOD.into(), + (self.lane_id, *nonces.start(), *nonces.end()), + Some(id.1), + ) + .await?; + validate_out_msgs_details::(&out_msgs_details, nonces)?; + + // prepare arguments of the inbound message details call (if we need it) + let mut msgs_to_refine = vec![]; + for out_msg_details in out_msgs_details.iter_mut() { + // in our current strategy all messages are supposed to be paid at the target chain + + // for pay-at-target messages we may want to ask target chain for + // refined dispatch weight + let msg_key = bp_messages::storage_keys::message_key( + P::TargetChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &self.lane_id, + out_msg_details.nonce, + ); + let msg_payload: MessagePayload = + self.source_client.storage_value(msg_key, Some(id.1)).await?.ok_or_else(|| { + SubstrateError::Custom(format!( + "Message to {} {:?}/{} is missing from runtime the storage of {} at {:?}", + P::TargetChain::NAME, + self.lane_id, + out_msg_details.nonce, + P::SourceChain::NAME, + id, + )) + })?; + + msgs_to_refine.push((msg_payload, out_msg_details)); + } + + for mut msgs_to_refine_batch in + split_msgs_to_refine::(self.lane_id, msgs_to_refine)? + { + let in_msgs_details = self + .target_client + .typed_state_call::<_, Vec>( + P::SourceChain::FROM_CHAIN_MESSAGE_DETAILS_METHOD.into(), + (self.lane_id, &msgs_to_refine_batch), + None, + ) + .await?; + if in_msgs_details.len() != msgs_to_refine_batch.len() { + return Err(SubstrateError::Custom(format!( + "Call of {} at {} has returned {} entries instead of expected {}", + P::SourceChain::FROM_CHAIN_MESSAGE_DETAILS_METHOD, + P::TargetChain::NAME, + in_msgs_details.len(), + msgs_to_refine_batch.len(), + ))) + } + for ((_, out_msg_details), in_msg_details) in + msgs_to_refine_batch.iter_mut().zip(in_msgs_details) + { + log::trace!( + target: "bridge", + "Refined weight of {}->{} message {:?}/{}: at-source: {}, at-target: {}", + P::SourceChain::NAME, + P::TargetChain::NAME, + self.lane_id, + out_msg_details.nonce, + out_msg_details.dispatch_weight, + in_msg_details.dispatch_weight, + ); + out_msg_details.dispatch_weight = in_msg_details.dispatch_weight; + } + } + + let mut msgs_details_map = MessageDetailsMap::new(); + for out_msg_details in out_msgs_details { + msgs_details_map.insert( + out_msg_details.nonce, + MessageDetails { + dispatch_weight: out_msg_details.dispatch_weight, + size: out_msg_details.size as _, + reward: Zero::zero(), + }, + ); + } + + Ok(msgs_details_map) + } + + async fn prove_messages( + &self, + id: SourceHeaderIdOf>, + nonces: RangeInclusive, + proof_parameters: MessageProofParameters, + ) -> Result< + ( + SourceHeaderIdOf>, + RangeInclusive, + as MessageLane>::MessagesProof, + ), + SubstrateError, + > { + let mut storage_keys = + Vec::with_capacity(nonces.end().saturating_sub(*nonces.start()) as usize + 1); + let mut message_nonce = *nonces.start(); + while message_nonce <= *nonces.end() { + let message_key = bp_messages::storage_keys::message_key( + P::TargetChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &self.lane_id, + message_nonce, + ); + storage_keys.push(message_key); + message_nonce += 1; + } + if proof_parameters.outbound_state_proof_required { + storage_keys.push(bp_messages::storage_keys::outbound_lane_data_key( + P::TargetChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &self.lane_id, + )); + } + + let proof = self + .source_client + .prove_storage(storage_keys, id.1) + .await? + .into_iter_nodes() + .collect(); + let proof = FromBridgedChainMessagesProof { + bridged_header_hash: id.1, + storage_proof: proof, + lane: self.lane_id, + nonces_start: *nonces.start(), + nonces_end: *nonces.end(), + }; + Ok((id, nonces, (proof_parameters.dispatch_weight, proof))) + } + + async fn submit_messages_receiving_proof( + &self, + maybe_batch_tx: Option, + _generated_at_block: TargetHeaderIdOf>, + proof: as MessageLane>::MessagesReceivingProof, + ) -> Result { + let messages_proof_call = + P::ReceiveMessagesDeliveryProofCallBuilder::build_receive_messages_delivery_proof_call( + proof, + maybe_batch_tx.is_none(), + ); + let final_call = match maybe_batch_tx { + Some(batch_tx) => batch_tx.append_call_and_build(messages_proof_call), + None => messages_proof_call, + }; + + let transaction_params = self.transaction_params.clone(); + self.source_client + .submit_and_watch_signed_extrinsic( + &self.transaction_params.signer, + move |best_block_id, transaction_nonce| { + Ok(UnsignedTransaction::new(final_call.into(), transaction_nonce) + .era(TransactionEra::new(best_block_id, transaction_params.mortality))) + }, + ) + .await + } + + async fn require_target_header_on_source( + &self, + id: TargetHeaderIdOf>, + ) -> Result, SubstrateError> { + if let Some(ref target_to_source_headers_relay) = self.target_to_source_headers_relay { + if let Some(batch_tx) = + BatchProofTransaction::new(target_to_source_headers_relay.clone(), id.0).await? + { + return Ok(Some(batch_tx)) + } + + target_to_source_headers_relay.require_more_headers(id.0).await; + } + + Ok(None) + } +} + +/// Ensure that the messages pallet at source chain is active. +pub(crate) async fn ensure_messages_pallet_active( + client: &Client, +) -> Result<(), SubstrateError> +where + AtChain: ChainWithMessages, + WithChain: ChainWithMessages, +{ + let operating_mode = client + .storage_value(operating_mode_key(WithChain::WITH_CHAIN_MESSAGES_PALLET_NAME), None) + .await?; + let is_halted = + operating_mode == Some(MessagesOperatingMode::Basic(BasicOperatingMode::Halted)); + if is_halted { + Err(SubstrateError::BridgePalletIsHalted) + } else { + Ok(()) + } +} + +/// Read best blocks from given client. +/// +/// This function assumes that the chain that is followed by the `self_client` has +/// bridge GRANDPA pallet deployed and it provides `best_finalized_header_id_method_name` +/// runtime API to read the best finalized Bridged chain header. +/// +/// If `peer_client` is `None`, the value of `actual_best_finalized_peer_at_best_self` will +/// always match the `best_finalized_peer_at_best_self`. +pub async fn read_client_state( + self_client: &Client, + peer_client: Option<&Client>, +) -> Result, HeaderIdOf>, SubstrateError> +where + SelfChain: Chain, + PeerChain: Chain, +{ + // let's read our state first: we need best finalized header hash on **this** chain + let self_best_finalized_id = self_client.best_finalized_header().await?.id(); + // now let's read our best header on **this** chain + let self_best_id = self_client.best_header().await?.id(); + + // now let's read id of best finalized peer header at our best finalized block + let peer_on_self_best_finalized_id = + best_synced_header_id::(self_client, self_best_id.hash()).await?; + + // read actual header, matching the `peer_on_self_best_finalized_id` from the peer chain + let actual_peer_on_self_best_finalized_id = + match (peer_client, peer_on_self_best_finalized_id.as_ref()) { + (Some(peer_client), Some(peer_on_self_best_finalized_id)) => { + let actual_peer_on_self_best_finalized = + peer_client.header_by_number(peer_on_self_best_finalized_id.number()).await?; + Some(actual_peer_on_self_best_finalized.id()) + }, + _ => peer_on_self_best_finalized_id, + }; + + Ok(ClientState { + best_self: self_best_id, + best_finalized_self: self_best_finalized_id, + best_finalized_peer_at_best_self: peer_on_self_best_finalized_id, + actual_best_finalized_peer_at_best_self: actual_peer_on_self_best_finalized_id, + }) +} + +/// Reads best `PeerChain` header known to the `SelfChain` using provided runtime API method. +/// +/// Method is supposed to be the `FinalityApi::best_finalized()` method. +pub async fn best_finalized_peer_header_at_self( + self_client: &Client, + at_self_hash: HashOf, +) -> Result>, SubstrateError> +where + SelfChain: Chain, + PeerChain: Chain, +{ + // now let's read id of best finalized peer header at our best finalized block + self_client + .typed_state_call::<_, Option<_>>( + PeerChain::BEST_FINALIZED_HEADER_ID_METHOD.into(), + (), + Some(at_self_hash), + ) + .await +} + +fn validate_out_msgs_details( + out_msgs_details: &[OutboundMessageDetails], + nonces: RangeInclusive, +) -> Result<(), SubstrateError> { + let make_missing_nonce_error = |expected_nonce| { + Err(SubstrateError::Custom(format!( + "Missing nonce {expected_nonce} in message_details call result. Expected all nonces from {nonces:?}", + ))) + }; + + if out_msgs_details.len() > nonces.clone().count() { + return Err(SubstrateError::Custom( + "More messages than requested returned by the message_details call.".into(), + )) + } + + // Check if last nonce is missing. The loop below is not checking this. + if out_msgs_details.is_empty() && !nonces.is_empty() { + return make_missing_nonce_error(*nonces.end()) + } + + let mut nonces_iter = nonces.clone().rev().peekable(); + let mut out_msgs_details_iter = out_msgs_details.iter().rev(); + while let Some((out_msg_details, &nonce)) = out_msgs_details_iter.next().zip(nonces_iter.peek()) + { + nonces_iter.next(); + if out_msg_details.nonce != nonce { + // Some nonces are missing from the middle/tail of the range. This is critical error. + return make_missing_nonce_error(nonce) + } + } + + // Check if some nonces from the beginning of the range are missing. This may happen if + // some messages were already pruned from the source node. This is not a critical error + // and will be auto-resolved by messages lane (and target node). + if nonces_iter.peek().is_some() { + log::info!( + target: "bridge", + "Some messages are missing from the {} node: {:?}. Target node may be out of sync?", + C::NAME, + nonces_iter.rev().collect::>(), + ); + } + + Ok(()) +} + +fn split_msgs_to_refine( + lane_id: LaneId, + msgs_to_refine: MessagesToRefine, +) -> Result, SubstrateError> { + let max_batch_size = Target::max_extrinsic_size() as usize; + let mut batches = vec![]; + + let mut current_msgs_batch = msgs_to_refine; + while !current_msgs_batch.is_empty() { + let mut next_msgs_batch = vec![]; + while (lane_id, ¤t_msgs_batch).encoded_size() > max_batch_size { + if current_msgs_batch.len() <= 1 { + return Err(SubstrateError::Custom(format!( + "Call of {} at {} can't be executed even if only one message is supplied. \ + max_extrinsic_size(): {}", + Source::FROM_CHAIN_MESSAGE_DETAILS_METHOD, + Target::NAME, + Target::max_extrinsic_size(), + ))) + } + + if let Some(msg) = current_msgs_batch.pop() { + next_msgs_batch.insert(0, msg); + } + } + + batches.push(current_msgs_batch); + current_msgs_batch = next_msgs_batch; + } + + Ok(batches) +} + +#[cfg(test)] +mod tests { + use super::*; + use relay_substrate_client::test_chain::TestChain; + + fn message_details_from_rpc( + nonces: RangeInclusive, + ) -> Vec { + nonces + .into_iter() + .map(|nonce| bp_messages::OutboundMessageDetails { + nonce, + dispatch_weight: Weight::zero(), + size: 0, + }) + .collect() + } + + #[test] + fn validate_out_msgs_details_succeeds_if_no_messages_are_missing() { + assert!(validate_out_msgs_details::(&message_details_from_rpc(1..=3), 1..=3,) + .is_ok()); + } + + #[test] + fn validate_out_msgs_details_succeeds_if_head_messages_are_missing() { + assert!(validate_out_msgs_details::(&message_details_from_rpc(2..=3), 1..=3,) + .is_ok()) + } + + #[test] + fn validate_out_msgs_details_fails_if_mid_messages_are_missing() { + let mut message_details_from_rpc = message_details_from_rpc(1..=3); + message_details_from_rpc.remove(1); + assert!(matches!( + validate_out_msgs_details::(&message_details_from_rpc, 1..=3,), + Err(SubstrateError::Custom(_)) + )); + } + + #[test] + fn validate_out_msgs_details_map_fails_if_tail_messages_are_missing() { + assert!(matches!( + validate_out_msgs_details::(&message_details_from_rpc(1..=2), 1..=3,), + Err(SubstrateError::Custom(_)) + )); + } + + #[test] + fn validate_out_msgs_details_fails_if_all_messages_are_missing() { + assert!(matches!( + validate_out_msgs_details::(&[], 1..=3), + Err(SubstrateError::Custom(_)) + )); + } + + #[test] + fn validate_out_msgs_details_fails_if_more_messages_than_nonces() { + assert!(matches!( + validate_out_msgs_details::(&message_details_from_rpc(1..=5), 2..=5,), + Err(SubstrateError::Custom(_)) + )); + } + + fn check_split_msgs_to_refine( + payload_sizes: Vec, + expected_batches: Result, ()>, + ) { + let mut out_msgs_details = vec![]; + for (idx, _) in payload_sizes.iter().enumerate() { + out_msgs_details.push(OutboundMessageDetails { + nonce: idx as MessageNonce, + dispatch_weight: Weight::zero(), + size: 0, + }); + } + + let mut msgs_to_refine = vec![]; + for (&payload_size, out_msg_details) in + payload_sizes.iter().zip(out_msgs_details.iter_mut()) + { + let payload = vec![1u8; payload_size]; + msgs_to_refine.push((payload, out_msg_details)); + } + + let maybe_batches = + split_msgs_to_refine::(Default::default(), msgs_to_refine); + match expected_batches { + Ok(expected_batches) => { + let batches = maybe_batches.unwrap(); + let mut idx = 0; + assert_eq!(batches.len(), expected_batches.len()); + for (batch, &expected_batch_size) in batches.iter().zip(expected_batches.iter()) { + assert_eq!(batch.len(), expected_batch_size); + for msg_to_refine in batch { + assert_eq!(msg_to_refine.0.len(), payload_sizes[idx]); + idx += 1; + } + } + }, + Err(_) => { + matches!(maybe_batches, Err(SubstrateError::Custom(_))); + }, + } + } + + #[test] + fn test_split_msgs_to_refine() { + let max_extrinsic_size = 100000; + + // Check that an error is returned when one of the messages is too big. + check_split_msgs_to_refine(vec![max_extrinsic_size], Err(())); + check_split_msgs_to_refine(vec![50, 100, max_extrinsic_size, 200], Err(())); + + // Otherwise check that the split is valid. + check_split_msgs_to_refine(vec![100, 200, 300, 400], Ok(vec![4])); + check_split_msgs_to_refine( + vec![ + 50, + 100, + max_extrinsic_size - 500, + 500, + 1000, + 1500, + max_extrinsic_size - 3500, + 5000, + 10000, + ], + Ok(vec![3, 4, 2]), + ); + check_split_msgs_to_refine( + vec![ + 50, + 100, + max_extrinsic_size - 150, + 500, + 1000, + 1500, + max_extrinsic_size - 3000, + 5000, + 10000, + ], + Ok(vec![2, 1, 3, 1, 2]), + ); + check_split_msgs_to_refine( + vec![ + 5000, + 10000, + max_extrinsic_size - 3500, + 500, + 1000, + 1500, + max_extrinsic_size - 500, + 50, + 100, + ], + Ok(vec![2, 4, 3]), + ); + } +} diff --git a/bridges/relays/lib-substrate-relay/src/messages_target.rs b/bridges/relays/lib-substrate-relay/src/messages_target.rs new file mode 100644 index 0000000000000000000000000000000000000000..9396e785530d2ec5855e332e8db3dd7836938f25 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/messages_target.rs @@ -0,0 +1,300 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Substrate client as Substrate messages target. The chain we connect to should have +//! runtime that implements `HeaderApi` to allow bridging with +//! `` chain. + +use crate::{ + messages_lane::{ + BatchProofTransaction, MessageLaneAdapter, ReceiveMessagesProofCallBuilder, + SubstrateMessageLane, + }, + messages_source::{ensure_messages_pallet_active, read_client_state, SubstrateMessagesProof}, + on_demand::OnDemandRelay, + TransactionParams, +}; + +use async_std::sync::Arc; +use async_trait::async_trait; +use bp_messages::{ + storage_keys::inbound_lane_data_key, ChainWithMessages as _, InboundLaneData, LaneId, + MessageNonce, UnrewardedRelayersState, +}; +use bridge_runtime_common::messages::source::FromBridgedChainMessagesDeliveryProof; +use messages_relay::{ + message_lane::{MessageLane, SourceHeaderIdOf, TargetHeaderIdOf}, + message_lane_loop::{NoncesSubmitArtifacts, TargetClient, TargetClientState}, +}; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, BalanceOf, CallOf, Client, Error as SubstrateError, HashOf, + TransactionEra, TransactionTracker, UnsignedTransaction, +}; +use relay_utils::relay_loop::Client as RelayClient; +use sp_core::Pair; +use std::{convert::TryFrom, ops::RangeInclusive}; + +/// Message receiving proof returned by the target Substrate node. +pub type SubstrateMessagesDeliveryProof = + (UnrewardedRelayersState, FromBridgedChainMessagesDeliveryProof>); + +/// Substrate client as Substrate messages target. +pub struct SubstrateMessagesTarget { + target_client: Client, + source_client: Client, + lane_id: LaneId, + relayer_id_at_source: AccountIdOf, + transaction_params: TransactionParams>, + source_to_target_headers_relay: Option>>, +} + +impl SubstrateMessagesTarget

{ + /// Create new Substrate headers target. + pub fn new( + target_client: Client, + source_client: Client, + lane_id: LaneId, + relayer_id_at_source: AccountIdOf, + transaction_params: TransactionParams>, + source_to_target_headers_relay: Option< + Arc>, + >, + ) -> Self { + SubstrateMessagesTarget { + target_client, + source_client, + lane_id, + relayer_id_at_source, + transaction_params, + source_to_target_headers_relay, + } + } + + /// Read inbound lane state from the on-chain storage at given block. + async fn inbound_lane_data( + &self, + id: TargetHeaderIdOf>, + ) -> Result>>, SubstrateError> { + self.target_client + .storage_value( + inbound_lane_data_key( + P::SourceChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &self.lane_id, + ), + Some(id.1), + ) + .await + } + + /// Ensure that the messages pallet at target chain is active. + async fn ensure_pallet_active(&self) -> Result<(), SubstrateError> { + ensure_messages_pallet_active::(&self.target_client).await + } +} + +impl Clone for SubstrateMessagesTarget

{ + fn clone(&self) -> Self { + Self { + target_client: self.target_client.clone(), + source_client: self.source_client.clone(), + lane_id: self.lane_id, + relayer_id_at_source: self.relayer_id_at_source.clone(), + transaction_params: self.transaction_params.clone(), + source_to_target_headers_relay: self.source_to_target_headers_relay.clone(), + } + } +} + +#[async_trait] +impl RelayClient for SubstrateMessagesTarget

{ + type Error = SubstrateError; + + async fn reconnect(&mut self) -> Result<(), SubstrateError> { + // since the client calls RPC methods on both sides, we need to reconnect both + self.target_client.reconnect().await?; + self.source_client.reconnect().await?; + + // call reconnect on on-demand headers relay, because we may use different chains there + // and the error that has lead to reconnect may have came from those other chains + // (see `require_source_header_on_target`) + // + // this may lead to multiple reconnects to the same node during the same call and it + // needs to be addressed in the future + // TODO: https://github.com/paritytech/parity-bridges-common/issues/1928 + if let Some(ref mut source_to_target_headers_relay) = self.source_to_target_headers_relay { + source_to_target_headers_relay.reconnect().await?; + } + + Ok(()) + } +} + +#[async_trait] +impl TargetClient> for SubstrateMessagesTarget

+where + AccountIdOf: From< as Pair>::Public>, + BalanceOf: TryFrom>, +{ + type BatchTransaction = + BatchProofTransaction; + type TransactionTracker = TransactionTracker>; + + async fn state(&self) -> Result>, SubstrateError> { + // we can't continue to deliver confirmations if source node is out of sync, because + // it may have already received confirmations that we're going to deliver + // + // we can't continue to deliver messages if target node is out of sync, because + // it may have already received (some of) messages that we're going to deliver + self.source_client.ensure_synced().await?; + self.target_client.ensure_synced().await?; + // we can't relay messages if messages pallet at target chain is halted + self.ensure_pallet_active().await?; + + read_client_state(&self.target_client, Some(&self.source_client)).await + } + + async fn latest_received_nonce( + &self, + id: TargetHeaderIdOf>, + ) -> Result<(TargetHeaderIdOf>, MessageNonce), SubstrateError> { + // lane data missing from the storage is fine until first message is received + let latest_received_nonce = self + .inbound_lane_data(id) + .await? + .map(|data| data.last_delivered_nonce()) + .unwrap_or(0); + Ok((id, latest_received_nonce)) + } + + async fn latest_confirmed_received_nonce( + &self, + id: TargetHeaderIdOf>, + ) -> Result<(TargetHeaderIdOf>, MessageNonce), SubstrateError> { + // lane data missing from the storage is fine until first message is received + let last_confirmed_nonce = self + .inbound_lane_data(id) + .await? + .map(|data| data.last_confirmed_nonce) + .unwrap_or(0); + Ok((id, last_confirmed_nonce)) + } + + async fn unrewarded_relayers_state( + &self, + id: TargetHeaderIdOf>, + ) -> Result<(TargetHeaderIdOf>, UnrewardedRelayersState), SubstrateError> + { + let inbound_lane_data = + self.inbound_lane_data(id).await?.unwrap_or(InboundLaneData::default()); + Ok((id, (&inbound_lane_data).into())) + } + + async fn prove_messages_receiving( + &self, + id: TargetHeaderIdOf>, + ) -> Result< + ( + TargetHeaderIdOf>, + as MessageLane>::MessagesReceivingProof, + ), + SubstrateError, + > { + let (id, relayers_state) = self.unrewarded_relayers_state(id).await?; + let inbound_data_key = bp_messages::storage_keys::inbound_lane_data_key( + P::SourceChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &self.lane_id, + ); + let proof = self + .target_client + .prove_storage(vec![inbound_data_key], id.1) + .await? + .into_iter_nodes() + .collect(); + let proof = FromBridgedChainMessagesDeliveryProof { + bridged_header_hash: id.1, + storage_proof: proof, + lane: self.lane_id, + }; + Ok((id, (relayers_state, proof))) + } + + async fn submit_messages_proof( + &self, + maybe_batch_tx: Option, + _generated_at_header: SourceHeaderIdOf>, + nonces: RangeInclusive, + proof: as MessageLane>::MessagesProof, + ) -> Result, SubstrateError> { + let messages_proof_call = make_messages_delivery_call::

( + self.relayer_id_at_source.clone(), + proof.1.nonces_start..=proof.1.nonces_end, + proof, + maybe_batch_tx.is_none(), + ); + let final_call = match maybe_batch_tx { + Some(batch_tx) => batch_tx.append_call_and_build(messages_proof_call), + None => messages_proof_call, + }; + + let transaction_params = self.transaction_params.clone(); + let tx_tracker = self + .target_client + .submit_and_watch_signed_extrinsic( + &self.transaction_params.signer, + move |best_block_id, transaction_nonce| { + Ok(UnsignedTransaction::new(final_call.into(), transaction_nonce) + .era(TransactionEra::new(best_block_id, transaction_params.mortality))) + }, + ) + .await?; + Ok(NoncesSubmitArtifacts { nonces, tx_tracker }) + } + + async fn require_source_header_on_target( + &self, + id: SourceHeaderIdOf>, + ) -> Result, SubstrateError> { + if let Some(ref source_to_target_headers_relay) = self.source_to_target_headers_relay { + if let Some(batch_tx) = + BatchProofTransaction::new(source_to_target_headers_relay.clone(), id.0).await? + { + return Ok(Some(batch_tx)) + } + + source_to_target_headers_relay.require_more_headers(id.0).await; + } + + Ok(None) + } +} + +/// Make messages delivery call from given proof. +fn make_messages_delivery_call( + relayer_id_at_source: AccountIdOf, + nonces: RangeInclusive, + proof: SubstrateMessagesProof, + trace_call: bool, +) -> CallOf { + let messages_count = nonces.end() - nonces.start() + 1; + let dispatch_weight = proof.0; + P::ReceiveMessagesProofCallBuilder::build_receive_messages_proof_call( + relayer_id_at_source, + proof, + messages_count as _, + dispatch_weight, + trace_call, + ) +} diff --git a/bridges/relays/lib-substrate-relay/src/on_demand/headers.rs b/bridges/relays/lib-substrate-relay/src/on_demand/headers.rs new file mode 100644 index 0000000000000000000000000000000000000000..e8a2a3c6c58aaedeb55da67871d0ddb51830338d --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/on_demand/headers.rs @@ -0,0 +1,550 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! On-demand Substrate -> Substrate header finality relay. + +use crate::{ + finality::SubmitFinalityProofCallBuilder, finality_base::engine::MaxExpectedCallSizeCheck, +}; + +use async_std::sync::{Arc, Mutex}; +use async_trait::async_trait; +use bp_header_chain::ConsensusLogReader; +use bp_runtime::HeaderIdProvider; +use futures::{select, FutureExt}; +use num_traits::{One, Saturating, Zero}; +use sp_runtime::traits::Header; + +use finality_relay::{FinalitySyncParams, TargetClient as FinalityTargetClient}; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, BlockNumberOf, CallOf, Chain, Client, Error as SubstrateError, + HeaderIdOf, +}; +use relay_utils::{ + metrics::MetricsParams, relay_loop::Client as RelayClient, FailedClient, MaybeConnectionError, + STALL_TIMEOUT, +}; + +use crate::{ + finality::{ + source::{RequiredHeaderNumberRef, SubstrateFinalitySource}, + target::SubstrateFinalityTarget, + SubstrateFinalitySyncPipeline, RECENT_FINALITY_PROOFS_LIMIT, + }, + finality_base::engine::Engine, + on_demand::OnDemandRelay, + TransactionParams, +}; + +/// On-demand Substrate <-> Substrate header finality relay. +/// +/// This relay may be requested to sync more headers, whenever some other relay (e.g. messages +/// relay) needs it to continue its regular work. When enough headers are relayed, on-demand stops +/// syncing headers. +#[derive(Clone)] +pub struct OnDemandHeadersRelay { + /// Relay task name. + relay_task_name: String, + /// Shared reference to maximal required finalized header number. + required_header_number: RequiredHeaderNumberRef, + /// Client of the source chain. + source_client: Client, + /// Client of the target chain. + target_client: Client, +} + +impl OnDemandHeadersRelay

{ + /// Create new on-demand headers relay. + /// + /// If `metrics_params` is `Some(_)`, the metrics of the finality relay are registered. + /// Otherwise, all required metrics must be exposed outside of this method. + pub fn new( + source_client: Client, + target_client: Client, + target_transaction_params: TransactionParams>, + only_mandatory_headers: bool, + metrics_params: Option, + ) -> Self + where + AccountIdOf: + From< as sp_core::Pair>::Public>, + { + let required_header_number = Arc::new(Mutex::new(Zero::zero())); + let this = OnDemandHeadersRelay { + relay_task_name: on_demand_headers_relay_name::(), + required_header_number: required_header_number.clone(), + source_client: source_client.clone(), + target_client: target_client.clone(), + }; + async_std::task::spawn(async move { + background_task::

( + source_client, + target_client, + target_transaction_params, + only_mandatory_headers, + required_header_number, + metrics_params, + ) + .await; + }); + + this + } +} + +#[async_trait] +impl OnDemandRelay + for OnDemandHeadersRelay

+{ + async fn reconnect(&self) -> Result<(), SubstrateError> { + // using clone is fine here (to avoid mut requirement), because clone on Client clones + // internal references + self.source_client.clone().reconnect().await?; + self.target_client.clone().reconnect().await + } + + async fn require_more_headers(&self, required_header: BlockNumberOf) { + let mut required_header_number = self.required_header_number.lock().await; + if required_header > *required_header_number { + log::trace!( + target: "bridge", + "[{}] More {} headers required. Going to sync up to the {}", + self.relay_task_name, + P::SourceChain::NAME, + required_header, + ); + + *required_header_number = required_header; + } + } + + async fn prove_header( + &self, + required_header: BlockNumberOf, + ) -> Result<(HeaderIdOf, Vec>), SubstrateError> { + const MAX_ITERATIONS: u32 = 4; + let mut iterations = 0; + let mut current_required_header = required_header; + loop { + // first find proper header (either `current_required_header`) or its descendant + let finality_source = + SubstrateFinalitySource::

::new(self.source_client.clone(), None); + let (header, mut proof) = + finality_source.prove_block_finality(current_required_header).await?; + let header_id = header.id(); + + // verify and optimize justification before including it into the call + let context = P::FinalityEngine::verify_and_optimize_proof( + &self.target_client, + &header, + &mut proof, + ) + .await?; + + // now we have the header and its proof, but we want to minimize our losses, so let's + // check if we'll get the full refund for submitting this header + let check_result = P::FinalityEngine::check_max_expected_call_size(&header, &proof); + if let MaxExpectedCallSizeCheck::Exceeds { call_size, max_call_size } = check_result { + iterations += 1; + current_required_header = header_id.number().saturating_add(One::one()); + if iterations < MAX_ITERATIONS { + log::debug!( + target: "bridge", + "[{}] Requested to prove {} head {:?}. Selected to prove {} head {:?}. But it is too large: {} vs {}. \ + Going to select next header", + self.relay_task_name, + P::SourceChain::NAME, + required_header, + P::SourceChain::NAME, + header_id, + call_size, + max_call_size, + ); + + continue; + } + } + + log::debug!( + target: "bridge", + "[{}] Requested to prove {} head {:?}. Selected to prove {} head {:?} (after {} iterations)", + self.relay_task_name, + P::SourceChain::NAME, + required_header, + P::SourceChain::NAME, + header_id, + iterations, + ); + + // and then craft the submit-proof call + let call = P::SubmitFinalityProofCallBuilder::build_submit_finality_proof_call( + header, proof, context, + ); + + return Ok((header_id, vec![call])); + } + } +} + +/// Background task that is responsible for starting headers relay. +async fn background_task( + source_client: Client, + target_client: Client, + target_transaction_params: TransactionParams>, + only_mandatory_headers: bool, + required_header_number: RequiredHeaderNumberRef, + metrics_params: Option, +) where + AccountIdOf: From< as sp_core::Pair>::Public>, +{ + let relay_task_name = on_demand_headers_relay_name::(); + let target_transactions_mortality = target_transaction_params.mortality; + let mut finality_source = SubstrateFinalitySource::

::new( + source_client.clone(), + Some(required_header_number.clone()), + ); + let mut finality_target = + SubstrateFinalityTarget::new(target_client.clone(), target_transaction_params); + let mut latest_non_mandatory_at_source = Zero::zero(); + + let mut restart_relay = true; + let finality_relay_task = futures::future::Fuse::terminated(); + futures::pin_mut!(finality_relay_task); + + loop { + select! { + _ = async_std::task::sleep(P::TargetChain::AVERAGE_BLOCK_INTERVAL).fuse() => {}, + _ = finality_relay_task => { + // this should never happen in practice given the current code + restart_relay = true; + }, + } + + // read best finalized source header number from source + let best_finalized_source_header_at_source = + best_finalized_source_header_at_source(&finality_source, &relay_task_name).await; + if matches!(best_finalized_source_header_at_source, Err(ref e) if e.is_connection_error()) { + relay_utils::relay_loop::reconnect_failed_client( + FailedClient::Source, + relay_utils::relay_loop::RECONNECT_DELAY, + &mut finality_source, + &mut finality_target, + ) + .await; + continue + } + + // read best finalized source header number from target + let best_finalized_source_header_at_target = + best_finalized_source_header_at_target::

(&finality_target, &relay_task_name).await; + if matches!(best_finalized_source_header_at_target, Err(ref e) if e.is_connection_error()) { + relay_utils::relay_loop::reconnect_failed_client( + FailedClient::Target, + relay_utils::relay_loop::RECONNECT_DELAY, + &mut finality_source, + &mut finality_target, + ) + .await; + continue + } + + // submit mandatory header if some headers are missing + let best_finalized_source_header_at_source_fmt = + format!("{best_finalized_source_header_at_source:?}"); + let best_finalized_source_header_at_target_fmt = + format!("{best_finalized_source_header_at_target:?}"); + let required_header_number_value = *required_header_number.lock().await; + let mandatory_scan_range = mandatory_headers_scan_range::( + best_finalized_source_header_at_source.ok(), + best_finalized_source_header_at_target.ok(), + required_header_number_value, + ) + .await; + + log::trace!( + target: "bridge", + "[{}] Mandatory headers scan range: ({:?}, {:?}, {:?}) -> {:?}", + relay_task_name, + required_header_number_value, + best_finalized_source_header_at_source_fmt, + best_finalized_source_header_at_target_fmt, + mandatory_scan_range, + ); + + if let Some(mandatory_scan_range) = mandatory_scan_range { + let relay_mandatory_header_result = relay_mandatory_header_from_range( + &finality_source, + &required_header_number, + best_finalized_source_header_at_target_fmt, + ( + std::cmp::max(mandatory_scan_range.0, latest_non_mandatory_at_source), + mandatory_scan_range.1, + ), + &relay_task_name, + ) + .await; + match relay_mandatory_header_result { + Ok(true) => (), + Ok(false) => { + // there are no (or we don't need to relay them) mandatory headers in the range + // => to avoid scanning the same headers over and over again, remember that + latest_non_mandatory_at_source = mandatory_scan_range.1; + + log::trace!( + target: "bridge", + "[{}] No mandatory {} headers in the range {:?}", + relay_task_name, + P::SourceChain::NAME, + mandatory_scan_range, + ); + }, + Err(e) => { + log::warn!( + target: "bridge", + "[{}] Failed to scan mandatory {} headers range ({:?}): {:?}", + relay_task_name, + P::SourceChain::NAME, + mandatory_scan_range, + e, + ); + + if e.is_connection_error() { + relay_utils::relay_loop::reconnect_failed_client( + FailedClient::Source, + relay_utils::relay_loop::RECONNECT_DELAY, + &mut finality_source, + &mut finality_target, + ) + .await; + continue + } + }, + } + } + + // start/restart relay + if restart_relay { + let stall_timeout = relay_substrate_client::transaction_stall_timeout( + target_transactions_mortality, + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + STALL_TIMEOUT, + ); + + log::info!( + target: "bridge", + "[{}] Starting on-demand headers relay task\n\t\ + Only mandatory headers: {}\n\t\ + Tx mortality: {:?} (~{}m)\n\t\ + Stall timeout: {:?}", + relay_task_name, + only_mandatory_headers, + target_transactions_mortality, + stall_timeout.as_secs_f64() / 60.0f64, + stall_timeout, + ); + + finality_relay_task.set( + finality_relay::run( + finality_source.clone(), + finality_target.clone(), + FinalitySyncParams { + tick: std::cmp::max( + P::SourceChain::AVERAGE_BLOCK_INTERVAL, + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + ), + recent_finality_proofs_limit: RECENT_FINALITY_PROOFS_LIMIT, + stall_timeout, + only_mandatory_headers, + }, + metrics_params.clone().unwrap_or_else(MetricsParams::disabled), + futures::future::pending(), + ) + .fuse(), + ); + + restart_relay = false; + } + } +} + +/// Returns `Some()` with inclusive range of headers which must be scanned for mandatory headers +/// and the first of such headers must be submitted to the target node. +async fn mandatory_headers_scan_range( + best_finalized_source_header_at_source: Option, + best_finalized_source_header_at_target: Option, + required_header_number: BlockNumberOf, +) -> Option<(C::BlockNumber, C::BlockNumber)> { + // if we have been unable to read header number from the target, then let's assume + // that it is the same as required header number. Otherwise we risk submitting + // unneeded transactions + let best_finalized_source_header_at_target = + best_finalized_source_header_at_target.unwrap_or(required_header_number); + + // if we have been unable to read header number from the source, then let's assume + // that it is the same as at the target + let best_finalized_source_header_at_source = + best_finalized_source_header_at_source.unwrap_or(best_finalized_source_header_at_target); + + // if relay is already asked to sync more headers than we have at source, don't do anything yet + if required_header_number >= best_finalized_source_header_at_source { + return None + } + + Some(( + best_finalized_source_header_at_target + One::one(), + best_finalized_source_header_at_source, + )) +} + +/// Try to find mandatory header in the inclusive headers range and, if one is found, ask to relay +/// it. +/// +/// Returns `true` if header was found and (asked to be) relayed and `false` otherwise. +async fn relay_mandatory_header_from_range( + finality_source: &SubstrateFinalitySource

, + required_header_number: &RequiredHeaderNumberRef, + best_finalized_source_header_at_target: String, + range: (BlockNumberOf, BlockNumberOf), + relay_task_name: &str, +) -> Result { + // search for mandatory header first + let mandatory_source_header_number = + find_mandatory_header_in_range(finality_source, range).await?; + + // if there are no mandatory headers - we have nothing to do + let mandatory_source_header_number = match mandatory_source_header_number { + Some(mandatory_source_header_number) => mandatory_source_header_number, + None => return Ok(false), + }; + + // `find_mandatory_header` call may take a while => check if `required_header_number` is still + // less than our `mandatory_source_header_number` before logging anything + let mut required_header_number = required_header_number.lock().await; + if *required_header_number >= mandatory_source_header_number { + return Ok(false) + } + + log::trace!( + target: "bridge", + "[{}] Too many {} headers missing at target ({} vs {}). Going to sync up to the mandatory {}", + relay_task_name, + P::SourceChain::NAME, + best_finalized_source_header_at_target, + range.1, + mandatory_source_header_number, + ); + + *required_header_number = mandatory_source_header_number; + Ok(true) +} + +/// Read best finalized source block number from source client. +/// +/// Returns `None` if we have failed to read the number. +async fn best_finalized_source_header_at_source( + finality_source: &SubstrateFinalitySource

, + relay_task_name: &str, +) -> Result, relay_substrate_client::Error> { + finality_source.on_chain_best_finalized_block_number().await.map_err(|error| { + log::error!( + target: "bridge", + "[{}] Failed to read best finalized source header from source: {:?}", + relay_task_name, + error, + ); + + error + }) +} + +/// Read best finalized source block number from target client. +/// +/// Returns `None` if we have failed to read the number. +async fn best_finalized_source_header_at_target( + finality_target: &SubstrateFinalityTarget

, + relay_task_name: &str, +) -> Result, as RelayClient>::Error> +where + AccountIdOf: From< as sp_core::Pair>::Public>, +{ + finality_target + .best_finalized_source_block_id() + .await + .map_err(|error| { + log::error!( + target: "bridge", + "[{}] Failed to read best finalized source header from target: {:?}", + relay_task_name, + error, + ); + + error + }) + .map(|id| id.0) +} + +/// Read first mandatory header in given inclusive range. +/// +/// Returns `Ok(None)` if there were no mandatory headers in the range. +async fn find_mandatory_header_in_range( + finality_source: &SubstrateFinalitySource

, + range: (BlockNumberOf, BlockNumberOf), +) -> Result>, relay_substrate_client::Error> { + let mut current = range.0; + while current <= range.1 { + let header = finality_source.client().header_by_number(current).await?; + if >::ConsensusLogReader::schedules_authorities_change( + header.digest(), + ) { + return Ok(Some(current)) + } + + current += One::one(); + } + + Ok(None) +} + +/// On-demand headers relay task name. +fn on_demand_headers_relay_name() -> String { + format!("{}-to-{}-on-demand-headers", SourceChain::NAME, TargetChain::NAME) +} + +#[cfg(test)] +mod tests { + use super::*; + use relay_substrate_client::test_chain::TestChain; + + const AT_SOURCE: Option> = Some(10); + const AT_TARGET: Option> = Some(1); + + #[async_std::test] + async fn mandatory_headers_scan_range_selects_range_if_some_headers_are_missing() { + assert_eq!( + mandatory_headers_scan_range::(AT_SOURCE, AT_TARGET, 0,).await, + Some((AT_TARGET.unwrap() + 1, AT_SOURCE.unwrap())), + ); + } + + #[async_std::test] + async fn mandatory_headers_scan_range_selects_nothing_if_already_queued() { + assert_eq!( + mandatory_headers_scan_range::(AT_SOURCE, AT_TARGET, AT_SOURCE.unwrap(),) + .await, + None, + ); + } +} diff --git a/bridges/relays/lib-substrate-relay/src/on_demand/mod.rs b/bridges/relays/lib-substrate-relay/src/on_demand/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..00bb33d6740937ea7dde9066d9caad3ced2ca655 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/on_demand/mod.rs @@ -0,0 +1,48 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Types and functions intended to ease adding of new Substrate -> Substrate +//! on-demand pipelines. + +use async_trait::async_trait; +use relay_substrate_client::{BlockNumberOf, CallOf, Chain, Error as SubstrateError, HeaderIdOf}; + +pub mod headers; +pub mod parachains; + +/// On-demand headers relay that is relaying finalizing headers only when requested. +#[async_trait] +pub trait OnDemandRelay: Send + Sync { + /// Reconnect to source and target nodes. + async fn reconnect(&self) -> Result<(), SubstrateError>; + + /// Ask relay to relay source header with given number to the target chain. + /// + /// Depending on implementation, on-demand relay may also relay `required_header` ancestors + /// (e.g. if they're mandatory), or its descendants. The request is considered complete if + /// the best avbailable header at the target chain has number that is larger than or equal + /// to the `required_header`. + async fn require_more_headers(&self, required_header: BlockNumberOf); + + /// Ask relay to prove source `required_header` to the `TargetChain`. + /// + /// Returns number of header that is proved (it may be the `required_header` or one of its + /// descendants) and calls for delivering the proof. + async fn prove_header( + &self, + required_header: BlockNumberOf, + ) -> Result<(HeaderIdOf, Vec>), SubstrateError>; +} diff --git a/bridges/relays/lib-substrate-relay/src/on_demand/parachains.rs b/bridges/relays/lib-substrate-relay/src/on_demand/parachains.rs new file mode 100644 index 0000000000000000000000000000000000000000..f67c002bba7f9c61925cb83e96433dbd40db7d4b --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/on_demand/parachains.rs @@ -0,0 +1,1033 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! On-demand Substrate -> Substrate parachain finality relay. + +use crate::{ + messages_source::best_finalized_peer_header_at_self, + on_demand::OnDemandRelay, + parachains::{ + source::ParachainsSource, target::ParachainsTarget, ParachainsPipelineAdapter, + SubmitParachainHeadsCallBuilder, SubstrateParachainsPipeline, + }, + TransactionParams, +}; + +use async_std::{ + channel::{unbounded, Receiver, Sender}, + sync::{Arc, Mutex}, +}; +use async_trait::async_trait; +use bp_polkadot_core::parachains::{ParaHash, ParaId}; +use bp_runtime::HeaderIdProvider; +use futures::{select, FutureExt}; +use num_traits::Zero; +use pallet_bridge_parachains::{RelayBlockHash, RelayBlockHasher, RelayBlockNumber}; +use parachains_relay::parachains_loop::{AvailableHeader, SourceClient, TargetClient}; +use relay_substrate_client::{ + is_ancient_block, AccountIdOf, AccountKeyPairOf, BlockNumberOf, CallOf, Chain, Client, + Error as SubstrateError, HashOf, HeaderIdOf, ParachainBase, +}; +use relay_utils::{ + metrics::MetricsParams, relay_loop::Client as RelayClient, BlockNumberBase, FailedClient, + HeaderId, UniqueSaturatedInto, +}; +use std::fmt::Debug; + +/// On-demand Substrate <-> Substrate parachain finality relay. +/// +/// This relay may be requested to sync more parachain headers, whenever some other relay +/// (e.g. messages relay) needs it to continue its regular work. When enough parachain headers +/// are relayed, on-demand stops syncing headers. +#[derive(Clone)] +pub struct OnDemandParachainsRelay { + /// Relay task name. + relay_task_name: String, + /// Channel used to communicate with background task and ask for relay of parachain heads. + required_header_number_sender: Sender>, + /// Source relay chain client. + source_relay_client: Client, + /// Target chain client. + target_client: Client, + /// On-demand relay chain relay. + on_demand_source_relay_to_target_headers: + Arc>, +} + +impl OnDemandParachainsRelay

{ + /// Create new on-demand parachains relay. + /// + /// Note that the argument is the source relay chain client, not the parachain client. + /// That's because parachain finality is determined by the relay chain and we don't + /// need to connect to the parachain itself here. + pub fn new( + source_relay_client: Client, + target_client: Client, + target_transaction_params: TransactionParams>, + on_demand_source_relay_to_target_headers: Arc< + dyn OnDemandRelay, + >, + ) -> Self + where + P::SourceParachain: Chain, + P::SourceRelayChain: + Chain, + AccountIdOf: + From< as sp_core::Pair>::Public>, + { + let (required_header_number_sender, required_header_number_receiver) = unbounded(); + let this = OnDemandParachainsRelay { + relay_task_name: on_demand_parachains_relay_name::( + ), + required_header_number_sender, + source_relay_client: source_relay_client.clone(), + target_client: target_client.clone(), + on_demand_source_relay_to_target_headers: on_demand_source_relay_to_target_headers + .clone(), + }; + async_std::task::spawn(async move { + background_task::

( + source_relay_client, + target_client, + target_transaction_params, + on_demand_source_relay_to_target_headers, + required_header_number_receiver, + ) + .await; + }); + + this + } +} + +#[async_trait] +impl OnDemandRelay + for OnDemandParachainsRelay

+where + P::SourceParachain: Chain, +{ + async fn reconnect(&self) -> Result<(), SubstrateError> { + // using clone is fine here (to avoid mut requirement), because clone on Client clones + // internal references + self.source_relay_client.clone().reconnect().await?; + self.target_client.clone().reconnect().await?; + // we'll probably need to reconnect relay chain relayer clients also + self.on_demand_source_relay_to_target_headers.reconnect().await + } + + async fn require_more_headers(&self, required_header: BlockNumberOf) { + if let Err(e) = self.required_header_number_sender.send(required_header).await { + log::trace!( + target: "bridge", + "[{}] Failed to request {} header {:?}: {:?}", + self.relay_task_name, + P::SourceParachain::NAME, + required_header, + e, + ); + } + } + + /// Ask relay to prove source `required_header` to the `TargetChain`. + async fn prove_header( + &self, + required_parachain_header: BlockNumberOf, + ) -> Result<(HeaderIdOf, Vec>), SubstrateError> { + // select headers to prove + let parachains_source = ParachainsSource::

::new( + self.source_relay_client.clone(), + Arc::new(Mutex::new(AvailableHeader::Missing)), + ); + let env = (self, ¶chains_source); + let (need_to_prove_relay_block, selected_relay_block, selected_parachain_block) = + select_headers_to_prove(env, required_parachain_header).await?; + + log::debug!( + target: "bridge", + "[{}] Requested to prove {} head {:?}. Selected to prove {} head {:?} and {} head {:?}", + self.relay_task_name, + P::SourceParachain::NAME, + required_parachain_header, + P::SourceParachain::NAME, + selected_parachain_block, + P::SourceRelayChain::NAME, + if need_to_prove_relay_block { + Some(selected_relay_block) + } else { + None + }, + ); + + // now let's prove relay chain block (if needed) + let mut calls = Vec::new(); + let mut proved_relay_block = selected_relay_block; + if need_to_prove_relay_block { + let (relay_block, relay_prove_call) = self + .on_demand_source_relay_to_target_headers + .prove_header(selected_relay_block.number()) + .await?; + proved_relay_block = relay_block; + calls.extend(relay_prove_call); + } + + // despite what we've selected before (in `select_headers_to_prove` call), if headers relay + // have chose the different header (e.g. because there's no GRANDPA jusstification for it), + // we need to prove parachain head available at this header + let para_id = ParaId(P::SourceParachain::PARACHAIN_ID); + let mut proved_parachain_block = selected_parachain_block; + if proved_relay_block != selected_relay_block { + proved_parachain_block = parachains_source + .on_chain_para_head_id(proved_relay_block) + .await? + // this could happen e.g. if parachain has been offboarded? + .ok_or_else(|| { + SubstrateError::MissingRequiredParachainHead( + para_id, + proved_relay_block.number().unique_saturated_into(), + ) + })?; + + log::debug!( + target: "bridge", + "[{}] Selected to prove {} head {:?} and {} head {:?}. Instead proved {} head {:?} and {} head {:?}", + self.relay_task_name, + P::SourceParachain::NAME, + selected_parachain_block, + P::SourceRelayChain::NAME, + selected_relay_block, + P::SourceParachain::NAME, + proved_parachain_block, + P::SourceRelayChain::NAME, + proved_relay_block, + ); + } + + // and finally - prove parachain head + let (para_proof, para_hash) = + parachains_source.prove_parachain_head(proved_relay_block).await?; + calls.push(P::SubmitParachainHeadsCallBuilder::build_submit_parachain_heads_call( + proved_relay_block, + vec![(para_id, para_hash)], + para_proof, + )); + + Ok((proved_parachain_block, calls)) + } +} + +/// Background task that is responsible for starting parachain headers relay. +async fn background_task( + source_relay_client: Client, + target_client: Client, + target_transaction_params: TransactionParams>, + on_demand_source_relay_to_target_headers: Arc< + dyn OnDemandRelay, + >, + required_parachain_header_number_receiver: Receiver>, +) where + P::SourceParachain: Chain, + P::SourceRelayChain: + Chain, + AccountIdOf: From< as sp_core::Pair>::Public>, +{ + let relay_task_name = on_demand_parachains_relay_name::(); + let target_transactions_mortality = target_transaction_params.mortality; + + let mut relay_state = RelayState::Idle; + let mut required_parachain_header_number = Zero::zero(); + let required_para_header_ref = Arc::new(Mutex::new(AvailableHeader::Unavailable)); + + let mut restart_relay = true; + let parachains_relay_task = futures::future::Fuse::terminated(); + futures::pin_mut!(parachains_relay_task); + + let mut parachains_source = + ParachainsSource::

::new(source_relay_client.clone(), required_para_header_ref.clone()); + let mut parachains_target = + ParachainsTarget::

::new(target_client.clone(), target_transaction_params.clone()); + + loop { + select! { + new_required_parachain_header_number = required_parachain_header_number_receiver.recv().fuse() => { + let new_required_parachain_header_number = match new_required_parachain_header_number { + Ok(new_required_parachain_header_number) => new_required_parachain_header_number, + Err(e) => { + log::error!( + target: "bridge", + "[{}] Background task has exited with error: {:?}", + relay_task_name, + e, + ); + + return; + }, + }; + + // keep in mind that we are not updating `required_para_header_ref` here, because + // then we'll be submitting all previous headers as well (while required relay headers are + // delivered) and we want to avoid that (to reduce cost) + if new_required_parachain_header_number > required_parachain_header_number { + log::trace!( + target: "bridge", + "[{}] More {} headers required. Going to sync up to the {}", + relay_task_name, + P::SourceParachain::NAME, + new_required_parachain_header_number, + ); + + required_parachain_header_number = new_required_parachain_header_number; + } + }, + _ = async_std::task::sleep(P::TargetChain::AVERAGE_BLOCK_INTERVAL).fuse() => {}, + _ = parachains_relay_task => { + // this should never happen in practice given the current code + restart_relay = true; + }, + } + + // the workflow of the on-demand parachains relay is: + // + // 1) message relay (or any other dependent relay) sees new message at parachain header + // `PH`; + // + // 2) it sees that the target chain does not know `PH`; + // + // 3) it asks on-demand parachains relay to relay `PH` to the target chain; + // + // Phase#1: relaying relay chain header + // + // 4) on-demand parachains relay waits for GRANDPA-finalized block of the source relay chain + // `RH` that is storing `PH` or its descendant. Let it be `PH'`; + // 5) it asks on-demand headers relay to relay `RH` to the target chain; + // 6) it waits until `RH` (or its descendant) is relayed to the target chain; + // + // Phase#2: relaying parachain header + // + // 7) on-demand parachains relay sets `ParachainsSource::maximal_header_number` to the + // `PH'.number()`. + // 8) parachains finality relay sees that the parachain head has been updated and relays + // `PH'` to the target chain. + + // select headers to relay + let relay_data = read_relay_data( + ¶chains_source, + ¶chains_target, + required_parachain_header_number, + ) + .await; + match relay_data { + Ok(relay_data) => { + let prev_relay_state = relay_state; + relay_state = select_headers_to_relay(&relay_data, relay_state); + log::trace!( + target: "bridge", + "[{}] Selected new relay state: {:?} using old state {:?} and data {:?}", + relay_task_name, + relay_state, + prev_relay_state, + relay_data, + ); + }, + Err(failed_client) => { + relay_utils::relay_loop::reconnect_failed_client( + failed_client, + relay_utils::relay_loop::RECONNECT_DELAY, + &mut parachains_source, + &mut parachains_target, + ) + .await; + continue + }, + } + + // we have selected our new 'state' => let's notify our source clients about our new + // requirements + match relay_state { + RelayState::Idle => (), + RelayState::RelayingRelayHeader(required_relay_header) => { + on_demand_source_relay_to_target_headers + .require_more_headers(required_relay_header) + .await; + }, + RelayState::RelayingParaHeader(required_para_header) => { + *required_para_header_ref.lock().await = + AvailableHeader::Available(required_para_header); + }, + } + + // start/restart relay + if restart_relay { + let stall_timeout = relay_substrate_client::transaction_stall_timeout( + target_transactions_mortality, + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + relay_utils::STALL_TIMEOUT, + ); + + log::info!( + target: "bridge", + "[{}] Starting on-demand-parachains relay task\n\t\ + Tx mortality: {:?} (~{}m)\n\t\ + Stall timeout: {:?}", + relay_task_name, + target_transactions_mortality, + stall_timeout.as_secs_f64() / 60.0f64, + stall_timeout, + ); + + parachains_relay_task.set( + parachains_relay::parachains_loop::run( + parachains_source.clone(), + parachains_target.clone(), + MetricsParams::disabled(), + futures::future::pending(), + ) + .fuse(), + ); + + restart_relay = false; + } + } +} + +/// On-demand parachains relay task name. +fn on_demand_parachains_relay_name() -> String { + format!("{}-to-{}-on-demand-parachain", SourceChain::NAME, TargetChain::NAME) +} + +/// On-demand relay state. +#[derive(Clone, Copy, Debug, PartialEq)] +enum RelayState { + /// On-demand relay is not doing anything. + Idle, + /// Relaying given relay header to relay given parachain header later. + RelayingRelayHeader(RelayNumber), + /// Relaying given parachain header. + RelayingParaHeader(HeaderId), +} + +/// Data gathered from source and target clients, used by on-demand relay. +#[derive(Debug)] +struct RelayData { + /// Parachain header number that is required at the target chain. + pub required_para_header: ParaNumber, + /// Parachain header number, known to the target chain. + pub para_header_at_target: Option, + /// Parachain header id, known to the source (relay) chain. + pub para_header_at_source: Option>, + /// Parachain header, that is available at the source relay chain at `relay_header_at_target` + /// block. + /// + /// May be `None` if there's no `relay_header_at_target` yet, or if the + /// `relay_header_at_target` is too old and we think its state has been pruned. + pub para_header_at_relay_header_at_target: Option>, + /// Relay header number at the source chain. + pub relay_header_at_source: RelayNumber, + /// Relay header number at the target chain. + pub relay_header_at_target: Option, +} + +/// Read required data from source and target clients. +async fn read_relay_data( + source: &ParachainsSource

, + target: &ParachainsTarget

, + required_header_number: BlockNumberOf, +) -> Result< + RelayData< + HashOf, + BlockNumberOf, + BlockNumberOf, + >, + FailedClient, +> +where + ParachainsTarget

: + TargetClient> + RelayClient, +{ + let map_target_err = |e| { + log::error!( + target: "bridge", + "[{}] Failed to read relay data from {} client: {:?}", + on_demand_parachains_relay_name::(), + P::TargetChain::NAME, + e, + ); + FailedClient::Target + }; + let map_source_err = |e| { + log::error!( + target: "bridge", + "[{}] Failed to read relay data from {} client: {:?}", + on_demand_parachains_relay_name::(), + P::SourceRelayChain::NAME, + e, + ); + FailedClient::Source + }; + + let best_target_block_hash = target.best_block().await.map_err(map_target_err)?.1; + let para_header_at_target = best_finalized_peer_header_at_self::< + P::TargetChain, + P::SourceParachain, + >(target.client(), best_target_block_hash) + .await; + // if there are no parachain heads at the target (`NoParachainHeadAtTarget`), we'll need to + // submit at least one. Otherwise the pallet will be treated as uninitialized and messages + // sync will stall. + let para_header_at_target = match para_header_at_target { + Ok(Some(para_header_at_target)) => Some(para_header_at_target.0), + Ok(None) => None, + Err(e) => return Err(map_target_err(e)), + }; + + let best_finalized_relay_header = + source.client().best_finalized_header().await.map_err(map_source_err)?; + let best_finalized_relay_block_id = best_finalized_relay_header.id(); + let para_header_at_source = source + .on_chain_para_head_id(best_finalized_relay_block_id) + .await + .map_err(map_source_err)?; + + let relay_header_at_source = best_finalized_relay_block_id.0; + let relay_header_at_target = best_finalized_peer_header_at_self::< + P::TargetChain, + P::SourceRelayChain, + >(target.client(), best_target_block_hash) + .await + .map_err(map_target_err)?; + + // if relay header at target is too old then its state may already be discarded at the source + // => just use `None` in this case + // + // the same is for case when there's no relay header at target at all + let available_relay_header_at_target = + relay_header_at_target.filter(|relay_header_at_target| { + !is_ancient_block(relay_header_at_target.number(), relay_header_at_source) + }); + let para_header_at_relay_header_at_target = + if let Some(available_relay_header_at_target) = available_relay_header_at_target { + source + .on_chain_para_head_id(available_relay_header_at_target) + .await + .map_err(map_source_err)? + } else { + None + }; + + Ok(RelayData { + required_para_header: required_header_number, + para_header_at_target, + para_header_at_source, + relay_header_at_source, + relay_header_at_target: relay_header_at_target + .map(|relay_header_at_target| relay_header_at_target.0), + para_header_at_relay_header_at_target, + }) +} + +/// Select relay and parachain headers that need to be relayed. +fn select_headers_to_relay( + data: &RelayData, + state: RelayState, +) -> RelayState +where + ParaHash: Clone, + ParaNumber: Copy + PartialOrd + Zero, + RelayNumber: Copy + Debug + Ord, +{ + // we can't do anything until **relay chain** bridge GRANDPA pallet is not initialized at the + // target chain + let relay_header_at_target = match data.relay_header_at_target { + Some(relay_header_at_target) => relay_header_at_target, + None => return RelayState::Idle, + }; + + // Process the `RelayingRelayHeader` state. + if let &RelayState::RelayingRelayHeader(relay_header_number) = &state { + if relay_header_at_target < relay_header_number { + // The required relay header hasn't yet been relayed. Ask / wait for it. + return state + } + + // We may switch to `RelayingParaHeader` if parachain head is available. + if let Some(para_header_at_relay_header_at_target) = + data.para_header_at_relay_header_at_target.as_ref() + { + return RelayState::RelayingParaHeader(para_header_at_relay_header_at_target.clone()) + } + + // else use the regular process - e.g. we may require to deliver new relay header first + } + + // Process the `RelayingParaHeader` state. + if let RelayState::RelayingParaHeader(para_header_id) = &state { + let para_header_at_target_or_zero = data.para_header_at_target.unwrap_or_else(Zero::zero); + if para_header_at_target_or_zero < para_header_id.0 { + // The required parachain header hasn't yet been relayed. Ask / wait for it. + return state + } + } + + // if we haven't read para head from the source, we can't yet do anything + let para_header_at_source = match data.para_header_at_source { + Some(ref para_header_at_source) => para_header_at_source.clone(), + None => return RelayState::Idle, + }; + + // if we have parachain head at the source, but no parachain heads at the target, we'll need + // to deliver at least one parachain head + let (required_para_header, para_header_at_target) = match data.para_header_at_target { + Some(para_header_at_target) => (data.required_para_header, para_header_at_target), + None => (para_header_at_source.0, Zero::zero()), + }; + + // if we have already satisfied our "customer", do nothing + if required_para_header <= para_header_at_target { + return RelayState::Idle + } + + // if required header is not available even at the source chain, let's wait + if required_para_header > para_header_at_source.0 { + return RelayState::Idle + } + + // we will always try to sync latest parachain/relay header, even if we've been asked for some + // its ancestor + + // we need relay chain header first + if relay_header_at_target < data.relay_header_at_source { + return RelayState::RelayingRelayHeader(data.relay_header_at_source) + } + + // if all relay headers synced, we may start directly with parachain header + RelayState::RelayingParaHeader(para_header_at_source) +} + +/// Environment for the `select_headers_to_prove` call. +#[async_trait] +trait SelectHeadersToProveEnvironment { + /// Returns associated parachain id. + fn parachain_id(&self) -> ParaId; + /// Returns best finalized relay block. + async fn best_finalized_relay_block_at_source( + &self, + ) -> Result, SubstrateError>; + /// Returns best finalized relay block that is known at `P::TargetChain`. + async fn best_finalized_relay_block_at_target( + &self, + ) -> Result, SubstrateError>; + /// Returns best finalized parachain block at given source relay chain block. + async fn best_finalized_para_block_at_source( + &self, + at_relay_block: HeaderId, + ) -> Result>, SubstrateError>; +} + +#[async_trait] +impl<'a, P: SubstrateParachainsPipeline> + SelectHeadersToProveEnvironment< + BlockNumberOf, + HashOf, + BlockNumberOf, + HashOf, + > for (&'a OnDemandParachainsRelay

, &'a ParachainsSource

) +{ + fn parachain_id(&self) -> ParaId { + ParaId(P::SourceParachain::PARACHAIN_ID) + } + + async fn best_finalized_relay_block_at_source( + &self, + ) -> Result, SubstrateError> { + Ok(self.0.source_relay_client.best_finalized_header().await?.id()) + } + + async fn best_finalized_relay_block_at_target( + &self, + ) -> Result, SubstrateError> { + Ok(crate::messages_source::read_client_state::( + &self.0.target_client, + None, + ) + .await? + .best_finalized_peer_at_best_self + .ok_or(SubstrateError::BridgePalletIsNotInitialized)?) + } + + async fn best_finalized_para_block_at_source( + &self, + at_relay_block: HeaderIdOf, + ) -> Result>, SubstrateError> { + self.1.on_chain_para_head_id(at_relay_block).await + } +} + +/// Given request to prove `required_parachain_header`, select actual headers that need to be +/// proved. +async fn select_headers_to_prove( + env: impl SelectHeadersToProveEnvironment, + required_parachain_header: PBN, +) -> Result<(bool, HeaderId, HeaderId), SubstrateError> +where + RBH: Copy, + RBN: BlockNumberBase, + PBH: Copy, + PBN: BlockNumberBase, +{ + // parachains proof also requires relay header proof. Let's first select relay block + // number that we'll be dealing with + let best_finalized_relay_block_at_source = env.best_finalized_relay_block_at_source().await?; + let best_finalized_relay_block_at_target = env.best_finalized_relay_block_at_target().await?; + + // if we can't prove `required_header` even using `best_finalized_relay_block_at_source`, we + // can't do anything here + // (this shall not actually happen, given current code, because we only require finalized + // headers) + let best_possible_parachain_block = env + .best_finalized_para_block_at_source(best_finalized_relay_block_at_source) + .await? + .filter(|best_possible_parachain_block| { + best_possible_parachain_block.number() >= required_parachain_header + }) + .ok_or(SubstrateError::MissingRequiredParachainHead( + env.parachain_id(), + required_parachain_header.unique_saturated_into(), + ))?; + + // we don't require source node to be archive, so we can't craft storage proofs using + // ancient headers. So if the `best_finalized_relay_block_at_target` is too ancient, we + // can't craft storage proofs using it + let may_use_state_at_best_finalized_relay_block_at_target = !is_ancient_block( + best_finalized_relay_block_at_target.number(), + best_finalized_relay_block_at_source.number(), + ); + + // now let's check if `required_header` may be proved using + // `best_finalized_relay_block_at_target` + let selection = if may_use_state_at_best_finalized_relay_block_at_target { + env.best_finalized_para_block_at_source(best_finalized_relay_block_at_target) + .await? + .filter(|best_finalized_para_block_at_target| { + best_finalized_para_block_at_target.number() >= required_parachain_header + }) + .map(|best_finalized_para_block_at_target| { + (false, best_finalized_relay_block_at_target, best_finalized_para_block_at_target) + }) + } else { + None + }; + + Ok(selection.unwrap_or(( + true, + best_finalized_relay_block_at_source, + best_possible_parachain_block, + ))) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn relay_waits_for_relay_header_to_be_delivered() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 90, + para_header_at_target: Some(50), + para_header_at_source: Some(HeaderId(110, 110)), + relay_header_at_source: 800, + relay_header_at_target: Some(700), + para_header_at_relay_header_at_target: Some(HeaderId(100, 100)), + }, + RelayState::RelayingRelayHeader(750), + ), + RelayState::RelayingRelayHeader(750), + ); + } + + #[test] + fn relay_starts_relaying_requested_para_header_after_relay_header_is_delivered() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 90, + para_header_at_target: Some(50), + para_header_at_source: Some(HeaderId(110, 110)), + relay_header_at_source: 800, + relay_header_at_target: Some(750), + para_header_at_relay_header_at_target: Some(HeaderId(100, 100)), + }, + RelayState::RelayingRelayHeader(750), + ), + RelayState::RelayingParaHeader(HeaderId(100, 100)), + ); + } + + #[test] + fn relay_selects_better_para_header_after_better_relay_header_is_delivered() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 90, + para_header_at_target: Some(50), + para_header_at_source: Some(HeaderId(110, 110)), + relay_header_at_source: 800, + relay_header_at_target: Some(780), + para_header_at_relay_header_at_target: Some(HeaderId(105, 105)), + }, + RelayState::RelayingRelayHeader(750), + ), + RelayState::RelayingParaHeader(HeaderId(105, 105)), + ); + } + #[test] + fn relay_waits_for_para_header_to_be_delivered() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 90, + para_header_at_target: Some(50), + para_header_at_source: Some(HeaderId(110, 110)), + relay_header_at_source: 800, + relay_header_at_target: Some(780), + para_header_at_relay_header_at_target: Some(HeaderId(105, 105)), + }, + RelayState::RelayingParaHeader(HeaderId(105, 105)), + ), + RelayState::RelayingParaHeader(HeaderId(105, 105)), + ); + } + + #[test] + fn relay_stays_idle_if_required_para_header_is_already_delivered() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 90, + para_header_at_target: Some(105), + para_header_at_source: Some(HeaderId(110, 110)), + relay_header_at_source: 800, + relay_header_at_target: Some(780), + para_header_at_relay_header_at_target: Some(HeaderId(105, 105)), + }, + RelayState::Idle, + ), + RelayState::Idle, + ); + } + + #[test] + fn relay_waits_for_required_para_header_to_appear_at_source_1() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 120, + para_header_at_target: Some(105), + para_header_at_source: None, + relay_header_at_source: 800, + relay_header_at_target: Some(780), + para_header_at_relay_header_at_target: Some(HeaderId(105, 105)), + }, + RelayState::Idle, + ), + RelayState::Idle, + ); + } + + #[test] + fn relay_waits_for_required_para_header_to_appear_at_source_2() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 120, + para_header_at_target: Some(105), + para_header_at_source: Some(HeaderId(110, 110)), + relay_header_at_source: 800, + relay_header_at_target: Some(780), + para_header_at_relay_header_at_target: Some(HeaderId(105, 105)), + }, + RelayState::Idle, + ), + RelayState::Idle, + ); + } + + #[test] + fn relay_starts_relaying_relay_header_when_new_para_header_is_requested() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 120, + para_header_at_target: Some(105), + para_header_at_source: Some(HeaderId(125, 125)), + relay_header_at_source: 800, + relay_header_at_target: Some(780), + para_header_at_relay_header_at_target: Some(HeaderId(105, 105)), + }, + RelayState::Idle, + ), + RelayState::RelayingRelayHeader(800), + ); + } + + #[test] + fn relay_starts_relaying_para_header_when_new_para_header_is_requested() { + assert_eq!( + select_headers_to_relay( + &RelayData { + required_para_header: 120, + para_header_at_target: Some(105), + para_header_at_source: Some(HeaderId(125, 125)), + relay_header_at_source: 800, + relay_header_at_target: Some(800), + para_header_at_relay_header_at_target: Some(HeaderId(125, 125)), + }, + RelayState::Idle, + ), + RelayState::RelayingParaHeader(HeaderId(125, 125)), + ); + } + + #[test] + fn relay_goes_idle_when_parachain_is_deregistered() { + assert_eq!( + select_headers_to_relay::( + &RelayData { + required_para_header: 120, + para_header_at_target: Some(105), + para_header_at_source: None, + relay_header_at_source: 800, + relay_header_at_target: Some(800), + para_header_at_relay_header_at_target: None, + }, + RelayState::RelayingRelayHeader(800), + ), + RelayState::Idle, + ); + } + + #[test] + fn relay_starts_relaying_first_parachain_header() { + assert_eq!( + select_headers_to_relay::( + &RelayData { + required_para_header: 0, + para_header_at_target: None, + para_header_at_source: Some(HeaderId(125, 125)), + relay_header_at_source: 800, + relay_header_at_target: Some(800), + para_header_at_relay_header_at_target: Some(HeaderId(125, 125)), + }, + RelayState::Idle, + ), + RelayState::RelayingParaHeader(HeaderId(125, 125)), + ); + } + + #[test] + fn relay_starts_relaying_relay_header_to_relay_first_parachain_header() { + assert_eq!( + select_headers_to_relay::( + &RelayData { + required_para_header: 0, + para_header_at_target: None, + para_header_at_source: Some(HeaderId(125, 125)), + relay_header_at_source: 800, + relay_header_at_target: Some(700), + para_header_at_relay_header_at_target: Some(HeaderId(125, 125)), + }, + RelayState::Idle, + ), + RelayState::RelayingRelayHeader(800), + ); + } + + // tuple is: + // + // - best_finalized_relay_block_at_source + // - best_finalized_relay_block_at_target + // - best_finalized_para_block_at_source at best_finalized_relay_block_at_source + // - best_finalized_para_block_at_source at best_finalized_relay_block_at_target + #[async_trait] + impl SelectHeadersToProveEnvironment for (u32, u32, u32, u32) { + fn parachain_id(&self) -> ParaId { + ParaId(0) + } + + async fn best_finalized_relay_block_at_source( + &self, + ) -> Result, SubstrateError> { + Ok(HeaderId(self.0, self.0)) + } + + async fn best_finalized_relay_block_at_target( + &self, + ) -> Result, SubstrateError> { + Ok(HeaderId(self.1, self.1)) + } + + async fn best_finalized_para_block_at_source( + &self, + at_relay_block: HeaderId, + ) -> Result>, SubstrateError> { + if at_relay_block.0 == self.0 { + Ok(Some(HeaderId(self.2, self.2))) + } else if at_relay_block.0 == self.1 { + Ok(Some(HeaderId(self.3, self.3))) + } else { + Ok(None) + } + } + } + + #[async_std::test] + async fn select_headers_to_prove_returns_err_if_required_para_block_is_missing_at_source() { + assert!(matches!( + select_headers_to_prove((20_u32, 10_u32, 200_u32, 100_u32), 300_u32,).await, + Err(SubstrateError::MissingRequiredParachainHead(ParaId(0), 300_u64)), + )); + } + + #[async_std::test] + async fn select_headers_to_prove_fails_to_use_existing_ancient_relay_block() { + assert_eq!( + select_headers_to_prove((220_u32, 10_u32, 200_u32, 100_u32), 100_u32,) + .await + .map_err(drop), + Ok((true, HeaderId(220, 220), HeaderId(200, 200))), + ); + } + + #[async_std::test] + async fn select_headers_to_prove_is_able_to_use_existing_recent_relay_block() { + assert_eq!( + select_headers_to_prove((40_u32, 10_u32, 200_u32, 100_u32), 100_u32,) + .await + .map_err(drop), + Ok((false, HeaderId(10, 10), HeaderId(100, 100))), + ); + } + + #[async_std::test] + async fn select_headers_to_prove_uses_new_relay_block() { + assert_eq!( + select_headers_to_prove((20_u32, 10_u32, 200_u32, 100_u32), 200_u32,) + .await + .map_err(drop), + Ok((true, HeaderId(20, 20), HeaderId(200, 200))), + ); + } +} diff --git a/bridges/relays/lib-substrate-relay/src/parachains/mod.rs b/bridges/relays/lib-substrate-relay/src/parachains/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..722f9b61f9f08d87dac3bd95a0780d8422097a38 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/parachains/mod.rs @@ -0,0 +1,108 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Types and functions intended to ease adding of new Substrate -> Substrate +//! parachain finality proofs synchronization pipelines. + +use async_trait::async_trait; +use bp_polkadot_core::parachains::{ParaHash, ParaHeadsProof, ParaId}; +use pallet_bridge_parachains::{ + Call as BridgeParachainsCall, Config as BridgeParachainsConfig, RelayBlockHash, + RelayBlockHasher, RelayBlockNumber, +}; +use parachains_relay::ParachainsPipeline; +use relay_substrate_client::{ + CallOf, Chain, ChainWithTransactions, HeaderIdOf, Parachain, RelayChain, +}; +use std::{fmt::Debug, marker::PhantomData}; + +pub mod source; +pub mod target; + +/// Substrate -> Substrate parachain finality proofs synchronization pipeline. +/// +/// This is currently restricted to the single parachain, because it is how it +/// will be used (at least) initially. +#[async_trait] +pub trait SubstrateParachainsPipeline: 'static + Clone + Debug + Send + Sync { + /// Headers of this parachain are submitted to the `Self::TargetChain`. + type SourceParachain: Parachain; + /// Relay chain that is storing headers of `Self::SourceParachain`. + type SourceRelayChain: RelayChain; + /// Target chain where `Self::SourceParachain` headers are submitted. + type TargetChain: ChainWithTransactions; + + /// How submit parachains heads call is built? + type SubmitParachainHeadsCallBuilder: SubmitParachainHeadsCallBuilder; +} + +/// Adapter that allows all `SubstrateParachainsPipeline` to act as `ParachainsPipeline`. +#[derive(Clone, Debug)] +pub struct ParachainsPipelineAdapter { + _phantom: PhantomData

, +} + +impl ParachainsPipeline for ParachainsPipelineAdapter

{ + type SourceParachain = P::SourceParachain; + type SourceRelayChain = P::SourceRelayChain; + type TargetChain = P::TargetChain; +} + +/// Different ways of building `submit_parachain_heads` calls. +pub trait SubmitParachainHeadsCallBuilder: + 'static + Send + Sync +{ + /// Given parachains and their heads proof, build call of `submit_parachain_heads` + /// function of bridge parachains module at the target chain. + fn build_submit_parachain_heads_call( + at_relay_block: HeaderIdOf, + parachains: Vec<(ParaId, ParaHash)>, + parachain_heads_proof: ParaHeadsProof, + ) -> CallOf; +} + +/// Building `submit_parachain_heads` call when you have direct access to the target +/// chain runtime. +pub struct DirectSubmitParachainHeadsCallBuilder { + _phantom: PhantomData<(P, R, I)>, +} + +impl SubmitParachainHeadsCallBuilder

for DirectSubmitParachainHeadsCallBuilder +where + P: SubstrateParachainsPipeline, + P::SourceRelayChain: Chain, + R: BridgeParachainsConfig + Send + Sync, + I: 'static + Send + Sync, + R::BridgedChain: bp_runtime::Chain< + BlockNumber = RelayBlockNumber, + Hash = RelayBlockHash, + Hasher = RelayBlockHasher, + >, + CallOf: From>, +{ + fn build_submit_parachain_heads_call( + at_relay_block: HeaderIdOf, + parachains: Vec<(ParaId, ParaHash)>, + parachain_heads_proof: ParaHeadsProof, + ) -> CallOf { + BridgeParachainsCall::::submit_parachain_heads { + at_relay_block: (at_relay_block.0, at_relay_block.1), + parachains, + parachain_heads_proof, + } + .into() + } +} diff --git a/bridges/relays/lib-substrate-relay/src/parachains/source.rs b/bridges/relays/lib-substrate-relay/src/parachains/source.rs new file mode 100644 index 0000000000000000000000000000000000000000..4cc512b9d9b45c7334ffb121c1a8613b7f118550 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/parachains/source.rs @@ -0,0 +1,181 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Parachain heads source. + +use crate::parachains::{ParachainsPipelineAdapter, SubstrateParachainsPipeline}; + +use async_std::sync::{Arc, Mutex}; +use async_trait::async_trait; +use bp_parachains::parachain_head_storage_key_at_source; +use bp_polkadot_core::parachains::{ParaHash, ParaHead, ParaHeadsProof, ParaId}; +use bp_runtime::HeaderIdProvider; +use codec::Decode; +use parachains_relay::parachains_loop::{AvailableHeader, SourceClient}; +use relay_substrate_client::{ + is_ancient_block, Chain, Client, Error as SubstrateError, HeaderIdOf, HeaderOf, ParachainBase, + RelayChain, +}; +use relay_utils::relay_loop::Client as RelayClient; + +/// Shared updatable reference to the maximal parachain header id that we want to sync from the +/// source. +pub type RequiredHeaderIdRef = Arc>>>; + +/// Substrate client as parachain heads source. +#[derive(Clone)] +pub struct ParachainsSource { + client: Client, + max_head_id: RequiredHeaderIdRef, +} + +impl ParachainsSource

{ + /// Creates new parachains source client. + pub fn new( + client: Client, + max_head_id: RequiredHeaderIdRef, + ) -> Self { + ParachainsSource { client, max_head_id } + } + + /// Returns reference to the underlying RPC client. + pub fn client(&self) -> &Client { + &self.client + } + + /// Return decoded head of given parachain. + pub async fn on_chain_para_head_id( + &self, + at_block: HeaderIdOf, + ) -> Result>, SubstrateError> { + let para_id = ParaId(P::SourceParachain::PARACHAIN_ID); + let storage_key = + parachain_head_storage_key_at_source(P::SourceRelayChain::PARAS_PALLET_NAME, para_id); + let para_head = self.client.raw_storage_value(storage_key, Some(at_block.1)).await?; + let para_head = para_head.map(|h| ParaHead::decode(&mut &h.0[..])).transpose()?; + let para_head = match para_head { + Some(para_head) => para_head, + None => return Ok(None), + }; + let para_head: HeaderOf = Decode::decode(&mut ¶_head.0[..])?; + Ok(Some(para_head.id())) + } +} + +#[async_trait] +impl RelayClient for ParachainsSource

{ + type Error = SubstrateError; + + async fn reconnect(&mut self) -> Result<(), SubstrateError> { + self.client.reconnect().await + } +} + +#[async_trait] +impl SourceClient> + for ParachainsSource

+where + P::SourceParachain: Chain, +{ + async fn ensure_synced(&self) -> Result { + match self.client.ensure_synced().await { + Ok(_) => Ok(true), + Err(SubstrateError::ClientNotSynced(_)) => Ok(false), + Err(e) => Err(e), + } + } + + async fn parachain_head( + &self, + at_block: HeaderIdOf, + ) -> Result>, Self::Error> { + // if requested relay header is ancient, then we don't even want to try to read the + // parachain head - we simply return `Unavailable` + let best_block_number = self.client.best_finalized_header_number().await?; + if is_ancient_block(at_block.number(), best_block_number) { + log::trace!( + target: "bridge", + "{} block {:?} is ancient. Cannot prove the {} header there", + P::SourceRelayChain::NAME, + at_block, + P::SourceParachain::NAME, + ); + return Ok(AvailableHeader::Unavailable) + } + + // else - try to read head from the source client + let mut para_head_id = AvailableHeader::Missing; + if let Some(on_chain_para_head_id) = self.on_chain_para_head_id(at_block).await? { + // Never return head that is larger than requested. This way we'll never sync + // headers past `max_header_id`. + para_head_id = match *self.max_head_id.lock().await { + AvailableHeader::Unavailable => AvailableHeader::Unavailable, + AvailableHeader::Missing => { + // `max_header_id` is not set. There is no limit. + AvailableHeader::Available(on_chain_para_head_id) + }, + AvailableHeader::Available(max_head_id) if on_chain_para_head_id >= max_head_id => { + // We report at most `max_header_id`. + AvailableHeader::Available(std::cmp::min(on_chain_para_head_id, max_head_id)) + }, + AvailableHeader::Available(_) => { + // the `max_head_id` is not yet available at the source chain => wait and avoid + // syncing extra headers + AvailableHeader::Unavailable + }, + } + } + + Ok(para_head_id) + } + + async fn prove_parachain_head( + &self, + at_block: HeaderIdOf, + ) -> Result<(ParaHeadsProof, ParaHash), Self::Error> { + let parachain = ParaId(P::SourceParachain::PARACHAIN_ID); + let storage_key = + parachain_head_storage_key_at_source(P::SourceRelayChain::PARAS_PALLET_NAME, parachain); + let parachain_heads_proof = self + .client + .prove_storage(vec![storage_key.clone()], at_block.1) + .await? + .into_iter_nodes() + .collect(); + + // why we're reading parachain head here once again (it has already been read at the + // `parachain_head`)? that's because `parachain_head` sometimes returns obsolete parachain + // head and loop sometimes asks to prove this obsolete head and gets other (actual) head + // instead + // + // => since we want to provide proper hashes in our `submit_parachain_heads` call, we're + // rereading actual value here + let parachain_head = self + .client + .raw_storage_value(storage_key, Some(at_block.1)) + .await? + .map(|h| ParaHead::decode(&mut &h.0[..])) + .transpose()? + .ok_or_else(|| { + SubstrateError::Custom(format!( + "Failed to read expected parachain {parachain:?} head at {at_block:?}" + )) + })?; + let parachain_head_hash = parachain_head.hash(); + + Ok((ParaHeadsProof { storage_proof: parachain_heads_proof }, parachain_head_hash)) + } +} diff --git a/bridges/relays/lib-substrate-relay/src/parachains/target.rs b/bridges/relays/lib-substrate-relay/src/parachains/target.rs new file mode 100644 index 0000000000000000000000000000000000000000..6df7bc0a742a9f6693a422b994c7a9203f3c8b74 --- /dev/null +++ b/bridges/relays/lib-substrate-relay/src/parachains/target.rs @@ -0,0 +1,148 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Parachain heads target. + +use crate::{ + parachains::{ + ParachainsPipelineAdapter, SubmitParachainHeadsCallBuilder, SubstrateParachainsPipeline, + }, + TransactionParams, +}; + +use async_trait::async_trait; +use bp_polkadot_core::parachains::{ParaHash, ParaHeadsProof, ParaId}; +use bp_runtime::HeaderIdProvider; +use codec::Decode; +use parachains_relay::parachains_loop::TargetClient; +use relay_substrate_client::{ + AccountIdOf, AccountKeyPairOf, Chain, Client, Error as SubstrateError, HeaderIdOf, + ParachainBase, TransactionEra, TransactionTracker, UnsignedTransaction, +}; +use relay_utils::relay_loop::Client as RelayClient; +use sp_core::{Bytes, Pair}; + +/// Substrate client as parachain heads source. +pub struct ParachainsTarget { + client: Client, + transaction_params: TransactionParams>, +} + +impl ParachainsTarget

{ + /// Creates new parachains target client. + pub fn new( + client: Client, + transaction_params: TransactionParams>, + ) -> Self { + ParachainsTarget { client, transaction_params } + } + + /// Returns reference to the underlying RPC client. + pub fn client(&self) -> &Client { + &self.client + } +} + +impl Clone for ParachainsTarget

{ + fn clone(&self) -> Self { + ParachainsTarget { + client: self.client.clone(), + transaction_params: self.transaction_params.clone(), + } + } +} + +#[async_trait] +impl RelayClient for ParachainsTarget

{ + type Error = SubstrateError; + + async fn reconnect(&mut self) -> Result<(), SubstrateError> { + self.client.reconnect().await + } +} + +#[async_trait] +impl

TargetClient> for ParachainsTarget

+where + P: SubstrateParachainsPipeline, + AccountIdOf: From< as Pair>::Public>, +{ + type TransactionTracker = TransactionTracker>; + + async fn best_block(&self) -> Result, Self::Error> { + let best_header = self.client.best_header().await?; + let best_id = best_header.id(); + + Ok(best_id) + } + + async fn best_finalized_source_relay_chain_block( + &self, + at_block: &HeaderIdOf, + ) -> Result, Self::Error> { + self.client + .typed_state_call::<_, Option>>( + P::SourceRelayChain::BEST_FINALIZED_HEADER_ID_METHOD.into(), + (), + Some(at_block.1), + ) + .await? + .map(Ok) + .unwrap_or(Err(SubstrateError::BridgePalletIsNotInitialized)) + } + + async fn parachain_head( + &self, + at_block: HeaderIdOf, + ) -> Result>, Self::Error> { + let encoded_best_finalized_source_para_block = self + .client + .state_call( + P::SourceParachain::BEST_FINALIZED_HEADER_ID_METHOD.into(), + Bytes(Vec::new()), + Some(at_block.1), + ) + .await?; + + Ok(Option::>::decode( + &mut &encoded_best_finalized_source_para_block.0[..], + ) + .map_err(SubstrateError::ResponseParseFailed)?) + } + + async fn submit_parachain_head_proof( + &self, + at_relay_block: HeaderIdOf, + updated_head_hash: ParaHash, + proof: ParaHeadsProof, + ) -> Result { + let transaction_params = self.transaction_params.clone(); + let call = P::SubmitParachainHeadsCallBuilder::build_submit_parachain_heads_call( + at_relay_block, + vec![(ParaId(P::SourceParachain::PARACHAIN_ID), updated_head_hash)], + proof, + ); + self.client + .submit_and_watch_signed_extrinsic( + &transaction_params.signer, + move |best_block_id, transaction_nonce| { + Ok(UnsignedTransaction::new(call.into(), transaction_nonce) + .era(TransactionEra::new(best_block_id, transaction_params.mortality))) + }, + ) + .await + } +} diff --git a/bridges/relays/messages/Cargo.toml b/bridges/relays/messages/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..570e11c0da6feeaa7bbbbd76a845df51444a10cb --- /dev/null +++ b/bridges/relays/messages/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "messages-relay" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +publish = false + +[lints] +workspace = true + +[dependencies] +async-std = { version = "1.9.0", features = ["attributes"] } +async-trait = "0.1.79" +env_logger = "0.11" +futures = "0.3.30" +hex = "0.4" +log = { workspace = true } +num-traits = "0.2" +parking_lot = "0.12.1" + +# Bridge Dependencies + +bp-messages = { path = "../../primitives/messages" } +finality-relay = { path = "../finality" } +relay-utils = { path = "../utils" } + +sp-arithmetic = { path = "../../../substrate/primitives/arithmetic" } diff --git a/bridges/relays/messages/src/lib.rs b/bridges/relays/messages/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..9c62cee5ee3db1e0b8825d2893d53422bf44a33c --- /dev/null +++ b/bridges/relays/messages/src/lib.rs @@ -0,0 +1,37 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Relaying [`pallet-bridge-messages`](../pallet_bridge_messages/index.html) application specific +//! data. Message lane allows sending arbitrary messages between bridged chains. This +//! module provides entrypoint that starts reading messages from given message lane +//! of source chain and submits proof-of-message-at-source-chain transactions to the +//! target chain. Additionally, proofs-of-messages-delivery are sent back from the +//! target chain to the source chain. + +// required for futures::select! +#![recursion_limit = "1024"] +#![warn(missing_docs)] + +mod metrics; + +pub mod message_lane; +pub mod message_lane_loop; + +mod message_race_delivery; +mod message_race_limits; +mod message_race_loop; +mod message_race_receiving; +mod message_race_strategy; diff --git a/bridges/relays/messages/src/message_lane.rs b/bridges/relays/messages/src/message_lane.rs new file mode 100644 index 0000000000000000000000000000000000000000..5c9728ad93abd5aa1ea9b2fc77b2a6f9968539f6 --- /dev/null +++ b/bridges/relays/messages/src/message_lane.rs @@ -0,0 +1,71 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! One-way message lane types. Within single one-way lane we have three 'races' where we try to: +//! +//! 1) relay new messages from source to target node; +//! 2) relay proof-of-delivery from target to source node. + +use num_traits::{SaturatingAdd, Zero}; +use relay_utils::{BlockNumberBase, HeaderId}; +use sp_arithmetic::traits::AtLeast32BitUnsigned; +use std::{fmt::Debug, ops::Sub}; + +/// One-way message lane. +pub trait MessageLane: 'static + Clone + Send + Sync { + /// Name of the messages source. + const SOURCE_NAME: &'static str; + /// Name of the messages target. + const TARGET_NAME: &'static str; + + /// Messages proof. + type MessagesProof: Clone + Debug + Send + Sync; + /// Messages receiving proof. + type MessagesReceivingProof: Clone + Debug + Send + Sync; + + /// The type of the source chain token balance, that is used to: + /// + /// 1) pay transaction fees; + /// 2) pay message delivery and dispatch fee; + /// 3) pay relayer rewards. + type SourceChainBalance: AtLeast32BitUnsigned + + Clone + + Copy + + Debug + + PartialOrd + + Sub + + SaturatingAdd + + Zero + + Send + + Sync; + /// Number of the source header. + type SourceHeaderNumber: BlockNumberBase; + /// Hash of the source header. + type SourceHeaderHash: Clone + Debug + Default + PartialEq + Send + Sync; + + /// Number of the target header. + type TargetHeaderNumber: BlockNumberBase; + /// Hash of the target header. + type TargetHeaderHash: Clone + Debug + Default + PartialEq + Send + Sync; +} + +/// Source header id within given one-way message lane. +pub type SourceHeaderIdOf

= + HeaderId<

::SourceHeaderHash,

::SourceHeaderNumber>; + +/// Target header id within given one-way message lane. +pub type TargetHeaderIdOf

= + HeaderId<

::TargetHeaderHash,

::TargetHeaderNumber>; diff --git a/bridges/relays/messages/src/message_lane_loop.rs b/bridges/relays/messages/src/message_lane_loop.rs new file mode 100644 index 0000000000000000000000000000000000000000..b681d86d2ae8fadb6b0d5b5277de5a1285533d36 --- /dev/null +++ b/bridges/relays/messages/src/message_lane_loop.rs @@ -0,0 +1,1277 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Message delivery loop. Designed to work with messages pallet. +//! +//! Single relay instance delivers messages of single lane in single direction. +//! To serve two-way lane, you would need two instances of relay. +//! To serve N two-way lanes, you would need N*2 instances of relay. +//! +//! Please keep in mind that the best header in this file is actually best +//! finalized header. I.e. when talking about headers in lane context, we +//! only care about finalized headers. + +use std::{collections::BTreeMap, fmt::Debug, future::Future, ops::RangeInclusive, time::Duration}; + +use async_trait::async_trait; +use futures::{channel::mpsc::unbounded, future::FutureExt, stream::StreamExt}; + +use bp_messages::{LaneId, MessageNonce, UnrewardedRelayersState, Weight}; +use relay_utils::{ + interval, metrics::MetricsParams, process_future_result, relay_loop::Client as RelayClient, + retry_backoff, FailedClient, TransactionTracker, +}; + +use crate::{ + message_lane::{MessageLane, SourceHeaderIdOf, TargetHeaderIdOf}, + message_race_delivery::run as run_message_delivery_race, + message_race_receiving::run as run_message_receiving_race, + metrics::MessageLaneLoopMetrics, +}; + +/// Message lane loop configuration params. +#[derive(Debug, Clone)] +pub struct Params { + /// Id of lane this loop is servicing. + pub lane: LaneId, + /// Interval at which we ask target node about its updates. + pub source_tick: Duration, + /// Interval at which we ask target node about its updates. + pub target_tick: Duration, + /// Delay between moments when connection error happens and our reconnect attempt. + pub reconnect_delay: Duration, + /// Message delivery race parameters. + pub delivery_params: MessageDeliveryParams, +} + +/// Message delivery race parameters. +#[derive(Debug, Clone)] +pub struct MessageDeliveryParams { + /// Maximal number of unconfirmed relayer entries at the inbound lane. If there's that number + /// of entries in the `InboundLaneData::relayers` set, all new messages will be rejected until + /// reward payment will be proved (by including outbound lane state to the message delivery + /// transaction). + pub max_unrewarded_relayer_entries_at_target: MessageNonce, + /// Message delivery race will stop delivering messages if there are + /// `max_unconfirmed_nonces_at_target` unconfirmed nonces on the target node. The race would + /// continue once they're confirmed by the receiving race. + pub max_unconfirmed_nonces_at_target: MessageNonce, + /// Maximal number of relayed messages in single delivery transaction. + pub max_messages_in_single_batch: MessageNonce, + /// Maximal cumulative dispatch weight of relayed messages in single delivery transaction. + pub max_messages_weight_in_single_batch: Weight, + /// Maximal cumulative size of relayed messages in single delivery transaction. + pub max_messages_size_in_single_batch: u32, +} + +/// Message details. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct MessageDetails { + /// Message dispatch weight. + pub dispatch_weight: Weight, + /// Message size (number of bytes in encoded payload). + pub size: u32, + /// The relayer reward paid in the source chain tokens. + pub reward: SourceChainBalance, +} + +/// Messages details map. +pub type MessageDetailsMap = + BTreeMap>; + +/// Message delivery race proof parameters. +#[derive(Debug, PartialEq, Eq)] +pub struct MessageProofParameters { + /// Include outbound lane state proof? + pub outbound_state_proof_required: bool, + /// Cumulative dispatch weight of messages that we're building proof for. + pub dispatch_weight: Weight, +} + +/// Artifacts of submitting nonces proof. +pub struct NoncesSubmitArtifacts { + /// Submitted nonces range. + pub nonces: RangeInclusive, + /// Submitted transaction tracker. + pub tx_tracker: T, +} + +/// Batch transaction that already submit some headers and needs to be extended with +/// messages/delivery proof before sending. +pub trait BatchTransaction: Debug + Send + Sync { + /// Header that was required in the original call and which is bundled within this + /// batch transaction. + fn required_header_id(&self) -> HeaderId; +} + +/// Source client trait. +#[async_trait] +pub trait SourceClient: RelayClient { + /// Type of batch transaction that submits finality and message receiving proof. + type BatchTransaction: BatchTransaction> + Clone; + /// Transaction tracker to track submitted transactions. + type TransactionTracker: TransactionTracker>; + + /// Returns state of the client. + async fn state(&self) -> Result, Self::Error>; + + /// Get nonce of instance of latest generated message. + async fn latest_generated_nonce( + &self, + id: SourceHeaderIdOf

, + ) -> Result<(SourceHeaderIdOf

, MessageNonce), Self::Error>; + + /// Get nonce of the latest message, which receiving has been confirmed by the target chain. + async fn latest_confirmed_received_nonce( + &self, + id: SourceHeaderIdOf

, + ) -> Result<(SourceHeaderIdOf

, MessageNonce), Self::Error>; + + /// Returns mapping of message nonces, generated on this client, to their weights. + /// + /// Some messages may be missing from returned map, if corresponding messages were pruned at + /// the source chain. + async fn generated_message_details( + &self, + id: SourceHeaderIdOf

, + nonces: RangeInclusive, + ) -> Result, Self::Error>; + + /// Prove messages in inclusive range [begin; end]. + async fn prove_messages( + &self, + id: SourceHeaderIdOf

, + nonces: RangeInclusive, + proof_parameters: MessageProofParameters, + ) -> Result<(SourceHeaderIdOf

, RangeInclusive, P::MessagesProof), Self::Error>; + + /// Submit messages receiving proof. + async fn submit_messages_receiving_proof( + &self, + maybe_batch_tx: Option, + generated_at_block: TargetHeaderIdOf

, + proof: P::MessagesReceivingProof, + ) -> Result; + + /// We need given finalized target header on source to continue synchronization. + /// + /// We assume that the absence of header `id` has already been checked by caller. + /// + /// The client may return `Some(_)`, which means that nothing has happened yet and + /// the caller must generate and append message receiving proof to the batch transaction + /// to actually send it (along with required header) to the node. + /// + /// If function has returned `None`, it means that the caller now must wait for the + /// appearance of the target header `id` at the source client. + async fn require_target_header_on_source( + &self, + id: TargetHeaderIdOf

, + ) -> Result, Self::Error>; +} + +/// Target client trait. +#[async_trait] +pub trait TargetClient: RelayClient { + /// Type of batch transaction that submits finality and messages proof. + type BatchTransaction: BatchTransaction> + Clone; + /// Transaction tracker to track submitted transactions. + type TransactionTracker: TransactionTracker>; + + /// Returns state of the client. + async fn state(&self) -> Result, Self::Error>; + + /// Get nonce of latest received message. + async fn latest_received_nonce( + &self, + id: TargetHeaderIdOf

, + ) -> Result<(TargetHeaderIdOf

, MessageNonce), Self::Error>; + + /// Get nonce of the latest confirmed message. + async fn latest_confirmed_received_nonce( + &self, + id: TargetHeaderIdOf

, + ) -> Result<(TargetHeaderIdOf

, MessageNonce), Self::Error>; + + /// Get state of unrewarded relayers set at the inbound lane. + async fn unrewarded_relayers_state( + &self, + id: TargetHeaderIdOf

, + ) -> Result<(TargetHeaderIdOf

, UnrewardedRelayersState), Self::Error>; + + /// Prove messages receiving at given block. + async fn prove_messages_receiving( + &self, + id: TargetHeaderIdOf

, + ) -> Result<(TargetHeaderIdOf

, P::MessagesReceivingProof), Self::Error>; + + /// Submit messages proof. + async fn submit_messages_proof( + &self, + maybe_batch_tx: Option, + generated_at_header: SourceHeaderIdOf

, + nonces: RangeInclusive, + proof: P::MessagesProof, + ) -> Result, Self::Error>; + + /// We need given finalized source header on target to continue synchronization. + /// + /// The client may return `Some(_)`, which means that nothing has happened yet and + /// the caller must generate and append messages proof to the batch transaction + /// to actually send it (along with required header) to the node. + /// + /// If function has returned `None`, it means that the caller now must wait for the + /// appearance of the source header `id` at the target client. + async fn require_source_header_on_target( + &self, + id: SourceHeaderIdOf

, + ) -> Result, Self::Error>; +} + +/// State of the client. +#[derive(Clone, Debug, Default, PartialEq, Eq)] +pub struct ClientState { + /// The best header id of this chain. + pub best_self: SelfHeaderId, + /// Best finalized header id of this chain. + pub best_finalized_self: SelfHeaderId, + /// Best finalized header id of the peer chain read at the best block of this chain (at + /// `best_finalized_self`). + /// + /// It may be `None` e,g. if peer is a parachain and we haven't yet relayed any parachain + /// heads. + pub best_finalized_peer_at_best_self: Option, + /// Header id of the peer chain with the number, matching the + /// `best_finalized_peer_at_best_self`. + pub actual_best_finalized_peer_at_best_self: Option, +} + +/// State of source client in one-way message lane. +pub type SourceClientState

= ClientState, TargetHeaderIdOf

>; + +/// State of target client in one-way message lane. +pub type TargetClientState

= ClientState, SourceHeaderIdOf

>; + +/// Both clients state. +#[derive(Debug, Default)] +pub struct ClientsState { + /// Source client state. + pub source: Option>, + /// Target client state. + pub target: Option>, +} + +/// Return prefix that will be used by default to expose Prometheus metrics of the finality proofs +/// sync loop. +pub fn metrics_prefix(lane: &LaneId) -> String { + format!("{}_to_{}_MessageLane_{}", P::SOURCE_NAME, P::TARGET_NAME, hex::encode(lane)) +} + +/// Run message lane service loop. +pub async fn run( + params: Params, + source_client: impl SourceClient

, + target_client: impl TargetClient

, + metrics_params: MetricsParams, + exit_signal: impl Future + Send + 'static, +) -> Result<(), relay_utils::Error> { + let exit_signal = exit_signal.shared(); + relay_utils::relay_loop(source_client, target_client) + .reconnect_delay(params.reconnect_delay) + .with_metrics(metrics_params) + .loop_metric(MessageLaneLoopMetrics::new(Some(&metrics_prefix::

(¶ms.lane)))?)? + .expose() + .await? + .run(metrics_prefix::

(¶ms.lane), move |source_client, target_client, metrics| { + run_until_connection_lost( + params.clone(), + source_client, + target_client, + metrics, + exit_signal.clone(), + ) + }) + .await +} + +/// Run one-way message delivery loop until connection with target or source node is lost, or exit +/// signal is received. +async fn run_until_connection_lost, TC: TargetClient

>( + params: Params, + source_client: SC, + target_client: TC, + metrics_msg: Option, + exit_signal: impl Future, +) -> Result<(), FailedClient> { + let mut source_retry_backoff = retry_backoff(); + let mut source_client_is_online = false; + let mut source_state_required = true; + let source_state = source_client.state().fuse(); + let source_go_offline_future = futures::future::Fuse::terminated(); + let source_tick_stream = interval(params.source_tick).fuse(); + + let mut target_retry_backoff = retry_backoff(); + let mut target_client_is_online = false; + let mut target_state_required = true; + let target_state = target_client.state().fuse(); + let target_go_offline_future = futures::future::Fuse::terminated(); + let target_tick_stream = interval(params.target_tick).fuse(); + + let ( + (delivery_source_state_sender, delivery_source_state_receiver), + (delivery_target_state_sender, delivery_target_state_receiver), + ) = (unbounded(), unbounded()); + let delivery_race_loop = run_message_delivery_race( + source_client.clone(), + delivery_source_state_receiver, + target_client.clone(), + delivery_target_state_receiver, + metrics_msg.clone(), + params.delivery_params, + ) + .fuse(); + + let ( + (receiving_source_state_sender, receiving_source_state_receiver), + (receiving_target_state_sender, receiving_target_state_receiver), + ) = (unbounded(), unbounded()); + let receiving_race_loop = run_message_receiving_race( + source_client.clone(), + receiving_source_state_receiver, + target_client.clone(), + receiving_target_state_receiver, + metrics_msg.clone(), + ) + .fuse(); + + let exit_signal = exit_signal.fuse(); + + futures::pin_mut!( + source_state, + source_go_offline_future, + source_tick_stream, + target_state, + target_go_offline_future, + target_tick_stream, + delivery_race_loop, + receiving_race_loop, + exit_signal + ); + + loop { + futures::select! { + new_source_state = source_state => { + source_state_required = false; + + source_client_is_online = process_future_result( + new_source_state, + &mut source_retry_backoff, + |new_source_state| { + log::debug!( + target: "bridge", + "Received state from {} node: {:?}", + P::SOURCE_NAME, + new_source_state, + ); + let _ = delivery_source_state_sender.unbounded_send(new_source_state.clone()); + let _ = receiving_source_state_sender.unbounded_send(new_source_state.clone()); + + if let Some(metrics_msg) = metrics_msg.as_ref() { + metrics_msg.update_source_state::

(new_source_state); + } + }, + &mut source_go_offline_future, + async_std::task::sleep, + || format!("Error retrieving state from {} node", P::SOURCE_NAME), + ).fail_if_connection_error(FailedClient::Source)?; + }, + _ = source_go_offline_future => { + source_client_is_online = true; + }, + _ = source_tick_stream.next() => { + source_state_required = true; + }, + new_target_state = target_state => { + target_state_required = false; + + target_client_is_online = process_future_result( + new_target_state, + &mut target_retry_backoff, + |new_target_state| { + log::debug!( + target: "bridge", + "Received state from {} node: {:?}", + P::TARGET_NAME, + new_target_state, + ); + let _ = delivery_target_state_sender.unbounded_send(new_target_state.clone()); + let _ = receiving_target_state_sender.unbounded_send(new_target_state.clone()); + + if let Some(metrics_msg) = metrics_msg.as_ref() { + metrics_msg.update_target_state::

(new_target_state); + } + }, + &mut target_go_offline_future, + async_std::task::sleep, + || format!("Error retrieving state from {} node", P::TARGET_NAME), + ).fail_if_connection_error(FailedClient::Target)?; + }, + _ = target_go_offline_future => { + target_client_is_online = true; + }, + _ = target_tick_stream.next() => { + target_state_required = true; + }, + + delivery_error = delivery_race_loop => { + match delivery_error { + Ok(_) => unreachable!("only ends with error; qed"), + Err(err) => return Err(err), + } + }, + receiving_error = receiving_race_loop => { + match receiving_error { + Ok(_) => unreachable!("only ends with error; qed"), + Err(err) => return Err(err), + } + }, + + () = exit_signal => { + return Ok(()); + } + } + + if source_client_is_online && source_state_required { + log::debug!(target: "bridge", "Asking {} node about its state", P::SOURCE_NAME); + source_state.set(source_client.state().fuse()); + source_client_is_online = false; + } + + if target_client_is_online && target_state_required { + log::debug!(target: "bridge", "Asking {} node about its state", P::TARGET_NAME); + target_state.set(target_client.state().fuse()); + target_client_is_online = false; + } + } +} + +#[cfg(test)] +pub(crate) mod tests { + use std::sync::Arc; + + use futures::stream::StreamExt; + use parking_lot::Mutex; + + use relay_utils::{HeaderId, MaybeConnectionError, TrackedTransactionStatus}; + + use super::*; + + pub fn header_id(number: TestSourceHeaderNumber) -> TestSourceHeaderId { + HeaderId(number, number) + } + + pub type TestSourceChainBalance = u64; + pub type TestSourceHeaderId = HeaderId; + pub type TestTargetHeaderId = HeaderId; + + pub type TestMessagesProof = (RangeInclusive, Option); + pub type TestMessagesReceivingProof = MessageNonce; + + pub type TestSourceHeaderNumber = u64; + pub type TestSourceHeaderHash = u64; + + pub type TestTargetHeaderNumber = u64; + pub type TestTargetHeaderHash = u64; + + #[derive(Debug)] + pub struct TestError; + + impl MaybeConnectionError for TestError { + fn is_connection_error(&self) -> bool { + true + } + } + + #[derive(Clone)] + pub struct TestMessageLane; + + impl MessageLane for TestMessageLane { + const SOURCE_NAME: &'static str = "TestSource"; + const TARGET_NAME: &'static str = "TestTarget"; + + type MessagesProof = TestMessagesProof; + type MessagesReceivingProof = TestMessagesReceivingProof; + + type SourceChainBalance = TestSourceChainBalance; + type SourceHeaderNumber = TestSourceHeaderNumber; + type SourceHeaderHash = TestSourceHeaderHash; + + type TargetHeaderNumber = TestTargetHeaderNumber; + type TargetHeaderHash = TestTargetHeaderHash; + } + + #[derive(Clone, Debug)] + pub struct TestMessagesBatchTransaction { + required_header_id: TestSourceHeaderId, + } + + #[async_trait] + impl BatchTransaction for TestMessagesBatchTransaction { + fn required_header_id(&self) -> TestSourceHeaderId { + self.required_header_id + } + } + + #[derive(Clone, Debug)] + pub struct TestConfirmationBatchTransaction { + required_header_id: TestTargetHeaderId, + } + + #[async_trait] + impl BatchTransaction for TestConfirmationBatchTransaction { + fn required_header_id(&self) -> TestTargetHeaderId { + self.required_header_id + } + } + + #[derive(Clone, Debug)] + pub struct TestTransactionTracker(TrackedTransactionStatus); + + impl Default for TestTransactionTracker { + fn default() -> TestTransactionTracker { + TestTransactionTracker(TrackedTransactionStatus::Finalized(Default::default())) + } + } + + #[async_trait] + impl TransactionTracker for TestTransactionTracker { + type HeaderId = TestTargetHeaderId; + + async fn wait(self) -> TrackedTransactionStatus { + self.0 + } + } + + #[derive(Debug, Clone)] + pub struct TestClientData { + is_source_fails: bool, + is_source_reconnected: bool, + source_state: SourceClientState, + source_latest_generated_nonce: MessageNonce, + source_latest_confirmed_received_nonce: MessageNonce, + source_tracked_transaction_status: TrackedTransactionStatus, + submitted_messages_receiving_proofs: Vec, + is_target_fails: bool, + is_target_reconnected: bool, + target_state: SourceClientState, + target_latest_received_nonce: MessageNonce, + target_latest_confirmed_received_nonce: MessageNonce, + target_tracked_transaction_status: TrackedTransactionStatus, + submitted_messages_proofs: Vec, + target_to_source_batch_transaction: Option, + target_to_source_header_required: Option, + target_to_source_header_requirements: Vec, + source_to_target_batch_transaction: Option, + source_to_target_header_required: Option, + source_to_target_header_requirements: Vec, + } + + impl Default for TestClientData { + fn default() -> TestClientData { + TestClientData { + is_source_fails: false, + is_source_reconnected: false, + source_state: Default::default(), + source_latest_generated_nonce: 0, + source_latest_confirmed_received_nonce: 0, + source_tracked_transaction_status: TrackedTransactionStatus::Finalized(HeaderId( + 0, + Default::default(), + )), + submitted_messages_receiving_proofs: Vec::new(), + is_target_fails: false, + is_target_reconnected: false, + target_state: Default::default(), + target_latest_received_nonce: 0, + target_latest_confirmed_received_nonce: 0, + target_tracked_transaction_status: TrackedTransactionStatus::Finalized(HeaderId( + 0, + Default::default(), + )), + submitted_messages_proofs: Vec::new(), + target_to_source_batch_transaction: None, + target_to_source_header_required: None, + target_to_source_header_requirements: Vec::new(), + source_to_target_batch_transaction: None, + source_to_target_header_required: None, + source_to_target_header_requirements: Vec::new(), + } + } + } + + impl TestClientData { + fn receive_messages( + &mut self, + maybe_batch_tx: Option, + proof: TestMessagesProof, + ) { + self.target_state.best_self = + HeaderId(self.target_state.best_self.0 + 1, self.target_state.best_self.1 + 1); + self.target_state.best_finalized_self = self.target_state.best_self; + self.target_latest_received_nonce = *proof.0.end(); + if let Some(maybe_batch_tx) = maybe_batch_tx { + self.target_state.best_finalized_peer_at_best_self = + Some(maybe_batch_tx.required_header_id()); + } + if let Some(target_latest_confirmed_received_nonce) = proof.1 { + self.target_latest_confirmed_received_nonce = + target_latest_confirmed_received_nonce; + } + self.submitted_messages_proofs.push(proof); + } + + fn receive_messages_delivery_proof( + &mut self, + maybe_batch_tx: Option, + proof: TestMessagesReceivingProof, + ) { + self.source_state.best_self = + HeaderId(self.source_state.best_self.0 + 1, self.source_state.best_self.1 + 1); + self.source_state.best_finalized_self = self.source_state.best_self; + if let Some(maybe_batch_tx) = maybe_batch_tx { + self.source_state.best_finalized_peer_at_best_self = + Some(maybe_batch_tx.required_header_id()); + } + self.submitted_messages_receiving_proofs.push(proof); + self.source_latest_confirmed_received_nonce = proof; + } + } + + #[derive(Clone)] + pub struct TestSourceClient { + data: Arc>, + tick: Arc, + post_tick: Arc, + } + + impl Default for TestSourceClient { + fn default() -> Self { + TestSourceClient { + data: Arc::new(Mutex::new(TestClientData::default())), + tick: Arc::new(|_| {}), + post_tick: Arc::new(|_| {}), + } + } + } + + #[async_trait] + impl RelayClient for TestSourceClient { + type Error = TestError; + + async fn reconnect(&mut self) -> Result<(), TestError> { + { + let mut data = self.data.lock(); + (self.tick)(&mut data); + data.is_source_reconnected = true; + (self.post_tick)(&mut data); + } + Ok(()) + } + } + + #[async_trait] + impl SourceClient for TestSourceClient { + type BatchTransaction = TestConfirmationBatchTransaction; + type TransactionTracker = TestTransactionTracker; + + async fn state(&self) -> Result, TestError> { + let mut data = self.data.lock(); + (self.tick)(&mut data); + if data.is_source_fails { + return Err(TestError) + } + (self.post_tick)(&mut data); + Ok(data.source_state.clone()) + } + + async fn latest_generated_nonce( + &self, + id: SourceHeaderIdOf, + ) -> Result<(SourceHeaderIdOf, MessageNonce), TestError> { + let mut data = self.data.lock(); + (self.tick)(&mut data); + if data.is_source_fails { + return Err(TestError) + } + (self.post_tick)(&mut data); + Ok((id, data.source_latest_generated_nonce)) + } + + async fn latest_confirmed_received_nonce( + &self, + id: SourceHeaderIdOf, + ) -> Result<(SourceHeaderIdOf, MessageNonce), TestError> { + let mut data = self.data.lock(); + (self.tick)(&mut data); + (self.post_tick)(&mut data); + Ok((id, data.source_latest_confirmed_received_nonce)) + } + + async fn generated_message_details( + &self, + _id: SourceHeaderIdOf, + nonces: RangeInclusive, + ) -> Result, TestError> { + Ok(nonces + .map(|nonce| { + ( + nonce, + MessageDetails { + dispatch_weight: Weight::from_parts(1, 0), + size: 1, + reward: 1, + }, + ) + }) + .collect()) + } + + async fn prove_messages( + &self, + id: SourceHeaderIdOf, + nonces: RangeInclusive, + proof_parameters: MessageProofParameters, + ) -> Result< + (SourceHeaderIdOf, RangeInclusive, TestMessagesProof), + TestError, + > { + let mut data = self.data.lock(); + (self.tick)(&mut data); + (self.post_tick)(&mut data); + Ok(( + id, + nonces.clone(), + ( + nonces, + if proof_parameters.outbound_state_proof_required { + Some(data.source_latest_confirmed_received_nonce) + } else { + None + }, + ), + )) + } + + async fn submit_messages_receiving_proof( + &self, + maybe_batch_tx: Option, + _generated_at_block: TargetHeaderIdOf, + proof: TestMessagesReceivingProof, + ) -> Result { + let mut data = self.data.lock(); + (self.tick)(&mut data); + data.receive_messages_delivery_proof(maybe_batch_tx, proof); + (self.post_tick)(&mut data); + Ok(TestTransactionTracker(data.source_tracked_transaction_status)) + } + + async fn require_target_header_on_source( + &self, + id: TargetHeaderIdOf, + ) -> Result, Self::Error> { + let mut data = self.data.lock(); + data.target_to_source_header_required = Some(id); + data.target_to_source_header_requirements.push(id); + (self.tick)(&mut data); + (self.post_tick)(&mut data); + + Ok(data.target_to_source_batch_transaction.take().map(|mut tx| { + tx.required_header_id = id; + tx + })) + } + } + + #[derive(Clone)] + pub struct TestTargetClient { + data: Arc>, + tick: Arc, + post_tick: Arc, + } + + impl Default for TestTargetClient { + fn default() -> Self { + TestTargetClient { + data: Arc::new(Mutex::new(TestClientData::default())), + tick: Arc::new(|_| {}), + post_tick: Arc::new(|_| {}), + } + } + } + + #[async_trait] + impl RelayClient for TestTargetClient { + type Error = TestError; + + async fn reconnect(&mut self) -> Result<(), TestError> { + { + let mut data = self.data.lock(); + (self.tick)(&mut data); + data.is_target_reconnected = true; + (self.post_tick)(&mut data); + } + Ok(()) + } + } + + #[async_trait] + impl TargetClient for TestTargetClient { + type BatchTransaction = TestMessagesBatchTransaction; + type TransactionTracker = TestTransactionTracker; + + async fn state(&self) -> Result, TestError> { + let mut data = self.data.lock(); + (self.tick)(&mut data); + if data.is_target_fails { + return Err(TestError) + } + (self.post_tick)(&mut data); + Ok(data.target_state.clone()) + } + + async fn latest_received_nonce( + &self, + id: TargetHeaderIdOf, + ) -> Result<(TargetHeaderIdOf, MessageNonce), TestError> { + let mut data = self.data.lock(); + (self.tick)(&mut data); + if data.is_target_fails { + return Err(TestError) + } + (self.post_tick)(&mut data); + Ok((id, data.target_latest_received_nonce)) + } + + async fn unrewarded_relayers_state( + &self, + id: TargetHeaderIdOf, + ) -> Result<(TargetHeaderIdOf, UnrewardedRelayersState), TestError> { + Ok(( + id, + UnrewardedRelayersState { + unrewarded_relayer_entries: 0, + messages_in_oldest_entry: 0, + total_messages: 0, + last_delivered_nonce: 0, + }, + )) + } + + async fn latest_confirmed_received_nonce( + &self, + id: TargetHeaderIdOf, + ) -> Result<(TargetHeaderIdOf, MessageNonce), TestError> { + let mut data = self.data.lock(); + (self.tick)(&mut data); + if data.is_target_fails { + return Err(TestError) + } + (self.post_tick)(&mut data); + Ok((id, data.target_latest_confirmed_received_nonce)) + } + + async fn prove_messages_receiving( + &self, + id: TargetHeaderIdOf, + ) -> Result<(TargetHeaderIdOf, TestMessagesReceivingProof), TestError> { + Ok((id, self.data.lock().target_latest_received_nonce)) + } + + async fn submit_messages_proof( + &self, + maybe_batch_tx: Option, + _generated_at_header: SourceHeaderIdOf, + nonces: RangeInclusive, + proof: TestMessagesProof, + ) -> Result, TestError> { + let mut data = self.data.lock(); + (self.tick)(&mut data); + if data.is_target_fails { + return Err(TestError) + } + data.receive_messages(maybe_batch_tx, proof); + (self.post_tick)(&mut data); + Ok(NoncesSubmitArtifacts { + nonces, + tx_tracker: TestTransactionTracker(data.target_tracked_transaction_status), + }) + } + + async fn require_source_header_on_target( + &self, + id: SourceHeaderIdOf, + ) -> Result, Self::Error> { + let mut data = self.data.lock(); + data.source_to_target_header_required = Some(id); + data.source_to_target_header_requirements.push(id); + (self.tick)(&mut data); + (self.post_tick)(&mut data); + + Ok(data.source_to_target_batch_transaction.take().map(|mut tx| { + tx.required_header_id = id; + tx + })) + } + } + + fn run_loop_test( + data: Arc>, + source_tick: Arc, + source_post_tick: Arc, + target_tick: Arc, + target_post_tick: Arc, + exit_signal: impl Future + 'static + Send, + ) -> TestClientData { + async_std::task::block_on(async { + let source_client = TestSourceClient { + data: data.clone(), + tick: source_tick, + post_tick: source_post_tick, + }; + let target_client = TestTargetClient { + data: data.clone(), + tick: target_tick, + post_tick: target_post_tick, + }; + let _ = run( + Params { + lane: LaneId([0, 0, 0, 0]), + source_tick: Duration::from_millis(100), + target_tick: Duration::from_millis(100), + reconnect_delay: Duration::from_millis(0), + delivery_params: MessageDeliveryParams { + max_unrewarded_relayer_entries_at_target: 4, + max_unconfirmed_nonces_at_target: 4, + max_messages_in_single_batch: 4, + max_messages_weight_in_single_batch: Weight::from_parts(4, 0), + max_messages_size_in_single_batch: 4, + }, + }, + source_client, + target_client, + MetricsParams::disabled(), + exit_signal, + ) + .await; + let result = data.lock().clone(); + result + }) + } + + #[test] + fn message_lane_loop_is_able_to_recover_from_connection_errors() { + // with this configuration, source client will return Err, making source client + // reconnect. Then the target client will fail with Err + reconnect. Then we finally + // able to deliver messages. + let (exit_sender, exit_receiver) = unbounded(); + let result = run_loop_test( + Arc::new(Mutex::new(TestClientData { + is_source_fails: true, + source_state: ClientState { + best_self: HeaderId(0, 0), + best_finalized_self: HeaderId(0, 0), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + source_latest_generated_nonce: 1, + target_state: ClientState { + best_self: HeaderId(0, 0), + best_finalized_self: HeaderId(0, 0), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + target_latest_received_nonce: 0, + ..Default::default() + })), + Arc::new(|data: &mut TestClientData| { + if data.is_source_reconnected { + data.is_source_fails = false; + data.is_target_fails = true; + } + }), + Arc::new(|_| {}), + Arc::new(move |data: &mut TestClientData| { + if data.is_target_reconnected { + data.is_target_fails = false; + } + if data.target_state.best_finalized_peer_at_best_self.unwrap().0 < 10 { + data.target_state.best_finalized_peer_at_best_self = Some(HeaderId( + data.target_state.best_finalized_peer_at_best_self.unwrap().0 + 1, + data.target_state.best_finalized_peer_at_best_self.unwrap().0 + 1, + )); + } + if !data.submitted_messages_proofs.is_empty() { + exit_sender.unbounded_send(()).unwrap(); + } + }), + Arc::new(|_| {}), + exit_receiver.into_future().map(|(_, _)| ()), + ); + + assert_eq!(result.submitted_messages_proofs, vec![(1..=1, None)],); + } + + #[test] + fn message_lane_loop_is_able_to_recover_from_unsuccessful_transaction() { + // with this configuration, both source and target clients will mine their transactions, but + // their corresponding nonce won't be udpated => reconnect will happen + let (exit_sender, exit_receiver) = unbounded(); + let result = run_loop_test( + Arc::new(Mutex::new(TestClientData { + source_state: ClientState { + best_self: HeaderId(0, 0), + best_finalized_self: HeaderId(0, 0), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + source_latest_generated_nonce: 1, + target_state: ClientState { + best_self: HeaderId(0, 0), + best_finalized_self: HeaderId(0, 0), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + target_latest_received_nonce: 0, + ..Default::default() + })), + Arc::new(move |data: &mut TestClientData| { + // blocks are produced on every tick + data.source_state.best_self = + HeaderId(data.source_state.best_self.0 + 1, data.source_state.best_self.1 + 1); + data.source_state.best_finalized_self = data.source_state.best_self; + // syncing target headers -> source chain + if let Some(last_requirement) = data.target_to_source_header_requirements.last() { + if *last_requirement != + data.source_state.best_finalized_peer_at_best_self.unwrap() + { + data.source_state.best_finalized_peer_at_best_self = + Some(*last_requirement); + } + } + }), + Arc::new(move |data: &mut TestClientData| { + // if it is the first time we're submitting delivery proof, let's revert changes + // to source status => then the delivery confirmation transaction is "finalized", + // but the state is not altered + if data.submitted_messages_receiving_proofs.len() == 1 { + data.source_latest_confirmed_received_nonce = 0; + } + }), + Arc::new(move |data: &mut TestClientData| { + // blocks are produced on every tick + data.target_state.best_self = + HeaderId(data.target_state.best_self.0 + 1, data.target_state.best_self.1 + 1); + data.target_state.best_finalized_self = data.target_state.best_self; + // syncing source headers -> target chain + if let Some(last_requirement) = data.source_to_target_header_requirements.last() { + if *last_requirement != + data.target_state.best_finalized_peer_at_best_self.unwrap() + { + data.target_state.best_finalized_peer_at_best_self = + Some(*last_requirement); + } + } + // if source has received all messages receiving confirmations => stop + if data.source_latest_confirmed_received_nonce == 1 { + exit_sender.unbounded_send(()).unwrap(); + } + }), + Arc::new(move |data: &mut TestClientData| { + // if it is the first time we're submitting messages proof, let's revert changes + // to target status => then the messages delivery transaction is "finalized", but + // the state is not altered + if data.submitted_messages_proofs.len() == 1 { + data.target_latest_received_nonce = 0; + data.target_latest_confirmed_received_nonce = 0; + } + }), + exit_receiver.into_future().map(|(_, _)| ()), + ); + + assert_eq!(result.submitted_messages_proofs.len(), 2); + assert_eq!(result.submitted_messages_receiving_proofs.len(), 2); + } + + #[test] + fn message_lane_loop_works() { + let (exit_sender, exit_receiver) = unbounded(); + let result = run_loop_test( + Arc::new(Mutex::new(TestClientData { + source_state: ClientState { + best_self: HeaderId(10, 10), + best_finalized_self: HeaderId(10, 10), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + source_latest_generated_nonce: 10, + target_state: ClientState { + best_self: HeaderId(0, 0), + best_finalized_self: HeaderId(0, 0), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + target_latest_received_nonce: 0, + ..Default::default() + })), + Arc::new(|data: &mut TestClientData| { + // blocks are produced on every tick + data.source_state.best_self = + HeaderId(data.source_state.best_self.0 + 1, data.source_state.best_self.1 + 1); + data.source_state.best_finalized_self = data.source_state.best_self; + // headers relay must only be started when we need new target headers at source node + if data.target_to_source_header_required.is_some() { + assert!( + data.source_state.best_finalized_peer_at_best_self.unwrap().0 < + data.target_state.best_self.0 + ); + data.target_to_source_header_required = None; + } + // syncing target headers -> source chain + if let Some(last_requirement) = data.target_to_source_header_requirements.last() { + if *last_requirement != + data.source_state.best_finalized_peer_at_best_self.unwrap() + { + data.source_state.best_finalized_peer_at_best_self = + Some(*last_requirement); + } + } + }), + Arc::new(|_| {}), + Arc::new(move |data: &mut TestClientData| { + // blocks are produced on every tick + data.target_state.best_self = + HeaderId(data.target_state.best_self.0 + 1, data.target_state.best_self.1 + 1); + data.target_state.best_finalized_self = data.target_state.best_self; + // headers relay must only be started when we need new source headers at target node + if data.source_to_target_header_required.is_some() { + assert!( + data.target_state.best_finalized_peer_at_best_self.unwrap().0 < + data.source_state.best_self.0 + ); + data.source_to_target_header_required = None; + } + // syncing source headers -> target chain + if let Some(last_requirement) = data.source_to_target_header_requirements.last() { + if *last_requirement != + data.target_state.best_finalized_peer_at_best_self.unwrap() + { + data.target_state.best_finalized_peer_at_best_self = + Some(*last_requirement); + } + } + // if source has received all messages receiving confirmations => stop + if data.source_latest_confirmed_received_nonce == 10 { + exit_sender.unbounded_send(()).unwrap(); + } + }), + Arc::new(|_| {}), + exit_receiver.into_future().map(|(_, _)| ()), + ); + + // there are no strict restrictions on when reward confirmation should come + // (because `max_unconfirmed_nonces_at_target` is `100` in tests and this confirmation + // depends on the state of both clients) + // => we do not check it here + assert_eq!(result.submitted_messages_proofs[0].0, 1..=4); + assert_eq!(result.submitted_messages_proofs[1].0, 5..=8); + assert_eq!(result.submitted_messages_proofs[2].0, 9..=10); + assert!(!result.submitted_messages_receiving_proofs.is_empty()); + + // check that we have at least once required new source->target or target->source headers + assert!(!result.target_to_source_header_requirements.is_empty()); + assert!(!result.source_to_target_header_requirements.is_empty()); + } + + #[test] + fn message_lane_loop_works_with_batch_transactions() { + let (exit_sender, exit_receiver) = unbounded(); + let original_data = Arc::new(Mutex::new(TestClientData { + source_state: ClientState { + best_self: HeaderId(10, 10), + best_finalized_self: HeaderId(10, 10), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + source_latest_generated_nonce: 10, + target_state: ClientState { + best_self: HeaderId(0, 0), + best_finalized_self: HeaderId(0, 0), + best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + actual_best_finalized_peer_at_best_self: Some(HeaderId(0, 0)), + }, + target_latest_received_nonce: 0, + ..Default::default() + })); + let result = run_loop_test( + original_data, + Arc::new(|_| {}), + Arc::new(move |data: &mut TestClientData| { + data.source_state.best_self = + HeaderId(data.source_state.best_self.0 + 1, data.source_state.best_self.1 + 1); + data.source_state.best_finalized_self = data.source_state.best_self; + if let Some(target_to_source_header_required) = + data.target_to_source_header_required.take() + { + data.target_to_source_batch_transaction = + Some(TestConfirmationBatchTransaction { + required_header_id: target_to_source_header_required, + }) + } + }), + Arc::new(|_| {}), + Arc::new(move |data: &mut TestClientData| { + data.target_state.best_self = + HeaderId(data.target_state.best_self.0 + 1, data.target_state.best_self.1 + 1); + data.target_state.best_finalized_self = data.target_state.best_self; + + if let Some(source_to_target_header_required) = + data.source_to_target_header_required.take() + { + data.source_to_target_batch_transaction = Some(TestMessagesBatchTransaction { + required_header_id: source_to_target_header_required, + }) + } + + if data.source_latest_confirmed_received_nonce == 10 { + exit_sender.unbounded_send(()).unwrap(); + } + }), + exit_receiver.into_future().map(|(_, _)| ()), + ); + + // there are no strict restrictions on when reward confirmation should come + // (because `max_unconfirmed_nonces_at_target` is `100` in tests and this confirmation + // depends on the state of both clients) + // => we do not check it here + assert_eq!(result.submitted_messages_proofs[0].0, 1..=4); + assert_eq!(result.submitted_messages_proofs[1].0, 5..=8); + assert_eq!(result.submitted_messages_proofs[2].0, 9..=10); + assert!(!result.submitted_messages_receiving_proofs.is_empty()); + + // check that we have at least once required new source->target or target->source headers + assert!(!result.target_to_source_header_requirements.is_empty()); + assert!(!result.source_to_target_header_requirements.is_empty()); + } +} diff --git a/bridges/relays/messages/src/message_race_delivery.rs b/bridges/relays/messages/src/message_race_delivery.rs new file mode 100644 index 0000000000000000000000000000000000000000..137deb5b74f757aa111d5652cbb251a94979e166 --- /dev/null +++ b/bridges/relays/messages/src/message_race_delivery.rs @@ -0,0 +1,1405 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +//! Message delivery race delivers proof-of-messages from "lane.source" to "lane.target". + +use std::{collections::VecDeque, marker::PhantomData, ops::RangeInclusive}; + +use async_trait::async_trait; +use futures::stream::FusedStream; + +use bp_messages::{MessageNonce, UnrewardedRelayersState, Weight}; +use relay_utils::FailedClient; + +use crate::{ + message_lane::{MessageLane, SourceHeaderIdOf, TargetHeaderIdOf}, + message_lane_loop::{ + MessageDeliveryParams, MessageDetailsMap, MessageProofParameters, NoncesSubmitArtifacts, + SourceClient as MessageLaneSourceClient, SourceClientState, + TargetClient as MessageLaneTargetClient, TargetClientState, + }, + message_race_limits::{MessageRaceLimits, RelayMessagesBatchReference}, + message_race_loop::{ + MessageRace, NoncesRange, RaceState, RaceStrategy, SourceClient, SourceClientNonces, + TargetClient, TargetClientNonces, + }, + message_race_strategy::BasicStrategy, + metrics::MessageLaneLoopMetrics, +}; + +/// Run message delivery race. +pub async fn run( + source_client: impl MessageLaneSourceClient

, + source_state_updates: impl FusedStream>, + target_client: impl MessageLaneTargetClient

, + target_state_updates: impl FusedStream>, + metrics_msg: Option, + params: MessageDeliveryParams, +) -> Result<(), FailedClient> { + crate::message_race_loop::run( + MessageDeliveryRaceSource { + client: source_client.clone(), + metrics_msg: metrics_msg.clone(), + _phantom: Default::default(), + }, + source_state_updates, + MessageDeliveryRaceTarget { + client: target_client.clone(), + metrics_msg: metrics_msg.clone(), + _phantom: Default::default(), + }, + target_state_updates, + MessageDeliveryStrategy:: { + lane_source_client: source_client, + lane_target_client: target_client, + max_unrewarded_relayer_entries_at_target: params + .max_unrewarded_relayer_entries_at_target, + max_unconfirmed_nonces_at_target: params.max_unconfirmed_nonces_at_target, + max_messages_in_single_batch: params.max_messages_in_single_batch, + max_messages_weight_in_single_batch: params.max_messages_weight_in_single_batch, + max_messages_size_in_single_batch: params.max_messages_size_in_single_batch, + latest_confirmed_nonces_at_source: VecDeque::new(), + target_nonces: None, + strategy: BasicStrategy::new(), + metrics_msg, + }, + ) + .await +} + +/// Message delivery race. +struct MessageDeliveryRace

(std::marker::PhantomData

); + +impl MessageRace for MessageDeliveryRace

{ + type SourceHeaderId = SourceHeaderIdOf

; + type TargetHeaderId = TargetHeaderIdOf

; + + type MessageNonce = MessageNonce; + type Proof = P::MessagesProof; + + fn source_name() -> String { + format!("{}::MessagesDelivery", P::SOURCE_NAME) + } + + fn target_name() -> String { + format!("{}::MessagesDelivery", P::TARGET_NAME) + } +} + +/// Message delivery race source, which is a source of the lane. +struct MessageDeliveryRaceSource { + client: C, + metrics_msg: Option, + _phantom: PhantomData

, +} + +#[async_trait] +impl SourceClient> for MessageDeliveryRaceSource +where + P: MessageLane, + C: MessageLaneSourceClient

, +{ + type Error = C::Error; + type NoncesRange = MessageDetailsMap; + type ProofParameters = MessageProofParameters; + + async fn nonces( + &self, + at_block: SourceHeaderIdOf

, + prev_latest_nonce: MessageNonce, + ) -> Result<(SourceHeaderIdOf

, SourceClientNonces), Self::Error> { + let (at_block, latest_generated_nonce) = + self.client.latest_generated_nonce(at_block).await?; + let (at_block, latest_confirmed_nonce) = + self.client.latest_confirmed_received_nonce(at_block).await?; + + if let Some(metrics_msg) = self.metrics_msg.as_ref() { + metrics_msg.update_source_latest_generated_nonce(latest_generated_nonce); + metrics_msg.update_source_latest_confirmed_nonce(latest_confirmed_nonce); + } + + let new_nonces = if latest_generated_nonce > prev_latest_nonce { + self.client + .generated_message_details( + at_block.clone(), + prev_latest_nonce + 1..=latest_generated_nonce, + ) + .await? + } else { + MessageDetailsMap::new() + }; + + Ok(( + at_block, + SourceClientNonces { new_nonces, confirmed_nonce: Some(latest_confirmed_nonce) }, + )) + } + + async fn generate_proof( + &self, + at_block: SourceHeaderIdOf

, + nonces: RangeInclusive, + proof_parameters: Self::ProofParameters, + ) -> Result<(SourceHeaderIdOf

, RangeInclusive, P::MessagesProof), Self::Error> + { + self.client.prove_messages(at_block, nonces, proof_parameters).await + } +} + +/// Message delivery race target, which is a target of the lane. +struct MessageDeliveryRaceTarget { + client: C, + metrics_msg: Option, + _phantom: PhantomData

, +} + +#[async_trait] +impl TargetClient> for MessageDeliveryRaceTarget +where + P: MessageLane, + C: MessageLaneTargetClient

, +{ + type Error = C::Error; + type TargetNoncesData = DeliveryRaceTargetNoncesData; + type BatchTransaction = C::BatchTransaction; + type TransactionTracker = C::TransactionTracker; + + async fn require_source_header( + &self, + id: SourceHeaderIdOf

, + ) -> Result, Self::Error> { + self.client.require_source_header_on_target(id).await + } + + async fn nonces( + &self, + at_block: TargetHeaderIdOf

, + update_metrics: bool, + ) -> Result<(TargetHeaderIdOf

, TargetClientNonces), Self::Error> + { + let (at_block, latest_received_nonce) = self.client.latest_received_nonce(at_block).await?; + let (at_block, latest_confirmed_nonce) = + self.client.latest_confirmed_received_nonce(at_block).await?; + let (at_block, unrewarded_relayers) = + self.client.unrewarded_relayers_state(at_block).await?; + + if update_metrics { + if let Some(metrics_msg) = self.metrics_msg.as_ref() { + metrics_msg.update_target_latest_received_nonce(latest_received_nonce); + metrics_msg.update_target_latest_confirmed_nonce(latest_confirmed_nonce); + } + } + + Ok(( + at_block, + TargetClientNonces { + latest_nonce: latest_received_nonce, + nonces_data: DeliveryRaceTargetNoncesData { + confirmed_nonce: latest_confirmed_nonce, + unrewarded_relayers, + }, + }, + )) + } + + async fn submit_proof( + &self, + maybe_batch_tx: Option, + generated_at_block: SourceHeaderIdOf

, + nonces: RangeInclusive, + proof: P::MessagesProof, + ) -> Result, Self::Error> { + self.client + .submit_messages_proof(maybe_batch_tx, generated_at_block, nonces, proof) + .await + } +} + +/// Additional nonces data from the target client used by message delivery race. +#[derive(Debug, Clone)] +struct DeliveryRaceTargetNoncesData { + /// The latest nonce that we know: (1) has been delivered to us (2) has been confirmed + /// back to the source node (by confirmations race) and (3) relayer has received + /// reward for (and this has been confirmed by the message delivery race). + confirmed_nonce: MessageNonce, + /// State of the unrewarded relayers set at the target node. + unrewarded_relayers: UnrewardedRelayersState, +} + +/// Messages delivery strategy. +struct MessageDeliveryStrategy { + /// The client that is connected to the message lane source node. + lane_source_client: SC, + /// The client that is connected to the message lane target node. + lane_target_client: TC, + /// Maximal unrewarded relayer entries at target client. + max_unrewarded_relayer_entries_at_target: MessageNonce, + /// Maximal unconfirmed nonces at target client. + max_unconfirmed_nonces_at_target: MessageNonce, + /// Maximal number of messages in the single delivery transaction. + max_messages_in_single_batch: MessageNonce, + /// Maximal cumulative messages weight in the single delivery transaction. + max_messages_weight_in_single_batch: Weight, + /// Maximal messages size in the single delivery transaction. + max_messages_size_in_single_batch: u32, + /// Latest confirmed nonces at the source client + the header id where we have first met this + /// nonce. + latest_confirmed_nonces_at_source: VecDeque<(SourceHeaderIdOf

, MessageNonce)>, + /// Target nonces available at the **best** block of the target chain. + target_nonces: Option>, + /// Basic delivery strategy. + strategy: MessageDeliveryStrategyBase

, + /// Message lane metrics. + metrics_msg: Option, +} + +type MessageDeliveryStrategyBase

= BasicStrategy< +

::SourceHeaderNumber, +

::SourceHeaderHash, +

::TargetHeaderNumber, +

::TargetHeaderHash, + MessageDetailsMap<

::SourceChainBalance>, +

::MessagesProof, +>; + +impl std::fmt::Debug for MessageDeliveryStrategy { + fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result { + fmt.debug_struct("MessageDeliveryStrategy") + .field( + "max_unrewarded_relayer_entries_at_target", + &self.max_unrewarded_relayer_entries_at_target, + ) + .field("max_unconfirmed_nonces_at_target", &self.max_unconfirmed_nonces_at_target) + .field("max_messages_in_single_batch", &self.max_messages_in_single_batch) + .field("max_messages_weight_in_single_batch", &self.max_messages_weight_in_single_batch) + .field("max_messages_size_in_single_batch", &self.max_messages_size_in_single_batch) + .field("latest_confirmed_nonces_at_source", &self.latest_confirmed_nonces_at_source) + .field("target_nonces", &self.target_nonces) + .field("strategy", &self.strategy) + .finish() + } +} + +impl MessageDeliveryStrategy +where + P: MessageLane, + SC: MessageLaneSourceClient

, + TC: MessageLaneTargetClient

, +{ + /// Returns true if some race action can be selected (with `select_race_action`) at given + /// `best_finalized_source_header_id_at_best_target` source header at target. + async fn can_submit_transaction_with< + RS: RaceState, TargetHeaderIdOf

>, + >( + &self, + mut race_state: RS, + maybe_best_finalized_source_header_id_at_best_target: Option>, + ) -> bool { + if let Some(best_finalized_source_header_id_at_best_target) = + maybe_best_finalized_source_header_id_at_best_target + { + race_state.set_best_finalized_source_header_id_at_best_target( + best_finalized_source_header_id_at_best_target, + ); + + return self.select_race_action(race_state).await.is_some() + } + + false + } + + async fn select_race_action, TargetHeaderIdOf

>>( + &self, + race_state: RS, + ) -> Option<(RangeInclusive, MessageProofParameters)> { + // if we have already selected nonces that we want to submit, do nothing + if race_state.nonces_to_submit().is_some() { + return None + } + + // if we already submitted some nonces, do nothing + if race_state.nonces_submitted().is_some() { + return None + } + + let best_target_nonce = self.strategy.best_at_target()?; + let best_finalized_source_header_id_at_best_target = + race_state.best_finalized_source_header_id_at_best_target()?; + let target_nonces = self.target_nonces.as_ref()?; + let latest_confirmed_nonce_at_source = self + .latest_confirmed_nonce_at_source(&best_finalized_source_header_id_at_best_target) + .unwrap_or(target_nonces.nonces_data.confirmed_nonce); + + // There's additional condition in the message delivery race: target would reject messages + // if there are too much unconfirmed messages at the inbound lane. + + // Ok - we may have new nonces to deliver. But target may still reject new messages, because + // we haven't notified it that (some) messages have been confirmed. So we may want to + // include updated `source.latest_confirmed` in the proof. + // + // Important note: we're including outbound state lane proof whenever there are unconfirmed + // nonces on the target chain. Other strategy is to include it only if it's absolutely + // necessary. + let latest_received_nonce_at_target = target_nonces.latest_nonce; + let latest_confirmed_nonce_at_target = target_nonces.nonces_data.confirmed_nonce; + let outbound_state_proof_required = + latest_confirmed_nonce_at_target < latest_confirmed_nonce_at_source; + + // The target node would also reject messages if there are too many entries in the + // "unrewarded relayers" set. If we are unable to prove new rewards to the target node, then + // we should wait for confirmations race. + let unrewarded_limit_reached = + target_nonces.nonces_data.unrewarded_relayers.unrewarded_relayer_entries >= + self.max_unrewarded_relayer_entries_at_target || + target_nonces.nonces_data.unrewarded_relayers.total_messages >= + self.max_unconfirmed_nonces_at_target; + if unrewarded_limit_reached { + // so there are already too many unrewarded relayer entries in the set + // + // => check if we can prove enough rewards. If not, we should wait for more rewards to + // be paid + let number_of_rewards_being_proved = + latest_confirmed_nonce_at_source.saturating_sub(latest_confirmed_nonce_at_target); + let enough_rewards_being_proved = number_of_rewards_being_proved >= + target_nonces.nonces_data.unrewarded_relayers.messages_in_oldest_entry; + if !enough_rewards_being_proved { + return None + } + } + + // If we're here, then the confirmations race did its job && sending side now knows that + // messages have been delivered. Now let's select nonces that we want to deliver. + // + // We may deliver at most: + // + // max_unconfirmed_nonces_at_target - (latest_received_nonce_at_target - + // latest_confirmed_nonce_at_target) + // + // messages in the batch. But since we're including outbound state proof in the batch, then + // it may be increased to: + // + // max_unconfirmed_nonces_at_target - (latest_received_nonce_at_target - + // latest_confirmed_nonce_at_source) + let future_confirmed_nonce_at_target = if outbound_state_proof_required { + latest_confirmed_nonce_at_source + } else { + latest_confirmed_nonce_at_target + }; + let max_nonces = latest_received_nonce_at_target + .checked_sub(future_confirmed_nonce_at_target) + .and_then(|diff| self.max_unconfirmed_nonces_at_target.checked_sub(diff)) + .unwrap_or_default(); + let max_nonces = std::cmp::min(max_nonces, self.max_messages_in_single_batch); + let max_messages_weight_in_single_batch = self.max_messages_weight_in_single_batch; + let max_messages_size_in_single_batch = self.max_messages_size_in_single_batch; + let lane_source_client = self.lane_source_client.clone(); + let lane_target_client = self.lane_target_client.clone(); + + // select nonces from nonces, available for delivery + let selected_nonces = match self.strategy.available_source_queue_indices(race_state) { + Some(available_source_queue_indices) => { + let source_queue = self.strategy.source_queue(); + let reference = RelayMessagesBatchReference { + max_messages_in_this_batch: max_nonces, + max_messages_weight_in_single_batch, + max_messages_size_in_single_batch, + lane_source_client: lane_source_client.clone(), + lane_target_client: lane_target_client.clone(), + best_target_nonce, + nonces_queue: source_queue.clone(), + nonces_queue_range: available_source_queue_indices, + metrics: self.metrics_msg.clone(), + }; + + MessageRaceLimits::decide(reference).await + }, + None => { + // we still may need to submit delivery transaction with zero messages to + // unblock the lane. But it'll only be accepted if the lane is blocked + // (i.e. when `unrewarded_limit_reached` is `true`) + None + }, + }; + + // check if we need unblocking transaction and we may submit it + #[allow(clippy::reversed_empty_ranges)] + let selected_nonces = match selected_nonces { + Some(selected_nonces) => selected_nonces, + None if unrewarded_limit_reached && outbound_state_proof_required => 1..=0, + _ => return None, + }; + + let dispatch_weight = self.dispatch_weight_for_range(&selected_nonces); + Some(( + selected_nonces, + MessageProofParameters { outbound_state_proof_required, dispatch_weight }, + )) + } + + /// Returns lastest confirmed message at source chain, given source block. + fn latest_confirmed_nonce_at_source(&self, at: &SourceHeaderIdOf

) -> Option { + self.latest_confirmed_nonces_at_source + .iter() + .take_while(|(id, _)| id.0 <= at.0) + .last() + .map(|(_, nonce)| *nonce) + } + + /// Returns total weight of all undelivered messages. + fn dispatch_weight_for_range(&self, range: &RangeInclusive) -> Weight { + self.strategy + .source_queue() + .iter() + .flat_map(|(_, subrange)| { + subrange + .iter() + .filter(|(nonce, _)| range.contains(nonce)) + .map(|(_, details)| details.dispatch_weight) + }) + .fold(Weight::zero(), |total, weight| total.saturating_add(weight)) + } +} + +#[async_trait] +impl RaceStrategy, TargetHeaderIdOf

, P::MessagesProof> + for MessageDeliveryStrategy +where + P: MessageLane, + SC: MessageLaneSourceClient

, + TC: MessageLaneTargetClient

, +{ + type SourceNoncesRange = MessageDetailsMap; + type ProofParameters = MessageProofParameters; + type TargetNoncesData = DeliveryRaceTargetNoncesData; + + fn is_empty(&self) -> bool { + self.strategy.is_empty() + } + + async fn required_source_header_at_target< + RS: RaceState, TargetHeaderIdOf

>, + >( + &self, + race_state: RS, + ) -> Option> { + // we have already submitted something - let's wait until it is mined + if race_state.nonces_submitted().is_some() { + return None + } + + // if we can deliver something using current race state, go on + let selected_nonces = self.select_race_action(race_state.clone()).await; + if selected_nonces.is_some() { + return None + } + + // check if we may deliver some messages if we'll relay require source header + // to target first + let maybe_source_header_for_delivery = + self.strategy.source_queue().back().map(|(id, _)| id.clone()); + if self + .can_submit_transaction_with( + race_state.clone(), + maybe_source_header_for_delivery.clone(), + ) + .await + { + return maybe_source_header_for_delivery + } + + // ok, we can't delivery anything even if we relay some source blocks first. But maybe + // the lane is blocked and we need to submit unblock transaction? + let maybe_source_header_for_reward_confirmation = + self.latest_confirmed_nonces_at_source.back().map(|(id, _)| id.clone()); + if self + .can_submit_transaction_with( + race_state.clone(), + maybe_source_header_for_reward_confirmation.clone(), + ) + .await + { + return maybe_source_header_for_reward_confirmation + } + + None + } + + fn best_at_source(&self) -> Option { + self.strategy.best_at_source() + } + + fn best_at_target(&self) -> Option { + self.strategy.best_at_target() + } + + fn source_nonces_updated( + &mut self, + at_block: SourceHeaderIdOf

, + nonces: SourceClientNonces, + ) { + if let Some(confirmed_nonce) = nonces.confirmed_nonce { + let is_confirmed_nonce_updated = self + .latest_confirmed_nonces_at_source + .back() + .map(|(_, prev_nonce)| *prev_nonce != confirmed_nonce) + .unwrap_or(true); + if is_confirmed_nonce_updated { + self.latest_confirmed_nonces_at_source + .push_back((at_block.clone(), confirmed_nonce)); + } + } + self.strategy.source_nonces_updated(at_block, nonces) + } + + fn reset_best_target_nonces(&mut self) { + self.target_nonces = None; + self.strategy.reset_best_target_nonces(); + } + + fn best_target_nonces_updated, TargetHeaderIdOf

>>( + &mut self, + nonces: TargetClientNonces, + race_state: &mut RS, + ) { + // best target nonces must always be ge than finalized target nonces + let latest_nonce = nonces.latest_nonce; + self.target_nonces = Some(nonces); + + self.strategy.best_target_nonces_updated( + TargetClientNonces { latest_nonce, nonces_data: () }, + race_state, + ) + } + + fn finalized_target_nonces_updated, TargetHeaderIdOf

>>( + &mut self, + nonces: TargetClientNonces, + race_state: &mut RS, + ) { + if let Some(ref best_finalized_source_header_id_at_best_target) = + race_state.best_finalized_source_header_id_at_best_target() + { + let oldest_header_number_to_keep = best_finalized_source_header_id_at_best_target.0; + while self + .latest_confirmed_nonces_at_source + .front() + .map(|(id, _)| id.0 < oldest_header_number_to_keep) + .unwrap_or(false) + { + self.latest_confirmed_nonces_at_source.pop_front(); + } + } + + if let Some(ref mut target_nonces) = self.target_nonces { + target_nonces.latest_nonce = + std::cmp::max(target_nonces.latest_nonce, nonces.latest_nonce); + } + + self.strategy.finalized_target_nonces_updated( + TargetClientNonces { latest_nonce: nonces.latest_nonce, nonces_data: () }, + race_state, + ) + } + + async fn select_nonces_to_deliver, TargetHeaderIdOf

>>( + &self, + race_state: RS, + ) -> Option<(RangeInclusive, Self::ProofParameters)> { + self.select_race_action(race_state).await + } +} + +impl NoncesRange for MessageDetailsMap { + fn begin(&self) -> MessageNonce { + self.keys().next().cloned().unwrap_or_default() + } + + fn end(&self) -> MessageNonce { + self.keys().next_back().cloned().unwrap_or_default() + } + + fn greater_than(mut self, nonce: MessageNonce) -> Option { + let gte = self.split_off(&(nonce + 1)); + if gte.is_empty() { + None + } else { + Some(gte) + } + } +} + +#[cfg(test)] +mod tests { + use crate::{ + message_lane_loop::{ + tests::{ + header_id, TestMessageLane, TestMessagesBatchTransaction, TestMessagesProof, + TestSourceChainBalance, TestSourceClient, TestSourceHeaderId, TestTargetClient, + TestTargetHeaderId, + }, + MessageDetails, + }, + message_race_loop::RaceStateImpl, + }; + + use super::*; + + const DEFAULT_DISPATCH_WEIGHT: Weight = Weight::from_parts(1, 0); + const DEFAULT_SIZE: u32 = 1; + + type TestRaceState = RaceStateImpl< + TestSourceHeaderId, + TestTargetHeaderId, + TestMessagesProof, + TestMessagesBatchTransaction, + >; + type TestStrategy = + MessageDeliveryStrategy; + + fn source_nonces( + new_nonces: RangeInclusive, + confirmed_nonce: MessageNonce, + reward: TestSourceChainBalance, + ) -> SourceClientNonces> { + SourceClientNonces { + new_nonces: new_nonces + .into_iter() + .map(|nonce| { + ( + nonce, + MessageDetails { + dispatch_weight: DEFAULT_DISPATCH_WEIGHT, + size: DEFAULT_SIZE, + reward, + }, + ) + }) + .collect(), + confirmed_nonce: Some(confirmed_nonce), + } + } + + fn prepare_strategy() -> (TestRaceState, TestStrategy) { + let mut race_state = RaceStateImpl { + best_finalized_source_header_id_at_source: Some(header_id(1)), + best_finalized_source_header_id_at_best_target: Some(header_id(1)), + best_target_header_id: Some(header_id(1)), + best_finalized_target_header_id: Some(header_id(1)), + nonces_to_submit: None, + nonces_to_submit_batch: None, + nonces_submitted: None, + }; + + let mut race_strategy = TestStrategy { + max_unrewarded_relayer_entries_at_target: 4, + max_unconfirmed_nonces_at_target: 4, + max_messages_in_single_batch: 4, + max_messages_weight_in_single_batch: Weight::from_parts(4, 0), + max_messages_size_in_single_batch: 4, + latest_confirmed_nonces_at_source: vec![(header_id(1), 19)].into_iter().collect(), + lane_source_client: TestSourceClient::default(), + lane_target_client: TestTargetClient::default(), + metrics_msg: None, + target_nonces: Some(TargetClientNonces { + latest_nonce: 19, + nonces_data: DeliveryRaceTargetNoncesData { + confirmed_nonce: 19, + unrewarded_relayers: UnrewardedRelayersState { + unrewarded_relayer_entries: 0, + messages_in_oldest_entry: 0, + total_messages: 0, + last_delivered_nonce: 0, + }, + }, + }), + strategy: BasicStrategy::new(), + }; + + race_strategy + .strategy + .source_nonces_updated(header_id(1), source_nonces(20..=23, 19, 0)); + + let target_nonces = TargetClientNonces { latest_nonce: 19, nonces_data: () }; + race_strategy + .strategy + .best_target_nonces_updated(target_nonces.clone(), &mut race_state); + race_strategy + .strategy + .finalized_target_nonces_updated(target_nonces, &mut race_state); + + (race_state, race_strategy) + } + + fn proof_parameters(state_required: bool, weight: u32) -> MessageProofParameters { + MessageProofParameters { + outbound_state_proof_required: state_required, + dispatch_weight: Weight::from_parts(weight as u64, 0), + } + } + + #[test] + fn weights_map_works_as_nonces_range() { + fn build_map( + range: RangeInclusive, + ) -> MessageDetailsMap { + range + .map(|idx| { + ( + idx, + MessageDetails { + dispatch_weight: Weight::from_parts(idx, 0), + size: idx as _, + reward: idx as _, + }, + ) + }) + .collect() + } + + let map = build_map(20..=30); + + assert_eq!(map.begin(), 20); + assert_eq!(map.end(), 30); + assert_eq!(map.clone().greater_than(10), Some(build_map(20..=30))); + assert_eq!(map.clone().greater_than(19), Some(build_map(20..=30))); + assert_eq!(map.clone().greater_than(20), Some(build_map(21..=30))); + assert_eq!(map.clone().greater_than(25), Some(build_map(26..=30))); + assert_eq!(map.clone().greater_than(29), Some(build_map(30..=30))); + assert_eq!(map.greater_than(30), None); + } + + #[async_std::test] + async fn message_delivery_strategy_selects_messages_to_deliver() { + let (state, strategy) = prepare_strategy(); + + // both sides are ready to relay new messages + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=23), proof_parameters(false, 4))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_includes_outbound_state_proof_when_new_nonces_are_available() + { + let (state, mut strategy) = prepare_strategy(); + + // if there are new confirmed nonces on source, we want to relay this information + // to target to prune rewards queue + let prev_confirmed_nonce_at_source = + strategy.latest_confirmed_nonces_at_source.back().unwrap().1; + strategy.target_nonces.as_mut().unwrap().nonces_data.confirmed_nonce = + prev_confirmed_nonce_at_source - 1; + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=23), proof_parameters(true, 4))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_selects_nothing_if_there_are_too_many_unrewarded_relayers() { + let (state, mut strategy) = prepare_strategy(); + + // if there are already `max_unrewarded_relayer_entries_at_target` entries at target, + // we need to wait until rewards will be paid + { + let unrewarded_relayers = + &mut strategy.target_nonces.as_mut().unwrap().nonces_data.unrewarded_relayers; + unrewarded_relayers.unrewarded_relayer_entries = + strategy.max_unrewarded_relayer_entries_at_target; + unrewarded_relayers.messages_in_oldest_entry = 4; + } + assert_eq!(strategy.select_nonces_to_deliver(state).await, None); + } + + #[async_std::test] + async fn message_delivery_strategy_selects_nothing_if_proved_rewards_is_not_enough_to_remove_oldest_unrewarded_entry( + ) { + let (state, mut strategy) = prepare_strategy(); + + // if there are already `max_unrewarded_relayer_entries_at_target` entries at target, + // we need to prove at least `messages_in_oldest_entry` rewards + let prev_confirmed_nonce_at_source = + strategy.latest_confirmed_nonces_at_source.back().unwrap().1; + { + let nonces_data = &mut strategy.target_nonces.as_mut().unwrap().nonces_data; + nonces_data.confirmed_nonce = prev_confirmed_nonce_at_source - 1; + let unrewarded_relayers = &mut nonces_data.unrewarded_relayers; + unrewarded_relayers.unrewarded_relayer_entries = + strategy.max_unrewarded_relayer_entries_at_target; + unrewarded_relayers.messages_in_oldest_entry = 4; + } + assert_eq!(strategy.select_nonces_to_deliver(state).await, None); + } + + #[async_std::test] + async fn message_delivery_strategy_includes_outbound_state_proof_if_proved_rewards_is_enough() { + let (state, mut strategy) = prepare_strategy(); + + // if there are already `max_unrewarded_relayer_entries_at_target` entries at target, + // we need to prove at least `messages_in_oldest_entry` rewards + let prev_confirmed_nonce_at_source = + strategy.latest_confirmed_nonces_at_source.back().unwrap().1; + { + let nonces_data = &mut strategy.target_nonces.as_mut().unwrap().nonces_data; + nonces_data.confirmed_nonce = prev_confirmed_nonce_at_source - 3; + let unrewarded_relayers = &mut nonces_data.unrewarded_relayers; + unrewarded_relayers.unrewarded_relayer_entries = + strategy.max_unrewarded_relayer_entries_at_target; + unrewarded_relayers.messages_in_oldest_entry = 3; + } + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=23), proof_parameters(true, 4))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_limits_batch_by_messages_weight() { + let (state, mut strategy) = prepare_strategy(); + + // not all queued messages may fit in the batch, because batch has max weight + strategy.max_messages_weight_in_single_batch = Weight::from_parts(3, 0); + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=22), proof_parameters(false, 3))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_accepts_single_message_even_if_its_weight_overflows_maximal_weight( + ) { + let (state, mut strategy) = prepare_strategy(); + + // first message doesn't fit in the batch, because it has weight (10) that overflows max + // weight (4) + strategy.strategy.source_queue_mut()[0].1.get_mut(&20).unwrap().dispatch_weight = + Weight::from_parts(10, 0); + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=20), proof_parameters(false, 10))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_limits_batch_by_messages_size() { + let (state, mut strategy) = prepare_strategy(); + + // not all queued messages may fit in the batch, because batch has max weight + strategy.max_messages_size_in_single_batch = 3; + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=22), proof_parameters(false, 3))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_accepts_single_message_even_if_its_weight_overflows_maximal_size( + ) { + let (state, mut strategy) = prepare_strategy(); + + // first message doesn't fit in the batch, because it has weight (10) that overflows max + // weight (4) + strategy.strategy.source_queue_mut()[0].1.get_mut(&20).unwrap().size = 10; + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=20), proof_parameters(false, 1))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_limits_batch_by_messages_count_when_there_is_upper_limit() { + let (state, mut strategy) = prepare_strategy(); + + // not all queued messages may fit in the batch, because batch has max number of messages + // limit + strategy.max_messages_in_single_batch = 3; + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=22), proof_parameters(false, 3))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_limits_batch_by_messages_count_when_there_are_unconfirmed_nonces( + ) { + let (state, mut strategy) = prepare_strategy(); + + // 1 delivery confirmation from target to source is still missing, so we may only + // relay 3 new messages + let prev_confirmed_nonce_at_source = + strategy.latest_confirmed_nonces_at_source.back().unwrap().1; + strategy.latest_confirmed_nonces_at_source = + vec![(header_id(1), prev_confirmed_nonce_at_source - 1)].into_iter().collect(); + strategy.target_nonces.as_mut().unwrap().nonces_data.confirmed_nonce = + prev_confirmed_nonce_at_source - 1; + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=22), proof_parameters(false, 3))) + ); + } + + #[async_std::test] + async fn message_delivery_strategy_waits_for_confirmed_nonce_header_to_appear_on_target() { + // 1 delivery confirmation from target to source is still missing, so we may deliver + // reward confirmation with our message delivery transaction. But the problem is that + // the reward has been paid at header 2 && this header is still unknown to target node. + // + // => so we can't deliver more than 3 messages + let (mut state, mut strategy) = prepare_strategy(); + let prev_confirmed_nonce_at_source = + strategy.latest_confirmed_nonces_at_source.back().unwrap().1; + strategy.latest_confirmed_nonces_at_source = vec![ + (header_id(1), prev_confirmed_nonce_at_source - 1), + (header_id(2), prev_confirmed_nonce_at_source), + ] + .into_iter() + .collect(); + strategy.target_nonces.as_mut().unwrap().nonces_data.confirmed_nonce = + prev_confirmed_nonce_at_source - 1; + state.best_finalized_source_header_id_at_best_target = Some(header_id(1)); + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=22), proof_parameters(false, 3))) + ); + + // the same situation, but the header 2 is known to the target node, so we may deliver + // reward confirmation + let (mut state, mut strategy) = prepare_strategy(); + let prev_confirmed_nonce_at_source = + strategy.latest_confirmed_nonces_at_source.back().unwrap().1; + strategy.latest_confirmed_nonces_at_source = vec![ + (header_id(1), prev_confirmed_nonce_at_source - 1), + (header_id(2), prev_confirmed_nonce_at_source), + ] + .into_iter() + .collect(); + strategy.target_nonces.as_mut().unwrap().nonces_data.confirmed_nonce = + prev_confirmed_nonce_at_source - 1; + state.best_finalized_source_header_id_at_source = Some(header_id(2)); + state.best_finalized_source_header_id_at_best_target = Some(header_id(2)); + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=23), proof_parameters(true, 4))) + ); + } + + #[async_std::test] + async fn source_header_is_required_when_confirmations_are_required() { + // let's prepare situation when: + // - all messages [20; 23] have been generated at source block#1; + let (mut state, mut strategy) = prepare_strategy(); + // + // - messages [20; 23] have been delivered + assert_eq!( + strategy.select_nonces_to_deliver(state.clone()).await, + Some(((20..=23), proof_parameters(false, 4))) + ); + strategy.finalized_target_nonces_updated( + TargetClientNonces { + latest_nonce: 23, + nonces_data: DeliveryRaceTargetNoncesData { + confirmed_nonce: 19, + unrewarded_relayers: UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + messages_in_oldest_entry: 4, + total_messages: 4, + last_delivered_nonce: 23, + }, + }, + }, + &mut state, + ); + // nothing needs to be delivered now and we don't need any new headers + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, None); + assert_eq!(strategy.required_source_header_at_target(state.clone()).await, None); + + // block#2 is generated + state.best_finalized_source_header_id_at_source = Some(header_id(2)); + state.best_finalized_source_header_id_at_best_target = Some(header_id(2)); + state.best_target_header_id = Some(header_id(2)); + state.best_finalized_target_header_id = Some(header_id(2)); + + // now let's generate two more nonces [24; 25] at the source; + strategy.source_nonces_updated(header_id(2), source_nonces(24..=25, 19, 0)); + // + // we don't need to relay more headers to target, because messages [20; 23] have + // not confirmed to source yet + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, None); + assert_eq!(strategy.required_source_header_at_target(state.clone()).await, None); + + // let's relay source block#3 + state.best_finalized_source_header_id_at_source = Some(header_id(3)); + state.best_finalized_source_header_id_at_best_target = Some(header_id(3)); + state.best_target_header_id = Some(header_id(3)); + state.best_finalized_target_header_id = Some(header_id(3)); + + // and ask strategy again => still nothing to deliver, because parallel confirmations + // race need to be pushed further + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, None); + assert_eq!(strategy.required_source_header_at_target(state.clone()).await, None); + + // let's relay source block#3 + state.best_finalized_source_header_id_at_source = Some(header_id(4)); + state.best_finalized_source_header_id_at_best_target = Some(header_id(4)); + state.best_target_header_id = Some(header_id(4)); + state.best_finalized_target_header_id = Some(header_id(4)); + + // let's confirm messages [20; 23] + strategy.source_nonces_updated(header_id(4), source_nonces(24..=25, 23, 0)); + + // and ask strategy again => now we have everything required to deliver remaining + // [24; 25] nonces and proof of [20; 23] confirmation + assert_eq!( + strategy.select_nonces_to_deliver(state.clone()).await, + Some(((24..=25), proof_parameters(true, 2))), + ); + assert_eq!(strategy.required_source_header_at_target(state).await, None); + } + + #[async_std::test] + async fn relayer_uses_flattened_view_of_the_source_queue_to_select_nonces() { + // Real scenario that has happened on test deployments: + // 1) relayer witnessed M1 at block 1 => it has separate entry in the `source_queue` + // 2) relayer witnessed M2 at block 2 => it has separate entry in the `source_queue` + // 3) if block 2 is known to the target node, then both M1 and M2 are selected for single + // delivery, even though weight(M1+M2) > larger than largest allowed weight + // + // This was happening because selector (`select_nonces_for_delivery_transaction`) has been + // called for every `source_queue` entry separately without preserving any context. + let (mut state, mut strategy) = prepare_strategy(); + let nonces = source_nonces(24..=25, 19, 0); + strategy.strategy.source_nonces_updated(header_id(2), nonces); + strategy.max_unrewarded_relayer_entries_at_target = 100; + strategy.max_unconfirmed_nonces_at_target = 100; + strategy.max_messages_in_single_batch = 5; + strategy.max_messages_weight_in_single_batch = Weight::from_parts(100, 0); + strategy.max_messages_size_in_single_batch = 100; + state.best_finalized_source_header_id_at_best_target = Some(header_id(2)); + + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((20..=24), proof_parameters(false, 5))) + ); + } + + #[async_std::test] + #[allow(clippy::reversed_empty_ranges)] + async fn no_source_headers_required_at_target_if_lanes_are_empty() { + let (state, _) = prepare_strategy(); + let mut strategy = TestStrategy { + max_unrewarded_relayer_entries_at_target: 4, + max_unconfirmed_nonces_at_target: 4, + max_messages_in_single_batch: 4, + max_messages_weight_in_single_batch: Weight::from_parts(4, 0), + max_messages_size_in_single_batch: 4, + latest_confirmed_nonces_at_source: VecDeque::new(), + lane_source_client: TestSourceClient::default(), + lane_target_client: TestTargetClient::default(), + metrics_msg: None, + target_nonces: None, + strategy: BasicStrategy::new(), + }; + + let source_header_id = header_id(10); + strategy.source_nonces_updated( + source_header_id, + // MessageDeliveryRaceSource::nonces returns Some(0), because that's how it is + // represented in memory (there's no Options in OutboundLaneState) + source_nonces(1u64..=0u64, 0, 0), + ); + + // even though `latest_confirmed_nonces_at_source` is not empty, new headers are not + // requested + assert_eq!( + strategy.latest_confirmed_nonces_at_source, + VecDeque::from([(source_header_id, 0)]) + ); + assert_eq!(strategy.required_source_header_at_target(state).await, None); + } + + #[async_std::test] + async fn previous_nonces_are_selected_if_reorg_happens_at_target_chain() { + // this is the copy of the similar test in the `mesage_race_strategy.rs`, but it also tests + // that the `MessageDeliveryStrategy` acts properly in the similar scenario + + // tune parameters to allow 5 nonces per delivery transaction + let (mut state, mut strategy) = prepare_strategy(); + strategy.max_unrewarded_relayer_entries_at_target = 5; + strategy.max_unconfirmed_nonces_at_target = 5; + strategy.max_messages_in_single_batch = 5; + strategy.max_messages_weight_in_single_batch = Weight::from_parts(5, 0); + strategy.max_messages_size_in_single_batch = 5; + + // in this state we have 4 available nonces for delivery + assert_eq!( + strategy.select_nonces_to_deliver(state.clone()).await, + Some(( + 20..=23, + MessageProofParameters { + outbound_state_proof_required: false, + dispatch_weight: Weight::from_parts(4, 0), + } + )), + ); + + // let's say we have submitted 20..=23 + state.nonces_submitted = Some(20..=23); + + // then new nonce 24 appear at the source block 2 + let new_nonce_24 = vec![( + 24, + MessageDetails { dispatch_weight: Weight::from_parts(1, 0), size: 0, reward: 0 }, + )] + .into_iter() + .collect(); + let source_header_2 = header_id(2); + state.best_finalized_source_header_id_at_source = Some(source_header_2); + strategy.source_nonces_updated( + source_header_2, + SourceClientNonces { new_nonces: new_nonce_24, confirmed_nonce: None }, + ); + // and nonce 23 appear at the best block of the target node (best finalized still has 0 + // nonces) + let target_nonces_data = DeliveryRaceTargetNoncesData { + confirmed_nonce: 19, + unrewarded_relayers: UnrewardedRelayersState::default(), + }; + let target_header_2 = header_id(2); + state.best_target_header_id = Some(target_header_2); + strategy.best_target_nonces_updated( + TargetClientNonces { latest_nonce: 23, nonces_data: target_nonces_data.clone() }, + &mut state, + ); + + // then best target header is retracted + strategy.best_target_nonces_updated( + TargetClientNonces { latest_nonce: 19, nonces_data: target_nonces_data.clone() }, + &mut state, + ); + + // ... and some fork with 19 delivered nonces is finalized + let target_header_2_fork = header_id(2_1); + state.best_finalized_source_header_id_at_source = Some(source_header_2); + state.best_finalized_source_header_id_at_best_target = Some(source_header_2); + state.best_target_header_id = Some(target_header_2_fork); + state.best_finalized_target_header_id = Some(target_header_2_fork); + strategy.finalized_target_nonces_updated( + TargetClientNonces { latest_nonce: 19, nonces_data: target_nonces_data.clone() }, + &mut state, + ); + + // now we have to select nonces 20..=23 for delivery again + assert_eq!( + strategy.select_nonces_to_deliver(state.clone()).await, + Some(( + 20..=24, + MessageProofParameters { + outbound_state_proof_required: false, + dispatch_weight: Weight::from_parts(5, 0), + } + )), + ); + } + + #[async_std::test] + #[allow(clippy::reversed_empty_ranges)] + async fn delivery_race_is_able_to_unblock_lane() { + // step 1: messages 20..=23 are delivered from source to target at target block 2 + fn at_target_block_2_deliver_messages( + strategy: &mut TestStrategy, + state: &mut TestRaceState, + occupied_relayer_slots: MessageNonce, + occupied_message_slots: MessageNonce, + ) { + let nonces_at_target = TargetClientNonces { + latest_nonce: 23, + nonces_data: DeliveryRaceTargetNoncesData { + confirmed_nonce: 19, + unrewarded_relayers: UnrewardedRelayersState { + unrewarded_relayer_entries: occupied_relayer_slots, + total_messages: occupied_message_slots, + ..Default::default() + }, + }, + }; + + state.best_target_header_id = Some(header_id(2)); + state.best_finalized_target_header_id = Some(header_id(2)); + + strategy.best_target_nonces_updated(nonces_at_target.clone(), state); + strategy.finalized_target_nonces_updated(nonces_at_target, state); + } + + // step 2: delivery of messages 20..=23 is confirmed to the source node at source block 2 + fn at_source_block_2_deliver_confirmations( + strategy: &mut TestStrategy, + state: &mut TestRaceState, + ) { + state.best_finalized_source_header_id_at_source = Some(header_id(2)); + + strategy.source_nonces_updated( + header_id(2), + SourceClientNonces { new_nonces: Default::default(), confirmed_nonce: Some(23) }, + ); + } + + // step 3: finalize source block 2 at target block 3 and select nonces to deliver + async fn at_target_block_3_select_nonces_to_deliver( + strategy: &TestStrategy, + mut state: TestRaceState, + ) -> Option<(RangeInclusive, MessageProofParameters)> { + state.best_finalized_source_header_id_at_best_target = Some(header_id(2)); + state.best_target_header_id = Some(header_id(3)); + state.best_finalized_target_header_id = Some(header_id(3)); + + strategy.select_nonces_to_deliver(state).await + } + + let max_unrewarded_relayer_entries_at_target = 4; + let max_unconfirmed_nonces_at_target = 4; + let expected_rewards_proof = Some(( + 1..=0, + MessageProofParameters { + outbound_state_proof_required: true, + dispatch_weight: Weight::zero(), + }, + )); + + // when lane is NOT blocked + let (mut state, mut strategy) = prepare_strategy(); + at_target_block_2_deliver_messages( + &mut strategy, + &mut state, + max_unrewarded_relayer_entries_at_target - 1, + max_unconfirmed_nonces_at_target - 1, + ); + at_source_block_2_deliver_confirmations(&mut strategy, &mut state); + assert_eq!(strategy.required_source_header_at_target(state.clone()).await, None); + assert_eq!(at_target_block_3_select_nonces_to_deliver(&strategy, state).await, None); + + // when lane is blocked by no-relayer-slots in unrewarded relayers vector + let (mut state, mut strategy) = prepare_strategy(); + at_target_block_2_deliver_messages( + &mut strategy, + &mut state, + max_unrewarded_relayer_entries_at_target, + max_unconfirmed_nonces_at_target - 1, + ); + at_source_block_2_deliver_confirmations(&mut strategy, &mut state); + assert_eq!( + strategy.required_source_header_at_target(state.clone()).await, + Some(header_id(2)) + ); + assert_eq!( + at_target_block_3_select_nonces_to_deliver(&strategy, state).await, + expected_rewards_proof + ); + + // when lane is blocked by no-message-slots in unrewarded relayers vector + let (mut state, mut strategy) = prepare_strategy(); + at_target_block_2_deliver_messages( + &mut strategy, + &mut state, + max_unrewarded_relayer_entries_at_target - 1, + max_unconfirmed_nonces_at_target, + ); + at_source_block_2_deliver_confirmations(&mut strategy, &mut state); + assert_eq!( + strategy.required_source_header_at_target(state.clone()).await, + Some(header_id(2)) + ); + assert_eq!( + at_target_block_3_select_nonces_to_deliver(&strategy, state).await, + expected_rewards_proof + ); + + // when lane is blocked by no-message-slots and no-message-slots in unrewarded relayers + // vector + let (mut state, mut strategy) = prepare_strategy(); + at_target_block_2_deliver_messages( + &mut strategy, + &mut state, + max_unrewarded_relayer_entries_at_target - 1, + max_unconfirmed_nonces_at_target, + ); + at_source_block_2_deliver_confirmations(&mut strategy, &mut state); + assert_eq!( + strategy.required_source_header_at_target(state.clone()).await, + Some(header_id(2)) + ); + assert_eq!( + at_target_block_3_select_nonces_to_deliver(&strategy, state).await, + expected_rewards_proof + ); + + // when we have already selected some nonces to deliver, we don't need to select anything + let (mut state, mut strategy) = prepare_strategy(); + at_target_block_2_deliver_messages( + &mut strategy, + &mut state, + max_unrewarded_relayer_entries_at_target - 1, + max_unconfirmed_nonces_at_target, + ); + at_source_block_2_deliver_confirmations(&mut strategy, &mut state); + state.nonces_to_submit = Some((header_id(2), 1..=0, (1..=0, None))); + assert_eq!(strategy.required_source_header_at_target(state.clone()).await, None); + assert_eq!(at_target_block_3_select_nonces_to_deliver(&strategy, state).await, None); + + // when we have already submitted some nonces, we don't need to select anything + let (mut state, mut strategy) = prepare_strategy(); + at_target_block_2_deliver_messages( + &mut strategy, + &mut state, + max_unrewarded_relayer_entries_at_target - 1, + max_unconfirmed_nonces_at_target, + ); + at_source_block_2_deliver_confirmations(&mut strategy, &mut state); + state.nonces_submitted = Some(1..=0); + assert_eq!(strategy.required_source_header_at_target(state.clone()).await, None); + assert_eq!(at_target_block_3_select_nonces_to_deliver(&strategy, state).await, None); + } + + #[async_std::test] + async fn outbound_state_proof_is_not_required_when_we_have_no_new_confirmations() { + let (mut state, mut strategy) = prepare_strategy(); + + // pretend that we haven't seen any confirmations yet (or they're at the future target chain + // blocks) + strategy.latest_confirmed_nonces_at_source.clear(); + + // emulate delivery of some nonces (20..=23 are generated, but we only deliver 20..=21) + let nonces_at_target = TargetClientNonces { + latest_nonce: 21, + nonces_data: DeliveryRaceTargetNoncesData { + confirmed_nonce: 19, + unrewarded_relayers: UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + total_messages: 2, + ..Default::default() + }, + }, + }; + state.best_target_header_id = Some(header_id(2)); + state.best_finalized_target_header_id = Some(header_id(2)); + strategy.best_target_nonces_updated(nonces_at_target.clone(), &mut state); + strategy.finalized_target_nonces_updated(nonces_at_target, &mut state); + + // we won't include outbound lane state proof into 22..=23 delivery transaction + // because it brings no new reward confirmations + assert_eq!( + strategy.select_nonces_to_deliver(state).await, + Some(((22..=23), proof_parameters(false, 2))) + ); + } +} diff --git a/bridges/relays/messages/src/message_race_limits.rs b/bridges/relays/messages/src/message_race_limits.rs new file mode 100644 index 0000000000000000000000000000000000000000..873bb6aad04253b833c51cea89f2124167e077d1 --- /dev/null +++ b/bridges/relays/messages/src/message_race_limits.rs @@ -0,0 +1,206 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! enforcement strategy + +use num_traits::Zero; +use std::ops::RangeInclusive; + +use bp_messages::{MessageNonce, Weight}; + +use crate::{ + message_lane::MessageLane, + message_lane_loop::{ + MessageDetails, MessageDetailsMap, SourceClient as MessageLaneSourceClient, + TargetClient as MessageLaneTargetClient, + }, + message_race_loop::NoncesRange, + message_race_strategy::SourceRangesQueue, + metrics::MessageLaneLoopMetrics, +}; + +/// Reference data for participating in relay +pub struct RelayReference< + P: MessageLane, + SourceClient: MessageLaneSourceClient

, + TargetClient: MessageLaneTargetClient

, +> { + /// The client that is connected to the message lane source node. + pub lane_source_client: SourceClient, + /// The client that is connected to the message lane target node. + pub lane_target_client: TargetClient, + /// Metrics reference. + pub metrics: Option, + /// Messages size summary + pub selected_size: u32, + + /// Hard check begin nonce + pub hard_selected_begin_nonce: MessageNonce, + + /// Index by all ready nonces + pub index: usize, + /// Current nonce + pub nonce: MessageNonce, + /// Current nonce details + pub details: MessageDetails, +} + +/// Relay reference data +pub struct RelayMessagesBatchReference< + P: MessageLane, + SourceClient: MessageLaneSourceClient

, + TargetClient: MessageLaneTargetClient

, +> { + /// Maximal number of relayed messages in single delivery transaction. + pub max_messages_in_this_batch: MessageNonce, + /// Maximal cumulative dispatch weight of relayed messages in single delivery transaction. + pub max_messages_weight_in_single_batch: Weight, + /// Maximal cumulative size of relayed messages in single delivery transaction. + pub max_messages_size_in_single_batch: u32, + /// The client that is connected to the message lane source node. + pub lane_source_client: SourceClient, + /// The client that is connected to the message lane target node. + pub lane_target_client: TargetClient, + /// Metrics reference. + pub metrics: Option, + /// Best available nonce at the **best** target block. We do not want to deliver nonces + /// less than this nonce, even though the block may be retracted. + pub best_target_nonce: MessageNonce, + /// Source queue. + pub nonces_queue: SourceRangesQueue< + P::SourceHeaderHash, + P::SourceHeaderNumber, + MessageDetailsMap, + >, + /// Range of indices within the `nonces_queue` that are available for selection. + pub nonces_queue_range: RangeInclusive, +} + +/// Limits of the message race transactions. +#[derive(Clone)] +pub struct MessageRaceLimits; + +impl MessageRaceLimits { + pub async fn decide< + P: MessageLane, + SourceClient: MessageLaneSourceClient

, + TargetClient: MessageLaneTargetClient

, + >( + reference: RelayMessagesBatchReference, + ) -> Option> { + let mut hard_selected_count = 0; + + let mut selected_weight = Weight::zero(); + let mut selected_count: MessageNonce = 0; + + let hard_selected_begin_nonce = std::cmp::max( + reference.best_target_nonce + 1, + reference.nonces_queue[*reference.nonces_queue_range.start()].1.begin(), + ); + + // relay reference + let mut relay_reference = RelayReference { + lane_source_client: reference.lane_source_client.clone(), + lane_target_client: reference.lane_target_client.clone(), + metrics: reference.metrics.clone(), + + selected_size: 0, + + hard_selected_begin_nonce, + + index: 0, + nonce: 0, + details: MessageDetails { + dispatch_weight: Weight::zero(), + size: 0, + reward: P::SourceChainBalance::zero(), + }, + }; + + let all_ready_nonces = reference + .nonces_queue + .range(reference.nonces_queue_range.clone()) + .flat_map(|(_, ready_nonces)| ready_nonces.iter()) + .filter(|(nonce, _)| **nonce >= hard_selected_begin_nonce) + .enumerate(); + for (index, (nonce, details)) in all_ready_nonces { + relay_reference.index = index; + relay_reference.nonce = *nonce; + relay_reference.details = *details; + + // Since we (hopefully) have some reserves in `max_messages_weight_in_single_batch` + // and `max_messages_size_in_single_batch`, we may still try to submit transaction + // with single message if message overflows these limits. The worst case would be if + // transaction will be rejected by the target runtime, but at least we have tried. + + // limit messages in the batch by weight + let new_selected_weight = match selected_weight.checked_add(&details.dispatch_weight) { + Some(new_selected_weight) + if new_selected_weight + .all_lte(reference.max_messages_weight_in_single_batch) => + new_selected_weight, + new_selected_weight if selected_count == 0 => { + log::warn!( + target: "bridge", + "Going to submit message delivery transaction with declared dispatch \ + weight {:?} that overflows maximal configured weight {}", + new_selected_weight, + reference.max_messages_weight_in_single_batch, + ); + new_selected_weight.unwrap_or(Weight::MAX) + }, + _ => break, + }; + + // limit messages in the batch by size + let new_selected_size = match relay_reference.selected_size.checked_add(details.size) { + Some(new_selected_size) + if new_selected_size <= reference.max_messages_size_in_single_batch => + new_selected_size, + new_selected_size if selected_count == 0 => { + log::warn!( + target: "bridge", + "Going to submit message delivery transaction with message \ + size {:?} that overflows maximal configured size {}", + new_selected_size, + reference.max_messages_size_in_single_batch, + ); + new_selected_size.unwrap_or(u32::MAX) + }, + _ => break, + }; + + // limit number of messages in the batch + let new_selected_count = selected_count + 1; + if new_selected_count > reference.max_messages_in_this_batch { + break + } + relay_reference.selected_size = new_selected_size; + + hard_selected_count = index + 1; + selected_weight = new_selected_weight; + selected_count = new_selected_count; + } + + if hard_selected_count != 0 { + let selected_max_nonce = + hard_selected_begin_nonce + hard_selected_count as MessageNonce - 1; + Some(hard_selected_begin_nonce..=selected_max_nonce) + } else { + None + } + } +} diff --git a/bridges/relays/messages/src/message_race_loop.rs b/bridges/relays/messages/src/message_race_loop.rs new file mode 100644 index 0000000000000000000000000000000000000000..31341a9a0c0cd9fce4ba67e14bc43838f4770f3f --- /dev/null +++ b/bridges/relays/messages/src/message_race_loop.rs @@ -0,0 +1,835 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +//! Loop that is serving single race within message lane. This could be +//! message delivery race, receiving confirmations race or processing +//! confirmations race. +//! +//! The idea of the race is simple - we have `nonce`-s on source and target +//! nodes. We're trying to prove that the source node has this nonce (and +//! associated data - like messages, lane state, etc) to the target node by +//! generating and submitting proof. + +use crate::message_lane_loop::{BatchTransaction, ClientState, NoncesSubmitArtifacts}; + +use async_trait::async_trait; +use bp_messages::MessageNonce; +use futures::{ + future::{FutureExt, TryFutureExt}, + stream::{FusedStream, StreamExt}, +}; +use relay_utils::{ + process_future_result, retry_backoff, FailedClient, MaybeConnectionError, + TrackedTransactionStatus, TransactionTracker, +}; +use std::{ + fmt::Debug, + ops::RangeInclusive, + time::{Duration, Instant}, +}; + +/// One of races within lane. +pub trait MessageRace { + /// Header id of the race source. + type SourceHeaderId: Debug + Clone + PartialEq + Send + Sync; + /// Header id of the race source. + type TargetHeaderId: Debug + Clone + PartialEq + Send + Sync; + + /// Message nonce used in the race. + type MessageNonce: Debug + Clone; + /// Proof that is generated and delivered in this race. + type Proof: Debug + Clone + Send + Sync; + + /// Name of the race source. + fn source_name() -> String; + /// Name of the race target. + fn target_name() -> String; +} + +/// State of race source client. +type SourceClientState

= + ClientState<

::SourceHeaderId,

::TargetHeaderId>; + +/// State of race target client. +type TargetClientState

= + ClientState<

::TargetHeaderId,

::SourceHeaderId>; + +/// Inclusive nonces range. +pub trait NoncesRange: Debug + Sized { + /// Get begin of the range. + fn begin(&self) -> MessageNonce; + /// Get end of the range. + fn end(&self) -> MessageNonce; + /// Returns new range with current range nonces that are greater than the passed `nonce`. + /// If there are no such nonces, `None` is returned. + fn greater_than(self, nonce: MessageNonce) -> Option; +} + +/// Nonces on the race source client. +#[derive(Debug, Clone)] +pub struct SourceClientNonces { + /// New nonces range known to the client. `New` here means all nonces generated after + /// `prev_latest_nonce` passed to the `SourceClient::nonces` method. + pub new_nonces: NoncesRange, + /// The latest nonce that is confirmed to the bridged client. This nonce only makes + /// sense in some races. In other races it is `None`. + pub confirmed_nonce: Option, +} + +/// Nonces on the race target client. +#[derive(Debug, Clone)] +pub struct TargetClientNonces { + /// The latest nonce that is known to the target client. + pub latest_nonce: MessageNonce, + /// Additional data from target node that may be used by the race. + pub nonces_data: TargetNoncesData, +} + +/// One of message lane clients, which is source client for the race. +#[async_trait] +pub trait SourceClient { + /// Type of error these clients returns. + type Error: std::fmt::Debug + MaybeConnectionError; + /// Type of nonces range returned by the source client. + type NoncesRange: NoncesRange; + /// Additional proof parameters required to generate proof. + type ProofParameters; + + /// Return nonces that are known to the source client. + async fn nonces( + &self, + at_block: P::SourceHeaderId, + prev_latest_nonce: MessageNonce, + ) -> Result<(P::SourceHeaderId, SourceClientNonces), Self::Error>; + /// Generate proof for delivering to the target client. + async fn generate_proof( + &self, + at_block: P::SourceHeaderId, + nonces: RangeInclusive, + proof_parameters: Self::ProofParameters, + ) -> Result<(P::SourceHeaderId, RangeInclusive, P::Proof), Self::Error>; +} + +/// One of message lane clients, which is target client for the race. +#[async_trait] +pub trait TargetClient { + /// Type of error these clients returns. + type Error: std::fmt::Debug + MaybeConnectionError; + /// Type of the additional data from the target client, used by the race. + type TargetNoncesData: std::fmt::Debug; + /// Type of batch transaction that submits finality and proof to the target node. + type BatchTransaction: BatchTransaction + Clone; + /// Transaction tracker to track submitted transactions. + type TransactionTracker: TransactionTracker; + + /// Ask headers relay to relay finalized headers up to (and including) given header + /// from race source to race target. + /// + /// The client may return `Some(_)`, which means that nothing has happened yet and + /// the caller must generate and append proof to the batch transaction + /// to actually send it (along with required header) to the node. + /// + /// If function has returned `None`, it means that the caller now must wait for the + /// appearance of the required header `id` at the target client. + async fn require_source_header( + &self, + id: P::SourceHeaderId, + ) -> Result, Self::Error>; + + /// Return nonces that are known to the target client. + async fn nonces( + &self, + at_block: P::TargetHeaderId, + update_metrics: bool, + ) -> Result<(P::TargetHeaderId, TargetClientNonces), Self::Error>; + /// Submit proof to the target client. + async fn submit_proof( + &self, + maybe_batch_tx: Option, + generated_at_block: P::SourceHeaderId, + nonces: RangeInclusive, + proof: P::Proof, + ) -> Result, Self::Error>; +} + +/// Race strategy. +#[async_trait] +pub trait RaceStrategy: Debug { + /// Type of nonces range expected from the source client. + type SourceNoncesRange: NoncesRange; + /// Additional proof parameters required to generate proof. + type ProofParameters; + /// Additional data expected from the target client. + type TargetNoncesData; + + /// Should return true if nothing has to be synced. + fn is_empty(&self) -> bool; + /// Return id of source header that is required to be on target to continue synchronization. + async fn required_source_header_at_target>( + &self, + race_state: RS, + ) -> Option; + /// Return the best nonce at source node. + /// + /// `Some` is returned only if we are sure that the value is greater or equal + /// than the result of `best_at_target`. + fn best_at_source(&self) -> Option; + /// Return the best nonce at target node. + /// + /// May return `None` if value is yet unknown. + fn best_at_target(&self) -> Option; + + /// Called when nonces are updated at source node of the race. + fn source_nonces_updated( + &mut self, + at_block: SourceHeaderId, + nonces: SourceClientNonces, + ); + /// Called when we want to wait until next `best_target_nonces_updated` before selecting + /// any nonces for delivery. + fn reset_best_target_nonces(&mut self); + /// Called when best nonces are updated at target node of the race. + fn best_target_nonces_updated>( + &mut self, + nonces: TargetClientNonces, + race_state: &mut RS, + ); + /// Called when finalized nonces are updated at target node of the race. + fn finalized_target_nonces_updated>( + &mut self, + nonces: TargetClientNonces, + race_state: &mut RS, + ); + /// Should return `Some(nonces)` if we need to deliver proof of `nonces` (and associated + /// data) from source to target node. + /// Additionally, parameters required to generate proof are returned. + async fn select_nonces_to_deliver>( + &self, + race_state: RS, + ) -> Option<(RangeInclusive, Self::ProofParameters)>; +} + +/// State of the race. +pub trait RaceState: Clone + Send + Sync { + /// Set best finalized source header id at the best block on the target + /// client (at the `best_finalized_source_header_id_at_best_target`). + fn set_best_finalized_source_header_id_at_best_target(&mut self, id: SourceHeaderId); + + /// Best finalized source header id at the source client. + fn best_finalized_source_header_id_at_source(&self) -> Option; + /// Best finalized source header id at the best block on the target + /// client (at the `best_finalized_source_header_id_at_best_target`). + fn best_finalized_source_header_id_at_best_target(&self) -> Option; + /// The best header id at the target client. + fn best_target_header_id(&self) -> Option; + /// Best finalized header id at the target client. + fn best_finalized_target_header_id(&self) -> Option; + + /// Returns `true` if we have selected nonces to submit to the target node. + fn nonces_to_submit(&self) -> Option>; + /// Reset our nonces selection. + fn reset_nonces_to_submit(&mut self); + + /// Returns `true` if we have submitted some nonces to the target node and are + /// waiting for them to appear there. + fn nonces_submitted(&self) -> Option>; + /// Reset our nonces submission. + fn reset_nonces_submitted(&mut self); +} + +/// State of the race and prepared batch transaction (if available). +#[derive(Debug, Clone)] +pub(crate) struct RaceStateImpl { + /// Best finalized source header id at the source client. + pub best_finalized_source_header_id_at_source: Option, + /// Best finalized source header id at the best block on the target + /// client (at the `best_finalized_source_header_id_at_best_target`). + pub best_finalized_source_header_id_at_best_target: Option, + /// The best header id at the target client. + pub best_target_header_id: Option, + /// Best finalized header id at the target client. + pub best_finalized_target_header_id: Option, + /// Range of nonces that we have selected to submit. + pub nonces_to_submit: Option<(SourceHeaderId, RangeInclusive, Proof)>, + /// Batch transaction ready to include and deliver selected `nonces_to_submit` from the + /// `state`. + pub nonces_to_submit_batch: Option, + /// Range of nonces that is currently submitted. + pub nonces_submitted: Option>, +} + +impl Default + for RaceStateImpl +{ + fn default() -> Self { + RaceStateImpl { + best_finalized_source_header_id_at_source: None, + best_finalized_source_header_id_at_best_target: None, + best_target_header_id: None, + best_finalized_target_header_id: None, + nonces_to_submit: None, + nonces_to_submit_batch: None, + nonces_submitted: None, + } + } +} + +impl RaceState + for RaceStateImpl +where + SourceHeaderId: Clone + Send + Sync, + TargetHeaderId: Clone + Send + Sync, + Proof: Clone + Send + Sync, + BatchTx: Clone + Send + Sync, +{ + fn set_best_finalized_source_header_id_at_best_target(&mut self, id: SourceHeaderId) { + self.best_finalized_source_header_id_at_best_target = Some(id); + } + + fn best_finalized_source_header_id_at_source(&self) -> Option { + self.best_finalized_source_header_id_at_source.clone() + } + + fn best_finalized_source_header_id_at_best_target(&self) -> Option { + self.best_finalized_source_header_id_at_best_target.clone() + } + + fn best_target_header_id(&self) -> Option { + self.best_target_header_id.clone() + } + + fn best_finalized_target_header_id(&self) -> Option { + self.best_finalized_target_header_id.clone() + } + + fn nonces_to_submit(&self) -> Option> { + self.nonces_to_submit.clone().map(|(_, nonces, _)| nonces) + } + + fn reset_nonces_to_submit(&mut self) { + self.nonces_to_submit = None; + self.nonces_to_submit_batch = None; + } + + fn nonces_submitted(&self) -> Option> { + self.nonces_submitted.clone() + } + + fn reset_nonces_submitted(&mut self) { + self.nonces_submitted = None; + } +} + +/// Run race loop until connection with target or source node is lost. +pub async fn run, TC: TargetClient

>( + race_source: SC, + race_source_updated: impl FusedStream>, + race_target: TC, + race_target_updated: impl FusedStream>, + mut strategy: impl RaceStrategy< + P::SourceHeaderId, + P::TargetHeaderId, + P::Proof, + SourceNoncesRange = SC::NoncesRange, + ProofParameters = SC::ProofParameters, + TargetNoncesData = TC::TargetNoncesData, + >, +) -> Result<(), FailedClient> { + let mut progress_context = Instant::now(); + let mut race_state = RaceStateImpl::default(); + + let mut source_retry_backoff = retry_backoff(); + let mut source_client_is_online = true; + let mut source_nonces_required = false; + let mut source_required_header = None; + let source_nonces = futures::future::Fuse::terminated(); + let source_generate_proof = futures::future::Fuse::terminated(); + let source_go_offline_future = futures::future::Fuse::terminated(); + + let mut target_retry_backoff = retry_backoff(); + let mut target_client_is_online = true; + let mut target_best_nonces_required = false; + let mut target_finalized_nonces_required = false; + let mut target_batch_transaction = None; + let target_require_source_header = futures::future::Fuse::terminated(); + let target_best_nonces = futures::future::Fuse::terminated(); + let target_finalized_nonces = futures::future::Fuse::terminated(); + let target_submit_proof = futures::future::Fuse::terminated(); + let target_tx_tracker = futures::future::Fuse::terminated(); + let target_go_offline_future = futures::future::Fuse::terminated(); + + futures::pin_mut!( + race_source_updated, + source_nonces, + source_generate_proof, + source_go_offline_future, + race_target_updated, + target_require_source_header, + target_best_nonces, + target_finalized_nonces, + target_submit_proof, + target_tx_tracker, + target_go_offline_future, + ); + + loop { + futures::select! { + // when headers ids are updated + source_state = race_source_updated.next() => { + if let Some(source_state) = source_state { + let is_source_state_updated = race_state.best_finalized_source_header_id_at_source.as_ref() + != Some(&source_state.best_finalized_self); + if is_source_state_updated { + source_nonces_required = true; + race_state.best_finalized_source_header_id_at_source + = Some(source_state.best_finalized_self); + } + } + }, + target_state = race_target_updated.next() => { + if let Some(target_state) = target_state { + let is_target_best_state_updated = race_state.best_target_header_id.as_ref() + != Some(&target_state.best_self); + + if is_target_best_state_updated { + target_best_nonces_required = true; + race_state.best_target_header_id = Some(target_state.best_self); + race_state.best_finalized_source_header_id_at_best_target + = target_state.best_finalized_peer_at_best_self; + } + + let is_target_finalized_state_updated = race_state.best_finalized_target_header_id.as_ref() + != Some(&target_state.best_finalized_self); + if is_target_finalized_state_updated { + target_finalized_nonces_required = true; + race_state.best_finalized_target_header_id = Some(target_state.best_finalized_self); + } + } + }, + + // when nonces are updated + nonces = source_nonces => { + source_nonces_required = false; + + source_client_is_online = process_future_result( + nonces, + &mut source_retry_backoff, + |(at_block, nonces)| { + log::debug!( + target: "bridge", + "Received nonces from {}: {:?}", + P::source_name(), + nonces, + ); + + strategy.source_nonces_updated(at_block, nonces); + }, + &mut source_go_offline_future, + async_std::task::sleep, + || format!("Error retrieving nonces from {}", P::source_name()), + ).fail_if_connection_error(FailedClient::Source)?; + + // ask for more headers if we have nonces to deliver and required headers are missing + source_required_header = strategy + .required_source_header_at_target(race_state.clone()) + .await; + }, + nonces = target_best_nonces => { + target_best_nonces_required = false; + + target_client_is_online = process_future_result( + nonces, + &mut target_retry_backoff, + |(_, nonces)| { + log::debug!( + target: "bridge", + "Received best nonces from {}: {:?}", + P::target_name(), + nonces, + ); + + strategy.best_target_nonces_updated(nonces, &mut race_state); + }, + &mut target_go_offline_future, + async_std::task::sleep, + || format!("Error retrieving best nonces from {}", P::target_name()), + ).fail_if_connection_error(FailedClient::Target)?; + }, + nonces = target_finalized_nonces => { + target_finalized_nonces_required = false; + + target_client_is_online = process_future_result( + nonces, + &mut target_retry_backoff, + |(_, nonces)| { + log::debug!( + target: "bridge", + "Received finalized nonces from {}: {:?}", + P::target_name(), + nonces, + ); + + strategy.finalized_target_nonces_updated(nonces, &mut race_state); + }, + &mut target_go_offline_future, + async_std::task::sleep, + || format!("Error retrieving finalized nonces from {}", P::target_name()), + ).fail_if_connection_error(FailedClient::Target)?; + }, + + // proof generation and submission + maybe_batch_transaction = target_require_source_header => { + source_required_header = None; + + target_client_is_online = process_future_result( + maybe_batch_transaction, + &mut target_retry_backoff, + |maybe_batch_transaction: Option| { + log::debug!( + target: "bridge", + "Target {} client has been asked for more {} headers. Batch tx: {}", + P::target_name(), + P::source_name(), + maybe_batch_transaction + .as_ref() + .map(|bt| format!("yes ({:?})", bt.required_header_id())) + .unwrap_or_else(|| "no".into()), + ); + + target_batch_transaction = maybe_batch_transaction; + }, + &mut target_go_offline_future, + async_std::task::sleep, + || format!("Error asking for source headers at {}", P::target_name()), + ).fail_if_connection_error(FailedClient::Target)?; + }, + proof = source_generate_proof => { + source_client_is_online = process_future_result( + proof, + &mut source_retry_backoff, + |(at_block, nonces_range, proof, batch_transaction)| { + log::debug!( + target: "bridge", + "Received proof for nonces in range {:?} from {}", + nonces_range, + P::source_name(), + ); + + race_state.nonces_to_submit = Some((at_block, nonces_range, proof)); + race_state.nonces_to_submit_batch = batch_transaction; + }, + &mut source_go_offline_future, + async_std::task::sleep, + || format!("Error generating proof at {}", P::source_name()), + ).fail_if_error(FailedClient::Source).map(|_| true)?; + }, + proof_submit_result = target_submit_proof => { + target_client_is_online = process_future_result( + proof_submit_result, + &mut target_retry_backoff, + |artifacts: NoncesSubmitArtifacts| { + log::debug!( + target: "bridge", + "Successfully submitted proof of nonces {:?} to {}", + artifacts.nonces, + P::target_name(), + ); + + race_state.nonces_submitted = Some(artifacts.nonces); + target_tx_tracker.set(artifacts.tx_tracker.wait().fuse()); + }, + &mut target_go_offline_future, + async_std::task::sleep, + || format!("Error submitting proof {}", P::target_name()), + ).fail_if_connection_error(FailedClient::Target)?; + + // in any case - we don't need to retry submitting the same nonces again until + // we read nonces from the target client + race_state.reset_nonces_to_submit(); + // if we have failed to submit transaction AND that is not the connection issue, + // then we need to read best target nonces before selecting nonces again + if !target_client_is_online { + strategy.reset_best_target_nonces(); + } + }, + target_transaction_status = target_tx_tracker => { + match (target_transaction_status, race_state.nonces_submitted.as_ref()) { + (TrackedTransactionStatus::Finalized(at_block), Some(nonces_submitted)) => { + // our transaction has been mined, but was it successful or not? let's check the best + // nonce at the target node. + let _ = race_target.nonces(at_block, false) + .await + .map_err(|e| format!("failed to read nonces from target node: {e:?}")) + .and_then(|(_, nonces_at_target)| { + if nonces_at_target.latest_nonce < *nonces_submitted.end() { + Err(format!( + "best nonce at target after tx is {:?} and we've submitted {:?}", + nonces_at_target.latest_nonce, + nonces_submitted.end(), + )) + } else { + Ok(()) + } + }) + .map_err(|e| { + log::error!( + target: "bridge", + "{} -> {} race transaction failed: {}", + P::source_name(), + P::target_name(), + e, + ); + + race_state.reset_nonces_submitted(); + }); + }, + (TrackedTransactionStatus::Lost, _) => { + log::warn!( + target: "bridge", + "{} -> {} race transaction has been lost. State: {:?}. Strategy: {:?}", + P::source_name(), + P::target_name(), + race_state, + strategy, + ); + + race_state.reset_nonces_submitted(); + }, + _ => (), + } + }, + + // when we're ready to retry request + _ = source_go_offline_future => { + source_client_is_online = true; + }, + _ = target_go_offline_future => { + target_client_is_online = true; + }, + } + + progress_context = print_race_progress::(progress_context, &strategy); + + if source_client_is_online { + source_client_is_online = false; + + // if we've started to submit batch transaction, let's prioritize it + // + // we're using `take` here, because we don't need batch transaction (i.e. some + // underlying finality proof) anymore for our future calls - we were unable to + // use it for our current state, so why would we need to keep an obsolete proof + // for the future? + let target_batch_transaction = target_batch_transaction.take(); + let expected_race_state = + if let Some(ref target_batch_transaction) = target_batch_transaction { + // when selecting nonces for the batch transaction, we assume that the required + // source header is already at the target chain + let required_source_header_at_target = + target_batch_transaction.required_header_id(); + let mut expected_race_state = race_state.clone(); + expected_race_state.best_finalized_source_header_id_at_best_target = + Some(required_source_header_at_target); + expected_race_state + } else { + race_state.clone() + }; + + let nonces_to_deliver = select_nonces_to_deliver(expected_race_state, &strategy).await; + let best_at_source = strategy.best_at_source(); + + if let Some((at_block, nonces_range, proof_parameters)) = nonces_to_deliver { + log::debug!( + target: "bridge", + "Asking {} to prove nonces in range {:?} at block {:?}", + P::source_name(), + nonces_range, + at_block, + ); + + source_generate_proof.set( + race_source + .generate_proof(at_block, nonces_range, proof_parameters) + .and_then(|(at_source_block, nonces, proof)| async { + Ok((at_source_block, nonces, proof, target_batch_transaction)) + }) + .fuse(), + ); + } else if let (true, Some(best_at_source)) = (source_nonces_required, best_at_source) { + log::debug!(target: "bridge", "Asking {} about message nonces", P::source_name()); + let at_block = race_state + .best_finalized_source_header_id_at_source + .as_ref() + .expect( + "source_nonces_required is only true when\ + best_finalized_source_header_id_at_source is Some; qed", + ) + .clone(); + source_nonces.set(race_source.nonces(at_block, best_at_source).fuse()); + } else { + source_client_is_online = true; + } + } + + if target_client_is_online { + target_client_is_online = false; + + if let Some((at_block, nonces_range, proof)) = race_state.nonces_to_submit.as_ref() { + log::debug!( + target: "bridge", + "Going to submit proof of messages in range {:?} to {} node{}", + nonces_range, + P::target_name(), + race_state.nonces_to_submit_batch.as_ref().map(|tx| format!( + ". This transaction is batched with sending the proof for header {:?}.", + tx.required_header_id()) + ).unwrap_or_default(), + ); + + target_submit_proof.set( + race_target + .submit_proof( + race_state.nonces_to_submit_batch.clone(), + at_block.clone(), + nonces_range.clone(), + proof.clone(), + ) + .fuse(), + ); + } else if let Some(source_required_header) = source_required_header.clone() { + log::debug!( + target: "bridge", + "Going to require {} header {:?} at {}", + P::source_name(), + source_required_header, + P::target_name(), + ); + target_require_source_header + .set(race_target.require_source_header(source_required_header).fuse()); + } else if target_best_nonces_required { + log::debug!(target: "bridge", "Asking {} about best message nonces", P::target_name()); + let at_block = race_state + .best_target_header_id + .as_ref() + .expect("target_best_nonces_required is only true when best_target_header_id is Some; qed") + .clone(); + target_best_nonces.set(race_target.nonces(at_block, false).fuse()); + } else if target_finalized_nonces_required { + log::debug!(target: "bridge", "Asking {} about finalized message nonces", P::target_name()); + let at_block = race_state + .best_finalized_target_header_id + .as_ref() + .expect( + "target_finalized_nonces_required is only true when\ + best_finalized_target_header_id is Some; qed", + ) + .clone(); + target_finalized_nonces.set(race_target.nonces(at_block, true).fuse()); + } else { + target_client_is_online = true; + } + } + } +} + +/// Print race progress. +fn print_race_progress(prev_time: Instant, strategy: &S) -> Instant +where + P: MessageRace, + S: RaceStrategy, +{ + let now_time = Instant::now(); + + let need_update = now_time.saturating_duration_since(prev_time) > Duration::from_secs(10); + if !need_update { + return prev_time + } + + let now_best_nonce_at_source = strategy.best_at_source(); + let now_best_nonce_at_target = strategy.best_at_target(); + log::info!( + target: "bridge", + "Synced {:?} of {:?} nonces in {} -> {} race", + now_best_nonce_at_target, + now_best_nonce_at_source, + P::source_name(), + P::target_name(), + ); + now_time +} + +async fn select_nonces_to_deliver( + race_state: impl RaceState, + strategy: &Strategy, +) -> Option<(SourceHeaderId, RangeInclusive, Strategy::ProofParameters)> +where + SourceHeaderId: Clone, + Strategy: RaceStrategy, +{ + let best_finalized_source_header_id_at_best_target = + race_state.best_finalized_source_header_id_at_best_target()?; + strategy + .select_nonces_to_deliver(race_state) + .await + .map(|(nonces_range, proof_parameters)| { + (best_finalized_source_header_id_at_best_target, nonces_range, proof_parameters) + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::message_race_strategy::BasicStrategy; + use relay_utils::HeaderId; + + #[async_std::test] + async fn proof_is_generated_at_best_block_known_to_target_node() { + const GENERATED_AT: u64 = 6; + const BEST_AT_SOURCE: u64 = 10; + const BEST_AT_TARGET: u64 = 8; + + // target node only knows about source' BEST_AT_TARGET block + // source node has BEST_AT_SOURCE > BEST_AT_TARGET block + let mut race_state = RaceStateImpl::<_, _, (), ()> { + best_finalized_source_header_id_at_source: Some(HeaderId( + BEST_AT_SOURCE, + BEST_AT_SOURCE, + )), + best_finalized_source_header_id_at_best_target: Some(HeaderId( + BEST_AT_TARGET, + BEST_AT_TARGET, + )), + best_target_header_id: Some(HeaderId(0, 0)), + best_finalized_target_header_id: Some(HeaderId(0, 0)), + nonces_to_submit: None, + nonces_to_submit_batch: None, + nonces_submitted: None, + }; + + // we have some nonces to deliver and they're generated at GENERATED_AT < BEST_AT_SOURCE + let mut strategy = BasicStrategy::<_, _, _, _, _, ()>::new(); + strategy.source_nonces_updated( + HeaderId(GENERATED_AT, GENERATED_AT), + SourceClientNonces { new_nonces: 0..=10, confirmed_nonce: None }, + ); + strategy.best_target_nonces_updated( + TargetClientNonces { latest_nonce: 5u64, nonces_data: () }, + &mut race_state, + ); + + // the proof will be generated on source, but using BEST_AT_TARGET block + assert_eq!( + select_nonces_to_deliver(race_state, &strategy).await, + Some((HeaderId(BEST_AT_TARGET, BEST_AT_TARGET), 6..=10, (),)) + ); + } +} diff --git a/bridges/relays/messages/src/message_race_receiving.rs b/bridges/relays/messages/src/message_race_receiving.rs new file mode 100644 index 0000000000000000000000000000000000000000..e6497a1b79eb70999f16cd0c1926ae9cf0ad5411 --- /dev/null +++ b/bridges/relays/messages/src/message_race_receiving.rs @@ -0,0 +1,235 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +//! Message receiving race delivers proof-of-messages-delivery from "lane.target" to "lane.source". + +use crate::{ + message_lane::{MessageLane, SourceHeaderIdOf, TargetHeaderIdOf}, + message_lane_loop::{ + NoncesSubmitArtifacts, SourceClient as MessageLaneSourceClient, SourceClientState, + TargetClient as MessageLaneTargetClient, TargetClientState, + }, + message_race_loop::{ + MessageRace, NoncesRange, SourceClient, SourceClientNonces, TargetClient, + TargetClientNonces, + }, + message_race_strategy::BasicStrategy, + metrics::MessageLaneLoopMetrics, +}; + +use async_trait::async_trait; +use bp_messages::MessageNonce; +use futures::stream::FusedStream; +use relay_utils::FailedClient; +use std::{marker::PhantomData, ops::RangeInclusive}; + +/// Message receiving confirmations delivery strategy. +type ReceivingConfirmationsBasicStrategy

= BasicStrategy< +

::TargetHeaderNumber, +

::TargetHeaderHash, +

::SourceHeaderNumber, +

::SourceHeaderHash, + RangeInclusive, +

::MessagesReceivingProof, +>; + +/// Run receiving confirmations race. +pub async fn run( + source_client: impl MessageLaneSourceClient

, + source_state_updates: impl FusedStream>, + target_client: impl MessageLaneTargetClient

, + target_state_updates: impl FusedStream>, + metrics_msg: Option, +) -> Result<(), FailedClient> { + crate::message_race_loop::run( + ReceivingConfirmationsRaceSource { + client: target_client, + metrics_msg: metrics_msg.clone(), + _phantom: Default::default(), + }, + target_state_updates, + ReceivingConfirmationsRaceTarget { + client: source_client, + metrics_msg, + _phantom: Default::default(), + }, + source_state_updates, + ReceivingConfirmationsBasicStrategy::

::new(), + ) + .await +} + +/// Messages receiving confirmations race. +struct ReceivingConfirmationsRace

(std::marker::PhantomData

); + +impl MessageRace for ReceivingConfirmationsRace

{ + type SourceHeaderId = TargetHeaderIdOf

; + type TargetHeaderId = SourceHeaderIdOf

; + + type MessageNonce = MessageNonce; + type Proof = P::MessagesReceivingProof; + + fn source_name() -> String { + format!("{}::ReceivingConfirmationsDelivery", P::TARGET_NAME) + } + + fn target_name() -> String { + format!("{}::ReceivingConfirmationsDelivery", P::SOURCE_NAME) + } +} + +/// Message receiving confirmations race source, which is a target of the lane. +struct ReceivingConfirmationsRaceSource { + client: C, + metrics_msg: Option, + _phantom: PhantomData

, +} + +#[async_trait] +impl SourceClient> for ReceivingConfirmationsRaceSource +where + P: MessageLane, + C: MessageLaneTargetClient

, +{ + type Error = C::Error; + type NoncesRange = RangeInclusive; + type ProofParameters = (); + + async fn nonces( + &self, + at_block: TargetHeaderIdOf

, + prev_latest_nonce: MessageNonce, + ) -> Result<(TargetHeaderIdOf

, SourceClientNonces), Self::Error> { + let (at_block, latest_received_nonce) = self.client.latest_received_nonce(at_block).await?; + if let Some(metrics_msg) = self.metrics_msg.as_ref() { + metrics_msg.update_target_latest_received_nonce(latest_received_nonce); + } + Ok(( + at_block, + SourceClientNonces { + new_nonces: prev_latest_nonce + 1..=latest_received_nonce, + confirmed_nonce: None, + }, + )) + } + + #[allow(clippy::unit_arg)] + async fn generate_proof( + &self, + at_block: TargetHeaderIdOf

, + nonces: RangeInclusive, + _proof_parameters: Self::ProofParameters, + ) -> Result< + (TargetHeaderIdOf

, RangeInclusive, P::MessagesReceivingProof), + Self::Error, + > { + self.client + .prove_messages_receiving(at_block) + .await + .map(|(at_block, proof)| (at_block, nonces, proof)) + } +} + +/// Message receiving confirmations race target, which is a source of the lane. +struct ReceivingConfirmationsRaceTarget { + client: C, + metrics_msg: Option, + _phantom: PhantomData

, +} + +#[async_trait] +impl TargetClient> for ReceivingConfirmationsRaceTarget +where + P: MessageLane, + C: MessageLaneSourceClient

, +{ + type Error = C::Error; + type TargetNoncesData = (); + type BatchTransaction = C::BatchTransaction; + type TransactionTracker = C::TransactionTracker; + + async fn require_source_header( + &self, + id: TargetHeaderIdOf

, + ) -> Result, Self::Error> { + self.client.require_target_header_on_source(id).await + } + + async fn nonces( + &self, + at_block: SourceHeaderIdOf

, + update_metrics: bool, + ) -> Result<(SourceHeaderIdOf

, TargetClientNonces<()>), Self::Error> { + let (at_block, latest_confirmed_nonce) = + self.client.latest_confirmed_received_nonce(at_block).await?; + if update_metrics { + if let Some(metrics_msg) = self.metrics_msg.as_ref() { + metrics_msg.update_source_latest_confirmed_nonce(latest_confirmed_nonce); + } + } + Ok((at_block, TargetClientNonces { latest_nonce: latest_confirmed_nonce, nonces_data: () })) + } + + async fn submit_proof( + &self, + maybe_batch_tx: Option, + generated_at_block: TargetHeaderIdOf

, + nonces: RangeInclusive, + proof: P::MessagesReceivingProof, + ) -> Result, Self::Error> { + let tx_tracker = self + .client + .submit_messages_receiving_proof(maybe_batch_tx, generated_at_block, proof) + .await?; + Ok(NoncesSubmitArtifacts { nonces, tx_tracker }) + } +} + +impl NoncesRange for RangeInclusive { + fn begin(&self) -> MessageNonce { + *RangeInclusive::::start(self) + } + + fn end(&self) -> MessageNonce { + *RangeInclusive::::end(self) + } + + fn greater_than(self, nonce: MessageNonce) -> Option { + let next_nonce = nonce + 1; + let end = *self.end(); + if next_nonce > end { + None + } else { + Some(std::cmp::max(self.begin(), next_nonce)..=end) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn range_inclusive_works_as_nonces_range() { + let range = 20..=30; + + assert_eq!(NoncesRange::begin(&range), 20); + assert_eq!(NoncesRange::end(&range), 30); + assert_eq!(range.clone().greater_than(10), Some(20..=30)); + assert_eq!(range.clone().greater_than(19), Some(20..=30)); + assert_eq!(range.clone().greater_than(20), Some(21..=30)); + assert_eq!(range.clone().greater_than(25), Some(26..=30)); + assert_eq!(range.clone().greater_than(29), Some(30..=30)); + assert_eq!(range.greater_than(30), None); + } +} diff --git a/bridges/relays/messages/src/message_race_strategy.rs b/bridges/relays/messages/src/message_race_strategy.rs new file mode 100644 index 0000000000000000000000000000000000000000..93d178e55b04f64a9631f04b4e93b67594d67e54 --- /dev/null +++ b/bridges/relays/messages/src/message_race_strategy.rs @@ -0,0 +1,628 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +//! Basic delivery strategy. The strategy selects nonces if: +//! +//! 1) there are more nonces on the source side than on the target side; +//! 2) new nonces may be proved to target node (i.e. they have appeared at the block, which is known +//! to the target node). + +use crate::message_race_loop::{ + NoncesRange, RaceState, RaceStrategy, SourceClientNonces, TargetClientNonces, +}; + +use async_trait::async_trait; +use bp_messages::MessageNonce; +use relay_utils::HeaderId; +use std::{collections::VecDeque, fmt::Debug, marker::PhantomData, ops::RangeInclusive}; + +/// Queue of nonces known to the source node. +pub type SourceRangesQueue = + VecDeque<(HeaderId, SourceNoncesRange)>; + +/// Nonces delivery strategy. +#[derive(Debug)] +pub struct BasicStrategy< + SourceHeaderNumber, + SourceHeaderHash, + TargetHeaderNumber, + TargetHeaderHash, + SourceNoncesRange, + Proof, +> { + /// All queued nonces. + /// + /// The queue may contain already delivered nonces. We only remove entries from this + /// queue after corresponding nonces are finalized by the target chain. + source_queue: SourceRangesQueue, + /// The best nonce known to target node at its best block. `None` if it has not been received + /// yet. + best_target_nonce: Option, + /// Unused generic types dump. + _phantom: PhantomData<(TargetHeaderNumber, TargetHeaderHash, Proof)>, +} + +impl< + SourceHeaderNumber, + SourceHeaderHash, + TargetHeaderNumber, + TargetHeaderHash, + SourceNoncesRange, + Proof, + > + BasicStrategy< + SourceHeaderNumber, + SourceHeaderHash, + TargetHeaderNumber, + TargetHeaderHash, + SourceNoncesRange, + Proof, + > where + SourceHeaderHash: Clone, + SourceHeaderNumber: Clone + Ord, + SourceNoncesRange: NoncesRange, +{ + /// Create new delivery strategy. + pub fn new() -> Self { + BasicStrategy { + source_queue: VecDeque::new(), + best_target_nonce: None, + _phantom: Default::default(), + } + } + + /// Reference to source queue. + pub(crate) fn source_queue( + &self, + ) -> &VecDeque<(HeaderId, SourceNoncesRange)> { + &self.source_queue + } + + /// Mutable reference to source queue to use in tests. + #[cfg(test)] + pub(crate) fn source_queue_mut( + &mut self, + ) -> &mut VecDeque<(HeaderId, SourceNoncesRange)> { + &mut self.source_queue + } + + /// Returns indices of source queue entries, which may be delivered to the target node. + /// + /// The function may skip some nonces from the queue front if nonces from this entry are + /// already available at the **best** target block. After this block is finalized, the entry + /// will be removed from the queue. + /// + /// All entries before and including the range end index, are guaranteed to be witnessed + /// at source blocks that are known to be finalized at the target node. + /// + /// Returns `None` if no entries may be delivered. + pub fn available_source_queue_indices< + RS: RaceState< + HeaderId, + HeaderId, + >, + >( + &self, + race_state: RS, + ) -> Option> { + // if we do not know best nonce at target node, we can't select anything + let best_target_nonce = self.best_target_nonce?; + + // if we have already selected nonces that we want to submit, do nothing + if race_state.nonces_to_submit().is_some() { + return None + } + + // if we already submitted some nonces, do nothing + if race_state.nonces_submitted().is_some() { + return None + } + + // find first entry that may be delivered to the target node + let begin_index = self + .source_queue + .iter() + .enumerate() + .skip_while(|(_, (_, nonces))| nonces.end() <= best_target_nonce) + .map(|(index, _)| index) + .next()?; + + // 1) we want to deliver all nonces, starting from `target_nonce + 1` + // 2) we can't deliver new nonce until header, that has emitted this nonce, is finalized + // by target client + // 3) selector is used for more complicated logic + // + // => let's first select range of entries inside deque that are already finalized at + // the target client and pass this range to the selector + let best_header_at_target = race_state.best_finalized_source_header_id_at_best_target()?; + let end_index = self + .source_queue + .iter() + .enumerate() + .skip(begin_index) + .take_while(|(_, (queued_at, _))| queued_at.0 <= best_header_at_target.0) + .map(|(index, _)| index) + .last()?; + + Some(begin_index..=end_index) + } + + /// Remove all nonces that are less than or equal to given nonce from the source queue. + fn remove_le_nonces_from_source_queue(&mut self, nonce: MessageNonce) { + while let Some((queued_at, queued_range)) = self.source_queue.pop_front() { + if let Some(range_to_requeue) = queued_range.greater_than(nonce) { + self.source_queue.push_front((queued_at, range_to_requeue)); + break + } + } + } +} + +#[async_trait] +impl< + SourceHeaderNumber, + SourceHeaderHash, + TargetHeaderNumber, + TargetHeaderHash, + SourceNoncesRange, + Proof, + > + RaceStrategy< + HeaderId, + HeaderId, + Proof, + > + for BasicStrategy< + SourceHeaderNumber, + SourceHeaderHash, + TargetHeaderNumber, + TargetHeaderHash, + SourceNoncesRange, + Proof, + > where + SourceHeaderHash: Clone + Debug + Send + Sync, + SourceHeaderNumber: Clone + Ord + Debug + Send + Sync, + SourceNoncesRange: NoncesRange + Debug + Send + Sync, + TargetHeaderHash: Debug + Send + Sync, + TargetHeaderNumber: Debug + Send + Sync, + Proof: Debug + Send + Sync, +{ + type SourceNoncesRange = SourceNoncesRange; + type ProofParameters = (); + type TargetNoncesData = (); + + fn is_empty(&self) -> bool { + self.source_queue.is_empty() + } + + async fn required_source_header_at_target< + RS: RaceState< + HeaderId, + HeaderId, + >, + >( + &self, + race_state: RS, + ) -> Option> { + let current_best = race_state.best_finalized_source_header_id_at_best_target()?; + self.source_queue + .back() + .and_then(|(h, _)| if h.0 > current_best.0 { Some(h.clone()) } else { None }) + } + + fn best_at_source(&self) -> Option { + let best_in_queue = self.source_queue.back().map(|(_, range)| range.end()); + match (best_in_queue, self.best_target_nonce) { + (Some(best_in_queue), Some(best_target_nonce)) if best_in_queue > best_target_nonce => + Some(best_in_queue), + (_, Some(best_target_nonce)) => Some(best_target_nonce), + (_, None) => None, + } + } + + fn best_at_target(&self) -> Option { + self.best_target_nonce + } + + fn source_nonces_updated( + &mut self, + at_block: HeaderId, + nonces: SourceClientNonces, + ) { + let best_in_queue = self + .source_queue + .back() + .map(|(_, range)| range.end()) + .or(self.best_target_nonce) + .unwrap_or_default(); + self.source_queue.extend( + nonces + .new_nonces + .greater_than(best_in_queue) + .into_iter() + .map(move |range| (at_block.clone(), range)), + ) + } + + fn reset_best_target_nonces(&mut self) { + self.best_target_nonce = None; + } + + fn best_target_nonces_updated< + RS: RaceState< + HeaderId, + HeaderId, + >, + >( + &mut self, + nonces: TargetClientNonces<()>, + race_state: &mut RS, + ) { + let nonce = nonces.latest_nonce; + + // if **some** of nonces that we have selected to submit already present at the + // target chain => select new nonces + let need_to_select_new_nonces = race_state + .nonces_to_submit() + .map(|nonces| nonce >= *nonces.start()) + .unwrap_or(false); + if need_to_select_new_nonces { + log::trace!( + target: "bridge", + "Latest nonce at target is {}. Clearing nonces to submit: {:?}", + nonce, + race_state.nonces_to_submit(), + ); + + race_state.reset_nonces_to_submit(); + } + + // if **some** of nonces that we have submitted already present at the + // target chain => select new nonces + let need_new_nonces_to_submit = race_state + .nonces_submitted() + .map(|nonces| nonce >= *nonces.start()) + .unwrap_or(false); + if need_new_nonces_to_submit { + log::trace!( + target: "bridge", + "Latest nonce at target is {}. Clearing submitted nonces: {:?}", + nonce, + race_state.nonces_submitted(), + ); + + race_state.reset_nonces_submitted(); + } + + self.best_target_nonce = Some(nonce); + } + + fn finalized_target_nonces_updated< + RS: RaceState< + HeaderId, + HeaderId, + >, + >( + &mut self, + nonces: TargetClientNonces<()>, + _race_state: &mut RS, + ) { + self.remove_le_nonces_from_source_queue(nonces.latest_nonce); + self.best_target_nonce = Some(std::cmp::max( + self.best_target_nonce.unwrap_or(nonces.latest_nonce), + nonces.latest_nonce, + )); + } + + async fn select_nonces_to_deliver< + RS: RaceState< + HeaderId, + HeaderId, + >, + >( + &self, + race_state: RS, + ) -> Option<(RangeInclusive, Self::ProofParameters)> { + let available_indices = self.available_source_queue_indices(race_state)?; + let range_begin = std::cmp::max( + self.best_target_nonce? + 1, + self.source_queue[*available_indices.start()].1.begin(), + ); + let range_end = self.source_queue[*available_indices.end()].1.end(); + Some((range_begin..=range_end, ())) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{ + message_lane::{MessageLane, SourceHeaderIdOf, TargetHeaderIdOf}, + message_lane_loop::tests::{ + header_id, TestMessageLane, TestMessagesProof, TestSourceHeaderHash, + TestSourceHeaderNumber, + }, + message_race_loop::RaceStateImpl, + }; + + type SourceNoncesRange = RangeInclusive; + + type TestRaceStateImpl = RaceStateImpl< + SourceHeaderIdOf, + TargetHeaderIdOf, + TestMessagesProof, + (), + >; + + type BasicStrategy

= super::BasicStrategy< +

::SourceHeaderNumber, +

::SourceHeaderHash, +

::TargetHeaderNumber, +

::TargetHeaderHash, + SourceNoncesRange, +

::MessagesProof, + >; + + fn source_nonces(new_nonces: SourceNoncesRange) -> SourceClientNonces { + SourceClientNonces { new_nonces, confirmed_nonce: None } + } + + fn target_nonces(latest_nonce: MessageNonce) -> TargetClientNonces<()> { + TargetClientNonces { latest_nonce, nonces_data: () } + } + + #[test] + fn strategy_is_empty_works() { + let mut strategy = BasicStrategy::::new(); + assert!(strategy.is_empty()); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=1)); + assert!(!strategy.is_empty()); + } + + #[test] + fn best_at_source_is_never_lower_than_target_nonce() { + let mut strategy = BasicStrategy::::new(); + assert_eq!(strategy.best_at_source(), None); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=5)); + assert_eq!(strategy.best_at_source(), None); + strategy.best_target_nonces_updated(target_nonces(10), &mut TestRaceStateImpl::default()); + assert_eq!(strategy.source_queue, vec![(header_id(1), 1..=5)]); + assert_eq!(strategy.best_at_source(), Some(10)); + } + + #[test] + fn source_nonce_is_never_lower_than_known_target_nonce() { + let mut strategy = BasicStrategy::::new(); + strategy.best_target_nonces_updated(target_nonces(10), &mut TestRaceStateImpl::default()); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=5)); + assert_eq!(strategy.source_queue, vec![]); + } + + #[test] + fn source_nonce_is_never_lower_than_latest_known_source_nonce() { + let mut strategy = BasicStrategy::::new(); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=5)); + strategy.source_nonces_updated(header_id(2), source_nonces(1..=3)); + strategy.source_nonces_updated(header_id(2), source_nonces(1..=5)); + assert_eq!(strategy.source_queue, vec![(header_id(1), 1..=5)]); + } + + #[test] + fn updated_target_nonce_removes_queued_entries() { + let mut strategy = BasicStrategy::::new(); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=5)); + strategy.source_nonces_updated(header_id(2), source_nonces(6..=10)); + strategy.source_nonces_updated(header_id(3), source_nonces(11..=15)); + strategy.source_nonces_updated(header_id(4), source_nonces(16..=20)); + strategy + .finalized_target_nonces_updated(target_nonces(15), &mut TestRaceStateImpl::default()); + assert_eq!(strategy.source_queue, vec![(header_id(4), 16..=20)]); + strategy + .finalized_target_nonces_updated(target_nonces(17), &mut TestRaceStateImpl::default()); + assert_eq!(strategy.source_queue, vec![(header_id(4), 18..=20)]); + } + + #[test] + fn selected_nonces_are_dropped_on_target_nonce_update() { + let mut state = TestRaceStateImpl::default(); + let mut strategy = BasicStrategy::::new(); + state.nonces_to_submit = Some((header_id(1), 5..=10, (5..=10, None))); + // we are going to submit 5..=10, so having latest nonce 4 at target is fine + strategy.best_target_nonces_updated(target_nonces(4), &mut state); + assert!(state.nonces_to_submit.is_some()); + // any nonce larger than 4 invalidates the `nonces_to_submit` + for nonce in 5..=11 { + state.nonces_to_submit = Some((header_id(1), 5..=10, (5..=10, None))); + strategy.best_target_nonces_updated(target_nonces(nonce), &mut state); + assert!(state.nonces_to_submit.is_none()); + } + } + + #[test] + fn submitted_nonces_are_dropped_on_target_nonce_update() { + let mut state = TestRaceStateImpl::default(); + let mut strategy = BasicStrategy::::new(); + state.nonces_submitted = Some(5..=10); + // we have submitted 5..=10, so having latest nonce 4 at target is fine + strategy.best_target_nonces_updated(target_nonces(4), &mut state); + assert!(state.nonces_submitted.is_some()); + // any nonce larger than 4 invalidates the `nonces_submitted` + for nonce in 5..=11 { + state.nonces_submitted = Some(5..=10); + strategy.best_target_nonces_updated(target_nonces(nonce), &mut state); + assert!(state.nonces_submitted.is_none()); + } + } + + #[async_std::test] + async fn nothing_is_selected_if_something_is_already_selected() { + let mut state = TestRaceStateImpl::default(); + let mut strategy = BasicStrategy::::new(); + state.nonces_to_submit = Some((header_id(1), 1..=10, (1..=10, None))); + strategy.best_target_nonces_updated(target_nonces(0), &mut state); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=10)); + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, None); + } + + #[async_std::test] + async fn nothing_is_selected_if_something_is_already_submitted() { + let mut state = TestRaceStateImpl::default(); + let mut strategy = BasicStrategy::::new(); + state.nonces_submitted = Some(1..=10); + strategy.best_target_nonces_updated(target_nonces(0), &mut state); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=10)); + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, None); + } + + #[async_std::test] + async fn select_nonces_to_deliver_works() { + let mut state = TestRaceStateImpl::default(); + let mut strategy = BasicStrategy::::new(); + strategy.best_target_nonces_updated(target_nonces(0), &mut state); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=1)); + strategy.source_nonces_updated(header_id(2), source_nonces(2..=2)); + strategy.source_nonces_updated(header_id(3), source_nonces(3..=6)); + strategy.source_nonces_updated(header_id(5), source_nonces(7..=8)); + + state.best_finalized_source_header_id_at_best_target = Some(header_id(4)); + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, Some((1..=6, ()))); + strategy.best_target_nonces_updated(target_nonces(6), &mut state); + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, None); + + state.best_finalized_source_header_id_at_best_target = Some(header_id(5)); + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, Some((7..=8, ()))); + strategy.best_target_nonces_updated(target_nonces(8), &mut state); + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, None); + } + + #[test] + fn available_source_queue_indices_works() { + let mut state = TestRaceStateImpl::default(); + let mut strategy = BasicStrategy::::new(); + strategy.best_target_nonces_updated(target_nonces(0), &mut state); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=3)); + strategy.source_nonces_updated(header_id(2), source_nonces(4..=6)); + strategy.source_nonces_updated(header_id(3), source_nonces(7..=9)); + + state.best_finalized_source_header_id_at_best_target = Some(header_id(0)); + assert_eq!(strategy.available_source_queue_indices(state.clone()), None); + + state.best_finalized_source_header_id_at_best_target = Some(header_id(1)); + assert_eq!(strategy.available_source_queue_indices(state.clone()), Some(0..=0)); + + state.best_finalized_source_header_id_at_best_target = Some(header_id(2)); + assert_eq!(strategy.available_source_queue_indices(state.clone()), Some(0..=1)); + + state.best_finalized_source_header_id_at_best_target = Some(header_id(3)); + assert_eq!(strategy.available_source_queue_indices(state.clone()), Some(0..=2)); + + state.best_finalized_source_header_id_at_best_target = Some(header_id(4)); + assert_eq!(strategy.available_source_queue_indices(state), Some(0..=2)); + } + + #[test] + fn remove_le_nonces_from_source_queue_works() { + let mut state = TestRaceStateImpl::default(); + let mut strategy = BasicStrategy::::new(); + strategy.best_target_nonces_updated(target_nonces(0), &mut state); + strategy.source_nonces_updated(header_id(1), source_nonces(1..=3)); + strategy.source_nonces_updated(header_id(2), source_nonces(4..=6)); + strategy.source_nonces_updated(header_id(3), source_nonces(7..=9)); + + fn source_queue_nonces( + source_queue: &SourceRangesQueue< + TestSourceHeaderHash, + TestSourceHeaderNumber, + SourceNoncesRange, + >, + ) -> Vec { + source_queue.iter().flat_map(|(_, range)| range.clone()).collect() + } + + strategy.remove_le_nonces_from_source_queue(1); + assert_eq!(source_queue_nonces(&strategy.source_queue), vec![2, 3, 4, 5, 6, 7, 8, 9],); + + strategy.remove_le_nonces_from_source_queue(5); + assert_eq!(source_queue_nonces(&strategy.source_queue), vec![6, 7, 8, 9],); + + strategy.remove_le_nonces_from_source_queue(9); + assert_eq!(source_queue_nonces(&strategy.source_queue), Vec::::new(),); + + strategy.remove_le_nonces_from_source_queue(100); + assert_eq!(source_queue_nonces(&strategy.source_queue), Vec::::new(),); + } + + #[async_std::test] + async fn previous_nonces_are_selected_if_reorg_happens_at_target_chain() { + let source_header_1 = header_id(1); + let target_header_1 = header_id(1); + + // we start in perfec sync state - all headers are synced and finalized on both ends + let mut state = TestRaceStateImpl { + best_finalized_source_header_id_at_source: Some(source_header_1), + best_finalized_source_header_id_at_best_target: Some(source_header_1), + best_target_header_id: Some(target_header_1), + best_finalized_target_header_id: Some(target_header_1), + nonces_to_submit: None, + nonces_to_submit_batch: None, + nonces_submitted: None, + }; + + // in this state we have 1 available nonce for delivery + let mut strategy = BasicStrategy:: { + source_queue: vec![(header_id(1), 1..=1)].into_iter().collect(), + best_target_nonce: Some(0), + _phantom: PhantomData, + }; + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, Some((1..=1, ())),); + + // let's say we have submitted 1..=1 + state.nonces_submitted = Some(1..=1); + + // then new nonce 2 appear at the source block 2 + let source_header_2 = header_id(2); + state.best_finalized_source_header_id_at_source = Some(source_header_2); + strategy.source_nonces_updated( + source_header_2, + SourceClientNonces { new_nonces: 2..=2, confirmed_nonce: None }, + ); + // and nonce 1 appear at the best block of the target node (best finalized still has 0 + // nonces) + let target_header_2 = header_id(2); + state.best_target_header_id = Some(target_header_2); + strategy.best_target_nonces_updated( + TargetClientNonces { latest_nonce: 1, nonces_data: () }, + &mut state, + ); + + // then best target header is retracted + strategy.best_target_nonces_updated( + TargetClientNonces { latest_nonce: 0, nonces_data: () }, + &mut state, + ); + + // ... and some fork with zero delivered nonces is finalized + let target_header_2_fork = header_id(2_1); + state.best_finalized_source_header_id_at_source = Some(source_header_2); + state.best_finalized_source_header_id_at_best_target = Some(source_header_2); + state.best_target_header_id = Some(target_header_2_fork); + state.best_finalized_target_header_id = Some(target_header_2_fork); + strategy.finalized_target_nonces_updated( + TargetClientNonces { latest_nonce: 0, nonces_data: () }, + &mut state, + ); + + // now we have to select nonce 1 for delivery again + assert_eq!(strategy.select_nonces_to_deliver(state.clone()).await, Some((1..=2, ())),); + } +} diff --git a/bridges/relays/messages/src/metrics.rs b/bridges/relays/messages/src/metrics.rs new file mode 100644 index 0000000000000000000000000000000000000000..69d80d178de809211b1874965adcf02fd76a66b8 --- /dev/null +++ b/bridges/relays/messages/src/metrics.rs @@ -0,0 +1,148 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Metrics for message lane relay loop. + +use crate::{ + message_lane::MessageLane, + message_lane_loop::{SourceClientState, TargetClientState}, +}; + +use bp_messages::MessageNonce; +use finality_relay::SyncLoopMetrics; +use relay_utils::metrics::{ + metric_name, register, GaugeVec, Metric, Opts, PrometheusError, Registry, U64, +}; + +/// Message lane relay metrics. +/// +/// Cloning only clones references. +#[derive(Clone)] +pub struct MessageLaneLoopMetrics { + /// Best finalized block numbers - "source", "source_at_target", "target_at_source". + source_to_target_finality_metrics: SyncLoopMetrics, + /// Best finalized block numbers - "source", "target", "source_at_target", "target_at_source". + target_to_source_finality_metrics: SyncLoopMetrics, + /// Lane state nonces: "source_latest_generated", "source_latest_confirmed", + /// "target_latest_received", "target_latest_confirmed". + lane_state_nonces: GaugeVec, +} + +impl MessageLaneLoopMetrics { + /// Create and register messages loop metrics. + pub fn new(prefix: Option<&str>) -> Result { + Ok(MessageLaneLoopMetrics { + source_to_target_finality_metrics: SyncLoopMetrics::new( + prefix, + "source", + "source_at_target", + )?, + target_to_source_finality_metrics: SyncLoopMetrics::new( + prefix, + "target", + "target_at_source", + )?, + lane_state_nonces: GaugeVec::new( + Opts::new(metric_name(prefix, "lane_state_nonces"), "Nonces of the lane state"), + &["type"], + )?, + }) + } + + /// Update source client state metrics. + pub fn update_source_state(&self, source_client_state: SourceClientState

) { + self.source_to_target_finality_metrics + .update_best_block_at_source(source_client_state.best_self.0); + if let Some(best_finalized_peer_at_best_self) = + source_client_state.best_finalized_peer_at_best_self + { + self.target_to_source_finality_metrics + .update_best_block_at_target(best_finalized_peer_at_best_self.0); + if let Some(actual_best_finalized_peer_at_best_self) = + source_client_state.actual_best_finalized_peer_at_best_self + { + self.target_to_source_finality_metrics.update_using_same_fork( + best_finalized_peer_at_best_self.1 == actual_best_finalized_peer_at_best_self.1, + ); + } + } + } + + /// Update target client state metrics. + pub fn update_target_state(&self, target_client_state: TargetClientState

) { + self.target_to_source_finality_metrics + .update_best_block_at_source(target_client_state.best_self.0); + if let Some(best_finalized_peer_at_best_self) = + target_client_state.best_finalized_peer_at_best_self + { + self.source_to_target_finality_metrics + .update_best_block_at_target(best_finalized_peer_at_best_self.0); + if let Some(actual_best_finalized_peer_at_best_self) = + target_client_state.actual_best_finalized_peer_at_best_self + { + self.source_to_target_finality_metrics.update_using_same_fork( + best_finalized_peer_at_best_self.1 == actual_best_finalized_peer_at_best_self.1, + ); + } + } + } + + /// Update latest generated nonce at source. + pub fn update_source_latest_generated_nonce( + &self, + source_latest_generated_nonce: MessageNonce, + ) { + self.lane_state_nonces + .with_label_values(&["source_latest_generated"]) + .set(source_latest_generated_nonce); + } + + /// Update the latest confirmed nonce at source. + pub fn update_source_latest_confirmed_nonce( + &self, + source_latest_confirmed_nonce: MessageNonce, + ) { + self.lane_state_nonces + .with_label_values(&["source_latest_confirmed"]) + .set(source_latest_confirmed_nonce); + } + + /// Update the latest received nonce at target. + pub fn update_target_latest_received_nonce(&self, target_latest_generated_nonce: MessageNonce) { + self.lane_state_nonces + .with_label_values(&["target_latest_received"]) + .set(target_latest_generated_nonce); + } + + /// Update the latest confirmed nonce at target. + pub fn update_target_latest_confirmed_nonce( + &self, + target_latest_confirmed_nonce: MessageNonce, + ) { + self.lane_state_nonces + .with_label_values(&["target_latest_confirmed"]) + .set(target_latest_confirmed_nonce); + } +} + +impl Metric for MessageLaneLoopMetrics { + fn register(&self, registry: &Registry) -> Result<(), PrometheusError> { + self.source_to_target_finality_metrics.register(registry)?; + self.target_to_source_finality_metrics.register(registry)?; + register(self.lane_state_nonces.clone(), registry)?; + Ok(()) + } +} diff --git a/bridges/relays/parachains/Cargo.toml b/bridges/relays/parachains/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..a73a2f5b31c1aca5d93bf0b871b79b5e279da6ff --- /dev/null +++ b/bridges/relays/parachains/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "parachains-relay" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +publish = false + +[lints] +workspace = true + +[dependencies] +async-std = "1.9.0" +async-trait = "0.1.79" +futures = "0.3.30" +log = { workspace = true } +relay-utils = { path = "../utils" } + +# Bridge dependencies + +bp-polkadot-core = { path = "../../primitives/polkadot-core" } +relay-substrate-client = { path = "../client-substrate" } + +[dev-dependencies] +codec = { package = "parity-scale-codec", version = "3.6.1" } +relay-substrate-client = { path = "../client-substrate", features = ["test-helpers"] } +sp-core = { path = "../../../substrate/primitives/core" } diff --git a/bridges/relays/parachains/README.md b/bridges/relays/parachains/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9043b0b0a9cdd84c984d62b4e7c3adc6df44d6bc --- /dev/null +++ b/bridges/relays/parachains/README.md @@ -0,0 +1,50 @@ +# Parachains Finality Relay + +The parachains finality relay works with two chains - source relay chain and target chain (which may be standalone +chain, relay chain or a parachain). The source chain must have the +[`paras` pallet](https://github.com/paritytech/polkadot/tree/master/runtime/parachains/src/paras) deployed at its +runtime. The target chain must have the [bridge parachains pallet](../../modules/parachains/) deployed at its runtime. + +The relay is configured to submit heads of one or several parachains. It pokes source chain periodically and compares +parachain heads that are known to the source relay chain to heads at the target chain. If there are new heads, +the relay submits them to the target chain. + +More: [Parachains Finality Relay Sequence Diagram](../../docs/parachains-finality-relay.html). + +## How to Use the Parachains Finality Relay + +There are only two traits that need to be implemented. The [`SourceChain`](./src/parachains_loop.rs) implementation +is supposed to connect to the source chain node. It must be able to read parachain heads from the `Heads` map of +the [`paras` pallet](https://github.com/paritytech/polkadot/tree/master/runtime/parachains/src/paras). +It also must create storage proofs of `Heads` map entries, when required. + +The [`TargetChain`](./src/parachains_loop.rs) implementation connects to the target chain node. It must be able +to return the best known head of given parachain. When required, it must be able to craft and submit parachains +finality delivery transaction to the target node. + +The main entrypoint for the crate is the [`run` function](./src/parachains_loop.rs), which takes source and target +clients and [`ParachainSyncParams`](./src/parachains_loop.rs) parameters. The most imporant parameter is the +`parachains` - it is the set of parachains, which relay tracks and updates. The other important parameter that +may affect the relay operational costs is the `strategy`. If it is set to `Any`, then the finality delivery +transaction is submitted if at least one of tracked parachain heads is updated. The other option is `All`. Then +the relay waits until all tracked parachain heads are updated and submits them all in a single finality delivery +transaction. + +## Parachain Finality Relay Metrics + +Every parachain in Polkadot is identified by the 32-bit number. All metrics, exposed by the parachains finality +relay have the `parachain` label, which is set to the parachain id. And the metrics are prefixed with the prefix, +that depends on the name of the source relay and target chains. The list below shows metrics names for +Rococo (source relay chain) to BridgeHubWestend (target chain) parachains finality relay. For other chains, simply +change chain names. So the metrics are: + +- `Rococo_to_BridgeHubWestend_Parachains_best_parachain_block_number_at_source` - returns best known parachain block + number, registered in the `paras` pallet at the source relay chain (Rococo in our example); + +- `Rococo_to_BridgeHubWestend_Parachains_best_parachain_block_number_at_target` - returns best known parachain block + number, registered in the bridge parachains pallet at the target chain (BridgeHubWestend in our example). + +If relay operates properly, you should see that +the `Rococo_to_BridgeHubWestend_Parachains_best_parachain_block_number_at_target` tries to reach +the `Rococo_to_BridgeHubWestend_Parachains_best_parachain_block_number_at_source`. +And the latter one always increases. diff --git a/bridges/relays/parachains/src/lib.rs b/bridges/relays/parachains/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..81ea983a6f76a71cb2d9f2e0264bba9e2481fab0 --- /dev/null +++ b/bridges/relays/parachains/src/lib.rs @@ -0,0 +1,32 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use std::fmt::Debug; + +use relay_substrate_client::{Chain, Parachain}; + +pub mod parachains_loop; +pub mod parachains_loop_metrics; + +/// Finality proofs synchronization pipeline. +pub trait ParachainsPipeline: 'static + Clone + Debug + Send + Sync { + /// Relay chain which is storing parachain heads in its `paras` module. + type SourceRelayChain: Chain; + /// Parachain which headers we are syncing here. + type SourceParachain: Parachain; + /// Target chain (either relay or para) which wants to know about new parachain heads. + type TargetChain: Chain; +} diff --git a/bridges/relays/parachains/src/parachains_loop.rs b/bridges/relays/parachains/src/parachains_loop.rs new file mode 100644 index 0000000000000000000000000000000000000000..41ebbf5aadede2b4a1f0c9dcde73ee83bd5b0766 --- /dev/null +++ b/bridges/relays/parachains/src/parachains_loop.rs @@ -0,0 +1,985 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{parachains_loop_metrics::ParachainsLoopMetrics, ParachainsPipeline}; + +use async_trait::async_trait; +use bp_polkadot_core::{ + parachains::{ParaHash, ParaHeadsProof, ParaId}, + BlockNumber as RelayBlockNumber, +}; +use futures::{ + future::{FutureExt, Shared}, + poll, select_biased, +}; +use relay_substrate_client::{Chain, HeaderIdOf, ParachainBase}; +use relay_utils::{ + metrics::MetricsParams, relay_loop::Client as RelayClient, FailedClient, + TrackedTransactionStatus, TransactionTracker, +}; +use std::{future::Future, pin::Pin, task::Poll}; + +/// Parachain header availability at a certain chain. +#[derive(Clone, Copy, Debug)] +pub enum AvailableHeader { + /// The client can not report actual parachain head at this moment. + /// + /// It is a "mild" error, which may appear when e.g. on-demand parachains relay is used. + /// This variant must be treated as "we don't want to update parachain head value at the + /// target chain at this moment". + Unavailable, + /// There's no parachain header at the relay chain. + /// + /// Normally it means that the parachain is not registered there. + Missing, + /// Parachain head with given hash is available at the source chain. + Available(T), +} + +impl AvailableHeader { + /// Return available header. + pub fn as_available(&self) -> Option<&T> { + match *self { + AvailableHeader::Available(ref header) => Some(header), + _ => None, + } + } +} + +impl From> for AvailableHeader { + fn from(maybe_header: Option) -> AvailableHeader { + match maybe_header { + Some(header) => AvailableHeader::Available(header), + None => AvailableHeader::Missing, + } + } +} + +/// Source client used in parachain heads synchronization loop. +#[async_trait] +pub trait SourceClient: RelayClient { + /// Returns `Ok(true)` if client is in synced state. + async fn ensure_synced(&self) -> Result; + + /// Get parachain head id at given block. + async fn parachain_head( + &self, + at_block: HeaderIdOf, + ) -> Result>, Self::Error>; + + /// Get parachain head proof at given block. + async fn prove_parachain_head( + &self, + at_block: HeaderIdOf, + ) -> Result<(ParaHeadsProof, ParaHash), Self::Error>; +} + +/// Target client used in parachain heads synchronization loop. +#[async_trait] +pub trait TargetClient: RelayClient { + /// Transaction tracker to track submitted transactions. + type TransactionTracker: TransactionTracker>; + + /// Get best block id. + async fn best_block(&self) -> Result, Self::Error>; + + /// Get best finalized source relay chain block id. + async fn best_finalized_source_relay_chain_block( + &self, + at_block: &HeaderIdOf, + ) -> Result, Self::Error>; + + /// Get parachain head id at given block. + async fn parachain_head( + &self, + at_block: HeaderIdOf, + ) -> Result>, Self::Error>; + + /// Submit parachain heads proof. + async fn submit_parachain_head_proof( + &self, + at_source_block: HeaderIdOf, + para_head_hash: ParaHash, + proof: ParaHeadsProof, + ) -> Result; +} + +/// Return prefix that will be used by default to expose Prometheus metrics of the parachains +/// sync loop. +pub fn metrics_prefix() -> String { + format!( + "{}_to_{}_Parachains_{}", + P::SourceRelayChain::NAME, + P::TargetChain::NAME, + P::SourceParachain::PARACHAIN_ID + ) +} + +/// Run parachain heads synchronization. +pub async fn run( + source_client: impl SourceClient

, + target_client: impl TargetClient

, + metrics_params: MetricsParams, + exit_signal: impl Future + 'static + Send, +) -> Result<(), relay_utils::Error> +where + P::SourceRelayChain: Chain, +{ + let exit_signal = exit_signal.shared(); + relay_utils::relay_loop(source_client, target_client) + .with_metrics(metrics_params) + .loop_metric(ParachainsLoopMetrics::new(Some(&metrics_prefix::

()))?)? + .expose() + .await? + .run(metrics_prefix::

(), move |source_client, target_client, metrics| { + run_until_connection_lost(source_client, target_client, metrics, exit_signal.clone()) + }) + .await +} + +/// Run parachain heads synchronization. +async fn run_until_connection_lost( + source_client: impl SourceClient

, + target_client: impl TargetClient

, + metrics: Option, + exit_signal: impl Future + Send, +) -> Result<(), FailedClient> +where + P::SourceRelayChain: Chain, +{ + let exit_signal = exit_signal.fuse(); + let min_block_interval = std::cmp::min( + P::SourceRelayChain::AVERAGE_BLOCK_INTERVAL, + P::TargetChain::AVERAGE_BLOCK_INTERVAL, + ); + + let mut submitted_heads_tracker: Option> = None; + + futures::pin_mut!(exit_signal); + + // Note that the internal loop breaks with `FailedClient` error even if error is non-connection. + // It is Ok for now, but it may need to be fixed in the future to use exponential backoff for + // regular errors. + + loop { + // Either wait for new block, or exit signal. + // Please note that we are prioritizing the exit signal since if both events happen at once + // it doesn't make sense to perform one more loop iteration. + select_biased! { + _ = exit_signal => return Ok(()), + _ = async_std::task::sleep(min_block_interval).fuse() => {}, + } + + // if source client is not yet synced, we'll need to sleep. Otherwise we risk submitting too + // much redundant transactions + match source_client.ensure_synced().await { + Ok(true) => (), + Ok(false) => { + log::warn!( + target: "bridge", + "{} client is syncing. Won't do anything until it is synced", + P::SourceRelayChain::NAME, + ); + continue + }, + Err(e) => { + log::warn!( + target: "bridge", + "{} client has failed to return its sync status: {:?}", + P::SourceRelayChain::NAME, + e, + ); + return Err(FailedClient::Source) + }, + } + + // if we have active transaction, we'll need to wait until it is mined or dropped + let best_target_block = target_client.best_block().await.map_err(|e| { + log::warn!(target: "bridge", "Failed to read best {} block: {:?}", P::SourceRelayChain::NAME, e); + FailedClient::Target + })?; + let head_at_target = + read_head_at_target(&target_client, metrics.as_ref(), &best_target_block).await?; + + // check if our transaction has been mined + if let Some(tracker) = submitted_heads_tracker.take() { + match tracker.update(&best_target_block, &head_at_target).await { + SubmittedHeadStatus::Waiting(tracker) => { + // no news about our transaction and we shall keep waiting + submitted_heads_tracker = Some(tracker); + continue + }, + SubmittedHeadStatus::Final(TrackedTransactionStatus::Finalized(_)) => { + // all heads have been updated, we don't need this tracker anymore + }, + SubmittedHeadStatus::Final(TrackedTransactionStatus::Lost) => { + log::warn!( + target: "bridge", + "Parachains synchronization from {} to {} has stalled. Going to restart", + P::SourceRelayChain::NAME, + P::TargetChain::NAME, + ); + + return Err(FailedClient::Both) + }, + } + } + + // we have no active transaction and may need to update heads, but do we have something for + // update? + let best_finalized_relay_block = target_client + .best_finalized_source_relay_chain_block(&best_target_block) + .await + .map_err(|e| { + log::warn!( + target: "bridge", + "Failed to read best finalized {} block from {}: {:?}", + P::SourceRelayChain::NAME, + P::TargetChain::NAME, + e, + ); + FailedClient::Target + })?; + let head_at_source = + read_head_at_source(&source_client, metrics.as_ref(), &best_finalized_relay_block) + .await?; + let is_update_required = is_update_required::

( + head_at_source, + head_at_target, + best_finalized_relay_block, + best_target_block, + ); + + if is_update_required { + let (head_proof, head_hash) = source_client + .prove_parachain_head(best_finalized_relay_block) + .await + .map_err(|e| { + log::warn!( + target: "bridge", + "Failed to prove {} parachain ParaId({}) heads: {:?}", + P::SourceRelayChain::NAME, + P::SourceParachain::PARACHAIN_ID, + e, + ); + FailedClient::Source + })?; + log::info!( + target: "bridge", + "Submitting {} parachain ParaId({}) head update transaction to {}. Para hash at source relay {:?}: {:?}", + P::SourceRelayChain::NAME, + P::SourceParachain::PARACHAIN_ID, + P::TargetChain::NAME, + best_finalized_relay_block, + head_hash, + ); + + let transaction_tracker = target_client + .submit_parachain_head_proof(best_finalized_relay_block, head_hash, head_proof) + .await + .map_err(|e| { + log::warn!( + target: "bridge", + "Failed to submit {} parachain ParaId({}) heads proof to {}: {:?}", + P::SourceRelayChain::NAME, + P::SourceParachain::PARACHAIN_ID, + P::TargetChain::NAME, + e, + ); + FailedClient::Target + })?; + submitted_heads_tracker = + Some(SubmittedHeadsTracker::

::new(head_at_source, transaction_tracker)); + } + } +} + +/// Returns `true` if we need to submit parachain-head-update transaction. +fn is_update_required( + head_at_source: AvailableHeader>, + head_at_target: Option>, + best_finalized_relay_block_at_source: HeaderIdOf, + best_target_block: HeaderIdOf, +) -> bool +where + P::SourceRelayChain: Chain, +{ + log::trace!( + target: "bridge", + "Checking if {} parachain ParaId({}) needs update at {}:\n\t\ + At {} ({:?}): {:?}\n\t\ + At {} ({:?}): {:?}", + P::SourceRelayChain::NAME, + P::SourceParachain::PARACHAIN_ID, + P::TargetChain::NAME, + P::SourceRelayChain::NAME, + best_finalized_relay_block_at_source, + head_at_source, + P::TargetChain::NAME, + best_target_block, + head_at_target, + ); + + let needs_update = match (head_at_source, head_at_target) { + (AvailableHeader::Unavailable, _) => { + // source client has politely asked us not to update current parachain head + // at the target chain + false + }, + (AvailableHeader::Available(head_at_source), Some(head_at_target)) + if head_at_source.number() > head_at_target.number() => + { + // source client knows head that is better than the head known to the target + // client + true + }, + (AvailableHeader::Available(_), Some(_)) => { + // this is normal case when relay has recently updated heads, when parachain is + // not progressing, or when our source client is still syncing + false + }, + (AvailableHeader::Available(_), None) => { + // parachain is not yet known to the target client. This is true when parachain + // or bridge has been just onboarded/started + true + }, + (AvailableHeader::Missing, Some(_)) => { + // parachain/parathread has been offboarded removed from the system. It needs to + // be propageted to the target client + true + }, + (AvailableHeader::Missing, None) => { + // all's good - parachain is unknown to both clients + false + }, + }; + + if needs_update { + log::trace!( + target: "bridge", + "{} parachain ParaId({}) needs update at {}: {:?} vs {:?}", + P::SourceRelayChain::NAME, + P::SourceParachain::PARACHAIN_ID, + P::TargetChain::NAME, + head_at_source, + head_at_target, + ); + } + + needs_update +} + +/// Reads parachain head from the source client. +async fn read_head_at_source( + source_client: &impl SourceClient

, + metrics: Option<&ParachainsLoopMetrics>, + at_relay_block: &HeaderIdOf, +) -> Result>, FailedClient> { + let para_head = source_client.parachain_head(*at_relay_block).await; + match para_head { + Ok(AvailableHeader::Available(para_head)) => { + if let Some(metrics) = metrics { + metrics.update_best_parachain_block_at_source( + ParaId(P::SourceParachain::PARACHAIN_ID), + para_head.number(), + ); + } + Ok(AvailableHeader::Available(para_head)) + }, + Ok(r) => Ok(r), + Err(e) => { + log::warn!( + target: "bridge", + "Failed to read head of {} parachain ParaId({:?}): {:?}", + P::SourceRelayChain::NAME, + P::SourceParachain::PARACHAIN_ID, + e, + ); + Err(FailedClient::Source) + }, + } +} + +/// Reads parachain head from the target client. +async fn read_head_at_target( + target_client: &impl TargetClient

, + metrics: Option<&ParachainsLoopMetrics>, + at_block: &HeaderIdOf, +) -> Result>, FailedClient> { + let para_head_id = target_client.parachain_head(*at_block).await; + match para_head_id { + Ok(Some(para_head_id)) => { + if let Some(metrics) = metrics { + metrics.update_best_parachain_block_at_target( + ParaId(P::SourceParachain::PARACHAIN_ID), + para_head_id.number(), + ); + } + Ok(Some(para_head_id)) + }, + Ok(None) => Ok(None), + Err(e) => { + log::warn!( + target: "bridge", + "Failed to read head of {} parachain ParaId({}) at {}: {:?}", + P::SourceRelayChain::NAME, + P::SourceParachain::PARACHAIN_ID, + P::TargetChain::NAME, + e, + ); + Err(FailedClient::Target) + }, + } +} + +/// Submitted heads status. +enum SubmittedHeadStatus { + /// Heads are not yet updated. + Waiting(SubmittedHeadsTracker

), + /// Heads transaction has either been finalized or lost (i.e. received its "final" status). + Final(TrackedTransactionStatus>), +} + +/// Type of the transaction tracker that the `SubmittedHeadsTracker` is using. +/// +/// It needs to be shared because of `poll` macro and our consuming `update` method. +type SharedTransactionTracker

= Shared< + Pin< + Box< + dyn Future< + Output = TrackedTransactionStatus< + HeaderIdOf<

::TargetChain>, + >, + > + Send, + >, + >, +>; + +/// Submitted parachain heads transaction. +struct SubmittedHeadsTracker { + /// Parachain header id that we have submitted. + submitted_head: AvailableHeader>, + /// Future that waits for submitted transaction finality or loss. + /// + /// It needs to be shared because of `poll` macro and our consuming `update` method. + transaction_tracker: SharedTransactionTracker

, +} + +impl SubmittedHeadsTracker

{ + /// Creates new parachain heads transaction tracker. + pub fn new( + submitted_head: AvailableHeader>, + transaction_tracker: impl TransactionTracker> + 'static, + ) -> Self { + SubmittedHeadsTracker { + submitted_head, + transaction_tracker: transaction_tracker.wait().fuse().boxed().shared(), + } + } + + /// Returns `None` if all submitted parachain heads have been updated. + pub async fn update( + self, + at_target_block: &HeaderIdOf, + head_at_target: &Option>, + ) -> SubmittedHeadStatus

{ + // check if our head has been updated + let is_head_updated = match (self.submitted_head, head_at_target) { + (AvailableHeader::Available(submitted_head), Some(head_at_target)) + if head_at_target.number() >= submitted_head.number() => + true, + (AvailableHeader::Missing, None) => true, + _ => false, + }; + if is_head_updated { + log::trace!( + target: "bridge", + "Head of parachain ParaId({}) has been updated at {}: {:?}", + P::SourceParachain::PARACHAIN_ID, + P::TargetChain::NAME, + head_at_target, + ); + + return SubmittedHeadStatus::Final(TrackedTransactionStatus::Finalized(*at_target_block)) + } + + // if underlying transaction tracker has reported that the transaction is lost, we may + // then restart our sync + let transaction_tracker = self.transaction_tracker.clone(); + match poll!(transaction_tracker) { + Poll::Ready(TrackedTransactionStatus::Lost) => + return SubmittedHeadStatus::Final(TrackedTransactionStatus::Lost), + Poll::Ready(TrackedTransactionStatus::Finalized(_)) => { + // so we are here and our transaction is mined+finalized, but some of heads were not + // updated => we're considering our loop as stalled + return SubmittedHeadStatus::Final(TrackedTransactionStatus::Lost) + }, + _ => (), + } + + SubmittedHeadStatus::Waiting(self) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use async_std::sync::{Arc, Mutex}; + use codec::Encode; + use futures::{SinkExt, StreamExt}; + use relay_substrate_client::test_chain::{TestChain, TestParachain}; + use relay_utils::{HeaderId, MaybeConnectionError}; + use sp_core::H256; + + const PARA_10_HASH: ParaHash = H256([10u8; 32]); + const PARA_20_HASH: ParaHash = H256([20u8; 32]); + + #[derive(Clone, Debug)] + enum TestError { + Error, + } + + impl MaybeConnectionError for TestError { + fn is_connection_error(&self) -> bool { + false + } + } + + #[derive(Clone, Debug, PartialEq, Eq)] + struct TestParachainsPipeline; + + impl ParachainsPipeline for TestParachainsPipeline { + type SourceRelayChain = TestChain; + type SourceParachain = TestParachain; + type TargetChain = TestChain; + } + + #[derive(Clone, Debug)] + struct TestClient { + data: Arc>, + } + + #[derive(Clone, Debug)] + struct TestTransactionTracker(Option>>); + + #[async_trait] + impl TransactionTracker for TestTransactionTracker { + type HeaderId = HeaderIdOf; + + async fn wait(self) -> TrackedTransactionStatus> { + match self.0 { + Some(status) => status, + None => futures::future::pending().await, + } + } + } + + #[derive(Clone, Debug)] + struct TestClientData { + source_sync_status: Result, + source_head: Result>, TestError>, + source_proof: Result<(), TestError>, + + target_best_block: Result, TestError>, + target_best_finalized_source_block: Result, TestError>, + target_head: Result>, TestError>, + target_submit_result: Result<(), TestError>, + + exit_signal_sender: Option>>, + } + + impl TestClientData { + pub fn minimal() -> Self { + TestClientData { + source_sync_status: Ok(true), + source_head: Ok(AvailableHeader::Available(HeaderId(0, PARA_20_HASH))), + source_proof: Ok(()), + + target_best_block: Ok(HeaderId(0, Default::default())), + target_best_finalized_source_block: Ok(HeaderId(0, Default::default())), + target_head: Ok(None), + target_submit_result: Ok(()), + + exit_signal_sender: None, + } + } + + pub fn with_exit_signal_sender( + sender: futures::channel::mpsc::UnboundedSender<()>, + ) -> Self { + let mut client = Self::minimal(); + client.exit_signal_sender = Some(Box::new(sender)); + client + } + } + + impl From for TestClient { + fn from(data: TestClientData) -> TestClient { + TestClient { data: Arc::new(Mutex::new(data)) } + } + } + + #[async_trait] + impl RelayClient for TestClient { + type Error = TestError; + + async fn reconnect(&mut self) -> Result<(), TestError> { + unimplemented!() + } + } + + #[async_trait] + impl SourceClient for TestClient { + async fn ensure_synced(&self) -> Result { + self.data.lock().await.source_sync_status.clone() + } + + async fn parachain_head( + &self, + _at_block: HeaderIdOf, + ) -> Result>, TestError> { + self.data.lock().await.source_head.clone() + } + + async fn prove_parachain_head( + &self, + _at_block: HeaderIdOf, + ) -> Result<(ParaHeadsProof, ParaHash), TestError> { + let head = *self.data.lock().await.source_head.clone()?.as_available().unwrap(); + let storage_proof = vec![head.hash().encode()]; + let proof = (ParaHeadsProof { storage_proof }, head.hash()); + self.data.lock().await.source_proof.clone().map(|_| proof) + } + } + + #[async_trait] + impl TargetClient for TestClient { + type TransactionTracker = TestTransactionTracker; + + async fn best_block(&self) -> Result, TestError> { + self.data.lock().await.target_best_block.clone() + } + + async fn best_finalized_source_relay_chain_block( + &self, + _at_block: &HeaderIdOf, + ) -> Result, TestError> { + self.data.lock().await.target_best_finalized_source_block.clone() + } + + async fn parachain_head( + &self, + _at_block: HeaderIdOf, + ) -> Result>, TestError> { + self.data.lock().await.target_head.clone() + } + + async fn submit_parachain_head_proof( + &self, + _at_source_block: HeaderIdOf, + _updated_parachain_head: ParaHash, + _proof: ParaHeadsProof, + ) -> Result { + let mut data = self.data.lock().await; + data.target_submit_result.clone()?; + + if let Some(mut exit_signal_sender) = data.exit_signal_sender.take() { + exit_signal_sender.send(()).await.unwrap(); + } + Ok(TestTransactionTracker(Some( + TrackedTransactionStatus::Finalized(Default::default()), + ))) + } + } + + #[test] + fn when_source_client_fails_to_return_sync_state() { + let mut test_source_client = TestClientData::minimal(); + test_source_client.source_sync_status = Err(TestError::Error); + + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(test_source_client), + TestClient::from(TestClientData::minimal()), + None, + futures::future::pending(), + )), + Err(FailedClient::Source), + ); + } + + #[test] + fn when_target_client_fails_to_return_best_block() { + let mut test_target_client = TestClientData::minimal(); + test_target_client.target_best_block = Err(TestError::Error); + + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(TestClientData::minimal()), + TestClient::from(test_target_client), + None, + futures::future::pending(), + )), + Err(FailedClient::Target), + ); + } + + #[test] + fn when_target_client_fails_to_read_heads() { + let mut test_target_client = TestClientData::minimal(); + test_target_client.target_head = Err(TestError::Error); + + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(TestClientData::minimal()), + TestClient::from(test_target_client), + None, + futures::future::pending(), + )), + Err(FailedClient::Target), + ); + } + + #[test] + fn when_target_client_fails_to_read_best_finalized_source_block() { + let mut test_target_client = TestClientData::minimal(); + test_target_client.target_best_finalized_source_block = Err(TestError::Error); + + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(TestClientData::minimal()), + TestClient::from(test_target_client), + None, + futures::future::pending(), + )), + Err(FailedClient::Target), + ); + } + + #[test] + fn when_source_client_fails_to_read_heads() { + let mut test_source_client = TestClientData::minimal(); + test_source_client.source_head = Err(TestError::Error); + + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(test_source_client), + TestClient::from(TestClientData::minimal()), + None, + futures::future::pending(), + )), + Err(FailedClient::Source), + ); + } + + #[test] + fn when_source_client_fails_to_prove_heads() { + let mut test_source_client = TestClientData::minimal(); + test_source_client.source_proof = Err(TestError::Error); + + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(test_source_client), + TestClient::from(TestClientData::minimal()), + None, + futures::future::pending(), + )), + Err(FailedClient::Source), + ); + } + + #[test] + fn when_target_client_rejects_update_transaction() { + let mut test_target_client = TestClientData::minimal(); + test_target_client.target_submit_result = Err(TestError::Error); + + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(TestClientData::minimal()), + TestClient::from(test_target_client), + None, + futures::future::pending(), + )), + Err(FailedClient::Target), + ); + } + + #[test] + fn minimal_working_case() { + let (exit_signal_sender, exit_signal) = futures::channel::mpsc::unbounded(); + assert_eq!( + async_std::task::block_on(run_until_connection_lost( + TestClient::from(TestClientData::minimal()), + TestClient::from(TestClientData::with_exit_signal_sender(exit_signal_sender)), + None, + exit_signal.into_future().map(|(_, _)| ()), + )), + Ok(()), + ); + } + + fn test_tx_tracker() -> SubmittedHeadsTracker { + SubmittedHeadsTracker::new( + AvailableHeader::Available(HeaderId(20, PARA_20_HASH)), + TestTransactionTracker(None), + ) + } + + impl From> for Option<()> { + fn from(status: SubmittedHeadStatus) -> Option<()> { + match status { + SubmittedHeadStatus::Waiting(_) => Some(()), + _ => None, + } + } + } + + #[async_std::test] + async fn tx_tracker_update_when_head_at_target_has_none_value() { + assert_eq!( + Some(()), + test_tx_tracker() + .update(&HeaderId(0, Default::default()), &Some(HeaderId(10, PARA_10_HASH))) + .await + .into(), + ); + } + + #[async_std::test] + async fn tx_tracker_update_when_head_at_target_has_old_value() { + assert_eq!( + Some(()), + test_tx_tracker() + .update(&HeaderId(0, Default::default()), &Some(HeaderId(10, PARA_10_HASH))) + .await + .into(), + ); + } + + #[async_std::test] + async fn tx_tracker_update_when_head_at_target_has_same_value() { + assert!(matches!( + test_tx_tracker() + .update(&HeaderId(0, Default::default()), &Some(HeaderId(20, PARA_20_HASH))) + .await, + SubmittedHeadStatus::Final(TrackedTransactionStatus::Finalized(_)), + )); + } + + #[async_std::test] + async fn tx_tracker_update_when_head_at_target_has_better_value() { + assert!(matches!( + test_tx_tracker() + .update(&HeaderId(0, Default::default()), &Some(HeaderId(30, PARA_20_HASH))) + .await, + SubmittedHeadStatus::Final(TrackedTransactionStatus::Finalized(_)), + )); + } + + #[async_std::test] + async fn tx_tracker_update_when_tx_is_lost() { + let mut tx_tracker = test_tx_tracker(); + tx_tracker.transaction_tracker = + futures::future::ready(TrackedTransactionStatus::Lost).boxed().shared(); + assert!(matches!( + tx_tracker + .update(&HeaderId(0, Default::default()), &Some(HeaderId(10, PARA_10_HASH))) + .await, + SubmittedHeadStatus::Final(TrackedTransactionStatus::Lost), + )); + } + + #[async_std::test] + async fn tx_tracker_update_when_tx_is_finalized_but_heads_are_not_updated() { + let mut tx_tracker = test_tx_tracker(); + tx_tracker.transaction_tracker = + futures::future::ready(TrackedTransactionStatus::Finalized(Default::default())) + .boxed() + .shared(); + assert!(matches!( + tx_tracker + .update(&HeaderId(0, Default::default()), &Some(HeaderId(10, PARA_10_HASH))) + .await, + SubmittedHeadStatus::Final(TrackedTransactionStatus::Lost), + )); + } + + #[test] + fn parachain_is_not_updated_if_it_is_unavailable() { + assert!(!is_update_required::( + AvailableHeader::Unavailable, + None, + Default::default(), + Default::default(), + )); + assert!(!is_update_required::( + AvailableHeader::Unavailable, + Some(HeaderId(10, PARA_10_HASH)), + Default::default(), + Default::default(), + )); + } + + #[test] + fn parachain_is_not_updated_if_it_is_unknown_to_both_clients() { + assert!(!is_update_required::( + AvailableHeader::Missing, + None, + Default::default(), + Default::default(), + ),); + } + + #[test] + fn parachain_is_not_updated_if_target_has_better_head() { + assert!(!is_update_required::( + AvailableHeader::Available(HeaderId(10, Default::default())), + Some(HeaderId(20, Default::default())), + Default::default(), + Default::default(), + ),); + } + + #[test] + fn parachain_is_updated_after_offboarding() { + assert!(is_update_required::( + AvailableHeader::Missing, + Some(HeaderId(20, Default::default())), + Default::default(), + Default::default(), + ),); + } + + #[test] + fn parachain_is_updated_after_onboarding() { + assert!(is_update_required::( + AvailableHeader::Available(HeaderId(30, Default::default())), + None, + Default::default(), + Default::default(), + ),); + } + + #[test] + fn parachain_is_updated_if_newer_head_is_known() { + assert!(is_update_required::( + AvailableHeader::Available(HeaderId(40, Default::default())), + Some(HeaderId(30, Default::default())), + Default::default(), + Default::default(), + ),); + } +} diff --git a/bridges/relays/parachains/src/parachains_loop_metrics.rs b/bridges/relays/parachains/src/parachains_loop_metrics.rs new file mode 100644 index 0000000000000000000000000000000000000000..8138a43b3b3dc97997816b13aea1bc973206d48b --- /dev/null +++ b/bridges/relays/parachains/src/parachains_loop_metrics.rs @@ -0,0 +1,86 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use bp_polkadot_core::parachains::ParaId; +use relay_utils::{ + metrics::{metric_name, register, Gauge, Metric, PrometheusError, Registry, U64}, + UniqueSaturatedInto, +}; + +/// Parachains sync metrics. +#[derive(Clone)] +pub struct ParachainsLoopMetrics { + /// Best parachains header numbers at the source. + best_source_block_numbers: Gauge, + /// Best parachains header numbers at the target. + best_target_block_numbers: Gauge, +} + +impl ParachainsLoopMetrics { + /// Create and register parachains loop metrics. + pub fn new(prefix: Option<&str>) -> Result { + Ok(ParachainsLoopMetrics { + best_source_block_numbers: Gauge::new( + metric_name(prefix, "best_parachain_block_number_at_source"), + "Best parachain block numbers at the source relay chain".to_string(), + )?, + best_target_block_numbers: Gauge::new( + metric_name(prefix, "best_parachain_block_number_at_target"), + "Best parachain block numbers at the target chain".to_string(), + )?, + }) + } + + /// Update best block number at source. + pub fn update_best_parachain_block_at_source>( + &self, + parachain: ParaId, + block_number: Number, + ) { + let block_number = block_number.unique_saturated_into(); + log::trace!( + target: "bridge-metrics", + "Updated value of metric 'best_parachain_block_number_at_source[{:?}]': {:?}", + parachain, + block_number, + ); + self.best_source_block_numbers.set(block_number); + } + + /// Update best block number at target. + pub fn update_best_parachain_block_at_target>( + &self, + parachain: ParaId, + block_number: Number, + ) { + let block_number = block_number.unique_saturated_into(); + log::trace!( + target: "bridge-metrics", + "Updated value of metric 'best_parachain_block_number_at_target[{:?}]': {:?}", + parachain, + block_number, + ); + self.best_target_block_numbers.set(block_number); + } +} + +impl Metric for ParachainsLoopMetrics { + fn register(&self, registry: &Registry) -> Result<(), PrometheusError> { + register(self.best_source_block_numbers.clone(), registry)?; + register(self.best_target_block_numbers.clone(), registry)?; + Ok(()) + } +} diff --git a/bridges/relays/utils/Cargo.toml b/bridges/relays/utils/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..ee56ebf9a956c6f4fdd06b554da279b56ed534dc --- /dev/null +++ b/bridges/relays/utils/Cargo.toml @@ -0,0 +1,38 @@ +[package] +name = "relay-utils" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true +publish = false + +[lints] +workspace = true + +[dependencies] +ansi_term = "0.12" +anyhow = "1.0" +async-std = "1.9.0" +async-trait = "0.1.79" +backoff = "0.4" +isahc = "1.2" +env_logger = "0.11.3" +futures = "0.3.30" +jsonpath_lib = "0.3" +log = { workspace = true } +num-traits = "0.2" +serde_json = { workspace = true, default-features = true } +sysinfo = "0.30" +time = { version = "0.3", features = ["formatting", "local-offset", "std"] } +tokio = { version = "1.37", features = ["rt"] } +thiserror = { workspace = true } + +# Bridge dependencies + +bp-runtime = { path = "../../primitives/runtime" } + +# Substrate dependencies + +sp-runtime = { path = "../../../substrate/primitives/runtime" } +substrate-prometheus-endpoint = { path = "../../../substrate/utils/prometheus" } diff --git a/bridges/relays/utils/src/error.rs b/bridges/relays/utils/src/error.rs new file mode 100644 index 0000000000000000000000000000000000000000..26f1d0cacefd8eef5687e0102588f999859012a5 --- /dev/null +++ b/bridges/relays/utils/src/error.rs @@ -0,0 +1,46 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use std::net::AddrParseError; +use thiserror::Error; + +/// Result type used by relay utilities. +pub type Result = std::result::Result; + +/// Relay utilities errors. +#[derive(Error, Debug)] +pub enum Error { + /// Failed to request a float value from HTTP service. + #[error("Failed to fetch token price from remote server: {0}")] + FetchTokenPrice(#[source] anyhow::Error), + /// Failed to parse the response from HTTP service. + #[error("Failed to parse HTTP service response: {0:?}. Response: {1:?}")] + ParseHttp(serde_json::Error, String), + /// Failed to select response value from the Json response. + #[error("Failed to select value from response: {0:?}. Response: {1:?}")] + SelectResponseValue(jsonpath_lib::JsonPathError, String), + /// Failed to parse float value from the selected value. + #[error( + "Failed to parse float value {0:?} from response. It is assumed to be positive and normal" + )] + ParseFloat(f64), + /// Couldn't found value in the JSON response. + #[error("Missing required value from response: {0:?}")] + MissingResponseValue(String), + /// Invalid host address was used for exposing Prometheus metrics. + #[error("Invalid host {0} is used to expose Prometheus metrics: {1}")] + ExposingMetricsInvalidHost(String, AddrParseError), + /// Prometheus error. + #[error("{0}")] + Prometheus(#[from] substrate_prometheus_endpoint::prometheus::Error), +} diff --git a/bridges/relays/utils/src/initialize.rs b/bridges/relays/utils/src/initialize.rs new file mode 100644 index 0000000000000000000000000000000000000000..8224c1803ad2f74ec694cd68c18a556dddc6d76f --- /dev/null +++ b/bridges/relays/utils/src/initialize.rs @@ -0,0 +1,136 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Relayer initialization functions. + +use std::{cell::RefCell, fmt::Display, io::Write}; + +async_std::task_local! { + pub(crate) static LOOP_NAME: RefCell = RefCell::new(String::default()); +} + +/// Initialize relay environment. +pub fn initialize_relay() { + initialize_logger(true); +} + +/// Initialize Relay logger instance. +pub fn initialize_logger(with_timestamp: bool) { + let format = time::format_description::parse( + "[year]-[month]-[day] \ + [hour repr:24]:[minute]:[second] [offset_hour sign:mandatory]", + ) + .expect("static format string is valid"); + + let mut builder = env_logger::Builder::new(); + builder.filter_level(log::LevelFilter::Warn); + builder.filter_module("bridge", log::LevelFilter::Info); + builder.parse_default_env(); + if with_timestamp { + builder.format(move |buf, record| { + let timestamp = time::OffsetDateTime::now_local() + .unwrap_or_else(|_| time::OffsetDateTime::now_utc()); + let timestamp = timestamp.format(&format).unwrap_or_else(|_| timestamp.to_string()); + + let log_level = color_level(record.level()); + let log_target = color_target(record.target()); + let timestamp = if cfg!(windows) { + Either::Left(timestamp) + } else { + Either::Right(ansi_term::Colour::Fixed(8).bold().paint(timestamp)) + }; + + writeln!( + buf, + "{}{} {} {} {}", + loop_name_prefix(), + timestamp, + log_level, + log_target, + record.args(), + ) + }); + } else { + builder.format(move |buf, record| { + let log_level = color_level(record.level()); + let log_target = color_target(record.target()); + + writeln!(buf, "{}{log_level} {log_target} {}", loop_name_prefix(), record.args(),) + }); + } + + builder.init(); +} + +/// Initialize relay loop. Must only be called once per every loop task. +pub(crate) fn initialize_loop(loop_name: String) { + LOOP_NAME.with(|g_loop_name| *g_loop_name.borrow_mut() = loop_name); +} + +/// Returns loop name prefix to use in logs. The prefix is initialized with the `initialize_loop` +/// call. +fn loop_name_prefix() -> String { + // try_with to avoid panic outside of async-std task context + LOOP_NAME + .try_with(|loop_name| { + // using borrow is ok here, because loop is only initialized once (=> borrow_mut will + // only be called once) + let loop_name = loop_name.borrow(); + if loop_name.is_empty() { + String::new() + } else { + format!("[{loop_name}] ") + } + }) + .unwrap_or_else(|_| String::new()) +} + +enum Either { + Left(A), + Right(B), +} +impl Display for Either { + fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + Self::Left(a) => write!(fmt, "{a}"), + Self::Right(b) => write!(fmt, "{b}"), + } + } +} + +fn color_target(target: &str) -> impl Display + '_ { + if cfg!(windows) { + Either::Left(target) + } else { + Either::Right(ansi_term::Colour::Fixed(8).paint(target)) + } +} + +fn color_level(level: log::Level) -> impl Display { + if cfg!(windows) { + Either::Left(level) + } else { + let s = level.to_string(); + use ansi_term::Colour as Color; + Either::Right(match level { + log::Level::Error => Color::Fixed(9).bold().paint(s), + log::Level::Warn => Color::Fixed(11).bold().paint(s), + log::Level::Info => Color::Fixed(10).paint(s), + log::Level::Debug => Color::Fixed(14).paint(s), + log::Level::Trace => Color::Fixed(12).paint(s), + }) + } +} diff --git a/bridges/relays/utils/src/lib.rs b/bridges/relays/utils/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..2776620be3594c1f1fb98cd39b1c4b809e50eb80 --- /dev/null +++ b/bridges/relays/utils/src/lib.rs @@ -0,0 +1,318 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Utilities used by different relays. + +pub use bp_runtime::HeaderId; +pub use error::Error; +pub use relay_loop::{relay_loop, relay_metrics}; +pub use sp_runtime::traits::{UniqueSaturatedFrom, UniqueSaturatedInto}; +use std::fmt::Debug; + +use async_trait::async_trait; +use backoff::{backoff::Backoff, ExponentialBackoff}; +use futures::future::{BoxFuture, FutureExt}; +use std::time::Duration; +use thiserror::Error; + +/// Default relay loop stall timeout. If transactions generated by relay are immortal, then +/// this timeout is used. +/// +/// There are no any strict requirements on block time in Substrate. But we assume here that all +/// Substrate-based chains will be designed to produce relatively fast (compared to the slowest +/// blockchains) blocks. So 1 hour seems to be a good guess for (even congested) chains to mine +/// transaction, or remove it from the pool. +pub const STALL_TIMEOUT: Duration = Duration::from_secs(60 * 60); + +/// Max delay after connection-unrelated error happened before we'll try the +/// same request again. +pub const MAX_BACKOFF_INTERVAL: Duration = Duration::from_secs(60); +/// Delay after connection-related error happened before we'll try +/// reconnection again. +pub const CONNECTION_ERROR_DELAY: Duration = Duration::from_secs(10); + +pub mod error; +pub mod initialize; +pub mod metrics; +pub mod relay_loop; + +/// Block number traits shared by all chains that relay is able to serve. +pub trait BlockNumberBase: + 'static + + From + + UniqueSaturatedInto + + Ord + + Clone + + Copy + + Default + + Send + + Sync + + std::fmt::Debug + + std::fmt::Display + + std::hash::Hash + + std::ops::Add + + std::ops::Sub + + num_traits::CheckedSub + + num_traits::Saturating + + num_traits::Zero + + num_traits::One +{ +} + +impl BlockNumberBase for T where + T: 'static + + From + + UniqueSaturatedInto + + Ord + + Clone + + Copy + + Default + + Send + + Sync + + std::fmt::Debug + + std::fmt::Display + + std::hash::Hash + + std::ops::Add + + std::ops::Sub + + num_traits::CheckedSub + + num_traits::Saturating + + num_traits::Zero + + num_traits::One +{ +} + +/// Macro that returns (client, Err(error)) tuple from function if result is Err(error). +#[macro_export] +macro_rules! bail_on_error { + ($result: expr) => { + match $result { + (client, Ok(result)) => (client, result), + (client, Err(error)) => return (client, Err(error)), + } + }; +} + +/// Macro that returns (client, Err(error)) tuple from function if result is Err(error). +#[macro_export] +macro_rules! bail_on_arg_error { + ($result: expr, $client: ident) => { + match $result { + Ok(result) => result, + Err(error) => return ($client, Err(error)), + } + }; +} + +/// Error type that can signal connection errors. +pub trait MaybeConnectionError { + /// Returns true if error (maybe) represents connection error. + fn is_connection_error(&self) -> bool; +} + +/// Final status of the tracked transaction. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum TrackedTransactionStatus { + /// Transaction has been lost. + Lost, + /// Transaction has been mined and finalized at given block. + Finalized(BlockId), +} + +/// Transaction tracker. +#[async_trait] +pub trait TransactionTracker: Send { + /// Header id, used by the chain. + type HeaderId: Clone + Debug + Send; + + /// Wait until transaction is either finalized or invalidated/lost. + async fn wait(self) -> TrackedTransactionStatus; +} + +/// Future associated with `TransactionTracker`, monitoring the transaction status. +pub type TrackedTransactionFuture<'a, T> = + BoxFuture<'a, TrackedTransactionStatus<::HeaderId>>; + +/// Stringified error that may be either connection-related or not. +#[derive(Error, Debug)] +pub enum StringifiedMaybeConnectionError { + /// The error is connection-related error. + #[error("{0}")] + Connection(String), + /// The error is connection-unrelated error. + #[error("{0}")] + NonConnection(String), +} + +impl StringifiedMaybeConnectionError { + /// Create new stringified connection error. + pub fn new(is_connection_error: bool, error: String) -> Self { + if is_connection_error { + StringifiedMaybeConnectionError::Connection(error) + } else { + StringifiedMaybeConnectionError::NonConnection(error) + } + } +} + +impl MaybeConnectionError for StringifiedMaybeConnectionError { + fn is_connection_error(&self) -> bool { + match *self { + StringifiedMaybeConnectionError::Connection(_) => true, + StringifiedMaybeConnectionError::NonConnection(_) => false, + } + } +} + +/// Exponential backoff for connection-unrelated errors retries. +pub fn retry_backoff() -> ExponentialBackoff { + ExponentialBackoff { + // we do not want relayer to stop + max_elapsed_time: None, + max_interval: MAX_BACKOFF_INTERVAL, + ..Default::default() + } +} + +/// Compact format of IDs vector. +pub fn format_ids(mut ids: impl ExactSizeIterator) -> String { + const NTH_PROOF: &str = "we have checked len; qed"; + match ids.len() { + 0 => "".into(), + 1 => format!("{:?}", ids.next().expect(NTH_PROOF)), + 2 => { + let id0 = ids.next().expect(NTH_PROOF); + let id1 = ids.next().expect(NTH_PROOF); + format!("[{id0:?}, {id1:?}]") + }, + len => { + let id0 = ids.next().expect(NTH_PROOF); + let id_last = ids.last().expect(NTH_PROOF); + format!("{len}:[{id0:?} ... {id_last:?}]") + }, + } +} + +/// Stream that emits item every `timeout_ms` milliseconds. +pub fn interval(timeout: Duration) -> impl futures::Stream { + futures::stream::unfold((), move |_| async move { + async_std::task::sleep(timeout).await; + Some(((), ())) + }) +} + +/// Which client has caused error. +#[derive(Debug, Eq, Clone, Copy, PartialEq)] +pub enum FailedClient { + /// It is the source client who has caused error. + Source, + /// It is the target client who has caused error. + Target, + /// Both clients are failing, or we just encountered some other error that + /// should be treated like that. + Both, +} + +/// Future process result. +#[derive(Debug, Clone, Copy)] +pub enum ProcessFutureResult { + /// Future has been processed successfully. + Success, + /// Future has failed with non-connection error. + Failed, + /// Future has failed with connection error. + ConnectionFailed, +} + +impl ProcessFutureResult { + /// Returns true if result is Success. + pub fn is_ok(self) -> bool { + match self { + ProcessFutureResult::Success => true, + ProcessFutureResult::Failed | ProcessFutureResult::ConnectionFailed => false, + } + } + + /// Returns `Ok(())` if future has succeeded. + /// Returns `Err(failed_client)` otherwise. + pub fn fail_if_error(self, failed_client: FailedClient) -> Result<(), FailedClient> { + if self.is_ok() { + Ok(()) + } else { + Err(failed_client) + } + } + + /// Returns Ok(true) if future has succeeded. + /// Returns Ok(false) if future has failed with non-connection error. + /// Returns Err if future is `ConnectionFailed`. + pub fn fail_if_connection_error( + self, + failed_client: FailedClient, + ) -> Result { + match self { + ProcessFutureResult::Success => Ok(true), + ProcessFutureResult::Failed => Ok(false), + ProcessFutureResult::ConnectionFailed => Err(failed_client), + } + } +} + +/// Process result of the future from a client. +pub fn process_future_result( + result: Result, + retry_backoff: &mut ExponentialBackoff, + on_success: impl FnOnce(TResult), + go_offline_future: &mut std::pin::Pin<&mut futures::future::Fuse>, + go_offline: impl FnOnce(Duration) -> TGoOfflineFuture, + error_pattern: impl FnOnce() -> String, +) -> ProcessFutureResult +where + TError: std::fmt::Debug + MaybeConnectionError, + TGoOfflineFuture: FutureExt, +{ + match result { + Ok(result) => { + on_success(result); + retry_backoff.reset(); + ProcessFutureResult::Success + }, + Err(error) if error.is_connection_error() => { + log::error!( + target: "bridge", + "{}: {:?}. Going to restart", + error_pattern(), + error, + ); + + retry_backoff.reset(); + go_offline_future.set(go_offline(CONNECTION_ERROR_DELAY).fuse()); + ProcessFutureResult::ConnectionFailed + }, + Err(error) => { + let retry_delay = retry_backoff.next_backoff().unwrap_or(CONNECTION_ERROR_DELAY); + log::error!( + target: "bridge", + "{}: {:?}. Retrying in {}", + error_pattern(), + error, + retry_delay.as_secs_f64(), + ); + + go_offline_future.set(go_offline(retry_delay).fuse()); + ProcessFutureResult::Failed + }, + } +} diff --git a/bridges/relays/utils/src/metrics.rs b/bridges/relays/utils/src/metrics.rs new file mode 100644 index 0000000000000000000000000000000000000000..2e6c8236da454dd620ccdb5f1f03cdbf9eed9471 --- /dev/null +++ b/bridges/relays/utils/src/metrics.rs @@ -0,0 +1,192 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +pub use float_json_value::FloatJsonValueMetric; +pub use global::GlobalMetrics; +pub use substrate_prometheus_endpoint::{ + prometheus::core::{Atomic, Collector}, + register, Counter, CounterVec, Gauge, GaugeVec, Opts, PrometheusError, Registry, F64, I64, U64, +}; + +use async_std::sync::{Arc, RwLock}; +use async_trait::async_trait; +use std::{fmt::Debug, time::Duration}; + +mod float_json_value; +mod global; + +/// Shared reference to `f64` value that is updated by the metric. +pub type F64SharedRef = Arc>>; +/// Int gauge metric type. +pub type IntGauge = Gauge; + +/// Unparsed address that needs to be used to expose Prometheus metrics. +#[derive(Debug, Clone)] +pub struct MetricsAddress { + /// Serve HTTP requests at given host. + pub host: String, + /// Serve HTTP requests at given port. + pub port: u16, +} + +/// Prometheus endpoint MetricsParams. +#[derive(Debug, Clone)] +pub struct MetricsParams { + /// Interface and TCP port to be used when exposing Prometheus metrics. + pub address: Option, + /// Metrics registry. May be `Some(_)` if several components share the same endpoint. + pub registry: Registry, +} + +/// Metric API. +pub trait Metric: Clone + Send + Sync + 'static { + fn register(&self, registry: &Registry) -> Result<(), PrometheusError>; +} + +/// Standalone metric API. +/// +/// Metrics of this kind know how to update themselves, so we may just spawn and forget the +/// asynchronous self-update task. +#[async_trait] +pub trait StandaloneMetric: Metric { + /// Update metric values. + async fn update(&self); + + /// Metrics update interval. + fn update_interval(&self) -> Duration; + + /// Register and spawn metric. Metric is only spawned if it is registered for the first time. + fn register_and_spawn(self, registry: &Registry) -> Result<(), PrometheusError> { + match self.register(registry) { + Ok(()) => { + self.spawn(); + Ok(()) + }, + Err(PrometheusError::AlreadyReg) => Ok(()), + Err(e) => Err(e), + } + } + + /// Spawn the self update task that will keep update metric value at given intervals. + fn spawn(self) { + async_std::task::spawn(async move { + let update_interval = self.update_interval(); + loop { + self.update().await; + async_std::task::sleep(update_interval).await; + } + }); + } +} + +impl Default for MetricsAddress { + fn default() -> Self { + MetricsAddress { host: "127.0.0.1".into(), port: 9616 } + } +} + +impl MetricsParams { + /// Creates metrics params from metrics address. + pub fn new( + address: Option, + relay_version: String, + relay_commit: String, + ) -> Result { + const BUILD_INFO_METRIC: &str = "substrate_relay_build_info"; + + let registry = Registry::new(); + register( + Gauge::::with_opts( + Opts::new( + BUILD_INFO_METRIC, + "A metric with a constant '1' value labeled by version", + ) + .const_label("version", &relay_version) + .const_label("commit", &relay_commit), + )?, + ®istry, + )? + .set(1); + + log::info!( + target: "bridge", + "Exposed {} metric: version={} commit={}", + BUILD_INFO_METRIC, + relay_version, + relay_commit, + ); + + Ok(MetricsParams { address, registry }) + } + + /// Creates metrics params so that metrics are not exposed. + pub fn disabled() -> Self { + MetricsParams { address: None, registry: Registry::new() } + } + + /// Do not expose metrics. + #[must_use] + pub fn disable(mut self) -> Self { + self.address = None; + self + } +} + +/// Returns metric name optionally prefixed with given prefix. +pub fn metric_name(prefix: Option<&str>, name: &str) -> String { + if let Some(prefix) = prefix { + format!("{prefix}_{name}") + } else { + name.into() + } +} + +/// Set value of gauge metric. +/// +/// If value is `Ok(None)` or `Err(_)`, metric would have default value. +pub fn set_gauge_value, E: Debug>( + gauge: &Gauge, + value: Result, E>, +) { + gauge.set(match value { + Ok(Some(value)) => { + log::trace!( + target: "bridge-metrics", + "Updated value of metric '{:?}': {:?}", + gauge.desc().first().map(|d| &d.fq_name), + value, + ); + value + }, + Ok(None) => { + log::warn!( + target: "bridge-metrics", + "Failed to update metric '{:?}': value is empty", + gauge.desc().first().map(|d| &d.fq_name), + ); + Default::default() + }, + Err(error) => { + log::warn!( + target: "bridge-metrics", + "Failed to update metric '{:?}': {:?}", + gauge.desc().first().map(|d| &d.fq_name), + error, + ); + Default::default() + }, + }) +} diff --git a/bridges/relays/utils/src/metrics/float_json_value.rs b/bridges/relays/utils/src/metrics/float_json_value.rs new file mode 100644 index 0000000000000000000000000000000000000000..17b09e050973ada83a9735e373292c92ed31ff4b --- /dev/null +++ b/bridges/relays/utils/src/metrics/float_json_value.rs @@ -0,0 +1,147 @@ +// Copyright 2019-2020 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{ + error::{self, Error}, + metrics::{ + metric_name, register, F64SharedRef, Gauge, Metric, PrometheusError, Registry, + StandaloneMetric, F64, + }, +}; + +use async_std::sync::{Arc, RwLock}; +use async_trait::async_trait; +use std::time::Duration; + +/// Value update interval. +const UPDATE_INTERVAL: Duration = Duration::from_secs(300); + +/// Metric that represents float value received from HTTP service as float gauge. +/// +/// The float value returned by the service is assumed to be normal (`f64::is_normal` +/// should return `true`) and strictly positive. +#[derive(Debug, Clone)] +pub struct FloatJsonValueMetric { + url: String, + json_path: String, + metric: Gauge, + shared_value_ref: F64SharedRef, +} + +impl FloatJsonValueMetric { + /// Create new metric instance with given name and help. + pub fn new( + url: String, + json_path: String, + name: String, + help: String, + ) -> Result { + let shared_value_ref = Arc::new(RwLock::new(None)); + Ok(FloatJsonValueMetric { + url, + json_path, + metric: Gauge::new(metric_name(None, &name), help)?, + shared_value_ref, + }) + } + + /// Get shared reference to metric value. + pub fn shared_value_ref(&self) -> F64SharedRef { + self.shared_value_ref.clone() + } + + /// Request value from HTTP service. + async fn request_value(&self) -> anyhow::Result { + use isahc::{AsyncReadResponseExt, HttpClient, Request}; + + let request = Request::get(&self.url).header("Accept", "application/json").body(())?; + let raw_response = HttpClient::new()?.send_async(request).await?.text().await?; + Ok(raw_response) + } + + /// Read value from HTTP service. + async fn read_value(&self) -> error::Result { + let raw_response = self.request_value().await.map_err(Error::FetchTokenPrice)?; + parse_service_response(&self.json_path, &raw_response) + } +} + +impl Metric for FloatJsonValueMetric { + fn register(&self, registry: &Registry) -> Result<(), PrometheusError> { + register(self.metric.clone(), registry).map(drop) + } +} + +#[async_trait] +impl StandaloneMetric for FloatJsonValueMetric { + fn update_interval(&self) -> Duration { + UPDATE_INTERVAL + } + + async fn update(&self) { + let value = self.read_value().await; + let maybe_ok = value.as_ref().ok().copied(); + crate::metrics::set_gauge_value(&self.metric, value.map(Some)); + *self.shared_value_ref.write().await = maybe_ok; + } +} + +/// Parse HTTP service response. +fn parse_service_response(json_path: &str, response: &str) -> error::Result { + let json = + serde_json::from_str(response).map_err(|err| Error::ParseHttp(err, response.to_owned()))?; + + let mut selector = jsonpath_lib::selector(&json); + let maybe_selected_value = + selector(json_path).map_err(|err| Error::SelectResponseValue(err, response.to_owned()))?; + let selected_value = maybe_selected_value + .first() + .and_then(|v| v.as_f64()) + .ok_or_else(|| Error::MissingResponseValue(response.to_owned()))?; + if !selected_value.is_normal() || selected_value < 0.0 { + return Err(Error::ParseFloat(selected_value)) + } + + Ok(selected_value) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parse_service_response_works() { + assert_eq!( + parse_service_response("$.kusama.usd", r#"{"kusama":{"usd":433.05}}"#).map_err(drop), + Ok(433.05), + ); + } + + #[test] + fn parse_service_response_rejects_negative_numbers() { + assert!(parse_service_response("$.kusama.usd", r#"{"kusama":{"usd":-433.05}}"#).is_err()); + } + + #[test] + fn parse_service_response_rejects_zero_numbers() { + assert!(parse_service_response("$.kusama.usd", r#"{"kusama":{"usd":0.0}}"#).is_err()); + } + + #[test] + fn parse_service_response_rejects_nan() { + assert!(parse_service_response("$.kusama.usd", r#"{"kusama":{"usd":NaN}}"#).is_err()); + } +} diff --git a/bridges/relays/utils/src/metrics/global.rs b/bridges/relays/utils/src/metrics/global.rs new file mode 100644 index 0000000000000000000000000000000000000000..9b22fb86ef0cbf11268b80e7c0ac0d8c2d68d129 --- /dev/null +++ b/bridges/relays/utils/src/metrics/global.rs @@ -0,0 +1,118 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +//! Global system-wide Prometheus metrics exposed by relays. + +use crate::metrics::{ + metric_name, register, Gauge, GaugeVec, Metric, Opts, PrometheusError, Registry, + StandaloneMetric, F64, U64, +}; + +use async_std::sync::{Arc, Mutex}; +use async_trait::async_trait; +use std::time::Duration; +use sysinfo::{RefreshKind, System}; + +/// Global metrics update interval. +const UPDATE_INTERVAL: Duration = Duration::from_secs(10); + +/// Global Prometheus metrics. +#[derive(Debug, Clone)] +pub struct GlobalMetrics { + system: Arc>, + system_average_load: GaugeVec, + process_cpu_usage_percentage: Gauge, + process_memory_usage_bytes: Gauge, +} + +impl GlobalMetrics { + /// Create and register global metrics. + pub fn new() -> Result { + Ok(GlobalMetrics { + system: Arc::new(Mutex::new(System::new_with_specifics(RefreshKind::everything()))), + system_average_load: GaugeVec::new( + Opts::new(metric_name(None, "system_average_load"), "System load average"), + &["over"], + )?, + process_cpu_usage_percentage: Gauge::new( + metric_name(None, "process_cpu_usage_percentage"), + "Process CPU usage", + )?, + process_memory_usage_bytes: Gauge::new( + metric_name(None, "process_memory_usage_bytes"), + "Process memory (resident set size) usage", + )?, + }) + } +} + +impl Metric for GlobalMetrics { + fn register(&self, registry: &Registry) -> Result<(), PrometheusError> { + register(self.system_average_load.clone(), registry)?; + register(self.process_cpu_usage_percentage.clone(), registry)?; + register(self.process_memory_usage_bytes.clone(), registry)?; + Ok(()) + } +} + +#[async_trait] +impl StandaloneMetric for GlobalMetrics { + async fn update(&self) { + // update system-wide metrics + let mut system = self.system.lock().await; + let load = sysinfo::System::load_average(); + self.system_average_load.with_label_values(&["1min"]).set(load.one); + self.system_average_load.with_label_values(&["5min"]).set(load.five); + self.system_average_load.with_label_values(&["15min"]).set(load.fifteen); + + // update process-related metrics + let pid = sysinfo::get_current_pid().expect( + "only fails where pid is unavailable (os=unknown || arch=wasm32);\ + relay is not supposed to run in such MetricsParamss;\ + qed", + ); + let is_process_refreshed = system.refresh_process(pid); + match (is_process_refreshed, system.process(pid)) { + (true, Some(process_info)) => { + let cpu_usage = process_info.cpu_usage() as f64; + let memory_usage = process_info.memory() * 1024; + log::trace!( + target: "bridge-metrics", + "Refreshed process metrics: CPU={}, memory={}", + cpu_usage, + memory_usage, + ); + + self.process_cpu_usage_percentage.set(if cpu_usage.is_finite() { + cpu_usage + } else { + 0f64 + }); + self.process_memory_usage_bytes.set(memory_usage); + }, + _ => { + log::warn!( + target: "bridge-metrics", + "Failed to refresh process information. Metrics may show obsolete values", + ); + }, + } + } + + fn update_interval(&self) -> Duration { + UPDATE_INTERVAL + } +} diff --git a/bridges/relays/utils/src/relay_loop.rs b/bridges/relays/utils/src/relay_loop.rs new file mode 100644 index 0000000000000000000000000000000000000000..7105190a45831f57ecb728ac0d354157b020db8a --- /dev/null +++ b/bridges/relays/utils/src/relay_loop.rs @@ -0,0 +1,262 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity Bridges Common is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity Bridges Common. If not, see . + +use crate::{ + error::Error, + metrics::{Metric, MetricsAddress, MetricsParams}, + FailedClient, MaybeConnectionError, +}; + +use async_trait::async_trait; +use std::{fmt::Debug, future::Future, net::SocketAddr, time::Duration}; +use substrate_prometheus_endpoint::{init_prometheus, Registry}; + +/// Default pause between reconnect attempts. +pub const RECONNECT_DELAY: Duration = Duration::from_secs(10); + +/// Basic blockchain client from relay perspective. +#[async_trait] +pub trait Client: 'static + Clone + Send + Sync { + /// Type of error these clients returns. + type Error: 'static + Debug + MaybeConnectionError + Send + Sync; + + /// Try to reconnect to source node. + async fn reconnect(&mut self) -> Result<(), Self::Error>; + + /// Try to reconnect to the source node in an infinite loop until it succeeds. + async fn reconnect_until_success(&mut self, delay: Duration) { + loop { + match self.reconnect().await { + Ok(()) => break, + Err(error) => { + log::warn!( + target: "bridge", + "Failed to reconnect to client. Going to retry in {}s: {:?}", + delay.as_secs(), + error, + ); + + async_std::task::sleep(delay).await; + }, + } + } + } +} + +#[async_trait] +impl Client for () { + type Error = crate::StringifiedMaybeConnectionError; + + async fn reconnect(&mut self) -> Result<(), Self::Error> { + Ok(()) + } +} + +/// Returns generic loop that may be customized and started. +pub fn relay_loop(source_client: SC, target_client: TC) -> Loop { + Loop { reconnect_delay: RECONNECT_DELAY, source_client, target_client, loop_metric: None } +} + +/// Returns generic relay loop metrics that may be customized and used in one or several relay +/// loops. +pub fn relay_metrics(params: MetricsParams) -> LoopMetrics<(), (), ()> { + LoopMetrics { + relay_loop: Loop { + reconnect_delay: RECONNECT_DELAY, + source_client: (), + target_client: (), + loop_metric: None, + }, + address: params.address, + registry: params.registry, + loop_metric: None, + } +} + +/// Generic relay loop. +pub struct Loop { + reconnect_delay: Duration, + source_client: SC, + target_client: TC, + loop_metric: Option, +} + +/// Relay loop metrics builder. +pub struct LoopMetrics { + relay_loop: Loop, + address: Option, + registry: Registry, + loop_metric: Option, +} + +impl Loop { + /// Customize delay between reconnect attempts. + #[must_use] + pub fn reconnect_delay(mut self, reconnect_delay: Duration) -> Self { + self.reconnect_delay = reconnect_delay; + self + } + + /// Start building loop metrics using given prefix. + pub fn with_metrics(self, params: MetricsParams) -> LoopMetrics { + LoopMetrics { + relay_loop: Loop { + reconnect_delay: self.reconnect_delay, + source_client: self.source_client, + target_client: self.target_client, + loop_metric: None, + }, + address: params.address, + registry: params.registry, + loop_metric: None, + } + } + + /// Run relay loop. + /// + /// This function represents an outer loop, which in turn calls provided `run_loop` function to + /// do actual job. When `run_loop` returns, this outer loop reconnects to failed client (source, + /// target or both) and calls `run_loop` again. + pub async fn run(mut self, loop_name: String, run_loop: R) -> Result<(), Error> + where + R: 'static + Send + Fn(SC, TC, Option) -> F, + F: 'static + Send + Future>, + SC: 'static + Client, + TC: 'static + Client, + LM: 'static + Send + Clone, + { + let run_loop_task = async move { + crate::initialize::initialize_loop(loop_name); + + loop { + let loop_metric = self.loop_metric.clone(); + let future_result = + run_loop(self.source_client.clone(), self.target_client.clone(), loop_metric); + let result = future_result.await; + + match result { + Ok(()) => break, + Err(failed_client) => { + log::debug!(target: "bridge", "Restarting relay loop"); + + reconnect_failed_client( + failed_client, + self.reconnect_delay, + &mut self.source_client, + &mut self.target_client, + ) + .await + }, + } + } + Ok(()) + }; + + async_std::task::spawn(run_loop_task).await + } +} + +impl LoopMetrics { + /// Add relay loop metrics. + /// + /// Loop metrics will be passed to the loop callback. + pub fn loop_metric( + self, + metric: NewLM, + ) -> Result, Error> { + metric.register(&self.registry)?; + + Ok(LoopMetrics { + relay_loop: self.relay_loop, + address: self.address, + registry: self.registry, + loop_metric: Some(metric), + }) + } + + /// Convert into `MetricsParams` structure so that metrics registry may be extended later. + pub fn into_params(self) -> MetricsParams { + MetricsParams { address: self.address, registry: self.registry } + } + + /// Expose metrics using address passed at creation. + /// + /// If passed `address` is `None`, metrics are not exposed. + pub async fn expose(self) -> Result, Error> { + if let Some(address) = self.address { + let socket_addr = SocketAddr::new( + address + .host + .parse() + .map_err(|err| Error::ExposingMetricsInvalidHost(address.host.clone(), err))?, + address.port, + ); + + let registry = self.registry; + async_std::task::spawn(async move { + let runtime = + match tokio::runtime::Builder::new_current_thread().enable_all().build() { + Ok(runtime) => runtime, + Err(err) => { + log::trace!( + target: "bridge-metrics", + "Failed to create tokio runtime. Prometheus metrics are not available: {:?}", + err, + ); + return + }, + }; + + runtime.block_on(async move { + log::trace!( + target: "bridge-metrics", + "Starting prometheus endpoint at: {:?}", + socket_addr, + ); + let result = init_prometheus(socket_addr, registry).await; + log::trace!( + target: "bridge-metrics", + "Prometheus endpoint has exited with result: {:?}", + result, + ); + }); + }); + } + + Ok(Loop { + reconnect_delay: self.relay_loop.reconnect_delay, + source_client: self.relay_loop.source_client, + target_client: self.relay_loop.target_client, + loop_metric: self.loop_metric, + }) + } +} + +/// Deal with the clients that have returned connection error. +pub async fn reconnect_failed_client( + failed_client: FailedClient, + reconnect_delay: Duration, + source_client: &mut impl Client, + target_client: &mut impl Client, +) { + if failed_client == FailedClient::Source || failed_client == FailedClient::Both { + source_client.reconnect_until_success(reconnect_delay).await; + } + + if failed_client == FailedClient::Target || failed_client == FailedClient::Both { + target_client.reconnect_until_success(reconnect_delay).await; + } +} diff --git a/bridges/scripts/verify-pallets-build.sh b/bridges/scripts/verify-pallets-build.sh deleted file mode 100755 index 9c57a2a3c476006a636b4944648dfdf196de3591..0000000000000000000000000000000000000000 --- a/bridges/scripts/verify-pallets-build.sh +++ /dev/null @@ -1,141 +0,0 @@ -#!/bin/bash - -# A script to remove everything from bridges repository/subtree, except: -# -# - modules/grandpa; -# - modules/messages; -# - modules/parachains; -# - modules/relayers; -# - everything required from primitives folder. - -set -eux - -# show CLI help -function show_help() { - set +x - echo " " - echo Error: $1 - echo "Usage:" - echo " ./scripts/verify-pallets-build.sh Exit with code 0 if pallets code is well decoupled from the other code in the repo" - echo "Options:" - echo " --no-revert Leaves only runtime code on exit" - echo " --ignore-git-state Ignores git actual state" - exit 1 -} - -# parse CLI args -NO_REVERT= -IGNORE_GIT_STATE= -for i in "$@" -do - case $i in - --no-revert) - NO_REVERT=true - shift - ;; - --ignore-git-state) - IGNORE_GIT_STATE=true - shift - ;; - *) - show_help "Unknown option: $i" - ;; - esac -done - -# the script is able to work only on clean git copy, unless we want to ignore this check -[[ ! -z "${IGNORE_GIT_STATE}" ]] || [[ -z "$(git status --porcelain)" ]] || { echo >&2 "The git copy must be clean"; exit 1; } - -# let's avoid any restrictions on where this script can be called for - bridges repo may be -# plugged into any other repo folder. So the script (and other stuff that needs to be removed) -# may be located either in call dir, or one of it subdirs. -BRIDGES_FOLDER="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )/.." - -# let's leave repository/subtree in its original (clean) state if something fails below -function revert_to_clean_state { - [[ ! -z "${NO_REVERT}" ]] || { echo "Reverting to clean state..."; git checkout .; } -} -trap revert_to_clean_state EXIT - -# remove everything we think is not required for our needs -rm -rf $BRIDGES_FOLDER/.config -rm -rf $BRIDGES_FOLDER/.github -rm -rf $BRIDGES_FOLDER/.maintain -rm -rf $BRIDGES_FOLDER/deployments -rm -f $BRIDGES_FOLDER/docs/dockerhub-* -rm -rf $BRIDGES_FOLDER/fuzz -rm -rf $BRIDGES_FOLDER/modules/beefy -rm -rf $BRIDGES_FOLDER/modules/shift-session-manager -rm -rf $BRIDGES_FOLDER/primitives/beefy -rm -rf $BRIDGES_FOLDER/relays -rm -rf $BRIDGES_FOLDER/relay-clients -rm -rf $BRIDGES_FOLDER/scripts/add_license.sh -rm -rf $BRIDGES_FOLDER/scripts/build-containers.sh -rm -rf $BRIDGES_FOLDER/scripts/ci-cache.sh -rm -rf $BRIDGES_FOLDER/scripts/dump-logs.sh -rm -rf $BRIDGES_FOLDER/scripts/license_header -rm -rf $BRIDGES_FOLDER/scripts/regenerate_runtimes.sh -rm -rf $BRIDGES_FOLDER/scripts/update-weights.sh -rm -rf $BRIDGES_FOLDER/scripts/update-weights-setup.sh -rm -rf $BRIDGES_FOLDER/scripts/update_substrate.sh -rm -rf $BRIDGES_FOLDER/substrate-relay -rm -rf $BRIDGES_FOLDER/tools -rm -f $BRIDGES_FOLDER/.dockerignore -rm -f $BRIDGES_FOLDER/local.Dockerfile.dockerignore -rm -f $BRIDGES_FOLDER/deny.toml -rm -f $BRIDGES_FOLDER/.gitlab-ci.yml -rm -f $BRIDGES_FOLDER/.editorconfig -rm -f $BRIDGES_FOLDER/Cargo.toml -rm -f $BRIDGES_FOLDER/ci.Dockerfile -rm -f $BRIDGES_FOLDER/local.Dockerfile -rm -f $BRIDGES_FOLDER/CODEOWNERS -rm -f $BRIDGES_FOLDER/Dockerfile -rm -f $BRIDGES_FOLDER/rustfmt.toml -rm -f $BRIDGES_FOLDER/RELEASE.md - -# let's fix Cargo.toml a bit (it'll be helpful if we are in the bridges repo) -if [[ ! -f "Cargo.toml" ]]; then - cat > Cargo.toml <<-CARGO_TOML - [workspace.package] - authors = ["Parity Technologies "] - edition = "2021" - repository = "https://github.com/paritytech/parity-bridges-common.git" - license = "GPL-3.0-only" - - [workspace] - resolver = "2" - - members = [ - "bin/runtime-common", - "modules/*", - "primitives/*", - ] - CARGO_TOML -fi - -# let's test if everything we need compiles - -cargo check -p pallet-bridge-grandpa -cargo check -p pallet-bridge-grandpa --features runtime-benchmarks -cargo check -p pallet-bridge-grandpa --features try-runtime -cargo check -p pallet-bridge-messages -cargo check -p pallet-bridge-messages --features runtime-benchmarks -cargo check -p pallet-bridge-messages --features try-runtime -cargo check -p pallet-bridge-parachains -cargo check -p pallet-bridge-parachains --features runtime-benchmarks -cargo check -p pallet-bridge-parachains --features try-runtime -cargo check -p pallet-bridge-relayers -cargo check -p pallet-bridge-relayers --features runtime-benchmarks -cargo check -p pallet-bridge-relayers --features try-runtime -cargo check -p pallet-xcm-bridge-hub-router -cargo check -p pallet-xcm-bridge-hub-router --features runtime-benchmarks -cargo check -p pallet-xcm-bridge-hub-router --features try-runtime -cargo check -p bridge-runtime-common -cargo check -p bridge-runtime-common --features runtime-benchmarks -cargo check -p bridge-runtime-common --features integrity-test - -# we're removing lock file after all checks are done. Otherwise we may use different -# Substrate/Polkadot/Cumulus commits and our checks will fail -rm -f $BRIDGES_FOLDER/Cargo.lock - -echo "OK" diff --git a/cumulus/parachains/chain-specs/coretime-kusama-genesis.json b/cumulus/parachains/chain-specs/coretime-kusama-genesis.json new file mode 100644 index 0000000000000000000000000000000000000000..abad4fc9237c26633177892219e24a9ebfeab2fa --- /dev/null +++ b/cumulus/parachains/chain-specs/coretime-kusama-genesis.json @@ -0,0 +1,111 @@ +{ + "name": "Kusama Coretime", + "id": "coretime-kusama", + "chainType": "Live", + "bootNodes": [ + "/dns/kusama-coretime-connect-a-0.polkadot.io/tcp/30334/p2p/12D3KooWR7Biy6nPgQFhk2eYP62pAkcFA6he9RUFURTDh7ewTjpo", + "/dns/kusama-coretime-connect-a-1.polkadot.io/tcp/30334/p2p/12D3KooWAGFiMZDF9RxdacrkenzGdo8nhfSe9EXofHc5mHeJ9vGX", + "/dns/kusama-coretime-connect-a-0.polkadot.io/tcp/443/wss/p2p/12D3KooWR7Biy6nPgQFhk2eYP62pAkcFA6he9RUFURTDh7ewTjpo", + "/dns/kusama-coretime-connect-a-1.polkadot.io/tcp/443/wss/p2p/12D3KooWAGFiMZDF9RxdacrkenzGdo8nhfSe9EXofHc5mHeJ9vGX" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 2, + "tokenDecimals": 12, + "tokenSymbol": "KSM" + }, + "relay_chain": "kusama", + "para_id": 1005, + "codeSubstitutes": {}, + "genesis": { + "runtimeGenesis": { + "code": "0x52bc537646db8e0528b52ffd0058640605ae3e8629134f107868930e681756ccf063649703992ad4ee818f51911de6fa91e874d2fe2ba7696b4c18dcb3a8cb4c0791c5b5583c14d76913132861747d5e806b5eae206d441fad0d2b09d95bee2db79452a69402ae14771224121affdebcea431b8a9900f6f539f2612d6606cc7537c8dca73b24858d87bf43525cf01b33f700d8cf11d3e85d9d3fe8dbdea69a20edce5d74f6d7a60dba8ff3e7d1a3cb3675ac4bb1dfe99d4e31f30fe61e80ced1b6698746f0c53b5fc7daf488483d7f3e474250e7ed4d82fe35e1e70dcc6ac647beae04000780bbd38982799429d871f06d8fa2c3d79502e00110799429d8d7957cb80fa7713a51461585c3b191cb7894cc315f5fa7134547455117d178941cfcf275e974a2bc8a7a584539e7afa29e5798a3b08a72750a7694731b177914998a9a99711c1525e3231d8ec351382a6a46f31947e1f0e923cfe1ebd4e944b12acaf26ebf662aaa8757ee37de95cf38aa7da6a262f45751963f47cdf8e551a0d354d48d1b4e2bea9215255dc7e5281d7e55148639eaf21d1ef39ecf8a8ad1ad8ac22aaac62d7f983f474d7f1515631c159d07af8e7a5e2beac60d97a92819af2ab7a9a81b362e53c9787554e5b5a26c2466e328a9d52948311515e33232be234646a687bb65b94d8d655d96d42133834384bdaaa5850373974c1ce988b3dd8c68d44e47f5b0675532579c386670381d2351b4a4c4ae57c988e6c321e78ca86ad7d6484794c1a2cc0ce66e7a78578f745c4e1255ebe62666e6c2240f3c38aa9d071e240e1c3d7c87e77c87d9430f8eb2bc871e7454d5c87b380fd3721ee20e3b384a87ef70b3831bc93cefe13dcc88bc0727390a879378e0c15197f350797092a364bcb9b974780fdf21caf80e7d7373d383a32aefa1a26e6e4498936aad71d4f41ae93d9c071baf711c24e7c15133cec30e3be8e0b5a27670afce83a32c7747bd1e9ac7c4f48cf7f09b9a1a771b1bdfe135ee358e12798df31b2f396ae425cee1e124478d9cc49a3bc94b8ec2e1ee28e73cecc083470fe7c183f370940ee7c18eba9c87d71d3bdc6d2aaaa6a26adc7d878def70d4f41deca8e8d57770d4f31d58871b47557e53513adc788f8ad2c16d6c7c074761dec351d24b15d5430fae55d48e8adae13131cea3a268687c4745f1f09818dfe12819df5151343b9cc651b3ee6c895d73924fea3515455351345ee3737a0f4759dea3a2a87b0f475d75892db1532739caaa4e6c899d54513dd4299887cb6b455996dfa8a81b7e55bf1c252b05ae8ab22ee75151964fe9d3513a6a912db1f370944c1d624bec3b54d48d8ceb50513d2aaa8757ada21c07ef51510b06286c2023cc0bd0700229271d4e18411666b4a10c2c88e28453141dbee34a8ba36e0e755d691d87eaaeb43e53e596d86d6a74388f8ada81c3692a2a35041e84610b171ad8a08c219c74a45a0045154c80042ab0810b17271d8ed25151a34a7354e94aeb38eaba928fba917e5d54691c85d524b6c43e535132750a3e45c1fc46458d3ca64e91738a22725a5118e6a38a4acdc04a1b566600668d3198e1245a2b7ce1810c4cd002304860c349e4285145553527ab34aeb48ed575a500d4edc7afbffaa32b922db1cf8abaea14a45394e756450901842fc8908335a0f0e5062759a7f053941e4750830f8c500529da10865394f6ca515545c5ea5b6247c14a5d69fdd5752500d42de7d75d256d897d3de5827a680144a112e58c126de7ceb9732e4a9577ce39f733b744170c2f4c796f537b3ba94ddbfbf6f61b0905ccb7636d72dfecdf726f9a89f92b469728eb9b753be7d8695893da712877b7db386697cfb58608fb73761b7f3b6625ccfdc9cddc43d902916ddaf89d034185bc2a6763acbdc716c80f7ff926d5377163341dc69afbac898875f92630d102f961a16f9280676fdfac8827c4d9102af4ec98d0b33797b92fdbb4b53bdf76f6cd4da7f9a0edae88761f576593d61730e1af183d90c1cfd8cc2dd1e7396ddae48f366dd4db041d8836bd874ed3a61db2a28a876ed3a636b9dfb0df721efab64e9f36ec379a874edbd40e7d063a74ac4decd0f706569f1d6228937d6fb69c773e59db9f8c31cf6b123ff7ac88e755955d3720f7ec96cfb469c619afab6e975b7e45ac4dd19dd3365dee7c468d7f5eda36699b84396742fa5f93b0ba616e79d4f6310dc8fde55314b5fda9ed5f1a89e6d97771369b67e7ba550eddf974cc95b66f693201ec520382cf3cf3ed7367639b0989ce7593cfbe9acb36c6b06fd83b9f2fdb178335e9a649ce2bf72655efd7777ac7adb64d6a7fdac6df84c3840913e6b7d4af476d0372bfce5536a99d339eadb0d226b5ef3436e36d5a774e6ad3be4d9bfc9dfb5820ee9d6f37ef3ce75787d4c5b0cadc9b8db66f5267bbd4be3e97079a4377080a94dfa128a0fc36fa7602fc0e41b1e53be3f181b2b76f9b2a6f7f6d72de2edbb4df3e3be3a9ea52e74edbaf34fec999f3e934206ec2f39af47c087de79c0db1dba40d7b86754b3d94aed2b6f7db7320f7d137e381bed3736e2624d6ed7d74e995b6f957eeb46ddb3697c4129b135ff936a9f21d27b526a8775e699bcd3f9f8c456ddf69fb9b15f11e6a4ddc3b7fda36897d331e575f93d8bbfad05f1d52153b29e6b689977f7d8eb64d6b6adfe4afbfc9dad2f6391b63ea9c478c0ce873e7ec9df1705ddaeeb46d92f3d9188f2184d4589cfdcd5edd26edf4663caf496ea7392322f5ed9bf1a498d98cb9379bbff3b9243a9707ba4dda280f3b67419c1012127ae2d96763db26f6f5d7a6f6f5cd64939cef346b58939ce3d06de69db73fdfe43b9f336dda26ad3ba76913bf739b36b13b9f8cd1b469dff9664f6ba2c73b49c96f97dfb58648fbf3f65781f8b9be26ad6f3684bdebd6cebed33bbd37aefaf8af0ea966d6c224e8e2d967dab43b04c5d0b3db7010fbec7bc3d5c77f754831ff2c42d9f9b70bb0bed95c22e8867d3bd6a615e30a5abe9db6698748d0c5b7cfb469bd9da64deced361c047ffbde74f5f15f1d52cc08985ba23bf44415bfc95fa76d5a31aea0e5d7659b360c30a4f1eb589bf8d7b775f6b4cdfcfade6cf5f15f1d52cc09981b00bad16727b569c39e9d9da64d1be9d9d97db4899f9db66987a0c8f2ec336dea67dfd6e1d366f3ec589bd6d9f786ab4fceaf0e29e607cced81ae6f151305f7a0082fb86818fa06ba02aa0555014d014501cd8262414f404d40a7d02b6809a815b40a4a023a0595424740a5a0512814f48951182a340ac3a8cb480bbd81880d2230a23588da20724327a191d0478043804278579e954783b7c57bc173c1ec625a99359854260c322a19164427c8c288ac105591a5215b43a40351124459443810852102435445140311151117a217885c206a81480c9112aa2c2e34466b5429a85810d5b8ac706de1ea7265e1c2c2f5832b08d90a322d32156429c850906591619199209b925d9155915191499141c984b037606d606c606ec0da80ad819d012b0346066c0c9818b030606a605fc0b88075c1b0805901a302c6059b022605cc09d816cc0cac8cf885d117e6956a0b110a44598858205a81480b910a4429101d413424e2816807580a322e445e4c1b8cc670554134031110443010fd40b485c807a21e5c564426442f5c24b8a298595c585c27e841e20811091ab000059c8404e1d94140100c18328449844501083080111862ae8829418c153155c49020868a982962a4c48c20468a18283151c444898122e6891821ca06ba060a069a06fd02ed02d502cd029d02a5028d02dd429d40cda065d0265032a80d680de80b466f18b5316ac308cc880c2068c26734c6c808a3228c8830fa6234849117a328465088c288de2062c3c9072a9075c9b2803d016302a60586057602cc04d814ec0aac04981558151809302ab0293029d8083029b02818142c0a0c0aec094c6886996f986d2899592617738b511a9305233546629842b38aab0da3345c57e0a1ab093f5c595c53ae125c545c535c52ae115c525c512e2896172814e813a814281328177a86e5c5e282b5054b0b161a140bb40bf542bd40b96055c1a282c5c59a8225052b0a16142c33ac2dd615ac32ac2658645856b0ba40d1a055a06b584aa06a50355034d0335033d02fb40c940c740c540c56181618d611ac21cb081611ac2fac21583bb078406140a9583d18916105c1f2c20282f5039a06cb091616ac24503016122c215845b098608d612dc1d262893112c228085406a333502e680c4662585fb07c60a961a56185c1028325068b0cd6186818e816ac275859b0ca609d617519fdc0fa32528365060b0dd61aa236ac34586a18ad61e486111b2c1d58594640b0b05838b0bab06e60d960c48675c5b262d1c09a8155a59760c1c0e2c2a2626d61bdc07281d5028b05d60a2c2d2c155829b05060656161619dc0328135c5bac22a81658545028b0aab0a4b8a35020b8a258515c53ac3a80956141614960cac272c211946be41b621d9906e906d906c9060a41a641ae41a120dd20cf20c232ef28b2c8324831c8314830c8304835443a621bf20bd20bb20bd482ec82d482dc82e320b120bf20a120d6b0a690559855115464f8c84a8154905c9454e4146419e21a1209f40af8c9630628295032b06728b34836e21d720cb904d90644826c831e412a416298654820c438221932091208f2087a41164112411e417720852083208d20b0904f903e903d903c903b903a9039945e640e24062915dc81b481bc81ac82bd28aa4819c81ac22652063206120a9482ee416f205d205b20592057205520ba902990289029985c4429e409a404e9157c812482b64159204920a398594224720a590512414198584423e2185aa30d51baa362a362a37546da8d85081a9d650a9a14a43b5468586ea0c9519aa2f55192a325463a8c45085a10243a5469546f585ca0b55172a2f1517aa2d545aa8ba5459a8b0505da142a3b24255850ea3a242c5a59a4225852a0a1514aa27544ea8b654665465544da8c8a898508d512da112a352421546054695840a09d511aaa1ca0855112a22545f5443a8845005a1f2a20242f5838a07d50e2a1d5459aa1c5438a8b05437a86c505da9685055a9645051a9b8a85a30b242a58218850b4429c4332214e213a2135807714b342396119b10c918a1a1b5f0117e9a64400314a02d9880048800009631f997af36ac763d4e926ce0c812497a92387264b2438249cf9123d772cf920d240162c204078e001dd1f3a30409264a8e1cd9818333b7209a5aa8995db6034a38c044891ea0243d3f473851e2a487498f909b9985238e28c1012643962c5142014047f42c59a284020230b19033afb064499223962c49a200349200ea00939e2556d89e1e0e1c5102e80850121d50d2f381d2a4c23a59a22409500f12477a7a38d0c394c22ac101264a8e80e0a7878926204852c46714b6e708264a303992e4889225bee708264a38008809134a1c71c4e330cf404289237a90e8319fb04e40d0e373c4891310f41061a28412274e7a20a04d27ec07942cf13f3d3e3f4a4ca0086d9ab13d40499050b2244913477a98e861c2082348f474a003498c046096b14e7c8ee849e20826ac1320263d3f3d493051e2730c264a385033b5ec114a9c3051f203e444cf11102c59628924477e7a9058a2848993cf114a2c39d94c31d6098f39844d72c4667ab11e38920428091249807a1a10337f1002254b92280152c244098eb983f5394289251b38d203c4c4113d4ef4dc983ad81f251480cd1c2c13259660e208124b9430b181234c921c7144c9120fc4a4c7031de88100123d4830b1e408264a984420c90f13dfc3c4c13ae95102a4e44789248098482233b12c1325940025f961028923404a2c717244c9129fe48789c7a1492a545fb40881e13735774848e839e576446806348397e0ea3d4a29757fbc36bb6ed731f3ba9672f246d7bb8e37566e2bcbc554d5c41c740b7158cc11e2d86a1d77dc8ebc91777388fd627cae1be3de75ec9e5bf71c4fc75573746ff7b98508b0625c553de77663e55ebfedb5dc6255c5ecb6c2dc5aebdaf5365c87cde5deaa5a5e761c63ec7671b9e265cc6195855558d556c4aa6dcbb5e524ef728cae8a514ad9db2d999b7bc41ca08a7131abaa9c9bcf71e5981dbbcab22ae79c735c653864bb1b63eced8d5bad73bb8f5de5b059392ba6821046765657bbcd6eaf1dd78ebdf8ba78af6baf6b9977fbdabdf6daddeb8ad775c52737c618e5cac85be9d011a3103a742ccb28e33e7e1ba37c72c69532f27bbb71e36b51f772579cf56e07217966cd198b98bb29740b24eeee7237dc8db137728cbda3e6de2a76dc8d312ec7b81b6337370eeed8bcccbdec96972bae7abbb79de36880d8cbcbddbbcc1be532cbe5962b77a5e465761c39eeee9c1c779dcc6e0e6ee6702bdffcb18e2d6651c5ccbd6e7723335b722b1eeb74789979f9e5e851e3606667e25d6666b70588bcce31c7d8cccd6e5d8c1de5b2e36576ccdb3340f08a9a2b5e5ec7046076bced3aa6b707c01bd755ccb1dac5c1ccd5ca0a13ad28e3dd6e166de7f8c149862d9b7b7977a55cc9cc92979717eb8e317616bb79eee6eceefac0bbbc38ac6877779bb2e3dd6d8e2c775900bb2ef632f3acb663dce5de5de9787b37f2eeeeee72efca1665bc8db3a3c831561c63ac7c543c6300e27b1ce3e3c1dd3172b41ef3004089793b3ac7ec1cb49ccdf2c6b8f1c5eaade38e0bbb63a28889e264b641f0a384077a3c1073ec0f1d5062c9910e3051d2810e28b164c7c8659ce841828992234c942449e2080e7040894a80254b94f8e4907ae881c40369c6c74c0f3b00e0266784c41225491c71046809134938d08344e9270990931e464e76ece0e17344920d2c59a2c40f007448d2f3c383a6c7e70890133d4c72e8e9c08e1b4e809c2871a2c706021d91c40993243f4047809478c0034a906676004a38d0f3b34495f949d2b3e4889a11124c7a965822c9919e0e24f95102c849dd1f8092fcf430e9e9c00e03f87152b33f8080034a7e7a9a3862801f0a50800120d1a3c385448f13273d3f4b784089238efcf434a1c4113d3f47923841e2889e233ff8980a3080258ee871724409a02540f073848eb603005242899f2348f4fcf420f1a3c411530106d0a3e40708004ef4246123c30120268e003151f2b304cdfee00125404c98f839728413251ea84098703015600003e8f149b264037ee3c7007e38e284121f003ad201264a92709224891cbaa7e78703364d30e971727f38c24409254e7e7a9a38e281233f4a0025394289254b921c0172a227872698f4b81e3023f4a652a989645357ea0505a5229220de54505010076d50502a28a8da542a15e4906c073d24290e0a0a724882381514e490a43828d548521c14947a290bc9a682828252a988648352412917c4294612c4418c645341a9540a3a241b946a24411c14d448368891a438885312c906050505a520920d0a6a24295e241b14944abd548524c541a98824c5294e4124294ea51ac92e9214a7520fc9a618c9a65229876453a94692003705de5df68093241bae695f691bf4428c307879a07e9845c8e96c177870841874e18b1b6a2074629f529cce04bca08104293790628a2f4eecd7970b0cbcf2fc379865fffad2a6f569610c056d9f17c67486e7cae8e25859130494e181d6f93b2382fdd60c117df55b37214fcbd68d7f49efaf2f4de2ed62e33f3eed5aa349ecd717a77375e9d224f62ecf5cb6c0062830610d6ac842c589b7b8e00660d410850e700084e7cc0ea9381d3e31bcb20fa7fcbe4c88fbe7b249bccd3cfb7c5aff640c2ea9bdb321f09d3b587771dabdb37269d2e95c5fbac4cef239bbbeb06fd797e71c4fe00285284e18c30dc29c98070f7ec08221b8808a2160716287599c0e122d5070852a66f0c2193438b1432f9cce07be9082136ce94210a6b071e22728579f49c5ea1e4213face363d5fdfe46faf49d02b0dfa649d3d6d744fabed4ba753f39c572e8176599f486fafea132c4f2a77bea7e9984377c2e9580ea75bb91ca8497009a733ebc583a449b0e6646935afd61881f97409587ed527975b3eeb132c462eb7fcc974ccf7049768d2b66c3cf4693dc71e572bd99e9e06d424b884d341d225e830dbe49f2c244d82d0b7edf2d029741ae80b5dc259d795aebaaeb4d1223bddd936093a0b5107bd72e751645653c4d59ae8ce53a75a136b8ca9d3d3f6276c298f837823e0a929e27cdfc8e80c43513875e5ce8d54ee2a0acb7394f3ca5f3522bd2baa5d3eaf892e7d4f9556136b11cb2bdfd3640ad4242835e94ad02b6d5d29459d6812f45897681274e841947ddb2f1f54a5ba6594d9edd137f97ca33aeb4ad0a9f3753a3475a371a5577db4ce9e7a495c3721be1d886f7fabb35b32452e98000b6378e79bb91d0ac3dc9b0d6ef9f6b95c73e2e8ec1280be95eb132c46d6218c11ee09f2b24797c03aac759779f7b4d0d708f4f527715d8c9030529ab44ffd37676f875a9cceba95e856a0c321a7132bccc25a8d73e8a9d36a35aed618b1ce6e642b0a8bab46d86145416747455f4f9de6728c6c121c6a526f908c2d395fcdbd6a0582a1ed090e391d98a54bed55dd2e65f90d0efd9e1866598e11f286359ab4efbfc12cdf9ee374560b9536d8f006194c61ca144eed3f9c4e4a8806335063073d2042185e4eedee745251aef84210c4c8a2a5094838f980832e70a08427e4200a5a9cdaa1f6641d7ad49e6071fe24ab31823dba11f6e8ae1a598745a044618f1e651dfa936f7f5c164810dffec3e940974354cbf796369aef753ab1ae2bd1871ac995da377314dd6711503204418b3294b002229ce1cba91d6ef9d521c8a55c8bb64420756a7fe23c8aab2348c0a9bd6b50738fc95db7d4b6e47ae7cf3b2b02baabdb7358ad447f99907d2b52fc146bd075c2e2dc6544ac7f752bf2bb38d637635db7d4f73ad116811f2d2f90e594ebce62be06b0d0bfac08fab1bae7dcabce311673b333fe3906c63f083cb71c8b2a6f41208b7f9e61d1837f2e7d03e2d737217e479ef9aed3b449faba8ddfb409f375529b2c5fcff9d1264b7b103a585d97b65f49e9d8fe48fa4ed710991e9fcf29f2cd1a30e7259a5ef98498ef43ac06a91c3abcbcd2f861745837fe89615656c473acfa44df9e3b49bde5322bc249ea2ff7b1fcf9ac9be55785515b2bf551cb1cd3523544a0670e3df3ab6ea9bf469af4cb27f3077da441810205cac8a5d8fd81f924c5ee0f9b7bab6ea71dd704f5236d4f32f5af89e389b94233771991e796bb6c8874ab6e99cb5a63f9f4e89d0dc96a8d5589605e39e6953f9fd8f4c11ad018c60feb66b9bcbc06fabe744bab81354874e9b2ee5f6efd052d9f6ab3a474e7b036e130d05d11cf65dd2ab7fc627ea8f10771eaea99c514361c7b8ca146e8becf9ab831caf8b105b2bba2ce8a784242bfceebeb3c3f72b56e2bb4877fbd8b13fd396b95b7bb2c08fbfab540aabab9ac215255f6eb19ce6d67ed35a9637b5cbfb222e6e2b46fbd16a759e8a3b68bd3fdc4f7f0afcef411a673a75980b23f1fe826bf29155434fe190b50f6ed1f7f9e822c1fdd498c0248a43cbf221440c115f7d070a436d544875ea44ddb0d05dab4919024d1a68d66b510d126dea12cd27878bd16ebb745c3cbc3df560c3af0b4bd77b41f7274177d971d28fef2dfb4a90987f959078a1f9d332247be3db62f77ddf5c12ee3619facf9c48c08e72c8873ce95083e3aeac9932019f4d1b7b71411ed3eb26eced7b71824ba23d2eeea13d69c4fee26e29c6325c2346daa1cbacd32a1cfb98d5f31aea085ceec10165e3e6af0699b363af4d919116db4f18637fc6661d6c77ad438cc6f26b43e5ae889676ff7c5126336e16fcca1b7e684dfaa3eec96abe08b0fc0af186294e0b77ee8acfdf0e2400792df64c3fcf4cd82607e5d93ebc58f695b74e896b63e1702cf319f8b01ba432a20e39d5b9606b1deac37cb9d77468408e696cf877126a49a6e6998bf8c880c229deb2e0efb4e63dad6951787ddf2a96dfdeceb5613f29bb83708fd7aa56d409c8adc6acc5da23d8d8753f827a404ed1cfc0e51a9c13717bf435b50f1a4dfa11708e1d995a00e09bf432b00f30cc6ef90163d781fbf432a40e3174803b97ed987e8a305b26de8442e395f5ff61877aaa8b138d1b3f73b55beb03eecc7ba75dd82be89fe0efcf0b35b33179d18b64094300634bec9e89b90cfee3c7210fbfb5bff16dff97418cc864c36a6fc26848d2943e26f4c9840094de8f24d903c7fd9e29b04897e03da021668b8f80de80a17730bbf0191600bf0372754f0410084b0e537275e6c7976ce864821a1212e1bb2619e1d6643fc9bf0479f51ab382302bdeb4603a18fde5e6541a23fdf71bda5be9ac26f4e521fbdd29a6c9830613ad54de09881d03f197079edb59f8d551a9cc2b7d6e33913e2df1eb52670bc0ad4443c3ad47cdaa3cfd63a13c261a057b0d60c790e5dc8735881e60e5561e381faabbab537c10f3df5da434dfb069adfbe65b4d082c1d3e409b9edf2bc8068442fcb41701a68fc7ab3ce9ed62f0ee209fdfaac30970559342a29a58c523a862411fb54019467af9c9f4fa8d56f9e6c04cc2b8d1dd37c2a677799908a48e55c2d13ba435764f19757ce45d01daa2286bf1ef3391dc69910b959ee5369dbe595cf4aab19f284843ef3f7ee37f34aebcf7ca72b0ceee28cbcbdd2443ed2b6ea65412a1755ef2c48e5d4771cd56a88542ef2ca4555ab21727de5d75795c7e2bce895b74fea74f6f4bcd2669af47ce4226d7f7136ccabac88eb31e7b1409ec3ac889ac5798e551e2291c642bf991016b212e33b4d9d4e4c7d5d7afe467593bf519fca2fdf2a5f225246b8aeebf29d9e0fe32c087be5b221955f3ea2c5793e5a9c27f46f719e07e8137ae2339fd6cceac87771ac918b2c6d733f5d3445d6f44cfb118d30dfe911e6a299616e4daceefa98d572fb96b65e6dec1b2b6d92f3faed5957554c23f4fd0e95a00d2314fe0e9500cc2eceea508234dee677a80464fcf3cd5576decfdf7318f40e7af9579bb830619ecf92ca64cb98b2b9ca1e372b62cb98f2b15a9941bf410d32d932a63cf42d041f6164720028430fab952741b2ae13ef9c7df6d39c6f66012b4f82d6cbc9f2b52284831533c882cacf0e5472a045086889f5f256847c980212849a3800942127b6103c8462bd9cac2ab45e4eeccead08e5c0820ea2504348e8b4f54990ac42cff4eab6c43b8fd1021668f006284242a7cd1a20f3b0a30de6946f5fefe1b75d6dbf6781fce4bc95e7a9f5823bdf5761852205ce09ba149953156d9af9761e312da0db925fcff96de6b7ed42112850e32a9ad4bed18dabf8f66dbbf0eda8e7d495d2e002207001842c5d84844ed09d6ff4fbe434a1778312c8008a1810e104450a9c93732932a707458a3e459782809373a84941c00985c588735411576a775bbe1d3a0a8b91e8b0a2765ca93d56141623d05d45b92bb5c39ab3edd090f36db7ac1a46b0042b63a8820db4f084982de89e52282083085b6c71042e3b40c3694fcfb79c6fdfcc880b099d9c57d1a61ebefd694e5b579af2ab43d04b713f2cee3d0d3a73056105217c3619ff0e5921060f5442196880fe789a70987f1eab4d93e07bee759be17c1708f4f5091d3be92eba8bee2a772ea37317dd393723180f6a1b63daa373f49ae7fcfd352f09d1a1c651428dff693b44c646dfb97bef9ccf389b772e311f287b8c610f723df36fc6d36e5d371731a3cfc919cfe5d39f571ae6bb4032873e332df5dbac329fcad7a7367f87ace8c1bfc581bd5a3ba6556e69fcedab49c734e99610f6f59d96755b973e57dba6af4f8749ad33e7d5f633cd47bacff4f64b9bcef2d900cce774de6de224f5996f1f70431b61dec96eb99205159fd56dfae53b6e4e8849ad2d7f3362526bdf4c0811ac6e4ebce5d3e76642b66e0eb320975ffe9cf1ccea7305b97cebe59b0d916f551fe9ed9b24d22eddd2f6b54d4d7e4e98bb40a2afc31935209a04bd089fd324e89b6d360fdd6d760486d9b4cee5d0855820be38d2a1fb68136d92b41cfaa56d97a4dfb48eac79a833d325e9d0d705bf01f1d06b16083f9c9666d324e9ee77c88a21709818f35cbaf3df212ba43c0d67d26b2a77df5f53d5261ce62bdf212bbcf855421968f8198dad6ad32459697071d6377b51e37756a613e26aeffad8ac8876dac61f75a05c0e058b73cbd7e7b4b41dea9e8d39ccd2b68b10cc88785911ee9d5fda9e7ac2ed77ce80d4152f8bc8d92f0ed879e92e23d2a3af7c6e8bb6a0298c7536c40ee6b221765e7a6742987c93a0af7cb321d8d6633aac3306a4b878e9d3612f0b92a2f24d90bcf4d92c126d4154d6c7acb0985512bba4a5ed695ad8a5edc9d2f6d4d990f658376e5e27da827e1767db211364f1d12f8d5a9a0b090909099d863c77d5654d9c8002c51342ffb34d8a1eebe63a2be2b97b1fe7d0371b62bfaa4cd03c10cdc7ba8bb33967e77cd89f56436403c1b7ef6fc6d3bed3419d8a0dc148300df09b366d3e3cfb76f3ecd510156730cd3740c483212aae4ce962b5ed0204611d4077a8045f3c0bbdf3395adf9b8d85be7dea30b69a11d4879f78e8fd1b061acc787ef6ce88b0d0475fad893784febaf35d20dbf39a21d7bfda64f4eb3b85cf795837579ff786f9d9d86a45283b3f9675ce9a7813faaedab0d0af0e29c85d8369013aa70f747d46661aa18fce8d3158935e93667c882269bc78c6f3e752aed3d92e6df437ffe8734b143acd4e9b3639449b368aa44dd18568d3fbe814e8c147c7409bdc47b75c3efef8b8647cf4e73b5d85d0c718638cbe37b1faec9716c31c52f9f3f9b4c69e563daf76fa49cb77fa69fcd2a35bbea5ac2867a535c1ffb426f82b9ffcb4ca67b72fcef3a91a50f97cdec4e6cd9d0e7b5aa579d5b26eefa547af34d7af6ed2d92bdf7152db6f82faf6afba6a29abeced35497a6741f8337fda937503ea6fc26cfc663c9957da567913f4973ca1277e93dea462e38930df847ce94fdb30770e359fcba1cff9aa7ccf9b4828503cf13f4dc4b7bc89ea9da4deaacfb96c527d79ccdf5fbed3b2fff24c6be2feaa354378e8a1bf8c07bad39eefb8cba1d644bff3d9cdebc30ac20ffdd25e5537feca2d6d634bdb226659965b55fa8e8bd1fde624f5eccfb11ae4f9c3ba55d5e7d526a8dfdcb30fa1dfbed3537ba39d7135cfd99fb756f3bcbdf2f934f6c9d9103b95b33f2d0bd25ef91bd25e55ce4d38cc0f10b6d99025862079e972dde779e5536adbfbe7ceaa3f4df68b90d003dd78e9ce01612f8b58e2d27e9a24e07b719e03c5bf7ceb7f6e693f9703c597be1991236ff94e4bad498fb7fcd29a24e079712cad098779cba5b6f13fabeefa789d0581fe9c339e58b7d4477f9a941a7ba5edaf436dcb78de8f9b8c7101f362dc419f50dbe78c619005e3344743a64f9fd8e58bf985b9e5d7a5cd3469ddd2a8b6ce3ea7d604ffc63f9db526f8e79c3e7b79fb89b8eef4d47ca25bb44dd32b5fe76c8ef8e7663c1b6368932ecf79cc39e3e1bae3769ab58ddf27bae50b84bfd27c71d6699b727e7d6ab4492bbf2212ddaaa3cba13fc79cb30750bf2a4d93d6b13ab34ddae8ec736e66d52df596631a6b98b65d6e5d757b7ff974d65c6ffc986f0c4819e1777d6075bbdc5ddafea5edb3e57ca7bbc9fbca777aa767d436e8ec52abe1da84bfaa366008097d0070bed26c9ac40f53154335e67b9a11d4e7790fbffd8a71052dbb40b69c872938e47a3821f4edd52de89f6f5603960b0fab15e9ab49879a047c98c211c29cd69fb6a1fef92c592f5f79f42de8a1ef06b1ebc3b64a1023cb03f15795c97af9262e4c988fd5ca93a02d63ca4956a12d63ca867a58b7e79bf5ce77dcd37af8c998d4d637b3c09631e5b43d7c10a760f71348f0a57faee0d24e47073386b278f1811bd8c0e2340031ae1802038c2c68c18cd3521650ac49ecd5af185190f1fcd40574a3cfbe3d280616bcf0faccb958caf1d826b57bef69fc9b5d604a9186d6c5641770c6801628e04817fc7ca75f95756f5c076602b649a3c907a09b3120f5efd514f302369a77ebd2f93b6dd80be9c2058eae33ddf6c698ae774644eab7769fad4d827e7d290d46d0c5efd008aaf86df4cf03f02b0616d8f8d17b93293bd3971191fad4b3b7162383e9321ed80e8bd099b2434d7b42f8a3efb46c534d10fee8b1ca678701fd63a74f29fa2ad6b0cb6b28c65c1e283f12acb0e577280842cf84dfa1a12c3f23bd9d668154de35df3cbe779401ca3be7f2ae02f53341f3db124242420f44f3be8d7eb7986f511031eb43fb16f34b7fd77f7e80e4ffcccb92efa5ac1b74e90e5627eef997483fbf3be7efeac3ffde879fff2d4e7bd4e0e2b4432d2e4efbd3aac5e9773a335d6ab740d81f0f66045227e87bf384fee02f8d0512c4b3e72c10d1b3ef12f608cf6e80e7e6476a12fba837393f9ccee5ccbe2d18ccb74d23f36dbf4cf76576157b99060536104de21f394dca81e2da0874fdd26a8acc795d97b310e866d94ca6b5d0b3bbcaa3e512027b82deda0f57629fda3a8b3db257ec982b718e2b71105ddf28b452af2b35e6ded4b8392f8ff549f42bfae54f2a9fbea79a2295d73c604f95d7482012e1677fc0f238e73ee39f731bb1272e22a52b3deeac0894e8bc06d61a232ab75c0231ba15fdc99e9268d2d3a82b3d9fd222bd3d9daa954b906892970f8aa9ee87022663097379a0d1e7926818d6e830c400e6379a30c090c6f7cdb743cc4df726fb938eab8f730935f6e7136a1be65c375b75637fd3771c37417df4a96dd02b7627b1fa3c677fdacc4809d4f20db33c1b02ddaa1b84ceeee35c7a673cbed3186d53f4fe09a3bf8c88d4479fbc5974970d811eeb067d9c470d3a67cf1fc699f3cd5e9d1cb330e736378b60fa3abb8f6c127c0fbeb8bda58b4081b85d7e68d866a1df9ef73a674458e8538cb5ceeeb44e2fe6b29a28352896579a1479aa7cb52dc8d2a4f871aa9a780fbd66085379583bab89b548e5fb46e849c6589b8cb6d43bdf718f855e2aa1ecb0df0dbc108318bc70e5b96eb7c5b46415e1ebae0b91f0d87557c1fb2c965db9f8207cf2d958b272cebd680388c936bdc5d937332333b383e776d0bc03cace6ba13e13c3e42a55aa089fab52650793b174777753f9f52a0efd3a7c8eb150f6ee6e2cddbdcc95951ce79c7331fae69c732e46df9c73cec52c94c6c66f6a8a48df37d242a7b89a15ac4291e2c7493a56a5c8d3f476ea9cd32e979a65e55ae29fbb186384afe6017bb21cb5432710480781e504f8ae71be5fe36a11ab7e104cc57e4f98ee3d20a5a3272bf75cf3ee7befbdf766bf7efdde7baf0bcadef0caef0b9203975f9244c373bbeba2a3a1f1f7a0a3a3f764e55e571bb0737eefbdea5d5de6c16389837959b28a901f3333efeeeeee767777f735459516fab1736ed961e17471166255b538aeaa6a3bba38ebef3de8e2832e466d9fbb7f75fbc0c3f8dee37d6f6f3a7e615a39c08173ceb9dd756d7136c2b7a49919991fdcbf39bf6c85b20b997b7d130e0384fd606e04e886e1052d9e170c2f6884d1052ddf4260bf1c84f48d99bdd9977d606666e9b06e93a4b74fa94929233373e5eea76d4bb0675f162c796d9bf95d93f42db6ab8074a5bdaabe26f56308b56daedbf5ec2d3f56b56eecb05ecfd6fbc82533cfdc98abc17421b11fe6dc4f883d0cc62cc8dc261ce6c130e5eb020a2d4e77df80b26fbb73428bc32fcbe23c7666cc1e78d8a1bbbb75a89af7c801079b1a1e3b6874e4d071de2d5da9bb7b46e6460c1d89326c5e96ac227cae797749dc3269cca6a171ef0137e7bc9fd4e12dc9ca91d69febd65eb501b773ce061bbfbbab31e6be0ec11698a50630cbafb373a82dbf575c965fefe79c734e079306efbdf71adb480f5d3a57419f7315363371ab78758350db97da12d273ecbdf79e7befb9f796dd833edf7a14428aef3df8de7befbdf7de7b71022fbf60a63e302600e7709c73ce6decc3b9e7bc3801800088a58a24f9053d5cd682f1eb3b561c0fbf39e71c57a1ec3beccd6fbbbb980ebf39e75cacfcc6a64955a4a15538e79c7b22cc69d64939f43987bebde7fc39f7790e6a4efbcd39e74618d3c039e728e662305737da23e6460e3237709891c978d6d76666dbddc5b139e7dc53818e4743b3edeef2d891a38647c6b3bece39e76ab6dd5d9b2d8bc30ba40c0e18c9737ed0dce891438cf7a08e39e7c579331855edc60715558c6606ce39e774c054401dbb71ce39b7c3eef260f5b0bb4bc2dc835e6d4f96d69fbbcf74dc0e8b01c036db75c7825d0780b3b98101c068de5bf2e3df7b3e305e0165778e310e66a9c05b4072f40580d33e08809d9b39ce391f30e7727c10008e8f0000a044ea81871d6e74a89af7c801879cc806b8623e2f9e5da6f1ec95d3e2d9636b797608e6d91f5f7976c7de5c8576efee48b66963df6ef6daa4b644eb550e266f217b0ba7e1ee11055ecadc35bde73a08e85b8c31fef043df628c11a8df8af4b92c031a8617a6ccb8cc480b9da4cfcde03a1dab4a9127e91dad48dfa2573ea3269b14a366f98e73e21df42ad68d1f42e803d4efaa74996f962eebba9263c3cc18ebdddddddd7dbc8f17672dd891573a371a2d10ab128916889459b6402a0bc31648bce6371038af6b813cccb21688cbe437901655d50261fe2dc6759b73ce55516ebbbbd6b6bbebd63d77ce39e7e6eeeeeeeeeeee2e2683c9ce9f4fe79c77cce2ec5b20cdbc7471b8b9ccd95ed0a6f2256e692a5f86788a175ed0f5b99594a29a21599893a9cbe25cfc577771dcf3f10e0b8aa3c1f03ce62de664da2497518dafa0eca4efe659175b8435098a6a863cd76d027fc59c23a6ef47dc216a735dd85cc65af4b220d663191dd1999d19c9f015323338640e793343696c6668f707de3dc628f6ae3ecaa36666b94ca1b1a112073601dd489f430fe77cc7396ed6b220d67badb5470e38d8d4d4ca63078d8e9a03c74cad55a6de88a9b5d6ea830c12e672bb0747f159815699107e4e717d528a7acb64cf11a21db6ab56a2ef34d4f6d41a10a7c8eca7e7ccccec3bc4679853f26058bb97f1c08ce7b9e6e521da52cf3398bba6f75c07d1fdedfc3e3ffc40d6b766a0de35ad6fedcf6577d76d6b7fb535ed55ce86b090d0efd077ed366abe63c063877b344f470e1c3352a6af37f4e3460c1d65a297bd1c922badc4e88c799725ab7783623107040089475ff29f83c1d3d23068aeb97e132dfbb061bf926453c36307cdb20feb03e0b7802639e726370771621fa850765e9c8e0f02a05f0a28fb4ea321c48f997e6020d1a475867b042dbed7ffead6e45d2db927faf7b0e79a5330f31ee9610f93a49b1c1f4d5a8f18e708f1a35905db8f5fd7fc1ee96f9ab4ced92e4e85cf3df79c73ceb98de43ab2f7e877deefea1681f7a8a3c27258d866bb4b7ebc2f0e6be692993437b01b52e63336311915714179b4058db7086b52166333c48f17fc98a16912e602ca4e69de3d9b1cf3b26cf85f9d9196dc4a4754c19648d07a2d7057235bda6037bf9ebaf2ce9fc62ca0ec6fc972714eb302ca4eda195e81642d28fbba8e1ca37f3d2a8c390789c93539dfd6b7493ebbdba41c16c6d63531aeb09841d1c835ef94c1903cacdb3aeff13e0edea882b2b7cc25dac5c17161ec72759e6f9b72a84ee5cee5ea44facf47eff3a2b6aeb4bbae3e7f754ea771a5751cd84c2623ba318aa13466c422996c06c34133735c3a2c1ab963f2c06a86a81d6ba0cdc3c1e5f0e3d7b97b38c65950ea74a2b74b8d46c331237323c78561fdebbc0cb38c86aa80b2b30a9ec8f5fb76e68d9c61dae2ac3bf7e2b74f11c6f4b928e379759ba4fdfad3f153fb28e37970f4be7d528cb3a0fe5b0cd63752f06430460165e72c28ff0299a9444f93fccfb94a6c5e9648e4823af53ac919f201eeb4c5e49785bbfc7abb29bfee7ae8d71f642abfbed12bd06db7fc3abd025dbfc2f6ec35eba9dfbaf5b7cf2ddc54fa8b1b7a3c056e17766e3a06ed9aa263d0f529ab28adcdc9f79626adf3777d591667dd2ac3dcd8db39e7ba7bb44d98dbfb76a2ae589396f43e6e51f4b36349c43fef97fcf817455d6b86c46fefefba4de0b999d13037a62c6b86b0737651ac9fdd2451fb4e3bcdc6ccee3d77af4a5733c4bd737e57370a7cf33b2f338ad9c6190fd4bfbe39e6d6bf31b34f13eead80c0b9f59b19794242ef3733c24242276764874e8e9fbb598ab9cded1ecc82588f05edf6b916b7c86de0d937e917ddd13c01dd5e267f5cb1911e7b4de2166d93f80abad1cfb220d69b805e4137f9d439b5f9e5baa5b6e5f2ed3c85b6f3a769125f41d767cc7331313131cd9b43b4a57ef45db723cfd5714585c9cd39edaa95e73bdd1a104d5acf713adea5f57ddea4f5f5cd7fdde9ac195bb0a0e1062590620c284ea92e8ef08420d4e009617081c2697dd7e5fade2c77e1ad0e942838cc090b7429e429068a941fa71897429e9ae6d4a45333e6ab03458a1fa7cca5c893c837880029323b8014d229f32d4608293f4e996f32bfbecdfcfa5b20bc4ea7691e07e76a45c44570f09d9e4f28051e980512c4b73f5fe77ca3d17d34e9f9645afd10a249cfab0a8443e722d04dfe06840e9f9e0fe17472d8780a652935be2d181bdf58a8876fbb45876fcb85c6b7edb2c379f8eca1ed29071d36d3e948f9e76fa391358744fa079d339e056c8c90377869d2fe103b4d7a43597016236334c853feb9eca1c5780e1a9d1a3f0e1a9607ec098af3761ad7e1317e23071eff7c331ee94b8940d9d937da43739e83d6ced9e53834b96acde50ebfa0ec1fa39db8f4bc352852f86999009b880bb0ed1841448fd59dc579ce43a0ec9cfdc826d26715b25f0981b2d75cb58873ed4e52226d67b51481028587d338941daec3e7ce02117d8cb746ddd28a34e9390781bacf1c07a740e638d41ae938f89e2820f21a596b8c88711c5c02318e437d82c5483bf527ce635c02d471701cea9376ea7bda537c00670fa82912e30fd8538c4b607486a1334ed467d7687be2a1ed6987b6279ab7d18a408932f21c0eb5c5e133ae43db13bf8d36f21a2d87f3d070f80e6dc6693419d7a1dd7023f60445c66f3c604f50629c3a9d6912d58670a5e7315bfef90d2eff5ca6cb3f9f49e39fe3f8f2cf732c987f3e62a11cda9e70687b9ad1f624a3ede986b6a7186d4f54dbd3484b6dc65364c7955e8ad234e9f97b1e4499077b41d9455aa6ad6320507ebe374f2665f5880b6dd224f98f67df727e57cbf33a8dd37192d3c9d992d3e1d3fa10441431d2a6caa9d42a0d5b127bd4e49298b4a41dca71faaf3659e2fb9ba0beff7d376b334d724e9dcbba5d72cedb5d682e0f7407cfa137be198f6c52ebb8fc1bdf9c7b9348ecce7d9cefe03b4d6a93ab9b3f0fde966fa31dbef5b87c13f1f02d87e95b56e31b0e986f988d6f36efb689836f3522dfae1c7ce331f2cdeae1db8e772e17c8f319df68a86f95fba623c6b7a8f996e3866ff0ab6f38a0e3f06de6657c733af826f3ce7b8144d7e15b4c0edf6e2c90ca9dd30542e3ae6e3cb8f3c983466a52bbd3bc49ed3b68374d6ae71f50fffdcd7f089267f736b91dfcede03c68fb2e2322f53bf864cc5b874feda41deae6cf156bd20dfb806eef67686cda9ddc125747a13c21e72d25a51bcd3bdfbad475a89af7c801079b1a1e3b6874e4c031f3250947187aa6ce656ec0771e43ab773e125def3c9bef1c9bd93bbf44efa4b68be3bcd278719c47ad17c739d4dee2387f9a5c1c579b423961d930ae10c2efc05208736fb649855e643caf15b4f28d185b417b9fac9ef3c357fdab9b907f5e2c0e14b4f22931a65ff0c80c7a5141ebcbe2b07769d2fe36a75c5f9ae4ea86e49d335db67ca391bed15eefba45bfba68d13f7a8ff789becfadbad154b91e5bbbbc643c5b97faef38a701c15fdf69ae82ce29cf3ea7b469ebb5a5497c692101adfc4a63f62f108ddfaf6feb5797265d693489dd077dcf97972b8d3631fff3a8c11e6c97cbcb95469b96e7d5a5fbfc01c16bcbb3effa3e5f4f7d18266bf1275fd8cd4ff7b0d6b09f106b8dfe8c15d6da6ef929b1d66ab6493ffc1ee1a77561adddf839b1d6e44f0c6b0d889f9916911c61adf54f8ab536f333066b8de6e70dacb59c9f32586b7bc6cf99a12d38b0d66a866cef79fcd625335a7260ad2d183f75e4c031239361736d44d00bf6817d95f0d381b1f533141a3dcee85cf342917b9bc6afa77e2e14dabe5910d137e130abc66ae167f55e7fac5b93ef872dd0845910d1bbdaefc58b3106a1775af35655d5515433047ef4fd8d3fd69f7775c510839687d6c39a21ede5d971bef4b31976f9e2a8a01b4ce3d96b88301af0e7bae67ddac76c48ff16818aab4cf7e04f476cb50dfb6d5bb25bc890e5817a56720abac1216b0b4ba195ffc49ff3c793111ffb81bf840c5a3c5083d129f95334341ac397076a329e7dbb7ee32874a3798e422b9f31d86a5b7904b4f2d4cf1bd86a3fd72fd92dbf4d92c156f3df5a33643d7aac1b172ecfbef5e7fdb664b72cd92d0fbdf8d4cf196c359682563e7746e6460c1d89320c078e87c3352f0dcde863dd8ebcf3eba7b4b0d53427fc9cd86ada0f3f336cb5989f226c35f87384ada6fda4d86a3ff0812004e3d9674c15e17bae99f7c256db23fc9c354178767eed2747793f5df3ba7511d3f8fd3728f48b678e826e70c875f7e3ad44d08b9d9725ab08b3e71ae31589a2571feb26e49df5e5395b121ffda3efb8a9ed6351db7c7ce5536258c6133322525cc46be25ebacc786415028826b5b31a94d3a01bfcf2edf00b5ca34d60dae4a2cf2ce3891818226c7cbb6be72f509765f6556568888a19a87cf9c2891e549cafa3d54eef3a7fbe1a931fef239dc1d08d8548406cebf8e892c3ac4a6a9273d0a5b691dec773a755756195521688509ba098e1dc153eecae18df09f85a536471da7f5b9d0d630a31fcc669a0dbae01e404ca39a6f2c0ccbd59f2a30dbb580f7e5b827dd71b36507ea7499b36757d4d6ae71c30a4b4be31cada8e97ee05633c6b3d3c6742f85f0e8741dbf94940fc5820fbae5d7210eb65caf74e673c99b64910630c2fb51da70aabb03c9f4fa334f8993fc1af183088f23254cef0f3614fab69f7e14dcf5a4dd726ee0d6250b1e2570c2a5ffc845faa7cc9f2ce60e3bb36413d13391e887e6b37bef829b1a761597e5ad8d36e6cf1f3c258ab81be627041450df4998f3e27f6b48b0ba19f18c61af4a7459f8bcd6c4515882665cfda8ab1051a1e3a9f14831ae402d1d06017e8a54bae00ecbc06ca0576699d3d39ae1b14c3bb9c0512df3905da04a5bb45e39def9499c1914307cd8e8c081e31427f427316c87ce7f687d39939ce7579c735c772e7b08bd3b9dc89dc4ae6908bd311552d4d7235ec22dfd3a5d570ad31c2f2cc2570b9a83e997e79569f603132fdf227985bbea7ebbab09c26a981eefb466b8cb8dc7223d3316fada53c17e8e59d4f4cb3f8c41a44a349ce316d4f908bd3815aa0162eef7c4f98961c2def7cc7f910ce739cff703eb51a7659c3ceb5c688ca2f3752b911e956f50c04babf3f2c8e73e7310378e74b78878477be69ef80bcf36dc7e72c8ef39de634d0f62da7d25c18d4f9feabcc3f728440997a1da3c65c1ee872f93972ce57ece430e8fab2e4206ea6fcba5b2eef868cb6fcce15128958bf75fbc0effe73af45d15f063321fcaeb745d16b7cbc060dc35c7823eb96fa1f5ff9467ab8f97898f3d0377fe81b8dcc929caf893ef44d8a3ca6d2385a492db3a600aca56d3fdef249e374480158d3ae3b51dd2ae7acc2ea6156c466460406e1e51756494db2bcf2c82eb5f66ac90f5897fc2072a3ca124ef02d7fb39cd9500ad36da18f1fba1109e846f36c25d2389d587dfc8804ed74a2b3a382f29b826e4bc613d1a66d99406481ac66d3257698f1b83a924285f862c6e6a5a916827558887d351f39403469b98c605f3331740d49f11c045bdef9ae8fa26cccc2b3f9780d88d7ee23a74dd0d98160587fe03f7f7589ab6c7079a0de2d91043b6034344ee34e63434363e3ae699cde68d207de5b0ec95548a1ecd036d35390d0054f294118151758b0af9918fa0dc305820886287b30e27f3a59774f99f2ae1851e16dceb48b8d2e396f3025007381b982febc51952e3987190fd711951115a703b3802e682be87681b9c05c6cb4ce55a55e25a03f8fca3b2be8cfb392c1294e27abb292ef9c680b92fe5efa3bc75a27f36da64b2da9f49e4259ca95db0c11f7af5ac99c354c3a9d0b8c04b35d605245e881155e689981174ae0c2024ce0032158d1c5161a58015393b190ce2febb6818855ffae823e8fbec95195264d99511b8daef04fe1b78b8a0e9efd655920fe5ce5b70bcc3bdfb0e71117ef7c9bcf6e6d10a317ac0f6e3a5fa32b4d721eb5119526017dbe8da88caa34c9398cafa0504a9ba46c4be094771863f1b029908368cfd51a5a1ce79716527e93531ab05cf807a73c3b674d05b57c3a74219e2536e1307f392f8153fe79d4ac649ed51195772e5fb669ba73ac4dd6e5ce9f170bc4dff9888ad39127e7a32b53d00d4ef91d599a4003213cd10518639c9cc32b4e27891632b84214c6d0410970704a0d218c135049c3942d70c1859373a885d3a10015a4f0032136ac8104344ecea76b0cc62a625646c4c56cb935abbcd898d224dfa00bdeb9d47649b1aa563287594c713a329370ca14aa179826b99642d9b70bcc28cbaf0e37ca30b1148182a1b01899a351e523bfaa11916315b5229f9ef59c8ec5c88c3b67f67623ec5d8de070aca230c7519dced4ca9f3672aa893cd350588c60a931e2f9c88dbccbaf6a84baa8a290b852e5d4d9b9ce8adaf1918f2a0a8b9191bb8a2ae24a958feaba6aade9aee6b852e5a8ccd795640c8d71991c19dfd30ddf1357bee3e8262b975ae5321a0a4b911b15c5a791538fd19e2ce1315bd051652157aa2a8fa142a3437f82c2f2803dc1579f40dfd3c642d89e322845a0448fc22738a47545711657aa5e456131f2a8b852e5af3a476131c2ee2a8a1d85c5084f71a5ca1d95af7c4a53e12c5fb1efc9553eb53ded4d557d78a65ec733300dfbb45c6a9bc8b7916f976f986f996fd0b7e9d1a7e889dedba4479f234a7da4f52f7dfca24b24f24bf4322c9bc134fe6b4e87f3ba3c5e759be49c7fc7b925a47f3e1d848dbd97f1bcbac177da16dfbdf7aa28b4c23673ce419f55c6036b86b0fb0744b54de217d7ba26863514aeb431be4ee7067d30cee0c07264a3186ca673b40eec697307d638c01c7a601ad64f2c1445a82bad776d1df806d376c09a871e48b4c40303408d0d8f1e015d9c00602d050ed65108c039e7a06fce238430fa807514ec1cccf90173d73f0780ed7bf507aca30c00eb27dc13007bee1e10401400db6cf747014a8e04a123399223b99273373ad4f5e1dcfa581feb637176abe6d200581041085106657f42341494fd0059911d5712ea28680a8025c0a4a383edfc308001302019cf0209625908ec740004901e5500d64f3494b700aca3e82782600c211c62779fbb7dd8e6e0bfe84eeb7fdb73e7f36970a13fcdfdc2fa9ad4ef78b0a705c19eb6c17f0fa7a1a0d2955a084624e319027b43a000b27ea29f8075eb87ce415765644e527ec874ce0d4dc663b41b4e4693423ac5f82482c56852684e313734297e8af14904b64e478a3cc5785f5fc5f84e0b002733c23e622a75a5574411458aec34a28528fb9b46643cdb6dda6a86707cf85b977d1a31ea0278d1ddddfc9efdb914dab4ee9c6be8a0c65d82e4e438f68e2f3a237eb8d2fa7c0ecefcf623e3e922d0209990390ac28bc3ce45a04489225d895dbad25699106d71d8b5c59196902098dbe9f7642684b4c564425ab4a5beca84503a324248f5cfafec01239e982bd47fb39e7db39e4fac310cc3305e297a99902aafe5eb12411712617dceffea06f4aea620c72bccc9d75017b298e59db317ca5dbe6c9b7e8036ecb5585b6276ecb8523b4b6dff09a539cd387be10348712fac1052724e330898f1f6a8c50249c0b7731956c70957fac286614d95b79430df6b1883f21894a934294a8f342e35e94a3596f3f0d4a9c6aa3516a0f11c6e0487f3a8282c96e370ab1aa1f11c9ea3a2444b4801963674504548e844e3a9d30ed7e1d42d1dda0e4bc70e5aade4c8212b6b8995879e40250d0e8db940f7c45cc8011868c00221a1138d2bb56fa4139626aebf7c07670d10f966f992cc6b8844a74eeb96fa587d7f3e9f188f4ecf685273d9d224de02e52b549ae0e20b5180c21b5610862c9cda198cd329e2044dc0a20a4bd00114359c523a0863042b6808021a5edc706ae7349cce86418a33c4d88119a850638c53ef347bd102e534a83316e873196334d6d226cb69e5214b632d60f06f3cb4a57e54198c21a7c35dbad44e99b57c53e78c87d6a5fc1c4474eb8dfc69917d885934fe18a73e9703749380862a7e00bf493803979f5818cab0a48dd1f00344f90cdfbe7117a971a5d544b73e3ed46aa2efd0d015cf63605e5519cf0db7fcf9bca1b1178dbfca789ee57d39e69b8cbf2edbe53295d3b85cc68bb8dc47c66f342073ab6e327ec93c191adfe9bfa159a171f6d23a34fe5c0b34c6a9eff37397d6e1d328e32e3ef28dc580d1680c4697baf21077a1427831f483b34037f6e2dbd98b368d2a7be12fda64552b34dece5ddabb6e97784b0caddc4593ba9db140b794cc1af0d887e8af46f621fa8c57da34f2fe4d7e8cfedab404fb915b3e471a5fb134a6c257a023df984a15dfe90de8b7496f8b6e39674122536952bbb604fb51e52b685091d6047f1a50a048e1271d2e45ce2987e3f0cd886462f876ab6efc9715a8ac56661cd3b8cba5711a52b20b9ad45a689ca7381d9aca83a140ade83ab45d026cefa3e7d0767fd8e247c7a1ed16203ad4aa2545afb4b9a4e84e389dd196a2778fd7f1d1aadca549ed52f889d3e802f482612f4d6aeef2f3dab90b7be1343ad61ff831d6255f3c503f128ec4e9cc54ac4bec3df3dcd1260a71df847ce8b3d29e476dc580e2837f1afca121297e363b2d2c4e7bf51e6a3b648436fe69d673c6c35d16a79dabd0e55bc7739ee3971b8d630d70fd09dda8ce367d5a1688e9ddcd470863c59a242d8bc7f29d662ad01b41480f2f17235f413758e5622e74a3ef86f8ca790a54cade60162a057ad5f7f37ea34b7e6051a0b0cad336d1770eabc02bb08b0502a955a5acfbfa6110623162554644aceccfa524c72c736fb6def22ec6f85a070a1618dd4ae651b322c54f99cf6dd366b3917eb79cccd731bab380d6a14242424f9cd6675a87877c7596b0823d5ea34b8edd553706bd2a66a34d963bbfead642efa0e864beb594773ea3fb1fdf16b66d82d8fbb5b04cc3de4381caab66321b79ea241a69393fb21c918f3cf3186f309ae45022a74d85bb8b982ceb92f32ec5f016aa69190de14aceb5547e02b5a26fabe5346377ecee6d12cc84602f17a7ab95cce18c1b1b6643aadf82bebdca8258df9e45165d926db2da252635f763d04a6b2a1ad4fa8a1328acd257e6c4a2c657d0adb388a48f0e9707589776fd81ffb4fd57975891e22751199ef396369dd1a6aed224e7ce994beb886a5fa94da549ee790bdd7a280b2a60b4a74e22dfe8c7ae56a8a74e238fd149390b843ffafbf15493aee47ca45157722e3283eec9a98f5ce49be42d4d721ebd7d6334def91469236da4eda95a11f94e9fd1a41eea92f31e1a6a92db9348cbbe6091821086304548e814a3a1b018716884018b30275175576a2a599c0e0f659c000b3680a20c3a60c2c9797be17452525800061a6b50a38a2a579c9c3715a733a970021bcc08c21a5ec23839ef2b4e47c6094868c20f8020a54b104e6ea60b149cf684a57d73ada934c97919746b2a194fe54da54d4da54d3543b8a672f8effb5d45a3e8f125f3d6a2753277de5964daeb123b7ca83d933597703abca5e8d6828911daf12e892e395fc22d69931bf9b643e45b4ce69bf53daaeb4a5f44755dc9957875b0ca535cc97977dd96684834814237c5e9f01757723e7d9374ca3bff3299326de72f6ed64dd2ae8f42c152b9147ec272d58de669689a4a53712557554bb382f98c9a5665e5359ae4220b9e47e89cf7509b6074a7842dade99f50c692f637faff84226c69bf2b8369d29726b9fd8dbf1091f9fed2a62a76d4f6e19736add126303fbea9381ddeb249da54def95a3142dec04693f6f75de6f7083af0c1f316a7b327593759d58dc6bad1fcc65b3e888fdfc589db7324daa42d592e0fab15297ec23c89d6c1dc69af4bddbdc5ea1a2a9c3f876ec9727996ef7ec8748210b4f8e5e2b8ccf639e276cb65b9b47b57ae38f7e07b0f4608218c95165ac418630cc24ca0dbf3e29d4ce39dd3c269d15a5a0b18307c85af643ccc041ac45a6ef760ac640b695f876dcce52d0f7dfa8ce58bc4e95815a84bf00ada194f7479c518d46541dcb73709c65fdf25d0cd1f022d8e163a83a44dcea123d126d99ed3a6e7d01d3a741af7a049d0a5c65e68fc4593a003d13a2ca54bd06d6c6e6e7cf8000288dffca1109b108fc4e9005595a13409fa1574e3a120d6f35093e04d93e014fa1cc9590c0a210f3d8dcd02d9875ef96b138f9819d025cbe5a557d52ae1c92675ac3222aa8c01a9afaadaecd67318f4396f915c1841df3057319f8901954dda9ee9c926f583f03dc89babbfbde713b5a48bd29530e82d25a5fbea06b186d023cd4357c5e89ee9b9d6b67ef6cdf97bcd3eb0633d9d86fdf6bee1db311efa6b13f47689396d003f9744396340ea5dddfa6b86d4cc34c95577bdab4bb08f3f1df7ba277a75d907f6f7d44a63ee0d8341b705638d6767df472d107e76a0050cd13a2e242404c5c9fa754a010e22fe56818c29089db6edf25be5c4c6af7312e8269f97b3fc665b977216797110eb62b8fd0109f3f9d356cbcf3469ebcbe4e2b4afc623093a7fc3beb11df7daad05b24c82275e6322b073ef39672435cf533fe3329867974f59f93a9d1b1ee3dba6918b7cdb94c371501daea3e6d0b64938ea8cb64d92a937b46d524ca5d1d69568dd78caa86e934435ab1bc5ea2667dd68aeba51ab6e2eeb4653d558617dd539ced1ef065d6a1d29242424b4e5d4fe74b61f6ecbafce103b3bab9393b33aeeabb36ecbd2ddf23bcd50987bb345a1774e1f6de7445da2498e8b4053344e874fce277cfe846efbe59d37599ddd2516c87be7f0ca0231c0bb65c33b7ee29df314ef7c42ec69ef3be3814b9ae41c117e58936892a3a1afba28b425cbb353eaae3489bbe02a4d621fa288d3a171257649290d8d3367013db23b76fefc55f67d1aa753c495d829531a9a7f7b7229a1130d33f310aec4b0ebcc566cb5609ce56d61eecdc643ae779bf0ed9bf5ebbc3a3c5b6a77d14fa6cc5ef0175cb9075cb807df4e01245cb870e14265e32a7c65e32ebe37d6e2db2bad0b2adfb1cab7b3161fd62bdf48b870e1c2053e05b870ecd765eecd06bb382e4d6a88468567c033be7dc70dd12e29dd7688ee10dd2167a1af614f3df33fa1bf3b06588213a8f0b30ebb5d36753a43b8523ba5a14eb3f96ff4db37d26f543ea47152ce07a525a8e42a95d4b1540d928e29433334a3092001031540303020180e87c3014dd6f41e14800e90ac4c583a1786834914c4300a32c6184380210000621001313a4e02ae6a5796a88645c8e1c1062421dd621917ad177ae3437826b7353e20ee4f17f6de84f349a3ab6e4317c767ec0833bc2c0e9db270bc8824b61a14de6240448cff32cbad1493adfa35c9a10d851c4b6c4bba45f6da3f13cc0fa64915e47e8ca2db4b025d9156ad67e768c8dc98860fb86618e6bca550f238726dbb1908572284af9a8785a8c96caf2a6e8312ef75f0896aa936972bc3d906a5e8ffbd4db06fc8162dfaaf4ea3b12a3d4f0af35f66261453b4b903c1cdcfe3b2a1f278cdaf412320ef3bfd58380ede8a089ef176bca149cef8a63af1c96c3be4ad64c084def62ac81f994a400227576467aaf1ef0be2ceae4086394c478c9642649a2352654484bdebfb47e71a5327232d8591b2693d91c28bb82fa8d713e9cbec699d70b11682212fad251dd8f514fe7c769a4b5ef8b9649c815c0b4089b0cbfb5f1140d1f64eaab603465bd12c3d76b0780cec349799a1cb3739fb1d61aacef293663bd12ed8e0d37d885bde9f398b9ab019e40a68f63e2a50448f88b6a2bb32edb391a4ad897ae3d18cfaee8128ba993137c765dabd32d6efcf1506b9a871b08a4b62dbad0759e17d3bbc84b8e48bd5f60e502cb723fa8c5864cd70074be5f4387b75bc817fedc574ebd1c6776c1641776bf616df5e9bef8eb5d103698be84bd290ba618c20a8bf0d936479695df76c5e469a59d92cffe8df8a0ec2df608a343903c41adf9baef775867d1decfc35efd181a7df38b4566cdeb62e6d2372078f55dd8610a438d3a82056ea25f8cb89b02a575889a017f9afca1cffd98a37ee042d8962c98de6dd49ae94430ff798bf83570e134d87a23c2a41f9282c4b440acf221cafaee8e7aa34d145311033ba4a906107c95ad35c80d69a147d5f6b0ac26fad096bed5a132458586be273beef18b363f13241722536c9da4d3e5859203939098e6644dd505f6bf55a5ac3e1dbf1bf32b43dfe09cc90133cf21151e8cc6f634186d45ae86ab7d612e8fa79440b3df4dfa4ad0cfa046bb437222b94f447d691abac8869d36cd763d4da17b3e22099a2710859c7f1b6a3bdee718dc718b888ae0726f17ba68eef5127ee50183879e211619021f96497f31e7d6d82207be69d7d11d64de148a72309612149c84b07e48fa5b80f1f187442c6cb36002adea56588a383938638ba598dd4fb47e26be0167eba085996a5ef2ded9e9a5bf78fb77d5a2cad4013d8b37fa575e55221df1f36fc9d14fe822939afed4ae50f1911c3ec7edacaa52a61cbfbdf3e51d5247e988305f03003cb8685af7d4db9f8fb74c453e51e93b155a9862227ec35865cfe8ed83595c40d4cac9cd4cd212f6082d738e74e6673c81ba4d2e7a6d2b85e3923e59d8381b208285a0e420448376c8e901a3c6d5c9905ea5fd4184acc24cba426f853d80196e819a5a843e04f5dae84facabee27c915566a522cb1cc33361351b560f0a7aa310d0ab553940eb2f72830e3d5de92af60010480e32b8d3b0c4ff1819fc12041fc8fad857aabf19add0a4323336b68b27c03e467b0a70ca8cc3b2ff350f138b731778bb31eb67a98fb81d8e74e90ce41c6b4085622fc086edd14e190a4d8356e8861def3699497471d8d721b58e89c8c45f319fbdbfe2a62fc622a02e7a8ce68818759ccc3038f9c4cf1c7a76f464e5e875853ace5aad2b3a03542d76dcb848cde2d294e449731b4d0b64157602f22238b64488e3c5168cc6f426231dc9e2d632bda66f66e6a797251c9d9d60f0ffea82d75db566654e1e169bdaa5998f0d0b888bbf088399d0917baeda588e106804a494fca30cefee788a9c9d042796f9ee4e066de42095fc94f49f62d32758112ffe5ce5d9a4abc167a96c130c09f9253474f7506a01c2eb480e934ae911191e40405a413af949b3b662ccb8b6f4e578e2c332103898826b44583f42d037e4503703e0035d968393bfea68ebe7a3dda7d9fa8ffaa1a9b39ae0852d93c13f58a9c75842716372c2aeb54522d7450a62502e6e7d7aa9f5b6f1dfeb9ecc55c38524653af24c1b8643bb9db272bd0f5905049973b052717cc3114968cdab99f1f682b5b07738f07749bcf9f76a65179a28216fe086e414818dd4db0c5a9c8da4de6aa42c06aede54a938bfb0a0217ec59276becc5d53d516c5c1c82607e67f1a3091b53e20eed7b7632d50abdf2a81d3cb931a0f0b9194f543921dd3f2142fca1cf9119cc45a661704654e9f25569b525f0f65a7467c3f35dae50c576839052d08c3313095340977a107f494c0345e9951c498e4adbbedcff51aeea947ae9698988b78f1ae4c1729144cb8c9d26c2b064fed359a9a0efb4ee2f42dcc430759fdd5769a0df79d167292ca1384bcfc005f563245da1ff289bdb98e8a8f63e314e0e885e6ab4afc0cc43fed0a4216c307eb5543c6d94703f4b14eab074e1a298443f31067d79bc0ea37fc47dc0f15267d13fea20554b4b02131ea5768248f4ffeaa63a6de8f9a6699320d6c69c35336abd94f88cf284321e3b3d55aeb8fa1fed7a36d4f71a6fd43c1347e7f62a18e131881e2d48c0f1a1aed124b34fcb424b05b3092459bc83981c9d991375f8592a63ac5a3bd9bc8abc36cbdfa38b320f8e1fc801e555241a680806d907bf7068e2a9e58054513ca0ea16b8440d1a12226934e3b5f7fd9895e83bd906dcf0839cbc5762a02b4b4a40b146e55790e5476d8620e7faeea25f52748271429e501bf97622d31711da66a768d6e0ae326430aed1a7bfe9db474c8502e74157e587cecd4adb5f2d84efcb15e970181db89e1745ecc44503dc1f4d8ce732b87a756f9d108b7f98cdb4504b6a6713ea5ca7bfe48fd963cfccaccf316f8f3ae846d4e2ebde3016cc10e8ac74568b36b9543705f8b12e1f05f998a8bb149b0df9f7998f8321abcd6b40926ce71ed64cd661fc721a508927b06af721d0bc1308c6a6dfba81bb49cb1dce532c69190a222695122f7ad66c049bba54c6f7ff62d5d01c26717a0586958f65b284ec88555fc0e2c9b42b47bc97a4c31592b387dc7ff90c515624324fed6a8c1abe9fc5a5a086a64771c25b258d0d042c1d2d303eb24d8fedc3e6674774ece3bd635f7cba9730a5644fbe9d83f3c2c61e9799d5c8f242965a0b204445af490254ccf560e078598bebb3f9a584303a2e24c2e291d079b1603613b550d7d67b23c460072a1a73637f82078325670bcd7fc1c3fd6183e58e3557427a45120ca9a6b603d811dcea4abfb99b4c3bfee66bcd799873b0408ae0435e83595077ee4de57b1c6cb8abb50081938c26e49a843d1808dc649a8f136477ab7d795ada3f1564048a634fa68ad7ad2a340802abd9e42d57246d75ba33e90ee5eaf65062f3dedac50311a0e62fdfd9816a7c27990cf96ad157dbbe310d390f2ab3ed15bb17ad4b2bdca96de1700298765ce776a6ed8e06bd48da2333176c45b97d694fa8ad866f8315c7d4a1238ca6338358c767f9b686e171b8ac38b1d9a8e1444edd1e9b75458f8d2f66e012eb09a3a8340da90124305d91c3a64a0c4de17e0e5c7bac317b1c8e1a6434821c3fb63191d3317ab7299761c750fce51448b47c9865441db5bd73d6f21adfb761c1fb9e12d62cd401b37d748258b3baeac3f8ea8f833d850e1a3956de33c617b7ab4abd6f41c863f8125597d57b38dda9e5260e6960979c1cdfdbce30db8b9b86573b79adfccbe23ed89482ba5595b3f784b490e65c6072f5d1da3e6e1f3f4b21624e45cfb3f42e69d9816e19c204cb9dde29e7de821b6cc71a53ad47b292953a941267aeb5b02b5b158920ee2c83028e87618c0306f29c534309da3e0b759cd6c289dc35b204c60b38730281d15f4ac25eb5f8ebe26db566f85815cb34d88d9af1b768235306de1ed690b91203930c59ba60517fd0fdd05bb70cf65fbbc1e55fce37fa17a03b8fc2e04f9c53e012dc96cd326a4df53558d4bcaa0b9a7b20283830552d397611c9c32e66726e70c44fc6a3817ffdd70a7404116ad6e3ebe54063332f1b328bfdf5ca262c9d5969aa3ef6ba746ca0636df0431fec28627539495ed0afb1c86ef62d50c4d6a6d84c9ff4438f61a048a617b4c8a78c61ce8d353d884d624a4084ad4c10e6dccf9ecf67fc61ccce4f9ae2a9f5225ea69d796abe5a3d4965368fa41a70b0f683c73f46df5c27e66003195e4f72d68001c56c2088b9b6886832dad8da180d97839dfc10dd3325374a131599d58e5f4837b25a37efba00053f3db4e5b1b3c6ab8f18bbc7244b50ab81ef2ee2ff6a2eb0571fe32ba7a8f0644683c68496f0dca944c420d6247729ce6876916930fd121a08a66868259674164cf4a3e9e853b1d7e545297f0247cfbfa1d5c7a30380453710852e33e5bc6898edc2342f2a0848cc37d84c045f60632380441fc07627dc9c240c7fc089a26f2c8373603414a3f3bdaca83b25378cd28addf62c0079182255188acfc33b51172e23f137837680174f88e5f81e3aa671181bcea6461dd6ec2535761f6d0b19585050621a95ebbac438c5098f3a8d8d6f8cf1cdad878e509d43bc6efda486fb295916317c4b72388cf1117dc1653c8d5cd649cb3d37e2f00c845e271ae79a50eda88d188ae1467d22fe7b2239b2f1efc9b8e00a4037f2106e4bbd6c7b9e7ee3ef9ae0835ac59b1e931ef2b0ba8e6c4777aed6711b4acc0cf33789c85eb9954df6e91d0c3868ff51635542e68c811b36adda365439508b39652756abd6b6e611842809ea547ff5e58974950a0619da562c9dab0021a50b33cab1ba3e1106dceaa3119e6b18914df9c6d4d27e31513398cca3933428867d276990c663fc7e66c19ec8ba7b707d6654eda07fc695703010081c9d8502539d24b9a3d5d2c9deaabcd7691635d560334a75223b9c13011d28cacda1f385c600f54075f41185464cdc528be4c0026d64ead6696ec4f10019a5acb10a5a909368057d8318eec6b04f8d8483b18e11a0eaae15993019ee77734712c30824cc53818a6b79c217793fe07fd81a499bbe961e7995c149d3739a11a423b4b3fd8bb612483a10890e7b2afcb9c97da6490ce32bd0c8229afa75b730d0af1b22e42f84166821f083d498d1c6abba98c8b7c5a8161b8ee1978680baeb03c92f136b9112d4b86d840c7986ca8888070a482e51d76b85711da0ceaa1bad9f3e710cb7e7a2ad3edf98856045d873982f78b239cb0ee3b8f585e8fe14cb06abdc19ee7d7bfb3d7f18db3a5d2b291dcc9985dee7f098b14d581ecc76df11edbe4828ba8c416223efeb29a5529c4fbb0ec391ccb55b4c7e03851292c10e07a206e1b9209e04287f13a9dfd27f85094cc0e7a4a94f7b46fb67563653a0e0d441f89c720cf364a5df6047dc10344dfea2d564a0b1fe9087051ce7fc0e99029b68c8a6abcfb083f38194e69c64e1e93add4971589df57667f00bffc325758acd6b46b148de89c50ae49b1d4567d6895695f18683969f45a93b4fdb50d32946f1f3c84b0ce9935b3ce747ce17b8910c3b17aab2ce4a95f6f4ad512ca8d8fefd83cd7e0a307653848198011e344055f20769afcadd0ede830939b6cfc03f4c44ebffc41d2b77875d110b849bb6b571d8180f284e0c3e010361dab9e6e73e9ac87c8cd60a53a4f96523c77bb85b91f8ac6f4a467cb8cd4acff7409e6151a11222d80732aac26f696c06ff02c6f96f3f76d6fc2f534ece471d0be4aa8ff44a2b8943feb26c847446ef24a494dcff1842e3cf22fbdcb4ab5c14493e99ae1085309f153ffbee96e958d55f0cf43061a30883098c32b8f8460224c7154400f47ef358a6efa82eeebb0e75c7c614031d60c30b00065af4bac70d67b4277082794e64400850823edb11b86d55e58a4ec17d8c427dac46b9aac1bba6c9fa0ef3ebef6498f5ed9787a6fc92c565e32ee0e909ded8de5042e3aad9cf5a136cf92dc22f96fd228002bb7c441250942a443247e9a908ef983b349ec8a7173034a0b928f31b99fa35387a9da799943cabbd70b116089157ed567bb32b0a47bf1ee7768d518c3c543eb83b7c58b04cd41a07293208f5789a808d6e97dcddc215c9d4bbc67fcb6c1ea6c5ef39a4b557ba17bbc7d1dc810500866a1a8ec7b0e5702122fff1edf54eedd2a8475ebef58c06225150d17c1035eeb933879c275a558a9239e5a12d36a1be504dfa90a69ce7297370584da0461ecfb423b9f8b8afca349743940cbe4ade77763d60dc16ea780bb1e2c9ebc037d4e0ad960186815616a299396fcda662f131a7f6b0d52ed58f9e2161a453e77dbc5685e3ef4ba663bc2c7fd7140f5f0abcefa83729e2db5ac43f18148d543c8ae41927dbdf6b19b5c0ec94793914f9d83e84c0a2df47f42c2e974a8b097da8cfe211e4cd4d103c7bc698641636f55d5989b812e80f2766452552fb3d40649a8e26f1ed5d674df78ac9f8bc17f47062eb2fbc9de199e1c8a5b45b1e88d4599e006f1b4a2b6b60e84ad711cc50da3b51ade1778eb89a1c0aaf845df354394716122cd6c43ab19920b2daea4973bbae93d3054faf77c4a7515e2dca3e6141c3b686c5a12cddad160cacf6029259b7a81c8a5703829ceb0d81579f7556d54bbb8bb834466dc345db045a80db010b9b6b5e0a35bdb790dc81b68c8535c19a1bf090275276ea5e6402c69c2067726f435403204885a1a6672d4ffb2c8e2deffa68f12c23d7606cb69a7a022dcbd1b7fb23fe2fdb899c5b7d919efd69f25c7d1c947266bb25caca6e85e8a275ad4d2e014f9a5e11aca3768c83d7ce7fac6bd76b913ef065574000aa8c90b94d3b1960a4966cf4909718610833f3d0460216bf2395b7b5bcbc2b5be8bbb0de60076ea601426f403eaa02eef3f2f636b60499e17afbd0c53ee5ae2d4ee770707f898b041a0d6a0acba5265b7d46713a4d27cfb2e031bfc326cbe71bedeac65ed333c6e1efe626df78fe277ebd0b1f8d8d444ed3432849cb2babf5fc5d5c6c7fa0b89b4252a9bceca06ae168880904525c7f77955d6cbc1c99355545dca5f9003d4c1b0e1b4acf80d5cc27da53cd003dc2677fd15fc252d09a57f14674d1da74e253a92e97254617c8b7a8f2a9902d9c4ae47427c5d2e7f5016601e6d6bf2e15fed54993a60343c98e1557571c83f86d0067916b517b463e380b49ee2e7a09dad39f10a0bcfb7511ffa37f5474c701dfbc7f1fdef9e1ff76bd4680b3fcad5b77adaa6c4ad510a0976a6a7acc1bdb256e4087d0ed836be9f1af8ef4a3980cddceb9ec25c36480aacc4fda6992fd9d7d8af22dc931d32d6b324e2d30b90c53026d21d97d692ef91fcad644527ec21b91f7e2c0c1b1f29c52aa23393ab3eec0974a9f9514d9ce12a47a5ab4b9db0d15cbd10d4e1e9816d4c7369904b6a82697e41d9d48858bd8fd169e129b396f1bb083308347a691fe631354525639d3ad64a2286d6cdd4d40f27265071ebf878df0652f4893a54d6e2b4ccdd88d1f738bd4302453cd51929210d567547e04fbac9ac02da83dacda97895e3ceb57089a4a66136010d9bc8435ef829c5a9760cd540f3dafc3e103faf16c5c8fef58fc65a8ce2001757c05c6d98477b48f73e905c1c84034d3c588d334870ed217db951f186d3736c8da81f0e0a8e0e334736ab918445a1e8688c377c9b46b6d931c7ee166a23291d72a19aa5a227006645d76e8542e9a474d6572623c235f5541aecae896868738c201dfa883ba6fb94b97895b2df097e66bebbbab050a8d509963158abc17c25296e4bc7932a28c890e40365a8f84bc4c93a263b20fe0cd04608aeec49354ed6601c3348aecca052bc323d825522ce124037fc32fa402a11d80dcfc931711d96997b4ce9e6b220732163fcfb6f6ca57cf67350b06e70a8026d6142d6110b9a5006b10861216f4b15e2caede167540309ae8eb5e68fc3d2dac718f694fd299c294462beda21f83042774f7ad55fcf4ff26098682ecb51f950bd15d16bd90ff1f9db214a36c7ccb2b1c7c57bf3fe7f6d52fe509764b7eb7c770bf9e46f5bcd179da693bd0b84484d5df34a85321b467f22f32cd0f4ff4c9d28c4d300bdb18e17878125f2a1d9963a58aab9169744a1123b14b633a57f4dcd083fa92f87ec47c1556821b23db6da2878dcdef9d6abf9346825014182c98fbf957ae787727f15e34a42d59f7cdf40b31cc135f3155aab0dd435205e11e2e4314afb67ee873ad0da82e604b88908c6f570d1de018bc6e0ae639a08361d351408c6e001379f649aeb212595872784176c53ba49de501c0859e82fa1c585434c3e18e065488a72591ad07d16d801a7454583dafbaf30534cd9eec56da85b168507c44e45a68f576982cad823eb4bd01d7121bd1b2e937d2eb9ab33726d2908a5eaf8c950dbc990345e6a7dd2ed9e9dea6528f9d9e9322db9297c7e4becb989771a138742c476e58f992bac8a041e2cb0861b742341b4e446fb81863738c08ab8fe8bbe86b4df4934f075bec4b9bf115219887ce2b917c49eb3b7a2c2bfa654d22252e0a771945ccc3fa6943dd2f29c16b845b3f91aaa54148f4faf169745e8fdab530221dfa5bb07eb564e614b5308c610a8141a77e4a0b8d9aec6ef9e9c4a7901d13793114a7ce175f46e570759474edcb5421c17870008db2f2cd36d7b80d5a145cd122c0b11413540e7fdb565aea8ca1df6fcc05abd34429a5da4b8e05e805aee67d82185f5f7a6f319d9b06faf005fe237ad50549ff964ff0e12f56433bcc7ee50d01c0923a56aa2fbc7fbc3debbcdae4d141bd26fb195556e610d9a84178cd731b76ac409590ab9567ef846a409cc29964225a08a7129618ff5f0c883e006e844a26b3e507da61ff14c4eebd89e444d9ab902761c23756c3f0642e15083be6880fab75c5e6434e84b8aa0b0388eb9fcd6931818b9a1bb59e3c4d065a838ec452e04db193ca8b91b2200e62680cc9111b61b9a0bab71b6e8b4c246cf24635fa6f4b07055b2472715db1617d5b9edb30c7c88337faab8f285aed1945bab7c4141c866a5dc19af4988211977e473271abb76c8cfdf5548580ed0d8cc89add8fd60f7b82ff152f76b021247cf3ed2cd8ac222f1ace8b6d80257adb76bfee3d8ec5eef29e09330dc1e0c70ad773fe3ce4a30fa5ca4c0577e00a7a0518c2110d623f132125e331bc009319b3fcf5554c84844b85a783ec4c188983dbd07bd5b1e947d0c04fccf3e7f715897b97b2aedc04830a1c139209f2b440ffed98fee8cfe2f82d76a03a4ff2f4c35714d9d56ed0d2d38d34f04647470f53bebcbaa2a2a4c869ccd6fad3e01692beb3c8d8456192f6fdc73898aa162917d6b3d291ebec5b31663235249b10d4af5bd983ca9132475e1f1408bff35e6e5437cd970508a46409a64785ad638d0ef0162c563e8663451669323e58c47b0a9931e8029c1a7bb93de5d0071964cadcd923939094348c10f771a86bc576102a4807b7f76ec8f807bac7678ce186dea8091164725821a461a53e7da551f085e4c549b20df06033ab54ecd1dc1661be3c892412bbf51f27a850238892c149ab3f5adfa073e5b4deae522359a805e39370aa8de44495b58272ebd4cc206fc633f27d683043ae1d541c0250a6c7b9a589a4ec30e5c02c06070dc480014c94b40b443d7f5301fb09c05cb83f7142a014430ae7115a1a82eb6f0ba389a58aedde92309ab91ed629f1bc25e47a96a709130a766729a7faa49c31a3a7329429b6121c199498ca3211aecd55954a5c4ce5af27a624dbabf4b227be6cb60260b0c926ea9bd0a0243c230994054ede927ee562525870536fe1671598af0f0eae924b795a3dfaeef2805dc92d38e16d74e17475038d7a123411263b0928fd3dae6b6120226e1392036d8eb5f849f8de017a60ff72cd75b4d792536b921d1d8afe7e0e2e9c5e7af84b7d19dbfbe3dbdbeee1bc6e4b1faa54d35810eea3366515aeafacce3f4f1e48034c74804389c38fd3f442f727e03fb18142e5176b6f6270502752d229584e5d20083ce854508d62b99f1f0aba3d684b7135031ec1c9084b1bfb2f910f9210eaf3ef6d26bd608c705846002ff65fc3ece5262d3d6242950b12b0dc73804b08c2ca67e03b485a99ad325d11c39f5c915de2aa2c209bfbfd59518d329b1ed645452c9412a770551de1aaedadee99b8375d695eaca34e1c33180cd1305bc73feb81bf089236e61c55250951a821653efcec6e37b2f13e2b53a4277d3b13f116c76cd52227a08ce4006541d432b4f9ca0715d9581f50f243288a415add50cb2c59198deb0d9b8e83e178dff50d1e0e79a2236ab8286cd08cd47838e7179db0f582040a861ba89239b47c820d45399a4ea12827eddc61b42f5bb34ced97708f5c5a3d7cfaf683eeb37d9775758133eb045edc6ee849114b5353e93f8b21ebfeaa4a8f35f8da25b266a086c41ef8c2faf923f8b71886ad5ef56234c3bb2fe20ed170b707ab9e042e7a310d43222531182ea865c76b2e1fc3545675012d1011a187971802851ab4f630f48825532733ae19ad9282b4f57db7b6b3c2cba9b416bd990643ced4b4c72c16a7379955df715566dd60f79cd22fb4d377d3711a82dbf9f9a835644fe07e074a9101463389e48ac40c970bf3ce83e6e5c61bb78b118cfe26bd471c50e7cad8ecb262780a048a656edbbd0d81640ec572ff1aefd645ba8a808d332ac646fe527a9f9e71e7a6f1c49a2d3d301ddab452b5bb206c9b091cf5675f9b4f570c725448caccbdec84d8463b0b643d6122971a3d2e3e9bd04659466a32038f48a8e0a4fb06b629410910713061c30a127ef7dc82b7f7fee2eb56ea3d245fe9cb606141798e4621550ea47ea781b5a1017c786b1fcc69b0b6351f710e6ff06e9676aa6f852a90f22d962736167b202b00e89a436719c3a9ca58d534cd5293a15f005fabaa4d2192d0c4698a9aaba69a7b7d6256d90d772c2eaeb406506907ead2c3fcb43486e2d1776003da455f5a5e1f7acd310ce4fb7491d4e88676bf3db83737c818bd34f811eefff168fb717a14f5ccfc9a48c3eecfa4ae115fae19a7a371b6c05e2a47794e2fbbb5e6920d40653f7839fb25e0089a9935a2d6f63a8a9ec57a967ab6a95304d9db2b40a317e9fe368c20d5326c3b2c5bce789876dea874182c676bee7b9452c547592bbb7debfe09836b66a88155970367c5f65b0e2449e211c233d5a1886b899b48f38ca4e7519238ac7f9a89adc7420263291ea069d7e054722a002eb937a63fd0d2cbfea7160dbf0cd0c052c2a363e1da2f612ef7fb5a6406fd9c03d43d72b437ba754588262fa77b2f8b7efebafe79e2093776cf6af6044a20518844d3cc27a79358488369e22f60ed04c7eef7d4390d57e4faee8f926d2da3c90ce8c4f43ce8ed85eaee72d21ac4d206d5ff05b0358f4e511291e8ed3b01a95475c84a2096a6e0c7b90a747e0525e220c20fc337d696c1a9c20864ba364cb811938a71862e2eee3536e43830ddb30f3d7411a459ffa9a599f61a3112f1d023fd0a9310f1dd060fa98143d31c326ed27c1631b4affb37f9c26313ed02e3133246fcc0ebf4004b237b592b22a9aa193567dca9818fb75dc8e665faa1e8fb07718c741317f0d264425bf97e3e4f7ecfff0820f19807a6a266c720515a87c88da56dfdfdc112818fa795113dd9f2da5c655db93caed1a2897a8e1daae84ffe242800c2f20779915f978d75e2590f95d229d56855349fb93cecc2937e77f86c615615fa61b32b659a686b806b9251339ab712c3c2f0e4bfcc075b0eb64635634da2e8a9c7ae5cf2d465c9fdd29ce0d1c2ff01483c3fb2a0f70c943f7ad1c2c05ddf0e5ad786660c57d393dfd81592bc79f18367d7f1dc60a2079fae5493d98241d7963d460b93f93693d1929a105f046087b565dc500fe4311173f35f01c1eb64f3218c05a31abd7f0e737b97e4ec35bfe3cbeb5ba29ca10011a8fc0fa466bed9d9cbc30e93e71a52e6cd177743b7b07b13790b0735866f11a1e256a47db9cc5a84e0d7e62148622a0734fb8846a0f18b5988b5283ee13f42a5731f9ce03f559d9b24f35bd1ea851e6fd3f48238fc3cfbd9505601f3d9e53b540aabb65cdf0e4ba6d844280f670258c16f213092be7e447d96c592226f4f800c4b85bbef01fd0a90fd44aea8d3cf67895c4659234110e1f4cf832ebad1616c5f9a3d3ee6ddafaf70870498fb4eb539aa2fc523cc6390b1ff73af37e6b42344c5121450d7d1ccd390333f40bdd92be2dab3abc148fcdefd7f87d16b4f0081b1e4fe29e494faa70af7c51a663aedb27a3aa6fa86fb5cfc95e6f19fba4421c86fba2a25441a9e257a1ae6ff3a4794d4d342a57d0cf1f7ba8d3468d4c121371e017d53dc65e5350ad2e808a0e853bb9f0146fb2928ec25d109dd831ffdf2fc19fd382c1fb49c6258055918f504c62c86ca87d3041239136332dc5fb0aabf796f829ce8e51d4a615c134a0b8b0b6fc4990b4ffd29f6946260a901e220433c6825ad6daffb816f58acf22c60565f66147fe98819383692e7ec4ccc7790820a27ad0d0790a0c0932f287d1a83451f9dd010cc9eebfe303a764b1d6344c932db967c47acbf2d7766d0bff0e9d092d5041b31d3a7cfaa00c369e2bed7ea2162992614c792decd0026cef72adc2cb8ca9406429854ad920b7e2520356a28d12616d5ae33d9c38aa4c452194b36d3ff3e3f1bf42a9d9763aa88f02026f4a4ff57f5be4183cf6b10c81aee8ad5fa12df2263ea86d218d1ccf7008a399260c094e3e698ef7ea8777242a01b942d6c8601834c287f40e90ea552cfbac350b2d5ba0dd22467ecc4e722a2e7bcc6b666ed46224b9f861749b2e7b51416629b67eb3b54ba8f3411ef08b7c9ad8c9180dad11c5e5ab9bb2cbb1a8610986171dd7d6410d3f87a1f4c4057d6c6fb7d47bf06f63eceee0b729315235dfec8fb5e70fb6f9994cdeaa4ca8d5231c8369a232ae2aec25bbc32108bc84b3d3fde1df1cd8d264c59e0ded24dbfb31c5355ef950184739869fad205fc82336d91994230c5e800121785089299088a47b0867fc236d0219395839bf5281f023c2681258a9e581cf04bbd9e63415627ba13621f88ffe8bbeb5bcfda3ea75b79887ad0b4014fb788e2bba0e8a3c3ebfd4129c3988afb19d5403600e7e39b4d52f0638a9dcc49b583413a9491f6c583bf5d2b983d3f574f8b8323be6ba38806dd3d29e27f1f0a10380fbd06744b41618d5062a71f3c78c3706d838a2e0f7a27c4d84af2c144476f69f12e2e86bdb5cb1af7648884330b64b5f87ae4515ccf87dcf6ccde2815c5a3edd9ad73e06345d42c5c0b46a638761657ab8665f51c3f1750afccc33772c3a4fb6cebb9102b39f491df15deba7a1be91e744bfd7164acbf1f641fd7bd3cda27897bb41a83efa2b9ae501f60b5edf90d29852fdb61abccbfde82e294e047c765063cc51caee1a56d9a284ae100376c92f347f744dc92d079de01d29ff4e039882aa3a790bdf35b8c2eea4b48243ad58b93e8d0ffd47d078bc889047274a8d05182901160573a7ebb825d6dcf91d21b52f0798658ac8240111cef75868102394fd662c5475be7e15510f556c47c71ca3bedb531494351ce0d83f92f5260855dc892a766180805a38c0d5bb12a0e7ead6b5aa5d921652d7673f6c67bd1f9d975cca97407bc978d4baca50a952fd7c20d0c3384148c4222da578a23c6c7c61fbaee3fc193f0d4b071b636558aec419bd72d7598b20abffdb61981e4216f0e72ddbf52cb0ee6a56aeb3db92582b225156770f51ce59dba34c8a39534e0151a6fcc4721a416d24829a99e5fd37c0c598cf7a78a29d920a7cd8306b5ae331fe2818be446e3d7a51e871d1f2a56256ce39ab2357bcb27de70aa6fb391560999318b95641ee95ab7d3759e619147094894b14756d37c84fb9e300bec4c601444901a5cbbb5fc3c214efad7eca0df993fe862d64689ac249eb445ca21b3f9b1432d3eadd52411da0650e2cb508103c115cda884f6ce29c95eda1b0187a328c3254d7d0391aeb1610c2f51fa6dc12e70daefe3052f4cfa7f55318897632de1895ee03d83f59eab10cef6bfd338e17fff070470438409e4c021cb22b9946e49143eb259fd19578862f75195eea33b89267f42567a608ca9a891d7da520c89cc685c90e777b2cabdcb6cbba2be33187ce4b3eb32b7b065fe232bdc467b872cfe04b2eb3977c6657e2191ea5eb1d8e5f0d25be1775b8a7a052c0c79b72e0185ec6fc3f6a10e6914a1b6e0de2ad1b266ce4f6cd6cda3645b6f33d21786733434ddeb90ec654229346c5858f0fc928a2f8738370fa995570bb85885f7d92676284336702e1e63e4241454a2f4681b4087d9211a32e3cb6b08a8154793c623b96ff2c8072188087151f58958ccc319a0cd92fe969bde63d6bffb26c956d911db8e60ab5179850cec60cd9ba644172dfe51ae924d3078f0a149fe94569d874a161dbc69ebcaaf02b1b85c8a4cec59192e01392d29db6aab2c951d314d0e9a53856e49357842e216ff00b786025cad953be24d456a35658f24cff3b046651bfb595ed0eda6b8f630ef20b68abcb1e54a55f63ee65751b16234ef031d059e67d06e8e4c875db8bb942840a3c7704ba2523c136ac4ce0c3090f796f872c65bb0d1d2cf9fe73ef6a1a0a40db742b5c8b3b8771c0465125086b43b06aefa158a0f846348803716064ff24047666a831cc2981058cd08f548392d382fc74e619a2a645b348080345a2e1e0b0a8bcac405c55a7e313faa9bc26dd5f279d577569ea4bfe71678b144bc5dc7bcb70487aa33e5d3c0b3abcd994d2db5506427e0b5258003fa761957787d1fc4b75a5c1512eb6cce436aa0b1d975f31393834aa82620f335663bb89b5c0a3ac234809ed49fc93d05143d5ce463ee1a6b554642c20088dd101f6f9779f805516bdc02f4f4183b05f1525c039ec47ab11704123e95e7440da037f20e5d079e34c910934ce08d50c6d75af66c25972804b95e4badc21a52ea6b1cf8950d0272134cd791887b2f35ce995881e650e76500a76196fb5b11fca2d805cf758a8250f6f6a6cea7c17dc1f325c9bfecd55ed41dd5326d40aba3977c005ac43c9a9220e10cfe210cfca5b67c8f87d2d03d7ad23a11531f9ea410d6294a84a077613f5be5704662af7edd293564d1b084de8438c607709a0d24f4d6c91890d5880c3a559aa032d752c06330d88a9809a97146483c101e54ac7f706bc1e382db1da813f0f9c428efaa294f72cfb90f5ec8466c160e11f38e38387f8a6b6901d039069882cd3a0ad88bd9ed5ece1f407871b9a3e54dd5adb7d0912a9fc47f86664850eb4af1381f5951a387b52f5fc1e686fa896402a5eada48c9aa11c48db663574626402c43416128da5532c90ac501ce0e365c51d78631328894252993dfe5218abd4280146e80f7a9865322dd92bcd6e3cdc19ac7766233cc7c7fd518eb91b5a531240f0c2a796415c9cc0ed288ada4a3ee8f537f744c1b9dabdc1aa751296fad304fd750bc4f4a03a53797226e8654e6ed28b05f9062137b1cc817a5613901f1dd70e5ae9b9665990623d6c47afe0565a1ebb80e214140c832c2e89eda9658a2e2783ef4f06020b7c742d21a45fd2d39726ffca8d4fc5b1621264a1b7f18cf6908e22ee79bd878b965e0647599548e6fe64b94e298e7f9f24c8144941dd42070ab1f5f92cc4cb9090824adf868fd549759e1fff516b1e17baf683b82be583f831e2b5370dba24b757992e36f3dd64452f6cd5f8f7adf1b17246a6a9d24c7e8790509e1f0509d939606c3e4f7c82fe4cb3d0fc1174f93a38b8edf28e3561708598bde8b502995a37aa7cdc6348992fa1a06a18cef8b94895b1ac2583de216c699ac581338d612bd0ccd9777120e554e411ded7ac70ee90f46bace0ebe8655285d1cd89c60a146321eb26015ce9a9484d96474d8ff6264f68d48f8dde22c1871d37bb7f2230747e06bdae0440cd5089ee2ee8f66e921a541f1bd2f91d2a463bda794362767945aa3b01b5c38d1ee256de90c9f4d47c78ecb5f093eea7653ac52e92a7a49488996c247bb4414ce4f374c2492770cd50143058a1a8899382e32b26d17c4ba8b241168973df5985ccfb531dda9fc215499da9b3219a08359fe4258130016530c807e0dde51046c42bacad837ef8ba0f2814a2b36f8860bb8110cddc53441b7c900d080d9f23ee46d028079001a70b75871b5f53a8d9a297b5aaabadf47d99d6e95f0d5e2a9720fc507ed72bfd55b564cd5d33b05834717220790e6649407a98822f486d4686f4b4f4608af05fc8de0ff99c89216aaf031841cf0cfb00cf247eec27ea51c4318eb96630df1fc1e6680e9c4c772a6fa2285986f323a5952e1fb52b171912e596b29ad110da7a2d02c65225395054c0337ccd84cf609936b8b4ceb0477599093152ab116877386d30036879f5df306d64f8dfdd5ed49a68a2517eedf8ec36318566343fa3dcb99fd840fd668317c3113fb228eebb7e073329dcee2e16a03b1451b2d172e3aa15169f53068bf49be1976ea2daa25306b640f8dc43e282f40f0e156f9aea2f3b0eeaae3cd85fdb86a706269b874404ebbb35ba80b43f50251768094452a5c47aa732387a02f9b3b890e79057a8451eba3b1c2f560fe1ae06ad13e3afd4b086fa50bc0620fd8c4d84fc8d05fe944004f53a110931c4853ccc8f36b447b987cbc67d4cab5d8d83406c3dc9b66383f235fffbf8ae3b5e03499818c66410f17ed1d758d4a6989c215e8458072385516d0493fae8c37850429929c8ae1276e1be42c6e9b5b73c4575e311f4709461b1ab29d5a4ae024c125c1ecc6e16f06aab09a11075dfe5eb8eb797419104dde88a3c92f7e906ae267785b8950d94c382fda3313088901b75f52c7e161e0baefe5204e53334a6272aa04713ed9d04575a2b2d6588afacf6c3193accb9aa59bcd1d08c6f9b340854377ecd4dbd97fd106b7d66cc19f8720dc25da2828f440dba9bbb359f95bfb5b6a8474bc0f2ea43570ced0afecd2ff38c0022e139fb8e0f1e3a1ef60eeb995c79f960aadb7045efec09c45b31ff359ae3f9391708c7fe3dff86682afab0b2cfa2609fe0ecc4533e039d99cfe7c101d7060eed377aa0fe5835f45a50eba531a5dca4950662135a955240bc9cfe2a0b0a06477c4ae7312fc3e5a2aa72dcbfb11283c172289f106601e0fc48475789dbb0228275fb85d281113eeb3d9e1f70c1f8f0f581b31210c8f05d8792552a9267a1306579f8c9c2232c57e1d754d5aaffb9d1553f0fd0f64476f3eab53ca6efc0374f670a119f21029159dc2546f46298a88881b99cfa4084b774517770d8faa38b9f22162247e183d631df08dd2ddc5f6732af7fc884fa1d3f6921211d31bbc59bd95dc3d6721497adbfd0c578a3242e1a7a111283828cf5c050d7d82ff0bdca0477cb03200220f6bf0642db16913b469822943c74c3d439b849ceb143e00a2a58142fca2b0e8837e87c79005c7557a6943b8f170d3d0a1157679c256f6aa046ad1647cde93b4ed3fd40466d093f49280f0b71255c80546871b679487ff966b67cd30fc26645d92985095d403b91731f071b4c20ab82d93ac8371a20ced9f0756de160100940546a1272642eb19502e17b4a516cb97094a1d0a8b3c9c8221ca080aff22a10b72d2d9fccfa37f3fec030a7d3b533c14d7c43f4079c4de2a221fe844340b6bd715279eee5b1391351d66ed7f6101ebd8095bc5027b8e5ff86ac7b4f1e294fc83eaaf8f525e9ecf2ac2a3bcb72417c59fab89c364b3235ff02d797575aaca9b482649875ffa0b7fdf9ac6a35760dfe9f2c82fa1da19ca807d90d8d8a3db399608d68d67a9b06715bb72877ce6a4484c424d766f449463fb99f119870940a28d2231b28cabfc09f2ccbf2ffd6658464b2dc151ff5b7aa86a8b53499b5d0406d7842402602fd2ca2ce4864ebc03e9f9d1389c06ed7814ecff58c27514c62920275de88ae6e1cbc0df31e272f44de597dcaed77b0d947018ddb0b163823cf60c8c1a1a7b45d0e816aef7b0856e78955c0183e82bff7e614d9a6813f1ccd9fab23b9ba29780243f3e24262d43e09f4085ca5f324d0c42f7ea51c742dd2d2914d111a019f1c41d4a445c66e768586e7ba1a652fea0598714d0dfc167db95c314a76c43a1bcbb3278c9557c25170d05f67f0cd91c13acd34566aac3282ece0a75c81d172def5b865ae94f3f1a436ecd4107a49017219a792c8b080293b68964b4f1c1a3f06a43fcd3eca5d26f91c813df0b23ccea8309bef98f12f1bd10f071ef155706e3a4184fcff6d64446a3ebfe28ae76002edfac45c63ba7978112e4df86759886680a0ec33002bbf643ea3fa229cf6102a08fe7b55168e1aea534aab1169a070d20aad6898f604c22f394a7a969453eead72377534f04b788032d6d63373f9c95ccad56c7b85b4a81b707ac5275435df80eeb857a440187ef34b37cc4343aab1560345bfaf63c480fea486d4bec97f5da6c65b2496fe09b36690c9ec64f94c8a4c41fbb7d546ec29f5772430e00bcb7a5bb5070b6ce13af5cc8348ffac808edb418daf3ef4fb7430d00043c9bd9552413066043455f163374ea4cb2377440afe36b75a4e21535f6c2d2b03391c94e5a35fe0cb8f7a10864b7a8e015f448176c61de487fda78033e360c6f95d18bbef8f5eb6c84461d9fa2f52b8af9e65c4cff16d4ba60907b35e0e06cc1c5aed38818414a5d276a5043096cfc35fde3312a991b152574904148d67939bd9e00d96a7adbe361978c5f4808de1d9c579f4aaef37e5cff8bf426c52e20d675afb8271fd8c290e21aa9a37ba7f4275fb5b77e705e5a5b93357bc4a9c2fb6642e4f3ce2025c71a2bbbe332321c3a43feace5e11b620d605d0c4c0400ca9cfc05b61b8ff26280417dedfc5277b91f157954d79f32fe50bf2b976b424c523dc165a64239e854aecf54f73c37f58c8039f2e3e960ce0df77c19633a7c01c9815979f8e1ae43d562224c7bb88160dbc0c2cf30a8c0656e4bb0bed1d993005a239d5e135e43d8700de8aae866673cb7a47b57206306c77d391763f393f2d7fc4b4aefa038b136d48ad7885ec7c903a64ac07a6e251cf90e2b4f9c40c859c5084e958b4a9ba6d794d501db89c39e265b3795a8449724c57e7531f6adbfc6d38c9cdb8f7412237edf036975e834aa3e5490bd81437d9c38b38be47dad0cfba08a607cf9fee0aeac6db50bc5eb0c701195f71a846eec2a4aa94239805d85a75fb6520537cb5d5daa4a1e9769656721e35255869bbb1faad3e8bb545c4319b640107e0e2887a8dad0706a80ddbff0a14240666726558a7d8b2147a59ad17b33eb1993560fc86591920aedaf577588eb919ed47ea98f1e8fe629047acfbea4970a0a8ff38a79a9493c5783fbd393b7f021e380b03a840a8996f408fa38a11b7ece3f426a21a0ae74213bd07c308b85398f249e5dec0b63ddbacf66ed4c3a015126e31520213267da41d12fd6a20b93f482089cb72d9a3333e1998a4771c4a9a113b82a3556339fbff6abb58bbd9d06844ac8c09ebfa5b27b3fc3f1560971a6928e871e1b4cfb6c647e4047161cb4ff4ca452f5e47d59cdaa52d3b048cc95f623c9a8d1556d2e5ea05c4561a247f7b453caba3cd70798b51adb9402a1343ff3933d002e660a32bafd210906a24e77c082e3d67b6f6302159a829e0a3c51f5d1b43a5e1a0935f0ff36c85db4d29eb18543b6bac6684d5d7428f511e3d3d1ce7fe085ecb5f30413e733447116ef1049c1deebb657d8f39d6a9119ca5ad9277571dd0c0db4bad59c445abbc0db2733cab1436ad5271bb66d7e8803507691e537ee18c5adb6302829efd40df905679aaac52c8f3a205218202441de54e84ead95c0a34fe053498d713b376bf6e0670928e61b857cce6bc1f216943aaa5194aa64fcdb2c791b3599072b2a49a551ad38c00421974118a747464ab3edfa8c4e10c9189b3414577421fd00514a0f36e008196b70e26e7a611ce18fecf41c8261290cad87ee76bd5badf562ecce218fc76024a3a8138bb0485788faf8fc0fbb5479f238fa6bb2895d09bfda4424ea400bf77aecaba2e8ccd89a584452212a06361c9bb531740bfe5105c7c716de0498df17fbe708c4a89b799010fbe9496f607df4b2ab49c879abb6ffef6a9378b21c1ff76a39bc77b5c997711159d75f6a80707a928059a40dd2f0ec2b98a121c938c7d59037136e9c7dc85742f1c86ee1f72a087c9ddc240573a3ee5de0710a2654a6f0350632236abf10dfa9ab5512288a229757cc090b5010c35ca44374dadc212d44df8ae78fdafa64284845737c552b602716a2d9800d394810e75d96d32265f1de4e43a1721ee17e9e39d8bce952ba2b749c78639b3060061e9e0e7d44410347ebf40f1abf7ce3f08a31320326107ed264afd805532f00246f7d9d320c44b16b22cc1b7f2b56dc1e0911d88465901f7e5bb4c735239c76fc670dbe7aa095f513d398ae8284d3dee68aca0b186fae281ba25652e621f06fce14b34419dbd17e0cbb7cc80591ce7d460a5505ab0037ab0ec8bd21087db86e0483092fc58ad0928360d5cdcc4921c22738dd29390541829376e4dfcbd624011a84bc6ad555a8c62bbb82ae1cdc0078c201d91c6302482b743a097de93a39e736d32f20fcb26326497d3d2c1df5513d268d958e5fce06510db990a54534606bf05cecad01fe6f083fc46405c19416fbe0d5a9fbe14ed114258aae74053ff633ab97e461d402b22cdb7ccc75cf7083ccae17b9d51a9f1983bbd7fd9453ebe78dbb01bb5a641516a3892c64e68147280a885c48d44e5ddb0cf7f6fda7b9ec74d9f61c89d8ea6eb850c9087e1d54d931238563b5350d071b00b532d7d3e1731b2a30ffe9348e9111f409f0a4bbd3eabf9ce4a2160d9e8a2e2825b1b31c8d80908461111e8e9079ab72120f23c398978d758698ffc18b1bc058afcde6809573a3e9aacc84cdc8dddc4b7e9bf08eb892f55fca36ce5fb397dd06a872fa3da4f3e4ecf971fd24ae4640ffac8828bc42c33714a550065e6150abe556644b208856d0f3dc5288a539615cf712ba20a225f09f6c24e70fc4f2e7fad7e15f5e58b6351a4e6b90424b7f10233a527df4f24ee867b4aec8ebd525f212788fcdfe6f65c7badd4e938274036a7363108b91fb7a799c02fa4e25754f4d369fdd9350303d8e01d62031c4dbf37b0278cb47de25f150c6304634327f9e9179bc1432b7e41118ba0bd5e87510f49611d5feb9e09a31965254e0026fa75920c13eace5060a671df0e3b3dd81189e1ef1b42a05499a79c9ccc903e2c640af7c7faff47d8a3c1872b1885afaaac5724a6df1d3fc5f798e774eb4d8840af8d7085baa97b4ec729967406ee7fa0f02aeac5864348e0e342d93489877ab13a0c4595977835ea7d38dad12414e230117c8c2b876b2fd1864acf0f04366d4bd926fec1c1dfad60fff1897c1fbff92824310168b901a61fe7a5b4f3dba88d8393bb23640f2e4203f0fc29cdbee1035b78bf0479ed293213801b3d8d7dfa8d26eb3badc930cd8facc30839e239fc70e749229c9400a2f7d789da55780270f5c61a77b418a1471b313008f91d139aeb6c04c305f94def637826361d03c60d750b01df31a678dbc8ded799dd6a3885e0fc81cfbd6c2b78b78e314e1e13aec5d6b54ede4bc4ff99f54b3aaffc67708812df9408d2d5d698b32baff75797c7d08e5c4774383a628c018cdcb2b17fcf81a735b2f9d4fdfbb1f97af915b3d91dd826a109984d5befce2e7b5bcceef8137b43b4565859662cc5e56cf2ad2d6f675f4578c03e279fd9f9a492cb0eebcd30318437ef0868404ab2a2e113e4cb1f36782b1616592159ff230901fb14c4a650c10d8ae40ee359afff28e7b97c347f779cee0bb3dd011aa138ad4f5b0e822a2f393f5a9768c648940c0823c7261bdca8d046430f4c145ee3d5108ef003fa6231a6a7421e7d221cb1c8140a0d8b68351659fb89489cee8d532225533edb11c13394ab63d32d75265c3995b9b44c09e798541c3deb152eb0b34d199a2f8e02d2bc58173269205f314baf5c200e24205518b5909bcb50628a5afb58d360008846e32bbd2edec77f824946b2293760a2c0e5e6ab643d2c7e61cee3c469e27fad46427802ff2006e84e30e0122d70bf76f1af43d988b05e1ac396601af514a8494fa1570789ca9ff4efb453723e1310f1f917e92d37abf50abed361cd762293b1174e73fb6b86701e71211257b13ff2773b089318e8b3413ab222176a07fae5658a350cad61671338b55a835631bab43f8e95eaea3388a303a2938303b0bfdf01706f94d591326207e8a6149544c09a66a2e2a032701606d0b576f1a22af63567217295b14d69912d159f0914a6617845445c94373853eb59152ac04bbb43bcdfc0d01641bb391a02e1c32951ed8cdaa3c8aea978a23c2d4ad262c245208331c9de7da165d8240b22ba09834bdc419dad6b262ad7cf2d55548c525edf3fc592c8c7580f7609f61ad563e2a40b734b8cc03dfb743a7c964f764336c347b6f1423f4b2176cd1d493ae3493e86610d00043a3d2e8551e2b2cae00a477552a41bd7cc222a27ed38bd5ed60b643f915d7d68a76b33487eeae64828fcc2a44020750be3e96ab6b6cc338f6cdff28701f44201b1bd35510942a6b14a8fb767ab179a84f8619f036aeab544ba9e63e0430ca36fd58457f109247d05fbfa0a02f3649902fc0e18cc6737a1b5aa6573738eaaa77b2954ae2b7f85c561ab8812dc0a278c4f39ab1f333aed59d1e3e0951721294e97977dab4cad215c2dd279f9d4706ae47cfb061cdb33570a7e6694e286a9ce642eb0befc0864d6e6561f632f5197b32affacac26bd6b706923070620f90732ea8cb2fac87138872a80099da81e98481ee157f29fa1598a28a5f2931226e0290c92f4bfed19ec85c26540d18118e064fae509e31f8cfb508831129b309ab7c24266f67ef6c440daa5aa2b98aa653ce16ce213b1617672aa5ff95c930fd459946ec83b6b7d5ed71f582db1bd4da36dd245054a4e3bd79e0979297c22b9c2b7dc37bf8901206f672b3410958dc5839a287afa209fd0951846eacf97c3a1bdaa024a474815b4e481898c6a7c16be4025b5ca37537311b95172246d768dfadeecd2b1053e3411324e0d1146c5c04223a4ac4b6f9687481c1276201224eb1b24a9a2ffd71148ac14148649926ef0da05dc31c633319fcab61021204c4c59d08f8f18d7d35bf4ca9d02230007a68b48e58155424c8030d2823b342225ca5f28338f7fde9a9fe39aaa695da1022765d5e96012b0de696ede05941e812680f4b38d077f39c367ee682c8b56d999eb630f60048c48ad34160b07d4e0b0dd36ac7889567e58895101ee1795f4b8c00b9dacd3258db0012e52d76a0d233065c418062fbb227de81d559191982c025d0b5747a1a44769f94fd3e903d7d63ee02c2e5f34215345f5736371318dfcf75a7459983e0a97230dd77c547a7e0e4578fc19f6d0cf55f4e116c60b0eaca9eb6b561bd8a97543bc85b47e9e42a4c7f82e9a5414c14023344a6250682bf99bce4b779a552331ecb8d63ef1aed751777ef8ddc92251754c62b3b055bbd555226f13253645cd4458c8a31d820d8a51060d4eef0bb00c6e49d8efb97a0309b48e1b3ad99da90acf37c937440f36a35e66c0874b5ab962cfaa89dc7530b42a4799688ef15c5a6d87828279ae9255fe822c68c933a16f3a92b82e8b8f3de78c039903a8e3695f95073904a120539cac80777eed147c1ccc61ae8d06dd3ab60b7ac1f94c3d7d0c5d97ada8c23d253a35cd37478e25e9b8b177b4edcd963818f77657a7a952ceb89d6eab7a1d7996cb6e48cc40a7e2ecf3edf78e80b16edd17a4e3190b0dd3b888ff3a3ae1f7f928984f8f723ace5081c3ebfa22a3fd7ab360c154e46f9f0bb129b425a3c1a05f1e98362de8a8144ab5405c396faa978a4e1fb88451f7878d8343a9c46270b7b6079a47150d8acdceffa4dc6095bae292a3749c6e87aef23ace1bb9d03798b6d5e837ed3d593098d30f240afa84f8c4b0128381a29b8e4db98d45a1f109b8900cd6533c710838b532ccbad9d412c89eb1e6b26220e9d04d7027c93954cdd610d5fe89bf854c598863704207ec81830c00f82b8f99c017083de4c8d36fd9de2e6f6f80321bacbf45668a5fb7747967032d9dff764fb199c1dcb129a10d60ee258c232caaf8bba66659a94b3cc53bf4affee4bb7ad49603e36a75dd46bfe435346141e47c4cbd0e359e14b2afc9d9a794c8698f28072eba5784b4e115432e26fa0449607500879171240fd52d7911ac9b4c5f12913b2435cb50b8488a32af59103481088f370bd9072a187a1270a59b827785d26f44d0429b3c5fc71a2a515e5a44a233e64df5218a43c4a78fc8752aee72aa7a7e6ce861c0430d4949603c1118277b1e0dd6b877b5f000ed1f37ee6d1bbdd0ca8d69e6a6038316e16245417eff31556b7f56835b00ef645fa43fd6fee7e0d2ad15605b9fdad86b30bf8a7b0ccc0b84445452264ee7854dbc2cbfdb60a1f4c69370b09dd43c4162ac69173e4433a6bc5526dab704794e4aaa6ccfed7f27dc9c2a2c90d69dcbdf381337e9864563659eac5fd0ce28c27bdde8f5c8593b74fa297df7b19b268352f6704e9de2566bac86dc02cde99827d129743cb43766539ee8a4896988689e4671806d179b3626388f96d7e74ea563c559ea89b44a8ad330bd419152abb642152ee59f859ceb308db63d42273932da1e8320c1112eaf4c8c1910498f4df43f7a9dd15c1aa4f84147e4c289749982b2a159c451d6ca9f389c66ddcb29ab441e39315b4f33fe9a4ea2973eaf2616ab85b1c0f3b926a3f20bac64b5b6d29d779d6010b58577240b392a7dc53718790cda65e6b1153874dede3a19ed9f3d146d3f0e2668063ed567ded73e29bd34b2c86a32808217005fcdc87f7b14f1104c3e5ad710f3d54066144e38f7d0a1d8e4a0dd43b9cba1e393319da604ccc4dcdb8e6d59f3c9ac9c8de075ff02e56dec05447147d1f8d94883db17a881c8566212bba775081f0a0ba90fb44fab085cce45824565d910ed142bf31c68bb6dc8c6725864cff6c5b7c0ad3f6b41b54e8b06b2a32d90e2adf901693787a30c0d941b7fcfffcb8fd4a9401eaf65e4414e4470e0ef2e0bd6b2c2d43c726da441acb9557a4808da386e707119d19ae2e6718a0c2a92345c388cd172357c0104316ca047038b87d163e20fcedf218ec099a805751c40d86966cdcf5294649c9c6e3fd2f86a1017e8e4501f0f343db33004af08cf2df9434bcb3f10341e52a6a5bdecfe20efdd8b9dc1b63b34b9bfc05c5c056ed8b84b43374f1b27b9f6e9d6cd4b811fab8968ac9f5d77f8c505cb9dcc0a063d8412fe0aa039497d148899d4e56c9e89f2a74d212eeeffa338952c4dd3716e2b191f4c8b60caf90a601acf4c7d2c8a5f74f28523fe3e0374d1d3e619455fd664a726294fa617e6b4c903b4cb339c469ffd17fbeda6ce2a9b29e513bf74798896eab76537b966c16a436746b95ce1d6818479b9b13979778e9cbfe9e32ad70ab561e92bdb72eb5ec62644918616f938081fb424b2dba625fa27d7dd823bf25f83ce9302997e0f52080475c1b2a519818c7b205b45e405207ea090f1eee51b78ace5f45c92a54dc00055e7b9a81f75f16fe332f68ffe40faa70c0d3d6507bde3b3d1190942c46a71622cd226dd109c212704fa45770b296afdd1045bf99ad6d37f63388d8471dfbfc036e0604e187dcd4670135436cda8dff5d7e10eff8bb386b59c349577961605081546dcbe4d451bcf7120daa8dc2084bc383fa7346debefdc323c304bbd30876c02180228276c31c0ef02ab2b54e7c0941f3703f297ea961c679285b87e78385f179617e3f70470051199878f99654480f952b940fe4695e2ae31593e2702010c17a3e0e065284a190fbe213dc85fc7e35f0693a3cc0140346dd86a03445e7a02c24ace97d0967a878bba7adcf01edc14372439d87655e173c5bd9665a48f4a72bdff9e26c9fd4a86172735c54e6f76f61ae08c4ebfc2f487b6f267ccd9e11480c47212a51c9b0e623744f1e3ae131339ff47ef7f2fcc2ae4f8eb3f012561576c8b8b742d1d8c75c253309e659fe1eeaf7a0f0d6488d7df9f937ffc3932cd899ff0a2bdd73d21d0b426784e7b154ae002beb85d803188763d5a904a15b092504f43c71a90c6843e8f4a4f0f0f2fd786e0453600647a67f7d099e886ec01bdda64755b8afe71246bcd85a08d4426537d824d7f0ca49ae749162549d265d143a9a866efc2f79024c1c2a28841c1045a8bf4d7c13d16b615766165522c2a7ab7845fa06bce9e354ba5bd0fa6f0ffb0c6aab9d0799637f36e390ebfd2ab8b259b128f0af382d346d5994d7045e6bde011a2f63be0cd59bef101417aa320c034cab33c0c09f8c87b8c292ce147b459a3c1f37b1007ae1ef84bfdfdc34b18ae21939dd6f020e2cf4dcdf41cd75ab3f64dd8e0642e1e2882fc147dc15d006deaaaf4ac097e3c9fb71ecbc2c883487eeb8bf4f8bf2fbd48dad44efea48b3fde48c2bd1801001a610c1cc24438d40c6cd056f9f56d8775aacb56ae3ea89770760937aa87e87b5b56070cddaacb20bc8c2c7ad1bf65a966dfb7035145b047951f44a878fe5fcac634342b872c1491db43eb24733d207ec2c167120e5f8bb7454bc7d22d85577482dd14c877ef8c1fa541544a6e4d292c2fddb589fa1fddb8f0bdeb6c8857d980e0726cd9c13627a360aed12b393dd971603daa72699be7be3666b57b533f744a566202cef91af6eec2231c04fc2e544df377603f0e0949f15b00af25867cead77718ca002c12af2f80639c7211fea30fb5a535d5ddcc6a8ff15158b8428d071672980a8cf77a2f7f7870411d9d02c9e5b00f5cba641b6fa82cf731c5abd5a1d221666885262895d388aa83065b5d6ff6feca36b56283529769ec4d04d8a8c52eff06b1c76c11c93d056cbc307fd81c6f9d306c25183e7dba1525cca4f08a51425a7de677a38d3f4e3a866048fa2b8b99372219279c18e807e554531108b6beb1092927dfe1a0ccc9160bc1e303c0aca3bba897bb8ce010297637a913cc6be3791f8d0fa37f5230348e35f9b43453ffa7c03f430720472f0d774e3cbce424d892ff815628679811ab15b9cffcd0b1e4cc4fea888f81b12c1ea041a7d457c8ffb918342d92abd0fbe1de2d914f8d958892b14b7a26a0878293e8e0603265ad68113eee34364541864baad05c1c4eec3dac96a4c88e88dc278e89bbb1c0399ecd586098c8861651e35fe0d0e4c265d3e58ce20df3c574401e65c1a53fc62a856e854664ed4fb54eeaf4a64f1e7f280206c11944d6cb51ed9e51c7faa84fce8323d295b7c11f62c943b5b2faa25297359da888d22b8d94bdae04d202553f77b2ba45c5d989f645966c3a4f04e05c3b608998fd5f938e52fe34c44ef164c869111d56b034b80821685372477e45f91fccadba33f62b7bfa5a7d25bf1dcecc2a37b96ef9fe2abafa4e84d3b8168da23bc9bb939b15a7ee38c5d15d12459c75f0757e2f9fe3dc5c1ef7753e39fcebfd6bab4355e4330c96d77ca2c1faa147007affec798824166386f75d3a145eb0539491580ba3bdd974b6b7540f58f84b9b63e6377c8959b004d91f9e54caa5423bac39f8fab1838922371fb9b5c99412e60614682d20dc9b48c839bbb2409e28c72de757f93af6332f5cea3e3241e4d44738c11a61a2eb398c0175db15891c2ee920d7624c06e5c4c2b22abd8fa19f729123a436012f3aa07905164b9d08c08c6dcbfc76c16c60233bc061f4e5bf8782168e9aa0833a1003ecd8c509c8ab820189518d989609a9d2e811e9fa0ba71f7fa3e9c35a4d811d2c418054d6f1bf63a58b199a9d0a2c70965f101df486d08a202994be8861098bb00ad3a360a14b75eb38f869e030efd7a7aa47e84246333fb5a19c9df4bf96be9aa922c824543466d457caa514f54b754ffe629120ab12154a3ae7be4ae5a0d7928123931290a914f780a1f6f5ce500cbbbcf0d7f39576e33e4b205042f4cd8ced39669fccb9763a0202c4da05c4fdece1eecac2b1893fb677382bf70f0cb7bb459b5604711173aa13c464e252316514a89fbac89b11c181ebb8825760a5532840d0e0d64bf0f0a25f5a7675681457a026f40044332e91026d0c6ea93483e1ece3aa5804adc3874643c897ebb280b5880fcc0dd11757cc8269491f1a18627faec432d0123e6e184a3eb99235a8657cc068387db86a1640ebf4c1c810f6715d2ca116e143b321f2cd15597447318819208a701325482ea4c8f9751a846365eb64937371d268557f95c60a131318cff8f177aeb121f6cd58d9f6d36057f4025d1b9621b512026517b09fcc167cdce25c6fcb23b5082125b7a620c05aec1a666793e0234ddfe262c48c2838a49c90b05501e6eb1417425cb2c2e7a3078e72e2b86bffe344f3f4d9c9e3a6cd0e9f5b32bdc8bc82832ae1af7c0ea5f878d3fd83e069a98bcac4beb087e55fbf14daf462b3ab229b7ade5d37d90d5b7e0d28abcd0d38585b8695900801a1d75811c2b8e0deecb90e8635a67defea83bfa0570ffbeaf45feac3c7e74349f1022250e932943da0e232789a46f6eddbd3aee5cf4e9122b0bc340b2e070007e5ea365770b29dc29fd82fd8236f8467df09e583e7c65d895e0bffdf193e70891b2ea0370e3b222369b8d99a6e9190fe999f7a5ba41c381b86694aee7b3eae7b4776e371e5fd357b1a8091a1240834e9b0c42e230a7f56565ab4093ac5e22c1eaa970132d0481e3e7e234d330064340c6891fe77010a06d42a3b72b37400cb742afc573971009d7af5a56e8b5aff99154038f9dfe87e5f0dcda1ab3790b04f3c1e6696aaa61801cf24c96fdcbb281c9fe49dc386e66c0cca4eeb5e338a22d3ea4f874d2a1a76a25db64f72e50f482bb594dfa90b884aca9ee83395ce3c566b7a00e166204af2c777b7403efdb4d747d277992b8c841b5ba76fae0294dbf8f65990766ed47f0d23767248effa9da6bf5d52882c0ab668b4de0f5d8c7ad60cbb641c426138bcfbc2b7d444331ec0225a2b09f2e0768651f56fa5c4cc87aa84a586c2f911b267167b3eb5fa2f80092e8348f65144f8a777ca24cfd39f248ec85fd903f3c87be5beaa09e9338f2f98a4ae88e7571cc16b174d7c901da64b9eb9d1a63820dbbdbcff6aed50cf1597117cb8458d825e0ada4de50a9c87f503105df53f9071de20cf54febed9423b557c1aa28f83719d069d3de9b3cc1514d25e0949be0e43f30ba233f050be9f295813e75355862ffa1a37132a3f9dccfef9e14d72b44f6beadd477442f035ef9a0e04c3ba61845f058cfdb91d02e53e07d60ffba6e35667b8ed868a265a1d4d29315d91bdda63d501c8aa36be92a356ea947c2d2a609a3f14097d71be56fe02d44171b01673445a6c9e49a0b060c207659eeefc959127d01fbddf5f268235d1f68d196bbd4cdcc21b9f58df5c7ae4d51e02cc9ef356967a164ef45ba1706395e789653d88908a15c6cc792ad722e179572126cc6d30ddbd30e334895929a1d96082db60dcd4ab8ca06772ab136c256e161b5683be01a68370e430ba4a54b457193b60b85147c1fe1ea52cb1243b8b5459b3198b213b8ea8786891c16377eee96f6a5491c68a3b197183dc0fb9e6f7b3a4d7c108ed029609c0b0bdb8557503bcb93da9205af171196827c0a44cf587994d7e2e85cd76a869cebbe286636ec63da685b4f35c167403c1a1125433e0ec60021735a5e98320a450bb4a155143328b16e7a599754495d324c46a9dc1694423ecc0f15ca51b1d3fe74dc720662340616325f01c5fe2d683a089a1a52b0841aac9012b5856c213e7e4c991a2974a2b7907043b39845ec72fb05af3accfe526270df8fbdb41d39f262656434f939c4bc0eaafc8134cce23061fdcf59951cbb46b860460c7d7c92cdbb2343a9890a8606ab91b1de3b25edb5ab0a45aef9a1dd7995d7ded82a1aa865687de0af4d566aa0aeb0ad3d94854699708be3ed8e22c1846d5becbb11f95249843f7126a7a8cbb04a4c18a685ed0aff2eaa8b1a597619b86622faa8018e4cb2ebfdb7eeb1e9c69c32418b0e565a0a8b581006d54e4006d75e310fb0e0a603bc1129a5d613bfd3383e104a17ad42944515e0c5f4834f7fe88f4645084aaeccc42431854f8ddc0fd501bd963feaa8056553bcaf727a8ad883e635c0b8e5a2c1aee1e779f7bc1ec753790e9a5a33ac61b6c5541a5dc163a1c03b92d817c9afb972008335133f0fa5e6d4398065cf012c111656508f9ef8c0238f163b40f9a8bd089c419a649621676f13e663a6e9af5b7565b27fe2740b8f4f2b13201ffe815c45004be3ec4030e5b20d459710ef5ed14d21368ef89ea4e94f7317ddc35746eacef93df1bf4a7d6ee25694fa073046bf15c94ed7ee3fd70528b712508ba0033e0ee40e50cefe61676c7a61f36c641dca9692051824011841f856e3711c968c996324919380dbc0d540efe81f382267065fa8020495bae8e5d638cddfd6f69f1c51f7077073d83df07822008822008be836076dc82eb640ec32f7416ec867fb5fd54d87d190abb2f7bd8bd8f4bfedd7befaf258c31c6163f8973f694064c26437416cc6af1ad0edfca54980c8569d9c3ec7fda7ef671b67fed7f4190dec37b9cf2917571535580d2f8277685ef2f3b87aff4a226ea2103564ac39789b0311541990c98f8a326ea21c2c497c9809572586631ddd9652c99201982a459e217cb0c881f822fea9002a82943b82b70dadf5b4d8170e334872f045f03e19fdb9aaaacb2e05f5365d3028427988a3edcece012bcf47cb1675f61f097b72c5dd1430ce6efcb60597a0b87e5fd717eef2bcd2ebd2563d5fb39df52597a6bbd39efbc51db733fef90092042c8c1cef6fbfc9f3ea338f193dfce4eb3bf9fe11dd85f8ae6b524933037e9a569ee1a5018d91ebb45dbaa01051156b55818910218d0e007135489023bcd3dc361b6687b6ccfc54ef0ec6cc26cf184f3fe0af30fa3296d620dff89bc6edd4d97c7c503739d8b55b5beecfbe4f7b7c64e0435763ceccaeefb9967671d14b85bd8eca60c3e592a511898bd963b83bb86123f72ab861232ab7e3855893bcce9f74a2821ab716ed1f67c9f49f052e06ef11f52bef530cd7349fbd6445e14a787d986f3ed36dbf8791b8378c6eb85b88d1fcf3ec7e119a6611ad2c6ef389c911ce739cf156dfc48f8162125256d7fecb708dfdaad6dc7d7ee6c3ba762199a56b757d1de1779a50dc08c948f90afe45e3e42ee65a48c846f18865b2c95d61d140877b87a60e775c7ceae717bd5e11bfccf33135394f041d2cde27421b7c1f5f91ebffbedfa7ce90c771b5c1f7fecdf0ed7dfdf6b73d533b0bf778d73d585c48d1db7eed81f7e4c817007896eddd317ef778514bd54ddb74aa46009d54d65f6ceb6ffff3d8eb7beef2b7d699377d43248be27bfef537ddf774594fd5dc1dbdf7705d1feae38dadff77d39ffa755f9fb70beac8e6507ceb7af7127038bafeef5d58dff718f1b1f976f447e997e36d286b391bfe32f99f6507ee97b207ffc1d30d394f16aa955bcc24feaefe1b438ed01c9fd1ec21fffa6374adf83f8258c9f2c8de4cff0f16b42625cc2cf92f16abaf1a3b0f1dab2f18b8dffff53bfff74d9cd2becdb543543e9c5bf51b2df433aa63b60375d75e46dff860fe444b14bc5abfbbf8aacf351569053fcd2758d79b5b919da85129c61fa60aa5a1de878072478efc52079ef3bf9f81350e2f2f77a961efc2bc32ef141f38dc637d331680757c1f12d4c14c537c5ef80f9dd1f1b7c52fc5223d32572157663d8b583afc00741710757c107c17ff055f04ff051332d008a57e0e92a98760049fe0ee027dfd30ef897a9ea7bf1867f99aabeb400e3975cabbe2fc9c77fa37c7ff271a89a013ff937fc4b525b7c6b70da4be4e097348a57e08ef3ca5c053f4c6fcc55f03d70de3b0ba990963c591704eccaff5b6536044a7bb53d9cae2d7bb5bd2b93c5bdc9b0b4d9c4ffc4e24a395d595a2bb3ad51b8b66ccfcf6387f0571923f175d801871d7a3be8d05bc920ac6af71a2e31db0107b237ee8cc30ee088830e3b9cf61549e0cf80b2055be2875597202a4913b5615c5a96204a75f0956333e83eb9615fd685035ef983600b08ba80e00b08c280200a04532018038224c0c10937d05003d9e2f202834ac5a09f49e3dcc1551d9706573dade1c9f68fc15b770757ddeeae6cff1b700ab0253e20c29c34c1aeeccee97a030d76af7647c30d250d35dc90f1cb76394ffb86afc30edeba36074e9a10fe6706ddefd15083affcaf134e1cdc15beff0ef66571d0e2ecb5b8bcc0a052660ce1356b94dbda9eefcdef5a37615526afe3fc816179f397ca4f934e9225d3da810d3e8945db73af9bf2bbf93d298303febe74bd319cae3629a73e7a90847d3fdb1771e71ae5be668d6bb19bf297bff4c9e08083b7f07bafd793c0755998ff9a6f8f276cd86a97b03d0d7ad203abda7dd3a0273fb03e765f7063195a956dcddf4102224a34d98980064d10c1eca3d8d5421072451801921230d9c12c145ac84036041938610823d05972e4a4063458a2085558f128c6f76160685ce383e98a350d4c104efc2b0c0a3ef825f043f04be0db50084c739a4d2bc579378ccd20fe2c8172632c1e63cfd9e29c31c638e77cb18cc6cd39ff06be235f1e4b9073fe72ce4860d92de2bc6f419cdadfcf709c3de77c6dccfe52dc04f83d28fef7a5328ee2989cfac4f7478130e18be8526a194ff2549a4cd3549ec873144517517c114518514489624a146344119511c519519c31e10f5bf9d7f0c127c330fc2f05f3ccc6d9d5efc1fc7d38e7ec3065ce39e79d1b30e2408516591322548802dad2552fb7c3782b4cdf8abfcad8f867e3d529635d285ef963f24bf34da7c78fda57cb870f7384b3c6e9aaa3583cd3552ca1e80cecf2d2af6809858d6b6cf07f9f4f667bddd492a2b607cb9ce9fa809386b12a8a83499f303a98ba3c7728b558ead860c619d8259c7bd8e05f70756d2f4f18cf5805185a644d86d8f8c3f8739a25a0c2ceaedee79d17b4c2cf97a182f8210e36cbbe378657f7af118ffd356fed1eb97aaf11239cab4d0233e0ad55edc15b2b0dee378645f13cedef9c1a955e0757efe3805d34947a34b87aef0cec72c01358f0c0084c8070014c8581113c84184112232002ec3e4b86e8798b4b16d1eecc87e77b01aec22333553c8277f68a31c663907d7b6464adb5b6fc147d8c31a8deb48832979bcd8b4b0d8cb51635933aca7db86d6bbedb912b5c6e6c5afe6603df912f5f714a759967b46d4a65db5e313b8f1e14ff08e4797174f46de03bf2d98e8a6c743b082ce7fdf5ab6d8b3106c006be235f8fcf06be231f005832ae205577c6da20647006bf100cadb522bed65a8cdb16dff0aa8631c618045d3026c796922c735111d26996482793798a600dd74ce0fd81249eca1b042d97eb89f10bce16971718147aba0ae69822a4322efafcc594f7057876e69c7346917067645c3543a3da248dbf1192f7bdfd4f17c0575786abbfda26398d2109270ddec2a90a3578cb53a3ef555fdd4f79b4acde57b12b066b7b0c15d6185b0557efcb70f5c6d8f755192ae4fc77e78d5dc5a9328410907adc6027821db629b524340142248a2a5cc9790ac5d2487e699ade3e0c6fad2aecfb56c57f6a1cabe23f69d5aaf84d9ac6aaf84d8d5a18abe227f5694babe22f69d166ab620ce26cf0695098b3fcbe9c53a3968fd1e2a50e64483e30f9a1031dc06e123c7ab2dced0ad10f60f7ed7df1bec5b9a7e31ee8920a2952e1187453fec0502c95252a8eb6fd71acd91efb6469a2a7898ad3be2ddaf62ded131244cbfb9bd91ef4a469a1c28508e7fad5605029544c4c0ccc8b4b4c4ccb191313738a31993131313ba215f2ba48231402374eb119842dc6b16d9f95c30f14cb5c04c33bc5b246d3b341ce129cd8b169cd61b7edaf227a9e258c59e54f660d9afde2f2d272bebcbcbcbc581953c9c6db1ff83b60f82d988e0f829b7600896a06fffb37fcaff83b60e90df271da03f9b5149d1656faf03f93f9a6d2dfb85f2a85690fe1e337994ca6d34cfd4b4dfe28fadfc8eff8f383e98df2c9b407fff22ffe1bf7311298ee805f7c51fcfb3744500453d6e7690fdff7f7a63dccf8efc7f3bf21354042102d98c5623017986d51c1e902b3b0fb57c0208b0d8ca400064caa80ddd9fe7e061e334c7c171fff574a7bb838bcfafebefbdfef3dcdf87b31fdfeeaf0eafb3e9e7bb804c635c2bfe95a82fb3a883fdfcf3ee8ffa51667ebf91d638c33ce4a7ceb5dbfd730f29773063fe7efeebcefc95d1e40e26fedf7f7b60871fadb9ddd5dc84540a6d7aa1f07b6ffb75d5fc079d021ee6b7dbed781eedcc3f6770ae02db4f0d8be290fe0eb10f777098037882fe09eafcd260ae00de29b777cd76570713a6fcda01c8c7fe7773e6767e773c88fe32ad6f935ffbbaad2e0f4c7396455fdd3ce373b9b76b6d9d9dcb966e772679a9dc99d553b8f3bcfec5cda5966e717edeb7b54b873cccee0cea99dbf9d513b67989d7fc53bfffab2f3bb7d859f7f6dd9d965db97f8f94ffb92f99caeeae72755ad3e86e146c557d576fbfdbdeea4a8a893a34f575f86c59d32d2ef247a93e9a6e0bfca80f1165661e3fc38a758c6c67191eabfb1a9a151cdc8a0312954765c9526fb9ef961f2bfb8e46fc97fe63fe537e537cbfc64fe518bfada9efca176db931fd45fc63ab744449985ac0f5ce08317943ef832f9d69561f6c5175cbd5f0057efc710e56480ab17075f5d52879bc2f8fee04de1134bef207883708238bc8f7f0dde5ac71bbcb55e60d4a0f5a121eef0dda401ee30a580074a9fedf16f7f62aa0adf6e158dbbc334db1e4f6b7075bb4923ef6f7fe90dae5ebb1980830ede0acbed0f9a30581fb8c0072ec82a21fcfe1228f70d764a0dee8ae105ec92f1f7d5fbe77d14e933526e9c71baeaa0c2f716069d03fef06bdc2dc45425745ffc1af7451d54b8c08e9d4f1857fdcae92f04b46d7ff1143b70c34dc141b0fd3f9a7dbdb6ff02ee6a8bb05adb84ed33b0ab94ae628ae21f531745100475f8e4e9fdc11a769d7f82eff23b6039ce6ff91ba777393d98de38bfe55b4ef31d2c7af057f0087c13785a3328bbeac3356538f7981ab53ca8412345d805ce5ac02270e6aa3f38dbfe60cc1f94f97f48fe5f92ffa9fff4e7679300e58f5f8e60f83a949bbcc0dd35c8b47c50afac0dfe38d61004e8e195ce5b42b2ef09db12fac1aafea2789e28faedac3b7bfd62db3f46b368b6c71fd5ac9466e968560daffc67340b46b38a5cf597d12c22aefa979a35b33dfe26cd03f8e5932e344f0decca3fd53c48d8957f8ee661b78011f578186a929979243cf0a0e344bd0e74c3bc0e71a79e02778b1df33c48d857cbfbf3e0c0be5cde9fe706f6f5f2fe3c4beceb7b7f9e23ec2bbf3f8f0decebf4fe3c46d8d7f9fe3c37fbc2efcf5303fb32bd3f0f0dec0b7d7f9e19d897ccfbf328b1af99f7e729c2be60de9f4706f6857a7f9e24f6957a7f1e9b7dc5ac20fb26dbdfa6bff2ec60fbf3e09c85f4fd491cfdc16af47d1a6d6dcf8eb6f647b5e3b3e6e0e88ccf53fe5e5c62f6c5d118169342c1ccc8a0261cedb098140a06475fd88b3692b1603aefa28d6432603adfa2bf9c1a61d39ffa02e736fd495f00dda6d44827b556006bcdbedf8305b3f667bd015a65f6357f865b1879cb1c6d61381a84b9600db13efea0d6716e21b6ffd0132c215be72d1610abf2b0cb878af5b1e2a487e5f4c1c2090ffb10db2cd91221d8fea4f6d9d91eff51fb94b40fcef6f88bdae7667bfc8598982294f3968f14ab0ebd20ca50cd5b3e50ac8a049f1c017ad8e5c3c4ae7ef059b2fdfd8564def231c2aa2edbfe3861eac36bc1c963dbfe5acfc0abfb7f43b650625d9a51622d92bbc43a14cbd40a02300350fe9063a9078618823cdf8b55c630bf168d61996cc66d7b8044e3770921405b91ee0868b338abbd82bbf615f336e7f5e3bcfdf756cddbf79db7d0b7ef53bc75f3f69de72dd5dbf72adefab7ef3d6fcdbc7d6c1f1379cbe6ed631a76b978fbb808bbd4b78f6fd8b57afb18875d690fe7b66ddbc735eb6a61e6630516b2ed6320b6e5d37bbf625d3588537af6b10cbb76de3e9ed997ccdbd2c638d61523c9d515c6a6d996874bba931807914fe69ccda0f2c9affc4cdeb8b33d38c87c120475514e3cdb630699469e19546563d58b6610153c951e77a219743e592ab510e15c4f481bff48ba3c59962f4f9ae53d4d938720304b90697cf254de734a100f35f23e9d9e3c4b7bda93c9b6b85992e36db1d65a5b12654c63cef6e0d77693a449db93e6c97bc97bcabc35836a7e86cba84cfa6e9224cb1666d8c70a9f5e0d3becba71135b986d71ca2e461276cdd08b9144f4e2755e6ba29cd74f5e2a4e1209de165b87ffddd68401dd9e8eb9171a49ea75748f872181f91c8d04f55af7789846c962501e564563aea232bcc22f16cde430499265796a8b712e5292244ffa9ada9a4a52db536666266826e8fefdd2de54153a5451c5ad6643a1bb958b1c3d2020e5d0d99e5c131a912223352044c90125c7111096408184638757bc2a5736763169a4364d9a0357c4b9da29bb33e640f8536d9bb20b433348f5a159831455289824504441878eae0f9ec9343799bfb189a9b9a5d2d5a7c0a437f45d0b283c283d1cb21a72b68768af272db23e21d91efcaaa48d7f26cbc63f748425091b3f9aaeb60918fc5ec79c4ecea86a52245444b6304365668a5a9895178a9436cae1ed55c5c1c3d1c32b9cc381f238da58c8d77472f4909221db8ddb8d253770de9af9197a37a6b789a9a1c9534ce92a56396d0f628f023fc5217bc95a90d91e9b74f5295362d2d5ab54a94957bf728526cde92946122a237bc94e31925c5ccca0fc2f6528547355e8081524a5fa186c78552b224243ca02831631c4f44a2686233110f90a3fcdaf282de65751a8865736bc12ba092d71d224cd3198c93024c1a085bb724cf174f52b59b268e15a3826dae98a89f00ffc034d72ae3ebd1c65e693a34a7f86a35055543fc3499bb4a7c3e570dc70e06ca2cdf6e0a8e13082a328014909d02246a424c90f22342884e8706ee06e3489f26426c52143d1c4a03ff3f867e8a5fac6121d3328e675cc1a79cffc0d72aa70e4bc2553736313a660501fa6ab8582948241d91ecc5cdca439682f781bbff6e1d91e7ca28f3283641e65d6c85bf564aa6cc2f6abd5a33c6c6b8623ac3ac36dc8e633f4708ea128065a0c426298c1d083e10a0c48306499e1882746f6cd5b3114b12afe273f36fe982744e816aa09d95c1552e264c9c69fd3553469a0f64c0a43520d39fb33ea2c1e55658d5903b5513b04596e0837e53d67fec60c4255aa99b76690ea67b82e436db78502c785ce81cb21a373dc6c8feda816cb419443f663e62a8e963d4cc3e43022470c91f349941b4b7c854a6fdc9cd4846a424742366fa91e7f0e9ab7681e7f0e229e23675f321f93ae3ea5ca15eb30e9ea596a6098225639af3491b34de86ad2d536b1d3d1a43024bd2e47f7b871e7ea3865e357f17aafdbf81ff7b98d9fa4295bf4bd2538499c1b37540e5c8e25396ea8ce31cb212407911c4543367ce3865d398cf80abf0341c9698170245a2870e470e8700cd9b00bc7942aa22acd41b39dabeaf637db837f86de0c57dc8571e454b5dbc6afaad9367ed2a7fcb42573ca94364a1fa58d5c3c8ec691c32b9cbac001c5cdae4971e85c06e7aa92b9d0e34e25c3ae93ac68e3186de393ca054e0e8e27bec24faae56e55a6524ba315bd8ce05c6d15b207c86c1501284da60c4ef3269346de3332355ab77bc1433af1d02b1b7f0c4d152a53f494296d94a393a3b3dbab6d82b7f1af28d9c6bfd243a91edae1157e177ac88657f8553d1483845d43b826629070ec681c361a871257f1d3681c371ac70f57f1ab348e99c62144e3407940d164c7bc8583895565d885230b2a936d5cdbab8a166dfc3afa468ebe71c32bfc38fa460eaff0d7e81b3339ecba1125ca948d67721bbf69d240379ae2902539ad931a0e26a0d8603bb129cc70bb3ef8f1e378e22df4f1e3d0794be6f1e388e2ad99c78f23675faac73f43cc5b358f7f062277cdd09bc1665f348ffad5a7fcaf5ee5e657bf62f3ab678979db842dcaad09dbc63f430fbb7210f115fe29a87415ab7cba9e576ed215b54957db03d9c631e9aaeed542e96dfc33168a5c94dbc66f3269a0764d9a83663bd79c1d8d7e41e69842be559f35aa9a19751bff9ab38bedf5d473523bed6c0ffe992a1bbf0c6fe3474f5336fe196ef72465e3c751ecd542b96dfc248c941e61f418050065d6e3939f32468f4e6c0f7e1c6d1d681d7b1b7f4a1bb97894364a1fc6453aeaf00abfd6b287a5e9c8c32bfce40ae54d4a52b150bee8dbebb5f0e96b4933a738723138d7991d14b98d7f66875de39331cac6bfcef0367e72061039da00954420d58c0c1a13822f2e405ffe70cb79baff6277cbdd276dcd7bb7a8afd61696dbf8c79c7dddc7a5bb6f6a6d8fbd32eeb0710634212dce4aded667539106a2dbbe987d6127f69a93ecf5b4a9cdbe69c6cd0097aec331fbc26fb3ef7b147779155ff94f9952a5ca952bfb7a962cfbba167b3db5d8376d21e274ddfe2f759e92f3be679b7d69ecf966db93bf59b6d94411fb8b67fe9ce6f03daa4f50f0cd393dbdf5a535ec3e4f47e7f7d865ebaddd5cb6bbb5a4a3b3348a2b9abf0f04c350144ba5718ce2a4316bdc6d531a57bd144da8abdf97ae0bd8d8f51981924f3a5d4f977349db5fd7d385b8b6fd753d1da8735d4ff7e9743d5dd6dd743d9daea7d395f07f34dbe30f82e0263dbfe8bddbf60fb33ff8edb6ff07e6108b7e72e25c3f23f73bf29698d3b502dbfd33e2ea77f4f97f354cb33d5feadfd167e433b2ef06d375011bbf91aff61de9ece344bd6573f6f57bdb6aa2c045ceb3bbd98db9ea57767fa0e0a2e062f11cedbcb39895b2437d6331e761f1dcc5e2391a2e1ac10bdc48c5d81baf54016d23d29885fcc009c80f6ccf28263f3ba71f0be21c93c6dec864877aec8dbdb1c704b455016dac7dff6328263ffba61f0be263a0ed05ee05d298df8e2315637896aee2711ced1e1fc6da970ee493a49fe0ccdf8fe96a77357eb6f8333cfcc417b41734fb12c72f8d8f4d1aac2da6d6f68cf7eef005edfbfba40c4992a93dc7153544268f332d01bbdb39e474b5bb9f3d22b14bbfa28684ac3da6373bdb6382731d6f76f635bedfab57bb63ed319d81bf74b3e3e1ee75dce19c8aa97d810452212dce3a1393c1b9ebbefd7b415b956b7b5c3f8dabbe73d5a79039e78c730af252b08aab38e015dbffdbb13f50d308a179f00a9a9dc35fcd22346a764e5f74414eb007eec0243bd4e00ebbc4dd09ee364804f35f6d97c1edd52cb2fdd7d515471c155802236ee770d313c6559a1d83cdc3ddeb8b59a466dff445677bfc839c6ba8db1e8ae5af3a8cb87d3fb4af99d80ff97b7ffc9f6cdfbf2b38f1dff5cb57876fb6fdf1cdf2cdae1255107db31ffca8db4e839373ce0bd8d6f684f893a182b7ee27b32df173fe6c4baf5621c60fe7fd35860c571d8a0dfa971361b0f20d7292f9b38e176059aefa876929c9f6f87b09d69c24860c15ee4d75f8663be72b816fb659aec260ab6c6c61c070178dafb04bf4958b2b3aeabe1ce0d0b8ea337ce577e7be0baeba8bd7f9f5fe8c175cfc7d179fc37d9c9fe12f78ebfabdd9f7daec7b6bf6bd34fbaaf61df79dd9b7b4afcc0ef78dd917dc37b5efb72f6adf8bb7dbd7f7b7655f977dfffeb52ff0ef9ff615f3375d55fd82c6c17917bc85f3f7310ece93b79ce1382e521857bd445df5576770aeaced2c5c0c6fad5627c3c59f383f03e7fd5fc049f14984e4a638aeba8b14860339ef0cceb5b5b2705cf0d62a2306164e3f9c54ff8d4d0d8d6a46068d49a1605eaec7aa28d9f7bcefd272ff3cdd37992539de2fdd1741fd69bf8fafcd065bf4d6ce2d35015afb81a1087e5f0ec11014f3dbfc65f3c6c5e60d8b2b8d64b92a35f62c039ac70143170c8660f83370a845518761f8321930fc81a1687b46b2fc7676fc7d9f499a4a7b1d7f0ee64c96ca5ca619d8f9450b2b811430e132a7397c20a8b221289aca130c164f18db933dd9933d4bd17eb6b92486a60c0fc179734e4572bb586b4d3232219859a0c16aa9de5e554c851500fe1c1d5485fda16281f08f31bcc21f9a337c30350de2d91ffc6ee45c7f6a2b2c5901b74212b6357444e9c515966cfc2be4b04b4d622104d6c5aa82851876b1782cccbcf5436321886dfd08b142ce6585dc0a397085dc0a391668b0da4d81b5831d3d71522b096181235d46f0be6c2bd86ccf4fcd5bdfbf70afdccbf612c5711c4f403700c20125017403a05c2b04ad586bd60ad2a2bd8e8070404900e55a2168c55ab35610a01c500e28079403ca01e55ab4d7d1eb28a7979365e3cfe9e520954afa5ed028254b923c5399cfe92be1933e8b57828e6924f44de7341331a992a8d2ba9c2ae8277d163aa691d0b79c662246c7523aa663b1984ac7b42ea70a9a530515932a89612a93676a78bca2196de62bfcb1b3e6cac65fc3abe995e07cf29f244f1c8de4fcac79c8e4bbc08e50544caa2486238b77a55785677b6c50b14b4cb1f1a34533540c93f0a746ba9c633672ae333a168f55c55dfad799291bff8c6e66e7adef49b22ccd1adf9e79999c5bdececc681e6670342a0816859a0215848d51bd9451aa28654b15818a49956a52b79927343b1dfd73e42bfc5303655028542a954aa1d2d5a784eaa16a52542f759b7932450accd3a4334f54e9eaa39e251893b9a3853a888af5a972baa8a30e4a72550b5763b2d58c917e196d94be1371ae306230623eb31e4d36a315fd80119379d30c9a79d3ac91b7a9b50ed7367e514866f17e56f0431bba0d1d11932a8921f853f3a15b4caa2486a0f61735892729ebf66a77504483466347d390d120721a3157f1ab2e3a284bd095a05e501557a94c91cd3488677b8838d71f7d8b712bfdbaaa6dfc2b1a76dd3cfe551176d93c96f90aff2c46936dbc9a2dd938c7629bb5fba1fd0821fed4d42dd424168f354548ba8ce0d0edfa3c7122b27e6aea16ac29c29f1af95373f9a98d3f35f0a7e63fb56fe886df2c5d74281d26dae2f390f7eaa27329b58d9aeda1d91e6ce3882dda3686581b40ac90bd73024a4e2c627233c2567b1b1da4242d829cb0c5c6bf9a1fd8f84d2f3ec4b95a266657b6f8ab65c2c8c60fc30cc34083a1c85b2735091cbf2f7f1af5af650fc3f91c51c84dc19c62f2cc29ac9a12856cb367323215996ca6224a6248baa84c379727d70785410423e62a09ce205e5095a09eb7be29370573777d78de62ed5c35a7b02d5614319f9ab2f19b3dec62f14c46d6f5b302531176fdd04c366f0ddd4c45d8d6d011a92fa5abcf8be9aa86e9fa64baa22e664f959a3dd36de36fd136a6d8d8d988e23674b627e7f2e4a6003b327737051b502c2b8a277be72d1b4eac8adf7cd4e5c95ee2898d3f26ddd9880925d99e15c8b0cb860f76e5440b212cac8af3d92b8b5762f1445ec8e215d9f849166fc8c6efc2e289281dc4ab627bf0c38e6e0a4154581f1c54459a83a3f2fcf5a7b69f60d93e53f3896ed4462e9e3c7f5a5ac85499b591cde7681c91e6ada19b0b615b434758b508bbd4242c8575b1aab03bec62f1f04aec79eb87e6a215b6f5238455c95f7d5c7e555b7e454fb108460c69e387d136ccd84d81b5bb3e43474cd9f8b10d2956cd666ce32fb58d22db83ff45db90d91efc6a1276d928625755d0583cecb201c4ae8458e2c70fcd5b367c5815a7ab8f938ddf255d5526fb8dd8f85bd2154db2f19fe97ada258ea8491bcfb60e78b18ddfe675500faff07f3a08c983b2d81efcacdd4d214809d6c7ea80091bffcada6d6c4a6dcc6ccf10e7fa53d3316ab607bf8eb6382db6f8eb8f928dffa7865dfff87f6c26ae09aa8508912277e9cfd1412e66109806f18a9cab399b9942dca51f3f1983a35d3c293353ea68fd393a75f1a5b6d9af732c065375102fe88aab41484149260d9f3da641bda273356b3ae06dfce691bbf09b4bc45f4d251b3f1943833d458382a179a1b93457460c2df8c5d098eec32c2c6ba37f1725bde2dcce9f12d9621a82faf579a3f10daff2db688cc3ab0cda9a2877a81c024723ce5249220423eeeefbb707a2956dbfd4b32fd45b9efd8ff611f196ccdbff8abc05f3f63f233a6f536fff53f2ddfeedcddbff86d8144ceb27c4b65958d5ff03625b39c95559d1e7030d0b2cfb936d2b54aceb8b7d33fb2adf7ee6d957588455a748b1adcfe6ea1151b6fd0cc5b6be9babfe9f1276e5bfe6dcb69f9958d7875bf3926d3f1b615b9f25df7ed6d9d7f8f633cebe4a6fc5b7df8e08c9f93d1e66f31738b7ead79d6dcdb7ef3785d3a738f645f3f6d51c9b82eaedd1795ffb6ca198100f513c65a8798407a8d4ede62dd5920f00b62b6630144b235992e054bd692ab1d6d99f367261d21710774c6a74c3c2b192c0426265c14afa09c14fec67f61324c6c4e70f6d17850b2d73c3c26117cb871a0b570467b2704058381f2c1c2b092c245616aca49f10fcc47e82fccc7e68db5ff5a7538975ce3eb5914ebf8768a3d11e2c984e9a948484d4dbf1f0b67b0a96aee05cc5b33c4bac5d6c0da650a8a963a2a814a8cb5db15285ca0eca1327a7cad4d2620619e96f29b1d6bb461bdd3c8d36526923990abbf97f93a679d484aab9d127ab489191da110d11b41e91215666dbbf265d775029d3a87d76395c152a53a4e89c346192571e9b8d54b5265d5c4ad91137a1248470424e08e57651c86432d97d21d911b6352484bd796b88e649d8d6101116e7ada122579db0aea118d81c760dd5f06a2714c57aa22f039f5c17b0afcd26400fbb583e6c4762d2153d79d0dbfe77488821da101143454331187a6208d43ab68926db9b78cbf4fe433947615d7324952ab1a6394282f3a278088a6e142db14e01212353628d024245435362edf23a9a48e77b8830f57bb060386fa393d3614247b7c36327b6f3c38e6c27889dd94ed10e11e74ecd070b4ad53c33b002f0c7d13c35b03f492c907f4a87538f32bd3567f8603a3fa8948e8ecea9a3d3c13aa60ea8b3b3b3b3b3b3b3b3b36362e5b820696a6a6a4aac5bb6e6e929742f1522a5a544a445690cd25a7a4b8f38e51477623d85e6e9de8eee9dd2f5d4bd54889496129116a531486be911e92dc5353630313fc36dcaa749a2c9a2265653448dade6889a5b8d1235b81a5dcd1356f5cf353b5114cf1345ff55966b1579a7f3cdb7343435b59a585813ab89d9535513ab29a2c6567344cdad46891a5ccd1335ba9a5be2dd8248323b226315f9325d5943503055a52bcbc769e2380c507f631680c729fd1bb346dea99b12ebd3b6d148507f6a1e52af43dc3ce838f7ccc37c4e121212f1a993ff6319715be2aa1f71fa21286fa7051659b0f4a84c91f233302a94e651e2aa29755f70aea71f3992f34bac4d39e8ccd120280d6502cda14fa03a540a7487f6502bacea2f8a278a22c57c6841c6f66789bd2292581f7f19cda3e4e6ea121c5ee55c7de2aa6e77938a19da0d4d71574ecaa3c46dcc2030083a43692812280db5a134b4086502cda14fa03a540a74875a81f61e45dafe29db0dd724a752a284e347e6feb451ce9fdac885c9c58bed658a17de8b152fbd1726bc20c1c4607858d55f3c4f30329466c96e49b68be2afe2e64132c2faf47878b5c32b9e283c3a9e1c4f131e5c8ce6b9d99e23b6f324b13c4aaceaaffa7699f2d85e70bed8764ee9fa67bab28aa4e68b0d95822fb697295e782f56bcf45e98f082041383e1a1c2c876cecd74515dea12eb9275c4fa98feea1829e2838506c407d3b8fe4eb5d63a69893529f371b3d72fa64d3a2b8f4d343a5d78ed343dce937686e394587fa98d296762c2a43bf138c54e3f9c64a7204eb353d18988140a35f1a966a37994f8e9b3ea4f20f2c9c4842967d26193ce34e950930e65d2a54cbadc89c79553cc5b3e564e3f5439c9bce543e514c4ee34c32e1f2827229e9c8abce5e3e43cd5b6bfea8e269c32c70c32d2f97c6a23fda566d96c4fccf6b88ee96d72164a362b89f5a1663404880f9f24a49d0f1659b0f476e6e1d181f5b9e19ae494d8feb6d4825347df9c9cf2a6c42b4d51ea8d428cb49188b1688c815d8d353cde7c3cc2aafe31d469c499f09fe6a3255e698a526f1462a48d448c45630cc6da781b8f10c1743d73baa27b2df550e9faa83fa5ebce5e4b3dd9a85947ac4fcdf61cc12879c12eb23dfea1f641b23d468a60a16d7f54baeea4d2f57da8d29bae624f97bb62a50a951d94274eac7a9a9aa706b66706d6c7a664d4361b6bbc6f5e07d53c4b5cc5e5f0ca6fde9a347c762ae5b9b9e0345d20a7c9668f2ef48d46f1caa4a35362ed3b585f6bed8b45d280fbd3463a6fa61ac5ab9ba62f4aac2d8f125ff9f3d88e9c6b56cb1db34669ab529b3da361f4bb7a5f46973a46c6fadc3709f1108a79abc5aa304aac7b36d953620d4347e7e4fb3ef83cdbd4d7f660fd6237f1619bf05ec8e28524d5876dc2dbfe2f24bd90c58a5562bdda2d0069a1e7020f17623b2d0069a1b7fd5d88b9c043fd790d7921b5f0430b329bd1f657f7ca63c35add3aaf212fa4eddf82ac851f7602507edac8c59fda28e7b33652dd57e50015014ae2b164b6e715c4be66cef26157feb69d7da4a8086dc8f6180b888c154bea1541b4593e1ca1c5f6c1c2226d1f2bd6878aadb273549a8707d6c7df85e6b1a5359a27a7799ed81eff1dcda3e37162fbe7882aa02234a0a4edff9a798b003d7f05b12d02586161b4d1cec768a39d34258015b6c5538455bdc5633bb189d2d490a1cc0c4ccc28964afd6d1d9dcabb248e31303332a690ac51a1a6cdbe8fcf2f35de25718c81999189414bedbb248e3130a5bedbc4274a13923568ce8e064dda4826c2d29799d131da284d8d74d207d313dc3e5478b4bda23c36bcf27fcd73c32bff1bcd83c32b7f1d9386cd46a53e2a19648cd26b276bdbcf316bd8ec92d1697ad4af3cb6196d5d155f475bbc2a81afb5c52bd55fbd663295faa19db70c45615bd696e9697bee0c57efc7e8155d7fc549b1d618ab0c1ba3c41a67934025d6e96e9558ff7fda284d4f8df5cdfe7472ac8fa86d368e59a3b44d29d6369b44a1c45ab5c95789f5ccfeb491fe531be9e854c42b9bf44ca1c45a667f59c42bac6336b9428935cc265928b17ed9a73672f19f3622c2f91e222ce773cedbe4246f0de93c67615b434f5835865d423cbc2ac2b68498b0366f09e5fc08db1a7a81bd796ba8e6aa12d6450024d8ea7dacf3cd2cc75f8ac02ef0e6d2e32f69221e2791c70e2f36f8e58cb3ca845fd41676b5ba1de8c42bd15bab8dbf1dd83d06a4dbbfaed45df9afeaf833caf4ba4e6d5f251c8a24097a49fcbe9cbf2f67f0f3a74df87b8830f2474d24930123bf87081b4df0cb5b92fa3c472d1361e5939aa8870c58799e1863b7a409bfc52edb62959a8557f74d4db65833d613376ef2964e6232931f0996f86e8cd3352d9d20f8a48fd792a6fc8e929a0809f8e4a7ae0bbc2b165e79f8e593a4b63012bc2e7b572b7857e3f760c1c8371fe32ddaab8aefcf7a95ac055a4b3fa39973f69c73ced792a6324453ac6136a8333996b4b63d4f6a11afb03e77c9ac416e305d35cbe24e9b2c95a25983dc38156d8f5e59fbd6207726f7a7cb0d8a61cba863e797ed3a07abcb3b443fff7357e9122111af263f4d6efb6436ad18d85f2a96a21db7a8730ef5bdd8e66c2aed729734ea2b5f6170e88e8312389258f7ec511321c9f849cc6463006c9f6d41500c0a5fbcf9aa1250770ee07f4f9ef8c9cf0c2a3dd6e193f72c5d15cf92bea6d0cf16cd52e8aa58d2a7abe25b53e867af6a50881ffcb594eaa0eefb2098965f49dbfc256dc1519f684882a3167de5598873cddffbfed215c7cea9b8da276824c6b6fd6fd6319a9c299e7dddf70702443c73503a25e164c4e403538f314565fbdb6c1b532062ea623b73b0fded2909dbdf9e4c3ed8fed6d463fb5bb306dbdf7ad63092385333fbbabd523904249718b3188ffc2fefd7b294bad8ca21dbff924b6cff3b66b1fdef78b4fd6f2908dbffe2ac7172e08fc2958000452442a4b088d8c2c333b1040498bad84424b6bf876191edef600fb6bfe7ac6998a048208ff05392a9c0b2fdb1e37e05796c7f1ca62eb64fc9f6c7998aed8ff309b63ffeb286c1c1146125b0278130452e520b0fc44a6cffec49db3ffb91ed9f33d678675d2271ae2e369d7d5d20f8b0fd5f62f6f5b9d85ea06cffaf85771f08dbfffb707a7fd8fe5f0ead949d9f0615f0af2d3905b158e617edeb7efe9219945d5a78db1fd348ed9bbad85670de5f5d6ca59209a72a71e3fb31b6d24d4d712f2f7fdf87ad1974b23dfe2a2b068c7befbd38b5f3fb15e74b7b0725ce9565656c16769da23f8e2a8a63ba9e282aa6ebabe9cadaabcdbdf0f7f2763e33cc0e4a9ca71306d5e1b3ed7bb2af6f0994c65d27eafed1f67dec97879ab12b064dfd7aaaacea78e52d944c691fbb6357fe2adb726155ff771ffb2adf1f00f665be7f0f0cfb22df9fe7c54ab5afd2fbefd8974e0e8e8b54db57cbbb7cead718a95f5b2ca4de9ffcbe9d42c5ccc02e719f72de25311c4993599e8e8279095d5af4c579dfbb4de89be897e458bac0b9c10ff505d00da646688ab240dfa7f4f9a5366b70c76822243985534be4b43ff7615c84425a9cf50ec1fb50302fe86357cddb57593164cc70e105eca279fb05c02ed5db2771341112f47b3c6ce749d6368d18a9b90b07d5a9dfd12e68683411924b44852f0d08dca56dfcaa203e4a802588ac04484170418c089224c8912045820c09022448ac04580081db38ecc2c961d7ebb04be70ac13e6eb30b840f23b002446c043d206e402401e20810458018020410207c8c206904587cdc7cdc7ce07ce47ce8b0eb268b3f6497c8767dd8f216311916322ab22419cf87cdc7111f457c0cf101c4870f1f3ec8906456886c4436a21b118e28b7056ee3df11db21db31db41db416447d10e233b6a3b8e76d876dcb61062e3df31e42b5da21bc322e9c63c90f465c9798089078e7800e781da13929e80e509569e40e509529e00e5094e9e707b42122c92367e0d246d20b601d906664a906dfc3a723a743a763a783aaae8e8e9b8a2034947161d491688659962e3d741051c7bc8001270493a706011663a7c54008b0e590590b2e0b2189125499623598a6419920548965812b040026ee39f006e02b909e826b02bc26ca5ad456b6d3d5a6dab92f5b62e59716bae082fd8f8d723360552052a02aab90a74046403ba012d715587dd810a19900d4889bb5e537c85b1eb658b218ae789ca3ecc568a1d04a040c00808e820702b826cb38ae083152cac60b162c50a152b52ace4ac30a142b6f137a0010d68405146e2d1367e1b7636f06ce8d9806443161b926cd0e286d80d4437c86e9861974a8a246cfc366011c592a9c3196d7a229a57fdd546403f9c0889a9ca6f613c3c1083a5bfd2e313f510613cc22db6d80286843c5f46ab725a009af4740292cd8064e1b7c4540757f1e380df862136f86003cd8698143a299c48c1440a23a44822c511298a483193c20710761b7f8e5d0e5e8e5eb973750aaf77e585a45f49af24d607bf0e74bf8a3069a4764e5fb6159cab05822c470d7f0e19ce31c3aecfa1ea3e87e2362efd6a8150b240908da6179ddf4613216180abf8497b4d37ad18d839bda1e6d2800481056d1644d2a5e5684c6846d092d08ed08ad086d064341f6e90dcce61178e0ebb7e7783f0b0ebe6346590a1c5e484cd268392d3e9458622198cc85054030d27bbc40f1968435286980ced86704ecc9cf0e1840f4d60d1049626ac3441a5095d134e6cd06c14d9a8d9f8317b399788d988d9208269999dab75924548c8c5c50c3abdcb480214906a34cedb689d5fe9b77955bf662f22af22232f1a90ac8857129b02f9f6359ea725de3279cb2c69b04bf5f85f332824e11876bd6c46df28400a76e0af40b2217243e886d80de1a3089621644590726f0823864832c491218a0c3164082043c48a60918214ecb0ebe6e5054626861758b1dc0b24a0580c26318ec4c0c5a8c5488a8125869518546248890125869318b7184958b18d9f1563c958339edac6ff02e945124f8c878847c6f38367c6238487c653c4c363e3e7f1c1a6403e0ccaac51dae5f7e4173ede61f8997fc3d0fccc172d3e10ad14cdd285329de12a9130fcdd8bde8b232f80bca8bd98bde0bd90f202ca0b272f98bc30e2459217452f86e4f47292f46ce3ff1def7b7fe5913e8bb74caf85b74a2d7b2b36feb762532051a85449864032d4a2f8863afc183368b67108246463a01fae923365d646aab7d14033209a03a9806458086f5dd74bc9fab2ddf46553e53ef7baf77183e56537488f7b233ec91ff9223fe4817cec060b954aa54aa56a3e6513867fa9385fd0305477340a591c08bf8d4621c9d5afd144af9803852890ecd533b269c9dc704d724f745176bc2436fe17139b02f96a8a42167f49514042e1c585b34a8990e4cf5a853095a1c2a97c98b1a28acdf454375512d5115511d5101510958f99a4192ca9546a2773de8fb1f918d30019c6e36e014b9f445fb45da36bde46bfb246210b0a49aee29a14052d7c65ee9714052415a080b45720d90b2975b1cbe66b5e4f5eba5794d7ee35e5c57bf5b04bf56262e37f397911c1ffa2e19cb25a6ef6277f0a958ad9574b4ed7542a954aa580a450282c2db7165c4bae05bcaa32eb981add72b5d1aae5a8a506e3d27438ec4a73d865a3c3ae1a1facdc14c42e919e7db9bcebc64a72a4c8102037053e922e112c34ddc67f693aecbac91ae7899c4246081511ba0915d9974be8848a13294ea03871e28489139b93234d90367e1790b00b4941b120d9cc8c19547e4ccc88a322c6ac51dae693f77c99e124aa439ab7d144403f7c854da0d9f9b2bd94bc6ede8af99a9408c9fdab69cc142d8b501a6ba44b212db3165a4bd109e534e2d49db716598b0f27162796d3ca49e59472e64e2665d1c65f1695424a9abb70fe9e2faf32837218bebc35836e6a4a59f9c326e5718384bf948567d646352a304b1923999047481c592393482ca415920a298584423a216f649230b6f187b15016cec02c60120d0a483bebf0af36b2790b2443218bbb889084298fbb05ace6f1a38054a375de46ffa33aff8ece59e9976d09ee95f39749c367cba4af5b0ace15d4814f8050401d1805dc8153401e5805ec91364032b3c6b85f5e9cc8b9de1c78037160eec3e2a3f2257d3cd0061e018b80434020a00fd0870fe9b322e207fa013f908f9b039201fd009a010901a20111f156f9f8818ab08be65bfe6b962cc1b90b475f9bf4a5c457f86dcca097f46513e25cafeddabcf5f2f8af12276b4a1a17178746d7e8283d0520292029474c0149143044013605d0a4f4a4509122450a14294ea430916284949a9422364a6fe3bfd1bb8174230901b11c9d12d5463434e9cb865737dc4be76a14578d56296ad228ed570e05e76a9dc8ddb871e3c68d2ade3aa3dcb871801b078812254a942851a24479c289dcc62f830c32ec9435fae6714c1aab8d3e2953a2660d1b977fd1a54daec81725aa8d703eeb97ed65a35fb857ee35a35f535ebcd7cda451da32e96b37e47421875dd0b9b0c3ae9ac7ef02cf852ade3a1fbf0b3d17ae78cbf498fcd5369962e377818a4d817cfc2ef8b02e6b0780c5baac7541f60340b22f9777e15846a849fe085ae41cb27108e4d424b6711258945ac06dfc2de0b00be7f1b7906b41875d3a8fbf851dc953da689ddfd1fa6bf4cd936a29078608e30646087e303256cdc070183230d0181817060c1830acca327dbf83f3a836fa8fd1463a298a57f953da28fdab8d7252d9c3705217df0caff2eb1405a3fdfae47fd1f9f12abf8bce37db93bf45679dedc96fa33f1a5ee5afd15f115ee53ff577e46afe93fe6caee637e94f89abf94dfddd4afd2d71353f8dfe54facbe1557ef27bc1ceff1db13ef947fdd56c4ffe925ed5351bb133946fc4dd214e3b508f00124d845ae7bfd38ba9fc84784be6bd35d372baa823b963f3e982ec1f21be1fdbfee7c3b67e689fccbe60defe40f1c5b0c861c159b951f9b14971fdd4f00aab5bd81556b311b6c5e2b98a6d8ed5d14448f2f77818ceeb9cd7c1a290eb23d25c1585b0aa58844529ec4adce195d87355b4c2c74755ff51f4a78664c6ae0ff973d276b3b6b5af4b44247397760f6d1347434736d08b868a868c84b8092143428668eed2bfcada68f5a486e1070c32186236b4b091e46a16a42b3ddbc3bb791c1d4db4f33d4498fa395a86c2d454e77bb060fa551b56ac8f1055b60d2a56e86875a5837a3384b01d169cabcd818d480e9a6cfc301b86dd60b8ef33837e8ec0129ceb8f2880a4d7fa75f47f8e76f1a4aa89d4f47bb06039aff32b2c5901b742122be45808010b3116662c0409a54ba854aa5494a67ada31442302400020001316002028140c07c5e2f140d053e10714800d79a05c58502308b3240c741432861843882100000066444866a6090080a80ae005ada8063790e3ef938fa72a7b25d10b4841c4a076ff7f9eaac0855cdb8c6e2261d1c814507a15fa9901a9139e05252aedce0e1495fe189fe4a6d87b45d373933bbdbfd800a18dfc55d3a18b04bacf7ef038650ca315d5f8849e4a4e5908b57d1c2ba1f76b5d4f5015cbf599704c4cb821b79473e18b1282441d95aad788ff4c2a585a2fb64df1585e2cd4917a3bfdfd112c44925c838731371dc4b9f3d62b5ac2f704615ca08460475eb0a5d6bd12602f30d6101b0e0cff54a8d5ab265137cef139cd7daadc66b931054a7b505c834c15e837c2c94c9682a69b097c286df453351a46e7eba262682ab3bf03c01e4723fb087c2c43ccdc5d4d4b3f8e4be80dec3f910246a0179666643a241e48e7ea6dc088c362f467e3849831a8a604378fdc0b43e81cd3e309016dbfe1ca0c8c8ec901bb7122ecc7217d8c3043c6180e6ddbaf3d395ff5ff25cb53f678eca1b3c32f0965f1bef198c5b071e16b97f157914f617435db3dfde9146b4ee063ab78352dfc152c88e07e30f878b6c0c20b1706b01856ada74343a4329e090ea45da803e3c8cf4a4c14a55b65b503788e1253704c22919677523d4f134c1a680267156543657b071ab02016733f941f22f5ee440861a1752f4f1581700122784797c7aab633d6f202381bf73bdd31562b4b2df3e019b050b9ee0080d1542c1a580497d2345674d8917f87b93cfaaabfdadf01ffd831ecd9b2f153c6f25ef352d484493c0c7a1d397f1613f24aca88b4f45a40f7998868b080e019aab671d351649f2c9e6b5e5d543e89783a3bbf7107c568c7be16b3e360d5dbc2579e22f22ad3ae2c952ff0cb0e1a075efc75c76fc1417bd42ae6fa9c68479f69758dec3691afef22e34696f7f525b7f4e800267bf4c2d4b5f1b082d5fe2b60d25df433c101f2ef35a64032ae642cd126e767aaba076fb48b3fe6cb1fcac77462690014157a88f012d878f0c4dc200015fd13509b2e671620b351e07ade541da3e52e43223fad7cc131144d25671c149e855f870df711b3500b1ace0c99aec27f3e4cc506fa522316bf46eceff03cc1e6114186869b09def2aa6a3c6e612e35fed8fd4473a3fbe46c0ab24a5104068de681f3c55154da49fad5b9cf76e9122a386834c703b1dda370af5b0ac25fb69cd737b7b034c7fcc98b069a083008fd48cac2c9c825e1b362afa95961d35c93666d6cd0c354324645afe39b985caac78b7a072513682cec178e0dfc6c8a1e90c9ec4f6cea2811f43a61be8ed5a1ba9cd2b164c53dbf0782a1dbbf35c2ed58087541c009b840a6f0267b17f9ae501a212ee9645695e4ad950b73ca834b3c4a08c9aa572570ad3ddfe9f58c037e2f769b5ba7a9422d5d53a8471ba006ab7e41152513503d221b2485d8147fcc9026201b7599324a666eb5f237dec11cf8463249285246cea3937521afb354f7fa8757cc0ad16298b286ccbc510e937c27aeeb2611338caf810eb550fc824866b4e6faaa88900ded9949103ff15d91ab5b584151a53bab84e1accfd639110d9d933558b14f430d30992bf7a63d0232c169d473a635f1fe85816ee7310db9865f9c5d95abd288f4df6a9b8e3c045c0521136deaf998b87f7e6bdd1ec97a04f0b6bce611dcb70efe30880ba2d9bb91dfd913bf8a42d584eae854fcd408f3623294a6ae2f044d3be8933b9d392a7d93a441202a10d47800066603a31a08942fd51ca0300f766e76f15cb2b2cc6e275f9f8ddb1c82c01e93a63360680788d3e347b02fc4992e11b2ac8227e936df4041d7437f2e8eb60f0d3447b76a0a43ea05b474e10d7b502acdfb8b93ee180ee164b1675e44d14547dfd0a13b11dcaa462e08ae49da64671dc9ebc08e5efc17d5bc1af9fce9e00e5aa1d791bd2787987b1b32574f903c4fea95afefa5e0738698c59709588417039041a23a7824d80a62bd2a719a329bf4c3fb9feab81549868cade5656a4942bc8df0d912979acd99631156ab6c7b457c4c0294366007eae8d1a5cccab6276f8ec7351bbad0ab0c9e092b6661e7e712891c58491ca2b17354b36486383894437504065df621b2c834e9b2a290e31d7efca14fca1d5942df2f64ceb2dfc48ffc68a74d31d41a899c16f92675dcfdc409c013817d441c0b8ae5c02654fe755405f0c3d35a8ef5609265220baac205d723984ea6a4dbc4385be6f092a1f40cbf7a887c78879167aa193ac0fa1855a1f5d821dcce61fb18ec422baad4184246e3ba54c702ac6a117c00a077c65b4ebc172c5bfe1a19a76cf0cf3c87594450ec94f95eb3b7853e49c6cad42883ec9488786e4a3cfb979d91c0ec54146360b7191ee174262b6fc0ab77e77f84776684efa53ea886bb24df183c135aea2a4d0bdf6816ec24f0b048781a2d88302963c2713f7f9f42cb5f86db3ad6984f401c252841dd883da3c6fa77f9b6857ba9d0e1d7a2e5cc0b75bbba06e8cf98454813f85bc2a70e9315cde3c759cee1396a68ac8c780ed6703611f18c960d633d67e3184fef645a224fcd71a30812ce513537f6d25c73781bc6cd36a8213ee8e8e0981bdf0c3ac40b480000bd3f8a3e6c85b627a9eb70cd48a9331e647b5dd35059f1b81d0b4433af73a4863b9a1bc7e57eaeadad21f6ae9774e4372ce5ceb7c3aee7c16bea65267f73b0db8c84ccd423f3eaae54496cbd88e4f76b10af0eb48601d8173b830ae60640bcaa6f9331b19dd296c86a9891b6574500d36e816173598bf218e356eb7e59239a325e5cce79bfac66e803efb1aad6cc086f92955076c5d1627b5268b72293be456a672f5288859281fe26ece76045de292ca9e3c108af8da9d68015c9bd52dbf45f6da96af5255b5a37f956d35f63ba0577765f2d85059db0fd1a8f2394d9ff2791d7cfb4284ba584fd9581b51a628269a5d58da2fae68eafeefa272ef7a59d7f45d0f2d6f8cf337af748e47a311965c952b13c67b0b2d6cc2bac94a9eb30a1cba6cc96978ee3a995e481e7613c0512879e418193fc41a8c9cd736356e15aacc89704d70a0c41cd88350a1366cb58a38e75caa4f7c136fa4d5bc9d488ba381559316c08beb548ce7c072e82803675b2b1bec9e471e9d3184523f669b09f4286569604df6ea0338149ed24970a87b71b7b4a3d6b8866059e68fe05a868bce564ef2eb1fa12ee5efddcd374a501ccbfb912854aa4f5f4f1dea0c053829c48971c5b6c780e25a4fdcf822d6c28f70c14e92d3b79ff5bb5b54b65e13bc2ee3c081ea8af43bb896813ee32f2e2c822b731a156025bace8684a968ae5398395b526f34223a4a0c882c3580131e78a7bb80e200fe775c9b9eeb8c11fab851229cef3bed78a036c89e14571a74f07935a18cd5a2397052b733976de38b91c5cc1a177606594259bac928e8e60ce407e288530539a69e4a97aba07fbf687a6b78e42d30092b8c2357634045389052f534e6f00833e8c9f0daaad9131892329b7dc4b721c2745e8ac445ef8474f447777a48278b1ee9ddc09adc6c63e6eb007cb4930ba43f11949b8cc6b854065882ea900dd89c3b5edca55eab252637b657475b61e3fb1546bf84347afbba82877da7d2a7aa56e22f8128411e9b89e60fe4feff6d67612a6c96655421d36b774efa6329c8d63fc4c52abb03cd504e0357037d638e17531ea0dbb665c87cb0ece07cb4aa9aee16c18a2eb01a07d9c1146db94df6db8cd899378325b974d50bfc73ef46dd5ce1b1515158816e4a4e62ca6ad74c0f5d81e9a78e5ad6eabac84ed975842a307de9649e16f692218bd34e8399ce2ff45fd471b7b64ee635085f6b29b07b9259465efd229e97bef8a25ef954cb234ffe486da0249de58dfe20b19543ea661cfcb62f180a92541d02c4c4e0bc00a6db1677212caca922f5185e0b6e275cb07ea806223a254c7f2f86df071743b20245a68748cb15c83e65d57090cab9aa35b71a22c79570a88316e892c577799a4af256ab1cc4d34408cd8da89cb300c9adb524e076806d172e1d30e9a1f8a6de80798cae93fb4a7f60552e0066e14e320261b6ecf0d874e2d8f2a486caf02c1b63f53fcae0542acc7a65a14764a48bd666aa09a3058933bb8effee31b588847e2b256fbf62813d7284e5d2e4cddda3f8733f6451032dc59ff6957cc9ea7658137ec8e78a5f52a9f9ab5756b6a1d8a3caab0dbccdb2941afddd11ccdc4e0a5336f488308f91874141b4e5179f2a22ad6bb0bb93cd81b82af49ef95b1e6046be9e8805827b3fc20c1378a378facd27d2889634095d848ee3dfaab62aacbe3acd4916b70d06b2f2ea6e45217fa4974a8a0d7bed1c59842b4ba9985d5d5994514df4f3c5500c0106e09975473596abb01fc2c9850bfdb40e1983d7bc67a18150099eb71a175b22e6e46d1e2d77177aeb814f6b08f19f2d050ae0506e670c5d3c7ae190d34733fcaed73a912901648ad901a34218caf7d243e43d1a8c093750ba43de72a7c29f7df93681665e413fac18e93679548b18c814b01c7dc5326f78a94f49b51c529614a063a3efb4a903090ee3d5ce35c5106351e3d8024cd299321520da5c092a155c9059f558eb677d66b1971de0cb9ed904786e06d0652a184b9abaa91a5a1334873d5de07e578a55afcbc0abe292d799d51a5277a401ddd8d8c1cb97f81685e9ec322f7a3a0b72b661f2b4689dea30ccccea97406486d9091063b1fc835e264ec3154b513e899956367c80de159c2067046f7ee7f7259e19a3f3800c4ce0e7a96d414202d3a73429543431dee9c8e7e04ac4b30071453f73b4c2db506d11b4a9fcf35fb040ce8442315d5a782516b429962733228def004ab3fddc54d03bdd5771a776b229a014acaffdf654b8fd792657ad6655eba672bc4ae66a1d33995903e85b9186bc6c1a993df9e5db195d607559e001449bd65458fc4c180895f6da3e49c47434380745776e516a383de927bc6bb3a313e507e7a9e5e0703ad7fbc30db5c1c899ba3120ad78284f7304167e4f0875705d3039020658c01803f7ee42763d3ab3785e9304bb41ba83643aebdd9a76649e4eff6391b365ba385d3d05bdd5954a0791943c35f2a9ba6c9190e0f42eb75668953451944528cf09454426534ab98b25692feca94c36234b364e9bbdcb5fd53a476e2c97314981e3090751677a4292d618dc6377845503c774d2b871a821a5d9037fc4f8c6fd742be43039dc5a9ac174275c86350afcdeff39b538e04b599621b7400b7ed4705a3443f66b49706d6d69085aced2311c49c1c7e0c5abea27fda3866fbf37d2687feb923b9645a1303f8aa3b902efb7037df88667a1007ae6ee369c893239eb9f1ccc5d3f2c24bc902baea8a8efe7b9df3fef92f031381e9d5a0b995ae9cb4cc9ab929f743d6faf44f227ae86d8d16b20de9c50f613294e219b7f9bd7bdd3374f4da678e1b5c554d6c40fefbb6f4993d36818b557e57bc353168e2bbc295d70c12b0bcab8cac24d799088303df4e74131393fcbfbd73a3af04f4aeab0f4f37fd75603d4fdc4189591c32ab465bea432782aa0557f5547a6ebfb9a754aac270971aad0c786a605fc7d6d3e50f032df10ee8173131d132452675ffdb586c5e4efc62e912ea2cbd80fe3638046f1fcf2526ba361d447769fcb762de6d1cdff67dca5a33e61adb73364b3a33d665adea016ad3f156d50a1ec2590d9b15dff21b47ded97032c52efa6a33c923f9443a41238e16c2ee24244df1e69c2e3325ebd05a0c66d5d0d2d8a8d61d28655ab5fbd938235e1d9c1c846e36eb865ec9a3d69af23e9e404f89e7be3f967b454fc18f46e3a552da9777032e5cdf537984cd0c913b9822875ab088c0ac04ab72e5d34a744623025963b3d26a4818e90ede0aa75ae3c0552e0489dc1fc56283b4d8de73c3b0e844d74b07354955d1f5e8f77249c99ded81b429cf28f1ef57efbee34d58b1628478d0f022fce822dd27c2ab49fec9e01f8ef27815bc2e80cacab3d65b0818d222cb7d2e37afd8b8867be73aa3657340db7f03c847eff958a3d12038c41d2f5d7f063ba98632f8fa8c23e61335ae0e577d30b7d117d55f8996c54ca0e62708a991100bfc99709526350c42263914979160fed9dce69163ebb8a97a3e7c0960f62548c8ed8f2f4f878a9f917c311f88b3f812bfcf1cc82398ac15410752336efad46f3c23c5242ea1efe64d161fe71c3a333cd92e73464a2d4bb7cb42d9aefaa368e9a30865917756a826e3f79548de43e019507f233acc9ef3fe83e702713a85ac97ff41730c79e499ab5f2f2e663db99afa649a2eb52e552b5d523857a799b67e072167a9f9f156019d4dd0c81c24cc6335f68e8dc4716080587d64d764be27c958266289e220572e5774c0be688375ee12569ccfab52f92aba117a4d69243e9e010e3d1cd86c1556f1ce435c5b25f4421056ea114d049818d67272403d189042871d99d282d491b50e53aa2d41595b2ba7c2d27f76837211f76a6dbd53cdd7f12dbfe5645ed7e0a2aa6df7eedc7e3ee7d766ff35df146b73cbffd482fefd2bdbd1da0248abca963ed888c8e9a09246a5066039f00330c6a53d2665fe2468e88aba9971cbbe866ce436e9283654aa93208bd382a62b3c84da587877c735e38731d21ec99ba3ba8cdd45f541cc358c495dfd941c475cde0ff6f4f34ad95691c9899f0ee9c4dbf5658d23656d6b1e9ec08d58c95ad6b312abf7e374d34be9d1738531729c69973b06683e28204e4056d894847586d39b0c2bcb76a4f74c8085e191be1f1838079da016f6d58a535c6fe00bba76fe914213593af69bd155f05ddfa90640d7d9c7ea78e49185e6022a7b35f9eee3418e7b5ffdfb67f30924e3ae437a970de37c169b24d16d25815731cdf915dc74c4e441d92941c9a761a4c490a9ad3e74d5957a0d6250ed2a0fbc896612731bd87558b5d3b41bc8dc9a8608906c3d34ea49f537b150ee67299a7b42e2d6f066b18d5502bc6165adc73aaa44da3bf16d82f083a1f18e8b64970c80dcac6ca03e30ee0769fbca3c29abb68d2164a1b09d536091f44aad67f40f202bd95f52d0ebe0eab40fe25689ff5cbbc6da9ee1afce7d06e0073e96642ff61d4f1cabd15896870a4054356b73c245f638158165879c90d41b1c30e6a60ca843aadb17ecedf184c7a07cdc1503c0758342d2d08763144ffb2f7f9ba3eb7b1e1eef2f06ecf5ab199ac06b062009703fa494d2295e0d6ed42a5b5d7b79a07490db691743b11418b4adde28ecb9f368293506c0bfab3b1f6be767ac7d1813dc4aecd512cceadbedf7acd321409eff13ede58dd85b4bbee12bbdfdcaeb509e5b0945a1cd1e57547186ab541664d5925ac676bcee7bc3403238f058d9cc5cf2de8255f4134e03fbc4cc05e12cca892413a101b3ba34ed726268727a322a087a46cdb654865b0c64ac11e9648e56450c5b855c6c3ae694fa75ae14370b2370a62a1dff230716dfcc8079ba0c468f42626cc7e02144e334825c79d7dafedd8826a7ba74a320f0e149f30aee5e1bcb6d52a932a93772da518909dd76749d94f3ac54f26fe39e38f8b219c201ed2c2613969dde70c6ebde2f0e3aec35fc9b71ab682a45601c7920b44a10c9523afd008849ce1973c539491de348bad6775fe98079180bb23be391e676ed421e645438532422bf2359a7564063f843afa224ea4cfa8395671bd386e20674a44f41259c02aa10554028d560f146281216f818ca6c8cccf998075c1b55278e24fb1b8719affdcffd25f5b9e802c43ef00fdd36a4506a72d0f9d0918c3dd35705a65ef93b69b6bce7535defc86122ad9fc81fe8db7ca6e27897f04bd923603e0c52ce2f399d8fe8c295892a53ab1baa407184cd4995a1a00fde350c110a4032b862c5ba8203fe5a1cf495877195c4fd2c7a3b96ad71a92370ef75b83331cd4b70295ff39dd257a8e0bf7cf32d08a6c19522291a5c66b3a2cadbee2e3f597ae9cbfbd9ec97a5804c13c210fd590ca8699d45d10b0aa58c4319bd2572c4e2f70555785b83d779009e243264a6c60f0cd329f68bba19b3c8d53cf1059404a978dc740948206b905990ba163993a8bb2718c3939206903e165a88cb57d88d64366207be9aded0a800d23b71bee733041f26ff1be2d88839f61610c3304dc1f71dfc364f77db9d12da4047ece4d503463641964e17b319fbec325987c9686eb31d4469137b7d13f78e3d40f7115ffeeef02172cf2034eca62bcb6761184d8c50b591195678998bc5b456473435cbc50c1d09245076efd008c3010d24e72196a263f8736255455cb7f5025605f8b376823939bf421e27cbc017f8c598260d9c407e2c469d088f7b425fc9ff3207b1692b627494af959cc7187c6901fd1b15c30d7b59af8c409466514f0a3050acf811d18dec2265e40c66403e31663576e2687db1d5b591185c2558956b8cf896083a7432d9c85e7150a222dd4f6aa7a525f7c8048d1d77f4bb3936b7daa0e5bcde0a0ed7fecc641c1ad75f8bdf991bf9b1b456a5a99f6b413766a79117998c37dff81e43b3dbfc329e78fc50f240772cf78ad21d101ae3fc3e4dba1c55604601b9fcd27604a0b9cc7e2d1951b6301eeb58e4ddc27309d6a6dc9f153e18fbc7d2d75aaeaa9f5745fe20dfb761a25f3e34bc5c85fd6407e4194dc5d6733c2432bfffb2dbfc5c0b722fe04dd31d232e5fbeb720f1e8b6ab6471daf3f0c9fbdc1c29db3234f890518cb06b4fff3c8c0ec841dbddb866e140662d39896b5135852e00f5764022734daeff0582ec1e7bdb60b9e5ad39417886c0a817c6ab2eca5ebcc7c477a2e480afe999de22b37316dabcae6fe4bb2907b8013ecf848db801df53a5ef3130345293cc0c40ede94dc5553a314cf863d5de369330706e65e45dfd6ad2e1d880f45b8e971a335ec9777979cb3857044a240a190eb3595c78e2ce80c81095bd2e88c432ea6cfb074f8cb2cac692b272c7b5fa5fb8d0cd6a6f65edba713e11df41ef78803f09f54263cfb77aeba48c7414bb77d1a07faae9014bd7a2b01130b652e9689f2b0b803b152e0b664e1c926be77d1227461125aee5ee8773ca448c78c620d33f6cc4de389180e48ee548a05836636a028d517c2fba661a2eb4d5e7b7cfe5dedec59ab33b08fd88a12b7ff1ddc2e6d7c6fb06c7394115819d6d430b5f6245890bb69b0a954ca58a5ad07099973042977ab821907f0a50447616271cc879cf70bc4ad13bad694deb52c7e0a11b9c1cae7776701b42a58152a0f16ac8292f4265e358aa5cda432dd236cf34c40a62467bff5b0002a60fea286b41c190d5e0ed15a6cac7180bec1359ebe8fb78cde3d7d77792f4979b5f1184b844f6b68b1a3521f09b1c9102f41046f2123eedf2be94678a085a3736e29c429d11c7a0431c15a9dbf67a9317f72a4f9bf4691c7682412a090ba91116539a46d85d021f599586675fbab9e77db20810590684a7047139f433a71384a8200c8b2823df5559c82f01e2884373dee7192747414866fccad9105ee114e28e478dcc4f8ea974017ddea413d71840eddfd090acbd7269e5aecfdda2abe21030edada580b13f3f7d86fea8ec160454454e51c9cd65cde014625bd84d77386d063c59a6f822d3625d4566feea401f5c5ccb64a613ee489fb2674a3187345ca0c11925bbae48052216869e460ec18fb65091eb0994bbad82a358aa38cfd52b7d3d6388eafd6025ac0e3416bcefe9b6935c681f57ea558f0118f9261ecf3f445e2cd0c56be0c7e48b980bf85425e87fe22a704f5c1ebeb586635704a82dffa314ddb1d6d29c07227416486284d42c42af53e3a7a2e38b4d5ff1433362b15f053b9b0ae37bc7e2e4f113debe4e3ed2333b32a58035001843ffd9dcc43f28228068695b53f1d9f9d850c72079ef0274f0d9cc4b2babd011fff8969c0718345b959483b2e6b1c4df8eb7e52daffc65aa6e3e80f4ed9fb2f135a1d51be649b6dca2766148d11a9f21fbfb3ab7f53f0e27b66a99d9a6ff4bb93cb10c4e88e8dae276a0bbc69d4e10b5641d313ed139f9970af8321d05405490eabe5cfb274f538d6e303149c7fe1689ceff8684dece109d9fa1f661cb2657f24e986fda21d03cacf710724bda32df8eb75bd051e23da6911c126919320185bed2c4e2064aed29c72256882699bc364cc79bce5d9d363988674e6bcc892a7b328c5c99f61093d3a6a30d74810480052501279917701109228e0cd6a199527859dc6b7a4a3f24c5190d39918436c7548e106060efbbb0085cbbd8654fdeadd1a48956bb3ae2c9f656534739b10e857d2758773e5a69c27575b7da0c759eb0d48654a5ab6721074548c3ff004268b391ddfd47cd6f7a1a981c9ebfde7bd7f5feeeb7be402009a1678bd5aa3cea753bbac6278e0eef1bc934fb796c2707239e300a9dfba9bbd6f790c02c50b2f2ec8cc3f24fa0af65cfd3aa4e7f169284554498af257b187f15d76a0f4f478318ca0b30a30522ab2a4211b5baa2f73d4f908a7b802f2b1585449c3afd97234d339a778fccb9bce13dce3bf859294e4434fa039101944347ce31e89c7ed5d1df41275afd29262cbe4ae5bac7148c70561b9757a3ee7afc97a768007406c6972506dc24b8f51032ad81e523f2091b1e9778354e4b8058cdeb737441b0ce6afdd7c77c415d9628ce9783403c2e284ac0a57049ef1c7045094cdf7cae2d78e57d873238e7e0ac1fb0ba24ed27c01dc0f7cf4feaf8e94d37189ef2ecdd86d5c3a1ca3cd4016be18c8cb11f4a859f95c21309587210910b1cc39f6674a47749c5f877ed575e326baf4c9f82af0e02f7d83bded2a5b81803b320ff02ffa119b89b160191f6714c1429e524a0ad0192e7d41843ebdaa51c0f03f9981163f3867527b737c998cbc0f4d648d3a6cdd531e3b916c626f03f8f453b534680cbda1929547d084041f83f08da9ce34c193a1caf3fb92b7e93807a721840f14c7486aa8aa5826b4697c44e75a873377280c45191febe323c45f23e62c665075d0e0dae94c4670086f43f81cf5db6c2c57c19df78032412754a93f819da9c84992edf3c0468dd18038a12e7e474eb98fdb6a59c332094e59c210a5a305dbd70481d5ca1f5028521b45db3e09bc829f5660ba595bf2993003ec83e29da9ed80997955a73d2b5e8472c7e9c29b3653b6e74ddc357ed6426fb8a147f9be09ee58666fc975ea32d5a6b4bcef19c13ca59ddbb746d905b7f0bca0bc992d34a047c4bba504499a65a46f3502d4df57a3e41402ffcb671b1ba6cd9c4454ef010580306da4e3daa2d4612233edbb56b190218d96a5371b974a4d734f62617afc70f014969d9d962ed0f74584cd7b847c6d732a580f7f30e16a5389ba59d4e8a7835a83b55b042077cb1e16b91dec0d64423476830c7ee487a5c0d8a2496b6e58c2789cb75968228e9ea106449b2237539d96a54c78fcd897e37c096f449d01ce0607e983e8027504fd1f745e12dcc61e7ef69ca004ab71ac474d9723ee856fb6bd436acbd31882afa386ecf14112c7fd9a3d92cd7be0c492cd7ddeab975355cae7d7432f09710e02af336c660048d08aba3fe8d85eae3bf3dc3d68efd76ea85ed2cedfc942b39d026091cc58f879a729c4dd6a07280091f80d80976966bd5a4c87b7260c2c34c7d65c442f1efbc6672e3c625257f581a435c8f901f8215281c20622aa29020e6c7214e5220439dd582a7071da0835d89598c6e9587cee4071f1577fa1454c001bf5081eafba184e59031cfe496e8bc06829905ecea5111e1389105b81b7b41ac1cfccabd607931c8cd59e79913805719dc31fe624d7eb2867b3d179cea8e2e7b3a39746fd65ce266d226f49390ef6479984c73f6481ec5140220fd2c13e6fae9b54773f15b01298ac4b1175cc24c850ad9aaa07b6a7b7f0ced4e9b9ac0d6219daa2d5b4615d142dedf13c1d4525be3efb1b3b049cd8081585bfd2e4627cc5476503c348d0b44a06ec44d5533669d8929d90aabfc8d503479161cd20bc805edb2ec400227c91fb2d5c20d00462c8eee81fc71a11cff26b4fe9b56a7d3679006cb83af625246f442f31ff4541a05bc2d2e66a7cf6a598eb6defcc3180bd5481be42c732f68163a327002b823d719964d5e9265ab4b7105b2e0ad0073d5c8881581fc3b0bbcb23f8d49de348b5d4c38a8f71d44d2272c91ed3c6e05d21fd0ba48efd5435e6e534ae06a4c73e0bef41b7b6431f3eb48aec5cf483f9844d8a53a39bdee255968434ae42d4c3888fb268ff432121643dc22b2af2bd5c283b8132befe03a1dbe4eee0bf3543d826c4f01c911f6be112b7f8f5467d5f4a97a86a1416a3afb01db018eaea013b8ebf9c67b8e7e3ff5396c16e38a450f3c437fced4ea7cadafb532c8259e841955a31c7fd624b3b42879f3e21ab941d4d886d51cc5bfc89434d5e5a4c68cafbf1547e3abad92b2a8f6b1d1ae1e785e0d71a9e4a59bf4899acc16128bb8800f64890b4c01801b9433f5acb02b6898b65755d4e2276af7a05945903482101d47efc4abef3220679d36cfc37caa1d3f19cb40b549912a1ae0a1078ce3d4bd34d3461a00e8e10d7707f83e0357f1ad77d4b6208c17994803f0286793abd031496c3ebdc86d6f4f7d5ac5d63e04eb81df557e2456e814b4fb2c26fe1299626b6acb9a370c31b6449cfae2a8b1820ea2ab5a37dab022d0db155746c351d24275b8e310b0081081051763a08f19932f36d3f53c730ccd4cf56192ab4db6a8f41d24f944d58ddc863a0575845300bb6891ff075b60818fdc1b81ada6b31396843ba7475c8235f229fe113ad4e4ec81c66184953c1ddca38ade9407a0cb523f7316c470613e7d7fbbbc2f970475c62861837c104ba4a5e471ab55c64367db9a02e77390a3b3f345a3de0ad33ee813e3241ec99cc4d30f10471b4b07a34f6c6ea3ebd1e9333371e4dda1d1a33fb08addec2ccb5941c1958a553b80a8b92c55b14c4c06336bb7577d2fd15f7e3f43f47ad149d5885bef80bf2389b19beab278b91acc55c6054f9eb6fbe4d184a878a7b40c5eca14dff1084e776f86025219c6ae7b37cd7909d43d3730bc1e05622d6acb3cc78d0b3057a9cac5dfd01f57c5d310492b6c25ea76162d82e418dbdb73c734f6179deff6a86cbe9990b9683eba462e3c479f6f624c42b7300a0f8056dee5c9c8905d070b9d6a73701ec86cf28fa1e063cdac46be8f033921efef453a924352e73ef9117073c4e4acde4b733684618ff24195e046527084412e028653330921948d9a586ba954691d8bcb234b9d23a79ad8daf0335e904a2dac6f1520e5222df2ebf6716a7dbd34f221534c6eb659ebe19b2235f488624fb9c946fbfc90cd64090d08d9a99ba9ae161968c85bf4de3fefbfc136ddb960db956533643dd786e1ec270e553c78b427f31dc22c70f5b057a7cb05f1204886bd5e70d07deb52add219d73c58968397b3ac5f75ce841c2e28a11c6b78db4b2d668f106c44606233a55e3dbc40ba6cb420e455223d5026661907e396bf8a55345cd84ebe06e7fbaa149be4ca3414cb80c90d2bae4330e383b43d9c2bd47d1e949103b180c2133555e3867c1febf20967dc38412a605cbbf00ba899105c18a44354ae8e014c429d5718c39824581261905d8cce15d8558c462cb10fd276c564cacd44c94527954c0fc03c295a9f919b0e400e964441d7a798a59b4ae67c8cf3eb65e1aafbf1b99973117f9fe2c0963ca3ef1eefca9e38fbd71e16b66b25ccab2e69b5945ad9cd217f3f3e076a26b96fda5c575bd4ef0c2d7c0cc898f4e0b9b4484aa6e1661e5215af40e858b1ba413da027b31e86d823e2d16276c74d2f4c118492b56bb9725796b0cf7a6da47ca51c61a063cc00e101ef06e12aedee179b9e7f405f2a9bb407e5a5e08aa75afd4d2cc2da745e87d5d50655e0dd6b7826e094985805af4bbc3e1d68a726543b1aaeaf6e44aa7d8621223848053edba4fb0f363dfce42f44f9703c62980faee43aa85463acc8c5a230b1e0ed9c127e67a7678255edee3c9d9201262984a6551ad21a2895a5e002a52d5de1bb330754a7b66ff10d0da9967df9c44d5cdec2d260ae8e4d23cca6ab990d39ddfd88843f0faacaf86d84931ee45d4418d26ad37091a4d67d923dae6632fe48e3f1e96f99928dce1a646ab65c809296d11a59e4023b447220f54cb4a806b10e300da72f75d1e9c9017462ca14da0f89d6d5365ed8f8141ddf8ba691db83a0ebe3f98bf7bb40315bdc68576d77279cca314321e4925009de93ac863d731d2c1cd7d6c15f70c87da48336f2cf4c4bde3494a39f28fdeb686b5362010ae90f37696f84eb5529e70a260b2288208498f03d782ead02ee75e521c15daa443c8acf1e105e80d52d39ea578a8318eaac6ab66070d23717639339ce6aee58a22004d23e0fc5d2a2eb76bad6a6d1a211586027f27bc98e9fe6ea924b10033e377f4010442dc6024211f075012df1deff01ba4f1cca335969e084da653a867c089d6bd5f18ca961d0978c22cea228198a9aaef2e6a615891137572f622568f1d9516b4491f24b61c47f048cf0ce80e0017ba1a2f0af40695d74d5040a8f11f2ac46e8dbfc4ed0d2837b5311feed0d01e78dc3d3ccfc98d523d4fb0fbaf50dc83ea72805ab7b83cdde3c030db8bf7b5e68541e4f496b8f7044f7a2ddab01ad789efb0ac17a2aa789a089e84fd59d1fb0ebcab16477b160ff035bb824fb0aa8c8e87a60e6526be53ad91bdddc7c98d67c45f8601ad449e41acf935e23e70bf05b409a5897d84f912af99ad2f8a1b52546cccb2f44d9cadf192b1ab791981c548b1c87d47ed76d3bd492c1dec5c813fb0725bd70b2cded3cdb6e6468a0ef448ec1add1e4624e2060bc3a744ab65603170bf3748008f0e57c96820230d03d2a21008132242000294346aa6ceec78712d7a4613723e9b21c358e92376acda8fe469fc457cfcf9d12bf0d666269a628c93db4edae9369d64df35271dbedc95232e7d7b88593750009bc8e3fbc73ddfdb9ab7cfd54f2c533209c9663dfddad1399718b62a4e1a9ae3700b6bb2b7fb141ac3917e76f43e15b38345fa9213232d30d2ed19a90c0017ce88e647c23158a0dae8fb34b2bbec3e41024c45643dd9acc7505f1588497438563b057538ac8a073e4900376c0622f9446a4019805d80581653b36ee34b2b1755a88c8d2bcd19f4d4338b8723ac02d3d81a660cc1e0746b871c359abb74a30085ba09118ca809cd93dae75095bda4a1edc7410bde453cb94ef7bfb84ae049f55ea69bc31f5b6d7317adf73e7f61afb0a3b762f7c603b90b6bac2f1d0af77c359079f13609328dedafebd1514ab891de88f309614f96f0b890ee91c7a6be278da7413e7ccb5af5cd8dc6866f452ec8251560705da1112f6b93a9501aecc2a1f918f65f631a6406784912f5244fe680042d207944d87207405ca3864a6ae56cdae0b51220b16af30d905f11d790095a3ce5e7283ec0f7a96050d95cff900100e15d160d363990217e1c012321126169613b1eef2f3343d0a660f0c62b2ed74d0b3be62aba6d502f9331109318001b2482c303adfab2d4742bdeff02595c10190bd03ba36f11e5214deb9441a92e272cd0c4e448a94bad776d25b6c9f414829b0da6701b0a2db41d3a55b24706506da6352d065b4a52b3b55f68dfba604772aa56e9b1a655523b58969329b240b6f93b4bbe4f112ce01e5b6c835ae6f8ef0643ee7b062a414794c9e13a4ecf57c4cad640a4194dddda450b90d1ea6163cc66eee84f70ff6319d49b3175a7df424608e29b8bc0946abc6f80519060a35bdfbfc24e12a997de674c047f90c8522ddd110c4011328db48e22b4d061ab50576251e3af588e730d179f8f34031bee749f148b6beb33788290d0b7d36a93563f13fa4dfea5c197a1e6742f036064a8d66ed51484259aa20ce06b4bc3740bc419fd192e066005d1475dac20dcab72c72d6dd1f8d35bd43ffeb213a2bb002f920f05a003eebb57d57c7722eabd5bf08d316ac1852c62d828a990d88ed2d1e9725d088c78e1d29c3ef3a673f6c9cd662cf923c486ddbb545b2f04565614a811534d1930197113ef1878ed5393d38798be56181090bb2ae7e602c97e3390f50071a432852e89c45e5e4d1ad2954b0829041f3e3d5624cc8f2cb79ed849aaa2190993e86e2df9b01e914ea02bf6e445da4b33b07b876e8e8447dd66e04fa3f857e5aa62e14767bf15785340e03f6932ea0423c6de11ba483ba3ac3c5448642dca1259000044b494f91e526b1f6580c30ec829d66093f7d6edab6ac35da51d90efe28aaeda28bc3a24771c795b9e6c7f8aa469d828cd3667b4e20d31e7040d84830777927fe6606e92d2e82f55a641b8bbb4a5cb2d30cc259a8180d435d27fafa087429806fc181c1b580cc6a5265b4c24063ec033bde883165dd940cb98e9352b567b48667d2fe0ad3bf1f06ac9ce21ecaed45468051c9e68649b98b184ad105d9d9ad1b9988c8336895575ce91d6dac8fe144615490da0a27845114415666bf6ee9d6c9130c7703dfe3efed16eb51cc41834619a3ae4d4cc99b6c39f06a885b47e84923a62d29aa8ec0a8610588954b13d0e91c2a108f5f0d2fd4f5c3164ac93b591a4f88552bbb71eb524e4d6cb0b32e339d7660db92d82fb6ee3e49d2206b4f06a047a8133b20ca08eab8df71bf95f6829d4b14a5cff3f266a024fc191ef0a0beb5af1f60c48eb9f51f131f359108431d0882cefd503b53ca7e2f64062dc2d847e4ee9712880ad278d722de22f52cccdc917c083ff10af98fc25e990ede1441caabeb0430538e949726ce60ccb6236d3b2204a1f141750d3b7f1a63dd3c03d70655bf714533c79e8f3c86acf66fe765b17ba34bd6dd7e43fa9ed13ba62f75d1c60edaf59c16532450a3bf7630e77843bc4467cf98add38ed5045413a666a476662b0b1b8e880405cf133b08d57d46000af3e3855692d311ac185fc3c9eace1f10876b9f3d953b5ba320120003c7150aea8c44673b2803eae240be108e71d7199e41158ebf2d33494eb8c98efd69ea0e2dadcab55a89bb0ae1ef9f301a86b4fb10257d0230d7478de2c7eac62bdfa221feed4fd7805eb0ab5e935c9629dbaf76fba3ae83df22f3ac7ac7d40fcdb5495269d6681c5abe0f5cabe9b86c6e757b5ba4e05a533c0abd3715097887d2e54a572b238b910db716ce93471cd0f04ab4f2d6eb49930b6726363c8ab005c54b817b7c08d6464c28ba6a9617f804fd2aef45d8ec7890afb84d613f6a14fed287631915b4bf61654676d35c9c9885dc104e910ebad57989880dcf343e96b4fa1df847207138067ce7d251467b71eb4ca8ac6aade200cd6034d889b3356043d05b8898d14b24de0953ee3055dda9fef0a48c27bc4d562e87d8e7410faa3f355aa3452671af12167d98af205a2fb11e9b550e30582b8d874b30e5c908835f309b547e61876ca8c6817f43e2aabea6db3addc2d67bbfb0ea004499006646cba22da5ed0cc4cb004885ea6986c68aabf54e7c4a7eda9747a99db10c60d097a12e5d250f0fe24f8dfffed7bef906c0a8c46fcdb6166be859a64ba643c4efd0ae3b270b9c848979216af49f39b9a65b03c97876690e57cdfd9ca129619be6cc020084e1531ae654decaa91dccea4d7a296b729fc4cca23977d0cfcc5c144cc80802bd19cee9e8bc1a645684bda37c4e8e208e578113041a6b10270ff56967feb0c89135828d0cb44167273576c2a765ee115ec0759be8e4fe238a4cfcc534cde848f5871a87e9b374d41c26fa7fa2b35036849673a05488acec683cc4b9ab90521527a95d50685e3aa3dcc4e84d128061d0c49282339c2ce528547004d22b2684a5061f45fb18b2d0c5a33b01e09aa51bfd1636e17d779a5eed37961e3cf3eefae1dd3c5056065091e3c165a2089e9e10f1fd2a95bf8948a41ebac1c419f894702994d8762e07c2b16fa2b6cfa01b434c64286ae1f7d2285f2f88aac8edfbd69261641d7d883dd5914860520d8f33763658f44853633dbc48acee2fc9d75ad8a57bed40c6321772741606c84cfc76883702607d3f0986e799280142014b146dccf44151146b1e9c0466fa1a1730d6c3aada2ae981395196f2f0c654f7732e5b4b9e2cea8bead039a4258128543c2a21e26b6707c42255003e3881207f251b13e93da01346a0c29ca0151e0ef67aeaf329ee3589534b496700a9f6e305bf7c949d3d46a78049165f9af53e37e4f4ba615c3c7fc0ce78ecdd379a25ea40a4381e549d4670f42ea1da0232843e1f58d2a2487cb37df714d001d4ecf1b7c7113766475a16c6bf3e64e1a9ea0d9ae7b127f43484d377b52a8018ab7915d8c72116b15d733ca5cf58d33f62042cfc4955835a0e0c5f971801f79416eb6b4297778310e68f78765b795cea4d4e6ce4866600a9f24f8408eacc5ee474f62be1172842900e9d3488bc62de8a9f8e366aaf5fef6e759df2d4225e67832faef5f9c7c2622c57aca406554b0fdb83ff190697dc7da459f66c56350249fe07af4419dc035e30146052106f7f8decd46cacfc4abef3b9600a8067cb1089d17af92157b0778ea83d550d18786e73774a4378cea16acee28fe22eb04e5d31298f2252a1bcb7bcd01cde2b355894efd6a9dfe8ec5c05da30b209b6fb261a3d1a63d4e4127400471ba8d83b6451fb84834c37fd6dca0114cc4037ba8f81e829132c5e006db88f60f12ae4602502395c299b91bb0297fead99610dbb39e0e4edaae966002957443dcc89a1bc1c1ff3f740f14243593bd707aa3843c53e108d6289189aec4724a1c8c631ec6acd50fc0c6f52352c35f1f106c58756f831bd11371f9416c49b7dd278dd8ac4d79b0dbb1a5ac1f712432e3de0f32493877c0b0a98ccf1e77168057737a8f4e15054094e380059a1c9c97a63bc44df825059a97e22bf6ee5d7b472714738f3e6b7ae196a12fe1ee932148d78a8c09ffecf27b50cb5849779497dc04819a40aab94a1c6274c05c23f54f9a2060e2bdda4657a033dd72e8f3e100955ab1c886c962b2a38d19730b0700e0f943550e3ad693445e042d33e1667050fa99f6e66c04499365d895030ed4b6976edcbb144030e97a5f46f33f7c5b1a86cdd1dc71cf06e711179e5fc992d7415ac954086e7943a7a95754ab74ab64d8ce012a1f894599205685fddf029b5793b1a69bf2a98dc66ed0223263cd4df6fb71ae30b1791ba0b5af77e3b1bc13f2000dcc022f4d76ceac868d5b337c535efee6103b79f9c37fb70d3ef04eab9afd56571a5f6a59add0e626f7b14376aaeb40b212f1b8b09e5f8e99861a1f69a7a80bdc262608415597a8801bae0fa1ab3d80b4386a56ff5b03a90ef8d993f9839ec48ef9c2860a227f32420ff5d05c7a53ceea6d24b7b1ce68794e66db4ee9ceee68e8f5c36709f1eef761c5c15d4a767e5d75baf921f70fb2743d50fd49a88ea5c2ee17dcbc358ca335235513458066723299cb82c4f80b0e143e53a5f32c405f42a968a5348c89deda1ad27beae3112c99517d1526858da8460ea06b412ecbd4c11989ec04601021b8afadb0ff06f737381667088b09ff01115808d23091afef3d3c9afe76a08b8eac8c3fb836bc3a5f0df7f4fe152a969e6c3dd520cd8f4fb816eb9a34181382f8ff0d5699708613f116fb21c4d0fa19798d51869fe1e63d205449ee97703615a7d7b336452cc5aebedafcfe2fd5879caaf87c42ee736605ccd6fd8ded96307aa95e67d1e37d98ecd4488672e1cec854268b816a530fa55291eea7c63130f0944fc3b9a25329245d8b5fd0da452f53fce45bfa62f2d0cd642b1a13f4d1e0b7146bc262fa4bf9b144dd1776199b83341c6deecca186ff6b645d40f622dcb443bb9d4a5258c3fc76bb9784d2ad4b463f2307941009ba854552d6d88a4e27abfbcebba8b5377f6f9f7e3d7f800978e53930498b3ebd7c0d1f927b41bd9a28cd6cc2ced660bf9e02c207c02bcb89c26d0c06eb5b26412623d1232e577ce66e068b9b77c446783edd8ae314341c8ba66e7122592813b2e0332c12c48a1125c00c5808f794f87497c762686137c7ed6206d7ac3f71585f0bfa19951a005a04b0deb95d17098829bc56583168ce5896d2da47d5c2a78468eee1ab4c287ab550959c0afd689b4292e8323d54e98e02fe01d8ed8656e1162aee56c5c9a48e0a0f57dfcd64f0802ee4cedfcdd2df4489fbc1cf145a060de2111118ab3066636aa4cf6bf92a3596c2fb853c0812ed43c6f8babda3431b7af0462d87205bc31c4658f25403e540c658599cc0c019803b2007ac7ab59381c938d411d0772de08d2527444bd23762ded5b3f919b5b72f0109230e232a7905e38cf253153e5efecd217fc112d7999b432b378ba13ea5488285aa1d563033a09ef09cc11691faf733d1457fbc1efaf4d62ebfbd103a205fa805b9b435e87070de9479420f082a804c9bb0f609d8b49d2eb1fb222d1b6f49f8359195a9d8a5ca91518ac3b987ac4565d2fa6d265065b3b72f6d99129518928a30ab327e747105ea8ee3118d1df78221cf650206da1b1638e729495503b9649f5429043694c12cdc7780c2a8ae285b0a0e6c43ed1207e5363f0c6137afdd5bd93a2e67b520f56c9994a221e66855a436e88db043dad92618d01c239b95f409ffe71d0183bfab0c935b31ca56726b7c6f4aa91b256026f0a606fc9d925f575d00a2683104ab6dd3c9f2979b4837885561bb029d5824131bcf5d7ea3b39e69ea5992d37eb29e22ccb19a92513685f312d3393dba7222742f831d564f6a6ef6d14dd3bafef22330423026f18d7cc6ccf0227726c8640fc5b3cee3b9e05a3bc1539025686f49e3d8107eed3220aeb712703d9d2fbb24e06b0abb829262ae32bfe3ad70cf5a69e0f73f6a60232044efb61a1f8a23bd566c4378198313898ced634258f9a658d68fc86a124877ae1892e3761a820144e51cf8dd69b72872caa0f1c5b897b0d8d99e3f4d7fe201b053ce7e3f064b8df01db34624cf74a8dcc990f745d145f8fc7b0c350319b6722b8ca6fa09a4b5440679a2e41b616684126d3cc52678950749dd861134d634c0ecb36da01430147c3598a8dca53cd1d66efdb82e6c499a26e3828495a0f4b35e22490fb36f348c85bb7e2ac21381b988eb5007288c1170fb1419385dc655f2f8b1521003aae4066b94a967bdfc4a4e61f622a206ecd1c942c1fc5144515bcf88544ab45acc107a8d905841396e8fe798ac4b6881a0ff500b6380591d32804bcb21842d7d01409c945c13fbce8e6cd59f7d6eeebe0075a5084ed260e6ff70a99ffb16f2243724b954e8555b819a0cdc99c21dba944f4f04e049c980399655c17135288a6069c4b07f493fca7278662cef76ec4682e309fbd9fe991a5e51d44fde60ad67ce85b0383867fa667992ebb00f9274f30fc266d36e3bf98a94ca93bcff5a3995f66d1f75376af0c96c2db91f0d5f64f97f07a75ad4e3322793647f8ff8b93ea3528cfb97d434736474dd301d986504616cad955f3dd008dfbe901549584faf37d46429538993896c08563559adb7e3f6c6af2aa9ee890fa427b6ec79a5d63d0132284210692f60e3b3727c5636bbb35e18bcd6399e865ce397e522cc8e8fbc166fd1558121ac1e665a9f7cdc9f2f324b614ebb9cc2c62da88e0dc74a317f5753f3017ae241e1bf9852344a2f90a033f78d7da97df58566d9fc6830cec340ffbeaeac7231b7e7d0f4c7566a64755192a9ae50de61017c2bdc0320a9d8e231f8a4b7b61e160dc8d21807ae864688e248a66c7ac6443f207194e4044aa31325362c533fdcf006a663e6a27408100ba8bc1a367e67ad5349207f60e3f7955177802c8e139488018b80eff239de565839af3a56c5e4b7caa790223eec2a1ebfdf1f1e329a1ca66da529ce3940e0a32fe4fe6296e814a2d3997f1f3a4cd175c44e5a473276393dbfed4061d59075692d7715480deb942b87498212a5605c2795923b596d6bc45838238c68fc82da07af26b85394e0c0b410681dc500bc6e60a682ca8c508d139c2f3758b12bd1f0163ca631df6aeac400035922b0777a83d45673e03539381401f6db26487e0d047c306a8b2d037a954ffc2f3fc205718466e598ba1683607707cb5e04c93c46467835ac20c9775dabd192dccd0051ed342095fe0600a077358de7a722186615581f730e3d3323d418b57a22b5729843c641910bc451f88b4c774041a66e46750e4df0ac9900bf26cd3533e2cfd4587f8a2a5d455ec0b2b8b4970ed9c43fb617551c5216f5b5899017c1305b9325e15d5ef45e18f3fc18192754586893b8ceacf3fdfc49761a7f8b1b49622a2fab9bbc5af2b63c6abbf8edbc294c013fe4c0ef36fe7e3009350860dae03cc19933d3a1a5030a750a31c195df33aa09103429b3d639d48a1e90f3ece6e914a05e13314fdd21e976b539783fd333f74cf89178de016172a605e984629976355d1dc1a20f77f7b7ab8a20240beff483a63214a1e1e98f4ca19dbbb0b591f3322030c1ad425da2b84e41a1963e3d59ed67abef364dd34b97b7c8cdba3d1b5bb8809e5432607be9858cc5000f37411871b44d86100535054155771f8603fe93ad713432f791a51278f4f7cabe925544d03f63dd7faa63257850debe1d06a265231e7f163e35f7f1619022de86720f55e564d2c513a806d2ed035d029c4fcfa4cb09bc24eed5dcee3206406986bac74d77c5a6105798f74fb26796672a4eba607ac8a483ec6e000815baa523d0432220110f330c4b6cf1854ba3af63e346310014f365ae11b49c6683a4575d062454a09650b27924eef23d9a83ae0933834af5fb37dc094a87d0481e78e48b057fc0fee4a171c70975d0c8d231427ff7d4ec3d57b2f7bfac9a84bd678a459eba0f0e5a7a6831d3c2103b8880c78168163e9bd285e3d01042eaf20c1f12ec8245df1f2d1163546e6dcecb26677c071056050a13fce24b65957a26f62d911509c2037ecde39a661db4418c4e1848524220755ace87196e831a0b9eef3790f4421f4d389761ac67e94626702a9ac9c815f00420ef1c41c1d9766effd8d263358ac450626bde404bf2a25df83f615fad8e5ebf0152b4d77a7d72ea0ec9f1dbcd7e4b035389325d5735f997819e7e38bfbd7d5bf8c165b21b7e48c5b567b6a1933137b0d6f2bba032382767a44047ea0d57d51f3cb93e65fae1582f915b35dc4e16c4d36b5da8af2d8ec13014ef2da28a2b044afddff6d958d96c61fb49f848b61ff2d207c650c171f85405b80f22060f0940301cb77801a35fb26c389afb42cb22b081a6ee48a6bc1ce94dc44ab30cdf64871b23f0e91048bfb195467454cbf25acee40d31bbe291ced925b0b5e046b89abb2d65c3dacd5aa80b5fe6ab7d6050f89d728aff7c355059f24d662850ec52a6ca389d935b8de2ef5760a92cb6712cc82f2eef9beacb86f03095df087f6ba941dfa39eaeb04314a80ca44a528c31ab6434fb7db4885aa9bc767863adf60ba5b994568310a9ea94af8b7317c7ebebece7e83ee6bd408320160b05093e74e6393ca30a315f7ed1f10b7ef8fbfcbc223a0995ea0f99437c8c666ffa2d4d8296233da017d9c41e3fde467acedfb286a5e662da1f26d0e049fad95ade3af2597779f6c6105241c503e3074e314c5c73b8a8b5c1478b9d8202536cd7896d860737c7ed6514cebeba912e50eb92f935ec4ae5721008177f1bb672abba05203549270c3b50221c04fb4fcd95d697e29ede07050bd416fb6c18b9991fab95a304c356bd627c5f6e75587b3e102ceacb8756b9000a5f2ac07659faf0aa8b8e4a850f42de3e6cb23232516a55e02e09e23cdc33394daf4b1773f908bc7415edc046ad4e99e5c5aec0fe416a63c7c14aaaf9e70b20fb9affc3a7b01c883e4be24fbd1f3ec7721fa4ab5989eb0a81c373db88a416ff6c44de8a345c9308bd96f46566ea24d39b9d966862df196bd207f1db920e625a8e1708960374e0ddc8ada576a1a58e21bd464a5557294813bf05320883e25dd470972061622951312ca0dcecc259ab1f255de1a36309435ffd9bd8c0f6bc96495b2767e394397bdf41e3bb9b65813295d73bc6c6e064f62407b6626d2f5d7a06d4b4853a85b22ed78951597467b14f3dec9a366cd1f2652a816933ff5135de9e1b1bd776000a4c5c065c919e69f8a1451578e2597f9d31de9d5c28b59a67aa5c7b9f787b14a83e56e6502086fcfc7e030baaeeaf77e385130fba36471260627dfec7acb7efd493c244218586e8a02a70419281e3e66c640abe33e70de9a02f70d93e564092c3b8c5c5ccc08b369ff84ba012c1324c7d4defd372fd67bf22101bee4b44e2b1a34384855dbf78b7cafb84d6737c16b30c5c3a8e413569a9808eec8f21bb02b3b29c206e4d40b7dff778e1f4e3dec07e55a2d490b75f3aefc158509621167867b5e8c82588fd77ab96486276386c79f9c20b534de85e7dc791eef284f4e68a6bf0c2ac6b60cfbe5dfe04fc1f11924270c9e30d46d42b519e005fd6524b305acc5c71a173cb33c0a00b2e51d31cb0eca2d8e57a151ca08cdb86a0c835247db38d65fe6e644dfbb2bbaaba8c1a60bd7fd54f954565445283ef880e3b89a56c286493238499c4f06f1e6a80822f60a1ee62123d57b460d5d051aaf43b0d7fa6201edfb6b3d8418b223453e751d189ebf3ab2e30537f905b38ee8888da084354369d229129d353261f88924638f4a38c4b0deaeea41dae793a90ff7a13d9ef412b385a0239539ea8f0b717d0f61129dbd1c33575734820b02f91008b1731088c0d26e0a380a5d62de4d88239ed324c186d6d8cc74bf1a99044d1908da73848d06519790328775977bb20f2bf3c65dc922731c159f9fd0537a4d0e64c5095649536e31210fb59214819ea1f019ae526d6c0ac96b3d8b393df3dac1039aebbc23a982c2760acec46c39b044b34fc56cdfeccb1aad71f670a00dc4aeefb8be7357f4fe4d39775192b0efcc916baa32e2e869b26f048d0fc1e2eef9450165a6c75cc47f432160aa91ba28629f6687050a95b04a0ce80309899d45f07064ee385289ac6c1f93946dc559554af0ff3794d3ffc093ad475c68aae8e0a81cca109418bd9b3f931a1c5629e9fced89ecc82a181160ac752f52be2bb26a7511fbc3a6713e5e09537a90541fa7990966fab30366074ad5f2626c3e23fa3991c1814d22d3f08bc86ede4ee3407dc4f8b49e4341c2d576b3b0a22e5be4d39f576636db5e135dcd2e0a76aafea76da7fbcb5a92903474f2283f71b6690a8ac1532caba5910debd352c53c770990bfa9e34f5f8aa2a7d03062ab3b3acbc22871ed761966d6b37a2986198b144f529bdd92aab62eb5a61115a54f9d319369f2aa9ab368e03abcd7dad309022adbf37bd3cf929edb0f6b5ece56b348937ecc82eb885ee18076131ed7342d335b34a11301577decce110f6616c318caf04df7d0705588db9df94770ac72da2a103fb7078f8131b022d72afcb60bc4e6e9d02b6a1876cac46ff4f740dc7bc36619d5d7886533f183a1f3778ca346a9ede306dc8eaccc59d0b3957bce032ef25a25d248f9bfe67ac62263a3600762bac95598a9ad94ad4eabcfb7e4e6b8c5e586355dba032bd82ad77b37759d64a2df9eed09f72f743c33c9b747b95360e6d0af2d532d00bd95bde24d825c0726250762bbcc9199e85b818c9a596b76c8616597bc7de015215dac5d75cbf42ca1951bc015725e22e7a9b4731d027fddf8f43f62567e60fb94b83903d82ff2ada8287bb62c44cf8058d29ac1edac4edc80abddbd79d8f95ee7344a79fe5e21ec0fa0972ccff7bfe15b212a83633e47b248ab0b5a7d58a58ed85bb168a8a608e1a2eab5c31aaa707b0ed0e46e98cded76b0a6ad9b3870c5338a26c28a0dc2ecb0050a79dfcd8e5bf9a0b4c4dd3416fd8224ba0698eb50ab228a6ae5154d44067755055746ef885825d18bfab1667f6919db8a8c1f9fd7cc2114d2852b859526269b37ae347fd680a7340843b81a913a4268253cf52034dadd3f19d86bdb517a34aea43788895e8de5424047e3ca1dfbcae8e609db430648235718d724d3ced9b44d46d295744ccae15e55985ec04a8d6dc78cd9bdd6ca0a464e799faf4a005d064bdb8de22a707f5fb8f2e811109728e5f5e9cfb532b5bb1c42c4965a18bbef7e310a366295451bbed300b3b05cc46352e3e0459af6419ce037c15bc9e5042310f34af3c666e50194e8463536eecda4bdac4254d78ac2dfccac1755366f5eae4f4ed6b9a3602286f0e5f1290b646094322c9b4c6e349637219d047a6dcc0ac962a8231889435018f593d8487623f5c2cd0746883917e628c95dd74d2b6a030ea26e98b21cf6c2e81b35a1510720116b979a13f4a0b46a21a123bb1c3d545a90bfe074eafd2c3c8cba1a7ed9e561ff12e4c90cb38dd3466aeef1843a579073bb0ef32f590a26d168fa6434cd489758511915ac74c40af494630fc11aeafd0d7e549c663f88f9c159a3d440ea83f4f6b034404ad87e2510e7496d4f6f1e6b6cd8f604e8a2844cacdd5b09591032b6436cfb3aeaf62b968d9d7b68a6be4071b2c9b7bd7a01a9ca0239ca1a391823f5c2f487d420cdbbe72ae73e44458d55a0084bcfb7a217eb497c7062c5a749af029d730a2c1bddf601faa0dc3c27a2e3fd1c900f7a7b2adfc86dbd9d40c08e5f2938c6d9980527487736fc9b0d591f239a22660d05f759511e3269985b8c373f5182fef04f2a0e68d75a3f83ab33f3f2cbe4a0b8b918f666316606a276e43d86a6fb214362b94b93a0e80cbb8f24b62beea0ff341c97bbbda588ef8ecb862a2e72e046bd0b2a435c43e44af8e4bfd2cd1e4f0f181a44b09b0a03af9d8441bacc2436adde585fae83a95cf360594a58a59b2d55e6ec944a95481318527ce25e2067e4d2ad127c12d0abeb386bf2f45a53f02cca91d80e738f9e441b293ad36a06f649eb83b314a705c2cfd77ac567c535855bd1adc29b8eddfdf0cbe4b5d1dc6773b274a246c0d91522f82c5bd59dc934c3ca681ada78ddeea1372913d5e000d043b5d31929980df4b427a5ae4cf34c1974fda279153fc9957d6a263c1e04d692cbc4008974f4679547283a5f9cbc9cb3ced86cb7fb9dad5249a17c1c4c326aaee4400acfeca479c604f43bc32e162041f155f1655dfec3752ebe401ba4d70b8191ef01da8f6a50d392d7d3b2a1db0996b829a100c999d714bc053e38d71b237d27830f2b4f1b308a4e0d7f74f534f0d2b177b032c22425879f4dc92d3f4cfe6b293e4f0caa17dcd41958b5591c851d132550e0171ee4dfde4b20df7719b510e7c17bb85151660715dc19e9ef1749251c3d39156bc8c382af62d526005d6f5cde903a6c0a912b232c6690028090b890c10222f35c091d4921b5c649ff6058b85dc2781e912cabd04522615bba96bd7ae65ba30ae1f0e4e558fee30911fe3e81b708533f6d6fe79d021054236e41f1ad3880f5887d08234e73b57ac85a4ba155141fb1968e83b59cbb7a1d4c6030c1242b38d93ba71879aad5072bc6926a2b373f14eafe8f39b840126b2945d324601d9b453ef499beab30e07d15df340ca587fbd44f826af7b36c9544aff3d710906ad898cff9865e90fd094d766b4ce24be157e6042b8a9c415148c3fcc56384974ba4318c1103742d3faf49e4c818a5f082fbba7ad88856e72eb40bca4e40d895a4ff3848c6db3b54d21cc4fe623136c50ad3b238889170ff6dab32d43ec81cbbe71bcd40b3a878a520cfdf9cdd5f78d5f947b02687832cf10af55b50312cae3ec49c4dbbc3dcd13c53d3ddf165fdf4688a76c8312d902ddd99fd83a5d3636148a5f6c9d1d0d11abe5df93feff72111778c00afc08877106d6ff4382179ffa4414166fe704df70afe239277074b7aff63d7f94919c0a78601bc4b78755f4bf80d4003daed099844445c04988e94076579ef4c543219c528cfef166f7bf167a0c6f64c16589c3170072f53ec6a9f76a24e8418850e0161a9c06ae4517125aab4ef8173e99f04bf89e47ea782350122430b1f338cc312aee90568565e8d9f3620577b042a55ab16da258966ade93d9c9849fc4dd53b3fedc0555ddf7913b574264b08b164f4c8d3ca2b1ff5c71c3f7843cc100c709e6bb01a05972bda9f7b6745649f5e5c9f5842101e1ffd3498dd1803c1427260ec99eb002a3970a81bf3b155a969de3901a569a775d53cd0ea42bf55fa7264fabfa08dba46920a4aa3544e51d2f87f4628a3f607729a9e22bad0442a0c481ffe82f9ec5fdf763fe715cdaf5bd94e4f53901defe3fc8ce4b6ac955aa0985503cb8f55a213702ba0f9a85308f4e2118085f8e4c51b8c9523b319126275e7d61c0da9e416236ad0e227ceb420105129380e51ec3bd1c4f7609374ae5cf1201e03293d1b5fe829357add367907f1eee4c0cb5240c83256089e0cfcf0b8ac25d14fd7bbf7b633bfff6ab01d45a8ce488c8e65860e3846b6211f0064a35e9e3efd9a2610e6174d624028ebe9456ff2c2d22427d6a4a2b01b7b84afb424507281289f4f25ff89bba4dfd924666dfcbb38776dcdfebd74de44214da767d60691a2776dd0c962a534b08d22aaab85786dfa5c096b06a4b66a363c650813127d417d19946a40a936f3ebf28dae4d8f20c0da148b2c42e5a82c46946a6378b6feeb29304e5104f24cefdf49450fdbed742473ee86e03d490b2ace0f3187b35d8a2472e657647845d8e96c67b8229f0c1eae1d0a8a1ede500f6bcb6a8ec3ceb613eae1225474dc28e9035fb99d118f4953fa1f3d36502fd0fa194dd2f8873c88f6c5f96b6a18cebcb445336d2a3dab672bc9c98bcb4ef1886efc9f7a74e85473eacba0345ee898d288fc9de0159446d8494a7399fcb71ce0839a1d1f8d237c127ac5bb369d3d7dd88f20c2aab8f172b030c122d2c65d5e5ef2bd7f3a883def528d8041b641478c41a0374764442b54a21bd63a9be2ad66674369a102878ca4dedd1641b6cc6201decef325041759a3242f03e1a67c8e87ee5f6a3eba5b23df87a14a271d6bfabf16220b3d5a53a10409d1561025af5cc474e822549747069d7515e2fa979aa5ab2495c68f2a4025b30140408949c860d4d0992047a02677ccee3fdc947ae32674406eba80b9893780068f7dcbb94f9f11bc16f45e580039cc5cfbc8fb90765c62b16b4e0d38b309a920d453524353cff600bda37e6c2cc25797f8c40051d143e5fc085a12c71050951837e95755fd3fe06089bbada309529d032cf0c55dab30c649d5b37595d9cc4ce29352950d47c32afa4a6b1d05523a880ba28dc90d4f1533f1c592145a1eed11bd016008824923fec167cd527213dac81442890e05cd68e510e3a656262b53c2d04c1c2c88276518931173b9c9302912f5c3420ce71643317032bf05ad31bde5a662876475f315e001ead667d9b89b75252e4d82d7586749ec1904f4a1744e88cb3e6779184ce7ec8fb8cb20c1c461a7ae42065272fc1db214e4c4f270ac7512590e759c2f01b64151553fa9c32c08b949e2bea6566d84c6c0925a6a044cc464b411b620dc5af5c0a9757f981390cfa5e410e11ac73243929999f252713579d72d77305f069a7fe123ee9f69b0a42b16c64151fe9f599d2bcb0d1dca66f0023c49039aa342885a20942a6e0e483f3ca9d02cef032820e134e33aaebb4a88dfd59291f3974ffe4c3fe8fd82e8e11fb59eedeb59704e360c187001f17c00f0a685c43502bed0e2097d8ed67b2de4009d2c920e7d037ef15fcc767777f79652a6940266085c08b2081f8dd12b34466334466334b6f3b990f597ab602e97aebffa51a8bffdf257577f5d7f6f714f6edb9356f356e6de026f27d697a396d45612e744f2fb369134993491aca9c944d2c646d471c9eaaf9953a378ca7f0a51159895eb5fafc4ae572c6e04de2ad6d792fa026f46ea0764e1b10d3963e5f53c53924d97e51ed99db33e0f7f4fcd39031bc59c607937477d3cd67013725414310a86e7b56577197840fbe76d910cc1ed6dba0e1edb9025d6754ecbea268583d5399934050bd6fd90842cdf70d815f194773f8e722fb1e6129afb1666e237b51a474d9087ab1aa7699cc6695ac833065af59eac39e1f947ff513ae6cc74ae06a888e3020de9b7767958614954d9d5755133679b2854577a29d5e1c137565872bb3ab4c67270008f6dc898d89dfcecf44e0a05e604a6275eaabca8c0c549cb1a94522118283027303df152e5450577bebb38b9f3bd658d3bdf65e81282eeb463581f4a5490ac905ac06178452d41760ceb43890a9215520b68adf9e2cbf2b93c2a5e10fd826e02815f7c593e9747c50ba266345adcc95de160b089d169703ed469c15de160b08991693778d084b21f78b9b5d1c6832694fd60d3b61916dc596f308d681d94b1a0de40868d3b619966dcf91cd322c2e2813d3ab00ccad03494b91dd36272674c8b6f66ebcefe981b133b15416bad2215a98b7e7d7faf7dd29a699bf82b1782c736a4691554657278753f774e46cd6ed53261c908a7e69fc2120fac2ae960a49482d20fbc637f7ea908ef947e7e0905bc03fefc920fbc43faf9a51e78e7fbf9a51fdef17e7e8907dee17e7eb79a3933cc1291d20ebcb3fdfcd290920ebcf3f2f34b27e01dd3cf2fe5c03b303fbfb4e29d989fdb34c93c1933bfc47202c888a7afb9f196e65d68be048aef81c05eee4921084e971395d0bc37bf996702e4745f689e877bfecd3073b845f294c584ddab83d281d185c137f36bc20ee62fcc3fc984dc2d90a64b763744223fba889d192d62778615bb324a6237856fe693c48e0c50ec74f089dd187c33df13673ab113836f38b193c2377313bb1c885d14bec9ee29eca4706abe4cd89dc1a9997567b0259adfbd664ecf2976afee35734aabd2aa7b9556ddabb4cab26965d06ee6dae59f99f8d2c4ea7a69f5329f2cadee0cbadd6f5ac17827c42906762d1356bb875a7be85e24247439cc10c72d0dcd9c17a399f237fd9486eeebfadf98ff977c096987de3c1d4142c28b5169e8253653533cb5b2fea1f3e54a8b2fb1299e62b46655af3ba37c8a5b9f7b12b1cd0b02b11101c28aaebf4b0f20102e4414c775219a39323f33e52f03749de8bacc0a563f7b526655ffeb6a88a33a88cabc53b9d6218eaa62fd71144d132e3d045d52e6c7854866355355a471adea6f3f7c236a2f565d655a2833c4532eb33ac2f69332ab1e329355b3aa49786c43cebcaebfd72f31a794eb5cc8ceafe90aec89d15e73815d675170237d25daef6520a771cf209d3c85cae59fb0560288cb3f59cd061697dfbbe09d6d021d71f9bbc53b1aff0ce4a90919346484886902a3064c122629e0f56fdaa7262a47332eecabd1f4c45c4f060d514688ebdd93314daeffd6c1a8e130496c2629d75fdb366b29a522e9af72e845042b5ab9ac5c562eab15d1ca05a4efb980fdf2f231c8095917b27d67bedac4758b8615a2d484a40629099ee23dd9d204c5f1f5c4dc2ee65934ae3fed9f9c15e2fa3b2d35b95e496a9092f09607b9cb85bcf4a18eb591affcc7590ed4e54cf50ff5ab891ad6452fac17d60beb85f5c27a615d7f17980bcc05e6027381c15c5c2e2e17978b2ba6cba4803fdf141e10bc225a89ae6b500ac7813fd71fdc9a45bf29aeffa77940b8fe9d695e11d7bbecd8cc69d64cf503995add32b53ac8d46a97a9d542a6d6f57f89f5176df6148b5dff9772e6e86ca51d3abd1e75c997f2747221abbd0bd9ed69ee93eb5c12b825b6339a0dae7bb2359784ebef69dc93dc12d79fb9336ab3cadb37be6c63695814e149ef626b517b7266a56171fd3b916b58b36eb890a574e622713d8a469f9c5921a1456118cde742964f7787e983aceed0fc3233ab195c7f9e59f1cd14b69f9c595d8fb9332f159ec851f9522b054c797968fd1abe1496ac44dabb704f43eeb7ad659eeca65c4a068f7169477429951eba9f4b5b5c97a8be7260603335640446c1c46a13a827abd0a5cf9c9302adae4b7a8f14d6546167624065c60836737004cd54cc5538841cc608acc24105a31c84851e139cf247859e124ef9e3a082551e128c722157792d4731c13b27bcbfb704efa0f0fe1e13deb1797f6f09ef98f0fe9e12bc13bebf2703de8901effcfb7b41bc93e3fd3d253882660e8e72a692e01d1cefefc180774a787f2f09efd4bcbf8784f702ef08afc53b34387004a5f0a4e9925e2b8527633c9713200571c810223823ea75bcbf77820a6fb3c2a3b0c29b10aef039e87f08027be98b21084e978a4a5650f2731a87a49ec90f20a73b73e3699e823c4a56c0517a0947d91a6986d9ca5ff047c5a41072b770fa1586a82012f91105b11e9d20d62c36624d820962c5c237fea258d908c5dac68b15097ce39f43ac3f3a634a24f2230eb11e816ffc819c2e15eb1a7ce32588550db15ea109eb8db0a6518d508bd0a8b0aec129ff14c29a85530e6354b374ef5f631d8e32069e87e3d6d8ccf15a9cf227bd562cc65ecb6b6980fe5fd26bc5b442182c14c6886f3c66058b69392a2609cc555c8ff0523126c83e89a3f45a5d7abdc0b63ce9b5665a7ce3a798ab668531d5970c86e3b9857c4f2169ba648d91b68ceb1f1392a5db893f1a2624b75bdf1492f6d67f09c9bfb58ae4e94a6d0949d425618cc81214a3eb62ada22485e7e195280591549bf29044b630e5e5e1648d59576521395dfe0579cd9f60cf566bcc7a2dbe8181ad8961f114fd8d3ea9c8a50f1eb9f43f2497be97e4d2ef965cfa9cd1a54fce185dffe9468ea2a4100cbfd00bc9bfdb7721892271ee26923557aebfe6b5ae8b374cd7adda1697fefc4d8cd52a1edb644f0ae096243f897279fa36f2572e9e70dd96cb5c385183cbe0cca94d9c208b28725083064746f2742b16411471ebd32d7ce0e2d6ff5cc5c2adb73e6ae6d0f1d69694235130c1821ee020cb5845f2a35c58bed473b6b1ffa39b13cb57e6f2163eb8ae77190b2332b824b54ff4f713eb2a20f4fad3dbdf5eae56ab4bef14691240ef7c7aa708a4af8bd4a61b8bbe4c3d46c1daeb956cac48d24b5b98451b47f1b36ff143d16d7b79b810da7d84a35e0787ab8c3cba3f116d7408f47c22da385fc8d8208f7509cc80001e257d89c0870d3530a1e9c1556e3f57b92d7e63fd79ab4886e0646748e3001eb799a242c6e7713ecd44f617c6af57ee538ae7ef951ae080be1aa5947a6fa4f9578877b3bc8edb3c2ddcd833eaa84f45e04e4e511a02eece5b6be5a7e19ddef5bc8edaa376ea020e8e0074747c4e9b7f1d28d4e6979f9a6a4eb4d6ae5dce24f5f93baf867dbdf931d1be863f7ad066542d41bdb3fb4143d7f7b8eec135a7b2af9dd8d281963b411e9a0678df3d043c11025c4b0b2c0e6cb43d175d21a390d15fcbb87008f75d38a4fb19922d482c0e6c7481cccb2ccc6f19689885a4cf0413d0c2d5de9b2069137938e75a9665734e2dcb26a76959a679edc2e399c38449f634fcd1a3d2d09bd89ce24270fd390725f0c304079dab0120f36a8fba42c6ed69c8b38a646f4f84090e3a17c864a15988904b49bf3e0e26e0e566ef7925692208fc66fd9332994ee710ed93c2f49338a8d487a7191d1dae00ddb748b20fa4e0e092ec279e3c11e55d1f7c63454c8c6d6155f65c804d8763e09cee9d1f8663a0a4cccce9441f9ef277d6a2c5985761b3d00708b63bdf03ac9aa20bee8caa190934d0db3a92b6559087f2ce0b47c50af087d9675cf7a753c7fcdb86930a67744c3770a62f7519e7f2eb70db4c390d362da3d30387b8d4615438d3c2e17cb766cabb35737ccc94ffb6597be258b77ccc1c18b0e86205650cd610d7bfd3b1a29de47125ea28e69d188feb48f3b5b9090bba7d3d7d399c93879a78fada8c66d9f4ce36124d0f2e8893f609d25ac11f3cd9d3ef6a1b5767a6c4d37ac86a55a47f7e80f88805715004da056ab801b4610b2720815a499aa8895ef5ecd64bc3d924b08180661f6956b3bc8e823cd4eb201a1ce5bf6d1c8f997252e7eacc1415b69fd4e19daeb33199ec0d777e5f7eba7d261770703cf0074f3f3579cf7786afe434534aba771a58a753070a45bf0ffcc1a37df69f13e0e7c7eeb9863bbf2b9d4abaf7bc1a4ebfdefcb2906fa51df42581597b8637534aaae20682edda9cc4040d39a2ebcda6fefc0a6a5d8f7a2b6806dee956c7ae5767c75a4774cccbeb65b4bd04625d4fab2ca0664dd8f5b68c05c4845121eaba1ea73575fd5c8f51b07575bdeea321cd7cee6eb72d7dcfebcf75f14ed3262e057b626ec3a84c20bc742c629d46ab8f9801cad32afe68caab8de348f4e90b91c73664d73e69cdb48debbc0f24956c8bcb8b092646e6347383a6a68415acb5a2ae1a9a1b3327191c394a68d5172c06c6f4e2d292e36b5a2db644fa908695c5c0cfcb62d7bf0bc51b2cad8c759c269a30f337fac5976f2c136c4e17763917ecfa6bae2938970c33df4c61fba98b7762ba15cc10a7d9d6d180a5961798f074a306070aa10927a88052e166c787f395b0f29607b9cb85bc8c0dbd8860d3b5f2d76ab55aad9c08561433aaa1b9317372b95c2e97cc2ac6c60553ccc857fee32c1aeba117510c56966559962c168bc5624d98cb5b2e97cbe5f22077b990973e1403539665599a582c168bf5e2e272b95cae16155e78297ba85f4d04eb22168bc562b1262c366146bef21f6739508b65b1582c16b843e5d2ac0da85b1dd4ae1acab22ccb9255b2582c16ab87fa45042b02bfb22ccbd263752de4b4d4c046bda2b192559665d940ddeaa076b550c7959b4ac7e2cc9cbae9d8b2b668ac0614eaff74b2762bb2b1131bf54f6dd5566bd3682ca3b14a6394c6268de9c050ba5e5bb3fa8989ea27929b2792db4913c9d3ff0b055e970206d2656666664749e1ed8031741c4762be99d3eb9e57561ab92ac68d5c3565b078ce36a4c83cb221611d06ca946094674059d0348253fe32e11c8253fe9912ac9a4230ca835c35598e3262ba60b6602299454c164c2226d01c8277b29993b9e65cc154c13c328598414c205c1e682699495cffd9aa992b73d55aab8c8c8c0cd5ae4cc5f243b222d911f70ab34c2c899aacd2e49d0fba07b6335ab7b0079655b839401e1cfaa88d2c1708fdbe5b68c104c05c2a830adacc6e5c077b5097fac604a5f1218f6d48d2eae5aad31c82c272b232fde5823673dc68a67cb3a747b911e982d1cc019f78ca3fca6aca4f159615f0ca6c5d07b178934b7a439674461d16111c6262c91a33baee4d9e94349f87c75c99ab85f58aa75cac3126284988d8ed5c305659fa56ae49a9d36c9bf1c052cb4b8e98d38d1a9b1ca1092814502bdc00e0a3a13116be163e8fe2db942b9ec47370965c2870aac06982f3e4f27babaf784e0d8d05e643605e04e647905ce69a784eb3584f58515853585558562e7f977dc473ba2c1b49d949ca5e5242515671f92fe0391d9b29ffcd8abd72c232e416b9fccdaac155d94ff928a727969bb08eb739d5f8cbf472c1bdf3d74cf97b3838383838ae15979edc484fda7bfa495d5e89047ed3e372944dcab22c71b08eb0582c5609598d0b0a97cbe5a2590d59ad56abd5f5bf81420d3017cecb74717070bc09e3c06f7a37b86da66c52966579621d61b1582c992ec60585cbe572e978b9cd62b158ac9235613580ff316c32cc6318c3b8c9dac06f7a309b662a9b946559beb08eb0582c96cb84cd2a1336611336611376fd5b5898a1cbedb22ccb92c562b158accd4b6d7adcd6a265b66c52966559621d61b1582cd6f527bd503b46cb2ebd2eb92eb72ebbd43a964d8fdb485907964dcab22ccbebffe978abd56ad158c7621deb58d6adcec9ea5e73c9ea019567b28522cb70acd65a966d2265cb297efaccc335516b91b3ec0a8f86deec7aa5d72dd1c8d0f78acc374c008f419e191868bed016ab9548608cc97edee771de81dd8d13478a316d9acd2a7df9e9476cee0319530018e7e3b24dd37a60fb515da488ad199d9f839bf3c0f6973a15b21aaf32b5df41131d3b7770f246a3a3544c6944b6eb46c5f6ec42bfe4b6751766fb29a5949e28a594ceffb2df5cf565a21148beceb39ee7dd079a86406d1b69db4e762369996da92d7ec6375f4c2624b6bf8d3041017374d5a3dfb6514a29a594523a9b929452fa1ba8912a9d2e277f691813c8c31ca594cac0ebde38d2663f06b3ac5efeccda2d44cd54dda8cb9481cbc00c0a333b7e72bb9452bb7d7c439e7027addec2766b1f372399e9465574fa05e2979963d09e528d02f1cb74ce9ecccc94c7e42cd471fd75b88a2733f30bc8538625b7cb2ff670cddbb88ad2b018859f7ddc9a694f6659964d8d4e20d4a7d8761d6cd39b29a5d46b69d95c409ef03bc25f897bd14cb48fd879b259ccf7c1803c7cdab2cd51a7cb4fa9cc3cf90cd390c6bba489b3002b9e67d4e2982e0b17e606cef5bc0f24954c97a6849be37a2dd69648a03575770ba0bb7dd2ea93d60c260c35ae24ea737e6f343d6ab4eb655abdfedb47238376f9dd4fce7973e73f0070590452affd91a1705dfc01a45e9afebedc6693dd1f402a4d5fee0ab92eb614eb644cbf2cba14fb83de1b18c6efa4bfbbcf072f77bdeeeee1ddcdaed728af0d6d55703e86757577de83fd3ef04746b29ee402f11290a597c5222ff6604d2d46585d207ed9512cbad83d580e2c4291a36cbe8d8596b0e57a9f077e4eaa744e12c99bb9cf856b3b904fc8add90c33c5ef61b70b8de21bfe7e7f21d7eb500395fe08eab75491678a2f0ae68635bc1e9dde942bc9ebef3eef6e773b0fe7ed401ab81ca9f8f99c02845e17697a906e6ff82e3bca4dee2cce1bbe53b65d6ffb368e7fbacd931e720331a88c417cbe263e2116686144144678d058400c01d1841363101f4f899189bfcf16c5939149bf50c4c8cf28f8b30d7594137dee522cb70fef95267dd87cf762d2f7d0c51b4e977ac8d79f030cbb1a9837f02092304292d1c7e50c36fa8b1b7021c418c4c76669c148dfc7fe40c40b27c0d0466431c610a38fcd418ad17d54a377a33c9e3941f806486805d10f12c467be8f43918312237d1fc781d01082b060640ce2a3ed30529189bf8fb6c3384526fd0cf098e2d8600da1d1eb8f0b83b46b49942b462273e46e817d00c40a561d84112744f4480b88202f46aff6008b1543fc45d00f461a0e14a3cf0b912f5143090e46260309465ce842589cacc62e048095d1e38a5852e467ec429b2e46affbb8b05f50061531af0830e8c2e8fbb890b18831011bbb90c68cd1037710031abbd0868cd1237d5cd842fc200156fab870660757786164ec421642959189a218fd8c5d583262f45ab6a0b246cbe5e342766244cc68ec42fe4116a3c72f261c222b8afa45e4c74847161b25a38d20aa0e518c8090b5102c8882888e2cb4208c58d99c20c952c46d01450c225d105a64f19c14d1a20636687c01c410ac917b2136688cdd0b193bfa42116307e1a134889831fa684f08d9db2f1481c37df78591a2d147eba10623c7c51522a88c3e9b1231468e4bdf66aa797833d4d021800602a2046c98297f21a38b61e753cf81e528768a1e86654751510433e53ec4209c059120158c3e538d91898761fb858cee856dd1545251c52539c6a52bcaf50742d3835ed2e7d21733ed0a27ac70011a5434af728220bbb51a46564a0cb164005310191ab91732f64a043ebcb09de599ef79cc37dac9069a3d0d6f385ded7d0c28398c41b8f7692382a0c1c8a4be90d1eb422e14c91b4e977ee6917ee9e3849d484343d771a1484303c7bd9051c8c86376d96f210e7d353a6a9d268ac0513ec0b0e40d0cbb953efd7a473f0d0ddd7bef89415a064b80b11a3b5a040d4e0dc41442301ab99016418371f3347e820229446317d2eca00440a317473f8e640545436317d6287123a85c518e5d580213276388172c9c170f84c62ee431004d60abb1a3a181fbee3b31480980464e14327a5ae5c07639a14468ec429a30466feb01cc6089a2910b3f2246af9248219739860536347296d50fad91bf8423c6129e18b9ae0b798362b9caf532b28071047fb1c48a35e6d785383a2fcb55eecb6d564b0b32462e64c1c8e8d5af0b1f8503cb552ef95d68c3d31796ab5cae7249cb25197d5eda68a17c62c8d8a594239863218c2443deb731c98a2e8ac62ef4ca18b558a307e518443363f431293176cf8541322c420475ddfb645af49065ecb2686307e5c8af29ae148dfc640915c0c62ee28321108d5d8803c5e8691be9f5c512abb10b6b7a18bdcf064404b5c61c8cfcb663f016dee10bf2a03364881fbe5ad1d8e4b6e397f93de69bfe2e9c49b87668e2357221c883ce90217e3cd2d78541bc35066bf4216531726110f662f4612723f75d18a4bdf06115c4c75323568edcfbb00da068317222135a24850951601939d12508c370003406f1d921258bd5c8bd0f8e0b8c8c9c388568cda0086ce4c22f8dd17bf9ba300853810236facc1f46f617489396350c7b2452c8ddf8c68a184580462ef4bc183df69a797a974a1787ce72e95396094f6a2e0cc829efeeeeee6eeb4b4e331b4769a5b48a9ba3289dd3a66075c9cffd0536b446288d2a369f69fd03d04f3645eb28d30f3c00518d8cd02210993ef09b65e1297b136f51640a0a72e848bfe679a76f5b4ff55fca4515695c1d46fa9fe7f0482ffd93df6073e95b47b50d2c5fd2e6d0295a1377198b308a5cd2be76032145728075310410b44081194ed8b8a2040600c90bac58020d2fc0204269884de1b21336806e76998bd5104a745c927421848e131b5cb9eca48b58002e3be9a206b77f8ab8cab67f1dbb59f65cf7f804793631ec7361df4972bd1a42a9480299970b839c61691a46d3551ca57d5fbf99f68ed2faa78b384ad34a66d8fadaf39845da077115f7daf74a7b8efb06793891ed873e6c4b90f5efa73f4320a1d534ad6486dd9edcaea6bdc955d96b57d3be868ea1aff636b8aaaff637f8f880f5cb4ebaa82243d7ff000ee0317b2ca292b17dcc9c1aaecc307318d0032233b0083a72851142a8381aa2e585145c6031a4e728e628be3fc3cc098113493481a4850412548cce0317508c8932ae60838791d308c20aa6c052c4103cc4467f04cc9c03f4f062a275841ff0200813084b6ed5478d71fb601c57f1b6f94ca1bca2d9ae6ddc23315b5a6bd125edfe47fdecbb74951bb516acf236e69cb30bf9663e79303719461d0ef368854367b9f3957ccf85dd434840b95e3aca9bd4aa853da5897aa85f6db0ca003c0cc0aa28d7a17419f29c74d24a9947b955dacc83071f808d8a5c457a79db8aabc8d9ba2deee2f67ba9d9c017601e734839535e9665e925aabbbb9b38ca8d8cbae4613f2e5165d83893c8751c54e7f811773defab4fa2a0dac49749778c40114bef98a94a491c6755210405f5d69dd37a92eb481ce51c345b462ce9a597ae6a98bb9e4c71558b4bae371972551422d1838aac5ca773d239ab0c957ce39fe8a553e11b9813b9d1cc71346a7c0c46f9d0f4d824e240309a29b0249765e94f269da1372967ce6ccd56395bb3b5ba24971d648587b3fb3792b7a1a893b8101340935594db532ed3e91293f0dafeccee67a6b44352c8d3e66e28da759b823c99e6accc591df27b0c32c053d03b98db16e91d2cfa8fa7a077b4bfb3d89d7e0dfb69e85b05a2db7b8e90b8ca5fc5cf97c1f9f44dae02427df22780cbf0d886e4b6ece99c74cec9d5298f8dc3d43bfc49142e3f4a651dd544d99c59ad278b83daa600321e8e72aff3be7e1bd2f39f7867be0618e59f62950d3697ceb08a3effa8ff83bef6f4e5aa6e392a0c563512dbb6fde66d9bb76d36937dec907cd225ed0fb6b7cddae962c19096ad3b8b5892be8a664e8fdd9524acf16435fa53a399d3b1151097242760d880b55a11c166ce8412058c264533875fabd5e85f63d56868e6c4e08513e5cb68e67812aa60ad56ab550ea3cb6b882aabd13f83d5a05506445f75557f660e8fdeba247d159542aea0ac55599388ad210e41562b1ce6d1736df1680d957cdf8545d79ffb440dd840e5d2184f5f71943f9785d40a2d0a29d14cc19060952bc1280f729412b48aab281546810df01114e917fa385160c98ed1d7acd9cf99cdeed8d6852177b956abd58aa56e3f0b309c24300147b983f33be4fc89bb3c886fdc0496a42fee877760b8fed3072b0147b9771a9cf2e7b896969999580f96befce52a92893c28c8833c48023a5c200abdff1ce0e3870047b9026a9db3ba6aceefb2c9b355d65a7a8e8a5a8ef21910e028efc6e2aacaee432d2d2d2e3a6cb8a5e7a88af62d608fa9fdbc541375b61087d902f25091878b8e8e293381f5b90bf389244e9b401eed3dfaddfa22ca04f25411878b232bf70b7df460be2c642eb2ace60cd9bd653cf6eb9dbcee1b35ec2147f5936ed241ddbae148aebf57430a8568e65030281ad7494ac6755086f963ebb73879b0408ef2e799432cc945b7633367dbac3d9d624531faa2afaeb3b6664ecbfb76b24fbe0d33a745e4222fc2c137f43b89d895a398ab3d6b156ba55728117df14df8f1cc7122966b4bcf91951dac07f10ebd8cc5134c2ecf2196a4b5a5274b1147f1f520578109e8a3dbef410e05aa3e8b4abee7e1d53bd67da991abbedf367bfa2fecfb71b70470017d74ebd3d714067b7c515e33c7833ce5ef290f7ad597cb5b4001c2253de83a7728bee9e7609d2fa088d79699695c086dbbbb728af6cc2534f9a71496e91a5e5b66e7c1b6bd79a8555847c8b4ece23432c4839b28b18d4775985507ca9de0042e39e44033577365e39a593ea7a07f969edf2d4ee122c9ed02c9e5028a27976bb0bcc59095eb61400047310ce00806187454052840010a407bf4e8d143e8010f78c00382de6e274b010a5080022ed65097421e5bc0f2164353ae97812f031960b0e788d573c4ba19007b8e8eb4a8f2ff66f550bf9aa86137a892f0424e125a682100389e437d03385876b080e5e646870a55a250ff4c658d8d0e0ea8d0466a8536524801059b18ec74b276db489c13b971cf0ed8b061c2096c84e1e300fa81f970e14042093990404363b71bdb69894ba8ab7097ab845cc52d0f879391cc8c110c8cc9c58ff4906d3b9dfea75cefc7e76b58211eb5ed347417b0e708c85540495c453609c46f3f0d7b8e921cc1b6c8fdfe2d1dfa1247cd7f015d0dcbc3c59e232047f1e5eb957a8e58b7e7a8e539ec409ee32e4fcde7db7374e47a6d7b8e5a8ee2eb19bd59e63d47496ad8738404e4e93962b94ac8e54b02d95b7a8e8ab8eb1e1d71145f1efe8109d0b264c972b424ec3962398aaf2f7115e9ad3b5baee2bb4d9c99f37f3af9b4d34b0ab83ce66e1cbfd3525aab0b3a1ef30d6b59a5db36bd399b1afe2a25b95fb146b02e04cb62158b60c9cf6327d3b70d2c8b69d8346ccc92b84dcb4876cbb26de3b8aed3c1e3a198371e0a92b49213c192dbc69df7dc4a6d794c9de7eedf0792d85adb1de71e739bd6755957e9ec3a6fd2ecd20e583851c408b02b2bf67c08d6bf0509cbb02b04db5eb985c5cdbd7edd4e6ec566977cce5a4c8eaaa28da3bcb3dc1f0d13c29c734e1336227074603872020a29a052bdbafcbe06e5d88d81376bb2797254adb5d65a6badde3b6aad75f6cc4c339ba2aace2fa3737394cabfceda35066dddfae7d8b6eb3ebf0baf5bb64b3d9a77ff78f5b3fa55f4d6c1abb57a15d999374709a9ed355cfa1cf657d16b05529b78dee62aee27c2f637d7d0f20de7f0e9df39fc728bdc536c8d8cd66d983fdfc0b006f8183910fac77fe045d6647aa13dbd72ad956ba5b492b5f61479fbec889f20fa38f4c9ef76adb5d6169a5edff3e6d3f7108adee174fa0c7a873fa52268a1da428ef2596bad4fa5e0428c1f4ae9b76dcfac5d8ec32eb26def7335ee22f5297d06b56f0619d03ef40efeec69c89f85fdd33be86bb47de81d5404f569d8454252080edaadf5039f52a8644d9606410b11cd8800100000f315402030140e88c5c2d1308be240dc0314000d718c406258469247035194e3480c624829630c2180183032323220520400801b8bd2c15a53d89e60383529765d30971de8868638ff50b6e4dcabbe5f6b21f632394fc874e3ce2eea251c46826f05c025575940e01b7bb0d4f3856dc7b69e1cac6c460369b83fea55fdb193f85c5cec44dc439b19eceabb32cc31873450659f03f104bf344981678453e88260ad3e031406b50f1894840645571e4f34f44e9a41f65b25d2a0fa26bd4f658a76780d7d62e8d5ade133353429e4aa410d85b12a595563f8f81f3f54950bc244b62bc1360d533b781712a54766a5f7404e7eacdfa5745d9c4ca12f9add0c2b70a3a063f9240a0f540b846928078b77b738ee7e8bf2964966ef183a629511e15f66c25605e10a4986ac77ea63fe2003ef81b2f526227ab436b99b41cd229cae3061ba4458929555d0ce0627e0746048b6feab548712bc0a8e76e4b709ef8173b20443bf74d2c9fa1f63281c5a7f9cb617618e28c6f7e6b1486da0614d5f48b5652f6261cf27a1670d14b6999684519ed28349ad50c62c83cab5618e43016ec4035b8e33a91a25fe79ac7535f419fa4f4528c20cfdb88450484f5d9221177284d639971086291e9b77030c010509575700d2c066666d67167676b3ddf07002d5ad6565cfdf8a6445d8311206612a042e3f8e298625085c85a156015fb7be06a0d3b6329c9b4d95d1eb56e45eb76db8ca06b89edd0e56b5fe6671b4a7856d037623ea635a83430b60e421ab15aaf6ae6d050a401c1bc5c100efaa408b786016b3aafa9cc92a0ebc68db5607c9dc860652238c1cfec579ee6d39e34bdde46e4ff74ee4503da3b26937d5fced2ca5a49d5bf4343e9aebf83a8f3c4128a6f3cf2238efd65998fe1c62db08445dfa07cec33d4c805b32733766207d19f41053ead90369f9d7dd1693edbb7b5fd5d909b71193c8bf684b010cdae1a6c481b10934016e98231d2f012a04c8b354245f31d51f72aa35e24acd4bdc4de68d676f1134362b5533964508709979dbf49db5f9c12d2cd9b287beb8b3237ec94419b46ec753b45c648ab3b0e65090f85ac1d55313871a4a82775ebaddc393a6b3ebbc2276e723359411c6b130047a42d7e78dd25c778b56866bb6149163a1404f4c039ac0b4ab3f0b2077fe89a175b4bd6061e61a494b6426e9a48f352280073aa1ee8cc840c4043fac11c0221444cf3d84194d5b83947126c0ab194b7707d03722ee21e9c4857e3741d37e3bd707c1c0a58f107c2cb15d2ddc70912ea152c2891d10e820b5b5b5658057fe677cb2652ab60df67c4061580c8b7e385ca26859e9b1cdc9d373be839a7a9c51692f1973273187040f73578801f50643689084e84effa484828f9602de1b5a23c0ff1ca8d5d270123ae93c66c064f0bfe11692cd5a4cc300d1c82de32c5c5a722c908bed78356e56691219f7ab4383f93a99bea41d50855ff05b8f6f593cda15faa93965714673546e1cad364ff76373fc2dd0c6bd153db065c8631811c0ac4dc194ed8dcfe36e2686500284b1faee4c7a0688041dff1c5ffb2a1431f4727fbb4cd99c2393e0dd083dbd88caf43a130fbc27940a00fb44c595faeacc24c15df3c02de1dbb7177f10a640a1569f034a5788ca4eba1c20f6193f138fe9cb322288675fdf206704030c6e4f606b7e7bcc08b2ad11c8017e07f36ef7b0d35b35f51eee29d5e88afd8c60b28292c569b4212509258cf8dcf70d38454fec68ce852aef73a1ac5631b0ed21478fa98b22d267ab42c64f6293fff04860f4c8e3e5093e3e886325c37e183dece544176f8ada0b7a8c7b54ba4e290a9ebbe808be66c4be5f8fccbeb157c25a445cb40b453c995e110fa20cb8e91931005fd198f9b532ceba8a340bce584e1af3487c28fdfd3cf44e05d541083d62d3a11a5472ee5d6296d0fac09b98a969b55db2622f881081130fa0d31bc3a90eda4ae805f2863e6fd93f189560978d37eb9b6a525034ab0f4afead4bf682be8c7af314be5b0df0c7dc5b696ce922900d782e7710f8872d6e697a973581e701f5929644c279421abc903c97158d876911e36b4e087998303c56a1969661b0edac595f88cc87ff9f15f399776db15e0bfcb242f65bf1081083f98730f0e99b60ca09aba2ea5d493200f3a55d46428b2302f2ed1f33730c7979455b6873be40a1d463b3920c477e43a2f8b64b71c5c4749f0d5b69d9de25b83afcfaf01a7433f737a19f606fff42f38397a4d0ebdb47fc0d2f4d1a396be6ce5100cbc9be60bd0a15cae2bac37f391a3a4f4cd8314ce6e5c24798bb4c8b70870894b53fb0d0f839ea7a1408b8237259b480a29f78fe7a18c9cbd0931f6edd43cc9030d365bbac79a4d292ca285b471c9ad32543695073da09349f781b42e36d4320da2b48377214ebae0169c680fb0917f8270a990398b63ed79749f8d8beb80315a8c3a012bf7bf7564a18f481ab71f3ba71dad56f2802d114f8ac07227de08c206c88c3a70e66fb0111f788221d985387d8f7fb6fcd916f190abcc973407fec03f7774a093543a7aae7560acae1bfcdf634648c45675c55311fac738eaf8104708cbd805caf5f218275c599b564fc00c0377ad97635b92c89d7e282477694fa44fae993b4eab9c67f34cc2b6cccccdc4cc4c558badc1343933a2ecb7a79ea65c4a24fcb069c112fe83b50e0c77f59e9e07cda9f3fb22d5f013aab2f83c4335b47c5b8de010537c0beb134b54506eb1b01f00c6e6fcb397e8a7f6c667799ef577512408ece8c171bf75768006c662304d160dd184b2573365172f1f9cf332edf5938190c0e6ac2e06c85b81f7688b457ce4db895164dff88e44547ca0927c0ce1f8cd166628334b60c60b309c62ddf826ff5af6329318d47a80011694ac27ddd0c83adfb896255ab957e4194eb750f45deebda9762812d3826e41828dc1108c810b209f7cf42c84ce19d0a8f4957888317825b7db318ae7a0503e0106b44dd35eb35d931b86cdf2474adb5e9dbcd89c1d99398caf79fb5f138405290ebdc33b288dc9d493f67e2037696a6aa941c24e2048c25ada5f4e6c319ba7d34a625f8e1aed128f5e0ce4abf111a02963b9f7313d2fa540555fbb07f23c7bf16c18f3dddacdf6b434a4e08896aff2f01ae59792fdffeeacad630ff415f30c322e9a49d6a4a61fec3eafcbf984c08775960e318b383d927ae444a3eb944c0ca915f9dc0d85e1ad084219665dd17ce9b77c69a8e68a95b2c5a8f69b88b284787d0e8008b1d2e43f9d85e2f3528a6023aea387bbad717758e4d6fc2731833007a44e501be67e8a6a994948832dee12a4f0c14fdb51ce4cf811d3314476aefc57652169b6be2b503fc22fa7a608d857960c6420c618d2700dc43a9c60f64d3901baac139f0b525e46c1636c144aab16789fadc642a7f95a764ec2eaf3450a5d8941d1071ecdf4565c981b3c8c34df8d06d1f489678a2ff9f56a115e0761aac60d118d577f292d49c9d124ee11269a56883e38bf767eca5ced7d774798bed9ce7b53c716e4e419a39db79fd603770e477e41aca2acf40b3654e9834c41424850e1b7b22887402c69b93a7bbe63333cba02f16db07eec08c4a2357e98c610865589f80713b3993aae87e5c590f2e655e97d6db5b7698b942f01d00c32c44f20790673d424c1831217f48643f94eb63679a31201da172117bb3d844b8da17d65d2703867d6c1bbbc8a3a621818ec20a5b1bff5af3c0a626832a6df00f41ff784512d52d3d88a02a228327d3c98418e913526f6de77ada6eef6996ef3551cd79b47fc7595c7f488e4249d77c286afb98de65089fd3df9c7bdf22c20dc49ddf16735f6ca7490ceec342995be142ba961bf6de98cfe49d04b635ac053fba82a86f623a5d10a362ea64fac8a1cea973f6b4c884b0fc5d4e9572d819638dba58e1b1ecdacc7e09c602f06bf2a6db6bb6a206253f04cf57950495ceb3d6508d8358004225fc4eac04377c34a9f1e3d4e22e34d2e362ac0926cdbfc00bfe4263660c7023bae04b8c439f3c9e84502dd6337c2e99cb9210f11a0b2c9121ab5b7e9bf808b550b5dd4edc5326915bfe88567a7458fa4a1e33b855467fdf4e2cb8704cd1d2846e442248b9e8d72f2235bc86262532b9468fea39cff3cbb9b42380a7c3424790ca95f5a2e7e8c487f3b500f2af5823b9c149130eaa44b7e00f0876a21cfa5da2341e8aec8e21f7672fc017ec651be18cbdf41e5b1b177d896f5bae786abfc40bdc31a0f57db08aa701d6223e9f4839e115fd5986bc5e1d887417a297de387e65cb462dcdb9986a298ff20fa4ee09a3a11f80552ba2f643ba91e0b227e3f2fb49733485146dfcc98f1845d2b2b69e86b500418312b6f642400ac94be5dc74b93d68af2fe29e95922df3190713217a17e7a32742de74c6f5256b40385186034244f35ace6543c422663cf3f4b36830b7abb34e0cdbe21ba459192ca40405b742f796ea91f936b447093d19b707e989f4f5ad7b5cc96fdc02046d9c1c26911176e06aaf3fe9751c14240042128aa04451ac1aacf5e142d931b31c89f25a1296c0882e361454aabf988f8491f1bf18e748f01153332ca096b9dbc7e190ad2797ab1ae9c0ed492886f351d9ea92cad1a6a75fc902c55dc90d7040c45fc01f1e3257a85898715f61d029f64a9918584ce08b281cae95d98e5d6f29c62df9e03f56f78f0270c7bbbb34853a90300c4c6c11c38b9f8dd8c4ace00a125d7a93e0e724513e9e2be5a51bd81237d7f89c671d15051f718b44bb0606d9b027e60dbbd41b4b2ef5235e05429bc89fdbbd30350600e73a7b5e900b618020d1843af56a2f06428d9023882dc2d7c1aefe411ed34152291b6c4248c69fcbfe03dbcd7e65080c77a41bf71fa17f461df2a2f56075b35f6981c055e906e72ba34252ac7583b320f05dfa14fd24ade159c3596071c9d457fad385d6a3c54d2e6504868bf29b1eae58d4cf2789010442c07b33dec41192ab43d6cb9cd718f46c5d6072183ff998ecd1fec7e7ea8296c3461f9fd2028f5be9cd1cab6f5480917e7141c833a8bdf230258a08b84d725425a160e9bb2555968e24b140bde9677adbd1485cad12a38654167ccad1c9fe00162d0dd9294d70f2d99d522332996fbb530610a74b3a479b7e5de50b14572537f829d72fb295f81cd8220d3dda2a653fdcb0ca14a846fdacc0623ca6a4acad50e85899672a7eacc376c9715a9b30133bfac3f89915fbbf4caaa9de90c84dc97712b8c0d5dced65a936a4f3474e596084a7f740805ad49c34ee15a855633d97f8b5aa49e96cf3e49c99b7372e7d24eac0da9e7808ab6f1e07105d45a949de7609b11ae55448b4e261d5d2b083b7a5ee0029f89cad2fa5e24f3016883eb3e68283a367dea1858ca9abf530567bec1734dd6ae2673ee252d985f9dd443e10a91515071d644006e5babd640be00e643cb385bde63567bf2a8428f85383cfdad9817f21fe9a13d08b3e640937e1403f3359b0385085b28daba619467c658306471538a80b5669c832c9b8256b72be3d857880b343043d0d2db11a477e9e0ceabb4e5faeb2cc3739d78c25f7da1dbc23311464b94568775c480329a705d94decc897ade4fb935ebda38c6f36361ee8554e6be729691822ccc622ff813c2613602ed40ec9dc10386b4e5d61992871595d7be22d5dce87b6ed20b1c4c0aa8286e72b7e0491ed13d5e17894a541ae7a9d24de2986fb7d6b77886fcb0c0e60e51075dfcb9510d4aa19073b5b461e787968a34f5acf0f3ae4cceb9c15447762f0ed22f6c7b97b22f2130edd147c3e350fbf888f894b071710752debd73566b72251562300c0556a6f19c4655db333cadf51503b13a6cbfd77d5c4ca1561e40d2cb39c52ba96156e4bd995867e74196604a2576a4f1c547771c0ad6172bf6618b283c3cc3303c231b98b3c0e8b81e5c96007296e467a467009a3316129cf5014ee148ca25bdccbeb6e136469a32cfa294d8ddb8351125c2a0726fa1b37ecaad1ecd791424f81f6042ab1a404947c51fd86b27a4b84db52581278235f11e39aeaecbb6f1b9bdb4a84e8d8582aa6a95b9d2674250e5128da56aa168b740d40eb52ec178063584f07d4b4c20edd16681951bb14361ac5407889b90d8a417d1aa61d6f22067407e5f77f1d03b268f0bc0355e7905d701710c612296aef5ccb93963791e3571374d2860516b17375297c94f3541ab74b290b7aba73a2a08d04aede13b8719b3df4588521cd478ea46df321068a12dbd2c2edf31a2b1854cf9462029b1f44ce879deb5098a598756de6e3f6ed870e23a4d3b1e70f845330ac1f8796e8156847315e2e3b631461b0d6195bb21a85890c7f8020e0e3f883accc8fb8b5857bd434ea941a8bb17ed6ef130f565a950e4f0f796a900236b51d5da37f7dcc0fb1a515f74f697553c08ab11c1d150d583b143cf725478f53a8e8d5ee2e1542a718b1221fa7e4b8044ada52e3618f4c1055c3782581138499681853f4b2ef951255960cfe4bcf18c5c03cd96d07b11bd4c7c064604687d65efde82e3ac457d45091c30dea2dc0177d2411dc80df10af4666ea372012f9f64142ddb036c0377510f28cea19c9d63c7fcf4074dccb89f000258abeebc1542a405e3adb0011d66c12a089118c12b101c8c8a3dd9a215b6930b975b3b478a258862f8e90a7164d922f830167ddce7b719cb8c7d603c5cbdbc4a5188adc6e195ecaf0e96cda633a2d55b68a7633becdc1f1179dc9c8bcf04bc3e4f30e802735663df40b6d130ca12ac2369e923c378ecb521c4d249fba0326145b41853183a8ad96a44e3b559dd6f208a0dadbf4ea754de93a693fda8e5bbee0ce9ae803fa3a9ea8daba4d30622558c55d8a9fcfabb6658d9b8e602df04f4f14fdaf002deb80773793217885343a82add9027002cd54bae71532cd26680a5f58e1b6f1b175d8c63b20ca61498dad6d0de47b75a35759437d47d9844af5f6f2f0ebf2ba004efaa5c5c6a96beda1a4c8d12f2686be0263f57344320484a094bbb3f150e5040d72086fb8be6fc671d6fd000363c0f81bc16598a21df29fa427a35419bb74addbc8fce23e9a50993eca8b91c62da26384af255c329dc952f4ee19600a2fbfb26117e6905179d0f2d03c1369bc767cc142f1c37a135d2f7d81f9f7c7b383ef58057150872757af9f7ff88b163e25325a165830b2b4cb24ac6f480cd52d926a74b97bfe5a967fd0e068ddd2b3af2b005a0f37b1f4d0d68b027e3aafce77f21e72300da037a9a0ec93871409c9fcddc187419a179e6b4848b5c877380c2d1e1604ed0be7992fa3d970d7cae68e50e8005cef855853ba99a00ff6d82f54bd6472181db2c67f93bf24aae94a0ac6f19b858385a19107e9017f6fb1627c10328137e35a5564cca72c2fecb8ec712ac1da2cfe608335c88bffd77d04cb110afb093d9bc9c9a7998325ac7871a79455b6cec1efa84783beadab249f24c2a6832a593e971f83f039c9c2e7d2e8eb7a735313c84bba6998c018801af55beb0646e10f62e7590a0d96927943c2a2523ba4b1ce3b98e3bf8b7d6853112dce5445460f704d215a724f82628a0d21fda3c01b6fed4091d1ddc6146ed2ed35bbb43ea29822c79cd68e86f7d4c59d9700a58f406e91724cf3e690412bc64cf50b1336823fa23cd03e9e1c83a3e6335ba1b1cd7cab1bbed525e34c090dff41bdab811b33525ef97ab56840ca05380775a67a7f7714958c2958e17df4333990328eecb20a90104b40c849bf54fa16dab01b4a67ec660b55ec286a8a620fc10dfe70a4769baa93ffc4ec7e478e2d4febee73a5331053bb61051b3495539088f4a85fab05730e768ac84afb29f31e7e41538304f5d2087ab7726233b2855a4a4bc6fcafaeddb7ec50ea32485b736bc841c2972a3cad6dd33e9be1ce28f5476bb23877f1be96d70f6a1e1aadaa7ab0be420a95defdea346e7750de39c5f3018f2159979a470144678100d3e524bc63f6a8698eddd347360e2de3a00ffbb6452a63b72063808e0360b58566bc614dedbe607cc6ed944c718c1f61a7b92bd64dd64220732587b16832a0c5277509080ae556e403a547c4a2d2f139ebfe86d855e565969d7aa1713d018030bd32e612236b1593e0ee578a7c59a6d357b4cdcab24c4f23dace751534d4ba1262881bc2ccddb78e6f4488b3c4f5cbc3eff07a1f1daabcd88d459fe2cdba9635a3c66e60a07aa7854f8fcc16046228385b0c71e3c686ca4ce0426d36087499b07b9648a704f367eea21fbf42b19028ade4bb14e6797e78c21ecd196599fc265cabae260e3b3d7f9ad5c1c07d492f314315e79a46b1be51b41a1fa6b1458986b52e2de290a16d30fb8e207319272ca1c03e3853c72ed388362c5945e4c8bc80d0ff52a6863b06ac5a516eb64818a36ffc7f8865882c741f6813fe9c0a06b9912852bb68382723c94a16eec2e034779741e3d5c311b999384d95a97f0aa8c669e0ae6e1ad984736129df45852be34370e2ffb2051108acaae633e3b30364fe644f48366e2b1e78cdb953e3424b7f375f98ed8ef4896429182f08cd75cf38e1134fa6cf896300e5e3700c1b6cd5c6d2868a92fd51c04826e105f8f8c547a00613c16fe8a89aa3b44653624c9bd83a526c90a1df06dc4934277955b2c0110ced503b186e7ed20a6272f0993eef5144a64ce2285d341cf378c2a76a00b17f19892765a04729aab1a703e2416560652b665cd30cc6f588405e68210f191ce51279e11d3ae87c33ccc669b2acb09e6ac9346286759152fbad33f7c333b3a1365f9d5a135e8c5fa63e776bf59e27eb661f5fe1f70ffcb855c4750cfd97eb919cd4486fe054381a0cf7ea1eb31bee8e110d27f235953892628b1f950bc3eac0b405c1749de88e602b8f14e8f66b767da483ac33714f289e12a2bbb1ceb4b87d6cba269f63912de941837b4bcf9b1f275768612fcadd4b20024b0a19be106f2b4fa8ee7dbd56ccea5d31ed2345e39312252700f7712a74c958a0e1d46974a43a44ad3f5daa8bd56bf8cc670a75dc8890c89c51116ae0bf23c7b3827b132375c43ff0c746b2324ee4a6351498a80489cf431b88696f4c0c48814c67608401d2692956b6f3a037e4520cd4d9731a6feee167c0f5a361a55063808d351045306b557523e561c0606b1888c72a5037aa9ca63e3ff2aa837957f966f67f1c3ca77e9957825a3b01fa34b34285f55035b8caa1023cb7f03f22934e1bfc18901da9c174cf1a5c169f3bf1aca053c69a648c45eaba094e7d67e8d48e885e4c903e67a18b75d2e3365784a3874a4b537169de08a2cde340a624da22f308d4f0ad27645408b511ce9780fe279d6bce043f29036b361237b3fd8e9565376cb707ab31973bdeaa614ebf9444e4688a1dafcf64acb3081eccc732c985dbaef3b45801ba5f55ade3cce2acd501f988322c30cc6d8dc9108147cf3f69c55cd91ef092b9f511974166243d3b2dd696052547ab6c916246cbd28cecca51f2abf835a29b0a73be3997d0a4eb0425b4342f6e5838945bb9d9cae1abab354aac255d1ac884b936764ba6d9d3ddbdff53709da1bfd7442714857356b7637accbd61871bccf4cf0601f9da23dceba3c4f4008820a170fb723b70ef57c7c48c6b4dba9de0b2957182fb78586f96271af0ac3536f115bbe814df5857d29e01781f5abbff51ee3d00632640d5e2b3c8bb65ae4725ded76c00b3e4c10233a7d6caba2da20643c553b22c1e04a197a36a21ddb8ac7d51ed11a6cdd41387be1b89f0f22570aa06c2d90c2a329656300e1e0c450a5fab2fc86a1bfab658ef212736c61cd05e71fc955d1014cda4c6db12992171c2e7c27165d8c05902e830b804a070504afd19cc252a35557d121d238235f44c3e97bfac014c2bb25b6aec71aa64ce416d8eba8a72e87837eaf48487c477b09202f314229fdeadc6fb5bed75d8a964c6038f478a8a1c8cba851bdbefdf0f61cee09662a76d05a6c878453026903fe1cfd0fb85e059f24a0c48d0d856c76c64222a24df918b17b5b468074ac1b948acd9e2275a1827da1d4be1bb3d0f9351803e16641da53fa38cf484bd8e40e92597ac43128608db88cb4e6f78fe2c934dac2b0aea6a832da1d5808b1bb6b365c80be6a504a17943da167121e41a0c584c920da457ce05bb40dc58689533d7eeab9cd79c6210734865f4de4d813905d1b9de3c4d1c35c1c38470bc4095ee5f0a881a9f15a55cbbb1de78730877cc549e2b1c29520a899b144c0014e1b3eb5f6615d23182e0b8cd176c4471665543031668627328ec56fa4bfc45197b134703a830cad9ca2082f80868d9f5fe5e64872c94c899a32e763e5bf09da789bc46f6108e4bc4aa64ee744834302b5a4790a1d2582fabc4491d0ffe10d84969aa87428a3c6d2254941aecc290f6153453fc71f532399adc90dfc87030b9816b9a95f0994d036c5e184864932df8364e5e3fe192250f6285e60e4c9bc0c58ba30c1b82943b63a9ce192bc8ce58e11427f435e1047d907ca0769e675ce052c7e02e80cdf08144b5cde0a6b0572f3509f8c2751a6b488ba3339c0c904774a507519972bc2ec63f99a94bd17ac7ac04bd6a305c37cd08f72bce1f25e04a95ca3849c9c5f5ab5813e50c8deb2e08f4d3534445341ea198b58ab8a9f59570ce7f69b7aa3441a18b5ac0271d629193018b9ae9c806154a23480ae622c693ab0814644785fdfbd3752a5b0da9201ba41048c798b5a4278fd3088f03a57715357ba91d163f4a74268bf8ec71adea06502a66595c2451826da0e2b0cd9c9b112cdf055acfe4f0c245f44906fc385602f25eae74dcf256b6a930c921a114c2d173affe3e9208b869515017859d69d249203e7b5b816948426e108438c3d8eb73b97ce82c0104a218c4ca9c40ad4c393980e0413d78212d04620c27628d1e0fe9ad5b44e25c8c106dfe0ba499489c1cbf71d01402cfa18544021568e52bf2a35352a1ce2c818131d01b02e0f079ea1b359ebc8856ecc38569df6160a2c4e628f57780f7894d94bef5c108bb4580f9582a08dab00048cae09df632d3f5a39e74b96ec96ce0864050d9bdca9012b902dd2761a07bbb0b78b82be03631d86d591507e3768b000f1328fcfebe4787011dd0f5eee72393a6681e403d285aa5f13cbba0a8139bb98d798838c955fed8cf0b95181130496fcb0b7317b90f92b30025fc8b04296dfe91a631855e9eb691c04c2556341b783a246844d4084b83edcc8148262e4a7a78cbe242778355abd78c7156ab3775773c8836e20f4d18354fb2596829bdecb498d198635574d499b298bb08a5c8de845e63c7542a4e7380d5c754d458065661b125a91044df653c749546c039bc75e24f06a6515d5ed90d507064a9a7a048317b044d502615eecc08db55e69dfd5fd57b1c9a26f65c5a805326a386f1b794114952ccf71d08b08070f5ac2297534030ee5a258bc4b6dda9514706a1e21b71c16b54893269faf78618a3d2ee2259348da77f6e8df2911fdb6affa023bda9d508c176d3833e858f508d1fdc40c143f6b41f7eba8376ac1bb0cd591b28b98ed33f0eeca067c9bc6bb48cdc00bf543fc6a2bc4dab83be31c8cc5b242705c48be197ef78a020b2b3bd15b13570e333cddcc05fb1a490d246e390320f574f619c8ec2b4374400f567e3c4080d3f3319701819b155d2b75b0a4ddae82b4295dde9aa4058dad84b0bcf15e95da257a98d231051a86d1e54ef8b00f89add00a5642e6ba909e6007c4513acd4804a2242f7cc3cf0cf0441e706942dfe6d6fea3f95589c5fdc9e66e06ed3be75b9cfbdb555fd9aa7172654554ee16f7eb260d1c385331c2abd8885bfd3f7b4344fd1977c3922e4a7d1cf4bae0cbbcfdd42c85272baee91d52c108631a8571705d98cb199e18feea77dcbf9b07c0c83463c829eb6fe69a864ca16bbff566a760d57e3f207911306a60bf228e752397158444e10139aa5cc399658033e386898facb1abc9b69347c04fa99f09b2a789fa4df9435424ea43125bb9559d4a6bf675d8f28f080bda66d2c7f39767a29dcff823848de191e8dc39178ae3dd2279c344ba3baa808f584aa9962917f227e73a28aef080ff885100ededa27a40335db860fe6486ded453a45b662d9bffbeb8f6e1b7889ad3e94dc6a851b417b7c751f1d3c43db096a6a417e060171d98282ee5563450445e287bb75d7be28073e121f7930176a11e8a447062fd6b8f01fe09fe9b983012760d371bcb63024ec35247894ac1bf150d8222246ef4554f3c773b76d8599fc5ba19fb8cdf1b8a3514749fb70035963360ba0e44a9277fd626ac1c79651c03d5f53d7b038885d90fc463212dc2c66b956304f0ebd7fd5680dd38cf2b99c9c4b741b0b984c0095dd7a75827478a456940dc8c2461c9924ffc1ee3ffcc0a373ed8a002fdf4cc71b076a942d9778ccb03e1d427ba53d97b9d5d947975e982e6a2cd36f0666a3fe0a0498c3747cd5695d1be069789eb197b4b8696a9e305d6963f5e8a8da003f036fe950b31aff9f813786dd64669048f2c5c2f9604055f600cb315c679a33163831935dbf5e18b08e75f5521f629460468cd75bee7e4e85e5f3fabdccd22a58c1cd06aa45732d4e90cc64821fa237bb7e606bcd2fb3455f70cdf111dd1441a7f68cc340cbd1a385929e7fd99314f58c4a5e087fd278fd36b83dfa4f8046f868c2bba0ba971be25f7df9679db2bc8f1afa9255c7713203ce106c9cb7a437d32d57bc79ce5c47519ca83402d4ca90a982418c297e98f6d8bf415c7c18477438b8518e6a385e920db4c941cc922e8af816fd30a2bc48d9d2dfec03c4704332a8bbdb1c930c9a303f0f2a240c00a8b320e4fbb43eed4cda0383c6a9b3ecf92a9a6a582085a67044893f1d2806e623ebb73e4cef531e2d49c50f2d9929e50af479a1dffcae975f0c4b86552fadc87d38595df96b64357189d1c4c071d6de90b0725c4d87226c5a8303839eea4e38c6ee84f31b675255a31ce90d1bf17f42a13a912c3d750ff7ddec3f861c805eb58c35e61c8c53f91b0210f9315e5291cdacee35bb48e120190278b4f2b04b160cc8bcf82efb2096295e1adc1529e649e868db0d32e7eee69be6031d365161fcd3889bf1df214663c718312217491a74edd480d46c6cb57d6244759b141b68db15585c3ec2cb383be1ecad54c26404833d43049cc0f55b9852bf0848232c2f6afc0623798e6755e7a944c23c4fc6331fead1a2b0af0e075214e8f7459e7e63318e891a67a4898d57731bf536634a7dead8bce5e62794f5bb6144ade1f6a6757a7b128b1282f49c7de74a6611b3161a372f74d3d01acf677adc97c8aa9bacfe8ee1f3b8c637386dbc0c1056e365c025cb9a533f846bb93dafba3b4c15d11965a14b54b43ef271d1052c31e31aae0ec8864106963d87aa8671d104f4eb99e54d8a3469ea2017e683cee52da66bd811ad3341b7e726b47962ccca6274ae23377e4fd3485a469d0da244b57273fed600dab5acc99688750f2bb90e990fbe878847773839a8232ec02f3a41ced9490ceb0d1c8f7a2f796ec14a58a747ea8cf731a09f1785798393421e549b37aa8f52d41b4e56b3ee61f9d1cb8f6068d8333289e8cc3b42f1d7979dc640249137b6a45f62f2a1188fcbdfaa5a2199cf4503b917898f6e2b48e13f42ad29e5ed528f35dba73c52b5ad9ac72404dfc0a87990bf702aa7acd855fb1380fe9cd13cf712553edb195b6d4eefe398018b64a9f115242a405805d377994852f743bd24e1483d3c0bed6edf01822ffac69770c348cf2dac48ba94ebcccb7df37680a7e8f1a5b4b89e053b8401ae2a8d64ca77e88cc986690f6c0556c749fddcf116741decd6cb932cf1e19ce3856354ac0b7da7dfcfd91680b05cb4a7aa206c7390b28937422f0d92060b3490ac7461605361947a5d92bac411ea774f90e57dc95c9f8ad4ce78a3f63fb0bdf7f5dde67b454141bd43e849aaf26f2716a8d3ef30ed4f684a890bb21923a22a0681aade1e99c1c6bab88db08186e865f60da9622e6eac28a612a9a6d2ec8f4b5a1dd1c5a129bdb866173ca882ae18a46cd387c81ad88cbcfc66fa916efc026912f95cf1204e70148b7461b50fbef7e73eca8bd5f14f5fa2d8efc9e344600c574188c60d23817c169e1de5bfeb13e262bb443ea5c564240ca68e19d72e27c2f5470393886a4a73083d8d7cc3fed9456c8c2b1ddc2a2c713b4d0fdf625ab65b3f92406832912d2b1a8c86820e1df3dcfaa38933b82a326f0a66ec94646bbd218c292e7815510ee27ff6ba34f7f81772b238c9e4382a664223a0caace3138aebf2099c442e90013b002b41e9a66a101c575a5d661095ed6442c8a49b7845e99e5cc617208d864425628df9c132f48ddde24359a0438bebb3960bd274f81e66115c4486669640471340ad8de592632ac2bdaec83fc4d353845f89749ad1ca811d41511ce7e0112e3215d55c6ee969c9fd4d430a74f5e5502aebe16613d09dceba1ac2ed13f3ed396c3226e84ac7dba8acb04e9f34a2d68024d5c11a19ac53d3101bfa7d5447d0877ffa7fc886b2c76aaba10b70f08391fdb1974ca7a6d2d9852fcf27c7e464b0e1ed4d06755dd98259db46c96de65195420013905304d6bef691051fc30e67fe5f8f03f85cdb9946093768ef33705f1a84925fdba41d79e20b59bca0f72677e6ba337ad4f5e4c426ec6b502a2e29362a3a75f56c822b81341dad3b4bb0a3d13c16b790bf1fbc3db8d2fe8158e44b9dc230cb8d7b685e4f8fa5acc7ec7fa98b61c6006eccd01f3ba857aad35977f026d19e7d2b76cc2fd9a0bc33e05a7694e62451682d423cb3fd50122f95101c3a93e46cd08a519d51f9e84cf7f6f406890d21471119269af90db7201a6ee7ecde1509e2d4dfaae856aac02bca4dc4345b24bc2b8743898fa26e4c15047e94aeca6a090f21f84d28810112ab6ac8b230cc6a2c6687ef86a34e23ece4ffb0f6e02678a866fb7028fc811a018a59282fda13a43bb185612e863f145496b646707dc8dcd07ed1201d9f766a906417fa42db15238cd7ecab2c25ac3cb2c31c942e8e8907ea59ee38316427387bc09ee7143dc2d56f7057e06e2a7c9734e66e41b8205151b888ef32070e30e291361e8791efcb8039e577d4dda9748c769718c4d98cbcd40616b66128f9368d686dbdd8e81c4b8ecb6568cc2c20372ba739d6bc21045d7ce1db18d7c033d8b18e90e28ec55d0070276a039920dc8ee6d3acc3ba0091b5245706722838d705a72725850b64059047aa6d80f45c025e638ff66fbeb9f1f9328a0343c1a0c34200b070b5c7c93dd6d06750d5f258437b94703345c344e940667645e0cb479fe21bbdf9826f2be63afe6c927408d7218438e0d216a058a28ab4e91c199fe35751c7d5ea02173043080fe31da4d5c0283d89cfe86c49b30cc81aa82ee1050345066de1ffc6d73292432dcf21845df1b0228e15b0661e9a24b7f926b2c7b4d4c34b1cdba2ff6f1b2aba91a08dd8035bc0fd3ffbf457101ccf94af4c14b1fcf5504458fa0c79be9f8311864ab2605dd9932861becf2d8b70423ba18b574ab486949c10b77bc01a00ea4fc0e5b0abf515342763ffb43c766fc93462a434d6501f693a8ccef3a1777d3a64c96ac60f1e0cb4227148117273e3fc8130ef9ee0d40820366ca022d97fad4a93631252ddd45d43a6b9478c1def660772df8bacb4bc040dc02639d375e94eba545f89012bf85130afa1957e5dccfc1d4554bfe4b0ebc306a47d0d7b0d1bea76026d894eaabf291235cb8eca0735f10ff0870565fb84f6078274623f15e55d83057083e166e67221101505c0ccdf2a684a2093e0728f3dfe5049acce466eef1ee543c815b32a2ee58f734088f0f7c3608a25cc512b99d914611af4c40d56654e12c1c4eefd55f942967fd8dccf522b15a7da63bd8dff9df132d0172c03d0d94abda1e5b3a9b895759626e2fc873e768daabb11dde425d51fcfb6714153a2bfc2a143234ea54dff2bc5c1912c436eb018aeb146f0a040eef25cb7e630a6f210f75e5c0c77139771fb97bdda86d728244557fa381b4d3b0a11bdd8e1a1990273c19a1bc04d2d310c1087d969832548facde7f8cef3a88fd998c4e6ebc1a983752bea799b459370ca7928f35b0ce38b5ff3134e8fc36681b2e4619932d43078cb75d07e123d1bc1e52da003992393e5231a4b9749b97c1d23e12d3c11abcb8df9788a9e56d3413ade5b0ef7a3466863f8db01a678d5c34082ce39bce0450374a1edcd3877550e309253074a33daa94e85f7cb01a040bc27c37fff2434bb025c9930250287ab929033be2837085ca7b5d7a508fe362a1f93687b21b661db06283e9859980bd9a9b1b599f7f29b75b33f954475dad64e21e548538725ab05361c5c8407826a0a0f37a8ca0e03e11634967d9e4c5b1815047aafbba65958882b21f834b05d616543c655e9fb57d1de4811b2c0a4d0e08360cda7fe4f15200f6a6e9d8cad7747d67c0a6a82a62f5cdde535c00544c4d14fb1b87afd1c3b8c7f37700285f63d0f358bfa2edd9dbc64c327a6ded5df0b5fc30c14069ae658d5a224063fb56280167615e1345fd67c0f423e029dbbc7d2fa96bc2ddd31172d43d719538ade45c8968f3893fbda05feb5d8f506b3d1d15b54bce3407c1b818a5119ec033ffdd3d0a6e9cb15778fd4ab3b22e151ff358a6b6dcc3b3901e09da013c3f0b0428c99bccf812b2223937febbf6f596651ffabfd38ac9d1c75799e1d19fe42a5524a20b76b417754f5c9257776ea21b96f4f23cb9c4c1eb84f21a47f2c784b36bd7b92dd0322ba01eafc98be11c7e53ada6a059c1c09a545014bb7a1ebe61420d7d307c8b38923aea82d85faa7e11eee8a9eece07876d961b4f4c307fb65438e2f7a7d45eb8b3f5b6cb899f95a9453a883e60203bb8c41b265389e0b97e1c4bb50dfe0c87aafbe4e572306e90b065c608f9858befe33716085e10d4749a8ea25750058e132ec54508f0118374b1c72d0eb95010070b313995e86a38a177199587f6c089ae225d1d280894751f69863323488830bbe6b52b8c40aaafd4cab456028540785ab27d77d52d56707591ea98c782e4f0951430da85875a1a86cc1f7c84ff389da2b4d39ef7b51316cd8fe7850370cb3cef7cd15e8c58b44cf6c7ee311dd701add84866bcb6a51099c9eccacdc405e0fe300ad4e3f8a127ae68516f4417ba18d0d5a058a0082f9d97acc82d2fdc8b8cb57eda1d86cc8cd74e8877642cb19f4c2882c0c395db676103c1d723fa7ab516e7634003cb1f1b1f24673e3c134cea6d31734e3f7b859ed04145f0a1b8619e8c90bfc1eabb7b12435521eff1cc8d9b7ccc6d4020261d3bb95e8b9fde5f5d0f835420b886b7aff3f480b2ed04d3aebdbd64e1e3d8dc1035fdfd1abb2fd3db149f62f81c9682fa5750dcaed421d73d23d685ada21e42dbdba3201632718ad13453e521df36f8a492455ca8f53129555854f2fa72c682738d028cc2610e99c250aeaea103fb4ac9383f41b49aa0eeabed8d1544f202bd32526c4e987139e777c9f068afc4adeda583f38ac1ccd046b719fb503fe66476b28adacd2b9a6748049657acdce97bf85bcef8585c3fedab2eedd3e91e63e1ddaf088c190c4e49832b169218c6f4b902640c663fff3a6803dde4f457a8775b96ab5bbcf489aba24ef0bc560fc0cbece6dada4fb688196daaaaa50b9e2a245728e0bc1f69ad383ea99b872a0d66f5b692e5d4e0b13caba57a1f4b09b8a4f6512a6f9c7798ff378ea8aa1e18fb470ee895875180c1e292949705f3707b718ffa0d2a2ba619116b99cc6b8d8eeed70eb662924457953f25e8758228a6caf21dc75721e35332b89f8a83da8f484fa28ca3bf360534d4ada2525263daa0e79c0611ecc491f54b6facf86046250d54e8ecffaddde358072dd28c10c5a1464ca02fd242482407e98dd404c722c534eedad11a8ab37c5a78a9f7b8b55c69b12337a6992100245cc4fd9036242d848f0bdef5287b2fbb7998b484eeb17db72cbd76d1b2c844e4be154c189d06db9ec3ef9c3aaed91286badd4a76524b36dc01c54c5609f60eb9bb962009675f790af799d67cf85e4ada06e575f51a931f25254499ae60dcf9fced9a43d86ce2b804611086fe1ee8484f5b04fe0310432c95ba128f19e0224dac6b8c92206040c9df113bebc4fb7cf0df1a20724eb7d486e106858451aa952a547b5e102dc4214ea667e7acbd6503f20d159204010a0e7a1c1d3bf5391369b379f3f3b671390192abfa0750099cf9f03b48150505d848028fb3807f991fc0b9d6b4463c9c6e4068c8ef4b702ca27525ebfca4151d3fc491e0959e26eafae0af589413ef5ad786075acd4b6a4a4b0c1d9e9aa2a705219510904bedc3c49888aa210724a86c1a728b35a90349e3b9d6398bf7398869617a656b316122920ed2df9e9206c5ba7df7af707f534d7b2ee4d6d27db5cc18d7c0990db68d129df5c33ee183789716a3758029c2587988d617ce4e7934aa0a2bceb30bfabd3438e074ddc32a0c0cfa8a3ec5d2214171f7c60c8efc98277e9400e41376df484e33d0c0c0d8b51404c21e2a5a8476d194fcfe6cbad1183057913ccb931b8f9a85ab04b0d20cdb5cfe4d58808046a0a36a787324342b0e4fc26fe85984fb8746b7f278d1085aa0d530ace413fb6beca6c8765fe123bf25c7a691309848266bf89ec53778460733b8a9c55e77615b1e004d028faa36e6153e896d60c4838e2185005ac24868b161c8928ec61eab9f1782122010c2d8a18a20bc8f082ebf0b9be7ce8a3d207ba7192c250f54b00d6be1a53d2b23ececcfe386106de970bd19574f50ff3d6181a5b3dbedd3e1fed10c176186a615c5882897c25422ffe693c0f096ea60217ea3ce3f7a4b431423ae7d81d566ccfef0ee93ebe27963e82f3e7f620e9f1b0c42f0ff2842c1e84d29fbdbc8a838cb60b4bbd3788186e902fb541d8c506c9be06b1506a108a1ceaab696013bc19244c65104764909d8f41222406f1854176097136d242a516724cb4fbe10b62dbda0b820abbcf205c107b8555b0b6e8b529bd9ff4415a783f5b1046aa59ef8ea79760e3e71524d4a8198976f98d9ccd054d96abad9a586a809e4e968151046cca7c119036b4deff28e1a9d0b3a07c44dfe0ca807417d79a426c65c56df3c5c49ad81478bd4fbcb3d0d9cd90df3b5e90df2b7c5454cedabb49ebdda6dfe9818061fecf3861ac0685a8db9e86436acc4936b1c5f39addee3a046e0b020ed6ba860bc3f34c5f119532b92e06badf0aea42ac1d2489a7d2056403dd9d2271f1154534bc3cb426daf3e0a86123183d4a49bbe4986705b4465d2f3afb738aa1d6781680b8b578ce8b033987cb8b63727148391ebbee25d75c621024a0b90f891c3fa13415aacf24cd05c22b5006aa77807f47a69a9f5b7e4f99606d3b3be0b63d4062cb95eb338871cdb5e10819f28ed6e3baf61d41739c7d78f44c108eca57866d8a6b20ec43fab528070bb5e3843e6f4f50c0574a51692ac62b314b34c95973c6cf0f23c9c0f1a58a96f0ec8b06b95dbea044df7b7b4b2d3532eddac972011539919e2398820cc1a9214069accd4f14510fe74cc7e13aceaa8285be2b384a764f30b567f2efd8b9a9f5dd2b5fafb33335f4cc92cde063f4b04c3b7c5c928b8a95db099a0b958898ad492e984217fae46fee7565072314afc4a89ff6ccf7a3c0aa8136e2a240a6cc4fdb0ae5713ca4cc07f90f74e8833335c7c98491e48195ba2b338a13b6d099018e2a0d4c80769c5540ef1561193c8755c9843dfcc6b7220f714ec341a50c0444b4656806e789bb018d60423359c42eae27939a95db4e0f934d9fe36457bef83eb2c5fa278913c8b1c8b1a06a7a97de1e4ba66e8674742c59368506592340949a255e5c5aa01d17d0b11870970c904e0d20225da024d1870c57dd08e9271fd2c5815ef4d814e3a467ade2471346f5d56923e301dad84f7ccc6f7845c15d1003323840bef217318f830e5c16949c9d46ef0119eb65c06b270df9be9c76bc4b04f497ea2580f76806ea6b99d115cc4b8082012b0f78a13730cae8276e3aef8505d61533053146775562118b92cbe2b1501ae89b4e54f4f76806f2d5783d22575a0ffbcebadedd95b8d7259e1672192dfb962e36b218637168412b74b0ca464017390636f2101a625625090bc9964dfbbaf450996ac1a611ae9024f0b0207a38923e942a0c89370dcd8e65c7bc97744e32fab0f3c0a1b9e0874177aa54b14b455348d60a422beca64a17dd1ecd83be0ebbd20275b82a356ce1e9df9d538562618d869babd4b8b0232c51943d6902e1eadf8f23558ed4f8df501bf4f1d33e849082f623ad040dc2a1682bd48ae7ac9859b2325490f591a307dfe99f680cdebee7df6a77ddd00d3f20d6b9a6fcb17908b0beb3133b8e23995990cdaa0048931ab776f44f04b0370d205dbe0958411f08102640a101576b0314c54fff9f282c6dca9862aa94c0eb3be9ca98a198fb8865f2dcd7a1ef23e12093820bf79189a29a67d3dd275562069ae8e4fdcbb410a6b2e2840430d695f697822e703e1fed26903f34e46f2896b8c842895683ec38617a49d1eca9290857c9d58d509fc0e0e4910c36970664331cac3712047e33a1cc33f99a4f2050f3c9741b6307cad507a62d9d9f1031af7270c9313f6c7883be82d72d27ddc1d596f0ac4823168b47b6960b2b5d2e9abefc780d7315b968efd530e82bc4758852c3c749dec0664e2813c71c6680068b2d61c31a2d6a00a254629b37a7ef9c7002531f9441aef8fd7ee4660d38bc8ba2f8909aeac31c06618cde36616b0014317124fa1cbec3b47349bf15d0ef6f4885b16cc8c10e66441463e18fd171399403ca795824b3d6fb5f515b1f84bf884c5eaf612c6d8b8dfa55604462e6b475807eb9429155b69af0d6b7eb2620bc631f9941ab7fa138134ead70350e1bfb8e2993e49dbadd24669fa83c6bc2f6a24b20e3e47cbc58d90709d6cd5e7bd57c76fbba7e7fdf738c98e693ce108a11bb984082b1601f6cfbfff08cde02ca5a30b928b7b0df7b64ad7fff8508484ea125b618e93cd03894b0a758201d5246995b9f644eb42b52a174b8e0ac3aa1ae6f6aa200e47d606f3ec9c27046a1543976f0c8473ac51cbe65e6ba0a804362b2fbc1d57468c8a111e7c5a79ce6391650cad680cfc25e3205c4c7beb705f77e2e5179f5cad3b5b5c7b1928251c444b60e9e4f3c1b25b0da712b8f8490202d6486202facd800e27c0510307c3487e6a8958ed32930a62a86191b1adca87ebf3e228029f32dc2f8fdbcc2f6f39a0f1566ce5b8007dd16275890f423afa5b902c33a88e71d101cefa4c385afe7dcbf08b19c2665e8ab33a070321bc917d78d0e14bb65b06c828ac6178df551c7b174834c6d6464f361443a267318ad09c4514f78b14d4f46e6286c38b4194879bd3e8be1c06e57d2c005f8b11b0e085582d49e0f20f46c481bf5f8df86db647d5ca45795034367e85e715bc8fe31b4362071481aa40c369fa40d9f457d211bf80d6850f2f216f137e03820b22902d14eea437985bdb227d99f1da97e3f996e0f337b413b1545c969d3f861e363e859260e89fef005cab316b6097bdf42e812bf399481c5227efb12e2cbc26b658bc32103063b3f7d29e1bb8afda4f67c290171cccb00fb0a7824e0205020f3cc03c20b28395a3b6e3134afd3f6aa628a290714d53c25931270d57d136803045072c4082769e6562dcd5bb2c190223c2d3954b9d0395d73de74ce4befd8cea908f99d6139c1b41eb44028ccfae5a8f80bfab4588ec8b5e7ff25a451b91c9403b36071e002f7d503ed298fdca32f9c3ce8713c818cc4da8494195eeab395d4c880bcd0a06a6976d4fc2dae8db66e5d74989096699662d1c4f539120106107f12248ca7fbe50e586abc12965c94e8448f0fa2c52f75e03582e9117a6590c1708464ec94389130d6d6053e0ad3b40dc6efdc074173614a7f108fa13207131dd638eae79d872c653e8d9b3cf1e3464cd4732f49c3548762095945962e06e45ed01043a8b5a8b1d3978ac70d3a56aca8260e232a9f178aecbe2be1441b377ec57f8330463854c845f83de87a6d2aaafb927580325197d545bc2c20da17dc71a313b3dc36c41f25172482520c6deb251db6bd82609861bcecb65c3aa488004ce4e1e6d506aa13f108a61aa07a233fcb1270b6e01c7533a0836fb9777a0abcffb8f9fba3c2ea5df8133eb86a2d0842e41d8f4085adbfac4333466aec9d6586be2fa1a8c099079a201f11810196903d7b817233f2af1a1e2e1a1a89407967009727117cb60e4fd738b6e9650e28da74e471a53906c1365507dada1845c71ad105846fe6158a75a37d7da012fa4e4468481f11d4fa7bcaa7e9d9c4538612c528a490b2f9b04783e46ae67e0a7e97b91fe13dd551dc17929e1a72a26a19ad9270bd550165e158f9a9aee8ef0e98ad3fec7e086a0cfabb14ed56602607ac4339de3018043b4dbd0862c5e530bdde6d8548a012d7e2e4afb6802a9ac15fd5a77784626c645b208879255717614a16ba60ba4ca343a1f404966ee86b6f724817b497e1091a15205454c06b8713ef5816ccb8754b540450fa493300bfddf6706a2283ecaf19ac5ec5d0855b4af2b8194c4205568c4512a507438402d857676cae66149678bc56a3e37ae3d054a5a1a0a9a47e81ffd00f168a4f12f71b13ca8381e574c8d00704a019882c3a8d6b1d718f85ce579ced04910cec28ee664f5c5a2e6eb7427f54d351005325e310ccb242438128500acb4bc52ba6933bfa816f134b74a99c24c85ac278c5e2d0f9bd3c5c24034a9c0356e3c2722328b0a468204678fc7cc69a59e4dc67431eb68711cda1cc72d5ed9506bb7cc24fbc698fea43edb4b205fef23d194762e1021349c8f6cc3bc44ee5e1780e14e4546ddb04246b31413d332ad19ba8bd2b1f6c357695cad13c00cbb60cb4e3405ceb989372c872281a8080f3368241fc4db14c03a17833f03219b4e31296066bc5001424afeea4003bca465278880c55d74e95b73d3ddca224373a564f47b88c6e50a582f7a873481cdd0305959c2f3271c4840ca35642d5d05110125621ef6beafa4076828efec21a7ac486ae2b1a968a49e9c5d51839394ac247d9872a4ae76ac2e9888bec01c6455eee8d8dccb88a36596b3118bd1d509e5245f64dd002e5ed0da53dfa0c3bbd1bc398537776e43d63780d8582be37681a2b71e84730f5bfeadf455c00bc8a076094c103c1de10a67ece63324eab38cfde4aa9b861b9ab0c688cf5b0f185325e8836b9c267f69ab1b042a9b31a4e38741833e38a1ee585d3d18088e78f3134128a06763689aa300397975a40f8791cec018401dc31df651285bbf12946dceb87d9bcbf090700f3ecd8a7fc9d47b8c553b3d00bad376ff7e5a0a3ba64b7b3c119c291182bf4279893c1548acf2c78f451b3addd7586c68c17ca492f4c54d06caf4c9164ce180c5be041397f8bed37de23300eb536b73ade474e47810206260bd26cc386edcf0073ed2cdafdc5295632cf2faace1304de4ed550f04665bfc53ef07d15f998c4e2907b656f6e3e4d91bcaa06b86c4e570584bb3b05886830063dc00f6d1676ca4b0af73f94ad075669925128beb32e5f8733bbc3fb8ed9c7732bc66f15a78ba583220f437c12746f02889d5659c5141bf87d0f11f40d6177a5b4f72f387a889ee0c8ff8699a0bfeff3483cb042ef45dbb00cead5d4a206fac3b703f87d6081509c180e51f56ef0ac03d0c66b21b49bb95404b866cab1eec3ad35044ee241d3864a8c059aa8d34e47370405f95933246a07a8eb093bd6db96c2f049f5901b27a757d18c2e1bdc41a385ff963a3435209dbf7d18e3064dd255262cc951e6b01f84304f975f414ea42ec1c4086641b9af09fca028cdcbe4b2625b27991b0f64043a6f0f603d87207e27b697c3896d09bcab284f88359d66b8bbe64258cc6962bfe51316ad50e19364c4775bcd70bd6e395fc1b3384ce901b888ac9cad09ae86e3d954a5e836b62c204a8306a48340bdc3b601d6e08724378994d2d3b8e718f2aa20513bf932c1d48c8ac11d12868804252e6948b81d4d47ae622273183a0b1d611e93ab5cdd8a76853b8311268e8991a17d7c97928d68b184156061c4e42b32213e60b6374a5f85a27c318b194c23c7cc1bf8ccfcc7342fb32651d8c37c17ab64190f82e2ee98c84faa70fb4289ae03acc2461219f1374cd01abec86eecd8a65600ad029592ecd8094a9f1b3651cd8e2bbe8ee94923e005820893432627f58f9afc9ba356837fec497799014d44124c23a41735d43619f8298db6a9dde5c8aacf3ed5a5671f0d9998106f48561a8468379a21ee9dc0c3eb810314db0241144672e2bdf3529cae83f525eb1aa280bfa6906507cc0bb08b1a1a740c29ca4b01c4cc046e6cbef02689bdeccc5224a813cdc13fb2b231964b59f70e9154db0dda54b70ccaa894082d96046105b2f0dd60dc25392a9ed51721a9bf29dfb77dd649e5f3862ffb79696afa0074d59ca94e47bde939553f8b2ccbb35bd859a2473925f5049b1034ae518c68f6472d2125a907d12fe144a810352c6f313c928a24569f884656d68b9049f571fc81f702bf2c6136674dc5823421a859bb6134712067a058c04ec39f650c0374d123ea03a3733d413feb89b8721d4d2b910687f80097f8e88d17a27593d42b4fc47dcae8e63ac1a76e532862273d1499d94a2ec9d9ee5ecd7364d9b85a93964485bc0a14a64ac6c06f646417e4f6a1d7fd88d49bcec31fe6924730bb99b041b3c943f8f3ac21f316e7ead56c5a94bf24875acb80aa6b279e76f1bf0924b7255b7ee7536aa85ca9dc996c8c037eb5ecf93a77c3251372de1f67919a7430de911de228778b795f8667de7960ece20d25ddf2a6f89b813454877cf6875d84f693d0f3dea5cba38f602d4bcaf96345e4f332ce8f4e2c94ccdf819256c149fe41d3d4959a41dc77c0b804d2fc5fa33c0775798768ecf9d37096fd134fd4c5f2426bd54abbab704f75f3dd9f1690784d0edbc9271d60e4ac291ba815d7b038b49d1f4aadf1430070c9eb5d7e83bc8aa516dfca8bc5234766f3368405141f4415318010972ed8235acbd8a1a16d4dcd0c26752d51745aa082f0ced1ad8b5f8a7e43d03b1169e91337bb3896b81ea207b2f67dcd990f2392af7401a83fac0d5e1ea478f9ec73232cdc3c5ef49492def2df2c1fbb0958ea78647436851d84420217ee5e2917b65d4cbeb399a220088a2a13d071c66f040cbe10391b776d6e192335bcc5b64c962171847b4178cbc7f8e73e3d08bf1e906e33a997249299890d97ae76753d2229a7c0757b09a07c8390e3b1045b0ca09aad57c32d757f18ee4d027203f4989b1fe65800bedc2d69dbe097131978c246f686a202e4f1c8f2d00076cd3bb0ff0d7352defd500d098fec102ac9b05135a009f35daab44a92f8ac435b635c179d0544cb306a171206d5ccede16b3ed6ab508524472e584933ca05e2cd80943bd72f49bf4f473bce0a1b76f08bf109102121514ddfe097cb1b7a2b3644f93d934f7276d48d34c2da9e930250455b735eb023b44ebb1b0501547dec03a65ef0b0c983a154fe17df02f0b76a24b0bb6a423d428502d48904daa25bba5b3052326e0e66b110ce6b490a4117847036c80c294a185a7abf5c6bc3b2331afbc55aab0ae15a6e6362dbb604ed632a81c51242300cc01cc2380456b7eefc0af55b0eb3edf68f0dfb90bf890f0db542f41ffbb6bbb67b4b29534a327d0ba20b950bde5ff97957a5e841f6047687ddadab4f304f2cc61c77fac4403db675c24a29c32af1c1507d90a014caa535a04fe6487b2885551f263a2a85be1c45554e91983a3c6392c2489ac4eddaa4c7daead28c75ea10f3a6bf796e2d629ab88bdb855ef51fc0d025eb3781f973bbd5aa24f9b6bdfb6804f3d34b648f1b04e7761eab0e31270b24023412c547ccc3bc91d1bfbc919887f125a09128db1b79f9d11b81f9987fd9d17d11a0ff91eb3f80e0ff78f9d1ff80f998c7d12f3f7a1f2f3ffa4df401f331b23e799d7f17138ebadb9f76ef3f80f492757b0f49be389dc83ebc42cb9c7d585106f2921880cd075bd2e9c33cb11773ece719037111805887aff04d63e12070a93f183ad734c13c8cd83d0ea4ea55ab57a47b039c4f5c81725dbefbcebd17d7cc4162ce259cbcbc8fa3bc641ffaa4c8837a6c77c21ce9d64838619ee6f4a03ef59339f6770db8a4f2ee7114a798c0a15e3a55f56a2389bedf88d6b3b1361509de8de472506b693c97c4b93fcf229eeb5fda192d91807666cbcaaa302f1101d292456ea02792a3436916449ff6964f7bcba7bdd5def2c16161b4e5bb2d6db9c4f6d8f72140970f3d6957b098eb65797a1c2de941d26a823cc63c7f3743951d80eeacb24349803babec90c4b52e47d1d24b3e8e8a294b97b53214e894070d82d38542bbc3da71fbfe343cb8e7e7795dded5ab104f8fed5adcb5c55fb60cd84e4c53326a4b7e00453f5e1ee6c7e86344aba47b97e77f097fb55a8964109cdb7d683581ee5dbe8bf1be903c72bf4fe1c5087048bd64088ed8ef6854e14275ed530ff5aa5b3f802e5708f5be8634ef8534dbf3f5bee3421a2b5e00fc0b3c6b4ffd0aa121cf83e05c9729d745b44a42a1ddb13b600d89d42e18806455d1729a904c1425915e5e68298201e65fde078c38bdf4227eef0347bb10207df5e8b5bdf6e7a3e14b0b7c192e3fbb68cb21f5da992de98c02d1a0eefedf69d4ec982bf1f125cee425a42bda9a26175d7997a4ae1c34308cfee57d8cfe45f4f1f230e2aa572f30bda4c754af1c5559302c98b0aabecaf296c35aa6ea135955b7f2b4ac65287833de9a266fa1e0e144c1f32713557dbce5289b85db52768d70fb693e1744d3a48536ba6d9b15e9f7fdfc727c626df5d895d563654d809969588eb2aecaea9e14b58ac598a70e7d8ab273a8729d0a2e759ffc8929135dd2bafc07af17efa5cbe8b265def2126c9a62d3d40f9b3953b80fbc9d1e558eb23cb8e0368f65d515dcfef073417459b4ab697ad2ae00e0b12dbdebbe7b92c48367e0cd5f9897be8e79a9f8d202ff764f0ea97713497e1bf8d2f7fec875fb6c7fe3a1aa1780245591f4d5e22ee9b1eb3bcc6cad5df154d5aa0520597daa0f96b83387facca6c8e2d227aa0fe753af78b353e719bb64affe57ddafd869f33227dca2ecb11fe627d8a75ef516f3547398659faaaa47187109dff8cfedefc2af029d7a79b7a5979068aad0064d93860397faedccb59510574381e50fff761ef6e5155c24aa3ed955e7304f96533ed832567db264ccf18bb009949ca009a91b444d5ea928343ce835c00a52a45d414332a7a6c36dca5a5d2674c53b3daa54ac8479d887b2e88af6545b6a2a1ef47a10208e6e99a3280fb3d4ef023ac48c3e91916e7f94ae08e0bd843315000efbd2d6cc9997aefc07902f495db75f856fc7fcb99d38e4a3a1b114e9b1bf23625dd6d5a779fb92d6d52b47d92c66a93f4b8f058365c968d992ddb7a74e374a5794ae6e1cc0009ffdee005e0a2f46804170eef7a1df1e01ef505c2d2040d2967709f8f230bf6d204822c188bf3d39929d1804e7d2df66f87678dfe3fad3c0f0f2307f819787112f30fae9250e8273ed739579bf85d5c705e008015f0eef11f0d1c0f0f2a3bf00ccc7bc1742a0470f071b0124bd25811efbab4ff5a957bce59db75c4acc48e671f4c8a18433e52d47551f99ead3aa3ef6c8131c7e984901a20b27aea85004e100888b2c53a400267c09bde52d87e2b22f47c17c3fa594be2cc0a93b7597d2b36280fff489bf651b5042162d7e80384211745043126210c60fb25cc901935edd559fdc59c8f118a45da7e3cd2fc776372aa567354da72fc7269232dcefe9938b1b684b2fd56b7becaa07f4253db62ddf13bf136df99f48922e694b232069cb99d333735ab81d22ddd04ffa350979d8b84e60defec088def2d6ad9f5859de02906c99ccb70d043b5113c256cb90caa72f07b5abb63d0bf0fc07b05eb2573b642e7d8ef5e83f807dc94e000ecd8e7af9eb659101f5926e4bb7408e9a63aca007af1828b1011251a6106e40842dbcc801119ca0223595d085104998d00209252c48f5db99a38eeca8c0065baa70e24a100fa9e6984c86b2a1cba22d59009274654b5bdad296568b87f6a7c796bdc86c2993bdfab45aad56abb9711d904bf393157453057263ab791f4c4c7db6ee35dca0bafc6c391422ba43b66b3914326423d17842ec0ba9df00ee49162e93282af45c4361ff74899d703b51ec73e24e1230c53df749c054e8fb1ba84ffc2e5a75dd11fe90f79f58c4c8f7a2f7be8891284642df35ced8a2e1ff7ea63a14fa1fde7fde874423a2ffdefb22458c84befb283e44ff79e18d1bb7f97d7c342cc21012fd6c1897fa77e8ef24d952fe49c054cdc75c2fd9ed1d1e9c54cd27015336328fa3bb8c1e9dc795f84e8fcd4e809ce2be74d9e8498fb98f93fe8a79d2619ccbd692dd7e2fbbe5b2a2ab3ac897f4d8dee337fc3c8e2685beb25e187a2efc7eb309676aa6fa49bf3a06ad44d7600a5867b7a609072f21cd83610a1f13a2f03021e95d421a3f0a679e3f7e1a3a11bd874e6c421e30d5bd4c68024ec97c4db8c303a6443fbf1ae8338d0d69ace84d01c986390f5ce83d70a93fc40a201d88dbcfbe6a02ec6c78299c99431f0177be01a64ef59597da7f00c23a55f41dbe8981511a107dc70b203ff88a4bfd2f33875f035ceeb00e679937fd2c042ef5cf58364d582c013213306e09d86ab9a5ee19017da5c5668ece6d89bebf638efa9e7e34307cdffd0fd17bcf6177197c1cdd556918b8e56039ea880f65b08ce0c94110403049f57bcb51164862c4195b28a1491344a4fa7de53da2908645a2ff11fa4e34f27de845df87de88a8634f7424f5f9e0fe7bfe2ff422b1c8f7a12f229a5f074d53bf7719aa00f4eee5559f42b350c8751e772bc77134fcf3fae0bea309674aabc04ceda0f0a44f219ca9ce43a6214d8f5068269c291472f4d831c11195cb8f5e269c29a6095f3e85107c14c2982785304f2374f99970f43221a75e1e0cfdf7610f8f35bdf40213e3f331d9b01898566f2b6817830c23c7b95bcb510e7978141f7c7046789d845451fc6f702c5e2c517d3c7a3c0dbf407f7e1afb47ae7da147ef5139f62a90390302646e6119279bc964fef295af9c8504849c7d974f07877c3517f9db56cb35a2c13dbc62251308c86834a241495f7910a7ea2d665204f3e0ab99ea21d173ffe3fb906824f4df73a291283e42224d0f8e1369e8773f53df1be1c4d07bff83fb8e7b8f7b23de877ea6443f53a1f778afdb1f72d84c799cafdad5ad1e6f00c9868526751edc053e843ff115af7809f7f8ca57be7226bec4572c8565a556fd934820e8b2e6e955f7348ba6060d0d4d0dda36e20ae50f16517bf1cb515ffc74f49d1e0077adce58e6445841ab55d8ef6f2af3b47d7feb609ea87bcc251b6679a3febe036e14cb34f56ba1973dfef428a32a20f699cf7ce633a02b332b6595db5336854bdc3b27dab05d2b36941ee994db0ebbed2f97e23dbe2a7960fdd297c3bff4e9e8be1d0b5eb77c00e72d4b5bb08c75e6bc19c26423cc93ffe755bcb8bdc46d268067dd450d731463314bfd5964f1b90cc6ed97e90092bef2974f71588f3299ec87c3d263c33898ac618ea54f6497b7ad5c72ce4a4771dfdfb37e2ee4159099956d9339a2b506cee051b9a418a75393ca6d1c73ec29bafd308cdab8d4df350be0e63d80f309205e37ee1340b86e3f04fac4a899b25fbbaa3d8e4e69a9f971e0a78b207cd0424b0c927ce007559cb0832766449105095440d9810833c400ba22d53d204122060e2f30820e56544d229429fefa3e8a14002865bf8ad34b5480f0b92ff4890a1001316780345ee6c90ad3c10ff334be0a70aae669f0909981f4323f2f4502d6980e20497bf87ecf1f9a392edef6fca2996343cf0fce1ceef95f664e275215e5e101e9ec01e5e913156778f91edd99d193357726e64915ee8c480609725f9e9fe4fbf2f3cb3112c91a9b1a363e14011023922aacf04272ccbf847cbf3e875c83e8bf7779efb5dfde7ee8b9ef9ec398903c725fc279eb57610da32a47d113f4f489240ae11fb25d26ac4343ac55f8a6bf4a51755063758a4a45ad629aacd41d541e84b507a1ad115659599f983754fee583c153b024a08e796be0335cd5a74797cb3ae01e970b8c611d5c1dcc9c9e3e51a62c2480be18561b354f562c364fd61f2dd46543a4b12ef5778c5b5daa8941611d1adfcf3398392188f9d1cbfccc934c03919170f9caadefbb273909d1734fb214f0434fb20d5ede3e290a01cc6f4ff20d280fd80aebd010a914be1169770a29ffcb71437746218429eead50f4572a33a706af4a7d9728ba2ac5cca941f4fd550733a7063066ff658aed6160a38ff9fefac4cca9210447ee8c486f304dfd3222cd629a42aa444861429a659afa5f423a0b2912a6898b693ac234f5bb84f4679afabd906e41b5c8c1edb74edcfe100eee34754ddcfe4a52175de2c3290ef3972b565d2eeaaa0670ad200047f98b69bbea0f424c70c5c2a14bfaabc2b6129c8950f8a68aac040f78062dc55de19b407d5fe1a380f7d0eca8ef5f456e5d0efdaef051d1655d06a0bbb9b5ea3146633762a7eaa23ca05850a0e997da95e5b12a9e895cbf73174912504dd80dc09b61318392753ccbbc71217841c44c07e770b1afabe6a5024c4d00d21775d11d90a4402f2ff5b7abace1d96cd623cf4a12494915bbb4d2e5958d0026afba984c5f0e27364fc1983a366c62cc1c1b4897fecca1355f691930a62ffab8e6bbf41c40a72f7a27361cab301c40ee1a91c6bfe6bfa5f4e97b1a176960a8f136de47cdbf48e37f2455432c12c5478daf118b44219dd4fc0ffec20654a852466e1055355f23de10be119caff145a2f8f8af2116a9f9178bd478177b905c15e4fef55d7425ee3c8c049c3ea118c5ffdfc6932fc44ff18555e36bbe564102d698cb7f4f55207defc90a631d2cdd5558878a343b44d23ee77d7fb5d2271a1ea2a74fc519bc17fdbcdb9f5cfae4f2354fda026ab9fd63796ed3b0d6ee738186df874297af5d886eb40675f91a2e9b8be84b7066dac6b70d1b366ac4eae3259b1cdfe7425f2a56d81920bfd715c081e09b7e2bba107c5300ee860727d674962ebbecb2cb2e3f183a55235618e59c0c598f7cc333d6f10384f3f695976b9a0ce051201a1e3cc3bc331bfeea52bf55dd1a846353612f33407ff5690aeb38c1a823a9fe2efbc436fec8255d0a1b07bacda47b9e00da780eba146816dff4a8f1387a879f71c6e5278f601d92af7f3a4462add22309c0ff9ae7afc7ce7fcd1bd1b9fd55b69533679301017989d68435c663d8bc8d275d060bdd9ab7f9186ade46a4a17f2435bd1483cddb1069a8782405a6687ed8781ba2112f037427803315856607fdfa54ec25343ce80c572406141f556aa6c02af60a09e8ed6822f8e608be4180e75f80dd2529108bdd846f7ae6a81adf35364d604c54bd71c3000628952ec9b390e4190a285c926733183a5543acb026d42b17d62319dcaa53c87c50b10082b9ca96d5bc8dcbd52e9b1aa725f561e54311d7653d569673e1587ebc080cc43397f96f0e5294cb0dcf839c092e172858a7c696f4e9084f9fe8bc3648405a469f9a1f35bb4e04c1f4b9343bfce953f1c89db7f3ea558aab6b30732a14d394c444552ab3d44f22c55cb2c25c5de7425f172b8c6fc600c90a8b317ddd56c2597856965d76b9ea13495d77492cc63aeea81a9befe7994d8d0fe0f27739ac245c49247179469bdc0672d9025a507afc02f4af7a47a7c0fcb504708ec104146051460ec6c0024b6a852f8c20a3074da820085470223944e4568f2e86b205a4dff130c0a561cc05018ea6a18b0176ec31e855ac8815e6618064050324b95557a553a7e555d227b2ae9ceafc35029215c63addedaf55fa143473a614b7df81409202b9e7d59807f169e2fa6bf218ac85bf9079a9652ef3ae414371cb764dd316ef8150b864bb825a3d7659c3d327925bb7d5272fcbb22c19e0d44569153446ab68578fdd276eb5132d856fa894769e1e95f4accbcd85c534b910bad0a205d9346d9a4fa9d573d15f3dc25cd2651c035af01c46df4558fd29611d6d5de2e7428fc339dcbe0bed8741625814838cae7df1e381001758e1e25a0a530248dda97bc7e0c6b3cec2797a5412faaac75a6bada9555623abb2d251e17f8d2e6dbaace9f2bb0cc5d9a504e03c0ba38d6dab018236e2ac055a6b1195558ba849dcbaea13adae399a41b7f0cd123a8637b9cee32a2047d57c3f8d39aa4664f049106cc57c89697226d8a980c2019f0baf2fc09adbe1f018f4c7f1e5e0a72fea6a2480f4d527579fa4d0b88c6ffa6dae0d47cd2a39904245cc074c989224652223490f5948d1840c9ed0f00111ba600115547ed8414a043e32e019e20726588d91ea77d9ec5461d54aa5b4ee347f399c0921739a6a394d15c65c2bd754e9b15d35edaab076f1ace461758f38f3194ccc4866860609851442dcc827856e219a307fee06660e0781810e4a20317c10a30b025cb1c41433a4f0a26709d7ab6dc539b1ab06e7c4a800d4b86ee0689cc46dd709c7db58c53c35ac336be64e8f1350310fab36307f36e07502fc74033d3610ead9ba894412dff47b89510198bcc33cace21980243761014b124cf86005115ff420f5c29432b818220b292d50e27a3569d406bad45a48ac2303dfd0100046d930494cdc0619a616b79902fc40dec5201b880292f3e7e2c4d027b286d6903b574b9f75acc894ffda4083b38a7536bee96796dbc0283e625371977ddcc061267c04bf60deb00a60a0649a520005ec4bb2921c2e03909570a3580abb62009238ec72b18ba7682c855d8e62251a2b61172b51721b67ac8157fba41a7e8575ac38e29bea57fc0abf5283b479a2dbf94c55ebb4614458878a23be69291855834b3eaac1283f824bce924d71840f16f386a91842a7a61388f0d8a896824b0df39813905e92633f31d8344d019b748bf504dce9133983aedd618a2eb2b87ff989cc1cfafd2398a85679f374afba052b7e598f2a47358ba5a271695cb2ebb39874036ecdb658d189a6a5472fb5b2141dcb9572bc72fbc7d2443912a3bbc6711347304bfddc0c621e88c066101122bca31171d4a8058d3070c43ace846f8e609473c1a57626d563d0d66a6dad12c01939689ab238eb3019f386bb60270871fb29cf668eea2a57accc9a00498ed5c0b79f68d83481a4bbb68de4264ec07a499ebd5ca6e17729ab1e568e80fe72f5c831d564009289e2294812c7541c53dd7e8e396a13fb8959eae766896c2c620d1b478d88164464f6e8538f3df6e8a37decb1472b971c6f939e745305b2eb445af24dd72070a9e650556c9d613d76155ab24ecbf8a6068151968bde4477b35cb04e0f316fba0821348b8769f27a56aba54fde6ddba63df51e8777a17be2907abd891f01fa6bfff3d3340eeb75bba461fee58bc0bcc08851e8dfa09920f52246f17ed52b47b56c8a4446407a5fde4bfeed496f010585f54a8fdf7721bba3eaec0e8bc140947af5a9aa4aabe5a9aa1ebd0e8916edf1527f8bb25095e912482c716b0b762b0d9cbcbc3fa5b445b9d5c34bfd3178a949f6a9bd82f11f9f79e979c92e175d59242c5f6fe688aeaf28f59e3e8973bdc7d13ce616a1bb955bafbc577ebbf9bdb440774f64990c4280e42c6fafa80b0633a757d384c544350fb3d42f2f9c4769af5ac6cb2d4a6a5dde42fcc025a7eccebe6ddce325ff262c56bd2e3294564bb5c32cc565577665974c7955956a87abc2892c5790614418404885c270c202278ab0c31448e0595aba635794a7b7cdbb19f81f05dae7b76f87d4cbef7d67044955b7779cb20f57569d81d726f5084ec19f64317bcb028261c9f026e0f7def3ec7eda15eb746255f1cd5655d6e5fe7aa2848b757c897913032ef57b1338d4f02076a7e50a2e874c3945e9b42207555890bae17b35917ab17553b5349e164e6dd20aa0dd5d764f9f6ca0a072c65758334774bb3e75d6addbd1c2f87bcfdefb7b3e015b3943fa92eab05f7f0b857c3f64bb334fb64ae647ff83f433a397f91fa397118bcc3c4946bce1f565c299228933d8af5fb70f7d902353ae2583689d02bcf9dd28ec94138874597f446d97cd8515fb0aacb960544b71a5556cbf3e6184d775c09d4f14618cf12a80734981626bb5b576cccf34e45c3d7c3816ab874bfddbb66d20e85e905bc9b55c7d22b5a00be51909d8ef5d9433678999139b3958668e9d62ea702abe616223c2d4e1a2b0d2284e4a973491636d2f8eb5bd5cd0ae15b92a1c8b1b82734d1387044704a7b24f6a4145f404b1c1609eb8d7d613a5c73fee3b97e99283e684793a639ea8161473492da86a41bcd1da2a8ee55242774199a655adb4528d56f7e9d39599638148245ba5b7682167509333a8e79519348366900c08be6c2fb055333232346cb8fbbfb440ed53f02cd7fa42ae09e7e28c9837e0e59c4c533f27c6d0a3c71dacaa556fc346c8a954cc6a61f9d1520a7d39442d882fa90569417d12c22f64c8763b8b79d33f84747b8b69d2ca685477a9427f39f83b5fb2953430ccfce87fccfc482c12c5c7e8657e7ae907e965c422a430a2d8c192d44824859cd0a28bd44c45d962a919166fdcc0c1518dfddd7da2b3caf5d744986701fdc9edb54de98f878deba293d16b8b396ace402b36962b3d220124b7f24ab338d2ab67db06e08d59801ec31d5598260f838c97869f56db3bfd43c36297b3e651f5b803a7e272e04ea0e27ce0217a001e83f607f0e5a83f0002d8ea6509547af5de7a0cb02da02776c5078beca7bc33ab64c553eb8dc742690bf0a9541c4bdb324d2cae499ff865e8f105bea1f2f22672f0f22555e860327d39ea9b0a50dd45fedc10b3d4ff048915b704c7e29926252b8ec5b1381607c5ab875c138ec55241e9539f4ea4b645db3273bcdaefb7cc0a7239cc05f682675bb92d6180ed354df592db2b0109d8963002664184d633736614b7df71608e0404d883a360ebe276184da8ac954137261babc7b900c90eda545ad0ed9f4e91c680e20543a4c856bd0a33c7bfaafe1b2f87fc9575048ed5a3571f575bb909119e391e141454bfb7ad9c49ae8a4bfd323ffa22cc2313ce94d33b22e2cfdc4e8fbd4de991f9e9f6da60bcbd186667d00c22324bf6d5e394ed554ffea22f47fdb657a3f82f8b1c0fa7721c801b6c7b71aa6d4a9fa6847c0aa8dd49058a206ebd330a15f45c242d1d5c978757c9b138ae19e055f7eaae008fc1d02be0cbc1bd0216e0ddf884bcfc90ed82e596c5447516dc0d9927cdbc1199273dc9a97a013e482ff346667ef446482ff324a7ca41e3ef63f433ef43e6493f3f1a176118fdccff18fd0c0a6291283e667ec83c49a4e19f291a621112184478a12535236e3040c206a9998a328e577b2d0b308bfa5eabbb8eeefdbff7d7f1bdbbbbfff6472e8ef69ebdffc2c621e6fb7b079898d009e689837918916428db944d26dc625ef2d24bc810f06e3998a6fe0d07f3667b85dbeb0774113b2636ac474e1576288f439c8ac7439c7b751fdba34fce42494775afee3abceb41c0f33e1e36eef7ad2a556557ed19edd990ea087d7dfe7684be8adfa346b363fbfa3ab6afa20ad3a4fd913bbf5a5fc7bc55540519b9fe525f8e4f74327a2e7422f33262975e6eaff2e525e901dddddb6b836d3192ff809e18438f1e7d0b90dc7a3895a3b6924bfd562cc592c56e87e759805bd973372fca6d8b0d09f354cb4d0c1e622bddd62c1b182d32b69eb20973b595d96b04e616324c14cf5c0bf0e5df464c9d17f8a6bf594d668e3675fa0adfcc9cfafd8d03a3b61c9bc3aff261eb2460b93a9d289ef11732b00e1587f04dbf16e4a52f18a599314bae6dadb65666a222328475b42d5a90a3b61ed7cc60d4260497fa9dc18eb3da16217ab42dda964d089edd1e31c6b8fd9e05a85dd515d6e9c1375c30aa9370c95f601d37c1ec2d7de5925dbaa05d4df49d69eac13a0dc6bc49b25d2d44903ec9a95e1b95b9bdeaf76f4d6c3998276ef3811233c4eb36379d5da4712a47359259eae754cd35a7ba2a6ef5d8a447d6347577f36d2dfdd363ab462a56a9aa30c7e2588e9add1cab395673ace6581c0e8c8bc1488e1552c1344389d2d515030149b94d5d559042b76edadbf7975756122e968b679496585c06561f56b65361641df7c175803b7f008ca22e1fbabaa5c720bea14d601c744e45bc1ae5af245c350cbea15b82baa472ddeef32a8db9587cc32d9e81abd6ca7229c128aa4459595489520bb0b29470d5baa24df8a6fec0a84a9bd0aa9a26308e08bab409eb5424f38686517338624473a0aafa435d510a344d14688645055659d5e5251a2c2a30567535a1b12ebde4aa9e79a99f73146c40b12e5540ee4882aaab71e05293314797af2890a3a081ec6590c43a347e307344395f05c2ccf1668e76c5ccd92a1655083367083962bea3f1328eaaa9f1d54b2f3996ebb20ac356e88fa700f3647d5af64867f5672fdfdb562b6c965ebe7ef712d219fd29fda74f33fa42cba6b3bf2eb20f4cc8311f7c0ae87227155818d7de19859230fc5b304b07f261a2284f1075e528da64967ab3e2d62aec22ff26334788e88d983942be23668e1017ea64e608f11ee68568f4c9cc11b2fde8fb690c668e10fb33df4f65307384841e85efa750668e10ee53f87e1a65e608e99ee6fb3b4efbf83b6e02a0724f112c8eb112e258b9a708560eb77a2c82613d961e63c2f1cc4b9cf7b0cd14cf5af5aa2df7712b5a8769524d13ebc08a9dfb7254a3804b8d648efd65cfab07560d7c86d7d3a3e6ea523f7d59e9b19fae401aebd1c7451ba8630e7dc7d9af1f815ac519f8ad48c3d96db3eea1ce698b7bda03187a9a10bcb07df72f7c088888c0c6ed44927f1369eacfdb69bf85a190ce71aba1c8d52850f334566356a45068931e7900a9ab890ac0ae56eea90eac1a0b32a23d3d5256cfa54c78cc1e5c66922a719bd62a8da24ab013b7690f65ad564b58874aa1f404b3d43cf404935907d3d42edfbcaebcd433871d0b97b9cc69a594faca7b9cb5528119c6d4f572980e9ab56ba300f938dae66bbe04a08be344ba025dfda265f79d0018e656b88fbf7a749f3ed1955b314fd40797c2a77015778206416d441a8493db4f9bccb19fc65cb127d3c4316082ca6ad092b924b7aa37bf1d1d4d7df18fa46c429afa357f24d5bdd808d5781bafbdf75ba52b0069ea03e0e7bfcdff081f00a2111b1fbe8d68248a0f1b1fbe911aff3f53b6c6ffc760e3c39fdf04b8afefc3e66b5e0b61b0d9441f352f8a456c7ccd17a9f136343cea6fbf8933705f7f8644c2e9a528f569b6b7f14752349b28c4478db7211601528199a281879c413f53e193cc53438cc2fd4cfd937356239c291b62c7c2b05f5ebf1e35be5d8eaa21da1d9dbf63e1c1ef2255027a29a38fc36dc299aaf16cc299226976d0e7a74fcb9a70a6c04bcb4a55000ab197a74ffc8caa112990971a65431b8a1ab15220206e7ab3e45f0334f24a5737852c723b292e97571627d21480366f23728c7b8570ea743500a86f43bd4604431b361bc05bdf26ac624be93baf7397ce4a23313c739b07bf76d5bccd9700c8653366a7ceff4b98d8d404a0bb3df2e9c41a54615e72d1b0fb5abb2a80134da2c26815b79fc6e6d85f2376297381425a308abbfc76d0ece8ea7722cd8eeeb9e74492fb4e64d9914bdf431a3217ecec87e6187a0f77c870c90c5cb7a2939ad0d73448a42900499651205a06b7e8961e1bc85f639754a8c800d63f5dd8483050b747e3762209409bafb1e97276d0ac99a2b8c3732365f349b6d4ce4e129c948dff0fc5245bcae6c92ec90a3b820d86f0c5113ce068319ca9309c29f690747f6cc2af3eb8fd36aeb8fd352a106e7f0703550252b1673d963dee00764f763901b2fbea332b450108a3a263e9b1fbe4a2939aa7405deaa7406510adb4e451d1fb0b2eb8d4619ffaa756b9fd5d571376ca43e62c401cc68c693aea610aee3f7be4f955588d735fbd72d50760646328401609d0d5d45885d53c3b2a8525ac70410bc6e881072aa919c60cca1d902044154b6ce9998b6ffaeb4f85d5272aac2c4b2dfdd36539eb138cbf0002c017a068e4d1b03e314d504c139569aa52a3a8524c53ff4c585188ddfe14a6b8958adb3f3281cd9ba0fa3c4d386f0ae1bc28dc51386fcc57035fff38da5100d200a4c730881140ea277e11522fbfd7237dd61dd2f7f3f9ae344a04d2a314d09db1b84f0d8acb749790851c1f9fcf8775be20f6bef021324d403c304d23f0bef0668e22e7ec4b0274b695728b75aaf805d12f885b4590f5003aa55dbdd6ca20a5946ed66ed66a4d341e4d157a4145f88258c72363de38caebe26bc2ed1779b369ca5203d0436fe53eee43f2791f1ff6c1623717bec23e2e3e9a943e91deea6aad3e41e993ab4ffe9a4ae5adaa11506b3273f83573c41b377ca0a4512211932ef5bb965c1193295a6836602144b9fd03cd88dbdfe978a0bbdb5a6dad3a1e8394325931e1664c56170b30744986c2e4b6c8c5805a39c602a471c15e16f9ca85b92443619f2a20e9cd180990bca1f5895b6880037050ef562f65bd07681e043e091cb95d277e287a896e3060e6f868619e2c20f658ad40d29b79334f4ba32c962ef557d1ca56000aa13d1cc557bac4585c9e7d1ce5227289a4cc1c4fcb34d9609ebc24ccb1bf8a446fe6f2172de9d326aefa64454f8b37eb910620c93e325ec096a3b5a7631950a9d702ad5e03dc7a0ef82470a4c3f11cf215b11ab593644c45a99f039f918aa2e57c2e702256a3a26cdf2f6262cbc0d1d67e4abe906f0b2db4f0d5dfc23ebccd1c8d7df0fd6c051be1f63311a64e65a0ffbeefbfcefbbeeebdefebbe133f253d7a40dde702507f3978dab07114e096db3fb341d3e46979212da4bdff747859a6a9df132d16d354039f719db8bc3773948bc8db0682246fe6cd40927d58674bd7bdd73df8e5e8ec1042fd168ba933e74d4814c2328ba54fdcf667e668ff9c4882a4cbb547983af51bc83405a161888b08e68da6d2549a4a53c2d545db51b968aa93d3ee9ef928827dcd344842375520993dc4711caf9c59641e7e07997b2ad578a6666aa6481b22b8d1d13b225e0ae2e1619a7abad4dc038fac1f6ebf0301e40f99871cfca2a66995528d52ca57500e02bf6e933cc5b99475a95ddfbc81086371a1eed41d76a3d334bae93003b6853acc78752e285064503e1d66b8a8c8f115fcea13d3e7de4b1df89729d5a856352ac30680a0be4bec1636def8588fa11a528f5c6343eaac11b98106bee967d80d8c622934b1a5a06186d10101e42ec93247f16a25e395cc0597cb2b2852a4f0ab47660e7d3acc90d2e3bc52a4c09c5f3acc80f915d0a7b8a8c30c1877faf83bf6dc0ab0be0a304d0a14d6f8759801a54f0c654a4b6914afbad42e3b852dcc863acc78b9a0d84f8719505a3dceeba22cea30034a8ff3f2f4785d0790c46166666619f35ce6e993fb78b44bcc405adbc8a09b2a90da488b8989d162626246b5d65a24e62bedbaefaacc0c5763626266b81a131323a359ab590b96336699b05334424e714e461f13cec4c88822cff31c66cc039181c5c0642ac93e4ecce3e84dd3364d8b7112f323999066241619bd8ce87f24e522ba60676de86d88768fa3ada68920df3808e3c1e83c60540140eac5849df24f87e85adba34301d8058c8220e60fac57adadd636f357814e01f9626ab56ab55a6b2d7566eb07183d295e068c9e248597674b8d7ef4a4cde8452b521d258df6337f24152313f27db94d76cffd26aa7b66a9ff138944af853e4635f411132333e3458fe732532ea290ec20602105c99870a64694d6eadeb675b4f3686262b45ab55a3d09a0fdce3dd076959953a398a8eee91ddc7672458759ea9e7602c44b2dba3161a7fa0b70147dec19354ddb346dd3b45aab1ddddd2da9d6aa6d5a1db9a3e155d1e3680ed41ee6cb217a8d0bfb7633de4c38123d8e9609394523a4f131e18ecccf7c9646582466fb1e32802ea06a9a9030195301fd32e10bcc775d0a1e7fdf736837191a3396c60c0d1a4fa241e367421ad20c8d297daacf7196e32cf71d450a5eb77e0772efd1fb7d396a4fe9911c7b68e83b1462349890e4332e3f21156a1c5af334ae52e65aab68b28ecbfc7cd0a2301b10f39f8a79d2e6ce98276ddc9edfc3eef08ccbef2196e14cc5f4b5d65a6ba7b07a381513f26ca9989890555ee299a646018f2af0e1907598a69669618924b194cc1f497532e1e8252f35cd8c38f2d3f0a390c6c7cc8f7e46c4a1611661e854ccc78834c0fcc9f1365b666b7f7e40700febb4ea36cb6ad03e3168222eab47ab55abd55afbdf97c38aaab63d830c64269a595614fe4f14c5b9f1ccd24c59b19aa579c94dc7a21ae672806b4311dff47b6096fac1200388f7788ff7dc9e5ab5da3c3af6fb5b499f9cff37201cd277369e77352c6703f64906eaddec6c78f3d3718475b7ed39fc5e0b45b09903def0cb415f268c4902b81989098bc488beaff4497b2a3ed647ccccc7fc91d428a491118bc8fce88fa4445f3813f2ccd3103926d2d8e7d9cb84343e68bcccd310d947a4b13f233250909768ac0843a7645e46e4f20b906cd89cc1bc00cb9e50ef00043273ac112ec936bc184d08b32e7f57c3491683ccf27ac39e682878f491e207241b0604198442df01c9be02e4de79f02b404e24493018ccdad79e6c2b568b791cad855d0548c788b34b40464791bac43f8e3837a648f379e90a0c61bdd2c9200e08f4c4419b72085040021b6b868119abfa1360a496719c357a279a533483f9dd1776aa8a18f357a9ed18eb585102e00cb5d23109b08a814e41b791cc1b0e2307ea31d0ccd9c265804f801107023df689027394406facc7f94ad6067b61a06db6cd806c300e010a48a0c77e90964d011c2fd977b14a977d1adb72190306e6d8e29b7e1cc7004f0c78ec1ee2135d0c008f3c401c5b619fea5edd196c29dc0b68e6f497c3bf732c4057ed3090af66a97f56b9fdbea551dff7096643dc995fe98bda60b3d44fd202fe38966d0a58c5ca0c13b5cd66538c399b4e98b31c6edbef18ec48eeeb96300857b9af4fced90cf583d0b0fdf6dd93f681f4b8bd7d72ceb69fc1d2e07d6f1b08fa6a929e57aba87e95069183b6703ac1b5d200a4c70eb2c18004e1be1c95bb93ca4f12ee76271515eb92be0265be83055872777e3ada4a8fb3474dec2ab1aece1c945be9d21413e53ccc2a3838a55218a280c2cb0be731238030d2f4218033290ce47c49069a7cc3e236db66db6cc6ac6d034112e97f1c7998c55e3d16e38e6d2c2c6ca53901cc62c5d023ebb01c356795cd0aeb0a0b8ba8ba57771190974aa84d9b93f4a0a36298f307dfb8bb804517b03af5ea5ebd567772ceee6c06a19c6d403f3e9f3e7d7a0c4096bbbd85d2d6e2139ba617af86cd9aa627b408e006f352e3b0c267b1582c1af6a5de65f418d4e3161e9eda3cb5bfb7749f9c631debd8b6bd281cab74325e4d513aead6cce9d6cce147f9922ef5a39c493f993acec3bcf1a165703b6c56f3804e9d0820f360897901560192db6c9bcd1cb602f4f721807c99dc253d6e33efb93a5c0820b9b1602b5ba54fadf9e3588074636d2e2b3dd64a2bfd1e47d38e7d1d8bb1ae6c20e947caba9b38c3a922c929b9fd130685e54c6a15b955d7397660672986b00e9331c7e020efd16373dd3b17de775a907b88db7a9ce3b8ad0b1e75776b415a10a80569646841cc46665ee68d907ef4e4d6d3a327bd11999f7923a327fdcccbbc0fd28f7ee665fec78c282346f121ca88518254182061834f1ba3fe0a5347db326ffa51324f8233e4a348a4b0392c67e0ffbe3e39defa7d90f17212c0efbfc7d15f38ef935a50c76e995fb0b11758e79b5f5c9eb14f51579952bd7479d1f62abbfa6fe5cc1175e7a4c07130c13ce9304fdc3b104f3a0b6eff247da78b550f8c060addc8aba55b494519f8865379894bb2c59648b2c1b629e64d3f135b1554609a195ad096056be19a702eee555de4585564209ef548b2ae056966c058a78a7d65039aa62ca6690363de6c5a8811841e3f5e601d2a6a5b7afc6054073aa06dc9326d66152f04a107739621266aebf19e257a90d8fcc9ed772413c5a950a5bbc079285d872dcbe4c0205d326e3ff7f6ba5bcc5132e0f6ea719ba291314bfd1b129e1e04607b6d2f9c7164c1ab95a1037d4506ef00a35a8a2d5b6efa8abe32b99081b52dacf3828f1e7b6b4d930bccd89e4c203619dca65bcf3435f53a06b550f4332be9bb1690e4589b3b8af424b7f5f44948ddb62da6a999346afbe95293466d5abad45fc5a895a854add347490e99a211010000200053140000200c0806044242b160aa48d20714000c79a25274601d09b424c7614a19630c32c600010001110101b46d009401a9289029aa0195708f1d7f7b927cbeee8e4ae9eb2d6ca9efa9a83add693a86a9bde55f678bdd31941a89a927c38a6210e8af6e425497613ee59e92db84426b1242680030877a559ed27464824cf454b88e95d2411a4d05eb4010249f904a9a9258d48cbb0179366a6d5670163fbacc17ff732ce3f08ec9a68f01c177b3362d6d88922ad83f017bfad9e4a0d0bbc62a6324be0b4062f98f818aa022261532dc57948a45d90eac9333061de7017a764dd574634a1066f19c7fb974e7c02df3036e3c18080b1c39d483557c3c14ab3419965d55a21ce85d65f9f74375587ef3a337e2cf6ccf1bbda5953ac941c48962f24691fe1bbaf8a2cfef65ea7e1cf492ee01d2b6d85cf1ca7884ff775736b77b41f1450cc6a010d4c73cdedecb50b5bbe9cfdd866e3d12f240b3adba77e6e64cacc9b21235ba47bceadd260be05f45016dbc6db9bad54494e0bf42fc2dffb4e65fc143d2944135a4f431964b7ec6304b9348cb04b714a4991d677c70759d6bba11c7fccd4252d63bd6f8ae5c4f9c82e463ba5855905e508b777b467c976ada9f462f44a6f955c52b149067c317d0bdf0218b447661756ebb409bffb565b05a5bb5ab603af118a0da5e144f2e699319cdc65615334c887a69fb852f5f083bced94dd68fd4e8adcc5288135afe5a4b08e05f0269d8ba91fe0c7f75fea251c9f43c5ff42a59c0b68655b1d84a6505b35f42989379b1819c98c5a7109925a1b2f1e4b34c79734ca22aaae30f67d2b6dccde1f6f94e43060dde26212cb8c3fdcd89199dae209a55cfca2f2b8b88846bb0be56f4f84e7aaef8dd37689f63e36e7cfaadf295ac2f578b3ebe6fda7d6e6a15c2be7168523237eb8d150c4acd73647ee05788c32d114147a2f62acb8f5e3c22f2d49a80c1493cbd9aa13ac827f9668d2d44e1650d05aa6bd4edece8a163426960ca2a36acd5219e9b3518132d7f3e1266d3078b9860bb290d946d9929c60524b089bf244f93fd01167129263c4977ad85beb1664be171d8bdf989c710784cda856e988340ba9e45411988cfd3cdbc3ff48b97c92226782b90d26abafcd600ab12f429fcb812f84da1c5582f05a7a008b1a64d8f898bd6586365d0c47e057a9090df435dd771ab6bac2cbb855101b480ebdb61d8184bd48f5fe4b493493ec037648a53bc572289e1b21996aa88fc94c0689407a272acee85655c050d616c3033ab64652853590c31c09ec1f25206cfee9c26b36fe81b7a08db50b0d662a516e0842b380cb44d52783883a51f3d84903f858d3708814e85f70d5b43dd822d40bb155ab26e36a28a24908a34520c30ca9d5d59d6dd4d7a132bf9c435d336b8f75b145364854c2b5003e26392c65ad662df20cd402e8f213d8e104fe037c5914a46602298256418d62317dd48713267597c5c2a9e95d98e084a946f22a48d294dc73cee56902c865e134fb1d6f5f481d2105987c29088278813600404de3b7e902912e7a56bcedf4e33b97dc87b6c3931150109e26a9a117712d8e0fcb44bfc2117e90c49e24815f04ce8bfd8b11d1e7b9c7a6736f6b2139ceae4fc05cf82fa37c6a74a668e2b44378552661d0747e3fef689e5d58890d6c8b08a35465ff44284bc85e453e31efeb414fcd255c877c56a6accf368c82134c9ecaadaed5323b80699e185819146401d51b23606bc563b2871addcb5986030900285785a48810b03a0600bd74c1aa0e5f461e0fb15d87c2933b88de7c54d666e80c7cd2eeb342f36f3f74f0b17e30daf6fb27b2fc95e1542fe704534204e731dd553e7acbc545ab263ee02446553612185a41ce5d2bccb35d36976075fccddd306be846a8204184a9a9ab1caff3c4ae7feaa560c280b5e0abad8e72c85258f12cbe9fb2d6a4cae54cdb2682c4a170bfe475106f8c86bccf8098b1ac2f184e23cc817c55c11336e99a69f6c5f7b26d299d61033c10e2cf104fe27681a1f6076021b1a4eac9b38063622f25fffc3215bfb8a7a6629908dca65b000c40d5fdebc8c307038fc7ea82d309e49e288b5288396610bceaa325205255fb0b547938f21dab95e7209ebcff632835b3c8e9ad79c2e78b69c72587416794212bbc17347558d3cc383dcac5aa45072fbbab7013283d46fecc7818e224188e81dcf15b6fc94ba271904231d543098215746f650a244478005f7eb7e90af820e69e215122d4ee7a7fa6faba9ec94848be9b32b56bfd4e7fba9b3fee47752b6edcfafdd685186262bf9dd4de9e04c4acbdbb4e4009161bae165325b0e9343bce191fec2937a6d34878837aec815cbb2b56cee444d6fae3e204036f2882bd0e66ebba8ae209c48d82e3d123423401218c6a234f69228d6fa1d2205373aad8cbe579cbb13d17ab6fbe4e2ad2fe3ed695cd717be922d166f11215e83258a1d55d061130ef94f37baac27541380091a4c582f273b452219690407068266005b962a45af53247595b1c736f5ed291259c04e347335f6ac932c24925dcba38b79669859c872b834466452a84c18be23c137bdaaf2e5ad9001dc188bc3280c49fd46069d00261222a1e0e0df95caa9af1cfae591ccd496b5c044b299cd20bbcf50218d009e180dd2a0eeaef604d741f9a957d71513c9398b8dc1c61896fe590bfe70800d498a40de685254abaaf7582a14e5c191da8632e091ff06976b03fbdc707d21ddbae978f0c007a05ec179cb52c0ddfeebed8ce9321642f2c5caafb350ca22f52adf4fb4c1464ba92acfa85a1410ea2273cbd8e77c53fa1eb30b84a7043632ad68aa59cd4a34ded78445e2b8d38644571b349f5764927e88d38b13532aaafefc85b77d0bc9709724522639b3ed35cb64ef22de555afee6e57a42dc4e49ecca228ff2de9d3c213a370c419fe89e2c536bf5b876ccd3af70d9a9c9305411b082a2e579c08e31b79a420e57f85cc26262772767ae432bc27a612776d5171b8c5685681896c0080c7fddd7daf8567c92783dd7507400168a173d4ece41ead0cb9a1e8040a9e4fb552c51da142a179fae6d6b82536bc5c25699bc674bbf6651db720feaf662709bb7960f115c9ad6c5b9b37bb849005a76289cba8ca372f78d5bf17d53eafe1803122db86766bd35ecd8846d873dc58dc8705aa7da081d09d5a5d53962f5dfd414e408a7752094415c0e88490908dcacfa914c00e145f09c6aa6b44834a1c8adafb90e28d5acd874777e38f464e34689d5699dcde85138128498704dc79d981675780479b800d06330553ab2964eef7574951475b681ba1435ea175d8ae9f025e6e90339dd38cb143b9a3997228444fc3b59937888214b801dd2720a981ea81437ee2550d78d9f2eb7c221a3f251d7aa29eb1e72d4443698a617eddec97cbfd64ed0eabf4f31c18c916c6f5dfac1b0f23d550bc8ec672e6df7f76be4c886de70b9012db1ad4a890fc2fd543715476a6055be749a1fd52f2d2b3d3287d47cbb1b13df7733d4e6b5ec63916b0895f29791508c2b50489e3cc084d7da5a62fb7df3a8c3924ce0bea6515244b8d6edb67be8c6830ccadd111af74c40f03eb4bf0283b220921fb1350e711f08d0ab17d6b30d370ec34980db326b2e078bdf3e1585e874cae77b4797d36495bb809183026738a95b385500118bdb3fb45cc3069cffe1254c9db2894db38c760289d636ea8a88aec4379aa1fa2eec53f04084b2a2a7d85ca41d2d0a1f92a82782526e664357d6074e783d211f453688a683ab5c6225287676201e5c60fef982ae4fa26648a8c0cf6e98817c5238d5da79e727b3b6203ff81eac4cf108996ad2e8507c0bec93373e2723bfde2373fe8588e61aa70c1a789973e923ff5422e9bd1618cdbddd6b64a71ab969933931cabce0848f3b680b570ec2d2bd5f6805d1ab67e39b1447c0a06487c56e48041f4b5f4d6d979f479831a3f7c1f8e61835fd928603599cc9c0b06055af88bbc8844e1e6c8f72d1e7838a385ece92970f64d5d8b3d0c644a8eb28879560e19c83102113ca5acd283f6fa816d9478708f5a74e440040de8fe26436c0f3fb75bc97c36a7f39114414ceb78bd952a994baaba231e11e1b898201f612d629c0514ab5a0b82b1e3d7e6604ccad98797749946684c32245e3d6bd7afa49400a92e0ac2b97ce1f2c186714aa1a3a61b320c9332cc04eb92f76a259deabd42d628b5a6eb1ce1de51fbf9cd5e88aadb4ab076f1e38ccc894fd8a79f537e683e8260eaea963437069dd8bee9314dc4bfd6e008ec9af35283a287e43a1d25a547715b35b5fe287de065809fc425d2316e2b917fdbc5135fc9cac5354343d2c3324190dac6a12dbf42a126e8b1da02d63b87d4f53de9467c8b82da12a0b12c6fac9cedae63f7037a2a76c3e81679952966717a0354f119aac5ad2a88adab502e068131d3dd534cd0e03fab92e2cb3065cbe194d5a4ef32109969e43a69d99376741970a7c121ce80fe009c0129878e29549177a0bf2686dc0e9abf2cf3b33e8fa731a6df35d879ece44745fbefff868c444030a9a9544e1ab84a365284e0dba1e89e983983fd28d5deb2cf3b0eed278956094448acbcb5de5ad8440420cfc33eca0bc971057abc188bb06e432a00fca857138a21f3cee03bf9404ba7834c03ce54efaef1ce91d7d7803eae38ac30093a1db4cdb496adcb05a592ffae479ba162c9b600dbe744681b0ddb8991377842a49335f08dba54f5f68f29e60217e4a1c02ee6709560ff54b8406585545aa7274d029639edf47ebd4c7a503a9ddc8949f849554edb0816b868dafacab0f07ea4c6ed6d78c0dc516e9140f5dfb6e719ecef21f880db73e08093bfbaee0dc6341da87e5834c13b48238db730929c43ec10502ad095c282ab7692a7ebbbaf7e9c7f378e371c5c6174c858d7786c8012a9c61c33b3eb860c759ec9bc211115f77cbc8eea44e31f9f303221302785530c16a3ae0b9dea4fc5759b561d00db3183f29afc2d1869e99d87995d34651502b25a62203d7efeba9a4880ef7211e5d198dc6630798968070292d2fc435310c27fe2c7629f736ab93ac334e82b22907c9569703de4a014650e654375c46a20da32ee25df616a7da4b7a3c0f60b3fe98ab79c4e3ad77226b86901218448b76254dd6a1b7e543c12a0b862b8681eb8ea0e68f8caae5d200f021e62757de02484dcb3e03ef973cf8b9d8fdf47dca6b121dc077723071cea2655ca5478f94e6891c77e3f10554e559a234ee1148c6e2f6349884d6c54d34f6025ec45523b26b1816b1cfaaf67a7902babaa4aa73e3322df5da04e5adbcde21c065b6f8ae0bd6f0f9a2a636859477821ab6cae744b6245320451617a635d7ce634508d2e44a6a778dd98ab61e2bdebf762f827d6daf4961f2b8083a9a863897e1d5bb662489db8d645f4391ec4ccaf1619744c3c4c89098eb0f6a50ec0d2c6a44ff671da3104b40b70eb3cd5dd44b7752ed84ad17d0d4980851c449e4be94f55f343a0e772e9b09584c2f12a2fd696240becbf642778fd886630bcd0f325647f5dc288041220e1c68e5d4df73e521621df0e9cb896ea3d531733a1eb43c61a61f3fbea00d738820a4e426b4569c9cbe4a6ebe914a176cf70afe50b0459a49c9400d230e5848460e57d4c379e2d42ebfd567dfe3695c2fa3f4dfed750316649e850c6542911e9379f653b60f51d66d630689bc4a68687c7b7eaecb5e141d7efb2c0f05373c85a257686241717751afd494760e7b8a34a935879a34f817079c391e74c0fc6b66b999d075b531ec249122590488d56d7f876f33b549b54e0a6f6c327508974643e02b7901b4f1e36f10cd46d428b95c6d12950e222bed08df3fbf86d20fcba1b504844ee759b0e3ca463c4f99b532d6a31a5915fc2e54a4208c3a4d72d49bdc1facf0b6bbf08e03ce4d07f6e5538f2b682a284ec162dbfc8b55327ec40331635b40f9a0cf9cca068e4105dfbe286143f7fb33f48cd3fd4483eeb6fb322e89ac2de593c57cde1be6745c1eaf4e1396d15169c4ae3ecc887e240db9ae0e4e35b5e215a9974cd543cbb046a3a3680346403275d7d5f2d2f0841d13af034f3f54dd981fb6f194e72dc0cb1df5461b472a788ddac8095a2d3667ca4bb84a43c91d4d2443742ee4cea4dbddc2a879b27385ee58403298d7d041e4ee904ebdcb9b9caf411fcfa78241623d717327588c3d1a67782d80ef5a75e559a824d621bbc4c84a8e6ace9197e95294295f4f66d01f7b1e32cc5b38be121de168aab078066db07734ca271bd3579dea39961ed5f1d0ee25ffe85242a66b450a21e4a544b8786cd5725f5acb4d8b5ed4c6232f0cdf75332abada46eb2cadec84cc543c54d31579d79ee8888fa212bd9f53e91eff9ca1c7390afb101129f4046e0480a7d1ae64c682b8b14c41318b2ac8db6168dd5c583ef10419da6677c15b880eb6d5cf91e93c4f62f6323e6e1b2e8c6ec4f001990a34191d986c366f4a9f6196f7c15173b187b3c72c9d799aa66ecc20efb0b4d76074d267dda478e140eb191115bef03faf5b39ce5a3ffc73ebc77683b6df3ab8f901234c557db2ad2595aba62579fc203650b04bdc8d277830156ea02370b2645df878df4bae00a1bb65137805f7fc237ad08fd19a4fdbdfdbebe0fa69b81dfab3993b5a69765b405f3e23ff0e39d1a0bb48279f27d37221b7fedfee9f1fcb326fbb44c50ce84ac61c435120cb41fc8402b00872d6fd27b0650e0a92e074c014869c6580bf5e4d4cf4755ad292322ced4d7cbfcb09285a76048d066947a23d4337fcb1cc4de14d953bb1bba1696c043b9c536a8950eafb853984f5036c18a0294112c2163e83c769e80748366cce9c17ef3a9114a2cff35268a33639e24f8ac35a2ec47bf0b106928784c2aec371ff94191d7ee808010bd87b390ee897689758a2d3ff3ccfcb849e12549f3859c92811a8ea2196f8ade731e74599dd7aba9284a4714e870c0aaeea8da4d1bb5fc15dfb430fceb40f5d61faf548377221120b1eb5af8a60c5ec84701e118a1804c355571cc4d3a314c38862b4217a802082b14fe5b51d9215b40392edf27f02f334110926bf317e759dc62f1aea88f9cb9508280aac9e1c9db8f376dc3df476214d724323b55418525125f441f692ba92f80b5fcb76aacb81610204f292fd9647f3bc918bb72685b5f9b29e9563da56f53be0b0f6f1b9948d120bb38a6fe79eef30887c9af47ffaeae811aa5a25933377ea90dd97d0aae98283cfbe1c16efb5f3171f08b7496481b538a079e3ed6bd0df5a72467288764d38dd7dbdb3cb19c8a255c41e8074eed084d7cf5c5a541873f5afb5cc1aabd0756420eabeb2804f8c6ccf0ae64a5f72dde4e73c6338cc2cf9859e369599971739b76996fdae4494b2489d7e4734808ddaf007c1a9087f0988c1b1fde12647a5c671637e5dbb9683bdad5edec0b7fb37a9b00fa2ba6140542d09f60d8cd5e812ceac5e3e141442fb061541170e8742112f3e6bebc6f48784005050cbeaa683bd961bbc849b2b405d9aeccc1fd281b39d317527065609da7add61d466339dd31f520c752c8743a6c2cd574d20fd48260a4d0d7c3877a41adf25dc096ceb31416cc5d9fb4b546d26520fda27ee49bc158e308012562b6106b56966844efe5f9f8f40d56bcf1f1094e2f8788bc7cd77ecb3e109d63c971ee9f817d8e3844b4f59865e7a420f5d2ca924663a49e35e6809fce938e6e2bbe5096cf654c3096b4c4fb9a087eeb865cecd5b7baa0a349659e8d3e7405391ac9965f2e425930504b0b75f54605d038582e03d8e888c667c06b4dd2f5b0320d535b7f2555bb94ec36acaece52c090d557a6dad1da4513ca1961da8f01b7358076e99b430b99639f203203ead61d7b8feec3b9ce54455118f13c19830d66ca8e78d6b272248af7fed1131c98ed9bc94142e488891c480d9bb40e33cc96e9db2b7a25e3689690ed3d19d8a7049305c46172fc44173f6bc94eac4e8c1e4563fb38161107348e2a2a42602902b5450b50ea8f5b44fedc2360c4c71ba1c356445d076d7c77d03c52fa1575c31614e3e762ba57c351a2e758f133429f2ffac0ab4680a7a66eff4dd74430d76b63c14387b99219e50a5e95c9202344fd0294664a48ba09ed4357d5378781af9b84fc282b07110d37e16dc5823325a169b12be827318e76a01b1bd1f281e6cbee7976c5fea660c685f0eb58a580f097170cc9d2a63497ad74888f58dfe9c21353b98b317657df36e213a5009f43ea992c2736d7e1e9be33ef4a7d51d434af7e7bef7046bf64099ed536c6d8eb6587e4d83c19d67acb686e3ecd0fe798729a5373923c41e71ba553887a1c6a1185f60aeb29d11db8bd01f30f37ca40dc0754315596edfd5a61c2c7688c585d939372073d204a9123bfab6c5c0790d73b2164a90ebcd69ea20631d34cad019e42918536d9fbf32c46d11516f4dec521399616688c8a67cda280f29198428166481d08cfb227aa69d643c187020adae1e4693421703ec0f8421a94952a337f7d7e6076416e41de25df29dff2a518475704d9ec4b7d38c17f4f9d6203de87352b9a55f83a998f640d3a1b25217f5870f07305de27b43fd91070491793ef9870c94064c36e22e1a6fd9953d35a11dac6542083ca3c6d3a0eee3ec0e169b05e8c3c43c97b9242126490731326e81c6e2fa685e9a90b2841805285c19d683a0d39ea918d6e686aef6aaf1c3204743f5f3c2f9050c48d8be1d897783107db2076e39e327b75e2740787f00d1bc035dd18170251bdada8b1ddcc24130cb70cb3b22d8321cf44edcb9919241d969c8d7219abc5de0e4a4e37b698bd1d5037c0e5cfd146083c06d646d33a47781c82d66686d4b633caeb37d759ba340f5ef60c964e6d9e43815535403ab225e23915743e8c064264cce64949fdb22d0120af61e7fda27453282c11ce06eb531d5880eb9cd118157f9b62179c4d2800d005e5d1bb21521101568cd3670f75f2f833c166600e552e1cac29fb2876981b89fc99e5b27c9abac0368c20bdc9e818105d0e2d284cfeebbd49158ed1b30d214614a10ef290cb76edd97dae64711a02017550988079ae3377ee0c59b4afa0b4b72919fa176d82b4194557b8173c5f36e8760bec712babf45cc52ecabb94d717b1ce0f41727528f3e86cd3d6c381420ffcf088c12742cd9d5fde182e1e0e0c668ace0cfd4ba42ab29efe73857d69fc99ec4ff3d479cb76d82a8e8c3a4ac093a0cdba834fbf5528a8fb52d52678af014267e4f98feb38f3a87126c2bf90fe6e71a313084b7b2761b3223040b8b98646082f76d696cf758a683029573d546aa52807b83dd3b57116d992067c37cebb2b37bbb080d7d634cc741c9fd05c78fa2a89b2945fa2436ade1cc494edd2dc03a752fd01db153870722be02cca3905b8db7f4e512a16950940d73e28cd0150242bdc2b75d61477d2722c60ab7c66053cb5605bc3ad9eb35757cbf00a6970048662a68716cfcc6a58bd07bcb74f192a72201006105b68d637b420f78d93a042e61b44f876680b0dd95622274b96e15e7a816ae8dc6c1236c87d7aa97700e62788497280a3c67417c975697b088a2193cf0d68c379f2f91ec558f05454bb969dc3c310c13cd82276a2f39c07e92a51ac37c0b34683fc4540fa9641017a36184c78f363aa7e025c3fdeca6f86c6884a6eb91324589c4c3e82c1d5099bdf0db171fc8ac9b7aca53dbaaa728ff373cb3f1271c60649d18947478a3faf171459e6d9e29ae30efd1881ba11ad4b40e1382e6f6e40f61295a234108405ab7a7f86110ab2034acbe5aaaa438dbae106024fce4f7f7786db9ed7f2b3c84af715450ba54b00af6f142d9e1cb10635ca29045721ac32e1086de566cb4508c415963c68a63fd02dcadc0052edbcb65fe1a0365cd7d20a625275d774f52fb3e41537415596972ed4ee028dda7c0b175ff4dca5a1409d64f0c4574c2b0149c1a5db78c3a525d8cd40e96d93b724d20850ba3d3bd4cd6bed1e7e0cc488e998ef95bc198b6952747849d27e5dbc206f6c010aa46c96692c53a012e295c3938899cdf8c8af255fe97f2fc023f386d48502a8671736be7c57cd3eaf1af960f15279a5018e0f08f5f202658625ee1edd4d9abe0bc59ab7e83889240d911775e9ec63acdb22b098c8d45e7536a71fbe09ae770f4d59be80f168942bb49fce5d6836f90ebc2d5b54f99906a83c259fbefaccd67b6375fee1023080b9b549c91ca77c6af4d39ce843051c4a1cd31d10b6bcc1a8f268e6851c9814e7c687436864572986c2fbd3b5b1f116dda4b17d4a1b4a378091ea3b3ac70b3d299369fa57922879a49009b08b651b8fa71e9680e2f560091a165853b9b43d716229038a0372da5769d00d02b0b1479cecb043bb301cc7bded7a187011802547f4309b63067f791d1113395b9b9b99da6fbcbec1bb24fa2478971e05ba967ab5272d427b581e8a413e98a17a06fe87a6a5cfe5aabd7a71401f6be04af3372cae7010757f9bf277de808220650aa45f62ea993a3000d4a3d0d6618187612e920077142d950bbf2510a35a54d5dd9d207868c5f0dda431b72852510bfae94a80ab9dca41203ec23ab44888a7ac11f516e8bea7b0299bb981f163f11ce2f8a046be61778416731f62913f5cf50af76b62c8090b9d6779e4df4ae2a04bff09f800905334b81cde80e8e9a8c4f7dd30b0c87c341c3d7c12803474a830dc447b59be4acf61be1383e0588c182e29cc1c3432c869d0e254159ce84c607f4336c7043a47ae6f0462d9797bbbc293f32bc03d7cd2059547db335cdf6f745daff71e70f20efd91b5cedf7cfc05787c77be77bb2d904f7e97d167bf1d83c975a5bee6fe303d598080a333b7d40db10873d5cc68b9beb34a3b7ccb91ef03ff6979b8e1ebf5834b83d91c594ab7326b8cf2b399fce014d0a83125216901d24d1a5e0c33e2ebe79501fc88b39e3982f765350268ee12580bbb5a559cadd8da0374942bfde13222398426cfcd7b7abc8646325b6028c1e667e39596d7e5a2712a3213fcae6920d07a7593fde33138aa021ef3a9ca9f59f0ee1ff165f5052f004e2eafeacf1d610454fcfbe43c5945a294e0726d9a678b7eecee95ed0f51bbac5ec7f017c30268b95ccb146f2a995b16b8415235319d824924384ed11bd4d75eea3db5a8cc08c22d9327fe28b99bcf13a5dfa370210a1e09666b7db2e1056b3a654c684661cc7bae30986f92c203108260466275cc693c230485cf769c0d2b11ab04dd1dd7f3b590363105bc3f17883d049ed119e736aa1101fad9288803fda692fd8241249d4d80914b300af2a1ecd231c7dbe365cd9aa36aadbdfa94dd937c641d5a367de1917dc6f9a0f43d3b9779af3379d7a196cdc11d9d37cb75ecc8c208a7dbff091fa0293a334d7513d907f747d68e321ae7e4d7b12171cedb109df699867857bb4a71a4dd02c9645159f8269aff7661ce40df43b013145ecd5259d83f5b6099f6a28357e1286c0e758680a30986c8b774afb28d4128e6ee7d7377c5d9f60ad1f3205c30fba2ab27606d40a194e301243db9cfcacae740c432061c5b2262f2860500eed8496e4ef84d94b02559f47f8204c5282ebb7482b413805d94857ceafa087143f95dc05581dd91967465383f06e375ebc30f00979fb27023ae876ec5675ad66a3b05d16b096d7392579f6f846a6491c5a9c4cc4fda4f31bfad20fca0de449cd60a2f03dbb5478bd63627b9c60f6f88edc00d512481a49a5ba39cd9ae08ced7764605a0bebfa29073c517adc8e9a13c047e69572be7863dca8b8964ecaf73320ef0e9fff82bef62020c9d35500f644f43522f583f1c6c1f3960f8116d00250f7262e70688847d2f0294509ba6d20a8558d382279765aecc9bdb516fc7a8bb965eb916eef6350a3d4e75acd3ab237483dcdfeefadba5fae57f12490997e4c5029b60f013c663257fd032b765d4131061fc6dd5e0a65e6822a79e077e965671c3daf3364d70ccd386fa0e1be5d97b313e0e6d41e8b0d988f413566abc72614c4bc2a5a6e0b19ba421e4949982001ce69475c00951b9f47bcb671ec865e07e9f61c5d6a7b06df818293df556f7211e414830abf29629e541138aa642b3cd3f21e519011de041b17bb229f14b2aeba02f2f7a99d2f95b5fca350fd647715ebbd09906c90d8b4f6e22e27cef90870542f29e30b3c82345957bd6a5e7c1583a766b284ea86d38f634143f065890cb02219772272ce8ad748f049f9f65903d497f41b6ce7be5fd86a7ebfb4b7f87e19417a8282388559b6d1b535bdb46d34c5ad4f08ef53cd9c1d33f5f77916bbe92681b5c0f8fc9a12940a05c394170418d8cd79f481faf1411bc8d80010ee332d58760a88f56ccfa3da69c44bd853634b58d4de50a2b315999c737bd4e3a03b5f959498583abfa140e70c4d77b646ec339af6645e8adbf608a92c9a73a08efda6961951bb607662d75d4a4bae1e3657e076d95a6a2cbd984ecde5216d1febf9dafb59c8bb8e0e5bcaa4b65fceb61ccf7958fb16d48c3764744419116811fca9c8059862d1824ab299e59e12021a3c94cc4127d02a2f774a8e54e0a5d92e5f078b5fe2e9fed4d561ca15f3da8e86b260be74e3b577a5948e43fe899e70928d0c61fc833d7c86a5d557e7f7f55a0d1193c6a01e5163ca0ffb7b5eb13d6a935ceeaf5f7724e3e2c37a3dcd38333e35c6c59b926f89310a6ce5e92d3d5f0e168db06efab8705b71357ef23082b1fd643eb0defdb968c32d1c8963599f696884b86985637def91e09e524cfe27ae23d9a34130264079c1187a491f7c405d025ce487fd4a0bbaa8befcb885c7e5d0118eb6a772a290a7cda53d4a9b70006f5f14e56437cddc36b795a5585e4e125bc8fee6b1554a581c53abcfdfe2d0ab2fc841add4c7f022484cf397ce0b59a618985ec55ce8a7481942ba7179d941c61c0fb318690429541bd085f69811f013b99e09de910771e423f6cdb49802b4a94e57c0a005fcea1c50db0ff64b5233e7ba73b8c9552947cef4ae819ff5c05b71417178f2f4cd99ed95c4c67428b0eb41dc7c58aa3772a2befbaeec057a0e9851309e65a73ec4d35e53e4df7d512cfca2b1caecafa787c844a3957fb5985555664e6ddad152f79c51d903f565902517b6c16669c757e5deb80f3a11ad5bc7ff6f20490f73879b4809938d914a175de0b465eba62d4a693b5dd68a365d03ba73ba5d453fa68ea6aad08619f068c7bcae2c333e995c737814e34d98bdf1070162287208b54a50918b33f7610961c1fcdf8f2986091f8e339f85239505cc4af8dfc8fa8aed5bda423032007d2d1a2752f4f085e0f02673f02a5d0b6a6413fd92a00bbae0b499b5ccc019bb2e9d7d279a71b372e8b8126589d67cae21f61d50a368ddaf7c83daf77689eaec74de7787a9aa533458a6505c40ba66458e9e1c94894090db16ed97d82afba63f17b8e75633cd9471e2d646932cff8bca8c773b0b43f8a7ac0458d9f7efd17c3b8a40298e6fc70576d583972defd116c1ed9cc5b27440e17634e6c0d7f281aa523677827b70d2e927433ee2073a00a0cb4e7dcefa83668af4bbdfb8143919f59d88478191776bdc8d32b2577a58800b9edc0b3a4efb39d337cda2c1eeb0b7b8d61c8bebf4365d076a781210a1695cd54d980100b457e9f1e4da3fa2f3d23b145880e7e637d3f80cf0a7fe7e72191a6e3879dbaa06bbda593a961c7876548da1953f81cd66757a52db28c5b338ca208a71b226dae5f337a0987f5bce2c78a10681b61eaad4dc2de3045fc84b60ea4932c36dff9cbd363d5ce1265022a53e6de38ac02f2fc00a53532cec663d09d31b414873542c762e4ecafb617976b785c4a860e829671e6f029576933f2c7ab304118d997611e781e4be4dadba2dbc4f5b8930efaa4840a62838a6a8a0f10575362d94c4578ffc9a91fc5ee1013b45e26504327e088e38596557e7b3481fdc0da616f0b4c124e56c089908d3dfc2402daea27ab0fd56b2195dabb27508c331dc538137c42014dcbc3d4310dcf9b8a331e91d0ddfcb2218ad514e8a2a50953a2e87a06448746ef98addbf5f43c2150dd9514ba83d4e4a737c947e181caac7782525226516d9b99cd7a51cd90cb588a0995b4941e72fb263f118d918b37e4b4f530123c503be875fd4c8549d6fff46f9d6dc1f534165009ca6b2fab080c2287d9b996f2cd0dc9f6c8a07476e2c1a8e4fc9e489abf968ced81f18007cec76e49df515fd01f93f65be6f91901c301906fe4dac66bec0ab149ca85295db7e9e989212aef119471e2c758037d948d576f6ab9ca5f022bc8e5d1b4d11fb37044b9616dc140d9005a05e736965d5a63b331fd12609d787aa8e7d9806fc32b4bd3e565c10e615a28c1c0fe3764502c8130d2020bb7dcac0d41017db4e4bc4fee457f9688e37917c3c7ee6dabc3003d26ed055fec36ac0e99c2c9159bb4d14691afcc8b089058d18382bd3f68a739f8308ecc99bb4f1e14d3af8c3aebf27c9232f1a24c7bc17fd3d615f4cd24d45af951924455b750afa60c063c5ab28f6421ba9906aaa421a90b55990c2de3af16074adcd4ece91f76d01e143531b48f4b9932580e29a5c8b9c4e052b2101035af488dcd4864f431cd8014b72dfebbf908a0d88cfbe5977faa2888c0fbcce4edef11fe86bb9d8cadfefd3c5d0f820c4e2bccf50f3c74cc584b84396e0541bc0f4c82fca1dc17887ff0153bcf7ffda159cd6c6cbb8bdea62f5f09344816f13339f5241ae17589d8b87999c0bd86cd4b4567a933d766cd8bb581511e7d444676a83a21ca747553649a8f079d4459ada7b67abebbd815accc11080b01b3f42b528dff80c923fc0d173e514662b6f4b68d34d8a02217b9339504dacddfc88f4e7cfcfc84afcb3eb075e950300600bfd611a23ebf2a69fd835a6ff9cc5f0158b02733ec9d8d537a936278f71b1edf13e33f80145cc9faf3f3e099e77dac0d85a02f1a932b6da7ae64367d9fb0ae57ed0bedb9b0c0f7b2cbefe29fd30405646c9ad6f6ca354a41f0a10e73366e69a9dc474bce1a53b8540f3c37ae4e043dec51f58c4d9853861b21f165fb04c95d27c98b10d497975c3cb59124781c5fabd90101c8427cc0f983cfb4d37813e38722a57c4fd0d069bc2082baf157d6e4d8a7692bc51865e269082ca7fa1f0a3be1afefa50515776953f854aff5f57b54e107a2925cb9a8960ba33f68e6bb3ce07b51dc9387fd6d84e93ed6eadf84cc4d62e6b1e7efa26767263ab4e41080b89a274c9cbaeb4ab2576a75a9a6832984dad1da705e1082c871aae64d93e044e653e9625a42c7e73cbd838165bb897b1104ded80956e5bf7b18c880064a5b4f793ab91c2f83b9dc3ef1ca4bb94dd84bae46848a114d87cf91510316dda96800e9f4aa5c2b10a613b0cfeb6e769fd8cb165b5bc2d2f51ed8b404754952887e565c8a34ab49743c60d96eda23cca8328d416748e1d7254d3e2098787c9d2b057bbae475857ae7f09d597d9d80dc5281ab77838361264e34d1ba9ea3287074487fde80c5ed535470bcf115c09596c67711832a0199f197f55ac72847e0c92efe6564d314f34700597cbc89afe36cad4343009bcb0dc047d1e4b0b75a4137846cfd72f64aff92b0d076a8a4fc7d4416540afd207a45580fe6f25d35934d07370224cc8a70967d59effae738d31834dd6be8ed28e85f76df0d9898207287bff1f83106b85f00fb327aa7654e83d1f1638be1dfc4e4cfe06d326624a256ef72540fe049d2c16aceb5de0af9c2ada93235db44ec2f199b23a3017c134a62a10d41828f50840a30d0bbff90caa86ff93b6491e395c52b06b1c6df28d227b5429629bc153c56ee4a751aa8012a020282114a1e514ab4059907329a3b4e3185a7a539d200421261891a6449bb46e2cd423322e1a94432f37ffdcd9d13cf26423492106440977c8d410bcf3a50884ca3e373292c89b7a68640894dd371a75ebfcb95df9845a7880788b54a8136207ebecfbca413e9900bdec6f5fb3896118ec4d62542bfb82cdedf3bf4f2db4a1d642e007f0723ccab016ef286386c37f723478c517261ede549a027a09da95eb25465be89956f169e89fe15dd11819cbd79ed70b1ac7d75bd14df8f11f09f0b8dbcd3cf851e15c708526846a3956296d96e95a702d90c1925e75d314cbe84154cab84cb320271923a74aa4076786e346b9983a605a42684e8c7b10029a72ce7259d38c6cfbaceb6521988d6362bcb60fac9ee6589ad57ad632a88e19e8f8d99badb7f7adcfd09791f64434d880e833188c304681a29bf58683da571aad5ddebd4334534733717ea391873d36521528732e32946f4bcd9d924cc3b051d235c7519fe31dab9a70e5ea2912d36a0d127935f8d1dc02d7c8bdda291dd50cea4728b0cb58e73049e31667384f820ec57bcab0bb88227d32786b2d861688d8bfc548804ee6226c50763e0d6cb84bb8828b14f5e78caa596b0b1168177fb0de60949ed52d5e15369046aca713afeeb0f6ec47fa6a7ef9c36f5d09b0194797a65f799aad5188a0b8dac6441659bf10c3eca5adc13b717ebf32fe7f06a508f0004c5c663675eb897192cccc0536f261c22223a41364d80a57b0e868dce3f48217632c965407d04af0c740604882aa2b224849be14a3ed35855a504200ffd1619a459a680d414d3b8243f1c83eb495bb8d625072baee2ae093f2a79ae5d5226ed97e52a9176e21953502b6e8b83d94ec78c5cd0aebb6efcddb551e4ee992368f626187f49956d77d624231fff7c3e80017f4432267050b6822295461540a6259476719a53f1cb636489fb50d1356dc739909405711dcbb60322402d25642ba134e24b10c20800e7025df19717155ccb6fa5daa940bb988e6219c2f2928b1aaee9c2d317e3d5fb767c0c82cbc2b4efee16e17984eb0240723fae9911451305520018e3f4fa7cd999a2a4a5e8905974073f990219e126294bfe8b49de3b461ee1910fb80716dc856b98e37477a5b6b4221c5706d26f2a7d955a5b2611ec8193da577240a5aa3449b3a4b57aa2b77648b10356066ab6393905220bd9332aba5bf692be4bc00d71f050f1730c97e203338495f4c6c3d6952c497e1edb37006067cf94bf21737c40192bf6508ecae7372a9217df7087a296bf811da075cfbc6ec71a5780e458b7bc5d32e62a28f0970872583a920a93787dfd6179a1d72afaeb5d96b935b8bb053cf0e6fa18d4462bd9ae7621eb47161f3f1590bdb530bb4b78581278881a91e61c0e91889131b03bfc2b409703c703c5f57767491ed2e8c9eb6c1e7cceaa96b146628902e26b132e7f496d781c687793ca878aa415d3398b9926e7f527c0faa9bc5179725045fa73602cbb028806097e61bf3adbb7380c8f723c402d9390603aa79554d1572d0be434154074e79d5442dd1c0f3cf0181400b16e169f44c5fcb6950200e2a9eb2d08591af44b06be1e27c083d3e0e425a5db915df9678cc3212893b121ccf8961082f7c0bbf552c9d85741f242293c9681329d29c6d3d6095e1cc8292b2c8dd4ba4ca8c044411360f81f7fe2d975c8ab1e41d67de62c401ab08f6108a0daaa09a9b455a31705ccf43cdc56a583ab7c1f935cf75baafc4b5fcdadac0f813feb6c48df98a33516de9b3344c0287a6ad49d7de1a13b57c0289cb76ea7e6ed39dc19053ba7081d1c750f590c7109b508f2f22fae4ac701b6a766c991201617c9c7aecd5e6ad14debc57997afe4b0df38e8b954cd8c4ccb30b43fc2fd8ca438a081496e7e7675f1d93e4d9193d10b1906a65866a916cde34367fcff0c4f8056a97c3e3fe0a7cefe98a1c22025e41a316a728d2e4c6142989ebb203aaf1899451fa2081e2182d9929f03446a817452129adc8a2f8db70cff744f68f278e4d2b6980c854d9f290f4be00602cc431de2d153cf28cf50823f5465491344eff62f79c822b460f23ff8a7db2953e051ad99fb9c5da6f8af4a5698645415fe7e1d65cfacfd44a4989358a135b8f08ac335c1a87cd41e912575852d95df09bc469e24c976cb287c618b5674238413dd9791010c7dd5940ee7182ddf73f20763d1f5fd8d21a00e61622f9cff3617686b22a9bdcc14b08d5b2fb691a98bdee5588655df67281e9d95cc83920eb1c0c2aa535af8d6f0cd097239490da3d0af7e3ef3ba9e9b71d37b677262d24d3157c6cfe20d0da51978ad5005236e8d27311c0283af985994dfd38aeb1029ab3f66af6c34ffea292c812b8864114853271283cc97a63fc3334e0ceb1bc05b546443163f32499b409133de7f27bef111c83dae0615a2f47a9400506795903a4b031cb473089f22a8d03f530e5901c590e4a2eb1978e2f5e08940edfb13b82bcb39d76b41296499471553abd5bd894f63012559da1bd83dd8954ef801f1655843aaa35a1a17416b6bd8b9e5f789e8c6a55c04baa9f0a167e35e1e08d53418c03a7d4291590fb0b28a0133136328cb1e6d638bedb3488e2f9ae99987727a698b29a0197693302eff8174126c900f6e7ea6139af60c484d76043b70cf06e5588a397c3b930c3c0f1625a97bdaaf0c1e04b05742322386ea08707bf4067d30bb83286f54044a40b32a9ac0c9ef7f6efe9ba214983a7a950b4ec382ba93dcee089f759b113287336c76395b5e07f69e2927bc43975c74c0400294ce50e69d0a63e673d8b4d692aeb9e00e4a4b03b5685e24eabb01bcdb4a40161a267f104120d58e1f55c3b22f229208de8d29e7ed13d47fbd0d68948a485b77556f41d2745e98334cb06f0c7e9d5deaa1f16835fb15013ee66ed8c9784708611b6531505f3598cd505ffb471e6a73a5a8566d53f0c02851922b039213f61ab4b63e6f7bbe55910ce623541dbcd4305edaad5919008507917d2c433b5d8d3d4aa80ab975194388f5522e8c9fd2d043b6d8d046f20a10c51f31c6946d4748e26f9108f78c38b5fb3b11e112229f486f103908871520a88d9c05a58c9ebade2dec5fc911e21ba9ac9f294e65bd9b5497b5609ac28ca66eb1a40e878d63fa8a00fdfb74add68eb29a79d3f4e7cc8c105f1a8476ee507ef5864aee2a5a2d8928aca7ea56a4294c0052655cc8f215170f8f7dd0607b15894421c166c68960b95706dedb30c9252aad94ac002c6ac3ef0d73f3041e1acd42c2c8143e79ef0a5849ff6d067fa798ae103fd39d173b6957627d10984363506d875a3c1b00248668337368f152e0bdc5191f937e22f0fc9349b315e97457859056f69431e80680c05274bacc1d2c19f49013a8442c128faee64b9065875f8f571cc9e0164ba7e3a606324e8a14b8379aff68b569ff4336dae7ae29ceb73d00dd1dbc81953855c58a62b6fef709eb8076241ea616111f400d9f400fe332dd4d20b9b5179d88a82eff0b1a5269e39bc9b850140c21042d13019982ae7d31ad13db299e2e78ef2dbdac634ccbdf1a510e87e71294a0c39895d515ae703b73bf84f06deec5e752032cc054533928e874833d864dfea1c75998a73d48f000d7ac705456c262294beb557d57cde94cb7d3e82f5837343dd05bee6ccf39694cfdb0a782b05dc93bdac3448a446626cf40a04002c26bb118097f298e9aa60820405b9d4ef6fafd5707b68671cd65d12db432af5d45e5fdd4388d96d710124a2001be2c11b4f0a32d979489b782146704e9a7ec95a279d27062452ca7444f6d5ea46df4bc90edad99f7b3af9ea9e4eaeda3b653a1b099653815bfe1d2f593316bfdab0469b93129ac21b9825fa3010c74dc7c36aaf3d5d3deeb31a8ec912b426ac75e424a6098d0439cd674273749c8599d01e8d33452634e0e24c5e71a08062e3240a678cd89806fbb0a479a895f4f16c4a95ae0313b93892a6f703f5bbfd7696b92ac06135a0ee91a821d270ac205737044b48aef1451e6525f68c5e2024756a1633d6d2cac3c66e244be3debd9c1949381524ebf8915d8b3405de8a7d2bc1c573188c267749d71a6f045c67c00cc57acc55148ea7059ab254eb14c08766238c4a588ab09f95caeeefb1fa555aed759b7fb62c5faabf23d8860e68f3d1450ff0a83832d4c5402203345ea761896f490ed24b58c228d4af11a1250bb88542ef0c305ae6325debf07e8d8a074cdbb56a7fdf1b7f655e1f0bbda2a5dbed64ec787767bbd7a192218e202383b3a736040170e83e891ada255d5ba1f9e39214817601bac645cfdb598dd84202c455c90f491a6b10cadd268e6b6183b62bb0f0c81c1b4ed2e2064316fd191f181fde8fda82cd61a1d27e03a052f125ee6177ee5abdab4558c8f4e57e2d4afbff0e7ff686cf4248163ad2e4a47dc6104f99d2e3a97eff62e34b74e6dfc47f7418b097601686e43c52293810174e8c858926d3259adcb75eda3168100af1baaea16be08266665b48ed99aaca244640494b8818f01d767485fd1eda8a4b8eaeb5083f4380989f6c2f9bb6c3f8925f0e845d3b24b97685cb69c8845ffd3e4b1a6eb302d91d07d7a4f503eb00ad69b75e417c565f9b47a3292ec1fcfabd2e288a80f6703eb834631d424f3168456c8ddd535d184cd668787c418225fdfb9c2c1edc069b882d2fd03e4bb5a9b85362ce88f520468b0235b448f638b90ed991a9523d4e6ff00b15554c0e4c505b4a6dbce95e27f42469bdb476e740a5da3189aa567c55c92d05da2f4c1a0adf3b5d977d083c1aeb6df926c95567180a5e25e6d1954158b31adeeaca0e0b7392a5535a964e72c069ee44186f1065b10d65fb74e196df29f867cf75f79a5a067022195e1ca007a846db44af3deec3f0106c9ca05e54479d7c2cbfda54efdc31f85eaf66a5cab7425f5b61c14bb00fc707a645da69ee4674c545a85c82661074183f1cd807ff8a9ac46ad117310aeebf27d511bfba6018333008c91518e6a001d5b54b34fce77c71b67ca13c8f50e931de97a21c31999ac5538f8984e8515e309af9fde1a566d591390a469f5f1d2bf5a4b1099192450d53c18ea8a89d48d2675fc886b83b2afc0b4256788a013bb34a6969ffc7927f25cb2ca7e09b5d8eb78d84756e61da475795f4d8e1d3338cd441be9badc1c9ac5f8c86998adfa3c2283b32024ec65c601bacc5055a0f07ba4b07099ebd5121490e068c85020585e413ae6c31bac8584f7006a90813fa5090995b091b8a5c0a909a645c8c80c37d494ed21a1c1a8ec271b260cdcfab0d90611482c1ae74a4c62b379227ca9f10fb8786205b1a6ea7d941e059bff0cd7ab998a9e7269909df92e85d0652a7eec2f3d6c44d3935fe2c8bcaa1be65c4acfa6f5290ad6f5472260cda8eba1b93c9fc933f87025ee30af54df1dc6184aa4b001719d9161db9af2de8ac6a4b8b9dc2828d8bda133742766a5347920f298ba13a089e749b70322024fe5bf2b0e53d0ba59a328dcee58abc744149196369a802405060453d29f90463855619b2e257562e3a0ea96b11774122a0c22bce42c4c11bb50fcb3c20fdf7f2ea8327ecad0f0f427e466cd7a265455b6b9c2239868c7cf69ff94001ed633850263cffd0499c44fa958ce9959451fb991a3365c34237a02ec1fe7a58b31caab0ee4a722eda265a1f34207561cf3d34982c3b0a6afca838c9cb279d357c2025a5a9c6148084d1f9a50cf4275d0cd1586ef585d1dd852a31a3016a8c955fcac3e2993f0e1cf9fb9743cd45dde50badf9eb96a41f1650faa5f67a3b79f91405b2d55e66df296b8c017e40b6153df61f626bbd6d5ba7e8d6c52cb77dfab46cd6779f52b8c0d2ca1154004be817ec8185d865784c7c81e9dc5def47e9df7a5481d0b8f2ac990442d3a8367176db6c6aa730ad842fdd493194233961863290f3634af42cb51b56a812300db443290e23c6d0285c8a1eb0a9e870ac4391f470ed0c6b5b8a4ec95640b3821a02ef537dcf7ba6a4f6701d5810203521effa5dbdabdf3f7bc03579ef4828a7356259b3875ab691ac23ba6b12f11c1c4dd6ab24b61a0f0406f64d012e521d0904f0d553beed5231eb8fb66c6f1aa5a3f3445eff814e098357c300d98f9f996b50768dc73d81ed6e2f433243298aab37131bcaf3aa89d7a4e3cc60fd3c80192d3ba459d5f663a41f7ab17303f1d5efed2bdfe3c7b3e184fd60a843e71475d664aa657ea8374c90b4c8129ed138ac348745827000e3020aa45e6f39ed9141a9e7cd8c8ea2050bec39602e5a5ff79d5f848318d5cab3758a0b16d81bf8782c1b54408881dad9b74a4c23d6e44ecf6799f2b89a249269c6784f3010147fdf1f1a2900b13c6fcd743390a7f52ef4705e0d31598e03779532c7d9a4f47fde703db69fb3e73e0a852a906184714c39a2c3079ba528609ac01e65e21549bebaaa726cf520c7bdb43f24b0067e2f8a01d68ea839d298930b4cd4451a9cb9f6dabb9c0b62b76a285a06e448215bac4cf409823be1be59c7b6534348f97554a1abefedba010de3488617dce12a3f9b9d470f8dd2e1b9b7db67bd9dad1ff2f86c254aa6bc71f8bb672232d0d9b7a286e4d2166ac5bc7247273632225f6e11d29620b4e342ac706fc08d7db36dc3a58fd0e25c37a96ece6ef2f14f5bde88bcc3e1b13880ddcc90b9d6daa1083c3faf5d70c5c12e667a34e2e2f1ae59f1431f99604a3b23f67c8eaff6bd834c7f4be683d5a0ea9613aeb1a415c993cfd4120da3fe06d8632d20007fbf4f352bb03dc3e33b69c5a568ec40b727fae661633ece8216af0892df8076914491f39fa3f2139dc988898a6d9af3e3c1f959d455672c59a850218531189aa93a79c5e4177402d84c53b9e7e92695f811b18683273291ca13fc6313c6f3105245bf485836313016f2ff43ff96788455af64739ac3a1cfb2228149f664b33078ff82e4758b5b6de6da75f19b21ee5509b9b1e51af1d3b02fc2ec91d4f5a66d3a23e7d7aacba41cf894de57006859c4a0f771824cb1fc336fa5c5e6d38a75d22b455f2cd097814fb6fbde7d2f4e77e20f2993523b0e23b7fabe5b2eaedb51a05327439af89837018f52fbe6861a16665f25c41e72a5f1c2b4ec2c83e4ab29b6be316c3a52b82d4cc2abc33816892ff746711fe8a107e93a59c2fc9fcf2f3f7443aa748070a8a8576f66aae94a3b0ef5a4557eed4ce9ecee40827f577216d4187a551d9b7fedf4a91087db60e836150c994550c8b95eb74afcbe607c744b06496ee64c7514fa7d791d5fe9dd51d78312db1aabe722e92d944d3d249752f8117dd7d592c2a0b3f44fbb7b885b06f5355de47961d4942208871c71956af4e8cdb9327b7012548abca628b2372d2134f82bc2b20df1c52acbeed3caa0769ed3ae8c7c6130654ca29fdfeeaa82ffad3507e40af95376fcb9d438440a9be758b0c0b1b873762a97f1b9a31b1cec31c3c979ea5cdb99a45b0fc602e3e7adfd64f2c05059a50c98b5be04992e3e8e7418e389d17a628066658b2e6e21384ade1025ca9efe121c4072c70b2c0d71023252592ba0390cca29c309b135626a9facfaa669fb4be131e0d7f25ad77717313d035cc4d6506a4a6833a36b6abf12297b3cac89c2ca54d33677621beeb4628f0de67041616271bb9991d7765c51b4525902daa616917e3023651587341ea6bbbbcc0aab631cb8ae89aca443027b2dda67cab1ea47c88772357930f3ae1cbe161f7f92a68478fd30cc93a3e14f7ef88af88aa3478ede48661aba241970b92e847ef9825ea251ef5c7dcb7004fd15385241e2a0a633f9faa1e6ce3206e50f04b9872fa6cb8cb810598a41b791df2908269edf3de9af8e317acb2865e17614bac237a036828722fd5c02e0c51dfb6e998b10ad179ac76329c8fc1144f7c24bc1382ab247c20a79d189a65b8e4afb4caa662dfa0f3a4b8bdd27a0e4f05357921c9dab5830bdc98a38ab5233368152411879229b82d4c676a094092f50e859505c60a015820e7d2100bba79359c8c56cd6133f07dda8eeb465cacfd0031dae43cddc1e2ffc667b3808f2a4f305146a67c2fdb49082b60535e05b9118b1e00da51637a261b192233f029edf37c7f3612b48bc499e9f3eebcc1cf08ce480319e7368087b72be0426581708bd27d657688af2e73194d46c7be2b99bc0111405c165bcc20b91ac059774926ffb910cbb9643490f225139b440797515bdc6b71e3fc595b275498422aba7ba8b7d6168009716c70ca0238c1005bc03aa2265b396b512c6d49fbc406eb9d690a5da3780ab6111e27aeab3bcb126a0ff9734a4ddc0fbc90d41d080014fa914aeb76cd48f166e8222f6cd71cf4e6ef2bec8539731564d83713c6a95705bed4b9fb665e9fe355c757a8a4d22fa7594437c2bdf282bac74772402bf73c25bad705560506288fd4a429888aabf0f1df6bf0030a45d05c19f5593fb569f5b6a7fa5793aa4f60f50c9bb80a3f46530b2400b2b9427f59467eb1ba7d030b21bb488402a4eef12f42ef1cedc808b61b73549120b44349bc0b376ebd340d8b92f665c1f54ac145c763ca4d3368cb17dce1f8a555e4223994bdb5d60dba41455224cc81d4e8300e5c653e6fe988aa51e9f78d0d9d6e31277f5453c07af7880a2dd27ec9ebf2b1d8c02bbbfc00fe1cf5700cebf701505264ef16e1d3a174d2956b33b31cdee30907898e3bebdb7e7a115af3d11c7438d154c5a9a6ee7833a3d7a7c402108474bc23ed1485ab347d76c4a28eacd4c0faa97f0f00812b8a14fbd16b00ffe41d874f4f8d36e57150fdd270eef0f120af5b85c4173a152a45854e2d99d2af377ef40c57412e965df392460673748c553458ce6c496a4fb5ed2b0ff3091cc2997577fcad85fd76a484d2db2dd74c5da79d9dcaab317e03b19326788819c5c22d5086e1e8b4bb297ba45ed9d32ec4c5a4cbc36e59f145e426366f4acf0c0a707c72752e2569333d58881b867bf4d4bba4bf81cf896e6603b09dd892e36bc6e3b6492ebc9909dd6d5126249d61beca044cd904b6d24954796c22e1d56d1fa0ff212e8b601f00c72ff820957a55a0ae37a62538a541d93f71e010d07dfe3165bd0387cf8b7620797bcdadc7845549b108e0888768581291b20f45bfa7e9d2afb543354764fe1dbb13e43920f8b04607827959d46a35943629ab869d9a6c3c08b5c300424c605cdf515f451c0cc5435767413835841017f6a0e90d081c83f4209bccbcd671018a539ce55bf344ae65c8ec946830edec57831a576dba2a3a01a1496d290597a7c7b0538fc8e7030b10b85cf002194bf672916db2b5bb6b312e5a3b168287a87d45aadb4c5aa61e2cb86990ff29a8effe3859d3d45af17ae3a89beb3a365febc558305b195c2e0c20e476acf85264c4f07e98542ab0013057f2e211833ec8eb99ecf04b1fff2d063fa7d6431301876959350f0183ebbed7dbee108aad5dad34c3515b0007c488531b3e293ecd0b1390363598ea7dd8b749ae3eb14271f178353d20884d60a143a722e3a53e2931e2dd16e2e62eadd6ec444ac9bab46b5c786037b6669ff9d28a405cd889b2884a6974e452617f639d18eda0093fe2d4ca790a7fd2b6456b3cee2ca725474f4a58523d13922bf294d007e15a61a705964ff117f79496abc085e48570c8601bd89b5f585336013a50eee5e911f8044abd9f27707db28d093d7a2e8c59dc24041c76f039fa31d9c6705b853e36530f5f4c389aef084b58043f141141104d4d77a6403a562c7cb5c9184c7cb04bec343281822196d10b272dabc89d151e04c07082736bf2cf0343b385b5612b96ea0713d8dfd64332c67c4c17c29e1fd1d25bc0ed4f65e4d48078596da8e07b692a111e589739de10abf0e8250284286adae9afd3dfd4243854e066bf961d3222a1c53c50bd7385a8ab62f6a7571353ddb806682e882887a41edebcec6d3126f0f90395c0540ca61ab30e07a69c4ad253cdaaacab97fdf31b4fcf43c349f3d1c2c9f2874ed7019a352c5fe2a936d6f25551a45006d45c8bd96cff227d5ecafd91fde4d280eeb38be89327314164181a639017fc50be09ce8eca90f787fcf7f46110d3232c9f6047a107994f1a780b4e2c7136564cf440b374b8f9b79d048f521c0ff680192c23036d00f0363246bc689cc44fb49bf6d847b4bb64469fbbabe761dc5b6e8b08c3a848dc01a7854d749161c31423d80e4dfa601d5e34aa939506c794441150496df81c0621a2acd0c9954289db30b439a0105ad3028590617a5127638edc04ecbf620f1937e5bee447de83d8ef55e1614dbea7b0781027ad222ec0e6a23d05378663f247fae114c656829a800d40fc9fa79e8000fb4680de846cad7511b19619094f65ea4c7394ca925656f6ec0af2695d843815ded69c8a260ea95d9239eea076ae8070149e64281461afea2724b68a54b7def78c407bf534045dbfc52088ef428f7308199c245642b034742c0b688186459fd4e0af4943dae79e5f2471c3f38d8f78fecd62c761af0d8f5750042e17250ee3ff89f3e88979595374d36cf253937711c85dd27930d666ec17f179c3d4a43df7e94c9ae16658edc15902ce52db3fe31a742ccbb846c0458be4b994af8935b76991392ba7ef3f3a1bd4cdf57c05880dddc84c8c7f5ec72ee2fd35af4ce23cca1c9f3b1bc76bd72ef4ea7ce0dcf840e76e63e9df0cc90e90f946dde9961a4465ef0f5af50a4634a7bd973b46aad4669327253c1b22b0ba040f8b9066c407e6ce611bb7df79c2809bae885b699620b5530a12d586ffe60cc3f8fc393a81aae08e568cba0518fc967def7655a4dff915d826b582e5d36d6150958243b33b5fae836c35364fc4984e2701e2a7e2518df20ff85227594aec7ba9a8c63f3faa7b6adae221cd43bb329f74f6553a650c8f1d53704807645264c8ec97138a57d2da3b5baaf8fceca022ce3305a1f074e7f59b5bb51aeb2482ffd7c60ca74ae2394566b75bd3ddd9b3e67992959d8a78610d9c69ff139abab8702f493bb1221f0133758dfc1b6933445be008085389587400c1fc708955131516e6bf20a1fc21cf12366c22cd991d592da5e4b87bdebb30930b6884d40d2fad44009ec2ed878354cc2444951b08555556aa321f175774b33d0229a617d0733e5e5ec5a3f7f9d8a393be4f07ef8656f54f23eb0c6ed8a93bc03378d73e1b673c25fef9e4ad2392ca2b3d82872b14bfcead917e3229e667390c0f914772c691f54a8a26ca71bfebeb15b77040aceea74587e564f415400fbed994bd425e553a341702377ce6acb179d83390242b4e857af317a6296bcdf37345eed8d0211f29959a0244e98c08e1f4d321a30a1b3fe2ca5f23274b1a9e0dbe8148bcbc70e77f80894bb2b5d85eb1e2d4dcca3c7a99234ddcb316f1450ef5aa6d8d813d8deb6fdbee8ca1cd8ef560938e82500ce832b85950fb8ce18bfe7fbf637d5e558d1e25220322a0366a4f7f3c641831097251c1e06fbf7cbb4afe24fdbe44b74d13362c94a2a516aeca7a7a09c420a90cb9ebed02d03da3e05421e046d8f80909a65b17450d0d9ab0064b8b6d933fcdfc8ea385f515e0c84b7891f5e8cbe07802f3540737b93cec8cf262c8c95660dfdf88a7665ac64f099f53e913ed303f8874195dec7ed951343a5793241cad228253619cbd5f77383a937dab0b0739d1b5e47b44427ba3dbd8cfc9adc970e258d6cfa0c18fac4ee53c4af0f70d3fd478e9ddf5c2933adb9731228b07556b6a6ce1f9893436574d090463c4eedd811a5bb286e0e704b054a281113d2cc2293b74cc6ebcc58ab8c69e5ba7e027129c01910b99b190f6430d35268775039f2b16f7e455108e1a9d4b926d160e98a5c06d0d3168ba2dd38dca4ca2b5f27530f495387f91b0badf75dae385865525c30b9a48506242ca927c4da648160fe8184c625a1b7417898fd695a9bc5ba74df15f913b3283af11926cc2de153c93030ff63c2f58f810c0fd74ef629415e9c40a46cb86f39b36fcc695c223098c0c36324c483419c9d3d40082a1ef34eec6790dc6c4daa91c8ab0be0285af9955b3561638ea78b0f0386a683278b211368569693f87107e055c767c8d86a81b5e6bd9759759e4fe69bcc807bed7c6c09b16bd030a2923d3b3d1f6cb2b9b9db59d254a4249e4fd05d2392c6484834ee1457f8fea1223ff558c8684a12d020d385f8371edafdfd68403a00fc0f35e576c09dc4c7acf98eb66f6ee0c60fe635eb39f9061d61ef7237eb0f4afe3b481cfc301fb649c2c822f840eb6296d7c30f5d3e7d300c1b4d62afd2d190703d4453ab03c801eece12fe06a473677124a10ce0643b77e7daba8ed24d9075c60285bf5245f5d6c1afe20d45567dd0859f58b520985ab99f072a6b07c945e8e283ff31c835cd025c3248efa35a9dc0f42febfced9a145c86112d4bbc109791f960563e1529922bd2a5b22b4d6a8d1b38721ea636f8638d4696cd79a05b1fe9567f4a814b0b56f399f2216a184b5e4ad98a3cd3132f1f73d47fb94b4b33d0c1423e2ff9a67cd4c6ac96228216f736a8c2449b0c7f4d5cbad87c5801a1eceaffc1eeebc3216d12d7cf73b7605d60ba1cc54c1c29e139a46ab958f8af05b40ef019518e92bc007f53731479348100b4a42f5beaa2a07cf11d0d31fdd6b420273c5506ae9faf0b0d0f1319f63aad9194a175db516078ab8563cab5ba9d284a6ff62d3bdd0b7f83ea6768c04f577519a9480778d270fb9d327d1be684a4cafc8240857acdb809f8974b1ab0fe80383bf1135fb1e1bf219c9266699f1a89bc6145cb6de0e79e4e8c117988fbcad12a6ce7bae69f05ad42c71a3fa8dbd1a76003d07396f4da368236ba747f41ed6f49c73f42c99dc660e7fcdbb2d37602950e3b7c8e3ca21ead6ca1bec4ec4305960c11aef7f66b6b31d8340c2056b370e0e70b7981c6b0c51557c522e0f3fb0bef30363fa769e781004d21716fea19852a617345cf8737f7af7dc5f45168e51469a394d5ae4f6002d84a149a109999759c2535a015445c47476cdc74626dc0d3bd740717a0544d247f409e80eb689ea7f5d6a30453da9b16e489f353f9062415d486f07f7761f07230157d4cf82a654859908cbf56081e72332d74cdcbd6437c7c0651538663ea30a2274cb08e22081308e5087d41d79fe91ac0e2a0aa0dac8cb5251982610a204e202497d4f481a54a5e6f862527511fbabba9971cc2076551d261da02790f8736f1cf8abd0152600790476300011364d5a155f7587ebe57ac74a0443f565bde257210046384be0cb600577350ebc952570b76380bb56f462e8a53fddebf8e9072cd24abf54411dca11c6e1ee8c321fd27c2d9c70d564c55be6b01019ef8cf5c7799246098082d02ed1cb4c6d2488cad85be001a3e478017143deb077906df5fee2f1732f07d6818691d9e86921b8ad71d37061508b5ac096e15059ee3ad22104e38c0e33e4fd1797e4bf40da9448f04b2ae7e338c939d49cc885430de3967e81ad4335d922431e9024559cd805f31883ddb668792c95ee065f284b228eda991881b30a02ab27e2e5fea0ad05b32fa2b9ba25e922bc876e16607ecd2ee32b040287075ecc560cf1d1f7529676bb516832b3a19108d1f4880bcb0a28452a28bffebde03d2f1b55703b00e7c16288785b0044ce7f4a7b83eea3a67a7a4fb8cbc93b1f203fe2aac74e50904752b01dd1873898667cddb87f79ec97ead5c86c018e0992abced0ba9bf7d816f88e299870d1d7b66de3520b071699b36b37f27f455c837c4a10b88c55f61418f20b882466ae6b8506b425837879df54cf8c3a08e39b6765f8d2207f02bf496edc6bf8027335855df95b76ef174348bc098c1a8d159f3be4b735e5a0cc50acd25c400ccb6009ecffa5c5abf305e1318a9acd6a0c0bc2eb1077875360c6f98b6fcfe1c6bcf6bc0298913a9df8111a73c862dc67199815233f4d9ff74302c4de568c54ba7af20d3ac36838258ec0c5ee669aa743ee773a268df742c1ea7e55b86012de7fb63323a9a7a57b0443f8616b9a397dff88dfbe0ac207eebabfe7f65973b865b00f05d77a01349b011e99fa9edc9db1ad64d167612d50673c5fd2f06a5666ce4fd18349f9084973acfa759c8db735ba226fcc2030d9fdfb6ad3fd8a459aa295039ae49e119fa016500443ea392d972b4a660558b7bd9d5c93d69770ed292ecaaeb6d0c25cf087c31c3b8851128bdd6013daa9901c46349cde7a14f3cde20e8ef15a056285c626254ee62ff25e5fc30692e2e712488cd63032022e6825b4e8cdddc1820db0048d2087546e8649fedb5b3b51d34bd6d3b0b44fb7f6d2c5c48f32e37b4a1715c876dd740b8be800c7d17f62de2860bf48795d422a4bda1947803c7d91d66b264cd106244197b85977973ed06c890e32c5ea26bf2b5fcea85cafa93d0b99346fa070fa1ddb7099d457115a46dc291634838ea4f1454acd0d063caf0ff1974c30c97c7f90ac0c03f28c6f7a0223aef341da4299d215562e37e29e4d6c5605cfc927f4db1483f11e096a4594659f61665db55f64196ad01b7ad9b3b3ed9fa5082da1d4b153ee5169ac0d0ac4e72a7740f74882e47e216e62852330e8c04d01307438cc57120bd21e4cd877feddcb28e230140c6b18e8510576acb1026dbbea36c29520b748c4814c4ac28cf222198bef1fefc8e6ac929b7d2273313108aa3a3a5cd032f8950c1e94d370a1a875553c3515450985a59941e1469c1189293ac683c45ca96718f64c4b796d8189e4cb9d4eb0b86d01f61d95a1a24259ae520b4caa69c10670981ae4499e391082303855336b5e2165984d0d09631854e52cf3b7014b8359d2545baf5c6f28130cd05b3f6e70fc3658847134b6ffdd727245f68662cdba6e563f4cd8f2db21d2ac8b0dd0823b7d86fa9ed9e62b3bfaa5bfeea89390ceb49868f0e17e48f8dacce47bcc7bf99a113219d4819a014606e50476a38ec84bd191b94486f3d9deb73416c19779c9e61da2693c14d1197587393ab91c1ffad789f8e57e2365eb85970cd018f285aee9a2d9dcd69a1a6b9f6cd2ce64eef09ac96ec01b59013213b2075bbe55198dae5a26bfb317a8a424348814f3858d06952df941e5c855534ca9bd50c5dfec04591386ae900e52a0c266305aa1e94aec6389912df092656e65b6f3a19641f43723546f8451f8e42a32b6ffe015a4597c9ef20b4950c442b43f153bf88416d6f199910a02d42afc26e6a77d0e613248c6d0cf825b1ebc3a1d291c0e39fc93f54fe9a88a0d2d38e85f12fb0929923e76589c4dbfb274a3ce1c25d54d623a5a03f56050a49eff901568befd03e08c2f621b9226efa5239ba7b01271cb0d550a39b267789ac6ab1a6e12026fc65a1c1df5c52c50a935f40c31a710f5462a9cfb3b11cd7bab818303c53e1f12eb1c1011874d52edf3f6ed97b07ace17b170fac78dd3f9fa6b0a3bbc111faa1299b448e34864fac6842f43763cbcabc49686852d11f579a0b19a0446b0b3930ff00ee29e16d5265bb85ffc9d5d21ef20bbe9f38dd341fb180e959e2c2dff5c852ea3a2a9a477e1c38829c2bbdfdbf6d58748675e081b8ef3693a823466c23851bdec6a04989d81ca4277d2ca2a378b3dc07ac4610d74ca6f653c9182b275a1d1a337673da8451894ca32480401b3ddd4d4920d8a609e219c878f87c0c93e19c3511256c5cfaf66afd1087807047183d1f61858810fb8495fd4869ba0be631ef0121e2d07c8451b63b90d5bff156ce7b1a74d01fad3b2aea2a24ff09a047b91fe3a6acea067e445ccbd566f518100156cc1f82e5ca0f624f8d0e8ae1c9212bf3fe1cd0a18abee45cb2ee70e0625ea228728afb81cd89319e23e0bf8a7e631ca750330bb82924d5bd6ce925294740c0b10e1977605996bec151edc812e01e9dd05a26213472a3b721215249aeca7ed2958722e1f0a98714496f7208428b4cde00182e8fd64b23c0ab776d304891d64bf935ab63421076bdee80eb036dd66cc59c76055c1f276b08fb9e0f150e78e4807731bcda5b64bc4b0f17923425a9ac4ce6aeaa63bdea407c65558aae184085dab17ae9df176158fe76d63ec86685d3ae8934c51ba44d14a7e7209cead59d49399fcde078bb4e8b7541a3871ddb2ecedc102149412bbffbae2daa3303643f38cb9e68606051d77d18f405c6d24180649af66fd6196caba5a3dd229eb70dc4f9c3a2eb757f00df22fc945487b9cefe6d66107714406a2c964cee68c4e87956b5f81636a419e6d72b2227f18cc02e65d8fb180a3eca4ae7f8172e72756fef2a59eb8f5e5727db3bbe1953878afe2553c16436b14214d21cf019c95837c986428e4e1732f9de683aa325f3bdbe51dca959395c35e49cba69d750eb3d7743289c6d7f0eb9c62765e6d36e0efd873848600d5700085ec8a6bba01a5619707e18d8ccf2c3625650b6d0e206a12382cb5beda4ac2345ed9bb2e06cc9763018e4e2957180da444b3df84b383d532379bdf9150724bbfc5b56aef5d67de794b47025b6ad8b702090db4c9f949a982c159791e0b79df8420318ee63c37b87c863acb0ca50c0e5315521b54ac9f5d5d15a3998fa249e07fe3aae7683fb869ea7d054c59ca1c9ad9faf27f774ecaa3bc5fc5c24bfe306a64a2fa554eb992aa962b6b85608559b2aa6347d29de1c230cfa5fa7dd86ead3060bfd4aa060ae2978a1a3647d5ea53614603dacaacacf0e9c2a7498d961a5e30204b7538a79c8560683c0d4c933292c2ed2b9a2f48ba5850fa01cc6f9933fec56fd7139f72f370405032572b1b0cb83cd29463f2a459bbdc17214124581253538ff0d6bc13122dcad01fb7a2aa1fabe20b1207504357a9a3cbce137e8cab070670c0f048662d2a096abfb641fcb96984958c9d06c8258d77ecc99cdc7f654b4aa8aec9941bbf798728923afc5d23c77cd3ba8cfc9ee217018b64b7cf4f29d3b9315d42e20e844dc6b152c033781e0bec53378beff42196230e137ec690c71a910d5d41ac5bc5457196e3a7bf7c167bf622bd4a3aeb78bb55c8b3955d78cceb77ec2d0f0c7b6d1650473ca9017de5aefc3944e650939fed5918048d7ae7edcab006fa507dc6a4d520be9d770530f3d1a8e764f1682500d9e09867e1d0c3031f1eaa4893908cb2ce248f8b5d660b752e4519fe3ef4775450b137145d2ee7225f90bce728ef44a5e89082ea668d85fe7ed73c45a05e636b65ee3b34a0bda9637366bde0cc76eb00e23877de97313299669dac754766d306be9f216c00e37b6d89dfb0f0a63a6b5862aeb37ac73e1f3a869984a4a63913d323e7737ff13a46a3f89282a8f953bafaccf272b7a9ae44a992a1981da6f0558c3ffa5851c11d54ec7a108a0e91f8bc447feeec8905d51718c06b2b5e069c73b22cc35edd411fcc822c9f138ec27b730a4d0659b6c89363102fba2bb8f187addb32ab6b7c7e90d2839777b571d8a13c0a1291bf738a2468ad67c007df78de27b7d21998c1699b060e9d536fd07ee52d2903cccdf4846b6856fc8edfa1c7fd89067b7e168a3b8ca7443e50921bff53873f3b1c4403c1beb2a8b2bc080b60096b795ce0042f08642226b3a1d360d648adcb731fed8d62502db827240a452564c331f7cabe8a3a1173974dc9ea13bd5acd17f28633f60b9841d227db25756f13ee25e4d7e96dc9f722c25c1de7e68c505d37e07d916079b6a5c9255d2cbef376b347c026985d54793606dd91f69555ac05f408b10a72b983a195a7ffdc13fa3419caac046e86361dbee6530ad7abf0d211a6441557003c57a000b194d6085dbb34aa44b90f2ecff9f72eafd4f25885fa88a2518bdeb8187d21d4602ddbf3f7aec7a32e36ef29fb3c4eb828aa5745e4834208e2f11611b727ffa0eff2384a965eb36afdcff52b90c74ca0932fe0c39ca8388a481230e3fd7ce7b74609a7df9c4d2ec4c9ba85f2ae27ec212c535a8bc16fe1c64bb481b3e9f281271486073c180bf1d29acc50bc0253b586eb66642d59697253f017d66256d57429e228835fa9fd3cb2676e70fd550b449daf64db09041f7ea2bf24d1efc659950a079758ae04de7da383d382eeaec7cede08d40beb6ac318c23d87927305c6f7d693cbeeb0fced1617bdad3de7489cc8120f3bae89856abaf016ed94fa4f2a4cdb2ef5a5f5a2540c08ff555716e6b9d9551b22e74b13c5b7dd9b8a224de1725707212cb07b40a38dda173f7303ccc0e4e670a2e15dbff4616af14b0e969cd32715d0d9b6e6060d7a068ffbd4c55bcd47e2a84586948060794b6254de41293e2b287027c24d11b48868566e77301210ec9304ee43f2fb4061710bb72028a694780eb57147d22f0482e1dc2ca23f3317710d645de9b507d92371e9a2168310b9175c108c87afc14858cc262f6053800b11eedfba1c3582168b03b2729abfc28490c1a79984fd363fcde1aba7450b4d9aeaf5762b4e0d12190d593a061d2f0e568ee7a71719b73a2a835c490e14945027dbf21c26412c416827b25144f44050f051668f3de077bab8129baae674e5791bdde719f9f841bf1e1940dd553f1e670035610494b0139e1d25aeb31ddb03d22cb5a3563431de5b14156da0f731ab3aa7a340c17cf45aa2a44e5e1a173f89485c86766e2ef836884a71358ab184453796f7d858b62c59fe09f03a7fef82cdb84dd1f31f4cc907ffdae2c088cb3574484b7cf8b867f1055899dd95db9f32908bceb6611b33f945e87b63f6382ad31060340ddd492dc6a4f0432709af2bb5ced571cc21b63f15d3a9f4000c69b0bc760190964b149c78f97a039ab137cd21e4d2f33e845f9d97d0750ccd7b8b9ba8fb743ef53ac156c43f4a71e9f7d0e66f60dfba4b42ab68822b8fd95e0d09e97012e9c9abddd060a77c6a7051babf89c800c401dfeca4a87dd95379b0a886c044a3fe226d58dab01c1fbf5c8b124f0d63831ca4a3d3b404faba008de844a7a06ea7ba2ddbeca1048f00f3c9e7aaa8b9fa98caad3e2d4b2d961c4be25b3232a226c06292681c2fe620a79120ac7f19610ccf7dc664cea4cbe93820e9f4f4191b01989e3ec7c81f600331a43ea2d4c51ceffb69a738f584d53e3279f117ca488441d6214df6b68de5df956605b3fe8b61f8271324dc7f5577673d746549cfa29b03509af16028a2b9fd5027e92abc67940741c5fd3c8d086428a49cf7de57fe076646d8d5c16ea9c841002af1cb85b985a9c7738785c6123e447f63ec2ea43477598b27c85fdd4046409b0def03763cdd269842659a069e0b681dfa8cc49992217ec45db401db189510396bde09fa8685f853ce621bf4518ee61ddbd145fda3217c04c19a03096e30c4e8cf992d15c59f0a42d5cf123fca9733d762c1532a341d7744328f645b60ef7862b1797dcdb89dcf5671cc1c79e5b1af436ae83052703b91177ba120b1243cb4babb5e066dc7c050fbd325a5ab56c8ec11ebfeaf518145e5d85cc86d564d6f0878838bc2a4f0149351ab240fc2c0829a9ca3d41da767aae0024a8edc3c9c41fea1474d709e0eb814f209fbf0848c4f9aedd629c3a9412c9e564b9b986f2c788954a9d1243844ad43eea306b719da9958241e9950ecc300675fb0301daed18622d16c7e301ce0fbc57c8236317537f5e7b390afc7206c4d939193d9d86c618478f0ea91206b1279dab7db48e282d6bd35dcc69921d2f10716f253cbb1b1d48bdea7e4bfc08d82aca07fb582306f77499e594ff7f72b6bba2ecee2150518fa94a969bc8302088bbf7bf8d9b8f5195a549de2a82679102441905aec184e30e58209c554d63da98c02a360f5e65294c034d127cbcf8be890bf7839ff060398dd9bcb10a9f0a12b4fa2e665703283aa0a99a99f9066a4d2582b97b4042d023ff848be6f069552a8e6a2375589784b4b6f7de5bee2da5945206670fe60e850eaf5948490bd121773d0f7c43ee6aaaa61c79e052ac9a3ef9241744e9e7b99894a985a2924f64c50d630ba9d30ce0f012d913042189055c5cd14cc20eeb9649e0902b323d44a91e6298bfdcbe68aea8a4c30ba3c30b438738a54d9a2be2a6cc16a5147f5329b385b367cf2249164bdc40fd94a5121a90c247a7cba4e0f04aa9dc11cec81770c8011da9f437e6be53a2cda43a5543cf89144e9820054d30c2143040c40238d082100930500405ade4f5d25c1157c415ad3c7e3b2ccf992bb791a3129c1041139d2c8a760cc28e4eb260b2a378828a7db363144f1cd95d07739a4d75b680d409b60089136c79ea5d27bd54eaaa1cf66cd5e7b7a37a27bf1bb274791c259a61d8dcb3691e32370c2d392069a4b2d8a9e75055069fcaac96fc92c39efdf2f8edb09e334d39549a4cb6c2e4b84d3037c1483965a779f5c3914ff36752708c7731eb0247273600da2107c401054598912d4a8455dd198936f335037f650ec964cd771cd06ca93ecf19992d18189fe796e09070494aa552ea1546ae139c2d0ee8aa9cc50e873c9539235c295b1d4a7ae96382f539546a2ec904a7d51c92096a1791212407a40df44434b5dc12139ccfbc804d0f6910101502ea805eb9246595f539b324aba4a1dcd69ee62a69f89820a5b72f25afe7d0578e71eb771d2d494984b64ba597749784ed7e26f8f970b77c1213a4af559e667b972cebe7e2f27256ee7e2698048eb8ed5f722ac6e32e325b40e89322d367b6802879bdf399e08c30fad2dbccc31899155dad629856e16bc73c9382635efbafdf0d9a679a1cbe36cd4a64d1bc4ef392a6f90ccd651ea98be656e7385934a7f9146d68684ef3ba05d1e495cfe4304626af7248a9b0e763e4a2907ee5cfe10e1bf59895c7efc6dc5cd104bb8043ae087553c6051cb793233491489c341165cfea440b271bb6a3132d7eb6132c9e38c1c20a7a289860020a269240310328b7088a1964b1e5c4024a1442b0220a213861c92d97a68c0b585e2813947f6d79979bde75df8d96b3bc8b5fad9994fb80d736bd966e3f1c2d6771c151d2e16b97fe72540ee546a91edaa41ed638bd1eaeb81ec2803d9469c13cc4380f6fe92bc7c930394e1026b3e95d3036fd2b539b4daf4a5d7e37e686a1a90e4b218d12d22decf952f8daf62e39a4375d66202d67f9fd765674c4540779ed16fdf9407fa3b0bcc5ea6f670b4fdbf41cfada2c8fbb8545df28a67c89eaceb6c005d953d62127e48a2e947abbabdeb1c32315dc941db518ba000cbab8811625b0c04c0fa2d4e0045fc0010772c0055117357141252e48525389c66895af5b1dab42bc3de46e25afcb4fba9e33bb178da100d3c77dd2b7a367d31c54f39820f8ca524742013f71b9729c2cd9f9702a0fa9167078892e94d90ae916b3d5c56c855cd09e2d395bb355345b21c7245671d04d845cd00e9aadfa1d2e8e4456dce10209a59f0f74d3cf0f08d75fbf44d4e5d22920a28e4fd48248c7871650ac00892db810039d195274a28e8b2ba2ae97a6a88f87c6b8c0503061c58e5030f144cc8e50c4a08b4d634888307a25aecfaf47fce2a5e4f59cd9b9f24bc7c90ae9902b4b9d4963139c5be0ef18c513455b45873249ec672f210b389448688cc69060016bffbed8955de0f8e5a05ec0380f09e2cb3fa6809325df848ad850142aa50ba218c404e5e592094a1a93445266ab9e66b1c56c511d87a2fc98a03c062728e39dc492188a4e62459e6441a3501060f90ec90d534e810b242a98864a85cb9e93b5355df1b6d53de9b66ddba6c3abbd67d4d24aa93c8851965ae1236d9bc71a6e7b9c41c6e37376e0f121c48f218ca0aeeef1d247fee8c7cb2312895c2283a41075991e673c5e522163724812bd3cba3c5e165117eaf1d387ba5a1e3f7f26d03c32916c3187d363144cf0d9318a274cec90b4e723d18e512c61059b1461f5d96d1e89e8417ae91bb57cc50711d459e6a641e32e2d3350a6192698fa971694fd57e249a9745ecc639e635637bfd1475ce6662573a3b5100a23e65dbd4a8cd32c445e08113d48c7a717428412ee427c10a1f9ca49f741043c4b16224f83c6b5b3b2107a2284f448f550d15cf5a853f31ea91e304ec369d047e8dc1c88a843c33bf9f1d45c7e3c37973c34680c906c9e8b64d7c0d5399d464e6997f11e9d8eaa0ee39dfc7ad05c75ea033c8cc7cfc78a0f96c3d0299a3373a62aa7e8f17b74b4cc33c3bb195975538621754ca88fc6bf1939d5c374d555fa88969b74ca549a1ecc08e6dd8cbcd2a91e33befa4a1f11f3193ad5438586ab98b28c4ef5307dc667e8237e934ef5e86ebaa99bc952277e3b4abcaff28c9b6672cdb3ce264b1d13b8d1f85693533d4eb7b98d3e82e6279dea818fa0c14609f7f1d8d0b8bfa7211369e2e6344ea402a6cff80d0d5d01d36462cbcfd03ea4931ebf9db96482d2749b5c334396915f9425cf02f30e94254f9367b20fca9297c9abfc2346963ae72c8f4824720965c9c364194459f230b214a22c7955964de45fe45db2944259f2a82c8b284bbe254f9ff94359f22b7902e99b53b674d24b5a0ed5a77a90ae72d255b4f449d1a77a6890b2e4497a22a12cab79465a52f1fdfed33256358fa787e87edf6923389dea71377de565f4649324842eae687c8872657a32d14f98f674b26784e9441b44d67cb8ddce3b2715333687708a7083263e486890a4313a5483ea50156af243448ba28e9c41545424f54805aa3fd5e7f7891138c1e20b299250031e8e70030cc48e30450761989f4293fe60f919a471005f1dcea04a649bd0493c75ddd1d11829bd41b72c6d2f51cbe8e2b668332fb595d2d62dbaa494534e399564373070620324ff8a66cf993d65f6bcdc750c5becfa3805197c76d543e6a6968bd2ebaa10afe36cd699d555cbecabc628b9435c4ffbb49259720bfe5ca1b68c30b980193021850f7cc6b082245530b18514a87002293f23c88e2768ad46e913decfe40d75f5ec80035e90c106526ee004078874f083256421034170c2073ae2046bddd20a38fcbea12e1fa090e2470928a67001500d3080010c64c00325c0a0013ba555f21dcf7083257c92e4808b3074010b5808420a5c5002288c6071ba6fa88b015a000215946ca148144f74e65fd415ada085221829fa819317c44067fe6050373b2674db1698eef87d9f730b3c4fbf9def1136ca01002320d8dc679ea41da3e040d14ec96ba4edddceab592ff3b44ee21a13dcd92ebf1d252cefeaf7bdbea66682f4d32191fd9dd26d81e841419005bc4002299a58021474e2647db7f9cba1b5ef9e436d106febd764d17b2c9736b46db36d5f23ac744bb7bdb5971176bafd8c30d3ad0e83785eb6916b68813d4abf7c2368ed77fa957c32e5196dec4bb9461b7b958cb33d69db8ff2b6f3fbfc72dcfd75355e36662bc6dd699e67edad7da73d7a6f6fe1906d4fb76b81dcdbfbed74bb8ff7f4dbd1b3effdd5274b95b0bc63d1b45b20dab55b5d33417a151460edda35a93d87a655fa668254ee9ad9a21dc0192ed284bc066e9a5b12bab8c2b3153b19e71cc5084a7cf950b5e3d44a6a8caf533ac19ba36f790d08cf568dd9aade4bce1aafd9ba71ea186de2ef1458109ac2175638820974e451d4650383292e5082a2128ca10b1d2949d009c11171d0fdb8b2b64ab967de262bfe5e8c51f16ed1463e66ba63a431d22dbae4b6a9c41be61ba229107d31596df6c53e2610499c4c7f41924611653141ba3e2f24cbce2089f3359134a607f479215d1e093ef9c466a2893dff35913ed84c360db60442154c44d8cce885c8d7c7af660ea4c78333879feb90f0a327c5138107e445d994c0c3559be9d112a32524ce28c86a3e16d0c228c8fb6cb8c9e14559f3239a55fbcae146e258bde3958374f5e87a784776481c8f05d10b810bb607146d2aa534866df6254a3449020ebda13d2d50f725b91b0938ccbea0a1264c966cd7d784b2e6fdf7116520b6be08cbdec40b11dcf628888e463388e0d451424cf32155cd47d340d5a3204943d38074491ad01924715ea3a07b892929862d8de17a0f28c2262799c02c3f4e86302801091740018808496881148610822b848a20a1332f632b99978df591e12b5a928f80bd2d26084a9b19a75a6b666d66b3ccdacc5a9927134cdf99be22cdc72bf2a27857f0c4e049d91e195c8c00146db497c4d14010693ce1678b60cf87b021a2f4b1adfe51044cc2ff6256e0b9a5f6133f20a28ee6438980e5e4992f204004a58684c440747d4511f6753b94496c52ca2418d55581ef9e409b0e41fba1ae26c2b975384d80d89ae7d922da685fd137e52b4356fa766e10ec29a5d45a9bddccb6ea63b1d84c62c7d000879e151e508c56c48be26d913f202f34a1aecfc88c51d7e74389a8cbeb62b23e29f35ba2c9fe7e422f0ad1637e10cc59449b2c0b590339834c8b8c0a7249b685dc413644050e359f255cd80795049565c94410757d5f44d60c62eb23430497cc1c4a4dc41c3cb14748ecf9962553e0306b0288a8a3425df824574c1261d2137a22da8c8e449814f8bb7c7863684bbea0961d7a4057e06c871ed0b495d6ed340aac3df4869494ce95bea04e5327f80ba2ae0c0a9195e45b1261dc23d8c520e660fac4228249b422d1c6a4b50c44d6bce681930e332bec79edbbe1ed4d6b3e50e0d063b2bd7ba8090187415e5b7ba7bd214d336088ba3c2be6d0f4ac98ad2d8684d8f2b8f0acf0a2048136992dcd49146f72f58d6d6bda32f1843c2762cbe362d31e933d4fcabc7a26a6b7a4943d152651e4cf91ad42ca9288b29698ad2a6332c6801b191c613678401e100d9620399245f96249d8a317158d748dd7cb23810774b3ec6699f6c4d69068475e1287c703a22eb9c4238174491abcb2efc650b4b922da64d709d990e92a5e94ffa0f7626c42a14abf0a08622d632f296576332f8ae745f1342b9a38992d3b5b14d47cbed86c659e0e5f373804b5a67fe04c4e5babad75861acd6706cde70aec693e1136dab409c672b6ec0db28bc99a120a131a933db39849f67c664b520a1066abc88e3c1261f576b66adcd072bd7080e17c3bbe6f28da3c99e024bd23e52674683bfb7da825916364ddc76fd339ee25e578ed9b1266979e11f92493d9657620f2f6f5dac37a191b02522f5ff5bc1763cd27b25e87267873dc5f4c0e49adbd23a3afc8039aa09443310f68bff6f401c63b42016568773b46f1011eecef5b426cc925c49e441b19abb6b632bb840656f3c86c88b226a59447e27cb1188b52c8f023c2e615b8db61bc02a76e685b7edbdf0e63941f1136925af3e90136126141a2cd0862cb01119cf780b6e6134995d24ae948f391b452299744e95e2492c4d4daa118294f9dd68c5dc4933edacf0f0e639421ca836a2b494e99ada2d9a273ce496bf0a806b0ac9908ea854f0e32c1eb61b1e7b3a1087e31ce86cfbe0b38d4964cae891394664142b50689b049e9b793d11d6443747fb17985d8faca10c1f96c288bb2b32dbe29d1e62bd2018ea2031c664345dbe519f180728085d422ea0a3259f32bfa115d9669232d4f247677b376efdd0fe0bdd3a9ed00df539be6d19d23427af7ed234d6474ceea907b3b105107f3e0df9c5d9c71cebe5d9eee40449d4e1fd1c4f623ea3b4e1f316fd6363e8f7aac23e5411f29cb6ef9ecd9a6b5ac75a39c65ff72d6c4c3949559211b1494faa1be3b0f7a2e7bc769dad54a3c2dcb9e79d93b8bc422a9a7b74d3a1174b100987e5a51ada875555b9d101c534848074c74208405c901f923392093c04217573310da363b42210311f8d4b0a3132310615fa2d912226408de25d4b34ee65b4590e649fc638241368061c0fefa4b13791df61e1eaee31cc7f51e9d10b5259e81652200b88daf56a7190d095cb422a1e082224f104131050b1da480a206514821032410413dcdb5664a55573d6756960e7b36ebf5dba9b7b6c74aabca71d37a55adb556954aa552edb09ec1d0d23b1fd3a70b6da1a6c3bc33e5cec764baa5c758a22fdd7e3ba5cf9b1e960ea3b9a252ee7cea2ee96e42e98cd8a64b0923e54d261893a4a5db4c81240d9a7d3b524f221a821cb791142542db29fb52a6b73945737d2aabfe9259efa40793b9a2ce67822c8ef57929a55c6dd659409bb5a3132da0ecae9b9efc70b09ed2a18d9d8ad154ea2e8fa9b7a4503b75ebd2f2e2f2d8f2f24e7e2693c9e290b7a5922d6598120ccd4d1904ad95301646ca542ac3b8f88506b4b15187817a659cbb32ac7e6302bbe9863d3b55258dfa2a69541d9a4a3a1cb24ba6db4e7aa994e686b898fc76ac94024ebdf46468b6e6953872d7d44bef52991be2625ae054ea0ed961bdf5ea4b97df8dcac582783ba5b9a12cf02bc36aa9a43757cee138a75f0f1c0e3bfd78b88ea389784fe8b84e3f1eafc334110090600848e7f51c3aad573f1c2ea71b2cbb4c2fa54ca554f6052ed96fc7bec3c9afc3b2ebf2e3c1f4d48dba5f9e4abd67a75aa6bca43a9f16cd15c9cf1d7245f4c90469ac470e773d7e3d70f84b1391523c2105443aafc78f07ec2e4d24e5031dd8e3c703e74424145500c3900e4e1538e48a6249d3a12748c0f576d7aec804c740b4b9a2ab54af34e6041c7231e9339fc3613e7038ce5d19f6f81de0751c4d648641c98fce0b965dafa5e74cb9a38dad3387a1b1b06ed7ea38e41c72f7ca01878ca22caea82bb2270eb7a0aab9291b93d9a2b1586c094ee8e049121a94c10863e8b1011225e842c91160a085145ca80e4f3bf5cc0bf0591970ea7582a9c7a40e93532f87b9dc2b39f5f295b3ded16cd27e7048631d8d0e875890067c273f93a925460cd35b3f266ac4547a17752a47e9f6384a3a4eb0742b65a9e5f1932d2628dbf41caaca1c9309a6a6cc161734c1f99285e460e9d457be03f31c9a8a9b2687572646e6809e335d7218e4c4050915019aadb845e91e6e5d208143aec89ee79298ad5c64b6543ecffdd0c78436b8e31431a09d842536cd8e5320a18b28db65c7299660c5eea86797d42414c9dc52cb2d757561b9bd0cebd6970f5d7e43ee92cc8b49f59687e0611ea32bc57a11bd96d1e165e9106ff9727953eaac9bde92e3044d61cbe5b9226a7a8c22d3638a4ca9dbd368951e62b70a26abb800837ac8dcaa872c2c7b98cf0f0790faba551a88498772a7ae1a62b7e9546b98872e7ac8dca6c3e87042b13ba58198ae326920f576ab6c8b1e32f7cbe9e783ddd5a4436a64cbe7cc52e62eb38a364217fb3b4e518422469c6c233b56652d5553ad3594bbea1c6a32a964d5e34781244ee9951a299d7297269c504a3a94f6f3a1dbb22473fd2492b5cad75f27614ffd76aa29739a6695ea2aa7402a95ca55afdf8e4a474c9d6c9577f1f3a1dba61cca6da2ef76d5340492067de9d74d3a44b92e63b0188fd1e175691acaa2394c90cc6d06ff1c3707040404deea70b539a0d7cb97588ff4b4ad49cbe4482307441313e3f3c391facb9fe5e6804a5aea54643d860eafcb63348dee68ccdebad8b7fc256bdf0df0f67fc9a9035d964bcb55fe3cb7cdfa1c2b8332d771ab9c8640e2c4ad726a646b1ac072cb78323a8076dc3259ee2dd7ad72895932e7cedd85c670f94bcc635afe8334cff6a55b2b4393e530882dadb4d24aab53aa977498f221754b77109b3e75169853950fa55b1f5237ddde2b65d52995ce91d2261d277818ddd2a262b3e9d2b6c8f8f9d072a981b4dca481d0ac56bb45d35c3f833234312e671d04592e7f79fc7870f9cb5d5e5e5eb4179797b3aebdb05e6462bce81867cd189739864bc762b15e3f1a69c05ec75cea540e99d3cbb8b89cb38f9f0f32e72e3f1e5cce7159e61c7797940e7b76eaa61cae82d8a5fa4d55aa9717ad52e910a57a78da2f6f8181d1aa5c6160685ebaeaaf0c9ab27e290cb2daf6e053b9881c9f0e9973e774e8725bf2a134f70dab4b3587ab1cf4263d77cd21f8d3dc31e654af2618f39c59d2405c2ef3981c823ac86abb68eefa3974947118a9d8fa2c390c62ebab7c3b2c151d7190d52e42e658d932df3227739bb9a1697a4864531ddaeb773a03b896e461b42abc3182a56fd37326e7335b261d12d9b2a4b72932b95e6aae825b9b5be639938bcd96fe3cf7244ed5d68ff3b4b5b7f5eb7471459435af77b48e58026daea83e5ced1a06b1e9a7aa033a753f61e753f536658245662b46ce6747263fdca66c5366abd3db1613f4992d9256f2da86b6a12dca36b435a1aeb884295c80041ee842078cf840a726033e08c312562839820a74e6b7a04d482b82e55e7d66af5e059277f1cbb1ba9eb26b769ca28ad82642125534a95ecc8bca0bf010ba4308f4d0bc3cc6598fb3055e06887ce9a6972eb3a9a33aaab5a9cb5cd271974e81a434113962905dfa0dd5538f9bfaa0d241367d8ac82e3d4c5de55d24c0eab20aa02d0f56e133c510a44c410594ae935f0ed5a9e9a54b08c86db275ef1c71823752cf91d2f2aa1ca63e73fbed78b9e9f6db41ee979774fddf69f6eb416e697afc7a90fb25b43769151760abffc7cf87974b0de4e5260d04bc0c72b23ac869d3bc829fb94c0eeb669d7e3a56a0ae13a4d177b9d4610c1d27c87a9d208bf2407528e3c743cb61de92c30a6c18fa0df3ee7a32c3d8572176e9f7e3816e18f9f15087d0dda2c32336cc5d7e3f1ee686b9e481de0eb14b3a74f910ba611e521da3c39e0da363ee42bf1c73c75ce6184d5f5f67ebe555879d4bae97d8e535abb8000fa1f55c1e22b71c52b77c119cd22177cb3578a9533956a75f9dea90db2f405eaeb9ddf2f8f9b0bafecb7524c0eafa5d0c02c7298640b4f55f6ed261cf36bd94c3d32edde630c8b6f5a91c2758e9ebaabbab0e59b74fa534cc4bcfa1a53c739b55ceca6190d36e39cc4db908b95b76cbe5a76375fdf8e568b9d6e1cb5b4a7297ac0f4144d24d2d3a872f6f79d792c3b9552a1dcaad3aeb35db9b42b95b4e7378fa72985eba8d78b78430efceca405e9e1fbf1c74a7de92e7eee697234e10bc6982e0e597836af0ab0dbe935e4b4e3d7e3ecc9dd2405ebe027308a3839cf68bd69f790ee532d621b8674ecae16bcf5c258741f6ccbd6fc745472c7df675c4414ebb08b957cf993956f6ea5fe69e6817c839943b9f666e28bfcebc9bc95c0c03384cd59f1dca0a64847641a7f8845cecc973a6d42c808be6cea79d73cf9e199a2db96766666674c4b46e79da555361539dd291da8a6c49a4b62345d40d244e704bb257756b17c0f48966011c5ea2b8499da9e84ed97cb622db11274fe862c7273b3a79021250470652fa2ca574d8cbe3b0251d521897b466d46d46e91b1a9ba818a933691c7193485d4aa7488f2b1c37e2629c1165d841931f40a108576002028800031f142dc104a22d44cd070fb1eb1758fe08003ce5039deaf37b75782f91ac34c0a91b75d34bc93da1b109d22219606e888b4db0c600d3cb1d725f0efac5942d4799173446639428862a031edde69076c171a7dc019089c829f8a00642af57206ab1022596d079e926b82852f6e4b82c6268e69e4c3028625183287e908213749103104c60065720920107a21c294319a28b2be2c4107164c810613311f6ce48e781db6560d76cba8a2d21a69adb105b33624bc7568e2d1ab175d3a2e1f4aad8aae1f48fad1a36a7a794280ba2d8933a650a9edf8e9ea12036a05c29f3b768fe12dd282b2c0f6d7864c0a8c37848631116e3738a5aa44919e817360da25ce0c83ca457d8330f6916f6a45bec79a35c2229a4747b531662fa0cef64bedf5bdaa75d1221bf10625fba29cb489952a62cf0905bca43f02ebd9b9a29cbb0ee20debeef29f2640524788111788083c84510ac90820440464802c5e7d36e32e94b74a16081c34b643a7dce0cbd4df5103845833823df0e0c4d5199660ea8885b04de2da67b6a71409c91530bc51dc9b8231c1007c419292a2a2a2a2acaf42926e6ab4f57d59174952b8d8979fc7662f0e9dfb7d3baccdd0e6272c3a94432bf9d940e89ec54a569798161dde5f478ba5e2ad46d8481a7cf244ee9ab9b7258b7498806552634465d5c0ce6e5e52d343a8cd9218d81f946e14a41d29867e50be546c9978bd1161dc6bce81885d1148656e9db45b4211a83cadc414262c01289e6824c195fe6f07e61c8dc94d22021fcd1b773c3b9d2b639269c9168b3fa76ea57b96e5b6d2be62465ad354828b2e26e42c50d993332c12313c4ba08ab3ce4805c55270a4d30688245340828b2a216b4a085959cd2a1f5e366c9291d393fee2ed66ca01b7674620412641b871e16292e7df4ed704cea676595d65a53959c50497341419432a134888b255c0499b810e2a2494792598bf18eda4fd6951c59341138e475d02d5db1aae9939a4da988ac18bb439828b2e2dee1028c5a0d932d88ba38a02d68e38038a0961839ee676e879c92b891704780a88b0b6af9789c0ba22e7a5b74d8124326cb48837e26d3dbc8a25759e11bda310e507d5cf40915a2415c10c7847b62b69ccc56b845d99313e29acc5678a998ad70db02a889708b12450b312d0c552d1069210aed64e4b83b8a44efe8a408a6cb1af911acb7218311ac9751f3193211447c7c768d5e45b0be86ac8a603d0d1915c1fa9b7c8a603d8d8c23589fb317c17a9d6f04eb67e41ac17a9bfadd00b7acc971cf90e3a6df8d958c1b57a14ed8bb51b7d44410d9f4f3e7435b250c36680752b6d081107c214acf0b9060e2450ab480e40b0bd4136560c02157c459bb3bf9110101b953ef41923295714493a55b00dac291d216906c6149a7e4257f220c36e46620466f770c820da8d8af1c75ba38834b2f0294226441ef167bbef4d2b9d2e32e5dfb76f4ec52d4a1a597b48d9d17179b2dab2f94093e992da995bc5e9a2b222a824f0da89c7454839c5801854d631186047a3dfbe1f86ecc5de9434ab445ac0b38a435e84a01f65e6b2dc7d99cd9bab7dfb13b582bed75883099f109db7cbd3bafdc61adb5f2d6dab0f63ec4d9f6af08bbb7979f4b6856da5f6badd56eadb5d45a7bcdf2b0f6d65a6bb35b7bfb686f1f57560321118d4ad0c5554822dada259e1f8e6ddf4ee2ae8b48c0593ccf6c6d5dcbbb762ecac78325427eb1f15736cb8e9f0e77d85f8ce9b89b8b39e8c6a71beb50023c3c220c5f233da47b44fae8f2bbe16d0e679b45b4d19e69b17527e5d08e7268771863415e5bd6d072f8daf1528910dcdde515f8eeb96dd64589b94f2e7221c01dc7d5186fbc5209fc851c11d16c41992e1e3c2cc83c99a16ced9c8d42a4d1699bc504b5779a37bf9deedd9679441bed32fb884dd8da0b1069689a474855a272156de7ec441ced3922ce8e1d226c33426cc23d8c536ced3a4418874fd85eef4ec9eda8315bdcb5e310718ab800883839d2466cb2c31a5bc3d9da5f5fdd66946a09ccfd44d850846dd7280928da689f2dc02147b4b56f99c6a28dc6c36382dab7ec43e21820d2d0ae1d0b216ccdfa441bedf3e06cdd6baf992e9bc56469d7aeb64313d4cec40e6ded71a5692024226ee2245deca2ca88034defe20cb6bfb91ed75d1e455ab9fc554e975f955097075b5e2e5fe3f22177c35cfe66b6841021bfd8303ee4ee984b190f712ccbe5a7c4d9e1f2bb6ce1cb9f666b7479d56c995211a69aa13573791d668be63c9797c721e2c8a8cff2dd3436ce4a08702f2b01e23f00d1fdf0c33bef1b91b04ac9f4c30f39ea10200391735c250fe0a6ace3a4bce3a3ccc36d8ee95676fc34801cef7ac897b2b2f3b043c70072acc00d33f23c92e761cf53f1bc92e7993cefe4792b9ed7d1ed65253d3c95bd8ca3cdfc0cf94493553268c4c0e821f7f08e54329d56586ca4c1f690a38e4ab64be0593d9b67ec8e642db656c5da92b5266b4fd6ae58cb62adf56cb6d95de6d95cb3438e91463823ce318e541e639c61a7b2ce67320e1c8791057097acc35bf2ce47f9868cbda38300de994e2b2c2d2897971b3b3a0840679b4e2b2c2d28979754c6f94ccec9398c6ce32e19006fc9397c9403c082e500001bef4e01c80100367060a715961694cb4b8af352b9c667320e381c46bee12eb9f596ecfa28bf401b5cad1bdeadb0b4a05c5e522a4ffb06f072b56ea861c34a0bcae525a582d179a96cf3995c8316724f44057c760d879167dc25d3784bbef928d3701934bb84ca4a7e409d1e6e52d2c371cd0f7fb9a131e35d8b0c192819325c64c8789121232543864a860c183264c0c890e1fd907bc81d0d39c61b1a33b24d8d4905b74ccf25653d55e6c180b17686cfa0d271829de7d93c23c35ec63b94f45ca897aa9eca7a30320f46f3626866f40449d9a48271d37d9ecd32dbcb7786ec33393b8d8ec945dc2d0307879dbd1b7936af76478a9152c1808979d6d82b6595a3f24993f41ea9dcdef4ee4565f5628fdfa1462edf8e9e3d92db94a5cd9d8ae7655449afb80e06f55ebd6c3d9d7931562e7769d12ef6df3bd4b7f3e988b9976f47cfc7e9aee4e10cdecbac7319bccddfe0bb4eb2eef2edb074c4a00a7c37c1dbcbcd02eda7eb046d86a14aed978d3376d9a895cc0c0dc892a179337c3b50dbc5b3b965772f9ecd2c36afecd3ee607834f92d31ae9257e7b2cc634c7b26e7fc70530fc759c90f3a52164f761f32253de848595e16623fe4eebf93f96975548cbfe8fc4e26c7b88aa1738e133c8d70dbd9b6fa461b968c196a6c66d0b881f1624a1d07938bb8dbc525d74c307b29af4819a5f219a6576353bd19d6a391793734a460dca85e3b7baac6cedec578289519acadb1d6c6da19d6d2b0f6c65a1aacadc1da7ba81c6b3ccfc6f366781e0dcfbbf13c1a3caf06cfb3c1f3f0eeb2673329da6435202ac7ed8d625e81352d75670f57d2a331bd1bead150bd1aac6743e6d5b8a1a5b472a9d9d95bc0956fe3ece18ec6cdf468a05e0dd5b3c17a3532ef869629461b53b627c02befe46d2f5f5356a172117797dedd488f86e9d5403d1baa57c37a37645ecb5552790bb8b34ec6b3b9db1d0d354ccf86eadd60bd56e6b95ed6bbf7e96ec6b379a3f16cbe1de8d9aced2fd70976ac52b6575c804db72799decdf876483a62530ddf8e9e6d923b7ef27a13cc3ecaa70966592703e7588bb89ba4ef4fb988bb55704b7aaee9bda88743f560d6c3c93c1b9a0700ab721593aab4dad955fece353d1ca807ab1e8ef56c641e00be1d39dc3bfa08eb38c1186d46d96b3c9ba7cd72c60427c8e9fb04cf90c1b2a9a17167c8bee577437b76992ffd7d977d3a3a24f0a0049be6bbe347774c041c91de3d3243d4967a8bd1d9aa73527924f3075dec4872db73ab547b7beee8a20ae8ee8d20cb95f9f8f8f820d189b7f2f6f228299b2c0185179658c2c40818f9b80a631322e871c42d1f431b596a25f539d3091dad94564a9558ab276ad61da3cdfc0eb03c92d5cc6af599d54acac8c8c8959452ae649e336f56f4ab2656f432320fe5571a35412af565643e653ef34e261f1577885a5d85fa8c0cea41f0e28a0d0bfaee6e58db9466d387599355c6cb4fd60c85ba37cb431831413a2b35628818e010046b66ab7e522598c621e841aaf900290a258576b7d65abb6925dc8d4c50025197109108482eb169103c2648690c701837fd0ef43b666b9e0137ba86a05a84d5d308d6d87488ec34d24cd34ab81a09447f4c90be4a249c1242a882093134b1e2074b50872b142cf7c783dc1249934e7af6f34172bf77bffc85e5dd518fb3e5f21290d1f14727bd1be57b52feeebd0bbede097f944dbf391462dfefa4e7ccd11dddd11de9d4007ac2211643a067abe808c4ec911662938e43955b52fe4e27e99088ef225eb6ca49979f0ff8233dfaf77ddf9732e901f46c15adb2047f8f4efa28df9f72a8f2c8c2f23bfa773acaa6cb3b62094723cdf2ab81b0dca481b8a8e42176df937238d243ec66d171822fff5c1e5f42c95f97970e8522bd925656be42faf7eecb2befac77f3cae89f5df9257df46fe5f576e597f411d6615d91df493a4e704573af9c8eb3355bdcbffb7df7f5dfb7fbdd9b41195deed149dafbd4a91cf2a4cb9374c86d0e08776d74eddcb5e7cc90fbe435ed9c8a0e7bb6ca4d19e750888dbf4f8731fb3be927920e63606060c050a952a99717171714aaa585856565e57432994a2515158c49a4d1e8fb3cafeb386edb587478f7f7d357f2dda450db5f849d1eda4d6a79d161b6bfa3ee9263b441e930dba4af901e5b745837e92b67c931daace8b0eeefa7dc3afdfb74583ae51841920ebb789ced4ba37757198de4b5d1351d721f8df227bf01f4c49c391ae950eed1bf93323e2591e626e5b07bf67db443dcdea781747a88dd9cd61e717821762442fbe28b2f88f6909a63654b17795a825229e5a494523a9510b13e280f5e26512995a878a7c4a3e2e36d4285fa2e46d82da2811b9dd17fb00e75cdc7cb8853c4dd522ba1f221ddf1339f26ab1e8f5e8f9a2d5927fd5e9590ae64e5ab09d6531749d79ab2a39cb23a7580efa3f75839e93d46c79aa48f6862e551e761cd5eb12ba31c754eeb4a15a2fe473d4fbd8ffaad5cc6543f78eccf8a94229f54ccc60e3b74e0f1415d30afb1d6daa172d48191a30ecc8bcb8f20010f5e9df37a551f3c138c25011ffbe8ab1112f030f2e830f82f99e492bda3b2e95d965b95facae3cb5539eae41b2d59f5dd68868c2db65918397598bcf2f9ddabae4e713f08413310a3981376bde4e9414cc8761c9188ed38e2e681fc84a456ae7dcb3c458ab4fcf4222c7f7947bdd148c6ae8f4ee09bbaea3e560ee39707e62bf988f9efa97c44ea2b9587b2ea61a87af00e1dea53b989ed2bf908fad1dd3c567ea25ff9d53c4e7fd144e6e82bf9fb29affc259f7ea01f9d07fde89be631ffed2e03e29465b9b59ce2198d5039eab868de4d5ae92a2ed963c92a5fc9f8a74cc2278dfebdfaa0acfa1109e75a546ffa012a7d3d3e3ce004eb6b7d05b0a49fb7443bc6a880a9e7ce150c541a3ba9c39bfa2e62d20632374d6bad5587f3da63b21c06b9b99964b859b97902c69c68b5121d72a8eb26bb6952b3ba59c5980ca20e9647c9c76be58fc962c00bb0d471da21c47c0236da47e05d8b220c009b3e27c234fab25183b28087de077d0efd0e94eab083ce390196f7d408be7f909bad156257ce30fdd58f36946767bfd7b49bebb52037db9e4c802b145d2a879c7155a3dd537bf7c6bfe2094301ef305bf13be277fc4dfc2bfef1608cb52008534c2022cb5d6b6770f61f93256d90fba1b2eca7ae20375b1b82b2b67bb3eb3bcd6654c0da23ab9ecb31b2868855ca8d6f2286d8dff4f6f23f82683ac8cdbc7ec0cd9eda9ba0bc3c288fe55140dbb43a1862f7109be33e3e3e7222410657ea4d108552ad2858a5943e1ab8e2063929328625c430b442a5a4525eb9c46c6520862423228c6645a66b86c89a3841481a1498218e3c62c39ed761b26e1784c4913aa28b4674129fb071e83043508a1dbf451c1d248df928b70e122747d2989ff539124707794387734fd99348c3718a5be090dbde0f8930b9e3b572ebbc6ff4ed2069a75f766981fb7923884c9f08935b1609bf3dbf1b5548da59b4995b35c21de9e2cac250759ff87582b8e603c8cff7c0f39f3e427eca483d9c69255ed4a9b9469d485d3628ea4ca953dc533ce43f9e3f677647e017a5387b741a230935417afa7a90baf2297d0c0ccae525479d54a6919eb2a8ea149ebe9dd5042958812e32faacd3f97bcea5c3e4d363b2e9b90920a24e11d27d8f79fc1ef2de9fe513387e7e35fa00c7479d49cf7974f9753f119d4e719a87347ab663f21130ee1d261fd1040f18f77e84eaf8d1865ef6004721f5dbe34744fda671441ee0f8c8433a1051879411c193baf7318fef43defb28a7ea61dea343caa9fad15355a77ef83e7afd481369a26a1ea5c36822f2de4b27a2d2a9aa5357ff308fcf43defb3ceea28ef5728ae73b1051e72bbde0b853994a64f9ca7366cb5d32cb5179e5389fee65933ddd54e42b7da6d30a8d3a9f0acf298bbe48211c8b8ceebd08e9df414a7bf0ad3a3e9eda969e6d966ca42efa5a77a0d9c12c7ba522c270767614111eca1ee9cdce621689e0f9106309066c9fcdcb08d36e771c852c58b2b287d9d6b6ccf322b13b2abf1dee6a1edd8968f44bf170dee3774fa4befbd53cb87b9ac8c7e594761465659a8e3af3f3d332466277d4d33287c4eeaaa7594fcb7707361661f4f7dc8fc92221baac4fb85925a04c578c1913d3650465dda39ce027986449b2256ccc6e61bbb053f68d126d6ebd422d5262572ef870fa87a993e94a0565ddd19e59c0a1f5b99f44c0f7b6061126f7bd0d8a2e1f91755f837d43bc87a8c0930acaaa48b8c0df0ebf7d68b7439495ddc628ebd21ffa437fbacdbb024ff9cd77930b1cda980fa497d1b9f3c844e0889b6782f739489a08fac50ab07cd5b36882d7a4af9309de671f8e929e4d72b73bcd23656ec72f52716fd10e659110b9437964dfcb2311c6d11fcababf37167171d31fea9291656faf7d489108919bcbf487ba68944b7ff6fd883b8d72b99b7478394e45d32813bc5853291344ed51a65b4cf07e0edd2de2beefecb733aaa3d9041cda1816783e8b7def69fb6482f7dd8d36d709a18d3d42d9db73e6f5e815589efbe68b14dd0dab86cb56b92c75b69ce2a17dfba6896cd7b4e8a2f9a62d91c6962d75d8a2bd864b64c97cd3b2c3ef5b338a44351d294b02894deaa440e864945146196544e9e8d89ce241844826f48525bc47a7931e0562eae4cc0a5029b9b03711df496f36c319a276c4a10fb34f3dabc515859ad9ef046bf02bc5130cefaed935cb2eb510963dc4522f7471756f8dd9efc2df8decd96576fb023c415aafc0f2f1a1105bbbcc619654677788ddb52ad9f0052c80c4070c56b084a08423a72d4fdae5511196a5b67c7994573e54d9d1037788bd1dbf1d1f85a08425b366f4f6f35b9693d6ad694d87f5da67a5daa70ef0bcdc72ca6ab368234fb3166da4bc72e74ce9812e92eeb2e923ce06d32e3fee71b6381dca38f7962b8aa228adf76e6bb59d65d9d634bbefdd36ba39ee769eb78db27db37c334dcb6e96ed96e5ca715e9669d779599e5e96518f66f975df36ca9e9d66b6d259e94802b9b94e747135331bf6ec4929a596526bb39a6531462ab32871e6942d1e09ee64a7291e9874ac79286ba67860ac7b742a0d30ad4cf07c97a5095010a509385bb7b71a07e00465408324f8e88c7245010f74ea0d7078b3a70d14fd48a3523d34911e9d91c694356f036cafedae66a73babc096ba06e11e9d1e9d9d3ddb425017e95367ce216fd65db59caa5a880f3b1cc776ed75db1d3f1ddb35fd90029b4a1d63e669614f985d3bcd4052396c98ca41af5dd3a1ddf43ddbbe676b5f0eaaab0e29a043ee1a6db26bdf8d6b99ee1c9a65d9fb4d8d1ba2ab009135552b2bdfb7c39b3dbd3a03ee618cd51ae0eedcb57c778d7bf10437385f3713ac31c09daefac6cb5163cd664aa34da6293dddd1340d6754cb324b299d95d22cb375ce487d688f37559850c51361180a83167a42e80992104f7078c14417f6eca9c97d270e2f9a54adde1b63a4f246cf9bacba840438b15df6ed08d93c1e1e3e664bfe27c2a210767da501e6baae3681c3ef2c9f2698eaf17d94fdd3372fea4af518fdfba78ff83ed22fcaaae7340f2678a04fe9b040527773fa01a1119b7b6cc2e9940eeedd3b0d24a5a3bb774f03b1efb40e9cde610751ff6521e60df55a7d01228daa796680e91274d07a2fc6a8ef18033f5b74d7dfe4d01d5ebb6e9e2a037cf26a0cf08cbbd3724ff6ed6c97db8638bc109a7bfb93dd7d1e0e2f98ecc72dbfadb5e3d538bc6032c1a8e97077f43c93556d0eebb6f75a6d46abb7498a41f4a46cb9d11cb712d473a669dbf48f790576c9a280e515b8d66f677bad7aeed2a481f6ed6c3f026b46226c4984e97d9f4d9945f67d26e57ab14c4a03a2cdb500136378c1beb10bfb3ed452b0ef63748592751f6a23d8770838b445dd8f68732fa9c0a14794094dd7a559132a05e6824cf03e6ece164558dd9e41213db411d6c00f6b5633548921ba1a1059f74426eb5e32b1efc32c8a0d920e33a21ad9500dd661165b7d3acca8d897ea1fd1a6ee4d1b31418fc823b2532678bf6d974078cb7c2678b52d22da242f0ab501eebc6f44c22aa527d385fabd17c301eeeddd113fd475bfe930c17b237c2869f9bd8c166d84cffd8fd902f7fd10d4b5834512613903519124041b28220416e884f267df487dec4de74cf0dee52f77f9cbc3ef4c882dbdf3b8e74c2bf076df6db954df925f9eca2edfb6d45d3411235243b4fcc8de12756a29479d2dead8a2d902527a84b2ef15d83e96ae6daf3fb2ec21c95e9268735fcade1254f68226ebbe66ef0559c9be4b9e20b1e2d149066403d7d8dbadd9db57d3658b268aba72687857263459f7db696f9711c7238a34ee37296cafb3d5eded77b6f0b76bced50b9ae07da9f398a8fc3e67d3366db3b1f2100cf3de1ea3cbdeaeb2b7d7982e8fe866b6eab76fd1950951d6fdb6b7df082b7dd32ada63c24411f0dca1c704757931caba2a991075e59cb4d0e92b3a8cd9a56c8ba2cd3d572a956a7cd7d94d33711fc618638c31c618638cf1c769267082d98884554aa6d3ca8884554aa6d38ae7d9a20ade0f993f820c1161f6374ed9f7994f8469e73ad2f77ddff77ddff77ddff7715a89c4522a6993dd94c01911ce6e4aa2543295bc233d5ad53a9b47bbb34513bc26c0e1e6b3ef250ee5cfde4e7710c6a15dba04c2a54b253015fbbef33e1c4862d565c51059f7374bb2ef55746cdfecc8be3fe930c64525d321b63abcf7d609ec3d613d26f6f741bb749b3d26d963428ad063c29e65bbb7e402eded6190d3bb9abd25d9435284d043b2afb764b66a6be5268fc96cd9df7bf7dd9c421e11910765bab22732a109decf1d6654d45a6b7d10b3953d43b2afec026749a6ab660251d77d8664b6547e6aadfc3ef331fd3efb992d96df6749cc960d6bd0cc169d5832f656f2297b42d475ba9ed0bef79898ad52902c19f11161dc2e954a1e122f89d5a126816c5164dded960cd1e5fd64429175ab0ebbac07d1658b686c6542fba6df7a046fa6d7d27fccd6b6efa591088bfb7ecb710f99aea8738bec2b93d8f7191470fde9388737b6ad72fcaee69577f1b3d63a815113bc3f4df07e7b47a512f8c704af2ddaf7dba74c5790c9babf8f3fec0e707802ef3d9f18e5749b83bcf68af69698e07dcef48c4cf05e3ec125ed014df0dea4bd1fcfc8beb734c0618cb2ef43ef67dfffa0ae96df0f315bf8f79ecf6ccd7def15d9b66d7b10b355dad9bac035c7ad92c10966deef57608475c7fa5e1561a3df9f668bf4fdbec358c5745a6169d93c9db9ed746f3a94c0f66cb4a07bd5ecf9cfa3e6e39543b878eb3e437780bd918cbdaa3cc0dab353798fa96bf47bd46c6dbf57cd56f7fbcf16f7fbf8f5b03deaecbae33c3a297ff7bccf8f07fee81e7f7e3c48ffee499fb766df7bcfa15ede8ea34ec7719f2d20dc23141f221536b7ba1ac80d3d019e31ea8a8b345175bcf306fa785a81a23d271630bd0c227ff68c98de6a2228ca9ab7cf3411ec040e6b9e52a73a81a57039250cde91e2df5d3969fce68e2e92a41278f36aa53bda833537d7d687f65e97aa8ff5a8da81dbb6e9ec6a997d8d7571469836815ebb76974ae01a8fc487310af80a282e3c8a01b400d006362d41741d36b78f08336d7a578095a06af01d6cfb180f846d6fa6d8d60a126feede7f50564b4221fdf583ba24908c4d2bc4965442043f4dcaa054829c5a88b42f6a6de77d231256d1bc92d4764cd0dad8a0fd1361aabd6d12686fb204dbcae892409165bf6d97228882826d2f9f60b9e5eb04ba176314ea07b794f208a640d60498fe3bcc96e6f2417374fda02cfb91dd68d816876d81842668efe3dedea16d6362505c142d443a81a58c09e15042d9f652bbbd8c325df2898c096d7bbb03bce51223b125ad1041105b12ca046d8409c923d4859fb8b6cb216885988462b9ab749fdbd22def23c2bceef232cb2eb017e26ded6d96bd66b6b467bf89b0fbec97baf0336c8f8aadbf8b01747a6b49d4869e7a5ff546d623e16f870ac7e9edd268b9b942862e76244a27a594d24aa9a534a39452e945175f383681628b4def3cad373720f8a35018c7c9c33cd539e86614b84e508211c78d36f1e3613e95b2da4a077431cabb69e6cd16b5f17d3455e2ca8eaa961d750d7a1c5ed1c6770b806db53759f66100b63d6ab6e8f7224d705dbddaf4b28c7a9abd75bb5cd771f25ac6d1c69ecb5e373d7a4ff7fd0d6f4b6f4e50a250dbe6ee853becec34771186aa99a03d77d5042d8e9b6863ff6863bbc7cffb70a4ba94a773d0dd9dee4e8712d89bb57782b646586a65b368281cdede34eadbe16e5f1361dbed6348b7a6d598a0fd965fd1c63ed302d7d8b6c8a535421b61d98edeb6b1c986852e76a4108337155b31ce084acacaf6a4d566da006e329027a18bd39bd72c90f4b4732986197c232373f392b9919979ce7cd1c050a7ef68f2eba6c68dcc6b8666e6e635a3c36f197dfa0db8facda5b888f4416d216441e36a6a52b239673c04a2ebea3b595486910c72ce3aeb672bdedfabeb67cb76e75c435057a76ddc56ae1e020e2510cf04e96bad9a449277eca0c304296a0e416dd8a851a3a666b59aaa50158984a02e6a674604fa88ebf5f0a50ce8e83d89a24740a73d5e8dd64b1c59f336cf0a5499802eaef888008777b6323acadff636ccee6aac72565ab551cda4ddd2760477bc45010eb9216e48e2c829efa96865d23299ac2696c826d9a2c69ed76c68838e00592794d2535184493975315bb6d33c2fc5b37dd344a4ce7d8fced4b492cd1a99e0b440d475927292729232c17992e262832fb0c00a593cc1820be8cc9e17601173428c0350940106968af869d689f6041c5ea108fb5ef1c966e7850e07ddb1525ae5bc18a3e4633582e3635ed8ec3ae16d4ee00d0352680aa13c295de0ad0ad2d438d21dbc4cd9f12853161509dd810c924ca4907c42fec82a8a80e596554c24d0212be406b6968382822a927022412241872612aa1574883a41852a112a11a24dbc3913b476b636cd5acd5a0444579c2b30569b27c2ec3f8388309000f38718a98bb5daa16ab76c1caaa6a65d7de58e1018d166debede5befd5b41d0def9a0923baa22ac2ec43d59e3b53cd08a3e286a431e7d55ae2d047fa459c01481ab30749635e2d7bfdb4767ef686c419401552ec49b7fdcdd58b36f20390385fec41e2cc2a648c698f54fb8d30bab5df6f47eb89334a24b654428773cb59a38da4213f0fd8cb19b3ce42b143d40546d9d65a6baf76efbd963ecb326badbdd75a6badb5f69ab5d75e6b03aa0da8542cd405a21e768ca119110c0040006314002028140c888442e17848a4898afb14000e94a456684e1689598ea220a39851c40101000000100000c08000bf5c68dfab770fe0a331fe3406dd9e62e3410304a4b83905cd573713468aa91ad6e5608590eb7de7c07d406540fdaa75b1e08180b5c935b7bb9abaead02a48160233cabe2f55ec91298badc36098be014252ac7cff5562ad2ef5a8dc482df479e65e34f41f18775bd50220e4a591b5bd80673325c49bcbec6de1674e061f99d6b7a0e9b09a430a800e51bf89e42fd812c5806ca86c61f0b09eab163a4886da276c127075dfde5ce7be6f00ff5bc91ae5f24cab84ee7f60ace0292ace5e6272c59ed597d50e7298af59f6143ee2ceb3bf2b2105c366ef2b2df21996659166a7872f45bdd013494e65e36bcd75afe48ed086337b87238537b44bcaf5fc1fee35658cb48f61e2af836bbc88e50c7ccafbc1d279e5f61aad5465a9da5dbd6b1db4356ce9b364926e8211da3f7b5d5e43adced6e9769e3d3c1d07b8b6768573eeb71d49af5c64ec0acdda8000e155ba46509d299a1835e54b8de850884e04e742967575987de7885a5a4c19659fb1cd236c057d4a9f65525be972ef64a2490cc83862360b319aa00dd5eb037a7bff6ada92fe9c6c0601d8151cfab44819746e6a552d83d6d980aa18ba281894c1e4f0c4a0b7bc7aa334ba13db5614d615359237563c3b709de0535c5cd86515dbcf3e7d73aed840c8a602d353303a520f664a3c26c7b4025024245af09e089822711983cc323119d4536ea546ade5f3a740043fb884417401403db51bd8a57577587e8144317f3786162f281cc7e611817aaa167920fb4e9d843b8132e5b53f7c1a7c162bc524a0030d53333b1a9668851af3a4cdbb49a113790b090e99b2a2bec96bdaf562a24914d56724e3b065a56598ca5e8cd5b2429ac6d10099611a001c1d64685d4866a9b25a7a9b12ef15ae7d0dfd210992403295388dba2e61dba7c2c136aea5d8135b706879617af77c6322fdd83cc85420789148a66d6dc9268f5b9c14087cc6165a120e42995f312556999a284e53617460b29bda05352459ec67a2544f6059fc9adb92f083029660d2aea7189fa539e0ccd4426fd790ce5c589038d0b9141177f83e0523c535973f4cb8ae61c0be1c7190b1cd84cfa21cee9000ac58f7f76100a8423ec10478849f597f3bd701c166165f4da8c1cc92c5c28f11dc81b13b66d0298abe6932b03d01f3021fc32fe8d07a90a1c431f8a61e8d7b38b5d87ee3bc53ce5233cc97d3e6b6126204e0955aa0152ecb2945b933468830e6ab74413a4e1207f76fef6fc714052f7aa44dc16ce7da93336652140e072ee2afe6b91ae6a46851572eb73eb075d48307a5db723d0890b381b99da9b446c45caf8138409370356cb7aa2f8e11081d0abfb1687aa6efce19dfe4b88b0ba577ffaf14f9a0475c8f056653c308879ddd017ec8be26ad8cb9ddf53fdc26337435defeec9d37a669c5392ab20d892a21650c1029332af4ceb5866e9b5ce58620c0a49c4554b460b5dbd26967b8b07320da1899aefd384ab430df775e57f306ec778fa6720734d16fb020992510a3b25ce198ab02e32932be38c80e43b306d72934511b7cd545a7113228aa58cf9f36bc261a2818714537ecadcf628f3ace5f6d42cf9a689a7acee1e620c9db9124157b4d54d5ac5eb8c5e9fabdcc2f5df118e0440f23dcd2cea53d8b10030537d0fc26ff439274cde29cef70b90276c9960afa61fd2e3bc615a8ddc6752424c139f143b2e343980a6379757977da008a8791f7c61fa68e86e7df8fa4e718563ddbb9965ffb424f94888d0fed61401246effd2dc8d4e939f14d6b0cd33ea66912c12013c29589619a67119980f972dbde8d0141970b2ac55064fddc52720e0d0f4c0379840ec30b23c7330cbe7614f1dc369b868367d171d4546a6711da7ae52a9fe48be40ee5deccd088034112c992d9f3aa0584f84e822e1027408b7130a62678a30726b71829d2192929d70a1431739d9e6dfb65fadad1731f707e8f02bc6dba38a4f70def69e1c4cade2913c1f5ad7d67184b3801b6639de45f9ed6a980762b8df74996e4e5aaf817ef400cfe4a68b09fe60f56e0ce191e82793acd98423d02c866d493ae3c02961b099bda8daacc0c5bba9121739934d03b6f40cea08b5a38fea304b8b3fdfbc55b220173152cd8f62e615123b3f316756795c3a94aaaf7596d1ae1b8e552b52dc6d276704327fd39bfa54d2983c70d22da7d6dbed8f13aea45b96a4be6c58a6fd870902daa5514028674441988332e02648008b58469f431dc3c8b6d50981672368c07911b5078faa3a7821a315414e86739876b81d9625e12691621e70548b69b679da0fb43244495d8557a3bf72b7a37dad6814812f4321acdbe409ce0b06dffd004d5bd94f1408a09b5d834e3d19715760c517c6e540be841ca0a9b4c9855f91a5548c06d6f7a6443a50827f78a8052653b35e5ff9e22c6f3e1158d5c83b4791d347aa5daab4d473bf3208333fa1bf246683c707365bc572b134633e0eccfd7c5c3c8e5d10c881a5140c1fd0749a47620f76bcda8c53d4f54836a30258337789be030202b6eef9cc0d935a4230a735ccbad642bf966441b5957884e884c3232d5b074c43f8a4fc0aa627e6281ee52433a8f2a2d4c19d81c30f07c6425daa451967024e79363dccd016ac8c97185d1200002c1890fc8f2c4749d918111643711bf4be5cdb3fc6e981665b37d19b5b3cd67f29efffaccad4353affa556a278bd7eb2f01f0165c0f630706fa6b02bc04d9de0568aeb5fb012dfa1893faea444a37a48bfc541abf56154ec7e6a1d8e25cd3a26a0bc8ecb41dfd79a7fc2fe8a191f1adde423cfe99e470551adf81130a68e340fe1119240a20fe013d3178286e74ae91a1eafc37b2e4abed832159abd7bee3df41e8ac99ea71a2ad34ca00cc776d707296cb164382c85b9fb63df57d3461ab5c9a58240652be7d6edfd7b4709681f200777a8e489ed5804ac2cd1e6eaedbb0b72768278e6a469a39f392e14b0cc1430ea5b3f68704d132b59b5d1ef2bc35f3140a277b9d6566f3c36f6bbb6a7edafd36539b5f196fc7784c2c38efe3d432ad06da62a9abf20bba8f2b30a7093d7ff5686e6f45258a8448e795b9c877c6d4a5bf94a14a3a58f28426b0ff76994887520eb61f9293b6ebf3eba03951490458de3fa0ea8804ab7bc5850e597f51ca7ec1def31a1fc518d29e97b0b4f2baf411852ad537d72dc88200ad06d0ce306615a819a18b308260e57aed6b0a345657286e25f6f8e0dbd10fa78156830223a57157e326509554422d367902267887fbbac53efd04ff3cd1fb6c6ca371520e2c23fabae3fec5ee22915eece2356ba7478ae5f8e33d0957b02d4288178e8bbde04a395356b984232e5fdf9da694bd4a397e9801f641dcde75f174d5550b482a1cccf623e90e4d90baca01368e55f43d7af89592527c4f88e89a017205cc5eed94b6509fff579b0c947f2390fb82cf847d9ae8e15ea1231270787c4268225bc75699712aa25961dec22c83785901ae3c9726c6b0627f45161ad40100c6674f05ca7dea16ccffb7a60ff8c115f5c7b4d16dad9c23a5acd768290b8d5ec8f34795416b33609b8f641236a9f243a4fca3c4f80024cc6eeca0617370d081c3a75aae726f198f0d7644b41e8211e560894b72f607e09ce326b399b17386fc7b6459e34364464ce818975dc61c23385d6a570ab742d097e043034dc10530407c1ed48b132cc691ece4d47c1b94ee48857270454d937a7dce200696a0a240975f3ce3c4961e194884881123a77c15403024b3f66e02660f10430f936fb1484fab3057c59f300f42de0cc9cc980765b454fbf6081ead3d5389901f09d2fbf7d0fd84b024f92e4ec315d965ae293e54733c7e1c552104d841d877b3baef65c4ff9da5f2b8a72f823856919827fcb9d437b9915bc2f5757981b229fd2d5a896fb82b253d16ab7407e5c150fced09c7511c8d6c616a322658c26ff26e5c2c2ae97679283c33b880b1bf31ce3c97288218a1f7d3a2dc0bc0cc677df3a9038c9f902da9984de9465c7bd084cffe9d6b2166129c9dc57a627623c058814d648269ca9dc06268053e6cb20da72715f8ccd8f596490614f692d33c51ea4690d14388d19688a7c00687a0d2a6f3c76c6b9c7a10093294ac1d7fcfcd388a65c81ee4eeaabfbf8b02174354ce9d04f5d6b594465d51aabb6ae66371661badbd488ef28a35058a1c6e3057f290a0c8fc293b597a5ac41bf6ee455fb9d8f54090385e785ec056c67a6134c9b3604db6d1eee3d940ea4b890387d08d426e36fc2df40c15caa6f79fed4057e3cb74147f9712dd05362f27ec1d49e5cfbd1d419b6db5b75356d6bc5b2aa646b3a8d0dd66d746e4368e623ac3e755abb5f47a2f6e82638f299f8b496bc8b04763dc365eb591b10b17ecc19eccebe869c1f644e18158b87922ae6abd9d63867034d1400e99d196c64203ce7c1b1f99d201dfd5b6b6c9aa7c86dc18e9985538b88b965c98b54e310c18cde95b35cf0011b3d48a80017e332e624dfc1461c22951cffbc2253c4a6af85fba844781ea66c4d2bd9fc573fd2608b762eda9cbee21aeaf65c4fd5119310efd7c9622fe6fe588871fbf561913102bd66ca6cab9ce994c9229ac7b5c9f3b1d7fe5dc2e9b176eb7d61c2dd9c257cd1b417dcb3b2e927f20f6884a0347992e3d04c198ec855a28f80469e0ff1d8c1fb351e94ba29ac81a787ab6fe832d173c26ba1dd82ac4444110e1d4d03a4360555c0eac55020224871db0a5f077413079b1a02b94a06d56e9f15ce925367725a1a3823f35b1480838e79d708d3f7daf51977dd331fd3aa33749095a600b1250a1942e9fc363992c87afc7d5a9045f2b32c4ba87cfe2dea395ba1d0cf269b05241a1d19931d8070ba6d24f366828d58f16a24b2cf60a584ce5573b4ad8c7ed517514a08ab1e8e1109aceb1112dc21aac84cd44f52f21e1d869f9c7f3dfa1e4fbc77bfdd736635cbd4db37386680897ce0f2e20470a4f9184cc67d5a99370f3ae49efe9715d31ef7eeccf64498a5b597b0d27262bbc2546b83ec47d5c1aea83f20567993c30dcf088fdabb6fbbf3cea93d079063011e1c7df2b85ccb932c8cc713ded803dc7758d66c66ca2e08f4c1eb8083885de42d235c746ebe00eec68b8e0e3bd1f83b180927421b5cf5b603036bb891cd6f4c11cbb6a1ecb56ebe9740388014d2314a49cd93a1a2d282cea4a527c0494cf40489378c808733077365aeabda8dd6006980606738c3a85f0a244d872fb1e7c83279d593ceaf336563156acff79d319f825ac843151cd0922be9bd1114b6d3365d397e050ad47fead76ee53613337cc0fa2ae1451ba53725d3d0d53c8422f8b97b3bd6a21b960d2f886a450ac08e136e3da127ea27855289a938b35a97cbe1da450a9b75aa6feac7d3a224ed8995f81a978df8050d4a6528b98dd928fb78d0776f8d548a151624f1a013b1f01f6fc05e9c157a4a3602c603610ceac00cc246138ad592865a4a9dbc245e8e614db1500477e19a4274a6803f0daafd42e6b37c78b30bf3a7702f5f12a0de5f18a54753cbd9ca3e20515b318c34e4f531c2fb24481aaf7af2b306634780f2040b78acba5706bb7a029d2a4dbf8f1c265d5f76dafb3ef1b2b30232ccff65ee9a98d1bd87c1deaf1e7b46d652cc59b6f02603df695c61e7ba461147c17d491c8128fa4b50870ab8012206968624ba9c7fa4c7019d472461d7709864e1fd017c2248dcef4395539a1721cf42281a858b71cdc80b04d097495df7cf7db07a7a3cc88a3941888507a981f8ad1332ea23773538a6315620d0ac0a0e90a98be7abbbf1ea6cce25334aef96511646033f265fadd691890acd2adb836b40387b1ec563d6f8a03d58922d6ec80e76b82fcc0c9eb44291f5de8f96fcf81f464a67a0fb42cb314014d4ef37c1946f128c6d306e22e53ae5e18f4289e4683977505ba27bc88c085c1c584a6d272183c492d8c0f3138377e8527e10d6497e8395efede3600351872c48e5b31450a7695b86020ac6117cd45b3c1b71bfc34ea9e3d08e620f36795d8ea914bf2aec0849773a8ac2ce09d875b4c1ebb684192cf354be94e2818765f84cf446909506b62ea69815f7a2957569e859c31df3b773afd9ed350845612fd04ba4894dc5d0aefbe0e1ccadbec49184b36e9513313993ec4a0e127dbb497e785f6e8c50ee37a5d824b380a18969f6c2fc43822dee76629e7c4c22e601d31dd08b333127e709c24f75df80b822ee6f61cdabbf65bfdd149e5ec701da41676969e38d01e234f239048d1e936944dfea501d761f75802cd0320e5621544c8617037ef3915aa1338e0dc396f47800039c6b8e178c4ccd69242abc2504c256b808b9fa749c90ee215686a4d1cb047ee7aa21aa066f207c6ecf9a22dfc7fc14c3e0456a860609554a64c19270aa30eb84da774235a615adba227b3a36636e2d658405a789d87de329c09081365d83cc4ba18331d243c8f9141e9ff971b8b10938715fd13545a51c334dacafc0c28eb690b82dee72c0d43d048ea1c259e2df597991bcd830f84735728762a3f285fe8ce7c9cfd81651e113a83cc4cd98f1eb45d5e2de569682ac636f8219ab98b68efe9a4297e5a4441a88b00ccf55e878ff1499b919dd5f9647e75bf32663cbfec6fed67c64d97d12f88555f387532314c604985e3cc5653b85081e80340ba26bf595592e2282bce8fc9481a0d8ea08a825ac6312e5e96d2f21318ed899251c35b6bb64f7fe7a21d0fea5a5666b8e1c186a14aab74a103d460e4281dfc404016c7028cefea877e173bfa006849450c913e4e283b51cbb283108ec677c778ce9160400d10a2be683be7ead2f55851319e2cbcc0393ad4197b67d7f2135428c98fbd48ef94736b2c859d31ca322bc7a07f015962c99f8967bb35b96fe30da05c79a24c6e066a965a80cc391237c8ac7a97af2ba96a28be7a9e589100f6846232f747f18289186def76921628a666d9b7266018f32adf6919a5eefe861e0ed5326771a60e201f1f486acf8c658f2a502093db8321c74298c97ec47a79e4b3130fa92ef836165e9120070ba0befdf41eab01901db752e8631a522501bf535a6f3d57b58aa7499fb016d5b701fa2140a84d2b3e495e69e2a67244dfb1179ea5270a02686ea8115672e3d1797409695a30a8685e498b75c81459b3884a94cbcb35cd742bce8dc161a3da5b7e5dfd181d4874654000ed1b2c20027711019d2fa402573d04db4bd61d264f6fd1b443e6d9452812f65c09e70bd0c1f06e2732035443113f5124b119239e586e1ceb9c58b26cb9e796d341441287e413c2520d17c0c5c3a4ce0304bb9a3f2756aaa5904b65194fff527794e4d08c00994bf839093323831bcf1af18313b5b6668bfd7b68936f1dc2a38fd8ee2e4a0f3fa58ac5ab9cd2e4fd89fae9b70a840b13532e308332639e01cb461c9c7e81ab7e3bc8ca217c7c96d9abbbdcdf19441c1aa3e3bde1736ed8f2361f9a6e08935b3c3299178a3cbc945b5f5a74c3dff83068257c16856fdc4d959852496efaf400543d43c4313c74c9b1f7e7b0e5ae7665011483a51a17d0d8aac9fe15146b8bb601e91ed518a777fb388d14f7a0b545d9f6a1ffe200e02ee69a937295af90f2f7e43b2a6d139f8c747467599913917ea64e647b973b3790edf280992e857384c7f6dd4e5716f0c363ce88000ece632acac104116a6a58feea33777a1ed7c1073aa6c2013533084dd074c4394ed442ea72b8d1ab007efc09cc307282b483d785c932c19895dd14ce01a003b4ff157663fe11dbd9e85850cd2ff83286d72c81852a8ed4b4b51384891bcb7ec76f0aa33cd5722bfbc0ee6f8424affefb84af15c1635ba8479b03dc3142f87019f4b9c5232eec93fa9c7ada90be0b098778762e32e5393b2cb780e43ca1589048b0dcb303b3853eb7cad3b57dff43e0950b24fcdb79deb3b8e5220af252d93d6d4bce7a2464feea67970ff8cbc72a57e31792beecfaacfc245cc1916f4ebc3c8ae08b375b0a97cb1b2b4a9647647ce2b8d7a21926c820deecbfec02eb248708de6e1de1c194f52776e85cffd709f869553a36e3f056816dc60df620652eb985a78c848dfa8371d498a2dbddca5f972746c1012e3fc7359588b77e1e3d4ac9bc8e1d99336aab403493cb0209064ef03a04c5bb7a8b9f885e9489e20b5d481b797540768423e3570f682392c015c93c84a8fd33a3fda2aa1bbf722ede690e31e6bfc742b4d042a4532c8b59416f1ddf5f86d12f8fc6e0e39eaa91c4ab1f5adb0cc039029855c11bde4a1b06c69898226362496177b1163319e47e2774aea6b44bbf5ce197a9fad84bed778db7d7e0d4e7d5741fdf9e4be0931a9da9689f5dda04724a9d79552a04ad10ae2e7e91b1f803f4b241da8f1b48d40cbadba483dc459f0dfcf8f39e9567e4000d7fc20dfae7732fcbc8a57bc07370f5e2b8336d02370e062d54fdac4ddf1dcfd186139cece23b745ad932cbf764089cfe9e42718a1eb7526bd9f97c79ac8edea55f52491fffcbd950eff06dcc1d312bf6baebfd9b6fe8f3704bfd756faabf2481b86df9201f77d046836ba4adeb2c4af312ea3695742c4838abe1491252f09150070b16811e4f69cac8cdeffc333bd7de9d51857c9e0747f175be69a77cd516d6c7e3d1be31e1918ba89be6a5136b241a53c6cbdfba69c1b99f413df82b4ed430e1d81abbb368cb42cd8171ae00dab0b6e6a7d93fd2b62a3605f0d6678b0789614fd1913459f3eb965df8fb49ff9e8570d02e537d4a8e33d604d2dae2c1bebcda867e562a119adf43e1452f07d1019bd9e329692ab29fe36c990948f3e22e4336ceb5834c80e08805ea320a74e2a3398e0e7e8ea5890a530dd4637ccbea2c411ed0a88664ecd8bef07e79383f49b697f3876159dbba54cc9b8915655e10c3a1467a62964b402b947a2cbf69214087708fd361b877e5ec7beea598b39e018ae0a9171db70ce2ddd64c26d5a10b1108510b63d5d65bae0c129c2aa1b15ca1e8cfeb88866a6266485301d6703ad5306f9f024a99eef06c24b265a4cd5accd909b87e24d78a1bf1bd3b34950a196d219a5a1650973088763dad0f9477e6186fac7452fb5939113136168254b95bcc07808d36525fb18138e272666dbb1126887f27232f73d3beaf8640fa30807e2860bec4d51934d08f608f29701b2466a1899e50658d995d0f4a8fb022154c0285f1846af5714ccd923e8914a5dc858693c72229caec8cd320335c34dd931f6d9f7e35dd6264bfd10a51e92bf2a0c84c25d3eedcaac3a9217d969aa7af41ae4ba00b3a1a2f5d5cb51f5d6580e3aa895a1562a7f5c973086607860f50222be61e1a921c0c494869cc13bbc2ae026743ddac6e028f3c27e0d646661202d01a7276cc9a8c852d1d5f59d14a7dc85bbd3e1a3abbe18cd1485d74f0765a2ef3a409efc0aa4d9e8b400ff84a264173791a7c046dc55a88fa3347326717011799049a708454d34afcafde8674c86433f605eab635b2e8a756163b5c3a0220a328b115f12e8831c5e01343ba882c01387cfeb2a6a0a660a4ddff5d51b72bd31a56b30f18e9866e476190971ba16a3240473118080daff9b82f43a56d565c521ae387e87628ef377e6e0f1212a723b5d4ac0b68aa8fcd6d8b5e3bb6a62e9d5d1aa1ad24af66ed17a46188bf2c69706608ef7ff6d1d6818fb76bcd17ea794559024e9cf0133ecee0823654119cbd0e139846fc6082fb4916f7e4199c333b148109c34bee832c91495034e282bdf7e08306b282c958ec806e90045f913331cfd180190c6500d67d98028d8fa36b1da7db3f37be1d07abe00b5bf7bd101db9e4e1da90a42891a8e6c24a14c00443e91f8a224a3aa8afa7de23b410b1d6b12c2874258c5d848a71359b29faa44bf4a5eafb5bbddab2976f7be572acf9f17b4d2eaceb0e1b4d10fa61c28458b66e3ce8fb3d5238bf9775981648a1ad60a1c9fec7b6099da1a28cfb6847d826dbd88ce160fa208d56a73c244454d8c62394313b44397437f22136736af1fc3e5773d9429b4a91e3460ac52093d4ad7177a46532a68f2a68e9ecc49d655420025fa8789ec00b9ae02064c1e2452bc091b127fa1eaac7407994db5f311cddc84a358bab2987303763281360c939121808d04efe9681a125195c8990bf49e6fd2a0866446f68b65767f9ca9a2d1b6bbb12cfa51e0673b585c39748e5d7589297236180587b7c3151b4d10ca68f2e0c1e661fc86fcf2385329a5ea1a094145b7fdfe8c28010cdfc3b85447098d8d129ae7a01ae7a459ed8d882f3c17a42d1de090fee38e77e93d49da483a34c1c7faa63f1a5de1efa131d0fe306d8c435aef32b5854f0b4d52cbe703be05e48da7990bb84db0e1d41b76410507252f30e51ffec834dcc95b0132a8d768ba64234004d43687cc303f52b9c68ee7bcee56a0d2694f4b7ccef9c455590847e8bb5d61cd36575732ee983a98873d4a8706187b5704d6a1606f0fc83fea491606bfb250c4737d0678ecf35d6a166cbcb778a9c6c3970499531bac86a62fc2084d17f8b95c3573254f7d1d4bc223372f353b6560caa3451119062b9b158a47328356a2e259240df0fcabdd0e3fa98ff32805ba8dfe9ec0ae5e0d6b1c81ac7610891c81ef0b78ec1215ea58ac8791f1dc1dd2b55b6eb184d2ef85391001a97a5649d4004548aab4c7ef0e2529a90697e02249efeb383ce5467e440955f81c3de5291121cc66707dfd8d586e5ace7e58a7871d9c941a991562770120c91809bf809b4d1ba55675c895071dea5e76ac0c094dbfec4be3047215c3aa3047682e84211ba547528ae14bda5e7fad858f9b8f4a3151e6000f409c0a1411820770a80149c5b898694cd646933ae2ec2d4b77925911db9454be16b7f17ee2c6244e6f60168e793e990bbb87493221ff9e4a9b24f4904859b36b01a1c47f31df8585173ab64c1df27eb56f2626478ac2cb130b96b1dd134a0afe4bb3d016225c508555923c81d7cd5637ddfdf275ed9ec907a0041cede9f8222198a19a95c53e08133334e211d349090c60e2b039bee70ef7e671407c046741c4d931235273813c69a6691ffca0c69377f6da2bae857d611d1027f51d717cd4b9ae60a281c6a8e89b92e8a39b4c3365b1539aa406931cc5c27c0f1854dd390d17dadf9056e5d25cc82014f7e4211cc22c9d08e928f41538ac2ac0cc3808561409f6726fabb72f3502d8340a0e038da5daa95f69e89235380cdcb926230dec0918514b4315c0e10b0e857d6bc4389f7ba48163968870978292039086561225a71bd4b82a403f990859fda5749ebbdc25e6009d456aaaa4c893903781be3ae764dfad3812d99bbc953dcd3c8a80a94e53cad31990c12fe172e03bf782a81240707049c3b747d25af2b6cbd566b0bff16ac78f3f15dc24ed02fb1738e9a90704f3931c9cd58e1d81a88e845990170735f1d3998f882a6a45909f937c0de4caa10dd60f1501a6301602d1dc09272510338bdf826fddb05b01dbaafd29a52b732489c81007c4b0d41e96903316ef9321482a370474537e71e73e87097de9b0a720f7991bf0ea2fb0b7041a7ed44090286f2f1aae9142d1d76fdd6d06f06601730198989f66c2a2c6df00da1003742dc59738e3b239f6a27d620681cd169c5d78a1fb23392e8b628afa4f8e752bb3e19735d8f5601f006b0fc86dc27a27a2628927c709ee65ec4bc9687170f693f4f75be2a2dc6c7a589f381c1f8d1f781128065d6fdd3e14add060ce207e73b6ff5aeb590b5116487ee80c2b643f98469580f52258725b4d2447995db027b955b4e5f610c078a4250a35d8de0c081d708d6ebace61cf573eba7ec11ff8f9c12bba8b95c2270fd0fc2ccdabee97eaceb97c7d787596176fd8caf57171127fb829e2951ab4e274cf3329be9f72db319d31c98cd7c7ccf6cf64dd8f051f300cb5f2a90e2df2dba602b9086d2ced1a56120a624cf65ecf3c480b6c5922859d526591fb8b00ae16a8d3a141f0bb24a804aa79ee2c686a04058f915c0a78b31e0d6839efb8cbc442a5a46958f0d4cb9817e5dc179b0d612901f8b9d7326db40a061e729ecbe4b0b84abe306022bcdff6b01cb2a3e9710f36765c442f06861d2aa92870e34dcafe27379e2f8e0a8321436f4a90b3298c3a318934c28b102302f84362b10130ee25055f4ea8625144a0e4df4b85ed93765c4f3e11ddf2a6fcf680e8f229857f3b934f17c29cd4c2c7af483021a2585361a5cafea9b3262f0c335063b79b6bd2971ca5d8f8c4ae1a30af32d4c899fc4ef27f85282f6897f944a08c374c17ee607a1106698def29c78c0a170c61189e04feee3b490da341dd853b42d80c2b82eb788139f955ab56dafbb8f3fd12cbf0afceb2008a11dec568610c2499a21c389ba9459c5b0f241428ecb21b2cc809b245cbd6b54806efb863632185e223c55e08173150cce9d685a128ad9aba67e724c8c49919791b66ea93ad21209f50c095da1db41970b8a60101827a7e49c9cfc65b07b09f482358e37ec4459c1c0d20b635263b4742b1634c83a26d66e6fd876240280432bade04f048c15d32d374ee04f6568a3987ef50e234492daf9a2b56d17deed8f80c805e1c4a692f1071abb8abfdbce8a98a15e87594aa32c2f9e204fe88eb2c5fdaa8c785f57aa0e72e05775336faf128b1646d590d5ff609d26227eb49896aba42747abe61d90168254f94eb5d5cf899b6ca48145cba63c1cf37be5f416e5726ea37b301b8603832bad474059524dee06fa8315a7acf15a2161100accba15b63eeb5dd64c406475b480f2efc24214d2ec930c34a14e00da3088f4b635e5e753143c58bb930cb7a0a01028e99be9e2f246be28b67002c83a2c46a7293d6a36895c9a9c1931c3f07696e387ee8c1369961268b1f3043e093f04f395c3c4b412aef1e1090b3c71ca6dae93ae58b0c9c3ff7215c3df20c77512f6d1b01bb3c26bfcbbfef975edf254effb9262fb544e5c4ee6b0fc99ba3f823f8ebffe8126b2bd062770c181b18901d91d55502c9a9a3c50c1fb2d7f4323eb165ef784e116f6e550795a252e38d8241e93baea5dfda8b63ef60729f4ac2e2b5a0b9b10467473dde8bcfb22eeff9f55420b6abec2d47d7caefb6188ed4b19e2f82ea3620b2c1da495997f47da3764ba859a04cea91d3d1b0da3ed2ba77483e4f1ee407292595aafba59bd092ea2f45a25ab32563e4c04bc0ef71abce744964b30df3484525f21b051d5047add7524070ca48ab85e4705c98981ad67e121d72f6b0f28ea130813432d4ca15183fe60c6d3885169eb505f383034162ee2b969194989607fea48bc8ce06ea914c30455cd55eb6ca1dd65dccb844bd03d6eb50bee7528d2c9ced98e3342dce6c61423b0ffd4a44153108ddb168f6603444cfecc0dfda006d461a81c8d6758579475ffb22ddaef10f0db813784fc2130ed6a756e4142455b8a15b95f2dac8b755b17eb9e5636706c515df56f6652ceaacaf543de3e50c3f434415c93d829532603bc061ae4cbc2b88b5e4dbc2e14f019088aa010f4875e0e9d278cbfc131b0afd399e514519c31e9b51d227a84129da8d22d12b4b98432e3402d80c6912408ea9bc293474df2f284ea436b7c76c674de1512dab19cd8196e21ef64cf2a9addf5ee5763921af4af93fcaf634c18660f371d2d31b3ce86f245386d97b7371f9b1d5e1fe56ab329ed42100aae398726af3e3d4a5062185403e6ee9581a12814823ee855d0678c423391dcf6aab1e1cc7442a79ff311dcbc82c02e6fd8652684cad00c9a18a83cb341c0e42d648eeb4ce629d1a8e92cbde401355279a648f5d4fe6a244e95bd637b07ec95d9d2e39a64f29c58b9b884c976a6f5829802631b876ebc1c38c84521c60c80565942624599a5ee49fc5674b3fdeb20a7155d11cdc94131ba59fb6e32133b4f7f831eea07c09ff2c645e5a6ef3470f62b3d2ccae381f7861abca7bb1c2ccfc81e7f30c0f6e32bf28336276f27691659c961e40df52aa5a059e66a6345fadc1382bd1f508675f8a7511003c5c7489aa23a150de96f6f00aec12fbbc9698ba7dca35212df8bbd0a49b680e904221d21001aaba6de1ffa3dfd7a943887b8ff6d56212c7ce0baf71027dc8cf5830ebf8848b12ccb0692e6297d2a92903e909c0acb00aad19b4702184314abded4c9401730a8ead1ef35189443b04d4d12cdc94887a2bfa9c57fa9f30c25cfdf674e1e83d6db4d25d3c35f82c3149dafcc8f3ff95fc2eafd19084dec2f5fd5cd1fed68838fa4d4295c037fa2b9123506c2b56b9f2b1419a1fa4866bf8df282484a9b41598ce81e2912a3b25e39f211b1251f7d5fcb14f73d6fe16b97789ca2fd7e546a726fb46a2456710323bbe3da033ddcb8f9e68b2c4ca2fff7e55a43fb5a1024c50f5c20b93acd4b1e889c979518a886a9b405cdf908353be5515acea081ff2334835ace2a3919ee26dd3b8ae547df02442cdef84a7bc795184135873f5d50ba3f6d819dc4eafad5cad2a7736c016556a4de82526c2939b69e5f8b0b9ee956a5a23d57ceca9fb89902fdffc47fd50086002fb4a39cde999b5625eea0601a055ff5c79f563565276778f47f21280fa98aaf0b5fb3aab6e9d381e6ea62c01f7ac2af8105d349251c3b16f86f17d52f64e5be3cd9b18329a63192985ce65729960bcf0e259f78e322842bf379f68a72ee6881351942872b673501001c71c6f727bcb00daeca47fe833fd52be695d24ab23ceb558ec9891761c36c090c64dae92fe715ec2c5e3a090552522090473ae424c502a9c87622f24a1dcaee01e2bb82eb010bdff856e8750958bcb4ad3705d202a4532a721c8454cc2ce422509bab4b5bc911190cd531feddb4eb71ef5b54d90fe94ea66fa2484982885a22a4befb5362c8bf053eda879f85c7f693e84a7011c935bfa1e9574693b2d96c9a45ea19813a2ea1cc36af7c220518444193cae19e269e1b4434e3564b2e0ed289d78d83c8284d5c57429d76ad65d75030b6155326ac1181d7a5f971be1a5b3a85e13c45479694d5aff446c749b33601d28a3215e3b4e75f5a41201f4c55617a273aec3ff1c92f01fe770ff13094edc8aaaf08e967d3da9666e7ae7ac4ac22bcc9086f54f84f57cdaba80749ab1a2ec93960349986d10db39711cd8a9af6fcdd4e6b50f0baeb442d1cf09aedcb3acc02ce34cc8e8791786ef8ac0e6de99c6c440423602e403f8473c23e82b6080a499b25c3ebc559d8167b9089f6896efb498380b1144aebffa88a3791a496bb519ae7abdb023bbcef1c133c9ab308d0bada1cf4361e9cafd6409c3498cda74bbf1fb404669fd61885d17f7c1d53766b1d36d347da476020b44315b751a75a25c8b238a7d806a32d3455f60e8b59eb88867c0ed59b412cad0fc6838acab2b22a9516a1e328c8d119efa930772690a3d6d62bbf0f9978bb9ca2b1ce274a11895ae25e859405877d6a9c69b98e3ad939ecabdaa70fbe158f111359a925ac1c39f8dbc634542fdd9830027f587a28a62b1c34ecab9bc386454a00ae41d42af81863bbae85da2abea2f1d1cc151cf6f9f9f1bc919005273d4e2321b643b55c0575c5477090ba51ac5aafac08f9fbc0acd3f273df85aab79a68397d85743fcbe085de5aa44ee1c0f8ad26561cf4aab4678139e43a04e9b7b252d95461e7155f449329150d433659ab79c14deaac2a52c50bdc52615db12a5ee022358b8a57f30217a9b056a4ba57b8488545c555bcc64d2a2c2a52ed05ee526331b5b872f7ba902279c2f51dcceaf3f432d9d07d69210ee8e5774c8940299497a7f2f4f21b25c9ca04d7731868028a1eef5a49024b48c7691f3cb5b0ea17837780a2437484dfc7d9c974748e595054696094115802e189125e86db8e07a3e8d22971b77854b65ad15747b9343794e3a5b410fc51450e97966c7857c9f8017751864e9038874b20c168df3be5c0e5305389c1d94c8c9c03dff0dd09130c8bac704e30bfdbb534c9ed782c6a1e85436a975fd985ba644683d0ecca1bea7b29ed64d987e03b1773586933a61d16c100804c9c122d07b1a6510977536a27980519cbbe3e8d3c7bf4a57bc7a1add805bf9a089e1b01a0fbd485e79c3c0ecd3eb946e30a2e4c4a689400ae43424fce9129f83a32612ee9a75ce410f3bae536fe9445c6425486ebc9386d8d6f9c467c2b8284a8b52a93ac64e302df3a28add44f0bf42999017307c1a46bb637ead0def66b2c1c874b850cee46df0ce106b40b4f3d84c4f0a6cca478dae34e7b7ba9a070cb592ecc65f774a0392b4db4bb50b704c2aeb14598e4c4e1bb9e3701f431fe8d4ceb0b59710c2983060f678f4051eed02c4fad586f1474feae9b427adc76abcea75e643f8450aa2717a9458b6437fd2c5e4502ec9f8ef4350394b29b58afdfca0d4b902d6f86a333caaa22bafa465a9d193e7e58b51ce56c400c4819cdb831ec59443b683a4818963286cb15e7f1cf46a38c81d8b9a1172aaeaa66f945d1e1455cd4315c669c72303b7036becf0c1b26ca82912c6a745d26f28482e3181a9b28f3c34e4ae89f1de4a5bc3d2fca18a8fb9072b867ea6e5f3226a567e52124d6f0f38c88c90b00c3cc0ddc8ade6dafca2ac52863d0c8ca6adae120db28719d1bea09ac6e2bdb665e16c98a506c530d64c82dff7a4e060f18471776b470b4973b4bb6253919c3b9fe79159ff928aa89624d265d19830aecc32b58393e9089abfc9531081f1684c3a380e9702462daed737609ba4864d2107962d8c173a33026a0baf5b8d1a046a76e49c8d4193725e9a7fe97174f2f3c31fe5b4cabdaa41e414c43e14e3e9872ab706e3f448385e16ff6b91fcbfc4c51bb298f5d263a0a340061d36983911e5bd9d7ff2a51bb73a942fa28ef2ab2e1ce2e1439f25168e69ea238e5d0bd8b3a676dc6d449d5b4a3cc93ce2e69f70421544fff58015858ebfc853ec930cc1cb3cbbac40ce640d1557bf07c71e254319c21204af1cb9db93f7c719267fb69b5efe06b52a00e75003a0adcb1f1e55b19b6d5f187e1a615298e17ae8dc625740afe1510d074894d3da732eea017d2ebf35a3ff3b78bf955491ab60eef00a041665c502ecbf7cf8d3785c423e6f5d5a28269d6529849e7657d4f32513021ae4f39c95a621138339ab99ea1402bde8a15262f84c9032305be0846f6a5cfd59c7ba16328c99a2f02640e2e1049c5113cb51ec202dd7e06a80bbbc87c96f8aa15067d7d1936540955aaf34eb63a2fee40f35aa43842f409507ff3c59603cc5cc87d870c8e32e084369ffdb413c17e0d345a8a06d13727c490c1f2a41326c4c738ff75c5a800e42ae34967a82de2e65f647575b986f9ec7da1400bf7031eacaa38c2beb53deb82adba74a9a035ae2030c10b05564612fce5bd22f6cfa575de5b9711cdf20159db9ed2c448988afc73065f0622c81f5fe2983a5fea1700d9b671ad3f16835af727172b634b4b23dc0628d0093dbe2d7a77653af4142df52aba23be20307f458e2d0ebb0b2b6ac135bfd1fad5662054eb0ce7f7a77692fbcda29c5a946e8c9371d178648f9d92508b6915ea157ca6250ceac6bb4a6630e410280e1cbd0eff747cae8c083b747ac4a7201d7ac8e4895d7655c51e47344acf11718a40bdfa736d4187203d02ebf20dad241002dcd314ea901a702426f834b4e92d27c11a0967f39924014739d42663374594142a5daf9808f158dc3ecfa3164a12aac65fd1924d6d2a96689fcd3437aa6da64477005da0ec6732d14976760180ef330434f2fbcc596c14ac8ee9e29fa744bc5307706d1774853f2936a165b309310eb1dd6b39101abce71c210df74adfe7ec961b67f9aef03d5133c0bbe7701a9c525c2900dcc35ca04200419e602a193fa275cc47b29a0fcc75736db4c1d08a1d79cc1a162a1b3fdc6267c9818f2a17887eae9696ccc75d34d962f0fb65b882c9c00f8282842d7363a1c5d95914af3053ab9a960e369f3605f516e3840079807ad2e1f6ad1fa563d528459ba8be15d783f2c9e32950f5dc07b98eae96d5f8dfee1a93793ad8c146ff3b2f921ffd37d8b0852ee45ec98f3bea17b85c80d0a3cbc4889760de15550e5906d63821c53c7cb9c35d427ecd15f442ba783e3fbf6840dcbbc7120c9a47f541e55308eca118a5e4931fee5aaf117781cf7556a5167656d628bc97612d30d94029ea149abb15cdf44859fdd1cf817e6ebbbd9317616d6f1fe2ad019d1994ce3773bcd738a3d31942cd07d23b09e71545f959ae5d40b6ddc4b64d18e346a22ac0ef7681d405dae3fdd01e077b528537a3dfd484534c70ab51fcf25fd21eab55c50e0616f7dcbbc173e02c65c65f081ceddf8b6e0d8e1e122ca9952bb7936c505d8a14dc3fcc5bc206c9d6f65bcfd679631ad6bbed66c180a7b8f2eed381f03eb9991d9e98cf1ddb86e0b4780bbe640495344d72264d82596c17ee50d0e46f4be535abae4a5c4725615709d466cce2d6215eb1ada55c297af69013414254e880113669b03348fffb4210307dbe33aeb9b660678f614edd46d3205699a64a1652861c975117f4f4852967f67fbe98ceb6f6b31e8bf6fb2b1e7b3d92bdc5b6def6ae3e37c0808cd9123c752fa7d7488d2ce9c62cc6585d9cef2b5e7bacf4eac35cd903f5bfb55a399dca1cf6df2ab8fe32cb24cdae9aaeb46c121a14a8a0dd6eaba093d09af5d0b8167831a5ced12640e214241a483bd70f78f8a9e6992303bf056609fe2f94aa68fec83519782c41390486208e0e4423669548f765a7a95562564ba012b32a2255cc4a491589594511c64304560b855e2e415dde0a8a1e07fb5b851e7289a58d9532a41e3f7ff42706c79219057f7e2d89a27baba281e5f315659501fa2828fd32de014efe125094ec5f698bb1e24458e97aa1445668a15c712dc18a7580ae35586afb41425c7637a2fc5b8912cd24d1005c3e913d278b04411055a693cf34849fbaeeae536582a35c7b4f00b712dcd7d72ab34a8fd510e12a620df7642d1adb712a617295191f554f9d5c412956fc76a32e6da13f484eaadcd0d95c252d72d1277f66b6a4a5c40c2846e636cd2cc24fdf9c43fc03dc31339e77cbe948a0e9aa073a1007e6e9a6b2db890fd00be4b094c8e08c2d9b720840eb5b6c16e2a714bf25275f5e9857d172b2c89698584cf1ba0768a3514e17b3ae2d4e1099122dd70c41789d5ce0636e566dae2b62a7af0688a26df09c0426f2a0298427b990f4b973a5803f328d43bd7df26cdad877a852510f75f010fa7a15dd4c04ad1b5863e6356da43255ea142cd72e884b3bca40db14afa1615e51a7762b69967449b7f91de5fc68d4e90faa27cece3ad6de7927d13859ff46a52c4c81687fe06c294d2f7840b3b5ba75249896a32853137c04bd92e4284910079ed1ba1f4af7c1265e66bd28220adc23b08da7f44b5474a46ed51de896c3b89a421365a84edc224abab5825eb2568894e016cea5e67d0cc0e59b59b8570e92b73afffd1394e25f2cff8f977f802c7303c881b63fcb0392cb5868129d3a9a1b617b79a0dd31d376064b54a422a4d7e444782ef6eb3a3911f014d7cb8376877ee9d0fce67ea664c2ff566d2fb39707a4719b7ea1e5a31d25ea57687d87ab6279d069e700336ab4301f6b44eb6af56340bea3fdbdc57f933c50c416e3cdfef9ccd10fa3ecf200b2df65316b001a612188e167eb846783cf55ed4673d5c59ed1ef64035ae697eedf4b95b96090608d6bd9d9b5229d0c24838070c1f4604c5a3fb596152c63999767a624660d290de12f1348265ae4655b9e87d340a331f691fde85600dbb692f3b7be73d306bfb5a37455d239414f99ea543a18de22da88993fa566f59a55131f01acc4f855cd03db416a1120e10f258b663cdf21892f37ab7c89098ca57da1f22484534054165ed6ca016f0e49a291ce8ba01e011334a7cdee205cbe999efedc6e97cb62cce371d1793d5721d293eada6d525923f2dd88d43d727e4b3a663b084ae6f72cd4d370d9b71f268b84c26e620164756823b0d30b1c4b375944876e5d86050c08c595369e4bb019f12c41fbaa5751bb5f7ecf0650b3b5e293044b22f0eff55c53204a3196eb72dcffb5ad211c380f95b15e861692ab2f7bce56b02b897c42310bc4f4d6235c0975db4e97b03e49d82e3a5b4b44604bed21b0c0b05c4dbb401ba621d912b0dda5d905bca82313ac7d05aad485eadc9401d4ae99bea3c52f7c49542d20c0be3c354c99dd0b6b61080a47aee67f722a968fe5976995ac60226302b6fcfc539f94af31d7ea0c9df983a1a505906de4caedd18e7f05fcf58f8aafebeb43f017dac7bbf91fff38efe8a9c67128bef5741a17b82fe21b3f862bee01884ba8cd47f206693089d0e5811768b29433f1652fbda1d76583c968cc126c9a60dfa17f2036162e495a6bcb887ee53eae497ace395b90b3445909f7732ee3074ccdcdf4aecfa13ca82322e1f3b1e96e7a23386f1ba806568295989ba345fda6ad522ae353ceeba5ef4c0cf6b28ac8be99c0bf09ada2f37bca83935f78a34e1d1879087d0e5e1d63548af33d79dc0dbaaf2d57c0669125abd4129a24577b9b19dcd82dc09716780c319fdffa0b475dbdd20bd19390fcd483d6385cc3426456716686f34a5b79ef5683ca598d18fa169cc207cc1b0cf2087b44fd9e6666c6aaddd9302942c7c8063f4595e37a60d02c6f5731e42c7029c6447343b5b9a1a5b01cad742ccdde37f456f16cd2b0876a2009da351574cdedae05ec6e8c9c2441ebb67c1e7744ead2b58d052460387c9a0714b1510b2d0f231307580d2bca060db2fc89225a525e2d7b3fc78b9c181b91e75de32bbdedaed2e0188dd3dda4ff8167e917e2295a28c83cdf45462f42aa8db633a5d7ae72550c3b075470876206854cc0721a96406e1492d11c5fad1897b30ea3bb961c71c909fced2eba917ca2170ae498b1cc75dc49bd5d433c395a805768ab53e1b2ddf8c2e2fd0ca495be337b1b7233bc23d6e8c1df608239a45c55024f3d5c32c290ad49877d180596cbc37519f3a9714cb73dcb04a2909f1fc5016be155e4db1214d36d0edca412b42334b87e5704be8cb279b5416d3a061027bf943b99179220feddbb1a2c7a7a0f4a1c598848ed1db71a09cdb1822e5794a39de814958502fa85ac467101cc05d9c4e8ce8b26767e3457fd1eb6f48d2197701f21cadd8a1471cb33e9435faafe7275cd7addec61c0464ef57822f175793130b46e2eda06853ea3df14b306129fdfbbf8eb3f74df916cc7458eaa11a2c8f802d5d374be5807baf055faa8f4f5d0d354308d25997831ac5c88e1523e1cc47e92945e2fce57a5e5ba94c85eb45e1e72e224e7c9cc29f56ad2261775524bebc7c91ac08982ab63a2df8eff84ac1fe94e8f4168e9a0d6789de23d8d85f468df741e3c9001f807111c8964139958d99e2bee7e6b6b2b50e90860ed63d1e7e19501a3b2311acb953006d291ba1051a38969d4f7a1e65ac1705b59cf6b15bd764310c63ff35e3d6ae4b7bcd7d06b920000a49bd17183c6dcae04b6bd93cb11ddd0ef773bd6d1a9d18c81eea102fd4879daeae40a0679918a06f0dbb32e77e77f4b78c3eee6dd5e0e366e046856acc80b0859e1ed6b7f2cfd725843cc9fdb5badc104483e23417ac76f9044908b6a1ce1eda5168ac6547ab8e41328c6c107a322a052a94ba899eb69e0eea6cd6204b7e40f3358230b3ec739c64a30857c4e4acd4202a0b4f65fef59932126221d492bd9502012a4fcea592e46d1d16961758d03f992faa6c4b7823ca0c67298ffe4b6431953ae812b5cbc22afd0bad255d720a65e44f0313b39c0eeed44013445940423cef46511b0995504bf4ee4fb9e2e8c99325da731f5a60671a179a083d4e62c0217e73f408e394bafd266b482011cf6509617ea53363988fc0300e59f9ca0cd61be1fb4c9b86f9b5def8fdef8bc04a89107570fe24bc891feb900d8406f16067aca406b72c6fda8a04076dc4ca9c706fc99193500dbd5373c7602fba803549811e8ad1b744b4208ada41d6103235d9b05a2ccc5933d1df23d298afa95b428b1f92f281750b37891b3b466dca430749321e9128761dc2240d2b00135b8c1f395ebd3908702cecc311da116cfb6761302656774fd84b612240db96c161528cf1bfac32bc58f7d306b346b815f7706d9fa0f463c9d410c180393baaa5731c8204426c3ab8d2cc83bba92d76a0eb275f7b8202641c863cf52e219a87c4f4598f6afd986724e0e8e1309fe04fd3738285f878bc308511ed245239920a9520c8dcd84a30707272774a6448010d1d0ea0af73571b42b6817014aa35e2e742fb115ce0324fffbcc569fbe34a7ba18965456b0d02ebaeb93c80a6fd6579f693c632ff9dcf170e3b06372350f1439904cd17ea61094f7ea8e8c930d015fd0e7f6f7b2d611626a8cd8d1720819a4021cebef3d177cc55dd2e3ef4682ebc15a8d0550e16e0e6f2b301ae0a22beb501365692dc7f033c5a61db4c99fc4194db781630498e80b3ec7ef778d2bcab28a4d527f994415d3c002f897e089256c59e40d050cc0b249307580f4f7fc14c41d0cb9d60904c11592a8fc6b52254bf586728ec9ef2164437442f9738936d1f27d5307b7788952b30bbd68d727ce422d137b029d0a1119f783462740d018a60c2ba1d5a89858dbe3e51eb7a90da12439a4088f693184bb3a4b30ef9887983d54a37cb09b342cf2a8435cce6d21d71bef413c8fa8c0e0202ac724e86355abc3479050094a536a7b5b91ecff319a2e9d241046051079765b10d0fe056a5f89e89ea39f7aac1ae137d5c5359ad5aa531e4090b458b08a33e04a7f093f8156a0f125ef37b77eb3b7bba5643e789f2771016ea6c3dc5ea15c160cb752f6049f1bca072280f861db19abc7da29b01d53d3e4c1e851438cfb7859dbc2a9616686d47f10e5c72cdc0f0358de11c6c4ebaad9f9509bb5afaf4d58b0ca38bd13a95b4cca7f57429e5033085dd92588d9021773c89b150ed18bf6871ecbb6f416fc30f41c516633e684c93385122c31eef655002aa338723e4fe4534cb22b842d59cb24bddaa167816158f586499f743f16df46fd5e83d0f9d1a1ec394f8664b2a6890ba5074fd6cc68704dea18582e896dee78a443aaa66f45bd6af79d7603e1a6fc57d2d776439b912426fc4d3f38d5de56746c9b41c23445afb8f23cebf0d99b707bf3c556d76606accc00ac859e30b6cf6c61fa2dd19ec9046d37f8744c0d8689e28cb95386462810e30ce103604907b667b5cbc05f5dda1ec00fc8e475c67975994664c45424e38ac42106bc52f6f65966eb62ae1979d078e87651e8d455a02d0b6fac0715180a8524f302734371d8d0390a3cd6ac17b6b488923ab61fd6bd9922d2183fcadc9f1551ff5d6af547257e3b958886f56c4c6d870ae1f4f7f5c3fe8c575b96e35810e810c85005e90c1612186a47b5ba9bd6ac61fb44a447aca7612b690969dab0514c054fc6d15c5820a38af6c37d5a0e8ed27ac04c8dea829ed0fc92d7e6b446ffa535a577253fca32a89d80f35f2c9ff44fa12454bb64830d60f2aa4e76a175e5c7bc109ce4b51b725a334dca68c19712f2a12e0aeedab65a67987392e58bdd43dd9fb6451a0942c83eb1c9d316c896e5659ce9fb524271c3a8d59b6ac7ef9b0fa98013408c4687a26518666105aaf5dac2a5b7e3e6b5517e4d733c0e6a277651192487734a50ab5531c8c70c49eda8b1cbb4bbedd58b9598dbf942b34afa309a733580fe5edd6996565483dbb4793683b52f3ff3d5d64531676259113a605179ce63670bf89ca9f89c5bc24e5aecc3e8d86b29f0e336a403ed64701b9f5511a9a0886c66c6661c4b7985e961eb59773625ae8a8f053d7d6588dc5eacc69643be608c836427df58da022f8265f756aac564f5c205889b9e9c4b9af161ca44ef0b03fe276ff3078af0c2f015817735999166cb15273045c076f4d785c9aa5de224dd4055a21a9c04492dc63c38a885e8131f62e98d4bf989836203e0f232f2618e610f78d1132143054ba0ffc14a89e79ca773788f73a8b77bc7b125b7d28f50b311ca64e0f8fa1953f15d9504e5079945a681ef1380e97f77bd05aef0dbe69102ce3033e2d474402f77e4c8865cd1bdab95f2181ce2c9980a7aed74be51246f6d449b69441b122858c524d05d0ddedbb9f3a00fe2fe8e84437d5a751be4c7cb1a8e94dcceb263c52d7d8b1eecb06c86ace03e00153168734169eaf37513de58f469b1837baff42ed7df27dd1941836e00f2d05bfe0ae432005970e0dcc29425d7a12cf79e948bc608669851b61f3772414ddf255c13329aaea0e1babad881fa4a66ce7b5345c8b1953b75334cfe7ddff57539fc8cebf268781fe8900370c14837c955d9d95019413dc3410d6891e0052a036de8f1432841e74750a0781e3e03da03ac11984f9fdd3e40135811897dc6c2527f8c8b8d8802392783760cb47192e16ed21a5902b205d35f240510751e02f59b779e16825d4b1a24eaa50e2c0776ef53ae04c6f692b9c55b85ddb6e719e76a14437aef1438e1ac8df5a954de2660d0f5e791b408d434b200becc5e92ccede122ff5110d78beb01cddfae886af23fdd6b99edc64327382c4422b5fb4a16f7fefbddab7f9ecc9deaee948ab46bb696c4aa2732419516fcdae28eecbf90b37f751224635990b001e84694c69fcdbfafb1b7cc59e66d61a09f2fda5b39ce1cd2db61841166c54736bded7168669c0a12d19fabb000882d2d0c337f6967c4b59996e91a8145031fcd09889fabad9020b153c3e81ab08fcbef5ced64794b2e321a8b9055f5ec3fd09e52827d154dd9a460a12c150ebe32396cc1d20582a4147c7db15c43849f19b1ec8fa6d1e969343230b13ef6433fe7a3e962ddf544cd7341d8444f6c7ee7d0273d9c92812bcabb15be83251961d461abdab416864d465549d009788b15dfc68260b2218875116e66440462f8515e427ff60a1e617ded86cf12ee063d50c0627d18b6f06ecb0706c3cb225af5a238476430aeb3e2636f4d3858b92ae3522bb1564de057ab7b37dd596c8a0d028672cace44deddbdd4b40fb5c75089865a8eb9f3dda7800d1b529e8807b8fc91d5e3112850bc140e9a183ad786689ed7f2c61275530d22b60c229c71478969d6249fc290e7d7837c367a3c7c34fb39a0463552bbd4245bc694bd7540b398e3a41684a1d09e22710b1f5f1308de0bfd2c678568ebd88c2f11cb259d80c98791e8ac6e7416771d9c07b6f7d4e24482c45ecb06f826d6c18e025b47885f4670c636386207d98a10a357c10d6ddb43ae449bd9ff70ffc7a63c176579707f2745cd8b826ab31926dd0138039a910ac887b1e2e64270623d160cfdb7f5f85caf938763c342e46280aeaca6b9c677dca6c03eb5c9822aa511c14074bb2722b063a0d264ec41f940f13a2a5c1d10ec4112f58ebccda080fb40de0eeeb29ae49b8ccc7698df59379939927e4ecc61fe039d04b0a7917d42a98a09df2fc3ff16ecbbc9a12ae4c589ae8082cf87ed29adca8fb6e89fdd8ae688ef1cd8af5f80831c1abcef167d765eb211b79dc55e9e7e542a4c984c43c3485ec3570828cc3c172cca22297f8ca7ce2347cd8cc69219c8c9e1d4ff06b0daefb4d811adf222fa249de510da0f84d71e94dca94e7eec7a12a148f20cab16e9ccbf54a4d3ddc142297ec05a822ba0c970b93df9bf74c8d159edf4d3052123568d9040085c22fc40e10c2e5aad2667422d41e29722fb51c0f6746d174b956bf414a6ff80ba01a92d3701fd4fa10978ac90b003ac9002a5fc81d22b67aa16f8e88ce9b2d21a836f241627800bf81554c39792ef9a1a190da91be7637348d0117115456bd536541ea51d730b123d091b334c969467f6d0c1db3201209216299982432f57938f6c23b3a5c7574e84b01de61306f740f52fb2a19c959321680c96f42cfac50f0231a6b4ce45e78b362ef45223df23aea04c98f27a39e2927c86453196d2245fa244dc163cd1d924b4b1e8f813d29b3431c7cb7d34384c35480be4931910dd50e75ed64a171c772acfca04e963f777ab531a51806d55d5c954481c34ab8614cf7643f4530c6b65dca497c12635da3af3eeab7c15a2692aae6b876819ad4e9ed6aa28f4eedce35a86e51f4069cfe5722e8f836f8c3e1fdbc0f7a4c8b3ab8d3138ab4ed4e45eb1aa58ae046910f402ff2b41c9a3a47ae7120ca8d061a9d577d2d1ba39944e729d8b6b2c92ccb0f4e417b135426da1160a5940ed8f23c6a0166d9ee4e9fca5c2a7444b77f96c67ca032d579820e4d1a261530800959c755614377540738d45e4a4ef9db6ae4c730ee13586603fff12a2f605b150433b64d90c385fa78bb74647ea144f8ca17518391473b75d08a8024a8641e7d89118342ebd56ef20ca29762019df61f5368748a74fb7c2e733523261076f8f92e7811a109712ae93895074d813324b00dac573df4e19b0fd0dcfaa0ec8bb828b00ae1d982ca21dc8d3276e0df785873feae16a405f3331bd351477f8cea4ada4b253541c27c8d43a39f8659dfb14a8b3d0836ee10a49638b7588c68163fab7790cdb0a6c7e5118596a7f19eb812eb14fdf2ced64e3fed688b1d9796d31d84f091286aaaafb1feebcbf3a72742e6bc6a81ee791a327692abbdc15d3c5a4c2d00abdf154d14ef6e4ac6e5dc7d547a2ea2388d07f1bb4246070aaac4750eb08c56e75fced1d4c2be5d58608a204e481f8503efcf9519fcfcfa9373a3bd60adca8262d4f5a489ee5d44596c2a1b2bd3f094b2ca5fb482e0a4e83cf6d089074b55e0c14512ef2bda63f8336011c1211eb9631b45cc07d2a12c1a8240d9407e2a781b4450cd3edd96a41c02ab8312398c37fe062b5acf7a5044b0d54b45fce39c20111a29199e4231ff6fe76dcfd32cd04737d9737726b855c1cc7d1432d627c3802577067b7527ea81dbb940ca7e0391a0cfe8984582a980217258c28a9ffb5a22f0cbee725e5f2b96e871b3d7f8c6fe32518351ea695cbf79ce937aee5d385fb9844ea940f44ccc15fbd42244bf9e64709641d4202b34bcb1de9657b013cfa06632c803481153699a46b5e88b139473e0f8db9d2dcd14917248d98738b706e425b7c982f99255d0ff702c96b41c2a937ddad33afcdb02b3bdfbca6f3706f1331746cfedc12755501e2d3719100a886478005cc531ace0c258f6be91d02353c2bfc85b4a63d43420bc5a69ab4e92d6b1fa6e6b4a92afc525703962dd394c61cd6ba72c970589ac3f0ea6015074bdbd06662d39a56ce2b41caa0e2c7f5ff850628efbd26cbac1350c734f10b25cfebb575d53134459ee27da9a65e155c5ab11dc45444dabb82e67a1d086f067b1b31dce304c7d7349341be05b7a0a20a0307b979301c2e18518204d022cda6a530b9b86196cec7eb77a4cf1f7633ed7b6f265b4d26cef802081c98258f9a12022b1d267683e48591195eb2d76f4b8c5528f44a50793f8862f3218cc423fc4240686291acea3e014ba80cc17ab8ddb4fed41a10b0e31b61d5a96e1586c893f7d87cf904c4c524c6792d2969a4d8dd9576b495e428e7fb412b99a85c87f6ff6181082758a75556ba831f6f8b576378c2d2fa448ef0621fb9910945d4adcd202317a86d6d510c4eb13b51934022542bdab2038c4012394d320ef0e3131e7566d3ac6ac61d47a2902366b8a8f274eb419671e3d920e42f7dcddceb23cfacb1160adbf70679968d1f15949ee0215a407cc7f468d10a34787087fbe517138f96aa528906e6dc54907dcd5bc0e5d63e077e77e0106ff9521a3c2e1860c495745c52d59ce802fda62a210a3d5bb2ae4b39a4e2c44efe3732786bb4da9e4b60fa16a0a8db79df50e0c4621e4dd9fd3773b585ef9e680665dc7f580245d42b83fe13a57971096b51859f70fa851da9f2d928fdf71035f737c9264645cdf1300832226fa87d0f050f6d688bf1258fb865731a7760360e2826c02d9b49405a74f2b3e81c61d0f835e2336fd366f07c942ef08931dcd2b029136ea53b6579a61ee73040aa56caafe4c742abc0270b3c130d44180135d3d44cf9482ecc920f8dae844ae8197aa70055aa642a5df9806f0dd8ea1ad6eabe7703cf6da15c2af8c12f2c14ed3f7ff8e937440771e930c75b40300d40b0cb29a569119d856de692a7a1f00c043ca3dfc5555c95dc06d609f534e35fb85b603cb47fafe60fe37dd045fb076ae57e1fdd9a0d8c0845864e9b513950799019a083ee614b2e4e85d208a720174a1e8f54d2785de9f68534c2d13667fee860e5cc949cd7e816c051b01210ba323e05556225dcc0d8dfdb46dcd4c56f584d596653681bc1b334c274be18fea42ab49cff4ee8b50b5f49ac76c53d97c1628b98c3de469128ca066fa01170f4569f21f5a56e91330dfbad5569dc5894844c725820da0b631d5c722f90d2f043e613eae0eb2c464dfd35d8055e741df36c5de9841c2aa274b4778a5adfa0e1d476fc9b024492db3236f4e1ac3da305963cb954ea2c586f9892dbedf190cfc07e856eac33bca32e9b4902c92beb54cf473cc37890bdc1b3a7f342f2ac05c03c4555690893a332b4c6ffd2691bec5c8b831802261576af0e16fad4f726896dda0379cb492c3f93d43858482b248cf21f981194abfe764352be85b8e7a282f89f0240bb59965c1437a81dbf345babe3657b9c9c78acce7a0e5d78fa2434dc5d41ee25f37d3933f9cdaa48ed0104d384952756c2cea7e3925165d0b70d7f1e52a642818bc58236b5f8655472d54f82312826a30f5d50bbd71643acebae022eabf6f49710f405e771aa1e9a37ff43d3e3493c01d842a1a9be64540f1d047db2f064fa0385d01479e1f6df7044bc43b11b0794578c3f46dbaf724b077b581f244685841089b389c8ea33d328f573b055d1b3b2405387e8994f00b35b3f35c22d2e89a8a9f2e556e735ea9041aecbab3f86e338329c063325103abc731240d88d4b1c3402edb019af429faf240f0eca6c5e9f309436fe6cb1be6f6be3f6540a1632479dc079c16dd9be3681c4c21bb84123f42e7426c18dfec789ba0c55780d786e6623e8b7c6f7798dfe72e7573e6ff1dc1a21a11f996252f5130375d281c1e4507708ea92d9a2a07e9dfc58d30e777f9fc8b0aee12acf9222686dbf87392cdae7d25ae12c65ec3d0548b3ac0ddf1faac14a3ba94f7709400c2a48226a0b22d767b77181fb40434b88fbfc17f7064f34cea0ac6d240a4d414df53322ae4294b0790dc0b17905e03b3f5e1acb6525e1a3942e101fb020cad291ed7b3c6a2e8582ab00fa65625940f8143bf2ea456b52d27cc1b1ef9d34ee4171923537165bcddf5dfbd564e29bc0726f997987a35faa575ff7ceeeeb09b7ffbb159024a262eee961d587fb1bf3d8d0977bc44f87a967601a802d443efbc3141bbddf747fbc8fa8e63505cc2d4bcd24654f47cb69568006318e3f5b2530bb5567e5dc3e235d07dfbcfc52d9923cc7535a8d335c65ca29fda2216e438ecb6aadd3ffa506b5ce1a89c1ee558188787ef26c259e909b100405b4c603e4cf8c91b5309610c4ce4d42f859f843684c0def2146e53e62e6c11011dce4413a3c7f51c608963d7080e4db48739f15e2d9cdc5195b121a43e3e6c9ca2f606b1c54b8d318e50cf76f88e8e3e11128fe1cb5a3ee3e6e30ea13b558fcc5fdb029ef0143ab1c8bb8c64a8114c50d6530a9ddaf91176c50a21f36f11c36eaee9d8bf82de38d5ceef14072672d5d6b5d7185c6acfc7e241f244c47746241e9d53443f1695f6a70a19d539bce1366d62755c683f89a4b5fc9d51f7670b147d96f0e16bd9f88fefb9a8ccbcfb77b15b3f4b18951141390e003129126696d4891533642725e87adbc314b90fc45a89eb82fac2e95e9a0cc1652ed8fcd556f1591b61306aa96dd2cbcc462e1c30f70308ac63ddf923a4a1c0ef62f4ef1f0a3bcf6fc8d14dae608d3999efa667d74b7a34ab5275741fb8d72a6a862c2c2bc8f32ef05c492c34bd39518de3d81d0a5f3416445fea018d80806fa7265231b115fc0e1cb6146866ca6c53243619f1bb6f47e958544d5a05b43c2035eaa40002a44889000f2572b768d3998bfbba7259edcbc33fa9b3ab64b050e0ffe0024788f19981f89ea855322c89f29d6a8afa89b801509f5a1c4e8ca4ccad78b688b45376a0e8560495f933171a739d455c62ae79cba651b80883a98687e62aa1c7c5b01232bcee14eae3662ac3c8c232d920601114e4ebfdcfc9c2418702281de6cafd534c100c3d5563daee74139760342396eb83388cb81f401dd91d4276257346e6086001b038bdb8b03151670daec8642e775febbfca12775070ead8bd96adf30e24e89841b0ce6a5ffc1c8482e305737739a062ae8479b0d31d5514cd411f25c246e9f93e69913926a34877cd47a5a179643127521f56b3fb4b42a466fe42b4c9886bdbb767294e4fcb5a42310104f8a21716bf6e59802e76a61cbd58eb87552340156cd7a62826d4bfcb023455f92e202b257381b23ccce2aa3f22775359c00eba1f282944685eec0687e35b4fce8253a2557c68ebd4a74181d233b96e2790ad6ece17e4305669bd7838d3c0ac8f0753a1cd8d0d10d2da552abf71153027cf1d82090154c943f4c9a4b4cc01f5395c70231ab11af1ca68c58841e34a01bd569e63aa7f3b1a1c6f243f6d2851f351ffae27cf8483f05ad4847f6b2533d9c7cc0a57e972a6467fff79d22885a29474c0ae2d159565d7c38754287a580971d44b0686b4418d8f88000089d8f8a623119b453f967c719f1ccc14785e21cbca7afef858e1ffca6cf97301ebd8ab42e7fbcd76702259659ec8d3b5e8210459481b2a4269a2823be6005d683559f001e0b80fd6ca4ae11bd2d368586fb72f8a0eea090a12cb09791fa7550598a4ae25a4840df2aeb976609481a522e87025014f4e537a9a4cb172545a3648041caadd7ac1deffc80a77668ffc6a94726ddc6c1d28e2992f04941ff8237567ae98aad3cae2ed3e714bf1d667487d576441a3f9476836681d2256daf6fdc70942240813f4889b9f9c489343171725004bc80086b02561f6f043a70b73b10fc88b3bb71c04990173032a8c64445cd36034c3113b08df04aa1aa5076e8125793b2658b40617b914f7816a19e71691cb3c25d840549230a22aa51d8128d7602fa227266e6aab76945b4c9ca836b6b934893a99b91c324caba4c9a9fa5bcfe633d19746651843f4a51e29e105ff61074bd1c4043c6a586a08a8f86f4a0cf74483d10afc34c2f48d89e59c555017dcb22bb920af945c0f6902b23a43e14f5b7bb6e7e7cc00168969518b9772e4813b4aea082cbda93d75903a7e7f19578e7d6de19fdb9645aa701098cf4e1e8545eddd2df27094af3c3481d41c0a5e157b10ada94a70cfab4e5549b4a8d052dbf6ccbe1feaf18e9a43a288415a008e8b61c1243a63188c0ef6d39cff3bbb3f8bd4221ca99f773f01888d04bb7e5d4ecc8b188a1c7bc4f7c41ff5130920db1c4d4b61c968b878b4674b5af466839a3bd0fc0c0eac32e33405728e8649d9a06487fb8efadaf74f5016e2fc7a31fc498cc3bace277023d473271a60d5d893fa1f5459b9758a2c44180babd8e8f174d2ea6a6064bf77a594a905e5410c28fbeccc21b0f2640b8f59c68af68df081ec23771410f72354923be8fd52ebfb59e63c64831afb60720e12106136ec09503061b457c3813164afeb0af68eb7bcb052043989ada1a0b157cb97473cff5c3ad54dca4d86aa15275fff0669fed0443aa07914fac42a62e9b2b4a97979ad23876801728673f5043a3fe13add4d74851c7d6c69489fa3e4eb08eb751568f8ec13e9863975431c2425b666a1d088e18a38976993c494bda99ecebcca46ea22d755e01413abf988a2cb19c05b303629248caa2dd089bf05ca13518cc67bb19be9c63147f89c37d10ead44db46bb7143218d44975b9e068a2ddc09e6ffd3995d78365290c3b6f059acca5a2897633dae5027eb1404cbb3907a7a671a937469009e7a9a30516e60625146f4132bf5e3fa635caa60ab04e8472d3a3ffc302c759c05e4a7f583177b590c40679999d24b084719ba4971a4e7f930e2b6f824a11809e736514f8d00db799230e8bc3840b21371eb2d86423b97142840ca47592857d0be56fd97413785512aa72dc91c796aac0a61777968246b339957e1c6bb3801d196cec2decc8107daf16fa2728e00b3134cdc5f20efe96303eae8b4eccec63618e6bf1ea80a7da2ac2d875b36de68da7315ad7690a9855d8723e1468a30fb5fd9ba61e0bf978e3132fcecdc1a03a9d76509339655137fb962ad1ca6bccb250cbafc99088832a2890a54c4a60983b694b04fcc94484647f5726ca534dbe1c5d1379068fc9d65f2b34aee35e9c83f0334bf00648e630684e1fed0c0e6a28ae5684b079a0e9c33abc5dead6fe7e037e2b1038b18c0be3db4dfb2c85a2af2f6761bc48bce8976fb8b7a7302d91cc0c87111cefedf4e6832bb36d38c8eb603d37c1a9f079ea0d14da278ca6589fcd036bd997fcf929b0c3b6218060c832ad1dc84ccb7a6aca70e345bd133993c1e9302e19142cc8510f2d75b68ee6df64384f7cfd44269f9ad6f0930f7f0c2d41093897677f3d506393e7b6c2edc5b1b6952827764043b440751ce8007e4720e967647d3cb3a9541b2729026ff4943606d5344e2ec43b106c2bdd192dcabab1bb3072046474d310873521a09ff1b88b42ea084e77bf624579c3dec9a3029c69400001a9172e84128bb6245b99dbacd1594b169c5cfea593b07a6c8c5c82a6300c265ae30e40631da548b05e80eb4b3d111c42666c8d37d6f75ca37300b749813c45a14c579119b97000ab59d10c0b3b86c486e3465db250a7b7d29fce0810cb5785039b95a05fa96d90f365db21ec6b09a72d67fb16984b364af4e0c712f8cbe4c93a7819c4f50a5138d5f2004fe92eb1734cd4dc83a986dab951bf70a934175c9257e88d1d9e69206b45a6e659fc1fd77777886cf3be8eb54b74aae395756611a0b9855de42c40595ac686904db722c0bec30944c58be46ffcb1246badb9c98e9333b79f72fa9cbba06128b23e5698ee48821c218aee526886adcfcec5b7599f3980cc056670f1be03bf29c24b353d87705072eff9691f8709839af271b1958f1f28a5dc1dedf36d527a7e3a1152eeb26a69d588eab182a775433631d4b6172e4469219e5ae737b3d2696df7e063bcea6b250fc5381ac944d91d1c148b464776252c745edd905086f4fa3124cf33f9462a263d303d464313e7113a0e596f65b03fbd3315e9738a7a3042c8583a1118144179a6118c3dbbb41ac200e68d339225e70050ea35a85251f953bfd5b94c870164ccd8835906cfa6b0e2f2200403d02fc8aa38d91031342d8ce7f64571bfd8464f802c854df95d73da0a37c160864bc2f54c8c95fcd70a27171788e7598391cf69014f918bae8c370b0e0b7500e793602f905bdf5a8f72d0fb51da83f82880fd9365bed2d8634e4147b03070244e318cd040198ef57450861c137793093c515930a0b493d5f856e9e5ea2550c1fb416d61560598123d8b1ded5441c47429e744b2b7ac4a29b1c7192625e369585bbcb330aec97d180b439570e5cba298d24c93dbf22f648c99d753431ee726d2c4f075c8eae462078fdaae1a9ac39446b9bd0ab07e3997758eda45d670c01c02b8a0383405a17f31381015c45b5862b4ecd4d41a0a1ae1faf0c4a93530e1be7ba0aa3279e235d5e90767d3e1f73d82c1b4599addb11ff490084043c1314eb9d7803ed8b7d70bf200d88c0f99306f22d0105c0c37e0cc35c05d20f4bf150413629338d2fe61ea5f42b3de9b6f0cd3064471e075e62eb9cd3853f6c1d0dc138489db25d9056561abbc7c34362ac535cea1a262fd1a8a392965d4b3f76af804b20141ba2e6e1e1581c584a9149e72ac6e44642c53d0e33a342057b161b43385fefe67dac2f31a0e5ad587604092f3ae90550a356a027fa91ad5a828c1ddfecae8e6dd88cc970a030d1f3451d8ea810a11485030c8db5f7d38270c2d1f3b2185f657a197353eadc6fa32bd597ae1c751f70885e503c54d3c20f4a56ed1f0e966e52164ae68173228c8a75e215abfb35d60083d9c2df4118558841ab5d64fddba55ecedcc3371224fb6158f7cbf177ac4a106704377d5792d6a661199c1add9ffbd15c004ca3d7e42b7e39111a77311fc096bf534bc2724bcd99399637672dd1bf0af668c3a50b3cce93e06913e4503410f06a73e8c33b21d02d3515ab881269f3b4d821928a9146da6079ee7e20f2e5cfe019c5f91ea74a75b6e07a9cd6a4a3b6a227d4e76484c20d615a6c8e37ba203cdb5e11a4768f42de8370ff3935b6ed96587297c984cf1dc535b384de7d9dff907736d63d133e0a8b00281a339a407db9d8f0f9a39e010386393f162e21fc96fb3742f55a6d3456a099e427a047d807078ed2decfb743d0e26f21c7371c0940706bf36ccb230435eb591596362ce09054303f7456010b8f0f3434fd7156b93df408f129d91ecca2b05e16bc92e8a47a6d6f58bc8354f49e9654b74798e74143093a64c12f6f468107ad58ec030f18d9a9fe1be8049b66a3cb21740a8361cf53801a90074619724f3bcef096f16340e05b8aea7076832d371f482aaa996d44bed05f56ecc81174008b1e0d515b48c958a2f0415f1d4d2bfc108f79f09ebac4a2579a720b013d67a8dc4b2b9b35b7a0a63a23d1307589052c2667156c05ba885e9429e0e988161f8ae4201c7e1db60cad18847af226a6669bf771d1cbf3f1f9a5a2337320bdd20e38ccff268124ccc0745b418185753afc7a010f5e009a960673a2bc175c1c1c47436b6d60b992f81c6b09e1f03c85d50aa371745a7a3300ce79a8c4e0450b1069441f7528c14002cca30566d3fdaff7e4ec0533c4c015cb5888f833c50cf5ca6894326d0fe10120bda3a8069970ab3768cbb8ba9390b55004e7418a2ee97764a93a4a99e65296c72854c1c8b6c78c9bebfcd5a821862150d39b15b4b763f38746896c1b73fd1c3d4fe52657942c6c992db7f44ba69fc0662a9cdea25665415ec294751449235f37fe74e36d69dd5e3127039ae7bd578c427b07d983e6116837d0d2e73e2980bb0ccd32567e1a9d19928daeabacf74d6844e07c489cf8618af207460b6b61ddc47338beab24107f1b0364fbb8f1b672f5db5d10f53bd9d87c260c5f5eb3ce4f465be5edd25feddd537aa86d4f5cc2c2d74a30dd857f7ce6deac206c79d1029969a4443990a56ecb36cdc513ab5c37ee38adc6afa48fd175f122ce66d0212980da77e7fdcc52d7036d78daf7b0e09c421057bb05778103a240c17ef7cf403828d85a7cfdbdb7ae826be4f6904d8e78c207105eb4128593f7f7149fc79e94ffffef0682cd9415a80a8acf64876b743c988842557d992e071044b21ed35d6e460c901ce7e652f8679cb6d9d195a820f6579fc5ca290e710994ec05a976c751e0990d74cd11ae5fc89a3609e9bcc533de3477e33cdf6a55181d7c0b3776f4cdbde4eefa580779e20c73b7f010ea577c167f97508b69a5bc5d9054058d9b87c65365e34948008b55a67a5165c7a83b359650478401ae8d5100b2b3f2ef602af26dc6ecdcd3269bae843582f1e9459a0c0810bee60385e7edcf749e51c426508450a9c161343b133f7ce504b1259be1af63c370a268586d9ecdfd02825b8228dca384cbd945038a28b5632a9bd43730dfba020c6351f310c23a934fe25404cba8b331226703391cc5ec67867bb161bff045e3b0cea20fd1694408b49d9e2451d2447628d35d803059a7f3420dc2863b37ac8b7f51d57b0105c88093aa327a9e0857a5ed7dc17487e230d7a191d982619f6019b47b530ad321d9093c285f1cdb159d8423d7b56fe05b40b437e32189bdefe0c0b43afd1007426dea7d9f4ec3a278e58e510095d67b1bce74c7354334e0f245ee0304c3fec6e7c4fa35efba31ff251198730ab1937e15526322007916ed0b0d28baa98b4b914a8cf70df58783e7c0e27b6600f953c88193e245f3165e41dcb223e8302b9cf051b652edb7c0bfebaec8da54e5bf1fc6370ded61ef8271749a9e9bb465ed94339e8b1ff8692f9ce348c3f93d629cfe5e0496f7907d4f947b9f6b2a6ed61c2a55ef463d2f6d8957c548a98decf964f657dbedc2364517bac08d41430813ea58372a327cf0b974f08987c504f50f8f56461e4d662690a906483b0c75089dd5fd344af749a254007e1cb85625c9bb9b853007ac4e8c288a9c6009b9e3eb57ad8b95c88e42f71eed7ba026f6f1efab07cba31000869581a39dfff26569db8e2f6fc4938b1434e7edad27de373d44acae06d0caa18ffa19abbe85abd08105af51539637e7afc2792a240a035ce26025bd8106eda9eabd5f9d043dc74e806a4bb21fac20e02c75c1988b9fbb638a7c9bca09b395257dfd0a5f907172aaa3a970b8b85911837fe12862b292cf02303fd005780b5cd0492fc33bf1fd08ccdcb24542654ad0147eb68994021e6e391eba246975d053a3993c744c41400bb80cf6d271debdd50d214fd51f8c63f4e5e1390afbf01298aff1078062e61be485c50391ca2839ae3b3138cd1441932d6d4dac0e850bb74e61f4deb94f37d8da5073fa9a7682773e8477d733cb6c857d3621ae3a941b7c6dd86f57dd56eda8ba5d39336e91efe376690f16e2862b546e7543fdd1ed0f99c2edc502df92432576b9e52597a09384bd84aeb24e7ac07850e0438b65779a7f13f3cf00840637cc753863da0b4ef055ce3a4d48052a7d661e78e11548a8e503149f7db7aac14f7fd8b0160f32896af281070b148a7df78b0a941a5b786bd74e685db8cddd6cfb49b110fa40a644752fdf66c1d0d88f714ac29f8273fb107c7dbc5652ff26cb2e4ce90dfa52764aa011bbf3b4d50d00c38c62fb669a7640911fb1a71cb7583e2605b3311346b4bec92784ab3536ee824aa2c5a4766409e5a3cc62c8f37e946a20ace0faaadc91158bd142b36d033f79bded22c32a91590ad63746d35e751c4290b165c67ebaf93f54ff9788a929aa3ecc6619233f39bfe3f57b4cea31af7292b9296628230ef1e014663b7d1305800f435a90f56476ae72a19a657f77d3289c52f77f20d4712fb32a2135845db0d14816f8b0e6e4e0bd330b59c5800f367ec55635496a73a3319bbb79031b4411160295f93debac93ce98fab7a75405cd06974a35034510103383f68faf4cfc160c6b219738746dd018c4a6f40bf47c1ad8357c3f7b84f2f58e3bbf53524fb8e2f1865d4e32946b2f647e0020109aa44ad704218651943390bb246820fb8b7a2cd0998f65481356075ff82eb3a315465c29b9e0ee5b78cd4af3d5190ea2789aaa818240a05fe7744680e5820da554d07d99b5564aa1ddfcac797413f66213db9baf81276aa81df87456876ebd370a312eec14420e7558c61373a8e8580f83fe9d37c640f50c6e5f32d92e5bb5718d42fa4523616c5fa598c24a4eddd6defbda59449cab40dc20d200f77efd41b3827cdbcf7fded4f187cd562812681e9db80d3deb779c77dfb9e756e0e9ab46b9ce3fe666e4ebb2eef6b80ee6cff3b375d01e80f7a9e4d7eb0a7c8e3b4a9a6ff02da54e4216eaa4f41e8d680a599baede5f8b6a560892bdd0b5ed05a1bda5aaba9ec21142b682a87ecf7ea209da6ce34df4fe20ddd584485262be6a01ba7e874f794f024e6a8735f31079d9656533964fb7cab1fb46ecb1fb65dd935db19b3bd523b0510574a2ba533db23f0a4b13306052048f19c3e779ce64066d77392eeaead930a702f311e9d364df5b919e3a60b631b381ea791ac562fc169bee751ceb42b11fc5446b7bf7e8985ef6f8b5ec8e95486fb29f2b8baf4e9fff28b93bebff77ff9bc3c2795e1b475723ea5745a236cad37c25e2649fad8f569f793c3a1b3b644b58efdcad99ffbbe535187d521368193e34db5ba2f71ec4b40529be36c0fe6be761a9ca4fd5319a4967469c680dbf66035b0bba79db63696aba9fa17486ddbae3aac482d2d2925fae50ca72efa9a92f434b6504addb95aebd353d2bd75c6d04b6d9110a7ec8fd7ca9ce37aaae7c1fce9db89bd8a031502420fdcebcb3bf9b2f1cbae7113789ee7799eb727cbfe463002b0b4c0e775dc8c99d7569f31f34b0b5860ee38e236223acedef7bcfccd0d6cf766de76779d84a35c7517c1cbfe934f92fff2ff423ee94d1ca6bcc4ef55a749a1a30248bddacbb51c0686cf75de570ac51560aa9a3277555a40d4e1db3ed84deaa6944ae78a3b7649e349de14902f871657af8642767dbf3eecfa93b4db5a0a525b821f2d004909e0489329004939016b8c036bdce5382c0a703989b63f8ec3ae011c667512eefdfd9df354385a21422370be941c268285e8f85f1f76a0b2d4b67308b6df615a4bcefc6b24f17f01dbe771ebc952b056d1860627ad05027bdfbdcefdd27f2f9a4c265d0201b2ef07197fce1851af5654610fa2064c1b38f910ead3b85a51a5545250f8e4aee35fcab7f49ecbd4a40992f2824c9a202a1f0f9326484a29039326080a14326982e0b0874913e4246a60d20431993630698288271f264d90107360d204b9efcfcd9814143e99c4f0964a390727ed773b44f9340e28c0f6757018a785007198eb242c6f7f871a3380bbec5b962606f0348ea5614b65e81fe0bab51caeb1ba83bf756799ce42e3c38cb16fff9b310e4c97fd99191a345cae9c4bd4b62c7a87eab29ceda10de0a4b53c780727edcf1b4753b958051083e4ebd95d19b97cc08b8ebccb219b529de47a9deede84bbd79457afb5babb7b75777bc489ef4e50edb436749296a5cddd10f5ed1203fba2501b4f9a691d662fdef53d5c5df35ecd626d968ef26eab0aab5741655819a956ca5a4bdd524a5dc609b03fbdd5b06051702dbd21ad8f04f680a4b645a2ba7faa95034cdf75fc65f88cafeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeba9cf1fee08cdc9291dab5fee830196fe39eaadfaad8fb7177777777777777772d6c8adddddddddddddddd7d3a8ccafcff8576485406cc3127a7c66aaa6bc66ea6eb662661c772a602662c07d74f96b0ebd3995d6b9d253adde4693ce3b04ed7c781810fef7b295963e3378ea9d0c90f844c428ab9f7e67caa5373ce6f396c721eddf45b33a75ef6cb1e5ff6cbcb1ea78bfe0c2be7c696b16bdc79f07c21bccc9f81cadcabf109869224e70fd6174e76bfacefa49314070d8c932f9b3a8c85c9a493b4b5cb97d60e8263d3566bcf191b278cacae3956d774cdcae1f400b6ebc5c1009c9f3da017e90f63a3879e63ad0449d89f71d81c02126ddbc7c164db9b04ccd9fc04cc19cf4dc09c0d61a207f7b3fefc1baaeea1b3fa733e911b7842508059fd1e3af327e2698ffbee51477428a0fb33083a235147ccd9fc92dcd3e6452698978d192afb7e3e0d95957e3e0e2a037ffe0c54661ff5134c799be79409c5d94945a6d4b1eb875b7cb04eeaa619296503c0fc3265fc4b594f19ff2f7f6b8e93f447e14cced8756bab83fcb0eb18c467279f4d71e72706391042132b084189cf8c2215c1055b042de1810c7630a33fbd9ae8960536c4292ae32659dfcba5699a3ea74c2d3bb0edcf1fbc54fadc95f8a76cff19f37cc6a6bba60c53993903a74c9cb2939e30ba4292153f468a98511748e1760b02d00ebc70057ac410be306207cd216ca1c9a6bb52cc997e885059b8ebd31750d9e9ebd324a80c14a91055728b26cd1cc2ae4f87525f9f12b1c2df99a97c49c3accaafeaaa9fca1e4ea64125e3d4ab8884c0672a5f7f8a0e9835151dfe8e2bfead5ee8a1b2932e93a868da0f4c80aff2f5e9105406ee38813f77a859a7dfd9e1d7a725f0c161a216fffeceae9f4369384e16a132f0eb0fd1a1c654faf5e97226db90432fcc4e65e8abe494dfa03e72aa175847fcf04d5f4e5b7d3a549f02d5a741a08e90bac5b75f521dfb6116c5d2db5605d87e396da607f3dca1a64638599fe65458398bb0ebd75abe2a17b8061d14fdb11614df3ecedca6b75697a61735cb8adf775fd225c41c76dfd7594b8d30f22535b26b4a1886e1d778788170eb843f6fe6876f73f8a6cc02dfbe6803957dda64d225fd32e0039833203e58a249f41063db17338ee9ad2ec5373d9871e616df028169903ebda5e1eff10e28e65244e1931882a505ec5b00ccdddb7c52d1d65d766e5a86dbfe97adf729992691350da24057c03650d9dcf54d796e1c87a174891f3b4983cad77fd558eac7ea9aaf92c7d4066b98cacfb27a74b21a41e5533f67aaa756c08114ac1a76760f78ef6c2174db9f3326409566590de46e1dfbdfd7a4241d3bc5037cef7d4a25830f82b91cf72cbd9c595d7a86cacccfda1a74b02e5f5baca0a6402f660027b4f6436d7a16488196d87487a692cad324726a8e93f5a467f4cb495b04d6f181da6696fdf03b1cfba1c62753fd93a640e29b2a05e29e0239ccf4b3fa75dc62cea1e1f26baaf5be94715099f953e4f1691a2a33dfd3335099f9727272ef796c67c6a53605821362b982cfca48536889ca7c3c2929a52b9bbad681cad09ea31e1c8af8a8311ca222a7ffa23f43ff4928dd7b5ffa5f6babf5845021b5fa50a5341a8d26a45a6103ca0ab8e0441021f8e2053b3dd0020f52901748308526b3f973bef78484f997b1e5a970fe7092fae02efa34af07fbcc4a85d814e092066d4a977058fd516339d726c749fa36fa38f45f334235e87af7ea9003102115480eb58b273a581c38fa5dc6c1beff7032071d8008a91aa8fb470dfaa455e27ab8ef25f53b79354502dfe77269dfeb53fa2f24d540c2717a1c752b807346676b70686872717017f5f183729c0f26601c9ca49da300571f38fc106d6e68ebf7709296b6db723c46434d8dbd288d69c1094b74808324a8a064469f3045124dd880a70538a0cde863faa365b2240b465e18d1c51235dc2725599a48410969df089713ffbe376321c7716278753999eceb5ee3bef44ab6bee7a02ebd92feb4fdeddd7bab9e7fb969bdd4b67704f3f61667c654eeb3a20d7d8ce3aefa38078d8393e4ae2456ade0388c07f17910e26d084c99fa42c61d010378ec87f7f0980ea62d6a1c664c5551bd8833694cbb7299874fa5f244549f7a71e555fe06d5a7547ee56f50f9153d84891e2baffa592bce717ad38b1963ad737ad39bbaf7303e3d2de93e3dea533e0585b30e7d93096b13fe136bc7e9518fd23ad34950c45c9e9bea9717669899eaaaafe2e5982953bfcb42f096993195bcfa650a37ec1e08aad35a6bad36f41bee15594b3d0998fe64721241109e3099504702ad618cbff4505fe2942f479599dd3df8aa9cca2a795697e953322ae36f32a95ac428ed2b9974f9a4a84bf215eaf245ab51da64b2f3c4ee288dd266dc7b0f326477ef3f76f7fe7b32994c68addb11bdab82da962471bdeeedc427ec5d2781b0ff74eba4974048d1c67392e259a636107257af3c00e70c2cdbf7de797fde6ba9d5d3660fe6d20b84ef7baca3d168341ecceeb4134f25d33563bb8a25a66b6efb3626ac7bfbaf09e35eb66b9ccb365bef7a3ac9f7f79b4b88389a2f3b0370beb45eea3843cfcf4018f7afe28ed37e2501290e8751f04b2cfebf885f4d75d5777d2d0b30cd93f4afa955c6f6f2019b2be972dc5fad9511d8c1ed4eff8c71cdbddbeb946a20e476fbfa0264fd6d613cd67257f5a691e797064060c1b4fd4c223f72a84f8119c3a9c2ae3f374e8dd1a82561575c5dd36802947e80ca4c54a6fa0f2a73dac88589855d7fd249855defe5bc0984ed7b3bbfcc98f92eda58cb751cd771dcbdd6da6b03274f68a18816960080f55e647eb2ccaf8c0157970da98cfdf934cf78ff3269ba3dbf6681eb9e3e36f7542663cad0b78f6b6c00d365bf346d5b244385b5f6cbb1c669e57ceceee9fd193bb3ed8cbfcc982e03213757d21feb71b0a89ea97982475ca180e997d8889b417d79647d1c1e037fe2fc05bdf7ea7bde7657f56080bdf7b4a54ec0e374ddafefc361e50c0e0e7b21ddffa3e9ba5fca769297bca50e9b2b7dd81cf7bd019cc4a9b11971c6068c9336090c43b34b8cb6c7838dbd3ff3dca0e79bb9c5109c27470abf136dc02f65baffc563dc4fef3a719757c58cf1be844176a99832de7b15f0cf8cf11e7b4e30fe8f083eed222617f36aa1041247464e8809c417e351f5e8f6483065b3d2b8229b23627b6f91e02a05a6fb37d87946dbcb3376a9705d5f803b3d84891edd733f6444cac20db09875faabcb7bfa77044100cde60c04352929dce55b6b451b8fe2a4d7a9383aeb32ab07378455bffb95e7748d2ab37aa886b0eaaf685b545dde1b6def551aa7ba3cfc1fd7cd5497f75c7e5597f76e05c6cf297158cac354ea9108b6f7a316de5fb1bde78ce0bd4412b70bef46c13cdbe38a6cefeb1673ce9a8559bb302d08b6f7f605d8b35924307dd4978e34a3621256e9b9efb42582034948494838b41e8ff9e0d0681ebb3eeee27eee9ba4285f38c54f973ba6af3ac0a60b78620ed4531de012136d568ffbc3ea617ffc510fb940d5c5bdfd9deb535ddcd7b875029798c86767736fad688343ebf97269f7e7a2a87a1c5a1155c6a1f1883649488eba49fa6e92a2242139ccf5dcfee99b24244c84bac2a4a19b03bfc64fb5cd7d7d4c3469fcb953edb54bdad33d2637cda55cfe80b43f0dc4d495fe537ad0e61e136dee53724997b0bb44d9b8f7208e7bb755ff61e2316fc63d45aab139e3de8772bc49759fea3d4edb1cc7715ee3385ae9459b9ba507e109ea4b9859d22ea03cc162734e36f7d3976cee7621582ad9c7fa3e4a8f6fd263b699950366878f1fec72b4ec203398500f9a728e507cba43d1012bef39b8ba64f6c4ef628e538ba5e2e6f425f1c1a75eede5702ebd6d32658712828f5363ab5ff969dbf8a7d863859fe29fe28d0a0ff04d0fe25c5a0b3463dcd69ffa536be93eee336340ba71698b9af6784e8a0f3e483d97b65ea793c5c4d27137eaef46699dd397fef4dd83a75c7ad06f9346477cdfdce7eb738dd072dab6e9699429b0e9515b44659ffe993cd32d969e6fee697098631f9326dcfe9e69177856f0bb3e360cbeff57c3d086e20d4d5c78ea5c0741bbf4a7b7e2014a7f7a3007b8c17731878c0de2c7fb94bdedb749033ef77ee430f1b977280ef3d064f277d1bb20346977e08b4fbd90128165b893d408b8bc3e9b23028b27c0e283949bee2fe6c81bb4a2e9a910b04371927bd357ceefcf6dc670efcd186ad27ee424f7b3b9af42b82c016dee4b3fdadc3bd1e6dee42fe6a8dbf5f52902c6d7c776a507ade8e3fecaea6bdc73497b449b0986549c4ec26c6fddd0ed95d619ce187f3097de73f7e027da805fcae04f8e63116f60b66bb0b371b243ddb0cf04cd1aeb512afdec1efc2fd349748511fcb48498819a557f67e6819fd99c954af907aa0450cfac94594accc07c0a8289a01978a910250801d04bc90cd43fd4229ca0e068067e29ff3099386106eae937ca30d72322109a81b70a4633900bc13c91e0829e19585a81163f33100cc13c7e4b88d9148213aa609b95760c433093af299e28729bcdd4bc94cc9ce8881920cd7072ce0f702bc9cc3f4014e4332b31788242063f389a81221538b8cd40d3173c3f33f07404298266202ee26806a6c25266416106e65933c1078e66604a08e639c511da0c5c094b9955c50ccc144a11867a66602a04330d153c1134035547498866d36f9421987f9848a8c2cf6cf502db0c1c43304f221c21cd409610cc530927e899812e442560a26706b2423053231f08cdc0186129bf94ccc0ec43c8c1126a33d02504f33c020b8666208c10ccb30a206833304608e65984244333f043304f9b139066600ec13ca360426d06be4c19d4ab0c19f6729df795c050349d300a95a29252adac648c2c2dac960c19325c60c4f80cc3cbcb647f6756ca3b338e7b30775fcadedf5c8a3d4aefe9213a5457fdd283620ff03b3de447753981fd6f4de5b8bfdc74984e49d4c169cf299d2853d9816df5ccdb01752930f570877bea96d35614b884d932c83069666d11e16a6346004ef0c48593462680e972033cd9934e590e54c61fcc81cabe29138b3501a5c00374b03c79a138659487cab8e75defafc7436506b061c6d0106c7f8e52a4d4f6668ca53c944e1a9a0f43c01bee4083d0dbe97276b1ab0ae655632a97999794c3beedcd187f8f0bda92f2e2937377af358f684f3a3f534964dfaf71d7a5907d350fef4d5afe50eb156cbe3b74d884f95fbaefbb17b274781058bd95a26f99c0fe65cac34ae01daad77a035a0f6d6bf200d72f531ecdd8dffb204481b45d014190a2677333f0dde009c43af7a9c6a13fc5d55671877f07eea5d9739241ae66ddabc1fb3af49dbec3002cfd7c29ef6d7ff353fe03aab1d39cf9ec9443f03326c207c31a639558f655402e2c654b69ee7fac1b4e444c7ffa39fb5837a43c7eac89889ff273f63dfd31620294528162617ff5fb34ab87f829e2efcc38560f93e977669c0eb99cb7fdf9406975d21a3edda12e7dec1f760778cee62c76faef716a0cf5dfe7380cfcef7b382cfcef7d802f87d1fdbd8d2bdad422eae1cc073ed885a55c3711fc63d2f8fefcbfa7dfd3220e9bff3df5b93fdf4bc0d30273f1c5fe1ef4441fddf3808026cdf083e007daecf4a51bbc477d8d571de0928b3e547e8a37a4f4105f450f41bdd8c3f4297ac849f39c1ebf09ff802a95521ea587ec505ddfa7603d4487eafaac13b8f4e0a7e4393bdd134ce77e57cf38f9bd0d27bf9793df7fffc361a5ff3e078fd1a06b9cfc6aecc55ddf7fdf9733fb3be91fe4f7df0f27bf1ffabeafa1c161f7bf3765f1bb2f9fd6b93725607d4a04e6c16e776b873839b1c8f16d1c9cd43e668c7ff5e12e7fcfc3781c8b2a0eee721f33260738350603f3d23e035cf3dcd50b4ff66b4f288aa06417ed708f0f858d68833bfc93fdc1f481c3d43d6c107089c1115c117f55dad853d425c5220f708727f1a6e53fcac2620241b0358ee3d8ca3a2e93d56ac17891a5755aefc283f5e18f2f8694074b97be5d9eead26d6cb184a1e797e2b7582ebf7ad5eb087fced59cf4555fdad8ab6fc927f166fc691aa916e29bfe388a54977404459b55cbc585037bcebf613935de3b437ef06187aa9248a9fa31eb88ffc39eb9ac3b7c2beaa89b65d4e5ce1e43d5affe4565e1cc2e553a48dd25dd2c5a675a9147e95bfcf057af1a1ffcd2e5bfd7a58dadfad6b7a0608075e68b3f7ee9a2597e8a3cc49f79cc654bb3e8d26e552bcff92ea20eff456554ff79f5ac8cbfa6b6b4d4a0b2198adf6a85e2affe55427c872deff2384f275dde136fc2d769d1adef441ee10e7599819d3d7ff5abe7449bd598e79ef9725be4c01ea94c05fad619bff5531f60fc965737951eb87bfc4c434be9bef3b6c2eca2597e953f9d7252b55af9ac416556bffa9aba4a89aa9fa28eee68afe8d1d6f0dc1454d9683bef098511b000024eb9bcb6e124cb53d1c645ac416566a85f54a60695995a88f651830a60fed4e5103d3e18e672f519d8d96128feac21e62075afd41d963f6c9dd6bb844b70f9527d1d57af565efdf7b9bc2ab3ace4b26e97b7354c37fdab1a5ff5ab0c5a51d4ac1df4c5bfa12ffece0e73eba738c7bcb36716e2bba56b501995ea6bea2abbe8140b0b0e111e59f2dc602d71fc00bb6853fa1c1bf3c906413a4bba6798754d5dedec95a883d429ae3e7cd5cf19da5d0af11a54a6d2e116b598a728be0d31cf7267da58e5165dd2ddf261c6affa17c66fc361aac7eff3c9c63cc05d83ca84aba96b509910c7612a58cb87ef03ac23fedde574c2e36e5157f1475ddae89183c3c2f0455d83cacc30b7fccc2ad39827cbb77ecc539776b77ecc2e2fdeb0b47e25d33d66979fe28dcbcaca4aa6bb355d7ee5c6e5c7af71969f79fc95afaa5fc9bec70c7e8bea6b50d9dcaa77c9a5109f36768ddb1e803be8349d9e62ec7d2af52a181f7eeff2ff31be257f0b0a89ea671ec3f05938f4a8efa31aed587df8625ebd2a9743b66ac7c86a7da84b160f96177f6e5db25a5a8718fedc43f67cd5d754552e591e35b67eb2f0085fe4b17ad58b2c5ac7ea55bfd22a3d8a25cb83ab3097e2abc41fff24e6954accabf0571a8504877afe49a575567ea575581fbe10dfe1cf5c8a5a88ff8f1afc9c4bbb5bbe8a3b3c96b64ebe7efca12e6358275be6e3a7e201a676f9dee573992e6176195f54b97c387f7cf17379ecf2e1fc51a54bece2853f43182e1ac663181f6618baa43b54fdd42588f3fcf0f1cf570967a8f2a1edc17cbae78b7ae5a9f8a5add2517d6aa6549f025379fcd58ef8a3b8fa9577d12688efe97d2af5aa952e7daf9ef5621e73e9c31e5befe2c2f2ad3c9d64d1a510df6506eaeabf6f11c51f9f258b79654c3dea5939480ebabf5fe5b95b3ead01bae7972b7f451dbee7a73ea54bd5cc2b2af258bd98597ed4213e4b4d1d3fe567f6bdfab9f22b2bada37aef4b21be553af5e0d7d410ef948ccae5900d3e8b68834f51b610ba3d53f6e17d987170d814bf0c7b3c81e797d3890faf715114e78b9a0627a7dd25efe1e3c139c9f935baa61cb2e7579ca969c874ef6f4777b43d6dc3c9cae924faab6b3ddd55e70e0d3e108417f440518513f4605667d841cf09aca0e2072ae062567f87fa3eecc0049e4f7d62b80068503b3b5657f576ad7fbbcad5ea4ebd56aed6eadca5dcd76d3df2defbd5de787673f95e5de3ac1d747b4e52d60ebaed9cdb93c26d0c335a31d2ebdf9f51619cb4317c799fbcf7be1c764ffbc6d8d7b42f8c7dc57d5df605f76595f66d417df9e52f59f6bdddbeab7d57f67df952b5efafbe4ced5b657ca9b2effba4f19ee54bd4f865caa678d2b4fcd525f9f74132bf32e9d5498fd199fd97c3a6571b439e91c7f2c5ced46bed6d3969c96d676066ed65c361e5ccd5a393f665bcc0a0f3c780e1d262b5b08cab957ba44aa9a4dc7befbd5ffabc2edb5bfb6e00c6c096b58fe32e4b8311ae5fe2a0d176d5d409b8c4b12d9e24f7381c56a66abab7de24b9ff3c1c561d64880ef06bdc82d65a6b97c0f56d95c761f60bdff42fe4297b0e137f06f1617bdb6e53a6932cbdcda507ae8e2bd6d27b99fa0eb369921748d9f41dfceca7c51943bfe461fb977269da34fcca0c74dc0d4ff46477e8d58a971dc71fffc7d638b67e7c6f3ad9aa3ae5240ec21a10a0406b2548e2b505d0e79cb37a4ef270536f527bce18f2c75630ac1773f607db2fed1e4b5c3d3dcb1f5e39cb512177dfa4a4240ddcfd52221c5faf99978d99d7cc6b66e665e365e335732d7dcdd418bc9493f55f5e24ccab7ae3d3d7cbc60c8ef7bc719c3e4faa606941a001edf9524b35ea60a5947ea540607a83eae1e8ea47e77f9fe71c47cf9bff693cf358b193b59567e6ccaef4bf8efeb4ba344b070f765f1cfb6a21012bdbaa6865240b9205c978643db22232da1132da86fde0a0ad50994d5624c34266247b223b924191dd6448b225ecfab22b644bc88252885645ac7cb1f259415a11ad96ac9c5835b1526285c4eac8aa6705440ad1ae9f4294624b294a3182fda40ca53c913274c4e808db114547181d51440bbe38c2a7054847101db1e408278e68e208258e40e2882347f41c01c411a3234643a0d510450d4dd44054839014485270218516526421c515525021454d0a278640dbf573d072f4e4f0c9f1033302f623abc998382c94f1d8644c422635221b0a082d50b4a3a126504aa090401d4115811202890b9b8d09d1d013434232265d12425c5c712b0a834224c2236111a11021105f1c6521243454eb92e8826434d88f8c474693d5644d643659910c0b19510b70d9d13a10744074b48ea7ebe98a743e9d91ee07f683747443e294e08ae082381fa32ba8886209e704d70407e40363417dd8912903613f30231c866149c082604bc084a040b9c998c86a46464f88aaabca8aac407a00ed013d0ff071c0120728e1809a03829480a4042e94a08512b250c2154aa0420951286148094d5881b4eb2f00e906da0d3d37f8c86ad54564931939f9c4c9faa34bcb8a465991ad6801450b305ac0d1026e0be8c28a2cecfa0be06201471600c4027e1640b3c2664514562cb1c2092b9ab042092b90b0c2c70a216c45bb7e4e518e51ce91ac266322b3c98a64463228b29b8c48765493d914d918d91c4d9a12b689e2309310b2b0ebdb703165e0d7b739326d8098b1396d7e260d6ad2a47cccf68a825cf24e8c4d60253a244e3e5b08dbae5f63ab29aa31aa398a21e78791e78c02d518ece72b85fd50d80f90ac061baa311c4015471059a28a64b55d5f56abb1195f5f465463317ea28a7645720b92029b0b8c19292b2b7c42c97861c570b38188cad49f52200152714211516d48c8250217ed680b18f95d340c44de8f931e0b8eb6101212121212f26e20e5b4cdad481187711f83e1cedd9eb0e189da751b846c50c2dd2a0e92b82511e431185d18430c0fe61d46ecf8d9e1b3a3c88e1e2777f0eca045419a31b7560c0f43e671f91078b397d7b9679cbd6819ff52c3175386055dec1ab8e8c2ae5f7a29d83548c64b0cd906c945dbdc6a3727b51a834154632e362542423668e18c0ce361c82eaff3cbc83c3260f819046842001b01aae8085034830a66f0996106243224e701cd1044ea6ce3c514c016260d2ee60d1f19dae626746b42652fa3262a98b1d7157c6aec7504e4301a4048268c0612af880045280214710428b29a004504289a21e83505d17d7520aac4d1d4085013126a15d518ab56f34aa592e906116ed86e54718308378a602a80f9c08060486041376c37aab851045301cc0706044372a3e846d18da21b45378a6e14c18264dca2dc6acc05690523061882e069e5ed7b21d33208de0bb92743916bd996ab487dde1d7351a66510e49e1a7b1d6528668c46925cab311a40d9e6301b8872151366c314299d7bbedc937b6ecfed19734f2e52a53eef765938ba05fd00f5747154632eb7d383331e146f4e3933717a9b79b0a82fa9529f773bf0751405a98bdbd18b8b2cecfa2a21a0d4e7dd25a8d2e956743b82e23118cff364d76f296a3172d87d105cade0d32af3b0d23044e1688b28dc6a1034c403995d7a40402d2bb52218320d254e43885b51adacacaca8742993d225f9e9f23d5d8e2d5a755ba9c9903f7e1e0c6dc6cc210475d9868b29d3850d122adb44e9c9398a38e9f31383cd0dc6afe424317a6e3d3f403e3f3d3d2b2f8a36ab17c51bbbc5fa32a232f6754423090d201b886c98e2f36ec7d110fabc4b05474328c54583a109050155d78f111fd4c9268a0d92cdcb88ca6cb8c8c2cbe88604c6508db9d46a42bbbe0bc8155463ac1e9f1f263610d100a281a4a321e412818bf63a7a6d01a24a9c0d441d110d2197085e5b8034845034844a3484381a424dd01052828610504a91aaa868d74f2972182acc350ccd98a019535d9c10da3528316b406226b18f8c9005d11535a028824697db8c145d0310d04d09508dc108aa31172117edde2730ccc83d3fcb2f3e118fc42d529e912dde4c35300599864c3cf8bc0e448da65ace30457a6e3db72e909e509968b4c584bda0a0fad4935b8dbd8e6a3063349204d5180da02187d940c48309b3618a144abc8de20dca2ad770b4926b78a2524316130a355c2105143ce52809d01444295dcaecf275f4bd8e96bc8e8e8e50fa75149ebea421b46f4e6e2717cd4991c760bc100c0faa429db30bd1142eda15a6eb75546900390d2493aca82f651e1fcd98fa364c01651339ac062d2659bf0aa5b86835564313d3758519b48f682091c2081a400eabe1c824ab91cc15bbba68d8453bb968eea261981e9b1b52750109dd60c893c86588a8490a9544120ee362305ec3a06dbab8fddc7e8cf0188c9cffc191259c3318328cd739c65b1a6dcfa35dc2f44c21dc726adce606635463396cd506a99c42b81dedfa647b5f4e2144c9f967c8c836b7282f39078d9573f48c48423725424c9e185bb6ae5a2baa56aae52da79f373b6e9c339de72cbbfcbbc48001c3a5c59a4510774697400aca1d10acfb26e946c59ba427578a269b007b0a218a25c050044be14dd213873db9953749475cbe49ba7147506e926e31b67ba24d7d524de14be5b0e83831876f7dbfc09c4edd9e6051b17058d55840497ae2b14f324a8292744b3a32c2a2e8938cf44d12164ece1d63d2cc8e8a1f4a6e926a35db594ebc4922721891939ba4264e2639e97e4291d4644ff1a6d337494ec2dbe5e9a45d02a63f9d542227e7e6d12525dd24d51c769354bb49b279ac1239139b9373dbdcdd9b2427494d929824d5926a494f3839777d2656df24d59c9cbbded56dd7a1fad409d6148b3969807042148b4c9d6c01db2fa9935db91aecd3975e11bb3e78c51cad6d3463ea83d4bd554bcba64349a85075091155577d51a4b52e64a14162120ab40320cf03c75d1f75f3b851dd0dbe156c04ae25d5ae4f9fa49ca0449bab5336228c12a98f0f18723ce076c029e10a8a5135d106c5c4c97a0214aa96e2d554eaec940f3eedfaa69aa9b632aaaefa6188aaad8c6a2c657357fd7af5ca28652b53364e0738e48a381ca484f4045815ee5d7b4abfca3eecb0025ad9260d0a7c0ff4400ff440f04b727b291f542d05b592690f8b4869297057119cbe47f938a9c4545bf93e1c7c14e5f0c308084bd4e128a44fbc1e2d31078ac3505fbfeb2e2ae39899a1a1e6ba88384e56228edb348b49a3f2f56f93c6e64e1c5cdd573d7d9b7afa2d2a1446a5502cc03725daa4b8d0bdd271350cf15f30441286b8a36e95f7f207954c674ccac3106d541e1c432e09d48885856efa841e5128b6a61245d174f50ac895a054a89bca292745362a3a65e36e00b68414ab7c8b689312dad7a27e8a3ab88dd2a88b42daf7aab48837ad7d5bf45663e3d7a74693a6eefa37d74d8f6a6ce5ebeaeb3bcd6beaeb7b1187a57cfdb1d6942d8545ca28f544cc11635f9d2a2ab28d78072d97f06677a130c01865b753b6e9aa7ffa39632bdfa16a35b6a24db5ab6b35276f80e9cbf8d58aea532afff79fbeddb953b44119edfaa6fa622e2d935d3f34a16a2545daa924b8935da6cabacb946d57270ee3be62018413da17c816b4efe584f6eaa6e22e549ca6c33eef82d65a9d92fb6a2d681ff4da99ae7bdf7fe17720d88160973fcc3aa54efcae0bbb0f3f107f8d8ba50fbf3cbda85b4c5f8a0ee2d2773a046b50994f7b9d2e39bde9895e2faa3072b7f77a15b62a82aaf8d935f684e2084feebd1f576ff73348dd9fbe628e9ddd3d58bf6ffef7e9d89f1ce5b8ea1fa4fefcf97d9fa7cbef3ff0bfbfd1e1b4fd52086a21be4bbadcb11e970a391d58f1c406c09e5058e143dbb4047b4251c56d8327cf7fcea7d833856118eafcf085a19df17d83d4aeb41b55dad87607044baa4fcfd137d1377126fa266ed674c46a323dc79db83f852fc437fde14f5fa63cd6a58d1d6a21ee758f7f3a0cf5d8a4c52f5374f9f851793a897579d29e2e2df7f6c56c37a74b4fa79ecb35a84cca49aa434cb921182d01c25a6bade77d5d47b929765c0ddb75d65ace06e59ea3dfb910af02385fec0ff0741b043c311d01385f4a6f73de9c34f47baaa71d020d3b916acf4281ebf601d6f9feeef2f7d781e287978659ecbefb29d2b7fbd335a80cfd9a7a756a6ca5c696c3b869ef10ecad4165aeb642c0dcd31458c396f501a6dd835f1fe665a3f4749735a84ca88dd064936f0426bbfe0b4c0d11d42f2a632d8f5baa41655f5e5d83cad8cfc0cee6be2c69f71de7f970be3b2e755fe4acd5e7727cd4e0f8b5d4fb79750d0d5eeb348ea681068f7133ff2ada74ef3bb3baccba35df8c937efde270d267340d384a4f96c817dd7292099e3ffe7deb5dce4926e054fda693219070573de2cdf160ce7b451bfa1c676dbc6ad87092ba0d8eda1e1cc1c91196d8e0c9dad8a5bf10df93c89e543cd902d8130a2a8436f7d45abb69dd5cd6093284667b7390ba395dd2a94b1b369c68c3fd9cdc7b1f660f8504735a484997d6c59b7247a77e5a889742bc460d2aeb347d4ed7a032e1d635a8cc7c4b3445931d803da198c2880d9e405073797e4d7d4e97437cd8e5fc72673b9dc2dde94fafb3b665adfd4e4f27afdfd1baa79cecde5e7c3d3aee6caf5340dd36d77d5fd501f6eeabe841a1eeb7cd454172b28bcd4171d21a6dee412447126912b0bf7b9ebd3f9dfc74596d9b7b9bef6f66ddb022727ff5736633eb861522f657928089e0f2fa2ce1314c84b27125cc473469608a36a70465e346ee86201786a268fad312d707c4cf3d8833e6a84e325e233ee349489f829cb449c025260ac25fe314838f893810eb1fbfc17d39a2a811f40866815f7a94279b7b93fe711865813ac7c7bdc9f4dc5f23f7477cd73c74bb44e992853745da406650586cee5136872101fb9728279b7b9087e9a4a8cb1a05d465bd6dee6bbc1ee5a0cdbdb502b3b0be1f3f889dd97d96ccfa9ee583d899d9c798a8c658dfb3b0adc6589f6621c07ecbf7b0dff29fee719fa5878c7f7f080b91935f62279b9baecf759296af718b9b38c961a21a3bd55a4eb539bba79a93dc5fa01b747dee0f0bcbcfe67ed43e9b73826b9d68f33dc8f23bac1e2d2de3efcc58b20355173766ffa92eee9dc81dd4dee4c36097dde6eea4a8c8494ee555449b0f4c21dd1f354562f5189fe559f410fba3765a7571dec461d39b38999d283b1327b9d3734f831c067e89537cc03f0555976b10f55f46952e7e307f6ff39c9d82382ffca04fa36ce4be494202bd14ddbfcfe6eb441c1a0e8d8643a31571d8f738341e27716845aac0fe9388c6b3a7788343eb718d432b82bac2e638d1e6f3c4cf1e019728dbe69efb7158396b38b4224ec2381c1acd73e937017373d93ae9204e8823d28f025ef9d5fbb3a8cef16dcfc7c93d7e8a7b3edecfae3f669c471d4f52aa1aac13b08502b6a3e8cfe22d3b42fb045c7a4f11af360bec53fa70b2b6c41cdfcea9315b350c2f3266c440ba6480890980cc8b86e9544300366ec0623303a091611c0498a1003530b8f9327d351577171c81f3a5bc49c0f4eded02997e3ed8d5af8a35a58615ac44b5daac6b6a57ebf753eca05019777b295b29f799b156a8f5ef5b28b5da5496c70e63b150ac70813667ad608f8862e8d283a14b1cea12bbe8724cd1e5d8d2e557b2d3e5cbbd25449bbadddeac40656cea39d1a6ced578d22894fba0502814ca7d6aac0e0d0db9cf90fb0cb9cf90fbec215a77bf7cedd293e42e95eebdf841daa9d47ceaead08b24ffc7d11bf23c8cc791245faf04cc194f10f9ff8380e175feff1e59cfeaea0183b6b5eaf2d7daf65417a5f5b7eae6bac555bcb1f57af646c4b15b75e3fbfeb4d7f42eeae8b41d9a3133469f7e7ecdf5e6799ee79deaadde6cd0ed45922af8bb4630c6f8f1978fbf24f197af93e7799ee7790f9eeebd0f8629e2773bca05bcfaf21a79bd425d92648a2effc71163159507ab7dc1902fdf1a4b2033fb1a718d9cb880c72faf916d2252f15079a5de4ad42e6d906d52bd222c8cbc2395bfb68be234874deff12247d60a5436b7bd856118a652a99aaaff39dc33e535bf7da63d74a35468f865952e48f5212ae3bc76effdbecae9925a9107b8af7e2a74dfde6c7fee589b1d96a255fe7b1f5251f95ee55db451d113fb2dbf7dafc6feed57fd6038c57a638075ee5f4e975edbf661f6a7882d8936758a56c8d65495fc51a15a79aa0fad34272badd29cbc4fadf652a9f4b4a7529fd3835444c07339fccf73566f0efb12e033da53c1b7d9fbff3678439ded12eeb243b3ba2aadc6eaadba9c76a3f974d30b706983ecd79b93fe5ebdd51bb6414eda6badb64641271b74b241a7b7410ef3dedf2e316483eee5ba8e13bfb4b72e3cf6ef6f69f65f6721765b6d8fa6d1b7bdfc6dfa05367d698d1ee5339c85c27ae3c1eed206855b89c366b595491387754e1c768bb0307a7204c5613796fd29e43ba0b2b9bf9fb55de35de672f5dee6d2fb7f0f04e79e01b65f3fffcecccbdfe33feb214cdc1f32abcbd357f7f8cf9ff590d7d3087e6bdf9b31b5cb2927adc64e3aee022e279316ee020d3d72a875c2eefd395f35377b2fa48d19eec2f01986c05ec0a547d69757bd574de128d806c1fdf74174ef3d1126ee13e1fe23d2bdf7dc7fdf83fb4ff7e8ded3a590faa193d704d8fe77d6ab5b1480a59039a94da9a485809e47bbce39aede6badbdb572eebbde2430dda0a8c3f31bef2fdd54d4e1e9c9fde73ba032f33dcf18eba4572460b553b310e04fff064e4f4cf5acae47fd60ffc1f4e98fc3e8115bf800d0ae4f8d38721e1cccead3100a2f68b2ebdba032faeeb4082048f19c3b9b52f207a04c00f6fc99e375e710c5ec1e7e391fd6be777afb217618f8f6530e4bd2f333dc85a2e9ad8f1c16e0dac34937e5d0f3449b5ac91c27bd048a61123ce2100cbd2f89369e07be7c92d35327e053c9be57faecf7de8ed7b6bacb36725cb4e18090bb3e770172db2beec0e19d672d8cf78573da660ed7f601c527533afd7c4fe7d87c80c152e839ccb5e78320d75d5b9d72d6debe2e7c0c7a6150af206833cb1ef7caae6cd5ee72375da72039b5412eb45965835d68730a6a835f68333e6d30346d300c6d1637288636871b348536831b3c85369736880abb6f7b5de6369852812be12ab4765cada8522d2d26abb91973bfe380cf1bb703bb3ea5612ad6c15a3a95daceda3386bdd5e9a517099c33f0aced99d7efd2dbb33eada8da9ef1a527e3e72cc74d9fce90f1a2cb71d75a8180f002a11de0262ea5010eaab11eeef2772738fce0d2a02774d98309dc252174836c5050f7340927fd7dffa03c373e3a0e0727fd7ff0c4754b797e38ccb74f4add6bb5f65e8ea3e20ddd9e893661f2c36fc769da641a31f9517bf8c0c161148a49ba67632567e2e4534a6965d1dfd9549794a5837e8e9330cecae1bb7ece0e5fdcaeaefa13c84c751d7e4ca3a01af31c36b98c47a750a47e50260e43bd36d5259099c9055c5f4e43f1e6db562bd1548806d12f70196ea754df4c18afbed49f1bc7cc6462c347c059a90482e013a1a5524ba9e57766feafaf5f2a7d8b1e327ee987b03cf83bb31208965ae6aca4438e8f4c6424c2448ff1e7136179fa2eb210c0f2f47d8c3f1f244b0fbeb73c8c8dad5b8c58f54d55b31c507af06f6879f16f00dfa489941e7c511361a2e5e78cb401b6b4e439ab648d5d2317b51168e4ee5ed2acaea585ce1616ce93234e5f23daf25749f9558aaab45264f9aab1397b596d001a9c64b2bd3ef5f183156172aacbbf669bc16fe5d27b996e9796d5afbc0bc703ccd11e64d6b772cb53f17b97209f6675a5b73d8707ee6f6610ee6fa613d86e1eec2e491e589dce61b5e4f0f0a87ef53ca95f7990955dbe25b79e25d31ff37c22b8dbeefdedc177f91ee0bbe8214c703f843ef89cee51fa961e32bff435ce2a3d4b9eb331cf1968f3dcac1c3a4dbf92c5941cbe4a463d0f7ed3f3e41c1e9e20c2473d0f0f7e1ed383cf737a1e718706525c3368f23f610f67e04b934e7aa5376d39453410020ba868826df6f3e97b938273567398e7cc033df2870e393ee8cfbf37cf5b5030b77502a6ef4345fa6aa3c444df73cf7db61a63f5e08688cf819407bb631eab3ef73bb3d277dfa3f4dd3351750fd3737a08f7a61fd27de9776625150ac10f29508db17a9cc43ffdce8cbe9787b8cbcbd42edfc36fd93409b8f4a109b89cb57222715a57f1c1771fdc7fb63fdd029e483b4c1ada3d3e8010badd0827a9932535b2518fca385bcb046c35a53949759837db76ef3bd6fdd2cf9949b3ae6621c0f4a5bfc1f4254d84891edd979e8827b4e9df50eabea4a72e69d0a6a1a6444efe5eb658e0936699b4a8593774efbda78970dffd9c859a55a20f6ad60d1e91afc4db0777c3a72991a7c9ddd56c5bc8ba47e4c449e5b81d1c3737c7715ffd28a51e678d70e9715f6b587580c5039436f7f76672df3c27cd8d614ff100a5bb63c37138341e1c1aade2d06848485e141c5a111c1a4f1424a42ebc283e1f16e05bead55eae0ba9d59ebd196329e54110fd1cbacb3e143870b2e792187441634f2894046d1eecb63e0efb2effcbcdb5f2b0b283fc40db1fa5f67736b9045cbdd20eedfbe4f63c39dab5a31dedfbb243af6d7f76e5eca5b47a44b46bbdb64b6d3fd4662f901301d55ad2a07dfd4691ec17ed4ab7373d3d6b8d06d5dab69fa9f5d9d524dadcd9c4c7df616ef77cfb1a88c73de8e5d2a39f89d3a393b6f5e2b0cb8d2d87e1d29fd3494a5f63a5b7afbd529eeea22fa4e20210a427704abd3d5d0fed59db3397d7079b00d722b0e7288071f3d9f3adf8f32d6963d70d5229e0ee41ca12a5c55204ee92d09fb9352227598e4a4d4a6fb31cb1dc6aace4612cb21c5525d09a3292b9029725a2d49c956c359632aa2e7f4f197929239c23c64e1d15e1b2444467ccfdcbbdbd2c3e33a6d3acae449477c9764b36ee449b317e8294d104f697770a0c1f14339d32a50f7349a4ee92d7ed947497587c26cdf7a72b588ac04246a5264ec238720516cafbd373c6747997884a444ebae7a5264efac3f831012e4b44dbbf6439b244a5260eeb3c098c93b4ee1a8c908645a03d5d10b2e082f620b91119d98e8a6e46537634df478d51cf03a2b29a0c08bcd4899322226c468e1801c2c88f119a119b91288c2c31e28491268c28610409233e468420c246848d8822228c88381a82888812105102228820820822882082082286186288218a6a6c86518dc5b05e911e1a44ad67889aa5341f3a84104308711ba23684134334318412432031c491218a188226c41741d482a8054114842d88224ab36d9f1ad33f350603a8c65c82264d6909876121879d9438cc34e430f1098785354a23a2b4192841693dd78ba21d2a769cd8b1ed0cf5501a10495f247191a445521649572411252de942cfaeef811e0ff878e0c703405af8d9f57b28eac1a887a31e6e3d74d103520f513440d3008f067a34e0e3451676fd1eb8e04a437cb8d9907ab0715b00f570a407207af8e981e685cd8b28bc58e285135e34e185125e20e1858f1742dc6cbbfe0eb61d8a7630dae1680ba35d5f0748274847486748e7099d9a0e131d229d263a369da21a636dc1835d5fc70998106c08f604ac0623823571b24ae14707568331f1980c8abb6a8dc96a366c781ec663678d8eca2cca284aa392688b9f2d8ad842882d80a0c21754e0820a5a50a1880a5448e167d7afc04f05802a105401a12c8276fd1f473f6e3f90244093008f047a245044023e123022811f09006501825d5f0240c08c38754b38faa1c48f227e04fdf0313232bac2880aa3288c96183961d4841190d191251cedfa0f387ac0ed0148474e42b921b5320e1c3db225b220cc98fa9fd5b2da127e861ef0f300a007043d406809464b285a826d09444bf8315274048923421c013ad273a4e8081547a238b2e48813479a38a2c4911f7aa4086aa46817d5d88b518dfd113572abb118586c92d324c78632d96ab51c26a7934a8e508e921c211c9cac3e4e46e404f1d08207153c8e260dca06643b622bc226840d08237c61042e8c6064842ba608dabf63688711402ad8c7678791146a0a9e1d3c3b7a643419906c0999904c4990ac260b82fd9041902d9932f0274d099f9a38cce430312caab196cc08598fcc47f6937384a408891192232447900081e40709cd1e218902c912244e2069028912489040e2834488238e8e6a2c868a4a8ac50038347c886068309f1b54dc70e2c610ac0706c48d2f6e7071438b1b59dcb8e206d18d25347c767d1a3e35f63536036668d787a1c1f4c0f8c01881f981310206082609982018219813ecfa3045c08c088205cd40eaf2910c483238210312320cc90024c34d062d64c842862b64a042862864582283900c4acc40daf56720c5408ba14703edfaf928df32528ea2699a47f7e822da47ffe42eecfaf90bd80fec0706044b0266040c0816e437ea539696f1b8abc27eaa8b050ea3311913590df623abb58a725136aa473210f967d2a0b22d4791976427721359898c44f6c942b48a76fd5651cba87524e391f5c87c46d80f5212182c2eb6495372e230ecb093490c8f6aac25ab62d7975121e391d1642ab19796ad5504eb8b960f0ba945d45ad272a2d5444b891612ad23ad9e161001ab3da8746b74b8b11e850acd88000000001315000028100c078422b15834cfa44df70114800f8cb65060569947418c8431839031c60000000000000000808001e0a70881b467a3d1abf5bc6c828187a33d4a1acd531578b4b006630768df63f9c0f717f1b812092398dc51ca587f014c9bb20629ca1476098142353c5a89f910b254e82009010c4d709550f0af8d84154f35482deec058f497f21c3170bb4401096c08adfff2ffe5f46a526b618dd3bfd538d72920e3b1df3c1f15724a090f9bfffeaf531d4edd1bbe4168f4faa73d9b986290ecc11886f490ccc77f3c0a63e29695b35bd932e0dfd69104d95249e959d57df62d26ea7c768459921a5ae37bb4b566edbc96d6b2efaf3fd44d418488ecec7db360b9aca48e6d2b59385f76fccd90f3e64378fb809a655b7873b74f054f5c314de3c565dcf3905f374b5d7c699027b35289d615b8c8204120a3d006258865fc96f74669b37635c76dd599525edea1ca23e874728b97603ee521033ae3ca2300f5ef98689affcea51b492bac3c782a304c6a937a333df073370bbf056c0afeec348ac6c697e7e8e008ae1d2448d3395c3e5ac76e893e72243529c94f0d7d6b70c8834ebf62d22f9c39f16ff0185d8fcb68015b620940d2d8d619ecea339bbc1283a3747fee916f275070582f7ccdf9691e9d02d03dce8a2a92370c0d5ae196db0bdb3d13b489b150014f85c922da087ca68444487074d05e560e6425d8370cee7aeb347145d1617d94620d1b0fae2920086354444fa70b54aa41e9c93c8f5b3573314a1312f7317034161d9d4538a92e0a993e7941910588f0374576978336495853d7fe3fca3bd25524fbc0c33e04a4d158f120f2c13dfa6b25b1c9c39989105ab7651b660702d2f6f3bace2dda6877638d8a5e90904b083e7112c49eae8ed2a5149ab44ba349b0bb76047f441e49e4545ec735f85b44c39879d5fd8897ad9beb545a3281c8f8b327bfa7b92ee7c3652d57caf64ff693c5fda75e2777672b051136efdef52a9023df0088f817588ad9157924499a6863433c6892dc1740d449fe41413df79a9c504321f00eaee83b1e5a006cbd6f1f83dc772292621bcfcc4b4e952b345d3b708dc76c63667fb7c24c304272771e36ba19ff60428d406353f3cbcb840a7d193d7a54e9f4593cac7d7a3605f9137970f5984e738ca5f7fe6a62b298498b97e6be27c53133e0af1b933e361b09afd9bc55e8d9534ce588df7af0758420aeccccdfb858091a98e2604143e434b0a11103b4971f388acb428fca16deceda1ba8344a75395bd57bccfa04874337b0d86f31a05eda8b127db019e45c486765c8d5ebf4fd1acf9744e299cefd42d8cb4f7aaa9de1fa13288ab868a68f885ffb8ba74cf761e33a956a9e93cc8aa26a00e4e960437664584021207e5321a860683ba24508525591b1f9f74baddd09aa3902c97ac9524fd5aa46563a5419c84dc68129cc53525d79e8a714db6574b31915ef533aaa8a38ad1260dec9fec33e6e9b415529ff27be05ed680763bc4b1428be4ad1b8cadfa307f2611598331b6d278fc106252a0ac857e0260110ce75bed6ce4c9427cb564aa63f8e84f4278a1e7a87e0f046282ae08dab7dad904b204083d2427a8d2a28028bc1762b12dff773508397ea8f75973485d5c1ed0a5ba38ccda4410086ca0e30e505f0c34f193db31b03c7473b4f4e4e372a5185d937786f4e03fbe89fca5156682665680a26402136601eb67b41043f96fe5883168fc97ab0ae019d997141aaa123179b68eb9b437373a257f8eb88e34e84d955dbcf0025a1ab547b45c91b10c334bb0f28e8a0e19e7ddebc9a447f1f47140d0d753c4615e308eddfcddc193548620cd95fc80ae787d6f7196110ea5cf4f799fda75deea863e90697ecf9dd34e6cf015c26ccc3572d8673bdc0d55966387eb19fc6917f4f31d3741fc83a26fac4551f0a16554cd3bf19317e1726ee50ba645b31c4efad700b336622bf5aa368078cbf3a9ea1f1b8a6715157ebc99239a264fc9677784120cbeaacc8ca98d7b40d1fdc3b2ca350209dbd7107eaacc9e80b060bc98005e518732eed447005967f63cbfc31c18044053d809290fe6cba9d0f85f78e8925e237ff38c08427bd5fc0d90ff02802ec04102c4db7bb1ebd22b93687a16ff3ca888e978eed9645c74d2d9b7e93c6396ece94a3294ae7f1d7b82f9032a80e1edcb5470eae271c44569a5a9c77469bb211704716f71b5e917475295309b3d12259ce945eacda66cdfdce8101e603c464ae4cab9ac5db7b847feeb1d9d0f313d7f4cb14f163c92b5bc26cbfedede0bdfcd854553aa5128a9f81d48e85139bb632baeab0ae1a1f2e03553e700bcd3afa45798f57b60ccf43ccefef82e5608933107f38b7fb70f02590ded2614e8549b2bffc6037c7062cc1196582396d9631add2f1ad4a505612ac436d25fbda26907d076a59a178630d99db0884c23c42d57847efa2d71f4f7e56f1217a0d48995bc761855da0f1279198127e12b1d95cd9117f2c83b005f947d22467ffd6b593af07b301c00bae468b7c359ef14b3fbc6aa1f98b94035adbe1b9f3d7fc58dbe9feba8a60102b0ac09e81ee3d439618ca3fd5a1001889465d44b7fcb3934b788636f49ff275c6aaedef4652062260fd00ddc511d1f19c75517c00a99b71b7818a19109c8f5489bd1f85f9ca1f2e5eaacbfe9ea7aaf1e5024cd89cd22a862499c7fc2a705570ca0f6ca029a6c0d7c0fa8a137c6578df574d57484c133e4b6a55215428234f25b10d2ce22e5533db15e16aa6b0f0036d6114c1220a080e287490053f3fa6faccb81a138f3f13ec900e251544bce091eca646a49b0cd2ab7897d459f9ca5b905157be34409a7f9db01af30879280939a802d5148f0ec3287725db75164d3df6a659f052663e1ec0d3cc45058cda7f69c88d9e5540c9125d3a6e39a059f46640eb89ead7e840f396b83e70ba6b384bb15ecc2f7439d6b12f7c08bb3b2cf07c3bf19859db006582784a379d02f276d7b2d57d108a6209a00612642da9e28144c0327af3f86dd66f8f21393762c3cad45aa4af28ad20397bd5b1ed28194df4d0fa266165f35660c8b4e2c17a4710f45a59ee8f20655ebcdeba6b7af36be8ade85eaa97bf34a82d05b2eefa26cbee0a179b5843d9bce736c185aad39cd58d6c856275d22d1b25776eedbe8369f4429c1341ee9e7bc954cfe682abf2fb73e3f7942e045d5a087d849288fad987674f35d2ed217cf90dc45596092415c9e3fdd8a84b881af29b95636dd9430c21469b307b86ac53522343c738737f365c020286189128958d0d1a3b885e00d899ce1911f56804d36d409f8a45d65145e6175b53ef0f59afa0eedcf2429f152f8db524cc6963b1d8de8443b983729428585edf977e1c2f79c38434b85202a58f6ebdbfb554537720ec006430555b1f3cf513e17a7a777fe984ff72363416adfe42ecb011f4497566d26c69321403463c85363a5f19df316033edf86a41ac4a91841ab095a53f5efa1a20cea73dccf799f4786ec97da1716e80eaf00de7bfec44a8f11d8f857a24d0e87db0623f6bab25ffb41a545ee46c36c7db991639e877b3d5456e65ad2d56730bcf25bb5dba968e9880dd52e852a8921c1604f651346d317a3ce2cac96a3779e781cc5e10efaf0e77a78e54f1a9cd3b8504a9689b6fa60edebc379c29eea9558a25082a65e87bae768dc9ba811a0f78d550fe88a5d155c634027819cd2d674ceb8e28b87ea89f086e4cdae5984cf2683e59c1aafdf0cf7b73c9b075aae050ddbc7f72ea6df5985841f1ec1a5be6978da747622d3cadd8261330402ba41ae175c56c337acc6e14a04edb90184d4a82a2ba1a8bbd8b956fa1c20523e14ffb93ddd7e7ed81ce3aa617905de2e8299ef72bf582cedfff98f870db6ae87d10f7ce13d47710bf49dedf43394db86cf54f232d3135d88fd5bf504ed81e16423fa5100aefb5e65bf87bdcea820a6b5e8af0c845b3aba0b77fecc2513bd58289ae1dd685b76e7d1b9fc2862547847b5c4136f49cdd7ffcf8bb710b0b16cf1fcd63923fef28b3a8a033af474df1b70877e5f551afb365b494659f25253cd0c3f57a103679f713f607e0398973d475ac98c18ab800ed04267b017fca2d00376b6b38da3f0b7990ea9599dc5d04642df3e221ae77d34682171d4dde75bdd34552d1e7e18f8c588dcbe6b10055d7611d21c61f3ebd8e5965f810788f6207c668fcf5922ce4aa9a05c65e1680709b2bd8cbbf7899380af856d735ecd38edaf52f4db95abb3b29e4f633e3ca8a5460428368c30a4af98392624bdcc3f6bb662074b2904c2fcc8c3e1c173312a066596c8d9fe38a6b2851d3cc328ff3393322792c5d901ded184c1d715ff645eab046c7981c1f2169d62aac81b625e8920edbe644026b3efeb3fe6a0efcf204a2655be8cbfa8f18dd2b0b32bc7769d64441388633230e487d4829e133c98a593e8e575cdb401b493fcabd60b82ee2825814d21a1f10b9403f24edb7f84e43852c340e9a2956365a5f80cbbb2861ccde6ef0849c68cd73eb935c4251a9037e447002db0391a10149a5f6af911dc71fa88c83e9defc7720823f78131b4667d3ec97096c20787334a4246e096b99b225e4647eb75b1f6233a6f673ddfbc7ce7f6ffe7bcbbff4fea155ffa5f9cff2d852158b6dbbc49015747bccecdf6cee3b5396ae39dac4551013fc023a85580853d033d78cd3543a352d41803f0cb1380c6aa8389cedd2f511efb87a948dcc9edb95f4b88a29c569ef849cb6c3cde8c8951127d144f699240529ce6cf768991484db974c353f65ab1a2de36a5f673736beba4b49cd848ec4dc8aff34eb49b3f1a588c58b903877ac680952eceda24d11d24712634615906509c3f80d346a9942fc122c1aa523db4cce0d6232d94203be4d598615f67b81f06eeaf43605d8c02f339e3a06762313f3c6772b2ac14bf37f54418d45451c62aba3bd29ebc3c625dab62446f541066aa13c9f01df7c755921c70184ec2d4b2e1c76d145e11141e4ec259240aec48e5a559bdf9cec191cdc858f1c36ac2510784d5601a9baee1041d7e09d03d8d7096f0a5a69dc2a0112d03843a4903afe2f8a2fcfee191422f69608c9d40953e266e0f4b33ece1d7dc9a1430e090feb2cb4f781ebcf64fd661846d3e3fbdbc5c22e4cfdd45d355337c3e5162302ee14517b5e239e2f74f09f1b77d45c1780f39f49da63b41b659e8d8fa3512ba5b38500b0d9aaeedfd0fa20bf2a9633a91a0b7a64add4cd97dd93cc079c094523c7b4a0c83046f77f8763e635f703013f474c8af6c6b3bf203e2236c8599d220cd3d67e58f7026104dd95ca78abb78261caebba5f63283d3d60ee5c4d954a7b0fc4102f85070bc76730cac279a429c8aba59627717cb8f9b334c64297800813fdf22c111264202838ff31b4afbd19adc3bde1ff5094dd461b35aa895f398295280796df867563a5edb8ab52bb6bacf509e297cf14966d620599921ee1de7d37ac81918dea5ad2fab0ec4c72b4fb1c694d77246f744221f1afa8db7295111cc4117683a3e5bc4c3a43c5786b08b61a659fe69a25c7a6fc36659a9d356a113aa26980ca28217a5502f30fc1e2d19196d7806452602dc2604ff65a2ea0ec1b451ae4a0ec432f8b02c284a81f25b006b8201a378f02624c657e07565abf40144ba2464f5f4fa2c6e7c0748710d6d4bac07af82483b552de69fc1d6c2a6cda6a8f153d30a6da674ab7543e5bfdd75e147f6e1d229681457b1459455b30710bd41d86b56819ededd5365858adeac1abeef6d8d1adc8d7c3c16671f8bad82d8d7b8e05576ac5713d86ea142ca911d7b83f7bcca2ad8d9927d355ac1edc75e8a9700de59ab304ba88017a873999daa3b009b47c739ab7375f5565fefb38934896c2020dd245d7193e8935f11378efda2bd43392ceb5160d364d67b7743f38c04a21b0250db05dbdf095c39d2245caaf51267058dc0fe3d551e9e969086e9133b8259bbbe6db16228f3ea9913a1ea921ad9bef0b19e9e20265aad9864c5a668ca8834e61e8120b6dffd88a995e89a4256dfb7a8ab10c7b7b966979fb9b4cf76f1032b1fed5526c921b34cb8913b173c58869c910fc5b2347a74b0f8f19fab0d3e5851de30b276c54283b933ebb82ac10dacf3c0681e9bd3d36accbb07976634864cae2cf7a243333e948ccaa67590ecbd836a9cafd30bba10a81e2c679e7078e5f65665bcc009914a283960dda614d95764f335efe1ab8924fb53a10ecd7fab8abd526ab377ab877096c63ae6134617737ac9b08e06dd6bbb121671f87f75b6bafac17f972abb75e9bedef4a85fe50b6ab76feb87fb076a16da8c0f7ee88734a0a9d48e1d856c6e9cc699565f019111d62f4b8b79fd5a1ce8d5b826499003dc9c4584024d52954a10d13aff581c6efe80b72403d40d1565c3ee171c624763016c747baad516a6a200c1ac566aa61c835b7be8031a44cd08824f8995f0fff94b9590e2deadb36381e4dbc5cf0531bdd1d0e1a84c546a16ce307398624ea39e6b56ac03cb3a542cea9b69ef1de327a1a4c96ecbe73db8862cc7144a58ed99ed0ca566427e081ff5f9235c73c16ed9e2e60a52626c373d00caea8c91d16f502c8182dbdd997526496fab3e09f0986ba8e52afa46042480508aad3bc656dc1de6dfc26510bd43296bbc92dc20fc6bb62d23aeca075000ccd713b0288030c42e250189b655fdbc18152ed6734cea332d0e74be1f7da7a0b285ff1caf45240121caed3334c76f5e749b8c7df49c36f8a364ff78a9dee85dd894177d964dc71c3485e12983afa83d18d6adbdfbcbfb3a731bb5d729ad57d40dcbf7942dbb2c802b1b283e79fe7b1115c93a26caafbc6cbbee77bc4af8bc370080f54c38fac73c06da09346eb81a3315a14871eefdd560431888cf2b16db4eb9ae350697ecebd5caf91a6e0f4e619987be0ec321f65f6fcd8f9efab4f1eba83fbf47ff9ab6303c4fcd587c0a88830ebb3809552fd446bb5435b90e899f73f2fff61e55e13c53a6ed1d2df91341461df417245fdf62cf831707cac3c11e489b19fa84ebd7790d79739c271c99ef13a5a08a95fe01785ca818c0ce775f5aec3f577e07db9618c745fa97eab76d160eb7eb83663aa1cbb8858591c5ae5a1ea102bf3e450921d674a2002be409051e6bf221652f63e18ee4281fb4ccfdd601607f87c0639ff66d214c0f9960e59733e2b08d56c57c5dcfefa5f695d2f974bdae7f06b10d3b9374cdda8d00ab52474ac88bc8fa7c6fe09df4be3b2180b9393b12cd67ba1be8c12666730fd5e92fb947ba5912d7c397a0856756aaf579194ba5b736f5460f36026acaf11087f75af166db04e0ae4c7c1fcd0d11a38f44af33c5b396b509a7cc9c0d7bdf543a9e0ef03a7fb21b80c5abb29808af162ed4e53da30dd80807fef17366cb4ca0912cd3cb8f1c403a6955b36ee35924e7ee0d6777bbd28ab6015099c2981a25fd6ccc43a6e1a31e9fc2a1154dd1005976bf5e2a257b9b7211abc1b141d237d10da037dc1b8811f1e1033f76de785b90df7ea2aa7ca7a3ea37eb7c2f4900c4fac44753d5137a08fcb3dc7ae29c0e066d80fedeb1fe6bf0c12e0e9d1dbb78c378810389407597e3ad2f31d076a51ef4036124871e1890ed3fd0daab5264263fb1b8a41e02f3f6770a3fca56ea68787ade59d1e464c9f60603f675cce11c5f1b99a623a03268385c0b7c271bfac9c7d9b5452e9aa3f66d6e97d3132f200a2a9939ef632707ce3c0c97090e273e56eb8003eea8179a2e2a49086c265d0df5c80db41f4affe3e605fdced18f065309da3a345a6f8912df4c690a40af949662b888edb08ea4822b19bbb1b35f436238f0dc33ab9db019cc93b50f5394d338659f80a58fb6c2e0964b2300262f4d2b23654a9c5990b721b4e1a4fb8b4b53573bc7379830a5fe4357462073c018fb8e9c4766604db002382cbd4748cace32c38d2ef0190e3145b00c72f4227bf14eb04d864d61d05b7037bd77fe9cf40d4ed4746714f41a2e65c698e03443651b449bd2d91f853c503bab4fb6780415533a79108019bb9b3cf2aa8a78b0da394b3d89d5d696adedd23b45511d43ecb5e0811b1ed8bc49877a3b25131efc98333f3996701185ddfcc6e118d7c1e11ad9ddb2c69da62dc2d8f7b9abbb40d1b86e32ffa43738a04d8fd720d5da8c1e47b8dfe64c6fe1befe4c4fa30f0206afd2886f785c9a6a5d4b5e16107098481649d182964c444b01ec7ec32214cd030a0ffc44c81368c3473b71e7fdad4a270b7c65b3ae835565fc7495b2908b99ff21b02caf19a86db4173eece344e11ae9d93f47f7473e7db617c875759fca40da3742c8ce98b770bc7ea073ba05ab6f09cb381946d80a651aa9b5d29bc0234cf31ea412ddf18fcdcf5ab93c27f1028a2ff964f9ba6376ebfa5bfb4b4d97fcb28e1ed2f8e657f18137b57f98da1847f34ae788b7a7b4c414a1aaca72d8b704319805ed5e53e3ca38d0dddfe805cb9e8ac882aadd1a7c43fe867acc07244a2e1db61da677af22b9ab9c1f72fcc40ed16189c185d4d51e6c31149346cfbd77d4389875ff6ff8fc788963ac8b247795dc61d9d7c8b0553fd5fdbd9f8ef707c89be07b0975f01f6ea6760b2f6485dc697aacda2075a9c5bdf7d50d2365c864ec04d0b8e7edbc64a9e3b622d04d8b98e892b33bc340bd76da2d92a53ac37abd2aeb901397d7ec663dd4553f41962fc83636d78e3c800b129b06178676ddfd562f1c6b5bb684e49d79441554433f7aebffacdee34eaca5105ef54eedde5df810c1d1c88582839c89fc5fecf8504402292859ac02d94ada9793e85327ae858f33e7e6ac8b3731573d7b17b5d7657edf5b218a136cca70e51e33e6abcefb4717821f34f9ab2614c1a248c683446636315d8fe181a4e6ecafe85e20f63ec1fbf29e8303898a12b6bfba2e36b74271e52742aaaf324199c93e89ee8fee59dac0d55060062f7774e0fcab5019f0666521048f2280a4d83991ecc7480451958145be5c95e7167d3333d5ecf4b49186bf5b47e974aff053bdfcadace732e92d31a7fb288075ed1a172fe349a2afb8aeba5eb64fbc9bf7ff9bb964307991a16695cd6f61c42ae28b9f7debe0eacd0dbd925ffc682bfd2bc48d1c0f0d24f5c7d8813579e6436448d079557366acd3e2e54cc5f9ff5d06f735fd6768348026899284ee7e7f82668d39b4cea055abe6c566088552b33f6d00f2a01c710b610cb2c5c1408e2b83d9be77a0b5fa8fdf0f5cd97861343a82360939e8211ed00c9d7309dcb3e3e5509ac42542f44d7b74cb42519d68fc9e2a0bf5e00b2272da97e40d6027c9ac1a51d24b44007e5ca63df7858924ea426bc1d28d67196484a38bba8115bcf4aa5b725b221185f339fbce77397b51d52c00b8c08938cae829651c9a43fb7eb30731bdec112132ff638031a5cb8807936de9476479550d6f6e07f8f19dbb4796e8be440462c12aaf923cd108b4246d94a4f336946ea60a4187caac1200aa30f48bae64f26530993a8fc987a1bea2f294bd1918f668b85474bb29deb7574c71dee14c79ce78073e50e73717b2ef533669db98c491bde579a0321c34c45205fc8d08fbc37628c84c272de284db8656d97c17cd010b0910802791c20a8a4304647a9cb4043a6fcc7215abd9c843597efd11de294e39c73aa639d73dfe364882d4180705c4802180d6405fafb021ffb56218299acedcded917887660610f35d0acfa86d2c23ae0ef06fe7151073b2b663da2fac1c9f38f6346d77e575aaff9caaa8cef5ae56348ad18e34ea684412b1c814dc4c1378f3b5bb13fbcf64b2b6c71e3447f1c31d3d14491423fc4ff183c0cfcc09fe078592056ad4585f2491b51d2aa691acb88c3fb9b04f9fdaf1a6a05498c43b296b3b477834cc13b835305f391cd7b9ce39dac90e3ada0972bb316f3e49b157220b65be4b384e96fbff91b59d9e843484608b7af47ef7d3c7e677b0ebff5fc904982ad7cae998cf97eff65b338e188490861872118800f20d5f8e9b43e9f65563b8812a3ff896d36e0fd2a9c9f5936bb7f2f52ffffe324da11d9ceac83a9266ea9dcbddbd7c7ac9aebb81120b92da4f3cfb0bef43d676fbcae5bc3c597d211ecd9a23dc1f8e2d5c9157faa0c48fbfa92f406ea9dc0eb554e163e7606e030682104020729168837aa5dfb090b474a7d8c4dbf3fdeb79c7383c31b04c1feb74c738e434a7b14635a337f7ff895e2a5cfeb51a087fb2960bbc49e899509dece9236bbb06c9cedfd4fa204131703ae0a75ff120b9704a3ab29fbe2f3f3d59db953c2b47c815280c4b1076934b1203c06f568fbf5f271cd3aa3b3296852e66b34b398defdb8c105556ea342c7e1d24a26c4bb8aceded191f6e55fec230a32a6b7b8bb7c1a72e67784175cced11ed209af90b9e3fd8fbdb018f2a302804250df029e9fdb5c48a656da7f5656ae743968cc341e42d2cf964158d8832b5b74ffaf58e64dd5c99ede7fdf2870ebb4bb1b8209357b0bfa6dfd3fd083c685ae9f546fe0bb2b647ce7cb8ea04784edfc6a014952180217c23fe8a40818ecbfa0007393898bb97ac3e461f61a7eef10de0e35735d59a656e25e60a58e5e57afec8fd6ad81b5fb503893d890d616d6fef0e4fc8f5e68bb73bcdba7854e7bbc53426e6285c82290ee693f63e09c21e1d0a391d5640eca07986e127d13104fe78117dfacefe32a3f83551829cb550c4165d7b23327fedc631721c723a667502c05b8484d96fa7cd69fcae5dc5f8fc29438b2275c26b679fc5f6f2e4b5d31786fc2824663f01dad7dbab73f0a7f0da83d1e6e9d58520094cb64e76886180ed07494377f4a83ee6f36c410d816a91fdb645e84ee23b4154f5b3d22b5e312b02d8ae563dfa0ed010979374053e926f2d67e54bef2296dc57f9b6992acb7f1c8538c4cf6a552eda5e8320fc2c0371fe5a5fd8320ba1f0339c809f6787a087f97acd2976d1768f2c41a9c529e89719f8795faad8a795dfd77988efd8018b7e8024f92617a5ad036d26b21bb687b10f6bbc67c8351a9e500dfa7ef325c999a6ca1f2bc7e5207f928329bed72b3d69b27af236f9f9b45744196f6a79dabb319d297489ef91d1642cb0ed707b938f6650bd424a25a4e7abb7bdb96291fb0c0df164c6ef5d964acda18583d184c8c987ee9889b23971748b6f73cb1eef24c602030da4a9e605b6f3a4aa77deff5e8fefcf1e4139df01328cb10c23a9f8ae1048e3b476b4bfbadb76f1d2e2e22d120a21bd3add5a18c2496203bd697b1f148a67416bffb7e32707309a1dbe5dbd074ffcd693695865ab9e1994218735a8b9ceb63771d54b09a00d5b3c76e4c34c752c36e676aea9282fe282e1c8d031b7c314593085a80f3d1e2c9f5fc5111525d9885b42c8e2eceb1f632f460e5a35ad4bbffe05fe5efb19c0fb548dd6b77cb6417b06fbb6073d6ee38be8ed615e3948104a8fa04ab9cdb9f1b4eb8b9286e0d7128d6b5037c17066964c434a63552db80c9c6bf80a68eff2d825ff0c001bf5f878753811d3d38887d78fe19b5d9c571c0ad67b052e3fe1f7f696adc8f47b892bd8fb6ebab99bb815379c18382c2fd3982a06b6c710f50f87d584faa0e9cb30b9509425ee04ee4d480f0c65acc58ab861b1f437f26796975cfd79f7550106afe81354779f79aea77880eba5ac4bf975ea2df94fa310be75387a2589a670e83f311ca68934bc652965c595146e682e9dd653e7c0d5c46c1ebf3bb8d4750740c89b4d16e257ae1ec38838f585f8403b2d35cc06ea27c510a410506d35bda151809e94e1ce3f3ea0f30be2026904523b5e564b8221ee396533a14019eec4924af2c3acb48293d2aeb9d01e0a15ce21adfb9c01def1690e5a19eef36935e169a7d04d4fc2cef2d3fb0f0fc9a7248bf2036f01e3b18a2ea7732432624d4d098a1f1bf4b2232c71262da4dac1d95a298747ed70ff00d77afe8e890e6ba525143b5f60bd6cda4dbe20ee04db3040d54521f37b29dbda0c11ecf13022a7b5cd24c248e9b1d14a4eb75cc94f49b2af5c737273f999639d8a19d9669fada6fd0a6954a2d1d735b6e8e61670eca128f1a67fd3fd7f9703602fc1e5208b32a02442b67edfcdb72d6549d3e0f2857bea6e12df77f4b92114a9e08a08e6c7caa6b5a7308f38a206e2f2163d8d42de92ecac71b76fe0e263e16aaff0332908274d10e5e66a15d6d24ae76e5a58b140abd2ae3e0df0e24b9c230d0e50744c047bc14185d0ce60340058ac55a25c0684747f701ce9e07851ac83281242f4708c7abaa0021bda87066d4f12f9ba6abb8ee065114f72b7c1ef80b9f687cd5610ae867138c91de22c3f92060fb9a363e4d77a3b00811f95297ca65f747283d1a3e4fe1ca698296f1b60a5a30c0228b9273e53ec506ef322e6bd7c348f923b9285538914bbc4217197a885399bb447e6772130240b194f1bb8de11a722a21714baf22760b5c2e9ee224091c7b87a74fa9f6f5edf63d0e07fd9d812aaaca46803518db06d6094b16bb27fb840d1eb5b0666ba0dbcdca74f6eb2cfeeb28583c8cd61527878b96fb1b33db06c1c1eb2e9867236c74e5af7bd38e073af6241cd2fcd8de2e5be8501c80ccf246cba85d7268c770d8f52d55473a76bab33f02f6a28e6e169ee4a94680907200f7ce00a2c39f53d0fa2b6c3c0459709080302f122d3b27c3518c8098c296c39396d0134fe23e566fa48e713e9c9d627b34bfa0303cc88e6727983cc0d31a0fdafaae83ed4e3fd31474b33a817961b63770ce4dc211904126cbc96bfcddbbc7ba4f0af2a0d054b35dd93bf3f00fcf2c9cb68adc68fb0de84eb8275606a1dc7bc65bc649a50a82720abf79da99d9e61e349846f962e5f4346e7eeb31da1e9f9f9e4cc0f67264caf1478567f36e6db3912e27651b2e6482b2bc4f3728fc264e9785cc4c63dd71bf886eef067521c84bc2163ad95646ee83e47a032a9393b6ba176f42b7c399ed0a37b17aeb60ddcd460237480065b0243a708f3e791cc7b56961a39cebddc3ca7d6295f38fea7ec73cec4963c7bd3b15a9674abe8b676fb41a50f62c0b880bab708635c5638baa83cebd2a718c578922e5afe6291f2ac97790b0c4e28fbcabaa6a15bf52027e42b97c25a7d3b362191941dd64591b3e9de6b529eaf5e03dcd0f1468cfe9d5cc7366ebd8d129beec819b3d4d52bfd03d0ec5e80b39402b0e93e2e7fc8fa67715a64dc44a79cd00b84dfbe1468344cf7e751abe88499aaab4591b20794938df53d1ec8bce69383530476812542e18a8e39bf003186503748632cd92695bca27307be8b3a759e3b3d7a77e3a7a5cedeaad99f5509c4c8733dc3e8efc2f3dc4b9ca7796ec0ecd1f78357dcdf3ee9196a7be515626b92d007f0b06bcad0422a8f5c79a42618cd7dc5624b4030dabd74293fd6685e2a882470bd6de0ab4ee462ec5277d9180d1a58105463a3edc6ebade1ca6fac9fad21fef052dd49a5caa64693fa2384635524f20c83d78e10d35c3d9a07b0acce2f1bbafb07a67309cce6ee7c41182041c11927e1139510dc232060a31a7b12758436461e177145f02146b886481dd1f230fb1c15e31be1c0f3d44d99da104b0388ad2cfdbda97696c1d8a83dda19b8ecd68217be03ffca9124e83c8e57b1914418fd0f32a277139372f064adc32ebd428c09aad13144f801b3cf9c4c1383c5378900346a5611c8a6ca3a06ac1e53804c3e1d9dc0d046a03c467b44c781d20d2505cf8800d5fde4563a7a9ea4d04aa41d3dd52027f0728e4a7387873786ece632724568eb52f4527fdb274e3b05da30cdfed4de881f25bc450ea676122cb7daa41a20d20df02bc4fdb285d34c3b29ae91619c87467cf044908bb998657f7f8a181d76e7c9c9b309498154b12c58828d4d52cafe4f20db26fa741e98de417de6ba7598fdbdf6be76d3352096664352a074f1e63dc540ddc0561280bea515b4280d8881901122880d70b67fc0ca0836cdf0194fc4bb50667ce0c480ca0e357433e9cc11ce40401b9265ad7bab48aeb4f1409a9822468cb58afda74d75b61f0856aa4e80cf146662f30603c70508d3c4422e45a941d285de9e6e171eb9fa1ea48741ff664ce084bfa8117e20054785d955eab450b436c86c9d94f03f92b437cef7564dd1f0c6eb4458bc2b7e367a74d6e2a40b06d34efc623bc8e24e441dcdfcd7f4da4189a1dc410412950448afb30331695850dec52135428242488cfbeb20057b85dd07dd6f901c9178ce642b069cbe8e75dcbb06a3ca18fe648860079dcad6e684f7da24f7f9e715c68d71021d4ffe594d620701a5ff473b4b2932ce578d35e2f6fbaa00ba01a33efccf4aaa52cf1ab068ae853ea13503c092cbc86d6c140b782605c31d0a472b856b0966acc4870c710f1c447d0e08b2f7850b790ba11204b663b293b9ddb39b15f4ebeef900cb61149ba1713d8ab60cfc0b453aba10864900fa617ef09009ac183ea8ac58466c99f7c77d13b09d9b10db55e9c12b660095b1323ade78d7cc280b27c3632493debf597ac7709fafd98958ba1ea2d13b6c4a6be4561cb32a78d40d2fc3f0572a4f505a78194e8e81248e88658aef313537939d7960be1d62c285fe1e68b3b2821e09d52068d5d8180f49deb8ba671b285e793c7e68cd3dcc427eafc03d31814705bb6c2066f14ea1f078caa6109e17002aeb69ae956d01cca06497802aed63f6502cf895981d8b968b2b8c06660c110fd87416422030d1c5f634f29c36ef205a83b696ea265295bfa7ab9404b85524e7eb0efee523a95f10a69dcc3502641a31eb8a425b2ac48de2d248d7c245a73d1b52a247ae22a46fae0aa47af1684e2018fc7cf3667f5425da0098312e7249d246514d96256c973c6f5b8af51153910b5ca1dd34cd88452520a12e205351e182ba6d43b807445152cec9c8f6a0bf3b8ca9117169b807e7336c17c82f353e22efecb86c902a1ec7bcfd257a6bd6810a1fa9b8a24514ce53ecffde6f4a48dd254468ed5f38ba590e16be163f84eabd971bfffe15a39fcfac3b5a1cf4fd1f2016c8ac30f3e208552d508fb9c204e9a23b00c1837814598e727d8e7048ecd304cfff87bc4a9f106a2525acccb752a0eea2ce2d8b0dd53499a312792f90efdf8bc2553b024fc7be1d89ac7521a32f13413ebcdac400cec8be999229eeb595969a7e2d23e634ad5385ae04488dca1f78bc97ccd45225c7092481dd8cdb604ada69e4f14a9be6dfd77dbcfb18f4325bf2dfadf79dc4ec198323edb3251a0dd95b6e31d9fc9f71a6785f856dabb42d6d856e2d9b497d09263cacfaa3b3a538d44ef9d3b2a085b77458c74b229941fa75cd90a0db18fe825cea24cf936c7ed5fe96a8cf89263a6a16338be52ec4b9e5fb07b2274acc28d0d52369ee38c1517a1e4060419fcf82c9696a96da08fad6286d9452fd4c8a3c2d9bbc3d43da4914acbe49d50f3990e97d75289934d414924a5031587d636833200015eace228559a6298399a7ae85cd48107532a08c3b72d04b34314d49f148036249331f57c634dd2532fe3962cfcb304ddc60de27b3da92276456a2500f34aab642164a2ec768c9d932b10014d7f90acb07dd34a5c99fd7a2a982914756ad6063e535295d1a3b8e9483a9dcee00e38ac183f1958f6a8073118becc7d4e0327b40e1da4009abe0bf18358410e3822dc96ae51416b636f9891f85d580292852997ef3374626cf0538791e20931b5d1d9fc022b2d6ea8ee593f4165f848fe107678c97ac5203aa93bd2db642ccdd1c26a7ca6b711e4b56be2944a0e752a267b0aa013e29074dd13652e236967c37cf7b14550d86cad3c12f9f03b2cd95ae0b464df211d6e523c2bb789327b23125b9085a4dc4bcea06ab9cee3a89fdde96ead8ed4e539e99903b2d7fdaed23ec867984a09780d354448873c24b07259755c94a66825c39955c0e1c9bacecaf2c17fb1536b8993717ad7e726f120eae92116188163d4d1e2159a085eafb354e78e3dcbc86930aa89cc26ca1c174f4e3fbb292658c379621832c7fa8a4c0b4c4f6c40442d76a87bdadddb5c2de95cf620d18ec240cda29b5fa16dca8f077021742fae4770164ad4af0f6f0fd1459902e2a021f1a81ff73ff08b4849876604fff6eb0d060a331435125a1813f1de4de3f3289df3fb28b2a32c17fbc34d4a7c114f86fb00092401244a6b1b48bfaefb28c755c9c39be43e44ab147a1928b1e053386a164726064151694208ab48009a1ca1a4fdcdd7171176f6b3b9a03e7a65e2508971a5bbf13a7cc4dc7aac3690cfdf872b3237a7398fd165bc7fde6ec0cdc309b0c82c8b9e7b81f8e391b1dfc0df47d080e311cd08a21d151ac5dfee8aa50385c942b4605eb9c46a131ce6f21c03d9f4f0ba0935ea9f508a8a211f7a0576ae9e0a3c014c363cee286acd63c03007756c016aeff343fc45c45f96ba02ac9bc0cddecc48fd89b640efeb82a45216d5720cad26fb24e1c8c9db2f223cfd96b62fc05a53abf2530b02960286290e50b2317d6cd1810177e08f1ba495336e616b520fb1a64e0fa1820672e9f3b6fe6dcc8520d0344323d0f3eddca5cd9f95a07e2cd491eab1fefe2a50b864812a49645a80facdd10a1c85f6d15e6cdec80ed207a29519e4069640e7e3ff7147266a7b037f57e325a7146e71fd07f5146eefed28ba71429a2eadae0ed0044a62d73f76ba83345a3d83c5a5da5231fb8b912dadf29be01acecf3a6b8d700e92a0d1b20a08df00e07085b7380705e0788133ef8bc459f296ca5ca5e6a3c12f8792ca80ee193817d563b79647e6ca541a71477767436f0e15a2eb4c05672453c6f46101589564369e9f8f5fbe925bc6d1fee34957a0ce50cfa1f3a492fcaede66aa7563cc178cc41f4059758d2fc19bdec8e2b831068a54a276df4f2bfa4d71fde55a36a1e962f70d151c5aecd4414c45bd3f2327a56df18d3b50428e4bb7bcd72f22de3112ecf9c99054ac58d03267a747821b580bca8a6529854359e65be81bca01e6435696788b523a1763a542d7e5ba0229bf90076334e471a93d42acafa0de680c36a09af553408973b2a68fbb73dfd99d2e3afc4566cf8bacb0c0445614d57d21c4151e0e3361085fc013e85d42d00fbd4a068298e92f84b4da3bf8d41a1ca43b24ecc524511b3314c98df928c5463a51545a0f12b8ab0f9868b8445d19fa7862757ddd4671a29de164545fcc817cd61b81172d9c365c8289a4ea3352f10f20d3a8544d6fed930780705ec53bf2034e2e82f8aebbea14419daafd237d80a91bcca3a0265077653053b3d7f958f46b1d84ca929cd36e296dddc2d28200cf698dae6a08b1027709a4e20dce1a9cfc4c853676800e5817be96e8a4462f799364355a018b01b90407997e9101fb24468780c775a20fdc2385bedaf08a563e60c3cef3aba77e74bc1a06924865cadb99488b25588e3c4a3222b55d0768ddbe4b467e0926bbfc1b312e2338202d817abfab41e59a1467cffe9b210964b7c9ed382f803d0ca39eb820b2d5e4402998ada0cc72f842327472ee2f43ad942fac38d590b3b3826b322ff62b856a70c04baa944c210211476cca6ceb25830bacb3e8a8a0643338d8a7b4d23fba946516d0ad39d10d529ad63854aa2416e648ae2eeaf5ff2a6faa54eb5b629de20d2ef1c28ea2bf2cb4b1d0295a42a12581654f8d6353a5605470aaf31b5f7f28dcc09c187be83c1fe18f31150ecf087a472a82ca95189cb149b3147b593e042271809c5421ee943263360c1dd0f11425225f1a556cc3b4447b9fd743ec61bf7774f662b5827c4e9f62fc70c12097b2aa1bd4948b506340be94b2731770405ef437425954a7c6204365cb906fad73ce36acf9c892e82bdaf6d395efa30051d1f694b3750e7818f8742429b40813299ab3c922a37894ffd5080c176b2f3b16a8b1df63fb99334c63781f3379064f1d56164f5b67b997bff650803095f41ab865fc6dd26847fc074c034dddfcfc699ee988b6facca19a1ed0b8807186b7ca78ce38fcbaf6ea6ff038db465e8878053d8b0480c2e4927042958222a85b7efd6e4aa54205b01ffad825153464d166da53429a051474a0ffd51f5a41257e98225f8cc64d34bc7610eea1cd6e9fa61b3f1557bd29a481ef06c043c37d36664d16c3f3fbc6137b430eb83202cef633b01ad7c62ba029fae0ab4507ee130289606252d80738401a3207d2c1c02be66dd8115c9fb5067185639192dbae47929bbe53007a28b64e6c4d91ca8f7fcf02caf8ae0853d96a94518bd24488ef74830e813525e9d466d29945d29155883573379595cdfdf4951e49bd113dd20af75a84d179ceebba35e621e0e5916b3cf9190d2070b692daf9a78499f65c75a3dd4f87345ed153256d7d29e1552739b6543661adb58f51e883cbf65513c3e2c1ae0cfe813e76c4546024cc78807714c50d6a5aaef12c317900e4acc0d0fcc46466c17fd8ec83e86409bb4436c84692022f3f925561326421c3fe14ea10b9a913e463c50448b78a048e176a088c1ed405d648a7ff06f660b915db773afe322e1357e1fa6fff7383449edae15bd129be92da1d28060a4622ef5d6615e984501246e7f1ea7ec60b17be7a8a7000df410c588c6348a59ef7c2815da80bad282e1deefdb928c617360be1e79127ddaccb7f772cda82c73b9f8c72cc9a6b2641014dc80e42f88d872824c3390c54c59cf8f5623dd096122713227dcba4d7fd2e2378564b71434a196439849c66c09b1669a6c0acc27e819187db47b5ebd355051a62e1ce0cf0d89632e9d5c4d632228af742e89c914904e32091db19f6fc025c3242cba8041e4613bd119a4fbcdb935eca41469411895f20661921d8c334484559125c5ada4871b2bfe1a11803a4158af66e84d16f34bc457212b3b6026fcdc4fb314850625930e00c341086ee4e14d2db124ccdd192505b4db5531fd200baee20fee18d6e0c767c10a373e01045638bfc07e1082a83e3629c3c40f7920623edb030b7f100ebb7e4cc51c118402df6d68c05ad112e3d9246936f8246bc3eac974954fe4e54d32a88195016e58f1d3ee0ddc5dbd078c2ee86eca6486542effc975d0cb031fa7119497427bb3026d82b4ef4fac46e2fc1b0d7849212a2ec14820c08d4087a88ddc61c33f083a9e7509e159fcbd66b1a4a3a6ed09aa08c7e08fe672d57b8ecc2b6729a823fc07ab80a474011b734e0bec2d86e09331f884d194ac6404327e72aaa8c4c2d14cbf5185ab8e13e16eb13212c87634d6a3172675fc89ca2622eb0b234eaac0df725b4d8c666a0d13de9e47ae451255eb0397ccca70072c6e46ad75ff7e0c824504ba7b8260f305db03d6c92e791ec4454e4b5153dababd14fce0d531ed9027b65fd169437b641f4bd9e5ca111542cf371208d0e7bdcad9856844a25a81e9a3f1bc850d86b7afcce2c17af3eaa7091997e7fc2607b222269768fb610d75edd0a51731bbd9fefc47a451bf3ba08889aecae62dbe8fb8424a309412b4ebead5b912c01f111de941227e460f8928c9d057b2d3b1baafeba8b0896a36240120f559d4880161695e33adecc6166394132c0aa2177aa4605945f0fb3faec5cb3fa1bd14a59c7bf5d56e0a1cbf7c3a77cc3eb69198c5f57c0594b6808231f9fbbe8857df892346c56f4725d00e2bdba04dc57b559e1da5c6f12c33aa7205dde2aae002a2f2ab4f5b2f4e30c8070ad5cc06c4c84c1990e584feae8a83b476b784a8731df95d349c39ca3a5041b2b77a8235b78662857987f6f7def9730c29c8030ad956758f443e329fd9d7bbe4b0b85b87b056b367bea1679ab6f53113a34c5d87f7680d7a30585b32523466be6e60bfdf7342edd94d9d94d713734e6636dfd328e5eb4a5ecc69c19056914978bf7223ed202ba7c6539de2a4c953533f11d9b00a616f44b7fd2877519e6a9d7dc379b3736812d7f753b2ad47f965a0f3812cf18447f88b7c56841d7e2974116281bf2a8002cd9d824981439c3ad129f514d94ae3f7e9cae9a54322e33b8e0a242aa8c19e7b86a19a7604cd9267c36008f2e54a8273336250d249146051c5c92ded448fa1ce69292d954b01298da7d0ca91e3a5c75d28f8b6063787c29fcb2de08da415eacfe68c2b134893df67e9f2ef28ec3e9faf6c0e937ee64a643bc43ff6258367654acd334904e779562493cf2fecd70ae43e0068f1d5c4b7a89381c74517a4c9770f9c8b3a2fa7a06a2d42b7490459e42db0f9891709a8711430d271caf3cd810be027549e7a9be0e4816facb834a8a66b58f2e3a8390c5e7d88e1f91c8adb061d4574ca987704e1d649c1567102c2f1d01e1ef8802f4b924daca1eadb8bb354cbe159f14c87286beebca0567bfde56b934addb0289bc4d7380e56c20c5dfc6e5b5857816beb7eb39963d9a6dd4ba5867e902b02feb9f11928460cb742cf81f83a0ea867c865c7b332d174521eed26e60e932612c7c4a59fa3c86b3bd8583b1bb72dabd0d0a9f80e1d5a2e91f846d1113428171d81e985245833ca00f734560a2a855e7b5ed154e1bb1850b9b1f4541d6b7dc19d50a256330f71b7f1ef48819f198bffa8c0436ae9d36d0f79307e8d1efb9334e1cf3fdca42d537f38369f59d61c7fbdae934b7dec7f1b500f4293e97d5a512029a41e1e8e5455b1c059e41a39dce83652c24410820d6aba8f6c52ea2d5f52d5078a2b7c8a81549ff363cdd11f6335d3ffc11f6fd00e4d22975e99008bed925302ac609a6b09a041a1a8c17f937f3f84a88b8a5e20f991bc7f2c44702d0c9139068ddd9bf6ac31bc787e7c4b936b9ac811fba9df1395d91b33a65357c960b9e9832367a622bfb72b50f1e11a9997faf931bcd8a33d62ef07573353d0f0c48e60ab01d6289154b3cb25920522a5f8576dbd7a1af8ca495e48326558981819950fae54f52d54be206fa687517149816c42599b622c270c31e9993d3483814e93c619be8809ab2e10ed2966ef84635ac9db9aa2caa790e322f6da00f6e43d7b63e7fc76020a268e61cab6f59bd2ad960384c83416ffa78978a21afab34280c80fe911017ed30076984c5e2388cbe99c17b31db00501d2df6a555fc5b992b1a60d9453521c0eadcf184376a9165aa789040bafa4fbb19a9146b7cbe234d0b7207c136621fd20c246fa95c825309025922b52fe9382a10baada47b886f53201498364b9180896ed244d2cdd505d682f1409365d695f92d1ae1f9b7975a2e472741c764ffed95485253d39e6c3eba11d8544d0b111c7247b42a393669972c9c03aee7ff64b411d851fca329b033dc6609b5a0f22ee017210cb64296bd2a9d6f56fe5cd78f4818e17782bea833164c0126377d4c28f8c911d5ae3780f5fa5bde6f0081aa1d6bf2e81ee17396391dcf4196a1dcb18be1bada34bad1b99322ee791139a2883574f7bc00f10729bfe59543385aaecf7c0236fb1e46e6f9fedcb9783b5f53bc3f8bcfe1cacdc4fd0531621f73db7e08a11bac0bad49e7446523442742e92963645c6e5c3213a0844a5f14f9698abdb316717ed32e11a3e420301c9c9fcd0b6a1a36728a86c62fe6cd0060c4774823e2057322067e427a5f458ea7cb0fd2cb291011cc26dde4df904863891e1652c5c78d212211d9da0b0a4424155063a88ce9eeb425bb3ba84444d1d8f0f54fad49e547952fef3e023d1d5cb4585edfd80fd5cc65f0d514660c786116033eeb4f7d59c6be90565681cfaae2edfb73423e6b8c4a0080730dce35aefa7fd6ac41651f550ee235216b7757217a08eea143f52ce9876880a67b9d197ecc511732cdd2eb089d60e8d55b75bb4a7abda36187ad9ec6616053de6c76ce654c2492b09c0fca085a90caa747dc4f6b918ab4264b98c0ac128bece8d71d19916f1d07b49fc477aebe0454c94485aab4230022bb24c5a61561ce32b36c085068b3380e6a3b9b270b39eab5461714e077e40d2692d1c28f6bff805c7705d496c1b9115284c356fce6425cf3822477502f2942a1de70009473a1c50df0e092bc7fab923c06c1bfcf8490db11702c0f71328b1cb3a16ae8b8302e888ebf3136edb11bc662092322e5434d00758f7c7d8931275363446123e0aeb41dabb95f8b4ac2203f78ed8fb79bc254d07cbcfd080b8908152befac56e3ecbf63790628e0530c2abf1237a84ffd1449d216cacac77f7361ee55239aa366c42d81855120c05fb820002e600bc08caf381cae5db18dcc1199aa04f66e0fed980c4f06be559f1889a6309a89ae1dcbeda17acdd7011b9a3e09f6eeb652594882b8dca1a65bd511dcba8f3252bc71803c79d7839709b9208a049e7491c621eac1945dd898ca9e0ccd283641b5c16d3e359c85c78c0a67312f7461f9ea9db57578f2149995a8f81780a8476c6a5d7cb3cdf80ecb1bf8a3de1d3dab18e64b90f9342ca3d8698f7bbf7e141d7eb548c089774bc594f49da86b953a83644df7b16b7124b8f4d215fc6c21068cc579846bf6e4c024435aa44c7f48e256deffda586f5c0771f49591191081d5dc221b037a4fe7d3bb9b16b417f3c2b7763d0c80eae69f0b243d2a9d388cfe26c7c4959d75a784f75182d41db2ee589a16488fbb06c4f7df5a6b95e854abb9e41ea978ba28a035a9b448b29e458277ea6d0c124c58dc473db3c5705a51a297a6b4507647d329914870cf5270cf4da953fe8ec0e6dca309a8828571b5dda40beb265a030c4a2b862670ac1bd480534c61edc692179aa46e8e61162ea208ebb1288fe0fdf7554388d055ba3e90c0bc66f311eeb1204ff602cd9379444c8b7cdfb8fccfe80f847f4ef0c34a305fd261a60ff8b7345b773800c3ad4084c47ac2680045a415298afbd7684f2102fd411c03060575ba471c9854a4a50ddf4696d700efa6b91c0773ede68b8e3e8aedd2958acc0df3cf005015d279df10aaf581f3596364e6b8b077e8e0756b9da0a221bf5eb526ba88c0341fbb11d5a6252802ad9f88cea1b588e8790a260c6bfe1c2a64b698e42d433d3e762628ed0a20873fa4ba8e8baf92afd6d0b62a7b4bb5c9cca3d488857ea42ab83dbb58fb9faaae866440b420f1df189962788d0d2ed9c052e6c16993f38d2f2e49c41449c4c0f8ab02ee8ae8501b5664fc93a7582a7caa2f5b3728fb07184780444823bed55e25cfbf15d42eec92056d6b30a04d061b3b5bb554b05d4db3dfa3691e0eeb08788047a287341faa5b83bd3de6508f4c4106462df3107105f8910c1ed0143bdf7825ee42f57bae72e5d8f3df17448505ff015eaa905103b022afa08dc7a86ff0c060947f75002e3578ddc3ba41a78d16bf98bd7e3d0844a94fb24b2e123129542f8c2d1fa7a4959fb2b567eaa370e7ea12ef4945d88147adbdc3530d67918077b78a230d6b9905a52eeab835833d21283027103def2d82dd3593c2479cab2b730d26ebf1a18aad9220fa41f681330eda45f6ab2881157451d8a42a5f8c8508ed2ee08c1eaebac40e488eab824945395ce77dc5c510e94e9ddcf2519c786c141a9ef7afd49577f5626ecf1a2f609b06f626899aa3a5ada6d61b970c36c3310461e8cc584f6128fd73289ead2ac2f8c58944ee6dee36b1552ab0b134cf8a79d149b862a6d8b5e4bde29d3ff97448cf59c50055d01523365e1f70c98c0a4a7046f564571cc6466f9b5d352c6a980e671db2b9e4a806f070cb20885ff819b4090d75607daf0647b134ff07502dfc3916729e1abf49af5356418c62813f02cf718daed1e3fac2981b3e3a5cd20bbf4b061e7ebf075670332bf905de2f296a755709d1485a99c02ce54f85061becc5b1ee3afb571ad3107ec56ab042b573121cfe99d26cc5425dd74498bf82d529b836cf932e81d36798cdfbe76f77fad0d87d0541339423f105dee00fb77560060ef0207dc0a523b304c9b1bd85325204a7cee64c3aff95d86684c7ee4f2d292a394e06acc90017daa06979a6a70c0b00ae4afa6fe180b10a447fa15969dd63a9777e2b383fb915ccc29e97019ac3cee0f417ea76090ae371b68e8f13cad67b43beecd3f7aecca6d5d9cdb05c109e066560f52047babc49fd99cf2406ad47a68ffebff0f5cc3432f83eb0ec044afd2bc63900bcb9a765abb7a96d27a02f0a51b533b9e0d6fa779076afc4541e2718bec61e2b020f5c94d07f9e65b5cf12be67b61538dee5f9d1889e3ef11f5ca2f421f589b8db5e57b8d8f43bb9238abecb38ae41870411ccfee300744a67eb509dbcc7dd0e5cd01ffd9f26819c7d74f332b0b7c5ae9887ac7fed43e8001f689219411800439003d371c0e86c63fe0d14f1661b5dee0fd824dbaf8381f764802bb26e0fa924b492b52a6aa352af651464604229245e34fd50120074e558cea98742935e18ec33d8567847e86f798d09f57c7647e22fc181df3d557f5e6642df8700fe4f0184c4311f100909b80231449fa1e5601aa6fbd50bf4f0ae3a73c64757e0e26746246bf90cd9e8cbcb44c31b0da0aee412a24e4ab324cf7fc545b0b1b55811db780736a24a552e6e59902d55569eaa85266a0f725cf68a54cc526ecfcd0076b7a101a302d3241b2451f9e42a556439a865729f3a518206199667ff1e5f2a33d9a43ba8f0aef71d15f34f6e066a27740bebe0b6d96245ed09a5b12f079864c9957b90804b5ced68e55d145b8e13764cad40b764857e1589f2195e87d54a30ac295c73c6233c7d710d0270912f657a93b8210c994752775a54fcb58cabcf9923dd2c949b6f7d720e5773775682a5070068f22282e1569273370d3bdcf1ae2936d1a3fa9827579bd3c9a2f04c7399b6d2b237f5a6858b368e3f41e2763cabf12990acbb1e88ffae5a040725b6da9b071c628253b94de858173152f2fc7350ec779bc0605e49333ac2b506ab84b7c4d3fc206f6d5e5ab11a7084c87ae73b2fe565300dc33f414e1bc7526a73940b08cc198f88b6a8626c07903343a174dc3795606472d1a777f0bf07933d8866d51ce611d8e82b99097a7db388373da22ba4138990c3162cdb5d9c7fd65080635af4ddffe8ec74de5650b443fc04d235de398108f84ec434f9ab58b53808c9f613ff2d4568103eeac16051c11c8d24b7ae21718bde8da3f74bb294cde90ee792a6a7a747ec5dc237c0151bc712b4d3fb8f0bcf3891d9f92e17c01e1d2830e894643d74f63f980d8188ceaa5e4205495cb081c20784250038d3bb29c3425f52d6a97bf6f3a1eb06c29d29056958d5c343d029f2a11191ec1b176608ce3d586c277566360ac177f27d53f8b110274b224034304a228511a8a0c0507761e8408108dea77389e921b6da1ff5495f0de1437a52cc54c5017694bbd5dee122923eb0f9158a79fa98e813888d5d93a1cf96280970dc0a0a23281fd668869474c666d8d0ee563aeb1cfc18bb7093b036041aa5fdd6d58e06c6646b9134f0f83f30696ce043476c30abbbde4078626ff4d16f791c98312435ac92e9e67f582d508fee173200669e8122850004f71201d2a7c87569b6535193ca9b3a7f544db6406b4e4790137647fcde63ff8b9fb0583c54b24264e2cf3d43161d3c89e3af38abcc4e2f1679db3d304b1686bf8a18dca7d8c497fe59ba5099f7ff7422d38818fe70af94851c20e493496635ae81d09a697b5c8d284c1a9a4b18292b2c92ad4f9c4491ee9e0adedd875e7387ed496140a782b383c1840d2f0de731464d9a783fac7fd7ea1fcc8280145bb7fe48cc72f01b3d8d6dc08141cf80b2949a227be67c058a9567a7a1adb76a93f04ecaac0152c1ca73b08d4845c05ebb7b2e0288198cc183f86b1722b3d134b407aa450a5216a945c6c72b144b7fcd4da7ae3374aebb5a359f12e5cee8e50a09955356adb322f3297cc530a495bc32bf212d7077cae954bf2efac123b5dec6b9bf82f4c77ce8663844b69deae29b05a6304b4b4706ada9faccc78828406b46eae43c87a0bfbca7df4f4e0870e89c9c546fede4973871e6230ff0eea6fc2e2937e3c1f78225cce18583c1d9eb796eb0e425f1b305dcbea84999e3c6c929e87df2d98e457397849937783c414ccedb489f71990775515ad7e96a9eafdf57846a4006020d570fbcc060190cb2a9603490f7f1a7a22246e334fc0090ea2cfcc97aa15e5c69ba095b341b9d3f0ad57ab2d8e8bcf20380093684e008cc6466f616fc2967c726184a995896c5dd5e4302658359b81385bb7732a0fd6acb3b6b505c71b0d9c5e0dfd0faac54bad7df93ff4221842d1aa94cdf7660263c6f305ee8cc19bfcb744424305dc9297ed737d245c2be8f2480c7f6955e19a77216f402b5613ff511b4a21763f1249c36b605eb5778ea349068a10923807f23519d45ed1b236bc3c923074c041030ab64106b4f7c5687348b7870c737b709261994cdb4d84707063c49bd4f1116b3f4ebda165f49635a2d7978e0c42483b1b220aa7cfff5e41bb15eaec5e61b1267d80715befd1643e678e42ea100fa1b708dfcf1958fcb5319aff9f49aebef4fe9c1aef604180e5e747fa4f36a547ff1950c135eeacb4fb60204663696eef9c49f79de64e3c41557f150dc4c08efa2bbb8fde72257c08f1bb3053b9e1b98d6639faddf3704b810495fcf12dc028801aa66e496c92f6ac6354f90f8cecd7ba21f347657613a0d48104a9e04ac4805e5f6bfc773e4c4bd2cd16acaf3ab40813d3c3d22fa4ea6fa841258ab38747a2bdc85776c9172a501b51f657fce9afacc869103f67f2d5ac69aa1c66ca1eb6274a1d633bfe6ade41e92a1a4254a797480ea0410c1875dcd614a908610a19a5ef9822c785eafa899ec5ccd9f1806461b3dea290a1343874add7906641fae086b3a8c54e7338aabc21e9bd8dbc687ad960712231a09afd822431ef22914fe6e38e4c605a8ca27df0c87c80af5deb95d0ef8d74854d0187e703d78f7cc5b1c0eec3461c5ebb7df45e0b03af0ed95edab7267255a0e38243b2da4581e2b8423e2b0cf4280a018fa4d19f43b3289a84c159c1233e88863af2ae4ac769a2063d72bdbee7ffc4683a10e4133a1a083b0456220775a55fc75fa899ab9578fcea21c3a44f15587543a3d1fd9dbb9be5db7e9144097222ce80b83602c5cbe362faf6aba03b5fede54308a5089928451bda0d40b3d8650ac9612a777db0d2dd29a475e051e92c21ed981002e82c69b2da55996986c6bef7a51dfadc144a2fa0ca7ec66f157146c95f1a80737db0f6c8bea9c2416d2fb657b08254f5dc0109f01245b2363a379af36a45cc8b6af51a6190b6c91077a494d0c2075928e45f8b2ac2fc008e03e92d0b04bbd1a03a9023051496897d862ca20f5e20baa935d523c8cbdcc3e140ea10a5226405099ad7337cb259b889653b93d09400412f70858d8a2d0c83c49402fc06098f371cec59db15525fa8f393945884f6ccbd7f9102afcc8f5e506290f8fb6924c42ffc7d43f968e35f34d03e804891b6465786711317e937646dd713a9faaf4fad7772a1406f7f609c9c11c3c46270500d3d3dae5ea87519679c4170290d79a398448c754af81ee7d5254281c42e6d8a7e84d7fcf40384659054e6a4469ed50057a214503e54afa1d0ff0e7e9718baf3e5e38fdce03095d2a54fb96cc67c52dc76af646dae82260be931ccc738574574c33f694ad2913cb06c46dffdafe2f1c2c8bcff5d75c7859f9f2e8d4d13f196ca8dfea59dc025b5f54a6dd2af9bc1e947e70cff92e28c229c7b4902d09330b3e7ca56ce136bc275a74f9fce9c7d5c27b49635912c980d62a089d89df3f48984a433dcabccfffd564f087d8e211151c5e12240c0f6886c101d298c5f6b245b120b173fc1e6cf9033dfe02d380d2be0dda3ef6b7975d1f094bf15740a99c8d7d85edff0f8fbbb0a976daf26488d4738097af008caa1efeb73be0d8ac9918571ed46308457c0a715586cd3460fe4170b95b14d65ff301593977ca26aac07fd1f7553a6dc7c70046231c6a4111930ced2132c7afff8c8be894a2ba91ea3d587b51bf5d23135a9c9fda0f0fd4f9b00971a2c13b1cda6e28b0f7f413d96369bfbddb1cac6f458e4f50413a9f1d7005aa403684ebc5f93232f6721eedc5245e479e873a6566ff37e77c64b4d3651f4e6632a782e1e126b9233d4ea21cda3caea00434700f533bde2fd006c56142e3d89e28e287562a9c71087b4179a45e149a7f38a42b7e01551d61b6b276a7d059e5ed19523c7ecfa5516a957f065f355c2781d588702507cf25ca59ec25b00debb9273c37280aeae1aeacc6bd69375b99c59ce8232fee2a8f2400b16c1f43d63a6031a5298fbcff898e50d89e379938136695f7d4e4cfdd2a4fcf1c0cbafd2735265b4336254786071932b6c5ea307b7e79a942fce175a23fa14076f571b78118eba68c3470b5e0152ad10e63a776ea291f88af7cee6cf36f7df711a4362f5af6cb2da4cee6ef0dc609e17e83a9e72191fa2d01f05d5b4631058e888ed2b658c899195b67afd8d1184fa0284d9793ca80e4c83b5b381c5021ace9fc7f649fd5128d8bad98093ac5142fa4bc7e5c64e72c11fb446ad6ccf434512788b5b865253208af09805b9490b0dce994391499ef59137c74441ad2674cdc4f4508786e71deefb84e6013e5018cdd00c39cc8fdb34afe89417b8bdf52857c2ab662cb268640754834bcb3c431175bd2142cbb9400b4a16c1fffac3e5d1441334904dec405f42deb570d289200910e016db5aa8d0b52966cefa938f73cb1037594e59be8b3e06baf45a0e7bf10caa859ed5c00c7326f2b02b271fa319763e0cb4bdeb1176c178f68e05896629d392e9317dad8feb048edc311a9be884832904ad7407bc93e2e177650a3da2d3c50121b8f07023323ddcf1e08d26210e49a2ffd495aa4fd097f888ee94431aadeb9d1bbded2f58d18b7a4ee3131dff61af35799d51008163e64231546fa7063fc53a157b03a84e77110daf1df47a706ccc5dc24144159975c98dbafc1266996f3063f2c59ebc6a533fd11246d559447a68a7aaec8b1a3eb1deed1f54c953e09570591fe35ffa7647741b4be5e6524f4a496ee949826dd1634da260aa9db903eb2072394183b461146c277e28cbf0a97d87b062fe79b3f32f54ff597431d2d7413581d7e2814ed1d051cff5b3ed40b8cb520002220d8b700e38e8b0d3b56bd84749468f67e0e92e0715d1f3967d72d9c85897acb5a3e9c00025b4dc65ce9b00b494549e8b9d27c368203cbf25b7fc91d101e68110b2427cf09a7086d7e4fdeb1d3c29a21279601dde1dc2bde00e0361db00ade5ffc06512ae0717e4aa4638e1f9ecdead50acc50985fa710ccfb242e84b63a0cad425ab8fb64988c9752f95c0be7596a28b8c3ccb5da481d40e1bf27092bc97e485441ce580c1ea9223c64de455adb91ebe0fd6ece20c24c2da87855c18cda28ce64edb35ad1a052fd3888c6939d38055d660ab254fe8abfc60d6e5f370e01281b2f1c6418ba0560c5f6a405b9a330679f92c1a8cfcb4434192c34427d16c8d3cb57049d410dba41f1958355a606748f6ed2c6e44797a64c2c919f17f2658ff198926f037f96c75c94810740a0fb4095d5f16985eaf14e429ac72421d42d31c96c45c1a722d3eef757bfb58e827a3c2986401f42efaf5f52525cf4d76929e933bb2fc50d66cd07b9d740610bbbafab81d222f3a7989ef86498658c325bd482dadde4e94b559e6850d4ca99ae1f490c5fde56553acc466c1a21398628de882d775204fd99d855c717a3c82c7524df24b70034a126ced070bbe51a16441e24a20d60797d96887ae7ae88c2e578f24710353f018c7976f110ee9b4041e75c18b363ff8d90e5dc0c0e6a033ca61fa487fdcec2b4b6b0b184db9bdd8dd55e5f808afc64d68e13b1c41f8f9d6d3f32e060e0a9857233e9784663e50c225edc86b54880a766ca53c7c379c0b7ab1b91905a101fc4c1d9970d10aea4ae46aa681e63a77a01e4e2b9ad925f4d0e556379b3559ee6be247522d57ea89207fba5c0acc0de5591667550fbc827adec689bcfe31a752e708aacfd7466678154be9006cbd2c53b0b15e39485a62560c4fe689bd47efecda9f997bdcf3bd3225e0b1e6167ee141821b8073a09007793aa9598ca4c39ab24f76b348a1e42d022b8f45b9f599018be85d1deeaf2e0b3ca9dfc15261cc58df4f5c1b5ed6d49dae35c69d76b9a4fcedadc03707e1dc22065b72f816145156e65a750fc686996d23081a09e28623063020ba5eebfb345acb2bf574cbc0c0cc25e6c523c98b923fd6495201e5b7a35de1d5cb2f739b84927d57dd7c1075df714d29254312b23680a1b7caa0f4e37e6be8e21adabc05df7ca013a71b9810fd1377e0d9d103a2205f93d82a6e1b9fba702e874fcfe6f6bb758e54c6377d49b11f5f3bb5b2ccb14ff7f28426cf19e9311060f873f8cc088d3b54f01752a0f4b0a8535cd9898ed558995887d17ae4e110be1fd7c271eb0352514a74fb6c6fd97e828ba95d26345a4ecb6ad3dc4a63fd79c21eac4848c15d6c53a8884c28d46851ce8d6a874c90042c2c0e3ad069ab484fa1616612dee5382f63a3425d67f4636aad3952bf4836763a7a689ab1bb70b2616f19a253fc0dce0ac85f768ef87078dc5056f90874f655bb626b7c58827c10dbc7fd6f6c547763964f5442521d763da4432636a12a76d0325a6da8da5ab90b674a967143378b7c8eca5d45a472ca18fe2895ab4a9c02feff6236f8092e5a316bdd994085721a3cbe32413477d93942e046a68874741b9b093abd2fb1fea6623cedad715a37af2623734332369719c6102ce3c9c68f2e3678f7d948f7bd99e45ae2e6242f0eb988e57aa14d23f918a5b291bec6345f777868a7fdf742e18674d75a0bb14d25bcd2f4ac75ea0ff396edfa8378eb466a48c1a925c949398ffc7ea3f121bf9341d7f4af53ead359caf0e04b523d9586bf04a4157515af341b3f12bd8b0ca38260fd051af124cca78b841f8c1eab2690b602ee9f0662b83fd26b9bc10120b90007434f2ebd026e76eae21184e949252a9ef9ef6079a3094fd2dff5d5d36e760839d6b91c012397e459b05e8a4fe878247a68b5bd2a0d5d069a855a8f644fbab2c84d87eedbdc1cc8526db5aec9b4508f3895d95595c92f61738dfa4414a91e29a677e74afa9333b80f9f507653587f2d420419d580e8aa4d6dad4d90c1624a082bb13ea123d1505499899d96df7a2e0e143bcc4e5989d0d35280b8190bffb19f77bc5dbb2a6b4fdb3843cb7fa9d4c071be64f6351b549e4b4c9bc57b18a52a69a85498154a33025f40770898eb87378c359e537cd7967f0d028649eebb3074e479dde4e15a78fa1228848271420e3482ad318835c9a36ff8cf44307da0714dc852206c8a79a310840d8bad6b8996e55350d8ce92aa55b8c16e42d79db66f18d34fd90dead6f7709d355181cfd523580efea29de139bf38b696734e104e395a75f5b7ea24c583649409a8017e55dc85ad4df67845c239a1559a8ad18f55bd6d731e6ff9d52a2ef6c59a4d43613e44fe225ba9c51c78035f2e18a1b447e2650e4202f2a43c45cdca381b4810c8855a3b6c132b97b6a99e861fb39c371334744b84d14ceb074b60b0fcba3d760b7dcaff3aa8446b1add0a631487bef70b8e960f05fb981472b09db7331bc8ca39fa09f1081609c28d31b90cbc4d1b7b03677f5ac3bc58ad890ba3d9f4dc8079839d20c2644c5b1508a312f77432d7e38248b0892f92a61a313e3c325ce81a901aa279502abe0c4aca3b8d2be25cb4db5efc02a19414ef3bb30a542589277cd09901a8651c9292f4bbcad392ff0a1ae0e00b53ed1e8d01968c0c1b506f22388826aab7d58c515fbdd7f76fd672a9d32ba3ec1178e4b83fdd1ff2f3ed26f750a0a459266dd8f7c01c43ddbe2b0fa78437d268a9eeb4f9f145054be3d60a725f1e9fa806c5bb34d622a4dad83ef1240f87f8f4ed787a9187b4e54febc7a36bc208f208f5728c1193522738a50369d48f748c9638e7eedac9e348d838840934df3a51b0469636d9d2f87597597a09b02d48f95c45cc094f3b7f7f4aa4a0bf0f4c737248e063ee6ee98eb024160a3f98d679533d8da691e1bc08ada1dcce9a7c055f7dc6a35b85c035e71110416fad9601300a661d2648f554aad97efa8e9670b828eb481662f53aeb47a840f36bed4e0db5c3fdfaf93d4ff553b79d322663d1e3c2e2b239decb7e87f6e0c5274dca15c529ecfafb2e81ddb3460b3de00287639d021e9ae2505a0dd8089264106e1130d7d8f487faea10b02b1664ae4f97eb2ead614d0f1e903fc4287b08401062cde5e29a6aef25ee4d79d617c99dae02e8b74006d751472df05a8a621f9c7385301cb5cb1e9060d237f2f0e14aec8cfa3fe58e7b614e5e55e94fd7224e60e20fc7306eadff42523b314428ac89f9ac470e267924241d5f2bd53a555703b7e1cedd9e94f179cd20e81660818c53b19f8a85417820be0bb56be3486876dc031efe0288c43409499dd0300d42e9ab01445e14cff06f29f0ae769e8b80accdb61c5445b61d8948921eeeac0793062b4797ddf4a60e048aa2a0c0d8fb3c06d8fce89d8db9cb489a268da5553d06e39d19f142125631b22c3a57d94d04c56f67d90946c0581d1a967790192aaa11ad17c4782ef99ba5884b7836ba779b76d7503890c41caef3e65c2554e44fdb3e1b1bcaa97e5777da891611500b371fe419802c9902622ee3425bd2dd2d842cce7ecabaaff6cf1b24ae5fcf34c0bc7fd5135a4346f444d4d28a45c4342c68702749b45e28cfdaa581592e52207df1cf2bef71772baaa5e6aa35519fd790577ebd1dc3406ff946d2891240bb42914a59f860eb6027f22625d4dccb78bba6e1000c54df72b54f9f270ccfcbf941a375559356c8ad87842c414907d7dd32240966d1b98dd24c4d13aeb8b4efdb47803b7d1af27d02a4ff723f0c4e83fae28c9c965e3891b646072ec204ab53c99a6e34fc11ab2ac597120d6a1f375aa042122af34f4fb3542d02056153da456827f6386554f98fa0ac1ccd4403e4688175049e837812abf0d4099c749eb03260fd23a2d1b37c9b523eae1595e1eca45b34c6e184717b140d226bf1ab6248abbaa970d876d7bec2aee608c94bc64f71ddbd83e36af0ab1350d3cd788befff31086319a5300bc8e5c6a9a57ea21af04ac80496f168a3382a31bb41c7e9806d3268ce5694c54ac12cca2392fc6b459dfd5cb05088b9fa9e97bfe539509191d26257b43ddf7483ebff74cf62e1e0dc8e1c58232131df1059491c9d8a0f83434664098d765e97a6392e27a72d7bda8b72d7ab4a33c322662859e076f2ab7fc74f673e888ab55d7e125dfd1c66a85bb9677d4acc8acd8e990ca8a018154c0829868d5a303844b9fdd8989b782ae702f98d82884250e027b42cc6a3e02836c5cf1e69f3e6defa2392d3670264401b5fb5ca0779c7521c049a5387bf33db33aa80e5255c154c2caa1ff4dc91740d8cc8cf9dd57754077abb15e6806376a3864b1cf652e2f4c5fe905b0b3d8c920d4b61c33dfeffa2a17e391325a50b706fad5e3c05ec35ea81ae10bf65eb8f72cc455ec4eada646983e6f1fa49c8ffa12cb12d2144142de049436156a0332f60d796501b6b785141db3e0af71cea3e8d659e355e7c41dd34419f00c7846a46bcad2e9235fe985f4b3e5dbece13ec37645c053a09df19282234a9469ff5dce0088edc48779e2df0df885800079666d6e3031830b2bb0e283453196fdd338bc5008ec88a7f0b84cc8815058eab6a46009aadb8c96254887b8a568cc6cf0d1ac6fea7da3f52b33d64e2e54a13af9bc2dc3d0babd0d231514404b6f7ce61af64e747ccf982e8ded730bb7fe2cba2cee788b913595392e161cd059c44daea7b98d7c438f2b69b7a56e6df6515dcabb45f608f28f1848a56a45b6ab55d2e10acbf223af0391106116c2ee50540608cd52ebdd6c836e4b6dc894fb32a540f6b851e64a4f30279e7d24c35d808d8057118252d3803c729ef3fa0a8429929c4205d6e394259c99d3ad3c727d84c87a3e86c0e7c04bf92ef8c520e9c56cb3cd42144431d38906537464d4104f4270ab729893b3ca04cf8275a4a5690c10ecf25859097804bd41b690a8b51f17d08ba2dc60cdb4bbf5b0cc2664d39f4b4257a263cb3210c01cd73811ec46926ba8930d9d03659b8c5646118512d6daaeed61bd0cab75ba70e8725c59278cae923044542e021fa5139841b285f5c85831917e8c0be978d2b1432804eec9056b8732118bb145a74f121086feb284da36e8346296145df21204a3768c07dee45ab04cfa330d49d47d74c82a3773369d652bb4014f036ddddc9affb36f502bf75f5cbe5e60d59a0cbad40575972a4df46517f74d56b2489f92a9c782762a362708846a93258c8c81213d017317399ada812fae07b1884f143c71d9f1b04a3343e786041284d79cb231aae341b49a055d334ff5647a68041f11575bcdb2ca6b019471c5325a47a9fbc47786b8287f98df40c030bc47882b29b9f202f567f1d3bc4c73a29e616d88b15d01c78141a73f181983cea48d78966a7b93463342a5a61cf097eab7df94788a81d1397a566aa34b20c51e6e87a772d10a6ca0fe65168705a1f677286373ad8c16112e29643104f7d83d5d8fb97a33d04a94971b759c5528acf93fa30c5d38e90734428b9ee418384864e2dc50a5713159e30127338b8798ae5224b672716849045b72d868a45939a7fba3280223d370559b8d58899856344c8bc6725c5123e9f1f05273dc42da07789c5475e02e79c87d63a6e7f1ad95e1df4825f5037780a2bc0ca485e1d5a46267f2bc20301adc9787086e5d66e142c294277ed022a2683ba42ec891122e0cd34e6561b48a7b9f5b93a5f2b65a2c35ff0e51242c78df4281c8c5ff206d07d1463a474dbaa5049328c1c875f7b9645c189cb9bc2ed368f99306564e7cefb5e5f539696db48304fb7beb7ac3071521c98a84db92017c86419ea7f4cfbaa801985afd4348b28fbdfecd4d7cc2231a6e718a91367160a939154ef35694ffa39f1827284c3178dbf2a1fff88f9c3b75e675a9dd0f4a2fe9982e5354807b6790cc0d37c1f557c6ef754c16a3b004bff6d3468279b44f83fa326fef3acd7d2300360ba535c892de4d64317fb2b8c6d03dfe80bb890ab395401d55a2856bbbdefc1210f62b7e561798cf592db6111e2901163870cd01e53620a89a53a417ce9450448e72fb3b9e84940021331771621c380b968e21d3399002b091aad1b9fd0ea7e03daaa5a6fe99569b1675d4f27ff5959b7313783bf08095a8189e191b5043fba491e04c39d2de7495d1a909846e070e01c4d253e8821a6e00f9da2aa53f413300e4533940d48bb710184a4785a1c43ca19058dcdab9d47e6a00a09b05dfa44b91af4592ec5792999766c72050387829e2dbb116d6734720280305880f08f4d2b3110dfd96113c1c71f63a40b5cd0d352029f4dc71d31183fcec637a002324f902ad45ff701b52781f90c5220ba007711c96834ab47002eb955f32cf51228d046272013d33666ca269002eb6609767d3fbced64c85bc3c22925f07a562d7eca0c2392c0d420e387249c613d3fb5351da45baa933b658b2eb24093e12c26eb204d34ff65263bd4064fdba05c5e4d895bb19c9a8a9e910e67ba2e983a301839bdac8303616b341c3b4b7a079939b25b07b39927e8792c20c0a223e8847221ce0ebe3a6b1e5e9640154ee1d341f70b8c8de0c4c66822d3f230f847af9f17af04c3cc5bce84080ce10304480e478193e3c3310c6f7c8ef2d1f0692e1b7deec0a3ffb3bc5be56e3bd2e21286aa4dc82480d7188d36aab1c82470d2003b10f0a24eb0e6cc43f0e2e790adf362588e14ed74f6e8b2013431765fbdbbd0d11cbf87f140015f57ddf160330f895122331ba4c35498d5b85abbd1b8b3683ea1f79630233ba1738e01d2d223abd51b39c4bdfe4c9aeb1c755664afd37fddf82008f8b81011c5cafaaffbc9db8b61e33fa1359517b0e8e4232238bd379bbf95a6f6fe1c0ae2b7911e8b2db5321572c22e1dad2e665b7df296b3be162d4be236263b8b013274f93e0772300c5c80d3fa6a21d359087bedbb78edd059bc8bf5ec78330e302f8aed4b9dc27c0f2503ebadb7ef6a92c9e00461d512c92c035d6a91cd7f814fc6816856139ebcb0a47881d436aab3c7f890bd26835343d421eb40b4fd2e18f8fb066996d5ebfebb25af4d877046ab1cc4e1fe8d874f25117b6d8da7f848f2bdb5b75a9c80a00fec3431a658660bf9518807046c91f9828d74d425843e47eb72e486bf9d36763ac91a73fee184e1cb7bec648032f76f47dcf77bdfb22f60afdbb98429edadaefe1bc3791652cb2c45d9b4d0f4d3c1340118bbbb68ae9a155c25b9b54ba3bacaccff16c0e02e100e65531a79afcd05b18031230a233dd0c3f4f2a468d0622484336a53abf44a7a367fe35e9af10fab57a8ea262c00428ebee21741c1c6c478439b082fa90b9d645f3c6168cb2651ea3993cd65b313402c1ab83407fcb1b2fab7cf657ecdafcc3f78a62bb9bbf56fe50e0ecf0f5739655abbaf2d703d3763aec70d9cfd08ae39a57eb6aa50ae90d148c49bf12cf485931a3f9b987cab3d4680950fb1df2bd5e524dc096e40daf809d9070778e40f58358fe96038188f2e487640671414641979627c9b87c71e75b552acc4aecef58b6334615e73b78de947090d0de8f8fd715fc5f733f85628fdd62b3b9afe02cdc01de7724e2cf773bca983831aad70d605a01e8a66eb2477066552d200a09053add0935a3209850b673d36018aed37ce34927f2e5d5beb11a5e69b876151d5390d027a2c429179bdc10e5722188adc61e069d7932eb6695bd6facd84cea0494c23bc03dfcff1b13498739b4a3e045b3abc7ede145b9f5efc108cab321d394d689c9acd2c513581fddfb2603d6ba03c6e326aa8504381258c4053ba97c7727e94df4993508fbb7f858df1286622c08b182adb60886df0e426088316ef7e29071cbdc5141fcf7d648b4b19a12002ce7494dfbca80c549361daa7f4857b390dff18088020de0364eba779131458e6801ac98a6dd72bc3d180e6102231c39315077ab68babd54a935643e30d9ec08de9fd96119ccdcd1cda34ea5314245f442a7223e02d364233504ff8192826c7c66377fd1298201dd869b08011a1a60a1e191f7013e83c75e5d3b80f06ce2d8538bcf4994a86bbba8d55517ef881de4809db20070948044ffa0c9b4a65a9c33e0f1db59d7ce774457130cb41b7134d8b578730ace55d9936de6ae9ebf6194d921ce8d1ce2f401278da31b3bdace9a938042e94e88e268a7887427e0c550b8db01958e1182a467d8ea83412020f4bf268b4f7691835f45759536c9dd612728aa00cdbbc695fdb4d711953a833e9e562cfe55ea0b5f694efa94d7493a62cd2c65ea5fe02289ea85b6431def9a968ce15e6f7830310bc4442a1813e82eb1398a1c3a88b9874f4dad0c6066c319d76bbbd360aae7c8178968442988ad3829f0c792e01647205fe49c4050d53209cd5a6394d79b0242dd804ce01d276bc3ce787ed78f98c6ffe87ef78f9b43d4e449a866d1242db22500a202b008a464d5d4b158fb9f7cda2bd01585f73e346279b702138ec3ffee3f7ff6ea49b888890901d460df30c800ca77be3e6dec099b1d91139b0d98d9b1b37ee8836c17b3f672fa114d188a43263e57d471fc18223e48f2872c44cd3418f704196af286dc90d3cb423ec1257847c760b7ac8f2c618299625b2ac9165912c4bc5b26658d68a65b158567591e0c6cd43b9cbdf08a34f55967fa1693a4c59fe06ce8d26f4d98d9cf75adefb7bf73dfc1e10efb904f15e2fcc5dc1ceb7f7ff92a39fbd4427595e22aeb02f334dc7bbfc8b8448c83595e5b31b3759be3d350d877cfbc0f6b39a7aa24bf2d513b7872c2fb790657392041cb26cb72a24f64e341cf2493c94c4ee967c029a0e7a79d966b349596d230c87eab84e0d7744955b29d75a2f075fb01e2ecb3b77e772d3d19a60312ebe347cd3e1f20b8c48b03d77bc97174c891724727489fe6460d21a7c31ce477938e93b9272d3c605bc6c34a3a0422935009385d0cfaaa5eca6d4da24721fa6bd26fa54b9f75e73773d0426cbbff4ee0422a13617282149445f8cb8b922e2e11f8a62188a847e5e09dc200dc7049ce99de228224c7e6bc8306d1b184ddc17f607f6443b71178a889b9327fa04ff1a19f18987fa4199386152d9fcc97b4f7a0e36a33494a6e1a04ee8184c64ad75c2faea9c5c32a1c4a1d8e1198cfb96babbe7ad983426ed06489768e6172f09857f491e4aa65e278143e497e4a1a293e8c494618ae6c84bd164eb0d8bf1c27ab56ee66c1c1663b925f9b92dbaf4b07cdd1ab9be6b5ed5ad204d415a24933173e00c034e2770e6cc26d6b46865496b76faf07ab2bd505a1e3992df254e7525193375e4a1261549f283583e79629d7cd235bfffa861d24b962c49a5e413f9043a2f6e32182f27a77370709c83ed60b76c822373baf4603bd838320c39068e655972499e4adee5986cc12a79a85e62d3d5e91d8a62d1b84002899e2122eb999ee9197aa4924f82fcc882a59959cc2c6654d54a55b154158daaaa51552d55f5aaba55e59c9286c36921a9912e3de7856b3b5abac636f97d8b2e3dc985d4a2a64b4f2a8938b016cedc16945a5bf320ecf7e003e33551f2bc80f80a1a4963d14008e1f478b0183c715c4d5f1ad90a77457e3d9f01e993151367a6afb0661abe2154327120ac9d8b3e13e5d62e1deae5c4a663c9a3b894ff1046376eae8897f350b2c6bd9c9a9cea897364d42b3b9cfc1a5340f612115ef29ee01c51e1e68aa8701adfd9863bdde0661ec4c8eff3e67d2a51929374e955f3736a31b39859ccce82ce2c66cd3c328fc0fe3c82a44beddabddd74f2c74389ac4535305c5e4f2cad39e784b00afb859d99a9763db9aeeb7ac47a3c2cfa8a43e8d1a24def5b70e16a6e606bac68c4668dc98fc69cabc132fc54a9aa1955b552552c5545a3aa6a54554b55bdaae412c9a4e1e8a24bcfa3647ae6bccec1b77312a74daf3b3f1ad886833d623111e5f53264034b1f6b60dbca6aa5ac2978456224a4b71cc248469d8875e29288612422105e89783641c124dc33167ed63378ce797d5c3c5767d15a9b42439170909705d2fb4267617f489cc6c4c623e391d1b0e3b11f14502845e2d0c0b6fc46224885e82308a4a9689adc338d09901f7d823d3d5565abea5355285505aaaa5055a55495a8aa2cab9a9252aab2c242235e355afe0a5b135349ab59cd5ab97eb72116d3c7e60d169dbbd48f6963e6b5aada8d336a45cfc08e2e7a4669268a54552e35d2a67719945e53d12d949ed24b29a614084a5d280d825221285532baa26abea107c2ca73b312e4caba2dc30b3fabdba2a8a125ae6713278c18033a5f591008295da40c424a21a41c42ca929426296d4819d338d264741ae9d3c4322d5fd1a7d658ac74a7aaaad9b73a86f5bcd895692b1576a93cdf5030e07a36f10cf45c0d938138beeac11a79a895beca497fa7345409fd3bb5693aea5fe3152646171d880a2689b0c7733d1eecf100e1f1b8783c41783c42783c1e8f1e2ce961b8fad1986031b10a9b351a2abae4e87c261b7ddd20020700e455c44ba5a75d752e4c448c85e119ec855d912e615892643ca1340f356fe68d6dd8af61a75f6f76c55cb8dd6c168102c2dc380341ee5ff3a64f0d876c4d8d5b727b412feca78b50715304e706e57a5eb0f30d74354da35c1b21ddf59f176cd634d9bd3927d95d24baa48fae0a90d155b01474f4c680884ec25250236f1a27886ee33122351e3d034157e86a23d879d1353fc34618d8eab09af4a1e84bc9ed05a48f4890241a5d910a9bd94cbada434995d6646477f7a44b9dcaee0c58e4960530920c20b72c98618c4c695cce1a93c6e474a96031f3ce4151ee9ae802eb562eb8070bff4962abf71f26533d9b22cf09595866bb168d2e3df24c4ec9e5acbc588c24a34bef0e0eefb393df2116496c601a5e0169d04c6f44bae8fd86df162ccded2643230da5f27738f3502af8089c812db0f3310576e2f409477e9f4d1a45adb86618f9519ac88213acde72823c5153011b4e91225457c17914a14811acabe03c461584a5caba130c9cd964e63cd3a3f86dd1a59ee9525331efb3e9ee9e4fc98c85df2286d2ac60de52eed31695b516c6d59b9b4e8b962b4a1357605f67434879be4bf9bde18f86f38425c6ba18c0015746fe8055e1c02ba38c6cef79fd559f1bf678ec0dadcced97131929bb3b8464850aec852c9e4baf1658534100e457abd7fdea2ecff73a1037161a355a7e3110b0062a8135b0c6b55cf348fe115360b9a0c56b58ef6837869d38a333496cbf6be4eafaea8be54eae43506a2d8cafa38bb3d354787212db031eed477729ff2862b39ee9237d723de36a7aa671e652b9a9e8b6a2675060fb2c9f6f0b25f10476a547e562029b4130f27b4c590846a34ab049d331e12ffccb614a155f356f7e61e76b4d1e22bb2a9ebcfad24cbb72ce72ae3a77398739d771cee39c754e49d36139ab5e58c414c045174d53b4088a5ad1a6f71c39e6cdbc694a336f5c72362fa5c17a54d9c254092ca37ae66a1cced1a5f7d24ed30cad8484766a3aa2fce846983c87e36c9ae6c833ddf434c3eb9992c45ad0927326e76c3877c339229cc3e11c009c2bc239da5cb8aaa215b528b62a2afa516705a5d6924838b32f16ed598170c9c909c3c983514e5a592e415c708cfc0ec7804f201930ca492babceccd0233434a520ae547eaf8d6612a6942a29e1c03fd88cd2a0609ee9f54ccb265d2ac99c86e35dc98f8712512b0c20fa750b8bfc4edbd5330f35c2d48a8a4e4ca11f9e12258d4ae2d9341dcea666d22ddaf428cd1b915e519a9ec971e18c92ac1d91488e2a21c3661227bf7903dbcd49e7ace6b4e6ac735e73627376a06b898373337b0a71f591a66388abba42eb421b4346c215a0746548b82a6cdbb86cdc90ed068637705c45bcb4112c34829de162601b0ae04aa5522ae0d15e0370b53ec9dc4e457eaf3017ec837d024424c50a04481f7d8449b0d2277dc6496f3c4440462b10109160a53192958bae32c20d67ce26df9e6923de5566dcbe2b4ab8546ed8a8d1ddaf3eadf870ef3b71201f6cbfa666c6d5d4bcc03d58f795eb94b411ef33ee139bcd9b774aad25916e1a13a8079b3d2528b98d2ec24df320203a0933794a9a8e9b463d2e9cc0120acd642f0f76bea651f699943c2c58580770b53e7d5c1596477bd571b58622bdb926341409370d7e98e4b290dfeb1197fbc28272bbabc2f6290da53d43697a86a6547aa1345fd8876a3df34cee0b0b211e60e68c648712bd660cdbf2e11d50f41ddac1668e0a58070b714562c70f4b49f625240a50aa06b8827d7587c91ca0c2b04f06b89c58f8f91eb4892e954a1989e894c608a5314313989e7928f9e4592d9a86ceebb4704b68381c139ce9fd392ccce4e7a4906aaea64b4f6cf6ba86d474c0bf518d1c5ae91dab79a6772ba7922e6cdb70749be4f04a9f56ea4b02383e584a00ac4767aa05e502188f545bbbd7f04528e39497b6ab68e731fdaaba6b9baa7a09f2b4a2aa5c7786afee56892ba2fb0993d25023975ed125d7997b5fe7e69cf40a2b2016e3684d633d689cc37bc030142e673d43b5c8fa4829532bae38d2a7c6322d63918466d127882718357d5a7178dee48943b5e8137c698bfcfec24586c95de46799e4d77836e99217f91dd2c1dea0288d83134e37a44f5d5ff7e3a25194a64d6fe287c5b0546447d3a73607fb1838d3279a3e359a8722ed8858189de37e3cd2bc9960e0341df30055b5a3aa7255f1a82a04545502aa2aa6aae6d5a39a377daaf27b63db39cf3a21d99372f27bcd57cb34b7942113db875474f3e88a0097807a80abf5e9500e36c80f2edaf450aea64def642419e34818469ad080e1bcc85c0d4b566231d14ecd82566aa7a6a295b0188a7b260e3df3848c3e410424a0af9877f5908957123eb00528003ed4a3caed46b5c7d5fa34446e974b1e6a84258e944bdcbc559ed3d52019551056990bca27223c6fe493f71e588f5286343143ba449b388744f47993c43d386ffa8812343dd370c041d6643dd3272b3fa9a44f99ab3e2f95488705eb6af290ea0e693759d6482d6c905f43519a669a41ebe720a6618eed77ce1a132bfad4f87a83cd280da5a146e81836a34df27bad10c2aee8e14ab7452f92d1dd4522aa19e11a12e99fb775dfba6b676124a4ef68476a7a1d13c74597de085bd8a6666953bb4f920b49e672565e068b89104a48fb0e91abbb264e7e37a6dc2fe57923c23fdebcc9efbd3112d1abdb3f44981ae9999ea1346eb0f4d6fbf2ee42310426c3ccc289fbca4c69faf4e6ab5b654ad3cfe815f9bdce16512bbaf44edf45b875cfd074cf0461dc9cf716456e070f9d74698acc819961730dbf4bd34119d40c3ac99e0feed44fca519e82d04129473990148c7220210cfa7b870dad0c8c546231d6e7f3c93e79be52faf9b6d97e5e3f34c3cfccf02333fcc40c3f30c3cfcbf0d3197e3e1fdb899f0eb638ebb7cbeb58e73b5ecb7db5ef78f5f68879deba3d5e0f97679ed8c60bbaf0934b00a7f07404a33a622b67bd27a5947256ec72d7e58acaf6fdb0aec8c980f03abc62224ec4e9d321cc515d6e60bcdc7e3c144c9720fcc23629638cf1b9f7feee0e6d90360202b9c2ddc056afffd12719a4c262e490c624d74311f3902bf23b122f39609a0eebed59b3e122c3acd5783398ebe45e50224c961d10a813238afdd81b651c025355ae72315eca18fbf0c413711e6a84e9933e55345dea433b553368154d3583764239fc8f56baede98fbdef7248acac68614a382950410aedc1d914d97379b3579365c471cf2e23dda195e0a913a7c3de55344fa8933e5533f40eed54b920e5c63734137ce8463a34133c7df25015cd33cdf429e274c905ed14d9d04af04faecc910d2dbea19de4d0ecb5ffbc5e58cc0737eb3cd7c55cd13cd4ed8539eef0be1c715e76b773c481d7e5f88686a283cd4eda00ad19917db22b406b03c8525a43a2b50064a32a67e7f31ddd33a7dcd0cc1fdcea8f3e7d6eede1df913ea57c7e60ed3f4779b5ec3b163bf8a885b51fcf7d97718c2ce661c8abc931edd25cf1908729d147d04206f9fd72eeaee3b11f946b620aa8d84212fabb486ae80669133c86c5846e078b698c24f497870ae188037172e85656b4a971457304081f71629346e56813bcc32f42b0cef62d1633dfeb760efee853670824c83fb9351cef7c585d3f18a5bc19cdcfe1e8bcb0ef5d1dc12aa80d27c7bb1af9ca58eee499ebddf5e44aaf1999604f8a49724cf250eff1f1d1a649390e20c7935cfa743dfe256b5d2c79a6d879b5ac4562c943b978701699e4d8c1585c02734997e5538897ed366f1faa3fe7679e7fe91311795ec6c35a5959d1f993961071a88deb8e4bb04e01350da5bda04287d47a9e3d8a87fa1c5a9086ac05914828bf2d953e983659df4ec44bd3d10dbb63b7ec9eddb4bbeab6debbb0985885cd6875da27ecf0976d3a2ecb7a9625ead4abea582b4cd87b0ec4620f6ecf04a43d0ccf3071f6fe2e275f4ded8a894b2291c49b227eb7a17ed6e5703039eef2de7b33ce42587a839e52a8d2db8f97a3b3fb8db2686d554e528eb73f6ffcc3e6ab75d9f97a5df3ca19e51de6230099763ca545ea55701ed60c9767633e0290fb34d2cb5bd9902ba25fafa805a06fdd510b409f3aec93c4d257987689e2f91c7c0229574f73818d36847fce461e49a5522f48a5a8b0030a15c2808623a9548a0a2331f73fa9249186861552476c17624a071e2b2cb9e2482a95b2028b8e19602a954ac9a006b3b1a18193542ad5829927d4dcbfb8b0049c542a7503185ca1563187974aa55236f082b5c4492a9572010cc65055610b39681c1a6598b94f8b3049a55237b0703eb93f6974d036a9542a0675b0725fa6e10c35a9540a0730e8034aee4723b823a954aa8a544a072f8842b349a55230782a45032cf7df1568b8f0924aa568587cd0ee3dd295a75c0ca18607f4482a45044fee3b9295589272c4d7116ccb5fa0213f9cd13ebc1a75f1a041ca28c8630692daaae7e970ee79baa64287a29ddc3a0137a6e1e8e14cfd2683f5c21011c2081fdec1038b4496487fae4f41de833cd4fb752c8294b4b586699762a392877439880f5eed06f4ea937b0f3a289e43c1eb1e8d4927c620d7f30acd603d874ae0a5d91dbbeb19460e0e54d24f7afe8c3c9a9c076377913def256df38cb85b871192f1c449f5289fcb227bee923c71a797d00cd67972e73b1a763c0fd2a7ce3d1ecf3b2ec9d5b97b078b71f0419ee53b383459db1c694c56228e105aa089355877f86e9d31d7614375eeba31ec14ed16505b6bad41f8427aa8ae0a1b7aa5ec7266a37355d876712517f81285fa5e0906891c1d6271b9bbad07117dc70293df4bc6d10916025162619036bd6320b1099d638cf114d8d1cde561210d070fb5f61cacb34d945c0d9a64223d82da5a43554fcbc1f6df934c327c3f98e11a6a6ddd2e5d6a53b40b81a336c639fb2481f48f2efd784672317677c462dc1b0e225ea9f44a0d87126c3fbb2edb2897ee183b4608a19d7758bcc3e0e39df55d2e24540551b38987aa70c9724740ec60e08a782fe1341c07a183584c4761ab9daf14c57ba656c4fb6b5938c093121eac7bb031306a7371a1ecbeb08e446a94f59e9f8247bc959f07223fe925265597d8b6297103522f2ba6cff4acfb449bfa6f97220d81689809a3c2b471e4e70c89f69418f6e3416d2e5953da9cebfe6c9cc1641a773963e599cdf0f20dfb5164e5335e6f56420f32baca83902efa8e6e0f458222009971d149b08257ec553ebacae30cbc62f14a0833a1f2d181a86020273d3eba2660b89b68456d47e368de4d8752fb485929df583f58279a8e10e9f0a5bcd9672f7b7046b2231922a24d5dea12cacd9ee190e1535a293f79b35206753604c61255e1aec8d05dd156348ae4b06814a4b9a1b90e8c36c18faecb7926e724c35b32ac05854c1bbd8dee25ba34549214e5a144873f89646d8321eb49095d74619bdec77a5242f60af5e93ad2695c177006b6dd64185123875279175d8257b98e499be01219d8ccd194dc122b1a35a2111da67c14baa8434668f660536ee6926498f3a4866e3b30fad472131786938861975a762e42c180f9ac31c5afd5466b0c6ce8f00e8c3ea51cdec1bf5d7b5c1f0a1ff399ed12fc75ec290ffd55b9af36f52b94fec7fedd941b72385d82eea64bf08e0f36e3802b83267b56024556e5ccdd746e7665074f81262cd0a78865da9027fa14459fde65598f19b4d7d21873506a2d297bee76333be5021b5fdd3d7337ef158dd0c186b0134f2fbc3a62192d64691a1a7f6830bff71e0c4cbb2dc48073b0b04bd4f5a8fdda9709cc014cf4fbbb0d368410c2c6d2c94090bd808179a8f6de7b190c4c2edd392786936bce83608e75d9f118618411461881023f168e1093a9c75ea105baf43ee4ad4b15a59442940fb4f7dcac8171750909384676efdc0c3ac9f133270c27d8a5500c7b4127108af17213e95a955c3fb9be6a28586bc5d91018280614c31511df1a894a99ddc8af8ae18a70508c8fbbb4509b17eeb258c89b850e6f06ed9567f5f68852aa6559b6c2998bb11e6232f19dd76e5228745920ad5737d6dde9f674dbee4f374a37a8fb9adff13e97d7d643f76993ebe77bf5ddb57627a6319c83c5da86b63e45eaa3d6fa785dbfea65bce8a6604bd45ce36bc7633f28a050ca3531051c3a2d728c31f1a1b49505f93a23848e84a250bec1c1caf604240191c8b2f450cd921eaa3a34a2ad5bd10bd350f4f2a587a238242dce98bc2654f7eadab12b72c38d2dd1391b41a631b55b37ec7e0d477b077072cb2d0d73b099cdf78924d8cc79e1bce8779be852c321a336972ae59c73cebe670b36b3b36163890d1f6c071b9c9dab4bf1b155d5e7935bd54cf12d362e1ae581857777340f9523017deac727211fb1c788023d7a5e59f5ad0d80f2eb187d28100e32038372e1cca54a9f8ab31ca51c9b93dca60ab3c4898174293e01378976448b2ec5f7a48caee6081735cf1d79d1d94c2f54f9e6923dc75799063bdf9e44a69f373a21a4c4c6f85871a84b71c76ba7775ce423d9c5a0ea5bc5493c13bc6589c815fec24696ec7ad6ebd717d37040f9a48b1b3d9091fb0916b93191ce310d07acaede4188072dc816e6706357c34eeb7412d070c0777d57bc5174091eba226d82af6e6b231c8cc2a51ad578342a3284772209583d6b4c3ad8023cd7c41410e58eead6e1ef2767c7837db9e1e80c71d6ca90610b4386cf3e19666d0b193eab76341c100fb65fdd4b42fcc4be060f6d327be5c619b6830c10bbcb249a8e1d34b16b155248582a6260539f2459fe93e4a13e97ffd47c943c14bc7c0a4ed3214496ff2cf930f980a1e9b81e9f7d6cb2bc4ab2fc55726d2e158270d27494649beec12f58eb5556378318d87991c0cecf574d8792a6a33d634932446649928d8c64f97683c823911c6c265292e571b23ca20b9bddb851826aefc64d9fdcc3829d6f1088b7971804e03ff8c6cd33c9db7b03e799e4bb0b7607d61d918ab14b1a0ef9a8039b5923d626b1461eea48d3815ddef6a0e9b86e8d5825464c54b4495a81753cf683020ab918d8771bb9e3b11f14502825429767cd933eb50032ca2e69933c932c6f9091a5a59f8922413104539ea8d62e75ff83020aa5884601f854154a5581aa2a5455295525aaaa515591aaaa73dd00e306ce43350f696fdcdc7842442acbcfeb4c60496085c849351d2e593e5e61df33219670c0e57a68bd3a2663adb0346847d82554d0f4c9b241967f3664dd7a423b5a4d9fc427562423cbb74c491348145849b2ecceabc32ed186a36fc1d08e10e1d825b60bcba4e9f088d62086bb74ee21b1902acf1147bc0a1fa0f3ec084fd5f18870446b70b9eab48bc5214b396469e12c3ec9f2d551d7af6384932c6f84131d499a0e20b2bc114f8c20e394b2deabef5def61ef75def3bc67dffbbcd7a44fd6017044ea88d40d30baa6e66baa032e6d6a223a87128b826953bf7374a9e3b31cd9aaef434a25c519125dea1c6ec773c1816488b15d6369d4859fa8d825674438f128b59644ca4839879463e9735f90329213d563ce1098157779877b54b97549ced9172483fdd128d23341d465aabc630cdb8650f786b931d815e9449f503e4ef4c9e6273ec442082b9cd1aa72a24f9dec449f3027fa746527fa542f27fa6439d1a7aaa29d151f569e97b28f5842a88d001cb4cb4106219d8797103e560d07c450c615d887a9a8cdc57a198be70a3d00d8ec9a82662c19ba9042195e19668833faebc25fafd4b23e3fb0efd6219c9044ab3ba40421ccee5ed802a6c8f1115342a50b372821c747dc289a6d5c55c43a7ec13a78d1492f2983a79803e8eaf0e860b350cfce5cfcc431461ed82ce4e69c4d87a42c3d1f49218aab8c237691072ecef950975842241e58961a67cb59e871c09591e5437d9a54c6df151f99cb795eb7029b59377169cef9ec668c320290bed2e75c734d763221390e7935d9a54b13af5c2047bc323f459e18aeb8fcf2c42b3ee66481bd393a16d82c42d9fe4e146aab9eab4f5070c09591699cf882514e5a59ae666ae5aac6055cd7c414b0a39d1716bea8865c1dd6c395723774ce3584a5dcddb2837d0865aaa8ae41d72d979a0e97dddb3927b5554fa94ff2aa2cd2ed33b96ace39e79c73ce39e79c53b6883deaa49c539620bbfb26bceff0bdf79eebeee79eebcecde11e9d9f6c0a85dada43d5be55e5d6a796524a49a594525659610ab0acaa03fbaff13cbd3b4aa594324bb8c4bb584cc3c3f8daa64b4f4a299f7c70e5ddc5b81e9d7b66017aa91c8d60b3a6c94df3e071a0fb01a869dc11ec6e6211ec7be6ae9046220d5c91e91c448a27ba4b10a34be77ed0a08e520481524a29a594524a29a5944b9604699068849bc912f94ecd85569225221a25c4e549edd44ba40481e4619678457e8a2aef8a0f494497e0cae8ca2c04e82e41bc76340f4579c0b791917c10f22e5c0822e5618651360823a85d92081a22b994faf4f08b854142a6e55aeb859d0f217b3921dd965bebbd3ebaa1c76b74833494a12c59b26c9144e41c594a29702591deb01189749823ba14fd113162c9a3d19547870d3f7aeb13fd68f427c299cba325447874e56824e5e87274bfa3fb3ae97e70e6f2e77aadd7557fbd6b263dd2e8dd0554e1ecc52588b7e0ec42e09370662fc240fc3570466b08812dce4841bc717617dcda44e328d0333abda3d7eef7208c51ca3929b502937159f4d6a766d1cee8580a3ac933c12a0b0b8a019d7c2616f3a181d1008c11d11f2613b3c8fa3dc4646016390003cd64828f98cccba257794d4c0603ad04df3d682578297a9d988c130d07bc08f7918603be464a69a697e6e6b008043be7ccf4ceeca494b9638cf9c1ab82106668bdf732bd2f4779d5eecef47696580fd145f2a1eb32bd1cb5155d8217859a3012a44fa1211e63463a10cf4a390e71619be481b852882b25bda307e95355e5108692a64fa3775240a08a06ce4a19a40202bdbacbdb123bedb1b437436549cb61cb3b2d4f69394bcb575a3ea3e52a2d12c3b7e4d13fb78dae953b97e5aedc19377bc9592f8102dea6c93e2d46fad47212ce86c0c0c31c28c610accbd75bae1a7776e53aa5c76a47e534ce92f2eabd2b93787fa9f4f202fa086749e46cf42130192404f4969f8f10080402812490df3309e41108e482813491412050088f0e0a921f0804ca92c8ef59127994723dbe2b437f387b1d70524a29a5e8a08bae0fd1abbb95818f5ea2fb81960c7af69169d15d612288bb1c4810b83d930b067241ac47940dbe7611db86e3bde100dd1eae0cd05fa8454545be86ca6ba8a8a40c8101e12130b97399f216969882e10a0d16961589490c9871d267904824d20cd257482ba4ab9270fd4a7dbc15ab2b2b2b7fef1ec2e718e50eaff8b82e7f61d8e9e73ac54eaf530c048249a2a6b0885ed59419a4635145a376525870f63f94cb9b0d81017d3ef4738a33ec9f4f86fdf3fa7958cc1b81de5814829507e10c06fbfc270ac1a23c83c92823ec17ca10988c61fa96ef786d5beeb95912b9e5108b59a901735d2d979b13665e4a295b5e5b92d8eb8a483a4f983cef144bda04bb7b49d32ca16921b55811ce48a4116e69696969c1cd3a9c5e82c466bdc4c9184bba60e2c50d18384d72c2e8d3932d77774682f4c98928f2b3409fa494f21287ae2be252f5ae1c74551e2fd07b0fef7811f30173e8b26d6428143a1613baaba96d830fc423e8b2337ae6941c31e3998bc2076c9e114197152441a0c7fb9e8dab79c2b309dd169cb9dc727957565edf4a5656de367daa5f7963312bb8d95eb955e6d09d0cbd1933bef2dab9a0f8ce0505a12dd0a74b0c9297972d128b697975368a2e4971f981875d0a420829a5b973a99473cedcb973ce29a5cc9d2b29a531c6dcb9b1aa2a0861ee5c6859d67b2f77eeabb5763734831dfd1a8dae725deebc8f40a74097e24177984c130d0724c5207d8a425cf4d62897a7bc352a8867368b84b8f136973b71903e55195ee556f9912e6c38e281b8f8c65644fc8c0a9a77a967ac47e8f18a40af6fb90d74ad9c72339a4567b919298b3014305b193e0a295caa489f42b5d61fd82a95b1faf9e72048e331e52b2caff17ad047075dbe826ebcbc4f09d147bf5913398a222882f04ae8239cadc88c2e710602bde526328804228148201288042281482052e82dab8c4eb200e9a183aecb2aa41938a482b326f2c8959143f7548ff1571341e029009b6488f9205d863e3a4806f4bfb712c23d5c19598441a7d4cdd952be182184f13dd91d55446f590576097451eb12e8a21ea18b1ec2b4e1005de4cac83b1ee8c6936e16fa64b988e5f12f620d7039bed20b74456f58034637035d843f3fb0207cec110b61b9080bb91e894410261233cb6bf578bdf388b31a90c8731803245e79c31890f2959720afc8afc4bb02fa1bad3cca83fe5256de597994073d914738eb9cc8cb2bcfe0a3b18269bc43e3f1d2c0199197e3bbb39dbff8cedf512e111994ffc0ae28e172ca5d4eb9c442400eaff8a824ceac0c1202fa27e59f06faa7fae773d008bf9b3591a55461792b2af2a107c1a27a79472929779812d53f1f9c819e92819ef29a72b37e98ccab0d93115dded15b7e84b367f91defc9db8bae10d069e829b7737df65c5396e81cc24240af24261233087f3e6df6dcac89980e565d2d5b7758059b8994b8975048a9ed25373db0d5337773c466ed0666faee33bd53e4200fd53434da4792a50961906772a9dc44903dc854f1886d257dcae0167dca9a174dd3a76885912b8e60d1a7249d45d7b4ac051029e52920c7b02f55a335405323102ca56d4e2765c7f82084efc5ce39a33d5e0482a53d68fb14ce350bba18c34e4f7ca713df5a8cef340c93699fced5b4cd8c81187bbbd66b8db8822d7ec2f6193fe1773c48a4ab2be47a0972ecc0575cb4ce55b5585df7c486677b46040aa1bf1e23a50daf5c9f7f31c6b709abaa6de6ad0b93b16f155b62b6082f6bdbb4209eafe2a4f4ba6ecb94da29a488597791b3f7798554b4bdcff8993d583db6cd7b6caf0e9f0db95c434f7bbc59bbaaf889c9b45b7711bf7b3e7717e57d41efdc8a1d42781d56bf2a08f10afdfcbb9f1fcc2157be8e728940ec7e2e6c13862f88c9cc0ba9aebf89b30e4c9a85a0355c61a6cf88c077658a85c42157ae4e277c35e4725ae4f708338d37735be478a745c75397e3e35deb74080bb55f2b7e37bb8864faead65ad5aa56b5aa55ad6a55abfaaaea55b5b26835e4ca133ff91ea7a0ee49213efe483622b72c30c9c9d673c55fee966559966561e7b2b544cd16c6309994c343e7dca1932b1ea90ec405dd4a39bef24e3cd4cbfd5fe32c3348a2f76da1b1a2327aad74cef83985d4169a93c619c2500c77c47c74402c11c259e77a2070d6224772331c8bbb730e57fa4af14ac8c23bdaddb8fcf3f63a42dc0e51bae7ad4f280cf061ddddba93bde3e5e9eaaba76032f1eec296b8b2f5286fc2d94b0967a521dc112182b88b7b757950c564e285549cb968bdada358f758c7ac5beb1d0b6743603ed15d56151673d19843b7856ecbd439f929a48856152d4846ceaacb2b24e525c8ceaa620a7e069de44abe9af138834e7295f268bd724672d03801c4e3ab945b17667a9d7b28a57a18ae08eb149349f9773c202ee8f8869e725b46b9d9cbfd4562e330a74bd643bd3c53ffe28c1e67d4d6c09965c119e933708e0a7e79c9a0bfd45a6b67f4eca57492a5b5d65aeb2783c918febc610ca8ef7cf00af6d0adf7522a3d3bc9832deedc7ae87e7e6087c064fbccfa75d0c564ec85a060cf21b6c495edddcd6786884eb93c617192fbf3cce5e4fe746ebd73cf75fd613157bd2d7764c6b210e47aeba1cbf6090ba9bf6e5d89ebafd677acef681bafeeca71225caccbeea19cea8ef66b67e3b63641db17ed52a8bbfb61cef2c1ba43dcaf694a7d25d9904bca09a19470ba1b7d6a5dcaae0b15c368596b755917cb93f6bb6a9224b151a224c2ead66c613ddab583305a8fe6cdbc992346ba6424c21aa344b9ac5be57ae33a1e44dc76d239cf94ea275d7a62ddb88d471c81254586115e588cf45cd6a519b3eecc1d2ca6ba2ecb0cfb041ba8ad2b73eb13c5626ea4362ebb498f2ac73458f700549dcbb61d6c2671ea4572e3f222b181db0643d24a9ea9afa4993c532fb9a9de20f5603168c871f60c336563d374341b377e620e18b6c1f8607dd3371063584c552fd265dd8772d50b6b724ea785adaf2a97751b56f0b96606bba341588cb4555555b731c7796c5682be101653e158065b2dac234f722af6a1ea41d791dc78b5711f13246fc9cd5bf270b07773635b975a8d22576fa5fae0ddac95ec0a368e09a5e82c4590e15b293a291b96c0cd18c3bebb2360c8c6db922e1eb4f9c2b62ebd08c9784f9e3c2cc6453258f7e418d873d2a51e83756ff31531678dee422e966031cf0bfb725e8efc0acbd59a8e942f5c16bc104318c0c0c48b0a3b8d85c625869c411b11b442ee472346e217bcd0852eb8b005234d07ccad8525466216a2915caf8a4e791ad0e686c98e224554701e287865a8e0854711505ec45d05f602e9786fb7dc11f5ed579fe489d8ec79fb3148049864544405e75104eb45808288cd9f67a41c4434216c0c3d104499af95e223e6033e12c44f8e12f311b3cd734e4fc6552b458cc9cf0628e6c3cad567081c9d18f31133ecd00e46a399228e24b9e36585f9f86703988f0fe86296b4a49c9694ceb22ed0bd9ea95f05d0800cef79bd016838e263ea634e003cafb5d60b746b5ea955945d584cad145bd7acae39af39dde59cbcae0b74adfceea7e188af17a51511ef2ea915117fdd190d473c0ead5ce063516b8620c3d88ae8ec1ce6035ea05b658fbc5c8a10144cca8e94b323a5eb58f7d34af1f4a6b4527ce7aab4523c7669b452ac6e33c59b8cd0002c315b11f1f356ad145f5dac95e23f1bf06021f0603edad3b940776679db23816b45c45bcc87e7025d99e5c7aa2e921b78e685870dec9a297e3ef602dd9825121b7717c98d7fac1b9f2817491115581e363ef3c2e3062803f57e5a11f1376cdcd64c28988ffe6c0005f361f3753f102fcc20e724087481eecb5186ec4c892ed0edfc4162e3d745326379d8f844b1718f8d1116230fabbc3335431b256de6152fe70c9cb151e2589d3d1907aece9c9907f2b51a0e287128b63ed0980f2b5bb14a1827684828e3151ff5f035945231a40283337006f401fb81fb019bab63b048975a84c11416ec3bc909512b227e84f9203527aa38cb327c0653b01879114d1192e1e7b3010ceb40865505820c631c412bc58b5e47a1ce7cab35e04bf69c746755446761790d7c0f106f11e242981ec45d8678c973947f44f7783e04b48136900bd8456e25ec510ebad91319f43a95f880566a1c05672b4bdc7b503e71b65203fbb8b875c9f3969fc8f3a0ef78a09b813ee37e5eebacf179872d8172cf12f6a07bee339a576a601f168370fbfcc7733dffcd400f996e4df7fc73d2ebbc1ae0b2c79abea351eee70716059ff4862d61ba070b31dd622143dc732210051381d9845b9784f86788875e7211dd2304beca3d380b02b72eb91c76c905672a7718038000e22d07a265b6786e0bca3fa0967be651fe01a2e52a2df7cca38070a6d222f27c7a700bc657c1f75c8c33973d9f1aff783e7756e51f957f4ec3f3f1d0b8e70abfcbffc42d7778c587e8f3a24f9c59b986901a67b9e82c35ce223a0bcb6bcc9b3d9167df0fb4791667347f0e6af9bc191198593ee328ff1da684e82c67c1598d3fabf1bffe2df17eedfdbca07f6e66f3e7f31d0f25fb7ce5f70aa9f114fb4f6cbbd4622d1652e3a2dfec8389c05c03b33cf41d8fc6b52cd973e8336ef6440efd588c0ac94926f2b2e823cc474a16bdce9881c58c2e924f526ee6728a2423e59e793946e4c28a9ec931443365d339e536a7dc29f24cf59363c827219b36754c0837db6cf28ebe56b059c47a5bb9a4177d6ab9412eac6065187dcaa4189c18583c97056b02c98d5ff7460d2cc6debdce99cf3d9e5f7d02dd83332270de3953850f863643ae67d0c609945f9f7b4a281f0cf3f51d6f62d69ce953c3cd7a3c9808a6c401ca28a38c3c577c609fc73011fc0198718379062671641399d372413cd3a59e291b26928b3eb52ebcb801a34f12cb264de2442ad80cda5ca725b08b3e6543ae3ca38d9db348adf5d69d3352e4ce5ba36ebc8333eb3315a760e7b3992ad2a5761895c2e6ea2e0be6eb3a6cd48d977ce3b67c67112cd7c094a087b706e66662ce151acac69c5216245b2ead541fefa7e1a8aff73a06e3a1cd43a1cc14b45c35cef514cfc8f51776a140b63e239e8752c809bb348fc406865cd874063147030aa534782cc6e5cab9c1c9dd6e96d8d6fef250d0264aa887931c23d376498668e455ed08e9852ba2be5b83c062220582c082dc58424409efd56c2bc5471db4870a35537c5f7ae1b2ce99f422f7adc010988f9be169098b89404ad80f93098b8133b73e4991abcf8a9b938e6198b018b9001396c4121b584c9531f1b04a99031b65e315ce865c3247e2481cd9c4c69d45dad43051e6d42a5f614ab4310c610c4348c065038b391a79a898d3a6a631c748eedfc0626295f76a94b479a67ed5270b3ed624918285978159489b879aa9b6c9fde2716031f0119b29972b9b5857e6481c1b9812d5e34956186224256c8c610863c8127ee21c5d22e507f30dec0512c1420446ea87238403b3d69217898dc30a0419dab8ae99e20180f9a8c2884ebad42f028b8938e644c15e5dea9cdc2f02a35bd8f66255f4e5eacc4f3181c062208635883ae9acac3aaf89753cd37e26ca9c734e5068b61b40474e212f8693a6d42e076154f76ef1faf030c9b04bf23b3ac618638c7109ae6231f041e73274afb12bc310928d310c810ca4f9972591e1bbe478b4ab4f0dc47befd9676a3a9cb3bea3dfaddb03f14a0fb5e399fa01ad04d3a71fafb0e534ee5f6fe835ee7d7541419c185535ee9ea304e3dc9b8459b092eef8d127980764cda6e52c4fc14fe3e38998039c109aa9cf816692988c13422bf539d04afd1a67dcb9bc8269dc15f7964fc183e5b2fc1e08cbefdd2f8db760297e1a97a2c55561b1165895834e7a2572ef941958e522b927ddfb06bd435771350ff5b71ca5c6abf75d92a623e54db3b5513c148df64e47b4d2e7ad9d608234cd4e8884b40ca6dc7b89e81c2db7812ea170396b4e9c106ce643912e0c33df3fe2e6e8d27c8d4b449be6218d4b9f699e6508ccc37a4c9906fb3e717b12b6198d01e13de7dc7bef3dd72743bf37df7b584e2105cc8161bcbb97a59bae3d834e1a9eef3d5bbaf5f9d644a1a39ce51d96db9e69e55295db9e894429a5209c914838fb4b17ce5e2c3c0426cfeaf2af7a500c2846b39942a82b3edc3d560b96d2397346a79439a3324608332af33a6332560b34bb57abb900336de79aedc92472a5d45a12e92f959600ad30317aca2790f2094c912463173d742b03e9c3645e03da143dc8d83b5e0feb1143afb2bd7631761a8e87851eaa7036054dc6309cd5832ea9e178ff5c9745f7cff42e4f3531cf47a2589c599c91487f294b8ab3971421d8a9929f0d4acf23d5c73b7d1f68c9eed92737cf0a13f1f0402286adfb79ba5db360080c0a165a98c110982a41a114e8923c540a0e510ab21685444ae2449bfad502a59f447aa23571492629cf49fbd361d1270be08c66cb257149da42b92c2cec923c81352717765231cabeff62afc3967bd67032b457a72913dcbb739436ea4edb33bc423820c58b771c7899ce9094527afa50286f5eaf6e7b1ee5cef950873ea31e8f07745b9baca753e71d72a17ce4dffdfcc062d8bafcfcc05ed87a95af845878c2e75e9d6221eef3ee13c7e769c945e580cb1de861d10ade761fee8589f64c118ba9139374563daaf79091b5c2644ad9274f8c095aafaa620eb0b018790b6bd768676232133fac47752963e5855d984c852f7655ec479114a4a076ae0beb11332beb6355576badd5e3b157552f0b8b994c5c98cccc181683823900ebb84ea7d3e9584b3fd73525cee05bc3513b1786c54c263c98cccc33068439a03d6c31998ffb7c3e9f4f6bdaf96032f3d53f588f9a27ae289787e60a5f16eb917de8fcb8fc286e4ebaaa874a63a873aebbdf753d88f9b8aa0a215c49a24d911b16537155fb61401a93990f92480ef0bc33016bab0a62f535b66bb453bfa3eb5f28545f61aed1d1ebf285c9a078de790a3e2b4c78deb905f2a92226f39113f3e19cc464eca4a13c2726e3a117bd0ef0bcf30a03d281a1329deaa257e67abd85f9b82a4ce6a2984c4a9ed81215b786a36232a17c5df4cab45c8f6149b45c5f5c19f9c22c142c86c9b85c6bc5da61ed591decc7b0c795911bb6c4e572c519915cadf8b088e04c56cf0abcccdbd111621fef2f019cc2ea3a04979f61fce4f9aaa1eae7b4de3cb8e7cd88c4dc5c19b9d3e9743a9d4ebd122083721419d05192c89fa334b123377be13d197df1c299e8b66692b7351c16ce68d54cf2a12b5fdd29f128bf4fc734d47e6d3aa7943142f85e63e17cc0f7ded79591a778ae6740243e954a1189176ca67e854eb00d5e9e22b95ee50c6cbd9503a651d7fb3b129044a3b05f2041daf4430696fe01b29ea874ad35b5452c9d1a11010000006314402028140c078462c180442cc9baf814800e8ea65a76521a2a498e534619460c2920020000000000000851de2194371f23b5d4780436c6d162a6808f0c5f22a5ec12efcb07bc765cd60b216612f4a8e7efb7db72a8adf378b8154861071d59546cd655ecc013546dea521369002b92b21f9e1e59880a312090fa13a78d10ff9de5b6a6667f85887cb43d5bcb1c94fc7f4ded8bae4d12a25cd531ecc0843c873947e75ad97a2fc74348cb7ca6b70624707a372864a30e4d4cd5988320a054b25c70cc1619bed109662c802c512799d9c6aff4d3c828147663124a3cd1a345f5703f73f60b94ff5bb131bed781155455d17006da196e2ef36621704b3e68e3576322d1c87e6f622eaa01f03efe89a4e6c6c7456072f919d10686a058796491fa073972adba3f56871eba531e30f759a4ec92ac465499646e655ebabed9a5e102f3e4d3026f69b13c014285dcbb780558514843cd92e0cb9c64661992055b651a6dcf209d0a0489394c6b69ee6db969e85a590f57ac2b89ea9bdd8566204c05496b40c65c3d362d8f36af095945d820c25ef27c38e1aebeeabde7d08a538bd2aee1ce2395628ef1a5e668a41b14f3afdd72a03b183781729b56090410dfcc65f6122d583a733fc84b421372a4c308cec2d602a22e4406cfc95a8ce62423147693f9541dc5a8d360aea391a79bef03b12cedd32b4266ce7c2c147b7bf71d191fc8eaa0af4267afbc5c534ef123a4ee9753103a7a869a258f547ccbb62d1d3f046c6294fd6168db6a59bbc0d7040266230e24cee273ebb7570e29e36585f93d6eb8258da5da4d0c6c612e28461110a3228f49070f72fd49057ccb570b9908d5edb92699440ba61de48457dbebf392a994c09ff172502a28c1109c26ffd1a1b0d5d3f70b0a1533fc0f0820e3906caf3bf2ce59b59fbe489239359ec7a12efdb2f8a659406f96a43544cb54d1764867c2715f9f8c025304c937824ce3996a891211371894ebd5d410bc397c9699a3747a022432d894f819052ceb318b6d4704c76dd8899fbb9cd360d6c2609f79cca86cdc466648dc2b8e257fb8e7dfeb390660cdc6094104c28bf515191b1835dd4e8846106c81c7ef67ac24e4b3a0df6dc2ba687314367c248a9d573475ee7e7a3feb44bb173acf91c11d5f2d9e20aab09f0ee2ce0002ca9034f003f8eaa5a4ca20abf6a432c37ce29ed5be0eaefa21977b812d9f565b145bb38e565f04d882eb0d6aa2aecec1893a6d28d8ca3390cdd41ac090d4f6835ce447c92cacab1425eba4f0d1fe3fde39a1bbcac991f0334e8ed8e35b0b825326b17701712e4cc41e5cb869b767889fdcc6ac65ca3758c0ac1cfe547d05567c873bc329b418c81f9e7e92d9d789baf065079ad83de1ca7d09f47fcbddbe661bb1478788fcb67f050d40475737ec2894b1846582a197351fc20ccdd37a597dbef3f9573951f9722b21926b3da757a1afd656944cc5e605f793714906d0e81d7782f3325c0de9ffe2931b9e19755b806a09efe2a589f6756de131c036661c1d9f02f691f77ca08a8f5edc3fd4da94011a1c4321cb77d9c7a576bca85494991ad6b9837469124e00731efdbb5042d6f168a2c5de42a56b1e1101fb60173d62026aebb49bb70386ae763f63a7ca60dbb945a4d68fc6d73b970766f66667fd84147a6710866e0af0f9d7a8635520e7e99b4028550881e85f029c0714d33df77d06280b47e3ec12b82bb099646c9e8f5e845d54ff5ddf943d00405bac6c97a052cbdadfbef133bfd16f166047ffb5ea492878a1f82dccf01dc2d5e16a3a1c2006ae0bf2b9f01dc4e96ebd5530365c12bfdcd57b1f38759fbbb85e9d11bebc0fb0fb8f50d5e4eee64789de7352aeb4a75747604247ef88aeb2138d5b04ea7ffc768bb39c0df725128c82e26de6c19a85a9bebe383805c7375829e855b09718daf6b0db4adfd5fe5c90a718bfb4bbc900a5d11aa22e35c662e84bfb1823215c2dfbfea82283a5a3d54c1c142d6356b23f444f3330c3965a0cb845ffcd37a5d0e3e673cda31f699d213ca1cd3ab16ce2db90c6c1f433e0f20876390a4dc43a997700bc406dd069a7f86aca1bde3134832229a1acdbc9954037e3b954d541ac5d77a4bb5e9f53a23d703b648de5bddf0528c188f59c197cce3d7756fb9e15221a73e26accc1d2721e1f10ad2d318601dfa4e8309e2a2e9b25c742219a3dc0790a1799806b66badd4c7ef72ab222ba4e36883617c06fbe562211ba365fadbb86444c9ba820bbf66a5f1158f71a3278af53d2e7b770b01f54eb1cf3119b5743708430ba727fa584d8c84dcaca7bfddaef101c1cd52efca7e5470d7af06bcaecab4e704afb860688ff50ea92d4ebcbdf306571be00c8fe6b85936862a37a291c856d142e2aa5a598693d9cf97c044c69ca7c962a080b0dac5961c5114fb253f0c00627e047ca327a92220af97ad6dc65af6ea3f5fc4e0fd7997d2150227f145d24505742124eb23ae15b04ad99edb1cb5659465f4720459a2e811450ce97e43c9c2202ad6999ecbe77f52241bca81d26083d1cd6719fcf1b828b124d56277be48344751f362a679b94876967d53061be6542bbf4da5f7ec3ad672e737f95a7bc879be33e4a0f6d8ce100f3a4c8df30fb72fa7532cc885a10f2c5ee87e95000219b23756dc09a4e057d405a3ee64ff4edd8b1e3cb855e7269714b5e149e18de5efe47bb4942b06fe9f37449e54b1b0dcc3606bcd6a6dc0ed1b71808be88264842d12cfe75c52f695da43ce1953f6bc64aa671ab4e4ef6880d78f75748fe100e597dc936a2a6b05770247a550719b4f1cb5d09928e4e7fbf19e8c290a73ef3e6f432bf15d954a007f6d72afc1c9720f9622142163bb2a4931e3025c39c34aa414a2cb8139ebd0a39d0c0dc71387ab46a6abafd3cd9bab30409b7bf88da84241f0effa3d43cb5071ce060aee1ef6c5cb12396e181c7fe0e8de62876e15bef6ec7e41a3d5052e2422292e59957e90a2ea55341f7127103b2ad192d8bbe651a083ac113e770a1f8e1d771d4a05fb81998fea4e61d04a193385a71f78a3a6eb4ba771af4599c990cb272934c941eb358af46d7e762a5cefc40c59733550a61601663fa5649da88b6a0f85c7a191a0ffce68153607c08a469098bc9c50408af2a7625ea47582cd1d41c816db1e183a0e1b33e00142688012fdf460f119c10e4aa72eaa31470d32d56eaa70ff5bda1ada2fbba3406db9188f66c3d1be535a9c43d0268162d663b400a7c1801583f68889106e104dd5429e7a1e2e58becdd0c6763fdbb39e838ad31e3f19593414b97303e429a16e6e329ccd22e89065f7ccfcc6c09cb4600b97a2dbfe7ab64dc3d0670509022a0cecf4babf8788e9160d8accf2e2f0f78c01258188f7c1012a7f265a517e30cfe4d1f53e460f03887db567122ee71d8526c91412797537327df7e02e3e31e469a30f22047b97258c48c7576bc25038e93d18068d119e8668430db00d2712d189589ea73973485327b94f5036bc8cd5cc804d01f042abeeee678e0231236e047a5ccbaff67ca894191c03567e7e6516ffe15434b238ee98ed6e6a6927c18d0a581dc3460f64564a4a7e08fcb0f0c9e84132b3e9f06ccc6fa57232906e91e463cd4270f9e9e8ad56cf81e341ebcbc2b8862063064ac309b10d695e6a9b64d31712b6c4a7444add06714f06ecfb0ca6e539f668dabb5482a0757f939245f8a6ff1a4c02e73cf3e1a4e20f7a506e32e8ed22bf96630bc3c4f62332b65f5802b4f0c22c92f5d811b9ac4422c2c5fce8caec81e4a23f641d4971973b516d024514db27bc24b9afcf512d489118ae1910057e4329cbd52493f33f47a92490d9b396a265d9e3443a7df3f08240afd30ad3983a18d6bb656104f3025b9d84aa495c62a793fe0c86cb4facd362bdd130a7bc4cbd3b24f1f75655c2da6618073c87a1b8245ebbe4697d5cf4a937ff3efc013f128862ba818a3ca40a908506d177ac652a1ee1f4563bd7c41aea60cc5b153fca1407fac22314a466a2ab85cbfe2b407d23def16a8a0ca6d6b4becfc5dba54cb7ef71c3d5d1c2cc31568cc8ac91c1b826177a3dd5f906765f0cc2dd7570aab3018ab2e3fa4d27c62f83728f1d75a302126ba3697d1f134dd5865f2931959b9b014567221a359e8e1e9f5f945e8d5fa5d4194f8c01a91747a541ed890fa65f63aa0bdaf6078840e441dec6922b53971502b9a3c406691304dc552a4e5dffc2ac53f8ec7ea203a6d9b55bc265dc7a7e2f0843060c076f84d5dd9cf6ec87424b0321b5a84dc4f17b6a26a8f062dae7b3965a0aec0cca80fcc8bee634ea9aa06678b4280c4f28c2bc4c9b0e9aba7e61159f144b6050ff90ff178b98d0c819dd5eb6cc5544cb3a817fcb38e40321699464d5b823b55d2473ef13bf8da3c26981518b1d66af02dd00d3a17e3d5bea1187446ab6802c3ccb1722ad1a4918a76b07b8cfa5a4cad4ad5b6d2e46535d48559431f61cbb8a1a62605a7645961337991d294337c2ec83a60188b531a2d7e9205e3b1f0237fa48deec21c6ac1d3e41e9195283206175a8018b6dee25303020bcc9c50b7dd7f7cfd3159ff3dfe7b5357b9cb666ea8b0f788a443219108cec9d6391a0eb27fd10314f5ac6a886801efaf6c907aa1a8a67a63accfa54ddcb12f3f540435d762b1b003957492423d982d0a1522150699dead2223920cecf94d636fd4db7e559e2ac07119568e7b617b313d2822957a3868692f59d6a1a0676dc71b169965fcdaa09ace9df6eb69669ef58655a925f603ec2c49f57d10dcdc31789549bea7a1e2198d4c013e9c8a2671c5327fbf4848de1eb716288e0cd60d91567cd57260ee4a3efc3ec0eb028ad3bf5fb1f6ed82a103012a7387ae517607ae1aa2ba964655b34323a9041063561d221a5b133bec75e71a9a544a5da089726db14cfc377a127ac3c4d3b985c9306b13db83c3962eb3b258c089d16f3c6edec9c7ac54dc9ba088005fef3f227b211a0821f510522dbaa38ff1f7370b2745ecdac5a39f60054548df71fa751a7a68b0dd6465c589192378d412d1222b5a4860894d68512f1244d9c707517ff40bc87acb64ace10e5393db9b814ed0e3b270900c8335a0c1e1fc1654c00be5f8471e09843171929b25cdbdbeb079bd8a4b2f3db27e8ebbec1beed62ea4876ebc91ec52ca8e773b6db21131910c1c226870fe911a1d35a3ee9390444434a42d77bef9b691cc7572b0acc140afdc20b1dfd01edbb9eea3106dad2047620d8daace8ec920882ab60fb1fcf9766f9b99b96a1b7344465ffe9efaa7e9946a232ff9e3e8066016bb99fc7dcc42c7bb1fdcc7f061a4c86536fce07b62fd0ab796555ebf6bddbb2f6e5630e3357c7eaf156e1b133ce017effb70c0cca6b98bc5d1577cc6527d73eb157b7199fd59da733e1be95eea129a31a5659a60e9e1e5a125c3df6ae290b9e3e97c33a3aae865f442965ca0db5bad708e9c4ff61e65d181652a2498ebe2d773cb4f4a4920f81686e18552f2f01ec606521f89382f0d5edab366af5d6d785616670616320242ad16eaaf360b28db0b708d4b3b1a574d65f1b14e9b67fe3297720e763a3d1d511fa2f1bf035040ee46c183975ed828450487d98c94aa929d5eaf0558088a26330f8b46a4fbefe207fbabdb8defd66df2ddc91928cadf1062652abcad84eb9355a8e41df39130f5ea963901975df6e845e08d24a8b20ef6d5b9a3070ba6e7193d29c242d4640cce058ae6bcedcece858e5f2e604274b1d5d484da9727a96e698cef30fa6bb1b458be643e3b94592cfb0f767b78cb686fad5233d97aaebd2a4708c980e3cbf4d0316f9f7e2daa23ed703aac192530ef1ae27469dd8f5109733aa2805acfe27f6387844159f08128c67667626b3c58b6b352814771847334978075d75a75d371db7c9d3047862dd59707d3bb0d3f13b2d69c1631b2bc50f555afe5030895aaf50e6f141bdd08361dfa05a0888be88e4a48a216601bddb3d633eff49a800d6acf69703f114f5e6b5192684148d7365cbcfeffbde0c590ba6ea1c2ded590a3d0ae629051f0d865ba612e78cb716a5fec391cfe8109969efb9b83aab5664372460d6a167dcfa0856650a4223d615f287ef653184955465738d0d32f462602adc4ed0b9dec85e361086b6855f58f1ed1824432b440970580a75fde8a909b29179c4088f7ae3dd517c913a8a2bf75c080dc468e79dff1dbe2c43e3781ea50ea8281858f94ef83c30fd5f8aacc132d48a0728371006466139510ead79b97cb4e72a3c43717da0dd74d9f9004d3612b2e5ec29e0af949ad06e0d3a7f63b2a4b583ba5cbd6358f3c4c10ff264d8223cc62a7232d98877fad9f8b220cbdd498629e2d54ac7a901777288bf2c990958a7fc0620c46458b742c6a54982ad195315cb83867ee37fc3f857ef1b1bceb93b7da146c4d446e20322a5bb4f0007148775544a0a30ac278a91a9159779ae49169d68a00baed911636e23ac1bd2ca66641945589bd71f664c700680b28e20ae0add2417a9549ff377f68efa193860caf96940ac78d79b1fa0821dcb8ab27da7b1bb480fdd037dadb35b010652925544bcf75c4c2694988afa7ffcf05a1848351483dc524d277f85bb3d240500e025923fd92e1e09810069899cbfe219a029b0901c5c443520532ade5795ea2bb78dc3060e7b42d2697eaeb679c6be9de52022947239eefb6afee81b9e426dd156e78e4585ffa798706aed36fad455298a21febab8dbed59cc27717a5fc586a2c0a400217206ec33a18f1e6b262aeff1f390d2ed2597d0c03d9ff9ceb275133fe79b459842a6f8bf1cd803f4ce789dbc895a0157a958ead98e48fa02d3d7aec87f688d7c473e7c7e012c0823c1e73eef5e67e3f4828d879b8bb3c58185de9630ba2a643612e1e15c6b2e2f594a79d40bb81c0fc7bb489b937403cfd0962fd85a326b11ed12b796022d85cfeca66438e07de25e20df4b32491b337169ad23d28b25bd0e44f2fe0af99a75ee3a9168e6a1bc60ba3d9d5b234442a879bdfd718ea3adad84c5db32956416261ffc711c077c0ec0c0841622d78963a7a98dffe8fa433f52ac0da25d5da7f54e28d48f0b6ff6e8252fe524e48ecad831f51e917f25ba06e3168babdd7236afbcb6976ccae227d41bf93ffa32b5c4b7670f18ca05c1415381ed746d8733c0cfdcfb66cf41cebc17f0fe9578e42b013e53f2a20e041f8938b0fe8a2fb557e0738c87e78ce817c16a36533c045d23fc8f7da70fffd2e70fee1e4fc3bdeb3ebc4ca541c896ee9e5bd298b58ecc575c14d80104ad83e23f7f822ac290a80a5cadd44981ce84e9dffd2fc002689b1093fb2a08663a3cd3c7fe8fed5f1dc844ca668a33296e4a390c3063700e3cb9d4acd8006c7c80e258c473d440bb6e3064f12a12a6d37e85817988d3a20f75731dcb888c0faabe52f9c45360f329e89b79cdd8fef31bb257e5ae2509fe75d3d00e8514da646c823869d6b8b5fc129846231275783e4b9c3b10c7a31d8f863988ee18a8c14eb1302db7b6bfdb2c96dd0df523e0067f7125c009e121ccace4653f65808d623fba920e7bcb3ea26afd4ab833f6ba56d79871ec3fe4cc4a76447e7a3e9d2f79706db5e55e76af8aaa88e16552ae2d5c3c31b3a025706c42b9d159aa260a47dc5eff9c014ea71d41fa1c7cd123fdd3300b1c9226a4564e6fc50957d4a4601a6c82a6700c8c13000616e50c9bd5b3ce60c49095a280bd0a22c8e760dfac6ec923081ac8a3dd14febba90091d8072ca3eb63e38819f2a871e9504a69e000430995e25e0a31824c6e9498c65d69a174c9b2ce7e76b15b73ec0729ae527415fdf48efb21b2283da80750cb76d164c17512700bb100a34e422b9984a3dbff4e8db7eddaf60fdf7c942e38dbb12fd10d8d5ec418270509d93a2bfa0f6bfd6790e8acb4124ad05837c18d0604fcae7d746d845cabed91eb439dbe25c8cd606b9dde81ac34da45c99c0923b79088c4ad4be9fd5e0c5d3c87cb26482b8a78394aa5ac1f7f50e6e10071f9514387a2f2c5cf56ea56f0e1497f02192aee71e3ab8304d3a200c4b9d56bfb9ae22e3803ea42966190b4fcabb59b70977d4cbb3627b2e8d54dee96546a7fbf05cb55fbd099a89932f05518ec9150b5c7399e0775dde9a7d2420077fe1d43d9e50021a195ba9e66031a066bfe8935057160fd20dbbefbab4e9654488402da67c603651946dcd4f536f53b9805e4170a1a47884f863b10816334fbdb5d7e762e62b1d72bc9660f02d02ceaa5110103610349550e9687445e9b1b98126dcc8a32429f796617fa1e1c7aede1fcb6af09f48e2af0ebc917d2ad018eba8e66afda236b31ca5de69aa84066827abd9a3264bad0b58067029c90a2a8d8a5a85a6d2616f097bc0e41b120208f32807e529575a48bf3e0054a3a94231503dbedce67a1a9cfb7fff1fa2d858b2cac2804c0b4edbabfc9b0a58978e9f6930fe0d54890e1006a748927db72c2e64d36374925c4766efa9eae39541243e0142af94d518067fec00b9f34e915be4933e31bff57dddc34265773a3e38c90a43b35aa6867446d530e0dfafe0cd02948b618a81f20b3583ab185a30f56f577c2e8d9c5bb7c5ffdee48851413e6aca587174216044fd6fa0ae81e7811f0c9f912b92be9656158e24bf8911cc54b8b8b618d8808d4266674860211855662fc917967416a906bc9c307825f3fd21c6c182611844f91bd28b01ea455bab788d9df682d310f931c89ce472bd835c768a549418f52b3839c85d816e4e9c410b51fdc3831fee80031ce0607d972fdb90a219e0e8b5e0db77a3bae93f072bb507fe11217eef4a056c3cdb1030a7078de237f4fe6f5ddfe552305bbb9ccc8b560a8af5f46a620d125cd9e013348136614bb3046ca61e3067dda4816201398d849ec6a85e5f4567bd347c62016191ab1379f01478d80d56c0b13c1b5f8674a81b5e6d9ebaec36bb0a55ba635e27180324573e6c233291895fb0676e0b1564fe0734a54fb66556f7f4219e3b980738da0fb60e635365177a2f0f111b21022c4b5d203affe0cd866bc80bd22a149dc5e171b88ee9202ff3bc582fdf299387507c01970bb7104dc506ad5b3a3434a02851f8427a38b00c74b5404762003c5b92ac88bcc45b9dd290a440d319a5f0f89d69017d924dde140c19a78e52f0757853ba2ba19b2bbe39ae18650deaee60a6b7b5c0fb45837a18d504ffa791e5c0a587336c17e685ff0e2dfe5460abdaa36fccec2181c1887c251ae374a5ff444328942a4dc0b565772fb1dfcc4fe32c11d4593e7e6cffc6b5ae27cc26da2c4fc686745436de886c261c374c62bef6af5b3e8d00b3db95349c95dfcd1f331001a049d5d8b1b1ed9c63baa5a8822f710f01fe173429d0d03802213058aad21301bc860877244f41066bdbaa4ad2e39a4b902f7e3a0a523fbb780b880ff07a0db03e9052abc496e5f1c8191cb00258be6e5c245fce75b4be094da92da707ae71ddccd20a4c71e2f599a8084a75438bc45061e2370cb66946ee3aca269f32b2fd1ce998f447e0f19436b722593246080edd0c2810a81fb5b3d7f1e7b93eb1c3055e5f33d611e95e9e6f8f6e2e4a6959a19d28acc6e562d02aa447749722d7d75ef561e0ebc096679b718b52d4ec85b8379f0ec2157514054d2d453a23e819dcdef478fb981d49b2788116eed546f8653ec53abc08bb3b3a25b8f74d3805c60e6529600015c755abef5e6eee41bafa4a78ea02ea5972550b32af3336001310b9938b1558995e18a99f2cbfccccf2ab29e14c02b9c56da1aa7fce175370d1bb5e6221ae2b242faee38e2e62c4244ef869c9fb3c7b55eda0880c2c61323c94ecb3eaad463ab1d1340d23b9a0405e407ef41218c00220361d56f304792d06dd79e6915535b2888e417845e9bc743585be624df1bb92de463206cf98ee2ef8b26384911bdb7d92ce40cd767162072152d23f1f7fd9a614dfd4899a85ef7408addc6fef4f080620d5f18b0e5f638a979ca2f0e69c777f426ab6a17287f0e6fac2446c43e94089207b98b2365b3b80202f1007ad2b8f8f3a7f4edc2ae0c87bb776d9e2caba6f884fe79dc70e0ac3e721818fdb1aceae3daa26d79f7a5eae2af675a05e6dcb41e7ce5b51fa6295361421cfaba4d5df1463a9bb6a5945bc30a1c2c760b83f9bffb3b97934bc4b313bfea14121a9462d4ed2e13fb2d740309f6c56935dde33eb7312d42ae894b7b10222115bef7b7e92a3ab2396e60e62bada8ac09f5aa4ec404185c1b016df237bb95a2a9af1b11ef49292322beac60e579bf9aad239c2dd121991101b5d2538873fc8b5e307394e4acccca6008f32c84539ff4944a34adc96bd8aadc631228de25c04ddfd3149ece819803b4d791ac3376e0bdfad57ecf8fc7666f1c3c7c422b3db4696cacbe779268276ce2e086e250ed4cdca4a8ad2d1de37a47c5cea70a7d2786db20ed2bd056738f878c791811208363b045f30b2f5fb7eb7d005d3abdfab3afe177865b4a85feb772da3568ba57e798aeda2a125c663bf52526c398c597ef8d9aae6bcd8ba8addf070e7831483879d54339ae2b24a9a89b21ff1ffd01233be7726c219ccfd76318e949990ec41a695ed9b569ac6ca6d4765a936e15846d6304a1abd234ed2301a06cc633fed59e7396e940e077b95844c334bb2b4d1bb6f45c51d5c8cebc774ca6cfbfb3d7ed56aef70de671ccd77ab4074118fda5f31c4b1fb08e23f98306ddb5ab27fc37ade21ead73a39c0c4701c2e882d0a9c6e4de177029167fe5651e2887a42db80685f9152c616aee6b5ad8fad25111fc02e94f5f882773a9d0a3a80b3521e2581f67b298a8390f23b9e8ee10cc68e378af09362d75084eb9fcf194bb7add6d6ffa2d1f950830b122c76575b8f4434233827791b218d4fad0cf90d49273c3dc4fe9e46cbdce2b9d3cdafac6a2b078f2cb99aaf1925586224bae8e980cf3a622462671c7e0eca3a506ef68efe90d1a75466fc7714b346b51d2f30cc282489b0bf4504bcc26d494b202f6d72707c9332b81afa7773c8e5b1f8b81b97ac08d800fb07765095828ecc1cca8b1b3575ebd5a48f8c08c8a3df87ce0f427626f12b291aeff20d5abfdfabf00aacf39a257cef35706194c59c9072c3a2ac15aef27e9534dd0decee267600b5682cd2a5c0949e7c1ae4f74f0a6a13392f45f27aaac0a040e7c893bc59ea6036e8f3ccc845a77aa34f8330033dd70bf15386db2763032dd4a9888e4871cc7e5c0fbb652d304f9a2d857f734bd85bc005f669e30203c9cbd5957d0c62e0cfbf843f248d7abd8953f27bc7880f342c8ad761ab5d6168f686e2fdd9c2620f4cd07b0745f840d8f131ee027b73e3d8b5e9fa79e4e3e285ef19478a2ea32a2f6850443dfabd0ce77d6f7a986d5b3da54bb5fe13453704e8a38bb43489ed833190365c26f2375134b57aad444ff5a957fae6e9ce295214dca5cc9a6f5dfc61f98aa335b92ccfa990d6120ace76927163666c5b5040af6c19cbc7e0304b9c79a21d30df7e4143e36390f555e4ba11c27e9c5cd26d99e275284bb0d7c6c718e80e45e1406ed1783b1d90edb4309c1657f22a8df67fcdd3d3a74ee2f5f2abee1d25e63921319ffa1f39d58a7f0850effc751f1e923f238b06bdabef3d700b272c33fc953873ce45fd8fa60d2112d3960923057e09555936fd8aaf6fccb5324f94842dd8324d949377ae2c72fbab454b9f9455a6909821c099adc5491f690a573fc5f809d2c8aa49b6e467978b036ef7e2d88b3469d2596c11deddf16095a952818aca978b9c215f6bd52144e4827e90da98cd61f7c3745a8cbc3237230c4589250ba32c7b07ecf88ecf5a082df990ec4d9122ea8bc146f6902f5ed2cdfd4cbcae8ccfcffca083f77d4e1e4963bb3ed7caf2cf67d1acb7757c6eb94fd2eb7db7cfb4e60446d0e03db014abaf90694dfa56dbe561b6477f41b298c55c126deeb3a65409e3ad576b132f8ec823d268d942186aba7736dac5c2991f076b2e92af265f821f670bfbb2232e2471651581f23e419719402d86e49540c3733f0b479ee944e4a95a37656e60353672720b201cb973b22dd868d169af23d18657d0ea580f2e316dd4bca7d122f15ae28832ef09fd4b36b8462bb08368dbcffd9e702c561890dd989a980cc3c2b25e4eecf4ab80bc9031cbd00e2666fda5d61fd30ebfef9c2cb0657c67830714fe5ba7ec0eedcbf4aba0ee5b836557ec18ce1d4c6150941369d257c07401cb1e015985de76ac5f5391b3607f257dbe5d8d83847e735d00670dbc5986a0c4cf224c7dff16c4185453ce00b432e6e94d418499a3c6baf5156e2af7ece1fab1ed72fe7e421584ee657a9036274209d72f054bb4e117bb23986e136e9fc6adcc4444d59fc671301d04cb4d301e82fd29d85c82c9192cbab5c6c23ffb0e3e04b549836a1b78d50b70fccf656decf6f54159157149f537a135d64badb1d0d04b716122fad6d8cc5ca62c2922958146c55d4d7de85d7bb832a1c40da36d488481b233a4cc7a9f6524ae1dcaab2aca144d2aa9489bce2e4599c43ad558da4dd530efb0ebaab13c041d04ac0998b17c52cb4073d131d9b91aab19d0d249a6aaf655d259a76d7334b1c7007fb839c2bc64d0d1f96342ac283ad55889a2953ae8dd23c7004bb88a0a0632ad49b383b5061ef46a4daf8c95876b61bfa2f1f5af635e2e32cf8943a41a8b3f7d409e2b76f13bdb94053215900361d66eb455daa8c632b5aaae67d3c0f313118b97d89d48a51dbdf39dd70b8f2e8e819af3421fd3f65be2ce49554d55221112d1d931eb974bf6a2e30872acc3f49a2f8df0a41635233a8bd9c62e07260bd834d19a7fd0e69196cb3b8dd98c499a26bb37ed7d9962403a7ad9dee8be079badf441844d6f56d6731c534a2abd9e061be9a0927ecdad0b7449827c47814fd961de3859665e5e592ed305d44e6d8f63949619a9b76ba3e3e9a5221dab4ea1e65aa98d671a7e09cacfb64c901a40e9512daeabd0c8fee1fce665cb95df8ec8cc5e77f287c272df2c1cd6f25251be5e0616efe58dc5eb1a81775b1bc813007a0c8be20c917fc743fb98e1f7a4e438fc078cce50e76f8591f98e59e183535355d94fb88ec1c152e8885bd0d9d8fbc00fd5ab46c17c0d1ba08c064b7042a5b85c747ab561f2949b1b6c7d7b7263ad669486bf7ce46bdd1d844cf6cfe018ff5278460b474d5b2cb05134b746fc2c1845bb1fcc6cea310d614651e9938ba09d1cb40cc0e595471b6c58a10f92e33ead0f8f9d283a429513898f588153048c5c53ce25a06d41716b8c4d85be1ce30aa4539d269e1ff03ac5fb04647d37fe6725bcc94e778440a5236e906507f181ed97c3e79cd2b5683f9e491769bc5e53b845170c4d5faf3d3349d5f33c1eb06a33f9099ff85fe7b65b1ac4f4b919c5c407ba42f7660b76bae4ea775cedcecb56841cd2109fe580449502d07b22401e275a42d4154ff403f3d232c8dba6b97b4f737476575044eefb9181772d3d097cb19206ead53b8a603c28d34ee69c9081831ee31d07ba08467cc970b18736543336aefc9e7958ecb4dcf2dcf7bbeac9808841ad25bb9b7aa938e45c60ffefa1cf16c7624a00d2ebe466240fd8bdcb5dd1aadc38b32a6c9eec84a13cc698877688221deacd5b7107be3da46b3d5f852a59b6083a4e1084d36ab5d418948b6a7ae3c528dd37d71c96fb0c3ac326e10ec511a3440154c842c97dcd128adcc0d242ee37f3e364b739041fd792c0eeb130ba2796e5de91c43da6f8f6047bdbfba0c5339c52e210fd59dfcf9c634d3057d08bcc4b53b776d102eef416967b734946ec40c4b3c17d47e1570db754b2265836705f9d6886b1822d2b4d4f5051d996269875e1ff10b41c18ed79129d341394a7f05c1f8c38b024dcfc25828054c050416eba21f439d8c812c96cb18c703320b1848788e16632e060471479e910a08681de55a37f0dc05ebbf6fd748af4c543a203bee7add07bf72f478c03f752bf070da493cf895be1a3c88c98b1755ab9b5e0ea354213e1a8620ae58250797382bfbf443219004858e797785d0c68b9e7aa572b8ebdfe9263f1f3477ff1bce2c10742cc1e34bafd6b99586993cf2db4190beb6caea173d959bc108b8f8f4217bf1472cfa97030be69155588f903a9c0dc9427df474ee0776bf3ab1e178757ff7d2995110c1bfc8e1e39607c5b3e92edf066b8c59470fde914a368ef391d6619c812c16928abb6d9024d9ff1017e75513ee5355097ed24387115c9cb6b9b5ba7bf07df315d88cf92ce112d61d682c3e375a8813ced69ef66fc84750bc236121cc496a2ea5a14f9fc1874957fbd3ae5756ae8af039439a0f76495575504346625d0153c1fc97ba054db8aef47da8f005eadc804ed8ccbebce98c2ab5301f494a520a257c1bc553a1ed706ad40a125630b817a6c13914731d96bbec3643ffa0e26e9f357cab62bb9101f0f68d6a9e6c98bb636b95c4f05e4891889c1be012bb8c2768d657c65cb7f1ca9aa0d2462545baa52feb8b3769035ff942d38a58a7999a452503dd2d6a7d4e5cbaaa8fb61f53dc4d5685df37df370c3ded986ab89999939ad0a5dc59686f0c31eed99722f987e96edf1b3ad469b35330ce119943433597395b688326af61b1855cc57fe10c13c60a5b9c19173dcfa813c68680d9409b058b94e6068c720d4a8c78255a57b6b0701f4526c562d9c73e943aa9e89b574b6546a76abe3a6c2f8b8626414f2d554d37163f34b4f2d259e3355179ff1f64b0a4d3bc724085209b248183c21f06aa50cdef104a9dff4bc9143fb500cd7571298c65d1db2f758838d44a70f8a3c60c2ee3a155668ce62e0789b071cfa272139ee3e4eb046eab628464b9f2e8c3f8658ba3b06baeaad3af68c9417a871e88d4f1534144e8cc674755acd06ee88abc8fba8d9210f03ec8589d14adb4803cb819e5d04173ff1c81039e724697b1814b9ebf79889b132d45ea6232656ca30cc7eaf38f1a1cabb6b8964be30afedf1db0cd56d13f515e5bdd6fe82b971439b70d4481a39d71f6a8f7f2de635059f0b45ea5287a804648e9b6b1394c92b2ce1c3bbda6b79ad24ef38eecaeb98312ef573e8cd1dcfa63ef20f33ad97eafaf457f6618bd3df193d9ec7690728b5036b5cd4c497ea01837a5e8730b7f4b4bd21a6b6b9c5b085f0e72854171c7b4a0e6d011d5f4e59c0a9e17d5d1fe39038cc35eaffbac5442b2730a839296c66097ef21d372edb5682906100eb9b846d2851d773ca32520175a444abde2ab5707576ab05f7dbdf745c53559f2d566ebaea43e0fa4a90e45fc90cfd2dc06399eec287a3e7645211ac4c221000ebc0647300fcd411b24b182caa20d968142c2a00b2051c4e75005938008ed1620de8b0d50c412072664605746f633827dfa51745930793c0dd92310b3ae877cc6f573c4ce0b6ca8582cdc1776ce3b7dc38d26746bca82912d787b6d28c60e230b2c3aba63081777129f07002470be13aa72f9298a035323508d29f1e40ad84e659b9ee4fae338e17b261dd501a13bab3624fa5fa2f1b73dc43a6ad19d6793078bd2460745939cba76b6ce6266a1162c224b6cadabd41eb5be7aa511e9b285544ae5107141e33290dd08a565eafe455170aba68a45464eba53fcaabfa13ff27758a03b47baf441a387ca9a9e3073e389951ba7aaa30c84311e49fce080c85285117f9f602db74d9d43bf15e58b013043620fe7f50faf7da0d06fd21e8c441e8546d2685beecc22c612a0b3933513c46134227931afc21418d9749efd71818912782319c3386be54fdc08811b3c07887dcd366611dd299862f4764fb9f752d6e4b67b2a5371b6e45352a163364c542265409468ddeeb5c21a6085cb42212c9f79069b650e64a726d6769752385a08886c9c8fa272013f24a5e3a06964e94270cff0c87dc102645ca9d8355c4d212651cdc19d3bc5462c1eb5b05215f7555af0ed840c3683e79eda005baf0014a3a632c321406161ff62a09afc6c63f2351d50eb78a4353d656e8bf2aca4d3feda4b63d08fa0b919c5f9b56a79d2cc91c3407cf2bd65c3a175d31826e35c3d4cb541a5624880a0cd10df46228732f19e5fb3d9cb745a85828f979e90a3791885a91f379bee598b2bcf016cc9c3d45e0b8fe1097a1c25d840a428fea2ef69b2eda457f6592109f101e41156032e8d5ac4b08e1eeb6e5983ae5827c2b815ec3f1a3ea165ec9e4d9cddbb0b34511bb25985700592003ca1e0e7808d4c4a3221f953aa513deb67920d3e752387702d2ef58fb863d63a0ce8da9097578e598eff6a8055afe0a402baca703defc06c505019ee87f8a11355502669eab5c0babb00729827129840a6549a2c28d5017aef0473e1f70a0d7cd817c8303a6ddce54aa9258254c784aa9ac2050b10035e31267bcb329a23a10e282560aecb16564ac0cb59ff81c3530bc6c27effbf458b38dfff14fc7ca9e027e43251d0aab6a11360e53ad0a1576fb0c3c925bba21da19f8ac8548ee135575b2b62f1480d896b95fdc82819205980913648858de4a17ce29d1c96550b5df2288fe0db357e5ed46e7e30f819ba2413123fb9a26f68cb1bbb0e6624d622cd743825a07f7480ef0057a6d74467bbc84d28856157a41c6bbc8e9cce8d6f35e227eaeb36d4f7af2e04cf7763a442382f065f12ace475422cd850c3f9160ca7e40c2c52a3507b707d0259407d71f6a54a3483ec6de60fa231619c4a682511314348f5e5a0cb7ee5c654b9d08364041d394e690a304d156e2ec3258e01ff56283cf386e2c1f294e5bbab87131ced1f83fd8bad2bc8b3150cc58966e674ec1b62662d0c00e6dcad1006ca0bf9d950e4154bfd1535b2da023f985aab4422d60da5fcbef7151b95ea29f3375a10e01522e001ebfc0a5a894a81e7ccaf60fa953e01cd8dfe276bc971d812b34823b0292d4a853012e149cb65dab07ea2315cccea6f4d183c7deb50a02abe6e53e485e31faa4a710ea3cab33bd2dd2815608b28e66daee05a88e0142efe2afaf3d9b43ca0b3086ba65be42e02881ee05063b42a5d65fa0134ef6d2b8fb53e5282a85deedf58907b531cb4ab1e63b690ff6a170cb7ee222ede550b5cbfdd7bd70e32f5fde74f6423eb9a6876e8c78d39bd10b51a0c205d0a50cb19f3795e30489864979f76c6e82fb3898ee8871029064624dbf99116e58902427ae6763c07b4342280b3ac37cdc22ab8f88aa32c055b8f0350b549acf99247360c9a41c349fb4478834e94276676badda95ab3f1fff0699b83c4706fa3e8071b6baeed2e003ff810216e67eafa8565d4151dca9558baac8d01f55fd77c3fe80b10a8fde813e20f9ec826dd4780cca49d5e207ed1cc571cc4129164106e0ea1bf8f44d9d86e28fd5682cc5d9e142e4d3db8802fecc1deb6f07d1558fcbf8637b9e867c68c57fcb579ae20e29dde56e0ecf84d2e9381aab49c06d972a79f418ddeb6ca64915baf061f65453589993a29a19844c82a000d5a209c49c22297e64d87fa39abc3d4608dccb3f1239e17f163cecb06a668c6ac5d5237c0edd32a248aa42b63394458e2e26554ba6c60cb4dff278c0aa472010324bf2a32ff38a22fba2dbbb75c47d9e9e61603cf255ad3a1f0d28f88bae8195106070e7e61cff17659c4ce2d10062faf174ec168ce4f5b198d29902cc579abc4ae6548e438cdf2a39125a916c6cdf6b1043952ad13749217d0d0254f4cb36dcf3479ede739cff10b66f9a3a266f44f81969254635c10600184e55b31ed570cb40fd9975cd08c92c5d88dc5aa8d90890bcb56bb6eaa9aec6ea9f6ebaaa7e78f4d4ad85663f894a6a01116cc72011f9edadd90da6e4900ac20d4d206b3f4b93c04f2d9f0b642ea1764c0493ed3bbd0d490051ed8ff072e747fb16aea79692c9a9ee0fe2f17b82776358a9fa1b065b98cd5f80192a5b024f1b7b1cae15c7f12a9178c1b51d566af1e1476c1ad81fe67b749d65dfb7b89aa303c54322fcab4f2771504ec40f3717d46ac57c3dd1d140d2726226b8b297895332d331257522f84c1cb3b3288450920665fb56b7f4dac3983edfe22d66ad380ad4fbf32c204aa4436287b3f9df25b905c306fb37601db870a6f2dfa0b93867caeebc896234e6d2116b22d6b93408c0711452db143cb72c68a27aea5f67eaa28b124c6b90dd779465d7db3d770e11c180dfe5bf60c800fbee10bce939d2cf64d34f08ec8789eca968c08b1a5ae1fcf881069ccd8b1a957d51a83a5f37e69f4b9340c40054a809423181cc0a5b2151834f3e42213eed1203daa4807e30193e41979119bca5606ab4f60d8708396e8cea6ea03e116ecbe5fe384971ddf9dc3758877a8f2e864f06b8309c21d6f1305feae9b35c0c3ed83838d5188ff3aba514c7538c54aa7c0c379ecac852ae1f214efd8a5e08a0d8590ed9e4ee424a95f16f7bb015f0886bf6a9bd11f496b982d7f1e0322e909938455dc3e69197a061204bca6ab018687cff88994c59a35022688ae89b2ea5d774660ead99d6d79fe6d070074b1a8026984a073cd62498ad5b08f3009e34bdf3d61dd2d2f0391f035e330f1a6eed36523452345fad049f385efe019647c340bfafa810e14b7a2233829633aed1675455d38998a7be4b60f7f03e894a706bcd4d071eb9a74f39305cab9e2aad1791ddc8f7e21e4a79c8a9472fae6c7a9577e4dc1e16dac7951b45b382208881788cb451e5a0dc57b959ac018641650edcdc2e74f43053436c0f4701b6a6be21f5317d8aa7d78dbe6ddfb0b6fdb147bf2936431ea501f26392eaf310c5248c708461c5e5a8acdfaf348831d8853d6b55b3ac412aa33673a4f3af77d191ccb30d3cc190ccfaff1d6e3f32c1f1bb253b3218ca23135de963da0f08f6850a88b08ddf58bbc66a49471509c2a6dd26559db64378a33b34693ff5ee040665a9c0aac1d8b03444e5ee147043b9fa66e7d628085e0e9036097d5d1d129c2e12a5913268cc0de92a036c3930cb3276eb4bdb13e50a9aeaa2ad0fb469b5ed4d5739cf7494cc3498b01d934a011a37e71dec0c233f502cd2d7bd3ebdb2f420576a553bbe9d5985195ff0941a518d83b08162615893690405752d985bcfd88978ca728a8310cb48cb980627694a36b6e2c49d9a4e2d682e59248c61f836ce33661ded98626ea394182b072d45614a7b009535d40fb3d5a172369615833637bab0e243d0599b7ab5611c958bc785aec88515b8cfcb25d650018671822217caf1bf0706957a273b5b4d82bd14193ceb075e4982db007b8cf1ca87e570bb75b5907777e4a6fd27be03a0fe2673216628a72f9ee4aaeae7592709980dfcf935b0d0070003d7779325e9a72326b7bb71259566efe1aaa9a180b6360fd46107ccc9c281f70a6620e340e31a20383e36d4a6af5bfda49106998e9b3250c6ddc254fa79d0c71c9be4778b60f95b3f2e770d54b8e850bee82d2043c644cc8b4f71860e29c96c0150ebe5ab8232a68e05a3336669379578ecbfb8c3d72a5ef74f39f1ac4b432b0a47bf8a5c0374026325f69314b72a55726c06a3d8c252ed48327a140bdd443c50cec8a957e6606aa51b0740af704a2223b0d231fd05fd0b76df0292770e3a46f6c057e9316d587718863db855b5ba891f7dc7ed25b7bb5cca8bb5cbbafc64f3489d248096a89375a082e54be1dc9301ca23a7b61d0e21473e759c9e049f803b19ff4423a1e74888551a9d7f8654fbcbf24660a052da7d075e3e4d61741ceb52ec1752b0f4ae3536f84cfc36768a94bd468b431968d0f27655fb5081d5a93a3391f02e1c3f85b44c90bbd303e8f73d3d570ea76b3f1f1baaedb89240c7b640f79fbd726787826a1868192b8b9d90975d79486d893b09824c3748cf2fdb509b9540d1ae360052342af72696e63598aa79b86ef1937f510ac0b045441a7c5dca842f2ad65f4095278345dd6f28716186c5a1bfc1bc60e2caf3bbcf7d024655d56d433140c060ba5da9b59ff6006015f98c1b0bf1165a730718e6c155c680a8fe58c308dae68715d408b8fe5976c4c291fde9224ad695677ed7037757de51a39e99575eacc7842e3cf9cc4119a27024d418c3059ff5d111f61b15a524944ca04b52880cf6dce8a720f98576ebbfcd25631237d2ca613776dd14bae06508cb9c8d2e4f6c94033e365a0bdc7da9e79f2795532011c5814bd63519eb251262d12ebee7f9703606ae0149d32be1771ddeb103595b8c7f7dc2c9f699428de4cc6d157b2b2bbcc6a301dda5dc343bf4a817aa870456d05d5f4b22d2a1f0f6ffc45189203c2a990ebf259d9aee1b2fc53637a248d8e29778510d2ee4a223beacb8b92488589cd707e5b24a97ae3206b83cb22036305ca77b0edf5cc6aab42369fad98f3f85c700984b0998ab9dbf790a5915a1d50bdc67e451893ced9c30606326ae73a5786f9a714bea8aaa40dca06e045b5b4e1c45232c3a647fd0590fd6e4c7ba439d9d8deadcc3b002476c26fb3813e206660a80b03c9a61117254fbed207330df863e5e44e593b0548662d4977fc3cd93f9f3dd0eaf62f8d942beffadd1f30c9c5aab6b64a0fc6a716fca44a1e34195e174813949b8b21ee28f84e81413058c02d10428330d734b06479aa0ea241573e7b893f640d18a6d6319de796a34f0729efb5518e5fcf563987b3321a842537c37b3e06ccd1bf9ef3cbf19b9ff23654f5921f651a4bc5a962417cacf9866a1c53c57443aa39b47e928cc7f3a233de24b6c7db50091c12fae7ec71ecdff2ca8ee3a36be7ef3a473986dec122122e3822f5246cc4d4eb04a0255bb59292ee92cab31bd7fd41d9a3652c6bb81fcbf1f57de57788981a1db522bd625aa5093ab822da622594a3ca2fa24cd1e32813a5da78ec1eb3f9cc6476fd69e1e6e054babf6ec5b02d177fdc8ee56900beb88b654667c6e63173001b0da0458af002234f6f0fb4581a310cb7c150e9b43e9f756554618cbb59cdbaf7e3564cca922071572c753bac1ec58cc4b5803f98066b223f1032822bca55ce10aad867e586aceacb92e0cca23988b29440e160a62eec8efc1beffb4ed449ef849c38238ef4a2fbc0645c57cb644e723c25fb0fa91c54902127df98c1b3eb586658f6a6ae5ef85a6b62686d16f76247950eae2e6dc5d13783d3160318cdbd268b050f178e84b6e2f74a5b91f805312cd963df497115ea30e6ae11fd6e172aead40fec92373d1aef3071bcf258831181aab7f78d33a8e4e6e310440db4a54c039390714eff580609ea143262119269daa5cd5253a81a35096b2bf39147bf37a574f58b7dee42550efcca0d18cc101b3535812a01c0d67fec93f8822fba17c07dd64ef5548841b2574694d378e895f8aaacfd3e04cbe87119814698d134603ecf0e6c4e2627d48d6a455966a05a5a2a0a95ad7b319cff1491a485daa94fd3458197962e7c1e27e4f5d8f116133996bc2c64dabc26215d885259e49259037d3be13287ec1b2d8f3ba0fec1bb3a0addc5761cb5f2d47cb04ebada9706d12cd771fee954171afa66c9ad34545264940354f21e9cc82dce286fc0b622c82680efb7adafef5b5a3eefb76edc23fd63721693366f235b84818e604f3223983e67c6b154847f5087ed59849009bbf3c168f0e89db4b4f491e58ec7dad596b4254bba305bf4d3dbb2e2986e60eae5c97394db244f956a26aff921bcd1da47c4a414b64851252311c1a91979a411583555eb8b4224035e11f60305f48f6d128fb508b0e7a90df901a3a913adf63f5df1af5cece8c9e60ef8bdc8ce481339b38455ed96a08fa4c0df2de231ed9152767d1eda1f29380a9f4168be5e01a02fed263a07daf00d9343be6409ca57a7d30ba77d832cc923ece69d18f7b455764c2055dacc4043820b86485e89d2b1173b964e50009898a9cb2cf93bbe4f4c338b34bc2ee754620cc9fc7ccecee87ad42e913bfb219a2eff6ff77067e15e6a99aadb0f139e2781eee8830b4bf4abdb65312c778cfba45465f3c236df6d23df9f547f4a24e24e19c5d204431375e23896c2b9e1c91fa415f1484275970871900cad43bfe549819a5d14b4c00175edccafc0f522bf6427639e9062eccd1b1690a0b63ffffbd3477aee5611d7f75e9307c42052f1649d64937395b4c7a52d205214102352dac800f20992467f5a0f1d10a13b0e797605611956d515a98d01bd3aed5d28510a8a2169d28a8abd2519ec5403929b20ecbfcd8629740b9777b483fb57a570026b423aa0b1ba896589758dc1a68f13b85498d99c8ac8fcb5a0c1393537710e71bd4589e81d043159b073c60ba4ce37cb78f22cbc6fb86b465e2a4c2003c71586860ed8a09cb6edede1097aca67356a299b7a8d67dfbd2c9fe3c63b9b66dba8f2b906e658a2adce88b8c9802271c3b955b33e60514cb3dff123ee205a101c0e6eacbab97bc023982da33ae8818c13a3258d5d49dfac3447be5e498f4137cb87fcc6b6a2be26e214dc696c06a20ebfe68da88baf2c90d5f41f207d11c9627d2ffb1a4a6c7ecea390e628f1d96fa220badc7a54e7e4c8b2f5e9d35ee378727dacc1cd6230d86c97df20043f129cf244d5f389856be0adacffd9e8156402f061c0940d33facceca81085116ff995a62382f01cc07f521867da1fff3fc774094fb830e83224db556a618aa169162a4aacdc08d293aaefe88140370c4268886284fae9303b96d3da938b3a42b0f7190560cd46e192af1f598e13d053860b129fbeaeb78a462d1bb09922b9360b1614e80ce3e6865882041e4b028b289803e8d07e9b192c73a00114a00e0bff15764f98a0883bf7621b15ed5fe455af9792fbe5a6b69a747f49f42802ba2d88902ce8e5514c5c4119945c1aca43aad6059e971c7c7afc033cf5ac3c493c6fa45506c8c3110be419252989cde786921f3c2c2cfe47583bb0003fdeacba28a31703c2fdca5a4a5ab488a50ff4683a6288bdec93b343009417e62a82a0821a6afeacc032b8920d3403c4ba0c78558d98b5fb9e62062157ee8866c5a08f7eac34a825ed3a4342be3ca75948e927deb2deb93c6af903cdab0fe958f4bc314c1d8a86845ee11d65e96e85e06666972fcd12ad398599558c737ccbb772bdcc9bbff3fe78458b065cd917340617eaaf815f504c773fd3c65fd44319a25befa28dd2f631a63936a9e5466d003f7347fd57f59a909a244b388ed430d8b4656663b5733d855e5237f6781670b77958422c227cdaa5063f84273530f22490f13760c401a8695a82f8b2750a4e96968ef555a3395d12029f166aa6cea2d51c70f22663d8ab204113e7ad45ee8d754bdfafda0aeade212910409571e14d51def4650472057f567e25035fe9c9272c9e64f54e1d1117615699024933d2ab3eea2ef51bf8b69a1a8f0cf52b608cac153db25a934673e07c550835298f75b7c856213ef099f6820a6f49d9edd8ee2f85d73a0e2e52ec2c61952169dc2f131d1c777a74b539062ca1e271e72107d89a563b2b3d81f51936639637bef3179e6418bed70b18b3531050736b064ff5cd328884710eb0338b5d311c3ad6068fe719d938156f79c46b6b01984ad74e5c8406daf6fb30fd465cb59aa3a7ce87b4d12a497f95690ff650e54612b31cd6b472dc3c2eaf1fca25aa2b91e771493f60202053eaa8bcc5667a07a7d58b5b6721933df17593f933c0f20eece4a9f9b20bb1762c6c8dc0b4a950e0466a6787828b9e40b0f8460c470805090a5d9cb7f99de33d6d53dd4b542d1830bfef9d6c2a261c5ce7cee430e7fd4433d8c477052cbf96176b03c5ed3fa41ae3a0edb4e8d4ae9e3e1003c1bcc059365e06b41b81fc8c40743eabbd8547acac1a0863624bd346ab4e283121a2327fddd93bdd1510c372a22740652d599d2de5027714d90ed74fc9637eee47025ffc402319ede208023b87a580e17dfb242669e8ea0e4278ddd07417f89a839cf0ec05312d4cb4589ef9d738ec6cba9b284903190252004506d4338366a49f6533d0b044560f1f2852f32a012db1ec92e7ca4aab56a151d49ce7b3f76a245581c5dc4fcf8e913cd28542049151fe0021ffd2288260d21f4bd1f040a5db03ca198054b0097aae96181a8511f8d2130275046c8b6ba8e17b400a0c7d3fce5e87997510edd5131d7aaae12bb72965114cf75c37b24013d3ccdc0f43812a910924fb2107d50c9888d8866ce81e1aafebcbaf92a53b8e15c1f63d8f54447c8c76a8463df7e21d33801662b3923a676f23ef4c828601d613acc9732577a2e0732d7891fee468bdae4bf9269ce20d75307487c5bfda4385a48875f83f365c87204b9e96fd23a7775ebbeb9ef2e48b6680642f7d29a7968e57d950e04e961b60cf5c84c3657e394e5baa56f56584fbb461a6d3aa36c30484011c9ba9e2d1cb0d1ec784eda77d43989cec47a80c83b0db424b6a1f6f6b25600358d58917cf98a80f0d1f77096f9ea95d8befa1d320a5bb320103ddfce4b8c447b00b071236522f9bb10ac922f02a11f09c96c3a921a8fec90c1dbb261270d714aa0a8d9d099dcd8dc647339083b9d38adf80db8ad1b407a2e1cd820c75c16b2a987adbf5d40a6bec0bd10767ff06a6cbd4dd77731760f5e72e273710e8be48267b9e310ab191d0ad289fa6b255610746ac07ce31c7e20809f4e0936fd0e81354024cd84ed64682291461ff3700c7253499cd0177a94f70eed2f3d7c4bec2e35a3311da45bff812c28e362063f2f03bcfee308e6448413518c6ee42be485ccfe63a4fa041d420b22b06b4db6ec3ddc3363fbb9be0356f4ac80e4987a9dddbedf3ae04548a2e4e183fed0d40227ceff4fc4b66f80f03713a4b55adc5fa616982a19c1da78e67057f298a80c8379e0c967c621b294f0edc7a836b6e38d93643a0a36a19091dfc12e70ae048fbfdd54ac4f949f74c94a2cc39f43f2773cd76da89bc0c3e81f1128c14cb385698354ba7909f654ac997027573f0324547acf81dddb698e1195d749413eb81c88484f9026e23143d6d5c40672419fd73a052913c914e016c4e908694226bdba0c7049009cfb799c207dea0781596e517d5c1ed492c127a789c71109ccc53970bee50bc9379a719392e8609da5d70e342cf8c47036b22b5d973df489f22c1d462e4580c11afaea6c085ca1c108d6407453ce4bb03070fb172fefaa68b058ad4cc31fe4ac47ef4b80136864230b4b0536513ffd9a6395a5f0306e5167014ecceccfbbc3b0edc18b13c13d6c76a3df880ee18451b01b950467989277eb3bfacd20007b40b7b9e9d22484dced979b9d039682ce7a28c8c5c9f20889afe1b1ec25819f10e334405440cf03f47c51bdeacff4425614cabba84d09ac49298424d0384b2e66eab9cae3c6a04eb626eb70692e96cd02785a42e157b9a6842102d1fd85e1e47e3519add4d993c1832a4b51e8fb502f0d3d2762fc19bcd8c1d537879d285ec6ee992b8b09a3434348f8d7a8fd50238c5fe039b0c4b904f0f995371fab553ccbfb605d85cff275e272ee4859bc7c313dc02ec53554af8e200c48a2b85b5b3174b46771f5c3ff1ab6b01adbc59800c1ba38e46906275cc2823415ee47c147f029c66bfaa2bad16cd8104cefb420cdcc4f6f284232703debef58114a60296c26636e9093ca4e67707a886255046b3cdff77445a427903f10155c0bcdb25b7838bc687084086110260d26cd4448ef048f78d9a593822c836d360649ac9380383d13d47e974be4bd0c3e203bb35882a71b537e3dd768a9094bbbfd51047f5fc4d25357d7118b70000227dac3bf04cfe34eaa91036dc2503a66cdd3b6cb4810c2dea3049714be85be6a229d53189d120c6be1ae708a2a5abcd525ee9365024b93c1ec870932c74bb203756bcb3f97fb87a293e2b45f4eff636cd6983993e713f44f83fd92ed0f94ab496d43675817c30346c4864dd48e82bb830f07bf62e3908b23a6661ea16c607b11cfe2220d77a06cea5b0ed60ad92c64f53aa22f154574f54924332d3e8f81cba22e3963a332b8b3c1e3c29e962174b09ff84bb38113b3653d688d7d0abb8b27dcfeea13490b57b931a54c7184cfd4641afaf724ba10474b57cea0b17b900278cb155ac7753436dfa00d6a0883c27d8cb97112bc3aebd947f4eeb0ae63277bca949bfcb8c1ec2bd23b662f74470257e247e1495b393d7cc09f481788108faaa3475d8d03c7d5ac6b56ef107cfe46a70a7bca02afc82a279700e226e709be8b8102adddf973c0798b8198938d9894cf3b606119267b6851e072221b7c1431a8e3539a5592b9dce2fdb375a91bbacb27079f8965224372e8ebf163f39dd8e8dc0c583dde78352dcfd7ca07abe30387719ab29b4d58ff31370730605e5c7a2fc947ef24305f47e690384689d0dba2cec4b6a315883b39187ddc95624ce10fff4c3972e9113d95c6485aba201181c1812a64dfb8f400f2326960bb71163f62c6b373775cbda992d72bf7d1cfca9964990c6c4e3b2fc985fc7db48c01a97bdec4521de9821864df886426e135315d67218d2a341a6101e09f59c32d303c0b256b1502a4088d33fdfca0317416e4325b9c84b004daab90abd68a81ee750d276d72f4df69cbc7be09f601c3085f0c3286629c1f6a924956b2e4e6c9e156dd4d2838a5c54e984286e73cfb3f5296601c7e1b003c0048ebf14ab497ccc6fd4a5a4948b6c214d502319654ec3e8c32586372ba8ba8e4cb12b19a44ef65feb31627e4375acb8f2eb09b6d5a70a08eedfd48133a88401e2b1a260c2591715a60a80fda92c32ea852828afc94c83bd7978739d6a988b45ca66ffc8680e9747969c06a842a3dac224f07a0d739a08518808136ed50115398ade45b63a7958b5e691d58a1d7270fae3f60c6d5018f8f24ee4760cf63a754531826cde92b83a3b9775b88f2841e669a196cb9e79541ade748700204400cd60e81c6c82d14fd0c2fa41d4cc8e81996b712411931ceea6b2962e225272e325b148b050760edee1bbe025e1c8f80fdd33690e63264e28e364607be43f870342a799be1781e6b4735d959537497ae6807a324af5e6b737ea85584a95dec7a0c99464e5b857821d9e6a9f88948a89fed1ede401deb88706d1b09c8b93577c4043531003d20f4eb6e88129303776f3af661ac41031555eb5c63aab1865a7ed059d272e7cac48c7010ed4336143cc9cec0540296abb9734d58ea6e703a363338bddaf53833526fbc72ff80f02a126c83035e4824c46a6319e745b54f757ddf9829814d785ee422c5bb7923522e563820cf1bde95c03d5584537a2b8d4c71e4bba3467ef69fe7539d28530da658c0d0cdeea95122bcdb0f245330c9e938de44346109b270aa7a8ca83ea4e7decefcf0c5710c965637c2489182a69a26762c7dc0c704f2b5e54830f59818d1fe2394ca24dede5943ab7eba2ecbbf6cfd1483a86cfe2cbddecfa001c019b2d7d165c655b21eef7c25b732ab359db33ea200232bf5e7f7256fd6210c40e94a09743c9f199959b52323aea1830fcdad2a78b6f87c344887a599b8c3e32924c4dc1b819271d110e2d8f9f0945e1858186b6648cf8ec80216696e760735427ad4734f35d9d7f15c9eee5ccbf1754a96fabf744fe7eb694f63b11c611e006423914306e563682b82b56a7afd0fbbb6f6c3190b4d57ed6faa5ad348bc69214fbc4fbbe05abc9133ea6865a88db0f33b4be9acec8df92b8ca297a6a053a75f34798bd011a2387a3090b17452492ce74a93d4e07c85b2baadd7fcc36bca4807875c21f2fedea41eaf4d644f786d32d64b9b713fd9bb92f18c4d425dccedbfe53b7e1a44fbfe7483204e55a4fe2313c80a7fb2c6136571f5cfee9d2c62e9a930063faa9614c3076c09bf4baf3ee4b76e88b42b778dc66160cb336425a2e0002ff02285c1e1e2ca6df183875b15e3633c6c5130c1d8ce27fd83628a6cc979d05536bff9e5f65b9e9308f2cbb2247f8ab701d98c581546de848c2addcb938a8c7b1cd4a74f296c6c7db9963a207f45c779c045006273e68398c43a9fd8be0c38c62f2e0cea5a82c29258cb86841890120d98be9e550df257f7ac00e72fa0a41847df864969bbc22d58665164ea1a7016dedb6870bf0c3686db1c85521772a6850d5f6b45bcb714f1de9eb5a97cd6775a284a184170940f79fddde45b1d143b0d7d5a01cd507d0e10fa953ba6fa2df01ae081f9b0572b49b5a68aba259be8168bc48dd9c52b81a35d35352e28acab988a157ad545bbe5aedba101b33c91bdaa73807adc82bed6a7afec9fe1088b5e34f57468e4e855387a806f1e0cf65194e436a7982e52836d4b8d09ab9370021585aa22e7588e4185fd000e36533078020a21d63e5fc0c2d446be9bbe412c9fd4c35601ce0e041df5950b483c62cd9c84814024773c21d9f87746220afb5959616ccbb94b006129071aa4e2c2a4a70990ec87507aeafbabdd9e87fc01718bc052e9547ac7972ecb974a41b7add5fafe97e64211d76d484f1cc13900d5fe987f286e022ae6df472318678eeb0fd99645707f3b7cd622dbcb2106dd37120852f7bc9beeb839b79155d738d4a81c619728acf7a37ab338e0662161ac2e953d0a00d3b051117fc808b78cc0c60420c03781cad0c1c7758194ae2a66ecec4924b321ba9c0177e3a19119a3c9e7d77e53b1915d7e80e3a9e1fa3e4d48ddfa558e937152adb159cec6e22dff7febf18ae407018d828e53512004f1bbf2912352b6a66f87f12e8e83e54104def4b7e0b5a8503096e8cc8a4c58aa0498c21b6c835269b3f5be91a2ae9f7511ced1e873fa54b758940850c427bd0b77d038130db46b63baf7dbf55be8f625470d70528e87e91934f3eae895be60503a1357a8989f0236d1c7823a9189350747320b2c6a3cc1c5f7008c2e1bb3fcbf220768475dabed706f7ab70f3df738d41945b160423aa7a581effbe6000b7820b5c3e84e441711dcc2f98a96061eac7c302840bff6035e5c6a632c8f73ab2d47b51e2882aa372742ff82d0edd279f6fb84a82b0039101173a23b2c3b51dcbec3690f97dbd52e4068d2aad7efbf0c392e76d24aa9b9e248649d1b1fd789176e99ef69676ebba8ebacb5c88cd05114f4128878c5ca51fa703c1836d50ef2b7050d707de74a1a74b19df75809a29a49037f66538493fc4ff86a8e31c37b8c120a5e489facf8c69b2e5ae4a748d46807ee14b255056930397a9951ab3892e2a47076e925a2a3201e1a0acece874e3145b3561312d2fec9c47f70933e51d339c53f63c21454cc20912714298b2b1b592c2c5e86189777a7b6d2484038d448dbcdc2d47c37445599506dd175a052b5440605b0599c665f8b44af00d8c9e084f10825bb89c67addcc2ba373a357d4727852dda5a0d6c520b5d40bdd4c8352aa075542b83ab39b9a82a5f3a2a8a2ea28f6fe04de0108f7c129198325ce3725a84248cb575108060a1a2e289f32a10aebce8fc6a9f24d8de6723bb124100938343ee3bc0aa9155db01ec9222a9b30baa7c774733244f907015bbbb43e033b799ae65add16aca8c0d0a5bd7d4d3c54b1b7375010ba261570f048194ea78664be1f33eb5ed8c0a238e56307c79ae61235e82ee2f8bdb41302e17ce4df8f89de2ed7444dee7c2f355569223c085524e284c0b572c38ad2cb49a4daf557fa87433ca20f4e2f5bba8b285d716add1c7f8c0524881ad887a7584758aa18e1187d908cee67321e577a4bc174d1d51b6e5febcffe6ee5737043f647e4c90e590f9eabde12cf95d5fb6210911fdb600f84cf998b7ab3bb172c46cf9543900cd23fea6d8387f4ee29fe6ea85be12ccf1531fd56ff666054d233721e794c62a912acdaeaf4be67ba73d119554451370806dfabc49fa67f96f592c831f119678f45c346a882f079fe52fa0fc7208878d712fa2cd4e8ae5c48f6a5995f8724042f556215eee892266f7c31b70b59252c00774a946bb001893862f3e20f7080e2484fff7e65e7789ad523400c3561d22655a5d3d487c06db2fe481d489c5edf17151c6723ea458affaf71aaaa2501c0e28ffa5e05d133f095cb0f7126d7c3e7deaa1567cc9e9854114f73e42cdf77264db0a111fa0234930485ca503afd004794374a382a7ce9d44e4f23fc199660a2849234f85d373bdf96563b7bf6688d1f011195633a593e6f8c7106451ffb3832bafe099df7b8832b88766879411470ec2d35ea09eb11fbc89f9d01dbdffe418a482198d44aea23afff25b8568a1cfdd90eb41bee8d537b1f9499c35ae6a86cbc96a6b55adfa39724271d69c2074576bbf36b8dd2cfbe5173387354f9a5253f676a90716e10e6f052001f439d6729406addddc3ea55d3e2180cda00f814491a505125df0f928a3439ed9065db1aa21032734dfbae0eb412fd617707a11718e8e3d0ee8504ed2ef5abca468847be3eb41ce9b2af4140bedde955a7a73a50163d53b7c76be428f48154d6c894fe47cc318d299698629fd8a2c4dfe9d5943d07b5f8465640647efe139b98b189395631596c4be1dc7aded3026c1a6758f8af41e8884aeb77bd8538b5cfa19a1a9a4a8edd4c81b9fca34c173952bfd2de1b06af2743b13b917b71662778e7467512f5e18f4ea49e78cd09dabb2739a908a88f8229887d394c7b4116093994f75d52e580ca2729203c375d26968d69286d3bc4c063cb7db7dc76b7bbdc999b47faeede3d747e5a37901720ec500a054fd9259f3552b1784682cf4a0c0ff090e1922dd0cb02a297cad1b6e5596e79e3d77ec9491a037fc2a1084944b036a68bd491c8a9c768b4e35431fed99705a01efe327e6c3bdfbb7368484a2ea09ce48bbb389d7a42d8974a8010c2c066079552a5dc52c591715d6e0d0981840ac4519340dc195ce8040f5a646f80dba8a8363865b7fa8beb076314f6d42366d9ec50ad0d391e5c892da293b55b72ed984d823bb95fe9d917ba14229c8f17edd0c3b953bcf33320ce0809af89d4bba59b00225046717cca07e7c8406b34de347038baba57ee00b38fd53d075af5a5ba42ca627694c7d82c0b34948e484564c2878928b7283cf52cc279a61713f508bb752167c3c838a32530484a81d43a8615a938cd499af75253011377d0774931d8de1442e50a68956bc7e90bcd0773e5f31245c9fab017466d5b124fba8df9153485062781edf213e025d05b31ec8977537d8c8bf7fc0ae9e9439f0e74d3899e7440736c095c63d9160351c5d5c1ac605c4b6fbc2392a7db48596f12b2abb7ac5b784a1a37f8d0229191764440e866e6d336a841808634e01fa969e65535cd0be3f758804181fd000e3651b0780382c76a66147a08340096838393f4bc346edd61fcfc6965872b625c917b2cc3a4c07e83871b28d83c31855df31edccc57281fe8b9a642209338d625f0f0f94fd02cf60fcc9e04ce3cd403798d0696d3c933aadc208b624abaf98626a131b9bccc74b6afa656ce6b6de690020a60d78bef0ed71ccfbaa9933a3d1b30a67f2896298307caa99d7da1e2716b8e883073c6a5a59311fe049118ebbb7281b370f4ebdb4c4fdbbdc71ed57ead917d99821228875aeb650521788510f5a520efd0b2e73b706dfa9385d10fe9135f43708d778ede48633bf280e07c4c3a47465d49e47b0e6a3d0a31e83adadd207d0ce5226a9cc8058668a62418dd52bea1e997a06636d3db1ab77d754f4b8ce70efa5ab7f35b7bf441d36c56ba81d89bc0f037440ae64e2bd2bb8ab9b00778640486d4e509256877eb4993b36a21cc3604ad4c28e6e15317d5ab7336a86b9eea53d2dd3c3fb63c618679090e211d5ccc17488a751856857a828f5bb90b7bf3fe06ecfedeaf3a8a5894c583f4ec9cbbe10e6a0295d93caca1248e190febc52fa4afab0c58e0c57f517170553fbab52140314f8d7283bddebbd4a9e71265e8cfdfd25810fccd60c9fb7bdf1c36e08619e8c4f19b9f5557035951af4aab31765aff5557d873dda996a8a7e246d1ba9a06204f499b6faca9588c7a7a38904f220b69b9d1e3ffa7a11ac3cb32a5d8be64839008612686e5eef8fee1a2b074c20ccf7a158598fac06a3d360f9fbb21c9263e567726d7a06f8d5f421621baac04aed304449e05ea3512a5041a7c8e17984ba288d39d2f905fdba8d3845e5180a318411ca957cb45cac3b5b537559b7d512d98dbaeda7843529516147d10244cab4e383d575ec0464a365d4ba6db67c262919a224e9f79f69ca9984e2344b78d882ca27fd9dc2f6b4f6c65513caa707773d0ce4bcc3f7643e86cab5f093f849778aece13d5c224d5db2bdad12bd66be76f2a75da3d25b18815cf602a194640c81c9ab98b84f7ea5aabf259e57d9573d5f1261108b6ccbb73cda6dbe51f68dc84a626d57b9cea6fe7c19ae046c18d1a947d400bff652a97802096b1b2af30fe95acbbc369ed1ba1d90f5c1f8c8fb81f5a1b2e70fd481acebc9f1f997c08e8f6ca73d833e7fe7aeffc045fa8bfa22577917b7182ac314d823ea86e82ad5cf3b775faec84e05e238d1a73b0f433f1aae666790ad18e3902808eec6f0f758f57a4580f1e66bc8e1aad678b80645da3891968d49cf542a8fc0842ceaa5c842b8debf598112572dff66f12c9923a8ed00cdece525f08e8658372b457852d96a38d9454817312b3be3d14f8617ff7c89336de1a4861a5d06b68751f43ac01471453c9c243816284993e7364f1d311508182c0a2c2d57d231599885907f6f5ccc6cc03967c60328290fb2446487b2df6d9b2c0be40d57ecb3b0c38f54cd3097c60b69edbc92127178f764fe153faa606fc298f23f3e55440f140af84ea92b3aeddcd1302dee3e43323929b124861be0239b858dc90422e5153b5d85f0a14458004dbc8f42c09d5bd3e986e88eea016ab5a589d7d06631201fe20eba8736c9415695938205fe395da5d7d37920d61a19874e8c3b825eb730af4eccba04fdd3f4965c1eeba3730ae05dd0688a3a4d104aa99a6cb6117d1609c8b90f50e0c879202e830257300c8c17aa6697977f2ea8421a3f864ba27c94bb3595c88e51ad34a5d051ff808c6ee31f8fa6b957d499cc91425196447c072e8cea0a8edd30ef23dd56125d35301adddc3c4526126217c1fa4ce2c7a2d8e2dd34fcd317010a468dcc8ce2ccd7febfeaff16f6711aa1cdeaeeaa06fe06f82752814351fe211a7c26cbd9dcbf49078dd9f7390b93775d99c4cd894432f6fd94a9bf460b525b19871faf7f8d77b0a19168e0655f6bc0aff866914ccf0e1a86c9453d3b1585859c3e637bb20c5c4111a07a7b8ca9438d5d70c0d3f07d99898d8a9c88830f64142e706286f2fe46eb77f96c2141e86dd8b70add35ff6560b5a4ff00726e4f03be38d378d0478fa749d28cd59ac629ab9136cf98a9b8c90687b68edbecf985e3c8e19a6d0f414522767cceb05e43d5f71fb9d6a0af020cf9b94e112bf7c0b9f442b526d4c5fa22d4824b09317dbd30466cee570fc169b23c0f1afd081e209fb5203a980ee887b19263b4e9a87267526b0be574570bf13c67ad40c8c29554e98973863a8c2652e673cc51c9081ec789ab1fee1c6a1ac5305cd2b4fc73ee514f633565cf2346903333a533756cfceb46c5e1c6e822229554b3419547086eb345ae8407fab5920ef659a9ebdd53880ab17722f47d6b80763963cf8afed68ea891fe05ed2ebca480ef83115db4ad78b8e3d7cba0043c6426f248d8f3b60167800bc163250f290bbca1f5d3e00fec10adf4c96326366b65c960602184af7a97bf0a030b9c40687719fb267c7b8a06459e8c590240a668d7bc8e45c96649b7a1b034ebfef87fa6ab3e1cb8a4d844c5cfebf7ddb8a9afa6a774bf7caaa865bcaaf5d65944a96b40e120fcfac922d0976db39f226386029a90d6d73006e82dbda615d6e690810a5d065769aaee760790b6a06d9ea157f1bd6b03fd5a64f5892e8c2a39696605ffa1c97d4341387844e1070af49d17b485b0299091766b88bf50247e7d6938206dd8af13adc4a705d89b1e3b6ea811f9485fb772887b23a41d0f4a381384f541e136e3d7956dafea3bced0e59d577dd79df13e076a017da7370a2e76c96964707deb2303d687a251fbbe5d93baa2683b7f182b9354730b81dd7ed810a685e6da4a6b38c4856a04f5d236504002a92b3b955bfd717fd5d9a9ba3136e7bf7f13c83afcc86abf2df63db2e67bbb28c538ac8314ee3e6d5893c2cd464199e4d36f711c281083cecd2dc3b7570de72e1589112cb0f658b02b1e7b845d37918da09e67420b572dc547e1748ce0c0fd6c15e368af0605b089f560b67073fa0463647ab94ce5884436b5f068efa4e13a98721476a66208ad96047266e80aa238a1cb2b515f0a2fb86819b5914e7cbfc1ae5a045823fb3798e268dd9514d7fa0d1ec901ef70be7124008d5fe369091bbe8c6cd9c3b550dbb53915a0c4b01d07b9025282a29a2f537ae1be0822130ef8c122bfeac956534cdc918afcfeb9b06bc19a08dcc96853dd20db3d1fb6bb2bec143b2e743a851ec03501deb979add33ae644f08029e8a5c43c8eac8f8a1e1bd5858dfa928d163924040944a051483aafbee95895616687c6948c92b48d3832c997a7ad0efd0240a163cab29ea68d56e797b80319d3ce5a9a454f7383ef5fe9c2fd0d8829cb2b29c84896dadb3babd7a480037ef5229811d255fbb30fbcca3369ed3c9d3ba861466e007faf95b68a65d5863066114c909dbce3314cb97503dc4f77de5d4a60f9c1ebe91e6825659122d2269b6ba61104c823c651d5dc88f395ce486642b67059b88a6e924d8af466a4e94af8d9d9a387bb84c4efd5fa226a99870eac041411265c1a8018957fd5532c9671523b5fdee3b88c08adefb346361c05f775a778ea25edb39530f983520dbf0c6261010ce35773939bdbfb95a1ffd99ecd24f7a24484037d539e63ce51e851d293ab259626501443826ab20d8d5c765907fd6c5fe161bb9d80fb0450c6c1acd4f4066c104e589096aec9da6fadcf337a95a4336342ae0bfa9eef61a3c183ddaebc61c52293f99b5e5cc0fdba306e6c895f23b5ec3f2bd87c4add6c8d1474b3903750180bbc8bc844c47e39d2af141c11c3b443c9a8027a0c91710c71189ce2f5bbc86387e2e6959669e8bdb1b1838f71a6cbe5216b1c6b2935253951e432717fcda2a35474715a8045a8fda969994f9e0f2516ded0becae8b957e6d49f62ec5977be0321c59edc37b4c8f2d36280ae973c3af61f508946d7c781acd6449a621f9fe35491b4b5f47c970f64882de223e3d0350f5752882c3ba66564d0dd40f64787f3d6f622a16c9643228c7c494abf95e81e46ef6709c992ad0a34d87bc8207c7cafb765be2cd734b828db887e08fbc5f9ce0381c4f04477dc79f9d65b8d73b5d8dd40a6e5d0658b3293a5620a78dc8cf07530caf497835994a8d63907f54637902430cd76c1e30c189f25810ad158a080396b923570344deaa4d2e934ae15294e7af11fe3902a36c6efc39a522d9cfb0883f04a0e703e0ec869496c021f94c21bebdff15ca1a4c0959a5d4bd81830096def9ac9948b5b8195abaf1fe53691156da7611eeee1602601e7394de0645855ca16f469481fdc2ecf9e349004895a6b2ee3cd2ab6d6110dd929a14a92d678f86a39ae4d1dc5c2dc4ab495c0136d5932dfd836b52274ca011c9071a38f4a029ca31b7c88399203bb1fd2140847d4ea27a6fe9ca5a81ba58c10765d78da8926386257a81a0060b94e4660f01d2ee8ef0abc0a7c9c254f71bf20fef8976afed0002e7361c6628dba3c9e98d88a419da8f061f473e37533a8fe296f5b17a91968133f932592c2108821d41303361b8279a36f0ac712713c5fc2fbd15518ee000f89be77a32e6ea7cb59dd1f0eae02b7b06e92b3252b5e22a2b5e6d05abac74c53bdb2475038f26ea39f1e54c8bc2c842e013d8d541bd24e86bc61499483d9d1426723b76f4ce8313466f200b646f069d1c46dbe54123358f95e22d1e7e993cf10521b3c06479236570088a90f42a8682838c7c3dc320aaed2710df5d6386eb58ddeec26dad308bdb815bca1aa0ea812a9eb5c31029bbb4a962a693c940c1284f921580c444318a322ba5cf4357dd9a0310b0e79fe889a659d7bba8c34de3f8f7333cff25c3591dfbfdb3206878943588dbcb8ff8608dba02f6534a7b98a772555dce46992fffca5359183c0f9c51bda0248bc38f609d77f97787cd6d541a2f1f558046d0896d42039a4e7a208e2b178147b2b5b6439b0a30fdc24f017921d0e1c55a08dc240a5e34d9647489046911764d08d1f4c4078220d21b98c1f7e06ac0ecc350e3686f1d2af3d9a7fc0ea7e309dd1811af2c2e0e6be840700f292831775019905a04f20ca8f1f8eb15689090eee39201e17b8bc803751eba6ef576c08959c019a80b1a2486abb4a88db960ff0e0a18a8181fe0a10615964720f85cc1e001445ca3ed283fd291c438507c09563258e62017f90b99e6854d30d5a6680115664d41b889c48f018e575375abacae7293800cb53cec3b6cc5cf0cbe16fea286804a68714f65873c9f5bea01499006cf08ce9c4c0d25453d7529771b98864eda238b2b5dcc784493164880b0fd013ab2cd016c0f9cbe656c60390095b96848f204100d417cc9bdaf2f1c9f606b257ca1d22a1ade7788791d216aa6b163f92c6662c15680eb0d6078ae397b668c0744ef2a737c12e9aa3ee38b0276be0e530f211961948c665a1f72d059193bd55ca728e23a938d084a42902e3d710c3da2a103b720a4dc14b0572da63e52c7d6f9b7b41827f9975735f32be033cf3735f7f8413aa56a46b4ab1210b6b2ab9611cdd77be6796aa41e8e794aa07433ad247c041fdf3e5440640ce8c8c42467ad69a69054a7a1426382ab7122645cc1eceb250c24608dfec21b0c4adfa1f9888c376d4c677e3dabbc96545e9eb49b597b605d894e6b4f4ba48cacb10ea924a8ab3b0a324c8a86e7a880898a86149f2171d2d45f14635d7d8d7ecbd028508e4463d7a4345f2b211d00b45e2be01b6629d95c194acc1a286c3b3590138d28431badb8e107575ff8b18ce16138d77a02c2108363437a3675954d3c1fdf6214bf997985d1da7e3b5e4e9dab50a93a405027449f4b929fac955a8b258534f9908cb00f2bf82efdd90927a278f686364a97239810e09a0a9a9c6f30e0784aa770ff24c1dc3a1872437f0763cb138a713cb869aa44133ee359ba62bb1c11937f2797e2db287aeb62728d3496c4a04068342342e96393f41e98c6e6107ff2a16e5f8bbadd71e93b0b5bb0d854f908f618903d2f495ff0721227744bf30af5a2bd3674d03068f202cb1828004e962604e97ffd5afa06077aaa1d6b9389c58e1d87339ca18121ece6be748b3d5cb27610cc5ccc734c72a6bd2fc2fb0369a5991be2329361472887aad5453107c41bc4859148d106ac3d2a331ca7c652035e5508830bc6b9a0b18ac66915dd2a5c28e66144b901cbbe854c3c5829047ed30de85d2653727f4d85b9ec800b802bcb3689388b126d2a3593c94842e00b1ab4e5e307aba0675fb162892164aa87d9043305b7ed60288c99436bc2aedfb768a93c6cf98813dda830126d82dc87c01076d0f6672803b2fc385a5700cadb17f2ece9b7752537d57ee0b806ac432cb69ddc290a0ba79072db4b3d1ea2248239bb400c2ce77c0e2f197017a879a55e6e76f1cb6b8717fce17c3704731085313d330187fc43a22cb6a8944b0245bb00d728a011679a0e521273b3ecda8c3b7c088c146104062a056401483bd52365f9f2e2c59806b5d7d697ecf2acae51c0e041a8264d734b5cc2ba9713d678531cdb936f03e7a331e9ffb5a0d27616327cdf6f87f54a809f2cd2b3174dffdefc600800c6d87b4635c5fd49a8612c4bda99beeb6d98ec3feda72f48b99f408556f5ed41851ff22d7d0d833d54756c4a01f229deb6ebf89448b894f2be8cc757d458660129349e1955b3951939bcd8afbd52b338304e78183eaea2d2108c9a5e74ea5d1648733ae50af76b9e9cc4b5eac4b5bf42d593ad8c75f1a547f4f8a751f5e7241c5044a422b2e474fb5c928e78db017b9ab5bc95c1e284ce3705cd342c822f1fe144c8dc7ed172ce4927d94226dd6f564f7e387e5581748580ea5d850aca48b580c6141afd6262f80fe619f9ebfcc6092392e36493f2e297013a8f7893d081393ac28b9b9a016bbe3ffb885e5bb369667bbc5eb9ed48e5e4a1094b1c38c20018309dbf866e62de2bbe8001abe4203ebc403bd0ff0fad4a3bd39c2122db80195549cbb5289d703dfdee0588090a623fd4cdc1c86b142f9e355203c3ffaf318b7d98992e21129d278171adde4e23d8a72d6d5e541c46c11c8f90b5681d980308567cbcf22c67867991cb2fd99810c2aade3642296f34c29d21a01c7ece3dadf9ae8802800e287e2129170e4808ad36e3bafc2c2ad5dc051be92f122ff56234d3a239385670bdfb094a439aaeb8a0ea68e054a88f1125141d4f1ea1ced33b032cff7b46603acae8189ca7ab3eb2073663cef6d812b77bd7656eb85975cf74a033870608294d3649e022f45bdf8bc044c145b6cfae7567e5bbac91182aa022cb4434df5f7dd47bada8bf25db0f3d1727b3637648ee5d34f783de42df42881613869cd5660ccafc589273c7d6a21953e3f40f712521ea0289dcaef37de9ed19630855d710761318978a669ba49519a8bf4b8fcf20ef2766a0e116c0a500e766c5fbf37c0958333ba7d2f6eff7dcfee959fa724aa411ebb6b3b6c31292863f7f996bf7729f73bebd13f644bcbcd61bbc125a9323f23ed72e8064a333850d893e35dfbf5ee5bd609f65316766d98413e91b01cbc49c263a9874cc5123076719d80fdc436770f37d7a9b813f01a026f6aa0f302216ff329835004481f75aa4bb19a62511d325429c17b663b623bb640cf9c114049079682667d4aeb72322c80a5d4d449542cda3ac7c41b5d52191670cb62077f2aac9ab817cb50b9d97dfc67df7bae79e9bdc7633227b85e3fde18b4089a7b44f0921461192bb7290e9560a44c28d167555717281f477adf6c0b830148f31b35d3cc4cb24414f829fcf924582b265136cdc3c674330b022b3419229ab0f8074e3be364a27890b8735b5f82beb5e60a03fc0f4a1e689f5aaff097e75a85fe59c193512f8a14c044b5500fc57095368cb043e887b2221e6e5c9b28c2bfd59ae2cda8b8f5c35f221ba6858f7993f5d0d9f61e301fb99be9e6b50b1ce923ce44a344c0cf84a0c6662151b635a89c23128d8859fae941d17da0a9d38d05469a1918e77be7972879d1893a85a07ccaf12494f33a489120cd2d431a359c77b9e8fce591f1f896f5712ba750a430f44d620975322323aab66a81be6a493b2a78bf87422cce0fffddc660099c9e555e9804f8962d536be2448cde89e2b234bf5ceb4b486cf36a4db76af1a7c002eb16d5241ff0049982d611652ffee81a175d666731bab7812bfe4535630886916f0800558b230982a222984b5171001db55de3d8c1a874155b69e001fa71ffb0798b29814f2179afd4fe9051b6b155281f5e69aa7c8bc6466f0962f2bc258c2d5c1b19bae840a398f0216416798d4520be5f99d73f056e7a7aa83bc05151cc6d480e299adf02617e857b43b520e87a48848ade328388939c675262f98e0483d0bb9491cdec26412929986148193d3812efa6994e231c53828e1bedbfe317c0f0efd48b45639bc4243d4000268ff2938aefbbc2dd8a958a3899c40562dd0688bef6f47ae5008f8446082fe1f07bd60fefe5a70e33e0aecfd02bf78d662f0b0414ba15a8366098464961605add6567fa93a8380557f5696227182147d27298619b1d94562ad08c1d3da9bc0589901862e7820035f639553151b59417ed810e584e482623a99964e364d60e05282f42ab363f75509700429dc3b13b1c53284114f70669728221ae0b2673d1e3ba4cee475e998cee75f55487135e58214531f272ec50a420f9da193360c18378a3417a50090acc32e7208e4cc0b2c70e887a02e9cab13c7ec28aa292a11e8471833a91620e0f87c4f26b1ba527720a0eef5315d64c704f849a2f9ab0bb66f0d08557bd769882aa0283b1d9fdc3c00e349301fd1394b35fb80378ab524a084da7d963da9db6d45d8f9c0541dc178eb0880c9d96f8127b11a9cd4ff02a29163383f34db10dabf58b37e609cf95b7e328efba5dfa2d03096e9e51720a74762f5abad6695d5ac8895f00176c72102143cf84e651d79dd64b88974b5318a2db6d8c7149bc5e6c3e9cbd773e2385ad611003f172712b2da44d502218b6a61de7181b957c6e9b9d58fa56c8390ad30ae8b4e3e28dcff7290fa03b762d08e73395ea76e5d5ad4586df360f798bdf4089ef3a7b78c1229318873081ce06966cd0b2f8379dcbda399bf573c8077a07e00b9b58b76af982e8b0096a1cedf7a1dc2eb4ce6cd08da312a041548422899e44bb738a006cfa452180534ef75e5b2b132ac91deeea53b2cd568da01ff69136f79852baebc85cdb5f7891cbcdbfdfe9e831279ace5ab071ebcbfa7b1d5d962bb49d7847e56631d3462d54e361e8254d35c013646979638650a7569ba9604976ce98d09b38385be2db08e00a797a959e53b0c8de9365ab34ad7d4d4db799eadae830a3ede32221a1e32f87571ba3a020756aba3442c92e314810ecdfb27a1da4ab177bf53bb4dbb5b5720ee424270f368f8ecc94daa5cbdf725b1b9199125124d3ae4fe182985d1441a5bb15b2067a6b6790c8519d4b0973cf6c398483dc921fa09693b22c3a4221c3d0aa256a910ee478a3fb8c866115dd3ffa4a90be984b65d4f8c58422f9cc2f75fec4bbcc6dd56ce80ee27b5f81ac8e3cc9f19f15f65863579e25a64298015b24b5f2d7f74e9f955f7f1d07f1c6a7f5210d0294adab3eda5cb67294ed4b63fce44cc1dfd57f09744ad4523ec843eaa017a8b4d4a021c0a0e688ca0e42cf46bed0f06af6cafc1f7e590c95e099c24bb1e89036d38e41a6ab756f2718af2b7a3c88066f4c9bcc11595405d39435c7971155c95d43affc49486559cc73e30bf49766d8828ad27ee70e5d150bc1e5c33c18be94f3be5859ed8d9fc167069f6a0a49512bd9af33ec28e0a37bf515b14426ad57e643284691d925c079b741c188483091896178cdf5590e34bd44a70419d95d3346058089cc2e2f41e8ea838855d7a16145a70f2e6f8600375d7eeb66f636a8e7ba4ba06cdca2d18ba0e04a8d77479b012189243fc76a1b5db55b5bb8873ffe6b4c5a826e0ded0262de2c01f5e2fdfbf6fe9e3bd10923b697c57e16464062c4c3d5bc322b994be09f82252ad4f2ecef844f8cdd63c39fb272d4098b79b22fc01012fde7c3e7a2f73d1002509070a0dfb1fd1506fa4618ebae4fc6fd7d05a35b816a301cb2ba6677e7749e842eff28777c3884c0566eb47d33a2c6c4356196896954af5e84dcf049bf6d278586c3f9b85fac039f0590b084118e47b2716820729b402fb9f726f8d86343f91854fbcbf627fc3dd77a82412aa2f18b7a13a798430cb502234cfe5b6f2130c3bbc9d577f765b997a0e8fa86646101303a49fd10936b700986630a3ff162e73ba6d4523e1c2be1dd0e1b99b7d5058fa01f7b78d87598c47a0f5eec0c9cf13fbba95538efa4894eefaf6ba61a662b9642b4129a5805dbe51287269100caeb87b69f1c1386bb141c690e1a990815dcc54ffdb3d3c2fc5f9aebdc8f3cd202fd2bcadfb7d26e99fac8bbbdc8d580dab67761ed626366295512fe3c8a3f7b050d6c165818edc0e469fbc99370921b8144d04d5d22801485468309fa22c32be8fec62f8be3208503fef9e37bbd61a64b8eed2ad3e999c4b887783711925010342bc45d42f53662c72404d20349a945f4a646159a6ff4ffc578e3340287932418676a6ef35c091afa446f120a21d3bf9dd1a5cfe13644f06751306cd26a08a003bb59509050192080dfab035b8dac25d1eac689a99015f34e97a7e4240415c00747428607256a93c96da15ad766cd340f07870555cec9a8968df16026f1d44214fabe8fc12fb7d590802ca1cc60268b141f7b6671ad30956ca730da9a5ad50941b818a44b0dd9595186db8b513d54fecb508a68ba24dd2598726fcd8c061ce796cba2c6e6692418db98627d2b1bfbada72948e7fa79e10141c75205c285db809436eca9e59d57c46c1e2af398f555ce200ea8e9147bdd01337e8316ee9016ee801eef50637ebc971479284072099f61f598bb29355da075728049b3b46a5d08dda22475f78db759e9cc8c76fced7a03b06921020d3bb8f8258473ffa78146a0e7508281cc282a9aac64981a5f3d8129f75af5fb80364a2592b1dcd595d60dacc8742003807a05cb21b72d1e2189d6c28b1da4c5e993f0c7c9a6d8342daafa0719e6b11eee98c60a9ae33ca6816b00cb768e181be59cae11042c649a8d056d080dec50932284206d39a6873bae0510761243e25e63338a61589898f2b01341099c162a2bda31cc51c4abac376cd70b48fff0bfa67e35c4eb2ff5460124bba6e01d3b4372775346d6fc476418315d60c7c8beeb5b746cb13416eae4ee5a0e2fb826e9a92de05d38e92cf622085172d7afa9f0db3cd5fd9396d3d2e776b77e35219abad11e7a47eae0782828ac70740247a7a7c5c0e8e4b4ce2bce9020af96e5c0ef1a12cf81caa7a70668b2aa79739f34c7ea0ce22fa0e689067e7d4e1e2394ec1573bdac12cd4808e086c41e1f83bf8fc056f6dcf6396adea9cc6ee2e9daed981f84161cfb7704d350ff337abbd66d673ede3c62fed1b157221326cf96f4e6b4ef2aac7f4ff6b79a80b25b2415536dad760d1ac1bd0e62c7e54510401c0bed2049418ac4a9193758c0ce11fe686a2071d27612ab426d391ace54fda12efdd1b67736224f0764d8162dabf93d75b3702754805d02746d18bbc1b9e995ea70e9c036b8fd6d872578e8627abfc67260a4d47a22847678f8bca5e01c6709dd967627950a439e4659004053e6ad51d844ef4eb955678f21821e8ab7ebb1cf2ef4995858337927b88e24a9b94d659215a4eba8d34c451249579b640661973e4588ff678bcc6e4f5b62f36c02d187af8565659af65f9e9e6d432e1e6ea86ee8a3dfba8618f626228115458d344e6cfa46f1ce8afbd17c76a2e0bec7d395d2d5a3700febabb4d56f2e6d32a1fe4fa7f1977e69d299b392a9e7f183f83d4ce78d58b50dff73f6b6d5f5d7ca6d1b31405c38f859975208efbbe89724361184c4bbf0a1a602888f0e3a8c352a69442eaae527ce96b8aa914ba54e2bc524f82175ae04ce591f2c319caa7a96f8b2ec2293562a8f47108108a269c8409e74d26148c560469d9465c52523d63380d168a950c4387bbb1fa0ccaca3100b5b04f714d88616deb540c4657632d63cd6723478b251eed023c5ba9521fc0c47dfa57211c29b5fb7114fabbf283036a1a1add2cdaa9c255b5a5f1ba2666d1c7c60dc57af41aa4cd1605f075f53eda9b106620cef1ac61aadccc25ec9305d585ea2c7b03b1f9933788691693b3ff14e131406093e3d1ebd4d8e3cd619173e30452b321b0c71f798071b9070831e7c4e22750611867caa2d909c8db0b3d596d520d3f3f8e690eac58a088dbd7a4317810678d98d002dc3779c2323d1ebf0dbcda240551797761f5d34dcb53a64720e57f863d45994938683ec2736d8f1e11eaf85d107f67c75114fd3d6e1d3d424dd403d4e4c168b82640a9067c6177acdb5c9515b77610431163b54d639cc7d8df794b0fa79337d470034f9ee7c99b8514d5dab7b908c7334ff204eb11da4f0137456f4f9c9729418f9ef214a45dbf5da6687914a03c14f444fa4d83bbce99e4ee0464926cd8887e203fd0d2dadccf00bd97fafc275a952d35361475d3a5f106a8021a85b815a0a55315175f05d5c42ac0b85948242859cb768a3eb9c96389a8907e53860da55f4d714908b6123b38ee3916ca5e4e6861d64cfe10c6dd734604517020ded25489de1c1f262a5cc03176d21402ecb53c65b78a42c4e329e60e2891e2cc84e17f0ac8ef9bf0da18d462f9da2c622b000044e4bff9844a2ce9c947a4c33014780db6ce028e93881bb095bfd6f9c6961e5b56520f75155c0a801e307927fc415be47203dd21c86e349f1ac8bd243c7eda7f018da8928cf2dea55693892970358c04e0bbbac14b8181cd2bd34e211bb9d418c5d6fff7c1e464e29e2a4e12691d7c442a156cca2377ad0032525041fca103aaed629659205a55550719bb6a1411f68e25449a4fb88e05b9e02b04ea11470b31192020a280d82a1469eca0969110215f93f8d24082ed48e222cc83c496ee2c09aee3caafeb288ea2bd3a3aeea4685b146ddbbaf6f7f6df7b4b29a59432e8085e095d09da64ba48b7e77518d245da70f777fa4eaebc051313728672516b6d3269933669da79fa34caefb7b3315d320a8d461e1a8546a5364b70542853254fa94b0af599c8d92963610465e8a41e7bde9536b9e36e754f3e177649bb930fe9276b417561d79d2ced79b57eebaa5a9348260e6ad044672ca4683f7dae2f39335552391291a3182209d9d741cf4470ca9eb8c0a9ad59a8d6883dd1c0d9090b55639d2db66e7bdffd6ebec277bf9bad20f316af1cb1ad309704a19acfc58e75b916da15532528b1b10e915b91231b5b1b6c0f3fcb6057a78576f5186c1aa8841276edd319c1e96833d455c1daaeec1b6261d589e814b919d9d58fe47645b22b10362d77c006b99673b2ed9a9f0f15caeaa250ed0b22d22b8b427f8d02bbfe21c48c814acf4b80faf9b500ec663fb78f9acf6935e7bb0ebab5319fc619678cefbd18e79b2f39c3d8efc62ed7a4385bac02ecd46ffea91602e208fb8bd68ea163d0f1783189cabe6e7dc47e4b4f8da9b5a2cf37b63151d62f8a19fc489b708f267d42495d67c05217edfafba80b5856aff445fbf7782ca90b89c2b4d7dfdadc3a013b87575aaf08d4b952175067ade98b3e1f9fce35856e3d03a08f59bf36cfa0a45eafa54027d01867a1b4d96ffefe7e262de78c04bce50cecd5990705da387404171c61e38c2990cfd5814853686556b5a4dc3c9630f2bef7861fa6672822b1bf73fc408c43f52a0143a988c41f28d6195d7f60aea534987cefadf7561b02bf94947baf4f15d662f0ca44a4ea6ca933daa9d310ed50f25565f69aabd3d81a5a60fc4ccfb062200c4f7ba6b8ce159b18f76094b5dd346c4c6f9a9d868de9cfa418cf80ca6a7641a42977c42111d674062803ee68bc6cea2e7486466b85311832693016e150a52e22f991d847118770e8349c061a367983260d8e1b00d8d8a4d12134b4687638b2e63184207963cf9630cc2c3675189530f45ac1cfc4a6d5828f0e95273f55be525e92ce9cf5c53a7df9b495b1679d71a12fd67b542f674b8b4f1562759babded9adedc15d2921d66a435085ab0ad3b0a6f8a9aa332e199897aad5ca1129d016abe8d49eaceca4555facf695ebeb95fc4cbf1448ebf8b6a8bf5217f0730d56daaa336f2d0a75695dd3a98b85424969be2dae615c8072dcdfe76268d2eae720c22fdfeca1a7a48e2076761d042e6d0bb08d95a14c257ecb8ee3b74e97a45d7ba97de49ff652e42215c1919c5d0fff644f91575287f691e8494e94dae91eb58b77fc4ae9488eda06d04fd65b5aebcbca31f6c0fbabd5ac34d731b27988adf65a6b2d0eae3f2a1555acb5d68a84a903ef91381a0971afc86bc969e32e697897a2a82ccb2fbdda62a5972fa2b175f4a1f926a7b6ea0193df4ac5be2e8e9e268eea88bdf4fcd549d1929e74d12c49176b59e671f4f2a6e4641e451efa929fbe74d28baa8fa592973e3a8db52979c8dc4199d8c2f2fbe947a76459c7df417909857a6c61e2d78cc341eecd02a95bd411bddacc91d3ea0fb174d1692313c7eed10f9bba45a2491bfde42517fdf4a5929f4492491bb74872d14973741a8f71e39d6f76948ef768ee28f9583af6bcab570fd49992b963e4a38fcc1da5e73d66523932ab07ea8be8a20f5dfcab73ceb966c76ec9d1acf973a220bd92b3d129290405c71fbb3459d10c60f2144051347958327aca512a37099de461f8a18fbe0c55aa564ac8491e7ec8c5a7e16c71c4aac1c70e4944f8d822b388d70e4d16193a19bac80c4d9c4d7292f834d1b38b5a14473d5e95d441f23014b144b3061f3b64b242be43e4a287442eba6834f2d0cbd0c9a7894e47178d1e7ae93714864226890525c9e431ded0dc31bac8dca17a1e238d64f218f758aa9cba094a65627b96989e42a14a272f9d4aa35289e4a558f290e4e5a954f2902496c2d054324d26a7b1e19b4c5add6159965efa1796e114401024812008925c2481e0e869387bb4f291292a475efaca696ef9a38f9ec66314710d9135f820957cf4a2974f1b77e957e43b462eba68e4a28f5c1479a9749a4b7abb4b128be43b4a1f392bc7e8221ee30e99202d71788cbb475559510a788c4770c1115ec06354e1fbf98e1cd6b589494e94d63d47dd11a98d61ac33c658639cb5cef95a7b03d156129041c47ab980b149dd7e154969fd734ab357d72668bfef69dec18387e3fa9302042988ec30d49e1b1f5bb7736a63a761a8427aceef0c7b7cf06c9a751ed467dbdc7290ce60e5a849b6761a68d27cd8a436ae426acf571fea72b383d66b924d03593668075d3bdd9f0d798736417327045a98758bcb5488d4026d4ced398ea20e1d32bf3f95a50fcad1f38b36d8d841d1b46df0c3dadeea5017ec3a0afba385d8410c521770c439e79c73ce39e79c73ce1608df0067ec34a69d461d8bf45eea34bca9991d7bc6f8cbdfe7f933e9850d6107860ada980f16352482e8e373b2b85d9d6671a6a012a9a440402318d1a65ec2a0acee6363e4a68e8788e088de7befbdf78ee0f581ab4d824853689fceb62e42612ffe546468d0dcc001801c6c0cf4126c5c02ea372239b6a9d3da220a0ab304b0327c5b51718e8aad7140350eb4be5d991e626156e3dbaeb5565014d532448ea31e6204290c399578ca0765dd293fa5ac1884acb75b1454867d4031157526f3ea8bf531d7ea229e399fa1897d70e27dfef14632c7d7c71b3faea2879cdd8ac3d11914dcd457beea2e2c57aa26d448e98c71c6cd270eb8ab188658bcc569f4c705dfa62e0394e90cce8d0f6e9d6d6ec76aadef25b3e3cfda6cedc2a270f1eb9d1ff75491c32ed8d6f38eccaef316450ffd484ff114ab6806b1430faba9f3f878d76e88715f76f06f508fc70341327b48ded852e47d35bd0381c6b79be55bbefe10383e3eb807e2e32a700f16e26361d6b4fb33f18ebad4689a07db7a48ceb287c81b3beeb478fd1e2dae81ae2cdf2eced599af565facdb96af2cdfb353792e2c0a95070bc1432cccd619bc03fa8289f4c0a485f00e0aa2f86951c427d48ab3a86460ce9c825dbee1dda5658c0e4be6206dd38239481bfb875f6fbdf220ded5194a5f44b73d5bccb71cfedd2b2ca44b0adf6e90e5690d505943a1ad34147d8ec50f955af1a0dcdb36f3a8972b9f83f054aa7ab352e8a8d05d950a5f9c2a19299d516e2ce6bc71aea7ddf8c7a7a7c78950d59f383a75bf32165ff116cf3792b892a20cc71dd2353c0efefd68fb4b27e9e96860babf1c0793f58f837fa67ffe387c66cdaf90ac7a466e78cf79afd913490f0bbc9b7ff150971c6e1cc7711cfda56fd070e242196bd972141416a3caeb70184f83c7f81c1e7bd0657f83cb3c0e6ec4f7700b7c11eee371fc85c65fb7f1ae19fe86bbf899c3bcfb8bb7f1980cf8051e09ff5eb4537ee7084739c2cd1a7ff7139d7b816f81a762536902c78df9283f47fcebe5273a46dda8ebf570f857d00b3c77430ed7f9167098aebb315d679aae7bd37528a6eb3ed375dedb3d9b5f2161d566376800514014f067ab5e27ad9c01247a14914301fd45ceb4bfc81bbc6dfcf51a0f3a8dd73ef32df7f145b805be871bf148b8ccbb3cc6d7f8119f845fe033e0df933838fac4519cd6bcfcfb5ef92b39f9d518a88b75945f856185e4593516ceb3927856069e85c4b3701766bdc7b38a7896eec2acbf563d0f94b05136d6789f79fff1ea61c0dcc180e93a17666d985ea361bacd9ea91f3a407cd78192da33658c21ee2cfbd78eba588ffd4b475dace9740a994c2693c984b211f1abde85b1727ee800799670a33c123935533cc121837019535ebbf900f06fa3bc0f1608cb838c0015bc7f1bdc7fd7f0dabfd71be66911ab5eca56b259157296b2a56c30453ccd8e0c8eca8f0d776b4dcebe961698ad1dc6d7788c9f79ec6d5cf6d765fec65ffec4673e87d3f896d7781c6ee3b3cff03478ccbb3ce541ff3e6ff37b80db955bce732c24e9e968404f7bc3692fa6d34e9aab5e2e2b94a49e8dd148b99de35f475a38fe65e4c5bbb19925e9d14077c334cd37dd7c999f49c3af7a35bf4272c2820539035d8c1953b6db78f7d7d3c4febaca6f997f055117eb4f6281c8ad9370a2174f8c7fe172a350f9f2729eee23526e3422c1c4bc70f1ac1c7b5a9fe1593618cffa41afffd531e30ccfc26d7c0baff12e4ee35b7ce659fce467787e192ef32b2efbecb187798c3f1dc6af48f91d1c3fe2fd02ff46fc5be01f05c75f14e12e7ab81963ee14e16feef4706fd1e2249c8da9d8ecc9021a536962d4dd2a5099d780025d99eb2e2cc8c69c47f2028d3916e8695fced35da52a4b528e96223de82dfec573f997917fb1fcebc80b88ba58576942c566adc3fe75a32ed6cf7fe95017eba3ce6ba0bb8e05e78d2f2fe7e9ae5295a5259d96b26deb2c7ed55b21b1e7c9cee62b578592daf33bc9198a8b305aad083cd915c5a4f9d83d1e9c7d2c8a60e1bd2b5bf52ecc3a089665cfe665b36ada8673926e4f95bf19a6f277e545e56fcaef10e12844982b241676cd55cf48595d8cadc0629c2b545250ccf718af13578bb53251c52849a1629c4c316284e0f739cc46f9d7d37dd27299341f5f0b643ded4bb2adaf9ef6016deb26ab1e4bc7e27985615b47ad7ab4970c68af1dd0583daa4d5bf55e2b78d9008761d3563d707cda4b04b4170a68af166cebe1d3b0154234d60ab131d0ad062f8fd0ce060a851e30b16f68a7834ee1a39fc9ca41fbcc9b243d37497ab64e2244dbf12649cfd6e64d9221f6ecf92ebe9755ebb1b255cfc26ca6ad7af86d153b7bee54744e3e84b055052fd0bad01d52afcfcf45b27bdbea9e7d79eeeed660d34cbeac3555d7e836edabd1de570be9ac11421f7b4790bf13042b9da1dd864076e7eedc9dbb739fbbabb3f31f1fcc0212add6da16c651ff5e4ba1b3383a4316e668ddc569ddc569ddc569ddc569ddc569ddc58535eb5dc0e972cee7dae80c0cde7b2d126b96ec6c66207be62216661de6cc47ca7b75805c9d0c54eb0de495a0bc97622baa6e6b2ed9f4a66ffa664febfaa6b2d58ab4d72c85485368a3cfb67e751b4ba1b3a7d5b57b816c5a4bb4a9eec3d0e7863ae12e046265e313a18fde853e7a17fae85de8a377a18fde853edb8eb8d0a7bcba5067f4c95b105b25393b9180d27befbd18536caf88b6635ba0ccd3b79c911cd13948a806b22d0d0264d34bab69553b0775a1acd6b50eeb42dcc598524ae9b5ad18be37fd8485598da3d6b3112b038f58987522448a143162c41e3982646b1c18644f0b86a0be41ec89bbb71087bf5071a84193bd4b706aa3f04761b96aadb5d65a6b0d3eadd15a6badb5d6fa027ab5ed7741f0662ce82698d03affa9c5ca44e5bda397a2d6e9a4d2210297749e5b1c4a949a0a9191c13e469b8b20d2149a58dbd65e77109434103ce153cbc66e98b3fe00e8b45c846dddea26fc669b4f5bacd9712441495365d979dad382e0bdb5de7aeb3569dab3e7d192397f4a8b8dd12e14f63eb1ef0d7281ec7b7f8cae5b245676816ccfe47175e0b7e81194201078815417e8029dd7f67668de9c084a6a4ff042b1adad15c414b8ba219a033a043a04b5088f8782db0990d4a07a449ba03c2d218fa156944d03d14044b9eadacd9011832ee26c0c567dfdd3b8061f9b25fa8e9083ce0a813811e03186aadd818829cca626a557a7b431dae3e1f1f02a499253a4784a3c53a450a512cf14289453b284429dbc4424c2ec1293269e48d23c9924e9550a720a1e1b2379e40935050fea419356532929a64879e549a578a9295028d4140e7ea52c04f7dc2aecae44c596a2ced05d322b4fa69578c84b292f392d7ba9fa2d475e864e2a79794d1acc2eb93d79c94953343ede3494979cda7124b1a01c993cc65d86dc149ab41232e424d2f12ecd1d239197a49b4c260d66d79489e3b44c9a628a3a232a3d548650268edd2793e6e3d6908f4c5ae5d9a53a457d29890f7a09c4a249ab2538a3b1a3c7f60c893df0de417a764ada88bc96261fbda8542a9d92b3d2c8452413db93741a3bfe8eca471f9ae0e71d5559aa1eb4b090936f499beca127b9e8474e7e28278a31748a83b749a7e0d93436654545beefcbfee173080cc3fe61fc658cf5f7895e63683ef6fd34fe72aed56c145763ea82a3b8f6bbf6b3d908b6e29bf1cda06b5007f60fd39afb55d7919a906ade22386a8d5d03bab6c09252999b349cd3adcc2a1f5d3443a67ff4d3387fe0673f4bdaf04a928495437b766d8e3df2a6f6a4a2bcf887c6bac634c61697cb01776b0fb7821ad4a3b1ddf5d420bbbbe96cf1cb3a37bbd3d13a22b8401fd6e967e1dad561fd374050b83a57047667771054b980ab2bc88116610ce5d59f49c7505eb7b5ac3da776b21892907bb967695ab7b55f9ed2c67aa9943309ebd56acc3fba91ac3b7b9ad41ceec2c0cfa45fb54d5f981a05b92194d644ca92ac3a190cf90bf948f6028924d2a252e72e642ee4206db2d227d24364880c91213244864e3aa49de96432f95464ad694d12331544bb5418faa0c30f103f00f1589111d0200158640ea66fd72236a679a6a7716fd0e896fe4c562a3795784a65527bbec65a6a4f99348c3af9899c9d5a75af9ed6b8c81c01219873f6cfb34981136f4dda407757679dc39006ca1b126fa974c5f1d3a50d01b5542a2a74ce5e731428740417208102e99cfc699dc9f069fc969ed8148ea4907e4e7102b46b2da646b0470606f626e189c749671c023f9d595c715b0d73d2feabd58a6849ec8b75489bd507b4272664ddf5b9422cec3abde40ce54bee7f72f34dfeaf6955072abb4f91a0b295d8cbe98c13c76ee94c8a63c714a4b194631f69cc1d7b49632ec77ea2b1956357d198e9d85b3466e2d89dca4ec77e52194cb6c2b1cb50190bc74e43632dc77e83c6583216c79e0395b554dbfefc0ab1e71db281f273da15b2afcf1d72ea1293fb97dcfc21707a5776c1376960595e2f457b4721f6a4615ee965af5cfc33d12a2eba7c4e14f70917bf389ccbc559bbbe6e95bfba7b77e4e5b127ad56e472d9163708bedd74cb3e49794b5f4a473da667e9a907e959baeb4b7a96befa133d4b37f9163d4b2f79a72ee548cf5245cfb2743c723c7271349658f6573a1e392efd034b2b407474c0d004fb61b385a1d379736eedfa17125163e9513c3f0b23476ad996756e417a1786a4f789bc151bc56ad92363cbb441aac7389cbbb0abe3d9d988afc2b3ebc13e78c8e396c7401746e21b75b925637e949cc8e5237256626ed5c90a719dba3e25bfa3e2a362e2297266e252795a63625a22f6674545999d667f9ee472b15ca32223d20259206bc4f2ca929ce5ffed7a7c0bf204d6ad5861e2dcd5e524e55942b9899ca15ae7d31a540e6cda2acaebf7dde66ebd4449edf92a9136b0ed32314e03b7fc272dfc6be1628bcf89c25271b23c2754369133ed3a65a185cac2ca45c5c5b43a3bd67661368bbbdd6c8ab4397bde9cc9d64f4d5b23776a4fa552d523352848a5ca42fe94899ea1ccec04d628aa8cf94d9bf59417740449b6659d7cbbb05cbb3023f6ecb5beee96af3f3bd587e52bef56207bb65a2a95fb79c2c0b0764a885c5c31e62f6d169f6db90633f244ce9e4117c6dbbaa65279cbf5a2af9393fc24213d3dae93d1c5ead45faffc6515bbdd77f2125dac4fdf9dae8ca3ed7acc3372e4c464e56c326954165e1e72b19ad4fc176dd8e79c855d3731827ba8276c0c0a3ae3732a2a0fcfe73f862e56148a72452c8c792639ab351f318259c693e9fadff3931bf5181b39d2b3a7145465569daec4da276dc88d6fbac632e61f77eaf1ed310e3f61f2188ac73c17a6bbb020f6ccd9f3baa94bd27212b7ae50d45c5881dc1ae409b2e240d4d71ff7fab771820842e2d61c7b5e5f41d61acc787a7755a62b4aa7afc4959367937f27936a37e597c3c8d9ebc5cad39a570e6c0220e3d06127870b3b3f0217769d05f9c38f0d779f9c6872769e2f568f83e8d3c4462cec621ce6d99889e9068de984c1c8598ae6a260c6fc78977cf5345c66c6aa8c83c0ee4efdcee9aedf5171d863de8ac741b87761d75b9f6baccf39a7af4c340b95b9b3c24ddf03dc25e60e0b17cfcf898209af397d85b40937eae2f32b8dc9bec2e2e1c61f8b2f2fecc2c81d70c53b8c5461de956110bcf12ebead90362f1be3caa0b2e262cc6f59f2d7ad5b62a41e07c138728632f12d0bd7c5162c30994c569242c94e26992c3bdd9ada18c69ecb112dd7f675721443bc8caf90eb738754dbd7032804555bd66d8a9244c8876975c8808eb2d3949b244488d8fc36d0223be79c69f66c6d919c79d9da5cc45abb6f92181173bef856dc04151d0a1a013f1745eb634f5b2be8748815624ffb09819ef67e3db987ca6a8e5fcf3b2aab1bf0eb9987ca2a137e31e0d7738eca88f0eb19476555037e3d07a1b108f8f57ca33120fc7a06426312f0eb5987c61ce097c6725aae9d61702ed03014eee70386e082b60b3a711ddb80c6c0db0e3a8387df09f80571dbcea8c1af5b3ad3436c88ba0404847840107edd69ac027e3d85c628e0d7a4f108edac107b0ef9517ed6c70ed13ec4abb810ffc28378175e819fc129f0307c021fc3797ccc77bccc692fe312f81a1e819ff1cac41be175036f01af39ef03037f0127e28ff0bac4e74491e255039f13c58b9f3804624c7f008ce380fbdd016fc371c0ed0ec4d3b03d3646c2d9f313028d915840cfcfe7ca48b90b0b019591aa4061f6ca4840176663a4207b5a921748b9cf8794fb7c48b9cfe7f3f97c3e1f52cf06667f1e80477100bce936fcfb7e779a7ff98c3f71199f5d14f3080303b3c54a8592e6bd985f80bff81f1ce615e02e3e013ec323c0fde9b6d1008f3d033cc6bbc3781fbc86124af8cc0ece021490a4a7a3c1cb96f9ec0d608012bf8067d57e7896029e95806721e0593a3e3c0b88f56c6ff65cc4dbdc8ec55d18cef2fc5499073d460b22ecd52d35f4f096beb45ce5313d5bfee24ff46cb57c8677ead20229ac55d2b3a5a267ab05fe166b60d9f9eeda025b9ec999cb45d1ca388223d826c9b03cb748148a41831bf148f870398d07bdc6d7b88d6fb100618262475c1a4641bba405ba70399d48da7c4da83c0e0ee36f788cc7e1b177b9ec73b8ccdfe0467c113ef3a0d368b98dd73ec3cfdcc5db38ccd7f88bbff198a7a1877fbfe28823fc75dda4c1bf26494f47032438dcc083c3cd977962aaf28874f32b2436b391eb8238e2ce29bf57a9d993d4bba8de45f52eaa87eaa1563d6a4f14ca4892e40c74a9c614dd7217ef82f1d9dce6a37c4562cf5ecfe6d8b3664f2a6a60cb02d1d1b141ec4d2452fdaef12f2447041161baedd5abd99327e7620618af1d75e940b942f2ac5a50558dff743b2b87b4b94b98c4fcf517cb46dac0f63559350dc4fc01fcc51bc061be00eee209e033fc005ce67970d9efe0b1d7c163fc89c3780178ad394aad1da0003c7cf61dfeb5d3e15fba5a3b80010a40800108e059404ec06aca277fb23f9044ce74ca552a19555a3b9bc8d9f5dffe7a9aef572e88306bcf85d913b9537717b6ab3f3e954756a01f20939d2bcaa652aedaac54094a95b2d9186dd4e960bceb66e673701a7f83d7781d6ee373f80c5fe32e9e068779d05ffc0d8ff9961ff14898de73f8eb86243d1d0d2cf049788faf353ebe9ae44ecd3f497ccd5d18ee078743c6eb69fe6d40f900788fa7353832f08ef3db85e570838e1c38a4523b5dce743a85422693c9646ab16c3f745840489b6faf7a361efb1b1c34de65e35b2efec68b9f794c291751849b60cbe53d7f9da06413168ba5e3e35937d7b9b01f367b7a8ed77ad42595d2f5426e7aef657aefc4f41e8a994def7da6f752b655cf7683869ad7bba790dc1cbf87d9b56cf99333ed4fde6095cfe1061c5ce675e4c071633e4a0e3a70b821078e1bf3cb8df22e1739d3ee226f708d8be798f2351ef3d75f3ce830afddc5dfb0f12dafe1f299bf0187cbfec6636f03e34f5ce5b307b62612f0107020bed630e02b6ea7de2ecc7afe81c0575dcdd993562baab1c3f3e0e0db78fe99b3fe86b79e06777d8d03f1b4a6c603de738ebb309af71f36de6d5e9b21ae82d87c9b556b62c5d8e265fef232333ce66bb88b5ff90b19def2317ce5679ce5630e2bed06b80b0c9d951b50b3e9dc70a6dfbcc6fb0fb7cd78af397193d1892d1e8be7e2651ec8e3e9b06a9765fba103c49e377b0631af49ce504ed2878242ce524e7e7b8bb73183c33c4d8d19322d966bd3cc60c3895b8d19322d962b85b4c99bc55bc8598bb7903778c35ca42de30ecf83cbefecf0c285eb6c4d0c8153521a26ebfb581f2b538f79cf79af3971d3b5e0356103499bbc61a6cab8a2071a6ff135fce5affbdb70989fc115f0407802be01ce80f7c15dc2196ff998af7c0c677999c35e862fe01fe03fbc035ecf830cddcd8919322d96cb793f3916469382645b4f416263b49431a48c61867ff56cfc6b57433743a6c57295329e558bfd60e9dc1c66fd000700d1001d6993772d63bc053973f116e40dde2ec8fdbfc383bf7ea70777f1f042a707ddc205e3badfd5612d415d94a02fd6639e95c3b2fdd0f941013a063c8ba7850b93551bb7cbeff8e0ff3b3d78ccfb8f77d085e93bbc0dace9c1f4db85bdfc8ba7c54b4f1637e8ffeaa12ed65f7e4ea26832994c26132a888d8767d52eec870e901b4c8befc3edfa9a53ab3f6c051243561d9d079170411ad1fbfedbae17af173856ef173be4f400839cb5982c1816c70ecd4e870bb30e83ccc19e30481beea6e13460c4c490b39d1dfcc578f2da5b7ccc5f5ee6fed7615ec6ff438ff919eee265f88b5f398c8fe1b09ff11d9ebafc4e0fe0cc4ac6cd09109c31593595dab64e4b419282a48719ff3a22e35f414edc64b11a34616b992cd36566f333633cabb67a56ce05c31d3e1623672f1759e3f778c3bcf0cf08a36ff1dfcf1541169048655996655902027b568d95d3f22c1beb870e7d71e17a96cd9ef67bc5603c8abf78d35dfce931cfc277781e1ce657f8cbab788b4f71f91d04f8eb7776f096dff1c117f0aefbe19d4701efbb04bcf720c05d3b384b0fbee283b7be07b861e64e0fcefa1ee0363d7f0f709ffef9d8984acd0834a6b284f34e40652a2150b1a9dc622a4e38efc7793fcefb71de8ff378d6c5f35f41af23af15ffe22da1527be152fe75e3a984c0766594aa3841ba75951bf9f2729eee2a55593a6f5b91d3523adb7c560e8beebf5297cf595ac02f839f0f5fcef4ca4f0fbf625935564dc7aae95835db0e2fb3df5b99efeb0665ecf0e02e1e4c56ce0c727662b26aacda8c4b8b0c16d8c962854a0a8a0c5346490a25e364922183b5c35e99341f5f7869acc9d358399e9d2bc1c2d92008b7570b76100696ed858215c8c00a436c2cfc21128636568d5513d2d383db142509928f03d87a8224a238aa59b72f7945a48d26c7ecbafc46fc812290acc147968115b9186691c845e44c081bbd452737390f2793079e6d7df41b2d8a9c92365a93a157d246889ae486e2a03b344507bdd65a6bad96d491daa58bd65a6bedbdf75e0cde30c639e7acb5febed02c6f40963708914826e9207953725289442289b039d9a5934c1bf1e66497e453fce91bbd45261dfdabf94674300c796aadb5de91777978d6e211bcf1eebd99bcc9f8ebd91663acc91b9c7b397fe4cdd5349ddb9634c1310765e8a1d1c5d0f891367c9f83fbfbdcb272809b74709334da0de9a3f973420bd9cefc837ff6d38ef0d93cb28e644f64c8ba9a831de820eb423b21e22ee413ea09fd849810eab9b210d085fdd85828c89e4ca0b19017423ddf1702bab250efc2826c4cb485bc40636228248a31a031a228364163a218124551d4b9321da228d224883232a2288aa2b84365278c7b09ca601e75b1ae23ee6a30722a627cdfee0c8af56b28874d16c63456cc1b977bedd047ebe06ca51a8b6c122e79876210cad1175019e8d633eeca405315a2c1be2a9ccac848978350eda1334ec09e7c8b09c2a6b546556585820d81b0b53c467090caa3fc952a199db0ca150b0b98abd5e2427f46e59b9cda99386ba230a94e2ea29e6ed4abf84847940b593b2bfc5b5959b122b52275f2759f2b2727b62445bebf522527ac950a65227a915680e8e8806109f6c3660b43a6f3e69cf0aec7e787883d792eac24955b916ab9fc7acb7581781756bb3f2a359b8e3d81bccb63dcfd41198dc8196ba57271655a2951fdcecacaca53e46cd55ab14e4e5627a9b23439f9fb7389dc2237c8c4c2bf120bf3f22eec9ea9142b559232efcfebc4bc403f25a994ebc4d2a8d39bbeda2bbe5a59b1f22a4995a44e582726af2b784a0be77452d8930a7bde1e9fdd856128ecc963cfebd2e272e5ee4feefee46a2ab0c73d3c178a223c552e777f7227272c48afd759e6745240914b95a460278f73ac974967e1bf8849b4591ef32c4c0a1610d6f1a48ad898cee9a4800265bae93df5b8e43114580a1eddca4495bb3f2b257f7fec79fde42fd02d728ddcde85dda00bbbbc1bc4822a49c14a52299692d4cb687af7fc7af53b2b5ef23ba7eab46262e2c2e4f54a95a472acbf44ec794f2a282cecfee0d84ab74a398c9c95a430eb699c983232269708ace47756fce4775638cbe39ceec27697b5d22613738785b8024bc152278b1ccee5721768458c0b1897c8054a99f7e7fec462b192142a7632c5621bef72b95c2e877de80f0e7da0581d5d107dd05cf06b356df407fa2d7f507e264d66830e8a6e53938820f8d9cf18e37cb5b5dff87d18fa3e10f410fcb249a98b493385a8496838360f996ded05b112aa2d63d08644f1f412768010e7acb5d60af82d6e711c4551941d33715db416679b31feba4710acf8de7bc17b6b8e5bdbd704af082b01ab60e83487f2b3d82b5452423ad4a598452d7e222886624814c571cccfda2269b2c591588ef94bb648124d60e8a221348561479139c031ff698b271125a6c492d1164dc83d6e31b4c513707f7a874f6b445344115344957185b8023b45d9b1a62e180331f0696fbdd6669b9164190d0bb34e83f6c474e8819ed6451c57f6c385d9206c0f3446c468fd92b31c72420eba256f74e84c803521ffa1da88a0b1da04356bf8350634c6ba11b6262cad2f9880a9a1348656a7b031ac2781c262f0d5276ceb655973b6b43105f62db7c6f5d8d72b0c579c0e798d0195ed504deea83ead7708da28e07a2b8d1b306034d05786511cbfa5fa42772beeef4f6519daa328636321a711fa917633e09269c622eda1befbbc32d2840183cc4508557ec3827e611766e2b031ecd66f0080ced034ec696574b6d609f105b4592f515efd819a9c81df97f3282a9123936357b5acdb18c9f1b93398733e4172961d1c45e4c8c54cce40922e774c2a13a9248dcad1939c28f148ce48939664a934f22bf2d0c8a422937c5a33527b86b4d3ce0da3cd9c030174c001a1c0a8344c58eb92d42945020000000000a315000018100a060463d1581ca8a2e43e1480117f9c54604e184964598ca3300819658831841803004004406666441592259a8b57f7a4033afe6bb10fcaa4236fb53bca081e2e5d77e53cee8575c86820c25429af2228dc690d81ea05b1d2768fa6383dbfc10e25b5d72f0b49ec9ba9874713b9e7893f9f0bcc7d4438f503e3fa27bac62e6b8aff042ccb0685232650b23a0361dc20befe7fd24eaf28b2a05798f1c732e6c93cb90a9664e955779b447bc68109879ca9ec7e6f558de88f2eb7b09ce44ac418ab78523b62bcaa198b655867774dd69068a12f87f00e53f0228965d84e1e22e3a51ebdeb405c00a75c9ddd5c26e997f22f53297e4e731551ffdbb73254051ad69e424b011e16e9c30938ca0c53d85d7ef8ef251b0c91ed4e76864c69e41843a5da8a6765b50d5855d984b8a75179fa58abf26e8930efb20b752f1d83fbe84edb71d7d34e29b82b5afc6538d5a1dfd887d4c7ce2bbf4b487cc30bcbb7a34e88a0b8d44f51e3426255f8a6cd22e5d8032f949557db04af9a3af5fc42be425e93621d25d9de46b587a5b306b58e99102cfcf4d8df49cf0e7ef0bd9ee23f004b0f2116fca07f0510d0c61284e238b16a58c81045394144687563d34cb6f65e33362e6c6d6e76e43f07a4d2ee26d006cde6f5015b16b14f552bcf2934a98a78a98242bb520e260c0c2396f7d1e886d1e052605fbde5b0c0e434a970ef04af8eee0ec820d12ae11fc4c0a78395ca5ffce85c2b1750bee50cfad7759e0909caf90af239f4d016501986010a6313406e84fe0f0f57ff889837e23d7afecee3e3cb452b037ce7bb8d527e7c61749242468f0dcbb234a0323ae24df2d01ef3ee46a0db3ae7286e62ba5001588ce6d6fd380a0ece1dde5f62360aaf5591ab9ed457376fc70766d080736a590a8eca06a595836100bdc2883772e9544f2139fce52e5801c1c08677f32258dda896d1cda21eaa515695f2f653f53db0f32e17a7948055170e80dbe394540460882ff5c02fbd0314e2348714f432e3320ad0094823e7fa434f72a3d6f3aab449aace6e2a82ff1510a3139b47d5ddf029450098528c77749330cc1d08c946368a1024590cbb65b47c3e7f4f66754072e2c940b4b3a5b757fb39f331677e733c1d12a43e3a763e3547c49363cca3e795f2e72fe74381ee091643e10c9c82fd87b0b7235598de4c2ca54ca0ddc7f46e8e12f0a7f63609692140e4645f689454f02664f880791b4df1aa8ff590dbf17c0ecb6480bbfe069efd8e42c47b6af6270aa28241cef74480430ea5ed9531878bd9903a32e56ac1aff42030149439864402ad15564e5b44dfbd094c3bb5e1d3c5d2f5740e0b20fb232e1ebba2d576b7701da938014e2e9f80215ee77aa82f5e5137c6cdc2c00c5d222f82e1265a797eefd9bb716fef851259d4b6ef1a8bdae438d1f8c1aead1c3338bd0872b288b00b27ff9150638a90060814345a4c67a8a646fe65499208c9a887a66fedf36d20e3389b1fa8dcec29a81da2f7ee99722b338501be1bff60848bac82c82cb4850c798440ee0e43488f47fa2ffe0cb8ec9198213c1e41b01ea7cc4143fa9888b3580010ce993940a7044dfc2faa2ca4f27f69aa01016b44bc1e7a2a003b59c414600b229bb05321a4c2b27cfba7f0836b1e850327be1ea46dc3082db145d21b688a6ac0c4edcbeb4b9260f467a58b34f58f7c7186804ea66ca568aa8f7afe90008584e61effab25879eeb18aec23ca973c5907dbf013cbe4574abc1ef82dc83a476733b8f7f1928bc2958817d71ebcd876bd7b050bf464f15ca3cc893afbc89af16c8134f30252b7aae0dda6082d333a3adf7defe8cdb27252853e2de845f93d26e294921f8a57b83ead99450bb55f02c90891020615e0b33c4a26f203b3b4fbe8e2fa84c08c93aa8dffe94427676ad5f968dc89e5e8b63ba0b8f148251d2d1aefdaa9e6c8a9d3feac9ed1e0c7ec3720cf38975126c48bed1a663a5566ced3b7fb47ba66af6c6b40aec3b25737543426badfbb199deff82217c700ba2e6371085f9767ef5fba50b2e552743f0cd058036c7f1804d06ff446b086ff067e4287cf28463d1b79f639442fa0eee1196beef3d7dadd2a7d4f733677f2b1099ddcf1cbd2b5311db5bd24a9ec6eb1b0b203bec1258925d5340b26191d0866e92b0373438ef9d62e98c8545dcbe08de0dd0788fd1d31ddb05d4db0603e741add328c6f161e6c12e60ed1492b390122ff6bf85154905221ac21b9bf2d3314f73de603160010d0d39ce297608a8c1196ef64943394b7e7817437ce37713f81c212aa19b2b4462faafe1d49669d88e26293e418f1c5aea65eedb640fd25894a8a28a00b5821289fecfaacda5129203265a14a2020080670a87f884ed410789a481442f5a500b0ee1787a9bc82737b95883d514548098741c5c673bf6e0ea381c00f2a930d19348d2145235b7bcbaefe0701b0d52587198280953d594068dba4f7ef41f9142b5911b6bf113fea89ce4c73a74398872572454f17d1c60ca9eed74c237dd1da24a6ae03c2b57193d2be80756af08cc2034c6fa6b07f08123aade67b9cf833737b7fd3a3418b919ae8404a769edabb7b56a99b162c68e662349d97ff2616eff137f5c1da270fd4483b9305163225b0efabbef41ff717950e10fd02caae83a3a51dcafe9d8781821391baceabc32fd02045c833a9e053f21121bc31ab8b780962b0b32a5bac0a6040369e8a20039e62489d0bc591348b417d92140f220405788d60150493c6f840546d8d869041b7ec312e543a63e4cd39c8b41f30abfeeace65beebdfcd9d5ad43086719b57a9757659a149af79171cc4afac65dfd3b3e0a462fb7f60c04d950fc5a03558929267821243d6b48aa2dd3453231a049e7fefd717559c89b817a0cc58f90f5d4433e6e0fe66ca6e1c696f147d4901737882b1697a8c1008e7fb0060103e97b699143d4ab05ed64f367563f92577d6f51fd3ed7d467037d3ff1d3846dfa6f82e12067fd7b50d2555f93eebde7dc9bc2198f82a87f418d618f1b8fe01475f7ec470e2203d447d41f1784b8f4a27ecaa9d47ff23858db2f4ad108a6a95ccfddd44f1e4e5d2702925e1f4288ee898b5f2508eadfffa0703d76f0610b336ce052874b784c4358f0e3df7f0d4ba20f68400722495a949adedcdf75092640dc1000904bb309fe6839d3b7183e148f1c2dd8ce5f2dce0c927f60eedba21fae92432d763b12d757d89286e39307d1a3178086e887437566df9a1cce35bc5f0f05a7b2853e8700c1ff032a01f992ad9d737021d3c0bceea178b0a40003d9ef94a2c76c5eefa1caa4657ab4ac33d6aaddeb704a4fde5b1a439dab374c8f856f5168afe2471f6bf4340a9e85fb40c07e1a1db6cb372bfdc06c64d736a49f4e09aebe94f75ed26fac66f3e5b36a39190ddc4d1eef74efe5f62fda9ac528ec56aeedc3f3c4c95341736c9f8a095399b775fa6161fced97cc5a7dace50ad14a417fc7159ed0a15be3498fb22eb68c5407f838281b492110c516cfbce32f74bab36e65819e68fd4914ebb3cd217f414de11d0aff809f8343c684f6447a7a30061201f38f260781cd3f7526245dbf6902311134ca701d307385fb7c890c90345360f89e8ac9c7c02eee8c133616207d0fad0b1c107fa1d63313a17508c1d5a40f776f6a3b58975356930fda99639cb172946c513b651d058af7d496ced03c8191c32fc133deb693967fb5bdb23b007733402e4b115b6ed94ca62edc4160e16912cb0112eb583df86fa247335467e3a942470905ce0cb5bdc14c5078349a499cf44dd8c8592255c0144679cc69ef910d6aee5b34cd65aa0c67e6adcb342b24f9d4e3af34569b264c9e83d0c632dbf6590860a5369767064a80eeb15d057420289691aad427c637350ff81636982495993fd0f1a45a4497174e9e4b65226929cbf652adf0be7d5f0f6570667844031e3e001353430edea862007e24c082c898f4d1e7473287863e46415aef8a668cdbe2b13f2c113a83434b2ddb27cc647c31eb4beee4990b4ac8e43a4077d16e05a0e00a03511c41bc858235c64a23826a0d1e150b4dd7cc50be02045e3692e1a96b9a9538747023998424c6ee5c6f30d8d85e936d42a6a4e8d79e06fdb79991c804ddb6326b3de4bff77cefe816cc51269eb80920259e12012f07e12cb95be187dda98224fc13387d8caad8fd90c998c3f877e9e2940f08c80fe86fe60cb06967d6cefe32a399f0cd9dfdc83c46e595852e3b38d341a9bed51e12ddcf32e09c0289827d373e900a07eaa8d782bb3a0327624d44756ca80b64e5af810b91b427bf71cca900f6c7a190fbbb004659e3da025d6e4a6e29a47ed369d5ca5b87d169a734269f64ddf6436a4677f735bbc8aad728fb319dc658b62782aa84c1edb53255bad96103471963994664b23ec3abf79548696f7f38b0709f4251535bf93986d613c6f06da760bb185d018200d5880791fd0d98d0c5bc88677175d3eda0fa4733c001ae2ee672fc13b15e3cf1a8d284cd3fe3102e5284dfd67b4aca37fa31b2f5cd028169e57226a3003025d3248f36df8699c9627fdb50835d68a7a428e95a65319c637dd34602bdd9c6015731e614058851fa9249ef3425bcbc03e872db118534355ca9558c02e800500307d7fb3217d86d94ebb207bf567e7b8d49fe40297905df3c090f6b62c2f1ad2d3eda6fdcde6f603fd065609218d9cdf6f9c1fc3556f5485c7cd64c802ac63ac043f1152394566a195faad3af8639087a7d5bede18a3ff2229f3792467cb9ca11490e40ae5b9830432cc0a3a340b95a29549df703e2ce351605e0b43078d13f207892b37fef4f5f8ccdf725a35d9608b1cd001c16efdbb1c81e4573177a9b1b3544f14b2c9878f9486911507e8c1ae6c46955e97a804afb2faf6499d9ec37e83cf0ebbf84211926897426454923391cbc504912b61b05eaf48a0b8eda27ec04f42e66a6f61f740c77e7f745f2184b00ce12e6106a0d1ffe62085af08530343723ce4bb333624ef04611a81f9d6c3327f6a4d508737823efb3fd822efa144a84384e00554980e1664afb7ac98a2cf2b279d75a5215fdf5fcd19036e50b4be61c4f0805b4515ff697e62ea04ec79064238dbbd2fb671d2442bc951b6748a78be6250d42dd42d77f19e5b5dd8cfb53ee0d7e1007e87a4aab7f6310d6f32e947ba51f02016177c9e913dd70cd4deea4828d88ab32b2aaa026cc991bed0b9c419651fe52e4d03a04edb04bef2bc04df1c6de2e15f55375cd2c48f050f324e88b78dde475b1d11834474b4b4e129c0845716307b037b0d0636647fe71ac96c02d6e04d73d2310f2658d7b1718c2ebd0a70f29e13d319715a71a10b12f4648c9ca1603353cba5e3e93927356b58f4a9090984d91763aea24d04902beac2702473ee5b96077e50adc5331717a48261e5814b57a5a4f0b46d914e15d46589e2800964cc71f3f37c1e071ca2ff4b8d74c8865dd2bf78d4730c8a6f48fb0ce7e523642e6178c254c3682b460df2846a7c7151d758d34a36c3731cb115cd9ba064d4b57838db09303c1ac02490ef60272f4ba309db5079729c13f04e00fc296ccd179cb90c8d93d12c6c62881ac18775614738d8d453e45d3946c1c0d7e8a39c4368fa59318d04248ef3da64e748b3f4a161d34f3bca6f57a6eacab7f8b35717e993452c822799e6ebe86f263328a6282e91b086ea084aeda8dbbcd8f6cbaa8c5c1bcb0a566805f9b0b1ce15de50a19cd0f27968317b3f51fba2b0a9ee94339bbd8e75d7ae097f8160272813207723b0a3a4fa4fee659422a74544138a6ecbf6b249028fa690ea8bf65bafb224eed0b1bf1c1d4997fb5d3b3b677f1098ff540fcfd7626f54de5b90adf1043cd5ed0a8f079755714705c365a0d317eca753c187e98095a4714d34554c3e729faf882e2fbc223ccad637d7dce1d407f0b0806cd6384d3d4b436ccf20d6c44d90230592e408db9cebe20a5db935ee0294791c70c43b56b550833caf5dd37386acbe2b5e07dec36cd6516982642a564cdef6f7888587def5b3a3c37ff09460e12d741c28223b79756832f546e6456ab32b9bb051feee9ed87e8545d2687baacab54661745250916087bb890421241442e6a94a0923561525690bb2818a412e940ae9afa0514794ee6fbba3a22a92854311804b45b623f2d48e1e6ef8ede9c4c72a0faf1c0b1d9ebbd29936e8202f5b63a17bec2c5590390ddd92c734abf90417ec75eb02e2e0d59b3c69dd65c732d245e84673b9c9ee8a84573c61134009e4f662c38fd6aecd97e1549f74573a2c86e1bb00900f5ef3456dc52fdda49c052c151ab889c220a0d615e7a44bdb64c00b149a16d35e0d02149bf885a9dc9e6ac1974811af456e24c1a6ad4c7e8380a7677b6319e1adc54a88c332f30d59382157501db71bfdd0e62fc582d93d066448172a68ee112ff58a76090ae8938fbe4dc633b2efe20f6d2fd6ea769fb785ca077b12b766cdfbce02d1993cc3293b27a411d2094197be1d2c579fddb8cfe2e8d126009ab67f3d80213ae13f172e009a1c7749eb91f24b327d1ee371910fd5f86b266d93e70c10ac578c61496f9d287900a2995ce3f311f293e30e6e14346d4a80ecc30714aa32f24e3d73fcdfa4378507dfc627d067e353652cb29ae1fdc7dbf259e8d759bdccdd4752ec884339055e2387a9a1d4e54b21a5359c1b94b687ec29f1758987bf3b2e7135f17326a07fdc28f9897a12aa69ea28f90124108d8f32f809aa92007a27439b649ef1cca04d8e2ef9fd962d236145d5ffae7c9bb3cbf39405d02ecd4fa088c3029ab7849278d1d1470353edd0a8bacb1b6792e5f9bec67db582bd9a55ecf9dbc0e92718f208875290326896ce9da9225599d1f741ee0a7c2c2f2315fca924993f2437285a0cdf03d385d30197c85e6a47963b165e428667658b6112d60fef5f572af9f058486ee05b5c2c2e9408a522a38d556d7c2c23e08f81c883cd58c7f0b32d1a28a7fe0659d5f6fafef3959f8b60c9447d6a3df9748827e3df56c9e3627a9026ce110c858dbb4640056a016afec433d96608e0fc3de06413152f8f58cfc7aec07617984e5da647591e4d4efe4a13a98ceb8af5bfb8ca8a844ed36e4e5f545aaa48c77efc45c11544b4966f42414617110026184c2c88dc3290ecca29f3da15271ac60df0129447f1c46671e04bf63744f6c46ddd69064fcbf40ec56502bafd85ca9c6e248e113e2d6c8bd0439f295be0cdf6e54a611b38aa99dc4ec55171dd92b525145a28c3b81f273ca24f1faa59bd1f2b2e4eee35f58a99fcc982762cd39984f56dc64a867061f864b1ced5510e010c34e5a4baaf69c769e14398922653ab79338ab79b6c55e29911e3b2100f10968ad82b851060d8996b44d57ac457b8ec48521fdbb32cc48787f9e5a4a15130773f90eb32e0a016dc30c573d6294f090edce0ef62aaaf2e10205f0f0788bdafba59596a4abfbd589e74471af987103a03a860c8dcc6ebe2f80c154d35faf56eab0bfa3aa7ef658ea54d3be4d2deac2da559f2917989f6a21be3061a32208c90a84bf5e5ddb121c25ac31f296b682bd52cb3b8da51fdbb1aac1a08e40bb8e22dfbdd7abdd213773cfd432d77d26663b145f31d3cfc5ff9f063b9e755921214c44da4da48e640290d882c32bed62ac19187e031a24f362cf6b7f709225fe13c5cbe6464ff0faa08c105188611d8c1687f7a3eeaf3f5295fc1458e5ef0f5c626f49702892813b8fdafd341ecff8649476e455178a247b45b2ec6047081f44e9476235a623579484350eb607f70a94501802062bcf1e8680d4ec99e525217bc5bc99993be60669e16b4cf1fe727d53de20d13ee4a5acc0700ecf4fc128b0b419ceb08a63195da7f0c138449f736ade706b7432ed2284d70cd6195ed1fff9723d0cf615247b029217d40eb4b752285b16778216d4c0dbbe7ee502b10211dbcfbb6aefd13e73adc5d1eaaff28000d22eaf1e4a7dc88c58aad9c51a6d8f0196264391074490d34dfd818ee6dbe9973a5c35d50a36f6eb686d49517ab6b0fb4b62e5003038a50835df422c60341de4429adc24a9302b9463bfb0ba3654f983d020aad14882eb1e0564a2fcc4f5ad934d19fdfc660b3a3765c003ea14290c9872e7521c2b708814038714d5ecee5209bc18ecfe931f64ed66e55bc848f69c2f8398a3e687ebcd95aa0b648c2588c79656661f6e0ac0dfdafb177e00d4a380a30dd765b6d8d4ad041d441cf78c0bd34b0d1a34933db88a7236ebe05848144c7406be1ef695cd3029841402e2f121c0e26e4760bb8b048a52f2c88ab340ce926a7c1ad76b87e62cab0625beca5f319394e9a82c5928ba655444ce547b72370e68e280b94ceb017307929ca49f61dff55755ba5b4160e72e222b077a3486560e805c5309af8b923160bed33d081e83cd566ed99f4226527c21bc40ee199d3fc4bbf0cdd61062ff6f3182ed63069f45e43817584162234bd9440e9f40b593bb48b62718554cadf14c4984ca3fb614d13110ed577854bde69e541b3e627d5e8e426375521acdea8b132d566458fcdb20564f4e44c52283f8efcfec6db34d02585c1dd31385d516f0f1aae38b7d34f8e109643001f020f2e1d85957941f5974d59ed3a4477924286cb84c5ff4215a883cb9745bdf4608f36f0280ed5e276648704218460c09c514ea83db780480740054a508013d03339d0cb47ab416882eeebd05f34c7d5cc105f99323731d495b1d1a7209c11aea5c515c8726cbb3b9950407cea7f6b5df3c448f65de4ac4a7cfcea0278346890e098afd93aabc072e2963d4d0701613a4581d37253112cb10c865aeeb489b94114613336c48c4a8021d5656d2d01236789b1fbb8280612996360aeb444c6850d46e5b41d9cd2978e85401eca92bb0ba55767653751426bfad2be930a2033ee8390ac59061a4dd5d940fcf0d984c474344e820031ead02a0c41172c9dd4a70a5ff8e904400ed4ed01780bfcabdb790ba840d75936b4d77547fa2caebb3f0e80b499da43066280caba1e7193a87074d7592a589d87d211796f65ecfc7ae5e574c456e0adcd176443597b817d61eef9164fd611241d01ef5be5b0a2f58a98c328ae1cf439f81f1d15aadada12e55bcc1a966160b0fece66843d02b9524cd3592b4b2ddebbf663b64dc87969f679673e5c37e5355088e8a4c85d83d12ecad6c6a5b2e8d760c7e8544485df5c1738e481fa24f7c4505836bece4ca3ad31422bbc48e32a8df5b20737a508e8c7db5401ff4f90c13ff70fe11831ae42af842f14c6a7fc61fec5342941665787dc95ab215e4aaa48187e036c5c452002a61cb46f3b01d123984e01f52e091218f87804d201bea784d6f096cae611a864c69e0d0701a09ca856d5376c2733d108b3d2dc07befcd753818a8803a2bd935189bb3fcd871a08326867cf50b9332ad8fd8aa9c09c5d287f239b1453f04f39e84665c7019800ad90fa230c8deabf4377e1fc52f53509f141fdb60737f7c2e0929c53e31d7632832a0e67580124fa55773c26a71b13f478cbc1db8e0b56e9056ec632968078d2446c4834010778e69023064b5b373f70d659e85b11dc8cf45b9ae8f4510c55a6505d64d1b6b99b023a5bfc43e1ff0392dfc0ebdba1cdff2401a4617e2184cd154622732469f694e478aab225f3494ff35444c797819f737ba66f56f6b4ce80b520b4f259dede501b8fbae030160ae5c04936f26a834a7e240a4dcd736d00e0fd8dd12fd2ec3e72f00055e4a5539471c651c400e3f454858d0948f293f01ff52a85d695bbf502ca43d16d65e0e328b60491a14f7aa93c4325a5fcabd3cfe4dff2d6cdfb9c0f72552680186b021ab11c3c5e865c4f35840a18e7c38fdc0aaa642ac53750b20c4fc500645bb37faf12d9d9d25f2825c46393636934af63be8d3e2ed8aec272774bf9c72a1e45b69c1409f4ce537317aaa52d9fe535b69d0e00fa7193401699842a453ca243b2a3ce25706a0acb219d5039c4e861841f322d98976b60b96a6f69c40bcf615f797bf6b7c5a51c368463bdf4e02b5b3b4b26ce324bdd51710013ce0d59d3d96f41e0e20f12633ca9390f90bcbf2b8cd17b093dace0efe00fef4961decfb22d3220ef95f530f2934ddf3200beee576798f1a250e66097b7f320194a27f3846384604c2de92c93469f1603c2823f61ac456ee0d5af0978b9be6a76316c2f1fe3227d4236cf6cf9ae5f37159afc503d108e301277b9aa127f0a07cd3043cf2d0a7e8417fb2ac5c4f2aaebefd8f76003671199be0d499799f3b36b0759e99629f9b624d9d404c7a9b272c9b902898b1dbdccd1cbee03ecbcfcc741ecf1008c23838a197e5e22c907930d72eed60bfac215b31f79439bd841623eaf6090ca9da70137359f0fec0b679ce58748bc5b5927ab725dc5ef38ecdec890dbe322877e959754897263e9a1a392ef52e1085096ce3c8f85d1c276a229d5e78016c1004d0507423f8a3133c0a73b987ce86bbb16f58cb37773a9f4a3142816dc28f961c0cfec5bf6f73e243c69d51ef71d82e2f9f3380bf9264b7b03ecc4eb04746804ab7c815aa99b1d0f569da11b97922844dd6939643e4997509aea8c4ce89ee4016d568145e7587a82fb41f04b2588ebc4453dcf529ac9702f845f8c15c3904775f00588d9181204bc51136c90e890061781024c1356600cb823b7bf1f8b93e0cc36f7823e9bcdb3e4664677c786ce6a6d19c88d9418b9ffb0c39a7b205a3c230b05aa486f38480a39744c6c9726821e6c97e1a245cdb8c9ac93a0408af65dbd32d6906ce484200e41ac57d069a7e26efe12385107a5acabf7e2330f819881b790f91844761ca829d3f323e38bb336f1a31d248f706ab9972d315530abab6e1f2bb9ff9fb494a15d9b06c2d4d60cecccf47727e8cf8d15e7922c9e900a9a6a5c3f94e6cd9893f01476cb3c3c843d01860955a345f7d7a2dfaea4b5455a2021edebea1b411392348e3a095e828e83dd6ceca9d46a412d04029c7a488fd2770dd3a13b5829453b4a87ed17144cd2b3d74580124c58d6fcde10a2b3cae25de0dd4583710ab83171d4da016424ef15b84e798329d519001c17ce1e278b5c293920776da84d91bd8a9c9839278c726cc0c3c9b9bc95cfd2838af164e0e94b426be6069df64ea08eb391cfd408bb39d07500109485adc4cf30d98d063c8839f3bc96fff6870cacb310407880654c45906c3694be995af5cb44f0c21cf3c14c3989f45be7c4b96f8fe38edac77e51795a37858add04f47aa992a33a371b83047b6a07a34cdce8388630e3971bf8b17ad4eae6e45c2d6d595887436281755de38389f4e1d471cf9881f6a96edbf5ed0894f6d1e032d097eb799fb4b2f84fdaacb17f17b0ec8e23598cde2b9071f74848a3d2e0a1da1de8aac5872c7441156e9e0f35904632d873583de6a5245d50cb5c9f8d1de64fa6e5eddab829e4a815c36a839248526eb8569d11aa62e001d2b67e87ee96043845e13eea1245c351c116b40932f9a8ce39dcb78fbf17d25e601b9ee2784973553a336970161413f6881268424474c7a7fa620e18804b76753528c08062d6e15f1212eb09ca9a28cd2d030655c6cd75605de3dc299e5c8613d89fa491c4fd3b8b62ba846981b6e90bfe01919426177d3eb9949bd8ebd32ae00a20580e0a19dfd1b74440a2c66689157962455913302063ce3bac72f3a7a4cfc259c4c6184a5eba617ddd5e5bda999cc45ecf935c1059735239bf1d802b0ab89657d0c15088a0448a16466741663d99d06d234be1db32a55a3d3d9f62704563462d6f7eb6ba16215d8fe6610e7d7ff6c6fb4706a52ac1c5e648871e7e0ac9adac6e6a8e5e1f7075e71c4f52abd18a8c80593d710eea2c3be6721562fe5a132cc1bb1a54d0fcf95545536723b57f471806aed5055139b487d8c70e23ba473e78f4d448e866e0738005be36bd553c46ab2bdc414ea42cf8021a77c2655db3e17953cb98aa01999e6eedde5f4746e25396940c5a5269fddb32547455b3d6c81abb81c839435647b76c20ed13f5e13a4ab398c0bb5ad06b56282924448d2d2f5b04cb6c53be01f4ae0a7725039a45d781e89993d379045e539354d1f90739f256b5bca3d53a5dd75992e5d1e4c5b8246f85b3e733e55eee13c0470c2033a2230dabda8a2128858462b1492b3ad97278945508e5ec1385192d0a114790915183af10f99528664fdf13bdf3a62178613802a5e1204fb05e2b4a3c25a65ebb1bf1b4ec729f6e9e72e8d57c8ab5475be3bc391d478fbc1fe70f0ff030bf5d01976239399c1134d035834cb86c121b24e0df4bb86d59ef35725ec499563ace7d7e8403d73f57c0b4a0fefd1057a5c0a089da7a4803dd1d7bcf1b85c6101e9a94268a14fb69cd63a8bd69c68a91e697e616bb5cb5af0dc263fba5a58ae0c0d46921f662a5d7e2094eaf2818b65990e70f0ede1be7fcb7ffee2d103ce2dec891e29bfc3c6f52900f56299b7b1dcc86689a13e58e8861f3a697cef515b753b113b28769ab7d3110bc3ea62a5791394990667ae1d68698d2d6359329cb009dfe34546075765a118c303c462dc0a4c88e98f1b547bbf518de18c629e4edfd530f90d8dc1dfaa19007c3690c08d2d2278b2dae0a0b1d67deb0e79d3f0a730d5f98cd9530be98d9b62db87d42f704b33972554ba6cc6fe018cc0801fd1d8a8dca2d826dbe30676731f6e973151472963ffd4526fe50d926a6ad16f14b100d80d0ce5ec99e1a35fd9c34b8d7f767f3d2d2db679fe81cee2c98a51bf538fd8d8ce24e26f9dd5c528e9ccc8997fd6fe038a0339d2b9d495b839f297f6a233008a5488264d32498a1d714a01d6d65795a4efff482b3cef05dafe38e167f4105306837036552f9eaf61805aa6d0a61d7b722ba6400cb601d3ee6dc00ca57db1856b876391fcc8fc2ebc6df9a210af6a4ec1bd24dde981410324cb3d78b18f60f92a200d5e1ad1f7f48fa54578d3b2f8b0c8d8993dd46d35df94cebf9130c65c9a09aba7c4df29dfe62953d32c846c4085bc8237bba53846d557c058c5842755e57d1128a31043a2faf1288cd2087cbd28fb20a2ba0b6e33a135373626f663e5db53ab2dfde88e17fcac3fa7f091637e73c89f42d5b67748fbb598296190768bc35052097b92791a50dcd3085d356d6da0caf01df1258439dc6c9e78b66616c9624e8151e4d9244c77e2dd14064adf6a6b3853dae13be728749e82918279e3390a9d07b6bc3324355fd2be368e459efc0004680ef5f0c80596c8f19624977e404fed426535ace2b12cd495ca0deeb8a9abe7849a113ff0cc4186f89a3dc27739676567a2437fe6f4bf6a1a478f7f1bf0a89d19373c6c79f05af32135a9477b30f74b0a0114c2ca239f891ca34a00e5b71b5237ee505b80b6bb457b8673d3f1127249d4fe619fce582a628ed321894a2aeb9b05c1f884ae740fa76193dec2bba083d1a848675810034957ed0dfdb95b3f9250888c0038048a6248054e215a1c4257c00dd2228a20a6b785d70a6c675bb981ed86e1d1243d9da06d2bd6480126e76bf3a53553095b9f821805a502f44e5d181462fa6d41ddb383b011d9d75b70122440a6a948c13ad257fd0eafe3c2e4bb85954f85745b189373014cc6dc5d8d138596e3cebc414ed558fe3544c8967fecc91a7308e24771e8735ca0dd11da0c5134de1e274c72658da0082624a70996ea4758f67750c2889abf0fd8428bf53d5b76a88a7b3674fdbcbcf80ccd930ab530c988bbb79ee0639f9ca1636897db83dfa124b78e2970572527692184b7429bc549d38f9f9c8d08e5614941c7763ea4538af031a1186d1b20b4befa56ba13e9f6150a8c38b7a4429ec764323a004d8b3074c290f8bf7634ea90b8f3d6faee06ae0667110c1b60def7d063d94107b80927e8aeeab650f5f80f9473cda63d11fc49ab2955c25b0e6958f7f2280c707c312d163ec6907eb7beffe3617ed87f397350bd3ce287d57d260c5dd88e64837e6576c45cedf95215429459638b989b4a259d2851de6783dded7b5b20d1fa87918a8a210831ae96a94355d539f0b0f14f2e77631e3b31da05e4bf4b93a393676ee8930fdb579a42062f8425878dbeec3b760395969e5516ec29fbf083308e604e3b21fbe8721722aa60e1a4b67510793ebb942731549e45e377e64aca6383758e97a4324bd32ce43fc1e121ee5bbb4421fb5452f7c9bc7357d5720a70fa84b5f9ca5026fc1f5d742d83abb85e28e283585ed6843c1f8a8ee1073a53b1d7ccf8660fbe0373a6fbd76a79a68ab2b05a847b27332520b20d830860452ab9d2f103cc098f48568366517b9e122553ed727f4a270ca27bce2ea3cb022629dc97f32f4697f9b90236ac73d1e10bf30977999e81407362f4eb3139832b3ab3f7db8fd95c6d240501e74445d0e79231c4365dffacc83bec1c02aabe5b1325c1696649253cefb606857b6c2b116b66e11686ea1ecd9726e845880c474d0bb56cd7429936218013acd1436e281ed753ba036449ce56d42d3636999d7c768dff04d81158dda7d2e33d2052ebe4db34fd6da78e96684f3823c8932be1569642a183d848abf348d8991b91037b27b13b4de1825e05cffb7f16ebe7149ec4622fa023445e1a3f4cbceb64fb20124afdb2f0cb9c472a3e7bf10d8f1d78520ceeba065497cca503cd009ae428cb931fe3f2c08632ea0bcecafc5a0ed9b92d71c89f3529604c3c1db2e553a911e9706b694b42b819d450409052a430f59f99552271d520c127afe3337a595b4907836736c88b8dc54fa717d69a16fd9088a5c219bfa23c0dcddc6369e876e05113c17cb9b50185dcc252d04fe3878cadff469236e1b96c0ceb0f9884673d63d7e36c20d5a130f885bfed547d38c6f6ad5242c973745edf1360372526be264d744a2c3376b0730fd0a83fd17ccc81e7844a16931b5d4c53029242eaed1454d2516670a12b823fa64bc2c485cfc661620cee6a98353206c32c064194c54e7b894150aaeab0eb5cbf7d8ba5f453f4f79aee744431d3e535ec00de73c54fe2bb25941a07799f0e4df5c74f9af5420eabbeb0a3134eeb36c43fbc3c1754004364f69e7e18d6c567565d3c636ea007061384ebbd7b2eafc08a67c94a79b04f819ab71870630286efd419a40ddae4649fae0a284d370ea1ef6b074b8b4d8b604131db61105689ecc13c3d0ba8dfe5d0b6f9ac90493dfdcde5bcd0329c59ee9a5df2c23db3561f2cb2fdb5d22dc17316008ba2e42faaf523de74596a9f06c1a846cdf8aa4253c133faacfd91551dcc1e041cc5506a71c6070efcd6383fb7d91d490957ce7077ffcd50a0154aa18a4c341418846978dc9ca46e74e10eaee65007671910c2048999d5771892324aa520f6818cf4fc573fe49ff1d239dafb7c58befb0bfb1e1c1c10e046e3edf746124cd7beaf728bca49a79f0df52c4f6977699591188c785245191c7bbb27e31f5d5593ff02e36a6af29eebc0bb61608ac3e6aafdd1a88d406b45791972cd132cddb150d05b66759318316928a4a0cb3965e43ef8e2f9273c9db5cdc9876764bacd414d7c469ade4c544b47427600806c5e703b0018c03e9605f19d7b817f0b224c5fe3354455d72dce0d4874e6c4b7784dfcb9e2068659cd9ac289803feb98f0aa70455845dea05404c3b2a7aeaaf9cf62fc2111892fa67d4bb5d96b1fe4f03659804d6334e41b09dfcfe26a3c6fc89144be28a62d3e763c93c9cffccf6d0df45cbe529b0ab1101b041bf7720924886b4a754d911182497cd4ea7b32ece314381ed75b8cddce133044b269fe05e0ccf559900f0dd74c5864d8abfc2d26928ba793dc68575edfc4bf31d2bd5f771dbe5cc2be81ceb52adb66f9c4a58f3f190d55fc9460f7ffb21580cdd0e5d321e8eefd47c590a41e0e89e756306edfcaa46e7b008865e04e75fd1a0024498c599ea532169bb5c2e5718bf1a4c7ac521073b68f8ad4cf492a728e6fd78d4c637eb6cb429338fedcc616a8489a79c4ef8ba6fa8c6bb03f1197a2c715c1e4b653b7eb03cfa8483f1f3c1fa8dad2bd16408f1b2386367e57539afbbf073f68edcb31e8f6bc85a9e931eb1eba0c8e8f90a52c28b1ea753105155e281e1193513b30b5e3e22a9bd4960331f1752821e6c1458e2f70bd419b6560ec4457497d44345addab262ebd647dd2315a9143ba90bb57148fbcf0b10792a0c667161af9355b272fc9d8281895dc2498980b568e8d684fce78570422362b63786c58d2c86464e072261d47d21864bbd4e3abc014a3da071e20e9aecfed33ed168ddfeed35fef2a4393b4a78866bd3d01cb7289a86cb6c903479316497059694d4af8d25991ec975cc50d0da5fc190dba0f87e730c200ed79ac8a02824104bed8112ac4e59618b7500744895021d5db6a7de89d71e190e53de52195debb1b98376dd335573cb7c88419a35e99798843ad3b02db59a4b0179f776324bed7a3db63937a1e30d4503b342bdb9c670dac68c7089faf3a1dbf0263bba57fb7ff94f4a91da3ef7b98525a24ae16a54584ca5e24deecbe26a8ceb6ed0723e13fa23f1692b3b2e0d01d57bd1a977816ba9cea5efa3ee1a885ffc151be693dbc426e727a1d6475c174c84044fda5a61c077bab63920a85840aafc391d5d38dfe90ce5da86aca8fa6d15247af77a0ae5525d4d4eba450356a515648ac1ceed2095c8161220f14a514ab09895696e47549aca8eadd356897dda0ff0a85aeea4d3e20ba8e2879a35103dd7eb73c987147489af0927a35a3fa702b5db06de9283a493176dcf1a5b000479781c633d4cf8da3ebc81fc1e9aaf0bab132e81dfcb10aebc128d03fe2b2b0e08a2540affafa5117dbd490cf466c93a517a5f26b12db4770a786ab138a7a5f6f3570a063f9ec7760de6eab8d9f1acc67bc89bbac79fd1ae8acd5cc3f03e91db61f43b52f107ed8d55eec2db8c1f73e3eb7f8bbc7df3d3ec786c5cf9b8b6f862e3ace2dbbc1f73e7ef7f1bbc5c7b1b3f8f3e6e70dc7451f6c0b37f8bfc7df3d3ec786c5cf9bf36eee0b8da4fa6ef0bd8fdfb167f1f3a6d40de84247abbe1d7cc09e816f9b2c6cba60a9ca96c19d850f3409dcacf70fd3961109f06840ac6404511c791d1f61018ceb0b800c2d0c502ed378d7aef699287dfca8a227d92a6054af3632ee137215f8d2ed44d272fa2a72f5c6ab902ace2b20eae82027d855e048571b92dc53f9ca75d3dd41cae2f42572f5beaa70269c6756b5cf44d7c747157d92bd02467ab520e39e901f817bbe365163f9fba7862c72927d058cf56a47c63d2117819b3a6dfa6abdc3d6fab12fdd6e242da72f91abff810a01b1def95b91b49cbe885cfa8c2b43e5e330508abe045c6f4410c5d816c35472fe15d794a99d9d3ee65470dc7c27876243b43c262964265ccabc1b904c1964e6e01488af7d4bacad9a9c47b61b7979d0212f4d2ac77d67f4d8980d0ca850fced0371ba050f3742ccac05f9463cbbc811fb5fb9ccf974e16d1a2b97ee369bb3913f4b571debed7401c0949859af6271a24f8e02ef331c83f3195f1075d5f4b22c11e621c0e8ec220d0a49cf66c5f812e8f4f09e850189cb79a0c96b4158492a663dd59f49194167a3f5d52763311f18faa9705bcb69dc8b3a87548298acd1525a80239c9c094e733d93908d64b405ab7f5991efdf60997b4946d258bd12ca98a9b1ac68755c4250d3601aa64c50cc5da72883c4778df0563ecd594c12edba2063b7f694e6de15627f678a6dc1da509a056b00202a9963e8eac806e46cfede0f62ad8f81d2384ef7920033e326a803a6dc1bcb4f193d5c094a8313b193b63d2e3eec3239fae0185c1cf0de3f55bbd553786fd7a827c75f08f8fe1d8e1b8053d96244b8d852f16694f43f83826f31f4ec2f02bae8050472eb4ca9db5a7f402852135b3909da76c985efc857ac848f5fcf92530e12749835cc0b5fefec3209387c7a7e6cdd5644338142ae2c5fb556cd266c00d52853e315db98b6a102af626c376a93f2b3ae30dafc8eafb3139448b5679cd79bbdae8df7079c6c5d9d4538ec4e554bb4f9e7526d14495d730ff1f6efd6f34177ab8a145b6a878ecb30bdcaff7357adcd63b9fd604ce8234efbee7e9b74e76291f186140ddd55046a8d629ad5918b149625837c487201ae5a8029ad03e0f14a809066e59d94d98b486eb5b4b1e4854d6e9ce0ffddfefc44c9c1f94b9a4f872b9d598a56097e344a912395017a717c1a45e9bccbf9687c40c121cf489d38bd46183e1e4773baf325040807d0778dcc05070ec3f0f138f765d954933bda4d35e041cbe36caf1eafbab04235d635c33261585d349972f7f138de2e950071b2ca4e8c7a4ba3c286664571a54093f0c5e32c1e8bb2a89c4b12c871f5978e541067cf2d06ccc582d286f001ba069149d851c7b1a5f3cb6adf98b62c497088ce160611d9a2ddd3bf09c78b6eb7d42b26a359b01739bc600cc0f52429c2e9a43cc87e93459a9541f84490cc18f424f0ac53ef66058990fa06db5ed85a7034d95a9d8cf0d4124c7f495b797c7444809caaa1d45e5fdf8672f78d16ee49404119b959abf0d780b9734c10ae064a0c92efa4cf72df7531d1573d69f4eb4d86a4b94addf5f50d2fd1a96c12933cc58cbf1244acf776de75aed7050a1998840d939988f44964e6c998b2c80cba68c8022d9eee3256807d9e69da9e254b997ae5f5e62c13a0379c3d0a21541c433feaa012c62cf044c704b22559c3bbe2ce118989309b5c616963ff68ea0def15420e1fd3abee98a4003d512d6cf47b818ce80ade09b4853bcdbd9da09486e19e3a41911b939e66edbbf23fee1545a7099d5e794c1c97bb4dc195008b18656afc8c7dd70b5b2b46c4f432e01109b6d0671f13a3be30c5d76a8344ae6dbea274006b7a22091ce93a24bdfc5d92d08d11c84f39aba7c72596fde82b67118b27769d0f749d89de2a7d5c67690e8e23c0b7376d219b88fb1589fd57c9de3a4bcb586f1ddfcafb5668a431cda0954c1375fc712a791e81294c4564573babce124d7b8d1b404cc21129925a9282d420dcfe2ed2eb4479cf3a9777a8671dbf1de0496ec1b41961a29dbb1ba74aa4acb37ae0f70f12651d9844a7c7d6c2c71306e8f5ec94d93fc53a01316bcea298cd858bb66558204b6a192347c06888a281dc32856c03a29415777ceca2a9a184769257c75c9413581a20db1816b0125685e51d763578d2d479605c869de1e033fbf553f8d405c6a005d99cd714231162500a2f324421f17148683500eb10410d32ef07f98b9c40302b61e2f30af9c1fd3b94e8c5fc53b374d3f7df2e3c7a9259ba1a4af45630bd9942c746e905f6b2940da28d7e2a5bfa586d63b107cc6d37777dfdfb1e0fb84e79a5c58ebc88f5009afbb9979109278f32dcb19ef58d598cbe71088aa407196dc4528092e44a69b8765d62af47781696066ceb400d564a383945ba74f0e62e6887b09446a72ecbe73f042b8e2ad97c072bac479882cb2900e692137bed4e5e953eb56270799d2a9ebfdf2277e30ec5012ffc0dd2b115d9c5817ab59a5f09de8e6df6be7dcfaec2a99bbe52862b72a748cf712cb6d8966a5fcfe21ddf2b7da87c8ba157715fcb2aa6a5575af10bb3fb8ee728ef4d7238bb52cdfc663e676f1130f73bc04ae41d854c067ffe74e27f02577a19952bf24a38e69a6ea52c0b079204494472fd1d6e9d7740bb65f0ee9174ad74c2651694354fa3565af1168b24bc301854f24205e3e6e2730eb91f0f248578021b2bfe88a150d7361f8df14b8d499ee6f720449465e2998a57fe63f09a34a1bc223c557d9a8c305d689d40fdff1dbdc34bb5c7dba2cd137e94776cc39f42ad176b67c3dd18973e52b68091807f266dca2a3de92a3d725839f48f90e91d571b56a7cbe6b0be79bc1cfcc74363ad62995948ef37907d25d9704329d9414a6dffee5fcc327fe810e12e4a5cba038e4d89284e910533a9aaf4285a96debc4d4e594a9f31137e3c182b57ef9f655f6589eeaf2fcbd2aac770f0cab4086755df4534843b34d5b7981021ef30c7ce0fd3c32cf3788f29f452c671e47378c52150084b0936fe2bdee31c7f0e6a027c9fdc0e4ca6e5eb786b084bcf7dbe6f61470c5351188babce3c546c129614aa1220864fe1891c77ecdd8f5175831ab014b00007b4e62b3d6121f18cb449d7771ab8c5306929b5cd3dc23340aef4d09f2d35bd426ba586592702860c1937b2b637a68eaf82b54397ea439099591a6d8eccddf160070003a1f0f5b78fe2d04dcef3392e6f17ca7444ed9ad387fa435d2c009b204c93a1df9dc7c994831d333cc84023993c50d881631647c49a3adad45fb9cee86d1b5885aa475ebd0f0e1377333eebb74b9409d5a326cebfc7c8aaa1de7c15b077325533bc1026d6f8c088e9c337bb00d8e0ad44a7e99ea2b0c30c7ae95698c953bc72a8d31f9169b9470a0e4750e801fd84fed7d3ceaab049536fa8d8e3c74593cd8e2e8eddecb834e6be47a0d78d2988cd6ee73bcb5ddaf364c9fde55198150479ca970f19471a27ba9679603e72c3463fd3f48e89dd7cf4f1c09b5148edcd748f4446667e11b4afb31729b42b062bda41777a931e5690161fb29abe714332b0ee3094967d3dbc45df4b3a8de012b12327fee094414908a30f9b5642acde414fc4703297b988929794bb3dd1a6d1ff96ab7c1987ad8c522b0c3555dd444c95b31c51d9b8229c33ef51ec2862a2c002fd9f3ca8aa6505bcd74da3b1bb8a33b80e9437ff698153583a8355d5d835af11cd7940056d521b3bf8cd7becf6ee344b5540172c6ed70d129ea87ecda432e09dbe56bfd466bc0cf08a479196d86092bb859bbed46656f8f4e5e15ad7f5b8cf04da43647b0d059a98aa9f0bf1e7266d62e6d86235536a338bcedc5a3da372a79d2edadf4dcf475e6c11793b5f95ccb86eb699d7a529bfc0798361018d08d44ac1c9543731ae24a54c576823b6074727b0b8d28eb095552925edac27993d053fa39ac8fbc89934b0a4049ec48b1e1ed8e51e54d0091e53a08cdcb477110ab0c2cca10915246a11c09160162ced5cb9327479d5b50c5b2247f425c5567ccb7de0b2f704a51a602452a2ffb82f65069c58614f5ea6e73e7b295f43ba43e72ffa52267a92545a0981c1d6241a12109300ad191d55a2d89df594fe0dddf4326a162b3a02c8c0b80b057384448b0926b00a622b9bcfda55f1108ec16b3da4cd3bb9e3e83626805f1b3be462517da7f599624f28552425281240cbd68bceeeb62fb20a2ec11c00122f22e7d088f1362b132dbfb84b69567f1e5eb7c529fe12bca56e4816b344955b90c1fe4b8097dee1a5951ebf7438aef4fc15e79cd6fbabc633adc453c564a068552a04c8249bd1751a57191e5cbfa87c8fd69d284a1e7c8178f5468f73c75d93bd93b37b763dd41db2eabd2d0b86f41ccb23349ac669d79c5f664c7ad148189045fd210e051934369b2c4113b3034e7473b29da1ae27edbc02cfd41bef5e66559d980ee4d6610fa07677090da2f6bb2361da8a3e07019300d6d60f1432ef3e64419404b34acc624a094210ecf1179d32295106d5027248fc7f02efc1de552d4ae1befb013aa95e2cdf34edf56a320ee0c951a5c440763d06cfc0417582724686a2eee10a5ef7fd39c4426c3d4145f4678488b89cf8d9ca4657717bcadc2fd6755015acc93c4ebe530ca987e1f512107ff3eff0b1c9f3b742a2f0ef354a45c27f933b18993e2f48414cfbcfa4722b48c066e6fd75e777ca7104a98e02f5bc3a0d1584020ef4f17321e828ab7024d70f0b78197c0ceb57f3dd572dc1d5f462ac3e5e46b49395792cfabc1d3779764c8a4085c43ddf266adc732f461277def32f7fde886b82a14bb968f70346ec8ca6cc8a0cab2463f568c623e889761cd8610033c4078a9a3d6c17222ce6c22612981fcb30b2a925dfb22d8c370784041adcbf6dcaa333ffa53fc35a40e6853223e541a56e0a9cdaa9732f94e8f3d9ebc7d8c54abf1bf6a7b9703134e5ba15a39c7d10092b60f885cb22ddca6fc9edb87e8989993a99fa44515260cf5f8fd6e0352e1ccf753453a5d82e71e367dbe4e6109e9079bdaad6288de812f43ed792f5d48fc4921d35873a9bd7a08414ba854b35190f04cd94736ec7cab82676e15353d418d7a0c635c3adc61a3c55499a362c1f2cf4abe8a222801119f8bb44d898ff47601b8b38383ac31e5095eea47966fae6e30f0394bc535deced7402dca54c80f69ca96e60e252266827d0fa0b313e20ab8540fd9f756481fc642bcde6201fea8608b514d88a834908e8ed2097fb4bfad8cb1b1f96bdbb5c9690d57e9a9e29ca766837dad84a417059fcbbe297a7bad7cfd2d691439c218f7bf439b422a2dc6d9ef3cf65a9497b505a81ca58b56c094b8c47ba0b46318c1dda282f733441c2113e78218652f14354e1300afd737a47a797d23a0746e992dd682ad2a9227f06c45971f5b05e6b0ba19b78dfe181f92da99d5d0618cbfafa5adfc647ae10941b91635d783092db01523675203ce1d9e4a1bcac1f71d12f25c509cbcebdd85f298679a1b4a1779f0f55f585fc648e23e144a10ac08db2ed5ef0cc6d02153f6bc898edd4a7aed560c91fdba537bfd20400a6eb7f1dcc5c222fab215d11845a8045775321afe09c119ec80f36c7be57169ec6822a669ff23a3ec2ced896552384a254c0a8e7f9f4c7788d38098ce389663b1b43c4e85f2c82f922086426c1163e79047dec0c0367a396b9d855e9a5d6d91f9cfa03664201a0fca96a50e8142d51686277a65e840422e338e9d640719481a6b32bf1ef224f44a22c5df72fd613048e9238418498fe34082b9fcaf5242000133e1a0efeb41a555dcb21cf55db907bf38c6e0da9e0c9c78b84daea31c4d1f3055a46aad84092d32f3f90e9ec980ca9b75ed9604a1de7ddfc4d9bc2ccf35787bd7c559e2790b073865e8864b874589e1312a0938643387727d8053d0cbd2c5175f74f041d28688b9621ec6585ed7ae5baf030e885f71bb3c80f6c98670dba3b4bed4813e7b434d3a677760a8095287b85f8e3ca44b1aa906aa6cbf89316df0f876f13cde5333e8b3cc889bc782c8ff8eaa783822240f9608a860074faca373498809e1db1b1ed562a64e36f69d94989cee3288f6e088d0b0dba09aba0d62398233b208ab69bb64cb2d19ab78b6f26f163a43f8cd7da66b261a241fa213b10a57606535369385f961152bcb3b0c9f820618c0577d560b9279c68cc05c9a333f07bd2875408e8db3ca74d1c9e239c57c19f3d5eecb6e8bfd01a42878e1948abcd331915cdb3945cbba6dc3f89b11a2d044c4bd05cf467df21dafc4d02daa7db48d8f201eaf167d3e68b7b2583411d35184c3433bbe9650dd720499f2ce10ee264c0d675adf6f8a0d746b56fb3b6ab45f65f18ab1607f1fa2887dbd41e54be91779b9b7f123b2a1ac838abb72c1e065404ac0fda70dffd70a0cdc75801fe21dea03340101186191193b8e23815b684656b546d0c966672a3acedd1c4eda03c4edfd5e6077ac002c32c670c34ac97c18a2f755131bc0468458802ce601878bc84baf398d0934aea1f873945217425ad64266bc8b94d3e83fb268d230acc6ac5e431aad8331f879416411ba0d2404c7cf612910e8a01bcb9a0de6ea574e795868273c90d724fae1098d4389d8ff4680ac2dbfaae987b04069c768121f029ac692e4e39cda0bc3fc9077489d130e4050100ed74ac004406f5d942f075936f1ea86a350022733f4c6515d8230c5340db2e487f79d7ce2a62ebddd730450af18512793160e0fcdb07141fb334933e7654f66f440125fac5ea2660d61862a8e59943049556c53592ed4c493218e65c1b0c3898a8fdf4528b6b76b7a59a3d13a18535502a9738424c01df6886abf1df36951a8fca64c452ea38ed3f2e4e944b8e9030560792ad529af50a06debae64cd69840900ca9eeb976c57bec6aa938054d7e9752626c00b78c94e292b94456ba266c3ce9f0342089cdaae22dd438595a81cfe1dbdd80ea5115484de8268882b9f060f127be435f24535e0770ffe04f6a593e0187756e79242a3bf2abf790ccfcd52cc5d1f0f8c82508e0f4076ba184136a7478a25967a0f6b8eabcc99bb68100f490013d495a3412b50118972744da9146e9982b4b633e2188781c6bddbebdaf39e799794942037feff925ee004cb93f1586f8f27d474584a5c92349412b768bbfb2ab872bec79301e30ef4e32f0d3fd9579690936109d2379619b422bc25ea4e11a204f384968622b6262e0b9e2e88289563d355c758e5752a4e62d1d155acc2997fa5a55157241fbcdb96a0918910c1793a797a9d32cd2f5f6e8bf1daf97c22674921728b1c44a3bf1387b8ff4bd2cf0f619ea5f0f08f8c4c9de8625b0909c905de54c201397adb0d88c4e27ce25ca5e27d51c35496b0995e9a097a7240779ce9d91d09e9778ead9d458e734ce848c4e5e7962dff9f6a9d00c40b8e0859fe542e16e2fa87edb90552a973bb7148c45a43a07756f72e758473c74c628cd6e333e5f073c8ec494d802fea6d28c8fde605177ff0fc0de9a19b046799d5de808de0c704e6e4255a3f0a2ea6a88592cb1d563c692d222cb5e33573bf4f51468dede6771eaac930b6ab63fbe83a51d54dddfb6a21e14d1b166dda8159704dc0bd262376f1f726d2b02dacf8b0beb46b286b5b7ff4696b431b02d38f22e1c197638a21d8038920369b11a2539cdd7dc1c0e0266be3aef3cc35d800c22dd7c5dc9914b55b7fac2973624fa2a131f731d5c95c0c9692271362816950f71f8a7bccc91cc80bb649783f15ab31bb439d4fa7a0163561058d52e055b2447245006ac56ce4574cfc5483fca3c1755d152fab96876786e6cd0a654a36f98efbbe7cf455eb97762c38c0b00103694275a51b7d0bd54d0e4c81f15e9b5a21525c2b1825db438ce4560247da92503622eaad0915c0d7e307c551b91dc123eee0f47d5255a514dec75642f0b254a7ba9f788c7e525842ff57f01f7a775b8db705a5dd97c87f26e78b3809c9001ca7a442b6ab48b54f1d0e4a07324bbeb1912843f4e4dc4dbe3df235e02e53ee21f0a8f0f30ba0f834e51bb282f3b7d1cdda2a5f6460519f5b8c9b77a3cbb950f2b12ff1c8d0c054e02e2a0dd9518ae04c70835f9c157fbea4a5650a7b526a34480cda348eb23cde24bf835ff7a5b8c505d5d8c94a0c6fce23fe54dc4929bdf645bafb019b4d4f51cee47fa88160e8dd7cc73940050344242c15b98c13b224d58544416f1fd5eebe7de533ea32e446631f0f95a7c809760253c32f3e4ebe06a0f01e84cb9e9795e516726df14e5354b6a4bc666b95a2d0ed6198bc54cbfacb50cd21dfbbaf308143c14b9659012824ca92fa3b467193ca0290a6065de3fede3ae949a35f48e7fca98d2b7ff339dea68a89a3428e51278422e4798a7d09627249355cc2019fb93a96dc5a36f682b1e717b228dbe6e796660b72c46a0ca9367e302fd82d4f5cf0abcb3351f934a7bd54e422b351315e889cbeaf0225c09e84752e206bed6ceb90b8473900d160a5e3741799b10403bf812a98c97476d1075b5e19c00880ae6129e0eaa40cc8ccacf9598f31052a5b1a4bdb19743cdcbc7f329ff1772c6ef1f1cac92549eb8c0fd851cc2f462f784c8779a80ec3ed8e4d4b77bee3f3eddee1908bc5a6c1091e672d3677c09041ddec5da1aadf96e146802f135d92b062c5cd1aefe235a7901899936906b52544dba579a1705afdd61166ac84201698e2459084e6ae141550c260665093f199d1fb38a66a945fb43b1ad8c3f29cfabfbcfd7f967944c44ff9c10cd280ba443a748416766576a2a2142c3cb4936de88453e82a0b9f8540771fae416ea52db96d9c18e47cf76ad1120dfeb9b19bad50dc5b1015447647f4067a17ccc4e3397fc9abe68e9404c14b09a9c2684300393290b9f3c81062c61c5194b8f2002eef361fff12c8410839a2e0672f61301a85102aa69050ec2a492381fc0b318c27885e10be140897b884105b65e0df959a473dbc4abb9b302c03c161dd83a5a31e89214e708f4c91639cea40a9525f9952f5cbc44bd80e113cba91ecdaafa12c5324859119c5e38d29e2f974ebe2f29cef54109b7d7ed2699b1c6c7fccd0beb328d6dcb34f6ee413883ceb6694ed84913062905cfa8fc22d83a2e302bc815485548352415a415e40a21a9cb43406d1023a21fce1b0e07c684c25893bfd590af286efa637a2c4249926cc78c978a9660cf55be28133a7f02bf53c904859574481a93e7c599175f802321270a836704bee4442a6e8f882f108cd45df42bb31be025efc31eb8f631e3b4507949f11f6fef0688d1f2a00a6de4d72342dbbe43c34883724e152d1e03d30e0666818e511e8c381824b39be0c1ecd2011a89c9fb43d6e95d21e4e28f3c6d62e0277b0082d418cc5ba709c9585f68366ca0475101261d72d301c5b0a194bd74fa590675e5fdc1fb2ed4c80d893a8b619e1c09285dd34d23b39b53fcbda47346cc2ec1373151e2955dd5b33ca579cdcea6aa9c355136c82cdd849895a4ef8b0c0ad3f6002980e2e3b065a7a5e830c5466d6fcbc9e41e5976cea7aa7b71eda3c3263d54a911f2191499862d00a9ab11d8b2fcb4ffaa8e5431b5bcaba1194a98ad004ce292cc386acaa93ca01aa4fcb76c09652884120e887d7498451b723d03a374a8411c29a468d6ee3d1a525bcb22c5b8326b9f897b8f52f42d786b14a45e206cd980bee9811fb358a026dd2faf4740502c23d638820bb7e395a8966181b63fe5cf9c7b2518b16352b45a0c3fc43559ed6f13078637669d6978d599d8bbfe48116f2e9cdf9c7bd2b492d31c4220509795d39c18b6ddd2fa5c19695fbd48f61ea4a0871a80841af45a20acfbfdd3d3c661835d1221448bc2e65e30d0088c816774d0eae85192d5cde6042e73aefe2cbde6b61be265611b4429ffde0585f6d50b16ce2746fde36d9dcf210000c59bfa3d5cfd789dd40581e8b83e31f3334c1a045084180b91591b13f21ea29da06e1946fd0f9d067eae6598247d479db313fb922bdd3d5a10d254c0319c08cea17f3d796f28e82894579d97173e004a27ff65e87e933ca6a086247efdb02e9d250e000219cc55cd3d04662302b16ec3e137a9e47907afe057fa25a3663f1e268f33e7280a5fb581af3cdab3a09539d63ceff136b35543900b61e667c731ba4155cd0a902e8a36f2a6892fa7e561ae4c6f2600da1800110ad69d84f6a4d3e135525de78799676018596e180fadef59c72231be0050fc7e226e1ea0c978d42564574cf4e4c71af92488e0d2fb32ae61dfe51e236d5dcab1b5568fd22ac1f38a7bf6398d700c1bab60a0b6e843f39808e55b11e456083be404c13147ef13006a8cf447ba0a00bebf92165b476bd2e6b0b0f09c329bdfe7c0d5f37f38c8f415bae3a3dba0421753e3cacf40b621f46c95bcb530b14f6e03e1d588d15886c05c958cdc8849cb2d971296cffbc484f2ccc2794e01bcd196f9a417a9f73f7df7b8c7b94f585b22af9b4aec48fee674cb8939bc34b7d63653b7559917c54fd6d0a122c84f878a47ca954393ff6a6551d1be97cdf82675861e5163fdfcd2449f5c5a39a1377749bc433c8e46a26e79d8cd38ac6e8cbb811e573922d007223245f87e42205966daf96606522ce225a97005ef80ba11301867dac2fbee0aca23b5923f90e625538b9685a1bb1f60d388938634618cfa9edf19f02d930b791756f7f2ed9edbdeb3c588933d208392b4ff123c4363865105cc01f2d241cb06a22fc73ffb03fb8ab91b362f49c605cf30c260680815716e7919ae8b6d7ff7ba58bb90b93db2314775a5a02d50c053365404d68145f8d2a119b733d01178bd598d77b06598e834d54199169f910215b12e3251126381ba8a071b6fee3534774230058bf3e08d2c51059f4b9d1cb65dba6a0c1fb30b076dcf5f2ac9ae5904beddcf3d4d4b9caeae668faf754dcf6ba3926952d18629a3167c805ec519a3a3ed6caaff6bc77d2ca30317d1865e035bb4ce35d6aee802a1df976153cb77d70ccbd95c0db382ba0b289a9ce2bada33d23187f3fddee96a64478bfdaa9a7dc44f235725daf32ad6554c9cc80a81bd61a68fe89a806bb0b08533cf85dd5a1dc5d6cacbd9abc191068eb81f03bd3638bbed35a1007e157aa00e751531417833272dfbef105c1c39061cae7cf91643223de172b378bf6e5d02f6960b8c881634ab4637cfdfed8bfd02cbe952fa3243b30229b79f94358c64605ddea3ee948e8226784be3c516b200b685b1b6dbc46510da4b6a5423682b19a7505908f875035be9ebcf80800f4620e5c8522fac67c0204b8b194eac37fb2f7567b111fc5b8f5a1a30ebc208e042acad05ef12d202af89186e5ab820737e454e474a1955343cad023af0096554205e914d07b356705d09f39872190b9a8cc8b7af7bbc56896bae57a72d35e65823cd205823ccca296e49fda472e662d2a5cc405b434bae8c1ec589680120c26f1b77824804bf598b8896b4bdf7de724b299394324d06e8055306403d8da89029e4e6266cc7c155c9668d6ae23789524360d11c02df4ef1560a293be2bdad82a9c9da248dcd1ad96af607993a0e0e9813d2da73be22d1bdc7a954df3ac87cd1b629a37e83f0f82588d36d156f978e50981d038dcd17560a29a36ea7903434c7da82e8705747477a27eb3235b2190af53f384009e2cc06acb2c7f64cff8135b2425bb845d12485222832c49d59834371557be5aac4d3b64aeb4101b6ce6db3a1dccbb280d1daa81c19d05450916dcd636d28a76ea7903ca8d1222175211b808602b0a0ad79fa26311692c7dabc9ea0ae20d36bd52069a857a5e6b16b9816a979ec15420f6e4434cda0052857884cddc62153a7d422ad72cd2259dbb5812dd393f5cb59a14cadcd666db3dabe6da4a370ebbe3514f3bf1b1d6e421b1e8e959d0c25acfafd9484556f384856df6a43918375425aada113cea0309ab413d29aab3d8cf4d7272c8c9d70fee549836873df9aa72ad55b6e11d2aa7f3bb04696094184586face15cfd4548b3dd2841288c866d6ba130eadd5b246c92459a691b84ee5499f3c74ab11e56bf2dc2595db85cf4a87a427152e115a1bc519e07504f5fcc6cbf3e416130944018218ee1753886f53bbb1151e22904c54ff43a2c7257b4a2288a626d914e9c93752fa41fa041ca88698d90524a29e544c3156ea8b5d64a6dad265cad235db2429c7404cd99cc1a741cae19739d3187b999b9cee7f4ceafe78915832a0ba87266b36b6ddfec9e81c1ea0d455b7de2303c557c6ac2275b6a4d040371ce9086128788359c6d74c724d38904d0bd20759b45b162b062a0ce6268a38f00f24420cf45d1009d94bb1b0988cba2e701c9ecb937b6b003c1b9e79873cf39ef9b73ce39e7a4218e307bfe514a29a5b4bbbbbbd65aabb5d6de7bb91083de8b47889c63100c41c719e44220120f49c230e440e81fe832fce148fcf45c26f9206616a91188cba29434a8b1d647b94f2e8a27174f8e1a979ac256d91391a494524a799b73ce797a250a848952da1648eef6eeeeca546bb548d3de5a1dcaed35791a4fa7179144cef109258ead209c45e74006bd158433ca71468d350e04a1aecde867158e3fab0c8ed708d6c348fe69a22c59aa683a842131e816305a0cd11bdd3169718ddc29ee65838c65216d6e13854d21776e1a248cfafd2e1b6433916927f513240ff7c385643afe8042e67e4caf7133ce072744a6ce09dda5e6e99b4553d15d29786fb72948bc4db789bb378bcb06dc71dcc97244570649dc51153ed952b352fa14a2734c1521d67a4457da0a5125219dadeb6cd30bdd110a85cfbf9cc6bbbcc6b79cf6d67f1e7b8ee7c1e9910b22a5809032f281010d70c00372f0e8b071316379cd0af978adb68186d7ea196a78ad8281e6b5ca859fd451ca0c29a61416a99bcb6a488438180250e94147662626e7c5f56e3c72bd46a1b08df4480fefc3889597eb781f46d0b810ee6304f61cefe35d08ecc383ebc47c07ce2e7f81d37217374b48997aca88ee70462810e40e6705093b6a1ece963283e4c1344831350f26c2425258c81d5c840ce633d6604e63ac394a8db186421b53473f63ea081b9108d1efa36083aea7217e970341705a21d6fc28f60870993f80c77c017ce60d80f30370ab00977d02dca6024ef315708c006f0d4026cb0a484005868620fa016400df0a72aa999d5035dcd5f1f4a8881a758c9e428a4461a89bcbd538d7ad977906860054645e2561d7671e45c2aec7bc4bc2aee7bc4b9a8b65ec8a12766fe7fd5f0a06be5d2aa4b1fc43c59c4e9c18cb28144ee968fa44b1ab71e10d780938033e02ee03eb014f01984e47538e5463174d1d8b02df0222c4e808690525a0cacbf09a6fe1b2ef6278031e026ed31170ee5f72e8c8e182d53a64c4b00190a4162b187231b5985e4c96093331991075e3ca51df1e745c1f2ed8081b61236c848d4e5a42dcb3a0c43c25a4c9f837c5189ae3fff9b81ff3eba90f4a87a0301f31634b88d262634b0808dd8190d72ba4ad7cfe2fcaf180f7d1873a4685721029bd5ee1bc79eba7b3ca095e2b422d9cb115642536b686627fc3655e078f7900f8cc07c0733ec871dec6ec81dc1f87cb7e07ffc15f3fdcb0810369e8876f09b574f8d61001f8161100bef523e85b405a41bee602fd58732d3e01b97f3d2747569ef9221d3e4e231d63098ba652c794e692cd369b2693eba5c52f6752d14472f1c0cbb9b840ee4d5e5e20f72b151322bae3d263f333fce66538ce772c7fc04bc01df01370ee4b589d8c5835af80685bbb650fb51c37bdd6f6b14fc5bdd65adb755a617e293125a2523a509e1624aa92944baf417744976e83eea05c3aa63c581451947c36877448537949094915626d0ec94518b242717a72e2ab139be253649df8ebe51f760f599ce5e4a37f0b76eec38f7dbe3d718cbd4588478fce39c7af817c276e7d383cc79ccfb1d6fac6203cfdd6aeb7fcfbe6e41c777e1dbbfdd63706753e1d3bf8b5ebab937727c76e67b8c3cc7887994fce71e38e9ae232c471723c0271f26e04a2c577546edc51334b8bafde3b0cc04950cb58298c657496e3b1368e92c2de2b85fd58dbd179de700f5d8637dc43ffda0872383dc41f726e6fe8d84367858e9f3a77c71acb77f4cf89d72a5e09c71567ad38fe95b1f6b1586eb1b3dcba0ab658c5b1cf31f439b6824e7cfa89cfb1e6e5cf81f8fc05befcf3d789bf5efef927bf06450de4e975cea36b38f4f9b51d35bfbce5dc7b6006d1009c0481fe1a6b9f83147c7ded7390e2e86efe9d7e9bb3ee72ef81f8dca47370865d3702f1f949cd8e3b6afec697ca8bad957f218d9572e2336818b4ca27fe611cd250fcc46d265f9bd9641e31713c271444c4134a5bbad16c325fcc264f823c979a6726756c26ad9cfab451c963b5e2c03944f6a0302288b599f404dda9cd2264eab4086058f4e2252fdf83c648fc23791e185bebe058231122791ed86bf2d6e37b013f3f9d425a0f0a9b8f7978df581dbff4b956256f77310fba43226db5d82bc6ce8d2e3c7aa0927ccd5ed224829a4c2e58e241772676a5997b080d41846792f5e179f86be67e4a89ed14ea91311e6b9df300ea4161f4149e401cd843f069dfe90bddc5cca38775cf2be579a179a314672f1863e7307610bfe0990ac35388c6e44d49a9266f4a995279bb354d12b450af8237e5d74c4b36238d85d287afed3c1195ea5bb5574949c9db40109d85984f9d838d4347f5146da36410ab57ce438124abfeb15f355f607f49a52a603f09e6516baf5c10045550cc24d68641d47a12562fc7dd7bafbda730565d45c66a4dae2fb90639090bd81f628cfbc1dce1dcb89134d53bdb4dd7752e60ff97719e2715309134d54d408ef338ee7af75aef05ecf7f27c922f91b2eaf657295256ddfb96a471452037f64eded77ddcd799d44e8fa5cc03ff642d682d075ef049de842563d54fa38c558fc9d571f61e4b598555effe2465d5bf17a5ac3a090642cc43563d0c836818c35d84f20ff4ba2f12c7a1990f6aa432860a83c47e8b42a1509544caaa8b28310ca299449cf1ee4db52509836aeea7d9b347ec929581d829bfe1db31505853ca414f74eef4453e84107d52a3a4b1a1998f38aa6c2a58596f71b1b6296ef788a32108c18820f4ed02e1fee0fac0e5c5daaa92a5a26f55a90ea943aed1ad489c3de08178ab432cfdbcfa0773777a564161968900d2c7da3a46fdee401c2d0b1196b093926e4b11e2f476e9979056c7ab03717a95557f0983e8ac39107b084cd8474730ebd361604674d231ea1b0851c788da4848cfe638ee7297ebaeb50d6b01e710f13a0cf87d58ed7c979076bf17580cf83d786b6aeaa116f2af16067eff6518dc160616e3d98c18615a5a5af16a63329e8769c04ffce9937a8a7474a4d4b1240aa33e60f855d2802e435ad8237fe087ddf3f04ba55a19f07b6c67c0efb97aa78b06bccf7d20b74b58f5191a59434f373738d64430432303bfb7dda3278f0f23506ebd9f06811a1d4194d2a66975046bdaf67df52851c750435488adda8ed058f8d319c925b3e9968b35036f5c2036f66f4a7a73c0ef69bed5bb42ae63ccddd11ba2712c9a05c393cfa03876ba45b91dadede2c04689106b6dcb36ba53b34819f5f6c8bd81487d50218c22d623ea11b9476b03c39fcf75f4864eecd08df5d91223736da6d4723272a6ab5255e2c6bedd6e99e66e8686bb2d982c2ccb9bb5ddb8efb2b5ddec404271c7d58bfacedaea7c21a50c3badf8666dfe2c4a7c0c889dd215b3c97a47f35ddb282cba44b24454258b64837c45a2f78f7309c554346d4b10696e8b80d2d084ed359c9291a424eed6dc6c831041aba3b5f1409cb27022cd4059d83e0b8168c6f7deeb971b67b3b0dd2604a235dfda76efe4aa908d4dd87e130666b8d7dab663ad94881127841b42bd465548ad5748ad5748ad63f55babb5b55dceba97ac1032923d97f3c06abb4349484a50406a1ecf8812ddf196a02077bc2e2081ee7d2e04f601dd33d23c1ed312ddf16e5d903b1e1612463d0572ba80a979661d9b42148685dc99279030ea31813f66a0437dd63c1f0d64bba073fae1205317458987a690c54258084f17c89902f07618fc3ccacd6c12321d7a953c85a6d014fa6c1bf0a823669f10ad23ea1312ea96a873c95a6bada56eeb686b5d0211227d6ff7ab6c77adb5d65aab135cd5d61637a89736786fad9cdbd1b96bed51b6f6a8c7226aca5b5ee5ff25bef224ee2815969589bf58a71498981798ab25338342a15035e5271892afc5bd3967cac5eb8db9b8b854fb82899d3ca4d5d09d058542a1502894a72a0a85f279f279f2ef546be5702ae6071111ee4862430c0d755e09cc73c2a702533fba7d98242523b623148674446fd5092641307ab1505260625e604988262f564acc0bccd592994955150a4d82c8745a82158bd127623ea968ab92228fb0261534e582594a695b1fe92abaa96f242f302a94bb040cc90ba66d4aacb61d69a65e62a27e342a8ad42898a7d206e5aa5545d59290269aa46ac9bfb372cc5360622eb1a74280c0a85ea6c0c05495546d4249591dc141cb8b9512f3024bea5810905c4e08612f3129262f960a2555574540151598d4134a4adfca0a4c24929454c493abfa62491594455d258a7431315f9986b05215a522ad5048a822f89dc48d6a105e4814568f4e641193172b25265555287789d4cbdccd1f4440766880e4578a626ef24530272531af29967f31540cc451fd5a14949cd84b1f944985e8028342394c4813fd83c1569595aaae42b938b029286fb72893ba1adba644ad5596aa13e59ad458cc0b524daa446a0c26468f502bea56d4adb366c125c624555757099214cae738dd4a0aab49464646d5c8486f0cc171140a10d479e1e2850b9d9f8129b1a46656a2aa2109692525aabe2149d594d4cc4a48babbbbbbbb6fd0bf5e661318943351c5949480ab58ab54a149af56a713b0e6afcf5ea75b4793c9d5c1268d4261e9743a44d8882643c5ba3de850853f5f1222cbc5f27215956faee0f0f07a3a435ac4c3100f3dc6f849488b71e1e1a54f4cd31f1d52a2221d3ea91075b4c4622e3a5efac4461a040815c2c232e6d0914347510ebf4de4703109692a2f395efaa8b084413dce37b084f33676561259567e629709b105a64500f454d2b4c3c0307e79c1a8c05a62b6c944613019199571868526a4a9b4f0d9cbc8c16f3e86e3fc9df9171ef32e5ce6bb1b63862a4194a1e9e9994350d8504c0b9e9dee850b1dae09e28c4ec762e9c09cd061753dae2835110361b19a8eeb1f9b63c058488b9175af8e71e2e6e6e6a6bb5eee263633735ba7d3e97ef48c133939393876662f97e38408ea3491f3edd4d8080d4da2b1058e8b15171ad029ea21e7eb015f917319e268bfe38ccb84b499183dbcf499e909837a84d15334a36302e881d1c3c3e30254f9be2c1dcff94e87884e47decb9a1c0f0d0386947137305ecc18e167686e4f19191d3231aa143142588e0c9d1c786684342688b986268799981c5872383159e5a02ac92107ae67f58ed2ae3e012489cb71d7268954e972dc4582254af24aab0c52f7daa3a983a139e79c73d69e3d8988d324db6a7960adad1c7755130956586beb1d72c18b84ca83aec343c4e9b70866a8ddf7de7b6b4b6839aef33e303c618ee3b853087e5e37b6519298e5d581bd9c7f1cc6dd9ddc3ac871287d0ac1709428ddadfac08fd679a7973e5dedbc8ebbf6626fc773da20a1adeed4566c67d870861ef8851e09bc4ac33543d250214e74d88a8ae2b202772d0219d7492832d84c515397b2a61d824c9b569f3a486adcb1681870c75d1867f3c54ec950e71cddaf373de7f2ec686e1051a80aded5f33caf2bd7597c419774075fd87d1415a8c2d8db04dfbc1875eacb7560681d759af1799e77e1fc3e70c2903367fa1248eb1344b7412bd6ca85605fae76de67437086c7590d967e665cad84e1ae86c0c3b86b713f673683c16a25aa3a68db579c41edab443ce2c9449540959024a7ec992f3ea7143ba5f493a0378ea0278869d7d12388d2a76339253dd57abfa75266dd03adb5d6ba94971ba7acb6059c160dd4a9743a2f501b63ebf85ece8e620d663467abb5d79680ba6ca9f9d3ab84bc4c90b708524eba4412492081c4bd4112905028d082277b91708479c51095127cb28506ae9355aaaaaa131ceb655eb95250602e2f56a8636368fdcc3231ad9613c2171718caca95527292aaaa22e0ca8a482429a9882755d55d5f9928ec55a4835d9112a4e4a4de284c0812aa082ef930abbe327d1d03855d4161b72694139322abaf405c2826f5a8e424b552c5ac54aa9995aae457485c545474545e2f95aaa6c008718d15c81898e80e4a134a15a21a2b10d54a354b69579faceaea8b60dcf5452d0efbca549b6e1d13b23e28ac535a1cc5c5c5494cc6a217ff60605430aa17979655aaaa9438592126262626264bf454072840f1048581537efb06bec583f81bd7c0db78065e8663e071fc029fe316781d07e277bcf63c5e8187e13f7c0f8bc53533598c17ed03783be3dd73f81577f12adee2f167bb7bf60ff09b7780cbbe016ef30c701931de7de721e03aef83e7bccb71be0787f132b3d81efca2a679fe52176d179efdde3e2dc8f3d76b38602303877234a4bd665a6e6c64d8996c723e0120936d77c7802046c5721876220bb635979bc976743c583e9dbc9ccfcef34130b22610d8c8c0b19886c7daf7c5b95a7e07c7791a9ef340363a705d06cd659ffb5f320bb6359c4fb6b86dfc0a1290832ba00a68410c36683244ab810a7a71ae7e971b1b1938762663dd562ca02b080564b92fb7c9ee3f03c7fa08b95e9403723aa17c86d1c3836b62bc98c976747264b31b1b19384d88d6ed8cf3957c632303c7b686446e6c09cd3e017ef30870d91fc06dde002ee30be03c9fc3779e07d77905e03c01dc5e121517e7c2b75f2565f2223971d97e5666b1b137b29991fe146be23c33d94e0e4a7613dcb2ca2c96ab4d609c7fd5f09da739cfdfe8791cfee26d388cdfc1633c90cd6797f9f8ac24b3585c73816c5025883f2d5ce55df8cfb0f8074f1c367600bad1b41a347c6e0ea271cef3402f6cc8781fd98c24b3585ce37a0559dc4e04d97801fdd02c6e570d1a3e796596dd5b5219e8677cdb3876b86103e8677cdb9873a25dc09617c08d1d9ce771d800fab136807eb2c5afd72bfb0703593efbec39bf7997cdd38861a3e76fe0bc8ab73cee5750bb8f3f7e7ed61b58b7201b2fa01f5a8d9576d1f061616181015b1e87e3bc8fe7bc8d1bce53f3d77b388ff12f19355cf69efb4f99c566a01fdb36807e6cdf3cc8be2ce69c70c5c018cfbdf8eb3dffcaf9dc1feed8b1728d7856097a29692c76bd58372762e00e985960f4f0605b33bad00b9d5f39324a43aac993723e961d1d3b93c9662d1f4310fd784e66e446dcc2c2c265fb3d28a0856b9901809b652f338bbd99b9aecbcccc2ce37cf69caff1e335afe23d6f03c863bccb65bc8fcf3ec859fe7a07c95c2f1a2b7e1344848d1790eb875683468ff9596f50e12ecb5ff79fe13172d079ec35f3cc643b39b26fb16eac3750586b6808ecdf12ba32fea5e7635ce55d38fe16cef331df790ce338efc2626f6c66321a999abf4e3323131383c1bcb8e071c5e8c2622adc84e9004c9502465b9e73ccb1586e64dddae2d946a0e8c64492820c49dde0065c0843129ff49e220b68164c20051bb24ace6906f9052e4c21051452c045a494734a8144f641644971d449297ed0dd5ebbe7f527bb452972e075477c73ca49728549274d11a14d5b89ec8398926b48f490aceada35044f43c835ec46594561150b457033f8ba1bdba04f2cc082102d9988220e51a4a10b0306fb3b2e701cd7277ba47621adc341cc2c7aa2447185eea782b46a9034d26609b589a4162091a750963c25904ba4610a7906e0bb3f547daedb3780e843822cdb5b415eee3108542eba75acc9b1bb6344be76d9a29455148657545eae162b05e5c464a52a214989a853087e5e87b96b6b53f983f8e51ae8b5aea0045935f3d5c294f304892890a80d7e267dd3272d2206a2af8652763d416161ab356143f6415ce59a9865196c5ec8aacb5d4e944cd8b8907d1055b9f659fa9dc2a3c2acb572b8045ce2de8bbb0f0959353baff34832f51e021a799ff7a532b51551c32719b4f866124a96492c68c2fcc04ed2d07e1fc42c99886289ec8388cad2b92c99b0b540f6c81ef965c984ed045925fd0b69492c289255141644cdae9016c4cc22879286fa17023d0692197c0a88a74c43d923a7ac2990c2ba2c99c0821bb294de0e11057dbb9b526b6fdb7e82387b9c75cec971735e260ce172b63677adec968e90beae34cb963e6eef4562bc3256472b69ea155cc55e87bdeecad56f696e74ff72f5b2d7758b1c1816b7bd5d9df3ebf9f555a2a3f60897c398439975cc460d1d60b468d12fa895b3b45adad6a4039b7aa8642c1c38355533020000000af3160000180c08868322912409125d9c1a1400126082665a562a144863912086411c0632106390210018008c31041965684a2b5044f21971936d96189fa0d60c63658978a1e2594459aa95675636f9a096b245dde85537ce538ca1dc3c94afc4e81f147dd70b632971da20ae76153d0d90d1e32588125e310c1f018827b4440160d7048250e0f366c4fa27eabb0d9c70f9defd5f15a0208a6c003e692b0f5aa0b6e3b88a5397e6fb9da41c42c1125a2a36ed9bc626ecbe729e7dc996cb8c5f59a810325f98fe78ac203111aa1182347688ea792dbbbbeaeea222d59099ab3cc69b13a1904f349f8d8c680359c28df0b28b11aae51b965949065d3364118f1f064a79a9da78f4d97c2171354bd3cfc5b13a42493ff6369a222d29a583a1be455bb4f903f08779132bb58e50f4e326990dcacd86827d4731323c1fda9209356874684a99504a8bcbea429f7fe797614635e5aa8175ef8cbee18f3f0ac17c314d52bb0a4536accbef231aedf055a8fc2f72bc5ff8c5b0c102df60a6a06241ca599f80a2582d11ccb4352723a56fa361611f88cecf1b0b4970995e5fffae12160afa1e86b76a299348c20ed1a5a729bc15d5b920b6f36440f5a1114c5d3449a8643fdeb80eff91f36ca13478589060e5f495ae328bf4b073dbdb3c908382de42e178be887af916aacf58a2e765b10aeafbb1c04a1b055b7cdd0a51c25a9ebe4785c55072372099df0ce534d11f753cfa97ea00527c4ac8d3275e23f575fa3d03290cd88413ae29d439ffa2cba024ce1456c5271cbaa40229384c42da92d0cfc5e82edfd8e50fb3aee98467989281580e1448b92252651ce0f2e9fffdd51407e87347c1e8530de8f9bcea83209580b7eb04a99369fc586541ca2328f6fdf3adbdb3287d3e832e9ef05fe914f0c2fa35fac2d38975bfb0d09a2b9ea0484aeb4268a1246d3221d66b4811e804410793cf22464f0ccd0b3a251cf9af02f80ab7b5cea586946129767089ab94318c9b64e88a6112c5063c624d114370d20c50e11273cfd893a634d409aca829dbc06d49939c0e784b7c2661a028a5fd34794b12a03556a48ccd94d7121ec9d233c0f9a4b20ffbbe53504ae396a5b70d6bca32b0570a0e8fec15d5812e44c7e1d67a916af2dd534911464aae9e81e508acab1ac836892b8de3b4ac6791ba24b656003a42b5103b597c1df0aa64ca1146aa8e02881c365027ae55e4dc6b7c18a423fd108d413e043d349f0039de086ef2389f6879325260b0bdc1ed8c1405e3c221b2271c3300d03352f8f4687b5a804c44ac231c746e2355d1a73e04bf6fb0471f5e7fb72c1e2f9d5388798f43db485555148c9a178e142f41dba8718416a71c1abdc30e82cbff86d48ed46e29002f52ce2345d80ae33561b07ca4d6b684f3e6fe48bdb828feaa7ce9a2caaa1f1aa9cefadf3a440ef8744192049a08d8539054da732129632f0d83d600702292e2d10b37148ba47691186d936615d68887a22c928ab9e52b8a3e378ea442cb01196895c39ea5f45bc4d36bf274e807dffdb2e1e70b902b92d4c0f76d0f3f3197466353bc2e310791a438006833c8306f29fb358423b759325f034a52e85a47f6f8c92dfbaf80a9ae98b4e137f4869d2cc63b8098c532365081ec108e9447591b25351c9a926285c32b4e2575f624052b295110eaa1bbc2bbfe032ba9855090693284e1833ec9261bb2e3951486803c2134800f700fab4b2e40805c17558f7cc527b15b5202da7b26e36f048acd2d294123952dd1eb96d4539f25d5440cb6cbd3010aa5c1013e3a951f6e4911372462812e297b516aa69794641711132cabda11ef9577d16672edd7af96b8bda4006ac5108629118eddb1f33861523331bfe38a49153ac6d339981453a078a557b2284de2594a60f2aa7ccaece1c0b4085eb5b2885e0e5f6f4cffab1c8706c7efc006d919594c6a56e0032a55e27effcb88048a2503c21a02d5868c83391b193866c4418dbf3662c7400ca61f40e8cdc2114a77ab7551eec4516444ad93f1d7da687693c39cddbc9ffd04aecc8cad239a419382f9a413f99e81584310fc5da2ed0f9b5496cfa8005bff166a0d2e330391b599779749c5cd92343215739372d2847837b6e7be8e0d2ab8d8a4ecfc7ab1bd849e64eabc0a3046f27bf8bb5aefd9afd779e488d7ac4e0179b3424638dda478092a68cbd01a9e4d2a22dc4dea39f5c5b79cdca3212aa926b5fbc4ff0783c3ecdec90da397c56922e24a0773bf00ed26657d5e5d6741de65c4437deefc53df199dcf91abc986d12b6552468197938225ac27941b94d584725237e3f8c38f2f78c65db417d6c8f075e77708dc7c40af33a8b5cf7e474b7af36ff2f74237b59d97e9e265b5e2b8aa19859dfd00f64e90516d27a5a25d16db6eaac356ceead90346da4975d1db844b4fa99e69c6b01a8356a66327b7dfc6d3d323101cccab35d0aca856271a79e149ad1e601ebeb4278c6109972dc3937ac772a5eb00f8a506195e47ade55dcb3c29c5e74995da481c470d382fbeb1ca4f6f45033761dc36f5c8f57f52cf3a6da6bc8863920a2b502a5510470af3b089506aef1decb155508af10103a1d4ec39e36771a19422c3b0303894dad64a634429c167d883a2d489bc2871fbb94d37e2d4c362c2cf0cbf06948eb08f529531c568b65ed1ea2c0eff7f4535de4829c41eeaae377392de32b0d06b69312952395c1209b7d8f489d34f311a330ea1464ac14aa2caaefa4cf30718679569f6853c4bae94c2832d6b9c7e32441bb6c9875c2935a4115b8b9eb04d1be69d5e2eead738a7b62224c566af0ac71680cbe138b2d95b30a033a55cc4c1f84da953d903f0818280f34a7a8aecb1dcd18f0e0dc8c737536ad16fa466a5eeb5f411de1f80e82f1ca13b34cf31f6004b00d19c48deb97e520a8c60534a888cb934231aab0d78700a2ad5fc4b903fbead161237c04b542acdc076ff5dc4ba9112950a1ac6bc8bbcd20d58a2521f232abb161fbad17d8af6d44911955a8f2fcd4b75cb01139987362d952a26af4a610767452bb54dd01f032626b895da8bc0683de535c7e24a45e267e94151e96932f03400a3335738dc7a1af2b15ca1f67d853a3e10fc0e4a39517bd489fa649c1577a7f7684ea232307c4aafeb27da7fe19d788967dedb2597622c2a1fe792bcc0026e6017cf745abdf947dc7a8e7bd4847c74da2dcdaf6294428ba90f513cd94493dad4b4b39f750679947065e496c10655a3607b61009608afaa9b4cea42565d92055936860d3928c29e2985b5a754988dd4524a569bccea81166111a3c85837af14c7c0e3439ee81e229d028f939d2f879222c1f0a88a3858749ea456e5a290c1ce593a3b7bf68d2946aae4f7029e4152c1fc98cc5ea947e0fc07889bab029b35cf447ab8cc0cdf9d038c68051bfb08fc1cd912d0b0484a4f7cbc8807f91d6e90b879d397ec7b35078ce8c90265b8a1a67b62972924ababaf7a081c50180b7f05f9bb29c5cb6502b8b333167a5ca19703ac42d59719fafecfb00b5c82b0bb6901fd7ed164dbbb061e208408b387f8de9f9dc80118bd1d7688f4dfc436c6567eddfb50f7334d08c5ba7520257e6f45f40df7db0fe7feb43de4664b21b240178051c48f58ca5adffa2962cc2cae086d5c8ab50d2db0ec49b89d44b16f3f2d0c84801c8b204eff314db1e5b5a0fdeb96584188a68895d2fc4b997ea9cc3fa33cf60d0454487d2806cc89ea647876656499336486b907c439c30b26da7846fd53b78bf7c977f996bd0482433db5c7609305b7e9bac617b2ba91692e80b0192e98f0c8763d91add9e5f7623458b23e939b687d10259c98462b3248c1305699490283b1ea0c52d88c556790c030ae3a831486319529431bd61226c946b2a75f455d2495941f41cff29ff9e2b7ecf73b0cae1020312ecaa288598f2b6abfba5783f38747b420c96452f279b5ce6b997f83106b33f8ebc168829ecc946fb90a6929d1d3e5c75f1309a060784e026ef5dc9adfcb14b1ff2770695cd67d1fafb431be301c92abbd67378bba6006cddf1c840a91b50a42c61e8c689535495f1d9bf6985e80776c22d29c19b5e48ac96ba5fc8a261f07b444490c406dc1603706f415b233fe2677fd14f5198c8e3b2819bff31d167e469765e7002fecefe9a14f207f3519224abdf02d4b30f87150a2c378e288d78e1c604c68aa8a76bd50453faadacf3a424a1a030ee895bebd9a1b4a57902c1d90c27dd8b5e20f343746514d572225479c3eb45b88621f43c1f8ad59166d276747066099113f1182d88609840b8b2bacffc6f99e58d7d1097dcfcb0bb79b3d0a1573bc9156942765c77ba50a7f9b157b0dd7e5524332e369f6d18d32e5f677ebf6b080485750cacbde54227187d395e446815fb4f3d736c29578c965ef67975070880cdfabbbb660fd26f158012b5ae442c09354b4bf442276ea6f5d3d24a135e768b688a756cf470d0b77d5eab13e1f06a7a58e559dd6e47d368426b751f832eaa32e1f6b8eed2745c8ebe429160204c154b75daf1feba7ce2abec75ad663dc39702f75d5a3d7eb528f539882e06dd6e64356ee8638a4d98c5176c88a59d44d31ae77455000166f5fde87d48aea8421dc51c748b09e57b3f189f4d3ccf7e40ca2f8a8097ec846fb61ef56150f649d31f5dd50a9914c219bd642f75cd25b358f0bc5c0c321f60aea3bfcb3fbb6474498518be4d3d9aaaecb6fc49e505ad7770cdbf59eb458df2f0ae1d7b715cb13df37dbb4bef1644535193a63f9c2be79f0e6d863097e67cddbfb78e5cabe5fcb0b3166c6142f1b7f3f97380e90e9c401702c12ecb65975f25ab44505db5502007363a985686ce3fc669bf85e2e72ad5d88e311135424912fad22024404732912386e66847d0b6e6e1c6e2ffac016847a26310703a5087ca954c28667e4ddf8eb4c43c91709d3bfff918868c071721d1349b00aae3ae70e309716ea4a060934e39b08a07bec5896bd67c0ded3e35d2102a997d2334a5cba7a059d958242a0fc52b1b1fe5cc8fdca458471240aa5056ec3a59fb01718241ba0a8c2942c828db694084fcfa375529759d514a1a6409b993cd85325490893e8f63b0f94a03361add0a2a3b02390ad8c1c7f0a70a71b9a5aad0029eae681f26b3b773728d828ac6e2566d617a4d171e6e53c90d9acc876b248fbef81b4913e717c11a10b56ab36c07863d8d18209d0a127ec1339867d9dfc2b9c228168fc0699e8e1cf3501c6b186dd49037f9a889151a72b45b51dd378c56840c6e73dedd8f767873ded83aa3bf4b5fb17dbfd6b9bcacf8a3e8baaae9875a48154617103894091613df5ba6436b53df7958756a286be69c38cc93d6a4df4492dbc5b26c47578ee44e5416165d41fe79214653d8b0a5f97d888cb2be3c4336bd1b08219358817089d89a889ca202b2429ea83284a665854f13543556f4f9218754e18a3f299807a83094686843ee87b6e3286a18854406819c31d494c7452d075dbc3d353144033260696ec1aa20e10c37805903f37a63e1131a7897a2a014931400cc95617cc46f36645126b4318e2725d48625abb301fffa9eef0d8e6798f6460360a12e1fb9b5410c928c600c8cd27075534a5abea9e7598c9589d79f230aff80569e74863529da4d67b7d6185ad687f999f142607ffdc1fd98b4dc2ca72e275018ed24541093c5618aca9a3618746704eabacec3b8d4e75895c402fbbcdc9814c65a6ea706692b1cf7311333f149f9550998127a184979bc54cd701ca645465e6a3f72c7f0dfa4c689799b78b4dae8da3e0f480ab38342033d37c132cc7fd4b715698cffc3d0d89187b537a9366a627fbd3d22914ac7e648d33a365818bdb798645a1064060a4f0e43b50e7762451ed69947b3ad2c6508cf176eccaf4aeb70331a829b4f1a49a4e99d6eecbd63adcc9a85c4fa56f574ddd651d81d2e24eee4389d0723586d83db6092d6f59e2ce9287f2275c2f2cb62572679a6d6733b62bcdb7c7e1e254c7ab943bf534a2a533de8145d5365ad9ea3418457fd652a49911ad4b98b8a52eba4374b9197c31c279a53b2997e2d0bb75c7d82973856d30358d1e3e8a2652d7782a0042f9f3f4ded5a6f7d636bdb7b2a87bc416c5fafd45263e6da795bf071197f0f25524c51568bb3decae4c8a036bfefa97897df52a700d2b60d47d7f2be9b179a79c50312bff298acbc5db97cc0ed0aca7a9073df9dc5e1dc0bc1b3e00afadc840aaa0f865d9207050cdf6f4b700eead3e9799cf354bcf55cf962914dfb7873d238abffa66d12d8aa788ae3ca3b585e81f741fba07837468b475c0687713b21ee1a1141f37e6143d6265d15b599df47367d4aab55aa517d72b7a3b2fc58154a2cac3d993e2c834c14446319a1c2b4806d95d11a31d567016c95d43469d5b168a7f28e7db287781413e752ba22d424e4247ffca11000e954bf0fd1a2fce08aa8c281050501c398284971e145c1123175d29f7bbdcec9e70ea2fd397ba655a097465a2fc899b1d2bfa1b390b6c24f0e84a062583d82dae91c0557844cc0c2a4c8d8e2b455d393f914aaf5d572ad8a848ef76b5e111f00bf9e4899a7b9df88246abca6a4dcd4993e876b6d1819cdb26de44543ce1c4b71ef925483ab610dbc1e8373d7a50cba9f089ff6e80183ea6e24f4e36ef4e287e71f08d50a82741215f1a52fcffd513c92df076d81407cba58aec3dc5779008493815533cc5195b05d86e15d796e223501104cbc71e5502837221098ff5be12447843dc14c7c9736a54bcc6e471590c4bccf7b513b8f4682afe814d0f544915976a7a2e106926c249cfcd70abc10e15272b1ce3cb0cb9a3ce20151f01e01aeaedd996a11ab19e88457d530e6e062c9fff7cd1a838b05e4b020290f75f30cf3edd0804d1a4f7da6209688463d6d1f49a7cf79e23e60ee13e155f105e559c77a807cd6a157f9fb08f3696593360e6de40382f5358eac02afe25b2f76276f5be39f1df7e151fca1fcdf0663b17c82e491fcb5a9db333d64f7c8fbf34d48aa834177c838918496bd28a731d0bdbc1e463f94c23555ae2a35ef1ace21ff6aebd8a83bfe63865c547f555cd7caba8e8dcd1e7a09d29248ae948732868f43c595f147349b24c8abb0aedfd00310d100d2ea0e02929d1c9b2cafe2ab4f701c474407470815e07e26a165c5ab267646c1e953063cad25044ddb6d5891d6b1f395616de39eb382ed8622b542a147825ac6d2c4b6cc82db3f27457f1ddb16575890ae70997c5232f6a30fb057d573a6cb29f4476b1ab38942962032de126dcf2db651982bb30f0159ff22a1e7f86b2219c6130c2ce7e2c52a2217b156f027009688edc903f38b3cb7d14db0328b03c9e644813b8640d314b22f1757951c5b3a29b40d914f06f07bd86090979551cb0956bcc55fc20d2581d2b0e77080837cbc5c6038cc27492e0cedd8a034d575457fcc064f247ef2c49037ee65705644869944cdb22ae7c514cbcd24fb260323badb64f466957db41a48210076659bcf81c3257f14cbb96c0563c383a573c358c74e115673d88f55f71f4fdee4f8d33de062b8e052a237ff3549c96c6e6441bb6e3a7e4aeb1e64faf913bebe3b47c48637129b42f45b6f597d74cf4e56aa8e5f881f285077b37ec99f1527f0f0d7bff59165f733250f7ab55b1aac5e54fbf33ff14b438a2646a6917ab7ccdc2174c801677c8a4491c22236a8e708acf5e1d6fd5342f3e218b1b8ca68acde2b88622c26d6f428b03b7300d1f6bb9113ed71d74a93042fc6de3513df6df862d0374a39029c902ad25c4542acfb7495169f124e055ad6560c53d06c004f53d2ae39f425ffaca11b1f24701b9f82a3ee0b6d15278ef01bb2664e3c7b7b81fc0af1902b4a5b92c01b70c0db009c62d204d4e09023fe83641fdd39a37be064ab689e6fe43fc3b1446db2406274c0e4b347a798a47ad9455138732cb8c88266c5e24f3ca82c505cc37b4d89a99c741889a000c17105e4d6087481ec635e103c0b462c2ea433ec579471cd989ef3996038db38b134fee45db29a22c56a5a01b56fa276ad8c6388ffccd09e2cf3ec33b38cb44e85819d38b00959211c7fc1fd7b2b0a45b2832015fa4d28d351dda0b39b0fa68a8af379507bf14eeb44e602d9d40d7f4339ec04559ca7b617176a41932efc33de1553e3de0211cbfc0ac2c0ec06bf58700ee694f6eaaa309e53d815166a5ec06cd1e10e5115a867cdd67287bf213beb0934fa3cff88d7f366b811f425e550e475aadac266a8ffc8476336621ee3ca01e0afc0951520e6db757e1ddc8c29a71fd3f212b4c7ddc6028341a5c9262b1ef2e20b679ca70e40d11169b3c8001cd500b14886f0814626287d8ffc542860e65685343332b145801086fd9274884eba84c31f2ca7a4e816e0bccd01fefc7212d21983d68ca48a7096eb68155c1fc7d0601318d60562eda2ae104e8180972227ff19e90806725309ccdc3f735282ac13e5161d2a518af8295ea1f83e9edb89c580eecb17260a80d80821c7f04dcf53a4690deef1b9090edd2360650a30c4c287793c10e03f679a105418256ff2c5db85c8bd3df6ded9709be83045c2a3b25fe2296f1901d0d5c10b56591008c85a7e2e95cf351c72261f598914016ae6be248386aaccce0e0a6073f12a4d8bfb849501b07cf51315524417dab5c819df6945a64030af93b1a089b88a3eeebe84ef1129e5c9584dce97d3a650f8f73492269a49260f6ba24f960e6c10dfb2a097fb3a3d1c8065a12c08cd2f30b5f68969b521426812f3d0ce8034a60d6300044499854aba8394fbf81f4a9350913003fd333adf439bb3f6ca47f47e9e3ab3cb04df606ecb004b437f46f709f11380949554900fc9d136ec570b4922b8a874d4f03ff78fc8699026027e101b2088a7d0c48f0269275d7c1b3b9539b4473fa57899cc3e930d304f01b5707ea5222184ae8145902a7bf81e240f541e6086448226cf0524252f187d9fee1d2c6252024366cdc123ecb7bb7c6ea1259ae12fa1b2fa0039580bfc3b6450812b1fd16038c12595009e0e0f72107623d0eca9c3cea311a2ac1d98a7f268174b1434e062dd84e58098a70892ab5cee33fe18f9dacd387c17b4bc611b0045ecead3100470771861a8d35cb80c16aecf6b9efdd0caf2ee3b65902e3489a962081c09b624b004ddac80a8ed4e75b4226b741b9043152deed4e0fe9e225ccac2bc5e01c1c7b09d1b7d81b9abdae6be9f2b7bed773199430649e99ab294889694a86317f82c3f1f3d8d97a6eb826e3ccab65a5f3ffd0d18e84267bb73af70892806e4a8c2f03593b9270cd51d34cd4f9c946753185e664cef8f4b860cd6c0af5aa85c824b839903f78b834a8c1d5ef46a441b52fa05ffce1f08db3ca24089d042550448ccb8f1e49e455c49ee64b889adfc2e362e51db742ec2cbab6544bbccb02f04380a72ca184c701f8865c9915bdd0333a4625abe3b9a5a20410998c7a8d76a466e040f5a2845721020fa7a439475fd42ac8804a20499cfd185980ba30c0f06b693a9530fda50c07768137c8fc95e62e9520064ba0a6124e38fe4a6260893dd451c2411c2dd0cb8b0153c21ba3e17e80958061a01afbfa0a3d62f4d2d584b7843d4540197db622e693ee0b959718877209c96aaedde2ab347d280642286a3a9469355710b58eebade9094be3684c5a839e80638f60d3435fda54da69cfa4083d67361d5bbdd32698504b15bd5e4856f525549255d32d6c4a1ff10781bee950aac171e097d2d053f42874b31d920e713ae977b9934fd571fa4158945a2520194990b42c7e20a559b991926597f0a0b7f430d337d8dc64719bb091834f9646e57409426ceb05fb7c596687392633598d200fddcc33a70324f3c1ae0594ec9fd4008701c9081342a4d0e94f5dc78456152f9f892c0c640bb4f4cb78c721e4b4f0b0e6845de6cb4e6fb5ac1832b92aee740eed3b5d038e70a44e39371625dca28089eb4d2091ec0b9076c21ecf25d537539f88a79fc9272f1afeacf74f8b0caacbe30a4db962fc6b96b97697587458b74f000d5355d7dad35b76f7d7c955f0e926106a7a76d35556396697f0d32b53408c40713edd73c0e4f72361d82943dcf1e8239fc2628d9f411344d8a2febba793646ff9d818705b558e5b30dd7628b2f9bf15d8e0748037c836fe1bfabd5544ff9bdd2a55ec8d8ff0954f84c9f1cfb9edd889b18e4f4a10ce9dfb71f24e6def78c1d9035a1f6ee774052b576eb51c5b493d6a8bfb588e9631a4065fe078b01d21804ff8a567b70dfc7203f023a5f2cbc4397a745d9aeac42aee00ce022d8b0d197e9d4a2fa88a9c25268e5e6982d50ee03ccf4183152a0904b83ce89182b91d7eb586fdff9da48cc9f82397026989ebd12a7af493aa361714f4b299591a37852a3b7b36d69c655645f788eaf6e3ac89efd59c37e79f34d86ceda9c00abd7e17970c62b4a51c9526d01e6949614c71ac5ed0f628b72d73f639eb4a0f4603b43d727875ce1edceb9dfb21b1d7c0e0c202f7e8dae5f8ed774cca5e5db587f5c5ca66b887b5e55b1f2a71cf2bc7c4bc4202996aa2381bb8005fe466b3e78a09bd271b6e76aca52fadcab9079baae869f884ee01aea36305fa7d696823e91ebc6798189dee5971b62db41d70455f30c27a97ef9e748ae4b0a0b6c9ba754f29db68ce4cd0f4ec199f2178cfb0013a31249cabf4cfdfab320e9ccf3530bea6925195074cccf3e95b48d2b0df0bcd3bd2ae0a8018ca4c15df7307e92acfbf71ff4ecdb6f9b91fbda23ea23095e34ed4924403f2f7d85f72e1b320192805ca3068ff3d5befc9b30e5e1ea566d61e395b3d34f03959fac65534083ed894762826c79306f56ba7aa9cede043ce08a6761d1b3e90544d9d217bd42fc07a411789919248d53f9f87ae46c341420d74128cbbdfb0c3479cec89997df8b08d5b6d6e761c9d33fea35ddd5573ae9d699699611e041a5dd019d897d73b521fff36d44adaaac6d9c661149c2c685d18132874f1ed004cc63ef9997a7d97efa4142a4890acabc9cf84531a9403027f1b15cc887a920423a5669f208e6cc07304724e3171a4cacc1abeb4be29413e821065179d19138864c8a304995a31202790b314372bcd2aa04a4c673d4ac28c61a63843f3f41943a2e8d80c16378021134476d6b448169e893661936319bf1a9a0c21d61c8cd58f962731164e5ec86e68f8602906883b119746196aec30e21cc4d2707219a118d759f5c134685a118408032044a04466a0803df277ecc398bdcea8e33d2e66b1d2b415a5cf2203a047340b320162196fe82693a139177aada20eede4070792f790659450cc5716da8860f9cf0c8a8b39e63c7682456a979db671d32152c7661ee5ba9c75554de95516b1f45409cc4b2a8125b0573e5dafd4cd0c96fb9544a9965195264afc8cdfb183e27b81c36daded430701b9f43067410c97aa6cdce5cacc9c5a328a6118cf3b7a8fc7f4da24d8058f4a7766328a5d3cf84d8f279959d9bdb18279c6dccdaf8349ee529c02cef14d13ce297568b36ed46230cb325bf86a1f43f61a6c48372d2c0d6a5c919c7f8f71fd171a568554a0171754b7030514b304d1a64c58ba1e7b915c1ade34478aa453c52c8804dbca1419a53f525d2c21ba5f5606220b057109bccc228347b8849c5be1cd2718adf84c89ac6945f2fd5465b36b05c2636acb2e805849d61f1f70e033b3a04f40d9df215bfc279646dea5575567a7e75de8cc2c5664aceec554ca8066f2cbac0ff66696636c997deffbe44c7d39c879a6bf4c635f6e384b0ccb53d6b985037416264e167e9ad874bf2206741d07c455766b62eed40c2cb567d19683ea1c572f165d50e18024fc2c4f34cd31bd7ad68156cd7d7f57a7afdf672cfa7b1cf940cb6a1c104af9f7649c17b4a847848576d1092d5e52919bbd191d74801eac40b4e047c368b26821b3f1970604ad67710be971e77199ac407f89bc7f0e7d2786ef0063754bf01bfa4323f6e13694dcdac6f6e72fa05d82427c1eeffbe6938d43ec2606de5a2269736241a3cfb9526ddd366f25fb53a08bb83dab7229fe958c042d99959d6c73b0099ae2a526b464ed01b591247d36c7a66ba1c6ab8ab2667fed07c173cad634a7f557d9f4ced5aa88e50921297bd1605f14f2b48ac5af0c1e58551795a9175879c20370d403190e63049969287b981483f7e942aef3c2164d063df4ac978d1c1c55f54ab81c3558fd759c0c5683f7792586f3f438a8dee4014ccb7f1311e31bea015468ca83bb628b1e2dff1c5e650637afbcc93c26f381eafbbae4d80c6b29843c9cc6a218a3d82bf481c79945e5852fa2a2f0f0d1f896fd49dfb34869abbc4601f2ae1406ebbfd08240411308015de39a3c2a122e08dc40261f3e0fd02971a4c97c41a525066b9d10c349e5e885daf468e1f1365040ec20fd19b8d2b66044c86c20f6ccbc2e609a3d5ef5b6f47440e136ae2a26c68479add601d94c4b9e1f87db464b87c15961997f6bc3fb9383705b08ceb6e812e1a77d114a37ebce4bc71c068a8d3c26390c874b0343ee380c8702e0e6ddd452d88cc3480748f6b977c8c7d5b8c3598254b64bc2e582820a2d67293e40c640fd705bd4f4cd8aafd9acb7e4c762dc610499d9ac0f81bc94e387b33cb2fc9ecf470eac627b69a55e71a5f1f737bc4dd686acbe5c7916a71f5f1a1d375aeb0ac66c449a7faa5b9f1ee6fec04a2b9461a19e2b8c0a0d45844d0b4634b72f86eeef85e9ad81d63b0bfd81c84c9efc438d1724f54d67d964d0119cc0de66b71efe17b8d8e2b97dc15f0f2049031a8ba0f37a91f14239d54e467638cbbeb877bb1816d60e03e079151509ce77361b05858c103f9c15a124875bd465fedf82943ff0b736162d3138e84876aae2805bd7fbc8febb460c554b6c75c30d57951436acbdebf5538bc8df7d813a13b9a27ca701ae8baea57f9497835e7c84ac023600b6f78a79e75a846aea0e4503fc39d444741f965a66726e3529a1db9534c179489be0fc205914cb258ff841b6d51e01aa6c908beee8110b952e90917f534e645586e6e60aa693388b82c4be91063b689fd0cebf1581285deed7e482394e232171161ef7629fadf3a4bcef54d02072332189b3b65187e10aea4ea2c2a0575f8fefecfe45f47115eebece652dfb585e9a5114048cfd5631af9b10b8b015ae4ed8b2adc10a0816113dc75224028aa3fc1925f41fb87347a3b34b6a669cd5d61622f020bbb7122efa597208347fe618db7a4125a26723131bb1987625e6289cc15425448ea8bd7bbc48775bb814ad992f6841c513b531f602554540ddcccbb1d32582ecbd7379f28f13f355b7de4daeb5adb21f63886513a8323a90aa2fd55633393ecfc8fa79a673c65ab397f96e0e4402b67401a84fa9a6b5747e55a35911ba0645c3c23ea340a3be36207e69faab3fdfe195374d0c20b6259603c983cf74af96d7e25d39f74884505df43665d9e709f44d2f88b11008ff89cbf9179cf56f9cdfcbab27217fbb8b8f2ab6c83acad74a18918c139b43e883eca6727d60c7215b31ea5fdfb82438e4db2f83f3a4e914f46a9085c4da2628abf4865154611d0b64858d6eaab3904995f3d9775a4859971161b779b6e5b781b0ce62758443fd03a6802c42942821d467c5ac37e19e48211392724b77eaa1ed16110e06712107344dd5632e76450373779bc86dd63d75eed18882cdb19e8ae2db2c37665e35f14896629e41e2f54bda097202b82a4347387b18bdd6d795133f2858fcdd6065ad6a4fc173418affa38d6396e4d31f49164d6051007eff0483b6cca26e46b618fd1c07e28a6687bf58d6c168d471bcc47600459484989e55d2488122e8c1266fc4ba5b484bc6078a65e045236fbed2ce7ef3281fc73aa0a68869adbea8e12a5e50f604cb4a65228b105cc3c9db352474891c0baf2648db48e3d0c28a2bd947ecceddb1d236c37d9c7892281cd5012f09f5247ea65b6adfbb7eda53088eee4fd259ac61bd5d2f5a2b750e220a5e987fe32af1142508b72f050a4093a4b4347440a908130dccd74ef112602949ac4369e6508abf3905d1237061f473ebfb391fd16911b6d5244af7005154194b77ce6546c955a1ca1e1082541895d291b86a9c1c156632b2a0cb84f6a8885080071d56228407fa391f94844454a4c344c86319ae2181e46d0a8514d97d60555e01500ecd3b463220ec916ab5cd6c98c132fff42b3ca374c9c85562492911cc0e9102acd2a53b4f94facbf829ee9018ef81cc16d319bd8d88c56e2ea0f01954d5a88d56f026e1bca321640a7ab72d4e7e98303e39650a78fcc0330f1e4870ee54f74975795574f74cb301f3bcac69a5a8f71fbcb6b11fad85d9405e31a0c07f9bd135e301f2d7a72b87b23a65085e7340bc70d3ae2a3e5e0badd54994143d6c3c5309ba906859a0a0504c39496a604b3aa4ed61fffc409cdd0f270264a7f4d0afa60b920030ab304bd51b584ee9e99eb13021e43c47c66e4f9d8d915363e9c5f55a3e487aa5b981a3f1022404013ff9a4bba263a28ad2b2ba8aa09b040d1d95a4768fd53975f993cc553a89e8a2b8e426ca8b0d7e931461e53a0746bee135a1244995138532547423b7a58d23294a4f584f30baf604301aa8dd6e1d90ca528a304565c609e0d6b43ca364f320d81a9aecb1a342be0ad7c385932893246c6cf9dd7427b1b6fe9f654a0c1ab39a617352c66bab10c29e687919f5d3e3d0ebe299aef6411bf683bdbfcca33f70c6f9b21abbe2b9abe4c9995dc518c9819dc76ce382e19c5c315583cfa0c0baafd35123e2290cd5fba2dbe61724199bb705801795cf2337edd77bc4130ea848966f3824aff16fb51d4729223f925485350a9886f747250908e467afff2bb780a650f0aa1aa5c74f61f92be7fd2f9527e89349041e3c6ade9b08a921c30f84906645abec407f95cd06f5d163139540e8f2d1be3609a4eca52fa9a17971431945c4a4860859798ed4906c76b205745035d68f292292bdce4b9301a4be160b40a460de6edcc20841fca9e41a6f7ed7733ab62ac33dbe5e6ccd75578e121346c807a32ca2a50fe57b036512d6b36e16086463c85455f4f8663685fe58d03c89d87aa72db1470f79d8be42c5eed0759164430985c8c9d802e18ecc1935b35348210fc9638b97da0eff4429499d122d811b0dc501fd7a8b32d99b44b29325e21c18a5f7edd97d37be7cd9c8b61bb7e90e6f60a0b6a2e73550fd2bc1f9403be51059140d4ad7c87988b563f6f1503a9e3c17054c2dc41d2a1924b1eaac688e4d4c3857c532860de1a065a1daf8c11d841fe048dfc9892bd9bb10ef67809fb87ca80581da4242a2395f265dda993c346649b185fa40488f34979ba16a510fc3b4b93e2baa953fc4dd4ff5ea2ee1d5fae6fa90a376e7954b447c81bd2331e778d5f27882037d307d0f194e59db7721de5909a925eb077a6839fe4497ebec9a180c353ab10e2e0e1c349e1369861f872117d143705f549c7846687478da2dc1d026321afa2725e6425409b00fc86c97de7617f0a562a9d9256c5e8fe0c5182173b18ab6c5df9c4ef451105f0e5559a2fd2828d18b61a5521723002ae10a6f2dcfaac919633b5141542307e464759c953bac8c790ebb882569cf610e448c572de9504db7c6e3d40dbb5bf3a978ff045dbc61862667b133e13b9e327c19cbb36e719393fb20fcb534a31847e006a044beb14624e96068ee51cfc360080c38d49d26e12aadbc57e31a139807927a04a7d5cefd000640d2b39b726a824711a0b69b00ad5be4a70204f6b7e2ed59c457e1bd6cd97940349584ed9f970bf6b97bc30317eb512bf6143eb0416d881f4ea3c1dbd8964267a022fd49138ed3d5f669229b64ebe7b63ea4cdb7697c21c844a3a423aea039e099a6adabc03ebc21590d2ff279b9285ed5ad9e993c7f561824f198f3739116c6c7ddcc0a9f0b01a99ae5e1f99ae3336b6fb64a7c67bb544b6a3ea7f689b6118619b3d6a0e7a43dfcb9c13531a9d84d7473a5a75819de0da034fdecb8461168dcf305e1a4fe8e6b56ece5ad9bc02181a0328e6be6f7f450f5707682386894a2dc4d1981dde86a406f756d07ea5545b7e2bc34948987ed2da723d640d4e3d832e29fb6795214f853f615e20091fecb64bf1348010847199de61cf5dab074f6437c512257b34685b8a6e077183103b1aaab46af6b20008f9b8830c9971412c274576f6080c44dcd7e4201a5f936097ae19444120e74795676ef125387b498a4ba4bb2b6176d73c787e9f96b4fda8c0017b52fd03b3a948e567401c79925fff84ffffa1f8503a85e6ea1df38b8ad3c08d71663a5e9fe7753e9c3a2ae61c43550d46e090c1e1e6c3b27e6b26c85b8ec06043a8263c64f8e86ab85061c14a210ab056eb2ae53250591aa5b1d04980839abb2b55a827920116dbec0d678e0feb4530e3a65624a3c91e97ceb5f3be14151f332f7bfb3b0294e6a46601c7e76680508bb3cf12327d6c14b08f9121ff0ccb4bc1902c6da71962faa332e9cc935fceab2ea03894240810fa84a6078431f50bf8963504bcd4a5763fbf6543c0355eb5cade8ca2c0f287e04dcb15d3c8c1de37e51591c258170876518e750d6568bd08d7d1584d4e582a3d0d6c940fcff454e2d89667d395a1682b74d30bad08da20222a023f473015b327402f6730fda369718f4264320694535daa57d0c9de02d61124a1d5dba7ccf6b078aac1fd02a37a16b933ef021672df26c18140920d49144506ffe0efa5fabc019100d66cf92a1b36e2efdb889ba4c523a738d421a2489cfeeea1505e98b06a177470fd9ee70576988955f90642c994cb57312fbc6de1a9a124ee920830c2a5abf4e84171dfc3acc1938f00d773aec9c8850d1550bce41db1ed62b170ba2e8320e749f74fcc3e18dd4dafbb155d2bc16298128fb504eb4842e8195d807182d12e8ab7d5cfe26a8f3ce7755055ba53e13baac6e760806c093e340182645de4acb66a0334b092388dd9e4a94687799d1d80a9fb550d0099e56bb02934c0ffef568c2d9153457f1042988c289ad3c53030bdd0e1115c1e9245bf3c9828229049d00a08192eb9faefb855bfce04c18181158a59569e7ad73c59b44ab92409173a61d64ba948af70b9d5050fdcd9370cab6804a317a40470cb15c7aeeca179d0004af711ed0202d72d149cb688b506058e4db694d874309d7e3c14609f69d4ed72cf1c14639124f1f759f0dfb702e716e5cb3083e8394afc73e989e56094d34051c107cf993e2860f7363915915219d48094336438e457c525683fd05dbef0025962114f1ae2c5991e78975c7bf265265abc08ed83b0809324bfb3be33bf10a6a284d5e59380e54ce3951522037400a0bba1acb6745d5923e83e420993a1020055cd40c489880ce2912fdc2568683bd7f8076fa0feba24752a2cd67cab172772046cbb8ac42025fd3919c14f87ac79ddd85ccb58418f76c87a6f4acfa64314bac8f1915ac1367054d977248020808cef0413d4d8096a0fda0d8df1178f7c3e09e94ed32f45e45e7f2542f084592150233d76743368f5bc160438006bd3e55b75fd5612087530d3d3372a62c6480aa6151e38d7a646dab61b7f3c841ac419a59c66a5e1cc81b9d8b40fb9bf4ff03047a9b5401ce4ed085c505cdb8ead24416db2bb7a9522ced93bb2d1bd95bc2df68fc91c4f2f774243fbcf2f0f7428a0ba2568a22d983296881ee33a24aed0bdba5cf0881eff17a8f3393700a8fab3d6e7587f5cb205ce63c47b982ac9a4e7bf56c4541cde3a24f647259897a64b95b90ac635b9add1a6d45c35ccac973ea3d20c0ab2426594cc6bdb403a72120a550d801994de95e0175ee80d8a8803fc14037385cfb3fa8263f364d9790e68f92876577cc23e599956f159602f3eadab027bc8af7f06f5afc42f2c6290ffd3c946cba21df8733e931701c2048772ee162bfda6d009dcc969693acdadfc72f2064868afc910b0c465ae84f8e6fd85aa1ff2f5c752ce2944ac6dc83210be2a7d66e60a1188ec6847163337e70d5337784585c8658b03b8c10676a5593402d26d10fa192f0c219c55c3784e9af576b1e5e3b58d381111f2f7afdcfa6f9c9b2bbf5c11385e854369e63a00c2eb1b0243e5e4094fcb533e7c66bc1d2e7219802d0fab46782ef83076c857b078138a7c450dba8f9227dfde880892faccfe684d9720604a5e24e10f55c45a2f1a4ef897403fb08907d583451c83162cfd2bc42bc444e46b394947932a011b6ca9871a5a01166031361bd1449241193ad9bba34c179245ccf43794f4c92033a078f846465c686bc0195bd60031ca607a376385a42aa5e231b3bdb3cfb1d437f38ae3dbc4af2302b507890ce1303480b6b89bacd74ea4ea420fbb84a7149b228020ed3c28ea02f473791b935110166c7f719f8e501410b7aa4fd9f9445f237e282827f65834b94b770f19be537f0c775b7dfb9feaf8c5fdd2765a17b3ae1ddda928ef9330ed5bcffe8eff9683a4375ae9b31dbc515326f8b07a046b12b1a9c287c67ec08e956b235cfa7f9c30bb9d5596d5d75b2c5220be179e7d61159908b45f0b4c7a81cabd6f81538d3e2e9b75aa6255258b3df1e1496feeba811963cebb6d684736f93ac664df413c0b7ff6400f1e6c5aa37a5fb6225873b5ad7a7f2dd562376e1247df57ed4d989c4b5d3fda5def6f524fbbb1db7f4cc08acda435eff638dfb102c5127f8915f40d12ca52ae8f4bf9d1a9da4331e04bee71bca60435a780cdd40b0313919ff8085a1cc93694897a7db3bdc85de8f18995952e218a8e501b6fec171f128efd8412202179e55a80bed3816602df20e4747f667f3de7fc6e67fe93ec74b47f8159a2673bfa87077b8cba166ef9eb89e142db020284c557d0854501852d2c58dbdbeecf1e29b210dc8104752e99f1912fcfa29098e9c1f4e18a0edc200b3e20e77c5811bba8c10041934ea177284cbc946408038db93eb258594c9b7c3f5f198be45bb36694706bff2e0d0378bbaef55ac3a2041cee27738bc6d05963e994d417c645c64018435b53dddde0ef76d1e8ea3797c8debe1b50a10841e63536d23050c1253e3c0bac21463cf435c58bdb4d8c3767c9376b86e1c14f937c26b87286939f3539f1e25af895495b01b132b236e331f4e8520a81e0af1e38cee3fc50424cb54a14960c95f905a8d0aa87985739bc4a4dbf450d0c0dc2f399a9e27f3180908a5a4735947e18f877caa2bdbc075b7b4fe5b7e52af347e9b800c0ee818a8f85a9df00455e3e62ef5537b296736e8f429024f563a79c08068fc716ea258ae7d0473c66a9c17555c717e55877ff88f7e2734a9bf412fd408d4729b4a530abb910a64e241f1d82bd04a66985126095806dca0f5de26203bc2241db69f1983fdadd875ae621279c29a0a05e8c88497ad0981d36fea20bb81d2c21a89b89dc141c530bf2f598e3bd9fea3e9ce3af7e634b57302de0b170369279e1ec8c8c5fd95b2ba65682c981f9101bde31f964850f1ebd75b4083ee87c3b6f848a93014db7f124a6e9f4a2b070356551b5b9cd186c63cd46a1e6d4e73c6307a9cc5174490c86d9442920bd8b9ce55984b61a19929e666aac4a15402f041789d8cabc4d852e2531d6c8ad6b03655e057a689529545f9e30df6ce15701dacbf7658881d24aa80cc76e72ab6741d4c22f26641b73cf4b7381149940fa9a371822224135c10824b605c1dec28e1b28d7ee0678dadaa5d069c6fc0a661e78d7bafeb7c2dd69fc8ebe561b2a56467df104b97b0f228b3604fa1d6f3a5b4454d1555f4cf694e82cfae6c2b5b3957f0cd4b80c2f0c1f7ea717a10535135046559ab720d206b56ce88c1553856e2b15773c2283b6fbf59c59860f1e7d9f43827c90932b6117c7d4a8cca3f44d0725edfcd9549a07e501ce7d976bb023ac5c6c40b0b749a559c2ba80d897125f45c5b8f22e8ceb854a6d563b47c9df38f3c13260e8904dd7c60088bdf3a5ecdb88603918a135e762bcebc170ef57c45f140b2e6561a82d4935fbc7660cfa3f0b581d8da8407b958ab2e5e8ac31c27704477d3df9d54c51316f76deef0715a7a6c68fa143a148fb37b3e4e3ef6bd40462a2731e1e328360b012d95f3cb7b041b5895f83825b7814ae7b5e9b8815a8d4cef38df88fa9a5ae6c8d2d340503ddc9b4e839493f9add332c6303fb574277ca41bbb982cdd019bb62a06996678d88a86ee3c21d362870fad4d9d54bd56e28edf02749e5353c44b7f36b5144dc54bae9aca5f9721f49902f4eaa3dca3c46fab906b9a65ae3acd9f545a0fdfb2e2d55dd5f4fa0e367d391f3dfdf6275083bc6f7f1ddd22574076db07ec6be594dde26ad5442b812fcf6981d7dc026f6e63716ea725b3732baa6ce49d996e6176953b09840b65b7ad13399538f0f03210f2b701812f2fbc7dbcfb9c9be7e1ad3ce66dee8e05104e86b7b7f33614ddebabda87f7cb771e4fd27ba55a9813cc1bc05800c46cba7609a2fded1edf287395cf77d14673ace38cf7fda1571300d908486028c9add4707e28ad1ed1341b81688967c53da0e15a1be402d550a7ea86e069a9e41f582487c675c43926717205eee463a99c717a453faa8e54d7168bea012dbea24f415ee51b19ed9d748a10cf7d7736959e3531c90cee94d42558adc2fa4faccb97a2d26189a8527f95038411408e063eb40f2162813cf7b29877613e83da32f7789fe9102228e2a3f54b932207cfc5a2f6b45edc11ec230eb5276782501d1121e2791f8a98a9d0d7be9e56286ab697fc9662aca32c2eed9870ddc6cdf0ca534f4b643593edd3c5b81def011a4464f9ba11c258662a31ddb8f08d58606a919aa09131143fbfdeb40ab7a444541728449962e5c8322700758c302594482dc1d52232bfaec3bcda26341fbcd8e513d5922b4869f52c638cd4555a4b17a367e2bdfd07ada5ad92e408180c22646df510eb8a888d40221b5accadc54464064c38f22a3e0a2e55ad717ad263947a98c9505ef46655ffd445210481123939b1a5759dce7a7214bfec95c1d205ec6cd943e24c64106a74a4d4dc2017a0d872b5c316160693542fa8945729e31973e39e954833e213d341cdaba31b800a7a01a32d5765331f93a0ffbd8d7f28ed0745bedc1e4d9c257a76a953647a1b3449c63e6270c7ceb9879ca234d5a613cbca8e8d2e5761684e6a2601b0fe2961c7988ba6a926bc4414a333e166bad7c8d6881ac8af1283089b78ccb971b31e10aec9ba4c57602861f01d38ab727720c9d6b146124ca6fba7edc5d409d835e576036646e2ba1c4c9b7faa60d2c59097cc0214130a9667cdbdea3aa96584cf0d485293150281924d4307ffbf46207e32be4bb5771636ce430441a71f9f381729ab9febee4b9889eead1c4ceb4097f5739faec7bfffa7fd8240fb146a8198276de3f0db166fdd999b7a1a9e06bbcb727592b6c13747bd7742a6de97f2ca0b58a3ae998a6eb6c7867cd98fc5f8bee6ebbe1141e5e87594e472babe7594a54841a38612993bf525fc3c64fe9d4a763877db9f6bd76faf00198e33600e581bf6aaaa9ef41deb8057337d479e1394aeee850d4236189b81be47ee625d43eec85556077be5349b41b0b634a6f168f75c405b9b2938188b89b6461466b52546e71fe036233431cd4908bf5c3afe9a21aaf5a31b77d9d4457ce9602022e0baab5d02f78fc91977933200124665806b5b570b29c60007fe781e0dd89ed3ba1e975022a1ec4459f697484dacbf7d470a353ef7fb71f6f25da36ea31ce7526f30b2bc96136620e8ceffea5ff89ee1d1d237ae1744bcfe043e7d44600f501040d44e3a8a15d63a5dbb5ceb74ed98b4715dc33404d73a8d592cf5568ba5460deec3189e7db894e91e04b7da2edfe5c1eee5a726ab0802dac72bc1fcfb2dc0f241b6412cd984eccdb67b6f29a594322f0eb60e8c10437edaac9e0f3d5d7b2e72ee9ae643eb023de7dbfaf8cc73a19ee73306e03f7de82782157e3628f4b351bb9f95b2532c3cfe089c3ab4f47d3ece31ced1e8875401232f828f7e4811f0b90f9d814d7da7ce225821c40566f7fd8c7e2dd8a08d22f187a80ad5f769b77a57c88cebae98adb5d68afe4138c8c531c8f386b73e8af0d643ad74cbdb14148483dc2fd0bab539bdf9bde0f0ade17507913d446b256105b68e906bd30aee8bb87fdd711ecb8d6d7a4d136c306842f5fa9bb11811c6697dbcc07a7d1c471ff38fa288c3d03f0cc3d0814c3e17edf59339bc1d77be0520e47b89e7fbf73abfee39c64b42289a733ffb8e7d74d1b7affc85d7280487bf1c7237abc055a55ea97d63e00084af1ebcf62dc28f41bda1ea34e225edd72b5386dfe37dec4cd8e9035ed23e96e81e773dcbf09be9352e573dc2cdbfb3fc8df956b3376adf1e7cf6ed1c9c8f7f38b73fd1ef07ec64837849fb389e9d05f51efa503b06f1d77119ed551042ef702b3074f257f6cef25e294fb5dbfb295ca0f60f58e3156b59def07883081c9af21e4bb0c1267bc736ec5697ea07a5cadae0aa12ce3948d02fdfa5ec5614cd08e40b0cc75ffda09f4d71f61c757997cef302b5dfdff8e5c4e5056ad187fa2e50742da24918df51c47dd147f3041be88a28920968465d703f496f5fd2e8fa9617a87d643bb17b2662b3cd194562c07d6cb5ee5b8d94d17affcf17b831e78a265510aadfeb79c309c2e29cabf8e2b423b4c553dedec69a4ce9724d1fecd4f52bd6b1b8a09c9d1c9d13848873d13b5cbf4d41a44edb5f9095223f88a85d91fb90cbd5aceb648d52e5da485c2e97a343e272394749b29a246aa5721ff2056eede6af0c71e82651bb22a8082ea98e503d8885b1ba6971b45b06f6a2b58220fe5608718176ea2e59b7556ffd2a3875ae108224ad33597fb2ee408b9593605b817e81b704d1c5b9fd9fde8678baeebb5e3f54ad73d6595fbbc24a7db8406ba7429bd182a7de0500e13507af31bcf6a1eac4025eb27ef6ea08e5f9abd7babeb7c5797d57350f2b5ca065013b59af2cd373564457b8407b6fd876eef173d8766ebbf5d683eeae81ee7e0a3a9b8697acdb34afb4ed81df936ed3c6f13c6dda933e824483ec1ec33471eadc15edaf557b1be236d57bf32f239980fd3a462f8a82a757c1ad03b153074fd68ed8c893648592d4fae9bbc12020b81297982cc911631f47c798c49125ae0c22490f224dd3be0d5daca1e730beb7748d6eeb38ef80ad0a76e8220af837ce5930e24b100cc0b98eca697f204cb7cee6662dba41601f3dc48526846ea21b04e94196b4a457b30cdd9aa4873f106136495b62377fd8ed6fc4913eadedc7c1934beb80115aa310ba46b7765c6842a8bd0c7f2042af660885b3f6e182da6d1afe6a5dba771cc31a563c4bd4545891b28211245d62e18526c694902c8052eb153b2df5d14366ac0b8f1a28e906513162d04982042caa7ad940c1cf5e6494d363cf1b629cf5e3c7e1c29f2856f413c544322fdf063eef1aebca7addd731265a0fe5b19b2c8fdd8670f090a5a53292ba4e54f6cafab05ab6ca5a592c23c79569c033f43c96389e5b13aae720a82384a036e10a1cf2ec2a0c79cee02bfa21af43645d1a72d2adf9dbf508ad19a2f5b4e691878eb37f9ed65aec167581fdd34d9301a78f38cf3eb2b4b294ef9157164de5f29c3ad79e7d7cb63777e93c67adcf2efe72f69de921f412ecdcd54c14fdf410cd2e6432e0fe910aec8bee82fca1ab40777d74c1e90ee2f4d1854c0f2042abb3e8b2ebb481974754d7ec9edda5146ed38966e7991e4018b908fba287680976ee6a96a97ed7640088d34558105984fd3cd5ab37bc1e5a0565ab9c857d43e8063aba472b7571465accd848e7440f2fd9cd729772d69b6e7ff66ae867ad7eb64a2a8721e3d84eeb4359eb3a451539f2ecf9ea36ada0c8b3cfb367acece3e62c8d0797ffe81764030fadd76fd10bcf67ff2311ca6d32720ffe3e2ff29d3fc446e8f6a1655176fb2e38720ca2d767d12bcb995a9bf8265585a5d5255686b686e7366df08b2a121eb908e5361d791e73b2f5a1273dc0fa11bad14f72a29f351f2076ed5e48641e411939d1ef3e2ec480d61ac24ef2a11a7c5288123dc07ed10936c9934e10bb2ef002b31fa12294d766e9e4dc22d767234ff29c846ea29ffd2a46b4deba752f32ac289c75cc0916ae2432e17cb76ec9f29a48a80a8cfce8571f774ba10d5e9b1e327c88aa20c38737c7cb7d363de8741ffa9115323d9caf02dbf6a10a6cda877ecb23c7e16c15ba98877fa21ffdb60df447811e67322074eb3df304ebf68910f0a2e921011fa22a48c0874615db9b7346280beebb20fcd07d4515842128f645ae2b7689503ae0a11fcf7bd96de966b4eb9a4591769e5f7fe8b63aa9c0c443b3550ecfb96bda68a27002aee246cb0af9cf05f6857cd72cd9b4519fbdcc56db47fe5620feae6949bfb39508fbd855c04eb5eeb10229645f8003c69a5c89e8f6b9fe8cee31e93669f492781b143cbaae03579576a6faec56c58db224d43edbae7043c067c75dd8ca2a3bb6c2f82cbbcf775a8d699ff39a0fb7297dce39dfdc9db39ea823dc6f40fd7a8122f26b6d9a2a6073d46efe46fcf813a19fa7bd03c63efef0afecf5b0597ae98ec97e6ef5a6e370bbd29a38748fa86f9a50a6f378bd1e8fd7e3f5ca299cad66af347fa38fa33d4dc7e6689a8e7d1cdd344bd3f4f1d7018b5f96d8fc8ddefb998e7fa5e74c289c9f2694e949d7c976e5f19e39cfa47f1e79bffa463d2f6f93d1af3c6baf01f5b7fd8d18788ec1eb6dc2e03b5b01e0bcf76a74dba49f908902eef1cef490c193b4e7aa19365bdd26eda39f26d408a51d5be10d5eb153081e00c7e1306ae4bddf3ebf378e98410d7a3cecbc9e77c03da31f8823afc1e3dfc6dfdb008f6ed473a391b78191f7bcc3cd332c093c1fb11ba1fbfe913bbaef2365ab1fb1637474de0f87e478c41863243f728cf1038ed03c03ddf691907c44918e9c87ad7e1b5cc307de8183f000ec23ba4dc03efa38f2eeaec7d9731fcf33fcb6fd0c7e9a1edc479df31c5b7db06109dd23eef9120ff772a607ec207aee26e6f5b0f3963af0aaa187fe4a32a423a47144fa8d23ca1b31835e6fd3e047efa19f7df07e208cbc063ffe3646c2bffca3cf799eab2c09d87968bdc07cf5dbd74332726cd4eba13b5bbdcf45dc1f7b2e22f7408c6ee43df7f57a758ffbfc5ecf6bed8df8971fe937fee8474628f65c6543f0f9063f0cde0167c8f0ab99ea027d59d8e99ea11a5c890320081e02ba814beece1482332d8580bae37299f38d47e3b845e43d6a404160c7e0a36f9fe3f0354fc0bee448ee4beef37b869d02806e2008e80602d1ed02f00ed0ed730de83e7f67034037a0fb1400fa01ba7da3fbbc5e0048e1a5eca71ffd34387009ddf53845e8fff916a15f83fb1c8397a6879f83d0d0c1cfb19406bf4074dfb4f7b907529ffd6669f0fc43770718343807374b832ba1fbd430bacf51748f189c34a13058e9f75ff80e83c76775ba5678293765f0d1736d42f2d1c7dac4f3d1cbdad4f3d1b1f9000cfe4345689cdfb5f67dd95efb79b5dfb4db74e4daf30c4b827d9da992323892f35c7b799b7a6ef53eeb7681d9917ef6edd7fbdd282ba111dd00b5f2652bec3eb7261492e3b009d543914aa8df730ff57b68cf473cfe6dbbfd47effdf6e83e0c5e4d0fe388e7fd44e8c780e6193604ed48bf24ed86f3380a59dcd1d1cffed9d95991d148ea67e4da3cc2a3916fdf399a0ca823d4115acf337ce2d1b72fc86440cf7b46bb1ea7918f6e64e4d884321abda8c85754847944bffa45443efe46af260f87ebf9f8c3defb59291bc2e8bcdfb6cfeb8047eff1ea8f3f3b7581a30ac4ef79873bfe78aefb5953e7433f9c8ff57ba66bb79be5d9753f0ff54dcfe54c34ffec39baedf2ec75c4683ea3ceb12eb2dfb6eb3f53817007800467a77c5cd2444187e672be2ba52c09e2e9e358da15763451c0fd88da15d6c3e838c785e3cf97e4617883bc03d69df9b76df9db76eab593a5c6fd4adc18c239493b359a764550d00a4b820ef271f4a0a01f7f2baa5d1164a7743664637754fa6ca94af70e0ed7ba34fe458364116aca849dbcd6b3baaf7aad3ee26bbde0a8f451f1bd245cbd4343c01061f25a435f0d43b7e16fc45e2ba971e83e4fdf6bacbdfc85bac3efea2234fe813d7b918b9e67cf67559c166d0c3155dada75f16a6c75c35ce27cbd70882d569bdbc5aef396cdba47d5c7b4120a0e67af9c15b556041cce9eb5ea2ad649268a3e1fddc8878ec8f187334d27d239e9b95f09e209b89c99337366cecc9939df4c6f229d4ee6481fd19ddb25fce8bb8427bd7e093fbae9a7ebf187dbf978929ef36003bdce738efbeda7713c4f9fcf1d08dc4c8f433a5106d840af43733e7ace47c799befbed93e73a9e93264e67e67e3af2b77339d4b15713059e9b28089eeb5010441ee269e7d0104fcf23f2ea472691896e231c0e2744e2469ce7489ccfe7f3e14e321c4e1475e66f3fbd89f3221f729eef92908c8a86784c8ff3dd5191e9443d21740399def4d3740cbf8a974cef80cd5fe9b8df0ee13a6b7ac0e17e3ac738d7a1fbe971380694be9f9e9e44c5b33e95f084744f179603a57bb107aee401762560078efd76e01c748042070e020804ba5b57f2db842dd002af2f2bfdc23556c9e93b496943d299f437a876c6346a7971622f3fd7114c8de4fc913eaf23d4af18c5be24df0827b69824456cfd0e51cbfe5eef707b75047d75188661188661188661182269cb7c3208b9eb3cb7b401060dbd2134c92883cf0320071d201d01e0039d4ea7f38048c8d10c453ccfe1aed0efe7e1cf7f3f1c6e8d340ab2c1b392e3366ce86de8252979909434d4234b0cbda124231f11af4857ee300801a08a8a6a0ce22d4d494905913de0506f2d5bad65ab35af21363c3a68d536d4cb601df48e8e90928c8a7c1e4439392803c007bf9c86977845bbcc2b4a32f2111579e0e1909292cf9741e957539f51521286a45e6f28e997adae7ce42d0e784543bdde063d5f0fcd5657594968c61aeaf5867679e86883d206a5215f068be706494a1f804919134623015aa44099296c9004e1d265c3e973105d0c4a68057b04b5ac5843c017fcc1ef0d5e5c0210f362f3e5f5d81d08e6c2633f00d308213ba2d0f1e3676aac4a93921c1e2278d648c5e1fa33b6e7be2d7b494a53fe3871387b8be4048cc59a356dc4d072018e00f199996dd163824d15aa50cf195299df1b7cbf458072c64c9427525c906264ca8ac76253d83c76129ed01778183df631e7a61132fa24cf67cf190a94cf6e007c44cce3de63fb6442e1289f9f3ebb9309955b0023460d1992363618188bf018c9d66319cc00f4c7ce16ac144b9a4c244ed83cd9faec057821cd2ee7ec22d80dc6fc4e7aacd47526a6c911b1265ac49c0079ec04d0220745b60c890308aa5cd0c0964c8559a2e6b1d892384c9c74cd78ec02d062082d2e3af070a91183c68929180c9a20c09610a4c72ef6a4304bf185878a142976155cc4ba409ba57d8b58a20f310b8b4ce5e7de67aeb0cf643e2bc1f159c9da670fc197d5c20a1b606a94b455b148f7f939a70583411469ce79009f91d4f89c7dc44e950d969a3234e83c01a39166574144c52c114b53e500e4335e35f3361e7b792cf602db633fc51ebb4f2c8998c7625c5c8f1d04262cf18a7de8357822dd97eb4e5daa0ffd5ae1f8d0f7bd12c0efbb55274896a2ce1fad2662d27db1a050c4e872d666260348ba6fd6db75ba5959511f5ab3b3b4db54ab448921feb66a4cbfad5b054425040f0d2fb02bb574db35177de29009c923478b59ba6d9bd875ba54593eb4571f627de836abeac36db542f86dbd5a90a2ccca9a34335751d26db72010e88a13216e4ea896a4db767de876ea3a895877c97a18d6b50f9d05b10f1f0dbdeeea66832f52a1398954c1bb81692c0cd58701f81b418e94c832c2e50a8e140573f088a9a0c3a58c917457b20fa93e04418a1c1d64d6d8303b5395863a72d0302b73064c983be216def235cbef241c16e531f6f174f3584cc9e331128f7d0350dcba6f7f8fbfc5adb78ffd837bb5ae532ebb5961578ff37c9b7e8f73008c4ace3a36e5e3abca07f3f224e94b2614799e8f1bab13ced3e69562079e3e44adb7fe45e745d13d30a130e91de4aa2b5e8d3d005e3b07232edfbe98ab1330180c96f00a06d336a5320a8bc12f182fc267d7604251519d5917b982bcdebaa571eeec96464651728b44dab3eb1e8a644216f27c968e512413463c896e23f7f98817c56c4592a4b52f66a9cfbf6df4f3fd3626222222ca4137a2b6a222f739aea8a868cde7f3a5bdfda2b3a2ac8ce5d5b5f5360bcbeaadfddece798edbed76988ac7e36129decffe0e07f1924e57f642b91c26fb13a7d3e9d676bb9d7ddd195eb2b9329d8eecbdf092cde5ba743addddd2d92cf367bf2449d20d87c3dd36dccf3ea9b5ce64a2287a619cbbde660d1a3c6b40f3165eb2d65a6badb5d65a6badb5d65a6badb5b66dcdab6b2b2bc4faddb22076ba5416850f386672d811c2064fbacf0f379cd82d7d0164e2edad8b44551a8ee0d66b4d860a78c1538649956020b70fa4e4aa48545941a58cda911b1b787d61184b704df9ac4d12fa33318fddebc863473a45ec60b14566c78b282b0014013494e4adcf121245c49c00b2f6c8840aa79c78ec19bb5107a6b86041812505933a4b47e2088db881040e1a2862c2b029abd68ee0b352b6c03cf622ec1b62c5448a1332359850a59b69458a31c60ff472f3d8177062b11e41a014a96233c32a15319109858738a8665d0c50c3fce6f0e57715f30abd899f0fad883979f3f5240a14171f3a53fd8252250a8e0fbd84db54bfa2b47de8bd30ae39e416af8916219c444d8d89b13f6448f0492bf0e13ad5b660309822c5187bf0f8c6630f5c4093c40818301a6129761534de9950b8acf2bb27c2ef24252cbf377c02be623df0431fbf98f85e7ce85ebfbac23efc6ae2e2433f9fa86c6121260e11234f8e7450654758a8011d6fd02c6163e2ec850d5dd43aebef5ca65ba2c6e1b1e7b2921132f2431f8590253d76537fb1b8127ee863135a2e4101f6d8711fe012a788d5d412185d1c80b930ebd8892b397760606db9497359999d3ab788f5d645acdb54b3d975caa975324809132e8f7dcc4c82e4d042c3c58a2d1a55fa32738e68b1a3ccd711b0207fb0a442b48b4a6074f0d8c3246fe7d763cfd8751eb162ca8a17c07899ba0147c3912cb8203f6036d0cacabcb5b041b20d73d91a970ef4b1673497f1a01859e3552615b596ee3397f96e138a444aee1150860697af1758ac8849c36c95abaed58f3397bdf59b55075bddac32104869b99511f1a15527ddbe0f7d4cc9d3c3c717ae3b6be966fa30f40f578512b0d3cdc24b36f4d16fd3ef437fba4dde54c3bebcc40ffdc44e239294e1a366224d0db13069e840ec54e56489b9e5a0625323270dd11da2aebd46af15158fb3febe546fdd4a39772ed354b9aca6da6a4c7bbb7359761b11dc5aeaad67bf5fbf9230f9111ebb1dff525d2b5ef0452ff4e61e5b557eb0bea2229a6a5089718971e598d48cb2b4d6dad22cc199614c8a05c6189b39a23cb9526bad73baa2af6329cee84a511445dda9e1eb9858d459060505059d3bd26c57e27038dc4e682cc516a1d2344d53882774a5d3e974bcded81d25bd72b7dbed7a4343258fc7e30d11eda210954343434344451b8ca5e02a2af16f2c45d6109eb22c6d8976c0f6572fb0032ecbdcb6425ecd9bf39c5b7b736e73e8bd1f726599f3dcafbc1fca0fb7496885dba9db74a184847ed7da123d871c57e4e4cff4dcaffc90cb7dc8e53ee4721f72b90fb99cf55cfd1ccf759ecbf90ef21ce9b8e7391ffad5bb943bddf4ec22f06ee739b7bf5d8f934445605cbad06fd7e3c4a8089e890af9353d80b09e3fa320c82d023fe9a546857c07a14265894341909e4dd09f753b54c4fd93b42599cb79872b7aee774f5c16fd7a6efe48d2715efe4674975f964e3a4e9745bf21377f380ff2de6fc8c91faee71d30ce962351e9232a877e3d94a8fc918e1b7fbbfc7169f471c4b9a0fa79443fdc1ae41142d74411a2a0c5bc24a2067684beb60d03d66dba150d4f4dad90fab0624ab45909f647f7bdf78ad5436c842dc638dd184e7b55f2b7e8b6d8b3938ff69592bcda104ef489e936d5b13b697fed73e8f91d524338f7f917b899fe77ff3a79faf8ab9c51b39ff457c90a517bbbf6a9e79cb5ce39db2d02ca866198fdfa0c1b4276eda1b6992acfb021d8d02ae7eb575be1aa52bd7e879c1c5011ee6f111e7b18e8faf50a81db1c5e3b4edb0ac459eb20a208227eeb3eebd5fa785d8856bdb31c3d144774dc2138bcf59aa3706358c7ab71ded86d2eb3a875e26d436bcbebdb8656db50cd6dca5aac35bb1643d18a35ceeb35a93a70c3f856a33a0c3d6b1743adb3769b5bd8bfb7de025410aa68758a2f603c09f9b0e2c2d3dde58f5ead88e3dc4fd79b724157e709f696b9e73ec79fe449191cc98f3608728c1dc3d32d3d93bf2de24912452af28c6e24144cc74845a80926ae2f82748b51289d746ca24845a809255a2fd0b10ffd36e9b80c5e66708c6ad7951802f633ecec25baeb71663483631444062f5110181c87281fa321cacfa03138ce3738c218924ec7e8463a3a3a89888c888888b26b91c8713622f2d34522c79944f749847d7e5efcf3e121dc79623f5d3bcf034fbc3a83dc7ad0108821ef05792fe847061579bd4eee16d5446e7f3b277f2ec8d97be81ef24ca29073e9fa87cb2b447ab668798144260c79906f8d8628b14fc4a9fb3d71185b783c83c7fd9eb4ef270ed871ce6e71e933f8ecf6b3eefdf8c481749ce3706305ea728b789c2b30a9a966122aa856a01e7346f30657c80bae329db58a09285fab98d0fa9de1af07e06b95126f9fc2189ca9c71e54bdee20cf4e7a364fc08ef32027c59afa6e53900739b6a6884d13460731ba2fe85660fe5d0314b20bee8fc1e00a448c2fc2f7f9af079980470f5ac1e8bb4df8835480df97b3170a3c5fbd5204ff7aef36218da80aec675f81fdecd6af18fe76ef6f95126db54a89b62f7fa7ef3661cd0387838256aa5a2cfece639c245097b0ef085410b0e314e7bd6ce778666721e7b68c339aab1313d6ce849d8a708e00d66851f60a420e723fffac8f0bc46eb1826c103b0bd85b08973ef80eb8409c2863fc5acdac082ac4aa73db2c5f7d04b6b64fc562d5abf40f87b3dadc22ac8902ee73a6872191aade341c0357dd260d652b8efc0d79e5ed74a4cdf9a669cf2046afc1eb5ab375b23a89567de4360805d26a27d17d7f0c725cb5d368ce223ca320827c74ed1b671f30a23886ff82b093973e236bddda5c49f2c87126abceeea7506fd743d77d84e65cb353f5f9d012d5e866419058d018a4ad57eb155baf184b93b5bad6da33b6c295d4b8ea37cea3a3415e490dc2fa9057d7f8a2b806913ff4c354d6c390938e7fd68b7e3827c2f5ef0ed5e5b4d63a97f39caeaec7205c514c7ae8daab7bcdb9cea148a357c7eef87fd5b7088dbb6a57ad3a8820b4f4d144a1d438c64d137155a87f84c1870fd04ea2db6e1137fcdf2ebfbe46710c1b02f65fbec00bb4daaf5a8cfccb46c19b86ab700c4c657115ae3ae34a492f8a7a1c45d15378d143d75a24937c650aaf3d544a21845215a533c8cfa08a4343bc1874b5079244491f77880f4fa25bf48ac34eea32df2514ea050679c0998043eb0506a13bc46b1fd1103df262193d250ebac3adc0aff75e7d5da3bae633eb7befd5f796f7a2d95625cb8613c14bad749b7210d2ad6f60ba4da25b17e1368d1e846e6052128348f952f63bea270e6f312eabf6db018b79bd7dba40eb590c51df4975da7bba120ec333d4ae3d141d9b235a6f93885aa60dd8baee83ab1638ab9819b3bf626ca6303640cf7746e0432d3b87723ab17ce11cf1a20398b0d313c66887055ca79a8ea1fe2d8337b5fed147fc8896da9a285278fec2dcaff4a19fa93f88cfb359011fae158d00c636341d77e4d95bc04e461e348aa4e70ae4567872eef371cead57bfc0ec2390b48f788d6efb4917987da80a78292399a0d18d379c3ea402f6d3419cbec26d3ad1adfff49c7fb743f7e943a80ae76f8525a7fed3774d7b10272a823a427d15d29c874c38fd443a2107837ffa8982d0a1417c9e83c1afdfe1aa30846a748fe767df862272e6d09a669aa8f561758158176845c4eb09a920821542bcde1511f17a426775ddcf7aee577de867437f252c60a7112fd04ae0705383c98f3a69f616b0d388226754568c913336e4857484101769a89ad4e013a7abbea9c1044dccd40e3d68d2dcc37faa30e4b45aa8f511afd1febade7a4d97dda69c9399f8ad75d45fd72efcfcfd9ddffe7a0e4695f89dad48dce0ef4cf637a365b59bd91ae0834c1d296663b2b44877963a61461c3975d68c6c7193ee4cf5b7850c265f5ad680c94a77c67a00121c4d925ca1b3e52bdd99cf0c347578e4604353266d2236c643ea4c9fb67467af02e002047afc8403fdc6565bb80ce3341998cd09861b1d7a6cb4017a926eec258c1937aa1666586fd28da938a821fce120d0dffb3614e8ef90fdf3d7eb0d4601c2f9bd6a37e8fa35bbe9be6831188b1104e4c4499ca9745f29286bce4ccc9182254a94745faa6ddf3ed05fa7412541d710fefc50f34a73a34a5b9af44f1a133b524a042a03946e4bf537459a406d48f6f43132b5838d4acc890d3168523e56fed85082a3cc2a8d6187870c2e466ecc48b7f57a9bf6d5cb9661a73165db76edcf6f4bf6f6d5cfb5c1d16d067584dae72f9fbf6ed75310c10a21b8a6a48842e396e64b9bf4e2080232a1f545cb8f3fe93e475051f1ca91444a0a8c3c2568b2f683c48b2b2b40d20d7cbb41428a969c36676ae93531270ccb4896609054a4e29d5a4c9b5a03c27a7d6aad79680574a959b0f35a6badc7bea479bde7855cbbd20626fc04f65aa7b590152b9a94989366cf8e5463275339a8946449f2a63516a0e09fa7df2026d479f6c83ffd0231a14eacf34f971f269489659e58a65f1f5f7f667cb9e14bbf3d4ca8b234cbbef4cb23bfa5791ecfef8e51c82fd6395e1d26944e33b5005e2751f35afb789e660e134abf6d090047edf2670a171e3ad08ee430f57cb53983f2f02052c30495183ef5bc32fdde30a14c3f60cad8d024bcc046e2c9912f6e7ed2cdf4681eb028b831696629c41cc91383469a639cf5ebade1a70599d555c3e44917133c5b6d785e0c6960058f2547ae0069e1828609a5ef8c3e56c46494024062793ca1aaec021f3131cc8618618b83e7853507e0087bc1c504460eaf7433fd1d3b7a46049cc101870d6d8b96914aa70c8a1940487c79a22485a1a9f8007951d3c04062040d9b372ebe8c684245e448599f324cfed469fb6a223efdb85a810547ea87971678f132b36709121d601cc733793c211726943efdb6b05f7ca2be2cfd4e9950258f2734c246202f374ef0e9f27625ddbed7595858c13d3684044937d3eb52fb88e9bc9ef3dacbce6b7d020d880e315c7c584049b51128618088a095f82195f2dce4fdae158f27c4e2f4bbc2843adddc60f8d2af0a13aae4f178425ab07831f3650a10979cad136308caf494399265c80b6952d66d0795147584893c3b5204a92187ce1db6608a17b0401367cc559a3f43d2138555938013a7d6fafcd50b2441191c5d3266b0914124dde7c7798d64c86b1d34d10747558d2c586954def3f5a689f23c81933081b4b6dc029d99705e27697badc1ae308181a24b992f244ae739aee495e5a96f89bcf6a6e99784096596a769d4c3cd57203e69f49cd16f8c78a9801d37305f55a06ce949b5ab70f2b419b45f7aa47c19681483d8e9067b26c6f75a99b957170b636ccdd2ac8a7e5b35db86d71e638c31c6189769f198c41863ec4cf869cae680629ce3f1f918638cf156cf3493def47ae44dcfb7a9006f9a66d4de3ce3e44db7804c28d3ec9152d4c0494dd3ed1f13ca44eb796e95bd2f93beb4f3a5e7b24493f2a519aa2fddbe7969a276c6b454a565e9d6cf79afcad07821cf426efb9850427c4ca852d422d3e5cfd3addb589afea5db3d2654596ad167faccc86bfd7566e66bcc902f3225f4681d4894e439a3ca20aff7bca4e77997e779e6f9c8f39307068febb20e8f386c77ec9850f8064df40b8db5362c66ea50f1d67c985b6888f8e1d146074f5a699698adce5718201fb4995f50b4b4f5a0ea728405cfcd0d9188461e22756cf00143c444af158adbe4ca734b6797605abcf60ce6cc9cb30d3b8954546d3c9224494db2c0f624499224e915b84e378b24497f42e1e3490e4fd6b224d2ab9fc73de9be4a92a4885586a140f23c129ee7568e09c5c3e29528cf2d9b09c5c3c24bd677ef040a306127cac4d13c748b599ac509ac546bb770f42f49c97f6f30616562cee32f3132a25e449579b376ba31a1c8aaa6c55b9726617234b1ea6105e9fc69b1840820b20d1b3539412fe409a20129e284075b0c6854cd590164cc8d3069d986cd2d71e7b576ab6642e99d33ed76bb33bfdbed763bcf66190dec0bd7e335230633e4b15b35699ed2b4e855743b258a6a9b052d2faa894277dc6081d243abc71fd14c0f293a4f6a6869bb12b144af80288a54a228fa939d174551f4da358ad9ec280900bf95cafa8c575efbd945edb5971e6940b2735faa6b756750e402768e922b33d0e01c28a135b040ec0409a634a8011ac46871aa82a906d7809e369779edc8de935ea59ef44c867141f3645912343ebd3ba3453159c8b868a1a145ce163133409d8341b43226949885c14e9c1f314ce410e2c7d75860a181e6e54c59ba997e8d1ab5355dbda0b458c143c61e143a7080c694fd78e1c6cc0b9224438e09cb02e4c5b33446b2b4de89c1b227cc6ec491a9255fe0ccc0fa5233a18f9415585b7ea805d2629ab435650926795c088bd2414246599db4afae2d3bbcbc48f1aec85bcf696d6eb7a98a6ec1d8302c62043023237bbb2536447ec912058297a328384858e1f1c46a0f89868ece0031dcf8d0e1c2923a2ad22eb6cc8422b16479e2a269b49052e6080b175d803196bccdc193230a18f28c19265d5280ac904013c30d171a00008d2943c38e16253d76bb2da4df3ac2d582b150bd28bacd6242895a4b4f0e352966f090c091ee13edc88c0a684cce9e207b581c29b323b19850f8ca1b0faee85d599fb128556b5ef449f7f9658c2419723a7371644e11ad33765251b482d6b302e3b567ed56e0bcf6f30a15329f5844832b4b0adb961245d2cd44464f6f0494154ada9a88dd0973a38aa22856a14246f5dab3f6918c6dec1445af33542cac0a9717bfc0c81146c09a5099da320205ca6e8c1ad759ebf4c1230626c575254beb135fb78a0b1cbc34b9abbb1fba75a31c631ba9884d39f50e05e341922449e6dc24258751ce92921c69793df6e3b55b284ef21a4016a68a5699227596a49b89dc799da1b130060c971ab1acaa21a2c843f7dd7ab273eb442cc7934fba6d32ee489de445897722d9357a85bdbd6662bbac4ee71b74ce84751e68c8eb5ea7d3e9c47469faadf4d6e74f16403d00e159a245255c26944e4722004c6ba77592174c2832eccdca8b4894a8c869adf596e5537664c8469ca8302d8ae00194ee53cc0b805a084205c9922d6426c46023a39f3123bbaf2f122759e46af9997a9188a67306870d2349f2e498c3f4ba301ca889f5fa5ca17571e356a4068a143b506bad774348204b08b96642c8228089281640ce84701902c6089a0da8191132a64f90283ca9d6ba206518b13dc1b03d62dc88f021c1474c9f1b40982ad89baaa92b79b47c54e9ad31af756e2a4a952b7e5cf0484bb516c9b0db547f27296df8cd21ec4e189e1b6178f684e5e932e3b11e3a8fddfec8d29511130b226408db8d385f8efc199b9acce9e2674e9a254faace87ede04753989b323db4d65a6bad7998503ae9b7129b151cb039d28645581b353bac744875a864040983c4cd8517232e7080ac8f0917e2e0809122c55887357260c2bfae7ae810b586d8c82aa386ce903b5d8ae0c08dc8410608d513b03b28508839be6eace1902ac08b2f4e5c5839f2862add3ea65af6fb0234d63547eac8c1924605108c143b90747bc585eb45b01bba8e5802e7889c31664eacb9906ea6d771014331d63872cca409b3ea91c54dba4347b0616b807169e181d50766f274052a62c7cb992d485208c54008db550fac29ad1e3a4dc384d25cb818fd56d2b2c4b584d9f2036c0b9e19a2a873818c1c33bac2aa90e4d1a20527ed8f131947cab2b8a2e864e4a72c47b800aa3ab506770d3f9d161e531445d1da115cb04b58bab6644111e3d4e20b764a1d0c302c3636a0d227a8a89c5ca1d2daca622407994785169f3467a24c9511f10bb02b7e32b8684157648d8975b6c559b642490056ac9912759a6bc90e5b89a28e45efb50a27af3778adfd5ce113c51dd6a15f55763bab42e756ca8aa9a8f1a2e836c5962b5a7baeac2c39b3d2daa7cd5eeb255bf264e5b0e2a42d2ad59a14751a45cf0c300510325241a92aa93a40314ca3840c1e1e7bdcbae82b49a6602d575667aed49809ea441b258642cd6b31133f15f50245b3b230255d46afdd96f8809d442cac9c336119692e07f639cfb7c9f739f7e58ce480010606869832690e4b1118594ab490d326cd6638b303fc56da5075a786a1df55ade2a96f51db56591f39cac2e80022a60309d6092cb01d32d888edc01315448c0794a0580f2427c47ca089fde07aec96840985b1b6234ca8dc903375cab0a0b3074e16d9568b8ab6e74f951b5913144a48b2064548ec344983a058ced966a97dced94ee5bc5920f1199773aec065c24f4b3e73a865496833843ebb2fe79ccd321a9ca9273d933e03138a2473a4cb208b54970bec8d14d163205289a2c3208b4e0ff65afb18e8b5b7a007f0da5f9045ac5e180dbf373c07362fcad8a079ecbe364a1ebbb7780ce666cd63b035148fdd052614d6d9f102d3021126540e8a2da48d69f1a304cf192b59570123a6c04e172b24435014e19362748720d16da9488c45169850e20a4c282de7737615985019fb6123e74a0dd5179917914a99061115488d1b2e30dc9891280ba2a7c08412bd20bd7614581d664b199ab72651d87c4937d38f81918d3f182748b4a9d922064e9a73ce270801a626e4b5761019d7b0a01b98979e3d7cd0a49b09638cb13fe1b3c7fa31e6baba21c40d4d1d1d6eb96d022b2f7c065b93f6d957c8598f17167168402912634eba99acd29c73ce619f73ce27a4a4201b02a44d589434a33974dfadfac4e467cd5e02132a934e02db7bacb4c1a2f82d02878a7f5733b4c76c8f2b9e0dbfebdb638cb7adb2578fad8fba2d17143379c6d3e740a63e8ffda9430911484bf1d83fa8c0e4b1afc0c2d7636fe1cc966016a9209589c76eadb0d2de64a589b2d5759b2a981a358f7d045e1a89da993389eebb258224af3d6b0f41ae7efc94f50023e52cc51bb017649832b8da1263c896176dd468b48200cc4c8bcfd93ff09445e86143cfd58e2839dc52fc5f4562e04e25609e78454985d1532f10ab3d7615b28895749d72996fc03913c679e5f1b8c7e170d9accccb59521b0d2ac268a0855985d540f1d83dc0e41480b6147b0738f0849d2e1599644790fe5dab0ba4d29a4c014cd28aa630195e6133647cf60d903a071b953f2a5e4c49b950bdb87ce00d683662e420b2e6cd8f146312bd56e8f8566b20ac4a4d064ca8ecc34e2296c5184996c7187f10c3d2e573961b9f1d03be179e185df113e602e70886a8d971a2238c0b6309d89273b4801964578660b153c44425b3a247cc152d9fdd0248f0fc2ac0e1774996e6b3e76cc5c967a7c039622b8b161c66666e55fc2080ab4a51d592e78b0c1c5fe484c9b2f83cb18f1338c9b20cf0d9259064c850d6bd11a88286c208023668c0dcb8b81a1373002db49c01d0ac21028645064b100255907cf0001fda973624c054bc7d39e160a44e4f843752625ced414b5124c538eb5e0754915a3ae1cb6c009534a00945b24a20e1776f6c00547e7c760f3e9183972a1f3c9c2041a3858a04ae33a7549a17b724686cbc60e766518954a2881970b7c6767cf602457e20e48b0b26c4ec08f3123542913610f0b0c2f5250f1a2d6c528cc91393be7d38d175b92c87ee1187ee935c402ebb674961770ef0d9c7536cebb3fbc6547c7605b81673912d1b2ea694e5186300b75d99c4c6db9e321a675b699890c7571efb78fa1cf84c28d02983450ac8991c5e4f49b210d5400d172737f46c1dd1ea6042e55e5569bb18560192c48d123956acd0d9c213f4c4e84afd4236268d8e94337ab4d2b0cc68d9ab6724d28065a5e913d55605898fc778ec2ceb31efb195c7580817173379dc54809548319ad1de751a7bbd9fef2e5927fa3a7616e3770fa3192155e72d0999163ec4bc4056f4b6e5c5901e6059c0a6acf931b3e306d71a5b05881340593aaccca090fa1143cf98303133e9f6edb0f27a87161d1528553548ace0f2478815d2d72a51263efc5a654798125cad4d39e34bc2bd27d80761d1bc02fbd6566b7d67d7f9376e382fd635d75ad16cadd75bbf75ac54af2518bbd3e5f3d7b13b6b62d6e1e8e2584dd1da36bf1144851b33f311da04544942e5b1678cfd0b9f3fbf8e7d792386bb3514cfbdb1678c81a3bbd63a0cc333c478c44b392807a175092ee86549204ffc534540d6e56daa4df902ad36b1df7b315aed8c6a86b50e3467c5163f365e88a9b204c9d80949c0dab0b15ab3baa1fb4a2550a0dff9bc59a36f0e5fcfbe7e7eca69d5da479dd1f302c35faf090e8b05698da24ff45ec55e5b82415aa3755c68b95e7b1eb597b7497f4eb5339d3ad4b9ca985ad46ee0e3ad2b746b473d7fbdbb64bdfc3a26e6cce3be7e6dc118c1ea5a105b901742d4b530e3938fee4fa3bb579acf9f7c1c9d2c6df4349f8f3e7ad9d3e86bc37a7a7a7a7a1af398c7343b5a3bdad1da318f76b476b476b4a31df398473bfae967069e6ec733fb4ea62c7bc7313f017d199875476b473b629b7df7bc773cb3753b8ec0fc74da71ccf68e99c99781be6c476b3330dbeccb3e9b8139cb3e9d633eb34d1bb3b55ed6eb1ccf31333df9385adf799ee3e8cbbeeceed632019fb2b53e0bcc4cd6979980379765e369732d1b9ff238663bdaffe08b272a09b9ac8660bd7a49f1d5667d758b05682d45141b2d3abcd26dbdbebe2d11f2e62b50922f2b73dc70a999132505ad3a0b125d76cc68c1a32dddb64cecb74d0bab5eb71476ea20f6c5cb8c9139744aa495c49b5b1d3824b8c0a865c160b04505ab3e56af55ed0d9818655c74793b4b47749d39a951e5a5041a206965aa695a5b5642dc9889494bc04e754d1e2e585a846c013426ad2ce2b0bdf1f8b302cb9d74d7b5bb6448941b1b6edadca4d56d541d21789b50f0f4204cc779f519b4f0f5d5ebab77b053befa59ddae6d05834117aa57ac0f751e7ad9bb4d461ebaefbad7872170c38bb09f3ef40e621f8a55b22cbb9a85aec29e35b68ac706f77c588652760ac9b7adb212f3215198a595e4db72792df9d08a7d68c9b27c88217c31e4435c68d72c1eb70ffd06ff7c78a3867c5fa9a90f7ddf2aab0ffd62d1f8f0fad8374b8beb7a957d2896e543b30fd13eac61765ef8b017de35b60f2f9eebf6a1e3e0181cc5f38da5f0d487b80a5b7de85e40be2cfdee31a14a28419ec7e3f11c58e43c9e3fd9785ec993c2f30f29f02a8fc72392040d47203a3fdaf04a70664b0f332a2f64baf076ef8d58597add227ce95526ca8d2fdd87e24b2974be7460d894245ffad5f3e40b8302e57d3e9fcf6f1e13ca57e475277d9157ab2f0afba2222765bee849952ff28bc7842abad356e7edddfdda31a11cade758a7cd13113d51942772bf4da513b91211913361a216249400910283ab888a94a88e123f5f565ee470c34b7a5edbd9f378bcb640cfab03e5797eeb9465d946e709d06badb52f8d93d744fa430aaeb526aafa699e2e72ed36cb45b5d65a0dd5a3a8df3926148ad6732c2a2a2a2af22bc7842a42ebe969cafef7f3cb6642fdd07a8e44447ee388a569f1ee7ee198505e966559966559967edf9850659ad6fb7c7ed74c281f5acf9169089a1e3968bc419283c7e3f107caf378970a0e1d47e844492992f2fcba31a1786d4c288d26cce7fce4b3bbd206119ed23eefb2139e674f216767a1cee75c565df9104b8bfa6cb52c99cd727346fb3ce5c69833566cbce0080283881b3166b0b0b4d214a4eeac283b13d2e6cb00f498d0d2f27102ca5bbaab57ce44444444447ed9985044683d7dcc0bd79765a9c6e3f1783c1e8fc7e3f95d6342f1bcf053d9ebd7eed368bebcf651fb556342e934663e4306bf696356d90f0d0d0d0d0d0d0df990676131a1f192e3b367df78c68c093584d6f3e9eb05d56fb0815f34136a03b49ea38ba8dfed76eeb789e73b57ca3b7ffaf3bb5d93ddce53b8bbdd6eb763c99a0b291d5c6af0ecbc62270e02b920cb6143ad86989dd3ef9e0bac0e5c5079edb74cf9e5a2c69765e963e9970c986e431561cac5e7ece397cf7ecaf8ec3ef7f1d9812dcac63c852183840d11b33651b27c4dadc85d239cd8b121762648c78c8d333126d40ec763c0e0378c0985e10b878beff5dcd7ebb9d2edf57cec9ddff38a76c19850daeccb5395a84ff29ce4d7cb48a5ed857a2fc4e485dc6f937621571212722615a9908fd8690238c674d1222586b6271552c144aa8b98af324037d27dbe90e72ef94bce90ab5898d7511899cf62493e8f457d1e13f3794c0f952a9ffd7631a13299d26baffbe97593d21b26304c68a12993476b035f7b059b23f55a2f0993f27a0c94d729b86c9d506186c89c54fb2d33a13497a71c371ec9f36dba5b46188fb19276f23887b93076154aace3310f27c13ca1b01c538fed0b597a6931e8f8e16304cc98d42b4813b11a5a4c80a4fbac64bd3a765c38abf1830b9755d989a9225559ae64a4db0677385280c501abe1a60c52963b6e2c88904de9c2c1e47b3dbf5a468b24e79ce5aaec8584fc6241024325cbc5151e6d54d27d3ecfc99ec743f2bc2230fcf8d1f1f5244ccaf37b25ec0aebcbd2af952d493764dcd87aed3e40affd92b179bbba4af2c5868d8bb01b53bf0bfaddd6eff660e9f2e39663cd54baf35bc5a99850580e930ff21ce4776c8cf3a4e7234f92e4ce4992cdc9933cd208e91fb0981c203b4b859dc694744be61d37c42881a3058999584a4e915291654995386cd21153fc10e9cada2186e6a74f9aab13612eba7aa4bb9231b16961d3f3d9af1886736729ce551c338ffd869950586bf78d174c0c0ed9ef767ebfc6b71fa79850235acf310c9417995e1445dfc0f4a4e4c50f29b09ddb4adda6aa9d28fa289e22d8ef767ea59850bb166f7e68c4a161852c7fb110f239fc5c040268fe80bdc538f1e32acd7ea388bdb9327ad22f14125c6b5178a66481a5385e78ec59eb7117992e386af8b9d2c6478afd3e115b737badfd3ab94d72b95c999c99cbe5c4e40090f33af539cf391fd9c67cce4f1f8fcfc909f4b939643e979be3e67374a67cae6dc6e7fc769950b93880fe3c4f3f5de93c9d099fe77962339cc3f80c9fe19a652dc696b5b43745c2de4479ec4038301e3bd3930e387b1e87c5e1f2d82f13130a97297d7efabc819f993efb1a89cf39afb9f8ec63f6bb44c9939d3732f2cb6542192d91f23a1d91d7b9ebbeaec85e87d3d9213aff809dc654f7baacfb40cd192f72c86e1c0972825a183f5eba48f0b91aa14a8a091a6225d05ce9e4f859d1040789213e741eb604cbe7ec370956d24549499ec77e5ff021a96d5bf8871d5782fd994e426dfbd9747b86246a8f50104b6444e15143c60b272b7af884c80048113d64f854b9d27124d4ba3383c490b41a6554b0e1b22ea0a544850b3c5a2fc4181193e6458e39468488095ba1850cf2a133853a70b01012a649091f42d2d0bd888fe0173e623fcc66ec910104ca0f112754b4d8a86aa345e4cc4dab48202e31e50fa50c044a5222c81b173229d2d09d489dd36643878a2f26ccf6ac4891f3f1e5c685b0305e0271093224d49b29ff7ed9b3d99e3a49d8c4a1ca9344abd8f3a1ed817e1816c40e922e7ddc3cb99286ee57880915662026b10ecd671768dd447359d6592d8fcfa1dbf7e18ec7a19be9c3196d637aaed078f9f84a3990644a09b32b6b28a6d230501a2d25b468a133d625d5e8f60f65a8a971e18aebca559abf563cf930f49b55769b46114b48c412fa4325d4f657c86d00bf8544aa9d48b513833b31b81bd122089b1d64f80ca9624bb710049c0c412b9312766548ba854a1095870790395bb65e48b79089386361ba6429d1822bdd4215cc94b23e81f62cd9d1966ea1375c677e38311362e44cba8584d0feba90d9dd42424265b74963fd16d2f15b28c76f21abbfbf85a2feba5070f7266e9de2d6d976b6b95d24626ce48051848a9374ef70b0a17892e72c6b2cdd3baa9c0fb022526a6326c8a47b8785c20b202e44facc29ab4af72eabcb485515272ff4c448f7aeeb6fd7151e4129192db2d2bdf3fa1dda5fdf99eddddaefd4fefa0ec7ef1dd9d5efdd8ddf3babdfbba8bfbe0b2efd3e75816e50b7756c7f5d87e7af9fc1a8b7f1fbb4aaf1fbb4fa7d92fdf5f354dbe7dac9f6d74fb313ed0a581b33254a9ce1c327dde70bc07029b3e70b903d52e93e37f8ca62c76dc89a3d4ed27d1eb13a63844ad612376dd27dea39e1c28b1c6d7dd802a5fbec9a009d16806c0c59d3842ddda717f0b7ce4cce4c2e2db7736e696ece5e7023c36a4f8974eb5c50a28c0b687474d8b9926e5d087450f4d1a14248151fe9d6b990472d0f9c1d47cabca45b97f5b7889b32359e4cb1a55bf78615052dad0a188921e9d679e9d45e87f6d775bab2dbb4731abf7564337eeb64fcd659e9a2feba2e8803fd9d7bfbebb96054d5ef9c950bbf73317ee7c8fe7aae2c6776736839b59d5bfbbb737d8e58a909616b934196ee9c14e9640a8a2b30b2604991ee1c9506d85c70c5d8f3c50b9774e7d4861cf9322595254f8a74e768d8f192d6040eda0b70d29deb0243e6c50a204066d84877ce8b8c49c6f4dfe636d9ae8967ac1c2bff909564a5b965c2f86d52fd36b7c8ccb5bf6e9a661a00c8dc30a3a4851a371ae936a5a0c06022c54b541a8b749b30d093c58799193781baa4db247123ca1ab5215c88b848b79995e177f9a6249012dc9f2edcc6b9fdf5b1a6a5cb93155b27d25d4ad50193d2d366861a2ce92ea9fe6e59f3c2ac4c931945d25d0aa08b6bc78c333cdc82e92e655049f111a5ccea899674975d7f85f829a2a2c7141a28e92ebdbe4cfbeb65c956aebdf85d92b9f85db6f85d5afd2da3fe7a19dce037eeedafe38253bf712c7ee356fcc695e1d0706a63bf716b3817584973c585226e5132d28d33c1eb0b0c40447268214b37ee4e178f306041dedcd1926e1cd6df2672687411f2168626ddb8ac1159686626daaedce12a926e1c17b43253522ea280b5a51be7f583fc41fa7e9359e4268351565b2449a66d728d94112423a8e8779055d00e0a46596d0505050581f91db4f63788cd9ea821fc3911e8ef1edfacd4e8f6d7c7a08adfa3d4ef31c5ef711cd3f6b8f6774c23650c1d2625dcde7ca47b94fafb9626450a3e33eeb849f748f5378e891c48b014011296ee114b88c8d6169a1e6360b849f798a5420b35324ac0e4f9f396eef1dae9a2e7049133c137e91e5b20e611b7d8822806a3fe8a277e8b51bf455114d3b6b8f657641343e122108a36527286a45b94fabb25ce9539507ab06549b748a5d4428d1a163ff2b49d48b7b8023564309ec048935a916e514c9d2f657ec480bcf1936eb1eb2f9085c5c7d78a185d71d22d7a8d20fcc326ecfd0e570877e806465b407fd06d3a18651592d5f91daefd0db77eab63192a9790dbfeba41112366c52503ec496aa58d060b3029f00049b7ce0aa9f4a8548b17ea4335c9105444240004008315003028100c870583c1681c675916e70314800e80ac5a66489888d328c7711832081963883144400444004666d3002a723fdeb659db35e7caf883c3ec87641ca47b88737992f84aba08bfa31a496044025c1499bdf1d1eb90f00f4679060583aa92c87016546e452cd0c296b248a51345fcaf807c890e1c28fc9edc7135110e0b5442d2c634cba9177c6642cec9032651007b0c351818c48bbb7c66619f56b8644597435ac0b5093bc5df65720553b17ba4069b682114a19c654ce2c7ff86c0aff52fd2c81ce6f6c9e19f8b90d6f866fb569bdd05f60aebf57633eac03d82903a4d8f9d7e5efbc42f772797480e052ca0383607a3483e3ac7474c57108be490d5a84d16360498c34fd93da0faec94453498e970f725c6aa627dcc39b8d2b3c1635868aa4f68cbdb23051fb2ebca85fb2c079e41209e30ce85022f173b6c4fe83cef66523978fdf46712d1ee11362ca9eb3670149482a77d339efa4623c769983c92f5a2b2ec349a71b9680742995b4db691e2dd0b9c524655b4afbf03e3664aac9541f437582e5d22cd6f5d2eade6a299b2870425545fb93bdfd3c6eb20ac6bee4caf2efd8b4563056b7eeb523b093fffa4a8fcca001175beb74e8bc7bc16498f87460fbc1b3ba87340c70627188a38e046e33d5d0a8d10f0debd0bc0129f56643a9ad07b3526965416da7eb40ac2b354f3680a55b1016928bc11f77050881ac45e90dc71b5f752c322e44f6e94fde13e80aeff5563b9f7ae4e777740a95092c12337f70183fddd44bf141a4d00b3c9886373288eba0a33f00e203e37b2d88fab30a9440386638ec7b3792bd8921c85040d0ecae07453e013fe7e401889d084a5ace5da5c6811d5c918e5254718beee20c96c72944e04220e474354cfdc850fc48bb79989e383b72341ba3296438bff46df9c1dcb8218c53fc8e97b0df892172ef63dc347e019e71601ce5172e78bbd9fd3a335546f44fc0d8980de43a6dd5bc547da297d2e6dcf41beba4842867a95e84b40e2963c85156b05eaa0296344393c4c5c13283c81517ee29c25bf5ecc2faf2d5c33ed1b089239ca6e21c4548876aa4baf3724b61f0bd0a33dd12a341713e03e33b841ea8a35106a6da77821808e1a4da16eca0481e452ff9a6430d14a6bd84f34bcadd0f552f34dafd05e995103f74fd70a9c02e78e6260125fa753857d39095e4838ca8a1832372927bce98d09c7b513e3bee1d6d1914d1ed5fc85b74e8ef36a20008d36bf3c16f58d02e439164f31eb6636f0ba92f25dbf0cee6ff1340c2a4114a330a141c98d1f90388bc59e490bc67a6bb4605192575a1651c6d9d3dd3999ab568cd8df054ed5c9174901bc634c07611c0064f87e8df8e8397c215af3db8483e0201b4d0bf99ea3d6628c886b01ba87c28b9d5538e13e08d3d7572c2d2270a13bcd34c36c3dc0c67e3726696c6ce91ae2a3ac79eefb73df3deffc77d75ff7dcbd792aad2b42531e0bc4b4573557190a4d914d732acbb8e1d488bce4f404a461a020392e8384d24a695dfa558cfd3da7bff8739638abc6bcf4d1ca3968eda2aa694e95b656dada9660aefc36d96bd3bdffa8fcb8f9f4477e6cbb04cebf546e611e70a6ba639c6e731d47bed33a5840d22965852d2e144233415e7f2464bc738e5fee5ddcb7eebbeb9e3ff3d81f00a6d3361887f414ed9dadce268005baac19546c5455059fe752d90dcc3a6241a72c7a34c95b70cdee62d90818aed8e8ff1d73aaa4a4108e9a16cfbd275bc0945a68938edeb71b31558a1bf77529d1c434871c40b1de36631903e648fffe64fdd328766f5821a2a7bfefe8d0c3d46fc23aad98b8a481f64d7190523e28e4313b3b02ed112bed89ff372270838dc184ff509566a20a40a7023911025668725885bccd322926df997a5aad6e44776679c6ddc33e8af3bfde4f23b5c2ba760ace76d5d78c634ebb181d14d942fcc80942456beecc5f99af682487568bee347237f932637f217b880c58d75da46d9196d76e0a8377cc8189e2ed09f07d65c899009d44798d264f903284c59e18fa6190dd8e1c0f9ddae0a311a4fe489db28a2f48e5b69ac77b1fb0e5459796ae505ad2cbbb38d4f0f94f443ff6168bb21ac84bbd533db11f6fd6f0ed413df9a1aaa1febedb2bec9163e3ec4ed1036f47bd9f4a610f7a0c17d6b582e8a83b335e35a7ab4042513b0a1853baa639904095991c530dcb32052deeaeead796a7453cd2dbb37d4cd44abb74d14eaa21e0059bd02632c36e736bbf16ed1ab14889baaaba3f580d539c1b759d2c42d58acb12320867b8767112a7010b04b6142f5f592ac1a1e055d57e6e63014d763475be83015fb8850c51c827de6e042ec0ce2104f00352798bdecceeb8f0a372206c2fc3fea6895cad90e29feaba69b7353104605c53f842c666988a479c5ead56662f2949056d54c5b86139e8f65feda5227dcdb7ba9f46f4fb82b52514388ef781a2182e8056066f799370e826f22982b35f08145ad52be10ef186543de2583a5d4c4aaee699dec1381aee156e5ce1b46ca46b1c911e4813eecfa65b591c51d8ee0985ff2ed36f8efef85b09f77fa9e57c3617835ab3502e06c472b0c3491d505788a300bccd92659aa6504f8e77a3d54bb62608b43d38c5e608657563c081154ba1853def99bc8d6610cfb5d8bb1b9824fcb3a61b64e9e874ad1f3647eb928354547f9770008ace858b627012c632a32264bb8ec8f79e1f194c77d642645a00301ee8a5e9d9c0d7adbb5a7884e809a1d77ddbab994e273f3bcce6e179a925e911826c2f12d5c5ed6cce01627062226f882dbd5d8e57de8cc1de57b5deaa91c89a7c543c8c161ab8c016e25b2cdb83d33a0abb3a8152424d85a351c27314ca504449d2e87613a9b045f9a4ecd186365bc9bcb5a40b469b6e5b0e0cfdc634a46267c722e53f5d7688afe4a24136a62ddfd2c637300d53d523517726409b8b1b263cb014e71529244ccd6889494044835ab2767289e09fd2792e700ad9a3f0d25cafe73b91d1028e6c966ef84f9ae905dda634fa8a39e4c9bb2d69d044fcb239fb75200cde174d7d47a63336ad698e69c0bbcf1827e34f6460ca948976696141137ccedb82d1b73bd4978a27e342297b2284724b072c61dee38d3ac9508e1641fbbd23c539f28c6f77c47c88417a6334645fd4737682df2dd624a331f4d562c71a9b849a62546ffc2e4320c44ce2adfa638f504f58bf1f3a9b869e0d548da7d2bd0c038931c1672cc8ca29359d07d05ca769d40b32c1501e0807b9026d1a415d854ceb06163dd4396fb0ec0c472df26204d90064bf8eb1fd22da38a38f9266e8f5c1cf719fa38964e4f5a96eb9557ac29a2d75d4daccb7cce9b5fffc151097c6c67083980de6a4c0dc6145e5d0aefa19619ff6586994d44d072472411a9f3ab21d8ee0586e5e16694f96ca921ec880608ef1746e479a72c6b41519e08b6b6fcf3d30e8af9715bf8e283ff68f8bf63d7012c3e595f1bf595b05f5767acac40a7ed9c1609cb5487612005248fa612904090f703e0577a79317db4098ba4949a6b7a4be5eafe5be8daaa67f95ffd0a8751572896aaa5b704eb949dad431ba35441a81c89840404a934b968e81c8b0e36616582ccacf24232f8983ce1d55b1f6acb253455f87be656dc72a57adca03daab283fb93d224728e40d4a335abbedeeabe3a1cf33ed731e2f68304eab9564dea7578b0d84d0d945ca320542e7570ddfee649702ed97852edf30c8de869b8ca5bf1377e09a6870aa3c346c5666c58087e36827066001881cecdd7643fa00b0773f8345da707c9a1a1a4ea679363285dea001ff648d24af941fe764042af149da6bac2020236dd2c8064374f296c692d871faf87bbdf164746a0d426b633f4320492dad8ed2593a4f58d85019b480b082c7109f083ab8e96967c21994e7fc2a7192473e3003beb53c48c328e5aaf1958031645a7eae9e06fc7d4be1651e73ee90da996d1681c1564f782b413747943a0b03858052620734167abc0d87c5fe198e044670c6cf2872594c7bd0d2187ff30bc733f9223e121374bed7a97063cd908f90147bf3cc3dad5c980a06b933e23bad745df83b760e70b8c4a8cb9f12ac8b6fcc7280e595a01a4d4316e2b53829203c5cc8e97ec0b267940c364bac800f91b3ccb4c1edde31ada848865a1407faa349bb3b50ce59e9669cadfc2813fc33a126c78183ba28069f4809fcb392339e41d1129121a6b92c007ec562a5c60245c54b51dc1b2629a59f0b293d7c7d7c1d161e53bace79a997e2a23d049338111c6faec33bc6831a831d15fe1abf4c1a2b789e137731e71d058c74721c132b1badd335b3a8bf833d6cef0034107c64ba6247500affdb128a1f7b632de90e5631d803a08c6cbdca9c471eb06403d44fe4dd04b96882a20c9128b7e00b3e62af75aeeaebbe29a8f5a8b5beca29e8d78dabcc54bba85536b80535b291c3655fab1d69af9bf10f2d7623ca5e3432880a76a0a8126343a2c8fbeaacb055948a8ca8db1ea50befcc54cd4dcd57ec1606743ad948f4f519983975717b61e92d78514f3dba7e57c29457ae5a6c32e48f272fa508f041f99fb93c120337abe67dc6224b390b1e9034c794a190c440e1f2071a411b73eab4e82ef8b61bb3f7023f59bc19ccb1a1d458f275d6fb944ec8a20927b97f3a4ab0fc417d00c03c62d3de2b2b4dd82f12ab05c2aa00ac88d533419cab30f571951b0006cfb44a4217e4a3a600b57c6d35f77678f7a1aa500c16fe444bd226a34af65cc790126df56baf35ecc898d49efcf2d8d1fe783921f2f455d6d63bf553796a8df9bf6dc832b352c948cdee48d5f21755b091b45f9b8d217d89969944b475defc3ea2c3e6dce6f1f943e45455ec354a9c72b5c89fee56f63e7471419a185912fe189ac58e2ddfec4494c84359f28a46bf331201d1e5e9825a9bfd7e08cf4694da61249643613c5926bfacbcef3ad208e3a91f6a202e1575c4e0277a05f3ad7c1dda8b904d5e2ca849349cc4aafeeca1f22a9dbf4cedf219b5cf75a7a4a533c82d01d2a19938579e9c85240f4a077d5a90031598b3a6c5d2a0e9345a17fbf5121e20ea006ba34470ca4709fdecb4e2d1735ac7ce49e1a4ee4fe7c2579155d4ed718f78a5cb9e13041cbe129c4f1f86e04829b87094947ef9a4ce003ca64158beb84a0ea20ec5307985b13b7f1be74cf0629e18bab1eedcf55799f735934742fe52aff509365dde743536dd6ee5eae6fcf74a52106ec49a53ee756ab6185fbeb98792daac0611f8d5ac014f5c9a35874fb4d7f4987996721b95b5dcbe2070c5ce4d8edea6526ff163a4ff49a21cda370172aa0a0a5ce8ad2cbc38b365447efc76b718c5b7b2a62df4f9c2d380ebb3849dd08eeb6381063e291d835913afc9bcee4198f48ce51c5f442c455756ef2b1255376c80d32b4e722be4967a6589748be610bd704d81791ba77d7aeeafef6c526c564e775cb974232de8af21f26696259d9d5fbf567bd16da0bb11c0b6c71a1ecf227f2964246a660a2a8d67fb7b9454b999dd2c74a74200c7d797025f1c2bb9cdb0346f90af6fb622dd5fb1e384cab91f6cd0b5543b019f570214649817ab86ea9199feb230f47d0085984a0c01a686ab3797397a8eccef724b86fdba004327d122b3febf815e96aec414cb3bd2ede141e2d15bab7dd05d0fb88ee71496591461bef94ac1c07bef83894ee866aefdef8db5b70467e983bba5096062504fc573c451adebe1a5cadc4634095829c54ad7330150370ef17a388bf9ea3a4acf453b685c548766a0e09cdc89b407ca4adcbf2be55dfe21407333e817b7af958f4695f36ba8d177baab9de92b0d07b06abe4bdf23a30a26434bc9982bedc9ce69ecabfabd3048996cdbb11a2528fe575c7f4dccaecc4c96404761968dd5ec062e75ff5bd2f18afcb295d26129461098a82e90a7462393979aa8b0b9d0d463fa14934b17a4f86f3fda01af5456126cce80292458d0bd4a75bcc4666fe7f49f4ead1e917decf046d157129b7823948fa16df4336467229121c2e61dbc9c631341a8c97afec4e06e0894e86b61458abbca9a0789432110fc9f921be3ee7505cc4dbe584f82e40ffce21f447eead11df882bac5c92266b519f3c47d439a9cad4ffa6ee5932bdf69afc204e3cfb6108000d5b7aa13a2affb9855c73e652a79f30b578da8cb583dacefb7f6e1f8b9a77694c243e582f9cc12dd3c987ff1ecc656e254fcd16086a82c253cf327125bae561ddf2e4b678b2532afb92053d1a4f44f56a69e66b2beb96fc7040756fba2618dde68a241d78504b43148ebcfd01fdeaa6fb44d7f2a6c9236bd61eb7f8c18c2dd7757f89e3870e73b2a1665b515e66a69ea4c9dc2ae63552cb5e4ec3a16a56539bfefccda30f6ccaf4b08360223ede8cfd34ee1872e8766429415724a4a9fee56070bd5955f496c7726517e08c08571c80c4bc238a59f522f53f0d08ef306bbed484d69d03d9e46be12279a6cacd805a3eb8b6a21f92ad51d7656242d68863f3287526f630b66d0e7ec487e9ff2063b0ae1667973b34a19e870266870dd0f83f2f5c5366ff47673f704233b2b64514b425a0b3e6827dbf9c77d307c87a5028ac0f42329ae899255bc0393186dde79a11f5107db8a6cf7dea40373998cd50a10fc776dbffd1b80075cd57b81eecd9ab0cadb1060d71cbfc5c75de1e50db6c7aabe38a8e139a161dfe238b10648fcc07c4606614d437c11601fc5b08a8ebcd65d48812cbdb2c5765e25965934dc6dd01517593b902e8176c9207bae692c9351ffc08b597be56df64af2cbe94d476b09e27027c440be0220157e172141e362f69ebb75cab5d5a5f5c1b470b3eefc6d66f3a54d96a496d207c532b534f063a17c283b743b0aadfe6414b4b83b0fe8d20a48fa8234d0ff4c93f8cf49401fc7eb28a906f2e695ee75703482f64934dded45d2037633c2b13250ef82220ac2f1104ef8544bdf573d6761f6e76cf0f205b4e098459252d2f52910db70c2794d7bac3e49641ef40f280061c121a9443e14061dd87abe1dce50033524ca766c46cd409648b73053d4205232a32cd4adbefe056801b21ecabaaa775508c027bb377b278907987fb89969e9c0492df0621205fb2c05013ff8721b0becfe57480cc54234ac2bd347116902537e1efbe5f0fbcc17ad9ea3b446b980a3e78e8bd0b0f9956664985441da8e6d8c50b3f467d948c57c7c754149fc71775d6b83264375a429d8fd63f11ca4e10638195360e5bc7c1fd7dd92b7c91bc741193cf292b19f747c9c1be46784148dfc7dc5133ea59b44d59c988bc85de28be2f9ba7d99ba32f45aa0e092241adf43995e9fe0526eaee44666a1374442ba44653a61e673d8e4ccc0d6b91cb76b2aaf5cb9533317e3a14376337c85cd62adfe473089526d3e96e5a7f750d34e510ba808ff2faffbeabb70175c3f21ad09f50a929839acb326293972e0651091569276060fd046bc40a3fcafc25bc0f7993121cfb14afa37dc66edafd4d5b1c975263436cd9e3959c108873945c1c0b163933bc0b0b1954436d1622933d137a6cb0f13063ff6f0354fdbce2ab444fd2d9fee7107f32a9597448df8b093e61f874618a4cc8f73e35684aa08f06e9173c86b6fcb2603dfb8f0111e46556313655b9251a345c68fa825b018f41554c2f2d3c8199bfb46c249135e306a58fc82c502061b4e3e5acb74cfb6948750a948f9a4dbaa010f056493a61b5684cd301e600dd613e1d5bb25ef51e430bed74d362e1dba917b4f6b0da71788d3c0325321e575f81fda10fcd6c1a79dc849879077f0897d07496f346f6184ac386ee0a1d1a4bb8a64acfc2caa52c48aa4bc346296881c94e303d30157f598ac6d56a878504a5058ada4500d847fa3f0d70ad934e9c088130fc40e79cb83fcbfeb887480630d9addf047688788793797956afbbb36de237a19e4b99e054c1c40bd345817b17f71eb5a791e9447bddcc6911d15dc48454f4fe8c12850a2eb0a9535453f9615ff4e7578d601225afd66fe053c76b3b05ed8cc8f129dbe83674cc32769d0aef167a332776cd7b250971255194c518bf984248d80c1a3c81a45aabaf06e539f4a2098ea252f188c6a2bbd559f9195b8236b88d38f05d0b545189223f91ccbc80ec29941286c8b9729776ec6b2015c393dfa746e97fa364e727e6257d3814ff420a0d555db45e5d955c5ca213666125c482a5b9c296fc2a0f3b82b0c6a8895f5972dc7358426c2075d4282980c1075a4441a23ec229e2c53ee42c421931e1dffe196abc3caf8fdde60ff9aa0f528091d2b3b780184f97705850c26b4cb553fa239203673512050036744d4ab14d6c0897b46792ef7a960140919f81a5a8a3226da27aec89acbbf2b666322aa880ee52f640abcd312412e0d156c9484c20fb4975d2ebbb1e6f1accec35dc0950f9cb361a0ff32ce89b60a2c5f33459e60c448feadceb7310fcfa1236bbc5110113286a3c672ffe784d53d29471fd320dd2de808b176ec797acf4f859e2b83fedf03c625ccf6a295c5ca73e017cd79583f026aad3206c0e6c7f71e29d29ba2d9ac481cc29794ef1664db7d170eabe758ddc8c08323a6b4ab4d2d92342dfabe494cf0a5b780870834329e0cc535fd5a739e457c3440d24b2d7cf7dd321137f0c55bf8f2a2275db90cd52a85df6c2de43ec880b11ee8dc2879ceb4dae01b21a7d38632f6c56c380fe2fef27406dd84d7d2ddc35497367083910ca82b53df859178f91d64d0084218768558593f7608c52e58b133b30cf472663c6e1153196d9391ac55e017411cac25a4978f9d291a10f64a22edc9f4ee02fdf2f61601f70951a056cb33c080fe9b2903e2619e45e4a96568f172164783e266a11121fe1b1673c07510fefd7b2a4e00e8dbb75968988e254fde46f31b64a0eaf9474e3ba7bf7309100038f75411d26632b4377a03d7caf802d5c033955b5b7e3c6997102d1ec0e37e1600e2ab685ff1459d5192e2779ac60941b8854b55ec146a05e29962ad67c2724738dc808181fd5710d7934f7d6199f0dea5b51b0422f05696f7aa62ac3962747b02fa00694b4ff391819dc2d6229950111f83c7a8e77077212154873f29b5dd4d053568845a81320b3e80d0a22d8953d66e98cc2237f45fe1679273976811c0f5c05097c5659f303cbf3ba5bfbfe27d8cc0cd468942fa6163093f68f56bfe6ee131f5893358b131120bf680fd21ff2193c117cc8312c948def9d243053e4341a11a12ea9e5b3589923f9efa6b056771e3ea1a0e12ee0a152bcc2eedc9a1d774f754d675963909c75bd6e297badc7328f84edab8315deec4bec3e3583ffbc34a700112d00beaa4875cdd127a16141d2fdfdc6e817b6b69e2a8c1a5491ac667bff864ea3a9cf87e985b85fd0f846f10002ce1120fd698db4d07804e0f13960da040a7adf9c28938fb40b726df4200271de122080fbaca751b51d77c0c2db03213381c4a0a21f2ae79912b47b5c32b8bc204ef23f30b3033cbee882dbf6310a352ae447e579bbe3366e15e98bbd8b4a183219a0ce3abdc6c4c2e553cf43400870161c2b7d4370ab13f0ff1ce1af7127e7eae9c8a23fc7997197c969552a1a11088ed451ad2033f4ae02cdde76f8df0ee3cb0826539f2f82f5f54f4a0b63e92372c22cade265aeb80f0e5f3f0bd4944d0ff1d11ea4028c4308a5ad0d64743bccfe80d296c912d0f7f577ed566d19722e602c174190ace531496c06c738dc7dab5d50fc08792a4437d185e8cc5572e001f8b5e7f01b9124597415d1c4b53683e474e4829a0e18ff93a32e8a1df5836ca008b0eb65d1ae35e65c14832f5478fd40e5a654f12726e639b15a070fb12807cd13eb4d19541c7c92920b60aa08c11d1ad79bb3058562a27716949b35ae5b16d14a42ba80e28c2c8a2697295d4de42b6e00cac955a432812a31a0695c7cf5c644d864f5fe058e506e9a520b81d15951b0175af88f967a4b97c8794055339553cd75a410389d77fa6a7ea70d8af0f5e0872c9f1c9139a1eee21c6562d16758f6d4cda442d98c99a38c8dad958c78d0ee3dabbd5ff90def86e8e07e3f21352abaa743de6564be181232f63f2c194e154fb65b01eea9c996e57821143d5f155c3c7265fff1e27063f7bed8913574f8082224f60b9c7e16f096c5631cc24f722b85aa60df7343c2b89e3c80db1859efe25846d76b8d59cd19e8e8640d9f049ada227338d82d057c045b401578ee92d9c8bfe54e495038bb25b0a13f818144eaee77c41d78aa10f247b40762aa56c9e29e8336e958e1a5cb746d1dcfcb8c917bcd9d46a9b83679513bc178edf8f2b62c9b60acc349cbb27e489a3631d4d43d4e5307c8dc6c0f0bc1e22e700e4c7ffd6a9c183a085b8e4a2d712a270a0878b6ae3f45c51a355cf19d8ca243c0341b5617dbce8bcceb06b8d91f1b3c276a289adc6a092f2492aa7ebc9d977dd96b2fa15c9c8ca4d9922921706680d19d2a82ca2fed1c6a4d6d3a8f768209a03c577db2a23ce6e2f18ac952be634542497aee458796c962f4e153b6bc8f046acb3588131c5aa444eea7d6fd42f6631aa96ac4587a58e67ff8aff4d9035d21971f9d6867a0f94e343d00fdc52e2316d849ba0eac16dbe386cf5f3f3b829891cefe2f06dda4cf96d3d916368ecb8535c06c61cf0405391caad68f0e098b106447bcff4e05fdc11de04129cc07a4eb4353b0db8d28e5916dde8465b5440d29a811cbf307bdb60a797756975b99c2990ffd9738040457db38ddbe3bbb1dfefedc2c7fc39c943ab4e0c13f81aced1c43e59caed37071ee646e1530f7d355eb74799247eb894683b5d0df15fab8bdbda84abb91b169ba9266b5b18cdb2759ed86a0c88ad5c1623d1df4f730d253db7a45134c336a706f130370a193d28c74f06fd4c65b305bed16b111d27d14b6318de6074752c43f6fd13afbe39bc22f3676083948cb912d4b66cfe957e6632ee5b8dd3c8dc3600468fed88b03b0e6febf73c5b54d3f99f75a0e1e11560f7c18f585ec251190b9850b320f5bbf8095bc572f37aff539de3b2c57d9a5186d9224a5d89f7793ea4ec9be5dc2286149d56894ca0a8c8d8c6da1c0b384d8790aad347c90f29426f9b9442a0a644d010215e1fc9c8dd2e2480e6b19425269dde23a5303dda72e26a30395d3fa59d6aca75b972e4912bc9aa8c7465b9c41ba234ae4d07880f1bae79bdd5367543b658ee365ae625278d1d2089280a8b9406d9752a349507986fdea8b54bc05c0ee0aa7385431603e36a09972675241508021d46d25fd52730fd561aff4b83234e6f2e8279e54d0a1f65a6c63ae01446108215e9023eeb33b211d8cc601fa889e75e0be3aff01f7832bbd4ec07726f8a78257f60e88195e50916d8056edcaa919c911ed062de1eee536a9a303188e8701a0ea4db59fcca0c9096cc80ecab07da8f16dd775ae54a3ad34606ff6bdda8d02c2141df524eaf2cbbd694236c2af66c66bc219c86a54572b8a3c6678e2a8c8fbca0069f3370f9e4362c85b593720fdeb795453232b843643d3422b35fec6339a322043a0ec4de99ea97b24a435727ce296dc1d8da816f2d9fa8d0a9a4244352f188428f413adf3cab7cc659ba30bd9c0bf1cfbb4b31dbf936982da55e43e5bb52c1b1716b11ee2e9ae922f29d8dcd81115977b127e38efd11d75f7cbb8a9e2ace61c43e41b9c11569593c3a64f72d52e737e2be0120b789472a089ca19e0a81d56e68797c08f51e00e8061f930eace4215f0391b945ab92fce57416184d23bb6b2d3a8fb169c56779fb0fa172e50a72efdd72379aa3133fd740d54b85252bc8c1ccbd9712046be154bfa335a6702d1cfd9edad8aab141388b7491c08185b5f18e8a380c0365ab1f9e9ebefbc4c6bab6f6f0bcf59f99c96cfb1395ade7665acdd9c7b885c887a361492b6900e5944f44c3e86b74bf6ba0f2b00d1a8037cac477aee10c346adb6a6cb346305bcb22f84407f2316af1706629d4f763474d8d2676e01ed69a141112ccab9263e7c6725ff3b04c95a1385be367d32e8ad70ee09360af0b6b35f8a8b094f974eeae7cb38d64db3c5f49fc0998ba2e0e340e435efdce750fdd829099005ced9f40088c903d0857af2b4b76830b94e68e9e6f0da8e384230f63acc49f87754c6c6aa8fe87ee9ced83f99e1c0b70fba0e72feefb10d63d6a681320c8de50954187e3e2d6f874ef4a15e665e91604a94811766ff9e286954923e9011b999e9ab7f2c8cd8a2fee062a206d1c84b3a1cf84f1078b393636c8bcaa9e34d1a1f00e86bb5418bd0d962f427b8fb1861493478baa80d18fe8cf2cd15e1c1622570f7feba29c9e327ee753290d72d26e433fe1399e5a1865b8098ec2f2f7a4cdf270b7a68e29741a8f2f740b6b55d85fad12dd0b4263adee2c2fe5ffd0f5e131e819c5807db8ae091e4bd2604571bf5440f9f4ee7f5d1be812ce28902d233789a5d777efdd3022249e7ea96494cc7728379e41fe0fc684aa5c6253561050130381bd1caf209e09db6f96020629b5c7decee7582b9e844de0456a2ee7d78c96cd2768ce79cb4bf0ac1122418e7dc2d259273704cc7b2ab65399024c895843a49857071f11c50dcfb55ba8b2f6c3f88042b07b5bd518542d5dcc782a95b4d569d687cdf8575c64d40b74bd07327146ef5417194da504888e058bedc2596b9f54685ac6fbcda1ab78166ca1e7e315b28f9565456d98332729f92530962f66ea53d6826484f4b80c4d13628f88fe81e9e9bc890ab502840b396d0b6d1de8918d1997f0cd31624ebccbec3138425315452997e8f79f8ea839a7dde6f9ef4d1bce40a1166fff04a1aaa0b500b03f7ac6770260b66c9d06aa7ff238d0e25cf8d33fce436f99620eb8c48ef319748b1d0489f9c21614de8d825bcf452a372690b82d8f4ea27a5dfe6f4f69f4efa0f0cfde3977550f24b62062d1299b93a8b2d20eb423b38e97f560a7528ac192a73d725c830b2c82f535bd4957b9341248f3809ebaf1e5b0601512fd326933ccf0fd625d322dbfce920045a54f5181160804a762d51c4ec18cb54529d610b48ca6b07d749cc027e5a2a7d9feb59b9aa6fa9effa7231cd503c8aaa88f5ee1208b7b6652cc47a5c9323ed9952ec62ce85b8502cc97713d86418db5929b066a08e9a6806dc30b902d9f003671528f072651ab9250bbcb64f3da4bf4a1ee3f5021e600451ed7e5667d874a535bab058aa503c7e9387eb9df11161cb363ab0febd0b21dcfd84ad8ddd0b5e4fc7fe0dd29ba880f529f9f01a20eb6effe282582ed52f5f4d82512814fd4c85a704246cdbd05d26f7504d1c9de309f3ad05c8411795b50fee852cb13e6dadc990049b135e234960e49f5edcaa69fec1874b93e34208330fe388a60dcd18b2015a8c24d93011c4fc2f77209cac6b5afd9d3d00b6fb992da48967ff9c9e21f75818918511b1b4cb84fdc35204700ffd297054ac9019d1de7ac449e74856b2503c626bc31acb7bf6534acd0ade072036841662627f3587580a85d704875f7688adfdad0a41adb603203175da96764e41f772825482501f9ce59663c6a4a756443f09e0f773b3c99f930e2b4b2f695228b31f21aeeb8aedca9884ecc8d0df6736f749a064eb77e27504da1c66fb993e9690a48b9280d368e182374ec479903a5948e8060c18f10f6fdc3b6ea045a0e2ee5ce825ad31954593ebc39c4c22c60d125509742ca949f1553674b3e057a99e6b587e6dfb7e4cf1d96c2ff54ffc7153647adbb074f23d0cb1aef5e0539ab552d930017c92c852e0af28b3a151feae2bacb2e054e73c1c508711fa2e7604274efc5e63c19d0b489063d8fd8452e89aa81847dc4ca8152a9766c6bc2d3e72163439a9df419979944023ed8214474d98fe6d05ff5cc057b665542fc4376ab4fb2186af43366babe025948be8d520755896adf6795b0fd679d2e10e97a297c3f8c7f704be07a05bcd7cb59ab5af5e485ee2c6c6a9f74bfb92ba1f1acfba2304c36116d0523dce223c9802135cb901fd12b01c180e9b27cfac79730edd450fcd890d2d3e7333c8fda5248b7fe2ede4dcd10b4ad4a5bfef8133b8a7b23e6a21c897b03984903a4ce39d31865d10d23f6a009f29bf3a8c5383fb6060d965250343ce94ad09ff2f351bd3e7b71e668605028557c8e4cc7406a4d7c4f044c8afc700a67436ed1c65166e3e209f7c73d1930663a7c56cf35fc82ff5b622af945fe2ac4157ac1c33c3c8db186a44c5409fe878101ab10147ff0d2980c68b5a0027b7d1329c9c74414847f5c7b743b1aa92039c457fb356ba10d6998ae8101fcbcec15b00dc0e9303893250af0a07f3d21e4851ea7374fd7e3f32a6a032829feb2edfcb72fde519a6c94df2fa8f3f423d07805a79b6ddec5a471b90840418905c6d202bfe430373ce7beb543d2dc8e8341db572b3f891d9a044f777d686a156fe85ca6a938b09aa446666674e44cda61563dc0622e6751ab1c6fb52cfd83a278e4e832e2b4e126a03760aef25325bbe0f0a61dd1bf20cfe252169cdc48f675401f35169e1153514e96d228e32c43c7da03751b9259225bd943bb92b6c460a892991931116e08698c9471f8b86b897ec4fbc56786718d084f14cf0b1a0c1abb2220115ba83be4ee88ac7d6e2e41cf0bae78129f434c86b60d04dbd62855b30b2211b435e223301c04b77b3e0d04ed78d0ed7f82ced0a4c0637c348b7dac7119b2c5c73eb9533844ee3776c94fc820318b971834f60542991a274bb3e6d3ec614fc90ac23f66a939322a6b6147ae19d340d7d748cc83eccff7fdfd7c4c231da6ddbbdec35824aea2b7a13d80cae87132a6081060b18e2aad0d3fda0fa71e88f956b0f80362033465cd9fa3dc05c7051e0bd1a9abaadcf3d20169e3546d83c13684192f1d78bab3cd4ed539ec1ad12dba8226a9521076ebec692fcf1e2b2d9180eb18b90a1b9ad2082e5f1cdd9806bb347ec7127f866a148d85f1766aa0e3557a385d5c9b6e91e5814bc01d872b6fbfd58f98c32e2840c94de169035ad44f9f5a19fc12e4a60cdba960dddeb0f9266b54903c78d10ad42008214c20271b32a6c801a1a738eba301db01fe026e601f07bdbdaa14aeba9a64957d1f04dca539ea7543f97156465efb518d6bab78f19db1c17caae8c88c3e55a237fc0c68d64955f6041332cde92d8f511d055954dc2e0438711244deda2b134a43d68231894a833bc87717ff166963470cc0f73c96d49a974881501f2c4aa4fc671924d056967a417a023d229ef830531e2de057e5b72b13ea87e98b355dd4aa59a9f0942a0b200b90f641f82c60134a81f9a9670e2a720f7822f3e83f3827e5aaccffb07c7526f773fe2a023220030ba8a61a2948e24d02d62922e628e2c6f95dca0aff54619a96b51279bd68ba68bd6701ba822c7891cbcb4aab3e9151edaf5a0bb974f5ed8af9a9f02b452e6910cca5403c2e0fe57e4cbf7fda18cb9c909b912c34024982982436d1e588bb24cd79c6bb753a1105c6a5268180325ade83f8285ad2ebe9570423de1a464e944b532c008c027f5d511fc40538635e3716f59d1820b1d0b4b64617fd8374095e89c201a8a8d038a84c8cb135e88ab3417f50fb14fc801b19f9544fec7f9d8ccbde5a8f7f28033c805480c287916ae4111011443420816a0c5414e7e8f3a738fc74bfa46500bf7b39a441f7fd637c5b40140abc06ee2166f49a646346122bf0a62db89ec7a5d119754d3605db7d69e0a6e0443bc4c5dd8e4127499528698ed43e14a49e1bb0ec966f7d580a949af193cd4141bebd42b5e21581ad04e7d3690736b9c5e442c29d34d8a567f82c50012173cafe9382eeabe8f8335aa1a1b9314c7524badf9c1cce6ce49d57d81f5124e55226366077bf71192625b47f769d8459838743fb4e8b8dd0d79f84a765189a71a4d2256cb6f82603ea20a386c9b763cb0c2035094508ecfe158910e7d06e3117cf843805167680e8e09c745126d2c53a43d2583f7d2650b1788ca5c10ae471ef23764d3b0928b3823817ac18f7f12983ee460a616b2e13ecdb2420f14626e3445e357a05e8a8db0d1fc37f1945ecec9d8716098a6ee4c4558581ca181d2f8be602eb242dc6e63fbe314c45b3d01054c8cbf63a8fac3de0b81abc2b303aef0c6b020db33d20acab32c633b89aad4783a01756c6079dd5ed31e0acbd76ea191fab9401153cb2182e3373e208cc211dc393a9724c622d79fb414d929176dec0a730ca4d262585fa6046faa7896987f15cee19a67411de90fbbb0e7e0a1311643e62257676d70869e4119ccb2d638c46e30e3186ce0670bc98712515358a7d672d3f6b4f749ad24bb26b0ae9c7418673a38d947e8434fd9f3f6ad717867516bb8fdad814ccf2d8679aa7df87394ce05f8d50f383053118acd407713d28c7e261819c2bfe2bbc3facc7bda9a4c8ea711a62952717866910ac6a041a37082cacb332c834235f044c68b79d66669c10360c29ed2258cdebd023c966f0e156dec8eacadb1300dfbd9e0cc33969645319af5e7a0e45b582f04aeda5a146e869030022075c2e8b780ebce6d779640cc43cc21d7187ac6dcef9c34d3832dead98a268147b7ec15e913de82ac8a0440ffc370e0f7078c1e266480fb48ac754467f89641787fe0b1a158a942759664057983b322a28b9092d826671ff7211dd2e64fcd1e59e08c26be81ab0ab1b26720719c4ca2f52f444e2da44e8fbd6d50a3a0e45832fe835d625edcec256249a4d161c4d106108f31f00013aecff71628ac43d2808b25d176e568285348c51373f9d70de676e6a2ab18b849e099f908529d311915e9f8f24b1e58800372c8b614434fd312f4e785e36fcc54528d9e3435c04a17ae430b1f677fa0004596102c13738ae824043470aed74d6f90fd939e16d8726c42536867f88b75914ca2eadc8406079f8cfb0e58e326ee83a98a6b6e99ab2d8928831e267fe882e361d90996026020abb1793affac70fd5041c922efd3ad0763890790d30b73a9d908c628995912580e618ab9bcc093d3cba583f5e8ec763cc4ca8afc7917ed566a4e4a3461687ead8e701db2f98e0f752413349e4bf2e7a2a847af5fab87bcb66b7e38e4834fdd2de4d2db4dfbefc17d266d9e27da3885bc2bfc24290d0b2890eeeff07daca95a0e71bcb34263f26e8052ddfdca5a27691e53390d30a78d1c11415e596deda5b80d883caa774327b89b82eb70312d6160d81162721ec4c0e24aeebe74dab050e3f32111c5f576fb28b6ee3d3e5f2c6964e0f15ea9d1cde5ef49af5b15ddfb5cb75e8e1981254faa8771fa26f99ae38305aff1e4c4a0c2a5eaf1b51b29a18f7713517768763d252187c0c6c91ccceac0adc6e459a160d328a081fcdce31ecf3d4589a91d39f18c4560468af254ebb4f5191690ddc6dcbd3062ebd6555e0666b92d6f7f424ab21f76d52da5d9aaa4c4be87e5b4e2b68dae589d8876901dcb5cc68f76854843ef9151fde6a4bd10a81064d24f6615a00772d335a4b569248aab4b312687f0b8bb64707aa109a36e0667b82761293a4840f12316586d4d2546e75aaaf28301fad1995311399fbdc7921ef876d09d6e85ba5e52fe5200b095085a0a40baf054369ad4d402f4c8a0bddb55549fc226c339c2d6937f92ed12c976ce3b311ea4eee52419bb325cb6ccb11e08ee6d5ab0e225e0a31337759d3f78f80ec93742442e987218772094a7e80b07794e025b963ace3977263d8e7dd8fba37c527392571aca155979307485bb0b125295e59ec1e19b7233cd994a0e55d67777bb837827b6b7d36b62457cf14d9d8129eca29934e1c580a4cd2bdd2055eb3d00c917f1ba21fe0a4a7de40834243c5118187a48c624cabc91fdf9a040b4c9c807b29b20350477a9bcc27aec9a1584c99eb607f9e5b5e974330e9b584ad2609154d4593e4a4a54fe05fda0e6ec6f05067baf47d54e4cbc638a8105b1223b45ea1ab07c25085b82319a3910daf3fec41c1a18f935367af60be6ff52e62440cc3f7c10730899cc229a94d38f874b2fa6b11e049b87c488d004c2e037c81646879de618c9200407c111fb1acb0f2a5c1ce1b80902f17c0c6383afa1a10290720b08de15444b07d02d3790310bcc3c2367886a14010c78b00e2259b589bb7350d3fd07960cd44c2a09361ecd9d70c7e4f4bb34bb2bace9221538cff2dba5eb71bb7809149c96378b3cfa3ce167cfbf814c1b307326f58d43fc85086b869d4329d61ac9e91c4d6198819b2c3c24a4ae9c80d58b5a2780314b9462fc7d8141cffecdc6857d388321f12642bded289dbd900a179e60f05e6cfb0bd31474fca4c7fb3529bbfbf084712af8c2aa2240173236127bc480a1dca70656c61c8df4fb8e917b4861fc651ea206061fee2273690429fd92784daa297195df7ff19f8526556e8dccabbc2faf09b1170dd6c451b628a7521f7a9408dba44f1112aea216c867282f694510a475a62d4785097d2e1bf07c0715fab5043a4e253eb48f8f27a60c8ba3259744b00e8cd4680a60600f6d1c4a5281b6a7b74b45820e7e59598971b292780c7f3af665540e1da6147253d90c4192d972d44ae1d13b888d5b1d0a1198d6004106569a2fd8fa95db17a281869115340058aeed756f5b68a3561181d93c57d60879b28eb22ccce4fa2b249c11480e241b0ac62b0226811634846fbe30117a26abeee0c5a77eb70d1d18e178d7d01328e1c1d9daf3439262697ec1313ed4f37e91c40e599cb2bcf098315a3850d9b7101ec68597b67b0f796b4364044d82b688a9b001bd12c4d527b2e865c5dca8f72c9bc7ec407e8a85747b7e16ff284c73b01b549bc1f84fb86166b20a3ab9be58efdc7a843070b9365fc007f4de77a2cd394357750a1e79011441398ec042ddf4609aa7f0ad1fd266bae72f54f36725fce0ad9c08a745ee5408bfdbee051247ec2841987005dc20a0524905a34baa9cd680656cb2229381ccbc21bd456dbe918f04e27da5f11174233d0010b61fd1f3e1e2574832be010bc4f6448ce4884bce41d13b2c0628f592618c1663020a49bd2e21c00bd920d161eae5db40cc3f54120d75343453b52f9f38b7628855a9493a02956b6ef04f7734a642ba57c0a6aa131991839d6f09cb9c709238c08328e0d23089b82fd48e484e64a675d7e069d4c7aaa3d8b1c1d288fd05c0230f6e15c023087f01432c1a803f2dad6d2626651fc97aa1d6d70baf86544f1c97da86938e0174d72003a997727d1ecf44a1949af2ef65f299cd9dcfad08d56ec8d9bfc10fba6633a03bf2bebb90cabac844fb8c59dbfe822695b0495e813a6400aafdcbacb9f93aed65d5ed1c7c226ef7989557b709f11f4be4e04c898ceaea0f0e3b926e2204f6a36a05cace99608be296494cf4c994f961c430c55de17e857fa7d104578c3e6d58aef482e68be2623560bc49a211d728e67ada398445f9a6f3ceb9ee977d3055282cb408e4a000d049b6c73411e5fd74ac835175b2a9af8e5e24c2259887656b4a22da1b1fabea095b8e239b22cf0a837359b70100f83494f764419608778416fefbfd6770926c19f4925558ab25c532510c53cc69f326057ac873d962ad8cac2b640e7f2e903b6b73f616e54fe80049c10a102f7689a901d782397dcb203871bb9c11d6932da015bb4f5e0529c83138f2cb3056b5e44c9174ad27b4c89800ba98d1945cd399bba28217104b8b5a26db038d51e36b0af3dad70621df2a40a77846d2e6866685a09b28078c7a64354e1b95becab810222549f226c31dc05dee384c54b8ba2cce95653a82d20a23ac48b0cbfce177c8a4b0ef32a34ecdb2dce2f12601101a5d17323c78d5e7d373ec20cbe4247a2ac21bfe298202280cccddcab16fe188affbefbe0a9db87263341b4efbc584f7e8b4b4f67df0ce8231b6e5fd30f2d60cbe984e3a3d00f03ed41e71a469b54a8964b45bcfb7ed85e06924ad154b86007358ef90fdfa0cf524074326399914a99c758ee2464e4b9ec2e65ff272236031a9a00838c184070cf6f1988c86da8e99f3155d37058ba91e18a384618e0211bf5bb6fe90f431b3ac89dac970975e38d32d2bbe71e6e78cfde9c415caa2a043598909ad21f2c07ace2b53a9141530801a55876cb2d3cec40b6ca1b12f164ac0f6052e81e9da98f2f676224d86824401875693507722db7f407b4c69370fcf648eb3a8a1b6d938fffee174eff4eafc0de5d9f2aab15f235699505dc5b12fc0574c82e06e8eb2fa03f92f94b7f10f08db87920c4eae1d46fd348880ba53e21aeb0a53ff4f269e22a4baa47779c25af504d904723a927630d39447d1ee90f96504728135403b2f2a00a925993b6e93840499efa2bbd8fff5aa53f8ccc1c32430f0498e0e4d9eb773b7899eeaff81f86071d9c0192f9afbe8ce45a3ee0a405dd0104ef1fbb5367eabc4297534d32215e532becfcb0fe31ac766c6a432a74a4dba6e3b3650936e375792c6215025665ea8cc8365bd4a3a25ece4f10a484eaf50f525d1c934fae5cbbfe210838f90f439ed42bc2918d50885d2c031f755f88fa4fac779cdf5c828cf9fa6585df9e91123ef0272d12657febb40fc8238b72d3123a4974ac839027287614898b68a281b8da24c07bf028ed10114947a571aad1ef19c213fc4a30f38f8fb8e24874ef0e4b4eabeac6e938bae464fedc4ba87744ddbb7bbad725f97e4077e37f50a97906ae75287938098b3c40952c017140a05d28cbe07eb89a0cf744bda711da9959d2ef09f17d24d030e2f10195fabcaaf34cbcec5cf989d6c25d44351c9147eb68cfa61085a64db5f753640ecf6140a4700c43fe473a28bc4142f705d45c545584c2421ee7f94e26a9690d7a5e88b4bcef1c47d47c5500e6603f39f457e01064b9435205262ca211f6f0a850d6f20f865e76e1dedfb19e8895cc7070aa014da944176db210efd1638478ac7c71de268b0a38ee7bd22259c5db6200df8221b331cd2b0527aef3e0f0412ba47c1204648152d345e9e570201115e16d76a1ac3409edaec2b39d87f9072462174877b639d345e84fe8b77dd210041255ba4a85b8cea6270a8149e8af269e6c38e72d353d20109c7dfcd66b3c38b4528bc43ee73f7518cca227684c2fc017dfc4c0ce799ce9a0737975da2798950cf31063c94b4ba9658f03ef487b30f17640106b951e660e38833faee62e7bcf23db07cd905f1104653738ca0dce01bd5834c1464c927c4943be7c906a5e405c2e850bfb643625cccec838b653308d3cd4f7ddb38d3145d797118fb062f65b66416d83a8ac1e58c8fa310bfec8c6701a21fbd61c2621f7a4ec8ac8728f3da00c7820c4d239383ba2d0001b9da23e786d7a106c562194ad94951988b188f052e3f00b509e469652a17a55b9ae175afed3aa4ed59c80e04794bf8703a241b36b304b3b76814a911732fdafc68dc92bd44406f1d5199cf0ad86056e208931a272b3a70ab383251b8c877544f4706d9ed511f7551d947ea26d18949280fe68f67923f54ae1f03fe2d786d1eec1e12f1b974aa948de1d8674fca9945ca38ac2b931df6cebc31af5f3a58674498e2e67953e377da2f16a16b1929b5dac80e8ba422152784e68a396c4edd7db68dfd405e1a747d80c47005eed405ab934ecfe0e366fbd3f8a16b3d8385d2a918e30ba62ff1475392e651553cf40d6ce483a33a4989782e3adc4987e176d2dd913709c5361764ec5c20ab310d3f56c00fd4aacf16f03fbe0e8931e9d4b2797c061be405ec00a5f6f5aada1a2ac0b8ef1350208e3e873cc94b52662e2147898864934623a14b31efdd717848838335215d87191ea35e386272373890c81e58913b6e62bbf18a3306dc547c3127d3f39968b32dfe476313249b4ac390c9693d2067e43836c4d2121eb0b87cbc5ce93d386788f766953cf93c3805eaa0fc7f71628dfd70bfed6e3da21daf8b8e7e1f6813fcae27ec8af9dd1689954be4bd740d61ca50c3503f6f639017dc4db17845ee0bd5a1008093f8f1c6d89ea610b760fc95d45aa2df31e82a48814882e2ca137975bc49ea3689db357352b85b7563324385e42a0f9df58143d9004656fa3512f94a2dc102b767e193dfebe0e234a41a5a3c97a88c4d603856d4282a33bb0eff399871c8215a252619ff62a83f1e9b56dc9249fdd9c2129046e5b0699a0f34cd401f26d9cff00d5285f302268b969f6cbb6a443aa0c40c5c07af280f03e2c3000ac049ab72e797a5b17d181690939055370b1f78a2759555e10798683bfef63e46755f40a80ff42cc945ef63cbd6d9733b76fcb6bcfa2844edbe024bfd3c13c28c9a6e976a3a3df69c7778ad8ac7398dc3f91e7f6e72e60cdfbee245a770a08716e7dfdea283c4fd68e42231bf66ddd70890a5cc7a3712c9d6ca26df833e11bfdc0cbe47a3c96ce2ffafc9679161774e5ef48dc6398255eba4a3c16c6d8c6e5e2d43d49b0c922189bba8ac4b0714dbb9acaf15313d2d7ebab540460d93091775980c221577edcc4adfa9b38b80b6ac107fef39eeb7df6694e61f8feea8cb9d24b037505d32385b3d6b157d02df0752b5488f2a1f1a511048213d20cc799d8fe81e068fe29d85141e1ab159e4cedb52dac3a846ae280327f1f4f5d7245aeea4d725a72a5aa84f817abc92084b374f28097150988b4518dc66c0fa928c91cdab1b25629a8999377c129469c7c8f651098c040f0578e2ceb3366430c0241c17629ff4bd2837fd7fd125c830faf06326ce09a309bcbb2ed51acb54238610e1f1e4d8755282c40b3e4f067d4a4bd24d3faccbf5e750993501959cb7240ea439881ed82a5b8a0020e398accde9ec31fbc38c7bbdfef308aebc0d9ce893317e9f19b54eef1280dab5c9f52773ce995fafa09bc20c23843fff5b66e8965cf04a3142ecb2906668f497c99802e35ffc68bb93d307fb8abf5b48d1f45a8ccd2a612be62bace2150b6237414f155dae9079432230030aa8722299bd0b2dd138878ddd3704eaae4b76f84d90191882364eb2d1e5d7bf78a9a3e0537e8ef11c07dd55718baeae0699fc80c7bda88654b7b7bd1bf440c210d23a739bf9f736af014e9cce54c7ee380ff006c7f54f0ec791d0e5111e07b5634fa5f8f1ea10fd53c5971703d42ff711c4a7aa5bbc9e4a0f8b64135aaf06185f44cbb83337d09636ba4c071b2279bf1878b99b13107b0d29bb277733e0c9063d6618aa5a43ce82df072159c7279e9611d18434c677f8f48de3eb69f164eee5ccf93875b9831b609855276bb97b3cecae8e27a4e1493e136e55df25fe5fe9a981f7e2b7df4262eb82da3ca128dc4db0c48e24e7921e8692ae14070d80b73d299729390076051489c421583934a3310436039f90f35c28803433815e70f843006472a5a08b5a2787d5918b950ae016fc2d076ed7dc14fcbfac2880a2837058b660092e884e179e2cae28b020a36d897d6a1d924c826c76cd2d8889ceab347cbf678b92e3bc46752116f3c33002a18698b920535abd0aaabbde222e4c3645ad57d4d117f6b1380072e7fa89ca77cdfdba7eef3deb67e7918555d8ad67f3ebd71a181407e84619be97c0cde9f851129a5141994a29713866dcfc0a49e2b9a89030df0036493f4eac80ba8e6f2400181eeb7ad097e1e1089f5aff844b6b7bb93201f3143dc076ecf02c4a42f5e04c787c8a0d24279ddf2af158cb12a3bc31c4971328516bd01a0ab7922b359199fa494c461c53c74ae2701798652d4851cf99dd09ce410753d4d94a4af755cb010e39517d0aa7bb2efd68f267f64d2c08bbdb230f474a9ea5109426c62d2b670879ca8bcc30f2746805079a079310a3af5f62690c80b3248aa62c1af44ffc5f4ead75ad306e7f5c6c1e136b6ad9bde7600e6f7c02071eb117353c613205ca2e52626d9a73b6a417f5e193dec469606fd8615a71e1e9c7cadd25f99ff503e20a105182560530da003040818faab78438074d802cbc72d403848c53545b926313039f24fcf92e6813e7940ece15ea1e2240e1d31323a2d719446a7ac276fa63bb90878d7b3123aca4861025d0f875389352eac8080cddf45601b1ea2f0fd64ebc5727c57d56385de3c43519410119c8cbb88ff0b5bfbfc19969b3f22f002151cea4a756b81efb4bda8b5d128f7f8b6a8d57fa8add5754e6eb262b80007876d67ceec342b968596a7699e49bdbda308245cb48551bcf7cf0c06106911953b346f19d0fede97c006bf7f594dcb4a7fe5ce414636fb105c4d3658dd1955a3d7f4e96dd2152209f62e5ae1e5536df46de2b8d8ce983892440dc36d98c6f97e2ff5261c49c642f4ef560461eebe6fc4811d61d94c62bf53f2698cf1b4b50a0d832fda8288b8f6a67ef9aa693cdadd7243f363c6a00d5d9d7f442c90872320000728cae9ec679679383df335f4796929e7ba24c5fe6e72bbc661fd801cfeb3ab2b7ba42ed0cc16b46e83e18982ca9896f13fb94de97180b14196c42f22df526c36e28e34f0c9532e46e7ce865f665796cfcc77c9e70802556fcf947ce4e7f76933de63032c8fd75460ab47c4072234d1f9f45b941e20c8805db0eff51783b21eebc799cd78896d99673bb3aa4169c8a236f6dcaf5b716c8496175791291f31fb184ff6260c33533b00b230062c7a2c9aa8b33deff7c8439b757b7cbf182277c193a1122b45ff3fe8efa8057d7df51ead1a6b1e1a0edada2cae95a58199b49a2eaf583b67c165904e316dca46cd3fca34528cefa92c4c8fff2f93d64995a74701c2709dab228a79916f194af667ac4b33a75df4178aa2b2663ebe78cfe93430e1a523549e493354d9917bf660117a2a52a899dec026088312ffc2886c5d513e8b91a3b39d5426849defba5bd681420eec0305e5d5b2215520cd40db2e73f829504084074dd1e985aec089581a6e36df55d27c22950d3feb616eec987002963801911f36da6e94ad2c17b5346c57a9f8b2c8518f8556c7a34726887018b7579e6c32030f2a3823182e6f78ea388940b6c66d435b12b1ee1330b7da0807b28886586fe02c3d8bc80316f2e430c111f907702ca275ed3c7eaabc87174d642eaf5234b1d91c5604c9652e82b7fa314523954c669bc95ae7dbda20ebdde1b76a775f85601c562c446c2f188c2d011715d6119b158bafc2e4c097354b496e58b1efbc6bb5fb052394fd6a66311043430505afe6d55eed50fff14b59409f70a53410de351b09c51170a037c0f81c75f4d1ca7a62c1896cbe38368870ea6400137b7ef0459a97877de9558902661f003b84e73550173ae57f21066107e54f94fad1ba8d54c1c67040a5963a638d6bf0b5ce3d3b7f1d004f72f02e9b331257419c7c0245b171cbd1911b8ab297251d66b41ea15b3c5b4f113327a523d09cf5a1e639a1e1f103ad612f92170a48541121fb5ab03206122a5dc9185d4c22e075126dd8b1423c3c2a737d2f983938972f3a0a3b43323848db7c6cd1b5566f8a0ab5fcde6559d6969c62531e491a9c780d2facb9649d0663dce6bf6cd328582a6ca6a8faec9e45ba1674e2c01a52ce72eec63af810b492239f11fabcd48752085b625773f98d0f7a6397254ccc26c958e9836a80cdc1c6a74d39603bee18ca0a18ab139a43d1b224fc1a293c42c5af0b0eb925ee185226262f4191c497c314f32faa83b187daba0f836f3b1460480c87579db0f8382931c01d1ffec5fa7b5992af10148e192688eda9b082f19b4fc7e047ee54eb4ccff0223920591f9e20c7d990956171093c927702a7124168f24920bdb03f76a964f4823a727fa00d48cd6ff47b1072ebc80032666e6acaa1a6543a8eb8cd1ff0214e918990f5bbd85e75f4602009f3d4df88debfdc90e94c854d133ddfa4a4f982a86f0ed2860f5ae3953a618e23f72e188ff5a93fac305cd31890023a7d604b41ee7ece85b8196c33f6aec81bb4c020f6cb79c91d8550bce42533818500c629acd10247ad64cab16fe056ac00805e00e62b51ba0c6d58309057feac21d8c47d517429c2c0cd83dc114a38cde071e3c9f190455379bea7326437f148284471964067577a836bfa7d25ee070c235d63832019364c385db1a850f0c01a6f10ddacf577b858b4fa074a260e0d47598410c3352e8445fc5b15ee1b30a3c38ba33f70f8187df0c0f3b097faf7ce4051ec00c37f35f6d5a06b8b9020bbb4af247fd3b8f11feadf19447082dbeab7216329177c6acefa80a447bab4a78ca9f838f9e6c0425c0611f1482c6381c251b7deb0db95062cb970419a85a60d3ff5e3580bc0caea99e5816f4cabc2ea27a47018724ca3302ee5bf34e071a0de973964d399403b6a871b84169fea5bf78c346e7872787f6b25dfc95b3e02e8c8648e3c92d84513952bcc226364f14a95027ec24aa67d3f9dd4b4dfb24f1b7b373f6ea98d66fe683c4a07add0bea7d4cf0fca37246c177cee271e1c99ccc29d8cfd5ea6e912d134a350b73bc9dbf93b24b2b7f25df5b26ae1a0817276eca2cbea146c8f12d22340d574205b751f404f7b6f78eb78c6b054dfeb33c12e14d79c95bd974348cb79e11a09115d884f03a36be636468fa387e1b0832861749ce6b3e88754742031fbb24feafe92fecca33ce3f53769648a2804a19f90b9950cf9f7f3cdc2bc317a80ea559919893cd2a0156153d03a8bba120bd03f42a2439dc02c5fc4988aa6622d2967ac62f0a9a934c22260c5cb9a5fe5e1ab9a01ef89e1d7308315249335a888b7e0adfd7204f93fcadbfc81323cbc2ad9d671ab2bed6c9eeed856cf81489e9a440b5957563bf14ad648364fa3104c75ca14328a1539a586d47551daa2f57fa5480dc89deb0b8a3266d733f472d15160118d8985da533a322e013d130b0e8db3a77cb59f67ed3bb1371ea3aacc2c6360a6932b670f5bd9884a019f8d43275927e06324dbdb07bd0cbb62be82485d6655407dea0b6092b159efd395591afe30fa025ebf8d2e6c06dc462679803478f6a9da32bb38ddf15051d73ac615e55d8167a75dda3012f31f7bbb884c13c10334566eb1b0fba09a3c80eabbb4c36d5cb6b3b4efec11327f2f5e7c67ab576e27f845a79d7cd68865e279cb7689d35717daa627306923a50932a8835916d4a2a177f604536527b840f6d1306d32032055c73b7b41106e5ffdafeccea633b41eb603e440210141b5d8c94d3778e6e883166bb22cba14d0a6b63d10a4b38fb48bce6663e312d8814040a2b3e34cfc26b53454b4c657cc5110c26d8d4dc08bd68f674605342040366a573ccff805d5fb34294ae660dda256c0b3ea9f4cd77386327f8201c5d7b7ac2f03b5eaf6482f5a4f01f8363606ce10e09a28217fde74bc4cc79f361dba93f84412e3487ad058ae99652b04aa08035b406d27d396f802b9b25e2ea951e9e55e31cf92d52eb2b14a1eadff5d60bded95002f58ba010bd01ec0160784f62616e7370dc3ec913ea86948faa865b46ac099623f0802681f82855bb2490cac2f3bb42b6165ee597d0882228e6caa737c13240fba65ac9cf6f23318cb7b52872606b374279f88e851249168239d3d726ea91fd0d944916dc41df9fb39fb761af75d8ee01046a8cad351b82d314ad9e5b21f1f6cc85c95a7cafb6bce663fd39cad34336787c6053757e66c2a0358c2f64ddc672a67779f49393bee173a6cb582880719eff02ee81c33b432a8002fc8329fdb6eb3c4a3455092532d5e43a0200030d07b16d98f18e52a87cbee86606a22af83b7fe3a4d583bedfbfcc8a500f4350e589dba40e8c281bdc3b2a5a5158817c7b30b3a631494f49abcf13876d0917bd97e5b245c6435e9d4b7543559948bf52d344b89d5d9c77feeb6c99d31b210605ad280e3e4dec1a5128476988a4639fae98814496b738dbf3512e409b9a0ff3f46f9c46ff6af012779f499ca6db77dbdb772576ef4c7c8b1816da71843de05bad964b716e9077ccabf34f7b3ebb6df834577ad421e5b38a0cebccd52de59422fb72625ef168b3200814016ab9f4b27296e3d600fe390f28bc1c20640e8b820689053d91d29593adc882c6f93348bb8c51d8a0b8eb79f6a5fe07c26e019b0c4b9f0a41eaaff4a153d4971421733c3bb56ec8d114495aa90f3aa0fe71ed093a4b7a063c2cee70bc4acddbcc8122fd9cff0b412a0b8d8418ed7bcaae31a7699cf5bd074e8e27c43453549a05c97400c7fb1eea7045daec069ed293898a188ba3ce178ed811c850c2f67d018e07fe0b9a92b9b5414744fae249186fc8375a694aa02774d1a55f853517f778270cbc6f3a6dd658714b554761aac1077f8e9f0f6a97e22b2d4e2bd2ee98ea11c8138fd217571fc4261676ce98e05901be640dac162d0b32e7f92a23c72a001f83779af23d2526eb36818a406effd2a52effc356ac7339bfa824ac13cf87f3b54986bbc2e7bf7da812ae17d66c5b64851a540db956731d454f8089886450d083053b7559787549e798abe1a652616b850d701b67305aa5630d14e78eb9654163655f088ac0e61808795008d3f69f800e576d787d0a1acde5808947b1fb43c2d0d94b0840e0f6e7c72d0de0c129d3fd7f089698b24607a9b007f7e012a0cf83868b40b41012faa4c2590ea8f33a02d94876a0075a4b36282da6615ba04f2cfcbb536b78f6fac10a1fdbb42a532049a24d1ee0a41621931b94b0a2c6b709a30126f3a7435e59fc4e4a566e7f2289dd0719cb2e19d918503a40749e4015457efa9a81b4d29b707148aba64e12424ad270f817c26c31a4c1a89e0b77a2030974a4e52783f8689fd39a9357d4c4f821064ad33843fc71ac124c49f14fa3ccf6950108aad2cf5c689dea907e3dde58b0918ce79833e72f9cb1318e208972c7c8770dc035538979459f7a72e97203a7654d09b8374255d752ae9249c30f2e3f9878353c888585841d167ee7980382ef0e03c0b364e8d5f6b058450424e2650cde441fdc17f0ef974cd99c242cb1f47b7326e60ec4bfa67859f077990fe4b50ceb7009e5b6a17276664a81b0adc297af269fb09d481d2200ef56560125ddeece0933689e89e2d94aa1f3eeb1648a5c66ed41680f5134d51dfe3fdc297533a66059d134f19fa9dc9d4d5bd47ead967aca67c8e61eba248d69f269fdd190b5404552aa4d1a91117cffedcc49b0753e9b8883f30c5f8299c38a37aa32e620bdc92fb031ef3d4de4721fc65c2bfa9e9382af4a3697790182c43c5bd9e2ad255c14365c95e1f02857a6f1fec6bc61414cb2dd31dfefa1f8e16491dc601da5e3628eec76e9e29a623a8ad2e659a3b9351dc95228a0481cb25592aa3fb332da12f87e1143775d2d4029c9006850a8d49a62cccf7fa70f0b34cb14d6a71323484d0765ba80d4e64bee5967bf2c5168663f9475e78c06ab4f8a8fd7d779218fd8b83236af72827950c427d122206c5683ce75cd8f176552e9d61c1c9a706974cbd3c0189ac1b00c6662f56594bba3686541158b9f92568de832c8bf29ecd3efa77bfa30b4c12ad69d66209f43d6d64201d9f477f816594832d1b1a62a53009f7a55ffb3d1c321757895be40c09941cee5f412a8de1b80b7af7c2fb4a5e33535d156a048a97a52e7a0aadc4d687b2b7b80d9f07bb63d0f08acfc2971dd64a29cb0bc703688241c5041b16c5455c707d47c2b4813bf8caa24fe50946ad406f3939c553514fd00315cc796138f8c50a8ed4390ddb48cf1334f89cfdf1454a4faf8477cb3b39aa1037d536a89f5451e6bc5cf5cc7c8b6f83a4bf06a25d43e451a52f2c792c2ac7057fb2c63c007dfc594edd62c1307d136991381676b8eed4c9e722e5f3554671ec433074c15b5fffec730d40740c23a465e4703d3ad180370d3c2725432e65567820aa62dc65f00f0f4c724067456b24308c2f92fd0b749bae007e7b6a253e124eea403a9e954a821a7058d4ae3284ac6bd3aba9690b5a32bdcc1ff64dcb1775350139ba3a8204e80800589c16cfea3a01301d979cf4f912f956618193b659ef9ffc11c8f2f385ab7fb029698f14c815c858fe5d0c00ed20a380774c3498a504f30595eea80ea06be2aaad0c21d066288e4034890466cbe2dd35d234ddbc2b056fc7db54a19fdbc2c35382cefe5026a647cc6400941e8c7bc56fca7f50d58e5004fb6721cf3b84d956be2416385492ffa444d0259821b60123afa6d43e7244d4eae81b3ba8e168f28cfa93b426dfac9d1e334c05db14328c57a1f24cbb1df303126fa6eec8be19679ae13c38a8c63f03d2de2eddfe0cfe9479a7042b413a8332976200d30646745fb770607ef1ce5ccd393ddc5fe3e2b80a94155bc04861d32a0f791bb4344df8d101c760d97864ff2a02ab10bdb36a667a7941c95408380036895434106d222528fdad5a9882c57bca9a1ed0165d823ed541253d6d562f370d0234a7fb515f6c8d2a9b648077011430ad36d38a350f45008b564675d9a9b7251cfb4940a1f4c8350dd4876d854e292af5af10ed174388c3cfd9733e204aaa0ecd418b05df3b1ef92d5fd770e28f4943ba04d2f78e3ebaa6e1402192d58bd80f621dd9c74e9641c82d16a430052d2f0759eb54cbbdbb7341115422b761248eea14132812af46caf167d3a0611759034824e3d17242403ca66d9beb5e7095308e03ab8cb927f16fd70cae104e597554b65ea06068177285287559ea80daf66c99cfa149afb4cd6a5488a526a1bd00a0e87128c8bdd120a2c4ee7caeb51e05c989b0c88853c567252feb800c00556aa57617e59db4fa6c4823c1e265a75ec898fde09a5009c0b05315cdbc85a5cd2778a610dc0c69fb6b74c10fdc606b9c8d14a4005fb90d5da83ba4779d95f225f8d7159d40e60ba44a5f662998f0cf611a0558b10d209f43d1905306af0a2ccadaf6d475dadb253cee60f42b06540447724e5ea0232a9d40c184dcb485f82377a450f9e191d1593dd638c116d720ea4c4988766b73e096941e643fabce970c354b3981f399d60f55f888997eabde3e6faf86cf89319b5565c611cf05a7341014bb90c1520cf173539ae368cd922b71168d24a5fd4b84cf6115149db78df78d676506ee7eaf932361a7dfa85cb4af534cff2a510409941a1e56f741fcb10882b6965818d01e5411f93a767f24a2dee7403679de8ab91fcd98cfeb63386707f410810d95d853d993ffe3ee6a2cf1e4e8c32b440a637ac993a6048aede66454768e2681812fcf4d4045a4b0b6f6f1b07a2964d36b95ec808ca6d9410946a445029ef4545b4f4c969341d2327a701f6ff6a85f0c1a8738c1691b8697beb2ccbdb9940c76bb974156925ac4ece4850fc0d7d67721fc0813392cf42b09d73c78d4e43ff9331aa3a3695901a523d404dd934d9ec5c2b6af5ee16a7823285e94447b392c4e2d6c7983fc5069a66859d75e0afbbc4eab3d75eb70302fd89eef00749ff2c5468f23bd697e63fe126dea33cfa1ee51f2c5e568bb34559d71095630320a7c09d1b945011cbacc6622889aa08cda709d687f0f8cac908368801cc02e4827535e5cab5dcbf2c77c01393644e3a066b8c00d82788dc54d8f0cd441afcd2099e871b1de797b8f8b6aad7d70537c880afd6880c6930b190d907137c920e3d79406edbc75554cc04d5431cc7a7dc179666095990c23c164e61328ec33aefd85fa0d49f3c8bcc19adab3d18cf59092f5370bf59313f9d626a5e51880b4a1bd291b4544c0e5b44712f6c250d0111190665ec85c3dcaaa789e12292a4098602c711c823c6af0bc5ccbbb090655d7d19c115c7090c70410505d3397f8382123cbc5faef6442d32e505fcd198cfe987abea8084b938237d35e9fe0daf7ec6e68b5222aa03be95fbe3985ea7de6410b51ef02df74825b6e2301449d15e1b419b2ed8944ec2d85116f2b3f52df35537dbf7ff2dc9bf6a4c25b53c9acae666e30cf75bc885da203bd881da42cae2f01c6d541d34766591e0fd4418ef90c14fe7763c6adfa7034684433624b65f9b28829963ee7d95e0c9acde93fc51c77e282893a3367193155bb1780cce42b0ce19acff3d00fba4816caaeda5287e9ea44b43e3b323ddf63e91b125053c17569e79a2e898cf2fb3c570a77944b9e6ffc4c2641daf6f3947ff210e7710a7bdfb86d8d14b534200155ae695cdbd19f421ca199e3cc361c771ceba3e0fa38d4320fb6603a3671a85297e7871eaca8e3766921565046f194b44aae06ce63b67287f6cc870f40e16ae765c3eac5cbb412440b8125b9c85800a457630e85d40a123dabdab88d84ea07a76ba6a1f62508a7ffcdf5253bbca5c343f3819a5e74563712f38003b216429e38deb4906184efbc6d4278b13acfe9c0629b1fb71bf791d5d9c4eec75bf9bec287390a7e0d69aa5d12a1c4ab230a64182e80468cb60420569e752c45e518a697d5c5a15a87865da4ee7c474eb3313947b3296ba6eae8bfc448afba57f307a40a7fa3bdf583316efce249249ff8f44840050837bc2cf785a7e40da4c28eef3090a7db3af09a2e0bdec8935e54bc5a4a26d2ee05ce229f059771b31fde6efbe9983ff4495af72f5e40729cbcb8636cbd1b6ad23c8683e0ac2832b1870602090fc1deae5854062d2fe92c8e34090e5bfdc3772381cb7b6a92ce12b30bcbf79a6a07915e75fac410c7e8258ba7c76878a769917021c34c862d3a4f7cb0fc4750a5e33eb3a8d66029511b1a439f6848ef268201a94a0daefa6704c7202e82eee46da06ca88f314b7ad1af5c6a6932b3ba02eea380dad8b0ba13f1baed3eddac12174e16e93ccdaff3af4b06e627b5a01c8f0533111167c5c5868e9a40d5c3c53e7d6407faa9e0e71a0863f3d4db4b5fb0201459f2c364525cfb6c877692aa473613067f0083129a3179b0f5941c1d7a39069dc49ebb8b4200e77e85e8e5a13da3051c9b09add813392cb2b5541685ae2cf6cff7fa52f3755c4add95f8d59f806d5a961563eba8a41626fa384df7c457ccbc87fd0bab76f4675a648ecf160aa0c02039b09f8f1e5bc05301d5a060b08e2453eab47ff09b88a74039d0f120813db66e2870ba2320a4c09b95c63861a4efdfab9450a895d9ee973af47e841f2c41f15b850519905fb9d1730c9868d9a79303a3f95c357ad48c43c0dee5a4ce277719ff48ea967579f211541c937c5bfd2deaef196134183168175d99c6dc341a880ac66726741a4b7740f7e40735a682c5528519010399222c450f25591848a91194138f5696d3235d2a133dee0dbfc98597de4cad7da24e880c14c517d73944ef80853ed6a4f1bbaa30bae398c851ac499d8e04c27a15a3b8331ec494b8d7da03492a9f7213e08ada55983d5c0a455264b04b1c27014882f0c80fc45619867d6e9a17a495f3807e6a9c6c83f1dd0369ddbff318ea2e25b725d35a309b249ac381e82901f014a4e18256b676e21ca602628a3fbb207dfd5c8b7f81c8d8c5a798aad3c6be6408c4e62ffb1fc7732f64c9bd8283c16406e9e1a3f19636b84929e53603ad2d1323f6bcb3988eae0b1bf1f104a85203da7a94925b1ec078fb7738cea110aa39dabf0585536580cf53a6f050d2fedda4d868b88613188696fa1f1b80d32dc161da3f56c7860bf3be37cdd117da1677d677b17665d144063619e07d88ccf11f9a9c96d83a2b684d003a42422cc9805f440f3bdf61eee9c5645c35385e07b49d06a847ba6209d7136efab29b38caa3ed7620912e9d3a413555e8c00b9c41203957ec5a65de259812a8fbbf1c39a98caf1c8a42e9e9f1272ecc3b9e0a3e89733214fd8fd9dbf61c3951109466ab08d64484af059ef0ea342eccf703a044cb8216a41257f5d98d35a753688445058216e6e96ed0df497b6546150c300952c236fe8264a7ec8103459c2e8e9c227227e942be7a511cc363b1df85e2df318074c20b92a661d1ea5c83027854c11a91677525686c9ee961db91d082867c8b74ab654cc82123b30fd2fdd347e20af0730add21dc01c8597b0be2efc0813c2ea6001f4f160b725441687b87c851cd57b120d79923c7f61e90187ad57257e540c32d6766075cc7a336c62b339ecae83c84265e35723b7b90dbce0f1758bdf48d4d244686fa516625ade27f52d08f306f607438543660eca54c83e908a5359818004273aa821cf799431ba5e04bdb10f74050c564f47470acdeeb730440c1c6d55cfab8b9fc829f750dce89a45378aca6de6cd806755afbfed705d5cd9ee22f89de096eb354540539163863ed7bd1b407da221a19aa626064d5304dc794bd74341246ee61c2c8a6270ccac16388f0b208011a32f4421ebc71d4984208552e6301626c608d1d0505e37d83bd2a96a6ee599af870d70b9a60040894265320b96fcdb8a50986794f5e38ccae6b698241eabe96382876bd464d5e7151aaa860c025e6fbc276d0599a76a90fe22558b821a048646fa4441fa4dca42d9e464e4cf052e78320b7d5419cbbebcbf4a36c5782f13ea7c9d049bba7a4d80d01e88327b386b02cb5e9323040cf0a7afe22380aec1e75ec8b58436449975aefcbf13d3a41b8868528c9e72b3d09001fa81499cca5d196753b5a62da92850a856515568e72dc51ec0c2e85ff449069080d7d8fde1ee5f2bd3433e06412bd405537b5b130ef19cca1c315d14f02be2430102cfa48fb8e27a8a87b0fa2f37866e9f23d50445944a69c6ef9a8b2ee6ad8cadd570a35c3246dd5fbad61778a4ad40652279ceaf04e3ee42f42956c6bf36cde4f42ebfab1fde5dd4ce6f1b68278c31c288c31386c1bd03583d443cb17c87d75e7d69b456ccaf94bcc08f8194b53ce34b2634d80fc73c9c861e1bcdb3e8303c86f09bfb970c2dfea3a935e8495bb8d4edae38540bf73468ab587bbd05d1ddfac242de1ac4289d2a18a5f97eb3af590bef2ac5ac49d68102bef87219c2e50402ed982c73a6251f519ce44d06495424c9ac4f916e49f8707b947e11e4f0a3d1550b087bb7c403303b5309a7ceba8a31f6da7e4d35a57db8e1253f5348c293e460cd4f4988b7ce322c017df6c1df4172b060ab25b23bc50133b4a128494450683d42a501df22f1e730fa471f4a43a4c3bc843c6da8a7536b166b033310d39c50d8cd02f90ba07d0e64f1db07b570ad173932b55715b83bc87bfd575e83d6b5532c6aec9b690f76b6279303b8ddb42ba5f171d8f3faff327fe1937f576abff0c761f52c8be4e8e0e5b005f275c602b8eee3bbd4657a5281c937a5b50ee101417c4417c3028828f719a3e0cb7b0927b194141b5ca47ca94dc19294b8e0f55df10593404df0fea103ec86a86cd6c18414d0df4dab9410903e14b56556d3f829235eb93c83fdd3dbbdd01667fa698d1c695d6c51eab4080d8d9b14750d9c1f0a54a12545903eba04c1257703272aa5f372987f2164849503c84b0425685f1b19a6d4fe85163e2e20880d4378363f2afdcab7fedbac58eaeb9a1f81424c663185433f00d05b3b7f107a63dc1348c4fa2e65c241d110d83ea3d01a139fad1f9224ab480f141b32b5f637ba224181f8d5a83cab6b19df7b12a6ee423eb0ab6dc0a0af8601a4edc5d791c1f0b48ef0639373aa3832acf7cdda3696a9db73f6282a82c5464a5f91fc0e8ec304f28e0a21fe483443efdc78362f1262dcbb229f7cfe597e4711d444a02aab7896156508e58cf01c2c08ad80ba7c05116cec30e6e42ba3091a2e096156155f844f536ad1dcbabbaa4383dc2c8e911ff1e7308e278e690e3d9675c02ce0ac54cad6b3a099461501109b834417531e60d9244a694524a524a191d060c06e3051a8c5a3821a96afaf24943472ae3842ee96b4d8974591b0e87d8379ca08aa45e89a6f77d1f454e11fd93e1dfe8d2e8aa947a71a3f236a2647448a188025b13a61e4d3d4ffdbb82024d6c36302dcd0b536b4896111aa6aa56d8d1e448c9c8145d282ab22bf2c5b8c9d014c563b7a49b2ac04793c998cff1d164538da39034f53cf5af8a9c3d3efa7487f5f1479feeaa52112d970d0a133968567ba947d57e8a4cdb6973026d4096a4796b4c174e412c372a25a97f53ef0e53a510d4a324400016d65d870c33cee8d2d0b227101e682cf562e48158e045180dd1d305ac0e685d2c3a8c81105bfb8180e4b00287a54ead0d860278dca0e4be3ac85c40a7408e40d08e8e8c8aa0090079d2e952f9f5d7755dd760d418dd5fd7750d4661fe51e5988b62080d27c2540cd1399de5659b991207230f4018c827a74d86f9d466a681b1942ba920669cdb4706154b24d2824a689595b4d040161485464cb2b0428bcec84c0ce709888c830e47c70b4618ac5658a0a911422c86c5a8e314110403ea68ea02d805059835652589c12159c65af08c3b8e5de879712bba2a5aea8d33066977c846d916538e0f87102f8ae2b4d80ccbb28967e755d702548512d0147800c3416aba6a7ba661457019e084105106c7610808f82e8bea4e1cff09704521816207e4978fd51d1551e9b5f333fb33d807c09eea9624a25cc4357dade8adf7de9bab85bf5e793fefac33c66daff2c51e903edbc859e4a3ca35135ffda8720d0d448b753ea1c2aab9a91d7d7dad2889f278fac502b2bd9b24969b0f2f0f3eba244a33e2f9e2e0ea7a92ae2bba8a90a85a6bbe811cb2aa6af2e8e967df02e0a34f757bbf7ff4c94e890025c03251b6410f0d2e6fcc0b9d5af1ec4083cb54135c09ead113f8d002b82892bf1ab8400928d63ad33857aaee88647a2fbed63a430755754a6e403d5810f8272327c221cace5f3dcf5f3d57f9479728361cc5e6a757603ff79f73ce04f8a8b2e9f23b3eaabc9212913508a46c883a6b2b9c21e282806f478f2e0b228e94e62eb0f07098898379d13250c6a1f89c427e824a389708730fc4204c79289f2d7e187c54f904f1f3795ae1c82086a808860ed0d051966bf6b16fb9303056b31c91c226d542eb16e86c39511ddf7ca6461840e9a43280ad2b12425a19728a36402db3aa9c69953a1ffbd675810ef8a8d2298493dd3f7131a0662b2ff450a4407d7138b2608fcc8e9f5da075772fde7696d29a9c207c747914faed4797c79d222d17e061889121940337a385d2c52c8b317ea8485c687a9232fa27ef4f7d9af5d327a9a01ffca94ff15cd573a49f5523f0b774f66ceed9a7fec529160ef1afdf4a5211a6e8ab7280dfb5064d662c055a144e8af5579a2a2d2ce38e86b592956fb9faab2ef2a743a4c6dbe9678f57bcb519064d69b0f991aa0cd053d10143de50565b559e722dc4950a9c8e66a038de75d5a521ebea93cf99aaa17fe2eea010bd877c789706b0c1de4b2d6d2290502574829454796e3ffb9f9b1cd0a1998143024947436b0998d81b3b83217b56959cbcc79b9f3d5626877ece563fe76c0167ae83a10b681e32a494e4ac33c6caaa26de808f2a9bdafec6479d8eceecc2044fb899bb9aa6124a55167e6830ab5e5260cc5af0bc6aaf9fd3c7bef5cb0f0b4419aa508a6c4c1f3c22254c844ca9263871c94821a6f5288f412dc618a3b9e6e38fb16f31c65867ad895e72ee47bd8f7d8b31c638e3d57581c7b5bff1d1e511ec9fb8acdc46751eca38e38cdfe58910f828c58a22d98f2e4fc87c8e8f2e4f18c30ef0e616e20dc5db1d73cbc47ae2c154bf9211c6d6c665c7b78a27f4bae7b2e1040d0d2a64709948fad8b7521f634ce2c2a8eaa52ac4998912acfdaab3ce1a44c718e3eccb3973edb0463c1ffb16633cb2e4c08f2ab7748affc4c56c3eb4006ec6dc5d27a009d0eb5015b63f638d57bed714b419b8302e30c8bdabb63887485037c03973cdb5cf396b1464dff293f6bf2ef72af0ca4d7d8b414232b8c009b6f0778c0f39c2315c45502ff4afcbd155a469414dd7acbc89bfe5872b7c00bcb3ce3a13c57cec3127e2f0b16fbd701de28c31f6fcfd28d3516d434f57dea522a362bf62ecd3105cf73551fb56e50095e05108a49f7b97f3b5af3d6e5dfcd1a01ae56afde1ebf56badb50e795561fa5317983faae47af14fdc34254bc0174111d657e85f097e299477b82a7c87420d8650450c84df5566237d85fe95e09fead60d15f5f7de7befad85c257f8d4449268d1482a08108109a99f1001e190c4ca3861047f74d961ef9f4c0840b2ffdafeaba0da75b03e9f75db79b3e9e37befbdd98ec271ae7bce28c7fccad8f7ca8abf3ddec1ddbbeeba7730d3bbefbdcf7ed87d5de07ba5a6572f76f5aed007854da1dcb33f0c572bab0cc128ac963e5c3970572407d79ef569efbd37b36773efbaeb2e02971c95acbda1a595e2c612e8e8d78213b6d441cd3148aead640f7bc866b23afebd3d6ffbf65e15a6ec157315a9d039c8045598fa34a3550d27322289a08d45f4f7f65ce86fdf62f87bef13776d52355c8410a154b2434686aa105b090d27289d301088fc7533ab6aa59db3bf0a6a1110ccee395b117b5191463f79910a4c8e3aee193319e70c7c5b56115e56a3f32ad55c3377953caafb5239a9d4a89eef504eeab5ae62563557a6133b7fcf94eced81ea065bd85445d0ffa7ba5411f49f700e3ed47315413f66914ac69f3fba34f2f04f5cdf26c160017503e5e5b24c2e9186b6ca82660c0a23caa2b3fa7d5499a5954556d36ebdf56edb03ba9570b3ced885f051a6b6187959a7b7d2502845bdbc1115c3befe1a56f6d775a51906a3caea0ac959136635b6cfb2c61963cc3db0502c40014d5454cb3126930955c502d20a0b891fb023a70f97cb51de574f13849ab2810c95231633b532a6ce410c4b7b2c56a45043da80bdc2f8850ddcc6a09a3338c4358d31c618639c33c6ae0bfc8adbd80d0b83ac59e70ec2dba48ec15a6c5d71c61983b5ac2b589557defa6e4492f10d6b0c6d8c69c2555130dcc4f060c55223369475d6b92d0381c08f32b509a9780363130064d5662c9343127aa3e1e6c3a1127d21a6400075d8eb60c564e19ebf37b49c73ce6f586cdffb89cc59b725f70fee87f5f9f6c64799dcb6369c98367a071fe31e86e3eaacb5d66075ca30978f31c638673037160c66014ab0b2ed6341c555da0aac1e993c117b3f59329ed896ca3e78802026e2c5880c039133add16ab96d2d7d50b82d35352d316f5c18d7daf43cb0210ddd90c0697e48d138a43830a04c9b80648d379b310c3e284a1f72561d792a5459682d4aa8a570bbb041e788d403936109f1e0c94e0c2f036f1ec4725ca49a70e472bef6badedaedece7db7aefbde39eae8f498eb811e2fa98e2a6beaa7efb51a638641b73870249250689a2d8cf4d041266613c1be430e8d891987b010ae32026b322823d18463560c0c83b5b02f9a947794adc7a002c30080d99187a4389d1e3d028103d6629284f0e2ba4b2ce3a47f50ea2b3d69a98cc3a67b5f794e0c1dae1b19952828911b33e86f071ddc7186350e3acc6c571ae064609c619073b7a36449b3e92a6bffa1120f18f26893f1b5e16c2d4a3a9e7a97f952c9070c36b021361c7c602899d0c40d7809fab98115d68cca627ce52703eec24638339f77308671a61bf7a8e3f9a641e3b11dba7bab6daa3b0706aecaf410dde292c96d7bf12de9583e0d20ba9127c83c1a0501549fdd48aa90fff24b8b31c13c37aebada97ed69962f122459a9a595ec9c90b55e37af819e4671a18c099f194480be24b2e1399c9cd6a557edd413925a158feda3f9a64ea7523514eceac4a498537830421b28ada5c248996167062e8edadc4e89015e75029a632bbae1d172b764720a99c08d2beb8aab05ed2b2d41722559b94b32982a378a7462cf47442c4d461e8552e13e252a09e3d2eb8f43cbc485641e50e19a8d64b3fe396aacc03886aeeaf00f828928ac932c43dd569577f5dd71ff4c260c6e8d25f3de67edd7e5d57d49f08d7750509cae048e142845e9806e246f8fab4991bbc7a101f544552ffe0a34a34b57fe25fa686b666e811b78a35fa89ca29adb0f0883038d9d460886a2c1f462c6bde3cbc982da5f0d0c6a12969022723a9e7a97f533f447f698c13e10ff9a94779ea5f5fca62acccbbaa3d8ba37008b073a9ea09900b861f25ad14b929275786b9310026eac96384a5a2469ae4c039474da9e59c73c6313ae3ec2ae59cf3d40b9f57856970fd9241e28dc5531b916d0aae454ee9b96d69c9231171ce2546658f0c270c570efc5a43a64cdbe90088a86887ca04066cc3a5171d3a1d0c2d575e18f42b0743a71464d15239896ec45a8c129a083c17751ae9a20650a5d1c0979587343aa2219fdee57c4bab1f4c72755caf76c85c709651707b2bc403b538a5c3b5747921146383b7ae20a833af04ccf8bea02142cfdc6d79ebaa18359bbbde03fc72ff4af06a99c37857febabc7593561110dc577e6593559e425c45388ad286fca6c1e085665083a030e8a3e14454e3a08022d4ae186d6589ccf60a6a948c4a2caa289aec394750203a391cf318e73ebef111d2cf39e885c128df34ae18796482b3190b7149d34a45ced97d812e6e6a32ad5a1ff4c3cdfad2ae37a0c546b06c885b3582571833e2ef98d20faa950094c05d1215f802f1851d15e7827fd858b0eac6627e4aae9a4a306e0916d27d4b9a75621cb84fe734c4dc7be73b4f1ffb414bb37b862f73ddf7eb025f9d96eeb453e72bfbd0de15faa050c7c975ceae7f5de0bb83dc4f309882ce7148b4c1afc391e18491e32a8256c8bee8e3a1b9ea853e98e3cc3c29b86ba6a20b8474a7b8ae33751d39c435028dfb6b756b230700cefa320727050e6a6ce636655c676e4ceac391615ebbaf8308fbaab50d96bb5da10f0a8d5d5d67940550a39e637ef3e4fbb8e1feecbdf7eebaebbefbdefbc7c5de15faa07043533bedbd6d6080ebcd4f16f2b0fb50bd2bf441e10d13ab75a47be3105711d4094705abb3534d17ea3d850d4249b3e3de7befadb350007799ed1f2c584537cf303d9a3860981d256c36688e2e4b4ff117f3c3c1b282d31a37ea627c5f3c146a9a481d111c28c820a398371466ea7466d49c565a6abae66c281485d460347415812f8518a60ad30d8d9a93ca914683517d413eca74b314c1c71de60cc29d3e7879e4dca2609a028833ed551eaeb50dfaa07702c1c6aa64b5ae70e9578fdb908f32dd880d370ae7fad7b218caa06bad65387d326c0ab2e89066e4c4cc55b5dd75101faacc0e92da114bf3a14ab2c8e9e06c4e1ec457248b17577b57e8834219427b75abc939e371f0ad7b06be47add7b716a31c73b6963c22e79c33d8c70a7cdb8ab86a436d53d35823975400db9022eaf45aa88c5656f0dc52b21af382180c2956e4e272d4f81615662a73025b7825eebafad7be736bf9c1cf5a6b4de78b10b7b238f94c035d3d2284658819fa03cff8008c7be4b500b73a806f7315413f325577bd2bf441210da687bbd41cae7f5de09be7d4bbfbb916bcf3ad37bcd00785479d73ce39ef3e87c47f7e069343caa7b77bc40d229fde6f48b3c077efd8ce05ed8ee7f4ed703a23bbe63cb761ef639f4bf1d02ef0b53bb363eb18580ba1f50269459632e3678f5b181e565c99f96932ae18e2bdedf25dddd65878bae3921a45bdbeb12be64fccb496b4a6719d73c98ca2d67a383261d89bf69eea70b983c738cf75cc5e52d77475935c57ce6ec99e1a31a66d6a7bb27aebad73ce39e70ef8f0cc76aee2e283fbc1d5b0705dad994c8f7bfab860b85b1d9b4cceecb8629fcaa0e3901c0cc54d16da423158ee476b5891192ca54605be6fd86d43c953cd295322d79441fc4c33283a7632aaf2007c9489a64645f1be964d914ac8d517e27255c84d72ea5ee2df1ef394bff7de5b0250154ae02ef07d3f8a6c01038849b89cd7394fc8507001c74321eb872b87c2d611899c61d16a518bdc4ddae814e59853d07aae4e44c71a0a58cc5504e5245dc50cc3bcf9af828aa283f5e536aae9db2c0a6240e5c95861d41281726cbd9c5feb0ce8d698990e0a201ea29bccd11d0cb8d65a7b3533c8af42effa5a6badb57681c930a3f6adce5a2fb976e252e1fa7581af5731ff2a64adf5bafb1a43476bad99d85d9b5f6bcf5badb3d739e7dc656441824e5e6f0f541e089db6928cdabf5e5378515c45502face064faa0e7e0d238386b54c8b0599771e76e1daab263261c949753b83a6efd6ca7aba41f93d1ed834213a90ac9763854b5782b33c34aabb9072f79e9082b065594b168808f320905fd6ef40f59c2e7e5aceff5125e09fea9a5fd55c82cee7ccfb34ca4cfada3bf42ff4af04a36ac6333897d732c1fd73d6bdeba4f479edc7b0b871a08359860d43deb04fed466ce54db48780597c00a1f1e0a35182e9b2f68c85445c9ccb8c082fa90a144b878a006c6f2a9b777422b262f4f2b1a93a21072c644c6994439165d1318a3fb22593c7d28b9bb6b10ce39f740ceb7ea561114b7986377bd19e6d6b792f1b43cfba2f85993e51d244877018d04531c9d0a3bddd4e1e38d8f814252c25aac6e3610c1f226ab69310e792b9c1df306d19c93b1c4e415632c74ba19bdeabe2ef0352baece8fb16f31c6416197faabc09d4dec5b17b8012e2b961931ce3aebbce28c31cafd70a3c8b53af87aef1de9db9bbdf161ad3aad05e35bb59ab98408ba9faa32aba48d52573ef8f15a436d73734320824d5a295d2dd92aea4ce3c7754f5da8755c36e7b35f2f61f9f62c95170cc2e5f7e56f890b23afc03186c69216565272cb989bb67804d0a3826b28850611451ea6cede490304d3bf16b7c8d25abb265942beb56577ef47ac5b44f58e86004db0ea78168b9c81125a221f72cff9afed1f5e562cebdb2dff5945ba3ce4ce967575a83fabc89247e7ec56899b034ce89725b677ce5908e65c45d0bffd4696510f1143fe5aed5b9f5167fbe6aec9d70f677f15b818131f407b97ed644455046d291ac97e3c999070a8c1d08f8c988475f1ad935e412ef0d52c580ed6c8b169a278cd58e52c98af3fbee6d11bd4c8f6809e846694e8e1c884b29db2a0b2112665d86bed71d6d4d7be25e308311123ae5a6bad87c38d1093b0176d5509275ecf7d524435dcc882c8b031ef625345d03993aebcfe26a5648c6fce5b235411d448c964cb89fb3c0d471a2c262e8c6845132e67988bc98b23178b899633193595c1cbc66bc79530f5bb735db727ad70599dd5debb5bcc46ccb3d90e3c324f5374759314ce64d2ceafc544455175f7e611100e278c3cd94c60cb5cd7cd20697c5fa09bd60280e44c84175d18243ff440287b9319721e90fd4498bb019a7541785bf908ab7b6006a353e02b865c4550be44ea7480257d34356b5c183f1e4d4e301c61c68e26152f1b6346b72988c3cfecc8d15443d33abb369a56647ccc1fd35d0616f87a31bd9aedf385048659dd564c579329434256975c2101730e199d381a48ce8a342d24683f4826960c5f60245f6778199cc44ce26c7141a6b8cbdd77c47ddfd77d5df7d500588b79391b21aa0b835f85cc76be4684e03127a921f4c6a8e33d3f00be175a56113402f742d1ce17c8315769f6afd205c18d1105e183467115411f705f8c23a047ca3105e88b21b4d1f1bac017afa88aa0c64c82f7f3f1ab908580ab981ba3e641ef9d639e47cc6bc92be619f37ef284f28e1e3a677d8701078ad0473976f0bdd5d0801b98af10551174a585bb2e8a9593456745cfb283922737f90e082aa221123e4fa431beb79a55841f5d93ae8b6373adb99a8a073db77a6059ef2cebb16dbc435a2b302aee56e08e3958494fab3a165a20a9e444158f4ac009bff2ac6befbdb74f6b35123f1ff04d79ae22e84f3f5dfdbd73fede5b4e6deffdf36349e6d45c7eef9e03d50db6effe557b7fdd9caa08aac69fae5bdd4bf42daac87e2b0e47ba1d27c2a822a8cd27eea8542179089293b2a281a1c3e8e27cd033e3ea7ad22bc195e6b181af9d9d1dd2edafd6879e715445d019499cbb45b6a7757273cfc057ee4c8e4d6eceddef8adb078bd2de7bef919ff6229b7bceb9a7edb92bf1dc31e63284ba8ca35b6473d659e79ebdb536f15b812fdc13ae2e73d408e13ded10b121e170d5a83b188dd1e0b5105bf278a828c7fce95445503592e7d35d12e34b681a0773dd73fabac09724af2982ed5d77dd7b44248d289a818243da2c50377fef1d021497bc21b267918a929d7bce392f9bd27c5dbf78e11cb446a615bb27a1c19c60610547c9c3d1d30ceea8c57e02aa1b1ef07367e7dc29811736e2852b70728e2b99b6c54af26dc8f9d89cf7387ccfdf9bcb068544ddfe2ae8ad1abb7745e8a8e7986b1d7d7b375308a06b0e7c85748952158b151a19289a69ed5252b5f93967be41c68ca3598f89a392dcfbeebbaf5438ebbc7713c76fef0a7d50a8d5f102a05dffbac017ebc9b9551906f94a4da983cac3eaaa03ff282573ce23cb179c154c28b9e51017063ef6536b6892a4ba748ab0b47c728edaab0b665e6acb39e7ec8424a4e6449a384bf9d948ae9904a81a865a8e7a66b075b89055144175816f5613cbf9a8f0de56411cbaa72458c5bea521079984a8b44c5c499542003b80048318000000002049b238cee39a92031480072fdc5884a45c6858248d43227120200ca22808c23006c2208061200682310c195a0513aedee090e7bed561a3efe6926fa125530bcd83c7dd3ba762518279e76edb9ee518e63b9339426c5f7385de71f6117d3b3c5566f87df3b4123f0885760cd41a73fd0102906708e796af051900d719a38ec54f95c737a8105ec9d2f9b52216607f0715ffadbd0adf3fc927c3ce451309bc536d78f82a21563f094a3901cda60699a06d7e693b97e6b7aca586b9c75cce4c10ec9cc95c1b3bce25df54e2e9eba0e7e1b365622687f3535bf762aea430496c7ac6cb324e113a68789002286a68f16721df1d239c86b9124e1ebd7258be7d30007608e6cff5a90b2e3b1648c2bde919868370e4b07a1b93f899e56e1f285073660ec49e14039e0079aa0263ca3f13713932ec1293db7c48468f67717a25e5688ba11496e7f8de104452ff1b25ec58b082788e160089b0bffab616f837c8c0190dc7eb16bd25a99e17880d33d2485540c402a7937240a3e06a433eea412a1269743d3bc8d526261621096c128745a38dd908c6d4ee0736a90ca164a7b42d3c683fe2229ba2172ba24001962230843b2f726285310bb04fd3548c7fcb8d896886e12aa61bc2f4d460204c14ef52b79d113c5670bb8915bcb5671c0dd35efd427346c73601da85392569dfa0a82ca4e5dd0e64457ec30a5dc0cd9728b292006f84a691aca548d0248af0724e45ab50084f217e2cd2c38e89012566429ef909f373518bd74f3f4ecec21a4e6a8608b50693654962d55103b85106735e0739b6002e431bbed6062140ab5dc11c29ac521af203015053574ede2d05c496cd5988da385cee1b0dc732f55ca2c0a504022066cb84b56c656e0c9c59f96341bfa1560d481032a19d4a6eb9682eed4f9a7546fc01901dff00a1710c080e76d0f520441cca1f459db0a800a1490cda0ef165732e80fc7c3d798483da09a1b49e1d2b580e83034b6ac73f899d9448c12416a87dbeec4ce61b945122a44f1c05f11db145e1071a79f2614376459053b9437e5bdaa915808b361f4d81c0a17a2489d2b81e2c9600935f394f50e82baa2f6dc50fe9d38c8af93cbf90ee50d6ec70a81e9ea3e7c4e3962d5d3d4fa305183f7ca0f14eceb7160d6c49bad5f930320a8c447814b6ef5593d9e29da46fb36e30caaea4a7c2aa233c5ac72e8f572a702daca9754ec23edb0bb4c256d3a67fcd760a385e0109cbba89d915e3d8b10cbd93e736c3a7a11b13f652284f6bee016e7c2f158298565da58b5fbc7a9a672a256c609bdb94530c8aa46f46501cba9d3647b6cc5e07e306377f5ea26e9165ccc4b21bf756eee39014624fce1b3545e1cc8cc57afa8708e4bb749b37f719a406a8bed994a9f38475d7f6a090982bdd30fdefef0d2c3845f4618c505c49f5c759227a514b1f5c52008412a61f95f0f104ec25e19ba8418a90ecd0a7ff2c06f77393dba29a540a76032397e121cd205243a88fbba1f77f1d0c6dd64f691881199b8160b3e544cd779ac9b5607e0778c5bad619000df067805764366f8686084ac58241c68e1932d35db7f593beed4a89f8e207352b47db97d5b6d2cb5de000187de7d47f506798aa998341b8c923fa950f968686f146370833c52fa37c2deabfc6a90b1f528eeaba0d4dff9c773d443b0c2e5f936016180788e1ae3a052878c6040c7de4dcac714b5100abd3b2a6066f661b2d4e4841cf93ab7a2d7b444038933e9761d7b89dfc9e50bcdd9180aa1c65bfc55153601e126ec4c01d7dfe268ff1e54acb329370d4abd9bc1d822a431b8d1b8c11682f1a5c8abc7e9965c87d274f41066c52a86b35750570a184c3326579251de991e1f7d15a110e46c393bfe822969cbd3a76945e85c7c3d0b39182967047189a070dc7b160bbdba7b6f1334fa9476cb4c682458a94eab31f8cb7ec1126d8c316e24b560580cbb7c040fceacd9239f33e9f128078abbac97cf0ff7b31fe886c5c65d137e07654676e15c1817387ef970cabbe2ac45db806d7deeb0954c8cf42b713e525da595c5499f8e6268a321632638e802d656091f3a06733872fafef8ee996038919c86a03c9b12e015d56d3b5f3df8cd74b398c61069ecd52dc9e01631ba69c6e422537002238ee8a6e4c703ae8e81c8d96b75822f80a811ed64edde116a4d817d23a9b4ab30df2c77033cb8e0c97a7e6b33e0ae37ced61fd8e4d6be4e6846e7117b6c73c7a0b0f5eb73bebb1119b6e9b93da9f8e278695d8e8b921c51fc812c564c382035708b859ada6d22f1d7e2dfbd04925ea826c920873cb33ec5a6854ce2b394d6f022d81857b71fb43aa0405b7d9c45c4ed3de30c682c548b0e9bafd26f3bfaeb7e7c60750b00921ad3004ced912152cd614203dc8b9e51e6a51c1acf2bda3613ca07a76160e67ad5971acb76686e45ae7a999ba911c49496bc51c5f44c0efef8cfe7d43624c8f04475ebf67c4c7aa2da6f2d8e69d9302f674766600474a7ae46de7b6b58d05f05e142c9692a72226977aaf60da58d8aa3a32a67d0c576e8b7dba46268393e79d997d5d43504f387e8785eccdeaef368ceac4b1770925a4517244daedd07a9acb0df07dadaa5fe2a89656347398c84f5630d685e6a679c06edab2629336f8fcb5598ae0335f7cd3969b9fb8621398f0793673892f9bd1fa78cbad367908f6f76b539a0402b1ccdba3282a0880e2e55af7782f8f89fecd31dba257bc1771ece20898e2f6bc9469de3c5ffea3139067f4e7f408b2f29c109d584069f288c1f9d44cdcc56510a2b2069460cf01efd869d43386f417696dcd1786d6d073f93416531fe64694d06b8dfb0d8bab02f313d03e4c047615a4069f6d3b566eeb1e833d27b11198a10b073dc1f1e805a8463b44cc87698fd0e81ed4897079216824628ce5ef890f0bdefc8c4a6e07e3570b3cec79de587dd90901e5e4e61f548210c8ee48d023ae438e4545d0f5e20a2ee57e93da2e25a2bbf18b4e5eec4df371af50271ee0f89408aa318e729212a4360a1210e08317b444429406857b643df361ce7272eec712f0a6b3773612dd4fd7ce34f6ba9af40ab0b2e0c0de46483130d670c2a5a5dcad93388aa90a1a46bcc64543af505989a8e51492587896ba4319719c7f4816f4c944c87b2f00e14eefb52579a0358be22fc562ff6ee134e42fef8a9b467ce20991411707eb334e0a0a141b2232ba70284b5fc7a6a006cceca947b935d3eb36b59d5964fe447c099386f6a28f039ed8edaa682fb3d7459f4893fb9b9325296422eb4e197d062a98bd2bce676aaec5fbf588db79d449af45f69c635a71c3e0460ec4a9e85c5155eef1adafa952b240828111868740c7058aba2af6dd0d2726346a2fc0127a0a8bd5409d427f526a78ffc1b7df270d503cc606410ca015869eb90626814258ccc0da8458d72a8b4c00c5f69042d0ceedc51773d2c98041e3176e1a77d1d1863ee936333b4ed3740694536834ef9083935f184eea5eb4396456bde1355a18dd2d8ec3dd7363420d869554c4cf9e64700b2eea3ed1557766c1751b8c59ac00e2adb945b6a667f2545e50bce620141ba249fb04fb1e640fc62b7fe935f62b12553e0ab25a37faafd313f6d8c4c952b1c1b1ce10db54e924ce20f46be474826e0477af3b82ab8a9b2b1fbe662952b25e27649ebf56fcac611d1c3775f084c4894da0bc3e3378de73df5e85b49ca07d008f107479b0be5cb047b203527f9d142a99be9420d6747c50a4878a2d2f5a0e447047966a212ad8326dc8bce7a66ae352dccf79c68cd72a0dce3b1aa98805c22208ae50aeb487026c97a72709198112718c3c67528610f781620c21c07ce5439c8bf0d5c1297a3bbb7c00762e0e85f1c9535cf8d37f66fdd2ad65d1d20098c41af4f1508d54f3f6717dc6a173ee7fb62804e64ea30e9edc896304ca8e80dd87a2d482536d387882eec09bf6a385faa319ed435c733614273601a2d75cdf9c6bae98ecfb2ccbbb95d3be42a6bc57d8a6da86fae6bcb1abe3f46c6f04bb57d2625b480275de0bba748ccef6097bee50d9690096cb567659d8df02266f4644a1e4d160fd4a4159f4f348e9cff0e58c601c2292dfd929f2d67c9329e7558c97a925eadd239bcc0ad477f7078ccc779165927e46b9e5239258d9782be9d8fee7b4a5c48de7a6216e384a68a14bb5470a8276ef380fd5c96d04619934c2794dc563db2b1f3ac6a48d7a781680b47bc841cd82453d08f3c7e03c9979fe52857b376be9ed27230bfe4e5747cdf1e951123d70a9820b27ce5fa6793e860e69ff9c51219f4a5e337f0ea2f7a0c0d1fd09ef99ccf88813eb447783d7b5dabd88bbf68d0fb78c5cd34e65035e4900c68be48db5e4789a1926c7148309f86efdd74c47fc792972f71d023c0828c9d43a6c4c5cfbd61a9350f10bd591d4ae9079201bb201493d958cdadd4197c5d892528c37b9a0cdee1f2f27da90a4e38a8659124626a439f21c4624a99f92c84b00d5043f81ae5476b9f9a86dca503fe4abe68a5839740fd674ff35d1e1dab7187ad39e365bad63a85e8918fdd0d2e4fd6290acb7f77f5a7d4d6edd102a181da45e0e102c559de6dc38d6af2e35a98dffa17ca6363c6b4e57b6a2d437133818b616e48fe3d1367354808ce712e0b8222b833b4efdd53d00638ff8061d93cb071d0ea7633f0e6792960b173c328341d18af76d92b798f63197d461d9fb3285bdf8b5fc83a7333c3d684af8b3cb1d8d2034383364d8be0c302e9b7ca3026360d1f3cd34cbc0e741c02103c442b0a7a2de066ce3c438cfec9a8de8a1409bf42a90ab919af1d95d0345f7a331ede60a74894df74e80d0ecfd476ec8e9e441827aef39e562ab9f136b1f17b82cc6f74a6c4d55b0fbd5724e5ee08ef37bae3ff0169c60663807935ff889f6dac747cbc3e40af2345f29040f061763211fd9968dc6f24847526f5c0679d69d5483529196f234bafda523ea507e863432530bc99d7a0e268244c7de9f48a439df4d2ba2fde47586412e4103eb0beaf441435bd71e4673060ed8d86701c84d83559ad7d558433e6cb7ad4993d9b1e44800800c3808c6a4a20ddc142a8a2c58c2c5a754062e1e067c53cee7a2908b4a49f9ace663e2ac9c83a3dab6a09a14e944836fd47b0b8f8bbbaa8d9d4a62ca64e638c220035d1b665d332def587d4d9f461624788e86acd2f45ee1b0be39484fa87c31d28192bb1e9319821a4c400d93420994f11e6016f85e30e23e669b1d36de2ed7980191c62c4d61441c58f20e72a9b90433efbd2f81e46e800d8e7aef513b3991a3dd413d3ab664193e81c1e970a66a83cbe381f21b2ab2789d9bcdfe1d377134ff379e7dc2ea0d884d1cf1085fa73033b1e6e4c6da98a3ac61591c53595eadf67fd7422a39d7e5602bfdb44a8157547193e40744af258e748500d95966b7a7973d8361b75a2a7e043dc3b1aa6d6ce58d06bbaf30c679dbae8cc8ebb8a1983d704a0928493b20b5afd835e3c62cb96801b438a6944ff80df519d9ec80589eabd2f8401e4323562d130fd8c4d30da344d6187d458c0c568e3bba31fbe174a05ed4fb9de0f65c4355a0118efcc638574d68c64bc120b3dccbeaf04bf481ee9c53a762590076e42386dd0e64654ff3a8805740fe02a75fcf438444f80c0cfdbbc1e1149233700a43a3b30d7135510565ea622162e247b76a4372efba07b053e15a8adfc862583e8adf6b07ca7a2cff6990c0c7715d69df67b2c8d7fb7f1fbc199cc44d10a138a7cda2f5da28a292b38d76155f1cff41592d352f06d8111b87dab83579afa47fdd6d1cc7a3d1ec44f96fe6bcdc72882054a08e73f92525e0437c8642baba14b7e98a8f67b18a94d6aa30d5339395ac96d946962e3c93ea7a0e163c73ba34e0b0861ce295a5528bf0bf2bdde6f79b267d19545cc02ca86d8895d25283d5501805aa88e13401fcba56b8a7d70279cb6de72faa9d4cec2204e143c27249b33813eaa4ee9e396989f3e012f3a764c9a5428c62dfeca95b4bdd9db0560a499e0b7a3a8e66682f13901c7a30c9221121c41d8d54a9544fb90c2930284f1da4ba45a1a47848c9331df99aeceefd0f252f23284b84550d314b53247a5369ff830c4ad81314b1f1ff418e8dc07064a26c18afcfb29af8481478f9e6a93db7287bf998c6ebc4b2c03b480b8caf7468d0a2395516073a64026ef01175ca4f1c6492094930443e008d170c0c2ed5b52ba2c41a7acf302cc9da75311213a0b42147ad5d912a250b616dd816b8e776f1b5e84d5bda5520d862e0b31b0073eca19edb03ea7ef6bb939e5f19988f902d9ebbd1dc46f04215da49cbc5537ffec1a02f9e8fe52ef5f345d9f9c27b5a703f75b480f81429d61d194917c0aac124bc362c8c2193f851df13fd8b1884c0dd42837af964c6912c946e23ab8763fa5b5174aa50af01b52896c12ce47ca5fe46da385dcd75c6769e9c4169529b301b6bc28feccb4e3664b2966a57ed90144445a342a9930182a5beb3c281e2bbdccd8af3ec4ec8f9002359bb5090b575474915444863b4238d786a586765fd2b5946f466171f0b4a988574a37747840f88606efcb40edb8e47d8504f025f4f50c15346e9797a5aa170b5f15b32a973c0f472970dbaa59b441928747cf2b6a0be37c716aa7461b9a8f956f3e6faa53559fa6f46b0ab40cbf55561bef943299eef8a75fccd0a8ea35254e5620e16b03bc74f97d03861378bf7c70c4a936e2c66ebbeeedd28c4cae49bcde69c191dadfbf0e51298870f0fedb00d43a6cc58663e9c0315e04d02696dc66aeeaca4dee420177f9b9196ba812d01ee46d6d700c837375749bf3121343b77d36dd62f7f2aa8e923503621ecd1c3f9d121e7d33598722a87b3c4313c38b07437f2a1a6a9689dc2dbb50d1c6baa0c87ef4a658084e8bade1fde8922307ec5ad5423b5846180e8fa8aa0350244d0b55befe369906572055bf935d21ac80d2ce1b5837ff35e6672a15c2bfbefff24e60c28b8a07cc169b09d50d60c05c01edcca7cb012499e4f5f28b0865055863eae8b6a7a92c40222cb05a6fed6f480d03f6252bc1bc91abf29085e414f532544d2f17c4d96acb7ab33de8b5018ab5502ec9702780dbb17a64751544acf9db3e7711ebe2b5bc8505e4cba67ef31f114de63d410a26d5a081b08a90567b487cd8662143a03f53a5075631948b1d70d0df14eeb55a25a3e74d99db86f35d16ba80aaf064bf2f185e64f8dde9e98d9e1edacaeec0b78ffee62f0fd7c08748f5c1d169d74deabf8f655fc69b28722e6d4ad0af56d02c161399a089ab09ec190204eabf6efa13b702d6f2c2ae003e634d13ab40660494ed8d7a79400629a220354b282934caaf93a565201cd0a2045d1baf493cd604533b2d4526a1605411f52046b6ef65b39c22845113b956ff827e66da23636dada41e78800d04bb0505191994438c1202d55f828adaf74e9d9bb5841653fcbe7e76204a7cf7d5d26aa12a2565d0951b5e43723fa889f27550ffd221b1c9da2a40869123f924577260e786a493953ad4d3a66c239f1eddcb3b4f92d4d77f6f80185e635eff35eec6fc2cd6b28738dca7a8273d83293dfa6c3e824b890ed4c6e7624c95da7b133f9bf29164ad94be2ef8b85da452e8058cddd30350161518eb43f0090d1353c65c35b64327155dc9b46b7934c64de6e5373f32ec8a66ef9d2dc28e9765cf26404203d9dd3c428ee081e51f73e3f796196c6ccb2a688497df2243f634a4a11ea8e01e25719f67a7593a94d288d43981a867882789bcdc92326826a4f21a6362c9df0a70ed83b93f5bb6211f55faec96e9f3ed1dea90130e76de615be75c28dde25c2e4ffa61844b9f3f6e6c897feac2f1655b3572efa469a0403b974a27d36c1c68174ef6dae91650b2d556590d4d358bd1a913afe71a871286f3a99367b736a15b282ec272dc688877ceff07b12410f5f7a01cec383c313d456ffd9174031adc426e503107de5e61b300dbd12d11d4115282a75e8ed5d7042fb9e21f19aa86b9dee09774e3a722b88687807af08d7c14cfb768529e3a3b55778f3fbc15b9a9a9e9a1ed99abcc11ce0ada558348fd07fdd323ea892924c50d534105030686b5e38ac7c1f827d271c453256b38813af54008367e3485a35156921c9f84cdedfc2eb8ec3a542de5e8d0dcf9c7a816e8ce0b18f0539cb57aff61763864998129e2708815c97e41c5884b081c7cfb9de6880797fff44260fc0aa27cf8779467a609e5e9fa2d4a21ac99bf2a46040c2e7a7227932cad4b767a3d00390626b97e5b3d6bafd3d2363dc6e41026130ec2fefe53327a9dbc23fe443353193692a63e2ea10cf4170939fe1255bb4412f1d839f1605f891a9553114847b8ea9b4b6761f3fcdb9060bc7586169d149fab876de227e3f0a408da4e75e3c460571b5d131083204cfc57686e2f223942256847cfccf0e0e514f4c2d05675e81319b9cab4d992e2108c1e669c081bae9eb92029f79f31218ee46ae6b4286b717b084d8e4c51bda25dca71add8f5e72019e92962673e143f2de6d9f09913cc867e524b2ca65f08dbe618e913d1dd3cf42692f061a9fe0e60525eb0155532353d9e9253efafc5395946459a83b4666753061d8f2e3ff49b9c0ff65d015a27e66e00075be1f08a8797bc7ea42abb67cd01af16311647929a99b930fa108025c170386c9b83dfa911875a0efc7dc1d617a6d94195b0e2c89e7754ed8655638120f78adec48e67e973cb2ab2db3dae776653ca00e54cf8fee54afef0e0c6d3af1503b11c8e6f180d83c96ba9ae90d0cf13cbf640b1da6e826aae174b40994cec94e25869132554bacc6437d5360bb636f80a00c19297ee7269da82e242cf077367276b5539e253c676789eddf897fee74673bad7221d1deb523ee3930e0368ba37b6b700f83c44282c6f9a63a4103be5d0dab85e1ba78c0ee6fcccf42ec01c3dc6c6c5b1c6d87f1ebb69f74f0f30cc3bb7122aa2ece869ef350825d372b35abac63fdd6931ba6b933267beb6f743f65b12ba1240c43351066bc97a8873bfcd540c6414dfb27fd396caea8fc76d243b62746c79c7836007571d31b69958204ccd517ec652a07bfa8ddf24fbedf0101362a8a44d6e4761e2b16cdfaeee1baf84db448cb4ad4b5ff7f92b97c5971b40b5d91469e396816749b7f5610c1f4b75ce569a5d96f515e160e17bb40e76f99bf39727681630e71230f2c8e7df0cdb0a2640f4598431be3987545a94927f863f9b806ab04fa36205c6683df6025cb08d5467bb90220795d0b28a031922109bd6418e3c88e999828ba921a81f18f2b3665288d5515812cbbdcdbef16adaea49c2315088b8dd725cb651ca6efa75624f3959b4a140764ed820a8132bc1ec0ee2d9e2f84a0a5b10af94f51b4752ddaf39cb11a9954ea35a9de712695cf7c3a7cc94a6d262c231b2763ca845879b2f858cb728e65dc05b79289e966372e2c4f4ba27350a8dd56da29438d44f5413193dee90e2c28846175cee9ee643d18a4630edcd496f7b5020273664138a280790b40ed6d74ca84b973ffa8942137d26e85da3f8804bb9008b1725abcb462b16524dea4c8005aaef965d4999a4955f5513e9964f10009b96086b8e0ec18281c226dc82390e124c08ad6ce99b1d45e994bea5d946a6899f9901cddab8de2c6e5eb0e216491d9ef671179341168ac8d118683f2ef4d566b5e8882626f20dd60821bee9d6957e255c23945dff046e4374a17d6a9eda1e5d70047e95307d6e1b087fd1e3da7fb1d9e2dca2705899bfd43ab7a588039c8313cfe619eea11dc5bdad34e3140659bd94551af83ba081ce162355d75e34749ed136a33179d364eb5802ee7c1615c504a914b20279303b7ea355ecdc291412542f113c8067852e3796215bd0f6be3e06ff22d18f5a6245eedf0799d302775a8052d0bf37f618b7fa4836d1989e89b4e5eb72860d0710bfb547a38d296e8e36b18ce6a143fb094abd51cb29d28183ed1ed17edf20bf80635c3160229ac10636de6bac25621a58764193b13f62648782244f5973b5fa11f7655ef90701f8e9adb850720b0111e46e9eba477474ac3deaabfaecedf8e661c801a41a4b96debb21f2e05c4701ce36a2cdb9690ea21a300cc937e3fcc852dfd66a47474f33a03158401e17f460545d10eac9f7726a76d929b78ea6d0de1873fc2c4b02f7ab517a4e0c43ac837ad6359317bc6035633e0a8e865d25a5090b0f3f543ec2115ff9947687c9de7bb9b37a42282fed9212cfe14ba35fa4fb61d21d1f79f09f0f3ad92c5430b2c2d3987b355238254f1c6039b5f95fd12f755b36e9e4840f83b6d62e2936996e072b064f178ddd1d1c1ceb4f42246be7a5a41e76638fad47e6f23c5ce69613a8db36343919ee93a060f18a8f4d0a5c0595a4558a0ca1f92dfc389f9cbef164abce98cd3240ddf04b6fca3b9a1f1b5ecb35a7e4eb6f47573a80e99b158998460cd2d1fdd921f8c9b82b5ba1799ae6e7a65fd9c95deca54b15ac0db8b842f8efa870d2b925e8370be69ce9468668c411e1946638d394f2980873989f81dbe38b465cdf8680e1a16ab6b8747cc6338a200213b2cf501a2723380f7376805f8db23ec6b1e87032202c16e3575e3974a37910f1c049d00204c8eb01a1a9b58d60e0ad8cd8688c7b609095eb9fd4ca690b400b271dbecfb6707f01ce7adf70ccbd0b42815889620b31a4850da60b270ac74edd0dc635ea319c8a6cf02ea391f58efc43acee72d7a40959437aeb5462bf5c3344652a84594d3c1eaa70854cbca8e1af484a303e7ec98cf9d468965d772bca5a201ec2de982a74cc140f52a95450ef10d47f05c686ef0d4909c7dcc4b03d849eb3f14d9eed3d4158866e806ae2475986a48d232017839daa18b40e0624664b3b11099438f2dda9afdddfe87e0e2129a1b2be67f60ef8bc0cd4fd9d21454b3789edf8a4d70eef4b7d26ec1bd19efc6c9b1f451b610590afb42187509e48f87c24923f34052b1ded9f178360927ba94abb7bad546c044d3e3df48270f792da9da02893d552267c147e052aec4237fe2e64b82bbca2e7106081e2a64cc1c4fe2a6e4ceb18301e19ce038a6637f40a8c47c8586e92ba60c04de431150f167479b987eda53e5e4c6235df3ca13447f3c425d1042010bd4b64abcc8a0fac254241260326eded7d41ef90311f7139bfd075ded55aabe9247fadc587f8212ca2ff7a1c4d72cbd5025856cfe6973993edf0ded19eedc22c8ab6f27a3da5f602984eccf37977a7e288eb5042105abf543e4a1331696d1046f89fb855876747406a10a2c58619440edd0d91ae47c2f33039f977f095b0a7e0889c6be489d74e66ebec563b328b344a589179ba26c6f4cf6b422a37e2c496faefebe673deb4d97aedf71e79315f6f0d41a536b12c9aea6bfc3767ef3961149966f4ef8a2b508f97bf855affbb4dff77ee8068dadcce3aca106c90e020ecab6fe203c38e7f1da4461a511e4c3a68b1e10f481c359b7f5f697ed6e1a477e7689c706a21bb5fe98c11c4d7b792418003d0bf5d7412a44ce2ba4cab0f8ddcaa9c5e2c928ef8fcb143caa4605124fa360f396bb87ef50cdec4ecb4370d9d273d1a02c278d44cf05644e374783294f8ac995253ef26c3aff36d5dc56fbcc18dff1d5132e3bcada201336e1b36a144b8aadc3a1bf251938e0ea20006106dadb3ef290aa595747076a0067ff07d3be49b09f9129c0bad076c39fec37bd6cd2db3d9b705252cc0324848d278025116436eaac3d6bb6bb24694cad1bbb212360e4a6adc4c5bddccd9c291d9ce45bd879d800b113fd5600d1d1650742619b1346876107e391236687ff50d1b4336305f0bb227900aa040844e170691e7c10b51e281a9ab5f4582eeda5b8b6bcff810743617bd6188e48fa684cdb511f52f3de656efc7c412989af19fbfd57d8bfa39b04260d12a38d2227acb9ae85167e8d7332fe9ceecc7d73527da9710de547e442613b5cdb37f1ddb1c60e541fb836a11e39e6d82d65da279e4e3c13bce3e50967196ff166dd82a43aee3b20c07250e302c53362ace34bdf18035b1c7a8005e4198d2f5f3629aaf8ff552bb9cbda37aa9025e81455ff5c58e4e52eb968a36a5887948b8009993b0baf43ab7df8b2bb368d5656b742259d9622dc640dd0c3bf682a9974af63f1de5108c2dcb206cf5731e7948430fab6ef9f4084622fcbab38639d8cdaf14b7f3872988f2bd38d3515949a6dfff1095a60c1312bec075cae174dc0e959ab865166d4c03f7a933d4420cfad062f4846c280b3df7ef01ee47b8ca6c09138e19d4a6e79571c7f0c4122d5f78329d7f1af723e538118bace8301991f068b35a35cda2b13c5580bab4a9fb0fda5bbdf582f982cbac97d7588a09da81e2bc0bc768de54fd8f2be268a4457a30713035fa6e27a23c7c40a41b83f63bd801ea444566fdf99dbd748f9a3e628dd90ed9a48416eef1b2e1212e6217af23ed81c290d117f9d2158be2266ba647bd832bc10a38876c7d81962e677399bbe6f9643fb64661144359e818c0416162b3dd216ea570ba3bf9cb5c9ae181163127e64fb41610222dd6b7409d71e60f25c8b492c6161fac57d22adde46d179257169612e9ba60ba20ae78d11143b9f5726b79721fae3c64675f5ffcc1a7522e1313ef584abdb8df579d0e842a3515d31e53a132c0f3332e6bb0ebec69c00833383c4fac7da636fa2a5df38bb8441d10732d9191cb59d6179bb1d4b6c56d74808ad4b78fdd3361c3f5d37054becbaeb537a2840d8f59480aa607d5789dd4bdaec527695e3f456062284b9e7754faa3c1312ec6080af9b9257e42fd2336fdaa6c49cd69bba8728dd9e8812470e6ad6299eba6d7c0644e36ca2cd5c6fc2813568acef19310cd9b4819ffaf6c69a08011b67018ccf3424400421be75200c760b668ebe1e16458311415e1f31c744b9dd22d11b7ec359b819ae2021aa7a3e414bae595f1d7276c1acea30d0c55f17c693ba8c998504af172b722f25cc8012abe2322c852f3f28ab647366ad37186fe6fd487773ac419c7396f1c2ae8bbf3db72ca0d6d08eb1b9c8180e12fe74f49aaca087f70c636900dede0226ba3b9ed0383559920fb01352b8200cc2e2c449822774e742d65ec7f0e9c0e98f9cfcf45008c9e791a3685ee5b275efc2de64fafc246f9f8a5887b40e99b071b6da2176a86f66855d990dfc40b3281e921e39645d68433b7b2e43c121916c5770570a484abf4a4cbd4be6b5ae19259f3712278df93e8ce87fc31ca97ad7d75e2e80484f2e9e7dbed56999cd7f2601190d88ce3f49963e66fa4b5031ba54318e713905d247b283309ce6ae2a80597cd24beaf6e93a7d06a563df3cca83267619c8f6b077853e048b3c0481f0dcbd0590e2dd6ae1f1a4ce51d94eb9f2ad2a8449b7338ea32caba07465c0fd4b877ccfede28836998ad65a06dd33ff03485740ee9badb2bb6a9c584fed892bfbcc1a5f517d029ca2882b3a912806e4d3ef63400c6a2e8b26ea4159c9b2b6f2573d0ce07fba613dee846e5c6f6f10f9e864b0fd9f8f4ac0a33714e9ca83689cc9a6249bb158068fbcc4b25ceebc83242d929659c18bde68a3b2013760436d5a7abb865610082394e700bb213bdca5e0d5d95014aff1e25483033e648021d0b442cbaf736a2489e31d98eb58e57b6d9b4caccfd35dc2bcb0455fc10e6e7186afcb62f6aa2a64d5d9dca5e5dbe92325fcdb4d7f82bbb6c7cb5b83d3d2de4f485cb6e5b9c92f5d6530f159880c3e0498f3a95eb3e03a45d44831bbf9b41fd9d7c4e94a8c0aab8601037376d1211bf1a7d2313172bee7b0242c69787baaae4de6e8ffcea6b87659bd3e59f2be6485113d8eeeecca3d4a4327952127b2fad0a0bc85a3de07251b40b3fd6cff7cf24d58553a2e695f59aee8e08dac71f7fc4b3aae0ea4b88d1ff026858e7cafe76c939031482c7ddbe39c609b7fe42649e63ca59f38b3cf398f457ab2cb5d49d4664745a05fd65ec9f85b1e2d7b7e1e3549ad960e768ea80fe7cc8e2616506ac6a5393a79888aa67a6842e784c2cc2944aa542fd6c13a29aadf49bd393dc8c979ae68fcd1c28ea48d9fa2d475ff30f6485437e820ca350ac252fae0ca8096023e66fddc4f5160ef73189e115c2a993de5c121350248b12a90ad23e0e23c6647c1b76b7909774f82dc9a4b92a9d651a8066c4a73cb5ddaed790c775290be9fcbf6d31dd0baf8bc1b0d54e8e2a0a5826b573cfdc540ed5f606984da15ed9b66c196f390cd6c975078787110e2e989a7f1b1488b5790fe9265805e3128d24e69dfc7414959bfd1ef99aa3152d2f8319ba3f7c2e092ec85de675ae0a0d649838784de38d281c1b23bb5e3a897877af1092f331bbff8bb0500335f69432c77a5671132e927460f5ceab3d8fe4a4ccd22814ca5183ab2417078242aa6265247dc9eecde8141fcfb74f85aa5919b9753c249e27e7e96387f0a6ac8d08fc5532b046e22537c322ff63acac00cc1e79a462f044db3bd2a75eb833c90d84fb0e60a2497d7c452cb3332c2e00468846a2dbd74d85795bd83d19d13a6f93ed588005b4f679fb452f75ad782974b74a12526423ec6653672d97f0363beb54bfa32c86df35393b8637d0fbb8d291791bdcfb8f21b289d757fe8e42257a4aef5e91a3b7165b1bce730911ebdbf6a4877e6431f5d20b934c8df7c9c6efe0d567295139ea2708ca2734598d18cd46bea8eceb3ac0587744c43fdf2a387db8075174958003c5e0fc23bc7ab029964f8b8438fa4155a530fa70607b1d5246dece3adf06e9bd2b3f80ea208a6177c5e750f89706194a63ad4470ad05e907882414d98d06c8b908e2d82661d291e50b71304efa787c6f493e49103b3a3c71f46af032953a52ce311b40e649db378bef730668087e9c2772f2eb175be46eafa001d4ce0f5b077b2c6ab7888afd4c37f15c42c5e31eb80a848824e3df4a4904ee1cf8f473556ed5384adc766936ddf37d2b1b7a22d0c9309021f3ba2cdaeb2ff20eb11e16308562c2323b9e134b503913a1be1b732720fca8e758b914d125bb978315620613d17c33b195d41d3db63e2417abf4bb9eecae708b62efdd0f42fc0251241264c99affd9c0441f5b091a30ecc390aa3177c1771b8cf2642322dcf5b7a96d9656c946890a1957b9fc0141bf4467a58084053a2c8f90c41a0e840c832ca57e01e926d038591cba8c30874bef7208907dfe3a563d6643745e15937a40f0e6c3ca9dcc0b095b771531ea97da5c310d7072975e3900e9d26dc65c44cbebd3aab4ad9a231a4e660bf70f73809c81d144acc0843649123d226aade4afa199492804a0b624043088622f4334420def3a70516869bdb8039a52c55a43c27b50d09c6b8e106c58952c6b788f1c0562a1c631ee80622e2c403b698617a2b8f5b71530d059086f4dc27633ce5a9c2667aa664541885adbaf1bee0c41cbc51da786345e3f52ad00bc4e1ded9561b5a063a59311d038a29e1e78a4be9ba6ccd1536c3e4ad242945cf216e2b8993a184b57580967ea85dea1876f88688145c8f571840d4c01c965801014fc0ac1abcb3f8b5ce96341dad89b0dc9a673522caffd1d6841205cbab24733dc809d1497b2e0a3678356dd411200fd67be27d0ab0f8ee8739bf25fab8e86f1fd6585a3428b734bab2fac37f612d17845f536171d17dbc86427d6c4173ecbf4a31c622c19e34d67f8a55f64c40de275831f208bb091fc5e11ad75b3259af58f78b5d40a5a03c1a56960392670a914e6a2967c04c1c6fc48661d8c52207a7bf86830b6bf615e071b9ba1cb0319ddb33a1b42ffd172176310cf83a74e0459ff0b48338a3c8757970e4e04829a68b5b5d270a5326b0bb1437485637f39ee99dd1e0bc2bd5c4d5e696de5f8e070896c57211cca5598c3dba1cf2bd2e01661cc65d98b225ee473aea0a757d5d0227b0b644bdc0eab41c153a569ae881709c7b128532208b1082454ec6403507de63d6819f2950d411650de42cf94e0d80478f423270011dec33c4e791413b07c2e2af72593b4e84c15096a3f08d1d4e3c2d796cca98dc25f2495cd864e2cde75cd78bd5a72a617aa58b617445a01ed4749d4b9df54a77bd4220a1fa10687442e4526e69b3c5dab6dcf5ba3ed31aa5efd420b2cad7eb510234290f644fe017de33e539e8b74ac85997301df3691dd23279264015656f61160ead427774900060d6fa02a1694a4004c89695a80a260a762014168bdeeca59e0c8deb00e9e50113320fe0033f000a802d5f243451729359188cff8a5880d8f31c8550e12631b52b0403ce37adc5a7842b9810408f4aa975b0d8dd1881099026803cb3013a687556a6c8a4a7ec097e8a55060a82fe9e02b1724a0cb10e060fbc004fd249aa2009f4b019fededad445574203141c5443a50469e16fe85d83270031ca36253a6bfde2041d6ef4fd4d28efd9d025de70375c4ba785d3c4b678109fb76154686cecf0378adf7662e87a7b3cd76035c275c170b66fc4ebf280265423b412a978424a62570c8e3ae43407f730c17412872e965e076191af0db33406fd1120f020a4eed0c42a94e8ce99d94df62cbe3458090f997f4ef84cb94d05874f1175d286cc0b986226d641b2849da1b161c30f29d24436ad3199f80bebcb1ddc0dc6b21f572ae96a5ed8e3451154c23234bda0eb4fa1cee250837ffe6bea4b08a33109be5239753545d285013c6cba3a32e9d82d10520f3a92741fc71c7a164ea4982eb5bc16b677209508f0277730491cf7d62a3b5fadbd551e9ecc6cb719bf0e6be6f238ef60fd912d2b7ff2eb43843efe04b334409625adf490269bdff1093531a616800a1a7846d342515e9d613a58a10bb315bd3bea32fae6ce7d2cd8ccee2584d119591ed0872d938855bbf392a5a7c032426afc1cbadba5cb5a849bde9751af2eadfc7aa36c4629d19ef299caa362a4a09037334c3f8f5b04b3ced8b38da1148ba56653323b93843bef90ee3fc767ebe24ba07bce58b25513efe95d8d0229b1268f3bc8aee462f674e4547a3f6715ebfc45cf1b3650d00fdcb6eabd57c28dff929b1da9f5a775112c3b77bbffe550d4fddcefe43ee1e0ed1b2ebe8c3dcaef3441d16823c7abf3a8495748d419bd82a46276017603c8ef62e4a03813c56a201ef2251e430a9f0d0587ffa502f7dbd3310154d5e2eea8a673de4963af1dbda22594e4be1e514d295ef469823291982a28e131409723949e77be5608f2744a5cdfb074f7ee3aea9f25d4161a29edd41fc195899012270ac56d39559b3e6b33548bb07f26460ead59eadc00d97ce125d7f1741d224bffd16f7cbf2b2cc7616efd9a3e759a512e67c1885a9170dfe0ccf71c1ab2f52c871d0017b48c3ac7b3e4b04c5b02c67bd4541157676077ef7c6d209c745f91d456a450e84ed139fa7af36ed5803186af6aad7911dee7ed23d8710bf5d41975de188659657127e292fadbaeb044732026f0053b503c1fa84ebdd480c08da518173668c582568697ebfc4c364cb6001788ea36fea7fb1207a0e9e310cbe7bf74796af5bc0c91bb6580a97211fdb722fe6dd1ee428e50da11b300b7b5e0b408dccf7c8654cd3caa1fe7ecb79ae5560d5a4b5b463cc6a9d8abc60f31131103db68971d440830c3d5e5ca1e85477f1450dba054fc01fa6825525520d218d7014e042c90023f298d0ceae00d18169ce5b10f5b95e8d880e658871d08b878127758087c40440420027044695559555555555535eb6bbdbb9b333796a62fc7c654ff859a5c07a51f4a2332a59452925206cd04170516054cd32e64aa0a6f605e115f7c4c9ba92bb49c0845023729bc101d66047a277e3f5120d05b1c1f30d777aeff3d1e0b79be037a27ff4ac555f26aa80171bb9d5d4964808d9ac8bb4244cfcf70cc05f44e3c1c94450443882802b21ca1809d0bd51242bb1200bbbdeedb3104b1e7c64400b489ca735a1ea0270781f20f38b739551899dfd2825f3e9e2fc6f93240d2b100523702d85c89ec7c5238320ea0d5cb250a364df0dfb92e1cc3be78695265040265f83b17fe3210d893e60aa077e2d9762af4206600e49e2efbfd552801f0eb5ceee55fefc43b8927d8e0fcee8b758e25dbd97d5044886008114b137a27be7725778dd240d8ccecf8fe49e607eee5127a4955129b11bc8d22cdc306bc944edc1cd9d4f1fc2c43a03f51bef667cd4a2d050caf31172a19f893b9f0a7daa177e293ac7a516e24c8f13aff393c9ecbc09ffc030a8dd03bf1dae8f6ae646a9395f7bee189c707e7bb2f4e61d41014112228249a7e3908947f40a6959213de5428221adae4f94db790a5654f98e47c73b831effb0b717878bdc37916693bce83b28860081151aad664d51246bb623908947f40a8eaefbdbb2ab4b0f2501354b7ef56f44e3c54e97439e742a2aa36593d54445ffadabdf7de838cbdcbfb352128c4e6dce81c92ae46fe4e83eb1ab5c9baa177c2776c3bf73365c8f0035af9d87642efef2e1f49a16ad8def53eb8f3c23c19b62b332202cb31ec8b51a82372d20a8fffee86c840f9073cc271223db92ac21bd14343c7d17b7df1086748489d5bb6396f7f678f77de391febdcddf962146db2bebfc54ac584180f1f37353cbfeab73ed0a41f714a2e3c3f5bdbd97bef72ddbfbf8a92e77dd64721ee7078d77b3ff53d8cb274b58a2edc7f8be23d867d711df513f7d2e773103fc28ad7b9106faff2df7fc5adbb5fd9f31ee90a539831bcce75ddee76375a83668b39bdf7418fe3b6320c947fc0e956d39dc348349effcec22a6eda641d61e3d3a8fa70be732752d195852b471625284b7364cd01743e4d09d3764f192a2f9e733414d7c74b9f7e22183ea34d3d5b711b7b993efbe25d62ed8cc3b86733a656cb7c46e40181fd336de5ddae9b0385d777723bed8bd394da64e5df7befbdf7bee9eaf8727b77735b78d6b1e4dc7befbdf79e7b7fc6637398cd39d4745079efbdf7de7bce3953bb6eabe386f74f1c5f3d5986e5398deabdf7409298d7b94c1171671b69feffcfa6e193ed3817d3d0bdfffb5399eee69ceb77df63d8177f79ef9ab99b732cbe3f8a17d35b3b3ae7bc6ce9a578db1793293bf7df7f1f349a39ef3a28022b8488a536f179776edc52a97fe7ba2a5cd777fef79f6f10b50dc78272f1283a0a0ae242ee926f9bdcf1a2c5ce4d74fac385e23b8b4ef0994af43943713e6a57d5af3226f859265d4102321c594663344f31bf25b78782c86655c4bbffb754dd5d9a2f6ed9ae77bdeb7d93fa5916883c3bd7bbdef580524949ae44d68a2e1c223d66fe9b3972c4520ff247ced75b91ebbaaecb39e79c77b7139b38e7dcd9d4f27ddfdd96a9eb72ce3951c9b95befbd6e378a71ce39e7bdf75ec2c9e3bb18bb2cd8fdde17d32cfbe69c73df84ddef591a14df3b114acc9a39c9cce5effe3f655cf2dcef7b09a30e9786c939e7fefbef9ddf4fd15871dee1ecff0faba0c5f438577acdc07c51d5b82dc9b030c3147a61eea063a198f6ece2221e6baa2a2b362cc428df685878a1b601724cb27d9f4183b33cef3d1a0f993229b49d65d66b84e4c6a30608e707d298d077ae032dfe6e4f218edf9ea06b42316bd6f2ff019f4516f33bafcfa2ce3cfc055f382cb687c59a91b95f757f81dc5b4b8184bc70893befbdf71b1e78e7d29d230d254b8a8a8d0b210d51ed12015c46c52baf382222e1eebcf7de63cc68a8891fc0b9169c888b94bdb7d6d96f0aea1debeecebf3fc0dc6592614ca23511500c3a9b73147e0cffb705948e14df24fe724c32345d4391e3813f86ff2b64a666937c4be22fc7243bde4c2c77328b116d259c7820e22fc7244126dc62a2ee871fc3ff55feb0c180790ef19763122027b5e2c8861fc3fffda1ea4122e6efe22fc7243e5e6bac8a4d6fff18fe6ff20cae0ee9eab8448e49b40fb6205b64ffde812b56e2e6faeef12ff1c8e3dce5b7ffe87cc73973f3f017946ff81de5f917b6c2609c6e567eaeb69cf8564a910c15c69b1a2e7c5e38ef12e812f0d0240df34aa573c4bd568a62c2da79918be6e028a125fa753d53a40099022bfaa87296e6ddbc52e50c31db161caa37365c8282486fda1630a03497cd33123a604400f8434180911a8b8a5bc9a91b12812aa618fbe94ad22a769d9441fc6125a72c3face455cb0f6b236d2499f3109e73be32ecf25dd4dd7b770bfdfe525b5aefdf12ef3b5fc07e5b21d60c8a8e46dbb4c64b180428aa66052579a349380cb26d0f958496db2815c5bff8ddd5a7023027a2c376be6acbac6371cea52f6ebc979777beb14aa6cf97a2b9cfebf34505b994bb5f350f92a2f31a75de79dfc193a6b46ddfbc4a53c4e6212cb3519bcc1e6e442794d39db23473f96d59cc9c7303544d602d5929bbb084fcdd2c52749260bfd927d6c9d9a7d6daed8a8d959222eba42842d02b1eb3967f100c9c57e855d59c615ea15749f370c3597e5ea529459439a0a2a25953f17e14bccaabe7bec42e450812efbcf33849bfa8f4a417e2ac9f2e69339fd7a74b59dd6bf6f6dee315654f9ba099a70673df4df84fa2a4de7be79b7d12cdccbb797dbab830db410c33a062d0cc90a172d3a6830ae0a28b2b068da956d793a8cc068ee8697ebd5098d767118c4b4b0a4b333cafcfa28ffd0d30afcf223297a66ed9affd33f0e10fc31f7a18c5782861854c0722898d0c09440f3d5668e269871fc5118c24b8b9709821c6344c6c28565d5046b8aae1c29a2a87a68c06192797b1827910656859fa78a4a8192931d5c0c3f8021b33f020124548b88dccc584109d70dc9b4b8f9826a2e3d28abdf7de63983cc609df68e191e0e9a978d9b1545f2f17b7e58b376df92ecbdd73c61b938433694245210dd5eb6ca1895e22460b8d4bfe8c638169852fd44d64853047ddbac570d6f712446db2fe0d530008faf0877ffc61f8c79ff75e7778026a8387cfa381df4559cdc01552be70c2a8038f0b27488dd650726090a5f0d945554f507a9fa428e353f4882442caa965d03bf1d027e50628941810f7930983133f3c1290d51734d984f8a62f172cdd7a46ce167a277c68d98213c79078a7cb0b7768b000f632f027ff804ed415f44e7c95950a4eb8848cf0535053003d4af3483c28a873a19c27b8a966e070e43141efe4c370504488a0970e49934a3032568485405312f44e3812750437671a36f85445e0564370f3d5f3e55041f081de89779d4c0f5c8968f0c528783ae089941ce89df8de352c1137f0a3d4c07ad304bb7f9761fdfbabc8000f64ac1dd9905231b5b344dd4b663090994e091fb213cf20b6a08810c1102298ac30d03bf14d2817d07c996681207804c95381de89ef436914681e4f8e2370326d023421c229250bbd131f3ec919145c97b8f33a956283a4e51bf4abd60aece6a7063286b02baad66aad0259630272c6a42116c7caeb67e5782aee0c69f5b3c4a6d54a5f1014044608c98dc5edc5c40e1559cb8b68b3ad22018bb206994ccd10d5777fc987dfffba30304313baaa833aa1884e79d128391346a8a5962f15cd8d7406a8d68c159d1a90b7288f0a87528da3b524b36e06acc4976dacbc7eadab48f4de6dd480d58d813179a23fde29b72b8623b824b3aba55de3e85a60cce054fd54a36c2f946ac618b624a2800945c794da271ab2ca19d4b605f36c9f27248fe66658e860536af923b53b9649629268d4a8d567d0144b483f508830929c4031b11d6fc76689a5b0f3dd6e8f0237078d09caaab2aa5a2135f7ded7b117512356d8b88660849def989d57a952dccc9b57a9925915cd52dd4eaba0dfb40a663d12526f5f393b9c3170287896320a085c5e38666cd0f1a0e9592f9223ce5a6c81f1d03a6ba1547016d4bca1335363b2728ba316477a0b06240a31e9b249b516c43fe5b8d0619a71d6349194a2c804ad30cebceecd2b150e8c4d57e642cb536ebcd03675f868b24ae91115c6d6366bb043866dcb8ac454dc17b2d1db11123eb1a8919604d298108682f430aa28a3228addf82858d53bb12b7cfc90232a752175df8ae58440c55eb2d6bd9bd768980adef7decc79efbdb7968add3ea33070b48af3d0f78323a196ac14c4e356dbd4c7c2a62952156d3b2eecb06ad931c5f2c3da3680d798dd41d4f2c3da333a3859d79e0e5ab0f3005b3264d795007a2dd952738719869d59cb3d0aac36e6b564a87b89055618e6098cc1ad3c5ca9e656ee01dcce6b5516d5ccca439e2ed12d70a8e5555e41afbd0eec9221113c506095e7155ab6a703208c50494199d715b8ca1c0330cceb9a02976bb0caba44074498877a5ef514e79c73ceffbc467500019594f40f2e7288b5d018aba8535dbda91b27305920818a782c21837454648aa9a784bae77befbdf7dedbe380aa0963c58822f48442b59471995a406dcae0be84d48062cef7de7befbdf7e6fbcf2b555195c3d80ed801db3bab17b0fb50eef270d7a0b3fcedfeed26e83db7ba97f4efbb1eee99dd5f254db2ffebee3e5b54a61b3c3e50644bf28c0ef54a6be954f4637ceacb0b6c009c77be61f637e5c29854028f1c93201d4972bec98fe1ffca8138e678a0d88713c9b7e488e947e3c403117f392639cae93013753ffc18fe6f9c890b98e7107f3926319af1a16564c38fe1ffb6301961248322c27ef8bf7f69836e39555d327520ea07f8f0fb5f2662093b1c05588d44c53771010227c70397981b6e926fc98fe1ff2e99f8d52c7772fce59804aec4e8c403f163f8bf5f1d64a2ee87f8cb314991c90b98e7f063f8bf4a283610a9231be22fc7246f262c7319783f86ff2b4561e5ef623926d1494a106c8a889c0180f428d2d8dce590627c78f2b4f6f31a65f2695b3647e46d15708378ae01cb5c2a798eac9125b240d026ad2ce7a005b2f20ac7f2c475d4d1f4234bd8ca2c2dc4ccc861ac229183857097b4a04d5813862b759d5768d915f310385c9dc3f56bb8ba01cd4376c8f204e992e13a9d59b92d19ae69332bc32c2b7f568e5939c8ca1660e516581908accc1a599955b2f2da3b613b0f9f39de56f160c9aa491259924a73ef1d0618268b5a4c0b14a23a61df3e719efd3fa5a6c7d80d98175434490ca8a39322c508b964f9ac791ac010bda03042d19143fa8332f71649df709625b5bd9013f329f391e199c1cddbf16299ebb7bcdb7cafeebfa11342320625bd9efed106926c5e2e34521473bc87b9fa6fefbdf7452fddc6016febdb9bd81a8b18d94b5511e0da5c2069cc60a145f7711cbd891dbfa0e4943dc2cec2c67a32d91263528c5b7ff8fd6f0e5c6a8832dec4b8748a704cd114a024aa69e162c19a2e77b21c9368211dd4148e0c59138f8b0e6730a0b9c1c273063613c403b1618645988a8c98a456338359019e6c314154cea49a6fcb5135542deb91822cd229a12d5ba927ae7a6454ab6f3d8a68dc27ef57b5ec930b5c3058365674a7615f0cc740732f2d165754cb8f6ba5088398d728d70e178c0ffe75776e951080e63b6a0230f3a65a0b00d6665886dffab7d67b4b6b4e80a9644a9c5c4c2082917d8a2052b87c70da9028c1d922432205e4c5032cc7b04f2acd440729193524c0720cfba4ae6062a9a6cc085242460ecda9bd413799607c411a9a38c60ccd1799913a1898878b885a3164c64def69f316d1f09c7866764e2f366e9098dfd436e38b5deac686cb31ec937281d94d481c0dfb5c8e4cba18268fbdf7e6db59260781325e206381a6404bd26a9b22eec84298e45882aca2d48c50b827baef775590b9cb6fef5dc5b2c713cc8d182ad6da446e4c976f2d754a653a6408c8819b53e65825c1a08ab45416d01595e1a89b624989c4b8b999b5fc831c8a0ce95a6b97c4b371a1656dd94035819e682136cca8532c715054c729a1e61d7a82e7bb9661301681e150adc062d102ba0c408d0920df982d94479d2b1aafe32fc7244a21502b22ed8f6117c69a322f293a2ebca07a7c630c00b3fa311d63e60411ea4ea7b5f65a6bad53f83dc98df861fdfe3cfc0567989c2da75e00693a169f2b901c68544085eb479b8fafa397ba2d8d22673dafd2273632186cd05482e6de5c4ca981e17c2953cd6dc5623002033a0639d10646a3b508e99752e598ffbc4ac15c6a04f78ef59a77afb5dffc69486f56ee49afccb7de7aff7e3f8ad37bef5d1a5579ca9987bfe00f7977282fcfb5d67bc75d02502f8a583e5ffc44424d2579ae89f69fe0a906069a8d16423f61118883225155b386a57303695d8d26b220472a600d78fa9211e3c6915af38701cde8718a81428aeaab07675d5e74302c544aa8f1dc63ab83c2d75bfd5d9f51cb544a8b399b2c125eb3f79e057352248e28a42c5684bef396ffbf02100a1cb23917432f7488662fbf3366effd5cb54cca6cfaa243e83b9fe3fd80efbc3e73dae6e16f8df763d8f231e284798d6e756d49c39ec4b026e20f6b87fd7436ca46b9ee413fc07c742499c9131a62204d64b8557f6c5ded90c9ec400015ca4a581cb3455916e7a16bcd7a9b69031a3194a294f629d4c8f4c586054c895e088d1062c33c843b89a0cb0201c9fcb05e5e201a171e50b1b8fb01d2d3dfbbbeddb90f8e6c5366d21791f8e395a1e5623932ba344939e7845bb3d8fd15fedbc38b2a0fd6092ba8314a640b08fdb1d592e2e3a86745fa70eefb0e8b891f40564eacd9209376314a6899312606d53425e5481b632f81912e2fbcfb7ae44a70ce77f4bef78661dfe63fada72f41d51536cc76f6eea131ef767a02b11e732bccb89c80746f422bee92dee11e1c3070bc4728edbd37dfbd7995f62ccd433983dac6897194a6a8c5a0dc92fa31e85a183000250d1d1115514d9875de79df7befbdf7deef3c84f79a891e6b4834b31e2d65fba285142c5b294c412e45ed8a0b2e4ec53034a318e45c76622c21ad8b1c53681752dbd973858dd65a6b1a384fc9cf6a4e43caf7de7b2fe247419c7df3cd37d75b6b9f2f1e0b02b6caeb0b2aa85025179dfdbc56c9d5e80010ab34b5a3949b4dab45b6b236a305851a5d960e6a84516db9b0b424b36660a347c60e5792546908324c3e586421b36060b5b0ac9ab93136db7a60ac5585b074385f685ca934b9966a0296c0a8642d1caaca0c8c0e280063190000000018477224c89214ca1514000720ce606488506c585c2288452262481c0a45511c09310c04210c04411c096229d9d9006f708ba316ceb3cd74f3ea5df2674bc7965f7a64cefeaf0aee9f40a631fad306085523783420e88da51e45cd852dea1a4ac94d240b494bbc61c8d204b2b65023d1ad705d8f92353a37593055663e248275378a7ae07ce36a6cc0ce3776632eb84e0e6f8eaae7da267a8bced59abc83152d9da10b598905f3e49d3a2ce20d42d2cab69d5d941cd587f28a02603f3e93215a9afd71e689f28ad82eaa44ea701497aff478b1b71c97b470b962995609734f9753e3e5a0a2dfae483f43a2290a398050063885e41e9d5937d33058e89793ca5f8eed1f839e849ca283d452879b528b62e82659f2c055edcfc8c138a430ee44e988bb570ee28b947eabd8aea6506169eb81a184f113db726b57a9d7714f9ce57849e3eda0cc29ce7ece56041b0d4dce1ed988088c84e3e1aaf5be57e0e49b356db0f4f19bf7a7dde8accd15871a788b612e99246067b0965aed29607994f2da15d9f77bf064d2a1d1b8aa2a946f9089820392bbf01515d398b459b6a369b259ccac3311da44f5d4043d58b7ff3849cd238595769d254cd13b8dcc936dfb3e49c3f9fb88224a665633691ad2df7b5a16438764b147349e3279429463f526bc0079a722ec6e5e50de18a48b3ac971ce297bc1efa5ecaac9fbf29d543acfc7238b448336e1cebc250d6be10c34cb8d494f4bc0abf42aa99d8f033a2641263f4febeec4ab73e48d57fc7cbcca2e547d85b540c49ad8dce2b6aedc2629898e25c559804de40c4e337666121b9b08def65b0f01181eed691b9aebd0ab0f9d86da894b6f09f0ba5679d70eafc6ebd0d3de2e26b52ac04b6a5fd24d83d7c7fbea69a6bcd8f40deb9c369e4d51919eb38fcf9ca8ce28b61e8c470c9e3f0fa0ca7c2ffe31691c781da66429ae26edf6c5b7854854b0ceaa2f5916666420ea14cf462649c9d86fbb4e5509d117fd8abe702dddf7dadc08d849b3687bc0b72c47035cf21a686284afd02cdc62e4b12a0c1e6cdab3f82c22db4f8f791a45dd72d63f23f353731530f437d3b40b12ccac50e12a884d7ba2d05df093e950845e30848e1dfe0512531020b94a52c7a399801af0ed560dd9911e5cdc3d6ae3288ee3d8308479cd7aaadb222812e8548c704d090049f8626401b93b6703644e56d1373cfad0eabcb6de9d65c6f92b79da830437acf3e60cac854a160b7eeebc1c8da52a3d643758b08f478ae62f1cb11c434ccdd763d82d073774bd59fe529a1ada731b05703542238bc0273907f80837a3a26a468de47373b29f3c6ee43c68cca2b3320762c026cb02a8042d5a9dc0264a86a8cf88d613eea434ddeb47077ee733e061b1559f724ba78d4b3be8d584f00d09fc112a44b49e3b970e6cc3508833c9f606b4e424590e4a0fc42cad477c75ce020f7fc03d5388c81f43889fbce9d1d76d815df66911132157698998be238c469ed466ca92b97ee621a44d1f175053da83b8571aea58825f3f3a19259bd1a67a085f47a9f618d05f86b21986d11a2e5e024d169828f66d56be71ce59f516fc4231546a66640c3aa9fe39b986f41d7116314c52a9020b52eca237550080de985d822959d1b5a79f3eadd287fdd6f7fc3d94861f09d8f300b68d3c799ce2318109f3a36392aefe3d0fc56cce9358f03a12eca5071d4dc4b9816e762c70fe0cf438b710b2aeba9626e46a42f7081444ecb6e17ad674977195a8bb0662e599c52aa9d908835b5f5aeab40cf6807959f11ecf65d8799a3374119b7fe3475c5d91d0abad9bf9c1a97f9d34b6e2ca7fb7c10db715e57d4b6b16e0e963a12a971520c54cfa0a587125745fc787d5c6f730bb1bd4bb12c7bea156a6fe7a132ce20f90bdff74248b9f8e8a24865b8bf2a1e23b29e4418279a974be90df6b1de1e4280370e8b79061dd22ee468ecbb1857e2beb17c25ea6cbf1fce3d8296dfa2b0f7f4622bc9d4a1c2fc62c089040538c8bb96994b814f32bbf9d390d91e08599eba7b61a4906c3b299a8f1dc8a991f1897df3594855547626fa45980da89491745ce2a66a9873563968d58fa5add0b9dc80231bbd1f0dc2ffae2ca9618ece000237a624b7d10020375e4d76b24214d175f8c116eb5caa911e91c86a72abf0a1c27f18497a459658fc947fa3433ab84cd33a735dbe42c20920fb181c8c87fc20673eca86320c63ba37844896b277ce55d8140d9e949e50ef2a410605caedef8199d8b353338018a1472608bb373211603399cefe3f441c3ed21f8a51912b1c7da1923a4e45f72ede38af4a1fe73686b4c0ae7bbcbc74ddd1d3900f0758e1b38133cefa89a9d118d33a15fde503fc18ecc6d9b1ab57e1275e99279ff54faf649474e98efe8fd6d87afac6c7c97791e5bdb67cc0305e22f4c4401327b15acb13aeed2b982fac1934b7aaa54ba0c7c91fe0b80a7d521a20babded148f7aa25119aff9ba639cd6b37d4fead5a9675e8e0d470d94b592332c36010f5fa246e837af782932307f2c021e7b94a25f292c0e0ba6ffb617e0052491dc1aa24c6bbdfbf808ac5d7ec121ff989d0232ff32d6aaeff4ef90c94ec259f1922e8f455712487117b4d3587b60bfa7f627c524b8fc3ec875c4905efb48ff82dafe8b890bc83b6b27455a6a2a8b049e0a30d9ce019a6108deb2983dc6a186a766f0c188855546a54e46cc0bf001ec22ebef9d31e762c1689ccc85aae2b4c1b0081de78693be49bac8e00085b432432486d955e7a4018e60b607d447dc6abf67ae87448c080979d6d492b22c8456bef81b69ea25ee09cef9a69d59ed5047350c3d6b54582e483f7a98aa61e56421890e5b475e4f55f51f7fc5a9e33e6da58ffcc8e73504d6aaf897063550d045928064f6f6ba020b04165bac60658fec773301dcd503b9d17297d3fe6303ba02342855c708dc855d196907ef7c1d7187632101ca0fda528c9ab557cb5484f2f9e7b01878b50d1c9262631003ce3f38e6d907a464b810751550b67b07374bb407d3cbc26be9ad6f0cdd152f5da4aa4dbc06cf70461445aeeb391e5889aaecba323e60df23a3c40cfeead1090d302de43a3a9e4ab794d6d48ff717f1a60ed4cb4bbf76d0612d47140b1b1359c570714a2ef8ae2336229f786f07ecce8a6499af91100e82b51c390e95c44074f3390e0f29f49ba1341af43a14d502350bcc687ce15cdfa2750a4cfbaab34a2db4da825799559939272f9ff3874a960581826678440d96d8132771401e3f0853b55fa621a8f70a10c1c047a656c23ff3750e877785f1e98c36696883732b13e4c94abb535d4b012450b50bf404fb800c2dfcc732d332dbe291912edc1fa740ca39aae1ac5c6a30b83f07ff098dd4b065f793a04b7363c49b3e86e582f8a75efd4f740b9972db45c488bedf0750108feff7149225eb0d225f92b467dbb4ab8347a793822ca74365259ee024d02225ed392e80eff189002fefc23192b8b0eb454f2425e087a328fab18fb0c9ab0e257536a8aae83c13d7d9ab03759835d8251b665ff2a966f47018af845c6a03f4aa78d4ce12edbf68b27dac7548d5a92d0478175a74c97ef2094c622f1cc1f8eb01d3cc5f8e73a2138f4b90be248fd7b73c79184899d3e7978ef6bca5c8c87252818586400e724496bbfcd221d0789c8245f335528e85260df438460b93dfcd522f4c0fdf86eaf4993c02967ae8c5410d277ca805da5ab3027edd0dca11ce65275e3e1499026f39ab0ac6ed040d13199b9545dfcc30d5b7eb1a6bb6ec55c5b538a6162ada4e955130883afda30b98d2cd6494b825eabcab0092a23d3e9cc3b93863ca831a6a03b581ff9c712a761d39b47373e549c9cd769bd90d4af88cf2ba4ad885a4dda76cc271fc3fb9ec094a28fbcfbe261eb8bc36a48789c9b823007442357284e9fc5632ad9cdc6d2fbab6266624f83e99858390e0ce90cb537012686ec39d3a3462b7922beb51fabaf4e80ccf9aa81d4006fcf1a2c09f19863ce362bee093ea96539b31c6e4e7352d107647b91082bb0dfe62db203e83a41f26e5f69a2ab63b0e51c26229f864b97b767b91632698d71d25acca142a008cbb4a6354f6f5bc777ccc3a171566b858e8bec83878045ecc7aff5cc89e74403ac6a27a7b43558ec495359bdd6936e1c1a3fddc943f42d021e2793fc64cb1b9c90c026846b4f18df55a6e1b105eb8c403bd1244a29ef1fb699b3a482e133f5f464c3b0e451058ff61506f96bf9ce74219b2337b89e878ebc1bc13d0462b0afe3c5da5a5785685a444e1983ae3377f89da3176a32c869ffca7458ffe41921a761c5838d655209cc4fdc47c46cc748afc9669764c326ef4345c07a6d1c14d24e38b8abfc6291a4c26f210eb763335e08b6bbbadd432cedfd0a3cbbae8925f75ece3e96b41f1a316ab498a41ee7363bf912a3e1b652468c91a3f50a8b9e94695824d7002f78919c6c9dd79e4b4b198803d0020f297245632ed8a17f2fcd1a492b3c7788021bd1f86c5a193ae8c3d8c1b34698b31bc74f962216f871ca7b2c3802d6d75eea7cb366450a368cfbcbe8c9c8d2fcadddc9b58c0c77a60e8394262ec40407d6c563d7870eb105df4ac616eb9a14bf9e0b80e7720a20a0e2adc63a28450c9780593642d79e8b82215c61e12a6ac72a482a97ba687850c85da7b99c278e0978f2f2493b4952b3729084759141a3ebb7ddb50f31bdbe8cea51513b9bbf492bdfab99cc2c293e06a4dd83dee324018ca9ec374af583d60d92d830baff9b1c681cdde1ebc829403b50a289ecd72d491a770a7fbc0762d6a633750d20639a228b1f33c349c30e644b79c75e23753510728926f4457814990ecc0f17ba656b5aa8161e84bec5a36841d0ad4886f44fa8b5ff415afd1f886463802d4dadb4d5716d5f2a2b41ff75433987dc622df0c6254bd9815c7dbce79181915c2ce3fc5cd8a0fbfef417facd4ad5d5fa6817402038912b537a6834c71ce694db28fa5a9b45ff37b4e849701640fa5dbbb8d235d96ee174d5882b9752e316223ae6668946ed1591943c4fb4125f497aa79767c590445968d812858f901fd17ae9ff14a587c845df66bfd87dd45e75299702abe622df71bcec35448972600f5644e18c411180898124eac382147d5f6dd8c18b6668fe2d441f0f25345a5c85deb1cf51e8d243859e87a242dbc235ccde84e1c4643f79e1bd8fbe6c6ca4c24be028644a5a125dc2ee4d5b8842f27013bd003176a060d9ba68845b81c5109bc5016caa69e903e0de2615f16ea248735f3b732b6212799fea1d51e8528ef2db8c11a31b17e291ad21725c7df4ea9e91bf6de5d48091dfb67f8a5a300557f08ea43ffee20b2930ea634c3433678679fa8755f9000269f76fbe4ee7219a53142efae588c122cfcb5766f3831f0fdf2afaa37d3db0a030c3d46571e6bcad221e8e6417696408fb17074220914defa1eff2560ddd939494d0015b7278576e33d56365f4fbd2ef741fd254d30b7da46880c0303a222b4ca541d5271a9b559de8678424ca89c4bd2a9b41067a7e1f8eb147255c91e8edff4d7ac98be0877fc36725a2eb25cae843fdc4447f8e91e89e9912811c19666888176868f3b85fea4c3b24b40d0309ede82a232769f1564649f7837eb2fbf613a59f1a89cdf6748b35629b8e3ca923cc17c84c67dec237956205dd79c92fcb28ba44920de9fd152abebeafd0050790ea7dc1b08afdea022a67718c78df77efba6c2f20ac6a1028633e26ac32fddb34457913ebd4cd3d9e8965531ae5c84037dddbef515666bbff9dd9f074ccae5ce43e4658d16b85a84f496ce83695b50ae3a78d4237c4b614ef9b5415b866c5416356d9129a086c702998406760522cabae48d755868b61c27e8ca2c654c0e9117ec9926345193766c1694d46a183cdb6c2acb277fc2224dd337524cc71a0e110ae416f06c7cdd920d3a0fe39c74ec74f56958b106427393eacc974de6ce4b2182e84d032d3e31c807898e23b961625a3d3511f3cde13b1ec84ace3338dbb9e4e7ceb31f0aa168b6df0b8b2fc304986f676b24c626e16e4929107b8881e02c8d9891db47820f3b0e75b6b4423bb905742043d2198cd204f65a1c6cd4814c6b619cc250feab8495e981277860dc9b8ce70cfdc7127d0dc2d9b4be3684a5eae042243286924f93c2fd120e55b9d15fc17cae57a46074b61317a6bad0603aff07c702c0f64d2be9757b63da7a383c269d9c8fae0d592e53c0fc1d1e8ef4aad4a4c136481eb8850ae7144426056f28a6643c05ac0c26a98fcaa943063f4273e0c6d14780522bd95e5014bc5eaadd2007afd787d6040cbc9fd080d1cab424edf59870dac1ba4af8a5c81ab8e1d66cdd4ec479ea014421d0582cb020fcf1b1b1863e5e0d0ed0d3090743b85e85a26f813be11fb402342f0319083060fa53df25c6b8ef8811d85fbb90f774b034b8c1d1c659f1982543ef1e6125c3e419e4c0882a54768cb9f254a6bbf592a552782f0e2987a174443efe01138f4f26783c6ba5b864bd9d921bc54444992e8833147fbf3358ccd7048c4696f6ac272111adf8748818489f4ac087a3321088745cdd6c56e4bcc11ce641486c456409c50af98702e4ece54207bd46fe66c784239545edfab6738608bcedc5becc9e630afd4c760cb3c715c967ae6865f741c4522b2fab433b54805e66080f7458bf14991984d2b94548482ca5041730040bad8547c2dd177424c112aaf40b99a96de7a8194bb169a6eaa6b61f2efba5f0d7541f14a5d2fb69f3baefd95b56f2c36a60b12d2fe377972d97b561a32c285e04d8e3a2e197a6ab1cce8e246b745aef4df501e1a7af55b22d84bc898bc70e4251ce819464bc9431c960282cc76429f38d77a7cde37b52ccc77df661911d84aa0dd0fc496b3ed9e69d69637b5b27d336c459bc9b31ff0af963d13392df61ed172a9d08500adb3ae565e15989865bdffcb01775b3543f7b654f57c5b59c3cfd6ef655e2b3be554ebdad9d24aacefa0751d10ce0a3ab82eeb65dd17328b7dea2ebc6fcbf5a50b5184e8b5fe0850f03da90c80218222fe5fae3ea3e424bc07a83670b27db39302a1049d1095118d5bd6d32fbd3c8f14f879a38e7a2bf45fa4ced8d858e4b01a0600406e357527d7f3b09c32be03dc141a74a66e40786db334b9f51611bde010268cffbd35a418caf0436563c5de3b53b2ac64b522baa274c2d7bf1e4a4c9a5d0e874c9b05c8412651ccba85e8b3f9c36c14c0168a691fda84893fdc207d440b885f885600ea110d470024e6836e39464a75db4707ce7526dd0318268d8be53c1855528cf4c10750a4e24efb6699d1835d5538faa5ec656829d8fc8a369fd01fa49699062e18e132dffae312c7f684a0b755dc8bb77dcef860675560d73731163c7c0b3a09148141161f545bb6f0d918aa887eff47c5a118aea2d26ba03706b2e5c0e4f72659ae1ca88f411278b277e07d2dd381cf2358a6f4c9e4afb8fb81d32ef4c971ea9544a4ed2136709abc11f5acb5490063bc3e8c9ed47f2153224af510951195b27db3e1d1162f9fdb6c8237ee120503b4c718223b87d56227da17b2304db86748e403d26ffa64a44b39eba6da9a1eff377d24245c93aa56caa0901b56d0d20a8e0e903bb618536052c76652bf7d3d4f6688d991d20d0cf41fabca23c47fba9a2fc7288919038c674a3e4a9e5a516427ac94fa4fcf4ff63750b1a0ec177454f67b36334f297281b8f400e83e8da072cb584f8d2ad548a355fe49a618806ef310e80541d44e5b2a8d57ee64a273054548abc1b5a79052795d79e62ec6e2b9f2d2248ca538f196150806aba38821b796dfc2f9bc77b6720acb7c90acb7e63a5b00869ad936441c12792b160e09d410bd735b33d60f8e1538aeb141d2b3d7b44ebce3ea00694371043711aee7a23950316a27d1e516b610c335d757f7dc8862eead19410fac7d43011905d16629e45a0ed1951371280c5708493109cd3b3957f729f6d500c975e9d8e13c4c8cad6199849c775c0b00c4e840041ee14a62f450a5a88d5c5443c84236d7bc5e1d7221880bb99eb81f2870542b13ca1572e9e815af47fb9d8843395e25520fac8d145f05811af41444db15d76b09236e7211be635e93133dec7148e293f7c85608079f609f926a49f14b605bbb1f5a3420e3eb635a243606bbbaa7796e449138b0392e064a8cea0029a28fcfe37fb68d2a6f070bacc8c421211a2658dd1916064df3f5456147ff89178321b200a52381700cb032d2c88da6f4f70ef2bacb55867daaa79955508ea671c096c630ffd06f43fceb2a902291ca883a14ec704b09c0b00c9d008c79fdcbede938f1d3b7f01005cbddef6133527074e724594cd2eaf7eab2a1c0b280c36d2b1c7234afd442c026a91199cd3b0f1c288f580c825a5f30715f885834689870e23b928e8a728e6187adba36c07c421e9c8c1f41106b0b1f22416520ec049bff4089132dec4ffa217cbca830d31922d39ae8146850d2b166e323e9d956550e9416670fdeb54953580527535560dfbcefcac9865fe1a16a1f37b3bac60adf1ebe602c1cbe9c2cc23e525d2fd4b4dc3901cae28e94f10a40146baed80f61bd4ef45a02dcf76b96cb846cb5a8e94d63bef21970b1f5f1b89c51dbbceb56561fd4218d94c9c676efee015e13bf078f5c4f65317a22bcbd063316a1865823927e9e7c120a92c9a68865c362e7eb5c6f494db0f49eb10d7315cb6ed31576a2c672896713a0bd9205e8463e44d358685dd154418268b8f5587a322feb6469990d83261c406da6194292c4a169a73c484bfdc6d259115acab1c87b0fca5d0acc2bfdf91c5a110fed79802ddc836dc9a0c752016de43934aead5fd105787dc9120b10e5a47dfe65780628eaec66f90e0762aa832c2b3fa14b1b43575c378f6100aefac3c829833f01ba6371fb981a3b1c60ec646628f67f1f1332543a5ed0751fa92e2859a1299c8638262bbe8744667e8157f65e5fec3f13f5ba5fee9008efa41ca9a6194435c832f4ffc8d48bc9e695e03fe10fa6d76374b19cfdb139ff4065360d4a78ed80268b0c7020d46d77052dfaef38838eb29d2ecfb9683a40a4d32c7090770c9c168088d3ea00df8f49c0bbc3e7af98a79ebcef6cb2e0de4728e2712a43a1ac594becd95cd6c94622a64300a24890baa14fc9302c45a869c0c03fd3aef9264be03217f4efa51ef49e9103efa91893f574771311134be1c57730bd2170e85e0bcad9b68201ceeb2cb10355f323d6cc50b0357303c073d8cdf530c7f3c3c9e00034d591d4bf56753d2fca4ccf9c13b3b35e64d89b80f56c6cbb048e7a24027924179838f29e6dd934294bbf843fde91b567db6a0bfee7f150c4d1efca61d601cf36811953fdc95471bdfd1822c69e7fc396750fc76ca36e8b27e1fad2ca09f1899c9fa694d470610e643a7d30d9b5799a134625e5e6158e72516c3ccb1d43accbaef95aaffc50264cf2c84bf2ab367535935c576a2421dc05a4c5cca58bc9a81625c7f57cb1d98843f49a4d1dba4e45411c97af8ba852abd93c9092f9d3c749d33b0185fc0b31290272e4988c2f4e40aa9280688f08487b0d36a8ea94053f518662e5ca46e6d55edaad6c9eab3a65b99678457e07a69584a0e55659693a88386a3c62993892c74b7769d5909aca47f87c5297c53561bf7ccdc893aacf0b939f3fc582b8667bc2f40afdf2714630ea8671b5f0727e5136fa14aef121ca3dbbd9917becac879dd83d3ca133daec2e35b168ca39532553379d71662a355fc6638cc84f2eefacc5233e0a807f6cfc8df502ea0f63042411abc244df8a91405fb2a81d811a43b06473d2bf70e4c428d2f465abdcca1b96b89cde0f062fe80ca0f351cc756042ba836ef584b402b824f380e0dc8f072ca41e0832fd501383f3b22cc919bcb40b5b43243cb28a8858f417926bdd6626c60a3b8922f029349c007ad386394eebfb729eb7a698aca15cc2071b29491fa005f1ac1cec38b9d35fb1ef6b8a6df8e0448ee034032d363683d4de4eac3d577251456a30ff86ea5b147e80b6d283bb942db4c5aa2677a0c0fb34e3f616800c2956ecbdd6a3abfc33828b21da5b8fa1d59478a9bc27bb477779a4dc507baaa34785c206fb4dada0f1f21027621aaca281ba4ad768357636a656a75c4b2bb4617baa17c5a909f57395890a92ed704ebe2dcc4cc07c5ed492eb084201ec421de4a0a7be49ca79609ea8bcf9726d147a989daf5481bc3e6f9c48522557ec2aded369b328c27dd699a0ba9cd3e85b9a878a9fce61c2b02d9b6c85cc116e0c0908a0413cdfc362814d67c9257a02559dbb8c726dbaecd81b28dd34a4b97d0d8f8e80de59d5527c0a75a663f09417d84e0ca9557c210d8bd31f401b5b316aa6508589135700dd031e2bb381538a33806699a8fb5fd8989ec66d958dacd70cc013bf01e38fd72daeb55a7cb1394c18ee7b80ea78d203660ac161338c2bf9fbc297e028c741a47646f3b7beb3d54c274bfeef611d2c32182627c3f4c6868593b3017f3177989300227d434f97245ccaee11d6f1625cbd57f7e12d9d01ed456ac3d193a8255d751f0d225e9b1c0ec7e67e439f6c9f3e77ce799a5c1389045d14e738b1c70c90b7700bf7cf7c75dd76bbab0f41d6faa2a1c3a6810577f708b28f7ef0b6c63a038dad9f693028d3c20fa95032ccaa1992957a9816bc4135505ba11ca7240bde68688ba3e1b733677f50c87a1a52e1f9337a69faf231159abd90468e23b6e800f0ebc5fc11c8a2b4835d31a858215a4283cee8a205b53bc51242afc9d933da8b2c187e51ad47dc308d097c4015dc7e1d99673586698e791444f85b7998eb048d5b4aa694416b080a7c80fd74c226e69acf2e6b8f561efac3af87d4377a9d85ea118c9919a646283e6771718d245749b3217c08a55f4f005c77da44e0c3a334ceb69223c9f9b0e6756be3a11bca8f477e278c313a13e933d32c4daa05aa418dfb44ca987e1489a3402bad8f63403a684df9009bca0518d1debc60aba68d30e499820183a6c380967218b3a3dde7f48f7f2e73a7ff1da6d010683d318e7157649f2288eb0c28f855348828b28ce4ea07d7734144ff49cea89d4fecb84a3c03fcbacc880c2130c05b5d413b24676f2431013e202533be887f4a513e3376131094ac5e74c900e27de882094420b213756d3e30f250b3e53176a8d212d387fd92d8d1c732252db324c8925056e5ed74762dbb78dfae9d3efae3123af955d787882c4d7a1245254ef013a9dc13a83083f36b75dadd05fc1e750aeee7f0a385a68cf5e89d7401555ee6d7f00fe1ffe65adff6b67a961471bd6468b608fb0adff0105ea3c5ecc4839299c772d3b70501f6dba90f5d3d946e43361b707983696005ad866ce9a2f624bdbf8099c187d2fddd1a0b91cfbc48381fa3dec0e3269dd0376afaf6b87e010b4b490a2c8a4ff8227403111caad5720199e72c6044ba4cd58902f9bc4fd4a5bcbf2e16e95e13dbd16ca24539584f7c82c09aa9abe50f7729cd6934f26c117305ca2e07b143da54c9fdc7a6211ad3f1ac95e42f4904f8acea4602e4e7fba1d507eced5a4abd28b498c09203a922b06132515249b6700abdd40ba28b1d8067dc87608ef9e226d84139dde310ecbd7a5cee8f41fe3cd58dfaae03412ca0439d202ae341714295879e58291003ecbb1242b9fc549fb78095acc5cb721657cb7bf9ce076beae578648e88cf97823842a344db69c266ddecf3bdd9e913a45d125c15294f2eda1f63a6b2543051d49cf6aa966da3b0987ec13680f5f91805cb04228b1d2b49175a37c8b4f7a900c3a04dd473e3fa7a19ae86fae6dc558e0996168ffedc2ee1de70719fa707298702fae49fcdebf1fd422d080a9828f82d3e2bae25ef892288fdbf8cbfd46b8957703143b3e4c12c1d7a80ac8d29a342227fee2c8a7ae3f90b8283c3033387a08194f310ab13384d4d67af72ca420414a07c7e54ba9d61307df53f7b5fd07ff2a0319fb55a73c0900649e90ee66fb9a7014e8b7570661abc40c9cba2d8109e254177989e09f426f66987df86992ccc8da879d71b6bc253dc3ebca5ffe13a31130154e150fa173de54fad47d6295308e693cdfa6ea9b7478d915f976929a216d73011c248b1650fa927bfce433c9681585c520eb01384320a9ae953a81f531b34fbfd916e3f0631f1db75c85a1313b03f25b3cac7ad6c28491414657b11efc222ae0614d791a228bac5f4b8a41a963916b16a5f582f225b4babdf0d7a266cf59605f9c606871b6c207fa173cc1e868263cfeb2d3f8c1d189e489d8c039099ca6ec40cbbe280675e37fdd5efd3208b73636bfaa777debdf1f97e03f643887a5eb56811805ea8ec2064e59dcd860f193b56be3a28e8fb1363b4561ac34f5aaffeac1de5a649c88fcc18d15293f8ac3c50673f60c86a46ce555026b60af65ec710c9836a2c6a2b8ea20f162060285e108859a1364ab5933a093f9ad4ddb36026dff547fc699b2e4ede23690427a6f09fbf7e0eb41a0475613e378ce8117a0c0098dbf640b9b8f8f0470ba9fa30341283a35755af1b93f10fb15b7c9bd255130bd89fff8287668203ff2f88c6e5a18fef60a5298d9b85239a4f1dfb513ace4d3d423442c1e6acb412f4b58fc65362044ab1ba164222b7d477855b30d0705d26cbdb820429d9c83af6cd74eaf0a98b238e4d22ce0a182a3c0477d715903da97c69f34bc911129adbac953c0de3477881cb41fed82f5f3de2e804dc4014d03715378f29c3b476a2ceac7dbea5e676f4badae7b9afad511bb3bd10320fc315be2ec89f36eef6807aab9614b28d13561658c765e8629651d88f7aa5469dcc5a47a7e2842b4767ce848a1825095e4e52bcced12d031db11310c9ce2785039a2a3c0a671f2cd89bd1498ecdbe50bb56aca78697ee00d6d5d0e68a0277794ec0d4f4bff47b9bb539a725c04364f28a1419d410bf2a48dbd3b4519ff43a6551f42b6f64be36811dfb8ecfa7bcca163c0645cd5a5cb2a7a001abbc0e03e2b8e721e02fb803fffc06991ca0625b0bd020c19f4229dd19da3c8a896f87de0f5b82aed82533d772c6b242a9af1c131fd1f3f120e6aee51c8996e0ca0809a392e0c616838cda6a4853f252110fc43b2ee344d180b2a022d61695ee2ba28d1f0fdadd553db860f6f763176f270afa93286452af86f7c4e844e4161ae1a146622636e227539a6a24d5c058dc88fffec332af33822bb6c88911a2f09ba5244a445fd0b8ae2de59e3cf6af3827f15b47862d5aad7fbaca6be03d3076ce7d51f646c619130f015e07e2b23e99232764daa6c7686943de3f6e2a6fe5b3a6c06b7d9e37afa69fe3f1c3c80143f51c18c3426dd5973dd4de9ae57ff9ff215dc1c95871ac24e7cc78c2a0e27600d5eff1545f4a110c3220f4eb62cf299d65cda591dc7ca0dadd958e4af3c2812a616d5a8473a299b52bd9df503ea736ca063cc1b5d1d214ec155657396e04055edad144e9f03e5928065429e7013fc9d5a27b3429c39ed0c6dbd5a41f8a1a078f3cecad9018b61083001d1c196063e3a52d94a718d6544ebf260c36f53e63d873b20b015d48eca5ab217e711fd230ce4f08740df033cd6bb28c10e4fcb15654d53e630e30deb0fcc4a4e302d5a47763ee013b230ec28009edee849b8e8d18f87c3981ff752380f1e8fdcd6b0da28437cbb789395a47c259f12fd3d0144930508215e5e9852f51cd230ce56a5694166f6a584ad179c9d496d86eb96f926a9fbb1384051ff482e6e3fa51b8d77aa5c857cc0c8e221c464d4871d87972e60c48821696401828f25e3af32b376ba6a4f3dacfc3cd53e5ec18074c93f095b78adca212fb8c321f10b5f4510f5e44e81d092b5801537028305db8dd56f78ca2fd25381dfa64dd541bd950300b158712d254340c9514d2cf3cc6a5752d11c18b09e76fb48ccf0140d26adabb58422b9bcc877d883d7a837d3d613955fcd50d355389b6e0e561ed19381641610eaf19b1ed4a2281d08872cd1d31883c556cb31cda8d040c946d91f84de97f799a35e728af108281eabbe547df6849563ffc337e6831cea674271553d259564ab4d994064bac6e1c0d0e85c004d54eb02000a642cb30b3749ede871eb088b05690e736a398ba6292b15d3ef02b4633ee1220f55427121041e5ba32e715c752970250bf6f852563f8b4be21e9cd6d303601c7d296d0e65305b43b9e78670cf903874f27c728a63c5e4980efdd03d2751bcca4478a013c293cbea61af2a59d6586b8253606f0ae41a12fed9cf58c684c8bd62c532fa25ff9d40e43db7fa870968ce0275f1105dbcdcd8a9cc2e818d311bf42e9be40e4ac95806e1f313eac14dfdc8f04614c863ed751b90f206b9c2e58194cd2220cb4b0f693caa40507adafeb154cacc42cab61d3beda4c24c2a1162b12fcf30799d084228f557437e301690a7f8b2fefcbeebe8d0c383e875a53362c1eb8a5dd1c93a759f27682015f3a18eeb28785bf88238542b8f8516a087345428235ffeb5c825061dce781a0e79c34163c5079e48ce4b82ed10911bd2648ec899e1bed78ded3288119892ae2182dd488ebac25d8c715d154f9a7032d381fa633b09bc6385a8a8cc1ae72f6cc1bd9743250cd170a4f5d45c20d204762f9843c1497952095c65d066f0d6a384fe99f30bac6801f27fec0f47db318834cd920830ee8950516269924759035dcbc4feab53b8992927b7969e68b6e8048ae86bab6f19a1a7f62cdd4dc6afaffd8bb34a929f4b81a22b4bbea8c19731d4bd14eee19ed224b93921a9ad4dfccea6abdf1ccae7aeab5f5c373a3b347181012ebdcd31306664c7f98b9085ac32cb50c6980fb2326ce6c4c4419e2420f5efb544057640d00914b671f7c371a49af2644bd2658f73ad553a0dda1007947d560c2a7b8b18e8a8bd82a23d823f987b67b3de4c2fc357336fd61bead472170480e622fd3f64ebcdce93e5fb62ada61114b29dfff0b28662d4f280e6ea051dafc0c5c00bc6a6da15d9bd012d52de2499c189716eafca92265f83c0681af81300c7856a44574c46e49f1545e95fdf0d498bd6b4ac95f4f72f7258a1b98b18d356efc261331f4b55ce33149306ed172590f9c62fb67ffe9ca1e09491bdfa46255045baf29c5a3f92ea5abeb749b9fed138d8193c98bc1510781b325a13275c1a2459bd370f2d41458ad416f23247a0b6a5739809a8c3e3d5a3617569572da8511252b04e4b4785c4d93bbba0a57eb55c215bb14d1be3647aae996beb267a868b00faa6eac5b5c46e275f783f1ad17bc0907843920f604692b3385675c2fbf7b150b75128840187103c493f9214bcde1321463f8779cf34398421000ce1cca755d43396d128e1200f1c99d59246970b6048aab3893d8fc2d9618542df5e5b1692d796b6ae49f2fb9a9748542ddf4d16b930c53d2ac306c819b4c6c702b5f2d7f497d129321eed8c1826fbcb8c305eed3c0378c9842cd6698426ffad7c3a9ded90c58a59bb064177cdc80dfbce9001badc827b10263026402ed02602eefde4df82235e021ec011198a08518cc805349f0dcef9a202244101ccfabf4066ed6f330c48cc67daf9bdbaf7ddf9bdf8c0591bbe8b28040e79a7e2ce580aa3a3e6c7adcc0f0b85989fbb1e30d2eedcd86db8c36176c546b4db5a3188274f0e43891662383c386050dc8d90e331d6537c8be6ec0a056d980aa913426440329861366c20866a2e52b88178f196a32cabac2b8626c59c5909a2ec168f122e92285164d564d11ab06e5ca87159bf4ac8a46948b0a6bea09653e8b9c3f52395126a0685e9e68549a724e6e4d38983598642c69294d253921191d298d769637452562884a8c683137042794830535c84bf90228faf3e4839464b1a20779ec31cef01849ecd0e9c4e5c4a0822c05188a298ef4187542e966c86685091435332568668825ea8c3d66d664cc62c460b65eae5c9c452622518b0f09152c3523645c56645254aa6c4a1b8b82563716a48b2e0b0874aee9c7520ea8aae3c3a6470c0c8f9895b81f3bdee0d2de6cb8cd6873c146b5d6543b8a2148074f8e13693032386058d0809ced70cd62282b2313bbc145cdb23155a339864443486c45580ab09aaf9717af97951973327674c5c055b62516836b9a0563ea45d305929650d60aac145735562e2f529795aab9e80eaa18a6caa062cf22d75f9d5912988a401302480f1072c08a06a460408d88e2cb028a2b0a984bc08e103120a0ec00622a7005b30c30558026019052101ac00a145298d400892f0220ae04600e003b7e319c5056226602979c0562ea43b3042412210f2b3aa420a1266e7919a16585c3dc861dbe18349465101be182b344a6429a3da45788b7e2ef54b8365fc69368e92450b8dc06c641600a703a06ca31490c2db005068129f0cd62d6dbf6fbd604b89587ff6ddbb66ddb07847840889685c6dcb6f22bfbe2560ed1b621768b8c31a11d4a195b2b499eb64dcbc14b5d0d94c5450c586b1bc786b179a21a42f8f69ea7e9ed8d80fa8242c69b09a789a914bc370d24c5f0155747822d878788b77f7f63d8d78220461b270dac1e25e88c11b71394c8727b4bae003bb1797a7a9b27731828ff78881fb3d9cb6f90e7c6fba02c22c83322c3ef6e90bbbff7b22e6266736cfea661fffe7f3e4477f71709dfffacb7ef0d7706efbdf79efecdbbf73b301134e2a7040db4af1f2c0d6d4727aebc6430c5ce9efadec8260e411834355274c1d0f4ac5c3d2dcd9e4d06316c452dc170dbea7af2f5edbdf7de4b95da7450440869d0c52edaebdfdf7bbf77903dbeb58f0fbfb7f7defb2d421a0c11f4defb92a10d4474a054fef9ddfb730786432b03e5dfd6f1b1018e615f081d1d3d19cb7befbdbc79f3fad4b1310f83ec4cd987b127204a3232d68cdab5a29823133b8a3b441bec4e315621c19d47ab88587cbe18e76bcea67bef29fce23eaf511c3fe6e12f58b463b77444ef9eaf6bc8ee3956e7bedf7bac33028677eebc3ed76c62107bda7e3bfbee62cc1131ff7b27fda26235622c29587965e5cfca319b06809995d7ff64d420e457fc775ea97446cc43986bf9fa6ed5d83520453312692c985ab51394e2e894295ecc20ed14b74cbc60c990f8ed1436a9ce0e197528aa533168d8ba2a71c336c36594bb5fb995eb23e4fa24f956f810bf5103e76bf34ef2d0901c5b9134f2acde52c1e366e645c6cb8a351d73effd5fb5902a7558d5400abb4eb2f03f5b46492d6e9e6488902e7200600aadcdec4cc556553cafd2244732436147b0d4afdfd6042d771364b66dbb09ecdc76bf4d20422b0f8930fb92e1e6810dd8033bf5c076b5402eb3731b570120b440ce8ad480f93bf30008014ce8ef3d9e4ac193f6de7befbef7de7bef2d42baf7de5b84f44367846db5ffc3ef7fe79c5c4b6d405a2f3e5e4056883baea25a5b44bc4fbd1c93a89042612654156adaa08ace8140e133f622ce4545e54577001c0c13b12a84f3a442fa9180132f335539542fd6b4b8964af2c78d39479683aa47ee072e3138d1e041daa081b57f0cffb7771fb0bdc8d924a150bc48a96632b4d5252337b12a1b3f7884ac74fc6559eeeca659c4120389cec7a621a30509ae331e3154b53f86ffeb831d297c6254eabaac62e8c181b8678b8d8ab01a9430aa968dbf1c93c4d9cce0b4cdd02051630a2c43cbe3032b3464509e86c074fca45352b33b0f7fc10c41b8ef9df530afcf9caeb937afcf1ce93cdc70ab2673dfd956b45e9fce8abf2ec3f804e3b79f9c4f4bdd4749847beff7eebbeffd13f559fc5e80eec3e34200d8e7f8538063d867e413c3db7d00b0f789e1e51bf641e9f18d020c1762b23fc7c103c2beb8af35dcceb700d6bfffcfd2f7a1e2de2763f40200438f5ccf54e50ac74629a374e3985ae860caec4899bea022fb7700c8365745122b7cbcd0a8591af177ac6d3bce8486de7e60fd248b6a7eb29c4ce1e327047d889d9c79fbe625eb2f9175446a787c07e1ed1f9bf79e1cc13321889b4ff6fe0c84f760ef071906cabf17bc126039867d2ba22e494f9bf741d906cc3bf8e2140d7e93207baf7b64ec76ec4df4df7bf7db7bdf93e57d10ee71f2bafb390463d8e7febd7b8f91c806a0fcebfda785db938cf1ad3dc7b7f3af610deeffbdf7de7bef51f04263549d36d51ced194e0ec77c5ace0dad98be085bc1cce08b7dc2bc07028ff4b31160df579eaf5edf5c64fdfbff8c79df77325ecfa90a18418a90c90d1a268c8d2ccce7c828acc6d737e73077b1bdf7deef18de7ba8220c91118eb01f2aef1364837e19418d34450eb11523ae3cd38ea717af7f0e7030867deedf221b641828ff7af7de7b1fc4e202c74fd60ed19086b612bc74942cae8ed0a83726d0a302c6069014351d2e3ac8a13a51a36d692aa944ce164d0c2c62a84ab6ba98267653f7c5336783f803172e5a70b411511569e2034a38a590bef5c4a96c75f570c1447513c30e07ddc282688646b3f9a36b296a4605848282475a9d111907122b008bc1893a5990e05ad76a705479d53d4da9b18cfdb8b1022e2a069d3202b43de16230724271c16184d657d80c124fa74bcfd6004e56965610a38f900eb48495af30258c97184ed4b0f05a15c1edb25cc718773c4ce505f6f1f271fcef7d5d83b5fdcd6f90e8ba448c77b56cf805090d6bad3558151128ff6430169d6bcfcafbfba7ddd65b6fb0e52bc3603d2edcf986dd7928c32b785f73222ed6f6bd6fcee67e5fbce56e288d9091aa4861f3b1e4f6b50adb3309aac318170794b4744667a2e8884c6b75749dd216a6a3d8034886d407fe3a2bf6dee1af183bcf7beffdefffb7efbdf7dea32f8f61df6682bbfff92ebfbdf7aebf94afdebe38a9779b90def6fdd5d47befbdf7ceb58e2c19255ecc95f9108a326a949024154a0d96b5ac6ab0ff7065af8321a67e964678407b7e85b4fb7bce59060439b61053c12633236ed6bab56a818243a66749e519a3e51732afd2275a376aeb50d8218302b9b1d8f154376ba3ad151bb41a4b492376ef015659b48c0753893343aa996af0821441d5d0b1c643c748cfc09ab5d65a8b90fe194e26d69e0109a7a0185e4e49a9291a972e085310e28c969918ba8a8fa8e4cab869402000070d831a040000301885811c8619546d011400081db240587c3844403c48181288848171200c0884416130200c0400028120481c6acb611486ae0000141480067e851ecd32983ea8b4f9a1f2bf2048521bebc67b8ef7069cc41082fcacb580dce4708302a25ee5865a066c01c6a15f023284247f78be58aa06530f943e03227a802461baea176cd93985488b01e5565baf8ad8d1185240a149888424f1c8bfe01010068748134936db7d31cdf1f6a4c9a174cc89d690f3928e2169e91e4e28686a44e657e1534892a33e33e2f74da0b79a480e545f53fdec73a2e6fc38681e36ec04ae6b0a44e563e05e00288a1b8fd107dffdf104206edba969f074d1760462c5fdb70e07b87a7aaf279083060b4b9523e77b2945638ec81390e33abb142ae862fe7a027a5d291346c4b452c36701df6ec847e61ea2369b1c8156116f3d10cc601a6d341a6721022b0a9bb9676d691b016d73342b21dd3e1a81489c4d3d0c18b573a5afd5c89b8df760c8f60c3ac7243b36ac619cc2dd74d7747e99edb8088d89c1e40bbe2ee6abd8e60d4bfb05ddaefdb94a2222c0d78b89d53052e982908a278e004db76d4902d0545862d25ebd23a600fc3fdca04f1427a8ba7e345bc4c158199485d3d16967a185571132de4e63cfa1e02e8c741bb62855ce7666583d4a4930e5a7d3b219cf6ff1ec53810324722ce54999f2a0ae653e6b80d0e03bbe3c374add08b0b90a8ddce96fb8018dcaa981ab9d74c7763be5e65c49b268e7dc32cc8259aaf581b14eaf64bfe9b74e4b6c20b4d30e18b112dea481aa791d4f75fc2de2739e90db3326874ca5ab7c04b0df72c56799b645732a60cc4b7b15ef0e81c345727ba54be77ec3087f26d5b535cd84edd41ed21d15a097209797f81d8304e5191dd57bd9045cf99a916a699464fc66a1bf1b3f6a8b173a9952613d99ce8330f1d6e66a9edb888efa75554cf353d474064ad78e21ae2686f7f99710a92ba5e779b93e470b7548ab953c18cb55be8f1710f05eedfeb895b54a3d4004b714f07d259ea77cd5c6a739d5cf4ca6ec4e558086602343661f7e1a367bd8104e0789b11122ff56aab49958a2dd754aee9ca0352a2bcaf4a6ef6fa2e8f0c8e80c17dd2298e81166182d8885d1ec65d8c5f7d8855c8d1ef9422b6f33466db41a84dd3060654001763aeb3ecd9b69ea11c2377d2c064416443fa3ca76690a2a4e9dade571505e1581181eada53ed379de91cd0b8adc8ca3bb56a9d87aecb88550e233f2db031cd8e65fcbfa6ca46d73d7c6b0f26f39514de808b980361bd07b8ededca69bf98ef76c6cb4e167a88bf758bd05293667e27263b20d40ca3ddb1e36f9fc6d0fc3afd76565d432d9b135bfd7daa59d8d1ff7e29b7130c1d062cb9cf92a1d57218f39ffb26407f81a91926d60911a5aa35fefaf913a826fa763efd008682e0b4a1f5bd6e5ad7afc37dafa4f2c28d01941d6d2b175c5c75562e0b5de82499f4b656a20095185ee2edccd09f5abcfaf7585fbf5014c05368ab58da2162763875aea90cc13580b7fed1f317062738d6407d5c29ff9d0ced2431f187010747041f4a038fe0926e3826b509d465deb88e89656337e08b23403c9eb992132168c731d5797742f8e924d47c14c3474be35cbb1f25777f5ab8472d151147d06c6716d9c98909b3d64c5d176981e422feabfaed14dfa6b343a3d6c802e6191aa0014d2a970f4df6d0547a308c10ccdd5a453b2a151c3c32b2b150f8496dd5e84178c5efcfe34c08f8d185b73e1ff2c578504a77254b4deb0c94ef008d51489ecd249b231527f0cea13adfbe66ee4e79636d2d6235cecd1b1948f9c11e328af5adaaecbd74d49f92fc10cb03d5ac9ca9e6a27797512f51c7e79aee208ee49b363a43988fe1c81c85751016ba8baae830381c7419bb4e5fca67c58b453587c58bb9bbdad8283a980c34c7c36784b887379586b1a7fd09e306c161ec43f4c5f11c9f6a486e7629ec4b51c0c960e2a11d1519466050dc37067a10745886e02ba8acc0d15e9f7bf7b3d6b5f2127ddafbfbf069ba8d3816253baf1400172102646d10b095f694e258b20d37b9e80fa1ee74e0558ee375dec3fd8bc83d2852e4210fecd22f58bcb7259ebb868740995c6a4e8beb22a193df18e77a26e0906078057cc74a508d2cd2648253c2baa9ad2117d36a1a60f29623d077f8347616791cca952a40ac9e0e77dd34a398c5aa1737431c61b1a2e8e680a8d2b9bbc843abc4a40791c745f3d5c793202e743b1f961887b496a12fc9f07e00bf21ed77d90f4344c1abf30100779a5c2dc257da1d003b613f6ba523953660aa3f57ee0253b6624e12f17fe2ea7344b8157475e44410aa362c5618905e7a3279ec349d9c96548c92793f2949d833292a01488a0b0d432be53157a0342496bfc2ce2570850aaab16b493e6fbb73199459b35907efcada8f8438a8c6186a14ddb4a76b64778f06d5800c96d3541dba38c23cd148f1f35f96daa6f0995aef52637ca1c812c8ca275823279636788a9bf706457807637655cdd037cb47136a1e9c7b0c917dc184cdfd071f7b1fc963157b8758c40781182bbc6aa24116c234b94bf1084491c7f764942e897f584ef0a6704d3fb752bd0cc30cd0fd1a2635814a238f764c0842c8a60a645930680bad14864afbcb5a48da975078e654a739c9433770b3e9e317169c6909ff986c85c8c3a5489ba28f232132b9cca6bfc7f12f38922a359f302adb9c3de3a7a36aa81f75a55870a7424a7ca3e774931a89dc523745f08b3433e3f43d8eba553e023e70dd5fa857ec64441d19ef254cd2705ccafe570e5b4660566ab2e359a4c16e67e5b8fd35516669acc21e7e7ae88b007230d10548cd2cf05a0dcf1727c02bace665ade8a12098054de5491d95e9753fb3ea2225dee8b4c71031639e5e65669b6cdb09d19250a3149994daa8325896eb801c7bb9a29de5b5a85224580ee88460bef9d37970eb00cf902f248ad51433d5cfcd6c23111368f4779b8c1a08dd96a27397f898981dffd0950cd8801e9e768c2e9f52b1db737ce5d1fbb2414ccd51271caea5065efa9f9a15c28b22f4812fbf07541277b506e8b6c0344aba853540acb029a2c5b58735bcae2b409c6d928ff3b225aefaf2b76fdabeade0ad49f80089b2063c96cc9c34d0754f1ada551c4d1df4cdca208ff5a7f8f2b9c62c8a7871cae2bb953b7f03067ca4e114dfb874e9206d6f26ba92c04106a665211a03c84b755e0064034903c188b6943c22bd155becb1fedb189344344b5021ce8b03fe84d462777970f26d2d3adde229968402d7926a6d8bb0c7297eddf7815f2dc9ff86f45ec86711af504944df4c35c4a365a1f88c34242c04b4c3c89f65cf85d9026d5a5ec8576b8751decc38a9e08d8d06bf25cee6e1d662a169b00d7a4e93cceca4999b5f0952a7b0a02f9afcd6cc952f4113ddabb24b50e6dc2e874916eab402b3fe6910deb2028441b70c41ab584398058701f178a895292018cf935ed30b41922855b22cd75e4dfdd5e4c6f28413461326a1d777da18f55b99ad7fff0fdb151442731de23c1fb7b9d5294080f7eb7ceb6e94c1cc6cc5fa892e52ef8b1a7b5c22c18501a92fe2eb459d29721c7c07271002a0891ff1629e2bbed5696d37ce9477c8dc9a6a41ff656adbbdd16a6ead409efad8fcad83a08752e088ae4d4e97b61bbda06e70f13b23a0ccd29721738a32108ff12339a45b3a37761e1c4aa74c8e3ac9295dd8a4bb0abe0a40b42313b9d39611d3be4d6bc5b4cc2a34144cd52f16d9d4466fbec17e7a4a08eb9bade556957d2898539e29342dc7cef57b0c2f6ec2b725ab9e74f63462b726c1785fc7466878a94784315d9f32e4fadd70fb9b3357a0385709718e1290702f6d2a92ae071c16c221ba9d3a0c98607a521ff78c6200aed6d1390d0b32786d09b35729d291a5c51b1ca33a110bd6ae2df643dbda9f8bdb9d69b4932c2b975cc9553b0ea653a334b98e6a24fe2276285107e45adbfb86059a19652522662b5030e2226f6528e6ca0ebbe82001c6c02fb295772ea5e2f7a4298994e813b2a4e41162bacd8b9df0313f34d7b6b41d6148599a5192da24b3a34b02f260fc721967be13e86e8a400e776f3beb6637ac9342f45ac6205f5c0154343725d80253011ad7e7869d6fe75a22b53195cd39b4d90e2346ac2a452aca0c60f1a877b7f7481736d0d760a7dd973a88e6b90f3eb84220b2c3465c14297694c40145cc245a76a80d565dec8fb1184880bdbdb57657da355ab8545ff78e5cc449cd99cfaf7696e4545b02576e0ce8dbed33457c1df398158175ee161506e1d10ef104e3dc1f1f4b73ea7988f572f5eb72b8c280c8b0b38be863980e9125318b502dc8fd1059c223185b4716d5282e14d5e9c81946ca8eba58ab2455179b843b3da6710e45a7505a84544a212b3a6cd88e0481c9f21f7172be6b95f743f8f058204cae9341456747fa5e5213a144c75d840565e21e4438ca9b2a0e57b8455b0446be1475a3cd61d8b3ea59991a03890dd1a69b17462d4f0a235cf1cc81a2fc6a28765e8836c66530a48cd47adc3cb17b52a7b5c41b927dbd379092842b246892628702c7de4bc6cf4555f21abb12f3748bd00a4c053aa388fa0c7888c8187ad4091f2c6d5a244fc39e061106460f4c54c4c24ae67cc27fdf395f6472b09dbd06895379d28843013c8d062878476b24c990610414529731ccc66056868c6bffb9c32dbb268dfdb9280faad892ab9df3c207a00ac0f51d3ae4e5c8ed39898d21a1ce850ae737e5d3782280ecf5ce0c70b4259c7baaea2cae7aa005fd372820252727b44f05989c0874a50e3cc3841bdca5b09e3cfcd3ab2cbcb99e6c414b836475fe5b2bcbfa2b0cd6bf5286fefc62e8a44f5ab873802ab3d4a149f585cac4739767b14c8c29a43e411cf1787ed271fbc5273e80cf963967253387c9a581978d31b6ef4e9193a44f4deb950988dcb67807260dafccd94ea3793419f969b7919d84810f0c66648004d46076078a4f2623840289a15b418723520d097a2529b0a6af84ce6bc636f62a3d0f916bcb8f1dbcf15e87b35a6597ad2aea0c4573c20e0257a9bb5a1d6bc27dcc2d0ab95657da3dcaa30dcc6ba5d361dbca47a35dab2dc2beaa7974308d963c8438774ebbf9892d8eba3c34e62ea40392a7b3d54f0b77d4552ce9144e4db3e237a7bc8d9c2d24c1d4a0bd943dfb5940171ddfae7e8e250c2ab439bb7fd0e3aedc88d2d16ed9c73072a6b3924db5b26a0a8790dcb632fe96014eee5231b8ea157b61bf914899837349241489037f2e1fdd4318428c6c97005743929d425b732e479ed7049a81c58607f6a7d693aaebe34a148a4f5a601c9f3eb09851d5adcd7b31e7d33c3fdd1ae14a6bfbf92f3390a90e51117bb9832c8bebcdfe0ae70cfb791763aa33546185ff856038e54b4e0c79835b067e2638f5e909c1bdad522e2faf549d208ad35dd94c861fbad470f3322b223c51f41de0f5de2edbda0e773434b3520a0ee1b2347fb3245b56c942b8bb6ac28ba590db258190dc538f95deedd4b27d18eee113d8aa89122e9072013b1a947f469ecf76385ffce551b7d5cde96a812622ffd249adeb8cf733eb062881b7dc36201d906edbaa6a5c506de3532eb592216918ad7fb23fc8cf19289a5e34581b70b3a588beea177d485f4469b475e738a1ae985e4f8c4aeceb2ab79c7ea26564d87de36cdabbfe6ff7ca2e500588143fbb27614373475143d9c9217519c488a23e10440213c0a696bb73e506a57a9da7fb9605f7d130d0118a6420599cffd731babec0edec74006e97d4f4fd9ff8a118a333d272b758ea7b37d27e83a8fc4b9846966eb9bf43b19d5791ccead3b81c739a64e2d9cb3ea4c3aa7b138e7e1d49e3374de3ca26bb6e1cc1627f69c8dea3c0d67f99dc0e3b4927389ce59e224bfd32c4eeb70737b68065ae79a9c65744aaa337bce2671aea7b3fc4ee03aafd4b904ce6439c9ef641534afb3cda57782d7b9264e253827e54c7aa7b13ac7d3a99e33709d47c4d9863359ddc49e9a8dea3c1acefa9dd0e33412e716ce49ea24bfd35a9ce6706edf19689d3375b30d6e4aaa3379ce46728ea7b37d4ed0759ed4b905ce6471b2ef6454e7713ab78e4de06573a64e253a27c59975a7b138c7d3a9bd33749d47c45906675a9cd873b6ca9b4773cdf69dd0e3b412e7129d53e224bfd3589cd6712edf196a9c63eaacc1292bceecbfd94ad91c8fb3dc77826d9d57eadc02675a9dec7732aaf31ccead77428f734c4e25ba39a96d26bdd3589cf3746acf1938ce2b7296d199ac4eec399be2bc9acef23bc1eba695b8b9c4c2a9e6b172363a72bac1b9664e263aa3e2ccaacef339b3e544beb3519d57c359bf137adf349234b7e09c2527fb9dd6e2b48e73f9ce50eb1c13670d4e597566cfd94acef174b6cf09b86f1e299b2b7426ab937c4ed645850b26cd3cf04a786a55607a706c212e77984964c1bf3b51d569abce179c55d9c931e7af3ab3eaf4dd9b53854dca3b6de53c4da7ea9d61c7b91067179d53eac4ded9569d93e1acde19b44e1b71eea29b39fa26fbce26759a8673f74e90714ea97307a79c3a53cf6922ce753877e7041be72d392bd066aab6997a279338afd3d93927e8386fe454a173aa3a39e7b48af33609f55092ef1c0474d636a7279dbad366e6dfe4254898e062baa819cb283595c3851e7ad4b12161a9660371d2a90d8ad2c01b1561b92016337295409c7e988def331a6a4727ad610742b0ee47f6c36b98561a43ef50766682f784de13eb20e88265bb70673389afb6514e64006512499576ef5191096bfab781f4b6ae26d5a325d4b3930bd2169b154d882d8f00ce7d792779ca5fa061f5849781f5d0f59895a2ec1db695415ed4c521fb7e8fb61be023328f80c2508415694047411d8d8b4152a0f4e2adeb0c7c16022aadc9575b308cca4a079b9510f81a9314ffcaffa0575e1cc41cd3d8185cb761d889b95702c38cacf2ba6316306634b867611fbb35208e1d1d3e7a1e99c55bdd98854229c709ad1a0020574a68cac3df008d8c3d4412b2f7de5bee2da54c3205df0525055805de77e858c7cc5e48e4cdeee9541e7778ee7ee6fc6875a266374310dc7f6a0b89a88b74c87de73d91e5512e45d1ecbc4f390dfa3bef21d10e12ea683ccf73ec68e48cf951e0bbf008d3c1e3c5f91cfcbdfcefc5716f9fdbf1707e5a71fc6c77defbeeadc42fec02ffd0b40ffbd6f77cd7f7e41e146586e11106d3c139b8c3dd5c0d0763171eaf1cbdf6d96517daf8de43fb3d2567317d560645cf9c38ca17b2fcf0e84f637b7fe93df38c466ed0d9a73294bbbdd349279df4a7cb72f7d5d698aa94a8904cc92151514d535f9eaa642f146b928d42994e3a29a59e8ee99f7574b649c5fa53cc21cbdb7d20f91f1d3f8ff573c8b2632a0289d476cf83c7141180fe07f3f87920cc03c8c3630a54997e9152083e4313486c9a8b9d7fc4a671a20e1e797b2a8240f3a663e64d6cda8fd8b40eb72a0a79aca97c394462d0831430564410441a2868f2a938018ff50b31647929cdf46f6e272153b99b88c6c4cc405505081dda2c19600b1f3d88407162a60859e4c39a223b5439d2e30889abc499258c3cd18205938ecd3d801123af4184e4c47d3a132149f158e7cf72c8acb1011caa48e950831810b440930c18220b21aa60c0e2280b4dbeacc9974746fe137647cb8509114c646e38d202171aa5b5aadb799435af4532974a2cf4f4c06637f83083c4c8cc111ff7beca545949b92821810193e5b7edef0cc86ff9563e4c0b07468a56fa9a6f5f302f371060cce4f1457b00a381afb375abf4764e8c406ab941428828ce36dd3ecc754fb4a7d65aebbdb4e7c3b23c9f3a316a890ce6762aa2083259388e0ad1c2ce0da2e9eb7464b0ce52bae5d0a276cbf9ed721c07c3a3a1879414427058f383c907b06073a5872c2aa459fa2d09ae4a0ae3e67c32802dac5cf1040318252bcc2562ac420024092e4a423c80859012fc30aa62f5c42979c08a2cbc20b1c40688d31911aa70a1694b10255344b16aa8b202a5258a36565bd8b06ddbb66ddbb4dc1357eb986da3b586a9db1604a574d249e7a4934ea529485b14e16408285a2869365b6a80b2c409b298200d9b39e7953144b8f93160d472b5e5d7821298c2021253cd488a1d5e93062aa870d861c9072e5736f9b01873ce392d96225ba00861d4e3cd961c5a3349d4192b7890a207125498acfc8842b7da23130a0a4276b76a6108d9cd6e9b6f4c8cb83fc088f1f144e59b4925b8d004c607244fa2923c487a3205c48f1f5576f066985182373e94d8f2849a1e386e091258a90b4ae7dcb8eba276dbb6277668bdb5725061ab2db54d92388ec3a9944529a595562a86d6da2300375ac3be567c3370dc065b8238d1a20d9826a33b65a0a00d0f41927481224dd5074e8ee36848bf3fd2a2248488a9129091220749085f9e1449eaa189157c345101860e932ab6ad87579d5cadb4563134a41cc7c57abc3ce53826e1acb5d24a2bc7713ad5b9d8f7d01c7961f7d5711c4701216d0498374dd46005cc93971846a4226c5042c48a2a8c506edbb66dfbe8f68251212f10a8f2821227b66091428d0b8635607c0c21a6471b2e3c90400b29caf556a1304114269650a1818529be7984061025569a20412105b11205e5967c81d281c819264420e64a129611d9102e3708e1041a2735db06bb52a5564a9da627bbad08aece69b927aed6315bad61eab605415f3629ddb6edcba493d249277dd9acb3d6dae5d65a6bad73d249e7a4ef5badb5d64a39aed65a6bad95db6aadb556992c48cb120d8e2833a7172d6bac10d134df4a718589d20b5da8488306835924081a1f4e446da1c29399399d9230e2040d3eae704802d2c4ca9bd624e267a660b166cc91102b78d192c58a151fb51b017eab82e553eb177bc1b65ea2db2a0d405b6a6d0d3160c28d9526901041981698ba17ac5112552220a28722ae5a1730e0890b912c9c8c8182690e6902091359929e20f1a50c5801a5767bf11c778ff0ec4661dc16fb9e1a04e4f58d04ac386da9dd6acd32c5d4144512154794a051784286c810a1c5062e55fca072f182ed5c8ee2b0c090e3386eabb5cc0d34e04025248d9b18ae54b9338805a20802071c5648a3c64d073fb8410302325ba07899406e992356b0880122b52607af833d863bca282759be8c9a18bf9e8a383f4517ef4854e62dbf7e0b3f685d5d5de5d73bf872f5a4f425ba4051e6a16945d7d38f5217d45a1745aa723b15999a3f23b753912bd208294f96288d5ceeb3a3aec5ddac39943ff9176f92525641d5fe282613baef72e998f9e2beae1912b99ebb46e1533b19e9217778b1acb5b9a3a478ec282c773e2bcb5acbf0e14e0f65ad65cc9f4c77eca811a2e6c4120af674ad1582c9629db59dec26af29e7e8a8ec72e1ee39bfefa55c21658decb6d31423b99da618d5c8ed14c52abf88b2268ad48b175ed017f47d40323983be03057d41dff77121117d79b9ffb82dfce67bff23586bdfeea8f985f49ad378f19286445e02cd9d105aa24882cd932a8eb0b3a748a364052c4de4807444fe84725ff41379e2f083577ed175d6addbf930def1389f7befc5cf6f86449cccdd7cf1dd8b97e18d17af33eb17ba6566f7ec784e99e7c441d5f5dd3bcefb8ff51d8f4196fb1d1f5befbf23ba9a5c0e8f2ebcc3b3ebbd1def69e6300e57ce733878e7c78a77f04873cd13477dee3b8cc3fb9a390c2467742dbcc3f358943b8fc36350762039c3bf77910eb9bce107f98741a05dd75131e73bec6c50fe092437b0207c1dd4b554153f3cca9c6f59500d897272443abf13650724677cdf73ef62f5c476f77e687a3776befe48b9d0c6ced7ff2c2843ef391d32bb8bf2ebdc403b41b9dbe2cafcfaf097a42c39a1dbcbdb6a00cfc360df5117f7c177b1fce7774f45fbc2f1f2456a7e278e3cb80fec539e051465f7694251e670072cc88ee7cfef7e6876e2c87d8cff36908a76e7291e75d07c0205b93e754c7938bc80a25ced7ba2d81e73b1fb1d71e43efc1a3220e7bdaf610732e7fc1447ff0ebbe8752e7a39ef6157933b310839df611c39ef611c1cb6780c9f25cef083d7cff7d0031c4c5b3ff1e87aea315703741aa0f39f8e38a690bfffbecfbe776f3ffbaef37debed473b3cb67ec7ccdf48a78b0fbbf8968b9fa20b3ccaafd57ada7afa15d00aba2d1cbfc43c1ebcdefff58e472f7738ba877dc0f3b087c1c4b173b0c8ddfbef3d24d2d11080c1be73a190ed4ee5bccf799defe7bef762bc4bd491f31eda9039e73db1b38e886387e71c7c82cc94fef7f5f5b087e1b15b40d1a4e0ebfe2562d8ec5c81783305628cf05d8444adedf5a107afccf3df4bf4e7119fbe3e7c1747fbafef253e8f38dacc53cbf46993ed28b076955e4d31fc4318ef3a66871e7079be157570d97520e0eaea2a8f45f9c5f38845b9f10ecf2f6088ed3119bec00df4f338828c49b26209ab333e4c600a354c503c91e2841340626cfaf4ffc8e694991365673964d6683359aa5c4042081424548a96fc7005d40e522c51d1830643cd1444d2f848c2e4c335ba1204d4510e6494a049fa53a42f6fd4a43f87dc7dcadda738359d4545101c8d9c214e2bba94a39133e8db6945d67f12749f62f994c7a80e6e8a2c6bab94f298e4fca8f6dd4b2d77475e99355a0318adbf9f35a495b2367da487e554545496b73372dd782375246b1e231376df61083f3fe43f62274aafe85adc1e4be162b9f5eb6b2002899fb8238ef64b0ed98dedc3b7a2572b5a35af702a992d5e93a7b5d8a75c4dee8eb53feee01d9ebfb7d3b32e2c8e6dfd7c5d9defb6af81b8f34062b7cf8fb8b3f3dccbdacb051eedc5e3bd3a3a6fe78e9a67ce73efddd33c318e1c3ccabcf373dc51f3f735fb0ec6f1fd7cee65e8c18771745ff3e474b8ce7df4a96cad27b2de8a94f5ef73db89c9483b312149a49027849f9f31843cdfc51ff1a7cfd754dc7917ed5f319591e4af82a108caff4489f4f3a305faf16aa0810824fe883d7d72e84fd1a3013f7d365148e63159074b4d11983e1e93a364caf22593d3985826f19814a7e17889be3c3a924f827c14e48fa081e9f3cd0830347029d851f3ac55e6167bcb275ff65452c4c7d30f662ef3346e2f50a2c8ed050a163f52aed0d8b24686d3863c520bdcc994476b81fbca23987bc9197cd5df5e969696922c1159fa4129edbca530b71728561eb86ddbe67d5098dc60adb51ff884c993f99aa217262db05c6c5a60188661eb3af1b2c48a970b9ce212285c802e97cbe502673631e2a14316ab5b46ffc7e5fbe4657ddd83240996bf74472b8d640782080f5dc2308104123bd01c86312678618a2053cc5045f327c11f057fa139346bd86b47a1ec9f7f8ce551e8c7c63c22601efd984704cc637a4877b45ec40899db51b357396570ff1efb9f8342f2723f4322218ff93842de9e03f082df0d620e3c86e4da1f836e08b9f57c0b721a9ce4a92ff109356f1b10a55cb16740710c59f8eed2062adbfc1dd78f390d4a6badbf51fa96ced8f7c4b6ecdf960d96336860002229aa6bc2c295305b5451e2084d7e5b19dce79cd2dd5d12910495dd9d929eb283d9dfeb71e9cfa424b99d9290b2bf01723bcd6044aef27b3ce6b13103f940966439c398c7bebbbafed71fe6dffe56c6e4724896efa97079fc08a1f148e1158536657e0a3849d05acfa3aff0c11445e391c20662aa34d15a9fc206831a10d05a780acf07939331501c650643c89ebb7bbfbd8facdfc431841cbe27e690c5c47f72bd07893cffee1d77d0fd0dbf27f6ed3deb6568c39f82df74964b075f82ff499005e2a1d9e47ef256d84c023a38935cc93acae10fb98b33e976f8fd902bc045507431dd7f4f1c47f8b0c7c2431e93df81c76437f17cb0bdbfe3ce1a10bb639facfdf716c44b24b448c871018fc99f33dcb19b9a403c5afbe1ce9c446a51aa70abf89a32dcf195653371c7ef91b5d1861081a10e58ee354129e5be250fcac3c7a2ec328c7f963f85e6fbcf9f381ccbe87cff21f73965beb346510e62882002c9cb920c6c6828c420c3133308893202259afcb6ee0408833dec1f160376c105185c7001be3da2f518ec258bf9bf8638954088cc092a3620b16108066e3b1991927b723b1939ca45988a285122678890f1a62cbfa390aae87e42226b40d494686872d24a5424152c14e7bb673def6a7df7ac6701f89cef9ec5fef311c0ef7cf76c005fbf7b96c173df3d93f1de77cf08f0dd77cf66bcfdee99ec5d36830032321880007c6201c0e0821e000ce1225faad0b3d7cb973d7a06be7ce9a367ac9e853fdb5ebe5ca16730167ac6d3b3172f5ffee8598c972f5be859bf7ce942cf2a78f912a967305ebe04d2330a5ebe0cd2330b5ebe14d2b3175f5e3cca17eee3e05112c9f25d7894455a7894465aaf83477944e773f02861c889e17bfadd3300fc0e1ea50c59ce509fc3a34ce29278dfe151d290a5c5a35462dff1286bc8d2761e577700f0e5e8b45c38177f2bcfb7808230b78c0abe3cbfc53c3f86985bc67c9ef9214b94d12d634c371dd15465e490284945bb529036b206e4e9480f61e20508fa7979e79c517296ff7283ce12e8835e3ec50508fac1462e454d03d1b60fa5d8bf97df353adfda2bd008284f6b9618212d41c10a4d94a1412a8d550ff99d5508d745f7e6cad7cbdbd1f91d1dc1bd9b73de9f2ed7a42e57009c64b0018c923623389a3b546199028aa92c2700130514526a5335b830a64889872a42f0060458485dd124fdceeaced7792a4a2929511c87b2fdeeebf79ccaf1cf77dcf1d8bd4e949beb3f16e5ecbc8b345b712caae51d5b7ee1bcac4d1c1caa8cf31cce7bd8eacaacf37aa7a1f3f2a594d7b85467eab88eced79048e7db07e71d8fb04929a59676b4d2f163b21612aaf6f35a0d8974983c263fc7d6befb56eeba0f2ffdb891c79cca0f961f9301920a1621ca45886a4cd311425d4646492a12e024450d165046a0c51134b98497305ab8b93a12c5a5650dc8d31116ab755daedb627d72f2880086228f08e1b7be8579b43efc225a8bd56239ab755daedb627d720a7da1f86141d585e20662aa343994dca02705edcb3bade862bab74af42b9cca63b24a26d434506c9a0cbdcf0499895c4cb79579bee6d24255eef0462b2f1d3d0dcc43b25d027f3e07763ed5d5eebba679d0e1186b60f999901c0e5a03be7cd9ace150208672a8e955d347524d9f5873ae1b6fa63cd6b9284bf0c367bd6cb1a884e0eca72451aab2f091030e567c3a9557d51c7913721a8e39a7721ff91c1e73bcb290ece8fa8fb2208fc99df269f657f64ab34ca82a7d3e44459924658c4ca52cffe57d9d7bd779d779d7798e579eef79fdd44f505150503fdf5e235af3e7ae918c6a21b74c96c79b7f2873268f6e5586cc3c1a72e42db9e334e229dd1276dcec572d43bebbb15e0d5ed53f24b143369a475ea369f295bbffb66de338ce5a6a3fbc61bf5b86bff7f2bf297d4ecf22b946532c9e463c36937801dcca7e4fb0db43fb9fcf1a35721a96ded0c869d49cc628ed0dbba66e2beb86ff79a01567ae150c6fcc0fb4a2674aa99579862ea66bbf3b36ca1818de90d97a94d52d63e2b1fbed3f236ff2120392dc5d59f31895475ee5342886794a2e0d177c2fc9fde4a55279723f450ec8aa8cc39ffb6fe23185a35676ab9621df4bbaf2e9f3e4979a03262dc4f2cbf4d9c4f17678f4a77f50e46087c79a2af7ff60e64c76ab2c7f304346ba95d3b05f954b3041e60e97e0bd8d2f7f6ffff3441bb27380d33a3c6ebee11cb22a574c3109335c4f86db5329c704fdb19e797f14ec496b5aff85c5f8fe9894b80439ef83600b7704db5d52d65894bf2786c7fa2571a067b244216fcdfd904b298ff526d54454135252ddb5697fed373c7c538691524e3aa7e4def284164ca594fdb25bccc09d52b63c218512f9da65151df2c30f59b56d9fd72a8adbc6a396a738d2a62e3077972bab2c6bd965ff7cb73e32c5b4cbec644c0a75ad56ab35d1fa69762885ea538de5513e3d79d8874c9ff9424232596c8c51993e1306bb79768b683ea17ad639e9e2902f6bb9f328df6bd96bf098329fe45386c17dfd5af69ae4216bb4a1e9337feee0f2266bd9b9bc611c448e759cc065c763110bd95fe2b1d964f9b3dbb48a658d36d9e491cbde437cd06cb277e0346c5c75e958671b57603ad6796c21f2fc517ec953fec89dc76e326213e6ea881644bed0b2e8a0e6090aca0d63b2d038b0d2c30942708511545168454f96dc2c3da9ba420a2a6833a98799177e28c306aa06da7cd9ac618153163cf86066852dd4d0a612543a347921a9ea0736348a1bc24a4a926fc62ba8cb1599ecd9a36477a78d20e821038a7cc8b633e0fe6b0edcee72b526dbdcb96deedc9f69ae978bd1c50d52ee2e5656d97f00b9bd2c6195bfef1aaef7ff1cace103de8705542e4cddc72b70fb136374cfc01f4d28cafd0f766dd67fe068420ab9dffb10fceed99571f1f835f789a188c3c327c85cff7e871e78ae61da9cc9b3fcfdd75f7f77b94292e10706c8201efbb9eac6aacd9adc5150b638cadc7586dd32e87fad2e6dacbe06e176172ba4dcfdfd0ffcf66096fbeb873930cbf5b9fb436e431bf53b9eeeeb7fffe1d1c107f128f3377e571ceb27b2be7b8623c72c37e6c02cf7372ea17f87cddd3238f013b9afdf12294b1cbda73f4322efbf0ffc6fecff9e6bdc19cc3d7ef861fd9d47d8e8fd091236b7af453166c50c3cf78fb17e8b33a898034fc8eda778ecee8a653826732c83ee2b7337814de60d96cbc77d7f7ffff4b117f6b1dc2d91784c8ed249964b3d7dee0d91f7a874ad56543d0c2a24d14004000000a315000020140a870402a150308b52204ffd14000b78ac404c542410c843711407312044210c03310cc23004186408328829a74629000a970be6102be5fac692ba2b261058a3b4d35e8e1c90abd043ec5c0fdc5cb83b40aace515fa310c87ec1a01162e53fc05c43f30c1a425a5815177d3c8158b02a2655100358e35bd867de9c902be864c5cf26392d2ea5e3b052f230b4635102b244356698f203a96a6b83041b7a07897c82ccaae640a8a378f973fee285f022640d01a5f2a59df0cb1785d30a701085b4ebccf6401fda74df48994899a5243402078ae404a1f08cfe032e239a978b56b3e5cb66ee4c3968d6517cfe4e84465a688a62bf794f91b22cf543d059e0eb1f4338f785a1935688645242a4c63d47d4a506d6cfc27b4ab28e67e8bc4e98339597877998b6031da851cb28ef86e961992335b63bfcfec48e6763f4a72d4696c0a0458b230901a44e35423ea8dfc6f65c5803660f4fe44293848c6fd8c0f200a4155b89d03bac328ae0e43bb34ca7a216bc7b0f2831f9d6294a147146a2f5c21ad2f96c52b88f51ce728ab05ec801888f9ce1e50b67b9cf50311b3f0671ef9540bf666b5e6d8c0e15c26006a2e4278977687120d1d817970ae29bb3bb119cce30a9ed7d0b738389441407755c9773090c95626d09403d4bb3f5deaa2fc6ea47e4b8a850d3cb37670d428cc8417c9765aee509893a3928ea9acb6f4ea4486f8ec6b3ba1bfd6977924957cd5714d6ecc9501a0190402b037793056ef43f5c985dbc7c8361eb7d6babe76b5d41702513ac848d797208b8883fee4ad736e291dfc2606e8dbfe5d6632201d4fea3648d214e669a32722e1b323180da547e1e413cadb479496a405a64f29b3670ddb1145870d3123187d17a41420886920cc7c2e1b3e2bb2021522f02243be59c0a715e18b2359e0d92f227e08758f38ee2f4da111ad00ff1ce6097788ec327235e074b20e3eb2fc00699fdc1be6fe4b6e9060305729ce1d4280af9313f601b0f6ec70fda573ed074dc189370eeb5fac077d80d475c3de1716f3180dc8e7b9a8639a50607a58ddabb89ecb9e6550c5820380fe4fefb6db618158912b2c16cc0c8bb733c90c3721ec89edec3e6b00a08badffe0b79f83aaea08038671432ec2a3b503d66f019c29eff9efb18bc12952c44d22cc1d3cc07c67c7312f435a8901ba3b5fd121e27956ba6d2d61ca4d7bd4c9148d806d6256b8c82b6a2e5d4aa91c045b8828a49ed1b03c47261e65d3eb4a2da916ae03bf6780305e7e374dc2da92b416f116f0776b178b82be5513f59c7a9e8c42f8dc265b1b81bae8a1424961e9b8fd04566f5332fca2eb01c55ea2e5671f056bbe01351165d96a3d99e85c4dd3c39bf1d8a2e9eebb24d9dadf4fba92601c47158f7716167f041fc242244cc707a87f82aea3989ebeb93958b2690f1262cf3f86ac82d3e711289e4f256c7c0a0d737e86fe8ac2c620205c4baeb83d4f5429ed7dc9ed26f7c7f50c68a774d2c3c66460ad94950abdab83d47df830950ab3a3ec2097262cc8759f7718980db77e727777b64fa1f231aee852dcb560033a3bca174f595900f7526081c099a3a5f972675dca94c594b56ebc25feef001153e221b41a08be6f9f9a8f36ee689b47e13fc2f20721ebe99709b20f69e0c08c3a11f8c9d84ebe690cc308d5ad4edaaf6b1f4b694630f5772e628a703d0e66ede4d07f2d5e9bf1c5203888692506863e575665a7d62e2585c4eddee712c3c828958c09ec7fc40113e3776fb30929e97637e2d828f7b8ca721571a72fd1e5eeacf739226ee537092eaf35ca021b0a692d1b5d5247b8b841a5282c21ebbd8b0424577cdd97307cd20289ac516ca8e89fe7c8c850f4f6edf35cefa6ee6e767ccf53593dbeec981726c7e831e8ccb515aa38484447f88feae8f2ad7352f1224377dfc63c21ac8e012c5c0f51f1fa12a04ee062403218efeda7f75351740f4d18297d11a900f3c6d1678bda37232ca4e5553025e376d4a01d34a15a34c25285d09dffc7042fad2484a668c5171fae4f2b8cb66b0b8d2cd4d2c542fa087318fba2ec8cd8e80522f68e8bbaed6723afdb638cd55dc508aeab5b88dca7562ca6b768933924b0bd63ad29ed393a6354f5eb59e7603ad18aa8e5672021a2c109b20ed7530435feb08a776859fd66f2c65563c0cf3e29746292093cf5b0799c43e45a6afd8b1c28f65925d7e58873589d36c1dc9102452db7520969944493440474d14f28b7e67a7c1c9dbf5ad43b451146376f196280609eaca2e7a25c8c4b200da768a3b60595e1b3e02ecd7194f8a4f442ce4c198c9be8b40f88e369b61d4825b427f86c33030752390bdd991ae4f054cfefe618c4512d0fa43dacd6581428f975825e30bc229c80c582b36760555dbfd484d0ec0cfb4d6437fe7c8d63f89c6204e9293f4c3c6e0cc9f257dd58a540b8c4cd9b2bac3328f4610152f60ba8308775d935a01f7fc157cf72463f353b041d2001aa2ac27de9949203864bd6f3613f1b3b9ded6f8cbb76172080773ba28cbdaf718b5978244a0af25ea810abba91a10c79bd6cd914e8d343a2718f1130264c0796e2ea71a38d1a20a72fe7ede9ed21a2d1910498b1a41e25d00ba477f87dd4a2c0a89285c20164777a66c0e67ced8f613c60241db66a2ace381029f254149cbcba763dfca5d579cc165cedbaa33ad8a734646b9fd9cd2dca528f6b395c07fa1ab3c5017a6dd1e783e0743c32006922944ed0c5fabbaa1f3cbe057b3b130cbbb6ca2ffd57a35e3129cf61aecf416ea16817a324ff9327413dda1c7b0418bb9fab23f3aaf6d6c2792a2ac69ead6e712080c6cdccb3bd33ff34e454f01b7f3767aabcb9c1a0ce05931ea7fcca45a3ac41cbc2eaca5ca58ae4ee5867406ad9b50cb4ae2699c2e22a7d22e546b8a0c1c693120292eee7c5faee438b850c3c989dca76ef711f4073e0f894116515a62b09d7a298523cb449850189cc43172508e4c56206c037c5a4998448e7543d5b1b787b837640ea2899f524461b0e14ffd2a9fc5b667779a80408abd1d9dab2a302271da69b8b526185604aef08458048d454da51a26240ef1a82a2fda7a5db51a94a0393919c826074340ab880733a40806037a3eeeb2d48a15fa5a6741b7b0e05abfba480d92a919373ce4e9f73d66734257bf07f0b89c59f647b82ab6566998a8cc2d0bd93fc9b17ad17eedf24a816fcb16b5e0d20886cb1e3ef4eeaf9cf8a73b7b76530f574dc7552c13ef4785d46515b8809a7c6274cdc2c5234090fec5f2389da16ecc409792e01c1b38b8894b29ca0b9e3d2412157b16bdf0d3e610913d7edd960c080688b56497f7505ad93b7e2ccd884376e8babaa83c7b21833d9ceada4d737bda76d896b9b6dd179d50268c29272b34330f1e25f7b2998296a4065f7f89bbe5676fb67dae765599708db5b3dbba8f5d1d85598b4dea064d8d37ef790295320680def466f04a7b7af7347d7a3c7e7abebacee3a87e3c0cc4e708608d463af84d5e8d631afe3a6df7d63c203388b6e841ace09796aa0600ef0ba9221b129a28f595668be52503c507966baeaccb6518982367308c0d2322e544a159476c2070e997420e500c3e4874716e7bac7807252f2c4cd7c47a215e060ccc91bc4be6fc9513fdb785c6b18fa1512d39c75706ae5e50247b6cff44910c0886649d057acbb31991b468ed76758cf67d197ec18ae8d2e3702e2d29aef852f7eb9570e22325f7a5559bc248e3857b06dc0cc14b2e795ca8f27b9b57b9703c810df4753c784700cdb41caa09a7cc73831685ce83746a1349f146232cadea67a5dc567c8e57cb6e52cd4da634674e113f10ceeb817c610d2bb14696bd296c8d01d607d6adefe224e025c672b48603a3c4075b52cec447056c132ccf063853984892423bb812db3cd57f2d3f2592c4135e803abd033b8a6a5593096fd5f183cb8ef5f1923c8d4ccb4db391b427400ffa05d884bf57214957173b717a0148f489cd081a0c8823c961e5544a7881d2922bb15fc6a2dfd03a6c7d22eec2b00ebe7ef74679a3879fe46fb28534a4e2e8e86b5cf0fa9016f22612236f23250290fc4d2ab7a81cc5076e7777cae843ee79990241ba21cb46c8f365e828b3463d1db9c546e58a07f614fe27539289d111d539f0d74054db387f9263d0637476bb0e6abc3cc932991e568cc89db5a70b82a4ec7cd1115d7e926225e07214467e368be89a627400c8f5456cfb0dac4563bae382948ecac42643b182074216c2d32fa01911861df72aa085f6595500f03be6ced07f047c443f592389e541b988b3112d6d147d989d839ad73557da48c1f2f08e3d8164bce3b71166ec695a9338e07336d955370c3b83b179f383ecf91a1824c2a778fdb4a57563564ef5727a2648026932a0b7c40fc8d3fe72db76b29ff69bab403aa004b93d13161cebb1487b2a672b7fc14d67b976aaa76825c886a15adb13c69a7060f55ba291cbb817b8d75a5901925be219ebd4928d5825c1d542870efae5229e8788b2311f466c7018673f2b08cbd849dc54473bccb987198d9be5f6965896699159446cd087b3b04f2a6900a88588a08077fa8876fbb5d8487d33b6bafcf02cf6eba9e97a5803bc1d509cfe46e6a1d91c088da37f0a65369bf4c725e44b56f2e7786278eb72e91fa17ec21f5b4b3d465d24428538a2261609a06d0774aad0ba85b50bf940efda7f6cc8cb9d41a6836c608ccfc0cf8000217423b2bed8f2eb8da16aa4862286c70715d2580d075f2819459a6e46634c520a38ac80a987ba48ffdafabf66483a7760ae39b00bb8f738e29638c4ae8195af44d55222d19a3f4c0904db48a382c4401449b5014d881c2f38dd83916cc5c3001eb80dc07229c1d622505855c42cb2a0297bce4b74976d0ea2d95c14e8c290b960d1edae621c99b650268c0e6d1284a9a02033517c8ac88bf6408f4a342016e62db6556b437d30878c34a4344f011585e544afc2c87fcdd5a8a42ec82b1232210d916752c0a81c25ab306b526ae59a87625421afc237c2d430bd5f71c15f3ccf47b8a97f9367c42d61f7b4b9b44d94d36e023b1b77448b10f898d752699e2950deb0782da90d849d1b877206c9900c4dd20520ee263bdc818a342939110756a129567f00a68ff3388aa664f78eab546ad39326c71a28fdcec13ac39a3d1be68fdb9eef4113f5f9ee07a7178deb2f6fad0f11e92f49b9f3e4cdab50f95b0c564c52e5c1066d15201adb8e84e84ebc5c77d83ebb83bcbb435be6d9ad0a835963afec3598d968ea2323260505b2dadfa99a7e4367f79fef57a8a17e1e992b32470a1050a1317e79fbb98ec7141ec5da85b8530aebbf4ea39e7a03cdb45e610489247b92b2f4579d7ede938314fbc6279ba2c825d0f261bb538aa840515ff4a7b6726ca6af8f5f25c0f33c32812027b65f10da2d9b410b01f0522c8fb6853758f0031faa5a992b0c9aed4fe1451758a88092415c7277a8823926220bea61d101db2b41553a9474bddb0d7c54572eb4eebb11cf0a71b4061ce252128d96bb9e7d58bdf65077fcaabb9f96cbdfaf82d7cba35d23c46b536d0ad4f555129a7cbb5fd6fc5640dcd059d5ce402af31e07a1a45696808973fa01268e6aed45106f04f8f834f14dbf8339f9e1c18ead87a0054dd683c521cde1a284d1fc17a7c3324373efdcc4c99097025ffb1c19b76e5459de2c0c7272961452700957143f624324c4309f3dc9502e6a68aab3883f3d2d7543f97137262627314c5f8e847a859bbb0818ccf6a4ef431dd030fc8a400ce46ca56a94609f95cbe2086bc3e1e0abe95b5d76825c2bf926552f9b118c15a6b7ab2d2377e590d865a65ac8d225e0cb27cbd7811ae02f070965ab0173044af82082aa7ddc118c1acc61755659d085204ce6bc54164e2a61a06a256354e8ee90948c42d190d2aafa524c0550da409732fed83b42e9ca4e31df2eea7be341907a093accb80ac4207929dce2773d337049f2a81cdbe634a1663dbe445626d452fd5c230cf16a82ea254236503a97dd9b87a50b18d74146818a3cfbeb63e2e5cbc36290f0bbbde29c28eccb59449553e2e9d94c298cb146c4bdff98fd1ffd98ae401e6978c536b0df2cec1703393ffdacc87daa3cee32df4d2c32255cf2e3cf32484dd92e860205409c883d8336c2083a70174bc7dcc9c0d9ff9e5320ee6c02c66e876393b7af9339489b7732e2d78ace9db321148b75f80785995a1f22ecdf0ff8e32e7bc12e7457343fa01240700acbe0b61ad17da04325ef041a95478cd8734d0a1efaa32e2188a03b41121af137ed826a54bad7f4ee13ea43fbe9848eb03f69c223b69ee684e349a6b52a4473890705cd56e4fac769cdb3b40a7a468cf109184217769d308db24511230a3de7e2b9b5176dd50cd0f5eedd6271ecb3c53abdf9445d13643caaea0e5d66a7afb1935b869567bf66204bb0fb1b74a860b14f377d068026e44a0f5c067eec21b473613add719acd2d5060264bc22105cc4501e6145b0b151ddad47efcc78d6b325ef45e981045696d5f9ffbed13f57517a23b46f1da26fd0b2a9df360b0dc5a62b5eaa3f43008004a210ee7c72cae11d8684efdf557ca9af50eec619ec8a0ba7a51d10eed0cef5a8cf9c21ef4c4a996d519dc01e64c2794c325ce841a7f7b98242553300b69cd34b11c16183d4e687922a327cae8ba0e2f680d44992ed5afaa46cb81921c2adcb7a4362fbdfd6c84744f1025f2329ee783b843a773bc4cff79ddb81f11a9541d9cd449d56119113c480be335a1fa7724916286bd65f32c2a7aa19b62a531ab8e00f8cbc6737bd60a621487b313bdeffe8183c57992ddf9068b7a31745c3217d081bb5c1228a1fa48c873ad721027800621c9a8a7494c1db2790baf99b1020b169f0319e0cf5b948fd193d1610cb4ce7234c2bf112c596ee63e6b33361a9d660ea5035f9c602268a00d8d4c84b01649e8236af54ae8cd1c76570e86d728105b1bf950da6d6003988af28467200a37897359772c65497294f42a917924bb1af2be96e80b96176456b46c03bc0952251612856eb2562910ab6cea192b86cc228c06975f4428a6e8a9e321cb44f2d22b5ce9f06ebc240bcd147bbf34a8e18994749695f9b955e80e1177cb859df4efcabad6a32da86d717f06b0c2ad6198462cc216bacdef72c52b51fd8fca4f1c1dc8da14e3c446319bb338176bc7ca8c60ad5db2770a004b84b533f08eb05d827480b8aa53ceafc78a08c6667668a4f4b6293a6a0fad3e0f2f9412df7220ff2aa4b0c9a19a20ec9e463941313e052e281b7b7a5c692bd5b160fd7860d7ad2b9e07076a9cdb3d625e1b0159d3732d15c729c4a8cce89b12e4f1c172a290c38196d8dfd0f3a689fce9208600871670ccbad71232db2dbfc857f5f2327b5099f54d053f77e08c1a9411e2200850442b96b10f2c1955d4604888caea29904147448ac1f0b223e662e57fea048806fa0be2f67babe3191fbf93937c727e4a42ceba5c8141aaa38d64a257c6332c0cca07cd21e7cf5e64914955b2a14d148bc7ab33a41328630309470220afd355a2609dbcda016b78478eea75db46c40620067d78755f8947700010e2c9fca0da6b8b38ab61fd45dfd0f16fd0d9529d55e0e102a8e36bee8ff9c2139426db440c82e423083180ac61d0a5419fe5104994ee46e27259349c403692fc2fddc2543c762dfb6f674ef4a7febe41347ef3923fbed631d8362dcfe948a83d4d36263e0faaa68af0a7632174d89ed494be754e5a10d0c2203cd626233dc2c8572444153e30d7d7fb9862960735f0aa26a44b59e2fd540410b8cc354f7c24bd50c99e984ac38206733453411617b1e1dd8f7858f95eec046696721c3756a7e4beb118845ac4b0eb5c1b5c3c312089c80dc13ee75320266c619bb0f744fea26f6ba11f7ee8fd6d7073227c7d9a7293f8bf07851251fb99f259b2e8fda388ce8bcc2fe20e25722a8f58b8470601063f2ce4da5f9a0086607b4739e50417687f0f5b1ea13c3b87bd113f6727cc19516a98f6770f813e5248b7be55189a857710fd67a522e828f2c318c222a31b9eac5f85ebd18a7a74360791efa08cc0c1f070d78ac8b6a542790756564a11233208c8b2a768a8b29adef9ada91e1db690721713d7029f4b7ee8b4324ced6edddbbbfa911cb40e129e00f7daaccbd1aa6639fb08cc8bca87a4172324f1532f7b41692fadc36b185f1af9725cf32b6c30c72f9c373087399f44ec3d8c8a44eb28cadabe546e85fc0bec1a4475a6b33961d92c49eac203b33571529cb795fbafa2e503045a770e00d1ff2224a6c38c33911f4671296755ec51e86113e682238c20da05a1e921aa1e6d810f3e4412670e6904ab253491300c55530b492f6042bd22371028c7bb1380b8f4ac1a841ba9f473b6b4fa891e583570856ff925f4496922429f1450ce2253ef9ca049f7537c20c6fa0e5d1f95a05a0e388999890f2a75d924222de39b85e238e4061107a4bf58f798d7a1526b7bd92b163c12d66c5b277b40be2353c53c9b84c3f3d61940a28ece5739846c5d19e21d694f59e69f9f233968e20f67a6ba725f5785c8dcc53a56068b5490db9c3488c9d12f56b29b672036d192dd63d209647fd82ebb2216b7e42ab29d11114a3f6cff669adc6b8a2558a4c29cc04a4067b38df0286e305ec240f6a1ef827f5b086676cf2706002338def28a16865798117d45820f0a190bb13e90c010690652cc1b42612832e8da8443ed09876ef590fb21654d2bd5a4cdcb894c025607f26bd70b72e708e2cf099a51095545b00f64628cfc546f77c3d7c438c3b33ab6b26fcf98e3d005d2957486a0019483794b992f0f21af981bd24a454201842dc164f2670a6a1734330d01f18fe9644572dac4bfa3c2e033064adfb762df1618d6df0faaa61e9acbec42c70eb47807487f081a599e408146cb61dd190c07506f80d6f53fa3e85cace9f540a3444ac9830bb68435f8f3755e836684ae62c839f550dcf1e3c3af3eeb0f8d2131798e6e8a8ddc350582cfd43cd5e0839353335832009f6ef2259ef6fd75aa8b13509133c3af5a873c07d0a2702c7f7e806134db2250f1e4d5f46ed1905dfe058061845b462c1845520086d132677ff985b1c27ee279fd5f45a23e355b85f5cdda0c2b209522d62d3bf5c808014abcd71fdbebd6b8ee0ffd40f7054dded04339a6d5424614cf41553ce427b7ee26105fb1788f204a90af9bef0ec368f9a6164a3ab3ad47236ec63589b195972e971bd1b38676b8f2cbc562939cc5c28e82c463b0a2f3307814124629a514c334544c7a982ff318702124ecb23924c92bba6cfef8c6869fc330e85d2640db11a96f9e1706746dc91c0ec3880c40b82a3649f0461d18ba41080fbbdde29220f708665ae2494a2388c1b8a4d3e5f8410b64a3c33092b350290acc7cf26c8bc3308697a8f038e47bee0b2ed6870c83537939132c09c02160b309fb41be1784dbc0a97a61b0e8bb14171a7dcae68b5365ae81d59ad1dd5af72d805d18a758a8279ba460a061f85e46f094e5aca83bdaa5da297a4d3aa4627647e4e5260bb64b3c28ac39083496052b8c2978730074586b0d57619418050ac4eed3e310488541529604c5339964626c7036e59f2693dce45305f52ca0298ccb349eb5f70a29e7b899952785a1928f05c0bb0660c5bb9638620df44541e5ad64d304437f04803f3217b2b5c773900ac8ab30c2f01b1cbb746b041e9e12eca04b848c08b9d646869c37d6594327635a48e62a5f8bff3e62dbf4b7dd2b1ef0cadf95208cbc280c9d29775112e512712a8122b71f01ba3b1fb0b3fff5a0d0634c06dc20a703ff7755decc9ce4a60d608fcb133d27a4c92068b5caccecb13566827c5388ed79e1f18b0c98725ad00310d5c84a29bffabbe6e9ecb82d086f516008a27290669b110e96947b1508c949acbc288579935ec137733b1029c06b157c392a6089682d18717942df1ee74aefa8998fb5022693e4c4636d34c4d128d332c8beeb11967e7b4e3ec63855291678a7590c409a8f132f2ba6a5e3afa2abe240be65b61d062eea91d8a4dba2777d9e6a5b530b2f65be1f1be70306a902e7b2e263e2b2bb2b503b032157ce9ca83ff10f84718712522043c6851f5e153cd17a2a2beed6345ef96287d8a19e386937bf7cc78515e950633c2819815a9ad85c5b12d593d31eb3b367dc1c49248b70778c01239294e466d5da86fd716dcac071a57a51a7f79a4ef07bc3ec21dd48e55e2b1b688f1522a3540183f131b62a858b5f22db98ecea838acfe42eb7016504dbb623fa72ae3667ee1f3db29e8c2b64bee35a4b4a306165a4515f90291264e51f3c538ca3037634a747830dceb2beb06a41b83881318a0962cb618c23939ec3d63fc5ecaddb155af449ef15a89e5baaf04e714239e03792b9e3ee17b4cf3328d441d203a5effca12b7251117905b569b16db63ad58a415ce871c6315e34a601f7e332379b6ef4576f7769d072d8042a4c538d8ecde2c6a2c91920362b085bc4e99bf8b66c622328fbe5f7bc4cd4ce0c9488631392314e039af2f96a5e31f6911ea6099ad4891de9f789c009366a65609872943fdd015c9b6caf25a351d5c37f9232752740ec69d9fa409adb371be6700f04285d8672ab4d3debcb9c19ce079faa126f6b7f47bac7d02351789a640b240e8ac6e2ebba9bbf592640c652c0a47ef54296bc9ea26c05a56faf4ee1cbe28e3ccc54738c00208605e0cf6ab0a0af8cdb1299f97550b71dd020f631108c07ddcda14b4e0a26c703cddb06eeb9c1c29bdf050ca035658f1f4685ff9e682450988a5841731c57581797f837ecaa04944ed0a121f02a17a4c2fe35fe64fabfa16ec8e3ff208bb354ee1090a3af5a6ca32ff8cc381acc981d56e22ebf1b270929135f6903b0f197c0c0dc76a0c0abc424ce8625d8824b9c959a17fe94c684124785b17f4b745a73ccf5ec05313576e326743431a1d438d21d75b9e9ccaf59d06e7a38ea3b5171efa1a53b240b2eca7749686cb66ced636592c19a84c546ae1c83e6b8914abd2ee64cd3c23983c33a50467184292d19e88b289aea8a8e7553e2f46320513f9a9341667146ceaaef03c1b03dfef28f1182546c314f9a68e3fde95c99ab3468c036b4041b0fb1e66cee4fd2303fe09813b75f0034258176506d7ab918f92b4374533d82ab60cc93aa1ce63a4f928bb192b9186b5f517c0633984a82c2d7125dd23f7c2103bb45d87b5d99f66ae334b5419b7b131f1ae46d9991fa988b5632fe1e39454a3b6694d2999218c37f0b1d622c370e7a7411fa8d2461431ad90f579cbd3a7e1541837841c880519fc7d0d482c6e9fe68699397c47524c3593f43f0169ca3ea1024bd12d2f9055d1b2c7185918ca6d0d41bdc7618cd8f288f35564011dedeaff528f90441e82b3535fad983585b9166c611f88699fb4234f84a7af7a76f189aac0be2e5464a6e6de580046262051cad6f5cf2d10cb40ab1402a2ea53d2a57aa2a03534850d8c4cf94320c679d898176f41f65d3551d0a12f324a8813d021b91019f1fb7d2bfbcaa167a623d1fb796b4c4ee73e7b994dfe3a0ff4c0a2f9a493b8073625a31183c515df827e033eaec71cd3c5c8b0b863ca7561f337dfc6626ee06dbc204b93d77cf86b1e5b80b6365d9d3c1a3f1c1bce13cf1a8be2e11ba5966d8f3d7049020a92006caace0eb198f0d893ae3f1725e4bce789495368ef738f20e59a85f6ab3e4aea69d20392e0c19115578dfdbc89fb41db5817e0e98102e5792abe9a6c23fe9ce0346e6e47ee581292c3b317c59bc2338bd875fac60b75447f0e797fcbdd3f0c067a4a8fd17a576a917d44284a016e0ef870fcb30283916fd8b9637d2afe088df2c120cb082e304e78c29ee5758608b0564abeb716bacb47dd9e147ba3f829db1f0ef9a50c181517b3bee47c201bc72e1bbc86b64c4338a237cb35c5954ee208e0d8366d0c1cbf6b376f0a78cdd4219d65b5f59a1993c48a3b66081be2f190258c9f55393ba34ace7c2fd7b48387d5c8a64216f039f8b760da25dadab1efbd0f89858b8005c8a5486a80ed68f70066a9cf9ac80dd1ad826f4e78b5134991a8cc89a7b106f0fc6371498bc1c4efdab740c4225964557e63f45dc0e4062d36e4547586b3073747a94476dfe7f9facb0c836ff3e006c21d7e6829704d54acad3e79ff76f389cb7a59e2786089c05b163437c4274fc867c1252ac14269688e0e66d296a6a2f848a54f0d6381b2baecba38c7d68dde03fe52beed6e3b9b4a7cd697d68558ed372621740349c576fddcf7d5f1b4c6cd100cc3e70eeef1d58b6a513dcef814bb2f2f2b76393c999f8e7010147d8cd0fcf2023e0c200d659014ee1778fc91e1f4c78cfdaaf1bd44849a9ea1e8955c4fa7b229ed434381ed202483279340bcbdb0cac760d8a8ea36680d61755fb2ddf27450ce089d672c9badd73c904ec7ae759f7cb61a2db84990063d7e065079e769fa33485adb421abe96bbd75a6dc00035766888b7d79c36e6afbbaa88f5c627842966c1b644bdbeb223a90370cf646c28a25d63bc66bed1dd4a9410c68b802343df55694f8557ede545ae8aada2d06ee1de808adff59e616568149a404b8a4915a0e8543518b14680c945b7cba01e32c2450e946172b71f24782ec6670d92c30878dec5a08f1a3cb989dcbc74eec8aa2f7e2f7ba4c20285b17ae26ea1aa71fbcb3878edbad0c0f532d99dddc5befbf2cc568f5425a0684f535d126470f0ed341806f4a0852ea22ecebce7e1093af6a4849898901497a8492a006e9f336c4e8356a2cb15aa3ec7163763ddd4ab160e0c1c050a32cad87f0adf3f9b6fb584eff736fe1f03bfe8d3426ff0e7ff81646d887f1043eb0766fd90f5784e9686d20479f04ca272d85cac4aa9512f2652734bd720103e619f7ff30cf5115edde481b44b0b5efbe4a784ebfeabe79cffbcaa1139172e18b25bb5625ca7dd928ff739a8a0f194a4601b74ed52b29bf9591585c59c394c623c255f9d3ad4c6ca27a76ba40b4ebeba9e1330a42cb95b58c25bb1c4545a9857e92151a06c7d84f7921f7a412187d82b6ccd96ec4a30c3d1bdc05e85e4613b0ee795689f30563661fae1c32404ad448fb06602a95c5366d7566262fc135718bbe498f06c8852f92618c9658462cf2878f925927ea5aaa1bd76d83b4b447a523bb8ee6754414eb2cd97bd150db6423839564a89d59073de43cf21c4c18742019017a21e5873b489da750db7f25cc18974c671e333bdd1ff32d0c32b8a194a9852c32a920ac67873b0e117950ab6596ecd0a0f6ca31fc226130d72f67cc4062414d915d2e8b331580430dacc7b70c2c8d4c77c2198fa0d6c7fc0cdac4a1e4f52749148014d4b6c0efba512cf659b9699e43a5f83919a20f5bc345a6475ddeec73917395d257de472c74f240d54fab1bf5de7b8ecb7402d1a903a47bec58564a24019fc0f9f3e0a8ab03bfb6dae3ce58588ec3f29c882ceea3669ba9e4c22af003ae32d5b8accc7325ce0a81638de5d836f1f25c55c17b41d8563ab75c2e745e495ccf22c60366c56d4fbc5abf9efb57645a3ebf59b1695bfdf79bf832281c08cd9ecd53ab6fd2308b2bbd0949865f217f9f70701d5f9948cab48500c7239638f497cd96f2a70849d676a707087bf259edbf2a9af738484ccb3553abcef954ac3813925132395c3e1ac9e7194c73e6d0f339b6120f196b9b7d996b135785a3d4fe3ad64cccc4979cd5b193f7cac76d86550e5140189d77d01cc80e0ff85262ff5d60430cde9e1a15a6f4797980ac1c618e6a8d1c21b8ddde56fa674c73d0efa3c155a66d25bce720e551c6a7ee84d4f897aa03c969f6e861221384cca13ae660cf4e9fec07389ef007997197846247f8e4e16b72114de361a5bf82f081702a0016fab50f574f38d2ccf32a1c6123e09f481c37335e1d3fc0d9af2ae04086a637aa69043585b1c2a357b93c5c5b4ff388d923c59032e6399dc8f862d86fec76c4947837049ef82388f2680ebf783ff9fffff0a6de1b33e0541ca410734dbe1f9db0a8d34da585d2fa9587b0fa7171fcb72635a394c76f8374669d921c673d018d52b92555af5437f5b6bce634d1c1074addc47aa6934d8054058404cebf9e2806aa9b7d51b84695bd5c9b273ec6b93eac8e26b50174cc45e2ef39ee25ce6ef3c2dac6179a18d54d4a3f04c3f5355145f3a31e7ef01f034354d73ce276e2d0e1b16a4153fc5403e7d057cc45c97c96e1c564a6214b020104d9e72cc9fcc8977f4bc409df7bf82212afdb026770fdba7117e9b2d08833afa41fbf59d02d166921bc2ee2fc6b665f3b1089935959e6c4b3df51ab1eb48d77c4b96e2bf9cab985bee1b2429ab41437527d452025715e12b5c4328d291355aff016d55de28cd5e2c7f2ccb1452390b8c409ef87f2fa7a45983d7d50e3e1bf7ce924ccc45a1d1f0761f05fe9382aeb5ffea816fae129aee6ff393d5b8e8a02f16f7ff4ca4939f0d683536729dc1dec101d20bfe7601d09294044091f8efe95de993fe455f1f56823bc0d2af9a376371580572e5122539e326beaeef86e2a22b9742b90ef99616819e89075dec4ba456978abe327c0a95e9c738a53082bbc6384b784abf38a556880026aa4b8a0131aee113cc60d3308d50a253ea0b67c28f32bfa1b2f5c6eb88baa688ebf71217f83b29b0bed3af40a50e48629f0b8a9adca0a79a9ed626926d3264f423ae1ba73f2e49fa3234f84ec6e9bdff6dcf08bcc363a5925874af95f0a648672c358298e670361e39321878584ba0dd37997d1e258881bde803f1396a0d6dae5e6f9d97959c6b9e1336be383896d289ffab2f34551be8411e28a889d638d110cac94e608ccc250b8b10944231c63be0365c3e09cb4e825418481928c9599f5b7691441b9ae6ffcc54b3bfcd3ebe816b2e944ae3daf5d86a4a5892469b99584c6e5c6d5a0b5c307c8a4d3be56ca45fa76c1199ae3d2915d47f9ea53483343627124bcf95102421ff20a527d60cd02ebaeece410562d568182278f187ce6647aace2ff61862549044c03a424623ad6e558bf293d6dd25ce0db98e998746f45b134b0526cdd648b0358b3eac137c7c83275500d42de5a04d3e144e019e01de79359605d035b82dce6739b93e2cf7c335d0ed7cea523c09547cc8656bfca571a236a825b3655bd333900524af17b6c47ad484e5874635eb34b8146cf15690018fc7d42b7785f244ee4a56de4a316745a8bc38b3c5506c7a24e309b13482c20bea3f32776f55cfea647c01cac1d8b9efb5c77880006636b9e711deaaab9995bf8d97b1c0118ac1308b1d4ecd8c24e1bee06f6b419b558e3cab31332c8dee3d65d7478951edfd4e5f0becb377390a7fdce55f37a2b85de2bc91cc52fe969c93de79ca933ef4d9deba2725b5d5192d51b2d7afe216e5c6866b599f9e908ef8dc3eebc305c89af86f363d922884f41c40b83942677b0f323252e269c1ac3aa94532c9d7370d18bc8282a5b45b25a2c13c9486d911c40d6addc72e08dda0b31d4cea546e786cd4c316f982e465a24ef7d266127e8390a7ae757248ba074e42d3d8e9a188be4e1902fca27eb17d33456247df02c7d09ba68e596c124b1056b39c6f09112d30101e89fdef5e5d4b122f9a5d7d008cd8d7e457212caa5a41a1f8be42c1b2fc050423f1bd867464e67679771d38b6448e0bfa932c3b477d1c54872002a30b91f47d919c9d1091ed1e9530e424a7aff935c854d094539c3aef11218ff89824645043f728a0d1d621ac9bd426f9740ab9f0ae5d943d198173212a5524cc4561ef8b4918363484eec32cd4652c1f719e97861bed76f1e822ed6115b1e754011de2a714a14ced6679e6adf5b61d848e8e4fdd98d791ac9c52337b2ba9265df6f426f1e4b9a7afae0bdc5f80101b3f5e2bec6774c0ab8b2f8d6919c511f6422588bb2757346505838c8045215187d3d6610c7987cc963fd7c148c7af84fe348564697ab3df4418d77cd9e8ea44d2613117aac474350382760b5bb614da6a12476321502e525765d550bd38a153b1cc9947f45800d9b1c0f712431e8303381b2f5347b5730d94a473c1cc99bd8791a9871423a9e15de351bc99743b0c897ae13fde3bb558025249975cd226277cdf4894eef7bb463b8cd0e8ea4756846e4f61164df54a9e74f98ca3e3280019c7b05eefcc4a40f57205c554d3ada98c419d2386c38c5c219d2b45139918c1aee30d293a51b53d44e037cef8bf302683a128de4408010200073358c21d089f7cbdeb5e0342d4ad9ac86d16454f7f2614d8523fd5b23db08516bd2c8de5bee1d3410fc0e510fdf6e417a7b480933aa72adf7268c87b4f810b1fa5c26be7371a5ecde9a5d5c1f1dbbd6850bf9dd9c8e00ba7c3c11fd17af8f8eb5fd76bc43051bb648587e25c5a7a213d10c7479f8f144e4327a79b442aeab4312e5f0f6bb69e1f00458821140a10d64b094196a3753ae9cac9133f6f4a6bc5d2b6487428bc30bd8d8acc561de30bd0d1cd60dfb9062ad957b3d4fe6383c44fc2626a2c5ae2700c38f128967e508248ee020c5e0840c76da06b022cd1736bcfc1210f6406f0149947ba068b14fd500763bb88f5209b6422b00476b245b233dc3611fbde121e2fb3b44a1ca3389ca90444df63aecf2c41891c1deb154c41365bad2e27d5b34f31174514d004ed95d7c146f483fe352e6e28614870970719ae7103f03ff6871f134f847119d1617ff63e62e2e65dd06c019a799719ad3c85d93b13ecd392359c3498b6487684c68064b1a6b81411aebab80c0907ee63db290e21e3a2d3e8379249634761aeb4b99d82d70117a2973f19eb952d6a227dbf40cd2a28f02a4acc577509a16188f2ad367d220600775adc53a02b01e07101717c31bf5f4145b40e6f9e168f109d67aa12b654930b27977cae89d52ac17af95b17a17b77efb7250b27d5792b38788afd72269b16b22961dabed90343d43684a5e700327189d400db23e1192a6a708486883124a726003216990f53bd88d8141f6ba3c930b4040624856c40b9907e89225b222f55668d23039316954898449a3f2a04b9664da7197f285bdfc389cd379a36d89ea1b264dd368ac278dfabe81a55911d80ee499a4817c5f8dce7607a5b14ecc587f0951c86de711195b5c9360b78505b2d79d406c302292352d25258f4d43a2d1aa9191446204234b1882421b8e1c21ebf750bf6bfd0eea53378001b82de3daa118b7a7c3a9c248bd16a78a7a7b72fd70aa30d2a2ccb55227c0d7610feb793650454df6ba94c16e58710f1d6b0491ec759daa44153cf091c1cec3012a18d1842419ec52362915fdf5506b1535ae8a23145751ab62892a96a882488bb28a5a154bec903533c36030d86177f19778172f11cf5e1f6d11ec15f3e2ce68021c63bc5c7f39435f2b111122fd06bc0ebbfc12f03a0c77108de1e85a195eb0dbb40cf6dad146bad6ef3a93876408106d08898522f73bcf9bdf4d0f034c2e481ebacf03c095493842123399fc6c48a41d32c9eb1588021238340107553c218606bcbe1d8107000cb8711cc7711cc76d5bdf6c16db212658dc1abbb5226b648f369f8db6d5b6a04d6823da8a6834810742324888d2c8d29014b24836a9ad50a9a8542b1199e5d4a54d7f2aa7cebbdcbb097aabf9added10f8056a8674a29a0821346e4be1d6a9aae8d16c9766da5369bcc394d6eda4c30fd569fa0ca74e9e5776323810c361200e56ebe9b37ddb19eabb1616b71e8437b99ed67b65fddd0e2aee536d2a269c9c93bd5ad4a54b7b72a19853cd3c42776666257d66eaf49a63880f6634dfad893a9091eb9151e41157ea6355ba1d43b750fa76ec2a94f3ccba99fa87050df9ed4331cb783d2bcdec7277fddcb582a758b6352aa2b339de0c97772af3b9d5ebf9b13962097fac94f6ebf9b931fa025c09435ac9baa9826db3663861592f205bbe8e2148fdbe78c18f17771c50bbbafbbdd8472ee9a7c1b3beebb99a793c9cc2a7756eb1913134b37cad1493daaa22b4a4d8ef20ee55a2242a0c9474bc42e61b2528de2c4e3591bb698c5c2427bb7f2e795af8669e5a2cec2417d85d5344cf166836a1287ab518b7dc2d529aa11a53911191dc1d648234d24159e481369ce7c72c74a45eeb3dcf1f3ceac8272b2696a89d8259ae34010e51945cc28283332caa54479ed59de41699a469348148f31336a127d4d4a7de57eabafdc54eaf2f3380e04f1c8a2f53485169bc59a482dde99ad90b556c85a212b34f190d744a234d5a81add9c8af089a8c53e6d1a51555d53bd3832afde9d900ca95c0bd4620d5a6c2bc40ac929b8cf63e6edb576a426bda04ad4c743cf8db924877b0f74c9121d1c494416f71da2085550420ed410052358f80e5e70c4121ff8e9c0083aaeeb20cbe1aeb9f061b3d7b50e6acfbb910e6a6aad14da0ebe6e4f755ccf39e7cc87f62387529ce77d7a9e779b46797888cf652d5e4fe1707ee6d43f49ef4cd2b19e495aec77dc4cf254cf75c64669d29d484600ed93746d060a1e67a0f01863f1287e8547d6b66db5fed9c36310791a8dcf26a4243d93d4335345eb55b5de84811862cb1cae53b4d83f18f5cc87ab92141ef2fa9d39756746dd99bfdca269b3fef4e9efe813d15d1e35a63d8ecc79880cb0600517d8200e334002022dd84112a33348e104497452cc7d24c90f28b030859a115da0220d1300020b8e64506bc20d4a76a07cf23c8b2b65b12b65ddc90830c6886cae61056d20927513acb46a85ec508b5d933a9a02b0b3cf94bd0ee48802c85ef79932f13c3d329e223ab08b7f5d669d9689986707098c900319ecf20b71bc7058ffba94c9ac934a83101564301c568c433cec52265e0bbb76e8f680fdd3342bd4359a504d9a20479b6881912c802c9b680151aeb5db6addb6ba6d75db2af79ac4628160d788d8d1a28fb16b4895e6b27e7f486a74eb61c3433a50a4fe753b742a0238831825d28e9e196b920f1d3dfb35491e29795d29635c8b5cae2350c218ba90eb47b9d33beac83a4efa87bb9d945493be83d23452d76a920552a31c078274c8eb4a5aeca6d1fab9674a38bc5443113448a1088905485ee811851728a1010a72000313d06b855a9c61007b6a80c4089127dcc0094ab0424f1124212892041120d5600429490c09020ea8b0c2cc09520a2df898210a54f84c410a21ac508324841c89420da69080a4a323a070031a82d088880310848ac0852688a10a0e60c20d889024a40a4667d828dd90c0da791b1ab6229857ae2e3ba2e4fa131b3332b542b66b6700c7aedd3a44f311927533875b7f8290202493df4dad1da17f7dc7eb66478b6d852c912db24276e8a467454f1d18f18aa3fe0703587a6dae8d16ebd893a5c57804bb8a836e148f27b97bc9d433d6f4d17ec39dadb6ba68b15629a3934015a26766534f082b018ac7eefd4ec749a6f6c6503108b167bad7ae5a6a3b1d27991e07cc0d92d0011624b1e00d498ea32ed14414828083283c51240559bd4dbd8dfa771cada693015aac9fa0ddba52d7d9b069b1b246ce5a0314016d20254d66020692956d4e3700eb3b4ba40e0abac96f58d6519e6eddddf336fd862bd757b69cb2a26ab78d5b969d6ba6679834f76c6a2bed496b6fbfaa24c0b9cdcdd25a233fd20cd6d87fecf9ade69e6dda235464566bbebecc8f32094aa6c87da44ecc63e6494b421c8672631f9d31c0ca3ede33e7019c28021222840925590a0521e5711a21cfbbc8b209269a9085f28b7c611d819226460e5529c7171cd48527692a0ea21d4444b43855384b802035de91048e0f5892e973de814ce5572a79997b5f13d88fa11c874da0cc408a6c3b88e8138e974b27a277b448c42bf6d1e26c2c914cefeec8bdb404c8dd0711a53a7a79e6d22fb39d4becf041448bf3271e80b386279149a49a4ca79a29a69c49f69d9348fd388de4996bcdb6ce9f1f22f367fe9c98004f35d008d024cb2698f0415e198285239468820ab240449e0149122df88192206a50c19cb31d4408791f4032648a5c8b900c89a246519a81632522a24494663611d31223a12b8821081cbaf0012cf080015c888209543802179448e2618e1aa529bda7b1cef613e6017924ed09bbcff3e974debbf7c84630875dbaa573cfb1fd847fe01f45744e58d21f530ab0f4ed619fbb94858dc30498ce3d87e91cfef1ddf41c5d034eb31be2283d548094951ee660020a3bf8001544a614a0f7ef4034366926da0e40290b8db2b044123600cd1a9094a98e98c20b66309ac9c6599bde95a2c361bf4726694c368be6134c9f32d37f14d1f1de5dca7e785c87c31ca773218ed3152065272c692cc796b40232c0000643b3998cc7a765df8b389dc361bfbbf771ce0094b2981f19810f9ce08429663399947df84711273c33e1b0718e5018e20067b33cc4848338f73186fb9471388438930a0894b230c7949d3e65a74b7a550c641d0e754e37fd7413ae4434763ad158d8b8817ef25889bade6e6f25dab2ed766edc44da4896434a2fcd4a98bb2919cd57a2930ec0ee6404c8bdf450a774d423e36ea8c3f14ca41e99fc54610d89840b44618e13f7d3a52cccb1fd28c98ff3288f5fff7d77280e734c72df64c7e230a76fdfb77888ce3bf47dd3f59a647a25122e0029ed30c9f2db0d736c2fbd847f98be71f2fb0128d4e17efa89c33d2b7d3f987e429dd2b97398a77de84ca2b1b9cda412cd36ab08f2a71b80f253fef332db1e2394000308a4f8401b8c20824c5ea4342b224b4260548612100941260fcab3e43bb045f99694620fd96ed37d412ae7a7c43b311d52ee7753d2006767c8bd1de5de8c4e3700e765b6363de716f4031cb71f5923802e489a1a24632d6becb9e0535432a212b921371a72739b18e47cb192334dbb0a9435f4f73ef1383fd6a0ab928fc83a04595367189890db0849b6a5bcf5084bf637f5940d1a9bff467b34655314bd41c07133da924ab3924f8948a956222a15958c4a4725a452d2cc87d248cec8e4d3e78efa1c522988c611d98c4a52669a25110d0905e5aee5121014244c77a87f47e1701e3ceaaa7b57e170a29ebafc7084dbbb8318480f1fe0112cf02aa13ba330c57ecf2a2091bb31d1a5b44b7d28fda1b3f9a23f6f07a8076400fae09512c698ca6327d11610c9fd3195c759446790bb08485f8fe49700474ad49468e2b0c9008e94a84f93f44c1426258282acb1678d21f7e5a45ec8cd512ce42e6d5b69dbfabba973ce5c7f28cd44e2369616ea1af8ee21522069686d22f5e913343089dc7fc1098f5ca9f3248d1e3eb85c06702cd5aecc41902ffaf6ab5183366f8bc256286af588720fb568246158008e252360add55a3bd6205b6b500949ee1fe94adc4ce50ce452cb3e0085078c325833bd7cd3260d8a6b50a340d64c5c8520616c0df056221a2bc2828479d15d446b94a6b320637d10c4f40932802d456e5af366694915b35cc31ba56fef4c7367f2660f1f60ae42089a2f5a96c275280720fd38858abe8f3508a72b3e29015220d6d6a0d9ad3e2d26f58c929ee1deb7330b8412d5234a933ac78120250ada6e7ad8d74a6bb13920d62748ae4849b92b488b58e0599488a3459922e54eca5d837ac08a4411e00806f912206528966904d84d70de53aed5a5c5d50a5956582a292827262b1598427d5e773271a5cd56da12667e491e92ba6461b051b7e4f393fb1f90a4b1224a03722088fb1d2ecdba09e0dca6985d00b7a30d07607db7c9bc196d54dca05b7758766cab412d3657fbac51147310e54090d6a0a62580ca3a5c8b68ac4f242877929137a44332750eb38e7212942cf9cf8f2eacc560524cb3a0932fa305aaddb675254a4b255a2ad15289d2d2f67a0350e69311a0a4310f873adebf7f982775af69104aa33f34880a51237a449168529d559f4aab3ff5a822d91f4ab32262c114333a54816a10a5911488d24cd994329af5312a221aaa8134368f3ad900dc4e35d8de99dc007e18a9939c9200c7468a3111f4c41252a8610750ec98e940091b20e10116da3083e8074504214347318802053f2ba04086300861568416ac614a2d98c10641c081174e7094240e47624002148c2064160406135881102f9c810a233802156a34d101282011628323d0846a20816a31a2b8810dce0007246ee819011b86c070c40c960044061d734976a5a41ca79fe2e2c263fd1033a7bc857527be3d4b795d4ec2b47eaf49c2b44e6f9d2f5a87dd6dbe68dd86aeb832e77047efe58e3a3c8a0478217a66f5af6afeeb77e3efa6b73aa6261053212dcacf2868b7f45b3ece1a5292f732050db6807404118a44d0f20e0c71c8c83ccc7129731977068dc9cb5c49632825aca0481c98a8c16c269371997754e64a2a234326737d5c80248a368821480d4cd0df0dd7eb6dcb757839c5758798b97b0a1e6b4eb92b661cc70a441e85c8f4d47579f0b8c82d3e54217aa6c5e5f23b7aa6df725b489400cafd98fd6e74b4fac64e6f6bd4e1e5d85b6ff98e9e895db6b4503abd965b33bdf2c389bdbf137bfd289660ad2797dbbafc5cb08e16658c069d7a00c6defa386b192949bcf4fddde8c75270ec5ad75db525b4efc9b1d89db9f5588bcbe977c4aecca2102dca24b6d2969217739117afcc520c60b721b9526ed33bf0f3386b3a3625e0288f7608a14376f53db927d782ea9d494052ee4ce2ba5389bd3d1392a20e82e0811790e0082400c3d7782211993fb889e860a3e5cae953d7291e658b2dd77bd8b116873816ebd021a7e091bea55d5a57a74589a305e054d2a20b9652f625923934a198443d135299e54442ea983cc78123c84a434db2ded44504ddf1e0ae932da63c8507cd29e3cc2737b9b76790fcfafa5af10fb58374bd6d53ba3be5b2b09cde7b6f6272afc9efbdd7242585d294a6f80e91394be69debb65aeeeb5d6bad15d35a29ecb7af2faf1f61aff8fb6acc2ce3a3ebf4e3ebadfa5a5b8eef72191f34b7dc9e75658b2e23ebd5857dd0ecd2baaa24c017f6d1d9e5e3b17d8bbe6617bce3c22ef4fd825b1f61d84767d75bdd82775c7771e11d7a9b5d30f6d1f9ba6863171e67905ca708e68bfa94cbd2993c16169477ddc9b833efe457a3e52eefebc2a357efcc95b98c2bf396eb227367662e7365b0665a2fd9f58e7a3357c6bbd775b9ebb6de725d66cb656e00bc2b3b36829915803eecceecba7d19370097b932b0cb6d3a00ddb52773655c7e382dd895d9e5b6bc73ddd1cbaecbb8b5639f5f8dd65db0db343539ec76765d94b35c994f504c4c4c5647591d48e51364ad1e3e7c8bfe7dfff29715c7afe760bf7af75f41f2d388bce1ba7d5fd753eee823a7708d43975b3c863eb4bc43179cd3d2f429b7a129774cf90a75396dd753de2d1fb9161cbae01c17eeb7ee987214d85db037ae5771b50b769bb62e4fa5f10eec2ebcf37a5f070ccb165f5e5f47790e78f57ebddcb3de785c8131ebdee4dee49a98f4354931795f93b34cde29786499acba6f827f56df77ab63b1faacd7b374b3bc85987ce2306775fa536eedb41edad5c3d5c387e11d5b29ab87e15b77f4d17297cba691b90b1eb9962b5b74e19193b93634fcca53ec8dd5c387786cdd146bf138e975e5d0bbc6fa1393539314bcd3faea63c53abcdcc2e151640ec17c7257505ebf1b96ca6af5ced321d3937cc3ee54d917e5f4829714ebf0f26a851b488bf233c99d4a6ecf5a9447dd26d2a2fc777b8916dbc313890ab03bddaf74f985a172474a9a4a669216e591e0008a2c85b2448283209936856439915a9414892c8fc4e98fcca510f2729442f273a816d4cd4b6bdcaeb5285fdf1fe7912cbbc6ccd5dece32b7697a69ee3b8db4283f6b9466d23a2665b06c7939692d78206456031f94a10d6990ef997cfbc84fa499244f6b323d717004a45cdf05a1c3f7fa77f3870a6038754ef7b87bf7de58e70777ef3adc3d1c4e1dd34f9e5742a9aec23f4a3dabcb069c1ce5395447c13f8ae88057fde4729600ac579d5c308338c4c152992c161e1aa43f00d1623dc53a370a82d24cd94afd577376822265a194a56262ea8cc6386cd4205aac2fc2c854d52068acd6727db7d719a95eba8eeaa5cf97c0a3304fe9e0795057bd4756bf8388208400ef6778555fb9e06991f0b2be7255de558f5e995970c8d36fe258c93112860896a572964f7e618347e520244c95463d70cc2080a5dca3e610074be5fd858d71a8ae0029533d07f81f2011944606216b4ab9defec81a1ab924c749432940ca563010202837399093af4ebf3001aab3aea33a0b2565aa37d601af82794aa7a39ee37414fe51e447f7d373781f08e403a9a7987ca5fa0455777572516eca95b47a33625a2c0294b2fbe93f7c97b2128ed26d7afed058fd771e496bf7ddee86f3a8f7c87824adef70f7ef3addbfcf7fdf5198e7c342d058eda4ec0b82c6ea3c8ecc3d5812669e3bfd66bfd33d2c6fa8d3fdf40e73dda731f912a66d722425c862fd5c0efb83de622ec7b6499914737f64cd2b6fef8fed47fd1250bfdd863a76c3dc0d75a6c5f552ccd1989cb3a911d8b32c659bf7f91cfd0ffff8de9ff847119deffd1ff3dea5cc4bdda6bd944769e6254869bccbeff2ddf66d88ea43c08f272a0c3e75c3da37ac386c40eafd1ce055cfd15fe11fa9f755f847119dd4fbe0a5ec04a47888ea360d5e29abd76b51c6519a776cfba692b2de8e63fb0fdb6db6db48e1d0749df033e368ddbb53d6fd00650e594af5a5c5ed75dbb649e3a60feba34c5af94ffe136eb3b81aa0c5ed366c5adc5e0412f3abb7d96e5db7df02fec4e4a73b73eb1651809401f9c07cff03dfbda3fce42dfa498e08203d6579cb0d3fbfee2d1ea623207d0d54b61902483fbf1ef638b2ab360820cd3db69b1edc4313fe015a940349f9c97fa03452d6ed3628cdf7cd46d67079db7050f91266fb0c02d82c6ffd87f0aecb0f47cbed8c96eb6af5803a582c43c617e26009fbde6d3abc3fbe7b67b93f8ad8ff081330dfd799ffee1d3573ad28ee8638babdca7128ae545125207deff64d5df0aaaec976d45d5d296bd4ed9981986b712b02a42c3308a41387f5fbec1fe62182c6b6cff7c86edfa3b0fe7b8f0c29ac18f314a958676e9fd8068d6de731cadb1b6f52366dbc2b652722802a0953391aab97f465c33b9628cb154598f46ccd1ad2f5f0c18d1b50de5a0890c4f387caa359bff629124d92f87404949f77cb42f4e947702b9dc645ee0d8f2fac16153a6921cff4973ccae0b09014c211437f381a925f0e6a147698871251211aeb1c3607274da79f30cfe91ce63e1dee26cc633a87a911258aa131db61168dd9214aa33f1329d431493ace9f508733dd69f41e19bda4311a93548822f9545afda94155a81ad5a38a5493ecccfad07e288db4b33a04144469a4ac12a1345246db7c8c8a722d27b9140d340df345239d8600ce530c52a4bc016ded4d81c889126c1cd1114d08fa49a3b1a499449b73d2e69c2dc4e5d1119d65f9cf76b7448a9c84f0839e658b6ded5a2243d9a8886803e7cf555bb3fd52adda1a15b5994a8f9400474b640601c7a651b3b5252cea5386c23e9e0cf52632e75379a23012e0ac355923fba78b406a676a3fb3cef99d21681e122a400ac93480ba065257d5d9ac5e66d4e78671a4b0a4b1ef32eb482119ca6edbed86bbd65600e9e911a51900123459bf7f401ae47e034d1a160f413141d250a44a1b9a34ba37cd42a652c84d6b230d1ae9126a2db78a48272109e0c392a1deb7344aa3c29bcf3f3cb6d03d3c76900e3e336428ec63896c48e48bfea9d228cd06849484dc678120104d7ec00a14e90914298fdb1172b7376b4b246f48c8fd4d855305528b326f546c53b448f1905027b564c9922532d5c76d8acba3fa8f0ea0aec2610ed5575fe11fe055b8c8bc9481a71f0e94ea06476a1a016e4094664322637d28b829e406daa238b9009479dc906c3e94a6e7e6e393fbed0149a343c6e6a40101f9020e72899ca177439211e496e20d5d0690ca9cc8e304f2832024cc9da99621799de2336752ee9356cf8cf4b3f583136f67e256e54e58adda23fd9c60cf4cecb5d84a80633dca5e677afab1d2733d7cd43c6416e698b2d2a7ac847d3c59e9f361fdac4fe5211b2861496394b369fa0dd7fb50bf43cfb5d8f30379de6ba2e79442b97a74029130f35b00c76a4469094fae934a2788e9ec6f695f5e172f621e5f72bb90f656ca4951d266b0cfea4bee48275fc693516e1dd85f7f619e57582ff300c41c0087611687619e6a841b965024e3c9e1451429e988871d86796061c538625cc6618877711798e7c5451ceac4601e7b8f4cbea349e058bd26862a153d33fa60014954a9e0364b4d35d3f6f9d0ba0b1e6776f9eb863aaf2e62021e14c95eef91c16e28629e170f64b0f7c83a16231d9b13093889a6d0b2fa1f268d2d57a028663257914c49ae9f47006b99badcf5be9d42cfc8e959ebe55a3f5fd49bbc5b93c9e49d7ad51e31c151bde2ce1ed9260deef6a749c3b347ae35622468d218b973f385bd9daf2ddaedd634b9ebddd37cb1adba19d3671d757896488b46b6edbb96c8b54bb478e4840470e6ef2a1feb604a27bf1c217afa89759483dba9fd767a4d9933556e7e3bdd9938eca1faf61c395fcc172397bbedaa8bb3e5cc7b575d9c79cfcb1b7747ee2bbe947dd7cd2fc77bc595cecc9d861c0e7b98ce3d87ebb89b33cfdd7471660ef779d3c5e13eb949efdd91bbcaa45895448ae99652936f37611d5e0ac53b269f7827755abd7cba4d5de520ca97c2d507cd2747d5a3eac90ab5dd722f51d44b1b8747d457bbeea8ae7a28d4ed5f5e4e4800c31b336f9f3bdec461cef7faef158fa7eced785fd9beaf7c5ff9cabd6fdf57de492056eee56ab256884ecca27a5df98a73db8d2f67fb0a1e3d53ee6d863d56afcf31b1af37b93ce892253926af5f5d1c13bbba38f53d8fdf5bd863bb7d0e375fa8ce61395f8c2759759bc3e170b8b6a8ba55e55c1caf45d5e597e3fd1b275eb9ca5f2e98f11d9f55bee28e3eb2ca51df0d2ac5fbbe77b6d6331fee49e3bb0ab644be6b6bdf3f9c9d79d9cc1269913a31cb56e81bb98c3a79c5e335dd0e11c193b7cb4943f50d8f379ca79dc913e038b3054eb24908c92a078f3ce812a4ac5281299484f9bcee2461ea470a98244c3d05e6a777c71fb2bd2799fbc91dbf7376c8e4dca431b10e4b94b769fa4801d5ea04e52305785080c75c924f37b9090bebf0b2bd41b33dcd165be024f3a04b94e45147feb08e93dc22f7d3e5240c07c31de59e240cf793db4918eeabeb4918eeaafb49180e86bbe9a6240cf7794109c3c170a8d74b9d98654b84dada87437335029444199f13725de04e59f1fad5a4d1b5f9a25f2bca6b7de77db2e67b3d4ad6b05e9f9235a0caeb55b2e6e5158f3a4e32fedffd5a21272420fe6885e04963355fe0acfce4f59efc94e5135850420d0f93a3567742d6f0501d41d6f0f08e44d6f030d927640d8fc99df5be4d82ace1b11d7c0d0f7b15fa17ac9230f57d950b4a987af0a6244c3deb7ef79330a7dba5ee09e59a505f716bcafd4afd7571147e9b702b93eaf6a857ddbb3d4ca6cfdb8343a5720df333ee488da0996181d45308c01d4d539071476a04eaa37147ae86071b770703c418519a90c5e2b6cf1b8161901627380456eac57827730065dea53c7a1b46fd746afc467e0dc0f90e38d4d9612601640c49b21dde23b3e99b1beadc9c87f38079a4184a20bb0165ec65523e4f4427229a675ee131023935ae40d6e577b342458b530589d565300b247b5924a956b7dfb15761d5eda7eaac8fd6aa6e7d507dc75ee636cd2209e5b305002e2f1e7365e000ac9879a15989bd66e42000580d0b0b9146e8a285ab05f3937728f7e4b2409232323f39ca95b9caa4645820b14892c118c60f5e4162dd9523183429e67d30cf02a96746183416493d33c6d05824e919d3e759c0a0610be67c3e8646a34600336866022023e60500605cb46011b321c27278bdacc0f7f62dd7de755b21cbad12c65adce08d13914bed940470b44329fb971d5a9d45751648525cd5ef46a69b29185920f950b3cc5f00c91a2b64d4bf5acb356eb6d8a5d62800612031ee380c5acf843960b67827c6698cf757aa0be332b73f7d7555498032b757bd9b329f8c4a060fe1e12c9078c037efaf46cd206872f9ddc4b84dc378d731de39314e71e813020967316e7255498031c0dbc530c5e818309284b31b02a187f1b17bfe000c67df097d643e53725081b1c495180b8bb045cb85eac200c0e61e5172bfca9ad5f1c7937fa4b94793dc6f5963f21e55b9c715cafb53d69cfcf5c6a3cc63bc93b9618c1bce42202dce18f63231b0046d386b9ac922a945189705920f663d33be8a7c7a66fc432061909ee95e4507f8fc6b312f0000e3a2058b9808cbe1f5b2025f1bd848be4b8bab15b2acb05452504e4c562adce00d6c43f30e57ca6eae94a5ec509e4785b3b132914716dd6ba3974d3068791e20e7c670934a8ab2dfe14a998d2b6538777692c1d4b8b3938c0552f813028544c2a19028440a935ab3964f8bd6fa6901b588b4925c331711978f8b1616d55a43612d0c9ae1ccf583746454d422caa1509ebfb952566281c4028985923c69eeda33c0bd910dbf368d401d4e8c6a334e8c246da39ec92753ccda5594c552c2f4901dce22498bf32c9028cdab6807fc6281946751f8a2853fe12cf49939f5c8dac7b68141007124c410fb791b946686c522c842ea41275fc61251b694a65e4e5953944b91d2985cc67029efa7701c5010cd2773b3cc716fdab3cc9d48e6502e8bc6382293feea86db7b64f4b23b7dbb628bdcfbc6d0188d71733e0194b2d54dc4cca9be6db4557808bd4d2b6991c3d131ee1c1d39ee327a6d2d88bb25c2dde4dad018f7d5ad5180a10e4e0a7556efafb0a5d118f7b64099fbd84999bb0d3a2589431ba098c9b889648f2c12a591b41f20225b2d88fb26b40dfd702f019586b89788702fd56c12d17604442d770b62a0141e4b4125da87c7928f87c7d2acc3e39694b94bba2165ee263c5a23295f38bc53223af53782ae8737cbf4610e8ec6fa3e66fe01ccb9eb2b8df20425ccecda501375d10c8888d0a443948816511a49a446696450f531a2495d336aa221a01f9a4f9eb38c44276582cc53d2f066592641091239ec6a8982f42c7ac9d19a5763e60eb431e595dfc1712358412095962369441aab35dbabec42aef20ab9f69559a4343668ac9e05b638e403cddb4b57e639abde9430f236e4598c56598e279c8333dd70d8f53c3d1336e631b37c8f59efa367241ec2dd1d3e88e839ab1c3e8193d2a653f6ac25241d486b3dd99ac35bcfd9d69e3afbd2e23c6de286b916b9cf6f62f7b436ddd86ef82216bdd19ed62a56709e35dfb39bdb1928a5b44a18ce61fa009cf132a382e3679cf4cc18d39a514302031094723d78539f2761eaed0bcd619a94289de338af9402d06bd11e75ef5dd3cf5e950dc051471e4fb20d024769644bdcbf1ee8123864148e71d1a287c516ab044e3c00bd1310c0ef9e34aa12c6071531d7a2e5e8105ae20cd0b1fa8ebbada592b5dc04755aac1567b3d133f5a3492e5d2569208026256b50dc2db6e1ae8dea03721fa590015aace7317377044c1a09902fea2b143a8fd209b93ef55d2050e75e65cdf7ce5e205a2709683fca29e0fcd0b984ab84e1cea1ae94228767748d9a4b3a783a3df3cdc8efe6c3122c95b00f7a432e59b264c9e7dddec3de1034ebd0e2ac3374a8253ca3c59a6bb6cd95de5687162bd862ad9fd1342e3a565fbbab9020595ff9b15aac2f89e048054948822004234f02178a3c20042c108942561f84ad428264f4ed75039a8a214b08c9661f09ec911a9450d8daaf364f7593c9f4fa6db8e298debdbb6953b754e0e521979ebaa879faaf74c7492bd1ca9d7c70f2642eddb1668ec6e4f5db35b9b263d3be74b75ac1b64bba397bc6e8402528cf92979c149a525829df713d33f6edb78fd6628eca797a8fb37d821277568b747c299d45f502b0542a955cb428d2d3bbe04e71e56274d0c91c40fb9ea9a8cb1d2dceeb6871d66aadb5d66edb367d3a86e50cf7f90229da1f4fd2a06eed0c0264facc9f9e99b417c899990229cecb148abed0ef2f994e5ee7a53e1e7a66ae5f8ec52dd6c954aab2664381ac319d40d69cbacf77a87f1fe6b197993beabbe1c08f879e6c51f6169f78f6033bfb93bd494a181e6bf3f68ea22e9022dc3db02305b2e3e999917b692b611eabe27238ec6d1fd7e27c2dd19ea552499a50b2669e9ee199b3fe6e360ca4676a90ed7492fba7ef864c0ba000838b933cc516a754c2d3343a84a0343f746ccedbccdb988f9901f4f50783ee6e8a87d457239d7c395d2e91c7f983842428b29dd9ce1af014d131a150a86f58e7fb09f37c37ddbb0a08aca7ed26a8a7eef7be4536dcb1dabba679d475e6761ed3e737ac93fa877966d0987dea26e729a2d337c13c45745037611e91c6ec5158f214d13179631e937b206b25aa2e6556ca4c523c4570a830cf94a19e3a787fd8a031fb7a8ac23fd098bd0ae8074f110548996ce21fb208e5cdf707a6ec16d1996fcc53244c40bfbb4ebfc33c45b08f4eff847984a031fbc6d387c6ec274e3aeaab62209b1fa78f94c917dbf5d4b654e8e4cb486b592251829625122570964870104576c5c088b9a8ff40556e5542dcba32b7ded9f9b5acb5d68e4564aba2f2561d5b97debe7569ebb6455badda6aa9b45a554545a5d5babd2a311775f9b56ed39d14c12c4c81baf7f4b6c8278ef86419593e2104a26c7fa43e48ae82cfcaeb5b0fe352d4d7037de5f0d77b7267e2c1b8f5ae1e1a87397875fc7d372929ae3bf66497c438a8ee7a5d2e3f9bb62e294fb90d755d96a75c93a32ebeab17ec395cd61d7b32eb5fe872bf77addbabd5aa5172e89506531f8ee92aad56eb7dd477d31583d9b6cbe5c2ae7a9785dd9dd78bc8d55ebaf0d8935d3098eaedb2697b170c8f9d5f193fc84cbd5c7807fff5fab19b3dbc3056e1bb70f8baeb2e39f5fdfa76c12e33ecb6ea2e2e1cfb46b95c2aec4241717d9eab3b825faf5103b3bb1bbb7a78ec0fe38ff9e3ba3bb01791bbe24f97bbee1a272d8faebb58d8ab0b6cf5f175eb72d7f12dee15dee9c36e3fbe307e37bdd4ad84bd5d18778d6fff05c3d5e5de5d3d7573f8bc28e7eeca6da8e98716bfeffbf8559815c1a4e1728b778e5fae1b29af9ffd70087bbdcb5d5cbe7aadbe72658bafa3dc1c6e6d11bbbcfb70ea772c1ee7e9f341049346c5e3057a727f65fa6e567d6d865d99334c038ddff7955233ec4e7c9bf660b7d53a103de37aab75952bf314c1a43173ebe14d0b4b7006717139ec8e3d19f6fe6e6038aedbf7e47a53eec89372f1e5f77279caedc97d7d74c6788a60be70691d76d37a8bc7f42d2d2d2defb6638fcc2df7f4767d14eabb69fc03eab53b79a6afd4f707dac3f2da6d7282c79e1b1322ec6dbabbd6ca328364131316934beb4d4c4ca889890d65313161b94d5396be26af97e5f2bb39f9f6dd98b0b84daf5801ba48493112245370bd9db57e055dcc1aed9916474aa248f8ccaef3fc5ebc27f7e429540b7a71f9b641df60d29825982fe4e5fb039266d2644c3e26c25c7e2ae919005cbe81c81a99250c40159080fed0eea4c91a9d27141246e230271c22e3335b6f884ccf646021684c9ece1c0344d674973b7a06c6e57df44c8c8797df90408a47d07af3f381cba8cf205d6fbf1bd4e9ad7fb9b3f4bdd0db34eb0078bd30a73832c39c754398cbfce21df560dc18ae4bb3fc7af81e03f77bb20b751838d6b5aeca0def4cf201285f6faafca4cc89390caca3452ee6de756dee2ebf1a2723e08b2b8116e501708368511ee602d1019130f24270dc91104076501a2993389d730906a0bccae58acb1542c0dce2531cc92bb24422450db28b3b331012b02dcf5b39ac054ba560b015b09195556e3a7d3738b4b94513e516efa60a08e6149087ca9975b44acae52157bcefd8cae0fc6e54567cfb6e6c800a4a500128b778cb4f77e4b123b738f81577889a5be01df02def5a2e7d57eb10358f3bf24edf35768d11b4e9aeb7d5d6943e781beac23ebea3459957809885ecf602488548d9fafc6e60ef3ad8ef1df1ef5977c467bd5e2d2e2f2e18df97cbfc7a69b5f00eecadb3eed872d6ef1d5b7edf554b297edff18e8d77ea5d4eef08669a82472f7b5c0aa5b6e5f7751bcaba630bd6e123c37678f0e4d765c69707cd2f1cde98997e668a75d05b1be07bc39cfbfe7de3dcb38e5d4e61adeec6b0bbc8603c7299c5c263cbccb745e6f61d616fbdeb5db239193c692cd8ef859d75471d3e72ebf72e77d2e865c594bede8f13a907d85ba7adcb7cdf9f0f5d0e29ce81bd75d85b975f0e2b8fadc36ed3b77518de699d5e7e3dd8770b8737dae21d7af08d7750213d43f18eabd3e123bb4eb75af1c8e5b1e5f6d6f523530ef4187b4693ebca4c29124f8033af583141bcc265f5661d769fc35f2f4759f182948494440952125212253baca9aadc1b5e1f35bcf7c547bd7f5539ca6bc5cb59c739bc5e987518eb30160c0683b160c7300c5bb182e1d5f1ea7d572e1dc6f8f5a7937d62e52d97afe03067c5e957b8b87c65c50a1797152ee08e4c5b5a3e6a5eb969c55756f0e8027aa0d772f98ad61d2bf651b3cbe982b93d93ca4bdf0d0e7350f28adbb44a0b8f5e6ebd939306add4cacf078b4117d6e9875baf93c67debdba4017bebf5568b22c990f130c765e0cb5c8ec6642ee35dcaed737827e3ca58193229354fc69599b58ae98cc20d94db1f210d432d144b996f58adc90556986373ca6d4e49799d34899474516e389166b3591e62e699e4430bbecf02b863e615a7acd3155fbd5b7157570827c0151fe511ce8a1b8c7b48b91d2273d80deb6197f9deb0e21af75d7b8d4493ec3744e6d2a65c74dfcd1099d7ef86c5f5ce2ce3f2b73c877732f79efab428af7a01782fb3cb39f0dee4e3a1275f2973b93917cb68519437313135a45a4502f6c749bb115b94930be0487d640b9e4982f48c6bd664ed076f01a46fefeb0176ef75bf792bee2f3f9c7fc56d1adfa653aecbeb7569d1e5e3cc2ef5f62977a7defe7002207ddd711265fb72814ca30e407fc505e273d90bcf293a263b00e3a422dfb8562b5775ad5c2b1707eb32d44a33eab6e53a2a3aa36e93c144e70e0f2a4da6efdfc9eb4c3799c21cd38723b590bbd33db5019447080a92e51334a0e5d9f9542bc76ddb56eb66edbb52fdacd7992c773a7da7532977ddfaf3a1f2a09b95a3778eebe84d3b76ecef3b79a7fa6dab37b475abb572dcb5964a6b37a9054a297db779a79277b269fcc3c2e7708fb8ac48cbe74fd00f8a0de3cc1348eaf2bbc0ccf5f975a52c0152e6811e179899fbcdea36edf2efd24f10fcb7f281b769ef5d176edeb6759ec956cf9bdbc66d5b51775a035052e68e7ca8dbc7792993a79a99f3baaf66d3b91b95cb0d48ef2949d779af7bef8c62c8a44bf16610a599431deb0f057960c7ebb3ab49ba9a044ca21af2ba2d0dc1495227495292489b5eb9337f05a733eaa40693cfa3f794869394f73b8d6ec00f0ddfa752b36c02052f005d2e7dcb9d462aa48f15856a756547afebdbb7c2938a59740649f19db2973b8de4378bccc03209ef34ba49e159540655c865e9c418cc90576e52f4b2fce4bbb933b35001b29c9061e6f09ec6008e928a995b1fc52731802a1f8f9951deb57463307d353aa3ced28da1cb9d8b8a0937ab872a26a872f7159c9987e0b7564158e5ee7e4be0ccac72d7a722027e593e01b4c4973bbc72c3e3934f00c12095bb15dcb671dcc6711cb76d1c4adeb64c5f1ebda7a314ebf793a294bf2c9f008a82bb35a7e8bb151e77b9ec7d09906ae0415119c03002269cf082ac7b29712ff6657b31bdbcc8a62f33851a793287e757a3f32c9a5184012cf990af8de3b68d3b799da9d6cad5aaba320e3570b6ef7c74a2bdc974c7eda670b32c1c6732dd6ed672a8d7a35e5f39ae72288e1b6be875a6ba6d274bf369dbceb2613b37d367debe1b2ad9844fab8f9ed9b84f1f1dcb5743c621db77301e77b92ae90b6acc40b63aa86aebccba32a360992fb38f99b773e742bbd5cb83666b39eedbc693c31ceef5dceb667950bb15a12ea5f6fbbefbe8990fb75c7202c3b6dd86d58676dde9a3f7b1fb680a4fb8c629871eae71caf461876b9c7268c2354eb9f3cc325b1e3cf9744f5f00e5134724e5712e9170a821b3904df7d1331ce743e541737d9d453d63b38ffe6e78d4d92c05d9c7a692373c66209b6ce8289366d6d133f420102559f6ec3d55e043f1387327a17b01ce4b245ea0a2674689b993145fea9b4679082fcff751b2a6c79c651e05c8f37536cb33079ce599e7bba893f9d405b0eb64e67a46524ae7bc3961620b390252302d01cb16cd5073d31d20414912242809c3e8e531744850726482554a18ebf9939bf74e5af375ce3941cebbc209891448e4f185fc4c260fc9d1511e59ac8d063481b8c5da7098b3bdf491e57537997a4ea3691b8bc8a76953a6a3eed9d4787a89a27eba634fde4c3b289cdab86f2713dee62c8fa7d31b02c81d1e4d2f6d5c7bf3a71a9b9430a6dbd09f3a148afbc63dd5dd744fef6e4e4d369d3e6e2f3d55633b17deb829751a4da79fc6ed7e26d34db887a984da5ebf3bdad7994fddbbd1f4d34ba69f3088b991b31ca599b24d7a9c18e83bf7a90aa0c4dec5531138c66424541124f763e4eb59acd6cbd7c3cc14bfe4fecf62e5a6975d450866b96bc2c7e8942b2df787835790bbfec91d7541eeaa90dc6d5ebde3968d68620c5164fa2a6b4ca7b7b2863bc55bae97d93444cda673378acc23954def360f89dc840f52d3533d9d4ef674da4ea7d3e45850634f0d72132140412edd8eeb5e2ff1cef6ee3ba8eef3c3e977dd519f0d9b2ee5f5b0bdc3233d15d984a584e1ba14576bcf54b97d474a17630fdb7b2bd974e9cefec4f207e0cc94f698e62604231b2d6e2c3f746f33c702d1e2e4ba621eb6cf6f73829f17e74156146a00475904459eff41072044709e352f392316f4a96716a2c549292844c766a7c3deebee648328993010dde99463710da28100a2c5c9d3121042479786a8795e3caadc0672aded2f3d335b9c2fb3ea38c9d6b604e5d6bdab17bc5cad464738eaf306725d9bb8f9520c0d028edc04bb3767c263f7ed5d7741ae9e70ad3c39ecc9d8bc8b3cdf1ef8915ec749b6b4d6536e4957ff92a9fdc8da2e694abf2cc9d8cb4b965fa5b49b60925c6badb5caa416655b6badb573f6d8d94884b27d17936dfb509a12f70d286606f591211c8dd198bd7d0b01dc46ce1ee9192e1bc99abeb5424cb6b6b1e948c2d8d106e5f046f769363542be589f9e09d233a55b2cdf7d3b672b0b87c70d20656b83b468378b471d968601a33ccaebb0344bcb72454f69360b4431168b89a228c644b166719a3ad0c92e257b66f6a474266bda1a019b0d20eaf4bbf9ba947cf988e41a54526dff8efa4ee9dd0deaa6db9d5eef6d8ffa6eaa1ffd3e3c24e5b5685396bb79e7812714ecbcd2bb9cd2abd7628fdca9e575e31d2b44935e3ac8f2f492b672b839bca339bcbceebcac164f5b680a3670593801dd2cdf4d1a7bf95c3be681d9cdeb550b44273611cd8f16682661e6c927049c51396905fac12c75a746bd9eee23e7d877475d1c8bb7777814226f78e450f4df9d79bba38fbcd51c4e885c5fda91eb4fb777bba4a5be95e3e68b7a714cdbb98bb3bdd479bb8f5cf1a84387d7e3cdea824929a5548757bb67cefcbc15a69022620b02794acaa4316b82092f74f501519c4a5ce5b839279d9ca4342328dfdd2b690ce7e756f3c3b15fbd6b6ffbef89752fc6a1f6a7cb7d7569ae3a004fdfe4676232d9c0d16247e301870d1fc8219cd33d9cad06cd26cca1001cb993139413247e7a2614b2f275e1b56fb5eefc11326b34dbf8a80d4a236515e5e425938e1d42985e8b80282caf9f4682e6919e610da13a945b7aeb9e9c75e71195943b8db0dc59a3d94655919985e6ae6bad6013777b3ab7ddd6b36e62fdc574931be6989cbbc97bb2e9aebc9ba08d16eb0c0a0e6fa0bcf492ccb53469920773ea843c66a593a24ab9846d103d13e694ce72163cb65ec2610ecb6833cb7b724f06a2c5ba80d25d8ea084a3ecf2d0e6ae76d5fb61a7f512fe21bc517af810ebd4968778d25eba13891ba5bbbcbf9c96bbe0317c0b9e3f2dce8904585baf2daf9f48348d95d54fcba3454ad175fb5d0067e6d65bf04d0b5709e3c263781b5f8d9a5b6fe19d10873941e09839e64711965f1c93e31e1f639e1ed9c5e2bb92eb9c9ccd5554984373eb34b7c622b2eb292bafd7c1c600a5b3409046081a9b604bfdac4d23f5ad3b8fb4582f44052b38b2565068968d67103c81d440caf2938f36b7ce7243949fdce5c293f6d26b117064addc1d2d1ee5d4991199e527373cb98e93cb8252f1a4bdf43a0421ee8e2558b09462ab4a98161e591e621b2d56161ce6bc74168ce3860470102ddecfdb2f070b73b6c80b8a8656aee956c70645bdbbfccec223885330ade6e0627c571c639efa0221c856e05fcc43801104214886514c4c27580793ba03f0f4cdb22aa762b15833a84dfe706a9e341c36e4d08a1cac393f9d97afc03c72095790bdcc99040e52f8c82e963446b3ea823d6a1e5923f75dda289358d6a4956e3ad0243269f367fc81df4d90abb4f953ba538812e039cc9ab4d376fc0d832f9f972f975f0e90c6e6f1e5a7b3e22f982724826c85fc74ee31e6914bc8021166b28b4dd64e6b6bdd4ce7b6d246aba226e46a581233b48c73f9167ed75116491d04ecb7289560c82befba966d70c1176638620e674300c757d1101efe2aa29f3394425448c2cca27e45d1332acf624e0a7156a83291e96358ba22254cafd0185208061d5bd7616979e5dd090a70e695b7562678b2f29696ab287893d359c2182b29a1cf7c08648641f294b93dbd3257dd710348a51b31de2b18a77685736010b101a4dc57dd86aaeea8bacb8df1ae61bca90faacb9c8630708e8a5e06c758dd51f5d6e932a75b1ce3ae77a52973fa7c389de29dd365f04ecae975d83b5a95c7c0296f3d5c49c1b54515fc93533cb2e0930641103ca1316e65a8054f683f860c1e4f569af5938ac7099ebc4fde7f1f8afe5c7de23067e5f62bb7783c65d58eea2dbdf216d55b5aee78655a5aaeeac93296661fc3d264fac64a4ebf058f2a99c632b717c663c4380c2c5b8cd139c61d63d4e82cb3ba3dfde4950cde517de5630cacc3d2b20ab7bc751b0ae67bc71491710348b9753a6712d461697988995756300f9845928ecdcf152ee3dc1d5a3804ddcd95b21dfaa724400310c0e732037c6ea7f9888aeeb5d71a501b0a64908290188eb0625118ad90864269626834366960d0c2bbf2d665f9eabec834c6a863f33060c058b92c922e8b24f4a9dc4d0fc66ddd98296ecc2a45e5f3306828292a3060fcc0c0306845479486074a63e3f3af1752cfd4dc82d6220b241653bc8c5e453db3fafc2b8a9ea11faae485973d23638e6ecc1453b038a2364e6f9c52ba795406197e60f4031c5920550105433436bf2571440c88a609c016b048b23e00c718a32107788c51cf4cd13347b226c6c9a5a411439b2fe64f2ebf1a2d168c70f593166fb8c2354c9962188f71189fe04f14074048c2cc8bafa257142f2309331f43535df5b1f32b88d2d8e001046f701c96747c05e5f9031cc3994b90ac9991e7fbc3a9d96425c94a1288b372b472c47120180a913533cf9f8640139b3619ad4f1ec3d9c8e5b1e611cc230ba416b4d1451e59208d261006ad3261a206b84078380ece3de2321e78b8459a7e4b922715dd7cc3132330faf1c28993bf20226b5682a0bc850fa501c2c35bccb740a267543edfe2a76752a8ca8488c6e64dc2cb5c16952b73d68b6c7978476f4bf6f29753ce82ca5da5b56795359591f859b93099875b65af224a23cf42444116a23c637c7e00c604c131408cf2fc8909e0c8022906088cbf00824163dd18245a9c31428c28cd8dcfb31c519a037c9e25890589d2f0f019538ba119011c5990b0489235aa8e9b9ea97a9ef5becd437d3ca4ac95b9cc599034cbd0b49687db1bb707b8b5f652e6c62011d3de0463a8d86290628c5a9c3153d46e7a5a7e673f1c536efb21361e43a33436f0ab88c6262def702591101a11254b88a1f58c29bfbc3fff0249d6c87cae0ee3b5c62f46128606e0f82a128b244c0cad676290e819d5e7637e648d8c8b57118b2209332765e1b304f037ee0f306fef815a8cf171e5c8a5266194008e314631314079dee48e2c948c2e4eeef80207636522068c3b562686c02a13c393b181431d1b930655c8e047666387ef8082185c8c1d4e8c4e8c5668293792124325860ba605002e2f1e7375c00358410096f85280974d0e79250693b1b460d10a5dc4881123861723c68360fca85c18b494fb1a0c1a8d9ad764d9a6000418800e312f0000e3a2058b98780396c3eb6505be776971b5429615d601524502f8894faa68e5289ced70a58cc50867e12cc65d6a9fc91a4ec65b66b2a67ede45d43329f167b1baa689310ac0098aac51fd19e5ca88f9814a9542f3191f61d0609024cc7ceac2883f087216bf009230f3ed03d5bbf65229b7b725c71851cff3bc18a3192fc66806e5b24892a4826184da0838c600498901d233e32ac6e7e42a5046952dde9139b5b763c4380dd96107ebed706d9c7e383232323232329b8ccc86fa78b851740001a48a72ac6ea854ac3316b2a0754cd1c800000000c313003030140e888462f16840242b22447e14800d99b44c6e5416e8490e43c818440c00000000000000002000180005759bd20b52719c0bc031aa37fd50e3716742ab084498bb5263a05fba855530724f717ed0caa59cded7c021fadea32df8601aa5f21d93fb57222d828fd3c4505dc8941e4097ef919713cbf2b30749afdb5734fdd84cca45c9275e0b49d62dd47fc4c5f571fa4a9530a57772abe12687fb54652d90ae201baefa6b9ed7db23aa02c5705964d96ea0543a468d232f58d74cf50fc5d91be939c52c5208e9464899c2324516f46fbb4c21ca4e2f0ee0840c2cd95749ce41ec6adc10bb3161a0ec4e24fcc62a5ab8ab7480ba69cf2f2a921d15d6eec220cf51e6184100fb0a0633149100abb223864d960491ba6014c797c4b179d5ad3be10a219af198ae0cb2cd544c4996b287452e2ba6430cb4f52e698143a64b3b02574ce670d43a27d8e2df1788d99093c8cdd677d20971ed9ef5c2a644f2bef89b3381900fe9044896b9b0723e7f922954bcb04c31d76e4c22283964f2fcd304b5e22f861c8be8bf68aeed168b07cae8b2090007d1a4cfb58f1763f0880e9247c92f842a6be17677b03677ff05897f43b5efcf426242607b2144baebcf2113a0dbb33ac9143abd0a9895a532415502608cb0e0c7c2807799f8cb0947300e34a88b48b8d14598a56995dfe67721d743982945cf339b76476282412d5d1bb04d65114788d8a831042855ac9dd56021337940233c4c4d8dd74f8e4dcbc2a919e5bfebc23e31a828c4e89951189708a4e7a33c52cd8bca958fda145dceca588661540e719ed80ea2b1d5b3e7561f5ba36f82b2f18091e2a05203639d24f98a3e8274e64864e35ff013b8805b7026fbd1e6747339618b6454928be61ec10b39271fc62f7fbf8e15b22d8b832fae7b0d1bee5233a5a326e60db4ae07d365dadaccad30cbcac8e05f7ee4070f4d5961931289e9836aedc8011b8113af03ef299a61dfc55691f44eaf8cd866a794136d17c9d8ff20f8ca8e56c0a5d48d9b88052fb30a43d62cd14467f44e8630532f2f5cf1843bce6d81fb285fd14737379f251671d9f0b2b6945ae072b2441abbf61c0d88f58fa87026008b84d54c546300c7dd5e9daa3405f25e8a9254b376ef5b23dbca108b7e8f87c509b63d6c62ecf9064295c667b6505c7f29f3d4193535c7c21d360a616ac938a4b9043fb72fa060869af7806952950e3e54bd69af5f746350687bb692024bc1f8a52c3f9558359a075f8b04756c07203e926147005d3c1760402e5006c54c01caaf31a78468e43ffb67db831bc6add04dbc1009b0fc173403e560c83931e9bc83ac0254e1d7f0492e7d9a5f49569daac77d80dfaf5cfa028f5405cec53bb218b58c9252b1e4b2a2117f13af7f47c625b340374d9cd7464106b6db6a7ce1ce6fd4da202099e71df7089dc5fb33b0d2029d0e2bf5ce95dd93f4fc174793bd3ddf7997c9ba941bd1e19ef96085b327bf9a89c20ceaac37fd0afec48ded1d40615a248636ae12512d06670e38e87894224b9afa430d39d32cf7c92c5510cc13db8358e2e47b82e3dda7ad65ec64c4f03f2e90016eb337aac77b30513cda988a68f7bc6b285dc993a0090755dfe75458811e46e2711e62238e2238f375dbe7912e76a0dbbdf345532b9853b28fed2f32d1a9dac7ea6e558eb2b72f2838129385c06602c0956582f323930f34b93afa988a6a9b99e0ad12e62ca526e804f58092c4796c0865fcd2db1b57ae097b0979f1540ba2f62208ab8578d40f86e64ade1e870e4e4bc9e0f0d5911b0a5f9514c178298e93cb94ed8ff7db591c96aeb66c748457169cf7da10921bfc71c2c4e60679f89ba9b100798c1e53fe97a0b81de89eab9934415ccf1a10536bad3ba42f747dc2d396e65f12c151e60b7d7aa08734c3f328d53a2267bfaf28253d7338a69000e9aa5e140e7cefaa175428e00d83a49d3b1ce6ea2238d85570971c5cd9d5c7745a491a910196bce2981aa2889bb9f816c9c0422ac98e939169680c47aa9f5d0524e3c0a49196ab56a926d4ca1b28fd31a19cda388cd2617af7b65a48342eaf7eb8a691536c6490d68b17e63b2e5ae43aa37a6d501abb9512ff73e26d4c935b744abb02c3dbb4f91daf91c95f978900d357a54ea05f157af4de4b5accfce7a1cf281210cb03d310db6df51dba23db47c667f7d0eb890b0485ae7d7af1ff247f74000d8b3bc533f025292cc7611e10586a826e05cf4d7f7049e30ecca78d950575b609b96a4b9e958f961394dbfeb3fedb736014c46cc7160d75c39407d4dc79caca8233a1cade3d3e661aba5f50f63b43b59b6c1ef8cf7ca1e127dfb1a8de7c0e61b20fa392cea66f869e0673120a2ad31fb3db8a8f75e11ce2ee5ab6098c949d684cc364b56abe3586146a3a73dc80c445e55bf9b1bab5a32ca8365048b655043bd25b485cd39f05aee5bd3e5dd5dcde3483b8b81b682942a76300c439309d6d69ed13dfdafaf7251a9d4abf60f6e604919abab4fcc481e6e8bc081210ea23cde179509a5c3f1cc38b2f7fe8f0a4fa02d5f76ea0db730c540ba0b6794bc980f26e3df2d10a41b3cc6440dd9e93816b1c407c2102f03ac3141ebb81ae3b11550c07f45c72725048ae5219416a807aa43d4c306256fec7f1fa4cda0bc96a7cb816a98c4bfd53bd74eb25da8b24914be7797cfbc6fd0c346d650e1a710c53727b252739e3d9660b531e1f43c6ab04a8f5daba1f17a55a04dea4397cfbbc7ae7c9910bd787bfe02791700f7cbb7f7010357e1eeae7853038b3eb7d58f03b002a739fc32852f0fbad23d00cb06cb007689b147c105b069ae8c98868bd9d8d2f439f3df554be8824053f9eea66186a6d69ceb7919b5c7ba1854ec11fd27c37585f51ae4c7bc6d3ad16eb14fc9480debf0e99d3559523181cef3cdb9fedade5c9c0c0b95c6b07bd53c16207ff4706092554cc566ad0bc9556e1b11c9ec69010864a293e226c6fc45dd6deedc13ab260e8a6928a72f0a5ce667c4f7c776096ab2ab866715c5b39f24ecefe46e1e2444e502128665bf8d28c393910b666cb1a7e4fca724be6106e846213aeccc1c71cefe1e57b51ae11343ecf0191860e459261f2b39e67470dde846066f21dc49817f35e8bcbced35c5e1bc337e658cbaf25bb7c57e5b02f295062ac80b5b03e04eb0efe4f3711dbb8fa4276407c49189a6ccbbfe650f9f2256d71005da185a4d74f8191f47ba405bd414e7221aeffdb2c5072a2dc80cd7a4586311007a2a0fd64e95af01c5ea28cc06fd0b294f3bd8610e3e84d3b17e17f45e64859f1fe875d205c641ad26b8914664d15ac59bac5a18fe47df04b62683048de8f3dc08a6f58541336b3c8a1b570c104199358d0c9a9a8bc781208718c7c57f6fea6261c918d334f37a507314aa250418fe2460c7007fa9843696887758133b7572385309d810848feb69dc48bd10f7324a59bf96a8caece3672807844de09b94ff95853ed2ac53c4e33f66814a35b725f83f200e99c4e7cc0361059d68feb8ef68df92e59387cec460dc9291f309736ea43290c96aa8f33fd9dfee46e8e3fcfa01fa8bdf256ac146773b002c851d9304cc68d31dd22bbb2e56dd9a65fc0952b8b660e580004142cdfaf25d281ca235d088012d773055f01311369fecd6fbf1f68862c7137b11eccc499a3384721ea835c0bf06142c481d2864a2ff0b10e87814f867c185c9b2ad4343a80412a6b2e3734229b3d03e4819117d9a8b7fa0558508ac87336a7abd4027e12bd8f663eb59259bde164f6565f031d45711f68247bee65050f7b597783946cc71c83c0ed11e7d6e0000e20b901ecbee932bb4f5d247300353216575b5813b1d7c390c41e33798549bbd72c989b7f79d6dd319e74756db96d5cfb98262641106f7c14c4f9b25fbc6d124fbfda7355fd3db79ccc6827c1923fae3b980f711e01ef98af7e5d51ffe3ab9af2229326da7e44e5479fad6ec07fd4265041cc0acf79fce690c35971a3a810241ec80b2212b20a91dfa04a62464cd126522fa15cd597deedaa77fa5359358a7e937bbd8f04ad5738bd0df02087d4ceaa5e44c0328255b2df0b3f04b1990b056ae9fbbd0da569528787a997574d307015657079b79a2ece98fa5a7d5dd34d74a51dd6cacdee0b5dc89dfff6517d45a132fab6053425e1ead06ac67f42adee455d8dd86dd2c888b779e6bcb4a4f3eae6a5abe1cff34252e27d8e7e54073c86e61236eccf63d43a760dea504677010e17c1891c30bbc288b1a31a0536d0da1d7463fad555d4197d13424ae002b8fc6e7760be0022eda7b040aebd2e0b3b3ffb7e94fc28ac11cad9d2cb981301e14e5f3e952ce4c9360c94ab0c21d1c0cde4a5ac002da2d0b567025061e630739485a72628b3c5618f241f33478f94aab9e5425a3d18a9052a1513c077cf00f946ab9d00d95a6bd3cd4894860d90d9e6d1123fe2a4a4929b6509c12a5b99f234d2977d8eb82092f5208db158b53dedee11861602ed9194215cdf9874d339b3c91997969833398ba1b662d31a1b4b8522f6e579cd48aeecd58e642fb1c999a0dac064ae5321a29dbdaadb2fef29f9820e31dc031392bd8fb77278c346137b9a1de80f63e98d36a625bd183525ab462862d1f26a374563a0e68358ad1368cfbe369e339320eee86b12e95a1b7585a85fec59feb9535dae9e37ecb3d821b1da95f039925c56b3864e51c33dcaf3097de3788f1775a4628abeebae1b926b3bec6e6c188ddb0e95e55384f8eae37679841a69d2f497c1272de27fb76378c98824f608f6a440734ee380a93d5046adbe103453a246426ad39a0b017d20ec8763b7f360d0eb2f6507d955ed09e6131b2d1368dbbe1fc07d27885d18d84383b186dafdf81268792d6db03cbf70c24dd622ba19e4de2c6f55c29a6ed70a3af4b01630d67aadb5837c4edd67dd47a6f0e2e94db0ae1ccc0eb746c83985428514321ef68dffb9ce326305fba4aaecfe1fb9b2feb65148406c60e788507c1a083ee941837465a5e36a7712ca0cc6658c42537c9f3de1de393c4b35063174a9c539b6e19e302907291946d17ce786e6fbedc820b3ad125787dcb6d515ae623b91037a2ceed4298035489ffe980bf8aa2656e7d6784034a8217c14dbe598015cbcb16d37e2a52cfe6eed3ca16e7d0388bafaf67a94052f3ac829ae0ae3569977e9ea3c9c8a857b6264ce14997be158844bed3132e6e4ffc83d315024ca594ffe3e9f6766d93ab8537f69bf98786e97f43c93ae9d825a5a61b772d59142af6e6d4a7a52368f3b0f71df0ad26708cbe69ce66d53651385b99ec7beb285f484f452519d4e8d0a13721a2131e58a26f76439e8484ff5343d114ff29bc449d8e1d255da587d76d17b13e189f3b6dff6148f5f51bf671992193ac78a4db52efdfe570bde037f568a4f871faa3f48fecffdcc005f9939e5a04d33a0204831ea54be3569b3c37e37f3a08860f5e031b7925ae46ce8510d61d9f263f50c1b8307a362461eb41641cfdce886d98b176955b7623aa541af721b7088d6241eed0c24f704a74f4fc2b9ebffec24c6b62d9e2abf7eba7aca822d1954d4502b987a6dc9072df0d1e8b2591b9423d79824ad9d7d6f16e46c1120de8b93d68d3758796a505777abdb4308f12b09f595d2e011ee0b4c0b1b26b055f52e9121d049baeb221f0053204ce6b304495a7dbb1754924fdb2d6f33ace0ade8a81ad0831a6b6383bcfd8ef41a7d4f9fcce8abee0c3a22ac789fd084a8a9437aa8c8f6b583845e87d62d70ccd116bc73e84aa711a7e403db24ff3cf1581cbb44787919f44e4a9bdd1f653932b589c394b870511c18b92f7d088a1f2fc1d5d2006e7a1820f0087b96d46a4ac47459f7afbc99926f81d72768c490455230aba60880156d6e4c77fd592a66502144b5aa8a21628653cf60a5283116ffd708628d62410cc248c193eba17b921950980e3d5b57d28ad434683fd3d367d2d0b3c2ec59daa0abb81f545eeccd9ab09b606ef718d5eb8d88009af0553a5a0509f004522a60bc22bf94862bbc8883ba2189edee156a7a4930c71f6eefb9e00492651e083a6b81ac6804463e066aa9b3c06240c8abf269c48af7120b951e1a1d4c9a2043f4c5bab55b280f33b1a90a4ff3cbdf5b19aff7f1b7beb90cffdd2fbd1b2e8393ce4bb2c25e2421f0ed1924ad8d5d75cf80fa43a6fc4509694154b0242ed49b5a4a6e87f4a49b81b1234ecbcaccacde91956eef9244bf146f7746b9c36a553ed53a6b35568a40a47a812405352c7d18df8c7b742806057350a95212e43c5915547ccf56dd512f240385681e240a4f7b9f372ad7ba4f933f9e780a0c50bc11386fba66d218632bbc298458799b601e85e3c1b373c4c8e0ec1e658dd9fec554b221fea41287552e77f5e8d43ffefe66549fb8fc04c3ba1a1b8e30d1241bc1f80c582d804d0a01f74d13589d73e66c1f2c2ec418d13bd18b1aa38230f4942c698c105a7868f6f9512266dc468d16cb829c387acd0d34665220c2ad10e165cb8a7382b611354e40af5ec54f93e46bb016c8dda19728e1ece40c9a22ddf73162b03351ab7b6e6af92bfb5673fafd789b00186b2174e552ddf64a42ea5c449d29e16040a00eee62b3bd570aa5925d7dd3c2d21c464422bb2d76c00bc0d0221f7d5b05f8c2179ac5799749d9c7be6a404890d83c88a91fb2b272aa048ea4e6169cce77b9cc6ddb0157fad9168c9ed9df0b6a2ac803e9340ac3b3100d6fcf77556cfe98a52c95de4cd4d043538c0ac06cebb52aed11d6ba0958b9cf5be8ca924b160829fbb0d1f0f5d987ae3016a013b749b11f5d70c0a6fd16ba10b6e1dff871e02080e4886b16583bcf226b2d5a2184883922fd156f305ef9b43449a7d27c048596ca5a02569cc905eabccbf71acbeab07b0e59e8ae7ee4128abfe5b6a91fc6d007738c139ad654c30e0569a9ff99caff9ee37f9e2e1af84205a7482c4a0fdcf8f5db7ef03eeec971efecbc5e8494466e4c5e04b7b3fe2b89eebf720089768768b96d78e5b0b907d5e3dc0d5d87f919a8216b5ba12ad66cb01a915414d40875e06f3d73f3d4790eb6b6fc0e2968ae65615682eec66a9ef7bce002bd329405486e13e4490f0b768d4badb9fe7b12ce2c756189a97a41df8ed2c6c62222599b7413fb3179fe571ee5390942a4973a21b4c400027d5ba48c70774ec0e1aa7e6fe42994d75a457d0a091e1aa4f9997d88def6fbdc3b53bd72818e23945c8e1c92f84fef7563ccb75b674145c55d2c5a7f6847c959c7fb6c7885f536027b41b1be4d98d4f148b28579e067183c36a317e2f2dde1f48240e422cb7107add2d982ef039d658f6e1d1c077d85be50b29eabe87da3d454300d12b55d5d301e40b7d9282cbcc44e7412b30495d96f548adab3ed005c24e8f16ad4c0b93f104121a33bece3ce3536ab7f804226042d83e545a6e0c57c9a9312b0fc518cfd1a8752b7d007680660784448bbc9addb7ea43a8efa2510eb67e8537f51e14bb5b3fb725aee5ba4c87db90007c4d79083b120e9257fcd8e484c2d023c008456b1c9f646271d38c719a3dda575feb4384efcca9b4206ae39ef0f5ef83f4e368113b4e18d59a1146a75673f9146d8ca69b3bdf97787b8ab0a92a3af23b6f42824399331e03f928066977c8c56fe831c7d615ac1ef6a90eda873e07e7755f55d5d1796d7437698637c290c5853558843c10837af1c7b43c182638682659f8582c147a1609814387d68456b923ea82095b96a51158a64e319e371a24e67b0aa8e6b4665bbcb26ab5b66b437b9c68f33185aaa0684328eeb80b68d4ed816607ebd4a48baccd964971ab5ebf82aa703c28e5a51bc5f64d7a167507eddebf8a8294d1860d26bb35a1539a66f810611abbf0c760b0255aef524cf40f6151a3455eb403b9a86cc670c9d378246abce81be45ff505c8202fa2cf4a4e56cc9faf2ac1071875d878b41a5fada3ea1191547315accd0abb92362ceba7d7ad6c1bde9b8dcd39a020d894ad27abee2c18760bb3f8ce59a4971841adf462ec9cff1d5a60e2af9b84fcb37f593bdc556affb3f54770a44b40c513ca907708f90605c47280b37d2160e2fb46db69fec7704da1b6ecb56a17e2f456e619c24674100c3ded775b727036d172c4ed7e792b37cddf5811250ffd1f005fc7716aae1d02c4c344c8f30398691b528c6435d4d25864b96053c702dfb9b71eea8e99f98a4c65a02e32fb8d90bae65267ef304d728a7620a4a20993bd9ab37cd931ba124008db81ee9721da6b590efe09b43bdd089ed71c3a60b4460e4d02f3df5996ea29296a2976c98b07520823d1944ae02d55bf63219c3206dbcdb04d25ebc7ba886d1b2244f21ff8c9bd07336490d7bfca2c2a45ed03c2069587bb59c2bda0025775b9b88c35b8872eaeb1c68a15c156ed817f928ce77f726c0a943efcb3d02f401e267123b091f896d26a6b06d2867bf9b55fe341e860b508d2fedb1a6a1d3102f070eeb850efbedd622f0aabd1b30db4e843972ab2b6dc748ca47a641524455d1c1d8308a5903adf72f50bb9878ce13a8bb2d404894b3e7bb486ce834ed556b258d3ae5f3f368f5f891c086c163900594ba7b729d10bcf7c8648d0d236ccb78cb70dc4394bf4dae35444b539e960d3a36cd9a7b08bd7addd4c097225cd16114bbb76d75bd0fa02e482e20770d2442b03068644c3493d1ce6155723b2c8b827d382a23f6ada1b4b4497e1cb4d677ad2d8bf9a962bd61e8035dc7d1b9dd01ebbeab5cf982e6f9bb89a2e8b0bca1b358d33d94ac46ae4293af1d76510d5aed017078adfb98e2d37eb9b812cbe08cd537419ce9eaafe329f6b9a0cb81eeedb846aec2127b41ebc244bd3129314f8da7fe03f7de9ed6a41dee780c0f488ba031611f0762ddafa6c19c3d32ec972e95a0ba162b352032bbcc4408c21a602dc3dc148110c2bd5517fcfb262e2cbfcff4ecd7e05e6cd735017ee22ec1eb5ef08a46a5142be8487170d17a1cad6306d7117c5f68590a5dd1a34066bf43cacc2e36fc0202c19775147766320f11dc3300ddfa9703650f9944b3c6be3de02cbefc5fc69f5edfcb4b3c5cae22c964ca69331bd870b9319a8ba897dfd1908926f049879eaa615b9757ba876d210b8f915a5c9d44dbd18633846d73c93d6c64bda97fe25e7cea5f8e2f370d8132c4e96c21839e4d455aa89b06cddf8f7a4cbb228d6f992bd6beec31c2c1b6f8478dcb3be67cb19c468ceb66107a3820548fef94392cdaf528aa17bb28f5010a85952dbd0d1764cc20829cb5668b8e972308802cc7b064584666e5194b89ffb9247739f26a47106467b6471a0e3ccdc080b9cc86c6c4c3d30eb109006212a1314f232542759695dfb8389430162c344819bac618a230b8dcc5b8c108528d186b9811ff07bc903f3e80ab708cadec7cfb764c5d53000e18d687952c66705b3f120db7173d82a7654065f0202602baf1a7a1b244ea735a8b8717580020d2d7df53a6c7c6fb009215e8cfbdd84096e5a2df7709f4f5375260b504f356665e3bf0c7167061e3006b47830ea68526e8272fdc6e6ebe0305f72873763acabaffcd5e95f18d6d802ae57a86cd58d0f8b8bcc838daa9d57a81208f25a86a44c996aebcca72847c71fadfd51ad71b2c3ec397bd06ec94f55a4da443a5d94b57b8f4770ded4d70f8f43405984f97bcbec0e8066d875c2e0096bcee61d478afc2f8a2651b7184b115cd184d3b018d4067887156bcf0535ad1c7d78581c2783f4e565eb9443500d9bc11c36628d1e677c510dc95ddc952775dc83e44412343f8713a98cc063e9e90a65f77ac3f77957469f0b3c32c83ad49f65fd895c3bbb68e8a23f00d7b063e1a2149275514adc490bd650529a2dd9c949c86c6b811bbb5d9d2723d807cb6b5ee7f21cf33d6e2b4cd2c54d2812cba41b3ae0f41aa241d8c6eec2ff351b7d9c397f6d08f9ea55f263daf4eecb2c1fbd6705dffbdcfa42f2634aed5193a6e6f5312c2603db63902e7ddac55dd88468ee21232adec121b30a60bb6a6a461a15039a5d75af0484502800d17172d45f12a594d2e60f3737d74c7c2927f670e39e8901c0e774de01ec06df236d99eb2906ef9b152711c1ecd18c5a2b42d1d490ebdbdbfa0eeded49d73a00a3edf861843b4eae5cb8ea24847a5677af6e075dc3d4db462553a89175463d8e6d001c206f49552f9d9f5976f3409dcd14ec841c68216bec2a5526fd1eb2f55045f16ad629debb595b3e4603cf1ba42dcc7b1d18dc73dd989dfd9b3215dc32119a6033830c2748cc4f6ff9c0801f0cb8f251ddb268eef8ac6b4efa9aabddbbfc2a2e0c86a6b2cbefde72af893a33b45e2af6e016abbbf6cd79327fbf27b9922e6d8a56348fb282c8e5d796ad3d0d5334b7d143b4a3d68f132756e61ff649b36a291ea840e04e6d7a20ba60adcf207b41d8f7fed65dc6ad334a3aab591ab6b942cee1e7a15852e5da154cf5a1ac0d808b92419e54bc877a1d2935532d8b6e2dba8c107fb9f847a2e4c02d1fdcb7df37b91b04bf3c7d37ec0d05fb3642d38a3310a3024887250aa5aece984d71931b2f036f4e4fef56325526a5a335f107930e9ef0584cd86276412cc0ad34cb5be3d77663951df7a779c382baefcb0de007918302d4082af3fc3bc6ef358f961f3b68d496328bd63cb2240b80f66b4824b83334fe06cc0a5fd4dc68e361121375ebb05cef12586b7efba6eaa61f3d9a46e6ed7d60127f0b27356b2c4a58147159cf7b28ee8900af983e257157ca83301c561def3eef7ff5fd7f6176bc36054c3d29269da04f829fc6d5a3196ff8d2ba39356a55ea3f21412364b4637f338f1b4308fe943da9f94f63dff29c781ff1a14fdeb472b65adcdd9373deee22c66fe498f2895d75b49e10a39fd8353a7a55931731e0b25e2b4e00cfa850e50b8ab43d1e66c934998b2e714c7c5b580d2cf29046b1140fb5a957f3f603cdf39a160d167892fb1b1ad4deb15508f906d012affb3db17cf285d62d304f347393118a63648350a7727bef8971887a3eaec8002cf84b530667b2481d1ff6554afea74255ab1ec4529e99595afa243b20c9b62072ffbb3845111599aa8b2c1fbfe62f06ecc703287269211bc257b7a0e7c88c2b3b4f8efbfd7bac2a088ae731dee023b7278da907e1d560e21d0299b78a550834ebd485aaf9030e0e4413731a595c1a537dd88f48485cc4f2f2b52fb8a0ac6b8f814fad478a1958c68e1f5e4c4d87429e080ad939fcd78789ceb440ee7b41cedf340322675cba4dfe000e9424466b629729f471471746dbac19f93c8e7db94e87abd2de4502beb48f23f6b88bafa2653df24e570fbb2831c7177f2a98c02bdf50e7865458a54862b974ab5c583f1e419112decbba5cd30ad34c73a09e2b7cd13dc859f9372643649d75bf3263de351fb83ff689143835852f7269f685d10a92b0819490813b2b41e705aa0b70d4ab5c36b590115ef4dc797d7006e945266ebde185f92dd8786742dec80be0b60692759828ea9c312833c6f445ec946e5dd8131a5a2507f6e78632922e2b3d6bf774c0bb315e862408bc50776eaeb32538809faa134e86131ee2d9d7a46102199b84af5123095a0e3d0122fc03722b4a78f63f0f1bb5732eabd427d879520f49abab2c728491bde5b84ccb8735b3b706c054a6d76ff876f9ced1896dbd2a01969a939ddd95d20d38e8836ff28976e905da587f25b246e7345bc08fd9602409aa2a9d668f047523da5a4d0a56f94c84186541859f4f4af2f4609bf2a8c627317507d71e9aebedd30c5d8bd79b08b3620cf20778226709d6d85559a43d5e962be5431375b160d2a5ea613d7b9e6060a8e08dc3e5579f185d8316c109dfdbe0c48c56e08a1a1e824564f68f12412f73aaf9cb7ccd3b6daf2795fdf5d598cdc7a8309ff84e2725da90355e2f6aa3313239f82fac3a1134be95552af5e94a02fe5943a3c4cb09f9040c485ac1b7aba8f30898219ed0a83bc056209f82245f4e1dab568da06b2303e359621face38a3d3554a4aaa3eb15892fc4bb2a04daadf5936fed30f2d639c0c102c21ad140b9b1d68cde643b18772fb882c1d1a05827de8714220727e14254bab43321126a983b3612c4e85337297fb62ab1fd43ce93c753c87503cd44abd66fa15d1cd1a7b2e3b63a8c477c93cc0387694980312e9014655072247314ea36e7871c457c1502d2f2c4d100369a391166e1722c9ee7c9c7c98b82e624de9779ed120ebabf327a4b833d23242d0da163ac42c762b2bf268d46aaf0ceabb2d5945a0b4bd0af3dfc412d921d04e828940ad9974fbeae358a203692517fb793610837bd0a537f5bd386adf8b200392b839a2430ea136da63e2dd174a79408a7ae6b7fce312e817e51bc1707abef7b43d703b1d7dd2534c04dcdb60f8ed6edce33816fe6bf8c86b4285c291203db8241f6e85d8b94a86572271415787dbdf8922150c62e840301085dc1d09ba294582c14cb8c52d1fa44ae2afb2c9a5eb2f5ac5ccfdb203d2858002740bd5ecd7baf51b175274cf79294f9f21e893f656d95dd4208434797a9a9f7680b573c993c606f3f05e667663f014d67c352588d0a6b8674b44d264784026b8250c9a9931a1369f653d1a7a5b833c3853b062ae50fcb0b33d99d2cc693c9706d1b5c2dc6d109583866ba9ef68998245978c2ab24896974f773f308a7e72a47c3ed8a18600095394f9076168b76a2edcdf118a0ed689d3c9b9b1337a848c0665696128c9d308823d57cbd4b5588b08cccb9d0028cea8450a74e679279e11bed8c64364a0168a2fa5cd31373efccdb173ea8883ffbdeccb1506156f5103c166781477d4048e020cc0967d95263a3bec821c9c1d6cfc46aebf9ca9aab71f206f3ac0b57876ddb881dd78c17ac81b66b3e93cf4be9b263b8590d987bce137b89996988a07e24d1e9402b6a9c501c17e2ae98560eedb2ee17735f4fa61a1336f2200c1ea900f139087ad75560ac08f2139e3126fc62d0df9173fa9ab579c099b5cafb1ce1576e88e6bddb057b25e85fb58b2ccb5edd9e532dc1727c5871b68fef40dbfd89543894d4ba4f277894003caa6666a8620cf518ba263e28690ac52a9213c639552d1ec4c006ed6fef533878a286ecb0a5c4136a103cf5227f712a4e52a0082a2810d6c62eca7857971aa719db4aec15fc4db90c331651dc24703aa6a43e7378f36a09a87182558a145aaf5d0f8a438ec7ab4e55ee46f26cd7eec50321a6ad42e2c7973ee36b5eadb839ea22a9d87c187510b9152011a9352d4f435be31245db9104554b83e310beca68a205fccd3c9e9880b761cdf7b7fb1a95263335f1fafa771318e28c9a5d8fb8545e6a5a881d2aae9bef52af9bf6a82035d63f35b4a897e75c8f487fc42fd0c76ce79a712e652ca8cff004ba9e266430c7af5b25a799fe1ccfa0d2ea5a670eebb19f1410a55c3bf1e7320c10af100782116ef548400e8f3349081f927020991c660281c4654d9129cf785b965a538635a38c0e83275d111ab27ccbdf6da9a41ab4abe045ceb571892ea7e6bc824f0ca48d02eab618de1c65032b8e4e6798f83989770262b9c3331cf0f9c46911e8d9a1105a4f9dfd602f7e006556a895fe0f1f0ac07d689fc6779455bcf3c181fe2112c17cb8c0c04d9b3d911aa0dc0b44ef3140a3ea34c83c09101e315e335f5005d99a571c7e1fb0ab9aa637e78e5f460a417b50691c5edce23b33d849fb267c1875893878c3f043859f6d7bfa00613f665035029c54738ba6e8185259c623e022bbd5316cc15482d63bb14128ad97c6eccb05d58141348b0acd2119e5c29ebcbecbf58d9d2bd7b6f2a7c644ae5c630387c2cb1c79d1a38e966791b5c505aca539e518d8feb4790877515fc185aa06437773ebaf133c826ca0553483defad32bd164ff1fc7c6727c162f530d28a13b35f31452b89fe52f57accbf94ebbfbc102b2b77dbcd16e6e252c832ee41b790e862d6904d858c59125d1a880c89a22f8cc8404a740d3491e17a856ae9b18a871695b37c8bb7691333b95e79623a8a43ccd84c433dc89708eab7e8195762ee1402d3b0c708ef94d6cbb03b778cab2664f8d703fb65354fdb2ce0c490d3568ea535ae744f59c850a1d753472cef9bd9e4cb961acb094216a653f81865309b2a9d067608ea6c2a73ba0264c42918d208c4e40405162ce1b215fcbf5db621dd1bdcc10e4a31a78a6608772d878af01b1fee6db51ead92b8c87becd080eb6c446d444e9783a04e67510718516b3c3dde924ffcddb4938fdf6b97616d0fb3ed576a5bfe7a7fa8e63b866b182a1d291ab63bdedf2a1f6245a8f6e386d60d8fefc134ceb2c14298da6276ddfc2e1fc8f96449945cd30c1eda0c9ce1b2b838ebe1b35d113305cdacabeb0eb8255f67e26b4aa5a6a6e36903c128b4eba4e4c9cf1e4e6c9aa513e7aa1115d3d958c3f73455b0a51078ebfe8485093aeff32eb38d6c57ec86c5f7697487cf525dfa02e613903c359539da6920307d5a052de46cefe1270071e1e4a0b1eae7586f8369b59e320b3e45ac284f936e580bd70e5635461fe85433a46dffc8d3eb03a7ebc6e5624f1dc901b885b1854ac6fc12a31af673f2a7a076d4d53137d58d39a5e2c18f9aaba437f2e0bbd7c0223dda46062430666f3198e55bc510a503854c4abe0d338449e6fba93521b74c2e165ee52f6f9a533ab38b50a8d985f4d9e08d6fe4faf7da242910079672556a5acf11fab413f02bfd4b395c9b3fd5f4b459811b05bff097fadcd6178921b51a11732af2a07629701c4a9591cedf720f1f2aedc510e8ca26fe7ca2c3f68bd085009f3c9b6a9cd52cfdc6c6815ff529e0629b6baef6731de845e1af5bdc1cfa4ffbde359a510923c27c772811c1c82e6067f8d522e294c1b537105ee22588357f11e353e84f9ebdb8a7465777865fbe346470ba5917a8beaf0c6b33e44ddf3eef370e7cc00140cc3c12ea85cb46dac8c76558635459fa528fe394cef4e2150add2744ed52d4c4665aa8357e969a1219f0f63ced49f5efaedae4b4af7e65590511e8b9aaf788c3ef2d00e014f5cb583684de0d44d103eb9e7d506c524b9b0f41e5985d9059a1268c6ddc3391cd3de3fc06701adf862583ac35d20616fcc495a7134398169949d543f3468c633932d09866bb2b52abc5c55b65e05c4c2caaca98def471a75119e101e6fc953cf12f0788e9b0381c5636a5810c7b6b5bef7353698df14df892cbe3c739fbdd503c3e0ab38179e1a5c4175955b7c675b164ec76d3d04c96a4269ecfa1766ab2c6596e2dd19110a4a76ed02668acb0ea96ac4ff97eeda34c3fc4a8df5a711fdbb8d26b59e9c152a1414db86302ff6eead7347f7646ca0cbf8f8042777a886d8bf4889e63e1ee331631148fed1130ca25221631571c4c0227693e8e6a6d9ea44d80471047ab1f1c9afb9d3e7e12aef9f40d2e2e6781d781a577940d3684753319846dc33e37376dbcaa0b4f48db8c1746edaea02365696d97568c8a1094f091d31b199c28c09a69b37551fd4f875be1a2f4e9619ba30e0ddc418226c337628901f8400850704a0d9c819fae5ede11db0f7222a18932e76ea52e14c91c6430b324e6ac270b99032aad18e69f1b11ed6d23daf5b4739fd6b4615649de99f6df7b5817a3f535230357854e9f1b9531174f87f4d026ba8719503e838e3a8d8b165fb4ab4fd3e7a195f151d71c5b0e6df29343c76f58acae6e2d3b65d044477dc6fc1602bc01bdbcdf8bd8c79857334f4ed523362fb9b41bdbb649ef0ca3cd0c99161dabb70794b1da20c4a32c7e616e4e18e00d47b59d9941d2dfe64dae612f2974593c25c356037e76bc89650dea6a5f1bf5d49dbe69ef3affd3deae55e07ab732c25eff3d1fad7a79b8e1b58688d78a83abbffad98cc3f16fbf8230ef8f69c83f4d94de99cd752a2ae82ba6caf3420fa7c093b8f929297ef589cf7903de075e6f3dcc6c9993b1ca99a3490d1e63ca5a5d67cbeed5379f097cf869a99ccc890352e6472c5c3e67fda81583ab62b62b7b2d9722a6fa5061f212932e13e538a4dbc4d85f58e34c78b23b116af0a125ced11a5cc432c3f4b0775510f7b15b2f0f35d4eea20d73afafcb206312e71c6e828ace55aadad38b6228520322dc9196df603bd021d50f297f081bf9de4339895355390fee47f810b3f37b5d1c6ae0d9f9bc3d9d249fb0ac8e1f6ad793985c6edfcef57e52198d02a73911fa6c0af475d86ed32bfa1510cc909beaa92651da5872b682794e2dfa480ef813c4ddf59441c12228bf997c27a2e328f9b22b715cafc89af60e3c59dcf8de359bdf4bad3b535a236bde1e8a02dbf01c55baba0c885a39653ba68372e678cb20676f17312a990332a969d0e1b403c94aefeea8b87d6b9e195138cb58ae4594ea6cda98b088495a2f423eed8a459c8d8e4a4aef7d921b938b20644e6b4a8a97e21687d438d2023fe56e825075c8a44582f266ee4a520b3004a0341ad2ed0e54b4740434b9a3d4b9ee6afeecb55c4333da8b35f791cb6448448cd4813eca655a88845859f636a4e68831b025cd522b7094d46043ee8f26cfa967baaa868fc4ad184c194437008fc7134f3c4baed36389265b769d08fd1c268e4939bd4ed3b3036eb3a6805401fb51c2c2428a900d09acea8db9c26ed7426660158069d23203649a0bc6e65e1d85a66f692bcb360f2a3df728dbdde2f1792a925514bb71c2cd4a4a3a439d829625f1989a080fe4227b941d9aa928910f6af4699486b2e3af8ee8fdec3dfb30fc9720a1b0e4c6066d87e8b54c7469c6864a0aa60d350b29b62eb13886f7adddccaf92139399778424f95ba67d60c8d74ecdcf57bf806802ff9e2e6e40ad3d16a97806a7301cbf297d230541db06cbaff6e38208cc0d715b43ec5fb6413dbe75e19f828993d00702586606545c9af8f4cebc78937a85120e1f4ef60b64d5cb669b70fbed388b671da875aeb783e421d30daa80882df8520ff22d2ed856385044051b7c42851b067437398fa809d43b733fc5804c056b97212747f78d9fca5bfca0c0a1443ea37e33a08fa596ec61116fc310281a55afe482e61efac3173cd1e0cecda73af9addaaabddac455672ca077f6d0257505847421b0ef1a44d092b7c04dc718e15f10b12e89c17a31f3d4f5eaee4938ffce6ba7d2ad21a65af459c6cd7bab37aada38e9c0eaeeb369885fc286e096a1067b058463c9eff075d83247065e80d754ab375045cbf553b789c6b97e004109832e812fbd608d9c6a314447d1401588567a1b52b0ddb7cc49cfc7d0338064cc8ca6ea793df299a172c7c20297ea214c05d94ae06f58b87660196327f8ef56412e14bc80ac153c15acc22961814324de4d52bf0ceef53d3a1ecc181322c51f5fb2fdd75e4c0e0ea7201862a12c6e27f2c1ab67787efc55887b702ad7178f3c83025cf10be9a76edf8293c7853c51b6585f1be9edb42cebdfd728528694cc09900a894b1c27fa1861f9abf11f455607fe19dd8b35c69b86c082e9f46380cdc414109e33901193e106abfca785c47bd9b5a35ca2529eda52be86d6524b95f424b92ef1752df3410e169ee650de89fc62f4b4c3fceb9a0487a129bf68848287df8909b518a344909a1d18b39b746a66758b0a6676268c826e7ef7b9335ac54287b7f9c8c1990d7ebbb6bcb8ce41ce4186f92f858ab74cc93905d2f876781750206c4448871bf3aaea493129fa011bde17bbd34fba12ee96ddae25ab48fe6608a882c642ff089340166fa6b5ef7e537e7918cc2a0946bd53b1c564ad6d99595e37b2c28f91d90e8b02176e4c163ebbcfd4a934c55e72baebaf8c5bc790c2ae7e7cdbd50bcec040f676204092180a3d8bf58cdf8778003436adaf081a196a15b2acbcc9fdacc63a3a3306b36a46a6b2a7668bcc581ba5495c3c603edb43fec8fd6ca1eb7bf7532a971036f9e3cfd1c9cee1e2cabfe815a1a3e3011ea649022c629731495f542987c5a95d06b4c912591d487ac765d6bca9c67790c57cd01480739155cf619bd3bfa397e08309c40687cf5efeef6b1bd83ddb36213e5c367973c34e791e79ab552f718ce070fb2e26a9d4b86e4010951a63d29278cb45a6d64756a8fa74091e43d975c16bd23b62abe359a3f21e504ea54410934a478ad8626420d3deab47769a8529adb01123f891c2f8d5abf45fdc98b0e4b2d1db18be238888f362ba846ca961e4371c60d1044d1a97c846500115fa17f669640fdbb87258261ecce9b7f4cd2191c13f6b726524d2a44e61648b928fc205aca05342b46d45c0f7e85dde4ba72e82c5386a7bf511ec31aad2e091c920f9e2521ddf712ba11c97a6ca666774680b7e1fbdf2da48a224dab17718ef3cd39d4e7726c7a5a0381348dd3b6d05442780ae407167ef7dff9477c6b2a3134f86706c59bfc025488e5ea7805e799d021a1b86ad5b16a4b4cd9a7c57e077d102467afdfbe85a142a4c99aeb2415821c514acea374c184bca2c0bd7a32249f3c52484507b611b13ffbd8438b6b9753b5680f37ca4798683516144f89114113ad38219904edffffbf410b7ad6e1fcb3eed273efbed421d7b6e1777ad5665d3fce4f040b41660cc95d93a417076bf8ee8c0ff48108bf45c6290b09259ea881cee1f05a6251e0704fc6a4067f28febb703ac8f402dab82851d8a1604191563f11adad1ec514cc0c7b33f45fbe89e26a832a72aab594de1263ea287effe12aa76be9c3e88c7662750cd364b2ed208f3e06e8eabea5d576a9f263a7f4d454225402606bc7c2c310b9887d73e9f6c4cb0dcbf436c3207d7367843346d7c69adacfe62f57ea9727dbfe1a9be8dea869eb15f15a6778d74fcf4971f471b15f531dc81c6793ff5688cec1bedf5ed1b7d487ae1c36c1c5f58f2427f1ef9e835df20606d2378dc887488fa9a1827eee99031f0d5875248a8880833070ee53fb05beea5e9c006f13f98225ee748dfec0f7baeb7b07978446c9fc546cd62449d4e00ae553abb343a1f2a288392e12c23cb28da5df5a62fe79ceef8c8c3d2018730beb18196049afa673c03270c9437feb7c46de718cb78c254beb8bcfa64b9e0adfacdaa99723131940e115297a7f49f4cfc83817298fc76ac0aac0dd5d43d863b6a6d3d4a8c8544b07bf9479789bbd2b86b372aec3d7b3fe14b070061373b37a7d8bb832543cb8ddd20f4528a89b4d9a037c13fbe627ec2fa9a2930b380e7bc51ff3516213d70362fec3ed60f830d98e37db5b93926a0926421a559db0c25fd0ace1f6680ca191d1a8437865abb723ea0b08feff235ea06c3496f684ce5953b216de95c49429ec999ca2b19c8218957474ec09f1d3a36d918718b6d36bb2f60eb0cc5449f05bd4a3ab43f7ad2d0c8bfddbec84bfe47986512da47df8e19a3f7a06beab028cae04c482c93a015d32106a3da4ab4565558706b857631e169b2829a3f514adb95f84d7d95803677008d9040fe9f24aaea68c7db77fcc28d43a1eece39ab411b97fb32750f274cfb4585b8502ca7c012bdb588bdc78ccc6cdef0353f1fe03779bba1d4d26783fa49a476ad9e3c0e35532ea20e78ee707ca9e579a10d2f1f7817e36698dd32ae088d9499140bd05c1f060fe6f529b66440744fb804263a7eb1c6e6406cf74a14d31ecd39a3bf4925d9a5fe52c5f2c28d6a9ad21e8c637e712df11c9ee47350579633efac03e755b644c375c76945e7a91cc0458eabd7d1ee7599bbe789349417b782c77370ba4c6f77d846837bafe815ce2426476f25995c0862110da81c51b7a1b0a553d74eb279cd47fd4eb65b7107a02b4823db024b25c2e8053d655b8f90b272b1f33a97f91131a2a81aedc82aab3230b7ce8daca725d2a17455026ad6c3e310e2fce5a64a0189a653c74dd23b4389eb70ffded55aa580d5baca8bcc0463262ef559575723afa6a8716d07007d1b0c7d1308e9319d12a2f0ef2e62a6c2b2c4547c109e37613c660b6c01f9d10fbc121f34a0a76c4b2d9305b76bbe4cc65ab4b620106b82a9233a6fa46ade6f9afd6c148894f693bf959ff1b6608e0fb4f98b0da0589bb82d901d65515f5a892f6feacb8b78ebb68dc15845a0653eaf553d4fb1e280de4b0c14ef341c987a808c1d15935501f2df879edca6a73adbb86a188ca835d043d366055dba9c698aad7d2baa53d26b929c9ed0608adacd7a26d4259776cb6c800d710a0f48b0940943424f557944795c558fb2d6d12a499592719073f4b64c141b4802041c3739a6d4ef369a541162b901e6146133284a3100a74a874671e40b1261e3bf6cb0bc4f25789135aa80bae71eadc03f14bc263beafe8936377bad99bc6ff9229152be1375a9745a178b0deef6c59f01daeead651a784b38f50371ccf407383df9632f7066a01a297618b6270ef7c59fe6a954fec8f76193531a1a7720302b4fe4429ab7b0a2f02f98da7624eba87e87bc02bd73f96b1488aa9312380f100e4921e45579b316eeb39f127be6d05dffab2542451b7586c2b38c8040169020efc5142302721cc06a52d4eedfb5c4a56dc266dd81c5f3b11c40c8c765245638068952553ad96122a734171efaf45c985432b9fd10ffe25fd4773c184bf3e0f3292b8991eb2c88209c635ee5ef66934d42c9216895e881af4821d6f25faa1131cc187c7f96e5fd1f6a4cde22a03cda38a7d32c0b428933e705cf20b65319838b993c35525a507dc3ba68af8aa4b7a011e17f70a67b0bdb48ab8fd8cb796e32a9cf5a1f5626bd127d78d7b38b5fa71ee621be14cd460b2a45c5ede0dadec5880bb2aa709fe4c94f3a13c5ea03147663cc1273214289bc82f865839daf9284b8e344220200e34c2688e31456b928ff045397a83c000639ba4539ee56779235b7ef4bfd1c0ff60d624dfe16b925efe6bde3d0a8c9c3893a7a7649a636247889bb9e05e008ceab442b03a622f84351a61c9930367563d205ed7680f47a054187eb5dd40beb65978752facbc41b14955c7a3629601282380d2a489b389f561864827ea8c87e920608be31b3fac9e3cef2075df8f84b608db354ab5ae67e1a6e03b1bcec1d07bf147980830901cc3c9ecb544bb9ab1d0340c65280dcbfd9dfdae2c362831a863351298c9b5d4bcdbb73201e73bb7cc120eae4953f11850ef84bf8dbd9085f64d052ab7b58df7cebccb29d8413f26f04946978629782d701357959f78e598ae23a1d131ab92525a3f2eb2d1b929c4140439ad7c0221a59c503b9ed7ec471f580c6c3eb2496ca2e6fdb059c192148c68f886b86e8a5b6755681076f4830e42a0af2e1ec7d4836e13ce6c9bb20e525dd2123e4a53b7fc900745b43206a5970fe314351f81e43e882a7d2177f169852f360c72699e622391729e18744aa8025105c2090bb956394956ac9a8262e9baf4756611cc0815f20092b477d7abca9d27491488e4d762a85106c2328eb794586d913dd0e03cff9cee5830523c00eb34c1ac7782fe721cc56143a7575d151cfde3536faf491cb4d326e3843a9b31245867367435cfad6868c88bbb77aa3c7f278c16d364bbc88ab613ba3438c02040e9421fb4e52adca70212493f16971cee32acc38423599dd6f2aa647a222481e0cdf8ac78944313a23ea15fa5ff799c1d1698c2529497445ce53d00b790520ea41b58015242a299e5458c8b91aa1cac039e190f7c9ee1fa644793a0954de497265b2082f34c484a6e89607128d8ad313d7673ba62b124f413edf686b7aaa27d388c073321b01cde34a42ff593f238828dace0807d44623401cd43a44822d2b45a10651f150d0802fe6045490affe4f7675f14fbf4b270951cc09bd2c70522fb45947245891fa48912e2435d1503a907903eb4ee1efb5c2d1ca96f8703740b862b639bda761d0ebe2ad6e2ac8146ba78c2d74e1fe5fb6dce64af3cea7daa23e4b0835c58f1dc69ff57558546461deed3437875f6bca132b730edf3e5b275268c14eb7ab0c2bf251b315ceff5ae0d2ce5826a8f4ff4bce82df803cd2c8b14c10199b43b2e5d73e5bfb5154103056650d90ffa933dc90c32ff9dc9602a016424418031883ab6a53b8bf5cdf07a0a0cb22d87584030e29885a7feb6d8699a18a01bafc36281ed26627d463750e835514e200850851188c32968a3b946225092ca8c2e521785fd489e2edd942ae08e72ecf4da9a64a5ca40ca1c75a9e95e73f8c5d4cc1766e6a2da88d9609f234afed0ab597888a9f91feef94c8d4e44eb1452303e745a03541a5eb81ba55882cccef94d6044904065b66fe03d542eee04f05ffcd9bb77b2a700166b2a372adedbe79a6e3472d6fd34d293a4863614e3a5a13441f8fdb2e24230b1eb7d95137d39e8ac7a955abc578849932133d88cfa8b786da8f742602aaf573d904d5532daffe0687ec68a68c78acf88f09c526a3237c12e30e6f7a5240ddcbf5c96f53e538a3ce95261779e4d70439759c1b8fb57a9b8d8a791d773cf0f02e79b1b0e02772bb8e61712d27548fc904a2ca7b4c138600e2ebe9f1f46e10d1c7bea98a435fccf02fdc8db7af8868c93d18abd661090248827fa13e54ae5801c52688f2a70beb3acce8cf1522f1df3a4bb7c6653b33464778c5d574d45be3222fba67e6c4956c7a5b362460e3f118ddf1b4cdf3f38f8350c1d15960feba90041b39de8fed8750cb4d87a4dd4d252f91245788f8b6b9a44e54277ff27f3ef4c05916ba2616dbf0f32546ed00fb102b7653accb4e551c9711f55f70583cc49e73d3c49da326d7292e6cd81adac677d62a193252c5c557d5fa5b22546280c2d9785bc1b722020fbc8bc18a4841bc3eebef5c6f940703fc69b0b2404e2efc56c340e982f6d661b91c9523ed8d06d99dfb7a9b82deb69954fe08ff79b3172e2337d7d81221371543466d812cd73e134b37e39373d8d0f7ae21d4529b040f2889a295b06171dff55f8e554458c2507943ea8ad1868e1c947970f63612d18060369adea8bc0d101b1d00ba15b24f9483efbf0d79d95063e9fa28ca35bf10b2233dd488527b4cbcc6007063c5c4b5e69d6893ce61119c45350bec4315628b6f11a9e59738458ad37ceb27b9c26d5e247c10b0f310adf6d205fa9adfa9da9fe177e18c59a46ed71c501a4fa19bfec9aaabc041aeb2464b495bf9d9325de7792c6dc3d15dbd3e06453d7e032f29abb06045d2f027fb10bfdc677209f205b2be266826c454feeb93cc84b522a85fc7209a9358783e859dae4eb14fbe0b34717a404987372b5793c29d06745693125cac0bd0c0b3da0c7f055d71ea8464d0eb219634f37e67a762fd5f9715d894f4da559b539e4a57c8922cd0761e71a4501b8a380d765d318c45583092024038451b4ce6219c1d7eebef2b826478339b2f4986b30ceb69288501cf84b5340212472b53ba3ca2ec8859f5aeacdccf5e3ab3880d9ae98f444cea33e6cc696702c885019f0e56248609d81c4402db562ebd0c62970e7a849592889c39bb8fbff851d402abe6c039d15fb832298f2412e18a7e90e20c34941af724dca0b7bbe7e9c14d29b53b03f07d089794b4b839af2554e0e4b374875b32fcf6231d44d350169fb1f706d6e85e8029bc25eb2a37520e2e2dc2e3d7568b2b3efa87e6a57cb2b452531c30ab22f8d7b0551eebbac9115059990bc55de8bf9bb2e64773b59a357b4b370d7dbfe51ac5adfb1090033e049351019d3121c47012e628fc5c9163f25d0ec865aeb3181453a40de499670d03e81b004e5d25c2df81fbaaac6cf3514c513625d3ec4e9e93c36ba41aa117a85544918db07256b9bf4ce6d41d0aa50f612187ccc828aea1b0562a81bf432064cbf21f820b3629a46a9a3ed79c99f9acc898ec1b12bc7d2015e014b5849e220582b3da472bf39247c97b4343bca3dca64400d93fdcdcc5739fc89bfb1a31c6a6f41483dbe5e06b4d1fdc5aeb36c5311f93e72b6ecbd1f037699ae6845859e3e8dd073e19e76228ea6f34c10402bdd7fbde633b36d00472e3fc364b665ad4407a90d363560763638ef4279aeb7ca5a7d07f0ed814bf574ca20060e0f663d0f29b61e9805dfe81783e43eec0860732b34819e3eec504c0267e3d4c75cf5b4b0f3eb533035553fefbe0939f6764be2ec419c932847e9d26ed917499f644dd5be5d15ceb505a7410e89ce84ba0a252d3e68eca96d108f6b9547e3e0e30502a03d58af609d4a34662f495fc3a0a3e728949750f8e96c89ce8b8342a5cca5623239a70103d70731e61cbce09b2dad602771238fbaa08649081adc52338b766c54efe54ed05711e51e71d0535ca77692a652fda90c8073ddbbc106a6677c3d5961916d510b8a69749ba93931681070d587c0fca229a2fa3e8324442ddd0750be2a517b6df5dc19113e0534f87592d8b911dd506866ce95f8459d1744908fe8d6cac410282c04ada0542b64c323288a5c59a9d878c56447cce7e0e51cd8b572e890c881476ede2224499736c12523152874103bb302db7205928132e045008fdedddfccd2a4a0972fea9a1cb6c5a9b23ff3798bfa63381d1b4b6ae1d8c7e26aac1dd3c9c55cfe2a035cca841be81523b77410739495ef227fe20deebaeaae9b96f02dd5e94a9c2c970948c3d1f33cf054dc24b220e97bfb95a5cda2c1b673c322928b9025894b43823cd60771c4419c59ddc6a8e7f532cd63dfc59a00a36b0acfb1be57edccf85492f9866e2f5c70bc9875b46e5c63f7e00e9dc7be344561b159fab51cfb694e35c69ac7f58ef721e996a37bd60f8a15ebfde67cf3289dbfb61da234358a6b03cbc0404a8ad3d6519383d67cda9418d54f50bed82a2416481d9a176f30c7529c12839305e8d67f179b9d7ca0ef1b5e8709ddc30df620c4c251a1a5261c6f36079f056c05097ce02aac75cfdfa0888f4b14e34d7b43df068d978d00d437383e22f48ebc31f0224e3062765e98c6d6fecc75f3fa99453921f9846efa8a2176a1418d6acd6cd74a6965b883664ad2f6da2cec4191219b83669aa77347abda4546c200552d6f9644d9a840bf71302a19b7a2a3e3ff34f68e006e9a98e890c8ee5e7ad17b5413f03444177850a4e0f499a2a061cf34a800b353938bd1f5113761d0c2e2c520269659db220826b07642450c1a3e1382cf616ac27f8a4ac63386e93f9354d2d3975eb12e3ee2dbc4e74ddb371c31c4483c399b6f2cc1263d084317dc0420b914038fa1e9833dde30b21260d5f25eb46aa982cfaacff790c53ccb9e8d35e4cffca3e1e1d4a2991b43d01b7e78137bb59a7df910072e3948f9cab8c01214d7329ebe2200fcac099e0e56d8d0703faa38184b3aff578d6a8ba8dfacb53a54b286ac1e0c7f040430b7664b13483d3d41eb54bf2488ffc996f11fed5d0dcf0072a5ef6ec8162313755ec7e4b5998d4dbf3033ff8b51163ec5ccfbb6f189975900c2725d8a794675fe411e72502de6c05c12d2569b53d2dcc433b8fc3cd019f7db80f7c1514a9ecd27927d043891683569d6f11c9591a91d6ad73b85092e7428b4ebeb264ad3909ec185ac515fa0b05e8c1c3b5bfbef9bc0585d2aec7c2b687a5a95da5c47d354909f0d07d1e2a48d96589c3df2f6b40c095472af0118010d8d9d50d7954d85aea25fc4327ee65d75fde57218baedd5bc0ef13f39e5f67e1f3dc1a226ead32e2b387bfe6ea61071773e7a764edd640665de8b2ea6f89a2e5aca8ab28083cdb81fc04121e6fb1c006ff1ea2396cfa913ee8e2114b122b5d3392da0c334b70715d3c175749f6c71494f55542252e31ef36462367e72536268b93b50b0b1e60bb6cc50d4395b1332a10f4bd846f4e85e3e463c7d3c2ec58f7785ffa1f87b40ddf37a86ea48ae3605cde84d9b35a4dbed4f61078e05a2316887e587041f4d821713099f14d3ae41980e3c415a4308989751dfa63c0f6abf9d2a8804d8445d5e226422c09abf3e3d29bcce7d2815aab082400904bfccbd13b6e6afbe8d8e2785b984b025f4ea4784cf8769a05ab820ef54c11ae0d3c40ffbf163859c1c240e134fffb6b29cbfed6dce27b24510f00b3cc0f9f06fe6661c677f6eb29a8cc815b1d969e986974d015ffa73709890d87611dc22492b6ac8ecde8e0300137bdcc500d39f4df87822965eb50a3432906a435591a49cd0e6e1e291074ac9e3f3aa4369edbeb4c815f1c6e6d9d065ce5da26a0765f477c922ab7ccd47c4e571bb4bf6e9a5e24bb2e80cafdec4686aa51b14ffef6e2260ba72e4d614000799bbee44396f115440197f80e27c68e59e02fef4b9b74df48094a4c3eb9fbcb263644d3b475a4945228b35f4b20148cef0b52ba34fe451f3ca4b48a8850d9c6ddc2f27f64147060a59900de88e290a9e2216b5b9c9ff8577d8981d984e1995ca0ca2dc23987a62bebd2215f59efc4b18b36a5529d4868e1637d231cbbad9b9b1ee34675c5f626cd55de675e168135a6b922fe58493acc480624e940550ff962fe0cf4ab5c15a89c74ce7e52524c0ac016574e5bd84df6aa4dfd821d0acfe43237cd8fc253b13184e5a566a5a3b2400d41e9029fe331f383dc6d02647bf85f50ac3509b96306fe79da4da821883ce212c6d304442eac053050f86922f68d98c200319585a2c055710cc1af11dd3a7a3ae5b3f5c3b215d1449c3c131061223de3cad3655d682733733a2daf4c62adc3cff0fad2798034c80ee5f17f034120e810a0ac33ac1e444b8a14852dc10cb9b76e101793a1ae12bce1f6aeb2c3ff7b7ffe86c303e08e7d164e7842368c86467d7c81a56369929a2cd86bd831be5b35925b78280ac26059249de95ae392d37f969ab05cc520586fab562c9bd4c33cd869fee324a7fb6c8d5a68d4a08a7ae841c4f44374ab7ec03cc5b758f36230e8c01a1ce4c5434e07deb104e7e0edfe42728ffeef9642b62714b655401bb33148dbb5f873febe80835f6031d7b25f56ea29f09a8a28ecc86615d45e1ac66e5744e3e100aefe7705507b55f093ee140ca03c4cf67025e5831f76565c7e79b1ebe658a4a8d67dd836ba5f2d6cfea69b801a21e433a2d4e3ce306934d8e783309ec1620dc427840ab56da9572aca4f7b26471716b6953bd05e8250b9dc9a47c1c4a8f249d969a63045086a7c63f4f4182c72577360fce5713e0ddbeda16e87f56c8355c9e878bacc1b7b136b3212e2650ed6def5d0c8e51dcb014a062bba8a79fd6e8a09bee8b3f7cb22b30937d984bd36728e5384ac68206e7c91a229eccc797f1959ec57fa0b2edfcbbbe86bd1388074617470024f747ae5078e45c0790f126cf452b9ea1edfa26d5f4325015fbc4ab009b0d9d7cb9d2e22e1992d973d8300abcd99fac93e42c4e31b6b0465467c7b675c5e39fa538c1d8256c7298a369bc70b8fe3133bf6376aaa231bf79b47b9f14fb590afc8fa87411d8b3d75e67db5ebd851d1c8f52dd1e5243e15dbcf26b216f2440cd6ec1fe64bc2b96b26806c956062da9c7e74e074dd07146b4153268f537f3b3727d86ec74474fed45ad68e661ba4d6c0aca8745ffa2d8b7290a4bce1083cc918f0330817969205c70fb28bfa466451a2390f1321b3d11e9a60b6c1c79ccc28e696898a70401c18dcc7fa17fe1f331f0a0898653fc756d5de02df3bc3988a63cb8cc6052db01e037fe71f98aa1e03ed521eab50d7afb3880683095a4c925e4a0a3c3cd166a21747699082a37e1088dd2463181b2ba90b77bf33eb5b959e8489e75b2aba6c93fdbd7bb57de34c15dd3cd604660c48241ae62b4e23d9af1d34809d6d36a0a76c44dc63bd599c352f6da1bcaadb5101c5412494b954b8b98ac40d90ff7f2500aed0b7c3428fdff55a52e4b5584625c3c9e53abc336f59c06fd05b6a245cdb335c7c5c81722e070b798fd9b30c2d28e483e31fa0e31f83c67b40d9e9279f50f9c9263717ab33fc14e9cc996f890a948805f53b2fa6604cc48745048507fd3768d3c3aa8bcd1d7a1318574cdbb238fdbac1d67b95f86bc5d26cb83cd5e3e1e3173215b9817131648c8e6ed3ea3dbe2023646ed33e6efa8ed537a7d33d01faf128c2aaa99f05a5bebdf8ddcf60b8b0fe3be104794138144a39929a09d284918fb22c9ca94862f6cdb9f0f799b82b0bc19be537912e80ff93bf04ee8fcb0cfca69674d709635e882bb0a72c555d242cb87e26ddc9805884887c6699e3dbc8f130586b53b245d9fb2855144772f95acc4eeb70042405997634a2eb91eb28a8172ae37656a8c194888aaa2c64ddd37c180db45162053b3d0fb4a2d592eb9a20408b7f78c44dfda5aa0f51a972016f54498a8951768388ed98e6c0feadf02b60ff0d56cdc52377209e923a3d5f007d74c621e704ac839506494e199541c9a6c1825bb0180bf5c34531d169e79401b62b9d28ecd917642008f579f5d6f930b094c759023c95c207a836c363a1591845733094b5a971d737113afdb8c9cff0355b963b0bcd7415ddcac7b9994d0deab55ca9bfc885005a460b4d7758d61650076c89d76b34de10478764b25d49aaabb9749e53b2735e38511c8c97918dede03a8b1ae25a37bd523842f35976eeffa6bf31481a07a1b575ca90d3d4b9be231e69cc2e2f1560597d0e0f6939a006885248318e10a3500e6d0f0126eed30e7a6ee37d1b4d90369773bb113ab4211e80725812ab31e326a8178fb584f0abf507d521d1fb9bd293b021fc185d177e6a336ed2e537341983b8d37265c1cf309a3334b8d47c0c496b0b4a2828a5dd71453eeff2a7d34aee31a4b6dc47676033c9c6ac0a7e95e572b44afbe51e83fae328e39d4d336ee2744b3b210004df74370de331d69c2601ee0466830083f16afc1094eb0fa45ab8c955803bfd21f247439e76c6104cb580d091d11e4486db91c8116fcd9644e1120b566d7daf5353337398710cce1af227a0af051cf8f0a3c4ac62f7415c01933efd76740a7e28c40df903d586caecde6d36edb8532885e44d4edfb3744d829e4a5bddcfd9458a99efaac2e44fdbb9d109b670d650d8d1a41cb13a16ffda7922ae28cc4be5404078654844a372053e9b46d13a575d99f5dca31d8f81089ea7665013235060fe8ccffb615d1d60b58b0889ae5a29306f7b78b64093e8c2825c2b4db189887b28b94c99ec6c2a4fac9aac9c88d591331b15fbb92a5b39103b84547d72ca49ca3a146b2aa50b5de77114074f3fda100d2f0eb68819f940cc70b15b878ba83a268edd3a19747000716b834c5aa2916655fb7cd008591fd92b3a4c028f0a5412b329f0bda739d08314f27fcdebf8061de5bcb7d7ddb10c39488b279796c2eafefae948ae5224461c361ed1bfcdea011d33da7df42036540a78258dfa3061b7c8f7a4a0d54808243953aede4a98fb2c95259a5b461c61adfdcb682bc64c64ea31f1d35ac3bd9311ee908904f97f31466e942921c08f2381af0b6dd8a29fbf388c3664c49120a31d57eece2ea6e06f344ccd7e66cf4ad6a26c45e4fa844e8759c1414379d21803b90ef7d6cc4b1ddc98e4e3cef6a5cb86f127b7accc0628eb88bf13e753b82cf90089e1ada0bd1d7f66f58ee76b7e11d7e7ec0ac54574202104702535fc83c0b7ee948e5e59b530ebfcfb69d1443f8ba8e60da3eea20121138f9fe57cc5011d8cf959823c85832d7603422b8b413cbd73798f04d3114e703592a4417153aa5d06240216f57655bf7172579bca3437ec215147dc4a331ffcb5597f26d03d6392721a776366f7d608f81294869c514fb7d70898b07bd8c5f47800e1d2f66682a74b902fd706a70712a4c1ba461bb7c85bfb8551a622c6ab751eea24e1ff4ea8124f5bdfa2aab32cffb7a0a0955bd0e92def2cdd4c367286c7733fadc4a06b584f28836e0102c94f1334657fb50a687bf8064bdd10510dba22c00a3301f6e0be123a7833baabfd129dc109dd8133d0853e65f6b0c4e2a2cf9f1d0051712f1ed5a4053350a9146f850245565f3b62b84ceee680c4ebd279b65d0c8e67aeb566f7b3503d0426620c1f3638556b9fac92dd294902e94e06e8b611d65977dc913dcc39be55e495eea6e3fd2a91d90c9d596b47981ff641909bf23e73f09a6c09ba34729d5040e6052d2f70acb6add8c88568118d2adf7a2a01c52c5e5537d26b9fedab51302a62bf0d3eb45a2c39fe138546ea9e0f170068d8b884b1904fbc642c57045b2e63916693c788b8a27017b1d51e5e948cd2cf6453d4c17b7f9946d24173c4fea967eb8beffba6a1981c2aafeae1fb81b6f1feeea3c14940b45eda947a234022e1305ab258171761ffdcfaec4a41f6cb3368af089daf19c777577ea91d63cd3ac92fed29a3552c247f3b12dcec2b7388011975adf70fac379a6415c42f1305bb52af264fdbbe621ff5199ee7e2a66b4d20f067d54748a9bd96955314e200d1ce52d8774bf427e87b289d03062f68018f176300cab8074c2bfb5df4523da291e4390d044c7921341e43069faa32d300513df9f23f7f5583ba5f55f29f6a32e4c7c6e5e04a2be6462850a3b54aae0f3758b0569a55118b05cd712b0331298742dcda54d2a112fd3da43d430717bd50e5b1b5cdf37b95bfe0e9f3e080457b9ea20cd5ee88529884369541a0d9bec7ee5616d64ac1b6b5589d1f88b3b87a40a808a2739371f49adc2917373c2e2cc71d0e1a01dbbba0f4c8599e3d2791480c6c25e1dc0b9a169716edf1d98a7c609a81141a3fd288033443fe6a4bed45046cc7cc8005c57f1de263288b8321f117a8a43638bd5ac3c67f1d0dc8f6f701f899abf3f6489696bf47a4c857bbc78f9ecb5e115e9ae938d101010567c5c6ad84a722cd760adfa431ff559f45b3e5b9dfb875f2688e2dcaeaecd10eaec5a2f58751532889339997206e10b33ca9c0ed93f9d9d001b749a5d5eea01dd2d3f656c5ead5e5a83c325162352853de97d5501fc2fe1109aba899dfa71dba3bddff2b182e49d073ae188426e66dde3cc89cf2519587e7737b544ab0eb73f361e3c347b7091cb6f211fba85cd75fdb233bbc93ba62b485ec2c5e2457a6045f84c4e7c4e186bd835fa9baeeed247a5559428348548825b8b6986f3f510f1dbf5fa4ceeac8e461c386a7dceeb87f8be0e30c82e6726d768a555f796a6b3d70c1eb0f2bcba02f79d3d450f47b3872303ab4087b2c6ded981d1f010cb74a69fd5a49f069c8966aa80f6747ab7e0bbd91121395dfbadbb0c2bf7f554a6715faa40e23e8b3ad3d9d06269d1dd9c02b274690ecf533807e5c5836ad634fb662a911cccc202555918794b4b65551448fcc294fac7a794926c7843d49c8b419e5e6e87d9108c4d8aafa0e61e467083412cce2112df9d2e8a5a41441a5b21b4f94ba4ff54a94463484f08792480b6b23772916c955b762707f3969febc273d7da006c0754b1ab25b1f7175ffa51312c746803bab4f3601557f23c1f5b786360941647131c4ea6a196ebe4ec6cd5393a300b61c26f5e6c36ac49227b660d2ac512090b8e59929c13c6b7b544da93d4690f3a775b64c8bafbb49f2fd40726ba759cb4f40104511415724d762178b35f9b52194fef2d9b4c08224b428004908ea1257d0b10864e1ebf756eac82ab408a2910af09f9976eb01f271847c290daa3641e61e807d0e33805778d7aafe10421dfdff54a893a0d5333c6a2043d3f2f2796cf61b7cffc2d1fbfab1215b8e405682237171580e55c75e219940f7bfa32c005de9fd44fd72070d678688acf1a4dcc578d8748b2742b8a56962884531e025e7e0b97c1c5b4a8a9cb34b5c25766c3aa39d0038d81ede2c1d20b245f7d914019d1aedc67c6d913b0f2055596d4c9f1d328eafbee2b4b541ecd794736b31df29eb5ef00c9dd6e171f2688cb7768491742089e61658ec9f1c29a0bad6a6214a777a9e21896af35854887a41290a2bf35f853aa2b53f9c5575a0e51f0a7d047ff86f83c4d5cc22a14efbb1697f75de06a1fd8eb16c98f3ad44592f096e2698078935bc7d71c8860aac5074f331a5e48b950effed8bc127f627ab1d0acd1c537a8ae4a2c25b8646b1a8949b2f2cc8d5a44254d3410e45c001a877fc36782b74002a863ed1b2341489eda99bf8aeb79eac2f7c97939d4c5ad9245bc5d54c00cc2a3a486eb61947e8a34692eb89c11881cdb562cc0118fe563fcc82e95aa5ec96e8216ffd592cb7c62afbace345af173ea044dcc45d908dcff6eca52dac4d35d77d796e912b18c246a15a9f869012987edc6f28f0675efbae443ec90fce3f0e10e517005ee47f4c0ccfc81eaccbe160f46073f3c08414eb5901b01a4c5a90109ea1b8c3f21e2de287d593f16f02a80138c1e98e6cddb02dfb51de979ec9aca2d79e3d30bb873a492383b612fb048c79e3c93fdbb46544fc3c6f9d6d08c278c4b9c4b70d6c4038eae9b0815787bbf348ede402592f95637b8deb6759d0b348cc63cd71d2840086114acc9d081903afd48516dc82443ac2742b26e6ace5742b97f0be72ba351fd80af97bce9d94824c66f42cf48d91f243ef10a354c1144d716c725bfbc442315ee1549903c6db3a35f34f325038489f1b55218ab5951e286a14c5d54fa85677442647c5f028bef67f6612c1d4444138695c48d8b1025bfc25026274f10f318cf297d1248164b33e464a334bdba16c16b33c53dd210f9f68dda8fd215cd8685589ca3cea17795ac024ed7272aa181d86929568dc909f47e6a1693f64afb9a0a252a5b62c5ce88a14e19f153639f09a18f346d67ae8cfb3010e27483d43058486075afac7c40f41419fbdc737e8575d37daf3bbd8eb48b742cefff37d10564064e9a4f825406100d4114507e7f9f3a1ec11fe1aceccff9f29d4c87c5650342aab19cd1a1a852037e516d73132d16e3313e251b742f7cbee741e4772b8370352abb66bacb04066d7ec521c605dae2cef77842c841cd4c2f8f4553bc2149fc63dd6bfdacadad3eead2fdda7868f36d914fe86d7152dd97f3e44fbc2b73a39b889146bc2e10313104e5d6f9574b12ad6eedd88068777a1c154ce3ab112fcded75216fc5652810464244d7ac58a193a33077e6d9add3eba6eaed5c730de76b7e9561b64fa72905474efce56d7215acb750f2285c6a130f656b8139029c9bbbb610447b3144f587c70f3e38a5884659934252427b07b7e9e43b1d3489ca53aeb3b62579e5a9a97b18551be38c4f447034ee1b35fbcec9d4f6e3fc313d7b33c5f5ba98be0ad07b4b67592bdf28b8c3cba8ceccb253b7f673fc52144b93c4334f88444b931261c6f25df19ba3c8ce68182ab0832cfa1823266c5eb6624e1637fa896315e9ea2d23f3239bfe2b8ed2b7a94161311980b5c7a666d04c075efa227c21a3a0d4e7f79739a138e7ae7871649ae53f36c76e2ac254f02e4bc57d2c9bc635fcc90a09a182286600e25dc6385a51430c356e93eadc89bc03510a7587b1ec06cbed03756b94627439f4251e595be28b88b23a5ed044b4d6a8cf6acbf3e12bb89acdaf4c2fcd2b4b74dc7e49967f65d349fd71ef1b0ae8b1bd46691377678d67c25d045a835c359a7cbd1e078d211731d88510636d327e43a8b92f754da4c9d40c808c9cb28b0c9ef79c11d0966ddd8fd385a1365aac313f173ca441a409a8b82fe711ce87e4e96475ce9af10a01030b9b39ab9870f2745b45719080e1e5dda79ebff5d5702e4ffcaf3b2ca12205721dee7b3543edd6e3503d778ec31be7f090513f182d2ba3e50983fe21462fc08263452107e8ee0c235a8a3db5378ce895492cd6c64d17c45168af245a3a38998f3996cb4e775c8a7be5fb2191c475a62e7b8b432699aa06f06d214c8829261a31b9bfc0b1bfffbfaf0f109f760dc1c850688e456967bae5cc6bb71359c876f8f95eb536d59b67e30a3626ef091a7465b81415b65dfa993e35d2a74f2024af2e2aabf5690375cc23808096d4dc25c846e43a135b38d84d638b5a49c3604579a3a1d62113a83499a438bab97beff7696a53114e9861ed3a175d2a4b43512de5e4a7cd4001108188baf4e50526366224a7cdb7486845671127dfe4bc33e8a8d58e01ca55f876625b94a6db4377d8c11e3dc4583abc46a7d904698139e5739179483b4c099a8e7f7345a794594f419097d7ea6d4668abe41221817f31c7e072c94718458eb9221530880ea08220a902be61c7fa9e85d62d321093d74362fae7779ecbde03e5bdc33de65958a4f06bf6dfaba0fdc65d80e63952cf968efa340514b6352a0fbbd30f7fc82dc8c616e16ff3d0fc9b3e126a9bf6b3f21799ac4b426eec9dd6598a67a56cc6c59c64ee1b6b0be2f7ba380652e6e8399526a99f4e1e091e1d97fb61cf104d9b523a3e1f0d55bcd98122c35814ce0337f0ff9b7447647e5c22ac5f77fb488540586a7070a2057447a7c67f784f399f8630f072ada12aed1ca9d1c548c2b7f18542262bcdac9efe6ea75fe3eee6ca5060c5fab166e746e1b970e8c9bfbe43bc93f8916c0cc5f1c6e0484a5e8868673fe6196cf20823b37dbad41dbf5ac50d14aeedcc76cd065b1102a312c44f7738310ec9787051a22c2147eb92f026de6f148207c2bfb13d9636b68c60ac87dc5834d15c40ac3f69f9917538ba4e9ec9fc86761c2481d37199a6d545e25985051e1f280c747aaf66428c3f806db4f59bc46bb10a6e1a004cfef29b8a28751c7e71a47825af98680024b34451b7117a219d9fa087098c63dedc4aecfdaf83323f3b75b1161db70d7686edac5cef437de90b3864d6888a7a4931d6546b5c18d9050a1af1f9307cfde966b7c7ea62720f757e9983c41f7e31eab11443fd8e562557ba127a3893c34b11320554908e696c11fad30b72939c313cef7c28cd5ceffc46b0df0d54c4c46f3572b2565b52b1e1309a247b4d928a8278796304847926a8eac11200e8c24c7301b3ae6d18266ca4f478340fa18c7ee9f13553207023b36dd716ac08792b0604288e758d05a2cced28a1f7d6fe9276cfd25deacbf08ee7f4c60003d2aef5e5800248a4407279ca93b60d2336409be5f9e57dbde390ef74a2d995da98b5bd1f5c7a415b848a91a77d6b19571b216c948ec336a59f3463b0cdd78a7c8f602e5136a5d55ebfcce66465ed7dce3456d2d66ab48cbed1563d4a31c24cc37b930f89104f21185822386060748b2802de10e5a4032e277fc3891045f560bc70fd480a67875980b68e378d823ae320689d5d7bf037e6e25fca9a47b0c7d9880137478775d579428333dfbb514e2d345fe41725c21e71c5e9fe550f88a4ea090e564801a37562c53ba7dfed1e3f8ca9fdbf1e43e86bc999b2bf85c5e5cf9e3587b1ecce5910ce47961c76d8a69ad5f1162a1192f9eadc2b8aad17bac0d655c788f3ea4a8c2ce74fec4abef045dfad01ad647a5a1c1dc1b970961787c1aa3b9886962c43b5299fa6ebe8dc0606ce556d822b8b37c3fbaefef6640a05fa1c0c73e26156c70da35213ebd886eab0d5b327ce8a7a9410ffddc4d436b13a30cce801e973e551434d5197f362c080806461415ba061ebbd98dfe0d9cc582e488aa6f2afd681f3ae923945d717862309bfc302b6bf2a34f7d8c623706d57ffd582e54731d51388f83dd173068568a524a4b771b47ec9d33b526b3845d13312fa31fefea2e51100f4d3bc6061c4d418dd041c150dc4093655ef28d5977429b85671ca5ccaac549c1a2d9feb93f340b9fcea5cf00ee8418fdb80e0269ecbd98a431a14184b1c0b5a26e7ff771e66a804a28f88ead4690d3d2c6385fcb00367843a8cda37aa8cda511f747b6bfb883aa107ea2727eb429716785d6e6db8c24db02d2a1713a5c0c2ec8c7cae460084cb311f97428a5091e91d07c6ef8bf874a2a04d6777321b2b744f2ae0c59dff0e0e90dbc74cd261c0b0cbfdb37e8a5d146476202965b4a8261ca03f1accc51fc59600e7d94e2ae7957e2df02508255e6362f1514b908a1b98e59dabc7c1155d4e55f16db88b50d5bffcb269023c798db148d431a8a005e8694b967dd905890216fd01937dbeac0d1d9cd3d598926158707e3c63bec418413e7b06762152fba0092c02614073b6c176bbadf67875c2722430ef8e5df73a29de26cec0c08cc8009ddf1e3a41585f0c6fb4987adf051380fdc3254b86812503c13987e0fc87c5bb22d4287937be484448ddb9cc8e0f46dc8d95243418285d34ece437aaa70847528bf0b52b1ccaaab38c5597614309ee3d85bf5f70239616589be24efc615c88d7130db8202251b483f74eca84a12e3040a32486e87cfab8c34704fcd90bae53cf972808eb1e28f4ff2bef817e8d254f7e9c678f6590d9ebb98bfc2adde866a5e7687efb91d38e4933571500d0364769cbbf31dee020587777706a8ea07a1f870b886dc156f50ba9d325f47ef463fb5de81e3ec7a569cdf015ff47025d5e23a7aa175713177ff5c0a9fb226fc317f236a570147531fca9b3d0051a12eefa3d54ee72dd6ff02056f6fc354a7a487c5176461cdc72ec27ae65f4a17014e4904d7cea00a80bea618cb8f7b3af3fe21052d9b1c7093234ff760a12960dd7605a60e00baa21b97f884d6a87afb2fd6f03200995767aa5867217a08b66740716c1d92914cef66809d9859782a5014884730bbadee32238159c36b4563e2651b874106278ebdb78f24a5af6cc93473c1c375003640d0761659081185e4c2929af421c6e6f10b8498e34770e05677c0556ec50f122332231022e8a29cba446279ef839aea980abdb3e6fe59df685ae019cb3e2750765a74a00d6ad1708c41da780360eb0a345b51b32aecee84f0e531e17a5134fe9505550a3a329208692b736a6e4f81ff18b0ef84c55e0aa2ee81baf2b6b7e412502fe881feb68b6460413f76be8e74af2e94e489d739a5dddd66a14afa291bf49ba6584e6d07cb9ec4329bf61d3ee2453ab7ad12b6493c6205e4149ea84483655e9d0cfc09b42e1396003c2116438163352ee57d8bdd83890b1d6ae74617ab4e678a4158e06a5595ba0483df9ae168af96a3d1f9301609fe8868af7b44ca3d73372a075b1ac25193a76d5ff4561665b48d4dd9d1879eee1c04cde24f429aabb16d046738acacd51b8f2b87688e68b2a30550285c514d7bff6a1798971c79bd10dff5a16859776222b4096c2cf663d31e3d199fad391675ee2c7bf16e0c1099588c82cf305dd139ab906778fbf66fdd0b5a71ffb59f93da9e75389f463b37d8795024b47c3ac66db414731f71f823b3733ad56e34d518d8094651c98018e6077fec02909a3d3a9e598df7f5bffa6d1c8d49b737f58f06d3ac24d742009801aa50076f7474c3fda6ab0b4d3f2ea9ec47f318d43516d6492e632d69a57bbdb7f0b0b7c72f55fcfb41d9284d729618e6fb5cfba96873def08c52c4242be60cb6fbe3308dd025d0ae1d59c1ac28214e05b0674cc283b8fbe956c476bad6b86eef7031e2e18164766c2b2e551a671177020f89e9bc43467823456bbfb0b550353f36777d1ea1b12931fc2a340cbbba36bdbfabac686788bffb6b935aa80aa7d4fd4c4bbd714e394b39cc73aa9c889fdff0494b4a32cbd1faee7489f70358eee51bc4cddcc4f90cabca2f36230e08044de072c7670ef8d852edf3f3704d9debb77a5e4375c990cd1d1a9390bc23a3db201d4e450936681885b2fc46fc9858e5de52e532749045f8d5f0929c9b1a150971d297ea3d1840157b64b3eefe996ba31c71ef87b89228c8bb041a0bfaf307b546178400b3d7ccfaada1a84a1885173a79b3a0e0cd8700d122fc58d102f1bf4bff76573277115c0882021fd7ab40fede00bc4faf692a6e80c32f3d4b8661e011a8ff875e7bfeab2a4fd34a6a33eb0278eb504146190db3889dae5d39827a6b9fa0f356e281813e1af868c8752d7bcd359f9af52fe2b8a0c0033e7c06afa9a012a5bc9dd1db4caf70c23528959c6ecb0e49fbf6565f42beec94c68af302178e84153101613dab762af989f131eea44f81d22bd49d37e4a65f9e087022269373a1614b4816cf5a2217842bc93d729ae603509e5617ab8fc7204f119ef5f499bcdb9e5ae103efc8fa92028fe4636e077b0cd879dde93aabf28a98d84dcdd8c7def7609eb1fa33521f53a7767ceddb174d682c22004572a9dd3bba3e6ff06a1c9921ffd997f6d9492c634447e475126b040a99c044f115e00909c4d739a5acce4f6c6e4144378d0a27193cd1ee1df8dd86d9648ed94b7ce48b5934c2c4817e00c1da5d8a5eaf3c5ed3a7db36981d5663305b3061e791aa61107fb17d981d280c11e139b1b3bb080f8bdd9e29b31161e6458b2650cc812b95f1d38d0cbbc620321d9275aaa2014c4b5426b64ae08db4dfca534ad0923c83b4a60a49d9ba9ae931f79de063f62b3c7e1d21f048c38502a65a4497b5c959391005e1a1131e957666b682f0ddf31a8a8f5c53cbc30df6e729e22e4107d97539178689f5cafdaef4f237cd1fe6680a314cdaca05dda83279dc444a74b6d63de956b758e46074ca02a0b53066bbca30fa078e78721873aa263150f1a5d4b4733f91836994ffaf24c5dd5664bcf4caa7a6296f278be74ea38d61a55e2ec0010a81ce29b92e1e2e94fb070ff77b47bec5b5cc841be4a41f436890c47f3d1227097014d896ab0a5a82d1405aa18a8990e6564f103245644c50f69b0d0c6a69fe8d4ce07bfd08d50ae5765c6a84d89904195c3fcabffdbc189cc6990d8bb0e5b84d3c6a5613699b88904c7f10b27c47061c05d4444b3c966e2e8337cc2555be2eaa3272715502d8f83c2cc7845d2e3d9b3648da4c03c92b15f90ca42a20a01989272ee654757e504886a9eccd2400e226be4c7c6198a6c9d87232287d047778943cc67d2d9bdc7298dc70e4d1c18ba0bf1b23ebd9675e3c8ae7778ee2bc58c547409ab39e2213a5037087f94c95d28bfb2ad13f7659ca4f4ae837124ca3d6e7220a6a38abfc786c9045d924d137813d8fbc015e6b270b315e7abe1883e853cf7c1e80537301c297464891e0dd2f9d9703a0cf1d3742b81dca79efde1d3b190f4f146d61e79553ced1fc6e7bd2f6ed4ee18e8983390782cb6207e8b97081eb9f444c5115a48962c0183d8d24a8d864861fde1cb440e3dd166f22eb5d20e90ec6f85d86e13686305e9601b6ffb56ab953e86244aca9beccc499ef882768023e15db999c35a8741906209f5b719d4b8e0de4b9e437fa45ba9effb183cb51f1218387139f1d5cba870e699a30d7c7d6b0c3429432d14a1f93b9542c2c9429197e32eb27b80af527a4f68c6b405c9189353787165aaa5a5af789418a01a4440dcd76c393ee92967596c08c08a12876f1eea59d1e63352bea24cf86f0af1bb95c2e071366e7b39e2af30393f88d32829edaee75fe55b0a2912cdae0dd1b226196ec0c9321f190e77ad9702fe2731796092455cf8293405ca2b7f9714c19b919d817cb1569279bea091c8cabf081c682015aa9fc2e5e2e0d7fc94545109965de9a950392e7282a31d7b9d2bd800dbca2fc2e10c776fc90bbeabde1799919e88dcd0a6d2cfc016f6db0681921a1d283afbd662f16cd792528232cef2c0a4d68ec886b20e3d23d1ddb0abf345aeec2b1cf132ea7275cebfd6c7400fc8737439c6c86290e2177c22a778bdaaf46064de868d594cd29bc1ea3e689757818146c62ec001d8b5ac437a96d4e8e207cb0038754004e3caad1ed862a72280ee229fcafdbc77838a309bf9899b088a0f046ba6532817cc55dab216394ae4eab923cf85769d02dd510bedc1f36d73fbf7d4ec2057fa13ca99359ed97e6868ae43ed9f309cd5f970c77856553482fa31696059aa61d61d74f799c19159848e0f0abf2941708b8f370233afcc4c5fa3c83d0e10ee075fb75c9194b93dba81b234f3df30470d34e7f631a3ee9fc94f9d00210779ce6118bdc32a07760acb6705a808398b252087205c44b77aee372ae8f5a2a7cdcf7456f08bffab99a07714abe51631fb699fa3866f0c6dae5baf589c650cf09c2d388842cf219820e5c133acd258cc8f3eab4e14d7bdad014eece4e05d7d4da83bb93e2948484a87c78719ca6bd9b9e6bf444fced5e41e3ff9a3a633679d56778ac6d2f1d652f472feba256da8959b89375412368b2eb14c22fa1d5302b8300139c74640890e6e7d1e91f8401c6e26c506b94962e4011bc7f1865603eb6c3648af95df92a03b5bcf5171685a1e1cf0eca46a8c00a2f35628f98db9f84253cef0fc219185a8f2ee0241c30dc9913bb608f3c1b08912c52f38750eaf7b7330bdb78e54e5b8ee586d883d3b139a05b07f57d4f22c53e59884d14912dcce4968b9dfd085b939e55a2baa1fd47c332c59bae7f82f2d53e1a4b4e14aae61c46577d7e0fe4404d975cb81a105a83f65d8bcf190671c0cb038760ad5e3d84be1e3c1503dbd86f907953573b668b9edee75355fe4039fe853e58fa95567cc4afd598b7bb62289621a172d1d8cabad3515b6cec915ce8e37c4e207ad322207272883df1c9e5352ec76f706298e3ceb469bfae6f33847df37ec9a4d74d00377d6e66f7cabf93d24800e304964b83cef7e6d813a44a006e2a084b77f7cee8f0aee435759e2e7167826d8c35a80525fab4e172de7fa8fffa9db071a68c2338562ee051e86f9d6d47eb428b703d5babeaff73072544bfc92cc6487961462a3b5da836d1a159e98a0e171b15cf291c8179d65e592adc82152eca84e85e80e2152943544ccc7e2b3107724e3380a5e29c83fe37e01748253b900f8111331517c2492b8342e10ba041ee978c08838aeee17989b0650e06c2dba2b21282129c8d8b6174017c46a40b8a7f004b8b3f70256e910b1e71be13769211f7785354265d9813b2bdb144070d52859e346f7d03262f7637d293a43231d5c1ed97ad63226f8c97dcee5e1623ea0d1e194a52dd3ea8aa7e497bb021577711574bec8b2da2f6ac9bf9af2555abccababdbfd2ffdd47c04ea7f87a854305c15a539998192636baaae90c84ab6da3f47cbd96d76fad80b4b8ce15cae5cc5eaa66670ff3bd702c0e0dd390b00d05219a45cb7987fb4e173bc6d1686243808df8b12ddbe0ce80da125d67623dd44448484ec480ab70a8d0a8df68008c3d1480c87835710e9c1b99101f7db7b31426855f3c527a594ef4939aa75ce7949693debcd292f4a519725db8e045513539bdb137cc04b9a29cfda8e94ef49cb6a3b7d22c9f89e73ee456a3a091f843b5793b4a0fd7ac45e501b6ea730a8f9059559a1821fdc6ae0f81863841535618c31c60affd6c06ea90b6a7e7db2fa8e31c6ee0f95312988a1a7b7a02c8aac36bdb31175ceb99cd95a08ed3b11767feeb35b06b60a8cdad321e0dd11809d32265a4e736d0bd49d2ac13b5c7325702598c033c53c133d8317b0daad3b1d8c8b576c8fbea58e86657cc52dc2c8e42d1353b43751d1d05b16bb6a929080757a99a0b72e014643ef142d075b570454b0001aeb921c8cfb1d8cbb75f5a070bb9908152c80869ebe729447a5570da5d6ebd313228783ae1d284f0074d5c8bfabffec8e36b94b4b449bdea542a899f53476068cc4319c71cf6aed5cb3374f449f7086dfd12622bcb019e212d126f769f30316189ec1cb627c0fbef6248cb2eaa2c27bf9e8317de0f9b68811c21621eccbb77eadb51f4ef68887551845747bd5459d97883e35ecf08e3ebd4ae3ce2a664c7e2863332686b92464b106250f8a12740fc2a6a68ccdb5ebd7ddeebe3b5b06949d7424603530c1ed1a8d5093daac77577dd1cdb6075babaa12d55e9aed25d99c7bcebdfb66b357aaf5161042082384cfbd67b50a6e67edeac1224723318c7af680f6a9096a4ccc0d2a7063470576aebd38212a53c6e728aaa2a895474d19df7bee3de7a2f401757fa779a61d1a88e48adf1170b6de7bef8b27f8bd9717862f785ac22726475bd0dc4b6b97b2b516253563abaaead54078d990bdb449b6a0464a5bf9508ebab324854ef86077c9409859e1c4122c9d6b72245fe4a1841525e78c8f8ff2c9f808a37c941232495149a184315ef2d0962e07217c314a171f3b4639b17cb1ae4b5a2f9042277c707ee9b66207277a58c0022ba0d802bf3b76d9502ba0b0a1f00fee9061052b988212b6a083e1dd29bc74bc1c9c810a6bc08c99de113150f60202ed1851058cea519e62d5b82752a058967a37a6cea2768836ed786f542b7cf96114c29a52085643b690de0eeaa08437479b5a0a95b38b024da37277389826a208cb1a082aa4668662876898a6ae134258d40c43c00c5b364248411535e98e3e9130b5ee5d578dab945a4729106887c3ec0a2fb8c0ef96659513cba2d72965517a4a596e87e8efa2ce09bba440798e76145e353b8640b18d4664a540f968f494d115721a1415384bc45573dd1d43385129bb6a407dd95c97880a224c450fe53474bddab5d6e6840bc3abe60a2f444f24123108ca4910b16308cbb2dc8e5941a06aed68d38e1a195b42635d73525b7d5159cf053aa8a2e615ad1d39227d8233eb19eda83d4309958d565494723a19d173c5f5b50649f9e4b20c0799e2a15c8472da282ab28cc6d1d096922245bdc80a398de828368813a7115dc869ea2983d3a1889e224241b977a2cb44852497d22e05da6c8a147dfd5a0b82a36b9645b2aa8b5a57cd8f781b8691b86eddfa93d6415b39b91113035b1019af04ccccb409cda063d1cab26cc343ece851b1a97ce0a5431eca90102d888c16a31a45b53661a4d2d21454026096c5932d449689298a10bd8a2e110ea6ef44afaf6c4de90229af2f02e52294cb5b44caeb65620af994fb0107d37d2151443dca65a25ee6608c703014963713519fd94f45c368447f31b32716d39c9327d035f4b6203448ed0bde2a0df5baaef0c249ac2a4c299d5585db25a43dd18280ac2052be17924fbe50c39765599f97552d99021f9c5b901624880c38d0aba2e6d5d0b57387b67ae25e50c020a4efc56bc648219dd65503a1bc6ae021b528f50761493a4acad255cd48515252124af9eea3112d14b8cbbab3950fbb6a687c96597f360a6a788229bc20d0ae085c3613d3b89574f1b48a31ce19e5e3454978d0e17c8fe13867cd8f462d69613fc9035e7e4e675dbf2a6ad2c3538bd1cf499754d46ca0c682064aab3a5429e194925651ca294faf1f148410d253365ec2bb57d6fdbde63d5a1b861f059b75c54e10cc708b4d3e96646baeb5b777bdc7f04b9f483f90b07efd8a97cf35682b278f895a740fc2f9492b0a427819d9e5ac55c9a136ccaee82182dd5f6c21bdbccb86e101c75369590dc7ca87b2ae06695bf08a3a2e6b546d1e75d9c478d7557d51ab306a9bb8f1d09a73ef7a319da05ef15669a8edd45d3557f438819fc412dbc8c34f2adda58352dc2ef7674df0be5073545d3631de1bee11033f69e1264f3d47cb577d5165fc8b1282e669252588c5d7d1b9ebba3efb74bdbdba6a7eb430a4754942708bf112be495b82f241489fab675a5151caf76e6e58bef40962783a5bc607190b1b8ab8c7189d631663ce96a684cf394639caa228d7ccb966ce59ce8dfa44c2cdc5b7abe65073736154116e782039e7dedd1442e7a829db557faf1c1d41d8a636c2cdbdcb26468e76578f18d5ab579fad7ad593cade165e1e92188e79492a10f206cf207b7c1ec5c858649045f6dc7ba33ec1ee5b73a04dbb2be7f29b323e47511545c599df196ce86ca69e733ca34ab35f92a5d88f3df71eb30d3ff7d87b8c1900d4cfb10a8dd0f666a9096aaeb84d3492a06109eeeec01b94d02865636a8d783086e372d136dc7c16ace2252dc670503857b73efb74a356ef2c9c20b15e5596550f8f54e4dd59e8dd691d8de4291d5995b5547ae45401833070cea942470727e190e8e077f66e7e3a3a585e247a74303d904a897ba28333e3d1c1f4ae341bcd861be480654babc26a90423fb53daf58950dbda1b26077e6b0ca68c5361ea9bc571dfc2e1e39550cd1c149e44001890eb5e829bd3c7d3ce47d77922c4a2b2aaddb9255bd04ab97a8eaa556514a7f38fc5e8f6ad4a7918ddbd1c114890ea6f7877ba283dfad9a0dd76cb887dc505bc5a432516fa05215b6def083410f8222080492a00902812810055520ab0850ce00a66f59c04107d32cdec08357ac2f6af5f7f7aaaa5f555596e167550da3fb066af5189fbc6aaa3b6d56b172c394728f073cf5d9a7ea66aafaace86faa3b79902cc65e3d8f5865f39493da1f0ed39b99c0b4b219b6e7f80ace97a8529b2fc559d986e9a33f3eb2b8c0d6696e72523820c1d63d555986a9cb72e3f79c0c3950f6ca2e77591de9a0eff4b136aab55f7e889d106d72a78f35ccfe45edcb78f91acaf9fc4ab3d45e378439fa543d3bd3260786102d430f6f5468a8d9c237f2a0e3e11c78a80c338a552d88d6a1d2a2cf5675a8ec1518b5df72301c1576a7201a26d319268cc3bc5613ab0b1a6a2191ce009203080e57b55e7587ca9ea34f970ed604bff7d804bb7ae990b7d4235e5e0e1dba7cc4cb57b58a555d390bca393f60ad2d50ce0096f0f13ea68442e15aa7cd396fdb71403ef043cd6d496e3d5af4c91901f7db923e312bd640456bb89901f79ca517a19bef33c6f8d28bf3071318044120e7e08aab4375fa2c77bd363546d1a176e5728bf2fe5f66fa14ba10dfd1a719ef0fd1a73ed5f78ba880c9c9bcbc9d0fcf31b835e0649a9029803beadc9c378700479c36b9dbfaaddf84389956c4c1f48b74775b47de62a510c0674871ff84d266552e77b1ee5200408a00543aadaa270e0e0472eed4458aa2fa72d781400f2441d5adf70dae56275d75d505e0c7d5eaa2ab8e894d605c0c01f717d8159660052cb02f88610c76603d3a26c040dc08bb9b73983006049001012c805082320f2c78c0ac70051b5730c1c1e6966106104c6fe821055710d960c60f98153a26c0407a84fb660f6cf16240f9035010d5e03406dc36b4898ed905d7ae02651028915ee04803dc1007b8771a10894c2ee07e8eb671513cf7de7bcebde79c7baf5d0194718807370edc97e5b8267fd013b2dcabd3d6e6a97973736f02cfd0aff6f7ab5df3c7bc79570977e94ea0f9ea36ed8cd588cfe19af5694b3de841f3a1536781d8c5a3726209aeeefe7073adc4c4d4a9cbe3dd3c8f8303872e4ca27302ccae07301a1728dee9b01ab0baf3edb56bbdfcb05525119c7b4ee483fa5e93016df799424be2b384243e447857ec40d192f8f0a0d9243e32883146b704126649d060879e6f6849d0e0c39a0df61950f6d282e8bbc1089e6f4c5f0b22be05d1780038d238c325af645094cf8d5f531dd4d84ccc06b3c15a66a8b80bf7cd92d99867cc46eeb79b3e9c97460583da178963f9f6838591071cdf36f96287841211cf0399f8c702f0bc8dd5c0f445c6d3eebd40515fb08353d0e3762dc20c4e07c35810266c25db8231c1dd5fa24fcd9e30a18146443bfdd04c33d3c05ad0b081fb79009786111a685377c03dd3700e42e8200d1a349e7ca681db39e79ca3a16359a1eaf4633fd7fa654a2b6a76f773743fe7a3c23e9cab53501a833621ec41491961ce6b23900828f57170fd3a9b7dead27cb1e56735ada817e36c2ff67873d4271007727e6e70dd1e34c4d007a05f8e009965a1859f1e4d4553e1839c2eb488430ad6d0634488eb7d3560038c09712101c77b139f44bc2098811f13dcd90b64a27366bf1938cca490841ff4fbdddd3fb8bbbb55f0b3034a8784280deafb3c8d417d8f2e9eb19b78e88078670e6c8d8a8afab4418d27820655eec8f4ef1456d5b4ae46db6565d9527c939255d56665c91ed4e74b49ec78976f80bc37345ac7a9303d95570fc9be38c20db418827d71841b54615a958f0ad33b3fdf4da680c2d378655bba26bd2ed02368527a5df4ba3e2f0931ac01a541cdefd5bcbbde4445e34eed9c0d7a57a0080d8d010deafc9bf37a7e185eb62423ed39b3557a0d14af120f79eaf2d4ec39a9cf0b43d0753311d89ad4de506f2cef6c137b81910beee17e73adbb15101d9d418d118c19d52100be3ffbb039d75ad026391899022730815a80d158b704f48cc68a971602488e00eeec32a8f4143231670f1801761511438b2f8e70032dbe38c20d68e88b01a4978d61f103a62aca87cd44e0f92625944dc6185f0ff8485d948c41f53eaf9a3aa432cc68fa4d4a29e58c2d5f6af912255f7ab2b529a92df59dc442c70f58fec9ebe3b558d9400b5bc8c777f66251ef53a9f62914d89de5ee5d056639bd7bb40d6b81ad83b49004c76096851688e07631be6b897a03baf50c7abb5b0d04028140b79ea329eab2a99be5e79582e42e1b869ba868a6a0ee2afcb410044727989eda02d387b260061c5feaf10e3a7c7c02bbcfbbe71c4c5936376c65c18621b8f76543ad6a35abba6a1ebd6caeea1464514a79d0b33c74f170b76ea60edbba7b7bf57dd9c8c350e83ad0cd13b3bce2276df6807545e04ac80111bae08513b23042c3188ce8d6c56362ead1deb0dc9d5aa2d3cb6a970e961e2c777717d9dc67a96ee4ddfbbdca547e77f99de670efc69dde4c51f6063e043ce2af5314bb72d99b14c66a54972c8f978ff7d02dd0592c5bea017a75d0abd379bd953f4b7f03fa55835e3ee2a99be11f3d75f3cad59183472ff14039e828071d441dc552ea95a5bf6ca64e437d4580d1c4786551a410c25801de498796ba37f4b0be5e3ee233a431549ea35140ba138c1520d3e4702ad626078fa635ddd0335ced0dfdbc215bea410f3a3de8ce5c3ee2bda1b73520070a4d34202707bf1bba86c881c265e36089c76302970033eacf3681a91c4ca9f7550189983aa52c123f1680ad0389f887c48cd5085925f831035367b4093c1b9083ab0b02120642c2147cbc76e4c08cd1c8f0edb6472f10540ab32cd4a0056669d115f45d610818845916568002a67db7c0fd96d768de9865718538609897c0401c76eeb25133098e7a07f715aac0ddec89e4b5da146f16576882e11d75730ee44ce0dce80ea3d11d28290fbb49a4368d4e501b8fc7da80e35b6c0e07458a4823b29fa3bafb72af7ad29c3c71ceb91d9ce50e1a183d38e605ec6c5810a3bbd3301c287767003bc5bbe705602763033b016037033b1692643241d0bb37c351efeed8099e4973d2a606c60faaec27b799b41127e3747ab8995463dc5c577426e9e6592be9265375734c6e23b2aaaaaa7ab5f7d4da3713e7749c8c23d5cad34ce6ac554747c731d1714c741cbc1113732dcbad25dd3171320038e937996266707e332fcfb3beeb8c952abece980c7330319e49f8faf3713200b8ef887bb9200793a2e2789c0c84543543aaa120ab71a7ac0dc33f3f3f3f73a045b4a94f0453e25a109d30741a8a2245dc108e1ca962e70e3b56637a59557bd2a6e6f1a88b6d380e713251495472ed690e6a8e3f388241a44f393609d2a72c89e0227d724ac07d29248221756293767a6a68a67ebf34b035b01afddbd7a499fa5109e8a45a95e07e3ef4065506b96adc8d6004a9f2398281fbd57f9c4c1cc2581cf2c3e2909f087f9e8b75594f8bd6432b062ae0838263848f4a0734c0c401f980cf12ec8983cf00a01c02fc1ebc6c6c98b44b473b2b3153811295278408b9037eeffe6861504cad7cc6477d5a91b7ae9a15f7a385614119a7cf72968b6268f942d9f837c35a6d925fb1d6a2645cefd228aa3c7d44860ca970cbb00c3bead98e92d0f21b77476d92af6d9216f5415d49c2c31365c4e13d368928970ed88588850a2448e4a5839d612487111c52a23072876664c243197f9f6ee5d21165c8b8b9552e1ff031b258d565e30edfcdc178caa684b2c926656b000031fcaccb077cb74a4395f779efa74d3e2da12176f4bc2d9428e97e8c67323ab25c2c2cef2a082deb5a39b436acc6c1234e0652b2c134b0d3fb6bd226980666ea63e813913898663822843d0ff68c50ec6bf2c36a340b8e60248711c9df6511890fab51a4e6a8242a895b849ec8aa6c55872a5f8471b16449c337dc90aa344c261805c3c19af8f840e75e14343045b1aabf28a01998c8e7c6444629efeb29bd9e1e6ee8316e4f7b6a6836fa2cf635b18f0dccd47f4756aecacda4947704a35cd1cdb3be343c9f6704f78dbc28525490700467b983e7e353ab4f0f967b3e55a9ad67730c9c9f8f9306c6f3793ecf47b6f6e083f0f94823b685e8623a8683c178684bf13929258477cf39e92094ad5d7a4aafb4343075d69beefd689c73523ae7fad43646da2837845aa50968137d31c2f85e6c0968535fb7ae3baf5bafa15b2f02f40b74798b08dd0a5d9383e947db9a75d0658264cdb7bedac5444a734e73f41dad9d6953d5458dcf3310be0723a43de01f151f63499a7a38c79b83de99ca8bca709e899969b1b547dfa34e4d095f55d1aa02b5245108f7001095540d820265afa5a007e716dc4fb2f7e4e8a4e71a0a81aeea6c588d7ebb5a724b6e710dd39667bd47490c876c69e1a13ddf409b0b6a374c67a144096649bc0882fb329865818522b59de59a0086c3e17c03f72b4908f4b536f59b16cbefbd18218c32c625978e18319e1b1a93efbdf725dfae9a47e1941052734238a184b0a5258fdc078d6e113d8f64509c4b41793198c6cb196af5fc62222246498c8492aa71a797059d08273367958da74df0b186ec07e6a343e8b61d07d34298d04ccd180c7dad886c45dca5036b4b60353af9d8c5c5ca780f3693b04adc19f2424309886f649c5ec669581927007c426a17c6e68661ce2c93ecb1d07324f2aa6c8e358aa8ddf5706607f0149b49d884c4ab71a73480cb6a2b0dc03e18cbb0a909c0529eca9e2311ca531d001ecfe489110269ab1868538cb1b5d65a7b2cfa482caf848bcb5deedeacfb6d6ef8679669217f1c4cffc60ddca085dba8b5e07633bbfd652514561269983e8b9554b01a53a7a50eee9f906d18e5e547eadce74844c7362c322d09519e3a8df4a9cd223b376ce471301d95cc21720704923bb2a7ba258db0141bab68530403e7871df562737c82fb3e58249e8c02f72dd9735d66d8cb6abb7098126b1fae883414f1482482fbb70c47214f9c0c10bff13ee431b253a4e708131e8864891288c4f92821b1f597a204c437294f395539cb2bca45af1fb54cdca9f5b34f28aff554645d8c47cc6078d173f49580f846d2e853e8ec46c8d2886936740d60c62e1088d94df2be4d6e06bbfbde0edc9660948b506a9b2aca9d6daa07d9d7a6facb5a6daa8f3b4e66d430f5adf276d5d47a539ec3e5e8142be32a36471e19d4cab840d8f6c4c1f45dac90ee8143603862bce58378ff2d713238de7f3f5088939929f5f0517e46de7b664b6014e7793c37d4abd3917ddf3183476f3ddc1eba8718b6396135fa41e0b00d0176c636250e6609a92ff3d38c4f65db9d73cfe1183bbdb3ec54f5b81395f469f4144905c3b1d3a72aa491c8e36410f07e5ce264640ec487cc21b2c7c1f4fb29eedc883b8fe769d1a78c33e35e4f9f1c4432c465d8a7c81a247b1c1798e52c2b57f6a028d92222c0ca58e6606eb446811e0fee5f7127ee64d604e7b8831b88c4ed54bbbda4c51de85c6bad359b6398730f76fb3469537381aba88d094602371e5436790cd015c0c39f10e7dc8470c89f75f2cd482349933d1df52a48af1a774a415673aec6b9a657cd357946240bc2761a6d8218bebc60e79c73242ce1e143496a9ec1f05e51f39396e59c73b33d61c5780333907865bc19c81258beea3da47a3d64be7e413fd16c3821fd02dc43a6b33de487c4734e371bd55b28a1371fd3167abdbaf90557a750ce39638c31c6f79e8455f5b7a90282e57befbdf7dc7c8c2d95142dca2a31032791e32e90c6c39d8ad7b96e13c7c2efceb9f65c775bcfb9571dc618638cafab8cf382dd2b3adb44fb340399614a30750a63bfd373dd48b407a4add1bb83907a9ba83a04ab419d3a7729f7288b51ee598f72cf51a770282a64b9db9e98d10171ce35eaeffda377a3e02c46db1b8daca8d9c2ee2368c1d782dd3b471c9604bb100fa82f673d0aab48496bf4ac36b5f5eec8ba8d635aa3fa70079ecbd1401e7e4c32fccbc114c2f82763e4019f1610c3439873f0fb9c33263f1ef1491a584a99719812fc07e11f74b6c4c32101e4e11cd3c399c16149700ea6ed1e8cd2624be00938993c22945354ad76b689b22e62180cdc0e07dccf0408e203cc463fc360f6f83c1a9d3db71ce717ec42b3a873d6981932e6ad96c5e68aadb3e487592666e1a92a2896f2d41591354778ce97281a7892e6adcb669cc58e5eb2312cc9e6184cdd149b7166de68c6adb74c29bab9615165627e004f200ee5f5391ac512d1a67a1a857a45a7304bb147b027f886fafbb4140bcb59cbe4193c27e3c9263c7d1c4c9fe69c785a788ef0249d4acf2d78deccd298b01add421aa6db13d7727df0e8aad88663309e233b56d4ea8d49a636c4c1b4112ab20da758ca53731f615aecdc251c4cf791f624146a50a89969f1a6f44e0b206daa4eb0a5a67c0f483c25158e6449d223a4822bbac0f1e1218ad0403ece1133736d13d28ae0f64aa2c170b8bc7f8f98c13733fe6229cb366bc6299be7c599c1f3339a8e6567dc25645817eb8365b48a3a9fc3b1582524ce393af8863afdb44d07cf57d4cd34b3d394186738502e7ae9fda6c5124e4600ed8893f1e16d1d3973320130dde79f275c1ff589e5fdc9f2218e74b7bc9be0f91073126ab9b3d426d23c8b656d5ab1f32a4be653502c18785e0096750000f0e2c30c9ebf96354ca61ee54336bfccb4604a98582012c357360391f8aa918d3dc170e2d8ee6cf3e159c1020d32056c773ab54ded2d040b1a7081fb2dc86d3a4d48ebe8087918be3ba24ca899c4449f620bb2400536e03e690935371d1ed4dc749c8e1020638cc5c862643132169d7b2d3e5bf3b5116dea409bfab96d61862dda12266018e1dcc2684ef093d113dc275d07b763adb5d61abb732ddd9460551d3640a0692ea7810e1861bd297132f50df4e6e36442a226d352d060d4c00bcc8ed31b60413422cd469f957adc9b1d245a176135fad008b5bdc9e0fe122d884645b3d1af958adc458ab816841382fb54838173a342645b0a588697df0bd4836e13f5421e4d10d09d9834a15fb6d1b4ab884753af132808d180de34b989906dac00a01780de0a4c3d0a4f6051685dc4cdccc4c4984c3f2b42312b72a080abe7879915d629a7e3823418ac46bf7b9aa65d43cc1f2c0ccca633b589b63584b297760fc6f75a73ce39e7daa57ca3d869f4299ee453992c21f5d425337326bf2c11c3642ae0607ac6896c7b45a6913e5d4560a61e429b5a8433c2efd2489b8abcdb0ca14f2d8a6e4560a726053359e65e7ed7af85447a2db26da761fa4d0a8683bedf80c070583f6038400c47e87d78d55ca30a491002599607c4334893825db6ed54d140f463a3a21fafd9567e6c5ed6a61a6a4269044e79d5c848e388d14d4bccf9643e994f726078eabe022452ad0ede6853cccccb338cc13f066ad014287ba981f11445ab18ab2a5655acaa182beaee35266da2288aa2a87f7ee0405a2604d913260dd3efab66be9d9a81521445bd29a142a7eec3694f68e4a28a418dcf8d0b268e899301ddea5757b71c137a7b9e1008389ad075489090c3c5c970df47bd5d3dde9028086157b4ee11ed09cecd097bd2a44ddda8a8ed4a241b68a3612fb987e07e55a4e62604f7e0ded9aa4d080feeb7271a912b54f704b32b245b4d489b8e5073070922a465ae33f340e409274ee3fe5e03d140f471b74e82aa018a20b5e11ccd2c8fc6ae0808dcc033f65ee24f6df0cd269183d91790ef9a801b8b191cc1dd3b5a9ec92a38331832131b6a7e736730ed96dadb8f25dae35071bf2a0327b83f6a9962b2971c738231c659476d6aca0281a4927bc3ee6dde92bbd80aa3de54490e0c9405a04e8c850c82602c620006ee763130a1698d0425ccb0e041cf0b41c86c6edd586befbdd77f6fa566b29bc1d618ebf6fadd7a505517755a3b5b0d9b772701f07ced3d47575dd4e7a21222548c30bb420956b8020936c062054e42cebde7ce4aae5f4f19595be7c3bd3bca75b3c698e302930b8731e1517121085dd8028df1a240a8ecd449d6ddedc3e607dc7dd6cd1873dd2e3af75863d8c1f7f0d57f570ff70bbfb7cb01b32f1e3edc5fdf431805380c7910c60863842cc6e89c6b9fafd968dd458072061a363c83af21a4a68c8cd986dbbd183b4658821142f79ed2750f57af8ed9a7be7d6fffb9fb5a25032a9acfaed94b869b498898243b4c378298ef47a005415b7d15f54c269335750c003b1dd4570168a76dcc0633c19b9c8c6430f00d0f431852f345b4a9a98b8136f5bc481c4e4739eab6e9dc6b77884a8836751115c0c033d130cd39e79c7386b040af20b2248b2ab0c1bdd96807684cc0f9312ba65024491e76b8a03c5c1879c891e2883280000c1e8db3124de8ee6eadb5eed6dd0600e59c235412a605167067f1839bc1210db8bfa802f7c9b08331dce18b328cc1e4189c59cf02fe869934c47461fa4216baa83906679c1b99f56408e129ad4ea1cdf149e46048a955556d6a43b3312fe1a3951152d0c6f7d326f8697fc8abd2565440ad6b04b628f86b1ebe54bda23e6f04890852d5ce0869005c08421748ae0b455e91578347e40d79438abc22eed76acb0e9b38e79c73ae4e1ef494dd15d436b32555e8e6191c7ac1540b6e19969ed75d154b79aa451262479f52ee3e449f46770f376864fb2253f7cd21108984338333d3ddf12d5ecef7d8a85f1ea87b058d547f3f5ed43c754c3cdf985551211b83f3643c2eb31ea6a4ba8cc9c4b7dee8298aa2288ac22dcf38376e6e17bd75d9a0bc87b7f4899dc5f86b12e3a49f3ec5383dbd6ae8c8b63cda395aa9a893ced8a9f496d6ad2e650367e6232dcbb280b4b43791892c4bce782512552ea7d7e5e67e3fb8bad90613d317586e7e16566e264d6164845e4ae9ad6e651a83abdf1bf9689d368b56a7665c208de5ad9b1fae6e29be7d2e79570882feda2c6be5f3f9fd58b4d5ffceb82eb7744997e5d24f96954b512db6ba6caa9553d42b751075483d44fda258ee5b99131a9151ca1c265e930706ce53245f93e7644ad1fb796d98ef2706c6c610cdeaad7ac6b9f12e9016b58605263d5fe0c9c2ce1490302b7085005c192900ae9e6370453f2bcae696e395328ae6a5b1e52956068a0d9ce7719e160a6b46ba924acf37cd78b6315b6ec48c9b6d985ebaf92452e8fa58970a51a1aaa26ea9f425ce860d9cdb92934875528f383770f58c730387ee427a7ea4b75878d954bf09b5fc4d27d3588c0c4c8c35b91877228abacbcd31b85b5a4db3202e455c1281f5dad0828847792e00a667d900f406a537e3dc6037d643a7ae87f5d0499675ca3e5c0a1d64b13ed1194c1380290ba5f4515a2917f4a4c770a09cbe000c87e8f4ecb5a1d9e8d3f7fb89f1cde61c4cd92df570af6ee35e3d878910e9e69783a905d238745f1b9a8d18e3cdf670d925b589bd02b0317df52e82a9fb842c4ae999c46d8993a94be692b604c54691a520a6234bc52251d5b4f1949d57c2e1bc04b6521e9f72d5ccc6297f78641f6e96f2a05887a7edc69332b1d4b25c3a4215899aa8ca7a5bb974b4531fd9235ef0cd3c7dc81ef142dd4cfa7cc1f494d11816bb6c7c50807d3b630910721adb34448128d129944bcd90bdb905d378f308d3399a6f765e0be7058feec8b6232d0a235f34231465564f56a31f9a1415290f7b63e27c66c3d037a94df43434df43bfe845b16e0ecbdaa43284a85ef6f0b4f30cd5fd399adeeb0259d6cd405e2b43bd7c504c852e9b7af8fade98f8f4e99d1e74d5508aa2d42d4add8af626f42630655943c224c5aa9ea32915a232459f7269c89ad57ce8940342d505724ba15b970ea04e6fe6419dfaa04ead789a479756e8b2a94e419535ba2956655929577573b32cda456668524ae9cd0fd35c710e134d50552e01a6af2ed59ce02c0fa46fe29bc0947a98ca5b6f4c5a10d4ad9b5b931f0ee796296b3ebffb60f9ebd56f75f375abe7772bfaf84a349d0c005e55a796a57a5a4a1f8a976a4c9a0d79147b05c0fa7000d897e770b552b721a13403698a52d4b44e455a86f94cabcf53aaa2a8f7d5a3ba454fd90ce495e24397f492b23e4397b22e7ffdc53217ba19c803352ab0bc75d950bfb16e6e970f0b53d4cd49e460faeb7a75d55c15c4d1462c02cb5d3daacf87abcbaa3ab58f07cd15d35b8d8a3eb532b4201aa6f4d007379feaf2115e35d4baa51204ec5f4e817b1ffe725370efc37330b5b9628a3f80294ce92b9b83290be4e1795b199a0d78d9991d32a37578a1c56047c9085b158da751815b13fc432f28e714c1ecd2611d04fa358329cb8aca280545143a2940c64b31ede618a5d2670899566db125cbda74cb7a460c6e3d5cc69d388d8b8c182119d6c5b2062286b52cb667948222aa1102fd81980f0ef369b6cdf93035637ae848073a9f94ae8f98c16cb6cf99ce33985af99d2a10ac2c4bad938f878f77f66de2e550ed5a40599fe4e78badb5d65acd6c47301f7cd3ee6e76d609390d35c29351b76f9ed886e1d6d1b81ff3c17ddb40196bac7b6609f3c1ee5b2ce969ddba0841a668bf71f692270fee331b77e2d9b37b73770920ece7f12cb1c407641a4de4b1376c6ded4bbc97218e374626d4dc3f3dfcbc2a5e0c581073087b44fa24e3ddf2a6d1a7973709c9a3e2ed3c237d22c0fbcea74ff67dd7c4fdf4e9ef3b277d1ac0fbee8903a34f300fd2a700bcff84f44900efbf27fa647aff0d613862bca70c6680fb348b1ae7ac95c88e93219431c69c638d892be50f8725bbe2590f91b98172e71a152ba31ba1638c87d530d147ef275e201a9db217341b4db21a18c533e2a0e8220dbbfb440b8261777b489b9873cd544471277481381c3af5ebca401c16dd852ecf72adc80775e5027998d5cb37959b2919ff30bb3795bda1342410b7d0bd8167976f170f88d9ed1788646c6c0876ce8e4e2b0b047a8e6e47907076f90d3b65afa7ce7ab63e5bfd64657e2abf62ad53961dc58a7ec3ca9c5d50e56201e259ec2c567420ac8c75e1ed759165b98c05c246e5a1932ecb806012c5badfb0a78aa26243a1cbc387208b7507c29ebe2255ec33b19f6c6d18c6ea576c3d6321fb50ec0d5b1be69dd9fa07c451ae87acca997da3339a8243ead1fb052d08867b08ced1344201f7b1a80111dc1a08b743c17e6215b87f4629abd5eadebfb77286f2aa22faf51175107b3c6396bd59c7d8a9c81377fab18a8e49701b8165ab58de520392c8c1ef82600666b714facd3b7be88a8ed477dbe3a5bc0f2ef4a6c40c0cdfce6ec691f296de6d400e86b7047ff32effeedd4336cb21447f87d78e2bf241c52c6417c12bf2418d1787243abb37a2bf7b439d1d8784d9c52161d17537e39030753ababb7ab0f0a06ecad9cdd7689482f28af28a522bb335dec97ae650ea53ea599437a754b652efca5356ceec0a6b8fa6a4b0a7dcbd07c6d8b1a8a51e78f47655dedecdfb1d9d5d3e587e2fcbeffd231981e308e54675f5acefcae343a14b491fbe62330e098f4e1d8e7ab0fcde9bdf47d7e697bb01398ef6ad9736f4267fd31e2fdb6fa6fec3abbd79b7441fed60b8147fe34447aacadb55b9bc2a58746f9e8acdd4c521e177efe973b81e6cc58ce11fac0f361b81e9abab260587849568925aa31a6f17cb6b58e9c4c5661276b965e513eb1d1994cf45fe24a91349963fb89dc42dda34a990375fb61d7a45cd7388dcb148d8b239780e7173ca9e21b26788ecf9914ee4933e351c0a7db6cc0c85fefa141f0a5d56d96b1846c1b97a0c800b41e002cec1cd4767c61d26d3e766d212dc978eb5da6ec631e1c8f3de6953bfdd7945cdb2670e6942c4a74f0c339a49c2338644c22f48685897394f83c673348dcfbbd81a77f9ebd301eef2d9a77b975b7d22dde5b54f2977f9a84f05b8cb497d8ab9cb5bfa64a3fe506badb55aa3fbe0c3476f76f4149b1b4e79b57906d75b36efc0d6d914915afef21c89e0bce0945f941529ad372711e71c8a44b9bc6a288e85457f588a2a2a72d1a71551f4894dfa047aaba8a8b4802e1b23b2a697b7e987a75886adfac37d20fd87c3abe6a6bc60d253ae1e2d3b6ff002931e4e21ddda2697bf36b9dc00d66a93cb0b60476d72798c25b5c9e5366c4b9b5cfe839d3535a60da8dfa8b44cf7a4492d199a1100000010005314402020100a078582b16840aaa9ba883d14000f9ea0506a4a96a8610e530a19648c21000200000020009120690040398da8027e9ab6d25b93c4e5c2b4e13377065ca055b0963ccba58fff1eab12ba2fd4006d8da8739c6df029fddf7aa43968568e73bef063a273046e6f3bef258815f8e5c0d171a4314b59d1a16b256f274e7f5af38619419c94c484ab2e23b5ed4262f7b0e176b283fb682be23d9959689e54c7db20c9d69a33f9d8a6e8607da24cc08a3694b71fb4c59fd800f94df5cbb471fc6f52b2341fa4bc65b410a1beaa880a79bcc743767ee40a5e57d0e24279944731eb6d9349329fcd8d485cfaa2163efa375ada021585d19352fe0da405d42f7e12ec7b6915a573413c5227ffef1ac09c57a1d5427cda35492b0e6ced8b2508b51e020d8c7edadf34e8744844dddcc223104462619d30e22a01d614ce2df99aa0497d9d7327954ceb00589a949626ef1897262c0dbd1afd6be2066a2efc55ff51ebf131d55c40e07a5a5098b49b328c8b073a5d820325379ec69e29963eef759a0746a512fc58dbd4730387c329fccdf83fa5eb27c8affbbe8dceb666de1e38f19eb52bc4b3584e987b73de5539404d32a2d60d342b4b34ab1116f2d4acb17449d66a29e60ccee9cc953ab3fb4f35f6845a777a257731ec0d35c57b32bd17bd44c291d73daca351b4c27113ab3d33b2448b98a38c9b171d96e42c4c1096de735d6f6c92592fa204a80dee25390c1f54f7e462698e9ea9a7c05e19560d813014c837c1a2e4de3e1abab3a56fd18bcadc6249c12687397bf60ba56dd58ed9d72a2bcce5d0847e3f372d3f6f39b197642c3b580531738d5a4aa3c17622ab2a605dc62b25c3a54b008721a44b2d30bb1221f234d0c3b8f64d3c991a31541c99810d1e7bc5e0da5252b9225223d639aab862d98e265adc403aec9641872f6395658efde5ce013253200753eeb536ab8cab81c465442482c9c93c7ffd027a10bd4c69569dd56fec86cca4cdb07e93d14c3f6eee4177fc40eda55090ae20084b4330b28aa0691d0187d7f313762acbdc5d524c7b57d7f68f66671b7c5c5d524b05c23b77dd5efc75853c54249bdd9dc72fea005ca1b8f64a9d969079d7d4e8d78e0ec0b1fb7e8ac90400064725f65346ff87ced283884db05ca6b4a5d5315a48edd6365bd4cd1a30f37a059c43ed4c52c630c11fe0bde2bfef001c025bd74ec31d4ee131f837632a9eed527a2f783012d495e3f1f0d155bfa7fe1c8dc482ac65ddd0c22388dd3c6457f5d446b3e7cdd122e387cb2094a7f743719d897c990f3954cc71c18f2c96884b2b18e511d6d57fa2b67a2e6bed27d57d3d0d798c8381f86d91d8dc99d9baa6dda1b67a5cc08ee67c6c5c1369f53f42234df3c7136bc7fe90394019228d2da1399cf48e01295269d1bf054f6409332c023b8636863d52367b6a05aa5c0bc574beb05ad877ec41a208135dadac39928bacec167e46622a43026d318266e995e08875a9d52cc5ec288e4e85de996fb705fa82091c7ba667c54ae175f531cebfcde9a3ce431a44b66909e3c55b3d1314b5acf8ed2d03dd33ecc577db4e3301ab3ef416b387775b568ec8fc0a141db7665d3b1133209650658c31ffe4627435f4924a8dfd709c1e2142c410581f44885a74e33a110c4d9818948693017a04027f5402927c0e0aa333f270c183564f44fb90a3953da53dd6b4ce520c917c8e0a3b7ef6d581da464ed38c13e4a0d0b3d34b243ab7135b7147dc587a278574de42fbd9f5987063cd90a8f09486ff3224bf4c82c6f78bfa8f2773f5d016dbd9e50e4635067ae2ed38c7931822f18c11ed4c71ea6afca6476e8a84ed80158038b65ccb19ad617276aed19183631f48c08f62b8e510d378ec4881c474697e8b4631bfe592e504dc47e5d0e1218bc795159a4fac063849ac028c6cdfbbd185c8a534a61abcee5cc3c39acc1a3d9d5d0fab25916a3106884403a5444de54e3701635ee9839df12328ab765baba43743d02bf4fc37607ffd3d409a158071dfde5e610cf4c39ceaf965bc4bd179a2657104d765f10017f987f66c14ebe4f846e7fcffa6bae18e8a9187e701d968ce1324938b206718672ab93bdac95899c5bcc579f2ee625fc4db63bd2fad71dcc81ed8e0ce14ca4084dc201a2ec47cf677128c6d9d325d5d0d4a1fe24bfacc41413a537f15dfece54d25f36e29dc12b29a51845fc804b62e419635f60b68cafb85a4131ba92d048c6085bbd32ec9dbd9585b058a4190ab9432d40af558845ff061e1fa944ff0f277572ff56e94c165e8071a010c153e31a38690892b38a6a8767b43f89bd562b78e47b6d480e454844aa84d3bdb895699c18bd6fb19f31b47a48339d1696d5f1a8b6be502e7de3b103b834bc800df5c2803a506615f3ad4b1fd73625432fb8f77682bf54288c0ee7eb7ca8244a179d57ed7bf630a3ea1ca08c76244944340b15d2ca8536576a17f78e292ec6463ab32dd581deb7b9c271d921102b8eaa3ca49b0407e403a7810a59101edee2c9865bbcc46a501e0a5424d2d3f1003970bfb957207ce3e3348dc186057effa498bd71ebb5ac3d3f6bd80d10eb9240f3cd7c452c4aaff2a79d282ef4c75508a533fa868a014f619bb496c3676cdb2f1449705b3cfeb6999aecc9645575ec4213b5a1287d933c910fded31fe3e244335237fa770ca17bbee11549e12c8aabb6433ad0a349c32278da2cd83f5fc0b6792a9d111ff38af76942f69db64e1b66d25829354879a5a175121c9d5133ff78a7f62af24d25fb5c478a33decdb45d38c71b19f079d915d4deebda6215e2ab9a26915a6b720e4830c7430ef63182050f61e1e3fd85a085136b01ec9291c604c9f57fcf23bbd9a1e1fd7b48e08a0521e3be37c4b2ec1b8ce90397e8db0968c29a4fbf6d3e07d958b50aa7be6599bb392f617353a4e2a3c388fd0997cc205db5ded23c71b72ee322db385e0eba25b75078a77a13df314baac7c975f8aeea5fdd0f5ffe7fcda4bf1ad8543157531efb69530d69e73f729bc82d139a6fa9652e7fde0015f3ac549b450f86b252addf8a3665ead975248ad7cd8dd7a227aeb6f5b056c57be5f1215a2a83903d1cf722a4eed5aac39adb638971190a9e9da3e59857804aadf387140502c991158ba640bb40edfb9181b183dbd9d57a7a763764c2adfb25209859375be7cb813ab8514d390ad476820fde81123f412dd9355f80ceef4889a493c7a2d358d68220124410c32c6214775566f591d088ed316af1b002c2233302b56fbab96a3b3143c29db91d73d86cf0c05d64a7a0026cee621d32e37eb8d82723aa0fc07631bffbef8188bd1972818263a8868f335024882ddb716f752a9058b22c2d57b3ccfbe03304324b7f128fe07be99422422db4bc36e90ad33f6c23e2b686562a1493394fe083230c2d3dcf51cefca474635318a4b002b650800cfadc590cc0b08831661e2cbf9f5a14f392cb6515aaf9973de27c3e791f8bd56284a3945b88dc9d3ecd401a9fb49479ccf53d93bbe854fd4aa206a3232440b799addabc98c62d0a57c2bf14d31827db8a75ed4aa4c85c50dd4acb9b6f32d96dcd62966353547f3c4d1066dda535635427d7f81347d47185e8a029034e5d9d9c07fcc6b3663a0397aacd61b6cc9f4a6ec540a51e1cc3522b53c09cc5c82bb2530465a1200706ab9f7a71cbb6482b45ceb47402862456fcd868e3d533469629ee27f56612e119f8bc93d0cd9a81b467d288c014d191bac37273228f721001a10a6eb4793ea6d23603974f6276e11d3affbc6d72d62c901575dc92841b775cde42bbce0fc847a6ee2483350f19c3440178f0ddaaf34e5722d4ee0fbe06151e64bfc470c2a93f79d25a0086388331970ecf81ce13a57e460be681ab3218c8cd2f6d81a09834e4dea100336de9c5c598966d96005840539ea642ea5188cdbd8ec4cc476ec9b51484d51e5625e2d3fa8d981f24cff86266231c8f451ae724ca007ff19dac8f48e6c009b340294f7954bd2f6fce0cfd1ef87a80ba7a4ea6c636aef732a5d17556576a0ea23db77f6af40ff45a1e03ff4187e6c3575df52e236046f13151f88069aa9a7c9300f6762f4c96af34aff404edb0a7e88c9e841550aa43ff954d6d2690da8e2e90b537142de8210a0f95963c3e543e6cbea5aa815858879569713cb13bf7e103ad74825bb00d0622354d57113ffc4f37a3888d9eabf4cf72a6ae724cfee7304bdb63fa4773a56df3b9a38f5623ea5b352a8374cdb8475b0aa40528acc13f02cc5a90b0c971ae0c9a9f42d525204e3784439dfb3f3acfdde58139ffb78313f60b4e3ebbe3374cf4f97f00b098a0b9b0c3a9555c59c772e4051e50595aeec19fd9da2b0ccce2e925ca452b021618053f50d6ee58bc802e6ebc0951ebeb410063cc8b91e7d36d051d6dfff6e0920b235aa41fbb1b7406b55154e4f988e82139f1715afc7c9c0494b0199b3fc25d4674a6da4de600eeafc1d054ab7ed8cb5f7a8b23ec0641d354f29cea5f35eeda55994282b041ef6e3451b0bf7b1b312bf26f2fc44aa5c020c11f797411f339cc75b2c81813465bced9c4ab4ad6c5425c9351bd036a508ffbf9c5b6518d49f5ab9af2406b51b8e4162b148a7afa4fb22327a08d98058023e4eb58614e15a8acc17530f10d7286a3681adc9f28fe1c21cb3a9da024f2e56cddfa5cde6e79d97a66bcf23e1416053c856e93efff8a8f55fc78553c3ad685391495baddfe7685997c36c5d0b2faa8aeefaeda3dd3bb4071dbdb19e4944c0dd1acaa79b1d49ee0b2f8d4339f64507c995a39b67bb021fb7765fe65db2ac851cc274217947077ccf26dfa663e13ac3564f87e7cb0919d10be131b1157ad1fb41f50eb533ff2593a2020e62e7ecee774600d3cebc9533578519295741af8b7dae6196aca88abbd43a19684f6b66a227af7a090b0396ec92ebb226c2ffe7b62197ef16c19eb20d31b942eb3088a924305b56e746b82f2cf200feafe1c0a3767a55c6b2e5aac8e21734926c42503a2be45e478c394a75c64808b5656fe71f221ddceaa74d886e73b1ad62d0ad00dbe4180ca1a66cbf72b72330cf1518810b4756fc0fbd2c79315693839f3ef16eaaaaa8635826ec3e70df3ccd9cade14a1b6c6c7075322784f9a6cb07bc8ce0fefa9da16b5ce4b3035ba4803452809ebab38fac932ee7364617ff32143b7510160c22cb23407fa1b4644455971f4c7b486a8fdb81ed19b6af71aa1b7645759e4ff6cb508acf8ce52809b768b1ad2697e504d31afe57592e5a82433219ebdd4882450f978f207665c40f2dc9bc66317b0780466014bd658de3b52ccac5bb0c425b56bf931b962a4516e63dedfaefe54282f35333464b4120f6537fcb78734d2b9b922450dc6efbe82d691849c76c03f62775f256db7284cc622a04c618914f7fb68ac5fe5ccfb5555248cfd4c4947f083b56eefe041fae58e569813303d52fa45be92e9e89b108f3334a531dd984659c81b57c85de55f3706bfccc8ccfc8165d29cf52df4a3d8891dffa2ba37401f1613f23a02453d62aaa33ac0f9b3545ad1c4641c571df4cd228f8d395f07cc994c54f57de916cc31b11d955ab5d759f366395546f3416056d25775f0e585a0da9ac4fd46bf24321b06d2d470e20b2f207683454900443594aba49260471e3b4c7611d661737c63d30835ea0c9b135026a97f5dd16383204ee65379ce83626588b2dbb8f3f81bdf3587886ff496cb399d075a3c25d3a26e6f4bd2bf14717915e241a2f6cd7f5250b634a75d06733649676a5caba47bd216ec1fd629c1573439b284aa17f9a7da36992b1a5da60659d674c899bf020c595e8e0b5d546f466fb33cd1ad583b2de9f7dfd8261738793207b09581a10c5001a46b1c7a7a4cff0e474b1dc9005aa895ac1f8ec983b7632076ab693c0b29444dddf7631150064b4a25a6ff19faa7bd242c4c71d2fc3ea693dd90533840ebc39338a1fb791747a9862156de571735055b0e53c454fe29878578f035f6f11d86dd471d445eac90663f2c6af448829ae5856efa93a17fd35c0c0a6a23c0dad9b210e1633c944babd34bef44dba70dab3c930c377442931b26ee10352ffc09d80a7ed1aeb160bc3d9927c7dc157d696d1356727bd4b0dcfb54698d3a1e6be41401d5e3e2afb9612ab679dade095dd00d96fac1a345d5d252850996bea26623be2a71662e62cefd5afce779f8e620998857ad9cd5b2a3250d8029d9dc2be2f97c3dd646a7a758fe4d16a1a482ff8cd3e9554b537f8a4c0561ade77d7e0c4f16ef315d6a1162b9fc7a72178066169df2e27a9e445cc1fe63bdb2fa00869c4445f2e26758ced27a1c2b107012a913791dca99db33a053c6c5b796d2982efdd21ff48926c7bc076e460972a66b4fb3fa04d8889ef7254808c054927b9b01df3394dba06de6d06683e1d8f4178d6a4e6e84ce4544f36d94a31f606fc3e447f4063095661f3a0ae04550e5272e5ea99977bb48b2ab501334206808582226b2a6a1867cd267ea21256cc7ba3fb2715ad66fe1cc507f320a605458c3a7d77a2e58a99bfc3331d9595a43ea2bd82ffe924fcd6a19038873fb5752efa3a8414dd7967c7163f4131568ea417e30d7bd7921d658f6b242c53a94556f248c90ecd78e2b496cb8926ec06abe1a76c5b83a0441f9a7db75313369ddddec0807d8359f39aa624a843f22e98612b9ea26f186f00cbe8f9cfc7bdcb33f708740b7bd0c31002851db00b117407c60974a607416e72dc5bf85d65ebbf5df451e202f115ae0c1ad63644e684593471fe5c8075902576f770c9c341481e5bb84041522bd444a1ca8bf0a76a97bc149b2a2b87f8cea6d43929900c5c9f8a9f2587b1b80cbca9a3ac7cf9cb6e664b70d8562fa32aff48d712c428d352c4edcc1aa6e290e10ad751ebaa0aa32a77a66bfefd3d05f8adcf8f2ca0e86834b171b7c0c985c88a32a7a801d5fae166e41248a008a32a27ad46c7c1d2148622764376b6e9a2d465bb25fb5b94c178df3ad16a0e1228121b6c1ff6caf2a2c081bc738b46ede4e83b6661d4e82e96342c95363b32b7a02c46b85b4651913a16d85be1c9520f1f59799a73d5c9e044518f4ee5b6342828d72eb1aa83d0120d7cd1ab420eb2a58691b8cea9a249c65cf930c69d3c01a0ccc7b4454bf8fb901696e7fe4c4a2c1e7070974603340446b3690ad1fb39f62fcb12f09f4c9fc34c59fbc6e888664f301e844f9868fd048d18dce7a6de6156744928347f8d4a9d9e589462738e322fe312d055873d5040e5c10007035488fc380932c72746c5acbc596045cb7d38bbf2a60c121b64496a63b62b90bc269a6b717057bea478880dd1b98c7f1596ea1dccc0806b9b210af08005ddb48d979c4905c4f3a55d3f85612bf5eb159246e68172d7398d72c37badf6350c3d04f62d01dba8cde2bbf8c2d33f262a165f8686a200cb70ebe13ea3d9a9810be35c05422632d91285810da7f46826d3e5fa82597138cfe16e9328cf30527f78615161e590328481b1e5ff7a87a1d4aec250bf3fbae846f4a9fd4f5e6ef92c2c40db4145cced427894526c0a28da8a5914920d73d4bc4c9d7603b73922a0ea5fab0f7d488d16971143ae19d7267883990928a6b075afff17b7847ef2163498f018614f3bd35fda7428771beee0c4064a306f0653f70d86939f93289bab71579819e7500edba5422dcda15c97dbd163e2ad16d51cbce958914c21a1164eb9095de2cb3193391a46c8581726095decb2200b359c4314441062ed2170eab601d6faa8977d6385f6cf36fd605356a01aafdbff5d0528d8a202f7fb9115a8d84c44c4ce29a226fd8486c91be0ea97e1b9b354202bef11700bb1974bb12e6e2d900dfd2251c7d78cc454641efa3ac8473d940b2de6a64ba8ea28d58b175e1b3b77520b97ce1f8c83ec17bcfb58ffab462964d41ca786ad5c5b8c5629624fb9ca662781fa562d54f0d631920395621fc800245b9bdb06276adba5441baeee9d7f6bc925fa5e5ccb49df1d2317e02bc3056d19782385d3d8635ca428297064d1121d71e73d355dcc9f70c725ef7ecb903d07d0685baaa9a955f2c2fb13fd072cfca7f3bd7350ff38e1992f4f458692fa7779b7ac92b3a65f1e4ba61c765ec1f61048a2a47cb8fc7e5f256f78800437984aebb892173103bcf682aa4a0e18e46d30202c8267f53550efec16a7a38c1271d2bbc1bbe426469439e5090c1b40555ecbb3e490a085a9836a391fce1817d40daf23a342e2befd4ff50195715978c0726fb8708e11078c9156a8001900a56bac5fe2f73c3a3ab40c19c1b296edab05826776c835ca625951329d920f3dc103275b6d38379c0e40cc9f238dbc09243fd9cf10b37a1d360f1ebf7ce96c076eceec06c30e467f02d75cd2be1743c4a647dfc27fd01fece71b173879fb4931ebe46f04aad84bd9f64bdc364683081196c34fdb6a4fa8af39f8e9f9c1ab21117a3575c41472c4b0cc5ccd98a810b3ecfef8b3dee8c057b4ccfa7f6ebfc01209bf3f91fa19d3eeabbc37f8ee25f83170bdd35770275428c2311cedc79afbbc3067e6a7938e0e070da9ad6770508d87d16d94e70440e5b32f275f802ad33f0934444146f9bfad26c1a2805700583ef49db2aff012af8b0d716b461ad99b7561bfd3f39214404845708b4d81e0bdfe5b310586f65b31aeb597b38e827d812697be4c3073ae1384b6f158a660aa6545a07cb13485f0394bcbb32a5b1990e47db00819ddebccea2b769ec2094be0088a5bb31c1f893501493cb63e699e76c4d70b6b94b586d015b50c11ad0e55d60e219711bb7b956c8c0445ae4db568236467aca4f84758480a36d9d1a4de32cff03fe382cb1e40ffba1f6a770bff630d3eda5b85a5fa0422bddc9ab6750ef993a895ebd790d295f2f91d78762578136689e025465027deb61a2f9693f93c83ff175109efa8556a1c7034f54cd8abbf86d9948001a739f8e61d9ab442256d3961b6427c22a71a57cc3c6fa2fd2f32df477fc2e2bc140fec43ae0b7ba9d09c0890f09916b1c01056a60a7422be9ee8b988712a171ef26d0f65a5822d850b250879608f2d4917ee1684c5104649fc8c7790e27ad2f957a7cace368fed98afc282e2340a11794c67a7e2d441c886d1b69ce516bd95c1c9bfdb54d2eadcbb09dcdc5a25d81dfc31b0245517e55cd3c4194a3851968c04dabd15eae42b58d136d8f84eaeaa571e0ebd14a57312ef674e6ed0663b614d1fafca210e69190d03e4a1ff5339229ed749ab186977301453fa702767bc6e8daf95b7898058bfb971387e9570824cdf42fde304615ddbeaccb770f04d8fee00b9ff7d1223053c464bb02acedf57d0911a96b75a52b2a6090aa51ee378f7ee4705ef309e21640b5e45e02b8bd7e650412e34b572a4a9ab304f395f5e66c247f7defbe9755a683f61eda0468e1a22b7ab7f1acad3988ee50d64bee0b038ea766b51185e554a17ccbb43ef0d7b8f2ca8681187fcd78b5ca6fc84300e39fd4ae73387680ef888f972f39a5491e7497467aeef20a1ef21487a45b38fc5bcb217bc3462d2719703ff5051404893fd1cc1ff050cad7345b660ed84b2ee7fe81b6758f907aded61a4c94aaed96a6528d2c4cfebc1020820d396e7911b66e1316dd8e863df019930a422a3233486d7650a0c339e3f385365225dd3a1ed958dae09f953513e93bb922b9a155de1a688b86669d0d9033327948a59c25c3bbe5b1e5ee8a32fffc55497b085c1132f82f496f4a9aa246c7189b0b9e3318dd6558a21c3d6f2d3ef401ecc35920a8730e74a3c5f3de89b3666134a88e78ea6c76e03ac8478012250bf26f0ff89ac23d195e1a03005c64da247e5f9f0b2e122b635c4eb5b3b6d204640f0fe0ae807ab4bb0ee3f199c21262b28eba50ce0269b10a2f3834cb483b56a95805729dc660815c14f2221ff117904f4bafcc943205072a2142a619f7ab1d2688bb001af1fa98a29f3a5f7383bd0d4b39464c404f85871373fcca692e248507d24419e99bb7c285c63929a98b878d32cba2eb4396abf7a61ec75f38fd29b24b667eaf7a4c2f28e0ddf42b47fd450f85c226fe70648a746f83c4a5909a0f0ba5230f42cb067c482497574b0d6285f5f3d52c32ae963ba91d24edb07868688a9157f72dd2c205f8f6bbbe2e94f0e91ee98b083d4f476eee75c28e5b4749ff15bd5d358ac23ca39e2679d1d5840ebb62022df0c57f6ff6ecdfa6116d3dffa7e5b881b5092898bfd1245b9220da2dc83ab8c1946cff11e3b71eafac74d9a5d303d565ab94047303d7ce76ee1943fe3e6ef31a2823e4f830fac956e8bdda0309b952dbe12bdee0178e8b2d9d101dd72c91235499d0ad3c06f31576708647a11968fdb2633e627120cd1c49e1ad76388db40efad58446f94559001ac3c06cde89f18a03391b7de0ea85113215d140c1116f1cdef1582ca093673a66b88acb93b3587f1c4b68c5c3ed6fb09e5548f18c13ba9971e0944b74d4a387a19c098eacae83811a3e7c45f9d26f5a22a28bb56298a76d44860e4613c47bc90bf8a9dba225a4c86e91b15f65610453e5f7aaf161e549fd44fafe860125800d02d6897e2b0fc2e025214146d4f13257241e4b7520046cc1ef1658156931ec23855fdf5ed2773fbf0c6429a8f3855d036c718895c71c6cd9309d15f8fe2d6c82790aef3726f13794e4cffae376e49a8883c6fc1ed9bdba2528e433243d661168f0dc39d1b6e864307373a449c4e30a655df51c991a87f5ccab8f45d83846c24f9a8d6c214a21b3cb372e4aa87774690f3ea9ddced8ba72d388c493696737b8213e5573b2c3fa9686708e4dfa546f9a59e7cb27f4bc1b73238b18e78f8389b91b052f3ef154f2c573c510dba0a7c50a3b7c8dadf2b92c1560ea4267b7c206a90f1966641e224adacb71eb368010eac406afaa1e970c9a595a293ff5d355b87fa5fa446af549183de962d6d57b300b10966555b063d4f35014ef4c1481af4c1cf99148f2c05d932561af098098b102cd8c023b5a3752ccddb7efffe1dc54140958dc4f4bf06c0106a0a2ca93f221b6f585555405e3d879e82bdb9e3a342aaac4a49902feabd766540bf32bb2fe78ee5aa4bc4e476d6fc49fcf2c381b38068c221ff988d26945bb49a2e2efff7f71ba4ff241552bdf27d1cedf4073455270278ce7198a7ca74d3ec3b328b04ff19078b6ea13e3f3874accb0e11557d141405d393dd012edd99628fe42914c44d9a4bdb53e79b7dfbe520201b052a62f9d5a40bc7c68258421156817c6137006e101a024dda4a347783ad786abf12fc237540802e8cb33e8a9a2d346c1111fdb49b230bc217e67d00125828137cd6f29972cd21334204e1d6adcf8e02076ffd6e67ba27824b0088be3014d8283718a5b651884e5aca23a67550f36ea0dd0adc21a0656a7ac2f059a51483bc62624cd5bd56525d2613df4e8c12dc2943da7c77d925908f7c742bbf2fe75ca3a12fc9d6165c20dc60130f63f451b30bc313bbfe103b803109594e92c62e44004e7b3b83c0b98f2321a9872b3cdf48d55e87a15e251e9cef5f452564b977528b0d20a3de9b46cd15420b8027b4b61eb3620ae4221e82c27eb8aca81cb6c7a6fce3456f2d60b20b1636f4d7871f6065c83d0ff00095b893dd468a3f70751afacf8d1cbdd70d0dbdd70d14fde78d1cfd876fac24082e1370de0740d4c7eaf0d7f9b5d0337f9911ffe926ea28067fd6c922fe4c20edf91abff0896a012b60582370c87782efb3a1e0e92d9e230e46e1935ef5c3b19c08f1313fe89c3e3ebb1d22341a038f46e99ef83356ad3d60786781f33273207e552b099415af7cb8cf828326c32e39d53782069d4e921b43ad7e081e53b8ba79c3380edc9c5f3fb134a292cd4460aa4fac48ce909f17f1edce849b1a9cce3b48afbb1dd811e4e1adfff8fa110797e2f082474dbc48cd420d7d11596446477f7ad69601b518149018690e990ef950825b4345d5cc7d9e3977eef9d8340b031e9d0bf7fd5a8269c216a9e2aff7d53427d00665e399a3e04b02bf4a5f41b66fb1d61cc00419a73732f7d65139a0a88a7cd6d81258f460d94b0775ecd446dab711853d64e1ec90a9bf90aed4548ac27a4e7905d234e54e58b42361e130dff3f5bd09422e6b57779f3da3aed72a960d885e65412a4d78b4f9cd8722105ef22ba339d6db293e738da2bcabbc68c571f09edd2a231c158ff7ccb263c7960eb478aacb51baa26a9e4da58cb84e0337c8da197662dbbaf93cc2a68c8367804730feac252e030c6e1389b3ad84508ad704e94f6d92153df3bbf33610867fa948c3ac57fe53049939b0a624b83183b558bfcc5a747bfdbf40f6ff170173f9580c1085d4868743eaa1a8b05c20fd2a4c7d57f110540e02800575c06c7b7baf8c62a6a4c937c163d249bfccf072262f7ea7c08d03e4115fdc17c548aede7833a2bdd1426efcf645780a40927a7f2a566a5763fc3c2bf34b016381132e58b362baae69d1996003cc17eb61dd2fe7294906279d27e920eb38bf81c9b9676b52af164f9a70d3c17688ab5472250b8d08c4508acae54cb68c9a2e01e7de111acab98a1053172685e31163b9a016b2f47e96d44ad499c32d1e374e9223cfc927b770e63c73e825cf184445ade2cd7a8396d43f7c59426edf428eee4e5dd518e432de57a64deb4a39e23054985da9b011f217a979a8e80ffbaf5e85b1537166574a913a705ce4763d3763a36b02fc94db4df1a885279560cd5a1e31459fba62fc5a6f5480ad6a18fa7eb23425874c6d53bd8252c91a3f048bf47c9dbf9bfb1149fd8cc7d134e152bffd28d0984fc775d4d28e5d0ad905957a3db1b24d93529108851c39d6558f3ef395622c2cdbfdb526da4fd408cb85f371948fa5533c480117e640e024bd6fce128a5a583b6bc0fa4c0ce0807ee80deca2f38511f989fe3ee22c59b34060b6182bc3705e6ed6fbd9d45ec48f07dd25be94292564092b3850e8ae1c62acb48777a44f837c2ae5978d7708afd6e8cb823b609dfc2cb252a54c302e79707cdd90be156ff8e452fa1d5ac676e878c48571f63cd1984029a69ed152923c67a7b57bbebbecb29242bee40ea54344404315142c47f00fbf70f026a457ba483ae91a5a2020a683917d247389c5204154a198718c946ab4c37fe430198e2d6a8debb527a8c9056ddc94981d013c12da7ab1bd63c4ee7f63157e1f16e052c706751d8cbe48dc8869c37d6cc23cac7b972388e8a3eec871788338fb76c9acc21661bfee53a6b0680ae14064aa8b9d55652bb85660f227300deaab4e45a29bc45214bac274e6a6b3085f0fd6c4fe9bd2b8465f05d738db75dc8c257e08897f27e6b9fa251e2264dc2caed419bc225fecf608f080b02cf7a47c145603acc50723b4f8e9ef834478a5818a304f7c02208f505626edd87c87fa3f045c14fadf58de674d364df7bfc9acc0393ec8680aac8e3747c3638ecd1e86a4541ee59865c85c826f34c6654a94c189099bb86563626d75b7a41fd6bf51d9b734aab9b974c0e8bdd577e0bf1e9a400602e07720fa0d2cb90a2c11d1be9dd1cfeb9bb09e9ccdecc8bbd050d523737852fe3e79b43a7f20e601be78731a7688edc9cfdb1bd33870cb7fb3eee79a91a65c0b1cd3d920c3b8d4d124a4461f1c1a1357c0cb0499d7ba5a6a62a2922cf3806263c8a684594f89a80a9401bb629e3b0f56bd938711e5137fd80866167119d7990c25f8232433cf696411de15cc6246795e2aacd8dcc08f60106439775cdda05641daf71c7503dea9e4f28a4cc50f0ffb413a1689da2b751dc74d483c6eccd082d868691997a57ef9113c97362cdf214caab72bfb8bb49f5e71ea8196ebb85a7873a608b39729a1cee80a1514d64e46344d8b39db9c7b451f7ec9450de582c1e6c281c0bcd04912c7eeab4f48593d6060c6b0c97761871251f13474ee46ad9ea38e423322e0cadc22fb276e76e92cf05be641ec3904fd4f3e8dd547859f001572f124f572337b7746189f59f711d384a322298c315aeeef949853bf00836bb82f9184cb39e4dd7350e9973cc9bc2d1daad8c06dbebfb3a3799f3d26d65612704995221ae92ea45f937f6f65e37d91edf8e39c725efa64b6e73752b23d760df05453241e00b451dcf4f8ceb3d2f0474f7b0923e221269b08afb7fdb655e7eec243b3393b5157cf33c1f5f7f8fb70b37daeaf1d08c7a9b98580255100443b34cc2ccd0e02b83af2478dbc2b3500a54f6cfee3f99bbaca3203f2cd3b367e24889315c15bc0e63cf103e79d6e72acd40695da13206f1eb30d98b806086194d771ee037069e7cbf4b891e0d9ffcfc15efb6c2276c81a813bbab1bbbf1c364b12857e1f11039f48ba8b5660fc8ba9c96efd3bce92d7a25c2b0f2ebf71422573af4aa141f2c366e2be55ff171e5da9326b6c7dc0a0f410bde14b44992e2173719de9f2d32fa07da864313d456f3c712e5b6789f97a217cbd3085408349ae2981dd7ac2c13a1c012fe3d717408026fe8f3cdf70606f2d74fc1d58f5e6760412d1c9ddea06bab3e0ed50b5710465d5ecc0da1907ae36a947d49aeb2daf97ad23b0cc19073c9f59ee7b69c4568a2d9759466ea7eb8f5639bb7ae17e8a3d437ebb345f3556c07778f41fd4fc13b7f8951c4dca8b18ff47d9a16b1efe480fe84b930f76b67035c2ddb75da8cf54d61712514a74b82e694e1d263d61be4000b6d05d94938d4d9838ef1f2122257fba1e697d8c5be138322c032e385516a72f59ea2c7999b22b40cbb6107f5876b4272dc39153e80d4a1b926b1214a57f6451a8e3c765bc7b218b0101000f4d3e5e8021eecd57fbd5ce4f44d3ac9d067ca278a47c58f6bbc50cc24a2912f2eda27a5e9e48e9441df1fa1ac9d4864e45cd59f4b501e159342769b25c671f253dbab871149773ce14caa04cee2865ead40d3370f7232c7405f5c9c5834b7adcb031322d246f0d40fc98e22192bd80f62d811e73f85ac2b9722cf512d2dbdf216cfc847d67c3639c178ff1fb4fca0f443e413d6b818dbb34e9126f1588003a1f5bd8bfef42108ec7d3c8e2d146b77bca9469ce0cc8844672005617768d0c44a36f13750717b78acc030878c611c5b80c4731246c7cbb4e9867edda22c116e1794918fcb11ce2573d4def175738f86ad61450fa5632eced3e8a2886dfef6326a851fccd2766ae819cdc3c5c976aa114c5e59519f8f131bde7be99a1b58cbaf4e134c71313eb74493c4b381fb46a82df2236a682635f4bdf6377bcfc53f11981dc2d09c94e07c4fb93484a4bd1d1dbebfc082e5175a68ce9569c94ec93a58990a9b4590545cda36082c68296bcae11797a8d95ecebcb8e82f84f65905514db85760564b2c7a144c1b78dd95072b79b9c2da104d985ca2b35f774e2b9f3b806e74f67043d64604e8db41f9cccd031656ee2e21f8d48483b22ac76ad227d266314cbe76bf843c915d9f4e20477304c0e2ee522795ffc8f65c81da830ff1172ca2a6f08f9a6a7c6aac09532555364724082b8eef94fe7c9d04c9f39c47839908eec2e2c9a3c6d76bd4e82596f3b307f0dce75d17addef2cc719632eededed4f34a5d5f060cd81c08e9112677d2ef270b76213c4e2832e795cc0c57d274f16a9b7c48d205f1b619203b7c0621c22e7241d1bbec0a842826e8131b39f9e3786fa6d12a3760142d401727edb5b89cd91f1833b777ae2c044484e547341d2bb33b2043ab74c6afde3a248db4c6d87bdc1a862448aecff2b2bad400f0228d42c97eb5db5efa6a9fc6be2460ba81fcdd3669ad1e8b685c5aced90fd40678851339371635bd378936866adc7b98ee2e2bb5520e845510a1c2bf4201e0a28129379a05532a054248abbb6c92d3fbc86ad1b51050617bb45f3947f6203f791b5862fe86419f1d8ab8d563816a241604231b47dd69d284fba59431e8650179e7ece642d292489edc1a8e1d41b1e3077b26c6ffb47c03131cab3503aac764ba3c7a480e92cad0f006aa30307c70a6af6e8d6695b2a4c4f6291bac31ef6ea87ce954cf86a79d0fb62ca468e96f5e0025cc86682193b4034b8c3913870709fad36ba9a531c6baa3ef7d6086974963bc85fbed62993fb9399c302737c27537da6496acd0e09aea1da22df4a964860a014e5c47180ea17362670ea00f0abb33d8ecbedb0aa85a0b31bcf6cdfa0f1b65e589839767255fbf8fcb52b3948d0fd9c66dd75abeb41e00ab57252fedb8a00576d8ec05577a878a5e35f3c42808612d1ac5b11fab778442f6b13ebcfdd8f80eb46d3807e2a44429498becafda0fcfa37ec9e15c7a53b320f5879967c927092fb321762c68940e5b85270c1fd2f5a634c27fe6971cac90db458d58c6446b19a52d5373eedca250e2a45fcb9b4bd9168b9eae817969874e41d4566187665ef643ea8117d53bf8841a8fcb8fd208f8a319ac08220ef142c79a4a02ace2af8dc1fa062e0bf3e57ce9257f7d0e1596d80dc9b6467b897393c871f8fa040c3f237817bfc9321f8b8cc85c1989f4055d69501b7b6c844fa7345d31238e2344b42c7818745a89cbc2ba1aaa7401d9ecb7dd281dd2bcf67cf135db7511cc6d7241ae645acad8f46afdcb7c447d32921acf24c4baf1f240f709eaea8b2c8f88106a306eae4e4a55847be7c920677193672e63e1234edb0b43afb1df96d0723aa07f7f34cccf03e22c9d6278153ef09ec4b22e1873f800d6576aa2fc6f447caecfbb9006bb1e6c24b9d74e63a09c2aaeb830f0c2c20f752159222d64b67a3eb44b13fe8043797f1db5f8e3030b914a8aa1725bc8a05e205ce08cfcca998aadcf70814359054cddafe39eedd1dc03dfd1bcb6b553507fc60455ef3137d961639fe9c8b8e323f04dede35ef6c12efa460c0dc09a5cfe5e2543c3c5c3d9a203cf587d893db0978d3f060b3d9beec6089ce62e05f514742035ff6c0a234cb296b5fb49f8a359bab8e7ffa498be6019e7033315360156c464e733cdd802e4f8e48bab18078cbaad2be7093bc89033b71b910c712900258beb09c9fbecc24dbaa0a8d51d36a4683b9ba71c21d249c0981add0a4979d31615316fa863871b83031897498a7b56e74413dbf8c66c7b6883ad791ee0bb6c81f9096b1d1963b7d118fa3bc9bc49dd986b4a5a1a998bab89dcdfbd4f151be8057c193263a85d033fa8b02f4830cc89507a07447f0126da69c1aef2104098fcfb394c02107e7457b29f9c9503689080c7248964f8c5eb4dff40a865b1746e70a691608608405c3ca19643cd5b833f092ccaa9de596229bb0b3651ece554512044eb9b38477da0e1879aaef4caf6ffcabd19b749ebc7b72de042ebd24318723989905c48842a27702462ff0d80f8f0a5e526ace117c2dae4e8983ecca13f5efb5ef841e020a7da872a4d40c5903f15489be5d26e09de1d77382eaf073444880adacb7d4e478efa1d0f1103a4cc8928726120f21f46024d2620fd524dce0b254cef23ca758b44baa8c537273217c182180260b9a1d5c56f6655ae201dc38ddaa36efa0d4e89d937da0f6ee543c6347bad123e6835a28c2baa8a81f449ed6dab207596f8e07b664c6c484265620c122ec208ae4d95cd604d6798017e7660a49f9f6ae55724f70fd308d288a1ed5845bf7079b96edc1171370ea5ee00630906e05b4dbe3608cc8fb7d004ddd9101a97f1b390adce686ba99c3b404b868dd4a430e0bda9a85047663d002640e93b51a01a3bb6990a2d2d8c00c715d9c318c22370ed30539e0da28ab55dba19e59b735d502917e5150bf4e8ec9dd92bc928ed520005e0558d8b46aa69ce2e4e3b4bb0df8275125cb93340cfb8ea8766a8949aa36384fd29136c5db8f783ead93ac19a7f3bcded0ba579a04cec97a988d27599272c873804d0a5ad45641224f8ed9003e5629d86a9087fbde59c177075a4db4f4429e3b4f6264d07c8c6c23df0e63a8a7d7f1a06df3f8080046629e46afbaf6f71fab177433c5f227e844e22bc6e9a5f77df13cf15799d223c84d7eab36e1e5e762a081b99eaa96b155fd2dd2adb92426d6cd863f997c580dae35b83bffd0151278aadb928ffccecde1e82fa1bd5ea2171ef95ad4663f67ca9d8a76a618b49d3157e15046dd12b6b028abf232fc524fd57fc7e94baa8d69b2eed522acdc987c67675d64dee114fde13c4bd78a6eb7f0f07a78db088546491abdcd17dd611e92f37d4c076bf01556ba4efc40207094619504b4a18459955fda9f7d45d86a18cde7a763704cb4d37ef0d1de7cb31ce574a9cbb588e1c23c0f7eccff2e370b17e493fbbe794cbdfe2413ca90e6f669471c46568ff0832348e70dbd42ad840b7beb6fe4c3b37098412def636281d653f46648ee03083fa570785f496a1c20f001ff15fe2f7b1f2be8417c4abcd53b015c503b03306e94fbdf6153ccbb2fdedd57982a13d61a147ca0b49253037cb3eb5123e85ce0ba2d1202c4979352a496e19bcd69c24666d1ccb9e39bf95f1cf32da0e5ef65c5173e8f8ba6723db12b8b58757ea5556f46a6546c7679c45c59c382bace05771d676d6bbb35a37bc7782520f429668c6d7fcf4a60ce4cc19c637d9b81a71dc48c398a18b6af312c9f8032d40afe4431229977e152c583b0b47104fee362c761cdd5bffa3ef018eb5a99ddd0874d84dbc63e472ab143827c8376f71ccf6d64ac9b9ab7fdff4e08e4381a10841998c6145365d0d90ced34ce4dabadc2bf2d64bbb422c1184aafb29f7153f474ab9183e476d889d02a10345e8473c9991ba86425f3a7b1e3386b37b37191dfcccf91807a3fe146feed67f39b79b333f56d1dbd2b66ba4251d4d223f142626112babefd1cae82c1ce63ac169db7190e885e4d64898e039e1be0f5ba71a77fd52ebc093722852da17a84a76accc4da707976219bc10bf887278f505a9d3dd3b8b6a6895029eccd6c78d87c5a5535a855bb6ece5697421481e86696f347f935eb08a10d1f2be64fbcc119d2b4f4f52b6ce17b00a5c250b767d56a0944583966cb006fd8a5d515d8a073621462d3a0dada075385c91bdfcfbf7b6487f10e24e98fb38a7919de0b04452b67a3a90696ac5c8dbf9f09d61d0473906035180879bed4739ec9720d325041c63d58e1360982774a9af7b1f10f3e6b43946838c914cf8fd250959849919de118e98f003eae5c99fa1f70ea8f491d0297869c3bcecc16a01325c8ad25bf1ebeea29d2efa6c6dad8357bd334dedd64167eaabdaae609ec50a3b49fab4d483e2af589ad08c0e18f0a7573a8780ecba666ed99f0df0472ad8c47103b047b2004af67d2e8276344552f6a95fa5068e4a312f64a34d8440ce919c070126481b868a1a9e97620eb347176c8b1de664db10ccf86858784a6f3d1dbbc6e249136af3da919947327055d012949c82cdea8dfa2fb22bfcbc48d018d3441cd4f57ef2643d41eb098437fea58d0c70f6a217a5dac148bace970082fe88414eb7225e8d5b0a8606bc9dc378ca21bf0ed521d3ba0fe8d0a6c69e50b88bd59be664e7e81ede57c3340adea2dbda49d12a634e812ed015a6e33d3074bbfc2efe5c9e2feac8a08a200dd7fd4eeebc2caee993edc562a2c70606e54fc371a8cbec9949458bb21d16049a35ab14772b22ccd4f490b6fc787d93b4931dc2f1acf6020f44f6798d2328094d59b433425e57eb2f085c8343159a0baaa167d20dff14ee64210c69aceeff3c092d903f4dbff94a33b14d47f8a6595e67d6cfaec52e7b76258717ae9f348ea8cc0056250c72bc3feca2395b34041801c31ffc6c831513a5d9167a6201f92a0c5835b7c3a65de42a7ea04055ce11b46557f5b0c758b2d5a51994368d79038f8c248e1bffe8cae12095254f075a1a42d8d3002dda8e90743a53d8133729f24bddd85f9d3374cad95db2e4ba4b1629aaf29b309f7f5b30385c18218744fd807e2f31d87e4f6334855aecf157c172da53e718e0f1ed3f4dcc313060e76a223a93bc689ba4bbf179c48c6ba2650c8fa808986efa84b8fded5493f206ffaa1d63aee6356900135bb05eb231905fddd334b7d06a0216750c88086ec307d6e9e40c9667d6fca231e6077136ecd023a6db2916e58f9c81c51edfb936e9d0b6b018001e3db9fa4cda4e1e355376cd2f5676c1908bb9cdd14b5a2d4a7ad483eefe709f3ae5897ff038ef36e797091386a6987978a63206b8b8148e56ae31c2b46f71d6b470974b0979b910d19a4b8e974be583ac191504e8ac102a4e696c8ab11623addc043b5666313fd87110077bfefda7a46ce9f14053c70ea7c79c6336993b8054a0399ebca38ec40ae7132d3ddb8f1681b5d731856c78c270dee34f506d48b1dfedb7e31621aaf1a4128ec8e154cf58d898b153165f66e97357a1c058036e0b9f13760371a1132bff8777687eceb24eda9fdb1ee11653a3d5017bb515989c0efa03f1addb12689bb9614320c28bb10d98907f95353d357145e25dc6239ec4f38931c9da5db99f2dc6715939695d8567ce5451501ca24164b2f44075b561a8f301d2bb84b6bfa3c5e520170a1cd38c2f192b915b6199877f23c079c4156149e6fc8d55728a0d58927ef3b72b43a45e1f96e16764601fd7980e2303eceedc9a50bddda317474299889401f473dbe0158da3263242cecdd7fb207c0f0fee6ff6781e9308dcca07147607ca4566a4f9a9977fc148f3460c5a77833e48b13401603adfde93e669d20b494816b4839b19de663b884b7adcba8e43b103985d570f0c2f459632aaee41ba753563b8463fa419c7c5aff10d72b780ca0d073d2022bd24f0a59690e8a52005cc13edad7ec6860093ef42a2a8d3e4ea28ce315b4e718b195714fef922d6bd97692c90c64a239339891f5110786e943b59f4db8aed5d152485a0e2238bbf8d903f51ca642741fd942da4a1b118b49884e68ebd06c220d86212b84d35b1be5e1ee7360c1cc53a1250822cde4d915e098735c499ebe9e5dd7cb38a12d51d9e97118087c1006de1fe98297cfc298a4140409f112a142dfa45c890db7ace87fe20a6ff9059617bfb97d39593a15408d0bcad7fd65356e3ccce4a9680696e0707facb451f394e83a25019c5b75eff65ddbefa49fc867d747183fd37da30c5d53de35b9bf243c10325e6ff2dc49876984b693520c5c4abfb5af6ac4332b4decd7db66fc0e8a273fa60ddcb51a403dffdf0aa88edc11ba306654e3a70f79524ac092a5929f0630ea12cc417b22b3840ca0dd1d3e817b3d5d3b8800a88b4e3f4b331d794d2a5c54ee3adfcb233cacea740ede77b44e26215f249f0b8d38f6e3d8d12f7605e7f984927a5366793874d74506fa412c4e30b32c7256aec3acc68faa1fc378954d9f8d80256122e7e32fdf719e056c43c4a9946a3251983bb20c7f5a8f9db97783ded8c1c9e3a2bcea40d0d858e2b5a3441e41e722b33d54b91a7c1fcfa4dca4df7f88876cdc383d2ab32d86bcb2354279a5a46e6644ccafad18dc3d4de0643ca439415693bdfe387e567b7d907982efe5acb6bc4a53db0ec453c7b22239dc84d5625a99458a9356732778215cb0b13dbaa6836a143fdd9d85f4cb8716e1c02cc209371ca6c30531dfd58bff1d27c519be725b6f0f971da6c94fc7d08206abe6db3f01436e71a96bca23145c4d83d1d1a83de37238e8aadf2270610343dbaeb3ea3b06ef2dfd4077ddeb5bb82e642b3d10c72b1d61b514e11b24df4577d218c5e6fdee43fcb6f87ad6451649973dd72f483607b08facb682e3c8c64247b5c7c13c74fbf2fc52d25adc747faea79c2f13cf6191f5e773a397094cdc510281427d3b420875391e9cd712bab646e883d4f704b292173dad8f5354e6627c3a9065971ad28bd3212d184b7f9890ebd3ca71bfcae5021efa6914f15fed3d441eba1b78d211c97f763dee07578edea8ec1b6403cea4f0251548fe88e93639aac48f1a49363512cc4bbb116f33751d91dd7a923e46b5a12e56859ce10292e780de87e5f55d3c18e4f877fa12e807ced626a171ef32593d5910fb8d0da8dc6a9552622fd9fc57e49f9cef603ad8d99b54d5cced790357105ce027be123496aec38dfffa838a4b939e2475e983f2c7719a5a502fdd22d78558a4d2fafcd4fa76ef12dd95259065ddaf0c765a85692b39406512d4704f1c717a65e5d6ead9ef49be6c92d34e095cb365b58da0bc6ab2ff4f5a3eee951aa281364727a66f34a9766cef45997063c7f0f07d0a30ab813a4b82091f8e551fb9c683b821e3704dc71fd699337f43e9025f019b8903cb89a339325ea5d9db68ad9d3f71a202a9b30dc4bc106fe4759402d027ea4fa2bd9cdebdbbf8a36fc142fdedf18f92e2afe193c6ec6a02d873d12e0b471b7dd3acaf2b83fa2158f4be21fd3de9bc09cd9ca06a1697d88c78435693b0bcd3976eb8a18a854df6c8b167435250e69525322d930c3c01afae830c554193a0ece2eb8bfd70f7603c961991eab28293ef7565ef05ca2d6c61fc8c313ff22cc2692ccffb840d4a74928111e4ee22ba5ad8ea60a967c3c9be51d8be29b2b47215d8276d2038058edccb199b8bbf3f57859cc8af1b179d9597f25d30550721d8f5bb7235aad23e192833abb72cebd321026a9da00e358545905a54fa365c51a8a528b6f174eba907f5ef197180e6bdcc6517c3ef507c9c3fd0180cea88176ea004381fea08b7f525bc22fd3a8b1d74dff320b41f67be0244c19b7793d7a0b9c67b7f080726f754c79bb2bf3a07df660e9900928d1812749503a852620cda0e40ba12da519632931cf16cb072c805f0069213949772566eba807c112e4c62184398ae063c97fa9ac29a8fec08b3bac49c840c4cc48161750574619bd05a4c97d561e3a090aa0e70937d5d2576dbda5795259bc89c27d680bb3199e6134ba5981b98298b7db0166b5a8e77f4b21363e5b9320fd7c97b3bb8d3d6926da8c7c6ccdf22f98bff72426151115b9ca78a85b6db4bd2358de408a06eb22cafd15e04f9d7dddece882d1186106bbb817dc692f0b11e1237d8d9a4dd455e5e359c7b4c2c0470b69642e97e4ed517b9fdd2e5b4aeb1b73d8aa5eba9dab9c0396f523c909f684134964b561be2f61c4b52d4e9e629856b89bf6821813bed03120ea86f97248e9bb7052f065ad8a7afcbee743db1d1ba24bf7101442ef803982a8cdf0287d3087e30a67653e8ff22884e8b50ef3ce65336cc4960e164282dd5e9b5db03d29d47a01ce69c6196e2e154e55762f25284587bdfe3a02030f47b99db21c9cc1fb285f803580596c79fc3aecfb956a037985e67c061d0fecea7854af7d40d888abe143a85fa959aa9d31c479e32570353c7ee462ec7983af8c6286c24d27691515aee32e50aaa6c0b28c20aababee1909344254995898cb31cd95b082fbe54eb0a87316426ad5bf139fc20960172477ed8fd66f867ee59d5929321f88942b0bbdbc527eac19c8bafb0213e4008392797e61b1c1f4b6b01cc94d2e2ba91f79843d79495f565880f0710d22159df30414d72a09f512bd49a95ffeb2ecfbff774a4c7a5125a92586d9ca142b2e9c163b5b332b26fef941cefaf15ba96a21bf70bae889f59a662dc7d7f4fd380450a8d842e5f557ddd0c703d405dbb943b54f0dd11d794923b0d97b03424f1c3c758c88bb00e8361b7be67a78301a5ede7f8cf218277e295c1ab0b6526210ceebba3e6c572e45a074c920918c21f6f6aa4036d6c8ad7263bba7a268abc62da35551fe2d3830636279bd3fc18ae2157b8b027265c5ac7b8c296b84a100acda316b5cf8989b36b984049bf52e0b58de6a790f88102d2e0240bebf4d0b67a0a4551073925c4f199330cfcf0a96a2886380dd1cc492889004b5c8ef38c9ec58095856b116977ccc1565b3566d6f12bd2ab40c42124788b0c901995c112f3981b56659302777bf2d45c12a68330d9ebee6b47efe99e6904eaa84f94e83268bd7dbefe599ffdc4505dd353d191be5d49ca9c0deb05328d7ea00f37390bc418b1a06e6ce7aa72705ff0eed84b32b96f59cdae38a8624c62f6827bc7cf337ff0ce032212ee46e2486295cccf205ad2dab5c05cd926d9569909b10f7b3ec5c218cb2efa38c76b1f45e08f603bc17c1d361336dfc86776529dfde4468fafd7e6c39675dc773168876864eddcf951811f35f0e24d6e3ae97df47b62aec6426683ae0b9a8d296489401b1954f20e25524b84755fd1ac906bfe26925964c50b87077d054c9208e9cc52e3b0fe63f3a6ded6959d32f76aa250dbccd8b8023e1ea7fa7c47aab1438d94c937aadfea1e238c314f4f0c79338d6dbba07214a411a53d75e4198107c2c400a1484fa56aa9fbbea5c46985c32971924468a50cf2f60211d3bbc6239846dc1a94dc42e33d0318b78b5c303b052feaa0b05b4fb9ab2e13f058282b184a5424800e56edc6ee54a202c4190d7a996d7a5f611d210770b479a411fcce1a290f3b4873f19327062e5230b40d748192c3834098f060996c29f6c16b36c53c010cf9de3bb4353bf1087626cd48c2918c2d9e0b797c9868f89e08084a503fa500281b2ebb9f0596220658db6734fd8b692f7203b6550197a66e5ffb7430f148646e43b6e7a77e409ccf803c6c44265c6289efb9f857d62d852c1be1b03a0e3fb368626b74c6822de63ea1e875987321af157051d8e40baf8428eb45b27fb4e0b90a83ac4df03c438e8903970d755561f8a37e8d0925aac9e6624518d1850188d203ad92a0043de911ce8444dd91dd1c026529ab198bde7d2cbcd3c389ad66c8db583c0f87742fb620d99496cefda0134081a92fe3ae2be72dee2e4e3f80439123a7093cc32946d45fe769be10a812f20cd99e2342a5714702b46b6da02b4ad8125abbd7cd35753a4f1fdcf1f3f7f169220ccd1cfd2220b85e165aa5a3b2acce9b48a3cd109b6232ae8e9194db5ce30e65def044bb04c3f69af081bbda46c1f15b9a3c71d470595cc94cc36bfa817f7c4ef12a5197c5101365d506508683aa5630e69043183256eed21370e08b6a8591e3ada7afa3848496e81ad5e2f5627bd14fb6adf3007b5d56d3cca68578f3dfd1c3e15d889edb828b737ca9c339ae2757578d0c9e6b994c6c4379bb700aab8a9cb525a004fc027d07e1c3d28419f3dbdad4f470174c05bebf7cd1aadf6e5602d91ca1490332477fdcb702f2ab04d0188e3982b1640e0ff463b01427d84dc1128935580ec945c71b3a7ca38fc0aa1ab96273169e085a74346ed0f81f7dac24654ca389081b9af67eaf7c12a44bb472d2765739371cb66a1017296d64626964e0767fadabfc5804f8b7d990fd210b4f9e8039113e5c671bbacfc5c4266ccae6cf9766488181bc4ec3885dc46291e37781974a42918372e406e29d27e0251a36d26c0fb104ee43ad0eeed0c61e4fb4a030b4f7ef2112a7e43c96731de9f98f85cd6d40cafc6924db7d22e44ce61348a42ed8e3f20babd2729f55fcb2586a5ac3b669b17856c6a74856dd145bfa4e4ef7fd9442aff3ecf0a851903e2aeab116a417c28f58ff88489e1d4a51b88815aa4cbf20fea95196a3e95c75817a4d997a10471a3d75e7d16b78eba3b648acad96130830ea45693b7504f1639f23b001d9a5b937dc3643008784f7421bf060dd9f8323d63373d8a5fb243cf8caee062eddfa13626f21b52a841cce5ebf56bb9a0c508656287be9fb620ef8ad66633d004af8901bde2b6242d272e78df37f2edf0feb27087a6a3c4c815f95f62bab5a5e7aae02d6b2731057b3e3b23dc448cfe967ecc6b09d8430ed58a1ede5204f2c8bff5d978bcd3344242b020ef03fe92cc488ed11ce218cc9c9dd2ad20a24052f518eee5d318c6098d917cd877f0441689da50145a4c125019e383782cc95f8973118f682fe69511a023511ec6e0ef7b7f68402258d6a1d228cdba51741b7874f47f7940e0e18f9d70c7b5a110d7e22c94dcf9b3cea42c1228567d77534d52216d836340332440b84ecfd353601d934631245684540fa25c1db16f1f6867e60b76428e07a82d2c2b44c1b3e0b29a696dd0e724f246fc89f7107bf612ea22fc2f2215f1aae705f7781117a791da01e1370f73c311c471569dac9b679e6e627f2774b3b87fa06ee0fc1a911f2d200ed4a52272a30f3b799e824dbc37934e87375edd9d3cf767b5aeefbfe2ed3ff4f51b166a1864354e149703b72475ef42e06294bb158014a5e44769547e9a739dadb384af77c9e8392cf3d8d387b6d36bb972f5d8edd39b988b32f060f1e67d046e3873a9f9806147d6949b3f94389c75ec5e1e66ea0af26e62d485b1c5c0ece01f05869a49fcf77a2d5b58587ab4c10468a98009ccabdc299876ac665143f29bff6682fca3525e0740e9a88b6bfc5bc6afa6af2b31e5810a8978490eccc9f785c80126c7598e88a11f38ca07b4c6b10e84c69aa93af39ad7e3c2b0233255688db2ed7af128ceab56e0c7d33e7ac31af7551b0d346402faef1975ebe3c6ab2dd1890e9493d4f1cb5264ee4fe818e23e89d42aa39bbeace09a3649b80fd24d90d8807280b079d5f093e4d8ca0c34fb27cbe65ea79b9e6a8a45bb6dac7fb0dd17ca91b2dff94c0bff8c6d8d40bb9cce874154c90a152da3dc59cd33e9d0841c9ddff5a87223db1b027e1aeb39e019f3929384e504fef367bc285699a6624aa29f82469e907dd721fda6e2a2a806e2b24309d2e0ed140de39a83d5b7cd05af306005ba520309a0901444a4e1781475af15f954fcf2d238896e403ac7201f4fafdb8f616f1b16a1ca6c64560e080b6c7f02d4caa586a49894a7988773bf63c8934876a906b56b71411da782e8eba022bcadbb53a0f0b7644236216c4b93874a84370a40c6aa738a3573f0719140ca35e47aa8e444e4501b7ae954c9c40ea63a8f5e14635682d0ff118f2582e2b31986c72afaf0bca1e8dd173e92b45c0c5dc471be4bd154ccb8250ce89627039ae413a21a594edceb183650984dfd9e970986b8d1c28a53c765d89224b1d588160b8e8870dad5510e73042382127cacc95a3570cf499e85369e1849890c8986fff77ab413e4fbc7b22da6f4a5aef2dcea8875efeecc55a40ab2ab8bb1a990b4a962eefbbc1f261c5fcc9e395144dfde2786b5c4643ac206741f8874a2acea3bd27ea9c22d78044c61ab87a676cdfb6d072df756ebdea73e08aeb6cd93485461111017aa30ce6e1d93116a5438a4aef2b71283f4f38374fdb2e7498b6f55924b8939cfde310a10b81dd9496d8f1775554acc16b87a5c00513f2c3b04ab24ae645c0dd1d20c026fc4b8ff4cd556ef629567b42a6780667339bd28d57fe6a74a3eb1183b1fa6af9111f6a1f6a3aad6fe091307d584fe9211305dbe2bb1b2741947c15a9daf9b1a5a81ac54a541d0f43b76f49980625d718971bb9fe847f4326fe360496ba4e25ee9841ef1513dc11c160af03513f0ec067626a4ec4ed189169ef3c8a585f8f3c71d7b5951ed2e096e8bb59b0d3a1e986b404b53431d80fa7261095163967ea5c34298e11f11e9d00dbe15548c5925a991079ab5aff5e17132a8c813a65d51050d7b52f67e08c6e14245c77d44ea66c3502d547c42e4b74751554f5a12227befc95c97d5a55c31f66e020f4ecc58a0ac98325f80411e98fe370b672ff789f7e87edb52c3f7a97c93f2ac9d68d509e40878291a54f593b8be840685c98629652f98e8b958bd225e890f4ec510c7a5db0f74ce38351c9257c50421e9c58f0ee422b9752c85169668ce958b518cc3fdc91f0c1460317ff0f630a1831792c2983d919b3680522b960298964d81c766ef980ca9240334b9381fca590dd7952f7494c95256331b2bef410ba606a96b3a609de2aac6f9b91a433eac24639459c2c23c6e3dcfc2bd90ac95cda7a327115089505d701cbb22eca446780e1d3668ef1f7be7bb0b2defa7e6de2f52043e7991cc74d3241cab81b02056b84c96dc22afc5e065bb497eb7f0d9608656fbba07c90d068302b582ceefdcea41fa97cf4bf9ae2127a4047b3f2b7e5611ae07fd3cbaf64f0dccf92248e042c130004775409edd40606c47bb1377c7bb8783e02b0cedbde00e7d8a4a288131bb2d3b23533511d6928769778c0d81fe9d0eb57bc0df2fe6b88ce9ea322061a084925d0483e916e1f38bb5c7afe1408aea6e86c0ddd946fc97457eb92978e6eb1a048a0ce0acba8258117258b76c6dfa80a4e0a9a7f55dced9a730f217ff546971e2ecacfba5fb2f2831eb86c122da4a7d389ad6ab021d3e42c8a8a434f5236ca517ce8dd084e6dea5a14c1eaf1060a92c322f1711ac3c1a91dbfa55921e076a6f27f0baef7c932911d4913ce860a95fa2e50e6c56e7e2a968d52b045fec9b57dd7656f554f55dadaa58eb3dab4e2b2d688ce1e85983432030688b7ad399df53c990f03ccf9a3131008358f22051c2d66cb1f796b04706e593c80ca91320a289e1685a16fd31c32256ec77465bf7b858ec8034cbb552294744facb2202cb888d224641a6d026843c100febd657acf1c455c3efd7662c7704c7a1f6a358f2abb4d23fce15e1b278284e34414b6678722c20b310b8ee733f9f6d99f1fcdc683fbf6674f787907729cc9e6bee4c1a876e1b586630de150653f87b4bcc0edbf72dbce0a8ba36de1fb3b39506f5edb7c5bb2481b567e1607cb8159c7d0baf2af6def9b22926b89bce8c6abf39efb8b5d7ca56d032890716e302121257c7265f3a7b2c8a9f1651db151949cdb0cfb6b01200c42e7d317438d0e1b8118bfa8565115e41db03abb8088d72347d9ead785ad989cffdd9ba00ba7675a27bd412fdd8d19c89d3657369e9bb10595cf017055843ae98f0ab2f303664e031e833eb9d04038b9566372b85318ee773da87b820ff3af85effe5e58850604a21522e6080b2ba6287e0df4e1d7b96b2f005f63615e68f3ee1e6798fcc260ae163500c73fcfb0d177db6d80392fb270e3f32e71586e2ef8d1c5022f4b9d7d779c1c7f9db0c71967c9cd8e7202e2f25bf869f00554cda1fdc077e0f832ef6d43343d37a9e1b425ceafdad85b5380c8eb6f6abd1f56d3cf075d43c644832e4a6cd0c5eb485612d98f0aa2400a85e796f42c190c5a4df8e5b6f61d91ba1efae9a2808799a0b2a7402c9c81eb0bea785499f5600e4f6e2b8bbfdbde58bbf42a210391838f959e5665632638e7153bec0352bc6c8f3dd3f0f16b0f8549a20f6171a9b246152d7db666bc17c4cd0ffcb3f2ae1844d5b75f67e18274f7f6b5cfc5e6a8cf21db00ee7255aff9670a5f20f1be1e31497f8ddbdcee3f5190a6d0e277fb1ed9ac0bab212da9bf55b4c01b7d4b1137b0365bef9df63004da3bcd1eee2557b6f2845ad51ee4698e15676600efdc89251870cdc3402bd71c55b4dba4efe21a1bbf0e9a0d52da32c2bd0cb58e49d960114b6e8be9cfac5ea2501fb40217158c8104b07319ac6fdf3371b3948d9a30f0073366765808dd39615f977377221a1075282a5ce8ccac11f89993d9a43df26044af4b61dcadb8b19f93eabd43c30c09d986f6bc621737a80ac6bae49942fc54a09adc7e5d827719d3f7f65dcf8413ba0f8fd68ea989140111dc4b7c059e0aaff59ce21f422b778f7322bb186cda9549f683fc814fbabfaa699b2dd0133a34907a10ff48c272841628a153d8970582deb2cf794284535f99effaab5d78e581199886c3544d84b19f8194f4046ef6543cca61e88275f99965cf01c71285e58b7c5cc4e13ca29db3466e942e97689849497121f06cb27d57ebcbd259c3398436f4080568c96d2a2135cdc8b45dac1d0f7e4e944b0e02cac262d1fdb7a17b53a087017833dcb224bb254ebb5acbec479d0c5ace0645097746d9a31a23a2d4e7742000b75472226a00518a2212875949b6259e7994809cab31bac453fa40cba4dab6a72ea26d0f3b7c370636d5228ddfe065502214aff7c9ef538061d029c30822be1847709d7f5ed0457a3c17f5a2d51151ea57bcf0d433b08ff605645fed6ca3f8ef8497d16ac51fe3a248b7c9eb92bac8f1fdb4ab382a4d8730e5d5557113126608cb7224f31f0738aaffcd6c87f1cf191fa2c48e836287b5019ca6aab75bdecdb342dab24a6e57d228311f883536691c8d01bd412a1d8102d1ac486a8b7610c2628a721bde4e2aa8898f3442cda349b3efc8357d6d5cf16790241992684cd95c845f86021334690752ad527de4620b84724e6979564595945d5898a76ad316da3df4e8cc1d3c6784098ccc09bc8f8464d3f6e9888251d3ff01493d6e607002936c256db30984042b8e2921d47496e45917373dc1eef8c42ebb16fad88fd84f3042912d60e37e90c383e80ce56d7cc0838a6f50b6271e76117303e6a84dab142acd83a69fba138377c65668f42d7dd59ae5b8e519c04f7f99d21c49d425d35828b72780408c01f98466f0e1d161159f1b51e4907529f9504217ed6b4d09795f7d9bf0715a049c847eb4c6e6cf977ec31ffa6973ec3d9ba54fcddd90f9b19933b9b9b1b41a060469dd8360b23046d9be5ffdf14e45ff78cc17bdc987b54519e92c5a0b1a074de5cdb2e0321e405adea03f99f60c67b51859b1a21e8832cb0d551d2e5495670bad4203fea45b34a0aa6d87b68c18270b511c4062a84e474338357443bbd9a91337238519fbf0908af928f0728549f4eaea303c0ac7b362957b0855c9442d6bc057cbfd8ac38030e6149ab8f22204199288e2321ac78f0e9bbb550e0ac71ed37edda957462b19ae591e12d1c766defdc33b870296ff116b145cf71527378d544c48e29c360a73f241fb3eaf205333893b65cac113d1b8141e129933f4c7f889d888ea2f342703aa7ad8588cf32aef0c2d1b148e0c36571eb3729981d2e4d136e22186963edfa50d46494cd055c37fbbbe292950f05a0b3aa6eef5816e0be2cb98247fa9089cb6017a202abe7d11f5c4d7308f521254b35024b83903491e277d0d976f6b5956701494b6df7fe056a1ad75851db37d672028c1c7ea429c2ad956fc4621debe94b5ab0c785d902766de7be566e6f6cb362c1daf9345eabd363fa4275038f1032c6acacad41f18cc7d65eb290f1664057777f80c8aa6ce4bf36d9d76feb62cb276b738cf0f5e6b550610f4fe99ceed2db70dcc23a744f413cff24bf9af71c4d2d8b38dc0d1bead76bf760fce7ce477da14f80539533196ce860556a0b1265355eb7e73b1200966f950f399130d8d828b9d5e06378ef6317d1ad09c00b342c1e02f45a89e77c7fb7bd384820e510a0bd24d50b4db1705d6e4b239f4d358153595a017082c1e218245069b3b6f534eb025c1b1bf188fd0d95e04613ebc6dd62cd37697735e371e19ff225fc0e0661087fceb26f534a1fdab6b07e1bbd58835810d09b649263e8e821a37bff9729e5b7ef79936a7aee85539994f808d298bba2149aba8c0237d002dc95e071af9b383b93d971ceecd3d9ba0499e053f4317505402ff09fecca2dc03195304880f0fd61cd2f1b9594054d9ca4ed4c2974e83b552599fcb3dfa805f0edb3de12ef9906f23fdb4a53e9e1c4c9518c4c5414edc592a505e609f849e1647f386d7b30c63b6fed9edd2c7c204939e4f680c8aa5f64297b4d2c23bb7663878abb8713fb1b49ca71b8a47598ec6c35030456bf7c22a846c1accc1aa6c408cdd8ebdef70a5a5fe2933b21f6a93a8523e3abf1a61dc22842ca1269be6735175ee884bf04e17b20e60c73b5ec1530760399154449a636d086dece0c65685c9a3fc9794d8db92caeda5c6c359e8281baefae5a6d123b9cdac1ca4e6c6e96cc61db90906fed0bc9704ba17459a460e10a276c5de9e617c51042ad43660245f13912c40d435fa598a2bb1ab82addab5fa7283e560b3784f70f385cc15bd1bf5b947f7ce15f8aa86f765072bf3fc0165304eff7f86786da3690354c164b298c1c091dbdc05243220bcf4ad098830c954ac7a1e0bea0fcaefb6d6b5c1a1b7b1e21987dbf545058c595604dde0fc1b09fc2d6c63801c14fe88bbfcf14ea420121bc8f69a1e02a40b404cbcfbd33868c69807077dc90c0a48ca078ee39c392f94f048094ffe70063fd5556559eb49d4bb9c170eaff42a3089bde4d7f040781fe2d6f71225a44f8253c738d72e3e76f01177b8a887c8685c4ab8931199261488ba0cc4e284c35a0742c3eab4e132245cccbdbbbf5d83043a5141a164b57bf41ea8c2167e4274237188f390f49c587a842eca5df08d2333ca2896789259216929b65abc792eeff6f5d132c1a02bbbd4b9aa7522e90b1a386c9545c22523221281bd5401fd2bb4ef89c9a57761abc4c81b728c805e93647c650eced8c24670243c17ae97ca6308859a51f28dcdc6a7d6fcf91e8999695d8e9e556b24438d1d229a66ae489c2702850013b49a0728b0f04ee1e973f463487a2016b0f8dade9943f592920350ab2dd345e6e6363ee2d74ddc6a6ff5be5da115da10a11418a0fdaf507091b7a97abfc2fad84125ee284de9d0838c9ba48f5bd5e6260fad6675de0ebdfad0fad0afd4087f422c096711afc0e3ffabe6e146ca0b7811b890f74c038b017be64dcdf1d53994bbbaf54942d736e48aaa8a2cc71135107f088ca0e384bbc4e564474b9d5340c2664573a3a003485c63017ebbe4b267cc2372800f3be097ca5e7b31873f14b30e8256556443551647f703e7ecea0e18762dd675f66a522b6889f3f0d33d9c9344eb943a52436348e5f630500d78fc8e6173fc8df5ea6f23233cf13759f7d11a83628b7da969a3f67e1be8e9ce199fc689d006a7eb6479c1b3e82c4982823a3be097c25598b6098ffc85eda23efa999c0b184e84163999f64f7865feccadebd114bc97203ea18a1821a1e611f4128a5832208f5201b46f28df9311641e709ac41da795a5d8206575fa3f75e6a714e2670b7ae3dad61373ec5057f2c2f03ef4229178daef921508b9f3449e6a9324c4e3d536034c945cccdb76d2ccac72a561bf5dea13fbd9331ecbe11066722f953d60fb49616b68aa5a612d577d6f96e1cef2459e4205e2e1e38210508e679683281b46f124f7e1e6111a507a9546a387f6cac08240c935eab5ab289771049a9513d4ecfdc55f96d1ee454d27f45f689b50baad0fd6cfd25a047e4f2496fca8398831890dd200962efdfc535cf5421062912ef5ff9e3fbcfc7d1420f40fec4cec0d862375aec17fc6a8a5e5f24682007addfdc29c8995e635e4811da1cad917eddd70084ba915f70d8e70f7877dd1f787f0137a6eef21b503502d7996a9ba215d2fb66c290e6e1061ff4ad7dd28a320f75c62efe54bc25b4200ea74611d85d45879eee63a2ddd3c92607b1956d637ce7bb5564ad01252bc3dd0c2d9ef49fdeebb8ddb0e37834f9852732b08619f588bb7d3d6296c22708c1e845205630a45a620f5c6a3903a7b50feac2baa2083f488dc99adf91383530b1ee7d6ad34d1b63ab1b53f2103918d49525488dcf2effbe5a9aebdf584356c43238cfa805527d6d812bc2d73c73c0d964ccabef7ec7a209ad371b7f503e5011a08fa7ae68bdb9b4d3b395ea7919d95dd097f59ebd3c37bb449a8eda37512ebe99bf4ae14ee19da7ca66a94cefb6e022d78f9a4e483fd38ecacdf4c97661dee3abb2593324b769f9bd737784074446538c5531f840e33a146199ffa74fab22cd7c840850b8e0f5863efc184a1f2156d1e7821227c16b8557ec02d156a798a1c1db0f03b037958a2600dae7bc11c72226abdf749a366604c4e0d4caa7c6e1cd3a775b67e78e873976a3bfb8f9c40fef1450a34607667da8edca295cceb656e2c45a648b681713298e8f2edc79f811eed9a4f7c412ebf8069c0a5adb5c33866848b627f7112e425e2fa40f3186d87d8ee2652e124188bcde87440d669d3102fd860522a0c757feb5095f13e3dd57101c705c6bb44712ea3d29ff06c9c3d8f116e1fff9c37caa5fd9e7bfe048e85a03fe0bbe9b336cb44c5ac344aa6f4912591217304cf268453ea8f8370a789bcc106216e8f2593f358853dc00dfe7468a9d5e3c8334c703e69e49e35b223940e3d8b9f3cc738f267d23603c18b39f9193f2f70664dfde4cc7ea001a5d7d04241da32e3a2ec353d5b485b3320c763264e15b88f8fd50d79e254b274021ce21532aaa7c1ff9a2edaa7cf50112407fd22088af0a94f624404074f6d51b06b176b1426f6f2229e710cd8de66cdee5cbb08c53be3d759531b40e60930e603a9f1a4d4bb54cf308d64865d8a01f816b245d2c43af11bdd0054a4dd3347d1e22e115416298cc281f323ce2c79eff401dc789310508dab76a43a833948973d40b540a7a7f81cd6de5b989171663e24567cd1477173b2dfc0f09fea11897d9278761f6f5eb9f1e9c84ac2be016f4dcfac3aa312626be454547b7896dd1b353ba1025f8eafc4cfb376024fcbe34a9b2275288f9de4e79f1dc62d935464bf41b4578be02af255a3801452edb4b4e1bed4c64de3b434168b1ae6bbcb18c0e26e933c3cc6e7eb23791c1ddc23ad4ee5042846c7cbfc0a451f2d16fafe886dae7c7b76570ffcb6af19fb05b7b11f1550a31bb1de9c00566a6d7b909f31642f64005505b1dcac936d7a59880203b78e69b5225e8bbc862d18ffb88792be44352c78d708b78dd4b9dc32e0a0a332e425e2ebebbb1f56d5bffdd566fb5f55dc65698ef1805d6f0514830297551e7506568f7f0c90fa9f9fec174793b7b440224de931c5263c7d00a16ee3e168330c993b471c943a04ef1e9cd896f1da30e2428ecdd6b298f85bccc2463bbdaadc882e2b6c00d82d8b33b33571affa56a6e16371f92cf34dcd7eb459258d573a028739e18ca6de62175e3a0eda061b7b610bacd9ea977d88f061dbc4a9ca450f88c6e8ac5289b9cc3895eabca906e0f6e1d27988d33acaf4955c3978802e3c6565c1ec782b50346b400af7f50ea4b7bf72993674513090764088da3b06917fc93194c6645125d14e4b821f446b07d47d2d1ad5d096cb73d3c87781a9caae142c4cc7145fc7b86435190ba0937df9e16b5af3534f354803083fdfdf1f9631f74d90f9697a4348f10daa72775014320bcb16a76c2c47c4fc46c8dd9cdcec3a10648c124d65a143df72cc02b5114a4b47def0c8d92eb2766b0a2b3ee10f5d348cb4895206c03162e3df39172bf4d06549758081e3dd14fc60b62c3a980914176bae0424f30ba3125d8f9b33bc40429fc006a991c61e907f26689085c9d151d2536430599d17012ecb42de15212524243416c40e695f880a84ebf3479efec03eba0e1b20fb60d1c2b1282895027e67af9bacbc3bda5af8a0cee8d05b902d2f26eaa4240ffdb262bf32c4d3597284146a14067cda21eaf2e6616018161d525a7bc8141069a59debe29a721a93d8380f7869c2fb6aa999e63c3dea83c67ed7c610d7f6560584aff2b083854cf68cea37c6f9a20fbfe053c3a5f38cd5902c35896656dbcd453f4db24a670aea5c34948bafb8642e39bc3ddd8cec20947eacc07bb6817d96a25a31f0d21cbcb4a9f99eeac7fd7284300d2bcf8addcf44f4ae6b54f2c8b3574e09537a5aef0a85ffe6ed001462cbffd83fd14467a21d528e4a749d6aeef6991072a2b7d91bafd0e9fa5ef817843accfde33015ef7409bced8ff5a1a3525d8f95c7843478824479d9ccf5be48428f95c23833cb78fcc947ea01efd0664c5c7f60e72a1be27e50e2c7a0808898163c09fd2732b24bfddd6ff1f8231731406f2469245cda04f6b9d39bc53358b6c17f7ba88829bb7560dfbd2d5168c162d5f5a3adea0e83968307cbfc59a2c79d6aff3387c879794761220a128fc7d4801c864e8be80e4b0afc1d93e23ffc4968a3f992bffd5ee26bb543abd976e8122dd20a5652e0865f4380ef19b19b40ea8dc6382b8eb8e736365786a3e3a2fa707e649daa03418aef1bf40f6cc85130e369dc6665d092e0df56e4dca00b13c2052419157aefecaca58e04ec208b33ed2ce6d9253f508c784e9d52c98c0c82643bfac85a57dee5a4310499aa1e72e6a4c3813975f5ce35459e197215b3e9c6c5790d0bb253962f19d306ae2be41fceafb342f1cf6bae1176e0773d9d85d01b6673361c7cb755ca1c18ddec44b75b25bc22ef21f7ad05f9f47833925e69745c6e36c6cefba9db27864231ea8be7fc51bc17b692022d2c9851d7dc8420fa69ea272ae2af31c581856ae02600d20afd68a8bcc271d4cf8745a3cce38230f2ea60b0cebc020227ca77f52b89b90078e4c8c888cc65ed4aff2d62f483415e0d6780bc0b2172845616188e2ea9516997f3a2fea8d1faa2dce4cbc4d9c753ffe2102654e3f0c54b80758034ad4efd0880b822ab30bdd63e53c3d9aa1f46ae5534bd4fd9840eb7874a0b33ae1c39c100f617007c46cbbd49b308e588bed3b12e4f40c65c25cb5c63cbf9678759514bad580b9888eef6545e406399f9f121315e93da6cf88e9c30702c9b67188000b4b8a868a6122dd67831125fa77c2d43168945e525448da698d5e31ca12d7ca69e88a2e204339e3c491a201d508ba772564eb77a763c731380970a83be293a5fe0c966fa4e9cc4d4e49b67319b65b0e6a41ab97ca167bcb6b95c502b9ae37c0e1e68b0d42ef3ee7c4323c9e425874e38cdec992a72ef4d894d49a72b620ef5a172cf4c743b215d387e85e3899ce7d09b5e5955ec4bd84286fe6f5523a1a97ff34a09b623fda37e332ffc682a8b73a37973513bd8a7bf9489e4d7ad39545a2eea0bf5b29e5a99b5bc1754e6e7eb121f4dae7e2b466465f61efb65e46a602dc46050e3cc4200d55301e554d07bf5130b403a4c035c730de981ad8d70ce662cf34382218fb1f8833808d6fe38456b5f833fb8ab2e001422b9df32897e68b7cf030a339fe641eb13fa0231751d34a1d6e232da4c9bdf7de7b4b29539201f50c5f0d740d31865ee93c278f4798d9135be44bf64ebbf04bb2745cb021387db82717a6cfc0c7b7afbc883e28237cf0e8f1a70f9fc718ddf680139d7bf090dd416797299e9c8a0ee5a9d4152216a316d6a909e92bdd121eb013d34a7642d9b414f0f3669e0e4abe69308747a73874305e696fa66ac6c82b3cdccf5bb058a18252917242393119f2319594487624aa5ec76d5a86d1a859fb72a5b92118e0248321eebe1bdb0338f5003a52affb3aef629dd362de7d40a2f3f53e9e3a15efe6a1746ab227adc1e9bcc3ba9cd825bb0c167f09fa38e6cf2844839ebc610c971f1bbabc9ddd4d6f941098aaf8a3f39eb226c026861a1d22f31184e854e822440c2b839e6f377937f2ba2cd898793c595e4286bbe836da6aa3b3e661f439448c21baae1b42888f31840bcf8a009b8f1ebabc0cf5ed938917459ddfa553adc948676fabec1de77195918e7d3f3cef3c76ad53e1ad619f6e837d0696294b1b7ca717b945d7475301b386e4db3d5396937952ce39e79c7366998c3c6bc8c4b36b1ae6d9e98509c9628491642fccb34e61585d2162316a619df4956e090fdac9b462d2c3890f9bb3fca1230ce74c5211613a955645ce327e75ab62bb886055dc3897da233ff8d0c30a0ff7f3162c56a8a054a49c38070c2827dfb39b4a4adc28b6785f8c2d5f6b8c0446c2ce04cbcbaf065bd503680f4f1abfa4879a100db6671913cee1c086ecb4d260c7a4b39c2ca5bc4c8cb0d06dce79a744fb4c7c30b6b047957e899d739ddbc4445f59d95456565454d86d835c143673cce78d0dd660b7b372a7bb012247917562641e3b62c461e6bad3a9185d5e1f31fabc5c5775270a36ac2b8ede83d69dbaaa3bb2ee3408f60c6f781f9d395e9c9dbaaa3b75e5dcc78464e1f8d59dbaaa2b7eafae3a257d32f181d934e8f1291f9d208515c7bdb6e78bb2c11e9d2fca4638ffe67cf7f8deeabc34fab1cbabd8d2de714ed8906331c1324aaa77c2561cd4555d45981b4418f657b6ca56ab08f3ea6e1053350a925557dc8b7b71afbae25e75c5a2b7ae58752559ac5b5930b075255fa25015527d629c734eee25aa5526722f2333dd7b591d624b7bf66218917371463821ae0817c401bde81065306353b648094ef2281ba39f1f33568489f2858b424c6937e06ef6921eba97adb41761b6aa9ae659db9deed556b1a5aeb2d7b7cbc8dc8b53459b2016ebc56a0105b986220c3b61c3baa2defe812823d221b6b4c78fab03c3a03adfde834783dd8e6f9e5dce7787d3200ead6543c97aa18ce0dc26a693403248ba220c735fe74770deb97775a0d8c1ce75785ebdba4d8cc7e0bb0403628ce8eaa8d786c6a0313166e4287624244bbb4dcc120c8831465c1d35ae4d8ce7d56d624835b09c8b9cbb28236e4a9c73d4119d7bdeb9074403ecd1630c8a5e236e445e8da85707dbc48491f52ace49aa122f79ac46945cd411252ff1d2ad3925e798d2cd70244bdbc4749f4d0cf7a18e2039e724ee75b39c2ac3281b432ad5b78f6a87e5eaaa43a21c918e6825da11f1887a443e2296ce6835628d76da473cf5d512b95ab202755df5e4e08c542fd1d0bb7c4145f73a957c41c58b5a00e7247f40472239e7b1bdaeba2f0392a59905368caeda4372aeae240bbd95873dcc70805a9cce73dc8adbe178b81ecea72f27c486190ef65cb957122cfb74b9865e1b121577c3e1482e27c2f03f67051bdafce65e95d932ce0a1673ea5c95a1f1a262955922f3cd638dcedc902346d4557571adcbb11aa43994b5f56c3ef205f5801ef912592da0a008c33a3c17010938f72eea013a38f72ecdaa11dca53d9205088fc06e381bce96b3e96cab6d8707e8db81825c43af4da5ed683b3c5a8f0fabd5b261f6ca5e9a8afb6c62341c2d47d3d156ab08d3dfce04cb30a9be1d041186d218638c31c618638c31c618638c31c618638c31724e2d77690ef5afab1df96213d35e79e4cb8c69af3dd5475616e5912c994e6c692a5879431a24599285739a437340c9e25e92255997d5d515d755835d7dd49d9079381f36fe1c81ed977ce1766e388a8186637374be454375158ec450773a1572af475257ac6faf3eea13dfded595e8468423528d74442ef9c279fb2806f185d3110dc9178e350ac28807e1e806cf4075c5b1ea4ab2ea8abb1837e4ae201bd21cd637cd61c997d3897578b2c735d823940e45c9e2cf7773bd3ee45e9e4fb8b95edf2f2fef742ae47657a742ded98c5c7e6214a435015e2bacbac8e30af3f40006d0dec59e18b9a753ccd320f73077d77533a412d9671f7eec32fae48b84cf90646018d1979089de017ee9ccd3c3197643ec6faca24a84c9bc7d4584893ed692846812fdc23c92a5a323115dca441e538a7b9640a2bac8d95f60431b359775666673e7fa803a72d1a72300433122e7e9bc13d920221ef922ade411499e0675701a7862446ea583f6242222fb2ccbb62a834929e59cd29b1e57c31c1f5f0ce8181ef6d1206b18cf3ad37d8c6113387f835f1f79d5a0f4d1600c3b48ef38f374904e4def2031d8f1ed2615ae0a373f77fa4506699696425474902ad8b0837cf38aa783f0aa83ac7c68d2a7eb9110cffa466cce354ccbaea42cd80d6f3c45e286c9877846cdc259dc172d5f74dc0b84e0c142cfe3bb8e29a594f26532503a553e92c71a14345f7c6a77523a9d52ea4c0694cb8f447215e72024980c2cd429151e2a64d8b68db6f8dca9d3ef078bcd7be1d2491a44838e3ca541434f699091a734885e166a90b2d00cbb3ba9cb18281ee30b0b0f4f4e491efbc58818724621d1dd5c858a3bdd08152a44aec2eb4db9a18acd51fc7471c84f71df5c6a3e3fe5d69cb817def06291972e43fa52b4694e9f6e9b26f4a89169fa89d34f03a6afe1fcc4bbe99dbe4ec5f703e77e1f0bffc142c48016ee3eab4cd7823af54edf74944fe42cbe8fa24c5f400b779fd194fbf1790b15d76b16ce698779dd899f664e9cfbc1c2bf8ec5e7551a27ceb570915471eaf94975cf915051f128f4339a0a96bf7aa5995e36fae6536b9d2da9bac94d7e22553845711557397194a7789c2e5d569fd34f43c4f9c96dbb2804d8fcd43a60f35d78e3a587375e73cd372f4999a3c57745683e39378576bb28ee22c0e6bb4bdab19af4e9de8973273e2f290776ce79a269b78813e76ecdc9e70d9366fa937bbe22a5fa3c917cde109592424271118a8b5044f4134d91530d45e424915392a852aa427455384985537ae29344f239dd844e6ae254b0289ad75cde9373b571e2a68bb2515d7a757943ee4fbce6c44d5a75d3c989cfea26ef621227a6e77eb32fa54cf1cd316781e2254ff94214ef34cde4a63bb52b4d2ffbe517a2d088270f4d7f3af11aa2dc1ba63fb926f7acc9f49e97bef0c67bee55199235551b2631be211aec548843c716a38a64c7b9ac321cc71ec7bd7fd643b0e89716eeb5901e39faa25371e3ae3635bb6d54a5c1934af3a00327561f9ff0118a1770e19985c7958c999951cee203d2044e1231dc350f6344977827e04220f1c36e28e72fc68d4b8c1ec0741122460c19c9c717d8506be12cbcc5d51180a19816cee286f1a23e95ef84dd53c721b7f86264e1fbc37f1a6c6ff1c518f6f1163ca3864b0c165f8c2c3e46683df8d1a70872f82ebad8e86384a08f3e46e069f9e8538428bc0b10f1c5a547e70750980111b07024a65f484ae994529f224031e594d1db6bc4174f691dc39e444c9d383b12f188983a399b382c3d939ee31cbe3d14a2c5f6f0acad0845a3e72162cae4ec3362cac4d90f105329ce6e125f9080e1e74a9cbd469812ea9a1a5489a7d349c53b33a81ee5da16745ac535a79546acdb666795d17c7e359aa35ce36a43739477dab7c239f0d3aed8bed07bbeb14115540c952f74d93ca262f439513d1fe2c8b6e89bf3177dfb3808c3e0580486c1beb9a644f6996f5f76f288e22abe1377d15c5c80a6c9354ff9e2db2dfb4cf3abd9baed9b3498b39b38e457226a70b0a78f7d3cc1e36353121108c3b718be45950c527c7bc73a6d81c8e213f9c60a7788c3b7afe11b8919d89079a2d04fdeb6cd67e26f6ef39109d28e85e20556f868f3fce1909f4d7abd067fb078d162e2b3b8ec233b15ba088104d0b727d1712fb0217712d10789213674892a9de2c4119d95c6cccccc1e8e4f470fa09d6bb57335b034b03c02cbf5b0b1b2f7143a8fcddce64d8e58b6799af4b8aed2689792a71730cfbc71beeeba28d8b0719ce09f117d4e1cbdc4e91d33fa0bfb51a4d8d2cedf8f2a3dff4a5ecbcdc0868d235b54da79f36d6a9c20dfde3b9ac71a2c8e069b03b1a5319fd1dc98b76420a079430e0a2dbb6cbc210f7d681b07bbb245041bce9b79f3e2decca15378ff305085dacb79a7773d6d7adf2a16f4abd338ceb54fcaf82329a84ba9cd214ecb384dd33ccba4742aa56b1afdb8a8a2b1e5d1348e73ce6734a679d7611e6b947a3ea3d98535f11997719452ab39a669ae0635a734d31cfb385965bacb5daf41ae55e4de89534a29added56f92c1fa899ff88c167da1cd8b4e3c6a218c3771938997944876b47157d36c685f0de798cf2125b2f7b2d7b4b0bfa354734c86761fe6332467f3b1dad8fce4e337f99660e608c325b4d5fd23558fd1de91adcef1c5c2645e2b769b5e14cd53d19cdf719dd13ebb35624bbb952f36224b07940811463b35c2b74f201a24b6b46f1fe5b14394b1797bbdc3b7673a2c63bbd92ac341a653557c06e59af3c043b5de9570224c0b27752492c7f85262d595124e29053145bd4f4178685d3cd4fefbbcbae40b103773d1eeb52d0c73aae2b5d68387f674ea3ccc12f1b42f3e89d56277f7d06a9a691b62492c124bf4c25fb4bcf87c6879f183fbf0c25b5ec078f10286a35ec080e12db6cac068b921eac50b1f7e701f5ebc78f1e20586522a61dad632dd8d456275dcc6e22a11d431dfaa0d0cc31cc3304bc412b14302e0a11d12004b24009f6ddf449506eabe3061588ba699bc45c34c32260cc35e4cd0dbc11e3c760f3df4a0395db1ad70e12cdeb1077aec978d85dd8d85b26d2cedd664be39bd251edb132fa93296ab8cbda1f79ed36fa381720f004e3f156fbe1dd22f3326653f15b79f0680cf7e288f7573adc4922f40b838c73a9558df0ec4e7f2491e5cb0ac00516e381a42e2ef0be987251f422b57be8c85136122d71afc337102dbc8e647773a41577898adba0e896566661d1f630b5f1e3ede466ef3221f9d9cb8c9c98989db3cc94dfc88cac79f1e58e17f7c20546ac3b7977cfce9811ade073d867e7cc0e30708ae6ff9f803849eef62670789b384237508bb201e3ad8b0ba62144c305287ea11e9543add2e602314d0f0f3f72314d0b0fa9fa123bf398d12b0f1270eadef220e1b7fe490869b234f9d4f7a3c753e7900aa4c65b618866d1bbda1f628238f2d7796da2ac3ce7dfe1ddb5336a4e3669d07efec970df9b21feb61f693b11aecea3a9d9c74f2ac519ebaac3650de93382a29a4678e2f954fdfe69d69e43192bc064d1e5657758976e488788874443d3ac51b90f62decb7f0d8c24d2a3ff2d267f323b7d5d4e068e433ba7eb6880d62977cd980fc7ab65d0b2449de763234f2ed1bf906245f628cbe01d96e9bf19fce5ebfd9d969f2cde7c76d9b6b9bdb08f3b974274ebde3aa0cb5d15ff2ef5382032744b0537a512728eaa1c4b1c17e7251f44a9e1ddd9541ee88a759fa47103e3f5b9aa69393924fd3896996463d417c2321cd326ff7b2e106b415e95458da823a555372a0ad0b1146c5db3b954f89d19f78e90b8ba00ab0110a67d8f1d4995de58b5ff2af1a79552422d59783bf74eb9192377aa2a463094f5168f346ec0b17e82e9c3958d474d4bc34e0d30b565786a441996c480e76e4d2a5fde2f3f0f1b7f08af2c5c1a27c8402901d1f7641b5f37088c784780c5b794ce5b14de260ae459fcfbe6a44e2c8973ad42c2d5a7d3be9862e2e20e8277a650edfea3a62c32ec853752aa43c1e4ea7c26c15d42faea17e89315d501b783ef46ebe3dfbc986742a92762c0bcf56998f7e21b1244b7beb896f125010124bc8b7ff504f886cdb56e44f2c50832c4f528d7e7c8e580dee68b084d3606947b3b4977c04f500fa128f6f0f495d133bbee4a3c14e6dbd35cbe61c5f4a1bf8d4a56fb588ed8e868c5a70b035f5087f07075bb3f9c94fdcd7c2330e959d3e549639f827e7b2d3f729c143a41b9bd3e7a8937f9773d167813ed4e9d2804fbaa943f54883318a7cf32eb34045de60511b6a73156fb139f8998b42d47669c0cfae123c44bae994a3323fb9c8e967811a3cddd8a088067c92eab7965444a56803aaae2012d0874de4fce641f2861ca04decd85cf46d37c4fcc4876c56bad9aac12ee13c119b53afd506f58d52a774a36eb0d9aadbf8637ce982224b8fe6901d0135d83cb6da80021a845e3a951745039254451aec1cfcf2926e1aec6d44a4c17e5169a05cf30c888f7c1950d6eada60af8759eb3a1b2ca720b6b4c459830dabeb7e19911b7ce4d94fd44ef0a94bb2b4a77da894a7a4a7e1f6f4a973ec2a33223202ead44603e5279fd1271fb5aa575735d2a99f116b34048752fb22719aa59d4aefe8f6f98cfed80ac1df7cbbb4e4dfa7042bd1c4cb926f5b097ce9f2dbbe38bf8bcc1d2315897c23f2230fb3a14ea8c1a6375a97af2ef7f6fa922f31c6b51b824e5f74bb202396e2481c148f8de279d9cadd639da12f57269363b75383a5b72673ba79585dde37c35a8af37cfb79d565fa50e24cef824cd535254e381a12ced025a43c269ee2dd0fdec93749aa7e891950a762bf30657537e56920a1cbb695786cb0c4bb4adab125be5db9a3c15be23f82f0ae069292bb6d5e2b033a86bd7e254de0dc301180d74adab1d5257754577555d7bc1247e6b46c185f5da485be9d622fafae0625ce8eae0c367e17d405499c0444d6a8ca4c27b148acf8ddb6699aa6699ab66d742471aa916649e9d2f02308df82b8a521cdd29d4b104098380bc08560ca33f21bfd52c2912c4d62a74094b1b1bc021998408429f906f4eda55689b5795862958674411b503654c2912f4c481616cbc85a275109e7491b4b1bc2ccbc8012ab4193775c17d0312ecea52ec83a8a866b482da01aee82220ca973d2adaed882862e68c80249169691ad18c6edda057dbb05aade16a80ae073214e252e4b4a3f4e2e1b9258262e4138104038c7001104100270972080f08e11c01723102b58541a364dc3050807e28b1188d0c4519c45a521f989b730397114f7afd2d82ca1096f0205f3b0d2ae138f11c3c50504dd4fa7d09edcf0c47da8342437f11f2a8d0d13fec44dbe3042f1262e6b4e9c3472a09189a35cd2906ae3c449ee439539b921bf89c74ac3e45e52abc12ea15fba6ce40c2497af63484e02ea143b69080f9546e4235fa932a34b02baa4568cfa2dc1ef55d712fc611754629586748a3dcec97c00ae2101cd68d00c3624b1ea119c6aa40e555783ed65b021c9f5ed242024e4cb4a0d3984102e128bbd446d02d00cc40e1db3cf88061e9ff2ae9d6fd7523ef4e6745a435d8b3794a4d8606c90c3d9299f5acb4a8474ea76764ab3316f8c604839044c1b20bdae36a68da952cd1c95081586d18ed551176c7fa8a2c232e26fdf9ea33f6b3a431af35a6d8a067012d1691436f0e163143620f2d3767c43a9ed688cf3464f8f2b245e16c201c931733e3d3e2c44e2984f7d9eb054c55d6c73eedba647e71e1f1fc67cb84788d4b8c7877bd84748f4907b32c0d247628e495476f986f172a0c1195d42ae95eec90ae7fb70b9f3b9868c1ca9c1e21e1603bdc817ea439e7b689846022b1f6ba8b373909d6a83d284e0634dbc1cc49581666997c286ec8383f8e0233fbf25d8a30f0a54df177d4ee05291784429c48b15fe7025867df1de4aa784a467f2867cbb3dfdc0bcb115700564305c992f80c2c8d04728d460e4617c84420d429e8b746a6e5d162cbbe4f1b1a343a5d3837f98d5e01d86641c630a9322086960c3cfcf3ce49f4c4ee0ab408377b04326859452cac8524a6666669e1bfacb2fc4a0e9180bf1e5225c176cf4798c9919c3be0006396307661f599679c6b7463af73519db3073286fd8c4c74a13a5f88939d3c0e00214499e357a6b6ec42ae454e186f2ab90934929a52449414a29a5741ad21af61fbe86764522cc122effa3ba7cc860709b267470e7b15eefde9ca025c6739c9298cedbe58b98bee48db8f1bc83095db01b4a295dde1f6113cf518a97f707c76d087b47eff8f6286ca023e5f700185c802249cce6fc853a9e6b6e44a190f4328c4f8002cfe3e0c7ae06a2d0cffb43044dc42ae4c4705715ab9013337a794376d36f1e2b0462157262b6ab83f38f430f23d8c0083c419d8736c6749f6afa80053920010e94107373829698cd714a62b89b13744ce7380588d9dcfb700a10d3e930c2751cd1f97675b8c6e2e3b379185b510e2888c28f3578a10763c082dbbc6088126a500328808400879818c31de12a1555c267e003034f60028f83725cb05fb8d1d120690a0c74b9d5601369b0bd2b0c1b72916f67a11b2924a8d52f1c533ac21d86fcf00f83e1a7411a52de2f482064c4209e9757d6d4275edcc10e3ce44376fe19c23fed3cc40ecfce3f9d6267154f40be441ff6918128a4c9177e82837cafb28e4142ab8eb4aa6f6ab0633d7a897a5524b21ed7792aec8dcdec4ca8549072105a8f9755317a8cb1e3789950c5172539abec28c6d11755ce844a87e7f1237d38e68b461e6fe8d6491e5a67a24155185ff6b28e069b34fac2cd1bc77cd10def3b9bd7dce63bb6236b49de914824128944228d4676f4690d0e3568c4fbd8f5da3e3ed2385dabe40b139e8ad3822d7d3a9aa59d2362c3f8e2b260392cd890af602b141d959487dcc0ae20237188839446e83407b2bd06cc230ccff0905fa8e89b0b2afae63631315091fa119a5f1d40e23d82fa7675d0abe36a1a5f56f108b2cb846469c72e0764a8c5189f08b3047f50fbf40f0d78e2104f2e8289b48f4f6ca142689f964d8fa06280151524dfeea0c6110a572aa436183a80abc78f9123ad92ce6e7f7eda277dba8c8e3a82ba747a1bc82571648e7ce1219ec843af97d8c2c989f3257da6cee46997d4912baafaeeee9e973b3e448327201bc670913f400a64630c4157f404daf4187d02f15f7c891eb27c98125f34e98c32826f84e249b2096ebe42386df08dd363c70e1e2b2fd8507b9c36d243ed52829d392e98382a6d460b47a5d2705aeda13657dced84d07e4f8f376c979666f435ed364a8fd9f33cb6446718d8eeeed6e69cf346c9c2df2c5bcaa18b2b61262bd0a09c406c91bef98c563db3e4cbe6b225659452deed52964abed0a15eb974823a67aa54a8a60e70aaa6d07451d69547e86baa321f79e4f53c346710ce9d9e4e4d9e1910092264fa74409647835247e6a0d8339a011d18f601a1d833b789d181f9f423309fce3ea767971543b23486c918e1c229c1c63b7b8e10135f443bd6454e711e9d1d966592c5d33ad3e2b3ab448b9f4eabf7a241897d2a0d4a97f5d4a074ef08365c91b339ce961886794bc6923c27c96864de8ecd9059015eab3306f8ecd2db8196be02f2d09094278fd3fba402364b6b525293063c6b5d2410b29ca6121369d55bc10a7226cf1025e4f8c02f73357b863c4685885101d30226d4369bdc75b5ab9ea6712e64434ce83129a814422493979438a9a4b31d8c833395105fe81de21cc23228b32686f885088259b8831458a0ee9a3c3827e7db59583e5ee9d01289a99c2c9d0b004c24d01736347b727e348e8b524aa763d96b6808933de144c2f774adceb4d5eaf46dd5b3c5b36d753a27835c40405c9dde6d1e7dcd15d66218d86b87bf7e171fb300e0e333b330af00542468c7b5d38a2dabceab3293ba700e00de7d39b4cfee0f0038362459c65c318c06c0c73c3f7847b2b876269129d42ccd328cec6461ae6886d56a32a12cee22064ec4543d78d11dfa6d6f9b4e16176d3f9bd8cf6f6621825c88623843a43b2c63b618c66cc3f7c402edc1b753ef28cbe7e2cbb2a9692ebe18b3f558e9d2e464b2501edac3726a1fabd5bb747943cdb69afefcd99a938a421319c44af7560cb98280a80f5a1a2667b6b9600100dde93aedabaf7143b0947ac7dece6ad5c3c353bbc7e84b72124725555227a7c19cd1a473fbcec5c73100f8daf5a383825eb2871a1cea978b2fc6445b65a8f6a42ffbd246bfe9b5485efa8a2dd897749ef6d197b359ba088dede76d202300d19767e2f51b6c880d69dfa4df0f16df6ef7c4faa379244bf3344bb60f3634a54995a14538a9329408ad160d629b48b75a2726d98e2379da274f8060a3d7d139a767ce416ce65dc9d3be7ee90dc1b2cc9cd1285586a27829292c4e5908b683d02c92c776efec508e30518602c1b27729a2ae8aa8b397fcf41f2e9c593ec9f2f981f49140b2e5fda0c53ca99c939fbf9ead5e83a5547ae48cc5b1e78ce50b62408c992d20961e19ca9eb05233a255e9727dcbd0ebf9c0b2cbfefa29673db05248060575ad1717765e42429dc29e073b3f764085b4acf5ca02ddf17440777c7839f0707083d54e84999e0dbc1aec7834b0e15cad9a55e8eb455fd24fe01203a4f39be927b031d1b5086361585b823a0ef74e7155f49e0bf1a293d2b39f894ecf7e25af61f62b655a46d23cfbd9dfb66df4f772dcf4ec277afac51611a006a790779d67bf9a619ef4a6673fafd6550daab5daaf7bd19d2d11b6c94c344554643feef99bad6f5e21c2e04284d185d8d29e850836c68db2d168e4d96ffb0cb3d24e3b5b93c8049a451aec20ed49d886059e5b60b09d84dd4922d92ffb92673f6c7e3f585cb860617171715c6258ee6cd98f7ef6fd60f1e9612e5c7e3f6e4e6063581cc725c6859be86c99ec047afbcd3b5bd3b39ffc3b5b95ed5cc94c1f0df6fc7eb0d8181697ddf703c72586c547df6cb57c344bfba9cad0d50ee7e10bdd697035573ee40bc6751bf66143b353f16243b18565731f6243d8d0aa53743a9d26944a135b9fdd7953a76aa278b695c3fef4eecb6173d8cf2412e9f568318cf69466192a22b788ded93a7184c132394f2991b2f0d89a38db93124f41cdcfb31e405f711e7cf01f32b79e65cedfa8c4b3cc7d9840b33589ac58e1fe851c7877f619ed28b7374415d1c2338bba365a6496dd7d86f42f744719b170bea1f5ec8638e617b1c2ddb3507b14eada58c1a3cc597ca13b09f415a067d6476e927d2bb21560687dc525e5c0da8ba308d0b35b03fa8a5be38367fee1989f5d1cf3c1910f4ef21f7828f1cc871eae9f7876c3151e783851b9ae725554b24fc5fac8553c1b5d153f51f1ccfa0d4f544ab2ec53b99f9f7c9e7ddf0d79e4a31b7627dfc8d99ef8e8c447d928cb9e85f3ad415d948d12672f41a13c854589a7a03ca5c453521c351ab5687157f86cc91537d47ee4aee28ce2f6cbc1cfc29b2b4d89a7784c0951a194b508c9e25bd1c2f9731f7da1fd9177b5c1ee374a3bf293b7f86a505e5ae12c78c58a5b83f292d14d71524ae84f7294ef872a7332a4526d987c09c95b541993976438d98e4e85f24b9e7976437f6c8987d94d89b7fa4bf64b9fcdd3977cc186b0a1ec26c369354b3bc9bd2a439148d9c2c3848c4c2233b0213684a4532126c56347a48830f108237eb870cd858b8f22c1549a3672ad0936092480662b53699ac83317dd0ab0a81308c2863eec08f66ab0e3557d55862f7db580be18fbc9d2a3914ec98b1d696c88426187b854378b742af4b119124fc7578ffde2c2eb0d35a72f8ac40557efc667bf631afeee4591702e9ce35c7c93c8d04b6be16871a04565624a2dc4172c0eb1255fb02129bdaf4e30c496190666e938c497c986d734c3b7c7d98aae6ffd60899348b3b47f5586ded9e29b16ab58754a5111a7887acbef87f91a9aadd99a2d49b30c05d90dddd9c1cc40773021300160adc1b27df661288825884922488150c75410312196415f0c23c4ccf0ed2e5c456f88e5682f2900aacc3c0000ea8ceec58b2a43b39f1f7dbdb21755460ef1a2c68881b5a4c1b2d37f354b07a0cacc9ee9637ac15a9245de70facc1eba84d93385602df932573d571d10405499797aee69b0eb5ccd1576047b61432fe8ece9d4741f2aa24ea5734268e0f43501a82e3060481717fa6a100910d59381d53ea41489aacacc4b5f020882dbb4202a4de643a5017a31c2c4ea8946d62379a512936772e2a1789ee779a714af390851e6b7fba1190654e8e24ae840348f4032d7be25dcc66cd66e8cf62d7104ab542a2db274a5a1f1c0f653fb1aea9df61dc1deddc053fb36df795b95412da0bae70fa8f7019144831a1caeb789b18969ef94e024ff4defbe9bceed77e339a9875522be3ec660185769d0184313c467de791e901c6d63aa5419909a390eed1d939ceca4945e156d37477fe634a36a437e0d119586cd53b74038fad6191a24cdb26c933526a64e729b67124ff14573edae344bf3ca8a26f262e4183baed248e0fb29e977232f46186ea369e862a7b4b6f92ef3b42f9b4e69daa5cfe9527a365dfb6ccc2f472f01831dc7e96ecc7709cc7168df71188d0eaedaa844b44bcf2a0d9bfefe0ceb8c251ab22492e836ced3e6a494524aa9b7d5fa718f66e94dd3a4f4e24b7529b76dc5a5ca695649b30853653853908f89105b8a105b8ce0c9c0ce0f39c877adee496fe73ce9c580cd60636ce9f9b653942673ea1e0d79edb669739b35166426ba8efaf4acd248403a752480806e383d9b42504d36d348e027d7a31591213c2c0f863c0f1fa1e0c1cef740f5df47287850e4a18841909e1d2d5c0108d0c71f202c2a7cfc79e2e6bba01ebc7a30d48321ab9f9d4ea5b8074224910fbd2f0d693a28dd36cd375631e1c1c086b3e789069be781784ed850e2084598f8f1e303fdc0f0167fe1eed75941f1e3c78f1f3f7efc151e7f26898ab7f0cfab7bde39e7393a4178ace2c73f398a5b3f7193928bfce3473a7211c2027924678f3ea3af748ac46a9014825d50e7ea84b460c32e880b622dd076652d825523f86dbbdc059570e4cb0624b5ab7ae6b0c09c8ef55a16c8b37cb3b0c4ca6827546295582516bd5d50e7b240a9edfe200110f6204aac12ab53a66c95f990a9e1128ed4346b4f27f7124e09c70675aa4663be71e335679e0fbba02e68e7db3ba1ce486bdac622b142120b73a69349ac18315c5c40d05d5ead411bd460b7e44b09a7bdac25814a385dd050f7ea823a17c7b240d95017d40975ae06b321ca6387cc56cbc3fecdf9fe00e7a3139e10f21f7f80b87e03dadce40429564e9042a785d7020a35e47c1451e8f1ddf55a3e0fdbfdec10dbb24490782fb0a1cdcc14adcde659c6264b810d37a0ce08cbe06fc7f9b00b6a51cbb001b177419202a5c196f8e62d823ad51db1ad223f3305910667a628e2f1b01bd07667a62892f1cf0f749e7d8529653333454bc5cc14ac4e310ba83bd7b7faa50bfa992986fccc14400dc6b7899d9a45880c61a5d49929583f0dc6210dc69fd128ecd950a74289333345f6621951851377f844983832d2a988d3476c8f15d23c563f12fa1eb9be7d2649904ec92c7c7c18df4c92204227b5864aa8a753120b1fbfe59b49d2e332a93554ae55a7e4153efe8b6f26c9aa65aa3554ad9d4ec9d6c7f76f26c90e5049ada102e2d12969858f7fbf99243c7e4ab586ea47a753b20a1f7fc53793448745aa35542c9e4e492a7c7cd437938427c8d61aaaa09c4ec9211f5fe59b4992e333aa35543e499ee8949cc2c76ff1cd2479a24884e11aaa223e3a25a5f0f1bf6f26890f22b5d65011e9d12919858f5fbf99243d8678b5866a88914e49d6cc14467a4418aea1ea9144d52909858fdf7d3349543c11866ba87892ece8947cc2c7e7be99243b846cb5864ac814af4ec9283efee99b99e2b5a3d51aaa9da04ec99f8f8ff2cd4c119493d51aaa1c57a7a4133ebefd66a670e94418aea1d24972d329d9848f7ff2cd24b909426b0d5510a14e49283ebec9373385108f596ba8780c754afa7c7cd33733c5d02ac2700dd56a8a239d924cf8f8a56f668a233e220cd750f94882d329b9848f2ffa6692e0f44418aea1ea892df167a640d229a9848f9f7d33532069307e0dd5131f6b0dd513b125fea440fea50b12ea979e3dbe278fefb9a32592ef23dfd2486c5717bee7208774aa913428831065c81b861144f6748ae4ed5248a77c3af5d32956a7b4273ab54518eafc2f31e66608b247d0c965d365e1a5cbc2459785cf14019898708ac469249dea82fa86656ca39144f253defce61247962e8b44540b91a52918342a344ad1568344684f8342a80ffda12c3a048865048d3545c39cd376369d590a4dac59e3a694b6e64d4aa91b322dcb382ed3328f2d886459966d1cb7695b966599a66959092247d728ed48276ba7e631539e51e076b19a464f0dd2171ea94f7e3a79d644699239a7c934e7a473625986516cce39d9270ebae883a51e596b108b314a52120d62a176ca5662e4cf6cccb22c8b4c9955b02cdbb62dd330c6dcb331cb981d3b43a7cde8cccb186bcfbc9d9bf3ba6ed7d4a0c61fb3a6695566dbb64dd3b8aee3364ed3346ddb36edd6382684e6ee2873b7f48c72d36edb2c34d3b40ccba67ddaedf1c7ee1a7a173f477c82fc8b8f51f8e0fc9452466d487664344c8ecc24669e52ca399939c6a6b465478e57901846c2a89403dbac9b49196890f36992d2b76ddbdabbe79c526aad4d4d4e2a870da31b866954532191e24f9714c336d6b46dc3308c6618c7655a8651279c0635c695523b6012c326c5300ca35fd3d9340998c4bca58d9c24975262f4528a6152caee99c96fd2d9b227d06753c64eb5679e656fec5b823febf64181908f9dcabc39e7a4d8c5b02c9b734a496da6cd348d62544e6b038d4ead6a9aa631098906310fa7945c95c94c27954eb1e6ddc694d22a93dd4cd328a57366d8a48ea9ba8871ee3987b231fdd6709e79c8dd2d8a25b07ee563144ad0792c72e1e438d27c8cf3f8d94bee6632cba69dcf6d8d45ecd6d82574f16324b6d9ca3827c72bb261e6162c018991223ddf431c6063144c787d47d183e4354b00a1972e893ce6f4e7e3536f3d8b8f501803cf7788612866073f738c331cf3435662f439e67b8e63bee61dfd36cf9cf38d7a165bb01b320d7609b3448ef9913a8a067ca7281af0690d8712455114fb32ac318f32a81c18b0f9f8931da539f8185f9476e3f685b353147366ea28be8c7df30d363a0af3e8fca1300f31075f737ab14b03be7639c6d1b3ec58cb81d44c1fdd3f9a4ccd82519f9fe904061b9a3e3481d235a7d3c1ef1cbbdd1de2274783db308cf3507eed1d6f5263f989027fde211a9492ab452ce7a14986e55bbb21f8a1e94de0d315b9f14c421757c26ebdcc5e6067ad37ce97909743d09c03cfdbd75ce455e475e455e4da26f2bab926724d85d7c1c186fc284ff3503445d5331f55075175d3448e9aec2291a3a6673e0a51534595114d5495a937860a0efe9accbbdb4205a54285b5a7aa7db66bb657f3cdfaa9cad8cd316ddb6cc96de992aa125ce221c9ad77db47dd9250d6332f5907dfe4a48bb297067cd32d216d1b931cb579e6a5eb913c446d295506b55d1a3086a7d54a337aecbb152f762a8b95ebd7cfa3d14834aaa22ad23c91c6719c7b532412cd4c91ab563755991af6cfcbf6d0a382e8a753a28b1a0d29a9445417892e6ad43f9d42893cf3e8cdead490d245892e0df822175d91e8c610d22959e3ddc322d744ae79dd5cab5bd5912fde8a9fdec34fefbce36164ddabd647b508915791d7ea9b481bd591c87add8a573fad41914f9f9de8ebaf5fc89546f4dae8b5500415d53f72f9fcf2475f0c91b3775e9541d180dfa0e813b948f3ea9de8a35e3fed7b83cd5023cfb291835f5d438d5e24848ed73a9df7b29975924b3775aac6fae6d2bdda95684e725bfaf8bdad84662be5e0b7b7fa46fac2cd47ce559a6a63abfe7ae2a31a3efeccc1e73b175eec14ca8b2decf1c3facc36e4874d3cbf0f1db7f9e00315b5b6b5c8de5004bf5d6d4a8c4eadc1ea9d148daa8bead5bc2fd4bad679e9fa1b36ef75eb230f3625be62e8e24a88053df52ecb7c240be69856b24ec26ee6d6bb49234c8a361a7977f2d270e4a7a378878a450c11f2f30c4ffc746ce475e4b5a2a0f849736637d161f5f10a1f7f5e439e07ef401eee0d55b8b768a1b2929282e22a5506e5e4282827140a8a83afe2271415540a4a65c50a143f6a854a4a4a4a8a4b4f4959e97cf0bc1f3b7acf5b6a6c940a15fc27a39163b5d2308679fde2a3541b239451ad1c7774caa41fe5c6d3631e23064af55addf3939baacce9a2eaa501bf7abdb1c1adaaf09377f5dbfcf4a97883f55027f73c36e89d1c7c94abb8b1c17a51373688633e4a0c948bca311fc595183d8ad7ea28282e516e0e7e13072b0d132ff1ce8587f998fc74b2d6e73351e6a58c09369c443ecb1c0c4426d0cc9c74e2395845f5ceb39a3a59a34ac39a8f7c546d541f79ac18e6a31d99752e1e4718cf0936ec9c9d2cf391772feb85274ff19a93a344189467de3488302a9e79a7523dc54f1feae3b7b50814af285e4f5f45f1ea331a75aa5f0efe93f78e4e99dc50859b78c641744278d583a8343a181e4798e8da862259af09b3e6e438f8515cc5f59a60c3cef9cc5ba753a79b72c393779ea1dc9a93a378e6b6d2682794178f230c8d1a13c7c1b109d28322cbbc7d74aa7b742a3479e799f7aa53352667cf7c5469341b26db1c474945986bd8d5aa7718e65e841939d6c3632b1ef3184d1ef31a33c76e58ef0dcfc776ddd5a2a669d3049fcde999f74da7764c134496cc57f0d90b3e73d20deda4c1676e6f78ca7cf4cd9bd8925dd1ed51bf5e3548ddeb6ef708ea1e0f364863341b13f49433e7fced6799c61a96c2d7083c245558eb25eb85cf0ac6f31d5f30f962a30bd12f3126f2d0efc81776354bbbd69a559d76be9d276b041f6adf397c7b87c7041ba30022d23b3e7ea84d9da923558fb57ad040e4e34bef46dd0bd4041b8c3146182578e851ed5166ce8bea4b03fef4e998bfe85496d564ce9da2015d663561072e3b2bc135ec1dbdef0b1b8d250bbaf8ab31048d61478c2419b4e7c040684373419d2e2631bd06bd3fe641cffda2d29a6f9ea4f559e6d345f0b57ad75f0eed959053a89e3a12cf39fd96f870f0f7f410f32ccc320c4b40a7b0ef315086fe5ae6e1095bf1d7348f5214b9ef06f8dd0ae7d98f1b7a7ee5e38f1b787c113d327715a41c58cedbc32cfbb80896f3ac08ce6bb21b82ef83551a45aa8cb7041bcef79460430dfc4e7137a51469bed2a9cc29aaddf357a12b7273296cf550e5e5f58458140d1afcda45b56bcedf3f9f1f9b9fe8d33ccca55b5384d9aa2b317aee9bb36edc22f20cf4ecf32709cf87e04b95972e7f92ecbc14e2a5a58e83b9179daae17cbe7421228ce6d20710613697de6ddc568b988e4dc7b4898d3c2dcac6385291f4b8c260c811149d2c9def628cb76653a7674bb2ccdb6d44df9047b5886e0685fae4119f7a631e8f04bb1313928b3cca92c49a7ad659387dfc69622e3defec741be5f486fd9e4f9d6feaf4863866d645139add1acf353f312142bbd389be28cd33e619719b9b4aba3bc364937260319dcf1ce5ab7506e57d6b5019ab3af68b5d715de586569bd925e5c0863868a55e83a1a8f374566114a522e5ca3bda589ee665363a9a983993473b367d7cd8496fe2db631e2c837a367b7c8803a39977379c3adf398ec61c87776b1cc3b0ac3d4d5efa4d1e0ca3f3d3577d8644099d76ac922cd34f6ea859bbddf044bae1c94537f4d20d412738ce8a38b7b786fac8db9d60199d76431c336cfad5db431cd467c471172572eb9db34abeb0f0c9e21a11f2cee7a187d6fd72906b5a8bcbe246c9d239b0247b390f71d01f79e7d5b9ad16e13de71c34471df4dd7423e4e46c6def660e15893ef031be4cb7f165866499314622aa73f4a977948aba93905bcedbbd0e728265e44ccd9b3abf7dfead7ce0f7e2c5c535f0994fd163ab792dbdf8d43be83bcce32a3b6ae39dc430cc67e26397b463e9f785fedd55cfdce61b07fd7aa7130ca3f319d2fb32cfe5e4ae26299d1348fb8c74adab0ce5a11e707064c600062a38127bc6227ae43ccc4728b8887c37bd49b39849cf289d94ce97f59e8e79e8c9223097ad65f2458459427a888a98cb78694010ebde6051d2a54bf0e7e37821a37719c7ee8c8a5a8a51647d7c57a7f8d9bb390dec62182dc33eedccfaf671b10c8e30628b84c2b794524a9fc8d22ed909f165f214be5b9260316f5a65e46354b2abc1f6a65376894e563e95d5a38cdec1ef6e00facca7bb34b75213ddf0f4f5e39f1d9ccb96de655e1b407f4a5d9145bac6ac86c87078e9dd659fd822dd4b82c5bca3b145a1cdfbb00f7603fcc93f2fbb38ca2d059ae6ac79c6a2614df3ec63d7fcd3fa31cc1973ce32d7e65326f2d343cbec18d36a8339eeb296619853cce98e1d0d909e09492273ad0714a4e8f1d431528944f21595924a837d3ebba1376f987d374042ea5d632b0d63d8a8daa89b53ee8fde69c565881a474ce0061337393d76fa4dba7a6440e26d5a0de674f3d85d69588a275e7a9669d586e6994ba73eab0deccecbb1a9a8a6a18b2b212301093ccff9f44e6673f35eaa4797973fe3af810dcaebcdaa7d0eef7a881a474ce0061337393d7682f80c01eabf01c2c94a8379dff03ef70d4d9cacb6bf238c707abb087e361381cd3b571fed2bc18f655aa5f14931969508ed862f22126cb8f292d2b47396455a6dd8aebfa8346d34c6512e9d9a110400000314002028140c870483d1784024eba2ea1e14000d92b45272569b88390e53c618838c210022000000000034494000cb39646c351c34ba7268206b62d2221e995e6c6348d69060d32389f457349f44a3cc59e91a5736131e9eddd65050a5061943401f151f8f2d8b2cbebe39582792352e43fc3526a048d32698c5779a49be6b824959cefbc64b1f59d5198f154e4cf4ad3ab4ffb91e35f4fb6ae55148c9ecffef8b084ba22bedc64bb809378602d5c83b4ed3ada1a3b016d405814815a52eeb3eb7ae4c9842cbfbd0d5b9810a14c5809e780029460afc9f33cba8e68104f48fdd356c6fdba6f51f56148bc9ac3c364c569fa1b7c4cd6d4a0867c61961200927049429d529958820edbed2515a5415ffb4db1326e252e336ceddcb2387d77ff3e506374ef632cc87e732316034b04d723d76d17387c509ab705c4120ce2c145dd12743c262e434be909a85dbe7f653b6927b1666484fe4e6fb6d0311530b55f14b7491a05c097d5138d97065b93408a1965d44fe2ed404d8d32e6a4fcc2a2f883026d06cbec971794995522ceed4a67393a6a32528e0706f4c0d495144af5e30532df51efe8566a5f3d4ac9c6f6ca3ab8dd633e2b689865a9d785f9e373ec25d12325e6b8638151f1a866f230e746d3f9419c5e1f87fde2ecbcc83b08bdedc3b901c0703c27520d440c2140762891eca35d9869aa047d98f2640fae3291073af186413c3cc65a17e81846d68adbd4f369727b047b530f6f277f660b9ac6b3a03e6d91c1acb89e1def095344c139ca1187bfd4d7bfa9b6dd542de824d4a6262263469d31ea19d049cc95ef10d73254683a3699eeab77bfcea0b10c876ced0be00002e95a07ebf755c7a7e8a08c7c9c6b23a65917a87dfe8442462f101ffd058f0df71d1ff6217eb8503f84da66fc534cfb08bac147a12c3a1632fec8f05e58a284e91c75967e41ea50048c1323cc3238f9f3f59239ca71cc676f1d6992913d8c25c783437a106a318a0270e484249095cbc84ac4f54a5a8e464e82c1d93dbb3b3eccc33f6e0bb3b4d9c820181698160fb4ad7c5a71f44a3a053166c7c982ec7180bfedd41c55c1c6f67d335959e60c2fc67668b8895c93f3388856f3497603659907633e27c7e5027ebb2d1adfcd6ee0a868dfeb63c46c6a05f5abbeb07cf9c700b1bc90b6de764d558be65a9568be53837fd1f9ac776f010d81d1f1edb8dffd34dc2d55f155af23234c1159f9a5eea9e7f6e9610d45c905bf0cad1022b8db8d9949b6019e60b9fe536263434b7d8e8cfca9d2c25b96e78807602ba3b5cf463180ef7fa08a0fb0d8a744017936bf157f9d7c20efbf3cfdb559bb124154ba128a30888e910e65562e76e648612a44965ee2a74ef98494d40b5beb676fb844bdd630496d24fad9317befba568088e4bd71140afa8d33fc613fd84fd5aa04f3fb15a572a1eb25e8315b504a240ccb7b83002607cc127907997b88c72af805c20402fce09c635560326b1558f56db7f64eeb4e8ff93e594beaa5a31b64a682b7c9ec2bf9b3842ca1d3526ae2afcd25df0f6ea5a404636a7f5339c4095c200c0663608296e111834cac5512e112283d499f151e209949ee1ab2c74ee6aab673ae34d5d49fd7436873d021f3f3098d6f9e2900095ee8832589a32d9c813f0b0c0ff5aaee7703d373f3dd55fd00d536daa311addf0af6fb0d65960802030c1a04774cb42fd82022f662b64522acfb30ac2cef44a3a8caa7440addf446db11c26d637116d10c0ab6a0e45466aca6a8e0338e7e4c0d6a190ca2f54326ab742092e336d671923bd92472731a42f74ebc6e89caff2712dc3f2b2251821375802a54c684a79fa610f899e020cc7d6d41591102b3bd3d12fe39b407501ade5e9dc194d091f2a71f18a409ac832c193dbc54021e6edcb056e8f55d158aed35e1ec5faae143d10bf10386af0fb3a7c3542acb2f6f441904071b1c0c198a2922161a0594a2f5ce720b88be66abb1b1bf80784412bc6e3b48e5f85ce8d36a807041613768fe3538d051299e4bd88ef7ea06e86516f640031a6d067fdc7d8c12c4cb086ecb8cc7351401e05917155b97def93a3057647d8c6f0c34d08cb528572b10e11f8a14989b22709bb57b37fc8659e6f7a71dd378b0c8a3d56e168d9ae3f1b66d5419e1136f979d817cdc8412bb257d0acecb8a3f551daed87c8f68d47d2e0ff338e2e1d5bf59deee0328c03e3785cfccd3dcf260ac039cab485b6c62042629f99b755f77297497c4d5748c048d5a5639205a6fd38b23850e05ab63149f2c0271d93677536011b130f0b83781402080cf7bee3e6b0c3341ec3c011458fc17658e153b59e04f54169889dbee9c80b870af1d7d1914a236c2c57b061123aacfe1cb2262576b12856a4b31ac5819778ec4f91810f59d49c713c7322a0ed0e219b55b5538ab2d43e7fbbcb0cf87862ecd517b408545800916c02ead96281465d5e8ca65d4ec2b49b5557086b6eceee6288ed1063b9ba369ba86a0bbc77a869fc80f1e35d78bf7cff04076a248c54f0c1366f3e3ae38489ce255b37aa17da94c1b1d90353168b2f3e20dee2ee0c4657833bf0999ad9d6971366ac710971ec7267423811106383b9eeb1d7a8a06fb97e3dca564ee95312cf20148e0f953e3a08b4c14b6565ba7f9c7adbfc3130e1540ec91dca413f3ff9069ccd093acd4333486d3149e72374aaa5100b1e4427642281abcdfe198a7a39d126c82e3358611fc2946d9edddbb6106af500fd312881409d5ebe3fcf9acdbbad72a7508957798ea9438414f8616dc30bc4a38e3519a2e763ccef5d8a8f5365835c1ffaa4b52a2c99a9b1f30566b0ed778fd33fd19059c29c47bdc581cd79fa275515454d49cb73681cbe0a4fd95742d8a634d50bd4964b97c1ca8e74e860535dd4136ff6ee62590efcd698dad13469032cb3261895c0b4372186664635598c5daf4df5023a55588959f06322ade93d180676c9f27febff13561fb14c89c0776db9b4a6ef5e4d69c389c44ac54d9a3d48d5b009af1adbaab04fb8086fa1c063ef5529fe04d56bde2e5438d6fc268a19fd01b5b20184397391e9ab1856486b645edb7d51f69ca873af902423bd38d2e086b180ea12d9f5ffa0669ad1ae51136d308c51312d942c78bfd23116b7edccb6a766ce9456edf451e3590f24203d734724418ebe03b6c97d3e26ecfcfef44dc924974f8e26f5f0ff0ca6cd33e7c4db2dc9e4db2bf4f46efe19bf7a6de632798be34ecd9e9bf449e2201297d7beb3729ddf90e0a38bc71a3c96387826e75a7cebe94dda59dba042e793bef780ed8c5dc4f2f1528328acbf7f1684e33b1e7d94f6b4a0ed0a544729a908c88168453f661ec7c832ceb3ffa41b956107e0719c702277e2581817bdba1a557274b0c12e06864a2deda5393c77d2805a896d0354716eeb450ca5b7935646e6eafc36db2a2691cb6155e87ec33323e1a21079b3a805a13eac8173c327a38bcfc7f0311a54e07248a909461bd2971424b13125f6cd6849092969c41cd67b108cbab967b90c0346495348d19ab6fd185c660d884e77b92dc866a5be9d85c4f31fba9b7451c5e64c8b8741af4ad2cac68da1781a8b820c0200a7955e69648e7b5b3d2860aaf37e11e83cf517e73f4b5705afdfb9902daaaa3a88354e119389682c7aacc04d27ed41d61f49476878f874ee2198fca8d4b72e4f033c03133c5aebc0c5e0a90993e2915dff1b107274b3970fdd7c17f813e2077a09a9ce7c315fdf2e74330e45141356c6a91d2ee99c1495fae24c7515f7ca7140bef1866bfa8e2bb1860cd342c6f1323bc088d5357f9619b0dfcc8ed1ddac52a6530b1c84ececf9efbeee527584c34e5abbedca6057e082a07b936ca72753eeb2c0a72a0cb43c4a0b65ab2cbf68d219deef7c236cc03035d3aa46b67ae63ff2adb531d1dac9d485a39757a55f84594b59900e9b92776506eb9e5047f85209b63bc19f2eb4f5f79c7110e5de7e20f5f7ce8329c6979868c1326602991a54f7a787544331c86a3fa66a2398ee0f61b50f03a5ad176178d1cb2460b8d89188dc46f9310db7c60372eb60f2fbc7b156c797547c561ab4d40d65fb115a5a59dc912472cfc22bc84dad78e6c204524a494a31ab0437aeb1a4e7ec7f175602263e57bcc75f5bbe96c898adcc88c8ac31253314544b2c31e3234a3f9c2d6d387162a9f6f58d226e3a6a5e338b3bd62c236aef11b7f1419b828744fdf260193b130bc17923e13d75ba45eddd84da653e24038954d22e9b30d3ae40b5844a53fc683f012a4b055f176383004d5e6ee81f8b1435db517d72734d5a83fd108c7411a17b3214547896822bd2e375dc449942a64de5c8ed7ebb6be8a02eb8da5cbf34b6a6d259c0a05c44669247b27943e6b94b20a3768a184315ef46bad2038a182efc90cc9ea5f36d0b0469de4cd04984ab98428eca53468295bf1894dc3579c1a51ee0f5f668e9f3850c8b81eb98494563db9c96150adab44e79e8de808a6395d9b7a4edb081aca4abd0fc01080f9d3ee41eeb81f8485f3a6305b5268199f9244b1fe2da8a0d98a6f72a85dfe4856e39698be9a2183704675562fc7fa7e07d8bb0cf3e284879672195f25c6d26c0c6a2760a2b11ec73fe9533ceda4446d57b219df817f3c718f74e160936dcd15a8280f8d78ce5c6e58a36a2a44880b2a4893468fdfdad585f457531a9499c1084a4d5dd9a1cb91bce4f8d75c56a87eba32e39620467fc002c696e3e9709448b132784b2367ec41fdd4092fb464527a08cf1c51b5f34d211ab23f25cdf02ddfb2004d799bacd550f577c210a5f08e84cff9dbf3af3278787981a515758387d0dd474fbcf19a0456b2c17e5fd2157a5cb95f94af1b10701e51e40c42cad91083d1a7d50978aa18952c82597a4981185e4f8316d0f0c4535f18f6b5dded58d2cf5ca3379fb6b415352c39f9ed7f974e07569c575de5a4a57e05307d5decae8dc731a0156c1e6ae4222bf020275c90898660b5f0b4aad7761a0bd9ed8d3e8d4869b15877b99468c5abf110ef131361e175820711f816c1ae755c35730433f3877586cc61051e10c33951b0f66313202286ab8c8e16971260c7d311fdbff01c664f828267c8063938c21349aa062e9e7f54d0595789fbbaeac85b2e1c9c81b6371496c02ba8aab586377f1c22e938d9f221eac21615d8d88801d1ea0c625e30172411cb4246fe08329ad7549f6837cd32a2ffced5954d34642d25ea7cfb2b2ecf13589c553d9b8698db8ab48776f6600da9aff951fbdf26809fe52c463f630b19179dcee64229dc9622f841289221a564b2c8a6fdc7ce0f901084e5fdd3805fabdb41fe510a243f1f0e5e2f773d5aab744201c4706974202129f67dd58fdb828a4ebd1b9ec757a96bfba1d858fb0dfed76e588482de644389f8ccb7299196525f088de8cc048a3623f5c343d42e26caee4e60b526c791b5209d650683a9c95d89c9e83244293d69827989989e4a5a76c1e304061916663a7a6dec9b57d7dbd3819e5dd1432c01bdc65c1a1b13995f14e6d3a9bc4659c53326ddcc6e4c368cbe68ce843b9fe88d5a381609e4ab1d2afa3205ce7721d16790dbf4f56c3e3efdfb8b6155e45df9017626f4d9d2c3305708beca836545781181751a6108ea1505c5fcb02ab44bad8d54804309c77db22d4dc78931f9b837d51238de240802fab338123f5c68a0b2e55b4030363c02c92b9a683e8976027d5da7ddfec29e37b3266fe1bc0cfc79e863e1570279c24fbbda821a47d1dd60aa0180290fbb57a7da6ee49182995fcc2e8e53423c39b1102b7750df25d40c00846b5432aafd81e510dcd4c3791fcb8b2cc241ef43e945aa9c01dcbcaead8ead7297b54279c16597d2cb2ad015bb80ef7845a341ed15cc596fa91312ca652114bd744956a8df47e29afee5d8981672282fccb9b3cc03a3fdf52eeb833037c874a37209c1177c2000ebc24b429397bfb0151792ea26726a27da58e10ad47a35c200ecd48e08fb576310118de18cd10d7430006fa5f0260a3e4a536485a210529f87c02e6e60ce1d76d583713cac989c52370bae770218b44082246f5250a492ac2ad46fce4f7bcb7db27f722dc336a6929694dc23ac4d68dd2d96a3cddd8aa139a1cc763f1a54b79119c584fe1779da52b5b81a7b78ad96ae5448144c5cd67bc4dbf28d38faa057cc3fd299aebb798782a0d40dde0105237011e8432df191c364156b861b6be90286826bf610225aacc51adecf871478d21ff474d279fc51748818260d61a18353eec4632c593c30b232cc0f9e479e0c631ad6b56ae0618ee063ee8d98e6d99e9b767bbe485be451050800ccf74b083dd36b431eefaf278aa6ccdaf461cb31d338e1d13d126a06e46939f3685bef49292daa16f4a93ea4f51393acd14437a1b127c83da830b58d3013b9c974a7ec519c93796b6249b50bbdc06f8d2a3052d2774bd68ef0fde08c503d33acf2c4faa9ed6f598647bfe7a867f503ab90e3dc100c40a270bf9d2fe06c4d906e7eede3f8f0c4c31c19df4de24610fa56d863636141996c7ce358f70105ec708250c96c7585a22fee89a27a9255f70da35868efc7b70e80a508fd816746a3a21b138df2dac8782eb77cec1eefce7436287dce7b5513b3c0b3feaa54b09da9333d8eaa14b331027f4ef996561017541a598733370e5df1a7574a5dd6c6542d0e8202cd8f8bb1244d83706f01d45e7785c5c139c1e2ef81a65c624d75ad052b207f241870201b3b211b9bc5830ff21b071bc0eb1aa30b3cbbc15cd4a36bcc1b281572d3aead9127bebef17a9604fe731430bfb01c680c09e380b399092c022cff7b6b3644240f36a83eaa2787c8d658aeafd791db68cb6b7244f53330506876291b2b9feb5fda4168975b4fa466ffa626b87bb38d302c2c2cba4c13f789f713726e9338ed699abbde048374df6f6ed1f2f0f2982b5256076a810bfd02ac1a510be2fe3b5f72c7880b2b3dd8f746237c1cfde9c6ee8bd877b48544b1b70eec14621967d249a0fa234ef021ec314932311888ab6bbb1d48ce36714fb51692b9f7f6ebd0ce3008023eeac60f1e7ead6274449aac9d08e7e7b61d71961902a7a73ca05d9fc18e935b57e8374b219f16f09eb9a7883c00be2d0dee4a1fc0131e2a3ce12a82169733e702963689c9da6eaaf0ee478aa830c871c6324cebaa691c9ae2ab582064282d4da5966d650a30602481ce4ac06f21782392a6c8df1619e71da5461c38615c535f4dacb8ca3caedd41ab90e28f7d7888652668d7ba0265ca929fed74b31b686a60d41bec89e51d158d66b42f1a64546b15b77f9848bdde8b7f7ca60008275c72774e85a8b30cf94f0b2e245035ce4a5a3f7ae8df6a84075427b81e7540e5e2b28a7e262bdc32082e0ff9ff4850a33ad981c040b6fdb7bcda6893fd77bdb8502aac4396ea0e8ef410da45edbeca84c90f3d20530d37464c34c1dd5ce8372cf34b1f711f0884346032a29896318362267fe10e254160d3a4923ac73814caa476ca5b026afa903dc866943d64a7c3986aca621ab1f818e52813893d5ac69011b691704f7c4808bb95141006371f518a8981f0d922c402f78b3c46554c8435acd477e5fe4ab72b82d856b2f401df3813864db67bd225aceb3b2c4dfd5e6db472a41270e2c15773deed4676466f8afb3da68ae91f8f42732550d161f818b88fb69685004ce67ec4eb87d6f92af89301702a14c8997c7a47e695018ce1a7e83a524096ffbc4e5d6b5db53ff2689ed65d1cc67dd31357156d9af9b87bdd580cb191d9d8a9a56191c8ceb8047ec0f76766621546297e88eed8b86fdba73ba432c3e4d7762b6e0c10f09323c3abe91be6e42ab52c749c8fd84a494246a0ee95b13adc649e39bf2760d0efe9dc337c0f078a1a65b0b86d94708897c31e61170b45ab819ff130a3ceda08492392a37d1b039965b7ba78589bb849666d46ebec9c919a7b496746bc904abaf9ed2daf7f8ac6a40d7382162a0480d2b76908188555761bc3e77e994e72ae33e08a70fc3549c8657dc464af2b4e5ba2d6c26e00399070dcd62c7614e97d700ac255df03dac6f214c4503deccc8bd6f4f3bc90b65a04a9a3adc1a8a954a277eef97dbad9058308f3f8e4729346318a14bea022a6421dfe40de9e6d5c6db77770c9b42470fb9dc8d85f3188cb97024b6336a5c6ab1f02d48232be069ed7ee04b5802cbb65a6c5f2fd3cad6eec204a440c46f1c5bd4eab18ed6b0c190730d0347bf07d32804c647dbc8ce9597abe9a266a39e2d2e51d0b5dd4e4d2e75909ce8b916673b31e28a75c4d14a959ad76aa16f626192f04361ab72592016359dc4e40a422d6800ee63e8175715a356e87a27ee71b593b986f5e2845ed66bd96ce5a3dd318179de81201faec785b15a148be2fd1c9d3866d951034197e8555bc25db3be4e2885f307a67fc5d479d39153d0ef2fba518cc74f7a62fd142d1aca93d41c41a2da723ae022395375b228c68200bb7f07c09aa7e8f824c0fb0b3774149469290a6da0c2c2c4aff9b945382b4be62187ecbeef8a2b146d3f004d8ff908499505c3c3c66a01bd23a01470a4bcc33a20b841e55ab9c82121b1b6e6d5b9a92713f28f1108b2f15f6327efd9de9457f97a2275e153b104774185521ec1c260728e08ca07630804270c58e1bad19a10c288e949e7526deda91777bed547c74e69d58b0bcc22c42cc8a0a5e1a1ab62b4d77e1b857c7fc1265de27190757a0fd82805d8f2c5f9d29836c0be67d2468902a3e079aab6a95620c01124adead914b9b16272fe50801898cbc0be3821ba9da25a15095109fcf9f8f28af9f15729c76e7db34c5d428b7f93e863595b780ba84a7e5cd39a4b46c117d50c368a6ba409755a0fddf0db260dbe1bdaf1ac835dfe4b1835fc3fafaebb26e4d147a2065dab6dc8e1102d062d910068991ada155b725d7ff5d0aad0eb5e9f7307c5d2d9b25e87e2492d4e4e003ef4af232e2a34c8b4e702d465b9c5d92217162818cbcc43b5a08cb365e56d2d219ee816b4be5ff3fde3ebe2c1541aaa8fd42a54dc49592a3e0b29e48698f15b93e630919823159a9538897e946e700e2cf31a788ee36cff14d4bd17196bd01f6486a36cadb3e7179ef944bedc1a004638299b4fb8bfbb3d4ca33004d33a87cfde094f99484c934334d1f42f7fcd87099e0bb9fc43fd5e248673f02f5365de86c39379f24c4279f653e39e466ecd9b0e747ae79b88a534057af79b95349e13bb986cb80ae3ca2fa15be547cfbc53fb7e7634b4bb3ef049a5f7c8b68b3066ad744d88d045da16b963e4030455611facd12f1fcc298c7a27d168b89c548b6d80bc00af55e3b07ed23a6465f8bf6bc1f31922b28d0c7364ab31dc2ee49e16d77a5650330afdf69996bbeec707a96b2695a4049aa94fda1410c99391b97ed03f00d35de186873769370741e98b38882b27e3ca699ac4d7af53e691b51d4d2498db177180a0c414d783ad9a228b83cdcfcd9faa8f6778650b52f26c5de9faa208ed1eee3548dd2f36c74b578dbe09f4508b9af3d60052ba3a867f27c94c371a49ce3000da865769f3c2d197754301cd64ffaa92e5c0407fcb26852c885cc5ee682374d86bbbb4916a8f2b2b2e6b7df09a21e816d172ec18fcea42732b4ae3e9370c40940bca1c78d8bb8f7c71af42f305988eb9ac66df96e9188467602d9f5d11daae49159103ba53208ef345c5e7940efac9fe9c3c5c4b8c5daec9df26b5d7e6a1cd9b8749274e11e301d1baa161c1f71b31da8ce4a09311b811f55838db63972c0b2653c483e9507d61ee76ba79e3cdc3b1946cbb50ada60325f1af76ecec0f2bb82b730be4ae52aef568a98fa1748a5900da8502322b6671bd5eeee7278fffdd3b318815cc7020f26d237ede53a02e673d95360a12699543134f7cc9c05e32478c81745798edfe8f205db4bc8243d3b38838c943266d14b5bc50f25421b1c8beca9bb76753e3a82e538d4099545f20cd88593c086415929adf8bde77356b123d0e4d761e544e7bcc0cdd7808bb59d7b2967d83367c086ed165bc661db72306106ce881b5b00683fc3599e6ee3d5ea1748523783395d7ad94ed3ea95aa2c6fca4b21d68685118438a282838cc649ab28f5d32a98964afc369c0e68e396bb5da642dcf59d8245f4a6d3668f388a316ecfaf403a1ca5f1c2e2cd3ff3d306a0b11cffc6d20bcb43cc52b35dba63dccc86e7677a67c97ab6d4980817e9aaa3386f80c5034ec9ee3aad9d87ef106f92c8ed277acc48b19e2e846c6daf7c740c918bd26a336038c454b4df2e0430f9788d5d5094f9bad85dac413e0ed8482a7ae72c70972aa27281508290b9e1448157c69712134262837ed788297e3135a989c09d1f92220777c125131e42214a8c208fb23dfeef5aeeb5f520a2ba2962dc85ee05424bbfe8996bac3a876e2f2c084b7c9566a2f0127c26ffb54ccd7009ee2d3690cf67d03682a232a8973fdbf258a79fb01d21af956c283134f985077c6da41fcd3ca29511942569a65f00f785af44bb81f51473f035f5abb0aa6e571e1ef62bbab7de5e4a91ceeeb084179c1d7f544851df20f3c09f9358fd5c47bd5f6e23a8b9600ab40b029caf8f51b143de2a22e8da1d6345df026c292cc49d12b0e18a95179c74a1795abdabc022c3332311d7d5c55791a36691aa8b32d119cebe176553838aaa526f10fb22368543d64a837ac20d991a566ec12f33edf8d3b3f93c712b69b4514aa998d720af491c8117070664ff777fef880f71fe7d12f4e8497ada8e9d3cec8fdb856711436f13abd3d7aa924b56b6f1f58f01a1738d7491dcec0a36c04dd4f5e2a9c00782dc5fae4bec6cee7b64ad9a2e291baaa8d2d2801001845cfe15b23a86eab8381f33466c15639dfb699de2bcb512d6bd4cb1a195913eecf8790a9d4b3cc5242978f3ff7e1210d3d57f561defd2ec1dd4af40b62f5ea2ab151c7e20799dd057886e87768c4c9a85bb9179599f36a8cdb6316217d569a81a8ee3d6d6dc7ffe6ff278e708e2276c143cbba79813876962f1006783cdd2e220b2d70a08b8d770b7387b9d4fefa65f2b047bfae122d61191cbee1d8d5618f79d6bf14a4a8267785f4feaaf4cb968555d2f1f359661293c46f21540255daaaf43c5666e59ceb1b352e8abeb73b00aa4c1a2faf12d1d4e1816f4522645ccf894409084180483cf81413f16ffd09a83a2883287f099776adc927d576b29953d4de02c168f2562d094e1246787b2476932533bcc884113aeb731838baa385d5b86115d52beb8cbb7f0fd41af31375ba91f281b153848d279c795c224f6fe5ac081be738f217c3c6597d2fd3db292d461d17778ab7b287e40f4d9c5a7f31b5067cbc05c245ebe7268c1f71f4d5785dc0cf0abc0f0fbf06d6dcfe6ac510ee366edeafc473a712575859383a2977d5a8725cd601c0e6198bc2df29fa48d059a8d96f25e9c9e0b3bbeaef06f020a08c8eeabee2514880a8f653d272fc4a917f8b6543403928b8c58564792b3352ed121e74358311ff8b465baaafed7e00378924118bc03dd13706f69d370b9d5adaaf1670a1396c8d90eece2ec6d0fedf2882a969f764ebe97410d6509476d7d8ff892eee2516204a92f8cecc44aa2a052599118ff968c21e4db5a5cc53c870b44eab04b1fcf39ada88b8aa0b6af6186792c7cd0487ff54342ec052688304bf1cd404b8cf42db07ee9502ef85a2dee3db31880fa884aee9acf73b6634ab19e0748f81ebdb988089eed4a79f2f35b0d0b87ee57b4e5822a1cce90c45bf7fed005e1f7027b381f26a31e36346b624b26d3acfbd6b77850bd7eb08ecf1f6e00a4d3b0c3ce1641f051ba8aec619f5930dd639fd970da762afdf0c509b4d8fb2e84dda28524f6984a934171f24f9f7772826da7d7735234d14f60b926c20d80c139bdf5caa729f6dce727c555621f2b0ab5d472cc9a099e01b77bbe079e435bee7c707fb2e0733643ee34f5117fa37e942475013ab65c83600bc288df222d141a1bfeb9fd119d71596f7f46b437caa9295000e0dc8465a4152b63c46a3f56df63fb8e232aba660aa76c880381cc5a7fd8b6c530e38ead029eb8db7b070b307075d4225c09a5e675e1a2354f9aea1da24ff42a076e4411737f35684bf49966d4ab8626f58f99692db0d94f3177750a0502a2ab63acdb685577428717f6e02bf04b7676f0d564b9c074e83bd7e7889058b36033db02cb02721109c8033802b6f65ac43ea81b306bb9a5c83a9a3497cd19b143ec582a1bcdb476df9d350f2c469438f84fe2379063dccebb7c18cd66081f890fa6b58edd120815952b3ac7d4e367ae1ef86d165a4437de3363c594d1cef9331e4727f64ad266bf1f3a02e7638cff41119d27fecb40b4a822d71661f07771ac877f1541b101bf018837b37a9505c577013b7bbd6b3e6ffb3baef1ba84953f3fd3b3e86fedd34d0413e85e5049bb0122b5b47910e4225aed96d9ad7bff4a277d47fc3c9ddc77630512846ad16fc11999717fc82292179df983fdc4c55f97ee61e4255aa52429d87cd470014c4a200bed80e00f449716d7b44d8fe892ddce97b891a648ce7154c5e3bc573b1b4c541bd8a041db7887ff13a8841fb3c3f12485575430fd308e434e7a7ab872808cf5d9d7f1dd047b8029c4a03495b4276fb1ece2fc97c3bd4e362823108bdab07c721b461d3d9bd2cde4de57ecdb8e32a0028b6118a69aff5a7b33de901f78dba4335a518e1ab8ff79ae25c6b48b269d1a979ff986f6c7828fa61156af426a7f9779b54962d14dd4c72db34636d923b758442c4e2eda208498e9aa4b63879ffb49c1bc49a08860c2f170c20f345af48fded016d38e2bb65ddbdf8d894d286e9f2f3b9896585674d7d9a10aa2a12d39e08f2601245a8cef3031ccd49b243449852238a020f4467a6bf0cbb027de7be25078f11b2c7d1c2e673c53828187c4753d6af8b5c98b9be21d109ed823ef3f5fcb690ef512337c36f1dee8a98f6ce0129e1234532d8c84eb313082490886338aec5eed2ca79a50d997cb4680810b17311fc533dcd5102ce87b3cb977c7fd320a47ce47e578421c37f9c0d5c85202a483496c4582cf2355457fb29d3fea9528a0c5e9755f6d5d2aa6069511829bebbf66ddff68b91eb07bdfa7dd5d47bb917e82d83233a3fcaf86a66b52703ade7f512f9d7ba94f54774939d199f54d12557ac04921c474d6500b7f549830ee1f4d841697986915cc7bb0aa1ff868192fa87423ee2bc2ec28c877c11bbe22f02f5f379737b35c5601d784809b1cbe633d3cc1cccf42e6902c697834cc91e0d9a58040471f00c658e0e892bd01d128c2d8183dfe73201fd3df794a6f29f10dd58e969f542076e34c1eec31f040bce2da7ef209268668d05379db530197e2145779d2a19ac0aad717d1b5895903b69f186a8be1d6a0e921e88b0c06703470939b6dd7436298618b9ff8adce73f8cdb275f1f26de537b3ba27e73aed42849d73cf350cb60659f545b11ac73bcaf15a03ce7cd605c70b6f324a1377409ca0cf4e74a5c2e336d85e195b5e4cbb8c5b861c24aedf6fc636b06e03755b62209290a0e377d14cf49f0dd49073dd600212856895cd1861494dd1a28a1e3fb997d9807aae17a5418115351d8e45c2121b00e3915c4045d9c671f014425436e3df306b1281725210f4343d3b6ca7f38d89dfc857203c3c380243aa95d1c9ef98089b8c7ed9b2622a09c3720fa4a94c6898729b848bfccc8971784400b62697fddffc1f5fb7c9a8e702d8004ca63da78c10be836e143566ac45d521c38a43b99814135d2d01aa142cb727ca00c6988fcff549e46938dfe67cdb23f8e1d5a7cc358f9026c23029928403e4c16b79e50a638ac48d6a5ba7ca9e040d24cfb1e0e926647dce49286838252aafd07406353f48620a951bb5eb47274fe977d9a0867bc84e01dbc642b4324b8f7ce388c77984d8c3c93b3c3641a7a9bb6aee62e506fcdad7d1ad47f90c38533a06669ed9000c67d1ab72086ad0545e58563dfcbb3b47910a6be9797d4766d398882b22219f137c0dace141fa0a82bbcd6d65d128d624c3a241cd14a39835b267dc808d6fd2fd15866c495db3feadf3b46fb3461245da099d2097ce145f2704672b8997e6f63b50cc90cd653e509ff20b034a6f2afcc285c319f66c915c18198e3ba23e05d06d7cf9758b3850c7dc6de0d3414606009cdc103626e3eca909572205028f6005bd40b71e74a47920ee89f4c45f7c830b7450ed1be09e58e421bc79cbf8bbc59f20e60425ec0058d76e19e6f60b84688419d3bb4a65df0f6e192c792814cf265fde8a92ccd5fdff2d7c8ec228bd206db1985eaa142478cd572ce6cac0b04b8c9cb77fe6a3789c3926ace972838baeb69e4449483668d50885b2eae10a48db088edbffed238574cc646dd44bea75f003c9f39484a63e68e7ca5cc5d0cb84c3fd3c7e1ffc9e1a23e85a2588bca8a1e6cb14ae4a2a19f7d57c98cce51b5672183a2539c7f90e866d55d2038aca97684c9f014d0e18803d7b2387fae3673308a82c29ca9ea6f88cd91e287ab1cf788eb1cfe549ed0b7f74da37b815ea36935c6e2b9da537502602256155231743fcebceff721071e814e1f9999d6f1efc2b1b7b1d1330b9576618b9d9ad7fae6b55f4a54fcd3460c29a39e28f2a60ed3a5746659374b0e0cbee0893b95c6e07cec42420a1230edb0ece32766a17343bc82d3998d4928d58f90e6f9f7cc68f3ab5054bdcfda76b8a620ffdda45263dbc125b8787dd79976c2885aebfdce570605056e08caa9110e783d949510dce83bdb444e064e371d99daa34ec7fa0e0797189ba04dbbdec4dc9df61c3a7c5a06d162c88048ab54ba1e6494ba708db1224df501105003208714df0bec026754a29282715cdd102133412a3061198108e7dfd79bccfdf8a8797eebbb61ac6840d34c5b4b9706f4f14eda0f78289842d979e25d431e345ab766c8bfcf0000d010557d5319095f6580c2d3b1a78360c7f0590c6a907df2bd333a1612678ccf52419b246ae281268baf6ce8bca158daaa7066d616f6a32254021fad221630c18095d39f65751383db40300d8ba3daea62c08abecd7c5c4d1ae812d9de9baa89d3c6e81406909388a950e6ea1c3042c7e67c5663eae2e82c9f819923dba2a5ec200f15d1045d1c5bf8707b4a8b5cb2326c4a08c44b73451ef24495b960c1cea7bb56b4a789083e31165a2e7e2c3f088c76ea749fff75f3e40bf0ad66c1fa826940dd8c5642dc346709f47d43b6792c21f056ca8595041723238fc3a36c21ada0037e3fdbfb524675ad3b19ec5fbc36859f5912a238e9c27ee35648be8c59316238e6a8cd080bf0d4e8c46db42e82cd29d17ffc8df92b6292228024677153b8105dea236ea9461ce2a48bc5ac3c5e6b14acb23ddcd6ed33fdc674214e7426aac17a700783991961016a1edefcff2567d5e771b44e76716013bf0309577e531f61388e217c44e06008f511681714f5507d4eef73b199dfea8290f017cbf2cc338f00d9060c682d790426006a07ef1d52ca5d59bf910b511cc9d943a40897cf8e488b3c70bdf81da6a79b120009c01a176b4cd483a7c31e9c19e6358a3b5b446566b54f62358a2ef20147107c480020c2bd49a0f33892bb8e8704561e4babf7fd19f370180ade5fc5e31a2afb253c907cdfe4dcf066d6afcbff4cf4050c1cf9f8e1212750d3dacd909130b13e57bddc7eaa060e438004930004c514ab21499fc791d1bc0485e93faa16e113fcfe4e3369ea3eeb3c2eea45ea2ff13b404883153030ac18303ac8871822018eda5804561f7282b60f88abdfcf0786016b557631f850fc66002ec6e362967086e0aa8b5dd3df41e12699676a1cf0ccf244980ae08c9d09077441b9dc3d7852e97fdf1a0ac9915367c3713a4fab4dcdae31155bec3ab1c7cf3ba013b3614029ca3d944c25bcc341ff7ccf15e5e47d9e6fff9edbf8a4a88f829242e09d711770c761b39591922228bf7d5a43dc80ec52eda4ca2edbb4129da7535369b076a495b05acd4e9a024caa8f10d19752c8009b20f027cccf3a96fb5188db182f920bfb62e02ddf64b5e320b5f5b53d266844dfbc1e17881d6d04dadbb3bbf0965bb2b079ee845276ab4ea064aada4eb20abfc7993eeee219cd5527567045456d3805b4a06baf8b7affd870f7bd8c1a7f1f5809de4da94b4dab5c9b57ffcacd71380aeda2553304e5dd5e72c5df598d80b133723df239819a0e80d464dc189ddae7810cc5a3d831d7974e14a69a61f307320f81b63bb4b44dfd6d193240608398749bf4cc41173f0b6abacbc3d1de829af34222a7194ffcbbe7395a3631cbe5714682096b1cdd67b70235b041f00a645e1f4b378971a0ef350d5ca0491d9a4193b486386f12f6b0881db3a6f86f8871b847a627ea76954bbf6a055b8812d2e78aa4ea54878310142cfcd7b21b70449d5b67cf702b5bf4c154d00c6f588f29c59430a0953e74c3b8bf8ee25219e123130f700f7c1e4d119d708c328c6f203ae19c84661f46aab28810e00d619af623a357f65bb15322aa79b6be02bffc73a71e9e440190ad04dbc888cac614d7333102849ae0ff7e6555869533f03473f81f469fe36a703a871776860a161a0d08fcf6a079f13ef413267bece133c68b2d2a7329c56dea9632d799d41e1f5fd903e20139f832a8e41f40ab0093532e85e4b14296fd033ce218aa65cf86df63b9162232ac38c80d026565e270ee5d93d7956f28980afcf0588e87af17916411f4cdb0401b738dfc740bc240ea82ee6b37e0c61a800c02d13bee413e3ecd7734f68845ebff125ecc700d3755da1aedf77f781b62dd8c06c701b0573bcb3c0f8907dee5a2fbd2d6fbf7ac62c6e18f7ff6dc6b78a787d5d1a18c2795422f703d8b9d752c7af65b2ad8c50c8d3afbae417bfa11ea239852cb7eb090d2bc6ae01e3144bf7826c97f01782426133d230f72f4e28065ba2fa3383c371366982376010b1cd3dfa89273a9b9142e88b91b5d09fab914ce0abe89720de4bab08885593a9d9939a9b5f81e9207146ef563eaab5d3b3753c1a5216024542eac05b7e4e6d70c6f6716657fbd2f613f5bba8267dc2baf87fadbd731bbaa2570856f0710a1534534ab0b7630d8adf893081b0c4bfc6fa0684df48bed768b864657d2957cc5f58b9ac04d594118b8d8c6276a34f6f6c2c224f851a7ec97f88ce9d7fe5d2299cda8bbe57568bf4629668a78793eb114315ab7e3389ea768d1f0b2add1790d8257f3187e3ccd39c7fda41d73fd3fd1a261ed6b3d4ed9e46929ef43d8945a8070773eb3313a2a9c86663c2d1dd6da7ae85a86ed5aff052e1aa2d5fa151d13cfbf1c2ac8a6cf64d0214e5594ac5c56cf1cf3f4bac7c3075f8e3981bb2514a6b4e1aec80a5ea355cc929aeb2c793cfe52dfde03c8c706c8c1cf6fa2a1ffe2d506625002624745eff68a414bde5d34831ace73dd54d3ae4ffcee0fc45ba6180898741d831a25b8e898c8c6c0f585f8b10b39fb73a06d40d61b65a8c3f9d9489307b15907f00381ed1ee6aaf390120d4e0cddec3868762991f54443ed5a08605c448e10021dc2091a2f242c21f824db482aad436d30ffa4fbc1230229cecef37233945a9845a68309eac5551eda352bddfbce5926aa4c3ef54a643aec02dcb1c66e7b5c40b23c6ee532eb4e07d6c59d7a7c1974024ae523387ec4e673d110fb4dc8e46885596eb82833265a4ada93ca9d2309d5971a6d68c6ff48714657c901b27ccc2769b7b99b9072506f1812d6a62db00139eedc07ed7a02258b2172ef7d407977b4f88da2658f22b07bc088a716f28cc58e115b23a1e81980a2e4328f5104800588908779f6e017bd2efad6b3645a45d414af74e3af65064a0d500ae53b6aa1044215e4c940e0a7753d17a819de5506e52afeb9756803a7176a5fd3b198d66344cffa3d07b005777e4b7472517e6cdd4b5645ca886a65b4d0e9e90804778e37a5233888124075e94b29298671ab039b324d1e0b2e16d832eb06520efd65e07bdf4d92793674304f298a565d265ee78d5038948eb75c182f2a273f83fa714c59c0906d0a2c35e92350092dcd04af9bf9a0f7adb890761243dd79958493e3e3639945f3917f5bdb9a239c6d9fc8ae58b7d5ef62d107652ce66986866312cef6c0e05dbd49428f45281808cb3515d09cbf9c4186b838bd85cf51f3123d5a99e96003356d0c8729f9583b20b585cfabd4cf487aefaa5275ebdd624e5aa35ad025f816ab0a4728180a5e0b54c5d8b5c33c56cde5f3d24da89d960458789be29773c5ddfad04e04981533c2078daa81253b86034fb430026c3bb98dbe4d3a337ba25dddd98ef32dfcd2224fb43d52effb3eb3022cc96d7e73c82d5afed447ddaf98c2d1938c21f58cf6691ef7fd775ee8a0e68c36df445d6e125bfe2bec3010aa1b6ba8e76d9866b3b1918fb446eddaa17edb9538313bfc783947cbd5a411723b5a89f9d2cf8740d6b0b21c207539728acb6e1715163464a3364f3a2a7fa16607a49d3bf36fde3affd2a8b3d8bfd8651fed0e6ed3182cd27e0a564384097bf95b2caa80b6868178c2d7d37366bf8a2cbe3e8461529a94b4b8d03c7db7735a840c6d462e9b60c63cf8af08a83f0b3ff455acf40b3490189bbc69e16ccae8dfcba5cd7257d94e962aa4aa309798525295f5cc664128e0d03edd95f3a87d70f586c709da573aa87be1f5270d0e4524225350b228f5856ccb4063e03d42bb8f94e29f2f49249b71962bd3887c68a491cfd8d80cf475e9158599de10aea3feb29c1a2b2648e6d713202cd29373a5d7f167b872ece24948cbc6adcaefaa0d1392a386ccc1390944095638686454aad1dee8676d2284494e4b72e7f78d3b1099c24c412b904f046ff6e73435afc2dae0e9b9f233caa254166a22a248e30de12e2e50452cb521b96520d34eb449060b40f223f9d141bd2566189900dd575ce765a85ad8486eef00384fc471dce09c42535d4b06a29ad01856aeaf4fe68f490fa8af15cced23446a0c3be00f59298bd361819d6e3adde9d5ae730c8f3fa2a75bbe9794f621b8fda55ea95db7b2824f86c0147934944332b4f2a9cafcb210404cf2c03ee920ff3d9a59d65492c3dd71c45c1511e06f94e82eb07cdd0c5716de038d490b060d44884a3a48d1efe09e81dc1a000b0249084b101358d93cd79dcb95190c49a07da48a242069dec23c3e8f400fad3fa9d79cb3470a42ecfd0e52eba455059d9e461ce6094d9c58c3097bde545c8e41473ec9a70408e91518929e7b61221ff53f3db3515e67836c234f006f8711b65c3afd850fef12267004a3e50fb040728d62ed1fdfd2bab5af6554e6e40e4c6b866474d463b6b812f778e69b318d16981a57d5c7b4529cd025e52041b4e724197f0bb854daf948f6fed661e56c581084872138d9e920c88ea651205821d82ee3be02387501ff5283afea96f564cd7693e74983a3bfc44fb557bae8996adcc993c25627d81f2352d4c6b5cbf1516e4f4c2b6a62ca7fdc887e7b48cdda581aa8087ea2d5543b6f2e3de49c3dea51cc28dbdb6efae6a993be2e3a717871546a40f554284cb0462cd9aecb18680ddf627d4ff501fce67f3a0ca673f4c8f6b5bc16f63a5536f2df7408d48720a24657981846b4b45a0703817fe0fe5a9cca0a27c932c2fd05c1bf13681724fa87ad8cedfddc6b695f7e02bdcb1e86d4a086f514b7a5a2deb724048d2f17a89d20b1b747bfa1ad19e8b23fea383be3ccc5bf0f27722de05d3ff7001027ff44ed3afc0f4fac39635927f2ff9b74fd2cd355de24e86f1cbf99a30c587cdb2d7c19fc317dfed4a9db329e50211785d5daffb2b4c848bf1d38cd942722e42bde4fc5d27b2005f245209fef99736149b4a93404730d0bc9b215879a23188b5b3fa53035d75ea3b952156e44af7160076351bc7c1adcb4145891166cf73181ad4525b05d6fe88e8f502cbacb3d67569169c484be23336fc46de95f2e832265b439b48b1b587bee1d722c8950c10858d82993bd621ee640dd10d04389aa6a55c154e7cc8afe66c1cc41e7d2c5ce8d9ad50a6c833a483823277a115ea84c230ed154b00241da58083671fa962def5ebdd823547de73ceff9e99cf944ea6dedd4305c4b8428b029befcbe37463273203b23e6d9d4260c8a43908f59625d8c041f0091a03214bebc32d0f949f0accc0a3947d5cedfc99272142dfe7ba11f26aff5af4c9cd5fa1124906d7df21a8240367f89196d819bff0c34d32273718e8a53edac1cd71adfe05b4d6e5d66d176e654c99bed01a68d804e848287c4e8429809141814cc0b4316796046e11ab8aed249ad083ecfee0d1be85845ad8e46d55cf5e87a8e6ecf14350f81153e1d8e5ce0545205656ef967b0fdbe5ed21b58892bf6d0c09001b2d1bc2c3adf0634be2d360567dd16099e925ca775b66a8b4245f628eb3e233903a2223f877330142bc35414beced574af549b48cd257fb7e36b61ede78b637e52410ed7cc5f9adeb4eee42f2089be5771283a03725ac613be4ecb1581d1766a7a0df13bd2557626f7f008622f4bbe43aab4579ed41b900fcd01b36a094ac89ed50d6805596b854da4a7fc53014301060a429f5905bda9c8af5657b4883fd25a401e4ef1e13a0d0f6445e103ac6078302b0a1e66c5e2835971f8302b1c1f6485c7cb3e0e6dad2c8fa593ac6a7962998c06fd9ee482e48812915a9ec75fce8805915e9e6da2de8755e4fb5a9eca2ada65acfa948f11c55691ef6b792aabcc8eaa5aa58aa2307954f0b72c94c7ee51c51ae428761ff69d4d2afa5a0c185d2030bb6f14dc685cc9db277a1ba0a8d790669e52cad7e4bb15614099e3823c08d8c4004bfb410ec8ce27c7f692535da3798e1f076129cd68c92c23161bc93f10e9737b654d38fbd8c4ae5df0d4bec4c89ab05b2bdd874ab3b3bc8f27ea840622f524c2c1da162fa3f979375af46afe3b2e0848be78444c64f103a3d9e59958c3a288459bdd15d7480b7d88e6ce8e7ec1a011791867e254c9b17b3f71282188df3e591a2180df66d2a687ee0c777d21f59b8b837a7b1ee2209bc65a9b1a32b434f297a30870b9c082a3b1ee097fee48150c2ecf291698e11a208c1b7093522fba1adf1302567a189c67cd38ce46ed071da72d9e4a7304bc8aa0a50abee8f68c812d52e952ecfc74be74524ea69f1f9490b34c3fdb130fa8f544780e4cb15bfe962e5c6018a332ddf84de8341ad3ad2d0b76376dbb5f4ef171c9b3b7a5280226a555e954cf235ebada44d508b2c3b59d065219b7d72f8c426b04700da606cf6cd1abc4c0f89608126d80b930843f6e01750143e586933b5fdca08963a70a7003006ded367efde510b6f9f31a19d8e5e57162384288e9fcb31956ec9f418b8c51b4803988c75337653c6896fb3a44ba4fa7c37700e33056077eac0f7fc2a73e6a1fcf43dd131dcd364578c96e47697ce710c5393fd7eef4956b10b4d5655d8a5bce3b35b01d7083fafb8038d2454da1e412a40c372faa8efa9d76150b1865a66c73fb96d12e0408b1ff6baf1c45c46314adbba3d02dae86d284a1b22ba77afae8f8b2032e65938666767f0aaa8ede779c7f729dffbeecda3ee269973ffce7660f63acfce9d8cd3e9ff19f5607f0443ad11b281d9f90087aa374c8b2c603c06707c83f4f7f8ac9cbf24f5a1533e023e64fcd65a86cec2c857deb56500b42e929a839e44864839aa3f1cd6116145d0489209b111b24f1cfec7644f45ec79e91fcf2b3dfdf16907edbb85fc9422645f85360f16e677d4e0980ce0a738176c2c077c32a27ccb946931b39d5f1bfdab4cc63b1e67e4ffec8d51afd48594d9539471a0c826d4c7ed295088b20769aad2860bbc5f1725e335eff5dbaa63917d4d753711bec124c60081fe8fbeb9712f77ae1127094acc265c4f0dc23ab131f78fc654d79ca3e681b596672afd34ea98d602189307794b53e7a52c10784aed42a410fb1ed8d0182da67ba8cea0a76910db98cbf855effd234bcdd26653711f805dc7692915e988a4d66819a019609797f46a0bb79e1e5db556f8da635a2d97d2afd40160f37470daed1dea082c3f324ac413fc3c9939d388013e7e7166dc694a23cc9bc9bec3c9fb9a1663c6d19ba1d7670ea672fe1bbd188864dad08df9e554c95c090f84d2a173b5e0b8a76a46ce7d406226fe3d6297052a9609f784b43997c9fb28b951e22e7af778d9c98385f086b93e2d8c6ef7eec681b0209c2a78f92695197fb3d48d58671aa929f45b5df1e17b92b092716396912b6307fe8575cd10848eb528940d23da8929698fa3f99688dbdcd5c97ff39fc812a41859af3a36ae586b96f7d8c9b46a3f1548064bf54777cd068a87c0e987ee6a9e4dc490cf473ab805a1bf62003adebb1cc7d4e15e0144602538b6cdb564c490d29145a2fda0c1dc31f69c71b20a29651e9afc7f00b2ad15cc19e9b2c1a0b36ec20aef995bc86e467b8380123e38ecfbc292d3a10ba0016bcb5486efac2c3337c0d457ede7c14ab394fd55f6db6c02756188b7ad830c1cb77b97a785ed6312194973b546f1b04e02e8b0be33f66648343a28c01cc7bd467cf3bb3af96e8d219f6b9cc02bfe0a5fbb589f00a2f6ac70b63f4da37a1b6b0bdeb7932f58033e578d6ff05e5b06ac3c04ae279be81be7061a34390dfd9d449e5ca0180434b8cecbf5193aba80d89849061fecd86b2428677d1c96cc68b4ca6d97235d3dd9a166e9f47ebb19e22ba9b2b336bbc01e92d33b85d4026e93c39554c51ef04aed60471ef1d725b8517d83c8999a553b0dd0ed583bf8b9c657810f1f228bbb1ab05f5ad1f5580410b3dd580a661a6efcb1c1507f55bd1d0354f4d5ee1b7eef0804256bc002fe5735225903e5450c7762817d8efbb848fa07bfed0cf2f6394717ca6b26d49db279353d17a5a857fd9fa7ca0145e87ce2303335afb760f683951ef30d2dfa5801718404cb9b8866cd71380aac65193cd0b7b34774643e9da87ea630f3bb3f4ec06061fe8a47fa240f7138e442908f5b438cde093d9f4d8708a11207e4a22c42fcb90651d93e39dc846d3682809b65fe787b267a407d3527bb92283865c367e6d6d9f3709fd98e1de5c88819d38c65b84ac1262db3f61ddd8075867a7f5b954ac96fa55d950cf07461868daf60d5c1dcedcaf5f420c777de035afe22981a55db9f898dd92b56b07d0bed55c7ecef15e6951275a2e4eb35b039323de2eaf77e7f2543723c29e5c7d1bcd497ec821ad2b27491402afcfaec07e50cb17ebef07a09b81045c027ad925c8a880583b0f0db1fbb451049ca208137d17113c6a47003f5e55a83d2761bdab32b987e2743007b55d7f4b3b098e02ebcf05d30c9e62f4f463c2d8cda82feec9ea1458c0686d6387d1bda592cd4744cce142a19e0af4301e604eb992371659eb1743c21817c6ba6dd21354b9b1705214e846aeb75b3e65e418aa538873306de2dbc5da62bae8cc98cd5ba50b8d73e3051d2f1c4953eff55d26caa4ecf403025302e92fb2917154912d60d2f55668df6a9cf0b51615d42db840792c14385a254408c127c2b67c64298da5b4289cc13fb16fd8c5e671e9263c6c634a6c5a34816f941f93dc8a997463d8f5e91fa8167d05a40c1631701a099a0ee93d240c7dee70294748cdc10998438bd19c7788c006a8669687cdc577477a839264179fd28fba3b6013c6a8e294133f076164b74143aab6afaa5a5ff510a29ddee392fd212410164dc0aca9adcc02045cb81731cae17ccf8b6a0190cf4ac78052648c0cce87406dd23a467c7396b79403743a8f1ed78cd0355ca4a18001c4ebf263d70a3eaa193f73ef30e4b635a3521b959fe09c0de1b8c1ffe1ae74a1ab89078977513ff2c22a57e412a54bc856a944a2f501fdb1d43c9d825faaeefae3235cc2270ce4a11727ebca5013d0782005d0d79108376b96e31b333e8165136ea056f5dc6ef03a61c858079e465e9665e48d52bcf22693ff23048d301cc0fbf29d452c0d884f58212e706061b05fe2d49c444666a7d94ca4c20a46efccef8b96f23e2faf517e45c7d51f5a327fd51559ff8cf2f5ead2d774a89d2af2e3b7267f6d83f0fd03061adfde81cbbe547ebba0181f926cc43142a230c9b00d2ef77315f3a3d54f22d480a86839c1f2cd0d502c5e4a4d00cb7242eba11c5585741d03813c00d00b32f14311dfc2f1fc0b392680df81360e5963dcd56acdfa51d18c1da3559afe2e618e72b43b9f19c76858b8b90838b759ccebfdf5c1f168d44ae2e3605aba29b290705d8b26360a72355542555bb625047980c968ef3ff744410508ca274767575a0e9042ba6ea59bc03128795a27bfce2d19b82a227b07685569fe9d348a1afee185fe4824b65582bc8f7bf053c8a032341da8c508b40e145efbe5ddb94cc89b29d4441db5414783f6a5178a36dfad128d8d7d4cded516cdb4e650eca356d6e7d905edeb7a93e9737d35d025d17e9c20fb5461446b73a164c61fbf55945d256104b609115c167ab00ca017645154b2b179194cc3abdb824aa7ec997e0bece6abb95cda6a45834b7547673353173ce06756877db720f1373882946e3055d826e30db73f4282ae51a2a7571e1e4b7be5e8fac53d2acec2ebdab9f459f4c7286bcbae295e8dc4f3e300ae3dc05e3986e3f4dab7b1e5b0787a6248081cc46f9f1c45c99a4e4754d752e1b420c735eb9f815b7626578c9e0d773384e30b794155ba7e69798fff2fc37030ae4c2dccb465617db2fe122500a30ce10106b8d16a5b1685c2597c23e6fbd648b06dcff02087d0eea5e566b2cc82304c5b87384bb3dbbe02e208d5dc0cfe7bc3188795048881c480ce0848c24610e83bb518eafa0c7f811787170eceb94fe1f619435192c8076b709ab89c09502273bd935e984f8fbcc055b0be8a1903828c7bc728da876512589d75b56d91703bf387cc915b3c9055c2d4863a2019a5cc7a5d2978f864472182ee440a3828b2fd834766b246cc6bc752c24762f38b9849097492ed26ff799fe368b7a73c7461063e505956809856ce9a9baef3be8f9bae961d010db5a3f56f7aa4487950475f2eadc4d7a31e7ae6fbcdca5ffabc5ad6b0384ab4a35a8e9d7880747986724171c0929e10b666a23c5d10c00ae36b59f8b5d9e21217dc118e28cd28771ed21661d549efeb4adb1e15e9a28b67ad42b5152c2dc990651bf67cfa5ce7badd78d213196b07729d8204bebd5b0261f2603d7df45ff6f40c66cf07f99ba2a337b4fbb885defe7dd647d6e05b40eeaf8c1357b60ff19c25cb1e8d953a21fc4a822f2f9947536f7fe6818010af95683b4bb2bc06016532a358c54a8c69fa150b5a06f1d5d5a4b973fe9241223f6145989b18bf6dd006319a5a949132d0cc0fe4af537212ceab2019581dcb0ea0037344b56affc45df40501a9bf9ad4241dad28a46a480c55e09a53d807ed6ec561e6fb898597b49e64ebe845143761ca22c7be22de47aeb66f82a8cd886c2f0ea79e4b85e7d3d3af1c7e52d964826a1d89fe548d0f831c5f395f25e186d655e3bb01b8d45922080537bd5aa34b54a053f92a882c0e34879671e2f86ae5baed44e540cdabaa129035867cd5c7848382952a6ed79dafea5e0a44aff2afaf8c116b9852b813db5d0be15ffc146cf94034ce29f85a674e0dc7b8c309c1dda81819d8253d7ef52f26004f7123c173059af2ddf70ecf4f7c55f5a0df157ad3c30823c7a90af129a85b79385fdd5d03111194d29937f04c43d990eb9e45c368b728d2d0bc4c6752acaf3d2c6dc21cec8aa8f549d1aace6388c80902ab98bcf1f64aa8d22d7e302a7dffa1378a772b528f2ac04e248fb9f678c07659c44178199d17e70c1d76c1f41848422eccbdc21ff7af7b7cbb0007add1f5d330d00cbe607ccf00bd4ad04745184045e1a4c531a9e59711c1c84c4324dc78f3d65e7581f93f720002a8cc55eae4390a16508fce0fa1fd3c66d60f03c0a7b20e0a5009c45a1069de39518caa3544783c59463861eaa171f2b000397d3dd85d00cec87dcd0e1b28be8b81afc634089f07990ca0df59cf5416237ee4d9faf145c6fccaaca71823a16e01c23db5174a5d7d16f9c305005006ce714e3bfddc45ae69e0c029e4338bab096837fe6f184c4c99982706af60277586340d760732ad98bd48ff63175b8c2bef308364efd55e0556ccc47c4b488e9b15cf94bbc585ed18806af5c4fd43cf8c6c5ee60427be1366c77415c5d067cce709c6e9622df8528a56c093b4193fc61141f224b1bb91a99cb53626dddb7d4eb8d31c92a04de28aad3d8fd5b650fb4b80d28b6aac46244f7374936304dca02720db9509773abe8ab9e09b7c2ebaaddab4861dd0b846d05cbc9ae9ffcf1b14b9d463b007d1a920ee857b1396cb00679449e9ef8e997bb2a5ba4e957bb6639a1878c37ea74a6c4fcdecf3a99379527affe77ebed7bfff1ed537601a4c6aa3128d75f40d5f86ae6d8238dd24369c82b8a3ee6a1728e939ad9a9a824905e6e39fe26b83f071923d5f6835335cd9d62e439511015ca43522516161e000b3dcb2c35932e47e4ce0f9391ff06d9a92fc1647b9125a34d342cd1d6940a78a25ed16cf9a5c53e42f472b1cfa6284a1f142cafee9ac9b22674214062870caf5eb9a4805b0aff17e7066dad10902047e3e7786e8101a5bd2d3be2e8bcd12caf2eb891459b9d1cbfc1ea6b535471e5ba778a1450bbe600ad217ebd32f7ac423442f68a634d2c60d150443667e8d59b3c601179903a90d4c62e15a61d5300d437afc51bc079ed20173ebeb9befddb8724da90ca8c88667cca6fde30ad32271a547de49e0ca6895a5e44d054163402f2acb03055c71e1d6d8fc1e5ca11c3197fad4b3d54eb9524be794343bb4b06a2e5e2620c35f8d4a290205a5d8a8136381a24a8014f0c57d73b619344136b6c7103a913d406ae801507f9480c5b2ecc435928c3cbad5851a0851a519612e93ee2e9c9a68edad16a09ae66b2349332004dd93480b6bcee4226bd2f76d80fc6fe7800cf05740546e5b739b6b71d92d27ac2980d25336566d790e6044572f01cb7405758269f064e3f7c7839a9bfe52dbcc0ba2ae8f55e4b68b4920ae2ceedc5415cc7402a129d86e1497094392d3e138491a69aeb176dbf64b540c99146bb7d8e0bad552e1d073deb613e9a9ca31ebafc3f2a2acfe9a01abdc586e5f0fe7b11b0638aabced2ae5e5b939e9d3af2ee99eac360beba6939483a59d5729413229f87a11761550d67a71386369507c8c6ae490c8122a466b78374a602ec809334c9e064ba5196a1849fb279a84aa88b16e194cfb8a74747ee2330b07fbf098c2032f6f3e5e529dc9a9ad51b14aea54ee1fc430fa75065a8f5c0ce33e9879b0feba6abb72ddee4289780a3166cb365ba0d9d6aa5ca7e65134dc2269960450d1147322a6ce4c352c9c0d70a2c94decdec4b99207e837f067150864c593dc67be4e0227d858e67e32404d48e7afdb05eeb94883080137004c125bd6847c6838b38a7e02d4d019d003996014d8da0e565a77f2d54b91cbaab3a238be6e386fca505c171a55cd5191496f8ff1693a36958be4ae4d7328427c8d2d506d469cdf138c631cb28a0cece0c0c96af0fd0537ff7928b1cb72cd3ac86fe3bf652345263a21154f7174735d5f500c985ed0eb5f5638d28e204e3793b5b71610b6ca120a683621ce43145a6024484c294f8fd73ff4b8526c4274583529fe302dfeb23043eb2179b5d4c40cc556698308c09873542abe1f516705781773ad7ff0379d30e94ff31d3606f0d24ef52611959000064ee9ee60b09c9631e4714b4aea1f01dae2783c4016e7616f4bd42a31fbbdcb887624251e08d1aa950f6c8b993b87a1b4d43d8837b537a76f3f2250bf777f2c05f13eab37a9a797092aae84b3c4839daeac2d0cc2f8973af936f5cea1dc14ab43a9ec7e1b04e95ed5c0ebb5ff146967ffb7010e6b25b237795647e57b799d2a7d562c538e64c1031de50f0647b0711f28d77c63d7e78aec65a3fe3a94a8f64aceeb568178d84aa715516157b9dc725f610f7d83fc2cd199e71dcc57e170ec8571f1829eb8e818ecb06a6069ca32c4c5f0a61257c1f13cecbb569e7c971c2014db186db4ee4aeb95dd276728d8f175a9bb207684a6ebd07445bc15b9dea2856b959ae6b7a381b73d8b989021fdef785e7e1f409584d440dd869427a1a7dbd285d7317406159ad550208b4eddcffabd6a90f7a5e3f046c3ba4cc39f435f113ed3e54b6a59a5d4da43baa96b2320511d3e7b5739586ce4b9b4d5061aa5ee5e17a463c9a9db3921e4fe708d947d4983b43ea7e85ae58e4ffd899224fb83f904bce19ce386cd4c8493da86ac0f0923e7958c17dc2b34f0822c07561b8e73a4c7d7d29d43415514095e402a47180ab1b0dc808e72c43b303ebc301dc3abb72821c063336ea003b75d46190856370f09e985a0cc988e79efe16dd73391531540b79d67f37f157e24b2f402b6e1d45088fe88574c2d077419d1602c87e727dbda5726c5cec2f76c3e8d68dc04f2ac0fc84f2f4c580710cbb0ae04945ad3b5526b2dac344b15b0f0e878ac0056cad88b52abadf65940345c2966607f065c307f4259a596d217e879d325e6aad73d22fa5b96a7e6c0b61f9764ca3f88748e5ab51f2ea50b5d45c0281dc40de3474ed9a2c12b4ddee5fa8177fbb1e92f076d19681a7ef7f50dfc65bb29593334de6524e05be59d192fd7e190b1209845944d99701295a6e61776faf080ef1e95dfdb4bfe1b45109d32b0da18ec1e3d678362d78f95ec6d6e11d1de96202010f39581100e5e99b9f0d7215e5c2710034596ff40ddc22f3b95f427e8bae4f56f52ea7f16fdd54b2aa3d3cf9ac2c4365b5618701039cd6be4c2bbdb2e26db2980781538708ce2a97260ff4e28fd0bd2191e0d5f0a4f8e53d559171ff3856008e83b734005251741fb871f52d38434feda02b7f76f540fe5240e7081279944e1069884fe5b61906dd5cb550410eccf64529d1c38178a83c697d2e457cbe329cd5a55ca0cbd6804045e27e3f9ea787a0a1e736b54e343e24e345d7b52fe2400188a8a25233e104480f9372c90631b4bc23d088e8ffda4998b85e62bc1db74818a26ba832be4a4cc230136435baadfc749594dfdffeebfb886bc7d65109b7d8f22d793c4182dc595e29d3d782e848da09d3b9884f579e3d0e2514ea9ff20c0ab07fb29044e6118c032e74c57e34b005f655fb9ea44a7632facd735ddd019b77019c22ceec4020f38f2099805fce50e824291139699df9bdce3648d2c62303c385473082b1f7beac877c3440cdd1ff5fb56a2171bcf1cff5a3a2dc2ceb81ead6370064757f2f723d4367d74cfb844bc70a30a0257117921e1111539a9be4723567109da9835782a9f20bbb806b9170756af646177f4f03dea0df36b690460d08af997d0e9444485bc455dd903f319cf5662de26260cc4c72acb8ce324b2da208172429a495db93770a700c29f2b4f0987622b3e2d9f38ff5d1c772faa0ca58564269bd738bd86084de7bca50cec88e40a48b59a6958a775d1f44276405fceeb1a01ead68d1669f0cf8a00a549cb15c822f0abb440a1d3c6c7fec76bad23c3378bd828350a4004d5b36ef71c3fb69a6a3474f7d634fbe4b0f6e9d37e79e19d8a68da8fabb7058a9789c328b49d69a16340ed8945f6616591e772dd6b7ba7966e000e541156d1e0414b210d0585a5f00e02d5df36c52a0e4695964d2e1de622a1c512ac79d46b6268913cda3940bfd871f242a44958c49a21172ce5d4b4e4c867e7e5baf292ce38fb3de3a9656d235fbd4e8ef7286a18c48886756a61488d57aacf620939e2d7eb9020c987711ddb4d5a5d49cda39c7950f87a51370afc44be4afe17974d0cc398258b249e77de998242612684d80560295086a0bc019d4bce5ff4f79ad27ba158b0794e4c4ea955662b7cb191b8d5c3664172ced66904900c4a3da49175eecc477f0ad48e1defc5b86e32419d9627572d11b600e6e8372dcff9b5bb782c75ad76ffda84a4c98a80fdd53a260b7d64180bcece3e2ac3a0ab5d33fdf194450c2570dc11212063ab69c4125d2fe491a1d9ba7e6205e9be5fcf033581f800621a1003b7e2022585925f6fe8315fe9b518ccf2c2430c570020afa228322b66d9c8e439b3889b7537b08d3a96a92ecf2defbab41de674d2bcad0f1213949b572fb0262a93192150660cd2a20a1620b3d4f964c5a05cf875628ec36a321b4cc922f40db21c5a4460545dc1491e63138f6bc0488e2b3a905ea35b79d929f973c80133f9ab4c56b39173925668399984271c3fa5b91dddb061284d13d6f93916807c7c5274679aa560f7a3bd7af7211b67589998736c1589905d4e9a168b0b8195efe5b62ca4cb3d7adf4cbbed0f1fcd73d49659fb2ca40e1b531503690274c7a4d12f692ef2804d0fc4dad4fe5e325518dbc6e4b2b0330c5a4af457b8ab6b7500e8426ea4e598189fdac0fe21f5394316170d4f0c0330e2b6e9fd910550d89c5b5f4207592f9f8a00ee289e726b2d29f83064677b9ce1c1741ec4767967f4977824f0fb62a95f0c396c5085bd1aa307b4afda449f432224ba5796eff092c5adc3abe8d58c630d552b8116eb0c4f1e03a666a2e128280a433d64549a38933acc6c8b3f7a84018378e4b9499cfe308224c0c0d38062f604bcef9d569403cdbbaddfa2e22d1d54534adf595d892d69db0a32e64ab79bc9b41c872159e8a1dd147154f920c4e22dfd9fde17ae53d451e26121634d893992e26349ea94414078451c8ed65bdd651d4b406d73d5ef57bf0f1356d058eecf599dd1ee0b0f1b099de643b9408b509e5d237fde778846a8eb059d5f1644182e7562864037543ab4a9e62391435601f2cad7def6cd941ae629f22704bf0d6359d6ce1e02b457905fca60ae27831c9a8797d37820fda9ea32104ff18d04f0390b27675b9fe111ea65389d1365f5e42d354b777ec056cedcc7f2e2bf19aee120474bbd00c6e90fc55e509aed6fabc5be1342b12ae9b94e16b1702a295bb1db8a34b3161e3cafea8301f55e5fa87e999cc78ce56258d33bb27612a4721bf97f839cfee17d9908dc4c837b158979fa36ba1d77246b545cd820401f2e765e3751e0095217d1d60497bf7892253a3e4330c024dac4ef537df0daa830c79e0a5ddd8da7593d05bbd826dd6f834e90e2231b3568083c52981ece22ccf2cfd04ebce6a22ff3c72d96d82c227029c7ee78e1f8994f021a886477ce086866946d12ccb94edff8d6f44261dde5558c6bb7cc26122f3c7adecde4d7dc645a151a8ab37fe08ca05c842aab2c0b5e8e7eebed6f3b77d21f06573308fa96e46946163bc9a26a130d4b5b6f58aa6437982479dcbb15460bed2a7a8dfec467a91607da1764c929730a09ae1847be508ba8befd296322664ebaf225bd6819a34fb03fc969908f094646d80067d71056750552bf82ceac6fb88b1b1bb55c24eb335a423941eee558dc617e5112756f75aa469863b2644afaccb273bea436795af8e20f0ce0e86d61c5fa80823efe1b7a29220756f8c60f59008f3b1f6d36e8f88781496348b12197b8053c1609052d2bfd908a155f9b4cf4307791d3a78b371ac421eaac69ff7981682f2157c82fdb82291b0a5500add78e0b24f282e84e22bf9c35ed5ead2a7b66cabb2312b977ef764e071c1798a9971d97b94656e0bfd365e0c18bb89b70f4f6e08a015c057c1dbc728426295b06538a011498308809e5d7eb5ee034e8c4af5e54d121f9778f50bb40e27d899570d7962a4c2b2af2586ba907f4e312348396334b5b669d52ee03bd6316742883174e712640272283b633fadb1171a7750b0089c0f59c9c4945bfbc108aad47b8914e74b647508d3354585e4c12983a86646b0fb7b962e605ce10b6950049eee364c816121fba2b6ba1fabdda18502c6357bb314b1d45b677fc6593ed214b21906c1148891ba831e117bedd00a608209d8e30f50bdbf7dd8de1ae8d4304a83cb083fe1a55ce9c1c2665af0930a159fc8c7c884aa4c6ab8b3c3484daa5f1969cb039ef231b50b922fe04e7c8a950e2f58c0a73985fd249ae4034b188a4a55b03bc8557b797fd8a92fb03ac11f7ae23b3e0b25a31a85814fb4dcb1c4f4709fca56348df66419cba2ac174dd4699817e83de845781ea14bf064e66d2649e02c81be63e9cc07d9a99050ceb05281157d948330481886fa0fe5180bbb31aab1b7614e62513c27303ed46f10a8932d78d9f10db569c6fe10d015892f0198bb18dd0649dd74b5b26a4530d308ce30966128b2cdcbac5f2374ffbec8d4b1022fa64466a1bf7f2723ca1ff63dd9702ac3ad5b12c935ce3929d3085c57320828dcc84437a993052ac557a44f6972ff6b3fb863a650528853392765d1f511288e0447e6e868129d22c17154a2d4133653196f0b89690a644d80b1ca27500c7ba6a4377eb31590e0974cf3d2411f9f591f585884ec3316c8616b9f753021bde65539eace988c9886a10b868af88554cf11574ab61672d35e4bbf930a91db9229dd09c4924b5147685c9507d71e5e932083491dc704ef46841300005720d61aaeba714d47bb22a46bc317133aebfe3202dd53e6e8e42c429a90d0e15bb4fa7115b97dad808d0c9548ca09aee47ca553a036be8d3e78fcf05519c1ae66526ba4f9b47721c5a51a5c482236ad43440707523810039fa21267ddcd38004a8817cd4f8287f1f01e20888c7348fbbafc31d352e33aeddbc6f17bcbf609be74f4b9f65cba30d629067edc8165c2581c83066b21c45a7abc93665fd204c00e728bc36e781a85ac913b34075168d17f11cc50d12051406071009a3467ebd281765cd232b2ba31d968cb3f875a3254acaa16fe29000ec465b5d428398c8e07c4cd65e581376515cff57081fe28d0627132144a056197fa34796959ffc413461c8c526e1aace32b7d40a2d55ca7181442e88295b43caea10169cb60bb495645382fd9ad6466fd0d382908bc91ad89510dfd3430f931fe71ccfa19a8c8b1a9afd6d61e9338eb133c20436a106b8f2ca0c442e1964782a119a5899a2a60aecc2180429ad76c4459a1c8df09cda686e7fad0423f50e9ec2be6eadf039babc5e0d9480d3f5bbeb24311dc2e28a0a89efd657bf57bbc84ed7c2cd9d447e18d5366114d4e7e74cccd71ce4767dff46f062bd705a020be2921f0df3e5cdcba882569ed39660307fa1ef9600853100a2f8a91c543ceb720194e7df62d505789cd811108815431cb8afb1faca01e732e0c81f923901bcb24737f7cf337306c0145718cd5e9a87c7837aebca63057eb86f6d8688c01af5ae3b50c58cd26e3793051e2e24f38f49e5038bebf429203ac0696d196973ef94ae22c2fc3cd409b7a1af410b6a75399255a01cbe82ecc38282fae88aea51e21e5cf5b5024730865e07f43b7d392a248587403fcdddef280c7d52c26737465282f0466470ca1853d42f1b09d4e0971f314bbdc42c246407d148572f6bad0a2a99b8aae3947ae32c1620a77b6f814833f09781bf092fa7decf5d0e1c5e0557e61ccf280f19e7c1d407475342cb980cdf27e6a48789cc940ca21942c4417531ae6ce97dd792cb33e4c0869c30a190a8063cfeb3201d89472075269a5873c21708069101a2df33c1dd8724ee8093ad5db20ac195bcfa3cddad855f7e72bc20b7685593c40768d1f9ec18a8788c8940f419b980bd3baf2f6582ad62e1bf5e158395fb9f7e72120c0ea7c598ee31bbe967a450d118416b0844e84725cb5919898fc234da8fdd01328ff0d8f2a4a688f38c017cf17a29e52df8e56efeaac180b79140dadfa22d07efe457ac2e5362aee6435184cdf0967c716dc426c2f2a266b8180d26185176cab95ad9d47de8b8d6360146cf5171d08c2fb644c385cd1617df0f25aa39054166dd91d01955aff02af59c213a30e864e8d9ed91e5bc034045b126f289f62f19d2c8b75550eb0877c6160b968e6ad2b406a7c9f6d196de1effae5701eb1c19cd6910d67f893a520cb2bbc6b49b039be282744d0d072870872d8ae36ac20570f819c0ad844faaf3efb1975914d331dbf90046396c4fd9a18bc65656b93f5f115f18da87668ff5a6274dac9fb71cb28adeeb70e8592e5b0aff17828c6f6fc280e6e2bdafc13b40a4c49432e6f70c6d72358b0c99dc5452cf869101315a352252cd3f388b24ddb2606bede44ae71f17e69eb19a8ee57175664a237891533f744d8b801298493fd7acc70003cb01154c62f9ebc30e15a6f15c968740659c50b29378fbadbd2c70345970aef4dc089f60060d141140ce24b00ee91b214d75a341930ec2e8b264c9f986d064c3df2cc6bff99244d03d26188be8013c3a82d3c07358da9675fa7223237cdec4901f56057cba593c1ab9980b739f4cd9b0c000a637391357b2ae84dcbd6a500973fa69de41dcb00ea5b2b04993a5bbf82ce0544d74e19b3a364ac644ebf9214751aeebe771b639bb04e1f2b0ec740ad11da56cd1fc3a403ecad342d77900c67eb2ba9bf9353000c2184c5709c2c0a6e06b91c708825ee241479ddfcda511a80d3e06a6c0347ee795d34591b1cf3a4a87ceefc7b53f69e1c88bcb5c7b2ccd06cae88efd826769175b98dcc45b5e024cd25869391a6f4d927514c162ee83c9867397155c9bb1d6395d154a389c389020b3f1261eb239d26ef9baaa0e5e08dd877d4227af215dcdba9e7509de84d80eeac94f3d32c8b1c186e1dfa51a30b0b593c53403b7054889cda74f8c6ea2a4738a39be530016c312809be4916ff70a6144b12061c8e60a4f747a2ef25661b41536df1acfd16250ac297304638503e085d43cb090c1d6d7ea889098548d078152578ae4981aaa027cc43e161ca764de55aff6115c602e8dbb2957efb918be09a6bc090f547ea2a5077ef2645ddff671cbf5352cee8817ca51ab3e8eaec63e7ab9b4f4fe0738a3340dc6c50e8029da3a59549f7606b20c30ca2e3a41580277083ffb3b3b0c2776e447356dd5852fae2bef399a8354ce4066a219114fe26d1fa177c59ece637dac5b6b5a9dfe83a5d614cf8a3d28792f82ae5e4bf70b5b495a69c0dcc55677e2c5835d70578a92c5689690ae98c760d26e6a36163bc906d0d358bc7cc6e23e6007f9803dd2023be12922246aecfd2624f2808349ffbb8cdb547e70798658fbeb00202f5c611be276cfd0bdeeef482217b1e68b23a9954e1cd91847c88d00237ed8d89a33ccb432f930d2c30796d595c98a04a9dbae88127d784dcaf92edaed414961471307216d4173124988793c1ff29b04a7b2c6fc82473f96c13621e9b9f9f5d6fab7dd671abbb86646d709bc3a62ba467dfafe321cf2b59ffe540fdf5bb9f7996f25ae1615740386c02c885f8d6086c01c73e7f1e46a09f0c10163c579d80b150557bee3ec4169780716d001cf25d587fcdadb15c7c1238ab18b5d732bebbd728486e8c449bb5958dcde6068c229fa4a5f1d0b37cfc8e93892c861a93a16b67f4b6d629c253cfc12116912a7528af695f15f0630dcd22dd5aeadaaa55ab55db534abb669bb66e93665d12cdd154e2e8c907aa6f2a5ccb2008a3a05a8ec893bc70e950aa265ec070ea7231fb8511d3c179222652b2602b00be6365565fe137537ec676ffc1b60f2417830c16a414f57dc2fcc9a5c22ac88649b3997645eb3f846eb852d45480ba131efe360c1ee63b8d7b62f262bc24a22dfd3110d408537d00e7742a11eef2288c35e5887de6d9453f1dc4abe3c257fae8afc5f2715067ff6e6226c11ebfc1801d609f13608380bd1b8f871481a2f7d752cf2e36f70daa81fbaa8d9e9c3aafaa5dc21c711215cb2ae583fd5ee254251854dd3169d5accedc2dc7606e51b9102d99677733afcd824a9c046d195de13547cfdee18d494a8bf5402e2c95ee1bf0faa8777fc7a7d81f33ff43cccaec1455fb2b0b9c64d20447cbe852811d3b54a1d1b6c3a18f35ef52dbf0cfab66a96db78b67f1b01174a0154dfa3c5526b376ba05e0b33de9e70735da16c1a67dbe0f55b655aff146843936fb12713e7d6529acb6649efaf2625c0987d242fb8401b5202c790c7e9f030705cc48a07566d6e3a4d10b578da4dde64b75c6ae1a11bc4a71e5cdf31136db81ece6b91a3530eb3249a78003edd090bcee91102ea4ee20020e73ac92a7af10a348c9161e6ce2a6cb848e560f7b2a36d8820329b916c87e27d456c04aa38794014c7e0c75f25f0eaca91b8e4ba23074c0a461a9b7ea090a7daba4344c0a4e714db56859c6f18c8efcda4250626ba3587fd601dc65d140a31a8addd42513aaaedbeb4b394d827d1e4c23911d04a646e37125b4c9da9f14f84422006b241cfa89c94bda674ac2e79597ec0002d8e5a0a8ec5c7d4df42bf1b8dcb70815beb1a5b7238833864d7b3f9a9d242a5690b72909ff7eeebf0b224595a4de046d72b227216019d590348261bd3b8c101e6d3321384c01b74154997f4a189fc6b89f05c47b7895869eca6ed9c07ea2fe4f745b07eea9cc8a21de7ed59a2297d56801edcd2a5d4b42d053f94b0898f2f91a4ceab0e2748756356c3023d9b9abf66011f1f86e40907ed6955ca1e46107c59d250ee957969a3bb2bdad0d9c88bc88730abe86ed200483e25619224251c2feba259ee36d4c41bbaee398d4112525eb4690385c61a06925486880d324b59936a14334933fd466e597842d4bacd14695d121480a8ac5481d9df785b5b745e1d5be9277e0adcebf6e892c064e84c43e7682c952f16832fe02d3d04100e03b2c7c30072411cf36760c4600609f700f23a98761408ae64d0fd6cf815f825c991e9a408b03771b6dafaf14501280abf999eb97fe92284eba46f61f0050556ab0b0f0b00ee19def9c384f251d19fae21365943c8d5760303da6687bcc79ed76425a600a7a4d47b6bfa053c0ee1df28808f8058984be1171e603a551d0327c4d4f900d4d194222354de5c9740f916e0af29bef08b4991d1355bdef8eab4e56e11d8009fb6989c34dfc26f54b5bfc4c6fed3a818172ee6fe4b3f43cce1f1460e48dacf8c168011d23926ac62a233cf22ccac05846883eab611c481808d738110c3bcd33fa009ca4b9e139320fac914faa2662163814b742830c2a4f6624fb293eaa2512e3d44e184a28268138fefc97969e8ac9e1ca263316d0bfaef8dcf16431be1e2611867e5f4c2859a99d4d21c4d245aaccaa80ef5f3f8e03b7e03712f3df87e09d051fa2e8cd23b3d7bf290170d84fd91ccf2d95a2f32a0266046acb2a4f8e0c9bf55bd5e61cea116aca07d348e9b3c25b221cb96212c43b2482e4837c0cb821b81b8c43a4252a0b85d6aa966d0b5a63a338bfc41a1cf2a26f002795fa356f4b192466d64114082d169d90253c1bc0749e15c8394f8313052a44f22430f0813a7850f1635f2bd5fcfa382bbbeb39b690bd3eea64bca28ab7e73eab9bc5f39587cb0c054b8e2e3a0ac2afadda565b8661c45fde8cd5d10927897a67369b99bdbfbaf56404afb408c7c9d37774f2a4ecaaab2e9d19bfa2ed2e1e0a78486cab242d8a3bb3675c80cdc820e293862c7689c1429e98b1ee6244aea099588123c48f989839dba2ec3cff82dcf4e7f2eaa2e9d15ce2d8ab4dca4c7bc311acbc40579b4669c0c58d5773746104e1c40019fd559e55314092e44ea34a314514069db5a891e30d834d8f6d17951b4eaac7ada193c18463bb6ddc81243adf9fa6594162639a4985b4966ea64f84a9ff8735f20e9bd2284ba0481814eefcdd99ac832f3bbe26684e50f5a1b7c798bc321bea86bcb797e5df7c6ec237224f81266603b938bdebaad59fe74665daad944e63cbb35d36f26fe4b98a8bfc388231e8a5f68c73108cf0e2cec646aa23fa8e9a618459e66fb26099636dfb7e77e3de972d276922c67f6ceab3dda434c58591f9e9cdad48641a5dc79fbd237f1f77508b4f7ed34d883229f2b1b5dbf992cc0276542f599efe53ee119a281c061561c135efaa8437b4a646a6bfebcd30df0faabcbcd7616049d4498aa02658ba389defa5c29a7d068f51277e9e3cc8b3488efe26649682da6bf9f4e3aae1173ec1da63994f03af378434bdf5dd19028039cf250a16ffa433903d39344c502661a94f4f316b631660444dd281314d9e4b9b26a88fad1f910b5411abd79ee89a258f25c711ca209139e5d630777b9f3995c1ee6d853f180dea723300306b0fcd4c687db76b90876125d81d4d20d61f45e73130d1f52d80619389f254318641ff4eccf557bf7a84c52f9c63222b41b850ba3546b8a8966f2e35058c830f86c86c202713c652a4d128f8f7361b4002d4a0b43d058c2ba33639d2ba783b87c35b6b98de4f30ad948b94c19cb30f578867fec6ce7f6b7d943f33f0b850568f85ecb322e1c4f549b02983e4efc37abb01e6b8e22bfd9ae682ebf1714b534661bb3cf6dd43bb8833ce340da85c2e31ba44cd03ce98d920b18d2625360ed3ae1416fd4705d5818053d26314e00706816f063aaffac81c2a840e6f29c4c047ab879e6cbdc7ada01552da5d686f3d55784558b4e93cc436c19aa4bf1fcc20dfb3e809f12de99dd048b9753d216fa53f2facddf6e9c781413041e1492d09c4ef03ba364d5437ef185af634ae9caa1264d7d54fda254ba87d15d24b6df8a1095fa02d62d2f89ecf39f127e861f4182c426b36aec5f29e6b5f99bf7efd5058a53994993753761c8ce800fc1c1a5b655ce2447f03b3f2792578c8476787a816d49c2c4e19c8cece6ea827b1bed4fc85102d5c422ca20554fa46dad3f0547811a0f2f82e6baa38b71849b959e9879a106d02dc320052f884d395f243a26c49b4cfaf0b21d8d34c51fc86951d9b47b9216741b41014e9bcf27cc05c2b591e41b9d5d97b5f9f3885f9d13243a48b9285694f8730426990bb19c7f901ea8effdfafe5e9b7279e22244dd3e207d5b0e3ac109c1802541522509e5b9fd371d4af0ec962494472e6535718971efe16e4659c6fa42f78da6dc61e60aaf66f211007f8504e4c49da82b10cbd0b3cc0e0865d83331f60232deeda4608a3b48f11d8baef4897327e2c016e13680cf3b1d0483db380d5eb9688a8edc0716c5a8c92d819bd3cbb59a68fce9e4d20dd85001a9e21069a87d7b0f0184a19d0b7293e0a055c447dd5b1d2bfb6986476d9fb56ed25bba7d5332a26a30e78567aba061fd0bd2cc6a2687fb819286739e9341fef4f08d3cc32db0d8be6130b7bcfa9d1ceee2438c61576c794635c57bdb8132053e7c6567c20e4471164286a0d989b390e72f4f08654582d98f48bdf620abb8f3b05df9ef470f48b47a07a8f230a24562ca5fbaf9b228056ccc1fedce1be56171e873220b751c8611366ca8e3a1f93c33b467034c9074044ce3c300a28fb594ae44cf003fc3a01e1fd953f1fdf3eea679896a4da75c75cad2dd7827922b19f72a68a6e376f6cda897e060aa6b6d41d11563a39a90512abcb1be24518853d6d2819dc63e5d76b2c7991b4286a60352639304ad2c80d6e88ec2717e108d9e5179bcbcb8915ea5acb137f6345f435c8c0a003c45b345d8b2c88c2ac2e804034ee5f3e80d5e2cf5ac9c3cf4f30d8e7de97ee1651373a9081fbc13f0a6ea98b77aeda56bc7f9345aa7ee16b36c2a0af27bba418b25a1267d66adda69802f7c7ae51e247faa6e0ec8567303afc6f2b9ccf1b63534733f65bd8da31a995f42018de28972976268177298232bc02208c92c2edb0487b4fdd9a04b83291bc55b6704e4ad89d669d72b72e087cac6f22dfb171021635ff34cd7b6a0b72d971d3920a0aa23ebb545acfcdf03075f809e192af0090852d0bbe3bff22416a4f25d0bdb6cd51e9901b7d2936b651d93e9c08b509abfe5d7226c45ed77514dff066b5c3cb7d77aa949c7ce50f1f960ab5f3df69cb51fb9059a344289fbfd82b34c7e36ac1d06c6706e6c325b1f965d4dd395247416f834cea05f4438e9536cc403ddabf86086eb7f4440e7ca480f109695b4f1cbc9b0d2abc04b825157836e25a7f34b4646208d56486027fd444a0186deb5fd791c155c6b01754215d882daf4f73cca77e4b015ca6d8b3f18d9657421b81636c91813f7b355972842bd04df74361dd9dc913e0a20e9eb2c482c88c97c315ea9713723caeb2cc1274b4754ecb3ee2dab3ba23d8108231f656e4f1b538b25225398fe82a73a614a36e43c8e4fc5c4bc9ee3af621430f1765368d026e93ec0f4c9c358ab27e8718163c11a38ca72585e0a00278962b3671b2e5ce71b37200e9faf463b1ae6a9fed3e2e1db55930627f1d289244ed74539a1b88f39b11358adfd2e35d0f17e590f0850eda6b22cb7561c9e49aec1c5b9585150528b5e3d594d9bb52f62223a77cf61261b01b90288ff3c05a0a87b56228c741dec86a3b7fa44cff4b8755b3a3415cd742b1b17a0c1224fb2faa9529556d191f92560729a93586a0f73a5afcbd0607cd013fdc6440fd231df6b62d234594834282f54a2d65e8095cff8a7825acfec098bd8c78112336288ab63f3011ce758374cd252e089ac4c69a7ec285dcd4d228fe530e0302f03ddaeee20a085122b746292574baf34afd1ad3b5ea14483177f2c876910499055b18487730d5b7276910a2ccf94d7422ab18493e7302450c3e4a69ea59c0310037c03f205ca191a2f22c7f47632fdb32180f6ecab5f8fe0a2a4a33239e9da11a811fa617c402ec207eeb8b267569ed4ca92c717d5759b20f314b60ab7c47156744e1395175bdd545be579fcbf841a0e76d8de5215b672d85ed2ede8afaab9ce6832ff6675151421c3c4d293f326191718c306514916c6c1f8e2fd72387b4a18809adce8d5b0fb65aa041edd322002c222dcb62e60b87513e13250099cdb342ca3ecf005488e7b8f24f309d2f111c0da192817549de3a8acabbbc6e2641c1c78ca42337408b6e3bf15e2e65f5d0a458134d317e25e1a9a3198e13567a7749dbfb952d5c1db7221ca6fded8be18f6cbe3110b70c9fa01ee78f74b74fa0d1fa0e9967bf1919f3ab8e2f8a5be225bcee9cd0df5a6eb9bdc5448539afed8458f944d55ce20be40909ea5d4a4a6155127976cbe16692bc305d3c3fd1e73c80096692ae64e00fe660657f729cee370f1bfd9aac0ab642ce3fb789fabef5f069a3cb9cf4929e67a7e2a7f9a4f3036c74428c1de9eef867d87a09e8c1fb8c20be004d9444ae03e2fbf9281d702735d658b5525c1afe4a20f083bc9be2f0d2e175bf22e070d3627951fc5b335bc4d34a46e7f8f6da193e8dd6219c04d946d788de1b65394dd4a5a04648809d0b746c2b5aae8a6ae87b4778f6933f77e1931dd8f241eac7429d2bb05d252cef7dca4c452670aa617558ded6b8d4c6c5aae0c1151130e09c2c3040bb52040c58d5f1aff96847189b7863084aaa95497b058cb9c20678f2f66d9ceb8e573c086c7f9abde1ea6689ff76186113dbff09f621124075a5b8e0b9878c6ba8b24c2c16886755a1768aceed1034f6d455b04294a874af654f3073bd32d7920750d15a0dc0f16da2bf73628b0e9dce9c8000077bc36cb661385c2d7a040ad7b8f9a709e8a227c35aa44fbfaff078722c802bb1a1f90c9405754978d24cd0bfa563d09d7a8577f6b781b94239e658574bea6ba0c1ff5049304666ba1c19385a0f4dd3555d7b42522e72bb0020a7196c936c8502163a9eab288153e96abbb8737a17aaebcf94e0bbaf3dc077bb5726d159de5bf276fa003cb70fd8d408752399b4cbac7cd58084673e1935291b8cc8b73c07c3dddd8663c53d037e685fd7fba9b44d796a169c8fc444b34e70732c7d397f82ccdbb5e3bcd9594f6be5b63ec7951778f34e8c6c5d2cc1ce0cd6ad86e0743a96af89a81421dd57ee02050eb880f230fd434b71edbf2ce9daf5bf7ae209a9fc48871989410311428de71d6203b10ff443533e6cf4fbf16ed777f642fb4fa1533af78e8f28a03c51b6047ab42837cf443aeb8aea0f900e27298bb90da6ffe375c9406b870e75551035d4663f55c54531ea53fdfab38a5f5d86d1d8d2b7b4f2154dc7c7f6cba2e67249f580193be9d0e5f4d6c1a050acf4bb856305e15251db9592203b7d8bc5740b9a19465d468472c3995e0623b350cdc0120ac6104a8dc2cbafc7e11a5f767450a98c909253d3e0163003b8f7b567507636feb377338e8ffa24f486b6d93b6c9266413b2f7967b07850b4d0b590bafa24a8246d945db036559e8d8b5bd1cb92bcd631c334f9fe46d4e74ec55445dc5f2c857128b0a8140f75eac4d202b13babd6c9777fdba92b4cbf5e9d6c64cd96bcd44d7eed5eefcd50e13b5e9a26da6466deb60d6e47491769192e9a688ae1da6a7a972438455ae24b7de77739a735e3c679d5eaabf598de97622d1a41dbb202ba3f209cfd8ad83f9f64ef64c255bb9575dc91e8964b784bbab8233cbf2a8759a269a26344dbb98e40e7b8e9e11dd893c656d73f9c019f3b7bb94e40ed3b2f9ee4a82dd631aeeae2419bb767a0d6bef348a67a68baecd8bf4ae776094beae21faa46d77ca4cb7697a15e1f9cb07bec09eb281481bcad691b210164fb4130dcf8c3e3f61d88447c77090f2c433ef48a3cf93135cba171d833ce24b8c31f64e9e8ebd26795e7b26c221286e878304d2b0687a86bbde91b1a73dcee92290a64dc7de51d02b1b031acd7cb797a77c439047aff20a7dc246a34f9bccf7a28b6e5defc8938e3cfdc9479daad6a75f57c01932c90dd58f6c8c452bbc30eca0cdc6805e475b0773a6bd6a176d77eb48f98eb68e94a7576d93794558d6357c7f35ed322f6bb824fa8c16d2b9a51adaa96b983a3d4d1e6da13f3b458789d847dbdb709072085f57c017d8efd65d19c3b6eba0cd6259b72a5a92a2e68b2a50081d8aaa5c8b76918f93940fd2d82fe65d5fb8539e2b793ecac8f3de7341000fa878dccb5d6e1df9b1cc88855ac9d0ab550be9247410b8d349803b425ac87b17dc0177c015401bb84307d5a75a5191542baa4ff54903acf83d21c7c5051c1714ae24ae0fb2c20b63840f6802d4ab0af735071f2c4244c7878e1a1f244282e0f0c082494f911f3a363a92f8f008e981f38385911e184b260f08694c4f911f3ad246ea48e2c32324f688383f5818e9d9f9a124c9101ed8a3c98f91fc8adcc642bc5f45ee7b2eb8194388fc2e8568eebd6deba44c631965941104e3b978af707ab1a9092ad598725fe6c6d71378e8215706d902846ea8b56de2ec9b394fcd29a594d463a434863a916994336ef1ee902fc78d9a53a4a9e0dca9f58aef750c849889e6de895c49ae2b2e9fb6b9ae689b2bc995a4fa514951e9d09c4a0a9a53fda87e18b9d7c8ed77f76a0edae40ec76ba205da5c096a8b765902be2b75e36bce127ccb4fd950497d32e6230c427d0c58c28026997a23314391e975c6f9256adcdc81be7c0e98a3ac6ffc9e0bd8cdc3535bddbafa17f14ced539f708d3e05a71258ee80b437a8b7fc00cc18bdccabaf4e5997f6c6f48a3f00f3c3dd8d49e12efec5537846ce34114ac02c315502e69634987f5da297a12e4f23f370e90332bf2b81e5876f1de2921230c77f40667825309afcf007e08d3eb428ae415de68079ceb4056113189a145b00020c966ef6e47953e1e4e4f92e45e6485d1879daa44faef1824adecbf55ae6df0f4b9eaf459eef4f4224ed1261929a6521fa797a59d3f3517933e769c30c4e31f46d3375e4f9ae8a3fdd327bb6cbe348b96bdafdee7b795364328f4bf4f28d4573f36d63c9cc5c7164d29ccdf3550d76ca909f1208599327eeb43c3fdb06b6cc9348f73e2679be8a2118733e6eb781335cf05e409f6f163c97eab3af77180ad536f171d4411bf55aa8c7cd6ed42f8c6a1bf1bb3032658da0799e26aa9ae834c5e9cf524cc5387ba8be8e44979927e3c9987f9f1dfb8de9847008f5b1c4aeff5a62ca49fce41fa4c39472bed26dfec6d4a7f832c2b332f2b9984a6099c6d76e1244129c0199dc15d293d179bafc8533cb1c5a9152227cf36569e3b92f94d11d85d112f10884b8517ca3893773ac216b6a9a6a8a1ac17c1541e8d1568626cbd305641aed023005fb0e587cb0e7abd2c4589658092c431a0ac22822cf746863229d2fb6f45cc9486f36758a29757acadab84067a4151b3e64914516f09a79864a9b5993a3129f4ce42727bf0754b98ee8ac19d9182977e4107cc6109a35192577443288cf1864d4269f909278135f20b1e87332e3cd6d273069434491cd833511266d90b6794831c31be3650edcc1c524a5618e853a4760214f2c6349beca30c31be3159780322719e207b2e2c277a902c54d3ede2a672f0843189020894144224d0ba164d99c55761494d3644d4b49219148a1d1898692611886a16428d989360202040c5ff002292545b3d65a6bb58ca43dcbb450d5b24cd3484cd490bbecbd97108f15e22169dac948cb0ec4910b47279a966559968db4d1899661188661d8cd50b2a3a06427da6874a269599665d9485321a58c4e545246271a2914229142211229142291b4ec279a9665170359f89363173421c03668dd83125017405c004de1bef87e03680b20232023dcc546a318a54814f2793256721469a3d169720585b2cc429e7ba5e4a8f30398135be26b2834ca34d1dc4859135dec8a4e507aa058880371461ae9dab9240b6fb20ba405ed0265e1e4026101e502f59048292aa5140cbbe6059a19e80a176405950b5485520fa339c2d94d8847a4591ba38b9ed918d1c908530b6b78b8660fd7c42a1011108f0f55558198010c608b440f3fd82336d188464c000c4b35036ed293f5744b3ce840d898ace7aac17d73f16483115be281b05c7311086b23e6d19f0b92b511fa3c8a2502084bc4e8a1d7ed0215c17834128944225168044468249a1d29db5b7b15501661941c22daa50dd1b5a3d8184d84e99110ce7aa6f0c30fa391482412755c0efd104468141a81a8608108e29a5b070127774d0ca3267532415368d18272a2b564a39696f991e8190e7d848910e14b2112291bc7b493674e8fceb433071bab86764fac7932769e8ce9fd59d3ddddddbd3d5350465ab3513b58e824c1417233e10a24056a554d6191e1544186ef1a09194e1dd3e661aa87c87def664daee8b4c9560dbda92fbe4c41bdfa7badd406f336c5746a7a0d991bbe19f90abfd702822c2b5a81d894cb344354a76a4c5742eaa88e822994889173c4015430b193999e5a1ba33cbdd63a5d5757dd6d4d10c5d6d688204b847c9fa2a6806f4a8184436cc0a756ebf68d2d55c2c87679af1b243bdb8b8879492aa1dc6086a91bccd526af23dc0703af2ae355b99bad0d6608c8c1c78d08a800c880e7029e8b2f375e0b3c14c3eb429e0e131fcf7c8f9125533e150d150d29a8d7f519a9531b43dfa26381d7adbf5755086a6dc4eb7abc0e3fad57ebba713d9e5edb24698c943ca01d6b8dd575590c34ab7a591830605897b541a594f430ca085bd218c9025fcf041f234551aa5ed6aee1c68bc6170c2467fd3b0bd722e6776ca3b1e58136d2a51ea90d665b6fddb236a8c757f571ebaa7aeaf7b24e6d8d7aea147ded5b587235680c852ccd49fcf922f6cc3557cf2454394d1aedd2f93d9f0cd357901b7da0146aac955a20f96450eb8fd12f59afc8c7036f756a63ac532a6140075da7ac8d7af949ce577beac2b2b9faf9685d1a44cc4c318c1104acc03c17fd4907157d67e16200e01d06103146fa686d5c20a767cec9a2d4558d20768c6e21c2437ac1b568917b4850df03ba1bc36ec3e96f9ad6c6083a2ac719ea4dbdeca2e10e62541952a739e764514a5f1e09be9833f453b63ec1193cbc17fd18fd5cf45772ac024e34b9be07505a298aa2a88a06cac650b5fa646d4c7fb0f36d175a61fab631d4192eb4a0fc011623eebe3c94333005d38c2ba495fa9eaa454975a2d676ebd32b6b4304d3aae86463e89cd5e32b9cc5fce24510f175b970ea7bc054efabd19748544062b25faaa44237b8fd97e70df9eecf4c088bd8f75cb47c904e2dc8c95bc895a42c6d875ae1fd9218cd3d1a319a838fe54ea8dddd2d65655100c23824c618615733d75cbb48ccd25cb7c8f3709a302d8750949443a28cf209928702f20972489443628c924a087127c9b23b2e91b2e392aaab9886a824a601be809f8f4baab8a43958bdfadcaa572b52ca29af22b7eb24b9c33169f4a0d183860d68e0b40f0d1bd0e841a3c7bd682c883de19a024c73ef3a3946fb63be5f52b8b87934f7a470676e7c11b95defc81d8e186315bda37540a0b97e50b88de39bfac852274b8c5b347745e1c2772c195ed8b8477e87fdc610e782c2ede04e7e134e17183992b50b842dbba6a6a62647cb928d17710e981b431886fababeae01fdd12bb44448192bbaf679a56c3a528e820f9182a7d0b49fbc35a9bd42c86533c343ccc44528289b75d1565f29cac6a09cb231a2de4250f479a08d41b12af8ebf4d4a7fa0b4f6d6f305aa4df0d664bf4be0f1d07295b9f2eb631f3fdc54cfc2addeab7ba2eaaf57a76cb6e33b9eee10dd57ab8357c35c25779e1ef363adcfaa193c34d7b68cbae68abd6d5dcac3fd93498ddebca422125a87c399143a351adf7bdc1df6e1b13c2400f6d718bb1873666097becf5baa0959132f6d9ec9919c86ee79a9b571bba2ccf48297de8d469723784dd1076ee2ecbae375c49f193198c9430d4ebe59b55db7dd9daeb82bf3678086d8d8ae52b8beac1a597dbdd2eeae37653cc8c4a74a023d738a9e6d136cde55457a97264fd55b7cc0897fa93bf53d63a6db07734d7364b8821e34dcc5e610b9e0c7873d1e0529fb6be037c21e1006fda0e422e7ccc69971f70c64dbbbc9bee7a699bd82277b4e0c9a02e0f9f8033e8e5a18d8ed66942c2e2e5e4d88b76f92320d02ef7f21420f54bbcb9fccdda65742ec2c79bf89348b5527a73b3c58474441fe169833d48ee16daa08f0eee642cf2687b194a98e34dc4c932e664294f8cf8c0175dfb60eaba07f07127d4161595ba31de0bd64a5fb2f6b656dc1dfb5922aa5f7f95bade25b531a2531b037a080a48821a263ec488e8759bb39f6fd0f67265a998112e51a0c30e0729539389e6eaa52de2cdc44fefa9da2d766512af2165f089b606cdf5d56e33f6f5d42a41658acad5c6481ba97a98686932b435aa15af10bbd731bb85e8451b759858ad8d811784e978ecaf39ec3848b9631a9722b631737cc44c34875d36d7313291ede1067af5b1152b4165db39912b8c15097c015fb70ec644f8beb5314b80acc38d367737521bf0db6473f24c6e94cdfdc29b830a25097624e8b9b8e2c629f3f21b0384d1f32247d07321860e94a3cccbb2b90b098c9a78a5e17659961de38cf2092517369412ca28e6414ab8345e71b8d348a6625f70b84db0f7316bd6cf5febd1c6cc67a4ebbadd3a9a6cfbde7b99972feefec54d93a90dabb6d0b6d5a6c915e83a75d9db2eefc210a76e1dc4c9efd6466d0c4551d5df10a28be42b4993a70de6b7809857dea4a35e69b8f110a4842b3f77e0922632d3e690dc9b9f135ca0243fdb479e8bf7264af26f08ea0fc398301e7e015250e55382bd2aa680223f0bd09a76c9321f5eebadcf95eb296787c4dd5bf8badcfb420fa9c47b5dd8865b5f7d2020dc7a5db2ce0b74499718bacd55d6eb55857b6fd55a65ea4397ed5292549c76f05e62cd3484947a37a8d39c843f8664f914dc91a08ff6116db2843ea4b8d7a9ea34c693f15ee06b4979d58f4e793701e9944aad1d047139a44fa3b843c8f241bc9b9090bb89489653913c19a1ec1235b67c31d75cca595edf16c23011f5a18770ad416c1dcc298796089a6c6196e652da055eb0af94d73be94c39938f286e75fa145c3d9e657b59866eb36c30c39a287d6412a9440a69903472937f54ab866aeda11ebe97298793ef567ab50b0dbdbefa7068637e580367b05c1e96009ae0b90471d922037b47a25e4b8d8fab67d9deab6fa9e76a85a10aa10de177ad6a5916f66aebaab358df5e5f41d805404b104184ce823b98ef0b02b32cebc6760c77a199d0310b10af9411ea080a101bcb26771a8be664b748d95c65a25d42f8429d1fd007f41144907ee1788a4823ed02bae4e192489647b27c10876909440291413a6335f40fc85caf04962bfee1dd94b385fe2c11a1e32e62979f76daa50269172bbe481d978b0996872e5f4333403c07cc419c055f4fb8416cf247e892419a135d4224901890cee5e1f620ccea203c139176e1e13b5902c942b29c8664794b44e8d7136e27756442782674fc19b9d39cfcd19cfc9b934e962c6f25cdc9735b2fe9169210180402d101027754de62c1d087f52a81b40bcba54aad179d6e628b3c65c153ce74736fb27c55830fff614b62cb01f386736cf57a37e54c394f868f49a75d7cb8fcf4a35dac4b9a576e5e21e595bfb772794b56fc2e8c9c135f60cd9453e30396409a93b707bd9340a2c869978639be5ee64c3eda45a7befa00cc550fdbcb3c6cdd5392e557b6ee66b99b72b21420599e421f599eb4a16cdd75b2e52c41652311ac691172a92e8f040e987ea1b185c66f0b1842c88b3b7a3b9225e7b98e656243cd3437d91cad616900cca0f2c83d7890b2c7122a78e8c8d6c6c095f6894aac8d4b6e624b4fa49b63c634883e9da4247b597612f1e58e4e4239017d54b53c6d1a7faa6da6de892c5564bf9a5e3555a95a455aaf973c5c563cc425b9e525eed30ec7d5e1b824c5331445c634588d4bf53489dbc3b14bcbe854557109e5e15d79a04f22bec094ded19cf2d72f29f7a107bc823b4a276be2e115ccc4c34a095f58fbd01e966549a924fee46e3e47cf547722b794ed1395c019f23432e9cf292ec9937e5a322ec9d3fa64e1997ef5e95d8e39c54a5a75621995c017f32a9b4dd9bacfc3c496f88b3b4a2f0aee2eee48240d77c71d37c21d17aa42af169da12edf732e49d23593dcb8c371493c43fdd5a2d465a8741d7bf9e393882fc737b6c4c7eea4b89dfe8061ce318dfd29ab83301c82c2cac8cf54541ee6c4df18d30067488be3ea2419e6904837c7aa7d281b63a98baa16ada84f8a7a758b4e365d27c9fd47ea34c4169f494d72b67c961808e95434b92b1cd3409764681bbf1b97e4b925d11c134d34173fbb63fcdd4a40850f98e4fe61228cec1f507f145b99670abf6e69d1dc1586db3d222dba97058e249664f922124083043482d4f0f4842dad7c9d46345784eceeeec6483437e50491609281e6e6a439e699688208ac99873afae50d316ff2a44005da65a25b115c9e454c4e521e982798f314e31c5792dbb23b43cc447373e67858c09c095252c09d3c4d46343715313d0c792a439e2638e42902af6582c07331411fed32e968179907e18e97bb3704de4c873c9ae40eeae4e94c343125a05e65b89d1c9280767927d13fbec013bc96e92dc8d32ddc5119e409e2209332863a9e8be94a72a7c31d2174a220ebd6046d14972c6951eb94526859b728b5dd1d638cf3515e578dd99aece9d6c96c6573168e375114755dd7655ebe70c97ee68ab7945691265b1b8e2b57b89202bea03ea81e10673621c1cd9cb3e7e79c73ce1963f6ecd93de7fc9c73ce391bc7782ee6af2bae9c308ce6e61c43bfc732230e5a702ccd09d19cbc01f2001e0cd013ee330223cb438002156897d23c063290a30978c9e46f286b50b343a3b81dcd92c69718b1459ec6a0f0bd07697c31c06b9177c29542963286186e8c2c5bb4f0892cd0c11e4be59a9332e68ed19cbc1059bec4e81629c465863b3f25a05d645e8411ed5262394227032e727b7948ee9ecf0f6a72f794cc1ecfc55506967679f575055e0b7c927cdf73c1445ea1089222b9be0bdc57c50f244030925f93fcaa880249ae5847f3ccf23a854314a0a3904ef4d3a14d9e8e8354a2d8c6ccf414d7e4e9b262d6655eb670a97ec67abc85234d9eb6eea2c974ab56c017f2d3d6c589490c776870029bfca050939361e437240b26b2374ac3703b1af25d21cbcbf7258dfcb2846f092384bdc1c795e6a43c921bdf2cb295003f3d52d434e10e89dc95261ca43ca95f7208eaf49edaae0f2e9da7d73efa343f33f53bdf4f9699be34611b3353a730131513cdd16bdba85ebf5e5bf4de3151b883237ba35a99da3b1e153af5908da15e7ce91dd0d5344db35ea569f3f74eadc233a35b775229372e4ec15de751d73779620a539466dd86655d7bf69df802714011ab319d3a75a875f730f152cf34919581a742f686f614d034af95993e337107b16962184b3c51d7403646344714455158a36962cef70eeab37be42ebbb6cddc3b91a9adcbae69cd2377d99caa4c7b36ca9ea33315638c233c43c518638d7bead9b56da228ead6c553f6aa66539bdac4a5fbf9ec300d71e24b83709e7d6ea257ab775aebe81398e86df3049c9155b5ce8c0eb20b181d7498065dc2aaf613f4a64a98615b4793b1471b83051d4cd293e3911c63f77a60cd9351a45dde903bf4e4173944ec20099e0a72842fa8418e3c310a6183919c8076e96811f388f8e2c357de511ea20f383e1e30c542b4981846732c99e5176c9f941e401964c78831a7534a062b23659e280a279ca8eee9c6076d9a83375d00f81d448831462343803a601158243661823be1520dfa89620804439d1a5864e776d0a64896a14d7ca141a91b49a49fe360348d2628b4e91618636c5cb2214b35e2a93c43612432901b57a0658637cdc1439b215868b3733b1af0341260040426869101243a896761863637383007ea080183468873c0dcb742b8fae50dc1d202fa5c3ef14179e1c883dee0b5bcdc613253ec782d2f4fb8ce49a2640ee48edb0b1c0225f73b073c599e8ae276241d1d1d1d12e4c0ab6debc8934814e2c8431c263810073261c2041a8981add3405aa77ff4cf93f1ee146e4723cbb78e8e655d4a6ed73f13ec9f5e021ae0bdf4cf6b918fe90b81090c347063b8174858b852e8e7843abc1788d3290f061038287e03520c2e0b4c90e5f65ab21cc0cf91f8d23a47748e407c44477e073b5104e1814c7ebafba2147791e67a9a33d247e24bac411459de0e21cb373ed23f4d244bd9d12ed22e90c239e77cf3689779299f1cb2bcec600fe8a7a675b48b4def803db007f6c09e2c3f872c7fbaf7037f32067dc01f3008e4690933083285b975e20b29b6c89348f7ea64f94a8a2ffd135be429bdf7a704b723492066717fe2cbe8928afef393e547a2ade61ea637d80307e240264de427b457a113b4d3c65415a594d2377d9fe23e06edd6e5c8f6d8f6ae4893ed86e3ca17dc608f6dda986ac22bcd21b910dfc6544eb724b8cd7335c906f5b174924996ffa46f9a8ee4ae9b487ca1b27b28bd9744fa394e421eaecead23e579e56915214fb90b8314e33c1c111d3d768adb45253ba34651495939175f9ae26e54d2372bb88351c2ddeb49c11df788a8e0eeb87b3c19ee6234ee2e8c1156c251d3ec41c2111f791b041de983f6503d534f4f7c8994dedb33491f5247feb8892f3d84d7228f0427b414b2fc8467106e277372da454e1d691b4280024a2a605dde08ae050c21625c97a7615d4ad7a72558349135ddd246de481c224f86e5c3a642f9dc86b40b0877f0d2d1d6367b823638648342987041efa0902c799a93541457d43aac296e078964083437e52191d17b7807838777dccabba7bc23a99c083d912cfb06460fb883c17d05773f790aee4879d42ab8bb79444737dd223f8a4a9a49dfc41749efa5f8262727e7e522cde5c41729e54bc12a52f64892a432b3366b82db491e2559be6b1e394412a1c9a187ba2f7774f1a66b36c81eeda264496412b1883fb10975492f532291f8671179169167599bd637cf85fc95e4bee64ab87b4848b87b466e1e79c41e3eaef59393935b585e1f7e42baca96b295a8bffc2ca904f2cd862703cfd7c9c6cc4fd50f4a51eae509e5f3f328372a29e08b69ba354f4dd3aa7e4cd42dfdecfaa6eb2164f9d1d60920cb8be4435b2765c62c21fd22879013bc91efd13a9acb1dd4d13e601dd706779aa310673e9b9b2c9994fa079b4a45f1e2b5c4d3f8228bfb2247ecd575fddab8e6aa5715fdb5bdebb11ee55a76721d05a55239e8292fa9a01ce52c28a3d153b6dbdce8275b088a7b5d7494873699974f5ea38d41c1ef5e284d9c9c5cd32e4dc3a513edda75458982f2f8686b4814edd7c9c9310cc37e7282728242da5ec64828b56abf36ecda751414ecbaae1d05c37e5da45f97125426910ed31a7614d2cb996c6e74d0d6dd3ca2cd8d603adbae38dcaac22aacba3a62176655a32adab09f6ca1437b6ff5eb625575f24a24fa6834424141b9cccb28b844fa0c0ee9dc520d946347c1af39946327fd9e265f5b77e5eb275b0749dbd6d17c657f563b4dd632d12fd1c8126118b27eb71014173b08c36873fdec4663afeaaaba5bb1aceae271ddacd283b6aebe7ad44fefcfe85db67527af150d1d45a397f4a30d0a81439ab38e623ddbb48f7e323a1c8d328c8394315ccab06355256d48e78ef047d5efd6d1e40b026920d0481b8d40a2572311063a86551f55d5b11108f4aa128d5e5507814418e823d013590f5970a739eb34f9aa2e6817103386d43add5eae96d5219d1b3b3e04a915d5a22e1adc2afe0074bbd5e97a360d730c73ce59d1061da669608f7a9adcf852621dbe777cb44ebf806ef568cec269cefa81cd8700bd6ff523ed96c6948d012de136e4e91d7bcb525bb4d65b064f86bdf59e019c516fbdda9e2d6b6b18c01756f76cbd71bfe0b9b00e1272ad1ed9b2ac5b5696556a8d35dec233cd43b1810a287ed4d72e724ea9853b5f5324de831333d14864139484fb4ad3f49e799e7a3f132e3566221ae13a86d9674a6db416b6376ab62e2bf3decb56c6d8ebb562b5d699f9aa5a312c56ec730570467db4a1db79618b2bf6f90ec7d5590c5700d336e2d2fcb56e7157c3babdbd057535c31df114742b73dd560bf41b5f7e23ee6065c5882f85ad8b0ac12666edadc537d334611fb4b18f102777f4206b61b7a0431b38c33a08c3449b235a7007e814b3e00e1b313c635f1f8fc5f85b50dc3099b1cddacf8a6db5810e13e15d81adb562558551308de11275d0e96fc4d79e5eef64067d5a19ec331057d81f2fb8023803b30781e69429b80238835a3b537f658baf5aa96a59a05bb77654107e769ebe42100874999741a0c763a0c783224db616db40969e6e7484857c1512ea3f72c5e21f4b177b32f67a5df13dd05f84363f3294f8615686ba746ffad12eef51764ff5d1067adcaad747f5c316f54ed19c4ae79daa82584fda5769c95b3b91b278c6b28fcf8e5e7cef51959a39f516502d2ae2923d7cd53cef117735dee38df7083b2a6e5df523439095918fd6de80ef9e185fbd4bb332ef3354aca2014f45e2b823ff70d7012dc371c74232b39dac1863c45d8c91e6543ab10a92bbea303eeab0d28133de21ae767257490acfc4f74a9efe00c16be937e0bd24118f783246973804218e8ac29ab65b3cac628cb7b43a4cebc017f19595a1afafb607ba68b360cdc3342789f8d23c1104efa541e7e92ade4bac02fa60d8c39894ddf52e4f61182ed15b4872d73d3eb02656f15e600aa0cfd53df12589eec92d43505c1c17683be2b9b03ead0cf5990a7750da1b57a60e5360bd1bf05aacc72462254507e22fcbe239655a490167d40ec7f3b1aacaf2514921e5dfe6a39202cec8a97e641933a8e2a31af1239e8c239e0bf8f748d9573816182d62f0bc2117cae7783d30f1080c2431d914dceee6ee6ede4a91eb99a7d8ddda36663ac571759e9fb9e1c31484841bfb12976ccc3cf158ea97f516b736ae39ead43507f972dfda5ebe7e6e7df5d1b5df5778b30ec07cc9817494637f246c63e6d15946dbd51ce8a22d6b0e746cbbcd819e8d2efab5c9bc9c89a27535916dd9354df4696344b89465cf34cdcab25b2bb2f65926da3a27b2f66763b293ed657b72cbfa89fde8d6663fb2ae6d938db1966559349f5816954f0ed3f6c45edbac8fb693db1ce828dbdd5e86e99b84a52c4559f15a6b594abdc3f17ceaddecb30d3bb4d42545fd9ea2b25337fb7d28143af98cbd667f72d069b2b57557b6dee5c8a39f6c9a956da23f3bca369a3c12dd5b37440fda42505816b4687334b9aa16655114a5e829a5f00cac5820c910686e9aeaa3d7a6638ad893a74b9d523136e4d15c84dd9718122902633ca80957be09a70912696eaa70c0b92c32dcf8f98602678337cd4d8f1be461844b935fe010d321ce4dbbf0b8148d4c0991a9161d4ba656a653971d6384524222d05275ba892fb048b74c9f3a3884e34e1a32e1c021cd4dc7e276cfc07424a6e3783d49e478496a78e40eda1c71447c8143865c65b8f088044c2fc288768912420156214f5b98c290a7090e792ea60fe91ad014bdbda4fcfdc1d0efbd30147ae8de946edb53d3a6b42b6c1f26f4a2db0842781ca41c7a0c4188fb18167aad189561e744ee6872c4fa7d1006bd370c746ceb8330cbc660d50a508cd2c6d8d777df8d20262c5b83e6198aba42dbbd8fb9b51b51ba5524a153db3d4c0c6f88ae815c575c3eb36d5ae7ea5054efc85424b54e8c91745dc1c3a46ffa89def1c44d8eb6b120ee4a2f20c04a1de29bfdb8398a3b433febe9619aaaaed709b70b7734d4b32133c530716298e303eae4401f3aed323d3981f0b29cd50af862d624568a3b1d429d76b151e440eaf447bb543b4172077357ad802f2a7c85225dfc91e3af308492335b57eb9071ea9c0875762a2baefc862801034f902ab0c8c733591cdc3e063280c42996798e9a762941d92d7d7919b9d465e7344e0f1fb98d5c493f0412d94a1416690e1ae917bc190d782f6eb490e1bba7854b083c0e7e6e14781c8ccfe708882f1f59f6797aa7488f868fc20c478e49e4584db388e6fab2b75b55104eb02f2ddc8e7b3e2d321721bcda85e6269128bd9459ca1849a4dcb345b774243d688304069ad3c285d0873261895cd81123ed9df84271e7c47e793b3927be4420dd024f2f7189c23b3acd4108ed3cbc91fd6207a9e2421e39ec18f151e16d2965c3d72f728877870079211d4ae48f941d8ee74323865dd18270bdddae785d8f52d6573fae2b6ef4d606a5b5e22653a230673a155124913686d281c189048b1969e555e0d124f191defb083d12236dda5c5715ee90682e624027528a816e8953ce908803319083dbf5cff381a4dc3ff10536a15437f9899f624f4dea1ecd45082145e10ec70561146e079bd81cdc0e3681d5d6471e8d53aa7f1907b7d28dea668910420871d79dd3e3d6c8cc9f1bdcde583206e229ed78c4c7c747ebd00977f73eff744b6c96bc12a40d64f8696ed2ed65081bff547183dbc1233f4794c012129f25edc2a45da0b5c18d36cd451b5cea5db4c93153fdd34db658a3a37b47f718691d16ce0a2f23777ae5a326234105143f39c668e43635c448ac692ec8bcf57e9a8b3ded62e16e52fd94a8a8a3b9b823c79d76794d720777722491ee8d3487cbe141935c80fca8e04115b942c8a35be2df90dc3d1fd8a3737e744bfc1092901c630492e3e395c585f9074e2c37189658614a0d14f28302097c3214741ca1f941a104445870fb2508826364073a4ec88f8a9c2446b44bc9c6cceff188e722c7487e54e8a048eea891dc50c7b4d971c303e2f48039a5f8a090214df27b2eae29dcae45862c2ba4eb4eb0a239bb6694573681c19515a498c808a59432ce08a18f1f3f9a7b3e9a0642086447c80f128a502896935352cecbf91989837432595ebf00f109c4167d624b9f481ca47c72908d39c1a588a34f64d964b74494975e7a25cd93a294fd4494b89fb032db79b86c1750fcca7b47e96d73336b8ebdd6138aa2541ea6a8939389f14cca554e663c518911aba8a448159553d72e314c479f6c2425354f4ea2b66d1dccdb4156e68747fb43bcf64e931965329eb278525454b6975352289a26e2a736bb07b5cd9cdc891c53a4764a9ed266fcc9c9b14649edd88cda658aca898665d48e37d261e2b669c7189e939ad4c9e7b5c3b40fb8bb3d6079ed73d34e3a4561954f7184af3dc32aa437e92425454bf9e829291f1da653524e460781a4e86630cb6863bccaa58c564b9130a5081289441aa56ca47e62e5d9c6032e6d2594bfbc825f73a02ba350944fdb9c9ce02bc968c4d39c90e6668dcf4eefa8892f2ca7e4ac9970582e9fb6f9b9aec0a249f4e9963e4dc11dc5f161c4e7c8758591ecbaa2b4f251d47cf8f8b48b9624255bd93a98575e7a0549345fe9621e9db2a54b96e4557ef2d72e2a5449aaa8dce8ac72d99ccaa145c125d9f58e946b9a06514e4e489bdc3ad226f3320a0330ece4e4d994a7e090ce9559654bb9f6948d269350b49f6cdd057ab68db00c6dd7056197f4b150f844253e160a1f9f5993f9e00e400a2a5593fb3f84d81fa0a03c5af90352bcca880797a270907296a333e9d3c664299f295bec892d8d511845c989634f7cb9ba65ce9eecd496e1d28ca51e446eefbc823f7e80fe5c6ecc15c273419b7b35d97a177b8034b72395c4887b32892d9bbc94cc192325b13cd25c37d5e4fe64125f624f0f2152ad18127a0768b28c528b33a25f988e3bb85d0b017339d22ea3770be1c97850fb044f4e8e6d206deb62be97b6d4dc68ced27c7c863b9a6c8499f8c94cd8984b0eb7271ae9179409f74049865bc88f0a1f37395214759997295cca3e239fdde6c87134471b4d9e18c636d0250a8e525268a30b6e4763d722df1871a6cd95e2a75317c60518d1dc7b29e6885823a2436d1edc3c1bb303222fdac6d827eea319d22b4efc927c0fbaa1f6a1ca1587db43daa51e16e99e36d247da0549bb608787479a4302856be4b980f0f9e48e25c308936cd3afcd3ab4f5393ae091a9e0c14e7e54ec20488e911f153b3892eb74416b9fb83057960c2b2eddcfe090ce9dbf588e52c6d722c77b2f0d782df1544fdd7e5c50b811cf89e311cf459c182e815148926147650a770f0e10875e1896e29f9c18a7396c5b70616e1f2a49b52cb816acc2a7497e43ee70240b20bf2aac68922395451659d821bf1fbc2b6ef2f3ab620c4c727d1af0b931e59e769efad46f6a9a72ff35c914fe01fdb34e5c434c212d11f2539613db9012c72b10e19973cece893c5fee38c94a6793393d4f41d98499fb062ab8f2af5df0665370e7fc24ffae2b67ddedb2fc3eb18cdd37b9719a47e3e4b636d7cd4832ef87e71e8638793ab529b85b090ac97d2824c32179486e4c41c963e57543ef932bf6de419b5ad157af9310db1bef9895b94e2fdff779b4e9bb5e298aa2ea36333d8ba26aa5aa157006755a3f3d3b6d5df5c9b4aa847a40bd47dfa3b5c6abaa4f577d64ec9fadb0374e7c89394f8e2eba28b6af721473a87cb7a2508e75ddd469caafa269e221a17549eee273f4cc25294aab57243549ee22ad3ed56337eeaa4f8ef4f494be5fa7ef115278fa5e95afacccf55b315f6a059c01c2a04aa3154d3a1c0f534a312e4daf6c6eaec6c1c9f5f62a21283a99e9672aee20a5b11e52dc7580a65a5161f5a689d247bb004aca3c49fc2e2f59ad803360f5c91d77f2fb816604519450e3cd7ee76fcd36238ec0f7374233f7463417b96e89a377a2d061e88aee10a2c31b458f2caf22e20b8b111dcb686b713f9a09fd7e6674aeb918baa88574b1ef46a39e61df8d463daa7d8d469d7419bdab67a9f51dcb4c3dd7a25d6a673796c8d22e236be30079c4b5b8f5305d73541185903c4317855e1fc58f7c17701f3a4c5716386309b875aecdf2644898597a66962723e678209ecba854710d38b2352e686f3c9e3c7a689b59e6502874686b744d56226691850bd1855c2bf381cea12542f0bd103d072967d1bd11c2f071a27b6a6dc41c8a1dc2efb910e1229a8bd711f1dd7d11db11303f6b447337bb4f84b3ed75cbec17782f2ecd7a37267eae75fad03b963c75649fe25ef439ab59e3539adf4a139386e85872d63d311811cff2643c11be9a2b8d4a237cab504874c893a9e3b8b2904c9db227b8f1dcf5f8cac2752d728421448e3168440b02814422d1655e16e1d2e833a2cf8fde16daeed6e5c8f7a34d849d26dfed8184b09505b3f5628cd43b961ca96a9be6a44e294afa845a93c18e9452ca9601e47703e4f7ed09f15ce4df0a0fef488f079c1303bfd8d2c1c071f861e51df7b2823b27b6c4edcd680cb1802fe2df031e179f849c042404e9de99aece892f13782d58c01947b021c81972bc187274401c72bc7572a16884375be1c6692e36687a9eb07832a60ab70f7b842bb7f6f18c7047ef39293dee9ce722de16e1569d33c2545aa7db1250b461b104dc724e36b8a4b9f86ceb72480be4e6daf34d21c7daa012c8e45ef7376aef2ce58f74945255e99c1cdf3aed12df39eda37fe438bd93684a0134b9e5d4019a4cb1077cc88d4ba3fea893c83209d0eb5425ee94b8f903a55c5de20a97aacfd09697fdd1d651b744a7a2beaac36ed11bcf884ef18ccafb52661156b9f5d2666dd4f7dbd650c1b2b9147c8b8262b32c935936a9ec3d4fb2db53d95bdae78839eb646b19d66eb5f7a649dbb79f0f7587de1688e810976a5c5677aabff5f76e5d35aabff755129987af7c84690bc51d5dd95eb74c11e854fdfdc55df5910268a6e9a3d32dbbdc8a78b94469d6191b7d9ae665165d62d15f73a2119ea95e297c6fdddc20eb958db1570d2d570c994025422e7c124dc43311af09a884ad55c54d2b158d08000004001314000028140c07c462a150342a9786bd3d14800d9aae54724c9a66499043c818430c0120300000020000c06010008c78502f586b75588bbc10d822f450c62711065e684fbfd3bd016c22b6f55d8ea64413026fc1c58bb8fb9ed66553c9f342454a2cc188084a8928c0278711eb55c55bc1b98937d7f2b22a1c2de9859b402c3767a25772a3108349a8ad1b1dec131cf4da8993ebdd94f2745b7fe97f406dd14bb84e8068fdfa0af60064b924cf0ba91efb859cd5addd1199b3abf09ebefe554afdf698a3405f3e98cdc9b4ace2ddc01427e6c754fabb2a9bc089fc4095f8f0aaaf0e36b930b4655177da3af365bd4842c6dd85aa31f3337e0efdc18c3a4a8c1e3cf6918a11709cace16e4bf95e2b9760b82c07fb648c6830c38198f3849e7a7c0110ef8264ce4ac489ac66e9cf45af714785a4807b33093934aad58d7e894093e15d8def1cc93c46c18f8ea2185e9a0115f514a442b832e5ec611b9b829757bcb9dda25ab34002e7d22d5267a774a5eae61e71860b9d2eec967d7b1e411d4cfbf9011069f6f4ae61f33d82fa4aa43632dc3dbb05e2f5f76616fb24ae947a2a5e4be11f40dfec6e00bd41611da7f5f4e3b4a157301141f9bc1d7b9439561144c953eac27b5da620f4c96bc8a9dbea2261a294ad1aab24dd05d971439c47abceaa9e688a80a95ef009d5b966f2e494585044b5e40aabe54c99e825a1e34fc7f9d17da37ecf49be47f9ab170f26c1205ced2a980a1f50731d3b8b5439eec82e5822e30582ba448cc5fe19f88f30513acfe2b20ed156f1735607d92ff9306114a8ae7a0fd4d580a28ed6a103416168db1808d61d173ead28d82bbee65094ca6f1d08b4801b35f37d9bc3a7325fbb8f9476f86381e6492aff2de288c0896eebb561296ce3c3e5fab76b293dadea3b558983c93b3b1b9cf0c26faba5a5bb5dfef69dcbc7c0b1370ed43d35eb2c9909dc4976466eb66a62c05b9d54661554ae6c144167aaa93e1072eda86d4bafdcdc3223655dc944c2e69602b676dcbbcae77022cf364d7685884a395073f6a65100c0d229bb8689f895ca8164055c5f7e7dc42e33b036a249655bf80b0adab0b5f92e599b21a8af68f99451d01299100bab27be9a07b249359d6baf376cef9786dc2cdb58bf2806022d9e56d9cbc0e688192bc8e786295525470f4e588347506da1cb7802d008c422a2818ed8183c02300960e259c18c36d125870deb3c6a9fc0a14f7b8e92959a62c3e3fc96f1db362a834774c90bc91162fefdf241dfaa026cfd9c6270c462b81996002b2084eb5cbf4d1a88f0440bf6a13b924f444b7913f85402f4574b42516e044c17ade12d8e83556a3e2a0e0ff9445e6f094066e26d83305800e231124dfdb49962e1d33c5a17d668466a3d9dfd520bc9a31c9dae6724e39e76aa7011c34fb63c59064bf1009199ae3eb283bb50569d69a845e6ad54056318a35ca84a10fbe9e58a51f57499df14ba5a9eee0489963e757c408dea6ca025c12125af18490067e074bf756b3dca978d0cc00798a25add13d067d613dfb305d0ecb167782e0eab3b58294591527854f2b1abe21a2da0f081a01d29679aac1c41d03fa883144481d032aee0eb7cc5589fb84adfdcfd02c19e071ec0617afd56cce2d585083d319335966200420b385ee57d52c24c1677db16f370b6a6d3d17da1ae03848cc75d25a19a086ae41f3c14a3ee4440979d8f2a45350de0b61a6b1c95df411ab759c3a185c1c52097b7d77797ea895626c1aa9ec21760aea838e85b1434b5b9966af56ddcb4a4a18df921130e502f717df3b6550179e18e65852ad11ba5c0273b8fe3bc153920cf2c4cf35261ee292dfaa70f524d6246a1df54bcf7317c3f5830abe6d36bac593d4fa22ee651eb9db72174845b880e45e4433a27f2a6a98128b2a613f0239ec5f6ab006274e7e53ed27421ae0463439fc881b5792e669f27b857bd02685b1e89b6085e1b418f3573216a502c1d2c5e33ac813c6f092c02016c8a8e92697b4c1639bfb8e7fdc80f5667181da170da77f089ba0ed63e1d394f444b30460e4187db6c225c0291779a6a4091ffed24f9bcd233e52fbc502cf38c7780482e789fc2150ad3bf85542ce8762286223dc14678acfdea6bf3c5e65504e7c3c1ed0a3b8096cca74d440818b68b800e819689fa670d38d36aa404c4cb253ce5d15d3bb7fb29e88a54de72bb086276e500ca881df6260a18a74a3ea6e0d637e41035ab14a903ff172694868617a5368f6a61ecc317482f7ef3c4e5738df73026597e27d6bd01d1c73ea034d8dc7c4b6f3146415821cef8713ecebe81d16091b35a47d59c583ab9a4c132f004318d433810bd6241d86d238dc62ddcc85cc0bb9abd5d94bdf1c70b650c49ad99fc045a9489ab005979e799baccaf78fe970010f3bfa04ad05810319513d22483c3f6e3cf5d2f9c8a946a9b89de3a65710b538b46632468fb6deeb310181c16b085d7a00e52efcdc6848b6c0c7fad3cf9f1943a9a439f27906d2906a5773934128612d035c2a4167184f9d947f9a823d805ef62cc53478b31c3f6963d97b58d840d1b3a6c7ced57348f124f6d0c4af13a5799d4d041655e5f412536279040c09fd4b525ba948d1c3dc4382ebc80784a8208a158338385ebda69f58fdf7c895e10b2b0a0f5b641e7651d16e53f918e727db58ba17f0d42929891e4e97136140f03d434f1060c7e9896a4322328e317ee81d5f56a63e64d11708ceb1c196a44001fc6b2996944c40e3aef66185870b8d3e63c6908ba21746cb9433ab0188cc3d0644e0e56c26095b7ed208a9efe646eca53f525645344c547a90d9725e6f4b6b5803a8f6ff29576e04aa010b32f47f2ea5f102ef94cc3c7fde2b35cb1e8927db9b87e07700772104a0a1cccae0cf4b883cc34c437f38b021f44aef1e0ef51a9d6e7acfe64be6c56d8352cf38b96ba5922bac1fe232a362bb4819da6f6b276920565491137f060aebd71242595e66785097c61cb4e782a136a4038a720342342782c131faf374498cdff41b87194bf839b2d6021a1ecbe9dc20c5364c3ebee6e685545484b8b282ef762028b23ad52dc22a65a191c2821c629489cc1346c5e33a95f045c5ed7a8dd2e477fc3b0c109fdb901cb87e4d4e686fbd6e3dff32730ccdfc113d3c88c8631137bfb4dbc84c31fca25d059ee1f7b1474863ff575e6f36a870b4d6874515b83402c52e3ee5d237f0b2229f6ad31d9e6058e455f5eaf318ef416ec9dd47a1f745224c50191285a457a10c035f9399e1ecfa1763256e695dd067cbfc6902473d2a77ac5da22f111577f0aac86b90d8f608638c552a6b0a957046ab1fe2146b40b664c3d5a625569efb12914536dbbebf561e34066ba12cecfbe34b40481dbf2c0141d851b3459aa84d71e60ba151da05eb51d48e42d14cea6dc530c29cfc010eebcdd7c46303d8313edd6966a0503a886b91bfc53c61e34062ef0a17948e058b55cb6470222df8ebcf403d87526c9b03fa67c20b8112482cc7d8172336609c46920a5cccf7d06d0a0bff363d02093901514ee301c6c3a9e3a7c74b9ce2125434a0b92f1b8b6cefad5c9fcd6fd7077a25f90bcc89f89e8f6043674ec3ab2f0fa880fad20825ba8e4e43a0207126d38ce03670aebc15618adc19944038e2ee9c6949f2b9346c3c30db6c391bc838bd101b939765c61995c22356f301a0585be13fa414190e27af22db59f984724f1e5c5059297949563a43121f408f57514a662cfd9638ba25df0a0311784a05e9c156688179b9747193f68dd333f26ac68dc7d152d875c9f50b4232ea3d302f45652eefd8202471632d4ef3a1339f789d7e80f46e1ad4888007629138f3668d26ff401914ce52eb7182174241af43b8282f0efd035e148ed218bd90571758e89703cd26e2029b6765ff7adbdbfa020548b7d92096e7f434c47ea16c59bf6dc263063731bfe1cc7f318eae0df61644b8331991192f9265cc74e29601169d7dec00e31cb84c49eff766b2358ae9bd5df80e438786d823130c92e570650b28f66ac2a8db7d362e8e0d984887b022519538824fe118ef546d043428cac3c2aa9c0ed94695d247ebc1ca65d82e2d38479769137b4ebde4299d1fe0a544ded112c5173bf1e168d87a0a4f2dc6934dd566b145b82f6169eaea8f94148f0b4680ecdcebb7414a3f43ed40bdba7b8e5d49f41ceb79b31995845ea6b52b39b81e04c47717f4d1751a77ba6e2aee8c2cc082930f3c88836eb7a1b2ae37411a374dfb92149dc9f882fa3c24871cf06f8381c87f2fca1da3e52882aa25fe5a2badec40e900687c8ec8c86278f615468acabbb01c8bb48f01c536813057b339ab238f1c68950b078e29d49dfe352421e52fa89df339a934c0406d1379eac1c7fa9e4784c4403065e0730da702ff5b917a64a8a2713cda3ba2024fea92605a036038bf0d32b0db0ad80dc968cc116941551b16a12c4b0b468b0381aa96969468debf36ccca614afd6c7d5b5b71a3c14ab3fea828a508ca4186db50bc0c412ad6e7230d628011c5c95a10ef4d9a3c981f86f9e44e4c80009e483fd8815cf382132a4cbe569f39ee0fc0322ea17e8e9530a287904edd8c6b93ea8b20b0d023065c8521891366a483480c19d40609afb4c1fb65fa465bb984400b9e1bd28278b759442862a74ae69b65f31f927a5d60e8afd8afce82b4ec2d7ada7052ef84af2e1c7c871bf2f4ae848f152bf21901a74543424630cfff35f777552bebbfd96a21983a2c1d11f27e4b233b080dba94cc4aff8ccc3a264447433ca9af3a7a37bf6e539404fd599545bbd3def7219372cec0a61e13c6588ce3bbf9336af57beca1364e9f0603187ebbd0302c5ffdd9d8b14f2524dc876d369e9c8015d4fbfbfa88fe209bf092ba0aa05cf9fbafbb5736930fb09ba2699380fb974ba55ae965107dd7cbc8b28771388dac8d75cdc26f1908725c02956bf96bc078e6fa4f169410f154a1e8b23c6ff82f20a8349b0fec99c923cf0106d349905005da5a4e165091bf86b1c0c48775a8656799239c8f1d2cfdca344a292abac19343023c0e766a7d1eb8206b08940061cd94d7cb84d601a01d3dc0f89de60c8ab6f7064ebc0305c11ff46db744cc11d822876731b5304b8ad92338859fd410100844dfdd578ebbc1599717364b83ad95d6b9b496c47d2a4f919b7931b34afec3171f3267fe6512a897597b184c90c4455e5bb564175e8daf20f8e4f0d74f1ad4163782ad6a2313d8b0745ecb8fc27e28dde439f53c9fad660d1be684b94d86f3f04c20e86326d2d83e7c986db37d5ac339cd38c22847229f82c9fd00d8d3b9d981197deb591087f510d5dab01c5aa0787091244b0710912cfb6468806a25fb47455653b6b4d21bf1ac406b2b75ba63869ecca448977aaa5aec34da54f6f57520d954c50aa310561561932d45644a0fd5b715a8bd4884e2290662f0107af7fe16f4c73029bd269ac886afd2f23747e97b30ebaa8457123a22c1345b4169e20dfdad91158b98a0306df49f1d21a174b194c08ca7968b1b4558f517fc8eb9076d32beeebb42babd522ac7912cd46c148533e2d65a5f1555b3815950a04fc11f732fe30e9a76f5c81db28130d366ef44034638916cca9dd5870182b85c7beac0387a5f28d33c9578491fbf6300776a7bc29b46d907dc39038b6975761512b88631c2d34c6dbf95cf8bcc9df50e3bdc376d71cfe97e5fd5d744ab31b85613ee0a85d168b8df51e4c30c292fab86e012e847f14bf7bc87bb72888121a9ac136ce7074e38c1fe466f21080b2b6129ce5f94c77b12322068e62c05e3bbeb0c562107e59117825e772eeb85ad38968442d663e934374d3f0f38eee44979c025a15fc1dee61a309084280bc5e206bb5e829b3d43eac7b31461230211f5b21de9c90857fa8ea66bc9873990ab8d5cb80c1530b5503987a0bd4241bc322523ecb0a60da45a0433f6c1b543639332093ba2644bf07ccb3acf5dab317bdb702a6accb2c5a28942387f71d567b84889aa9e158ff69e541f42ad0509e369081938e79fd5dd95754e10f09da63f7f8d78035d7a5a6ad74b4c9802cc84cdb2a76bd3a20313c9fd4011451c9709a927e6add04246073b033354708dfc01439f8e38fce45bdf6e9eb979327758b766308f140c1a1b9e80bbc8e31b29cd805de6ea69f87c28c0b7e1340aa94134e4ef4286c14a9c47550d1e539550f28225bdfeda8f7a07243f820933c9350d9e9cc2e4e05e04b41e596db86255d961a5001ead7cb95f242205f07820ff43c0721669281adc7e0224812a9c75a03a4b02d445b60641f020dcdc8113999450928f277062f604c9682748909e16fd7edd20ad6e3749608f81b3c4e7653f07a6536c0bef9b3da174958245332fe56271b91b6d2eb83f27c1fc615ea276b532711011575cc7342e99c41b0a73e7900195a1395a32a681f857f50017dabdecac1c76867000539d07d9a1e56181600de8463512a90e2d90b4ab3d00caf35fdb7ac2c20fa5a466a6c10c24acd51e89797c9d1e37e335b329fb3e09725148ec42ffd9d5efc81fa6321d330bd27144e2d113434ec9487899f8fadca778dbfd2d0894801a0341f85b4d1eb28d6049a6a4ba47b0b099ffdee5949a400f0d7804228a8ecef4d6383102859b7dffc440227de56c58640ec89e8c5b3e6ee23bacce8a9b22ec45d60b320ac4fa2f4073899f71ca70a48645ad4ca1998cf063c768b0c28e5c673f14de2ca2f1278c8630bb7b3414029572431bd4ed97d7ea46aad2feca544dffb423b3d9ea107fca6376d4e3fb8934bc027ad1f2830273f9ae2da9322e943db7e1fe0b44889bca4f4aa8026f8e75799784b2addea4b265dcf4cf83900566dc320b1058e7381038be2c4b2db64295ea79a615388ee9113c387be38c8079b54c33defa6aea5d3e4835d5dbc9559888839395e2979108c9773d68ec38b5cc243bb58f7dc117fa4e96f58aae2ade07aaf851bae801e390916303d85bcc5eacad3ef203e1fd4c7889c7c43fab2d52fa561c895a257767fbfb60d42eea2ded46dabc9a915b0d17c35500158635f5e094570b69c87ac0d62b5c9588a0d2e981e6883d72c35b75ea8fdfd6f29fcb21df3c952a017e570d4e4d7dd9614019d64a1c4433566123fcab8912324837d769dcdfb61044f90882d751e0fbdefde6ee555580768c4c8766f68f0b94b775fce3955618a33575ae63a1d97b99efa3a4f6b1ac465bb0b00425292e4424120d432ee70d47d9eb77537331c16ece3775fff236c7274e2ceb673c1756432fe2422bbe69fa34513aeeac10a7e431387d25b3817a7d4628601b022d729fd36afe417345795d5fddc3075ec6533dd82e9bdf62237e4951fd545a5701dfc121ce1fdd962247dc9561967025a04d9aa7d53d41a22ee6c7ff1ad8d5182f99d458539f0ae67f2ea7475d181f238ebc5567e394745b68511b9b1d503208e6b5c4127142a7328a20e5768bc04342e6bc3d0a2700ae62a8edc53b73aaadfbb8c208c0cb40181e9cef4233314bcf80100a91400d51919ad278106622b5b67acf7ab0195450d573969fd210e8eb67afe461bf8f55c286a9bec1fcea6e5094aa5018b5740492fa79c232cce5190a81e32c8309b3e0bd44fc90fe631a47031ada91534d37dc39075d2d9292768d04eab9d2be89afb0050d5618d1dca3ad05b06770986d2e62b99f7e45141e4b9a6e26340b96c97bff9e328836204e5bb353f0c76d2bde7a33aa55a913fdf380ea7d8a0ff025360ba84a59df10cc9f02f4e31bbfe57593339415a6ca68505759de3185fb981292d3604e7949626c2c9f0b54736d70b466b57f291cc610e63796214b01a9dd2d9242eed738cd62b3d82a51addc2fa56885d107aa6607baf8629c40a7216e071f2b5a9e90a4c68b431bc140836f6b83cda9e51c518eddaecb81bed3b16818b164b9c890f4e8bcc81c8e007d05511df3792a51174a3facdd47d3f7abb9ed41af80d8d8fab7af25e0f5ff5c446339b0882ac44ab467667267777c84840d71500410f587f3bfe1fc1928821e821a97a5cdcbe9576236d7f55d8f05e15acda7c92c3a499dd7a5ca10c53ce7a4e019f245089eb0f420d26dbcc103494c63b322b3cb12fbde062e19050606efc7329714736f5beb964627b93e5789304c419514f4e605ad58907700992726e772ec33f2a7d530b15f05cce04ed96438e0fd7898054c68ce5c115b4ae1f0eb4be48e6a8f99d7acfb828aa88a1ea97c00cf3da3c7ba50782045b3e9f31d46e0db0b49597050edae820e5e3de0e6cc1ce9ec464414c3d99d482ad2aa40a79f2982934f797ea331f712d75c3229b6a01dce4eabd72bdf5b7c2f3eec2989100aa1315e54b442ad698c17ba6911d24213a30e5d226fdc41185f4979c58d68c0691ebd195518f9717e097ab5e935d8a31eeddaf99c29678563d4ac4ee44bb992dacf1402b5145998167c42a957552b488c6ad5e448e0b66cc201488c3a927ff3e893ccf57e8e8937bca2058c83aca9114caabf4fa91122b93026fd2d53e446a3504dbb70a137665131e19246d7dc9f342b2d9233b814d4c19b1dd81d2647821b6721fa8b199bfa24a9c38ec63c7925884e565e07c2adc1e74b8b3a568dbc0fe758050d40c08f2a32458e1c693c35261b27ff5ca375267e36fa08d786120e242c8f3c54631537b884f5231e772a2656f63797cd4a0bb3dfc2f4a808eb55c14374092cdea009c4017eed64c01d9ab93f44046fc3be6a6b0fad1207469cf23a26cdde0939a76d86b0c04bbb6d5ad7482146bec528956470bbe1dc28fbe8dd01e14c2744cc8f64551c7cc38c17b09b6058ecccfc16ec55d1130750c0c2a2588dba9c6a5a9924027758733d8e0aa66cdce8cfdf67b7208129d82f86252d12d89bd57842fa075ba7413196abc3fd4ec8dd74cf4aa0b279ab38f0c7b979c29ec0609c16d2cf00b648d13616c39d07670e0ad288c0f1cb3214d65302c40fa5dc731ace0886b754ee8a5fd28e08f51d0d67a45191f9b3d633bf209bfc020127c7f0c24f691b25fc5c2842b9c4b516b004fa535eb13125c9e5d5744bcd707457c04f7a6b93cf105df9ffd21aca4838588b8144c7715f56a0811ce5b7ddbd877dacb4e150bf20f801f2e2811eaa70678e3b511e173abd2ead91f636dc12044986d328a4d256bb4bcfbefb8a00e0c5634cbc0d7a63b8a10dc929b29595e9dcb3d7873d6a0e19be2c418722b42b71236654c301a0269c0a1079a4fe6adba5f7da50a223e3686b49ef133db0f025b4b01a8cc609a47c6891b7b32ce23e88606338188c8411a50675945223597f83142a9df21a92023e0e113e9a8892ac228878a8f6b592f924307438c7baa23fec9f7284a713504c65c870c6b248741c143d9d0f86cb82a72f15e3fcbbe98a4e2fb69dc7f083707e950662ad0f4827a9e66edafa6204d747968b214f8d3626b9936c72459b79e496bc9f84aad6257d42387dc19faf1d6f7fd0b0ea9a027d88836b42bdee1a5e8248913a5ace55c85e7bc35ceb46d2b2777a6c4c6fd63988d7d1d2e049c302656dd33f76c60c2cfd8d048df90fb9e17aa08b49518746667a5cfacc15e85ed9a55232cf55fb91839f9d25fedf9345ac80b722a75f8daaffb3df455e2f5aab359f9381311a531521ec0be4a52a9530a3dc4c37b213663d447e19ff1f8eba7d0c58005204f78bb0def85a45a1518e018de7a2b4e1700c96be053a1216c4428cc5bf6e5cb129ead0a5746ebfc6b0cff67b7aa8e1c8e8ee6c2088e0201bc0bcca19a878af3e84d24520a4602efea3e28744cd337d634712a3576a18acc675585adf8e3c20437ccbb52ac17203ba283f702515e00db0f7f0bc7a8eea37ff3fee7a914e8eb3b22c3e50e0f5f846659d178b0b754d48ccf82125801bab0da54def24b12c50a2ce299e2e977278cdc2136ad6dad987a034e3d917fd0d636fa89dd303925cf9877cd3af2e44bc5731d1209627cbf999f5529d59e5fa5bcce41404e08e23432c0b0b50b370ed221ae254a80388db65fddebae27cf56dbd514979ae14494a298b1c9a5e1baf5235c7a024284d65f1d0481e439e8421f57f69240d43bddacaca68ff7965e602e1c268c144cede6c67ac3c3ca5780628cefe3a0ff751bbf709d7aaeb327bd165ac23bfd543df6a7fb149def14c2a3c1301c87f816ebc6fa00c25113264c160a024e919a14e4be895ea19711728f63054e906b627c0e2b9a8886ced010829d7bb0faf4468376e02c34d8702391926899003a7375ab98bffc040239084d754e3e00efe4066bd8df635751922cfeed80b1122a2328d755ea83f884d1023836082fc293dc16318a0f13b801216eaae2a78ddf53f05ed46f08bfcc2df83714f7a7d91214872d73dd08e1cd6bbe89bdd15a8f15cc520402824b082d6197167440bb03e1ca8ecbc448feb531d18a66a92681fe03eeb6968a514071298f9328bd8223c962fdfde752a9ab0f4021a8bde3ae8a5ab8db844b2113bccc512d567eadc83d45da70aebaaf98036f64b7f5ce880fd5fa0b19f290d138c2c9d3b14e9ded4098c086efd4b001e17c212df4432711f12df86f44a4e740929287b01f45ba10b91ab0bc6f477662539d7e1ed298b92d728f089e9d0a5b1f911c3d2e6b501fe0e857ea6c76e2b2dd7ef442e69e1ecda5254bbd1d556aabb3b79c3b8555ed8d3a4fec44ce07acb6205fc5b3f3357d7b8289db91841dfe14f16b298c3700111072c6019d66612006d1928b05e57dd71af42ae898855f07f4196c9161c220cdefb616fd169fd105b68b37017c498e496d9fff209b7d03fd7e5ef1e6c58754b51c6b43faab1906ab80bb1bf2b7da39a020db809e70470a7f2050c28374fbe2859d9c65892ba5fbd7d81f0ba81b471a42eb668b916c842284afd93431a7e60d10085d2af2b66b961903e31f6a70d5903a467776fb779d832cd8f4d6679d7dc2870a36bddc36866648d583837e475af775f8475c46222bc4a1a8476556df8c57e3b057f9c53bb8c991cccc0d1011e6fbd7ae3f8d65562fd6b0235b3453c270eba41c928c3f03e3ead7473a8d5516cc770cbb4bd7ef9827046cdfcc50c8d70c44e38356c1832669401c62d34bb085e1518e7f0e745e375220a45f79e25cba865e88e08f5b1382d3565806a44bd73f3b0c539a2a41016a3ce74a858eb745028777c8c265788db0eef462fc6fea2771ca17906f4e2f1b79961cb3ebc8c42d49374b30dbf4971a38b3c241395dc13b601ce3447d0f971a62cc1cc2438c70c4eeba4320289a789afaf77508f7aa8ceb5d4558aed4a68d6b3b709896269f05d1e253006c47883a3da824f9d67c0779862bc270a2e6a3d36be755b7a475475ed2fdbcbdb52d0394f40432c0c623aac3656330d878af9e7f97f9c12e8f8c0ff25060fad6760dbe47a2d835dd6177d53789673c1a6026fd17725995765bf87e068fde3d9992865f08df14b640a3770680c4b6230e2316ca27eea0f335ed130180b73402ac597e0289ef25cad75646d43dcdbfd9e1c359e55f0414b435bf06f1c135ca2df4367e743a06667b48de376f5e48d167c630fab546482a1d73e1fb600d3b5f87ce1e5f6ed62677cf253bcf25e84da739c0a1cb247be0ceb043c18f3264e60ecad18a7b1c06a2c0996532a6cfcbb08408907829f0a11b4315f084c314df65261e2959c645ded1bfdf07ba2398e3aec9598977e8b752da50d39a9754f2bbff0352d064ee266446fabcd95e5e9c7f8374a67d9c0d280c95256adc034459f59b1a3229c1e32599fff304a1202f5c5862ec225a9c34f306b23e2fa74c14069b926d8c03c489ecb09a0703e5d0256a27cdd26ef209c18ee1ef8d0fef84c757a4cca45515191725b156d170909bb7e2353a6ec779f78ed379d6ff24e88e916c33fd6cbfdaf36c0fbd7229a9d7b62e34f642673601c3303c3a331d8284949fb6814143e0493d46d424098aab238185d78e77672e9d1be116b3017881e2bd894039572cd1b51c91a10e6e55456e9008568e8e9599906250b741a60f5976e6ea60ab00abe439931fdd3ac9a5d18833b22f5bfbd73287127a551c2e53c7dfd888b470dc4573e892c179fc6f43725fe5fdd772c18ba28d3c4abc0a03734bda33c24b83e8709be6d8f79ef5e4bd4d33b961505953f9641a69a92bdea844f7fa421fb018571301ef87d6d866917f20af5f9312bb83e67cca4caf1e74c351615459c420ea7653ab943b05d8b1f9a1473c165cb9fb27f7c8b8c0c0703fd07eda8ca4e0f34f8f8f5678c29b6d09a71a3f27ea2365f3f250e08bfa02d0443f8ae882370d974f4e2c9b924b623ef7bf020bf9c725c993bc47940049577050ee057f400e136f6825a30f68cb7b5703269b40533dd46736176b1836f62dfb0e916c27d823acf37645a6c95727a3b5630f0df6b0f4d272547b607ac66bf6e73594f00d3e251288e5237e819cb06a9585fd063224741f2b0832a921c072d0e6b286cb90b691a472e304cc179f0a9ca1ab7a3610ae41618897f80631749624485897c427040b10813161dc12f7c6f7284328049ff1ee714f9f0473f4ddcffe2bf4ec50ce4838fd55dc82ed7237e00f7e91835f542f2211ce196a0ed0b40a39e40d1f7885c9e095c8dcafbc48ee62900ed8e97a5bf12306280ab7f13b9827563605398c54c00b3b85a537aa9973b001fc27dc521314104f1c2b5c8fa947eeed5fec2ba45f9278c28cc8df5f4767afb1d7962802d1598ca14fa903a4b43d76dcb5a7925b95138bad078e5398e12ddc00b4e3ab8f9e1960969c901820e132a02c7c8a03eef5b37ce1a2a49c00de5de4ee4d167103e5a9f6d73a9b2def844075b82dc0ae0cacedf332b4f61b59d7e03e8b092287b67570f9dc41b14ffaeb64a90864a03d241816c1179c894c0693a379cd4326b6bd80b80640ed29ccc78d9a9f632a35f1b13667b76e22f300c3c918eb2fe74dfcbf404ece845ea95b1e9c62b56a86ea4c5caa8f5213974c6920c3b3a321f574d0e011e4792e1a96a45cd10c4525dc8b72cd1c930c4770f35a73b07f99cb6f86507679e3f9d0c5425140c09b734490e01b746860041fe5a3afad71332e2c5d5f1122551c78f2d45ab458e5ad45237ef680c88c5fb9fcded3dfb22ea37c0b9c33981780b42dd60aaeac2b15ee99be2617c45861a0674a6d6b3d888cd0aaaffc380aff1228b825d2f15c94deb6b663865ecb2278e5c87b0a4dd29f523bc020ac7c364f8d74a41b06c3032c57202175b6eae8245f47acd5e63b4cb0bdc23aa9ff8d826248a8140b249a4adf077086620838b36b5463f8c146e654458802aaed4fc3af9946919fb4a6e86904a45f0a02c0e48a94568b05f80770cd234a950f2a4b2cf03d922a9f33452acfa6b5a1d6fd0408da321135a1c45bc7667ad9c37970a55683cb8ab0931455f2df740aa3112dbdbc807d1adfa8ae360704612329cfc87daaac90db5ca768f03fe876169c5c23562eda05731903ae0e98ecc1eb00b995e2c6f41d48d6b24c15413605e9d5ac4a58f734b8849060780adac3f2a1b48cd56bdbf1912967f03c44bed8e5a00fda1f8458551f2ea55023477a621643b10265e3ada54911749e91967aa39e82898a20202a445332a5c6ddf6d1c31dfebf41f5c07d96fd81d9a1918cd112a6c18615b3ad200a6ff3880a9a3277d49879d10d839d25a26411f2604115b46fb7d9d55344e4e23537200db84732ddf4c27c7beb275a0a37980c8233c2ca76820aa1ccf126d2479f7c4c470bacb90779a80280c0605dee5bb024b6a6ba2979f87c8823ac5f47daee138458079b520607dad693b0cb3a3d5de707fc34b62c1507b0d4a63277c05843a7bb438aba35069b158ef73ac465a644484c670d934e80ae866b71f2a1f1bbb594cfd58d4a0f7b65a9671818df4718630e2334a5837157e416208b2b403326af09551e5650fc7acad7c6f3754288f6060c5df7c59fea1a46da23e1a945db54dc7746785d5d0014e47be6c9f110b11bf995146719577b55d816dfed0c28f4302b9e1f0f96094bb6592566f2933cf956305fad3220f50678dcd4297bfd60f40e7716a71cd9728a34a3c3303d694e64517d4945f72d7a4fcf1d3db116bd3c3daf9a798015d414f19d23f16d4da8931880db42214774de575549e2e6f2182a5e1cd366d93bda92e5d586ca76120e0f3b64127828b362912ace91d3abd84739dfd4a63b3e91b0ac5461411657e2b4e476539a05b7f30dcccef323f54038e8d69a760b88873288dbc245af5844abfc3459c9356c4529f10a77d3b7a5e0fa6c7e22751162e81ce3b8b04cb9db4fc4ca998e85707facb345e3a9ec776c7ef34649b709e62022a17ad8aa6122e73da3601c959c20f4de6ac5b8a667c603846ec976d014b4a11d44776eba818c6f6be16eec0bcb4bf63c0ebdb904651614765dc0fce051bd5020aceeb32ff71b49b1662c5bf8e499cc9752b6fd76446d3465ffa641bf72743588ce449199715d40cd64d145e526485f4b52025a9e1d03aed1d8b62353599b855be49480dd241a9e9116cefd5c224d6955c1bb548590e68870a3e5fe3b099802e04b8f761cc9c9429e8f16b6221104157eb614ba65aa158f47f0fa55ecaf730142feeca65ee2b179306a659dac57440fda91379a95b621faaa68c04071c2bec7fe512319b80f6ec9ecb420fb51a1e40a7af201385b25a41a37e5a4ea2872f4aa90033b404ef4aa5d60cba7b836c61250518ebaa251704ed6159cfcb82d7eb8f344207bf48ef710947ca562c37aa9b4b2576c395b8e7412f91f73685a09c99faefbe3f8a82fbb326d1413db38eea29b65024a3253ed7d100ec16b32a366b0b8183cd187c32df1dc52121bc776e48c50b1279d3bd7bd21ac89d799a00729abcd9ea6c41c29e1fab0b3ea5f709aa6e3a35eb0bb3baef71fab069c35b4cf0e15409bc04c973adc3b906b290cbabcb25650982f852cb223cce88e3a4867e688154e7c22675056b61e07de8b5fd1276ea3bc2a110b12e1a3ff70460f9281dc5e0689472b32dfd1c80425f4bf2d477666532442407cef827d4f577fa8ad8fa7379a524bda4f27f5733a6a970ed27cbb3e54cade90c83aee353472f623653a4c3e615517ac0d5314abb19ad1763876d77aa6c064ec1b83582f1d7dae260b318bc0c970ad4ea18f8264104a73e4b0fa249c582a030bc06dcfa703e56a39f5a212eacb66979e177b6d26a868213cee6e364837860dfdefb4d80010b3b19471c7f6b892f040b23590ea1aa57dbf5afa5319a58a2f662b3bfcff4f0eab2fead8ab1bcdc1441861d8e6c714bbfc840c5bcb293ffd2dfa6d7d8122056bf1a2317c929bcfbfe12d6cd6dd96b6253d67751675786243e4fc66b95e18c24ec88c6fd9a925e14e546684dbb91ce57480703b128891f17f033f14fefceb0aac8a994233f27f553587f916df3d138bb2557caa0299a973e8155f008830fec15dff1cd6ce8a9183bb40bec7386809df95980eafa3f7a5e8e8815e508511b0e2d245a598a04a352c88cbb3a3e4ab170aaa5a9dc9d6f8f242d765d20e9b958f3d859e7318779129863f1adb90b8eeed2da920686a11865802239e9197ef3b6030282f955cb3bcd6cd2a229402d7752b8cf13bd847d64f8976a5d73efc044c4c44f8cb342062408e09c553120f67425097a38d583588fb5ec2c3cab945ae35dc63ab90c9b726599e46382a6ac0f4760c25dfe835ffc84b1739a9acbbbfcd88fa04d395ba15c47fe8c51513027d5ac53869a9524bd50c9483ede4911892d3bd5d4e4622922512f17a301c134824b885e8d8062d5560941e5ba9d88b0798906944d8039365a8d80e5302739953076b13e2bfb454801bae8464204087b56e469b977b0b5b4c49be4ac04f5fa60432de8f98e0e620df616b1a4258f9c1e7812ea63b0ae7b0be852091657701030bfa667dd2144c29ab8ed561bc8be203b19caec45ee1caee9a10fc1ac8e79874c992498c7d49867eaafe4a7d220d183039b188c88f82b91fec87c8698b472e1c3baac17f74040cccf01da923afb49b7602e5eb25adfc5081cceb7e1ac061afc57424601175fbb5d587e98468504c8b7ed5f91d6f981342922f7b815184fccb2f17f3aba19f112127c050b2241337da1c967e2e9e64a43f648c1413d94dd14011c077beb10308e04291f484f66b40915d5da0075a940143021449d96fd650040386303149ac348322f5f3a03876ec031844332238e96ce68f516660c20874cdfd31d802309805d930db4d02a53740689ec1f9ff138d3a07b1c6e8783aaf3ce4896131c8dbb335870a8afca820bc9dfc1eb9266589ba51ac16080fc40ac31ca1e2b97d465026e8b2c648ddf8e4e3268cbf3140689825c87c1004aed4968809a20dd462a90712d5bed6169f587076257d88d7b1740c73dda51b5c31f2183b4e6dbd693438a662755f43cc7ca138b7ea4df3d9694964ba00362408fcf93fad2f6bbed5cdabe29005e6ff2c1dea7bb89d4d3427392eba232acb939889af86253ae25aec24e18a1223904e15a59a05ac32a486ab8778d442707e5f0dd0dc24a0cad5069c7091a7c1375830956c5f7e31920e5e56580e07c29d463408318144d70861655a8fb58045eb847ecf88086012ac59b18da75de7a803ca941b9ebe981d957473ed9b4154d7ea5cef125c7b36e7f24a0c8063d29d30035337a50e740ac94a3295dd725ece9844926b5c82050445adcf58e5791a750848b2e13867f50cca64d9b41109ded800fac38f1c890e5a06afb8e38771bf1a53177cf9e2bf799fe26a5088e31708bc548233b591260a93294e02edaf3a4ebc54b629100092fd1db22e1c84044ed241b45a983cd21ae594b8ca7ef47d45f1319214412f69b875609026c0a1f89f2af6d0ac0420eefd7765895bdf268099193073c9da83ade4b780a90d602bd030b5a888f19f889f6467be7824542b7b6e98ff084d26b3ba37fd9a13e4b31196b02a5a1988365a757c9884dff196c02b4dd306f75e48dec99058b689f00964178eb6914c28c732a5be4333401c0378d0a15224c3af9eb351f2d414ee82e222dfa7c1ece24b3804a4186c7e680be4fe5ab6582ed3591a9bf65213263eb20087042351c1995be5d00d3fd41b6ac5cd01e359b0e8bfcbbd93daab40a3dfd0ea10e83ac8520e49e74161eeff678360f0449cb010bc26097cd610f5330c065f311e2c74ec2b1c9012a089a191eb238321e1f51bc4e9afb490ac3d6673a40e08bce76d5ec96024fc0387e101e53f509fe3b08342c508fd62550f1bb9baa76a6893b64fe12a06c1d6ccb85a223a5c0d19a6f4e1a25881eb83e491ef0c97957f834175f89aa08f0b144abd836ae92b1407ada4b6f97a13a0a977069b2fa8ead770b91ef22c54ab5d17ac0c2bf698c179a1f37d13d748ed7cc25913a178e51a977e4d8b32623a0df8e3b199f8d413e487c12d1ea720842d17cbdf144e1f2fae34d4f571bcc50e8401c55e739460919d9a808d962956a4beca7e0e630e927d162253582ee89efe9c0b822c70f99297e457904167ac440a0c381de2adcbc0f8ae40d9064e4cd1a69be1f9170f5c26ba22668f2a24288b89b21a35d03b80498a4adb9fd01c5ab33c0e265a88bec7356b75b476c43582c18dd957a101098b2f9f2d5c94dd6e195fb2896070cea6c5aaeb34fe55605a09614e98397934475c097e51ac0c0c74572760169044eb04c02a083d351a2f80935a054efd3914ef1ae6ff67a3360250c69957e9e63ff54d52e38416a293b3c813a6dd7199a56dfd517f1817a92459ec20627e0ed234c2c6a47ad50bf5c5e702d3efd7ede020f314c14e7290dfff9f08da6d4b58946a9510ecb7a9b00c8a3f52d8dfcf08fd7116f721b435049044c3fe5edb7b7621e4db0bc240012a20d2f10f3ebd9c21280924227cc2f022545cfb423ffb97bfe8f4723f9f45fc4e1c7f1b58d872baa35bcac12a85030036bc0fa6ce0600361858cc69c1d4effe55abf1a0f24f87a5560467f9f2387e4b757a271afddd4f34c5e2be9910f1a07c57cd0fc23bb12ee13eba4f8f2df9075b88c1298a473c5723456222e0eeb5ba229dc454b73e9a05726e606ccb26f7a7f0c5e1312e375a0ee7453cbb228f36d3c69b3bd780d7a11e6f9015b3839d2c89fa049fc245bd4c834ebeafac27479e5f9148734709f25cb7ececcf3feeb72f917a2d5e828f9f59f523454d43713dd35731893d69458a8ad263188eb08cbd1f946a244c3200259ecbd9201ad8ecd76c1c1bb871495fa9159865355e4985291bb27b2f8a907a78506a1d8b4fdf300b4c3b523673b14f8caaaf7d18504a8f3f3753437af5640bf7d711c241938152da3070db12815a2c8152a4f2685f6287fb47b20293d51f78309e469874f9b9d80423359936dc94702bba5be171b154e0589994202020c414beadd752c8c8c6a449cef3c3d018af7e1e75403e21bbcbddf071ec5365677d2733f7dc2bc495d726ab31d35d88f42e6ca0571ffc21b08384fe81ca3270ecb8b4328ae559749174528d46ef9e6f13b2486de286269f6e2d624cc53bca6eb2bc6238014df7b29b940cca60360d6b0bc336c3279f8a15bcc98915566705940252508ab0e43a4fc1b779a2038d53846d4b82265b8a07d5408168fa32f444d58ca693376efb8b0109b58f206d1e10ea6549d0eab1ffb5be2c0907c30d036146fdb224d843364ecdf29d501d084e20c3d215b960a04e5d4aa8ea8461db411d28509a02bb1ff06c163c1d533d6f7ae76b9c83b843eaf181c39fb9d3c5411bc8a07901b5da5edce573d82b961278a089fb70f6c58891cfe98f6d1ac2383b3f51202d5f8d216ad209a706a2101d653c8884a2db21ca9474b955f116479bfe195b76cb58695430c15229d2cdf07b9b216123b8cbee92e61f9ec1f202460858f2b77d3d8c61a5267244a43332c8f649bff66e0760beb7ca00be6e2172523cba26a96bab074e1af6aa1326b21735b8c1a4eaf3299d700cc2833868a70a5e315ae0f68f39ff90061cba18f7305422cf20cfb9267e3a8235dbc34192a47ddd81b5d872036a48bbfbe78b0d3900142f369d8c612c457e344e432beebe0d90cb211b48ef65493e495350f6c2936e79b98f665ca0e5bcec563a62c0de91e4aeb2a28b8bb8d51ea36b6a12ea799b20953b92c6a5e5a94a413cc6b51072bf5be92962d013c8c60bec2a445a02d6fcbee9297170f74e6bcd43688d57b309d504883cbb45a42ddc9dabcd7a4838f51ec30883f5d2bc6b2ce6df160022efb3be4e44578c9238f0d793851e2b4a5cd21b014504b2b8fc79ae33953aa4ac8d06361ef7ba92fc68b91d9579032c050004a7b7a2821c067792eb22ef165c64ae083720e6d62e694ea41f8404992993dddb5d3bf8f034dc7d8fdc0b3a35740a2e499178ec52e6d6feb01def4cf7432263dd88046b7f79dd068e4e9da33c33f2f333da7c53c4e5522d309cf3f806434ac3102d8f3e663b1de6306038e58dd3152cb247fda1ec2e2eda9c45565711d66cf33b7e7b076709e5e45e3d8c9f9b8554ce2c43bb8a1edc59d185a7056af5257d0047da14b7098bf10ce1d1c37c3cdcf4513389504a2e4c3d84f29e689b4cbb63ab3c1994695a3c0991280ef2a0e6332c4d694befe72edd0818bc5911f5f9bf27b331c252af6c8d004228a46cbc8221d93ba07e92c0f4719d4d4b111ca81e2971e34aefe05ba3cb53f1bf010422ba6cf42b69185fb62e113c0c6f6e6ec05589386a9fb957fba44634d1e4c0c34970f5989c9f926799736b6f7a3340da3788a439abcecbf505c1670ad482d35cf9cb4b74c2e7b0280af57c8cf27efcffa49c3794a778667afcadb670bbeafee4ab65141dbd51c97a719761eb1565d7facc2cb995d653cc0d24fe6aa0697a3b96498f96f0c3ee249f9949e327cba6a83b6338285d8bfdeb6e9f34677fc71e81b075167858d14c5b340a4eca55a6758e3f2ea7da34024091866ecded37d6d56c3340016c1b56be6dbe02670da7d8fccf50405d0b77f36626f0c234f19fca1ccae53d54647d27472ab01943338abd1a8b4d54940e417b0ca55a00ce84254e8045ec70a08fa194e93426c9c090b35c6fd7b964e457468b44eadf4b13607aa666f3272883a8e2525a87c609e89f53dc7ef64b80537f9001565b9c4fd4a48d3b23c04fee8f8bcb3adf7dac1ba8433ac06da523e98e36bc78a3eb9157e2b17c7cec29e3f44bcb9775f502dad365b04ec4efc6f5033f04b6698592b18a644a75118ff0942074882d8380363a2d03abc925cdafc0fb329ba8b3f31f70e6ee75fa0d615b168aa58e9c50a240a294084f6bc45b67abe193566a7f28b040c200856925c2b1ae97c485d2414edccecc5f9e879ce42f2dc3923d7a0c4177e0c27999a72224cbedee6b72ed088ee48cf4516cedf942f29d45cb17f4f4ab1bd4c31d135211266423dcee2619baa8d02b4501f3371b134dd24754877088a6ed6c61dc2edbf47672692ae6540ae4b36a218a6a2450ffb42817e5d67b329c84584dc1d00793f33205ff769f8a212618a64ddb122718354af3d4cf6e5fa8461902befb1fd6d6bd5f45d5f19e2229176a963679232a8a1cd0b4d1cae5c19ca9297dc81814cf2184b0901aae8b745f435a01ed8bfe0af8bcfe86291c17fcc024efdda21bc6a24ed4273fb110a129f62c0fa517fc7652e79cb486c9a5a59dff7026557b0e1b7ce4fade0eded34360c39ef62e196d0dc37a02c4fbcf0e170028086bc0b1692f2ad879079e7a606fc87da1c89a9ce808460b7ec5f5419c07b79a74d93e4a3d0ba9227d5e8cdacf2b77ea03d01079c9e75b72cd8c4cb7d1444b0f21def3ff0cce7b0485b5871f3ade5e2b9fe48ec74cf91b28f1c2f84675933a9fd43d3f2b69e221cf5fbdacb5ba7888ada3a8c75ff4818aebcf98fd17eaf24162d9d28442a22e1262931e3e82fb458331d3a3345affd2f0df1dc031ed0b7276c93d49e9298dfcaace0cc384865db77b5b0cab37967ac21d7a4d99923b3f6bf5390b44fd974d35a2ce88513268e4bcb3ec15a623309d10f79ba317db494eaf8b18df4b7cabf0fbc8d11cce74f9d974cb2d02257c992b3e516039af0db8745f3090975575b8ae0189392fead53bbc365115e80ed83d7ab8c8bd2ba3805d934c2a5f9b161016fe301ce37b38aa9dd7ed40f749b19a51ade875d0ab34cd0f4487062127a56b1fedae843a11d121b668347e67ba5a89630090516b939ed161414dd6313fecb2e97a05991a0dbd1b0d0ed95a06d441f6b45a4d016b2c6a31d619d9becacaa061c569b3ab987c5d9a84f30b1a510c0e312c960bf92f264464e03dde0758f0a42531fd5e94e8bab95ceb918560e48a6d2b8d00815d301cfd88282a3bd9b858e21922199b5d94f1541025aa68c65baea21a33f597f5bbf0b31a60e647647be5d8d02204be612bc0b8d221083e684ee75933232e3148331168a5e9c715429af30f342406511b74bdb3f7a30c00d6d6a46ffdbcd8d6e860fd44e0f3c2b24f38d93870f914de08be1696e24f5bf0d8c79cfcd5a393f53025fdaf862aae71d9537670f9648ce79408e212a0db24e716e2ec8589becaad42c123c11a550485d253d10f41a5ae80c98ef0aa6558cbf6afea6aa20b837476cf3660e8cdea7938b7dcea850c79849c28e3ec4c17ff35ff57db7f25a07c2869c778a4b7e8ff2662dd0bd60ea2d9ac231d71510cee84802ca8c31aedb8a3999e0267f201869410cb3758b3c425a2825eb5462da240ed7c08cb7603c2da1d76fba363f8c54b3d5df89383e438044056ad869b0c0d991ec2a73756611a3a96b9b9abe3acbab9d23aaa25e5aa1b3b5659fb245c07775d388be2d896eca26713505084c668c72b79703c9736d8907aab43cf6527f0b6ac7f38239352c06b00095a5ecf6421ac7da4aea201970924a06a85c1891c9c8a417ba803d397537b83002c2a7de8e1928344873c08f7e810007bdd342f83a58828f3c88d4d42e378a142b3088acf688907efd68bdc36416e9555aad306f58a4fbce4a320440bdee7a36dce16b060c05e63d1b5e16e14ac1d2a05a5cbfed655ad35b30657751d7803d6bf5dbc46d023e138d05f143a3dd6e4965857a4d9226f9fe7fd8c64dad6ae10e53c7f8908bebbc460677f287a307f1cb69bf9a863adf60fbee11d9f04ca11f4955f4b64ab9483c1ebfd9a39f4acd3c6bf821b8aac3e01dd0a99ac0d2ac46ab5910b7f0e4149a64d4172b8a2f80da2236815392f439ccb6f09ed9babe6300e00db970a0a8f3f7d4abf146b7b815af800b5f461626164304a2359bc5af105f4b59435f02b32a2a8435f4311d9e14db454020fcbe180076034816b285d01ce63f0c0292a8962a3024f01428874a1b073b9f19cf9b5ecd413962739525d0eca735447d68b58b9ca6c7695cb3e9e04b94969908a5e046a434cb64d8510588eaffba46d5127c87d95252f36700c51121d5c74aba0fec544da902abdb9e8045db451f82eafdc942bcfa1484d2a0dd634f7636d27e15bcb16247863eeddf5e6d9621393782a833f474dd02ce37db930680c0996f14e80f7b708831c1ac4ad1187084b065827c7e761a297108e459c046db5381c60b18d9807e2e9ae8a75783c138d477cc4c1418ae3d270bac2980511a259c495086246ae8d54fc3853eb963e43c3cae83e01fb93ab4f70a00deabb295ae583399a4abbf080d5dba5835c76839d39064710115dd30dea07117c6368aee51bbbb70c46161b6e185eec65cd03057510d0c51e94d38716ac94acc740689226381b3151a0741232b2ca1a240cbb7c3744ed15684ce26953dccd31a377186dfba679dda9871faae503984ee4a846d54e7dd46109111556043b7581ea547f4bbd7d67fde37a440ca598d8eb08884082f1e739b44b1316f43e895eff360d6f05e29c7c0845dbbead5a7c3b76815c280ed186ed3825c5c844d128f6707563a4e2003dde3307005933b25ddf934c5a7573982754512a15ef3bae532e851e7899278dc86b6614b829ace6a667c44ab6e6de2f281916ec0e159b5aebfe8b4a6ca5cac782199df2bdf1516a10ffefb46afdfdcda97e14a1f8ee590f015d0e02c647ef2d6e787899863deca9dfe21912060cbedc733891d85e3be26a0486b0a2fae54abc97305e3c280648fe3ea002c4feffaf2fc1feef8285e99adb9b98e81df12b93331b48d590428589eccc51fcaf40c36edf12dcf8e70e22fc9d48b2e83b9f2a6493b9a49c6f1361742674728b82300ab4fc4c63f837039d1bc0328e058d2c97aefcae919d35741edb59efa8688006db1c5fdc502a8e24f06e21de81dd948a38b19ae4933e52a3537d3ac6e281e7b1066039883c2a15f21ebb0f8f982ae095df8ca9642cbec428bfddd3f58f324caccb5ad2c9b15e34c15f52833221e20fcddfa73234bce83180a3fa8e9fc8d35fd8101e1aaaf80fc164aa5285abb8f4f37343479aea0a64fc3f143c6e8bae2bc6abfe4cab5eaa52b6a0de6e455e9459b0e165c98852f817fb44aeff7c1842ce0a47fda7d1702a5cd648ce64266b030f739afe6193b30c1cc5fa60f026418d8e01e32400b911b422afa403fe4ba99b5e35191dd91aec12029a6c8b2615f04f46c4b55b4cb3c5b07fef638734a8753afdcc5276f7b547b6a3ec16bc1658499a7c00870a7f3938ca6b8893011c0042fd0ba21282b86c089484be52aa5778066f079b5720bc55d890c15f9a821428031d4beb85691b62507e4ce0787514f7346138e35bc257ad3d09f4473c8205467be0ca285528a3c97b9326c1a4269851f6003b55c652abea66020fe22de3d9a3405600c0813b94663a6eed127c07df30a7b6f6e004e0185878bb5b61aeafd657b3c5cb07db29c0cd24cc9355304ebdc9959292cb568ee4a81e508989e779098a707088ac1c67fc22acd8b9147e8c18fb8db230dec8894f4bf680818e9549b599dc2e155508100d478c52a5a9300ef8a9e8d1d9dc6fdf4b935f2adbbdaa7981540db896ac0d43d7e07de6f899228d4418cbce8fc83d8f9edaef58e96ad838c993771b134373ba51cc91bf38177eb89cda48d51fae07929b1da7c19c8b0d4f3d93dbabbd86478e87389426f21fab86512284f9801a9848b6fd927d918da249f737213852975f21ac9d55ed01381ed3d0276e78b49c88aae9f6e4310b039520a07807ce3430d50b1a2233aac6b0c2c9606bb405f66814b3d57d41216e323dc60a8397267f3bf8f908c5f9ad7247eb6dca1edd9a10cd49f2a60a3a801e8fc426e583e53752a53af7e0c148e2ae8ff7a5131a837659b091239aa18629b6f409c601ea5a2e7a915a99dcbb7025f8ac0a39f3797cb7b56071903d40eea4e8638ccdb758045e86b88e6cf5416e1c644938f48db8b135cc23e94d630491b9196a3839d1956b91946f862ddefeee7ba966bf9f10bcf7e46fc852a9d298cf7c081c0ea1bbae405e28d18aaf422794143fa50a1a80432de62751875ef0a2292ab79d002cd94abdf4d6803bdcadc3100717249adcadf25dbf9a6d2ad15f6e21c7d003913920085cc3f7af22629c605902839062bbd78591d3bb54ceaf4b526d04e7dc689a539ff624d0142d4c7966d74a1368888e10f35972a34921fa98856d188a3a2cdccc1d5bd630b67963304f6cc73075a4757dd45ed54327545a954930d5c027932a12d259b788443fe1e147ac6657fdddb297286914e1292609d5e5800ea418fb9c44305b76810828c2052769c28ee2d150d24fd6aea3371c80ce0340c27a861107e8e50a17d4a11bcea9d9aef03bef6b71852ab7e83915038d3a229fb2cb6517b9d8c3f63957d03ef526e8e63a9ef9f7becf0d9f4a655302d235d9b2463d6a388045811a0f4eaea28b56ddd4e028d80e2aab81e482634119813250fa5a3586b8efac402aa794a5aa38211b079428438b4fcd1c63c94970cb1cae303686f51e7dfa1ffc6058d1dbd132022984fb5184b7d5ce8b0f3f232ddbb88dd86fd468f5c7386f0305d65fc192400c03aa6aad8b3737da202aad7d585de5f4ffce006bd3d3e9f1f0d3f9f241411653af616429891ab1af55acc0f65f8e4617ba2873da760820eb4111e29f2812276a2d8fac0acbbfb8c49c6aa202e487a4ef9e8ac22f4f5b21503cac299b70510ad8b1f4639187a7e6ff093c3a88c9c54f3c059a8ae78ce474e54090d3d0c61ef55f5224685c26d0d74846be5409093cd0e2623e823da70052c8f3f2ef69470440f64a6f9a48a694d04d5df94c55043d5394af69c4e32b2fe1ddf7d6133bf75da003ba6f854188f25f06020c7c72321eeef047d9fd2ab54bd036810686415e02e659391e1313008c18180d1885984e035ac3de90ebe70de20a1e7b60a8e69c33b307bb0af9d833240101fa0a98a155399c8dbfd6723b09c273ee57113a74eebed3b5fcd0791e1bf58469e0bfc4a445d601bc22d4e3cedbc0a5c428eb0cd3f17cb659b219424f1d5135ed821ba65bf3f52194ef25934f5077d1368a2337d1865962e40ce6bb082f738490c850b73213c0a8c342e52e56a2a5103c64c2f1df42ec329eb76ead27d1e0650cf93346990c9e0ada07a3e198880eec687ac46b63985411478e80ceb375dcd1caac6a73169fcfe0d8a83dd4e10fffb250f5134d79345584e4f964659209cd2ca1e099b407a6816189476e240a1d4df0f9e6508cc6b95e13472e6c74a6223d4bdad01abdaf8bfea39911c5de835fa54612b250ea9b99305a0f1e6414f7aae678594041aef626559c5bd530e31cadecbe3645775bc2e8f0dcf16809f1edc6e50ecb754b8381389daec088150442b12f4a3098329198e0f6e2020011587bd952ec6aebbfed1494ebe966e9736897e9873889b8a32507a2c0602a665c31bbca0d6f66073ffabdf96db4cb441c9c4f4fca15f6838567677941d5eba585f34aca928a84f8197a692e8c76322d397f2fc065af3298cf43ae9703576d4bbb7bd67a2f31988067183cfdc7b05d752154243cb09a8a44c55b049ee8bc9069a42a37521ca7b4a613d324930fb49c70092bed6bda525ebab8881c8aaf216b9cc80c99737ef9fd6091037402a843780df4493297e8d398b022585d6357748e1462393a98c581ce2d6b8f2e4f404d5bc93c3c72af8705985b523f4d2ca24648e5c452716b99a1a2f8c7baa995b8c245499b8bd9d520f030daea9e5380a1c1b9557e81255e0b3a4272036754fa056846bc019b0d6f38d62761c1b0ab3b56206a022060786bc6ec75ce60d59930410c35213c66aa2125e3d80c57d12a925995eccb001fea5134735c606d4084a7588a387888a7d4e06a724e876f6006b7b16cce2fcddb1861d735b3a589a714cf4e9214451b06ef47ea276afe58cb0f25bd7c9db2d47dfb1fe716c8ca841724aef6afe6e75f335104b7ca92c846c1cac077232228d4d2ca3650234ded05595d672b04d2cec9520d4c599d9a27460be142324a4bdc80d6b273f860e17597950ab569781dfef5031253999f672e4f804cb076355c0b3cd6420fedd53f0cff0fc28c729c490cf8cdf1be8e56170ba4786b020c9895c01ca970bf290557c5e2180e810558cb2a1b8edb43fed33c7e203d05add7d1d2b053f9e062c5a8c8da4a32332a40226e2a6445e3be67c8ac886aeb0359d0649ab6f20e360eb125b6b70baf1083ea62afd2aee93bf4d35c7d58bed2a5c873a0a8a4a75d07cdf7d17cc564c8ec3417585d247d6556a7a79c570c672a2c604238e2380ee20cb3f0c287431e2d710f413ed173c0a359575fd81e99274836a2492236a443a1cac73a8f8847f0a36349e4ca784ab788f0caba46f3c1ded72874b3f3054de4dd72cbacbc38f5a3e21e8d2cc03509569d3b1715edb0b5c7b4322b85ebe05e1ceb120f70259ddb7156f81f7394c713c0849942986b391d4632d7a2c0c7304e25132473359808f8a86fce9377551e5752475ae813fb26364212a3a2126544352d01dbb898aa5367747e60fc2999a2d2b3c5d0bfd583697b421f470d981939f369a4bf0518810ba936572c5bdbb5d16338811ce62823eb3e134c964c491ce24bd1a786c357ac66c5146e77d1105856cd6a336c283d1a14258dd76e6e3b94112ed10a4aa487b6bd5ad48927a0600da790a566a505e940bb36432caf253e02876c57b4f93ab805bac86022e111d4acc419af7e0b48cd2a20ab3c296c1f3c53c60f903e4b3012a289d9cd3d316bb3aa49eddf1281ab042d663e3fea979086a59adc652136a27a45901879d5396fb49a167056c0b196774e883c9695a880b352e0c8ee76387770565c9473518756e876555adf948c3024016e0054dacb6ab4c1e21d75c2db08cd4b975dbfe7259f956a6e78e74ebdcc4ee66cc0328314f71d749852203d80873938a7117572401163ba3a5b7b5c685bac9b2e9aab3ce08cd2ec0fc67d0cac56f83a311349d4680ea999ea0463d853980bdda24bdf58e244f76fdaaaaed51843f810f48cf04994446c25f0e79ba5e90ad9729dee6f58ecc6b6c25bef2e58bfafba4fffd780f06a8db3be01b32dcea447abf4f47712bc7cad68758cd913126d3cfa7c8d083d8b046b0f352c132be7c0f66eecc6438336fe5a69e3f19839dc4a6c563a85d2049f5605fa8647b180c438c98005337b5f57819f4efb19bf133b6add27ac7de0708bb0d5989d141cdbc5bee35518a047627bc81a2c882a6cfe282e225b99e04f440b0037eda89e49030c6c9f98508bb7085342b6504add97c653d27dc68ae87a4eb5df6e0019fe62f5cf5abf74828e7f138fbbadd54213e6ba1b3af2fc6b8d6984ec6486685ef90194618be32db295757d0a22f9aab23ae48e1f49c9015311c879e20542da6faa67f91bb52197622906fa787d7784af2716e6124dd2f785c52ea8a2ed90a071434b2d1bd33c902e35664ee2e8091a5fd42f91b1f38ac55f80be264ce827db401ee0490a509033806dc7e53e6b9bd235067cf6fcd4262c0230f998ad37a23f40d0fb870b842ce7a2d129d4240ca7facb3e01d4f75fc2d055dd5f9faa9ae48fdba1648550c4cc10130e358806d7554c41e8e7ec60ad5c6a92da28290c675c465ef805e2423825657b3a241a0408a5a5091e3e05d898db2ea3d1991ad0a5db2b330adcc239a4b8a80abdb84fefa788ea644948609b4b16fab1d56d493efbe9456c2b160dee6b22f820fef7a4a15359e23f38e6769a5092da894b036072ec9deaffa6840ca32f42b91f8fd7f15846ab4c24f95b1135ff3aa467d9c6e101a16e2e9ae800bacd4d7b387be07583cca27439d5bc44cbb5c7ec17763431263030e35c51c6ec14d09a310c4e441397ef9e9d94f729cd780b4d561af649d9688d5363996b306036e179aef10105eb85f79df248ad40b78203ce36002e7016699b1493b3a0f5cb29a2e356a712f35d8081eca3d4c63d6863bfbf35296dc6589d7c3b2902b358ddb7b00eca8371b9dd090b1d7f8fe017b7aa7d27976e540c57468ddd94506f6590520e63ff253477766bfb1a72adf943c8cc4af5142af75e739e1dcc492098a6c4bfd265cb0b2a0ca5ce45e1f30e20d7ee75a87e5667fbba72b9023a7acd690cffcb34988c8e5600ea4ad77046a39a699f5522974bcde8ddaf69a705293cd325b1a432e74fa7972f4c7a3d1eafdf9fffc917dd853cf25bc5257129f63c045219ad58f511ddf89419fbfee981a5801a4d8a5875284bf1d2ca61c4fc2a60ed0007ca7152eacae2d387bbbe19ed6c3a4096ce6a05cfa7ff321009ed9710052cdcba2902aa12b4660b9e27418257e084bf28711f59ae08b942dd95287aa525667a9d11d40461743d6f2e69e98b92e014a455add172865fea974606cc1361065c269bfe4c8595755b8bc21b9895add571d6d693e0c629254a8157572aeb1a9295561e30a09852bcd3782e772a1bf0bb8246b7d14340887c408c995250f15f5880b12174bf508ee3cf9d9e1a3c6403f852d199ecd7bc0280def4d0b287a50f567bd25922597cced48656303c4f21370cc50a74292c3018dc089d132c2dd91fc60b8794500caeacd0742e8fc04fefb6aeb93679cfe08a24f0b500dbe09301b5e941e0e5a30115a433001dc401dcf073da28779c83e5093f96500f2b83f4f88ca1d47081d5fed166e728ad4ddc331f3620fa469da97a37acce094668652a0bae0252201898f490e4014480941d1aa837ed637a21b742ac75baf4f4e5dea0fe82056e3f4cb87280b0e60b9254515cec5286bca36f197d15c9aa743508419fe8a5ce01a6b472a6f6cb21edc8d773528ee29a593eb40e37502539bc9e1ab35e8fc407da69d75fec39670a8a46ddfa8a029801c7502bf5fea26d3465f1d72e8e9ffe06b3e52b007b86bccc9c6a4a8a2ab861a63e66fde8cd52e5b15611aa7e58ef273a85099ef097458fbf76c6843e91a46e8ec8d1f1e1d39b225aa8b58ab579d670ffd1af7d4e59480d3b4cf838c78b2f0ee626f79433b8e94b020d0b198394a1d3a704b8a04b3ac676af420ef6e584aa8747421c6aba6b68d280c2075da7246860caf17a6855e396335e3650a761d82982e7ed9fe45e0f13719c0ac9bbbe4ff48985bc369e5931b2ba795ec1e4036787dc50174285116bf5f8a29c95ccbb775052f30597620a27c3d03ea34ecee8db42c07abf4a7f52519ec07436a9be906092c89c40fade5585e513d6bdc3ee26ac6a0805869fa2dcc6edb088cf0e0eba1a85c8a059660f679561a2d3f5502be42fbc746c2d71c0ac6a8d7dd6b1dc68ad8707ff300fad381f04da9a3999ca69bc415a6b7c1a51e4eb5ad12a6ddc61643a056bb602488ebe7af557420ba9bc3fb168b69dd743db0a4185fc55a4e3a69ea2d1affe7b6ae90a964a2f1d447d4b9c8b5223d87151a1c6c16ee7969b960e0973e16110db85ed91a4419661d1898e36739fcd885fda528dc9189ae377cb2299b2172d98701f1bda1e2019903abd2d684a862e5ebfcf3dd8646fb6f5da7ac0d5693c80b2c5a3fed335e41a8ab21d450349aebfc342aa6d3d6df278fdf23ca1f734b6516a235f4df0e7c344eda60b0f7ff0089353a22d60f58d09090e5d7b0fee245e421507a189f49c43eee8a05124877ca879b28e9968179c88b5124015220a810ff28718c85a181ec0194e97167b90930130109a6c7f375d72e490cf925b517d05b0c228b9bb4ff62e0be906a41597ef3930869378b87ba682504198b2ff25304a82bccf20f39570dac18f7d6790bd32f8f857f0d9a61a6ac002130a4d9ebe5e7b78d53f9b9261a94c14ffbf4a04176a7c70e3c58291b80bfc83918078bff3ae221e4c6ca110a969a52a94af1b4b312ecef5beeebaaec971c6cf2a526c84536915a16b89a6360ffb66fe942c2e3396ea7fdf2099742421fb6af2b05c9a47954478c7dcead7003aa76e9a2be4e1a6c0de8567e6a58fa06e763fdcd8ed7b0cb5586f24eb9f5b867e535b79381d3123a5619a83eb63f0e51fa1c7a8afad5ac6005da311691c4b28f6e5a9918de28e1fc3f0bb341c60aa5742c6ce51ffacb429765aea6e6660396c3500cad30e606dbc226bfb267883f57be9c5dea2494e3f61cc8c2e1e229a1959829b1b372572510e7db8b8fb0088fedf259ee39fd0eca9c13f368d1b42fff7a163d2c4c9a0a0b8d51ac77032e8a1c7c440af3cd4e17c88f11e3de8c8e32f29bf79c44f49cc4c077ea9ed5ef4543d632952c2df88bd495902163c543016686d43fb86d3d3526ef1e33ab285332101162e8cf9c09f2c5ce631c61a733a86b5f2d9718a8627232a635891d3ab8e6a099b883e6f42b36f316b6f54a8a0548e67cb03ad612388f51e380f73cdb11ca798aecdc530e63cf58816d4f972254626732cc8c4c1a4a3de0d8a7acba89d37646bf386b9972ae9f2ae26dc0e941f913ec1c0e20325868e14796de53dc30d5e37160017cbd2036def19c93a940cfddc417a78063b7909b0d22d924e52654320028805fcedf4fe3b17a70772eb38a2561c5176193c074d38da5f8c4b52e080ad423563ba4547630351fcfcdb20c11af46e2f625c3b4dc385a439c2a442cf52740a5abb86f27fd295c9ae8e224e984cd33f0edbd34096efc85928268de869aa92344ce13f21e310afdba549b5a20ae02f21e8e5bb8de06763669c30de0ba22cb8956ba85441a95c9b859975a629bd101e90ab056842a53fa09ad7e0c290a750b54f85b93bda61a9dd6813831d229596da5a0af43f9ea72226bc2280229a7598e4ad811713e04df51e6eb8eb8b9b990ac9484d26aa5faf2ff3169fc992c9d4856d97d82788bc59899d92a60c1e2c3673a790e28071d7a5ef4dc3f9b9f938fb3adfd2cddbc71c29c797758e95a78159c93e4d7f824752cd552b9c95b1d8041ad7292da8b5112309de7f65df1b59fcaf4652f8919f494b39533a802ab59cce26377d2520529c8b2ca056afb46640c6bc230bf305a1b9b069406d98db237683a3370301f18611f2fe0630aaa8cfc1d0ddf9fcf14ff22ab9c11dd9270adf1188c415b72113aa7c3ea77d6c0efb093621c811b4331d3745189efc45222f1ac5dd9c8ceee1f60f413a165f24274ebd402c29e512c30f65e67855ed37ea76172ca07e7b5f5d36404edf3c3832ed7d45036c9bbaf72a45a1a6ba1a2749c4551fae4fe3b5a86317741a9ab4803d1b9dda5ec73f05b07caa5db11c5af64533fc91cc460df8677563f648420d5334c9d1113ee289c68ace4cb5cd23403e6b08132c4cd04a29028b232e76bc7259051ce5692531fc866e7a2283a8c50021812e5721422f64292721849fe3384b0160ee6ab2911f81defbed0c9b94ad9cc38438490627387e53b5412a637aa73079ac5fc81ab01242faf7950ecc77d90dd612ff254b3ea8f4d924ae278e764fd12c243ee6c7c0924dd2cde3700e3f239244361010bb277092b2492c01df6259457a18a924d7f4f0f0005db5b2f839d29f813c6450d92491086ec7767ddc2d5cbf179bd5b9c60710f085363f13093844dc1b8d7cb9b4742dcd8124083e862f6ae78b6b9d9653ad23f9f40d20c33caa490e302621236d7a57756d77da07fd9ba681600b96aa131b961ae52e752921e272aa34ed1691a3f18ced14614f67967c52f23f34571fb212c425bc18812cbc44953c1863056cc3e9a5a51ce04c014637ba7a8abe2430aeae4768085e5e10ada70b43202a4747dd760e9dc7cbc88001d33624173f3610e74d118adca2e0f12f62d6a84c253d2afd810749dab6b765eeabd2b554ca80c6f4da820e79e9320c9b6d10ef05884cb68b06a9a6f8587ef8ec1dbf961f6aa85673ed5f41e1a98485b70d2675dc69c2668d7f9532bc0a4cc8761f66279cc8a36a5cff0584fb69e669396598d5c66943b498561ad6eb5eb00e64b1deed8c6e1083c0ced716c8d98358af08c1455b48cb1c12701634587deed815087c31d4426356d37f6b93c96c1bbb1c3f8f22a06cf9d54643d6eaa05ce1928e75348ebf9a34e41c325a3ac3026145b1742a0116ac860a8bf89b753c7eecc705bf817cc2877bd93b91fff3c6b90ec7dd7179123fc0c068bb4f06efa10931547e82beff0690a0280e193263186397442ea3640c4af412da6838148962b6db1fa3a65f24a844018db88ea3e409c947a0373d46f1186ff30c68744d85a2b89b8e1d7bfb6066603bf674312c753c01d9540c2656c97ce32d3c048e49d935113c3a3c4aa6cee3b5e6cb5e17aa5bf28eb61065bc27132da9a1372e17222c405d8573a011cca025880aa5eec5c2ddb06cd5b353130e9db35a314e2c07e25a4e71bafb8e12f163fe1e8480d90fea1025462fdc28e3af7e26067c30e47bf43045efb39beb01f2fc84072742d1d829584dea9841d3b39b92b3d0ec487fc98d20c5397040608fe0e9edcdef68a0fbfcef4a1924577aad0bea2feb04ddcd60696b06ec827aa242d3b1f6cd1862ffd3e9ffe80ab129ac9fcab0622b901be2095b3cedff8f64ea8728555f867a0b7a7413d54acdcdf49cdf78c506fa42fbf49e7a73d890f3f77ad0fbe8c34b11cda2ec750afc2e55d2b4d14a5be49f31204d2f5f0ff27d063727e55908dd0f4ff849fbd4412ca1a0f406627752cee09e7f4c01c5cf4e0b18795f1dfcd340758eda34c766606c8271dc463ce082e89a716cdc96b9bea0453969c4d8a1e5f6b8c1bc73956b2bbe68d72f031c409f13e87101150ea0c10168b8010537a0e0025438800a0750e1021a9c808613d07032e0eb4ed498aec64642c71d1156e8648302996319ac7e604586509ae9d705985a2b2a9f82a394a165a9ded4b87d1ad76522077d37aeefc66119e6709fc6e9dbf87d3456511421f158e787cb97e3fb6abcd23442e62cef1b18a9c2ee6337c67205277b3c149b54aa7d412eac946d86b87690656b4e2e65364476145f985e02fc639f858657cc409a352bff98b0cbc73af8b993c1fc3fe625800451b65b5d003f416099701b83751aedf75f073fb0f6b2c58006fafb8c55bdddcf5820e211b3ac3f49f506bc8dde4069ae5903f732250f0698c6968aaf7e71ca344ef2e37f99602f47a0884905338dc22fc1591ab3e4bb18de3625699d58d1b565154c3201d1e2355e97066046c4b281a13ccc49fa20e824ce75877929247ca56ad4496c8fa1e21c7f2c5d06238d69a717e7da7b61a7865ba7eddea228b18ed479fb3ced1af958dd082720e4d0bc8327ab4db26285eb1475f7a63ff81a8b922a51a7f2d6458286dbb92e933a8f7c1a7b60413ec24fade41e1f6e916ff0edd95d4de1a68d05c81e3c3d5b4ad6fd0a2bd9c4bc07b981872699ef6c63b9fd03415f39260135213db7d14857e89a1854014530151b0c2c6ae04f7b3b7d028719b0db4225d6e265f2127a79cd7bdd16a86a38c702bc26db34e7212571aede48196430f116603dce6ddef97060c3de085c265e1fa2999be0f0b8634dd31b37b0596ec644bfe48623c0f93820b69fe0e9fde67769a0f3e8dd9532e2d54bd32b37aa596eee40bffc4627d8b93860c63ec1d7bb4def0140efd1b7973a961ca9290cb29739e834a16f9a032ab139f035e7405e71d0c105b24f4939823021015dc8bf1712a6369160d6586d6ada48c85f115ab02b3c4e6f5eea1113c70d51f960dc84960bf7f2e82bc8771b2cd935b46eb1eef01239bf3f642fe83818d6ef4a0799b9da43f0206e10e74d89e139c8efae2080cb260a8625624bb21d83b0cfb813fc0767af522323d8aa6eaf256eb54cad042f3823a384ff65d14cbfe023b747da43302dda88f3ffa40cbd034c1ed1bb71782d9e6c58702bafd3a43b36848511175823c93346d7e99f5220b2a06d3e9cd2f0d1894e61a174c671e10485847cde4b644892b5f27e2c0420f75912673bc54cf318585fd58b8a18ebbe52949ccc567d29ba46b3f995dc1c1cf234944149797a8423db5caf76f04c3879381cec0569b00097e53ed86ff389f1fbd663d382bb31344a6784013e6033768141b02ef06ae85da57d146892d58f1e80e804ab72eb609103013a1f66f6ae8bec2efa514b405434fecaafccfe00d82d0f7316b105e875e6c6dd0075f25e04148927aeb3e04be7ccd4adb39203c057ff2489926e934d995f140c03dd625faa6048f629c9003cbae779cb0dbd766f42c7534f1ca787df84efccf0f74e9dccfd0ce67c369eec2cd8c1c27778006fbad871ddc03d76325a61566eaa305a358e6875cd254d1e459316fbc2253376af7ca9b6ac145b06a86ae1431bbfad7f2fc1bbda566e2ba55c4add1ea00b80a80309249a410ba4fb8c0a1255224627bfa48893bb5dc5873876fb4a3a3e13bbcc311ab731ef79f2887cb61a3b4cec3765e1af7c4ed4b90a85512602341058392b76c299541c7255a199af923a3d75305feb2c00674a6d276b9b84fd2ebaa58a503162a95addddfb8f3bdc469503e1182fb4448c1b76530d2a6199b0546d516a290d759bb8ec618b407a897a21c035cb3b41ba16b6040c7918288634fc524efb7a66b0c4e530b0a6dbdba85454d39a1f95b44dd03ae6b4a4d9b3df4aaa0a720a55b4a51f0a76557b63f22ca879e2207641da5ba797908eb092b37499cb114302a0d5dcb5a950f6001c0dd3f70cd945e7238fce42802b158bce04cedcc3012185e9a41512dbee14a01f92fd16def871baf038253be7d105acd2134cc9bf010a8c42688c8ec39ec9514877a0d60e87e99a235a8d97f840f3a5d760412d3f8c161b7f5b2d8b4efd600d6873ff41a9b3742472a6690739f2eb69505ee2084e54d2850039e77ab89bb8fb938fc318e8e21d56612fa79112487f8aa7c39ce7601b8f047e71cd9276214fa4e2636a958183bd710a96c596e45cc05a4996548b340ace47036aaba9f2e41756e2d9e71af1d22eb0ca49dbfbb6ca29d5b0e5bff515c0db7fbb3e345d8fb2a8d3bbb8d5209fa8966df02f2c7d559f98b3ad14863015f07e1d6e49e2d24e67fa390072396456fffce06416ff53c7c8b57a94c30761bf0e90d8b43b7ca616be174368b1cbd52719cc9cc346df855efa9cb551ab9dc3080383508e207003c927e32d30b99220cfaea4dafc39a89399bcee380efe716d88a3e3f34573bd5c907675211cf096888e0b8d2b1729f69c85c2807b520e7d8fbcff35cfc09c8a05ae76482c87be3e04b8cfbe31a83d09dacc1688b4f33030ac7ca9b3d720410b88cbaee6d46775979a7ee0dabd062009c95f8b9ad73ced1a8dd88796ad1644fd58c8f4a0765c7dbd240de28836a67ef156da1e96e105b3629b799e9533ada2ef04be23eec0283a30668b4b9a693e01f2dc3de5811d337f8608c97dc9602fd3e002b92c30c00cfb72d3d05e7373f039c70b30b0dbf15b2cb6d0e59328908fcf6d735aeab47dea7f5337670ab1da6fcf9f651b4ad09019dc04336cee67cf0c43b94550957a7de4f3cadad98093c1d4cf8d7b9d27a240468c900d481fccb7b51b5dfb978dc23112a8aab2dfbbc2eba3aa1f9df8a4a8b3b1f77a0fca4cca1aa4d5ca05ed2ac2066fc72c01f289061f9066feff8a291b5d9ab0e726f2a85256c76c742d91f009ce6aa1ea1db803531a0512e3beac04a5ac91a59734aabe60321faa235114370f6e9c924811a8fb956d78966aadb9e17daec763d7a7e1d1cf304cf85a9f7ea183abf0ab345a918099fc9eb537078a842021e97a36eae81b5f78415319222cf1ca5231f143cb55f01e03acd05ba11864a621f0480385c6ec3abdd7a337bd06ec1431ccaba330cfd10def2907e6b84e0cc0833225f303e171e276db6931d293bfad305feb3d54c36261c9e8beaea89d66dc93e1661bd2153b6f21dd5a09a826a254bbe5a09f57e09b29bd5863c58346d41bc92fba0fb4cb839b1c1ca293bbe77ab887403b741e06dad7a87a7412447283b2a20b3678c5835ebac4efd655447d06557ba8984f85671c8293572f5d6a467c070aaaa0da51f8d1f726ca1c972e135579ccc45b008a6423c6e35866715c8b60d067e3f6d08c91f9911609f2548f39801fd12210d5b7984abfe80b0a70e8824afe080526c97ab597478c705fd24c4a686fc0e99188559d00e9d9bad809d0b8357c874c045a50884286ce74467c6800c4865765a3bd79dc85f4e11ad11213e320c4cfbf9b92c1688c714250df352111abae7cbcd5249e893ec8afa32d38103d476ca6832d5dbf52e72aaaa718e11aa5dedee11310c7aa84cb4b02c3aa77a9ad274aa4b23e885c51925393deb494980436e2746d0463b7fa4abf921dc5b62205a8d27c82fe17e4dc355807dd567e47372c3ccf4d1b376feb0bdda747b654174fba1688a9a0920d0d15786a0d229fad9e009bc9747bb689a17456046d1ffa846908ce221dc61b9088f9e1466191d634f9b8e6570ff118e13dd9905be3d3099cadba85aae1e2d1a711d89414031859ba6473bac0664eea7a6356308193c90a6e0d5df930c029c324252a874b959294f7fe00747257f0f48afc28e022d26b2280826f22c23d73de43437b38bcbf1fee143a3060f1fed08be127337eb9796715476cf8950708ea0a785e0e052b61f2ca1ee48cd5eeccc8967de0fb830350434df77a45c5a3407c33203d669631417a7e8cafffe3f385df2cf80453c7d7d6fbf38ec072e125fdd9f51e991fc3ca137937761892809501cf3e1fa0fe7a61cfdc6820b1aafd94b99ad092a94ea249e3db505583104affbf50af64f9791f124eac4845a5755e89f359c46f6b36f7f510643aa2e38b9ca43c818457aba155b61d0fe32554d19dca8ee77d8079e378bb723697cca4a39dbfd0698012a0c814c442a4831ae8b0908639234063004aa602e3990987e3a88810190ce64041639402415010fc032003e4b824d767b7121b31748e7e1265508dc019301a0cf0a101a1c1001f377845a0fc26e77d53f09aa7cd0d5cda28b940137d8de1f79beb140e71c312e4afcdf968418ae7de8f7d973ab2b7c8e8030f436300a2dfb4363b0600fd8654d0a7857aff5d68201f265a3212b66e25d13dfdf9d175deec0f0d7f0fd461987f048eda6fe3dfff923ec8d56dca2d858e161a71a031960c7e2001ac6719e76646985632a49bf3410eb522cf5afa462eb54fc2646449de74c26e95505838721115dd18358e37a528b75c5011d8e09b30387d2017bdc8fe6342c16a955ef6b6c5011a473a4135914133196d0c345d83bdf1aa47215984cd17d1c79763db4fc58ac17ca0554d504b34bd34daa2370b5d8026b1704ed0b8538897fb6df612f1cbd0380e6a29dc7ff1fe18f33bfda143e1c3d04243d019f3fd8107a53bdd74a7199ba527122ff23c9687ce8e97235bdb78832690d38b732118d0abd8e3f9f65b7b64819ca991a78fd4b54b75f233250527706307c1aa9e9deb5b00807da8095edaf7662c0679616093a280fc4af87d7ad72d83ed724120a719122382634f5deed60512b2a7c0f73c97ed0bcc07cc0e02b9efedb00936a5e56202ffa47387c07fb6529fc5e59831efcac754855caad1f12f46aab12842af3c95ecf9c208ed333aa1214059809c5742a397953ed5197ba1d2382583932b4436625063ad714190a31901a93a94851416a4fa820bfc1569798298a7416311b503645844c2f84ab91c3a054438a7d1e357e166a0f949cb606c07724e658a41931ea04eb3fddec9d34c63e1133c66e1cb818a35d881dc553a46a9df9aaeb98ecf142cd2e8275393070b4bc9618a8026b82c3b90ebc3e103e5bb4a23d8d6a7e95d69843c4efa3e7e7bfa90718630e4f3b8eae917d249b9438e312175df09668ce2aae7a2742af079e104d07b3682e0b3e637448aa5fdcec2414c6b38f294c002390a5acf4505b1ea21926a3399542077edab17e66e7aad9da3025bff36a53ab0efd7b8e71bd6f45526acce3e68acff14d0bfb849f7713fe72f9dc21afd3e8db8046421deb83aa8f4aa7f0fc240508419e204c227c438a8057b8e067668077bdfc7e75eda41924d24b2754015ecb90aa658699178294a860644c9740c45a91412b2d3c30b82874eb13419e519793eec6d5e2ad8ee8a0eec7172b21e17d785a0946e03175c8fbd5f3d673e1b9a83890689446e058eed923679599adcb41a3817a4200a6ab1e2fa26b134aad190713561ea7aa356bf6c5cb84e8f240cd2c69784b7f1775aad81a894955a20be1b728c3241b3222abf432cb42f472ad11f6d0d0784807a90adf74c3e6aaa686b58bdf870a4b2ad6edab0c3f39a58a53412d4d3110acb7580b26ec8a2d2c114a034f2800894b524880391284942cc412c1ea0ddad3fc1c8fa11367321d7e3e7f96fda54b9716466099b8e22ea20c833334e2085ed2060078120060415b3797bae471f08509250fb4626b402415c1415dd09aee6a244c744ff8ac345e95f5f9af2d99701ca89c4c3e14199ebd9be3aeb25fe60661fd105639b7065d76d4e9ecde6e3ceb141f95dc2f445a4794ca5243bec95acc8de9bf4c55d9d15784d8833482e1798ad4640306db51e469dfad354fe30b414de1d7242c73f45ea05794e2e65f20740138e59003ba27ddb866e71a1887188e15601fb819f3013e3178ef1005810cb08fee4ba971d07492bf768df252f0331e4210f396d81ac5b8c9f86b1d3e4b0e49054226f0727e5177838885cdc9a3688a4794ca8f3d0136de371ce8fd7b40a41f1e4637cf4d04fe6ad5737535e6a72f89e844c7d81ad1ffebf7481d3b38549523c5f3c75eff250601aef71d2bccc559569ce17b7a7f7595dde27e24cce91c26050d5817f30622d761a59ca531f5d42e55a405b81639a1ee00092de3d3cf72c315fb8431627c5fbf285a66e45b967927c0581e2f9f964cfa7197c08ab40ee9e7148651a98370dc50a654c6ea5fe8f40645e1512aeda115e08e136058aa6f597a44411e32c5e8a8fe6f338e6381cf6810151526a09122d27642edd409685f8875fb2655322e9429f23a92be579d17070e6590a702cda997aa90a3db13e484a74da91c25c4b9c8468c10d25aa59b7603900e92ddb633c93f6669a5ad59d571b7b6c62d97341a9418a2a22a0d6091ac21bacdba28724f820646b72531d0056efae619485ab67293deef026cef386f4a5fcff4ab77698db53a06703a7ecee306b74b886db217ed9810d1e8633a8f172c7ddd4c4058bd5e5bf7b9683faede26546e2cad5938153761b1c51e47307d78e497c208e12b2b9782b2e55800f6783c4d89ae188b2cc378220ca2113387e69672b24329cb6922371e97a76358cac5d779c90f5ffb3f75ea405e6bd97f4da2b10b5c675ea9bc2ce6f8f85c5168762e9903167d1f98b0e1a2d5d488b0634b3a1df0e4f3bf4f5a3e8d1271b2fbaab5a87cd6c86782aa795c9d07bdf9971a87487371179f8438ae5a3cf677aff1b3446d0f27f079a85e130eebc247ed54fed88619defdf3d6141abf535ec0daed1d7e9dea3ee813a1559e74c182a885e040c522e988e7866b62140abf665a94108a7c65769c75a5182c3de5cf80e692c7eb62aa435387bf90ca424bd4774ce356da1925d731f118cb4c616285817af631625d92fe659f011986e165fd8562cb8e6b4d5d2bada6e31ada0514ad0d5255a5fbf9de57049834090158caaf7a9f5edd3015cf5fa5c0d2dbf7041cba89c65a0dd9ebde9a10c4e74341ff2a6c052127405bdc34116e159b8cd8ecc26f9ada96a85b1146b41f5503d6b2561f39ebddd3868e0c4fb70f55862d0a032e5b247f8edc9178dc7f70401e2e7931ab576bc1b5aa5c8cbc5e5ede9772c524fb19a14612677abcc749cbafdd6f7480d810883f76399a27a56df21177ebb017da5b2af363e1e3966a9af7c1b41dc3e6473ce8beaa1683fc09477bdc8d04bd5752253ff22b75d5489eab114b1df93b88f579a6e9281c22521043bf0e6528f5ab61b58a346726e0e1ae00d086252a7cc801676e9b0bb17f17eff2ba7bddc077631c47069b4cad7471bc690207bcc1b253f3aa0bb5fbaa6096375e261829043d4980ebeadc1e712143f562fc23bdc6064f49e67ba1523ea594e4ff648cddaab8d772946d0359f8f824fe62d7d381125bbe5e801510f4755d5514dcfd3681a54f8894687158266008bb5af85844e6d125d6b4b25ea81fa5db28a3328612b9810cec27bac377cd6623e144f6db0b080b04275a227656341c9021144577e453a6d4162c4aa203d7c2ca7aed708ed2a78acb14e95fc4407aa2a303658272b03cb594948a82471efe369f8812b9276c9587c6291abff3c79fddbe93d138b9191cf68ac4ecc546aab98952303b37850d7300ff1a62f9d2ae42ec1a72b9a01eccc72c8c95d453c314ca14379739043c67783fa29061220b3433f04108990d1af381931473b91da73625f8c6845b4a4a2714dcfb21c5af73e40b7e70df323c9e5b4fd8dd4485a452aee40814ce4ba66c3215a625de45600915dd96803f41945ddb3589674b991aba2d314a0ae1cf8a1add4a574c88ae1d5c935ae82fe7e828c5d8acb7e22e397f3372d7f7f8299839440728f989545a812ff91372a29d7896cec37a54ca9197bcaaddbb40151567d2ae2be6c3cdf2a104435c62e10f224d14a7827ecd1ef0784c000f8536cc6f4f896a352873790b61b6b373c413943cf3be076973c9b0d00f81cf58bf7cf683d733a7a33c7769cd279eb300010945a9c14a20ab0bb60eb0688ed3ec8bef82aa3d818775ab47d185af3a5af7dc4b45b394fb18e67457ada7a792558d148a6b6b7e677a2b4586b6741c9941fa95b9c13ff1e13b4ba60eef39bd481131caeb86518607058aa52961f40364c523fc7581c93e65d16c0f769dc24202049002a79ee616f96d04247ed0c4affd93222012e9c38219fbc8f625ce17d5ea8366968770340611c9e6ba7338de5ec4ceac5fa58b03a66451e1b78ff38f23853868d21e637dd7887d50747f94011f7a7678358ce51f07a5f1606cfe800f4af5c701c20fa9385c3156b41ed3ed70ea11af0e2695d28b9f98bd3c70b7d241e105ddd85ad5821cd2c89077b857c0f6f0c46a4b12ecbea8bec0a0d7d644ba3ec4e5d84d9bda44a226e8e9538e8af7b62dc5ea7ca7346c6dcad7fde1fde468c0b994115430fe35e6fad7870d874adb2928a99e79a28854f230d74454fcfef8b36a1f540a36768725450c6faa9d0bc3ed9cf2eb40fdd48facb8722e512aed25b9297e396da84aee80f8e9fb038d95f5e9d409715f354e18bbe2efc338089c6f9759a8288227b81f273ec852490a18ddde0aeb920cc06530ccffc50727c33277293be09d34c0ebea8ff651ecc2edd0836e37a06a50bbfad55b14d349f81c3fd9d8597fa9c01382eebb81901242055ae24d3ed18cf659756dc0619d461d699041c819a012e83a8aa4bc797cf97ce4128b9daebb4887a763fec0b45cc3262871d353045e63149ec096f719ea8b9f357a46b976a4a52a94c46438f8186b2d77fbd17075b0e04a75bf826c068b1d4237345eaa16d9e0daba712e3834db89f6ad87f6c8084ba2a7c1b14868a2d84d66a8bfa7037b617dd285b1da66d29026426f9c5b3fd64f7037fede8944f77c9419c3980207d2b6cff9f5c06ff30b640854fee3c9bf111c02afea591ca7be5d081bc06e23ebebd5df60837e0c14daee885ed4920c4ac51867a9eb502051451bd60a0b17e93d928a0ba579d9b2f4d2b1f622bf51b394ee4c5b8f2476f9666efd24558745138510aa6fdce61609727eb9624967f9bbbf41fdc46b9dc3f06046ad286f433169001a831559fe2cdc1982136203f88b78886abc65e2504e48b78ad738f31ba7331a52a786368d4b1a2e705fdc080ff316d598246181010976c72a65a5500180351396c4d69c1709d05e33b468461d6a2af3980c3cbea2548667f46c69da8965246d3d05d32b4807ac933373a818aeacade32b51b34fc2036748cd826f985679194b0adb1a5990f365b92f63db11ecaa960a69a040f07efc7c8c0694f5f531cfca5da81a466c70da0c0c247c641ebb43ff25c30e15794993bd180b9865764bfb956ecaa47111d3c401965d8b4ee49913630b9f980c7834a9d5c97f9c3b939f47ece0aefae346e042ab367ba54201e95493a751cd1ec48d4ff45b323d795eab0d1c55428f66747876876245a9f5757a7e68058fe5696e0626991bca8e6b7657ef3ad70449b86b03c367c1e8b632fa647190b865a6b8d34420869846cb2f7967b073e0b340b570c4f988214e64fdbb7d30f298644219820d06c4e6d5e0cafae3629a54b4ca0c17825301bdd145f2b47962716a37cc9a306a54dcacdb3459e212acfb3b85d15be50d2e483e0ecd12e4df44080685a9865b327a6c86b38890627a61675d2a0f60cd79b5ad3200ea221a230bb3e26a6b10b67d24ca23559bee59c7822d59ae9a23ca73a7990209f4edf24fd6d2288cc5976eab3d58aa36dd77e68473d6edee82b7baeaa8731b26692b553d66c74d1d7676cd9ae3dc6176a2457e4357cec8822bd8cb84b150e599f51ada93fd145a34274c12e5f6bbc96d6f60d4fa3d74db76819aa85fd66d6e6b1eedf0d63648b9b90dc6d429aae8fc42ec5eaa35d14be79d32e131625267803388906314c1b64e1069c12acb3c257e431e44127ac3ed82b4fcc64aca75294f060d487e7ce9ed343ca437b1a94f39e30f56950b672489a65ce1ed21c9e2c4f75bae534871ee9961d4a84e862b7db0d8792def4c8327ad3a09c3138d448bd35a753e84d96383b5b9c5220e9bec2b367f668339fde7838c311c3b3a741195dd810e3ac16a83c7bc289445fb9ea744b4873b294af39dd228f64f98e0adf7ccc217d65195de22bec409975d9c1667526bfe963d4a06c826699d360ad3f0dca8a1355e499f0fdc01e4466ede144ca52fe98136926519a7530999eddd06213a6af06a53667cc349ca72f0dfbc1300502fa429ae9ab093a7de88ffc2950b7cc9efa53812ace74c938c414797987ec894f05591e0706f2b367c6f97d3db387ab35d566d296d1a88b92a6ab931053e4b50cf585dd1323cba376459896eef58593ce1bf651d3d60e9ab1d38ce11879450e9dc8da9968903628bb27aa482dbad02b7228a3cad45ea3c189e11fad1dd881c050de238a704286b539316d01b159489d80124bb840d9e0bb22f72751280d726f992e695a26cc03cc2659a4c1d77c42749147882ad24783dbb90d539ee862ea9ee9ca7e16eb5996c599f504e597d92357e4edc3ce36286bf2253eb2864bae13446056dde1a0a62756778208cceaf4863d918aac5d62a163d04e0e8144a12c82d5639e3e567875ed62ab3b6f380219054498d58f90e557f70922322f9c1a9a1913944006060a2230188d75c64f600242aa5611da22ca2631968cbd59e28c5c54c1c09fc5fab0094415ec49047d219749ecb248068632e6b231532e105f18a04474b1c7feb16c3000c3308cd6d74c4e8eaf199b31f4e4388531e8e4301665ccbebb6c3a91c32d5710c8c8c8982087209091915141ae8f2eb30683628b285b8d4e899225e3cdf2d8123385fe8b2e32cb25ead1b498daa8388988c9f664976366896b449521590351852a61852fac71c444bbb299f2a3070ec41714b9428fd1d4882e33d30dbb32a34761c912cc52aab27cd843fe6a30346c5b57d7366fba18135409da4033fe14318364090227b27c114df8b6c84483da83e83062b31b76b3ac6241ba0504417cd45a332e8b42d949f6315dacec630981a026a936b559802baeb8a2b5437e7ee2d003acfc631ec7bcbc361aeccc6a908806b39b35383922706c5012b1b1baa5735329afa5b8df31e10b59b9a5307dba4cb8595fb35821a84db1d17f2dd68964160e656eb1a56ee7161b867538b0635dfd1617209f329253b7f4a6bec9ef437d0f518fa8d3519f3f50f1b49d4e271c9e4ecf4e3f2d3dd3cbef74e2b6d3773aea8419d020fd11ddf551842f8c41a7874056d93efe88764998c8433ef5ee769c9ec2a1f564eeb4543f4ca552a9d60ed65bbc050e599848de52b773ea346b71432152e34e97653b1ca7a36ec9b78d43dd92a7727cf77459a93bb30977baacc72e47eace8c3a3d08cddefd910a5367e1389d763a664ebdfbdcf093638e79a332b697c2ad1dd93ba72561ea70c4c8acfad655ac837bf7185f4e0fbd14eeec7de61f4de88839935c7f734559f504bb45c9408d868965abc1d9e888f0b28e986f34481fe49475c45c44835eac717a9d51b5beabe976fe587ca6d46536fd48c50c09b79bcee2b676d49fde44ea2537461593fc6e0c2fd77b5edee4eb8aec3eafeeb3ecfaaa8ba33bc7e88ae248965344e1532473ef36cb7957cae4ef4a27e4543d0172ad5d6bf7a9246e74121f4e61edaa2b331d9c774ae110484ead72f7daf54075bf314fa1f7c3c3d889873ccec1bd7b365d11866607596c64faca3ffadd4d376c1edcbb296896b2f7c68e65f73ebd530f7b5bfc1ea666ea13f578439951a69fa6bde77d7ed7bebb4db9d345ddcbf1dd266454f11e84e6d34d77a39e5763eefc5d794596371c52822c65a630049cee749cdef974adc371ba46bbd4b7ed1b8dd34bfd467fb79e8b9157648efbf13d75ef863766486b47eaa737f11df5ee9bb73d77b7003072ea3060c457ee6ebc227fb7b58300397502e4d44f97003976588ccc29fca3efdd7bc6beec39bbcf9ff76c7a31f3b4eca70c631be7bd0c9f775abbbbd7dad1fd7b17a3cae931aaa45237f442efa8cb2e87f7cf6bed389d7b086465af0756390492310c6495e5ab3c0bd952ea11946596798b0bd0a24092b30ffb8868504edae5901905d46af2dce4878486334bc351227cf20b3421cd21102edaec5023a409d048a5a4921464d28f2a2585576d4c264d97c98f7cf956687cc8f331a4524a0aafaa529d1e7177d5cdaec2f248f5135d541d96495e552689df53a954ca43a5bca354582675573d8c2f99f4752ad46d427a32491e613e3e157bc5ba462a7b5ef6dbf6eea44a61524926c92472a9bbea7dbb7b5e97f250a757a1befed747a1505ee85d4b7d9dea8d5d2d0f1f8048ee70abf3de79477929eff574d4e9aa1baa544fdd76dde9aa772a7b3a1de5a94ea98a6559ea5b2a533de5a99eca541e0e332c4ba552d953e7529cea3bba6fdd8f4ef5d885dd877deb52a9ef43a152a99f50ef0a915975ba7dc36177d53f950a7f47794fa550de511895ea9cbaa177d37715a54f9d4e47e1d3877f743477787bfd72dfa8d5cc62588f113ef91b461c216be44db7845fdef1612448bb280c8f0e4e189766f29c47399436311ec62cc09833a6815583621a2c3b2c4f744bf86e14d12da6f78d38a25b324b83a55b253b1ca6538abbef7bec3c140a8542bd1e85eb53b7df97427df7f4b512e44ac7e35d2aab111663236e70e16baebbbbbb7b9553125b4197d5ba21692931ad4d449c30715e737dee467b19c77533e3eebdbb9dc7795dc4dc56c556850ee6b4119b119b119b11d334ab59ab6956d3ac66b50dc95a6b4f354dc3ae691a0f32eee459d35d9c3cefe4791e3ea95017954ae1907e38336d18485cdaaa5871d9d247c489ba21d5cd682bdaaa381171624372426d484e9b116a3b9d70b815499aaf6e27d4e9439df047b9ad8aad8aad8aad8aad0a9b440b433892cecb8f88137443da8aa2c441b22cb33765ddb5e67038eca5b8fcd1fce130c3f1ba08331a0d6b9b8966ab62abe26b4bc399342cabb5d61fa13dfd902ca3edce26eda9996eea2ccb3253cc32cb4cf73c53e6fd46775b7b5967268b754f2f7b77aecbb0d9655c167ee0d9bbebcc740e875ffefc66c2916638b4d8eca46dc2168ab6536cce491fb199a9cd2ca5449c681aae2876c825c5964dfbf4286686f6167bc819596b5927efd8c31fadddc5697b7798dbb66f716ee7b68de3ba731b4a957a5fb59251fdf4d58ddd57ddc6a18781b0b276acc3198e260c84489645b81ff2f6d88a3bb5f6ca1e2f3fedcb449c18929b862bb232e4927e84a65b29abe58e307a17a81d98b4daa18838b19d2b92dfb8a41fde6396f4a347d90dc7cc4ff6f050d216c9da2b6afb36eca27edb5651f25e639cd1edf5decd1b0e4d78d5a0b49c1572a5318cb906a527b31acb19695c91c62571469c51175d74f76e668a7db67dca703864356e7b72a1be6b29a96718f5ec294d3beade148dc319ce3cd339edf3a276f06d38fc9c53725660ae6b2b85978db546b2c59fc5914a61b76a71c6e97c61eb64960755dba4acaf5c915cb19c6c1a9d233b3a47767aa0f39282da1767855cb1dc91ed81ce0e4f8fcf6b87079f947587a7c7e7c559a1b3e3a373c41538cc3a1c3e4e2061be7f387ca0f013a83b41042647fd56b1b74ef770e8237badd3e9a75a3d1ca33dec2e6466294480f281c24f3831e40a278cc10d74b8031eae80411d0a2230280c85ea5f8763e6b94845968ff447910275d51d22619e8857c0a4304d0b18148e02752886404104e643a15028140af513d880417d080acfccccd0d880f94e03c27c9fa161c17ca7c960becfcc9c208379e2a42423c38279c22ec9c8c07c9f390108f3c4cc830cccf713d880f9308be89b2e141c80210b344128e2822dc0a88a583145910d9e70861f182239335798d141d052198460b21934610b2cb022095f8802a6efb5890e1b1c5035c06cb48b3553ecadb54184922768c44ce936ee446be44c3fcd596bb78c44b57b98d164fba869a7d3bb5d60867641bba05dd02e689bcce73cd93ec63e92ad668d84dcb7d34988cc590fd34fd86bd3dbf46a7ab51cb779576e5a585f617d85f515d617689475393a5fa15f9d345df5d52948ddd2cf5ae97bb1802ef49ae0cf62757777777777777777d7d7566db7a3dfd1a21f242c3a0ddab72ae601e689675077aaa6d76a7af7132522da4e4d977e812e85b4a8857e8927ff90e3cf124ddebecfbb31cf9c0653b2f6d6de2c389bbbf0851307d3f141cf1eda7be2b4565f9428aad8ad3e8156a37ad4d73cecde3cdddb6eda6eda6eda7ef2bebdce6004e4e8fd2e2ffd16b17777769d9f3132e95897a4e2fa6afc8285ef47e5f00e0d0b395dbeafea7af43d2c04084e7e40743b52729d69d0765ef8fad3e36ec5b8067ba57fe69c2653e795743b325ab14f70e34cc7a1e9b2238ae69898539ec74023b76115f9b0996c6796b29da9f1f3d5a16c310cc3300cc3300cc3300cc35ed2e1c0565d8fedd3bb9cf13ebf3d9ce71e4a9a1d1387a7af6ffd77ebb74bdf75e10beb0b6b22c897b3a36ebadc4f5b05b2950af9a66ef9a940a98ec776137785c8cc61d49d39882b3b882ad6064b50783a753b4e5888ccdf372e7c3d71a24b8773105d629e39dd42e74fe5681ca5bb1bfa6647258f3c82c924794c92c724794c6d327561d660d6f538610e0b91b9c3a1e95fb7c3bbe907f7e37b10d39ba014c986ebcca75d1a442c36a812b8fdb0e5e818f18dfe81ebaecddba544f40b140c45546949a6412392646bed37ad86352a15826c4d7a55caf6a66e4763aac2e58a061a9fc17af195e4d8e5f81a5df555a3d0dd826b78195861f8b6d03dac56c8b9e98c4517882e1953b4db2b115dbcbf450b142a869ad584d0ec3de694bd9bbc9b753dbc6f58488e20327b980b69956131e1e8a5485a701b2da24888a851a7d813859488fe745bf8b467b929919c4bdeeda7d2bb8b658ad32d28ac93550ea752d3191af6180eb59bded51f179ce9d62435a922d5a35b81a28a3d772b15a28afde9d62ac895a02a748564b9c3f5c788e9aa439d622f93d17c35d91ebbc1706c7785e862b37da5e9166de67facb05df535a98c2f9448aed8371094dc1242f3f79853d645e17b45979fe882cd242396183e2e6421db87958a6cb310a7c8f67328c6c8bc3dac484958489f51b68f712249caf6767b4d4a2459dfc4f5952d0e6bee13658b6204901a1e22b984f3d347457686a6527431125de8ebbb31aad0ae4777add5e568715bf62e8e79edd61fd3ad40a6a04eb1b7918d58900c857d4e6b81eb4f54b1a7b7beba20efd5126acf1a9c3a3449d45d12750b875bda3b3c83b2bd14a95b13964275fbec745518dc79f5bc845e70275d8ec63fbc07911c143e0db7b47313075b0f4f9c062d97ad3e160dcb6223f7eb0362e1e064fb8d06e7d577cd9ccc3c1e23b376d674d59f4eb10ffa108824db872cd9be22e51ffdb0fe68f86bd07e622ed2a965187b6dcd23055b44093b7651f86451f75152d3fe6274a133f1459620ae4417f9449e58ca44152d7c618d2c29cd323a337a39d3384d339b858f9332b90451ca544a250d383a44bb456ed9b9977e726b60890669cbcc392b656525560dcecbe388a1580d32d1555aa2ee0a1d151d1a3a2a8c3a37746da0c2a3bda98993b76e2f8bb8b8bdb4e99616b7ac5b935b16b7973952471ee916d56deaf69247f6481ff9923fdced65d0902492486451bb7e7b792491dad53433c5be4626b959b2b6f518adc7c8de59965191bd7384f1ed6aeffbe29462d8c97ceb36cdccb28fc6c5856172593fb9f17f271491d87e1565db3d44f6ad9be55993ed7441b6efb0f0c5f8c9c3fe37932b732bc64fae753d5a8ff1acf51826adc730897185c86c02e34e9e1e9f1797ced0748abddc341053a24b661fa78dd6b64c6ea6712737e6d6cdf27461dfc29e656f62cfc2bec47e65afb24fdd39348926923b8bee346ad0bebbf3c81eb3af7726994a0d2e3528d3a0fd2f9de914fbedd2223a64966faf043f3367da4f1d1ad95ecbb2c79ce130cb324dcbecdbf64fb64782c2a6226718eb7a64efa0e8d2f1c8b20c6796d6b4e85317589fac1e413e197b638f2ef37651f89a983fe9969a6e69ddc56b8bd7b7916e61bdbe7158bcbe758ea85e53afa8d7b74fb77cafef57ff748bf7faaeefa016eaa1266a245df43eea96ecf58dd4ae599324d779b394274eaef5db8661309eddbebd2fae69dcddde7df774d4fd9ebaa8ab6eeaabab7ac95d9dc52db989c969cc10994933b3afb6dee2ba38ebb6f8bc31c69d09c28b9fe03031de097d456aadb5d61aa30bad940bb9bec3c2377f529fc560dd18264ede753d589fe7589fac08e3ce233b3c2fee5ca23234d1056b42e6931b2fcd649fdc0c6bdd79a4c17a1777ee34c8d3603debce9e06eb4deef469b09ec59daf06eb4beefc69b07e75275083f5aa3b831aac4fdd29d4603deacea149d460fde94e24b3681acda33b9166528349a6d25cea94991c147cf321a5c9d408a95b8e66ced8537ca044831a884b4fd22d7355e91a1d123367eac87c21a5a199393595ba20633db0374d115a135d220fac254d953537b9b694527675d1a9216cb25b7e2cf2934311ccb13d1a55382a3e941c1ba5c1f8d89252afb523a2e0b0971dfd464d3436184f23a68dbb1cf4de27bd6723531dde447d4241da953af618e3f7184f345297a553b6c6dc447d37fc32f7d30d59997b77c31899c34dc8ac81d8bdabe1d51bc48c681083c39de896231aa4c3d79aa7adc951eea45bb0a3192fc292f64edf61cf6ce4894f1ac4be6a10bb5dc1e79dc87675d04ffaf989693e82086df5c3538ee3501ac4fe06b192632b4c85a5b0925596a9be2f851121b3cf8f667556cc6bd14cb3d763f58486e6a23018d62101e6fa6559966559a6d9b36851ab1f3b28e5300ac5631c86c3bde0e6d4cfbc27be7eec30889d0dfe68d13c7128a318b6cfed73db52f0c9cf47eea1b63d44c5387cd8e5bd28bef0d9b6666b621e60966d38fcb23561b0413abf81d145bac4c8a4946cb3da2131bfb5b2cb471470c3adec1906b30bf17169eed8f0617f7c5123d86188e5c70e4199e62a879c5cc31ab9bed2dee873dfd094652a4b1759ce141955ea6bad36707d0785af9e060a0b78848fe8125b4e4fe6467b967d1f8b154350939718343ddc6e2f6feceed6be811d84664d7bcc49eb41afe11b53521e32d763af4164a6e0fcc2b6b988a7ac5b6690c63f70ec9098f8c70f247e4ccc7d0b9fc4f40527dd1284c617a5bd21895b1549a044105144d5304bc4120d12916f34d81856319011404044dc2862da67cf6816a98d06bbd2241e98d446f2899a16b6cf50ee23ba4a9f18bd4e478755b9e3d37538a274c5ce43fd644fc4891a6b03dd1fdc87e4ba9256de466a2336699f1c5f2ba60f83504f9a4e236e71a79f7ff6451cee8834c6184eda753a4c1e4ddaf5c76e61516565b1496c72d3af8409cd58e050f2e0d0904c261395524a2965030dc9b1ca2b77ea69bf64571fb60f0edb27c7cbeeb24a19a58c554a1e13d73dddea6aaf77aae2ab933b99876946bb53d395a03d0c424d268edea4c48f68fac961d3e735ee9b768df39ebdaf84a995c0b3633b1c9acd326bb35556825c99973e92a7be95205f76da27a905127ea0f084274021d9b16e071623eb7f548c688b28e1a928d76fb227ad98cd34d3c675dee943a554ab121626ac162e5aaf9ea26cffbcbde0a6942d2526e537185c3c8d2d27efdde30bc987584139de00b1425bc3358166ca8cdf2690d14948aed41fd93861ada24abde97e51e5252721f9828a2bf52cdf7712b247f6c822b56be562a75e0f9e0f1ee8a5dcf3667828f7b6239a23efdee3683c19f736202020200fdfdb8c3623cfdb74747474bc17f7b69f1f2fc6bd8dc6f33c0fc6bd2d27c7f34c474747475e8b7bdb8ce7b5ee99808080803c17f74c46469e67d2d1d1d1f14aee997e7e3c937b261acff33c16f74c39399ea71d1d1d257997484c339ea7baa70101010179a97b9a915ca9469ea7e9e8e8e878da7f3cedc7d3683ccff372bc7720be6839f6de99e81679ef40a2cb090808c8bb8f76654033a51a79df115f32231d1d2274bcd36857a673c4bcf7e37d467cc97ee44a8d4de365edca686696f125cbf1e83dcf4b0171c8f2a187191d4a6786ef74378e86ab39ba47471c4dae8721c3c34046401708a8fec5bb179bcef6e36d3a2f361d9d9f5c7f128383b1d16c39de46f362a3d96872727deb646b613ada663cd3510bd3d1d13693eb5db44c2e4c402623cf04d4c204046494eb5bb0b412938ee9c733e9949874747e723dcb246361a231e578269a12138d892627d79bac2c4a3b32cd78da114a3b3a32cde47a162a2ca50169469e0684d280808c727dc957354d47fbf1341d4d47d3d17e72fdca9ae1a31a8d96a3d168341a8d9673bd4b2cbd69036404040464d49993b3eafce8e8e8fce4fa793b6fab69f3049aae6fdaef9b5fb67997ebe178ee375d9c117b7424d71cab865cdf197d6176749421b52b88e7b4cb1efd00c48c8ec6bb6c26a503df9dcab4cbca40e9a1f3e19d25c21d9276d99b1ba3ae769de5e9ded32e4c49e955bbda75d6a6eb3022a269a476b5ebb024dd4952bbb09e9e56aa5ded3a6ca80b6a1776733384a4eb301e9e29fc4417964ebbaa92d28e524fd761365df79e6957252a42d4365d579374aba276d59e9ea39ea4aeab439d4fbbeacdcdcf4d50778458bbefdde54dbba89292c451d2e9ecbb6a433453ea52f70ec4179aa43b13dd727a7720d1451e7d45dd7dd4ee3be20b1dfab921a246ee4ea35df4e60823a20b7d77b05bb6d087dc7d467ca13cddb3764da59952dfe50e25ba78efba777856e1a399be320d7b94cdccc0216bc681c0e1f7c3510ace66727d04735786efe483b5443de01928d8f6c8c018d7abae07c35a0bc35a9b7a1703b3180c0cb3a8179c0b0cc35c6018f69d6c2d0cc35c6018766a61628161f51e4b3351c26c945828d57725598a2809518a88a89e5b5955ed194ad56f282cab3795e7a6def455ab345ddc4db561b13eacc4d11325a249b89d5c591f517d56866fe6d022a13d433d3d3d439f99ac1e0dbde1a99b77e9b7244bbb2519dd8e94ec19e16c3853a7d425e16e389ba54ea946fa26ec926e3c9b5c3d23b956ec464fa4993493748be566a7a373b74493e56434194d4693b1e829e7a4d3ae20ba25da29758b952b571a754afd36b9ec882bc26265474af3a87245727de76e89b369b03e3b9a2eeea68bc817ce0571a5beeeb058dfe46a8e38184495fa906341ae37713551a5beb3e2e34e425ffca250fd4928578ba45bc22ec91ad5675b24756a97d4256997caebbb254fc69bd9ecbc995ccd9c46f2e5932bf5df37818cb2ecfb58ac77d88c36827dae66bab6f8357703d54daeade3d9d68e0c9fedb0f049a1f2ec12875d925cbf652d67ccaa372f871aac0fe24aa24ea9cfeeaac17a95cbea947a7a8f623d9999545f59e06597f4217136ed9a3793abe1565c4dae9f3773baba241dc32e29d72fd74c7197d460fd1abe2e09ec1f35d8e2769a6f6ee5b2453365be0653274f7b2357e66dd17445dbd37323b7788aa0ec69498c6639c6a8041b7b627cec91f59ea22a82d224a6d0cf15508c5d8cbbc9194db7d4e4799ac9cc6733332b923b8aa4810c6000e5023294b040053005262081081c023192788003603480010b50c049025a3e7a20c0051247f038006b8789113a72b0c051840160565975a30004400d2045c48bcb2780930d574b370400025043088fdb58568250f901081a9a294b017de86106663590010c5c40090b548002139040042090c4031cd000062c400109f0d10301481cc1e3003b8cd0910347110680c9370a40800110f1e222001bae96216a04000042b0ac04a14203881f52401f7a9821e3c68c1224e3ca8c12244485a322222bcc98018475b0ce111efcf8f0488182922323c68df93331aecc9fa12901ce4dcd133264c8c0288251642486b99404690c3f9218ad1bf3894f3ef1792581480868093162f4b8b871716324063c477266707262d332b931b392c8cc4aa2f4861a1a9938b45a492c8458080d51816484040b2c5690c9eac8eac88e0f805e3d403031d1a141d1148122c7880d0a56ab99d4edacca9f91cc9fd11119649492caa05215f1dcdcdcf0bc72f7fa6182443214e484cea79839239c111c1af4ece8d8e074ba51d294e2921c6c8accd081e3926443d9105116928e8ab6b06d422c184b0d95a01a2268d89ce862c9c0437a04030f29cf051e529f1bc497239478487190fbef5399e8f261818794a6020f690d051ed29b2ce3fd5987f80264020fe71d72dff72792e86242020fa751041e4e24083c9c49607021bec822493c9c5e188a2e273dd1256b1ef070be1cf0700235e0e1148a2119f0e2fd69135d7267010fa711053c9c3909e8cf9ab982f822837c3c9c2dc8fd5924bab092a24b0af578d84a0878386590e8561ae28b443ae261afe128bab4088a2e99c4e3610f1de06123d9f1b08d72b39822be7411231ef6147ea2cb4a27baba46c7c3dec9f1b07b703cec9cce417ce923453cec1d449792e8ea1d033cec22300fdb26770a0ff1a5836e3c94572c4597af28ba5aa8000fe511011ecaa4015cf585f8d248443c9461208a2e289fe8eaa49787f2c7e5a10c12c0654fb71c21becc227265da78289190fb26ba668deba1c46979287586f8e9351e4a18e4be74417c99478244d7dc9929f3423c8c4b007828677200581e4637e47e07e2cb0c9235d1a57b9f0920d1255b79188f8278188b54ee23baa6d04c99341e462be4fe8ef832531ec69f1f1e1201c469cccd457b830f7dc8edc3630c5933501ece9967c4175a83125d2ab5912b3366004f0ce0f0cbdd72011cb2f211f2c52251c2c774d9220b085540880238646520f2c5124d00879d99982e2b011c819804015c44bed8a1248ad44c97bd79000e3307d434a0e6887cb13c0c38b2335d98d2027614b093809d20f9626d7ce0b0e7a5d07461443d709821400a11e5792424927cc1921c81c39e58cf4c99cf78e0303b00de814356c6868cc06e74d4e4a8c1517344be603c451cc9b32a19008719ccce7cde09922f98cd8da03cdf42d35589664a0184082034001cb27223c9974a4423e5398bc8975ae711f9525f3ac9a59304d049368a642e1c662d38fc86c03570d8992acd20f9526d28d144922f34003b00d811628725680587ac2f081c7e2a3470d893f6d4c8173a94c94c17bda13c72651e08fc034e4a016bb20f3864f5806760146c8344becca42424bf31632199b1d0504ea25450248a040b593e9c704041092a222a2a2a22ba3766194764967164c70740af1e2060ac736fe7f70cf5f4f40ce59861c80c83d2d022148a2c9f438d501b8a821fdb1bcb636fec8dbdb13c2f6ecc318c5e5c9963181d91414629a90c306014bdb89d4f94ac8d929292b561dd985dbc5cbc7e9890e591cca119349d7072327d300cc330acc58db925736b1a99389306b367ee4c9d6903172d3a6f580f3684f5cc19330b25164a4b729845e60c1d58ac2459de603cd80d76336f3224b3c9105116928e8ab6c0820516cab2f3aa62b556cc26c79cda49dde6e92004f54ffbf41056ab3e429484888828498e59a5ea225dd351e8344edfb40a52298ceabcd59ea19e9e9ea13cef1dc9ec1d2199616629091abe0fd71b9e7a536fea0d4f9ea79f1fa02714110945c1f370773b734ad5464949a9dae469923839f2063e3c47240e380e13252122224ab2b4540779236b24cd1d3a673d433d3d3d43797eab441149e4421224232fdc4c572633298f7c89acef9bf426ec99698d1a4264f92944936700a6c52c9d37132773323319ceda7809752693c97459f8fa332d13d62c3f516e4e6af20cad15dd19be10cc926381df63b556d8ccc6f762013d93892fb648aecc8735cb74ca7c89a07cbd0588a07c9c2e03c414593f3b2bd42289a33bc31752997a9a2b0e87648a35991c6510c180943078c316512cbde931da39ce7b8663e215598ad4c3faaeebba6e5ec3d445f7852fc61899bd8befe1186984157bdabd9b5e6f9885f55e96634c093d1c336fb4ec141061bcfad3a9d6572e37c6b5bbd16bba008eb10c1928283366f4d0830f3e80604aca0f3f0001040d1a2a2a4104b1b2c2c222040002506388215ebc754fcebaadd535e9dbe2a95b72efa68e5deff73677b30be072b7f7bee2d857fb9d5c7b30a6af1c193272745050748ecc987164a7871e76787cf081a707047b7c52527c5e3ffcf0fa0102881f201a34808254548284820842686865e51811cb591e368644882200bc1e330ac0510da4212e04120014e50018d5381a0229d763492d495c4a3604d092e44a624349002d0470c39aed6d5cd70dbb6cdf7287b86149b6af710370c317d91e0037bcd95e881bcec8f62c77e5862ad93e881b0a91ed556e3844b6a7714301647b206e38806cffc30de313b27dca0de314d91ebc61a442b6f7e186918a6cdfc30d6316b2fd8c1ba2dc307e21dbcbb8611443b6c7378c64c8f631aa4415fb7bb3a862ffcb4515fb18f78b2af630ee2aaad8bfb8aca8627f724fa28a7deb3eaad8b32e4a54b137b96054b15f5d1a51c5bee4b24415fbd4ad1155ecbd6b23aad8639788a8629fdd1b45181155ec4df788a862af5d1f51c57ebb0c882af62c6e1251c5dabbb84a449538c537f366ca71c14c20ab4596fde0e128afe4f8b394246fb4d21f1ad44a2abd30775aa0ecab9e360ac0df88b24531a57265882e698498522f4346aba552e550166d399445ae29d329f531b4f1bda60c7d3568445f2052ae8fef90be5016b584985256924515cf22a997d46993abcc74cdef63b15e3f79a0891da36ceda0f65366be64be39e9949932260f67d0a4427b6132343235a8c12ad429350731a55e094c3a0e4e58717c40842f094f78ac383527aad479b4c3835cbf94e448ac5a83bc30c599c03a42ae3508b1e24495ba86cf3eac91b7b8001f253c10e18127636fec8df530d2b73e4b4639362b75f999acd7e1a0af067fa64c0d7d75cbcca4892e514497194818c81af9822dc9214829240e6ab2b5967b0d24e6bc2d7a931676ad8549810412b8e2f8ecfcf4d497c9b56f9a8976ecb4c54db4164d78da293635cca3b7f4d6de3e521bfe287990d45357bd6becebb1255b5363ed12ed72a4505cc96d748b2a75d6d0f62d12d1a912ef9eb2f4aee7ddcebb9c7737ef9abcab7937f3aef52e4654bd4b65cdccde6d8f05a6d160bfa491682c38f9995e23bad0d7b344170c9432576225d98703404d41857d3844aedfa83db5db4d9296743a3e533754734a66e4e843d61ed2882fd9585ce4b8db5d0e8a0204e57e79bba72c8d4415d34f79bb9e9297b7db0d7579bbdc0e97b7bbcd225bdeaee9c894b7abfd6879bb59e3d8259bb78b116179bb95e752591355660612554cbfd1464415d3ed8c12554ce7e4278d8a34d83c3b0d56aed5e1987346a6e6549de8f2bdbefa20baa0a19621b670f2a58fd43a9b0ed90d7da4da737fd1f1e06eb9d05adb6db5567f3746b6faf6b678b29e1b36cf9499295527579c211ca006e9f0f5b38753a68fea90e8631fa5f8e7155d9e105dbc57a0985326b3d77dfb1e0ffaceb2a8d5f4d6a0a006a9d7e1c82a0ea5ae04bccadc487c3ceca11e0f3b080148d44f99e94a00ae3838823efe1e2c1602be0f091c3ba576c5a93962f85ab43dea35411fc344c6363a7cf6a6871567b31c0d42338dadec15e7b6b287606e651bae400dd68a131423937276acc341bf297df5f4457fbac5645f616298c831aaa8ba1e298a6d8fa01dcda36ffbd6d21b73c2de0495464264f8012215bbad9a75ec1a2b845c2f8bfac52aca9505d3ee66b128718b66dbb7958811edc414b688b2c922bd4483b57e462c69229db9e9d634b6177fa3e7125165fb46bd7f33a5d64f080cb7bc7afc6ecc94aafa4909b952b99294bc32d7daa9e19bdfb0afbe6cf4ac562b95ea29d553aaa7ec4b56a7abd3d5e957efbcf0612beec64cf5d93dab155e3dd53bd125f258ad5658d513a8a7504fa29e453d8fba14c75d1cdce9672ac5aa6046a3caa457a5faf671a74e07e569900524815edddd5d1abea4d466c2c9249f6e41cdd70467cdcc803ea1c9229a2f9ae09149d157e3cafc8d39e794b912f3a92f65b1e6245092a442744597d3bf7a095792a492402a09a47a8852015d2028aac79cb20a3f1ed5f5b057adaefa4a857f9c545f9d54b8a5fa4a95c2a82b6b1a8c9d924aa552a994b4e16eb4d13274e6fa9a7993baeae1a441ae57e1d860d743f5548dcdbc892e91870a67ac66e99ddee99d68f3ea96d58d7c2bece149386b7c4aaecddcc531cf2a798b78a3721c7765c9b59d8e9997882ad2266f9dcdf6c22179e2691355ea69cb7409e6ebed595c19534a9eb56cf62d4a1ea24a1e6a98514949c9634eb9a4e4114b9b064f48b9feab47d5a41ef625dd8e94ba99c8af67fac866c2a5ae902cab9092d4e6296a243daef65142be34116a501b215a91b35c827be7e88bd105eb6957cbcc94faecf501b18426d1ac611de99c4aa7cdacb182045a3d85696d999e691a2cdf28c23a394ac9518f5d8e59336fa64db7a4706bf5d4ace996d6aa8fe4fa2628584b502d53c4a6658cb44c4ecb1c69199ead447eb1eb9192a74f83dd3495bee46147914b56a732334d135d3a1eab53da46481121be7c443bd145f57a12fa58257775290baee4d67ca39ef57d5dd2255dd2e177674d83d839287cf5a104ca15ffc0aefdc7ea41644ecda7ce5d996550b7582c058b57ae5e7597882af5f3ae210db91e45e3034f2658dab0c046b29cef088be73e9bc96c194daae761ef347b1dd64054a9e764963fd1c58473683888cc2e28866712aa0970832d76531a34a337a3ad797b2ca311062102e6ecda0d93c8f560a7c3872c83d02cafdd7aaad1e82284e21605431a6960614a160a84d7fcb3cc3a9ee7bb9ed6cac93ae71b0975d8c95feed820c7715c9e51c58a872c79b2e0d97dea178d3032ed13b9421f51e8fb45505e6e5ca10f25145986444196f8f3f592c6b84d56cb28b39e11c41ea7cbc613ec3158d831ec2477bf6395a2d6539ef44d2b6d23be9e950fcc5f22bebf90fb15854deedc58064439a4b9c76045c6c0d72257312746e485298ce18a298c810e79d5a09cc218d090575f970025cad9623f27f66d727d9b9d7eb396abb43b00915c11106997a3bb55411e4de567af618a2f1ce56f0aa2a51ccfc5557e01b6d8c3171fed8612be0bc3b7c50e0c1fd62d3ffa5bd7bdce3abfd4b76c666c36c7e1509ab27bc761f6ee37667689ec5cb169db63a88685b4c8da63e83ff023fbdce8468f7dcb9e7dcb708c869252a6ee762044764e323946950f8715cf6f73fb69abdf1e4aae7e7bddb09998872b60547f82c6c24041044685e34cc166cc8c91a18e98636caec768376f0e7a13677a76204476f2c4b28985b4c8dec3994d4cf54cfb9d5385e1180f4b1185eaabd56ab55aad562b954aa552a9543f810d18d587a8f03753e46ab55aad56ab9fc006cc0ab33aa24fdef4983b29a511d174ce1412d9c9dcb7badd1ffdd60e2dcf29afc812ab43c670a8e10c4ba17aab7096a9076cc6ee650ccf1e8d5b1689d68e2cd303b119c34266e354a39ed8bee99a73ce1885082315391eb3d6da1885b0df361c32914d16c3300cc3304cd3281339d486d45aabb5d65a6b2d7d8c292108e69cb31f638af645610203c59c73ce39677737f6211543d1af94523ac410a11339d46e8a01d03e89e450e331718c4268979d0e994d9387cca66cd2b0eb04762886a838c10c3e80821bb2a00322983a8488145e30811d8060831f94400b3073ce89a1c070104c38ce5a6badb5fe043660eaa170227b142630500cc1acb5d65afb13d880b187c209130e7270041ac4c00956c0817122c3ac99223f2412e9e0018a21232ee4210830df4c915996655996659642f135866118866158c550c44ec1d94c9173ce39e7fc096cc04c0c05263287d85e0561db6208a494524a8982d2097df46144e263a6c8974caebc58363e968d0e5feddc32aad496730e5bccdb0947444191605491510587c481d2f9fa61d6208e54b69452887e3b4dfa7e4885c8de21e9ad4fb6c7e8198ee4ec186561616161d9628c99065f8ccc356268a69143960fb182bed879d28794521a14d322c5ba1edd0eec9623a2218402f49a2c7dc11cf3d849748b44ede0fb7c4a96f807f6cc763ce803a8d2a8d4eb174c83a053866604000000048315000030100c864342d15014c8c266db0114800d8ca44c5a581d49c4248581c8186390410040060000000000a00100a2434aa49803dec163596551263f045bd048b77b22bbc8f18c7274931f022d34a4db3d114317369b41bc687dec439ffbec14ad6dfa14c16077b447eb66dc0adcbc3f34fe876ad68b5671bc417f81d2fdc8ca697e4a677e6b3a67b5c8c132aa784d6799402f6036e441af6b2bfd20c9ed7632c86cfdf906f7650874883bf627a9a3a3bace0588151354467ac3dfc97b9121c7374147c5c26f1a957984f69c84d4cc63908fd93f0c43b0aa856bf483fc79e0497f6d0700b77a67bf8380110f801fec7f7e382c5964ea5cb90dc141116c391fcea54f9cd3c26d5a591d6b8c4af38306b71265569868e2e613717ec710c79b3ec5f9d2899e1abf6a03c49a4e16887c29bca660ec90b7e393a76097b4667c0d479bd6ac9dfc5d7a17e7af1de3d4e7974c10739e32b7fff4251cd75a339a3fe6d3de77c69e54c26c482810c2b4854f2012953cc8bb10b980f382ecc4beb6c0fb767bbde86ff37e228b4d7b048cc66032273b9c0e901c35d2ca72358bb64f8d2f8c0300249e5f643d4f57f0f8be165c02bf39a917e8e2a5785368fb25074aba3b7eb887297fa9d043dff25a3256d885ab8744e7e4c39fa9cc21011478bef46d6412dadcb85a80c6c3946004580daf2ff4d5070c779bde7bb1bd3cc5ac7b3eedbb96c18e90de048104153ea294a9adfe4784a6db38663b0bf744bbaf2cf464f36c61f7aa423971356ca466dd6f1058140f28b657573bb028757e2acd5823ec12f5e7d689b3a9d0010451224a7a2b5b393a5b6c17a47a0571d000c05594d234ba5eed45d24357d53824c13738764e6882ae91ca058cb2b6cb7220bcfbd0c093be86dfd52815730318b1f0181ef185211e2d908eef68e865465031a256ac7293e20e9b69c27d7ef59325ce057e821730f844c4b804acbfce71ae4388aa289b43b1ab8bb9872c24fe735dbd19cbf032ea1fa6f306c7fa1d9952441f2360624732ca2140120c81a9cc6c59a2001bb3748e43c02fc2c768b35f49ee1f3d9b233fa22e8206e1caa7bb4e50caaf748406e3925fa9086d2b303dce8028e3d6063993f5f5ee1de12d3d4e85506ebfb7c16fad406633fcfec473a25df1adc425582fd8c1e633243c70a52d864067eff303e089887a0d1524d6ee145cebf717fd0d05a9060253853ac3d798dad34a0bb8d94b27bdd6de58903acf0b6359c01d0bf4771ca400c42689c4adb9d2a15d6cbdcc540fe3a11540e9d701f60a22bd047be2e2d2b49de4023e34941d4d57cf908a5ad3205b32f3307906fb195f0902edccc7b54412347f11051ff230a1876f1f84653cf0ad9665ec6680687bca895609b0bc2bebecafd2095b9b6ef6a48e01423f0f0b866e692c6a63c55bd18a1fd26781290ddcc8733b237a240f4aa6dd0339cb347a71a95387db2c3414944c118f98a792e61fb1a883a8bfa82161705befd2d2e775ae544283e8b90d5d8f8504173440cda451935e72581ea3d8e4db6762f8b3cea852cbbc0b0e391aa6edc9c559c2cc843ecc91c4aeb8d48440dba0ea0920d3d2d21d646d035c9b1450312a1ce4dc46ef256e854762432393c544c2ad9487d506956cff1db2eb43bc70c6fb1912dcc5d97836e02e169e2ee71bd677ebc9b2646561bc320008527852a3dc9e77e97f32ccbc2c3db393e9b4de3bf0d3be7a1c54b8ce167363b5b1a71174af17b8c6ad35a38bd509b376a977d0d9d3485f13a5d5d2ede8e551bbd0375c70c61f4ffb76e61a5df4aaa7e6642002627422f31b6e5f16d545af3cad678a38fec1f9fe942e0ffba7a3df930083d35f58a4e2847ecb2e6e8ea573ba5ceca76667113fbf9e46a17ad84406ee79ba84150b2108ada97f5e6467e5f0e77b6af0620b4d94148720859109dbc6a1ec465ad5b3de3848efcf35ea5d31293fa5b236a6187b3592a95f86b8817a4f35a6397117a0a3535581deba78e9fc70f54e0209846ffedca64f79aa6eeed426d70bbff91cffe11537b9834ca1dcfa4b0e9ed85017d61ebaaad64a8fd003b4adf50a813039bad931567cbe5c8559854afff8f781f621086de07c4eb05152923764693a4d264ac8f9612cdda9f4cd708d456a46181f07842f424c33bf9c7b817f4fbde0ee4fbb519b4e78135828211caef909315a51406407f9ceadd3e970d1534a8e12db747eb047aa3de756fc68fa9793ead196ff0e1264f02c0a531a43a2949fcc3f1e8ec7f908ea74efb05e9b65410af9127a92ee89696043a6ba4c06f00d1a7dd2209dd410b9dcd234608314b79e2398825937f99c86aa550b82989036c099c4a576a164ffdd534fd1bc7dd16cc7fec7f2448060ce07fe2539893a557cd8bc08c319067b16c10403fdb97344249e66317c46132192e6713072449f34281ff8e2d099a2f9bc46be95a430bdf3cc49afd1436a01d9a827df9e4e2d9a00b7c1483b067f2bf3dd0ef2711f4279f07de0096765381c6684b7aca9f91301c5901c5c0f085a97c5b042c604a7922bc02f0391f74142bf016d96b375a3dfe6259fe390f17a282691f4a61b340e3c6ec96a6685e9b90783efbe253416503a63e35b103c4a066d7d9db95884de4bfc1befabbdc7987d4ca28078a9a8b5e36f77b266977dae393eaef23a45d6463bcbf98d7242c13fb3d853f497a3ebdb7858c65c934c8893a6395ca10e619b6a7d7b07303d4bf96102924b9b55221102bc18d0ce5664c6834f9881256177d2f5aa66617cc5709235681f33fdcf4b3f3ffa73e85748283bf02f4b1e5c70807dfc99173de97cc90e0a0c4621f0c37867c158c8a1e21ca9c31f188203814fcda3250e1ab8c6794a751de0d0d6a2c138ca5ea085b2ee2dee3c050c5096b7e0c2e0753e650df27b961e8c278fb8aab9db01653c951698c3a0a346d7b019e22cf35e71d6b045fa90dd469ef0f6648c5653092b13752be879b9ab17168d00b7b557483d2439821c0b7ace12667901ee62509cf8052b606d39c88f2cbaf25bf91824ea1e718c2e37e86481ce68183118c7b35fda17a98c07a2d6e8f5908a8de990d42aecbd87ea3b1b8a5608cc1f7ed049a4da593df9bbd7664b7e525fdd6b969c649faacbc978f7675c1604709752b9ce927f9ee2b058eede7ec391b7a75edee860ebeafc1bf988633caeba694ebfffd1c9eca4bd093ae2dd8424ea8b3a1f518fc50225dc0c263e6c17227d1f0e3e643a6d36d24de0ddc9b0859db26b8a72a1df9c96da8e027c770c61648ae187b950b33ea1bf25ba7c2177c58c69923c6f2d079f4e81364922d0697e0b2b3323cf5172e740b056f2fdc0029aa4df2e323a854a13d49068b2434ad293cc51a58974b0ced84f734624680a9685df905c3eafb459c6dde38fba7b0a0f5020741b4d9cc2a566c94596bf26d6ce4fa66ec8e99c936fb0116a3d48f747af56a64e093f82cef823d5a2930a92da2e485a4dd753adc6adb2783038177e18af2289a7eeb67c3ce19ee63dbec8a5c75b823d8e2a3f45533f6cf0d4c08318fe4cc89e82d6aa3ee87bc7f85caffa787d53aa0e0eee7964c59a35113705eccd94a69002e8f9b3b742300e9ad9e4be81d04083dd398560e261c5a045b4572652b893ca1a844917f3c6d27f12b6067867e318b88f890c2149280365eddcd4175b31a4c8c7373ee1b05331428633ae83deeb8dedc4f4053690b0a4be03a2f34b5639455aa26d5f0cf7d38291dbe1e2ebf128741a9863fe8bbc656c86c2f68ceb3d8c0fdfd86019b73a94dacc76631a7b1708ab3a81256e1dd188c23956070d03d3fcb761ed6125ea0e72e003fd784d0bf26fc63d13475f4368afad69ba08102ed6ffb1ff2c3226680db78a076e0c49e3de587865ef1d1f0a9579944282f8a56fa66e232774b0d2c79b688461bdc5c1090717a0209f250b4445b5135319a3e2281cf697b7e028b2c16b3cd5afadccf133ec0e8615ea3c2437e5d8c825543eb248055bbb7a0dc1dcf296a36d8d83bd46a7e3af6e7d66d7bd185f74631b97055ea4a7e0c29a4615ec008bf6e235721ab7c1ac34137861892fa4a1efe82004621fee7520c5d2c0c5595d98a6b08f05722f0bce39cf087a3d9943b8e5b7177581bea72173c52c3746aa4049aaea0df0ea4e3e23e706044adc179aa568d026c6662bbf862044086d6cc709ffda8c0b456852e237df10309d401261696ebbbdbf0a17b102f3584a013d6bf2b85c6003b364818999057f41270bd36d7051e653bb319c94998f47f7d76bb0b0d8ff9591e2e72f8d06911d1b0895b93e48d210690c2ca50578f353479513e87eb36e1c978476df74e91137b5c40b089cdb4a0fde110a35c081ac11e16438c2735862f71a472aba5102796bf8ab7411e1c2123ebb73a40e55fba155d857f0b2339450a374fee7111b48a27f9868b81bfa1ac3f16b045a880e3d7762d05559c901869fb65b9c54dbcf28d0d2dee531502115baac4fbd95b00bb4bbf109380c034ea9949f8478d8f8bcd5c37b9807b0be6db74767442a7fec36f2551312fea90dd71f9bf238608614cd6815552cf9f032ad8376c70429987a9ba03c4152c5d16a7b9c05912c04743141a93417015738c186822605c0e1d32c70fd944d057f2aa44313461fbec939bb6f81011ba6f12d254fdd520b1fb217832ac5fe1d7db1c97edd488836f7af9327820f83a7150473470bafa6817fa4235a308052ca0bd9e1c3d42b1d0ebde34605832b9181693c138493e291c7ceba34a9a232d4d3821d2eac18588284d27d4979f6daa68a9eb04c21f0685784f9305512a4b159d09ff572f707fd0442e74faf9aea3a2e623f35d4567d63e0cbec08490312216b067298e6c71b475ad3307b5e21e59f11e1c1218709065345ada578a2332ee90f786d8ad37f56c7049cd337bcabd00d3772ebc8ceef87ae42b043cad6f52688de3cbc1c80b4dacfd75035fd1b67ca22d195192a61c19d31f0f513c28857efdb4c5e0b1434832c610b7cdce35d74a9b48ef1e7bccb0ef272f2c99e3b82097454054e8e885de84e96986291a7cb27e2f588d1890823c09c0dd0bb1a1498a74136d58e3c173317b7d47bef584a570d3876397b10856403bad7c8676b134212c8dd3e2dbef017f399c6c21b2c8f75e28cf81afa7386a9596766c67c560262adaf010524c85739f3a12b0ab824a0b57c3d4c6cdd83d94e091ff98629fd2ba8a0635549728ffa7ffe666a8d948cf927fab28596a9b9bd3705cea6dfd7d1566f35ab23466032755aa2ef737b9ed372641ee6cfff9bb26cd5394b602c8c1877628cb7ba7a10cd653b26d9fd7510541efd1fa79ab17ffdb098e7598b6a444b4ffe1c3042a61f270ee32b2a941bb75d9dd64d0a6fafff0043a5db8c174da261c86f47ba2d35e0a2d9df17ecc0496f03e8a1b971ef220653ee8dbb09a3f529335b888f208d5eb54e167643d403948ee8f9fccdf87ca9de93ad43ec4098d5797ad2b19d3ea76d8b27cb0c825fd6ddb1f9aef29c16cda3e472848eac447d164e744437a2b463c5e8aefadab6a42a3a8cc5715cd11e02f92ff08fe9fae5fabb9f54b7c4f72b31e4e89300f86c7251126d050500e56ca9635a2086c52974d9503d72052d9958d7e3af56ce1161646c1685658a32928ea99684f3ea43d7260d5ed28dbe4a4a6afe1ce156a01c0e09c210945a07a3fa2a47e27c57729b9b97f158c578b9013c680e69726422e0a09800d1b5f1cc76b791aa4e1276dc639b27ffa1d0cc6b6175507c5144d0d765c31532c656c40de0a1341b5e3bcca274e23647d6a4c2cb0f0bfb238534fe3f0ee462ed9b89a5bd07149e10bf3264d5247c0e31a26cb84923d79b1f8564a7d39251009dce68732dc26b64b3563f0060d9764d0ac31204fcd777abc3b5b141020f70cdf15c36f305d76c7975c807a9b0f163b92cabd8689a819fd0a1ec83f2b99d3e8d1fe2de2dc81649b7298285f678b7cf16ec219c230181d2a905c1441826a31ee57801130b1a04c30a39c73a333b4c470f1e2702c9234fa35935a80b4ac88a8d8efee4f1811d4383191a787659868a6132dcf47f95830774922612ce354b56e934837bec7553b50d5120c9ce0c1232dc1e08ee208c87ddcca3363988512fcf0326c9fdf530d0de1ef0531974e6e0f54c6e10ed8b9fc558fd78023b8a8a11417057f2a08ced6d365fa474751e7144bed1f26f58126b670c8da594c3b3794ea8d25d211e4199074b9da034708b737e509d1ed06d2fbc2b2154410c04ab7aa1d4b91085401f20cf289be4d7f6ecb3db9cce68c939d9f110e2a9ed3605f696b4ad96ece7d2094398ce3dd6e7f90b2ad695293e1b679ca274d1a49214fa910684b8b39651dd5e9ea51a5aa5911730f94b31d236858a4cf615430ae9b729b90bc27dc279713d302144fe59e516999e9d543e664db437e5919b02d7ea5fd4ef6b87cb41b01e09dce6d3cead246cc53b5089d01415ef90646c37cbed0e2e10ce9c5f888454b7912bfb6b75e45ddf4ff0d98563156f101740f8ac1e36f0344aa8767497c2846a166b371f6d43fdc23ca1eaae6f1239c228af4f587835079e89afd5ead581b79fe6fea80e70c176d5fe3a9a92a822c3cf152fc0f6e5b609ab0f6c2588daf64777fa619a83e0f187916a9fa8a184096b2d8873b99fc62b37c0d6b3c0d8cbf774ab5ab99c7045c820dfc2ed7b528f1e1f9edeb3055c4842f1e680305529ceb364527c8eba1e3057102a0c5e47d74e5ca892d3e09d400c410cfc89cc8f2ec8413a6bb1de1e219677af0d24b1ff5c7f4e55f7f56bfe99076a303612fdd26fca31ffbf8fe811f1fb64d19eb289f5c000f8d86297460b3971a33f1c2c71ad4adc8a9c1c6a1428549c593a9925937fa0887bcca5d558019a663c9c897d505e294ad156f3ad1ddd757fa9ce1869e547d7035c25b85beea5c4e6576fe2b3834a388ce612fec9a56599344dd8f0cb144ca05be173f7d8becf3619c4a60670652dc654008a640d3a366b90e868ac72cdbac1b4b53568f305421e84ca171b8237cdad36340c8cf33018a0e55dccfdf3069a5be7e8bf81c29280f1c8e7117d55a098372b4d11e62f0482c457f3361042bed6f24883e9f2a9fbb5152fe61498d981d3cece5771214791484de006172e8e043d459062bd6f979afdaa3cf6b734b8a71dd30f7fa31c05a8a247ee34f63867d0fcc23b4dcb33fc39e5462061c3a1f8730227faf446545e2b08dd63efa755701ebf99c2502aca0738721a789f7dfb899e959c7f7d7401fc20cc6bbe1b0a258e3e99a1964e52b2a004cb988cb059f1250acc08314e8c7dc83c872c7cbaaadb6559a147d04f405bceec2ff10c65b270c50c97c71de66852f819ee0e403164c13c52464130f786d28f4b6adabd80f3424f5112fca35d42854698fb7c9b8bc0b7ab3ae6a9b66b6f42c5e6563994d6af8c2efcb73a3843c01647d178a1c8556830b5ebb572c6eb193fb689e60b4d32290c7815905d14b97b81694ca67d50654def3c035406ae780b3dcaeb6f5fd1390219bf74e933057d0febd4e6f7c29c2a5e1baf156062bf8fb95ba68eef3c1f162020afa335cb7f486f746e193e1e448c7f26203b9b418979943e088a50dcfbf00895581e7fbb27d6d2a05b53a08e98584da3dab988c9eff49733032fc74b5a7093416844e4196ff45c0fa672412b7d0896b682956116152cd09c6cb959f327447326851ddb0123a9c49096c499a0b01997f6199e55d29ed6698751c799dcdc0b0e05e55ee801e2029921321a7fcddb767ea9cd884801e571c7241a0067e5bba362cb1ce78ecea535295e1fcd12a8a0f24fedfd18886ebd0e27e5d69c260dce4378ead69ecc621af02c1f3b92bc0118a3758142d70a75ce3afc5b8ef64128e882e7cb768a3433d64853498702e1ab16d950a7e71d63bde52e9279141c68f08f6e9ff758c6ec8801a0b6dce87b120c21449a92d36eef8977316a7518825c8506537bbdb6511864291cec4a87c335c20a7ee19be9f0c612c4c4f6aec611f3354e61922dee936e9665325e6d8a36dc502dcc86c00b1b9748c61ab79e082513e41406da9d279a134e0c0a33506811a1208c78088cdf51149e6f7ecd5c0058dfa0e4a3a6f0ac2e25362094a42d0c0c97a650222bfd55467da601eb32888a99a5b9ac1dccec799c4f82737a613796f8abe98202819cf39266be364d0258d553dcdc1b4167d330d8249651dbc5b6d21a1b902b03ad054d26973d070b606641e2efe4ac33bb1fbc219b145d6c46e8987204080ddb83c0f227ac3bc79e0bf0b16434a963d37b49bc0e9ef3e75d5afdf9eb85d5b26c4306845d40b4c74fd645419e0f50c3335697c05ddc05491079316848ca9cecd77629cdbb0229757f07f4c0bd594ed4086e38c6165905fc2a4caeffa88ae27680dd01bb46a7d80be5a839961a56e1e3d26992501b4202af761cc41686d133cc9efbbde7e35affc37a92c5fdd3d5f7a22571a78c8e52a63e2c97e957732235f066247d29313fa2ece8eee775c3b4596f4dac091873f69866b1af4c0ee97a1803c807c3025c54d0c367203702ef613f861a9380719c72d236197bf072a81f36fae0d40b2bb627469f943d622311d54328f2aa1c244e4320cd4fb871bdfbff5cab747d905bfec623a977ad3706ef66cb74c57d56e48469d8d52110a9d02d91ab3a48eb9af3813fd252322bf1725f9c966cfa04d17f4316cfa8b20023f303d5c445a29c239f7f4d09e7230de9d60c2230d083c880f8dac76a029e8df5ae1debabd8874d3cd195fdf585a1e770cb8c18c52a5631c5544cb115536cc514abd8c52846318a2986628ba998622aa618c538627889d12d0292473defb72664856f484dfa4958a0fc65b02d937f998969a59bd1b4eeb294bbd34191343bf36d28cf68b1627ab01aedc07967b441874b6fc2460277eee6a4222b146a8b0291bb18c0e571a8118eff0d6f95994b05eb4951222476dfd221144f1fa64109c294c11749729d061527f0e5f8c1bdf7a754641cfb7261a34eb4b4c55cbae41db16a23095f050523c7deac1628f8c9b0dba8a96f18edc4ee2485384fe2a7b5fc6cad4fa6356c7379a0ed27b516af2d9a2e1005180335cc724db98e7d34336a6fd484b3f5934bce143903383afc5d8bedfd3089c949b8c5939aba6f42175d47064481bf73bc429377e4b197cf1e21917acc6f1d5fda792388d4c85ff6c0ffec61ff7e392c88a631a42bd520826d3f585e7ea254fed86a5c41d45eff00aef49d021903e2218906b314af00a0289241a476ffdbfea2203a14bf4204fe160efdb5b730ba067c01f04bc62052df7fd8affeb22bfef9ebae203adebf1084cf20e2ea7f3ab4fed949ff70ebae203ae8bf9c1d31f0cebea2534602220e211385f41b1b41c4a3ffa27c471095fa75a34f48e8a6190ea95514c52fe88a8e497fdfc35bd0b7205251feb31ffcb973ffffe50982e808999d48dc41c44dd8fbb0dae11eb74f9b04112fbb87e640215510ae219d02111c71049959241944fc1c92f0f8c520ca34784fa24dec581b3b47fb777436d525888e19a0723b88a6a5f17627870b22d8e3d3e5a9a0340e27114447f34d26e04afcb1cfd32ee02062851aaaa642b8b7d452c4612cdae503fd2b4904e4965aaeef74065f390cb41096e5f50c5f7b9714cea3f540d0434751d58444b754ec58b709921ed247403fba2934dedb90eda09329005ca8d9321da78153cbc9733a72db4fc5a0d6baa82f9d2a76e735dba47704841cfdf0c1d075c45161ac9414dbe41739ed4408759b533178a63548f064e4a0d9caa3abd30b8367648385dce5e6e7232834720086748cea3ca640423a6dfc6393be302c4b167c8eaf325ffec9c1f6140cde744d08fd98396f76ef28e9f5cae08dd068219739f96904228c1e882189aa86a72198800ecdc30950471a71364133a41ff837b1d07385b814fba9e2ddd8891c7433d3212f7701b916cbd4dde8f2a45c13946fc76a189794d7e931316af28b9a6dcdd54d230194c41399f43123d33b33b4eae9c17f7016f3d7eca6f52184c2a8269fd2e1b28b668b01332fb92bed7e8a8595c315c8183b1ea99056c718d6b7c82d60569f6b0479c50660c629994faaee8885a2313ae4da7d0a510bac1d789f8bd23c0b7fec60d22148994b322ba76d7575711e64e189e5476473ccc19a521f164f83742b103968ef48f64b1b651f5f0b2543a6e40f890126c67138a361007e7c51107eb3b0ae1ce0daaca20d0ce896ce84e07d0195aaabc6d752acfca3371c21a708ac240ef2819d0418db3f82fcda24041c2a2411f0ef20e2d06800d1b438d8018416c004fea10b08294c8070a771cc61a7d3fe50551c0e0ca0ea358e1f938b00e4f70f0e033145013847b2ff4e89bd914ac6e1c1ffbdd6e330900cf5dfbd7be6c7208dbb7ff50e3208b0c0939e59c019fc2d66102325b2ffa614781fd4a2a6aa03fe4e3a8800827bff17fb8daee07b66b0fda927436b0f84f0e7cc42367112fa29fbcf8f0c75aef937d11f4c07fafe7380219b38167ecaf6e7ef4339f7fb2fa080701a90e4e81484b4f70fed1f6a3aeddf2c656868798686ce008ae8b22bb13f8a694bee34bb8f212a614d9fdaddf45704538cfea7ad075b4a57ccbc43ff8977df4615e7239563e40acf313f4e83efdb788954bed0ff93bffd3dc8cddbe77e112c6f36331f89c12da6520d880b78221eefa7c317e21f18a120614f0bb91528063f2f8676ec1cfee4b394069829b03f7f3a59319bc8d32d647b14654ff32741bb0d1a94fdfb0086a1b50d76db16e8dee2d9903edb28090f645ab8a832481b81223d98a465bcfaadac9e369d36aaa8980cbf3668dfa9599ac80ef90e72e7e90f66f159dbfcd399aed240ee88483d19ef76553ffb81dc1a1ead13e25fd5f4258b5d7909677acc61e9e01a34fb9a0d4627c479add94916baf224c8f59cd3b2d35568fe373bc1fc901f5efccd204779f97b8b5e461edef4f2691ac68323954bf748b91c5a3c86c339b5710e966f6bea5d55486393c1bc178fe0dd7a1fb2df1b3790fc4edcec4c4fe366b75a8d382b4d3224d4381471a141ca9386188fba5cdafffc787318bc6b9f043353c792224919291aa66f969d9912651b0a517580a6fe01c1eeb6d834b0d3e9dd5603d3b0d7f56f436b7d3b1171b5786f7d487701dc20c8203699cf3f82d39a3ae6c7b1fbd0ee4c7fe6cc7a91b8af57d9345b31443cae2a870fe8e0be2db45adc5645fc175b9eea0220ed39149afe87781a9360c3c452f4c31a11252e209c72151a43e09479289531ea3545d89412877d5f18ad4c0876eb50266898db2aeae38d31cc96b50ec43ab265a196ac7c7c2cc20f9c89062d37ed5b4503197fd18c4565b8d772151063bdc604c7e835171b5a3e2d1428eb5f42a0814284d2ea5faf28b8f0a8bf59db3fa34d370d01687a21dac04b007ceffa1c20ec34f948d74d4fdc40c7406459298101f2a4bd8880f74e417ef22455a10428fe03f0fb02b8444cd04c3f806b02b61c509c22bca476722f3d07502ed959ee4e51aebd31d0aa896e8beee66cbac4739d82ffa083903530f3c1878c8affaf97f60fe44b42326a3160a6313bb844a18c7436fe872fd5b02872baafbf486c2dc62f04790a65b6e11424c25be826d8d480782949d01bd9e10601c2443dacd9f3cf5bd87d40f95e73e4278b35ea970dffe457c0c5d93f2279e329464ed6242e3a91a994dfa431b22237ee50764fc61acc3d61e0bed28ea370efca89dcba62ed42f0c8dcb1adb23e4f7dd54afda553b0eebaf112bebdebc2a06088162d758328941d24b2b9382e9c90495bd171fe43811ea5b89ae79294c0cee892f71b508b80f072305ad47a16cb169678a1ffe019a7d771d055bcb2808c516d381cb16a353a094d241aa7509d3e13bddf1623d0e6732cf4aef3924ce7f6dd0b259269404a49f9a4a5ddb4b6adfb85365553d7ac3bc024469e8ca0cd09489cd4149d32dca622f504301ea46819e1c64933c722c69de298ac42f4b2a2147a2e08d43d4006ed080f141eea1013290f8744d9ce3b3c5344cb7b3984c92f9066c640c3b52ccd7e636806a718c455600e91acfeb9952a5e1a2535263bd9ba641a0690ec942aac39d5b8dec5c9d9670172ac8041fb0f836986d7b2302a81a506d026bbc20ef15f1110f98f5812be0f740c570a6a0ef64435d727c09a227777f7192ff93d8f0b5607ca1a3d204c6a91870c6cb2997d875872db304119843b6f702da10bc9dbf92ca3ae247631a0bf622e1c183cbc1850fe54fb42ca81010a1bba624d5b9ddb195b1c54de1865bdc60ea72ee13d23e34343fad4cf258ca26dd475b31ef2cf01c609ec19a162e53d30ef9d1609ec1cb5e1520749da3e467e127539060c940f234cd91e19420f36445b1ac9de1fbcbfb53a4720a65b8138c16622cff30f95cb65c55229d2c02b2f9756536507d9e5623a90cb852ae159ef08d92c2d809216d5acf67c4f4e87da13544b03e781ef935a36a7124215093e8faa943aa5579b5509a1b2e497472aa54ea9c566aa215491ecf36895aa577ab1998a102a487e7aa4520815123e1e5115c20a894fcf3715576a7542d116dd4b7e5c314524af71bba7eefd2f70c827fca87b98f87a11f300f15b7c4b89def817dfa5a2cffb79df52d1f7febcb784e87b1fef5d2a7abc9ff72f153defc77b4b8a9ef7e1bda5a2c7fb78ff52d1f37e26bca545bf94e89688ce524d7896887e49d12d2dbaa536e12d15fd25a2b344744b616aafd41b034ef37d686227a3f29571ef25dd928a221343d0a6b6c8fbe4eab55e46dc6dd5f49654365da0ac96deea3d461172f9c05b109af6e2e7cbe5aa7a47da17879d6b7c37e951f31d995fdbd2b657ba2a4d5456cca09aed62dfcff5aa7a0fbd1639195fb6c0490f32eb98f9d92cedbd4fc7a5a265c708a2c916f15fb9d0ebc0214f88d9c9e6dd6fb36b27a404d11a0443dee7ac3b05a3d2472db441ad1edf1a4f569a5ef23e3ccf8b48c049e2d5dd93608a01133f60b293f1b7da84026466e99efb99851422800666522c869bd97871ef5d33d735ac21404929c26d6b0dc148b56ba0089e4cf065ef1532ac249e062a5b0c0e795dd80b04a5f9e46dd34cc183ea26a704d91a447f09b1b19beb450c3d6cd5a3cd91e512a9b6cb7b2cf8269e9c41b0d1945a1aa16e160a7159713d6a1bbe09e4d8e9f5bf9605401a0e85adaa205f58d7686ed473a961b234fdd9dcdd0b0b3f8540e63b43b9c996dac31c1adf2d4eb885e82791f95718c45f6388189fe249fd4d116d2e33bdf411fc0f1a8a225cc21683d7fa25cee46d97b8a27c1932e6fe6c36d51cc9acd0ff7f60b28f75c4d9b2f876e2fd7d9209eb38df6f7474c7f45eed5a80c64943d87518267d0ce07a3f3dc99623f88cd05ef823e45d2a69c525708d2689c65d91c26880cf7de31833f6898c0df93f90113f351e06d003efb3b6c3c8d856fb3e5a74bb7e78e98208a28ac7b17a70c12e9dacc5d44cd6a9b25b524960fed1001725b25cb24037fd4666bfb3f7ff0f3a0006db690432222e19cc2aad9e925264be69256e104bf9c27a2b8888906b175b11b5dccb04325298bb3b2fbabae789c7482c7f2cf0def2d2a9e399b8b68a7526bbf8690fa5cd4a5cdab5528aa9c057effccc35e33cb42bd97779f6f5a3c310f32cc66be32fb394990abb08aa650eb23c8b5f9aaeea7e229d849bf9cec9c323980106cf22c0ae73c4328cb4de2ff888adf8c2c394fa0139753cb946c60f00b3155f66330c7eac946f614c5cd9cf819694b21639162b3eae17d153feb44afef7a5a163f7db1ed2f962435c455740936bab787c7c3c4030d4c25bec6deb6bf416314693db80035b48cb6a65d907efdc70ef7d3b745b5172ce04932e25cd642aa60525233a608ca53813ec4613c175c407af81f86907b774220cf22738a5b88c0665b6a5cc4e812dc041f21cc581ec763f0731ad69ea42ebec6199d355a2b3b5b0f615cbc1ab0a5203833439db5e3de13390715bec6dcca6a19197dfd301dd163a9510c60d2140c501e82a9d4bb9f2116e5006b7767ad6c51ec06b35b064a9d4ef9bb0d4eb52ce8c037d8c4199d74d2da57cf6118d4179cf74f6dc67b6219903fa2a5343b71dd87c413a980a38cb413d08c906aaaf497c5260ca8c8634aab3033c41c3ce668fe3d4201420f54d4013f5aed8cd24d33347e6605def5437c7b9d12f21b71fac407c051178b4f1be8e706fba46ebe3568f9ab08394ebd8a3529c9fe995521545aec3eba1b40d55ce504af6c600119586b23813422fa99ca1e21121998a5ec4468b924f3d91533d5b3d79568940503811e7fd3fedd2c7f06ad6be33d7e083fd8b8e777e2f78b38c1cbacd7526820806e26ad82dde202a7b0c50cd3791a7b73d5bc346c57eeb36f7cd9c9aadb9482e5c32b5afd0f42d2194ae27bb46e119cd5c87e6897e08dd363392f5f0846c3f08add0b79a058cbeb5a9ebff8f18771468a64db87b7c7f73292aea2ef79955bd82c55b69a670be58366b8835d7c0756a30e164c4558fc85d2e331bec925e6b2d5ff42150a912cd1d27a396229deb6cd2066c965b3847663df1ca7d5a0217e47e93b155b9069a5a99f6cf33759aa914df42602a13d7beded9375067453170458d137aefd568c516e353d5dc9f93b585341454852db7d1082ee5bb2ca54eef2a6b8cc2180344e6da8078234610e74afb361ac1d41d979b79db78716fa85cacf1f1cdbf682e0dffd545de1056dfcb3488c2fc8992f89b8b6bef6e2e93593d97c82fbb70ea9a1aeb83f71d059cbd5ad148b15e27f66cd0280aa5eeba42151d88b88f3b64fe9a5dd237716960c91a55570294b80e0307d981fd604c35c743128d45c4b12030f52bb46b68edd984c0f6dbb4645e3d0bf0dc498cb28f2b0ed39ebb05a28daa6f20fb2f77739b4c5b73e2cd91d6966d44e90b99c6f1cc9b302de815ddaf593a7028f437adcaa13bee67164a9c2d3770aa50a55f349323c6553d464c7afd5a2cf750a0dd049ec4b438f885348c4883cd79b7f20eb9cfad335bcd96a583e0725adbd64d34c4d11cf01f56789e51cf654661827d66cc39ec3186f1e1f9a2159bc4e4724277a22315c92ce9d2f783c14b49679d724182ae08c8cd47c209ba0866e023485cfede23b335d4836e8f72a00e1051c9fdb5ce86aa291b87828604311af57386071a26e8e2797c15b31a9676361af73966780f53f945013a2a1d78e1390fb7152c604cf4352ab610471daf0fa1f1e53f010795d03089985a4b009aca9a5489c913a9d749fbac410ad7fbc86a1dce9cfa4c12a713c79f536c297521620136a835f142b362515cc1fccea1b3f2c324e4b5e56371b058ac6159e68d78b1f1859e02d247e09dd362cd875d9f5a48784ca1959e74c3ad498e51edc77b196f7030cd1193a40ff3088e85e6b85a958c1b052a47882ec676349b38fee0166ed5a6350ff21b221f630f886291b661af483909df9b8f75b651f36cbec279bc7b1b3eed1ca8f394e9b459cdbed9fe94be2a40e3ca36587eefde80f080bbf8ccc9134c24dbd11d7756c5d88b823c92bf4aa71c58055ff0661e827a880f91e584ce5300d481d337857805c6268548d684518f533290168a2f34913860edb99b1b5072a96099b7fe61f7f04f5abc49cc0b8974e9b4ae6596ceda0b552d30e83401784ce4dd3b9f2402f93edc0955bcaf96f5f5c3cef9974b452fb5a513e479fe87217278d92f66b20ced9b053df77375e1a2f505859b379d1f19f80152bbd961d5f1908dcb5e105af2350764977135e211518eded76f30cae95162e0dd3fd2e37aa619210a3d1b5e59aa8557f1446314560d3586cca9d7cfcf20e5ab0bd4f09fc900b983f7a15054fa6cb885274c6d97db97c40a92cfc87db081f453ae31017f72441a4657b19bffd4bb0e3e8075154678b83d4dbeca72afbe0d5e16abe407572c243c8b321fe4dcff44880b6061cd30dc7a6bd9893e3d87de90a95c79efd790f0abf887be57c2ba8b649bae574e9e3ba96a50e8e892922fa628522f57c461896cb60191541bed5dce58759c408cccaee6ca4af46a8907dc73b360c302367b6bb46086f72236d3171d5b5ad251a6573ebd0505f8406d976b0aab006e536b9c725dcb44b642cc8bc47ea4904cc98465ac4c71460857eecef7546862d37dbcdd8b44da28b450eef6b6e6e4e4255ca8864cc952a9b8130921ef6356d1ef62d76c5e3bc4e8ed21c2a02baa3216acc7db07aa60e61698cc43130b352c5c42bacb519374301a8a071483a0235067e0ca99e02b3a6811b24b4aabdb950a4852e02461b45763d769d483376c40d243b91fd0bef716893c9369efd6e574f02d6260e258d839b4d61c4b4cfe439c54dbd7d19e9007213178473ac5430b4c12e0d6810541b0e5dd9e0c1ba6066ee710d02e659b1b0e61da2987919f2b8d6c04722c699d444201c516a0ee3fcede3739e4ed524cc014849fd3e9cb374d1d4588b22b884da1983763376467aa287d0a5a5a5402c836fdbf52976c78e596f52d3a36cf5897f232923011364c8da9291c3618d0d20759f86d10529b799163b37fb0b22385b9ba075105371446bc64781deba25920782bdfe63a5a3ba780863ab6dc564fdfb7cc4f682dd723fdc39fac9907a73c57b0a22a1093320a367cd846dac106955b0502f8896068583c48d5df298404c4157265b9f789d79e217dfa3bdbf4e74404cf671ed5d478dc6678d31444f0f8805d01dee2e8913af18803953a63c0d861ac8642118c7db9991ac3ce4b981e382dc9520c1040d2fd46aec28797422253c496fb3bf540e8be92de4ea16a0185a78993590e02e06d39eb47323e261e09ae8bf549232800106a0bfebef7c8080280d868ac343b8015fd084a13067085c682e4c3dfff8b06f891d864f948a39744e1fa3c87d84c404cf533a9067d489a4180c5d1404d6ebdb51c675a2fe110ed8ff35406c079442b5cd7b46c8dd3a922730a9e1c1776371b84969f201ec4dd16a7bba214cee8493c7c15bea7219fd25ef00dc47e75332d748ba0d0990c9fa9b9f0d945b1c2189a012aa7ea35f8ec117e2d795c049a5adb9216f7d814609062655e72232e5d6b89b8ef21934e1b9b96fd4e0efdd70279baaef945b32507cac834db8364548a34e05b399d9c0e3106292bc2e411d7393a9d3c3af2d4dd54dabaeab1421332c0311bc7d13b53da30ef59e42ea4b14fd2d69259a5dbef4c6ec805ade2451d9c18aa51e316b34dd4a80f2ca3a1980fac77b521dd7e5fa69f90616d1d052ce4fd4f25c7714dbf42b29ee64d265f5858d8b24d37a1cecd98da7ebd6765824dee29900b63ada57bde6b8c3e7c80358d4ecea4b6d07bf94a7faae847f58409d97ab85d90cdad53cb487a76cbccd41403089df89c7ad457435ffcc4e20640814a546c6cdbd92873090bee8a3948c7a03d412220d8c1ecf28f20b05eefc14bc6610132494d30659d8ceb0174652d33e626d5d2562551d6796e5792f78963381cabe8e48aae68e2cc48a0218c3936885798a169fe1bf3ed0ba9bb5f5bd460727b0c92c3fb7053380d17725191a76c3172b809d01b03c04140a04970f0649a5c77193a865f74ea89ab570545b239abd91b8c8ff0c260f4005ab1f304f2100227e6b5902e684f52380d25ec1c7513cd8f80987ffe334d9d69ed55c0977ea22bf015251bb92ee9fdaf3fa2cf150dac0ea4941840e528e40be814ec76fb27879542d64659e0fc293b928446710afce356464628a216ee92837ab891b106437b7219de732f71be89f3db0305f5932842affe6fa68bfb228e840df9e8d49306716d214566f5b716d400d2795c11719dab8934bd40b7f98d8e09f223ba9935e23859e32758695b687c56c4c1de927bc39aa9bfdadb8fdc88ccc95a7b7bca97087914ee358d0b869c2d08d6720654e01ec8e6b8b919cb36e65292bdddf754377884c469d0057fa7fb297ef0f2c557f1b278d6128a0efbf490fd26bd7ff3f38b86eba90ee79ac28381101be5da385ea60fcc0bbdec545bd16230dd8c37ec3c2f0cdf96e84471d5155bb4de080c4fe1e1c389f8da1d3cd70faf22f0b35bf37a0b0460ee0321191811deb6507c85ce0d7432d154e3ddd966d0d614be0596b59827e0e4e2151b302712723d31e8dc9db8ffe90ae1514684188fabab5c8f6ee51a4df7d600ef417bebfa4e3b2811539ec27e90e74c39d5eaae13d01951a803b730c4cedfcda67c0b21f869ac565e90107102849210ea1112f412277d1885dd83e1b07b38c16b23118c036e7d7da26ff478ca273d1d71a302d529d938958e6d7a556ea3326bd5935c8ec6894e660867f022e8cce38b4f03d204e06bec6e4d10e28d020c775b06a0fdb9f379424acf11b94e84f5a2d279331cc55a775138a1abf3c313b58f1d7cc3ec93160995047ce65292698bda33c73818807cec39d26ff07ca90167c4ad9d78ad510fe713c5e308140d9a1bb0f027c401b74cccd6618e1e330cddd9986749775f4015df7c9eca684c9728a4590fc5c3052d4250b7accaae23fe9d2a76394cd62b8462d6f813544a86211e9c99c9a035b732d1bae5787eece24a2bcd3ac87175c85e458a8ead1e0ef482806f747765a9601d2e841b543c8062d050acb8023439c636c329bd853521894a6cfced1db16af1498e8da410cb10a55837c5a5be3da318070d52939adffc85ea007e5a9560bc23074c92f4c0b5266f4b3ec57f9acf9740169b68195066cd8b1c54fe9d9021036fcf07292b49fe3936597b683ae9cfdd80219835c5a07d4b1a2ed5f7e92eed6ef981cd1c966180cf129d68f9103e60198331c5d7c1f6c46c0588c1b731d6c3a28fb763843bf84a5e0f867a50312ed748cb964e7c0c7d30b992a7c8064e1dab2b5268aba9e37470af533ec870c31a000cd0a9c9dae11ecc18e495501d56bffdeafda22f0189a0af7cb149252af3b4d20fc8980a8be53263c4a4a981423c7e076363a9520eed69b470dec1752b6adecad4ae140b8f5e3d0f158a605076984e653c4ef59d1d53551d3e5e034bf0d12d8a4a1336156a076fa0bceb85493ab14389e393593720b1f3f400f1634000ee2b1cec97e08d0d178a93003081ccd49d5ee3361a3411bd9640b15bf84d39f2d9a2ef8b0b6c49aaea5ff22f49ea0efe4a14680dd76e510112a15425dde8d647f40273c237f71f9f694595c31b167fc3e720ecfd48e2e9229a5ba88276a87a6814305f0305fb3efdc33f562ffa94cc703d123e8b4106afc5e150f3a9a84cf04be65926f4deae716e95a91cf1ce0091fa4a87cf9a3b8382f44e5896c1c1428b546f29b5f3ad3e0d0b52ba69b947ab70a5c68f3d22cecf3442bc48720d928b0434ddf813a9fbc81726430e49bbc576fc3087b6e7460835b1c0f3f0222232e879b8627686b25f3418fa904a14f64a90eeb0e45f5155d8a61dc98a3b68820632e8b501e674be7e822154ca52aa48e1c4ecc8e96338998d828d6d786a251b214bea39872c2460d7500770853adbfb03f56c3ae3173e50e71ee2dc8aef5dcdb0d939ff7cb5a16dbab2276645abd3e4b7ca7a7e4ce83a9081310322879c1d0c0bf65dfd008a9d92de97b40d30bccfc0b61a980040307742dbf54a32253072ac6ce8896f76b552377687d8e1f6b28cdc6e0e9d34c5776c751780b03d2834e2b981d9ce388d122c0a5f9e9776fa51fc7e74df0b26f92dc8b3d94c1c1da206f274c83cef6e1bd7fd1072afc1c006f3efa074ef5fc93dc777c5bdc051f69b98c39791cf0b7e6da33d32da2a165dce784cd8bf12729ae84ac9fae29342225fc1e1ce10c088ba89d1669e82c0fe260990ab1116f21f26aad363e9a2dd642458ca02e57e0754366f2a4b02facd6919392549db39dac5f1a1faf1209960ca8b29174f7af6d2d454dbe377de274002896420ae03023f922aa77fe1f6e388ef528f43ad4af2d6fadd25228f7c9d5352a4220a7ede0e5ec6fbb89860f5549d3d5d929c4e5599ec8bee9bdfa3250a72a0bcc99b82e7347c036324591e8a14fd11bb90510c20e4ca8a0f3e53fbb036c508bf6bc38a62582e2c5309ce59a81524dac0939998d785d6920cbd0c4d97471b689a8f5ab5caf4cd82949394e3f42d39b219a53cf1d6395445a1273c3f2ebc210b09307c90a042e9722284d7ab00c8fd983881da5cfccd3ba69e618c3c89cdce5baf7d46af19ff20c44886f3f8037b096f673c0f384195bccb29b3173a17f2f8da8c786a1619ade4fcadd9f7ca615c15868487125f1d2521e3cfa99c1fbd6a94c3b2d5a9652866f0af57d2bff027d8a47ec15af608a16bac9da77c440d993ca82fcd5425005583ba428a15730b88a85ad21d0e630e3e29770b6fa092715a14d50d4dc7fb87c1794afea34af12c0a7a34356942a50859c856588559847f10cc5885ec2e830467e66b01e489104ada99592066d0303e7e2041fbfca26a532fda09ab9f59bc7d6de717aca6007d9ec1fb4602461c664ceec32e1fbb0c3419c2affc203a40cc19bcdd5a1f28311cd660eade575801b37c10308f1dd5b3a9fb35a6cf23167dc6a3c16a4042e0dba94856b563b7fb86cb01b28b553f6a6a513928f28fd1e80b1cbd26a0cd26af1921b2fcd38093bbc9c87108f85013c03315afd7db709de7ef7a4294f0c44b0544027c0b8156e7f32a1f2125bada5978b3ee1181ab5941d5e16578845187d99ee69b02f316aa6be3ab6409bc6eafa29ca6389a8fce6d7c850b357681e80a54920c01d50a7709f0212c4f3a08be473449607213ea126e4578c20f89fb551b6f1b3bd2de10e13f0838cd49c6e7e52b42b630e2ce4239e0624c74602cb17a5aa04f7c4fc838813eec5abaa0639115a7f9f3589e7f9703c9d0f483c42170eac0c3c372fcc69913ac171b0679dacd27fdc6f9e24233e004321e66674f2f6e008c37f94559b79de215bff96142802c7f13b30dd54e208595018e110238544d84852e851309f11f94ecb5f4f5a342349ef2623c151d3f9ad5623135128031737cc03a92aa082291a88e545733ab63c9c506df9932e3c0c0a5a979efa9d655e128cebd10a13b32461ed11354da6b64652ac0c143c8bb03db12da979521f62a5ac94825a6fbc6b70bed73cee032075aff4faa7b4d84451c886d946ef9d350e1c28b22de5ce5a083c2fcfa2fbed47ad4a5a31b1c06007048f48b927a7adb5d30dbe6f9bbce55dde5793f143fb351f7571536b19074d61dfba26c6912c1e97c86cabbd4c7d018c9997e88794cbe69083b97a1c37cd454fc952044d6e0204c522251eff04cc50c9c5f501e0c5950ef45a5be5da4721c4e37e2a2dd03945249408de5f9edf699251d30850f1ccf47219ccc61556f034de01db0bcf0e6991115549c3f204d5d6778e2a27bae688e4e61c8887f81f88151e417f308f0eea449a1a5d56555e46ee73ee3131f46e53b2669b49181a84dd9426fa5019ed729c3cc6cba919ab6f74c14c350940a43ec445007cf45b6473aefc3df19649cb36835e3150289724cf7785a27e0a2c32118a55cf33f607d10d56196344a85f37ed4d4816daa4dd0e5c7f8f5094c19cb0737c496bb18af553532828252da06a0314fa2da9509a34995538cae00761b0d9b85dd03b270970e90f8e8068a1fd41faa4a807b8d0004ea78ea31f102fe97664d08680922e0d559a168456478f2c5aaa0c55375bb7a0e867dc8519a26f907c4622902b2c3b6597c527ac6952b17ae33c73fa586b8cae55b4f9b1a7fe197be9d8a1a8b160ff08210f2226e7719979a6bfd46e1996b3c3855624250e7492be9e71c1a263ad70a519812ac64f33c2f475ee4508fe81b036db15e1eec6248eb086010add1b3b0e6ee75db0b27f5ea109bbb2dc7ce345fc2a9fe0adf95cd9c1655b18828d56679f1d390702c21a7be2c1c875e435df5ec2c2e1b66d1fea1d8f387685650ea047e035502a3dfc5359701e2099123982615370200d34c76387d79cfa950f00770e2a64a18eac34c9061f72730211b4854b124b6ecf5475729735cfe067cfecf273cadc51a4b25dde35ef109052fd7fc7e1065afbda7ff33a4354876071ed187899e1ba2506809ba8443742ae15b074e32d8832e5b69afcc004b41a2245eaa2e27f2ddddc760665ffdc4603f1e1f1fc5127e7ce87c01ae5ad60e17e70126757f7c3723f27a62653451e6ef6eb446bc1ea551d6433328bd9a88281e36dd193f5bc42d648e938405496b530b03bf5af1e1315131c7469609fd02943cb18cf418db6d0a41d0b35f89cd82d449fc8d42cfa9e2776333e02e0ff58a185c8fbd53f18a0630d650a74e85e2a19103dd835cf19a59fdb2cadd49e8609ba23cc57f6cee6493a85afd9971af06c124881ee34e12182f22acaaecc7480c9fa6a8b1f0253a42b73959877d19b7d2541fe46a0269b7c1de06eb4267b2e19de85be44b33b31faec81b3f34f8c7a31bdb45baacd721c63f3051268e9d7ada7e0926760dd3ff369b78156d5081593f8f6e12c26f3c3eeac2f164477bfe768fb380a0b80149d526bfd33c29cc833c9b34da019b93b70a1cada8d79b41d6c572baf492d53e704b23c28c3cfdd5f4ec6ff8bb746c113093f8191f0b706bc580ed5fc422874e3524ffa59dd9d0bef85ea209f6f7a2ebb8b9113b13f03232e1fb042809719be51c7cfb3a192cd5bdd9da8e652b0cb5c04999fd6a47eca11b13b4c440e69d23700e1c2d4f673211c411bc8991d28109abafb60c029f18a65ca67602ede15e2e2fea15121b9373cf14894a41fcb85fbc98d609261a5ee0333a7556daae9e186af513e99674c60b0b9223e0088585cdb36f7af97569615907131d0bec5370eb29e47126c98ec04836fe123808fdcc87a5bd4b9783a2b661de2cf0b8e184b838caef03d77ae7ce0bfb5a549f6bf8d68e71d7584072708c23b129e38962aef7e4eea1c48a5b44cf09fe286c62932e21a3f3e42a6ddb597283bfe2e03ae9efeb08e87a3d5d260aa18b364490121abbdb2533c037b27d35bbd24b2a5741cc00e017cfcd69d264b5bb1fb85f34558ede8045f8790b88e3be633ab6f5c27792b905a191a07a6792cc92af13b771bef01e05fccb2da9ff80448361be85c20a8d7116f842da6b4e6215c768b64b443d8b00da09121edcd7f1602d107c0b77ef0bf0893bac567dbcf46489856d473fdb3efdabccde6b310891182f3156eee2d25926d4bf2981e83a4bbc86a45d459fed38fca8d0f6c57c457c31fd72d5c52e41e36dffbe4aa452bcb777ec926bb7dd3a88fbebf68d4dd9e569509ec114f7b0153017a1931f5946d1bd70ebdbcc6aac6f19835ac5894193092a3b1beb788691feee2f516224247d970fe6f399986b888417ac597f0df562f8e1cb3f1c1c9175810873a08015ab4d51c7385babcceb70385b5082077d11fb0f30801bc09f49f39147400b7a527232e6b1a56200c85a12eb6abea890114b1a471f4b5365dfff7b346f8910ce3164438174f0341571fcf0bed9fdf75bd41c97be43725adad504cd5b6f92f39892bf8290b454751b146605300effb54e72ba46c6efcaf9ed162817c60505edaaace7c1f56f3612cf6e92cce91bd45e84f51ab26c1708a47815a338e2697f631dfd3a6097a7d12b2f59dbbbec0e3b02aeb11b226e751919233409b8ae88a44097f66330275a31300491f3e09163374a5f3697df114fbf1068d1f177972dc2a9d17b5044b658ef6c71854bce3d445decf0175c94219eb9ea17d0b34080ab2c8e0c268337eaa83f037dd7dd57bd409b6a74d4cb5726f610ddf08d87e52cd353bd3478e852d2efb588f1b7aeb5b6e2be1f53d4385166e885c165f7dfbaafb6852e5044b82b9ba17a6d9616523f986bcbd8c0438561b0ae6e20446a8f29ff8b1eb05fc90f1e6fdceaadbbae7b6f18f0b9bf37b89b3c2f84fdf82fe09c267ee82200c1bd866e4edfec763540836ff60458d8e595232cb32cdd8b10291f637d9c60a6cd919e18b12218ef252cec626f923ac0a1a274dcb0179d66abfeba33238608f9ffc5904a23618ce173cf2e6091754041ea8dca5a2e1348cdb22abcca4e63d7d10f58a4fdb8fce01ee1b7816d18b8cfac743ba197f5ffb8b63e33d14a2807934d7b1881aaebb4dab307c5a582d6fb5a8b6ab16767a5672821e3ddfe2d34c31c3a7ae1c2e332d6d9499b92bb6c8f0d5d9dea6dbf233b77cc81416d5f12a2b6bb569a262ce6c0feec892703bfb950b03d501f27fc35042b1140878caba32aab42eb6f227b233c9583f8c9c692c610d82f24ba7f5b30b87b83f26f3f2098be528fc00f77ec74c73a76bc0c172927933116f70a04d41fcdad8e1d9e93f25c4b5224555d9a25effb4b96e98ffa43abd2cd6231b068fb06f79bad3a21d6bbc64bc09da44cf0aab268cb0291ee62ddeaa9fffd3fe20df15f770dee4b0098e81d0ed240eed6d6c2caa08fcb8cc5a0296fbf32af5be09d18d05d470e2f20bc302b6d644c710d600d07535b913b95f85d7d22a416f0842e7182407b8ab22c72898060711110d3e970fe600610f9ecdd32a73b075444c37017300af9e751d5df17ea621a551dba0d5f1b5565c581daebac7b4db61f5ecc36cde1651316a72685bb053e2173d9b65024adbc79a42416c1e691b9922442e590cc8263b54fc5fb5c086b3d03024c225b26d7d8dcd25d7af3d57a76f21f150e09189f58b89cfb1f089a9d8e23cc875496a5dbdbdb4e0c0a6c5e61949dc6023c7dcc134378f8cd3589a433fbe218ebd264dfc65b49278e91efbe0fd827c4ec9b1b21d87e4bdba383eb59e0d8072aea9db17b19e0266bf64f398979ccafc54dc8df81e096435327054590c533b1a8d05563e288839a90d5205bfd6c13adacac61ad04458427e741bfed549044cecd4820b6fd310e2136a1d1bf2b767217e4189a3e9b722997c63a760b44b8ab58616404a55c9149b50ffb6b5f7a9e971f0d385186fe287bbc47273fc59bae9c665127eb8d09e1aeb32d4b84682c224a80252143968b6fda723f635f3d0afac9e563d34008371fba8e3600259b803bd4e64323011626f8e3d8fb56401eac6c710d748ec1f0455e699b70b00a4a3ea92032ffd4d000fc88e669f2184e05c6c3ee6fbc19f1a7fb0e315f05527476cd454c6b4379646503597a550270320d646854190b19585eb7dc54d816935be0187e2f8122413006b5eec57a3e675764e5b7b019d76f37340a6ab9156ae2f7ecd7593a2903b104ac056d75ff2eb985de376257a1a94da50e3404d4dc634118f9b59991f848901f9048a65ae9ded637347017b04eb441bb79e13f7c25dada0c9e9209a543f0113966096dcf67c1bf8ad084163518c36eab2e08d3548970cd4a0db4eda15bda5d95b9f7088e76d26cd387d9d5ef6a2d51a948905102820e168078e3d9c701692137eeba057b08dc6dc96c21209165aa6328a641b3c483676101b93dde974e028c64f618a9d4615382ed4d93b7baba296339af3a9ea7e9d4abd78ec692d7b038204a443f4612a5542c96a4bed87cb281d1a633751b6168c09c5d6568150a8b2e2e372ffd37b637687c88dd452cf992f92a08a6a165c6f0e1f6107aa3390696dcf55d3a447bcfe7efa2957eda19dc1e97ed026a279331f1b34ca45e1c648a1ef06d011ea627ceb4a56fad956efc8e2d3c890679e3e800697cac86801724ed85703e62025257f27120d726d1f11dfedb2ab8e168b62c3b75dfe6ed8f51adac488db2858730d8a9ce32572c74422942aa7dc977b8f777fad5ea97a56eaff65fac73a9c128564aa0acb8359c6fe2e5a40525a370b804e8396c9b2b42e29246475923501707211d424884c7245f38fb6d7047e59101b830dd2980e7b475dda9c1cab781a3a9995b4d8f95c4a42185bc8eb505f3d359938f5fd3a57944d305ad56b95a62d15b600bf5109a04359d475d22d1d38ad1110b6f5b908f9711a38e42a41e5132746ad93528360f851a931038869de6d962c32d9052bdb217d2e406cab5883df7480c7fc712add142705746bb93a5c1e7236154d89b6289395c9c4098941b2a9601f714e530ceb9199455b6e231a0f682302f771fe11e8700d407c1df420d292c2d443cc178901618ad2cebb9aed7e44faa67101cf2a1205abc43f767bc5e17914215187712802a15657077546c7155404a4b49232936aa8f5b5b88fea09282ab11a46602dbc6eb6b9cc9acd507af9dbc8b9efcfb18f370a4bd117f07ced7707d21fbeea1b2302de16ff8532234135f47af9ae44a2b40c5fc6b7cc3c0709854be7ecd7a5acb0822ad650add102144ddc836afaf9a4dd84bc7ed1d7159526739d70ce24612bad21d4d2865fa49d26552010190063c84303a86828206b2c23bd1c9d1750babdfd42fb67831592ef6cd56a3a826e24e0cc31da304aca5ce702f378cefdd349be597161145aac32a6034920bc3c4420137c2a4e30338745969d2a7570788e4ff5867213aa6592a4c1f3b8489a336f58f3d80bb3001cf0dec71efdaa91e642e622d4bdacaa8364d5a4970cf5df29c4b6465702dc5d45b00a1a11c44138ec104146488fd9a179a4106aab1d07bf7120e0f1a14d987d5e4b59e0d417d9c63035cf09bc90c87941a6c466573c1fc7d5d5777c1234bd94ece96daa4fabac67290902d1c2e801318125fa57a299f7c7b0b31c5e2a41f33768782cc9ac84f354957202d50b00f9ef0de636508c4feccad1f3bb8cee3bdd6d7dc37655246d360ffdba842f1f6cacad6ccc5eea7aa0554338ec94f400636bd9c872b9a6ef145f8c1b9c168f4c6c5ab7b58cbf92bb73f07a62226bcd7d675d477ea3bfd3d290f538b9c813cbe1489c3866866dfa534a80c675ada95b802bfe2feb735043b6f8f6e168ee0dce1a8e65b3b2381fc544b3a2dd92c1b41bcb43433cd5f701f2a02bfdc353a43754c8da886ac14805b0d886254c2c10b96ad270ec12b789f339d1df4e1344bb853ab781c81ce3d9fc6a61796278603b6e78f49d3d15062742f549de960d8e06dd1132560b5beff221aa82bf62989aabb74104330c2cf95bf7241e243871e5c7e3a35ff722d149a361bd45a0d507ae5f0a2bb2132b9a859cf2f6135cfa2651499f365d8ef1d3b54f3299652b8569e1fbc724fe3ea8323d4b0a30ee3b00e5c7e7af739c93d88d4c24dbe8fc39ce2e0554d9cdb821d517b872ffc5da438c03f307fae71821a3ea303844a4839389070115d04a43c2ce07b639ca3f1d2de35779f90eedfdd1175a8efd92069a68333068e5da13e82ae02442390b3eb72e2082986bf7096af7aa6c645219bf4fc9769b8a6f9b38b0eb7f52c54f764a440d20a4f2789a1d88ad7d6bc90210e2fb904a4099795ea20f3478ffc22947b1ee2cb3f8aa64067e05696e8b39f57d265c1867fa4d79f4f7475b496c3270fae6f7ce4b146205d027e7b11e80106396f9e66d1621a9012a86b0fd043a10e6038f2d11aa0e249d4e25340ab2181a2a4ce4d6a02219d43c05fec6be600db02bc5e5f929533e2b186bf63991230815f670dd14dcc7e12d954bb17ea8dec7616f2ac8490c9f982c77c7c86d60d28af5c608751a0b00d6c5df752908a4e16919cec225fb61b3086ada35606e259faeb9f3e9817960872eb87515afceefb07603b7cb8acd56e62427e6f4f8844bc199f69d4f6e7f4d111ad5063657a0ccb25100d7f73536d5fb871702cdbf583a6b06a4bec09750aa12999a8189b8a095fbdae22bfa0e0127f6d72d0908ede1be447ef4ce0d136fd082d2898da415dae54c4cfba5558395f0509603828f9b762957033eedfd01c8b5e1fe098d4c9b6ff60405583213d8f2dbcb13f2294534cd213a1c645bb286eadb737fd3021412ed0a8cfd8f4069e9ef98e5b28364cd12dad9fc95417e0d2f6e8222f5c30f070b00af40dc7ab1926f2170bc6f2014ea8ac7ebf3285e824a654bdc9b54db7ecdf0e61f30f1cdfb162ddf1743d9eb8428cfea67a2ded9e68daabc92f64dc466b4389ed7adcd56ede143b4b5039520a3ab1c0e8c64c1cffc88c3809195d93645ece2fb72ac074695ba962a9458cab0ba8c623388e0e124fb92d2af217ed11bcaf1327c4933fea7e5c363692e79c01022394585e295fe33994d3fe8beb0c071a8d5432aae5b87b144d7e798bae3d2c5e91ce5b43f5a0758b65bc7b2a2ca70a39f1512a66583278c565097999f77de3e2efe5316e02d5d91c0230304bf672499351665b965f9c92587bc51921ffdd10791e0a3a6d11fc6f9c9df92b99ca8c1a0b21f32d32da59d0f51664835a3a152fe5584575a8a4f7521600d625c7be3a77e56d6a6eaa7179d56363c2e452453bcf826657091c76af32f3b5553bbcc846c6dd968ed3614ec61bf130e29e7e0524736086f85dee36cbb2b524e9d4d534b79305649ce17640699bc47b9e594f15724c15ea366d33c5c980256a9999203cec725fe02c31d73ca5e7ac62669016b76be96f9baf09b3511bac1f80378b988c332188c1a05a231aff50ee5b0199eb1c681a9235a07ab398d77cd202db37a5b8e8a3542cdcd7e7c9ff9a99c8918c88b9ae2b086971ca665c4ccd3ec3de4c1c5201ad627bf0f962819114c2809e6319fe5e1e13d3c9a956d832e9642dd2723d940dd064f4e9025317376937a0bdfb29633520513db8be5a0b2a54926849802f80f7a090cfea20cfb1af522781d401a2fec0d216e7a34975fba0c52843ca62dd27ee78b60b548f2f4684009a66488d03098540bdf419eac576a9ca8335156bc86e5afd93726dcf52879a660f4e332ba4a2ecbd56463ce347b81ec8af768b1eaa4a82748cd44e67c3e0be69dc65f85fa44c08155ebcd24790df09dc5960f0f8aaa4f190b51746128fb7f3f4667c12e202c277a2bca531e59f143f74d44067b6ed2cb26eb04ec539e71278b02b30b6cc9de4a39fb079118c18e93815723838cd53d9cd9f9cd3d401124479af0319d3f5967142859fb45cc6861db0d1b5ea20003982dce4b645933082c6a3d0ac22135d16e11ccfc69a162d5aa02abf580b9fab84d44f68afab0bb2ef854746448efe40c1ed8e432e971f50e9015a1810f79a94000ab6b1d48780514ad29f5fd6dd8cc66a48328d5fe61a699f873ee7df0447b754b1318501f88e6eb5e3330ea797d55f6416d4ba2029f924a7f3ec113a97bb24722e3ab6279cc4d2b640858661df830b6a0c9826231312dc5c7c91bcb28add179953d2cb396979e5d6b6c3d60c02c820439dc49d02ea3da8b83838a1fa576670d61678928fd9772ca8296aa06267ad637dd7611360d13c977ee8b7405d5a0bb8d8598715aa1e352eb6bb4c0fe47b353da2b0e21ceea6350d0b8c73fc2899464e3adf54230f7246a9d45ef8056a7fe777cd4c034e29e7ac6519668036b5880c61944a8fb2a7a017bbfebb39e039e0b9de67046c49d872180404e8b2367627ba124d64cbbebd57078a61abbb4f86aba1d1af885603c44363719525d76a5ef2e34383ce2cb7def69a2bb56373699b47740dc5760a8bf6bf2f34cd827cd37417740018a9233ed463a4e55a921242a022ee6e0d59bcbbb970b363d9c3ff84367f1890877e7c76c4e4c43ba7b568c9ae7c80e7ac55a107a72846b24ddb531a0b42f1ba1721ad80cad0e0c9464a369016b62a7a96b6a202bd5dc0952b7d9ab1de8e4b2260ee48397c361ab8c916d6b2991c02fb3fa8fa3d5491b9058c1a31687f3c1f16271910c1d3b80f14c25f56293065ad055954360b2cd629ce578f44b9b27d8f87173040f1b64bec47b876bc34884d484c9625ddcb9ddf2218928d4804b3ccb06735a71f63484065b569dd00d9bf3640709a3347a40525c544d769563c99714b4f8855eb2ed94364aae6c1b06590373821a089efe42618282b2b74c353501d4ebccbc22bab809c06344bbc7208fc8f96848c0a6e10558818356ce986bc4141165b4d3c615aff38ff01d6920d205ef45d20aabc9d596d4951c31391143ebea3ed709c529a9e1a20ce12d76e49a0b933e2d7707699257beaf5b00bc2d01c6840e56ae91c0ffd43b710aabd2154100399d1d98496190fb8b99fdee113a9f7535ef1e0974ab955bb5940941f827e6fa639724f25c542d735a0fc3212b8edc0b3fd340e4586bf837b33bafd68a3a287c1d8a27c260275cb5ee47aee2abe37537798230320b87bc11871ee75d633cac7cb46943695f16a2775dbccb80dc74ff7dc84e62bbc4d91e1657b451345916c7982f11ed43fc46edc4cd9da2fa3da4967e986f3f3c8055b1f7d46c79718350184606d9846d067843089b271440d5e048f8ef74904f14fa4a0c06f898a948dd31f178a494832be265ad1eaf1f173f8e7bbccd37ea215141b3aebd0aad88ea313353ec9e313342c30ad1caf985e4466f5cc5d9fb7d08aef35ed449a348bcd817f4fd1883e8716fe0ea504cbce8d8d5356f084fb8b5616192de7d020a7b46a61b47db9bda07d91db3737a4d5d55592da7c3e7096e94323ad427ffa98f95c3fb616698505e66767c2706997b44709845e22f8405a8d2e459b38a4d8e22a71ea5e918c523d9b3523ad2e1f805c00a284198b68bfb7a8f80ecf4a445a01cc8ce9c38531b7a13080b1fe7ee59d5a6ba41520e3deeaec6d141ebce22f23040f19e4f1f6ac505d25018761c8999f58c1fac1500182d4f330d2b519c61bfcd84617cb2d7dcd79713bed4aeac254b4b83d1fd17a985d81f1c972a4a6869b5df11a809f590460d136bb826b0588edd65051a5506cacef7c21bf0c587bb3e31991496f1a4419aceef60d41428f6671e9ecaa8f55b08ff1bf7f14cb405ac8d662a0d0f9d28908c6f9246e44faf79afafecdae78780a1277431059ce1e18441ee56a04c7d7d915103e62c09efc61a28b1da56c47045df5da6ab7cb12c9c1423d036757888349840b0fcd4a0b2efe7028659e6aba1ae3238a1d1831a61454e5d9d5dd6ec38d403596db6deec1eae6366b726513548f076ac7c47bfda98612a5a6c8b78376665706abf76e2e967243cfaec05b53e61158566657a87bf17e8a987d3a3b292c767675d7f2823f8b05d344e0b29fbc37c12188edff0e1f82bba40f0ac2b501a09db1cdae321c29f26003582571c262bda07f7605309874c7ba9aaaf6b19c5d85aa564aff1cda2b4c0857cbc7fed64bde5771d57725efb51aef56956d5d615b09bc6f37f7ad7a9a02f0de7629a77243132c60df60592a5803350feb0b9631392a813d584ed98d96099d61b38b7d2685b5d89e7cc2d29ff3a1f124cd15a5d18640b270d18ebf3eb063a2543da568e14bc2851cb2cc80909b5dc9fe5a397c50318d90d66f6d8893835bc466d23635f8b96922af460d3aae720c1a74fb737f66a6e1463e05d79cdeb10ab4c83006a34d1c448cfd151e5a9650ba3c96e530f0d7fc55ecfc91903d8061828bb58ee2b0c96c8c023cb39a4683b4d6860bd9c74094e75ccb92bdc96de070f3d961e9e9e35f90fe19c8f871b096799133359e3611d3226407fccc3a24fe11ffb5d8723b1078756b06ae4209fd4ea5677c9cc92eb8a1ad1d762d66d9d867f450b216d40ddd0f30bc3960bdb4b61eb8bd874b3570ac6cacd8bd1dc1b393ac3c4ed3dde9a38887befe0403d98149ecd2af79b1bdfc473894dc837b9168245feb27e140eabbb8407c5a82a0b3d1bf919c3008ee50f589b93521acb10267f65da09ef093d8e06569d56ed1fab591a7283b650dd8f1aebf4842df16f18c2620918e7742a3c88ed79f692c8986d777acf83521b915841a38417b3d3425712432fbd4493beb032ed56328783b3d5bd07e6c21325de81043b2d0a667fd2644c543f160b095ff9d866f26140a7ecc44b60c885d587f82dca16d06b9c20f7ed0dff567a8fa46d53333fccd637e87439e1e29e3a7aabdad5fc2d5716278b6cafe377ddbcce2f487d8ad60a5b596b5aba47c9ce90071bd86451273df66d0b7115853fae563e7c6519b1932967778b715b8ce40bc65521e3c40e113159876e60ad9b778c6f33a6029d5e1434892cc07d5e1f0e132ddfce35946f7573fe2081d9d4ad45ed2abead9da1ae6c53139614d7309a6ea27d657b82e1654661f8b19f887fd01b339df6894ce1d93f854d5c39110d38a18ac8e9c6b0d2e911b4a4e483d48bed59a481500bf76ffa3254e3838150f88804feb6301d8a5f11603d841e3402f3a04301e50ca3e85a07302281b6330530fec2f7353352cf4d46c50a9008ac6f886213efb48df0508608ae1466e80272da173136c142879df011811b60cb98d41581c397deb44ab0c73eaf801f8178c6b439c7fd560ed65e6f301da45b05d6f67b9c1ad33800a13f115def7491bf18595f9c7fd99026e1b61b2134d8670cbe7cb09a77e2a3c832fc4409d42855fc6eaea2e049e50ba69d1c277208798e69dab0616ff0c32fd8f64e776604c8b60c002ec37805bcc48bd4edfca12881c589cfd782913cbe418e9354edc386aecac3248e5ccbb6f02d3e74ae4a0d8dfb3e30bbce178add24cc84a979a90562b0c946e691e43d8d3ca2ceedf1a74b429bb0516cc312bfd5bf3370fdb48eec9080e29d26b14e962e5e61d0be879ba52555a2c11676c2333debaa3f681ddd7a70efb6f2c9609036d7236336858738c127d74970880c9049d2cc80c2a615f3ee8980d0ee6cd018fa9afbc9d0e7431989d2cb9172db0041d37d5e41a56df8086aa1cc9202f73f15f268d5e70824ad0d7183f0d1d41d9b6362cc60bd569d6172c7149121c4e3091650689f244d0ebe0c7ae9690c3f8a5885d1f14e1f3c71557cef7d5605186713a344b5830ce4ef2431344723bf9cc18203c8be0297ff199e99e4e12386fa60294d48c6a851d8111824f157e6628f3e524c489c73a26e4e4957bd393636e45c274ffcfe5d38ab64f0cfaa587eeae968995449c90ba19127fd0a9564c9e25aa451abd23d08af444988465a007610ffb6fcbcc56a41d87a3d384654ed86a05131c987cc04d7387175833588aae61633feb391d04a8da71ec03e33f3013b3153c9c975ee731fb716eb76ebd19e4dd8201d43fb76c18eb646ab543d035dec92dc005d00400ef073cd9fb42bf465225da852b691f75a92dac00c638913e90ab371d439eff768d2280353fcf3b8d2f106ee36b506bb232d9430b2ef5ce9b2529cd8f8220b8460c030cdd681eb7398f2544bc63a039cd63d9a852b956983a2048f66f21b95b2d4bfbe8135c51a8da5fd77365880820bd0a1ccb531d221539e5dd4f417db3a1417e082e6263a29f30f98553166ee23e35ce30421d1575881307ef4abe612670b4ec16869e7195058634ac3256480084897234918e39e4e754df4b9214f28e846774568da26518ceae0f3009b7bbd1380c5e363a6b31a02d2b1a0d3654640612600d766b0463046d774899cbda44e14b9df02a4654c08434d3d052826194ca8c258e55f3d127aa1945463e2ecd6e0260ab60c2511b72e8ce236519b4f4e766aaa38e377e5f0bfd01392174d83dcddf723ed2c369869bd505094c6a0c9b7ba50ff8b37b43f352bae694f53e094801cbbb302c0e3e5f3175a9638a474dec192e6c5751c92c26963d33cf004234dc46e490cce790312798c9d3ecd7708d8fd9773fe2945ff92694369ae8aa047aa3c06f15ff07d4a385e1c7cdc36c4209875d249ed54b8c0d13461a177f8cf326c4c6111c311d67adaff6a51cb57381976fcdba9fec91cb9139062e5bd57ccb0afd124c55c85be53869e064e5facc6e0c15ed84ef3acfbee03d0337d31c979a0a9ed44095e1e23b28824e0c7db4201c38628902442c0e5e7c3f6267b9c0acb294c492c261d662c40d0bb03027a7eb8616cdefe85791efa10776205ce79bea7a25c4c26aa6e368ee2050289fbd5b7390aa50f62dc60f83d080b8418e5d45f0cfb7f3b619a0c0092fbe30b72fdea5a379594918af2d5032857e4138847c1775e435b1f37e3309a58b8d95ac93c95b5ab601c03a25cb1b2efa070feab3f3dc490c41d8e979df35fa55c7e165d98540eec945904fad2aeaff06b4026fb258741b9655676c4837228cdebcea26b0f3709b3f4c0696a0a6bf4ca4ae9633606da196d053625e2d1222943d6f9503865e54ea10ad7666234c19c9fd45ebe35aab53c8f938c4dc040a8c4e8ade147d4e977f8fb959ea0ab90185840608591d57311d612675944c86db5acd09da6eb4350e1441481adcdfcebefd253f96457a8b5a6c662655f5a92c82bc1b41f5b12cb6e00b847223dfb58f681558c4b909bcab29916a58ed1e6d79fe6cbd3bc58d8f658d7c5973b86d270e2ebd229c51f384f2bcf216a9c5719c981798bfb7bce305ca809047bf1802379fc63394e072c262fe2a8242a23c38d54dd25abf784aa39d590558de9db7b037b481bc6a7cc05fd4417963a67e2141321e15bdc18424caf2c5dab2e75552100db44c44f6d26e76ccd31498383960bcce557f2bdf6f7157fa445767a6cef7d495ebdd6e2fd2b27feb6694d96958e6df1197202629dbeec8735e9402b591bd440703ca2aee6958405e15a503b9414b80c2f1ac0bea71e42f71edcd403d38e3ea4634da699a27714b61fc4ce331ad3355193f870eee19571fd45243effb96c56e96602a34b57de954af1eadc9c57414811cec3722c9de52ee2db79432259902c1064b064e0636fc310bdb52c92f6de295e76332b5a0de70ff4aad39eb3beae570da4bad3dbf49622654324449e85d36db6aab2d9784f5fe5556fd6ff0fd9da5c2777f36d5454476e19f6e106d7f4b44a0eb94f3e8bddb67c331decde9f1307991dd44cee299fc0afb4acf06a28161fa1f68874f9baaabaebaeafe645be2c2eb1eba769b0eb7da24dc35b17925d69794fc56f2de5392f911ff9212eb477c36ef793cec584995794fd3f023afb2ded3da3be23e5aa821f769ed7de867b4cb42d68f5021d5117143c48d45f9a77a0f895e7954487d16a5426a5ff7ef275baeb10dc78550b4786ff12eab8cd4c7b0afb2ad62d6775a7b7267480b9e9cd9a61c3d32f94b0b6b6a539b6ef4cf10813dba51b991e726cf02c360557611e1deddbbbbf76f07d9213d721605429e1eddb80bb87a1d5ed4c226e1fcc6fe2bd2a3cd89dcf7defb8b0df53d5f2a84baf9e95a433d32ba7c725459b1cbc6ca4de23922ada92069ed3d1e8ef16ef87bf0dd87d78061acc71eb39bb3fcd4da7b24fe93e4bd7fef2713b7d6487af4d3a3ebbb05bcf2fe097983ba83fb8070bba75fb8dbb4f98efb3a49239920fa4a4fe7b9af2e19f72e731e363d2a3921ad0569ad86633c13f0ca7b1d5a8842d5d5503a5e4f8efb5ec7fb9fcc77b4f678eedba86018ebdff7b4b2b69470b067e9be9a1d3d9296a5bd1f85446bd2c5dd6a75f0d91d4277906645f73004248af1c4b9cb037a54bd943470dc1869c487557c2e006603546aa85fbdac36f815843e5ce883b7a398aaac6c8d520392bb69bfc9ed84c5c5a5dc5c4e4455e57229f97d5596abac249b98a0dc3f9784c78f32946d142afa37e5efc6fca9db7b90612aea376a7d655976b72f22a88f54a49470ee9f139950fee659fcf688d2fddaadde51fa5fcc6076837b4a972fecc9b97cf9ce6eedbd4c3fb428cff97ab63d0ee9fa0aee9cdd66a8e62b1275a516473bd70309210ef851bd833888762e67b2ca464d51371cd7693846bc7c1501e6f9630e1977f0b8f023134c8237b103177ea4816b60d8860b1f26816860a8860bab6078860b1f2281636058860b1f9e2018188ae1c28747a017187ee1c2873e700b0cbb70e1c31e9805860f4dd00a0cb170e14323700a0c1f1681506028850b1f128154307cc80397c0a448845b206cc2850f874024302916e116f85009700a264523dc021f1ee1c2873a90084c8a266e810f8b70a1f6f0611098147bb805c2215cf85008c3f0f0f0a10f98147db8053e04c2850f8330cc0e0f1ff28049f108b7c0873db8f021108681f1f0610e98144fdc021feee0c287390ca3f2f061144c8a4818e2e092e20fb7fc6098948737b8f0e10c981493700bb40fa1b8f0e1133edcc230fdf0a54ba975b4a05ab80be4a0ec6b5675f8900ea11c1e871c70407912ca6f7d49cffce2635efcd637e6990f7080674600029e39010978e619339ef9de67fee1876756800216f0cc0b90796619209e198867a641a3860d060421c433d778661bcfcc80670ee29985f869809719c5b2f82519f62bb2923f39d132d1f39069bf43c6c3c3c87678950cc6a7642a6fb394efccfe67fd42649bfb24f941723ae2d36332528408cf901d9d92902040727ef8883d6e9cbb9c92df5c58fd486b2bf7f2a9eefa6f1027be926f5007fa5c088f549f58591f1c6772a6577aa557b2b1b1b1f1f171f94ae0eec32bf0d9bfc02fefa4a1e0c22702d1eb403d9501e27089e2a054b284035f4acbe2b8333d652f9eba411c980a21182e7c58ea27b87063005d3cf47953fbf008a94024fcf14efea87f22d13bbd9394b596da6e9e23441644c680cc465623a39101916db1e7c297c916906dd1c885af80ec876c8b44666409c810906d51678b2552b6c5205b041273b6f823fad8628f0ddec8dbe26de6395c07c780af92f98ecc77c878c8dc8663c0d732bfc992703d649b3771e10320db1c04173e4bb6f9083637c1851f806cf3145cf82dd9e62cd8dc0517be00b2cd6370e10f20db7c06173e01b2cd6bb07914177e01b2cd7370e18fb2cd79b0b90f2e0cc2e644d87c8acd91b0f91236a7627328f8142eb4c2e643f6ef66fd704438d5713e93d77b1ce9955c0b7cb70293628f1e5830c23026536052f4e1a30a17be176118160fe38f1f7052c1a49893f3041e86a996c0a40804481386308c850426c5204194b0c3306f0a264521428ea0c3300620029362a9548412c3d0203029eae80c4108c3481f3029eeec00e1c2f720ce0326c521ae05fe901e5cf80e24f2f0c09228981489d48049b1c80c98148dc48049d1e45a20c3acf0c130273d701846f4447060040af8ee0226c51e163029fab816980226c523aec5044c8a27d7026f1806e5450eaf430f0c8eace08402ef007c52fc712db00926c524ae05324cf6f09d0926b90f84493e70e1cf1c321c5e872c8737c95c3c0b16ff015b7b77ffd6fd7c0d81d9278545c1debd5544152908ea7ec7d5726f62c28e871c2c0ed6f4c2a2587f6b43b1a127aad55657cb0dea7f525816921016c2b1017f86408f4afecc7337eb675eb7fb5772a47ef7762cae7d83f516dbede95c4bcb5a84d8c531cbabfc961478d6b053858cfb1ebba8c533671dc22cfb4a2eb2926f71f237642c4019cc6a4c20c02ef7f170379792677f29a2b21b0fffa290dd44d56eb539c421e7982d0aa8081efe45a2caa6c78fb15cf7db112cd639f6251975d1707f2364ddf720cbb19b09f676bb008ecb5f723d04e0257355d0a6815ba5702416233aec8dfaa0f767d507cd787de7ec5d50a5617e1078523892a39100478061a8771dfe76df0c048eccd9f6cab98aeb0c86ebbc85eb6c85eb763b82e5d6c730cc39e75cbf73a1877d05613fc3b16cfe9551fb5a93167777df6dd2701b25c74c05be70296c985455559e6df2665b062e67337ea37d52b8169f397964e404477a32abb813d7ec012c04180830136024c04a809500230136026e1dac0633015663c274603a301a23603a8c80e930426986923434343314e601cc0358135813580e2c47472addbcaeea6b6c372f6951496b95989452caebabdfae5a7ffebb6c5cd55a4fa1f74563bb794929a59492565f795f34beeb8e5dbd5b94a9b72a35792c6895c18fd97b47dd594929a5a48e446545a994524ea794bec4beeb4b57555f2395b2aaa4dde8cbcaa39b177659164629c564fd79c57961b69dacd83563adb5d65a6badb5d65a6bbda4bc2896c177d9c31e342f29ad97d27a392d394198947f49ea48f40894528c524a2946e9152a29095532a3ae9b57472ae5064b15adaaaaaaaa4aca23482aa594544a4a29959256efc7c56949392dcbb268dd62bb79498c0989552f31ebb22ccba2d5b2aabfa494524a29a594524a2965a52fabeaaf786926d3b1f2af7d046b567ffd9c5736e32e7d57a447d5a2c8a7a192a71e849584e85b52fe55492a29e42b8968d20616300ebca0ae63be18d04dd077f41d7d37c550fb395e143e87a16e7f238a7bd72f9dfbbfec2665ad33d358be1657eec36b08f7f4fbf9557ae43ebec6307c23b5d34d5765af2f3054f84f254661728f50faddb3bcf7efbdf7de73777ffedebff7fcbdf7de7bef3d154cd77409b57b06ed9337d06cfa98fb67b443790f6fd8e0b74a5880bafdae0d978d30a7abcc0fe7dd24f9294204488ed7f88e233e3b3a3d1aa769921829120488e3e16a4e470ca9a1c231f8e9900784c92a1b4673fb6f6e0fbc3790c7dd2445737bee3343dd280f23ae5dfc857fe87726dfa4f678509b761eb7ff3ab9d3be4e749d7beceeec987aefc5f538fbb01f3349fd1e5219ba8888641d494fde8efb2023da683e20ce6d6823e9dbd9b1d9b1793b3b3b3f3fb4ff95ee262592fa92bc9d1c7007e471f9df917e793bf7fdf80fb4798f75c6e0036d28680373a00f22456445a408883ed30ebc68fc75458cc6e8fc2f34d44dde394ba8ab25978d95ebd25aff739121a38ae8c5db5102c768fa90c02dedd74fddea35a134fabaa7eacbf8be8b46e9d1cd49d0886bf1dfdefd488754ecd9f80b0c62c4912011d7d297b5ac4d658ddc7e908823c1222217df0ec7e87f3fb0887ccb6e2277dbb2c8bd7e6aec19fe32be7287a5013336429c29878f217de211c48dd0bc1e73058dacf9bf1d7f79bce2df2f9a5f91dbf4baad2e1a0f6d585cf1061a5f56728841130ef274fb19dadced5d35f05c96e2b28e1a76dc799da13aeb44cc5037d7e3e4462f0d789d955ef295a627fd5e7297d48b3891dbfd4e9eda0c9355ae2aea466ff7b34a6b73f603b9f1638fcb97794c776855ef7a7a513ff3ee73b71ebe8cfe8b4958c09dae12ef3d5bee59251cca56c1af647ce8a443f7ac5b16ea201526d351ec1b2065adbe699779c58b8b3f9367e6150f9969f053fcd453f0297e964f321406fd7c6de2e2253664b75aadc31cc5be2f19eaa9cc2f191f5aa338db28e476e8607695a1f23bf68e603fdf738ffb2d71a9d65a6b961e31f514f5eed453568359f5fcc8501d85357eeb2b7eed52ecfe335a094959168ab21ae6d78c868f427d44a1ac055c1b92e8cb364ba2af0596a0b9949f6649b819b69bca65cac687b2def8f546af2270a98de5f2e672d9bd76fc9ea33171d30547b802911719b97cf90a3d97ff0d31696ebbd26dbfff6ebdd250ef63ce646beed94a863a70771f7ab3ba3aa94e6bd731bc92504b5256d677c837f5b80ed19fdabed2d6ede3853b843f666aa7aed55bfd2890b28f6796805001a3c1b7dbdf0c27e3d8f966ce3de05c92eb3ef028e7d3ef5512c2528ebfb8230e733a07fab88eeff40bc491ae0373208ebb6c4139ff7721ccf195fe23fd02815416e6f890d63ac7775aeb9ae3ae035d27486fd007f7e5f408080751fde3d6686bce66af660a3eb9ed5ea894be63277e478fd0995ffc857aa7301cd4ed5fa55f446eb9badcf717e6674fba4b30e74b0662c65de7d5b726df7a8a9fbeb3801b425a25bead12ce2d4af5f2a9b732944a5236624fe1a373ada7ef29cf66e4f5970d42a31a102817bd320bb821dc7bca6d10f119453ef5558622a9c812ed0d485d1339c22a93a7a353f2fc233260835f44be327f3eb3880a6d0a777e16ee7c96f3374672671257061d978f5cd621c38d5f32f27d70d790a1fc77e5fcf94c854e74c8a0e36e313b313ddaea9da3f90be851fffc1a2e723fa93c992fae9b4ba8d4cbefb7d2faea6bcc17624eaa9eb0ca8c47e24f8784bfdce02f2c7ede90395ef16791adc8e0bfc93fcae4a9aceff54e614f65eeb18c06f58e7af7ce6e0e52af99887f12db0437360b6e64175f89d15da89f4ec576f24f74bca85181b2357f2799e59ed47722ae13bb517f837a8a7a475ccd94b2754e4c25264d03b29bac2776abf6ca286bee3a341a5a55ee08954b5522ae77560977a9c7dcd57c7c23ec57551475d3e2bbf88b2bf54afc7741a20bd25a7ccc065583fff13717e465c5c76f1d3b9a478f6ea80a453a35dadcf89b0f36be12a38f1b7f45d6005f898f658f92c19a3f911c1b1d9c214c243acb5726c387d6dcc27ed4ed75153fa20e92d37d377ed3c41dd4a918dffd5d5a731b0176f079f3b6c46d9aa6e91e3d72d03b97d69c8d406b51d2d0b34e196ceed6342e8811213d8a312251f2f14b4ea058f1a0a69971f7b214682dbeab41c25fa46f357e11feb2c2c68f4003a2e4e101750e3a9377a8d5143fa8b9d53f4ee55c8f5cfe1672321ae175baab9cab5c7c23186687b3a900bfc8f015f9727335576e8ec77537a5315cf91ba3e14af99b63222ba235f92ea3406b52860c29453268fcada8ea277388b28f110ce357fe11f2290a0afa27fdf25f7391cf3d922a57b25cf90e470acedda3469473b235c7d43d469951ee23b44f05ae45c6650099df7b197dd781fa7b7d9b3e17f137eae9f309dcf712c22dbbcf573027a5ce5d64f40b123427a217ee1d66d4a173563d5f54f73b66e798257c0799b6f6dc7940b9c46650b7775d52f87cc864951e3907847a225fbc8ac63265baa918e35fddce753bd7525296d67e173f3297a478a2fa8b2a8f0aec89baa95ce8fcfd8330fa7335badb57a378349ef32c542fbfb2663416832a2d6b553f5d70f595a43a421e1a7cf925bbf3da5b94f129ead95112f68b61f20645ed07670d77e9cc73ff86d45f4af9d7c7c771a167db0c5bcf977b7604bd96ed1fb81607e44278c95096b64603d17b2267c7954fbdac15f682ba3d49a385ef42c651f63926f0b3c99cdc1afc9ea0986d7f6311f1ddeb87f03e1cd13920ac78fa436e7fcccd4599f14f7eb629c6a68476b7dd1c8df4636c9c88b969ec9271d4ac3e94953cd50f3251b70464a2402607325d48ada46f51ee2dfad64c4b9a31156363b9351ccbc4de90efd4cfe818271cc97ab785ec66636eae7b4aad7b8b3a4a29b52ca5d4dd53f9cea2b8e80261f49ddd6cd077ffae292be626e6e6b6bb56340bcb5351bfc2869ea8db0ca47f839a945ae1e244d1fe4759092f6b0d912e9d7b489d738e7e9b626cdc53f46738cdb6181f77ab3ebb61fd12d7d17f72eb8fb17124fa1d8373b78ada62aaaf28ca6e3137b77a964fd1a72acabdf5d4539594d6bbcab977abb2f467748c4d282b7993cce4dbb4c2c65f5cf0f80a7cb9c2e642f82e78fcc585a856f82727dd73f21fc4fc3e39b128d89b3c250a72e1bb38f94ba5f115f822918b938bd3851fe3c4bb083dd1261d2f1afd374016ba0f551af8314e3852571be3847bea4d305e2cc6094772ced9ed0878036f2e683b02deccef7754e517e92b7054fd48fe88be9b81f35dac7beb9e3be3cff6e98971a24df39f9c1f73e3442f5a732f5a833004352b931965adce1b3add536e06decac638e15aa89fe132a2d4643d40c2cf8fc4bdce95725edddd25cf7a37f65ece69bd8bace4b1cc722f6af12e504276936c37d175bbf170dfcf19aafdb5fe2bf5e3096537b05fe236b3e0fed0877642ef9585bd117a4c0a47aaef8dc3638f83ddba5f5814bbfd1a5cd84d54450b2bb2dd6dfd6b36b7fefec2beb2696d53dae129622a954aa552a9a6a6a6a6a6c64d393939393939ed23a78374a97744a7d3e974baa1542a954a2c6a6a6a6a6a569ce4e4e4e4e498b0bc9894dc0ed535a5524d4d4d4d4d8d9b4ea69fa6691d5d6352522a954aa5504d4d4d4d4d75939bdc0412808c1257236d2a8ec8c7e714512a954aa5528daf744d4d4d4d8ddb713c454c3e202ac2939fb052a9542a5db400060815e12f10877d7e1ccd3b9d6a4aa552c9d9381ce7c3e5b820f49ddee99d66a9542a9564c0541729a396443b8ff34e4568dabf4854abf4a927d1d3f0e8c0b1fcc1d00e5249a01b7aa236cff51788e3f244b7a78cdbcce3ce1246bb3d8e05e2ba90070cd5f54f12c6405c97c15063ae03d0e6e9d10aa79186061be67b8e9dc839616250d4fe19238c9657006d2696835a513c273afc04c90a4f30d288b49720cbba91e8b786f15ba47eb3527ec3507e2bb9fcec46d66f2c567e7301339f8df01700fcdff02e5a3c00e6f7307f653e2aca54deca5afc84148e814722ab626158caa65816c5e688a2c57be07f48113d6852a6a84bc62d0b9ee01878a4f2ef238cdf6015f7a121e537b80694df2213a316bfc5266e0441b4b9cf721747ad96f51608f415c83d28ba0ce8ff85e8a452a9325f4a19d083e2a45252521ea5ba88107d8af520d0fc1bd657e8a7536bef678c2a3f9f129d54aa6913342dcacfb72e22440fb24a00617dfd99f9a9479b9f2cbb81ec5bd445df75c9cc0b0887c39a735ad32d2b7369cdd25032e6f92919b3a66d31773e8c8c79fe146532589b5f80f9a01765325a9bef436b53caf943e0e9c124745a737e75c95813f4ef82ecb6048c6c73170628e5e129f2e8d1fca772838a8aca83b214ebd21ac8ca68edf1a3cf3a5508d9e9d1631f9e1e6d2c44ba488f64852618195f9a9db456bd4a96848362e56b36e3aec80a6184bfc81b5cf8b8a8c58ab5b627ca1c6ba0f95426294a564f589bbf92897865fee4079201f5f5f12307880e9a1c3834346138512089039cb34883727877c9e8f0351c29e5df3320081ec15839e9e1449e9c3c8c14d9c30a0804650a0fd60efff77ffecfb5feefac214dd3341e78786d0718307e468f52686872e89030a46dcb827ecee81982292a3fa91e3d82f1ef291ffdb2f2efa54aca4ad639bdf27e87ac83082981fe7d4ae6ee2c81af0346bc0f3c18ace0d13c0e3c9a9497b2d694df447787b7c3a7380dc3e40059fb443c08f459efdc243d9234397a64b94ae7b4f67e8719290ffaf7d324c552292a0ceee1650500bf55235806d6dea3f117005878065e79ff6c096c7a881fa859b16db8ef9d5ccbfbad211938c6fb0d9ef8aff5a887c041324e207b03f4d9dff01f47724219a63c8c77c36fbde36836d0da7b9965e024528137c51af152fe552ebec54f8b8aa0e8532c3c41130a8a49c68cbb6f635a7b8f433699e90922813f30499b744987faa5860ed9cba1c3af7902d99d1ceca38127dea18168f879109e2012f84355c7e1dd0d9e5abc4773c37b16d94657649be8fd49960425c35f58402c35fc45d6ba13061305a34956e0a75ea8b626e99346288a4a2a4c9ecc0de56563e5ce68cd7bf4e8a5f1bfa1bb480cf1bea3a8356ffb82b20b90ffa3b22aab6a9b9fba758fd83d1866060ce3de7fbc86ffe0bf2844031ed03b28e60eeb876d386e8d23f5c87dcfd2daaba1895ad42dba8fb21a35c30ccfc1c2745ffdf9f3a7a55afd25fe73ee1597b2569148632bdd25c7e87e439cbbfc660cd0803ec3330cc3a61b81d6de3fc071bc26e4e36f1c0fbf64aac7865037ee714f0385892031d32e47ff7b4f3a1d936ee1117900bbc87e96f71acbb3331cc3bdcb91c1748c65060331afd22fa0f7c93c3e337280de03ff03c8468161ef180618a66f9cfe22c301c75f6af88abfac55f4afe15c8f31c619edd6a747fbe81fd3005304f131678cb4868ba6b977f7d871aec89dfd031342f7e891fc487d0f1fadc59719f5d37a6a3bc2e5c2fee17a50f2abec5d8cc2ec0df8548f59d5235c6efc7a05b1c20650b041fb68cddf65035e43549bdb66dcbd71e3414cb67651be288afea0d13f665c8fd6bc0db7b3c031bc6715f53da494aff7def78fac7fb4e6f0bdfb4a5a1bef1da4715651dd4f8fee69cd5fda47860c17174dfbefd1e3fab70949958dd323ef97a1340dbe499a86fd3b878eb671cde3fa7b2e02143c7c2e77e37cfca54d740bd5875d11d7e3ef8ec65fca5adddbe42d1d039ac655c68c23661cc95de6e70b761678c5df0bd7c750d1709d6d9b684ffde7b471e8c26415fa53df3b25a5fbcb6ef55e57137552d5fb25b3d10b452fac69b21a040281404f51a0ea715c296b0692d6cff013abca625314c56f04935532d0a32712b148a46355dca37e17a127de75d7a3ae20aa680d017f46bbb7e19ea9fb26452d192874fc0ff36106c5ec871710fd019c67a8e4cd557549ebd8cc08000050008314000030100807c482a1602c1424ecb21d14000d8da44e6c549c674990e328c390410618000c0000000000800191290101fb8b3414fdaed73ee3d4d4ab288eb2cefbe362bdc168a89e3de3a2c265cb32c6cca6a8185511ca7a52961d256c4a9c4558410e7a20c79a4dd9126135ffc9c6c63c8b98386594b25dada14efaae54f99fe809ec84c7e20ce69103368cb022628a39320ab1cbf7892778626e3d6010340b4cbd094f9ae029f0b5d58d350b3982a552e4fb84266422e099f1f7a72c67ac32ca7b83246d5e6e339d6a4f89ef9dff6c013130f44c9f6477722bc96fbb1d93b90443983d0466280d6d9bd459d0c412dcd765cfa9e70c6195c61e05847602caf5eaec772be2cc2258f08f97fa67c8d1543d8cddf06011098d2b91570af94dcc844f02f6128f3c48f3082b22a0c895239733184861d77b0a399efff67fec3f3e2d059efaa0a7405cf6dd02da839f16cc145c31104b8c3781bc343a8da024692146904754c882234e826e7fd1661977ebe5fe20ac47f50f699f6461a50999e38f8cefc2dda1b880ba656be84e19549034d078686dec5d3404ce8df8286615de70ce523fd01f1ce1297597bccccf10648607a002e2358fb08a9013a24083c1bb1ac49a2457a018958d5149cc080349fc85fecc4679e14278c66c0f828bf0b725a994febd487a1a209ecc28473d79143d94a21ed78aa220f767aca75746f4491616ca3e9379b930d66d60b58a517d772232e7e92a5f702ad9720f9b62aec822302795b56bc211df49104b7e4c78e22672af6f7f14655804c42c37fdc750fdecf10362a220ae8c983d3dd9b36e1308783af04e84a40d51933f3c346e38e1ac4ee1c6c423cb1600d9198c133182a2e3a62f0599bcf2117fba3ecd6102498c3b00b8b816031e60423c7d2d212bf425618c60289ac1adc34a312aaf40c0784d0fbba01da4bb6aed387b2d1ebf8a8e8dd2ea1abd911a7f79eb18e72c63258b348ee573ef43cf1581995817e828f5953a10e5978e45208bc096d1d9530096c51e030e5392780b24317492cbc2035ea2982372c2b4dad6f0815a80125649d07072efbe5fd83b3cb032c8e5b7536905c15cfe1dfea6f66711531241bb93c8d7f7b7b3a5e5d16a799cf8e24e644059e11c0ea121659e28dd5dd0ec3a7e6def96bc6f25c09135942eef52e6e1990579626f2ca77f478f08971aabc4205647e676479e196167b24997e7d231c43499b429c9192b8e1c938b3dce5c629f7011a7a3d9019f76e0942f933f400ce75813465dc1b1002b2e60420a849fafc260822f27a3d8b1d414c6a7c056bb1d129faeeab8af03f891793ff219d69f40c95438370b20ffc3eea109f82eef05ffe6f74a2417cc12f66dc05502840e3e4de94c4141194bf049ed9d60c8f65afdd0c0b25abb04245f0e9bafa674a6e68b0c3fb0ef4e3132d0b0825a9a9046a2fa1488bf5d28cde0343cca735593674b002d7a7c97c6bafb4a9f3a1849689a40b4388dcacb14a9f1adb38939f370758e5a42d278ff90090a5e5e867217fc8d1e49904dc3a14274e207b8fdb658e21aca4abbb0cf9cc76574b58c69a3a5ab0e7ca2e88f29955e97b84f7ea669362015ef06da82cbf1936287e7d3568eaa22e870a19cf68feaf0b911353e561293ed6bf95c8cf8d5dd5e1f2052a47c21212c7b2efcc6e5a06d82921729d8bb29e7dd22a515cedbd010f539afd9f4a4cad90a0eba7e79b5cf50cf94491315dc78c91ae6586d8ae21d013c43fa5bdb2b191497fab811ca0a045f8a5ab1099e184c7871446a6a383d843f2a2cbe52b4338443da1c99af845c40bfed35b24c50e166ec236d3a275f385ffcb14f266dd6eec7c0b4df0f063e186bb66290e1d2273392ffc4f433064066336c9a2a523858b9883870e66568b2bc34797d1335b69d6fb3e6a6a3cb65db094c277dc7e54e0197b4fc866d5af673622f5b49fbfb49c38854063320e7a1e2f65d028e2bac295edc766c280527d4e45f867da45d4e784859a7b401007fa9d018b9388c5a8faef88f4ccbf50ffaabdb08ee39cefa73eeb950367c90a3942b118c0c070acd513742ce8028a33b6c50b0063f72bae6545de03fba5e4c5f47eb56a6ae590b625401387ef8bf619ce327abb3d629dc7cf6bfb578fc08b9fcd1a80130a99137143b963f4ddbdc331d9ea6ad549e89e44a38e5f86120de0ba5fd07b8df07a50821732cdcb94640dfa9bdc06a8fa91447e25800c7ccb919865fa01f5d4aea03e88f4eb573ce6ed4aa51be84037c8f7120db7fdf7f7e5ff5af5a9e382652bd1d8c9bce33de4f62204c5c1b91838dc9396da9247e04f8fb1be919a3090a8deca2d881ef1956af63e2427e361eb6f591a71f0cefad9cc4a78be36e217c802bc60d39811b9ec0aae73265fc12cf5ce02d9f344ae4d485f591503ea278cd25e747ad395288b2ffa3149cf0a8a0f2b20a4ed3832d0182b529fd055397ff7be1c242a9e54606ca6a9221cb06070e6a585baa110511f69f4089f0f40a9b4fbdcad30529be0fec76abc1e1909c4e1e9cd676cb6a0dcecd63559f98fe9bcacfed424524e9b907c8a6307a773040658343125caadc0e49f5f614b50b35d94104a3003f45fcf84d97bdc5df7e10a500e09ecb280e2f65c299c77e95bedf588a7e3b665cabe4190007588a8d07a20f6a12b2aef07e05c55c7ddbc6e61237c03c0960c035d8c4b670fc70b23f0c0604b60641d5241ba29817c849cefe4d85f2beda33fd374fd958332d5dfb91575be540b7f8695c38fbbf87ff8cfd5057e8b3be8398c0b34975f58c218178f66eb101bcfe3d639dabb171136feeb08e15986a03f9b5c281e890f2b278c632180ddd81d1f8a3073507a8a6736ab2004a32345aa33fb1e7f2f6a1a7148d0f84df038189f66880da0cebb4b33266cd85d692d3046fd137e41c07e07627f8e33c35c3d50bc6ce2016194e45e4dafe31e780dc8611fbc9b7cf0e89e114df0c72e3207746a60669bbf29e7fe4d4389ebe2384ffd15f83f6d1a0255378ad0f8adac38f21c8acd0c6b9eabad798f07d70bf7a3b774266ecceaaff11dd0244547132a6eee4ecae90a3fcc90aa187147116725274ca05bd02330d2448243f45c394982e5e1780969c5804ee531e16982fb7186b8f0bc0b414e22097942688274191f78e598da97bb5b20763b74d3ffe9a187df446d1a44fa1fa0c2bb1b1d60c84e4440267715ccce6fef1bfb2f4e59dc7d964ac78cb4c537a230d0706131f8cad9a253b317f4302b1be4323c5f3815a78181a5ebdf4234073f3678f46fc8828fb76697225a537d0c9cb9b6f9b8699acbbde888cf8efb8dfc8cc7e1e2613cb126a00346b078c235f7d7faaddc86e4a6f6623335b2abd997d4da389414698c79dcc0c89ed95852b41cc666ad0515cec8ef1a3c235a178379e4c8d2e53d75e26732d40d046754971095677e4d8802cbd593033143d7db3bba0830321b17f1ad8069d7a8333f711e9cd9ee1cc45e4d41b8b30c468c7ca2ec0ba6bed98980b68322bc8ba654037a8603150439f6fdcdbcecf7874d9dc673beb2a303ca883b44c5d29d412bd53e01bd74571e1c9d03dbd42c80f96826dfa8ffc343ad98a3f5666d54db6c0c560f30612cf80f8d4e1e6534879eb2631357e70f2e5c82e86f81e71d08e09455401863eb2bc9885d1d3e542ff9d8323626c1c6747cbef584a86120e14f45efcc859bb30301236b5f9e887a86e4899208f20f918591cece122ed16f203cf5915a2c9169745205d15f60cd17a2c1830ce3b8c6bad50de34e596e6d1488a66a4b35586f94b9824316451565b2e7d60b27a3b8848f3bf12828b46ea54dcf06ef8f48173d6cdba9967356d725730597cc6e0ccc88457c5fa5537b260de3c5999ef648c081500e06a699cf639caaf721f0d38c7898fb09537b4e03979ebbc8284c89cede42d5dc2ae62aefcf2b75418683679d421ed800e0d62d2a68ea4a46fe0a1e95380624ba0202028af7f44a58f07b68f377f7bd4698e06f6ed604180b789a82e5461a6df3d823230f984353672ebb821892835805f5950631464102904aaa016519148eb4b08c7ef997e700a4bcf8d5b55dc82e3653f6a35c4ae18b19d9cc452fd1b4d0ab8eddd3c657956afe2e70c258a28a336fefe7ae9fbff449703e22039910837aa574c0e5281875d06011fefa491c9fbc3f9df6dbc8c6eae5e696439d8bc7f643652706767cea3fbf733cad7d283bcba4091d3f70a1deb9dd0f0741bbcb6187672a5b4bf8ce982addf5099c6dc6854da6ff661f53edbb55cc7b3d94282f8592d2dfd65c37c3bc09b2d761e850e6ef4135b34af9f97baad521d89d224c0f30ef7b0b6f1a5eeb0982f200d0bce743f08cbb84acd04d28189769eb9ee9fd39ae42640b33fd57757e11e38ba8982d4a72282c5aba4c3881dc8b6b680438ad67d0015d5f49014953f903858e786d85175a7487665c5e53439fb07b9500e30d8016d7bb02a67a866ac1eb380557909d5c34b204832211a65e1fe58c37d154b3bc24735ccbf4f8506eea0c4ab02d6f0528c3850b82ba92b8077c431c412e1a027b3896d359cf823fab83b9661b78a1697991152223de42c1bfec1a1563f23d7b966dc3fd4a0547f1e6f656b13f01d7446868a8dee811deb0e836ad5dc532fb2888729741a10ef98eb40b1161c49c392db62e099ab7f6d95eb15e0e250844559278f05d48e387aefd8124c232cba1ff8aaf1a83d152651fb747bf6808e130b5b2ef21b0de4ca0d66e06419f59b4a83f8094ad2d2a3350b99873c6d7aed76bbbd8428c10441bf1b070a0821991125eee994a744a385cb6160173646282e647f5f6ce713b6731ae000f067a8497752866051bc700058df9c910fbb95eec35290c873b79fc08d47be3217d27b7aeca9f197851d14d0ac35f4df1d1ba2cb0e8459d7f0c68ee6fd19966903d4a16ae3c0d8156fb95a089d0b71572fbb5405a9465e6e298dbb05f00f591ea2eeed434cad09573d189df6a532aff85d9f42ac654531dc661af83031dd17bffb6cd3d1c5af79ccbfd318be20adb9b9968a86c24083367ca6b0294eb6f8d097de353401e08a361a12e56e286ccb56a76c1d26f136d97e398486cfed53ce42edd3bf2b8be810117014b0c61f7a5bed1f7625c28ce982dbef0d8b98dbd91ef5452b1808c3eb6a7ae39203183a4ef1424d2c21089151d093685bfd1332bff02ed653a8d4a65bb944638e43a8d03508c47d0583f2bf1d3c38bbb896f19a0903030f9b0de779c32182f86e37419e148d278a3bafe4fd980c127923397f2edd7951ce3e9cd911ffaf35d038eb2871fb6e2a9946fee4dc4db1659ffadcdef4db0265304ffc78334be5d9c16f89184026142d6cef2c507920f2d014798688d627e918749628616a2850122c63f0780267580e7f880a6145f60317471219cba1daadd8f614a678055fd3d4ecb88e37eee1ce52ec14264bf4b4f9e64a7adf14fd92be919c85cb219f42c6b23f8e5644794e80e7b0f3186f1f42a0c81388d7afa760b70a4b80621e49ee38f8226c89494fd5474b93799053c3c5970ad2ab056d524081ebce887f5ce9f946da1b084ddf7da17603efb0ee7407c12461dad18131837d23f590ff12a2c006ab4c44746851b956c7ec67252d61306d224d6010251eb7968cd8d90c4b1d7dce7af10adeb19638f5d466ecccabc6261b71c97a31d55036c01c6537e4a1056662b05ddb4d0e8b9a73c78a014ae8aa7ad253664fdbf1d2fb66086d9109ae75ff42d2d782be3b3703c6d99fe63120b909f120401a6ba80c1782e2360419b93e550e3cc0e9d2b541605f0dd2cc6d092fe7a7f093e0919269b25b7b40860dd7f432882eb05bc2302727ea2823c1455dd50fb8a350bec8b30edfc5f4632272bf5d070e5972bbf89b835fd0a2769e72778e02929b31ecfd680dbe671c3a502c5c538a19fdc2caf244c5f5e11f6982d84612fed32d20a99208c9d184236dfb34aeb7b0c56d1cf2047ebcb51167bd0f5ddd68968bc37b645322d68f4ccad610a9e7289d8d6f4ef3ec8840a8bace447f7f2b484718c20303d14102ad2b621c77b4f1db4b8503ff9e308f3e2cfa7c90aa5fccab7d5131d78280cf022430dca2a74d71e8f4223e8f01f17a49b05a658b266315389663d31d406676c37858d1b21f6314e8f94e9879053dafd17da070d20330116a21daf8c733cc4b229fa3520f9e99d9b07ac59c96dc5fe46704a437336c6dabe1f4040bda6785eaf935fc88ad300f2053fc89b06c2cb436ced8c7e00256535e422243dc63998acdd34392f037d2ee6a00cb42277a40b605d0b95dc1573289f8e0f26ad2013ad772064856a38139ce068a289b57058df023b0687515f2496286bbcdf8aaec7d174d3c0aec8295cb28dffbbbaff681e0246d542e2a92c026a75de723c0b61782407d0d4b81912c0eac787d8941d858cd12fbd37ef8128278980ca9b71282d0ff42109d95e150bfa1959145beab980b56803f6a276ad578cefdee7686cc9d53b4b507680be13046ed42312a8cf1dbf4a56aab6aebeecf3a2a6c7ffc6120e21b772fde7d8aa0300aadfaee075f9357b908a36804bc1fde7dfa3be0b02bcc8df83e0a197a88b510edc12d9edf06f6ad51d5948146cebdbf0934cb23d5711b85455b7e1246be7b52071f2c338264a82e684856423d91ec8a8f96124187fcb4114863e1f52f86aae077e2a3079309eab74d011681266b0940d5664aa6ef3f22147ed46ea5c9dd580934b6ec7ea0e935a6ef7b7fbfa8585fca47bc2872f99becf0894507592a800499e229cd1acc3a6dd136c92d8b1f351a7f3af6578bae4fafe7f7f2d4ee63bb0fd6dcfce32ac8eee1376f0dc70983fdc6ca84af775b38e46b7416b72c38a8d68896cd0753a55eaf697d9cba3b2a99022205925d80fb6389f339d2bb862362ddbfa42b46b92aa86013d84f481f761b3e365bc784a010fbe5ff8237a485343c6c022aa7c64a12dc1e47a0f399a5356661e8286616ea2e838137ede10691c9916ba8501e32654cfe5b7aa0d80063402858fb3141d994bb9c09f8d4b3c65d81d805521d64817d8847dfc58368d26512f6c31cddfe1781b82147156286128e57166162189b06a5afd01f2d0583798ea6a70813437e4ce9df167955e0451e50c9b230b30aac300e32954a183cf881045fe83a62447573d622ce0e2bd511a429b239a4ecec577fba107565a5845f4479bf50193cf5bd404884d28af9a0cd5f533fc436c89440743a3360003b84b519c22df01841eb434f28f1ec1e499407e16a328769d992cdd3c53feba9e419340023d8f938c3fea19cf27bb40079b00b0f0986f02fc29f93296b480f11aa8166f85ffd9cbcd9060f9725a52aa920be4512f8eb4f69c8dde1b32e86bbc11181242831ab59fb34a0d74f87cecbbcdaf4b5caef5889be90dfdc9acaa543b6bf74d1d852fe7f9cedb043a1428c73480e5314f2bf3eeb50c1ce597905a72d81340fa25f92eaaade5e63ba5f08aa433b2bfeb64cb96216a910aeca7a0e65aeb0d24d5f40fbb1e18431942b89be90207a8cfbf8df66277b5867cb3b2f9f5682002c580b3ad2d87e23f4f5473006dea537ce47e099a6c93ba5aca667ae30ee773472f2e3c35684b9e47457f32a3122effd2bf848bf5b13eb337d80ba154c1653c606c41db6a49f250156d2e8a5f9951434c59ed4e2d52538eece61e0511509542f1198b93acd6297978dca0440ff1838e4819173a128a91e86500a8e036841597b768149e42f99c750709907bb09b11deae7eccaa2ca082c2926c87b3de44ac9a26dbce94b0e52f398b228f0b0cb0029bd3eec30809112e376f4abb47ff14ebeabbafd2cdb67c0354a3041ca22a0c9bbc555ee46bbec1b4d7109c9e19a8bcb4cdf7a5910118035a3188f062fbb4335f21e8565a64655f0ef15c784de6231ff45e0c57f11a7470fae57ea42539194cb1749690e492d43e975a7238d2d5cbacafea271e50617e8e0b1868ec3278595d93e0a5efd22502f33820db4665153cfebcb9201618bb95c7131e6b6300f98cc377e74978d24d1cf0f3b0ce7d7040bdc65a39c84d90a4bac5a6116d4d66b53f5378a16ef20c5388014660e64950e6e4aba43fd32ea476f84f285126c3d8a26d8055678bc8aae3b9c5d135ed7f2a45ccb02c7d552a8fef985db579230a7113325266e3db83b86d03f38f50caa21e5573c37af046b94d001176fc378451c22d8853d73036e2d0a747143dd8f3c57d1955daf38da5c0056b8ccb774aa154d2f546d403f4bafa8bcbe4254b93de239e76380683f70e54f28f3a4235bfd9f448ae970595341af789aed15bf756345f648dfbce6317b30c8996c7e76b317ac0b6d25426f6ed5dab573bd0c6c0abdf8d58ed3c8b810808264d0087833a46b7d5b4b5f1b76a445f7d2d7d2deb6f122f532e2df5fc7ebcc935c298033a16d660e271f3f46a1591386165849e866b290057c061a1fd7d629bb6adfaacc80f7f2e19e5567ef517ea36e39d61a3e0d95582d92afd3c878be421180b1a03844edb892100a26f876fc96464ae32126f59098fe3f9af5d4c0a0a3c3be47b340572755bdb0de949145a1d151aeb630d75f134513164f9a7d8da19bf102a3bfd9c27eea243a3c1cec4abd0aa5b8b5a7c6c66020def89aafdf893536b65f5d3754bb3d6a348b16735d647e8c13d3f739ead6acf16d5636e853cdb757b9ccff580770ccff18f428497d27d10effe3040e4e40c50ba49ac8fc468b9c7bae171a6b1e03002abe301f94285ec0b8382af6153939b08d548c141f993c6920313b26b0ed03affb9ffc9fe3bf46eed056dd94afb15f40a3810b7c2f7da13df2c7cc392e68c2d3dee9ec3d80e01d91051e7b5da520db95b5e03aef41078463dd8100b5308ab980b95789e9acd2faafee6db485aef61c3e9c7b7d18b8e0c37024147aca4f29552a3c57191179ec95d19cdee973d994b8cc3305b89ef3c655db3f5082d6299cd283d074d88821ad7307d7345aa37bb95fa7d003acd9b2c2df5689eb66b8bff2e91cf321910d0892f91fe17cef170369293c331f17e9e11c6a999fa04a2158d0ee608b243294a24291323fcb7a6db4d61c683fbf579c2e75db61470235282d05dfdd92a7500312c62c5590e20ccacb568c57330db1b80f25ca67062bf4eebd0383d7a8baeab20550024bc566f61f8364e0867c0807cc0b3f45b9cc56cb8781860f637e26285fc258e94a801c8945675bb88cceb463c4ee571a9646f0cacc2ade02f56798265525a5fa08640637a8ecbdd33154c812311e0e88fae501c1147d5edf17513204b4267bb76a8517ea15de32b26e0275e9ad14ab9fced5120966c631a7612962d2da42d09f503820a6d7f933da5b28496c097c999cf2c4e182b56652e5fb51b927f422370b2cd2656ec77345e936f28724897d7f027672ba8ce852a3e92b6458d3e5d96a3a308cbe4a381770a0f3270bdfc247bdab4d19239641b6789cf974a43f4bf64dcba248f67e25fa36b3850ca8d1244bd8283a99722cbbaa4b488a97de7cea7b75cf946d7259e8e81ba195668cae584e4df643e62a3151a9ffa7f322d92cd66a426214e0cdf148a37b89ffeab52956d089ec6725ddd6932eb3129ec885a3344c0ff0121ae2ab3aa54b796a7dff551e10cb1d57ba43804d74c412db52f7d6124d372797b854a6908dd12046b79a12414f4bed1aad9611c09e07515349c9f5f5d53a7fb71dfe0738841e72f1b79a32850016f2df3462ca1a80e65d71ac72ceca554b2913807273352748b9904356419299234068ad2f8b55df4e4f9ccb13c0a36a6fb47166757bd0a76d6c616ef802d1d6a58e19e6871fa2894d726ffc37323d968bf0321e73c3f08b1d450c14260950fea701515daeb0d3725f336d80e63abc886e723eb989776a4204e562a31948828916428a5aa344a9ca5bebc6064889c152f25c1033ce4c645ef3d99b0448994a68d539a5b4c5d29947684e1b02b557a6cdb0171d13703ccd4f0bf66455a54ca1ea776a0d0f693098789e820cca7570b8dde09091231bf9e17385541656adad0695597197125ddcf4927063af66a17835639978fe5863846c8f170b0a29a8c43f45b433ff3aba39d496607439f595a2457bc711d655d76edeb58f53dc3fc58813c3d08808a506506abe0d042a74455d76630f8ab6adf067bf36ee8b568264c08c6d400b194c3484083c0cfc847840b5df4b0fcaee671408315bd696a0acb302d50ecb78709569490f2783eb1e549345a5f79a665ac0f608b66fa792bad37b5936cf813134aa27ecea8bac8076acf28a98dc602c476ce40f4055ebf67131c1008e6fb867d35d70bcc8c63cefda53d742aab3b5878af104f8bff6c67615dd26044f706780e6bb9866cfa48cf9c1364933ed0622a42938594e651054a0199b6acd3e3964ef2fc07e2a7b0a1a9dd33a83e3d84463e817e0f5a4535e1374cd963eac3a5c2b3eda88057b8a6c484c3dcb3165fc069703046f8f5c80560e0e2aae75fff75d24606748f280a84fc1e3d3d951c2548f6248cb22353ba6cd69e1efc891812821f4cbf26c5bd94c07b0ab565e8a26aed8f57e40b4bf49ad4b2b4c2cc9666ee565011b733f04f7f4f561f4c3e523955861c47a71681a9ac5fb527d385fb432a99c53991fa9b57b24ba6e1068d5d4a92e20cb116d21e79d03cfd9ea645fc08251eb994f1a65d647748b0c0b7fa13b6ca01611528741702d0134645904cbc81f74db06fe871b5c4b3873d6b510e60af9f5c5e79b3c9d552f202eee5d98b1a71fd39e58d40d48d190307d12e000578f8109e1b5002076744bd003f0cc12e4430e29e71e4d0206a8b3a79e3100f05367d448f026b45358d8452335b0f9e84f816c0a302d2c08282b644ea9846a06b89b8861269c9de56add7cd99ff55e43662a750f830b16008053f4ea3453a574ba16f661d18a2a33542ff150aa4328a92680e680e7a905536380ee8a050dae9f9f26352cb9c80557c9afdff534cbc1933bbb6bf3688f098b91c3152268afdb26a254fa331c29f06f9ae3923070c2b472e04c889cd8348b577615646b9544b82aece47319c1300f41c5c77807ed1104402eb4eec2ad2c6b55bd5c8b5968d57a8ac95086471ec551f216b41c2bf950562167ed3e199db956891130528a5272514360c25ab752d582737780caebcf6d0d0d3036b05921772c3261c83ad20fdccd2515df2fb52ab908a78f473d9ad307c03d67998774e9f756da8c4c3be4777825e4611a41670abe1a80507a908ca36642fca977929dab0ccfa3ebad4e58d62045752a9584d2b7efadd9a9eac533bcff360e929583deebeb89745c7697003ac6f02db76bd995c87f18e27b9a505f918cc3dc80c63328f6aecaef03fc218141e287868f3e2e6b64d15a330cff83a5834ec144a01d07bb8143b3baa772bdc66323e0f1fc2db7dd51690ff7304133d78ef7b7514436560d7e14f462e7143a39af450f6fb3aae1ab6f5d9b15cdc2bd46c4fe1573b47590a9a9f7141589c50b9a83676fb1b3615d211eea9888c8869d6a3f9537876ae0c57deb72b0206ca154808f6c8fb7540e297558f146925e42948b0e06905928baf7ea1faa38793e6a69324872c172b14bc7698746eb196ed354e6fe2d8fae6763f6888e6e360a062a95b7e5bd7c2f45a2b91220301c14b6862035e93392ca1a4961c7edf0ad2c329ece25d40efddd77a54bcd28fe4592676080b22050265d046e602e5979404d9a7667a1540b0293358d58e72e3a5b3c859f1f46f16904286abc54b91d0077ffe17e99b8b68ad0b91621933a91d9cbaa67996d83578ca3909d6eff90f86a98a4d8c235cbbaaa03390b6b1e2158028c1774ac2b48668da2d73c8e4df1d3ce31b537602806090a38be2fa20e62853ab73b47720433230243c943802025b62829857e523eda3f4ab550dd5ef522facd70a784faf693c51abc4dfbb05887593fa2f37711919110d2e9d54d80cc1f04abf77c788e145b20d361f6c7f3fc8ed92adf726c8051533680cafc7ce13917b034b775fe4a7ef8564543e44e2923cd5a3ac212e003f5bc57b56904b7e248ea3f9a01c70d84cd7fc28f5ec9f9818e9a3cc0bbdf621a24e0812c706dd5b4aa25de91929f94ebc1c4d1a04a9b49a4fbcdde1b7a21281e951bdf3c7744b0180255ceb2efd1ec34af6ca9c3dead4569fa58ad06e4d9a6f1a2a348fb332c18cae3c45df170f805f68e981317fc3e1ee52cf4fa150bea17e9ef15d95e8e3c69cf5c069d38b0e0dfdabad7a897d3d6e20b7553abef72039bd0a38fa30bf003248f012643cc36805d84f00b83d8967adc28ee04695a811c7d223057ee7756acb9ab597e518e099cbdb5f28656334036ea79485311293bd013efe2c17951b2ada4007a8c81d94cdd7df5c0e5570b7a5a6a1b18856f9dfb94e97411fb609f1f4c1264ab85a4180af3d9d48366c8282142f2ca16f1f88f615a89d98be40ea9ec4a1b86ce86b1221fadb20d55299fa534013595e8350b48d41816012b51339699d728511f88cd12814680a9bf4e825af34f9c3e48a0f7893c5f933e840cb69a329e9d7174f8711d4d42dd905b1688368661cdc7d937d715f60b659872786913fe5def0d7f7577702e6c35caac8227bea70efa1b940a5be5504504387aa3afd304b65b6a81e6a3b08784a56ea2aabb529bb108482f4c8a6708de903f1361c65df4b17b711d8cc2bc3d73f9f77861b03ddfc4c86c0a03fef65ccb214be7f63f4ed34b76b19ff735c51e85e9940e5bc8727997dcce70326522182547bd7992547bdcbcf4460b1f64951c9b1597d5823c7ba377026367b3be69d9313fcbaeca5c2c8fa6c903809ca62d49c9edc6a81d1cf2afa95e4312ae90bbb00637a17161d12a0d0a06ffaeb1c6fd8a816438901105403f0b8d780cd060d7e2382a8145858134adeaed83e8469fc396b5ae1b9feb43ad6139fe41f40107e57d4c6f50b0791c5428a4d00e084e279f067d14d90eaa20ff2926fc0a8f3a2274dc538da51b391c437dd9352a5b40535224903d0fa54e7e8e087bb7780da1986962c79b4bd4a8eb959c5546ae540e8f8aa45424d089888b473e1cd17c7b9c208c5d44f31f5716176f83c9083598e2da3ba0a711b07dbafc14a5265dbe1a08fda0d82710a06033f78bef2f5d9fa168bd906085ba67d5be4ef6a24a7fe6b6934d7b7d4e222869b9a811720078eea98608fd1e6c3e17a96ef0126ecb777c5cbaed4cc24ded9df411feeac49cb76c5f171546cb2f73ded21405c4fa889243db7e9cd243b144381c86d09ce36b8f7f74971757f89d47d7fb3b6e0007b726015ffeb7ea9ac2b5fc77bcfb37a314d4c4707723594a68a1e5800ee0d438fa68554d24656d20642b5b2abf7349f76e116303a15d58b227972568fbc4102dc4057bdbdd3a7d6da706035a369525e7aa606317782baaf23b2b8f70ae524c78b9bab14a676ff152672ba2843c2d392496076b2de9caf3c69c9502f2261fb66493907a61604bc221a8959cac30b9327910382b6b3e42fc5d1120329d7e06578c2e3ad51b3607e7cc708e3a62b63a30cf94a18eaf9a7186a14b88bd25a118a1d5bc0977a3237a24ff2f29164db9e68c8320a6d94f11532fbab86e9495576a9deb164a6360ac6f1cb7a6e00bbe72779a26dcaf054578cdd0e8d3e3bdd6b9980e76c25522fdbeb1c8f01d28230c943d833928b072b5a14201550f4a8228bfe158e32616c25ddb8753eec876fe8bea58dad6ad61088bc8eac534a6d8c1fea1c8fc4480a5d1501b212b71107cbaeb47e6279369cb0e26184aba6ef399cda65618c1cc94072a6b5234eb1304e7078e02ee04ff5fb6c6f5906f6b939353d1272a9600d4b1c106eac41accd8b239a50e8ea826bc0ccd8cea6c7650604003352b614453ed4fb8cc5613a5395448fbb0533aca30110f3c3157b1918c842d4dd01335d46d6608acf77215d18d3df2e0b4186cc85601001686d718bc9080decc3b472c5a7020fce7d9c4e8844e1953a29bbb32ff65c2b89fd98721026464c0c1f10733a1840dda4f5a980f993cbb565e8040656c8bad76194116417ea3b047854550c1ef9c3b695113408bda79e7ff876bcb8c97bb1f2cd4f5a61862b5a67eaa1b2c59abd66a7ae8a716b1701f420c0090e0cecaa6e68b6242ca3f687ab0a91afd66413210da70dbf55d480547680b435e1a56aa8c042f4b82b0b00180cb7ad89a05130c24ffba3abde7851a453b992f8c09e3d39bc8fa2a519caa37bb3d6285b05434a9cc3e28b453e43b47a75860ac0918fbdd1950f23f0da221b1824163c21946264e5b45cda81030058c756b55354eedcd2fa53a46bc3c093bedaafd8672086c23cdcb9a60c4660b6e5c009753ab50d06e6aa1c1eda7bbf2dd548479a1258cdddebe01967f853dba6c7d8a53cec898f296c4fbb0d8637fa0bf094b67f3fc973cea53bcd27000d928481dc39230309d5b73b965175e316a8c9e0b3c04ac31e56f9c597c581f8adaa91c8d8a7966acb02c566a6350c23f8a10ceb8c64fbe5fbf850ad0e0399d865400697a9d8890e3a3db8202900672d218eb92baff9638273dc6b04f62edb60e29e5ce16c118c5865edfdaa802a2386be3a9e18de19a4dcccb74085a12b533d7cb390384881d2b29ad749c0f9a17691b0d51fca61de2c611a140bb2d51bdd225d8f8fa9942c3e2a3ea07ea4a77f2545f80ca24e50ccdbc965f3e6ebfaed95c3d288992879e18156e03676e6c984a69680dcaa1c2367ae403a89ea1aefc123a49cc8297b8aab4712dbabb38452b7c3b26f1dd9686e6ba6750ef3a4d0ff794a39af30965524f72980fe601b9fe7e31b7416e5e5e0c2828343c56ad260dbf8ca11e04e1f0e9108640afb9f2a682b6b89a580761e0a248af147047e92047e1772cb6385185ca192363fe911952bca70cf89832e7d2e309b9b11e05448f8f30da46e3214e11ec81557347e1b9ad4039fcf8bdc35e6f5d809e43fb57ee5e5486cb3329f266f6ac3b4e2d32a474bc7110a2788c03ad1a331470a37e35f4f4a1261e7c4971509e4abef0f634a45dee99f616c0bc640f1506f22852a3dc0aca94611406795c4aa109e27d5e62210de3bda1b9c15ffdd798ab698139fe7bbd4225d5c88fcfe4b615ecefe20f0b62cf8acc59ceecc0e8649b62c3e2d9738b07c614c6a6552659ab0885e76dadf6e82fa833515114908ea846551162f3717b81b186036f0ee8992d4dd6aa5d25bea555bc77a1609815a6f8e7dfd50536ef9b944d2827fb3d4909e2115a29e17dd2ecc143d537dfc9ea1acda2a6959b94e632465d7c713542f8a813614ee140363f84d57b0992749b969290ac83b7aef08b79a63374613099db8f4ab65ead4dbee3266ba4bafb11bbf104b780bb541a7f8471034ee8d113b060244f8e75e3953dc7c663df6bbdfe6566e90084646455b6d844eb124953093faebcdf457d071b342b170f8bc9f5b1d8c98fe146b367f8a48dbeefadfc5ef2d27b0572f96e34f51b0042da7f8fa4e79eb3eb3590831e73f37e3e7ccf2ebb1748dccf2b163b6c4e8fee7028c2d0d261c2e81589f755c7fbd8857b1f8300f6e2516aef8408f4a11c06d1ddb762effd76b6978f95afc6fcfe0241ec7cd1b389517afffb3d45fcbe09d4d8c3c1f723ef45c3be2768bd582858903bb00a45d17fa928a487f0268e8f2cfb6a7ae7a036d111f4bae8864e44e412cd21f82ae5db004ec46c950034a3249d3a06d9c40a0caded8f61964980c0c85aa70e836c624586d6fbe398652740d064b5047ac9983679867fa6e779c88fd6bf05191219da457a6464ad53c3209b582143ebfd31cc3209101959dba9619049acc0d05a7f3c669904088cac77ea18642756d06895647a0080f6780680b8f524038fee2510f428187219f07d33844e745f1a96fb8dc3677bb38161b29407150351a15f258335f1208867e6017d9491e3f8b9301e3cdcb08e48d1023a6b9b1d2f60e4c629ff78cd7628440084cc4321df4fd8f18c16f6689ced975be442082d54fe341841cd585475806564ce2dbf8591fb1752e22d1a8aebfd59365136d614e842cb8ff701f9b9019bf669f560b5509d301c6d6a64886718f2dadf050d5411fa5efd440e83bad9523df30a972c9c21cf5be22b00bf5bcec7cf1dbd4fe70ee3164d0c79de4379279ac89122c49da071284f2699ffdb77dc19a63eff4d988c3b0105e7433befaf72144f885754738c5fb5cd3f7975fd79b2a0d4c47dca4b064ad7cf712f3be44148f18877acc5ab32a8a0c5058cf126141707f470e7a7b179bb78a37d9dbd1e1e7acaf396ec3777423de551d381b05923adc4a81ddfbf9dbe319567dd7cd07ba511210d84609e9d27cb7b6a538128b18e24bfc6b484c074f1a302dcc1f23ed84a59f7fa1d20bd1e7505d172f9a65deff22e55558886b8006f149e53413acb061e2084a1933e0fbace9fd4f2a8dd91f10a46f44bd05a68607f8ddc2cefa9c2191c86e808876a40f58c9586a4adb6599ebdff416ff4fa54888bf7c1d845917e9e5cc3ff1c3fc4d7de9ec5397d8a16905ca3fbd98a0f76796c37b2ce1533c6c197375494356f0831a3fa1dd04f73f18f0b0a4ed00c7ad05cac4f9765ee302f605d841dcc5d570746ae2d8f58c0951c84014a1ce67df02f9f26f115389d77bc63fa6a4f2da1dabf94c38b22a665c35eefac98f7fdef7eb76e524d52c197d9d5ceb4cdd8658fe15a31cf92e08edfd72c64beef567327971a14b2fed7e28277c8a751cceb717fb32646904ad74ba37b2c563fe5279ad1fea5e9cad40ca302d8298a71b1733a68fe3ea2e6e69931d8bf5aa862ded2575bc6f83386f0a3ddd0d3f97a14f33e505f7c3a69b03951c2ed99763ce89380b0b69eea877fa19817942f66679ed555cc331a7c602a5a360bc4c615f39e0d1339963c767c7b2b0a59a87299e03d5e22496d20bf6b1ad75d4545e259d1005885c9e0a577dc65defedde4bae64394e80edab4bc6c33a9fdd57f6aebb2b52e8189e8511570a85ab2a836bb2daaf759a65b8bc7b149dc4c5df30e8ae6d68bd05528929b78e80b91bd8153b37100e25691288ca231cfc7f3baa81eea68cd0dcb2daee3ab59c74aacadca5c18d07951b26cee592fc6eb164a06d4bdc91dcdec705b4e2501ce7f501490574a9bddd40419567606cd966a768556b27355f7074c35184ca477684cfda3152f311d48ff7b1c09e6bb5fc96af6c5e93345fb28faf92c0a1e80645b09c507161a8267d606985f5f679d05e7a10f301368233f3dbf78cf428392c1022bb8816547be27f91cdb3fff42c9449531b7302da7d9afee22bbfe21f5b5d26881fe0de7a93de5fbd139ae556d003d4adead5320c4f62dabee9c6c84ca47828b189820eb8982546fbdfc3158dca81110a87b9a1e54ab3e1790d27b2d609a2e563632054ee54ef4f74f8ff2210832a7813688576e11f564d5c9b8fcb0c4d52f4a01b457ee03b78789091312f792467bcf0109cf2143cbbdeb5bbbc3e3c878036d078db3d338fb955333d49d6ac94e0bffada4f6d077de1e65f51c3a7642ad095385445a7dc2fc1a598e6cf22892be17add76410bba34019f02fbb7a333703b181e248b72fc2bee20aa3f5273062462214629e14a03d60adc73c918f2c19940a3d944242e5c4669c3f001776ecec726b462a7352fd2e66c93e8e871f824d8ffcb47ded67e44b6c50d8764a28381664c7fe1cad9c5695b5df951b342704132cd7f02a86c67295dac704c0064c42240d3da9da50f9f78a0673716b1173a798107aff1929475a65f7496cedb7d50f13fca1e5f8f25da4cbe50ec23bf6fcf899f1c765dc6bbe77c7309c1f198a42c3ba715781835db911ca8ca618b6c866f91bcedde59d218efc8c1c0b97149f6254067563c20c1dc56dee47c553e293004b154f6415e70a2b17a9bea10515e1d25ddbde9aee00ef19188e37d34940f2dd33c719b0ad7c38c3bc3f789856083bd70d42deea475805d52df1782e42691b224296646be968ca690f0542bf8a409b72412b818a3ee9514dd3bfc3ba7cce6c4b4348114d59df5dc534f77a389e29a076204260cf518a4c56a2741b192ea366868d45c5f9b206a0c789318f420ca6593cf2cc6d54b6919c2969c90c92509bb6c16fc2b9b6fa51a2fa9ecdfcbe1b2454963a840166890878dd839a9b98ee1897413fb916024e9048e524c2edf17e7cf2a6a6d145a9ba3c56f76156a9e3b9ea0441f69e40bcb27aa93691438c5eb4b666047e353ec87603c2f64088f54ac349abd382fadc467bb10a295841e4bfe9ef11d01205ca2c3c046582a75d3c64ca868a2e9ceae5dc14b4569df2cc1304b73ef554c00a4e9ceeeb9faf2aea3195fbea179c26ed6202ec655c5c0c96e280a2e56445172c8d92441928d8f8dfb379843e4970edc17abb03360392de7660931ff61907f19699219e6fdd86d21a306f1bebfa858ab5aeae1ad241f3499c0cd366ae7ca2b5c773ffca0cbf182a87d516d4fe22e51ff813657cfeff2010ed4f40a4891d25e02a76c38c8038b32060e32c69b4e13572e631867e5872b2ce60d7f64074eacf4d51e076e3640e721b8633dde19a4dc4090e13fd056ee97117db67b4fc3beacacb5b986feb520c5e2513f4ad80063ef87c7c739eb56bc7a9b49eda50213fe532b77f83a8388f30c25576e8dad744b347da82fc2d504732d233268448f4ea0d99dd351ae56c9e66b59c37c9ea6eaf860a20d05f4ea4c7e7e867721006f550a02f7d16831b5914663c1770d3a2a155e448b30cbbcee7b04b04f35d63b0dccac87c7125736fde87e497657ea5849575c227e08d51ea015be533332c2081cea25c069165020451147e81c65bc4d5e3b35450fa01001d48d934e380e7daa661c37cb987ececcd4d660c867407677e97488497e7480f2511cf39ffd1299c9584532dc49f143279c64b31717b5f6ed419592871ae5aa7ee107b9c0f1b500ee2d9fb1e99eb65b49e073ca40bae222787f58cf971d45d4eeff4d63343151d38c7bccc2540983c4574f78891f186a9fef5a3a04429c4038ce7a09c97ae2ca3d274cb3c8a0080cff7f71ecda8a827b84662f97f100395ba7d228b5a342df390fd9cce646f869b868a0e8f7210873a39801524a73ce6405bc5258c9eb09bdac352424b52330722b1a5a415a6464b1bb17e014a7fb0d54060e7cc89510ed50533b515562af1900bdd56e6937358861e5a7c6384162f05bed75e2d49814894500f807c098421154b102a29737bd9536f09a68de6c3d428844c9496cb1cefd1188e6d5653368bdcbc4caaf83e474f95ae2cd056d27b37f1c406d56c5ee1bb9bf3743718d6809867bb8dbd61ca65d31b2238383a5f3a1ffb3b373b9ff4ae3ebe6110ce55f0490a6b191fc6937d688010f47aa2d1477e4a64bc7ce5ba4d6cbc01f151f65391ff1f3c37c63f85b5a3a82b86daaffe4ee9c0d58303ef0513c93ac2d50324c1db1affedd15a7e89e72d1ae9314084083d8870be2e4fcb13419e5da7db4109e70f22f23164ffeb05061c22875173d663d5c3973c7184ed9c85819d6eaa3c81446ff77e0d303934914cd5f6768aee911584217ab0f9e17c2fc910469f11bbddf738f2906f78ea78f4ea0b428b53d980a08efaa80cf445ffcfbfd626263896084f74c0563df20679ae596b665ba2bf68414a9b382f8abc07e656a2a5505b2155cb94c8fb50814bc19548e1575c6e9c3684f9cbe7582e94eb58c0c4aeb7b74e26dd2578c833e6120577706ea13799e4304979b7a112f70d5a3d194afcb80ad88653783d58cd489b3b2eb42935d28e54ce76e3af4cc58e0406729681a0faeaca012f3e9b8c18d6cf59e1e13591ddcf2ff9f97025d0c0cd3e5380f7c32ae8ce5b8692e0bf5861fde4a40b30c3ec8a682edc9bde4fdcdb842395d0a7769b048da1f680cedfd0809e615215bb89caeebd781590b3ba44adf0db2ed09c7f3dc4df67f937bb571867258309f01542f23c637543e819a05c13ce029d81302b587e38cf1a87d010f9e219a97fa1658fc23662be7eea54bdc3d28d7faf22d8c37844f9e7be8a4877f0ec11694abb83397f549579dc5ef6d4667174597047040cee72ca784960c18590f57855bda325afff2c73b43b8a13c16a950f60b7afd75e515e853af0d758c1226077f39554f3338c37b4a37f40bbcca1946400d2ec3fc181dc8cdce1ddbe725c1f9e9f04369fba69efd5b0c43471900287aba283a0d3373a104deea273ce79cb92e3df987f752f91c773de8f20839bdd31d1d7de41bbcc5697715b7708d06a0ea1a16ee14786e83b1f81aed3bcf883d5156a288480e1e5b84ec5fc8b446b823a7dd822cc3a3c7af137ce84ce565f8c020e9f950965af119ce304e07adef4e63e2d1c133d2cb0510a4dde3df2804b9645a2672a1f61b763bf74b8ffa581272674d255e0c673b3ffce940020ae2d14d11871c06fa2ed199744591ef8033fc4f7f2705ea7f1bd2cdd34fbfb6037317db74323f365ff1d43b81218784b1b3cc551dc7a8e6c2585df13344a603c4444d4dc46b5871cd47d93afdf3f39e41a168504104ae0371df8aef6d042027f40f7a1ad36dc3b180c196f7bd08238a68f3646803124a832079b4559b8603044ccdb639ff2e4e715682f435486b19b4358af3015cae379b530ea714e40cebe966fb1e450603ccc6b6f44836fb81db3516396a3002b73236e38cd843792b1c4bb65aeae8d8d5f05103400485254997e0be9871672617a33c10c19f2e3d2303c4e53c5a684e40b4f27b735259ea6e210285a447700f62f06d8d307f72ee03b387b028598e70b9df2cf2a568a006460e8f23b166c4c64d2bb5da71f96f35c3c7e1ef88173ac81e33a7316b733ab9b7a4f5a68cadde74fdaf8a8ff90f58b81af2586c36df91e82211a807aef1f78d4e8c2d2e252dff129cb743dc2657c0fccb4b4dd7d025fc6bf9b485504387841d0b1ee2e5a1d5a13f8eef6ddebca88bfd969561a913b61853e1be028ace6ae687c31d647fcb97f7b2e663617251174d817e2117e4cdbed66ab8a104513264fa8a327ffd253d6adde0d9c323256f52a9b05fe6c53945c9d2b3b7d53a40f75fe2cfa4c0dad66f6f520158630f61155bef42d81af5f83fa49c572616134f573f5faa741635a8600fe095086663ba96b1d02355ac595d0cace55b8fc6eb9b73bec202cfbc81eed298ff8b928ebe7769da7387f39ce26b6d336c744b16e3d60be0d772c4cac4f6c4865d6835d403cb718b604df00ad2dded8b0cc199d7cf0f50f42ca1a221da4a715755e9c56ba9d62141f6dadb5b218b558880fcafb2a4198ea9bd2258f26d60b5c117728ed07fc889106653edaa9c5b3263dda8bf4aca99f9f3a228eba064c4dbf166a53b4e02189017285f347968ae46a4a55c6427edcaeba4542f7a367f932960f1b54132b4d8156e917b58f296e91580a5bd3c4ba8b9518ff083b45cee14f50406cf969b0cb9f015b9ec8fd5aa85253c1848443ee45694212f20a785efd0ccf8358342fe545f1ed6d39f76003c9967eb63f5eb003e0b762b6025be87f3a0f8ea42ea1b942a3339cc1cbe3de4bfce11579935c7485992abcd4c0225b449c9f35f4a1b5eac735456c417cd6e629f42f9c9a469808eabfd204fbbd6aea65918f610bafbdc296b7de1a9f16c08a14d431419a37c4f5120110ff6ca4bedf73090537510c2b8cb837864693fd9edbebbb5afceb227784ebec2d8f2d892a4dd6194980676e6e7b845c2dbe1f0c1319b0f46cca2a887cfa5004fc8a4115888df6a2e8505b2fed495e53d265f42b041945e0c44f2ba5b6b1ea693e1d93672f681ebff61eef2225bdaf983f49179a558ae6c1a474bd84d27c363e25ea4fdaa64256932ea33190b6265a38a46a2ba6991f99508c11bb568e4c6878de10482213a6d20f18763088a98189270d07d1d6ab279b6acf9e1ba444b59447991e259d31de65afddc8c543b5f09d5233c62a5048d95b21acecb3a28241954427495482a0eba08dc9dc65663b5530aeb920f78a9fd9890b0c02d6e8f0eda9a05b75b12eefedc963ce5091c28be783cd8e42364881fb8f35bb5f191bca232d02654a7d698610eb66b6679017d7698630a4e78a685b00bb7080ef68fcfb62232980b29886a44d57f3076b3534e45e3c265ad8ab143e985e9abd91045e2c8dfde25cd817936c53771fc7f983a17c67947f594760d38450867339980c0ec8277ed5218d3ba32b0170ee5900cf5e238a09088482c0e7a4c2fe8fc5d2904e086792cf785e44a6ceaaf1d146efe925123b44bd143da543c5f64351c4f7373ce36c61caf4fa14d59c9bb69efe04431d47dbfae6f34255bde24fe88076f1821bf7c7eb13e6bc3c90afccf5c1dbd2437eae4ef7d32b58cebb4ff77b17d36ba6634adb6b02660ab22d035f3a57206ee66eedef3d4ac341a0a921a27c38d091feb948a5b35cff18ec15561587c129ecfe39a0dd18f22376d2c5ffcca46a32024ad6d3ddd2bf4f61b018e026abab3709eadc295ec1d398ccf2061bb659479f0d301ee2e17c4318d14574b7969bf54a51bbe287d97fd24596edf23ef6459f8e442c18ae07c50a56e6baaad191a539c440b403f8432261d3d3ec05f3f0bbf6f3f85f2d646f9dc37dc8a6a7c9faa787ba5a8b6d15da2ce016010af62a6e3b7005c26c86235572aa22c41fee10e925da32554f624da5a4c4f17d827aa7b29c9a583eff6da77ccdd7f41b97f46d1e13bcae4680916d7cd3b74cec25bfe3ff6d18e33476edbb9b1107a93f165224a249ae1654f668dae1d5eaca922c6c01e440bdec1f9efeb0510ac120d3b87c0537afe0ac64803a013abca7e7ed4783e0ce94338199d7103d705a94d70dce6f138fc548a3b20e4137d8bc6b2a93913668ba4f8c5fdc7b13fd56586a06417eb932ca760dc6ec6f90a566efe26658be6054cc83807c57b974e8c73905eb9ea8d0564de6cc54e8ff385b4e164bba513ee2f7969ad4c16b41e3bb71e62a02ce732057e38097ffe2b3c5a1a5e65a7eb30b65fc17240dbf3eba5628d916eb4bda2e67de56e39506738b00b19b4230feed1da75950f370dc616eb9626e11690b1c962dd2324ca18b05815bd7e0f0db67d3fcd9bb04c1eb66aaecf5c0ba656e251021a97129134797230a94e0828b49d6555b0c1070d2b9f9af65f5d9d4040d49b3727a5df078f83fb837eba6a860454dd15af8053ece9d86fa132b31bd4333b8797af5095c722162b7e50c3893e706603ce2508a109ba6e8cc10563f09c2119971f09a9866b72364ee1a804b07722eb9a240446eb3ff637e4717e3ab42cab5b413eca4498f010878af082db0d5e80bd024ad27777e560823e7b6fbf028fb80bf6248885a3e188309c4153ee328ef8ff1f0a55303afe505ecc5ee10dab338d99d306430842941bf1fb06a1baf3ef98fd524e183909e1240f6768da60c888e9f597b859f6e1ddf387c37f14ae5b76d246e822761c12b7654cf5eb757ec8fa585e19b13a1feb10589666bda4f249b5bb8ee0856157f90c127db8255690c1851f51f815df39b7a26220c2411d8783e92c99e1e76f98c087b7559eebaa5885eae80799f581bc189a36f8287b04c49959b9e13c165be2163c0659401d0be24e03fd612b5d3d463791f1081a14eff24fa579df1d5f0f00f63d67d8ccd9d5ee3662f888703b9d5d1712df60b386624ec62b3d8abef855dd4f0e90fcbc9ce32eeff6fe13c410fd8d9851fdea21138bb50063332c2ce2efcf0168dc0d985329891117676e167de6129e67f4444ecd2e27942bf15bbf48d7758caf41d1125bbb47a26696fc22e3de33d2c45f78d881cf6252de907c3fbd01670f479996ce2d379ae4897fe5b2a4a31255ddf65610e842d20f5ff60ae0cfef332a0f87fcb03c56f591434678c49c28b4a4f886e072e18d0de896b7e8917038c4ae8b4a4b551c0fca922f0b55d913b87956fbf5e15cdd7e890f5e861cdaa0a1d019fa0906abb34e3aa42dc9e223a40819b0ee2764705222174ea42091614fe146e5dc7b38f8bd57d3431db6c40446f0611fc1efa4eb947f60c639d7009e1553c5be29e8f635e19c0257b3328b4c73d4da30c6686abd28437fb52e58a250533188b7c01e54cd76838c99e1b4a84f9ec03a88f63e061c66ba585ce41274c126708f25c548552a48f9060163e80e5fbd16efe91a180b50fe40e59f12e9e53ba67e927c07efd8f66b63e12a23a314fbe81973d5d6622d0db0fa569ae4bc090538fdd44d3dbacc268969e929e3979f1b6a68cd1001097c18b2e9a7f230d50cdb9c15d2681ab086ec48cebe47540a7f524e9e52da8825ce591d01a71e52787841a4fce7869e6f9b5432370e10d2f8de39bbc8b7582ea325a8416269dbd0039b974542d7b8b0a073825355a68474574421ea8f0903f541fca49368eb28f8ea80119d82436cb7c1dd668c7eb45024a0192ce27ba34d0a2a4d19d97ee261f239e62bdb83b4ec45f6d841950e86a1bb8a814a0ee470ac37b97052f1812974a3dff1bac9b96677d89e47ebf98b4c74f0b3b92dc3d005f6255799b5c07c976609288641bf46d32e4e5b5410d13da6957a2b94bb169d91871e49b6d38342f49ff4a26ace00f7deaa50c280bd3446b5872ae6ec692114e1f83241c6e579588be08e9e8b468e8ce4e07409a0d3db6eaaebde925acf5873dc9c6465bd51a13545d7c19cb661bab788ae106fa8cc8e7438f65653b5cdd2d5923530c371336d68b9225709d6a0b838c16b3bc1751f5b7df5d4d4cb720242f7f76794033afc696a3ab4c6c1d24994b371f24607a2fb588c73df475ba8ccf5da35f42b38060a58aa015c02c1c60f6046c20721679d100c4d3f96929b694230600dc6813de669991ed5575a1164c71bc447715143d705c72ab8bcaae611da8f38f420495b1746dade0ac582d2f5f81a0012eb26fc7cb9ffe4b9ab16bac052a6c4b3fbb2e5284a4d01d91b19fd8948f90eb2d767e1746e5a29ab839e67c1b51d7ef896877cc8dca9f64e6e42bf84494834f2c7f2d210a5f10776f9d20f984696cb86dbc1888b7fbe09880973875859b167b1a15d0e5e70178c14780fcc92a4d6941c638ff464f2ceaffca13f4f7bfb8c2a5e7b702753f54aca8266d02d40584ff045d2062195231000cfa2aea500eff23d7c3e3622b1cb7260274927390ce898d1886efcd0429a001186ec7bed0de0a4022cb7c70ab5bf390ce7b6bcd7c6c0c60ae752ed6bf1373aa402e09e307d456c45d07dda12932831ce159fb592c9ec5f05385242f12877f95bd1fd718128c1f554ec22e31fc5719f9b0f3c49721cb905c62e04228b261e827c6d30b580e7c8107f793f8613b17a8902a88e82df93b09b6cb701d2149be4170f4b02d7e5c2d92bc77dbd435a24b84c00b6078f60fb1ac243f640da5cb5921968c1c49faad86f7911311d2cb050a6ee269a17147ac18e89f642b48e02355bf47b13d35c8df8dc1e14d21a242f3531a5969cb13a9080c9c14d3d0b088b6c1677f5dd202ccf502fa54ea7a59209c5151074d55b3849c9c7414de8a78004526e6f9a6228a26b63c00b91d279ae1f13c263ca17629be2992b8a2693b9b26b13cd433a136a05565235bdaf15eff2490d01c9eaf776246b8be916858b29b6cd964efbda59452caa707b90772074440b27d8b8a54aeb3dc1e74f7b6c587ec8280ce942a2959e1e35449413931df7dc07ca852253e50243e7c745ec3e64d96c6b16402ed7ba9b035435d670e4189360e8ba003116c9c3125b20103a05b22d0a9f069fa721beff21bdf922963726cdcd0d961fd4c0683e1f2d2e2e285bf604c182c2e7f41d3f27226c7c60d9d1dd6ce6c7b1e8656dbb05dc8ea4edafb5966a9b4f73396dfd064f901b8cb0bc05bfe067ff900b88bb7c169fe71f0d913c0659e6e87315faed60d5f12b1e14b1f007ce9842c26e56487b7b81f0b64838252666656aa131306658a18550a45dc397131637c0d0f7b9727a1e7f59757d1f37acb97f4bceee261f4e58ef4bce68e1e7e779e22eaf02d048a5ef99ea64a565258fe5f25b64dd35c39f7c9c9c9a9655f7accb35676389aa1942c94dbdd807028e28e27859886fd0c97fd0d8ec7bc0cefe113e032dff9ccdf1fdc87f7e1deabe8b0830e2fcabbc310ab33e366099bcba865f432ca469f9151aa2785d5f1b0438ab8136a41b6b8cb4b8b8b978be5033a4ff7d5eade177127b5aff0fe44079897e94ab2b84cd4716971e1a1ecf57688b53ca2b5b9a069216259ac133e30eb32a2bdcdccc8c09831351d4cefb93198113923eac0ea8c587335e7254f597bc20ccc2c9d1077629bc52c6d59b03c0f77f919bce565f097dfe12e5e87d3c43c0effefe1337fb95a5ffa944ed8c870d8dcc8feb5bd7fed7b62d6bcd8c0dcd0bc78cbcbc5c5f2a21ad9d3c8647f55e8a706d5201824bdda2b2a3064b4f7a91833dafb121d98753782a16f7a78205ce665d0fc75175ffacbc3f0967fe12e9d1fe07d9074d773027c4ae039709c6d0903bc021c88af3908f87afba90af80a43ac405506adb6d4fa1bee7a1bfefa1c209ee6ac3890df6e8cf56eabdde0c20e84f1a2bc2b2529c8dec6677fe3ffd7631ec7655e86cf7ce934dfb98b7fe12f0f7a0bcb61cc978be5add2d57add94aed6eb4b1b4f0f91175ffa38013362f442df883a2f6698bc17e24ede2f441d1c1a1af6db653f8386c77c0d57ebe56abd70c49dbc7374255d3c47d479f11c1107de2c9e03d3a299717dde5d17714776cf5bf211dce633ef3558ae04293e423837f21ca42c916273233772a3afcb1177f2663163c4d81af6355cf6327cf62cff9fe131307f7de63b18fef235def2a0bbbc8db3b8f972b54a57ebe56abd6c6abeb4c1f8b287c805e2071f09e02186b89377598b422565fc86a803e337441c78cf7868c3fc1f1ddc7378dbb783e7571633b455de9581f9d2c673802f7df8b2872f816eccba01be44c09737c49dbc67ccb216051b30ffc3839bffb383cbbcf3bcd77830bde73563bacde7c65229c791a050a18e11a31ceeef1f6684be589f3d2c88bed8908484848484a4c4099b0e5fd66eccbacb0b119f1dd97e7d1d52796cb68a43ac3dde7fb04f2287684468e3f53e7c281a02a6437c003da279ea620719449d17b3acdddce4f8a9218358830ce28ebb63788c92b5f334bb3b9741dcb9cef210070e1d1af6d7655fe3b3b7f17f96c7fc8d9bdfb9cce3f8ccbf709a2fddc583cee2302f57ab74b55e2e2f9a06ae96493b5f26cd579f69b4ad67822565755426eadc19f40c65ccc372f4c5d2b867849779449f08be9e6f05df8d26233d22d223223d22d223223da213cd9744ca97163a9b79fd4c26ea78f7763ec30eede2513c96c3ebe031bf02e32f2f9716174beb24163b575452ca5a39c49ed65bc49dd77e1336458dbe586f296b658de2505a6de9febf36696b3caf3c3cb9a373cf5f441dcf6411772ecb0eef2ce20a57d670db3a0f7147b64b1b1472f8d98d59e7219ee70dedbda541e7eb81c3fbd1c15f3a98e5101bb35e83a80333cbda11c8eab412002f2e3d5a4e7a982f57ab6499ac7aa852253d50243d7acc4a9ebf72789af33ddda4adb99d9726b6276ba73349f3abe20808daca5a59a3c208e9de7b71e7dda16d6f2ca78a9f3d3fec39d75eaf767354a89170760b2145a181377ba7f7dd982d1101e71e21bf79654fbb1ac216f7c044abb5b6e8de2cee3ab2830277388cefadc3dd5b87bbb77beb70f706d63a1cce18df4c45adb5d65a6bbe5ee7e3e393da9f91157c2efd529becb2aaf3f121ad36b55e878590a2d0340e8a1b74715dad66229bd62a6d8a03abc8e090ceb81302873a2170a81302873a217068db6bea1b38d43d0ae37b45b213027b88d0096dab87ba9e90a2644bd60f903472638c31beb7c3175f5acd7cb1fdecbdedac763e2a11a108adafb36ddaf5e99ec0dd8d6a417a379f9bcfcde7e673f3b9f974e677543272fb3aff7c7cc05bbe79538f8767c16be399acb62aa776d869fc25fb7bf2bb9df7811abf6987248d9fdc61a8c5d20e458d5fdc7a87a3c61fee90d4f8499be6e007f7e77519df1dae74b962b14ad824e98bf54a5a17d6aba84940e2ed1d6b93c2ed99640da93f5b536eeab04d3dc49df879b6dd15252a08410291aabd3877de0792422d9646d274224195a4542b1356f982b9ae15dd6a2f57ab6499f8bb6ecf2d0f15ad54a91214c99b2d2b74bb3d242713699e94b5a73b1a4ba23e4161d51e4fe8487b282926d5cd9e1495d536ad80c4b85db4415c516a8338fa62bd74058853edd44a6a531cc579916a2535a85ddd69a1a351d770b7a887b4b8fb48a5389a484a7ec56abd54fe2485e5647991cdf49dd13017ba666f16c8e2ac91a3cfc810d1c5d5ec50ad56abd52c5191d151eee56a952c1c0e87c399d46ab55a6da552833afa72356ba3015f12b19dbd150811a567222b89be79cf61ec14e468c51d94ceef7282f23f3f64e0e12b95cd3c890c0d334645cf6b92f7fa2d752843cbced72c3dcff5742ce5168b8989892bb6592cd68b74eeb22cc51d6f4bc1c5e71cf113a8b595d95110191aad96ca6929dbed7c6e40b894a7a1e536afc36f9e871ff1403e9ff15ece041c892fc2f3ab0409e2b01c87bd4e5c3a34f0d07173d8ebc4359a703c6b8b1d1d57eb7644b858b996ce9f52d6ec69cadd92dc2dc9dd92dc2dc9dd92dc4eed2b4e4e6468d068af95e3a18af7b9ccb79cc6e7b8cc5db7a859db16ac9c6845eb532aa9fc960123c8cd8f1f3362c4cc6c6a5ccc62666468d078272350f1edfaf1e309e675586923af59d6621e079f7902f8ec07e0322f00a7f101d8c1afd3fc0d282738f8939eebf030a11c1e86ab1478160e04389d4868b5252fff6b9bac4c28ae534a8b243f4be60790a16a7463d651622d7231d9ae1f3f70a9148c0928154ba958744a89c9dae2de804cd96c0d4de3280ea53b94699a6fe138e2957018cf43078dcf7199b7e1b31b1ef39e07f92248bcdb7d6ee453d0b831e47036a0a7959da7fb6a459246bc1057e26b4eadfd4cfca95a0642beda5b8ceb5ff8eb71dc06259ee6c0fce63e37f6754478d7464e0b26ee785b0a349f53f3386e3e87c368b98c4fe66fccbc8ec79c5c4080b8d9b9c34c9ecb01ce680a0e7b9db88cb64959963db5bc59b92878cf8d398fdb7c88d760b9256c38a01c89e439582e7762e65c662e9b9e4bd95839db0d1b392f463218181913cc4ce79f6d996c46a73c0068e8e1375f030f1d39cc7f9d00a0861e34f0d091c37c72bf4e642e97a8e3b94bc4816d7858a351de86c7ccde7399d7711a7f8387c7f81c87f134b874b8cde7f09ac7e12e7ec769dee529ffb90cdfc3738ef7f2dcc32c61309395b3c1cad1f03ec46bf6dca2f5b0dc148c72e07818d0cec36ee3184839920d481c398ee338ea571e62e389898971a153be06a7f91beee27978cde7b8cdd3e037dfc38ff822dc8807e2b5f644b8ec3d87717dc6b768bc8efbcce3f098b7e1415e0947e227e0f94b1be57f82f84910376df8bbbf3ca017f8158c526c294be8c861feebc473db120579580d262bd7a3e4d6697858108f87ddae60a4c373b8e9ef2f3f71cff997b61b447b953f97adc707c8973722be048a89020c26ea780e1371e0197f5dc6771ee33d87f19fd7da037123be083fe227e037df72179fe3415e8823f14a787e910822609e4d8dbb3ce7b45cb9f33e22842831812280d8e41fce93849ffc90993f4998de33c3f45a0cd3634c2b30dd6a5c905c88e5e2b7ebc78f1f3234fec589e999d70c5f3aff977202c3fc19dcdb27cf030e1eca104118fdef70ff2d43b7674f81d0a46c33205fe3e7e6c66e6ab83952c41d777bb7e52c31712745dcf1fcf31007e767fbeb5e2ee373f88c77398d566ecd5caf1b3093957bb9b2a971a28d9395151afedb677ce7b0af51f39f9ba05064d282e98894c9ced37db522491390c969a6dcb63efb9295636d4183877e1d8b95636d51a3e1ba99080f82c411461001a4082045785acb64e7e9be5aad3c2ba7f2ac2d4ea093c58ad16a4bacd75e61e558b9225680fc6a452489701836c6caa5fc76c9d0aefce3c70d96980d1b3654a9121b28121b3632ddafdc32aba8e3ddfb0d55f17d35568e952b92821212015b4df084490a2996205272420dc619dface0bb8efd669c0b4c9ee2b983a1a852af9275b6acc45c2d979754cae4ccab142f954aa58c71a92b753774b874a32b99fd46d4b94336dad4a5f20945a2e2f776559ed21817341777dd685fdf9317f773812ed015bae20dba41f8f59ac960523319167760b86cd853fa4265d4a327f6d78ff4c45e3e092de9897df530fa82437a62153d49ec79f41ca3657bf9a9f7d16021d2d32383f9c01a311e9b0de60524edf30eb9b517971c6dfa13eff28904954bb9b4e413892985d2f6e8559ab0ce969598163674f729355b0f118b7d5e1edf5226a52b6ee8ee4fb018459dd2dc960a7b5e3fe5ebaa21cb3a62ff16e9bcb228c1a1bb7be466718f8c6eec624192a24e892d62cfeba468857474f7be73f713c87c2231a550598cbafb178ca7603c84391d6583eef9a4cb883b4a8e3d46dc11821277b2973c2cc158064322eee4d0ddbb503a74f7ad7bc49e2556cca049de74968a697b7eacedc6accdde7cec69814c76fe393d65326d4d25fed45c6eb59a4177bfaa5ba84747262b1ebafb140dbafb929d4da9125d03cf431b74074514438f896e4ce8c660e0f2d5e8c68aaccb45335372c20dbafbd38eadb4b054afd224556a02162eed618551d8eb25001315468cd0ccb85ea187d5a9c36003208b0809e11999178cf4ee94007adcafc74038c84b8c4b56c0dca4e67f6582a4e12c4abb8555be5429935597718d229b352808c7ccbe5a3314f6bc0e037bde8d4d8c8346997e7af7fcefdd8bbbc494aab8d54c26ea648c3b6b5fdc11f7256a028983ee5edfa36b1a99e20eb8ef1116a4e9e90e5504d05d4ad5fdb7730eba4ba90aa04fddce4f4d4ef240bebd3257441d13f3128d80cca105c9b222eeb81b06237d4694591177b0974a52a992543e91dc227bbecc4b64cf1a60205bc3f2eb1897ff06cbac41a34278464695b242954a951440778fb7971fe3c6442646d4c918a78ab078b9e2f9f4d3ffd8ce9cd3510fe4db26e6cf8a93842cb11c90d56f4c8cb8a3f3ec337147c8c69e9d45dc69a1d59646707c4a5fce8bfd2526eee498f8f3adbcdfd8f598b8b2e7c540f71205b4ba71577b36ad2b914f53c2a9d8437492d7b0eea3d34e4e9ab4cab33b6781fe7928a7fd2891bc7392343b7a841e212991c6ce3750659d4931aa6e206353892a84b4de0ac69cbdcab369365f2149549b773d9c3d9c4193d33ab74e0bfd8b515b5372f2a98dd17edcf1e911ffb27fb7ba05cd1f76d3237b03d92ff592cd3608290aeda63ab2d376a84671b0d7239b4692249931beb7070b357fa1264da653f5eadd9ff5ecf52ec88305cd5a290ec55f77981ffcb6d7ed10ebfc798759e72f57272c2eeb8d48d93271c9d6a0f41301a8810e9590c01aa49b9b9294c638951223a0d3b53c140a87a299cd4ac612a9528911d0a97e513be3f71bfb219d5cce9344d4a5d5eaba49eece7aabb7ff21d19c0a54719e495bd9bbc31a5e5d9fb031ebe48d3485246d82595df759d20761ce5d87bd0ff43eb0cb7545d7e65a416f37868b5de80e5da2dcb5b94632798d7447b7fbba235b73bd7bbb6e0c9d173e307b5e973d7cad15c86a9908294aee5664761cc5e9e13dd76835310e56bb53600ffc40ef0b97a03561480ac330ecb93638664023f410e8dadc5cf226bc5d9bd96c369bcdc230831feef22c0be12984425e1370dbe68a73f1e37cbd9c73c68f7528e8bd062d096807b6c1a12990b6d210e76bc1b0d6fa992b920db6adabdbea08dac377c445a1663cc5a6b5f651f2bca28345389c1647f842904402c34f5f9b8f528ad3518a9329c5b9f614929c4e7eb19329a6c3db5104b8bfb114ee101596c40c05b6d86685c2b5b6b189a9edaeadb764a90835796d86804ef26f756d42d2d39c10ff8a4a0a8a874f92ba936dee77d8cbd5daa1d6f84bd60e4b23199a4a36f8162099e78731c618638c318669fcdf0e5de3d0d418638c3ba739e0d39cec9ddfec39f66ccd79ebb53a94c0423adb5d21a437e03c620f04ddc30e7ea0f781d70a3a034a846ddd32615bb77e2bd125736ef8a339f5666baa903d858440af33a036a05baf3f37d6893f2b0f9b1de96607dff6e57c26bd56fca136fbc538df9b71b6df1594e27c315a62cef87aeedec68f0269b67dd2063f863dbfd3cb6edd034ff03c290eb595665c023d1226e19215a4aef33a28e0d5ecc672dc9881e2e06bedc5d6f620947530359e407ab6e665fbb05e1078f4ec9a44d99a1f9be7909eb3b71cc5d694ce207c2841910f4d22893a3e30ceefc3079244fd43927ec61b668decd5b379d2cc7cf01104cef9dc4278e20e2ab4af190394915c36f53ad9a535623b47166475991e59f668d6b031eb36f6d91a99d74d7131a699cd62dcdce07c51dc5d4e7b5ac7a8d66ae57d61bef7f3aa082f7835c623bea812daec8cf9af4c4c1bc4416db4db4ba1b02d65c2e8346ac5269d4689409adf68922513c83cc36d047dd1a224955269d2446bae53296ad8a0361a536d1a4185b0b7112526e020b4069b313ca5f2bab2d6524b2a65134552426262024f9bfa97a03cd3f3ebe9f0fc7a262c4daf8dfeaef8e78d59d7ffe32c8a436eea24a792529cf10645024f24e4686ab9b4c9e463da3f50ff90a4a9248eaeafbba1e0cc3f23724039a01cd005caad6c5a05ba369bc6ac4f512b820d09db62418d2a0ac28dcd1a63a843f105a3142715829fd791447d4956d5031ca80da645d4881e3d1e612825aad4ab34b1ce98ca8aab45faa5c29eb78a0b90e41d3abb939bb0ed3b31691f492357a6495bf99b341f7178f5388ee3388ee338be78916d37fa54ba788ad59d291ebab8b890e3488ee39872be663298dda566322ceedce87c328da46719fa94bba7355888f4f4c8603e70c7786c369817909473dad0a73ff1fc2b37205c5014f6f4b9b1944b4ba8d23a87888ab4482942055191d1d116581ee7720d07e53f31f76985a3c04238080be5d0f97fbf1e0745a1828ddcd38eceef4f8061a12c5ebb7bf1d48b6924472c832171a164d0f95ba7929ce2724a7149a1e1c443e75fed93c92a7fcaa487ce5fb23b96c6c10d3a675b0f117b3a61cf0b840bcab753e6c93e2d2c2e9a99a06c0bcab6a2a000e8fca7bdf219e8967d2e0f8ea288919e1bb3e1a06c135faffca6dc69182c3f592474a75f9e48ff454a3bf6d9888d1129738f3d6ff62931522453913b30db724f269279b22d87eedf73b6659e4c24fb9c720f0e6a427ebd558f83ec898570113c74c251602378080b1d50e1eef283fba4830134eadd4db2ca490507ddf374bf41947e361bbbfef98aa8936dd9a60233f98cb863f4ec32a4af883be75992cab603948fa3c83c560807659e6ccb3d7846e68ce998014e263231388ad87dfd4f8ac7b24fbee527ec79cb1467752a2b1e9ee7494292242b2ad9766d7050b605651b0eca362c9492dfb61ca0734980c6519cb0100ec2413ffcf0832a55f2038ae4871f48378d9824c77cdbd7451d92b20d13655cb5793fc0e2a8daf290696fa081a5c29eba5e00031948e2870516f0030d0821866040037890c0902022a000083cc0013bb3ddb9043ec523f0330e8197f1073c0d77c0d37803de8533e06b7c88b77121fec6692fc317f030bc66e08ff08a8137c2eb05bed6927824fcc707f13ac402ae201400c40fd96d70b942acb31675fed947eafcb3afd382a4f94ac73c027ce60fe0b3f7c165be07a7f106707fba67bce736efc36b3e0105701915a880c3f82102013ec8f6cd77ee2301157856ae76001f78ecd953803534c7385f931cf1fd3eefd2933af62a04b6d7ac1fc6b42b5dc718d38052eaed6b8e5090d56928f69341185651c7052c18814824a4806253114af1c40eb51892bef1c78ab105630b5840525baba8c2c62e4dc826a2a72621f9be13ae16e74eb3f6ad413f3513e18c8855c89e1f8b5502410ff569cffb4829d289ea138eb6f109518f2b50c1980293a988c924b4494092a07aec598b28ceb8af97844a42a3533a9a845445379baa22d49049dc596dd5ed66d2230a5043b6a68e2720d1a313644a6bbd8fca37e20137d510c54195c252580a4b612944f554d6571b6922d65a49eaa4c71294845420c8030e443e7cb859d89afc05a025d660e27d316e6ae49f41ccc1fa9cb505c54179586677957bd94d3ca532571ebaaee4cac4a4f64cd5b02b94ab7c9a837a5dfc12dd9e97f512cf0ff5a15ea3092a89fa3ecff3462748cf437d2e945faf46950a58e888e298f8fd3e92a4b47393aa5b09486acf94674a5f52a687aa0245843251437a240149f252d451798b75f7f56a746d4abfa8211135245e470d5d9b1898f8751491ad49f975d4115bb3f2eba8a26bc34a7dddaf1ca4d2d3f395a823efd49becf0ead4afb6aacc3af5a95d32d220c072893abed4a376f8e9d493ec10d4a93fed90a4536fda61a8534fee50ebd48f3b2c957658d2a9177738ead4eb1d923af5e10e4d3af5a41d9268d6d39c54ea3f6f87253af5dd0e533af579872a9d7abcc3954efddda1894ebddd618c49c92aa5dc3b627f1dca3b944943c2e42d3d3d371175e05de2218b625b42790dbbfad4b32c7df1dc44d429f1106b556bb3de54c4c6aeb3449d95691a47602a51ae7aba535f6e2a0445573776bd042592aed70b06f3d389e520c81a4790f2aa54c9a348fe51fe094199d423a1fb6422c792a8c323fb6251e7ab557574b2811a5652565b324b17f3ce6f0cc10a09d4f82429a5faf3d5392361a6d3c985a246b4ae1182d36737ab13ec657218f619cd47712157a3cfbdf7c4c1f3130244893240895a28b9e5de7bef4a0464f5ab415fd15c1a1c821b4b9d7cb1b21c3721b891d1811ade7c6acf8dd12bdbb47bef6d02c6be6c1aa594ae562449fbaa49bbb4ea42ddbfd29796ccd2c5bc9e9ef3eb592181a20e75da040854f448244553944da394527db269f7de5b792a8ff54073e540e489f1d716601f3d00337db653d08be4745d9b76efbd2824724f26b9ad4dbbf75e4a6989bef7de9b52e9b1898c44eec92b9649c92a29a5d4a575ee2171e913ec6572980fe9fa3a7df9c068bec63da4cf2e99b6f1033de2891e39e069143d3691a202822b2708c69cd45a6badb5ee5a88102209618024b4a9b3340182b9458f4d6424724fc6d8458f4d90d56f55ebd71eda1ce0400bc8ea383c9356795a2810c40e7a053d6f8873df9bb1bda307b4c61863330a283675ad33ee4aa58e8e001bb7a967a07d615e64303324724f96e97bef4c06f3e2d2c2123b57602fd72cc617425a6e1aa5945e16a5d6e4c377b569f7de4b559b4629a55d4e795d89871a3950af900d34e706dd180f09d875a79064d2a1c6b7db26454d8e2591fc3aa04d8156a56e6442c43e7aec4048e909bc1f0ddfea99863ffd55ead72be6004984acaa23ba0b74a915694feaf866a7dd7b6fbe7956e9b10364f51b524a7b36f58b31c678155e9649b96aa95ca9d7674b602827f993693a2151c694928ab8a2cf304662015b3e17efa583c9323cbb3156668655c25e8990b8a42c5bb3572264ddb4efa3d7a4fdb0b149edc901b23abef96399d89255ef6d692a529396c4d0c5edeb230f59fd0e7171d42b8fbd356cc5a408298af5b0fa1037df8fbb759c9e98e203fb3afe216e7e5417cab7d382ed0382167af41503890be013c8b3a2e8b5a27493bd62216cac37c618637c23c5e73d0a08474c642168d3c82f07459b76ee31c8800a42225082084c7044fb3021851447a8420e2ea0ba422d0c576461892664c184910218e0411559d881179ec8a14e81283285529123e3c9a6402832848ab55626b4b0000f186c30842ae4d0c8bdb235f78a4dbd866b8373708e1028be808422b62d8e88c00515920a25010a3f4dcc8088065eb0841cda6a7777092c4842ee7681dc1886723a7355738f6cdacdbe45380214527c210550a4c09d8002161839c1a8033eb04ebf4d0122bbeeda55ecf3835b786bf57ab920050e58b0efddf7de6bda14083e38b2692847021d7aa27bb7d021c97a9550472237099b3261fbb0eb0e3db2aba863b3e92cea1c197531ac0dcd29ea72cd99da7c4f4ad56bd891e2c848dacc44dd18a14219a0625ba7c15f770cdc0da1b5b405724658da42490b6458ea0213dfe7ee7d5dd775b5d65a6bbeefeb6e288edd9ef310c40b6af3dd98e79e53e17ad72b4237b3a7079a2e5b20691fcd657bfeddef2349f0dbdef755bf89d1612faba062cf6d687e39eab5b57a35bc4b897675eb41b0356025738831b6b8f3eb4a741887d8c352fe4007b57b38545bf51182e48961e89e07bad6a04822b9478e2e66ecd6148a6e124bf488489a3f2cc93d330ceb067aecd17645b036bbb55714b38bd6452b661ab98524a1040ed526569faee27bed15b3288a261690b41f3787a6e8acec344bfb3a935637e9764e769f772553047d7cf3c7dda149134202bfce338540690f88e2b0242489ce4938545be7249fda55b0e2ae23794eab3cdabb5a852451bd44721caaad23919c069d84a894eb1b8a7a52a1991100001000006317000020100a868382599824511805ef011400126592684a449e88a3b14892c22808a23006820c21c6100294318019848aea0495716458d7ecb8bb41ac18496ae668830a5c566ce3ce36face3dc21df0770159bedefb328408df92d8e3e67c2f1c70b8c6f83204b6f402abe67a020d9a8ccaed4c08c61b6cff73d0fb242a503b0e6e42cc711966b5341d92ab8a25c1c9d167aa97bb9dc6f595f9d0550dba777b42235ffaaffb080e567405a6ef4a7be16547aafbb3fa91a1f5480e68f7be2d7d9c179a8d376d29af85bd49a0de3cdad72ef2b7d4a8a8e4bd7c8b86284d2fa6ab4937b5eb11c3efcdb844df8a8136012abe908c492b101045b1dd11009b6d5cdddc561462c9a6db43df759706a7053a2def411c8e7576f40b9a6a13ff9d54f64f3dfb3e51ff06a5da2a8dd6940b66bfed425bc96debc4d322aa2782d9dbb47e1bbc61d4aab3a3d82c71fad788c95d7b4b97f039889270bd95c4a6e13ad5380c281414819d6483a125e3f71d1288e67038fd40cb6ee757800c093d00649b5f2b9963f9e238950b9070d739c01792fd967b2802061eb55f33a2ad84704b0ce81ad5350af45ca9c6d16417ba5419d2f85ab8b73953c3f5140895bf703dbcce5c7e6e02e9d372e1fa8df1ac78de1730715dfa1c82e5a9cb3227c18c2aa38c1f5f81352805bbc702d2d0d9cbd34b2253d62646a5af9328eed7f2af941a5ab8d45679dd21a9cbc5a9afab35648b4f7f5163fb808201b3cd42d67ec5a6899ceadb53736d196567d54301c1586043c9c8de0e377a2758e6ee6f187bcd0679578a19e4a82ad0549a39ee822c0fc9ff5369c035bbd2deb4d0e959461709cf3b3a989a1789cbc6ff2ec1c25d67aed18521cc03db3b5db949c7918ead367000f218ff5a47e9e9add2a8b6cb28bb695140f693c4c2100cdcc5c1e55047438e57ad3eeeef8e2bed754ade34e17a1c19f09b43cb21f5f64a3aee9f9e17c548ce7ecd12510d29c1de638533ab0ff4dc475683004584c0f56cb8ad46f0e825039299be13eb5fed6b3e9d98118092a25ebc3d6e32cc7280fee2d3209a83985edf5ec51c548210fa92558171f3a7e72468e76ea786ef76cc90f964e18db7d99c8c4b5a5ff5b5d72093ef815fa39255ca3ed91cfe72e464b7db066b945d26cebed2a1b005359fbb27fba7be31c454753c78678dca23b39118b4be72c61b1136a65ea0e06f9a0888533fd81cb66b045ef981546475cd1b5fedf94405ed015770f6cab32f193e50c9d526ffef341555450b31d82af7d14034e71ad9ce39ef22125e484140fad04dd694e9acc8bbda6e31ce867e6d1ab219e93bf5de2e41af0dc423f37b3393fa4daca45883eb200548b576e484d96c3aa8ea1936e2eac519129f39b63ac85c1c0366d2c58840fce5dc16520a359a0ad4b75adbb1bc591af5f26d765449bfd27ef707925e2a4ba80bd99ca7635cfaded2385617ddcbd9b864f057cc4c23ccfea197d28b691a646219ca94d0578bbe2e02e546c03b783a04fee2318b9802cc5ad42ded7281b27cc779e4d1d844c54f02f5414cb3c530fe423285ccba7995d8d0182c72bbfa73fefbc4ad143b5ad3b956a616b9768b1e9835852b54c26a132df8c57a4c7b6f223885faccab6f0448a2040c331ab95b5cf83c498a6272c3fa01afdeda350561e407cd5b5f60026f3a7543f4ee78abd7d5f7d72ea85cb13e92670ea78c025c2c4c3a6bc9c04c49485e92d86979c47fac63b9533ace19c66cf71c01d1bf16b8d7c22cd2757c34997e213d1103b37e8e143c36febf06e70ff7fc49f8e629ed9836b1f317c98680e5d16af8ca8900dd4922818e9ee0862017cbd2f3452f3f57807ea69e0dcd288573bb45eff9b54bb28804e678cbd13c7fe0884846646d209bcf407f7e3d70c39439aa20786a37232204435f5f40e80c6b762381057fbe26b897239a1301d0552b447bf45a376e40ea054cba6302e89e7abb51b66465366164ed050d28bfaf9aaa84880d375d1cf359f9c47a8e3f68ee422e290543c9ef40efa1b12c8ea00c152946dc16f6bdc899b8b6e777413c08310f2771b9008b2210f4e47960eba5fa57c576894ade0fea50057eb5716d54fabb93daf9c902bbcbc85b864aa542e3514ddd3c1c22f5c5f0c4360372b7a3f9852094376099765f6c5a8ab652cd8fcfa73af63fdcdc227c287b66dd696dd5dc96a99e8f0b0d9b839d216dbee76f565efa8ed23f79f302eebdda0771b7909c9bd79e30563255ad1d207d1be8bc958626681d7dc34f8a4460b1f337436c1949560ac377f87cce950438064ed149f0fa3f4f53c49d1a42e5358cb789015411df76fd9a4178bae1cccd28f48d7978239f60d2fd29a4dde0844a9fc8fedb6a19a52a1f1eba0a45dcc98819abaf88e089402eec6bc4aa94e38e6b049c37e01bf39b88f23aa96b3cd371f0c3eef24e73306af0f637b349d85822abb394a6c7173e2d6b2a65c14e1fcba83670756ad4698eab9740dff650b2cad0ff75b0d2f1002a3ef79bd5b9e36865a260dcd5fd2b4efa4af77fe858564884fbae83b6211f0186c3d53e9807cd4010b19546a0ca1057c95677254212e6a03185819c4061a66f006686e16b23a4f4028dbe0be4e09621ec18d8097260c22cc8245ac3540d37d10256009d3854ad92dc702c8e2c6ed3738128e16d12807d7164f051aa6076e48cdf1d0cb0056504974858dc984788c05be8f76bf76493d85104a566151e2e49ec42a8f9c22b07aa8515d51738763c6794dfb9eecda4d09eb724c33986fa21576e88fb914fa98cabd05425a85c3cddc7e5860256434def589c0823e4d0d2b2c5f206333cdc3a3166a85397a6976f1821e69f30f262eb7ba417bb68851e07aea7d9edfad5653b7bfae67ddd261382b8907334f642a9c9cb52642a717cb43d57969f25be8098b48ed080317c57e4da1b6861da034eb64de353e28176d3f8ae3182a5c90316654a14f1d0ee6f3e9fe26e942c987424ae647c9ab7cc7b612d3ca02a268754728a970f1715fbd0420fb10da9d644e6a2457a53273adcafd9de2e159af5b6c715c739a1c02719aa1a10a2101661ad01e210701fdc5a75e96236d94fe07588e4a386e1852766a063c63d688a6d60211e93311dae64db1434daff7e0887059f0d810a5608780f8f9e4bf7173123f67e8a2fab7c00c8d748e634e9dc44a37300566e40e8579ca812234232ec0989040224fa4d81fbec3c84fba57a63920832934734510d4685fe0db4653ec44907e03d0cce8bcc2a6fa694a763b455ef3499e3383c8c6953695e94c7842e4a6257b6f93f37c36a130388defafe20609d36dfd14fce2f854e51bd01d494b56167a3137f9671f087b942cf3353c441f9b72bfc03b849c5e884f9c5d2744c5ccc43006baa50709263fef4f687021b456733cfbae4b5652dd39d47d8e9b47a0101bc1bbc0d5ec01da33fc337a86a6c8b54d036bfec94bdbf2e4f1003a70f7d3ad25f15428a0382061387ddd43dbea4eaae77b5f2935a2f65b00d6074a4094080e5c0122fa9e0a8c073ed092e9f314b3be6b7da8565c22023616e171edc13bec4cb20fc47adf14b6983fe506134429013d9c6936e6219bc36cb6bc50254dd6231e2eeaaef5125e2418c1a0c3d1e2d2dba4c3fa042c4f59831a23e65242fcd4be3534ed1df9ee6248e24c848e9c9127b457ced872c5c1a2de140af660e1a5cc11a4b653f0acc40d442fef94a84ff9bde1976dc719277a42a99939ea2412198ca7fd3461135f895caaa5f4ea6a996f273415b15df993549d459b67e6178eee298d9cc5461de8d32b17e042bbe643c341d95766e3793abca21f92c1a37b1e7820b0c23488a176a477f4ab8e27d3f93fadc0a3e1a7f52ac97c822b794789860f9f3fbe50097d4c88c9aacf7373a3eb262656c012e28518b5311037ccbc1b52b62d4cd7fea692ecf320a722455024a47152f187e98e04cfae8ed958ab01d680698a77c5c19b6dd60fb7a7314af952ed9641e0765826b0397ceb0a25c38886a94a5423b71bbcf24411e5c5c0ea7126d0c945dc13da3b3942f424eeaadd2de1e5c2b748a56dc425627c2854cd4cb43748111f5f32c5e60a27e3c4817d9c80f2fe11243d4cb53bc8489fa3c1614dc13882114ae0f497ba694844c1fe50e23ce5b819070bf1445c1cabc4e461146e9274d0806605ee052c1e50e86cc9b4a88abd19b8f6300b137e7d240ba6e3f31754473b0b230c5dc60d009d40c84599b0b0487a16d1fb1771fae76ba87c0da8daae9bd0d4051031407d5e8bfc529b9e6f7a3ca4b119b610411af1bd292b8959e256f4f1de16d051bf6128be7233e9a48f8a687fbddbc50d684d44e49ef218be2bff9b21099a4dd29679c0cb3206dc33ef2db17bab6d538c80f8384d7decb61641734f2e110eaeb0118519fe644003183fc44ce440e25033dce91fa627aeb3449c4501379403b7bb3608c10dac682f96adc2577bb616fa917f8a4e7bb63ba563e9ba95d244b91517ea5d0dcd814235a3a73848dfa05444d0f1ba9e50dce6cb04355c7288aa90d3a0d53467c582376351e0c0094695480dec02361f16231f8050d8e3c0cb60bdf800c80a0e6db734ff40598c342004d72d46aa004714f5b8d51c0f2ed0614c25bc4a56d014bee393a2457698018052d069281ba44e9d811d81a7b1a8d208881ca4dd0a1a1c0490249afea71564eeb513cd860921f7508c8ccb020a871ce97671af001053409388a09568403a2c9e31cdb437a11ffcd6caefd04037b79aa6e344d8e3b86e803f61feb8da21bd2e7d2ef66f80eb6bb9edf6be239af6a00d412282de5ca1e8bb1788b8eae5ba589f65824686ac88cea9e9b206730356e88e6bfc502736e528a44c8aab60976fe375950e0f9bc9cb4158ef8ae41368d09fcc52f9cf566c9128619af5dce5d7ce8eafc8ad36060cb73b3e6b283b9ae27b4cb351bdc702b54c14db51dd8f41c0309dedcf67886857bc32a5cb3d91d71219388c25a31c3a2326c2f47a0cc0b2549d8d94f25946cb8267abad911cf929e1ec6d1208f0ab933c4f37beee774745557e5873022f4aee53ceadce754478027f72120f4cf2a95ad53da8f3aea5db0e911db52a4d0621bb73944d0690a1875d440fe6692ed8f2a5207de4cab755f79a65cc0a8026091e07411e98bae30896db2a903f9e053ae9555a8e9b5841dd740e20f40442a7814b07fa29c46a6487bacdc30aca6c65a0c5c5bd1338186f0b960f112850ce62262789bf49b1b965a6d6e2d712dab185c80a5cefe3cb76d7e3ad15ee70794b35dd828abdc2a853bf332f672730ee58613dddf5ed472609c61f0dd2b396bd907c0a55c1187abfa207fb9615a1193bfc4abfa7f903c57d57580f81b937c08e925780e6b010d8879c5727e96cb23dde3aa9f11d5cd8f297100466f7a3b64c9a05802d32b961068b8699e645dd717a9156f33ab8ca4f592223b30a513fe4e319e522a564a3c16ee6299709d88c0eace33e78738b3b376e0f712c4277655ae091d7d730b3ed78ab11eabc614b72c5c4f7074d03e9e9184bd11e4ea02cbf3a42e1da26ad3f1f69cc466cbe2631d0de70d24749f88d51c4fcc1bdc2f9d9f2ecb11ddf6435fdf3063c370b9db87ee9d4a75059122f7084043d390d7b2936ec1841bf7799dcf66f33400e3930b402a8f23cd777df6aed19d11736ad8bf0cedeb143e6eed34edcb8551271f6db4bd3ec57aef999f8d00048ad6fa9cb034a6b2ff4006282235b57fe89d2e08a37b611e78d994714552c364f6f3f8e5258a675fa4fa52cfae794fa6acd971e8ba8f488a0df4acf87c02764eca4b5a96f003c592083f8971ace06de5e6f0161e004d074d36ac56da7c88f12f3732bae92062effbbb736d7b8a266da30cdef3f07080269c2c7465e55d99a646e0dec9146e9577f572af467085af014af8119c0092edc77828e78075748d44f946967775bfe30a43b2592940b9ec427375e31e44860bd78fdad159805146996b8005d47e9014f199477e92c104cdf0b26601d263467aed865707037a8d881c4430f1a80d7e38943f96690a2fa669748e3fcebfae9d39e972fdedb96473edd827b90d6b9babd03021a1d61fe1553911717829fbc2e43f8e90fa5a2f078782d7355b432d8b95d47719d8dcd6317e7f22a7f50f5d0b90b604b43f63a416dbd3d19d8bd328c70122e69ed800b3ec0524c3dc59a5cdf8bd46a7e4fd468f78561bf6ef9646570099472f4a14650ee64dd2ab92c8c2ca5652c57589c46dde4ac62be1482cd720665e6c5946f336e12b00cc6756811d4df9b914495f6cc69d73e95ab9378b55fbe015f00b2e7ea1cdb879aeb939ad30a34a3ff7b19bb0e98da82dab5ab7088261d637cb0d01d603afb7a5e42efcf220c64fe0372bb0c8248f953c24915932690e303d5f5b04bfcb324f9b0441193b9fcf5d52b9f22272235bba35abb65fb31a16cbc488b21ac0a56cfd1b99c4e6fd4e03f29c58b5be158a4ddbb2b059c41a5731c353c44ff8660fcc91553b6b015d4c67f000d95c48ae12c65c508447c993a948a4afa4d6f365393694f767434d6124a93b9787581bba1a08bcf87441a7d7a1558f7e8b09e2c4a7cbb170dfbab6ff350025267c8d8e41bfc516cf3830af14b4b405dda3b62333e9d6239a62886f2b3ba0fa2dae4f8ba614f1aa4939ea11d11509445178b82e85b2c3e2b8383d6feedcde10262ce4f8bac8198b25cb5e8305cca32a57c07ca646b35b05cc3516af79cc63651242ebae8ceb5d9449e530d5e1abe6b5420d152c714c9f807e7640aacfc3d862cfbd569f21c318c26e08e603d9a581e3ac97726378d2fc2b4f95b7c155e597f80da18d79e597c47ff47772b84a1d8c03a2af3dd0b657a44ac531d02ee9e3805bd71ea0d7284024205880e90fcacf370330b218c8e12a7c23aefa4ea7831171ebab8a6da8437147a6564cae823fa1da0e16840c3181f5eafa8ba1d2c99452717c5f12d2476cb7a890e755bd33dee8092bdf9191df09b998d30d66d0a214ad13df6b82131f349004afaed66949c76ef2ea4098e4e4f113968fcc712e87646dcdbc30e343ee18382f480bb6a065928cb1ca71516ca79cdea1d3977076cfd495d22224214ee4932fa7516dac89303a9da5382f82b9cef6713dcde915048f904bfc0304380da8657ef8e117b6a7cf09e44a286e6922eb57a6f05267a294029d78ad4c040543a721c6443fb21cd2214c64d534910434264afc02f884a593f22ee33f779348586e518de776c915cce9a56c353ff0d40f23b6ee5cdf886336755a317a9c66abe3a27446d82cf7ebdcce0ee871c9705a3fc57e532052d62fc43404a5e7e5c5295cf93151fb84e92c0bab38e5543f7a295090ea53ceef0b944178328b1ee5365917f82126244391701d7641b22d0481f51c42546d3bd7e73d7c46eecea1414d3f0063821ef3c54766706e9eab0d67577703f50c97ac1cca1146845cf22455b295fe74014211f97ba1f08dc51f0fdabdef50b39603ebacc47f1761635600d1dbde0566d93ee8300e284f654a95483463bb5219ecdc3a55967ba8b8504dd8e254c9efdfb07e313963255a586c21c53fd5852d04a2f4ac9008d7ef87988a512a3c0594602c85ffd252946f3067a895424d362650a02b5f7018b63293d01a914eb50217a382818c9af0234403d03781886fc00ba5f73ebf9a8ebb7d8c9754eb7650f60ebbbe65fff426c05ca24b504aa18934d2b408113b1b6856c807443c38505f9c0748eab8e43d8428a6038c01d65077e0987a6b097346b9da1684b4e0aafa28f7b96a2d3ce9a2d6d502ce2c6b32f3a96d3ace008b3eeca23d34fb2a3791a8b2c4d691efe6ece608546848a407e113300b0a8c9daa8170cf06102d0bc90abbad75cb2e45c2ded4cce00fc11e7426e4df7f089166effc855fe50063c9dadf0515c502dbc1c6e41feb1c999e62d1c440f293ac1fc2a0daed842f114e0d1b69e05dbde038d93c0fbe38979cf560a0b2f752471633a0acff2181a0da3cbb8508b88b4d8275a2de6f4be5191a69e76cd51df7b49b00d15d71fb47b28380c9011649a4225e8cbc7a84bc97eeff499e2f30db11e47784e835cc1da3968f1a2889eb9e709c5c8b672b549233c93ccf9ab254e7b95e12a2f42b89a0eaeb838d86d60d2bbf1e2cdd68fb906a35317d10dc71450a24c27cd00c01c36cdaf47537b7be2c64b1787f72c90044bf7e54e5f70806500dc1aa424d06ef26a26100af5a99c9347172dafe468a167ebf971deab491385fb86724f40e255c91d42f115182cc45818ed8e400f0e52433f63be7df496de5c6e633b8bfa7f251813e09b523c03ca13427744bd92ff450833dcd212c4a7e18b0a1a8186d4f3f2522a874b146fd7f0383cc085e258bc9b01a5e792b550e98d586acc68d1c446e11b452ecae2702626873a13769761014890fe13ef799d4544f54f281ca9e70f1697137f08f6f36374462a80943b956b9eeb4d368ca8c50412ed4cbe91f02d5182f4e5834d9e99d26e6f5ae4760219f5f919ec754f52f54aa554dabb80a2d05dc802553eff44bd2b066920c9702f68073e317ebf404491d441f4773c51f086a7c74c71c238628ed22f9b244506d56c5a7cc1900ee48d3ad7422ff6325b8aa356fa3b4bd0dc770bdfe1ad2f043f4d22c314da0631328389079aa7a6bdf1434807cd2ff27e45a84c9103e05a313ed01a782916df129ac0cdc09d6afb1b68f1da0934a60807c2f7e3490e9a280b2f84320fe0f9019a14ceb6e89f70a5b2e7cff6b0a8230ad2000d277f7fb009b4a389092d67571fc7a643154df3eb72e9ed8546acf34ebbf66e2595200a1391c9f4533110713ab1dc636d5fd0fdebadf70580d48d81e0846cae2e815c2ce417caed2a98eb2c7ce579f2dbb12a8657348cce6c03fe0535bda1cdeb5398885c333b53b9328e0b7a15762e3930729b6cc504ad5861145af2407fd3da84005e81d2edbce1bf740471eaafd031f20fd98207330fb11dd2cb39781ae545ad07c856f0ca7f72fab5e01d3e845155318f5b0f5232a0c241f80b37b5a0f2f2a88e83d6aeae3c3b59d9c35029ab42a01e0e06ff6b19c4d231ca1891b8aaf9c26f83cf875d773f33127b68144df20a3485e82575716b9b9c9132c8e6e1cc65040526345c8e462c028af53e60bf7e7e2d94129e0ce0ee5cbd48d6e1eaa0b7627f9fea32004da3244bd8c18bd36db99b3f130c897d951be44a29a7e17e8325ea6b7877eaaca3388d10eb80c922cc414b2e00c46ad9875bbdd6cac315e783e3e733ff3709013758507f72db5d5ebb2207d9f983c4defaa8f97fc9f51e3c9954312068c1b0c97592c2832680ad8b1da2f525e96794b83831f7f2cb513541e8f73d2a29bcf8e9a96cb0c324add24cc5c3d68f46f5a8e95e475623409398ad07c34149dd2930f46107ee04afbebe6021f0eb132ee26b25ea3f007519ceb3bfade4aacf05613a4ee4deb5445601cffa08c343a81c40781333bd625ae83d02a526f7c707df990989d8ea58dcbb1804be485401603135673fc0995cb9ea17952e7fbae8009beeebbbc6ca8a8f883d4cb4fa7b15dd7bb591eaba97ab68101c500f286f18268f0f89d5da41c3d1b740cec48901a53485d0d5ec1cd2e1a22143ed5ff53fe64aec677e04ad6c46ec790cf1e833d5b2aba184eefb91d908e9e26c16e760c829a6fba0f54b903ba26f36824d74201694cedd93777393a14080ded9499126f4c4e68445f516e851d3fdbb5f75a21803d0db840b08e8381f8be0994c4e8c48bbb41d822ea176a943283b81b744495edc6640a7621e4679314b5478cbfb7276a126c02e6a7edcda1e649c3f81cd828c86023a7da2cdd5d1f29a0f66bef9fee8691b490cf607c5d43e62a8d22009651cbe17f7a37b9f22514eefaa204e5b8cbad54a6dad9b0f0ad7fb8cbe67fea0cd7ba89783947f80141d8190b8a29d0f5d125ee998243d13f8a05f4fd0e159248d3b67043305ab060a2487f3c14b1cf83461085225b0391d6e8dea8cd354bef35750574993712e4934668e073eabb41203568e414c6ba84125d3fea368db985647b847ccc7f2bd7b03ce33ecefd74aa14a9ecb040d8f73fb41f8450c6b1fd6a20e6e1075ea54a4ac6a514af768f15bfb8468fcb2a51e6d68500913dfee0e9614036590290c987ef36cdf57246c143d326725b9af2dc5f971e86d40400169a09e71c9fdcbc171de7676898952855eb288ad5087507f24106bcf236bbeeb0b02826dff5421f65f68a65efd0952a49168080b502c199a8ad8b1faf10d54dda229cc221bf4c86bacd072f21368443c7526343a0cb3e60aaf8f95c60d752f093b546107cacaa8953954d3d4e2d238ecc4237aae3be2c39c87176b6399011a9283b11704353ac8fe74c4415be016391d5ca0f57548bbaea9f1b61490d89fc01ef87efeeeef93b4e869a7afb43fee892ab1b182ed9652f6ef777cfff09536e62030796330eb50c10b1242d26624f651d5e1f9202094ef09cffabb5f69f4e518449817c35109ef33e5d82359cdd4fd1325cbaad8f924007601ebcccda32d82b1d7b15ae62428dd20a70433740c2e07407d8293134ee904823bc0b1c8528109b28eb9fb9a2d5099e2abdeaacac73181bce7da09c3c4d78358e9afca648695168a25aacd695225db9d99eebce08649807920b6f6769a0fccbbeb658b1961604d18003acdb746f967d701fe3b660a66d7fba63471477a5a447c64b419182a5fe0292a5c3a5304a2418ddc1cfae8cf2a00790afcbbb2a421d3559006fbf4582ebe5a61213da07313cfac361efa8bd80e3e7b002fb0cec3dc57e4b75cc4b9c889222bfab6eb00a3def1c83ece3c73f0a2c0f6437b59c411a9550eb1e370bc11c92650041b1e48fbdaf180e583accf205edf8c9ae2533cdeae1c97e5a181deef5332764669c1bdfd37214363f49e0e34a29209b4206fe69e628d42a24d66ce3133b4148ff83f10471860e9a88e6a34364dcbc69b6d43477ec5681ab1a373bc369094814b6ef6073da023c18ba63e60595b6f1835c5e0159ee4801e69739c0b497e44337168ae2fdcff46278e04e19eba9ae9134c457a7483f159b404a10bf7881bef02321bb2dd139ee6dfc769172faa45de0c0eb9c5304fa2865c1dfd85e2752d9e93043fdc3f9c2709083fdfb920453e56f3e0e2b5c404caa427f6b62bf252ab2389e71c1f002e962c5d6593dc5850c232e452f082e34729a6112f62d4b3e327bd0cdf3433096119689136677b0ad1df65214f8b5cb411eece6510823c4be5c8ea5feb06faa3f5b7dc9745bc495aea2d989032637ea5902f07cbcd4754a9571330ab4e9763b544506ddb03141f5611599604aaa68758e05116a957c3fd81fbc9d099a32a59c0baf28c2ca6415230156b17bfcb461afec0720ea20bfc40ee46e24cf7545120866052954d307035089138d6db5a3ea0983309aeaa059610b2e48fcf0ba7f75b3c21dc966cfb52e310ea93dfde17d15e30a4c36fe21fe80427d5624b7cdfec10b890f8986400ff5123ca894c695af5e606d16ecf80877ba1301bd5c007cfb55482b2e041eef0105e11aef203c056b5cd9f2af6456bc7983c805d5e25aecd7ff37127c66228131eed1926d19f3fb567ba9f101f51de0de6eeced46ef1e3a1b667dcfc51f0e2fca48fffa592fae0705fa38c37a3dd12fc4d494124bb61d17745162d04355a6165e1ccaf98876504d91503f52d69837aa01141b07ef1f5b8f3ef64385e880f8314e2707db03d7b5bfeeafc25e1444cd80b272082172ec1d538766a776563aeb353fa0c304ba868e50c89a7fc0430c5a434750c87e2e1d28eb0b7861b562860e3589fca5e28276c256e5c031c4b63c869b1467c2a583500b01b5b1f224d6152ffb93cb136b17a18842fd22794fcdbc3d4f9ac74e87f25c0a3553071f0f3941183a2be429e596eca01cbbdbd4017baac12e5d574ec1d18cb43e0a3f481c14dcd4c148a07336782dac1771bd7558cf503581366904eeaa35db40fea0e2b2ce4fd0b14318f399289318d40ea2d497c5c155408002395c034ad51a1ca8dc3e6036b583ff250b3f04ea88f8e582e1c5913e76cadb784453857a30f95500b903f6d69384e5b3badbaa31abc81df0f100078d2d97535d72870086125c881a1c56f58090acbb2cbd83047adc7f228cb906f50e38c675772e7ec05564bd03afec600a8760f59b4df1f2e202466f5f9d6e94f3c84a747002812c2af180a3e121f71c95dcb4b4e316c1bde2a1f6e39e810ea9ba17c840003e281c9eb33433c325c70db23bb5feafa72c9d7aaee261cfbb24696dae8224083f301e36d83ab3e2254b09b7e4c19934cbb5932f2c9c41ea6746684e2b6f9dbc1d8451929bb4b5b231a27d88637f030a9fa6a58ace2b8ffd5e45691e60d12f5b7add56ec42c2dcb077ee54951e6f08749948cdc304c865a8bead045eb83d7d41686fa3a1b728ec781e6c9e1b4323093a3e00d5d11f2fa7c32ae5440f369fb551016ffd13d03f9e7cb19f01e3f403cb0410b68921eb91a829982dfb644197b6d7f490189432beb0654a323d3cd5e00d062cadba4ba8a04ee50bae965a5daed582917f61c945f7eecfc5391fcd0e85ebe651dd63db72332604db17e1cc794dce1200cfff72d559f5f05000d38a572a48e64ed04e1731f3c4f5c06ed523792d88a979025303c1a9afae0f5bd08f071c23b804df846e637b48b75ed768920486ce22645ce92dc204cd0d0bb939954acc21375d1bfcba07a91af317991576d09c6c740f8f42f78720a351323fd8bcf1a25d1a6c0a444752431d3b70e2b450703a7e7782c7c223eb7f71bdcfac4e94a9d16aa837bae2b5e51083e161dea16a2cb2de22fec84248b79e0c0860a1179734d992ec9a475d1bb368796e6a09849ac3681a4c14fe523196959af8d7f1c787b9dbdc73cd6161b1ea4a7906cca2735bf5e02b8529b60ec7fc4dd776300dcf9886c7c05fbbbc395b0e9f7feec5836570189082c359a738a751c6ae4820e85b85786be2eee19050ef3984f9b943d45c3d2353696307c74e768156d110f84b001bfb3d07efee2ecd496168cb7e0cf101d69ad9acaab25a8c961d74a018d226ad860172327deeef45ff13624da953c5c89e63cff1429a344ba2cf0d387236303c6e0e613d45dfe2dcad4d23d437a431e8f0b4006d93d6a5af9c0098f4114935035bd9dec8508f38c19eb5042a0cec666d5c07f8968f8548b67cd273b28da08a6e62db260dbdbcdd00bbd9f3ed82abfbef828f252b26c3d6badad0831f0461e59a6bb7b8c92506c697650ee2a5e03584547221afb1653c2b1a1f2924706c8267d72b2735f63b2a317ed9dde1ad04504cf43caca40aee9fc449db7484eef3b186fb71df238f7e180720ac096ec3ff3540ac4778bb29ef15826d5c599c048683ab2618a26f144562c4fc86438a6415566067859d81fdbd3fdca0a47db487c68ab60da0c074d41e08c89137c84e2aa9645077ba37dff0d233a8296dfd7516958a583b9d5b78206b334372af74f7f9e00973e89b97e2eac055eb8ed1e025b4faaafecad7833daea6b851502e5e40de1d420698c38d923e82b2f804728fc36604a18cf0d0dcd6b0d139724511fbfae5b2474c34a99ca5b73ac26974728cc869f61ca1249633bdc474cb696dce6a45a986719427dbc77c47a77431d0f943e858b254c4f454a8d2a00b19414a47c488b5881f177382f4d07277769ecd7a168d51ae7c5137b257f9881dc6c907fe14bee0fa581a3ac99744a049ae907a8eb8e0e1e2245e1cf6418e01a75dc871de2d01c3bfaffd3ccf7cca60b7806e9e1e7a11299c942179d208e78ce38313f27346d2f82c38993f096e3e9c860763938d4608e50c8b7e0cb316dc881f6e2790591a71839ebf56a3e16d93a06b4e87c2bbdb741642b1d3230d051ce23b28098a4c992ba945329753b5cded9dabb01834389df448c45732d59d24b68358375bf536029af414cf5b68590e8a43c52a38ff27b7a8a4f0000c772f753fc2e73ed6cd5ed2c44891a1aa152d385d6d4c741c0033444777f8cd73dab8fefcee4c737e16a59ed703af789f0e98f101dc7b48fd6190c0d94afc1b3218e8aa551e5afa3ec479fd0ef3127290cfdc924e0495601590d7120c4d4086938107d535109dc5b52cae3f1583fe2cfb74acde6698b86edeb25e31b95d6c386063081249a271617399808c78e3db4f9a6d0c107e6cb20e6645d74d07af95c5dd02d9fbd2f71b75dbd4c9d70d53a260fbde87c99f74679b11d3fc07d63c1430b51555cfe7ab1c805161f852dbb92ddec54bb4b4382dc550dc7818d9757148b540707e8a64eb07d3ecaabafeb458c4ea6e8f27a84a1272f69b37edd8f33b8d631ea57acf15504932415a734262003705435016770952b73f1129beb1d69d55bc63e0959aaf9b8718711f2e0c541a10222b35f485908dff2c75fae8a02a5ac1511a8479e2bcaaa2ac54d77b77b055f3d9e67932ad4edbb01d9ee672132b44565f025cd65ec30512b790abe7f0414d2f10cbcfe8b55bd115d4f1a04c8c930d2a4028a17df601e225d728f3f81bda15b605b97cadb4bf6aeb8629b850eded85c0820977a3a2e3a1f72e2a0749de74cfd42dab711a2a049adfc9cca3d3d1bd5e7db0fdb070e21cc45c2f9c974c94dd74f7865d736b9490932ee34a62ffd7b8b9444248a92e7a4bd9795bcfa7992a47219cc74971c2fba82e1e4cb96c07e2aa6b09ed4b2d8daff695d8686850ad4281ba5e6c36280090262d3553e9c3ad51db066aa818d67276c97fd8b75826e46cd9c83cb54fc81cb23dd2ce744d72a92ff982b80ef90ab58ceaa3d0e954a2ebc8cc61d320b5870b9d33771668388b5920e14465815c4066861133b076210bb07052ff836278455104220749b2f92ea4c50a370b557ff74f51ce4e3b0387b67305e628acacd9d8d8cdc19071d72b3e012d715c735e976bc49dee39dce08da5c37311a2b758c8bf318c58bd37b0bbe896e5fba8ddec696046a676dfa7bef69bbaff738e05db620599299c9c21f88ba75405db8f376f0d035b934d31184eff2502862872d5ad285122ad1096e387efb134ec6aa3fdadc41e0cfaadcad96c623d220a2f076bb9ea9029663949a7b7e39e16e35e383098bcb92c300993242b2b2b2764842d6bef4e4720ada31eb1e991c6b9ade9b479074d29b69b7101ab7c72f68988c528b974a4d7358da3fed4d22de1e1df9dcc5c9cac097c533c618c0faefb2beeee61824455cf44ef41b1f2177f0b03e89cd5bc2c7a0091dc8ce88ee68e49b0c50c7475d72833bb5d8094a7a53eec078517a921a29161a4960b9502f1026004c09e4b7ccecaba7eb89b0e8d2003dba8ef4764a42bc4e1e88368c516b0b71e57d0b11ffb98f3ed287c00f7f6b4eaa791f75d8717255cde4d67ea2cd798e4389e39323506af4b71370141f78d0f0aad78a7d3d728bea44e3e0e9b179abb298c7c75de56c2046f7e0bcffba590e346e2dbde592215bf9118b0e8164440ecd7988ba40479085b5cc528dc35c2a65e9d11f34101b8c1855e2d08bed510d225da6971ce754680d307af32620c05af398ace2ac5bfdd823883c17c33bf337afea7593b8cf76292b976155d42441948114b5ab4b007736f186330745cc0ee667755ccfde6dcb970475c78e329ce4bc0c16d9016572015becc0daaf0241f6df4860745db500d0b09d51171ea0009dc6369ca93c5d157d8dd447a01e77603511d3fc51613ad37f2d891db778dc9ddec17a8c73f1134619c37f71d18cbb4ca400cefe66d67e54e1a19ababeef09872329cfa893fe7ac0187d1688325f04773d560b121482e98d515b799e93879e998a1b8051ec081a543c8622d82326607076e77ca2990b0ca1cfa6c090059c4058087dd24e24c6abf0f83d453ad77d315020980b3785d825d5e54a5899572dcb85d62759faa5142659072ebe28d1212d0d646dc6ac91eaca8313cd2bd1aa6454f34e3a2eaf021dbd8bd7f8a0618c23ceae335cc6b222251828c411fd320619ac27e37e37af456d6f131660b66641fd923190c0874c8dc60d5081f4917d33d81be350b0edc3af9bb191bb77cf8d6f082436dfa7eba3213551e6067c6f2e5d29f2f212d8e32a59cb4cbb9ed785089b57eb708b893bfc835f535a56f947612f8fdd45f130bd3cb2433bd6f85445d20a48368c571202a56cd3d2c5eaf5008e2502c12567ace1ad28fad3156decf5ecea12e428e1032b282471acc1ea45fe5e6660a9872d2575902d82cb9ee810fec0895c2a1ee9af35c6a9b94ec262f809264c78c4d1fac6d1bea960cf20963f136d4c1a0085c26a3e1c39f6a90104f639908b27b8392501238201e4ba7db50e7c21861e0f7f56a750155a69b33718fe079221c4e5b8944b61890b91943a26ba66f0898c03050946448b649ef51d02e07408eee971fb6c0abbf968ff6f1a8be7287c9bccc7f1c972ea8fddb94a1ee74097875263a0bb5bd9f30c01d714161cf850101fc736c34c069a0dd33055308c68a1b1b80befec350bc3b586774a55b01a9f1ad48158bcfce4c6097d1c2f49355ebe8c4faf50f395d0772c5148bdd910a999c72586262e678f29a89c085f16ee6d98d6cbfbf500f7ab318eb5958c33cec318e5bf308b178d64e434dd450822a9209da4f7dbc4a13f6b561c768f70b7280416be8d04a19f70b3a44406be851a50cdb0f53f0ff2db854c17ad0a6db38721107650c38d8d4d0f21dc706319c0f634337380ba526063604129d5b8819d66b0c824dc40917bc01a4ea761c5951a7aa2e0e124ac65d4e216632d39bce6d59318b5a38c4158e91975913564a9cc6990beda0c3c0f4a6ab6c2ac26de1c343db92784284e600389860ff3944c500e3205a264d0a36c3df74d10e0288770ddc88b2a42224177990fbea0c9666337048e2eaf4d6c34ee969d200fd81393c4e4fee76bd3ab2b14208db0e0ec0b1d5e9509694203454961c835680534059af08f6ed9b9379da5bddb9b734e67a9f9b6397b59a062660f3a399ff673a02a4c76bca47b4c6dd8c787d2988bde85988a41e562db79ebb8b5895720c59b13140cecbd38bc4d3a175f8d1c17fe74edff9f633d68d4c94d0de4a5552c5876330e83423432de085a2035001e25f8123a721af0bb84624971cd6878243b32e7811696ec35bba5911da016d7e995c3083b364bdb293a431a9578d18191058a1a16afc708e77cf2e9c6ba43e4caaa9e77400e4e1803d3fee1abde5e875902a2e485ae6ae261a97925b0b3aa51c8bb27e6d8a467aaf24da52ad38c712ebbd84d383d862ab45f772a494a39b2e63f29c69ca04cc12bd08887dafc06d6c34e62fff858ef2e93c04baa8eaa5c553804b20c7013060e2379cba53dce956d5c70f075a0aa1812094808ee67ac42148dc6c04baff2cc406422801dc81b8a95e9c3a4f3e66337038c79bb7815002b74b3d4e61016d4073f3ab22d2ca298f9c721bc228bf41f8799c95c4efe3d007b9f1dd58b01c37808a092abb11f0f67c4ef87a5937184a5c1bd5799b294cc50eece8a12c5c54fc67d5d7e99c751822eb138fb38403064e896e8c43394339d2540827c7d79110c61345096b49750105fe9162425e60990b119c3394632996ee74b9802377e607acdf2be9da5b48dce185f8d64bf046bb5e6834eee2e0b814fe44525c881029b020431234f6599280f73025c0f5a51806d07d9ddabec71a654adc3df3213c70f2d4319ed8a64e473b665ce98ac99b8328ed7c1d5ffa62929d3402d15b4dfa58e392043df5950d9caad1ad1d948e2a1d89162330cbefe198bc827fba714c965694d000884afefef8c66b471965e4557889ffe69b1605ad607c57c7cd9458663946d71bd69dcd90a17a2172ebe6fa0eeada3c3d44d22bd909f77e4e8370a95a7184f85d485de99d8ee433e35d68e6f1c6e462e5ae4345f14ea81d16ac8b6aec723f4a30c5f133f3d305a71e0a96771dd1d0c40e9f43b2588ed135f5d9162a8ba0d811aa3587f1461ca4d2138319c5926b8dc99ee2ed9fb81003f016ca23e07e7dd81fa15b42359cc2e1c8d4267d6ba0b3e05324d195965885f2b301c1450c6a1939bee983fdf9dd5deff0f284833a2452c9b55d29326cb76ecd8edbf71ecfbccb1b9275ec4117b491074364065f8cb444310189ea790d5dd0ee13565e10d8d1b312d8f35dc072dcbdd6b6682c31005e2a656455ae82e98630be9e2804d832f7100549ca10947946406148c93e573b733abdab517bdc18a23d191a524a865e0daa67a2eb60c676267752b9114c2c35ded09386548b2e09fe767dca91b20e5858b8f36806836f68b4eb5a4ecc91bd30ac14df097ca3fc112a77d10b82724af65794bc19e67448d1961909d6fe62eaaf27b250055555de02a7483296d6a69cf60c8aaab0ca03e51f86b4c19b0deeed071652fe050a13f2c88053a1e29d72138507ab32a9acd88d164445a37033f2a6bbb4a67cc26a8ad2898ee3ee1508d2df8879138212ec6a191653ed6452ad82360bd83df9a97245fee1374fe625ab77c015d2f26b080a9ec3f4cc52c4f47c2f75b67275b832ad7a9ee3051270023cae901644339fc4c9fdaf19df0436aa86f20b90553189fe4dddd7da69821f2455cce0cbb13e760141cf4290048608d497e9999309bff73e08c7bca6f958562a527b7810fa787ce0d034b3e2a9c52923e28da6bb8bb11fe8ce716aba729b29874bc84d2693e464bb411657296f26a08a09a054050505a2e0a25cd18f82deef6231af5318c48abdd633850526e5d87eaa4587b0f0c000c3838d8d6ea9ec1ebe42751c20fdad78a9f202b3987303724c523e12efc5a4f1af75b1101acacd07dc158294e4967194764a073f2402fcd23b0344d7fe0e084accb17fbdf5dcf572979b2906d78324b4dc2ffa1a31b49caa3dddf5a1e5027a838556ca0fc201b4fcd7abf1d7dc15d6b9e0a6f6753c5b65b0c63084bdf76014f9397cc002219175e73086e896ddc07f9d1f545fe60aa0449543de152e32b515150cd8bc805679a7005e4ef0d90db345631571a7b44b9c02cd751b50294cef367463de6a6c7f31eb1503f6a543e4a3ffaeb058b1f2b8e84d36a41619b8676d0806d9fb91d8526d60212ec7e1823a180aac703f5b31a9dc14d63ea3dbdfea70210ab47b0490f943c68722ea3a96ab3bbf29aff05610a776ca2b84f7fe10de2ab465147ff1ed94e1b109df49b6e425ab429ae22db7294efb327c3a059e18974376d7a12601d2df4cb2b10251fe0ac5dfc1327b5a7078ab162bd4d5d9656d46183d37178f2f2eeb8f8186c92008f6f40b70be9d67bcf914d4362fd7f6e8155653dca1776b69f8e505fb3d31798a61dded9cdcc9670056951b7689e97488cddf4100d13dc98b7433050b8950319d2eea2e804fb317e6741f7b85f7e449b90f6ef3ddfee00461cfe514bb20657264f78761f334a6bf901e05ff31286b019cc61907257207af3122319f02dc8a490a1d2e8c76afd3447abf06f90951ee0ea69d8c9bbd421a78d2f081678f2b81a21457d85cb2add816e7e2776bc586ad6b02c35364aa6fbc9eacc768f4ad3a3c0b7deaa7cedffa4239e6a3b93ebab488ec0ddb3ba89332384fa15ab0aeaf84a4f60a297d3942c829a02895af43b5487d9048141ae03754b4e016e130598dce4ec9cf76fdf72bc46b2ece8d038ac94fb08a826c682d5cbdfd0cb6fb33cbf1d915b20d734fe780130454761a23fa2cc8c808d7b08b63d1887a7469525c86be429726b59f8116bb68252521218db8227ee5ace596833efe1bfb64e06a14850c7d2b50b8515acebfc1e969192e9466e984d0558f9df617efb784bb9c5c3815aaddb79e423575ba25d8dfce4efd6e44a45b23a27acb882072bdcc2dc73a5dd1487eadb228b84be564c0642936e884140886e07a335f05ce2e2cca3ece60cd69c4782018a5122e7c2967a7966b90b1a3ac16d11b0f13e5bb53518307add32c60eb1e94b6f29039997ed14afe3731073109fd52a7435e2a4327ceb8bc22e1007739796a9b811293f548d3e3277f851bb4b2c70ead7309c9fe465cfa797883022c7411883175217fbc5555b4c1e26190719f1ea1cbad6ef9be7928fa372cca18cf6416f90e6678ca3f677bcc8dc549c74ba4e2d180436a5d73e567fca92beba4505b8381072c9c1dd0678b5b1f9d4ffac3b1da07c69dfd8316053d6c5141ca604f6c29d5a2cbb76d328efcb85640835e6ec94cab9d19d23c442a91f9a9a156a37cc2bc6bbc281710ce041efb9bfe9daf9fcff88032bd317f57e6997c054fbe90195a3ad98810294254c019417c78958050fc23819a7cca88a1a244ae1c16c4e435a875cc3a7ae3c45ecc4ea1f65a258fb83e48c6bbee7354e58e6159d1e4e1a30755b0c8f851174e7eb3cddf961a6b43536350f83b8f147513c765ea4dfecaa206dc77bab0dda50b38f75a7e5857977edbd1d9e9175493f0a00512a2d363d0f82d5226c3417f3c1dc28826e1fb526d318ff6b12660269e9d5cd00db251c744b792f915b5a5426c7f5935350d28f5a6b1e816415838860bd01fc0b3bc8c76e8906767a670bafb421776bf39f21df012db0c94df7371edae82dd9281599dba1837ef97f0c506aa5d48a242a406abdca169d61af8715511e5e81e4dde43d422bc852dbf574f74f3e54de727cfc0e742311ea5d5ce6bbcadfd3622c60f06e0d6e6180e874b27d62770a5731b2fb7a41f5ede4154009a44924c58180f7551cf4aa33e00ceec9ca38bec782d4261e1c5c5c7e8640b147b185c7261a0aa82c1420d460a1fa3b94a7f850b0f3c3ed64a4ee4d33851653376093b17fe983d710d8771e001b08a60510407313d566121b587cfba256c4e6f2c837b5e683f6ee9282104c3d3581701192ca537e03a5debd470911d9a956d82383f626736f6a4c0129eae513dc538e5691b4834a7381d1bc5aeca0dfe27bd2d0bd5c3aa7e1d4225d8e7f679c7aab359d5b9821803b7d3ad8c1be0964626f56ff0325bad5325ba1ed06675b40eae6ec48b6a8cf4d37993f7fcbd2daf47edba7f82985ce7455888578b6f1d82d36bbd43cc8872e16451e13a0956d3ad4ce8ba370c40a096acbfaa280e6581bb5fa885b35c6a4ecc54ecc3f6fc45fabcf331a973871865b67d2983fd419f0644085014a0297cff83f8a904d2e9d00ab931bce92efbd1946d00e96535effdebe9841a146d05082735af0e08db8a5122e8f6d7d34265c25454d7a694487d5ed63892d0c6f243340bd0abd868dd2e7032dba243240b7eb0d63cea814339e6bd41d47f93912c4d755f3fd4c083fc5a58f94977e3ab01e064e376fe96e4d827bb0706ad968555aabd10ef7402b9b3365a44f2a832be7e9518143e5e1d0a04797e0b561eb7050e3e2e75b56ff594972f5b5e86e2fc4da20e3d2ec989c185f3c8d924865efddea4130250920d346a1562973087684eea441367e287c21a25241abf0ed3160cb4fa0d7dca7a1b468fa97bf865a902277a438cb4d7ab11afb65e310c730d6b02a6ef50a69a714a3779f9d11a853b6e9bbd566ae19e1c4efdb2df4101e085d1ab4ae08c28a0ef9aa62f1ad2ad8c09bd890a3483a29d156f1e7fa009c15f6d62bcf3503279ddaf9f8d92c731d833e34f9e2fbe65d3a01355b02d27ca9a4a962a1a9254140063f2ec3887cfefb78ee9c267b2098fc8e9cffa7cea5c23d17dde64449108bb0d0364c1f84e0e39384969567a6d828c4775c773106a0e00e79e8c020d4ec1f88d190e54f1405f9a62c10e542daad58363265d7da7bce4f8ab1b1e4ea0c2dbbfbae68c1219d82bd793458b9f8ca89c8245c0d8bc9b5ce5513129b56a156b83b9f37ec5494b4216d1ef9b50f1013ea1824d63e13915361ca92f1a2ebef8b59428b13d5ef248973f65a16d0f43779367a1b2b705f46f9485023e2853dac693a5c0351d450429c81712e56037e0e7881ad66ec4c3ee6847cd86129f229625d375938f04152f05a7c2a17451d85377931e0d1dc6436a704fa5200f912b3824910fdc0dccba2f5537e97e998c21fdfff7fad8a7d4e86e13a11ee95d32323b2a302b4449e8859799f370a10deae7a0825971e17df283898d14c1edc988ea1628a84ccaf040946aa736a238052343a68d5f23e6b46523d717ae3116370daeb33ba406678356316e6b0c93623856ffb6127e8350444b5c8f4b0613a3e7a65cdd92d4921e92e9737f2117a8f96ab5d1de6040989856e6f84cee3122b299e9a3af465f6609fee78050f22a3e1cbe7a45ff3bd3f8c906e341dded5c879bbc275ba2fe2aac70070e4fa3ed797b8c827fceccd71caf3bfd155c487e6e45d09e3b6dd9698e3b25d95edc0dc0dda86b44eff2eae89cf68880d1d1bd8d94787f97237c95566d528778198a436e954527f4a90194ee827cf51e30446923483fe97ca48330b413e4f91542c9c19eaf490c3ac8c1f3cbb496c1968ffd7fae61427f995c0f6bdf40c3605207edd7e5c400ab75aab687ea61f1e3f65cb7ec37a92ee95ad7b84b6c5d1e0b058d547e96bb6ac9b9d4ebb086b2bfdafb810ee802544ea0392f678ace10a721c4a7e7c4dec8e13c68a237a9aed7aec176e946eb34aa109f6fb0ace901d4db68b00c1775e05d9a13a84980f67f8d6e88d7dce3fbe11c86664829ca471b273b7393a7fdfd80d9c34856ed10c114437de23779cdb50375897ff1690e35aff441d243b53bbe55e08f0983e95fcc29a8103d60dc37e9b5e48c9a67480abf759b4417ccce7657c71aa679e0537238824201d6437db49fdcd7e1439d3df81294553d40da5094fd056e129e54f6284a6d03843b66a1d471fe51e8a8af11db848ab1acada1fc7561f635eaf8a9b20d0f26605115e67a8a00ed7c5be37e6026d50c7250c31f8e5793b41ce27bdae4a0c01cdedcd1fef5b9c179a044d51b1cee9ca8d33eb5536081e4632a5127423a958120d3b041a912fe283499d7cc4918d2db21234ed63b3991be307e8c43040ada146ba38e323c8293dc1c7ff44feae2fbea02ca11ab8883ec39d33bef0fe0daf320204bb67bc7e30ad29beffb47189f7752e79c9fe8dec69f3a4dce3871e200921769b81aecedf401a19bb674a0d6fa9f699e0590d2f8c4f73a223b6c21ef5aec1037794b229b552d9d7ad9f1894d3d8e84c007c6f3c83c9207d6b39b266a355474032aa43e8b592014ba9a0e1513ee3467f573f2658018692543cf827d8b5b8b544986a71f036a6f1467be164722eab3c71c4f800b67b067e9623cde393adfc2ac694d565bdb8fcdf5a5b27ec4b6e29832d02163516c6b7befbde59652262965bd08cf083808b77cbbc1a6569de3198aac42a10f1bc970aa241414141414d4766d97ed08e2ac24a763e85091e76584341cff51b1e76748ebf19f0d78758c219a088eae54989896a8d2c3a9c74ab5d9683c4e4e5dead3934c16a3a16b44603e23ccc965d5460476240b6939554a25ebd7a52562efda52c3655b0223c7c6637479e1e1d103781c5a00dfa381bc093a00df4303e079e81f3eba859fa15df81d3ac8041e670203f8e182861d05d137535113188076390940bbb60440bb9e80685717006817d40fedf2b2a3a3054de70efe9d9086f3df8dab03672c896ecdceeb06a76fb609ba56e4c75ae4329eb046a75c56918e946a52d248a5a270e008690f84c304d854f529f54ddf6404fd68a107d22c3c0fddc19e011a02bf001d81e7340bd6b10095002d817f80a6b30668fae424014d6f5050502b0cd1443eebf1af8ef131adf330b48cc7d1fa1fa0e76c8508685814ece6b22d9574b21dcd1d98cb8bcbd6830e9dc2efd03e82fe47aff0401af63c34fe1e277c8fde8f43a3f03c0e789cdc7dec3a00460ce7669bd313d46d748086413d69d8169853256d3ea458add6f7b1582c168b55a443e1840d55492fa38f212d0629132314ba3b4648d3197a1d9a8515827c0c09d1585821c807cedd381e28a499f0403c36c0219ac8737ab573e8da101e403c24f9ff7a8922d42c16bb13f6a3615660362d4e5262e6196714f919e1902d01cc59e17768ff199a85f7d1b497413fe013a01df00dd03300e96ebf091a85efd127f068159e013a02bf000d011a445480a202e985f051da496b09f2012386034544e8a884190166049a8655993b4573274a085141a38f5105edb2a1b0656bd793dfeee2ec04810738608619a1d0dd3fdf23a4e5f81e40ffedd028f2384378c0a69ea428721febc0f1c1a9c1dc6162f2d4ffd12e2b39b4cb29137141b96eae2897724d018d2e1b0fe24e0e5d9be169e85a917f5d23b2c536c29e5c0634c29c8ef2acc8088372d90e7d337502ec08ef706386861db15aad8fc562b1582c1a2f4e44b4cbe6b22d4f5da050d051021526a625aa54b19242486d362ac54748979676a8934a9f24254509a992128f9e1e4582429a0912a8648dc2408d06970dd1f428a445950c0a81f89ee1595048e36a437280391abf0e8dc2efd029fc0cedefa37d3c0dddfd8f0e7a20adc2f3d0b0efa14f781ebd7f480e5d2b5264abe0a4e54602a48ffa1fe4a37c948ff2d1de412c35d4ae5fea235d45c3a8f8d0e29482beb9a1a06fa0f44d934023e99bbee99bbee9db0d36b55d369715cf5d1e229bcd7c34ac0acfc7f21258910e7d13958fb0d864e62465787848f25f1433948b47bb6c2e2b2ea71eeddae27a9a3b5c18c8e5e4b2b202b85a81587e540f2d7b1e9a7c207de37ff4ce0fd144de47dbf81dba84d7a16be4d03505d466f8ac001cba47c328f2b17b0336c500fd512f55547df4515e327d740ff9c87f3452c6327ff413d9e63fda293f551f0d95a5983e9a0a1e92fccf4747faa6614c542a596549f7a08f4ad037b71afa064a23e927b493a6424369248da491349246d24832edb2b9ac541267cf186fa4b0106725391a7986c6d996287333e8ec325c2b72a13eeac3549ffbf55feac5541f2cc3d7d745fe9380bfb165d02e2b754bdde11b8f2edb929d2d83d65ff4d3ff7454f5e1b8d8679ccf453e8f9fbbcf337cfe57f581f1f963d527c6e797f1792c7554252bf7a5be6dfd45a705d087f42d863376af43eae89961861147d78a14d12e2b55e6b24d115d79642108460b7709b1065516f44d7fa93edcd7d7517a278f47c8cdfd7d0a90db6eda1d6158c2c68ee17c69e924632f14feb81be75d369715d716d793cbea2740bba05c567f2814926d6e743975409c95acb165d02d8434fc03c6cb76ecfd27ce730f2336442bc065f5570869382b843140dd60818786830891d16545c865bb615cb6a11d1b3c78f0a871d1f068b178f018a2e7cc9f9bdb4697ae28d7544d118c09d7eda60bd80e2ea89b2c601c80bdc0e57493839b2a6e86004b411802c94d6cd7b99c5c3697ed8b29a9182a3541121fa6b456daaeefe3ed862631dc70642fe62ec6b72f5e30c085a91295f397a89b9820a98e863dbf0421123129b97952df6d4f308cd49e4f449592a83d7ff5c59ebf0a87627b4a9451e265862523b2582c164b09d49e3ff5672a5646f82a88cbe595127624db5b2832965a57aa96e36ac553dcdddddd29bdbe7a42a95d31896eab8afeae250e5bd3b973bf5efcc2941b2f15a732e79c7306f9a44f5c5412c5ac9eac94564f56472b21325e0161bdf8bea9f5d453d7a7aa2465a348f326459ccfe5ac82fdd8b4f6a088c96f48b695946a71f660e14a8645a35f37319c193a868c1a648d1d9e1e1c2b2939fc1625351583d96c369bed0609090909c9e6c5c4c4c4c454e35a49d1e19292929292a269b1fc36e34c325276784d92116d369bcdb6b2aeb22ec5e716155a07ad7fd6a5fc38ad2225d559f701575280ac67eb2b293cdc5ae75647f0e8b13aa2c709f7a7db2edfe7d65a6b292dc1ca8817e7cee5b8b9e31c37ba5beaa2bd4e31bed7dd2fb0ef576bed1d27c6e25b39112bfd1cb5e973f85aafb3d6fa73ce59e9d7cfcf1df1d5d7eb3fe752f7afd633e7ee5e47ead3dd8eeeee5e7bb82c9fd7cd39e7e42abe76ce39e79cf373fccb5a6bcd2eabb5d65a6badb5524a3fae8aaf3b821ae1eeee73ce5ab59e3b135fdb6ab18068751f449ae7cefc0ab4a7bbbbcf9508e8fc3612777777dac4f39238055be0b449b5d587babb5fbff7e8d2795f0317e94eeb81e05b39a9b5d6cab4e7cfe7f0fc6be7bb1327e5b64c7327091a744695b1eb7fee838e8d7147acb9cf391d8e07e38b81b0f04665b37a893532ae993c411b5015825e97397cadd79c69e44caaee7398bb63ee8cf0fde75c716533e7d6ebac6fadc5bb8eb65a6bc7d2e659496badb52e04b5ab26729ab9703f9a3bf3272e7dbaf6c563b5d6d29036df0ed5ec3b3af1ad9498b5d65aebd34a89f9dc7c3cffceb75e574ad45a6b9d13f663d7b1b4c0ae4f959ccfd5a68fb55e4fc04fb7115cc358e75afe6fae92102b98560d61a845b3fcdd789467f92baee50f73b6fb20c74079ff5e2336f8ae65203f6bd710065b5414c240f388ab7761adb5f8f5aa0198a333ab3e1a36f7d54b69ad97524adffabd77a4948e25fd8bbfbcf7de7befbdf7de7befbdf7de7befbdf7de7befbdf726b19bc6be3be6cce55c5a1feb95d6136afe9c73def43f07f3d7fc35e79c3f8f99523abeaed6b1815a35c45821032c5055d82aad191d30124e4fa0b6740105156022c0e5c9c90f983031b584510c7ab003265cc08227a45c31c760518413276410e6ca1066f3a7042e940ffc892bb65d6dcb8165069f4082fbaeb558f2acb5e9161cf846d79e579ed8428568492a0b971d8610c4960e7c993e501a62ca0b9200831f766005910e441881c40e5f78c0e2685692dbadd0c0c909cc121045182208220e88008826c24851020637f0410576e0059208b4f430c517b3f9330222f6fbda178b0b60c0c9b8760447235146ff8a16476cd59e57b480daa5ad35afe20347589cac28ca61d6b4fd6d15db7b80030f1081081dbc6822c4ccf19e585860c3130b0b6c3e78d3db84a5f86a31c10e74eb64b972d3c1b7ffabfe4c9d2c36dcf38a9625244bbddada84ce393b9a2be7b889e8446c759973776b5b2d56cbba0f49d4174dc2dde9ae619839e7cc95a496decf5e3477e6cf3a832a9b3a7d0166090530499b5eb14193fd57ae7042a1077fe9eeee187fe9eeeed8dd1db3402c5fafd8ebc05cc83f370cb568f6fd37433cea1af8d97fbcd12807a0597e703ccab3efeb8b9cf63eebaee6759a868d1d638caf1dbb57326db30ce4cf40f7397685f9e84237e26aa350a998544ce08d3dcff37c709f52afcbf7c71513ae5c145e6bdf47c519d2dc2b696957c41663af146715ec47a764d37136550dd22abe8feaea5e026dfaf407d1715581959c18537c55b01f782c0fb07ff06cd4d6770f2fc65c48cb39779d149ab7f48160f81255aaf13e4972424bb25b9c627d99d638675877a9d5a2a1a9a1a9a9a969b1666a6a64c49a9a9a558d2aaca9a9a1a19a7387f3e2b3d52d10c6d3f662eb9b14ac2a5bc950a8db201886e26a258ab6355b2c16fde163b15a2d1a9a90e6726550a725be622df107f1e63aabab603fb0a5201eedebbf9b1b182ca4bd62a50803c64a056249e2e4e4fc036dfcf40711fb0fa29e3f8e630e0e8c186c1c6f6c5e35a38ba6358e236b9c9119c5711c478e67e6326d5f2d89f9af6d629bd417471dddfa19daf53134cd6bcd59272fa3e6256393338323ab5102b9736342edfcb609e52266477292676e3e49deae97692323fc3990b3291c8ce6bfaf03afb64d9c58a4a54abaf48cff416ce5d0f86cc3c67f34b4d114ff42e3bd50c8db35efdd6e34bcef62abe9966997aa79549117fa944f7d36365d48bb37dccb070585bf90765773dbd82f43d7c933f335da4e72e65f3a4f72e66db438c999cfd1ad49ce3c8e8e4d72e661fae7ce0c38c999d724675ecf00863ff496f94f2c61abee8c8c6ac5aad1e5e96925b6645b9c9c44191ad28acd2633e3025b5ac746dba830628a8e90929e4cb96c09af926766cc30514e85e54c4a3832a62aaca4b9e38f8dae9651c5e6b2a72ed542697b6bd9a4ab632cd18c116dde45451cd8b86d9036bcc90cfde8c89d38920d241c9ce94f3c296709f1be6c6c6236ae284a4a5b4ae84b4b353521edf51fcc4647a924d368975ca634ef18516653f3ac905603a3a6c68d6a422fb279d5e4d8d824f17ce6f98f471b4da95fc0ead4940c16bb37210dc380e1988dc7b14163ac4fb5ea546f55ca6bb2b1da6ab54a959c9c57a5529998f0cdb9daf5a31ebbff66444989f9e21e91fa26b9ec16b92c4c25a76ee89a54ab482e43aa4b2ef3a7a1120cb2a7c7c60152dfa3304fa22c5552ca655142e1ae19936c54928d4a8aa1a3fa8fce983364c890c934393aca3a32684c1a3366d410ab512d9231839c240d1ad346dba83095fc11762f77395c73813083866cca48320aa7da35f45daa323139ae1b3b5593bfc0239d9aca3492c81ab346944c16d2ac9498303170b86bb48daa6418315352951443a5a46051fe63936c52146993926cbcb44dcad1368a942a2e6372d912d3981d1aa692fe356854d4d55d97a7272f50505fe8ed46b750a7254aa0549c2ee135fe3bce698d6b36fea56b32188d8dcf2dd767c3ded08cf8b9d1ee2b23c4cdcb42da8d0e1b7ace6e34dd33b43fec489bd0231afe3764eefbff4648bb9687272a4726938d364c95d9241e448bc351a3228e47acf99e90f6cab986a795a395d88c18c0f65afbc42a85b41a1ce04a056269a376bc74cdc6dbe81a8d282be532ff9c83834b78ae84778db51a4f33d64a7818ba26fb980d6d3405a4d986a613c7e5ba6d6f09fa6545f216f98fecfd6d94d494ff90efff5d7d234adde16f422894b4642787cdd3ffa4b868643233e4eba606f6f9bbfa4aa9a45b21c4fbe58db27d4947257d406b2dfe1d21ed3e76d1c8ccf454d2fd6b260b4135929409404d26b34953c4fc16061764a8a409374af5c1ef52dc265f9b831b1da0804aba5fd75b1aeb7a1d3436c93ec14c2ef35b6393da3ea9327f9f90867f5eb26d7fd2fcfd170d2ef3c711d268c659493b4e0940e53041470e1ff0a5ed13aba423a4d58c36e90221694709322020a01a170d508b0504c4b566de8e25d196793b33ce4aca8cfeaa10fcac7ff73604922bd9c4664c2f934e3d800aa4fc572910b11b79133faa64d55f66473fd5cd58d27df35ae3bc0c0de37574ec63e8fba3ce4f440f796f12450554031220c3021840a4c88f0a3e302d4327c6789b31c14cd2cc0a669666ecd0c1347b61061c26f4f4d86ee44ddcc88fbcc90c45b4d1941c44680ce1d93c5400fa24795f478ada351755928ae993974c321fb909e64fc63293fc27db5cb6547df2d3cfac60fa642926596163c943eab1245fc658bece2873cbb7f106c5a4fa2ae8200c2d037320a73f90471fe0716821dfa361e8a10bf03c340166c4f03fe5e7a0517e3ec0c708c0b31110437900d716d793ab8b0bcae5e54687cf0d4c07878be87aab5528974155a91a55a360401c78e3c6e726367b210787093d3a3649fc3df4cf1d9ca70c8b93c4afcb1960e10fbdbbff543066305635542a4e94edd52acb1491c2627b9242143b1db0974143e013a01ff00de81e48e3678096000d5c448a888cd372a75d50b728a9292f14e27ac8d12cbc0eede377e86e8597413be07f7c06912244548079111a0b2bac56453e60dc62379cdb0d350ff4ba5769ef41f0af4642bb48848cd4543ff7111b76cd1b57cf3df89e37537d371679ae6bf07f61f5dd7fae81581b76adfb6f8642c6b0c89b81631843381679b3d57b639137f380e0d8650dfc23444f76ad0341212bd57b63d1fc320bc3c0eefb86cdb7dbb76bd81d5df07e3639f1c586cd71363931b567931344d81f065dd78e54980939793177e616729a9a3c73cfb1b45f56a71ff867d7755a49f74c8866e20d5382e09f1fc24065e6792e7c1f5483cc30861c406c9975230e0100c30220b6806101105c66dd13ed190e19a9753ff7910dec5ad19d75415c1b7fa815307bc207dfa624a86777733e893f67e097a24a1ca7f87f0abbb481b58fcc2c453cb1f11b998f7ff5d3654a6818e7ede70c9cda5e39af7021b5af1120bee7db30b38fd828268a2e1217bef70ff50ddf874f73610913a2590e53ee13cdbabf21101ffb869a4a698a446d2ef33e7c52429fbc9bad7bba5125aa84f4255552c2846836c5ff4b3a84384b14b6111b58fb488e12394042c91418c0577d91925a344afd9c8550bbac45e0685467ddcf999139cebfa39121a23ddf86d63e52002298ecf9b3a9044f758eb0f917d8b2cb0b68d973099d79dfe91ceacc1b8d72515191eb1a7ed43ddf2701e6ccd3485663f6fccf69f6d83100d1acdb53d78e74ccba9fe10b4be698a925dc9859376697cdffb89cb92031b944f1c0c945041f971dc0d9c485896ee2d20155f662a50a23eed9b4e526034edda48508bb3543a580a23fb6ca5854d86c255b5ad06411256b1eb1ac4e2da5ea539576d4ae4d5b8ebaecfad5367b5071e26ba7573aa3f29ff4aaca1bb68ff5c6559c293e18444bf3e57cb52485340580b611ea4ebffb7dadca874c09b6aaa83f9be8321d40fe23f360f6acd2362a69295949b192e2f78d49eec64f4320378c1933c609bfa7eda600d0bea3115b57d50641dd6badb54e9ba537287f63b003ed67edcf951d4bbcd22a6bc5508364be49ae4d6255b46ef1cd39e7c518e4387c9fda3ca748ab61803890bbab9f4f670f99eff6ec19f3bc2f75c4e79e73ecf7f1bd3d9b23bf4fa539bc55fa6e194deff7df0693d41d3e1802a163c68c1933b387baee4f5b10a4db75a9b3bde5d32ac5cd71a5dd9cffd08ca20c1451f5acd7f95548e35e6694c9dccf9dfb2cddaae4ade49dd173f5412eeaf0fd884e48fbc62972daeeab2d17fe2afc4295a85bf5f5459c1cbe368b343ed2e85c65dca793d8edd9d8f51ed33c9ab51d7108046fabed762d56b2b26ac7844a0b983965f66cd272032d4d4b9c16b93672dfde3188854a62ab59a824fe317bc4aacff7f47b1810fa1fcd7f561bb94195c4e2fd4aa23de35feb59cfb9a7554fbdfca5d77a9046ab7e863faca755df0a83c4aa0f4df5b40b838c9468b7c6f2fed52a1796d019f823b3546fedeb7cb97afb6fb9f7c63048fe3b9644fb7e4bf59ff7f72dcd7bbab4cfd18c3020ad577deb552d3d7756d97186f5ae30c8374befb977b5b4f82c5dce8c25d14e427736120a116dd1b5d24654e30e35a881bc30c8d7655ba95757d91d88f84bbbedf7ccf0c7dca1b3b6aae7836af6a09b3e5d59badd6eb7efbaeeb929123a46d780644a1515ed2433bb7b4f02ee8e861a90a8b0ebdcb99f046fae06ee93e0ddfd44928344858d848ed9d68e73dab8af8dd4b7abd85be7feb37aee925aee6718001c0ad55af57dbab22e5d5fc7e9c9b60f0352df9b6c107ecf794fab89d5673dadf9ab575fb5ccc7aacf4ac8430f42e43a41f567fefb4a3a34e74ef7370c62bfacf7ef08ab01e2fa9977fdcccffc123a8b551f979e35045fa7fa4c2474d78e5eafd2aef7c2a1fb577b36af0a7217fff5b1eae31160ce6c5e45675f38743f976ebd9119ee455dded25f156a50d7300601aae4631d141067930da46cfbf5cb2100886850ff864321901cd2ead86301ba7d04e7dc2955aeea41f98876ddf4691d4b1cdc29109e299818b3e9fd7a470acc2ffb08111252db470a4c274a25638dfb70d8146b6053eb4a36bd230d3ed694ccc761f5b43483a21937166160ff107ffaa87e41345272605ee1e2894d37b545d3ce9f53ec9ed1bfce317bea1108e1082d2144b166ec7945084d0881c9cab0727b81d8fad7c81d453bbacf1ed3ce9daa839ddcf832c03881819a4f1b638cf111627d6a8498abb5d6dad7eb3f0757bd2d5e4971f3ced5e72bddd6e25a71abc502e2eee59ca35188f5afc53f2b0984311e4bfc25fe8a6b4f7dfb9cc518e36aadb5d8ce777d643e6d104c1453e020678ec3f85e6bdd6bbd81489fe6b973a1f8565da4e812459728ba4811858ecbe36244093ed0c40d3e300515b3f9930242741cd277a54b148cc5bdf85ad1c70b172f9a4841530fba60b13d0749d4b8cce0c90e888032c5511ed37d098730bfcc7081859625a0488182848b031ca8a80c81556061044e5954a0658b294bac28b67020c45eed790507587629621dc66b65b56793173b4011d50128ae58224517dbee79050a24d4ea61ae75be62d567ba7deb5506ef799dd7755ed7799de761fc1ec6393667cd18638c31d560929b8dbe241b036eab1095b4716dd77d9fce95f4ba2e731ca76fb576eed88f55d2be7dfa515781c8e1ec63bdd27a02c6d87b8cb18731fe4f4f1c54bdffc659c99ac7ccc5c48c31c678b4af03621ef2fb787dacd7cece3929b5737a99c4c6f09c18f76cfcdfe3bb3f07abbda0ada19015b2e3ce632d7536fe397e25f15b1d7307cf39313e62b17677773beff7820f68f79095fa1d33c7658ecb1c97b94f52b375950d2f883fcecb5d973deec3e00dadca57b5d23a55e1ea5a1083b489c8d15a873e30df88429c75f0c569ba5bd5677e8ce3f2a60fa4a36312bae953fa1cc7658ecb1c97bfa494d29c33bef9b9a71c57392e7fce39ffdcf1defb5c49efe69c339733f765ce397339e79cb99c73ce39e79c73b6de07f947df7b1cd2e8535aeb15b182d5ed0df3b6eb73f8e62f7bee7c607605a36a028acc3077ea5b7d1335028610993bf5432dc3dca1794fd78e806634df659ae7ec636d8368c36bdbb14633ce1ce504c204e68efadfa5dca6d10ad09bfe91ff7c5f182431bb1e7d5f28192ded26253edad5c9ae5fe22a48df4d9c2296e42e6787b4ebc7307bdc23764969ae3e20c83453554d7cf5bf557d4aa9382be9b33e6d1ff2aa4516885e34772c2044e3637dd25c16d5ad5f6bb1cd76efbd18638cc523c45c562529299b4d3c420c05c06dfb5f37b30af663db4be5b33f27a535e7ea74ccaed6c7396b940fffb7129318fab182b53089360d693ec230f696288246e6d349b46938e4cd991193fcdc3381bd909f7b18f2088337e66ecc351cea86c21f749c23cead7bdd5a6bc3218e00f9b9bf210c797cb9cc651f0e316e4dfb1ee4864378dfff5644fbe3427fc7e1d0fd3d447f8c56d3319bfb4a77de5dee26ed54f6e99ea1107e3b003cde71d65b39a86fd21c0e09a94aa2275ffd4fc8c30a823e845f78bd2c087aab35945bbb95b31587ac15fa562e183191315971e1d0b81299c42e1c0aab2d89760d87c451ec663774a95d8266f00556e7aeded7623c8a2b2a03855629edecec61e70e8d953aadca89d9da1775cfadea948a6fbf5a3bff6f65ab8f7d254498e6125ca9f9b58699757eede2f3eb53f5a1566836bda311ffa7d9f7bf74d3eaf6622e77de0786aa952833c36ad1b86a5e3637b05849bb238cb9431f67eed09ce93f77cbacd5ca2eeb17bb7e69a34a55524c9db255a65b3477a895aae19ff41fd57f5e433d67a0cee16753e87f184ff1ffdc0b4b1c36fe36be3d402aedb43d3d6d1adca036f23e6a34054ff19fc2fd67bf061b5ebb9b93a7a4d9f493bc6a6688767f4ea7bb8a23cb1b36378a73477fa09eb3d00b690efbf1f4bb2cb3b59e3bf4bb1dfae77d5de7a94a1c361d813efd75b9e3b03777e803b9cc22c1a168fb68b9197cadd74c3b15123a666f3c7ef8089f6dbec618c46a3488028b1f72b0b2450f3af8620b264820210a240c0116c5a88a0bb6d8a00825ba70394116b6272168e07b6261ca8133e5c0a1f8e60cf153e0d1032b56d084920eb4144d49225377024b0ab6bc9def5e7a1e47836ad6449b3372c723e0f6f7e2ab3fffad3a8c6dc7716f3dbf17cc1c25da58db23e0b6ee392882083a1491858e2d620aa4e7f095218aa0b23dc6767707c2e2eed6bdd57a7d7b623981975db678d063bdeebad72e0b67dddddddd6de8bcc684e0957f28f6f21f1d2c27c0a289bf8e8e8ea7492840d8a5ce1019ca971d3cbf178a1074f8628cf19526f9e27b2f0db6c5dcb4ad97b5526df0c2a3286628467c608432c407a088e0080a1213283ce40065890e58881863a493c5e6993db110c10544e2728e97a0e860ad4e96a511f890977240e28ed00326420eb79645136b75b2d476d06442d144a776a509969a124828b082082abb14bd282420624c952e6e70051731906ae21602a51584c0083d08813bce61b02f10b39bb74e0f908e2c3d3a7afce7fd1a2971fd7bf008d43377d9b3a98884bdf7ee3bb65e9cfb5dc27fefb5fbde2c9cfb9760df3cd22ca48e4e4f359242a6878e76467b745419fd2e05a2d192255decb267da544b6875b73744fa9322f1cdb79574c188c90d3c60f284c4040b0fbecc986c289208c196a82e8cc0c46c4e994a92f473ee6169db6c49db839193286c705a193c8295bca3ad8727dbcee91df86410e9c418b56834c5de1f6dad767cd157c838833c883922f74653ee0bc1e17a106188303e21ba6330ce5e2ebf068d449808c3e36b7c97714fba8ce3b8175b53870be2bbb111a7fd5ed5477dfaadea5823d20faa3850cae373d1f0c7e5386eac81d6e857a56f6291079146bcaf8303f0713d882dd604b78395b4ff7dd37f747c7c2bc4128cc1acff0bbf4f7db015ab7864895eebed13a27b46e69311a77d59cf7fef8b7e65b2d3d2e9632db51356ef63d1481445981d5fe3bbec3ee9b2fb4653681597884f91be95a8fa3a205541ad128da6e4baa3bed19479e36b0e9bfea49f97d00012104734d5a2b28081107c7490022e989ce860cb1520b2f0410f628a1044105004610a285b8a80022d9808411519bbe600c40f6c25145a8670c54a1460aeb0220301015f387182289290028a0e44296cb067054430451544cc008b0bac80a0884a4e1822229cd8a2052fb89283168c510db1bb15a4c04e77ff194eeadf121b0b0eaaec96d2bdf75e714f2c453fd8784f2c452458c2f41ec1038e2f26c2b647336badb563792467b14d5d6cb1ed0e336bad8e28b6c23d9bbab862aff6c442c40c76291ec1bfd2724eeb3e270c4fafb57a60c4b9a98fd5074be7fdd2ee4a29c55797dec33afab04c1fc6517b9128b14e6ba641d53ad1b6beb750daf72b3da1ec3e89dd25f74932edbe6ab5739ef7d36aefe7e78ddceebaef46233ba87e4e4fa01e98fbdd637cf1bd5f7a5f725fdaefde352c7b9cc55d18c4ee8bc42fb5991bd324c6b63920b76230df11f155494ace1e71363d3dedd9f4c4d32e5fb5a7e9074e76fdc1aedfe3d446cf2a8ca88000c02001198e04d51f3aabdf42f5994d7c5a5089edd9a44592164cb23082ce9e4d5948b1675316351d7b364571d1dab329aa073ef66c8a3a41940e2c31605450e09619a8988660edd984050f60126caeb8d102dbb3090c531398a4dd24f5f4aa71d1b45833329887a6278aaad252952a36a5304ea2d8d71fadd3a94f5ad63d3397c75943dd36e4ecfbf36dc8e9f604c067c49f6eee3f0e745dda9f250e1b06807dbf679775736ec4bfee394f985e9836379636fb97b75c7911cb3996f3bb793362977e130ec0df8bc88d65697f7676aca1ee5af7576cee2f5756a75d7fdc3b96442dc86c8709e966ddd35dadf03d43211c16763af1c3dd3314827d30c1acfb292405231a70d60752f29ea1109e2998e8f60c85b8971f84c0db33142243e9082c9f981a50f104b8672804860f28706282b04231e2220b0d547b86425c3c406249d46acf5008b5e2082d8a0062cc9859f7538b7b864264aae041114958a2648a7f27b32f10bbeffbc384ee4642612e2ca1b30ec90bde775f83058836f70498b34fc848ee1ed42a4f836117d6c00ff2f003a005a884ecd8c97ad429542300000000000316000018140e884442a12809b34892740714800f74964e58489f0983b1248c6114454108196388218600421031686868a80362c38cf62dfeec04d62ee8ae287b1cdbc2f81cd923d940061804abb7f1c1b1cf24906d237bf60ba5c55c3e83ce4a3f02bb6bc86ee24c7eae5d968b16c837faedcdd339865271366525defc5e92aa367290b9bfefd05127db89c9920ad5a61d4529dec40b8b770628a0c560b0f0d27d3c310221ff1f8d7edcbd7a9532c5d39a7e633ba53424a751852c7387c611827dde102f1d085d422d9e10a5118ee51c719f915e5a41f07148c853268f486f7e1750b5bed7967af9d1b65d874c6727249fdd8be65e7092e32382921307d6a58e957e0211583638ddf8f0f2e80ae111c7f734f0a2c6dcbbb5851144ebb1297722809a22887ce6da9c9407a03c8d8964acb6e89c5021cc27dac8aed7ec51a7d78da4ae0fdd0916d8fb15e0f44013606a65facfda0ca02741c81461456a7e2df002723a5a459e9dcd5e3ca05676587493837abfcce19d1daa7b1173fdd4bdc468bb4cdf891022d70f2d8b8a380e862a071a8157db8b687a4f3b7332bfc352d27d801ef45be0dca2a2aa7711977c5a749991fd38a6af65115be52770cd80048c04be011180f6ebf3d8cdfc3588828cfbc7e44165a0bf4614c5d3567e60f4a9603daa72c03c230fe1093ab4fac6f0ee9393f039e7db881989a85cace016e353787bbe06a3b6e9cf3f7d8d36c2953e9571e4d6da536ebc4531b9723eac97577636e2707d5e0457476b1d2b87736c8773533b979be19b07cb78e501de2a0166e7fde671d2109fb0e6820501bab84e212a5f82cdec0f0c8bdc86157efaa3fa9b8840dc8762b0331a06f1bca4e4f274c3fe1a98329af2b5766e43efaa03f01133fb7a981ad67cca52f89ba0690c41f92473f477e8839c046b0c3f81d709135abb6835f5a54ac54ab749d0044d4262085da65e435336732b857cc2ecac069caabeb11064e910a896b82ee71db72f4fa71007371690be6ffa4bc1d8d2b866fea997a66e4dc0ee2944462c6806fe1d8f726165bd874e3121ed58563c36d4bff601d1df98481ec79c70a5acca35aabab37d3a81fdafb3e6ceb68b5d70e7541cf626a1128e43da2631a335913b8799abc08842da4b7d3bb2e5efa595a92877cf7dc96cc993ba2948c886f2292199038e93ca68b3a09c4561b022d9555185b991a18de2f960a9602d2aee08f9620e5f227a257112dfd8e625eddd855d5f3bd199f47cd953d56017449241d734f70c267261f2ad581374de94f673af7a3dfa20e1bd2e74ed5c58df216083fad72114fd5a4b4719dd1032ed2550dc1b62207d596aa60a0dbb72a8d9f8b39c79fa5d900916c603e9b195e459e329affb05b4bc0d5294d30ff61b3164b35f3d3201d604d1d48c0024211002be333c086f27f658b77400261f7aea9f9917d422b31ef0dc7c3bf36a61d1a4b33e66383b8ac1a80dd96002fdd9256afe2c632b09a10cb0bcf44cb019215c5a73d7e408232e94e08c87987d18fbabc476e9a0914c708cf7a00f9580de2cd88423540d6f0d99f30e4a7617b03a2752c84ea4d80c15c3a9dbdc780fd385d5ac2533a8e482ac81aade70eaa31b6c1de33e9558211866872862ea1a7876b0ef243047b16d9f99843fc26d215e0c4976169e5b50737dbe5f26e05ecac4a031fc9fe73d029a7d831e863517cfc848e22644b050450d9c1eecbaa475ddabf1399668966a2ec8859dbaba78b33ac0c40ec08547dfdd3ad367d48afbc2fbb5f5a58a40afc1000d56354f52f651aa200f4a1c7a0bdd1d1eb7199289244dacf981e07c43411b513c2c52bd586a961d6e8f261ea8382a6312639993febfd80595720b8bf1664987250f771a68d713143d728ce9253438193a76f6d34f8af22adf3f531b943c9d0cddc889e71dcc3f74f1455e7d608c0d794f1d7a7bb2bf429a5ffb730470a8b3502cf211620606b5037d1b6a0bda16f21dd42ec8ed101ba8f69077a0b620ee43d8f4908a20d63c98145687db512a5ea06822084c5387f6e379d407e3f04b8ebf5e7c043ef367ae7d92aba9fc5dd2ca792641376d65e0d33a9dfef451cfbe572c56c2d47269c0ab2a745cb682c653ee450936c354bcfda1cd38371c81beebd8d6dc439800c2287b4dbf86ad0ce58a9ff0532699610ab5f4af65674893a4e515215a1468f26170738a049f98cc367697a15e7b6fde11a46de8c7212a3e4de12ec8192b445cf9bf6802eda55cce25a870ae9cc14b4afc23ca6d84535a29fb41cfa99ac87eb0482f054457ffd28f6a55014a5d2980205b8854df006ec9050ae91dd1d7aa697d1ae513d4e2c4bffbb55ae526c4d50560b67139c69f409988c637e2ff7f83234e3d1c6103a615e97d25d014f8d4de0d663442206ae893a6be9af551643719633095d81822b32b009f49c759880112f151dec780922bb59d2ce1ee246639e35fcff225defbe0e6e9fb82752759e38f7dd84da748607ff0d55b7af66ae8929fc66bd00282904f77855c681d87bde2f6b6d7922e6af1f3513b483c7eb1f61e34d9b8496edf3b00d8bb49b21cc32cb183a46335a41dc26ab7009ef4c8c7d52aa91a08ab8c387b921ab19ac4dd6bdb149b2c8bc6475ce6933863deb316ae5cd42471794690d3ebab46189e933c1d11c9ab8e622197bff48e8a911885095829b183a63547742ca7975653a745bd6c2cc67b36c59c406d74a725a2c5eea33c2dbcf9a1b7a4b665ea868797c46c0c0eb1bdaf96bc1022f6eeeba8d36bc8bfae085ee9c7d1f6a022560e9336298c97ccc5f0b5301690d57d03a3b7343bbd32d083858ecb6342022ab2c4906486a632e679529f34655640301b79963124300adc688b9df7b87f1024513df16dfa42e37c7a51549b512e7ccfcfeb0fec8dc6fbc11dcd7249640ed060852987c74be062d09e52a565fb8476740bf2a32623cdf83849df3f6ca4abbc532eb056f71a06711d8125e00b8ee1ac8318e1c8d9e81629af08a039551d0856d5b026bd449f9c0af48f89853192b691211ed0b0e86fbfecacf92b296626fa57ebfbe2f74c8f17b08b07c4d4b6ae8f6fc5d06b863b5d479cf54026c6623bd208c2d7b92c076514d44a651c272dde0ddd3b05fea70bef4647edbbc96c3600b7dd755f73ce8f406b44b81ed7a1b0ad41e9a0800292858dc00efb53fd8e9a9ef138deafaaba659f6aac9c50d34c142f64fde3455bf96d7e9b5aae01f68f10739451bac338453c2f214150c9ac7affbd5cf215f37f4b6fabfd7b5ce9caf62112f47aff56d7204a903b8ec3e275bf59a54191b5fd049ea21a92787b1ae40289f04448b600211fa930122aa91367ec8f9c1cb93d0ecf54dad9f89593112c8b68d371d59e8c1181166f144a052b174b107a81baabf024e25357d4aef5822b7af6067b7a04ab4facd49878b649993bf6ad6d1ee1971d1a4ac6408bf84a84276ce3b45f16265b6298bf4e8358e9266d593e868c5e5ae314b9c01b0a91f181665c3c1dcde73dd258e0a6606a38620006a874312ea06f58a3f5a664e698442773f1d6ca8769beff242dc706692cd77a2b60f10a22c025c2fd474dd617e70210b1c50b9c4742ce24590d68264ea059e4c30ff0229c0390628c1bf02ecaf5135f36da007992ab68633baa8b965fb8287d6aff254827bcd23785c6e0d017fa5b8db81bf62e3170e9e10abd6e799ea3b76979ebfeebff738582bbfc0b6e73c3392aca85fc7f195158579f4e786645c9fd51e8ac5fb7a4142d77701ab5a80d6da026846efe14e78c19bb4a8abfe8615ca9ae88713d1a13afe3a787d18530db8048b897e51e883525ad3c2b757f963f0c08c7a8c5ab07f1d9d93a10e061432b3f6e209beae18328d2ab9b6202d4861225939792626ae670673a827371a19a3ca9f566d695b2bac512cc49335e3255a5c3ee6d40c9ef93fb0d007a5cbb53f3bf3305a22b8a5249b18b6989ae30bda5310886d8e054c3c5c6807f41fbbea75af30190877fe5f91a8a8e3be2c91f47a4cf06af2441cf0a2edc70ce19ae2cf1ecdd57631d04b48781a4ec5e2a3692f60d593e57e5b168a6dbd673bd289604dba9045b7260e8fb2038caa9e072877059940b26f238ad9a4b5cb6441617bca8dab1518d63c3bff6092c5764c6c9ca648db91d7198734a57573c09461c93ccfeae01afa525b8aa18da4e445a0e53ede97da179d5a6acfd09add130b7d4901d4b1edb2b0e4972eedf85657de743ecf974409efa5f6d67ac657437270f87d403ed81352aae8135bc1e022c6740644c3b4d0f386a5278925ebf80feeef5d42345de430ee847f8f9cb94ff27172ff32cb6479e8df784047b4401238b5fe102324561cfd874884a405df77e5ad847d36cdfb4f73342859ab9dbf4fdf10db988d7ab5f20c06f347c05e6bd98689b6ee98a6bb435d20848dea14dbc7db2c76f5a95ccdca1e48fa3c62120c1334a9d932ee881056e42a97a04f649722940cb9de3b6d993d11498934ca4da12aef8fbb4d2f871a2e8e8e59ce0ad81c0af160e81fbe3ec0134299f076d7b29dcced8869c548054f09cd10084c3f2de9ba34ffbc3ffa33c091a74be55a3a8f81f8dad07afbebe1bf3c83fcb61efbb13987facc88387dc1167941f42b181fdc03e0b923a48b3874ebfd4c7321b6c78a7e7dcf4c70beaaf87e8202206af4b92efb858416f9830a6d8da5f5a8d9e6463866391de5124f8abafed98f32c9f9230d9a13ac82d4af5a7104235a1064ed30d65d100324b1b47ad0954e5431d697f8d2586720e4bcbd816a4ede8844e7aaac43368fdd96c2083e0f1672fa201a606936d866346ccaf9246f900d95b0a3cc74f3918d0e04fe629b3ee75d07872f9d28753ee3d0c71fdb20924c6f5c3d61990c5c85ce18a8824bf76cfd00ebdf8bb616510282289a326ae54de8b4e470478b0c3481eaa16e94c458d99ebde8bfbff7914752891544abd9095065828a23e7bb8f984f571a32e52717ea69596521e3a35445a7fa56e04152eed3ea2386675b21f81194f4563cc7c42868daabe74f0c647ed7f344c32d4840a3ad1b45cc36282183a647745a37fc0a23943ac77c85115397acf5aa33d20688286c3a8fd540c845a17dd7091da272ae6d743f46a519e6d5e48678d5dc93ead0fdfd3fadb911c64e0f9994456a4d1d8728218d3d4db29b727caf7d27bea67178a0143eb6266d19e77891fe411e3ff8aeb566513317c6a30ca1922fad81985e5a7d6e4b9cc6dc824715b8a9217aaa83520af156efbbf0f9491b8fe81aa35d041a0c7e09247c3997be31716b8b3f1d0d8ef593492660a59306ee7f02c1cc560edb0dd437c25cf1529f4c8faef0165e076beb84a017331380bd01313f228b0f7f88b696ee06666cbdbc29ffab4ede910bdc2dc8c86c77b4aa45357362de101eaa86feb72cbb5ae19a4563e647bcd75f4023f93990799b6c9fce225d18887cf5485e550ffb94c1573828690736832e488ed0a5ba7323f4c5453f40d10995f355b430a4901e59a53696331765e45c89e7f6bfaef6e4686bf2ff3d6aeba710b0a5568716c158ef6609f9c07a18565d83306956cb368bcccf3c3c248766e91194cf9f13e2fc8fc79556bef1e388ec78bfa43774efd91b58108597a59f282ce2584728176df95f3e406f124d3cae3abe9ab62f66374c4bed08f3d74b33fca6b45468853ac51b1447726f26ae7028866a9877b9be0897904045bc6a67db952fd0aaa600c9809678468c70080e2cb80d72091bd9fe6fda969f257d41139e0160ba0de178a68f270b68c5ced59d6182d65848e4107c1c854da7d450c5ed416027ae1d7f99edd9e4bd0aa62d552259cdd51528f3a3d2ed75fa9510eeaa8a694782f0dbd1592cae7ba127812070dbc1e2ba2cd48fe2a453598b4f272f3c5fdc887f86ae821c8f7ea7ab8743cbcca28194741fb55062be199ec676678745ceb5409f6df647f493af38f53996227ceb25a9588472fc4ba815220d0bfc8ae68fb39b500848547e14bde8d2bea772bc2a39a8f8e2cd1315f0a7689c530fe944455f9d0be539da22ca44641732b05149cd2804851bd7ee9deeb51274cb72e49f41d6a3e739f4c6686ce672a63547433e59c4c3318ddaaa51cf5df2723bdc33d56186f76dc784304c6b5621dc81da56c21664495b47088bc4bcb59c5dca8c2ef9ec64c9dd3474d023166272f194e76ea9940aa2a165aaa584c147ce7a71e36d37e3bce3f90365b648c6b213d7d49aa8c7ebe91ab3a7d528d2c4c38f4b38a54228dd5a7137dd484038d9e917721de8c425c7d9e1675fa5e58d5679babe66f6a8e54dc8a86c89a3df135439016d39a8c4f6e2a1bbd7ec83d43f43bfafeb221f8a400ee8540ad9176d9211ffffdbf4884a45870be897e6442081493f50d01d286502ca432c21045c554863821234235cd109f025f1e076deaf9ff873cb6522390c8b0c87b9b90e6ec29a5e1f5b8c5352f859907923e457528bc899d2e22a4140b765517ad393aea4983f88b948642792652cb14f4d0d6b8e4ca4902d04405861b4ccd012de4cb95054c6b905125e8459c947a1d6679cb2a5ef8eeae13a4de2164a1cd003c46d28d16b83cc3490144cc676f5de2df75f0e133439a6f2720b88aca82a2fd0ab1d55446b43eaf080d97619aac2ff124595b447e37c487b148170a84cf71db6b04a192dcab81027a8a1d0199e77442042186cf2ddb361e27e8966bef577bae34144184fe610fca8403f38930168035abc0db052f5780c38fb5e8025c65c7679e8b86c173232c6910cc8f4714782c100040baf1ad57d9602b34f87d9166af450112e5430f4a5f6a462cf7205238576083ba70a42cd3c9de8966b7fd3e4c1fc5d505cd1f3935f08849ade84b2ce056620761c35411f1c255039a40a2b702dbfcb2a177240f51507cb9346f9b3a8257f7ade0891118406efb705e6ad07d2d05b154b8f1e1dbb0b36c1f129629d5ac91ee2e11570aec509d3f091d5d68aba187cec3592e6b2fd02b2d40538505bd441bc664df822bc629f85f1d5f0b964850429a0fc90a34d40c5c7a1e17b8d3c2dc7a32029ea162087dcae00d3a077f0bfab547fa6f69f3e0b691e2322bedb61dad989da00c6ded4b620039b338beaf31cecaa1ad44773e6589b94d8e8a6f62c1997857028af74a63d46935f0b86779b3e421448ab8ae3262ecbf53d74a34f781e897e355e929fc532c1154f4133839ab6a8c8cd3601612e6495e60923022b9172d3efd1c4d7b44ff35ee63a46c6702004075c99ba5964fdd74993dd71a94604246c0c3a98e2131ed41240bf1c11d12fe8047593bcd12180a581195dd20b8c4c5b02f2d8161f72fbcf395b38e94da9c46f7fe9f69913992809aa3a745d881f67035a2c9098ee33a888d0f473b19f3f0ed970385fd2e1c83726dda2654fff7ef5252700c9254533666fa626d74732193f51e1449f27caade82b0520766808f290f1e67b4f4e222229f07fecd4cfccdbdaa04a8980c9b4f5751077c6269869ed077264e0cff72bbdcdca6dc7fbffcc4e2c18a25bb29fc74920be0d4be317a6e13c66c344eea2c97ebe11ee5a0ff0056e7d19b9631c3373f82c9911d38761effaee3839e70e4b55962a4d55ed8be5b444c06983aa4be71a5900ebb2bc826cb222f345d29f7b1763759f15b8fb29a7e6f78f3480469e154a7b28cef1c2f95cf84b7dc864b6016a514320b941953f7005654a48b3e13126f0ad07516d744691875363379b3b82fc8103ff2d0cce3e73070b345fa2937411f0c3aebd4941e635f27049d5a88b9e3f6329f7400eb26a99bd8135bafad6345b15fae1359f3af6048468cc151a6e89a1ab3a42429b3720960feebc85ffec0996362acbca3b60eacfca262379b808c26a94a7885785a3e436500a3136c7df8d37c8cae719c53ea5eddb8737b49a6deba1c2d9e0a12763d6247e798ee72475c031b33edbe34c849c15e3aca8b038710d71a429de362a3bedef0318c5e26e3ae9ac898d441e35c01be4fa20c120d748d91f15406ad3f9affe90b38455d384b70a01329d80daac29ee7e38dbd798b07b4667c7e916e1a10225d087100a599177f04dd220fe979a0457fce738d251f84e8f46e3f49b26a0258959029b14136c8a23bc57c36a5851081632aa184ca51e6088f07e5fad92ac9062daec7b5259f7cfcd9b1c25f40fad3545b3c22dd0c877ce914a8b5c3fd38cb1842edb149ea89df6da64112df2038d1d6ccd01d759a357ae0a80bd2c48787d07d85f030fd581f8f69aa8ff9e1cfef03a71e6e2f3b3ac947e96bfa925bc3b5874891f05be9d5d255f1d9e889aa440d9c6ff2ea484b39c83f44d34b996cde512db6e1d8cedfd32d12a086d7419fbd755cee5ae046f8968cc21fe2b87f542ae1859d8f8d22bae5407497e7c224f90b727fbef344f1ea76b53025dbb3701aa2a4dd5c2edd12fc55b4ec3dc16ea30818407c9d3179f7ea7b1603f5918e02fa99b8663be73736d91ef56621140c81f4e3c79611d87a054410eafd30cb8ad2eec45d46c371fee3cf2712860db891646d30ee57504cc70dd3a139ca57b1980813fab68d275a6df41c3064a31ec82bf26f1d6920724f8dc53cb1dcf6642d00d89208009aa89b6461b314417771cb65be52a0cd79646b85eb8904bfc85610f05dcedead7b836a443b856da36d9a0c3a4290936da301d72ad28fb0700b31c766d8d674fd5d2bd03f963021f55e170373e8081778169d8b43b150601028aab6853048f3d71f888aa7f0b632490e1fbe5168d6214c8900ea252b00ae92802608d949d81691fd0b6020c296b4c3057ccecce2fc7666b6d7c4a2850d4f0155f98e47c17557232951338ca8f5252d11b1afded11259c24ea8feb847e94d269222854830447d33a3a9a8e13f34b5bd4e9e608a81d2579650b2f8f5ed42a0f78d4f02fb0bc05334aeffe695c6d1e56af617ec22ec2ec30bc07cac2d25b8943a7521ac3370ab044a735b124a9314ded92f08721fe98120e714eab17fcc832a5b080ed54d68de776df2224298de6800aa62332fc0e4eacb220f04a9fc010418dce02a38bb32fda9e54c137d0fdfd8c5caee9dbea687649dad2a59f7c2f6a7aef82029d183320e6ebadd1fd3b071a391cd75451991bda52fdb5ba8beafb7df7239cc11d95b9e687c425f079944286e4ac377b7e6e9525656c4274b8349421ea3dd9b41b84f2651b866b1b985195000b2f8906a67a3a2790d8727f51316cecfd55ce3531ba89980c9f07270bb2d42c8274584c7f186d1b072d04d586769e0af5533d101aba263593d9ce85287dbfe34e5ec67614d01ae092ebed5f46ff88ebafa131d12aeab7faf20e2838590398fe3c7cd4f5545ccd928d7458ea429d5e0329de387a3c1167b217a16cf49010029c5a313b8d95bd9635621e6f8bf7d78be89606413ed4b01f3967b35cd514cc585e81586f232afc328ebca1487f71ca2698672992bca766e29c4e5d586433381ad9987083b69b1d5948c90c1e6be07b64249ff1b90f55b62dfbb1cff0d7239e98b36843ba8b906b2479762e54d20ad2050363c5b62237a825b1669689496d77a6ea14c196f9d3cdb530a73adb430cb122c9c5dd8931d7a55b16d308b3a6288e715cb1900827ad4658512ef7d07d73a360c68161f98b3d79049f96473c06be5b9096bcea358e636663462bb0d6f427ccec28557c2b5e67f91f11f3f41466f8c42b30d2299ef03fb6b77fbe88dc22c379c4f29e360d43cfa70be8f87bf6e46662fc281efe4cdfaba3f7864c387c479c583a5e3b3211662e88d8a6fab0b3b20017f7558a3a3629095c437cf63a1c455d7e5d0fae5ad6a0ad388f8b6b054044f43269625c330bfb6896f7e35f797c5927b38638527dc4e3b3c7739714bbfac572f4601df68ae3449bbe9a42172a4f436c2690d5db508b7bf67285ff2d178f8ae073ba3574c685fc0a09654f287854003eba4a518b905f374e7c322b4f14ca81e6384f120f0d569ca68d2ca1752e3753d30ca9885b716c01b7a0768b12555441ac78fad7f989fbd8f192de24a8e6058d4447080dea1ca878fbe7922beb78f0bab4daf5afe57dd0142487ca85b93ead51e9cb46f7586c3d623fbf9f63713ad19c006458c0fdababc56a191b42a7f49941048d49bee24d5b78af8ed701f775947b19112bb1bc412afb341e20ecd4790ecb714201d7f1086564a2f608aa3426572457f53b4eb7e4d6120a86e8fdf574749ac5c02d9dce6bcce3a8e4c57ced6bc1fd05458b0b8de479063d330d2d5d149c71fd420168b8227d501715aeda669427ed8e09ba2b2792ccdc14faaa220b8a48b1cb0310109a4126829b56de65a9d3e3654d8206e2f6089c7ba8a2dda76a1e1d0b2f749ba889c584775d5306e98a9083840f3d410806d80c09de758b1790a96548395b79e0b02ebd15d5e383ee83e1070d1cc72390c1550ac4913428bf31e63623391a75a1396eb628e60ce59ae2dcd6e8eb1feee9bd7ea10ca2f1f1e6ccd9617a40bec31710d7196a4ddd8df209dc1328d1280c6bd7f1050cb55303d5f8b318124f3f33981d642b90082bb77b3cda3abbf91916b0413e1e4823d02f7268fa264790a8053140cc259e681c98836bcff75e903501852b822c09db56dff84aa58f579efdf335d58f62d269fda21501c63b74eafcf0b1212086bbc738b9f2dfb05d8240b4935471ce1bc45c50c628133e0afb63afa013bd65b433ec0c8ec594f5b6c5955b83f00c655dc28bf0e9dbc05976a7f2266deac1eb81dd9b5cf7f2e28ae6083122b22715710fa67f1e43d92de2e12895c11f0841910e9b99e19670473e663fdaad5f37899dae5a1332ba15227cc1f277b9a9ab70fc0515cb0fcea742b88384aaa7db371347d8aa814e48a8d97515dd219e45c5205b64eda0a65824366481a983d2645932e16f0a23f3bbd5a89cfbff89396e6cce086a28d816a3cc90ae7b0fc3d9ced11fbe1e51f0bfc5d5622a6f8a68200b72a691bcbd216ec919d79caca09518e00153819ae2900e2a034b74b63106c6ab583598bdafe95209082835f3f753f139a18595f40c10d141c711193127669535d2092478ec8769d54c2e3135e95f46be0fbe8e4a30c1c3923041e9528d491f32ce28f130a8f8641ac1ef91d7ffc5d3693b0f0e58704dd435a9e48947b429eaa4aa4515fd8d96860b224ed6233a8213830a7ef9bf9354ad366b132e4c50f3a1a92c207b0e4407b880b57a0af5fca2189b24193f764a73614cfc8587ad52c08b455fa8a0d3a1dccf35b7ff03dd5cff3448c44e96097d4da6ac4620d6315ace47f844aff0191dde447ca03fc56b8f172de48bfadc42287bfa1b7157d0d4331bb60ca6b03df8fea3f54ef43f577d4f71a3510f13fcd69e41cb493770b78e16c937110e8e51819f57e38c7e8f3e863a749bd350571fb01eb9c4371decc4ed2f379d0664cde91d78c0aca37d916b265f74a420fb073014d1878bd42d13ff5da5eff68afd7d1be50cfa25eeebacd216447a8854d709393f55740d231612df2746ee1afc93661eda0233c636e20257b12a07baf09aa784535e283999907c83a63c211b589e941cd3d302cd0bdb7d8ccab63b7de30d68caf1a129e9421ce892019a4fb863791a433261ce011c99a953771b461d4886eefe2dd7d87ad0cd77d468960f71dadd3e9d31dcc20d83bcc0b02e0c8b9d38db7ed8d9a1aeead5c8811025d91bd3ca418f803ec9c553c06dedea192f1bc8f0ab1af21b12ac32d1ab93cdcd1ebe341b97871be3256190773429134812e0eea4f688e24ce1edb7d22135f3e7ac9e8fdd4e989e553a23fd292f4769397d09eac5907428fea74533ca6d964364ed6ab75198cd05302b2cbd010b60df2b0ac0a941b55a81a05d2458350093369a0d6b0ed5ec9d109751aeb48cf05cc56de57cbcc1fd42fbada819771e1c98864e8f54754e35d33f59372eba328717307b845e61fbd472fe5dc96629c5e44c5a3a36c8bffcef13de450c0fb330a65d9c063223282aa65d331fbf1067c01e020bb861e6552b5086395e214251176cf0d55e6b84ce1979902c0110a9fb2089015abd733b1f8b587071b29176a0fcb87f466bbbae32fb868f6025c8e9c2fd82454ee61885708104b51597546634530074066583d7f337f37b59ff2ec05783b3b9484ab1d626704361dcedcb982160f6a3b978789b48d9a9d7151b1609847d21fc9ef898d53e75eef3f6a3cd6192d101596abb5a4a1b7f2e1a9ded4544f10a73fc034d233e19e039ccbc62f294caeeb7efab74b474f8d55181c36fcfe73aa53502971a0ab4c9599626e088ac63d6abb0eb33f5de106b8becab07927642c5d648057c20884aa054078e9161048c3d99e0167de907677da295a678ea2e7fbcb8f9a75a9587b4b8aadbecc4177ef31f9bb88e9c173bc11214b3ce30bd445bafb91a2e5a0d94eec46e88e8ef6049de6802af043cf975b751db92f9e3945092d60b4386c1b2109ad18b271674f1ef70da95dda50ac597423a3e652d83d69340dc378f148e9220c71c7218c66e941c92f01641227d6bd9ad9b3bcc3b8eb2ab07d4f2bf2e682a71d14b5c9beed475081977d8e88ec9d472e5604c0883e289fe96cab097301bfa00c9e8074264a965dfb1e17e5043700dbf2662e0df8b902aff0b1d029257d9924e0777210a35cd79496482f84f03002094e0e1c28ebe0fe0dab6fcc9943cc9d760c8b5232f09d416a01a11b14d0e43f88aeb84d20471eeeee0f55ed3d5ec3690669cdf95bb21d3143a0ef55892d0e4bf50ada37beffd68c78567c2fd2d03d9904221870502dd5d2ee21a18a2b2d1de3b16704d26aae5b2968602c6747c0a579a2b4e3a35b29f7e6adb90ec4fd88d2a5613c9eb14da1aaf3136e4c9bd3d9cf97a08f9f017f29c35425da4f7db30be9a5bd3e9efcd2f6686ae224190553d7c2b785eefa1e539317c4cbc79e4509cca6be09eff7e9b46c91be6f2acbe70571a944d6b539baae871e53c080024fe186a4c611fcbbd2d0a12e3660ddaaf1ccb2a8c0e029529fac5bd25c0905aa2b0ac12482022d12188615016247800377c403550bde4ea870077258979e0a6a12c950f391555ce2e2bc10241ffbb7bb1668e0d65d270d4d70cc970d4be202d3e9dfd461a64b2fc3577c7866e4d2213b35d252909616f929c84a8774cac8a5405a2ad2a7219516f2a91d59996dc5a26b646307f8ec5a20fb7b55ad955780bb4bfe70331e8cda0adc57d49fb803cc0f08226ed042c90780700f20efb916c4e990fa4ebac10b528b38c0373bc5f81f9cb3548b290f6cb75b7d3235de8e1506033759ef032843e7aca700536268bc31464aed4303c5ffa148f16c61fc77f89612687f5183b92efb422f76023eff7e41daa26b69d61387aff2918bc9aadce26acb1a59da4dfdb3ba353c97d4e5dd3632d68f25b27f5920554e2adcee6dd5c273f2577df9857750d9b714cfc5a26c4ed1e19bb963ee385a9b09552a09983b54e452a8216ee8ff2ea83e07f7516b28703bf3f19400ad4b85f98ee01b83c111469ff42f4e18a42e40801bcef1c9255ccfea23300c0b37fd1e892ca2186b526188f98a53e2cc39cc3ec4892adfbcf31f619adadff1da4e839e4b9c378ed88cfe0d69f19bf969685429676f2e3dbef30612e5b9745822a8533214b1231712a40270710d99b08b83fbf645b29b53592c08edddffb278c89fe80391151116d91fdbff08fa5ce2a768ae7b3bc1b5920a543d65b6f8d02c2695ffb978ba9256a78c92377c8ed9ec70dd1fd6e92b0125a1955729f7462ef303e8bd79f829699c9f25eb0d4fcae83a1a0ed4de4d7ef6dede2a82f6b931c5da9d09c34b5592f03e4a662d107ce27911e4430baeef1d909845d659d4281f3ba26eabc043951f97c478bcea7131998f51be4bd54c4e743e0b1294bf363bdced9d389cdd7bede86bd8e515601a70ab8c72ff3aa5725c7b7dde4906168c4851cc0e27511e6f70278edc1b9197210b944a38c4aca5bda9c60a39def30b6a167148662e04ba5b73cb7381fbcb3b259a85df96f835364f15c91a85b0fa3784c72c27e59496408974f76d6b0df109f3a27fc77fa09ec776244df3aa1b98d33f4aaacaf8a8620869b6b797e43af65ca523bdc649c008d8ff4abf83883b60388a41cf0dacf70ce9e74201e03352a94c1b9d510b213e56c24cc1acd987242ef153a3abaa849165abbb2c469b97bcc9603fe630f0652636566ae4763576ecc053eaa25601975fbce0aeec538647839d5a3bf6cd78ea5ec37cbdd55957440f69bc2edf6ff523b3b9858f9905617d15de61e0a3232a060bc6027c8cd504498da7424ef5d393771f3c75043474ecea4bf5b56ceb8d73ec3242aa130fb54a973e905b555c6a88aeda7faa2619c7425fa39a64f06fbd72d7999abc58b1d1906545740dba912c6fcab9b40d7cf764303ff4309f13d2c7f938d41760cdaa08c0c473f4dd1b5d1abcb047f1100b658d9efc5a8d635af96ab329a03d5a7c0fd185c926f2a1a19461c432dfaebb010a47c753a3d67a374361288d8fe97e061c8066368bdb562f1af686344fa39b9071d9844d624de9ff93e293c0fb3b2ef64a1cb1c8423064a69b6c38a589625a2161a72c4bbd1cbe87d2a8a9ae02913cba600160db18ec286e4bdb15d0a8e19a50150719469f0c8da5276f3ab7e1e83156bc79add8347a99b5d2dc9c7dc1092b35bb8c912351086e28f4cf040373e2228cd6a85580479225ca12f7efbf225dd1a068afb8684b37bb84906a3fb0799666311b01213c3e8bbd17ad4ff719adec5026463ea3d63ef32e78d3378401ea5f210291e5d8e73f2b5e1a411e1a6da6afc9ed994c2d96f6c12b14cb5b4c973249c5529f1049f2040b23a6073fa55820325c6015d77f2751ddaa259d18cb7477c72d8e5b4925ba1832130d503585233c638b3fd5c4c89a770914ed21dccea5273199798adc8163c7eddb02596028d7f68dc19bbce0c1f7d94d61e7959373f853f0b8f84fec5173d9e32ec7ac54054165a445e1341e1f86947cb7f003245743bc77310f85c4218b6bc6ba2a24365b33c6c6c9a9a6f31cf4c15841c8e15a4e1f8415382d78626d9466b804dd787a5d1dafd33cf4d00338fa1fd278f3cd396ceeda161883001cd739ccfa07308453fc2816a1ae14474b42dd8ee9bdd7abf9ae445076d605cae8474335adcc1089d3b5bde5e9d546b456cece76edcb11e202e47d07a63cad38427e7f37c7573f8c1009f61c4b32528b7b7f2b9bde72477fd31f0daaf22da5481270f877aaea41859a09fc8f4bcf59043f39ae6ace91e9178ae03ab25c0dc58970c7f7711fc525c58c08109f0743cd696e04fe9074a7f48393e05c423f219ca3864c536fa2c1819ca0b5a12b970e2b2a30abef9f139ef18fa6338d50a7f25c54fa425b1a7b1be65ff3eb7f5b2d4ec3cce1926a3cb5871a53911323a2dfb00aeb17a46bed06f3bc90d32011c8b6e946824aea87ece2ae471cdc2940941494e5d939dc9fee80789f193f331e4cda9a8a7c0fcd9df4c7615f56746cb7dabc39d7bf609e9285ba0843ef14f170432e9fa87932680639cf98869046d213fd345fda5cc425773a17c02bf8a866fb85361c3ac5a0b32fe70e541faaa97de9431865bf4a8323ff70a2d5ea554dc50c96ae58e4009662718c206eff223046f4b3a586909110288f17f968b0fe6df5aff22d937a06e49694a4adcc041da614f8a65a0f3f60c34a914a6ceb9b55cae040dc09afebf80eb95760e579aff0c646c37b07723ef3eadcfbe64a240850d34e5ef037b84c40aaf51051d4f1650753212fbec42b96692a76c1233194e0bed1fd5447b01121aef92cfa4e20511ceacbee4321ee7df2095323b4b2a43684a25b94aa2441c90247705c749fe9dc849a5c76d35a42839a75a8dadf169cc0ede7230acf54422d28b429b2496d1923cf3d4bbc0fd54da3ac70c3520471ef92dbda7d3c2ef7725c244a3707af58419ce5e3e5e899b49944c5d0f92988607b2c1450c40b2814a0a8c327f875a6275100c30523e4f71f4df06c6132ee32f139e150ce3881409a60bcdc57a9604efda03c84084e007cbdc31262a916d6ce9bfe19d0e2203285d6871614f28e905265c1ca1d4eae62472c9f0f3e97168091143f6dd41d217aca4dbf3753b9110a831137ed2ad00d3706cc0090bd785e43fa6c2ac5bb7723f5befd3d00e9796c4e3665f06e088d8887ece6ab7be3c3cd9cbccf6e3193910c6c6f808dd2ffcbc5aacff7b67b305e2f30bcbc67bb7d8e3cbf43229248b52245b4f0366a01d285a0d92a96a5e599ca29d2cf0c6677a46d9baf950ff29068b9f3aee0614261929ee367ada836a7b89303b8c2f4710d0ade5e0ebdf91626ddb070ffdab17c5cacc528e8702653d52c4d1be96180475e55bd2571ab52fd9501e89eadbb35ff12068e0c60de145b863eca4d231ec1c05065634b6d7bb234c591be57996d414cf3a2dc6e5c2f0b8dc234ce2f197ade6e9d6f9e2d5c9125a9be5fcb59447358a0b005f36168e2557f064f8ae63f1b2f0ec6872e9f5f26ecbf9c81b092b080083eab678250dc734b64d0ae5d0b8d57c0221dbbb5b6bdef9f3c898a841cba8a09148fe833332f7807ff928dde30bc9ae178d69b4a09cf0cd4c187724fd8d733a80d0db613d3e27abe6fccb5ad06e2b037a90f894956169176051409d6965f2316816ed057f69fe2d51e5028aa445b2357c4fa05982dd538bdf8a3061c0383df88c8bb06b50c1f955272df4ce785cde8bf266d7aabfe06d7bdb4a2d26e4cae874035f820126ad91196c4a8ed413edc1907b8b1f7b0dc7ac65e7a679ac60ce8d2033781b34cb98025dbc7985f648265dc432a4baf9025e5a300f64e9c6ef10d6be2a73bf617cc00176299ad461c1e43be22673ef750fb8bcaa2a539539bb107e0307edb98002df8fc87aef1df1c1ded41b849d6b9852f47ff4b4d545bd9d808237200804ea4662c37dd5bff5c5c37ae83d60b401377719c92b32629b3f9a65044d9599b94b1492f439e93caaa4102093f8ca5a92cad3e200309a709e3c4d6020c52e2dc8a32b333fee1ad10b11aa9e5d8b726901b2fe2051a8f0ee1436f65b48111b74ffcf50b55198d139278ba9523be3b4c228c94894c5a22fe994a31148e7a85a43bfca06dabe3073e28db2620702660750d554de5581c8b70fd381896731ae16267ddfc09b628da179ea1d670a7659f0927f75c6fad0a67e21af8aa072958b10c8f9e9e4362dff7f547fcd1699594c5a94254336aed05b6afe24e5058a0e2bd1b252f171fef37236e0aae53deb2ac0bb4b4012f0785e8d8ee9e93a655a539bd7b82ce6719b35977d3f01c02be9080158fe59964f93e5dace4a54becbf22d5ae8de272189f43f85e0817b217023ed20c741a612f09a6b30fccb5a1dac16ec6ca8ad809cfa554cccc75948e54d077e6010585cbbd698ecf1607079a1b8825e8747486a8558632382e019e6f101a8ea8c0006adac6b81d2e609b621bc4b07cb50a71eb4923bf36d830fdc9713481a917af5d8d7f25365b32a8d6c4a1c14d1f6e5f88c3ca94d12b3c44dee3e34f0e0473c468a0475588f692541e2159ec25daad2df3246fe334dbdcb01f47d6476178b18c98bbd9814cc9ea21274b847bf6c175db0ed29176d0671f1821102aa2d58ac01b61e3323c39b7a3d95f081a228ca22ddb0c7602a1380182438cf1997f2050b52c15102c90673ebc4f9281d809e4119914d36930517867f707f38b9d968d980092dd153bdaff9c3b4bd8746a37563b0c340b6872ad40b232128937249284a097a49877cc542f3d2030f6c538986009197da440019d3567b222ee94c72d2942d023f07a45dc497ab8cc22fb3c1f42826cda7b241bd35648a895859b7a9090e792e04ea890ae6214117de01644eceb91087c836c896bf4973c2d8178c4a30018af586f50a03a9e5a1613de64e4b36fde2471c847f95f09d0778253a44dc9545f6125b2ad80c5546fc9263fdefcb482ada2d2cf22f0500b4b53238f2a5b24aeb3d30986897cb554bbecfcaf50207dd3860b5e99cc6265d6803e364961892c040271d38b5949608c35452450256a8a2eedd636c3ef84e982e05155a0782e135c31eba651ab3aa6d6b7ee94a2e2360181e3d8beaa94315c7c65183c48c89209662134730c684323b94727a728b1f575a5da40be1d4681af0d3330f10f45dde1a2acd0f9fb120fb636007fdb2b3b2034c7044e59e82a25bd664004164981d738816b0eef530308c7bcd4ef85cd5c57b4828143581b8939613318816f3a151126362cb99c29fd61e924211b8a80256d19806c2989da632c795a813c08ac7199b0e3e1ae96f23233bf2e335cc704862fb6c2fcfa02449a1e630efc87c12eeaef349a0244b98db62510b4dfb169fa8a3a5fd5952f7de6870bec39e07239eaa4bb82958870fb1198818a730fa9560708b5b05c555f5c9f59657e7843a556dd0328fcd5358af513a3034e66f969edfd5c33717417e195265be52983517d38f9ed022c6bdf3dc4ca93d510fcd8af1db4dbabbe0e0da255224baf887b09b123d8dc8e8afd95f52b9390b531f3b361fba16881205b4c775cf8d20c092fa084ecdca0091fd622eaa659234dfa680aefe6122d8ee448386c31fa22efaf16c1c9854596277965fc4f1612ac0ab950271854cc7f0335ddeacf3e10f7ebbdb52a1f0256896c7508127ed687c72e1e5c8e54d5fb9da63a96039623191aaadda9404d3481bfafafd11700ef91de30f9c65227b2db2b3d96bc71403d859346da0beeda9e8a231021b5e887e1ff6788949546712cbf9918682659166ace627c30ec9edf7adc8e5fb9df42d80960a9fb8b8461d2daa134782a94b4bc7b01afda1b949b655e449ae66052eb3b0237f1ec585f4d65f0ddfcdc35af695e061ff78cb40d4af326107338c190b7fcaebc255795a90a3f3c02476a94a66106209edcd06f543162ae40aab72b89dbf78a8a1d322e3c4f28cdd7f523eccb412d5177065f790cfcd1154a738bca1a2733fbae6bc5a1c52c9881a7931f7657cdd56ca978a24308595891b46a51ba2eb1ab7a2de09bd129cb9900f6cd9c5e1765ce9b12e9d3419fd779589a8a15829599b1eeb159c0880693e6f5a1659b0ddf2c3eac49834e7f0fbbac08789e836422e9249a34e73b4e192d0c2ffb55bb57b2ead2a4a99ea7865f2ec85cdbdc90a7c742322285c70f7e3e515a90696b17b5d53169c85e30a42b6043360c1620a8647ada1f914871c2631a2a4818a071368ce07bbd9bd79708dc72d861f2638da1ce5c578b7564bfbc02844f2699bb798dce4dfc2227932496967923dc8e591473cd10fadf67eca862cfc818f2df8689905da649a17fab023ea4b367f15b46caa24c62bbd3f0c20a28aeddbe2fcaeef2bdec528065b4136a2f45f5995744e03f7e8bf2ba1e86e4d32622834fe1be5977aba105793d2781e832bbf819dc26cf2c2b880cace60f77aa06a49c8c7255bc3b10e19d7d551c4d0f37830869588220e976879b2ea4470794eb3d23ac4f1a6aee94aaffa9e839519d36c5b615d179804cca7692e815cbfc6043463fb3d823091121ab62195cd303d3495523816408eaeb74c6f9bed99404e1ee6555b048169542530aa18e56e5778764cf637621ecd6dab41eac6414dc28a0ba950911695d630ac033403b0282c18f1265284444984d8844fe9ed881fda4d6e0882113b0d678f095b79c7d95c90fda637b3142cded6e306331a52713ee5e240dfbcfed4f90d43af6fbd1ab881c02234d05fbb0ba4fc8a435f1b89a489421b1bccd8c7cc5bc2404b53edaa59a948e6e113401114f1ee3b4e6b8203e1ddcae163e997465b8291fb933bda52eade31556f3a92a19a75efbcff66bcc4477e0ea0ac531120aca5311741ae27c7b308b7ec0fca03e3d9546003d9dda5bd0083128629d4373259dd32422df8142c6508ef50f8c95312746a8292510e79cc9224a3c28c1fe1b464d8f2a7d4fea8b3e0e518a5ca178fb8dcc443372a1def353df5a8e9e92c122c41de821f373cbed9048add243b78f1d9131e40f6fded28ff0c96a8f7cd9133ac3d1330ad52adf2bc710aceadfa4345682dd0c217fe191cb11e59391b7c339909eec2535a30b1894fd788c8ab6498a63f9e60f2ea9f96eb89fc55ca081dbbf97c51a3bae91a6762378c75f30b709ffe53caf2694b26ac225f32ae805681de17dc64cfe32e5e336ba7ef03538e798f48ce5be2a3d6e642f0f7377668d8fc13a57177722df92bde806a96075d9c8202420d29f1266658c5dbd0bbd0b742236dc75a812837084292792559988501ae79033f2e176398fd4214ee4761a033e268db64217f8e51e80974688d967f2c599278334cb9a48eb80eb744d178dcbefce69222261913061859439975ff3b4dca61d7998c5f8ebd49e9f6c72769b0a5b8f936e0041a9024fc6a9d7912927eaedd91ca0947cb8a349caa8084363482341d224f7ac32446cdba8c8761025948998721697f2580c52d73b9ac6d4453b756adb319153b78f89f9d0dae5418624fcfa9d9848a3fa10646da88e9aabdf86d3f78fcfa9467de7d5946fc89dbe0d3f77453bb9537539bd21dc614559571e7fdd9a1719a7aa81e2c04420ba31c7583446ba75dddcd4c177ff6a77d85f61125e226ddb606742d45d0a8a94416ddaace01d65afdabe38c5db2d49853d9b3bbf7d241a7355b20877e819c035d66b8526de9c59226565559d432c3ca459872347e4b386ac7747bbb11af0da648b06cef1a2d84f7fe6856f3420c89f03b674c64744b88c8c53ef9e0ed9a1eea1ac3b3bf3e9d93ad5e506664466fa7a2c9c8170d95eab0309d9ad8d8e316cc97224875aab604e95cbcd00f91e19a71ad7a830da44c31381e229107a75103aeb33ec0435049520361e095df30d562642e3c09c10d4db89da5df78b4d6eb1ad975c0b0e7195acd3c110123b587583a245a75980e37521a071e923e354e6f2401a8364c191dbf351f14f7cccce93716ab75728d4c7621853c9e099e6ec76f7aaea16cb6706ac754aab577855c28143159d7df7236f5447a824dd2265495b094509abe423493025354fd0bccaa500d2d9ac21d1447d277a743fd9d427ea492aa9ac62a5ddaab730f1c21971fb040cd9b51731e97811cde6f668f03c8146f9c40f0ed7dd1133370d7164fd5435ff9ee255f9aeeb2af4051bed2baa541d78566ec1909270b3fdc0092a30957dcc6aa54a8392e9ff56370a24527d99dd54f3737722f7de20c256d258ba138a21e44624d3570617d1c287aecdc4446ddb50bb4704cef8b19de2ec6c0c278b4dbb52dd88e45c2fcfa85acd32c1c0859fb57d9e6574c1611b516990f000575fb9f10bb11e32687c25e6a404f9b97cc2839c9d52c057768d515635bba34de96dd1b276d63b22d23a0365ad112edb7a16f65b13448ceb847e9da6719e013f1ded7c7bc771de235fc1ee2f604db305aa74146a500dbcd10d1b8d56cfc9a6d74182bc8e889d8c50cae717186601d2ea1f33998a024fa4d9489aada9398a043f44f14c36e16c992f52c1120a044fc90193cd5b7edc2fad087d3010542bac273ea0e73dd5092c270c12a0b85b270a6d87a0a2d427ee0e241fea0f514e2f0c36c50917577cf7970e6b2d0e3d0454721a4f55d82b9a48382e699cac80c9827b45be9141b4ca831e89df1415b10af77afe6494a24178a31459c9bae807387af0a27152348b1199a69d91a139ac377b20b83e88bce6f51b5a17cf643827855b0c82c57c7a8599496244d0a728b42a690eb29f889c3a7f562bcd0583bedabe50a8941c5d82e547c8cf59d5cdd3431a5bb94364d2aca72a2fef89888d535410ef69bcb41dd9805cfe817aa4cbd9115e9d84f05c5a9de85c4a7824632a01f625a0110a1e347072750d9654181b2622b0a3ea4f983b8f4e146f283e898c2839dfcbe4235a629c7b66d4c519e10da8ab2e9d74641b9984687289d24b2444bd052d79329ac393889446d8f45203ca80909d8693c1bf96241788c87de883d429618708b200d8912bb2fa3a083b0486a61591c91d527dbe49406aa2232fb838559142c800c20a036b4705d0e2496830f2c4af5c1cb1cbd3a31c28d0cb3244c96040ea3230c87696a6d0bed842482ca42f4fbf99374676d26eb06fb341c46984395e63289e81f3871cd29146213ea65d0c82477a86c3cb178a2a33d26e172b826aa26f69818b65b0d3567eaee0ed907055ff522e29241f015b8fda57c8a8b24c9c1ef281c01097b27196f13a51a03fdc28198139ddbf0be0c732b2f1dfb041c496565e43508ee919a2d826e22cc82b21a9b27b91296a746b157a1c81c82b172eec04ff681d16061d19942a06c708442051ca825001e2e3f8ee40002f254d4500df0c44e9eb65dc1fd9163a8e46a622865eb95c2cad81ed623a1cd833da7bb7ec12db3b8e1dc901e884e997cf495cdec21a156baadd4f1ac7f9dac5ca984461aa5ebe333e56224d4802d597e360e8471e4e1bd39272b3a963a2733aef0444fd4d053ae9bd731c9f8e53857e0dc3189e67afccda9e6316ed98a9fa26f260e2a0d46861a0273cd37b42f11a0b6c22d4eb5663988819ceb1f0af5eb2cca374cc9eeb3f1feaf11e9f45fa983ecec0ac1c070df30e0924fbebe558abc6911131873d385803d7c42d8dd5a5c4a9babbb40581177238fb220a8963d6aa9e006eca23f23a7847523598122d60099c5737be8574ac48c21aa2bb964fe0ed7dbfe9664435398ddfb64f662819258c8956c89a0b6ec2d2f7d2e0fbd3aaacf7f488e233e736e0863cddcc036178f1e801e96935bc9e02c76eeefb3d3851b256eff648869dcf1959071c40e43be7db4649740ca43c977d6f248d756a2dfdb8746c12448b1753597f9ce0ff2250459996a0124ac3429f7f6b87a64c11e6e7b580ab7be78431725888b4cea81ead80c2f96005f7debde973ecb033ec2bb683928e95aaba3d06a8db8a0da2c98a88d1036d198fda248a84a70d50e7fd0703b338d9e26c595540c7a0e70eaac92b830f13ea428478f0916c83577588f9cf5ee8e5f3b1b0bdf951710038be2dfa9a7b0242f20a831566200b79bac1511d2aaea200124a43ea0118fe9b84d7782c1bd505617c6d26743f9a71819ed224028e071dbe103281626fa19272a48cf42e079639044c0749060cd2f1e5b32892916c633fa0825074d4a403e773817d01a7d6f0be6324930c8883fad705160b10bfaa054468b10fe9898090889cf9394a9d1e7a9a331a1c1bf27e7491444b6657447fc5561b116d160ddd388e71f146d8acc235dea8f47264abecb461110814e8719ba349909546cc1e35bfd2a1989d080ab77bd67c0048f03678f348585eab157dbaa1e2ae7214bc157a839e931ae9119864bf0c63405497047c511b215fbefaa74273c7dac395e8b627e8d1efdb9fef0d39202854f66bf7e58d473289cf4b27e040bc2a830b5597254afe07f072859756e15430eaadc1c55ff2cdc826163907925532b9f1db00b4b205c115524dcc20e127c8d640bd5f355b53431003351063df1aac7ff49f1932109deceae0989295c28fdc0decae5c301288ebcc52ac9584d01b508875f7eb04b7d423760c8b640d03ece154de6b8c64a687caa63707d8befcf7c6d5defe968c49d249594078204a0c855cdf8bd0685d701c17ab96e44d078391805df8e63dba3de784c7b859394f9ec34c2471094dfa5309e2314d540e520d95488ca6445356b9f1e1d1d39be0a712c105f3568125116e539022595dd9d12b2329e9ba877808a90c945a7ce416ab2c7b76a995477816668b2d7902311e8226b776343ab2e687107c3777f3cbf1f1c82b650ce3e41f50e5f1182fb23ace1dc4fecf61252ed0f6fe9a00b1fc9a3126bddb1c14ec46cc449441a46c208f491052c21bfa5d6b794cbdfd11bf5f816a604a8998df19d9802b5045202a8f62f27b25e3d800dd0a88e0ba98e7c3ccc5f2e09983fbbcf0c831411dc88a20d222283e39b29af692a107052f40441a0a557a2814eacbc391f08bed2850941efc3e97a61ff07d13342bff85c787b6eb52f6335f2404e434aa53e3220b6648b7ec38bad5c14866a6cb9149e35f5ccd5bf3387760f45a2c795311769ded696e8a5bb02801d32255be65050cfa1739bad5277033ad77031bddfe100826badaefeea906da54a3c734df1548219ae0b4a1610c534099bd4aa47f751a990ffa0f519a24296137c27b718a0b344f01af0a2dddbfe2774476855b3c9cc46b39494fff999fd68a9aff30b457df39637f94c6de9b6ce32127b903839b116dd3f7507703760ca4dc3341d679255eaa9abc4a98a4689e0bb35e61567b711202fa9e2d8fa9ac67567b89dc2eb3cbdcf411307e8c8a052da249df1394b608c3ece6abf507a2b05d09f95df0854f7c7fa0b949deb642de419b86cd6ed8fd1516d1248812d26c2f64ab1168b6d7444361fff5d82434f59a8a68f2b5432ecdbe7c288f809a114d96bf5cb6257877577cc207df3f196cd47612d104331646558b7374aba217a48968b2147a08cda08e48928826b9150f032f72f1c37444939f041ec16c91b0a3c72cf0fdd2ac22fc0f428868c2dfcf61e4e6c1f2832857ae8474d7f8c0a7f1e1e2c74baf41b77db1f28a683277a7e1e64ae5d39e2ffcd75b652847878868a27fe3d958de5a96a7db992c5f83d4642c8e1607784b7df895f3d46b90099c7a344b8b4fbe3ae7974e13b753dd7f388968a2cbdb3e5d95310e949cd6f739114d5a2366627aab649b7bbaaff6403c27248d15e696ed417010606a584493d29b0f8dc51dea4a07024e78344a153ea2c9f131fe9c3025aa4cd11e1dd51f9cd48897971d9e5d4416d04890229a1cda9b64c71d04c42f839ecd8d1c0002269a1a859026f6f3c80c413f38afeb20b6799930d5034a59c8e371655723d60092b4ace37b355f30d9f9d6436cd6a6079a64b5d421283682583686a1443082f2a2253ddf0bd501cb915e62acc4322bc6697361492c3a9f88bb61ada2a19720e6d14b56f29b4204da9f0e5ae41591bd9e7e81a2527918c2bda5b0d6ec98bc3eb359a9e5e844acd221f1241e5b8e59791420d6001f9ad465ddaa8da8e2d72dfd8af31199f6793cbdbcec38780e53b296fa2545db920168617cf60868b2f9b9cfa9a5a15733d128c6a6dd3d99eb090f5e68a0091f81846a7ca101e0a63be810a1fa9f7dc6b645c69e1ad0056efc1b7000ab1e10454a5c8bdf1dfbed9c617efccb09b4d28b322d0449eb21501f788c961e9727c2f6ab2fb6f16d7351f3ec86bb1cace0f047ecba8a1616f5d2657d49f4abff41033ef530e615ebbf1cb258abd3d3205b564969d73e84736792e0a5a6f44e15cba5fa8e2d5c8a70dd436c7e10c61119666035cacc1582732d3383fe388f0bbec682519d0038580f5ca7cf2f78fb96b7a4ca525707a631a02b2a20f408116e8f53f603b499e7e021a18f71bd2569a40cdf80a47370836b1b0dc8e02791145c6dab58caf763a3236d0b04537f410905052525113d5e52118a8a3914e6dc505b08a47256b5751b6da974f28b3b7f4b7525be0fa19ba69aca909147d335bd27dca396f1e24506e767644b6259b3143075805ea779e6bd4444a3a045bc23065d581e41b85e2f0e11e8fcb3d697a8cc70557f313f882c177d521c0ce4f283d723af1a5c53345cdcbe47658f6d619fe8722ee1095138ead5df9bad1b3cd00196a65ed03e663118ee7b64c1100805836301517608602c0263a471bf0612e612f7242c1332a8eab38882068e2ca69c0ccc6c0d58104c5a85b87e069b8cf6cd9520df8716672b322082745eadaca75be8483eb61bda765580e277a584c61b15a795f75aba210aaee217ffe7138428edb189028841540c778e07d3e9fbaee1617db04dc009f1d2fe2d7a04d9f4309bff3fe7d37479f3f17eea1ce754742dc378bb4d881a6ca93b2e7b8f5db2ea427e1693937c3a92e434f299f548ecd758188698c3ac2f43c501ee0db0843864973214bb036b8ac5afeb046010138c9d18e820eb3d6c23a2a271dd08c7bb9c4db4eaf20cc14a1856d6712b11a2fd342728de1eb4b2efbed2526c7bc2e62288ccd328cee7b71c559a1e2574ad02fc309fa377bfa5905e8cd32992757deb0dbc62fe46297eb04e54f3de95c9efa10c7fbd80852982b5b050990661e80b1abb6a2819f9d6bbcdc011fe6a41b1d08df1908d6e3f9056fee0419a792f1dd0a4fb83d1332a3752a9b0a5fecb061387df7d038898d04397783534ada24e34c9bcaef81269f8f1beeae702689b88703711e0dc55d5a8db42e590c84fc5481f8334bc068558e6975474467ccc8cfcfd6a146f66e2481b09375fb0783bce1ebe7caada3e2315919a23b2d4b2437a9f8f57e271f56e0f4aa144f696192f657fee8d47ef321a81ef06873772fef8f6212791823bdf32b04ed987dcb46cd252c36cd256bfcf9e7349438236cd319c36f68151dbd309559bd391585be83cae2d7dfad7d67eced8c63bb9d9a6b1481f446e64508166d7b8d97852080b1bdcec4d2f6dc339ffe528c9ef627acca716ba2d1dd8dbcf374f9c9fc69068635279e476055680872785fcaab94392d9c450f0750692dd6599b747ff8f11eff510f9b673769091cb86d5875ab21d72786f520e26cd2315c85cdf66a9e26f5ded05b2606929a414ec2f368f10e6cc95716619732c662ca52a0bc27155c98fe031dd991578a3df3f589e2c9a875ac4aa145ea4a24b05087fcb5626fdc24517864fbd64e9e2b80a74eb575a89e69d1f5143262ed14897e946d460b124810a55f878fdb46a97e3d8d116477a49030d117bf40704b903b474988c3475a64233b66d3f5e4adfae62072047cdd26fab2608c548fdf86892253e500cf29b760c2acc9c98eded37cf24c66908376845401ed451842c350f2dff9cb6aefdaef992701939516e805696683ed7a8eeef4b7f9b91beb339d60e428361830c2643f8525b9902213b538682ab0ce83a297f926ccc9580f7e08a155dc0131d96d3252160a253aa67c62a2afb23f3eebcf95b523257b8ad4b7c4f1b9388a0ffba7b5c0ff1ac07403eee617e89a95386e48505628428e96026ef19cdc78ce089ba8ce8cbb5a1dea8f86dcc32d96e585b52b455467280c3756f33b85306ec39a79366e951af5c256afc992707d458c0e4cc24a6701b04eecb0d6b662627464ab81343ffcc49b5a3ece95bd4546eb92b20e558cc36ae88bf2109fc7bf0dbcd9bff510545b338265638afa2a0f31086af9716cb8c38a71a94c7107972f53928a30c46f9a9e079cbef87da3073604e6f4e4c47c7a064f018ab43af7b992fe09f9582e7565790ea0a75219009df86eaae283a154daf79cac64c89585b17ce84e075a631924061611c9a672be4b2af85cf7677a2c95bbbe773d7e377e831576e54830f10fca9043e8644410f561048cbb83902203361621233899982558d0078a3bc5dbc01fff27d3968842b3da19d4052bcdb236aa265266b8bc88e2ddc21bac91288879047a0b7e46b7ca2e865098ba4d76ea015a5ef577e9e186d64bdb4b48994294c10d40ff50d6f7a2476c712f94e29254d502a232cdf7b0a55dffbaa6965c378ab1f37393f2c110ecc7123c23a1aed709e0d63c328e2478e25f280b08e463b637dd3e9b5376289a05ee3401ba60241ad4e279e0eec0c095381540bc604d62b401bc6f4ad6654364c15136a5ea0423703b4a62040ffe14646174384e643d524e1d5a4421d4a8446be868f54844734cfd53c4d2accf135b526c7ca084baac60b6bcadb469ad53646abde6a884a95212a552c11eb9c9744c879db980ac45b79354884ddd7d1c8d7204195b0b64a4b24f534affd19db4a96c8cc36a60209373234349a03a1e5299ad5e64605c2a5386f1b83856734e25e6319bb37e2b141ad8c768c6e4c36dfca28f4beb09ae0004110959a41c3076e0a13b081d9401b13d0bad82eb68c38dcddcbc0a07ef100a8698e05e85e6b7d859b11a311aa3201d66ab5cd3dd4e77d4588a0d6fa99883043d334d389cb07388e3b814374c0f33c0f4409b10193c96442a582280304c1d40c1063a452a9d40c8dffa04618751333e382042860240a758c46dfe8262882662685024fa6cfebb84db3aa6dd3b41a80fe55e3362ee4a2d6ca753e7814d034adf3348d0a2a388ee3bccf468d072cf1bc2f65d25060c950c3091316b6da2de0e864a061835aad16021a3170d7d15ad0c3c6c3383a1967903112851b0246a39b33c4d800acd5dd5df5fdf8a6858c14607103b00e119eea1061d0902df26938d6ddf037bed7b63636326ea3b88eadaaa02e5a91212d3b26378c424dc7dbafdf79a01682e6a56ec69d51b3afb9d1a9bcad0d7b03c4aa6e59552e5db422415f68935a19fd832ba39b9b9d711b5357b8b2f2b6311548ad5a0d97d0c84110c57b1c4918467c1056234b3c873d89015694456956d3ea157505d7d1aacd68147aa10583b4223445665e33bd6ba94fc3f94e0fae8caa17e3e9dd823fa3728b03ae8c2a16e3c97b5baf005381d8556b15a4e168a69591a7316a1d8f2d7225b6b4b4b4e4c3c3fbd8307505fbda0fb9b2fac25420f6ad689dfd1a2242a315c410f1ecafe03d3e6aaf1511ae9c8cc97669189da8cd8ab160ea15368c182be68bd0863972d8d7aa166edb97834b35f13147cd6fa81c3c3e844740ca870c3c3e841fe2b1aaf9107e68c7aae675fcf7bdfd1eac391efcbeea79b6eb348edbb68dd3b4ceda91cb91e3ebc8755fd3bdb53735df3dcdca5d47fb1aaa524ff348349f519d3c636ab58da9402a1315136dfcfea46252c7ef4daad075b4f75421a83eed73d8b0d058ae07454538200b2322f0041a60a6e87630e1036cb060872c44906185ca053c80400f2e40060562b0e980258a2e3cb0e4050db87859d2c2071e3840a412e4e08c2f46b00232b4cc5a004607c618e38305a61023031a9625e26001103de420881a2c6d59d050820728c8e2800c1ce1830c14f1a5861f8a98401933b8308202f60d2c50f4000a3374d0800290f862dfc0b24515330023c413646c9146189fd7719b666d0e46e7388ee3b80d023c285102279608a2054de8605bb26308c106983252588102387a76b0012eb088a3054790a0023888030e295cf00302c8b8020540b82560a30a2338e0c41309d0e0a85a9a5040067858c0103df868ef2ea6ab4008c6e73cd7ba0b18c1438610dd057c20030eb0eb3a2c4970918006f460812c50a002313ed82e3081af3c088a03cc0f4c3082207440089fade3b80b7411c3fb620dd4a7f9b7bdf7de7f71c669d3e1fde03c8d2c2cc0c01716f8400b996ddbb66de3b42a38ce3f4d4c17361ce0c50721de084110ea124558c1003576e0a287d04647a863dbb6d7c8f81db66dfbfff10fe8a28d2f6264c0c40d903881a7755dd775a90a70d1be0dac9ff6d950c6160fa081820e84890110524058b2c1113288a20c0bc008c2dbb6cfe3b8ee8b2e5027208288534ac3518527088db66ee4346e749daa1ab9ed67dcd78cdbb66d1ba7a3d6d5576be5b1aa0a8eb51bb7d754db58b7144650b3d656d7c019fb2bfb7d268f89aa699aa62551022fb40975fc20f3832b4664e08c2e6ae4a00c0f3e20059cc08b133071c40d2c1046f341b6428d2ab8b031051c4b3ef82101111c18e30499312820c6d4450e8c10a1ebdce8c1468d1cdae7f5f0b82eb4e9820c23787491816d87b60037c608820f4300b1c5082e3431392858a2880544c005327040175b00a1a38b298408814b8e2e7e10a2260e20421d2480c60d1f66c29c91442acc05904085b1a208308c97214e617e40c2c4051c417c5cd86008afe3b880810f1d171d5882e3a20b22362e18a0008d8b0474b15d1082d8d28387911b9d0c2c1ae0838be9035305b76ddb6642853fd8a2013518a0003014500232c004a1f560dcb6cde3c081112ef08103501c61019f8d041b6ddbb66dfb6143c60f3010d8e1c70f304d80e0872d3f36b0810902880907b491011f7ca000161f1a360093d8020a06b411831f5e500608a9323e27c8c2075facb1021d24008d18745dd7755db7850ab4d3b76da181cfe4adbe1065d2baaeeb3a8ddbe2029f876509073fc040105370608c32baaeebba8edb6cbcd1c93863031508b528b375db0d1726005cc785c7691a05bcedb3093f940ab270400b40f0441438f882029fc60311bc48408c0a6c80012e9e50838a4ef37850e3019dfd6cc20fb545145ec7d96824dc8c316a5ace8f1c359cf0c1c7e8646ce1c39802c268f42306689420c7a669ff7961d4689f4df8a1c2211a37040d2cbe6ed3ac0dc76960701cc7713c373b395ace102fb421da0d1a5f3c8ebbb1d9b137393c9e8786151cc7719c9121466eb42243d068c0c87143b89b214378bed168c8cc0b76b68f4383094dd3b4bff9f1680421c487060f3d78706ce972f00317ce607b1668377f060a38ceebfcdb344dd3344d0b354e5b693ab41f5da7699aa6699ad6dd9c11022daffdff8f6e34fa1d1b685968a66efb000f75ab261863cba66ddbb679f146c771dcc6719b0ecfe3388ee3388ef33832bcb8c1c8ede0c3711cc7e9308d4661a7c31893d675ddb66d5f10b494b9001b3ad8020409d2e0c14646db010076f0828d194c400d0a40e101c1c1152ed0800e48c0a1c40c3a1dccf0c6195f2891041a548ce0b58ffb6de7e67f0cf9c1174b64e982030ac081c406fe8d1ca408021633f800125f80b16962a0c6ee3f54e72131d37576ecbaedd4c69836b438c109102046d771a19d60b3200e25c0f0a0840312d0fdcecae84b6387b1ebfeebbaaed361b39d2186ddb44ddba2d801056a5440076584e884183b2dbe9872e08037c2a8c005596230050ab8ed8788303a195a00317ea393a185169b0a8046751c8dc06a6db50fbadbcd47df34edab5ab5a356ab8f208dd151c7fdacfb9a6d69697b1fb5940f5f0575e18eba321261d442ad568efbcaad6c7c30518d3e808cb8d18d0230ba511ddd1bbdd5a6aae3575575ccc162d9ac0706e83d08facf09e8b4faac67b4c3d5caa13ce7f93ecf034f2088f2543f1e9007a6521b6a66c6fbfef43429a0ef04943a791e8da79d52decac7e951284f3593f27e3c8fc6c686e6a77e6f643a3d48636968686868aa7f33a79fd4f79980527f7a4ff5935a9dc0d3e9bdd3077a1e2af5f38d566a1c5e78fac21450ea7b552af5d3d1fccc23a0e6c3f7940f19687ee687866ac299d40f575337cfa4e374dab1034455140a854285a023857a5398fad1c0d492d383a91d6138737a7086878d0d8f991518d6300cc3d0ed3773fa1fd39f4e3b52a84fa552a9936965a5c6815a3101c7d3ca5de7c7d6a068524b503c524339523fde88fa1f1f4fdf23d5c4c7935158e3187ba4a4d0fccc833435d07c3f75443da8a3ead0a143870eb7df0c6a47eae7f4a8f75475e4914a7d4dea8432a1de3bad988023ea533f750477a03cd5cfe94fde2aa5e3f374a456a895bb0eb832addc75be9551f7d6c7f63f1ab7adfe647338a1756fdad19a745aa7753c39befbaf43753ff38563c8ad8c7e657433723be38e96433546c861e1c2b305e1c612318dfe5a911d3dfe8dc251cc68390e7060b832ec0d0f15b7821e2a0e0d8e034e841b016706b7024e055c0abc07c59d8053833381f7a4e13d68780ff79623c39dc19580230137024e045c083833c8706c18713018ed736bd8233cde3e58a3329d40546a8686fb3832dcaad6e40861070fd30944a566686a54a61388ead1a3c77f9e0a895b49d16315f22841041e5b13a10db2c6f87d3200b90739d5879f366eefbe69bf79dc36c39ddef40848f9183a99863eef97e89f9f6edcbaeefbaae7d9aed3386edb364ed33a3b1a7d461f8a537151847534fa4c4639f5e6c6def86bdf8d566a1c9daa1b3b26b4325fc46ce37682cfeb6a1bdc56b7d7bc8c5b2d53c7d15575acf594c609c5bd11ea9ba96f3731333ef8b8256e8bb781e9d668a30d4eebb25931b60c4b66ac61190f6b991189f501e4cffd8fbbbbbba66926ee41ce56ffacfd3ea0ed755826dbcfb7712b95eb58a971fc705846cffd339d4e27d0643a7da91f1e1e0dc774e2401b1b70c8eb3894c9c4712720fb1cc86ddbc6d98d33a57eac3b784ad9b72a295e4585212a25c5fb0e951af2569f86a3e1a4524d7ce4fc9bd980b8df524c4026a0fe01c70d1cb995f6a99f3afe8029ff52dc6a8fdb2afc01f41f4660e5f13b4c303ad8450c04636fac8706150dc75a222fb00b27729486a6f2c63ac568df2e51d18a8060341c0b9671e444400e8060d2d8a1eac0e0a1eab6701cfb20079c485701bf29c312e9aeb037160ceff9a2b340e745d785f784e9b8f01e30dd16de03462be25a745974587415e8283001ef09df7e7785f7d43c08260ca36e8cd17e27c61ed9f1964ccd32daf7bae5eb810f7e30da379d5070c4a1e950c9425021e5502595a95159711dfba12ad51bc5e3411e7f32f1f8cfeb78ac942a026a0f4a1ab78a75231aa3d18905535c319ed6b00f088d6a97d116c9b1b1214334cd6a9a75323ca0192158d00d6e7b7053b9fd2d0cbbe77eebb65aed6ff6df6afa071cb5ff01479b83c5a259db0468ddc8464a35996cf56fe6731dd7713bdab7355fc26d34aab1a1ebb88eebb040db4a657368353f29a0baaaaee33a5bea27b49667fca1e97878349ccee8fb99b116e5a39762b2c3da9d1d53ca4ad84558b555fd4ef664b7d55ba9718cddaafe2a8ef105a05686ca7b3cf04fe1674a81cfc3e7a3a58a34dd21f7db66f43e7dd4d7d0db7c4c3ade732aeb3ade579545fa3cb5e5183fd5ab00e0287811c78161b4de73deffe8af1a3d4d158e9f6aeb3c93cfe7037a2850e5f9801f0a54753e9c0f784281aacd070451a04af301511eea34a3634ca95cc3a9a119add5617148186b2ad47cac0f0856b7e0363333a654a00f4ae53e27958d8663356d04adb6cd6c1fdaa0c68e03bdad0b61fcac0704d047132cb55a8b426ddcca7e95c9c6fd70d56219391ff58f3a1f3278dffd90e9bff756a6d5f7ad3e2df5c369dba869da1686dfb7a57e341f43de772f45c3e1b4df34ed37cd81b41fed392df563474dd3ba94a6d2543f3e722b1fdb1f6940f6b7d7543ff699f8f8f12fa531f9fc34725fc76dc3b2d91312d65a6badbd41b52bc623bb5aa1ec4dfda25d81baa28c25c2637420d8229d18d780187dc6dd48a3a2cce723a48162c26fecdb104175b137df89d18a7c3956465f082b31dfd789d9198d3a3144822c134e44482bd26dd170ec7f5f18dad8fc4e972f424e041501bfb12ad3138e637f87caa484e3d84745c089988cf09b2f9688898bbd79c2b400ef3939d184f730e13d4b9814e03d5d1725505db4225f122624bc27c7db371de13d21bc7d9311de937afba622bc67e6ed9b88f01e9ab76fe2e23d21aa4b7d61cb476164cb8e8f8e37323d60b46ff2628fe878fb200b462e83d1fea71529530395ab33457c58200f34d94af4a13c5b65a85fad9aad5b6d524bb02d58122c683dcb55adda6a6b4f2dc182d6dbaac669b516a95abda9a68aaab5ba504db027cdabdf566dad3db5763cac8ebad9ca6db5050b56cd9a5035cddacd6eb5056beb08f6544df5db6cadb5a796604f9e56b76fabb516f96a93c267445381ab5a35d5cda69a4c3d60017c985001b0556b3bebe11aeed8019bd46aabadb5eab8e731af014b25438031fe0480a20d3308a062c30d1a6e0b243085056bf8904a0d1782220458e882c0a540e185135254398a0c50189109ba43903881c2841c34b924ecb400850d9016ee4c048ab020f5a388ea5489b0a00681482b8e051079385c6cfdc0049dd6179bb3c60372ceefa4a082971c1b9cd07ad409df23877b09c1066f7144f86f3bb86beeee007077a29a32ee079055d1a9886397d4d8bd8a07b93b0e1ed650b9fb96ac148de643fb62690b626973d2a5f0d5d34196f0014b1c87f204a046960d8a205b0f541411e812b0b43931f1389160b3c39289005b0d9a09e0ee501f938fa73b692ed89c380e2c7d60967454c9622aa2398103d40a96b8389638d408672ca1f6ea8b2593cd8cf55ce08070476cd9018aa0840e1b104b342a1a95a65303e4b3a98943074e858fc733a2d16846be2896b427418074a78e8a250dec46d872c0205add505bce8909a78247806e84eed419a174a074986c4c3c3c026841d0a11b41bb4207ae8ca500186db06705a084ad0745d3d56c55d3d1926c41a81e9df568f07c7850b81d33b503356e43699a66354ffb34d389844df3a6783968824e355ee755cddb866c40b6fa89a0f9c8623a818bc0d20c15596abacdc7a744876d053aac58ef71c0110313a4110233345086ac4888082e4b7c6078a148466d3006080a21cde715a0862850e2f800094470c2103b5d9440b2c40ad0000119606c6185144044012421db43e85407372083821290408c2cb0e460802a35508902e587c90926f4e0e1451758ac90400e38b04a2021a327ccac400556604b71c0c1831d5429400f1e35689031c605c0d8428b090c21840f2c0310808628508040f081313c60812e4d4ea00608c810038c2f1e10c50f08d8e10664d02801185f7841012d4bb8045a529322f3023656a00131ba0883c5144404814b9601aa148006a0252ef4e0d4a440f0010d38c104115a70698001003159e282bf800d107c6003637411068b094c5184105a6c1800d00b2ef4141912042747cde671bc800d156c40036388d14598094c5104114204a1a5052c1baac0004404c20f9cc44033930212b800f103151a761810c40f33a52a4c716870d820703fb03ef822b041c04e61a5a8426c106da78aa08ea682f63c4eb024541fde089a08d566eb51799842c891430b371ad44c981a01250248c2a9c6e47d9d67bb8ee3b4ea9d96530038b0e4993cd336f311f14c5a09a8a12c5056df4d77fa7836144ddd501d6b4bd2525acd96c60e4b2c7533d6336d39a9127824b0749a01556e393359ec101fdc94ad764630b0f4821325353bd8edb439c1e1c1120c7448c18c2c95eba939014916bb8da0e9c4aaea08a7420996baee84202d3b687c10a0fd64e9614904130d281d281d3730d911fbf469074b46b6e9a75544e899b41477b4f90044966f9be94aa8342b648901034c299ca1e52ba3c48c053924355e0b5b0cb80057e8100277736272124057654bc16b41072ea0f8d1010243f00877b4a448270908630994b998d8212584a6ce4082e6822702912c27af85eef4cd6845807eb4124e4c76b074f28052425f131f4b989c4c4d5042a5112e967a6c39444e5d4f08a9ee042e5919e0014ba7af8909443f2c715ac8d54e86eec4b9d0a570c407949950f89a74274f849412d38f0d8aa9870e120430028f143e15629022802ca74ff45648ad500428c8436dde085c8f46c484da5078249ec93b6d40b818361e2495f3a1a9381e3ba68fd45a58e282cd77e2612a9225091470c877b3fdd87e7410584a616653c2a9c09960fab1914013442b4187251148d55c9acea671075819c0882f326a8504cc1073851510882201587050d2472e4cb60c50a5062a334c110a723280263d3c2bdc08200000f86d0c31e2b0811b3180e14800562388e079f14007a478800c4b60e82961070aecc2f0224c155fa488a20150787162ca0d0a4044269618128a03086f10d560833160b0724d114398ae232e9cbc2f4470296232411a537ce96981480f1de0e9f348f0b1851655701905ca0080982ce91912042747cd4c6a5b80103ef490630d162c60850420808586198a10b1d1b185c08c1ccc70e4052226af9b000f6128c080248cf8e1004f2c600143448172c4051450f5079a0f6c998dcc8fb16d6c31b02ce0d6a86a5834ec19a612a0486043604160bdb013d0acb0479b51fd514ff84ae0484889607bd81d55474d085c0e5b53c36dc682dcc99abecf7a1e67b7aad5dab9fbc989f80d1e82484ea2bb51338d01c165264d5496e35e4d2731e9d6272edafccec3d375f7cfc31301dc5d001e9e56084f37de7a577e9cbff9c7a5f9db7c1766e94def8bfc6bfe9e1169119a7850b355ee3ee3a14906defa22d4c4afa4c7b979c1c8a3661126b24114c502bc8abc6be1c63926eebebde64bcb37cd7a55c1c34f86cf086a6e8dcb7f91fbc27e67f435cee5e3dc60329565fd99f07d5ea278dfd75e1b258a434f0b2f8a7fed22149fefca8f49f3d49f66577ab77e5c84ded424ba89858d0a77c7b274637d5e579d410b41fec8a7a98c4ce17bdc4d778f79d8690026436d38e59c6e6e70781c4e39a703fc1fe0ffffdd6d0aee16c7dddea0d06df99e2a4efc7bc20ea7cbe1eea1879d75ff9ed3f76c173eff4fadfd2a32d3ffedc2674bdf175e4041c879e1fedadc32a27f6de2d7fe1e5da2b24cf4aefc5b96dfdd0ae0d4f3fb7e898f4813bd316ec90bd0e3ee2378c855f193e86e198c1bfd7b4a4cf4b3f2e2f4bc5bf624cd69ba2429a769f6e1487017459d8a658601d930174e33e979b8015133a60c7f23463ec8cdbbbbc9ddb5bb53f1705339917906d1d178cf769a896ee8aeb46dee3b55cab87b95269650d225d448e0ee2b77b71e6a65b8af88dc6d00dced0f770b00770772df6a36ad66f3d8957d777b82bb35c1dd96e06e4970b73edced0835e6a07bd5e2ee357868ddc0652671b923b220eee8f0b0a08980b882ececb010e412110911521609e222a2934d51e37d53529ca55b9b453805928bd24b5a2f7c9b674c7f6bdf160f0fed1077cfe1a1e5e27e5ea40cc3694d165cdcbd8787d600eeaec3433b00777f410997a899628d9aafcd9b47f1f9461e137d79caf24b3f8ebb0b71afd9dd51af19c386bb15c1fddd6de9ee300feb111be6aa55b87bb5369ee634c58fde2f319aca364e378a61f88cc1ccdfe64df717a1e6de179666d75faf0c70f7eca137e1ee290febbbfb0e0f2be8ee253ecdeb7a8df78ce8df951fcde6be3f4b330cc3742a3ae76e55ee6ec543b771779d8a244662255d329fe705324b6f4a649e40c8540321324f22f30422438b749464a879eaa049193d42653a4388b088f028e9ec882c14118300d1a8795fe499f30612936d2d4b81a4b83c4d1911100ccb2f20eeb687bbe5e16e77b8fbe6ee2877abc3830308d0c52c2d8dae7d597800c11a29b407b5d512abd51840b7a271e7a745872cd5beddaab66d5a16604d14b5d6a3fadeb66ddedbcd37edbfefab66a4d5fa9ba6d92b46f5bbdfae20d9adfdf79ff65df1bed54e35a9dea63aea4caba36efb1ecb6864bf3bea5656ecfb5f01d630c01a7def0eb4a51b695359b1198fbaf7b1aaacca8acdd8adb6369abea69ad4f1dbbe7e2b2b57466f75f4409cb6b2e2fe9e8a1262c0267cff8fab7922dcfe399bd1532af701512afb3e3ad8ea63bf3ea82d6928944559ef563e9878df1d792b2966f6bb951433ed61187550b9cfa7d2b2fd92f6f5ad35bd4d05997e5369c101fc6a4261595a02553cc0e0a3fd49a5654bf5d19e07187cb6d750281db4af9f526949fda7d2b2a47d5d69d141fbd3f3f03ee06a49fbd34acb96f741a996b4b78f52e99092417bed83ec3beaa4da52b7541fd3832a2d3cc0e073fa2dd507fc0d855ae1006af984dc07b5c2a18a21f0ebe3707aebc399baaf3e718cddea488a997d2966db8741f66bca870cdbdb1fd2befe970adade5341da6bb6db01fcb42257aee4605ffb1cea6f7fa58a21ef4f7f45cb96f7e186bae73e07d37fab2b3cbc0fb7ba928369c57db7caa1fb6fb5e57db4f7563974f5b995f6fe397415f5a92ad5964dcb966dc5c3a715b1ef3c546105061e362d5baab002c378f43c6cab2aacc050534b5c0c0d60cd03c858830b0db49060f4af618cfedc11a3bf87c5c891418328460e74ef41f2c12df1c1ad54ee1f431dab7ba927f509b732c2e2a3d37c6fa3f7c47b57e56c5dea497dd2b98fedb5af39a37fce68f445a96fdf7e57b920c0930a54d1d0a07e6685c3cca3c2771f1cc04ffd0ca70f5738d0fce9532b1caa18a2f9d3e3e0e33ea0ca475dcdacae545157338f5af9a89f7a2c3e57504f033ecd0f814ff3f5694e9f5a5da1f9d35fa9797087eb7cefa3fe6b38da63f141a97cd4553a84faf0b3497db8ba7225c4e243b3ba52859114343f431d93c50668689e6695030e483efc9a9586fa6f15ae42cbc2f7334ff3463b0b9859056938355edc0c15161f940a8b4f0c9aaa2ea13eb5ba7225a6e168dfd270b447ad94341ced5329ee63458afbccbc14f749d525544ab363f552b978e9e2c5ce3c4a4563fa4d5557485654554c2a1da2f999d5952b333fb3aa342b29eea3a582a1d168de7d66dea86a342ab0a252d5c75375a5c3753ecfc7f6f57d4edbb8fdb66a5533be29726c6ee4e0b81cdce7e872e4d8dac8f19b1b3972e4d8dc40e5c881ca81fa5027ad269c497d39500fda1a1b5a1a3b638d6e50df36661bb38da9a9de981e3d5ed3b4f74eebf1a0a6696e60b9e246e79ebf8f3d7cdbdc7befa1b9e1f5f8ad0d37bcf71e8f44eba132da80d0c3ebd1a3478f37dcbd95d1466623d3c3f33c1e1e1edff578adc78ed0f3bc9d517bef5d2b22c2eb78d78a8cf0393efc19548f3f7d092ad7704850f5781faa1e3f82aac78b60a3720da7c7ca88c7eae419777c5e686d46cfc67a6f4dab6dcc36661bb38de9b0f0b0a6283eceb423954a713b4ea914e77d9ff236321b996dcca7bc1d3b76fce6c68e0d08a351caf33c2ff534bfb9515df0b63746a314cd8e1d34de8effd5ca682333a64e9e93e7fbb1763b56461acb7f3a56465f08ab1c466f745369562914e86d63b631ab4f8cfd2c9819ffbe9999cfeb4ca73f7d2aa310cb956f66e6b31d3802bfd4f79d1ef53d6ae69b419d3c8de651e1a366be0f77c5e24b7dda0cf87d2af5bd4559950d53819c4cd5f3402bc6ebc00eecc00e046d073cd0f340d003410f043dd076c0f36c1820085a3156cc12f07d6f0e00bbd740cff352a919edc3d487a0722d95fa1d2ad770663c1bbe178635af43e516a726a49949a156276a34751f428ed36a6fa3c986a92e70afd9303ab4d5f7458df72068c180b6033520c8d5d830402bc686f1b05cc901ac31c201b41d188dbcdf7604dfc1b05e013e8d0da36666e6c11a1af0695623989ea3799a1a3004af6201862b23101582bfd930368c0d63c3ac5033d6f301e83f8cdc8c8ec6e45b8d1115f5d5d5873a2234daf91e101e999e1b8d764654455b67186b5f569acd146f14482b5dd8c647a4b9952e6c8a9259a238161b37164af159a2b70916d2b23396ca844a54e6c25266329f22d42ccfdc046fa52552504c6aac24bdf84c52849a3a9f494abc639824c7182c6d82e25894240c25064b9ba4d8854d9d635849d24dcbd7366938224bb746818c9078062143908e188191547a7a564082915458e5127c12c9b2123336d210453463f7537c94e62496cb95c53fd277bf8ecb951f4a13d7d8145b2c34b71e357f63ed2d089f50a12af10da6e96c5820eebeb9454163738f4af7494fcfd0a31a9f8f89b0fed906baa9ecb2aa9727a6d6cea75092d6ef7cea9ce21bb23691ccf2efa7b8dcf79491e7253fefffe15e35095cdc7d9317c5657a936232568962cdcaa54cb336d63a31168ba51383914a3118a9c462b9e600774fbda6b5e46e849aaf6737e9bc8fd3fb1a76d31b2bb2c20a414c3dd33d3d7a2b617163fd79632dfb9c568a8b2e7a9fb47e46746628ee3ec4bdb240a567f8489bb00f3243b5801575e833ce20200847f040087482bbeab5a951f37736d637955d1e7147672b611d2d3b653019995da8c9bae98db18a50b3e86ebdf3a95978df32262bcbbb51bc519385912e3ef56595682662cdc87d4bb3442fc93a896e8ad15386849aac8d750f4beb198e41346357e8451c9bed9fe1a357e1936e6a9e2cbcaf489a27912cb6c4c99844e84bbc2f8af725d14c4a79b10835d3adbfc5e3dab2d6df1263749b4af8af89f425d639cdfbb5cda4adb1de79868f1eef9f2f31d62f7d5fac8de2f4c6b62cf6d2b7c9ce39656d8d8bccf2a56f1328af2346483c835e92e2f2e22647643e897a7a48d3479b1aa3f80793292e512c94535c039aa1a01836bb41b828bdaf24b36d9e77a7f989d2d01189491c13a2614788901592ae14255ca225d0ede961c5b4d6382dcbd1dca7ecc9ae925641abb8aa1055a9526555c5dd91b87faa15dc3fb103dd9de5a192146b1ddfb8f8b684bb1bc0c324b12041c41d31880e9ab5110b9729d649a8b863d7d53092ca79659bbc45a83963b1942e4c63ec8ad2d3d3d3032395302c935b965ffabe5efa368191544a93a533c93acf4bfab47cc6b18c8b5ac7f2163d1cc5b88ba36b0cf53661e6286ef34b9c6634bf92f47d210183d38291544a140b6919deae7c93e2a4d71833417203921f2e26613427e5d737e97e795f230c5ac0d0f27d61d871fd78e40d7777f496189685dc9dc7c323508447a8b8cb4e12074d33d1cd6f5367111d8ff0b8b851acc717beb8fb0bfa85138c94e12ea23926fb126ff27e895ea2bc3fe773d21b000f8d24c0c81017d670b185f33925500ba7b27dd12253fffd22d444baaf4765ae97952eb4cef32669fdfdbc51f351990b0b7077281eba10e42ec2fe7e9a9f34f785e52dbbe8fd57912ca7affd2a324bfc1a72c1c61dbdefcaefee513cec11e3a2d6b2a7a127881e9ed736936e0b4070bf52dcbd050f5bf8d28294164e992ef1c645a50cbdaffd69d16b9307043c4a2e9ee72533aacdc7698b858fee6e15a1e6d1ddb3f296e825c1439e24ee3ec5c32263bab8b865f9cb347f4ef9d7dce6e7a41809a3b317b92fec62a29f5dd88bb7089522d60a222c17f29008cadd873c64018c8b252e314689721a7b8d62a4146ff4a22946ca457f5e197a9fbc58e2582ca7e76926cd4e2253eb1c7bfcda5a96535c84de1227ef2f2f4e8b501335ffdebc365f43226c766a593691701afb19d193f78cfd2f61e100ee3e83872c04c0ddc5d979ca5c5a97fabebec4481986d312c9c4244e7f865fda444d9879cf24e60dd2183341a748b95b4886d3bc4c9e0c09251942f1d11dc25a4a894ff33251126556ceca4be2981246a76c140b8dee7e82872bbc5c341fcda6bb17f170851b174b6cb65a8f828742cab8e86ae2a1902f6289374e638f894e22a46fb59c7828246886de4fb34b9b8f0ab1293189531d0f83ace1eee26b147c7818040ca983663448cbddb38e0c1e06f15c3ef170e78bbb8b6976e1f49e242e75709ac4dd8d78b8d3728c9ab0146f5c3e26ca7177251eee84b2d72f123535101eb83b0d1e02f1627edeaefcb39bf419fdfbda4c318a8b3e47dfa421204d4434ef9736937e865f1be73cefcda34939c568d20b1e022951597615a1267eed51f47244e6f3cfd3dcbbc4982465fa88cc272a7bfc1a125f627e7d44e673ff4b4422ce760c86378af5003cd471c35ddc18c3d2bcafb9cdd2bc318db14b6625c5b1fcf83514ea7cd1a1e29e62974b4684c91bd3efca7f44def3efebd87da5384844cdc72942cd2dcb692e3f6f118be6cd63997eedfc1896f5eb9bf438c5af219d9d30670d11e749122aefcaa9a971697e89b5c6694c096ff3b1965d1213bd5824e29b271fc54866d1e3d790bb4bf13067c9e532cb7f6d33c9040f73a8b88b3ac766865ed8e73ca4821b30198abf95e6345dd27afc1a32a2947d8e1c39729e37494fcf9124afef0f19310223a994b89ca5d7244d174631116b6f8d4b1849e5c8119c1b2330920a0c6f9385b1eb8852f649c10cd186968d87295c21dad0daf13005a5201ea6c093c227dad0527988938687385f441b5a384a403cc441e2a20dad123cc4b1b92123dad04ac1c31b3036b46e9670d186568962ddd313d42ac0632cc42af13661e659b260a49266ed12c5dadd937888021451dfd793a646cd742be17d63da2c3fc5b1dfe8bdaf51f36e342749319a94d38dca32ec1ef91c1c1e2141649f736384c43394b84465d947935ae93e4171099462984ca339499966124b7122e5c80c292bc5e5111c1ed9e7f0c86e8cc4a2cc589868766118c9dce46569136b34c7344eb72c6398b9f79d95174b49b1e932778652849a258a83b46cdf2d344bb14c0631cdafbdefd6288e6999fef312e5f3e7f1ce309cfe7d347f898fc87c3e4eafc627915984ca98bc3843efbbcccfc14577ebd728a445262c95913798db4cb399c6febebe5f62fd22cd57d2e79478c76078ef5ba258fffd7d53fc2d212bc85a8fdecf29f1bea479c6644a5eccfbf19179263d4e7ad1951f865ffb4b0c4bb30b351f27bd463189d3df3ac3ee9f274e7a7d3f47e322f4bec854963fefd78fd3bb71517a372ca72eb3c48f91eeeb3cc7175fbf966533bd489f94d1a3c749bfef6bbf76529a1acde4e3f4beceafa4d7287eedcf6961344369bd0be8c5d7a62bff9324543eefdfa7ecbab0921771cef36ef35de607f9ad65463f3bcf2bd3b29b2f710cc598e8f57dbd365ffbdf953fc54430198a65e79de1c5d4bcb1c769e9d69718e973f2cdbbf2bff47d3d111684bc107c744f226dfe0cc7f0a28edd74ffc65a5f6d2a618dcd22d4cc4568166729965939cd8b747f6bbceff9f835f49b0c1c6f7cc660994481d06c2e392f999de812ef34c762328d4e913265e3944473929da1603d05052a515966b2339423323b418b4c9c62a42cb43394511f91d9894f5276b2d31cc3271edab22847247e252931119acd1d33535213c984321427e5f541b3a9533c43797d50b3c84ca394e679915020bdb1d6e30cbd4f721e4af38b442f969264b663b025f82432778a9150a09da12879824fa28b4e394d2638959de66552a258684a89adbc0bf80653c3643053e9c2f2fef3caace0c7449ff797f80653e3f4b5f9b506ee6e83873ec8388c546215993e390f9d1845ef2b4986729e322658866532bc8a4c9c9462a4ccc25b4662259cee04d1c127d63a69def73c33c9c2247a655a9bacf3eebc595bcb8ccacbda586bf2b2cef36224f3bcac18c6472c1626d3ec7aed8b4b56523ecfcbdae6696e99eee9616d146ba251892be734e8c4247a491646ca692c7683b0ca33bf344e5f9bc5a271f720b83be9610934b81799dadca70c2664051d2cc3322b3ab8e86a8d6137955d2bdc6b1524b87b91bb5fafb94107dcd16c6ef26af4a643288e45c95086883b228f0e8c5442e1e6059be3eed5aa508fb87be9a14d15f7129726524e635a062b71994914ffecdc244ed34cfecee8df7dcbdf284ef10b357f682776b786991b17a5b2989ee123d6c61acda6d65807d19844ef79a5a040e3cc65ee8c6e549649164e33c9da1acbace0f4bcb3346f6dbeb68cc84c379a49349b453865c5725a6eb3c429c9c2321423e1940533ef499e39c7d02253eb8bc97ba2d9dce64e6f2cc52e8dde74276114a758df1799ca621a9f57b3b0bef8646dac5119464ab1c6294e6545a60bcd6411714727c547392582e99bc482101d4c5e970e86991b95a53a31cd23442706bb5b6398b9470f6d4277c769468b80ca4d62239c6e14c33089ca328a5e9cca62a92cc6c2fbe294d4d8c4acb2bc33a59cc674363ecf1b2b59b33316bbb8bc69514cc6c23798697e6dd9dd2846c22c25d385d3d8799a47b8e8a679eb2312bf48d696e5d7369358b8cc246b63ad71d18db16217bf581beba3f4c270ba23b620440786b79e691d0cbba9ebc7c31d68b88b25d6b2c744bf338a5ef2617803c1f246ef2b88c5fa1e5c66f2f149745fe4c5292afb12a778a3f87bce8ba678a3a693596ab907f37cf3ed85ea9e975a7235d5739acaf1a833f513b21571ed88cd04cf7e1fb769b57a0f2bbaf52ac3064375cf05ce69baeab5568e1b6241ebb556cd36a9d5abb656adbbc1565b3dcb434aad5df5dcd694a8d9aebb397dddacddb8d4ad567baa3ab0d5e45cddac866b35b2b5da6f8af561abed365b69606bed6c95a1f6a855b35f0638cd9ba93c6aadd5b660777c5a75a2dadad95aadc6aa763b998658543df255ee87f642f5acdd8268276b2b0e0d917a802d08c8440bb2beb97540ddb49b8db355730e89da82ead6c330f4ea75abb68ea99f4da156cb59abd5ba420552bf8ab2d6da2e4945c1dacdd61d4d0445f80450533946b04a54ce8a50b7aa55b741f64f75736b76fead1a84e6aa0c54473286d56a5737afa6aad6c5daaf47ab3c5ab5767b8b32dd54ae566f670b72c24eb5a7eeb35ead3dd5da13685d35d94d43aa2b2bab55d3a926d0d6cfab168935c19a604bd05cf34a533b6b6b6a0bb5cd8a60adad5ddd5cd5f4a3829c0d62947131cd2fe431911857b867540c2531907c12767dce3b0c322ece6e528a4b5496f3194a184bb8e7d7ec44a31cd9ac30dc3d03698836b432f025033728dd27a2de262a13714aa09c9c1b5756e187b45e3ccf4b5e9d949de43c4483d27d3225434181525ca6515c51b62c0a36d32c948499e43c04254329f1d0130b1cb9478c6cd4cc310c3387d2accf3b2add274f6039759567c63875b192309a371860dc4530b6c0c0e049f1be271836e21769883825c6a90bcc175b88be7889fb8b10352dd08605bc8838a936611658122dc093f7cd976f7811012fa8b8fb46314c56945e266226b1f602852ed2707751eb7cfe96e59c4fca2726fa2d23eac24b117a9e3257ab8b201771c29421c2654eab15c68c9cd3305dc2e040a699498993ee6ba8c4252e5193d4580a5089a5f89478a3e69312bff43d85d27d6358ca948d85b6ce4eb696292971522ed1255c7c29325f9ff3e642c93c02c2451377b1c5858d0f9835dcc516982ea2894d975966181830e74db72083f4e31665b88b5b2cb9e7fd49f9dc82c891f2cc4d868cb8a2ccd0faf2cc2f8c53971112cf70f789cbd42c7b7a86b428c3451b5a5a74d1e2a5058f1661166d64914516a02c5077ad749f88e87965a5896496a8899a5be377e594bf3394175518cddb4c6519e9ba3e2bf91e8c9ae7c3f2ded9e7c59ce21b4cf353593691ee0b136d5c34bb302dcb33a01785b292fffb31d9a338967b8eb499a6b23cd39fcb1423e1a4dca455629cca48ac51b3851fbd644e4ef10de6a790a6f0b23c7b17d0aba2485952c343199b0cbd942543e312293fbfc4e78784a63c7911c5b18c9ab0c7af210cbb505e3cc2a9ebcb1c22a1f367e8f8a2acd5fafb1a6b99cefb67e92d42f379bfd57a8d73b4cb957179d30df369b5649900df6ab51e87ff23775f259f93067dce11d789858cc0cc9750ec3ec145f785ffff03fc3f3ecd182c93196db55a4b1e009ff719835d25fc3ee5dfadb7a8b789ca728a6bb8fbc44aca4d5eac0448e31b304e9994676e72b11221a25ba238a6b464090aa4d16c6229b36d96a6cc8a5934c30e58ca58021d91d9894e8fc8ec04c537e4d4a58beee9c23875f9acaa7877bf9fe611a870e3092aa870255250111389ccd40154ece45448890878e118c98cc092bb58ea08d4704429fbe84be2192040060265787187c0121508e8bcb69974cff3b23092894b96be2c519fe725f7253acf9bc49b3081ca2592e9b0dc628a26dacc50a6b811f39734dc4598f91a856d7ed69f8391ccf3378ee1cb175702f4f733942f4bf848ca972157ce694fcf97976207eee20c1fa9f0ad1208c7d09ae1a3bfb7855fe9c527394b2f6a1269f3efbf9292f4ef183e2231d24974b55992668902bda851c05ad3a0bfd4d87ca5f93536491396d14ce22f42cdd999e272bfa833143dc3316428331c43590295785f93cc5a8f198a550515a1e649640a95a7f94ac29295784a14404471a40165dc459c8ccd33bd3aae13ebf33493b4d9800634d18020b101360c4081bb8b0c8800036a60c027120d3d86c13209c515eeee2414555e647ab18662c68b181cf1cc681411effbd8cb16773127f182c4319197f08932dcc527987011a739c9119c9d1d2245587045d13bbd419fb3510c7b22e809175b287e25b51650c602b62ce0051737895d2eac4d27ca38f1e5719a87ca333bf172776dbe133c621334706fa2012e3611e44dccce248cbe3699388389ed2eca5073a3792b1d51c228133c4c84e21265f478b8c4520ba7996cb55a4b4c29cfbcc42ba00d773129a30af8a280ac15d0854c9732bae0808feedeaedc0596bba0940881124b1945cdc7422fcececf394facd19bf43849092a527694f85c2c93304344ef79511396d124bc24114b82c745f3937024d270175324ae70246248f0b83b7ac9f3ca36127e84981417a1f9fca123ba1c1173df473471b13c42047717a59467fef2cc4618b154e2d969841417316c9b4918e746b392306a84bb58c417772f22e65e04127711951515a126798958639be93d65efca9924e20b114b317848c40d1732af910b98248c728979116a7209811ce9bbd3fc18cde3106cb8fb10460c81e4c27e1ebff6102f9628feac4d21da108ff415e28bef5b0a114baff9d242ecb88ba5796338a87913441b41741183888d41dc9c2946ca39697fde23106b00f14524ef1802114bef110f81b871d484c1ce5be6f407119c9734719a93e852099acda224a57983607803a1b222ec53e225f84c82cbfba43c730e2a710954e2a012a7254ec2685002dc45ccc4431fae7017cf9c834a1f5ee6198bddeb4388232bf18bd4a8ac3433d29634b4beb1596ac694f0162eee5b5a2ecef6161e34971ff6404644cd22dc0317f78d3769a63bdffc6b580f41e8d8c3096568d96ba3381bcf6e7e67f4653c58c103157c5ebd95306ac23279c3c343410002ba9428def7cd1cfb9d914c04f0783649bc11f015a16646432d34d0d2c545d22ccae72d373e5f4b4c7cfc1ad2d244cbcee8d00e6bb8bba7bf03185209bf363fdc41c977b871378bb4197b7c5ebdf1ec77b838d5a104ee1965256114355d9aa57461a509c3dbdc19c98ce9f065b29891c58b52162a3b59bea5365cb4a1b52466a9cb6b896729742c6d602903cb9733e71896252c54441b5a58765ce93e11759252e93e11f58b650e9add13a7254e333954a63709a78fcfc767ce411bd537f63a69e3a2f2e6f328cd49b9fc1779f1a3f78c3d4efaa33427e1941895dda45fe217cd22d4ccc1e7d55b13c9307acf1393da84bd2bbf9e91b7089f381a35ef2bc9851de9bb6f5eef5cdea33307a5664c694986529ae79de13ccd2db4510c1b755692874a74cace5030cc1c2a42734ac3964529cf2c54a618298ac6e715ca50d07bc68ed24cc38ec9d2344969e6199496cccef42ec1fb3ac9796867243328c56852949da1a0d92c7a221401e7084e7312568ee534c63a3a654431988c88755e1293e8452a2f2e65276b764f2cc5dd59f050290840a094590902eea55902c1e7fd9385cfab959ce0f3ead7e699f5e3d77efc1a52d2dc45d7c5694ef247a7cce75d7988b565f93cb1669d1797667966cdd238cd6489625692152f424d9d74f36536531cf44e346abe8658a8595e7c66170a84cf2b549a3756a2580ade17c94c6347b62ccf6e8ca59b9c3907ddad51208c67379604cd2626cd3426652c315a640aed9ca5245d293d2c16942840425296ccc05af2334a893224c462f5a8421910742aa63876e2178b2544c70577df6c8f8b25b6f2e2519a933eef37fabcffbc661a8287322ffe3d44f9247a28518406e0b21a3289bb6dc1ddf2b8db22ee9688bb65c1dd0e71b72b7cee3895c5d2ccc2f995b4dfc0a96ccb5c7783b1b7b858a2f7ca8a4c22d8d566f9dae68c2895c57edc2ff7bde362cea619a594e5589649702a0b2ab1eee239ef1c97f9399a8ab9c443fdb9bba871113e4d24338dbddee625353ecf9b245d63a674df7562fd65799f8b46e18e2992347f8987521b2b377077d7e34bdf26e779936c257c24c568d28de99e9ea12123ae2831d951ce4eacec58f9d68881f1181733f68a21896532b90cd186965724302c0bbd66159946387d1776fec8bb50e29796c57e6bd9007888b45efa36697d4eabf5e81571880421cdd86cdf7cebefbf2e1aa4749f8867116aeabbef0d8a4f11e7467c155ec80aad3fbafb5b69dee46592a365afa11775701afbdb6abd2b6f8dcaced80b59a12ccbfb298e617d7dc4193e6ae1dcb832bec1d4ad1b4c7ddeb2bc8f6a33cdae19e9ca337c74f3e585c14efcfa1c9cded7b1fb4429a731d789853294129d824fa28b4ed9198afdd1a388572277473d34bd1022eee8e812b3582c20b3d85966188ecd36deb7089fb89cdd139738361b42b30b2b9929e534e8bc387dbdf47d8d5866c54465d9859a654fcf509ad314b3c8b45a2f336237697c79f19792bb3b9a1f8df2a2e23beeae6f123abe4efefa268d252eb1147c9e660c49184a89f72db5c62429132ada22165129f1de268c48e62a834d17132e78e86ab9bb98e66fe1342739cf4b9a4b5c4670193109a3248e69d8c569b88b250c1e622e2e92afefabc4a5499a3221cc5394ca6039cd29be41070dcb32eef85582c08596685c744424d34766f8e8c80cc700c3dbc465266738067717c1c332e66593f223d3b8825c126d6891545cb4a145f2b868438b0c713c244a83488a201e168484c47d74619f376a125d7db19417491cd33fdb298ee534f62b263c2c68bdc2e9f3b02024f425c6a546013537fe791a889488f82823a1e6a397bcfb962f7d9b88385ba7a62c8dfdd6b83cf3cdc7303e82fd9317f525fa1e2d807fb1856159a8f5620ba7afbd33fa2ef3716e1eebf33279519bdf6a65fda52c45712c765fbff575e56f61d8455b2d9ce62df4e2d6f9d4b2d72e2a32d39d95309a4997d942f327bdcb6ce1e41c193292662637adc7b1d97e69ecca2f7263972b6b13bd2f12c3c89b6e6ca6fb75d14d31123ecd93d4d9af22f37c4d9a5b9be7391ad1789318e92f8a354e6338bdf9bf8f629cb431d117a1662c769fbcb8b5797eebc8909116acbc384533d6977cd474659d2dcb9f8b7e675429fbbc886f30b50e6a3e2e4aeff977861ca4cd24a0172f4eb30b86b7d9b364280a9417f5677ddecf51f26293175b1b0bbd48e634f645a889891e47a380c26e5ebfa863f7494e8a5f1b17e5fd5b163b2f0e6aea3fefce432f2a014aef2923ff3c65aed8c5af1e744a898b50f3b53394f3bc49302c27413779d3adb4240fe98b531205ca43bac4180a865d28248e096925782703776f79c8e3e605bb5acbca0c059799ec99c572ba51ccbae946cd9e97be4d7a7a865efabec629b8cc493469c6f2c6fabe621bc5484b74aa378a4dd274b9641a936812179672f755925d294ef10d2c34a3248e69a50dc3249aa1f4f40c6112cda84e459d62334d2f51906aad90aacdb0824ea28132ec717afd0727d8104e11e34b4cd9a2f119fb0a8453aab8fb79b1762ba6a43025fc9effa212c1dd1ba0faf3628d9aae99bb1b79d86402eeeee3e1500cee0e434b95c9149769fe2234a749ff397fa5c8c61a776b12f2c2ddc512c55b9bfae2f3f77d4c347b6ddb630423212deea2bb0de2ee9fdd396f8a61249534a3260b35616936ba30d691a49b96db34dae84d2a51f3a8346f0c9da2af798ea419cba419cb431b0be1323fd11833d958089f44174f3922b3939de6f3ea142399e894f43c2f8963b3cdca1a239901a420a8f40ed0754d4d3ac69499111901000000d31300203020140cc72322a12a6a29937c14000876c05a6c549ac9c328865118a40c3284100408800130003042439800f30e5225329cd904683a294b9c9fb94783644d4126292cccc23d4672b66d193a768d57145c6b17e5d00a96e24d3c197a67896b198d7eca3802bf878b013a076aa0bc671b098c165da6095ed807b6c8619420e926c3308bda7be82c2c10ddfb4f3a2692c66b759e4b569ac2d50b05f88aa542f64f01182046284726499b255031995c6780d3d6d265b9ab115fe2cd27eab15ab5bdf4597249bcdeef16516b7ab454a45a2222527478b8f0c89df34abe3259d57825c722748559981768454abaf6f13affaebfe039c90b09dca420111541e4b5a769b8d87b63470bf054edca96d59f1295d159217866ecfeef482a1c96cf52090e35fcef42c813380d1ffd9c61d36a66a49285515900a18ec80761f8a75bc0841d4c6f05a26e73e012076efdb9f61a6d8cbfa1ea003a46bd1f1ad3b9ae56a4686bc9874ba57c6a6240ea400b2dca45951f664ceb5c84fe8200542ba6f022b6cc1f2576f787e3704518859ea94ab450aef9c24f136b903c64e17b06b78574303463820865db1804ac5ecb66eb39bb4f65a9cf91c1030d88273f5ca8b864d7116301070fc8640d046f6bbc6a6c4e354f08373322ca0f5387fef28a0199474ef385be61ac6f54622765a2566fba649c71502506f95baa01c6b47ec280d306bcac33c4ec0847e6941cda281b13133b335695cf7a2117dab93ef6f94a9c9c73813e5b988c634efb00716a25e15d31c7411bef00c5d8076fcad667c88663760e0e32e5176779e72b148cd347870e645e15e1ac86acb769f4058939ead2c62eadb3dd917fe63a2aeed8e810a7a39dd640940bc16080d61ab400c51ac3f04ea024e06bb8e1e102e94b8ca8111d60af60eb3693e5cca8b43bf061614a6811f1e88260aef56639e8bf92de7d0cccd56e895270d77cd0427a88e739c8f051e09c62cf5021ed385b4adb5ad02455d11ea056e883cfefe20af8be06fbad7a88327e1120e3b7d19801fbd9fc35d2d28eadf1a43b75170a70923a4e742373342f1784f9d3cc37a1a519944a476eee005a0d20735d721df6593f172779601d6b9224d5895a09c0b8c7d514e3fbb11831b929617ecc1848ac0a8f09729ffeb9267b4f1952aca316fdf2e83b119234d3fa1b5f769b149b95c08bfdd4820a804249e509eeac4bef54ecda4af9e467bc6a64300f6a63e85b88f900f56c0f020395ad4db70ab1e50f670eb09e388988994b1b96c9fab75cc6cfb6213615a94fda6473c3bf8d7bb95652234d4e7192c08402f915926b69cdb52657c7f5a946c1f8b778bdc54d090d94085e1a96645fe38425ea66b2f1b5635e38124e32b3d00b34e5c12b2d2173621ebd7c11a1aa1aa35de45b59a0f80fe7f39b6ee46e80c0225b9481747d831cfb315200b16746ffbf449edc145cc0044049d3d2208262e0fd1265a6e65bc6bb35e5ce4b32836879ba72b2fbc0978bb764d77a1ba6e7088eba7cb5f0bbbf04cf0f52f061f29b90c8654b0bf27175216553ab8168e1104a79776015a208d9e16793c74c187194a0c17f5894b8089b8a5cc9ab2a597093d7229ede55a6f98f4794e3ba0f7b6633c00ea2a48febdb6151484846421d0d32ccdcc01d221de452d8f6e5e6e84e888377352a050a047a7c08c63dec4c509338687c5b925624b84b22b0beae2786c343ff1fe61c13b90de0cb106fab62149ed719288415ac9257612da566600d6218a69fb50d089251b460ec022f5fc62df07834d9aa9d3614916064ceeddd9f58f4fbad85077656456bdd46e089511a5642f1a5e3da6964b8b2ff6f5407dc56c84794e18a5f8b53c72f2938c98a23a049778e818f47475f49d876084b5b13192f401a79fa055c31a86a8d208e9f0129c93c1374374e8cafe3a0907496e6a522f8c12583863d4067b5490ce29605da8ce6d3406b5526fa0249f191ab30cc03b35262311f2b02c2189360687231588cd784ada2cde7c514e15c1c3a3cd8e56277dc91fe472fb5f6fb92c4a591a6bae042a1a0075422348f356f31ceca990623a9397912f0851a97bf83bc583b65c275c86f0a7e46e78867594dd088880c5ab9a03ec6c7408bf9b72b226995e8cae6d5e809e3866f2dacc96ecd98029daeb860a9c08f5224189cca7bdbd26ef120b259b76ebbc903a9a5289926a3494910a0b6471398bb072240b6b4ea115d60f3c854dc19c53a699c66c05c5db503c6b6ff50823015c8c777c06f248996bec50c3c57c3816268fa6d0f568ccf4ff1bf99b707bbc5085756a1ac73bb556412a1e7ccb6458e786749d8ca3c3e830ed03c917716d87a9652db29136f895bcbce002262dc3fdd52ba8b977be2d1322329fe7d303359d2e1620ed810fdf02d0141ffd9bbe672956a62cce509b23f1a38d381dc7dcf722ac2a07ca5fc00d8ee41867fc03628b45fa9e5db1daee7fd018166fedae6b387e3ee5914f41a41c4976ce9b13359eda98295bd9c80cee56edffa29068b0fa0ef9781f95fddd811fe76434bd713e1c4077eaa36be0e48a8cdca3147694b4392cee385d855ca15231d10bdcc709548a7c60eea7b4281481b20c8443a46a2f5bd1ad8ac37b043a5bfcf12b95d420f1a651f73176170211dc61502fd5253107eff5f5f01bc7d75f18aa4ef1fdfe424f02e1807664169c8c8ad39d2e00d61af855850b79b9961f58f13dd7f4875df85f302cf332ac1aabc8edc2a50edfd406f0362415e457bbc8666fd70a964d70e3c5aa1394b9bc7be650799ef8d2d5502e5f1f11007a39d6090bf15c59255a0218a264fab908832cfa119cc8014c3490d62369e0d9dfcad6b01cbe2851d0432a8c2b7d8ef59e53612c3eeb0f6db2bfd939accd7427e635360074932038abf28d3cd9219655bd18304f4a93a48feb29e952663aa92029c0754d6d1b6760ac1f70d38ba7737a3a6845a86e5d410cf21f4a9719221ca05b916f68fe58e7323004f9019c8f8f65dedd505c60155b63cfdf646de8d9c5648844238c4b5d3660ca4b6ad7cc6ddd883fb001e092d2689e9fa5a8392dceec70b9c7c5ce2ca07aa1e96d7c6ede76bf6e029c856c31922bda6447edaa07f0e936284d9797aab09ed20d2ef23d38e7c128bcfd2a4945d5d0a1d40b08b38728ab36a7c030074ca1c06f04721fcad4eea5e3b6cf062f5336732fd5c81c2bab0a87454d077c52ec7424bd84413f71171a887190c4eb7e10608f8334e9d3f77cd136ec242985d2c5e088acf8c008ff7330833b1857942934bc76e3db938ec17ad573333cabb792e9bc4fdd6583d132399931046fc698a6cc39bb735adcafe3b7c194905a7183c737b7dfb7df674bc825e24ccf252e4587a8601509ea100059d3ec3c68f20a33941134ba1075a1c51318a25f9c1bb6b5bea5076db5ff6e08a81c742535e9ca9ab7209c1df582690efbce808bffe04abbf92be8e488ef32ebab249f20dc4df8fa4ee397b241c501b424dee90de4f8cb403c83caa8421c15f0e92cc3fe01fc39b4a0ec67c0c3bbea847be7f9bdba667f533c29ef3552a28c3a3373a218130cb0b1054bcfe70bacf5e2bc40acd8bdd3d5ed956fc7962d670a8f6cfee35b948112c2a90bcc526928a27a84eba45e87bd3c7a05a9318b11930b0688b8984c976b611b9ad44d4c90988716005a2884dece078f15d21a85665d91efdb178099129dd96d03789cce2f40d6f17896a623af6e943c159ef089d9aba2206e758d2333a908a87c171e5cb4ee543886c9c4513940f8129261275b8f8ddbcbd5d88e2cd05e641fc2614653ea990f844ef5f275950007aaa96167a38af44673f4931eb6a0a6bb532309e5c631a97557134dc8f9ed5106e135a322ad5472f644a40539f9fadabb5d2447636172f469b24e3feb4bc71dd46ac134364fb4c884fe8f179a8cabab3015da0beae2509aa1a3988612a00523e058575ad04d8472206cf2072fe7faf74cfce789ae293754e14fad0026bd638794b09db8a45c7a1d528f4a1020bbb5e5c4f0cc182da3c59384c804861f41a8acbfde500876c8f5cc3daa9a7043c4c0a83d9d8bdf1c43966f62d21bc309a6dd82b18d56345d63585007bc953462bc491d778b0d17b85d5578856cb42ac59871ad866c86267fb39f55c39bb5906de2bb0020e73fe748455a9960a2856de5c0475111ae32079ac9af7b006cdd3e7148d9a99ecd865e75f2c337301ef5de2590d5aba5205a79104c3821258868ff11dc8fe7f2ebcfd6c6698811d4edea9b601778486eefe93eb30da27a05d2eb5ec7e43de9ac3bd9dd5e99d7ac8e639bea35498bdcb6e4d88c30fb15e029c5e8e954cb775ec216c46e7c7835ac9c6a7e9f382c01fc3c4d3d8e5b7617189aea1761b14304e90a2d83e44861ce1b4f5f63971812c1191cd30e89b9d4d66cdc9f523640527c903843e4a2195c615d0df332859694b91ec59c5d18881899d68a8b35bd35a0bb5bd5a8f9af7c29c581635e924466689b9ae86271b53f292bb8d4fc45e1cb67278ed09511fb4e3f2052bdbc15a916505ae08f7e22c97caeadc19252340851b3900c67dccb53cec701cfef58d3eb4668f12a1e56149601e7ecf4b9f3a18f65636056b951617ac2a212971bc108fc2670d6101eae39e9ea72bda360b70b4151bb7437618b0d9487247347702c698fc01b0fc974c723d183e59a4d9f86bc5aea66fa5a05aa2037b0557f86854b622d63b8bac640715ba6f92749d6b6518414a6f414d91e0e0e0e62df23c10c4b09bca1dd20a59db118c79ff9067fb5e093c1c70ed50ed5372597b5e41a2e1da4349ab10daee52eb976202f5aa546f6eb32b915d7a7940ffd5696e0f2b62a20016f652a0812695fd6c554152d6f3a4cf7d31b63434b89eacc120ebbefced7af35a24a0ad29db75d8d4e181bff56d6a98824843d5a5960a712795ba89a5a4dddb19f8ec5ddd64f4b6156420d9db182e173f50af4bae674e912dbc1c6ea48c3a9dba4f7261a250819ffe2eed2e9feea36277f5bcbfcb73b6c440ce141315a10a450c62e5bc050e38d5e4014a9dbf1979f0a6717f95e5aa629b9d921caff30f951bd9011346b1c411c341574d162153f910d059e73b3649686ba619f2f461d8d1d9043a532d2c4b9dcf738eeef7aebcdfe842104c7bdf934e974ce2f3c0e5b475bbd04984f09990289e8332fc85ad8dca93c268f2a176d2401fd779831cd6bf9db1c05b3dad5b58f0f39867219f220696e2232c1c32177430801e0af8431fcc241983704e998121622cb38dadeedb1dce1bc17a01e5c8c4cdae05501b016241789f69687a3402780f4cee0c520d274c81e305b83fe97734798dfac7aa99c291eb063304a22fd40f1619683100e460931068f654a190decdc52809ff91db55b25538cce6f91ff5d595252e7ff01c831d13a6fe9f44729febdea63d576390ae4923cf02945bce07c205225635c404d6347666e65cb8b3b5ec3205e1cf115ae9eb0677751e967eec6f456d4fbf2f4cc2bcb0c306d6b6fa9bee1db85b61ff8f2eb203400a84f5c2b1bf9b3c2cee025aa47394ff255770a0c946f469f5c138f11c5499d3af6b9a3a12f04e7fd8e9ac6d5ed2552ffd4dff1307b0e96d43d2f9d1fe1ba70fc23f22767d96494a9f1a6218b8813a06e83c83a5ab21cd31049d1b89b0b52aa7adb43f8041b0b23241c778f141525716761d24e7a698f93cab0314331c22b0b145eff62d8f3cafad98bc391e1cbca27df63afe3068789beeb45da554d7ee4a26b1bfa42d41a8db1ffb5f2b1cea691e70cc101ce199e27168cbb0909285b4da1948b07f7c98cc218d8c27e083828c890fadcd9a4b1294716b9210169a18b980c5aed5f74a6247fa1da42339ef5e9407744aaec9074a525d101fcfac2776ec7933a1e9aef7df1d10485eca276db2c5e9aa17d34ae909bf9cf46e7ab3a153a345e6a865ffbf605bf280540ea79916f121ed4a0a8af4f9da664e349f10719c6d3bd46f220c024dbcc1dec3652889feb193f5175c93459e2820e19912d7cdf68c2c486fde0881bf985c31fdf53af333b5d7ec4c9c52da0408a23670da9c85755e214084a9288c384314f00244c1cd61799fc7996101b1392607dc1d002c1c22fd0c5ec25587d809ff27506e362112a5b0c20713d8740dc9e63712192432d12196c176e88834fc2e678918ea132428eea2fc7ec74452460619d0202682eb69c529c6592b2e68908f8b86eae7cf9e1e31e1cd50782f1a1eb2098d87e4550e53f6bc6f02f64c3a09adb235781862c216c6419997a7c104570e270663567e919159d7eaa20ba08ad8bbabf076f2106ec83d4285bde40a29e8588f385880d9d4b895837fd7a75bb0d95042854082cbaa016ada2f03eb2c4f1bf47fa3ec9f2fdba914f44e4e15cfd2d8c71870d54a2a21ce074b0a9008a845cdad8bcef9aed9069641eb3a74d5b1666a8e9c335a0bd5c1b9ef719c880b635eab634c9b8ae68e89f0368e95f2854fc68cc167c27bba9843d9f611135bafe268e2220f861f1bfae735855c89352b33d7274faa2b49b36c847bfe92f2e9a6d29c29079bd836d7118f7f186610c981f9ff31c4ca278a59def774ae81b3b24c4435e9b9b63f164b6265f79dd928a0de9219d23773d3d86a1277489749c2c480279fab0c689ee849b971084b998c94a209cdc8acfe8aa23d3a3256834eeab420c75cdb0b7139be9fcb997f029b4f6a0564a7f3bde998dcd6e17b928b1634618521e077fb085f29c0e538730abfb182d1cd475ee5091962363d338e187f8d638726cf4a6617bf181949b26178cd20136080f84c1d68d3155973c97b62555caf0c3d56329bfe58baf226659e44e62cbb1e5d31a0ef48c09ca9f3573cf2688e0e9912340a23de2ade1d4095cd5a6dfe38bfc33563db8dc8cde29a3c6ca5f2529df3f0a218390ce04923ab16c1fdde53c98f0e8acfeac86a07fb16b873684d682b38ea533ad7462dfe010dd01942e6fe314b020032a6b14125e74e22fca92d539d33d2b731fa03a18c9a36aac3ad16cfc1ff80f92d28cd35c621d2c5a3d16b08338e13c585090e673d4d611ab21d378b44ab5e017993b4333331d017a0a68bfff4f7917891ea4980cbf65893420bb3285683dfaca34e9d8d4424ba8e8438bc686812310ea603436669c798cd8ba3da7dca6df265186f75baccff0a0c76460f57ee4470d5efe5b9d470b2d92addece0c9ba444b073ad95809df5615188b3bcc1d24d6f72aaed8e3c3d267c8b816257253f968e9c3a86eee2081dde068609a307cab6bad3a8215fa5251f15a9846b03309f954413833f2f2d23c9cb66502c74cad3edd5c52b3727be06db59b1503d97360c502915f274473470b9f11e62ed2c361a11075e60404b92c231bdc07d8c7be73c10ff866e5c23daebf677ff2a9614ca11928e5bbfcc7e5ef814bb4c4cfa20349c82087e687837d04c297e4beea5783f80483ab7d10763a84313fa9e7c8ae0707f008734151542ae738573826262aa164277c42530e833aaec494549f5ccfc97d48932de35114dc5007fa86993241f3519a171b3b36845b78f9c7b4db38060fd6c3909472ee5e56d0c7ab3ab8ae4839ae3fe12d3dc2e0666d635aa324388607346a5015df19b047515aff366a862449a1dd876bcf273b3db445c4ccd4e0b46720cc5928ee37f366b2828b48e32d6ed6633f4425d7b0aef8ea1b8634fa1a50c257e818d93dff1b413c3520f38230dc46551266fe563d983d4a4fbe0c538dd7fc646efed7a36895d6f6daf514a92dead81d19d143e0ddb047db67fb8228b06acf3efd941bd3bd3fd2253d950d11f533187d029cfa9e72ab59645d17aa5c32f5819d2c92d58c097d007cbb4815cc627331518d183133792afbd9b73af326ba568647d8fd64852799a8278896e83569f85e90eaedf43f3a0d760ce2fc8bd88d45bd2bc704568515d3447f6ea2859a8b1156cb49e632f20570e20bdd60dbb86bec2ba46c8e1bfed2dabf66aa71f981033125a3196d8a4571a8911855934c604e4c1ca65abbd073617e85e30354f496da6a53b6d4176b8ca311326190a4d819c39e29a4236685d8de30258575a729a5268aa4a4d28a1433f257cb1d424975a499da7b0702b1eadfbf47f46f216239444d9267f03c84572af54026fd4a9e0391d578028f6acfa9ec3097113f1276dc0548341bcaf9c6b180c715e2bbd521197f7146ac22502bb01671c9a10f00ed7ccce87bf0163bcdf414f0d000c26818b630705f754b05828d5c445b129640b30de7a068426dc51deca87dff33314c0ee7fcd5c594f93425fa9831e9912a4111ccefafd62647a9fd5940aee8a5a047c7488b1fe06d34712f9e236bcd18b6412aec61c2ca6ec47b28ec99584e6035de9e20bbeb22af35518e2fc85d8371b3eaa1c4fe6ef4117ad8584257348ec8f18251b6c8c7c538511dd957e7c515108863f2a43de2f6c974d1a43e94f08c6891aab6dc55c377449811e96026661a0adae678cc234d7708a6d46d29d6c71400126b99fcb73bf0e9f8481a1d5f861eddd0a1e02bdd46f19aa506051681f248c173c28263b2ab3877f2e5d8ac8e9d8a200f60620199f74da8585a7c3ef3d9fdeeeb808bcc1767432e0bb49ad728914950e26d851a3d629de444fec288eb6102b4bae071ee5d1a2aa18341266bc86f191a833c892da29722a30c371f5eed21b68d9ad1bf4f9db66bb727bcf8fea87158cd8d0cbf1ee53aed7ce346df3d05d3cf2e1e786111827ae5a3f72d7c04d90765ec8fd5a56f4cc6890fd0c32f28faba36397c0da147c4f6b4694b244ea6b1b33121280b2bd5f3f0f8cc41cab50d5470b2e2f818dbfb151c18e06005ac6f31de4e2020490dc802c336e71784d6168b2db1c9a1adf498636995eccf0d92f1912be2ce778b3469a08b888c4685887f1125dc466e49dbbabc34f9eb953aabe14233d3045663748cfefe953fe211725da207c8bf307ee2b0937331f748b01b3c6e631e649b61fdaab0910521069fd40a60f480425395083284c4e3c478e72572dd8d556c667fb8af271b63633af7a9bb4ea2884a063319823cc300df4a86c6bc4a47c41a34d8197b39d776a6893048b05ec23ca8749b09f7210503c5341b9320cae261758b934f1e5bcc8c04c87649a8bca84e3399fa186e935cf454843e69bcb8cd8b119d06fc3fe7803b2ddd110466a5b78efd0a75bc820e95a1dee998a88451c772f055af9a855e798a842745ca8205e1f9d61c0022037bdb4d7cd789f557c0602a48f38ccb84fcda371fc5612658e06bafb791a414ce15103ae2d7e8a2792d0e52e3908c6b2deab20ad9b2dc4fc2e16bde57be5b5238b74b00074c659122d8a8b438209e44d15395d1ed0b959abfba0edfb60d4c0382faf8fbc3aa09603c85d895eb929b81da1f34a6bc1c433bb12aaab7d95ad837eb9ba66652667f1788ac98fdf8f5cf591fd338136555d3e458614beac60205ae49c53600eb479f23ee57a815e760d36b0da4f66dd9c0ab39a89c57645d4d9edbd0fda7a119b6475cc18d8e36490f5c9d5e28868dd06ddb13caaf6d2e3cccfb9f7988be9f86a29a0c6886d927164e403af2e775c4e5af23e80128b4beebb9addff5a7a9abfaf57c7aecf754d1be912ac6e2807dceef5fa271cc0ef3624fe791a74702baf9471475d4119c9b3ed32bcd25718e639878ce30b1f3dbdfd437d9818c93718a04fb8d360e6ebd32a76a91ce167c9be76898f283ae3bfc6459713b83274729badd6dcf5308677e6c88330db460327a581f4c6d2abee26a2a2406e6601ce2cd21e9629adeafd669768862ec55d493fd3aba0bf5c7dc82b599c0544adda288f677a52269205a9a83ee6fdea3a63ac8558a5714ee7818af879c0b134ca32c89ce422f01bc887c45c7e511216d53db1b88d30417951e0806f5074c0f62b1ff892e8fd14de3f0849fd0a5691c35e5252a54b39f28035ca45c6f4c53322728a24ada65bf6d9b2ae96a32340129753aa0d4d698d9ed5d83f33f4853da0b040e23ea1259420638429e00ee0149375c68a4fa061d23aac7409c070a1efa4434f431e394d83814a49be4b3678dfc48e89ba44a695599169321bec3ed7ec7164d57fb77a6ff2e02df3e600163c3f3e4e9ab96802c7bf74820390535a3be47447477a9280a24da30482efe5df0cc79f134ad7d69ccbd2f7e348d069534291be22022fbde7c9be5d3d7cd31d46ca2cd2bac5980981de4c695349e78608d706d35e26aa79587894ec59fbc1264d7b079a073502f0cbbc7d6506c1bfd1e8ff1173fde0eb820a8483da662c95d803ba284f529c4e6862988242aba357f80e91f3c3717b3fc5a0be6dc062784ea625ce0a51657497c82b503e3b6f5adf9d9f1a3a878e556e7081f6c8d323b4900ae4671a9f09197f7e995ac798b9769f999140688accac352a4b68b6eea0d86ec5115910acc83bba08a45aca6cdf916dde3c83ae72e866920c296aa58cbc1cdd641b0afe44f61351587b1a2765d73f3952c5fcefb2c15af1ecda1b56737833a3ea679484630d752a1c16ceab7d40f6325d14b042fd2723f005d8b7b4523c588387cbf07a951579720ec58b504ce13338e9876a712f4f47e6a6599b2cb593da4341e6f16918e6d74587b9b8b35cf9eca499a643f5582c196607b4fcb0b204582f4a8aa43c7c3c9d471e2faecb4c0801b8dffcbd9c6c0452153814029eef5dda4e669d07f30182e3808b6f642a3b5c2222d9291c6827944529f99d05d81ddd4b8f0cf437eeefba6f4fe3fbc2a70f85e033eddb01c6d31e84e6b6fc31325a28a85866b2afff6c2956246391f399758dd9b82de78d978b4b7647d9e80de626758edf7a6aa8281ce00407053a23e0d465d612a41d54ee696ff36e7e84b3527c1b6e48db4f19707f268cee3f262febd03fc6bdaeb69e0d8307ee96b6dc50cea221285818faac57739fbdd6a38b7215963083fe934c3c58e9a147473c7a73bf348de87da595bceef2d1b7772b2acd4986e080fc0d83b91633af808a2796778fb1fe08b7bf4e1d882279b3167fb936f8c73d45c0c98590e94e8c42da24873ec793b0c9cc0f364bc3804c5098d71eee992a9eea8de7096f101c5d4de889a416d160f1c8423077efd835138c27b5a5fa5a913062cabbf7ecf4ede3a5e19ce93d3d92d5cf6a7d4195895caa7cdbf18c18cd91cc2c8c5085b29bd3c97f63e0a62c1f6fc0084109fe7b99c7d771fa1d9417b918a3c9f59d25228792590f80c5c79e266c0355332cb74f954e2740b5a7c2279c2c9ba5528e20629d95194b0ce74b1169333611721bf61e6640223e533d97e1a40de1200d7402b145c3767c4e3521d48e93e72e20f8f5e0750970f64d5774be2bef95c3af3987d3680a247302c6c349b517d21d60355326761c16782a227aa62cb2c5b7267ced9cbfc069182c1d47eacccbbae59ba245c1b54323a928407d7292eb8f8884ac7f8bebfeda994b60296885a4b9f4341b3cebae4ee71d389d769f35c072732cd9b8a67c490c7e2fcf26136e4e8569fd9dc8c8ddde8b617bfd45f764cac2c6138f068329127662f56c07b45015fb155241b1df178a2bb4be22715564808af2fe54f8736536f479a15246fce52c9a98323051388c4fbc9ecb076efb64d20b8e3e5e6927c335a22a6d1221a7f4dcc88e940952110e49a32c90a53c4c76c329ce65a760617b7b8adb5a51ea97bf718db251b598246f3af42384c56b786c5637921ad82660a49b96ee4bf5ad50d1eb80618b94799fb348888477977137a97b9639fd68734475eac7bb99819a0f7f7f722401e2d3c25f71be5f1271a6af13c47f75e0cbc5d541c2378d4ebedbee9b775bae817cd0666fd63b4a1508485984639fe8f573898e2a18ab99abbf20aea58c38f0ebc62dbb8509a4b7a0d7d765318727753ff742540b40e4e92e330de79f1cc04968783671fda5c6816ace29a0df4954246fa5f0028910455f7dbe6396aab4a3296ee4d17f9c34df15863fc6b53d3f62624d79a6167db787b3b0bec90ada2f5e4329e8371d9f05b5970d4f3ff44447de6cad468f1d42041710fe6671f7d4f6f76c0bf9450b038fc0c8832078a8880553494ff3c76a1735779186993bad5248da22132de3576ab5a0eb84817d15eceebd296ada906cdcdf5259b775eb65292024658e0bb9fb3b24fa26ff959331948cf7485018e8801a45c74b29713f876492212d5481504820b7d2e70acad983937aa72a69ea41fd5b17136e6df7a79b6af6bea47c1d5a5439f269cc544c4c5f6e2e3195ff4351ab732bda33598c5402d115674b4ca2ed069e2aa3e8bafa966fa1014df7a29ba7c3733c7d8489d970dad0d16cc143208fec60aff0a8d2a5ee62eb9f44bbe8a0f0fb52e48e6d92623d3562d7d6964609733f883e7799ee4a778329067699b4d5241b0fa04e1e652306fc773204a754f94d3da40803c5255b9bba38cb11901700b7423385f621c87c59ce92b342034f476ad9c347a7a7d07764fa4b76622a381e360be44862684c2383dc3eb5d978f004ce441f4f0d4c06a653c16b8e36e5f0f83f24c9b030fe517eb102ac310afdf8a2c47bd871516abdd141e998728ea92743a1ddd7a677c0d0d704f7be8ac18aecdc6a7ae14548e1d57db2cff81f073a091315ed8f44d4e3777b3130e6e48a8b9cf95764802775fae0046ed7a61f6006c82b14decb703e35e4660fca9dbf6f84c77cee12c1e0f2bb52ae4f1ee908332252c7949c505e75ab7f0d1cbf6d0821d849b1752988b8ebc3faa45af6a59a891ad478a28462b7c4502454e5e342b418d18d4fd1be07d081ed3f8bf1cb2636e40a38338d369505f86e360577b2cedf39d3c23401cf859a6efc5a15f7499e87f7b4e2d7111620f0f342a0cc585751e5963d291eb3f0d18bfc8dc3de7c98100eaea6cf676882ee202a0cc093f221e04159dcdef10e2e993759be1792398cc507d85abc68f8937e200de67580b482dc5c960fe29721c66fb2f99b0ddc54b94c4950d86a7e62eb89e5a4404f24aa669e9cf88c7a9a670f909e791405d4bee9195da40dce32876653ff133d46faad8961944a0624a8ecbb077a15917134a30bc785851c2749dbfbb4c7d9339df461b4da4971b6e87a2056001dc018e7b47936a56e9a2cce4c7243b0515cf9c8b844861b95c38b131e8edd2f8986bd336ec6e18b2c239bb97d8efcdc48cff6fdb720f6345951da1da361d2fa0b1a84b04335bfb74af0a1c17d351f36e423cf09cecada32d573bae9609bb80856a1458e1509d627ef206bc7b3f0848d5e29ce33e8e56f65d00ccaaac594339fcc7a81855a01ff6d1bd8b4a452ea090c5864f12a613fe3b545fafd11875221268e7f4e8a260abc5f1a84870c196600bb3ccc5a29bf483bad6804a305ec660063d30a0730e4445b16e65f1f87e01ced3a43b607c39c9c0be59e0e1040ee87d3d42c7b13a12611e5f11265a3bb14013a62ea3a033a2a8b2126486a5f9beac2aff771021afe1546cabf1096cbe6614a490813903460a27cbda55a3923c057055f06adc3f15c8b9ee9737e00e52fc75f004e19e8ad3b52c32147617555cec66ad5c17b2aa1a54fadb482905f4edebd9c038600e751741db6f6b5e340a59641eda8fd674bfba45df41d6aa06010103b9236c49216a4671e594ab5a8d6ef1052c8409e18bdb04dcf1e165d81ed99fafc12ed022e4b48a1e3a22657a4a10f55c57ca75c4f214eb21e99ee31e4642aea7e81280889741e09a373f62a8c916e259e54519ff37c69d24e427fb9f2ce7d78b8785aa8e80c19f789fe1fa7180150352f632eebdb81ee0daba2fadd83c61c228fbf238fb826599302d1783e9c16c167e7ec8fc6d0c3cbd841f0d5d763f7ebe7f708b0c36d2c5a522a736cb311b4a2cfc31324824f41f6f1700550ff48cf0a171be0149e90bef9e58d555c7d593c1c3a66c3661bfff45758823824cc31d92bf3e014d2ed5fd2037f087d385a9caa33415fe4a81eb01ea383b0b90b7fe19ea74b804dfa61bb1381e859610d38b54acd39a7e121bf3b3c60ac0421b5e0aea8e2a615540f1688441b7b8964474593501644af264ef8c6ce9398220e3a2dac7a5ff54d9b14465cc34525eef606db3373354ffe09f0189598eec67b6db93906b7bd7f97668c4c5d8e2cfcb5ee34302d2971b837046e57dcd0d928778cb6e0fa320856c581cb63c14573959c11c71049a6df510692591aa97562033ec9ff51463cb8a65bf03b01db10206e0f66dc8cf8c496d960b898aac42eb5ed4c78653b259a885bda316dc797ed790617ce9b98bb337ac17966a24c6a822e7fb89dc6fe0ffab7fd750dcfede224b3ef52a98d99829826c0bafe60d9bff0134fd1c5c5cecf819d8629f0615d56b30f9e0e53d3e6f6207540430022784206d14e1019754c1dd34da0ed1971ee5e783643b3e206874ff5f904d8590d7acd8c0fe5dfe8868c58477e26d78bf1593ab10638f12fb62a4f8b4acd4536d5b122306ace40c213d82b51123a5b34a7907ef04cc6867fad2351e3a8239d801d877075357e8605594671af50a145f6b04201353d6d1a371445febd323d6e41ed50880ed719b0e549dae515106095178b942636f1669d56a91f1cbe9f339e049af6ad004a63b9a884ced1c8e2e9064d84f2e9e7fc830f7c1d5d0feeb411ee4607bc797b2dc1fb33c3311ed1ac143ad901d9ebe9c10c383701f3074381b61767f8a7be2d2c95545f39939ad3a23b1728e08f5b0d61ce505a974573d1301c631e97d80e97b1d5cfda964ef35c3a7c490b01e530cd4593161ddfa0a9306700aced82bcc1d6da0d48b09bac18d7c241e67ae5612d623a693f405e66ae9415fdb5331ca814c3add79c78a237165a134db4c86244127896d9a7aea5a113ba80ea77f104c139b51e52f2146919fc9cf6c60060b3f6534e01f5624fe5ac7fc09f35ed60dc5fb309cfc9d1fff3de3d21f277dedbd847c3146f63c7ad139aa3738f04fc1f6a8db508d28f08f4df5f6efcabbeb54cbe44ccb0d58077798bc5496fe3e155f3e1ff5422436f45b3db17148fb1020ccaab9ede04adb719dff373ec5fdaee802a4351f60c5f7ab088536df68849cf741d47bd27638e0b4314ae523fe59d751154e5716810156b8834db032e7facc75b525b87a0efed5693f13fdd8ff5acf60860c3a2cd2d2ee0f9b075fa330c70d80d04c3df6a91c6ab7a7f04794ec98fc5cd500c90555510fc5b7c63e9fa18c5b9bb080631462d86129ca0161b74f6fb993040bb7f3ae4c3eb65ff3ff15ec8c3b5cc9195b1c5bdd4c7b126bb70d4faff57c1e633aa72df3dab4cb3abd6684a51db5b7bd90e7e896a63ebf01b3546f5221711d02131f36bac35610f992ee7638e5f99a3a2896b80d30cb31cd0538c33ea70fec95e8e815c4d1faae363f05fc5c650f6cae03b7872fe9bcb3af06fd6cd4184903b4a73d8f0d11a915b752f717c0534043249b139f5cfaa0de1b18d6cef05ba5dc5ddd75e0eb9f2cd3bd34e3cc9eef00f786f9ffc1bcf8d300e545378290d23507fefeda71ec34566de689256ad96ad3e23688ea83567d99c7c1b7fec31663463eaa0e9b6d5b6eae52b659ac47765e2f769cd1d09d190c96233e0f00e0635ffe1e2e5ad0a9dcba27c3013a23711c4403b9bb6dca9878c30b0f53c1d8c16abbe1a00017d4f122727e19a7cdf4dd1277ae1c7068d6053849f6a9074a5477cc6f436511d331d150460ad6562b6d3355187f84221b6793694e9cf8584fd5c76a54e8463847c8c847e87ad246ed0f0ea4f3c21cc8f870afc9789f43c29556c745ae005672206d903eea64f901b0cc37c59bde3ba8cc5bb1a095458e112988a82e258f8363c171704b242f7216219c7cee80e3f99223f9cc3fc75f84947764f719e99cb6a2f6de4db37158ae624c5c0dab494e51b0180aa1fb8568d48d6ad875761e89c6f7046efbcac6b3611b61e47b131e156ed775489f04fe54ef9624fbfc41a655195a51edb2136fe151b4d41d2582da2a286521c52edb0053fc54439441ab18d858845a3d152bea2247cead5a3dbcf81c996b5bfe56b07ae0f8dd9848d8135ba99c4e985364c49f28fe8b8ed3729df39f933b71e3e65e4f8097b40dcafc0a0138ef1eaefd26d108895abb7e9692b0668f00cd56257d98328ef8f205da530a3b7c00f718a8a74950ee16048ff0da2c3ab92c5852de07608cd760082cef04194977fd4c5fb6cc99e055f5241af87f4a6460745fb110429d3c2eac368950ad380146f9963c38068a4317ced9be65ca63b66c88d64d2219839e08c2752ff9c95d8f301708ffe93b70fe90e0a7fae412343dd2d434812941e35926150698505512c57736b72225204770bf569215db25031dc244217ad27c68b0209fe4f077a4698532d0138494b10344d876b21ed87d06d23b3143860f2aee6edb4db9aac731ce76836d662dde52986eda249be1062821e508d8f6aef5819e6e054872ca7d3df92d18b51949195953961b177e5a479a6bdf73ffbc4db55b7000512a15d471970223257886cd31781338d5fdd71068f4396175250a7392bc73d62648c6aa493a10cb7d2f004d3d485fd370079dfa435baafd073c1474c262b432a307107a9bfa8461d877c4cc1b95b5e6b94dac0284c88b4113ddbba7960429371e96fbf337871663a370d37a497ec0ece0356b2b11909afc50d0a601d5225a7a0ecf0bfc49ebb975982157837e65e89e53e3aafb5b38c979e69aad0da13e4f7b1a1d75c91681da6d7586f9f42588a92f31fecd9850d792910858b0410791089175f69f85ba6aca1b1461a7a00306eac03884d9c5f2e92e14bd4630024b9a5a5c20bc0adefb4bba95032ba27d02d317d9e0c2fa053c768300f927ff81532d22a9e60f21f6c623c0ba1ad03588ca7588c4f0e143cee0a40694eeed1147b8bcda10c6ba269c261d836677e1dcf49f52ed5e16e6befc40c949d8be8aa05a28a86a3e4ec0087705422f16dc112367775df422ef8246065bfaf8f4bb0266f06c477bda2429ae0502d54cbe072454961ce7f03bbb35274b20678e50d2ff42177900ec27107a8197bde3a1390c46c76f4d4cc116f254f455ca64d9513a483f69a368b3493b209d92cc47031230619f30196b514dc4f9b9b7170f6453ae83c6b518803b038b58a5b4e9e2afcb1eb632e4a831e0b0e6ace621e5f7a14c97780ecd24824b5034207535cd0d490d5b0c038c215f85587a7134a6f7c7759786b6cc2304041a5c9606472566a3cbab51b2a28c7de13ed07a76f4e06fc04b7816275b17a85160d4fac03fb30d66b6728eb6b962fe591c9b07c7fe2949d6ff967a04276789a38c361b8f12a644fb7c25ecc509d942a56009482a6c63c1a879e81fdff87612c2b0ace4a20a104a0a9e4f5b613708b7c79695c16234f4b579da5001a0bc188cafa198c998abd684fd46100c7654040216c641c370e2a1ac9506f19098acc1c84c7a47bf717204a25d321a50d8e853edc144c9acbefbd2b68e60573238f391d595dfaca501225cc0d65431be17fac03c86c85bef467b4fe2dd48dd3b597caa931cef3f5e79a9b77192ebeed808e068c618434ae20266b24c3e2949244f7dd4f2d88a00c7848219078fef9fd410f558e02d1d2172b33e6bdb2383c211285c2999e783c8291b5d1f01351b69133a3a84738f267777ae3012adefdffcbf2f25a1439f95e7446a3d258378cb1926d20eb6295c0a3f4fcc3a59e8366f3d30f6e32f424897266bd8d559ee491e15deaa3155934713919dc1504a5369c827920a57ca2217e66ab24c7b9c2263669a83489a4868a1b8b1a6422b0166a54007c34b366f4007ee11db828a2797291ec717850786ad9f1e67dd733ed9f834c3136317174ab9fad6c5b1390b29ea356028d154a8b2fc84b2164f5e38c7fd2bd05b0f95ce3a458313c46532d53287421d62017bc3d4ca18224493aa74229506c1491a4391bb1b512a879896e4a4d0b247a3c115ce3aade1d228446fc49a06c72b6fea9aef3d5cd8bff735e602762170d2fb0682806ca4519f1297f531021503e18f8c24103317222a0e4c3413de796a67d1d6d51bccf5826237ce53c84f090cd7369be2204a15edf5f22f1c191f872728648f59108bc33374b340a4123a71bc2ba40284bf8b10057241eaf8f03088d8f7464247d31a31ad29d40f88613dd5a8d95c1f026517158e96af2b6d6b2c6c9c34d38a1718d62f9b74b65591d41d2f4b148c72e90dadfaa1efe135199d9f052db89f7baca5e10621e17fd998670121fc75089bd55906d09bc92bc55a583a4d1537c8fc67c373924b0a0d10b12905017cc50d22366b571df4a06fd20aecbb1d0dedf3d39820d4f8bead73d7278b51d7c3415051813f0076df9afc2de8cf97b697699918b57bde13665305e21c397183acb835057c9be59474355c53811c1b450e63ab44e480a181c2a4c883242a9079bc0cf48dc74b7e7c75097eee617c30ec738f42052e3cd8f0e80c04abc0ea12df2079a945164dc2c14989d6ee902cf4f6c03d4a2e43842bdee8dd822810bca2359f5e760b4ae3b1157a432c75a3492d9b0da5950400612880cd82bf9de3f3ca0bc34421dbd7deb7430cffd902aa14df209c7c114718d5d616a564e4922d854d668a55fd3b6312ba87a599c8ee73d7a5d01bc6bf73f33d87ee01bf2c406dfa6b07b91ee61ed13a6adfd466ebb2c17f19dffeea66b5e5ea8007cc1a0e425b255db8c7f15c91be41f0bee3e2e784de46e61ee135fb06296c2e4fae003fbd1f229c495a3691a6793fac8a2773fd01888a8fcfffe90e745b4ad155d1b31e038d6951a59fb939750ae38fb8c2779716e38027c528baf3ba7b88c06c90679b0884e2c03b30de6b770ff069da96bd3fe83df2d95c190d15afbf5d653d18a6d52279c5a0f770b4975cac7790b248592a38ebad4749351c12990ebcd37a12ba11b71e1d96f37c0fa8b830e94e9825e9ee114c347c1ac0f0354f10dddb546e2c73f718631f5b163ed882de51f869b1839d1618ad0c0c73a0689de792e766e45753e1e89c6a78404fa62c6434ee1be67d009ea7d4969c910a8937f946578bd3380e1d7ef74eef2099892b1cb4b8d0fea0ac9501bc65eaa16855110381a108ee0648f1d52b07975eb3c6c191576da32660fa1e12db22f2c375d6daf2398263a3edee514e8cb82439d5227ed40195e1414055d3dd83c86d091f001725670b74507fb97b080c586421c8570a6694f3e4da3f02c41e565a3f7ce80e7a12e131e3440252527799840e4e0aa6b9f02762d876b0116821165f8121e65a2d775518cf6e128c74e42ba92832609325c3d696048d376e62006202fea1087c3bcc2c01e840075d1fe899792d3790f921f5e6df7c366e350fcf0ca151cc878ccb361d84ce0d6680fb724cdf38330e1f27db87c1b1e6cc1310f2d109d3871595b2fcccfa78579b07228088a656bab6469255770f3848343be7cc6e58cae18a75a916f974f1a2a39a29353ed105b99a7904fb3610624dfff3d3cd9f126fa2281a951416cbb91c6e0f1f1a774d349529aa03ddd362fa6c70c601a34a9b9b4848492c6f5c660a03abdf8c1a52de622db95118458a6d56a0860a85780c0f0ae2c025b89f395e29ce4911e268126a9518bb256ddaf74f67bb52bc0a6d36dcc55121e6861e620df8964dcc8a25f82a7c0604f45a03c79dfd19641a9c61c5fb26c6f5473c2e4c49a177372372f00b070de2a0f0622d1b308f86bb8ffe77f92374d53476bf6caa1dd336c89c2874a61a0bf8d1bddb68a1a5f1c2433f87ef5cfc47fb75e708bf432bbc53c5286dc5a9fb56d92b889674c7022dc7fcbcf83ac39815ab4ab2109c5a690ecea8e6973f3bf1bb7c7769dfda0ac12748a95d0a94b0f5904271d061006303116720eb9ab1494b7de670547ce1b7e8f013214a398f72218a96249a7a734d20786bc01ae478dd3901b587481b70b2e38af9b4546c0fa1161629e1b9559a8bfb91d3707a041b20d5029d8f84ed21ae99fb9879ebfdadb35cce060a1f106db28f46a4a8e856078a3ea01a6a7fcb05a3e7c0837915efc051700ed71cbf663d0256c3b0c2949cbe2abb61ffca16f5d09f9c4332ff6a6cebfd31decd7785ffab439b2f58e24edf1d1a4fdd8097337cf0e67da834b39d6f7db229a455f0420afb26fa641fe96fd7c0fffd42564f08254fcfb2b0e94e607b483c3bba53467a220e82efe0ba9761b3b2459562ed742df7926a4a31c8cee3b1c85196923c3dd853ed61205346d80320de7280644604094eb51ef8d96c26729e5462509e557594d4559dc608883ad25cf301f23ffe2fff83f0fee23305b59c03ca852b982177c03b38f6784769aa98107ce8b988df9665900a10f482a0411f4af72612ac0bf08b17fbb2a1879fb56b89038c6a500a11f222428b3ee47dc221efda4e09f8d7aca045df3294e0906f6587c4fc6b5ed0a3cf6ac46db0a94129a4b017012dea33e44ff3ae7c6a9eda801301af1458493f62590ad1ede19239fdc4736148842959d7984e6714206378bcf240d3f786e355119fcf7bd35740cc765c1facf1b552374d1e9fad46ec5cdb46322bb36a4863d3b336ed4dcbbab4330d6bd2c63459875481c606959f8f1197fff4bd0da9756645389e30a9dd8c518439d81a6836a9c3c0a92fd4037cecbc1c0dfd6d2eded5c1514d1c5cb88ebbd28429e8bee887e16234dbf12ac785bf56c0306b4c37f2b677968eebe48ed1389540107fcb262f188e5d4938316331c45fe6fd6611d25a38faf8c1ee5f4a8de24cf888e20cb0784ae95c5ef8cdf40d7eee269b3332b1529efe7e91cc09a76f7cdf2c9585c88c82751b24cc9ef5d6967299f836f1cd3bf5f5dcccd89f6e6867d0c73f14d21368f95410262cfa804c9f66d68a4d250b19ab47d6b5c8e9479647e3b43b4d728ddeef9541b6dbfcf637654c6d5670376a7be2fce9f51937fcfae255b3a88eeaa9f76c1fd2239f8f0371b1ebde98d8058280c4ed161269ebd2d3c3a62271d1e7992d8b219756bbf399e0c186b99e8cb245c7b78c763e22f4ba32772db5e3a2af20a74e2b2f4cacb871b9a9b365787e36e6bf870d5b8655764e1c8bac9990fa6be2e0ae9cef4e5537126af2de8df9d45be11b5614b6a080326d4f9d21ad95890d7da51f2ead52d091fcfbe2dda40fa15720a302cf58c878170b22ef4b1642183189314a10bd2b7400b27adaf96815fb5c4c7ab7e093ab28a1b8018dc64129ea444e1046d19d7e35d8482dc15113dca6dd9b9712e7287a2c6c52e8d8cc11d3d24d611b17991fd92324695fc836170a5c81fc697e232b297c08d49e4491b74c7a571ce97ce3f09759d36e2d7156134ea35ee5d6ec8a8a32dbd88f75273a75013b203108594f56738f43404c3b6cba97456be2d0982b8647796126dd9969b4d21f0d242a16f7516e551335d3c041c08b45c0d8c486dce28dc0956793ebc4699e288f402b01ee2e0096bc97a079701f7abd3f65c88b426c98b27f292cf1d3cc5af202962db7e5dcc31a6a99ffb5b2e25240747be45c82bdb5c3e0a621bf3b63e0a6505e735b638dcb049a5a86cad92f640ce268b67211f11fabae30134f6d6f3e2c5ac19c724f4d97b05a6f63e7db00f5cac04aef8fe1d47144630be1b0a6300fba0650ac988b1e0f2125b7fc2b7a001978627d51fc57d33ff81f5393827c94c0cad9fdb26a814fec8ce440e5982677c90f75b13ae1c2e30270c35ad8ec23ee44b24b9461c819c3db9e6e645d9745aa50826cbd2dffd371c5c308f7eb8c38e50468c8cc8bbe7b41a74348b4f986f2234297bb94c7904e53f005a2f6cae1c1d9c3dfd3ec542990ba717ef2658e5a5f8ad2751830ac1a291cbcfc61f4b3b2029352ba788c5b61d2934d4167fb0a2dca383458aeb578bc75d95eaf9707128325de4f9a47ab460e613134de44e744cfee83ee002bf377558f05e0bf42972280a3a6f98594d535be3e51bad64b59eda31f719bf80b7b01b056ca4ca601ca5792d7168f0d7ee4ec58d79ad99db65b526e888e36fc865e4ed1b0cd1351044d4b0acb997d0b6042ac53855eacce524fc17139a2b193adfc4e204fc41cb396a8a8e274f3cca9c43af7596fab104e33a1dbf944f0fb03b0c4b994c615862a2c12e47d3a95a4bf2ead7f8067df9acc19c42e5944a41d567311a42f351468a5bb6525b0ec99b436467f3a2da24f10d310026986302895880a630e374a8f573120a6c38cb3528fd3d5ec5713478ed242eae62620761195170b486face382721504c23dfc6a1c7010829927d53bd9dae466fb1a2a71c6e57b95dd758362f0244c93f5a4973d45601dba15803bf5769f27757405044c398e9c8e2ba7f3e8ed38723bef1d2fbe71a9cc395011fa0fd48ab78f3058cf8f029309acb719d84285a0154228e4aeb8d9f6e24509faa1195809524931599cce511cf02d7001c4810aaeaa65dd8efea21a0fa33e40453ff80360a4b1f691cd3d8ea7bde28124b45a12de95ced59b9599878b5c92f68cede40d9578f8f71b3126c3e18954570a7e539748d07bedc10f3f1900efdf72786f3ff2411d61e6f1537071bb453900fab0e79ec91a6952776bcaf8e93c21b6d61d686c58bc0eb712d1f5426820388bf6407d10cff61932efdfb81f627c43f0c36ba711080c592d7ed6e31059b9579af9e8e0f425432055d3007478ebe97e50b60a9c9f71f00e6fdcc307a644927471ec6c6e8787e2b99cb162275f9acb0e7f16c1fa2b52d77b8d2c062f9c80e75de8764a3ff366d6cdac9b1937336e66f4a679263e4481bec86c0e785b1eda29d1c98f7f329babcb43f7a7ff23febe7a612f4eacf9e6fe4d0bc52045113ef7687a85891438002e2d3d73da0f2aef7356cbc3a07ba93d2eaffbc0674e2f325fdcf0705d0ddb0f26fc1909a12fc0995f1fa53850d09591851927d7d894c5db1de2ef0db5ab5c26d919fdd16b8728dbc8a00dc2cdbb076f052d8e5b663e46b1b7f43cbdf541a0125663710da7aa685770a605bff7dffe36cb3ace3fd9c2b0e146fc0f0cf06e19bb610fd9807e0309e83c1769c1898c8251a9fbe0a45b42c2090254d0a5c6c97d78d13564c537b79e14075fec41195e339643e6807c9698edab307504df2171b9d5bef0bb4dc79a7d06cc5ab91faae4ee2e6427a5d4908e2d621591f474e73eb3eeb18a4bc23b061fa8b0763ed9b05448e19c398ea5241e9c89e7e4b171cbe2ea9ea114bd6a7ac3394e75acee8df602199c818614a2b596aeff180d92bc22fd19960e938cceaa749f33270bc7831e99858a363972e7d529f01ac14edb3abb4ef4fb08ca9b75fa35b2ef8f69fd6a01f44229c477bb843738bcedc1e358e9d7c1df809fc0dbfa5117f885b465eba31c9ab658c5bc04db2277d5335c2f86e90b0c3f7f66ad94cca51e02953a13e62eb9b51458f453aa99dc4d90dca8daedd17cbebb09c6223324b9cb4356fd6c05c7b96e0067484ab3d603354424586b95badb57c4f59702d91286a89c629fdce31c5b4af1ee26481602c8be4228dabdd77f969de835b3ee2e739539ce94fa74ba55a276f7670774afb08b4b178b9e6c461a3ca5d4b41bcb9c51ba08d9ad009ca5750671b8389cfa54ee2f3430253877e35314f004bd46ec03b3f9fba51c6871e8581450629163fd433681477df3be5de2f4eda6844c5dc080f021f57698de3b2e6f72ebd305dae103f5da7c656d3a55fb8715b9dc3dee2559915e003d9addc1082a301a586189d9794b7faf22081bbfd2350e6ce53ea3a74a1ec16a5d6fafe436ebc73156e629c0ce696350c7624538cec6ad799ce221eb26eb549aaeeee78ea2affe251508808e1c5878d53b9a96e2a08459988c802027761a951c0c42b2f5e14f0e67a1f18c2add4a7f1ec0453917d1927622c291508cdf8ad2c652945a26676b6d29111f3c812d999cfae06fb3e815759cb278482a58ee64ba96bb9412e64b4668c96554304205a6bdcc42ef805e0729d7c7278673e28dfbd21d8222e9b924db0b2c30cf6c2893c0f42eaacc05a5195996f697b53b286d06c68c378ac96c59c187d376da4389eb18a823e12ebea94988ee9f69bd6c16d269bd87fd83ce03fc3d9caf4456f0449a3d2ef2f254c5e4f2ea11fd73c979183b3c0309be4af82d0f40cbdf454a732c51464df5c433972380fb3b370fdfa871c51a9881e5b550a2771a874412db47d662233c3bbdb7f3381e0894d30e310a65299112d087876abcaecb50b6070253aa770fcb87f971c4ba44164e6f2ec051cf87b5e9417c44ba1e3f78aaea84a5f87f4fd62eb51d9daaaf1f1015427df054552787473e8891baba02a5672f86b83bb68dfac4a9462c50ccc9488891aeee2bd9800f0f3a234760ef925b5375e4c49cf16cc8370795c804eee86e04c4bd62d9940f17ad4815f0ac8e3c5afa81266de5820aa24aa3d4191171af6836e6cb452f428173391b5dc449887a0564f929138222e28da2a07aaf297f6af455f0d90ca4618fdb88b75190712397cab616256864918142f0e29065d63e2b484e264f77a62b48f0b4796f43300bdc923866e09d6444da6a534ad3ac3cc5d63e241caaead402a9f2f4214b745d303b33ef21ebeea3edde8c9eb485a5267c0aaf09b0e8b968c99cf4bc549ca90e2f63c569aac4527ab023db8512c4de58b3cb4abbc5be08b318d9ecce522c8e19c6367f392f0cd692660aef98ca8cbb2929381197f8ffd86ec5c34c115381557ee376cc8149f0ed1687fa1643033f5141a5d2aa405cbdef35da4ecb5865710ed4fd203d7f8bfb560548399c975aa23974f7a99f600a2ed82556448169ba0f9323aca45c9f2f2de6b46bcc6a9491129de294c6ab547a474575b6793e1bc4e4b88a278d39cb65790603d28ea0c38f3a4dfc414ed49d5979f7de0873b0c69ea7a9e0690263ff338470d337e1d2dbf33edf934143e4d649ae0948a555d6f0433444beacdf5a3f54e795c9412daa0c4e84416418a682e37f348dc2ef39582030ae6622ae716f793bc4f1510642681ca7cf2b77d66fde5b290d826b0858500b9fe762e5516ef0cd8b2cf2903f9a166d3e889fc329e466e406f27abdca23748047914883e1bf3452a41936fb4ec6eea749f687c8bbc5f158531d37328dc15f106fd4358326bfc8eae62fd28d1847e6c2c651d76c6542011999a48d0e8b4df4a70e7cc08883309cdced62567b0a4f255544c5751064b8272e60eebcae3ce5c434516fe84a38ced3ee3c92b01a618c20b600d27e988eec8f79173e006f89bd54805675286f9845a958bcd84155a8b9b240ed7ddd908414dc60d6b043e5c5fb5fe67a08cf2326955044af6d686425386ec4afb997d79090e5607eb7eec10570a41ac419d8c599196061ec360e277fc5d146d1568682e009f440f50a44dfd90387c4dbd2a4d6efb3f19647725dc3a2f1491c653148bdc2b53668f43d3f8c54c5992d75a1bb043e6cfe47e26c18ab33e9f357a82ebb921d55699d72bac81d223b3919f2a07cb8b18272c186652e021f8842ab78697c4065c92873c6a85f63244457c6b2119f1bb58805ba391b59c43ace977aab99099d0a246223c96a5aa104e9785f337090fadc790faaebb86332133546da973eff4bc741d78e9a4a0ac4857a5db6d3b13f26a1401ebe4ebc91235b680c230eed27d9a61967eee999d85d1a4c7290076e3c46e46836c5b06f484d7a1032d70f94039d8943262ad10b0278eb5a46ce060e71c800cd3d86efe3950ee6c7fc28afa48af8fa65239c602822d11e58245efc3d8ac1705605a778187123d9518c902de68b004175801123ac9a2bc12b53f7643c43c7a948f9d61c4e6d250cd47d701eece7cf6da870971010689a109a39b1c070b2d0408c2e3e7608ecab871fb090cf1c58e8294efac5f897131772188bea9205ce07a40bf8b63a0e5d452f26927ac57b84dd1cfb37f52173dbf127db8254a9592c0400ce9be77d7cb95faf4bb88b1b31abe7a7073fbe9348d217cb8661fc60278e246bc5d369c0ef44ff4cf1a662868f1d46814d0175216a3b6139520fecafb8f6e54eba23b50db7a70d0a86468bf739a91b5f1e902a1a5d1da7c695f600e2c4b2aadb79d74263ddb0dcd099365c0df6caf28b3bf5a252d5d72202d56dca986012174093fbe264906917f239d9b87a664faadf8f2c027d5201b308eb7ffdd9c28cbc53d6f9b392d60c1b169435c8cd7f7455539c7854bfb4f69b02977866cf372d521c60a4b3fb07b28c43c24f08c33b8a865c3a21ca82e19efdf9db5423ed0610108d30bf35a191b5131fca233b45e996ee7deb58459500bb7f828bdb4711132aad8e404728520eccb18be7231978fc178fb63ef7c9578c6a330acb2ce9549760e575c319bc8de910a002984862ec1afc7f4431b0a727184d14eb8dbf1bb0a85ca023b4f84aa66c94c30332dff9ff1b3600424338e04d41810a3d1a00b277005428edad919eb0349d2c0d7597dffec7922156abe9a9a2e9523ff22eaa582a48e697a1c811d5c03e92eec621ba7a6ac46b74dba4eb0c466c8f95624b75fee651fac38cf705f1f55d9ffff9d6ad39d194a5b0e853d4e045215c303a0fbabd35b0e3c8026287c7e66b5034f8c224303960d55f43741c6a0184a435289d9b67f4f99db946792d50f432371d57c6d32a2f3e2bd25439061f0d89f5cec1f36a3ad69908e03f1f860f7b5ee63e11d8eeca6db500db4853a922dcf9a11af0785c58bd9893c68c630a040d23c48f89c428939ac7b40b0d2716ba1cfa4db881c22c5669aefef09c149076ccd49b6f9eef060aa8c48743984459e336a9447d3249c2a488041950736f5ea3959068d6d8d7696d4d6d6b109476daa295eb62d937161623e1b9db2289b5f5214e051dc72a04c10436a0fdb90b406784a620546dc1a06337fdf3bf7c317abe25574a6a3fe26c15d520635d5e506abecf32b16d529a418c698f54064411d066c5f3ae95d1938c928b204fb096889f18918003266192afa7fef00a008134815c75be2f095c1a608e804b49f2e1b84b14008895c02646839f24a84eac55530bc494b40dd7f17c354d36036fe10955788b9b318cc20022242fdd9f5da5ca869398e3d7813ae928ae900d943c7c72efe6e0a2f998497065997fb17406c1004f6fdde26112e45bd5492256dd7e1aabebc2a7b1732b82abd8c02d041451dcb7470d96639c2ee2ec9ff9193395a00a6bf91bc1de8c616f26e6f9d547c31991b960dc57971ec0e4bc7d2816c42ca023dbbb440223d9a8c3470fc07dd5af1e1a0cb6a0ca91509c5c78f43a872801922fd267f09240d51290dce782217de6f84f5583c8a63f08c7b22904d6b180c187527c7ab8f4f36abd67f9071a1d89c366074f49b56c79ebf756088b9a92a12878b01616c229f2b287a592847106a94511e4ce003c9b287974e91328275c1950ebe6ce047c4668f77e4fe0d46e9af98189b5b8c5d8739a8f1ff3d5f2208d76184a0fc1c061dc1f8b7fb32f30d1bd7d29b798412fa8bf6102f955c04c8b6c63f6dd6ad11694943486b0f708860bd6c2f083825c294a12e15d1890e70d92ee8006e994517398288a424e5ed4fbb9af96f1793291ee329d2de042607c46ecdcdcc955062127adad5317306324f602ab66bc0aa4aaf228264e3bf56082be977ff311ef41bdc90cc743b4f4cbc3b708d618c34a991a06094e7b634bc6d287f4744c0913535fa749dcb41fca2e61ab21bd2505972f4cc0647a04ae5b9a303273171512bb28f13684d6479f445f398b57d9ab58f5263ad28950021590cea4529a818c27072291b6ee251390e456bb86f1602b804da2820d9e1d158a2713d7774a55b1370a2e4871667fbad731889b5c0e57a94541430f8f44dfc85c4b7eef0882a691b9845726999333bad52a019fd40ad9c4b660b40332cdd8cfc5cec5d0513166040fe64e4b8845c8e32d844cb9e8548bcd853d2bbcd68a9d20b18e66934f0c64e71c79f99981407399d0acc664bf50dc726b34079326e9d23457ee856b7bd20df6a32d71bd8ec93a7b35650f8eddefd2190dd67c4be41d3631b4196d081471b22da94ddfc2a9294738a9d067bc616c11976d425cd58e708bf6bfb2a81a190ed3bf551489b68b98d468c2454e18d415085bb042a8049904b01a219e6b27ea9c6f47503eba49f3f163397a838e24ce3f89fb84726ac95c8e1787b31e488f42c89a7e6583bed5661299b7879abd52b3a10599062c83fa912298841fdfaf404cd02732b9822dbae0d7ed8e78d9757e5ea5517fd09e692f7274455fe578a7417bddc19ea72f6d4b95bc2bceb29412fc742ec3e268f2b1817cf56eddd810452439bbd83033cd060b54829096160d373d3f2935e89ed7e2d154a9ca6e0aff7eb068000fcf9cc2b10e04f18a187b4b6fbad1c0f3c2e5c9c5ad740b8bebb730d4a444f4b8d4b44539410cdd306c5491c416c2bad99b18f584bbcbf2f48bf947d36c1cc3f128f28eaf286fd01e85ade7ae3783d4211efd420841bd61ebb80568f609784f9c3c1a81577981e0bbcdb6436f656376d67fd55ce225353cea5875a00deb2b9e4f5eb5562cb2cdc1fcb168e44f4e2d1729515fa9fa0a59473e03ec49637eb7b0d79a2d3f37e088fb1f65404aafae2f0298c2406314674251e795bc9086d343b706576ec9bb49d0e373931ed6bcae51e79b600a4db24d533918a8a6b43f455b5fc24ff7601864779d37488a0586b0a1511e806d02ba84bbaa69328858ba0b161d7b73097b8ac71d505d2d581d6660724c8550ee08f038ba02912b0adf2bee42a6aff9ee7b79d7dfc17c43393c3e2d52899523644df394fc63ee8eaf8c6fd0d509e4d1a0a10ec240b638b74d5af5100d7ca4088243368e5b0bc8fe59580a4cebe7cb864f9dc353d52e6c38d59d85e92ffba188187b481b888743a8c0002c66aa7ba2346db9ec61acd804bebf9fcd46253b75dbf0798e6195ca5a42b6c1f7cb5664729edcfcd90ebecbaf0526bac9b064c7d2b5fe8ea0c6679214d3787800f7ab48b129a01035128185b7b2c3e52d06cc6248b6c915e54804b5ca35f6cb1204573e7d5e3835a16777560b24c4a667f6cbe7ce12cf9f11d0a0419d8c097906c1b529cb30cea1b8326c9e0a3ad597be700a494029d1ed597b1637013099c95de2046c2f73a7473d1e1c19888992c08786c43ec8ddb536467231f589cf82cdfd0b77a24e9f07a6b5e0703525cd80c85079188b03bc296e701037e81c767d0c00e7769ef41036b80a8f4466b8344c64e6381a951e02167e63fa9ae032ece67c1f90ae5a69d13f958e148df60afec06617f61285c10f06140468444461e1c5c9eaf0b3390698780c7c30ca13a591ab53638897ebf564917c6b7b7236a3896b7fa248910d1721bae300bf9f1fa0b36303d1c3a07084386a967bfc7a863b481594fe8048330e417d72fb684bc13f3bd1a4d9a0c8875ecf53d4079b55c148f44a8af3d6544bedfd7b91699de0f2b351022809a31375c758a6fd46f67927c0c6ef6176aa08abc85cd3028ae1636865bf0827435b7357c8f5e5e3db69da81408d3e4fdc9fc93bc7b97a9d8f131b62b35609798083d64886b018f7caab6e73c0bf2b8a4d45b5d72286af2df642cc97bf1af2032d256d8f1ab4701000eb5881c3ca6e0a303a99977fc79d4247cbaf7feafbb6cb032ee5ee3669b5da897cd6db93e67d9bfc4a87d559352286bec7c7c7bd153e75b510fa0029867c27ec6d4e1c59ca5eaea24dd0172e28728f81be6db3b83b52e4e34d730af0e59b6c8d93c201ea657ec0b23cbea2d1c4f17ee83ebf2e3ebe87dc3472a72b054d2a0f4880b689d8e655fd0ad838b7687b762f4c05e9db279485cbdaeb4ad900d7610d2461c2b754c2562f3843c36fcfd1f7524b64a75f3334555b0fcd690ea5e992eec9436976ac7852ac8ff84c5feec5dc675abda0259b2a7a0696fb6384db12c995f0de06f3bf754b1cacd041f99b9b5b799dde1ae052aef6725582397e6105ca82ea7c59b72815b4fd518267d7cdd33c0786a169f8d482f99358e8cf15b93507643d9a2158ca38df0c7328a8f8780f5beebdbea7df3df6020808125b93baf8f9839359aaa132171938c0cd2499f9a1c3ecfb63d4d8484737a546ab98650bb32ac369f9a4d544c2dd5a1043704b502b2fb546a82d574b0509551a2020aab0a73a5e36265f8b49a5948585bd6272164962cbde85fb8ea8ecdde8b43bf850fea080e67bbab64baebc954fedefcb3c0db124053caff01a7db99a7a84361dbee3e87cdd16be7fe8b09e6acd15a6626110ed5695f56e3a339d33c0fe2166ce39e4b5ee9bd2dbd56bf26acc9ed36593b16d67a4d9d7b706492579563c1ee9747ebdff9ba2283ebcf1f4848f259cb341fcc1b11542b1cf05d61d99af29217f09200ffc42d0efa6decee76c4d5250598fdd8d40f4a259efc49c8c5d72f47cab066c666ea72d5da793a203b16206d4280d580cd38b9806cdcf68c5983b5a29cb003d51e49577217f2ed5c0b63c568ced3d500c173cfd48851ed197435c569afe5c59d8f4ea367f6a2d37c3c23c79c3ddd912de050c32208f4f11b9ce4e4c1bac06340289c7356252c85acaee09afc6b6a8cff6411f34490c3ce5ae03159b9fb29414b19a39f15f1456af023b3f3d087ceb975e08a0f00112b62c0164bac4305986b40e93a8ee8fd8c7fc0ce8dc44d63f1a95cdafd1bd860ca420dd9e1a75ebda7a845ea35c6dff655d39ca02b46ed01023ee8234cb57d6ac6e05cd7fbd5f72faab96d872b8b7dfdc2f11f3d4cb4a9b606033ac615aa700ac2f0be695a5bfeafa3ef15eba57c1833fbd8a7a697bb6b02bca0f92f79bf0031417a939d974c392ac0160665ea3171a1912c30acc2132faf0f5e872be48181730c01e4f3693acb0ce5c26da65436da31193872e0bc394fa9ef17289d592871d7737a38b7f37eaa24891c470e523982640a6c0a9a70bbdaced20cd7e31272b716b91b37fac40a0dc912816d414620e281ff37967340051cd6be7537155326f51443429429fdad9593145129a0fc3c5361e62b7bb141557a232aa89c4b83b2066929f8373e22364646d10ffeb7718f6927f48a2174761c6ffa2e4025491c3530a08b80f57b0b554d7a05b4a48c1b5c0487a8649c085cdef2dcd28af01cea5d8dc00e781bced838a7603e1d42520f28adbc92908b7003285db944d53fbd8f1415d4222da184cb1cfa91a24c8bfae8c383c56304147a550b878f15782ce5a175108d01abde47020e4010bb6285d9e3a4d1bc70256675ebe0fced0e83439c2ff1194a224c20f16c34fa2587288b2121788605cd9f8551842565850c8b27a0c5ce2aad4d718e44b9eebd825f7188ea9900dfed56e03183d6f93982db1482643840bd1795e19d16131c79df07ea022e3424719854502d7d5a97c7f683838ba3d336f6f6cf0d31b4852c082c6009417efb319afc5b9e8712687360e5a0c1d9097b60cc9956ec9b2c102a0e81151e9eef00655a23501f6c870f71e049b12da20217c2dbe6104868cc661dd6ad3f1f6217d7390f8554803f75a662adb0c51822f238f920a1f404161ff0ead898e18fce23bb44a554ab72c3603d8ba6bf6cc9b23263ca8f0cbbeeb48eef6921816d625ba4f4dc8ca2d66bc7b64988313c6741e377b231a5876498d421bc7713a253832335d683a3240905ae556b535606a12f985c5800baaef05250023a77fc2e0d5298496cbaf77b365e63f3ed57e6064e699c0bc1b53fc384f399a82b03b36cac6544dc464f57c04249cd73628934f410200008ca8ed5d137de4957669c7034b4d29dcc90682897e5b774083e700b77656af8206930f1b6d2daa519da20d7d1569c2c4c9afbb3ef44939b26ee1f71ce98fa58a6ece66d89ce665b69014e0515a9665dedc011665cbcc2ebaa31bf8aa52452facceee361b468a9bda0c927d50b36c34be36e9f9edc93dbd7eaeb170dda31c3d1ea201e8e8967255f252140992134ed3aa6ac466c30e941806feba473c1c3d1020b6b601f1039089480308a21c18c219393abe544166e07d7cafbd166a683b4aae5caef6405cb36d16dc829aeceeeede9b3ab0b4cfeeb76772909602f01be420f61b743a829411ca91a2a50bdb922c1c5c878483568575f23f9265afededc2281d2efc545097f4ee2148c21e270836a8397da7f06081b3d3644c8d0c0bcc98dfa7573108a8c1c246a3542514a19199cd17fe1e0e2d7c4459d3c494bd408715068a687805d42485410a486a525858a0ae7b62e94744c85aa43f2c38116a359c24f7648e212e4b3bc4484145214e481e05dac68a32110d7068a1f38daf4e1714a9e64582f478f95d28d2e3559b3436ac221957c6810e09d78e926e4f01357c6284e0eab86972f4e505a7c415bac8a737b4201198113a0001cc77c0aa1d0bb8b172b311b5d584f764813c5b9354c151b581ceaf81a19634bc08ea507865a502832a93a6473314e05b47848e52f9643490444b059a41294945262c32a2c46bab47a24d7bda220432d2287d0c1ee01497810e89a514230248a26d126e39c8119cc083a3af471490322171e9e12703045395045a9ab234d8f1a8c3923e78dc196512288082ae4a7902a19260a6447dc2c19829c0b13a1eb850ac2a55610a0252e2388952af623442aba822c86a4086445a4c065405a214e246d7d9131d666e716544844840da690406ec90638d292e61fb16dcb1e65602862a376b823518d47c88148f1637a75681519004c31c481c4a3b44dea7221c4c5576ae080e64a26812760ad4fbe59710d5060c63d6924815fa50a1e489a417108dd5085506430929593f5269252df1361859a4460ed106536fb254a86fdcb0d12716f3e2c2589f2c0c6d5c0d1dd4b16bebc03b7708820c17ba149000165a0d065881b81e01ea130737bcbc62120d695e98d5999466f7230ffb53536aaaabc498fb74ca89854230b8c45ce08280c314b54b834d6ee6dc12e89a2441c396583e85b5e0eccb862525d87cf91dfa8d75f080e1014c6ce21f8d1a2022992bb9aa7c339524e9b89167ed2c512032af27af547b7c58d84c0141f94958760280837d0d64f1c1a32d0b0f370e2530b94d60c30b97855666a8ceb048cf68b2bd3c49407cbddc2a18a02f9a606451a5290f8c491dd8f0dd422a59027166518813c9081af024036c55e952c306281a0bcca5ea12c22852064f86390bd2ac3133620564aac7111c71894ef87e7e3ea9e90409d30a3820bf3a4a46806c5d40cbd878e090a442451c0c30d0284c031934f091b2a680311a43cedcc89071f6648607d80d02707c1695a92489528f0e5e6b3269756943d34542e2200d9a417718295a53a14b899784372963066169abc0049324907e1dccc4493181401a1e0acee0412198273cd22251c10d4916e85441d030c07f5812d400432956b44f0019a626358ae0420adc1d071c44ddc57054a7c3282b810c297a13011a27597226181538a555034f9e4b3d3a756203033ce3095d8a48284eace9c292c053a3868358a6a2161e446a2ab80e5887fc5cc0926586e80bac46dc03766cd47ee2b4ac75b8f088c786f561c78bc41a0bf5047bc294d900e5489792572eee4d16ad1973463da9f083d467b8c988e3627445fc31aa3107ed425aab31253ab47f9e24e0e0c20b50212669b8c4428229118050158b4d26452a138ad18f3882441d1c971b0ac84827727271b0b802a57853230c893195102ba0fa8c8559a0a165d5258d9da61808505265e68d1508ef0fab0bd9132852da1c40c84b1090d55b88cb2c890061c03a878e3c61eec4ee6068e185a50c9d09ee2a9032a56650a441c22e147c5d985861958666238b9a1e24843c0097d8520082ba3b1e74ac613180fa86078e3b08649020040368ce9c59d258fde110c78d89a0cf7df49d088978a1c20187292aa2324cda3a93e10a949f2f4bd22f37b46a024c5b861c3d5c99810343ae4f182528bdfb819c07371224c0169761ec4dd28dcd9f5f84225a880a584dadb030a8022847695a3e99a1d2e5c785026d0a69e169333328c8e7b3a51d4c294a254948a43424d880d0713384cc98169c1f2d68a49cf171c38a5a1ba219230ce80a83e3220b011a66a2e65c3a63041329b70e6ee9c3d063d30027640216c13ad608b332c5895061cb0c219286583a522929a30f062e612658210bc18346872cf115485ede70403268c61c466bd232338b15771496f0c8aa792c6254a6064ca720a7d7d0994d01860aa95ebc703480930fac254800e4a0b26a032304b244729207c55009a44316baca66611de0a5930dae2d1f4e99b96462489fb20b49b62c0983620befd3910a01a8033f04d820c28f108dce889f3f214e022e1e5198e097458b91b04fbf0c44489092c093124178b85a1179202963093a502a8254cc19b14f1a82586a00929e3b741eb5111a29440302991f5082a7118fae20c0298c47c3439619075c492998cc28aea52f75c6cacc906634f18264aa803c079cc13131d356814f00217cf800a90223278200d638814ea1b53756105b13c8699249482a895f454ac31263991aaf1513a80d656065eeec882084101c0de083d51895328055272294322c461a7c39b075f7008c365c19b46829a05cd5f3ec974c14b433ef9a86c7d85a086d6f178d75b44ca4e93868e78bf53f068b4863d0ce17bf4c1b3f3198acefa0f03e7e3968e78b72c6616c4cda5e4c6ca5b38bbef66c64b131698ff96060c1a79314211d28e463ef051e20a61a71b1882bf4a8d2dd16169d52b9e073c5cba61552d6d4113cede9b2409a070a8c22a23641d2a8044eb568b3a9506251131045555cf2013b0e42f2aa659ece44c51b45a9331c660e16b0f930f801f6c64daa0c2c07163c44052c60860b1c00c627475ea5c5cd09029ba2c22046d3e6d1d2526607180a3ec45a78081680645dd5c79107485e13dc220a04100156e1b8e533976ca294088b4899ea0f9d99039b58cc7825259289422944acd07025ccddd8084395dab0d400f598127e1c92e0c691f01ff2f86ffb1b83f5bf87c1225dcfc1f81fed14f1a7231545461313fb325dc6e67793e989b839e7bc64b1a22cc5e2e2cadbf6c732261ac76cbbfec37fbb3de9f1ab7bd48ae8fadf118d44fb1ec2e53c14dab10b5c8168585858f21ed6fe58b7b6ffe1e90701f727967eec878d847f94f2d1d5d100db976068a5fded31f917ff8d56fc379a7d0fe1e47f1f91b530be3dd99104e7f53b37e3bd89487b181bc7ba8ddf4627f9d12b07def6979343da606b757fed260e6f23b2f86fb43f2423d2f417d6c9686c65c57fa3cdd9bef86b3ab6877474cd96bc65b439dbbfcdd9fe8d48d36c9f28a3057f7178f3307ba9a245ea98b37d31f86b3a16139bb3bddaafe9b257afcccc6ee32fde36d2873c66cb79e28bd81eaafdff22073109aff335da816698b18eae61a1ed85c4b83a9a3897a5d0f6679c73ee262646cf4634db0bd95a04eb7f9c8b6922d1df740b3b5fb46d4f6c71a2c81576be68c7f1b1820f55c4056b3aae06daf7b08800cf5824fafab3c96832f10f71c89eecfffa456c0f8b6262b6f1cfd1b798982d26f6ff1cb493fe48cf46b4644ddf5e367a35dbf6c4323be9d9c4889fee13c5e835fbe310dafeac458b600b31b13facefe0d1f6b797e5eca29858fce9c4c4e4db0e1eeddb076fe3b783413afa18b4f3c5b5b360b0c597e93219ada61bdec3e2b0be8d7f781cc6bf5e3b32687f3338198294eeb6fb713cfe7d08c1bb66fe8b35716ed7441fd366b81a29563ab087fddfc2849c3cace1b1122be26f2318ff28067f1465b77f37b483bfacad450926a31dbdda8da483c7622d0c1e8b4839bb183c169164f2b76b04c5c482dccc2fced407db48dfb4912eb6f166f06200e7620fd335bdd62028a8178cc2fb056f70ce85f1ed8bdcb46b600ae0fd6dba1ed219df08ca685162000031106c1a84a681153ab81a10792027c24f4ea22a259ebb9ef1d49c0d4a32d5116141499a960f54289c58bac4891366aa6b802e440c18603684d1db13160e34181527c7d92492f56dfc5a8261c7622decc2eff88f1744379cf70ee09c2fe0bd360e0ae09c13e1bf08de38ef1961b3a602af72c7ae819f361a3fdd6dfc7474493bba3eca43da8698583018414cacfe44a22f73a367235a0bb015354df465626211c4c48276d0f86579280c0e8f3e78b46db64cdc36dbd87cc43e340d3fb61d6c32d85c3630360e9cf306fc679c80737ebcedb054cd00f39b61a2e2a5d85a1d5e8aad2529c5d24ab1b5ad524c8d12e7a598da1a5e8aa9d9715e8aa9b928c5d416705e2a2ac57e6957d2e24ab1b412a5988c3c9c73194d4a3199ff646c88a1a914d3c17f318afc629c71ce4bb1185b9c9762686ed082f0520c6d8b73cee32bf8ef4cc79916ce39d0aefffd8bde2856d2b7ecc962b11476580adbee077d8df4c8d938e6e66be4d86df7fa1a39762cc6378af18d627ca3ac464f8d016a38efa5e1bc67001ace7b67cc70de2b43660ce73d31616ad9e88bdfcc38a3fef59fa36b3223bdf67b9b701ec3c739e7bd768f46c18064a76e01569cf31e3c644197ca24c027ce39168e639b1a06b65e9de29c2f4023c600362d3c82780058d131838a932e79a080f260a266b0420de7bc97f602b0090a0928aa38e7585c531489ca42401e469cf30605609980e748cc950bce794f53aa2a412ac89289e59c2fd812e7408bb0900f4b9c73dea740a81613490f24ce39cf117c2eb023801f95789898580bb6e3718c7e1313fb2a6dbfc217bd8d9c0bc66f039efc3292b55ddf2992471e868781e37849152638e73cf8cfac03ef4033eca6e95af6ffccd79eed3d16eb33bb2f1bd1cad08ec5fa8ce8db92f56d7c65ffdbd46e9a6ef302c6cb172f5d7a5cb89b9e3ce4bd1ac06fd3c4b8b4bb91726579a46938081180f22f5f408800b48dff782c16e9782e891e078f37e2062fce4ff1c0ca388f15af4125ce09358ac4796fcbcb5b2081014a8fee0020e49caff50a78f58a73de33f67c832a3d6e343087f3b0241a1b9400ca19e9baae04da30d22e85b1d1d764bcc1992cac0e0b50992811b487c0e49f0b7ee869e1bc47c003076c32cd792f0be7bd01b070debbf2854509e390681cdae0dd59a108b8638c6719fafa5641f4c3fa2ebf902ee122b28e8536f218a46fe33078e48e5ddac5da979f8e86d1be4caf9199fd61fd56ca462f26061791751919e2d0cf7137b218bc6d4f8cbbfffce948fc3a3152760dace9dbd7ff1ec631d453f413b3e3fc0fffb96b78d2e8fd47ca9e26027d122e7dcc794f00ce7b56b692f7ed65a14c1bc5c4e46fac9bf1657aad5785f31e15de981d6e98fc4a959cf7793740fcfa988479627a157ead4fa6e3e014ce7b527a0170de8bc2790f0ae7bd279cf79c70de6bc2798f09e7307e905670de5bc2794f09e77c412f09e7b148808ba953fc12e70f70ce7bf0dffa4afec3fa3e8166182c87fd617daba9c5c519bd7d7bfa2e79c4d9713a4ab0611cd0df1f58df368c748bfb355d062c819cf7901ce1724dd7d9b66713de1ed9aab69becc95af5db9e4cf6643f5401ceb904fe93e3870c2f7f6893122cee8706d938e7366dac5193c73d383288e001ef47b7807336ae26e1bf4c7638973fd1dffe857ddbc30a467a45b4f8af47840405640fc459ac28e561b13784c74608e7bd209cf780dc71ce87c73122d197a5016fe4918efbff451cf27823e9f20befff67e09fc16cdb13e3b21c1ec7fe9f83f41d0cfe3f276be26d874cf6ecd09828314707ed21d0845d0631112cc1ec122382946025927f2e988483c1a071b8a0130b16658d8c1744e9e06b7f6470c216fa3a062a7e619a38e7b491c12f4c0be7fca68d45a431d84268fbb31f45f917d605fc812902ca1fae7f603fb01bf4fd032b3907a200c481be347e37b3b117bf139e7e27e8b5df09bb21bdf63bd175fc9958f53381066844d6257d0febec61697be1cf041bb246fe4c70cec77e2516e0bc4889b3121b803c7a107e241471b39e89b1de9febd1c6618f6d04155e82cdf41a5a49cb01e3fcede5e05dfeef1657ceb41d976366e517de741dd00b91756c6a358e357e0dac6b1f97f6a7f376291bbdec69a26cfb3a9b16faba2c127f2db48fdee84bda8efb4039e02fc1c0de88be04dedf16de43613cac7ff10b8f1f28671c0e8ba5e71117a7a3948dde1edac631004ab812f887f56d93b879c4d943bbfe461fdba0e3ba6f241289431eafd98c3231313bf9e7824122f1d7898989891d6d1d3c74945f085686d172a5fde98672469ab64b7bac04cab27d1b873efe47fbd775df58a304d6d9c7ffe778c4cdd1f459f21ec6fee8633b0ca6e9e48c724dd79546b412e8bd6cfcf24daf8dddf49abfbd59924cfef7101e0ae99acd9eb1c8e69c1be13f1e49386f3117fbfaad85ecbf708c86212616f4415a2e280b6f7958271b3d1c94bf8d6c71e6bf30e86b7f8c8d63aae2e27a759cf7e838ef2139efdd9cf76cce7b35e7bd1f9cf78e9cf768ce7b46ce7b45ce7b44ce7b739cf77c70de1b72de1372de93e3bc3773defbbd98f31ecc79cf73de8be3bc17e4bcd783f31e0fce7b3b38efe9e0bc9783f31e0ece7b3738efc171deb3c179af06e7bd37ce7b6e08701ea88d06e7857a6c33384f1b7b5b9b9103ad6dc6d96da4ef86352d8c53abb1167c618cb9b9bd6a41b3b63138b61ac11b636a71655ccc391dd71a0e9c1970ce859cf328fcd723cf8f6b08e75c68fbdbf8c338e7d9f0e241fe103e24eb4ff74be3b01c1ec77e6c047ee11b70a6cb193f2d54bc93961b1e57e1507e5a746e5a64bfac50b4b02eae4cc260ffcfa5301e82c595ffcf63f2d0b3fdff0268d3b77d1cdec7e290782cfab838f95844c265128c762b8171c7e14ddb441ba9c2048a524579a2445196285994c7e11dbc3f518589e3f02e11137d1c645126ef4f4c91a204bb6d641d171757028fc31b2ec14c1c8777491b4b94614962ed89c3a2115987dd46ba8e5b8b2bbd6da48746fa38bc4bef6f38eeff3918171757d6439a06711cdef5900e44f96fe4b148c771443f236eacfc7f0e123d3d1bd13ef1ff39f86d0fff3f07ff7f81f6e7e07178dbff98bccdfe7fc17bafd238e7b29186ebbeb1c2d9af4217e7143c71208fb81f853afc4781ca8f82f047a1a5f0e03781525036d2b03c0c0639e718f86f42130e94bf7148fbf84d88ebe2bf092ec6244ce0cb24ac8826fb4940c339e763128e9cdf3f09619cf31afc1721922fce28ede49f1bcab61bfe8b1000f0fef6f1389c7333d264757fadeeafc9f297e531bbeeaf4100c37f108e10ce7e104a52bf0775d27e0f1e98c6df03ae88037f0eec8e9f3814d6953f07673f075df74f9aa195bf068a68b84cc6757fedd7000d07fa18fcd780cd2661f66b600f39968435cef903de333907cec51e1ecabf581c96c9b8d236d6b4fced862f4a208f381d49dba795c0ba243cf4a571680fe9ec3eb21867c7d97125d02e4dc81f2c790f8dc862918e4b7cd848d7ff58820d631b4d36d26445ba7e71dbc334fa0deda6d76cdcf49a5dd343e2cb3bf1e39102f288e3f3e335e1fcc7bbf1e399e0401e7141a1ed853f5ec78176e9d9d4dace4ae3d86dfc6e3fdec5edf9fe6eaf3cd5aff400893eb679c4c5e9288dc32fcf331df66515493f479ba6d94bd0c2b212787f399b38f4735923e72491882c0eed245cfe3f97327dcfb65ad98d52ce388c87456f4ccab47d0f7ddd0d973f4c283714965ec537d2f5aca2aabad2c6b28eaee54abb88842b81717165dcdc8c3823d1237fd075374dc71f2e67fa1389be6883fdb0fad3d1b52f0a63e3874b1b71257d979e2626fdd1ff635ddcd1abfd38db267e239b5ad98d7228ff22d2fe6db227b3a049858f39e76f9c63e1e09c13b94f060dcee9d98856460783c09a9ecbb8b8d29795c3e398af9163f0ed6be4ed6d399a38177bb8f425d85dd3427b1682810051d6c35fcadff670988dc63666444b1289f4b134d24764d0e863e04cfcf63d2c3fd1f6bfae9c8be93aeef6250b16659c5d22ed8fb4eda127da377188848f65d213c36c5f7e239d240e8b48dbf625982cf789c01a25d097437f8cb341b3c944ba8e1ed6d9e5af33fefb1ed6bff6c66159dabeb43f5dfddd4adbfe729ecd8e6f987a60a3be52a8382f9622a4a7941b2ecb469a8c734e81f321f775f12915c739fff0eb522b38e79c9420526e38b77d2d17f68dc3b9fc35ad56023ff2873fd265f2be7f7d9463fa0bdf48c5a47ca3fe8cfa316a06e71c68fb5f7ed848c7bfbe69a89d48123f91b64f2489bfe86d7b5489510f445de29c8b1ac391c5b28e3e93bf8d0c8a1272cee356f50cc6895239077e397f2c8a7ac023401357d37172ed637b2847d024021c6d5fceb3bd6c1144085587730e94897439ac4325e172a810a03c857d5ff4f13d948d25283040e3d0cb814ab387f6afe5e8fa58d2c63150e527429fc024ebfbd7b7fde988df2ed2116930f9ffdbe86b8facbd3046bad9c34f427b58be7d6ae57ff46c3e083671fee9dbf8ef7f37741313fb72fef8e5fc1182221c821c70c02431ce1613b3e390743249fc43b94f948dbf3451a2943fb24c7e30e35078c7c61925d0e863646cc22e67dafe72feb679c4cd338cdfceabc5e92893f0fce5b28e269649a25dda43a22f0effddd03e7eb9fc489a962bc7ca21f1581c7e394fdffe68d7952692f7b1f8c38cb4b104ddd0ae91f16f93bf8df46c9f081387b5afe963f1bfc9f4da97f36cf4da27c2fee87fdb4dafa125e1f22379c139af08e7e5d8308aeed74739cfd6a2c58a35bb46d2b0506ef88dc1a4ec7f7ddb9ed8a2c5bf1bba95602b4eb4067d1bd14ab01679f45ff8ef866e47ffcffeddd0edcb79364d0d38e7329afced32e0477ee48ffadfb39c9c7f03268d7ef88b473b2eeeb68d432fe74bfb1beff8d7c979587fba1a691b6bff89347d2c655a78ffd2ee6ef1b6e2fe76f0fffa86c5c482f2ff6effd76f6435fd628ea6c96c9b46b38ffef666c92fe3b6fb6bc92f43feb7edd3e088f61d7bda5882d932f10f3d4c13619936b29540a45ccadfaee9bafe3411cc260efd5cd674897623bf7c278d1ef8e35ab4c815f1b71177a3d9bf948d7e58c695943c01d5ca6e504a44090ce7b1a3a41484920cce398f1d25983c2c75ec00f6d4263d40fc65b787b6dd81738e88733ec77d36c8f0e171ccd7c831a0af91bea66dfbc7df58a2b18d95c0e04d136de0ede9122c49ace9b9e4bc9786de367d66fbb4ff5f24eb4f37247e33dbac8e5efbc4e3b07ea3dfe49f66138963b61d0d1bd1feed6f3739e3f0367aba4ffc6d35e4a1997d1b3fdd5bffbabf76dbc334b3a427fefab31d8bf5d937a2f9db9bc9fe9f15e9db4696f9db9bd9665f1ed6f5a79b712cc6378c686ec5f8c66dfc45b9ef56cbc98db9d1b311eda6896eb64ffbf277938766dff642b663b13e3b16e31b377246b2fe74746c0fcdfed98f8774f577b34fb406fde6ff59fc43ed47d1ecb67d9a6ca4c9cabe4c97cdd5be58ffdbc31d8bf599b18e366393d1d8ea3f241eff7f71dbfdb5e49721db3538db93018301549cf39b26daf27f1910248c6f5fb487452ec6808be02fe9d93894fdaf672f646eb6e39c0bb9cfd10abb06de763f06e73db433ce7b3038efbde0bcf79a71de2be3bc47e6eb8d71de730186f31e009c730d9cf3c2f8184dc063e3b7ed1f948d7f2ef630e77d22d1c7601020408010c1e8c94ae0fd93773d94cb3fa334fa7b58d795635a8b0c016de13dac1bfadaec0d9e391f82f01f03377a623ee2162814a952afc527fe6b993814c6bc519c733aee4b4489f3a0fc932b0a34c3be71288c7d312cecc842fe3f4a15c77fdb7347fa8df76278f4651cd95c4c13c982a59dac3d1db004deb4b1ace9d2fe48629c241e8f63e56dfc455a4d4cecad8e361e8afbb683435df48779100c1dc039b75bac48c240bb34d2be468e81bd2889f0d0b691b6f11bbf4d0be3b246d2384aa06d236f5ffbe3d197325d1fcb1327ea7cf9c94aa03d47d3c232eedf058db4f1cb49f88efbc8fa8e2be9bbb487c263d1df375c0944fef876e939efad38cb7f3744dea5e75c8ef31d9c73139c37e1be4141ec1af885b18f837f58df29e6629ad8c30c60f3d38187cb198772c6e1a0071c284810e7bf48db8208181344acfb6b82380796267e4d174b9449a3bf4918ed4fcb81f870602021e781cc401ce8062e6f12c6d20614a702504913eb02c42441586c480345a8bb4b7b82225105225b0ec28017a87c516145100b1536006861c8c7404f025914d252a001635660f6ea1f272c9209d880498bc88d1a11200c0162d21e98e12007060d64867648c023ebc4666d4ca79a789615443dc6e82127b403576fb053c206180e02348193c62c73ebd8b381823e92be500c068899783b45870ada772368cb16047fb22210f4c1e767950b313a7cc004f1e1e97540739176f2a2438baa287272609daa74e912d3f227d49003da04c728091522d43d440bdee2a2e71c2122c30c2f369084a0227bc07a0b6385e4a842070203905ac4a84898ae4474505270c131e842093b3e672615e0a5d5000a3151846c8171604920be04ed8ccb431f4b3eeefc9d025a91f951c011e9024406b94da204ad0131c948a4708d50005ddb72eb70034c0b289ed8862deadad6293f7c6443d8a4b97ae46633f960630b0020c50bab15a62d42a49428296364b33ef86eb612b95aab7bc0c7c7221a22e07a143b8cf099f912ac14673c92ced0c87a434a1328af318e2cb11d1001d089326b49667472b4866b462522f61e158bf0d0a9b16c0f956cfc26bc39fdbc8a2ba4580055a229696fb234c030f26911015e846458716713025b6b48b81821aa71df75c95b26962452e8caac3fe48f4a1208d2425296e3b746eaf1a98a86511b068033a3c40b231372be0290d31cb97023939a64db0222159828c081c52710bddfa5392002dd8a7e1977e8c6d59b27de8602f42ca8df8a8809930ad9a9d59b99e1054ca6221d7487d63aa9aab2442eabf396b516801d2418a1cc92e0192f73b80840c72106105014f434628e5a26f4afb03a7a30180739b982aa8991536cc6e4400207c855d61e0761ca2468b4c5049c1c4cbd355f3a0757f5962fa5daaa4cdae364d8e592ab39185cf9b9902180496730bd0af34186d7efa175a60edc41c2144a8e16b5382bb8386cea30e74eab2a38e6b66af8e18a004cd4002abaaca4e8635b350c702075000e4e8459055a6844f4e1957e6f6ffe6cca5ac341d1200f36bd25bde289c991460f385c4a11872e8389115c7fd2b87dd942a9c19034531228b0558232e3d2848cd305342f858e7e82583eaf1a8a84b8893ad8896da20310a66165f893a788a01d43b28c50404c1a97bd66d11697010e152f145ae3014b0e84347e489df109797f7c65ad7082c09047981a423e4bbce007721a20b96201c9a4413d106369042e0d6227e6b8d0d5893239483da526c2f8305d119547088a2913e47ce1b184ca87350d0b3e08a1c05b9201a389ab0a221451d1b8b874cac2ca08119a58246090187e22cc2f469ba50ae4b4882005c7c6a801ada1a6214d0734ac9632c64b0426b4053a88ca74e1c31b3f4ffc4890d326891c078a3641f1f48b234555818856004a171e5f24d1587167c3db053c56327172f00ac262888a110afe5c3040cd20b219a0dc0560ea1e49e26119667db021b6c50671050b8e0059673cb3370ebd105426a8c3bab91e68cc69600b98251852085c005ab500a53004ce2c70878913a32c2a770a68032d0a524a871d1f82e428417288c3e38f940947fc11301d0e5018a54214863f4356092c542f444e3275491031088a56af500f5a3e01249271c60b9a861142071f0eb422d2204d908f9b2190ba8ea0a1e9aa41a49f7378881cc2f12aeb8ee76889561d01a84ad848a1e5c796a10a8278748c3c88e8b3c40ca9b412714469c568604b29b62e50bc56490010ee9cb86181de0ad28782d6a8348c25e340d0874b136e54320b387ad8549ee168503790c8d02529c03827d63224c9d0e86e6eca961916457e24204193165bc33664826c4cf02571c573bc4201e6f4bd411182317b647721809f1902c1498a576989c2213152752a18314bbac4428ab1d5a90b12243847d8004a3c7015015ba3c257e7d29a356b6d9e38a068531a43a49c0cf2ea2377c726861b07fada0a33205e7415b8e494b0d2c3400e1939c8b4c2c2d24681483f0f5e605766672bce90b4e252b707eb92864f886d254621cc45a314717b08688072817a0046e80a2438390b38bcce4b0b24f8356904f7a02e6b4d5bcda6cd940c5daa6ca8d0a1d499af4f6cd8e8048931640a7ce4c20f047284e2d0e4899955a60a026a39ea0f95940342c46824c643189f146c4a5051b5e18e904d0ccc9428ea980e65e0a21067cf0556593ef9e8c236d0e7080b36697ef0f859b0255178dcac02c24b5d7d35c9f1a603071faf34058d4c41a17e18008ca413715a616862680e02882680a0d2490d9c07f0fc6995d5e8d1045324acf0648772b223ce00abdcc143023986d8793b141b3457de423c11ebcaf0b9faaa4e53483d89a08cee8823565a3092f850050a658f60e009971e897c833a446ab4f6666b81fa51238d0084347542d3c50619a96c4a19883ebf1a650fe878b8a3a547d5a575822a476eecd72b06d3ae781800c79ce7528d5112b6acf93823e08e498677abcd8453678a3ee087283049565fb6d8b2fb941f403aa244d121420d0873f281a9aa4c08bd1c30664c100e906ecce890e1928d1b642e5a6d62f405ac02287c8664d98263f7628b5c4f8286089c491f3ab37c5304983b40499f358273cd883d9074907911697b37894194c0190dad1fa729145db84e34ec274f657e8333647c52497112c397ca2d38aa4cc2c6c883b0801e12c23cd000a2c3ab4dbc511c24ff3e61666d71c11567939624dc001eeaa73f6fa7c8b80efd7824b953c4990851004fa23a133c351134086aa40a4e2aa182e22a19a526a90ed45d102b039bb2e3510c25ec910e2e05deacfa0952f50020c46e8618283f4c758aa4c46db09d000bb13a854017353314ed89838177c18f231174057e52c5186553984dace165a974497064e9f16020ca8e08753ed890e300024eac44a92ef0a817abd2f051e12460585b036442e28d06535f8020501e96566495b101e54b1baa0b3a1080b23665489ac98101b8b7109d50a4acd079631031939d3054b2340721488a0f32e823cc2b1cac3c6861d8344a0c0e09ce6393a84eaf80a448eb10654c170f503f0a48f148c6844213c860d3753c92d49427c7037b1c10731c1306014e2b0015c836c0015eaf36adf139f2a468c9c3598d0b9de08654d162d424c796617a95a1411a3b3b5985ceb031c5d666858b1c02b618d4088b9bf4c843023a6c24d905556c7c0bccbed482a8492300cdc4892daf955219c0141b60f2595b2326217d13d0348c6c15816be578dd9440615280820051c652dfbc268c479b3f994679e202c900165c95178b4b67583411bf7072418129347ecbd7962bb5060eb0d9e044e310162911786142e22b746424c3b6ab33f6c3ac863b93b37a59f2fa94d596838f508e181b94334d6c701139c3333609c8a1920a2b5b4ca862d6ef048305115a0a486a2e06999811e209524392144426346950da20aa8066c897325117b076789a53b258012592043bae36252af5e312c34d014e59e2315a2bae140235a1cf86b0323b2a224061e44549d81d4b0edc25baf084cb95142ac654d8c4c20982d3050390f54048d98d0a8ed46cabb41aa462a3e16f900433d011d605499c3e75248068636505062e0d6c90af213d55bcb8079ea0a031b3eace56991cfa96090e712a2e79548ee000e54caa0c82660451051983e9870d2d90308809a5c016180088484068831c127640b4b23ce919a6c960680e3eb8a0aa0d90204a1dc65258a09bc2e648c0845250e890b905e84a459499a02e35e252841c8fc09050416aedf8042aac041f509c8c07fcf4ac14507460f5b33b1b4bd78cd1246306961067665d82240102939e0831876d0500698e8061b51a616a8b98c03363810915bcc2b3054ed0839d212a4eb6409a1108f04fb0aa83ab0cfe0315aefa1803054b02742888db44c0965a1c1be5210a8215758500f94e1db47c2d4ca4f2f3064a048356d18b3a85eab290a19585515d3c59c244c94f1a92096b4ea56d11b2476088808827375b8ec247a4fc8cf185495547eb6b76e313044704767cb6ccf1e29207471d31166d8704f8c32585af0ac115c38401e84aab49900c103a2001a5e0c8efc1882f8c7c852ebcf850be113385d5160d2e581842b2f6d3c3827708820519ac58e132e48a851aa982d96a8b8452d11692ec772c24a3d06a114096035678b9f0f140a4a1939a46761d080511b1094c02439c2a1072a16d14a5b8ae301580e2a0c70a0b250310fa4d3a7501ce8b4ead9a68ca82a6b36a18d820408727757ed829c68a7b6c23a6d634b940a9cbb80ad50e11874a7d0978524815b3d0d888b8f2270828092492288048c2a9271cc8da8861f20568e640993062995eb4d561104291e3a689c0da44434d909c4593ac64dd81c023d09103173a770b311415d0c83848808423c181afdcb0d3ca840342c8b0304cc0c3139b1d6b95b402b5c2d325a789b4c2304400274482260b8d3a9c84e04f031dda446963caaf01938186a72e532811a7744119b3a7c45a083830ee3b18cca091aab5c440f0ed44da3085c8c3af51e2e094140f73162098c01148c6252cc3ad0713ea68ca00a22ede69e3422852c7a4cc1d1388c396062909004b05123b04465403cd6935f92e482874a30f31450427a4503440113727431e4b6afaa8494d950c2862f648cd21525b5932d8484f04fa14431467b3424820e1b37be0f7a706110ffd65688249335678f0d2c19bc3a0c6dd0243c2c04065a52beee4e22a60820566304b8091063cc6d864e8e373804b80b58b86209b940106393d6d52af0a46d120c5aac72b204b8c501a4821a4e4ca226212891444ce41ed0dfa922942457e2f1d4c4af61090aa0888cd08b5290f660d62f62862e0950e10682c1e788469880de9820643677e5ab8e43890e3a8f1f44d247f073c0a5561ebc7e30b923f79ec7c627265431a142d343b72600218310a34a552993b17c688413aba5245031b24926863a023286b83115595cacea0c15539a1a7842540ee060a8651b0b812d044d15087a5c2f9c80f06e09d479502ad58f2284830cd0f3faf300b8a20359abec45f7ead32d42081a84b041cd6dc2fc408f822437025558d09420601c1a0c7c422417719383049c3a3d2982c8ee0ac56782ab8ac60c46024eacd900d493a391d6005324d99a0fed110e26950a0127a4675cdc082008055a8249dc91281b18d40dea3550f99cc9e4a9b50c9270908508ac3f7c00159e6c8c5ebcddd8e9f192a0eab475d9a7a7038e5862b8720b433396ca84ae18016049a34f939657606462cd4d96b250a021e2885312ea8531ce33d5e487af0e96e4e06216aa5bac4c1c9a143be6c351225c8ca96dc228726b5ac3aa95c6d4a5326a238e663eb98d858a01140d5ab0e1f12d1f84abd3240e02343052e42ed71350097219edc08b61e60d2646bd0a127e89975a15028565fbe38446225638b0725504d7a6952823e79dd81b185458849a1c29b950770bc26f9b83c23ba4aadf844f851690ccc94b3035cfc3454586088ac250caa373c35008a38b8861e431e10129b326462644b9b42984a70ae4d1d4c1841f51d46882e88a03d95fc9784049c386074084243c68124389614e11b1a9409f58602a220298cdc201519ce2fccd12155b6c3cb0f2071d8185461e3fc370a108e44426404500115170b6e179c6f40e091045d82ec3285c1d102e64e2a3b052e818993938009187004f1a080f5cac04955a137770798d844a93f3bc8ec516327953fc2041597181c6610ac4ec441d4e8c485306f3a1c819b50e980a14e19dc50838ca5485291aeac55899225a639431b1399af03a91d41c1648a27455b3e450a82651789930bde652613881783b8c4b151c2b9561d397218182fc0496001e71e0218d5e4819bafb6416038cfd002870b260a04931c15e15bfd12059c207d089286731f894e293c6419319b709ea1811f9a5c25e17572c1b7d8a0a27362a57638f741390156a247e50ae75e7665c906bac42939e70aeb057a20860445b88f54a2066a0c58e15c8397a6479846b171ce7500073b39515cf0df0d4d71555870aea14f516e4d10e71752382591c070fefb93642f15e11be6528d4839bf9047810e5438cf32b96c72c139785d11c33986333a4f9c678109969cc3a1cf3906484938d7ca52c47987244578970fceb59a70eec105cfb0c539e79c73ce39e73c4bcd85287f886bf640b8b14a469a848030186a504a810a062451850e60bdf0ca244088030a3715a5701cfa34640b0325472c008364a9d8624017a944604a99c9fe8126a4c285410d347024a584a513820d6c6a5b28d1d81064c6999337702ebc1a13cbbed7e8ff0ebd09c086050ba282803a74c81346010f17c638905263a51104aae8943133474825a161d1273eaa6ba20959668aaf411e3f3f7eb025b941043952063149fa58a0ae62c285270b0b0701c0a6804000a78092b23a4f1a4e08998076c4738057263672cc5ca981c9478114126c3821d58e88d2aa34d920a70d97dbdf6889cb0273886749cea7109932783119c2e1551d0c689c0c6e8cbc669225df95368cf634aa1000181374803a848230b7654712133a10a3fe00755467e68c0440193cd13021c30e203d315c0cc242850d511d5f3fed247adbb0ae0985b4ba3b8da05b2c8808cb4c8428c3d4eb1224d29e0f4532a45922733b45dc9284c48c5205511058f200064396275230bc7e5f17b4b2d29081d352a0c2dca201c08e31e6045008541a3374bae464355880159d283ce4de82131636b903261b4deaeecad0b71e1652c0889111a2a546c71563cd998f468217c9af2f3388baca460574815b0480161a0943314cd1910e261e183163b38094481c1187b3a49998ac06cab0110ab52509831761a4268310270c542a906975c60f1c017cc234b8e445cf170e77d61a8b1f02110c2135e88c0040c506594228474e282c38a26d0839140cb2e00b43af8d9a07398d064101e3e0828e0e06611bfee0b82437e60c4f04aabea86cea80ec7e147481b900440179dfa1933405800d122ed87961d9545161b40882ad2a68854c15365c586001112ad2c19218871c228cb62cfa4951b1851d1b7ec171d5f5a3338589b94a113ac2e0f7a778a99517ae42949ce4d160640162898d140d070b065b5a345a83e2f7c5491520d5253690008530e2c04cc6162ea3073f139cbad1801a9d351e8dab8711af4167e0d03153580823224b724b8e39207c093c50d43684c350013a43d6f0bade30b015019405721cc828a06eea01c7ebe1400caf12112c5064138554653de484ea33074b251f8e2b5b8e534ad889a1a1c35995c521cd16bdca4f1a02a63a7109e3aa5465a30c570628139c962c1d100609212106a8606b393c889200802c90b638d1a48783d6913a4f4a2b158e4e0970eab3022538c1fa932e6b972937be0d981f48eec049800e8b08cc907848b1e3ceeb2c004d06c4b5f9148458c86809d16288ad78a30d049488af4a781e4cba787000e4266d2491716bd2c254328ea70eb78b192cd248aaa226f4b176401708105a0fd0f4254f0415a0c893fd08a3b96c6020c48885a7b0bb3e49920250b02324490d073d4b0ec16d033f366551a5e851ab2a36b206b85df08899744a3184024c4b7adc3dc2b0e2c776e7195e62d5c3ce1612126480c2410217992aa092e0105b85bc52a7be88ca1a11c19249e849470198c763dbb25417dca0f154e5d5ab2fe7cec89892066fa636ec6804620e9157008068e043154e303e017f77b0522160e1151364a038ac528432c5e3428924a73a08f06ae8e68a71597902a2d2808099149cda5765681e4410748749eccd6fc6994aa3327d7982c6a0819eb443f2015c63aa303047890971d28b332218ae479286097431003532e02c0b832426827804347c9d0689ca63867648c29aa72b95f81537ae0f797cccd5d8e1620d84983b5b2eecc879f940a1a4c109386c5e8d0ca116b64e7d7c4774a02124b9c96221c1c28720232a0d6c8929f52ad4a21d170ca93182804e20d54286426d887862006703110f838c083bbd369f07350ba5b0a6944ac4c510a02c0284b9b748946e1198d9a2ca90bc9a80859d9345194c4f424f58a840e0487e2541daa335af0721209080b893ea0b6d0800a72e4d80b3a1d546ad922a4e032b1b519d26203a98334097163f12d8202c24c1e1238c044c209051d1810f1ac7c227013ebd408cbb84210a31b4da92cd89292e1efea4b5265a883459eb6a50425e43979100a00dc4893d967cc01d1c2020041214ad521646a491434332a3204b814452cccc09456780dd89379f13940d18e8b06a36f9cc15b7472a8f3d71619938b82559d32464515258c88f9c14adbb23ebed7cb386480ca80788e078c3024908491720008087982332cc3460c9e410255328451bc64c51258070800a151b157c91dae069c18f936b6444aa425e39561e592e64fdb02e04033d7084c3e212a93fa82a98340096320daaec3460e812051c60a84cadc80a2276e577e7a84439e1015c9e0c183e9400c874e16ac0c959c24284a21a0f3c5a88fa4141010d33400d4120eb1004ae4ea994341468a4bfdfa9142964f011c1c64d91064e9cb5f5e1b24153c0aa839b14193684b1704b92fbe1b546c22a3b9c7688598a07b9b5fd786a3e354c826ca55845a690171e8eb4628051b4f568a823838a0928b852920aad8b03da02af09586f2c3d91e0378444bda5c7d796d707e3c80c14731a20242ad299305e8f1e98b08503c62401192a2cd24859e4c447d1b29681c6b3258e5a1c35ae5309283ba3f688f15028cd9130fe435c0e2224663473073cd1b214a30a194a7128b553ecc09828539bd30589c35a410b93d60b383604a1573e7c7998a0094915022411d0150776e72269a2a825acc048ec55932f1656683024946147531759d692417b7c006a2401c49e233dd0f0e8d096a5449014af1d9343a0685882b63beb9497a45a1728736f97e088e8d2c0292718dc2cc1106681a81727ba2c8d62c0769ce3c0e54c17272f4c408af305c3274064a22cc932e2c90fb290a4118a32194de51901c9110610f029ad168adc28d910e380393300411b3eb13a2052852494ccc43c74bc15bc11cbcaaaa4d6098216844eaebc7048d0236a810b59ae84892b0467c8b702336a8d8d0fba0d2c9283eab80adb732704020a103716d0fa992176d0f24229cb1a2922eea4aa030276c1e74004014b04d093e5cd0126106000872a0d571e887285a65dd3ca8b172a0f4fdc207f2b9460099a0841ec7044512401e6b441e38262868239a7883046845052a10e191c93bc4451b123bb817163d49ab96d3e746cf331e0653b200a2c0b96427b4e157131a35c11bcef910174f400697100a93836227cbcd256d598f026628da40a3a42d9c95fdcf88e1a182011274b940767abec422d3221da8a0282d08f307ae8083a58450954e0e227c301288454880046c89029060a4460a5cc948f02106009403a5cf1c150b6650b888fba2d5f03ab105065cad591c39691060a78b93270f9ec3cc81995c0842f1c62d8f8a31c1e72bc0d4062cc1c9b2961c7089a78124a691170578a0428445a32c8dc00519133755d43ac70ada95ae321cb24224d8e948bde3a78590b1023270b09218c823ec418c0c0002d1098ca326f86d8b51903444c1903c63cc100aa00348938387041525a0e2833b62610397032e2d6db54830b154b3f80201ab0c024cb8dafd103896a189104c54c1e0602192007c30eae0792ca4e60a201a44294e05e01c101f592e16b94aa804d7729930a0e569dc8028094f15392649144c43847420558ddb99028d4933222b23c80052309e1880462066c40d289cd9ab155036619e064648233c8edc7e8688806831e67084d7934c5c8c6c3d10518135efd177368e8410da1689a90681a222902a005013127b0227b5c6ce06165cb4fee0809261e5ad09314d535f9dd011286ab0ffc46d8a98204460a60f171c18497130d1d0f8f3fe5222981907714d802c7a3f0bde2f2d282eac8aa15065cb9f300db063c5c2d2479173fc6d081d26815045ac884f8e42585ca2a2a522694310a9a40e614c034f9b4786da1e046a04e9fc59616451eacb0b0b5c7934d206ad5032d02e8552823c8d0ca30ca1580ce893a38a4986455d04ca804c9a722a9a0ed0e0e3b810326b6407810e1cc169926567219e218a8e28ac32b1483025b06372f622e2cd571704ffad06bb1810a190f6894085a84c10c84b61f046487c6c439a435c8adcb913681166824a30fe2b38406efc2832649a61c493a671c5cad30cf6c72d1e19315331b7a97082f11420aad58e40015adb62d6716793900830967fcd2000b85571709b22a801ae4a0544131c68b4048523dd0a16bad2c9352575434e11229299fc291e5c01a1ea63812545046851dc8b0d4d5856100b89e0e38c583e8c81d271d1e39c0810390507e4c89f5f9e427c410c51c054b99aca2bd0a926ce7b463e3039e12432526181e289a408d452722726ad298f0c4c111041b0a3158e302f0c1b101aec48145c408f1739569ac821b3b263571b581941eb8351b178670c90262bcb3e65890010bc5e603a80d1dca3078c5f861684081424b22928ff96705025147638c36b1a012655d9dc88a70a922e36382934a382ab873ba59faa0556a40069064ca9a3737403c25e0e91104709e7e26ecea060ac511a5f6a38ec6121a8f4a71d98fa6506921c6c4a5430c88e8c4298d8d972243e8bd16230e0e5e0cda5bb214c9e7870898126e44b9a1030691922e284075da3ae5a1c959e9c48e4d4e7a2416d0717ac02b45271f005cb951750045e666812b60b4f87890122397675097006e10da0009a2296e0b492cc453c3aa471d1286bcbc7670b0cb6025502b3f172858e7bea70473eaeb910755c95627973a7f5e2500f434288528095a14ac690140985377441e55a221440faa405dabe0d4123d39e2f060e84a994a613f567960d97c282b4ea0e5f6d849f46687a84eeb88a194d0178905c04072f4e14a212311ba62226315b0e9742050186462952bafd62148300b48a4215f8568a8b8ed84ac02a34501cf5c00726b8f5e652d50a2d05a9e0518169d7871ec03224a0290e86a5720e6187058e08e34a1d45c0a5101bc59d0a38601a0ac2d43070f2e606a95aaebcdc9a32799b860202b3b23b4618b9ebac7704d5a1817241cb21c795530c6cf1a44122cc01074b1c664a150804a254e38d6f070f891b20589981717e6c891c315248581e7063dc9e4279136c831881c74426df0b30100578c5ab191f24b404f2a3b044e555945e3ccab3207a2242f008bf5234b6ee8eaccfc5e6d3d4a9145c39d0789a264e172856bca00432449c013e4f7f61aa1e3401f4a012413b07006a30690cb001b98443caadddc440a13c00bc789a406ad35051c9056c153970aadaa4ba390187ca1645c6233c5090db844a602426131200517891e91229d9a2b7307ce062367f068dd79fd58a758305f4c3111cc24e66740241cbe257e320c878065484e12f5ca8840a2dd42537ff953898e87486d103cea62e84d830c8ca6c088c3c05727447264d25e002ac1f085d012651103d6f7000774801a189fd2b6c0889062f0220903195c4ca063800c9a2c6560bf846a40c08808c12a6b0d044c0f0c1e9430e9f4a0458a28aa90492c78354176d1827393fa232ad5f132a07672c48276a40b4c1bd8902396111fdc12a13074674ba60e82663a5e26dca10d40e347823d10904dd262e1e2f41308951242109292d8528306754da002809d2c75660594486c0b885aa1a283853833d86e187f12da2092550d0bc5c81aa4e88d15d68cd0193517afbcc478a880218859250916e06a45a3acd2e28118661871d06183eb0ee83cb3ff77d63c5dec784d7976bfccfef974d7df53d5dca1033d816feaa6e73fcd75fd3f76d1b8f539deeffd67d7b845d33ebb729cfebba15d0308a4eb7f67a48d40601169c4f1b6e7efec1977b93de13eabad3de6deb8f1a2ada9a6a98ac61d3dd56e9a690af7fe347555df76158dddd634e5176d5f306cbc671bc7bfc3bdedf05f53d9bb2a6abce90a77ef9ee9e9e7d8fcee2964bbec8f28f0ed753bdac2e6caa2ec197ff3c7b2f1a7646e6fff5f9ed1d88d4f996555f514b2fd7cd1f69a2babb6ebc9b2acabf6748d856c27fa5aeefbe3d9eb7fbb7771465b1aaf57d3584ed9139dd593755d54c8f6744506efe2ccb2bd3d9653d65459d6f778f6ae2a64bb3de34dd9d83dd9156e5d349edbb315b2ddf889c1f55455b3b5d74cd7159dbf477d8755765e856c9787c17f4cde49e318109834fab7155dcb117cd582c1db46d6bfb49785fd29c7aa899eee8c9aeb2c64fb8f8db4fb63e30ce38bb5b58f342ae3f5308aa2a70caf7037d5b385bb19e33563b7c36ceffefff66453183dd15e36463bdbf6783653f5abfe8c87b7bfedb3f7b3d79fa99cb2ea9f5b989dd738755b18efac9a72db7dcbfaf3c3b1290bd92ed3622f5e9645ddde9aaebb76758ed756a6df37ed5e6ee10ecfa8e9ce1f3ebb69f67a369de3565dd5d43c63d57721dbd1b3ecfd5e46bfc9c6ae7b9adeb7eed93bd9dbbaa6da5b3395d1f844515315b25d051b7bbbeb7ad4bbbf95d773f56917b2fd48d7b2e9ba78bb89fed4cbe839c7ecfc5357c876e2b1380ccabff642bbed2c00ef3ac37e86cd58555d164e6198becf53458bd785cf74f5ab4f7d2ab729dc0ad97ed734ec43b0787d6f5bf7c7a76f61f8fcf32aaca389442fb4d9beae783f7b9a73ca9a669fd1f89f5dc8f66fa48971d0f8e9fc4d17e9fad84f752d47504cc5bbc2f2f9bd8b9af329abdfa742b6b7de064c96f6752d4790157b65d6c7ae39afae7cb6ffa37e9ee9a09be6bea69767954d61d9654d143e55b4f6455776f63feea7db9ea96cce685fd71e7f3a148d7de1b665d1755dd71676cd160602dd752d47105e5f333e67d89f728b9e1d565b58bd8b33aabeed0aab3e3dd359f632cac6a690ed421b790cd6f4bcf6b4f4ed262cfb368dd3d8354fd5cb42b6d75e189b3d88be671aa7706baa3d757bef1e15b2bdbeeda0fbef610d07040281adba9623c8e37c5dd6c72e6aba2a1ac332ac7a3924fc6d8faa6b39826dfd9dbbf9ff7ca21e364fb89fb090ed41b4afa7f9fa595d579975e3d545d539f642b6ab2352bc736b9eed575b739de1f8eca990edc1b3af77714657e0fb65d9554f55864d5796dbb60bd95e47d772c17e86bd701aab6e5fdbb8b76c57ff2a64bb6cf4b4dc4ff6eb0dc6d7d857d9d7dbd75bda57fc6dd4f9361707d8aba27d956113763f6ac271cccac6619d11491b836d1743f17a345d65965d59d5f4303c77f4eb0dc6d789226b7a0602efe20cfc324fe417f1581c7ebda57d054ff5581ca245a411bd8b330a9f78e5d9b7ab3f5b37354d74954d21dbefe21c94330ee7dc5fd371ba9623689a78d1f4cf716a7eb63ddd7fa6b290ed41b6c79f2e58e76b565dcb116c4b14693a4894eb601002893a18b4917530e835a20769a21c4dcc20a2fc0211020d9a20487c285196f000d6810487131b4c0d26bc4864b033747961988b3d4c24d2f5890bb2ffb517d79f0bde76dfd861ab07bf5c06ad6e6795f89d4710beda7f62acc142051114ce093d190c21a148c7c15f07837d6e55cf63fced201be1947f3078dbfd1310badd176e7830dfc8a083d81e16413448570e0c56f55c5062b5670fdad1757750ce3814da5ed8a1b781d783c5604ddf3ebeed7e07fe33e0172602de2f7ae3829f98313924704145a88cf19e21ce7b8538ef11e2bc3788f39e20ce7b8138ef01e2bcb700e73d0538effde1bce787f35e1fce7b7c38efede1bc9700e73d3d9cf7f270dec3c379ef0ee73d3b9cf7ea70dea3c3796f4eef4d2f89041ec8559431dec003e763fc770814ff1d4ac37f87862f3c8ce018dcdfa136fe3b3481ff0c2de23f4308f09fa126fc6708e63f4365fc67088cff0c31e0bf4286f8afd01acef98d076c9c73b69fa310fce7e802ff396ac07f8d58f15fa354fcd70802fe6b5489ff1a2de2bf460bf05f2339141a4cf8e561c57f9490fc97c7d4035f872ceeeb3081fb3a3860b0d5558affba20715f6981ffbafef05f979b1f561bff6191f11f1690ffb03af01f1603feeb4dc07fbd49fcd7e3c37fbd34dc57e68cff7a5bf8afd784ff7a37fff584fcd7bbc17fbd31feeb993e1f050d1826fccad4dc5786c87d65823edf2a42dcb7ea0ef7ad5ac3e3f136bde1be4d66b86f9314eedb1484fb36d171dfa699fb36f1e0be4d70dcb729cdd7a00f1cf7f531e3be3e2bf7f541c17dc9567dbab8af0f16f7f129c57d7c2e711f9f44dcc7870ff7f171c339b7906541c204090f7c3e8e709f8f3afebb04e43e1f46eef311739f0f1ddce7c38dfb7ca4711f90ce7d4042701f102eee0382c57d771470df1d29eebba3c47d7783b8ef0e0ff7ddb5e1bebb2ddc774785fbee9a70df1d10eebbfbc17d7742eebbf3fcd7880bf7ddc171df1d1bf7dd8d71df5dca7d7728b8efae03f7ddfdb8ef8e01f7255b715f925405085b122238b0006102859f96970f4718eec34185fb7024e13e1c48eec301731f8e97fb70a0e03e1c1b9a30f07d60f4a10cf77d80c27d1f6eeefb4073df8798ff2e69e0be0f6cdcf7c18cfb3e8871df872feefba0c57d1f18705f4901f795a4b8afccc47de523ee2b05715ff987fb4a35dc576ae1beb20af7954bb8af0462c18b418409172a44a0c0204b42a256fc978813ff2542c431246ae3bf4424f80f5129fe434488ff10b9e13f4454f80f511dff2172c17f883cf01fa2082848942c1703179c6399dcd72609f7b5f9c17d6d62ee6b03c77d1ffe705f9b34ee6ba3725f9b12dcd7e602f7b5c1e23e36a238e7102a700b18b2b85a9e1b24bc4c9cf304e09c57c6393fe586b5e001560fcb41af8103099c7ff87de89c771abc9b31813184086f82668aed8b17ceb93039e34aceee7aa846e68dc352c5598a288d9f68fc44f514253a1612a062c30fe89c6ba1c2a7d8e06c009842c0ae8144181e3e307b60862c8ae24520490f2f8f5d6b69511e7d1cacfb46440d44d97dd938c6396f2355a21dd8c3e24f4724fa22b1aedf982612c78c7243a2ff77433b6d8d831e75fdc695c608954e1893f64f94a0fac7f518959f281a11e7fcc1212e671c0689bec32abb061e7db1bdc1de586fa837d21be88df346bff1eb7f76a26b6fd3a4afeb31f91b87f3978d358cc3fb138948b25fd365c6211ddf433279182c225f383aa663ba4d36fedbfe70bee86da40ca1ed85f587e76afa453249661fefda1f6b24912d4934cef0b797935f46f2cf9967f2a7abdd978dc6135d337ae1dbaf6935b67bac481bbf5ca48df50bbbfe70f1abfd7848db48d648dbfffacd382cca63df36fef99b11fd301ecac818447b28f7d384f17f7beb3f3734d26af7d058434643cef2f01769b76fa4d7c4f41e061cbcbfc6608b900860602c5ab0284dd8c9c312f7fcd3c4daea19f7fcd3cab22c230029ede461f0cbc93f586ce04268f080c12a422c5acc9f3888c50a14a5f113834199486355a2c4c5c186db964b162ccab8b661b36cc1a0ab5312ce39182ebd0c63510a815f4efebc08ff712283e30dad6c8c6dacac5c51dac943ce3bfe3685e2298ebe4882731e68cb8811a559b2f850dedf9e67da04e70c5a30081b31a264d1a2948d9f2ff0c317c4592065418c05680bce16a8f86922d6b49de2c743a22636dee6f672433a6f4c9122ce4489a3afeb8c4831b1381bb5c5c452942e45c5c44ebad3462a2686d2c968a90dd4c697bf8d14134b79b4ecaaa6e8d982472f55e85811d7636262293d1bd15ad0b311cd6e61fc695fa6e1a4579391f59b5b0be34ffb45bf66e7d5e8d988f68bde3817fbdbed13614fafc9df58838d5e9b8be9b4fbabddf49afdff0ba2ff66f49add2b139134dc2ffab56f13fd8b974844be903f913866b740d186f297bfb1869858fd8f48bb8509b013b58944e45ad238568c6fd4df46d6ff887473fb74c3dbaf198732ec7be8ebfb58acc964a1b1c6d1d76f9f6e68d3f49bfdff0b39e370edcb74fccd8a434f44d2b5b1c65dd347b37f3774b35f99489f7d22ece937d993118936b2be8d35e46fac3143260ee1bed98b7906913846248ec9c4215c8b3b1ee3b1f696470ad344b2bbf66c49992693d192324dd6a2c589ae38d11ab76da4cbdab3235b240ff34c57248f1395d1e66abaeefe6b278af4212676d28989c5e09c63f19fa4519234715e8ced8c4822baadcd407b2b5bab112378634c6d187fbae09cff752ddce24ff786400333b85d036fcf36e73fdcbf87759dec7f3dfffaa40b8a05e36fc31e1ec7ece1d1cb1989c7e2f068d7d12bec2fd3c6a0cd9b00921baee67f7ddb305ac8b4d144c5c4c48a18011284014d9cfbdbe65eec1a488410c148cb466fa4c738ef15d072a412ce39cd7f8e4ef0e027d26b32913e33fe3bba7ef16fffebb23a9af8c99244e38c1a652fd1277d1abdd6760f8bc334b319656b6fb06d465bdb1b7cd36a98cd500bde18531313f3b61cbf6e2f4dc3fff672fe48d7c734ba1672fe8d8de88d686ec97b58835eab654f267b32db7e85773d249b69ba66933dd9af9137f2c53d1c33fe39facdb6e935b5167234f1a6e9b6ffdbea9ff4c492e88d63753471368ed935bdf68948992e969eec889ca3eda12f1a69248cb4ffdb3c94bdf03622cb5ffb1746a4971bdab68a21b02c6dff614f447aa1dd17def5102e7d69844b13259246b49b36fafafbfa5555555555354dd3344dd3344d51144551144551f43ccff33ccff33c7befbdf7de7b374ff3344ff3344ff3344ff3344ff3745dd7755dd775ddb66ddbb66ddbb665599665599665d9755dd7755dd77555555555555555d5344dd3344dd33445511445511445d1f33ccff33ccff3ecbdf7de7b374dd3344dd334cdeebaaeebbaaeebba6ddbb66ddbb66dcbb22ccbb22ccbb2ebbaaeebbaaeebaaaaaaaaaaaaaaaa699aa6699aa6698aa2288aa2288aa2e7799ee7799ee7d97befbdf7decdeeb6ecaaa6e8d9d588feaee962118de3f023d73f05da370ee58c2fd17fb75fb315ff8dc67f7d1670ce6343fc75d1f675257d26c7ae81493868dbfe48f4b79f937e8eb64bb01547db860c7948db9891ae328f37079a5bd0eccd81963686d6f6ba05dfb61a6f636b30d0dcdcbc2dc71f0804f2de8d3d89f61c320104024b946f1b5babbab9dd25edeae890b75dff38d2c6e29c8fa1502e078e1b70366abcb9b5d1605b534b9311e30cc68bd7ac8c6cecd52bae2dadacdf2bde4cdfc7641dd7741c76b405e0bc48d72f8c9f18a4efe011196ce7bb0691e88b6e34fd46c6a237c40fe7d931b488a7e8a7e76876d344b79b26ba058f472f26e676553d6b5b4cccd748dfa2be6db1a2edeb56d0f5cf91241b9ac9c61a44e210ae3f9b1dacffb13d7b0d300f02c0e382732e26163cda6559d3731e309ee701c7e388f3607158fef018c0f9d1ae8141f9db0de7f40c8b87f72f0aef61edc38e101e60a1e1f55cf44af02071dea2433c4163eac4d93550f6bfe6597442d5749c821ef21dc87a461a6f18397f3986bddbb2ab9aa267377b167a127a3d1e2b9eaa39258844a4f1378773cee3e2e45ce23f397138e7c7e4fd93b364881c3bceb989520c0cacc44f4e0d3969a5b18824d271597ee3d048d7b62f1669bb2f94a3eb1a697f234d34311b8761295094355daef9b5f2a6e54a94ff1e1a8773797b9a38dbffa6913f4ae330f9e7927fcec48b6e9ac81d61a6699ac81d25ca3810427880c589c595f1f701d3a5d1d7fef862c64b640d100f2bd6dc28113a419b0885a062820899180de39106ee10a1704283a60553a80c81f4966983a25ad210316966c470a103d39062251969b8005843584d2b9a70249721581b5ab95a54b91182e88aa01d26a2a40921a0ae819b0f2c220889adccf1f1caa242480ab63533955213045945c1461d1b55a0200a445003e8cf89360895074ee612bd511004c719b2175d4c2408f2a5049197bb064120a4e624bc61d5a601b9636609098a005e005182c5a9e7840523206c8940a962592601f1e2f47e5085a3c7dd26250b3480c12072f7865d838420fe3b20509ec4b56ce8bb1710541409838b72f70353c1fc64cd3149290d14a1ee4e2d6986ca17155604b148d614d252a001d3932b306911b9d12349071ac80ced908067c728887a8cd143ceae8b9d5c1dbb3302411f7c7e56d5b942739176f2b2a34e9098963fa186b8a91300dee2a2e71c5117c47a0b6385e4585722111d94145c72d09d6a0085982842b8e8f6f4b1e4e3cee3a17322b74994a0b514746f6e1d6e80691185ae241bc226cdd523e427ac5698b6089542c649e46aadee011f6411335f8295a21c32c6184796d80e9080e49a518988bd67c5fdc08437a79f57f1ad0686914f8b08f072231921aa71df75dd63c81f952410b4754b18b5610038334bec473732a949b62db0c35c9a0322d0adc82616a06741fd66c45e31998a74d01db27b6b01d8418212ea436aea2cc6414eaea07252c37b1c842993c0511de6aadef2a594db0f55aefc5cc81000a51f7fced4813b48997e489973a755151c733f6e5849d1c7b66cfc088146441f5ee9771c65d35bd22b101ced9818c1f527cddb314909ca8c4b93b223db31c39f3c4504ed20426be232c0a1e20543b41b16f41dfc404e032457e85783d889392e74349871d2820f4228f0968c65b874cac2ca0811e30fa38a341dd0b07a8ab1c187377e9ef899505c742c7279bb80c74a264ec5d9003583c866802a9e1f6c886db143105bf5425099a00e4b0c04886885ca9d02da408b883c8824fe0c5925b050e74ef50af5a0e5137309f870a015910669e69ad420d2cf393c736e7504a02a61c39cf320a2cf1233a4d27c7802c56b950410c1079c5169184be6810f22b60fb424191addcd4df131bcf4064508c6ecd1304d6989c221b152c3bb53172448708ea18b3a97d6ac593b6018a18fdc1d9b186f840cc82961a587811cc2301ebcc0aeccce84739f10db4a8c825005f5008cd01548425e9346700feab4e40c55e850eacc1728b9017e209023140727721e95940342c47024077647c82606664b66095865f9e4a34b3bfb812d89c2e366d51c808f579a8246a6cc703388468f26982281c517e521811c43ecfcaf93e173f5559e3e1218497ca80285fa6b911aadbdd95bbf8b0d3252d9943239931e5597d609ab7cc00038e63c976cc8493bd98c2dbb4ff90124fbc0545526845fe2062ed9b841e6c2554c068edd8b2d72677c8cc588b4bd9bc4248a19c08ae02d203abcdac41dc11fee9e95a046aae0a4133c205fc5efb09d000bb142e547f8712482aee04f9ca9383d714ce2dae2383000f716a21341b053254b731082a58270306c1a25068744704894315d3c40d5c1331d41ad005420db0007f4b07456e3422738223d0c6890c6ce4e96a11e37831a6171931ef570b1c0ec4b2d889a1e10c0141b60f2593c1c21798099d784f168a3000f1f2c2e9d61d154e491ba526be0001b1c0f5ee8c848869ddc41c892d7a7ac361d3bb004d9e14f305810a1993b502449416442a3a643021d7db8c470538053161d51c2caeca8881045870d1d201e0829bb51c1911ca124c10c748479c94127c791bab355268733871a9433a932089a910307264f7a86693218c2d1662c8505ba296c70d8e128eb83a302ab9fddd9987a2392204980c0a4276e8c6984a92d6202cf0ddace1015275be0863b7763815a1c1be5310a4e510b13a9fcbc8902a7a59585515d3c5d829309d92330445004ceb44101973c38ea88b1b0b1400c1306a02bae6c547930e20b235f211b3a5cb03084642dcb86881aa58e8564145a00d4c0536349db284a715d626ad09874ea029c179e6abc717a43008d8d882b7f84bc097983f1967507028f40c70e6e952440c291e0c46e6726e0e189cd8e196e76188608e0844c706bd1264a1b539e8ddb032863f69458fb6a6b2406826f271287b62f6dc3b65483940480a502b5711a83ee685cc992c1467a42108d38bb077e7f6a14699c00c2968aab80091698c16c7cd89e04d96a64113189440a226c1f5e3a9894ecd13203d48c391a0c9df969b930c3c88cb4196b98d6d650308c82c59db05607bcf3a85220166b645004a9d1f4455ea3a006494d8c9a51ad9d81050100ab52a961d54326b3af92968803b2cc918b863402d2e2b4143256c950404b06150364e41893f1852806a9187762288941a38018689b6cb4373bd082a0bd404b3ba3943c33e3cfea4e672cca9c3980c108861718c24c30d017ae5e087a21008617c117263ebda85e3eaf93defba6be6515b34f6672cc8a98c9302b7ba04c4d195dd958d904b2476462c88a642c596fecd0a13f96055292b1780c98a4888b097c70177f9a7017535cb8c0c15d7c7100a630b84d183f3158f78d2592b50fd65e1807ed2170267ebbd76b50a14105bb061aeb7fdffe98a2be6d1e01e59c1ff9efcc25bb062689494f3cda43b3386b7e6d360ec366e3b004fb9d498b7bb0c9cca12fb36e079ac01ef6e5fadbf7301e128f769fae441affd117ebbed10c1b2fcda477ec6b2f8ccd7471cee3cafacbfddb38fc957915571afd27d2349cf475ededd2ab85a8a9944952f31c65b8f0f6c714c9bb03cf307a360ee1b495c2db1f4b22714c4c6c810a359c011d06744ca0e9baadcbbaababbaa98bbaa7db5dd375dbb665dbb555dbb445dbb3edadd9ba6ccbb2eccaaa6ccaa2ecc976d664ddb55dd9755dd5355dd1f55cfb6aaeaedaaaacbaaaaa9aaaa87aaa5d3555376d53365d53354d53343dd39e9aa98bb6288baea88aa6288a9e68474dd43ddb933dd7533dd3133dcfb39fe6e9f6b6b37ded6a4f3bdacfdebbd95db33559733555333551f334bb699a5d7122ac852a0bd266f74037c69141e2d3faa3a2b6c1254686154175438d4d28c983970590e809c4a0c91922373e40e0489220838c456b272e283a9040870e6002c8045b2bcef4088014d6132204143bec3ea4a0c0672ad9d4020717631e4720dcc479451194a1d38a30ad768409a12082056a3395075c6cd569b526a3e97105c3ad64da2818e13e015a45621373f535d84d80e48654c0ecb5043e05a74a96072850f161f416e5040bae7686891db75d231b3ce42aa4818047f6ad8a1441262a7106fc34b5d51fc2c0733498d071a1edc4ab80a4c1273635d10238ae3b079851d026d722518bc7ee01c0bae6078b5024682cd409401c96549a5ef520a541d10a232e8649085ef151a31c152ae475c1852937df0924ea1780234a9a156280fc0c9d52024ad097529f1e7880c55babb5411b807858b1e64637a8c1e2b1c203d4745f10b48950082a2532e5e9c95580650f87135962348c471ab83363d09625719a57319a7038a141d382295488a09900120307be19050c6f993628aa1b7875276ecd82379fb840ca4a3323860b1d0f68f19c4861f5692224c9a1928c345c80de142c0919be70a180450a064d2b9a70e496325c1e3c901604529a485a1b5ab95a541d40c78d03af3159b2466975b82268878928693832905145fc02d5e5a1abae819b0f2c205c7a806d01521c9a5ccaa065658e8f5716155e6a92d853311a71baf3c0b666a6526a8213174c9ceae0800748273250b051c74605a8c90f4f894d4388587adb8aa006d09f132d515205251d02e6b432df03277389de56913ac0f4024b823aae19ce90bde8622281daa60c7fee76a8e1a4674b09222f770d7a90a1032311960ba34011f2cd4978c3aa953167550300d2d8ed19c580979925242802784b4939fe4a01bce204820b8b53cf098b45522404d02106a457a0d67c8940a96259244582c0e20d03492d4e2478717a3fa8c2d1630432c591512552a1c9e252b24003188c214a4e4411ee71536507cd8f5d8384207eb6068b528b8555de4d039427712d1b6302a204a525324ce979b800414591303828854cb97fdc6094d992f60353c1fc640dfd48871f5a0806bcb08af6f8c36aec61f73483a95a63a179d3f3abad67d1f8745954f6718a75e6f5a6dcaa30aaa6261bc3b2bb0ad9e097ab7fd1ec774ddb2996997786cd133d7b2ab35d86d1382ef3b2ddcb5e465d773ed5b4f526f248e69de1985d579585db3575e1d68f797bef33eae7983d3f1b9b3d02b0c4bc72975befcd763ed7f85cd9142bcc2bb3b2fcd595fd3d8dd353c502f39ede557b8bca6c9aaee9dcbfbc731c9b32bcb61ef6aef9e7d4cb1bcb2cacca290bcf6957d5d8ecf2c21e55d31656d1f974e5f98cc3e2f2ca6dfb63f8fc317aa29f8d5b21dbeddff6c0daf29a5ded6c1bcb1ffd2bcaaa70012f1ba72ddbb2addcce287bce6b152c2defbaca3d4661d63ce1f89b70c722e0457d6caa69dccaace94d35ee58595ef4ffefc6ecff7d4dcfffd17301ac015e188d3dfb65154edd198ddfd30d0bcbdb5dd6cf2c1aaf739cb22d1b0bd98e74cbdafa998c0bc0baf2ca6647d3d4bbe7bcaef1da4d21dbdb7ffb1ba9b6d6c012e065e1146ee7559e7b9aa26657b1acbc261a9bf21aa7b3ca9a6aea63639537955b3435bb799e5e766177c6a2f2feb66dd1d97463f56461d5c59af2ae7367511555d7f5bb707761b7ab48b0a4bcbff7563dd5739e65d76c652f64bb796305f0c29d8553f78c7b576338edb390ed6977fb4a032bca1bcb316bcaae79b6ee1af7f40bd91ea4e5f5bcc382f2b69f4dff7a9eb3774d38353b4b0f8347bb633d79bfdbd396f5ed7caae9aca23dc572f2a6ea39bbaa4f65f3fbbffeb4fd7a8321d365f777c36af2f6b6ff96457d2c9f660bc3a690ed41a38fcf4ec462f2aae6ccc2deff386ed9f9afea91aecd80c0235dcbb547c22882b5e465e1bfc66a1af795fdffa3339692575ed77ffad5fcbf6d67b6f542b6df345df77e622579dbb89be80ac7ee1a9f9e75bda9070bc92bc7735fd358365bf99b2a8aba81b08ebcf037571646639795cdeeba2eda07cbc8dbe3d4c7de956313ededead7d40f5691f734e7f38c63d85de5735dd5386947d7c7572fda6113f5ac0cbbf3baaa9f4fcfd59bca6bec65f944dbafc2710cb77abfdbbd2acfea19c32b1a7fb457f0ce5fede6ef70bcaa28ec51363d0df558bd5e8de3d934655595e5d94c7bdb29785dafca7197cfd884e7335e7f5ff5b2b2da7ad5f4b16aba6cbcba26da9be04dfdeae3d874e37faef18cc6c6a45cf625afa8aaf7ec5eee267ac26a47d1344525783d3bcbe937e77f7e3766e135d5dbb668dca2a9db76b98ddd98eda17ae7b48d5733ed6cecd5b39b6ddd3bf5a6f02ab36b575d6f76b69ba690edbd9b7a5d379d65f36ce5d3f4a739a342b6afc65ea9774d53f49cd3d5b3b22cbb6a6a47930181f2b7a3e19425f648bdec573f8bf67435cdaeaeb22b64fdedcd7c5bdf47bb37ea85d1d685db5655fd3f5177fe4938789ef237d600026551af2cb329ea5b596d6156955d57c8f6085eefcef27cbaea77db533dcfd30df5b2333aafadca9ee88cb2a7290bd94f847dbb962308a407ea6d3d9bc62acb7ed45cdbbece69fae99d61d64ccdf8747bef41f0ca691ba7a96fd7ee6558eda7a7f7fc6c9a9abd3dcd336ecd15fd2a0302d11eec2afaa7d7e9953f3c7f7356d919fd299ca22ea737fea679fe18eeebfff30ccf9bde955dffaaaaa61aa3b1dcdbfff596f605046a7ae5734e5db4fd6b1aabee87cf4c6fef710ab3fe8ccf133de1b3c5f4aaabfb5dd9ab1feef377bffbc06bae6a5f51d53461b355ddd5ec5d7a5d5365d93ec3ff6ce5af9e5f7a965e556ee5569ed5f57ff46c61bb2f1bcbd01eec6707d473e03dd735fd70675d148e7f3cbb291078f4c5b6d21ba35d6d4d2fc76b8ba6de85814020104a8fd2dbd1b59f73bcfe3376bfdac26b5f655f675f6f695f40e04a070406fb4a77ba1d4f6fd2eb63d644599675e37ea2a86f7b925ed66c4f78f6fd777665d38ea27468955e036febceee29fb9ea6b26fdbee23bd28aca6e88f59349d512fcf2aa4b79b68bbb2ae37bf1bcb265b0777aee93d7abf79c25f3e3dfa61578dffcac0ebdb133de1396d51996de5a05a77a6e9397a63d8c3a7baaa279aba6e3aa3307a8dde786d673776d3d34ccf335d4f253d466f1acbec09afe73a9b2b0bbb7e7a8b5e559ebd79b2a6fb59975d5755c8f6b5efe9297adb546657f6344dd6bbb0da4f057a895e7fb6f23ccfa6e9e1efce2e2b647bdbbfde60d875690fd19bc6eda99eae9ca2a6f9cfd30dde5f8eedf78771e83d61d7cf27acce6c87cf565e856c3fbba1b7cb306aaae9da3dfcd1f3444f0a7a85defe5d2ffb76f66eecaea64ce85d6198654df7443dbb9ea63755017a83de96853faab2b0fbe1aec6b00a0402814060efacaf919eed07f404bd2c2babb21cf7738563ffbd19e84dbf7ac65efdeeea7a0fcbb090edbfaefbc6b50b6fcf960a6f7f4c93f749d603f4ae2c8cb61f75e51595d31eb3eed71b8c2fe03f26df80c020db62e92df0c65d6e5db8ffd4ec1e46db5581775e7d375134663d1caba86bfe1a69d3c438d89e445f76d6e9fd79bdd97676754f148dbb1c7f64b1bd916ac6176acfcfeb7d7b76d7a7fd84db35edaa90ed5f328bfc2a0e853690ee0b66915f66dae74dd7d48c59b475e5343dcdb93efbd0d76f668fcfdbe19565e36fa6e7c9a22bca0ad96e9f7d357b7bde15fee74f3f9bb22e6ac27e5dcb111cf612783bfbdb9e7635464fd654e7146df5bce69cf6189ebd399bb3caf69fe73dbb3ab7309aaa9d65bff965263d3cefe9677746e7debbfacf794e7b77deb585e355555358fdae0ac32a8ada7953d4fbf8ab69ef6ccaa26e2b647b9d5736e779f528abf63986fb69d27955d9bb5d6dddb9b76d6b7a384de7bcf2bac6df644df4cf6b4f3f2ba627e7557f9caeebbaa2abf9633fc36a7a715e353e4f389d5db6fb59ee2e1cb93dfb8cc2abe9db183d1178d17866531865d5399d537535d137ef8fd5f5c3e7a976198edb943dddbc282cb3a7999a6777d58fa6ed79c0ebd5d48ddb55fee7dcaa5eee357a6dded5446514354db7a3732c9b1f65f3aeaaeaca6e0bafabecaa6eba0ad9bee6e8ad79fbe9d19eb66aef5ff5ae89aa793d7c76f77459b6fbefd5cfa6695e555e61796ddd3ebb2b3cb306bcbdbbb377cdd365e37fa6a667551d3d34ef2c9bf347e3b38ddbf3b3739ca267deb335e5753effc9c630bca22710989a79bf9fd114657bca76f9779f96794ff6cf2deabf875997edbf75d323f3c62c6aaaeb0cc7b39fe3d49ccbd8d2bed4047a63de19565d9fa2728ab27ded272ae65dcf164561f374653986cd763ec3bc2e6c7e8fce6caab63f5dd7f444c1bc301aabb269c2b0f94d53f55f5e5956ff3fe5355e7bda51d6f5f2a2a96cfeb665fd0ca3ec1c9b4d7a5d5eb555571885e3d564bbec3f7b82e97179fbfce1d87567d477538dbfb74f2ebd2daf0bcb699c9adefd73bcaaa85ac0ebd5d8bb7e9ed713fd29daa66e2fa0a7e585cfd9b769dab673eb7ffc3d01af8c76f7cbf277ddde57f3a3595ef46ce79ea2bdfb768ebd37077867b8f7b835e395fd6e6cba698af6b0bcaa9cc6de8c638fcae78c9e72efcaebb6e6b9aeeb09fbef4ff88c856c978934f0c557d9171a1078f44520d0f64060fdefe1693ae909f07aff7d1c9b67aa9e306baa67003d2bef39bb332ba767cacaaaaba6b090edeb6dffdba719e9557959bffaef53d377d5cfbdcf684ae535cf793ddb796d61156e3f9c9e535e8f9aa9fc6357553ffbdbb44d51b50fd093f2aaabe9cd189ee71346e734f542b6d7778b26ebb7934c2f80f7a7301b9beeec5d1445db15ed4579d1b68dd37945dd59765b554e7b50ccf5ec409bee3d79bfdc5515fd302bc36aaa9abfe7e485fddaae696fbd0ac773dbcf5e93775e55dfa270ebaae88ffd3fc7f498bc3d6e57f44cff6f5bd8779fa6617a4b5ed4ece69fcd0eafe6f71ef54060bb962348d753f2b62a0ca76adacee939bb319cba5e7a49ded49c4d9fa2b1d9ffe963dfa6597a48def8a771fcdd544e5d19f5a9dc3bf2aa6a87bf09b3dd847f6763b667e43dd52fc7a67755758e6339fe2801bd222fea3f7aa2de8cd735fde60927659a2cbdc37bf5b6731a9b5d6d6197fdaecb9afe4dfdc373f5b6733761d865d7d4fb8e7ad72ca83ec06bf5b2aac9f6f35c4dd985d1df5921db7bb75ddb4d2bf872051eab17563f3c9bad1b9fe7f94fef297861effa13fea9ebc25ffe72c66152363b7d1bd1d4f3e88ba8dabb0edeaad7cbe91acf676acea91aa3a88c4ef0b66bfc4db96555afcae80a1791368cb459b5afe6b99623a8c653f59a6aaca232ebe5ff59788d5d9e046f37d7b69fb1777f3ac366ff42b607efb57fbda57ddd40609ca2a7d95ee2a57a5558fd68ebd753f56a3cc731aad7a3e6d95d0fb76c3b7b16664fbd312bc7aedacdb68d7dfa4f18454dbdae2ba7704fe1f94cd1798667142df5aa2dccf6965d7f6cba07f048bdf1cc7e1fab3e85d9df9ae8799e74e7a83745e59fa6ab9b9ae7daa6b3a8d7b370cb76d39561776dbd7cb611bc2d7bb26ecab2ff8cd93446cd50efecd57eba6cefe777cdd3a3280aea8dcf738d4fb445d37535bfcb06fbf9e99565774d555585e356edf247217855148e639fbaabd9e3f67f58c8f6d5d3dbbf6755b59557f85c3feccf4eaf1bc3acbab272efa6eae1f84439bd1f357d37533f9feecca6678a6e7ae73636d1dfb6bf9be9eacd7f6a7a4fafbaaa2cab68dca2306ab242b61391c560ea060402813d092fd30bc7271c9fa68bbabfede83f31bde9ccce7f45e1f6b72bda6f3cf0aa319cb26667cdb9ab66bbca42b61b3f31fe7441b7bfe05d7ad72fa3f2ea6538fd73abae5ec8f62faf4b78965ed76dd1d5afeb3cbbea1cbb737b1ebddada8fbe68f69be7c09b9a675f51bfb6a70977d3ec95de3696cd936555f7bb6c7bb232a5d76ccd1465fb4765168653d80bd94ecfc661f0fe722b3ddf1f0610588837e97557589ddd14f6b0fbbdcb7654d2db5377ee6ada59d37f9ffa7e86d7c06bb2acead5f5c370abaa66ab0ad9feff1c149a9d112fd23bbbb139c3a8ab9a69ac7ad614b24634db5eebfb08e93567754ed3d45d7f3fdd2ec742b6a71dd8cbbeccf78b2dedebd12bbb33ecfb99c2ddf41eed75417b08041683ffcfc1b3ff5f7c957dd974430ff7f596f665ffffa218df0002e58cc3ffe79355c463e0edf0997ab4cbece9c2b2cba2aa91269601812ccfd1ebbb29afe6099b2b7aa6f18c1663bba0791ed5732d47f08cd7e86d55944dd32e7f533559f8e4317a4fd58553cfcaee99c6683c9f660ff6456f8caae79ca2a68fbd29a7ec2a64fbd98fbe8653f4b6663ccbb1b9b6dd4ce5f98c652392ae83493898a2f7106ecf1eb4d39e8397e8854f7575d5558ee5997555b7237adbdf63b7af688ca6a63fd59677e83de7d975e3d3cbf279b2706a9e3c432f1ab75f6dfdbcfad6afeeef2bbb962328e4157a4fd6f4720aabdd5de19eae6c31be41e84d7d9bb2b08f65d34c7b1c9f42b6b3835edfb2dd4555d9a7b1e9b6f6ff7330ee5d8e27e87559584d53136ee3d874d1f6eb0dc657fd8dc61ac27b0807040281f5ef9d678517e88de7b9fde7875bd9b727fa4f40af5fd1f9645bf3a3f1ea9e3ffe8f17083c1663762d47d0076f817786e75465e73e9b737aaa662b647b31b66bcdaec0ebcab19aa2ea1cafbeb7279cfe7967f844d9d8744ff67717954f21db5bb431f554c3f3f37ed6fdae3b9fa7dace2b8a9a7dde3ecf1d9eddaeaead5f4fd7ecc1e3f37a993d4dd6abac3aafdd65e53def8ac6ea19a39e3d4db5355d2f64fbbaaa6d5fcb11048097c0dbcef0ac9a70cace698cb2702c643babe7fdfec371f7aed9aa323bbb6d9e37763f3aa7adbac2aa9f4fb40d26ebdbec5a78785e77edf22ab7739f531366d953c8f67ffb1b595c6d7c957dc9f87a4bfb3a7a35f6ceebc6683cc3dded322aff154e856c2fd2f59c9e3c393c3baf8ca671bcb26daa9a29ebaaac90ed728db48d5fed6e5f6bf0eabcea87e3d46cddf37f7fceab4b84873152fe356b62e1d1795bdf9eb2e9b2fd8cd938564dde9cf7a773bbaeeceaaee6dae1b515b21dadae5fc4ffe80604beade508f294f0e4bc7e46d1998ddbd95de1ee7e53c8f6b4be8f282fce7ba66a6cfaeec2ae476713654d333c38afd97ffbddd5c7739755145d4f37d8cf293c04deb3cb6a6cb26d8bca665f4f94f7e6f52edbbae899a6283b7b5966ddbc663cab327a9a2e0aa36ceb4d143de0ed723f4d565dd5d9a76b6baeec175e9b575e7f7bca7e354f739de5fecf93cd3bc728db671946d5f3ecf3e9a2e89a375dd5f8fbd58ce3389551b40d76b49f6d786a5e5635cdf4ec6aeb5338f5a67a76d50c8097e6557b7cb6ae8c9e321c9fa98f51d4807796dd0fafa70c9b737ccaeeda83ddeca7013c34af775b7576cd734e531636dbd3ec675e1955fb7a76195e65b6a3310b04a26eb0a3577866ded36c5b2f9b6b87dd3eafaee99679d7b8ab2cdb5d549e4fb4c71e7583bd45e9ce303c326f3fd1b3aba9cca2ecdcc27d15b21de58d79e7183dd11335e1155e511585d7b51c419927e69de1794ed7cfc26c3cbb2edcdd804020f0ecc11e7fbadedd3ebc30affa65d78cd3ceb2a9faffaa1e936f49bbd605c303f376183e5d98fd720bfbd394ff9757367ddaca1f4dddffff47552faf3bcbab5f55b69f666a76b50381f7b76daf767961f764d7f4fbd975655346bd1bec5cde56edff84d53575e5366ed576cbabce69daa6eefabf3a7f349d89445f16ec5e7805bc72ea9e3df6322bcf29cccaab5b86a7e58de13335dbb37fd8abac9a76025eefceeedc7fdb5d556e3dfab3bc68bc9e262cb767bcaa68aaae03bc262c9baec9a6f3da9a270a637957588dd7dfae71dbfd37bf39c365d772048dbc2bef373b9c9a3e455514f5ebbc9e6b1c4f80173efdfa51d9fd7367d7d83d81c013088c3f1d1088b6489e9517fdb33ca3eb9ccedec37d4dd978555eb3f5f0dcbabdc7b0ebfa7816b2fd8badedeb8b4d5d631e95b7b72babba6aeae78efaf5446d20b05577f0a6bcadbb9e299b9eaddcfed3954f296f8aceacea5797f5aab976d97581f0027861d8643f3bb3f179a668eccfb7b4aff9b701a3f0a2bcadeae1dfaeeb99c232cbb2adfbf506033dc9f0a0bc33bbf68fcaeae9b6ecf9e50f04f61eecad1dde93b78d61975561589dd3563ee5930acfc9bb76f89cd7158dfd399faed9a2295a00afc9db65d7a7ae797eb3cf296aa252784c5e36867b8f677956db2ebb309cd20181ab1bec29ddd9b9f096bc2b7ace663b7f3fa32eeb65190804026d37d85d02784ade933ddb338d67afca1d7555b30d76f3092fc9abae6abaa6eb39b7e80cafb071280cfebba1ed7ebdc1f8a2672010180c76b3077b3b8687e46dd5f8c32d2babb3373fda6521dbbfde601463bba071b8b6f57db4e31d795b53ed6bdae3b48557ef4f13c647123d10c8b22aaf0acfc8fbe7d5ed7d365b788dddb6a728da579979a25ded6b3982bd2bbc22ef7aa2beafedff71acba6677856cbfbf1c2a1b91ad0a22efaac21d4e517996e31535937f2e78f4c57e9afde88b684dbb6c70c8cbce28cac62d7c9e6eead51f94bbaa9e7d2d471029e49d51198d67156d7b9fd7aec642b6afddec6cbbae685fcb118c83bcaa87dd7535cf336ebfeafe53c87639e3f00ec2489b3d653421405e3765dbaf9eb10ccfa75f5b54c8f6a091eee7d71b8caf1bfe6633cabee42410380feb6f030834a20181402010687fbda5a17de2fc96f655c338036844068d3410581c0281c61a4906040281bdafe50842c873f7ba1f565bb7fb8ec6de6c5973987c57d4345157eee669fab3a7bd752bd2f50b201008fc35bd1691467468f7aa9e65bdbcc2ab0bdbfdb3fad7d1693dea5ed8cb7137d78f7695657faca62b4cf7ce1e965dd645d7f9af7eadfb46b4fe6ef5edd63b5bdf36f2355516fef1eab63df6eb19c341e327b23d79a463f54b56915f6f5fb08afc72cf7fbff0ac7a14eea9ebc6ee975df4cc7ed9df7d6cb2271ccbb10af7d90b5fd46f0bab5ef5f399b669ebb669fbf506e3cb4e46fb7a4bfbfa7246df06047e39a3af8140fb4877762d4750fef1ce2bbaba6b67e5de9eea2cab41b7d7b7ad1edf133d4f539ecf555ed9d6754fd565e9d74cfb3aa36d1cb72aeccf18eef56da3c67756e78ebae869a66cdbc22a2a64fb6df7837248f8cbc1b57fbdc1f8aabdf0b4d9da0be3d4adf8a22becc2b37ac6693ac768da6f3b5dcb117c89af2bc3b2f965d9f59f855dd424d2347c36f7b25dfdbea7329a9ef09ad2b771184c5764f0dbb53fa63df5f1ce27eb67163e617645fd6cc6edd98b48231a1cbe333cab1efe67dcdd1396dd2e64bb7adbc33457f8baf09753bfa66d8f7daaf6ff8947e49b29f7a62eab9ef357d9536dcf356ed13ebf72aaf675fe6b1b77384dd9ff7e94fd283bcf310bffbea2f1507edbeea6701a7f73feebdc7af3df472f8fc99e0d086cd7b51c41b9f865d9f384bf2cbb7f96ddef6121db55b7deedfab777715e01bf6a0c9fb26cfe767561b5455121dbdbf946ba765bdf368afab7453dba7acfcee9dcc2b20b0bd91e34d1b1b8174e65565ebbeaa2b0aca6a72a647bf03c89c41fa76ef045d5fe3bfadb1856d7746ed5752d4770478f779dd5194d65d4ec6d8757d4050289c41f9beb5a8e200e1eef6fd7dfe51f9fd5a834f18995919ac428848c2104180c89040024a31100303828188e470312c95c40b8051400035f9674a04e1b4aa44918e4304c21638801c600400801100119a21a070ccf197fda13dca1cfe05367f856a9b4a40edb4dfd00e3dda5f6968130c61524ae65a9907dd40e400cb0dd6164256e6533f35d54d5423dfe9a8177e7289e313ccc891b01044e009c9b4ad12ded6e8f5b136e8d968bf1a17f136c653a653354203f4109b99dc742e152c9b31b0304060098d56b04f0a5a4da365b1bcda7695b2cba5d7518d91a183f78f3e6979ec66a758ef9be4eeaa367088b2c636e8cdfdaa700289331e64258b9e512d93aad5911a2e5c88455f43f2678e675caa03b0d332b2f401b7cdf6673da27072b79c771fa24c7be92f35cb7e212afd5c76b46aaa0db49fcc4e7495ce6857616df8004265ebaa9bef57216b7c94b6cfbadb2e33e5a0d1168263519ad0d84711aed68b0723d0570a3a9bf1568749d8855a14fb9dfff5d2878c9af1af6089d6777649b6fc44a0714c0536b32f7cacaae4d88f7af2bc32f53c4e61a7c8f00e0bd9fd2d56148958e73dc86025c6ead0201782d60806dfa4ecda7a2e09816e68a402a06f6d065b9da7a69baae3ba6e7448904d967b54c0aede38d190da1d9a0dfd0caca21a5d356a3281445c5293c3112f911dae7c07324168828f6be8c200948ea16724a2a0eced8fdf12f517008236b5c496274587e699c9b9031412c714dbfe1ce6285232606258b7b464a8ab3faae67f6ab40b14041ae6465e5a8c6b3379464485174f228355da118afd3b949f5419c1c554f60dc09ddd1e64c9956abfd22ffcf7178cc14ac82aceef8a1179529ba771e513ab7b7aa0a9b5f86e6a4430bf742dd94baadf9e3956ef2e967a950a5a407e597a90a4fa3e5cb322664278ef802e352884a5c539f478dcbc398e62a5b8e100038936451b1b8d17042fb5cfe1ec2cd0fbcf800079bc5e0ab7c05f4580cb353f91b89a105708a54a5c55aa15bf9cd701f14be5bb680f8e2032f70dabc84865577fb01aa9924d47524cf60568def4f2c8780194f125507b22900dd97bce1386824071af7ea5116118fbb8bc8da3007b355a32aee1e5999816c53052fe26daa715aac1d3545fef8a36f8ecd6381997533e9f6148674f07326329d4549910ec94b1b5b927c8049457e5a59a8b4bd3d2d384d11074dba413f2082d4841ad26c2b83f0ec333d3069a170cf0112a0d5d0b693d3f8cf37d97fa441b39c62c6b7c1ed3f94b7f94b58f3476907b33c931bc4c7fba98f5f2f6e7479e95ef5518e73c67b3fd0e1d89fad4e0e88060be40834a06ead7506851e6261cd718516036302e6350614a118b3307b1f3faadbcfe020b6c5a36574a722247ddb53ac9f81e201c2dc0b9d18b77580f1812cd83e7d5a64a9228e15d00744e2dccc200f387081de40b49f70e73c8fa9f7b9e7a830d74b91dbe836db94d1483b15f674e7e2521dc4be7917527147a2512b217433c552d6bf116a845494765c75192b1f1f8443adbc80d6c258090840497640a311625a44af00612038bb04c65bb346e974f73a0c528f0064b87d3d87002cb834aea1dd0cc53f61f449c200d98867a802cf338ddd4e586b6eb570ead15dde894752991362554dcef0613f06d57ae2f955656eb761da6de9e6b8078ecb27258d5d6fdab82142792a0b8659ca649ffe14e8040c4bceca14f12e63768e7ebafc98c822564cebcd0c9c10f9a769c3c44e38f97ce9c563ea73dd76272e27f5c259bddd6348b7a39efb6e99eaede2617cf3040f0bae13638cfabe1b9a3174598a7ce759bf3944cbb81724f5562143d132c66cf8ae29886049bbe1092c8efd3f164b32101f765c69e9730e230542e9ec7ab48fccfb6b4befc6e4e0de8757208a9303e912858cc7ec407a336753323382110d500d314aeb0fcfdda3c4ed47f2dbfa837a67b1f57cd806ed56fc8c6a68e750972ca234a963977fc064f19819dc8f7dc9de38c90e97d04eeb290a3eb8c61d47a95df479d73fe98e861b693fdda1617d5e6c7a4841d1a0b178e5d1ca3295fc154c74835aa461dde6b2a722da5994d50bf4cfbe0c1be9b624497a8dc272d590a2b4d95f45b0518ceb1ca900e3877e2af43f5673bf7c3c418f893d90b8b28421db09ae24a1b12e3b36b5c09c8855f568064305607903b118481148d8b157cf5ebdce1eec2d796e20c229020c11ec29a7678e77b3e299e69d44df361ef58f2e8f78ddcc36b750d38909ff581546723e39144137d8db9a6c3860076e525e3eee2d9b5a28aeaeb4ec8cd7406dcc04db0dc29e1393413ee0149ad1d2a4703a2b55e79d6beefb9a8fe7e194fab047d380252ca1ba5cdda23b24d0af8d1123c9f299c1a0816b62e405520f33313bdf78d0053fc8568602c9e1392616dafdbbc4376b42d3f7dc4c14da36cd72d0b4af6565643e156f8095d6f6c6470e22c3ca02b8672c13eed133dcdb4762a5ea3b0610e951f9a13d3b1692097a286cca75efa42ecb2bd1af8d55478a917928a3a5842f460fd9aaa72b6c9347d7e65ab87703f4d81913403df96ecf73231b73648dd8f9e4972e1b951813c9706ad0282f1fab85d05e94ef452871a5a5407d5ac0e34b3744ce10903f8d656f8060ca074440843ed5ff1697cc156dc07568ccd6470fed8a5c37965c5d321afbcd8c865271d644f318fa9ca18b46b6b72a4900d3c892d65c135bab9f21c30f1722825592cab74fc0fc6431349efd87f6eba010b99667f60717c7b4f957f1c5e744c09e6f592bd0f16584b6d198dc07506e6b5938fcd7d584c4aacea42d90e11fdece1edc4f9e311512e9ec37d9b52d23a1ded7276a76421345c6739059f73769b534db649b1c65c0b7434ca85bf207144fe754ce4cf8599f143f52aac61e6fff67c076ca6504d6f582694101f8127b7bd41772e384d202943af1e84b7bd7696688735157fdfe79f13a502d09f353091f0d2a0abfb1307102e1f2bd2f0dfcff4891be42af8b4a6ae017229f69275097648090d68e52d04a0b60529a02034ca601b897fcc99f245c84211d5b61f9ba052ea13f82171906a715f2b8b1f60605e05b1f0cfb8d9ecdef923e2a6578309eee093a5a6db1b1d76bc32ecc6a6d2c5d4acaba384d9382306ed1c91b9d32e7c4dd54abcdcc39acd82d44c448d19065ad15a8ddb6111b89d4c1309514a2022aa35b9321b26fe9474465d27d8c2f57079844f2c10452412a979668b2220003fc221c75a222620465f8a9fa48d59414547d472603764410c40e54f5903f179323872395a05c211c91430c8a5297dce05a1dbea84325264a88d0b062171b0cb37f6ae4d470f9478d7e0fe28d6fca4e79a663e9399f0d7ad885a6c32280f629831992836a8cb24f116bf50295bd0bb6dd9f23425e181f361d225d808f79b57bdd9f98e96006aad990b59da01b7fc26fb3ff73fc38fbb67bb8cde52a86c7966063db5f650c99c993cae5b76525bb8ef8f3ad512faa3bf66f7a7235a8cef40c01dd07568e3733d419d019ad9b2cb38c72f683245d65ad60cefa7b58344bdfab0e08fd917d96fe37d44393e1a2214f7f2b695c01f672f321c3832d5df9b52f66ce3917ff9ff2144c146bffd9873ce4fac7b46c90acf43feefc24336423ec3371f1b00c52777148f44617b3d5fa12147d630aa74e3350119082ed83d1812590f3961f977625d444267c8580b13a683028830c09e6c13ec014ba77c74ded363e188abbc932ccd256c911126666689065735d00d0b2097a07c86dbf68b5a7965fea9a9570b2e9bf56aacaa203c3f6e13c064386f25ae5008c57ef8e7e0ef4dbbdd501620a9f9c46a45a9fed230809a7f074f9088079a5c26256b66cba5170a70e6c007c408f5744086378c0b08f2275a5ad7d4bec2f29cea91b1d698fa9e5ad359abec83c0ce66696dc4d0f9214f1f6ecad754ab5ef3a3810a71c412f88b90e4f262d87eb4a40d0cd1a1171809f1ea5393ebe908432fc8b19f2c23c36de5f79f45f0e358060bf58e3bc28e99f4025f3b69f3c7519508c10125f4f78a070fce8536c9d95bad03d90092da0325d5dff929aaa1a59abc9e4eb21ee0d38fee7e60def782244576719a89a6450c0e13ed039b7d6fb93aac208785d5999d9dbca4d8089694f71a9cf33b485cc601bc8ea9fb764d97ab1c12e2092bdf718abc50204f5bb9faa9e81aa42b07057c92c40260bfc71ddfaa88c60cf714ed0e83e45efd9a3e679414b07e9566598c0f2aa006a7cdc83347fbef3e9fc074a822436e1e50064d85bf37d3a0b19c9345258d020b4713b1354b2b9048114b3d795386b3041147dcfe75d20ff7ad3a2d5c00c345d94f8fba2679f039dc18dd516f8c8f549b230785e096619cddf55c8a31ad1c61f251690577a18451aeef3f8779f3429f5a1c194069461348051bba7b7342e372044ca487fa141adfb547d810845d2cf597078bbb4a03efdc724058c8d70662cfff4b09d48c6ce2e4947cdeb3d1a229320937cd3f5dbddb87aea94a61c7ab386a067a708cbecd511363d023c8fc0a089cd542eefba9ae7a33086fbdb1dfcd0b826afe80678459e6fbcda93aaf361a0758e41de87024325f59b5c9da01610b085e2c2238465fe1e5b44cca2e6da8dc2173f2b35f4e851e9f1cedef76640774848bf9052f7917825baad73c0ee661a2e823d944214a107256acf1fcfbd7c1626aa77624d6242b29cbdd59aecb1b62ae301af08bae8df8356a984c9b70b0e64bf162e0fa356b62c6cc22ef2cdfab1623fc04adc804908024615149a7cbfb9d96b8fc68b3f552fd0231cd833bc802fc2c3ab678093b25f71e1a38ee8a41a435012753ae9d4c2e0100638ac0728c82dbc1bcf1db03f63ec3139a0c6b27e262436c7f9408abdbe4e66aeafd9eff9178a27d5531a21d63a47d8f494f8f30b22a5bbbb1944261aa5aebbb8b0d7e7b1e826fc2ea9984ed777734510a0c854f9bbb826affb9d24ca0b2b9d290f3e3126a9cbb125c6e42b87c8e08a1acda51290fafd0c8fd581313b61ac7df7b2d8222cdcdf216779009551b59e49ccb2b630ac14e8fb2fd9ef885512faa012396872386a44487ffd09e228ad171295fb5aca4524b37591b54eb8a2f323cb70253ea1748b9efb323910262b83b595831f14806c1555e269413e74cdda13bb0e890c14e476ac9c940c1f711a35624909bdf75c517da15a6160e4c2f96957a6acf997c46c4e4b1ce89b012bc5094600a752b76a26c615084be5a6cc0817577aec6094ba367b9c0c767ecbedffdd931fd8b6ece7792520ba55ec33f17e00424224528efad54d028dfc8fbb98c16843b5ed3d11e227d9c284317aec2d6ffb8beba29cbcdc588f65399b6f3a4a9df66614f5ae1356a9013148e3d7440fe330aa402a3362a75028b0a4028c76da75913b3737aa350b11e065179619c1a49ffbaff40866eca3f220e9658c066eed50d6c8437d76451aaabf2748d2ca90965e24e5c38c33d97920122a9703b7bc238e4ba9d212fbb034534e1381245a42b6dee5e5ba0a953fb2a237e03106330c613afc1e35c6e3c5b2b024727d66a9af8f19dc8e39a8c84ff84f3845f40263230d5eb13878ce401aec5063c353e0fe40c22f0364ec92e47d965ad0c5a591ba04a1f071a80c969d218b6f7f8070687356f1f4de8cc64a5fb88af38165cc20eafeaa916872dc54b706313132a23876afb0486cbdcad4edfe9cc4aed272ad0cc54c5a2592e3c828c0eeddb35599053e8eb4c134544b9b380db7841d241d1f64fc3d3ab53e85076e0c2061e42e50ec618b99e54958f9dd90f3544e6cd76d7b864b4ee26c4b67091a807afc09b8391e76f3dd0f17cf82b3bcfbd335ee1b9319d4183eb9f673b1c67a71fff44f19b0374204cbe7c29a65a30957690b0a4cce3851f1931d2dd618144683a4e4f426a1638c4857a4dd94d76dec88e762588b7c02a46ac7868fa7eba68ebada105df3ba1d7c9f644428c38d16e26a13abdf792289e74cffc76255eb43da71a59aeadae16f9398b27c735ae469fd1acab97cab924314e383431d980efc9c383eb48eb4d2de03821179c26716631d38bf49094e72b07d4a333fa7a6a819bb2ba612677ae49da74be29e5c10770b0a55ab3f1882e797641bc23e02ec2dea27771d2caf5d3dae3476fae1754456917c93253439ef2da6ea87b08ce32abb1c34cc8b02a6b00d4beded3d0ab2ff8c4cdee56ada61c0cb9bb02b3128c50550006aa2f3f17adf0e74379aadba760c277ae048f9a1dfd18a0fc1acfd94dc6c23b57261137844f2e45603a8b320e8e7a7dae269e9c15e4360fbc353cc7cf22020883e7bf8f4f0069829aaa2e12aef3f72c18838e96b498248dd0c5de450b26ca054291d9f57e167c5c3871eb63e6db91d8b213224ad1f263f4aa5ba094705cec0d81a1b3e30c5c02b453cdd1972459f22ec2a743697ff8c15b8cc5ca0286c401f84510e311edd14ee3fb9872009c5e48547afaef122098f586bd71bf86fccf85843d7ef17c6ce59a83633131fc042973db618b17ffa1b92c57cc7c61dd756f654b48d093c71c7844c5f2d986fcb488e2e701a29c74756900dd79610504e5123cd005d0d140fea7af65143f483e699e0479de1e120505a71f8b3dcb00a83d68b501b0381ece6704b81ed1199bb62fa221de8c61fdc8bc55b1dbbf8d4e27eb460d15e3d00fa14472a757898e60e1a4a4035d0637a59113d916e394fbb00c941131a9403259d0a534288b8f664da43248ac62ce61e1bd96534460316bfe6bef210d1e54c468f011388d7e358e2c18bb818269bb7863d90013b3818a8ccb00528778041ab74b5caac791bc7418ddbb00654006bc49b9e0393ecd1b0bc1c361ff00406f107b4a59c295e9c306ac9ed08f82b832334f63e94b2294d5e614c54e38b69dc6aa915466c4013b79764aced1a6bf1a47a0c1dd705d7a40c2a5e64f4a0161595e1f1bc8107ad350edab3152d3b97d520cccb6b07ad798d7a41c791156610e04307edd4c406207ff236f6ee6f15feb1a6dc558c0e6e0535f397fa2403d8f00fe87fb2e8be05b0e502b66d0e93c15d9b14c2e36d5c4b1825aca44bef3201f8288a4418540eb492c24496a14aad30c0af00336880aae24935e644653b170c53f4c84100ce18316fcb4896bd07fd66c4bc732c444bde8368a4ec77b2d7959e3d7539a60999d0dbd129853353dcf321df5e5ce55de10cde1ff2577e87bc8d08e20a142208475b8a43b2a60ae9a10f663d84d92e7dddbfd1b943e8f57e8054f8176357d2d7725c7d2d6b069116da2eec7d02bcf2fc136962e08b688ea57160d29ffc853a9584a64805d82b2b1c36a7362d969dbb412ed94a0595b11981a3191ccfaa25631e19cd73a8db4d078cfcfc966084e3404407613476db459449beaed9cbfee81e282ffab32be467344765e968a25611f35f0c12fab8881c748deb9d558b5fc261154ebffbe746467b988d3a06b8512f66d8347366e8145738b9a340b7037a24c9b4804b377bcc6430806ea9905656bf88311d2e8d0a9773d5fe986f89a4486e1e491b86b85b3b8e2b30260b233fc5652bb5b53b90fda25d1862c51a6eba56df9405a925e150a2af9a855eb77b5fa1e6623300eb16cc174e24fd66ed7308ace581a2582899cd6da7d39b52291f8ed0a3dda490320ef47d384faaadd62049f95e75c039809e75035defe8a09bddf6efb518cda9b9842af0df6100ab85b35a6f90c6a106c0ee9383b22773d1b74e935c5ce115e94118514a7fbd93e218bacf64a2e59a520d5c8ba95b75ca44666d16770d632c12b24c9435a02fa57ea07402de6c702d8a2670b10ebac9d68c7d94e6353fe725acbc001887fc32d22d9aa2edd3929680f912d80297041431be067c74491eb831ac4ebe6b06d7652066815fa549fe3090263566bb05f15c995395d539f5f24ce021e4d2c1dbc98043d0520464ef71aa1af43476269af7af19464c637bb421ef8be7e36c2f9cbab6bd2ac98bb3ab650708f4665f669586ac7c0291364d2088625adf0851a212679a07b1e7faf8f3aaa611f413fb9c6b4d32ca9c9e6e2930e6de1025855122e300b939e6050a7ecc80810542bb18e6d187079df968274fba8098be3441147b6fa6fd0234f603b1cc56d41f823f0fe91204e5b9cc23f17cffe3dfd7ac4de7a9495fb6a02c477f557f076971ed2487600b1f5a33d0e7cf38fc79a65c4290fee7e4456baf7dcfa7c7d003161bbf518c8db453e930dbd64685acb5573abe6fab8d8c7a5c42b3a596b7b46d243ebd2b9cb982e918caa6bd86752377bef785027e75510dbd7dbcb304831f7febca81aaf9bc4052ea83f6af872dc2023fbc92992361bbddb37164f27fdae34a4e43f6996fd4136c076e2ca07bcf6c120704ddfc41e7cbac7b7a5ceb3b9e7f656e127814a47b64c6be664d0dca92834fef9035881e7b20ff73d8abd3ccd017b531f99ba86c3be00b8ae009ba06d4de4b5d1e82e4a07de073a9ef25f4bee462f1a89b379e68cdcb6b658f7c86e8fee7859f17d4860419ff862abb070f716cf10ce0980e1cf160d9ea2f3c1a1e20013f754e13f79c3167b31998cbb392dfc2627a03c677a4a42ed48434fdf53f5e9dc59031be637ff1b9e447aeb45c83a64cc1c861ca84e5362667abddc58a0710c4702dc487a429cf80309ee399ea1cc2983976918dcd254f3fdaab71d921c0e0e0dd466501df26ce5fd2da0f0679db172119d3fe250df2e05e7f81f1e2a4a5cf2717972c930710476309390ba4a72301e34594a9a4e296989af4c525ed2b2956bd2b0fad981ccc84ca99dfd038df7900c98297798cf9f6a376f36495043d138fd553e86137827c926b6079ea035e7699693e0e3a1a670f549185d8d33ccb891697379f994ee1c50f37582b2ccc708eaa0fadd3ba17cac1ae3d2ed46e9e64358dd59e702e19f84c35ef301097b8863a2a9cc8bd990f98fe0c024dec5041f0a5211960e0dc624a3a339b0f966af522713bdf90107ebf89f4f2168c876cf55335870a7d86e65d98a2e5bfa1cca0c6fdaf32cb8d50c8ae2e39603f1a5ea4ec653be3edc30e7959d865c5f8e93725c852fb343198d7619633ed0928e922c5f6c1eeaddeccdcfd75048dc03316e5787fd7c6758be8074df2845ecde87f615ec2b548a93e0fc3607612aff76c4714fbb080a6c65b5d27ff4d047e33ac81e419bdb37a5652ecad88d5690b2e2c45d47bcace8a69f893ba9e652a61b3b5a73067ddee7ba22e76d6be0cf96f6f9cdf449a1832b9096bc80047945a318a6e79c6fa33a3e3e6c81d71258b6bf1dd5fa8e1fb8edc5fa0817f8539114e568ce7b4f4449f5b3210e804822ade0e16c5b6cf0b201c7211b88f09672bfc26698165a1cb634b9662fb4a510ef64385ff30293dd93c6acfc7bac310f3bd0d71998691b2f18fa2dcb34e50dac2f5eb3c314bdb7f62d382de660621b8d1e22d02ddc4be9d5a869da37f2ecda4f9b4fbe338d767a014e768f97061a2be877f2a0eac7d7f3e8006fc67d4067e9b55bdf25fc2eb2ae6549b2d8e3030e8d7d4e8fffe5047886ec018476f262f3c2b60042c8f299dffdd54f1d0ebc17f0efe32ce7934ffc57bcb02f0cc99ad63fa1d43ae001c8ddc4a3e33d2d8aa7a4beb5a2d17ff3bc6d763043f50a43dcf5b991d144a49376b204066d89ec2c176e455103e5eeeb913fe177487addc147fde91f63a14a23b30156207908da1e98fedef323e33d0a90698883f8180357b480e728785c53ffe30ce335391d711acde6c69efd1da473fd62ecfafd6b857f3ab1d33d612d76412196d829be4883e06ee3a1bb2fd034f63d5d6f0b4d38de26ca3dfecd475ad63b167d3ce502a14d04249be4c6e4d30d76e142a2a1791d06eed68e27bd548449f3684e75046313f7b275700105316041b8d4ff8a4402fbfdb228e03db2fc6c69c3b084ddaf7e2f2cbdfee260a3279f2909c1820b20e116e3646c03edc59daf276931ef3761fd2adefb9758a755124b09e2c7e7b25673d010e771d624989852ff23c6d9fb61a752114bf8d44b026545437ade46f87e2f54f05976a5360e4377494014cde35fb9f49525b7a1adc4dcd82a25d844ff007177b3392d6a801d17295ff8fde011f0c62e8f7a1484c14a1b2695c89ec237cb97d24c14d078d787e0517fd785805b3fc88e44f5be56635b1241c886031bfbb4649226704b33db289efebbdb884147ae983bea44db721c3a7b533563a56ac8dcbefc3e9f7ea7e5074b701a6f1e2e28c3855b603046e3d82eacc58761ba3717d35229ee06a874ff56eda1afc18445299f96b130ba7ce01b4ef55e573fd1bd4d9a9315a67eb3c9b36e367d7c08a251f6f2ed9a36dd78f9e8880dbd19da60061a2f1de25cd2239b10de82be2f090c164ae585e61c4e2b9906939a65a5403a9aecf1d00fdd24415790d851107309766a477ac64568e68228531533ac5e4d1344d789764a4ddb61053aa303ab4c73189680fdaba355ceacd7f24c0da1e34791a64ef8e47007c693640057c10d79ad6ca28a7b8a0a53a6afe455d8057285b3ff78c38c06a1a07e926baba927f13725c39359ca67f22807743081de97b867f9c37dc77cde8e04464070b00bf63a6c6faa3c5af75f9517e9b6074779ab0b8d245b2337dfccbb076500091e87543917f9381bd2e09ab7edb34642d95835fd8dcfdd75077ce1586888b203cc20730c2a30c7e8c16c1b1e9eecd621f7c97de9d6329bad16001ca6d404d4191f743f3f44bc7bb6b1e019496f87d3935d8a3da38b85b41c2b336908f7697394f52b790bf3219e18e6c79cecf1e8dde93e73487753ec9530aa691ad67c6a916783490c9084bf4df789477bf3491df69fe89fd98692039ee35976fabcca126bc86abbf3fbb91062deced8b560abd0de233546e54f5771ee1568f335a5185f5588e6443813a985265e1f08dcbbfde490c5630f243fe05fc833ce577d37dfb748383afeb3ad53e6a224bb7e5ae5291eb014a2606a8ff5750a7c704925672f012bb027e42c7f1295097a3253df3e90217560cc62d04dc41401e8503d7c2b4f49d202c4062100b2086b3aff23dcc16fb81e213e6255a4b57366cd9b053e2a7fe203904b4f81b0bfa92d2b14576932c1b2defb6bb4cf94438c18157029b50c820e4d2f5d91482b375e1646b88cc7c2930664e338f25e832a6fee260666a39ac0902062325522fc09169752a46984b13a5bc3bc42e2bebc74605314f3d09d0455c2c8536400f216edc5390d10e983d01b677521f5cd124b3ecc53b4bf3e8611582fb1de8115ce9954140c2382fc03cc2685ec86d12b7c28aaab5c77b3a09f7a20571989bee34cc8247da2b14c0e0f48964595d8765237c40e50996dcf52834f5d250518b84f92475fe0e528897bb7b7a31d49e875fa7771567b84d1e3cddc1857ebbf4b95be0006988d721a5a258c32888a52d0c157bf9df9f39c8bad1e76015b85995c82324652bc1a91e09d18b9d7c346a9d63720aba563b0a469bfa39de5829f94a481df13de00d3be8f22d23117238c041164354511102683ea2449632337affe38c80523919171589c43547d12cbc438509dd2e8f36bf20112305301f29ce47fc5190faf10a9f7c8e164288d1685cca2d7bd94458a90d945a254ced0ec601daa5ff9feaaf3b73a8ac53ae7534c62ef1881860710104336461b0a4a11b326e6a22a1f868754c6d222079b60e8a1b4e93e77169983e73f0dfe5c483e847130828c21387a5204f07f14aa80d4c4e08e680693d658152e71a07abd1d6f4c032f9eade85c03ea8a83ae3902df1065744a41b767f2fc902355a24762da6a623a21ab741582cb4e8811a949c535b8a9e97de440e3a801b4ddcf5990622e86d688bcda7654a5ab3ffe34e8a49e40697a5f1ea0c7a6bd87cc4aac1cb52a1a7bf647d0f523aaa19b98f6731b9d1a01ebe411eac7aa29ab3235523cdf2f4473bc88055ef188a7882414328ab8b201a6f78c56b5abec00ab97092e05e50307b2b45cf4be48aecad2fabb38e229fed9244b35790cdb84eb7db5601c299ea89e6d9a3c353bd2059ae2b46b3d548b50f3425462caed7122da376fdfeca08cb69512397778b5a87bbd225b52c93c463599d6f752982992eca67b5abc7b79638c13cab24b054d7e453b1d86cb655839829d47fa54f7e06b7b283fcda6abc5027298b59991916ad149f29923bd2afde4c973a0afedb48166d51b29bed72512d7f7063b02d5ada7c6713069b55d7166ced693566a8c50fde8960c13eca0beda998a6b735840be7a4b0803e3594fa5c44a2d8b6c585eb5844919ff5c264665c413cdb65ca7b5a28403ebb623233d8a0c6ad72e124325c309fdd529d1c69283e8eb9e213182bacef5e591903382b17c75c992a4c0190088af287c87932e5d0b8c990a16cc9ae81d5a2a8ce2f6d44067b1739de651b036430e88d4a7cd8225804dc4aadb1bee8c36a7e740701ee32ebb8b4af44fab7494344b51673b6480b72577cd87fb9d20f55511de64effb66b21206018f96098a33b2439263b411458a7d6e54ef5167cd9606ee331cc200bbec7f8112afd6799dd1835c33c7e6565870e92af98718a9c19c35d0992f1d274cff80648b1b6d65f3b72b83101097de2c6f91716400a0c7289d78ce94a66c0eca085c04c9a170e46aac6477a48092f6943f36c6e97f2fe8b6900dcc9e18f325a19dae04d0aee75382aff251c9567621a023eebf803cfd5762134732f10ab5db1e7ebb079668edcb62578f42f63efaae8d1125f28f6ed4919034904f08d0080e8d998bb0759a6b9ba07f1cd2dedafe481cf052ea574b7701fde67a7728d90990c2b5d3e0318ee50177dfd0cfb6cfd91d374b4e75dcbbebfb92b2c70f4ce1bab5053db286b7ee3c9fa8ce2d4317f921f8d4ff0c41bbf664797ac247d9658d37e0901302c1ff31c55e4e15c28bfe64e718c9a5cbf2f78c8be9d30cbd18bc19080fb15c0e0919582b8327f6b258ab3ecb80ca29e043ec53c06422ba3752a363b38adbd29fae1ea3f9ce9251803fba76556065f45d3d239d6c5c6dec333f0eddea711da9e71fb8e891962d9aff22ebe3ca2a19401807ccf0e637d92254b7c128fe1fe17d11ba801fc4c7ca808c1189d355fbfc3f5534d93cac964a01ddf2d1ff7acd07f33d40350be7c644086919cf797aab1f0fdecdd0da9165be634615309ddb1257a576e5b97bcfe5ff4bf8aa206536dae95e33adf3f824438350ff12188d21f64b685ea8f4d94e664f6c90aa8f649153b16419d525d00257cb136ed9273f467f37b4e60213a3e0a347e503367f8bc1598ef7a911656dbd185636023cd391dee6b14c5a8d820b6103c38d32bbab38129adc9481a291d37ed97cc81cade7aa8e009606422361ba4c76f7f65dbdee7d2ecd1e64ca25a08ca47acc0202ad1a8af41b330d4da0da0305188415dbbf6701083908967fe3bf3eeb3a70dd5d637d705893a282cdd5a6a38a9bc95f809216d4ad844bf9d92a1dc4d35e3aa7f931365272d1f415dd65360823b8da1072633a9bfd6d0a005b5d1f765e74449213cb27e418abefdd3a4d15f988294265a599b32d589a02c4f1a05eaa850289944ea974a0d2d53311cd229e27fc42ae53fcd22facaa513c4eb74e897ba5fc2de32151b2c6451d52919f53f390bfd4bd328fec2a65196b69ba89b1c96b7b70adc4ea20a1761a5a3dc52179ed8d156b5d30f04efaae4e97bcd7bd7656fabf085533e02a42f7aaa7d04d53f0902785d05945625f0af32b84007632b84b429614e29a4500ba52a8687a8a16a72f8891eae2c88c115915e49cc4c13092e8aaa54f144591459173f268c33943168a4918a36662f8ea4a8a344f278a03eca2f903f28e44a1219a246122692f15492e6322942278f29949a2ae57ba5729856064d2c69a865ae5c12925eca08e6a514538c643e493327443330aa49816c26d14d6209a78cca797802a3ed279e6d8b0c950d5bbc3846432e71402e5e9414046a57291bb8f92c172af76f8217d8fac31ad22b3ab6d626dfc24eb283b7914edce079b96229f36471f48d0b3d99926a1a74a65e241c43ee030ee4193f6c85435df4c1532bc4038bfc98530fffcdb968478d09449f39de8fdf89b547c5fe23694ff6191d6bd8859d3043030ec0a3345c803c801d98ebcb95e91b7abb935b841ae14e5e2b6f51cb1658fa9866e99ead14912a7bd760856e87a1cd7ad48cfcf1fb16c5d8ca4ad2dc43a451034f574fc8826b3450756be50a753058f3ac96faf5d1ed565ded45e1e43c3e36d8cfe3bf58d00db2ba4d43939fedb8ed29bb538e75149f5dddfaf711c7372db7ef1d99035a16b429eeb0e3257c805c59364d73549d4f78b2abd90bbfc9716598dcaeb64b96ae244dcc6e4d63182bd024c7cd30298349e8b25d7557a3f128fdb5809246998eea3211f888f2a7fcfeb9d64cce079246b28a642536b5586bdc93538e84c3cc1fd0eeec75a12f4b4fd9ee3c0f8fcdf965f5c59b9393e7ba580358d186ecd9611ae02cccc580c1b0fcd0b330d4c1377d76f72f9ef768dfb441954868dba59f93f0c1b0540a8b57ecf68f3bd3f5b6c02bd372647be040ccf6bbd080a52a36305f8e0794b435d9532e5aef2121403bc90883e147a59f8f348a16c7c4f68d23ad3d03fa48e5141949a02bce8f1e116cc6f6b3864d2209fd8c302a4bd510bf197172333e9109ebbbf9a5f13d0633f11f00a164395b03f50fa11ed0a5f47a80cfc39da82d484bded8aa330eb30ef7d92163990030d15cbf6ff62cdf8f56c92cdb8993291a78f34b95ba55ac734e9e0548421db5b20a5f87bb77ae9bb36ac0a13bef3e8fa8911a7bd4625ec551d4ef6524a0b7c65030b42e3df472612f6a00c5c1dd9f3017048036ef3e9a740230941ecb0283fa4df3da59635ac19cb0542f9f1be4d9431cc686b5370d58ca7b0196d7a6f66c12fa71cc3172efc48b5f3644beb226527cdc2eedc9001129b894871ca20734980feedd35b718db4dfbe8ba42f309365afd37301dbb75b5e92666678d181051906ce93fcc4224ea6554d1a4c123faae8d83b35985c27ed54a688c070946088802b9221db3fc75ce2b13959e6910dc345b0a1cecab152bd39f6ae7ee19cd43d7861978d95cb3a494d9499548e3432d8a6ef3a8f3496c608668fd3e7507cc91594379ee3d2034f64537374c2e97f5a779581f2251346d7239ded19e9bf018ea4312c55e24e46c10f14b1d8e4609241a5fdc1da5e1205c0a4f8f2fc43c630216e3dea0885b12bd742fd669e733e14a869360654bd74411da81697ee0560bcdebf06befd8b62db33f02dbd22af7a42b0be029fe0fe18de44454ff3e846cacadcbfbeb2d61f76c32a515a4c68fc53a8684327e29409e7fcda3842154bc6e78b3c4c67c37fe614abf77e34e9b6af75c3f7ece73a1ba9c4307067a4fd29142512a5aed258f00151430f38f205acd0ea5ba4ba40d5c7066a396020c34610c5c0fe184cf912dfe275405393648a682ec833cb7692a51206b198c02bc9ff7abe7dcc5433b75395162ffde830ad787d114506dc1dc99dd3f6289680a06ef187c8f6e68b58b91b953a140f39279414274ab7dec09ea053b1f81579e7ee4528a1d0b1725d1c1f870775190a6e298881e4f381f552ec0a321e9635b4afae37bfb1c336c38014922a458faf1c4e4cfdd49b72587e4baf857b87676fa99632c9f6cd4e1db2d070513322944239704f6de9b6b6d99946de4af94361389ad44b9906262b9a0c23fe5b18c4bfe9ce8aa64a5f43f79488b67b166c8d45d3d8f03a68f183790b9c83f00df841ee147c7d9af20590e8e77ff513ce0d62188daf8c133c145a4885929f511b65e7278fc65814d38524a55d6f3f462f0605fcbd7a03e8bcd7e7dc41760e09f79801071622dafbd9184cf8bb4da42487b7818c787b270f6fd63af367814b49bef9051bb243a27aacad0cb33bbfa605f7cf52e82b274ec09d167645752996b1bd01729d00c9295a22a7a9e4806ef78db6d61306103da3cbc7d726d0ea0c2742c96a3508b31af540449865609f5b019db360ea1934e3979563a517cf17f848cea42d069cd0dbd54ea199ff9d21e8e7270c3833e1c0557a2db32beddff1bd72f1adbfde474b47ba7cca0931451b5a33ea46b7f8ab9b0ca216f4a44d4c85d913ab19522bb971e5eca813806b847e6b122d1b2e4f5768c19b02bffcd20bca4ea2966322007f7901c1686d0ae72e1b92f8fccc97667dc06659ba40e3f3517a5f71209ca25482624c78d73e399aeba71930fd66680e139a9d81a310586842641673ce17b9428e7f3a149f4b56403fb41775cb8097cb28e4a0a1ecbbf31c80a6c323e624bf9fc2f47480cae63a312cc7b0929168000d2d947230d96d1e045dc1569895642c1f74b15c391b307f668a222be216a29adbefa9322e04389a44afafde9752841306f6a77593fd35289156f2819725a2ec7001e5f49156705dbb3ee7cca998e499d1c8f98cd2ea14304ae7a0f3f87651e1bb6221cd5b7e3c336608100c5ce964a14526963392fe57dd026e7be30a0e05cd4e3b749c7c8cd5844508996ed7127a3c73f2176e84fd235bac00ba30dc50154e990e7433ca990bf662452e0495f6a59d4d13f20ff32ecbae6b0660b52f20bacd3cba03a043ba8df3cccfb3799662b8ad321a4261812b562a0470df0095f51da31153318131876b104349cb1f16bec1562bd5bb0757433cbd199791e9d03af61c2972d62db14a2bc5764d61336ba1b6a2f5014f7d5aaf0084191a7258418538c91b89bd0d7bb11ae69bfbd5fa552206e84863307b8e6c825560eb59815727626f89f44f0b9360ac11a25e9130b76aacb1b14c19d18e11b4f4a294f745b7e2515c688e6153ca0cc007a2c164a8b2f748099343e670fae20d775328d891193c00e3c0ceab56358e78eac81028ab0afc9634fc798835b8762ef56b3397889a170232630a4dc97e8acb4db1d79074de7757905dd8e0b027f35087508620805ebc818a067d9b9b2486c936c8dcaaa93cd71dcc04e0c5a071421900326cd0aa86cb01144b4636068f251978ea9226cb7b23c45613a42c9bf8703818d017347e33df3dabecdf8513aa5a9375af35369ec5a206ef211e67cdc70223c6cd16aae60ee04ac08220fa078fb4acee105adb4d5f927648f65ec70c53c146e0550c4177eda36807753113e6491fb5d884e5ac013a813802fea73e5ca25e2bc52ffb9c49dd74608c5e8d244593514a17efffd059204e4840e3351f2cbe7eb598e847a21841b9368a887a68fd3f09405f5310161e0d70b3ae8d73b0aef67bec751dd32ab6aa24b1b1b2b3f72f47c52cb349396a58397ab3beb8ea821644b404c09bfd4c4f21b14de8ef715f320f27d3f299e303520ec32416144653e4ed4c1e7a42fc27a0db29f9d73fdb6e1247e02bbaffd2cd65f1f6bf0bab9cee101b19cc6f027bc49dcf489fb03cd9c73a6ebb62037eced9ff21bdad1f078f4b9dce35f45df677572d6bb5146ecdb86ed871730dfb934d381262a923a97284b6759317318987f96eadd88636bfa4f898e55834e0dbb90dbefe5fac5211c799ff601ad9019bc4c6fa55b55d06672d61f8cd51c95e9dd5155f6fbf59d5cbfa2d828094ff4f191a58e8c4ce7dc79aaafa9b1c0d38177719caae5d0abc3f43eb5cfbfee2bc30fdc9c91a8faa6bb3a73cd5de473959e739ac1d7619f5aaacf7ffa591473f9a33519b1e730c9cb625c010c241b8ec50597661997da3cec949ecc6bfbcd51d2ca65cdf2ba7f7f3b107e842efc87e1573675a98290f4cd8a9859167c6c1b78764ff6c4691b24b63e5d895f5a5b1a28d5bbc92a8a2b1f880e38886215dd3094894b751920bbc4a94734887b4b8ccc5d0cdaf455e6b9175e027c3eb104859d4b7a1cc85fd1540e9b1bee3f14fba129fe9de2f516572efb34d5bfdc18717fda1b49e9fdd04ed49b89d851877603f5d39e1d23aa4d0a3af0892b5f203d136977da0880bce32652d6a5c4540ca247d77e0d1d74f69a170e0a9d35f06f0d63cfa72abbc8c861cf719ea50702f718936bdd8a3049f59bf575e149abb6befca4ae0cde761d7365ab23b79fa33a25463edfef1e99523ca5873b39c1c424e5a7806252243dcb4629294ba03e4b14e3ac74cc5548a43d321bd0ed161a0a5bd7f3bf1a5fe49ce3373874c98ba0723db452c4e2399e6c47364e58b86867d867e1e3482432245c0d45fb4597edfa0582d53e367455146d77432dc5473f4a8f48aa03523a5bbbc72731f112916109f7b1c241a97c3de26390fbb96f2b5b8a5c017e5130e2888c3479995ff2c803674d2fc7c973d80b70abee22c6f91d839397a54d0a9a6c013396cf6f173e288fcc75bfeed9b7184fa4aff38583641c710916d82fd057b5268defa7bf4eddd76c6633260ca3d8a9b5a6b5094f6c95479fb5e434545c1e016dec582577e5e7f457593fdb0f757c8a9ed3ad6fbb7c73b316e7fec50c74976cfe6cf394ecd3d88913195762aba93a2bcbd94ee136f68cca36e5e02207031f11bc71a8ecd1129a2bf17a05792f78408d5ffbabe523919895ac3c504e2f77e2f0f7bd74b7fddc72ef3eba3f5cf568ee64cb7ee602d7c7c513719f71d68b48af875fd8bc44e53f6b412ec77be3ee6a5886f9e7a7361769a5349c21bba4c69ce1a4527857ae85293c4af13ff83731507197100af3dd9db9f2b8cfe7b0db8201404cb58524b112aeea6f01bf82919c1c097a007fd4893605e27e065ffa392738f0a5da8f1db57535874ed5306651784034780c00de7538cd3f4edf7fff32713926f0158c08a205f9aacd1854fed6bacdcc78ada3f967780db20b3f26e94e1151a833486b18a58c363a2742809f6ab887f06c0115b34c701f2e1263a1cfd6ca0bfaef25ee58f9c67765c53961ea312d2625c943a48831d726d5db06c4efa0894f90f57f1aab0644d8ced06377698505f153b8bf06224f59ae5a9dfe6351a301cf71b1be4f124752f6b8b2790ca144000bfd8e8d9ee84eeaa67b6a3d2010c2423af45bd46ca098077dd1d43d297ab97246fa5675f84458c9fc47c162c09b2777b8ddd8f673c6b25877a8fb3ceda26f763431a8d6e90b7c1cf7e2e507ba4e84c1616bc0948e6d386e46cfbb5e6cbcaf71c9892129d40db243d62fee42e217fcfb5762c47718ff2b5cf8ca327474d10cc4e9b45b76dfe9c7ad209cf67319162fe40e69bcc0a5b953d4fd23abd43c427a84ec7c87972813536aea1a30c846c8471a35fa5b833f1f9619d8df453a1636f76363c3d23ed925a1a690ab328fb869d0ecef22e421a3275f304f01c3ccb2cf36532301d602138c1e648ecd36e5ef0c93bdadb92e3ee52d23b8fa43d29936353acb60d29224f1df189be72a570aeeede0be083c920a919e910b84afea7af9be65e4e565df02c8ab13c7ee612991ae50e2faa394ee28ab2c1b090e339c1b65582c7d35580013bfe6c653cd8c39a86650d2f2b554cb0a283ab7dc7018e08ad101d57e71d6e190e390ecd71a341e323aaedb5b6c74e37a77f799957b084c099fbdb4bd6a1dd58c4cfab4b4c8a7b627c6eef12928f2ee0002c1652c8a4090afa4e0d04c38681928d25b3241f8f00b33cce553dd725f81d70d48e0e6ad9af6d217ac3d808aed666161d075efcf0e868774bc2f99ef3ed675d549d3748c67b6b52eb14c5c3da4ad7342a53c5ab02a72021da195aa7d38ba43f9ef1b9c1f18ee722d9faa487916724a39376be501228586575d757ef3f56bfbc7b467b5360e28ae247f6104213a38f9a7dbf88ee34e7de9861e42446cf3f20d165e4569ba8043c960b86ba96422f700432d14af3e08d41c778a75ef5b4cac95494eda0dea75fbdcb65ee0481bf406eaf85f7b867da377758aae8044209a49aa7cab8786f2150e871fbcb5852ec32b3819cab779927739caf5668243e9799f079dd4350dacedb261c173060bc8cf0bb4dc125b1a89718919f611405d78028f809cdac8653499f88dc0c5954e060c838632e209e6e734d7ec382a1a036f74e6f88980c3001c79912ecbe1cc49cb412c1decb02aca2b1f0d8ba3e131a2e8300aacb695d14fde5906f80a640cc6346041d4f037af7f7eaa5e9338ecda5f288d93221f443cdda83eecb295197aa21d5556379f7593ce6fd0036daa3ca2b8a92dbac78e7c9ad29149fc168bdd988cd3cadbee4826c265cc5c97577490e7874172c2366be660f90338e5dce549fc006f8cf352ec1653649a100450d89ea7cbd6cc5a907e2efd74109c7b16ccca70eb659fe069b185caadbd70a0c23f30196db298f612362f1959840bf9990627e50883edcf9a03a5da430cd7e935ffd0f224d379927a19a528c1e56261502ce523b4301e505b8bde4c61a34d682d667e165fd7c6b68a448a5a73934d6f8322e960626f2abbbba98a31fd449eb95d20c7f8beb69f4387bcc98da5e6fa5f6577c1b065931f0320bfda67eab306db883a73202f6819f0fbe3bd1e32a7569de10a75f12f286148033a35c590df2cc6d80acf8cf277ad85e00e28c3e6ff8e0647e02d416a4ceff083d0ef48fd6ad11f767734823fec016bdfe6c101a818f8d801d182d4920fad9d146c76749eceb332e7e44a50d38195e3bbc1038f60d968a426a6e5b1081dcffc00077b580b66e3d5189fc27e718b58889f33ed38dd0ecd13d1cd074a2ba264b16127131779fff15a016f9989c872bd5bd737b31f0c45cb0708532cce1ec1e12b61df6eadd4404fa15e417f852428bf4e95187729e3483cc68506a23d488b20fe226bf3dc0065fbd212ed8b8c539a01d8c83d327f9833f46a087a6c265281b294590589b6e574c82b66e657fcfdb482ed867d020ac7af0b724d93e64e917c2db8a1d8525d73f29a543d822e8fb40bee55f1826a897bf0fd87d3acb480a3463f6fa40eade7feecb41f3de0f30c1bef7f5d89c194497a8762a056cd2f84035be275fe7c980067340edd848b1480911ca790588223207428d943499378758719f9916784f551e108eed6e32752588ec4d66a0fc0315fcb8d9f40783a73b9a0b9417906870316ff65d7f282028c22a7eba149ec32cbe8a76e1f52eb7838ea4c9a7364b9028f065a691fe322b290c0553c1cd3831ae5b1d162583c00bf70bf75a638b56be22a6222a87931104ac7ed7bf99780c8541f38b5531486b4804620ac76219a24a2f59c8b91ea413d46dfdd2d36b3f93bfe308c94d9cf9a4438e2225d9b68fa9085b4a8173d45bad656050ad657dd0da262c247fb61aa2be1c413caa10ae7a2d9db50450d6807e900dc7b5d61eef912c7a25dfa5d3ae02dc6413e1d9da68f0e044cbf45cab1b3db87a52bb20d4b0ab8005e58edd1aed2fa9153f14c1ef0feae3d781ec3c2563b9f2e1e32025b5dc9d10459f1dbf7811f8b9f6793f9bc7001fca3c91239b623910c16b4bcaa61ded4fb37119c150ffba42b4c5b39e8312b6886cd1842b5a2b7fb5cddfaac07a13e834e6222640ae26929e8352884916c32f8b120e844b09e231fb63c5125a89bc01913ea491b952efcdde8b8811b8c1f939ac7e9fc36bbdd539d9e4214e1f19f5f629dba646db90734c14b59ff037f79a2f243915e22c827f4cc91461d1569f7dcf8f8289f4c2c6e19a6a0e3d4850da2721acec6a5d05149b2aba8a4d56adc6cf5c2c5a9963fa43748bf7bdbdfbd100387631bc69c1f6d9df8bf7f96f145133b1988a420e848635a23dfe31d444179b3054f7a458dc44c7844455557f7ecc4e3616f16c78fbcf4b2f7557dc3016dafe0a957348a7d00e99956d7485a8f13a6cae7a4f0a1aa01d215d661baa30f9b2eda2d39031bf102a74619ada0551652c4b4c91cd89343e359da2a6da5a317ae94e08cfa3fb2533a9681388d46518581043caa6fbb2d191d23e4447aaba44263a9d362b3a0708cd3dbb5d14de54be71a0377857084a0051ebd178573b9c77869cf55f4c8cb157af504a8a47b67d9766d3b35735eb16276c4aa613d1c68b59020547c1e430d58b0dbfdde834d9ddc1e64b6887b36b1075beb8bcbffaa7f536afcc2f1346102f8e805d04f5c5dcab254dd90f0c6c294fe749ba63440f20f89296bdce5008381c6333f0d13439259940daffb85af0a9edf800f2ea44c1c51d5c08026e66bda5a194f7e41c281fc47122872645b6fc06339e6cda2c6c56189510088da94ebd802c0e815246a0c933f7fb921879ffd986b78412d96938dd733c2e6a9b3035ec5ac1a34326bf3c09e36fe893b23de38effe0f77a3c873dbe873191413ea87e0d085f3e723c57c726ebd05cfe79685f39dd177d5a14dfb9ae4b9e6e3bdd6af195980ca8b1584201f60e6d702ff1de070a7751fca6064c9fcf5a8c40ab269127afcc54b8062f250b6fb0018f3a93cb0321e16322af37d50c5c262cc4b8315ee65ebdc2a7edc819b865ef7c1c1dcfd9b00da2de6e83e59b04a8d99f17e782cc75efdd7b2e06f91d1e0ab88a92897f63641c014cd5ec0684e3b23c364cee75993a8e4a7e981cbebf46d70480fb6776f1889309f001b57813f938ad91ee661e85be5b2503fbc3c1bc067a6b1c1f45841ecdc1df583845d8f363d5c2c1d90ed52cd9335253cd5de56341b5a3f08ee94c8d7257753ffedb71d5e57f67a4b3a81d63c10628dcd2c31d9261bd88bec7a1e2bf52ad1b167ce73c59b3f6ac251241d1f501443b8fcd6e9d0198928594942f04860fe6c2dc56e4df69ad8d9e106f27f07e848b225c3afbf1f1d6d0a020ba18abefacd63130e38aa4027d6867a66ed704deec680654c7a229759d137bb63d1268523160adfd2f12303bf428fa592ec9a75771c875c8000586c5b8163a168a72b8499117f8f2a0b7bf08da809321fe980979080c0b685b8619428d0ab3ce6488b2296db278efb714fa58978566d76d170b389e50953bb2ede70982c6254f5842f8a82563b83e5afb362e1b37ae53c408e4c309ac05a121423c1cd45a575e454295e4bc7f73b7d40277ab66363cc8d3d584f0cece1726d9a3c1c2b0abe7f299c6ee3b43cf69afb413c61695c7c61f0ddd73dc7f5702f425989b812c467c8083890d245fe7aa4a6d51267fb6b5662f070a62e843d2bd953d5f4540c36dd301a9c68b68b70dce6745a59eac3eee60b8c395c8b4c610a1a9046c6044078931436925622bba7c8f114b6f4f302859d768e2c73bc503a21fb53c732bfc834d65c9e149a9338c14f502499b83ea82722f3ffa9ab0a351e4a046849bce4d0e4feb85f4acbdbc614f3e13211207403e49569525380b60819f7dbf3d4e5dd001189ff8f793fac60eda888bbb8fb2af372ad84098ae6f50f1737bf322dcd71619d5f7aebc5fbfa2771a006c45b4e53a8c342edce5d0c5cc5724eb7137796807f5373fc61f8d24e8abcc7c6e62a1bec248b8e11921bb09f934b17f6482b699742532f26facd775811b1acd0d965d2c1840be8f0ad889db4f2843c88b70d2916cbe5c9020a9388c490bf80a5639225d3da42419351d9fd57ecfa3ece3027aca2e8bc3810b27ffa3a4478920c291dc6c295161540ea24fb1093ecbd97edea63744bc83da76626d8b1c03666079f5b03f6733df2229739fb76f63dd85360ead47f54021e9794e3c75c0d53ba5c964342499ea620aaa9cacaaf9799eca42ea385133e325690ece7881a08e6a73b8fc0e7190568f2fac98d6ed373e3f4e4f784d149e1b68fe89492f148199ed69d1a79be96a3140a26b7f361f283c4a8b341dee05d497c126fac83873bd45ef780580d7415c4ce103116b04c32ccdde010f4abab014a43386241d5a96e280bc111c2a6ae05d8068202bf5b988a5313a5aff24b8e061ad14d9771c1fbf4ff1a6513a147fd7e73497151a41a70f4c9066977754ee35da4ae06acad69b9117ed969a513ba7c6dc232cecbe3ca6d3b13b1cefc58c29c73c8b5546dc08a8846ef2f76ee2ced3a9f2c2c6f890645d7bfe33498ac1dff53ad8e0073e60180418ea6f73ea3f7584ff4f096571d8386f92ffa825092cbdd5d298b444e46c4c8e51e644140ff59a4458c7c5c09ec12764e6f21531cbcd16239a22abacc7a3211086ba41504c34ab2fbb409f3851240d77a81e15bc93cebd74ecbe4e02fe02f7465385d8b99b6d7bcbcc32990df545075d7e97251603f60156a3aa12837d83d6a802d5afef482fde171de583a5d9b6ab7d5ad5900ddd60a7872f01809bdd0f1af2021a8de2e3e5b1066ac805df4dbfb5193bd9978a6dfc7bc7d9af3899214c66e76972b81b0fdcbc0491a424ecf9d2d1cbec8735bec2fff80f21a82f988fb84bcd067019bb3006e2cd3d5879a581847af746455569b1d9f1a888ecd49d489432a3a051cd974cacf936fe5cb907a33300861e2200501d6943f5893cdf1fe473bb067f00f8747718334352037454423c84058177b2737971625051e27ba0d57acec8e33b7b2c0ba146ff85039da983347571d30f91b9f176e3c6c1cb4e5a0e4cb9c6c898a11dc400f82d5e4967650d033efd44bd24276836c3f5fe22ec638ae0c5630866259a2933df887cba47558258fca6b2918eaabb94ac6e9dc7fc6da5843d95135f5c3ba59d80a4212b75e1f9e64b907d93c6b8bb50b85d4f24891400615d6069e700268759989c7a55cbb770e68fdf54272d27fe58aa8fb167b096522dcafa00bd3a89568edeaf3d4877d276e159cbf81754c4e35b80b06c8a23e993b26eced1d0d4d47bbfd8d3909fd1311ea48cd72cb340b31ff49635a842e80339a6b0e582520c7eb26355a040e2a623838b1100dbf682b6fa778f84685f75270e7979a243ef011890df77df8e176e442642a20767884b355bdf1e6fd915498eab7761063fd9582892c321cc2d4441a16344ec8e6b1aa5888a301683f2f9007b02fe43df2a8663b5058b0403d9a7ec14d17a134f38893127426b8daaf0d70fe332bf263a28716efbb0be69f5098d7080976f097aa4737f59643cd8c160467830da5bd185a3950c9574fca98aaa765adaa0cfc18d95cc7f61575fd41080d75eaec4b030448b1af2f2221c45727a14af5af54497b1e07a2a9bbfc56393bc0da22ff93a41f1180a783f5e5f1f5880a0c52f73ff59825b16d0906c26ebec0e338f8b2310fb76320c45eaac7e6ec823b056074468d8de0de546c1f37c24acb30d34065315dbd4a5d6f110669dd9637f4b9e85950342895a18bf80fd38774400a168cd37bcf868596dbf82ff4a889aba279444bf98f3e9120b22f2cf8b0deb95189aed713bbce401f431f188268b6e4a2744302ca4e5a55b7b7f2805fce11383be20afac1fe53e424ee9ca0303352f0c4981d1c53d871d23b4c4454386577b6670ed2ef6217fa4cdc7cd631cd4e29f0953eae4526c3e672c4c3bdb6492dfffdb6c32cafb15045f19e10d1e1cba15358d97be367ae3ea49948fbd7f7a3f7542bc04d15f40cd3f07fb6a34b98389661098de076a995aaa79d43d5f7987b262d602196b61f19f641b3288ed49a56dafd6e2facfd534b9bc66e66714a56d2fcb282c9b59b47460b6b3556688c42113f2b1ca7249b0904dbc41ebf8040cfd5b581b4035f101732cb637c054f17e33fd61cdc6a0a1ab110494c499e268b85978ea6a8ad3247771d792a69af794249c3577360f50ab5c7602200325526951969bd10bd1798477ce64da818ae16777dbdadfe55bda01bb49a4e5f77795067ca5879dd4c6223aec263b86f51b7ccfa7aaccbecaf3d9cf160729e83fc397788bc61007479fca177d6a773df95aad34f2834dbf22824a68a09dd262a99b9abe7eed66df0cc125f5d49467fb7f5f779d5cd8c6894bc6c46e7bda4e2f41ef145375b5b98f18de1a0ffcf7a6f1c5ec8f8a911d409b4f9e70c3542a67ea4c3f1c2b5a18ca8183180dbc341539edd043207a126579d5c9cc74d010f1058a5ede316ae7d6054fe31412ba61413f05a94a888b4cd240886d1ae9860ce42f6a10a7610af4cdc6d6d5fb15a7554f801cdcf20ef7151aa83a9d959a276c3aa0f3a3082184c48174cf4efcbea781991b7a5cd1c0ef5309d54833a9d82e3fda649b2bfb77483ae7c7d41d95f0659e2a150dd90906192d86ce4be677f0c1f6fa12e402265e3280d68fb931d6b0f7442c40cbb6941ce4c27daa8e3df2e4745f91bad70ca158307d13939a5509d87af4a131b41fd43b955fc37c50134805ed1ff19a91385f795bb620cc29c43196a3ac799b43f6315393a6e7a2c406822d72faaeff6ee4f717edc420000bc2d7145be745c8b7e7d8f72af476573614a710c8b4614e44a093c063b3bde697be3c8e5f40695906312dc921ac4ee7d5585fd4636ac178909c3120b268d5534d8eed0cbb5844c03e5947f51628a45ee6f59e80f840cf1a56042cec1d498a918ed34fca138c73d94ed6b0aff5ab450f1ddb78ddfc578bc87337530f7af959e0056cb6ca4895c059e798c87cde3906997e405d821082316fa3006f6ccd4496f7f6cce07d5d7cdf9fd2bc0e622576ec763a044bc2b4dbaf8a3d1637315858b53489c1655ca2d6f6339a897f1f3e5558242933b85f9186a39d5d84a9085f49f3d25fe0320d01c160211fb1aaf914f9911175f7b89f2d7b062c387a13a6612da24cbc2a3cf79acfd3f18128067d0ab6e8fb306bf3064d625c968396791120a3fdbd28c5700689a3c5305064557a9ba5812aa20141267043f824c8d06b2ca1a49bc0cdcc0cea2fb2d5093ada0261e29fa4c81fbb8f98e8e76c621a9a4c992ba11b9a482976f5b40487c55e71679c644b190b4c84c83af29d812df3cede2901e6b04986cb5fec1fee8d9b1968de88f9102db0286b0c957b0f3f13ce288de49b277d812ca114f346f3127c27b023e0b1f9a2e54414eaf1d8a78449106bf40e2099573b11f5639ebc3ebde19b421c7466e71f600e83f83af018910e308263650e1dc6c6710f06c42a2cfa60e9ed828c28772765a111fcf77bfbd1d227b384006ddd6e10420ae232ab4cc9d00c7b1974dea27c3e809370806467b710377cea4746222e25bbc6a09cb3d1228211860e1b79202dcecb895b847b53e3f7d4566c7543d844d7194f7e32ac39543e05106ba97cb81a47018081b87dafd84e4e257c5d77815048a1d7d2bd2ef8028619192d948d5c0c3c5244a73706a2c759280922fed9b005b2c47019dc1c08caf2684c8588a6258bcc0ac6009a18eedcef51c292d576fa84ef6f6e6ac8864bdcb80798c6bc1e74c169473fe9eb9a0784d209d8f6ceb365811f347269c61097b87e081c4f1647b2c3658b6357d885fb6b597ff52832fb796e7d5e1de36a3351860d4a6d48b65dac2fc309a7dacc130bf89a681aa2079a39d18aaf174af855427383e338a59f4fcf907f04a0402205a5347dcea164982e34c9d8dca05534ab1583319ad02afe138ff461166c17424aff0a2e5b6819f136c7fac71c1b35fb5a92eb622c4891b02df7571a9a9dc40e2afde1321c0c6deaca738dae1bd3fd5096a90e12d95ed915b50f0373fc048fa8c450a61e18ac8200854bd15411c73b0469ccd1a11a846232c170836ad37851a3e8551c8d4f3baa8dd77bd0e8efeaf7b14624cab1c73c92eee6a41aede1d285e2ecd997e11efe0edcab01c88e7b9f0846808c23ce14dbc42a0c000260d20cf90bc532d58d1871ef726e2845427a08bc534353d7acf47f429f2b8440e0d36537e928dd35b8aaa8d44602cd71232e700ea09cdf1010140ca69ef99f5518740dcf6120afdf5e72d46d39409ab5510986d16a3eff94a485899ac6706ad7b415b048b6b725deb4bb005031c3329e98cab89f476c2e2c242d9da1142e3bd641d165f91ad8d12c7d4509e0a53b97220923f2f5b213ab1dee02ece19a4c919c4b6c6b62daa2cb23ea923f8efe9d213dd15ffeea45313cedde812e84746a27500222632acc91b839ff3b415fb1bbac18dfbd1d49e668d2eb697c8675fc62186868b73e9a36751d523cf5a2a217a4451ad3ea6679be552cb88f36ac6f0aa217fb4bfe250ca483302caadc9df61af51cf28643ecd6306c341061d820e2dcdc53aacc072ddd2294ee730172d839e5d9ad0028ca71cc961040f278a1e4f233611d9d4c69301b23c3784752ae760eb58a77dc3f9f75105dd1c0f3407f820ead14725fafda428124958d2cac262e18436a3b2add1ad31685567ee5cbbb455a043872207654d40270a1b20a656d075e18308e868ac0fd64684693c748254b268f7d5da94bd3baac58f54b3dcc0331a5ac6b8dbc53ee966c198e24a76b036fb55162432f1cdd30731427723d4e89905b1b0a35ed36522aedc344c558ca216860e8adef8fecf433aa62ece0ed2a47623bd1921d8aa5f8a467141514336ade6885a3ee1fabb3d2d5d98a13cec00073006f74a58a3a49d0f9251a6473051bfe1f7c2d8b8bb74ee3b07ce167220aca813033ccb19437ef4696b088078616c8f583b9fb6e34b49459259a0072c746d5924ecb76a9e611c1806b8639f250274c90e50eaa19a2225190a3f1eac7d497807464feed2a75b84fa32d952d6e0500a1cd07aacc5cfa53b553f2ed38c2a13973eb55b086b3c257bb1d89198b1de5dbebba3c677a02ca7dda39ebd7832d6fb024edf1d77d4f688211688f03165fc2f750f28413c65fe5cb5d3d0e1df01e53359d721c41544e14a551fe3bd6e1446bcf017c14f21de0e1df05c5cac36616a8557c8b8fabb1351a620100fab0fb2f992e1799e186ad532417734df06c7e3c13f35581186d55c4dc1f1e22848a293b861fe97751d7aaccf5a8b5ee1b1d4c956efd8d06e8567d89c5dd4e4308a74cb1b1aad5a8b65f3c840d79d4387006f090bb5c85eb6e6161e5e4c73c9bf8f75fa04b76ea19c254a448738be358c72e85452a0eba3787c2f5ec81908dde00e07711a4f5df964f7036aabea9a5d5de88af767ae401faece2b648d780cbc8c5747905f6540e4995697bc5a91dd4cb432569f19c9e51865a94a31dc0e4f92b00c7bd1452707594298000094f6470641ea8513c9b2ede4f9dd0ebcbd133348364f03fe55d62244ff48200ae6beccc1d029683d960e325c6b125f0a4cbe6c5a2fc5d8ef7e0f85f79257b46d869be498c28212c6d0e384e9da0c1eb610bd3374b7a822d2fb5853bbc21de951775e0cb6646b9eb6f9ed820570b4e3ed65362c9baf9cdc899182dbb5b5ddf2f1f54ac6ea967fde6e3213b708b8f5344dd755eabf0c6f125fbf1198aa94db6cbf10691b3a7b150423c3b44c6781714d1d5ec6d3dd2d197770e404fa6821188b2cf790d3086591a20ec2f6ae40d2095875b19723dfb52140a608c284e76f922d012b87471f013f682a23d6d42680ab6ce711138fb491fdba4882cdb5f2af4285185253502b26af69b96e86f56172553d7c862edb775fa442beaf1406cc5129aaf24db61aa37fd11325dce9a212848b3112a3b1d93600cadf1d065de1685a04988ec90d696628727552ea5c5046ba659040cb16749d9175fdcb248fe3eb560b25bc8096cc55601aff1d7767cdd71980f80f77a7b2036f9cf8665b47a2f190973e197c7599ca82b69daa2b0cebd80468a60203531f32d32a9b285b9386b2b9899ff971ead9586cba319717b1fe60775c7994cb10d52dbf2daa1db03d9cbade6e8240ca76cafc26e56803919335ade96a5082ac56c0a2abd1cf70da8a92916ab2a9838f17ec3088a317cbd81a57deb516fb3c1c0cb2a1be3bbf0ac60a75a7697da99461798b461d6028af95ca27a2d42fd118d5e479397e1593f38ab30eae7f4d2b5c0686b6e52ea5228a20c6059621fbcb5ebd6662b62dacc1c5d5b4e7cb3e80317d19e2f75f6d6c2636693d26b9931906e4ed023ea9841f0c3a60b0a6d0013033333333333333333333ab6a1abfb54744564a32452e6d8c1185abc42453923ba529ce4c7cf845daf01769c35fcc662d919ee102400cd90b150c666b3491021e0871518517363849b32eee796ee2c08b1a9cc6f22f3449115fa3794183b368952849b4b9d955225acc25f06206474d2a43c8d3681f3e7a2183d34961ec549d7823d789a889200421f02206e7aad3e6612a5a52d2106fc00e5ec0e0b4356f428e527f71aa3243010f84b0a0e31507a1b4cde8b778494b82be91c591a06f4880043e32825c71d224a5ead478195faf15873b314929cf5caab4d2b1e2f81deac62b4b3f0501295bc53156d4850c27bb6913a38ac38cccf053ad5944978a93c997bfd5adf86a7259648168304024470d0e5876a0e2946abfa7642fa9959244d4b69ce2a8c14bfb562ead0515253a4c71f493fd2ecd4b492a742be828c571633a51547ba438c893597e4f33059f53c7288e954bb49bb2365db213c579663b66cff48d8916117d4147288ea77a1634ea66a799141427add679f9ca64ee1309508eb2818e4f9cb24f2c3badf45fab79a2adaa0a42c54a3012e2366e64d198dbd189b3dd2561de2a8805d58ba8a9053a3871d6984da6f94dfd5106ded0b189e3e8ced0ad8baf723abb4b347192344466b80a25db2311b564c347928e4c1cd7bf3b53c59d86be44d470a8a00313c72449921283865a58371d23173a2e7136cd97337fc24b8b96748725cef5172ae893ccb4e88d889a8d0a8080d8b8a1858e4a9cf2b64ec6dbfb693751e2a44eb3d246cb3b6deb4de29826e58c897e5d49b288e408493690e990c461944a4205f3cfd00c89a8b916080703ac231227a949b76d5027bcbe17511bf186c429b4c84df5265ee955a2818e471c4f8f0afa2fd929d15b448d4b301292dcac60a0c31187bf2f3b39e38efc0d1b712c299ac949b93f080808c8480e1b68197192428e8fa5b065d1ab2c46702420ad6da460243140c7224e5256722b3158fcd3a42451c451dda2969874bf7164c4449c6aabc41893c78d976a071d8838bf9b54b18ff5d19672888392f242c9ac747257107618e270194b8935c913d133b41d4147218e4989676292f1222fae88da4848b25182771c8911e22ca64a651adf7427c806710a16842ea5f39725e95a4e1067d1a64c8cb944ff9316382a10a245a320f1d01188d37ec8144c12a2554d36dc98c404c7800e409cfb67fe456d3829762971e4d8a2e30fc74b269aca29a926f9e687a38c7c570e0f2d56f7e1a4043929c8eeb5942be7c3f14ae64eb7b1630f2729b6324c2ee3688bc90e3d9c57545773ec32fd29f008a82d3aa0230f2761f5bb8409311e0eb3f9296f31ca7d2137920141c71d0e1a374c123332c4eb49442ded3bec703c316b52aa3358509708928bc0468d7275389f795e506adb4aa5121dce27d7644aaa2455ab267338862f159f57fa649a12391c4fbc4cd94288fc8b8b889a094810f2c8b30849361081472e011a33729460023890169e6e5000a45c00fad01187535693b2f72d7eff9788a899d5a0030e870f6dd17e2c55bb6544140424b12274bce1183559ebcef8dcc69605f21c23c56ed010818d1a7b9e6ed848bcc30d07a1a74a66ec37d1d67b162139be86c84848b98e369cee04b358df4da631dec186a378b696858ab163e51a4e625232497ed152b25d2a821a6fe346bb6144871a4e637a83a8641627ae2ca28623c7888d1a7888373ad27010da9fd5e3e2d61632a1030d077da7c47819de15468ac3739400033368cc90c002be02c9198e99945c6174091b9e273683c68c19584860c648020ed3263acc70b41275d49458b3a034653857981284dd9ff81963c870ded1bfd9abbdacd2348693244951998426f9737d311cf6548432e5fe362637b608c9813ac70d1b3368cc7015d4c800b2801eea08c349507bf5314918cbf78aa86d8137e800c3c147688bbb6ea95f7fa404688b90911a0bb295e8f8c2d96212936991f34c5a23021b37d2928d0adcc0e2060e1c88022020366e68a1c58d0e19e9f0c279847e6db9987032425d3845afac1517f35c386cbe4dd25c088d7576c7164e195ead3548bd2052a385b3cb9552f22554ea4dc9c239eb34868d3deb14190bc713257dafd2a6a4d55f415382a6d3f4d2808098223aac70126a5285ae3476212c0ce8a8c229cbeb684b666549dc3aa870b62acd55259ce7858c88dadae898c2299718c35f37455a3691c269de42c624f3529512c70b4147148e36a2ba2a7e3b4428b1d0018563d26edf9753c5843889a865c7130e42891353265d32fd9bda4287134e9ae48f4bf944b365aca309e7eedc205312635f31165103010101010149098180180620111d4c387c9f986e34863e135ac261c489b39d7aaaebf71a8c820e259ce44b3f91c1b2891f2f0987fdadca1546a8996591705e93b2c9b793d42513b45103e5e840c711cef91733e512ac7e531a0d1d46385c74fd983f2fcd5d01a1a308e73c31378911b9f7a1abc00c2c243023c78d1b18c80e221c4597bcb989ca971c0ee1b4e94dc91fa1f269b184703a4986f6be332997a406e1bcb1191b7b5fb632d70184f3a5bd4cba2c8844e8f8c131c9fe8a31cea25acad8b8115266f674f8e05c17bc522ebf0ead931e9ced6b764c26419a383d0f4ed2447e9a96c5ba0fede0fca22ec874aae94453e0d0a183933093927cc2fae5ec7370902585929a34fedac975e0e03416662e9dcc74dce07c326a10adf1f32315289ea0c306a72a259778eed9b97beaa8c141dd6bc8baa6d5999e06073532be491a53c89e7cc70c8e7f627ccffeca73b364704ca16664d388f13669470cce3a5a7499b6b44cd93b60704a53f2492749f21a7bc5e9e46f51445d719e115aff2d4d4aae5d2b0e6a2a8845bbd2547792ac38eb6f36531f5a92c622e06215c72f2d79720875131daae2602a3bd6465f12e42ca9389ee456cace4c66fe101527e9b372d5735b629d051a0971b3324282ae91a32c052e4e712ccb4cca52e83cedb3290e1a64f0f5d3d5d4574b71122efcd62a0899f32c521c67b4250d61a5bdc4378a93564a39b522cd54d44571ec53c25a52b94d29af43719817a554ccbb73cd04c5592ff98d6ccc0d9fab083e7150bae354bf9da0521aebbae0c21387d79372d94cfcd01b75e214f4cd4a94cab21faf0b4e9c5f5634e8535517d6e46213c711b6652276f28de645d4fe4688c8087240a289e3fbc92409e2dab72fcdc429c46f54760d97e49163e220eeed7531378961c64b9ca48b316a92df997194963866d6d2a3ea23fce2384ab0c5d955e270394c85f35313252a2e28714a32d67f55e998249cc4b9b22925b79aa323e51bc99c085c48e2a4aa4a6a13e533d7c573118993560c6a4bea86b06c042e20710a939b4fb8f0a969541781193466d856c1c5234edf6562da5eaeb9a28e389f361393a73b76c281c343b6405aa88b461ccdc4c5e9bd6513f616d1b32e1871122a467c968957bd5a5a59c4d95426319e262d13de89a8790e1c37922b451107dd8ad7d4922419ed2f0c2e1271ca96a926c6b4f8f89968e0460e1b0fa08007422ce00211c7a4d132af2873bdd2b37071885352536d26ac04fd176388a3582a95bcc289db5ab935b828c4498a307da6c2055d13218e5a25833699a74e261d059ea3045a8488e4a87102633788f3997bd556bba8724b444d057150d2fcc95d056b934b11b5828138097772a2c474ff975844cd05208e1d6a739a8ac92bde1df9c3f92a9624c7c64a7da62fe6042efc704ae9336f0ebfa04f8e036de138b658d3a23be0651570d1879324bbdb296d5eb7c9e2820fa7103234c786c9d5a113514b1a13a031830337dec603f670fe4b164adf4e52a54911352d4250e0c58a1e8eb184f14b5994e8d868115ce4e1943d3e2d98586781fa4616862b708187935b694a6a418bbc688d9011f7bfc351ac2f4668cb8b41dc24706187d3883021bb663137001775385db57fad49b941efc6e1bf7438cfebbb98e0266e1af14fd0052ee670165de29820b233699ada851cce3222e324d50a198465e40a2ee270b476930415df3a7a747038a7a6ddaf14c49a7825eae20de70c97cf4c3a19a52daf00379cf532e39f4a3749b4442289c80872006a1b37682489821b27c002044464048998369cae844ddae2e574f5323103b860c3e9d4f7492af86fccea226a77b586b356d6f5afbeacae4b0d07b1492affef6c7b51c2349c464d5d361d4a8ac9d8a1e15c92b86023532c9394a488e2bec0c5194e49526d0b3a6e2a292d262ecc704ac24e895767b857d019c145194e5146b52965597de393e124a537415bde18446590095c8ce1dca2444db443759b24226a213792b1e1420c27f1c4e83dfb1159d1ba08c3c92da8c7ff7c885591175c80e12ce7bba74caed8324227b8f8c2498cd1a29f12cc3face485d3bb9baca557e5f761178ee322738b95a01a4ec985f3bcec462faf68fad52d9c729460999733e82c152d9cfdaea489fd19fe3b15419f9689ed8a93da4b176fee458ca515a724e3f4c8a4c64c880b0424c434e1c18a83721d95bdf49bd0513d5671d8b3d323c35d0c42095571124a56486d6b8f71640b2d7088a0950a78a4e27861d9b2749e146f44651ef040c5f9cc8232e97ab62fe514a7d3d2aea4b4881373f430c5f182b6ddd924a6d251271662c62ee1518a9305ebb7a05fab72ad07298e75bb5a52b2d1ccadf118c5e95ded84d913e3218a83e95845ef4ba24b5285e268165bda4f0a5293a01451d3000888718407280e972dceda5af213773f719ef1b70cbfa33b5f0f4f1c936852c80d354ae59276e230f2f4c97c0e0001611a3466241b4e82460af01a38b000010101390f4e1c46a49a36dda4b2c9aeae4ec46313e74df917f4bdaee48b3d3471ca7dba31fe82e5f13113a78a1a43c69ccfc9c53c3071924de9117264b6d6fd66d098e1038f4b1cd49d689525f94b38358d1987e9016743f0b0c4315c1431934f9b7ccaabc429994a2b72c9eef2c8831227b9f7be6257ef3189e3e9baebb4a0bc5a5611b51c23288b901c35b2d862a43c247112469a64722dc3b7684a4063c60c0b60c002129841c302129831c3022539247844e2ec795aa54edae09dbf889a086cd41871678007244e2553b29421c4892c298f479c426c08e95de1cc4cccc311e74b91db159f5fddf810b4112dba036aefd188a38e7cb86fcc4b9b37234e493a5b4d624528bb7d11c7b8f771ad9b1571d60a15dc432fe610fa441caf34558a322b228e2637a3f4bc7488d3e8aa0c26e3c6932e6588ac3390635853a769423bf349529047218ead31c8be94efc5434688639dec35a6a74da8d406714c29b5e55c2e2f5dd1f610c4417e74655c562ba67a930f7804e2246eb6399997c4125e01e294a167a3088b299a9b7f38ac8ef80ef3d1c30fc7f2ccafcdaf2d4af4e8c359fdf5459870af1a631e7c3829d5ab376f3e053c10e21e7b38a5133bd94325e92e9c20eae19c596d36c85fdca09220e6e168ba7253e3fce55bc5c331e5fd51a1ad153399dce17c9e4967123e5acf7a3b9ccc2b6b984c21fee292247538ef95e58a86662df1eee870503d152c7508ad1b4e10e7706cedbfd1d34b5ebec9e1783f5fe9d2ac94ca0c621c8e6752f3c59dccd491c1e124aa46d54dcb74af718f379cdc2ab97bbba8cbeaa11bcee27d3e76628511226ac3a9f2e93dcb1a76418ed870ae0ce6735f4a6b38ed8c5237a9645c91aa1a0eca4c0cb30e5521b3958683fc080d7ff964461bd170dea441976e32214adbbb331cec7ef42fbcc9275b6b86738d09e23586d18da995e1f01b84093d6ef3173d32a8a1c4bc6272abc718ceadaec1f485fa8bb1cd8187184e6321f4c6976138e54d27a355f5463379309cba4d2a154e2bdd64fbc249aa132b44c678277e79e11c16e62f9f8951b3fe5d385fa5d44c31fd574c31170e27f8c6d9f426c9d77f0b07959f757a71599450f1d0c2a94cf68c792b5488c51e593825bdd87762525bd6241e58385e0a95375dd03fd2f21e5738b8c9d7743529b849620f2b9c4d924276f35e3a39496ff0a8c27954868ca6f392664d7b50e1a48489999b5cd453725338986cf924b9945e0a878db1de10be89c249d070a57992f08d690f289cabc4da67c693abede2f184d32653fd917bf170c231b76c97c956f726f64d3889778fcd244eb38bc5830907199a4dd6d9588829dac16309a7fb17f17dd192699087120ea67409ef0d4af68d3c09070d6a9394829e9da04a9070fcd7607b95498f231cd48dcc74cd242669818387114e2daa33986077f93bde15e16ce1bd92ba2c9632d69d133c88703eb9b6acfecc338fec8670ae132709625f9bce7242389c5de83dd1435c38fb2e0887936f540e4b3196c9f200c249cbbcf26e379c124c8f1f1c4cb788f9c9964ead2d041e3e386912372132dfc512d51e9c3289d97479598c49361e1c33d5de4f9811b7d8a2153c76700e712f72192c58890da2870ece2675ef66460d12c1230727fd35d14653fed4d9207ae0e0ec6da192502a49274ac9e306a738b22f8d306969734f21c90632379218f0b0c129eae8492127931e5379d4e060aa65524cfb9bea1e343868499fe954a808dba4885af198c139d4c32a65d497596cc4430647cbbe924e0a7372c80c16c12306279574f742882e61b52578c0e0b8297f9b0c9331e9682f5e714af221dd4d4513a22c49e28a83ec8a056dea4fdc986ac5495b55a87cc99455095971d6501b6bf3a4ab8bf32a4e3135f69d7c7739a3a78ab3bf97084d42d544ff527192eb5a67a75228ed3f2ace37fb97ab2479529de4298e71639f29459ac8209be274b95acec2f5a538f87909b1af30f59991e2a0276ab4e0ee280eae156337c38593a4e54471ec73cdf1ebe2553587e2a0a6e473cb5d1b2da4a038f79a6082ca275c4555e0f0e21387ef12cd84679a17edee5e78e2e0a226a992a4cb74e294548fca5192b4e94f1239710c1b7dbc940669c9fca58007425cf0621347d13197629acf4d41a589530a1bca7e834ad598c9c431ef9ac5af8e32b97b4c1c2b754d8ec612e456ecc5258edb1b2b29395a9409fb0b4b1c47262db1da66f482b012c751492a9d1647a70802929845bca0c439f54b5f360d6e72749338d89e9874a6552d45f34212674ba17de369b7781a338717913826a9f29bda0d53317e0189d36c52aa73922066ec2285178f388b4c796bfaf20993ef0b479cf2f24cfc5692dc42f6a211e7f88b6994c688539292a08449626788b52ce2e8a5c5d7675cf47e7ba18863fc89729574938863d0aba4a25993596e1071da3bad6cd167115e1ce214dedafe44dbae5116439c94fe2fa94d105fda094212db620b8483032f0a71aece20b3578a51512f429cf54fa9ed33a9b54a1ec439bc7f3709afd1a276419c3747bfa437d9e22d1588e35adca668cd57b763c81b5e00e2949b4b12d524e93f9cc4d8f6cc69273f9cb4cb6f8590a7cba4ac0f871761c233475bc4457c38ed66330d9d3e62d9dec331e68f0915b33e177c3d1cef52bbdba8601ece9b1d1b3457dad00de1e198f46dc9969420e64647c38b3b1cac3d65638a675953ee851d4ea3a4ffc99982129312abc371ad4ec54c526636494c8793d279a26df9a93fcbcde1248e900b22a39ee86bc9e198dd5e93984f84a5c53542f4b27811877326bb3749b6941bbbf2020e2755932a59e89e0b6279c341575a859c54f2c20da7f0a1c76c4d890ab7bf68c379d64c949c2b9bbec7176c3885babb202a7cb1869360ea176715d3a98abe50437268ac245f5763c4a4e178ba43b926d5f49bc268388f4cd1e1ae3fca1452e30c27b94fda26c1ceb62fc90ce7cd6f172caafda20c27d1f95adb342645860c190e7a7fad6153c812372a8a1763389d2ca1c4f47955beff85180e3286d0eb332553ac0a0d1c3590057c64e454f1220cc7b0f94ed4944b1026a96038e8cac95842888c31e72f9c4c9c52174e2ca3f0c20bc7b2d257962ab388a65d386979cb5fc209e2c259df2c63bcd25a6513b391175b386653929a60a675d43c2d9c5470cdfb4d514cc6f94516ce619fd9e4e24e185362e16c71ac3ee49bb4ecf60a2775a124dda5e765ff0b2b1cb6ecd4c2a560361605ccc0420209500a782044e445154ef9e4b6786197bdc471a8778d2c32d035b2184940428583daa57a99eac93ffe8b291c544d9049bfdfafc9165a34e2a8c003520ae75bafafebdc2bb14ea2708ad39ae4b24927d5e443404084f0020a873139a637865793f26f2ef0e2092769334549532944b6c809a7984e5242fe8413adac098715ad14fb3e79cf9209c72f91c9748f8c2749ea174b3808cbd2a1d7a43a21b7e485124e3b5a8248117acfdc0fb181da092f92707e773335fad5c48725b811b24978818483c595c78ededd243e928587e0b8a1e5c5118e9915764c584d93c7712344ad181c9ea34642e385118e7d99e42a5e899cee8bb09abc20c2412f75349f5c23b6c4396ca0461b30b705d202435e0ce1989b16e626ebba7a498819b281a30223098042bc10c269d34c8ab72ab27bb7201c749b4c19197d54cc8fa4c023608070b2dc54992aae173f389c9bfa931b4c46e66ce4b8f0c207071574a9b52b25595c5744ad78e1450f4ea92e636b92d0b754e71849b00b2f7870b87c9edd5dfe5ff9bed8c1799309b9d27bf2ee9988a8ddc85158bcd0c1a95b354979bf84d73211f0220727a975e93257959cb75ee0e0a095928c9654b052da3fc046094432d0352a072f6e701613d39990eee12eb2b7512301c6cccc2cfe563251a1f286dd89b36b2c0d4a0caa3693cf89a349db79d79a266f2d13623380b189d358f64e8d7a6ba9945580a189938c35f3b6a56a36279938dc660d9b92b6fd265701100318983867df65ccbef5250ed2b26fd3bb59688a25cebe4932ab9bbb0c318d4a9c72747e695162e5939450e260a19254c1aae35cbb49b02633b229752a8983b4935c3b84a9a04784118983a9ec7c8c3441e2b03944c8b71ab7138d19603ce220d2ce4ed413541825c81127157ee156eefb2ec368c441995ffef42e61a6368c38653f493c13f4476ba42020c9224e724ada8712de4fea36024311479353fd5e479e88c3c865b659af0ba3160c449c82d5a953dd3b5f671fe29ce5262821defa4b8c226a35466a181bc9a2468e12140086214e292a1bd452ef45a485b8449fbcde5012e2143474d6d86b79891b40c018c429979a5e865222040c411c764fcc7d5599620c3ba4c008c471c46dc91772b6322e188038c639cb98719a5ba9ca00c61fce5623f3c539d95452d80fa75367a62e09e2b75268fa701247a6d6246b3e214c091f4e6f9b4b12cb7b3973df801934663080c68c05cca0b18753de91a244f90c1f3a82a18783fa6ddffb5989f4330d30f2703c95c62c6d107516e478389728db9433b88abee60e878d9b9fe9942cba6187618753b509422625fc92ea7f068dcb038c3a9c4fb46b0af667ba2e498763daeb8b6d294749959bc3d92433156ab252107f228753eba9a6b1ccc6e194c468dcfc172edb9ceae070d61c7b23cc432f3420203980f186a35da9585a4cf525992232821c3083c60c0accc04202202022e986835ad23d9af6a15a646d38696e0da1eaddeb6ae300061b4e42e6d59d8da7316f726b38ec2955abefaa7519cda04163061612d0000808266380a18663d68c8fda9a143f3427809186a35fd298f274ac010c349c724d454d739226e9ba1630ce7054b54bcf9cb1a2c9d0994163060e4fc88b19cef66652e77e58bc744d190e3f1b84b6f7d020fa2a0c6090e17426a56a92f48bd8288901c6188e61b3525bcf0479133c6b030c319cc26bff68c83cf22cdd364c0d30c2703e792c84264bb9e5570a72d428768001869318a55a82e7092ffa041262233546dc868b00e100e30b87939a5ee2eb1a6239120f30bc70d0fe4cd125c55ad4ce42cc981f6074e11844cc5899a0452c6d40404040ec46ca0c01830bc7ca57b198f7fe90a12d606ce1209324c5b2545c0acf68e1a435458e8a88f413d1e0106064e134fba62c6fd60b8bbb0a010616ce39bab4faa5778553ee59fc4dd1b5c2495bd692f2ca86b074a9c2e1b36492b3aef2769f4680418583a6b18af14ff41a534ee198d456f48c1e236b7339020c299cf352578941c44f8e1885936caa4a058d278b7a1d0a67911151cdd7b436499e70beeb36317ecb68c56c0205184e38aa4511dd4b29cf5f4d389750ab6e4a93250a3098d0b78ec58f09309670521572ddd374abd243634d80a18453950c966413da6bc329092731493245cb7bfa5ad60318483887d234b3f5d35dafeb0807d165a533a5b52433698463beac2f9a79a2e5138b70eccae4a1c45758d312e1aca57ffe94f8a12a6b4c42041843387cc9d95e8d9937c95a3c802184931ad73649f80dde9d29028c209cfa37a5be24fd4634a4051840385c900b336be94bd6f507273f0fd3cc97732df55c80e18353364de9d582b957c97b01460f4ef2a6bc56b99a47890c95008307c72db92944e46c6a6b07c73afdcaf533a5a9c49325c0d0c1419e14ca2c496f165fca1b6fa3c61d1560e4e070693e356d0c7a2fe60c0930707034490e256e75e95b966e7010db73278ba8cd1b64120d306c70f65eed0df5559f553a038c1a1cd6fb7f4b4dce50974b20c0a0c149b0249ede767506475dab71b55426c9570701860c4e792c63f210af545386980b60c4e0bcb984abd0b716646d2a0b306070f8b7d210616e955bbee218a4ef9bd6c5654915579cba47fe46fac9dbbead38a8ae14d3c26e4cee222b0e4a995232a52406d1d4db2a8ea6fb2666f454b124dfc2872ace956ef7f9b77e154a5271128b2327c8cc702a48aff0818a53988da72491263a1b44e30b1fa738bbed9ea469a66469dc1407954be6ae4befd3da4b71b293562cdcc8ac9d901487ed1a25d37a53fde533c3c7288e494a59e3afd7d5565a1407eb0d377e275f5a3e14279bff90662b325616288eb6265e9292d45be28987d81a3e3e71ca2647d659ce096ea6278ee9b4ccec63aed2cc9d389850f99149888c3f160808274ea9de84d266a62aade9386ef4c7264e7929377f9a2e8b7a061612980102a28983bef92539a29289b3a9af4e79b9b7f20f1327315c95789717bcc478068d190f3038878f4b9c2c63374c344144f8b0c4d1840dabaf259b52f25d89936d34497989277949529212c7b694b6a2f94c3ea54de2d8736695dc2cfc7669923897c86a2a338d259e94267c44e2e4a13395246f897e7241e29c1a6646491a3ee23897d3b5cde424b35188691d3e1c714a929856bf152e33798d38ab88d80d35fbaf5dca22032020216668f0c18853080f69f19220c39abb88d328319a9adfd7ef162960068d190998610109ccc8127c28e23ca756c62cec64e82d1147d16ca76241b4a79d883825999214632a25a368778883e9d125c6c5dfb4d810474de12ecd49e9429cbe4e4f7a886c163f11e2248bfa2dc132ebe4ab38828f419c64d060d962456f9283801c123e0471f84d67e1eaca6ba34920ce779b41fa657f4b620b88d3550ade7f2246da5fc8f0f18763c69f95a59261c9f4190001010109b194c3871f8e6eb9c9af5f9329c9c3420252f8e8c3f1c48eba569b8b354a4ac087c3788ede9b8e9217fcb29103c3c71e4e17e629a357ce4328f570de39339d49164fbf983c9c94bcb2986ead3342838763fe4bf2c8653ae9c265420c93f07187932055932ccd1a6452e9910f3b1cff52e65279529c4d973a9c7545dbda7c263994183a9c947892a4f3843641e58b161a3ee6705226bb6fd07ba76564391cb48eba57ecf5d0a1bf389c4a8bcdc5942a8766ee6fdcc06101341dc2071c4e1fa2b5f9de4cc6d7df7010cd962a8956a1d3a44c0d3edc702e7ddabda277f6d18693f40c26fc5d529992cf86c37fdbdbc971620a155ec331989a923abe4953c371f4f5627d89d1d33521566938885a65ddf90a6d7ea221f6820f349c946ef9cc5ef147c6dbf8e0e30ca79425083b3929733ff830c3f9448febf451e2b7e8ca7054d354269b9651d7350808143ec870166923e564b9a079d445f818c349beeca37d835c454d6a88a5e0430c27994a99f81b42f49b6c09c3417358d2906fa2a3651d7c80e1b0b16e1e5baa2f8ffb85f35dca11f7b2621a745e3889dd78a6eef28dff8658760d35c247174e42e48da86c3df96309b1e15984e4683b077c70e1a0b4491b17637a0819db40d12d9cc3f7926c2bf1cb1294e51c0002a221c5b4703449bcd4a77f6366d4b370342996be1432569a287d60e124e858537ec2096575b9c2b96b936ba99d5a2a6d5248f06185a3463d65256a49d229c9037c54e194c7d372c67419767321968e63061f54389794ca84ac6c563b95b78d1b1458c2c7144eff39ba7159a6e59e144e62512fd9bf8611b94688999e8f281c43a624fc6cec5753b2c6830f289c36a9333d9aceea7c7ec2514c9689bb92ec4a962ef870c2492cf115150d7e6be21f4d3865db2a91ed9209a7d25557cd6c19ffd512ce6de24dfec922251c4e4b0c9536b9838f241cbfd652541831275ff58184839b2cf576fbf3934a0a043e8e7092e554eef9d99896ca8711ce65fe7e964ff35184c375bb99afa92432459111e4001a33b2dc8d1360e12440592840010b48018e1b5af80440403885a4e9e18308e77151eebba1a4cb91171a15984163c6d102c78d6fc3c7100ed2e4adadd3ed87104e7665622ac5ec9235ff08c2e17d73a56eb4be5c52ef1800014920205d0304061f4038c795c894d371d15da9467cfce07862f30595bbeee29f2491f8f0c1f1a4c5ed9764e2fe941f3d38e92a9b2bd5733a540515f1c183a3e9ca65793bd4bd4909b2402608a9f11f6233b068c0165a3c20050a181941160071c2c70e4e627c4daa379f5ac96f051f3a38f6c8c6b592cbcae023072765e2db75cd28a984930f1c9c2b8c66889213370e888f1b1c73689272defff25cd006c7246490bd932a35389ffc669543a9b4f7ea070d8e264c69cb6d72ad3df4318393b696d6930f09a9010252563ddcf02183838f5413ebaf579155033950160c0001b1e13972a02c82f01183f3d76e30a54de8b313fa80c149cb7f78cd49319b6e11354f00c8c0e315e7ccd91ae31bdd8cbce9cd356723ce334ac8bc39212b0911230e9a596f37c996e43731101053467811c7bcbc17ead76a7e7610900ac850c4c9ad33adf777e346544646426ee428d79e6ed0306524031b01198938956e5f1b3741834cbf889ad9b93365846520e26c3fbfbb317765d24806404070241c2ee310474d259ce9122b5d5f4ebe05ea110f7963387c044b86218e49be54f724a5f3e4b81067358d49949153d2a509218ef1fc4fcc7c4ac9e9d3208ee297b726f9a668b120cefb9f7f9d1706e2242a2a435aefd7890b20ce964b570a1f292696f41f4cb1272ca21690c08c09d02881e1c8b105c618830c3f1cc4871ce131a74605918c3e1c948fa524e5e3ab74c7878398c6f82a1af4c9a1b28753106ee2749f2cf7af530fa7b0bca6b1fab24949c6808d0ac8c8c3f1946db8adb878f7c9ccb3e035830c3c1c2be6ba2af35b8ca7dfc861e3014a010f84e090718763d021bb416957861d0eef268ea5efabb815acc3e1774f05ed1926bb48e970129a4649d28f5e1231cee178322dcfbce413f43e1972385aea9b2bb9fa4fede6d220230e87f96cb71c3b27ebbd0c389cc692b4f297f10dc7a441498275f96f6fe78653780b6a845cd5f94e807084e428c1165aec40461b4e7d92ccbbab28725321776c389abab832f2eee2978c885a48ade1585dafa9bdc49860bb886642861ace6f72c34e9e20fd3aa36390918653f5c9ca3342a4a706a1e1a42db4fb48f598355dc619ced526edb674944a4b926a84d8b8a1e901362a7014f0404800e420c30c87cb97ecc43bd1a42c2732ca7092d1547fba659bfc36194e49ed9224ecca848c9a8c311c946b3c3158d8e02baa840032c4701293605249e9c7b64c18869374a2fc887f8fb9a632c070ceeecc6ad2cae95097889a096a2413d458401632be70d813dd196fb252ce464870e3860302c007195e38870cdfaf999496b99876e134b3267be336b23423a23672638b934d90c185c3e7a74513dff4862bcf10938c2d9c6684b4ebdf1042e9c5ee6568e1342aabade8fa6d5b46168e25fed56de1dfb45f26030b27b9a4e94b16a5de576f838c2b1cefede4aa9ab04169df0a47fdcb95de4d28499ab0881a7a055ca4414615ce97a14e9cb45d9a4416512b1b810c2a9ccb64861255593fb993318583c5982461b45c2691c249b4f6935464acda84a42c6eb4086cd4d8c29d042124b8718343123721230a675f930471e41899c1000ccc60830c289cf264af53a2ea785b58c6138ed17dc5af4e2ba2664420c309e712b446ff5556674870e3868867916adc952dc868c2f132c65862d9f49b993c292890c184933ca34a5031ca4965a1828c251c4ec986cdf8b260d2af8473c6494ad44b2ae84c56414612ce792755da755ed8341151c30ad010c95183032359649180193466cca03183c68c19584860465256a420030907bdc14f941275a3792da206023292a306ca38c2b9cb4e939c7b622b3e1135c591630b194638f8cf87f8a82e59d369ea9620a3082793ee5c4d8950ef2123c2d94c53994a292cae960a053c10a20119433869d816ad273256d989885a020119423808a9fa558252b14e52cb08c239df24b1f246bfb72045813b000424a1c0456400e164c25b89b96264ac45a68c8c1801c8f8c1a94ac789716137988565f8e074ad799258ab6c5237193dd83fe334e789b68b800707211b4fd2569562bdb583e3cf5594f1d3bca1611d1ccb2e493f2767decda1c563a600e1c0818ae3b8d15ac8c8c1497bcd87feaab7522b0ece7a2ac534cc9a3062bfc1412fb6966cded8e098c29da0cefcfa5449528383bcb2e83d6a2e9420cba0c1714b54fdec85934ea949010f847c40c60c8ead7f31975f16119b89a885545595cdc04202336894f641860cce6ec265caa5444b5c2f230647ebfa50dba07a322703062741575f8a777f21478bf18ad3452f35e1f45e5cf55c716d9b24a93bfd62b4e278a24ee9db662c8b9388dadd0c2c1a50108e12a0108bc18a93a50be799afda6e6b11b513b80db3195834202dc62a0eead24acab929a60e550c551c76b57594b8e637e918a93865bc693171f52b6a490c549c648bac983abd54c90c2c1a00023242821b3744629ce224469e94cb64a6385b8830d124614e7b2ca538052d6d1a94b0d5393f294e6fc2896e324659a81e03e78318a338cc9d9d94c2e829134f44718c934ff7ae4ae7ef1b8a73678a50f2fb59e80ec500c5d99289dd3e62b75c2f9f389bead59fc99864f7ec89c38c50befea9232e8977e2a8d1ec4accec54374909278e9bbdf1643a258495691327f9a4696ba5d555137e2186268ef12dc655d634c9843213a7785212ebd8ca3e2719625788818953a9946942df05d5695fe2e8afaa6169c4c532dd12a7d2959dbd6d55e2b4ad6d319a899546bca3c4612d5cfa6e1265c82ab1f4ffe64e12c738d9aed48eac1d153f28c488c449664dce672a29a8a6ee2071deac739a84aec8eb7ef788e39d05216e77ba73c4493ab9e3224eb72c095f234e315cf80b42451b0f25461c5493fb65d5c6dced2ee224bfe92609d69b255c10157172cbb79b7ea39dbe869888b37a699cd013ee041dd6126220e264eadf97513d445ccc28c438c4517e4bc574b726c82a211a82554d52978a4a825888931eb5361ac48e2638429c0493ca44e8957c96db208ed1f7948a21323a2e9d8238b928b14d1e37e5f61926c408c4496f4a13eb4f056d1e2302e2645be1cf527a3339eb3f9c7f748d5227b64831d50fc750319a9216f564bcd687b3464d7f797345dd6cf1e114fb62dcfd4b269fda93640f277135caf23ed3c351636a290fa7cc50a7a48626956412443c1ccf33680d1a3344acbcc3c194ec57b2624f7017ed70feb73071f3dde226d43a9cedde2e479d0a5a464f87c39c50eae797de24b19910c31bc498c3497cae9fda50829ebae4703465caae1871389f76195db24fded92e8310030ea7b0a27666f4ce5598450731de7052828929ffc88e13743d420c379c52b6cb2f57e2a9254b1662b4e11c2ac3f6c5f82b3b411b3522703783186c38d7553659adddec7bdd104b8010630de76e2d4d33c94e79996a38c68dea12b5e2426759e3c606424c8b1869386b9e6b892e27f3448d86a3cbe5910d3fd2c53fc3f94daeda24fa82127da1420c339cb2a55d934aa8c625b1b1321ce4b9fa7f7889be3f22c3c1e72d9412a37a731bc3298c0adbbf92c208d9300d31c4705eaf4d9b2bb4a5e5cd0531c270ba9ca25263cf64f01f0cc7f0bea943dee9cc178ed135e7a878e1fc7b66f9d737edd63c82b2a0b14688d18593e993bfe2f7a486bdb9701236c6cd2735dbcda8b770304198bcbac992da64da32c4d0c2b9d692d41b53bcd5f19318593826d53369446cbaec86701c101084c36bc4c0c249be8ddf2689caf9f75ee15c1a43ead749b71e7a2b1c7554aee9305153291ea30aa77427fe29b9ebec664f418e1ab683185438c6e54e99d717efd2838090600469113285a39df42253caec27bd278563d674425fd07ad205a1289c6ccfc4a44abded26998318503849a2c917d4a4cc355b79c269f3456fd73426c9a0e284c35f12c34273e5f4cc36e1f839c24d05a997d562c2d93289eb16c4f72413e6428c259c45e9e768592f21a3e9410c259cd2786d961126cbeac783184938293196d83a19128eab72ea7ef7cc33fe231c4b50923e492ddb6c0e6310c308a7b7b89de6e56e629b8883184538e688129745fa8d6c4884184438cbae8e922f4f50e2343186703e0ffd27456b897a199ae068104308c79e516f39414138989cfd96fa5a77a68070cae62d626ed64e92f51f1cd336679498ec0cb30f0ea3fdaa2c553a398bc5e8c16934499f1b83921ea9a10508488fd4d022e9420c1e1cd62c9be613993d8450093176702c25e554dfe5849b500727f924f9c43caddfcf33460ece79994cffa51cb335c2c151e3d77de953fe1ac486183738bac8d1d6a0e49262e3d9821836389fedbffefa8cda932c428c1a9c94ca57d2932c67f00b0d8e5627dd9df598daf262cce0d82683ee0c9b35c514951fc490c14914bd162bb216448b1b2306e7bcbc235aba5d628c890183d365bbf79eb05f712e3ba9e669192cc66c5c717e93a6a499941a74a9b4e2ac57924adb6b65e2172b8ee9629fa60f6162ce985ac5e92ccd5c2c19454765aa405b3a4d2a4e9ba559268608d323a2e22449492ef1ab7f0ae8290e7aece4e7babf4488a638c97b9b269a05dd3b2ac5a935af6ff6aff279498a93e816c7c3ba519cca82bed8341fba440618a238dcdf9518c4a7286d9b0ac5e1ebd2eef3fce54d0b8a5338513abd927293d2fdc4292669f29ab83167578a274e82028fc4a81452c6a2501c0c0302411083000424bfaf0253120000000c120f860332a1542e90f3001480044838284a32361c2c221a188ec9229150180a8583c15018100ac431104541180d9440a63e9abcca0b01f330bdda343407612c2a34ca67d3c698ca6589624288b64e6bfe540dc138937c4498d2f2dfc1ccbd401ecff1eb31ffea839ffc2cf4a44e3e0cb71f76b83668988f0f2fc04007aaaa29ab6f81a29bf2625465e5d7cc7b82c6c5fd4d7223f3ff87a696cbba9adb245a5b8fafb0c7ab687880b902a0970140690023aab3cae83700a4c4ba556c33b569ec0d1c00693719809e0a2b2f033388875c6ad8cbbf4c27dc05ba75863e2353a1b6d2e953b5a136a0d1ad0d516b0935dc9fa825c49aafb9a8e562b74baa7c54c748143e8d00ba3e8fcb8e4a325254925075059bd90314dc75660d5616386c61c7552b72cbe0c36e2a14b3f5102a8281c41cd8809bbd773fe1443b845fbe878fdfa139c08b7b1396e72ce30162f1ab59bc36ebf30f6b0620fc673748321cabd6a75cc505e04e1188857903fc29c632e0db9cb3522216a1cc41adf8cbf1087c32b58ccf26b985714e36b6460ec7e90adfd1d4263bb1d8ce23d7e21c159bc70da5880eed5f59ac989dc31182bd97525ef034b1dfa706da468ff2fe98a76179033c82b1182c8c4e3bf39d87e5e8bfe124107c669ec57ad43603c7377e844288fb30c88141349d7c7ac913ddd718e33e3cd0fdee8186349e644c7434a18c1b66496f4bda821e4c9f20223afec4670c06956ba6e8bbe97d560d9da8ddd120c57af4b9298b869d30f85e14a507cd521a33965659b69810754c5e544a20469258613a5a9d67f89cf012d5c2f6562a189917330e9ac2aa2355d4fd82b9a7cf896d28573879d0e20d671eb92b04a7fd37d074e4e7c8a7a9fd173ec00e1eb0cde3d815392c45001a9b6b0e501b408678820e7695e56165ca89024270091c00988f152893b49cf4ba865fe99cc4e521104473faf31dde8f4d3e5d504dadc9bb70c7f77e960ac1d33e58cfb8b8fa5f57bc9e3c5aadd51d0aa09d8ea034410ec0c92992073d91375d05caddb99cb3c6dcb5687a44958817cd8500eb3c153f59b8845594d07a9fd8fff1808dd82376b435610113a271d75fd2d6b480ae6c9dc05c50b8ca1b3b746a57459a8848e3a0ba362fa9acfc88e888b48b1a985bfd9fdf42850fcfb5d261e0c76230a54934c0447b41d0d102beee85a5941c697eb0061bdea5f0ba15b062a0a84097c0ec2066fc0f82b65ab493581c4ba04899a31405275fa4898013960ac7b55d1094df7ed48b2fccc2eba2afb8472dbfcfb52345ad60c5dd464be730d8d2e22c66c4a838a1e7b6a2ccc14c997356658e12be1cb5d55f909a20e016d577f4aa1b07a2d54df8ba706ecfe013c2aee5a7607c324a09fbe00878fbd84e7bd10bc2b3ebf99c043b5d93d1e37e363bc720fffb05fb3742b2ec376d9ca345463421ebbe6f5e868fd816a5f7286374cb425d57e232ddee33852a2fbe4e69f278fa42a29b30a6ce4ffdf9d5964598169c45550539af9fa72ac2b39621a2c26aea6ac163ee05c9993da52ef56dc75c3973112e6475b2892d5101628694be17b76ba9790d1fc443d2224634a1c27e16a217dfb81cd43bea53e37926d5df1a01818603fb1084eb0514ee818dc79432b1997fc7a0476393740d1b2b5dc9cbb048e4803f33cba331e51eceea84bdef384bd49dcc0d54e86e1068c566d3c5a97b5e7274e34bd983504146858537b26dde025e00e71062fe296370bd92b4a3753894ef0efa95a2afa7e7db83db2f35d72aa7d9d44d331a99c5c689791aab619ed23e5cfd709bfb66ce81db5484a809f287e39f30166f0235f5f67ef89c9d5fada36fa22691b1f16a46c353b3501afd0b0545748c8ab39804a1ab91acb25fea414f151ca67301c2af2fc2bb70427fecb8c568a24afbf5c260434f416ad0d086b9b9022e8e77cdd83b4ac05b614fd2f5ce78b9dbd27e4c569de3a24895d1058e4039e0194b615d106a45b5418bb0cc0d49436727bc0bd7a05d2f26d6140ab8da6f11134d1300a100b8419184c7e0aee15df07cd1086cf47e5781b94ce00d1e65200e912fc84969a23739f4600cdafce0e4bac2ceb76105aa3500083082554b657abd7116acaf074646f41ae86dcc3379563453d2473dd82af353b37ecabca0485082520478ed44ffbf858fb5bf20857cc15d73088fb8be153401bf54b029e09b7b6abc2d1f7928380cbacd3c6d8cb2da025cd8bd4b9f4e7dac227b04c5044ac852862da0ce8d579fff60ffcc819adc5114c4533461fc7fc5f3764f46626b14bf84433fba298262f8458561fc8927d074d43c4799f11a03a6e001bf89658c34448636d9e91529b1cf06e21f443dba888db6f427165855faa86f849624d548faafff37f8453cbbe1ab1b62084422df7c4def4f0d097fe2cee0432142589a11034c55fe9ca26cf73a71c051cdf33885652f21a9d096ccf3d52bf56aecd9f843c8583ea8cdcc8cea03160142aaf4a36ae4a85e08958c075356f81b795ca464342817c3f80fb3947782373064a7b05a14a03808ab7d2a6243c2671c54475395f1747d738ee08dcd153e1fcec3706e291ee1dcd9a2f1d419cefb7d434224f735bffe5569c3235abe3e97ea69226b76f968985cbff0225a692ca1d00bb63632370fc01548e991e762935f4c02d005702a4a76f73d74c1157f6566f2cee01d32c51bd189a3dc560ced83c93ea0f42b92592c4f870de17be24502cdda624bac85b94c35998fa4fd704ae08d6296bf81832bf56c863128e61236884406fdbeeece937927c7a2a83fdb0810c699f80122ae64e7491255a4e997ce1bed4e23892fab79f0364cc6aace385dbddb286dcdc5537376c2a4aac0c25a7f97683a95a22f0da3606014c6998766f1cb96cac58194adda436bed5939f8cdcf125957cd880fd2867bc7731c21fe0834a4a70ebb4052e15d375c8892129bf87a74c29fd758924191c1edabe8f1a7e62aa315d4cc162f582dcf160f0c81fc32e15dd01ed5c81049a8d8a31e3839160b63244e9d2b049b05aef92f6775ea59b825346e75e1ac18c911c35e41921c6eb176e598ab022499c3244c555bf78a1de8677133ecaca5acf5590451d9549b433371cbc9f5141344ceb163d94e43f5ec6358bfbe4a12b6ac94fdd8fd862c3ef238da69bb53b4c4da719fd69d3e8b7b4095014728244cd3087387425973900c6f27586ae7890b7487270e9a7871397487ad9eb87c4f5f5f315a8e5184d21e25626851a4224d5ef2f2084f1d1003abe48c2487649d99eb259e76ac65d5cadf4d73ea34f5c11fbdf4733a0dc016097172ecacea1e731a16b0271f19d161905aac412493c488230fc1c5f9422657ca51ceef5baf71f8dd42a50e79049aa1545c43984226d111b69a56340330b07d77f766682685ca31beb81b1885d06d70b58e2fd26f5431867a30e62a04a81a046fc262f85004b51983c453035c527a0564c4b62c410b9531b2d7bdfc19e3f05c1e8878b7b50664dd92da7c18dd2d15d7a6db8008e3a06fd8c9620384da2f49ed41f758ea6589bc8a9927f92c0354d98138fd362e0d0c62af2fc697c8040310a2c18b9a2059ed1bcbcea617f56c963098b5d0bf229f7e7ff372a985faf3b6ee70178cd1806e4960d40f289850f6bfa00d79ab582a47262413ee2c141eca24641f1e9a2f668ded9967c7c9962d0f6d80f80784864997e7922b4642600d1502b227b75094abbb95ac5cd85ab85fc1950015e3081cb19a23894a4c54b204bc457a38c32677c59c17e5f4123a0cb5bd18d55951c6aaba34afd6f81e1e008da60957c172403033258e0e8143feee5b6130d730d0e7f369dbdb635e48d2abd2620d327b071176e9ebe808f6d62082bf46cd440dc2fca74c04796b0a41642a9ff2511afb199eec57d30631af4346d88e7bde561b2c8449ae849d54ea6dd28257d731a068b8e17977fba000f8dc0208c122062a16b7be5de8f5631aedccbf689bc3e8d32490ac7b90a9eb144cab10324e6eaaa2c61ff681ed42eee35595e4f58ea92415fdf30d4fbd5b430650e3d1a69ee011903da84974c8be1eb8560d5cd7447af4f4888af12198c733eca56884aa3ebac86b1ad14b08131967c8e79e1938112527af4219e9443bfb21b168c6f00110339042b21e7b834602792d18ab3bf22851a999cd413cb2710d85106e2914e521ab9ffac41412785467c6c92d2e2f5e2f06d1e161103f92a98779d048d1ea1a7af86289f08157812834fb7d8ecd7e9a8a4254007db341ca51ae17446a1413fdb0bd4837790134dd9d917831f60258cf1e758ce79d59f1ffe24111f71699479514440cf082a8819505559ed0899005e12f267c591cc330e33042a286e76b02ca11bed550d283b97f89c3291fa5ea7d79b8a0f539f7faa28111c3dbbf81b2a3124bee52dc71011c63a05bd20543001b49aa252ab3b66504a2f167b3f2092c5b942b902fff2878f3dbdea2d65963b1de357d3c9e2f6f90d0fd93ee8a11bbee35daff187a9cccd4075c0260cac1ea8b4b09aecb8d13934046f051eb4118865531addf14f8f0c7af148f34e084d2c3bd859a4e8e29a7a903f405801854f56a750dfaee570555bfca5476626295b39aa987af79f88ce90f5d3ebd8b35b255baa347c72df6658d934ff5c76cda034cafb5a92c72e3cb8c410785bebd7ea03a45230b588afaf84481ad2718cf13d4d10a415408ebea7801c3ca8940d9e8d261c8708e4890bb60c71beaf720ece41838634cf9e9a93df964379475ed4e7829bb8ee66c86467fe64670c7b4aa394980cc1a433e6ea0aa160cd2f1b459c37bc803701dbefa52f1537937167c4c28059e23169e9b5a9998ddcdd80a1d792a3cf8437dd80b21ddf0824aac28280cb056a4cb11b169918ad38a727b14387752a903b7ac1e8f023581b50f59d0db4ed6597e417c319a54eca8345a1e77de7fb9684395aa76dc5b8e4e320ffca30cd79a697318227dcd002c7477ad981d15cbe2d4247cc93f423dd5d8a8b76efe1d78303ee65660d83a40ece1c720c94eee504d0035b5c6c16b37090ee290487b34ca161b434a6ea76308c86f121657abc0c17394d18d0e9c37d075ca60e91aa37f8184a6cd83848023838b57a5440162fe8f8fec701fd0db2b264e7dbe9f5e197c2e3d2d705f04c8925b0ca020f9952fa690db79aa9bd815f8bee8b56e4891e850ac883fccd0370c25fc46a0841de67992a2a46c7c054945422d73ca806960dbcb40708d58da37321984ffec96d5594bc72274c0e8288e5c694c1e3dabc3280e149fa16d8dc99990744e5680002f26f387150d8d9fbde504b629552d112834ae9f0c881872fd89a03df03b840870648dfc70ddc82441b62db3b7dd20a1cec24bf8724db000ed55ea316882a58f079f6d7664fd7adcc28db2f5952f957d0e68b43de07353d3faf56a9799838143d2214b264fa19b65e8748fac1ef531dc7aed7c7d058e1917a6497b88a542cd12acbd3eea19c7fcc969cdfa3551c543f19ecaf653c0e5f3364545cb40ffc3496054276fadeee8baea2856b5220c676d6621c03a5ff71e53d7e538db8b4758aca4de0083d469c58bcd6127da38134401b482935604f087afcdd64141d5852dfe0aa53b9914bebb3d164dc72f836818b458f5e36706420999e7428561318d8117b5db56a5b0e915657ec9c1d03a8aeccc2830da969f2a97c10c24bcc2501822bb2409dc38d2aad08755e8d8cec625bdac13aae49794015d1d38b9400d79ae04e411505087651cd12948acd8ede567311b0e973400154f78d476266c880f816de4285944688c4c420103e7904845143705f11a6be1ffb4ff5e84c4246a6a4543d35d7a3348fa4b0c8f2ff9a3b8cae88092f3d05654611bcf06493326c3c54702cb0ad68ca892e7cccb25b70b823d5bcfe2a2019c3214011b43cb4abd9315e26df00af33994c69d5ba385647b0c7449ce12cf5a0be2fdee3b002e20f85a0165fcf5a6ee9dc097284b5f6dc252ae7b629a2f8b4c7111a96c88694402b36824e3ab59f6660467dcf71a8b10a1921cb63ac1fda7a5a447477d6ba2b5a1d7c80031f48e9d17d3b4b60685fdd650673ae5b5616f59bf3e93ae42d89821fd74a54041b2d355ea1cf294fea3ae8a84302468a8586151ccabbbe2e04bbdc775e3f762c3d0a34be65814709ea9f66c0c244afc25b4ffae14ec93c54eae8ff19ab4b5a574ae4353c692579f3abd1f50ed52806477d3639d8a66862fe0d8b897026a1099fc88463b3a2daf1394b675754015f0587b3c0078387b895f5939b0d43252f18ecf59f4a1db45b54b288e627e0c63be7781edd191454fbfcc0af2f00d0ca8969bbfa3166adb95094c31f86eb9f751a638565cb23dd1c5e306f659a53d695c9f5f498d01c5cde5b1e3a36255f3427b739921e0595365ef308c938e2012c3a10c19073c3a5c813430b5a15f9474b1973a729c206236de8dcda3ac5120980dd230867929b93d6a6f6e24e93bb76e3bc179758333d4220a12aa600c0dc61a17cf568ca0ead154a85624792137ff17ea051c0647d51f34b291c3433b3228a5511619a93695f21061935e5040aeef44be121125196e0b6cc917ad8f4336628151194b22e8b56f4e34562c60380be22aeb805c84d768f76546d32e6a42576c9c828166589104c25543821d603c907b1cc086ec21d11836c29c777e333fc848d4d7a99e8b85665614ea4aa7dc781713cca8c656b0fc1faa20e6721cdddd6335625cd6fedf9ac596ce42e8cb3b5ad54ab5729f0a2fb3f24e28856c2f7de342c59111b8605d7d1b18c2e8b2a029eafd5943672fe21c43545baa89de4936d49a613275d26c4357a651963896c6840d2bb5f0ddf3c7f7244609a17c87c1854c06e04c8c5570b36e3a6c46852c764ae2ef7a961694043e4f5547a92fa4c858208c927b1be83a9033dbb408109ea088a2dae51d18be1ac8eb1081a5f027ad5dea1d3f647b1dcd1dd98caed332aef110340d01cf3ec0708eb8a7e6127810f2a5b7f86e432b3be2f834200672a52fb2911f1e01e6bb96847f4dd29f59abe8ae1a731327814eaa2d6d9b9bb4c1f720d1863db43676c5a7943f071289b47567f25514c7176baca765f48bfebc84fe335dc1a83bfec45c0febb99c7780967e4bba1389b48bbb3d3e0c235f6e2581010acabb92a38af2e6637d8836a76020b120318d1a119922f7a650f9870611a011581aeda2e0862994aacc74adb4a2aae391d911aa6ac4749514e2674b05ac0f47811806e7171ad5852e283662e52384dd0b9c35dba924621cdbd73684c342ce987a9b41377af7530338f2d5def2d2c13630341559066c14cc699e5341251cc41f6e785a2a0e429edb8a72ddaf73784827c6db1b5f0295f28bcf2bc6973bf4e5a36b7b07733095422ae3bc3ab6cd813608937cb353c538062a2aa2a19fc2290a1d1675fc612b5ca9a7e364c5f729a13cf8ff5660c0b66715cddd3355f10422efef0b93ff886d94c3578d2be236d4ef9fbd8951ff726dd1481c2ec2b9e340aa26f017c67b1b983653c8157e3e43c1fb902b22dab1d9f2ef74a74d95f5769fd732afbe9324d7304bf8577ea51325ff105b248f49462680a16e121bfa1f11d223ca60f0b8c53512cd3ca207b6ea07df0b850b720f5a8d0712753269440fdd23e2c617bc5822f08845f861214b83acd4bbccd5a13c2df678d9484e5ef12abc0df7f7f74903730d731344301642b382798a170bfd7df8aa2b4afb984639c9bf780c33a69f3e05331cc04d52807350311db7dee182e3ad82b4fd8c20581aa90fb4231e1f4175fc4d15fc7b68c4d9226ee03c29ae1f696525c7cf86bbb216e143135d328305afed0d58dd0605b0fa89c720017094965465d2e16dc883a66ee2878f54b788219976fe50a50425088141fd415a5cf98018b673a270333153049cad1c87cab46cd41833eb8307822095a73ae50f79f0d5bdf5b00d2431236bc0c834e363a2ef00316f0a4df1d4b1630e1213fc2b356840a22c2ea701eb467eecf8c60b500912d26eb1a6342aaa3c1431f0c90cd741c29b537c71b671c3ab82d375cb57a4eab2843d26ab5439258bf8d4b561cab8836fbf45163d1decc2149ad2ac5516cfb4b1003498397c7b2eed075bdfd1cf3868d1c4e520c197ba63da6f83004427416fb5ebaa0b93469dfc0ecc760ea6928831807565b526f84c42adcdc0a0758e48208f088b8f780efd58251f50ca7e15d17c6958ccf199604078baba925e743044338dee427ea1c6314a1a962d1534bd815f31eb55987b119230ad063426f58ea7c846594073c435b7f13e0f4ba6265554ad7d716f4e94fea27f886f190e1ead51de35722f95470866d962180717cacf08995407574769b65bc7b11b9711f9a38d8602ec9f53255c06b17ca1e1b4139ad5a8864bf9364954861c319050b765c89af93ee9e9f26da55339f3b9abd51ca4a66bf7571941182a63db4caf89884e9a6b5e8838a37bbc47a1e4e6490bde21ffc058e607b108a330a87d0200621fca0c5c82878e5fcb0ae440afb8bc3e1975440f0deb1ef52a548dcb9a08ad8c1f872c3fd53c6ac636d737463014e894cde523753629b5a00b233d9b418cbcd689d197951be09c9e951af2d922c585204144e48f32617bc9c60c6e48281bfcbfd174e5e930168bf508f7774e84e925871138a8955c192f0d1d4dcc71b909a102d598d8cd2415d5c73c3cc706de2d8c31b72cf4458839391f16c626104dc14ee3de00d17ebbdab45ddb9d07ad6869dbac3bb834447cc0ca03225e51bd8c4b14a4d6e484cdc638d2a61e3b30d876dda4ae0f4188769e374e72aea06c9c0e199bb9d43d020282c50dbc3d2551e9b18e39b6ba5d743aa3e39c1d08a3f8045c5764e7c0409323cefb77aad02d40c6ce72adef3eefa2246b86177f31d2862f29c64daa02d2b2d6a5a2ee5d3e7c2b001cefa6647de502f4e088f6b86ce5aa0996ff5b08e4050ff830d257010bec67c84a59f55748c05c651878d3115f8870dbec82453b6eaf1267cd404a33e7dba65c67ddb065e58533c99e84691947f4bf9186c04219403ea175826d1751f1b7f4c290dee5146faef7b1f5137ef9b5c8e247c39baabdf1c45eb682e49d4ce5abf2caeb8b8f85ddd71d2a634a86a48e79bfc3a97eec767ab7c30fe261c52a2b7e8f34a2b15aeb3581ea3e8ca80a1db1a4fe674cfac82380f1f4ad369f1cb955c30a1aaf4fb880903fa43a161b6440211ac4687ece29608737d8d755f834c2f5feea0f0ea6cf3124f4c0777b2a1d7ce36bbcd9b511cc489febc88fcc9d1d835390b2add086d8529f896b1c92c1bf95714bf32903832974def9a3f84065ea65a824168c841a4fc5dd1c50b6292c1a24816874497308fa282e3e2986597a7dc094056314927e58261baa857b9a93648aa390ffe29192ba7a91de02ca526a381fc81153b8955ff4caa500559c90713ebd4a763c1511d00a2bf3ac90fdde9f6288957a36690db670c276116141319ab543285cc557a369c898d8ecf047a143186750d5a50393ab002d6b5249171372dfaf28a2d5329a13a68976382b9ca6347f5518f0a4115ac471d076bfb3c128d56b44d1c0cd03a0aef9443312e041ea3db9c694c2ebe2e075ccd0f0bf9bced7d1fff4949cd3abdc796b3b65ab35e1c5cc002c2ab6951a75407dabe8522acee624f70526c7b9d440739b941d830738929b8b712c89b4f0579b2336e3352f8e23ab4ab79e649053d53c11ea1320672bd56227ce80662cee6678aafdb23f1bb62e49173d658c9bd84d73835e10a6480a007845d04e6ba29853e6c0f3175ae115460b02205fa5b2a0541884ebfc7b0211aa0e3edd4598d1b5929a4a834b7b808b2632cc99b8850f9fe66f36986b419fa91401affe78a595d7319779dd494f9501ef2a0656415e8bf8f3629b577fa4787a220abc06d56099b669f22aab05684d71faa7d36d9d2a7322a5d3459d0c9dd32f974de7d45437ebdb1ae59685b612fd88777d250f40cf121820fd603e1daf7351ec25ac085399d430ae8f83f5c4acf82992ced041dd8f3575e76c97ba1318e799fb3876140c0fda4992958d5cb5d11d7591b41c8b1247f49f94747a0bc689fc5be02fea7d79303e7c84e20abc2685fb3a5693d9f4c0053df4aa2366618ccf04ba5e7640a4fe45e5c4543553db892955d65e96fd97c1893008c66ea1c817f1ba7337db7db40905662b91119fb0f00d053d333a739845f98fa852921e48c2a4141713208514589a555cba79480dc1813c4ffd74471c5ffceede0f5c89d8dcbe3be9277309cd793fd6dd882d762cfc7d6a65d92982be75bc92803efc8cc07176cc458b332ba45e03a27bc2d81ef866aa304369b98d7aab699b8e72cb6a81bce2bb3d769aa8c608ec06ca07502447301d129f6e02f40170a489bdc0d43d1f9c00324ad6d81e0c5e288835413a8e6dc4a50331020192a62287b73320642556a2956c944140f4c0169267bf5fc4936ef60736344f7291d3c706bf164f32023848afe570afa32f446f5a1cb01db486507d6ee106cd4cde36e0374d8b3247bcfec7eb08d6a54e1af3e03c2897a0066d88a6f04acb85764994ceb6577f1930e1e88f38da66bf58e233d5056a4368c18b8906611e41dea716ea5e8b73c7454bbfa2a8a6ef0816811e27088689ab10a098e9daea26b035b69171b34ccfe26f2fc9f4fba305f00b31ca2fda28ab40bcdb387a32b7a1fc8ab4703240467f33a51d5cae19553e76926cb535f6310780209dcdfe76c30ff6a1457ffb0f2b6268f78336491f101cdc9aab8f5863c00a23c017cca0b9e2a328ec9f31fad930bce91aa5fda08b35c4bdbd2554de9287520617ccd501c8dcf2d4cec8bc6c2e063adbc4ffe125b2d41d0496f17b0474d04ad760040e04cb97197f66449ebe1717eeb8c485cb381d986a717007dff857e92478026d1a8389a36f2ebf1537b55e689f5e47637265a04ee97692de89024e17ed3ced79082d338713bd74fad595306996870cd8321c95f06ee6eda1ce2039aa71cac164dbe2cb11755dc81fc1dc1cc28e8af6d29465fc3e3d21ae4a7adf7fb9a1c6605e7c7e9a4095a53a04030af2716ef4ce7cbac71b938a3b584cdf4f3e0f9967c9c07bb8147a7b8dc57c744d0d4ab79185387589b1862b9a89abe57c4deb591f630337cae9a3cd009f46a679dd6cc62704e994da150bdc496c4e1f47c0ccba13c312f2131b7a041e1832f77c65fa7d00346f0ce08e4987b0c85cd498376c32b7e23e487e00a22ec008455a59c9f95a90656fa32bb067c8c38617372fff1550fb24f3d16510dac8fb186a4a6cb0ed1626ef35a7013ffbf11b51f7333ce6606d05a00fd676257269c358414828063288289c2630aea4159043a6473b02805781b7930a9473d3730491b3a6b0b9dfa1d22ba0f28f7b7fc0efd12276ebfa40c3d41ab3be9932fb2a9cc1c7407aaed20b5b706026cedc3e68ba79a459123370ca9d9bce72e5365c07861d2d1c1599c38fdf152ea41abdaf0e7b7a8421f902a62fc65c675d46d96ff538a6aa7b7f5d3d871b6072e304ab301ad41c6d01cf087f2d3e8e693651dcb6d1695906101fe0469e356ed148315ce78cfc3f1f8662c98829c8a3c612ea02cd36c8255edf17eec88e5b5ac10d35cf502d967a730d9b12803e4ae56e6e7dcfaefebf95644d6745fc83f7b1dff4024a23ddee4c0af28db4ae2da5a24a2f42c212214b61953b536dd210e11cbef9aeeac58f3b447a6f1e79121135776b200e5e2f966bcaf68f9e2c23b8e32a7b832187b3b61c5f63fb48d5a6d4f3c9e5325ded985f489c0f606e204e86b6ed25975fc92976d3f31271dc21f3f2042e474f0023b2724f5929b2ac288b9ca09ec3376839ee4891830959d0905624ef9490aae75002260233ca2002b68d5c883074e1c77f58c308bb22124c522504bf7ee2856e8a2b2feb1721f5b8d632a65c7fd09dbe5caf4d42c1e4fa4968ff21eb3ddfd68c727b3132c3bf6aed1a1ac82c2ea729819a599f6794b8aaa291e7e25ea777ee15c9240a411dc47fda8177da5b5968328a11497cfc8f00df3b5138bbdff3e7576786069448e7d5c99700871228bae813e265080f8353047a0162614c7315b8a96c6faa233d30b056ceece4008d1b30d05aafc59ef325ba695ef166441207d2e7fdb8d05584e6339c9f1403ad66e5281eea51c49c9a9288118e9a33c71b868c131d1ee382edf1ec22d5ffde4a50f58939774a1519e47402dd3b8bcc0922e75d47d703c28d6db5881c3da5fdb7d6b672b3181b29f44ff271a65ce76b75544175e1749b4e4ba0ec33a4a7dfcac9a32abd2a082a559fb52c6ab2ae93f38067cc3b459942f48e4d88bb5c358e7b5f41c377f7126a16cc34530eb0b26708711631e1b3c50afca81c358bbadad0654a237c95380b14a1f7be42be9e8c5113f00b385ddbe253980c6cfb4b0024aca15168007d2e651e4ded54b67bc8c42e9eb1cccaafa79fbefbbebf22f8339ffe81b2f9d29212a3d33f749058c4085df803c7cff0186bc7159284a7955395f3734783c297d2ab097fc5cc78c0258902004b592da798642928488a118d698879fa1da22661e07266f35e7e6c832696ee25c348a729a8a915e013a9bc1a6fa44d81c3cfcb4f89fd565a6ccdb91033227f8f693126c01e89b0a7070e7ba5e309b333b0cfb6aec8a5bd1fe2e001e3f44af9e285848707e747845f721e02f463ce5c88416b4eeeb20ca5e1c74e565d990c94fa8afa689992bd86a5a4f710922e99ba5d7d7d29d211cd5106abf46df3cc697bf36d1a1135a8d4b53bd84b8210b785fb50f8a9d52cdf741b1464354d87f0aa704883437b63118e7e3064768e83b43d08a4df522d3f1d83d41b299be61f6912c075e74493a1e5496502f1a7efd80959447287a72daf1fbcf29d71c9040a8d3e46d3aa642f879fbaa138737567eb5a6453c70ecf8c31e74763633e1315297a4b8698000fdf7af8fc5efaea5c609b71ee1af0ab131d45cac6b45400a52c8209a1fbd8621dc68afc9fcbeaa312cd9ca2110652e5e74489ffb3ed8b28ceb33a7803521ff1742ebe7daceea32fb1eb3b192e6f332213f2304a18a1f494f3854c502402bbc41ca0221bd37ded405a8628ad30f4e79971a120dde190eb375de48b483d016b4529af711c607a5e1fe3bea766f3b829e4db580a60ea4d50b350f7621c2415298fa82bf6ccca08b8d5b05d3e5ace0926276d2212e0146a703f7f1d645f54883268af380922abfb3af9b46713cfeeea9820daaafd60bc6eb82ddce5bf6037f750c9dc8c0060a845e2af5a7920a198109e9a5f98b1d068f99f3d393f1b1c5830cdda236eb07f914bf75396e9bff48963373ad4cff7b30d997849ddf6e7e241a1e07382cece108f3b167b2ebd61fb4199344d95d2591d37664bd1aa32e1aafc322aed4d8593965752bfee1ce709c7b683764c4242c34b25d3d68a601be852832b36683068b3eeaaa300754174d8098a3f515f8549efc8dbff356e5e40017100492b302c37485cb9f4198a5003d60c432c7cf8c236a60ca52246edc45c13625e2ee4f6f1f2af8548825a36bfa3c9c0ac1264cfb7cbb75c37b9aec5952b9326ea01f728015837a5795be7004738b32c0a3a39c12532226eed4cd230c7b1d2a0d39cd8453ac68bbdc0623d0b41abed2126ffa74b3e43ca0a10f37fa1e880907c9cc3001b3703cd5c467b734c98fe28f8aa561f34d28b76621e906bd9718b81cc0274af54d481156ab2ddb075b68a8c6876388a4e433d9d9e634114251768f4533394ef12778194687c635aa184bb33ad21781f129d32699a585998a5b626429faca4a89b642c874c30a212fe70a19371871a8e82f3ea61157b025efe7059660acdeec78e5de073599356a850d000f49b9ac4c9230ebadbc828bdc95721029cfb4f8822f2ccfa81b9a541becefe2fa7441ae7e7b00c62fb321651c907efc9156db4a3571a05c47b4b1591df0835b5e38b223d026dab60ae0ca830b655736384b5feaa5e1eae9345773a460fcbb0f3defc1dbe9e7eefdf2c096f8ea05b05c345555af53112e537e19c31534d0af19707554d8764b72d4f6bdedf5c26aa0939d10829fa76af57bee4328e3ddf14a0e1de94b15404db623a90aa5bad456c34891899c88f99474535f04cc9cb60731e0996db70bc90cf2f08f145e306901208f8c6b9051653ee76cc0c317970d95dff6cd821b100166996106fd18e1139cd530a6fe74432d6d836ecb2c70eba46e501a9e5c384704ca71a642d60ceee19b1b151b7e62503f503af548db3323b69d43b5598afe06dd2eed239c2e385d95eb0a9aaa2e7362c08c163c1762347aaac3a1797dc64edd119b17f38cbb89561f1d7902381129c86b6232b21ec30d293b341abe9d949d4aba410cde8616b7a0ae84c6c6d0d7101fcb0b768e83995f53f1931eccc2159c07fac3d0f78123e9f5b03cc408278c42a646dd034bdf97abe84010784bbfabfc056331666d4bb1036ea764978cc5ccbfb5fe1505c9659357dc35e2cd7714d3924251d508ce93d885c2e5ffb35afffed87a746973d0891b975417d9c6d34a0394ee16e7bfb022394ed41bfb046d0bfc38d7e062140c6e45a6da5d6406e0a937a64b3c6709c8c7119af43faa34088ac5c016f66e2ff83149de2480a60733cd83b21dd808a0837525eda44bc5a0a1482e2af3a22d59add130ef4c3db5615bfad6ae695b5d3024739c656024fff4b4a64c490b7dbd92b1b066a89b4e0e88c6f89c19be0808948cc0ad2f5e408b72020d0da2fdcd46977f5e1919d5e993336bcb839bc9b5bccf1c89b451e01b70a959d6835a2a2f08abc699b50f3224387d3912f57f548bdd3c9f9a8538a6c9fcbf3e4ed895eae9f1e94a959c103ac0a97c559c1e8da4fa4c839e26f891db671217d9f7d89afdf7130aba1e7aafcaa8f45cb9897ed51bfd89af0d76bcace30860d40241bb88c80690c933d9d618f202fe61b5960bb04b897a21ae0871ce704b47ab4d91c13ef6f04bb0f9bcff56b27c0b5975924d173285b16e5378e8816c760f9458cb049778a4d7819d40e89012a089048fe39574d512ca4d1d20176592b94b009c92e0aea208b125d0e4998051860ca5d4a91c74568410e80cd32face166ba431db10f19dd298c6bea361db13b8222ee572b43a33d9f4121c05ec39f5378c7003cd21d469f7ac8b690dd9b7aa1705373161540f6f2297d2543f71d1e4d9c3aff01af8760d4aeb5c411f2dc4e891e3f48721399ef0c7283bf510186131dbf06d777a9002eddf36ae573e66f09ae7efd4f2ced9f04f661d85dfe367835cc6311797cd43ef2a513d8d42a751c62522ec478add9e8966065be21031c90551df1c5198c38f0eb3f2c792d9ff43f6ec85e145150aa3d654a927db41019088a358486e70b3fad7b9481b98b3ea88c7f913f48300b522aa934380bf748f1344b42dfc68b945711c66dfa74b6fa46f2bc07c9a33618b959b55a60071ed0b3722693bf10589342ae92deb553c163ae0597fb72ef457f0e87b94f17f3b0a84b6243dd7768fa5930cdbdd9b28e9679695a8cd5c19331bfe8db202233a3278150fccbeeff1e94844ec47f57ef3c08b8edc23c2af7c01591c5ac3a53a8c716e4490da12f10d70ccc3280252a0786b17f2ac5ed9a32dbc35ff3fd37ac71afae8a48a093ac27a71f757b552b162549052717d5244aaadb07d01ecffd31ee5c7ebefa5f35ae73cf4a4eb04ce35c9e37afc6018df7d48a76d0dab3aa94585afff0e0b2cda89ccff11386ed169688b72b5f5705d41a10f986e03157927e709487fce535a09a6fd6ed610dbafb2cffb1b79d90d70f2bb3515fdc15eb990e7f1e0ee94f92ac4ecd2617362eb3baac1b8111dc2330c33f3a76414c9aa103fa781a440fb42a893582970db927d4dd55ebd6240a2af78ddd04d6cd4e3160aee36d1de51140a2dff915cb2ac0c5768410722fc84e202017f6af4124739f1825bd2a81e119d0cd80fc2a777b207a41c90aaaecbdf7be3c53424d4dfb22275b0024e9159150f5c01c5e07acaf7613c5f33e1873ac36774081cffc1082d2ec8357edc802e6c1f629f94c0044aca0fe62af2f19edcef49a7d82f16272c59ed850612972e2c8778dce2f1622242e81203c40a755190789d3115da7ff081904b2374082b846994c865b40582a2b11215204cb70dfc1331d598fe649240133c18621b030687f6790344a52350efeff67fa22baa95c894191a8ab0182ba1b03248f44e31bfc0100fa0868071e900977d132a5410f56f787066893e8511446bbd9af1671a8f200af8b215bc7c0e20cc62bb603968e2723d086ff3c1f30961212e4c04f8bc51a249b7270e196a03a56c026af43fa63830ec34e903300cc3300cc3300cb34c2076fc56bed91faf2999e49609012f1c23b29e0a9494529232a51473eb0220d8068084b046d6b43e019c0a500a080a68ef87e93cecd0e7fc1a4fc3cbf14fe560f0a8431f85d62ef520d364cad0a155423d9e9b72398ae77368a507194c939766395b1e7268a308cd7b2a2e2ae3ea1187366a9f7069f2a355b33ce0d0a8e6ff8c4976677d79bca155fac14fb57612fd1f37744a8955fe1e444e79cea30d8d98cbbaad2537be2ce8c1863e35c9d5af5b905a84a6e0b1865e78b652beabc3e39c6ae8376b7c0be39e73f692471a3aed66324625f59aae88864ebd5566e1e5d25a76f90cadd8a0b59c548b199acfabc3f8860b21b3aa0c8dd42e5ebb705a501f3cc8d0a8f6868ebd61be933a865e94500fd142954e0d8aa119edbf2d2e83879a1e86fe7c46a88cc945d52c058646c6e41a5b94d02d3ef785569aba4cad94c8c30b9de61c7f51babc5227198f2ef4820857a9c2c5dfce7b70a117a4baa03bcbdca8bf7a6ca1957ea619b2529a6ac9430b9d94b1dea9e3e68fcaf3c842ef22c4cc9a6a3958e8b4efeac60ed9e30abdef494fd9fd34538f157a9de99bb4ccf2e7ce12d201f0c2a30aadd8dc92362d52bfa8639e64713144444444fa10e0081e5468db74e6eccd8c627226491111419382c7147a41462d49f1a2ec2185467e43bcfecd2562a4a2d02af1e269ce3cb19d22bc1b7840a133253727a1e595f35a0bf2c0e309bd14a1c53cc5c513ab77c22bf56bade59b37a1f1182db7fed166a2954ce8b7539788f274d9a62451b361a3e40cfc81c7127a713242db434d85c72f071e4a688494e13bc8fc2f87075392d0af16155a7e519f569791d0a7d662739450da3b9647e8c5cd72f64fdff4c5d6f030423ba734b84e42fb945c91a8a10e3c8ad0e61c750b2e1f3e9e0caae141847e44c7ac5c469ad4d89d780ca14dd5d15c3b4b0aa1dd2437a7d477d1a57804a16fd157c49e8fc72c2b7900a11d25a59659f75c0793bf8d656d78fca051291e4c8cd4927841896f78f8a0dd53da79a5945ad462961af4a25fd94f93f974143a3729c98b36afced2a46e511294941312dd45bfab6387ae56193e289168186698a0a443176d0c9e2511a651b445975cb4efca94a70b325cf4a22ce9f1fd1bc637abe316bd7c6b0d5f1745a2766cd17e7e5daed4e7d4a32f2232860ac210110143472dda28d5fb37cf78a8ba246a69380ada0a3a68d18feccbf036a92b5e25513be33fe5cca2f370aa6557d3d72ca7f1262608c30c13a4e12af80008be04c58cbc95451fe275d4b22cbc9c63fa14b761df023244440ebf8d944a4cd2061db16883d012f15a6cff98913739b1f3800d1b7e2365c980c108093a60d168f71d17b2752623f68a56aeaf8a8f195d3e3f1190a4b80848529c448c30c6284118628421820e57f4720bcaa3e716635d295bd1e8e688cc527f7acba3931c232ee86045f3f24757b6fc19a71aaf4c4ad850f28cc5a06315fdbfd2ae59c3c6975d68e236ca787542c6be3a31394a060c46b04315bd4739d2d467c3fa8649d44cdc068ea444e0838e54742e0b225308f59c91ab49072a3a0ff7f477f57f9d321da76863962d1d640891d9e93045e7497bbf4a5706a2a314cd0bb16baa323dcaa811a18314add4dd2ef6ea959de519452ffb1b3f9fa648f4d8b10e51b4e6df6f62b5b0590a3fc71a49cf64042928688891f239d6f8003fa12314950e503ca0e313617478420c0c7474c27470e26499948c6c421317e8c844af834bb2bc656f51478b890a745c822fe5d13bf7e796e8dbf5ef88bb8af824abc448090e0f9431810e4a44a0631212e890447f52ae97a8a779eb7fc4648ddc48f134461e3112296bfc19296b7c0928d00109943f03e5240d0a743ca29562b338971142c69779939274e364394b478c60a0a3118c68e5bfa8324ad91efde145f433a7d9fedb3af8788a984047221ed08188b65c35863d21aab33803a2e3102310e83084033a0ad12b997596165a3061c245444444240a1d84e84d66cd4c3a89b77069c7209a3fa54a7c3d66d134d4218856e64875f99d3b02d1eb76195d298fa6251b03a20dbdadfc472a828e3f74a644f33783bb2c6913caa3a960fdd0e910d3112a2f76120eb41c28276574f4a11f3d2575d2f8f18239965743071f5a2d7370d15d0697c5e6f20ca2630ffd49fdbe2f9efeddd293a899d48343a0230f6d66d2929767ff73860e3c343a85b94857a144b3ccb1161cc38188c808504a468ee100514a4670a49c8e3b8c80d16187c6d3c46a162efb68492751b3e1237a385ea9d151070674d0a1914907d52974552bf7eca1630eadfce822cb4b7e736374e89043bbaf4fc8d0d60f7d793b74c441011d70f0e87843af6495663dad41a3ff1d6e18a940471b16d0c186110674aca1ef286474d3b1ef8228a9a117f13a6e18f1725ed199f892928646689d97420a215acc2634b4a1e1caf547072f1d3b432fe99ca986cf182953666873d2524cdef44bbab465e8e514df767163d442647490a1179e4b09df0faba7aa8e31f4224b75b3bf9259f1c4d07acea05b520b5a33f9c6cee80843efadd24cb46c90fe2a30b4fd9b5ae9d5ae4746ef0b8deb95d925ad4934e693179afd9cb5e8e8bf7b3277a1d5fdf8b27cf92c779c3ab8d07f74771967ca84d28b888ca4a43cca8e2c4a49c18e2d747e5a56cb46b27720e8d042f3592ef72793fb9d62165a99d917f76f41aad43bb0d04bdaa56b39658ee9cc92a875a0e30aadfe9847acee9339af153a19452bf1b2b4ac6396055bd0518566e43b5f8f4b97bae5ef58d041855eccd244aa8be2c5f72c14c771724da1d90dbe5148655a3c29d521853e697f2b0feff2893cd1be230abd66164c7f94cb1e75550393131b9b820e28b4529856a93fc70e538d3f27e878423f2f8bf6d16d8d7abd1b25cb2b2734ebe287c6243ebe5c494a090e90063a9ad0b8eb9ce6094dd0c184b695f6fdd3a82e5abe90a89de1378ca18e25f4aa77b5d6b2a0353dcb8282374181191d4a68d5c3cbcab3b8c245e125a10d3e32684cfab3183b0a09cde7ecfca79427df4c8fd046d3dff1928e2eb5f290a89ddde057c0db6184d65c94ed2f655d7bde8bd09aaccb6242cb9dd37d22f42bd67c74b91e57253384ce75d442c76cc105915a247408a1ffb82bf342cb603e6b47109a4d75b1fb5c92dd6492a81da231822c071a37c218430561740081d7a6dca51c1d23514b1974fca033f34ef997a2e5f0b1c3078d7099b40ed94aaf16a468265ff4a215237f5bf2f9d4d2a25250bc8c335eb4f153dc8316f4246a26236b9878eea251a17410b2b9a48e56cf74d1ee8b9ac40539dbda8596e48b5cf4a942c913cf5254b5d817b8684c8ee7a875164e6946d42859671cf8e2166d9f0c9f3d0759255f27c516adeca85f482de467793ca716ad7019b685bb98f78d91a83279ed2f68d197c8acb1a48e5adcc5b368fcc7e528f5b96ea02cdadff032b9acc594f65c2c7a793529fda9aa32430e8b665db5522e67654a48a557f4275a8f10bf7aa3271957345274458590b956f4332335fab6ca8a3646ebce3288cd51afb78a66753eb9a69ba13bb3a8a23121656a4e21b63cbc52d1ead94cfda051a3ca7e052222af4444c880c1481a5fa0a295cd24b5887297a577123593131b27cbc8a6e08b53f4493c275126a31164afee0b53b4e3b95a84c6d0bca6a0380e15f8ab4044a4149d78dd314bbe5ad3a386e73059232511ca2f48d1e8d9245565c76771e5246a252367fce3501580c0eed595f1c528dacf9945e1313f288d7112b5b316d8585e8de048e10e2d7c218a3ecb629e965992d318e750b41ae36beb76bf201afb0214084da4dfa4a58cad65af0baf7532bff8c44113f104a289f8179de845c69b16a3c9139de7e1441fde3e68c54de8203e6b597ea9d38b7e5d4ee6524bba0f5e34eac9c4bfa851e395c90844444444523cf0b18b76b4c8d09b3367b1598b2edaf0e2ea52367bf6ac76bcf8c845e7399acf894da9f426ef40f0818b7666f563d0aad2659c246a6938868f5bb4f9e26f3419cd7c356e1ef8b0459fad62b51ce219ba5bc4f81214330c9e008ef0518b4e64653cf5cb597e919ee4407b7542c6d90f5ab41de465efa02d65376666d147cf8236977ff794d3872cfafdec92d62dfc3dfa1e8bbebd25ad5cca9571b935b0e8646c8c9975f3ee4b3a26699ca8e0e315fdc7985dc5cbd1a530992bdad82b37c6172e57828f5634ebb21c545dc78c3f58d1cc7a299d0f79faa12251b3e187ab683b33cba7318b1a6744b3fc5045a353cb578788f3788d13941c29af34157dcc79dfa4b86cba3ee10315bdd0d49f754c7ab34c5a87e4e314bdd6fae921a3ee7e2ed52859a6e855a6ca2f2dbb7b95598a566e962535d931af564a73c41843056140e28314bdbe1c8396e5184eb9e41a85415fec52dd363f44d1f7ce8b06ed8cfa08451b22b4fc3185584d6d4139193922f800452f274f5ade54a541658b868d8f4f74e69b252d661429e3c713edc93df553f9a23ecf7c74a27733adb5bb373487538c0f4ef4a2ccae5df628b489369b679975b38c870f69a2effcad1ed7b3ce2c74996864347ed0923d3325c56be428b151924a6cd8f031ccd270940d7c60a29352a994a92f328e8c3dca3133d27015d8a5e12826f8b844df29b39478586f490991a4384992a438890d3e2cd1c78c2f4773348b6bf8a844af450819474a97db2ec7c6c98852a2175e546acda8f5ca8d88480e346ed4e06312edb92057c62bdd512a44a2c692e8e5f8154aa8bc097d2989da488e8f48f4323288cd318bda59deee0312adbad43ca7cf3c680f9aa47182f0117d0e1e46e9ec596290a4b808d6118dd4654297127f42b72c1f8de8c5ff76fb66f9f566583282820f4674c23febe4ede5b25b8e16d1bcb62ca1397a5875a5227a51cde41d724f44af75345b27172df98f88e8bb35c9921df92d76f4108dd232e88f2366f2f46688dee3cb9e8c14edac55883e4c472daf99dce4324c88deff65b72856293f1937c6069196b5342153576fec43106d68e9a7b53ca63a640ea91332ccf547203a153ae91d99dbfd736ed307201ae92a47c7ecf9bb399ae01887e0e30fcd9cce8bab336a5a74f9f043a3f93d3acb761dd3d6b9c18360f916d83d1a377835b23c0eb88c8f3ef4b205a93a6309712d567ce8dc4d6f68ee2cbba8d93df462871663903959b25f3df431c8536d1e5e3ec77ce4a15f1f2df8490d6a6a5a0c1e1a577285682df90e7d36d1f4a8753ecba6b543dfae2b5ed0903fead0be8b318a93f9cf9246d1a1131ddf92f897f325286698e0630e9d165d14fe594572e87496f1c5e059bccc2943a2baf91187be57e6d2f82e46eb5a8292c364e0030ecdb676b61c352de92cbda1d75a6f3e13ae514f6b6e6843cd3d987ccdee1393f0d1865e664fadfbff94a7bb52f8604323f5becb39aae71fdd9da4989c2c6679bc865e5c525a4da3c878945243bf5a102933a3965c943a6968dee499362d5c79ea090dad9b482d4a937c8656673cef91e17d98a1d5ec282fb9d092d86f3fcad0c8a85d4913fee235683ec8d09bd0d3f2c71cdbbfe17f8ca1d10f3d7fe14ad6e51743ab4264bb96c53ec2d0e8a09da12e6860e86352d94a9c3c654ae87c7ca117b5cfe6d8f3f795621a7c78a113a5ddd9336659e8f074a117f39d577eb3fbcbc25c685c1619dec447a4b8cec7169af1d24a974b625bfefe430beda99812dea9794c8c43f8c842b36e424bc2e76379e63fb0d0c7963db7a051a97cf549d43e8789d7e00a6dd2faa4f470d94f6a7cf0618536ec6ffc8db194528546a616a99fccb529f34b6c7c8e1212b4207c50a1d3a5ae51bcd6fcdce6c7141a59aea5921d3ae49b4cd0381951fe281f52685d50da7b5ef856f59f442d75f011856673c91c5a16bcc465ac018ab20f28b442b3e09ed977b48ba3248df3f1844666d59d4d6f38f9424de34d1ec5700a1f4e68468e891784878f5d5a4de8959cd7231edae473644227fbf12d9bcca174f46309ed079da37b76a6ce82f29cf0a1847ea59ce937d919afbab91b1f49e84ddd4cb7382f6736b750f840429b3fa54ca2e5f0ea4a3e429b5fd2a0b46f39d03801133e8cd0e80f339774d0516ef87c14a1d3552e29d9f2c713fda26bc207115af73ddd4ae613d7827262ec66f031845eeb4d25a26389d328fa10422fcde5a58ed995cb5bca71728282858f20f4823e7dde1e4774c90c62326030721f40e8b5a45cccb275ac5c293777b24c46c0468c8f1ff4e1c28e66c94789f5f0c307bd164b868db2a414df722f7ae135737e3ef395bbf1a2152d6869e926336578176d96c58a5dcf9266d5cd2f6e03872e7a615e10d9a54a29f1d15c34bab3e479ffc9a03dc545afad74cee2aa284daa43a23672e30465e528b95162035d5a0e351e61e0718bc6f33f5f8ba3399ae8a02dfaf821338ea7d07ccf7ad4a2d351d5528ccb1e7d9e072dfacfc29ccca5e13c66368b46cbcc7d615d48d46cd828394316bde4aaf478fc50d172160e1eb168b4696b1da5b95382072c5a9d4c6a292ba47099cde52368666c0f1eafe8e5489562fe3335844a0d1eae685c636849a185a8d21a7f8649b6a253114a9846d72e67fcac685fc6fc8c13f7aca211dea27f5ce5c227f05045a3517c64c754325a96c354744a8ecaa48389d4061ea8e8b3fe90c2450d234c8b6b093c4ed166e12237b869cc723e290f53b4d93bc346a945ebf0a798a1b54729da20dcccb318cbe37727c7d7e04b50cc204523bf350be37234544b25258251f4524fee6b7136338b19cbe1218adef489d79acd25081ea1e84de95caa852ced61446cf00045eb71b7a3ebbc0bdaf2f8441ffd536370d73f22bc35237878a2132f3fc90c6d8d9ba34e74a2b7d5dc84ba244ccb19103c38d1095525c5aa9241e8ce42a286f223c7686e139d16175b367d97b4d23a231e9ae8fb555c79969b3bdb814726facf2fe8a072747a5019a263b5f7c044ff3a8c5c7122f529e6be244709123c2ed10817758cd541849031f9ca129d099d265a5734eb0cc2307854a215aeb3be0c5aafd6fa43a2a64a46d648232338523e90438d1611c9a1c65bc183128dba68e1196314ef529b44a76b529e0ba61e93040f4934e225730fad842eade49168e7339bd419db5a6ce185c003127d76b94fcbbc5ade109b47b452c69bd4620e71d6c0c311bd7231782e31f3928cda8836534f89114275a76cdee0c188de25d7d96d7af258449b2fe4b5aa6cd9e52052449f1e4e27d15a7aa5983c12d178965da3976c17f3b48cf04044af5dc81229548609c26883c7215a316df2c289b7965f45a2268266f03044a35eda5349f790a94485e845fcc5115ace93105a3c08d10857f12ca7e2e37986443d06d178522e55cbe6e45a5c3c04d1e8d0f02db6a0a2128f40b44afe5d18b15a1c7d5a88e20188c65fd0976590235d634301143cfed0ef7a6657d9ec496cce0fadca10d3a36599992d49d446504e46d270146424f0e843ab434a193a8ef6f54d518c191f5a4fde4a875c1923bbf11e7a5955eae0ba4a47d5d708ca490edf3323f0d0433fba95f0cd3287d14945810a443cf2d087687751a550265226f1d0cbd562fedc79e40ad9ccd8e30e9d760236464e4c26d1cb4ba9c57d75495ceb25d127d35e26e342ebd2e291e84fa4aa122ec92f1d3548b441870f524e8b9e21741ed1f7e6e4d2536917740ad111ed7e9c923a75d688464a156f79478bd1f9614427264cec0bfa5402b2887ea3ccb1a7330ca2883ebb646a2a756ea14527116d0b7a5ec9585ddd302d144010d106f32caf85d33b2345904334635ab590a742121043b4f95564ce332fb916d3cbc04234d284f894e9caf4750c84109d9cceb95cee9c41f43a6b3ff170dd403919e306cac9e2130388203aa58410e59a1a45992e039040344ab99c93d49e63b82806441b4e7974735f7d2d757fe825692ae5851c97739001f143afe3bbc96ff9a7956f7de84b0699abb7f4e80e1e3880f0a1973f876c154d1aa48e5240f6d06a97782d2e3eddb3540f8d4ba273d6b2deac01c9431f45887a8e6302c143ff9236616eee32c808efd0c99754667eecf6d4b23d80d8a153a54469d68d1e36e640ead0e60ea385c89ecccc591640e8d0a6b6ece2cb713c43447773e8b4cce6d4beb245b941460e9d3829b596fa052daec8e3d087d4427c9b74018143f3f35fde92cc535a902e01e40dbd1c4ce8585a89188f0fc40dad8ef2b26f9ed372fe541bfa4c17b4b81957e9d2fa1d081b1a51d76e55e6b39eba35f42f9fcea8b620446e49a2866000a286568bcc5ac797b5cc173c98865ec6cba25e19b63240d0d0afc6f19cdab15f10269ea137ffec97ff5a90fbe163865ef78b6f8c32b44eae2c43a7737233297d103274a262e489f81e2d4c7b03640cadced9556b793f65ccb2187a713c5da5cacf6bfa14863606ad7546171a64b4090cbd54e2b49bbcacc385ee0b8dd6916a5e2ebea0b4a506102f344a955ecffd5a167d65bad09acecf46b12dcbad74b8d00b4ac828a3a5d7c3847e00d942a771b390a9b5687ae4d5421b7b3c9ae7161e64aed20092857e35c80c2b426ab640b0d0fba80bdbf9c26b516b815ca1f90e2f572984521a47b642739a84b6e9301ef3a973aad0beac5a7566a9b9c5d3b2020815da97795ad2297c3dca17069029f4f15bc98fb9e849b6e50b2052e8c4055f53beba1a540a310aadf77616aadd2f7ae840a1d372fe79984df9a94f204fe85446ddba635c6c9d7c4427f4a93decb9928dadbcbf036942ef626c61ce3d856c006142eb2e6611dfd3f1a13d4a005942e35aabeee0d9f4838ef10c204ae893925afcab740149429f346ad642f3282575048284be65c86b2d9f944abb0be408adec4fe1a5fa6456520562844e83cc2befa29663e7fc9c22f4e9aab32008111a9d75eb98e530212f7a9021f49fa7cbf39e0879cd8008a1119af57c6878d54a7390164082d0b7f629ef7f190408fdab46f98ce1bda566417ed0798cfd306f1dd5640a15203ee885f51d5f9d2d6acfb2547ad129213dc8ef4e8517bdf05dee792265336b5576d1e80aa5dfc388cace4b4517cd6a96f3aa47eb9215e7a27379263d7c952ab8683ea4a8ce42b4f8d1dda291d94bbb7b7ceccb6a8bbe83fe092da54bb2757806708b4a2d3a337577555a09dd2854a145df3256c751d9dd3832b36833cbc153fca80b9d3f880e1559b4e6728610e1a7a243afc4a215db416921b4f8d2b2ac028bf6a516575be8bae913565ed1ffca3c5adb431557f432aa65cf6639e6a6a9d28a5ec9fb686b31e9efffdcb1a2fdccdf1a3ab5bad0f46e156dcbade639a6b41c3b7aa78a3634a8e8f3173d68b84c182aa9e85dc91f0d2ec8ac9f16c9504145a705ad95fa46cd11f3413c457f1e5be6597d219aa2d5a9a25fc99645a9f5432c45af4accb398434f77a9428a36e89c94a9ead03126af328a56659b9807779da3ceaa88a20f59f239471f2d4e59094563425b8ed4a547c4f70a28fa5511263ae39e8b33aa7ca2cfc9bba3d6aeb5d0912b9ee8e794abd6a43d4e3da8138db896c578d472963486112b9c684e8a4eee528716f5c56ca297e518a596a38bd144af51e7ba5c224a6837136d0c26cdb414d5d9b962a2cd2c2d7db17b73d2b14b342a576a59c89b0b57254bf492aed2ca65398c5495a954a2ed2cbc52a9e54fa972a444e342f4e5542fdd2dc3ca24fa4d993529efa85995ab2289fef385e6cb64241acf2cb2a9a3d4aade02895e4cc72c45a968ddb93da27ff9c57e7fd72d8a3c39a2d7b9a59c4d33bd71d5bb4a239426baa4bf7cb2c2885e7d8516640bb3f1bd5516d18b7459741d9458f141e5878a225a8daea673a9eb9f5d93504944e77268b159f49e15a35510d1e7cc9a63f4cc51b764aa1ca217648a78551aea19d28a21da2457c6e8f0b22a791deba052883674925ab7d862ceae7508d1bccb72965b16a7575e3888466791aafa2563e43d4134ae49946aa6502db94b20dad4e1524a7f6d97a1ad00a24f328f76598472a9b5963f344aca8bf243736ef252c3ca0dee5adb875654e874515f6cf5a84a3e74a62946a3121b1aba2751d3bd3db45167d3615a75d42994bd41450f6d7f8fd614e9e24999a9e4a1174573501173bdd183153cb4f2c59c7a37c568a1f5ca1d1a35b1328b2dbfaca4ec8250b1439b3f3ffe726f5ed741e80c953a34a27a4a693f117b3a4a874eae08d7d62e79e25099431f7fa556d56526937a14ad2287d6a4d48ea9b1fa615b2a71e8bc5d16472aad4a85bf77a8c0a1d7a2cbb965eb7f4126d3869ba0e8bda1158fda55bbd849cbd1191537f4ab95dc1d131d7c778546a50d8dce2bbada7f9490afc486f6c4ca4f1d2fcf62d09254d6d0b72ceb9c5cc968dde0ef068d868a1a1a315a5b968496ff0513eb19fe2ed034f4ef49dfc36897656aacfcc4469ea08286beb5e626a96bc27470e14063e48c93131b6b2908430cb6ca197acd151f5f8ec91867153334524d5d32dd723de457865e7e595b5c91498bea520cc38c108cb1c6970047850c7dee29ad5a5adfbbbf31f449b3d631e55162e8c50d975bd0d385a1ef951f261b32ebe7c66b1a1530b4dda28c1d4fb3bc32b998a1f2855ebb205a5e63634bb68a171a8f51d159d14d2694952ef4bbaea1e4e6396d970d47f91b4f82a3d1b8d0790b5ac5c86b97d4a654b6d06c6c6e8d71b468396ace56b4d0cb29b7bb745b9451498da4b8b1140f8811c60740a07e711c2b58e34bc0834a165ad1c26619b33d152cb4e52df47f66b9ac65874447504e2251b94227d48416a48b2e771eb1a1344954acd0f89eefc78e41eb721d33894a153af7d2826867cd42c79d446d0c152ab41fe447359654325b4ba5bc3a31394b54a6d097683eedd1ddd2a48a442d73a08102117c098a191529b4dbb2a4da73907ac5aa246a765aa844a12d1de31d37831528b43a675966c165ce6b722ba93ca193f3951bc4fc09993b4e688452d3e1a16ba509ad7f9febcaa8c1cfe70a13dad82fce739bce41b6ab2ca153d1a9afc947b4ec5a51425ba2646ba9f8d33a65246a222208f1a19284be55489d23b33cb2735441422375ec1452ef7fd0f892a072845ec7ea99121754dd57152334fab25c1efd6496c7e7af14a1d75298d63842b66b9b44e885edf2511a26d364a83284de536a17a9456ecee85684d0ce86cc5992512e5b96952034db51c9134246355d88446d8c0a105a19c46541c7ea102e3a0a2a3f6844491512a31217b0cbc05906f0cc4d60a935697f6b81091811a422168125470a1a280508c01a29031e014841f9050d75828223011c4829c1e11e013803000200800c6c0007201f00404a4a122180003c872b910204c073b83a411139000006d08004a0fc198be7481919010140001470001c37ccd026f1a0abb5a8747d1c379632b427bc3dff66cba32e92e100608ca1cfac1bb54793def81b9a6088610d1c4b18da132deb5ea9239b3d22515b03c772e36fe48dbf81c0000396e4502737be8025397050a2d018194900185ee883afce9d2d7fd41d4312dd3334ce6e3cca080e4ad4885a1e470a5b0e93124c3129c961a3048c2ee00802c0e00296e4402149b13132920030b68025396c90a4f8c84802c0d0428e4fb9f1370c004616da4ce9db27d685e91f0c2cf42f5b1675bf9c3805c7c988d9001857e825d562ca4f422b212be3e04fc98d1393356c9c94f13fc65eca186058a1fd1c57a36f6aa5a2f555683fc36af414a29e9da442ab2be379d45916bbc33585d66484dcb032ea89098121855ee6a454a7761e8c28b4a2849a67bd331850683d68d32ee678e59afb13fa8e528a4b3a7bf4d825184ee83dce63891727839bdc844ef8c993b31ab3d28c097dbb206596436f0e9fcf25b473a23fbf1c33fadfa58436b6ff64a92909bd122926d385979e5a0b129a934d13af5f95762a8fd07e799beea82b23f43af87a6752faaa6f16a1552ecbc8902f4b3a0939115a2d96d0a2698daaa58e0fa18d177590101aede7a74346f92fcc29088d96279b49537b4f0b0161f79848f32a56e77e739dc5e82c307ed0ea4f9d34cba0328c6a81e1834e6a19d13a2615d9ff662fda74edd41e735d7c252251fb33dc8c105ef4fa4a85792bd58fc2905df42d7f16a3590ea51dafb3105df4d95f54fa5f87a76769482e5aadd3b4a40ce579b5741221b868b465f428326bf1516cb7684bb6187d7eaa5f6e1d5b3423376bffd231b769c1736ad17ee78eaf64c7efe6d56942082d3affd5f93bcbac59b46232e4cb496368a94ab2e825195208393b32b3cb8a45df63e27b56e9a628132c3a8dfe1b64c3854aa17a452f688ba67a43e68acef574ce598d193fcfade8a30b993b56e82c8b4acb8a5eb7ea345dd9ace9e62a9a0d25e693988dd95bcb640d55f41db5d49d95596827532adaf8d94cfa768648cfa610828a46778c8c51b6cacdcde613424ed178872993555a37b31885105334524bcbcacfed21d52b459f4fcdfba4929d2d5e4248d1c9c7e99b6e595dd522868ca2d5a2de5f4d17a4ee9c88a2e844cb3a4bdda3158a3e68d916ba59102228da1894870821425e920ff1139d7639e64931c24dcc86e889ce85cbe2472da46a7e87d8893ebc4c32eba3943e9de3447f5aebecb2ac235d4cc24df42dfe37557787a889e65373e8ccbe0c324b2266a2cf973b67c163d6979e43210413bd52ba263d44483d9b74894e6941ae88d559e55f36c4127d940f95adc346d7f32d21a412adbbb0eaadc4c3ffb94e174228d17f9eb91c56b618a7e4c8844ca24d623acb48e1e185fb9268de05f9820b1d5b5be8dc8544a259a95bbe56d959c33b2b8440a26db95f12fb265e265a218f307816fd5745378ee837ca876d49e61f8434a2198d9ba4d0d2d4b1c41e8430a295a3cb34e7f032b3700111b2085c77e6b0bffa3d1c5c88229a13af673fe308edfd862422b92d3a534b9d8720a2f1d7172e731ea3538a3ce0218768b56949312ae61043741a84123717a485e89472f945dd6a2a36ea09d1eb90ef628ce7ddd32893139435a264840ca2d54169cabf6c390a755941342e54cc88d19b5cd67a0d4423ca05d12eebd7ce4f25205affffac1d73b88a77e80f7d668f09253a2eac9b8e1f3a2d0b7f79a51b6e42847d68339a9a9059cc1e373fc887e605f9653edfae5fb9f6d0cb319fb532b9b9f3327a6853648be54ae67c41694e481efa9871543f690de2a1d17e931926c5cb399bc33bf441e918ce4477d693fa103bf49a39bca8d45f463d87d4a115dff372f2a815428746c5446ae1e5f124c2143287c684e789c6cc3a86ca246a2925c84c19217268e5889e9551e3978a9049481c1af12b8347a97154b82b040e8d77ce209f84e816f1b284bca1cd115a68d6b9f3851965baa18d7933b43c732ea40d7df6c6c80d7b1e5a9486b0a19d17de6263d2fe395c43a332a79462b6d3c5f9500b216ae837666cc1b7f40977244de0810fa0c00421484c43ab59d2feda3bccc6900a41432fb666f1b339f907d9869ca14f2252a94e2e7533f6344ec4101149e3040525082166e8359b16224de458082943e3e1da394dbcd872a42164685c778775315ad070791c38d01843ef7ab3a30bdd9c5576232347b2a0f8a7a41a42c4d06ff6fb08ddfdba3c64c3811012865e3e4f725e561ae61dd34108185a79e23a62655d3eefbfd08f0b72f5bee7cffa8222226d08f142a3de829716cf8e580e42bad06f26f92cdd64d456a5102eb4d14c698e5ce15d5a2c25640b9de6299121ba3cb77848d402215ae83dc669544acb92f6a025240b7dcca022dcf565f0fcc406167a9f9d7d93f19469872708b942bf9fd3e37dbe94d2a463566883dc7d2d0bf1dafa9f2af492fe78729430fd8d5d0a15fa98a4ebf391621ada4da12d313ae683ce98a2742934ca25e5a2f14aa7c69c178444a12f69a2b53c14dad88296b37916b1fa3f4fe8f59ae8865697b2abcd20c409cd6ad920a56bd4ae05214de8f4ba0ba1e5312d8cfed4cc086142dbfdba7fa374792eaf294b68b4b590fb26647849cb4ae8c524b57efc53ba202409ad472dab8596b4b859c94868b7633fcaab708c9023b4da7368066da2d58488042146e865ea152edec9fdef9022345a9658139b255fcc3184088d10d3f0a24bcafea4afb1206408cdeb9c938cfdfd4a731742e3fd7e22b2e4cacf5a4282d00a21a370c9c5380a4280d06accd1f7930ea6c5fc412108f981a2153914e28346cabb309df5c7dd2c5d2379bde8b4164d9856edf3a2dd329da3651d36bb9477d168d9a1cf5fe975d1c8d62e8f901da9b318ca45df316717b34bf2275c8b8bbe579b9a9411f275cfab3e0820b768fe5777092965ab7cc6169d3ed961fa596b7d524a44c453d4f2a80720b5e8bb77830ed25b8bd1315a34427a4ba132e2a5c818c82c7ab94fcb9a56fe51c7670520b26893965bee1c5bf34c9cb1685746c7184f653e552622028b5ec7f653e22f27e52d4ea22220af683ca8f857993fcb410b22515b273f82726220ae685bcea2e3de3a478d2741016945ab73922d5de716a49bec021056b4396b73159dd492122d966ae6a03f882a7af1272fb9f89d5c450b928a763f8fd69d592a8f31064145ab3d3cbf2464ffafa64c4e524800728ac654366ea81462da3b88297acf264c6750223da5685c906632c575bce008c8880208297a15f11a3ec88ca2cf4ae74f55528b32d9021145ebc9ff052de31b8084a2ef3d25cae7a567cf16285a1da5d6627468b195de7701f944ab275a6c996849ffbb487278192222243972388827fae05143feaad2faf7ec44a3bb0553327f57a48c4a4038d1caefb8427faece26a32226209be865c943fe8c78eb1017899a794a4a490e13bfb189c61a2848060c463a00a289ce4db830adbabd93f64032d19afc3cffb9a576932211111191c4018260a2dfd48ce1fa856fd172705ca293dd70d9fafc57356c89f6c3876999ce2ad1e6a8fb9b59a7de75414af449738ede38718c5ca8d43006f3601c0c868281400cc2301cd6bb400073120800202c1c8e064402a15054a61f14000452422a48422a2c3020160ac623a1382c10060261602010c3401443410c06623c48c464039f4c69829a3886742b11a5dc5ce8e2335e93f88f556a290615b07e2566e54f5ec9eddc6f0be29645b1ed82cf82ca70704fb020c104ac903840aac14b1cc43fadbcff3ded33fcfffbc38f7782313377b1f69c11cd8c300ed0ad986986e3d763d609583fb0c91b539685ba70f59a85e38261f95089f3cd9490bc930cf45fde6c17963b3bd6f991186b1feab83b8b64913c16f2e2c8371a7b381e7e4861a5d82c675920be1c140f95fff30e895cbf774dc517544153c37406a9991f94bcfa8beb0a16baa20b0c576829285adc592f259a1d3f0daa2368a068735cf0da8a8f9188fea0c1bfeb7e0abe873766d99971b869e0ac3efdc79e734dcac54cc32b4802a24cbec9adeb1510816055769479ac7a05686d8b64000763a5986e08aaed2cb7b7fc03ffed796038e8929cb0218bd77d23a03be15c4390e743c52b4fed45b128c9f793bb2136a163788ebb2d6a4778829dc102cbf00252aa3e103e2826902de0d581083578f993a38906461bb598de5558238a3f1c442558dcef3008b7966dc996730aec782c5b8d846d74bfd1ae98fed1f361cdf3e96a84b84648898f67a28d3211be72ea3e9d723e24f301280a2f8db78b60de1f4d863ebedd24b3b513989e6c30c5b66a59ff40324084b565de384aef5a5b30e95bcd1006e39b2f584b9d8f8b274cebc0333a7e0a067d8180814f28df581d5fcfad71814ca6f9c1736f936d4b9e37294ca2af72c69e7ca4f2244edbe72440fe9974544c699e003c9f0000f31b3b68c4679f42acbeba595f36418174b70bd077d8508a7034ef01ed7c3ebcaab138e9eb81d2a1b022f527a3681305193e759cc0379c2956946d56d1ca4be0306f5b83228234d3dbdd70d62e7cb9dadbc22516c79249490cb096ec017ed6875e71765d2af481b6dde3aed0d086dee0f3a623aac08829c1766af5e7f3fab815b28fbab098d297a22eadcf19c8260264cf25e6a6544691f0f32937ab3dbd29b766cb9f849e5249ae5f5cf72a1b9f72238546d7bc85d009fdc86b2c3fab0e5ad485381596ec04db80a83380a6cf6e382eead11f093aa0315a066cd89ecb0130cc8daeb14bddfdf9252ed7088aa59eb99af4c3d77d7778ce0e9e635d8fdb9743fecc98a4ddd28a99b036aa087e442c485eb391a8463c15aef75e0aea506f05ebcc4f617ad85b61769de823fe3f9dc65c5691ab5b321b5f431ea9d78a0d7f9166312bc81a0c6eadaa1c31e42b80c1a1c8337164c2f165a409b472ae278e7672496b3f4cd913c100d3e30b8ab3de3106c5f166879ddc4ae360b95d11317e1e73b8a7c880c3ca6c111778adaae8c18b17ee0c87e34a96111b267257b72b95e761028a1f15797ba1cbe6f38c817f7ca0bf8e8d3ed2975b839762d55d549705bdb54ff9f695728b98549953075449e7b65f5c66a7441ca0d9bc1ab5a005ecf70aa64e368340972ca156be1e95bf1d389971329dadb25ecd4fdfd3b19556d9f9367a257d9a591920e0917aa57e01c7d902fd5cfa7412bc93b924e74bdf191d83e419b4a585395578c551a685c678df282ed42c7156755b7cea3ebf486ce46df105757da0eada021211f3081ef26cf844d3f9e971217e6b452e794ed635ddd644327d1e718e500dabf7a280358ccf3061d99ab82dddbe5519501d98c3ac05cc1592826b158d864edbd3f4f753accb956ae46e583d1f5ba52f37f34c833147812e1ff106fa7cf206c8134347fa028501cb25713a2f3790f73f214e4f324c1a39bc5082b683369402215bbb2cdb5f516b207aeba211c38d7cdbd7ddee180af6be3002bdc3342bc2958880685c938660a36ae0c185b912bd83516c17e778b2f1b1bd0a00865be8f8c908d6cfcab9337c6511029d6a9cd294c506101d425ef63b65022d638e2606015d955aaadbcab202e4b75eb4a0a10542cb08a004f9c096e211fe2aa2592a1991826ec70c180f6c2ceea51bf7673888b6f49afa1c0f4c764567efb93996bd74f4d0dabfb1cc82672d9c3135ffd55551947691fceeafe889c8346ea040a6df112e130aa5858da0890495d42de5a070cfb4f1ebc68609aa30a1a383e62a92d0103ef51372b9fbae33133461b1efb72ef1959026ecf81d8e3fec517274f1523391084365eccd24d4928ca9f9e2411f00459a9e2f95c766aa4127fe7d8272ede5cda022efcfbd30d48f2b36cc16cde570feb6ed9020773585574e7ba0a01d369e626061ecafa916629972d84646691aefbdd8dd6643c73e225decd41d0c1a16766dbcd66163acadba48cc80f7632c5f99a2564410880f794e6c53915fecc290c5f46227f9e56fc715f12b3b79ade94c49fbdb35d2b53b72962b483d1f651b805df0c7e50b4bd870e54217361917aec66a948529b08159172e0f8e03ac5477a8113d8165d2624410007b6dedc1274f9e6133913e84e9c6f3f8a6da997046816172f064f959db56f0e66e30c45fa823c9b5d5c4b5a68970d59c4a6d3f253a58024d99300751dd267c0893c472bc06730cb9cd54971b1428f6f7f74dafdce04e83d4dc06e6fb938549c250cdcbb61e7388c443beea464b5db874e3d67581ad6a92a69d877c3a1fa4f35da4bb97d585b0ebdeb00d3f8c202d95968d0c85319811bde5421bd09ec2d4731d19b2635163190ef527ea00cad950fb126b2478c8b49199bb14e0b3f7136ac1b27a61023b05bea31570e80223437155c92804c3207312e4dc12bf42fe32d330de866a93144c4428e7b0b42b3de1ceb4d4be62c9e66645206930e23558ff7092707f8f29eb5ee7e209a14cdcf1bd27e553790c8936d6fbecf6fd7a64d7206aff581912a1734ab6ea8f53b5f30b2a5a419eee6753417c5511395e1fcd6378f428ca4629beb9553e3fac21d92d0030b9c96ae5aa65da07c3deb35c9ee1c94e2b50b563d4ad341c78317136dc617769e397520f14ae52f56a6d13a8bf45be2f75a66a790bc501dfbc50b618c50d33b89823c7bfe3a56d40a3f93082ea762d673255d7a026daeb914428145da2f4fa7490da3aa7ab4db4c8dccfd40999a9b704834aa27af22a4934c52440789b048549d581a044958f0329652dedfc1041159102462e6b4545370f82443386c8f66ddf36f0300233b21c368b42b557406583993296f7ce13b4221829f1d56cb0198ccd8423a1a15418be0591b805eb5b11cda015df2744609cf3c44d9f80bd42acd8b4e7176f0800588b4526bac0be629c72d955eed0a56f934bc839c280192e68b53eb07526a3a3776584e82c898c3514e830dc044266bf184704085ba2211036b5e571b69f9ecaa2a0608b67f2c66d030f8f0f16123e9e7f6c5d0036306b6a1ed64c8b9446e039b12a834c6ca927f66974c6fac02e9d6779024a636cc01c4861834fb10425d02ef4e5c081ecebcfe7b89a797cdc3ae60059a5c61d3cbb89b6f653f8a47baa92a99a0491a04978409a7a7d4a56477930eff60bbc8768fb8ddbc7274cfcc18271552bd3b4a412e048ac58cb749271eebdbb10dde4d54346f305a36026bba9991ae7371f8baaa05ce700a0d8aed159b05499871a48122a46284c17f1d0ddf0a120329a7ffd82e99390333e4c613cbbba305f6a8ee48cd56b777a2daacfcb5c79ed405e6c73c7e696760c04942bf65ee5dbebd8def43a8e00a4061055b8c5dd7158791fad1797297c371668aabb4270cc02d6a8f888d928e554d374aa5eff1685dcb325853fa3953e7899c038ea98ba5d49828946620e9483c909142bae8e2269c44084f16013fde094e1d4899951c6095036f42b450d607fdc7815cad156570025efa3b3de87ee7a908c77d288fc0a6c14ace72ba829ce050a3d46f95866d8a7b3fea09223d7e94a8356aac80365631d380a785026e2ec556ad92014a479dfb4ad1aeeaec29244b6eb30d3445b63526d486af2aab6aed7c36c8139224fca4342094801e438c44ab10d6d19e59e8dacdf8de0654a5bd5afa5b262dae965fb02668c84c1262b7c665460eeb0a7c9a344cfb28890ec5ce7d51e09b81129c17dabfe5ac7c665ffd2e9bd6fa32684c83cdde3e2bd27cf35b8176ad58227e93fde476cd4f247607b61ec0e307cd630c2d38e3bffea64c926478f711fe10cc745bb673a4b9f6fce39a5941632e864a67dc7604165556a34be39b5700417f935784351d8bf785c053199051d8b790983868eaa32bed2bd06f95ba15e414292566b6db47a12c0a7780bdd05d7b84349255d9f0c7b27935b7bde34d1512a2428c0235850850b2f66528817d26cd869fee02f6fa1244e486ae0268735932139aaad08b5b093b73f9e6b58bc6a21fcf250ec1709213d186883cd33db48d9b8dc7c525612d631f358bda7f3a5737a4a02a828c039d42ef6934b1ce09ce92a484b1582b8ed153c73a86437530edce1d534cbf1d8b588743e3bc05fb31b8ec8fa7e148d63005c8ed5a4ed792ffea19e2e58ffd911b4fe23483f38400324d87da2f505fbcf7c7f23a209b7f477b0383aa5173868cc921d57c7b0e45c0fd8c95fb027edf75ab757dd7aa130bc2eacf23b00d1260009544a7adbcf58b6f20161930380819e38e6912d30a7211c665aac83978bbc4ea7d751efbceec2291f81e8ea6f863bb06f1cda35fa2ea334f82a5692fc282c1a1607e8ae2731cb0b6c0fe6bcbac7b0d7b905f9849c6f864e0845b89414bcb03f50866be1d94e4f9ad2931c9942c2049e10cc41304b78debfea3ea264dc4d2adf04858441adda471f26b2e73e599f8fb3619f8795d28ed8d600fadc761cdc37b448c9b422525d84c2b9b3fa77708fe2a11e165bad45f0c7918ec4698b6c14a27b32956f72a689a32d76e021e008185b415631424bf188bdd0e5470c85becc6332c9ad39b99910c486c2cf73158440dbc722159f64a04a05127c1b5a3bcc1197dadc47be0de374ce653815b63e64cf5bbe4545103eb93112466a2bb20e31c99527b22b4fdb25c0d29bd9916a79466b295101cc7b066bf8442ea1b0337bc8a4188cc7cd71503f4fa7cb681592c9b90ca64e1710f905d32a01fd7470aafc254ffb9163e361fad39caef81e03908ba228f4f2d042dbfc7710711619e5de6f63a74ed0be8246421bcca5b2499865551bf356dfb6a73dd25647da8d7039167f85d835755d078aa438a7a2cb4d63c7650b31c192a234836f65d63d9a8d6fac9500923dc381efbee111c66e5cb39fbf469bbc97cff7e7e1e4d5effbf094284185355bc5cac1a9dfa682528b2a3965c7420900a0cfaf1f1c2707119f5c2a4d11a538e266b25f2d5d078776e9152bd14aa585fae5203b4129603fcd8509509c8cf7edcbc7017e928944df15c7de46088130c0d1e75f6dda02741e5be4853ba432196c74884658bf7a0db061b044288c6828c116482d7143e78c44119109fae84f80a2f113eb3f9976dcc7dd5ddcfe7b45a1bbaa4e83418900cd492baece00b1f29a13ae8d6169df5a83b3c8120fc6427553cf0ee055dd74a58cee3fd65032cacb628af757b5069f946c2e3b8be058c00eda3dd9f8bee00203d1b7cac4ad2e3d982b0fd7d1702504d85fdd1e14f79aa5346c04fb1d5c3a586361a558888926f1a3fd2cdbd686268663382f6191ed74e22b73dec5425e6fce917032b83d9c426b323fe61ea32d2e4fa46118839c800a3989443d3b46ce5e4a225d2ae294e0839ad045b997d05218b596f169e49a37890496e56418a80e1477174122bd4afbd56df7ff7739753472cf3395255c561c2ccd3fee1c5c6124176c1bb40251526a77779e0baf7b1edc614f31a2a2df682acd71257ae8c332f9cbb71b015c59bf0f8efcaa3e5311fc1bddf40531e645d6fc2a908edf1c3193d10c147d06c293d698a8331ad05c0bf33d90a7598dcfd44baa5aa8234dd736d73c67892cc4c71a7a82c191742a4216c205e48e64f9fa1cb72e39678e1bacadb8751d9b5aaa879381df08e97498fb7ed61e55d9708ecf77c2b80dc7ac0c9c0833780b9f0398901bf4152bbe06ce9b4863acd7970e49fecc8be8c5fa52d8cfa87f9d7ec794425cfee5896cc6fd3a72be8808909d653bac7249d7da8195894b7ae926736e096837ec95e319144a2d25eac5d7cb80f35e359faf505411e9cd9a3c700eb33ca7c80d4366e047c3a9eacca96f86a28aea443b4e88a9a2f3971b469fc433d49b75fb58584b5c8676dc621b496506a5072955071a5cd97b8e8192eff150528ad53c22878bcbda4ba15b83addf6389929c552c6fa5f28b68e53bbdb8de8f3b2e22c15d9a1abf684db8e17c06524efbc5b50690d9cdb7786d2af9fa1c5b8341d145b62cafa7b0a9c63be9f002099510d582ebb4065d88a44fcdfa35658513289091d6bdd1faadaebdfb0ce0f215636c9239840a818456763c793180468d475090b64b6d985834a55124e5378c87afb611674b9bf9d04260fe58a534ee87fcaea7a1a1120d262851565bfe5c7f75b94e1d7fa160eee8c2de801c2b2b58c8d082b71fda721f2b778171eb57c4ac56e439c06888d9c6b01e4eab67e54406955cbfb6bf7009400af526ea56fc50ce1cb058210c7359ab26c4351c4bdd1d3afcf194e758464f5874ee63dcc34b3a435dbed6034a6af0b0f653e4e6f8d222e0e574e894cec1d0c04b4a8251f116a69b793a5c1816681f140b1ba0923c2b17c7224780a25147b504097e8ad4e00b5a6c9200244454f2d9b7348272f9bfe234cfe95f0525db4e8717cde89f349b44d4db80d8ce0eb9491a2767c334e9d4f5e70842e55d7dbe45ec637308350cc9f79b4b969ea644e208dc999f6a18ec838e22c0013a97a85d02721b74889224e2d5a2876053eb5ef8cda1e9a5dff3e384ae63a8fda3309291eaf03dac7c02a99585c5a055764ee7a0d3c70729e5dff657f5f3e6072a7b28f9610c3d61b0859b4f93468ec9a786a11d8b3cd235ad763654b2ff97eebd0932a46cfd868eb16d25a5c0b5d7d54c4f8f2b8a969f81306f02fe1a0ec64e4990eca9c93921e123993c119211ba89ae8141e4a630f56be9ca468aaf89dbf4fbd9473eb13d66c468cfed75ca77b7ce7ca33b2832f666b2aace5bf2215ec2a4bb96b814e42cb8e2de141eda116730c7ebabc986e64826c96620c38ed55d976728058c3a4b5f63cce541ee34ce9e0fbf5876754d33ad0ba51a4b8c3b174a809deff86c8c78be547cff2a0be9474e90b50b2c397db4519c631acb87edaed9f4ec75d63d6c937ed0c04fb25c2ba9e100d02862f42c58ff2c92b83fb63583edbd216128a23141a554454956ea6b43271c777382c99cc0e4900f6687763af39866fd19eba9a4399608785b29aa46555673c9f4f04edd78a3f1a43c9501f185645211b7f5de086831af0c15eefd12c508ba4199e50c3acea181a9e45ce5a4f42043e39c2f671926010da9721e118e51a84221fcc1052f251ad3f0991bb6acac5744d0c66ce7061520908b0a30c72902305062a05210639a154bbcbd27ea0412fcb45afcc69828a2723194bd109466d6a6a36d2dfb181cd345c56dd8bda6ead431e72ac9d83227f96a41081fefe7f338d0d3318466cdb0d5cdaba01241e65a2367effc2541ff98104834423312b9b67570bbe80cbfea8d5aea3add245a38e1a599590fa2ef25b35539348e4de76c2a57b6ad92f8bba71ce11a67d16c3474f35fb087d619404b9af9fbf45b2d3342ab4b18358585739ea937cdff15e79bbec3f2394f28c4f2e62abfd4dbd4f3dd9914898b515f708681fde76401b91443adc28f742be55fa81127a987351c3b0b9fee761f9d5f321aaccc3904e875bc8cce4b9ec54baa009036db710b48921441932825182913bad2ab284b61cd08181768a4edcacbc116d138d7b82c3a8a827022af537313732ac6f4cc227837fca198992f5658d399c741dcd9bb7c683f66c41b7e8000e7270473b9d247567716fc4c72f7050cbb2e0f7d909d5619a8369086435545b46482598e4e131058be54478405201e6ed9aaaa1c2773617ed95839965c2d9a3d03459948cae8dacd0a337f6b4111f4d3798d2be97da084e9f264c8c7c481887b7685a5fbed7ed4276c8d4d6140a16459934dec3d6673b6bf791229c06a3368afb48f827d8bf5917dca66e55d6285860290d2d06f298220d456735a14f2f52b1f3219dc70427dbe4dc73a94debeef6f238d81107824867b110788beea1c361095668fc30855c03ebc09bd725f18dd5eac0e5de9a9a21ee59032af0d57b60f8ddaa98d5e63a248809b8b862702813f56519f12c8a1a22f6865dcdfeef5eaaf5d76984cf082ee1b2cfed9cfc4d259b460b6600a991a01f1db88f43b775fb10b4d2e32385fe81a0481ae0c85f4e736ff58731101f9c3e9749a9b5b83cc64799d7f98f56691e0be715b01ddc947abf05f09233c84681b13cc2a66a8c015467eb90f431923c1513d96a61123337cba3b8285e66ea5e341deb57fa60b256e8337c44f1e14d80829307b5cffc9ebab66822584dbf930d0f70c06d0b456df61055c8aef183550daba8b6fd505d9df60bee970f39d6fa036eb9fc7632a665e6d4f8556872d86f2fc1b8cd2d110c282459e3498e786660f86ad02a9d03a62ad1bd30c550f878f15dc7125ab6149a391eb247d5eab002e8c2c71b8bed33cbdf3cbca9b2fcc371e815a5163c01195dce28eb5b3fab2110c67599c9e7d72c9872f4d6b60b37694cd9d194dff330a1c0dd5a6d2635660ee993ff6345efcd5ab0d1d3c64b8c322d586542d846d0a4993c8d9f0d8a3492c4c8607297ba0fe85c46a0bf6043812cd1ddc921378513b583fcca5982a68b84aefb2eb11193f904f9383cf2f990503317f1cdce10178ba8620e41da0203fe188525dacf3a7cfcd2b08eafc88fa328339efd4ce07804f3872dc3d91d99f81cbd2cf15e9735299ea96ce4d7bc9892d34c230884d270c30762a255a8c99c92a4018f3cb1fe680546504271b755ab63514d77f16fdf2c48ab41ec26799d0ef5014f2aba4f3a52673925f5402f5cd1dd871e3869baa596d0946baa9bfd2f7816ae69c9a36c478dc33584fe7b17284375b932d35993710442466f477ebb485bf00cc7051e2e081298fda29d7e380040a39dbc2e083dcc82841ffc5dd9b7d1b7e44b1df68799016882eeb763cf291dde048ddbc25e6bcbea26d0a07def13454d6cdb1741f6557aec0bbe4803c285f4c03eefa64a84d63c5f6646d1e1273fb2d0068a3ccfad697eb23d7b02e5f876e8040de674995753b56619d462ebd595045451c745465aefd6eb28a9eebe6177a24c62dcbeec2709640634fab793069f59df3299aca8abc1e7a728a6518e09cfe6dd124ac1625af32b585e3d20a3250e9a80542d81034f43ad1aa15227173ff220667a557417a6408b2e3a74677baebccd0acf23088cd4ea83c02df6ba866ee42ebc9a7d020569644fb0d691b463a48e53300f36da9d01c2bb8b02efa369901f346bedb54e92971a9b25a71450a0aed698caf1c14cccb09d0762666b0b418cf0bf75ae4d904dcf928a9503329dde3a86067f9beac240a2c759a64bd650d769719e1dd05dbabaff57151fb28557ca31518e3f3da30744604f618735f9792120ca302757c68f2e0412e94b118e9f8c74dde4c2447a8741442e2358ecb781f27251c81425e25839b0bc195d09c9c15f1b639cd95e83e18a0742fe7e52ee38363487dfb25a1199308ac739fe320a9064726782e80c5c1945947d460ddad35a3030173a8fd16acd64ed0ebc4a553f99c3c2e4ebf9001605e7b13454cd3f3c4bba6732d48c7c6d2753854293274f5445491d0c6d516a65fa965922f2fde2ddfa97c3443ab53aec6331505d28cbe0fa20754fc60c280ce129f0eb859e0fe7d2082b9a310e0d881639f1a33b1ac299628ac36f3fe0093693352ac14802c52b254ac275e2313db96cf4453071c5293f69d494b43bdad1dae92078534e6f9f93596298d1d7eafc6ecb62ace74c4bf368a30c07f74488f07586456d50e601c77f82482d3c03931c369261134fba567563433b3c71c3737ee20a3b7d31def9d3c573e2ce1520b5feb753f39a888eac38e82f0efbf6e3f5e1ddd22a1050a068c3f35dd03cad8d2b8d86b031e1ea53748149ee355ef0bb64f4ba41249c9b0b003facadd83ad6fdba89e0326cf64083af807a533c5dbccb39070826b74da550252130f9c1ed811bfdf3ae290b9404b733fa21e4cc23f2f0644b95e18632679fc83a458c5181063a6ba62c6e1ffd522ce08706a009421252a2009c34940ea246069cc5e2b407c42b27c1258a1c755172aff1846c3fed5768f8fcd8b526e8a7f92f4e9d05dc2036b400b389d367ca9036cc07f73c69c47b69eea984af28e11e52484617eefba6f074788cb5d171ca950ad0eff6e9f01366d8feb5275408ddb6030556c8db3dc6bae953ddb186311123a31750527e8843f5982d9878e97a21bad484db62e36b51f57afa9264a0b8a489ca067263a1d66190458e4e60658952b1b55f25a0045511b3b0821e7e748bd80abc96b55b9ff9930d0c62e24b7446d57a887a4e479552db476de8c5196911a388e40eb7038f338847930c453a865cb3889f009ddf23443d57563d8bb4aee6c1db11756a154a1b233ab8ed69c8e597cf093ecd48e933e86b89ad84c48c4c1a8c35910f93418d141bec026ac878b3d6939a62050748611bc10e6c8552b27ae16f36f46a67fb0d19c676f11ac28da210eed135b6bb7c62909ff852479bb44bb34321651782950bdba0c758f826ad680cc0af308a0ee517d6b25aa2a623cc926c921362601dc13d0ce6c21a746c33a5b85f5207a3ecb3d52c865f08013a47024de3d8a5ae6c8cc12f5d196635cc38714a4cad2a837b6644fa5a8c6267a6508988dd38220f8bf0dcb6147c984819e49420a194fdbcca406a56a79423e7d079fee3d4dcca90aaa910115ef2f429b633773c6ffc4bd2011c00400cca2e09f0e9c1ebab29f1e54555ceef36a2c1a7f6ae3d34183da08c2e42163719c5ed669bedd922b9e11a078a1b996b0bc53bc1711091329b38bf50a169970bc7981bfa1aab346881ddb7ad70607fc7dbcd3235ca99a69f3ba2a435f4e732a6117943d5e25a01f91e6b9eb51b32b85a3d9f1de264b90e94e01aedba996e7af52076a584c7a050302ea94af8e7691e0075b00eb51e808fef554e046d0aa205b0f86b577b4b3136fce526bd6e977194bb61c241941494dba55a0abf9c55cbeac889e49eadcb0c2405cd34b8c08d711e49539641ea7bbd8e42a20d3c9d28f48e848f9c478533e1ac71ad9a85fd025a05ceb1499d680651c228259e2bed134da1295a92d8cdecc3b77485ca86e49fb03e344ff70ca0631d9e7443891089462514590a1497eba6e4f1f498d946b959e41ef792a532223d86bfd8eb09a981bf3f906959bf37c4d429e5e00a0396be66b532e90d4cc7208d684c54183dd5037d01310bca4ded207d237c6c12b374648b2c25abb4b31a75801616b97fae8848cddbe38b27479716abf03f932090ced973017340f431ae37953d9e302320995b6a6bb6e1bc55bf6f1fe9df93674b224688c0f4c63f840877ca699d45b026070babd2806ea4ee4db179511f6fca964ca02ae31741c6ebfb2680ce4fe6ac1d434e5c11a29dcd6010e17ad6f523ea7b2931a2ecbf5bcf3316ea38d1453a2b34c55b0c29dcb1043ccbb4444924aa4b2252224ee719a5fb7b8837fc2f54e897ddfafba0700c09a022b6b0e296c641c7ef16474ad793322e003141cec5d961ef24eac8d02c080bbd18e2f1e2ef90117a259d444a3e13100b77ff478574c3ca55e873080b5bb180f8dbce337a4468ff032a1fa7ae740065b58f1015802a1b632e4686b414d0473a669e4ce030b06ef3736582725ae15d83cf768e12dc0550494ec761523f14d5418272a32e1b2b31cd852ac289a217a492b8ad463b994ac5dcfcf02c06c8e7082e6744d2f4cd6356eeb227b814f6930ca4b4c44e6a0e17974a5cd7162e6c23b4bd83c9194cfccf5e206d7e374e8e592848a70ef2f49e156f83b75f20d297e34818a6a450bf4b64333bb8b9a5d3b8223113c8a4396666fa1fd1cc2b88e7bbd28f8b412c4413249fd264e793152aabac48bb16c8170d601789066d62dd93b1b77f7a98d11263d4c716f50618c4acad10db14a687fbeff004ad386449285a1bf2e96e52944349740977387e0fd194235da6549a944618db99c8366a0504264f8cd7667f0b8451e0ce5a765ef99a460c84685c9d5f9ef667731b5566e186f6dfa9898fb07043d4c3a64b81dcee50db2140d77bcedb0578058e91bab05d7966c6e72366badaaa4ea4040ca16945ecfca9ac0dab57fde546db179050483dc246641fe3209e2b7d76a42bb16d0edabfd1242b63b0fc05613acabd8dcf98c340f20c2a2f074d17d5bd511c67ccb11256cc01c644ba2a6a4511389de57babefc5561010165832b8665c9165fde836f744a0ae2f93ae41573016c592faacd834d53933fc3cc1fb6f7f2f0fb216ff61d1e4899b80918176c82e920db4902855366beb596de1d8bce3d22744407c7a72bad5de7c97a041e7e7c3b16b31dc158901afa8dae260fb99a2adf372e6ba9ea12b8b35c85ed4aab15b0cdd2b7ee2261175a59ff48e002764a2dca2a1466054a3f272cfcec9abf1be5c4a5c67d2fd68cf80e3edf5ca6934b6708f0b45f6aba47d34bdbbb317b11b759e38c5a3c01b68d5503998b27d5b82cbc4f5138f558c202baaf76003c5f2a9081a4420c2d5f8ef38548f62336c48a9b931557746d295ea6778cc9851a0a6416a216446bc02eda11d0455459d85038f799d01b64f8e0be2b8c773dbe68bdefc2abc6de2b7681ec07a5c4b1ac9157ca334f8f42135ebcb90859adf3d12fb207fbb2e02ae2f6218f82c821300c9d539c6a71da17abd7696228754c8bd579e15e162a2eb45179e41acfb4ec5eb507c757ff05717182ba17d0fdd62901d7c8079f80f19abd605a8d47d2a0b4822003dec2e4", + "patch": { + "balances": { + "balances": [] + }, + "collatorSelection": { + "candidacyBond": 533333328, + "desiredCandidates": 0, + "invulnerables": [ + "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", + "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT" + ] + }, + "parachainInfo": { + "parachainId": 1005 + }, + "polkadotXcm": { + "safeXcmVersion": 3 + }, + "session": { + "keys": [ + [ + "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", + "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", + { + "aura": "E8E67m6hzdSKnmdHpkzuEd8JtWR9bSBUq9vwiRufHzZ95er" + } + ], + [ + "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", + "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", + { + "aura": "CgjLFDEdzCUE1jk9UnYcu1CyVenT1H6YVcrh9QPZLGxKLhm" + } + ], + [ + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + { + "aura": "HbRj7HfC344iugeEtJAHPvhXHH5NYQ2vWLdAyRZutzobqpL" + } + ], + [ + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + { + "aura": "FJDBwbp7Zb6XhzPuY5vXNDumKZ7tkrvDArLpZ86x6hS6TXi" + } + ], + [ + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + { + "aura": "CofLuVWVddqHR87Bp8p2G5A3kW92tF4U7rWudXcyEqtxz5L" + } + ], + [ + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + { + "aura": "CiZGfpBeJ3FgAtksyBAwxyqRaua32e7BkyFM6NXTNk3JYcr" + } + ], + [ + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + { + "aura": "FRd2aGXXgFY3f6bE4UeT3Ty87tJmra6GRWbRkahEq5rHVGt" + } + ], + [ + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + { + "aura": "HAKDDNB1tENBDWZwLkV8VoDJufPQu63KWBF7UFmM6JYGAgi" + } + ] + ] + } + } + } + } +} diff --git a/cumulus/parachains/chain-specs/coretime-kusama.json b/cumulus/parachains/chain-specs/coretime-kusama.json index abad4fc9237c26633177892219e24a9ebfeab2fa..ebb79e03f045565a915800afee4574491eaa3bc7 100644 --- a/cumulus/parachains/chain-specs/coretime-kusama.json +++ b/cumulus/parachains/chain-specs/coretime-kusama.json @@ -19,93 +19,74 @@ "para_id": 1005, "codeSubstitutes": {}, "genesis": { - "runtimeGenesis": { - "code": "0x52bc537646db8e0528b52ffd0058640605ae3e8629134f107868930e681756ccf063649703992ad4ee818f51911de6fa91e874d2fe2ba7696b4c18dcb3a8cb4c0791c5b5583c14d76913132861747d5e806b5eae206d441fad0d2b09d95bee2db79452a69402ae14771224121affdebcea431b8a9900f6f539f2612d6606cc7537c8dca73b24858d87bf43525cf01b33f700d8cf11d3e85d9d3fe8dbdea69a20edce5d74f6d7a60dba8ff3e7d1a3cb3675ac4bb1dfe99d4e31f30fe61e80ced1b6698746f0c53b5fc7daf488483d7f3e474250e7ed4d82fe35e1e70dcc6ac647beae04000780bbd38982799429d871f06d8fa2c3d79502e00110799429d8d7957cb80fa7713a51461585c3b191cb7894cc315f5fa7134547455117d178941cfcf275e974a2bc8a7a584539e7afa29e5798a3b08a72750a7694731b177914998a9a99711c1525e3231d8ec351382a6a46f31947e1f0e923cfe1ebd4e944b12acaf26ebf662aaa8757ee37de95cf38aa7da6a262f45751963f47cdf8e551a0d354d48d1b4e2bea9215255dc7e5281d7e55148639eaf21d1ef39ecf8a8ad1ad8ac22aaac62d7f983f474d7f1515631c159d07af8e7a5e2beac60d97a92819af2ab7a9a81b362e53c9787554e5b5a26c2466e328a9d52948311515e33232be234646a687bb65b94d8d655d96d42133834384bdaaa5850373974c1ce988b3dd8c68d44e47f5b0675532579c386670381d2351b4a4c4ae57c988e6c321e78ca86ad7d6484794c1a2cc0ce66e7a78578f745c4e1255ebe62666e6c2240f3c38aa9d071e240e1c3d7c87e77c87d9430f8eb2bc871e7454d5c87b380fd3721ee20e3b384a87ef70b3831bc93cefe13dcc88bc0727390a879378e0c15197f350797092a364bcb9b974780fdf21caf80e7d7373d383a32aefa1a26e6e4498936aad71d4f41ae93d9c071baf711c24e7c15133cec30e3be8e0b5a27670afce83a32c7747bd1e9ac7c4f48cf7f09b9a1a771b1bdfe135ee358e12798df31b2f396ae425cee1e124478d9cc49a3bc94b8ec2e1ee28e73cecc083470fe7c183f370940ee7c18eba9c87d71d3bdc6d2aaaa6a26adc7d878def70d4f41deca8e8d57770d4f31d58871b47557e53513adc788f8ad2c16d6c7c074761dec351d24b15d5430fae55d48e8adae13131cea3a268687c4745f1f09818dfe12819df5151343b9cc651b3ee6c895d73924fea3515455351345ee3737a0f4759dea3a2a87b0f475d75892db1532739caaa4e6c899d54513dd4299887cb6b455996dfa8a81b7e55bf1c252b05ae8ab22ee75151964fe9d3513a6a912db1f370944c1d624bec3b54d48d8ceb50513d2aaa8757ada21c07ef51510b06286c2023cc0bd0700229271d4e18411666b4a10c2c88e28453141dbee34a8ba36e0e755d691d87eaaeb43e53e596d86d6a74388f8ada81c3692a2a35041e84610b171ad8a08c219c74a45a0045154c80042ab0810b17271d8ed25151a34a7354e94aeb38eaba928fba917e5d54691c85d524b6c43e535132750a3e45c1fc46458d3ca64e91738a22725a5118e6a38a4acdc04a1b566600668d3198e1245a2b7ce1810c4cd002304860c349e4285145553527ab34aeb48ed575a500d4edc7afbffaa32b922db1cf8abaea14a45394e756450901842fc8908335a0f0e5062759a7f053941e4750830f8c500529da10865394f6ca515545c5ea5b6247c14a5d69fdd5752500d42de7d75d256d897d3de5827a680144a112e58c126de7ceb9732e4a9577ce39f733b744170c2f4c796f537b3ba94ddbfbf6f61b0905ccb7636d72dfecdf726f9a89f92b469728eb9b753be7d8695893da712877b7db386697cfb58608fb73761b7f3b6625ccfdc9cddc43d902916ddaf89d034185bc2a6763acbdc716c80f7ff926d5377163341dc69afbac898875f92630d102f961a16f9280676fdfac8827c4d9102af4ec98d0b33797b92fdbb4b53bdf76f6cd4da7f9a0edae88761f576593d61730e1af183d90c1cfd8cc2dd1e7396ddae48f366dd4db041d8836bd874ed3a61db2a28a876ed3a636b9dfb0df721efab64e9f36ec379a874edbd40e7d063a74ac4decd0f706569f1d6228937d6fb69c773e59db9f8c31cf6b123ff7ac88e755955d3720f7ec96cfb469c619afab6e975b7e45ac4dd19dd3365dee7c468d7f5eda36699b84396742fa5f93b0ba616e79d4f6310dc8fde55314b5fda9ed5f1a89e6d97771369b67e7ba550eddf974cc95b66f693201ec520382cf3cf3ed7367639b0989ce7593cfbe9acb36c6b06fd83b9f2fdb178335e9a649ce2bf72655efd7777ac7adb64d6a7fdac6df84c3840913e6b7d4af476d0372bfce5536a99d339eadb0d226b5ef3436e36d5a774e6ad3be4d9bfc9dfb5820ee9d6f37ef3ce75787d4c5b0cadc9b8db66f5267bbd4be3e97079a4377080a94dfa128a0fc36fa7602fc0e41b1e53be3f181b2b76f9b2a6f7f6d72de2edbb4df3e3be3a9ea52e74edbaf34fec999f3e934206ec2f39af47c087de79c0db1dba40d7b86754b3d94aed2b6f7db7320f7d137e381bed3736e2624d6ed7d74e995b6f957eeb46ddb3697c4129b135ff936a9f21d27b526a8775e699bcd3f9f8c456ddf69fb9b15f11e6a4ddc3b7fda36897d331e575f93d8bbfad05f1d52153b29e6b689977f7d8eb64d6b6adfe4afbfc9dad2f6391b63ea9c478c0ce873e7ec9df1705ddaeeb46d92f3d9188f2184d4589cfdcd5edd26edf4663caf496ea7392322f5ed9bf1a498d98cb9379bbff3b9243a9707ba4dda280f3b67419c1012127ae2d96763db26f6f5d7a6f6f5cd64939cef346b58939ce3d06de69db73fdfe43b9f336dda26ad3ba76913bf739b36b13b9f8cd1b469dff9664f6ba2c73b49c96f97dfb58648fbf3f65781f8b9be26ad6f3684bdebd6cebed33bbd37aefaf8af0ea966d6c224e8e2d967dab43b04c5d0b3db7010fbec7bc3d5c77f754831ff2c42d9f9b70bb0bed95c22e8867d3bd6a615e30a5abe9db6698748d0c5b7cfb469bd9da64deced361c047ffbde74f5f15f1d52cc08985ba23bf44415bfc95fa76d5a31aea0e5d7659b360c30a4f1eb589bf8d7b775f6b4cdfcfade6cf5f15f1d52cc09981b00bad16727b569c39e9d9da64d1be9d9d97db4899f9db66987a0c8f2ec336dea67dfd6e1d366f3ec589bd6d9f786ab4fceaf0e29e607cced81ae6f151305f7a0082fb86818fa06ba02aa0555014d014501cd8262414f404d40a7d02b6809a815b40a4a023a0595424740a5a0512814f48951182a340ac3a8cb480bbd81880d2230a23588da20724327a191d0478043804278579e954783b7c57bc173c1ec625a99359854260c322a19164427c8c288ac105591a5215b43a40351124459443810852102435445140311151117a217885c206a81480c9112aa2c2e34466b5429a85810d5b8ac706de1ea7265e1c2c2f5832b08d90a322d32156429c850906591619199209b925d9155915191499141c984b037606d606c606ec0da80ad819d012b0346066c0c9818b030606a605fc0b88075c1b0805901a302c6059b022605cc09d816cc0cac8cf885d117e6956a0b110a44598858205a81480b910a4429101d413424e2816807580a322e445e4c1b8cc670554134031110443010fd40b485c807a21e5c564426442f5c24b8a298595c585c27e841e20811091ab000059c8404e1d94140100c18328449844501083080111862ae8829418c153155c49020868a982962a4c48c20468a18283151c444898122e6891821ca06ba060a069a06fd02ed02d502cd029d02a5028d02dd429d40cda065d0265032a80d680de80b466f18b5316ac308cc880c2068c26734c6c808a3228c8830fa6234849117a328465088c288de2062c3c9072a9075c9b2803d016302a60586057602cc04d814ec0aac04981558151809302ab0293029d8083029b02818142c0a0c0aec094c6886996f986d2899592617738b511a9305233546629842b38aab0da3345c57e0a1ab093f5c595c53ae125c545c535c52ae115c525c512e2896172814e813a814281328177a86e5c5e282b5054b0b161a140bb40bf542bd40b96055c1a282c5c59a8225052b0a16142c33ac2dd615ac32ac2658645856b0ba40d1a055a06b584aa06a50355034d0335033d02fb40c940c740c540c56181618d611ac21cb081611ac2fac21583bb078406140a9583d18916105c1f2c20282f5039a06cb091616ac24503016122c215845b098608d612dc1d262893112c228085406a333502e680c4662585fb07c60a961a56185c1028325068b0cd6186818e816ac275859b0ca609d617519fdc0fa32528365060b0dd61aa236ac34586a18ad61e486111b2c1d58594640b0b05838b0bab06e60d960c48675c5b262d1c09a8155a59760c1c0e2c2a2626d61bdc07281d5028b05d60a2c2d2c155829b05060656161619dc0328135c5bac22a81658545028b0aab0a4b8a35020b8a258515c53ac3a80956141614960cac272c211946be41b621d9906e906d906c9060a41a641ae41a120dd20cf20c232ef28b2c8324831c8314830c8304835443a621bf20bd20bb20bd482ec82d482dc82e320b120bf20a120d6b0a690559855115464f8c84a8154905c9454e4146419e21a1209f40af8c9630628295032b06728b34836e21d720cb904d90644826c831e412a416298654820c438221932091208f2087a41164112411e417720852083208d20b0904f903e903d903c903b903a9039945e640e24062915dc81b481bc81ac82bd28aa4819c81ac22652063206120a9482ee416f205d205b20592057205520ba902990289029985c4429e409a404e9157c812482b64159204920a398594224720a590512414198584423e2185aa30d51baa362a362a37546da8d85081a9d650a9a14a43b5468586ea0c9519aa2f55192a325463a8c45085a10243a5469546f585ca0b55172a2f1517aa2d545aa8ba5459a8b0505da142a3b24255850ea3a242c5a59a4225852a0a1514aa27544ea8b654665465544da8c8a898508d512da112a352421546054695840a09d511aaa1ca0855112a22545f5443a8845005a1f2a20242f5838a07d50e2a1d5459aa1c5438a8b05437a86c505da9685055a9645051a9b8a85a30b242a58218850b4429c4332214e213a2135807714b342396119b10c918a1a1b5f0117e9a64400314a02d9880048800009631f997af36ac763d4e926ce0c812497a92387264b2438249cf9123d772cf920d240162c204078e001dd1f3a30409264a8e1cd9818333b7209a5aa8995db6034a38c044891ea0243d3f473851e2a487498f909b9985238e28c1012643962c5142014047f42c59a284020230b19033afb064499223962c49a200349200ea00939e2556d89e1e0e1c5102e80850121d50d2f381d2a4c23a59a22409500f12477a7a38d0c394c22ac101264a8e80e0a7878926204852c46714b6e708264a303992e4889225bee708264a38008809134a1c71c4e330cf404289237a90e8319fb04e40d0e373c4891310f41061a28412274e7a20a04d27ec07942cf13f3d3e3f4a4ca0086d9ab13d40499050b2244913477a98e861c2082348f474a003498c046096b14e7c8ee849e20826ac1320263d3f3d493051e2730c264a385033b5ec114a9c3051f203e444cf11102c59628924477e7a9058a2848993cf114a2c39d94c31d6098f39844d72c4667ab11e38920428091249807a1a10337f1002254b92280152c244098eb983f5394289251b38d203c4c4113d4ef4dc983ad81f251480cd1c2c13259660e208124b9430b181234c921c7144c9120fc4a4c7031de88100123d4830b1e408264a984420c90f13dfc3c4c13ae95102a4e44789248098482233b12c1325940025f961028923404a2c717244c9129fe48789c7a1492a545fb40881e13735774848e839e576446806348397e0ea3d4a29757fbc36bb6ed731f3ba9672f246d7bb8e37566e2bcbc554d5c41c740b7158cc11e2d86a1d77dc8ebc91777388fd627cae1be3de75ec9e5bf71c4fc75573746ff7b98508b0625c553de77663e55ebfedb5dc6255c5ecb6c2dc5aebdaf5365c87cde5deaa5a5e761c63ec7671b9e265cc6195855558d556c4aa6dcbb5e524ef728cae8a514ad9db2d999b7bc41ca08a7131abaa9c9bcf71e5981dbbcab22ae79c735c653864bb1b63eced8d5bad73bb8f5de5b059392ba6821046765657bbcd6eaf1dd78ebdf8ba78af6baf6b9977fbdabdf6daddeb8ad775c52737c618e5cac85be9d011a3103a742ccb28e33e7e1ba37c72c69532f27bbb71e36b51f772579cf56e07217966cd198b98bb29740b24eeee7237dc8db137728cbda3e6de2a76dc8d312ec7b81b6337370eeed8bcccbdec96972bae7abbb79de36880d8cbcbddbbcc1be532cbe5962b77a5e465761c39eeee9c1c779dcc6e0e6ee6702bdffcb18e2d6651c5ccbd6e7723335b722b1eeb74789979f9e5e851e3606667e25d6666b70588bcce31c7d8cccd6e5d8c1de5b2e36576ccdb3340f08a9a2b5e5ec7046076bced3aa6b707c01bd755ccb1dac5c1ccd5ca0a13ad28e3dd6e166de7f8c149862d9b7b7977a55cc9cc92979717eb8e317616bb79eee6eceefac0bbbc38ac6877779bb2e3dd6d8e2c775900bb2ef632f3acb663dce5de5de9787b37f2eeeeee72efca1665bc8db3a3c831561c63ac7c543c6300e27b1ce3e3c1dd3172b41ef3004089793b3ac7ec1cb49ccdf2c6b8f1c5eaade38e0bbb63a28889e264b641f0a384077a3c1073ec0f1d5062c9910e3051d2810e28b164c7c8659ce841828992234c942449e2080e7040894a80254b94f8e4907ae881c40369c6c74c0f3b00e0266784c41225491c71046809134938d08344e9270990931e464e76ece0e17344920d2c59a2c40f007448d2f3c383a6c7e70890133d4c72e8e9c08e1b4e809c2871a2c706021d91c40993243f4047809478c0034a906676004a38d0f3b34495f949d2b3e4889a11124c7a965822c9919e0e24f95102c849dd1f8092fcf430e9e9c00e03f87152b33f8080034a7e7a9a3862801f0a50800120d1a3c385448f13273d3f4b784089238efcf434a1c4113d3f47923841e2889e233ff8980a3080258ee871724409a02540f073848eb603005242899f2348f4fcf420f1a3c411530106d0a3e40708004ef4246123c30120268e003151f2b304cdfee00125404c98f839728413251ea84098703015600003e8f149b264037ee3c7007e38e284121f003ad201264a92709224891cbaa7e78703364d30e971727f38c24409254e7e7a9a38e281233f4a0025394289254b921c0172a227872698f4b81e3023f4a652a989645357ea0505a5229220de54505010076d50502a28a8da542a15e4906c073d24290e0a0a724882381514e490a43828d548521c14947a290bc9a682828252a988648352412917c4294612c4418c645341a9540a3a241b946a24411c14d448368891a438885312c906050505a520920d0a6a24295e241b14944abd548524c541a98824c5294e4124294ea51ac92e9214a7520fc9a618c9a65229876453a94692003705de5df68093241bae695f691bf4428c307879a07e9845c8e96c177870841874e18b1b6a2074629f529cce04bca08104293790628a2f4eecd7970b0cbcf2fc379865fffad2a6f569610c056d9f17c67486e7cae8e25859130494e181d6f93b2382fdd60c117df55b37214fcbd68d7f49efaf2f4de2ed62e33f3eed5aa349ecd717a77375e9d224f62ecf5cb6c0062830610d6ac842c589b7b8e00660d410850e700084e7cc0ea9381d3e31bcb20fa7fcbe4c88fbe7b249bccd3cfb7c5aff640c2ea9bdb321f09d3b587771dabdb37269d2e95c5fbac4cef239bbbeb06fd797e71c4fe00285284e18c30dc29c98070f7ec08221b8808a2160716287599c0e122d5070852a66f0c2193438b1432f9cce07be9082136ce94210a6b071e22728579f49c5ea1e4213face363d5fdfe46faf49d02b0dfa649d3d6d744fabed4ba753f39c572e8176599f486fafea132c4f2a77bea7e9984377c2e9580ea75bb91ca8497009a733ebc583a449b0e6646935afd61881f97409587ed527975b3eeb132c462eb7fcc974ccf7049768d2b66c3cf4693dc71e572bd99e9e06d424b884d341d225e830dbe49f2c244d82d0b7edf2d029741ae80b5dc259d795aebaaeb4d1223bddd936093a0b5107bd72e751645653c4d59ae8ce53a75a136b8ca9d3d3f6276c298f837823e0a929e27cdfc8e80c43513875e5ce8d54ee2a0acb7394f3ca5f3522bd2baa5d3eaf892e7d4f9556136b11cb2bdfd3640ad4242835e94ad02b6d5d29459d6812f45897681274e841947ddb2f1f54a5ba6594d9edd137f97ca33aeb4ad0a9f3753a3475a371a5577db4ce9e7a495c3721be1d886f7fabb35b32452e98000b6378e79bb91d0ac3dc9b0d6ef9f6b95c73e2e8ec1280be95eb132c46d6218c11ee09f2b24797c03aac759779f7b4d0d708f4f527715d8c9030529ab44ffd37676f875a9cceba95e856a0c321a7132bccc25a8d73e8a9d36a35aed618b1ce6e642b0a8bab46d86145416747455f4f9de6728c6c121c6a526f908c2d395fcdbd6a0582a1ed090e391d98a54bed55dd2e65f90d0efd9e1866598e11f286359ab4efbfc12cdf9ee374560b9536d8f006194c61ca144eed3f9c4e4a8806335063073d2042185e4eedee745251aef84210c4c8a2a5094838f980832e70a08427e4200a5a9cdaa1f6641d7ad49e6071fe24ab31823dba11f6e8ae1a598745a044618f1e651dfa936f7f5c164810dffec3e940974354cbf796369aef753ab1ae2bd1871ac995da377314dd6711503204418b3294b002229ce1cba91d6ef9d521c8a55c8bb64420756a7fe23c8aab2348c0a9bd6b50738fc95db7d4b6e47ae7cf3b2b02baabdb7358ad447f99907d2b52fc146bd075c2e2dc6544ac7f752bf2bb38d637635db7d4f73ad116811f2d2f90e594ebce62be06b0d0bfac08fab1bae7dcabce311673b333fe3906c63f083cb71c8b2a6f41208b7f9e61d1837f2e7d03e2d737217e479ef9aed3b449faba8ddfb409f375529b2c5fcff9d1264b7b103a585d97b65f49e9d8fe48fa4ed710991e9fcf29f2cd1a30e7259a5ef98498ef43ac06a91c3abcbcd2f861745837fe89615656c473acfa44df9e3b49bde5322bc249ea2ff7b1fcf9ac9be55785515b2bf551cb1cd3523544a0670e3df3ab6ea9bf469af4cb27f3077da441810205cac8a5d8fd81f924c5ee0f9b7bab6ea71dd704f5236d4f32f5af89e389b94233771991e796bb6c8874ab6e99cb5a63f9f4e89d0dc96a8d5589605e39e6953f9fd8f4c11ad018c60feb66b9bcbc06fabe744bab81354874e9b2ee5f6efd052d9f6ab3a474e7b036e130d05d11cf65dd2ab7fc627ea8f10771eaea99c514361c7b8ca146e8becf9ab831caf8b105b2bba2ce8a784242bfceebeb3c3f72b56e2bb4877fbd8b13fd396b95b7bb2c08fbfab540aabab9ac215255f6eb19ce6d67ed35a9637b5cbfb222e6e2b46fbd16a759e8a3b68bd3fdc4f7f0afcef411a673a75980b23f1fe826bf29155434fe190b50f6ed1f7f9e822c1fdd498c0248a43cbf221440c115f7d070a436d544875ea44ddb0d05dab4919024d1a68d66b510d126dea12cd27878bd16ebb745c3cbc3df560c3af0b4bd77b41f7274177d971d28fef2dfb4a90987f959078a1f9d332247be3db62f77ddf5c12ee3619facf9c48c08e72c8873ce95083e3aeac9932019f4d1b7b71411ed3eb26eced7b71824ba23d2eeea13d69c4fee26e29c6325c2346daa1cbacd32a1cfb98d5f31aea085ceec10165e3e6af0699b363af4d919116db4f18637fc6661d6c77ad438cc6f26b43e5ae889676ff7c5126336e16fcca1b7e684dfaa3eec96abe08b0fc0af186294e0b77ee8acfdf0e2400792df64c3fcf4cd82607e5d93ebc58f695b74e896b63e1702cf319f8b01ba432a20e39d5b9606b1deac37cb9d77468408e696cf877126a49a6e6998bf8c880c229deb2e0efb4e63dad6951787ddf2a96dfdeceb5613f29bb83708fd7aa56d409c8adc6acc5da23d8d8753f827a404ed1cfc0e51a9c13717bf435b50f1a4dfa11708e1d995a00e09bf432b00f30cc6ef90163d781fbf432a40e3174803b97ed987e8a305b26de8442e395f5ff61877aaa8b138d1b3f73b55beb03eecc7ba75dd82be89fe0efcf0b35b33179d18b64094300634bec9e89b90cfee3c7210fbfb5bff16dff97418cc864c36a6fc26848d2943e26f4c9840094de8f24d903c7fd9e29b04897e03da021668b8f80de80a17730bbf0191600bf0372754f0410084b0e537275e6c7976ce864821a1212e1bb2619e1d6643fc9bf0479f51ab382302bdeb4603a18fde5e6541a23fdf71bda5be9ac26f4e521fbdd29a6c9830613ad54de09881d03f197079edb59f8d551a9cc2b7d6e33913e2df1eb52670bc0ad4443c3ad47cdaa3cfd63a13c261a057b0d60c790e5dc8735881e60e5561e381faabbab537c10f3df5da434dfb069adfbe65b4d082c1d3e409b9edf2bc8068442fcb41701a68fc7ab3ce9ed62f0ee209fdfaac30970559342a29a58c523a862411fb54019467af9c9f4fa8d56f9e6c04cc2b8d1dd37c2a677799908a48e55c2d13ba435764f19757ce45d01daa2286bf1ef3391dc69910b959ee5369dbe595cf4aab19f284843ef3f7ee37f34aebcf7ca72b0ceee28cbcbdd2443ed2b6ea65412a1755ef2c48e5d4771cd56a88542ef2ca4555ab21727de5d75795c7e2bce895b74fea74f6f4bcd2669af47ce4226d7f7136ccabac88eb31e7b1409ec3ac889ac5798e551e2291c642bf991016b212e33b4d9d4e4c7d5d7afe467593bf519fca2fdf2a5f225246b8aeebf29d9e0fe32c087be5b221955f3ea2c5793e5a9c27f46f719e07e8137ae2339fd6cceac87771ac918b2c6d733f5d3445d6f44cfb118d30dfe911e6a299616e4daceefa98d572fb96b65e6dec1b2b6d92f3faed5957554c23f4fd0e95a00d2314fe0e9500cc2eceea508234dee677a80464fcf3cd5576decfdf7318f40e7af9579bb830619ecf92ca64cb98b2b9ca1e372b62cb98f2b15a9941bf410d32d932a63cf42d041f6164720028430fab952741b2ae13ef9c7df6d39c6f66012b4f82d6cbc9f2b52284831533c882cacf0e5472a045086889f5f256847c980212849a3800942127b6103c8462bd9cac2ab45e4eeccead08e5c0820ea2504348e8b4f54990ac42cff4eab6c43b8fd1021668f006284242a7cd1a20f3b0a30de6946f5fefe1b75d6dbf6781fce4bc95e7a9f5823bdf5761852205ce09ba149953156d9af9761e312da0db925fcff96de6b7ed42112850e32a9ad4bed18dabf8f66dbbf0eda8e7d495d2e002207001842c5d84844ed09d6ff4fbe434a1778312c8008a1810e104450a9c93732932a707458a3e459782809373a84941c00985c588735411576a775bbe1d3a0a8b91e8b0a2765ca93d56141623d05d45b92bb5c39ab3edd090f36db7ac1a46b0042b63a8820db4f084982de89e52282083085b6c71042e3b40c3694fcfb79c6fdfcc880b099d9c57d1a61ebefd694e5b579af2ab43d04b713f2cee3d0d3a73056105217c3619ff0e5921060f5442196880fe789a70987f1eab4d93e07bee759be17c1708f4f5091d3be92eba8bee2a772ea37317dd393723180f6a1b63daa373f49ae7fcfd352f09d1a1c651428dff693b44c646dfb97bef9ccf389b772e311f287b8c610f723df36fc6d36e5d371731a3cfc919cfe5d39f571ae6bb4032873e332df5dbac329fcad7a7367f87ace8c1bfc581bd5a3ba6556e69fcedab49c734e99610f6f59d96755b973e57dba6af4f8749ad33e7d5f633cd47bacff4f64b9bcef2d900cce774de6de224f5996f1f70431b61dec96eb99205159fd56dfae53b6e4e8849ad2d7f3362526bdf4c0811ac6e4ebce5d3e76642b66e0eb320975ffe9cf1ccea7305b97cebe59b0d916f551fe9ed9b24d22eddd2f6b54d4d7e4e98bb40a2afc31935209a04bd089fd324e89b6d360fdd6d760486d9b4cee5d0855820be38d2a1fb68136d92b41cfaa56d97a4dfb48eac79a833d325e9d0d705bf01f1d06b16083f9c9666d324e9ee77c88a21709818f35cbaf3df212ba43c0d67d26b2a77df5f53d5261ce62bdf212bbcf855421968f8198dad6ad32459697071d6377b51e37756a613e26aeffad8ac8876dac61f75a05c0e058b73cbd7e7b4b41dea9e8d39ccd2b68b10cc88785911ee9d5fda9e7ac2ed77ce80d4152f8bc8d92f0ed879e92e23d2a3af7c6e8bb6a0298c7536c40ee6b221765e7a6742987c93a0af7cb321d8d6633aac3306a4b878e9d3612f0b92a2f24d90bcf4d92c126d4154d6c7acb0985512bba4a5ed695ad8a5edc9d2f6d4d990f658376e5e27da827e1767db211364f1d12f8d5a9a0b090909099d863c77d5654d9c8002c51342ffb34d8a1eebe63a2be2b97b1fe7d0371b62bfaa4cd03c10cdc7ba8bb33967e77cd89f56436403c1b7ef6fc6d3bed3419d8a0dc148300df09b366d3e3cfb76f3ecd510156730cd3740c483212aae4ce962b5ed0204611d4077a8045f3c0bbdf3395adf9b8d85be7dea30b69a11d4879f78e8fd1b061acc787ef6ce88b0d0475fad893784febaf35d20dbf39a21d7bfda64f4eb3b85cf795837579ff786f9d9d86a45283b3f9675ce9a7813faaedab0d0af0e29c85d8369013aa70f747d46661aa18fce8d3158935e93667c882269bc78c6f3e752aed3d92e6df437ffe8734b143acd4e9b3639449b368aa44dd18568d3fbe814e8c147c7409bdc47b75c3efef8b8647cf4e73b5d85d0c718638cbe37b1faec9716c31c52f9f3f9b4c69e563daf76fa49cb77fa69fcd2a35bbea5ac2867a535c1ffb426f82b9ffcb4ca67b72fcef3a91a50f97cdec4e6cd9d0e7b5aa579d5b26eefa547af34d7af6ed2d92bdf7152db6f82faf6afba6a29abeced35497a6741f8337fda937503ea6fc26cfc663c9957da567913f4973ca1277e93dea462e38930df847ce94fdb30770e359fcba1cff9aa7ccf9b4828503cf13f4dc4b7bc89ea9da4deaacfb96c527d79ccdf5fbed3b2fff24c6be2feaa354378e8a1bf8c07bad39eefb8cba1d644bff3d9cdebc30ac20ffdd25e5537feca2d6d634bdb226659965b55fa8e8bd1fde624f5eccfb11ae4f9c3ba55d5e7d526a8dfdcb30fa1dfbed3537ba39d7135cfd99fb756f3bcbdf2f934f6c9d9103b95b33f2d0bd25ef91bd25e55ce4d38cc0f10b6d99025862079e972dde779e5536adbfbe7ceaa3f4df68b90d003dd78e9ce01612f8b58e2d27e9a24e07b719e03c5bf7ceb7f6e693f9703c597be1991236ff94e4bad498fb7fcd29a24e079712cad098779cba5b6f13fabeefa789d0581fe9c339e58b7d4477f9a941a7ba5edaf436dcb78de8f9b8c7101f362dc419f50dbe78c619005e3344743a64f9fd8e58bf985b9e5d7a5cd3469ddd2a8b6ce3ea7d604ffc63f9db526f8e79c3e7b79fb89b8eef4d47ca25bb44dd32b5fe76c8ef8e7663c1b6368932ecf79cc39e3e1bae3769ab58ddf27bae50b84bfd27c71d6699b727e7d6ab4492bbf2212ddaaa3cba13fc79cb30750bf2a4d93d6b13ab34ddae8ec736e66d52df596631a6b98b65d6e5d757b7ff974d65c6ffc986f0c4819e1777d6075bbdc5ddafea5edb3e57ca7bbc9fbca777aa767d436e8ec52abe1da84bfaa366008097d0070bed26c9ac40f53154335e67b9a11d4e7790fbffd8a71052dbb40b69c872938e47a3821f4edd52de89f6f5603960b0fab15e9ab49879a047c98c211c29cd69fb6a1fef92c592f5f79f42de8a1ef06b1ebc3b64a1023cb03f15795c97af9262e4c988fd5ca93a02d63ca4956a12d63ca867a58b7e79bf5ce77dcd37af8c998d4d637b3c09631e5b43d7c10a760f71348f0a57faee0d24e47073386b278f1811bd8c0e2340031ae1802038c2c68c18cd3521650ac49ecd5af185190f1fcd40574a3cfbe3d280616bcf0faccb958caf1d826b57bef69fc9b5d604a9186d6c5641770c6801628e04817fc7ca75f95756f5c076602b649a3c907a09b3120f5efd514f302369a77ebd2f93b6dd80be9c2058eae33ddf6c698ae774644eab7769fad4d827e7d290d46d0c5efd008aaf86df4cf03f02b0616d8f8d17b93293bd3971191fad4b3b7162383e9321ed80e8bd099b2434d7b42f8a3efb46c534d10fee8b1ca678701fd63a74f29fa2ad6b0cb6b28c65c1e283f12acb0e577280842cf84dfa1a12c3f23bd9d668154de35df3cbe779401ca3be7f2ae02f53341f3db124242420f44f3be8d7eb7986f511031eb43fb16f34b7fd77f7e80e4ffcccb92efa5ac1b74e90e5627eef997483fbf3be7efeac3ffde879fff2d4e7bd4e0e2b4432d2e4efbd3aac5e9773a335d6ab740d81f0f66045227e87bf384fee02f8d0512c4b3e72c10d1b3ef12f608cf6e80e7e6476a12fba837393f9ccee5ccbe2d18ccb74d23f36dbf4cf76576157b99060536104de21f394dca81e2da0874fdd26a8acc795d97b310e866d94ca6b5d0b3bbcaa3e512027b82deda0f57629fda3a8b3db257ec982b718e2b71105ddf28b452af2b35e6ded4b8392f8ff549f42bfae54f2a9fbea79a2295d73c604f95d7482012e1677fc0f238e73ee39f731bb1272e22a52b3deeac0894e8bc06d61a232ab75c0231ba15fdc99e9268d2d3a82b3d9fd222bd3d9daa954b906892970f8aa9ee87022663097379a0d1e7926818d6e830c400e6379a30c090c6f7cdb743cc4df726fb938eab8f730935f6e7136a1be65c375b75637fd3771c37417df4a96dd02b7627b1fa3c677fdacc4809d4f20db33c1b02ddaa1b84ceeee35c7a673cbed3186d53f4fe09a3bf8c88d4479fbc5974970d811eeb067d9c470d3a67cf1fc699f3cd5e9d1cb330e736378b60fa3abb8f6c127c0fbeb8bda58b4081b85d7e68d866a1df9ef73a674458e8538cb5ceeeb44e2fe6b29a28352896579a1479aa7cb52dc8d2a4f871aa9a780fbd66085379583bab89b548e5fb46e849c6589b8cb6d43bdf718f855e2aa1ecb0df0dbc108318bc70e5b96eb7c5b46415e1ebae0b91f0d87557c1fb2c965db9f8207cf2d958b272cebd680388c936bdc5d937332333b383e776d0bc03cace6ba13e13c3e42a55aa089fab52650793b174777753f9f52a0efd3a7c8eb150f6ee6e2cddbdcc95951ce79c7331fae69c732e46df9c73cec52c94c6c66f6a8a48df37d242a7b89a15ac4291e2c7493a56a5c8d3f476ea9cd32e979a65e55ae29fbb186384afe6017bb21cb5432710480781e504f8ae71be5fe36a11ab7e104cc57e4f98ee3d20a5a3272bf75cf3ee7befbdf766bf7efdde7baf0bcadef0caef0b9203975f9244c373bbeba2a3a1f1f7a0a3a3f764e55e571bb0737eefbdea5d5de6c16389837959b28a901f3333efeeeeee767777f735459516fab1736ed961e17471166255b538aeaa6a3bba38ebef3de8e2832e466d9fbb7f75fbc0c3f8dee37d6f6f3a7e615a39c08173ceb9dd756d7136c2b7a49919991fdcbf39bf6c85b20b997b7d130e0384fd606e04e886e1052d9e170c2f6884d1052ddf4260bf1c84f48d99bdd9977d606666e9b06e93a4b74fa94929233373e5eea76d4bb0675f162c796d9bf95d93f42db6ab8074a5bdaabe26f56308b56daedbf5ec2d3f56b56eecb05ecfd6fbc82533cfdc98abc17421b11fe6dc4f883d0cc62cc8dc261ce6c130e5eb020a2d4e77df80b26fbb73428bc32fcbe23c7666cc1e78d8a1bbbb75a89af7c801079b1a1e3b6874e4d071de2d5da9bb7b46e6460c1d89326c5e96ac227cae797749dc3269cca6a171ef0137e7bc9fd4e12dc9ca91d69febd65eb501b773ce061bbfbbab31e6be0ec11698a50630cbafb373a82dbf575c965fefe79c734e079306efbdf71adb480f5d3a57419f7315363371ab78758350db97da12d273ecbdf79e7befb9f796dd833edf7a14428aef3df8de7befbdf7de7b71022fbf60a63e302600e7709c73ce6decc3b9e7bc3801800088a58a24f9053d5cd682f1eb3b561c0fbf39e71c57a1ec3beccd6fbbbb980ebf39e75cacfcc6a64955a4a15538e79c7b22cc69d64939f43987bebde7fc39f7790e6a4efbcd39e74618d3c039e728e662305737da23e6460e3237709891c978d6d76666dbddc5b139e7dc53818e4743b3edeef2d891a38647c6b3bece39e76ab6dd5d9b2d8bc30ba40c0e18c9737ed0dce891438cf7a08e39e7c579331855edc60715558c6606ce39e774c054401dbb71ce39b7c3eef260f5b0bb4bc2dc835e6d4f96d69fbbcf74dc0e8b01c036db75c7825d0780b3b98101c068de5bf2e3df7b3e305e0165778e310e66a9c05b4072f40580d33e08809d9b39ce391f30e7727c10008e8f0000a044ea81871d6e74a89af7c801879cc806b8623e2f9e5da6f1ec95d3e2d9636b797608e6d91f5f7976c7de5c8576efee48b66963df6ef6daa4b644eb550e266f217b0ba7e1ee11055ecadc35bde73a08e85b8c31fef043df628c11a8df8af4b92c031a8617a6ccb8cc480b9da4cfcde03a1dab4a9127e91dad48dfa2573ea3269b14a366f98e73e21df42ad68d1f42e803d4efaa74996f962eebba9263c3cc18ebdddddddd7dbc8f17672dd891573a371a2d10ab128916889459b6402a0bc31648bce6371038af6b813cccb21688cbe437901655d50261fe2dc6759b73ce55516ebbbbd6b6bbebd63d77ce39e7e6eeeeeeeeeeee2e2683c9ce9f4fe79c77cce2ec5b20cdbc7471b8b9ccd95ed0a6f2256e692a5f86788a175ed0f5b99594a29a21599893a9cbe25cfc577771dcf3f10e0b8aa3c1f03ce62de664da2497518dafa0eca4efe659175b8435098a6a863cd76d027fc59c23a6ef47dc216a735dd85cc65af4b220d663191dd1999d19c9f015323338640e793343696c6668f707de3dc628f6ae3ecaa36666b94ca1b1a112073601dd489f430fe77cc7396ed6b220d67badb5470e38d8d4d4ca63078d8e9a03c74cad55a6de88a9b5d6ea830c12e672bb0747f159815699107e4e717d528a7acb64cf11a21db6ab56a2ef34d4f6d41a10a7c8eca7e7ccccec3bc4679853f26058bb97f1c08ce7b9e6e521da52cf3398bba6f75c07d1fdedfc3e3ffc40d6b766a0de35ad6fedcf6577d76d6b7fb535ed55ce86b090d0efd077ed366abe63c063877b344f470e1c3352a6af37f4e3460c1d65a297bd1c922badc4e88c799725ab7783623107040089475ff29f83c1d3d23068aeb97e132dfbb061bf926453c36307cdb20feb03e0b7802639e726370771621fa850765e9c8e0f02a05f0a28fb4ea321c48f997e6020d1a475867b042dbed7ffead6e45d2db927faf7b0e79a5330f31ee9610f93a49b1c1f4d5a8f18e708f1a35905db8f5fd7fc1ee96f9ab4ced92e4e85cf3df79c73ceb98de43ab2f7e877deefea1681f7a8a3c27258d866bb4b7ebc2f0e6be692993437b01b52e63336311915714179b4058db7086b52166333c48f17fc98a16912e602ca4e69de3d9b1cf3b26cf85f9d9196dc4a4754c19648d07a2d7057235bda6037bf9ebaf2ce9fc62ca0ec6fc972714eb302ca4eda195e81642d28fbba8e1ca37f3d2a8c390789c93539dfd6b7493ebbdba41c16c6d63531aeb09841d1c835ef94c1903cacdb3aeff13e0edea882b2b7cc25dac5c17161ec72759e6f9b72a84ee5cee5ea44facf47eff3a2b6aeb4bbae3e7f754ea771a5751cd84c2623ba318aa13466c422996c06c34133735c3a2c1ab963f2c06a86a81d6ba0cdc3c1e5f0e3d7b97b38c65950ea74a2b74b8d46c331237323c78561fdebbc0cb38c86aa80b2b30a9ec8f5fb76e68d9c61dae2ac3bf7e2b74f11c6f4b928e379759ba4fdfad3f153fb28e37970f4be7d528cb3a0fe5b0cd63752f06430460165e72c28ff0299a9444f93fccfb94a6c5e9648e4823af53ac919f201eeb4c5e49785bbfc7abb29bfee7ae8d71f642abfbed12bd06db7fc3abd025dbfc2f6ec35eba9dfbaf5b7cf2ddc54fa8b1b7a3c056e17766e3a06ed9aa263d0f529ab28adcdc9f79626adf3777d591667dd2ac3dcd8db39e7ba7bb44d98dbfb76a2ae589396f43e6e51f4b36349c43fef97fcf817455d6b86c46fefefba4de0b999d13037a62c6b86b0737651ac9fdd2451fb4e3bcdc6ccee3d77af4a5733c4bd737e57370a7cf33b2f338ad9c6190fd4bfbe39e6d6bf31b34f13eead80c0b9f59b19794242ef3733c24242276764874e8e9fbb598ab9cded1ecc82588f05edf6b916b7c86de0d937e917ddd13c01dd5e267f5cb1911e7b4de2166d93f80abad1cfb220d69b805e4137f9d439b5f9e5baa5b6e5f2ed3c85b6f3a769125f41d767cc7331313131cd9b43b4a57ef45db723cfd5714585c9cd39edaa95e73bdd1a104d5acf713adea5f57ddea4f5f5cd7fdde9ac195bb0a0e1062590620c284ea92e8ef08420d4e009617081c2697dd7e5fade2c77e1ad0e942838cc090b7429e429068a941fa71897429e9ae6d4a45333e6ab03458a1fa7cca5c893c837880029323b8014d229f32d4608293f4e996f32bfbecdfcfa5b20bc4ea7691e07e76a45c44570f09d9e4f28051e980512c4b73f5fe77ca3d17d34e9f9645afd10a249cfab0a8443e722d04dfe06840e9f9e0fe17472d8780a652935be2d181bdf58a8876fbb45876fcb85c6b7edb2c379f8eca1ed29071d36d3e948f9e76fa391358744fa079d339e056c8c90377869d2fe103b4d7a43597016236334c853feb9eca1c5780e1a9d1a3f0e1a9607ec098af3761ad7e1317e23071eff7c331ee94b8940d9d937da43739e83d6ced9e53834b96acde50ebfa0ec1fa39db8f4bc352852f86999009b880bb0ed1841448fd59dc579ce43a0ec9cfdc826d26715b25f0981b2d75cb58873ed4e52226d67b51481028587d338941daec3e7ce02117d8cb746ddd28a34e9390781bacf1c07a740e638d41ae938f89e2820f21a596b8c88711c5c02318e437d82c5483bf527ce635c02d471701cea9376ea7bda537c00670fa82912e30fd8538c4b607486a1334ed467d7687be2a1ed6987b6279ab7d18a408932f21c0eb5c5e133ae43db13bf8d36f21a2d87f3d070f80e6dc6693419d7a1dd7023f60445c66f3c604f50629c3a9d6912d58670a5e7315bfef90d2eff5ca6cb3f9f49e39fe3f8f2cf732c987f3e62a11cda9e70687b9ad1f624a3ede986b6a7186d4f54dbd3484b6dc65364c7955e8ad234e9f97b1e4499077b41d9455aa6ad6320507ebe374f2665f5880b6dd224f98f67df727e57cbf33a8dd37192d3c9d992d3e1d3fa10441431d2a6caa9d42a0d5b127bd4e49298b4a41dca71faaf3659e2fb9ba0beff7d376b334d724e9dcbba5d72cedb5d682e0f7407cfa137be198f6c52ebb8fc1bdf9c7b9348ecce7d9cefe03b4d6a93ab9b3f0fde966fa31dbef5b87c13f1f02d87e95b56e31b0e986f988d6f36efb689836f3522dfae1c7ce331f2cdeae1db8e772e17c8f319df68a86f95fba623c6b7a8f996e3866ff0ab6f38a0e3f06de6657c733af826f3ce7b8144d7e15b4c0edf6e2c90ca9dd30542e3ae6e3cb8f3c983466a52bbd3bc49ed3b68374d6ae71f50fffdcd7f089267f736b91dfcede03c68fb2e2322f53bf864cc5b874feda41deae6cf156bd20dfb806eef67686cda9ddc125747a13c21e72d25a51bcd3bdfbad475a89af7c801079b1a1e3b6874e4c031f3250947187aa6ce656ec0771e43ab773e125def3c9bef1c9bd93bbf44efa4b68be3bcd278719c47ad17c739d4dee2387f9a5c1c579b423961d930ae10c2efc05208736fb649855e643caf15b4f28d185b417b9fac9ef3c357fdab9b907f5e2c0e14b4f22931a65ff0c80c7a5141ebcbe2b07769d2fe36a75c5f9ae4ea86e49d335db67ca391bed15eefba45bfba68d13f7a8ff789becfadbad154b91e5bbbbc643c5b97faef38a701c15fdf69ae82ce29cf3ea7b469ebb5a5497c692101adfc4a63f62f108ddfaf6feb5797265d693489dd077dcf97972b8d3631fff3a8c11e6c97cbcb95469b96e7d5a5fbfc01c16bcbb3effa3e5f4f7d18266bf1275fd8cd4ff7b0d6b09f106b8dfe8c15d6da6ef929b1d66ab6493ffc1ee1a77561adddf839b1d6e44f0c6b0d889f9916911c61adf54f8ab536f333066b8de6e70dacb59c9f32586b7bc6cf99a12d38b0d66a866cef79fcd625335a7260ad2d183f75e4c031239361736d44d00bf6817d95f0d381b1f533141a3dcee85cf342917b9bc6afa77e2e14dabe5910d137e130abc66ae167f55e7fac5b93ef872dd0845910d1bbdaefc58b3106a1775af35655d5515433047ef4fd8d3fd69f7775c510839687d6c39a21ede5d971bef4b31976f9e2a8a01b4ce3d96b88301af0e7bae67ddac76c48ff16818aab4cf7e04f476cb50dfb6d5bb25bc890e5817a56720abac1216b0b4ba195ffc49ff3c793111ffb81bf840c5a3c5083d129f95334341ac397076a329e7dbb7ee32874a3798e422b9f31d86a5b7904b4f2d4cf1bd86a3fd72fd92dbf4d92c156f3df5a33643d7aac1b172ecfbef5e7fdb664b72cd92d0fbdf8d4cf196c359682563e7746e6460c1d89320c078e87c3352f0dcde863dd8ebcf3eba7b4b0d53427fc9cd86ada0f3f336cb5989f226c35f87384ada6fda4d86a3ff0812004e3d9674c15e17bae99f7c256db23fc9c354178767eed2747793f5df3ba7511d3f8fd3728f48b678e826e70c875f7e3ad44d08b9d9725ab08b3e71ae31589a2571feb26e49df5e5395b121ffda3efb8a9ed6351db7c7ce5536258c6133322525cc46be25ebacc786415028826b5b31a94d3a01bfcf2edf00b5ca34d60dae4a2cf2ce3891818226c7cbb6be72f509765f6556568888a19a87cf9c2891e549cafa3d54eef3a7fbe1a931fef239dc1d08d8548406cebf8e892c3ac4a6a9273d0a5b691dec773a755756195521688509ba098e1dc153eecae18df09f85a536471da7f5b9d0d630a31fcc669a0dbae01e404ca39a6f2c0ccbd59f2a30dbb580f7e5b827dd71b36507ea7499b36757d4d6ae71c30a4b4be31cada8e97ee05633c6b3d3c6742f85f0e8741dbf94940fc5820fbae5d7210eb65caf74e673c99b64910630c2fb51da70aabb03c9f4fa334f8993fc1af183088f23254cef0f3614fab69f7e14dcf5a4dd726ee0d6250b1e2570c2a5ffc845faa7cc9f2ce60e3bb36413d13391e887e6b37bef829b1a761597e5ad8d36e6cf1f3c258ab81be627041450df4998f3e27f6b48b0ba19f18c61af4a7459f8bcd6c4515882665cfda8ab1051a1e3a9f14831ae402d1d06017e8a54bae00ecbc06ca0576699d3d39ae1b14c3bb9c0512df3905da04a5bb45e39def9499c1914307cd8e8c081e31427f427316c87ce7f687d39939ce7579c735c772e7b08bd3b9dc89dc4ae6908bd311552d4d7235ec22dfd3a5d570ad31c2f2cc2570b9a83e997e79569f603132fdf227985bbea7ebbab09c26a981eefb466b8cb8dc7223d3316fada53c17e8e59d4f4cb3f8c41a44a349ce316d4f908bd3815aa0162eef7c4f98961c2def7cc7f910ce739cff703eb51a7659c3ceb5c688ca2f3752b911e956f50c04babf3f2c8e73e7310378e74b78878477be69ef80bcf36dc7e72c8ef39de634d0f62da7d25c18d4f9feabcc3f728440997a1da3c65c1ee872f93972ce57ece430e8fab2e4206ea6fcba5b2eef868cb6fcce15128958bf75fbc0effe73af45d15f063321fcaeb745d16b7cbc060dc35c7823eb96fa1f5ff9467ab8f97898f3d0377fe81b8dcc929caf893ef44d8a3ca6d2385a492db3a600aca56d3fdef249e374480158d3ae3b51dd2ae7acc2ea6156c466460406e1e51756494db2bcf2c82eb5f66ac90f5897fc2072a3ca124ef02d7fb39cd9500ad36da18f1fba1109e846f36c25d2389d587dfc8804ed74a2b3a382f29b826e4bc613d1a66d99406481ac66d3257698f1b83a924285f862c6e6a5a916827558887d351f39403469b98c605f3331740d49f11c045bdef9ae8fa26cccc2b3f9780d88d7ee23a74dd0d98160587fe03f7f7589ab6c7079a0de2d91043b6034344ee34e63434363e3ae699cde68d207de5b0ec95548a1ecd036d35390d0054f294118151758b0af9918fa0dc305820886287b30e27f3a59774f99f2ae1851e16dceb48b8d2e396f3025007381b982febc51952e3987190fd711951115a703b3802e682be87681b9c05c6cb4ce55a55e25a03f8fca3b2be8cfb392c1294e27abb292ef9c680b92fe5efa3bc75a27f36da64b2da9f49e4259ca95db0c11f7af5ac99c354c3a9d0b8c04b35d605245e881155e689981174ae0c2024ce0032158d1c5161a58015393b190ce2febb6818855ffae823e8fbec95195264d99511b8daef04fe1b78b8a0e9efd655920fe5ce5b70bcc3bdfb0e71117ef7c9bcf6e6d10a317ac0f6e3a5fa32b4d721eb5119526017dbe8da88caa34c9398cafa0504a9ba46c4be094771863f1b029908368cfd51a5a1ce79716527e93531ab05cf807a73c3b674d05b57c3a74219e2536e1307f392f8153fe79d4ac649ed51195772e5fb669ba73ac4dd6e5ce9f170bc4dff9888ad39127e7a32b53d00d4ef91d599a4003213cd10518639c9cc32b4e27891632b84214c6d0410970704a0d218c135049c3942d70c1859373a885d3a10015a4f0032136ac8104344ecea76b0cc62a625646c4c56cb935abbcd898d224dfa00bdeb9d47649b1aa563287594c713a329370ca14aa179826b99642d9b70bcc28cbaf0e37ca30b1148182a1b01899a351e523bfaa11916315b5229f9ef59c8ec5c88c3b67f67623ec5d8de070aca230c7519dced4ca9f3672aa893cd350588c60a931e2f9c88dbccbaf6a84baa8a290b852e5d4d9b9ce8adaf1918f2a0a8b9191bb8a2ae24a958feaba6aade9aee6b852e5a8ccd795640c8d71991c19dfd30ddf1357bee3e8262b975ae5321a0a4b911b15c5a791538fd19e2ce1315bd051652157aa2a8fa142a3437f82c2f2803dc1579f40dfd3c642d89e322845a0448fc22738a47545711657aa5e456131f2a8b852e5af3a476131c2ee2a8a1d85c5084f71a5ca1d95af7c4a53e12c5fb1efc9553eb53ded4d557d78a65ec733300dfbb45c6a9bc8b7916f976f986f996fd0b7e9d1a7e889dedba4479f234a7da4f52f7dfca24b24f24bf4322c9bc134fe6b4e87f3ba3c5e759be49c7fc7b925a47f3e1d848dbd97f1bcbac177da16dfbdf7aa28b4c23673ce419f55c6036b86b0fb0744b54de217d7ba26863514aeb431be4ee7067d30cee0c07264a3186ca673b40eec697307d638c01c7a601ad64f2c1445a82bad776d1df806d376c09a871e48b4c40303408d0d8f1e015d9c00602d050ed65108c039e7a06fce238430fa807514ec1cccf90173d73f0780ed7bf507aca30c00eb27dc13007bee1e10401400db6cf747014a8e04a123399223b99273373ad4f5e1dcfa581feb637176abe6d200581041085106657f42341494fd0059911d5712ea28680a8025c0a4a383edfc308001302019cf0209625908ec740004901e5500d64f3494b700aca3e82782600c211c62779fbb7dd8e6e0bfe84eeb7fdb73e7f36970a13fcdfdc2fa9ad4ef78b0a705c19eb6c17f0fa7a1a0d2955a084624e319027b43a000b27ea29f8075eb87ce415765644e527ec874ce0d4dc663b41b4e4693423ac5f82482c56852684e313734297e8af14904b64e478a3cc5785f5fc5f84e0b002733c23e622a75a5574411458aec34a28528fb9b46643cdb6dda6a86707cf85b977d1a31ea0278d1ddddfc9efdb914dab4ee9c6be8a0c65d82e4e438f68e2f3a237eb8d2fa7c0ecefcf623e3e922d0209990390ac28bc3ce45a04489225d895dbad25699106d71d8b5c59196902098dbe9f7642684b4c564425ab4a5beca84503a324248f5cfafec01239e982bd47fb39e7db39e4fac310cc3305e297a99902aafe5eb12411712617dceffea06f4aea620c72bccc9d75017b298e59db317ca5dbe6c9b7e8036ecb5585b6276ecb8523b4b6dff09a539cd387be10348712fac1052724e330898f1f6a8c50249c0b7731956c70957fac286614d95b79430df6b1883f21894a934294a8f342e35e94a3596f3f0d4a9c6aa3516a0f11c6e0487f3a8282c96e370ab1aa1f11c9ea3a2444b4801963674504548e844e3a9d30ed7e1d42d1dda0e4bc70e5aade4c8212b6b8995879e40250d0e8db940f7c45cc8011868c00221a1138d2bb56fa4139626aebf7c07670d10f966f992cc6b8844a74eeb96fa587d7f3e9f188f4ecf685273d9d224de02e52b549ae0e20b5180c21b5610862c9cda198cd329e2044dc0a20a4bd00114359c523a0863042b6808021a5edc706ae7349cce86418a33c4d88119a850638c53ef347bd102e534a83316e873196334d6d226cb69e5214b632d60f06f3cb4a57e54198c21a7c35dbad44e99b57c53e78c87d6a5fc1c4474eb8dfc69917d885934fe18a73e9703749380862a7e00bf493803979f5818cab0a48dd1f00344f90cdfbe7117a971a5d544b73e3ed46aa2efd0d015cf63605e5519cf0db7fcf9bca1b1178dbfca789ee57d39e69b8cbf2edbe53295d3b85cc68bb8dc47c66f342073ab6e327ec93c191adfe9bfa159a171f6d23a34fe5c0b34c6a9eff37397d6e1d328e32e3ef28dc580d1680c4697baf21077a1427831f483b34037f6e2dbd98b368d2a7be12fda64552b34dece5ddabb6e97784b0caddc4593ba9db140b794cc1af0d887e8af46f621fa8c57da34f2fe4d7e8cfedab404fb915b3e471a5fb134a6c257a023df984a15dfe90de8b7496f8b6e39674122536952bbb604fb51e52b685091d6047f1a50a048e1271d2e45ce2987e3f0cd886462f876ab6efc9715a8ac56661cd3b8cba5711a52b20b9ad45a689ca7381d9aca83a140ade83ab45d026cefa3e7d0767fd8e247c7a1ed16203ad4aa2545afb4b9a4e84e389dd196a2778fd7f1d1aadca549ed52f889d3e802f482612f4d6aeef2f3dab90b7be1343ad61ff831d6255f3c503f128ec4e9cc54ac4bec3df3dcd1260a71df847ce8b3d29e476dc580e2837f1afca121297e363b2d2c4e7bf51e6a3b648436fe69d673c6c35d16a79dabd0e55bc7739ee3971b8d630d70fd09dda8ce367d5a1688e9ddcd470863c59a242d8bc7f29d662ad01b41480f2f17235f413758e5622e74a3ef86f8ca790a54cade60162a057ad5f7f37ea34b7e6051a0b0cad336d1770eabc02bb08b0502a955a5acfbfa6110623162554644aceccfa524c72c736fb6def22ec6f85a070a1618dd4ae651b322c54f99cf6dd366b3917eb79cccd731bab380d6a14242424f9cd6675a87877c7596b0823d5ea34b8edd553706bd2a66a34d963bbfead642efa0e864beb594773ea3fb1fdf16b66d82d8fbb5b04cc3de4381caab66321b79ea241a69393fb21c918f3cf3186f309ae45022a74d85bb8b982ceb92f32ec5f016aa69190de14aceb5547e02b5a26fabe5346377ecee6d12cc84602f17a7ab95cce18c1b1b6643aadf82bebdca8258df9e45165d926db2da252635f763d04a6b2a1ad4fa8a1328acd257e6c4a2c657d0adb388a48f0e9707589776fd81ffb4fd57975891e22751199ef396369dd1a6aed224e7ce994beb886a5fa94da549ee790bdd7a280b2a60b4a74e22dfe8c7ae56a8a74e238fd149390b843ffafbf15493aee47ca45157722e3283eec9a98f5ce49be42d4d721ebd7d6334def91469236da4eda95a11f94e9fd1a41eea92f31e1a6a92db9348cbbe6091821086304548e814a3a1b018716884018b30275175576a2a599c0e0f659c000b3680a20c3a60c2c9797be17452525800061a6b50a38a2a579c9c3715a733a970021bcc08c21a5ec23839ef2b4e47c6094868c20f8020a54b104e6ea60b149cf684a57d73ada934c97919746b2a194fe54da54d4da54d3543b8a672f8effb5d45a3e8f125f3d6a2753277de5964daeb123b7ca83d933597703abca5e8d6828911daf12e892e395fc22d69931bf9b643e45b4ce69bf53daaeb4a5f44755dc9957875b0ca535cc97977dd96684834814237c5e9f01757723e7d9374ca3bff3299326de72f6ed64dd2ae8f42c152b9147ec272d58de669689a4a53712557554bb382f98c9a5665e5359ae4220b9e47e89cf7509b6074a7842dade99f50c692f637faff84226c69bf2b8369d29726b9fd8dbf1091f9fed2a62a76d4f6e19736add126303fbea9381ddeb249da54def95a3142dec04693f6f75de6f7083af0c1f316a7b327593759d58dc6bad1fcc65b3e888fdfc589db7324daa42d592e0fab15297ec23c89d6c1dc69af4bddbdc5ea1a2a9c3f876ec9727996ef7ec8748210b4f8e5e2b8ccf639e276cb65b9b47b57ae38f7e07b0f4608218c95165ac418630cc24ca0dbf3e29d4ce39dd3c269d15a5a0b18307c85af643ccc041ac45a6ef760ac640b695f876dcce52d0f7dfa8ce58bc4e95815a84bf00ada194f7479c518d46541dcb73709c65fdf25d0cd1f022d8e163a83a44dcea123d126d99ed3a6e7d01d3a741af7a049d0a5c65e68fc4593a003d13a2ca54bd06d6c6e6e7cf8000288dffca1109b108fc4e9005595a13409fa1574e3a120d6f35093e04d93e014fa1cc9590c0a210f3d8dcd02d9875ef96b138f9819d025cbe5a557d52ae1c92675ac3222aa8c01a9afaadaecd67318f4396f915c1841df3057319f8901954dda9ee9c926f583f03dc89babbfbde713b5a48bd29530e82d25a5fbea06b186d023cd4357c5e89ee9b9d6b67ef6cdf97bcd3eb0633d9d86fdf6bee1db311efa6b13f47689396d003f9744396340ea5dddfa6b86d4cc34c95577bdab4bb08f3f1df7ba277a75d907f6f7d44a63ee0d8341b705638d6767df472d107e76a0050cd13a2e242404c5c9fa754a010e22fe56818c29089db6edf25be5c4c6af7312e8269f97b3fc665b977216797110eb62b8fd0109f3f9d356cbcf3469ebcbe4e2b4afc623093a7fc3beb11df7daad05b24c82275e6322b073ef39672435cf533fe3329867974f59f93a9d1b1ee3dba6918b7cdb94c371501daea3e6d0b64938ea8cb64d92a937b46d524ca5d1d69568dd78caa86e934435ab1bc5ea2667dd68aeba51ab6e2eeb4653d558617dd539ced1ef065d6a1d29242424b4e5d4fe74b61f6ecbafce103b3bab9393b33aeeabb36ecbd2ddf23bcd50987bb345a1774e1f6de7445da2498e8b4053344e874fce277cfe846efbe59d37599ddd2516c87be7f0ca0231c0bb65c33b7ee29df314ef7c42ec69ef3be3814b9ae41c117e58936892a3a1afba28b425cbb353eaae3489bbe02a4d621fa288d3a171257649290d8d3367013db23b76fefc55f67d1aa753c495d829531a9a7f7b7229a1130d33f310aec4b0ebcc566cb5609ce56d61eecdc643ae779bf0ed9bf5ebbc3a3c5b6a77d14fa6cc5ef0175cb9075cb807df4e01245cb870e14265e32a7c65e32ebe37d6e2db2bad0b2adfb1cab7b3161fd62bdf48b870e1c2053e05b870ecd765eecd06bb382e4d6a88468567c033be7dc70dd12e29dd7688ee10dd2167a1af614f3df33fa1bf3b06588213a8f0b30ebb5d36753a43b8523ba5a14eb3f96ff4db37d26f543ea47152ce07a525a8e42a95d4b1540d928e29433334a3092001031540303020180e87c3014dd6f41e14800e90ac4c583a1786834914c4300a32c6184380210000621001313a4e02ae6a5796a88645c8e1c1062421dd621917ad177ae3437826b7353e20ee4f17f6de84f349a3ab6e4317c767ec0833bc2c0e9db270bc8824b61a14de6240448cff32cbad1493adfa35c9a10d851c4b6c4bba45f6da3f13cc0fa64915e47e8ca2db4b025d9156ad67e768c8dc98860fb86618e6bca550f238726dbb1908572284af9a8785a8c96caf2a6e8312ef75f0896aa936972bc3d906a5e8ffbd4db06fc8162dfaaf4ea3b12a3d4f0af35f66261453b4b903c1cdcfe3b2a1f278cdaf412320ef3bfd58380ede8a089ef176bca149cef8a63af1c96c3be4ad64c084def62ac81f994a400227576467aaf1ef0be2ceae4086394c478c9642649a2352654484bdebfb47e71a5327232d8591b2693d91c28bb82fa8d713e9cbec699d70b11682212fad251dd8f514fe7c769a4b5ef8b9649c815c0b4089b0cbfb5f1140d1f64eaab603465bd12c3d76b0780cec349799a1cb3739fb1d61aacef293663bd12ed8e0d37d885bde9f398b9ab019e40a68f63e2a50448f88b6a2bb32edb391a4ad897ae3d18cfaee8128ba993137c765dabd32d6efcf1506b9a871b08a4b62dbad0759e17d3bbc84b8e48bd5f60e502cb723fa8c5864cd70074be5f4387b75bc817fedc574ebd1c6776c1641776bf616df5e9bef8eb5d103698be84bd290ba618c20a8bf0d936479695df76c5e469a59d92cffe8df8a0ec2df608a343903c41adf9baef775867d1decfc35efd181a7df38b4566cdeb62e6d2372078f55dd8610a438d3a82056ea25f8cb89b02a575889a017f9afca1cffd98a37ee042d8962c98de6dd49ae94430ff798bf83570e134d87a23c2a41f9282c4b440acf221cafaee8e7aa34d145311033ba4a906107c95ad35c80d69a147d5f6b0ac26fad096bed5a132458586be273beef18b363f13241722536c9da4d3e5859203939098e6644dd505f6bf55a5ac3e1dbf1bf32b43dfe09cc90133cf21151e8cc6f634186d45ae86ab7d612e8fa79440b3df4dfa4ad0cfa046bb437222b94f447d691abac8869d36cd763d4da17b3e22099a2710859c7f1b6a3bdee718dc718b888ae0726f17ba68eef5127ee50183879e211619021f96497f31e7d6d82207be69d7d11d64de148a72309612149c84b07e48fa5b80f1f187442c6cb36002adea56588a383938638ba598dd4fb47e26be0167eba085996a5ef2ded9e9a5bf78fb77d5a2cad4013d8b37fa575e55221df1f36fc9d14fe822939afed4ae50f1911c3ec7edacaa52a61cbfbdf3e51d5247e988305f03003cb8685af7d4db9f8fb74c453e51e93b155a9862227ec35865cfe8ed83595c40d4cac9cd4cd212f6082d738e74e6673c81ba4d2e7a6d2b85e3923e59d8381b208285a0e420448376c8e901a3c6d5c9905ea5fd4184acc24cba426f853d80196e819a5a843e04f5dae84facabee27c915566a522cb1cc33361351b560f0a7aa310d0ab553940eb2f72830e3d5de92af60010480e32b8d3b0c4ff1819fc12041fc8fad857aabf19add0a4323336b68b27c03e467b0a70ca8cc3b2ff350f138b731778bb31eb67a98fb81d8e74e90ce41c6b4085622fc086edd14e190a4d8356e8861def3699497471d8d721b58e89c8c45f319fbdbfe2a62fc622a02e7a8ce68818759ccc3038f9c4cf1c7a76f464e5e875853ace5aad2b3a03542d76dcb848cde2d294e449731b4d0b64157602f22238b64488e3c5168cc6f426231dc9e2d632bda66f66e6a797251c9d9d60f0ffea82d75db566654e1e169bdaa5998f0d0b888bbf088399d0917baeda588e106804a494fca30cefee788a9c9d042796f9ee4e066de42095fc94f49f62d32758112ffe5ce5d9a4abc167a96c130c09f9253474f7506a01c2eb480e934ae911191e40405a413af949b3b662ccb8b6f4e578e2c332103898826b44583f42d037e4503703e0035d968393bfea68ebe7a3dda7d9fa8ffaa1a9b39ae0852d93c13f58a9c75842716372c2aeb54522d7450a62502e6e7d7aa9f5b6f1dfeb9ecc55c38524653af24c1b8643bb9db272bd0f5905049973b052717cc3114968cdab99f1f682b5b07738f07749bcf9f76a65179a28216fe086e414818dd4db0c5a9c8da4de6aa42c06aede54a938bfb0a0217ec59276becc5d53d516c5c1c82607e67f1a3091b53e20eed7b7632d50abdf2a81d3cb931a0f0b9194f543921dd3f2142fca1cf9119cc45a661704654e9f25569b525f0f65a7467c3f35dae50c576839052d08c3313095340977a107f494c0345e9951c498e4adbbedcff51aeea947ae9698988b78f1ae4c1729144cb8c9d26c2b064fed359a9a0efb4ee2f42dcc430759fdd5769a0df79d167292ca1384bcfc005f563245da1ff289bdb98e8a8f63e314e0e885e6ab4afc0cc43fed0a4216c307eb5543c6d94703f4b14eab074e1a298443f31067d79bc0ea37fc47dc0f15267d13fea20554b4b02131ea5768248f4ffeaa63a6de8f9a6699320d6c69c35336abd94f88cf284321e3b3d55aeb8fa1fed7a36d4f71a6fd43c1347e7f62a18e131881e2d48c0f1a1aed124b34fcb424b05b3092459bc83981c9d991375f8592a63ac5a3bd9bc8abc36cbdfa38b320f8e1fc801e555241a680806d907bf7068e2a9e58054513ca0ea16b8440d1a12226934e3b5f7fd9895e83bd906dcf0839cbc5762a02b4b4a40b146e55790e5476d8620e7faeea25f52748271429e501bf97622d31711da66a768d6e0ae326430aed1a7bfe9db474c8502e74157e587cecd4adb5f2d84efcb15e970181db89e1745ecc44503dc1f4d8ce732b87a756f9d108b7f98cdb4504b6a6713ea5ca7bfe48fd963cfccaccf316f8f3ae846d4e2ebde3016cc10e8ac74568b36b9543705f8b12e1f05f998a8bb149b0df9f7998f8321abcd6b40926ce71ed64cd661fc721a508927b06af721d0bc1308c6a6dfba81bb49cb1dce532c69190a222695122f7ad66c049bba54c6f7ff62d5d01c26717a0586958f65b284ec88555fc0e2c9b42b47bc97a4c31592b387dc7ff90c515624324fed6a8c1abe9fc5a5a086a64771c25b258d0d042c1d2d303eb24d8fedc3e6674774ece3bd635f7cba9730a5644fbe9d83f3c2c61e9799d5c8f242965a0b204445af490254ccf560e078598bebb3f9a584303a2e24c2e291d079b1603613b550d7d67b23c460072a1a73637f82078325670bcd7fc1c3fd6183e58e3557427a45120ca9a6b603d811dcea4abfb99b4c3bfee66bcd799873b0408ae0435e83595077ee4de57b1c6cb8abb50081938c26e49a843d1808dc649a8f136477ab7d795ada3f1564048a634fa68ad7ad2a340802abd9e42d57246d75ba33e90ee5eaf65062f3dedac50311a0e62fdfd9816a7c27990cf96ad157dbbe310d390f2ab3ed15bb17ad4b2bdca96de1700298765ce776a6ed8e06bd48da2333176c45b97d694fa8ad866f8315c7d4a1238ca6338358c767f9b686e171b8ac38b1d9a8e1444edd1e9b75458f8d2f66e012eb09a3a8340da90124305d91c3a64a0c4de17e0e5c7bac317b1c8e1a6434821c3fb63191d3317ab7299761c750fce51448b47c9865441db5bd73d6f21adfb761c1fb9e12d62cd401b37d748258b3baeac3f8ea8f833d850e1a3956de33c617b7ab4abd6f41c863f8125597d57b38dda9e5260e6960979c1cdfdbce30db8b9b86573b79adfccbe23ed89482ba5595b3f784b490e65c6072f5d1da3e6e1f3f4b21624e45cfb3f42e69d9816e19c204cb9dde29e7de821b6cc71a53ad47b292953a941267aeb5b02b5b158920ee2c83028e87618c0306f29c534309da3e0b759cd6c289dc35b204c60b38730281d15f4ac25eb5f8ebe26db566f85815cb34d88d9af1b768235306de1ed690b91203930c59ba60517fd0fdd05bb70cf65fbbc1e55fce37fa17a03b8fc2e04f9c53e012dc96cd326a4df53558d4bcaa0b9a7b20283830552d397611c9c32e66726e70c44fc6a3817ffdd70a7404116ad6e3ebe54063332f1b328bfdf5ca262c9d5969aa3ef6ba746ca0636df0431fec28627539495ed0afb1c86ef62d50c4d6a6d84c9ff4438f61a048a617b4c8a78c61ce8d353d884d624a4084ad4c10e6dccf9ecf67fc61ccce4f9ae2a9f5225ea69d796abe5a3d4965368fa41a70b0f683c73f46df5c27e66003195e4f72d68001c56c2088b9b6886832dad8da180d97839dfc10dd3325374a131599d58e5f4837b25a37efba00053f3db4e5b1b3c6ab8f18bbc7244b50ab81ef2ee2ff6a2eb0571fe32ba7a8f0644683c68496f0dca944c420d6247729ce6876916930fd121a08a66868259674164cf4a3e9e853b1d7e545297f0247cfbfa1d5c7a30380453710852e33e5bc6898edc2342f2a0848cc37d84c045f60632380441fc07627dc9c240c7fc089a26f2c8373603414a3f3bdaca83b25378cd28addf62c0079182255188acfc33b51172e23f137837680174f88e5f81e3aa671181bcea6461dd6ec2535761f6d0b19585050621a95ebbac438c5098f3a8d8d6f8cf1cdad878e509d43bc6efda486fb295916317c4b72388cf1117dc1653c8d5cd649cb3d37e2f00c845e271ae79a50eda88d188ae1467d22fe7b2239b2f1efc9b8e00a4037f2106e4bbd6c7b9e7ee3ef9ae0835ac59b1e931ef2b0ba8e6c4777aed6711b4acc0cf33789c85eb9954df6e91d0c3868ff51635542e68c811b36adda365439508b39652756abd6b6e611842809ea547ff5e58974950a0619da562c9dab0021a50b33cab1ba3e1106dceaa3119e6b18914df9c6d4d27e31513398cca3933428867d276990c663fc7e66c19ec8ba7b707d6654eda07fc695703010081c9d8502539d24b9a3d5d2c9deaabcd7691635d560334a75223b9c13011d28cacda1f385c600f54075f41185464cdc528be4c0026d64ead6696ec4f10019a5acb10a5a909368057d8318eec6b04f8d8483b18e11a0eaae15993019ee77734712c30824cc53818a6b79c217793fe07fd81a499bbe961e7995c149d3739a11a423b4b3fd8bb612483a10890e7b2afcb9c97da6490ce32bd0c8229afa75b730d0af1b22e42f84166821f083d498d1c6abba98c8b7c5a8161b8ee1978680baeb03c92f136b9112d4b86d840c7986ca8888070a482e51d76b85711da0ceaa1bad9f3e710cb7e7a2ad3edf98856045d873982f78b239cb0ee3b8f585e8fe14cb06abdc19ee7d7bfb3d7f18db3a5d2b291dcc9985dee7f098b14d581ecc76df11edbe4828ba8c416223efeb29a5529c4fbb0ec391ccb55b4c7e03851292c10e07a206e1b9209e04287f13a9dfd27f85094cc0e7a4a94f7b46fb67563653a0e0d441f89c720cf364a5df6047dc10344dfea2d564a0b1fe9087051ce7fc0e99029b68c8a6abcfb083f38194e69c64e1e93add4971589df57667f00bffc325758acd6b46b148de89c50ae49b1d4567d6895695f18683969f45a93b4fdb50d32946f1f3c84b0ce9935b3ce747ce17b8910c3b17aab2ce4a95f6f4ad512ca8d8fefd83cd7e0a307653848198011e344055f20769afcadd0ede830939b6cfc03f4c44ebffc41d2b77875d110b849bb6b571d8180f284e0c3e010361dab9e6e73e9ac87c8cd60a53a4f96523c77bb85b91f8ac6f4a467cb8cd4acff7409e6151a11222d80732aac26f696c06ff02c6f96f3f76d6fc2f534ece471d0be4aa8ff44a2b8943feb26c847446ef24a494dcff1842e3cf22fbdcb4ab5c14493e99ae1085309f153ffbee96e958d55f0cf43061a30883098c32b8f8460224c7154400f47ef358a6efa82eeebb0e75c7c614031d60c30b00065af4bac70d67b4277082794e64400850823edb11b86d55e58a4ec17d8c427dac46b9aac1bba6c9fa0ef3ebef6498f5ed9787a6fc92c565e32ee0e909ded8de5042e3aad9cf5a136cf92dc22f96fd228002bb7c441250942a443247e9a908ef983b349ec8a7173034a0b928f31b99fa35387a9da799943cabbd70b116089157ed567bb32b0a47bf1ee7768d518c3c543eb83b7c58b04cd41a07293208f5789a808d6e97dcddc215c9d4bbc67fcb6c1ea6c5ef39a4b557ba17bbc7d1dc810500866a1a8ec7b0e5702122fff1edf54eedd2a8475ebef58c06225150d17c1035eeb933879c275a558a9239e5a12d36a1be504dfa90a69ce7297370584da0461ecfb423b9f8b8afca349743940cbe4ade77763d60dc16ea780bb1e2c9ebc037d4e0ad960186815616a299396fcda662f131a7f6b0d52ed58f9e2161a453e77dbc5685e3ef4ba663bc2c7fd7140f5f0abcefa83729e2db5ac43f18148d543c8ae41927dbdf6b19b5c0ec94793914f9d83e84c0a2df47f42c2e974a8b097da8cfe211e4cd4d103c7bc698641636f55d5989b812e80f2766452552fb3d40649a8e26f1ed5d674df78ac9f8bc17f47062eb2fbc9de199e1c8a5b45b1e88d4599e006f1b4a2b6b60e84ad711cc50da3b51ade1778eb89a1c0aaf845df354394716122cd6c43ab19920b2daea4973bbae93d3054faf77c4a7515e2dca3e6141c3b686c5a12cddad160cacf6029259b7a81c8a5703829ceb0d81579f7556d54bbb8bb834466dc345db045a80db010b9b6b5e0a35bdb790dc81b68c8535c19a1bf090275276ea5e6402c69c2067726f435403204885a1a6672d4ffb2c8e2deffa68f12c23d7606cb69a7a022dcbd1b7fb23fe2fdb899c5b7d919efd69f25c7d1c947266bb25caca6e85e8a275ad4d2e014f9a5e11aca3768c83d7ce7fac6bd76b913ef065574000aa8c90b94d3b1960a4966cf4909718610833f3d0460216bf2395b7b5bcbc2b5be8bbb0de60076ea601426f403eaa02eef3f2f636b60499e17afbd0c53ee5ae2d4ee770707f898b041a0d6a0acba5265b7d46713a4d27cfb2e031bfc326cbe71bedeac65ed333c6e1efe626df78fe277ebd0b1f8d8d444ed3432849cb2babf5fc5d5c6c7fa0b89b4252a9bceca06ae168880904525c7f77955d6cbc1c99355545dca5f9003d4c1b0e1b4acf80d5cc27da53cd003dc2677fd15fc252d09a57f14674d1da74e253a92e97254617c8b7a8f2a9902d9c4ae47427c5d2e7f5016601e6d6bf2e15fed54993a60343c98e1557571c83f86d0067916b517b463e380b49ee2e7a09dad39f10a0bcfb7511ffa37f5474c701dfbc7f1fdef9e1ff76bd4680b3fcad5b77adaa6c4ad510a0976a6a7acc1bdb256e4087d0ed836be9f1af8ef4a3980cddceb9ec25c36480aacc4fda6992fd9d7d8af22dc931d32d6b324e2d30b90c53026d21d97d692ef91fcad644527ec21b91f7e2c0c1b1f29c52aa23393ab3eec0974a9f9514d9ce12a47a5ab4b9db0d15cbd10d4e1e9816d4c7369904b6a82697e41d9d48858bd8fd169e129b396f1bb083308347a691fe631354525639d3ad64a2286d6cdd4d40f27265071ebf878df0652f4893a54d6e2b4ccdd88d1f738bd4302453cd51929210d567547e04fbac9ac02da83dacda97895e3ceb57089a4a66136010d9bc8435ef829c5a9760cd540f3dafc3e103faf16c5c8fef58fc65a8ce2001757c05c6d98477b48f73e905c1c84034d3c588d334870ed217db951f186d3736c8da81f0e0a8e0e334736ab918445a1e8688c377c9b46b6d931c7ee166a23291d72a19aa5a227006645d76e8542e9a474d6572623c235f5541aecae896868738c201dfa883ba6fb94b97895b2df097e66bebbbab050a8d509963158abc17c25296e4bc7932a28c890e40365a8f84bc4c93a263b20fe0cd04608aeec49354ed6601c3348aecca052bc323d825522ce124037fc32fa402a11d80dcfc931711d96997b4ce9e6b220732163fcfb6f6ca57cf67350b06e70a8026d6142d6110b9a5006b10861216f4b15e2caede167540309ae8eb5e68fc3d2dac718f694fd299c294462beda21f83042774f7ad55fcf4ff26098682ecb51f950bd15d16bd90ff1f9db214a36c7ccb2b1c7c57bf3fe7f6d52fe509764b7eb7c770bf9e46f5bcd179da693bd0b84484d5df34a85321b467f22f32cd0f4ff4c9d28c4d300bdb18e17878125f2a1d9963a58aab9169744a1123b14b633a57f4dcd083fa92f87ec47c1556821b23db6da2878dcdef9d6abf9346825014182c98fbf957ae787727f15e34a42d59f7cdf40b31cc135f3155aab0dd435205e11e2e4314afb67ee873ad0da82e604b88908c6f570d1de018bc6e0ae639a08361d351408c6e001379f649aeb212595872784176c53ba49de501c0859e82fa1c585434c3e18e065488a72591ad07d16d801a7454583dafbaf30534cd9eec56da85b168507c44e45a68f576982cad823eb4bd01d7121bd1b2e937d2eb9ab33726d2908a5eaf8c950dbc990345e6a7dd2ed9e9dea6528f9d9e9322db9297c7e4becb989771a138742c476e58f992bac8a041e2cb0861b742341b4e446fb81863738c08ab8fe8bbe86b4df4934f075bec4b9bf115219887ce2b917c49eb3b7a2c2bfa654d22252e0a771945ccc3fa6943dd2f29c16b845b3f91aaa54148f4faf169745e8fdab530221dfa5bb07eb564e614b5308c610a8141a77e4a0b8d9aec6ef9e9c4a7901d13793114a7ce175f46e570759474edcb5421c17870008db2f2cd36d7b80d5a145cd122c0b11413540e7fdb565aea8ca1df6fcc05abd34429a5da4b8e05e805aee67d82185f5f7a6f319d9b06faf005fe237ad50549ff964ff0e12f56433bcc7ee50d01c0923a56aa2fbc7fbc3debbcdae4d141bd26fb195556e610d9a84178cd731b76ac409590ab9567ef846a409cc29964225a08a7129618ff5f0c883e006e844a26b3e507da61ff14c4eebd89e444d9ab902761c23756c3f0642e15083be6880fab75c5e6434e84b8aa0b0388eb9fcd6931818b9a1bb59e3c4d065a838ec452e04db193ca8b91b2200e62680cc9111b61b9a0bab71b6e8b4c246cf24635fa6f4b07055b2472715db1617d5b9edb30c7c88337faab8f285aed1945bab7c4141c866a5dc19af4988211977e473271abb76c8cfdf5548580ed0d8cc89add8fd60f7b82ff152f76b021247cf3ed2cd8ac222f1ace8b6d80257adb76bfee3d8ec5eef29e09330dc1e0c70ad773fe3ce4a30fa5ca4c0577e00a7a0518c2110d623f132125e331bc009319b3fcf5554c84844b85a783ec4c188983dbd07bd5b1e947d0c04fccf3e7f715897b97b2aedc04830a1c139209f2b440ffed98fee8cfe2f82d76a03a4ff2f4c35714d9d56ed0d2d38d34f04647470f53bebcbaa2a2a4c869ccd6fad3e01692beb3c8d8456192f6fdc73898aa162917d6b3d291ebec5b31663235249b10d4af5bd983ca9132475e1f1408bff35e6e5437cd970508a46409a64785ad638d0ef0162c563e8663451669323e58c47b0a9931e8029c1a7bb93de5d0071964cadcd923939094348c10f771a86bc576102a4807b7f76ec8f807bac7678ce186dea8091164725821a461a53e7da551f085e4c549b20df06033ab54ecd1dc1661be3c892412bbf51f27a850238892c149ab3f5adfa073e5b4deae522359a805e39370aa8de44495b58272ebd4cc206fc633f27d683043ae1d541c0250a6c7b9a589a4ec30e5c02c06070dc480014c94b40b443d7f5301fb09c05cb83f7142a014430ae7115a1a82eb6f0ba389a58aedde92309ab91ed629f1bc25e47a96a709130a766729a7faa49c31a3a7329429b6121c199498ca3211aecd55954a5c4ce5af27a624dbabf4b227be6cb60260b0c926ea9bd0a0243c230994054ede927ee562525870536fe1671598af0f0eae924b795a3dfaeef2805dc92d38e16d74e17475038d7a123411263b0928fd3dae6b6120226e1392036d8eb5f849f8de017a60ff72cd75b4d792536b921d1d8afe7e0e2e9c5e7af84b7d19dbfbe3dbdbeee1bc6e4b1faa54d35810eea3366515aeafacce3f4f1e48034c74804389c38fd3f442f727e03fb18142e5176b6f6270502752d229584e5d20083ce854508d62b99f1f0aba3d684b7135031ec1c9084b1bfb2f910f9210eaf3ef6d26bd608c705846002ff65fc3ece5262d3d6242950b12b0dc73804b08c2ca67e03b485a99ad325d11c39f5c915de2aa2c209bfbfd59518d329b1ed645452c9412a770551de1aaedadee99b8375d695eaca34e1c33180cd1305bc73feb81bf089236e61c55250951a821653efcec6e37b2f13e2b53a4277d3b13f116c76cd52227a08ce4006541d432b4f9ca0715d9581f50f243288a415add50cb2c59198deb0d9b8e83e178dff50d1e0e79a2236ab8286cd08cd47838e7179db0f582040a861ba89239b47c820d45399a4ea12827eddc61b42f5bb34ced97708f5c5a3d7cfaf683eeb37d9775758133eb045edc6ee849114b5353e93f8b21ebfeaa4a8f35f8da25b266a086c41ef8c2faf923f8b71886ad5ef56234c3bb2fe20ed170b707ab9e042e7a310d43222531182ea865c76b2e1fc3545675012d1011a187971802851ab4f630f48825532733ae19ad9282b4f57db7b6b3c2cba9b416bd990643ced4b4c72c16a7379955df715566dd60f79cd22fb4d377d3711a82dbf9f9a835644fe07e074a9101463389e48ac40c970bf3ce83e6e5c61bb78b118cfe26bd471c50e7cad8ecb262780a048a656edbbd0d81640ec572ff1aefd645ba8a808d332ac646fe527a9f9e71e7a6f1c49a2d3d301ddab452b5bb206c9b091cf5675f9b4f570c725448caccbdec84d8463b0b643d6122971a3d2e3e9bd04659466a32038f48a8e0a4fb06b629410910713061c30a127ef7dc82b7f7fee2eb56ea3d245fe9cb606141798e4621550ea47ea781b5a1017c786b1fcc69b0b6351f710e6ff06e9676aa6f852a90f22d962736167b202b00e89a436719c3a9ca58d534cd5293a15f005fabaa4d2192d0c4698a9aaba69a7b7d6256d90d772c2eaeb406506907ead2c3fcb43486e2d1776003da455f5a5e1f7acd310ce4fb7491d4e88676bf3db83737c818bd34f811eefff168fb717a14f5ccfc9a48c3eecfa4ae115fae19a7a371b6c05e2a47794e2fbbb5e6920d40653f7839fb25e0089a9935a2d6f63a8a9ec57a967ab6a95304d9db2b40a317e9fe368c20d5326c3b2c5bce789876dea874182c676bee7b9452c547592bbb7debfe09836b66a88155970367c5f65b0e2449e211c233d5a1886b899b48f38ca4e7519238ac7f9a89adc7420263291ea069d7e054722a002eb937a63fd0d2cbfea7160dbf0cd0c052c2a363e1da2f612ef7fb5a6406fd9c03d43d72b437ba754588262fa77b2f8b7efebafe79e2093776cf6af6044a20518844d3cc27a79358488369e22f60ed04c7eef7d4390d57e4faee8f926d2da3c90ce8c4f43ce8ed85eaee72d21ac4d206d5ff05b0358f4e511291e8ed3b01a95475c84a2096a6e0c7b90a747e0525e220c20fc337d696c1a9c20864ba364cb811938a71862e2eee3536e43830ddb30f3d7411a459ffa9a599f61a3112f1d023fd0a9310f1dd060fa98143d31c326ed27c1631b4affb37f9c26313ed02e3133246fcc0ebf4004b237b592b22a9aa193567dca9818fb75dc8e665faa1e8fb07718c741317f0d264425bf97e3e4f7ecfff0820f19807a6a266c720515a87c88da56dfdfdc112818fa795113dd9f2da5c655db93caed1a2897a8e1daae84ffe242800c2f20779915f978d75e2590f95d229d56855349fb93cecc2937e77f86c615615fa61b32b659a686b806b9251339ab712c3c2f0e4bfcc075b0eb64635634da2e8a9c7ae5cf2d465c9fdd29ce0d1c2ff01483c3fb2a0f70c943f7ad1c2c05ddf0e5ad786660c57d393dfd81592bc79f18367d7f1dc60a2079fae5493d98241d7963d460b93f93693d1929a105f046087b565dc500fe4311173f35f01c1eb64f3218c05a31abd7f0e737b97e4ec35bfe3cbeb5ba29ca10011a8fc0fa466bed9d9cbc30e93e71a52e6cd177743b7b07b13790b0735866f11a1e256a47db9cc5a84e0d7e62148622a0734fb8846a0f18b5988b5283ee13f42a5731f9ce03f559d9b24f35bd1ea851e6fd3f48238fc3cfbd9505601f3d9e53b540aabb65cdf0e4ba6d844280f670258c16f213092be7e447d96c592226f4f800c4b85bbef01fd0a90fd44aea8d3cf67895c4659234110e1f4cf832ebad1616c5f9a3d3ee6ddafaf70870498fb4eb539aa2fc523cc6390b1ff73af37e6b42344c5121450d7d1ccd390333f40bdd92be2dab3abc148fcdefd7f87d16b4f0081b1e4fe29e494faa70af7c51a663aedb27a3aa6fa86fb5cfc95e6f19fba4421c86fba2a25441a9e257a1ae6ff3a4794d4d342a57d0cf1f7ba8d3468d4c121371e017d53dc65e5350ad2e808a0e853bb9f0146fb2928ec25d109dd831ffdf2fc19fd382c1fb49c6258055918f504c62c86ca87d3041239136332dc5fb0aabf796f829ce8e51d4a615c134a0b8b0b6fc4990b4ffd29f6946260a901e220433c6825ad6daffb816f58acf22c60565f66147fe98819383692e7ec4ccc7790820a27ad0d0790a0c0932f287d1a83451f9dd010cc9eebfe303a764b1d6344c932db967c47acbf2d7766d0bff0e9d092d5041b31d3a7cfaa00c369e2bed7ea2162992614c792decd0026cef72adc2cb8ca9406429854ad920b7e2520356a28d12616d5ae33d9c38aa4c452194b36d3ff3e3f1bf42a9d9763aa88f02026f4a4ff57f5be4183cf6b10c81aee8ad5fa12df2263ea86d218d1ccf7008a399260c094e3e698ef7ea8777242a01b942d6c8601834c287f40e90ea552cfbac350b2d5ba0dd22467ecc4e722a2e7bcc6b666ed46224b9f861749b2e7b51416629b67eb3b54ba8f3411ef08b7c9ad8c9180dad11c5e5ab9bb2cbb1a8610986171dd7d6410d3f87a1f4c4057d6c6fb7d47bf06f63eceee0b729315235dfec8fb5e70fb6f9994cdeaa4ca8d5231c8369a232ae2aec25bbc32108bc84b3d3fde1df1cd8d264c59e0ded24dbfb31c5355ef950184739869fad205fc82336d91994230c5e800121785089299088a47b0867fc236d0219395839bf5281f023c2681258a9e581cf04bbd9e63415627ba13621f88ffe8bbeb5bcfda3ea75b79887ad0b4014fb788e2bba0e8a3c3ebfd4129c3988afb19d5403600e7e39b4d52f0638a9dcc49b583413a9491f6c583bf5d2b983d3f574f8b8323be6ba38806dd3d29e27f1f0a10380fbd06744b41618d5062a71f3c78c3706d838a2e0f7a27c4d84af2c144476f69f12e2e86bdb5cb1af7648884330b64b5f87ae4515ccf87dcf6ccde2815c5a3edd9ad73e06345d42c5c0b46a638761657ab8665f51c3f1750afccc33772c3a4fb6cebb9102b39f491df15deba7a1be91e744bfd7164acbf1f641fd7bd3cda27897bb41a83efa2b9ae501f60b5edf90d29852fdb61abccbfde82e294e047c765063cc51caee1a56d9a284ae100376c92f347f744dc92d079de01d29ff4e039882aa3a790bdf35b8c2eea4b48243ad58b93e8d0ffd47d078bc889047274a8d05182901160573a7ebb825d6dcf91d21b52f0798658ac8240111cef75868102394fd662c5475be7e15510f556c47c71ca3bedb531494351ce0d83f92f5260855dc892a766180805a38c0d5bb12a0e7ead6b5aa5d921652d7673f6c67bd1f9d975cca97407bc978d4baca50a952fd7c20d0c3384148c4222da578a23c6c7c61fbaee3fc193f0d4b071b636558aec419bd72d7598b20abffdb61981e4216f0e72ddbf52cb0ee6a56aeb3db92582b225156770f51ce59dba34c8a39534e0151a6fcc4721a416d24829a99e5fd37c0c598cf7a78a29d920a7cd8306b5ae331fe2818be446e3d7a51e871d1f2a56256ce39ab2357bcb27de70aa6fb391560999318b95641ee95ab7d3759e619147094894b14756d37c84fb9e300bec4c601444901a5cbbb5fc3c214efad7eca0df993fe862d64689ac249eb445ca21b3f9b1432d3eadd52411da0650e2cb508103c115cda884f6ce29c95eda1b0187a328c3254d7d0391aeb1610c2f51fa6dc12e70daefe3052f4cfa7f55318897632de1895ee03d83f59eab10cef6bfd338e17fff070470438409e4c021cb22b9946e49143eb259fd19578862f75195eea33b89267f42567a608ca9a891d7da520c89cc685c90e777b2cabdcb6cbba2be33187ce4b3eb32b7b065fe232bdc467b872cfe04b2eb3977c6657e2191ea5eb1d8e5f0d25be1775b8a7a052c0c79b72e0185ec6fc3f6a10e6914a1b6e0de2ad1b266ce4f6cd6cda3645b6f33d21786733434ddeb90ec654229346c5858f0fc928a2f8738370fa995570bb85885f7d92676284336702e1e63e4241454a2f4681b4087d9211a32e3cb6b08a8154793c623b96ff2c8072188087151f58958ccc319a0cd92fe969bde63d6bffb26c956d911db8e60ab5179850cec60cd9ba644172dfe51ae924d3078f0a149fe94569d874a161dbc69ebcaaf02b1b85c8a4cec59192e01392d29db6aab2c951d314d0e9a53856e49357842e216ff00b786025cad953be24d456a35658f24cff3b046651bfb595ed0eda6b8f630ef20b68abcb1e54a55f63ee65751b16234ef031d059e67d06e8e4c875db8bb942840a3c7704ba2523c136ac4ce0c3090f796f872c65bb0d1d2cf9fe73ef6a1a0a40db742b5c8b3b8771c0465125086b43b06aefa158a0f846348803716064ff24047666a831cc2981058cd08f548392d382fc74e619a2a645b348080345a2e1e0b0a8bcac405c55a7e313faa9bc26dd5f279d577569ea4bfe71678b144bc5dc7bcb70487aa33e5d3c0b3abcd994d2db5506427e0b5258003fa761957787d1fc4b75a5c1512eb6cce436aa0b1d975f31393834aa82620f335663bb89b5c0a3ac234809ed49fc93d05143d5ce463ee1a6b554642c20088dd101f6f9779f805516bdc02f4f4183b05f1525c039ec47ab11704123e95e7440da037f20e5d079e34c910934ce08d50c6d75af66c25972804b95e4badc21a52ea6b1cf8950d0272134cd791887b2f35ce995881e650e76500a76196fb5b11fca2d805cf758a8250f6f6a6cea7c17dc1f325c9bfecd55ed41dd5326d40aba3977c005ac43c9a9220e10cfe210cfca5b67c8f87d2d03d7ad23a11531f9ea410d6294a84a077613f5be5704662af7edd293564d1b084de8438c607709a0d24f4d6c91890d5880c3a559aa032d752c06330d88a9809a97146483c101e54ac7f706bc1e382db1da813f0f9c428efaa294f72cfb90f5ec8466c160e11f38e38387f8a6b6901d039069882cd3a0ad88bd9ed5ece1f407871b9a3e54dd5adb7d0912a9fc47f86664850eb4af1381f5951a387b52f5fc1e686fa896402a5eada48c9aa11c48db663574626402c43416128da5532c90ac501ce0e365c51d78631328894252993dfe5218abd4280146e80f7a9865322dd92bcd6e3cdc19ac7766233cc7c7fd518eb91b5a531240f0c2a796415c9cc0ed288ada4a3ee8f537f744c1b9dabdc1aa751296fad304fd750bc4f4a03a53797226e8654e6ed28b05f9062137b1cc817a5613901f1dd70e5ae9b9665990623d6c47afe0565a1ebb80e214140c832c2e89eda9658a2e2783ef4f06020b7c742d21a45fd2d39726ffca8d4fc5b1621264a1b7f18cf6908e22ee79bd878b965e0647599548e6fe64b94e298e7f9f24c8144941dd42070ab1f5f92cc4cb9090824adf868fd549759e1fff516b1e17baf683b82be583f831e2b5370dba24b757992e36f3dd64452f6cd5f8f7adf1b17246a6a9d24c7e8790509e1f0509d939606c3e4f7c82fe4cb3d0fc1174f93a38b8edf28e3561708598bde8b502995a37aa7cdc6348992fa1a06a18cef8b94895b1ac2583de216c699ac581338d612bd0ccd9777120e554e411ded7ac70ee90f46bace0ebe8655285d1cd89c60a146321eb26015ce9a9484d96474d8ff6264f68d48f8dde22c1871d37bb7f2230747e06bdae0440cd5089ee2ee8f66e921a541f1bd2f91d2a463bda794362767945aa3b01b5c38d1ee256de90c9f4d47c78ecb5f093eea7653ac52e92a7a49488996c247bb4414ce4f374c2492770cd50143058a1a8899382e32b26d17c4ba8b241168973df5985ccfb531dda9fc215499da9b3219a08359fe4258130016530c807e0dde51046c42bacad837ef8ba0f2814a2b36f8860bb8110cddc53441b7c900d080d9f23ee46d028079001a70b75871b5f53a8d9a297b5aaabadf47d99d6e95f0d5e2a9720fc507ed72bfd55b564cd5d33b05834717220790e6649407a98822f486d4686f4b4f4608af05fc8de0ff99c89216aaf031841cf0cfb00cf247eec27ea51c4318eb96630df1fc1e6680e9c4c772a6fa2285986f323a5952e1fb52b171912e596b29ad110da7a2d02c65225395054c0337ccd84cf609936b8b4ceb0477599093152ab116877386d30036879f5df306d64f8dfdd5ed49a68a2517eedf8ec36318566343fa3dcb99fd840fd668317c3113fb228eebb7e073329dcee2e16a03b1451b2d172e3aa15169f53068bf49be1976ea2daa25306b640f8dc43e282f40f0e156f9aea2f3b0eeaae3cd85fdb86a706269b874404ebbb35ba80b43f50251768094452a5c47aa732387a02f9b3b890e79057a8451eba3b1c2f560fe1ae06ad13e3afd4b086fa50bc0620fd8c4d84fc8d05fe944004f53a110931c4853ccc8f36b447b987cbc67d4cab5d8d83406c3dc9b66383f235fffbf8ae3b5e03499818c66410f17ed1d758d4a6989c215e8458072385516d0493fae8c37850429929c8ae1276e1be42c6e9b5b73c4575e311f4709461b1ab29d5a4ae024c125c1ecc6e16f06aab09a11075dfe5eb8eb797419104dde88a3c92f7e906ae267785b8950d94c382fda3313088901b75f52c7e161e0baefe5204e53334a6272aa04713ed9d04575a2b2d6588afacf6c3193accb9aa59bcd1d08c6f9b340854377ecd4dbd97fd106b7d66cc19f8720dc25da2828f440dba9bbb359f95bfb5b6a8474bc0f2ea43570ced0afecd2ff38c0022e139fb8e0f1e3a1ef60eeb995c79f960aadb7045efec09c45b31ff359ae3f9391708c7fe3dff86682afab0b2cfa2609fe0ecc4533e039d99cfe7c101d7060eed377aa0fe5835f45a50eba531a5dca4950662135a955240bc9cfe2a0b0a06477c4ae7312fc3e5a2aa72dcbfb11283c172289f106601e0fc48475789dbb0228275fb85d281113eeb3d9e1f70c1f8f0f581b31210c8f05d8792552a9267a1306579f8c9c2232c57e1d754d5aaffb9d1553f0fd0f64476f3eab53ca6efc0374f670a119f21029159dc2546f46298a88881b99cfa4084b774517770d8faa38b9f22162247e183d631df08dd2ddc5f6732af7fc884fa1d3f6921211d31bbc59bd95dc3d6721497adbfd0c578a3242e1a7a111283828cf5c050d7d82ff0bdca0477cb03200220f6bf0642db16913b469822943c74c3d439b849ceb143e00a2a58142fca2b0e8837e87c79005c7557a6943b8f170d3d0a1157679c256f6aa046ad1647cde93b4ed3fd40466d093f49280f0b71255c80546871b679487ff966b67cd30fc26645d92985095d403b91731f071b4c20ab82d93ac8371a20ced9f0756de160100940546a1272642eb19502e17b4a516cb97094a1d0a8b3c9c8221ca080aff22a10b72d2d9fccfa37f3fec030a7d3b533c14d7c43f4079c4de2a221fe844340b6bd715279eee5b1391351d66ed7f6101ebd8095bc5027b8e5ff86ac7b4f1e294fc83eaaf8f525e9ecf2ac2a3bcb72417c59fab89c364b3235ff02d797575aaca9b482649875ffa0b7fdf9ac6a35760dfe9f2c82fa1da19ca807d90d8d8a3db399608d68d67a9b06715bb72877ce6a4484c424d766f449463fb99f119870940a28d2231b28cabfc09f2ccbf2ffd6658464b2dc151ff5b7aa86a8b53499b5d0406d7842402602fd2ca2ce4864ebc03e9f9d1389c06ed7814ecff58c27514c62920275de88ae6e1cbc0df31e272f44de597dcaed77b0d947018ddb0b163823cf60c8c1a1a7b45d0e816aef7b0856e78955c0183e82bff7e614d9a6813f1ccd9fab23b9ba29780243f3e24262d43e09f4085ca5f324d0c42f7ea51c742dd2d2914d111a019f1c41d4a445c66e768586e7ba1a652fea0598714d0dfc167db95c314a76c43a1bcbb3278c9557c25170d05f67f0cd91c13acd34566aac3282ece0a75c81d172def5b865ae94f3f1a436ecd4107a49017219a792c8b080293b68964b4f1c1a3f06a43fcd3eca5d26f91c813df0b23ccea8309bef98f12f1bd10f071ef155706e3a4184fcff6d64446a3ebfe28ae76002edfac45c63ba7978112e4df86759886680a0ec33002bbf643ea3fa229cf6102a08fe7b55168e1aea534aab1169a070d20aad6898f604c22f394a7a969453eead72377534f04b788032d6d63373f9c95ccad56c7b85b4a81b707ac5275435df80eeb857a440187ef34b37cc4343aab1560345bfaf63c480fea486d4bec97f5da6c65b2496fe09b36690c9ec64f94c8a4c41fbb7d546ec29f5772430e00bcb7a5bb5070b6ce13af5cc8348ffac808edb418daf3ef4fb7430d00043c9bd9552413066043455f163374ea4cb2377440afe36b75a4e21535f6c2d2b03391c94e5a35fe0cb8f7a10864b7a8e015f448176c61de487fda78033e360c6f95d18bbef8f5eb6c84461d9fa2f52b8af9e65c4cff16d4ba60907b35e0e06cc1c5aed38818414a5d276a5043096cfc35fde3312a991b152574904148d67939bd9e00d96a7adbe361978c5f4808de1d9c579f4aaef37e5cff8bf426c52e20d675afb8271fd8c290e21aa9a37ba7f4275fb5b77e705e5a5b93357bc4a9c2fb6642e4f3ce2025c71a2bbbe332321c3a43feace5e11b620d605d0c4c0400ca9cfc05b61b8ff26280417dedfc5277b91f157954d79f32fe50bf2b976b424c523dc165a64239e854aecf54f73c37f58c8039f2e3e960ce0df77c19633a7c01c9815979f8e1ae43d562224c7bb88160dbc0c2cf30a8c0656e4bb0bed1d993005a239d5e135e43d8700de8aae866673cb7a47b57206306c77d391763f393f2d7fc4b4aefa038b136d48ad7885ec7c903a64ac07a6e251cf90e2b4f9c40c859c5084e958b4a9ba6d794d501db89c39e265b3795a8449724c57e7531f6adbfc6d38c9cdb8f7412237edf036975e834aa3e5490bd81437d9c38b38be47dad0cfba08a607cf9fee0aeac6db50bc5eb0c701195f71a846eec2a4aa94239805d85a75fb6520537cb5d5daa4a1e9769656721e35255869bbb1faad3e8bb545c4319b640107e0e2887a8dad0706a80ddbff0a14240666726558a7d8b2147a59ad17b33eb1993560fc86591920aedaf577588eb919ed47ea98f1e8fe629047acfbea4970a0a8ff38a79a9493c5783fbd393b7f021e380b03a840a8996f408fa38a11b7ece3f426a21a0ae74213bd07c308b85398f249e5dec0b63ddbacf66ed4c3a015126e31520213267da41d12fd6a20b93f482089cb72d9a3333e1998a4771c4a9a113b82a3556339fbff6abb58bbd9d06844ac8c09ebfa5b27b3fc3f1560971a6928e871e1b4cfb6c647e4047161cb4ff4ca452f5e47d59cdaa52d3b048cc95f623c9a8d1556d2e5ea05c4561a247f7b453caba3cd70798b51adb9402a1343ff3933d002e660a32bafd210906a24e77c082e3d67b6f6302159a829e0a3c51f5d1b43a5e1a0935f0ff36c85db4d29eb18543b6bac6684d5d7428f511e3d3d1ce7fe085ecb5f30413e733447116ef1049c1deebb657d8f39d6a9119ca5ad9277571dd0c0db4bad59c445abbc0db2733cab1436ad5271bb66d7e8803507691e537ee18c5adb6302829efd40df905679aaac52c8f3a205218202441de54e84ead95c0a34fe053498d713b376bf6e0670928e61b857cce6bc1f216943aaa5194aa64fcdb2c791b3599072b2a49a551ad38c00421974118a747464ab3edfa8c4e10c9189b3414577421fd00514a0f36e008196b70e26e7a611ce18fecf41c8261290cad87ee76bd5badf562ecce218fc76024a3a8138bb0485788faf8fc0fbb5479f238fa6bb2895d09bfda4424ea400bf77aecaba2e8ccd89a584452212a06361c9bb531740bfe5105c7c716de0498df17fbe708c4a89b799010fbe9496f607df4b2ab49c879abb6ffef6a9378b21c1ff76a39bc77b5c997711159d75f6a80707a928059a40dd2f0ec2b98a121c938c7d59037136e9c7dc85742f1c86ee1f72a087c9ddc240573a3ee5de0710a2654a6f0350632236abf10dfa9ab5512288a229757cc090b5010c35ca44374dadc212d44df8ae78fdafa64284845737c552b602716a2d9800d394810e75d96d32265f1de4e43a1721ee17e9e39d8bce952ba2b749c78639b3060061e9e0e7d44410347ebf40f1abf7ce3f08a31320326107ed264afd805532f00246f7d9d320c44b16b22cc1b7f2b56dc1e0911d88465901f7e5bb4c735239c76fc670dbe7aa095f513d398ae8284d3dee68aca0b186fae281ba25652e621f06fce14b34419dbd17e0cbb7cc80591ce7d460a5505ab0037ab0ec8bd21087db86e0483092fc58ad0928360d5cdcc4921c22738dd29390541829376e4dfcbd624011a84bc6ad555a8c62bbb82ae1cdc0078c201d91c6302482b743a097de93a39e736d32f20fcb26326497d3d2c1df5513d268d958e5fce06510db990a54534606bf05cecad01fe6f083fc46405c19416fbe0d5a9fbe14ed114258aae74053ff633ab97e461d402b22cdb7ccc75cf7083ccae17b9d51a9f1983bbd7fd9453ebe78dbb01bb5a641516a3892c64e68147280a885c48d44e5ddb0cf7f6fda7b9ec74d9f61c89d8ea6eb850c9087e1d54d931238563b5350d071b00b532d7d3e1731b2a30ffe9348e9111f409f0a4bbd3eabf9ce4a2160d9e8a2e2825b1b31c8d80908461111e8e9079ab72120f23c398978d758698ffc18b1bc058afcde6809573a3e9aacc84cdc8dddc4b7e9bf08eb892f55fca36ce5fb397dd06a872fa3da4f3e4ecf971fd24ae4640ffac8828bc42c33714a550065e6150abe556644b208856d0f3dc5288a539615cf712ba20a225f09f6c24e70fc4f2e7fad7e15f5e58b6351a4e6b90424b7f10233a527df4f24ee867b4aec8ebd525f212788fcdfe6f65c7badd4e938274036a7363108b91fb7a799c02fa4e25754f4d369fdd9350303d8e01d62031c4dbf37b0278cb47de25f150c6304634327f9e9179bc1432b7e41118ba0bd5e87510f49611d5feb9e09a31965254e0026fa75920c13eace5060a671df0e3b3dd81189e1ef1b42a05499a79c9ccc903e2c640af7c7faff47d8a3c1872b1885afaaac5724a6df1d3fc5f798e774eb4d8840af8d7085baa97b4ec729967406ee7fa0f02aeac5864348e0e342d93489877ab13a0c4595977835ea7d38dad12414e230117c8c2b876b2fd1864acf0f04366d4bd926fec1c1dfad60fff1897c1fbff92824310168b901a61fe7a5b4f3dba88d8393bb23640f2e4203f0fc29cdbee1035b78bf0479ed293213801b3d8d7dfa8d26eb3badc930cd8facc30839e239fc70e749229c9400a2f7d789da55780270f5c61a77b418a1471b313008f91d139aeb6c04c305f94def637826361d03c60d750b01df31a678dbc8ded799dd6a3885e0fc81cfbd6c2b78b78e314e1e13aec5d6b54ede4bc4ff99f54b3aaffc67708812df9408d2d5d698b32baff75797c7d08e5c4774383a628c018cdcb2b17fcf81a735b2f9d4fdfbb1f97af915b3d91dd826a109984d5befce2e7b5bcceef8137b43b4565859662cc5e56cf2ad2d6f675f4578c03e279fd9f9a492cb0eebcd30318437ef0868404ab2a2e113e4cb1f36782b1616592159ff230901fb14c4a650c10d8ae40ee359afff28e7b97c347f779cee0bb3dd011aa138ad4f5b0e822a2f393f5a9768c648940c0823c7261bdca8d046430f4c145ee3d5108ef003fa6231a6a7421e7d221cb1c8140a0d8b68351659fb89489cee8d532225533edb11c13394ab63d32d75265c3995b9b44c09e798541c3deb152eb0b34d199a2f8e02d2bc58173269205f314baf5c200e24205518b5909bcb50628a5afb58d360008846e32bbd2edec77f824946b2293760a2c0e5e6ab643d2c7e61cee3c469e27fad46427802ff2006e84e30e0122d70bf76f1af43d988b05e1ac396601af514a8494fa1570789ca9ff4efb453723e1310f1f917e92d37abf50abed361cd762293b1174e73fb6b86701e71211257b13ff2773b089318e8b3413ab222176a07fae5658a350cad61671338b55a835631bab43f8e95eaea3388a303a2938303b0bfdf01706f94d591326207e8a6149544c09a66a2e2a032701606d0b576f1a22af63567217295b14d69912d159f0914a6617845445c94373853eb59152ac04bbb43bcdfc0d01641bb391a02e1c32951ed8cdaa3c8aea978a23c2d4ad262c245208331c9de7da165d8240b22ba09834bdc419dad6b262ad7cf2d55548c525edf3fc592c8c7580f7609f61ad563e2a40b734b8cc03dfb743a7c964f764336c347b6f1423f4b2176cd1d493ae3493e86610d00043a3d2e8551e2b2cae00a477552a41bd7cc222a27ed38bd5ed60b643f915d7d68a76b33487eeae64828fcc2a44020750be3e96ab6b6cc338f6cdff28701f44201b1bd35510942a6b14a8fb767ab179a84f8619f036aeab544ba9e63e0430ca36fd58457f109247d05fbfa0a02f3649902fc0e18cc6737a1b5aa6573738eaaa77b2954ae2b7f85c561ab8812dc0a278c4f39ab1f333aed59d1e3e0951721294e97977dab4cad215c2dd279f9d4706ae47cfb061cdb33570a7e6694e286a9ce642eb0befc0864d6e6561f632f5197b32affacac26bd6b706923070620f90732ea8cb2fac87138872a80099da81e98481ee157f29fa1598a28a5f2931226e0290c92f4bfed19ec85c26540d18118e064fae509e31f8cfb508831129b309ab7c24266f67ef6c440daa5aa2b98aa653ce16ce213b1617672aa5ff95c930fd459946ec83b6b7d5ed71f582db1bd4da36dd245054a4e3bd79e0979297c22b9c2b7dc37bf8901206f672b3410958dc5839a287afa209fd0951846eacf97c3a1bdaa024a474815b4e481898c6a7c16be4025b5ca37537311b95172246d768dfadeecd2b1053e3411324e0d1146c5c04223a4ac4b6f9687481c1276201224eb1b24a9a2ffd71148ac14148649926ef0da05dc31c633319fcab61021204c4c59d08f8f18d7d35bf4ca9d02230007a68b48e58155424c8030d2823b342225ca5f28338f7fde9a9fe39aaa695da1022765d5e96012b0de696ede05941e812680f4b38d077f39c367ee682c8b56d999eb630f60048c48ad34160b07d4e0b0dd36ac7889567e58895101ee1795f4b8c00b9dacd3258db0012e52d76a0d233065c418062fbb227de81d559191982c025d0b5747a1a44769f94fd3e903d7d63ee02c2e5f34215345f5736371318dfcf75a7459983e0a97230dd77c547a7e0e4578fc19f6d0cf55f4e116c60b0eaca9eb6b561bd8a97543bc85b47e9e42a4c7f82e9a5414c14023344a6250682bf99bce4b779a552331ecb8d63ef1aed751777ef8ddc92251754c62b3b055bbd555226f13253645cd4458c8a31d820d8a51060d4eef0bb00c6e49d8efb97a0309b48e1b3ad99da90acf37c937440f36a35e66c0874b5ab962cfaa89dc7530b42a4799688ef15c5a6d87828279ae9255fe822c68c933a16f3a92b82e8b8f3de78c039903a8e3695f95073904a120539cac80777eed147c1ccc61ae8d06dd3ab60b7ac1f94c3d7d0c5d97ada8c23d253a35cd37478e25e9b8b177b4edcd963818f77657a7a952ceb89d6eab7a1d7996cb6e48cc40a7e2ecf3edf78e80b16edd17a4e3190b0dd3b888ff3a3ae1f7f928984f8f723ace5081c3ebfa22a3fd7ab360c154e46f9f0bb129b425a3c1a05f1e98362de8a8144ab5405c396faa978a4e1fb88451f7878d8343a9c46270b7b6079a47150d8acdceffa4dc6095bae292a3749c6e87aef23ace1bb9d03798b6d5e837ed3d593098d30f240afa84f8c4b0128381a29b8e4db98d45a1f109b8900cd6533c710838b532ccbad9d412c89eb1e6b26220e9d04d7027c93954cdd610d5fe89bf854c598863704207ec81830c00f82b8f99c017083de4c8d36fd9de2e6f6f80321bacbf45668a5fb7747967032d9dff764fb199c1dcb129a10d60ee258c232caaf8bba66659a94b3cc53bf4affee4bb7ad49603e36a75dd46bfe435346141e47c4cbd0e359e14b2afc9d9a794c8698f28072eba5784b4e115432e26fa0449607500879171240fd52d7911ac9b4c5f12913b2435cb50b8488a32af59103481088f370bd9072a187a1270a59b827785d26f44d0429b3c5fc71a2a515e5a44a233e64df5218a43c4a78fc8752aee72aa7a7e6ce861c0430d4949603c1118277b1e0dd6b877b5f000ed1f37ee6d1bbdd0ca8d69e6a6038316e16245417eff31556b7f56835b00ef645fa43fd6fee7e0d2ad15605b9fdad86b30bf8a7b0ccc0b84445452264ee7854dbc2cbfdb60a1f4c69370b09dd43c4162ac69173e4433a6bc5526dab704794e4aaa6ccfed7f27dc9c2a2c90d69dcbdf381337e9864563659eac5fd0ce28c27bdde8f5c8593b74fa297df7b19b268352f6704e9de2566bac86dc02cde99827d129743cb43766539ee8a4896988689e4671806d179b3626388f96d7e74ea563c559ea89b44a8ad330bd419152abb642152ee59f859ceb308db63d42273932da1e8320c1112eaf4c8c1910498f4df43f7a9dd15c1aa4f84147e4c289749982b2a159c451d6ca9f389c66ddcb29ab441e39315b4f33fe9a4ea2973eaf2616ab85b1c0f3b926a3f20bac64b5b6d29d779d6010b58577240b392a7dc53718790cda65e6b1153874dede3a19ed9f3d146d3f0e2668063ed567ded73e29bd34b2c86a32808217005fcdc87f7b14f1104c3e5ad710f3d54066144e38f7d0a1d8e4a0dd43b9cba1e393319da604ccc4dcdb8e6d59f3c9ac9c8de075ff02e56dec05447147d1f8d94883db17a881c8566212bba775081f0a0ba90fb44fab085cce45824565d910ed142bf31c68bb6dc8c6725864cff6c5b7c0ad3f6b41b54e8b06b2a32d90e2adf901693787a30c0d941b7fcfffcb8fd4a9401eaf65e4414e4470e0ef2e0bd6b2c2d43c726da441acb9557a4808da386e707119d19ae2e6718a0c2a92345c388cd172357c0104316ca047038b87d163e20fcedf218ec099a805751c40d86966cdcf5294649c9c6e3fd2f86a1017e8e4501f0f343db33004af08cf2df9434bcb3f10341e52a6a5bdecfe20efdd8b9dc1b63b34b9bfc05c5c056ed8b84b43374f1b27b9f6e9d6cd4b811fab8968ac9f5d77f8c505cb9dcc0a063d8412fe0aa039497d148899d4e56c9e89f2a74d212eeeffa338952c4dd3716e2b191f4c8b60caf90a601acf4c7d2c8a5f74f28523fe3e0374d1d3e619455fd664a726294fa617e6b4c903b4cb339c469ffd17fbeda6ce2a9b29e513bf74798896eab76537b966c16a436746b95ce1d6818479b9b13979778e9cbfe9e32ad70ab561e92bdb72eb5ec62644918616f938081fb424b2dba625fa27d7dd823bf25f83ce9302997e0f52080475c1b2a519818c7b205b45e405207ea090f1eee51b78ace5f45c92a54dc00055e7b9a81f75f16fe332f68ffe40faa70c0d3d6507bde3b3d1190942c46a71622cd226dd109c212704fa45770b296afdd1045bf99ad6d37f63388d8471dfbfc036e0604e187dcd4670135436cda8dff5d7e10eff8bb386b59c349577961605081546dcbe4d451bcf7120daa8dc2084bc383fa7346debefdc323c304bbd30876c02180228276c31c0ef02ab2b54e7c0941f3703f297ea961c679285b87e78385f179617e3f70470051199878f99654480f952b940fe4695e2ae31593e2702010c17a3e0e065284a190fbe213dc85fc7e35f0693a3cc0140346dd86a03445e7a02c24ace97d0967a878bba7adcf01edc14372439d87655e173c5bd9665a48f4a72bdff9e26c9fd4a86172735c54e6f76f61ae08c4ebfc2f487b6f267ccd9e11480c47212a51c9b0e623744f1e3ae131339ff47ef7f2fcc2ae4f8eb3f012561576c8b8b742d1d8c75c253309e659fe1eeaf7a0f0d6488d7df9f937ffc3932cd899ff0a2bdd73d21d0b426784e7b154ae002beb85d803188763d5a904a15b092504f43c71a90c6843e8f4a4f0f0f2fd786e0453600647a67f7d099e886ec01bdda64755b8afe71246bcd85a08d4426537d824d7f0ca49ae749162549d265d143a9a866efc2f79024c1c2a28841c1045a8bf4d7c13d16b615766165522c2a7ab7845fa06bce9e354ba5bd0fa6f0ffb0c6aab9d0799637f36e390ebfd2ab8b259b128f0af382d346d5994d7045e6bde011a2f63be0cd59bef101417aa320c034cab33c0c09f8c87b8c292ce147b459a3c1f37b1007ae1ef84bfdfdc34b18ae21939dd6f020e2cf4dcdf41cd75ab3f64dd8e0642e1e2882fc147dc15d006deaaaf4ac097e3c9fb71ecbc2c883487eeb8bf4f8bf2fbd48dad44efea48b3fde48c2bd1801001a610c1cc24438d40c6cd056f9f56d8775aacb56ae3ea89770760937aa87e87b5b56070cddaacb20bc8c2c7ad1bf65a966dfb7035145b047951f44a878fe5fcac634342b872c1491db43eb24733d207ec2c167120e5f8bb7454bc7d22d85577482dd14c877ef8c1fa541544a6e4d292c2fddb589fa1fddb8f0bdeb6c8857d980e0726cd9c13627a360aed12b393dd971603daa72699be7be3666b57b533f744a566202cef91af6eec2231c04fc2e544df377603f0e0949f15b00af25867cead77718ca002c12af2f80639c7211fea30fb5a535d5ddcc6a8ff15158b8428d071672980a8cf77a2f7f7870411d9d02c9e5b00f5cba641b6fa82cf731c5abd5a1d221666885262895d388aa83065b5d6ff6feca36b56283529769ec4d04d8a8c52eff06b1c76c11c93d056cbc307fd81c6f9d306c25183e7dba1525cca4f08a51425a7de677a38d3f4e3a866048fa2b8b99372219279c18e807e554531108b6beb1092927dfe1a0ccc9160bc1e303c0aca3bba897bb8ce010297637a913cc6be3791f8d0fa37f5230348e35f9b43453ffa7c03f430720472f0d774e3cbce424d892ff815628679811ab15b9cffcd0b1e4cc4fea888f81b12c1ea041a7d457c8ffb918342d92abd0fbe1de2d914f8d958892b14b7a26a0878293e8e0603265ad68113eee34364541864baad05c1c4eec3dac96a4c88e88dc278e89bbb1c0399ecd586098c8861651e35fe0d0e4c265d3e58ce20df3c574401e65c1a53fc62a856e854664ed4fb54eeaf4a64f1e7f280206c11944d6cb51ed9e51c7faa84fce8323d295b7c11f62c943b5b2faa25297359da888d22b8d94bdae04d202553f77b2ba45c5d989f645966c3a4f04e05c3b608998fd5f938e52fe34c44ef164c869111d56b034b80821685372477e45f91fccadba33f62b7bfa5a7d25bf1dcecc2a37b96ef9fe2abafa4e84d3b8168da23bc9bb939b15a7ee38c5d15d12459c75f0757e2f9fe3dc5c1ef7753e39fcebfd6bab4355e4330c96d77ca2c1faa147007affec798824166386f75d3a145eb0539491580ba3bdd974b6b7540f58f84b9b63e6377c8959b004d91f9e54caa5423bac39f8fab1838922371fb9b5c99412e60614682d20dc9b48c839bbb2409e28c72de757f93af6332f5cea3e3241e4d44738c11a61a2eb398c0175db15891c2ee920d7624c06e5c4c2b22abd8fa19f729123a436012f3aa07905164b9d08c08c6dcbfc76c16c60233bc061f4e5bf8782168e9aa0833a1003ecd8c509c8ab820189518d989609a9d2e811e9fa0ba71f7fa3e9c35a4d811d2c418054d6f1bf63a58b199a9d0a2c70965f101df486d08a202994be8861098bb00ad3a360a14b75eb38f869e030efd7a7aa47e84246333fb5a19c9df4bf96be9aa922c824543466d457caa514f54b754ffe629120ab12154a3ae7be4ae5a0d7928123931290a914f780a1f6f5ce500cbbbcf0d7f39576e33e4b205042f4cd8ced39669fccb9763a0202c4da05c4fdece1eecac2b1893fb677382bf70f0cb7bb459b5604711173aa13c464e252316514a89fbac89b11c181ebb8825760a5532840d0e0d64bf0f0a25f5a7675681457a026f40044332e91026d0c6ea93483e1ece3aa5804adc3874643c897ebb280b5880fcc0dd11757cc8269491f1a18627faec432d0123e6e184a3eb99235a8657cc068387db86a1640ebf4c1c810f6715d2ca116e143b321f2cd15597447318819208a701325482ea4c8f9751a846365eb64937371d268557f95c60a131318cff8f177aeb121f6cd58d9f6d36057f4025d1b9621b512026517b09fcc167cdce25c6fcb23b5082125b7a620c05aec1a666793e0234ddfe262c48c2838a49c90b05501e6eb1417425cb2c2e7a3078e72e2b86bffe344f3f4d9c9e3a6cd0e9f5b32bdc8bc82832ae1af7c0ea5f878d3fd83e069a98bcac4beb087e55fbf14daf462b3ab229b7ade5d37d90d5b7e0d28abcd0d38585b8695900801a1d75811c2b8e0deecb90e8635a67defea83bfa0570ffbeaf45feac3c7e74349f1022250e932943da0e232789a46f6eddbd3aee5cf4e9122b0bc340b2e070007e5ea365770b29dc29fd82fd8236f8467df09e583e7c65d895e0bffdf193e70891b2ea0370e3b222369b8d99a6e9190fe999f7a5ba41c381b86694aee7b3eae7b4776e371e5fd357b1a8091a1240834e9b0c42e230a7f56565ab4093ac5e22c1eaa970132d0481e3e7e234d330064340c6891fe77010a06d42a3b72b37400cb742afc573971009d7af5a56e8b5aff99154038f9dfe87e5f0dcda1ab3790b04f3c1e6696aaa61801cf24c96fdcbb281c9fe49dc386e66c0cca4eeb5e338a22d3ea4f874d2a1a76a25db64f72e50f482bb594dfa90b884aca9ee83395ce3c566b7a00e166204af2c777b7403efdb4d747d277992b8c841b5ba76fae0294dbf8f65990766ed47f0d23767248effa9da6bf5d52882c0ab668b4de0f5d8c7ad60cbb641c426138bcfbc2b7d444331ec0225a2b09f2e0768651f56fa5c4cc87aa84a586c2f911b267167b3eb5fa2f80092e8348f65144f8a777ca24cfd39f248ec85fd903f3c87be5beaa09e9338f2f98a4ae88e7571cc16b174d7c901da64b9eb9d1a63820dbbdbcff6aed50cf1597117cb8458d825e0ada4de50a9c87f503105df53f9071de20cf54febed9423b557c1aa28f83719d069d3de9b3cc1514d25e0949be0e43f30ba233f050be9f295813e75355862ffa1a37132a3f9dccfef9e14d72b44f6beadd477442f035ef9a0e04c3ba61845f058cfdb91d02e53e07d60ffba6e35667b8ed868a265a1d4d29315d91bdda63d501c8aa36be92a356ea947c2d2a609a3f14097d71be56fe02d44171b01673445a6c9e49a0b060c207659eeefc959127d01fbddf5f268235d1f68d196bbd4cdcc21b9f58df5c7ae4d51e02cc9ef356967a164ef45ba1706395e789653d88908a15c6cc792ad722e179572126cc6d30ddbd30e334895929a1d96082db60dcd4ab8ca06772ab136c256e161b5683be01a68370e430ba4a54b457193b60b85147c1fe1ea52cb1243b8b5459b3198b213b8ea8786891c16377eee96f6a5491c68a3b197183dc0fb9e6f7b3a4d7c108ed029609c0b0bdb8557503bcb93da9205af171196827c0a44cf587994d7e2e85cd76a869cebbe286636ec63da685b4f35c167403c1a1125433e0ec60021735a5e98320a450bb4a155143328b16e7a599754495d324c46a9dc1694423ecc0f15ca51b1d3fe74dc720662340616325f01c5fe2d683a089a1a52b0841aac9012b5856c213e7e4c991a2974a2b7907043b39845ec72fb05af3accfe526270df8fbdb41d39f262656434f939c4bc0eaafc8134cce23061fdcf59951cbb46b860460c7d7c92cdbb2343a9890a8606ab91b1de3b25edb5ab0a45aef9a1dd7995d7ded82a1aa865687de0af4d566aa0aeb0ad3d94854699708be3ed8e22c1846d5becbb11f95249843f7126a7a8cbb04a4c18a685ed0aff2eaa8b1a597619b86622faa8018e4cb2ebfdb7eeb1e9c69c32418b0e565a0a8b581006d54e4006d75e310fb0e0a603bc1129a5d613bfd3383e104a17ad42944515e0c5f4834f7fe88f4645084aaeccc42431854f8ddc0fd501bd963feaa8056553bcaf727a8ad883e635c0b8e5a2c1aee1e779f7bc1ec753790e9a5a33ac61b6c5541a5dc163a1c03b92d817c9afb972008335133f0fa5e6d4398065cf012c111656508f9ef8c0238f163b40f9a8bd089c419a649621676f13e663a6e9af5b7565b27fe2740b8f4f2b13201ffe815c45004be3ec4030e5b20d459710ef5ed14d21368ef89ea4e94f7317ddc35746eacef93df1bf4a7d6ee25694fa073046bf15c94ed7ee3fd70528b712508ba0033e0ee40e50cefe61676c7a61f36c641dca9692051824011841f856e3711c968c996324919380dbc0d540efe81f382267065fa8020495bae8e5d638cddfd6f69f1c51f7077073d83df07822008822008be836076dc82eb640ec32f7416ec867fb5fd54d87d190abb2f7bd8bd8f4bfedd7befaf258c31c6163f8973f694064c26437416cc6af1ad0edfca54980c8569d9c3ec7fda7ef671b67fed7f4190dec37b9cf2917571535580d2f8277685ef2f3b87aff4a226ea2103564ac39789b0311541990c98f8a326ea21c2c497c9809572586631ddd9652c99201982a459e217cb0c881f822fea9002a82943b82b70dadf5b4d8170e334872f045f03e19fdb9aaaacb2e05f5365d3028427988a3edcece012bcf47cb1675f61f097b72c5dd1430ce6efcb60597a0b87e5fd717eef2bcd2ebd2563d5fb39df52597a6bbd39efbc51db733fef90092042c8c1cef6fbfc9f3ea338f193dfce4eb3bf9fe11dd85f8ae6b524933037e9a569ee1a5018d91ebb45dbaa01051156b55818910218d0e007135489023bcd3dc361b6687b6ccfc54ef0ec6cc26cf184f3fe0af30fa3296d620dff89bc6edd4d97c7c503739d8b55b5beecfbe4f7b7c64e0435763ceccaeefb9967671d14b85bd8eca60c3e592a511898bd963b83bb86123f72ab861232ab7e3855893bcce9f74a2821ab716ed1f67c9f49f052e06ef11f52bef530cd7349fbd6445e14a787d986f3ed36dbf8791b8378c6eb85b88d1fcf3ec7e119a6611ad2c6ef389c911ce739cf156dfc48f8162125256d7fecb708dfdaad6dc7d7ee6c3ba762199a56b757d1de1779a50dc08c948f90afe45e3e42ee65a48c846f18865b2c95d61d140877b87a60e775c7ceae717bd5e11bfccf33135394f041d2cde27421b7c1f5f91ebffbedfa7ce90c771b5c1f7fecdf0ed7dfdf6b73d533b0bf778d73d585c48d1db7eed81f7e4c817007896eddd317ef778514bd54ddb74aa46009d54d65f6ceb6ffff3d8eb7beef2b7d699377d43248be27bfef537ddf774594fd5dc1dbdf7705d1feae38dadff77d39ffa755f9fb70beac8e6507ceb7af7127038bafeef5d58dff718f1b1f976f447e997e36d286b391bfe32f99f6507ee97b207ffc1d30d394f16aa955bcc24feaefe1b438ed01c9fd1ec21fffa6374adf83f8258c9f2c8de4cff0f16b42625cc2cf92f16abaf1a3b0f1dab2f18b8dffff53bfff74d9cd2becdb543543e9c5bf51b2df433aa63b60375d75e46dff860fe444b14bc5abfbbf8aacf351569053fcd2758d79b5b919da85129c61fa60aa5a1de878072478efc52079ef3bf9f81350e2f2f77a961efc2bc32ef141f38dc637d331680757c1f12d4c14c537c5ef80f9dd1f1b7c52fc5223d32572157663d8b583afc00741710757c107c17ff055f04ff051332d008a57e0e92a98760049fe0ee027dfd30ef897a9ea7bf1867f99aabeb400e3975cabbe2fc9c77fa37c7ff271a89a013ff937fc4b525b7c6b70da4be4e097348a57e08ef3ca5c053f4c6fcc55f03d70de3b0ba990963c591704eccaff5b6536044a7bb53d9cae2d7bb5bd2b93c5bdc9b0b4d9c4ffc4e24a395d595a2bb3ad51b8b66ccfcf6387f0571923f175d801871d7a3be8d05bc920ac6af71a2e31db0107b237ee8cc30ee088830e3b9cf61549e0cf80b2055be2875597202a4913b5615c5a96204a75f0956333e83eb9615fd685035ef983600b08ba80e00b08c280200a04532018038224c0c10937d05003d9e2f202834ac5a09f49e3dcc1551d9706573dade1c9f68fc15b770757ddeeae6cff1b700ab0253e20c29c34c1aeeccee97a030d76af7647c30d250d35dc90f1cb76394ffb86afc30edeba36074e9a10fe6706ddefd15083affcaf134e1cdc15beff0ef66571d0e2ecb5b8bcc0a052660ce1356b94dbda9eefcdef5a37615526afe3fc816179f397ca4f934e9225d3da810d3e8945db73af9bf2bbf93d298303febe74bd319cae3629a73e7a90847d3fdb1771e71ae5be668d6bb19bf297bff4c9e08083b7f07bafd793c0755998ff9a6f8f276cd86a97b03d0d7ad203abda7dd3a0273fb03e765f7063195a956dcddf4102224a34d98980064d10c1eca3d8d5421072451801921230d9c12c145ac84036041938610823d05972e4a4063458a2085558f128c6f76160685ce383e98a350d4c104efc2b0c0a3ef825f043f04be0db50084c739a4d2bc579378ccd20fe2c8172632c1e63cfd9e29c31c638e77cb18cc6cd39ff06be235f1e4b9073fe72ce4860d92de2bc6f419cdadfcf709c3de77c6dccfe52dc04f83d28fef7a5328ee2989cfac4f7478130e18be8526a194ff2549a4cd3549ec873144517517c114518514489624a146344119511c519519c31e10f5bf9d7f0c127c330fc2f05f3ccc6d9d5efc1fc7d38e7ec3065ce39e79d1b30e2408516591322548802dad2552fb7c3782b4cdf8abfcad8f867e3d529635d285ef963f24bf34da7c78fda57cb870f7384b3c6e9aaa3583cd3552ca1e80cecf2d2af6809858d6b6cf07f9f4f667bddd492a2b607cb9ce9fa809386b12a8a83499f303a98ba3c7728b558ead860c619d8259c7bd8e05f70756d2f4f18cf5805185a644d86d8f8c3f8739a25a0c2ceaedee79d17b4c2cf97a182f8210e36cbbe378657f7af118ffd356fed1eb97aaf11239cab4d0233e0ad55edc15b2b0dee378645f13cedef9c1a955e0757efe3805d34947a34b87aef0cec72c01358f0c0084c8070014c8581113c84184112232002ec3e4b86e8798b4b16d1eecc87e77b01aec22333553c8277f68a31c663907d7b6464adb5b6fc147d8c31a8deb48832979bcd8b4b0d8cb51635933aca7db86d6bbedb912b5c6e6c5afe6603df912f5f714a759967b46d4a65db5e313b8f1e14ff08e4797174f46de03bf2d98e8a6c743b082ce7fdf5ab6d8b3106c006be235f8fcf06be231f005832ae205577c6da20647006bf100cadb522bed65a8cdb16dff0aa8631c618045d3026c796922c735111d26996482793798a600dd74ce0fd81249eca1b042d97eb89f10bce16971718147aba0ae69822a4322efafcc594f7057876e69c7346917067645c3543a3da248dbf1192f7bdfd4f17c0575786abbfda26398d2109270ddec2a90a3578cb53a3ef555fdd4f79b4acde57b12b066b7b0c15d6185b0557efcb70f5c6d8f755192ae4fc77e78d5dc5a9328410907adc6027821db629b524340142248a2a5cc9790ac5d2487e699ade3e0c6fad2aecfb56c57f6a1cabe23f69d5aaf84d9ac6aaf84d8d5a18abe227f5694babe22f69d166ab620ce26cf0695098b3fcbe9c53a3968fd1e2a50e64483e30f9a1031dc06e123c7ab2dced0ad10f60f7ed7df1bec5b9a7e31ee8920a2952e1187453fec0502c95252a8eb6fd71acd91efb6469a2a7898ad3be2ddaf62ded131244cbfb9bd91ef4a469a1c28508e7fad5605029544c4c0ccc8b4b4c4ccb191313738a31993131313ba215f2ba48231402374eb119842dc6b16d9f95c30f14cb5c04c33bc5b246d3b341ce129cd8b169cd61b7edaf227a9e258c59e54f660d9afde2f2d272bebcbcbcbc581953c9c6db1ff83b60f82d988e0f829b7600896a06fffb37fcaff83b60e90df271da03f9b5149d1656faf03f93f9a6d2dfb85f2a85690fe1e337994ca6d34cfd4b4dfe28fadfc8eff8f383e98df2c9b407fff22ffe1bf7311298ee805f7c51fcfb3744500453d6e7690fdff7f7a63dccf8efc7f3bf21354042102d98c5623017986d51c1e902b3b0fb57c0208b0d8ca400064caa80ddd9fe7e061e334c7c171fff574a7bb838bcfafebefbdfef3dcdf87b31fdfeeaf0eafb3e9e7bb804c635c2bfe95a82fb3a883fdfcf3ee8ffa51667ebf91d638c33ce4a7ceb5dbfd730f29773063fe7efeebcefc95d1e40e26fedf7f7b60871fadb9ddd5dc84540a6d7aa1f07b6ffb75d5fc079d021ee6b7dbed781eedcc3f6770ae02db4f0d8be290fe0eb10f777098037882fe09eafcd260ae00de29b777cd76570713a6fcda01c8c7fe7773e6767e773c88fe32ad6f935ffbbaad2e0f4c7396455fdd3ce373b9b76b6d9d9dcb966e772679a9dc99d553b8f3bcfec5cda5966e717edeb7b54b873cccee0cea99dbf9d513b67989d7fc53bfffab2f3bb7d859f7f6dd9d965db97f8f94ffb92f99caeeae72755ad3e86e146c557d576fbfdbdeea4a8a893a34f575f86c59d32d2ef247a93e9a6e0bfca80f1165661e3fc38a758c6c67191eabfb1a9a151cdc8a0312954765c9526fb9ef961f2bfb8e46fc97fe63fe537e537cbfc64fe518bfada9efca176db931fd45fc63ab744449985ac0f5ce08317943ef832f9d69561f6c5175cbd5f0057efc710e56480ab17075f5d52879bc2f8fee04de1134bef207883708238bc8f7f0dde5ac71bbcb55e60d4a0f5a121eef0dda401ee30a580074a9fedf16f7f62aa0adf6e158dbbc334db1e4f6b7075bb4923ef6f7fe90dae5ebb1980830ede0acbed0f9a30581fb8c0072ec82a21fcfe1228f70d764a0dee8ae105ec92f1f7d5fbe77d14e933526e9c71baeaa0c2f716069d03fef06bdc2dc45425745ffc1af7451d54b8c08e9d4f1857fdcae92f04b46d7ff1143b70c34dc141b0fd3f9a7dbdb6ff02ee6a8bb05adb84ed33b0ab94ae628ae21f531745100475f8e4e9fdc11a769d7f82eff23b6039ce6ff91ba777393d98de38bfe55b4ef31d2c7af057f0087c13785a3328bbeac3356538f7981ab53ca8412345d805ce5ac02270e6aa3f38dbfe60cc1f94f97f48fe5f92ffa9fff4e7679300e58f5f8e60f83a949bbcc0dd35c8b47c50afac0dfe38d61004e8e195ce5b42b2ef09db12fac1aafea2789e28faedac3b7bfd62db3f46b368b6c71fd5ac9466e968560daffc67340b46b38a5cf597d12c22aefa979a35b33dfe26cd03f8e5932e344f0decca3fd53c48d8957f8ee661b78011f578186a929979243cf0a0e344bd0e74c3bc0e71a79e02778b1df33c48d857cbfbf3e0c0be5cde9fe706f6f5f2fe3c4beceb7b7f9e23ec2bbf3f8f0decebf4fe3c46d8d7f9fe3c37fbc2efcf5303fb32bd3f0f0dec0b7d7f9e19d897ccfbf328b1af99f7e729c2be60de9f4706f6857a7f9e24f6957a7f1e9b7dc5ac20fb26dbdfa6bff2ec60fbf3e09c85f4fd491cfdc16af47d1a6d6dcf8eb6f647b5e3b3e6e0e88ccf53fe5e5c62f6c5d118169342c1ccc8a0261cedb098140a06475fd88b3692b1603aefa28d6432603adfa2bf9c1a61d39ffa02e736fd495f00dda6d44827b556006bcdbedf8305b3f667bd015a65f6357f865b1879cb1c6d61381a84b9600db13efea0d6716e21b6ffd0132c215be72d1610abf2b0cb878af5b1e2a487e5f4c1c2090ffb10db2cd91221d8fea4f6d9d91eff51fb94b40fcef6f88bdae7667bfc8598982294f3968f14ab0ebd20ca50cd5b3e50ac8a049f1c017ad8e5c3c4ae7ef059b2fdfd8564def231c2aa2edbfe3861eac36bc1c963dbfe5acfc0abfb7f43b650625d9a51622d92bbc43a14cbd40a02300350fe9063a9078618823cdf8b55c630bf168d61996cc66d7b8044e3770921405b91ee0868b338abbd82bbf615f336e7f5e3bcfdf756cddbf79db7d0b7ef53bc75f3f69de72dd5dbf72adefab7ef3d6fcdbc7d6c1f1379cbe6ed631a76b978fbb808bbd4b78f6fd8b57afb18875d690fe7b66ddbc735eb6a61e6630516b2ed6320b6e5d37bbf625d3588537af6b10cbb76de3e9ed997ccdbd2c638d61523c9d515c6a6d996874bba931807914fe69ccda0f2c9affc4cdeb8b33d38c87c120475514e3cdb630699469e19546563d58b6610153c951e77a219743e592ab510e15c4f481bff48ba3c59962f4f9ae53d4d938720304b90697cf254de734a100f35f23e9d9e3c4b7bda93c9b6b85992e36db1d65a5b12654c63cef6e0d77693a449db93e6c97bc97bcabc35836a7e86cba84cfa6e9224cb1666d8c70a9f5e0d3becba71135b986d71ca2e461276cdd08b9144f4e2755e6ba29cd74f5e2a4e1209de165b87ffddd68401dd9e8eb9171a49ea75748f872181f91c8d04f55af7789846c962501e564563aea232bcc22f16cde430499265796a8b712e5292244ffa9ada9a4a52db536666266826e8fefdd2de54153a5451c5ad6643a1bb958b1c3d2020e5d0d99e5c131a912223352044c90125c7111096408184638757bc2a5736763169a4364d9a0357c4b9da29bb33e640f8536d9bb20b433348f5a159831455289824504441878eae0f9ec9343799bfb189a9b9a5d2d5a7c0a437f45d0b283c283d1cb21a72b68768af272db23e21d91efcaaa48d7f26cbc63f748425091b3f9aaeb60918fc5ec79c4ecea86a52245444b6304365668a5a9895178a9436cae1ed55c5c1c3d1c32b9cc381f238da58c8d77472f4909221db8ddb8d253770de9af9197a37a6b789a9a1c9534ce92a56396d0f628f023fc5217bc95a90d91e9b74f5295362d2d5ab54a94957bf728526cde92946122a237bc94e31925c5ccca0fc2f6528547355e8081524a5fa186c78552b224243ca02831631c4f44a2686233110f90a3fcdaf282de65751a8865736bc12ba092d71d224cd3198c93024c1a085bb724cf174f52b59b268e15a3826dae98a89f00ffc034d72ae3ebd1c65e693a34a7f86a35055543fc3499bb4a7c3e570dc70e06ca2cdf6e0a8e13082a328014909d02246a424c90f22342884e8706ee06e3489f26426c52143d1c4a03ff3f867e8a5fac6121d3328e675cc1a79cffc0d72aa70e4bc2553736313a660501fa6ab8582948241d91ecc5cdca439682f781bbff6e1d91e7ca28f3283641e65d6c85bf564aa6cc2f6abd5a33c6c6b8623ac3ac36dc8e633f4708ea128065a0c426298c1d083e10a0c48306499e1882746f6cd5b3114b12afe273f36fe982744e816aa09d95c1552e264c9c69fd3553469a0f64c0a43520d39fb33ea2c1e55658d5903b5513b04596e0837e53d67fec60c4255aa99b76690ea67b82e436db78502c785ce81cb21a373dc6c8feda816cb419443f663e62a8e963d4cc3e43022470c91f349941b4b7c854a6fdc9cd4846a424742366fa91e7f0e9ab7681e7f0e229e23675f321f93ae3ea5ca15eb30e9ea596a6098225639af3491b34de86ad2d536b1d3d1a43024bd2e47f7b871e7ea3865e357f17aafdbf81ff7b98d9fa4295bf4bd2538499c1b37540e5c8e25396ea8ce31cb212407911c4543367ce3865d398cf80abf0341c9698170245a2870e470e8700cd9b00bc7942aa22acd41b39dabeaf637db837f86de0c57dc8571e454b5dbc6afaad9367ed2a7fcb42573ca94364a1fa58d5c3c8ec691c32b9cbac001c5cdae4971e85c06e7aa92b9d0e34e25c3ae93ac68e3186de393ca054e0e8e27bec24faae56e55a6524ba315bd8ce05c6d15b207c86c1501284da60c4ef3269346de3332355ab77bc1433af1d02b1b7f0c4d152a53f494296d94a393a3b3dbab6d82b7f1af28d9c6bfd243a91edae1157e177ac88657f8553d1483845d43b826629070ec681c361a871257f1d3681c371ac70f57f1ab348e99c62144e3407940d164c7bc8583895565d885230b2a936d5cdbab8a166dfc3afa468ebe71c32bfc38fa460eaff0d7e81b3339ecba1125ca948d67721bbf69d240379ae2902539ad931a0e26a0d8603bb129cc70bb3ef8f1e378e22df4f1e3d0794be6f1e388e2ad99c78f23675faac73f43cc5b358f7f062277cdd09bc1665f348ffad5a7fcaf5ee5e657bf62f3ab678979db842dcaad09dbc63f430fbb7210f115fe29a87415ab7cba9e576ed215b54957db03d9c631e9aaeed542e96dfc33168a5c94dbc66f3269a0764d9a83663bd79c1d8d7e41e69842be559f35aa9a19751bff9ab38bedf5d473523bed6c0ffe992a1bbf0c6fe3474f5336fe196ef72465e3c751ecd542b96dfc248c941e61f418050065d6e3939f32468f4e6c0f7e1c6d1d681d7b1b7f4a1bb97894364a1fc6453aeaf00abfd6b287a5e9c8c32bfce40ae54d4a52b150bee8dbebb5f0e96b4933a738723138d7991d14b98d7f66875de39331cac6bfcef0367e72061039da00954420d58c0c1a13822f2e405ffe70cb79baff6277cbdd276dcd7bb7a8afd61696dbf8c79c7dddc7a5bb6f6a6d8fbd32eeb0710634212dce4aded667539106a2dbbe987d6127f69a93ecf5b4a9cdbe69c6cd0097aec331fbc26fb3ef7b147779155ff94f9952a5ca952bfb7a962cfbba167b3db5d8376d21e274ddfe2f759e92f3be679b7d69ecf966db93bf59b6d94411fb8b67fe9ce6f03daa4f50f0cd393dbdf5a535ec3e4f47e7f7d865ebaddd5cb6bbb5a4a3b3348a2b9abf0f04c350144ba5718ce2a4316bdc6d531a57bd144da8abdf97ae0bd8d8f51981924f3a5d4f977349db5fd7d385b8b6fd753d1da8735d4ff7e9743d5dd6dd743d9daea7d395f07f34dbe30f82e0263dbfe8bddbf60fb33ff8edb6ff07e6108b7e72e25c3f23f73bf29698d3b502dbfd33e2ea77f4f97f354cb33d5feadfd167e433b2ef06d375011bbf91aff61de9ece344bd6573f6f57bdb6aa2c045ceb3bbd98db9ea57767fa0e0a2e062f11cedbcb39895b2437d6331e761f1dcc5e2391a2e1ac10bdc48c5d81baf54016d23d29885fcc009c80f6ccf28263f3ba71f0be21c93c6dec864877aec8dbdb1c704b455016dac7dff6328263ffba61f0be263a0ed05ee05d298df8e2315637896aee2711ced1e1fc6da970ee493a49fe0ccdf8fe96a77357eb6f8333cfcc417b41734fb12c72f8d8f4d1aac2da6d6f68cf7eef005edfbfba40c4992a93dc7153544268f332d01bbdb39e474b5bb9f3d22b14bbfa28684ac3da6373bdb6382731d6f76f635bedfab57bb63ed319d81bf74b3e3e1ee75dce19c8aa97d810452212dce3a1393c1b9ebbefd7b415b956b7b5c3f8dabbe73d5a79039e78c730af252b08aab38e015dbffdbb13f50d308a179f00a9a9dc35fcd22346a764e5f74414eb007eec0243bd4e00ebbc4dd09ee364804f35f6d97c1edd52cb2fdd7d515471c155802236ee770d313c6559a1d83cdc3ddeb8b59a466dff445677bfc839c6ba8db1e8ae5af3a8cb87d3fb4af99d80ff97b7ffc9f6cdfbf2b38f1dff5cb57876fb6fdf1cdf2cdae1255107db31ffca8db4e839373ce0bd8d6f684f893a182b7ee27b32df173fe6c4baf5621c60fe7fd35860c571d8a0dfa971361b0f20d7292f9b38e176059aefa876929c9f6f87b09d69c24860c15ee4d75f8663be72b816fb659aec260ab6c6c61c070178dafb04bf4958b2b3aeabe1ce0d0b8ea337ce577e7be0baeba8bd7f9f5fe8c175cfc7d179fc37d9c9fe12f78ebfabdd9f7daec7b6bf6bd34fbaaf61df79dd9b7b4afcc0ef78dd917dc37b5efb72f6adf8bb7dbd7f7b7655f977dfffeb52ff0ef9ff615f3375d55fd82c6c17917bc85f3f7310ece93b79ce1382e521857bd445df5576770aeaced2c5c0c6fad5627c3c59f383f03e7fd5fc049f14984e4a638aeba8b14860339ef0cceb5b5b2705cf0d62a2306164e3f9c54ff8d4d0d8d6a46068d49a1605eaec7aa28d9f7bcefd272ff3cdd37992539de2fdd1741fd69bf8fafcd065bf4d6ce2d35015afb81a1087e5f0ec11014f3dbfc65f3c6c5e60d8b2b8d64b92a35f62c039ac70143170c8660f83370a845518761f8321930fc81a1687b46b2fc7676fc7d9f499a4a7b1d7f0ee64c96ca5ca619d8f9450b2b811430e132a7397c20a8b221289aca130c164f18db933dd9933d4bd17eb6b92486a60c0fc179734e4572bb586b4d3232219859a0c16aa9de5e554c851500fe1c1d5485fda16281f08f31bcc21f9a337c30350de2d91ffc6ee45c7f6a2b2c5901b74212b6357444e9c515966cfc2be4b04b4d622104d6c5aa82851876b1782cccbcf5436321886dfd08b142ce6585dc0a397085dc0a391668b0da4d81b5831d3d71522b096181235d46f0be6c2bd86ccf4fcd5bdfbf70afdccbf612c5711c4f403700c20125017403a05c2b04ad586bd60ad2a2bd8e8070404900e55a2168c55ab35610a01c500e28079403ca01e55ab4d7d1eb28a7979365e3cfe9e520954afa5ed028254b923c5399cfe92be1933e8b57828e6924f44de7341331a992a8d2ba9c2ae8277d163aa691d0b79c662246c7523aa663b1984ac7b42ea70a9a530515932a89612a93676a78bca2196de62bfcb1b3e6cac65fc3abe995e07cf29f244f1c8de4fcac79c8e4bbc08e50544caa2486238b77a55785677b6c50b14b4cb1f1a34533540c93f0a746ba9c633672ae333a168f55c55dfad799291bff8c6e66e7adef49b22ccd1adf9e79999c5bdececc681e6670342a0816859a0215848d51bd9451aa28654b15818a49956a52b79927343b1dfd73e42bfc5303655028542a954aa1d2d5a784eaa16a52542f759b7932450accd3a4334f54e9eaa39e251893b9a3853a888af5a972baa8a30e4a72550b5763b2d58c917e196d94be1371ae306230623eb31e4d36a315fd80119379d30c9a79d3ac91b7a9b50ed7367e514866f17e56f0431bba0d1d11932a8921f853f3a15b4caa2486a0f61735892729ebf66a77504483466347d390d120721a3157f1ab2e3a284bd095a05e501557a94c91cd3488677b8838d71f7d8b712bfdbaaa6dfc2b1a76dd3cfe551176d93c96f90aff2c46936dbc9a2dd938c7629bb5fba1fd0821fed4d42dd424168f354548ba8ce0d0edfa3c7122b27e6aea16ac29c29f1af95373f9a98d3f35f0a7e63fb56fe886df2c5d74281d26dae2f390f7eaa27329b58d9aeda1d91e6ce3882dda3686581b40ac90bd73024a4e2c627233c2567b1b1da4242d829cb0c5c6bf9a1fd8f84d2f3ec4b95a266657b6f8ab65c2c8c60fc30cc34083a1c85b2735091cbf2f7f1af5af650fc3f91c51c84dc19c62f2cc29ac9a12856cb367323215996ca6224a6248baa84c379727d70785410423e62a09ce205e5095a09eb7be29370573777d78de62ed5c35a7b02d5614319f9ab2f19b3dec62f14c46d6f5b302531176fdd04c366f0ddd4c45d8d6d011a92fa5abcf8be9aa86e9fa64baa22e664f959a3dd36de36fd136a6d8d8d988e23674b627e7f2e4a6003b327737051b502c2b8a277be72d1b4eac8adf7cd4e5c95ee2898d3f26ddd9880925d99e15c8b0cb860f76e5440b212cac8af3d92b8b5762f1445ec8e215d9f849166fc8c6efc2e289281dc4ab627bf0c38e6e0a4154581f1c54459a83a3f2fcf5a7b69f60d93e53f3896ed4462e9e3c7f5a5ac85499b591cde7681c91e6ada19b0b615b434758b508bbd4242c8575b1aab03bec62f1f04aec79eb87e6a215b6f5238455c95f7d5c7e555b7e454fb108460c69e387d136ccd84d81b5bb3e43474cd9f8b10d2956cd666ce32fb58d22db83ff45db90d91efc6a1276d928625755d0583cecb201c4ae8458e2c70fcd5b367c5815a7ab8f938ddf255d5526fb8dd8f85bd2154db2f19fe97ada258ea8491bcfb60e78b18ddfe675500faff07f3a08c983b2d81efcacdd4d214809d6c7ea80091bffcada6d6c4a6dcc6ccf10e7fa53d3316ab607bf8eb6382db6f8eb8f928dffa7865dfff87f6c26ae09aa8508912277e9cfd1412e66109806f18a9cab399b9942dca51f3f1983a35d3c293353ea68fd393a75f1a5b6d9af732c065375102fe88aab41484149260d9f3da641bda273356b3ae06dfce691bbf09b4bc45f4d251b3f1943833d458382a179a1b93457460c2df8c5d098eec32c2c6ba37f1725bde2dcce9f12d9621a82faf579a3f10daff2db688cc3ab0cda9a2877a81c024723ce5249220423eeeefbb707a2956dbfd4b32fd45b9efd8ff611f196ccdbff8abc05f3f63f233a6f536fff53f2ddfeedcddbff86d8144ceb27c4b65958d5ff03625b39c95559d1e7030d0b2cfb936d2b54aceb8b7d33fb2adf7ee6d957588455a748b1adcfe6ea1151b6fd0cc5b6be9babfe9f1276e5bfe6dcb69f9958d7875bf3926d3f1b615b9f25df7ed6d9d7f8f633cebe4a6fc5b7df8e08c9f93d1e66f31738b7ead79d6dcdb7ef3785d3a738f645f3f6d51c9b82eaedd1795ffb6ca198100f513c65a8798407a8d4ede62dd5920f00b62b6630144b235992e054bd692ab1d6d99f367261d21710774c6a74c3c2b192c0426265c14afa09c14fec67f61324c6c4e70f6d17850b2d73c3c26117cb871a0b570467b2704058381f2c1c2b092c245616aca49f10fcc47e82fccc7e68db5ff5a7538975ce3eb5914ebf8768a3d11e2c984e9a948484d4dbf1f0b67b0a96aee05cc5b33c4bac5d6c0da650a8a963a2a814a8cb5db15285ca0eca1327a7cad4d2620619e96f29b1d6bb461bdd3c8d36526923990abbf97f93a679d484aab9d127ab489191da110d11b41e91215666dbbf265d775029d3a87d76395c152a53a4e89c346192571e9b8d54b5265d5c4ad91137a1248470424e08e57651c86432d97d21d911b6352484bd796b88e649d8d6101116e7ada122579db0aea118d81c760dd5f06a2714c57aa22f039f5c17b0afcd26400fbb583e6c4762d2153d79d0dbfe77488821da101143454331187a6208d43ab68926db9b78cbf4fe433947615d7324952ab1a6394282f3a278088a6e142db14e01212353628d024245435362edf23a9a48e77b8830f57bb060386fa393d3614247b7c36327b6f3c38e6c27889dd94ed10e11e74ecd070b4ad53c33b002f0c7d13c35b03f492c907f4a87538f32bd3567f8603a3fa8948e8ecea9a3d3c13aa60ea8b3b3b3b3b3b3b3b3b36362e5b820696a6a6a4aac5bb6e6e929742f1522a5a544a445690cd25a7a4b8f38e51477623d85e6e9de8eee9dd2f5d4bd54889496129116a531486be911e92dc5353630313fc36dcaa749a2c9a2265653448dade6889a5b8d1235b81a5dcd1356f5cf353b5114cf1345ff55966b1579a7f3cdb7343435b59a585813ab89d9535513ab29a2c6567344cdad46891a5ccd1335ba9a5be2dd8248323b226315f9325d5943503055a52bcbc769e2380c507f631680c729fd1bb346dea99b12ebd3b6d148507f6a1e52af43dc3ce838f7ccc37c4e121212f1a993ff6319715be2aa1f71fa21286fa7051659b0f4a84c91f233302a94e651e2aa29755f70aea71f3992f34bac4d39e8ccd120280d6502cda14fa03a540a7487f6502bacea2f8a278a22c57c6841c6f66789bd2292581f7f19cda3e4e6ea121c5ee55c7de2aa6e77938a19da0d4d71574ecaa3c46dcc2030083a43692812280db5a134b4086502cda14fa03a540a74875a81f61e45dafe29db0dd724a752a284e347e6feb451ce9fdac885c9c58bed658a17de8b152fbd1726bc20c1c4607858d55f3c4f30329466c96e49b68be2afe2e64132c2faf47878b5c32b9e283c3a9e1c4f131e5c8ce6b9d99e23b6f324b13c4aaceaaffa7699f2d85e70bed8764ee9fa67bab28aa4e68b0d95822fb697295e782f56bcf45e98f082041383e1a1c2c876cecd74515dea12eb9275c4fa98feea1829e2838506c407d3b8fe4eb5d63a69893529f371b3d72fa64d3a2b8f4d343a5d78ed343dce937686e394587fa98d296762c2a43bf138c54e3f9c64a7204eb353d18988140a35f1a966a37994f8e9b3ea4f20f2c9c4842967d26193ce34e950930e65d2a54cbadc89c79553cc5b3e564e3f5439c9bce543e514c4ee34c32e1f2827229e9c8abce5e3e43cd5b6bfea8e269c32c70c32d2f97c6a23fda566d96c4fccf6b88ee96d72164a362b89f5a1663404880f9f24a49d0f1659b0f476e6e1d181f5b9e19ae494d8feb6d4825347df9c9cf2a6c42b4d51ea8d428cb49188b1688c815d8d353cde7c3cc2aafe31d469c499f09fe6a3255e698a526f1462a48d448c45630cc6da781b8f10c1743d73baa27b2df550e9faa83fa5ebce5e4b3dd9a85947ac4fcdf61cc12879c12eb23dfea1f641b23d468a60a16d7f54baeea4d2f57da8d29bae624f97bb62a50a951d94274eac7a9a9aa706b66706d6c7a664d4361b6bbc6f5e07d53c4b5cc5e5f0ca6fde9a347c762ae5b9b9e0345d20a7c9668f2ef48d46f1caa4a35362ed3b585f6bed8b45d280fbd3463a6fa61ac5ab9ba62f4aac2d8f125ff9f3d88e9c6b56cb1db34669ab529b3da361f4bb7a5f46973a46c6fadc3709f1108a79abc5aa304aac7b36d953620d4347e7e4fb3ef83cdbd4d7f660fd6237f1619bf05ec8e28524d5876dc2dbfe2f24bd90c58a5562bdda2d0069a1e7020f17623b2d0069a1b7fd5d88b9c043fd790d7921b5f0430b329bd1f657f7ca63c35add3aaf212fa4eddf82ac851f7602507edac8c59fda28e7b33652dd57e50015014ae2b164b6e715c4be66cef26157feb69d7da4a8086dc8f6180b888c154bea1541b4593e1ca1c5f6c1c2226d1f2bd6878aadb273549a8707d6c7df85e6b1a5359a27a7799ed81eff1dcda3e37162fbe7882aa02234a0a4edff9a798b003d7f05b12d02586161b4d1cec768a39d34258015b6c5538455bdc5633bb189d2d490a1cc0c4ccc28964afd6d1d9dcabb248e31303332a690ac51a1a6cdbe8fcf2f35de25718c81999189414bedbb248e3130a5bedbc4274a13923568ce8e064dda4826c2d29799d131da284d8d74d207d313dc3e5478b4bda23c36bcf27fcd73c32bff1bcd83c32b7f1d9386cd46a53e2a19648cd26b276bdbcf316bd8ec92d1697ad4af3cb6196d5d155f475bbc2a81afb5c52bd55fbd663295faa19db70c45615bd696e9697bee0c57efc7e8155d7fc549b1d618ab0c1ba3c41a67934025d6e96e9558ff7fda284d4f8df5cdfe7472ac8fa86d368e59a3b44d29d6369b44a1c45ab5c95789f5ccfeb491fe531be9e854c42b9bf44ca1c45a667f59c42bac6336b9428935cc265928b17ed9a73672f19f3622c2f91e222ce773cedbe4246f0de93c67615b434f5835865d423cbc2ac2b68498b0366f09e5fc08db1a7a81bd796ba8e6aa12d6450024d8ea7dacf3cd2cc75f8ac02ef0e6d2e32f69221e2791c70e2f36f8e58cb3ca845fd41676b5ba1de8c42bd15bab8dbf1dd83d06a4dbbfaed45df9afeaf833caf4ba4e6d5f251c8a24097a49fcbe9cbf2f67f0f3a74df87b8830f2474d24930123bf87081b4df0cb5b92fa3c472d1361e5939aa8870c58799e1863b7a409bfc52edb62959a8557f74d4db65833d613376ef2964e6232931f0996f86e8cd3352d9d20f8a48fd792a6fc8e929a0809f8e4a7ae0bbc2b165e79f8e593a4b63012bc2e7b572b7857e3f760c1c8371fe32ddaab8aefcf7a95ac055a4b3fa39973f69c73ced792a6324453ac6136a8333996b4b63d4f6a11afb03e77c9ac416e305d35cbe24e9b2c95a25983dc38156d8f5e59fbd6207726f7a7cb0d8a61cba863e797ed3a07abcb3b443fff7357e9122111af263f4d6efb6436ad18d85f2a96a21db7a8730ef5bdd8e66c2aed729734ea2b5f6170e88e8312389258f7ec511321c9f849cc6463006c9f6d41500c0a5fbcf9aa1250770ee07f4f9ef8c9cf0c2a3dd6e193f72c5d15cf92bea6d0cf16cd52e8aa58d2a7abe25b53e867af6a50881ffcb594eaa0eefb2098965f49dbfc256dc1519f684882a3167de5598873cddffbfed215c7cea9b8da276824c6b6fd6fd6319a9c299e7dddf70702443c73503a25e164c4e403538f314565fbdb6c1b532062ea623b73b0fded2909dbdf9e4c3ed8fed6d463fb5bb306dbdf7ad63092385333fbbabd523904249718b3188ffc2fefd7b294bad8ca21dbff924b6cff3b66b1fdef78b4fd6f2908dbffe2ac7172e08fc2958000452442a4b088d8c2c333b1040498bad84424b6bf876191edef600fb6bfe7ac6998a048208ff05392a9c0b2fdb1e37e05796c7f1ca62eb64fc9f6c7998aed8ff309b63ffeb286c1c1146125b0278130452e520b0fc44a6cffec49db3ffb91ed9f33d678675d2271ae2e369d7d5d20f8b0fd5f62f6f5b9d85ea06cffaf85771f08dbfffb707a7fd8fe5f0ead949d9f0615f0af2d3905b158e617edeb7efe9219945d5a78db1fd348ed9bbad85670de5f5d6ca59209a72a71e3fb31b6d24d4d712f2f7fdf87ad1974b23dfe2a2b068c7befbd38b5f3fb15e74b7b0725ce9565656c16769da23f8e2a8a63ba9e282aa6ebabe9cadaabcdbdf0f7f2763e33cc0e4a9ca71306d5e1b3ed7bb2af6f0994c65d27eafed1f67dec97879ab12b064dfd7aaaacea78e52d944c691fbb6357fe2adb726155ff771ffb2adf1f00f665be7f0f0cfb22df9fe7c54ab5afd2fbefd8974e0e8e8b54db57cbbb7cead718a95f5b2ca4de9ffcbe9d42c5ccc02e719f72de25311c4993599e8e8279095d5af4c579dfbb4de89be897e458bac0b9c10ff505d00da646688ab240dfa7f4f9a5366b70c76822243985534be4b43ff7615c84425a9cf50ec1fb50302fe86357cddb57593164cc70e105eca279fb05c02ed5db2771341112f47b3c6ce749d6368d18a9b90b07d5a9dfd12e68683411924b44852f0d08dca56dfcaa203e4a802588ac04484170418c089224c8912045820c09022448ac04580081db38ecc2c961d7ebb04be70ac13e6eb30b840f23b002446c043d206e402401e20810458018020410207c8c206904587cdc7cdc7ce07ce47ce8b0eb268b3f6497c8767dd8f216311916322ab22419cf87cdc7111f457c0cf101c4870f1f3ec8906456886c4436a21b118e28b7056ee3df11db21db31db41db416447d10e233b6a3b8e76d876dcb61062e3df31e42b5da21bc322e9c63c90f465c9798089078e7800e781da13929e80e509569e40e509529e00e5094e9e707b42122c92367e0d246d20b601d906664a906dfc3a723a743a763a783aaae8e8e9b8a2034947161d491688659962e3d741051c7bc8001270493a706011663a7c54008b0e590590b2e0b2189125499623598a6419920548965812b040026ee39f006e02b909e826b02bc26ca5ad456b6d3d5a6dab92f5b62e59716bae082fd8f8d723360552052a02aab90a74046403ba012d715587dd810a19900d4889bb5e537c85b1eb658b218ae789ca3ecc568a1d04a040c00808e820702b826cb38ae083152cac60b162c50a152b52ace4ac30a142b6f137a0010d68405146e2d1367e1b7636f06ce8d9806443161b926cd0e286d80d4437c86e9861974a8a246cfc366011c592a9c3196d7a229a57fdd546403f9c0889a9ca6f613c3c1083a5bfd2e313f510613cc22db6d80286843c5f46ab725a009af4740292cd8064e1b7c4540757f1e380df862136f86003cd8698143a299c48c1440a23a44822c511298a483193c20710761b7f8e5d0e5e8e5eb973750aaf77e585a45f49af24d607bf0e74bf8a3069a4764e5fb6159cab05822c470d7f0e19ce31c3aecfa1ea3e87e2362efd6a8150b240908da6179ddf4613216180abf8497b4d37ad18d839bda1e6d2800481056d1644d2a5e5684c6846d092d08ed08ad086d064341f6e90dcce61178e0ebb7e7783f0b0ebe6346590a1c5e484cd268392d3e9458622198cc85054030d27bbc40f1968435286980ced86704ecc9cf0e1840f4d60d1049626ac3441a5095d134e6cd06c14d9a8d9f8317b399788d988d9208269999dab75924548c8c5c50c3abdcb480214906a34cedb689d5fe9b77955bf662f22af22232f1a90ac8857129b02f9f6359ea725de3279cb2c69b04bf5f85f332824e11876bd6c46df28400a76e0af40b2217243e886d80de1a3089621644590726f0823864832c491218a0c3164082043c48a60918214ecb0ebe6e5054626861758b1dc0b24a0580c26318ec4c0c5a8c5488a8125869518546248890125869318b7184958b18d9f1563c958339edac6ff02e945124f8c878847c6f38367c6238487c653c4c363e3e7f1c1a6403e0ccaac51dae5f7e4173ede61f8997fc3d0fccc172d3e10ad14cdd285329de12a9130fcdd8bde8b232f80bca8bd98bde0bd90f202ca0b272f98bc30e2459217452f86e4f47292f46ce3ff1def7b7fe5913e8bb74caf85b74a2d7b2b36feb762532051a85449864032d4a2f8863afc183368b67108246463a01fae923365d646aab7d14033209a03a9806458086f5dd74bc9fab2ddf46553e53ef7baf77183e56537488f7b233ec91ff9223fe4817cec060b954aa54aa56a3e6513867fa9385fd0305477340a591c08bf8d4621c9d5afd144af9803852890ecd533b269c9dc704d724f745176bc2436fe17139b02f96a8a42167f49514042e1c585b34a8990e4cf5a853095a1c2a97c98b1a28acdf454375512d5115511d5101510958f99a4192ca9546a2773de8fb1f918d30019c6e36e014b9f445fb45da36bde46bfb246210b0a49aee29a14052d7c65ee9714052415a080b45720d90b2975b1cbe66b5e4f5eba5794d7ee35e5c57bf5b04bf56262e37f397911c1ffa2e19cb25a6ef6277f0a958ad9574b4ed7542a954aa580a450282c2db7165c4bae05bcaa32eb981add72b5d1aae5a8a506e3d27438ec4a73d865a3c3ae1a1facdc14c42e919e7db9bcebc64a72a4c8102037053e922e112c34ddc67f693aecbac91ae7899c4246081511ba0915d9974be8848a13294ea03871e28489139b93234d90367e1790b00b4941b120d9cc8c19547e4ccc88a322c6ac51dae693f77c99e124aa439ab7d144403f7c854da0d9f9b2bd94bc6ede8af99a9408c9fdab69cc142d8b501a6ba44b212db3165a4bd109e534e2d49db716598b0f27162796d3ca49e59472e64e2665d1c65f1695424a9abb70fe9e2faf32837218bebc35836e6a4a59f9c326e5718384bf948567d646352a304b1923999047481c592393482ca415920a298584423a216f649230b6f187b15016cec02c60120d0a483bebf0af36b2790b2443218bbb889084298fbb05ace6f1a38054a375de46ffa33aff8ece59e9976d09ee95f39749c367cba4af5b0ace15d4814f8050401d1805dc8153401e5805ec91364032b3c6b85f5e9cc8b9de1c78037160eec3e2a3f2257d3cd0061e018b80434020a00fd0870fe9b322e207fa013f908f9b039201fd009a010901a20111f156f9f8818ab08be65bfe6b962cc1b90b475f9bf4a5c457f86dcca097f46513e25cafeddabcf5f2f8af12276b4a1a17178746d7e8283d0520292029474c0149143044013605d0a4f4a4509122450a14294ea430916284949a9422364a6fe3bfd1bb8174230901b11c9d12d5463434e9cb865737dc4be76a14578d56296ad228ed570e05e76a9dc8ddb871e3c68d2ade3aa3dcb871801b078812254a942851a24479c289dcc62f830c32ec9435fae6714c1aab8d3e2953a2660d1b977fd1a54daec81725aa8d703eeb97ed65a35fb857ee35a35f535ebcd7cda451da32e96b37e47421875dd0b9b0c3ae9ac7ef02cf852ade3a1fbf0b3d17ae78cbf498fcd5369962e377818a4d817cfc2ef8b02e6b0780c5baac7541f60340b22f9777e15846a849fe085ae41cb27108e4d424b6711258945ac06dfc2de0b00be7f1b7906b41875d3a8fbf851dc953da689ddfd1fa6bf4cd936a29078608e30646087e303256cdc070183230d0181817060c1830acca327dbf83f3a836fa8fd1463a298a57f953da28fdab8d7252d9c3705217df0caff2eb1405a3fdfae47fd1f9f12abf8bce37db93bf45679dedc96fa33f1a5ee5afd15f115ee53ff577e46afe93fe6caee637e94f89abf94dfddd4afd2d71353f8dfe54facbe1557ef27bc1ceff1db13ef947fdd56c4ffe925ed5351bb133946fc4dd214e3b508f00124d845ae7bfd38ba9fc84784be6bd35d372baa823b963f3e982ec1f21be1fdbfee7c3b67e689fccbe60defe40f1c5b0c861c159b951f9b14971fdd4f00aab5bd81556b311b6c5e2b98a6d8ed5d14448f2f77818ceeb9cd7c1a290eb23d25c1585b0aa58844529ec4adce195d87355b4c2c74755ff51f4a78664c6ae0ff973d276b3b6b5af4b44247397760f6d1347434736d08b868a868c84b8092143428668eed2bfcada68f5a486e1070c32186236b4b091e46a16a42b3ddbc3bb791c1d4db4f33d4498fa395a86c2d454e77bb060fa551b56ac8f1055b60d2a56e86875a5837a3384b01d169cabcd818d480e9a6cfc301b86dd60b8ef33837e8ec0129ceb8f2880a4d7fa75f47f8e76f1a4aa89d4f47bb06039aff32b2c5901b742122be45808010b3116662c0409a54ba854aa5494a67ada31442302400020001316002028140c07c5e2f140d053e10714800d79a05c58502308b3240c741432861843882100000066444866a6090080a80ae005ada8063790e3ef938fa72a7b25d10b4841c4a076ff7f9eaac0855cdb8c6e2261d1c814507a15fa9901a9139e05252aedce0e1495fe189fe4a6d87b45d373933bbdbfd800a18dfc55d3a18b04bacf7ef038650ca315d5f8849e4a4e5908b57d1c2ba1f76b5d4f5015cbf599704c4cb821b79473e18b1282441d95aad788ff4c2a585a2fb64df1585e2cd4917a3bfdfd112c44925c838731371dc4b9f3d62b5ac2f704615ca08460475eb0a5d6bd12602f30d6101b0e0cff54a8d5ab265137cef139cd7daadc66b931054a7b505c834c15e837c2c94c9682a69b097c286df453351a46e7eba262682ab3bf03c01e4723fb087c2c43ccdc5d4d4b3f8e4be80dec3f910246a0179666643a241e48e7ea6dc088c362f467e3849831a8a604378fdc0b43e81cd3e309016dbfe1ca0c8c8ec901bb7122ecc7217d8c3043c6180e6ddbaf3d395ff5ff25cb53f678eca1b3c32f0965f1bef198c5b071e16b97f157914f617435db3dfde9146b4ee063ab78352dfc152c88e07e30f878b6c0c20b1706b01856ada74343a4329e090ea45da803e3c8cf4a4c14a55b65b503788e1253704c22919677523d4f134c1a680267156543657b071ab02016733f941f22f5ee440861a1752f4f1581700122784797c7aab633d6f202381bf73bdd31562b4b2df3e019b050b9ee0080d1542c1a580497d2345674d8917f87b93cfaaabfdadf01ffd831ecd9b2f153c6f25ef352d484493c0c7a1d397f1613f24aca88b4f45a40f7998868b080e019aab671d351649f2c9e6b5e5d543e89783a3bbf7107c568c7be16b3e360d5dbc2579e22f22ad3ae2c952ff0cb0e1a075efc75c76fc1417bd42ae6fa9c68479f69758dec3691afef22e34696f7f525b7f4e800267bf4c2d4b5f1b082d5fe2b60d25df433c101f2ef35a64032ae642cd126e767aaba076fb48b3fe6cb1fcac77462690014157a88f012d878f0c4dc200015fd13509b2e671620b351e07ade541da3e52e43223fad7cc131144d25671c149e855f870df711b3500b1ace0c99aec27f3e4cc506fa522316bf46eceff03cc1e6114186869b09def2aa6a3c6e612e35fed8fd4473a3fbe46c0ab24a5104068de681f3c55154da49fad5b9cf76e9122a386834c703b1dda370af5b0ac25fb69cd737b7b034c7fcc98b069a083008fd48cac2c9c825e1b362afa95961d35c93666d6cd0c354324645afe39b985caac78b7a072513682cec178e0dfc6c8a1e90c9ec4f6cea2811f43a61be8ed5a1ba9cd2b164c53dbf0782a1dbbf35c2ed58087541c009b840a6f0267b17f9ae501a212ee9645695e4ad950b73ca834b3c4a08c9aa572570ad3ddfe9f58c037e2f769b5ba7a9422d5d53a8471ba006ab7e41152513503d221b2485d8147fcc9026201b7599324a666eb5f237dec11cf8463249285246cea3937521afb354f7fa8757cc0ad16298b286ccbc510e937c27aeeb2611338caf810eb550fc824866b4e6faaa88900ded9949103ff15d91ab5b584151a53bab84e1accfd639110d9d933558b14f430d30992bf7a63d0232c169d473a635f1fe85816ee7310db9865f9c5d95abd288f4df6a9b8e3c045c0521136deaf998b87f7e6bdd1ec97a04f0b6bce611dcb70efe30880ba2d9bb91dfd913bf8a42d584eae854fcd408f3623294a6ae2f044d3be8933b9d392a7d93a441202a10d47800066603a31a08942fd51ca0300f766e76f15cb2b2cc6e275f9f8ddb1c82c01e93a63360680788d3e347b02fc4992e11b2ac8227e936df4041d7437f2e8eb60f0d3447b76a0a43ea05b474e10d7b502acdfb8b93ee180ee164b1675e44d14547dfd0a13b11dcaa462e08ae49da64671dc9ebc08e5efc17d5bc1af9fce9e00e5aa1d791bd2787987b1b32574f903c4fea95afefa5e0738698c59709588417039041a23a7824d80a62bd2a719a329bf4c3fb9feab81549868cade5656a4942bc8df0d912979acd99631156ab6c7b457c4c0294366007eae8d1a5cccab6276f8ec7351bbad0ab0c9e092b6661e7e712891c58491ca2b17354b36486383894437504065df621b2c834e9b2a290e31d7efca14fca1d5942df2f64ceb2dfc48ffc68a74d31d41a899c16f92675dcfdc409c013817d441c0b8ae5c02654fe755405f0c3d35a8ef5609265220baac205d723984ea6a4dbc4385be6f092a1f40cbf7a887c78879167aa193ac0fa1855a1f5d821dcce61fb18ec422baad4184246e3ba54c702ac6a117c00a077c65b4ebc172c5bfe1a19a76cf0cf3c87594450ec94f95eb3b7853e49c6cad42883ec9488786e4a3cfb979d91c0ec54146360b7191ee174262b6fc0ab77e77f84776684efa53ea886bb24df183c135aea2a4d0bdf6816ec24f0b048781a2d88302963c2713f7f9f42cb5f86db3ad6984f401c252841dd883da3c6fa77f9b6857ba9d0e1d7a2e5cc0b75bbba06e8cf98454813f85bc2a70e9315cde3c759cee1396a68ac8c780ed6703611f18c960d633d67e3184fef645a224fcd71a30812ce513537f6d25c73781bc6cd36a8213ee8e8e0981bdf0c3ac40b480000bd3f8a3e6c85b627a9eb70cd48a9331e647b5dd35059f1b81d0b4433af73a4863b9a1bc7e57eaeadad21f6ae9774e4372ce5ceb7c3aee7c16bea65267f73b0db8c84ccd423f3eaae54496cbd88e4f76b10af0eb48601d8173b830ae60640bcaa6f9331b19dd296c86a9891b6574500d36e816173598bf218e356eb7e59239a325e5cce79bfac66e803efb1aad6cc086f92955076c5d1627b5268b72293be456a672f5288859281fe26ece76045de292ca9e3c108af8da9d68015c9bd52dbf45f6da96af5255b5a37f956d35f63ba0577765f2d85059db0fd1a8f2394d9ff2791d7cfb4284ba584fd9581b51a628269a5d58da2fae68eafeefa272ef7a59d7f45d0f2d6f8cf337af748e47a311965c952b13c67b0b2d6cc2bac94a9eb30a1cba6cc96978ee3a995e481e7613c0512879e418193fc41a8c9cd736356e15aacc89704d70a0c41cd88350a1366cb58a38e75caa4f7c136fa4d5bc9d488ba381559316c08beb548ce7c072e82803675b2b1bec9e471e9d3184523f669b09f4286569604df6ea0338149ed24970a87b71b7b4a3d6b8866059e68fe05a868bce564ef2eb1fa12ee5efddcd374a501ccbfb912854aa4f5f4f1dea0c053829c48971c5b6c780e25a4fdcf822d6c28f70c14e92d3b79ff5bb5b54b65e13bc2ee3c081ea8af43bb896813ee32f2e2c822b731a156025bace8684a968ae5398395b526f34223a4a0c882c3580131e78a7bb80e200fe775c9b9eeb8c11fab851229cef3bed78a036c89e14571a74f07935a18cd5a2397052b733976de38b91c5cc1a177606594259bac928e8e60ce407e288530539a69e4a97aba07fbf687a6b78e42d30092b8c2357634045389052f534e6f00833e8c9f0daaad9131892329b7dc4b721c2745e8ac445ef8474f447777a48278b1ee9ddc09adc6c63e6eb007cb4930ba43f11949b8cc6b854065882ea900dd89c3b5edca55eab252637b657475b61e3fb1546bf84347afbba82877da7d2a7aa56e22f8128411e9b89e60fe4feff6d67612a6c96655421d36b774efa6329c8d63fc4c52abb03cd504e0357037d638e17531ea0dbb665c87cb0ece07cb4aa9aee16c18a2eb01a07d9c1146db94df6db8cd899378325b974d50bfc73ef46dd5ce1b1515158816e4a4e62ca6ad74c0f5d81e9a78e5ad6eabac84ed975842a307de9649e16f692218bd34e8399ce2ff45fd471b7b64ee635085f6b29b07b9259465efd229e97bef8a25ef954cb234ffe486da0249de58dfe20b19543ea661cfcb62f180a92541d02c4c4e0bc00a6db1677212caca922f5185e0b6e275cb07ea806223a254c7f2f86df071743b20245a68748cb15c83e65d57090cab9aa35b71a22c79570a88316e892c577799a4af256ab1cc4d34408cd8da89cb300c9adb524e076806d172e1d30e9a1f8a6de80798cae93fb4a7f60552e0066e14e320261b6ecf0d874e2d8f2a486caf02c1b63f53fcae0542acc7a65a14764a48bd666aa09a3058933bb8effee31b588847e2b256fbf62813d7284e5d2e4cddda3f8733f6451032dc59ff6957cc9ea7658137ec8e78a5f52a9f9ab5756b6a1d8a3caab0dbccdb2941afddd11ccdc4e0a5336f488308f91874141b4e5179f2a22ad6bb0bb93cd81b82af49ef95b1e6046be9e8805827b3fc20c1378a378facd27d2889634095d848ee3dfaab62aacbe3acd4916b70d06b2f2ea6e45217fa4974a8a0d7bed1c59842b4ba9985d5d5994514df4f3c5500c0106e09975473596abb01fc2c9850bfdb40e1983d7bc67a18150099eb71a175b22e6e46d1e2d77177aeb814f6b08f19f2d050ae0506e670c5d3c7ae190d34733fcaed73a912901648ad901a34218caf7d243e43d1a8c093750ba43de72a7c29f7df93681665e413fac18e93679548b18c814b01c7dc5326f78a94f49b51c529614a063a3efb4a903090ee3d5ce35c5106351e3d8024cd299321520da5c092a155c9059f558eb677d66b1971de0cb9ed904786e06d0652a184b9abaa91a5a1334873d5de07e578a55afcbc0abe292d799d51a5277a401ddd8d8c1cb97f81685e9ec322f7a3a0b72b661f2b4689dea30ccccea97406486d9091063b1fc835e264ec3154b513e899956367c80de159c2067046f7ee7f7259e19a3f3800c4ce0e7a96d414202d3a73429543431dee9c8e7e04ac4b30071453f73b4c2db506d11b4a9fcf35fb040ce8442315d5a782516b429962733228def004ab3fddc54d03bdd5771a776b229a014acaffdf654b8fd792657ad6655eba672bc4ae66a1d33995903e85b9186bc6c1a993df9e5db195d607559e001449bd65458fc4c180895f6da3e49c47434380745776e516a383de927bc6bb3a313e507e7a9e5e0703ad7fbc30db5c1c899ba3120ad78284f7304167e4f0875705d3039020658c01803f7ee42763d3ab3785e9304bb41ba83643aebdd9a76649e4eff6391b365ba385d3d05bdd5954a0791943c35f2a9ba6c9190e0f42eb75668953451944528cf09454426534ab98b25692feca94c36234b364e9bbdcb5fd53a476e2c97314981e3090751677a4292d618dc6377845503c774d2b871a821a5d9037fc4f8c6fd742be43039dc5a9ac174275c86350afcdeff39b538e04b599621b7400b7ed4705a3443f66b49706d6d69085aced2311c49c1c7e0c5abea27fda3866fbf37d2687feb923b9645a1303f8aa3b902efb7037df88667a1007ae6ee369c893239eb9f1ccc5d3f2c24bc902baea8a8efe7b9df3fef92f031381e9d5a0b995ae9cb4cc9ab929f743d6faf44f227ae86d8d16b20de9c50f613294e219b7f9bd7bdd3374f4da678e1b5c554d6c40fefbb6f4993d36818b557e57bc353168e2bbc295d70c12b0bcab8cac24d799088303df4e74131393fcbfbd73a3af04f4aeab0f4f37fd75603d4fdc4189591c32ab465bea432782aa0557f5547a6ebfb9a754aac270971aad0c786a605fc7d6d3e50f032df10ee8173131d132452675ffdb586c5e4efc62e912ea2cbd80fe3638046f1fcf2526ba361d447769fcb762de6d1cdff67dca5a33e61adb73364b3a33d665adea016ad3f156d50a1ec2590d9b15dff21b47ded97032c52efa6a33c923f9443a41238e16c2ee24244df1e69c2e3325ebd05a0c66d5d0d2d8a8d61d28655ab5fbd938235e1d9c1c846e36eb865ec9a3d69af23e9e404f89e7be3f967b454fc18f46e3a552da9777032e5cdf537984cd0c913b9822875ab088c0ac04ab72e5d34a744623025963b3d26a4818e90ede0aa75ae3c0552e0489dc1fc56283b4d8de73c3b0e844d74b07354955d1f5e8f77249c99ded81b429cf28f1ef57efbee34d58b1628478d0f022fce822dd27c2ab49fec9e01f8ef27815bc2e80cacab3d65b0818d222cb7d2e37afd8b8867be73aa3657340db7f03c847eff958a3d12038c41d2f5d7f063ba98632f8fa8c23e61335ae0e577d30b7d117d55f8996c54ca0e62708a991100bfc99709526350c42263914979160fed9dce69163ebb8a97a3e7c0960f62548c8ed8f2f4f878a9f917c311f88b3f812bfcf1cc82398ac15410752336efad46f3c23c5242ea1efe64d161fe71c3a333cd92e73464a2d4bb7cb42d9aefaa368e9a30865917756a826e3f79548de43e019507f233acc9ef3fe83e702713a85ac97ff41730c79e499ab5f2f2e663db99afa649a2eb52e552b5d523857a799b67e072167a9f9f156019d4dd0c81c24cc6335f68e8dc4716080587d64d764be27c958266289e220572e5774c0be688375ee12569ccfab52f92aba117a4d69243e9e010e3d1cd86c1556f1ce435c5b25f4421056ea114d049818d67272403d189042871d99d282d491b50e53aa2d41595b2ba7c2d27f76837211f76a6dbd53cdd7f12dbfe5645ed7e0a2aa6df7eedc7e3ee7d766ff35df146b73cbffd482fefd2bdbd1da0248abca963ed888c8e9a09246a5066039f00330c6a53d2665fe2468e88aba9971cbbe866ce436e9283654aa93208bd382a62b3c84da587877c735e38731d21ec99ba3ba8cdd45f541cc358c495dfd941c475cde0ff6f4f34ad95691c9899f0ee9c4dbf5658d23656d6b1e9ec08d58c95ad6b312abf7e374d34be9d1738531729c69973b06683e28204e4056d894847586d39b0c2bcb76a4f74c8085e191be1f1838079da016f6d58a535c6fe00bba76fe914213593af69bd155f05ddfa90640d7d9c7ea78e49185e6022a7b35f9eee3418e7b5ffdfb67f30924e3ae437a970de37c169b24d16d25815731cdf915dc74c4e441d92941c9a761a4c490a9ad3e74d5957a0d6250ed2a0fbc896612731bd87558b5d3b41bc8dc9a8608906c3d34ea49f537b150ee67299a7b42e2d6f066b18d5502bc6165adc73aaa44da3bf16d82f083a1f18e8b64970c80dcac6ca03e30ee0769fbca3c29abb68d2164a1b09d536091f44aad67f40f202bd95f52d0ebe0eab40fe25689ff5cbbc6da9ee1afce7d06e0073e96642ff61d4f1cabd15896870a4054356b73c245f638158165879c90d41b1c30e6a60ca843aadb17ecedf184c7a07cdc1503c0758342d2d08763144ffb2f7f9ba3eb7b1e1eef2f06ecf5ab199ac06b062009703fa494d2295e0d6ed42a5b5d7b79a07490db691743b11418b4adde28ecb9f368293506c0bfab3b1f6be767ac7d1813dc4aecd512cceadbedf7acd321409eff13ede58dd85b4bbee12bbdfdcaeb509e5b0945a1cd1e57547186ab541664d5925ac676bcee7bc3403238f058d9cc5cf2de8255f4134e03fbc4cc05e12cca892413a101b3ba34ed726268727a322a087a46cdb654865b0c64ac11e9648e56450c5b855c6c3ae694fa75ae14370b2370a62a1dff230716dfcc8079ba0c468f42626cc7e02144e334825c79d7dafedd8826a7ba74a320f0e149f30aee5e1bcb6d52a932a93772da518909dd76749d94f3ac54f26fe39e38f8b219c201ed2c2613969dde70c6ebde2f0e3aec35fc9b71ab682a45601c7920b44a10c9523afd008849ce1973c539491de348bad6775fe98079180bb23be391e676ed421e645438532422bf2359a7564063f843afa224ea4cfa8395671bd386e20674a44f41259c02aa10554028d560f146281216f818ca6c8cccf998075c1b55278e24fb1b8719affdcffd25f5b9e802c43ef00fdd36a4506a72d0f9d0918c3dd35705a65ef93b69b6bce7535defc86122ad9fc81fe8db7ca6e27897f04bd923603e0c52ce2f399d8fe8c295892a53ab1baa407184cd4995a1a00fde350c110a4032b862c5ba8203fe5a1cf495877195c4fd2c7a3b96ad71a92370ef75b83331cd4b70295ff39dd257a8e0bf7cf32d08a6c19522291a5c66b3a2cadbee2e3f597ae9cbfbd9ec97a5804c13c210fd590ca8699d45d10b0aa58c4319bd2572c4e2f70555785b83d779009e243264a6c60f0cd329f68bba19b3c8d53cf1059404a978dc740948206b905990ba163993a8bb2718c3939206903e165a88cb57d88d64366207be9aded0a800d23b71bee733041f26ff1be2d88839f61610c3304dc1f71dfc364f77db9d12da4047ece4d503463641964e17b319fbec325987c9686eb31d4469137b7d13f78e3d40f7115ffeeef02172cf2034eca62bcb6761184d8c50b591195678998bc5b456473435cbc50c1d09245076efd008c3010d24e72196a263f8736255455cb7f5025605f8b376823939bf421e27cbc017f8c598260d9c407e2c469d088f7b425fc9ff3207b1692b627494af959cc7187c6901fd1b15c30d7b59af8c409466514f0a3050acf811d18dec2265e40c66403e31663576e2687db1d5b591185c2558956b8cf896083a7432d9c85e7150a222dd4f6aa7a525f7c8048d1d77f4bb3936b7daa0e5bcde0a0ed7fecc641c1ad75f8bdf991bf9b1b456a5a99f6b413766a79117998c37dff81e43b3dbfc329e78fc50f240772cf78ad21d101ae3fc3e4dba1c55604601b9fcd27604a0b9cc7e2d1951b6301eeb58e4ddc27309d6a6dc9f153e18fbc7d2d75aaeaa9f5745fe20dfb761a25f3e34bc5c85fd6407e4194dc5d6733c2432bfffb2dbfc5c0b722fe04dd31d232e5fbeb720f1e8b6ab6471daf3f0c9fbdc1c29db3234f890518cb06b4fff3c8c0ec841dbddb866e140662d39896b5135852e00f5764022734daeff0582ec1e7bdb60b9e5ad39417886c0a817c6ab2eca5ebcc7c477a2e480afe999de22b37316dabcae6fe4bb2907b8013ecf848db801df53a5ef3130345293cc0c40ede94dc5553a314cf863d5de369330706e65e45dfd6ad2e1d880f45b8e971a335ec9777979cb3857044a240a190eb3595c78e2ce80c81095bd2e88c432ea6cfb074f8cb2cac692b272c7b5fa5fb8d0cd6a6f65edba713e11df41ef78803f09f54263cfb77aeba48c7414bb77d1a07faae9014bd7a2b01130b652e9689f2b0b803b152e0b664e1c926be77d1227461125aee5ee8773ca448c78c620d33f6cc4de389180e48ee548a05836636a028d517c2fba661a2eb4d5e7b7cfe5dedec59ab33b08fd88a12b7ff1ddc2e6d7c6fb06c7394115819d6d430b5f6245890bb69b0a954ca58a5ad07099973042977ab821907f0a50447616271cc879cf70bc4ad13bad694deb52c7e0a11b9c1cae7776701b42a58152a0f16ac8292f4265e358aa5cda432dd236cf34c40a62467bff5b0002a60fea286b41c190d5e0ed15a6cac7180bec1359ebe8fb78cde3d7d77792f4979b5f1184b844f6b68b1a3521f09b1c9102f41046f2123eedf2be94678a085a3736e29c429d11c7a0431c15a9dbf67a9317f72a4f9bf4691c7682412a090ba91116539a46d85d021f599586675fbab9e77db20810590684a7047139f433a71384a8200c8b2823df5559c82f01e2884373dee7192747414866fccad9105ee114e28e478dcc4f8ea974017ddea413d71840eddfd090acbd7269e5aecfdda2abe21030edada580b13f3f7d86fea8ec160454454e51c9cd65cde014625bd84d77386d063c59a6f822d3625d4566feea401f5c5ccb64a613ee489fb2674a3187345ca0c11925bbae48052216869e460ec18fb65091eb0994bbad82a358aa38cfd52b7d3d6388eafd6025ac0e3416bcefe9b6935c681f57ea558f0118f9261ecf3f445e2cd0c56be0c7e48b980bf85425e87fe22a704f5c1ebeb586635704a82dffa314ddb1d6d29c07227416486284d42c42af53e3a7a2e38b4d5ff1433362b15f053b9b0ae37bc7e2e4f113debe4e3ed2333b32a58035001843ffd9dcc43f28228068695b53f1d9f9d850c72079ef0274f0d9cc4b2babd011fff8969c0718345b959483b2e6b1c4df8eb7e52daffc65aa6e3e80f4ed9fb2f135a1d51be649b6dca2766148d11a9f21fbfb3ab7f53f0e27b66a99d9a6ff4bb93cb10c4e88e8dae276a0bbc69d4e10b5641d313ed139f9970af8321d05405490eabe5cfb274f538d6e303149c7fe1689ceff8684dece109d9fa1f661cb2657f24e986fda21d03cacf710724bda32df8eb75bd051e23da6911c126919320185bed2c4e2064aed29c72256882699bc364cc79bce5d9d363988674e6bcc892a7b328c5c99f61093d3a6a30d74810480052501279917701109228e0cd6a199527859dc6b7a4a3f24c5190d39918436c7548e106060efbbb0085cbbd8654fdeadd1a48956bb3ae2c9f656534739b10e857d2758773e5a69c27575b7da0c759eb0d48654a5ab6721074548c3ff004268b391ddfd47cd6f7a1a981c9ebfde7bd7f5feeeb7be402009a1678bd5aa3cea753bbac6278e0eef1bc934fb796c2707239e300a9dfba9bbd6f790c02c50b2f2ec8cc3f24fa0af65cfd3aa4e7f169284554498af257b187f15d76a0f4f478318ca0b30a30522ab2a4211b5baa2f73d4f908a7b802f2b1585449c3afd97234d339a778fccb9bce13dce3bf859294e4434fa039101944347ce31e89c7ed5d1df41275afd29262cbe4ae5bac7148c70561b9757a3ee7afc97a768007406c6972506dc24b8f51032ad81e523f2091b1e9778354e4b8058cdeb737441b0ce6afdd7c77c415d9628ce9783403c2e284ac0a57049ef1c7045094cdf7cae2d78e57d873238e7e0ac1fb0ba24ed27c01dc0f7cf4feaf8e94d37189ef2ecdd86d5c3a1ca3cd4016be18c8cb11f4a859f95c21309587210910b1cc39f6674a47749c5f877ed575e326baf4c9f82af0e02f7d83bded2a5b81803b320ff02ffa119b89b160191f6714c1429e524a0ad0192e7d41843ebdaa51c0f03f9981163f3867527b737c998cbc0f4d648d3a6cdd531e3b916c626f03f8f453b534680cbda1929547d084041f83f08da9ce34c193a1caf3fb92b7e93807a721840f14c7486aa8aa5826b4697c44e75a873377280c45191febe323c45f23e62c665075d0e0dae94c4670086f43f81cf5db6c2c57c19df78032412754a93f819da9c84992edf3c0468dd18038a12e7e474eb98fdb6a59c332094e59c210a5a305dbd70481d5ca1f5028521b45db3e09bc829f5660ba595bf2993003ec83e29da9ed80997955a73d2b5e8472c7e9c29b3653b6e74ddc357ed6426fb8a147f9be09ee58666fc975ea32d5a6b4bcef19c13ca59ddbb746d905b7f0bca0bc992d34a047c4bba504499a65a46f3502d4df57a3e41402ffcb671b1ba6cd9c4454ef010580306da4e3daa2d4612233edbb56b190218d96a5371b974a4d734f62617afc70f014969d9d962ed0f74584cd7b847c6d732a580f7f30e16a5389ba59d4e8a7835a83b55b042077cb1e16b91dec0d64423476830c7ee487a5c0d8a2496b6e58c2789cb75968228e9ea106449b2237539d96a54c78fcd897e37c096f449d01ce0607e983e8027504fd1f745e12dcc61e7ef69ca004ab71ac474d9723ee856fb6bd436acbd31882afa386ecf14112c7fd9a3d92cd7be0c492cd7ddeab975355cae7d7432f09710e02af336c660048d08aba3fe8d85eae3bf3dc3d68efd76ea85ed2cedfc942b39d026091cc58f879a729c4dd6a07280091f80d80976966bd5a4c87b7260c2c34c7d65c442f1efbc6672e3c625257f581a435c8f901f8215281c20622aa29020e6c7214e5220439dd582a7071da0835d89598c6e9587cee4071f1577fa1454c001bf5081eafba184e59031cfe496e8bc06829905ecea5111e1389105b81b7b41ac1cfccabd607931c8cd59e79913805719dc31fe624d7eb2867b3d179cea8e2e7b3a39746fd65ce266d226f49390ef6479984c73f6481ec5140220fd2c13e6fae9b54773f15b01298ac4b1175cc24c850ad9aaa07b6a7b7f0ced4e9b9ac0d6219daa2d5b4615d142dedf13c1d4525be3efb1b3b049cd8081585bfd2e4627cc5476503c348d0b44a06ec44d5533669d8929d90aabfc8d503479161cd20bc805edb2ec400227c91fb2d5c20d00462c8eee81fc71a11cff26b4fe9b56a7d3679006cb83af625246f442f31ff4541a05bc2d2e66a7cf6a598eb6defcc3180bd5481be42c732f68163a327002b823d719964d5e9265ab4b7105b2e0ad0073d5c8881581fc3b0bbcb23f8d49de348b5d4c38a8f71d44d2272c91ed3c6e05d21fd0ba48efd5435e6e534ae06a4c73e0bef41b7b6431f3eb48aec5cf483f9844d8a53a39bdee255968434ae42d4c3888fb268ff432121643dc22b2af2bd5c283b8132befe03a1dbe4eee0bf3543d826c4f01c911f6be112b7f8f5467d5f4a97a86a1416a3afb01db018eaea013b8ebf9c67b8e7e3ff5396c16e38a450f3c437fced4ea7cadafb532c8259e841955a31c7fd624b3b42879f3e21ab941d4d886d51cc5bfc89434d5e5a4c68cafbf1547e3abad92b2a8f6b1d1ae1e785e0d71a9e4a59bf4899acc16128bb8800f64890b4c01801b9433f5acb02b6898b65755d4e2276af7a05945903482101d47efc4abef3220679d36cfc37caa1d3f19cb40b549912a1ae0a1078ce3d4bd34d3461a00e8e10d7707f83e0357f1ad77d4b6208c17994803f0286793abd031496c3ebdc86d6f4f7d5ac5d63e04eb81df557e2456e814b4fb2c26fe1299626b6acb9a370c31b6449cfae2a8b1820ea2ab5a37dab022d0db155746c351d24275b8e310b0081081051763a08f19932f36d3f53c730ccd4cf56192ab4db6a8f41d24f944d58ddc863a0575845300bb6891ff075b60818fdc1b81ada6b31396843ba7475c8235f229fe113ad4e4ec81c66184953c1ddca38ade9407a0cb523f7316c470613e7d7fbbbc2f970475c62861837c104ba4a5e471ab55c64367db9a02e77390a3b3f345a3de0ad33ee813e3241ec99cc4d30f10471b4b07a34f6c6ea3ebd1e9333371e4dda1d1a33fb08addec2ccb5941c1958a553b80a8b92c55b14c4c06336bb7577d2fd15f7e3f43f47ad149d5885bef80bf2389b19beab278b91acc55c6054f9eb6fbe4d184a878a7b40c5eca14dff1084e776f86025219c6ae7b37cd7909d43d3730bc1e05622d6acb3cc78d0b3057a9cac5dfd01f57c5d310492b6c25ea76162d82e418dbdb73c734f6179deff6a86cbe9990b9683eba462e3c479f6f624c42b7300a0f8056dee5c9c8905d070b9d6a73701ec86cf28fa1e063cdac46be8f033921efef453a924352e73ef9117073c4e4acde4b733684618ff24195e046527084412e028653330921948d9a586ba954691d8bcb234b9d23a79ad8daf0335e904a2dac6f1520e5222df2ebf6716a7dbd34f221534c6eb659ebe19b2235f488624fb9c946fbfc90cd64090d08d9a99ba9ae161968c85bf4de3fefbfc136ddb960db956533643dd786e1ec270e553c78b427f31dc22c70f5b057a7cb05f1204886bd5e70d07deb52add219d73c58968397b3ac5f75ce841c2e28a11c6b78db4b2d668f106c44606233a55e3dbc40ba6cb420e455223d5026661907e396bf8a55345cd84ebe06e7fbaa149be4ca3414cb80c90d2bae4330e383b43d9c2bd47d1e949103b180c2133555e3867c1febf20967dc38412a605cbbf00ba899105c18a44354ae8e014c429d5718c39824581261905d8cce15d8558c462cb10fd276c564cacd44c94527954c0fc03c295a9f919b0e400e964441d7a798a59b4ae67c8cf3eb65e1aafbf1b99973117f9fe2c0963ca3ef1eefca9e38fbd71e16b66b25ccab2e69b5945ad9cd217f3f3e076a26b96fda5c575bd4ef0c2d7c0cc898f4e0b9b4484aa6e1661e5215af40e858b1ba413da027b31e86d823e2d16276c74d2f4c118492b56bb9725796b0cf7a6da47ca51c61a063cc00e101ef06e12aedee179b9e7f405f2a9bb407e5a5e08aa75afd4d2cc2da745e87d5d50655e0dd6b7826e094985805af4bbc3e1d68a726543b1aaeaf6e44aa7d8621223848053edba4fb0f363dfce42f44f9703c62980faee43aa85463acc8c5a230b1e0ed9c127e67a7678255edee3c9d9201262984a6551ad21a2895a5e002a52d5de1bb330754a7b66ff10d0da9967df9c44d5cdec2d260ae8e4d23cca6ab990d39ddfd88843f0faacaf86d84931ee45d4418d26ad37091a4d67d923dae6632fe48e3f1e96f99928dce1a646ab65c809296d11a59e4023b447220f54cb4a806b10e300da72f75d1e9c9017462ca14da0f89d6d5365ed8f8141ddf8ba691db83a0ebe3f98bf7bb40315bdc68576d77279cca314321e4925009de93ac863d731d2c1cd7d6c15f70c87da48336f2cf4c4bde3494a39f28fdeb686b5362010ae90f37696f84eb5529e70a260b2288208498f03d782ead02ee75e521c15daa443c8acf1e105e80d52d39ea578a8318eaac6ab66070d23717639339ce6aee58a22004d23e0fc5d2a2eb76bad6a6d1a211586027f27bc98e9fe6ea924b10033e377f4010442dc6024211f075012df1deff01ba4f1cca335969e084da653a867c089d6bd5f18ca961d0978c22cea228198a9aaef2e6a615891137572f622568f1d9516b4491f24b61c47f048cf0ce80e0017ba1a2f0af40695d74d5040a8f11f2ac46e8dbfc4ed0d2837b5311feed0d01e78dc3d3ccfc98d523d4fb0fbaf50dc83ea72805ab7b83cdde3c030db8bf7b5e68541e4f496b8f7044f7a2ddab01ad789efb0ac17a2aa789a089e84fd59d1fb0ebcab16477b160ff035bb824fb0aa8c8e87a60e6526be53ad91bdddc7c98d67c45f8601ad449e41acf935e23e70bf05b409a5897d84f912af99ad2f8a1b52546cccb2f44d9cadf192b1ab791981c548b1c87d47ed76d3bd492c1dec5c813fb0725bd70b2cded3cdb6e6468a0ef448ec1add1e4624e2060bc3a744ab65603170bf3748008f0e57c96820230d03d2a21008132242000294346aa6ceec78712d7a4613723e9b21c358e92376acda8fe469fc457cfcf9d12bf0d666269a628c93db4edae9369d64df35271dbedc95232e7d7b88593750009bc8e3fbc73ddfdb9ab7cfd54f2c533209c9663dfddad1399718b62a4e1a9ae3700b6bb2b7fb141ac3917e76f43e15b38345fa9213232d30d2ed19a90c0017ce88e647c23158a0dae8fb34b2bbec3e41024c45643dd9acc7505f1588497438563b057538ac8a073e4900376c0622f9446a4019805d80581653b36ee34b2b1755a88c8d2bcd19f4d4338b8723ac02d3d81a660cc1e0746b871c359abb74a30085ba09118ca809cd93dae75095bda4a1edc7410bde453cb94ef7bfb84ae049f55ea69bc31f5b6d7317adf73e7f61afb0a3b762f7c603b90b6bac2f1d0af77c359079f13609328dedafebd1514ab891de88f309614f96f0b890ee91c7a6be278da7413e7ccb5af5cd8dc6866f452ec8251560705da1112f6b93a9501aecc2a1f918f65f631a6406784912f5244fe680042d207944d87207405ca3864a6ae56cdae0b51220b16af30d905f11d790095a3ce5e7283ec0f7a96050d95cff900100e15d160d363990217e1c012321126169613b1eef2f3343d0a660f0c62b2ed74d0b3be62aba6d502f9331109318001b2482c303adfab2d4742bdeff02595c10190bd03ba36f11e5214deb9441a92e272cd0c4e448a94bad776d25b6c9f414829b0da6701b0a2db41d3a55b24706506da6352d065b4a52b3b55f68dfba604772aa56e9b1a655523b58969329b240b6f93b4bbe4f112ce01e5b6c835ae6f8ef0643ee7b062a414794c9e13a4ecf57c4cad640a4194dddda450b90d1ea6163cc66eee84f70ff6319d49b3175a7df424608e29b8bc0946abc6f80519060a35bdfbfc24e12a997de674c047f90c8522ddd110c4011328db48e22b4d061ab50576251e3af588e730d179f8f34031bee749f148b6beb33788290d0b7d36a93563f13fa4dfea5c197a1e6742f036064a8d66ed51484259aa20ce06b4bc3740bc419fd192e066005d1475dac20dcab72c72d6dd1f8d35bd43ffeb213a2bb002f920f05a003eebb57d57c7722eabd5bf08d316ac1852c62d828a990d88ed2d1e9725d088c78e1d29c3ef3a673f6c9cd662cf923c486ddbb545b2f04565614a811534d1930197113ef1878ed5393d38798be56181090bb2ae7e602c97e3390f50071a432852e89c45e5e4d1ad2954b0829041f3e3d5624cc8f2cb79ed849aaa2190993e86e2df9b01e914ea02bf6e445da4b33b07b876e8e8447dd66e04fa3f857e5aa62e14767bf15785340e03f6932ea0423c6de11ba483ba3ac3c5448642dca1259000044b494f91e526b1f6580c30ec829d66093f7d6edab6ac35da51d90efe28aaeda28bc3a24771c795b9e6c7f8aa469d828cd3667b4e20d31e7040d84830777927fe6606e92d2e82f55a641b8bbb4a5cb2d30cc259a8180d435d27fafa087429806fc181c1b580cc6a5265b4c24063ec033bde883165dd940cb98e9352b567b48667d2fe0ad3bf1f06ac9ce21ecaed45468051c9e68649b98b184ad105d9d9ad1b9988c8336895575ce91d6dac8fe144615490da0a27845114415666bf6ee9d6c9130c7703dfe3efed16eb51cc41834619a3ae4d4cc99b6c39f06a885b47e84923a62d29aa8ec0a8610588954b13d0e91c2a108f5f0d2fd4f5c3164ac93b591a4f88552bbb71eb524e4d6cb0b32e339d7660db92d82fb6ee3e49d2206b4f06a047a8133b20ca08eab8df71bf95f6829d4b14a5cff3f266a024fc191ef0a0beb5af1f60c48eb9f51f131f359108431d0882cefd503b53ca7e2f64062dc2d847e4ee9712880ad278d722de22f52cccdc917c083ff10af98fc25e990ede1441caabeb0430538e949726ce60ccb6236d3b2204a1f141750d3b7f1a63dd3c03d70655bf714533c79e8f3c86acf66fe765b17ba34bd6dd7e43fa9ed13ba62f75d1c60edaf59c16532450a3bf7630e77843bc4467cf98add38ed5045413a666a476662b0b1b8e880405cf133b08d57d46000af3e3855692d311ac185fc3c9eace1f10876b9f3d953b5ba320120003c7150aea8c44673b2803eae240be108e71d7199e41158ebf2d33494eb8c98efd69ea0e2dadcab55a89bb0ae1ef9f301a86b4fb10257d0230d7478de2c7eac62bdfa221feed4fd7805eb0ab5e935c9629dbaf76fba3ae83df22f3ac7ac7d40fcdb5495269d6681c5abe0f5cabe9b86c6e757b5ba4e05a533c0abd3715097887d2e54a572b238b910db716ce93471cd0f04ab4f2d6eb49930b6726363c8ab005c54b817b7c08d6464c28ba6a9617f804fd2aef45d8ec7890afb84d613f6a14fed287631915b4bf61654676d35c9c9885dc104e910ebad57989880dcf343e96b4fa1df847207138067ce7d251467b71eb4ca8ac6aade200cd6034d889b3356043d05b8898d14b24de0953ee3055dda9fef0a48c27bc4d562e87d8e7410faa3f355aa3452671af12167d98af205a2fb11e9b550e30582b8d874b30e5c908835f309b547e61876ca8c6817f43e2aabea6db3addc2d67bbfb0ea004499006646cba22da5ed0cc4cb004885ea6986c68aabf54e7c4a7eda9747a99db10c60d097a12e5d250f0fe24f8dfffed7bef906c0a8c46fcdb6166be859a64ba643c4efd0ae3b270b9c848979216af49f39b9a65b03c97876690e57cdfd9ca129619be6cc020084e1531ae654decaa91dccea4d7a296b729fc4cca23977d0cfcc5c144cc80802bd19cee9e8bc1a645684bda37c4e8e208e578113041a6b10270ff56967feb0c89135828d0cb44167273576c2a765ee115ec0759be8e4fe238a4cfcc534cde848f5871a87e9b374d41c26fa7fa2b35036849673a05488acec683cc4b9ab90521527a95d50685e3aa3dcc4e84d128061d0c49282339c2ce528547004d22b2684a5061f45fb18b2d0c5a33b01e09aa51bfd1636e17d779a5eed37961e3cf3eefae1dd3c5056065091e3c165a2089e9e10f1fd2a95bf8948a41ebac1c419f894702994d8762e07c2b16fa2b6cfa01b434c64286ae1f7d2285f2f88aac8edfbd69261641d7d883dd5914860520d8f33763658f44853633dbc48acee2fc9d75ad8a57bed40c6321772741606c84cfc76883702607d3f0986e799280142014b146dccf44151146b1e9c0466fa1a1730d6c3aada2ae981395196f2f0c654f7732e5b4b9e2cea8bead039a4258128543c2a21e26b6707c42255003e3881207f251b13e93da01346a0c29ca0151e0ef67aeaf329ee3589534b496700a9f6e305bf7c949d3d46a78049165f9af53e37e4f4ba615c3c7fc0ce78ecdd379a25ea40a4381e549d4670f42ea1da0232843e1f58d2a2487cb37df714d001d4ecf1b7c7113766475a16c6bf3e64e1a9ea0d9ae7b127f43484d377b52a8018ab7915d8c72116b15d733ca5cf58d33f62042cfc4955835a0e0c5f971801f79416eb6b4297778310e68f78765b795cea4d4e6ce4866600a9f24f8408eacc5ee474f62be1172842900e9d3488bc62de8a9f8e366aaf5fef6e759df2d4225e67832faef5f9c7c2622c57aca406554b0fdb83ff190697dc7da459f66c56350249fe07af4419dc035e30146052106f7f8decd46cacfc4abef3b9600a8067cb1089d17af92157b0778ea83d550d18786e73774a4378cea16acee28fe22eb04e5d31298f2252a1bcb7bcd01cde2b355894efd6a9dfe8ec5c05da30b209b6fb261a3d1a63d4e4127400471ba8d83b6451fb84834c37fd6dca0114cc4037ba8f81e829132c5e006db88f60f12ae4602502395c299b91bb0297fead99610dbb39e0e4edaae966002957443dcc89a1bc1c1ff3f740f14243593bd707aa3843c53e108d6289189aec4724a1c8c631ec6acd50fc0c6f52352c35f1f106c58756f831bd11371f9416c49b7dd278dd8ac4d79b0dbb1a5ac1f712432e3de0f32493877c0b0a98ccf1e77168057737a8f4e15054094e380059a1c9c97a63bc44df825059a97e22bf6ee5d7b472714738f3e6b7ae196a12fe1ee932148d78a8c09ffecf27b50cb5849779497dc04819a40aab94a1c6274c05c23f54f9a2060e2bdda4657a033dd72e8f3e100955ab1c886c962b2a38d19730b0700e0f943550e3ad693445e042d33e1667050fa99f6e66c04499365d895030ed4b6976edcbb144030e97a5f46f33f7c5b1a86cdd1dc71cf06e711179e5fc992d7415ac954086e7943a7a95754ab74ab64d8ce012a1f894599205685fddf029b5793b1a69bf2a98dc66ed0223263cd4df6fb71ae30b1791ba0b5af77e3b1bc13f2000dcc022f4d76ceac868d5b337c535efee6103b79f9c37fb70d3ef04eab9afd56571a5f6a59add0e626f7b14376aaeb40b212f1b8b09e5f8e99861a1f69a7a80bdc262608415597a8801bae0fa1ab3d80b4386a56ff5b03a90ef8d993f9839ec48ef9c2860a227f32420ff5d05c7a53ceea6d24b7b1ce68794e66db4ee9ceee68e8f5c36709f1eef761c5c15d4a767e5d75baf921f70fb2743d50fd49a88ea5c2ee17dcbc358ca335235513458066723299cb82c4f80b0e143e53a5f32c405f42a968a5348c89deda1ad27beae3112c99517d1526858da8460ea06b412ecbd4c11989ec04601021b8afadb0ff06f737381667088b09ff01115808d23091afef3d3c9afe76a08b8eac8c3fb836bc3a5f0df7f4fe152a969e6c3dd520cd8f4fb816eb9a34181382f8ff0d5699708613f116fb21c4d0fa19798d51869fe1e63d205449ee97703615a7d7b336452cc5aebedafcfe2fd5879caaf87c42ee736605ccd6fd8ded96307aa95e67d1e37d98ecd4488672e1cec854268b816a530fa55291eea7c63130f0944fc3b9a25329245d8b5fd0da452f53fce45bfa62f2d0cd642b1a13f4d1e0b7146bc262fa4bf9b144dd1776199b83341c6deecca186ff6b645d40f622dcb443bb9d4a5258c3fc76bb9784d2ad4b463f2307941009ba854552d6d88a4e27abfbcebba8b5377f6f9f7e3d7f800978e53930498b3ebd7c0d1f927b41bd9a28cd6cc2ced660bf9e02c207c02bcb89c26d0c06eb5b26412623d1232e577ce66e068b9b77c446783edd8ae314341c8ba66e7122592813b2e0332c12c48a1125c00c5808f794f87497c762686137c7ed6206d7ac3f71585f0bfa19951a005a04b0deb95d17098829bc56583168ce5896d2da47d5c2a78468eee1ab4c287ab550959c0afd689b4292e8323d54e98e02fe01d8ed8656e1162aee56c5c9a48e0a0f57dfcd64f0802ee4cedfcdd2df4489fbc1cf145a060de2111118ab3066636aa4cf6bf92a3596c2fb853c0812ed43c6f8babda3431b7af0462d87205bc31c4658f25403e540c658599cc0c019803b2007ac7ab59381c938d411d0772de08d2527444bd23762ded5b3f919b5b72f0109230e232a7905e38cf253153e5efecd217fc112d7999b432b378ba13ea5488285aa1d563033a09ef09cc11691faf733d1457fbc1efaf4d62ebfbd103a205fa805b9b435e87070de9479420f082a804c9bb0f609d8b49d2eb1fb222d1b6f49f8359195a9d8a5ca91518ac3b987ac4565d2fa6d265065b3b72f6d99129518928a30ab327e747105ea8ee3118d1df78221cf650206da1b1638e729495503b9649f5429043694c12cdc7780c2a8ae285b0a0e6c43ed1207e5363f0c6137afdd5bd93a2e67b520f56c9994a221e66855a436e88db043dad92618d01c239b95f409ffe71d0183bfab0c935b31ca56726b7c6f4aa91b256026f0a606fc9d925f575d00a2683104ab6dd3c9f2979b4837885561bb029d5824131bcf5d7ea3b39e69ea5992d37eb29e22ccb19a92513685f312d3393dba7222742f831d564f6a6ef6d14dd3bafef22330423026f18d7cc6ccf0227726c8640fc5b3cee3b9e05a3bc1539025686f49e3d8107eed3220aeb712703d9d2fbb24e06b0abb829262ae32bfe3ad70cf5a69e0f73f6a60232044efb61a1f8a23bd566c4378198313898ced634258f9a658d68fc86a124877ae1892e3761a820144e51cf8dd69b72872caa0f1c5b897b0d8d99e3f4d7fe201b053ce7e3f064b8df01db34624cf74a8dcc990f745d145f8fc7b0c350319b6722b8ca6fa09a4b5440679a2e41b616684126d3cc52678950749dd861134d634c0ecb36da01430147c3598a8dca53cd1d66efdb82e6c499a26e3828495a0f4b35e22490fb36f348c85bb7e2ac21381b988eb5007288c1170fb1419385dc655f2f8b1521003aae4066b94a967bdfc4a4e61f622a206ecd1c942c1fc5144515bcf88544ab45acc107a8d905841396e8fe798ac4b6881a0ff500b6380591d32804bcb21842d7d01409c945c13fbce8e6cd59f7d6eeebe0075a5084ed260e6ff70a99ffb16f2243724b954e8555b819a0cdc99c21dba944f4f04e049c980399655c17135288a6069c4b07f493fca7278662cef76ec4682e309fbd9fe991a5e51d44fde60ad67ce85b0383867fa667992ebb00f9274f30fc266d36e3bf98a94ca93bcff5a3995f66d1f75376af0c96c2db91f0d5f64f97f07a75ad4e3322793647f8ff8b93ea3528cfb97d434736474dd301d986504616cad955f3dd008dfbe901549584faf37d46429538993896c08563559adb7e3f6c6af2aa9ee890fa427b6ec79a5d63d0132284210692f60e3b3727c5636bbb35e18bcd6399e865ce397e522cc8e8fbc166fd1558121ac1e665a9f7cdc9f2f324b614ebb9cc2c62da88e0dc74a317f5753f3017ae241e1bf9852344a2f90a033f78d7da97df58566d9fc6830cec340ffbeaeac7231b7e7d0f4c7566a64755192a9ae50de61017c2bdc0320a9d8e231f8a4b7b61e160dc8d21807ae864688e248a66c7ac6443f207194e4044aa31325362c533fdcf006a663e6a27408100ba8bc1a367e67ad5349207f60e3f7955177802c8e139488018b80eff239de565839af3a56c5e4b7caa790223eec2a1ebfdf1f1e329a1ca66da529ce3940e0a32fe4fe6296e814a2d3997f1f3a4cd175c44e5a473276393dbfed4061d59075692d7715480deb942b87498212a5605c2795923b596d6bc45838238c68fc82da07af26b85394e0c0b410681dc500bc6e60a682ca8c508d139c2f3758b12bd1f0163ca631df6aeac400035922b0777a83d45673e03539381401f6db26487e0d047c306a8b2d037a954ffc2f3fc205718466e598ba1683607707cb5e04c93c46467835ac20c9775dabd192dccd0051ed342095fe0600a077358de7a722186615581f730e3d3323d418b57a22b5729843c641910bc451f88b4c774041a66e46750e4df0ac9900bf26cd3533e2cfd4587f8a2a5d455ec0b2b8b4970ed9c43fb617551c5216f5b5899017c1305b9325e15d5ef45e18f3fc18192754586893b8ceacf3fdfc49761a7f8b1b49622a2fab9bbc5af2b63c6abbf8edbc294c013fe4c0ef36fe7e3009350860dae03cc19933d3a1a5030a750a31c195df33aa09103429b3d639d48a1e90f3ece6e914a05e13314fdd21e976b539783fd333f74cf89178de016172a605e984629976355d1dc1a20f77f7b7ab8a20240beff483a63214a1e1e98f4ca19dbbb0b591f3322030c1ad425da2b84e41a1963e3d59ed67abef364dd34b97b7c8cdba3d1b5bb8809e5432607be9858cc5000f37411871b44d86100535054155771f8603fe93ad713432f791a51278f4f7cabe925544d03f63dd7faa63257850debe1d06a265231e7f163e35f7f1619022de86720f55e564d2c513a806d2ed035d029c4fcfa4cb09bc24eed5dcee3206406986bac74d77c5a6105798f74fb26796672a4eba607ac8a483ec6e000815baa523d0432220110f330c4b6cf1854ba3af63e346310014f365ae11b49c6683a4575d062454a09650b27924eef23d9a83ae0933834af5fb37dc094a87d0481e78e48b057fc0fee4a171c70975d0c8d231427ff7d4ec3d57b2f7bfac9a84bd678a459eba0f0e5a7a6831d3c2103b8880c78168163e9bd285e3d01042eaf20c1f12ec8245df1f2d1163546e6dcecb26677c071056050a13fce24b65957a26f62d911509c2037ecde39a661db4418c4e1848524220755ace87196e831a0b9eef3790f4421f4d389761ac67e94626702a9ac9c815f00420ef1c41c1d9766effd8d263358ac450626bde404bf2a25df83f615fad8e5ebf0152b4d77a7d72ea0ec9f1dbcd7e4b035389325d5735f997819e7e38bfbd7d5bf8c165b21b7e48c5b567b6a1933137b0d6f2bba032382767a44047ea0d57d51f3cb93e65fae1582f915b35dc4e16c4d36b5da8af2d8ec13014ef2da28a2b044afddff6d958d96c61fb49f848b61ff2d207c650c171f85405b80f22060f0940301cb77801a35fb26c389afb42cb22b081a6ee48a6bc1ce94dc44ab30cdf64871b23f0e91048bfb195467454cbf25acee40d31bbe291ced925b0b5e046b89abb2d65c3dacd5aa80b5fe6ab7d6050f89d728aff7c355059f24d662850ec52a6ca389d935b8de2ef5760a92cb6712cc82f2eef9beacb86f03095df087f6ba941dfa39eaeb04314a80ca44a528c31ab6434fb7db4885aa9bc767863adf60ba5b994568310a9ea94af8b7317c7ebebece7e83ee6bd408320160b05093e74e6393ca30a315f7ed1f10b7ef8fbfcbc223a0995ea0f99437c8c666ffa2d4d8296233da017d9c41e3fde467acedfb286a5e662da1f26d0e049fad95ade3af2597779f6c6105241c503e3074e314c5c73b8a8b5c1478b9d8202536cd7896d860737c7ed6514cebeba912e50eb92f935ec4ae5721008177f1bb672abba05203549270c3b50221c04fb4fcd95d697e29ede07050bd416fb6c18b9991fab95a304c356bd627c5f6e75587b3e102ceacb8756b9000a5f2ac07659faf0aa8b8e4a850f42de3e6cb23232516a55e02e09e23cdc33394daf4b1773f908bc7415edc046ad4e99e5c5aec0fe416a63c7c14aaaf9e70b20fb9affc3a7b01c883e4be24fbd1f3ec7721fa4ab5989eb0a81c373db88a416ff6c44de8a345c9308bd96f46566ea24d39b9d966862df196bd207f1db920e625a8e1708960374e0ddc8ada576a1a58e21bd464a5557294813bf05320883e25dd470972061622951312ca0dcecc259ab1f255de1a36309435ffd9bd8c0f6bc96495b2767e394397bdf41e3bb9b65813295d73bc6c6e064f62407b6626d2f5d7a06d4b4853a85b22ed78951597467b14f3dec9a366cd1f2652a816933ff5135de9e1b1bd776000a4c5c065c919e69f8a1451578e2597f9d31de9d5c28b59a67aa5c7b9f787b14a83e56e6502086fcfc7e030baaeeaf77e385130fba36471260627dfec7acb7efd493c244218586e8a02a70419281e3e66c640abe33e70de9a02f70d93e564092c3b8c5c5ccc08b369ff84ba012c1324c7d4defd372fd67bf22101bee4b44e2b1a34384855dbf78b7cafb84d6737c16b30c5c3a8e413569a9808eec8f21bb02b3b29c206e4d40b7dff778e1f4e3dec07e55a2d490b75f3aefc158509621167867b5e8c82588fd77ab96486276386c79f9c20b534de85e7dc791eef284f4e68a6bf0c2ac6b60cfbe5dfe04fc1f11924270c9e30d46d42b519e005fd6524b305acc5c71a173cb33c0a00b2e51d31cb0eca2d8e57a151ca08cdb86a0c835247db38d65fe6e644dfbb2bbaaba8c1a60bd7fd54f954565445283ef880e3b89a56c286493238499c4f06f1e6a80822f60a1ee62123d57b460d5d051aaf43b0d7fa6201edfb6b3d8418b223453e751d189ebf3ab2e30537f905b38ee8888da084354369d229129d353261f88924638f4a38c4b0deaeea41dae793a90ff7a13d9ef412b385a0239539ea8f0b717d0f61129dbd1c33575734820b02f91008b1731088c0d26e0a380a5d62de4d88239ed324c186d6d8cc74bf1a99044d1908da73848d06519790328775977bb20f2bf3c65dc922731c159f9fd0537a4d0e64c5095649536e31210fb59214819ea1f019ae526d6c0ac96b3d8b393df3dac1039aebbc23a982c2760acec46c39b044b34fc56cdfeccb1aad71f670a00dc4aeefb8be7357f4fe4d39775192b0efcc916baa32e2e869b26f048d0fc1e2eef9450165a6c75cc47f432160aa91ba28629f6687050a95b04a0ce80309899d45f07064ee385289ac6c1f93946dc559554af0ff3794d3ffc093ad475c68aae8e0a81cca109418bd9b3f931a1c5629e9fced89ecc82a181160ac752f52be2bb26a7511fbc3a6713e5e09537a90541fa7990966fab30366074ad5f2626c3e23fa3991c1814d22d3f08bc86ede4ee3407dc4f8b49e4341c2d576b3b0a22e5be4d39f576636db5e135dcd2e0a76aafea76da7fbcb5a92903474f2283f71b6690a8ac1532caba5910debd352c53c770990bfa9e34f5f8aa2a7d03062ab3b3acbc22871ed761966d6b37a2986198b144f529bdd92aab62eb5a61115a54f9d319369f2aa9ab368e03abcd7dad309022adbf37bd3cf929edb0f6b5ece56b348937ecc82eb885ee18076131ed7342d335b34a11301577decce110f6616c318caf04df7d0705588db9df94770ac72da2a103fb7078f8131b022d72afcb60bc4e6e9d02b6a1876cac46ff4f740dc7bc36619d5d7886533f183a1f3778ca346a9ede306dc8eaccc59d0b3957bce032ef25a25d248f9bfe67ac62263a3600762bac95598a9ad94ad4eabcfb7e4e6b8c5e586355dba032bd82ad77b37759d64a2df9eed09f72f743c33c9b747b95360e6d0af2d532d00bd95bde24d825c0726250762bbcc9199e85b818c9a596b76c8616597bc7de015215dac5d75cbf42ca1951bc015725e22e7a9b4731d027fddf8f43f62567e60fb94b83903d82ff2ada8287bb62c44cf8058d29ac1edac4edc80abddbd79d8f95ee7344a79fe5e21ec0fa0972ccff7bfe15b212a83633e47b248ab0b5a7d58a58ed85bb168a8a608e1a2eab5c31aaa707b0ed0e46e98cded76b0a6ad9b3870c5338a26c28a0dc2ecb0050a79dfcd8e5bf9a0b4c4dd3416fd8224ba0698eb50ab228a6ae5154d44067755055746ef885825d18bfab1667f6919db8a8c1f9fd7cc2114d2852b859526269b37ae347fd680a7340843b81a913a4268253cf52034dadd3f19d86bdb517a34aea43788895e8de5424047e3ca1dfbcae8e609db430648235718d724d3ced9b44d46d295744ccae15e55985ec04a8d6dc78cd9bdd6ca0a464e799faf4a005d064bdb8de22a707f5fb8f2e811109728e5f5e9cfb532b5bb1c42c4965a18bbef7e310a366295451bbed300b3b05cc46352e3e0459af6419ce037c15bc9e5042310f34af3c666e50194e8463536eecda4bdac4254d78ac2dfccac1755366f5eae4f4ed6b9a3602286f0e5f1290b646094322c9b4c6e349637219d047a6dcc0ac962a8231889435018f593d8487623f5c2cd0746883917e628c95dd74d2b6a030ea26e98b21cf6c2e81b35a1510720116b979a13f4a0b46a21a123bb1c3d545a90bfe074eafd2c3c8cba1a7ed9e561ff12e4c90cb38dd3466aeef1843a579073bb0ef32f590a26d168fa6434cd489758511915ac74c40af494630fc11aeafd0d7e549c663f88f9c159a3d440ea83f4f6b034404ad87e2510e7496d4f6f1e6b6cd8f604e8a2844cacdd5b09591032b6436cfb3aeaf62b968d9d7b68a6be4071b2c9b7bd7a01a9ca0239ca1a391823f5c2f487d420cdbbe72ae73e44458d55a0084bcfb7a217eb497c7062c5a749af029d730a2c1bddf601faa0dc3c27a2e3fd1c900f7a7b2adfc86dbd9d40c08e5f2938c6d9980527487736fc9b0d591f239a22660d05f759511e3269985b8c373f5182fef04f2a0e68d75a3f83ab33f3f2cbe4a0b8b918f666316606a276e43d86a6fb214362b94b93a0e80cbb8f24b62beea0ff341c97bbbda588ef8ecb862a2e72e046bd0b2a435c43e44af8e4bfd2cd1e4f0f181a44b09b0a03af9d8441bacc2436adde585fae83a95cf360594a58a59b2d55e6ec944a95481318527ce25e2067e4d2ad127c12d0abeb386bf2f45a53f02cca91d80e738f9e441b293ad36a06f649eb83b314a705c2cfd77ac567c535855bd1adc29b8eddfdf0cbe4b5d1dc6773b274a246c0d91522f82c5bd59dc934c3ca681ada78ddeea1372913d5e000d043b5d31929980df4b427a5ae4cf34c1974fda279153fc9957d6a263c1e04d692cbc4008974f4679547283a5f9cbc9cb3ced86cb7fb9dad5249a17c1c4c326aaee4400acfeca479c604f43bc32e162041f155f1655dfec3752ebe401ba4d70b8191ef01da8f6a50d392d7d3b2a1db0996b829a100c999d714bc053e38d71b237d27830f2b4f1b308a4e0d7f74f534f0d2b177b032c22425879f4dc92d3f4cfe6b293e4f0caa17dcd41958b5591c851d132550e0171ee4dfde4b20df7719b510e7c17bb85151660715dc19e9ef1749251c3d39156bc8c382af62d526005d6f5cde903a6c0a912b232c6690028090b890c10222f35c091d4921b5c649ff6058b85dc2781e912cabd04522615bba96bd7ae65ba30ae1f0e4e558fee30911fe3e81b708533f6d6fe79d021054236e41f1ad3880f5887d08234e73b57ac85a4ba155141fb1968e83b59cbb7a1d4c6030c1242b38d93ba71879aad5072bc6926a2b373f14eafe8f39b840126b2945d324601d9b453ef499beab30e07d15df340ca587fbd44f826af7b36c9544aff3d710906ad898cff9865e90fd094d766b4ce24be157e6042b8a9c415148c3fcc56384974ba4318c1103742d3faf49e4c818a5f082fbba7ad88856e72eb40bca4e40d895a4ff3848c6db3b54d21cc4fe623136c50ad3b238889170ff6dab32d43ec81cbbe71bcd40b3a878a520cfdf9cdd5f78d5f947b02687832cf10af55b50312cae3ec49c4dbbc3dcd13c53d3ddf165fdf4688a76c8312d902ddd99fd83a5d3636148a5f6c9d1d0d11abe5df93feff72111778c00afc08877106d6ff4382179ffa4414166fe704df70afe239277074b7aff63d7f94919c0a78601bc4b78755f4bf80d4003daed099844445c04988e94076579ef4c543219c528cfef166f7bf167a0c6f64c16589c3170072f53ec6a9f76a24e8418850e0161a9c06ae4517125aab4ef8173e99f04bf89e47ea782350122430b1f338cc312aee90568565e8d9f3620577b042a55ab16da258966ade93d9c9849fc4dd53b3fedc0555ddf7913b574264b08b164f4c8d3ca2b1ff5c71c3f7843cc100c709e6bb01a05972bda9f7b6745649f5e5c9f5842101e1ffd3498dd1803c1427260ec99eb002a3970a81bf3b155a969de3901a569a775d53cd0ea42bf55fa7264fabfa08dba46920a4aa3544e51d2f87f4628a3f607729a9e22bad0442a0c481ffe82f9ec5fdf763fe715cdaf5bd94e4f53901defe3fc8ce4b6ac955aa0985503cb8f55a213702ba0f9a85308f4e2118085f8e4c51b8c9523b319126275e7d61c0da9e416236ad0e227ceb420105129380e51ec3bd1c4f7609374ae5cf1201e03293d1b5fe829357add367907f1eee4c0cb5240c83256089e0cfcf0b8ac25d14fd7bbf7b633bfff6ab01d45a8ce488c8e65860e3846b6211f0064a35e9e3efd9a2610e6174d624028ebe9456ff2c2d22427d6a4a2b01b7b84afb424507281289f4f25ff89bba4dfd924666dfcbb38776dcdfebd74de44214da767d60691a2776dd0c962a534b08d22aaab85786dfa5c096b06a4b66a363c650813127d417d19946a40a936f3ebf28dae4d8f20c0da148b2c42e5a82c46946a6378b6feeb29304e5104f24cefdf49450fdbed742473ee86e03d490b2ace0f3187b35d8a2472e657647845d8e96c67b8229f0c1eae1d0a8a1ede500f6bcb6a8ec3ceb613eae1225474dc28e9035fb99d118f4953fa1f3d36502fd0fa194dd2f8873c88f6c5f96b6a18cebcb445336d2a3dab672bc9c98bcb4ef1886efc9f7a74e85473eacba0345ee898d288fc9de0159446d8494a7399fcb71ce0839a1d1f8d237c127ac5bb369d3d7dd88f20c2aab8f172b030c122d2c65d5e5ef2bd7f3a883def528d8041b641478c41a0374764442b54a21bd63a9be2ad66674369a102878ca4dedd1641b6cc6201decef325041759a3242f03e1a67c8e87ee5f6a3eba5b23df87a14a271d6bfabf16220b3d5a53a10409d1561025af5cc474e822549747069d7515e2fa979aa5ab2495c68f2a4025b30140408949c860d4d0992047a02677ccee3fdc947ae32674406eba80b9893780068f7dcbb94f9f11bc16f45e580039cc5cfbc8fb90765c62b16b4e0d38b309a920d453524353cff600bda37e6c2cc25797f8c40051d143e5fc085a12c71050951837e95755fd3fe06089bbada309529d032cf0c55dab30c649d5b37595d9cc4ce29352950d47c32afa4a6b1d05523a880ba28dc90d4f1533f1c592145a1eed11bd016008824923fec167cd527213dac81442890e05cd68e510e3a656262b53c2d04c1c2c88276518931173b9c9302912f5c3420ce71643317032bf05ad31bde5a662876475f315e001ead667d9b89b75252e4d82d7586749ec1904f4a1744e88cb3e6779184ce7ec8fb8cb20c1c461a7ae42065272fc1db214e4c4f270ac7512590e759c2f01b64151553fa9c32c08b949e2bea6566d84c6c0925a6a044cc464b411b620dc5af5c0a9757f981390cfa5e410e11ac73243929999f252713579d72d77305f069a7fe123ee9f69b0a42b16c64151fe9f599d2bcb0d1dca66f0023c49039aa342885a20942a6e0e483f3ca9d02cef032820e134e33aaebb4a88dfd59291f3974ffe4c3fe8fd82e8e11fb59eedeb59704e360c187001f17c00f0a685c43502bed0e2097d8ed67b2de4009d2c920e7d037ef15fcc767777f79652a6940266085c08b2081f8dd12b34466334466334b6f3b990f597ab602e97aebffa51a8bffdf257577f5d7f6f714f6edb9356f356e6de026f27d697a396d45612e744f2fb369134993491aca9c944d2c646d471c9eaaf9953a378ca7f0a51159895eb5fafc4ae572c6e04de2ad6d792fa026f46ea0764e1b10d3963e5f53c53924d97e51ed99db33e0f7f4fcd39031bc59c607937477d3cd67013725414310a86e7b56577197840fbe76d910cc1ed6dba0e1edb9025d6754ecbea268583d5399934050bd6fd90842cdf70d815f194773f8e722fb1e6129afb1666e237b51a474d9087ab1aa7699cc6695ac833065af59eac39e1f947ff513ae6cc74ae06a888e3020de9b7767958614954d9d5755133679b2854577a29d5e1c137565872bb3ab4c67270008f6dc898d89dfcecf44e0a05e604a6275eaabca8c0c549cb1a94522118283027303df152e5450577bebb38b9f3bd658d3bdf65e81282eeb463581f4a5490ac905ac06178452d41760ceb43890a9215520b68adf9e2cbf2b93c2a5e10fd826e02815f7c593e9747c50ba266345adcc95de160b089d169703ed469c15de160b08991693778d084b21f78b9b5d1c6832694fd60d3b61916dc596f308d681d94b1a0de40868d3b619966dcf91cd322c2e2813d3ab00ccad03494b91dd36272674c8b6f66ebcefe981b133b15416bad2215a98b7e7d7faf7dd29a699bf82b1782c736a4691554657278753f774e46cd6ed53261c908a7e69fc2120fac2ae960a49482d20fbc637f7ea908ef947e7e0905bc03fefc920fbc43faf9a51e78e7fbf9a51fdef17e7e8907dee17e7eb79a3933cc1291d20ebcb3fdfcd290920ebcf3f2f34b27e01dd3cf2fe5c03b303fbfb4e29d989fdb34c93c1933bfc47202c888a7afb9f196e65d68be048aef81c05eee4921084e971395d0bc37bf996702e4745f689e877bfecd3073b845f294c584ddab83d281d185c137f36bc20ee62fcc3fc984dc2d90a64b763744223fba889d192d62778615bb324a6237856fe693c48e0c50ec74f089dd187c33df13673ab113836f38b193c2377313bb1c885d14bec9ee29eca4706abe4cd89dc1a9997567b0259adfbd664ecf2976afee35734aabd2aa7b9556ddabb4cab26965d06ee6dae59f99f8d2c4ea7a69f5329f2cadee0cbadd6f5ac17827c42906762d1356bb875a7be85e24247439cc10c72d0dcd9c17a399f237fd9486eeebfadf98ff977c096987de3c1d4142c28b5169e8253653533cb5b2fea1f3e54a8b2fb1299e62b46655af3ba37c8a5b9f7b12b1cd0b02b11101c28aaebf4b0f20102e4414c775219a39323f33e52f03749de8bacc0a563f7b526655ffeb6a88a33a88cabc53b9d6218eaa62fd71144d132e3d045d52e6c7854866355355a471adea6f3f7c236a2f565d655a2833c4532eb33ac2f69332ab1e329355b3aa49786c43cebcaebfd72f31a794eb5cc8ceafe90aec89d15e73815d675170237d25daef6520a771cf209d3c85cae59fb0560288cb3f59cd061697dfbbe09d6d021d71f9bbc53b1aff0ce4a90919346484886902a3064c122629e0f56fdaa7262a47332eecabd1f4c45c4f060d514688ebdd93314daeffd6c1a8e130496c2629d75fdb366b29a522e9af72e845042b5ab9ac5c562eab15d1ca05a4efb980fdf2f231c8095917b27d67bedac4758b8615a2d484a40629099ee23dd9d204c5f1f5c4dc2ee65934ae3fed9f9c15e2fa3b2d35b95e496a9092f09607b9cb85bcf4a18eb591affcc7590ed4e54cf50ff5ab891ad6452fac17d60beb85f5c27a615d7f17980bcc05e6027381c15c5c2e2e17978b2ba6cba4803fdf141e10bc225a89ae6b500ac7813fd71fdc9a45bf29aeffa77940b8fe9d695e11d7bbecd8cc69d64cf503995add32b53ac8d46a97a9d542a6d6f57f89f5176df6148b5dff9772e6e86ca51d3abd1e75c997f2747221abbd0bd9ed69ee93eb5c12b825b6339a0dae7bb2359784ebef69dc93dc12d79fb9336ab3cadb37be6c63695814e149ef626b517b7266a56171fd3b916b58b36eb890a574e622713d8a469f9c5921a1456118cde742964f7787e983aceed0fc3233ab195c7f9e59f1cd14b69f9c595d8fb9332f159ec851f9522b054c797968fd1abe1496ac44dabb704f43eeb7ad659eeca65c4a068f7169477429951eba9f4b5b5c97a8be7260603335640446c1c46a13a827abd0a5cf9c9302adae4b7a8f14d6546167624065c60836737004cd54cc5538841cc608acc24105a31c84851e139cf247859e124ef9e3a082551e128c722157792d4731c13b27bcbfb704efa0f0fe1e13deb1797f6f09ef98f0fe9e12bc13bebf2703de8901effcfb7b41bc93e3fd3d253882660e8e72a692e01d1cefefc180774a787f2f09efd4bcbf8784f702ef08afc53b34387004a5f0a4e9925e2b8527633c9713200571c810223823ea75bcbf77820a6fb3c2a3b0c29b10aef039e87f08027be98b21084e978a4a5650f2731a87a49ec90f20a73b73e3699e823c4a56c0517a0947d91a6986d9ca5ff047c5a41072b770fa1586a82012f91105b11e9d20d62c36624d820962c5c237fea258d908c5dac68b15097ce39f43ac3f3a634a24f2230eb11e816ffc819c2e15eb1a7ce32588550db15ea109eb8db0a6518d508bd0a8b0aec129ff14c29a85530e6354b374ef5f631d8e32069e87e3d6d8ccf15a9cf227bd562cc65ecb6b6980fe5fd26bc5b442182c14c6886f3c66058b69392a2609cc555c8ff0523126c83e89a3f45a5d7abdc0b63ce9b5665a7ce3a798ab668531d5970c86e3b9857c4f2169ba648d91b68ceb1f1392a5db893f1a2624b75bdf1492f6d67f09c9bfb58ae4e94a6d0949d425618cc81214a3eb62ada22485e7e195280591549bf29044b630e5e5e1648d59576521395dfe0579cd9f60cf566bcc7a2dbe8181ad8961f114fd8d3ea9c8a50f1eb9f43f2497be97e4d2ef965cfa9cd1a54fce185dffe9468ea2a4100cbfd00bc9bfdb7721892271ee26923557aebfe6b5ae8b374cd7adda1697fefc4d8cd52a1edb644f0ae096243f897279fa36f2572e9e70dd96cb5c385183cbe0cca94d9c208b28725083064746f2742b16411471ebd32d7ce0e2d6ff5cc5c2adb73e6ae6d0f1d69694235130c1821ee020cb5845f2a35c58bed473b6b1ffa39b13cb57e6f2163eb8ae77190b2332b824b54ff4f713eb2a20f4fad3dbdf5eae56ab4bef14691240ef7c7aa708a4af8bd4a61b8bbe4c3d46c1daeb956cac48d24b5b98451b47f1b36ff143d16d7b79b810da7d84a35e0787ab8c3cba3f116d7408f47c22da385fc8d8208f7509cc80001e257d89c0870d3530a1e9c1556e3f57b92d7e63fd79ab4886e0646748e3001eb799a242c6e7713ecd44f617c6af57ee538ae7ef951ae080be1aa5947a6fa4f9578877b3bc8edb3c2ddcd833eaa84f45e04e4e511a02eece5b6be5a7e19ddef5bc8edaa376ea020e8e0074747c4e9b7f1d28d4e6979f9a6a4eb4d6ae5dce24f5f93baf867dbdf931d1be863f7ad066542d41bdb3fb4143d7f7b8eec135a7b2af9dd8d281963b411e9a0678df3d043c11025c4b0b2c0e6cb43d175d21a390d15fcbb87008f75d38a4fb19922d482c0e6c7481cccb2ccc6f19689885a4cf0413d0c2d5de9b2069137938e75a9665734e2dcb26a76959a679edc2e399c38449f634fcd1a3d2d09bd89ce24270fd390725f0c304079dab0120f36a8fba42c6ed69c8b38a646f4f84090e3a17c864a15988904b49bf3e0e26e0e566ef7925692208fc66fd9332994ee710ed93c2f49338a8d487a7191d1dae00ddb748b20fa4e0e092ec279e3c11e55d1f7c63454c8c6d6155f65c804d8763e09cee9d1f8663a0a4cccce9441f9ef277d6a2c5985761b3d00708b63bdf03ac9aa20bee8caa190934d0db3a92b6559087f2ce0b47c50af087d9675cf7a753c7fcdb86930a67744c3770a62f7519e7f2eb70db4c390d362da3d30387b8d4615438d3c2e17cb766cabb35737ccc94ffb6597be258b77ccc1c18b0e86205650cd610d7bfd3b1a29de47125ea28e69d188feb48f3b5b9090bba7d3d7d399c93879a78fada8c66d9f4ce36124d0f2e8893f609d25ac11f3cd9d3ef6a1b5767a6c4d37ac86a55a47f7e80f88805715004da056ab801b4610b2720815a499aa8895ef5ecd64bc3d924b08180661f6956b3bc8e823cd4eb201a1ce5bf6d1c8f997252e7eacc1415b69fd4e19daeb33199ec0d777e5f7eba7d261770703cf0074f3f3579cf7786afe434534aba771a58a753070a45bf0ffcc1a37df69f13e0e7c7eeb9863bbf2b9d4abaf7bc1a4ebfdefcb2906fa51df42581597b8637534aaae20682edda9cc4040d39a2ebcda6fefc0a6a5d8f7a2b6806dee956c7ae5767c75a4774cccbeb65b4bd04625d4fab2ca0664dd8f5b68c05c4845121eaba1ea73575fd5c8f51b07575bdeea321cd7cee6eb72d7dcfebcf75f14ed3262e057b626ec3a84c20bc742c629d46ab8f9801cad32afe68caab8de348f4e90b91c73664d73e69cdb48debbc0f24956c8bcb8b092646e6347383a6a68415acb5a2ae1a9a1b3327191c394a68d5172c06c6f4e2d292e36b5a2db644fa908695c5c0cfcb62d7bf0bc51b2cad8c759c269a30f337fac5976f2c136c4e17763917ecfa6bae2938970c33df4c61fba98b7762ba15cc10a7d9d6d180a5961798f074a306070aa10927a88052e166c787f395b0f29607b9cb85bc8c0dbd8860d3b5f2d76ab55aad9c08561433aaa1b9317372b95c2e97cc2ac6c60553ccc857fee32c1aeba117510c56966559962c168bc5624d98cb5b2e97cbe5f22077b990973e1403539665599a582c168bf5e2e272b95cae16155e78297ba85f4d04eb22168bc562b1262c366146bef21f6739508b65b1582c16b843e5d2ac0da85b1dd4ae1acab22ccb9255b2582c16ab87fa45042b02bfb22ccbd263752de4b4d4c046bda2b192559665d940ddeaa076b550c7959b4ac7e2cc9cbae9d8b2b668ac0614eaff74b2762bb2b1131bf54f6dd5566bd3682ca3b14a6394c6268de9c050ba5e5bb3fa8989ea27929b2792db4913c9d3ff0b055e970206d2656666664749e1ed8031741c4762be99d3eb9e57561ab92ac68d5c3565b078ce36a4c83cb221611d06ca946094674059d0348253fe32e11c8253fe9912ac9a4230ca835c35598e3262ba60b6602299454c164c2226d01c8277b29993b9e65cc154c13c328598414c205c1e682699495cffd9aa992b73d55aab8c8c8c0cd5ae4cc5f243b222d911f70ab34c2c899aacd2e49d0fba07b6335ab7b0079655b839401e1cfaa88d2c1708fdbe5b68c104c05c2a830adacc6e5c077b5097fac604a5f1218f6d48d2eae5aad31c82c272b232fde5823673dc68a67cb3a747b911e982d1cc019f78ca3fca6aca4f159615f0ca6c5d07b178934b7a439674461d16111c6262c91a33baee4d9e94349f87c75c99ab85f58aa75cac3126284988d8ed5c305659fa56ae49a9d36c9bf1c052cb4b8e98d38d1a9b1ca1092814502bdc00e0a3a13116be163e8fe2db942b9ec47370965c2870aac06982f3e4f27babaf784e0d8d05e643605e04e647905ce69a784eb3584f58515853585558562e7f977dc473ba2c1b49d949ca5e5242515671f92fe0391d9b29ffcd8abd72c232e416b9fccdaac155d94ff928a727969bb08eb739d5f8cbf472c1bdf3d74cf97b3838383838ae15979edc484fda7bfa495d5e89047ed3e372944dcab22c71b08eb0582c5609598d0b0a97cbe5a2590d59ad56abd5f5bf81420d3017cecb74717070bc09e3c06f7a37b86da66c52966579621d61b1582c992ec60585cbe572e978b9cd62b158ac9235613580ff316c32cc6318c3b8c9dac06f7a309b662a9b946559beb08eb0582c96cb84cd2a1336611336611376fd5b5898a1cbedb22ccb92c562b158accd4b6d7adcd6a265b66c52966559621d61b1582cd6f527bd503b46cb2ebd2eb92eb72ebbd43a964d8fdb485907964dcab22ccbebffe978abd56ad158c7621deb58d6adcec9ea5e73c9ea019567b28522cb70acd65a966d2265cb297efaccc335516b91b3ec0a8f86deec7aa5d72dd1c8d0f78acc374c008f419e191868bed016ab9548608cc97edee771de81dd8d13478a316d9acd2a7df9e9476cee0319530018e7e3b24dd37a60fb515da488ad199d9f839bf3c0f6973a15b21aaf32b5df41131d3b7770f246a3a3544c6944b6eb46c5f6ec42bfe4b6751766fb29a5949e28a594ceffb2df5cf565a21148beceb39ee7dd079a86406d1b69db4e762369996da92d7ec6375f4c2624b6bf8d3041017374d5a3dfb6514a29a594523a9b929452fa1ba8912a9d2e277f691813c8c31ca594cac0ebde38d2663f06b3ac5efeccda2d44cd54dda8cb9481cbc00c0a333b7e72bb9452bb7d7c439e7027addec2766b1f372399e9465574fa05e2979963d09e528d02f1cb74ce9ecccc94c7e42cd471fd75b88a2733f30bc8538625b7cb2ff670cddbb88ad2b018859f7ddc9a694f6659964d8d4e20d4a7d8761d6cd39b29a5d46b69d95c409ef03bc25f897bd14cb48fd879b259ccf7c1803c7cdab2cd51a7cb4fa9cc3cf90cd390c6bba489b3002b9e67d4e2982e0b17e606cef5bc0f24954c97a6849be37a2dd69648a03575770ba0bb7dd2ea93d60c260c35ae24ea737e6f343d6ab4eb655abdfedb47238376f9dd4fce7973e73f0070590452affd91a1705dfc01a45e9afebedc6693dd1f402a4d5fee0ab92eb614eb644cbf2cba14fb83de1b18c6efa4bfbbcf072f77bdeeeee1ddcdaed728af0d6d55703e86757577de83fd3ef04746b29ee402f11290a597c5222ff6604d2d46585d207ed9512cbad83d580e2c4291a36cbe8d8596b0e57a9f077e4eaa744e12c99bb9cf856b3b904fc8add90c33c5ef61b70b8de21bfe7e7f21d7eb500395fe08eab75491678a2f0ae68635bc1e9dde942bc9ebef3eef6e773b0fe7ed401ab81ca9f8f99c02845e17697a906e6ff82e3bca4dee2cce1bbe53b65d6ffb368e7fbacd931e720331a88c417cbe263e2116686144144678d058400c01d1841363101f4f899189bfcf16c5939149bf50c4c8cf28f8b30d7594137dee522cb70fef95267dd87cf762d2f7d0c51b4e977ac8d79f030cbb1a9837f02092304292d1c7e50c36fa8b1b7021c418c4c76669c148dfc7fe40c40b27c0d0466431c610a38fcd418ad17d54a377a33c9e3941f806486805d10f12c467be8f43918312237d1fc781d01082b060640ce2a3ed30529189bf8fb6c3384526fd0cf098e2d8600da1d1eb8f0b83b46b49942b462273e46e817d00c40a561d84112744f4480b88202f46aff6008b1543fc45d00f461a0e14a3cf0b912f5143090e46260309465ce842589cacc62e048095d1e38a5852e467ec429b2e46affbb8b05f50061531af0830e8c2e8fbb890b18831011bbb90c68cd1037710031abbd0868cd1237d5cd842fc200156fab870660757786164ec421642959189a218fd8c5d583262f45ab6a0b246cbe5e342766244cc68ec42fe4116a3c72f261c222b8afa45e4c74847161b25a38d20aa0e518c8090b5102c8882888e2cb4208c58d99c20c952c46d01450c225d105a64f19c14d1a20636687c01c410ac917b2136688cdd0b193bfa42116307e1a134889831fa684f08d9db2f1481c37df78591a2d147eba10623c7c51522a88c3e9b1231468e4bdf66aa797833d4d021800602a2046c98297f21a38b61e753cf81e528768a1e86654751510433e53ec4209c059120158c3e538d91898761fb858cee856dd1545251c52539c6a52bcaf50742d3835ed2e7d21733ed0a27ac70011a5434af728220bbb51a46564a0cb164005310191ab91732f64a043ebcb09de599ef79cc37dac9069a3d0d6f385ded7d0c28398c41b8f7692382a0c1c8a4be90d1eb422e14c91b4e977ee6917ee9e3849d484343d771a1484303c7bd9051c8c86376d96f210e7d353a6a9d268ac0513ec0b0e40d0cbb953efd7a473f0d0ddd7bef89415a064b80b11a3b5a040d4e0dc41442301ab99016418371f3347e820229446317d2eca00440a317473f8e640545436317d6287123a85c518e5d580213276388172c9c170f84c62ee431004d60abb1a3a181fbee3b31480980464e14327a5ae5c07639a14468ec429a30466feb01cc6089a2910b3f2246af9248219739860536347296d50fad91bf8423c6129e18b9ae0b798362b9caf532b28071047fb1c48a35e6d785383a2fcb55eecb6d564b0b32462e64c1c8e8d5af0b1f8503cb552ef95d68c3d31796ab5cae7249cb25197d5eda68a17c62c8d8a594239863218c2443deb731c98a2e8ac62ef4ca18b558a307e518443363f431293176cf8541322c420475ddfb645af49065ecb2686307e5c8af29ae148dfc640915c0c62ee28321108d5d8803c5e8691be9f5c512abb10b6b7a18bdcf064404b5c61c8cfcb663f016dee10bf2a03364881fbe5ad1d8e4b6e397f93de69bfe2e9c49b87668e2357221c883ce90217e3cd2d78541bc35066bf4216531726110f662f4612723f75d18a4bdf06115c4c75323568edcfbb00da068317222135a24850951601939d12508c370003406f1d921258bd5c8bd0f8e0b8c8c9c388568cda0086ce4c22f8dd17bf9ba300853810236facc1f46f617489396350c7b2452c8ddf8c68a184580462ef4bc183df69a797a974a1787ce72e95396094f6a2e0cc829efeeeeee6eeb4b4e331b4769a5b48a9ba3289dd3a66075c9cffd0536b446288d2a369f69fd03d04f3645eb28d30f3c00518d8cd02210993ef09b65e1297b136f51640a0a72e848bfe679a76f5b4ff55fca4515695c1d46fa9fe7f0482ffd93df6073e95b47b50d2c5fd2e6d0295a1377198b308a5cd2be76032145728075310410b44081194ed8b8a2040600c90bac58020d2fc0204269884de1b21336806e76998bd5104a745c927421848e131b5cb9eca48b58002e3be9a206b77f8ab8cab67f1dbb59f65cf7f804793631ec7361df4972bd1a42a9480299970b839c61691a46d3551ca57d5fbf99f68ed2faa78b384ad34a66d8fadaf39845da077115f7daf74a7b8efb06793891ed873e6c4b90f5efa73f4320a1d534ad6486dd9edcaea6bdc955d96b57d3be868ea1aff636b8aaaff637f8f880f5cb4ebaa82243d7ff000ee0317b2ca292b17dcc9c1aaecc307318d0032233b0083a72851142a8381aa2e585145c6031a4e728e628be3fc3cc098113493481a4850412548cce0317508c8932ae60838791d308c20aa6c052c4103cc4467f04cc9c03f4f062a275841ff0200813084b6ed5478d71fb601c57f1b6f94ca1bca2d9ae6ddc23315b5a6bd125edfe47fdecbb74951bb516acf236e69cb30bf9663e79303719461d0ef368854367b9f3957ccf85dd434840b95e3aca9bd4aa853da5897aa85f6db0ca003c0cc0aa28d7a17419f29c74d24a9947b955dacc83071f808d8a5c457a79db8aabc8d9ba2deee2f67ba9d9c017601e734839535e9665e925aabbbb9b38ca8d8cbae4613f2e5165d83893c8751c54e7f811773defab4fa2a0dac49749778c40114bef98a94a491c6755210405f5d69dd37a92eb481ce51c345b462ce9a597ae6a98bb9e4c71558b4bae371972551422d1838aac5ca773d239ab0c957ce39fe8a553e11b9813b9d1cc71346a7c0c46f9d0f4d824e240309a29b0249765e94f269da1372967ce6ccd56395bb3b5ba24971d648587b3fb3792b7a1a893b8101340935594db532ed3e91293f0dafeccee67a6b44352c8d3e66e28da759b823c99e6accc591df27b0c32c053d03b98db16e91d2cfa8fa7a077b4bfb3d89d7e0dfb69e85b05a2db7b8e90b8ca5fc5cf97c1f9f44dae02427df22780cbf0d886e4b6ece99c74cec9d5298f8dc3d43bfc49142e3f4a651dd544d99c59ad278b83daa600321e8e72aff3be7e1bd2f39f7867be0618e59f62950d3697ceb08a3effa8ff83bef6f4e5aa6e392a0c563512dbb6fde66d9bb76d36937dec907cd225ed0fb6b7cddae962c19096ad3b8b5892be8a664e8fdd9524acf16435fa53a399d3b1151097242760d880b55a11c166ce8412058c264533875fabd5e85f63d56868e6c4e08513e5cb68e67812aa60ad56ab550ea3cb6b882aabd13f83d5a05506445f75557f660e8fdeba247d159542aea0ac55599388ad210e41562b1ce6d1736df1680d957cdf8545d79ffb440dd840e5d2184f5f71943f9785d40a2d0a29d14cc19060952bc1280f729412b48aab281546810df01114e917fa385160c98ed1d7acd9cf99cdeed8d6852177b956abd58aa56e3f0b309c24300147b983f33be4fc89bb3c886fdc0496a42fee877760b8fed3072b0147b9771a9cf2e7b896969999580f96befce52a92893c28c8833c48023a5c200abdff1ce0e3870047b9026a9db3ba6aceefb2c9b355d65a7a8e8a5a8ef21910e028efc6e2aacaee432d2d2d2e3a6cb8a5e7a88af62d608fa9fdbc541375b61087d902f25091878b8e8e293381f5b90bf389244e9b401eed3dfaddfa22ca04f25411878b232bf70b7df460be2c642eb2ace60cd9bd653cf6eb9dbcee1b35ec2147f5936ed241ddbae148aebf57430a8568e65030281ad7494ac6755086f963ebb73879b0408ef2e799432cc945b7633367dbac3d9d624531faa2afaeb3b6664ecbfb76b24fbe0d33a745e4222fc2c137f43b89d895a398ab3d6b156ba55728117df14df8f1cc7122966b4bcf91951dac07f10ebd8cc5134c2ecf2196a4b5a5274b1147f1f520578109e8a3dbef410e05aa3e8b4abee7e1d53bd67da991abbedf367bfa2fecfb71b70470017d74ebd3d714067b7c515e33c7833ce5ef290f7ad597cb5b4001c2253de83a7728bee9e7609d2fa088d79699695c086dbbbb728af6cc2534f9a71496e91a5e5b66e7c1b6bd79a8555847c8b4ece23432c4839b28b18d4775985507ca9de0042e39e44033577365e39a593ea7a07f969edf2d4ee122c9ed02c9e5028a27976bb0bcc59095eb61400047310ce00806187454052840010a407bf4e8d143e8010f78c00382de6e274b010a5080022ed65097421e5bc0f2164353ae97812f031960b0e788d573c4ba19007b8e8eb4a8f2ff66f550bf9aa86137a892f0424e125a682100389e437d03385876b080e5e646870a55a250ff4c658d8d0e0ea8d0466a8536524801059b18ec74b276db489c13b971cf0ed8b061c2096c84e1e300fa81f970e14042093990404363b71bdb69894ba8ab7097ab845cc52d0f879391cc8c110c8cc9c58ff4906d3b9dfea75cefc7e76b58211eb5ed347417b0e708c85540495c453609c46f3f0d7b8e921cc1b6c8fdfe2d1dfa1247cd7f015d0dcbc3c59e232047f1e5eb957a8e58b7e7a8e539ec409ee32e4fcde7db7374e47a6d7b8e5a8ee2eb19bd59e63d47496ad8738404e4e93962b94ac8e54b02d95b7a8e8ab8eb1e1d71145f1efe8109d0b264c972b424ec3962398aaf2f7115e9ad3b5baee2bb4d9c99f37f3af9b4d34b0ab83ce66e1cbfd3525aab0b3a1ef30d6b59a5db36bd399b1afe2a25b95fb146b02e04cb62158b60c9cf6327d3b70d2c8b69d8346ccc92b84dcb4876cbb26de3b8aed3c1e3a198371e0a92b49213c192dbc69df7dc4a6d794c9de7eedf0792d85adb1de71e739bd6755957e9ec3a6fd2ecd20e583851c408b02b2bf67c08d6bf0509cbb02b04db5eb985c5cdbd7edd4e6ec566977cce5a4c8eaaa28da3bcb3dc1f0d13c29c734e1336227074603872020a29a052bdbafcbe06e5d88d81376bb2797254adb5d65a6badde3b6aad75f6cc4c339ba2aace2fa3737394cabfceda35066dddfae7d8b6eb3ebf0baf5bb64b3d9a77ff78f5b3fa55f4d6c1abb57a15d999374709a9ed355cfa1cf657d16b05529b78dee62aee27c2f637d7d0f20de7f0e9df39fc728bdc536c8d8cd66d983fdfc0b006f8183910fac77fe045d6647aa13dbd72ad956ba5b492b5f61479fbec889f20fa38f4c9ef76adb5d6169a5edff3e6d3f7108adee174fa0c7a873fa52268a1da428ef2596bad4fa5e0428c1f4ae9b76dcfac5d8ec32eb26def7335ee22f5297d06b56f0619d03ef40efeec69c89f85fdd33be86bb47de81d5404f569d8454252080edaadf5039f52a8644d9606410b11cd8800100000f315402030140e88c5c2d1308be240dc0314000d718c406258469247035194e3480c624829630c2180183032323220520400801b8bd2c15a53d89e60383529765d30971de8868638ff50b6e4dcabbe5f6b21f632394fc874e3ce2eea251c46826f05c025575940e01b7bb0d4f3856dc7b69e1cac6c460369b83fea55fdb193f85c5cec44dc439b19eceabb32cc31873450659f03f104bf344981678453e88260ad3e031406b50f1894840645571e4f34f44e9a41f65b25d2a0fa26bd4f658a76780d7d62e8d5ade133353429e4aa410d85b12a595563f8f81f3f54950bc244b62bc1360d533b781712a54766a5f7404e7eacdfa5745d9c4ca12f9add0c2b70a3a063f9240a0f540b846928078b77b738ee7e8bf2964966ef183a629511e15f66c25605e10a4986ac77ea63fe2003ef81b2f526227ab436b99b41cd229cae3061ba4458929555d0ce0627e0746048b6feab548712bc0a8e76e4b709ef8173b20443bf74d2c9fa1f63281c5a7f9cb617618e28c6f7e6b1486da0614d5f48b5652f6261cf27a1670d14b6999684519ed28349ad50c62c83cab5618e43016ec4035b8e33a91a25fe79ac7535f419fa4f4528c20cfdb88450484f5d9221177284d639971086291e9b77030c010509575700d2c066666d67167676b3ddf07002d5ad6565cfdf8a6445d8311206612a042e3f8e298625085c85a156015fb7be06a0d3b6329c9b4d95d1eb56e45eb76db8ca06b89edd0e56b5fe6671b4a7856d037623ea635a83430b60e421ab15aaf6ae6d050a401c1bc5c100efaa408b786016b3aafa9cc92a0ebc68db5607c9dc860652238c1cfec579ee6d39e34bdde46e4ff74ee4503da3b26937d5fced2ca5a49d5bf4343e9aebf83a8f3c4128a6f3cf2238efd65998fe1c62db08445dfa07cec33d4c805b32733766207d19f41053ead90369f9d7dd1693edbb7b5fd5d909b71193c8bf684b010cdae1a6c481b10934016e98231d2f012a04c8b354245f31d51f72aa35e24acd4bdc4de68d676f1134362b5533964508709979dbf49db5f9c12d2cd9b287beb8b3237ec94419b46ec753b45c648ab3b0e65090f85ac1d55313871a4a82775ebaddc393a6b3ebbc2276e723359411c6b130047a42d7e78dd25c778b56866bb6149163a1404f4c039ac0b4ab3f0b2077fe89a175b4bd6061e61a494b6426e9a48f352280073aa1ee8cc840c4043fac11c0221444cf3d84194d5b83947126c0ab194b7707d03722ee21e9c4857e3741d37e3bd707c1c0a58f107c2cb15d2ddc70912ea152c2891d10e820b5b5b5658057fe677cb2652ab60df67c4061580c8b7e385ca26859e9b1cdc9d373be839a7a9c51692f1973273187040f73578801f50643689084e84effa484828f9602de1b5a23c0ff1ca8d5d270123ae93c66c064f0bfe11692cd5a4cc300d1c82de32c5c5a722c908bed78356e56691219f7ab4383f93a99bea41d50855ff05b8f6f593cda15faa93965714673546e1cad364ff76373fc2dd0c6bd153db065c8631811c0ac4dc194ed8dcfe36e2686500284b1faee4c7a0688041dff1c5ffb2a1431f4727fbb4cd99c2393e0dd083dbd88caf43a130fbc27940a00fb44c595faeacc24c15df3c02de1dbb7177f10a640a1569f034a5788ca4eba1c20f6193f138fe9cb322288675fdf206704030c6e4f606b7e7bcc08b2ad11c8017e07f36ef7b0d35b35f51eee29d5e88afd8c60b28292c569b4212509258cf8dcf70d38454fec68ce852aef73a1ac5631b0ed21478fa98b22d267ab42c64f6293fff04860f4c8e3e5093e3e886325c37e183dece544176f8ada0b7a8c7b54ba4e290a9ebbe808be66c4be5f8fccbeb157c25a445cb40b453c995e110fa20cb8e91931005fd198f9b532ceba8a340bce584e1af3487c28fdfd3cf44e05d541083d62d3a11a5472ee5d6296d0fac09b98a969b55db2622f881081130fa0d31bc3a90eda4ae805f2863e6fd93f189560978d37eb9b6a525034ab0f4afead4bf682be8c7af314be5b0df0c7dc5b696ce922900d782e7710f8872d6e697a973581e701f5929644c279421abc903c97158d876911e36b4e087998303c56a1969661b0edac595f88cc87ff9f15f399776db15e0bfcb242f65bf1081083f98730f0e99b60ca09aba2ea5d493200f3a55d46428b2302f2ed1f33730c7979455b6873be40a1d463b3920c477e43a2f8b64b71c5c4749f0d5b69d9de25b83afcfaf01a7433f737a19f606fff42f38397a4d0ebdb47fc0d2f4d1a396be6ce5100cbc9be60bd0a15cae2bac37f391a3a4f4cd8314ce6e5c24798bb4c8b70870894b53fb0d0f839ea7a1408b8237259b480a29f78fe7a18c9cbd0931f6edd43cc9030d365bbac79a4d292ca285b471c9ad32543695073da09349f781b42e36d4320da2b48377214ebae0169c680fb0917f8270a990398b63ed79749f8d8beb80315a8c3a012bf7bf7564a18f481ab71f3ba71dad56f2802d114f8ac07227de08c206c88c3a70e66fb0111f788221d985387d8f7fb6fcd916f190abcc973407fec03f7774a093543a7aae7560acae1bfcdf634648c45675c55311fac738eaf8104708cbd805caf5f218275c599b564fc00c0377ad97635b92c89d7e282477694fa44fae993b4eab9c67f34cc2b6cccccdc4cc4c558badc1343933a2ecb7a79ea65c4a24fcb069c112fe83b50e0c77f59e9e07cda9f3fb22d5f013aab2f83c4335b47c5b8de010537c0beb134b54506eb1b01f00c6e6fcb397e8a7f6c667799ef577512408ece8c171bf75768006c662304d160dd184b2573365172f1f9cf332edf5938190c0e6ac2e06c85b81f7688b457ce4db895164dff88e44547ca0927c0ce1f8cd166628334b60c60b309c62ddf826ff5af6329318d47a80011694ac27ddd0c83adfb896255ab957e4194eb750f45deebda9762812d3826e41828dc1108c810b209f7cf42c84ce19d0a8f4957888317825b7db318ae7a0503e0106b44dd35eb35d931b86cdf2474adb5e9dbcd89c1d99398caf79fb5f138405290ebdc33b288dc9d493f67e2037696a6aa941c24e2048c25ada5f4e6c319ba7d34a625f8e1aed128f5e0ce4abf111a02963b9f7313d2fa540555fbb07f23c7bf16c18f3dddacdf6b434a4e08896aff2f01ae59792fdffeeacad630ff415f30c322e9a49d6a4a61fec3eafcbf984c08775960e318b383d927ae444a3eb944c0ca915f9dc0d85e1ad084219665dd17ce9b77c69a8e68a95b2c5a8f69b88b284787d0e8008b1d2e43f9d85e2f3528a6023aea387bbad717758e4d6fc2731833007a44e501be67e8a6a994948832dee12a4f0c14fdb51ce4cf811d3314476aefc57652169b6be2b503fc22fa7a608d857960c6420c618d2700dc43a9c60f64d3901baac139f0b525e46c1636c144aab16789fadc642a7f95a764ec2eaf3450a5d8941d1071ecdf4565c981b3c8c34df8d06d1f489678a2ff9f56a115e0761aac60d118d577f292d49c9d124ee11269a56883e38bf767eca5ced7d774798bed9ce7b53c716e4e419a39db79fd603770e477e41aca2acf40b3654e9834c41424850e1b7b22887402c69b93a7bbe63333cba02f16db07eec08c4a2357e98c610865589f80713b3993aae87e5c590f2e655e97d6db5b7698b942f01d00c32c44f20790673d424c1831217f48643f94eb63679a31201da172117bb3d844b8da17d65d2703867d6c1bbbc8a3a621818ec20a5b1bff5af3c0a626832a6df00f41ff784512d52d3d88a02a228327d3c98418e913526f6de77ada6eef6996ef3551cd79b47fc7595c7f488e4249d77c286afb98de65089fd3df9c7bdf22c20dc49ddf16735f6ca7490ceec342995be142ba961bf6de98cfe49d04b635ac053fba82a86f623a5d10a362ea64fac8a1cea973f6b4c884b0fc5d4e9572d819638dba58e1b1ecdacc7e09c602f06bf2a6db6bb6a206253f04cf57950495ceb3d6508d8358004225fc4eac04377c34a9f1e3d4e22e34d2e362ac0926cdbfc00bfe4263660c7023bae04b8c439f3c9e84502dd6337c2e99cb9210f11a0b2c9121ab5b7e9bf808b550b5dd4edc5326915bfe88567a7458fa4a1e33b855467fdf4e2cb8704cd1d2846e442248b9e8d72f2235bc86262532b9468fea39cff3cbb9b42380a7c3424790ca95f5a2e7e8c487f3b500f2af5823b9c149130eaa44b7e00f0876a21cfa5da2341e8aec8e21f7672fc017ec651be18cbdf41e5b1b177d896f5bae786abfc40bdc31a0f57db08aa701d6223e9f4839e115fd5986bc5e1d887417a297de387e65cb462dcdb9986a298ff20fa4ee09a3a11f80552ba2f643ba91e0b227e3f2fb49733485146dfcc98f1845d2b2b69e86b500418312b6f642400ac94be5dc74b93d68af2fe29e95922df3190713217a17e7a32742de74c6f5256b40385186034244f35ace6543c422663cf3f4b36830b7abb34e0cdbe21ba459192ca40405b742f796ea91f936b447093d19b707e989f4f5ad7b5cc96fdc02046d9c1c26911176e06aaf3fe9751c14240042128aa04451ac1aacf5e142d931b31c89f25a1296c0882e361454aabf988f8491f1bf18e748f01153332ca096b9dbc7e190ad2797ab1ae9c0ed492886f351d9ea92cad1a6a75fc902c55dc90d7040c45fc01f1e3257a85898715f61d029f64a9918584ce08b281cae95d98e5d6f29c62df9e03f56f78f0270c7bbbb34853a90300c4c6c11c38b9f8dd8c4ace00a125d7a93e0e724513e9e2be5a51bd81237d7f89c671d15051f718b44bb0606d9b027e60dbbd41b4b2ef5235e05429bc89fdbbd30350600e73a7b5e900b618020d1843af56a2f06428d9023882dc2d7c1aefe411ed34152291b6c4248c69fcbfe03dbcd7e65080c77a41bf71fa17f461df2a2f56075b35f6981c055e906e72ba34252ac7583b320f05dfa14fd24ade159c3596071c9d457fad385d6a3c54d2e6504868bf29b1eae58d4cf2789010442c07b33dec41192ab43d6cb9cd718f46c5d6072183ff998ecd1fec7e7ea8296c3461f9fd2028f5be9cd1cab6f5480917e7141c833a8bdf230258a08b84d725425a160e9bb2555968e24b140bde9677adbd1485cad12a38654167ccad1c9fe00162d0dd9294d70f2d99d522332996fbb530610a74b3a479b7e5de50b14572537f829d72fb295f81cd8220d3dda2a653fdcb0ca14a846fdacc0623ca6a4acad50e85899672a7eacc376c9715a9b30133bfac3f89915fbbf4caaa9de90c84dc97712b8c0d5dced65a936a4f3474e596084a7f740805ad49c34ee15a855633d97f8b5aa49e96cf3e49c99b7372e7d24eac0da9e7808ab6f1e07105d45a949de7609b11ae55448b4e261d5d2b083b7a5ee0029f89cad2fa5e24f3016883eb3e68283a367dea1858ca9abf530567bec1734dd6ae2673ee252d985f9dd443e10a91515071d644006e5babd640be00e643cb385bde63567bf2a8428f85383cfdad9817f21fe9a13d08b3e640937e1403f3359b0385085b28daba619467c658306471538a80b5669c832c9b8256b72be3d857880b343043d0d2db11a477e9e0ceabb4e5faeb2cc3739d78c25f7da1dbc23311464b94568775c480329a705d94decc897ade4fb935ebda38c6f36361ee8554e6be729691822ccc622ff813c2613602ed40ec9dc10386b4e5d61992871595d7be22d5dce87b6ed20b1c4c0aa8286e72b7e0491ed13d5e17894a541ae7a9d24de2986fb7d6b77886fcb0c0e60e51075dfcb9510d4aa19073b5b461e787968a34f5acf0f3ae4cceb9c15447762f0ed22f6c7b97b22f2130edd147c3e350fbf888f894b071710752debd73566b72251562300c0556a6f19c4655db333cadf51503b13a6cbfd77d5c4ca1561e40d2cb39c52ba96156e4bd995867e74196604a2576a4f1c547771c0ad6172bf6618b283c3cc3303c231b98b3c0e8b81e5c96007296e467a467009a3316129cf5014ee148ca25bdccbeb6e136469a32cfa294d8ddb8351125c2a0726fa1b37ecaad1ecd791424f81f6042ab1a404947c51fd86b27a4b84db52581278235f11e39aeaecbb6f1b9bdb4a84e8d8582aa6a95b9d2674250e5128da56aa168b740d40eb52ec178063584f07d4b4c20edd16681951bb14361ac5407889b90d8a417d1aa61d6f22067407e5f77f1d03b268f0bc0355e7905d701710c612296aef5ccb93963791e3571374d2860516b17375297c94f3541ab74b290b7aba73a2a08d04aede13b8719b3df4588521cd478ea46df321068a12dbd2c2edf31a2b1854cf9462029b1f44ce879deb5098a598756de6e3f6ed870e23a4d3b1e70f845330ac1f8796e8156847315e2e3b631461b0d6195bb21a85890c7f8020e0e3f883accc8fb8b5857bd434ea941a8bb17ed6ef130f565a950e4f0f796a900236b51d5da37f7dcc0fb1a515f74f697553c08ab11c1d150d583b143cf725478f53a8e8d5ee2e1542a718b1221fa7e4b8044ada52e3618f4c1055c3782581138499681853f4b2ef951255960cfe4bcf18c5c03cd96d07b11bd4c7c064604687d65efde82e3ac457d45091c30dea2dc0177d2411dc80df10af4666ea372012f9f64142ddb036c0377510f28cea19c9d63c7fcf4074dccb89f000258abeebc1542a405e3adb0011d66c12a089118c12b101c8c8a3dd9a215b6930b975b3b478a258862f8e90a7164d922f830167ddce7b719cb8c7d603c5cbdbc4a5188adc6e195ecaf0e96cda633a2d55b68a7633becdc1f1179dc9c8bcf04bc3e4f30e802735663df40b6d130ca12ac2369e923c378ecb521c4d249fba0326145b41853183a8ad96a44e3b559dd6f208a0dadbf4ea754de93a693fda8e5bbee0ce9ae803fa3a9ea8daba4d30622558c55d8a9fcfabb6658d9b8e602df04f4f14fdaf002deb80773793217885343a82add9027002cd54bae71532cd26680a5f58e1b6f1b175d8c63b20ca61498dad6d0de47b75a35759437d47d9844af5f6f2f0ebf2ba004efaa5c5c6a96beda1a4c8d12f2686be0263f57344320484a094bbb3f150e5040d72086fb8be6fc671d6fd000363c0f81bc16598a21df29fa427a35419bb74addbc8fce23e9a50993eca8b91c62da26384af255c329dc952f4ee19600a2fbfb26117e6905179d0f2d03c1369bc767cc142f1c37a135d2f7d81f9f7c7b383ef58057150872757af9f7ff88b163e25325a165830b2b4cb24ac6f480cd52d926a74b97bfe5a967fd0e068ddd2b3af2b005a0f37b1f4d0d68b027e3aafce77f21e72300da037a9a0ec93871409c9fcddc187419a179e6b4848b5c877380c2d1e1604ed0be7992fa3d970d7cae68e50e8005cef855853ba99a00ff6d82f54bd6472181db2c67f93bf24aae94a0ac6f19b858385a19107e9017f6fb1627c10328137e35a5564cca72c2fecb8ec712ac1da2cfe608335c88bffd77d04cb110afb093d9bc9c9a7998325ac7871a79455b6cec1efa84783beadab249f24c2a6832a593e971f83f039c9c2e7d2e8eb7a735313c84bba6998c018801af55beb0646e10f62e7590a0d96927943c2a2523ba4b1ce3b98e3bf8b7d6853112dce5445460f704d215a724f82628a0d21fda3c01b6fed4091d1ddc6146ed2ed35bbb43ea29822c79cd68e86f7d4c59d9700a58f406e91724cf3e690412bc64cf50b1336823fa23cd03e9e1c83a3e6335ba1b1cd7cab1bbed525e34c090dff41bdab811b33525ef97ab56840ca05380775a67a7f7714958c2958e17df4333990328eecb20a90104b40c849bf54fa16dab01b4a67ec660b55ec286a8a620fc10dfe70a4769baa93ffc4ec7e478e2d4febee73a5331053bb61051b3495539088f4a85fab05730e768ac84afb29f31e7e41538304f5d2087ab7726233b2855a4a4bc6fcafaeddb7ec50ea32485b736bc841c2972a3cad6dd33e9be1ce28f5476bb23877f1be96d70f6a1e1aadaa7ab0be420a95defdea346e7750de39c5f3018f2159979a470144678100d3e524bc63f6a8698eddd347360e2de3a00ffbb6452a63b72063808e0360b58566bc614dedbe607cc6ed944c718c1f61a7b92bd64dd64220732587b16832a0c5277509080ae556e403a547c4a2d2f139ebfe86d855e565969d7aa1713d018030bd32e612236b1593e0ee578a7c59a6d357b4cdcab24c4f23dace751534d4ba1262881bc2ccddb78e6f4488b3c4f5cbc3eff07a1f1daabcd88d459fe2cdba9635a3c66e60a07aa7854f8fcc16046228385b0c71e3c686ca4ce0426d36087499b07b9648a704f367eea21fbf42b19028ade4bb14e6797e78c21ecd196599fc265cabae260e3b3d7f9ad5c1c07d492f314315e79a46b1be51b41a1fa6b1458986b52e2de290a16d30fb8e207319272ca1c03e3853c72ed388362c5945e4c8bc80d0ff52a6863b06ac5a516eb64818a36ffc7f8865882c741f6813fe9c0a06b9912852bb68382723c94a16eec2e034779741e3d5c311b999384d95a97f0aa8c669e0ae6e1ad984736129df45852be34370e2ffb2051108acaae633e3b30364fe644f48366e2b1e78cdb953e3424b7f375f98ed8ef4896429182f08cd75cf38e1134fa6cf896300e5e3700c1b6cd5c6d2868a92fd51c04826e105f8f8c547a00613c16fe8a89aa3b44653624c9bd83a526c90a1df06dc4934277955b2c0110ced503b186e7ed20a6272f0993eef5144a64ce2285d341cf378c2a76a00b17f19892765a04729aab1a703e2416560652b665cd30cc6f588405e68210f191ce51279e11d3ae87c33ccc669b2acb09e6ac9346286759152fbad33f7c333b3a1365f9d5a135e8c5fa63e776bf59e27eb661f5fe1f70ffcb855c4750cfd97eb919cd4486fe054381a0cf7ea1eb31bee8e110d27f235953892628b1f950bc3eac0b405c1749de88e602b8f14e8f66b767da483ac33714f289e12a2bbb1ceb4b87d6cba269f63912de941837b4bcf9b1f275768612fcadd4b20024b0a19be106f2b4fa8ee7dbd56ccea5d31ed2345e39312252700f7712a74c958a0e1d46974a43a44ad3f5daa8bd56bf8cc670a75dc8890c89c51116ae0bf23c7b3827b132375c43ff0c746b2324ee4a6351498a80489cf431b88696f4c0c48814c67608401d2692956b6f3a037e4520cd4d9731a6feee167c0f5a361a55063808d351045306b557523e561c0606b1888c72a5037aa9ca63e3ff2aa837957f966f67f1c3ca77e9957825a3b01fa34b34285f55035b8caa1023cb7f03f22934e1bfc18901da9c174cf1a5c169f3bf1aca053c69a648c45eaba094e7d67e8d48e885e4c903e67a18b75d2e3365784a3874a4b537169de08a2cde340a624da22f308d4f0ad27645408b511ce9780fe279d6bce043f29036b361237b3fd8e9565376cb707ab31973bdeaa614ebf9444e4688a1dafcf64acb3081eccc732c985dbaef3b45801ba5f55ade3cce2acd501f988322c30cc6d8dc9108147cf3f69c55cd91ef092b9f511974166243d3b2dd696052547ab6c916246cbd28cecca51f2abf835a29b0a73be3997d0a4eb0425b4342f6e5838945bb9d9cae1abab354aac255d1ac884b936764ba6d9d3ddbdff53709da1bfd7442714857356b7637accbd61871bccf4cf0601f9da23dceba3c4f4008820a170fb723b70ef57c7c48c6b4dba9de0b2957182fb78586f96271af0ac3536f115bbe814df5857d29e01781f5abbff51ee3d00632640d5e2b3c8bb65ae4725ded76c00b3e4c10233a7d6caba2da20643c553b22c1e04a197a36a21ddb8ac7d51ed11a6cdd41387be1b89f0f22570aa06c2d90c2a329656300e1e0c450a5fab2fc86a1bfab658ef212736c61cd05e71fc955d1014cda4c6db12992171c2e7c27165d8c05902e830b804a070504afd19cc252a35557d121d238235f44c3e97bfac014c2bb25b6aec71aa64ce416d8eba8a72e87837eaf48487c477b09202f314229fdeadc6fb5bed75d8a964c6038f478a8a1c8cba851bdbefdf0f61cee09662a76d05a6c878453026903fe1cfd0fb85e059f24a0c48d0d856c76c64222a24df918b17b5b468074ac1b948acd9e2275a1827da1d4be1bb3d0f9351803e16641da53fa38cf484bd8e40e92597ac43128608db88cb4e6f78fe2c934dac2b0aea6a832da1d5808b1bb6b365c80be6a504a17943da167121e41a0c584c920da457ce05bb40dc58689533d7eeab9cd79c6210734865f4de4d813905d1b9de3c4d1c35c1c38470bc4095ee5f0a881a9f15a55cbbb1de78730877cc549e2b1c29520a899b144c0014e1b3eb5f6615d23182e0b8cd176c4471665543031668627328ec56fa4bfc45197b134703a830cad9ca2082f80868d9f5fe5e64872c94c899a32e763e5bf09da789bc46f6108e4bc4aa64ee744834302b5a4790a1d2582fabc4491d0ffe10d84969aa87428a3c6d2254941aecc290f6153453fc71f532399adc90dfc87030b9816b9a95f0994d036c5e184864932df8364e5e3fe192250f6285e60e4c9bc0c58ba30c1b82943b63a9ce192bc8ce58e11427f435e1047d907ca0769e675ce052c7e02e80cdf08144b5cde0a6b0572f3509f8c2751a6b488ba3339c0c904774a507519972bc2ec63f99a94bd17ac7ac04bd6a305c37cd08f72bce1f25e04a95ca3849c9c5f5ab5813e50c8deb2e08f4d3534445341ea198b58ab8a9f59570ce7f69b7aa3441a18b5ac0271d629193018b9ae9c806154a23480ae622c693ab0814644785fdfbd3752a5b0da9201ba41048c798b5a4278fd3088f03a57715357ba91d163f4a74268bf8ec71adea06502a66595c2451826da0e2b0cd9c9b112cdf055acfe4f0c245f44906fc385602f25eae74dcf256b6a930c921a114c2d173affe3e9208b869515017859d69d249203e7b5b816948426e108438c3d8eb73b97ce82c0104a218c4ca9c40ad4c393980e0413d78212d04620c27628d1e0fe9ad5b44e25c8c106dfe0ba499489c1cbf71d01402cfa18544021568e52bf2a35352a1ce2c818131d01b02e0f079ea1b359ebc8856ecc38569df6160a2c4e628f57780f7894d94bef5c108bb4580f9582a08dab00048cae09df632d3f5a39e74b96ec96ce0864050d9bdca9012b902dd2761a07bbb0b78b82be03631d86d591507e3768b000f1328fcfebe4787011dd0f5eee72393a6681e403d285aa5f13cbba0a8139bb98d798838c955fed8cf0b95181130496fcb0b7317b90f92b30025fc8b04296dfe91a631855e9eb691c04c2556341b783a246844d4084b83edcc8148262e4a7a78cbe242778355abd78c7156ab3775773c8836e20f4d18354fb2596829bdecb498d198635574d499b298bb08a5c8de845e63c7542a4e7380d5c754d458065661b125a91044df653c749546c039bc75e24f06a6515d5ed90d507064a9a7a048317b044d502615eecc08db55e69dfd5fd57b1c9a26f65c5a805326a386f1b794114952ccf71d08b08070f5ac2297534030ee5a258bc4b6dda9514706a1e21b71c16b54893269faf78618a3d2ee2259348da77f6e8df2911fdb6affa023bda9d508c176d3833e858f508d1fdc40c143f6b41f7eba8376ac1bb0cd591b28b98ed33f0eeca067c9bc6bb48cdc00bf543fc6a2bc4dab83be31c8cc5b242705c48be197ef78a020b2b3bd15b13570e333cddcc05fb1a490d246e390320f574f619c8ec2b4374400f567e3c4080d3f3319701819b155d2b75b0a4ddae82b4295dde9aa4058dad84b0bcf15e95da257a98d231051a86d1e54ef8b00f89add00a5642e6ba909e6007c4513acd4804a2242f7cc3cf0cf0441e706942dfe6d6fea3f95589c5fdc9e66e06ed3be75b9cfbdb555fd9aa7172654554ee16f7eb260d1c385331c2abd8885bfd3f7b4344fd1977c3922e4a7d1cf4bae0cbbcfdd42c85272baee91d52c108631a8571705d98cb199e18feea77dcbf9b07c0c83463c829eb6fe69a864ca16bbff566a760d57e3f207911306a60bf228e752397158444e10139aa5cc399658033e386898facb1abc9b69347c04fa99f09b2a789fa4df9435424ea43125bb9559d4a6bf675d8f28f080bda66d2c7f39767a29dcff823848de191e8dc39178ae3dd2279c344ba3baa808f584aa9962917f227e73a28aef080ff885100ededa27a40335db860fe6486ded453a45b662d9bffbeb8f6e1b7889ad3e94dc6a851b417b7c751f1d3c43db096a6a417e060171d98282ee5563450445e287bb75d7be28073e121f7930176a11e8a447062fd6b8f01fe09fe9b983012760d371bcb63024ec35247894ac1bf150d8222246ef4554f3c773b76d8599fc5ba19fb8cdf1b8a3514749fb70035963360ba0e44a9277fd626ac1c79651c03d5f53d7b038885d90fc463212dc2c66b956304f0ebd7fd5680dd38cf2b99c9c4b741b0b984c0095dd7a75827478a456940dc8c2461c9924ffc1ee3ffcc0a373ed8a002fdf4cc71b076a942d9778ccb03e1d427ba53d97b9d5d947975e982e6a2cd36f0666a3fe0a0498c3747cd5695d1be069789eb197b4b8696a9e305d6963f5e8a8da003f036fe950b31aff9f813786dd64669048f2c5c2f9604055f600cb315c679a33163831935dbf5e18b08e75f5521f629460468cd75bee7e4e85e5f3fabdccd22a58c1cd06aa45732d4e90cc64821fa237bb7e606bcd2fb3455f70cdf111dd1441a7f68cc340cbd1a385929e7fd99314f58c4a5e087fd278fd36b83dfa4f8046f868c2bba0ba971be25f7df9679db2bc8f1afa9255c7713203ce106c9cb7a437d32d57bc79ce5c47519ca83402d4ca90a982418c297e98f6d8bf415c7c18477438b8518e6a385e920db4c941cc922e8af816fd30a2bc48d9d2dfec03c4704332a8bbdb1c930c9a303f0f2a240c00a8b320e4fbb43eed4cda0383c6a9b3ecf92a9a6a582085a67044893f1d2806e623ebb73e4cef531e2d49c50f2d9929e50af479a1dffcae975f0c4b86552fadc87d38595df96b64357189d1c4c071d6de90b0725c4d87226c5a8303839eea4e38c6ee84f31b675255a31ce90d1bf17f42a13a912c3d750ff7ddec3f861c805eb58c35e61c8c53f91b0210f9315e5291cdacee35bb48e120190278b4f2b04b160cc8bcf82efb2096295e1adc1529e649e868db0d32e7eee69be6031d365161fcd3889bf1df214663c718312217491a74edd480d46c6cb57d6244759b141b68db15585c3ec2cb383be1ecad54c26404833d43049cc0f55b9852bf0848232c2f6afc0623798e6755e7a944c23c4fc6331fead1a2b0af0e075214e8f7459e7e63318e891a67a4898d57731bf536634a7dead8bce5e62794f5bb6144ade1f6a6757a7b128b1282f49c7de74a6611b3161a372f74d3d01acf677adc97c8aa9bacfe8ee1f3b8c637386dbc0c1056e365c025cb9a533f846bb93dafba3b4c15d11965a14b54b43ef271d1052c31e31aae0ec8864106963d87aa8671d104f4eb99e54d8a3469ea2017e683cee52da66bd811ad3341b7e726b47962ccca6274ae23377e4fd3485a469d0da244b57273fed600dab5acc99688750f2bb90e990fbe878847773839a8232ec02f3a41ced9490ceb0d1c8f7a2f796ec14a58a747ea8cf731a09f1785798393421e549b37aa8f52d41b4e56b3ee61f9d1cb8f6068d8333289e8cc3b42f1d7979dc640249137b6a45f62f2a1188fcbdfaa5a2199cf4503b917898f6e2b48e13f42ad29e5ed528f35dba73c52b5ad9ac72404dfc0a87990bf702aa7acd855fb1380fe9cd13cf712553edb195b6d4eefe398018b64a9f115242a405805d377994852f743bd24e1483d3c0bed6edf01822ffac69770c348cf2dac48ba94ebcccb7df37680a7e8f1a5b4b89e053b8401ae2a8d64ca77e88cc986690f6c0556c749fddcf116741decd6cb932cf1e19ce3856354ac0b7da7dfcfd91680b05cb4a7aa206c7390b28937422f0d92060b3490ac7461605361947a5d92bac411ea774f90e57dc95c9f8ad4ce78a3f63fb0bdf7f5dde67b454141bd43e849aaf26f2716a8d3ef30ed4f684a890bb21923a22a0681aade1e99c1c6bab88db08186e865f60da9622e6eac28a612a9a6d2ec8f4b5a1dd1c5a129bdb866173ca882ae18a46cd387c81ad88cbcfc66fa916efc026912f95cf1204e70148b7461b50fbef7e73eca8bd5f14f5fa2d8efc9e344600c574188c60d23817c169e1de5bfeb13e262bb443ea5c564240ca68e19d72e27c2f5470393886a4a73083d8d7cc3fed9456c8c2b1ddc2a2c713b4d0fdf625ab65b3f92406832912d2b1a8c86820e1df3dcfaa38933b82a326f0a66ec94646bbd218c292e7815510ee27ff6ba34f7f81772b238c9e4382a664223a0caace3138aebf2099c442e90013b002b41e9a66a101c575a5d661095ed6442c8a49b7845e99e5cc617208d864425628df9c132f48ddde24359a0438bebb3960bd274f81e66115c4486669640471340ad8de592632ac2bdaec83fc4d353845f89749ad1ca811d41511ce7e0112e3215d55c6ee969c9fd4d430a74f5e5502aebe16613d09dceba1ac2ed13f3ed396c3226e84ac7dba8acb04e9f34a2d68024d5c11a19ac53d3101bfa7d5447d0877ffa7fc886b2c76aaba10b70f08391fdb1974ca7a6d2d9852fcf27c7e464b0e1ed4d06755dd98259db46c96de65195420013905304d6bef691051fc30e67fe5f8f03f85cdb9946093768ef33705f1a84925fdba41d79e20b59bca0f72677e6ba337ad4f5e4c426ec6b502a2e29362a3a75f56c822b81341dad3b4bb0a3d13c16b790bf1fbc3db8d2fe8158e44b9dc230cb8d7b685e4f8fa5acc7ec7fa98b61c6006eccd01f3ba857aad35977f026d19e7d2b76cc2fd9a0bc33e05a7694e62451682d423cb3fd50122f95101c3a93e46cd08a519d51f9e84cf7f6f406890d21471119269af90db7201a6ee7ecde1509e2d4dfaae856aac02bca4dc4345b24bc2b8743898fa26e4c15047e94aeca6a090f21f84d28810112ab6ac8b230cc6a2c6687ef86a34e23ece4ffb0f6e02678a866fb7028fc811a018a59282fda13a43bb185612e863f145496b646707dc8dcd07ed1201d9f766a906417fa42db15238cd7ecab2c25ac3cb2c31c942e8e8907ea59ee38316427387bc09ee7143dc2d56f7057e06e2a7c9734e66e41b8205151b888ef32070e30e291361e8791efcb8039e577d4dda9748c769718c4d98cbcd40616b66128f9368d686dbdd8e81c4b8ecb6568cc2c20372ba739d6bc21045d7ce1db18d7c033d8b18e90e28ec55d0070276a039920dc8ee6d3acc3ba0091b5245706722838d705a72725850b64059047aa6d80f45c025e638ff66fbeb9f1f9328a0343c1a0c34200b070b5c7c93dd6d06750d5f258437b94703345c344e940667645e0cb479fe21bbdf9826f2be63afe6c927408d7218438e0d216a058a28ab4e91c199fe35751c7d5ea02173043080fe31da4d5c0283d89cfe86c49b30cc81aa82ee1050345066de1ffc6d73292432dcf21845df1b0228e15b0661e9a24b7f926b2c7b4d4c34b1cdba2ff6f1b2aba91a08dd8035bc0fd3ffbf457101ccf94af4c14b1fcf5504458fa0c79be9f8311864ab2605dd9932861becf2d8b70423ba18b574ab486949c10b77bc01a00ea4fc0e5b0abf515342763ffb43c766fc93462a434d6501f693a8ccef3a1777d3a64c96ac60f1e0cb4227148117273e3fc8130ef9ee0d40820366ca022d97fad4a93631252ddd45d43a6b9478c1def660772df8bacb4bc040dc02639d375e94eba545f89012bf85130afa1957e5dccfc1d4554bfe4b0ebc306a47d0d7b0d1bea76026d894eaabf291235cb8eca0735f10ff0870565fb84f6078274623f15e55d83057083e166e67221101505c0ccdf2a684a2093e0728f3dfe5049acce466eef1ee543c815b32a2ee58f734088f0f7c3608a25cc512b99d914611af4c40d56654e12c1c4eefd55f942967fd8dccf522b15a7da63bd8dff9df132d0172c03d0d94abda1e5b3a9b895759626e2fc873e768daabb11dde425d51fcfb6714153a2bfc2a143234ea54dff2bc5c1912c436eb018aeb146f0a040eef25cb7e630a6f210f75e5c0c77139771fb97bdda86d728244557fa381b4d3b0a11bdd8e1a1990273c19a1bc04d2d310c1087d969832548facde7f8cef3a88fd998c4e6ebc1a983752bea799b459370ca7928f35b0ce38b5ff3134e8fc36681b2e4619932d43078cb75d07e123d1bc1e52da003992393e5231a4b9749b97c1d23e12d3c11abcb8df9788a9e56d3413ade5b0ef7a3466863f8db01a678d5c34082ce39bce0450374a1edcd3877550e309253074a33daa94e85f7cb01a040bc27c37fff2434bb025c9930250287ab929033be2837085ca7b5d7a508fe362a1f93687b21b661db06283e9859980bd9a9b1b599f7f29b75b33f954475dad64e21e548538725ab05361c5c8407826a0a0f37a8ca0e03e11634967d9e4c5b1815047aafbba65958882b21f834b05d616543c655e9fb57d1de4811b2c0a4d0e08360cda7fe4f15200f6a6e9d8cad7747d67c0a6a82a62f5cdde535c00544c4d14fb1b87afd1c3b8c7f37700285f63d0f358bfa2edd9dbc64c327a6ded5df0b5fc30c14069ae658d5a224063fb56280167615e1345fd67c0f423e029dbbc7d2fa96bc2ddd31172d43d719538ade45c8968f3893fbda05feb5d8f506b3d1d15b54bce3407c1b818a5119ec033ffdd3d0a6e9cb15778fd4ab3b22e151ff358a6b6dcc3b3901e09da013c3f0b0428c99bccf812b2223937febbf6f596651ffabfd38ac9d1c75799e1d19fe42a5524a20b76b417754f5c9257776ea21b96f4f23cb9c4c1eb84f21a47f2c784b36bd7b92dd0322ba01eafc98be11c7e53ada6a059c1c09a545014bb7a1ebe61420d7d307c8b38923aea82d85faa7e11eee8a9eece07876d961b4f4c307fb65438e2f7a7d45eb8b3f5b6cb899f95a9453a883e60203bb8c41b265389e0b97e1c4bb50dfe0c87aafbe4e572306e90b065c608f9858befe33716085e10d4749a8ea25750058e132ec54508f0118374b1c72d0eb95010070b313995e86a38a177199587f6c089ae225d1d280894751f69863323488830bbe6b52b8c40aaafd4cab456028540785ab27d77d52d56707591ea98c782e4f0951430da85875a1a86cc1f7c84ff389da2b4d39ef7b51316cd8fe7850370cb3cef7cd15e8c58b44cf6c7ee311dd701add84866bcb6a51099c9eccacdc405e0fe300ad4e3f8a127ae68516f4417ba18d0d5a058a0082f9d97acc82d2fdc8b8cb57eda1d86cc8cd74e8877642cb19f4c2882c0c395db676103c1d723fa7ab516e7634003cb1f1b1f24673e3c134cea6d31734e3f7b859ed04145f0a1b8619e8c90bfc1eabb7b12435521eff1cc8d9b7ccc6d4020261d3bb95e8b9fde5f5d0f835420b886b7aff3f480b2ed04d3aebdbd64e1e3d8dc1035fdfd1abb2fd3db149f62f81c9682fa5750dcaed421d73d23d685ada21e42dbdba3201632718ad13453e521df36f8a492455ca8f53129555854f2fa72c682738d028cc2610e99c250aeaea103fb4ac9383f41b49aa0eeabed8d1544f202bd32526c4e987139e777c9f068afc4adeda583f38ac1ccd046b719fb503fe66476b28adacd2b9a6748049657acdce97bf85bcef8585c3fedab2eedd3e91e63e1ddaf088c190c4e49832b169218c6f4b902640c663fff3a6803dde4f457a8775b96ab5bbcf489aba24ef0bc560fc0cbece6dada4fb688196daaaaa50b9e2a245728e0bc1f69ad383ea99b872a0d66f5b692e5d4e0b13caba57a1f4b09b8a4f6512a6f9c7798ff378ea8aa1e18fb470ee895875180c1e292949705f3707b718ffa0d2a2ba619116b99cc6b8d8eeed70eb662924457953f25e8758228a6caf21dc75721e35332b89f8a83da8f484fa28ca3bf360534d4ada2525263daa0e79c0611ecc491f54b6facf86046250d54e8ecffaddde358072dd28c10c5a1464ca02fd242482407e98dd404c722c534eedad11a8ab37c5a78a9f7b8b55c69b12337a6992100245cc4fd9036242d848f0bdef5287b2fbb7998b484eeb17db72cbd76d1b2c844e4be154c189d06db9ec3ef9c3aaed91286badd4a76524b36dc01c54c5609f60eb9bb962009675f790af799d67cf85e4ada06e575f51a931f25254499ae60dcf9fced9a43d86ce2b804611086fe1ee8484f5b04fe0310432c95ba128f19e0224dac6b8c92206040c9df113bebc4fb7cf0df1a20724eb7d486e106858451aa952a547b5e102dc4214ea667e7acbd6503f20d159204010a0e7a1c1d3bf5391369b379f3f3b671390192abfa0750099cf9f03b48150505d848028fb3807f991fc0b9d6b4463c9c6e4068c8ef4b702ca27525ebfca4151d3fc491e0959e26eafae0af589413ef5ad786075acd4b6a4a4b0c1d9e9aa2a705219510904bedc3c49888aa210724a86c1a728b35a90349e3b9d6398bf7398869617a656b316122920ed2df9e9206c5ba7df7af707f534d7b2ee4d6d27db5cc18d7c0990db68d129df5c33ee183789716a3758029c2587988d617ce4e7934aa0a2bceb30bfabd3438e074ddc32a0c0cfa8a3ec5d2214171f7c60c8efc98277e9400e41376df484e33d0c0c0d8b51404c21e2a5a8476d194fcfe6cbad1183057913ccb931b8f9a85ab04b0d20cdb5cfe4d58808046a0a36a787324342b0e4fc26fe85984fb8746b7f278d1085aa0d530ace413fb6beca6c8765fe123bf25c7a691309848266bf89ec53778460733b8a9c55e77615b1e004d028faa36e6153e896d60c4838e2185005ac24868b161c8928ec61eab9f1782122010c2d8a18a20bc8f082ebf0b9be7ce8a3d207ba7192c250f54b00d6be1a53d2b23ececcfe386106de970bd19574f50ff3d6181a5b3dbedd3e1fed10c176186a615c5882897c25422ffe693c0f096ea60217ea3ce3f7a4b431423ae7d81d566ccfef0ee93ebe27963e82f3e7f620e9f1b0c42f0ff2842c1e84d29fbdbc8a838cb60b4bbd3788186e902fb541d8c506c9be06b1506a108a1ceaab696013bc19244c65104764909d8f41222406f1854176097136d242a516724cb4fbe10b62dbda0b820abbcf205c107b8555b0b6e8b529bd9ff4415a783f5b1046aa59ef8ea79760e3e71524d4a8198976f98d9ccd054d96abad9a586a809e4e968151046cca7c119036b4deff28e1a9d0b3a07c44dfe0ca807417d79a426c65c56df3c5c49ad81478bd4fbcb3d0d9cd90df3b5e90df2b7c5454cedabb49ebdda6dfe9818061fecf3861ac0685a8db9e86436acc4936b1c5f39addee3a046e0b020ed6ba860bc3f34c5f119532b92e06badf0aea42ac1d2489a7d2056403dd9d2271f1154534bc3cb426daf3e0a86123183d4a49bbe4986705b4465d2f3afb738aa1d6781680b8b578ce8b033987cb8b63727148391ebbee25d75c621024a0b90f891c3fa13415aacf24cd05c22b5006aa77807f47a69a9f5b7e4f99606d3b3be0b63d4062cb95eb338871cdb5e10819f28ed6e3baf61d41739c7d78f44c108eca57866d8a6b20ec43fab528070bb5e3843e6f4f50c0574a51692ac62b314b34c95973c6cf0f23c9c0f1a58a96f0ec8b06b95dbea044df7b7b4b2d3532eddac972011539919e2398820cc1a9214069accd4f14510fe74cc7e13aceaa8285be2b384a764f30b567f2efd8b9a9f5dd2b5fafb33335f4cc92cde063f4b04c3b7c5c928b8a95db099a0b958898ad492e984217fae46fee7565072314afc4a89ff6ccf7a3c0aa8136e2a240a6cc4fdb0ae5713ca4cc07f90f74e8833335c7c98491e48195ba2b338a13b6d099018e2a0d4c80769c5540ef1561193c8755c9843dfcc6b7220f714ec341a50c0444b4656806e789bb018d60423359c42eae27939a95db4e0f934d9fe36457bef83eb2c5fa278913c8b1c8b1a06a7a97de1e4ba66e8674742c59368506592340949a255e5c5aa01d17d0b11870970c904e0d20225da024d1870c57dd08e9271fd2c5815ef4d814e3a467ade2471346f5d56923e301dad84f7ccc6f7845c15d1003323840bef217318f830e5c16949c9d46ef0119eb65c06b270df9be9c76bc4b04f497ea2580f76806ea6b99d115cc4b8082012b0f78a13730cae8276e3aef8505d61533053146775562118b92cbe2b1501ae89b4e54f4f76806f2d5783d22575a0ffbcebadedd95b8d7259e1672192dfb962e36b218637168412b74b0ca464017390636f2101a625625090bc9964dfbbaf450996ac1a611ae9024f0b0207a38923e942a0c89370dcd8e65c7bc97744e32fab0f3c0a1b9e0874177aa54b14b455348d60a422beca64a17dd1ecd83be0ebbd20275b82a356ce1e9df9d538562618d869babd4b8b0232c51943d6902e1eadf8f23558ed4f8df501bf4f1d33e849082f623ad040dc2a1682bd48ae7ac9859b2325490f591a307dfe99f680cdebee7df6a77ddd00d3f20d6b9a6fcb17908b0beb3133b8e23995990cdaa0048931ab776f44f04b0370d205dbe0958411f08102640a101576b0314c54fff9f282c6dca9862aa94c0eb3be9ca98a198fb8865f2dcd7a1ef23e12093820bf79189a29a67d3dd275562069ae8e4fdcbb410a6b2e2840430d695f697822e703e1fed26903f34e46f2896b8c842895683ec38617a49d1eca9290857c9d58d509fc0e0e4910c36970664331cac3712047e33a1cc33f99a4f2050f3c9741b6307cad507a62d9d9f1031af7270c9313f6c7883be82d72d27ddc1d596f0ac4823168b47b6960b2b5d2e9abefc780d7315b968efd530e82bc4758852c3c749dec0664e2813c71c6680068b2d61c31a2d6a00a254629b37a7ef9c7002531f9441aef8fd7ee4660d38bc8ba2f8909aeac31c06618cde36616b0014317124fa1cbec3b47349bf15d0ef6f4885b16cc8c10e66441463e18fd171399403ca795824b3d6fb5f515b1f84bf884c5eaf612c6d8b8dfa55604462e6b475807eb9429155b69af0d6b7eb2620bc631f9941ab7fa138134ead70350e1bfb8e2993e49dbadd24669fa83c6bc2f6a24b20e3e47cbc58d90709d6cd5e7bd57c76fbba7e7fdf738c98e693ce108a11bb984082b1601f6cfbfff08cde02ca5a30b928b7b0df7b64ad7fff8508484ea125b618e93cd03894b0a758201d5246995b9f644eb42b52a174b8e0ac3aa1ae6f6aa200e47d606f3ec9c27046a1543976f0c8473ac51cbe65e6ba0a804362b2fbc1d57468c8a111e7c5a79ce6391650cad680cfc25e3205c4c7beb705f77e2e5179f5cad3b5b5c7b1928251c444b60e9e4f3c1b25b0da712b8f8490202d6486202facd800e27c0510307c3487e6a8958ed32930a62a86191b1adca87ebf3e228029f32dc2f8fdbcc2f6f39a0f1566ce5b8007dd16275890f423afa5b902c33a88e71d101cefa4c385afe7dcbf08b19c2665e8ab33a070321bc917d78d0e14bb65b06c828ac6178df551c7b174834c6d6464f361443a267318ad09c4514f78b14d4f46e6286c38b4194879bd3e8be1c06e57d2c005f8b11b0e085582d49e0f20f46c481bf5f8df86db647d5ca45795034367e85e715bc8fe31b4362071481aa40c369fa40d9f457d211bf80d6850f2f216f137e03820b22902d14eea437985bdb227d99f1da97e3f996e0f337b413b1545c969d3f861e363e859260e89fef005cab316b6097bdf42e812bf399481c5227efb12e2cbc26b658bc32103063b3f7d29e1bb8afda4f67c290171cccb00fb0a7824e0205020f3cc03c20b28395a3b6e3134afd3f6aa628a290714d53c25931270d57d136803045072c4082769e6562dcd5bb2c190223c2d3954b9d0395d73de74ce4befd8cea908f99d6139c1b41eb44028ccfae5a8f80bfab4588ec8b5e7ff25a451b91c9403b36071e002f7d503ed298fdca32f9c3ce8713c818cc4da8494195eeab395d4c880bcd0a06a6976d4fc2dae8db66e5d74989096699662d1c4f539120106107f12248ca7fbe50e586abc12965c94e8448f0fa2c52f75e03582e9117a6590c1708464ec94389130d6d6053e0ad3b40dc6efdc074173614a7f108fa13207131dd638eae79d872c653e8d9b3cf1e3464cd4732f49c3548762095945962e06e45ed01043a8b5a8b1d3978ac70d3a56aca8260e232a9f178aecbe2be1441b377ec57f8330463854c845f83de87a6d2aaafb927580325197d545bc2c20da17dc71a313b3dc36c41f25172482520c6deb251db6bd82609861bcecb65c3aa488004ce4e1e6d506aa13f108a61aa07a233fcb1270b6e01c7533a0836fb9777a0abcffb8f9fba3c2ea5df8133eb86a2d0842e41d8f4085adbfac4333466aec9d6586be2fa1a8c099079a201f11810196903d7b817233f2af1a1e2e1a1a89407967009727117cb60e4fd738b6e9650e28da74e471a53906c1365507dada1845c71ad105846fe6158a75a37d7da012fa4e4468481f11d4fa7bcaa7e9d9c4538612c528a490b2f9b04783e46ae67e0a7e97b91fe13dd551dc17929e1a72a26a19ad9270bd550165e158f9a9aee8ef0e98ad3fec7e086a0cfabb14ed56602607ac4339de3018043b4dbd0862c5e530bdde6d8548a012d7e2e4afb6802a9ac15fd5a77784626c645b208879255717614a16ba60ba4ca343a1f404966ee86b6f724817b497e1091a15205454c06b8713ef5816ccb8754b540450fa493300bfddf6706a2283ecaf19ac5ec5d0855b4af2b8194c4205568c4512a507438402d857676cae66149678bc56a3e37ae3d054a5a1a0a9a47e81ffd00f168a4f12f71b13ca8381e574c8d00704a019882c3a8d6b1d718f85ce579ced04910cec28ee664f5c5a2e6eb7427f54d351005325e310ccb242438128500acb4bc52ba6933bfa816f134b74a99c24c85ac278c5e2d0f9bd3c5c24034a9c0356e3c2722328b0a468204678fc7cc69a59e4dc67431eb68711cda1cc72d5ed9506bb7cc24fbc698fea43edb4b205fef23d194762e1021349c8f6cc3bc44ee5e1780e14e4546ddb04246b31413d332ad19ba8bd2b1f6c357695cad13c00cbb60cb4e3405ceb989372c872281a8080f3368241fc4db14c03a17833f03219b4e31296066bc5001424afeea4003bca465278880c55d74e95b73d3ddca224373a564f47b88c6e50a582f7a873481cdd0305959c2f3271c4840ca35642d5d05110125621ef6beafa4076828efec21a7ac486ae2b1a968a49e9c5d51839394ac247d9872a4ae76ac2e9888bec01c6455eee8d8dccb88a36596b3118bd1d509e5245f64dd002e5ed0da53dfa0c3bbd1bc398537776e43d63780d8582be37681a2b71e84730f5bfeadf455c00bc8a076094c103c1de10a67ece63324eab38cfde4aa9b861b9ab0c688cf5b0f185325e8836b9c267f69ab1b042a9b31a4e38741833e38a1ee585d3d18088e78f3134128a06763689aa300397975a40f8791cec018401dc31df651285bbf12946dceb87d9bcbf090700f3ecd8a7fc9d47b8c553b3d00bad376ff7e5a0a3ba64b7b3c119c291182bf4279893c1548acf2c78f451b3addd7586c68c17ca492f4c54d06caf4c9164ce180c5be041397f8bed37de23300eb536b73ade474e47810206260bd26cc386edcf0073ed2cdafdc5295632cf2faace1304de4ed550f04665bfc53ef07d15f998c4e2907b656f6e3e4d91bcaa06b86c4e570584bb3b05886830063dc00f6d1676ca4b0af73f94ad075669925128beb32e5f8733bbc3fb8ed9c7732bc66f15a78ba583220f437c12746f02889d5659c5141bf87d0f11f40d6177a5b4f72f387a889ee0c8ff8699a0bfeff3483cb042ef45dbb00cead5d4a206fac3b703f87d6081509c180e51f56ef0ac03d0c66b21b49bb95404b866cab1eec3ad35044ee241d3864a8c059aa8d34e47370405f95933246a07a8eb093bd6db96c2f049f5901b27a757d18c2e1bdc41a385ff963a3435209dbf7d18e3064dd255262cc951e6b01f84304f975f414ea42ec1c4086641b9af09fca028cdcbe4b2625b27991b0f64043a6f0f603d87207e27b697c3896d09bcab284f88359d66b8bbe64258cc6962bfe51316ad50e19364c4775bcd70bd6e395fc1b3384ce901b888ac9cad09ae86e3d954a5e836b62c204a8306a48340bdc3b601d6e08724378994d2d3b8e718f2aa20513bf932c1d48c8ac11d12868804252e6948b81d4d47ae622273183a0b1d611e93ab5cdd8a76853b8311268e8991a17d7c97928d68b184156061c4e42b32213e60b6374a5f85a27c318b194c23c7cc1bf8ccfcc7342fb32651d8c37c17ab64190f82e2ee98c84faa70fb4289ae03acc2461219f1374cd01abec86eecd8a65600ad029592ecd8094a9f1b3651cd8e2bbe8ee94923e005820893432627f58f9afc9ba356837fec497799014d44124c23a41735d43619f8298db6a9dde5c8aacf3ed5a5671f0d9998106f48561a8468379a21ee9dc0c3eb810314db0241144672e2bdf3529cae83f525eb1aa280bfa6906507cc0bb08b1a1a740c29ca4b01c4cc046e6cbef02689bdeccc5224a813cdc13fb2b231964b59f70e9154db0dda54b70ccaa894082d96046105b2f0dd60dc25392a9ed51721a9bf29dfb77dd649e5f3862ffb79696afa0074d59ca94e47bde939553f8b2ccbb35bd859a2473925f5049b1034ae518c68f6472d2125a907d12fe144a810352c6f313c928a24569f884656d68b9049f571fc81f702bf2c6136674dc5823421a859bb6134712067a058c04ec39f650c0374d123ea03a3733d413feb89b8721d4d2b910687f80097f8e88d17a27593d42b4fc47dcae8e63ac1a76e532862273d1499d94a2ec9d9ee5ecd7364d9b85a93964485bc0a14a64ac6c06f646417e4f6a1d7fd88d49bcec31fe6924730bb99b041b3c943f8f3ac21f316e7ead56c5a94bf24875acb80aa6b279e76f1bf0924b7255b7ee7536aa85ca9dc996c8c037eb5ecf93a77c3251372de1f67919a7430de911de228778b795f8667de7960ece20d25ddf2a6f89b813454877cf6875d84f693d0f3dea5cba38f602d4bcaf96345e4f332ce8f4e2c94ccdf819256c149fe41d3d4959a41dc77c0b804d2fc5fa33c0775798768ecf9d37096fd134fd4c5f2426bd54abbab704f75f3dd9f1690784d0edbc9271d60e4ac291ba815d7b038b49d1f4aadf1430070c9eb5d7e83bc8aa516dfca8bc5234766f3368405141f4415318010972ed8235acbd8a1a16d4dcd0c26752d51745aa082f0ced1ad8b5f8a7e43d03b1169e91337bb3896b81ea207b2f67dcd990f2392af7401a83fac0d5e1ea478f9ec73232cdc3c5ef49492def2df2c1fbb0958ea78647436851d84420217ee5e2917b65d4cbeb399a220088a2a13d071c66f040cbe10391b776d6e192335bcc5b64c962171847b4178cbc7f8e73e3d08bf1e906e33a997249299890d97ae76753d2229a7c0757b09a07c8390e3b1045b0ca09aad57c32d757f18ee4d027203f4989b1fe65800bedc2d69dbe097131978c246f686a202e4f1c8f2d00076cd3bb0ff0d7352defd500d098fec102ac9b05135a009f35daab44a92f8ac435b635c179d0544cb306a171206d5ccede16b3ed6ab508524472e584933ca05e2cd80943bd72f49bf4f473bce0a1b76f08bf109102121514ddfe097cb1b7a2b3644f93d934f7276d48d34c2da9e930250455b735eb023b44ebb1b0501547dec03a65ef0b0c983a154fe17df02f0b76a24b0bb6a423d428502d48904daa25bba5b3052326e0e66b110ce6b490a4117847036c80c294a185a7abf5c6bc3b2331afbc55aab0ae15a6e6362dbb604ed632a81c51242300cc01cc2380456b7eefc0af55b0eb3edf68f0dfb90bf890f0db542f41ffbb6bbb67b4b29534a327d0ba20b950bde5ff97957a5e841f6047687ddadab4f304f2cc61c77fac4403db675c24a29c32af1c1507d90a014caa535a04fe6487b2885551f263a2a85be1c45554e91983a3c6392c2489ac4eddaa4c7daead28c75ea10f3a6bf796e2d629ab88bdb855ef51fc0d025eb3781f973bbd5aa24f9b6bdfb6804f3d34b648f1b04e7761eab0e31270b24023412c547ccc3bc91d1bfbc919887f125a09128db1b79f9d11b81f9987fd9d17d11a0ff91eb3f80e0ff78f9d1ff80f998c7d12f3f7a1f2f3ffa4df401f331b23e799d7f17138ebadb9f76ef3f80f492757b0f49be389dc83ebc42cb9c7d585106f2921880cd075bd2e9c33cb11773ece719037111805887aff04d63e12070a93f183ad734c13c8cd83d0ea4ea55ab57a47b039c4f5c81725dbefbcebd17d7cc4162ce259cbcbc8fa3bc641ffaa4c8837a6c77c21ce9d64838619ee6f4a03ef59339f6770db8a4f2ee7114a798c0a15e3a55f56a2389bedf88d6b3b1361509de8de472506b693c97c4b93fcf229eeb5fda192d91807666cbcaaa302f1101d292456ea02792a3436916449ff6964f7bcba7bdd5def2c16161b4e5bb2d6db9c4f6d8f72140970f3d6957b098eb65797a1c2de941d26a823cc63c7f3743951d80eeacb24349803babec90c4b52e47d1d24b3e8e8a294b97b53214e894070d82d38542bbc3da71fbfe343cb8e7e7795dded5ab104f8fed5adcb5c55fb60cd84e4c53326a4b7e00453f5e1ee6c7e86344aba47b97e77f097fb55a8964109cdb7d683581ee5dbe8bf1be903c72bf4fe1c5087048bd64088ed8ef6854e14275ed530ff5aa5b3f802e5708f5be8634ef8534dbf3f5bee3421a2b5e00fc0b3c6b4ffd0aa121cf83e05c9729d745b44a42a1ddb13b600d89d42e18806455d1729a904c1425915e5e68298201e65fde078c38bdf4227eef0347bb10207df5e8b5bdf6e7a3e14b0b7c192e3fbb68cb21f5da992de98c02d1a0eefedf69d4ec982bf1f125cee425a42bda9a26175d7997a4ae1c34308cfee57d8cfe45f4f1f230e2aa572f30bda4c754af1c5559302c98b0aabecaf296c35aa6ea135955b7f2b4ac65287833de9a266fa1e0e144c1f32713557dbce5289b85db52768d70fb693e1744d3a48536ba6d9b15e9f7fdfc727c626df5d895d563654d809969588eb2aecaea9e14b58ac598a70e7d8ab273a8729d0a2e759ffc8929135dd2bafc07af17efa5cbe8b265def2126c9a62d3d40f9b3953b80fbc9d1e558eb23cb8e0368f65d515dcfef073417459b4ab697ad2ae00e0b12dbdebbe7b92c48367e0cd5f9897be8e79a9f8d202ff764f0ea97713497e1bf8d2f7fec875fb6c7fe3a1aa1780245591f4d5e22ee9b1eb3bcc6cad5df154d5aa0520597daa0f96b83387facca6c8e2d227aa0fe753af78b353e719bb64affe57ddafd869f33227dca2ecb11fe627d8a75ef516f3547398659faaaa47187109dff8cfedefc2af029d7a79b7a5979068aad0064d93860397faedccb59510574381e50fff761ef6e5155c24aa3ed955e7304f96533ed832567db264ccf18bb009949ca009a91b444d5ea928343ce835c00a52a45d414332a7a6c36dca5a5d2674c53b3daa54ac8479d887b2e88af6545b6a2a1ef47a10208e6e99a3280fb3d4ef023ac48c3e91916e7f94ae08e0bd843315000efbd2d6cc9997aefc07902f495db75f856fc7fcb99d38e4a3a1b114e9b1bf23625dd6d5a779fb92d6d52b47d92c66a93f4b8f058365c968d992ddb7a74e374a5794ae6e1cc0009ffdee005e0a2f46804170eef7a1df1e01ef505c2d2040d2967709f8f230bf6d204822c188bf3d39929d1804e7d2df66f87678dfe3fad3c0f0f2307f819787112f30fae9250e8273ed739579bf85d5c705e008015f0eef11f0d1c0f0f2a3bf00ccc7bc1742a0470f071b0124bd25811efbab4ff5a957bce59db75c4acc48e671f4c8a18433e52d47551f99ead3aa3ef6c8131c7e984901a20b27aea85004e100888b2c53a400267c09bde52d87e2b22f47c17c3fa594be2cc0a93b7597d2b36280fff489bf651b5042162d7e80384211745043126210c60fb25cc901935edd559fdc59c8f118a45da7e3cd2fc776372aa567354da72fc7269232dcefe9938b1b684b2fd56b7becaa07f4253db62ddf13bf136df99f48922e694b232069cb99d333735ab81d22ddd04ffa350979d8b84e60defec088def2d6ad9f5859de02906c99ccb70d043b5113c256cb90caa72f07b5abb63d0bf0fc07b05eb2573b642e7d8ef5e83f807dc94e000ecd8e7af9eb659101f5926e4bb7408e9a63aca007af1828b1011251a6106e40842dbcc801119ca0223595d085104998d00209252c48f5db99a38eeca8c0065baa70e24a100fa9e6984c86b2a1cba22d59009274654b5bdad296568b87f6a7c796bdc86c2993bdfab45aad56abb9711d904bf393157453057263ab791f4c4c7db6ee35dca0bafc6c391422ba43b66b3914326423d17842ec0ba9df00ee49162e93282af45c4361ff74899d703b51ec73e24e1230c53df749c054e8fb1ba84ffc2e5a75dd11fe90f79f58c4c8f7a2f7be8891284642df35ced8a2e1ff7ea63a14fa1fde7fde874423a2ffdefb22458c84befb283e44ff79e18d1bb7f97d7c342cc21012fd6c1897fa77e8ef24d952fe49c054cdc75c2fd9ed1d1e9c54cd27015336328fa3bb8c1e9dc795f84e8fcd4e809ce2be74d9e8498fb98f93fe8a79d2619ccbd692dd7e2fbbe5b2a2ab3ac897f4d8dee337fc3c8e2685beb25e187a2efc7eb309676aa6fa49bf3a06ad44d7600a5867b7a609072f21cd83610a1f13a2f03021e95d421a3f0a679e3f7e1a3a11bd874e6c421e30d5bd4c68024ec97c4db8c303a6443fbf1ae8338d0d69ace84d01c986390f5ce83d70a93fc40a201d88dbcfbe6a02ec6c78299c99431f0177be01a64ef59597da7f00c23a55f41dbe8981511a107dc70b203ff88a4bfd2f33875f035ceeb00e679937fd2c042ef5cf58364d582c013213306e09d86ab9a5ee19017da5c5668ece6d89bebf638efa9e7e34307cdffd0fd17bcf6177197c1cdd556918b8e56039ea880f65b08ce0c94110403049f57bcb51164862c4195b28a1491344a4fa7de53da2908645a2ff11fa4e34f27de845df87de88a8634f7424f5f9e0fe7bfe2ff422b1c8f7a12f229a5f074d53bf7719aa00f4eee5559f42b350c8751e772bc77134fcf3fae0bea309674aabc04ceda0f0a44f219ca9ce43a6214d8f5068269c291472f4d831c11195cb8f5e269c29a6095f3e85107c14c2982785304f2374f99970f43221a75e1e0cfdf7610f8f35bdf40213e3f331d9b01898566f2b6817830c23c7b95bcb510e7978141f7c7046789d845451fc6f702c5e2c517d3c7a3c0dbf407f7e1afb47ae7da147ef5139f62a90390302646e6119279bc964fef295af9c8504849c7d974f07877c3517f9db56cb35a2c13dbc62251308c86834a241495f7910a7ea2d665204f3e0ab99ea21d173ffe3fb906824f4df73a291283e42224d0f8e1369e8773f53df1be1c4d07bff83fb8e7b8f7b23de877ea6443f53a1f778afdb1f72d84c799cafdad5ad1e6f00c9868526751edc053e843ff115af7809f7f8ca57be7226bec4572c8565a556fd934820e8b2e6e955f7348ba6060d0d4d0dda36e20ae50f16517bf1cb515ffc74f49d1e0077adce58e6445841ab55d8ef6f2af3b47d7feb609ea87bcc251b6679a3febe036e14cb34f56ba1973dfef428a32a20f699cf7ce633a02b332b6595db5336854bdc3b27dab05d2b36941ee994db0ebbed2f97e23dbe2a7960fdd297c3bff4e9e8be1d0b5eb77c00e72d4b5bb08c75e6bc19c26423cc93ffe755bcb8bdc46d268067dd450d731463314bfd5964f1b90cc6ed97e90092bef2974f71588f3299ec87c3d263c33898ac618ea54f6497b7ad5c72ce4a4771dfdfb37e2ee4159099956d9339a2b506cee051b9a418a75393ca6d1c73ec29bafd308cdab8d4df350be0e63d80f309205e37ee1340b86e3f04fac4a899b25fbbaa3d8e4e69a9f971e0a78b207cd0424b0c927ce007559cb0832766449105095440d9810833c400ba22d53d204122060e2f30820e56544d229429fefa3e8a14002865bf8ad34b5480f0b92ff4890a1001316780345ee6c90ad3c10ff334be0a70aae669f0909981f4323f2f4502d6980e20497bf87ecf1f9a392edef6fca2996343cf0fce1ceef95f664e275215e5e101e9ec01e5e913156778f91edd99d193357726e64915ee8c480609725f9e9fe4fbf2f3cb3112c91a9b1a363e14011023922aacf04272ccbf847cbf3e875c83e8bf7779efb5dfde7ee8b9ef9ec398903c725fc279eb57610da32a47d113f4f489240ae11fb25d26ac4343ac55f8a6bf4a51755063758a4a45ad629aacd41d541e84b507a1ad115659599f983754fee583c153b024a08e796be0335cd5a74797cb3ae01e970b8c611d5c1dcc9c9e3e51a62c2480be18561b354f562c364fd61f2dd46543a4b12ef5778c5b5daa8941611d1adfcf3398392188f9d1cbfccc934c03919170f9caadefbb273909d1734fb214f0434fb20d5ede3e290a01cc6f4ff20d280fd80aebd010a914be1169770a29ffcb71437746218429eead50f4572a33a706af4a7d9728ba2ac5cca941f4fd550733a7063066ff658aed6160a38ff9fefac4cca9210447ee8c486f304dfd3222cd629a42aa444861429a659afa5f423a0b2912a6898b693ac234f5bb84f4679afabd906e41b5c8c1edb74edcfe100eee34754ddcfe4a52175de2c3290ef3972b565d2eeaaa0670ad200047f98b69bbea0f424c70c5c2a14bfaabc2b6129c8950f8a68aac040f78062dc55de19b407d5fe1a380f7d0eca8ef5f456e5d0efdaef051d1655d06a0bbb9b5ea3146633762a7eaa23ca05850a0e997da95e5b12a9e895cbf73174912504dd80dc09b61318392753ccbbc71217841c44c07e770b1afabe6a5024c4d00d21775d11d90a4402f2ff5b7abace1d96cd623cf4a12494915bbb4d2e5958d0026afba984c5f0e27364fc1983a366c62cc1c1b4897fecca1355f691930a62ffab8e6bbf41c40a72f7a27361cab301c40ee1a91c6bfe6bfa5f4e97b1a176960a8f136de47cdbf48e37f2455432c12c5478daf118b44219dd4fc0ffec20654a852466e1055355f23de10be119caff145a2f8f8af2116a9f9178bd478177b905c15e4fef55d7425ee3c8c049c3ea118c5ffdfc6932fc44ff18555e36bbe564102d698cb7f4f55207defc90a631d2cdd5558878a343b44d23ee77d7fb5d2271a1ea2a74fc519bc17fdbcdb9f5cfae4f2354fda026ab9fd63796ed3b0d6ee738186df874297af5d886eb40675f91a2e9b8be84b7066dac6b70d1b366ac4eae3259b1cdfe7425f2a56d81920bfd715c081e09b7e2bba107c5300ee860727d674962ebbecb2cb2e3f183a55235618e59c0c598f7cc333d6f10384f3f695976b9a0ce051201a1e3cc3bc331bfeea52bf55dd1a846353612f33407ff5690aeb38c1a823a9fe2efbc436fec8255d0a1b07bacda47b9e00da780eba146816dff4a8f1387a879f71c6e5278f601d92af7f3a4462add22309c0ff9ae7afc7ce7fcd1bd1b9fd55b69533679301017989d68435c663d8bc8d275d060bdd9ab7f9186ade46a4a17f2435bd1483cddb1069a8782405a6687ed8781ba2112f037427803315856607fdfa54ec25343ce80c572406141f556aa6c02af60a09e8ed6822f8e608be4180e75f80dd2529108bdd846f7ae6a81adf35364d604c54bd71c3000628952ec9b390e4190a285c926733183a5543acb026d42b17d62319dcaa53c87c50b10082b9ca96d5bc8dcbd52e9b1aa725f561e54311d7653d569673e1587ebc080cc43397f96f0e5294cb0dcf839c092e172858a7c696f4e9084f9fe8bc3648405a469f9a1f35bb4e04c1f4b9343bfce953f1c89db7f3ea558aab6b30732a14d394c444552ab3d44f22c55cb2c25c5de7425f172b8c6fc600c90a8b317ddd56c2597856965d76b9ea13495d77492cc63aeea81a9befe7994d8d0fe0f27739ac245c49247179469bdc0672d9025a507afc02f4af7a47a7c0fcb504708ec104146051460ec6c0024b6a852f8c20a3074da820085470223944e4568f2e86b205a4dff130c0a561cc05018ea6a18b0176ec31e855ac8815e6618064050324b95557a553a7e555d227b2ae9ceafc35029215c63addedaf55fa143473a614b7df81409202b9e7d59807f169e2fa6bf218ac85bf9079a9652ef3ae414371cb764dd316ef8150b864bb825a3d7659c3d327925bb7d5272fcbb22c19e0d44569153446ab68578fdd276eb5132d856fa894769e1e95f4accbcd85c534b910bad0a205d9346d9a4fa9d573d15f3dc25cd2651c035af01c46df4558fd29611d6d5de2e7428fc339dcbe0bed8741625814838cae7df1e381001758e1e25a0a530248dda97bc7e0c6b3cec2797a5412faaac75a6bada9555623abb2d251e17f8d2e6dbaace9f2bb0cc5d9a504e03c0ba38d6dab018236e2ac055a6b1195558ba849dcbaea13adae399a41b7f0cd123a8637b9cee32a2047d57c3f8d39aa4664f049106cc57c89697226d8a980c2019f0baf2fc09adbe1f018f4c7f1e5e0a72fea6a2480f4d527579fa4d0b88c6ffa6dae0d47cd2a39904245cc074c989224652223490f5948d1840c9ed0f00111ba600115547ed8414a043e32e019e20726588d91ea77d9ec5461d54aa5b4ee347f399c0921739a6a394d15c65c2bd754e9b15d35edaab076f1ace461758f38f3194ccc4866860609851442dcc827856e219a307fee06660e0781810e4a20317c10a30b025cb1c41433a4f0a26709d7ab6dc539b1ab06e7c4a800d4b86ee0689cc46dd709c7db58c53c35ac336be64e8f1350310fab36307f36e07502fc74033d3610ead9ba894412dff47b89510198bcc33cace21980243761014b124cf86005115ff420f5c29432b818220b292d50e27a3569d406bad45a48ac2303dfd0100046d930494cdc0619a616b79902fc40dec5201b880292f3e7e2c4d027b286d6903b574b9f75acc894ffda4083b38a7536bee96796dbc0283e625371977ddcc061267c04bf60deb00a60a0649a520005ec4bb2921c2e03909570a3580abb62009238ec72b18ba7682c855d8e62251a2b61172b51721b67ac8157fba41a7e8575ac38e29bea57fc0abf5283b479a2dbf94c55ebb4614458878a23be69291855834b3eaac1283f824bce924d71840f16f386a91842a7a61388f0d8a896824b0df39813905e92633f31d8344d019b748bf504dce9133983aedd618a2eb2b87ff989cc1cfafd2398a85679f374afba052b7e598f2a47358ba5a271695cb2ebb39874036ecdb658d189a6a5472fb5b2141dcb9572bc72fbc7d2443912a3bbc6711347304bfddc0c621e88c066101122bca31171d4a8058d3070c43ace846f8e609473c1a57626d563d0d66a6dad12c01939689ab238eb3019f386bb60270871fb29cf668eea2a57accc9a00498ed5c0b79f68d83481a4bbb68de4264ec07a499ebd5ca6e17729ab1e568e80fe72f5c831d564009289e2294812c7541c53dd7e8e396a13fb8959eae766896c2c620d1b478d88164464f6e8538f3df6e8a37decb1472b971c6f939e745305b2eb445af24dd72070a9e650556c9d613d76155ab24ecbf8a6068151968bde4477b35cb04e0f316fba0821348b8769f27a56aba54fde6ddba63df51e8777a17be2907abd891f01fa6bfff3d3340eeb75bba461fee58bc0bcc08851e8dfa09920f52246f17ed52b47b56c8a4446407a5fde4bfeed496f010585f54a8fdf7721bba3eaec0e8bc140947af5a9aa4aabe5a9aa1ebd0e8916edf1527f8bb25095e912482c716b0b762b0d9cbcbc3fa5b445b9d5c34bfd3178a949f6a9bd82f11f9f79e979c92e175d59242c5f6fe688aeaf28f59e3e8973bdc7d13ce616a1bb955bafbc577ebbf9bdb440774f64990c4280e42c6fafa80b0633a757d384c544350fb3d42f2f9c4769af5ac6cb2d4a6a5dde42fcc025a7eccebe6ddce325ff262c56bd2e3294564bb5c32cc565577665974c7955956a87abc2892c5790614418404885c270c202278ab0c31448e0595aba635794a7b7cdbb19f81f05dae7b76f87d4cbef7d67044955b7779cb20f57569d81d726f5084ec19f64317bcb028261c9f026e0f7def3ec7eda15eb746255f1cd5655d6e5fe7aa2848b757c897913032ef57b1338d4f02076a7e50a2e874c3945e9b42207555890bae17b35917ab17553b5349e164e6dd20aa0dd5d764f9f6ca0a072c65758334774bb3e75d6addbd1c2f87bcfdefb7b3e015b3943fa92eab05f7f0b857c3f64bb334fb64ae647ff83f433a397f91fa397118bcc3c4946bce1f565c299228933d8af5fb70f7d902353ae2583689d02bcf9dd28ec94138874597f446d97cd8515fb0aacb960544b71a5556cbf3e6184d775c09d4f14618cf12a80734981626bb5b576cccf34e45c3d7c3816ab874bfddbb66d20e85e905bc9b55c7d22b5a00be51909d8ef5d9433678999139b3958668e9d62ea702abe616223c2d4e1a2b0d2284e4a973491636d2f8eb5bd5cd0ae15b92a1c8b1b82734d1387044704a7b24f6a4145f404b1c1609eb8d7d613a5c73fee3b97e99283e684793a639ea8161473492da86a41bcd1da2a8ee55242774199a655adb4528d56f7e9d39599638148245ba5b7682167509333a8e79519348366900c08be6c2fb055333232346cb8fbbfb440ed53f02cd7fa42ae09e7e28c9837e0e59c4c533f27c6d0a3c71dacaa556fc346c8a954cc6a61f9d1520a7d39442d882fa90569417d12c22f64c8763b8b79d33f84747b8b69d2ca685477a9427f39f83b5fb2953430ccfce87fccfc482c12c5c7e8657e7ae907e965c422a430a2d8c192d44824859cd0a28bd44c45d962a919166fdcc0c1518dfddd7da2b3caf5d744986701fdc9edb54de98f878deba293d16b8b396ace402b36962b3d220124b7f24ab338d2ab67db06e08d59801ec31d5598260f838c97869f56db3bfd43c36297b3e651f5b803a7e272e04ea0e27ce0217a001e83f607f0e5a83f0002d8ea6509547af5de7a0cb02da02776c5078beca7bc33ab64c553eb8dc742690bf0a9541c4bdb324d2cae499ff865e8f105bea1f2f22672f0f22555e860327d39ea9b0a50dd45fedc10b3d4ff048915b704c7e29926252b8ec5b1381607c5ab875c138ec55241e9539f4ea4b645db3273bcdaefb7cc0a7239cc05f682675bb92d6180ed354df592db2b0109d8963002664184d633736614b7df71608e0404d883a360ebe276184da8ac954137261babc7b900c90eda545ad0ed9f4e91c680e20543a4c856bd0a33c7bfaafe1b2f87fc9575048ed5a3571f575bb909119e391e141454bfb7ad9c49ae8a4bfd323ffa22cc2313ce94d33b22e2cfdc4e8fbd4de991f9e9f6da60bcbd186667d00c22324bf6d5e394ed554ffea22f47fdb657a3f82f8b1c0fa7721c801b6c7b71aa6d4a9fa6847c0aa8dd49058a206ebd330a15f45c242d1d5c978757c9b138ae19e055f7eaae008fc1d02be0cbc1bd0216e0ddf884bcfc90ed82e596c5447516dc0d9927cdbc1199273dc9a97a013e482ff346667ef446482ff324a7ca41e3ef63f433ef43e6493f3f1a176118fdccff18fd0c0a6291283e667ec83c49a4e19f291a621112184478a12535236e3040c206a9998a328e577b2d0b308bfa5eabbb8eeefdbff7d7f1bdbbbbfff6472e8ef69ebdffc2c621e6fb7b079898d009e689837918916428db944d26dc625ef2d24bc810f06e3998a6fe0d07f3667b85dbeb0774113b2636ac474e1576288f439c8ac7439c7b751fdba34fce42494775afee3abceb41c0f33e1e36eef7ad2a556557ed19edd990ea087d7dfe7684be8adfa346b363fbfa3ab6afa20ad3a4fd913bbf5a5fc7bc55540519b9fe525f8e4f74327a2e7422f33262975e6eaff2e525e901dddddb6b836d3192ff809e18438f1e7d0b90dc7a3895a3b6924bfd562cc592c56e87e759805bd973372fca6d8b0d09f354cb4d0c1e622bddd62c1b182d32b69eb20973b595d96b04e616324c14cf5c0bf0e5df464c9d17f8a6bf594d668e3675fa0adfcc9cfafd8d03a3b61c9bc3aff261eb2460b93a9d289ef11732b00e1587f04dbf16e4a52f18a599314bae6dadb65666a222328475b42d5a90a3b61ed7cc60d4260497fa9dc18eb3da16217ab42dda964d089edd1e31c6b8fd9e05a85dd515d6e9c1375c30aa9370c95f601d37c1ec2d7de5925dbaa05d4df49d69eac13a0dc6bc49b25d2d44903ec9a95e1b95b9bdeaf76f4d6c3998276ef3811233c4eb36379d5da4712a47359259eae754cd35a7ba2a6ef5d8a447d6347577f36d2dfdd363ab462a56a9aa30c7e2588e9add1cab395673ace6581c0e8c8bc1488e1552c1344389d2d515030149b94d5d559042b76edadbf7975756122e968b679496585c06561f56b65361641df7c175803b7f008ca22e1fbabaa5c720bea14d601c744e45bc1ae5af245c350cbea15b82baa472ddeef32a8db9587cc32d9e81abd6ca7229c128aa4459595489520bb0b29470d5baa24df8a6fec0a84a9bd0aa9a26308e08bab409eb5424f38686517338624473a0aafa435d510a344d14688645055659d5e5251a2c2a30567535a1b12ebde4aa9e79a99f73146c40b12e5540ee4882aaab71e05293314797af2890a3a081ec6590c43a347e307344395f05c2ccf1668e76c5ccd92a1655083367083962bea3f1328eaaa9f1d54b2f3996ebb20ac356e88fa700f3647d5af64867f5672fdfdb562b6c965ebe7ef712d219fd29fda74f33fa42cba6b3bf2eb20f4cc8311f7c0ae87227155818d7de19859230fc5b304b07f261a2284f1075e528da64967ab3e2d62aec22ff26334788e88d983942be23668e1017ea64e608f11ee68568f4c9cc11b2fde8fb690c668e10fb33df4f65307384841e85efa750668e10ee53f87e1a65e608e99ee6fb3b4efbf83b6e02a0724f112c8eb112e258b9a708560eb77a2c82613d961e63c2f1cc4b9cf7b0cd14cf5af5aa2df7712b5a8769524d13ebc08a9dfb7254a3804b8d648efd65cfab07560d7c86d7d3a3e6ea523f7d59e9b19fae401aebd1c7451ba8630e7dc7d9af1f815ac519f8ad48c3d96db3eea1ce698b7bda03187a9a10bcb07df72f7c088888c0c6ed44927f1369eacfdb69bf85a190ce71aba1c8d52850f334566356a45068931e7900a9ab890ac0ae56eea90eac1a0b32a23d3d5256cfa54c78cc1e5c66922a719bd62a8da24ab013b7690f65ad564b58874aa1f404b3d43cf404935907d3d42edfbcaebcd433871d0b97b9cc69a594faca7b9cb5528119c6d4f572980e9ab56ba300f938dae66bbe04a08be344ba025dfda265f79d0018e656b88fbf7a749f3ed1955b314fd40797c2a77015778206416d441a8493db4f9bccb19fc65cb127d3c4316082ca6ad092b924b7aa37bf1d1d4d7df18fa46c429afa357f24d5bdd808d5781bafbdf75ba52b0069ea03e0e7bfcdff081f00a2111b1fbe8d68248a0f1b1fbe911aff3f53b6c6ffc760e3c39fdf04b8afefc3e66b5e0b61b0d9441f352f8a456c7ccd17a9f136343cea6fbf8933705f7f8644c2e9a528f569b6b7f14752349b28c4478db7211601528199a281879c413f53e193cc53438cc2fd4cfd937356239c291b62c7c2b05f5ebf1e35be5d8eaa21da1d9dbf63e1c1ef2255027a29a38fc36dc299aaf16cc299226976d0e7a74fcb9a70a6c04bcb4a55000ab197a74ffc8caa112990971a65431b8a1ab15220206e7ab3e45f0334f24a5737852c723b292e97571627d21480366f23728c7b8570ea743500a86f43bd4604431b361bc05bdf26ac624be93baf7397ce4a23313c739b07bf76d5bccd9700c8653366a7ceff4b98d8d404a0bb3df2e9c41a54615e72d1b0fb5abb2a80134da2c26815b79fc6e6d85f2376297381425a308abbfc76d0ece8ea7722cd8eeeb9e74492fb4e64d9914bdf431a3217ecec87e6187a0f77c870c90c5cb7a2939ad0d73448a42900499651205a06b7e8961e1bc85f639754a8c800d63f5dd8483050b747e3762209409bafb1e97276d0ac99a2b8c3732365f349b6d4ce4e129c948dff0fc5245bcae6c92ec90a3b820d86f0c5113ce068319ca9309c29f690747f6cc2af3eb8fd36aeb8fd352a106e7f0703550252b1673d963dee00764f763901b2fbea332b450108a3a263e9b1fbe4a2939aa7405deaa7406510adb4e451d1fb0b2eb8d4619ffaa756b9fd5d571376ca43e62c401cc68c693aea610aee3f7be4f955588d735fbd72d50760646328401609d0d5d45885d53c3b2a8525ac70410bc6e881072aa919c60cca1d902044154b6ce9998b6ffaeb4f85d5272aac2c4b2dfdd36539eb138cbf0002c017a068e4d1b03e314d504c139569aa52a3a8524c53ff4c585188ddfe14a6b8958adb3f3281cd9ba0fa3c4d386f0ae1bc28dc51386fcc57035fff38da5100d200a4c730881140ea277e11522fbfd7237dd61dd2f7f3f9ae344a04d2a314d09db1b84f0d8acb749790851c1f9fcf8775be20f6bef021324d403c304d23f0bef0668e22e7ec4b0274b695728b75aaf805d12f885b4590f5003aa55dbdd6ca20a5946ed66ed66a4d341e4d157a4145f88258c72363de38caebe26bc2ed1779b369ca5203d0436fe53eee43f2791f1ff6c1623717bec23e2e3e9a943e91deea6aad3e41e993ab4ffe9a4ae5adaa11506b3273f83573c41b377ca0a4512211932ef5bb965c1193295a6836602144b9fd03cd88dbdfe978a0bbdb5a6dad3a1e8394325931e1664c56170b30744986c2e4b6c8c5805a39c602a471c15e16f9ca85b92443619f2a20e9cd180990bca1f5895b6880037050ef562f65bd07681e043e091cb95d277e287a896e3060e6f868619e2c20f658ad40d29b79334f4ba32c962ef557d1ca56000aa13d1cc557bac4585c9e7d1ce5227289a4cc1c4fcb34d9609ebc24ccb1bf8a446fe6f2172de9d326aefa64454f8b37eb910620c93e325ec096a3b5a7631950a9d702ad5e03dc7a0ef82470a4c3f11cf215b11ab593644c45a99f039f918aa2e57c2e702256a3a26cdf2f6262cbc0d1d67e4abe906f0b2db4f0d5dfc23ebccd1c8d7df0fd6c051be1f63311a64e65a0ffbeefbfcefbbeeebdefebbe133f253d7a40dde702507f3978dab07114e096db3fb341d3e46979212da4bdff747859a6a9df132d16d354039f719db8bc3773948bc8db0682246fe6cd40927d58674bd7bdd73df8e5e8ec1042fd168ba933e74d4814c2328ba54fdcf667e668ff9c4882a4cbb547983af51bc83405a161888b08e68da6d2549a4a53c2d545db51b968aa93d3ee9ef928827dcd344842375520993dc4711caf9c59641e7e07997b2ad578a6666aa6481b22b8d1d13b225e0ae2e1619a7abad4dc038fac1f6ebf0301e40f99871cfca2a66995528d52ca57500e02bf6e933cc5b99475a95ddfbc81086371a1eed41d76a3d334bae93003b6853acc78752e285064503e1d66b8a8c8f115fcea13d3e7de4b1df89729d5a856352ac30680a0be4bec1636def8588fa11a528f5c6343eaac11b98106bee967d80d8c622934b1a5a06186d10101e42ec93247f16a25e395cc0597cb2b2852a4f0ab47660e7d3acc90d2e3bc52a4c09c5f3acc80f915d0a7b8a8c30c1877faf83bf6dc0ab0be0a304d0a14d6f8759801a54f0c654a4b6914afbad42e3b852dcc863acc78b9a0d84f8719505a3dceeba22cea30034a8ff3f2f4785d0790c46166666619f35ce6e993fb78b44bcc405adbc8a09b2a90da488b8989d162626246b5d65a24e62bedbaefaacc0c5763626266b81a131323a359ab590b96336699b05334424e714e461f13cec4c88822cff31c66cc039181c5c0642ac93e4ecce3e84dd3364d8b7112f323999066241619bd8ce87f24e522ba60676de86d88768fa3ada68920df3808e3c1e83c60540140eac5849df24f87e85adba34301d8058c8220e60fac57adadd636f357814e01f9626ab56ab55a6b2d7566eb07183d295e068c9e248597674b8d7ef4a4cde8452b521d258df6337f24152313f27db94d76cffd26aa7b66a9ff138944af853e4635f411132333e3458fe732532ea290ec20602105c99870a64694d6eadeb675b4f3686262b45ab55a3d09a0fdce3dd076959953a398a8eee91ddc7672458759ea9e7602c44b2dba3161a7fa0b70147dec19354ddb346dd3b45aab1ddddd2da9d6aa6d5a1db9a3e155d1e3680ed41ee6cb217a8d0bfb7633de4c38123d8e9609394523a4f131e18ecccf7c9646582466fb1e32802ea06a9a9030195301fd32e10bcc775d0a1e7fdf736837191a3396c60c0d1a4fa241e367421ad20c8d297daacf7196e32cf71d450a5eb77e0772efd1fb7d396a4fe9911c7b68e83b1462349890e4332e3f21156a1c5af334ae52e65aab68b28ecbfc7cd0a2301b10f39f8a79d2e6ce98276ddc9edfc3eef08ccbef2196e14cc5f4b5d65a6ba7b07a381513f26ca9989890555ee299a646018f2af0e1907598a69669618924b194cc1f497532e1e8252f35cd8c38f2d3f0a390c6c7cc8f7e46c4a1611661e854ccc78834c0fcc9f1365b666b7f7e40700febb4ea36cb6ad03e3168222eab47ab55abd55afbdf97c38aaab63d830c64269a595614fe4f14c5b9f1ccd24c59b19aa579c94dc7a21ae672806b4311dff47b6096fac1200388f7788ff7dc9e5ab5da3c3af6fb5b499f9cff37201cd277369e77352c6703f64906eaddec6c78f3d3718475b7ed39fc5e0b45b09903def0cb415f268c4902b81989098bc488beaff4497b2a3ed647ccccc7fc91d428a491118bc8fce88fa4445f3813f2ccd3103926d2d8e7d9cb84343e68bcccd310d947a4b13f233250909768ac0843a7645e46e4f20b906cd89cc1bc00cb9e50ef00043273ac112ec936bc184d08b32e7f57c3491683ccf27ac39e682878f491e207241b0604198442df01c9be02e4de79f02b404e24493018ccdad79e6c2b568b791cad855d0548c788b34b40464791bac43f8e3837a648f379e90a0c61bdd2c9200e08f4c4419b72085040021b6b868119abfa1360a496719c357a279a533483f9dd1776aa8a18f357a9ed18eb585102e00cb5d23109b08a814e41b791cc1b0e2307ea31d0ccd9c265804f801107023df689027394406facc7f94ad6067b61a06db6cd806c300e010a48a0c77e90964d011c2fd977b14a977d1adb72190306e6d8e29b7e1cc7004f0c78ec1ee2135d0c008f3c401c5b619fea5edd196c29dc0b68e6f497c3bf732c4057ed3090af66a97f56b9fdbea551dff7096643dc995fe98bda60b3d44fd202fe38966d0a58c5ca0c13b5cd66538c399b4e98b31c6edbef18ec48eeeb96300857b9af4fced90cf583d0b0fdf6dd93f681f4b8bd7d72ceb69fc1d2e07d6f1b08fa6a929e57aba87e95069183b6703ac1b5d200a4c70eb2c18004e1be1c95bb93ca4f12ee76271515eb92be0265be83055872777e3ada4a8fb3474dec2ab1aece1c945be9d21413e53ccc2a3838a55218a280c2cb0be731238030d2f4218033290ce47c49069a7cc3e236db66db6cc6ac6d034112e97f1c7998c55e3d16e38e6d2c2c6ca53901cc62c5d023ebb01c356795cd0aeb0a0b8ba8ba57771190974aa84d9b93f4a0a36298f307dfb8bb804517b03af5ea5ebd567772ceee6c06a19c6d403f3e9f3e7d7a0c4096bbbd85d2d6e2139ba617af86cd9aa627b408e006f352e3b0c267b1582c1af6a5de65f418d4e3161e9eda3cb5bfb7749f9c631debd8b6bd281cab74325e4d513aead6cce9d6cce147f9922ef5a39c493f993acec3bcf1a165703b6c56f3804e9d0820f360897901560192db6c9bcd1cb602f4f721807c99dc253d6e33efb93a5c0820b9b1602b5ba54fadf9e3588074636d2e2b3dd64a2bfd1e47d38e7d1d8bb1ae6c20e947caba9b38c3a922c929b9fd130685e54c6a15b955d7397660672986b00e9331c7e020efd16373dd3b17de775a907b88db7a9ce3b8ad0b1e75776b415a10a80569646841cc46665ee68d907ef4e4d6d3a327bd11999f7923a327fdcccbbc0fd28f7ee665fec78c282346f121ca88518254182061834f1ba3fe0a5347db326ffa51324f8233e4a348a4b0392c67e0ffbe3e39defa7d90f17212c0efbfc7d15f38ef935a50c76e995fb0b11758e79b5f5c9eb14f51579952bd7479d1f62abbfa6fe5cc1175e7a4c07130c13ce9304fdc3b104f3a0b6eff247da78b550f8c060addc8aba55b494519f8865379894bb2c59648b2c1b629e64d3f135b1554609a195ad096056be19a702eee555de4585564209ef548b2ae056966c058a78a7d65039aa62ca6690363de6c5a8811841e3f5e601d2a6a5b7afc6054073aa06dc9326d66152f04a107739621266aebf19e257a90d8fcc9ed772413c5a950a5bbc079285d872dcbe4c0205d326e3ff7f6ba5bcc5132e0f6ea719ba291314bfd1b129e1e04607b6d2f9c7164c1ab95a1037d4506ef00a35a8a2d5b6efa8abe32b99081b52dacf3828f1e7b6b4d930bccd89e4c203619dca65bcf3435f53a06b550f4332be9bb1690e4589b3b8af424b7f5f44948ddb62da6a999346afbe95293466d5abad45fc5a895a854add347490e99a211010000200053140000200c0806044242b160aa48d20714000c79a25274601d09b424c7614a19630c32c600010001110101b46d009401a9289029aa0195708f1d7f7b927cbeee8e4ae9eb2d6ca9efa9a83add693a86a9bde55f678bdd31941a89a927c38a6210e8af6e425497613ee59e92db84426b1242680030877a559ed27464824cf454b88e95d2411a4d05eb4010249f904a9a9258d48cbb0179366a6d5670163fbacc17ff732ce3f08ec9a68f01c177b3362d6d88922ad83f017bfad9e4a0d0bbc62a6324be0b4062f98f818aa022261532dc57948a45d90eac9333061de7017a764dd574634a1066f19c7fb974e7c02df3036e3c18080b1c39d483557c3c14ab3419965d55a21ce85d65f9f74375587ef3a337e2cf6ccf1bbda5953ac941c48962f24691fe1bbaf8a2cfef65ea7e1cf492ee01d2b6d85cf1ca7884ff775736b77b41f1450cc6a010d4c73cdedecb50b5bbe9cfdd866e3d12f240b3adba77e6e64cacc9b21235ba47bceadd260be05f45016dbc6db9bad54494e0bf42fc2dffb4e65fc143d2944135a4f431964b7ec6304b9348cb04b714a4991d677c70759d6bba11c7fccd4252d63bd6f8ae5c4f9c82e463ba5855905e508b777b467c976ada9f462f44a6f955c52b149067c317d0bdf0218b447661756ebb409bffb565b05a5bb5ab603af118a0da5e144f2e699319cdc65615334c887a69fb852f5f083bced94dd68fd4e8adcc5288135afe5a4b08e05f0269d8ba91fe0c7f75fea251c9f43c5ff42a59c0b68655b1d84a6505b35f42989379b1819c98c5a7109925a1b2f1e4b34c79734ca22aaae30f67d2b6dccde1f6f94e43060dde26212cb8c3fdcd89199dae209a55cfca2f2b8b88846bb0be56f4f84e7aaef8dd37689f63e36e7cfaadf295ac2f578b3ebe6fda7d6e6a15c2be7168523237eb8d150c4acd73647ee05788c32d114147a2f62acb8f5e3c22f2d49a80c1493cbd9aa13ac827f9668d2d44e1650d05aa6bd4edece8a163426960ca2a36acd5219e9b3518132d7f3e1266d3078b9860bb290d946d9929c60524b089bf244f93fd01167129263c4977ad85beb1664be171d8bdf989c710784cda856e988340ba9e45411988cfd3cdbc3ff48b97c92226782b90d26abafcd600ab12f429fcb812f84da1c5582f05a7a008b1a64d8f898bd6586365d0c47e057a9090df435dd771ab6bac2cbb855101b480ebdb61d8184bd48f5fe4b493493ec037648a53bc572289e1b21996aa88fc94c0689407a272acee85655c050d616c3033ab64652853590c31c09ec1f25206cfee9c26b36fe81b7a08db50b0d662a516e0842b380cb44d52783883a51f3d84903f858d3708814e85f70d5b43dd822d40bb155ab26e36a28a24908a34520c30ca9d5d59d6dd4d7a132bf9c435d336b8f75b145364854c2b5003e26392c65ad662df20cd402e8f213d8e104fe037c5914a46602298256418d62317dd48713267597c5c2a9e95d98e084a946f22a48d294dc73cee56902c865e134fb1d6f5f481d2105987c29088278813600404de3b7e902912e7a56bcedf4e33b97dc87b6c3931150109e26a9a117712d8e0fcb44bfc2117e90c49e24815f04ce8bfd8b11d1e7b9c7a6736f6b2139ceae4fc05cf82fa37c6a74a668e2b44378552661d0747e3fef689e5d58890d6c8b08a35465ff44284bc85e453e31efeb414fcd255c877c56a6accf368c82134c9ecaadaed5323b80699e185819146401d51b23606bc563b2871addcb5986030900285785a48810b03a0600bd74c1aa0e5f461e0fb15d87c2933b88de7c54d666e80c7cd2eeb342f36f3f74f0b17e30daf6fb27b2fc95e1542fe704534204e731dd553e7acbc545ab263ee02446553612185a41ce5d2bccb35d36976075fccddd306be846a8204184a9a9ab1caff3c4ae7feaa560c280b5e0abad8e72c85258f12cbe9fb2d6a4cae54cdb2682c4a170bfe475106f8c86bccf8098b1ac2f184e23cc817c55c11336e99a69f6c5f7b26d299d61033c10e2cf104fe27681a1f6076021b1a4eac9b38063622f25fffc3215bfb8a7a6629908dca65b000c40d5fdebc8c307038fc7ea82d309e49e288b5288396610bceaa325205255fb0b547938f21dab95e7209ebcff632835b3c8e9ad79c2e78b69c72587416794212bbc17347558d3cc383dcac5aa45072fbbab7013283d46fecc7818e224188e81dcf15b6fc94ba271904231d543098215746f650a244478005f7eb7e90af820e69e215122d4ee7a7fa6faba9ec94848be9b32b56bfd4e7fba9b3fee47752b6edcfafdd685186262bf9dd4de9e04c4acbdbb4e4009161bae165325b0e9343bce191fec2937a6d34878837aec815cbb2b56cee444d6fae3e204036f2882bd0e66ebba8ae209c48d82e3d123423401218c6a234f69228d6fa1d2205373aad8cbe579cbb13d17ab6fbe4e2ad2fe3ed695cd717be922d166f11215e83258a1d55d061130ef94f37baac27541380091a4c582f273b452219690407068266005b962a45af53247595b1c736f5ed291259c04e347335f6ac932c24925dcba38b79669859c872b834466452a84c18be23c137bdaaf2e5ad9001dc188bc3280c49fd46069d00261222a1e0e0df95caa9af1cfae591ccd496b5c044b299cd20bbcf50218d009e180dd2a0eeaef604d741f9a957d71513c9398b8dc1c61896fe590bfe70800d498a40de685254abaaf7582a14e5c191da8632e091ff06976b03fbdc707d21ddbae978f0c007a05ec179cb52c0ddfeebed8ce9321642f2c5caafb350ca22f52adf4fb4c1464ba92acfa85a1410ea2273cbd8e77c53fa1eb30b84a7043632ad68aa59cd4a34ded78445e2b8d38644571b349f5764927e88d38b13532aaafefc85b77d0bc9709724522639b3ed35cb64ef22de555afee6e57a42dc4e49ecca228ff2de9d3c213a370c419fe89e2c536bf5b876ccd3af70d9a9c9305411b082a2e579c08e31b79a420e57f85cc26262772767ae432bc27a612776d5171b8c5685681896c0080c7fddd7daf8567c92783dd7507400168a173d4ece41ead0cb9a1e8040a9e4fb552c51da142a179fae6d6b82536bc5c25699bc674bbf6651db720feaf662709bb7960f115c9ad6c5b9b37bb849005a76289cba8ca372f78d5bf17d53eafe1803122db86766bd35ecd8846d873dc58dc8705aa7da081d09d5a5d53962f5dfd414e408a7752094415c0e88490908dcacfa914c00e145f09c6aa6b44834a1c8adafb90e28d5acd874777e38f464e34689d5699dcde85138128498704dc79d981675780479b800d06330553ab2964eef7574951475b681ba1435ea175d8ae9f025e6e90339dd38cb143b9a3997228444fc3b59937888214b801dd2720a981ea81437ee2550d78d9f2eb7c221a3f251d7aa29eb1e72d4443698a617eddec97cbfd64ed0eabf4f31c18c916c6f5dfac1b0f23d550bc8ec672e6df7f76be4c886de70b9012db1ad4a890fc2fd543715476a6055be749a1fd52f2d2b3d3287d47cbb1b13df7733d4e6b5ec63916b0895f29791508c2b50489e3cc084d7da5a62fb7df3a8c3924ce0bea6515244b8d6edb67be8c6830ccadd111af74c40f03eb4bf0283b220921fb1350e711f08d0ab17d6b30d370ec34980db326b2e078bdf3e1585e874cae77b4797d36495bb809183026738a95b385500118bdb3fb45cc3069cffe1254c9db2894db38c760289d636ea8a88aec4379aa1fa2eec53f04084b2a2a7d85ca41d2d0a1f92a82782526e664357d6074e783d211f453688a683ab5c6225287676201e5c60fef982ae4fa26648a8c0cf6e98817c5238d5da79e727b3b6203ff81eac4cf108996ad2e8507c0bec93373e2723bfde2373fe8588e61aa70c1a789973e923ff5422e9bd1618cdbddd6b64a71ab969933931cabce0848f3b680b570ec2d2bd5f6805d1ab67e39b1447c0a06487c56e48041f4b5f4d6d979f479831a3f7c1f8e61835fd928603599cc9c0b06055af88bbc8844e1e6c8f72d1e7838a385ece92970f64d5d8b3d0c644a8eb28879560e19c83102113ca5acd283f6fa816d9478708f5a74e440040de8fe26436c0f3fb75bc97c36a7f39114414ceb78bd952a994baaba231e11e1b898201f612d629c0514ab5a0b82b1e3d7e6604ccad98797749946684c32245e3d6bd7afa49400a92e0ac2b97ce1f2c186714aa1a3a61b320c9332cc04eb92f76a259deabd42d628b5a6eb1ce1de51fbf9cd5e88aadb4ab076f1e38ccc894fd8a79f537e683e8260eaea963437069dd8bee9314dc4bfd6e008ec9af35283a287e43a1d25a547715b35b5fe287de065809fc425d2316e2b917fdbc5135fc9cac5354343d2c3324190dac6a12dbf42a126e8b1da02d63b87d4f53de9467c8b82da12a0b12c6fac9cedae63f7037a2a76c3e81679952966717a0354f119aac5ad2a88adab502e068131d3dd534cd0e03fab92e2cb3065cbe194d5a4ef32109969e43a69d99376741970a7c121ce80fe009c0129878e29549177a0bf2686dc0e9abf2cf3b33e8fa731a6df35d879ece44745fbefff868c444030a9a9544e1ab84a365284e0dba1e89e983983fd28d5deb2cf3b0eed278956094448acbcb5de5ad8440420cfc33eca0bc971057abc188bb06e432a00fca857138a21f3cee03bf9404ba7834c03ce54efaef1ce91d7d7803eae38ac30093a1db4cdb496adcb05a592ffae479ba162c9b600dbe744681b0ddb8991377842a49335f08dba54f5f68f29e60217e4a1c02ee6709560ff54b8406585545aa7274d029639edf47ebd4c7a503a9ddc8949f849554edb0816b868dafacab0f07ea4c6ed6d78c0dc516e9140f5dfb6e719ecef21f880db73e08093bfbaee0dc6341da87e5834c13b48238db730929c43ec10502ad095c282ab7692a7ebbbaf7e9c7f378e371c5c6174c858d7786c8012a9c61c33b3eb860c759ec9bc211115f77cbc8eea44e31f9f303221302785530c16a3ae0b9dea4fc5759b561d00db3183f29afc2d1869e99d87995d34651502b25a62203d7efeba9a4880ef7211e5d198dc6630798968070292d2fc435310c27fe2c7629f736ab93ac334e82b22907c9569703de4a014650e654375c46a20da32ee25df616a7da4b7a3c0f60b3fe98ab79c4e3ad77226b86901218448b76254dd6a1b7e543c12a0b862b8681eb8ea0e68f8caae5d200f021e62757de02484dcb3e03ef973cf8b9d8fdf47dca6b121dc077723071cea2655ca5478f94e6891c77e3f10554e559a234ee1148c6e2f6349884d6c54d34f6025ec45523b26b1816b1cfaaf67a7902babaa4aa73e3322df5da04e5adbcde21c065b6f8ae0bd6f0f9a2a636859477821ab6cae744b6245320451617a635d7ce634508d2e44a6a778dd98ab61e2bdebf762f827d6daf4961f2b8083a9a863897e1d5bb662489db8d645f4391ec4ccaf1619744c3c4c89098eb0f6a50ec0d2c6a44ff671da3104b40b70eb3cd5dd44b7752ed84ad17d0d4980851c449e4be94f55f343a0e772e9b09584c2f12a2fd696240becbf642778fd886630bcd0f325647f5dc288041220e1c68e5d4df73e521621df0e9cb896ea3d531733a1eb43c61a61f3fbea00d738820a4e426b4569c9cbe4a6ebe914a176cf70afe50b0459a49c9400d230e5848460e57d4c379e2d42ebfd567dfe3695c2fa3f4dfed750316649e850c6542911e9379f653b60f51d66d630689bc4a68687c7b7eaecb5e141d7efb2c0f05373c85a257686241717751afd494760e7b8a34a935879a34f817079c391e74c0fc6b66b999d075b531ec249122590488d56d7f876f33b549b54e0a6f6c327508974643e02b7901b4f1e36f10cd46d428b95c6d12950e222bed08df3fbf86d20fcba1b504844ee759b0e3ca463c4f99b532d6a31a5915fc2e54a4208c3a4d72d49bdc1facf0b6bbf08e03ce4d07f6e5538f2b682a284ec162dbfc8b55327ec40331635b40f9a0cf9cca068e4105dfbe286143f7fb33f48cd3fd4483eeb6fb322e89ac2de593c57cde1be6745c1eaf4e1396d15169c4ae3ecc887e240db9ae0e4e35b5e215a9974cd543cbb046a3a3680346403275d7d5f2d2f0841d13af034f3f54dd981fb6f194e72dc0cb1df5461b472a788ddac8095a2d3667ca4bb84a43c91d4d2443742ee4cea4dbddc2a879b27385ee58403298d7d041e4ee904ebdcb9b9caf411fcfa78241623d717327588c3d1a67782d80ef5a75e559a824d621bbc4c84a8e6ace9197e95294295f4f66d01f7b1e32cc5b38be121de168aab078066db07734ca271bd3579dea39961ed5f1d0ee25ffe85242a66b450a21e4a544b8786cd5725f5acb4d8b5ed4c6232f0cdf75332abada46eb2cadec84cc543c54d31579d79ee8888fa212bd9f53e91eff9ca1c7390afb101129f4046e0480a7d1ae64c682b8b14c41318b2ac8db6168dd5c583ef10419da6677c15b880eb6d5cf91e93c4f62f6323e6e1b2e8c6ec4f001990a34191d986c366f4a9f6196f7c15173b187b3c72c9d799aa66ecc20efb0b4d76074d267dda478e140eb191115bef03faf5b39ce5a3ffc73ebc77683b6df3ab8f901234c557db2ad2595aba62579fc203650b04bdc8d277830156ea02370b2645df878df4bae00a1bb65137805f7fc237ad08fd19a4fdbdfdbebe0fa69b81dfab3993b5a69765b405f3e23ff0e39d1a0bb48279f27d37221b7fedfee9f1fcb326fbb44c50ce84ac61c435120cb41fc8402b00872d6fd27b0650e0a92e074c014869c6580bf5e4d4cf4755ad292322ced4d7cbfcb09285a76048d066947a23d4337fcb1cc4de14d953bb1bba1696c043b9c536a8950eafb853984f5036c18a0294112c2163e83c769e80748366cce9c17ef3a9114a2cff35268a33639e24f8ac35a2ec47bf0b106928784c2aec371ff94191d7ee808010bd87b390ee897689758a2d3ff3ccfcb849e12549f3859c92811a8ea2196f8ade731e74599dd7aba9284a4714e870c0aaeea8da4d1bb5fc15dfb430fceb40f5d61faf548377221120b1eb5af8a60c5ec84701e118a1804c355571cc4d3a314c38862b4217a802082b14fe5b51d9215b40392edf27f02f334110926bf317e759dc62f1aea88f9cb9508280aac9e1c9db8f376dc3df476214d724323b55418525125f441f692ba92f80b5fcb76aacb81610204f292fd9647f3bc918bb72685b5f9b29e9563da56f53be0b0f6f1b9948d120bb38a6fe79eef30887c9af47ffaeae811aa5a25933377ea90dd97d0aae98283cfbe1c16efb5f3171f08b7496481b538a079e3ed6bd0df5a72467288764d38dd7dbdb3cb19c8a255c41e8074eed084d7cf5c5a541873f5afb5cc1aabd0756420eabeb2804f8c6ccf0ae64a5f72dde4e73c6338cc2cf9859e369599971739b76996fdae4494b2489d7e4734808ddaf007c1a9087f0988c1b1fde12647a5c671637e5dbb9683bdad5edec0b7fb37a9b00fa2ba6140542d09f60d8cd5e812ceac5e3e141442fb061541170e8742112f3e6bebc6f48784005050cbeaa683bd961bbc849b2b405d9aeccc1fd281b39d317527065609da7add61d466339dd31f520c752c8743a6c2cd574d20fd48260a4d0d7c3877a41adf25dc096ceb31416cc5d9fb4b546d26520fda27ee49bc158e308012562b6106b56966844efe5f9f8f40d56bcf1f1094e2f8788bc7cd77ecb3e109d63c971ee9f817d8e3844b4f59865e7a420f5d2ca924663a49e35e6809fce938e6e2bbe5096cf654c3096b4c4fb9a087eeb865cecd5b7baa0a349659e8d3e7405391ac9965f2e425930504b0b75f54605d038582e03d8e888c667c06b4dd2f5b0320d535b7f2555bb94ec36acaece52c090d557a6dad1da4513ca1961da8f01b7358076e99b430b99639f203203ead61d7b8feec3b9ce54455118f13c19830d66ca8e78d6b272248af7fed1131c98ed9bc94142e488891c480d9bb40e33cc96e9db2b7a25e3689690ed3d19d8a7049305c46172fc44173f6bc94eac4e8c1e4563fb38161107348e2a2a42602902b5450b50ea8f5b44fedc2360c4c71ba1c356445d076d7c77d03c52fa1575c31614e3e762ba57c351a2e758f133429f2ffac0ab4680a7a66eff4dd74430d76b63c14387b99219e50a5e95c9202344fd0294664a48ba09ed4357d5378781af9b84fc282b07110d37e16dc5823325a169b12be827318e76a01b1bd1f281e6cbee7976c5fea660c685f0eb58a580f097170cc9d2a63497ad74888f58dfe9c21353b98b317657df36e213a5009f43ea992c2736d7e1e9be33ef4a7d51d434af7e7bef7046bf64099ed536c6d8eb6587e4d83c19d67acb686e3ecd0fe798729a5373923c41e71ba553887a1c6a1185f60aeb29d11db8bd01f30f37ca40dc0754315596edfd5a61c2c7688c585d939372073d204a9123bfab6c5c0790d73b2164a90ebcd69ea20631d34cad019e42918536d9fbf32c46d11516f4dec521399616688c8a67cda280f29198428166481d08cfb227aa69d643c187020adae1e4693421703ec0f8421a94952a337f7d7e6076416e41de25df29dff2a518475704d9ec4b7d38c17f4f9d6203de87352b9a55f83a998f640d3a1b25217f5870f07305de27b43fd91070491793ef9870c94064c36e22e1a6fd9953d35a11dac6542083ca3c6d3a0eee3ec0e169b05e8c3c43c97b9242126490731326e81c6e2fa685e9a90b2841805285c19d683a0d39ea918d6e686aef6aaf1c3204743f5f3c2f9050c48d8be1d897783107db2076e39e327b75e2740787f00d1bc035dd18170251bdada8b1ddcc24130cb70cb3b22d8321cf44edcb9919241d969c8d7219abc5de0e4a4e37b698bd1d5037c0e5cfd146083c06d646d33a47781c82d66686d4b633caeb37d759ba340f5ef60c964e6d9e43815535403ab225e23915743e8c064264cce64949fdb22d0120af61e7fda27453282c11ce06eb531d5880eb9cd118157f9b62179c4d2800d005e5d1bb21521101568cd3670f75f2f833c166600e552e1cac29fb2876981b89fc99e5b27c9abac0368c20bdc9e818105d0e2d284cfeebbd49158ed1b30d214614a10ef290cb76edd97dae64711a02017550988079ae3377ee0c59b4afa0b4b72919fa176d82b4194557b8173c5f36e8760bec712babf45cc52ecabb94d717b1ce0f41727528f3e86cd3d6c381420ffcf088c12742cd9d5fde182e1e0e0c668ace0cfd4ba42ab29efe73857d69fc99ec4ff3d479cb76d82a8e8c3a4ac093a0cdba834fbf5528a8fb52d52678af014267e4f98feb38f3a87126c2bf90fe6e71a313084b7b2761b3223040b8b98646082f76d696cf758a683029573d546aa52807b83dd3b57116d992067c37cebb2b37bbb080d7d634cc741c9fd05c78fa2a89b2945fa2436ade1cc494edd2dc03a752fd01db153870722be02cca3905b8db7f4e512a16950940d73e28cd0150242bdc2b75d61477d2722c60ab7c66053cb5605bc3ad9eb35757cbf00a6970048662a68716cfcc6a58bd07bcb74f192a72201006105b68d637b420f78d93a042e61b44f876680b0dd95622274b96e15e7a816ae8dc6c1236c87d7aa97700e62788497280a3c67417c975697b088a2193cf0d68c379f2f91ec558f05454bb969dc3c310c13cd82276a2f39c07e92a51ac37c0b34683fc4540fa9641017a36184c78f363aa7e025c3fdeca6f86c6884a6eb91324589c4c3e82c1d5099bdf0db171fc8ac9b7aca53dbaaa728ff373cb3f1271c60649d18947478a3faf171459e6d9e29ae30efd1881ba11ad4b40e1382e6f6e40f61295a234108405ab7a7f86110ab2034acbe5aaaa438dbae106024fce4f7f7786db9ed7f2b3c84af715450ba54b00af6f142d9e1cb10635ca29045721ac32e1086de566cb4508c415963c68a63fd02dcadc0052edbcb65fe1a0365cd7d20a625275d774f52fb3e41537415596972ed4ee028dda7c0b175ff4dca5a1409d64f0c4574c2b0149c1a5db78c3a525d8cd40e96d93b724d20850ba3d3bd4cd6bed1e7e0cc488e998ef95bc198b6952747849d27e5dbc206f6c010aa46c96692c53a012e295c3938899cdf8c8af255fe97f2fc023f386d48502a8671736be7c57cd3eaf1af960f15279a5018e0f08f5f202658625ee1edd4d9abe0bc59ab7e83889240d911775e9ec63acdb22b098c8d45e7536a71fbe09ae770f4d59be80f168942bb49fce5d6836f90ebc2d5b54f99906a83c259fbefaccd67b6375fee1023080b9b549c91ca77c6af4d39ce843051c4a1cd31d10b6bcc1a8f268e6851c9814e7c687436864572986c2fbd3b5b1f116dda4b17d4a1b4a378091ea3b3ac70b3d299369fa57922879a49009b08b651b8fa71e9680e2f560091a165853b9b43d716229038a0372da5769d00d02b0b1479cecb043bb301cc7bded7a187011802547f4309b63067f791d1113395b9b9b99da6fbcbec1bb24fa2478971e05ba967ab5272d427b581e8a413e98a17a06fe87a6a5cfe5aabd7a71401f6be04af3372cae7010757f9bf277de808220650aa45f62ea993a3000d4a3d0d6618187612e920077142d950bbf2510a35a54d5dd9d207868c5f0dda431b72852510bfae94a80ab9dca41203ec23ab44888a7ac11f516e8bea7b0299bb981f163f11ce2f8a046be61778416731f62913f5cf50af76b62c8090b9d6779e4df4ae2a04bff09f800905334b81cde80e8e9a8c4f7dd30b0c87c341c3d7c12803474a830dc447b59be4acf61be1383e0588c182e29cc1c3432c869d0e254159ce84c607f4336c7043a47ae6f0462d9797bbbc293f32bc03d7cd2059547db335cdf6f745daff71e70f20efd91b5cedf7cfc05787c77be77bb2d904f7e97d167bf1d83c975a5bee6fe303d598080a333b7d40db10873d5cc68b9beb34a3b7ccb91ef03ff6979b8e1ebf5834b83d91c594ab7326b8cf2b399fce014d0a83125216901d24d1a5e0c33e2ebe79501fc88b39e3982f765350268ee12580bbb5a559cadd8da0374942bfde13222398426cfcd7b7abc8646325b6028c1e667e39596d7e5a2712a3213fcae6920d07a7593fde33138aa021ef3a9ca9f59f0ee1ff165f5052f004e2eafeacf1d610454fcfbe43c5945a294e0726d9a678b7eecee95ed0f51bbac5ec7f017c30268b95ccb146f2a995b16b8415235319d824924384ed11bd4d75eea3db5a8cc08c22d9327fe28b99bcf13a5dfa370210a1e09666b7db2e1056b3a654c684661cc7bae30986f92c203108260466275cc693c230485cf769c0d2b11ab04dd1dd7f3b590363105bc3f17883d049ed119e736aa1101fad9288803fda692fd8241249d4d80914b300af2a1ecd231c7dbe365cd9aa36aadbdfa94dd937c641d5a367de1917dc6f9a0f43d3b9779af3379d7a196cdc11d9d37cb75ecc8c208a7dbff091fa0293a334d7513d907f747d68e321ae7e4d7b12171cedb109df699867857bb4a71a4dd02c9645159f8269aff7661ce40df43b013145ecd5259d83f5b6099f6a28357e1286c0e758680a30986c8b774afb28d4128e6ee7d7377c5d9f60ad1f3205c30fba2ab27606d40a194e301243db9cfcacae740c432061c5b2262f2860500eed8496e4ef84d94b02559f47f8204c5282ebb7482b413805d94857ceafa087143f95dc05581dd91967465383f06e375ebc30f00979fb27023ae876ec5675ad66a3b05d16b096d7392579f6f846a6491c5a9c4cc4fda4f31bfad20fca0de449cd60a2f03dbb5478bd63627b9c60f6f88edc00d512481a49a5ba39cd9ae08ced7764605a0bebfa29073c517adc8e9a13c047e69572be7863dca8b8964ecaf73320ef0e9fff82bef62020c9d35500f644f43522f583f1c6c1f3960f8116d00250f7262e70688847d2f0294509ba6d20a8558d382279765aecc9bdb516fc7a8bb965eb916eef6350a3d4e75acd3ab237483dcdfeefadba5fae57f12490997e4c5029b60f013c663257fd032b765d4131061fc6dd5e0a65e6822a79e077e965671c3daf3364d70ccd386fa0e1be5d97b313e0e6d41e8b0d988f413566abc72614c4bc2a5a6e0b19ba421e4949982001ce69475c00951b9f47bcb671ec865e07e9f61c5d6a7b06df818293df556f7211e414830abf29629e541138aa642b3cd3f21e519011de041b17bb229f14b2aeba02f2f7a99d2f95b5fca350fd647715ebbd09906c90d8b4f6e22e27cef90870542f29e30b3c82345957bd6a5e7c1583a766b284ea86d38f634143f065890cb02219772272ce8ad748f049f9f65903d497f41b6ce7be5fd86a7ebfb4b7f87e19417a8282388559b6d1b535bdb46d34c5ad4f08ef53cd9c1d33f5f77916bbe92681b5c0f8fc9a12940a05c394170418d8cd79f481faf1411bc8d80010ee332d58760a88f56ccfa3da69c44bd853634b58d4de50a2b315999c737bd4e3a03b5f959498583abfa140e70c4d77b646ec339af6645e8adbf608a92c9a73a08efda6961951bb607662d75d4a4bae1e3657e076d95a6a2cbd984ecde5216d1febf9dafb59c8bb8e0e5bcaa4b65fceb61ccf7958fb16d48c3764744419116811fca9c8059862d1824ab299e59e12021a3c94cc4127d02a2f774a8e54e0a5d92e5f078b5fe2e9fed4d561ca15f3da8e86b260be74e3b577a5948e43fe899e70928d0c61fc833d7c86a5d557e7f7f55a0d1193c6a01e5163ca0ffb7b5eb13d6a935ceeaf5f7724e3e2c37a3dcd38333e35c6c59b926f89310a6ce5e92d3d5f0e168db06efab8705b71357ef23082b1fd643eb0defdb968c32d1c8963599f696884b86985637def91e09e524cfe27ae23d9a34130264079c1187a491f7c405d025ce487fd4a0bbaa8befcb885c7e5d0118eb6a772a290a7cda53d4a9b70006f5f14e56437cddc36b795a5585e4e125bc8fee6b1554a581c53abcfdfe2d0ab2fc841add4c7f022484cf397ce0b59a618985ec55ce8a7481942ba7179d941c61c0fb318690429541bd085f69811f013b99e09de910771e423f6cdb49802b4a94e57c0a005fcea1c50db0ff64b5233e7ba73b8c9552947cef4ae819ff5c05b71417178f2f4cd99ed95c4c67428b0eb41dc7c58aa3772a2befbaeec057a0e9851309e65a73ec4d35e53e4df7d512cfca2b1caecafa787c844a3957fb5985555664e6ddad152f79c51d903f565902517b6c16669c757e5deb80f3a11ad5bc7ff6f20490f73879b4809938d914a175de0b465eba62d4a693b5dd68a365d03ba73ba5d453fa68ea6aad08619f068c7bcae2c333e995c737814e34d98bdf1070162287208b54a50918b33f7610961c1fcdf8f2986091f8e339f85239505cc4af8dfc8fa8aed5bda423032007d2d1a2752f4f085e0f02673f02a5d0b6a6413fd92a00bbae0b499b5ccc019bb2e9d7d279a71b372e8b8126589d67cae21f61d50a368ddaf7c83daf77689eaec74de7787a9aa533458a6505c40ba66458e9e1c94894090db16ed97d82afba63f17b8e75633cd9471e2d646932cff8bca8c773b0b43f8a7ac0458d9f7efd17c3b8a40298e6fc70576d583972defd116c1ed9cc5b27440e17634e6c0d7f281aa523677827b70d2e927433ee2073a00a0cb4e7dcefa83668af4bbdfb8143919f59d88478191776bdc8d32b2577a58800b9edc0b3a4efb39d337cda2c1eeb0b7b8d61c8bebf4365d076a781210a1695cd54d980100b457e9f1e4da3fa2f3d23b145880e7e637d3f80cf0a7fe7e72191a6e3879dbaa06bbda593a961c7876548da1953f81cd66757a52db28c5b338ca208a71b226dae5f337a0987f5bce2c78a10681b61eaad4dc2de3045fc84b60ea4932c36dff9cbd363d5ce1265022a53e6de38ac02f2fc00a53532cec663d09d31b414873542c762e4ecafb617976b785c4a860e829671e6f029576933f2c7ab304118d997611e781e4be4dadba2dbc4f5b8930efaa4840a62838a6a8a0f10575362d94c4578ffc9a91fc5ee1013b45e26504327e088e38596557e7b3481fdc0da616f0b4c124e56c089908d3dfc2402daea27ab0fd56b2195dabb27508c331dc538137c42014dcbc3d4310dcf9b8a331e91d0ddfcb2218ad514e8a2a50953a2e87a06448746ef98addbf5f43c2150dd9514ba83d4e4a737c947e181caac7782525226516d9b99cd7a51cd90cb588a0995b4941e72fb263f118d918b37e4b4f530123c503be875fd4c8549d6fff46f9d6dc1f534165009ca6b2fab080c2287d9b996f2cd0dc9f6c8a07476e2c1a8e4fc9e489abf968ced81f18007cec76e49df515fd01f93f65be6f91901c301906fe4dac66bec0ab149ca85295db7e9e989212aef119471e2c758037d948d576f6ab9ca5f022bc8e5d1b4d11fb37044b9616dc140d9005a05e736965d5a63b331fd12609d787aa8e7d9806fc32b4bd3e565c10e615a28c1c0fe3764502c8130d2020bb7dcac0d41017db4e4bc4fee457f9688e37917c3c7ee6dabc3003d26ed055fec36ac0e99c2c9159bb4d14691afcc8b089058d18382bd3f68a739f8308ecc99bb4f1e14d3af8c3aebf27c9232f1a24c7bc17fd3d615f4cd24d45af951924455b750afa60c063c5ab28f6421ba9906aaa421a90b55990c2de3af16074adcd4ece91f76d01e143531b48f4b9932580e29a5c8b9c4e052b2101035af488dcd4864f431cd8014b72dfebbf908a0d88cfbe5977faa2888c0fbcce4edef11fe86bb9d8cadfefd3c5d0f820c4e2bccf50f3c74cc584b84396e0541bc0f4c82fca1dc17887ff0153bcf7ffda159cd6c6cbb8bdea62f5f09344816f13339f5241ae17589d8b87999c0bd86cd4b4567a933d766cd8bb581511e7d444676a83a21ca747553649a8f079d4459ada7b67abebbd815accc11080b01b3f42b528dff80c923fc0d173e514662b6f4b68d34d8a02217b9339504dacddfc88f4e7cfcfc84afcb3eb075e950300600bfd611a23ebf2a69fd835a6ff9cc5f0158b02733ec9d8d537a936278f71b1edf13e33f80145cc9faf3f3e099e77dac0d85a02f1a932b6da7ae64367d9fb0ae57ed0bedb9b0c0f7b2cbefe29fd30405646c9ad6f6ca354a41f0a10e73366e69a9dc474bce1a53b8540f3c37ae4e043dec51f58c4d9853861b21f165fb04c95d27c98b10d497975c3cb59124781c5fabd90101c8427cc0f983cfb4d37813e38722a57c4fd0d069bc2082baf157d6e4d8a7692bc51865e269082ca7fa1f0a3be1afefa50515776953f854aff5f57b54e107a2925cb9a8960ba33f68e6bb3ce07b51dc9387fd6d84e93ed6eadf84cc4d62e6b1e7efa26767263ab4e41080b89a274c9cbaeb4ab2576a75a9a6832984dad1da705e1082c871aae64d93e044e653e9625a42c7e73cbd838165bb897b1104ded80956e5bf7b18c880064a5b4f793ab91c2f83b9dc3ef1ca4bb94dd84bae46848a114d87cf91510316dda96800e9f4aa5c2b10a613b0cfeb6e769fd8cb165b5bc2d2f51ed8b404754952887e565c8a34ab49743c60d96eda23cca8328d416748e1d7254d3e2098787c9d2b057bbae475857ae7f09d597d9d80dc5281ab77838361264e34d1ba9ea3287074487fde80c5ed535470bcf115c09596c67711832a0199f197f55ac72847e0c92efe6564d314f34700597cbc89afe36cad4343009bcb0dc047d1e4b0b75a4137846cfd72f64aff92b0d076a8a4fc7d4416540afd207a45580fe6f25d35934d07370224cc8a70967d59effae738d31834dd6be8ed28e85f76df0d9898207287bff1f83106b85f00fb327aa7654e83d1f1638be1dfc4e4cfe06d326624a256ef72540fe049d2c16aceb5de0af9c2ada93235db44ec2f199b23a3017c134a62a10d41828f50840a30d0bbff90caa86ff93b6491e395c52b06b1c6df28d227b5429629bc153c56ee4a751aa8012a020282114a1e514ab4059907329a3b4e3185a7a539d200421261891a6449bb46e2cd423322e1a94432f37ffdcd9d13cf26423492106440977c8d410bcf3a50884ca3e373292c89b7a68640894dd371a75ebfcb95df9845a7880788b54a8136207ebecfbca413e9900bdec6f5fb3896118ec4d62542bfb82cdedf3bf4f2db4a1d642e007f0723ccab016ef286386c37f723478c517261ede549a027a09da95eb25465be89956f169e89fe15dd11819cbd79ed70b1ac7d75bd14df8f11f09f0b8dbcd3cf851e15c708526846a3956296d96e95a702d90c1925e75d314cbe84154cab84cb320271923a74aa4076786e346b9983a605a42684e8c7b10029a72ce7259d38c6cfbaceb6521988d6362bcb60fac9ee6589ad57ad632a88e19e8f8d99badb7f7adcfd09791f64434d880e833188c304681a29bf58683da571aad5ddebd4334534733717ea391873d36521528732e32946f4bcd9d924cc3b051d235c7519fe31dab9a70e5ea2912d36a0d127935f8d1dc02d7c8bdda291dd50cea4728b0cb58e73049e31667384f820ec57bcab0bb88227d32786b2d861688d8bfc548804ee6226c50763e0d6cb84bb8828b14f5e78caa596b0b1168177fb0de60949ed52d5e15369046aca713afeeb0f6ec47fa6a7ef9c36f5d09b0194797a65f799aad5188a0b8dac6441659bf10c3eca5adc13b717ebf32fe7f06a508f0004c5c663675eb897192cccc0536f261c22223a41364d80a57b0e868dce3f48217632c965407d04af0c740604882aa2b224849be14a3ed35855a504200ffd1619a459a680d414d3b8243f1c83eb495bb8d625072baee2ae093f2a79ae5d5226ed97e52a9176e21953502b6e8b83d94ec78c5cd0aebb6efcddb551e4ee992368f626187f49956d77d624231fff7c3e80017f4432267050b6822295461540a6259476719a53f1cb636489fb50d1356dc739909405711dcbb60322402d25642ba134e24b10c20800e7025df19717155ccb6fa5daa940bb988e6219c2f2928b1aaee9c2d317e3d5fb767c0c82cbc2b4efee16e17984eb0240723fae9911451305520018e3f4fa7cd999a2a4a5e8905974073f990219e126294bfe8b49de3b461ee1910fb80716dc856b98e37477a5b6b4221c5706d26f2a7d955a5b2611ec8193da577240a5aa3449b3a4b57aa2b77648b10356066ab6393905220bd9332aba5bf692be4bc00d71f050f1730c97e203338495f4c6c3d6952c497e1edb37006067cf94bf21737c40192bf6508ecae7372a9217df7087a296bf811da075cfbc6ec71a5780e458b7bc5d32e62a28f0970872583a920a93787dfd6179a1d72afaeb5d96b935b8bb053cf0e6fa18d4462bd9ae7621eb47161f3f1590bdb530bb4b78581278881a91e61c0e91889131b03bfc2b409703c703c5f57767491ed2e8c9eb6c1e7cceaa96b146628902e26b132e7f496d781c687793ca878aa415d3398b9926e7f527c0faa9bc5179725045fa73602cbb028806097e61bf3adbb7380c8f723c402d9390603aa79554d1572d0be434154074e79d5442dd1c0f3cf0181400b16e169f44c5fcb6950200e2a9eb2d08591af44b06be1e27c083d3e0e425a5db915df9678cc3212893b121ccf8961082f7c0bbf552c9d85741f242293c9681329d29c6d3d6095e1cc8292b2c8dd4ba4ca8c044411360f81f7fe2d975c8ab1e41d67de62c401ab08f6108a0daaa09a9b455a31705ccf43cdc56a583ab7c1f935cf75baafc4b5fcdadac0f813feb6c48df98a33516de9b3344c0287a6ad49d7de1a13b57c0289cb76ea7e6ed39dc19053ba7081d1c750f590c7109b508f2f22fae4ac701b6a766c991201617c9c7aecd5e6ad14debc57997afe4b0df38e8b954cd8c4ccb30b43fc2fd8ca438a081496e7e7675f1d93e4d9193d10b1906a65866a916cde34367fcff0c4f8056a97c3e3fe0a7cefe98a1c22025e41a316a728d2e4c6142989ebb203aaf1899451fa2081e2182d9929f03446a817452129adc8a2f8db70cff744f68f278e4d2b6980c854d9f290f4be00602cc431de2d153cf28cf50823f5465491344eff62f79c822b460f23ff8a7db2953e051ad99fb9c5da6f8af4a5698645415fe7e1d65cfacfd44a4989358a135b8f08ac335c1a87cd41e912575852d95df09bc469e24c976cb287c618b5674238413dd9791010c7dd5940ee7182ddf73f20763d1f5fd8d21a00e61622f9cff3617686b22a9bdcc14b08d5b2fb691a98bdee5588655df67281e9d95cc83920eb1c0c2aa535af8d6f0cd097239490da3d0af7e3ef3ba9e9b71d37b677262d24d3157c6cfe20d0da51978ad5005236e8d27311c0283af985994dfd38aeb1029ab3f66af6c34ffea292c812b8864114853271283cc97a63fc3334e0ceb1bc05b546443163f32499b409133de7f27bef111c83dae0615a2f47a9400506795903a4b031cb473089f22a8d03f530e5901c590e4a2eb1978e2f5e08940edfb13b82bcb39d76b41296499471553abd5bd894f63012559da1bd83dd8954ef801f1655843aaa35a1a17416b6bd8b9e5f789e8c6a55c04baa9f0a167e35e1e08d53418c03a7d4291590fb0b28a0133136328cb1e6d638bedb3488e2f9ae99987727a698b29a0197693302eff8174126c900f6e7ea6139af60c484d76043b70cf06e5588a397c3b930c3c0f1625a97bdaaf0c1e04b05742322386ea08707bf4067d30bb83286f54044a40b32a9ac0c9ef7f6efe9ba214983a7a950b4ec382ba93dcee089f759b113287336c76395b5e07f69e2927bc43975c74c0400294ce50e69d0a63e673d8b4d692aeb9e00e4a4b03b5685e24eabb01bcdb4a40161a267f104120d58e1f55c3b22f229208de8d29e7ed13d47fbd0d68948a485b77556f41d2745e98334cb06f0c7e9d5deaa1f16835fb15013ee66ed8c9784708611b6531505f3598cd505ffb471e6a73a5a8566d53f0c02851922b039213f61ab4b63e6f7bbe55910ce623541dbcd4305edaad5919008507917d2c433b5d8d3d4aa80ab975194388f5522e8c9fd2d043b6d8d046f20a10c51f31c6946d4748e26f9108f78c38b5fb3b11e112229f486f103908871520a88d9c05a58c9ebade2dec5fc911e21ba9ac9f294e65bd9b5497b5609ac28ca66eb1a40e878d63fa8a00fdfb74add68eb29a79d3f4e7cc8c105f1a8476ee507ef5864aee2a5a2d8928aca7ea56a4294c0052655cc8f215170f8f7dd0607b15894421c166c68960b95706dedb30c9252aad94ac002c6ac3ef0d73f3041e1acd42c2c8143e79ef0a5849ff6d067fa798ae103fd39d173b6957627d10984363506d875a3c1b00248668337368f152e0bdc5191f937e22f0fc9349b315e97457859056f69431e80680c05274bacc1d2c19f49013a8442c128faee64b9065875f8f571cc9e0164ba7e3a606324e8a14b8379aff68b569ff4336dae7ae29ceb73d00dd1dbc81953855c58a62b6fef709eb8076241ea616111f400d9f400fe332dd4d20b9b5179d88a82eff0b1a5269e39bc9b850140c21042d13019982ae7d31ad13db299e2e78ef2dbdac634ccbdf1a510e87e71294a0c39895d515ae703b73bf84f06deec5e752032cc054533928e874833d864dfea1c75998a73d48f000d7ac705456c262294beb557d57cde94cb7d3e82f5837343dd05bee6ccf39694cfdb0a782b05dc93bdac3448a446626cf40a04002c26bb118097f298e9aa60820405b9d4ef6fafd5707b68671cd65d12db432af5d45e5fdd4388d96d710124a2001be2c11b4f0a32d979489b782146704e9a7ec95a279d27062452ca7444f6d5ea46df4bc90edad99f7b3af9ea9e4eaeda3b653a1b099653815bfe1d2f593316bfdab0469b93129ac21b9825fa3010c74dc7c36aaf3d5d3deeb31a8ec912b426ac75e424a6098d0439cd674273749c8599d01e8d33452634e0e24c5e71a08062e3240a678cd89806fbb0a479a895f4f16c4a95ae0313b93892a6f703f5bbfd7696b92ac06135a0ee91a821d270ac205737044b48aef1451e6525f68c5e2024756a1633d6d2cac3c66e244be3debd9c1949381524ebf8915d8b3405de8a7d2bc1c573188c267749d71a6f045c67c00cc57acc55148ea7059ab254eb14c08766238c4a588ab09f95caeeefb1fa555aed759b7fb62c5faabf23d8860e68f3d1450ff0a83832d4c5402203345ea761896f490ed24b58c228d4af11a1250bb88542ef0c305ae6325debf07e8d8a074cdbb56a7fdf1b7f655e1f0bbda2a5dbed64ec787767bbd7a192218e202383b3a736040170e83e891ada255d5ba1f9e39214817601bac645cfdb598dd84202c455c90f491a6b10cadd268e6b6183b62bb0f0c81c1b4ed2e2064316fd191f181fde8fda82cd61a1d27e03a052f125ee6177ee5abdab4558c8f4e57e2d4afbff0e7ff686cf4248163ad2e4a47dc6104f99d2e3a97eff62e34b74e6dfc47f7418b097601686e43c52293810174e8c858926d3259adcb75eda3168100af1baaea16be08266665b48ed99aaca244640494b8818f01d767485fd1eda8a4b8eaeb5083f4380989f6c2f9bb6c3f8925f0e845d3b24b97685cb69c8845ffd3e4b1a6eb302d91d07d7a4f503eb00ad69b75e417c565f9b47a3292ec1fcfabd2e288a80f6703eb834631d424f3168456c8ddd535d184cd668787c418225fdfb9c2c1edc069b882d2fd03e4bb5a9b85362ce88f520468b0235b448f638b90ed991a9523d4e6ff00b15554c0e4c505b4a6dbce95e27f42469bdb476e740a5da3189aa567c55c92d05da2f4c1a0adf3b5d977d083c1aeb6df926c95567180a5e25e6d1954158b31adeeaca0e0b7392a5535a964e72c069ee44186f1065b10d65fb74e196df29f867cf75f79a5a067022195e1ca007a846db44af3deec3f0106c9ca05e54479d7c2cbfda54efdc31f85eaf66a5cab7425f5b61c14bb00fc707a645da69ee4674c545a85c82661074183f1cd807ff8a9ac46ad117310aeebf27d511bfba6018333008c91518e6a001d5b54b34fce77c71b67ca13c8f50e931de97a21c31999ac5538f8984e8515e309af9fde1a566d591390a469f5f1d2bf5a4b1099192450d53c18ea8a89d48d2675fc886b83b2afc0b4256788a013bb34a6969ffc7927f25cb2ca7e09b5d8eb78d84756e61da475795f4d8e1d3338cd441be9badc1c9ac5f8c86998adfa3c2283b32024ec65c601bacc5055a0f07ba4b07099ebd5121490e068c85020585e413ae6c31bac8584f7006a90813fa5090995b091b8a5c0a909a645c8c80c37d494ed21a1c1a8ec271b260cdcfab0d90611482c1ae74a4c62b379227ca9f10fb8786205b1a6ea7d941e059bff0cd7ab998a9e7269909df92e85d0652a7eec2f3d6c44d3935fe2c8bcaa1be65c4acfa6f5290ad6f5472260cda8eba1b93c9fc933f87025ee30af54df1dc6184aa4b001719d9161db9af2de8ac6a4b8b9dc2828d8bda133742766a5347920f298ba13a089e749b70322024fe5bf2b0e53d0ba59a328dcee58abc744149196369a802405060453d29f90463855619b2e257562e3a0ea96b11774122a0c22bce42c4c11bb50fcb3c20fdf7f2ea8327ecad0f0f427e466cd7a265455b6b9c2239868c7cf69ff94001ed633850263cffd0499c44fa958ce9959451fb991a3365c34237a02ec1fe7a58b31caab0ee4a722eda265a1f34207561cf3d34982c3b0a6afca838c9cb279d357c2025a5a9c6148084d1f9a50cf4275d0cd1586ef585d1dd852a31a3016a8c955fcac3e2993f0e1cf9fb9743cd45dde50badf9eb96a41f1650faa5f67a3b79f91405b2d55e66df296b8c017e40b6153df61f626bbd6d5ba7e8d6c52cb77dfab46cd6779f52b8c0d2ca1154004be817ec8185d865784c7c81e9dc5def47e9df7a5481d0b8f2ac990442d3a8367176db6c6aa730ad842fdd493194233961863290f3634af42cb51b56a812300db443290e23c6d0285c8a1eb0a9e870ac4391f470ed0c6b5b8a4ec95640b3821a02ef537dcf7ba6a4f6701d5810203521effa5dbdabdf3f7bc03579ef4828a7356259b3875ab691ac23ba6b12f11c1c4dd6ab24b61a0f0406f64d012e521d0904f0d553beed5231eb8fb66c6f1aa5a3f3445eff814e098357c300d98f9f996b50768dc73d81ed6e2f433243298aab37131bcaf3aa89d7a4e3cc60fd3c80192d3ba459d5f663a41f7ab17303f1d5efed2bdfe3c7b3e184fd60a843e71475d664aa657ea8374c90b4c8129ed138ac348745827000e3020aa45e6f39ed9141a9e7cd8c8ea2050bec39602e5a5ff79d5f848318d5cab3758a0b16d81bf8782c1b54408881dad9b74a4c23d6e44ecf6799f2b89a249269c6784f3010147fdf1f1a2900b13c6fcd743390a7f52ef4705e0d31598e03779532c7d9a4f47fde703db69fb3e73e0a852a906184714c39a2c3079ba528609ac01e65e21549bebaaa726cf520c7bdb43f24b0067e2f8a01d68ea839d298930b4cd4451a9cb9f6dabb9c0b62b76a285a06e448215bac4cf409823be1be59c7b6534348f97554a1abefedba010de3488617dce12a3f9b9d470f8dd2e1b9b7db67bd9dad1ff2f86c254aa6bc71f8bb672232d0d9b7a286e4d2166ac5bc7247273632225f6e11d29620b4e342ac706fc08d7db36dc3a58fd0e25c37a96ece6ef2f14f5bde88bcc3e1b13880ddcc90b9d6daa1083c3faf5d70c5c12e667a34e2e2f1ae59f1431f99604a3b23f67c8eaff6bd834c7f4be683d5a0ea9613aeb1a415c993cfd4120da3fe06d8632d20007fbf4f352bb03dc3e33b69c5a568ec40b727fae661633ece8216af0892df8076914491f39fa3f2139dc988898a6d9af3e3c1f959d455672c59a850218531189aa93a79c5e4177402d84c53b9e7e92695f811b18683273291ca13fc6313c6f3105245bf485836313016f2ff43ff96788455af64739ac3a1cfb2228149f664b33078ff82e4758b5b6de6da75f19b21ee5509b9b1e51af1d3b02fc2ec91d4f5a66d3a23e7d7aacba41cf894de57006859c4a0f771824cb1fc336fa5c5e6d38a75d22b455f2cd097814fb6fbde7d2f4e77e20f2993523b0e23b7fabe5b2eaedb51a05327439af89837018f52fbe6861a16665f25c41e72a5f1c2b4ec2c83e4ab29b6be316c3a52b82d4cc2abc33816892ff746711fe8a107e93a59c2fc9fcf2f3f7443aa748070a8a8576f66aae94a3b0ef5a4557eed4ce9ecee40827f577216d4187a551d9b7fedf4a91087db60e836150c994550c8b95eb74afcbe607c744b06496ee64c7514fa7d791d5fe9dd51d78312db1aabe722e92d944d3d249752f8117dd7d592c2a0b3f44fbb7b885b06f5355de47961d4942208871c71956af4e8cdb9327b7012548abca628b2372d2134f82bc2b20df1c52acbeed3caa0769ed3ae8c7c6130654ca29fdfeeaa82ffad3507e40af95376fcb9d438440a9be758b0c0b1b873762a97f1b9a31b1cec31c3c979ea5cdb99a45b0fc602e3e7adfd64f2c05059a50c98b5be04992e3e8e7418e389d17a628066658b2e6e21384ade1025ca9efe121c4072c70b2c0d71023252592ba0390cca29c309b135626a9facfaa669fb4be131e0d7f25ad77717313d035cc4d6506a4a6833a36b6abf12297b3cac89c2ca54d33677621beeb4628f0de67041616271bb9991d7765c51b4525902daa616917e3023651587341ea6bbbbcc0aab631cb8ae89aca443027b2dda67cab1ea47c88772357930f3ae1cbe161f7f92a68478fd30cc93a3e14f7ef88af88aa3478ede48661aba241970b92e847ef9825ea251ef5c7dcb7004fd15385241e2a0a633f9faa1e6ce3206e50f04b9872fa6cb8cb810598a41b791df2908269edf3de9af8e317acb2865e17614bac237a036828722fd5c02e0c51dfb6e998b10ad179ac76329c8fc1144f7c24bc1382ab247c20a79d189a65b8e4afb4caa662dfa0f3a4b8bdd27a0e4f05357921c9dab5830bdc98a38ab5233368152411879229b82d4c676a094092f50e859505c60a015820e7d2100bba79359c8c56cd6133f07dda8eeb465cacfd0031dae43cddc1e2ffc667b3808f2a4f305146a67c2fdb49082b60535e05b9118b1e00da51637a261b192233f029edf37c7f3612b48bc499e9f3eebcc1cf08ce480319e7368087b72be0426581708bd27d657688af2e73194d46c7be2b99bc0111405c165bcc20b91ac059774926ffb910cbb9643490f225139b440797515bdc6b71e3fc595b275498422aba7ba8b7d6168009716c70ca0238c1005bc03aa2265b396b512c6d49fbc406eb9d690a5da3780ab6111e27aeab3bcb126a0ff9734a4ddc0fbc90d41d080014fa914aeb76cd48f166e8222f6cd71cf4e6ef2bec8539731564d83713c6a95705bed4b9fb665e9fe355c757a8a4d22fa7594437c2bdf282bac74772402bf73c25bad705560506288fd4a429888aabf0f1df6bf0030a45d05c19f5593fb569f5b6a7fa5793aa4f60f50c9bb80a3f46530b2400b2b9427f59467eb1ba7d030b21bb488402a4eef12f42ef1cedc808b61b73549120b44349bc0b376ebd340d8b92f665c1f54ac145c763ca4d3368cb17dce1f8a555e4223994bdb5d60dba41455224cc81d4e8300e5c653e6fe988aa51e9f78d0d9d6e31277f5453c07af7880a2dd27ec9ebf2b1d8c02bbbfc00fe1cf5700cebf701505264ef16e1d3a174d2956b33b31cdee30907898e3bebdb7e7a115af3d11c7438d154c5a9a6ee7833a3d7a7c402108474bc23ed1485ab347d76c4a28eacd4c0faa97f0f00812b8a14fbd16b00ffe41d874f4f8d36e57150fdd270eef0f120af5b85c4173a152a45854e2d99d2af377ef40c57412e965df392460673748c553458ce6c496a4fb5ed2b0ff3091cc2997577fcad85fd76a484d2db2dd74c5da79d9dcaab317e03b19326788819c5c22d5086e1e8b4bb297ba45ed9d32ec4c5a4cbc36e59f145e426366f4acf0c0a707c72752e2569333d58881b867bf4d4bba4bf81cf896e6603b09dd892e36bc6e3b6492ebc9909dd6d5126249d61beca044cd904b6d24954796c22e1d56d1fa0ff212e8b601f00c72ff820957a55a0ae37a62538a541d93f71e010d07dfe3165bd0387cf8b7620797bcdadc7845549b108e0888768581291b20f45bfa7e9d2afb543354764fe1dbb13e43920f8b04607827959d46a35943629ab869d9a6c3c08b5c300424c605cdf515f451c0cc5435767413835841017f6a0e90d081c83f4209bccbcd671018a539ce55bf344ae65c8ec946830edec57831a576dba2a3a01a1496d290597a7c7b0538fc8e7030b10b85cf002194bf672916db2b5bb6b312e5a3b168287a87d45aadb4c5aa61e2cb86990ff29a8effe3859d3d45af17ae3a89beb3a365febc558305b195c2e0c20e476acf85264c4f07e98542ab0013057f2e211833ec8eb99ecf04b1fff2d063fa7d6431301876959350f0183ebbed7dbee108aad5dad34c3515b0007c488531b3e293ecd0b1390363598ea7dd8b749ae3eb14271f178353d20884d60a143a722e3a53e2931e2dd16e2e62eadd6ec444ac9bab46b5c786037b6669ff9d28a405cd889b2884a6974e452617f639d18eda0093fe2d4ca790a7fd2b6456b3cee2ca725474f4a58523d13922bf294d007e15a61a705964ff117f79496abc085e48570c8601bd89b5f585336013a50eee5e911f8044abd9f27707db28d093d7a2e8c59dc24041c76f039fa31d9c6705b853e36530f5f4c389aef084b58043f141141104d4d77a6403a562c7cb5c9184c7cb04bec343281822196d10b272dabc89d151e04c07082736bf2cf0343b385b5612b96ea0713d8dfd64332c67c4c17c29e1fd1d25bc0ed4f65e4d48078596da8e07b692a111e589739de10abf0e8250284286adae9afd3dfd4243854e066bf961d3222a1c53c50bd7385a8ab62f6a7571353ddb806682e882887a41edebcec6d3126f0f90395c0540ca61ab30e07a69c4ad253cdaaacab97fdf31b4fcf43c349f3d1c2c9f2874ed7019a352c5fe2a936d6f25551a45006d45c8bd96cff227d5ecafd91fde4d280eeb38be89327314164181a639017fc50be09ce8eca90f787fcf7f46110d3232c9f6047a107994f1a780b4e2c7136564cf440b374b8f9b79d048f521c0ff680192c23036d00f0363246bc689cc44fb49bf6d847b4bb64469fbbabe761dc5b6e8b08c3a848dc01a7854d749161c31423d80e4dfa601d5e34aa939506c794441150496df81c0621a2acd0c9954289db30b439a0105ad3028590617a5127638edc04ecbf620f1937e5bee447de83d8ef55e1614dbea7b0781027ad222ec0e6a23d05378663f247fae114c656829a800d40fc9fa79e8000fb4680de846cad7511b19619094f65ea4c7394ca925656f6ec0af2695d843815ded69c8a260ea95d9239eea076ae8070149e64281461afea2724b68a54b7def78c407bf534045dbfc52088ef428f7308199c245642b034742c0b688186459fd4e0af4943dae79e5f2471c3f38d8f78fecd62c761af0d8f5750042e17250ee3ff89f3e88979595374d36cf253937711c85dd27930d666ec17f179c3d4a43df7e94c9ae16658edc15902ce52db3fe31a742ccbb846c0458be4b994af8935b76991392ba7ef3f3a1bd4cdf57c05880dddc84c8c7f5ec72ee2fd35af4ce23cca1c9f3b1bc76bd72ef4ea7ce0dcf840e76e63e9df0cc90e90f946dde9961a4465ef0f5af50a4634a7bd973b46aad4669327253c1b22b0ba040f8b9066c407e6ce611bb7df79c2809bae885b699620b5530a12d586ffe60cc3f8fc393a81aae08e568cba0518fc967def7655a4dff915d826b582e5d36d6150958243b33b5fae836c35364fc4984e2701e2a7e2518df20ff85227594aec7ba9a8c63f3faa7b6adae221cd43bb329f74f6553a650c8f1d53704807645264c8ec97138a57d2da3b5baaf8fceca022ce3305a1f074e7f59b5bb51aeb2482ffd7c60ca74ae2394566b75bd3ddd9b3e67992959d8a78610d9c69ff139abab8702f493bb1221f0133758dfc1b6933445be008085389587400c1fc708955131516e6bf20a1fc21cf12366c22cd991d592da5e4b87bdebb30930b6884d40d2fad44009ec2ed878354cc2444951b08555556aa321f175774b33d0229a617d0733e5e5ec5a3f7f9d8a393be4f07ef8656f54f23eb0c6ed8a93bc03378d73e1b673c25fef9e4ad2392ca2b3d82872b14bfcead917e3229e667390c0f914772c691f54a8a26ca71bfebeb15b77040aceea74587e564f415400fbed994bd425e553a341702377ce6acb179d83390242b4e857af317a6296bcdf37345eed8d0211f29959a0244e98c08e1f4d321a30a1b3fe2ca5f23274b1a9e0dbe8148bcbc70e77f80894bb2b5d85eb1e2d4dcca3c7a99234ddcb316f1450ef5aa6d8d813d8deb6fdbee8ca1cd8ef560938e82500ce832b85950fb8ce18bfe7fbf637d5e558d1e25220322a0366a4f7f3c641831097251c1e06fbf7cbb4afe24fdbe44b74d13362c94a2a516aeca7a7a09c420a90cb9ebed02d03da3e05421e046d8f80909a65b17450d0d9ab0064b8b6d933fcdfc8ea385f515e0c84b7891f5e8cbe07802f3540737b93cec8cf262c8c95660dfdf88a7665ac64f099f53e913ed303f8874195dec7ed951343a5793241cad228253619cbd5f77383a937dab0b0739d1b5e47b44427ba3dbd8cfc9adc970e258d6cfa0c18fac4ee53c4af0f70d3fd478e9ddf5c2933adb9731228b07556b6a6ce1f9893436574d090463c4eedd811a5bb286e0e704b054a281113d2cc2293b74cc6ebcc58ab8c69e5ba7e027129c01910b99b190f6430d35268775039f2b16f7e455108e1a9d4b926d160e98a5c06d0d3168ba2dd38dca4ca2b5f27530f495387f91b0badf75dae385865525c30b9a48506242ca927c4da648160fe8184c625a1b7417898fd695a9bc5ba74df15f913b3283af11926cc2de153c93030ff63c2f58f810c0fd74ef629415e9c40a46cb86f39b36fcc695c223098c0c36324c483419c9d3d40082a1ef34eec6790dc6c4daa91c8ab0be0285af9955b3561638ea78b0f0386a683278b211368569693f87107e055c767c8d86a81b5e6bd9759759e4fe69bcc807bed7c6c09b16bd030a2923d3b3d1f6cb2b9b9db59d254a4249e4fd05d2392c6484834ee1457f8fea1223ff558c8684a12d020d385f8371edafdfd68403a00fc0f35e576c09dc4c7acf98eb66f6ee0c60fe635eb39f9061d61ef7237eb0f4afe3b481cfc301fb649c2c822f840eb6296d7c30f5d3e7d300c1b4d62afd2d190703d4453ab03c801eece12fe06a473677124a10ce0643b77e7daba8ed24d9075c60285bf5245f5d6c1afe20d45567dd0859f58b520985ab99f072a6b07c945e8e283ff31c835cd025c3248efa35a9dc0f42febfced9a145c86112d4bbc109791f960563e1529922bd2a5b22b4d6a8d1b38721ea636f8638d4696cd79a05b1fe9567f4a814b0b56f399f2216a184b5e4ad98a3cd3132f1f73d47fb94b4b33d0c1423e2ff9a67cd4c6ac96228216f736a8c2449b0c7f4d5cbad87c5801a1eceaffc1eeebc3216d12d7cf73b7605d60ba1cc54c1c29e139a46ab958f8af05b40ef019518e92bc007f53731479348100b4a42f5beaa2a07cf11d0d31fdd6b420273c5506ae9faf0b0d0f1319f63aad9194a175db516078ab8563cab5ba9d284a6ff62d3bdd0b7f83ea6768c04f577519a9480778d270fb9d327d1be684a4cafc8240857acdb809f8974b1ab0fe80383bf1135fb1e1bf219c9266699f1a89bc6145cb6de0e79e4e8c117988fbcad12a6ce7bae69f05ad42c71a3fa8dbd1a76003d07396f4da368236ba747f41ed6f49c73f42c99dc660e7fcdbb2d37602950e3b7c8e3ca21ead6ca1bec4ec4305960c11aef7f66b6b31d8340c2056b370e0e70b7981c6b0c51557c522e0f3fb0bef30363fa769e781004d21716fea19852a617345cf8737f7af7dc5f45168e51469a394d5ae4f6002d84a149a109999759c2535a015445c47476cdc74626dc0d3bd740717a0544d247f409e80eb689ea7f5d6a30453da9b16e489f353f9062415d486f07f7761f07230157d4cf82a654859908cbf56081e72332d74cdcbd6437c7c0651538663ea30a2274cb08e22081308e5087d41d79fe91ac0e2a0aa0dac8cb5251982610a204e202497d4f481a54a5e6f862527511fbabba9971cc2076551d261da02790f8736f1cf8abd0152600790476300011364d5a155f7587ebe57ac74a0443f565bde257210046384be0cb600577350ebc952570b76380bb56f462e8a53fddebf8e9072cd24abf54411dca11c6e1ee8c321fd27c2d9c70d564c55be6b01019ef8cf5c7799246098082d02ed1cb4c6d2488cad85be001a3e478017143deb077906df5fee2f1732f07d6818691d9e86921b8ad71d37061508b5ac096e15059ee3ad22104e38c0e33e4fd1797e4bf40da9448f04b2ae7e338c939d49cc885430de3967e81ad4335d922431e9024559cd805f31883ddb668792c95ee065f284b228eda991881b30a02ab27e2e5fea0ad05b32fa2b9ba25e922bc876e16607ecd2ee32b040287075ecc560cf1d1f7529676bb516832b3a19108d1f4880bcb0a28452a28bffebde03d2f1b55703b00e7c16288785b0044ce7f4a7b83eea3a67a7a4fb8cbc93b1f203fe2aac74e50904752b01dd1873898667cddb87f79ec97ead5c86c018e0992abced0ba9bf7d816f88e299870d1d7b66de3520b071699b36b37f27f455c837c4a10b88c55f61418f20b882466ae6b8506b425837879df54cf8c3a08e39b6765f8d2207f02bf496edc6bf8027335855df95b76ef174348bc098c1a8d159f3be4b735e5a0cc50acd25c400ccb6009ecffa5c5abf305e1318a9acd6a0c0bc2eb1077875360c6f98b6fcfe1c6bcf6bc0298913a9df8111a73c862dc67199815233f4d9ff74302c4de568c54ba7af20d3ac36838258ec0c5ee669aa743ee773a268df742c1ea7e55b86012de7fb63323a9a7a57b0443f8616b9a397dff88dfbe0ac207eebabfe7f65973b865b00f05d77a01349b011e99fa9edc9db1ad64d167612d50673c5fd2f06a5666ce4fd18349f9084973acfa759c8db735ba226fcc2030d9fdfb6ad3fd8a459aa295039ae49e119fa016500443ea392d972b4a660558b7bd9d5c93d69770ed292ecaaeb6d0c25cf087c31c3b8851128bdd6013daa9901c46349cde7a14f3cde20e8ef15a056285c626254ee62ff25e5fc30692e2e712488cd63032022e6825b4e8cdddc1820db0048d2087546e8649fedb5b3b51d34bd6d3b0b44fb7f6d2c5c48f32e37b4a1715c876dd740b8be800c7d17f62de2860bf48795d422a4bda1947803c7d91d66b264cd106244197b85977973ed06c890e32c5ea26bf2b5fcea85cafa93d0b99346fa070fa1ddb7099d457115a46dc291634838ea4f1454acd0d063caf0ff1974c30c97c7f90ac0c03f28c6f7a0223aef341da4299d215562e37e29e4d6c5605cfc927f4db1483f11e096a4594659f61665db55f64196ad01b7ad9b3b3ed9fa5082da1d4b153ee5169ac0d0ac4e72a7740f74882e47e216e62852330e8c04d01307438cc57120bd21e4cd877feddcb28e230140c6b18e8510576acb1026dbbea36c29520b748c4814c4ac28cf222198bef1fefc8e6ac929b7d2273313108aa3a3a5cd032f8950c1e94d370a1a875553c3515450985a59941e1469c1189293ac683c45ca96718f64c4b796d8189e4cb9d4eb0b86d01f61d95a1a24259ae520b4caa69c10670981ae4499e391082303855336b5e2165984d0d09631854e52cf3b7014b8359d2545baf5c6f28130cd05b3f6e70fc3658847134b6ffdd727245f68662cdba6e563f4cd8f2db21d2ac8b0dd0823b7d86fa9ed9e62b3bfaa5bfeea89390ceb49868f0e17e48f8dacce47bcc7bf99a113219d4819a014606e50476a38ec84bd191b94486f3d9deb73416c19779c9e61da2693c14d1197587393ab91c1ffad789f8e57e2365eb85970cd018f285aee9a2d9dcd69a1a6b9f6cd2ce64eef09ac96ec01b59013213b2075bbe55198dae5a26bfb317a8a424348814f3858d06952df941e5c855534ca9bd50c5dfec04591386ae900e52a0c266305aa1e94aec6389912df092656e65b6f3a19641f43723546f8451f8e42a32b6ffe015a4597c9ef20b4950c442b43f153bf88416d6f199910a02d42afc26e6a77d0e613248c6d0cf825b1ebc3a1d291c0e39fc93f54fe9a88a0d2d38e85f12fb0929923e76589c4dbfb274a3ce1c25d54d623a5a03f56050a49eff901568befd03e08c2f621b9226efa5239ba7b01271cb0d550a39b267789ac6ab1a6e12026fc65a1c1df5c52c50a935f40c31a710f5462a9cfb3b11cd7bab818303c53e1f12eb1c1011874d52edf3f6ed97b07ace17b170fac78dd3f9fa6b0a3bbc111faa1299b448e34864fac6842f43763cbcabc49686852d11f579a0b19a0446b0b3930ff00ee29e16d5265bb85ffc9d5d21ef20bbe9f38dd341fb180e959e2c2dff5c852ea3a2a9a477e1c38829c2bbdfdbf6d58748675e081b8ef3693a823466c23851bdec6a04989d81ca4277d2ca2a378b3dc07ac4610d74ca6f653c9182b275a1d1a337673da8451894ca32480401b3ddd4d4920d8a609e219c878f87c0c93e19c3511256c5cfaf66afd1087807047183d1f61858810fb8495fd4869ba0be631ef0121e2d07c8451b63b90d5bff156ce7b1a74d01fad3b2aea2a24ff09a047b91fe3a6acea067e445ccbd566f518100156cc1f82e5ca0f624f8d0e8ae1c9212bf3fe1cd0a18abee45cb2ee70e0625ea228728afb81cd89319e23e0bf8a7e631ca750330bb82924d5bd6ce925294740c0b10e1977605996bec151edc812e01e9dd05a26213472a3b721215249aeca7ed2958722e1f0a98714496f7208428b4cde00182e8fd64b23c0ab776d304891d64bf935ab63421076bdee80eb036dd66cc59c76055c1f276b08fb9e0f150e78e4807731bcda5b64bc4b0f17923425a9ac4ce6aeaa63bdea407c65558aae184085dab17ae9df176158fe76d63ec86685d3ae8934c51ba44d14a7e7209cead59d49399fcde078bb4e8b7541a3871ddb2ecedc102149412bbffbae2daa3303643f38cb9e68606051d77d18f405c6d24180649af66fd6196caba5a3dd229eb70dc4f9c3a2eb757f00df22fc945487b9cefe6d66107714406a2c964cee68c4e87956b5f81636a419e6d72b2227f18cc02e65d8fb180a3eca4ae7f8172e72756fef2a59eb8f5e5727db3bbe1953878afe2553c16436b14214d21cf019c95837c986428e4e1732f9de683aa325f3bdbe51dca959395c35e49cba69d750eb3d7743289c6d7f0eb9c62765e6d36e0efd873848600d5700085ec8a6bba01a5619707e18d8ccf2c3625650b6d0e206a12382cb5beda4ac2345ed9bb2e06cc9763018e4e2957180da444b3df84b383d532379bdf9150724bbfc5b56aef5d67de794b47025b6ad8b702090db4c9f949a982c159791e0b79df8420318ee63c37b87c863acb0ca50c0e5315521b54ac9f5d5d15a3998fa249e07fe3aae7683fb869ea7d054c59ca1c9ad9faf27f774ecaa3bc5fc5c24bfe306a64a2fa554eb992aa962b6b85608559b2aa6347d29de1c230cfa5fa7dd86ead3060bfd4aa060ae2978a1a3647d5ea53614603dacaacacf0e9c2a7498d961a5e30204b7538a79c8560683c0d4c933292c2ed2b9a2f48ba5850fa01cc6f9933fec56fd7139f72f370405032572b1b0cb83cd29463f2a459bbdc17214124581253538ff0d6bc13122dcad01fb7a2aa1fabe20b1207504357a9a3cbce137e8cab070670c0f048662d2a096abfb641fcb96984958c9d06c8258d77ecc99cdc7f654b4aa8aec9941bbf798728923afc5d23c77cd3ba8cfc9ee217018b64b7cf4f29d3b9315d42e20e844dc6b152c033781e0bec53378beff42196230e137ec690c71a910d5d41ac5bc5457196e3a7bf7c167bf622bd4a3aeb78bb55c8b3955d78cceb77ec2d0f0c7b6d1650473ca9017de5aefc3944e650939fed5918048d7ae7edcab006fa507dc6a4d520be9d770530f3d1a8e764f1682500d9e09867e1d0c3031f1eaa4893908cb2ce248f8b5d660b752e4519fe3ef4775450b137145d2ee7225f90bce728ef44a5e89082ea668d85fe7ed73c45a05e636b65ee3b34a0bda9637366bde0cc76eb00e23877de97313299669dac754766d306be9f216c00e37b6d89dfb0f0a63a6b5862aeb37ac73e1f3a869984a4a63913d323e7737ff13a46a3f89282a8f953bafaccf272b7a9ae44a992a1981da6f0558c3ffa5851c11d54ec7a108a0e91f8bc447feeec8905d51718c06b2b5e069c73b22cc35edd411fcc822c9f138ec27b730a4d0659b6c89363102fba2bb8f187addb32ab6b7c7e90d2839777b571d8a13c0a1291bf738a2468ad67c007df78de27b7d21998c1699b060e9d536fd07ee52d2903cccdf4846b6856fc8edfa1c7fd89067b7e168a3b8ca7443e50921bff53873f3b1c4403c1beb2a8b2bc080b60096b795ce0042f08642226b3a1d360d648adcb731fed8d62502db827240a452564c331f7cabe8a3a1173974dc9ea13bd5acd17f28633f60b9841d227db25756f13ee25e4d7e96dc9f722c25c1de7e68c505d37e07d916079b6a5c9255d2cbef376b347c026985d54793606dd91f69555ac05f408b10a72b983a195a7ffdc13fa3419caac046e86361dbee6530ad7abf0d211a6441557003c57a000b194d6085dbb34aa44b90f2ecff9f72eafd4f25885fa88a2518bdeb8187d21d4602ddbf3f7aec7a32e36ef29fb3c4eb828aa5745e4834208e2f11611b727ffa0eff2384a965eb36afdcff52b90c74ca0932fe0c39ca8388a481230e3fd7ce7b74609a7df9c4d2ec4c9ba85f2ae27ec212c535a8bc16fe1c64bb481b3e9f281271486073c180bf1d29acc50bc0253b586eb66642d59697253f017d66256d57429e228835fa9fd3cb2676e70fd550b449daf64db09041f7ea2bf24d1efc659950a079758ae04de7da383d382eeaec7cede08d40beb6ac318c23d87927305c6f7d693cbeeb0fced1617bdad3de7489cc8120f3bae89856abaf016ed94fa4f2a4cdb2ef5a5f5a2540c08ff555716e6b9d9551b22e74b13c5b7dd9b8a224de1725707212cb07b40a38dda173f7303ccc0e4e670a2e15dbff4616af14b0e969cd32715d0d9b6e6060d7a068ffbd4c55bcd47e2a84586948060794b6254de41293e2b287027c24d11b48868566e77301210ec9304ee43f2fb4061710bb72028a694780eb57147d22f0482e1dc2ca23f3317710d645de9b507d92371e9a2168310b9175c108c87afc14858cc262f6053800b11eedfba1c3582168b03b2729abfc28490c1a79984fd363fcde1aba7450b4d9aeaf5762b4e0d12190d593a061d2f0e568ee7a71719b73a2a835c490e14945027dbf21c26412c416827b25144f44050f051668f3de077bab8129baae674e5791bdde719f9f841bf1e1940dd553f1e670035610494b0139e1d25aeb31ddb03d22cb5a3563431de5b14156da0f731ab3aa7a340c17cf45aa2a44e5e1a173f89485c86766e2ef836884a71358ab184453796f7d858b62c59fe09f03a7fef82cdb84dd1f31f4cc907ffdae2c088cb3574484b7cf8b867f1055899dd95db9f32908bceb6611b33f945e87b63f6382ad31060340ddd492dc6a4f0432709af2bb5ced571cc21b63f15d3a9f4000c69b0bc760190964b149c78f97a039ab137cd21e4d2f33e845f9d97d0750ccd7b8b9ba8fb743ef53ac156c43f4a71e9f7d0e66f60dfba4b42ab68822b8fd95e0d09e97012e9c9abddd060a77c6a7051babf89c800c401dfeca4a87dd95379b0a886c044a3fe226d58dab01c1fbf5c8b124f0d63831ca4a3d3b404faba008de844a7a06ea7ba2ddbeca1048f00f3c9e7aaa8b9fa98caad3e2d4b2d961c4be25b3232a226c06292681c2fe620a79120ac7f19610ccf7dc664cea4cbe93820e9f4f4191b01989e3ec7c81f600331a43ea2d4c51ceffb69a738f584d53e3279f117ca488441d6214df6b68de5df956605b3fe8b61f8271324dc7f5577673d746549cfa29b03509af16028a2b9fd5027e92abc67940741c5fd3c8d086428a49cf7de57fe076646d8d5c16ea9c841002af1cb85b985a9c7738785c6123e447f63ec2ea43477598b27c85fdd4046409b0def03763cdd269842659a069e0b681dfa8cc49992217ec45db401db189510396bde09fa8685f853ce621bf4518ee61ddbd145fda3217c04c19a03096e30c4e8cf992d15c59f0a42d5cf123fca9733d762c1532a341d7744328f645b60ef7862b1797dcdb89dcf5671cc1c79e5b1af436ae83052703b91177ba120b1243cb4babb5e066dc7c050fbd325a5ab56c8ec11ebfeaf518145e5d85cc86d564d6f0878838bc2a4f0149351ab240fc2c0829a9ca3d41da767aae0024a8edc3c9c41fea1474d709e0eb814f209fbf0848c4f9aedd629c3a9412c9e564b9b986f2c788954a9d1243844ad43eea306b719da9958241e9950ecc300675fb0301daed18622d16c7e301ce0fbc57c8236317537f5e7b390afc7206c4d939193d9d86c618478f0ea91206b1279dab7db48e282d6bd35dcc69921d2f10716f253cbb1b1d48bdea7e4bfc08d82aca07fb582306f77499e594ff7f72b6bba2ecee2150518fa94a969bc8302088bbf7bf8d9b8f5195a549de2a82679102441905aec184e30e58209c554d63da98c02a360f5e65294c034d127cbcf8be890bf7839ff060398dd9bcb10a9f0a12b4fa2e665703283aa0a99a99f9066a4d2582b97b4042d023ff848be6f069552a8e6a2375589784b4b6f7de5bee2da5945206670fe60e850eaf5948490bd121773d0f7c43ee6aaaa61c79e052ac9a3ef9241744e9e7b99894a985a2924f64c50d630ba9d30ce0f012d913042189055c5cd14cc20eeb9649e0902b323d44a91e6298bfdcbe68aea8a4c30ba3c30b438738a54d9a2be2a6cc16a5147f5329b385b367cf2249164bdc40fd94a5121a90c247a7cba4e0f04aa9dc11cec81770c8011da9f437e6be53a2cda43a5543cf89144e9820054d30c2143040c40238d082100930500405ade4f5d25c1157c415ad3c7e3b2ccf992bb791a3129c1041139d2c8a760cc28e4eb260b2a378828a7db363144f1cd95d07739a4d75b680d409b60089136c79ea5d27bd54eaaa1cf66cd5e7b7a37a27bf1bb274791c259a61d8dcb3691e32370c2d392069a4b2d8a9e75055069fcaac96fc92c39efdf2f8edb09e334d39549a4cb6c2e4b84d3037c1483965a779f5c3914ff36752708c7731eb0247273600da2107c401054598912d4a8455dd198936f335037f650ec964cd771cd06ca93ecf19992d18189fe796e09070494aa552ea1546ae139c2d0ee8aa9cc50e873c9539235c295b1d4a7ae96382f539546a2ec904a7d51c92096a1791212407a40df44434b5dc12139ccfbc804d0f6910101502ea805eb9246595f539b324aba4a1dcd69ee62a69f89820a5b72f25afe7d0578e71eb771d2d494984b64ba597749784ed7e26f8f970b77c1213a4af559e667b972cebe7e2f27256ee7e2698048eb8ed5f722ac6e32e325b40e89322d367b6802879bdf399e08c30fad2dbccc31899155dad629856e16bc73c9382635efbafdf0d9a679a1cbe36cd4a64d1bc4ef392a6f90ccd651ea98be656e7385934a7f9146d68684ef3ba05d1e495cfe4304626af7248a9b0e763e4a2907ee5cfe10e1bf59895c7efc6dc5cd104bb8043ae087553c6051cb793233491489c341165cfea440b271bb6a3132d7eb6132c9e38c1c20a7a289860020a269240310328b7088a1964b1e5c4024a1442b0220a213861c92d97a68c0b585e2813947f6d79979bde75df8d96b3bc8b5fad9994fb80d736bd966e3f1c2d6771c151d2e16b97fe72540ee546a91edaa41ed638bd1eaeb81ec2803d9469c13cc4380f6fe92bc7c930394e1026b3e95d3036fd2b539b4daf4a5d7e37e686a1a90e4b218d12d22decf952f8daf62e39a4375d66202d67f9fd765674c4540779ed16fdf9407fa3b0bcc5ea6f670b4fdbf41cfada2c8fbb8545df28a67c89eaceb6c005d953d62127e48a2e947abbabdeb1c32315dc941db518ba000cbab8811625b0c04c0fa2d4e0045fc0010772c0055117357141252e48525389c66895af5b1dab42bc3de46e25afcb4fba9e33bb178da100d3c77dd2b7a367d31c54f39820f8ca524742013f71b9729c2cd9f9702a0fa9167078892e94d90ae916b3d5c56c855cd09e2d395bb355345b21c7245671d04d845cd00e9aadfa1d2e8e4456dce10209a59f0f74d3cf0f08d75fbf44d4e5d22920a28e4fd48248c7871650ac00892db810039d195274a28e8b2ba2ae97a6a88f87c6b8c0503061c58e5030f144cc8e50c4a08b4d634888307a25aecfaf47fce2a5e4f59cd9b9f24bc7c90ae9902b4b9d4963139c5be0ef18c513455b45873249ec672f210b389448688cc69060016bffbed8955de0f8e5a05ec0380f09e2cb3fa6809325df848ad850142aa50ba218c404e5e592094a1a93445266ab9e66b1c56c511d87a2fc98a03c062728e39dc492188a4e62459e6441a3501060f90ec90d534e810b242a98864a85cb9e93b5355df1b6d53de9b66ddba6c3abbd67d4d24aa93c8851965ae1236d9bc71a6e7b9c41c6e37376e0f121c48f218ca0aeeef1d247fee8c7cb2312895c2283a41075991e673c5e522163724812bd3cba3c5e165117eaf1d387ba5a1e3f7f26d03c32916c3187d363144cf0d9318a274cec90b4e723d18e512c61059b1461f5d96d1e89e8417ae91bb57cc50711d459e6a641e32e2d3350a6192698fa971694fd57e249a9745ecc639e635637bfd1475ce6662573a3b5100a23e65dbd4a8cd32c445e08113d48c7a717428412ee427c10a1f9ca49f741043c4b16224f83c6b5b3b2107a2284f448f550d15cf5a853f31ea91e304ec369d047e8dc1c88a843c33bf9f1d45c7e3c37973c34680c906c9e8b64d7c0d5399d464e6997f11e9d8eaa0ee39dfc7ad05c75ea033c8cc7cfc78a0f96c3d0299a3373a62aa7e8f17b74b4cc33c3bb195975538621754ca88fc6bf1939d5c374d555fa88969b74ca549a1ecc08e6dd8cbcd2a91e33befa4a1f11f3193ad5438586ab98b28c4ef5307dc667e8237e934ef5e86ebaa99bc952277e3b4abcaff28c9b6672cdb3ce264b1d13b8d1f85693533d4eb7b98d3e82e6279dea818fa0c14609f7f1d8d0b8bfa7211369e2e6344ea402a6cff80d0d5d01d36462cbcfd03ea4931ebf9db96482d2749b5c334396915f9425cf02f30e94254f9367b20fca9297c9abfc2346963ae72c8f4824720965c9c364194459f230b214a22c7955964de45fe45db2944259f2a82c8b284bbe254f9ff94359f22b7902e99b53b674d24b5a0ed5a77a90ae72d255b4f449d1a77a6890b2e4497a22a12cab79465a52f1fdfed33256358fa787e87edf6923389dea71377de565f4649324842eae687c8872657a32d14f98f674b26784e9441b44d67cb8ddce3b2715333687708a7083263e486890a4313a5483ea50156af243448ba28e9c41545424f54805aa3fd5e7f7891138c1e20b299250031e8e70030cc48e30450761989f4293fe60f919a471005f1dcea04a649bd0493c75ddd1d11829bd41b72c6d2f51cbe8e2b668332fb595d2d62dbaa494534e399564373070620324ff8a66cf993d65f6bcdc750c5becfa3805197c76d543e6a6968bd2ebaa10afe36cd699d555cbecabc628b9435c4ffbb49259720bfe5ca1b68c30b980193021850f7cc6b082245530b18514a87002293f23c88e2768ad46e913decfe40d75f5ec80035e90c106526ee004078874f083256421034170c2073ae2046bddd20a38fcbea12e1fa090e2470928a67001500d3080010c64c00325c0a0013ba555f21dcf7083257c92e4808b3074010b5808420a5c5002288c6071ba6fa88b015a000215946ca148144f74e65fd415ada085221829fa819317c44067fe6050373b2674db1698eef87d9f730b3c4fbf9def1136ca01002320d8dc679ea41da3e040d14ec96ba4edddceab592ff3b44ee21a13dcd92ebf1d252cefeaf7bdbea66682f4d32191fd9dd26d81e841419005bc4002299a58021474e2647db7f9cba1b5ef9e436d106febd764d17b2c9736b46db36d5f23ac744bb7bdb5971176bafd8c30d3ad0e83785eb6916b68813d4abf7c2368ed77fa957c32e5196dec4bb9461b7b958cb33d69db8ff2b6f3fbfc72dcfd75355e36662bc6dd699e67edad7da73d7a6f6fe1906d4fb76b81dcdbfbed74bb8ff7f4dbd1b3effdd5274b95b0bc63d1b45b20dab55b5d33417a151460edda35a93d87a655fa668254ee9ad9a21dc0192ed284bc066e9a5b12bab8c2b3153b19e71cc5084a7cf950b5e3d44a6a8caf533ac19ba36f790d08cf568dd9aade4bce1aafd9ba71ea186de2ef1458109ac2175638820974e451d4650383292e5082a2128ca10b1d2949d009c11171d0fdb8b2b64ab967de262bfe5e8c51f16ed1463e66ba63a431d22dbae4b6a9c41be61ba229107d31596df6c53e2610499c4c7f41924611653141ba3e2f24cbce2089f3359134a607f479215d1e093ef9c466a2893dff35913ed84c360db60442154c44d8cce885c8d7c7af660ea4c78333879feb90f0a327c5138107e445d994c0c3559be9d112a32524ce28c86a3e16d0c228c8fb6cb8c9e14559f3239a55fbcae146e258bde3958374f5e87a784776481c8f05d10b810bb607146d2aa534866df6254a3449020ebda13d2d50f725b91b0938ccbea0a1264c966cd7d784b2e6fdf7116520b6be08cbdec40b11dcf628888e463388e0d451424cf32155cd47d340d5a3204943d38074491ad01924715ea3a07b892929862d8de17a0f28c2262799c02c3f4e86302801091740018808496881148610822b848a20a1332f632b99978df591e12b5a928f80bd2d26084a9b19a75a6b666d66b3ccdacc5a9927134cdf99be22cdc72bf2a27857f0c4e049d91e195c8c00146db497c4d14010693ce1678b60cf87b021a2f4b1adfe51044cc2ff6256e0b9a5f6133f20a28ee6438980e5e4992f204004a58684c440747d4511f6753b94496c52ca2418d55581ef9e409b0e41fba1ae26c2b975384d80d89ae7d922da685fd137e52b4356fa766e10ec29a5d45a9bddccb6ea63b1d84c62c7d000879e151e508c56c48be26d913f202f34a1aecfc88c51d7e74389a8cbeb62b23e29f35ba2c9fe7e422f0ad1637e10cc59449b2c0b590339834c8b8c0a7249b685dc413644050e359f255cd80795049565c94410757d5f44d60c62eb23430497cc1c4a4dc41c3cb14748ecf9962553e0306b0288a8a3425df824574c1261d2137a22da8c8e449814f8bb7c7863684bbea0961d7a4057e06c871ed0b495d6ed340aac3df4869494ce95bea04e5327f80ba2ae0c0a9195e45b1261dc23d8c520e660fac4228249b422d1c6a4b50c44d6bce681930e332bec79edbbe1ed4d6b3e50e0d063b2bd7ba8090187415e5b7ba7bd214d336088ba3c2be6d0f4ac98ad2d8684d8f2b8f0acf0a2048136992dcd49146f72f58d6d6bda32f1843c2762cbe362d31e933d4fcabc7a26a6b7a4943d152651e4cf91ad42ca9288b29698ad2a6332c6801b191c613678401e100d9620399245f96249d8a317158d748dd7cb23810774b3ec6699f6c4d69068475e1287c703a22eb9c4238174491abcb2efc650b4b922da64d709d990e92a5e94ffa0f7626c42a14abf0a08622d632f296576332f8ae745f1342b9a38992d3b5b14d47cbed86c659e0e5f373804b5a67fe04c4e5babad75861acd6706cde70aec693e1136dab409c672b6ec0db28bc99a120a131a933db39849f67c664b520a1066abc88e3c1261f576b66adcd072bd7080e17c3bbe6f28da3c99e024bd23e52674683bfb7da825916364ddc76fd339ee25e578ed9b1266979e11f92493d9657620f2f6f5dac37a191b02522f5ff5bc1763cd27b25e87267873dc5f4c0e49adbd23a3afc8039aa09443310f68bff6f401c63b42016568773b46f1011eecef5b426cc925c49e441b19abb6b632bb840656f3c86c88b226a59447e27cb1188b52c8f023c2e615b8db61bc02a76e685b7edbdf0e63941f1136925af3e90136126141a2cd0862cb01119cf780b6e6134995d24ae948f391b452299744e95e2492c4d4daa118294f9dd68c5dc4933edacf0f0e639421ca836a2b494e99ada2d9a273ce496bf0a806b0ac9908ea854f0e32c1eb61b1e7b3a1087e31ce86cfbe0b38d4964cae891394664142b50689b049e9b793d11d6443747fb17985d8faca10c1f96c288bb2b32dbe29d1e62bd2018ea2031c664345dbe519f180728085d422ea0a3259f32bfa115d9669232d4f247677b376efdd0fe0bdd3a9ed00df539be6d19d23427af7ed234d6474ceea907b3b105107f3e0df9c5d9c71cebe5d9eee40449d4e1fd1c4f623ea3b4e1f316fd6363e8f7aac23e5411f29cb6ef9ecd9a6b5ac75a39c65ff72d6c4c3949559211b1494faa1be3b0f7a2e7bc769dad54a3c2dcb9e79d93b8bc422a9a7b74d3a1174b100987e5a51ada875555b9d101c534848074c74208405c901f923392093c04217573310da363b42210311f8d4b0a3132310615fa2d912226408de25d4b34ee65b4590e649fc638241368061c0fefa4b13791df61e1eaee31cc7f51e9d10b5259e81652200b88daf56a7190d095cb422a1e082224f104131050b1da480a206514821032410413dcdb5664a55573d6756960e7b36ebf5dba9b7b6c74aabca71d37a55adb556954aa552edb09ec1d0d23b1fd3a70b6da1a6c3bc33e5cec764baa5c758a22fdd7e3ba5cf9b1e960ea3b9a252ee7cea2ee96e42e98cd8a64b0923e54d261893a4a5db4c81240d9a7d3b524f221a821cb791142542db29fb52a6b73945737d2aabfe9259efa40793b9a2ce67822c8ef57929a55c6dd659409bb5a3132da0ecae9b9efc70b09ed2a18d9d8ad154ea2e8fa9b7a4503b75ebd2f2e2f2d8f2f24e7e2693c9e290b7a5922d6598120ccd4d1904ad95301646ca542ac3b8f88506b4b15187817a659cbb32ac7e6302bbe9863d3b55258dfa2a69541d9a4a3a1cb24ba6db4e7aa994e686b898fc76ac94024ebdf46468b6e6953872d7d44bef52991be2625ae054ea0ed961bdf5ea4b97df8dcac582783ba5b9a12cf02bc36aa9a43757cee138a75f0f1c0e3bfd78b88ea389784fe8b84e3f1eafc334110090600848e7f51c3aad573f1c2ea71b2cbb4c2fa54ca554f6052ed96fc7bec3c9afc3b2ebf2e3c1f4d48dba5f9e4abd67a75aa6bca43a9f16cd15c9cf1d7245f4c90469ac470e773d7e3d70f84b1391523c2105443aafc78f07ec2e4d24e5031dd8e3c703e74424145500c3900e4e1538e48a6249d3a12748c0f576d7aec804c740b4b9a2ab54af34e6041c7231e9339fc3613e7038ce5d19f6f81de0751c4d648641c98fce0b965dafa5e74cb9a38dad3387a1b1b06ed7ea38e41c72f7ca01878ca22caea82bb2270eb7a0aab9291b93d9a2b1586c094ee8e049121a94c10863e8b1011225e842c91160a085145ca80e4f3bf5cc0bf0591970ea7582a9c7a40e93532f87b9dc2b39f5f295b3ded16cd27e7048631d8d0e875890067c273f93a925460cd35b3f266ac4547a17752a47e9f6384a3a4eb0742b65a9e5f1932d2628dbf41caaca1c9309a6a6cc161734c1f99285e460e9d457be03f31c9a8a9b2687572646e6809e335d7218e4c4050915019aadb845e91e6e5d208143aec89ee79298ad5c64b6543ecffdd0c78436b8e31431a09d842536cd8e5320a18b28db65c7299660c5eea86797d42414c9dc52cb2d757561b9bd0cebd6970f5d7e43ee92cc8b49f59687e0611ea32bc57a11bd96d1e165e9106ff9727953eaac9bde92e3044d61cbe5b9226a7a8c22d3638a4ca9dbd368951e62b70a26abb800837ac8dcaa872c2c7b98cf0f0790faba551a88498772a7ae1a62b7e9546b98872e7ac8dca6c3e87042b13ba58198ae326920f576ab6c8b1e32f7cbe9e783ddd5a4436a64cbe7cc52e62eb38a364217fb3b4e518422469c6c233b56652d5553ad3594bbea1c6a32a964d5e34781244ee9951a299d7297269c504a3a94f6f3a1dbb22473fd2492b5cad75f27614ffd76aa29739a6695ea2aa7402a95ca55afdf8e4a474c9d6c9577f1f3a1dba61cca6da2ef76d5340492067de9d74d3a44b92e63b0188fd1e175691acaa2394c90cc6d06ff1c3707040404deea70b539a0d7cb97588ff4b4ad49cbe4482307441313e3f3c391facb9fe5e6804a5aea54643d860eafcb63348dee68ccdebad8b7fc256bdf0df0f67fc9a9035d964bcb55fe3cb7cdfa1c2b8332d771ab9c8640e2c4ad726a646b1ac072cb78323a8076dc3259ee2dd7ad72895932e7cedd85c670f94bcc635afe8334cff6a55b2b4393e530882dadb4d24aab53aa977498f221754b77109b3e75169853950fa55b1f5237ddde2b65d52995ce91d2261d277818ddd2a262b3e9d2b6c8f8f9d072a981b4dca481d0ac56bb45d35c3f833234312e671d04592e7f79fc7870f9cb5d5e5e5eb4179797b3aebdb05e6462bce81867cd189739864bc762b15e3f1a69c05ec75cea540e99d3cbb8b89cb38f9f0f32e72e3f1e5cce7159e61c7797940e7b76eaa61cae82d8a5fa4d55aa9717ad52e910a57a78da2f6f8181d1aa5c6160685ebaeaaf0c9ab27e290cb2daf6e053b9881c9f0e9973e774e8725bf2a134f70dab4b3587ab1cf4263d77cd21f8d3dc31e654af2618f39c59d2405c2ef3981c823ac86abb68eefa3974947118a9d8fa2c390c62ebab7c3b2c151d7190d52e42e658d932df3227739bb9a1697a4864531ddaeb773a03b896e461b42abc3182a56fd37326e7335b261d12d9b2a4b72932b95e6aae825b9b5be639938bcd96fe3cf7244ed5d68ff3b4b5b7f5eb7471459435af77b48e58026daea83e5ced1a06b1e9a7aa033a753f61e753f536658245662b46ce6747263fdca66c5366abd3db1613f4992d9256f2da86b6a12dca36b435a1aeb884295c80041ee842078cf840a726033e08c312562839820a74e6b7a04d482b82e55e7d66af5e059277f1cbb1ba9eb26b769ca28ad82642125534a95ecc8bca0bf010ba4308f4d0bc3cc6598fb3055e06887ce9a6972eb3a9a33aaab5a9cb5cd271974e81a434113962905dfa0dd5538f9bfaa0d241367d8ac82e3d4c5de55d24c0eab20aa02d0f56e133c510a44c410594ae935f0ed5a9e9a54b08c86db275ef1c71823752cf91d2f2aa1ca63e73fbed78b9e9f6db41ee979774fddf69f6eb416e697afc7a90fb25b43769151760abffc7cf87974b0de4e5260d04bc0c72b23ac869d3bc829fb94c0eeb669d7e3a56a0ae13a4d177b9d4610c1d27c87a9d208bf2407528e3c743cb61de92c30a6c18fa0df3ee7a32c3d8572176e9f7e3816e18f9f15087d0dda2c32336cc5d7e3f1ee686b9e481de0eb14b3a74f910ba611e521da3c39e0da363ee42bf1c73c75ce6184d5f5f67ebe555879d4bae97d8e535abb8000fa1f55c1e22b71c52b77c119cd22177cb3578a9533956a75f9dea90db2f405eaeb9ddf2f8f9b0bafecb7524c0eafa5d0c02c7298640b4f55f6ed261cf36bd94c3d32edde630c8b6f5a91c2758e9ebaabbab0e59b74fa534cc4bcfa1a53c739b55ceca6190d36e39cc4db908b95b76cbe5a76375fdf8e568b9d6e1cb5b4a7297ac0f4144d24d2d3a872f6f79d792c3b9552a1dcaad3aeb35db9b42b95b4e7378fa72985eba8d78b78430efceca405e9e1fbf1c74a7de92e7eee697234e10bc6982e0e597836af0ab0dbe935e4b4e3d7e3ecc9dd2405ebe027308a3839cf68bd69f790ee532d621b8674ecae16bcf5c258741f6ccbd6fc745472c7df675c4414ebb08b957cf993956f6ea5fe69e6817c839943b9f666e28bfcebc9bc95c0c03384cd59f1dca0a64847641a7f8845cecc973a6d42c808be6cea79d73cf9e199a2db96766666674c4b46e79da555361539dd291da8a6c49a4b62345d40d244e704bb257756b17c0f48966011c5ea2b8499da9e84ed97cb622db11274fe862c7273b3a79021250470652fa2ca574d8cbe3b0251d521897b466d46d46e91b1a9ba818a933691c7193485d4aa7488f2b1c37e2629c1165d841931f40a108576002028800031f142dc104a22d44cd070fb1eb1758fe08003ce5039deaf37b75782f91ac34c0a91b75d34bc93da1b109d22219606e888b4db0c600d3cb1d725f0efac5942d4799173446639428862a031edde69076c171a7dc019089c829f8a00642af57206ab1022596d079e926b82852f6e4b82c6268e69e4c3028625183287e908213749103104c60065720920107a21c294319a28b2be2c4107164c810613311f6ce48e781db6560d76cba8a2d21a69adb105b33624bc7568e2d1ab175d3a2e1f4aad8aae1f48fad1a36a7a794280ba2d8933a650a9edf8e9ea12036a05c29f3b768fe12dd282b2c0f6d7864c0a8c37848631116e3738a5aa44919e817360da25ce0c83ca457d8330f6916f6a45bec79a35c2229a4747b531662fa0cef64bedf5bdaa75d1221bf10625fba29cb489952a62cf0905bca43f02ebd9b9a29cbb0ee20debeef29f2640524788111788083c84510ac90820440464802c5e7d36e32e94b74a16081c34b643a7dce0cbd4df5103845833823df0e0c4d5199660ea8885b04de2da67b6a71409c91530bc51dc9b8231c1007c419292a2a2a2a2acaf42926e6ab4f57d59174952b8d8979fc7662f0e9dfb7d3baccdd0e6272c3a94432bf9d940e89ec54a569798161dde5f478ba5e2ad46d8481a7cf244ee9ab9b7258b7498806552634465d5c0ce6e5e52d343a8cd9218d81f946e14a41d29867e50be546c9978bd1161dc6bce81885d1148656e9db45b4211a83cadc414262c01289e6824c195fe6f07e61c8dc94d22021fcd1b773c3b9d2b639269c9168b3fa76ea57b96e5b6d2be62465ad354828b2e26e42c50d993332c12313c4ba08ab3ce4805c55270a4d30688245340828b2a216b4a085959cd2a1f5e366c9291d393fee2ed66ca01b7674620412641b871e16292e7df4ed704cea676595d65a53959c50497341419432a134888b255c0499b810e2a2494792598bf18eda4fd6951c59341138e475d02d5db1aae9939a4da988ac18bb439828b2e2dee1028c5a0d932d88ba38a02d68e38038a0961839ee676e879c92b891704780a88b0b6af9789c0ba22e7a5b74d8124326cb48837e26d3dbc8a25759e11bda310e507d5cf40915a2415c10c7847b62b69ccc56b845d99313e29acc5678a998ad70db02a889708b12450b312d0c552d1069210aed64e4b83b8a44efe8a408a6cb1af911acb7218311ac9751f3193211447c7c768d5e45b0be86ac8a603d0d1915c1fa9b7c8a603d8d8c23589fb317c17a9d6f04eb67e41ac17a9bfadd00b7acc971cf90e3a6df8d958c1b57a14ed8bb51b7d44410d9f4f3e7435b250c36680752b6d081107c214acf0b9060e2450ab480e40b0bd4136560c02157c459bb3bf9110101b953ef41923295714493a55b00dac291d216906c6149a7e4257f220c36e46620466f770c820da8d8af1c75ba38834b2f0294226441ef167bbef4d2b9d2e32e5dfb76f4ec52d4a1a597b48d9d17179b2dab2f94093e992da995bc5e9a2b222a824f0da89c7454839c5801854d631186047a3dfbe1f86ecc5de9434ab445ac0b38a435e84a01f65e6b2dc7d99cd9bab7dfb13b582bed75883099f109db7cbd3bafdc61adb5f2d6dab0f63ec4d9f6af08bbb7979f4b6856da5f6badd56eadb5d45a7bcdf2b0f6d65a6bb35b7bfb686f1f57560321118d4ad0c5554822dada259e1f8e6ddf4ee2ae8b48c0593ccf6c6d5dcbbb762ecac78325427eb1f15736cb8e9f0e77d85f8ce9b89b8b39e8c6a71beb50023c3c220c5f233da47b44fae8f2bbe16d0e679b45b4d19e69b17527e5d08e7268771863415e5bd6d072f8daf1528910dcdde515f8eeb96dd64589b94f2e7221c01dc7d5186fbc5209fc851c11d16c41992e1e3c2cc83c99a16ced9c8d42a4d1699bc504b5779a37bf9deedd9679441bed32fb884dd8da0b1069689a474855a272156de7ec441ced3922ce8e1d226c33426cc23d8c536ced3a4418874fd85eef4ec9eda8315bdcb5e310718ab800883839d2466cb2c31a5bc3d9da5f5fdd66946a09ccfd44d850846dd7280928da689f2dc02147b4b56f99c6a28dc6c36382dab7ec43e21820d2d0ae1d0b216ccdfa441bedf3e06cdd6baf992e9bc56469d7aeb64313d4cec40e6ded71a5692024226ee2245deca2ca88034defe20cb6bfb91ed75d1e455ab9fc554e975f955097075b5e2e5fe3f22177c35cfe66b6841021bfd8303ee4ee984b190f712ccbe5a7c4d9e1f2bb6ce1cb9f666b7479d56c995211a69aa13573791d668be63c9797c721e2c8a8cff2dd3436ce4a08702f2b01e23f00d1fdf0c33bef1b91b04ac9f4c30f39ea10200391735c250fe0a6ace3a4bce3a3ccc36d8ee95676fc34801cef7ac897b2b2f3b043c70072acc00d33f23c92e761cf53f1bc92e7993cefe4792b9ed7d1ed65253d3c95bd8ca3cdfc0cf94493553268c4c0e821f7f08e54329d56586ca4c1f690a38e4ab64be0593d9b67ec8e642db656c5da92b5266b4fd6ae58cb62adf56cb6d95de6d95cb3438e91463823ce318e541e639c61a7b2ce67320e1c8791057097acc35bf2ce47f9868cbda38300de994e2b2c2d2897971b3b3a0840679b4e2b2c2d28979754c6f94ccec9398c6ce32e19006fc9397c9403c082e500001bef4e01c80100367060a715961694cb4b8af352b9c667320e381c46bee12eb9f596ecfa28bf401b5cad1bdeadb0b4a05c5e522a4ffb06f072b56ea861c34a0bcae525a582d179a96cf3995c8316724f44057c760d879167dc25d3784bbef928d3701934bb84ca4a7e409d1e6e52d2c371cd0f7fb9a131e35d8b0c192819325c64c8789121232543864a860c183264c0c890e1fd907bc81d0d39c61b1a33b24d8d4905b74ccf25653d55e6c180b17686cfa0d271829de7d93c23c35ec63b94f45ca897aa9eca7a30320f46f3626866f40449d9a48271d37d9ecd32dbcb7786ec33393b8d8ec945dc2d0307879dbd1b7936af76478a9152c1808979d6d82b6595a3f24993f41ea9dcdef4ee4565f5628fdfa1462edf8e9e3d92db94a5cd9d8ae7655449afb80e06f55ebd6c3d9d7931562e7769d12ef6df3bd4b7f3e988b9976f47cfc7e9aee4e10cdecbac7319bccddfe0bb4eb2eef2edb074c4a00a7c37c1dbcbcd02eda7eb046d86a14aed978d3376d9a895cc0c0dc892a179337c3b50dbc5b3b965772f9ecd2c36afecd3ee607834f92d31ae9257e7b2cc634c7b26e7fc70530fc759c90f3a52164f761f32253de848595e16623fe4eebf93f96975548cbfe8fc4e26c7b88aa1738e133c8d70dbd9b6fa461b968c196a6c66d0b881f1624a1d07938bb8dbc525d74c307b29af4819a5f219a6576353bd19d6a391793734a460dca85e3b7baac6cedec578289519acadb1d6c6da19d6d2b0f6c65a1aacadc1da7ba81c6b3ccfc6f366781e0dcfbbf13c1a3caf06cfb3c1f3f0eeb2673329da6435202ac7ed8d625e81352d75670f57d2a331bd1bead150bd1aac6743e6d5b8a1a5b472a9d9d95bc0956fe3ece18ec6cdf468a05e0dd5b3c17a3532ef869629461b53b627c02befe46d2f5f5356a172117797dedd488f86e9d5403d1baa57c37a37645ecb5552790bb8b34ec6b3b9db1d0d354ccf86eadd60bd56e6b95ed6bbf7e96ec6b379a3f16cbe1de8d9aced2fd70976ac52b6575c804db72799decdf876483a62530ddf8e9e6d923b7ef27a13cc3ecaa70966592703e7588bb89ba4ef4fb988bb55704b7aaee9bda88743f560d6c3c93c1b9a0700ab721593aab4dad955fece353d1ca807ab1e8ef56c641e00be1d39dc3bfa08eb38c1186d46d96b3c9ba7cd72c60427c8e9fb04cf90c1b2a9a17167c8bee577437b76992ffd7d977d3a3a24f0a0049be6bbe347774c041c91de3d3243d4967a8bd1d9aa73527924f3075dec4872db73ab547b7beee8a20ae8ee8d20cb95f9f8f8f820d189b7f2f6f228299b2c0185179658c2c40818f9b80a631322e871c42d1f431b596a25f539d3091dad94564a9558ab276ad61da3cdfc0eb03c92d5cc6af599d54acac8c8c8959452ae649e336f56f4ab2656f432320fe5571a35412af565643e653ef34e261f1577885a5d85fa8c0cea41f0e28a0d0bfaee6e58db9466d387599355c6cb4fd60c85ba37cb431831413a2b35628818e010046b66ab7e522598c621e841aaf900290a258576b7d65abb6925dc8d4c50025197109108482eb169103c2648690c701837fd0ef43b666b9e0137ba86a05a84d5d308d6d87488ec34d24cd34ab81a09447f4c90be4a249c1242a882093134b1e2074b50872b142cf7c783dc1249934e7af6f34172bf77bffc85e5dd518fb3e5f21290d1f14727bd1be57b52feeebd0bbede097f944dbf391462dfefa4e7ccd11dddd11de9d4007ac2211643a067abe808c4ec911662938e43955b52fe4e27e99088ef225eb6ca49979f0ff8233dfaf77ddf9732e901f46c15adb2047f8f4efa28df9f72a8f2c8c2f23bfa773acaa6cb3b62094723cdf2ab81b0dca481b8a8e42176df937238d243ec66d171822fff5c1e5f42c95f97970e8522bd925656be42faf7eecb2befac77f3cae89f5df9257df46fe5f576e597f411d6615d91df493a4e704573af9c8eb3355bdcbffb7df7f5dfb7fbdd9b41195deed149dafbd4a91cf2a4cb9374c86d0e08776d74eddcb5e7cc90fbe435ed9c8a0e7bb6ca4d19e750888dbf4f8731fb3be927920e63606060c050a952a99717171714aaa585856565e57432994a2515158c49a4d1e8fb3cafeb386edb587478f7f7d357f2dda450db5f849d1eda4d6a79d161b6bfa3ee9263b441e930dba4af901e5b745837e92b67c931daace8b0eeefa7dc3afdfb74583ae51841920ebb789ced4ba37757198de4b5d1351d721f8df227bf01f4c49c391ae950eed1bf93323e2591e626e5b07bf67db443dcdea781747a88dd9cd61e717821762442fbe28b2f88f6909a63654b17795a825229e5a494523a9510b13e280f5e26512995a878a7c4a3e2e36d4285fa2e46d82da2811b9dd17fb00e75cdc7cb8853c4dd522ba1f221ddf1339f26ab1e8f5e8f9a2d5927fd5e9590ae64e5ab09d6531749d79ab2a39cb23a7580efa3f75839e93d46c79aa48f6862e551e761cd5eb12ba31c754eeb4a15a2fe473d4fbd8ffaad5cc6543f78eccf8a94229f54ccc60e3b74e0f1415d30afb1d6daa172d48191a30ecc8bcb8f20010f5e9df37a551f3c138c25011ffbe8ab1112f030f2e830f82f99e492bda3b2e95d965b95facae3cb5539eae41b2d59f5dd68868c2db65918397598bcf2f9ddabae4e713f08413310a3981376bde4e9414cc8761c9188ed38e2e681fc84a456ae7dcb3c458ab4fcf4222c7f7947bdd148c6ae8f4ee09bbaea3e560ee39707e62bf988f9efa97c44ea2b9587b2ea61a87af00e1dea53b989ed2bf908fad1dd3c567ea25ff9d53c4e7fd144e6e82bf9fb29affc259f7ea01f9d07fde89be631ffed2e03e29465b9b59ce2198d5039eab868de4d5ae92a2ed963c92a5fc9f8a74cc2278dfebdfaa0acfa1109e75a546ffa012a7d3d3e3ce004eb6b7d05b0a49fb7443bc6a880a9e7ce150c541a3ba9c39bfa2e62d20632374d6bad5587f3da63b21c06b9b99964b859b97902c69c68b5121d72a8eb26bb6952b3ba59c5980ca20e9647c9c76be58fc962c00bb0d471da21c47c0236da47e05d8b220c009b3e27c234fab25183b28087de077d0efd0e94eab083ce390196f7d408be7f909bad156257ce30fdd58f36946767bfd7b49bebb52037db9e4c802b145d2a879c7155a3dd537bf7c6bfe2094301ef305bf13be277fc4dfc2bfef1608cb52008534c2022cb5d6b6770f61f93256d90fba1b2eca7ae20375b1b82b2b67bb3eb3bcd6654c0da23ab9ecb31b2868855ca8d6f2286d8dff4f6f23f82683ac8cdbc7ec0cd9eda9ba0bc3c288fe55140dbb43a1862f7109be33e3e3e7222410657ea4d108552ad2858a5943e1ab8e2063929328625c430b442a5a4525eb9c46c6520862423228c6645a66b86c89a3841481a1498218e3c62c39ed761b26e1784c4913aa28b4674129fb071e83043508a1dbf451c1d248df928b70e122747d2989ff539124707794387734fd99348c3718a5be090dbde0f8930b9e3b572ebbc6ff4ed2069a75f766981fb7923884c9f08935b1609bf3dbf1b5548da59b4995b35c21de9e2cac250759ff87582b8e603c8cff7c0f39f3e427eca483d9c69255ed4a9b9469d485d3628ea4ca953dc533ce43f9e3f677647e017a5387b741a230935417afa7a90baf2297d0c0ccae525479d54a6919eb2a8ea149ebe9dd5042958812e32faacd3f97bcea5c3e4d363b2e9b90920a24e11d27d8f79fc1ef2de9fe513387e7e35fa00c7479d49cf7974f9753f119d4e719a87347ab663f21130ee1d261fd1040f18f77e84eaf8d1865ef6004721f5dbe34744fda671441ee0f8c8433a1051879411c193baf7318fef43defb28a7ea61dea343caa9fad15355a77ef83e7afd481369a26a1ea5c36822f2de4b27a2d2a9aa5357ff308fcf43defb3ceea28ef5728ae73b1051e72bbde0b853994a64f9ca7366cb5d32cb5179e5389fee65933ddd54e42b7da6d30a8d3a9f0acf298bbe48211c8b8ceebd08e9df414a7bf0ad3a3e9eda969e6d966ca42efa5a77a0d9c12c7ba522c270767614111eca1ee9cdce621689e0f9106309066c9fcdcb08d36e771c852c58b2b287d9d6b6ccf322b13b2abf1dee6a1edd8968f44bf170dee3774fa4befbd53cb87b9ac8c7e594761465659a8e3af3f3d332466277d4d33287c4eeaaa7594fcb7707361661f4f7dc8fc92221baac4fb85925a04c578c1913d3650465dda39ce027986449b2256ccc6e61bbb053f68d126d6ebd422d5262572ef870fa87a993e94a0565ddd19e59c0a1f5b99f44c0f7b6061126f7bd0d8a2e1f91755f837d43bc87a8c0930acaaa48b8c0df0ebf7d68b7439495ddc628ebd21ffa437fbacdbb024ff9cd77930b1cda980fa497d1b9f3c844e0889b6782f739489a08fac50ab07cd5b36882d7a4af9309de671f8e929e4d72b73bcd23656ec72f52716fd10e659110b9437964dfcb2311c6d11fcababf37167171d31fea9291656faf7d489108919bcbf487ba68944b7ff6fd883b8d72b99b7478394e45d32813bc5853291344ed51a65b4cf07e0edd2de2beefecb733aaa3d9041cda1816783e8b7def69fb6482f7dd8d36d709a18d3d42d9db73e6f5e815589efbe68b14dd0dab86cb56b92c75b69ce2a17dfba6896cd7b4e8a2f9a62d91c6962d75d8a2bd864b64c97cd3b2c3ef5b338a44351d294b02894deaa440e864945146196544e9e8d89ce241844826f48525bc47a7931e0562eae4cc0a5029b9b03711df496f36c319a276c4a10fb34f3dabc515859ad9ef046bf02bc5130cefaed935cb2eb510963dc4522f7471756f8dd9efc2df8decd96576fb023c415aafc0f2f1a1105bbbcc619654677788ddb52ad9f0052c80c4070c56b084a08423a72d4fdae5511196a5b67c7994573e54d9d1037788bd1dbf1d1f85a08425b366f4f6f35b9693d6ad694d87f5da67a5daa70ef0bcdc72ca6ab368234fb3166da4bc72e74ce9812e92eeb2e923ce06d32e3fee71b6381dca38f7962b8aa228adf76e6bb59d65d9d634bbefdd36ba39ee769eb78db27db37c334dcb6e96ed96e5ca715e9669d779599e5e96518f66f975df36ca9e9d66b6d259e94802b9b94e747135331bf6ec4929a596526bb39a6531462ab32871e6942d1e09ee64a7291e9874ac79286ba67860ac7b742a0d30ad4cf07c97a5095010a509385bb7b71a07e00465408324f8e88c7245010f74ea0d7078b3a70d14fd48a3523d34911e9d91c694356f036cafedae66a73babc096ba06e11e9d1e9d9d3ddb425017e95367ce216fd65db59caa5a880f3b1cc776ed75db1d3f1ddb35fd90029b4a1d63e669614f985d3bcd4052396c98ca41af5dd3a1ddf43ddbbe676b5f0eaaab0e29a043ee1a6db26bdf8d6b99ee1c9a65d9fb4d8d1ba2ab009135552b2bdfb7c39b3dbd3a03ee618cd51ae0eedcb57c778d7bf10437385f3713ac31c09daefac6cb5163cd664aa34da6293dddd1340d6754cb324b299d95d22cb375ce487d688f37559850c51361180a83167a42e80992104f7078c14417f6eca9c97d270e2f9a54adde1b63a4f246cf9bacba840438b15df6ed08d93c1e1e3e664bfe27c2a210767da501e6baae3681c3ef2c9f2698eaf17d94fdd3372fea4af518fdfba78ff83ed22fcaaae7340f2678a04fe9b040527773fa01a1119b7b6cc2e9940eeedd3b0d24a5a3bb774f03b1efb40e9cde610751ff6521e60df55a7d01228daa796680e91274d07a2fc6a8ef18033f5b74d7dfe4d01d5ebb6e9e2a037cf26a0cf08cbbd3724ff6ed6c97db8638bc109a7bfb93dd7d1e0e2f98ecc72dbfadb5e3d538bc6032c1a8e97077f43c93556d0eebb6f75a6d46abb7498a41f4a46cb9d11cb712d473a669dbf48f790576c9a280e515b8d66f677bad7aeed2a481f6ed6c3f026b46226c4984e97d9f4d9945f67d26e57ab14c4a03a2cdb500136378c1beb10bfb3ed452b0ef63748592751f6a23d8770838b445dd8f68732fa9c0a14794094dd7a559132a05e6824cf03e6ece164558dd9e41213db411d6c00f6b5633548921ba1a1059f74426eb5e32b1efc32c8a0d920e33a21ad9500dd661165b7d3acca8d897ea1fd1a6ee4d1b31418fc823b2532678bf6d974078cb7c2678b52d22da242f0ab501eebc6f44c22aa527d385fabd17c301eeeddd113fd475bfe930c17b237c2869f9bd8c166d84cffd8fd902f7fd10d4b5834512613903519124041b28220416e884f267df487dec4de74cf0dee52f77f9cbc3ef4c882dbdf3b8e74c2bf076df6db954df925f9eca2edfb6d45d3411235243b4fcc8de12756a29479d2dead8a2d902527a84b2ef15d83e96ae6daf3fb2ec21c95e9268735fcade1254f68226ebbe66ef0559c9be4b9e20b1e2d149066403d7d8dbadd9db57d3658b268aba72687857263459f7db696f9711c7238a34ee37296cafb3d5eded77b6f0b76bced50b9ae07da9f398a8fc3e67d3366db3b1f2100cf3de1ea3cbdeaeb2b7d7982e8fe866b6eab76fd1950951d6fdb6b7df082b7dd32ada63c24411f0dca1c704757931caba2a991075e59cb4d0e92b3a8cd9a56c8ba2cd3d572a956a7cd7d94d33711fc618638c31c618638cf1c769267082d98884554aa6d3ca8884554aa6d38ae7d9a20ade0f993f820c1161f6374ed9f7994f8469e73ad2f77ddff77ddff77ddff7715a89c4522a6993dd94c01911ce6e4aa2543295bc233d5ad53a9b47bbb34513bc26c0e1e6b3ef250ee5cfde4e7710c6a15dba04c2a54b253015fbbef33e1c4862d565c51059f7374bb2ef55746cdfecc8be3fe930c64525d321b63abcf7d609ec3d613d26f6f741bb749b3d26d963428ad063c29e65bbb7e402eded6190d3bb9abd25d9435284d043b2afb764b66a6be5268fc96cd9df7bf7dd9c421e11910765bab22732a109decf1d6654d45a6b7d10b3953d43b2afec026749a6ab660251d77d8664b6547e6aadfc3ef331fd3efb992d96df6749cc960d6bd0cc169d5832f656f2297b42d475ba9ed0bef79898ad52902c19f11161dc2e954a1e122f89d5a126816c5164dded960cd1e5fd64429175ab0ebbac07d1658b686c6542fba6df7a046fa6d7d27fccd6b6efa591088bfb7ecb710f99aea8738bec2b93d8f7191470fde9388737b6ad72fcaee69577f1b3d63a815113bc3f4df07e7b47a512f8c704af2ddaf7dba74c5790c9babf8f3fec0e707802ef3d9f18e5749b83bcf68af69698e07dcef48c4cf05e3ec125ed014df0dea4bd1fcfc8beb734c0618cb2ef43ef67dfffa0ae96df0f315bf8f79ecf6ccd7def15d9b66d7b10b355dad9bac035c7ad92c10966deef57608475c7fa5e1561a3df9f668bf4fdbec358c5745a6169d93c9db9ed746f3a94c0f66cb4a07bd5ecf9cfa3e6e39543b878eb3e437780bd918cbdaa3cc0dab353798fa96bf47bd46c6dbf57cd56f7fbcf16f7fbf8f5b03deaecbae33c3a297ff7bccf8f07fee81e7f7e3c48ffee499fb766df7bcfa15ede8ea34ec7719f2d20dc23141f221536b7ba1ac80d3d019e31ea8a8b345175bcf306fa785a81a23d271630bd0c227ff68c98de6a2228ca9ab7cf3411ec040e6b9e52a73a81a57039250cde91e2df5d3969fce68e2e92a41278f36aa53bda833537d7d687f65e97aa8ff5a8da81dbb6e9ec6a997d8d7571469836815ebb76974ae01a8fc487310af80a282e3c8a01b400d006362d41741d36b78f08336d7a578095a06af01d6cfb180f846d6fa6d8d60a126feede7f50564b4221fdf583ba24908c4d2bc4965442043f4dcaa054829c5a88b42f6a6de77d231256d1bc92d4764cd0dad8a0fd1361aabd6d12686fb204dbcae892409165bf6d97228882826d2f9f60b9e5eb04ba176314ea07b794f208a640d60498fe3bcc96e6f2417374fda02cfb91dd68d816876d81842668efe3dedea16d6362505c142d443a81a58c09e15042d9f652bbbd8c325df2898c096d7bbb03bce51223b125ad1041105b12ca046d8409c923d4859fb8b6cb216885988462b9ab749fdbd22def23c2bceef232cb2eb017e26ded6d96bd66b6b467bf89b0fbec97baf0336c8f8aadbf8b01747a6b49d4869e7a5ff546d623e16f870ac7e9edd268b9b942862e76244a27a594d24aa9a534a39452e945175f383681628b4def3cad373720f8a35018c7c9c33cd539e86614b84e508211c78d36f1e3613e95b2da4a077431cabb69e6cd16b5f17d3455e2ca8eaa961d750d7a1c5ed1c6770b806db53759f66100b63d6ab6e8f7224d705dbddaf4b28c7a9abd75bb5cd771f25ac6d1c69ecb5e373d7a4ff7fd0d6f4b6f4e50a250dbe6ee853becec34771186aa99a03d77d5042d8e9b6863ff6863bbc7cffb70a4ba94a773d0dd9dee4e8712d89bb57782b646586a65b368281cdede34eadbe16e5f1361dbed6348b7a6d598a0fd965fd1c63ed302d7d8b6c8a535421b61d98edeb6b1c986852e76a4108337155b31ce084acacaf6a4d566da006e329027a18bd39bd72c90f4b4732986197c232373f392b9919979ce7cd1c050a7ef68f2eba6c68dcc6b8666e6e635a3c36f197dfa0db8facda5b888f4416d216441e36a6a52b239673c04a2ebea3b595486910c72ce3aeb672bdedfabeb67cb76e75c435057a76ddc56ae1e020e2510cf04e96bad9a449277eca0c304296a0e416dd8a851a3a666b59aaa50158984a02e6a674604fa88ebf5f0a50ce8e83d89a24740a73d5e8dd64b1c59f336cf0a5499802eaef888008777b6323acadff636ccee6aac72565ab551cda4ddd2760477bc45010eb9216e48e2c829efa96865d23299ac2696c826d9a2c69ed76c68838e00592794d2535184493975315bb6d33c2fc5b37dd344a4ce7d8fced4b492cd1a99e0b440d475927292729232c17992e262832fb0c00a593cc1820be8cc9e17601173428c0350940106968af869d689f6041c5ea108fb5ef1c966e7850e07ddb1525ae5bc18a3e4633582e3635ed8ec3ae16d4ee00d0352680aa13c295de0ad0ad2d438d21dbc4cd9f12853161509dd810c924ca4907c42fec82a8a80e596554c24d0212be406b6968382822a927022412241872612aa1574883a41852a112a11a24dbc3913b476b636cd5acd5a0444579c2b30569b27c2ec3f8388309000f38718a98bb5daa16ab76c1caaa6a65d7de58e1018d166debede5befd5b41d0def9a0923baa22ac2ec43d59e3b53cd08a3e286a431e7d55ae2d047fa459c01481ab30749635e2d7bfdb4767ef686c419401552ec49b7fdcdd58b36f20390385fec41e2cc2a648c698f54fb8d30bab5df6f47eb89334a24b654428773cb59a38da4213f0fd8cb19b3ce42b143d40546d9d65a6baf76efbd963ecb326badbdd75a6badb5f69ab5d75e6b03aa0da8542cd405a21e768ca119110c0040006314002028140c888442e17848a4898afb14000e94a456684e1689598ea220a39851c40101000000100000c08000bf5c68dfab770fe0a331fe3406dd9e62e3410304a4b83905cd573713468aa91ad6e5608590eb7de7c07d406540fdaa75b1e08180b5c935b7bb9abaead02a48160233cabe2f55ec91298badc36098be014252ac7cff5562ad2ef5a8dc482df479e65e34f41f18775bd50220e4a591b5bd80673325c49bcbec6de1674e061f99d6b7a0e9b09a430a800e51bf89e42fd812c5806ca86c61f0b09eab163a4886da276c127075dfde5ce7be6f00ff5bc91ae5f24cab84ee7f60ace0292ace5e6272c59ed597d50e7298af59f6143ee2ceb3bf2b2105c366ef2b2df21996659166a7872f45bdd013494e65e36bcd75afe48ed086337b87238537b44bcaf5fc1fee35658cb48f61e2af836bbc88e50c7ccafbc1d279e5f61aad5465a9da5dbd6b1db4356ce9b364926e8211da3f7b5d5e43adced6e9769e3d3c1d07b8b6768573eeb71d49af5c64ec0acdda8000e155ba46509d299a1835e54b8de850884e04e742967575987de7885a5a4c19659fb1cd236c057d4a9f65525be972ef64a2490cc83862360b319aa00dd5eb037a7bff6ada92fe9c6c0601d8151cfab44819746e6a552d83d6d980aa18ba281894c1e4f0c4a0b7bc7aa334ba13db5614d615359237563c3b709de0535c5cd86515dbcf3e7d73aed840c8a602d353303a520f664a3c26c7b4025024245af09e089822711983cc323119d4536ea546ade5f3a740043fb884417401403db51bd8a57577587e8144317f3786162f281cc7e611817aaa167920fb4e9d843b8132e5b53f7c1a7c162bc524a0030d53333b1a9668851af3a4cdbb49a113790b090e99b2a2bec96bdaf562a24914d56724e3b065a56598ca5e8cd5b2429ac6d10099611a001c1d64685d4866a9b25a7a9b12ef15ae7d0dfd210992403295388dba2e61dba7c2c136aea5d8135b706879617af77c6322fdd83cc85420789148a66d6dc9268f5b9c14087cc6165a120e42995f312556999a284e53617460b29bda05352459ec67a2544f6059fc9adb92f083029660d2aea7189fa539e0ccd4426fd790ce5c589038d0b9141177f83e0523c535973f4cb8ae61c0be1c7190b1cd84cfa21cee9000ac58f7f76100a8423ec10478849f597f3bd701c166165f4da8c1cc92c5c28f11dc81b13b66d0298abe6932b03d01f3021fc32fe8d07a90a1c431f8a61e8d7b38b5d87ee3bc53ce5233cc97d3e6b6126204e0955aa0152ecb2945b933468830e6ab74413a4e1207f76fef6fc714052f7aa44dc16ce7da93336652140e072ee2afe6b91ae6a46851572eb73eb075d48307a5db723d0890b381b99da9b446c45caf8138409370356cb7aa2f8e11081d0abfb1687aa6efce19dfe4b88b0ba577ffaf14f9a0475c8f056653c308879ddd017ec8be26ad8cb9ddf53fdc26337435defeec9d37a669c5392ab20d892a21650c1029332af4ceb5866e9b5ce58620c0a49c4554b460b5dbd26967b8b07320da1899aefd384ab430df775e57f306ec778fa6720734d16fb020992510a3b25ce198ab02e32932be38c80e43b306d72934511b7cd545a7113228aa58cf9f36bc261a2818714537ecadcf628f3ace5f6d42cf9a689a7acee1e620c9db9124157b4d54d5ac5eb8c5e9fabdcc2f5df118e0440f23dcd2cea53d8b10030537d0fc26ff439274cde29cef70b90276c9960afa61fd2e3bc615a8ddc6752424c139f143b2e343980a6379757977da008a8791f7c61fa68e86e7df8fa4e718563ddbb9965ffb424f94888d0fed61401246effd2dc8d4e939f14d6b0cd33ea66912c12013c29589619a67119980f972dbde8d0141970b2ac55064fddc52720e0d0f4c0379840ec30b23c7330cbe7614f1dc369b868367d171d4546a6711da7ae52a9fe48be40ee5deccd088034112c992d9f3aa0584f84e822e1027408b7130a62678a30726b71829d2192929d70a1431739d9e6dfb65fadad1731f707e8f02bc6dba38a4f70def69e1c4cade2913c1f5ad7d67184b3801b6639de45f9ed6a980762b8df74996e4e5aaf817ef400cfe4a68b09fe60f56e0ce191e82793acd98423d02c866d493ae3c02961b099bda8daacc0c5bba9121739934d03b6f40cea08b5a38fea304b8b3fdfbc55b220173152cd8f62e615123b3f316756795c3a94aaaf7596d1ae1b8e552b52dc6d276704327fd39bfa54d2983c70d22da7d6dbed8f13aea45b96a4be6c58a6fd870902daa5514028674441988332e02648008b58469f431dc3c8b6d50981672368c07911b5078faa3a7821a315414e86739876b81d9625e12691621e70548b69b679da0fb43244495d8557a3bf72b7a37dad6814812f4321acdbe409ce0b06dffd004d5bd94f1408a09b5d834e3d19715760c517c6e540be841ca0a9b4c9855f91a5548c06d6f7a6443a50827f78a8052653b35e5ff9e22c6f3e1158d5c83b4791d347aa5daab4d473bf3208333fa1bf246683c707365bc572b134633e0eccfd7c5c3c8e5d10c881a5140c1fd0749a47620f76bcda8c53d4f54836a30258337789be030202b6eef9cc0d935a4230a735ccbad642bf966441b5957884e884c3232d5b074c43f8a4fc0aa627e6281ee52433a8f2a2d4c19d81c30f07c6425daa451967024e79363dccd016ac8c97185d1200002c1890fc8f2c4749d918111643711bf4be5cdb3fc6e981665b37d19b5b3cd67f29efffaccad4353affa556a278bd7eb2f01f0165c0f630706fa6b02bc04d9de0568aeb5fb012dfa1893faea444a37a48bfc541abf56154ec7e6a1d8e25cd3a26a0bc8ecb41dfd79a7fc2fe8a191f1adde423cfe99e470551adf81130a68e340fe1119240a20fe013d3178286e74ae91a1eafc37b2e4abed832159abd7bee3df41e8ac99ea71a2ad34ca00cc776d707296cb164382c85b9fb63df57d3461ab5c9a58240652be7d6edfd7b4709681f200777a8e489ed5804ac2cd1e6eaedbb0b72768278e6a469a39f392e14b0cc1430ea5b3f68704d132b59b5d1ef2bc35f3140a277b9d6566f3c36f6bbb6a7edafd36539b5f196fc7784c2c38efe3d432ad06da62a9abf20bba8f2b30a7093d7ff5686e6f45258a8448e795b9c877c6d4a5bf94a14a3a58f28426b0ff76994887520eb61f9293b6ebf3eba03951490458de3fa0ea8804ab7bc5850e597f51ca7ec1def31a1fc518d29e97b0b4f2baf411852ad537d72dc88200ad06d0ce306615a819a18b308260e57aed6b0a345657286e25f6f8e0dbd10fa78156830223a57157e326509554422d367902267887fbbac53efd04ff3cd1fb6c6ca371520e2c23fabae3fec5ee22915eece2356ba7478ae5f8e33d0957b02d4288178e8bbde04a395356b984232e5fdf9da694bd4a397e9801f641dcde75f174d5550b482a1cccf623e90e4d90baca01368e55f43d7af89592527c4f88e89a017205cc5eed94b6509fff579b0c947f2390fb82cf847d9ae8e15ea1231270787c4268225bc75699712aa25961dec22c83785901ae3c9726c6b0627f45161ad40100c6674f05ca7dea16ccffb7a60ff8c115f5c7b4d16dad9c23a5acd768290b8d5ec8f34795416b33609b8f641236a9f243a4fca3c4f80024cc6eeca0617370d081c3a75aae726f198f0d7644b41e8211e560894b72f607e09ce326b399b17386fc7b6459e34364464ce818975dc61c23385d6a570ab742d097e043034dc10530407c1ed48b132cc691ece4d47c1b94ee48857270454d937a7dce200696a0a240975f3ce3c4961e194884881123a77c15403024b3f66e02660f10430f936fb1484fab3057c59f300f42de0cc9cc980765b454fbf6081ead3d5389901f09d2fbf7d0fd84b024f92e4ec315d965ae293e54733c7e1c552104d841d877b3baef65c4ff9da5f2b8a72f823856919827fcb9d437b9915bc2f5757981b229fd2d5a896fb82b253d16ab7407e5c150fced09c7511c8d6c616a322658c26ff26e5c2c2ae97679283c33b880b1bf31ce3c97288218a1f7d3a2dc0bc0cc677df3a9038c9f902da9984de9465c7bd084cffe9d6b2166129c9dc57a627623c058814d648269ca9dc06268053e6cb20da72715f8ccd8f596490614f692d33c51ea4690d14388d19688a7c00687a0d2a6f3c76c6b9c7a10093294ac1d7fcfcd388a65c81ee4eeaabfbf8b02174354ce9d04f5d6b594465d51aabb6ae66371661badbd488ef28a35058a1c6e3057f290a0c8fc293b597a5ac41bf6ee455fb9d8f54090385e785ec056c67a6134c9b3604db6d1eee3d940ea4b890387d08d426e36fc2df40c15caa6f79fed4057e3cb74147f9712dd05362f27ec1d49e5cfbd1d419b6db5b75356d6bc5b2aa646b3a8d0dd66d746e4368e623ac3e755abb5f47a2f6e82638f299f8b496bc8b04763dc365eb591b10b17ecc19eccebe869c1f644e18158b87922ae6abd9d63867034d1400e99d196c64203ce7c1b1f99d201dfd5b6b6c9aa7c86dc18e9985538b88b965c98b54e310c18cde95b35cf0011b3d48a80017e332e624dfc1461c22951cffbc2253c4a6af85fba844781ea66c4d2bd9fc573fd2608b762eda9cbee21aeaf65c4fd5119310efd7c9622fe6fe588871fbf561913102bd66ca6cab9ce994c9229ac7b5c9f3b1d7fe5dc2e9b176eb7d61c2dd9c257cd1b417dcb3b2e927f20f6884a0347992e3d04c198ec855a28f80469e0ff1d8c1fb351e94ba29ac81a787ab6fe832d173c26ba1dd82ac4444110e1d4d03a4360555c0eac55020224871db0a5f077413079b1a02b94a06d56e9f15ce925367725a1a3823f35b1480838e79d708d3f7daf51977dd331fd3aa33749095a600b1250a1942e9fc363992c87afc7d5a9045f2b32c4ba87cfe2dea395ba1d0cf269b05241a1d19931d8070ba6d24f366828d58f16a24b2cf60a584ce5573b4ad8c7ed517514a08ab1e8e1109aceb1112dc21aac84cd44f52f21e1d869f9c7f3dfa1e4fbc77bfdd736635cbd4db37386680897ce0f2e20470a4f9184cc67d5a99370f3ae49efe9715d31ef7eeccf64498a5b597b0d27262bbc2546b83ec47d5c1aea83f20567993c30dcf088fdabb6fbbf3cea93d079063011e1c7df2b85ccb932c8cc713ded803dc7758d66c66ca2e08f4c1eb8083885de42d235c746ebe00eec68b8e0e3bd1f83b180927421b5cf5b603036bb891cd6f4c11cbb6a1ecb56ebe9740388014d2314a49cd93a1a2d282cea4a527c0494cf40489378c808733077365aeabda8dd6006980606738c3a85f0a244d872fb1e7c83279d593ceaf336563156acff79d319f825ac843151cd0922be9bd1114b6d3365d397e050ad47fead76ee53613337cc0fa2ae1451ba53725d3d0d53c8422f8b97b3bd6a21b960d2f886a450ac08e136e3da127ea27855289a938b35a97cbe1da450a9b75aa6feac7d3a224ed8995f81a978df8050d4a6528b98dd928fb78d0776f8d548a151624f1a013b1f01f6fc05e9c157a4a3602c603610ceac00cc246138ad592865a4a9dbc245e8e614db1500477e19a4274a6803f0daafd42e6b37c78b30bf3a7702f5f12a0de5f18a54753cbd9ca3e20515b318c34e4f531c2fb24481aaf7af2b306634780f2040b78acba5706bb7a029d2a4dbf8f1c265d5f76dafb3ef1b2b30232ccff65ee9a98d1bd87c1deaf1e7b46d652cc59b6f02603df695c61e7ba461147c17d491c8128fa4b50870ab8012206968624ba9c7fa4c7019d472461d7709864e1fd017c2248dcef4395539a1721cf42281a858b71cdc80b04d097495df7cf7db07a7a3cc88a3941888507a981f8ad1332ea23773538a6315620d0ac0a0e90a98be7abbbf1ea6cce25334aef96511646033f265fadd691890acd2adb836b40387b1ec563d6f8a03d58922d6ec80e76b82fcc0c9eb44291f5de8f96fcf81f464a67a0fb42cb314014d4ef37c1946f128c6d306e22e53ae5e18f4289e4683977505ba27bc88c085c1c584a6d272183c492d8c0f3138377e8527e10d6497e8395efede3600351872c48e5b31450a7695b86020ac6117cd45b3c1b71bfc34ea9e3d08e620f36795d8ea914bf2aec0849773a8ac2ce09d875b4c1ebb684192cf354be94e2818765f84cf446909506b62ea69815f7a2957569e859c31df3b773afd9ed350845612fd04ba4894dc5d0aefbe0e1ccadbec49184b36e9513313993ec4a0e127dbb497e785f6e8c50ee37a5d824b380a18969f6c2fc43822dee76629e7c4c22e601d31dd08b333127e709c24f75df80b822ee6f61cdabbf65bfdd149e5ec701da41676969e38d01e234f239048d1e936944dfea501d761f75802cd0320e5621544c8617037ef3915aa1338e0dc396f47800039c6b8e178c4ccd69242abc2504c256b808b9fa749c90ee215686a4d1cb047ee7aa21aa066f207c6ecf9a22dfc7fc14c3e0456a860609554a64c19270aa30eb84da774235a615adba227b3a36636e2d658405a789d87de329c09081365d83cc4ba18331d243c8f9141e9ff971b8b10938715fd13545a51c334dacafc0c28eb690b82dee72c0d43d048ea1c259e2df597991bcd830f84735728762a3f285fe8ce7c9cfd81651e113a83cc4cd98f1eb45d5e2de569682ac636f8219ab98b68efe9a4297e5a4441a88b00ccf55e878ff1499b919dd5f9647e75bf32663cbfec6fed67c64d97d12f88555f387532314c604985e3cc5653b85081e80340ba26bf595592e2282bce8fc9481a0d8ea08a825ac6312e5e96d2f21318ed899251c35b6bb64f7fe7a21d0fea5a5666b8e1c186a14aab74a103d460e4281dfc404016c7028cefea877e173bfa006849450c913e4e283b51cbb283108ec677c778ce9160400d10a2be683be7ead2f55851319e2cbcc0393ad4197b67d7f2135428c98fbd48ef94736b2c859d31ca322bc7a07f015962c99f8967bb35b96fe30da05c79a24c6e066a965a80cc391237c8ac7a97af2ba96a28be7a9e589100f6846232f747f18289186def76921628a666d9b7266018f32adf6919a5eefe861e0ed5326771a60e201f1f486acf8c658f2a502093db8321c74298c97ec47a79e4b3130fa92ef836165e9120070ba0befdf41eab01901db752e8631a522501bf535a6f3d57b58aa7499fb016d5b701fa2140a84d2b3e495e69e2a67244dfb1179ea5270a02686ea8115672e3d1797409695a30a8685e498b75c81459b3884a94cbcb35cd742bce8dc161a3da5b7e5dfd181d4874654000ed1b2c20027711019d2fa402573d04db4bd61d264f6fd1b443e6d9452812f65c09e70bd0c1f06e2732035443113f5124b119239e586e1ceb9c58b26cb9e796d341441287e413c2520d17c0c5c3a4ce0304bb9a3f2756aaa5904b65194fff527794e4d08c00994bf839093323831bcf1af18313b5b6668bfd7b68936f1dc2a38fd8ee2e4a0f3fa58ac5ab9cd2e4fd89fae9b70a840b13532e308332639e01cb461c9c7e81ab7e3bc8ca217c7c96d9abbbdcdf19441c1aa3e3bde1736ed8f2361f9a6e08935b3c3299178a3cbc945b5f5a74c3dff83068257c16856fdc4d959852496efaf400543d43c4313c74c9b1f7e7b0e5ae7665011483a51a17d0d8aac9fe15146b8bb601e91ed518a777fb388d14f7a0b545d9f6a1ffe200e02ee69a937295af90f2f7e43b2a6d139f8c747467599913917ea64e647b973b3790edf280992e857384c7f6dd4e5716f0c363ce88000ece632acac104116a6a58feea33777a1ed7c1073aa6c2013533084dd074c4394ed442ea72b8d1ab007efc09cc307282b483d785c932c19895dd14ce01a003b4ff157663fe11dbd9e85850cd2ff83286d72c81852a8ed4b4b51384891bcb7ec76f0aa33cd5722bfbc0ee6f8424affefb84af15c1635ba8479b03dc3142f87019f4b9c5232eec93fa9c7ada90be0b098778762e32e5393b2cb780e43ca1589048b0dcb303b3853eb7cad3b57dff43e0950b24fcdb79deb3b8e5220af252d93d6d4bce7a2464feea67970ff8cbc72a57e31792beecfaacfc245cc1916f4ebc3c8ae08b375b0a97cb1b2b4a9647647ce2b8d7a21926c820deecbfec02eb248708de6e1de1c194f52776e85cffd709f869553a36e3f056816dc60df620652eb985a78c848dfa8371d498a2dbddca5f972746c1012e3fc7359588b77e1e3d4ac9bc8e1d99336aab403493cb0209064ef03a04c5bb7a8b9f885e9489e20b5d481b797540768423e3570f682392c015c93c84a8fd33a3fda2aa1bbf722ede690e31e6bfc742b4d042a4532c8b59416f1ddf5f86d12f8fc6e0e39eaa91c4ab1f5adb0cc039029855c11bde4a1b06c69898226362496177b1163319e47e2774aea6b44bbf5ce197a9fad84bed778db7d7e0d4e7d5741fdf9e4be0931a9da9689f5dda04724a9d79552a04ad10ae2e7e91b1f803f4b241da8f1b48d40cbadba483dc459f0dfcf8f39e9567e4000d7fc20dfae7732fcbc8a57bc07370f5e2b8336d02370e062d54fdac4ddf1dcfd186139cece23b745ad932cbf764089cfe9e42718a1eb7526bd9f97c79ac8edea55f52491fffcbd950eff06dcc1d312bf6baebfd9b6fe8f3704bfd756faabf2481b86df9201f77d046836ba4adeb2c4af312ea3695742c4838abe1491252f09150070b16811e4f69cac8cdeffc333bd7de9d51857c9e0747f175be69a77cd516d6c7e3d1be31e1918ba89be6a5136b241a53c6cbdfba69c1b99f413df82b4ed430e1d81abbb368cb42cd8171ae00dab0b6e6a7d93fd2b62a3605f0d6678b0789614fd1913459f3eb965df8fb49ff9e8570d02e537d4a8e33d604d2dae2c1bebcda867e562a119adf43e1452f07d1019bd9e329692ab29fe36c990948f3e22e4336ceb5834c80e08805ea320a74e2a3398e0e7e8ea5890a530dd4637ccbea2c411ed0a88664ecd8bef07e79383f49b697f3876159dbba54cc9b8915655e10c3a1467a62964b402b947a2cbf69214087708fd361b877e5ec7beea598b39e018ae0a9171db70ce2ddd64c26d5a10b1108510b63d5d65bae0c129c2aa1b15ca1e8cfeb88866a6266485301d6703ad5306f9f024a99eef06c24b265a4cd5accd909b87e24d78a1bf1bd3b34950a196d219a5a1650973088763dad0f9477e6186fac7452fb5939113136168254b95bcc07808d36525fb18138e272666dbb1126887f27232f73d3beaf8640fa30807e2860bec4d51934d08f608f29701b2466a1899e50658d995d0f4a8fb022154c0285f1846af5714ccd923e8914a5dc858693c72229caec8cd320335c34dd931f6d9f7e35dd6264bfd10a51e92bf2a0c84c25d3eedcaac3a9217d969aa7af41ae4ba00b3a1a2f5d5cb51f5d6580e3aa895a1562a7f5c973086607860f50222be61e1a921c0c494869cc13bbc2ae026743ddac6e028f3c27e0d646661202d01a7276cc9a8c852d1d5f59d14a7dc85bbd3e1a3abbe18cd1485d74f0765a2ef3a409efc0aa4d9e8b400ff84a264173791a7c046dc55a88fa3347326717011799049a708454d34afcafde8674c86433f605eab635b2e8a756163b5c3a0220a328b115f12e8831c5e01343ba882c01387cfeb2a6a0a660a4ddff5d51b72bd31a56b30f18e9866e476190971ba16a3240473118080daff9b82f43a56d565c521ae387e87628ef377e6e0f1212a723b5d4ac0b68aa8fcd6d8b5e3bb6a62e9d5d1aa1ad24af66ed17a46188bf2c69706608ef7ff6d1d6818fb76bcd17ea794559024e9cf0133ecee0823654119cbd0e139846fc6082fb4916f7e4199c333b148109c34bee832c91495034e282bdf7e08306b282c958ec806e90045f913331cfd180190c6500d67d98028d8fa36b1da7db3f37be1d07abe00b5bf7bd101db9e4e1da90a42891a8e6c24a14c00443e91f8a224a3aa8afa7de23b410b1d6b12c2874258c5d848a71359b29faa44bf4a5eafb5bbddab2976f7be572acf9f17b4d2eaceb0e1b4d10fa61c28458b66e3ce8fb3d5238bf9775981648a1ad60a1c9fec7b6099da1a28cfb6847d826dbd88ce160fa208d56a73c244454d8c62394313b44397437f22136736af1fc3e5773d9429b4a91e3460ac52093d4ad7177a46532a68f2a68e9ecc49d655420025fa8789ec00b9ae02064c1e2452bc091b127fa1eaac7407994db5f311cddc84a358bab2987303763281360c939121808d04efe9681a125195c8990bf49e6fd2a0866446f68b65767f9ca9a2d1b6bbb12cfa51e0673b585c39748e5d7589297236180587b7c3151b4d10ca68f2e0c1e661fc86fcf2385329a5ea1a094145b7fdfe8c28010cdfc3b85447098d8d129ae7a01ae7a459ed8d882f3c17a42d1de090fee38e77e93d49da483a34c1c7faa63f1a5de1efa131d0fe306d8c435aef32b5854f0b4d52cbe703be05e48da7990bb84db0e1d41b76410507252f30e51ffec834dcc95b0132a8d768ba64234004d43687cc303f52b9c68ee7bcee56a0d2694f4b7ccef9c455590847e8bb5d61cd36575732ee983a98873d4a8706187b5704d6a1606f0fc83fea491606bfb250c4737d0678ecf35d6a166cbcb778a9c6c3970499531bac86a62fc2084d17f8b95c3573254f7d1d4bc223372f353b6560caa3451119062b9b158a47328356a2e259240df0fcabdd0e3fa98ff32805ba8dfe9ec0ae5e0d6b1c81ac7610891c81ef0b78ec1215ea58ac8791f1dc1dd2b55b6eb184d2ef85391001a97a5649d4004548aab4c7ef0e2529a90697e02249efeb383ce5467e440955f81c3de5291121cc66707dfd8d586e5ace7e58a7871d9c941a991562770120c91809bf809b4d1ba55675c895071dea5e76ac0c094dbfec4be3047215c3aa3047682e84211ba547528ae14bda5e7fad858f9b8f4a3151e6000f409c0a1411820770a80149c5b898694cd646933ae2ec2d4b77925911db9454be16b7f17ee2c6244e6f60168e793e990bbb87493221ff9e4a9b24f4904859b36b01a1c47f31df8585173ab64c1df27eb56f2626478ac2cb130b96b1dd134a0afe4bb3d016225c508555923c81d7cd5637ddfdf275ed9ec907a0041cede9f8222198a19a95c53e08133334e211d349090c60e2b039bee70ef7e671407c046741c4d931235273813c69a6691ffca0c69377f6da2bae857d611d1027f51d717cd4b9ae60a281c6a8e89b92e8a39b4c3365b1539aa406931cc5c27c0f1854dd390d17dadf9056e5d25cc82014f7e4211cc22c9d08e928f41538ac2ac0cc3808561409f6726fabb72f3502d8340a0e038da5daa95f69e89235380cdcb926230dec0918514b4315c0e10b0e857d6bc4389f7ba48163968870978292039086561225a71bd4b82a403f990859fda5749ebbdc25e6009d456aaaa4c893903781be3ae764dfad3812d99bbc953dcd3c8a80a94e53cad31990c12fe172e03bf782a81240707049c3b747d25af2b6cbd566b0bff16ac78f3f15dc24ed02fb1738e9a90704f3931c9cd58e1d81a88e845990170735f1d3998f882a6a45909f937c0de4caa10dd60f1501a6301602d1dc09272510338bdf826fddb05b01dbaafd29a52b732489c81007c4b0d41e96903316ef9321482a370474537e71e73e87097de9b0a720f7991bf0ea2fb0b7041a7ed44090286f2f1aae9142d1d76fdd6d06f06601730198989f66c2a2c6df00da1003742dc59738e3b239f6a27d620681cd169c5d78a1fb23392e8b628afa4f8e752bb3e19735d8f5601f006b0fc86dc27a27a2628927c709ee65ec4bc9687170f693f4f75be2a2dc6c7a589f381c1f8d1f781128065d6fdd3e14add060ce207e73b6ff5aeb590b5116487ee80c2b643f98469580f52258725b4d2447995db027b955b4e5f610c078a4250a35d8de0c081d708d6ebace61cf573eba7ec11ff8f9c12bba8b95c2270fd0fc2ccdabee97eaceb97c7d787596176fd8caf57171127fb829e2951ab4e274cf3329be9f72db319d31c98cd7c7ccf6cf64dd8f051f300cb5f2a90e2df2dba602b9086d2ced1a56120a624cf65ecf3c480b6c5922859d526591fb8b00ae16a8d3a141f0bb24a804aa79ee2c686a04058f915c0a78b31e0d6839efb8cbc442a5a46958f0d4cb9817e5dc179b0d612901f8b9d7326db40a061e729ecbe4b0b84abe306022bcdff6b01cb2a3e9710f36765c442f06861d2aa92870e34dcafe27379e2f8e0a8321436f4a90b3298c3a318934c28b102302f84362b10130ee25055f4ea8625144a0e4df4b85ed93765c4f3e11ddf2a6fcf680e8f229857f3b934f17c29cd4c2c7af483021a2585361a5cafea9b3262f0c335063b79b6bd2971ca5d8f8c4ae1a30af32d4c899fc4ef27f85282f6897f944a08c374c17ee607a1106698def29c78c0a170c61189e04feee3b490da341dd853b42d80c2b82eb788139f955ab56dafbb8f3fd12cbf0afceb2008a11dec568610c2499a21c389ba9459c5b0f241428ecb21b2cc809b245cbd6b54806efb863632185e223c55e08173150cce9d685a128ad9aba67e724c8c49919791b66ea93ad21209f50c095da1db41970b8a60101827a7e49c9cfc65b07b09f482358e37ec4459c1c0d20b635263b4742b1634c83a26d66e6fd876240280432bade04f048c15d32d374ee04f6568a3987ef50e234492daf9a2b56d17deed8f80c805e1c4a692f1071abb8abfdbce8a98a15e87594aa32c2f9e204fe88eb2c5fdaa8c785f57aa0e72e05775336faf128b1646d590d5ff609d26227eb49896aba42747abe61d90168254f94eb5d5cf899b6ca48145cba63c1cf37be5f416e5726ea37b301b8603832bad474059524dee06fa8315a7acf15a2161100accba15b63eeb5dd64c406475b480f2efc24214d2ec930c34a14e00da3088f4b635e5e753143c58bb930cb7a0a01028e99be9e2f246be28b67002c83a2c46a7293d6a36895c9a9c1931c3f07696e387ee8c1369961268b1f3043e093f04f395c3c4b412aef1e1090b3c71ca6dae93ae58b0c9c3ff7215c3df20c77512f6d1b01bb3c26bfcbbfef975edf254effb9262fb544e5c4ee6b0fc99ba3f823f8ebffe8126b2bd062770c181b18901d91d55502c9a9a3c50c1fb2d7f4323eb165ef784e116f6e550795a252e38d8241e93baea5dfda8b63ef60729f4ac2e2b5a0b9b10467473dde8bcfb22eeff9f55420b6abec2d47d7caefb6188ed4b19e2f82ea3620b2c1da495997f47da3764ba859a04cea91d3d1b0da3ed2ba77483e4f1ee407292595aafba59bd092ea2f45a25ab32563e4c04bc0ef71abce744964b30df3484525f21b051d5047add7524070ca48ab85e4705c98981ad67e121d72f6b0f28ea130813432d4ca15183fe60c6d3885169eb505f383034162ee2b969194989607fea48bc8ce06ea914c30455cd55eb6ca1dd65dccb844bd03d6eb50bee7528d2c9ced98e3342dce6c61423b0ffd4a44153108ddb168f6603444cfecc0dfda006d461a81c8d6758579475ffb22ddaef10f0db813784fc2130ed6a756e4142455b8a15b95f2dac8b755b17eb9e5636706c515df56f6652ceaacaf543de3e50c3f434415c93d829532603bc061ae4cbc2b88b5e4dbc2e14f019088aa010f4875e0e9d278cbfc131b0afd399e514519c31e9b51d227a84129da8d22d12b4b98432e3402d80c6912408ea9bc293474df2f284ea436b7c76c674de1512dab19cd8196e21ef64cf2a9addf5ee5763921af4af93fcaf634c18660f371d2d31b3ce86f245386d97b7371f9b1d5e1fe56ab329ed42100aae398726af3e3d4a5062185403e6ee9581a12814823ee855d0678c423391dcf6aab1e1cc7442a79ff311dcbc82c02e6fd8652684cad00c9a18a83cb341c0e42d648eeb4ce629d1a8e92cbde401355279a648f5d4fe6a244e95bd637b07ec95d9d2e39a64f29c58b9b884c976a6f5829802631b876ebc1c38c84521c60c80565942624599a5ee49fc5674b3fdeb20a7155d11cdc94131ba59fb6e32133b4f7f831eea07c09ff2c645e5a6ef3470f62b3d2ccae381f7861abca7bb1c2ccfc81e7f30c0f6e32bf28336276f27691659c961e40df52aa5a059e66a6345fadc1382bd1f508675f8a7511003c5c7489aa23a150de96f6f00aec12fbbc9698ba7dca35212df8bbd0a49b680e904221d21001aaba6de1ffa3dfd7a943887b8ff6d56212c7ce0baf71027dc8cf5830ebf8848b12ccb0692e6297d2a92903e909c0acb00aad19b4702184314abded4c9401730a8ead1ef35189443b04d4d12cdc94887a2bfa9c57fa9f30c25cfdf674e1e83d6db4d25d3c35f82c3149dafcc8f3ff95fc2eafd19084dec2f5fd5cd1fed68838fa4d4295c037fa2b9123506c2b56b9f2b1419a1fa4866bf8df282484a9b41598ce81e2912a3b25e39f211b1251f7d5fcb14f73d6fe16b97789ca2fd7e546a726fb46a2456710323bbe3da033ddcb8f9e68b2c4ca2fff7e55a43fb5a1024c50f5c20b93acd4b1e889c979518a886a9b405cdf908353be5515acea081ff2334835ace2a3919ee26dd3b8ae547df02442cdef84a7bc795184135873f5d50ba3f6d819dc4eafad5cad2a7736c016556a4de82526c2939b69e5f8b0b9ee956a5a23d57ceca9fb89902fdffc47fd50086002fb4a39cde999b5625eea0601a055ff5c79f563565276778f47f21280fa98aaf0b5fb3aab6e9d381e6ea62c01f7ac2af8105d349251c3b16f86f17d52f64e5be3cd9b18329a63192985ce65729960bcf0e259f78e322842bf379f68a72ee6881351942872b673501001c71c6f727bcb00daeca47fe833fd52be695d24ab23ceb558ec9891761c36c090c64dae92fe715ec2c5e3a090552522090473ae424c502a9c87622f24a1dcaee01e2bb82eb010bdff856e8750958bcb4ad3705d202a4532a721c8454cc2ce422509bab4b5bc911190cd531feddb4eb71ef5b54d90fe94ea66fa2484982885a22a4befb5362c8bf053eda879f85c7f693e84a7011c935bfa1e9574693b2d96c9a45ea19813a2ea1cc36af7c220518444193cae19e269e1b4434e3564b2e0ed289d78d83c8284d5c57429d76ad65d75030b6155326ac1181d7a5f971be1a5b3a85e13c45479694d5aff446c749b33601d28a3215e3b4e75f5a41201f4c55617a273aec3ff1c92f01fe770ff13094edc8aaaf08e967d3da9666e7ae7ac4ac22bcc9086f54f84f57cdaba80749ab1a2ec93960349986d10db39711cd8a9af6fcdd4e6b50f0baeb442d1cf09aedcb3acc02ce34cc8e8791786ef8ac0e6de99c6c440423602e403f8473c23e82b6080a499b25c3ebc559d8167b9089f6896efb498380b1144aebffa88a3791a496bb519ae7abdb023bbcef1c133c9ab308d0bada1cf4361e9cafd6409c3498cda74bbf1fb404669fd61885d17f7c1d53766b1d36d347da476020b44315b751a75a25c8b238a7d806a32d3455f60e8b59eb88867c0ed59b412cad0fc6838acab2b22a9516a1e328c8d119efa930772690a3d6d62bbf0f9978bb9ca2b1ce274a11895ae25e859405877d6a9c69b98e3ad939ecabdaa70fbe158f111359a925ac1c39f8dbc634542fdd9830027f587a28a62b1c34ecab9bc386454a00ae41d42af81863bbae85da2abea2f1d1cc151cf6f9f9f1bc919005273d4e2321b643b55c0575c5477090ba51ac5aafac08f9fbc0acd3f273df85aab79a68397d85743fcbe085de5aa44ee1c0f8ad26561cf4aab4678139e43a04e9b7b252d95461e7155f449329150d433659ab79c14deaac2a52c50bdc52615db12a5ee022358b8a57f30217a9b056a4ba57b8488545c555bcc64d2a2c2a52ed05ee526331b5b872f7ba902279c2f51dcceaf3f432d9d07d69210ee8e5774c8940299497a7f2f4f21b25c9ca04d7731868028a1eef5a49024b48c7691f3cb5b0ea17837780a2437484dfc7d9c974748e595054696094115802e189125e86db8e07a3e8d22971b77854b65ad15747b9343794e3a5b410fc51450e97966c7857c9f8017751864e9038874b20c168df3be5c0e5305389c1d94c8c9c03dff0dd09130c8bac704e30bfdbb534c9ed782c6a1e85436a975fd985ba644683d0ecca1bea7b29ed64d987e03b1773586933a61d16c100804c9c122d07b1a6510977536a27980519cbbe3e8d3c7bf4a57bc7a1add805bf9a089e1b01a0fbd485e79c3c0ecd3eb946e30a2e4c4a689400ae43424fce9129f83a32612ee9a75ce410f3bae536fe9445c6425486ebc9386d8d6f9c467c2b8284a8b52a93ac64e302df3a28add44f0bf42999017307c1a46bb637ead0def66b2c1c874b850cee46df0ce106b40b4f3d84c4f0a6cca478dae34e7b7ba9a070cb592ecc65f774a0392b4db4bb50b704c2aeb14598e4c4e1bb9e3701f431fe8d4ceb0b59710c2983060f678f4051eed02c4fad586f1474feae9b427adc76abcea75e643f8450aa2717a9458b6437fd2c5e4502ec9f8ef4350394b29b58afdfca0d4b902d6f86a333caaa22bafa465a9d193e7e58b51ce56c400c4819cdb831ec59443b683a4818963286cb15e7f1cf46a38c81d8b9a1172aaeaa66f945d1e1455cd4315c669c72303b7036becf0c1b26ca82912c6a745d26f28482e3181a9b28f3c34e4ae89f1de4a5bc3d2fca18a8fb9072b867ea6e5f3226a567e52124d6f0f38c88c90b00c3cc0ddc8ade6dafca2ac52863d0c8ca6adae120db28719d1bea09ac6e2bdb665e16c98a506c530d64c82dff7a4e060f18471776b470b4973b4bb6253919c3b9fe79159ff928aa89624d265d19830aecc32b58393e9089abfc9531081f1684c3a380e9702462daed737609ba4864d2107962d8c173a33026a0baf5b8d1a046a76e49c8d4193725e9a7fe97174f2f3c31fe5b4cabdaa41e414c43e14e3e9872ab706e3f448385e16ff6b91fcbfc4c51bb298f5d263a0a340061d36983911e5bd9d7ff2a51bb73a942fa28ef2ab2e1ce2e1439f25168e69ea238e5d0bd8b3a676dc6d449d5b4a3cc93ce2e69f70421544fff58015858ebfc853ec930cc1cb3cbbac40ce640d1557bf07c71e254319c21204af1cb9db93f7c719267fb69b5efe06b52a00e75003a0adcb1f1e55b19b6d5f187e1a615298e17ae8dc625740afe1510d074894d3da732eea017d2ebf35a3ff3b78bf955491ab60eef00a041665c502ecbf7cf8d3785c423e6f5d5a28269d6529849e7657d4f32513021ae4f39c95a621138339ab99ea1402bde8a15262f84c9032305be0846f6a5cfd59c7ba16328c99a2f02640e2e1049c5113cb51ec202dd7e06a80bbbc87c96f8aa15067d7d1936540955aaf34eb63a2fee40f35aa43842f409507ff3c59603cc5cc87d870c8e32e084369ffdb413c17e0d345a8a06d13727c490c1f2a41326c4c738ff75c5a800e42ae34967a82de2e65f647575b986f9ec7da1400bf7031eacaa38c2beb53deb82adba74a9a035ae2030c10b05564612fce5bd22f6cfa575de5b9711cdf20159db9ed2c448988afc73065f0622c81f5fe2983a5fea1700d9b671ad3f16835af727172b634b4b23dc0628d0093dbe2d7a77653af4142df52aba23be20307f458e2d0ebb0b2b6ac135bfd1fad5662054eb0ce7f7a77692fbcda29c5a946e8c9371d178648f9d92508b6915ea157ca6250ceac6bb4a6630e410280e1cbd0eff747cae8c083b747ac4a7201d7ac8e4895d7655c51e47344acf11718a40bdfa736d4187203d02ebf20dad241002dcd314ea901a702426f834b4e92d27c11a0967f39924014739d42663374594142a5daf9808f158dc3ecfa3164a12aac65fd1924d6d2a96689fcd3437aa6da64477005da0ec6732d14976760180ef330434f2fbcc596c14ac8ee9e29fa744bc5307706d1774853f2936a165b309310eb1dd6b39101abce71c210df74adfe7ec961b67f9aef03d5133c0bbe7701a9c525c2900dcc35ca04200419e602a193fa275cc47b29a0fcc75736db4c1d08a1d79cc1a162a1b3fdc6267c9818f2a17887eae9696ccc75d34d962f0fb65b882c9c00f8282842d7363a1c5d95914af3053ab9a960e369f3605f516e3840079807ad2e1f6ad1fa563d528459ba8be15d783f2c9e32950f5dc07b98eae96d5f8dfee1a93793ad8c146ff3b2f921ffd37d8b0852ee45ec98f3bea17b85c80d0a3cbc4889760de15550e5906d63821c53c7cb9c35d427ecd15f442ba783e3fbf6840dcbbc7120c9a47f541e55308eca118a5e4931fee5aaf117781cf7556a5167656d628bc97612d30d94029ea149abb15cdf44859fdd1cf817e6ebbbd9317616d6f1fe2ad019d1994ce3773bcd738a3d31942cd07d23b09e71545f959ae5d40b6ddc4b64d18e346a22ac0ef7681d405dae3fdd01e077b528537a3dfd484534c70ab51fcf25fd21eab55c50e0616f7dcbbc173e02c65c65f081ceddf8b6e0d8e1e122ca9952bb7936c505d8a14dc3fcc5bc206c9d6f65bcfd679631ad6bbed66c180a7b8f2eed381f03eb9991d9e98cf1ddb86e0b4780bbe640495344d72264d82596c17ee50d0e46f4be535abae4a5c4725615709d466cce2d6215eb1ada55c297af69013414254e880113669b03348fffb4210307dbe33aeb9b660678f614edd46d3205699a64a1652861c975117f4f4852967f67fbe98ceb6f6b31e8bf6fb2b1e7b3d92bdc5b6def6ae3e37c0808cd9123c752fa7d7488d2ce9c62cc6585d9cef2b5e7bacf4eac35cd903f5bfb55a399dca1cf6df2ab8fe32cb24cdae9aaeb46c121a14a8a0dd6eaba093d09af5d0b8167831a5ced12640e214241a483bd70f78f8a9e6992303bf056609fe2f94aa68fec83519782c41390486208e0e4423669548f765a7a95562564ba012b32a2255cc4a491589594511c64304560b855e2e415dde0a8a1e07fb5b851e7289a58d9532a41e3f7ff42706c79219057f7e2d89a27baba281e5f315659501fa2828fd32de014efe125094ec5f698bb1e24458e97aa1445668a15c712dc18a7580ae35586afb41425c7637a2fc5b8912cd24d1005c3e913d278b04411055a693cf34849fbaeeae536582a35c7b4f00b712dcd7d72ab34a8fd510e12a620df7642d1adb712a617295191f554f9d5c412956fc76a32e6da13f484eaadcd0d95c252d72d1277f66b6a4a5c40c2846e636cd2cc24fdf9c43fc03dc31339e77cbe948a0e9aa073a1007e6e9a6b2db890fd00be4b094c8e08c2d9b720840eb5b6c16e2a714bf25275f5e9857d172b2c89698584cf1ba0768a3514e17b3ae2d4e1099122dd70c41789d5ce0636e566dae2b62a7af0688a26df09c0426f2a0298427b990f4b973a5803f328d43bd7df26cdad877a852510f75f010fa7a15dd4c04ad1b5863e6356da43255ea142cd72e884b3bca40db14afa1615e51a7762b69967449b7f91de5fc68d4e90faa27cece3ad6de7927d13859ff46a52c4c81687fe06c294d2f7840b3b5ba75249896a32853137c04bd92e4284910079ed1ba1f4af7c1265e66bd28220adc23b08da7f44b5474a46ed51de896c3b89a421365a84edc224abab5825eb2568894e016cea5e67d0cc0e59b59b8570e92b73afffd1394e25f2cff8f977f802c7303c881b63fcb0392cb5868129d3a9a1b617b79a0dd31d376064b54a422a4d7e444782ef6eb3a3911f014d7cb8376877ee9d0fce67ea664c2ff566d2fb39707a4719b7ea1e5a31d25ea57687d87ab6279d069e700336ab4301f6b44eb6af56340bea3fdbdc57f933c50c416e3cdfef9ccd10fa3ecf200b2df65316b001a612188e167eb846783cf55ed4673d5c59ed1ef64035ae697eedf4b95b96090608d6bd9d9b5229d0c24838070c1f4604c5a3fb596152c63999767a624660d290de12f1348265ae4655b9e87d340a331f691fde85600dbb692f3b7be73d306bfb5a37455d239414f99ea543a18de22da88993fa566f59a55131f01acc4f855cd03db416a1120e10f258b663cdf21892f37ab7c89098ca57da1f22484534054165ed6ca016f0e49a291ce8ba01e011334a7cdee205cbe999efedc6e97cb62cce371d1793d5721d293eada6d525923f2dd88d43d727e4b3a663b084ae6f72cd4d370d9b71f268b84c26e620164756823b0d30b1c4b375944876e5d86050c08c595369e4bb019f12c41fbaa5751bb5f7ecf0650b3b5e293044b22f0eff55c53204a3196eb72dcffb5ad211c380f95b15e861692ab2f7bce56b02b897c42310bc4f4d6235c0975db4e97b03e49d82e3a5b4b44604bed21b0c0b05c4dbb401ba621d912b0dda5d905bca82313ac7d05aad485eadc9401d4ae99bea3c52f7c49542d20c0be3c354c99dd0b6b61080a47aee67f722a968fe5976995ac60226302b6fcfc539f94af31d7ea0c9df983a1a505906de4caedd18e7f05fcf58f8aafebeb43f017dac7bbf91fff38efe8a9c67128bef5741a17b82fe21b3f862bee01884ba8cd47f206693089d0e5811768b29433f1652fbda1d76583c968cc126c9a60dfa17f2036162e495a6bcb887ee53eae497ace395b90b3445909f7732ee3074ccdcdf4aecfa13ca82322e1f3b1e96e7a23386f1ba806568295989ba345fda6ad522ae353ceeba5ef4c0cf6b28ac8be99c0bf09ada2f37bca83935f78a34e1d1879087d0e5e1d63548af33d79dc0dbaaf2d57c0669125abd4129a24577b9b19dcd82dc09716780c319fdffa0b475dbdd20bd19390fcd483d6385cc3426456716686f34a5b79ef5683ca598d18fa169cc207cc1b0cf2087b44fd9e6666c6aaddd9302942c7c8063f4595e37a60d02c6f5731e42c7029c6447343b5b9a1a5b01cad742ccdde37f456f16cd2b0876a2009da351574cdedae05ec6e8c9c2441ebb67c1e7744ead2b58d052460387c9a0714b1510b2d0f231307580d2bca060db2fc89225a525e2d7b3fc78b9c181b91e75de32bbdedaed2e0188dd3dda4ff8167e917e2295a28c83cdf45462f42aa8db633a5d7ae72550c3b075470876206854cc0721a96406e1492d11c5fad1897b30ea3bb961c71c909fced2eba917ca2170ae498b1cc75dc49bd5d433c395a805768ab53e1b2ddf8c2e2fd0ca495be337b1b7233bc23d6e8c1df608239a45c55024f3d5c32c290ad49877d180596cbc37519f3a9714cb73dcb04a2909f1fc5016be155e4db1214d36d0edca412b42334b87e5704be8cb279b5416d3a061027bf943b99179220feddbb1a2c7a7a0f4a1c598848ed1db71a09cdb1822e5794a39de814958502fa85ac467101cc05d9c4e8ce8b26767e3457fd1eb6f48d2197701f21cadd8a1471cb33e9435faafe7275cd7addec61c0464ef57822f175793130b46e2eda06853ea3df14b306129fdfbbf8eb3f74df916cc7458eaa11a2c8f802d5d374be5807baf055faa8f4f5d0d354308d25997831ac5c88e1523e1cc47e92945e2fce57a5e5ba94c85eb45e1e72e224e7c9cc29f56ad2261775524bebc7c91ac08982ab63a2df8eff84ac1fe94e8f4168e9a0d6789de23d8d85f468df741e3c9001f807111c8964139958d99e2bee7e6b6b2b50e90860ed63d1e7e19501a3b2311acb953006d291ba1051a38969d4f7a1e65ac1705b59cf6b15bd764310c63ff35e3d6ae4b7bcd7d06b920000a49bd17183c6dcae04b6bd93cb11ddd0ef773bd6d1a9d18c81eea102fd4879daeae40a0679918a06f0dbb32e77e77f4b78c3eee6dd5e0e366e046856acc80b0859e1ed6b7f2cfd725843cc9fdb5badc104483e23417ac76f9044908b6a1ce1eda5168ac6547ab8e41328c6c107a322a052a94ba899eb69e0eea6cd6204b7e40f3358230b3ec739c64a30857c4e4acd4202a0b4f65fef59932126221d492bd9502012a4fcea592e46d1d16961758d03f992faa6c4b7823ca0c67298ffe4b6431953ae812b5cbc22afd0bad255d720a65e44f0313b39c0eeed44013445940423cef46511b0995504bf4ee4fb9e2e8c99325da731f5a60671a179a083d4e62c0217e73f408e394bafd266b482011cf6509617ea53363988fc0300e59f9ca0cd61be1fb4c9b86f9b5def8fdef8bc04a89107570fe24bc891feb900d8406f16067aca406b72c6fda8a04076dc4ca9c706fc99193500dbd5373c7602fba803549811e8ad1b744b4208ada41d6103235d9b05a2ccc5933d1df23d298afa95b428b1f92f281750b37891b3b466dca430749321e9128761dc2240d2b00135b8c1f395ebd3908702cecc311da116cfb6761302656774fd84b612240db96c161528cf1bfac32bc58f7d306b346b815f7706d9fa0f463c9d410c180393baaa5731c8204426c3ab8d2cc83bba92d76a0eb275f7b8202641c863cf52e219a87c4f4598f6afd986724e0e8e1309fe04fd3738285f878bc308511ed245239920a9520c8dcd84a30707272774a6448010d1d0ea0af73571b42b6817014aa35e2e742fb115ce0324fffbcc569fbe34a7ba18965456b0d02ebaeb93c80a6fd6579f693c632ff9dcf170e3b06372350f1439904cd17ea61094f7ea8e8c930d015fd0e7f6f7b2d611626a8cd8d1720819a4021cebef3d177cc55dd2e3ef4682ebc15a8d0550e16e0e6f2b301ae0a22beb501365692dc7f033c5a61db4c99fc4194db781630498e80b3ec7ef778d2bcab28a4d527f994415d3c002f897e089256c59e40d050cc0b249307580f4f7fc14c41d0cb9d60904c11592a8fc6b52254bf586728ec9ef2164437442f9738936d1f27d5307b7788952b30bbd68d727ce422d137b029d0a1119f783462740d018a60c2ba1d5a89858dbe3e51eb7a90da12439a4088f693184bb3a4b30ef9887983d54a37cb09b342cf2a8435cce6d21d71bef413c8fa8c0e0202ac724e86355abc3479050094a536a7b5b91ecff319a2e9d241046051079765b10d0fe056a5f89e89ea39f7aac1ae137d5c5359ad5aa531e4090b458b08a33e04a7f093f8156a0f125ef37b77eb3b7bba5643e789f2771016ea6c3dc5ea15c160cb752f6049f1bca072280f861db19abc7da29b01d53d3e4c1e851438cfb7859dbc2a9616686d47f10e5c72cdc0f0358de11c6c4ebaad9f9509bb5afaf4d58b0ca38bd13a95b4cca7f57429e5033085dd92588d9021773c89b150ed18bf6871ecbb6f416fc30f41c516633e684c93385122c31eef655002aa338723e4fe4534cb22b842d59cb24bddaa167816158f586499f743f16df46fd5e83d0f9d1a1ec394f8664b2a6890ba5074fd6cc68704dea18582e896dee78a443aaa66f45bd6af79d7603e1a6fc57d2d776439b912426fc4d3f38d5de56746c9b41c23445afb8f23cebf0d99b707bf3c556d76606accc00ac859e30b6cf6c61fa2dd19ec9046d37f8744c0d8689e28cb95386462810e30ce103604907b667b5cbc05f5dda1ec00fc8e475c67975994664c45424e38ac42106bc52f6f65966eb62ae1979d078e87651e8d455a02d0b6fac0715180a8524f302734371d8d0390a3cd6ac17b6b488923ab61fd6bd9922d2183fcadc9f1551ff5d6af547257e3b958886f56c4c6d870ae1f4f7f5c3fe8c575b96e35810e810c85005e90c1612186a47b5ba9bd6ac61fb44a447aca7612b690969dab0514c054fc6d15c5820a38af6c37d5a0e8ed27ac04c8dea829ed0fc92d7e6b446ffa535a577253fca32a89d80f35f2c9ff44fa12454bb64830d60f2aa4e76a175e5c7bc109ce4b51b725a334dca68c19712f2a12e0aeedab65a67987392e58bdd43dd9fb6451a0942c83eb1c9d316c896e5659ce9fb524271c3a8d59b6ac7ef9b0fa98013408c4687a26518666105aaf5dac2a5b7e3e6b5517e4d733c0e6a277651192487734a50ab5531c8c70c49eda8b1cbb4bbedd58b9598dbf942b34afa309a733580fe5edd6996565483dbb4793683b52f3ff3d5d64531676259113a605179ce63670bf89ca9f89c5bc24e5aecc3e8d86b29f0e336a403ed64701b9f5511a9a0886c66c6661c4b7985e961eb59773625ae8a8f053d7d6588dc5eacc69643be608c836427df58da022f8265f756aac564f5c205889b9e9c4b9af161ca44ef0b03fe276ff3078af0c2f015817735999166cb15273045c076f4d785c9aa5de224dd4055a21a9c04492dc63c38a885e8131f62e98d4bf989836203e0f232f2618e610f78d1132143054ba0ffc14a89e79ca773788f73a8b77bc7b125b7d28f50b311ca64e0f8fa1953f15d9504e5079945a681ef1380e97f77bd05aef0dbe69102ce3033e2d474402f77e4c8865cd1bdab95f2181ce2c9980a7aed74be51246f6d449b69441b122858c524d05d0ddedbb9f3a00fe2fe8e84437d5a751be4c7cb1a8e94dcceb263c52d7d8b1eecb06c86ace03e00153168734169eaf37513de58f469b1837baff42ed7df27dd1941836e00f2d05bfe0ae432005970e0dcc29425d7a12cf79e948bc608669851b61f3772414ddf255c13329aaea0e1babad881fa4a66ce7b5345c8b1953b75334cfe7ddff57539fc8cebf268781fe8900370c14837c955d9d95019413dc3410d6891e0052a036de8f1432841e74750a0781e3e03da03ac11984f9fdd3e40135811897dc6c2527f8c8b8d8802392783760cb47192e16ed21a5902b205d35f240510751e02f59b779e16825d4b1a24eaa50e2c0776ef53ae04c6f692b9c55b85ddb6e719e76a14437aef1438e1ac8df5a954de2660d0f5e791b408d434b200becc5e92ccede122ff5110d78beb01cddfae886af23fdd6b99edc64327382c4422b5fb4a16f7fefbddab7f9ecc9deaee948ab46bb696c4aa2732419516fcdae28eecbf90b37f751224635990b001e84694c69fcdbfafb1b7cc59e66d61a09f2fda5b39ce1cd2db61841166c54736bded7168669c0a12d19fabb000882d2d0c337f6967c4b59996e91a8145031fcd09889fabad9020b153c3e81ab08fcbef5ced64794b2e321a8b9055f5ec3fd09e52827d154dd9a460a12c150ebe32396cc1d20582a4147c7db15c43849f19b1ec8fa6d1e969343230b13ef6433fe7a3e962ddf544cd7341d8444f6c7ee7d0273d9c92812bcabb15be83251961d461abdab416864d465549d009788b15dfc68260b2218875116e66440462f8515e427ff60a1e617ded86cf12ee063d50c0627d18b6f06ecb0706c3cb225af5a238476430aeb3e2636f4d3858b92ae3522bb1564de057ab7b37dd596c8a0d028672cace44deddbdd4b40fb5c75089865a8eb9f3dda7800d1b529e8807b8fc91d5e3112850bc140e9a183ad786689ed7f2c61275530d22b60c229c71478969d6249fc290e7d7837c367a3c7c34fb39a0463552bbd4245bc694bd7540b398e3a41684a1d09e22710b1f5f1308de0bfd2c678568ebd88c2f11cb259d80c98791e8ac6e7416771d9c07b6f7d4e24482c45ecb06f826d6c18e025b47885f4670c636386207d98a10a357c10d6ddb43ae449bd9ff70ffc7a63c176579707f2745cd8b826ab31926dd0138039a910ac887b1e2e64270623d160cfdb7f5f85caf938763c342e46280aeaca6b9c677dca6c03eb5c9822aa511c14074bb2722b063a0d264ec41f940f13a2a5c1d10ec4112f58ebccda080fb40de0eeeb29ae49b8ccc7698df59379939927e4ecc61fe039d04b0a7917d42a98a09df2fc3ff16ecbbc9a12ae4c589ae8082cf87ed29adca8fb6e89fdd8ae688ef1cd8af5f80831c1abcef167d765eb211b79dc55e9e7e542a4c984c43c3485ec3570828cc3c172cca22297f8ca7ce2347cd8cc69219c8c9e1d4ff06b0daefb4d811adf222fa249de510da0f84d71e94dca94e7eec7a12a148f20cab16e9ccbf54a4d3ddc142297ec05a822ba0c970b93df9bf74c8d159edf4d3052123568d9040085c22fc40e10c2e5aad2667422d41e29722fb51c0f6746d174b956bf414a6ff80ba01a92d3701fd4fa10978ac90b003ac9002a5fc81d22b67aa16f8e88ce9b2d21a836f241627800bf81554c39792ef9a1a190da91be7637348d0117115456bd536541ea51d730b123d091b334c969467f6d0c1db3201209216299982432f57938f6c23b3a5c7574e84b01de61306f740f52fb2a19c959321680c96f42cfac50f0231a6b4ce45e78b362ef45223df23aea04c98f27a39e2927c86453196d2245fa244dc163cd1d924b4b1e8f813d29b3431c7cb7d34384c35480be4931910dd50e75ed64a171c772acfca04e963f777ab531a51806d55d5c954481c34ab8614cf7643f4530c6b65dca497c12635da3af3eeab7c15a2692aae6b876819ad4e9ed6aa28f4eedce35a86e51f4069cfe5722e8f836f8c3e1fdbc0f7a4c8b3ab8d3138ab4ed4e45eb1aa58ae046910f402ff2b41c9a3a47ae7120ca8d061a9d577d2d1ba39944e729d8b6b2c92ccb0f4e417b135426da1160a5940ed8f23c6a0166d9ee4e9fca5c2a7444b77f96c67ca032d579820e4d1a261530800959c755614377540738d45e4a4ef9db6ae4c730ee13586603fff12a2f605b150433b64d90c385fa78bb74647ea144f8ca17518391473b75d08a8024a8641e7d89118342ebd56ef20ca29762019df61f5368748a74fb7c2e733523261076f8f92e7811a109712ae93895074d813324b00dac573df4e19b0fd0dcfaa0ec8bb828b00ae1d982ca21dc8d3276e0df785873feae16a405f3331bd351477f8cea4ada4b253541c27c8d43a39f8659dfb14a8b3d0836ee10a49638b7588c68163fab7790cdb0a6c7e5118596a7f19eb812eb14fdf2ced64e3fed688b1d9796d31d84f091286aaaafb1feebcbf3a72742e6bc6a81ee791a327692abbdc15d3c5a4c2d00abdf154d14ef6e4ac6e5dc7d547a2ea2388d07f1bb4246070aaac4750eb08c56e75fced1d4c2be5d58608a204e481f8503efcf9519fcfcfa9373a3bd60adca8262d4f5a489ee5d44596c2a1b2bd3f094b2ca5fb482e0a4e83cf6d089074b55e0c14512ef2bda63f8336011c1211eb9631b45cc07d2a12c1a8240d9407e2a781b4450cd3edd96a41c02ab8312398c37fe062b5acf7a5044b0d54b45fce39c20111a29199e4231ff6fe76dcfd32cd04737d9737726b855c1cc7d1432d627c3802577067b7527ea81dbb940ca7e0391a0cfe8984582a980217258c28a9ffb5a22f0cbee725e5f2b96e871b3d7f8c6fe32518351ea695cbf79ce937aee5d385fb9844ea940f44ccc15fbd42244bf9e64709641d4202b34bcb1de9657b013cfa06632c803481153699a46b5e88b139473e0f8db9d2dcd14917248d98738b706e425b7c982f99255d0ff702c96b41c2a937ddad33afcdb02b3bdfbca6f3706f1331746cfedc12755501e2d3719100a886478005cc531ace0c258f6be91d02353c2bfc85b4a63d43420bc5a69ab4e92d6b1fa6e6b4a92afc525703962dd394c61cd6ba72c970589ac3f0ea6015074bdbd06662d39a56ce2b41caa0e2c7f5ff850628efbd26cbac1350c734f10b25cfebb575d53134459ee27da9a65e155c5ab11dc45444dabb82e67a1d086f067b1b31dce304c7d7349341be05b7a0a20a0307b979301c2e18518204d022cda6a530b9b86196cec7eb77a4cf1f7633ed7b6f265b4d26cef802081c98258f9a12022b1d267683e48591195eb2d76f4b8c5528f44a50793f8862f3218cc423fc4240686291acea3e014ba80cc17ab8ddb4fed41a10b0e31b61d5a96e1586c893f7d87cf904c4c524c6792d2969a4d8dd9576b495e428e7fb412b99a85c87f6ff6181082758a75556ba831f6f8b576378c2d2fa448ef0621fb9910945d4adcd202317a86d6d510c4eb13b51934022542bdab2038c4012394d320ef0e3131e7566d3ac6ac61d47a2902366b8a8f274eb419671e3d920e42f7dcddceb23cfacb1160adbf70679968d1f15949ee0215a407cc7f468d10a34787087fbe517138f96aa528906e6dc54907dcd5bc0e5d63e077e77e0106ff9521a3c2e1860c495745c52d59ce802fda62a210a3d5bb2ae4b39a4e2c44efe3732786bb4da9e4b60fa16a0a8db79df50e0c4621e4dd9fd3773b585ef9e680665dc7f580245d42b83fe13a57971096b51859f70fa851da9f2d928fdf71035f737c9264645cdf1300832226fa87d0f050f6d688bf1258fb865731a7760360e2826c02d9b49405a74f2b3e81c61d0f835e2336fd366f07c942ef08931dcd2b029136ea53b6579a61ee73040aa56caafe4c742abc0270b3c130d44180135d3d44cf9482ecc920f8dae844ae8197aa70055aa642a5df9806f0dd8ea1ad6eabe7703cf6da15c2af8c12f2c14ed3f7ff8e937440771e930c75b40300d40b0cb29a569119d856de692a7a1f00c043ca3dfc5555c95dc06d609f534e35fb85b603cb47fafe60fe37dd045fb076ae57e1fdd9a0d8c0845864e9b513950799019a083ee614b2e4e85d208a720174a1e8f54d2785de9f68534c2d13667fee860e5cc949cd7e816c051b01210ba323e05556225dcc0d8dfdb46dcd4c56f584d596653681bc1b334c274be18fea42ab49cff4ee8b50b5f49ac76c53d97c1628b98c3de469128ca066fa01170f4569f21f5a56e91330dfbad5569dc5894844c725820da0b631d5c722f90d2f043e613eae0eb2c464dfd35d8055e741df36c5de9841c2aa274b4778a5adfa0e1d476fc9b024492db3236f4e1ac3da305963cb954ea2c586f9892dbedf190cfc07e856eac33bca32e9b4902c92beb54cf473cc37890bdc1b3a7f342f2ac05c03c4555690893a332b4c6ffd2691bec5c8b831802261576af0e16fad4f726896dda0379cb492c3f93d43858482b248cf21f981194abfe764352be85b8e7a282f89f0240bb59965c1437a81dbf345babe3657b9c9c78acce7a0e5d78fa2434dc5d41ee25f37d3933f9cdaa48ed0104d384952756c2cea7e3925165d0b70d7f1e52a642818bc58236b5f8655472d54f82312826a30f5d50bbd71643acebae022eabf6f49710f405e771aa1e9a37ff43d3e3493c01d842a1a9be64540f1d047db2f064fa0385d01479e1f6df7044bc43b11b0794578c3f46dbaf724b077b581f244685841089b389c8ea33d328f573b055d1b3b2405387e8994f00b35b3f35c22d2e89a8a9f2e556e735ea9041aecbab3f86e338329c063325103abc731240d88d4b1c3402edb019af429faf240f0eca6c5e9f309436fe6cb1be6f6be3f6540a1632479dc079c16dd9be3681c4c21bb84123f42e7426c18dfec789ba0c55780d786e6623e8b7c6f7798dfe72e7573e6ff1dc1a21a11f996252f5130375d281c1e4507708ea92d9a2a07e9dfc58d30e777f9fc8b0aee12acf9222686dbf87392cdae7d25ae12c65ec3d0548b3ac0ddf1faac14a3ba94f7709400c2a48226a0b22d767b77181fb40434b88fbfc17f7064f34cea0ac6d240a4d414df53322ae4294b0790dc0b17905e03b3f5e1acb6525e1a3942e101fb020cad291ed7b3c6a2e8582ab00fa65625940f8143bf2ea456b52d27cc1b1ef9d34ee4171923537165bcddf5dfbd564e29bc0726f997987a35faa575ff7ceeeeb09b7ffbb159024a262eee961d587fb1bf3d8d0977bc44f87a967601a802d443efbc3141bbddf747fbc8fa8e63505cc2d4bcd24654f47cb69568006318e3f5b2530bb5567e5dc3e235d07dfbcfc52d9923cc7535a8d335c65ca29fda2216e438ecb6aadd3ffa506b5ce1a89c1ee558188787ef26c259e909b100405b4c603e4cf8c91b5309610c4ce4d42f859f843684c0def2146e53e62e6c11011dce4413a3c7f51c608963d7080e4db48739f15e2d9cdc5195b121a43e3e6c9ca2f606b1c54b8d318e50cf76f88e8e3e11128fe1cb5a3ee3e6e30ea13b558fcc5fdb029ef0143ab1c8bb8c64a8114c50d6530a9ddaf91176c50a21f36f11c36eaee9d8bf82de38d5ceef14072672d5d6b5d7185c6acfc7e241f244c47746241e9d53443f1695f6a70a19d539bce1366d62755c683f89a4b5fc9d51f7670b147d96f0e16bd9f88fefb9a8ccbcfb77b15b3f4b18951141390e003129126696d4891533642725e87adbc314b90fc45a89eb82fac2e95e9a0cc1652ed8fcd556f1591b61306aa96dd2cbcc462e1c30f70308ac63ddf923a4a1c0ef62f4ef1f0a3bcf6fc8d14dae608d3999efa667d74b7a34ab5275741fb8d72a6a862c2c2bc8f32ef05c492c34bd39518de3d81d0a5f3416445fea018d80806fa7265231b115fc0e1cb6146866ca6c53243619f1bb6f47e958544d5a05b43c2035eaa40002a44889000f2572b768d3998bfbba7259edcbc33fa9b3ab64b050e0ffe0024788f19981f89ea855322c89f29d6a8afa89b801509f5a1c4e8ca4ccad78b688b45376a0e8560495f933171a739d455c62ae79cba651b80883a98687e62aa1c7c5b01232bcee14eae3662ac3c8c232d920601114e4ebfdcfc9c2418702281de6cafd534c100c3d5563daee74139760342396eb83388cb81f401dd91d4276257346e6086001b038bdb8b03151670daec8642e775febbfca12775070ead8bd96adf30e24e89841b0ce6a5ffc1c8482e305737739a062ae8479b0d31d5514cd411f25c246e9f93e69913926a34877cd47a5a179643127521f56b3fb4b42a466fe42b4c9886bdbb767294e4fcb5a42310104f8a21716bf6e59802e76a61cbd58eb87552340156cd7a62826d4bfcb023455f92e202b257381b23ccce2aa3f22775359c00eba1f282944685eec0687e35b4fce8253a2557c68ebd4a74181d233b96e2790ad6ece17e4305669bd7838d3c0ac8f0753a1cd8d0d10d2da552abf71153027cf1d82090154c943f4c9a4b4cc01f5395c70231ab11af1ca68c58841e34a01bd569e63aa7f3b1a1c6f243f6d2851f351ffae27cf8483f05ad4847f6b2533d9c7cc0a57e972a6467fff79d22885a29474c0ae2d159565d7c38754287a580971d44b0686b4418d8f88000089d8f8a623119b453f967c719f1ccc14785e21cbca7afef858e1ffca6cf97301ebd8ab42e7fbcd76702259659ec8d3b5e8210459481b2a4269a2823be6005d683559f001e0b80fd6ca4ae11bd2d368586fb72f8a0eea090a12cb09791fa7550598a4ae25a4840df2aeb976609481a522e87025014f4e537a9a4cb172545a3648041caadd7ac1deffc80a77668ffc6a94726ddc6c1d28e2992f04941ff8237567ae98aad3cae2ed3e714bf1d667487d576441a3f9476836681d2256daf6fdc70942240813f4889b9f9c489343171725004bc80086b02561f6f043a70b73b10fc88b3bb71c04990173032a8c64445cd36034c3113b08df04aa1aa5076e8125793b2658b40617b914f7816a19e71691cb3c25d840549230a22aa51d8128d7602fa227266e6aab76945b4c9ca836b6b934893a99b91c324caba4c9a9fa5bcfe633d19746651843f4a51e29e105ff61074bd1c4043c6a586a08a8f86f4a0cf74483d10afc34c2f48d89e59c555017dcb22bb920af945c0f6902b23a43e14f5b7bb6e7e7cc00168969518b9772e4813b4aea082cbda93d75903a7e7f19578e7d6de19fdb9645aa701098cf4e1e8545eddd2df27094af3c3481d41c0a5e157b10ada94a70cfab4e5549b4a8d052dbf6ccbe1feaf18e9a43a288415a008e8b61c1243a63188c0ef6d39cff3bbb3f8bd4221ca99f773f01888d04bb7e5d4ecc8b188a1c7bc4f7c41ff5130920db1c4d4b61c968b878b4674b5af466839a3bd0fc0c0eac32e33405728e8649d9a06487fb8efadaf74f5016e2fc7a31fc498cc3bace277023d473271a60d5d893fa1f5459b9758a2c44180babd8e8f174d2ea6a6064bf77a594a905e5410c28fbeccc21b0f2640b8f59c68af68df081ec23771410f72354923be8fd52ebfb59e63c64831afb60720e12106136ec09503061b457c3813164afeb0af68eb7bcb052043989ada1a0b157cb97473cff5c3ad54dca4d86aa15275fff0669fed0443aa07914fac42a62e9b2b4a97979ad23876801728673f5043a3fe13add4d74851c7d6c69489fa3e4eb08eb751568f8ec13e9863975431c2425b666a1d088e18a38976993c494bda99ecebcca46ea22d755e01413abf988a2cb19c05b303629248caa2dd089bf05ca13518cc67bb19be9c63147f89c37d10ead44db46bb7143218d44975b9e068a2ddc09e6ffd3995d78365290c3b6f059acca5a2897633dae5027eb1404cbb3907a7a671a937469009e7a9a30516e60625146f4132bf5e3fa635caa60ab04e8472d3a3ffc302c759c05e4a7f583177b590c40679999d24b084719ba4971a4e7f930e2b6f824a11809e736514f8d00db799230e8bc3840b21371eb2d86423b97142840ca47592857d0be56fd97413785512aa72dc91c796aac0a61777968246b339957e1c6bb3801d196cec2decc8107daf16fa2728e00b3134cdc5f20efe96303eae8b4eccec63618e6bf1ea80a7da2ac2d875b36de68da7315ad7690a9855d8723e1468a30fb5fd9ba61e0bf978e3132fcecdc1a03a9d76509339655137fb962ad1ca6bccb250cbafc99088832a2890a54c4a60983b694b04fcc94484647f5726ca534dbe1c5d1379068fc9d65f2b34aee35e9c83f0334bf00648e630684e1fed0c0e6a28ae5684b079a0e9c33abc5dead6fe7e037e2b1038b18c0be3db4dfb2c85a2af2f6761bc48bce8976fb8b7a7302d91cc0c87111cefedf4e6832bb36d38c8eb603d37c1a9f079ea0d14da278ca6589fcd036bd997fcf929b0c3b6218060c832ad1dc84ccb7a6aca70e345bd133993c1e9302e19142cc8510f2d75b68ee6df64384f7cfd44269f9ad6f0930f7f0c2d41093897677f3d506393e7b6c2edc5b1b6952827764043b440751ce8007e4720e967647d3cb3a9541b2729026ff4943606d5344e2ec43b106c2bdd192dcabab1bb3072046474d310873521a09ff1b88b42ea084e77bf624579c3dec9a3029c69400001a9172e84128bb6245b99dbacd1594b169c5cfea593b07a6c8c5c82a6300c265ae30e40631da548b05e80eb4b3d111c42666c8d37d6f75ca37300b749813c45a14c579119b97000ab59d10c0b3b86c486e3465db250a7b7d29fce0810cb5785039b95a05fa96d90f365db21ec6b09a72d67fb16984b364af4e0c712f8cbe4c93a7819c4f50a5138d5f2004fe92eb1734cd4dc83a986dab951bf70a934175c9257e88d1d9e69206b45a6e659fc1fd77777886cf3be8eb54b74aae395756611a0b9855de42c40595ac686904db722c0bec30944c58be46ffcb1246badb9c98e9333b79f72fa9cbba06128b23e5698ee48821c218aee526886adcfcec5b7599f3980cc056670f1be03bf29c24b353d87705072eff9691f8709839af271b1958f1f28a5dc1dedf36d527a7e3a1152eeb26a69d588eab182a775433631d4b6172e4469219e5ae737b3d2696df7e063bcea6b250fc5381ac944d91d1c148b464776252c745edd905086f4fa3124cf33f9462a263d303d464313e7113a0e596f65b03fbd3315e9738a7a3042c8583a1118144179a6118c3dbbb41ac200e68d339225e70050ea35a85251f953bfd5b94c870164ccd8835906cfa6b0e2f2200403d02fc8aa38d91031342d8ce7f64571bfd8464f802c854df95d73da0a37c160864bc2f54c8c95fcd70a27171788e7598391cf69014f918bae8c370b0e0b7500e793602f905bdf5a8f72d0fb51da83f82880fd9365bed2d8634e4147b03070244e318cd040198ef57450861c137793093c515930a0b493d5f856e9e5ea2550c1fb416d61560598123d8b1ded5441c47429e744b2b7ac4a29b1c7192625e369585bbcb330aec97d180b439570e5cba298d24c93dbf22f648c99d753431ee726d2c4f075c8eae462078fdaae1a9ac39446b9bd0ab07e3997758eda45d670c01c02b8a0383405a17f31381015c45b5862b4ecd4d41a0a1ae1faf0c4a93530e1be7ba0aa3279e235d5e90767d3e1f73d82c1b4599addb11ff490084043c1314eb9d7803ed8b7d70bf200d88c0f99306f22d0105c0c37e0cc35c05d20f4bf150413629338d2fe61ea5f42b3de9b6f0cd3064471e075e62eb9cd3853f6c1d0dc138489db25d9056561abbc7c34362ac535cea1a262fd1a8a392965d4b3f76af804b20141ba2e6e1e1581c584a9149e72ac6e44642c53d0e33a342057b161b43385fefe67dac2f31a0e5ad587604092f3ae90550a356a027fa91ad5a828c1ddfecae8e6dd88cc970a030d1f3451d8ea810a11485030c8db5f7d38270c2d1f3b2185f657a197353eadc6fa32bd597ae1c751f70885e503c54d3c20f4a56ed1f0e966e52164ae68173228c8a75e215abfb35d60083d9c2df4118558841ab5d64fddba55ecedcc3371224fb6158f7cbf177ac4a106704377d5792d6a661199c1add9ffbd15c004ca3d7e42b7e39111a77311fc096bf534bc2724bcd99399637672dd1bf0af668c3a50b3cce93e06913e4503410f06a73e8c33b21d02d3515ab881269f3b4d821928a9146da6079ee7e20f2e5cfe019c5f91ea74a75b6e07a9cd6a4a3b6a227d4e76484c20d615a6c8e37ba203cdb5e11a4768f42de8370ff3935b6ed96587297c984cf1dc535b384de7d9dff907736d63d133e0a8b00281a339a407db9d8f0f9a39e010386393f162e21fc96fb3742f55a6d3456a099e427a047d807078ed2decfb743d0e26f21c7371c0940706bf36ccb230435eb591596362ce09054303f7456010b8f0f3434fd7156b93df408f129d91ecca2b05e16bc92e8a47a6d6f58bc8354f49e9654b74798e74143093a64c12f6f468107ad58ec030f18d9a9fe1be8049b66a3cb21740a8361cf53801a90074619724f3bcef096f16340e05b8aea7076832d371f482aaa996d44bed05f56ecc81174008b1e0d515b48c958a2f0415f1d4d2bfc108f79f09ebac4a2579a720b013d67a8dc4b2b9b35b7a0a63a23d1307589052c2667156c05ba885e9429e0e988161f8ae4201c7e1db60cad18847af226a6669bf771d1cbf3f1f9a5a2337320bdd20e38ccff268124ccc0745b418185753afc7a010f5e009a960673a2bc175c1c1c47436b6d60b992f81c6b09e1f03c85d50aa371745a7a3300ce79a8c4e0450b1069441f7528c14002cca30566d3fdaff7e4ec0533c4c015cb5888f833c50cf5ca6894326d0fe10120bda3a8069970ab3768cbb8ba9390b55004e7418a2ee97764a93a4a99e65296c72854c1c8b6c78c9bebfcd5a821862150d39b15b4b763f38746896c1b73fd1c3d4fe52657942c6c992db7f44ba69fc0662a9cdea25665415ec294751449235f37fe74e36d69dd5e3127039ae7bd578c427b07d983e6116837d0d2e73e2980bb0ccd32567e1a9d19928daeabacf74d6844e07c489cf8618af207460b6b61ddc47338beab24107f1b0364fbb8f1b672f5db5d10f53bd9d87c260c5f5eb3ce4f465be5edd25feddd537aa86d4f5cc2c2d74a30dd857f7ce6deac206c79d1029969a4443990a56ecb36cdc513ab5c37ee38adc6afa48fd175f122ce66d0212980da77e7fdcc52d7036d78daf7b0e09c421057bb05778103a240c17ef7cf403828d85a7cfdbdb7ae826be4f6904d8e78c207105eb4128593f7f7149fc79e94ffffef0682cd9415a80a8acf64876b743c988842557d992e071044b21ed35d6e460c901ce7e652f8679cb6d9d195a820f6579fc5ca290e710994ec05a976c751e0990d74cd11ae5fc89a3609e9bcc533de3477e33cdf6a55181d7c0b3776f4cdbde4eefa580779e20c73b7f010ea577c167f97508b69a5bc5d9054058d9b87c65365e34948008b55a67a5165c7a83b359650478401ae8d5100b2b3f2ef602af26dc6ecdcd3269bae843582f1e9459a0c0810bee60385e7edcf749e51c426508450a9c161343b133f7ce504b1259be1af63c370a268586d9ecdfd02825b8228dca384cbd945038a28b5632a9bd43730dfba020c6351f310c23a934fe25404cba8b331226703391cc5ec67867bb161bff045e3b0cea20fd1694408b49d9e2451d2447628d35d803059a7f3420dc2863b37ac8b7f51d57b0105c88093aa327a9e0857a5ed7dc17487e230d7a191d982619f6019b47b530ad321d9093c285f1cdb159d8423d7b56fe05b40b437e32189bdefe0c0b43afd1007426dea7d9f4ec3a278e58e510095d67b1bce74c7354334e0f245ee0304c3fec6e7c4fa35efba31ff251198730ab1937e15526322007916ed0b0d28baa98b4b914a8cf70df58783e7c0e27b6600f953c88193e245f3165e41dcb223e8302b9cf051b652edb7c0bfebaec8da54e5bf1fc6370ded61ef8271749a9e9bb465ed94339e8b1ff8692f9ce348c3f93d629cfe5e0496f7907d4f947b9f6b2a6ed61c2a55ef463d2f6d8957c548a98decf964f657dbedc2364517bac08d41430813ea58372a327cf0b974f08987c504f50f8f56461e4d662690a906483b0c75089dd5fd344af749a254007e1cb85625c9bb9b853007ac4e8c288a9c6009b9e3eb57ad8b95c88e42f71eed7ba026f6f1efab07cba31000869581a39dfff26569db8e2f6fc4938b1434e7edad27de373d44acae06d0caa18ffa19abbe85abd08105af51539637e7afc2792a240a035ce26025bd8106eda9eabd5f9d043dc74e806a4bb21fac20e02c75c1988b9fbb638a7c9bca09b395257dfd0a5f907172aaa3a970b8b85911837fe12862b292cf02303fd005780b5cd0492fc33bf1fd08ccdcb24542654ad0147eb68994021e6e391eba246975d053a3993c744c41400bb80cf6d271debdd50d214fd51f8c63f4e5e1390afbf01298aff1078062e61be485c50391ca2839ae3b3138cd1441932d6d4dac0e850bb74e61f4deb94f37d8da5073fa9a7682773e8477d733cb6c857d3621ae3a941b7c6dd86f57dd56eda8ba5d39336e91efe376690f16e2862b546e7543fdd1ed0f99c2edc502df92432576b9e52597a09384bd84aeb24e7ac07850e0438b65779a7f13f3cf00840637cc753863da0b4ef055ce3a4d48052a7d661e78e11548a8e503149f7db7aac14f7fd8b0160f32896af281070b148a7df78b0a941a5b786bd74e685db8cddd6cfb49b110fa40a644752fdf66c1d0d88f714ac29f8273fb107c7dbc5652ff26cb2e4ce90dfa52764aa011bbf3b4d50d00c38c62fb669a7640911fb1a71cb7583e2605b3311346b4bec92784ab3536ee824aa2c5a4766409e5a3cc62c8f37e946a20ace0faaadc91158bd142b36d033f79bded22c32a91590ad63746d35e751c4290b165c67ebaf93f54ff9788a929aa3ecc6619233f39bfe3f57b4cea31af7292b9296628230ef1e014663b7d1305800f435a90f56476ae72a19a657f77d3289c52f77f20d4712fb32a2135845db0d14816f8b0e6e4e0bd330b59c5800f367ec55635496a73a3319bbb79031b4411160295f93debac93ce98fab7a75405cd06974a35034510103383f68faf4cfc160c6b219738746dd018c4a6f40bf47c1ad8357c3f7b84f2f58e3bbf53524fb8e2f1865d4e32946b2f647e0020109aa44ad704218651943390bb246820fb8b7a2cd0998f65481356075ff82eb3a315465c29b9e0ee5b78cd4af3d5190ea2789aaa818240a05fe7744680e5820da554d07d99b5564aa1ddfcac797413f66213db9baf81276aa81df87456876ebd370a312eec14420e7558c61373a8e8580f83fe9d37c640f50c6e5f32d92e5bb5718d42fa4523616c5fa598c24a4eddd6defbda59449cab40dc20d200f77efd41b3827cdbcf7fded4f187cd562812681e9db80d3deb779c77dfb9e756e0e9ab46b9ce3fe666e4ebb2eef6b80ee6cff3b375d01e80f7a9e4d7eb0a7c8e3b4a9a6ff02da54e4216eaa4f41e8d680a599baede5f8b6a560892bdd0b5ed05a1bda5aaba9ec21142b682a87ecf7ea209da6ce34df4fe20ddd584485262be6a01ba7e874f794f024e6a8735f31079d9656533964fb7cab1fb46ecb1fb65dd935db19b3bd523b0510574a2ba533db23f0a4b13306052048f19c3e779ce64066d77392eeaead930a702f311e9d364df5b919e3a60b631b381ea791ac562fc169bee751ceb42b11fc5446b7bf7e8985ef6f8b5ec8e95486fb29f2b8baf4e9fff28b93bebff77ff9bc3c2795e1b475723ea5745a236cad37c25e2649fad8f569f793c3a1b3b644b58efdcad99ffbbe535187d521368193e34db5ba2f71ec4b40529be36c0fe6be761a9ca4fd5319a4967469c680dbf66035b0bba79db63696aba9fa17486ddbae3aac482d2d2925fae50ca72efa9a92f434b6504addb95aebd353d2bd75c6d04b6d9110a7ec8fd7ca9ce37aaae7c1fce9db89bd8a031502420fdcebcb3bf9b2f1cbae7113789ee7799eb727cbfe463002b0b4c0e775dc8c99d7569f31f34b0b5860ee38e236223acedef7bcfccd0d6cf766de76779d84a35c7517c1cbfe934f92fff2ff423ee94d1ca6bcc4ef55a749a1a30248bddacbb51c0686cf75de570ac51560aa9a3277555a40d4e1db3ed84deaa6944ae78a3b7649e349de14902f871657af8642767dbf3eecfa93b4db5a0a525b821f2d004909e0489329004939016b8c036bdce5382c0a703989b63f8ec3ae011c667512eefdfd9df354385a21422370be941c268285e8f85f1f76a0b2d4b67308b6df615a4bcefc6b24f17f01dbe771ebc952b056d1860627ad05027bdfbdcefdd27f2f9a4c265d0201b2ef07197fce1851af5654610fa2064c1b38f910ead3b85a51a5545250f8e4aee35fcab7f49ecbd4a40992f2824c9a202a1f0f9326484a29039326080a14326982e0b0874913e4246a60d20431993630698288271f264d90107360d204b9efcfcd9814143e99c4f0964a390727ed773b44f9340e28c0f6757018a785007198eb242c6f7f871a3380bbec5b962606f0348ea5614b65e81fe0bab51caeb1ba83bf756799ce42e3c38cb16fff9b310e4c97fd99191a345cae9c4bd4b62c7a87eab29ceda10de0a4b53c780727edcf1b4753b958051083e4ebd95d19b97cc08b8ebccb219b529de47a9deede84bbd79457afb5babb7b75777bc489ef4e50edb436749296a5cddd10f5ed1203fba2501b4f9a691d662fdef53d5c5df35ecd626d968ef26eab0aab5741655819a956ca5a4bdd524a5dc609b03fbdd5b06051702dbd21ad8f04f680a4b645a2ba7faa95034cdf75fc65f88cafeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeba9cf1fee08cdc9291dab5fee830196fe39eaadfaad8fb7177777777777777772d6c8adddddddddddddddd7d3a8ccafcff8576485406cc3127a7c66aaa6bc66ea6eb662661c772a602662c07d74f96b0ebd3995d6b9d253adde4693ce3b04ed7c781810fef7b295963e3378ea9d0c90f844c428ab9f7e67caa5373ce6f396c721eddf45b33a75ef6cb1e5ff6cbcb1ea78bfe0c2be7c696b16bdc79f07c21bccc9f81cadcabf109869224e70fd6174e76bfacefa49314070d8c932f9b3a8c85c9a493b4b5cb97d60e8263d3566bcf191b278cacae3956d774cdcae1f400b6ebc5c1009c9f3da017e90f63a3879e63ad0449d89f71d81c02126ddbc7c164db9b04ccd9fc04cc19cf4dc09c0d61a207f7b3fefc1baaeea1b3fa733e911b7842508059fd1e3af327e2698ffbee51477428a0fb33083a235147ccd9fc92dcd3e6452698978d192afb7e3e0d95957e3e0e2a037ffe0c54661ff5134c799be79409c5d94945a6d4b1eb875b7cb04eeaa619296503c0fc3265fc4b594f19ff2f7f6b8e93f447e14cced8756bab83fcb0eb18c467279f4d71e72706391042132b084189cf8c2215c1055b042de1810c7630a33fbd9ae8960536c4292ae32659dfcba5699a3ea74c2d3bb0edcf1fbc54fadc95f8a76cff19f37cc6a6bba60c53993903a74c9cb2939e30ba4292153f468a98511748e1760b02d00ebc70057ac410be306207cd216ca1c9a6bb52cc997e885059b8ebd31750d9e9ebd324a80c14a91055728b26cd1cc2ae4f87525f9f12b1c2df99a97c49c3accaafeaaa9fca1e4ea64125e3d4ab8884c0672a5f7f8a0e9835151dfe8e2bfead5ee8a1b2932e93a868da0f4c80aff2f5e9105406ee38813f77a859a7dfd9e1d7a725f0c161a216fffeceae9f4369384e16a132f0eb0fd1a1c654faf5e97226db90432fcc4e65e8abe494dfa03e72aa175847fcf04d5f4e5b7d3a549f02d5a741a08e90bac5b75f521dfb6116c5d2db5605d87e396da607f3dca1a64638599fe65458398bb0ebd75abe2a17b8061d14fdb11614df3ecedca6b75697a61735cb8adf775fd225c41c76dfd7594b8d30f22535b26b4a1886e1d778788170eb843f6fe6876f73f8a6cc02dfbe6803957dda64d225fd32e0039833203e58a249f41063db17338ee9ad2ec5373d9871e616df028169903ebda5e1eff10e28e65244e1931882a505ec5b00ccdddb7c52d1d65d766e5a86dbfe97adf729992691350da24057c03650d9dcf54d796e1c87a174891f3b4983cad77fd558eac7ea9aaf92c7d4066b98cacfb27a74b21a41e5533f67aaa756c08114ac1a76760f78ef6c2174db9f3326409566590de46e1dfbdfd7a4241d3bc5037cef7d4a25830f82b91cf72cbd9c595d7a86cacccfda1a74b02e5f5baca0a6402f660027b4f6436d7a16488196d87487a692cad324726a8e93f5a467f4cb495b04d6f181da6696fdf03b1cfba1c62753fd93a640e29b2a05e29e0239ccf4b3fa75dc62cea1e1f26baaf5be94715099f953e4f1691a2a33dfd3335099f9727272ef796c67c6a53605821362b982cfca48536889ca7c3c2929a52b9bbad681cad09ea31e1c8af8a8311ca222a7ffa23f43ff4928dd7b5ffa5f6babf5845021b5fa50a5341a8d26a45a6103ca0ab8e0441021f8e2053b3dd0020f52901748308526b3f973bef78484f997b1e5a970fe7092fae02efa34af07fbcc4a85d814e092066d4a977058fd516339d726c749fa36fa38f45f334235e87af7ea9003102115480eb58b273a581c38fa5dc6c1beff7032071d8008a91aa8fb470dfaa455e27ab8ef25f53b79354502dfe77269dfeb53fa2f24d540c2717a1c752b807346676b70686872717017f5f183729c0f26601c9ca49da300571f38fc106d6e68ebf7709296b6db723c46434d8dbd288d69c1094b74808324a8a064469f3045124dd880a70538a0cde863faa365b2240b465e18d1c51235dc2725599a48410969df089713ffbe376321c7716278753999eceb5ee3bef44ab6bee7a02ebd92feb4fdeddd7bab9e7fb969bdd4b67704f3f61667c654eeb3a20d7d8ce3aefa38078d8393e4ae2456ade0388c07f17910e26d084c99fa42c61d010378ec87f7f0980ea62d6a1c664c5551bd8833694cbb7299874fa5f244549f7a71e555fe06d5a7547ee56f50f9153d84891e2baffa592bce717ad38b1963ad737ad39bbaf7303e3d2de93e3dea533e0585b30e7d93096b13fe136bc7e9518fd23ad34950c45c9e9bea9717669899eaaaafe2e5982953bfcb42f096993195bcfa650a37ec1e08aad35a6bad36f41bee15594b3d0998fe64721241109e3099504702ad618cbff4505fe2942f479599dd3df8aa9cca2a795697e953322ae36f32a95ac428ed2b9974f9a4a84bf215eaf245ab51da64b2f3c4ee288dd266dc7b0f326477ef3f76f7fe7b32994c68addb11bdab82da962471bdeeedc427ec5d2781b0ff74eba4974048d1c67392e259a636107257af3c00e70c2cdbf7de797fde6ba9d5d3660fe6d20b84ef7baca3d168341ecceeb4134f25d33563bb8a25a66b6efb3626ac7bfbaf09e35eb66b9ccb365bef7a3ac9f7f79b4b88389a2f3b0370beb45eea3843cfcf4018f7afe28ed37e2501290e8751f04b2cfebf885f4d75d5777d2d0b30cd93f4afa955c6f6f2019b2be972dc5fad9511d8c1ed4eff8c71cdbddbeb946a20e476fbfa0264fd6d613cd67257f5a691e797064060c1b4fd4c223f72a84f8119c3a9c2ae3f374e8dd1a82561575c5dd36802947e80ca4c54a6fa0f2a73dac88589855d7fd249855defe5bc0984ed7b3bbfcc98f92eda58cb751cd771dcbdd6da6b03274f68a18816960080f55e647eb2ccaf8c0157970da98cfdf934cf78ff3269ba3dbf6681eb9e3e36f7542663cad0b78f6b6c00d365bf346d5b244385b5f6cbb1c669e57ceceee9fd193bb3ed8cbfcc982e03213757d21feb71b0a89ea97982475ca180e997d8889b417d79647d1c1e037fe2fc05bdf7ea7bde7657f56080bdf7b4a54ec0e374ddafefc361e50c0e0e7b21ddffa3e9ba5fca769297bca50e9b2b7dd81cf7bd019cc4a9b11971c6068c9336090c43b34b8cb6c7838dbd3ff3dca0e79bb9c5109c27470abf136dc02f65baffc563dc4fef3a719757c58cf1be844176a99832de7b15f0cf8cf11e7b4e30fe8f083eed222617f36aa1041247464e8809c417e351f5e8f6483065b3d2b8229b23627b6f91e02a05a6fb37d87946dbcb3376a9705d5f803b3d84891edd733f6444cac20db09875faabcb7bfa77044100cde60c04352929dce55b6b451b8fe2a4d7a9383aeb32ab07378455bffb95e7748d2ab37aa886b0eaaf685b545dde1b6def551aa7ba3cfc1fd7cd5497f75c7e5597f76e05c6cf297158cac354ea9108b6f7a316de5fb1bde78ce0bd4412b70bef46c13cdbe38a6cefeb1673ce9a8559bb302d08b6f7f605d8b35924307dd4978e34a3621256e9b9efb42582034948494838b41e8ff9e0d0681ebb3eeee27eee9ba4285f38c54f973ba6af3ac0a60b78620ed4531de012136d568ffbc3ea617ffc510fb940d5c5bdfd9deb535ddcd7b875029798c86767736fad688343ebf97269f7e7a2a87a1c5a1155c6a1f1883649488eba49fa6e92a2242139ccf5dcfee99b24244c84bac2a4a19b03bfc64fb5cd7d7d4c3469fcb953edb54bdad33d2637cda55cfe80b43f0dc4d495fe537ad0e61e136dee53724997b0bb44d9b8f7208e7bb755ff61e2316fc63d45aab139e3de8772bc49759fea3d4edb1cc7715ee3385ae9459b9ba507e109ea4b9859d22ea03cc162734e36f7d3976cee7621582ad9c7fa3e4a8f6fd263b699950366878f1fec72b4ec203398500f9a728e507cba43d1012bef39b8ba64f6c4ef628e538ba5e2e6f425f1c1a75eede5702ebd6d32658712828f5363ab5ff969dbf8a7d863859fe29fe28d0a0ff04d0fe25c5a0b3463dcd69ffa536be93eee336340ba71698b9af6784e8a0f3e483d97b65ea793c5c4d27137eaef46699dd397fef4dd83a75c7ad06f9346477cdfdce7eb738dd072dab6e9699429b0e9515b44659ffe993cd32d969e6fee697098631f9326dcfe9e69177856f0bb3e360cbeff57c3d086e20d4d5c78ea5c0741bbf4a7b7e2014a7f7a3007b8c17731878c0de2c7fb94bdedb749033ef77ee430f1b977280ef3d064f277d1bb20346977e08b4fbd90128165b893d408b8bc3e9b23028b27c0e283949bee2fe6c81bb4a2e9a910b04371927bd357ceefcf6dc670efcd186ad27ee424f7b3b9af42b82c016dee4b3fdadc3bd1e6dee42fe6a8dbf5f52902c6d7c776a507ade8e3fecaea6bdc73497b449b0986549c4ec26c6fddd0ed95d619ce187f3097de73f7e027da805fcae04f8e63116f60b66bb0b371b243ddb0cf04cd1aeb512afdec1efc2fd349748511fcb48498819a557f67e6819fd99c954af907aa0450cfac94594accc07c0a8289a01978a910250801d04bc90cd43fd4229ca0e068067e29ff3099386106eae937ca30d72322109a81b70a4633900bc13c91e0829e19585a81163f33100cc13c7e4b88d9148213aa609b95760c433093af299e28729bcdd4bc94cc9ce8881920cd7072ce0f702bc9cc3f4014e4332b31788242063f389a81221538b8cd40d3173c3f33f07404298266202ee26806a6c25266416106e65933c1078e66604a08e639c511da0c5c094b9955c50ccc144a11867a66602a04330d153c1134035547498866d36f9421987f9848a8c2cf6cf502db0c1c43304f221c21cd409610cc530927e899812e442560a26706b2423053231f08cdc0186129bf94ccc0ec43c8c1126a33d02504f33c020b8666208c10ccb30a206833304608e65984244333f043304f9b139066600ec13ca360426d06be4c19d4ab0c19f6729df795c050349d300a95a29252adac648c2c2dac960c19325c60c4f80cc3cbcb647f6756ca3b338e7b30775fcadedf5c8a3d4aefe9213a5457fdd283620ff03b3de447753981fd6f4de5b8bfdc74984e49d4c169cf299d2853d9816df5ccdb01752930f570877bea96d35614b884d932c83069666d11e16a6346004ef0c48593462680e972033cd9934e590e54c61fcc81cabe29138b3501a5c00374b03c79a138659487cab8e75defafc7436506b061c6d0106c7f8e52a4d4f6668ca53c944e1a9a0f43c01bee4083d0dbe97276b1ab0ae655632a97999794c3beedcd187f8f0bda92f2e2937377af358f684f3a3f534964dfaf71d7a5907d350fef4d5afe50eb156cbe3b74d884f95fbaefbb17b274781058bd95a26f99c0fe65cac34ae01daad77a035a0f6d6bf200d72f531ecdd8dffb204481b45d014190a2677333f0dde009c43af7a9c6a13fc5d55671877f07eea5d9739241ae66ddabc1fb3af49dbec3002cfd7c29ef6d7ff353fe03aab1d39cf9ec9443f03326c207c31a639558f655402e2c654b69ee7fac1b4e444c7ffa39fb5837a43c7eac89889ff273f63dfd31620294528162617ff5fb34ab87f829e2efcc38560f93e977669c0eb99cb7fdf9406975d21a3edda12e7dec1f760778cee62c76faef716a0cf5dfe7380cfcef7b382cfcef7d802f87d1fdbd8d2bdad422eae1cc073ed885a55c3711fc63d2f8fefcbfa7dfd3220e9bff3df5b93fdf4bc0d30273f1c5fe1ef4441fddf3808026cdf083e007daecf4a51bbc477d8d571de0928b3e547e8a37a4f4105f450f41bdd8c3f4297ac849f39c1ebf09ff802a95521ea587ec505ddfa7603d4487eafaac13b8f4e0a7e4393bdd134ce77e57cf38f9bd0d27bf9793df7fffc361a5ff3e078fd1a06b9cfc6aecc55ddf7fdf9733fb3be91fe4f7df0f27bf1ffabeafa1c161f7bf3765f1bb2f9fd6b93725607d4a04e6c16e776b873839b1c8f16d1c9cd43e668c7ff5e12e7fcfc3781c8b2a0eee721f33260738350603f3d23e035cf3dcd50b4ff66b4f288aa06417ed708f0f858d68833bfc93fdc1f481c3d43d6c107089c1115c117f55dad853d425c5220f708727f1a6e53fcac2620241b0358ee3d8ca3a2e93d56ac17891a5755aefc283f5e18f2f8694074b97be5d9eead26d6cb184a1e797e2b7582ebf7ad5eb087fced59cf4555fdad8ab6fc927f166fc691aa916e29bfe388a54977404459b55cbc585037bcebf613935de3b437ef06187aa9248a9fa31eb88ffc39eb9ac3b7c2beaa89b65d4e5ce1e43d5affe4565e1cc2e553a48dd25dd2c5a675a9147e95bfcf057af1a1ffcd2e5bfd7a58dadfad6b7a0608075e68b3f7ee9a2597e8a3cc49f79cc654bb3e8d26e552bcff92ea20eff456554ff79f5ac8cbfa6b6b4d4a0b2198adf6a85e2affe55427c872deff2384f275dde136fc2d769d1adef441ee10e7599819d3d7ff5abe7449bd598e79ef9725be4c01ea94c05fad619bff5531f60fc965737951eb87bfc4c434be9bef3b6c2eca2597e953f9d7252b55af9ac416556bffa9aba4a89aa9fa28eee68afe8d1d6f0dc1454d9683bef098511b000024eb9bcb6e124cb53d1c645ac416566a85f54a60695995a88f651830a60fed4e5103d3e18e672f519d8d96128feac21e62075afd41d963f6c9dd6bb844b70f9527d1d57af565efdf7b9bc2ab3ace4b26e97b7354c37fdab1a5ff5ab0c5a51d4ac1df4c5bfa12ffece0e73eba738c7bcb36716e2bba56b501995ea6bea2abbe8140b0b0e111e59f2dc602d71fc00bb6853fa1c1bf3c906413a4bba6798754d5dedec95a883d429ae3e7cd5cf19da5d0af11a54a6d2e116b598a728be0d31cf7267da58e5165dd2ddf261c6affa17c66fc361aac7eff3c9c63cc05d83ca84aba96b509910c7612a58cb87ef03ac23fedde574c2e36e5157f1475ddae89183c3c2f0455d83cacc30b7fccc2ad39827cbb77ecc539776b77ecc2e2fdeb0b47e25d33d66979fe28dcbcaca4aa6bb355d7ee5c6e5c7af71969f79fc95afaa5fc9bec70c7e8bea6b50d9dcaa77c9a5109f36768ddb1e803be8349d9e62ec7d2af52a181f7eeff2ff31be257f0b0a89ea671ec3f05938f4a8efa31aed587df8625ebd2a9743b66ac7c86a7da84b160f96177f6e5db25a5a8718fedc43f67cd5d754552e591e35b67eb2f0085fe4b17ad58b2c5ac7ea55bfd22a3d8a25cb83ab3097e2abc41fff24e6954accabf0571a8504877afe49a575567ea575581fbe10dfe1cf5c8a5a88ff8f1afc9c4bbb5bbe8a3b3c96b64ebe7efca12e6358275be6e3a7e201a676f9dee573992e6176195f54b97c387f7cf17379ecf2e1fc51a54bece2853f43182e1ac663181f6618baa43b54fdd42588f3fcf0f1cf570967a8f2a1edc17cbae78b7ae5a9f8a5add2517d6aa6549f025379fcd58ef8a3b8fa9577d12688efe97d2af5aa952e7daf9ef5621e73e9c31e5befe2c2f2ad3c9d64d1a510df6506eaeabf6f11c51f9f258b79654c3dea5939480ebabf5fe5b95b3ead01bae7972b7f451dbee7a73ea54bd5cc2b2af258bd98597ed4213e4b4d1d3fe567f6bdfab9f22b2bada37aef4b21be553af5e0d7d410ef948ccae5900d3e8b68834f51b610ba3d53f6e17d987170d814bf0c7b3c81e797d3890faf715114e78b9a0627a7dd25efe1e3c139c9f935baa61cb2e7579ca969c874ef6f4777b43d6dc3c9cae924faab6b3ddd55e70e0d3e108417f440518513f4605667d841cf09aca0e2072ae062567f87fa3eecc0049e4f7d62b80068503b3b5657f576ad7fbbcad5ea4ebd56aed6eadca5dcd76d3df2defbd5de787673f95e5de3ac1d747b4e52d60ebaed9cdb93c26d0c335a31d2ebdf9f51619cb4317c799fbcf7be1c764ffbc6d8d7b42f8c7dc57d5df605f76595f66d417df9e52f59f6bdddbeab7d57f67df952b5efafbe4ced5b657ca9b2effba4f19ee54bd4f865caa678d2b4fcd525f9f74132bf32e9d5498fd199fd97c3a6571b439e91c7f2c5ced46bed6d3969c96d676066ed65c361e5ccd5a393f665bcc0a0f3c780e1d262b5b08cab957ba44aa9a4dc7befbd5ffabc2edb5bfb6e00c6c096b58fe32e4b8311ae5fe2a0d176d5d409b8c4b12d9e24f7381c56a66abab7de24b9ff3c1c561d64880ef06bdc82d65a6b97c0f56d95c761f60bdff42fe4297b0e137f06f1617bdb6e53a6932cbdcda507ae8e2bd6d27b99fa0eb369921748d9f41dfceca7c51943bfe461fb977269da34fcca0c74dc0d4ff46477e8d58a971dc71fffc7d638b67e7c6f3ad9aa3ae5240ec21a10a0406b2548e2b505d0e79cb37a4ef270536f527bce18f2c75630ac1773f607db2fed1e4b5c3d3dcb1f5e39cb512177dfa4a4240ddcfd52221c5faf99978d99d7cc6b66e665e365e335732d7dcdd418bc9493f55f5e24ccab7ae3d3d7cbc60c8ef7bc719c3e4faa606941a001edf9524b35ea60a5947ea540607a83eae1e8ea47e77f9fe71c47cf9bff693cf358b193b59567e6ccaef4bf8efeb4ba344b070f765f1cfb6a21012bdbaa6865240b9205c978643db22232da1132da86fde0a0ad50994d5624c34266247b223b924191dd6448b225ecfab22b644bc88252885645ac7cb1f259415a11ad96ac9c5835b1526285c4eac8aa6705440ad1ae9f4294624b294a3182fda40ca53c913274c4e808db114547181d51440bbe38c2a7054847101db1e408278e68e208258e40e2882347f41c01c411a3234643a0d510450d4dd44054839014485270218516526421c515525021454d0a278640dbf573d072f4e4f0c9f1033302f623abc998382c94f1d8644c422635221b0a082d50b4a3a126504aa090401d4115811202890b9b8d09d1d013434232265d12425c5c712b0a834224c2236111a11021105f1c6521243454eb92e8826434d88f8c474693d5644d643659910c0b19510b70d9d13a10744074b48ea7ebe98a743e9d91ee07f683747443e294e08ae082381fa32ba8886209e704d70407e40363417dd8912903613f30231c866149c082604bc084a040b9c998c86a46464f88aaabca8aac407a00ed013d0ff071c0120728e1809a03829480a4042e94a08512b250c2154aa0420951286148094d5881b4eb2f00e906da0d3d37f8c86ad54564931939f9c4c9faa34bcb8a465991ad6801450b305ac0d1026e0be8c28a2cecfa0be06201471600c4027e1640b3c2664514562cb1c2092b9ab042092b90b0c2c70a216c45bb7e4e518e51ce91ac266322b3c98a64463228b29b8c48765493d914d918d91c4d9a12b689e2309310b2b0ebdb703165e0d7b739326d8098b1396d7e260d6ad2a47cccf68a825cf24e8c4d60253a244e3e5b08dbae5f63ab29aa31aa398a21e78791e78c02d518ece72b85fd50d80f90ac061baa311c4015471059a28a64b55d5f56abb1195f5f465463317ea28a7645720b92029b0b8c19292b2b7c42c97861c570b38188cad49f52200152714211516d48c8250217ed680b18f95d340c44de8f931e0b8eb6101212121212f26e20e5b4cdad481187711f83e1cedd9eb0e189da751b846c50c2dd2a0e92b82511e431185d18430c0fe61d46ecf8d9e1b3a3c88e1e2777f0eca045419a31b7560c0f43e671f91078b397d7b9679cbd6819ff52c3175386055dec1ab8e8c2ae5f7a29d83548c64b0cd906c945dbdc6a3727b51a834154632e362542423668e18c0ce361c82eaff3cbc83c3260f819046842001b01aae8085034830a66f0996106243224e701cd1044ea6ce3c514c016260d2ee60d1f19dae626746b42652fa3262a98b1d7157c6aec7504e4301a4048268c0612af880045280214710428b29a004504289a21e83505d17d7520aac4d1d4085013126a15d518ab56f34aa592e906116ed86e54718308378a602a80f9c08060486041376c37aab851045301cc0706044372a3e846d18da21b45378a6e14c18264dca2dc6acc05690523061882e069e5ed7b21d33208de0bb92743916bd996ab487dde1d7351a66510e49e1a7b1d6528668c46925cab311a40d9e6301b8872151366c314299d7bbedc937b6ecfed19734f2e52a53eef765938ba05fd00f5747154632eb7d383331e146f4e3933717a9b79b0a82fa9529f773bf0751405a98bdbd18b8b2cecfa2a21a0d4e7dd25a8d2e956743b82e23118cff364d76f296a3172d87d105cade0d32af3b0d23044e1688b28dc6a1034c403995d7a40402d2bb52218320d254e43885b51adacacaca8742993d225f9e9f23d5d8e2d5a755ba9c9903f7e1e0c6dc6cc210475d9868b29d3850d122adb44e9c9398a38e9f31383cd0dc6afe424317a6e3d3f403e3f3d3d2b2f8a36ab17c51bbbc5fa32a232f6754423090d201b886c98e2f36ec7d110fabc4b05474328c54583a109050155d78f111fd4c9268a0d92cdcb88ca6cb8c8c2cbe88604c6508db9d46a42bbbe0bc8155463ac1e9f1f263610d100a281a4a321e412818bf63a7a6d01a24a9c0d441d110d2197085e5b8034845034844a3484381a424dd01052828610504a91aaa868d74f2972182acc350ccd98a019535d9c10da3528316b406226b18f8c9005d11535a028824697db8c145d0310d04d09508dc108aa31172117edde2730ccc83d3fcb2f3e118fc42d529e912dde4c35300599864c3cf8bc0e448da65ace30457a6e3db72e909e509968b4c584bda0a0fad4935b8dbd8e6a3063349204d5180da02187d940c48309b3618a144abc8de20dca2ad770b4926b78a2524316130a355c2105143ce52809d01444295dcaecf275f4bd8e96bc8e8e8e50fa75149ebea421b46f4e6e2717cd4991c760bc100c0faa429db30bd1142eda15a6eb75546900390d2493aca82f651e1fcd98fa364c01651339ac062d2659bf0aa5b86835564313d3758519b48f682091c2081a400eabe1c824ab91cc15bbba68d8453bb968eea261981e9b1b52750109dd60c893c86588a8490a9544120ee362305ec3a06dbab8fddc7e8cf0188c9cffc191259c3318328cd739c65b1a6dcfa35dc2f44c21dc726adce606635463396cd506a99c42b81dedfa647b5f4e2144c9f967c8c836b7282f39078d9573f48c48423725424c9e185bb6ae5a2baa56aae52da79f373b6e9c339de72cbbfcbbc48001c3a5c59a4510774697400aca1d10acfb26e946c59ba427578a269b007b0a218a25c050044be14dd213873db9953749475cbe49ba7147506e926e31b67ba24d7d524de14be5b0e83831876f7dbfc09c4edd9e6051b17058d55840497ae2b14f324a8292744b3a32c2a2e8938cf44d12164ece1d63d2cc8e8a1f4a6e926a35db594ebc4922721891939ba4264e2639e97e4291d4644ff1a6d337494ec2dbe5e9a45d02a63f9d542227e7e6d12525dd24d51c769354bb49b279ac1239139b9373dbdcdd9b2427494d929824d5926a494f3839777d2656df24d59c9cbbded56dd7a1fad409d6148b3969807042148b4c9d6c01db2fa9935db91aecd3975e11bb3e78c51cad6d3463ea83d4bd554bcba64349a85075091155577d51a4b52e64a14162120ab40320cf03c75d1f75f3b851dd0dbe156c04ae25d5ae4f9fa49ca0449bab5336228c12a98f0f18723ce076c029e10a8a5135d106c5c4c97a0214aa96e2d554eaec940f3eedfaa69aa9b632aaaefa6188aaad8c6a2c657357fd7af5ca28652b53364e0738e48a381ca484f4045815ee5d7b4abfca3eecb0025ad9260d0a7c0ff4400ff440f04b727b291f542d05b592690f8b4869297057119cbe47f938a9c4545bf93e1c7c14e5f0c308084bd4e128a44fbc1e2d31078ac3505fbfeb2e2ae39899a1a1e6ba88384e56228edb348b49a3f2f56f93c6e64e1c5cdd573d7d9b7afa2d2a1446a5502cc03725daa4b8d0bdd271350cf15f30441286b8a36e95f7f207954c674ccac3106d541e1c432e09d48885856efa841e5128b6a61245d174f50ac895a054a89bca292745362a3a65e36e00b68414ab7c8b689312dad7a27e8a3ab88dd2a88b42daf7aab48837ad7d5bf45663e3d7a74693a6eefa37d74d8f6a6ce5ebeaeb3bcd6beaeb7b1187a57cfdb1d6942d8545ca28f544cc11635f9d2a2ab28d78072d97f06677a130c01865b753b6e9aa7ffa39632bdfa16a35b6a24db5ab6b35276f80e9cbf8d58aea532afff79fbeddb953b44119edfaa6fa622e2d935d3f34a16a2545daa924b8935da6cabacb946d57270ee3be62018413da17c816b4efe584f6eaa6e22e549ca6c33eef82d65a9d92fb6a2d681ff4da99ae7bdf7fe17720d88160973fcc3aa54efcae0bbb0f3f107f8d8ba50fbf3cbda85b4c5f8a0ee2d2773a046b50994f7b9d2e39bde9895e2faa3072b7f77a15b62a82aaf8d935f684e2084feebd1f576ff73348dd9fbe628e9ddd3d58bf6ffef7e9d89f1ce5b8ea1fa4fefcf97d9fa7cbef3ff0bfbfd1e1b4fd52086a21be4bbadcb11e970a391d58f1c406c09e5058e143dbb4047b4251c56d8327cf7fcea7d833856118eafcf085a19df17d83d4aeb41b55dad87607044baa4fcfd137d1377126fa266ed674c46a323dc79db83f852fc437fde14f5fa63cd6a58d1d6a21ee758f7f3a0cf5d8a4c52f5374f9f851793a897579d29e2e2df7f6c56c37a74b4fa79ecb35a84cca49aa434cb921182d01c25a6bade77d5d47b929765c0ddb75d65ace06e59ea3dfb910af02385fec0ff0741b043c311d01385f4a6f73de9c34f47baaa71d020d3b916acf4281ebf601d6f9feeef2f7d781e287978659ecbefb29d2b7fbd335a80cfd9a7a756a6ca5c696c3b869ef10ecad4165aeb642c0dcd31458c396f501a6dd835f1fe665a3f4749735a84ca88dd064936f0426bbfe0b4c0d11d42f2a632d8f5baa41655f5e5d83cad8cfc0cee6be2c69f71de7f970be3b2e755fe4acd5e7727cd4e0f8b5d4fb79750d0d5eeb348ea681068f7133ff2ada74ef3bb3baccba35df8c937efde270d267340d384a4f96c817dd7292099e3ffe7deb5dce4926e054fda693219070573de2cdf160ce7b451bfa1c676dbc6ad87092ba0d8eda1e1cc1c91196d8e0c9dad8a5bf10df93c89e543cd902d8130a2a8436f7d45abb69dd5cd6093284667b7390ba395dd2a94b1b369c68c3fd9cdc7b1f660f8504735a484997d6c59b7247a77e5a889742bc460d2aeb347d4ed7a032e1d635a8cc7c4b3445931d803da198c2880d9e405073797e4d7d4e97437cd8e5fc72673b9dc2dde94fafb3b665adfd4e4f27afdfd1baa79cecde5e7c3d3aee6caf5340dd36d77d5fd501f6eeabe841a1eeb7cd454172b28bcd4171d21a6dee412447126912b0bf7b9ebd3f9dfc74596d9b7b9bef6f66ddb022727ff5736633eb861522f657928089e0f2fa2ce1314c84b27125cc473469608a36a70465e346ee86201786a268fad312d707c4cf3d8833e6a84e325e233ee349489f829cb449c025260ac25fe314838f893810eb1fbfc17d39a2a811f40866815f7a94279b7b93fe711865813ac7c7bdc9f4dc5f23f7477cd73c74bb44e992853745da406650586cee5136872101fb9728279b7b9087e9a4a8cb1a05d465bd6dee6bbc1ee5a0cdbdb502b3b0be1f3f889dd97d96ccfa9ee583d899d9c798a8c658dfb3b0adc6589f6621c07ecbf7b0dff29fee719fa5878c7f7f080b91935f62279b9baecf759296af718b9b38c961a21a3bd55a4eb539bba79a93dc5fa01b747dee0f0bcbcfe67ed43e9b73826b9d68f33dc8f23bac1e2d2de3efcc58b20355173766ffa92eee9dc81dd4dee4c36097dde6eea4a8c8494ee555449b0f4c21dd1f354562f5189fe559f410fba3765a7571dec461d39b38999d283b1327b9d3734f831c067e89537cc03f0555976b10f55f46952e7e307f6ff39c9d82382ffca04fa36ce4be494202bd14ddbfcfe6eb441c1a0e8d8643a31571d8f738341e27716845aac0fe9388c6b3a7788343eb718d432b82bac2e638d1e6f3c4cf1e019728dbe69efb7158396b38b4224ec2381c1acd73e937017373d93ae9204e8823d28f025ef9d5fbb3a8cef16dcfc7c93d7e8a7b3edecfae3f669c471d4f52aa1aac13b08502b6a3e8cfe22d3b42fb045c7a4f11af360bec53fa70b2b6c41cdfcea9315b350c2f3266c440ba6480890980cc8b86e9544300366ec0623303a091611c0498a1003530b8f9327d351577171c81f3a5bc49c0f4eded02997e3ed8d5af8a35a58615ac44b5daac6b6a57ebf753eca05019777b295b29f799b156a8f5ef5b28b5da5496c70e63b150ac70813667ad608f8862e8d283a14b1cea12bbe8724cd1e5d8d2e557b2d3e5cbbd25449bbadddeac40656cea39d1a6ced578d22894fba0502814ca7d6aac0e0d0db9cf90fb0cb9cf90fbec215a77bf7cedd293e42e95eebdf841daa9d47ceaead08b24ffc7d11bf23c8cc791245faf04cc194f10f9ff8380e175feff1e59cfeaea0183b6b5eaf2d7daf65417a5f5b7eae6bac555bcb1f57af646c4b15b75e3fbfeb4d7f42eeae8b41d9a3133469f7e7ecdf5e6799ee79deaadde6cd0ed45922af8bb4630c6f8f1978fbf24f197af93e7799ee7790f9eeebd0f8629e2773bca05bcfaf21a79bd425d92648a2effc71163159507ab7dc1902fdf1a4b2033fb1a718d9cb880c72faf916d2252f15079a5de4ad42e6d906d52bd222c8cbc2395bfb68be234874deff12247d60a5436b7bd856118a652a99aaaff39dc33e535bf7da63d74a35468f865952e48f5212ae3bc76effdbecae9925a9107b8af7e2a74dfde6c7fee589b1d96a255fe7b1f5251f95ee55db451d113fb2dbf7dafc6feed57fd6038c57a638075ee5f4e975edbf661f6a7882d8936758a56c8d65495fc51a15a79aa0fad34272badd29cbc4fadf652a9f4b4a7529fd3835444c07339fccf73566f0efb12e033da53c1b7d9fbff3678439ded12eeb243b3ba2aadc6eaadba9c76a3f974d30b706983ecd79b93fe5ebdd51bb6414eda6badb64641271b74b241a7b7410ef3dedf2e316483eee5ba8e13bfb4b72e3cf6ef6f69f65f6721765b6d8fa6d1b7bdfc6dfa05367d698d1ee5339c85c27ae3c1eed206855b89c366b595491387754e1c768bb0307a7204c5613796fd29e43ba0b2b9bf9fb55de35de672f5dee6d2fb7f0f04e79e01b65f3fffcecccbdfe33feb214cdc1f32abcbd357f7f8cf9ff590d7d3087e6bdf9b31b5cb2927adc64e3aee022e279316ee020d3d72a875c2eefd395f35377b2fa48d19eec2f01986c05ec0a547d69757bd574de128d806c1fdf74174ef3d1126ee13e1fe23d2bdf7dc7fdf83fb4ff7e8ded3a590faa193d704d8fe77d6ab5b1480a59039a94da9a485809e47bbce39aede6badbdb572eebbde2430dda0a8c3f31bef2fdd54d4e1e9c9fde73ba032f33dcf18eba4572460b553b310e04fff064e4f4cf5acae47fd60ffc1f4e98fc3e8115bf800d0ae4f8d38721e1cccead3100a2f68b2ebdba032faeeb4082048f19c3b9b52f207a04c00f6fc99e375e710c5ec1e7e391fd6be777afb217618f8f6530e4bd2f333dc85a2e9ad8f1c16e0dac34937e5d0f3449b5ac91c27bd048a61123ce2100cbd2f89369e07be7c92d35327e053c9be57faecf7de8ed7b6bacb36725cb4e18090bb3e770172db2beec0e19d672d8cf78573da660ed7f601c527533afd7c4fe7d87c80c152e839ccb5e78320d75d5b9d72d6debe2e7c0c7a6150af206833cb1ef7caae6cd5ee72375da72039b5412eb45965835d68730a6a835f68333e6d30346d300c6d1637288636871b348536831b3c85369736880abb6f7b5de6369852812be12ab4765cada8522d2d26abb91973bfe380cf1bb703bb3ea5612ad6c15a3a95daceda3386bdd5e9a517099c33f0aced99d7efd2dbb33eada8da9ef1a527e3e72cc74d9fce90f1a2cb71d75a8180f002a11de0262ea5010eaab11eeef2772738fce0d2a02774d98309dc252174836c5050f7340927fd7dffa03c373e3a0e0727fd7ff0c4754b797e38ccb74f4add6bb5f65e8ea3e20ddd9e893661f2c36fc769da641a31f9517bf8c0c161148a49ba67632567e2e4534a6965d1dfd9549794a5837e8e9330cecae1bb7ece0e5fdcaeaefa13c84c751d7e4ca3a01af31c36b98c47a750a47e50260e43bd36d5259099c9055c5f4e43f1e6db562bd1548806d12f70196ea754df4c18afbed49f1bc7cc6462c347c059a90482e013a1a5524ba9e57766feafaf5f2a7d8b1e327ee987b03cf83bb31208965ae6aca4438e8f4c6424c2448ff1e7136179fa2eb210c0f2f47d8c3f1f244b0fbeb73c8c8dad5b8c58f54d55b31c507af06f6879f16f00dfa489941e7c511361a2e5e78cb401b6b4e439ab648d5d2317b51168e4ee5ed2acaea585ce1616ce93234e5f23daf25749f9558aaab45264f9aab1397b596d001a9c64b2bd3ef5f183156172aacbbf669bc16fe5d27b996e9796d5afbc0bc703ccd11e64d6b772cb53f17b97209f6675a5b73d8707ee6f6610ee6fa613d86e1eec2e491e589dce61b5e4f0f0a87ef53ca95f7990955dbe25b79e25d31ff37c22b8dbeefdedc177f91ee0bbe8214c703f843ef89cee51fa961e32bff435ce2a3d4b9eb331cf1968f3dcac1c3a4dbf92c5941cbe4a463d0f7ed3f3e41c1e9e20c2473d0f0f7e1ed383cf737a1e718706525c3368f23f610f67e04b934e7aa5376d39453410020ba868826df6f3e97b938273567398e7cc033df2870e393ee8cfbf37cf5b5030b77502a6ef4345fa6aa3c444df73cf7db61a63f5e08688cf819407bb631eab3ef73bb3d277dfa3f4dd3351750fd3737a08f7a61fd27de9776625150ac10f29508db17a9cc43ffdce8cbe9787b8cbcbd42edfc36fd93409b8f4a109b89cb57222715a57f1c1771fdc7fb63fdd029e483b4c1ada3d3e8010badd0827a9932535b2518fca385bcb046c35a53949759837db76ef3bd6fdd2cf9949b3ae6621c0f4a5bfc1f4254d84891edd979e8827b4e9df50eabea4a72e69d0a6a1a6444efe5eb658e0936699b4a8593774efbda78970dffd9c859a55a20f6ad60d1e91afc4db0777c3a72991a7c9ddd56c5bc8ba47e4c449e5b81d1c3737c7715ffd28a51e678d70e9715f6b587580c5039436f7f76672df3c27cd8d614ff100a5bb63c37138341e1c1aade2d06848485e141c5a111c1a4f1424a42ebc283e1f16e05bead55eae0ba9d59ebd196329e54110fd1cbacb3e143870b2e792187441634f2894046d1eecb63e0efb2effcbcdb5f2b0b283fc40db1fa5f67736b9045cbdd20eedfbe4f63c39dab5a31dedfbb243af6d7f76e5eca5b47a44b46bbdb64b6d3fd4662f901301d55ad2a07dfd4691ec17ed4ab7373d3d6b8d06d5dab69fa9f5d9d524dadcd9c4c7df616ef77cfb1a88c73de8e5d2a39f89d3a393b6f5e2b0cb8d2d87e1d29fd3494a5f63a5b7afbd529eeea22fa4e20210a427704abd3d5d0fed59db3397d7079b00d722b0e7288071f3d9f3adf8f32d6963d70d5229e0ee41ca12a5c55204ee92d09fb9352227598e4a4d4a6fb31cb1dc6aace4612cb21c5525d09a3292b9029725a2d49c956c359632aa2e7f4f197929239c23c64e1d15e1b2444467ccfdcbbdbd2c3e33a6d3acae449477c9764b36ee449b317e8294d104f697770a0c1f14339d32a50f7349a4ee92d7ed947497587c26cdf7a72b588ac04246a5264ec238720516cafbd373c6747997884a444ebae7a5264efac3f831012e4b44dbbf6439b244a5260eeb3c098c93b4ee1a8c908645a03d5d10b2e082f620b91119d98e8a6e46537634df478d51cf03a2b29a0c08bcd4899322226c468e1801c2c88f119a119b91288c2c31e28491268c28610409233e468420c246848d8822228c88381a82888812105102228820820822882082082286186288218a6a6c86518dc5b05e911e1a44ad67889aa5341f3a84104308711ba23684134334318412432031c491218a188226c41741d482a8054114842d88224ab36d9f1ad33f350603a8c65c82264d6909876121879d9438cc34e430f1098785354a23a2b4192841693dd78ba21d2a769cd8b1ed0cf5501a10495f247191a445521649572411252de942cfaeef811e0ff878e0c703405af8d9f57b28eac1a887a31e6e3d74d103520f513440d3008f067a34e0e3451676fd1eb8e04a437cb8d9907ab0715b00f570a407207af8e981e685cd8b28bc58e285135e34e185125e20e1858f1742dc6cbbfe0eb61d8a7630dae1680ba35d5f0748274847486748e7099d9a0e131d229d263a369da21a636dc1835d5fc70998106c08f604ac0623823571b24ae14707568331f1980c8abb6a8dc96a366c781ec663678d8eca2cca284aa392688b9f2d8ad842882d80a0c21754e0820a5a50a1880a5448e167d7afc04f05802a105401a12c8276fd1f473f6e3f90244093008f047a245044023e123022811f09006501825d5f0240c08c38754b38faa1c48f227e04fdf0313232bac2880aa3288c96183961d4841190d191251cedfa0f387ac0ed0148474e42b921b5320e1c3db225b220cc98fa9fd5b2da127e861ef0f300a007043d406809464b285a826d09444bf8315274048923421c013ad273a4e8081547a238b2e48813479a38a2c4911f7aa4086aa46817d5d88b518dfd113572abb118586c92d324c78632d96ab51c26a7934a8e508e921c211c9cac3e4e46e404f1d08207153c8e260dca06643b622bc226840d08237c61042e8c6064842ba608dabf63688711402ad8c7678791146a0a9e1d3c3b7a643419906c0999904c4990ac260b82fd9041902d9932f0274d099f9a38cce430312caab196cc08598fcc47f6937384a408891192232447900081e40709cd1e218902c912244e2069028912489040e2834488238e8e6a2c868a4a8ac50038347c886068309f1b54dc70e2c610ac0706c48d2f6e7071438b1b59dcb8e206d18d25347c767d1a3e35f63536036668d787a1c1f4c0f8c01881f981310206082609982018219813ecfa3045c08c088205cd40eaf2910c483238210312320cc90024c34d062d64c842862b64a042862864582283900c4acc40daf56720c5408ba14703edfaf928df32528ea2699a47f7e822da47ffe42eecfaf90bd80fec0706044b0266040c0816e437ea539696f1b8abc27eaa8b050ea3311913590df623abb58a725136aa473210f967d2a0b22d4791976427721359898c44f6c942b48a76fd5651cba87524e391f5c87c46d80f5212182c2eb6495372e230ecb093490c8f6aac25ab62d7975121e391d1642ab19796ad5504eb8b960f0ba945d45ad272a2d5444b891612ad23ad9e161001ab3da8746b74b8b11e850acd88000000001315000028100c078422b15834cfa44df70114800f8cb65060569947418c8431839031c60000000000000000808001e0a70881b467a3d1abf5bc6c828187a33d4a1acd531578b4b006630768df63f9c0f717f1b812092398dc51ca587f014c9bb20629ca1476098142353c5a89f910b254e82009010c4d709550f0af8d84154f35482deec058f497f21c3170bb4401096c08adfff2ffe5f46a526b618dd3bfd538d72920e3b1df3c1f15724a090f9bfffeaf531d4edd1bbe4168f4faa73d9b986290ecc11886f490ccc77f3c0a63e29695b35bd932e0dfd69104d95249e959d57df62d26ea7c768459921a5ae37bb4b566edbc96d6b2efaf3fd44d418488ecec7db360b9aca48e6d2b59385f76fccd90f3e64378fb809a655b7873b74f054f5c314de3c565dcf3905f374b5d7c699027b35289d615b8c8204120a3d006258865fc96f74669b37635c76dd599525edea1ca23e874728b97603ee521033ae3ca2300f5ef98689affcea51b492bac3c782a304c6a937a333df073370bbf056c0afeec348ac6c697e7e8e008ae1d2448d3395c3e5ac76e893e72243529c94f0d7d6b70c8834ebf62d22f9c39f16ff0185d8fcb68015b620940d2d8d619ecea339bbc1283a3747fee916f275070582f7ccdf9691e9d02d03dce8a2a92370c0d5ae196db0bdb3d13b489b150014f85c922da087ca68444487074d05e560e6425d8370cee7aeb347145d1617d94620d1b0fae2920086354444fa70b54aa41e9c93c8f5b3573314a1312f7317034161d9d4538a92e0a993e7941910588f0374576978336495853d7fe3fca3bd25524fbc0c33e04a4d158f120f2c13dfa6b25b1c9c39989105ab7651b660702d2f6f3bace2dda6877638d8a5e90904b083e7112c49eae8ed2a5149ab44ba349b0bb76047f441e49e4545ec735f85b44c39879d5fd8897ad9beb545a3281c8f8b327bfa7b92ee7c3652d57caf64ff693c5fda75e2777672b051136efdef52a9023df0088f817588ad9157924499a6863433c6892dc1740d449fe41413df79a9c504321f00eaee83b1e5a006cbd6f1f83dc772292621bcfcc4b4e952b345d3b708dc76c63667fb7c24c304272771e36ba19ff60428d406353f3cbcb840a7d193d7a54e9f4593cac7d7a3605f9137970f5984e738ca5f7fe6a62b298498b97e6be27c53133e0af1b933e361b09afd9bc55e8d9534ce588df7af0758420aeccccdfb858091a98e2604143e434b0a11103b4971f388acb428fca16deceda1ba8344a75395bd57bccfa04874337b0d86f31a05eda8b127db019e45c486765c8d5ebf4fd1acf9744e299cefd42d8cb4f7aaa9de1fa13288ab868a68f885ffb8ba74cf761e33a956a9e93cc8aa26a00e4e960437664584021207e5321a860683ba24508525591b1f9f74baddd09aa3902c97ac9524fd5aa46563a5419c84dc68129cc53525d79e8a714db6574b31915ef533aaa8a38ad1260dec9fec33e6e9b415529ff27be05ed680763bc4b1428be4ad1b8cadfa307f2611598331b6d278fc106252a0ac857e0260110ce75bed6ce4c9427cb564aa63f8e84f4278a1e7a87e0f046282ae08dab7dad904b204083d2427a8d2a28028bc1762b12dff773508397ea8f75973485d5c1ed0a5ba38ccda4410086ca0e30e505f0c34f193db31b03c7473b4f4e4e372a5185d937786f4e03fbe89fca5156682665680a26402136601eb67b41043f96fe5883168fc97ab0ae019d997141aaa123179b68eb9b437373a257f8eb88e34e84d955dbcf0025a1ab547b45c91b10c334bb0f28e8a0e19e7ddebc9a447f1f47140d0d753c4615e308eddfcddc193548620cd95fc80ae787d6f7196110ea5cf4f799fda75deea863e90697ecf9dd34e6cf015c26ccc3572d8673bdc0d55966387eb19fc6917f4f31d3741fc83a26fac4551f0a16554cd3bf19317e1726ee50ba645b31c4efad700b336622bf5aa368078cbf3a9ea1f1b8a6715157ebc99239a264fc9677784120cbeaacc8ca98d7b40d1fdc3b2ca350209dbd7107eaacc9e80b060bc98005e518732eed447005967f63cbfc31c18044053d809290fe6cba9d0f85f78e8925e237ff38c08427bd5fc0d90ff02802ec04102c4db7bb1ebd22b93687a16ff3ca888e978eed9645c74d2d9b7e93c6396ece94a3294ae7f1d7b82f9032a80e1edcb5470eae271c44569a5a9c77469bb211704716f71b5e917475295309b3d12259ce945eacda66cdfdce8101e603c464ae4cab9ac5db7b847feeb1d9d0f313d7f4cb14f163c92b5bc26cbfedede0bdfcd854553aa5128a9f81d48e85139bb632baeab0ae1a1f2e03553e700bcd3afa45798f57b60ccf43ccefef82e5608933107f38b7fb70f02590ded2614e8549b2bffc6037c7062cc1196582396d9631add2f1ad4a505612ac436d25fbda26907d076a59a178630d99db0884c23c42d57847efa2d71f4f7e56f1217a0d48995bc761855da0f1279198127e12b1d95cd9117f2c83b005f947d22467ffd6b593af07b301c00bae468b7c359ef14b3fbc6aa1f98b94035adbe1b9f3d7fc58dbe9feba8a60102b0ac09e81ee3d439618ca3fd5a1001889465d44b7fcb3934b788636f49ff275c6aaedef4652062260fd00ddc511d1f19c75517c00a99b71b7818a19109c8f5489bd1f85f9ca1f2e5eaacbfe9ea7aaf1e5024cd89cd22a862499c7fc2a705570ca0f6ca029a6c0d7c0fa8a137c6578df574d57484c133e4b6a55215428234f25b10d2ce22e5533db15e16aa6b0f0036d6114c1220a080e287490053f3fa6faccb81a138f3f13ec900e251544bce091eca646a49b0cd2ab7897d459f9ca5b905157be34409a7f9db01af30879280939a802d5148f0ec3287725db75164d3df6a659f052663e1ec0d3cc45058cda7f69c88d9e5540c9125d3a6e39a059f46640eb89ead7e840f396b83e70ba6b384bb15ecc2f7439d6b12f7c08bb3b2cf07c3bf19859db006582784a379d02f276d7b2d57d108a6209a00612642da9e28144c0327af3f86dd66f8f21393762c3cad45aa4af28ad20397bd5b1ed28194df4d0fa266165f35660c8b4e2c17a4710f45a59ee8f20655ebcdeba6b7af36be8ade85eaa97bf34a82d05b2eefa26cbee0a179b5843d9bce736c185aad39cd58d6c856275d22d1b25776eedbe8369f4429c1341ee9e7bc954cfe682abf2fb73e3f7942e045d5a087d849288fad987674f35d2ed217cf90dc45596092415c9e3fdd8a84b881af29b95636dd9430c21469b307b86ac53522343c738737f365c020286189128958d0d1a3b885e00d899ce1911f56804d36d409f8a45d65145e6175b53ef0f59afa0eedcf2429f152f8db524cc6963b1d8de8443b983729428585edf977e1c2f79c38434b85202a58f6ebdbfb554537720ec006430555b1f3cf513e17a7a777fe984ff72363416adfe42ecb011f4497566d26c69321403463c85363a5f19df316033edf86a41ac4a91841ab095a53f5efa1a20cea73dccf799f4786ec97da1716e80eaf00de7bfec44a8f11d8f857a24d0e87db0623f6bab25ffb41a545ee46c36c7db991639e877b3d5456e65ad2d56730bcf25bb5dba968e9880dd52e852a8921c1604f651346d317a3ce2cac96a3779e781cc5e10efaf0e77a78e54f1a9cd3b8504a9689b6fa60edebc379c29eea9558a25082a65e87bae768dc9ba811a0f78d550fe88a5d155c634027819cd2d674ceb8e28b87ea89f086e4cdae5984cf2683e59c1aafdf0cf7b73c9b075aae050ddbc7f72ea6df5985841f1ec1a5be6978da747622d3cadd8261330402ba41ae175c56c337acc6e14a04edb90184d4a82a2ba1a8bbd8b956fa1c20523e14ffb93ddd7e7ed81ce3aa617905de2e8299ef72bf582cedfff98f870db6ae87d10f7ce13d47710bf49dedf43394db86cf54f232d3135d88fd5bf504ed81e16423fa5100aefb5e65bf87bdcea820a6b5e8af0c845b3aba0b77fecc2513bd58289ae1dd685b76e7d1b9fc2862547847b5c4136f49cdd7ffcf8bb710b0b16cf1fcd63923fef28b3a8a033af474df1b70877e5f551afb365b494659f25253cd0c3f57a103679f713f607e0398973d475ac98c18ab800ed04267b017fca2d00376b6b38da3f0b7990ea9599dc5d04642df3e221ae77d34682171d4dde75bdd34552d1e7e18f8c588dcbe6b10055d7611d21c61f3ebd8e5965f810788f6207c668fcf5922ce4aa9a05c65e1680709b2bd8cbbf7899380af856d735ecd38edaf52f4db95abb3b29e4f633e3ca8a5460428368c30a4af98392624bdcc3f6bb662074b2904c2fcc8c3e1c173312a066596c8d9fe38a6b2851d3cc328ff3393322792c5d901ded184c1d715ff645eab046c7981c1f2169d62aac81b625e8920edbe644026b3efeb3fe6a0efcf204a2655be8cbfa8f18dd2b0b32bc7769d64441388633230e487d4829e133c98a593e8e575cdb401b493fcabd60b82ee2825814d21a1f10b9403f24edb7f84e43852c340e9a2956365a5f80cbbb2861ccde6ef0849c68cd73eb935c4251a9037e447002db0391a10149a5f6af911dc71fa88c83e9defc7720823f78131b4667d3ec97096c20787334a4246e096b99b225e4647eb75b1f6233a6f673ddfbc7ce7f6ffe7bcbbff4fea155ffa5f9cff2d852158b6dbbc49015747bccecdf6cee3b5396ae39dac4551013fc023a85580853d033d78cd3543a352d41803f0cb1380c6aa8389cedd2f511efb87a948dcc9edb95f4b88a29c569ef849cb6c3cde8c8951127d144f699240529ce6cf768991484db974c353f65ab1a2de36a5f673736beba4b49cd848ec4dc8aff34eb49b3f1a588c58b903877ac680952eceda24d11d24712634615906509c3f80d346a9942fc122c1aa523db4cce0d6232d94203be4d598615f67b81f06eeaf43605d8c02f339e3a06762313f3c6772b2ac14bf37f54418d45451c62aba3bd29ebc3c625dab62446f541066aa13c9f01df7c755921c70184ec2d4b2e1c76d145e11141e4ec259240aec48e5a559bdf9cec191cdc858f1c36ac2510784d5601a9baee1041d7e09d03d8d7096f0a5a69dc2a0112d03843a4903afe2f8a2fcfee191422f69608c9d40953e266e0f4b33ece1d7dc9a1430e090feb2cb4f781ebcf64fd661846d3e3fbdbc5c22e4cfdd45d355337c3e5162302ee14517b5e239e2f74f09f1b77d45c1780f39f49da63b41b659e8d8fa3512ba5b38500b0d9aaeedfd0fa20bf2a9633a91a0b7a64add4cd97dd93cc079c094523c7b4a0c83046f77f8763e635f703013f474c8af6c6b3bf203e2236c8599d220cd3d67e58f7026104dd95ca78abb78261caebba5f63283d3d60ee5c4d954a7b0fc4102f85070bc76730cac279a429c8aba59627717cb8f9b334c64297800813fdf22c111264202838ff31b4afbd19adc3bde1ff5094dd461b35aa895f398295280796df867563a5edb8ab52bb6bacf509e297cf14966d620599921ee1de7d37ac81918dea5ad2fab0ec4c72b4fb1c694d77246f744221f1afa8db7295111cc4117683a3e5bc4c3a43c5786b08b61a659fe69a25c7a6fc36659a9d356a113aa26980ca28217a5502f30fc1e2d19196d7806452602dc2604ff65a2ea0ec1b451ae4a0ec432f8b02c284a81f25b006b8201a378f02624c657e07565abf40144ba2464f5f4fa2c6e7c0748710d6d4bac07af82483b552de69fc1d6c2a6cda6a8f153d30a6da674ab7543e5bfdd75e147f6e1d229681457b1459455b30710bd41d86b56819ededd5365858adeac1abeef6d8d1adc8d7c3c16671f8bad82d8d7b8e05576ac5713d86ea142ca911d7b83f7bcca2ad8d9927d355ac1edc75e8a9700de59ab304ba88017a873999daa3b009b47c739ab7375f5565fefb38934896c2020dd245d7193e8935f11378efda2bd43392ceb5160d364d67b7743f38c04a21b0250db05dbdf095c39d2245caaf51267058dc0fe3d551e9e969086e9133b8259bbbe6db16228f3ea9913a1ea921ad9bef0b19e9e20265aad9864c5a668ca8834e61e8120b6dffd88a995e89a4256dfb7a8ab10c7b7b966979fb9b4cf76f1032b1fed5526c921b34cb8913b173c58869c910fc5b2347a74b0f8f19fab0d3e5851de30b276c54283b933ebb82ac10dacf3c0681e9bd3d36accbb07976634864cae2cf7a243333e948ccaa67590ecbd836a9cafd30bba10a81e2c679e7078e5f65665bcc009914a283960dda614d95764f335efe1ab8924fb53a10ecd7fab8abd526ab377ab877096c63ae6134617737ac9b08e06dd6bbb121671f87f75b6bafac17f972abb75e9bedef4a85fe50b6ab76feb87fb076a16da8c0f7ee88734a0a9d48e1d856c6e9cc699565f019111d62f4b8b79fd5a1ce8d5b826499003dc9c4584024d52954a10d13aff581c6efe80b72403d40d1565c3ee171c624763016c747baad516a6a200c1ac566aa61c835b7be8031a44cd08824f8995f0fff94b9590e2deadb36381e4dbc5cf0531bdd1d0e1a84c546a16ce307398624ea39e6b56ac03cb3a542cea9b69ef1de327a1a4c96ecbe73db8862cc7144a58ed99ed0ca566427e081ff5f9235c73c16ed9e2e60a52626c373d00caea8c91d16f502c8182dbdd997526496fab3e09f0986ba8e52afa46042480508aad3bc656dc1de6dfc26510bd43296bbc92dc20fc6bb62d23aeca075000ccd713b0288030c42e250189b655fdbc18152ed6734cea332d0e74be1f7da7a0b285ff1caf45240121caed3334c76f5e749b8c7df49c36f8a364ff78a9dee85dd894177d964dc71c3485e12983afa83d18d6adbdfbcbfb3a731bb5d729ad57d40dcbf7942dbb2c802b1b283e79fe7b1115c93a26caafbc6cbbee77bc4af8bc370080f54c38fac73c06da09346eb81a3315a14871eefdd560431888cf2b16db4eb9ae350697ecebd5caf91a6e0f4e619987be0ec321f65f6fcd8f9efab4f1eba83fbf47ff9ab6303c4fcd587c0a88830ebb3809552fd446bb5435b90e899f73f2fff61e55e13c53a6ed1d2df91341461df417245fdf62cf831707cac3c11e489b19fa84ebd7790d79739c271c99ef13a5a08a95fe01785ca818c0ce775f5aec3f577e07db9618c745fa97eab76d160eb7eb83663aa1cbb8858591c5ae5a1ea102bf3e450921d674a2002be409051e6bf221652f63e18ee4281fb4ccfdd601607f87c0639ff66d214c0f9960e59733e2b08d56c57c5dcfefa5f695d2f974bdae7f06b10d3b9374cdda8d00ab52474ac88bc8fa7c6fe09df4be3b2180b9393b12cd67ba1be8c12666730fd5e92fb947ba5912d7c397a0856756aaf579194ba5b736f5460f36026acaf11087f75af166db04e0ae4c7c1fcd0d11a38f44af33c5b396b509a7cc9c0d7bdf543a9e0ef03a7fb21b80c5abb29808af162ed4e53da30dd80807fef17366cb4ca0912cd3cb8f1c403a6955b36ee35924e7ee0d6777bbd28ab6015099c2981a25fd6ccc43a6e1a31e9fc2a1154dd1005976bf5e2a257b9b7211abc1b141d237d10da037dc1b8811f1e1033f76de785b90df7ea2aa7ca7a3ea37eb7c2f4900c4fac44753d5137a08fcb3dc7ae29c0e066d80fedeb1fe6bf0c12e0e9d1dbb78c378810389407597e3ad2f31d076a51ef4036124871e1890ed3fd0daab5264263fb1b8a41e02f3f6770a3fca56ea68787ade59d1e464c9f60603f675cce11c5f1b99a623a03268385c0b7c271bfac9c7d9b5452e9aa3f66d6e97d3132f200a2a9939ef632707ce3c0c97090e273e56eb8003eea8179a2e2a49086c265d0df5c80db41f4affe3e605fdced18f065309da3a345a6f8912df4c690a40af949662b888edb08ea4822b19bbb1b35f436238f0dc33ab9db019cc93b50f5394d338659f80a58fb6c2e0964b2300262f4d2b23654a9c5990b721b4e1a4fb8b4b53573bc7379830a5fe4357462073c018fb8e9c4766604db002382cbd4748cace32c38d2ef0190e3145b00c72f4227bf14eb04d864d61d05b7037bd77fe9cf40d4ed4746714f41a2e65c698e03443651b449bd2d91f853c503bab4fb6780415533a79108019bb9b3cf2aa8a78b0da394b3d89d5d696adedd23b45511d43ecb5e0811b1ed8bc49877a3b25131efc98333f3996701185ddfcc6e118d7c1e11ad9ddb2c69da62dc2d8f7b9abbb40d1b86e32ffa43738a04d8fd720d5da8c1e47b8dfe64c6fe1befe4c4fa30f0206afd2886f785c9a6a5d4b5e16107098481649d182964c444b01ec7ec32214cd030a0ffc44c81368c3473b71e7fdad4a270b7c65b3ae835565fc7495b2908b99ff21b02caf19a86db4173eece344e11ae9d93f47f7473e7db617c875759fca40da3742c8ce98b770bc7ea073ba05ab6f09cb381946d80a651aa9b5d29bc0234cf31ea412ddf18fcdcf5ab93c27f1028a2ff964f9ba6376ebfa5bfb4b4d97fcb28e1ed2f8e657f18137b57f98da1847f34ae788b7a7b4c414a1aaca72d8b704319805ed5e53e3ca38d0dddfe805cb9e8ac882aadd1a7c43fe867acc07244a2e1db61da677af22b9ab9c1f72fcc40ed16189c185d4d51e6c31149346cfbd77d4389875ff6ff8fc788963ac8b247795dc61d9d7c8b0553fd5fdbd9f8ef707c89be07b0975f01f6ea6760b2f6485dc697aacda2075a9c5bdf7d50d2365c864ec04d0b8e7edbc64a9e3b622d04d8b98e892b33bc340bd76da2d92a53ac37abd2aeb901397d7ec663dd4553f41962fc83636d78e3c800b129b06178676ddfd562f1c6b5bb684e49d79441554433f7aebffacdee34eaca5105ef54eedde5df810c1d1c88582839c89fc5fecf8504402292859ac02d94ada9793e85327ae858f33e7e6ac8b3731573d7b17b5d7657edf5b218a136cca70e51e33e6abcefb4717821f34f9ab2614c1a248c683446636315d8fe181a4e6ecafe85e20f63ec1fbf29e8303898a12b6bfba2e36b74271e52742aaaf324199c93e89ee8fee59dac0d55060062f7774e0fcab5019f0666521048f2280a4d83991ecc7480451958145be5c95e7167d3333d5ecf4b49186bf5b47e974aff053bdfcadace732e92d31a7fb288075ed1a172fe349a2afb8aeba5eb64fbc9bf7ff9bb964307991a16695cd6f61c42ae28b9f7debe0eacd0dbd925ffc682bfd2bc48d1c0f0d24f5c7d8813579e6436448d079557366acd3e2e54cc5f9ff5d06f735fd6768348026899284ee7e7f82668d39b4cea055abe6c566088552b33f6d00f2a01c710b610cb2c5c1408e2b83d9be77a0b5fa8fdf0f5cd97861343a82360939e8211ed00c9d7309dcb3e3e5509ac42542f44d7b74cb42519d68fc9e2a0bf5e00b2272da97e40d6027c9ac1a51d24b44007e5ca63df7858924ea426bc1d28d67196484a38bba8115bcf4aa5b725b221185f339fbce77397b51d52c00b8c08938cae829651c9a43fb7eb30731bdec112132ff638031a5cb8807936de9476479550d6f6e07f8f19dbb4796e8be440462c12aaf923cd108b4246d94a4f336946ea60a4187caac1200aa30f48bae64f26530993a8fc987a1bea2f294bd1918f668b85474bb29deb7574c71dee14c79ce78073e50e73717b2ef533669db98c491bde579a0321c34c45205fc8d08fbc37628c84c272de284db8656d97c17cd010b0910802791c20a8a4304647a9cb4043a6fcc7215abd9c843597efd11de294e39c73aa639d73dfe364882d4180705c4802180d6405fafb021ffb56218299acedcded917887660610f35d0acfa86d2c23ae0ef06fe7151073b2b663da2fac1c9f38f6346d77e575aaff9caaa8cef5ae56348ad18e34ea684412b1c814dc4c1378f3b5bb13fbcf64b2b6c71e3447f1c31d3d14491423fc4ff183c0cfcc09fe078592056ad4585f2491b51d2aa691acb88c3fb9b04f9fdaf1a6a05498c43b296b3b477834cc13b835305f391cd7b9ce39dac90e3ada0972bb316f3e49b157220b65be4b384e96fbff91b59d9e843484608b7af47ef7d3c7e677b0ebff5fc904982ad7cae998cf97eff65b338e188490861872118800f20d5f8e9b43e9f65563b8812a3ff896d36e0fd2a9c9f5936bb7f2f52ffffe324da11d9ceac83a9266ea9dcbddbd7c7ac9aebb81120b92da4f3cfb0bef43d676fbcae5bc3c597d211ecd9a23dc1f8e2d5c9157faa0c48fbfa92f406ea9dc0eb554e163e7606e030682104020729168837aa5dfb090b474a7d8c4dbf3fdeb79c7383c31b04c1feb74c738e434a7b14635a337f7ff895e2a5cfeb51a087fb2960bbc49e899509dece9236bbb06c9cedfd4fa204131703ae0a75ff120b9704a3ab29fbe2f3f3d59db953c2b47c815280c4b1076934b1203c06f568fbf5f271cd3aa3b3296852e66b34b398defdb8c105556ea342c7e1d24a26c4bb8aceded191f6e55fec230a32a6b7b8bb7c1a72e67784175cced11ed209af90b9e3fd8fbdb018f2a302804250df029e9fdb5c48a656da7f5656ae743968cc341e42d2cf964158d8832b5b74ffaf58e64dd5c99ede7fdf2870ebb4bb1b8209357b0bfa6dfd3fd083c685ae9f546fe0bb2b647ce7cb8ea04784edfc6a014952180217c23fe8a40818ecbfa0007393898bb97ac3e461f61a7eef10de0e35735d59a656e25e60a58e5e57afec8fd6ad81b5fb503893d890d616d6fef0e4fc8f5e68bb73bcdba7854e7bbc53426e6285c82290ee693f63e09c21e1d0a391d5640eca07986e127d13104fe78117dfacefe32a3f83551829cb550c4165d7b23327fedc631721c723a667502c05b8484d96fa7cd69fcae5dc5f8fc29438b2275c26b679fc5f6f2e4b5d31786fc2824663f01dad7dbab73f0a7f0da83d1e6e9d58520094cb64e76886180ed07494377f4a83ee6f36c410d816a91fdb645e84ee23b4154f5b3d22b5e312b02d8ae563dfa0ed010979374053e926f2d67e54bef2296dc57f9b6992acb7f1c8538c4cf6a552eda5e8320fc2c0371fe5a5fd8320ba1f0339c809f6787a087f97acd2976d1768f2c41a9c529e89719f8795faad8a795dfd77988efd8018b7e8024f92617a5ad036d26b21bb687b10f6bbc67c8351a9e500dfa7ef325c999a6ca1f2bc7e5207f928329bed72b3d69b27af236f9f9b45744196f6a79dabb319d297489ef91d1642cb0ed707b938f6650bd424a25a4e7abb7bdb96291fb0c0df164c6ef5d964acda18583d184c8c987ee9889b23971748b6f73cb1eef24c602030da4a9e605b6f3a4aa77deff5e8fefcf1e4139df01328cb10c23a9f8ae1048e3b476b4bfbadb76f1d2e2e22d120a21bd3add5a18c2496203bd697b1f148a67416bffb7e32707309a1dbe5dbd074ffcd693695865ab9e1994218735a8b9ceb63771d54b09a00d5b3c76e4c34c752c36e676aea9282fe282e1c8d031b7c314593085a80f3d1e2c9f5fc5111525d9885b42c8e2eceb1f632f460e5a35ad4bbffe05fe5efb19c0fb548dd6b77cb6417b06fbb6073d6ee38be8ed615e3948104a8fa04ab9cdb9f1b4eb8b9286e0d7128d6b5037c17066964c434a63552db80c9c6bf80a68eff2d825ff0c001bf5f878753811d3d38887d78fe19b5d9c571c0ad67b052e3fe1f7f696adc8f47b892bd8fb6ebab99bb815379c18382c2fd3982a06b6c710f50f87d584faa0e9cb30b9509425ee04ee4d480f0c65acc58ab861b1f437f26796975cfd79f7550106afe81354779f79aea77880eba5ac4bf975ea2df94fa310be75387a2589a670e83f311ca68934bc652965c595146e682e9dd653e7c0d5c46c1ebf3bb8d4750740c89b4d16e257ae1ec38838f585f8403b2d35cc06ea27c510a410506d35bda151809e94e1ce3f3ea0f30be2026904523b5e564b8221ee396533a14019eec4924af2c3acb48293d2aeb9d01e0a15ce21adfb9c01def1690e5a19eef36935e169a7d04d4fc2cef2d3fb0f0fc9a7248bf2036f01e3b18a2ea7732432624d4d098a1f1bf4b2232c71262da4dac1d95a298747ed70ff00d77afe8e890e6ba525143b5f60bd6cda4dbe20ee04db3040d54521f37b29dbda0c11ecf13022a7b5cd24c248e9b1d14a4eb75cc94f49b2af5c737273f999639d8a19d9669fada6fd0a6954a2d1d735b6e8e61670eca128f1a67fd3fd7f9703602fc1e5208b32a02442b67edfcdb72d6549d3e0f2857bea6e12df77f4b92114a9e08a08e6c7caa6b5a7308f38a206e2f2163d8d42de92ecac71b76fe0e263e16aaff0332908274d10e5e66a15d6d24ae76e5a58b140abd2ae3e0df0e24b9c230d0e50744c047bc14185d0ce60340058ac55a25c0684747f701ce9e07851ac83281242f4708c7abaa0021bda87066d4f12f9ba6abb8ee065114f72b7c1ef80b9f687cd5610ae867138c91de22c3f92060fb9a363e4d77a3b00811f95297ca65f747283d1a3e4fe1ca698296f1b60a5a30c0228b9273e53ec506ef322e6bd7c348f923b9285538914bbc4217197a885399bb447e6772130240b194f1bb8de11a722a21714baf22760b5c2e9ee224091c7b87a74fa9f6f5edf63d0e07fd9d812aaaca46803518db06d6094b16bb27fb840d1eb5b0666ba0dbcdca74f6eb2cfeeb28583c8cd61527878b96fb1b33db06c1c1eb2e9867236c74e5af7bd38e073af6241cd2fcd8de2e5be8501c80ccf246cba85d7268c770d8f52d55473a76bab33f02f6a28e6e169ee4a94680907200f7ce00a2c39f53d0fa2b6c3c0459709080302f122d3b27c3518c8098c296c39396d0134fe23e566fa48e713e9c9d627b34bfa0303cc88e6727983cc0d31a0fdafaae83ed4e3fd31474b33a817961b63770ce4dc211904126cbc96bfcddbbc7ba4f0af2a0d054b35dd93bf3f00fcf2c9cb68adc68fb0de84eb8275606a1dc7bc65bc649a50a82720abf79da99d9e61e349846f962e5f4346e7eeb31da1e9f9f9e4cc0f67264caf1478567f36e6db3912e27651b2e6482b2bc4f3728fc264e9785cc4c63dd71bf886eef067521c84bc2163ad95646ee83e47a032a9393b6ba176f42b7c399ed0a37b17aeb60ddcd460237480065b0243a708f3e791cc7b56961a39cebddc3ca7d6295f38fea7ec73cec4963c7bd3b15a9674abe8b676fb41a50f62c0b880bab708635c5638baa83cebd2a718c578922e5afe6291f2ac97790b0c4e28fbcabaa6a15bf52027e42b97c25a7d3b362191941dd64591b3e9de6b529eaf5e03dcd0f1468cfe9d5cc7366ebd8d129beec819b3d4d52bfd03d0ec5e80b39402b0e93e2e7fc8fa67715a64dc44a79cd00b84dfbe1468344cf7e751abe88499aaab4591b20794938df53d1ec8bce69383530476812542e18a8e39bf003186503748632cd92695bca27307be8b3a759e3b3d7a77e3a7a5cedeaad99f5509c4c8733dc3e8efc2f3dc4b9ca7796ec0ecd1f78357dcdf3ee9196a7be515626b92d007f0b06bcad0422a8f5c79a42618cd7dc5624b4030dabd74293fd6685e2a882470bd6de0ab4ee462ec5277d9180d1a58105463a3edc6ebade1ca6fac9fad21fef052dd49a5caa64693fa2384635524f20c83d78e10d35c3d9a07b0acce2f1bbafb07a67309cce6ee7c41182041c11927e1139510dc232060a31a7b12758436461e177145f02146b886481dd1f230fb1c15e31be1c0f3d44d99da104b0388ad2cfdbda97696c1d8a83dda19b8ecd68217be03ffca9124e83c8e57b1914418fd0f32a277139372f064adc32ebd428c09aad13144f801b3cf9c4c1383c5378900346a5611c8a6ca3a06ac1e53804c3e1d9dc0d046a03c467b44c781d20d2505cf8800d5fde4563a7a9ea4d04aa41d3dd52027f0728e4a7387873786ece632724568eb52f4527fdb274e3b05da30cdfed4de881f25bc450ea676122cb7daa41a20d20df02bc4fdb285d34c3b29ae91619c87467cf044908bb998657f7f8a181d76e7c9c9b309498154b12c58828d4d52cafe4f20db26fa741e98de417de6ba7598fdbdf6be76d3352096664352a074f1e63dc540ddc0561280bea515b4280d8881901122880d70b67fc0ca0836cdf0194fc4bb50667ce0c480ca0e357433e9cc11ce40401b9265ad7bab48aeb4f1409a9822468cb58afda74d75b61f0856aa4e80cf146662f30603c70508d3c4422e45a941d285de9e6e171eb9fa1ea48741ff664ce084bfa8117e20054785d955eab450b436c86c9d94f03f92b437cef7564dd1f0c6eb4458bc2b7e367a74d6e2a40b06d34efc623bc8e24e441dcdfcd7f4da4189a1dc410412950448afb30331695850dec52135428242488cfbeb20057b85dd07dd6f901c9178ce642b069cbe8e75dcbb06a3ca18fe648860079dcad6e684f7da24f7f9e715c68d71021d4ffe594d620701a5ff473b4b2932ce578d35e2f6fbaa00ba01a33efccf4aaa52cf1ab068ae853ea13503c092cbc86d6c140b782605c31d0a472b856b0966acc4870c710f1c447d0e08b2f7850b790ba11204b663b293b9ddb39b15f4ebeef900cb61149ba1713d8ab60cfc0b453aba10864900fa617ef09009ac183ea8ac58466c99f7c77d13b09d9b10db55e9c12b660095b1323ade78d7cc280b27c3632493debf597ac7709fafd98958ba1ea2d13b6c4a6be4561cb32a78d40d2fc3f0572a4f505a78194e8e81248e88658aef313537939d7960be1d62c285fe1e68b3b2821e09d52068d5d8180f49deb8ba671b285e793c7e68cd3dcc427eafc03d31814705bb6c2066f14ea1f078caa6109e17002aeb69ae956d01cca06497802aed63f6502cf895981d8b968b2b8c06660c110fd87416422030d1c5f634f29c36ef205a83b696ea265295bfa7ab9404b85524e7eb0efee523a95f10a69dcc3502641a31eb8a425b2ac48de2d248d7c245a73d1b52a247ae22a46fae0aa47af1684e2018fc7cf3667f5425da0098312e7249d246514d96256c973c6f5b8af51153910b5ca1dd34cd88452520a12e205351e182ba6d43b807445152cec9c8f6a0bf3b8ca9117169b807e7336c17c82f353e22efecb86c902a1ec7bcfd257a6bd6810a1fa9b8a24514ce53ecffde6f4a48dd254468ed5f38ba590e16be163f84eabd971bfffe15a39fcfac3b5a1cf4fd1f2016c8ac30f3e208552d508fb9c204e9a23b00c1837814598e727d8e7048ecd304cfff87bc4a9f106a2525acccb752a0eea2ce2d8b0dd53499a312792f90efdf8bc2553b024fc7be1d89ac7521a32f13413ebcdac400cec8be999229eeb595969a7e2d23e634ad5385ae04488dca1f78bc97ccd45225c7092481dd8cdb604ada69e4f14a9be6dfd77dbcfb18f4325bf2dfadf79dc4ec198323edb3251a0dd95b6e31d9fc9f71a6785f856dabb42d6d856e2d9b497d09263cacfaa3b3a538d44ef9d3b2a085b77458c74b229941fa75cd90a0db18fe825cea24cf936c7ed5fe96a8cf89263a6a16338be52ec4b9e5fb07b2274acc28d0d52369ee38c1517a1e4060419fcf82c9696a96da08fad6286d9452fd4c8a3c2d9bbc3d43da4914acbe49d50f3990e97d75289934d414924a5031587d636833200015eace228559a6298399a7ae85cd48107532a08c3b72d04b34314d49f148036249331f57c634dd2532fe3962cfcb304ddc60de27b3da92276456a2500f34aab642164a2ec768c9d932b10014d7f90acb07dd34a5c99fd7a2a982914756ad6063e535295d1a3b8e9483a9dcee00e38ac183f1958f6a8073118becc7d4e0327b40e1da4009abe0bf18358410e3822dc96ae51416b636f9891f85d580292852997ef3374626cf0538791e20931b5d1d9fc022b2d6ea8ee593f4165f848fe107678c97ac5203aa93bd2db642ccdd1c26a7ca6b711e4b56be2944a0e752a267b0aa013e29074dd13652e236967c37cf7b14550d86cad3c12f9f03b2cd95ae0b464df211d6e523c2bb789327b23125b9085a4dc4bcea06ab9cee3a89fdde96ead8ed4e539e99903b2d7fdaed23ec867984a09780d354448873c24b07259755c94a66825c39955c0e1c9bacecaf2c17fb1536b8993717ad7e726f120eae92116188163d4d1e2159a085eafb354e78e3dcbc86930aa89cc26ca1c174f4e3fbb292658c379621832c7fa8a4c0b4c4f6c40442d76a87bdadddb5c2de95cf620d18ec240cda29b5fa16dca8f077021742fae4770164ad4af0f6f0fd1459902e2a021f1a81ff73ff08b4849876604fff6eb0d060a331435125a1813f1de4de3f3289df3fb28b2a32c17fbc34d4a7c114f86fb00092401244a6b1b48bfaefb28c755c9c39be43e44ab147a1928b1e053386a164726064151694208ab48009a1ca1a4fdcdd7171176f6b3b9a03e7a65e2508971a5bbf13a7cc4dc7aac3690cfdf872b3237a7398fd165bc7fde6ec0cdc309b0c82c8b9e7b81f8e391b1dfc0df47d080e311cd08a21d151ac5dfee8aa50385c942b4605eb9c46a131ce6f21c03d9f4f0ba0935ea9f508a8a211f7a0576ae9e0a3c014c363cee286acd63c03007756c016aeff343fc45c45f96ba02ac9bc0cddecc48fd89b640efeb82a45216d5720cad26fb24e1c8c9db2f223cfd96b62fc05a53abf2530b02960286290e50b2317d6cd1810177e08f1ba495336e616b520fb1a64e0fa1820672e9f3b6fe6dcc8520d0344323d0f3eddca5cd9f95a07e2cd491eab1fefe2a50b864812a49645a80facdd10a1c85f6d15e6cdec80ed207a29519e4069640e7e3ff7147266a7b037f57e325a7146e71fd07f5146eefed28ba71429a2eadae0ed0044a62d73f76ba83345a3d83c5a5da5231fb8b912dadf29be01acecf3a6b8d700e92a0d1b20a08df00e07085b7380705e0788133ef8bc459f296ca5ca5e6a3c12f8792ca80ee193817d563b79647e6ca541a71477767436f0e15a2eb4c05672453c6f46101589564369e9f8f5fbe925bc6d1fee34957a0ce50cfa1f3a492fcaede66aa7563cc178cc41f4059758d2fc19bdec8e2b831068a54a276df4f2bfa4d71fde55a36a1e962f70d151c5aecd4414c45bd3f2327a56df18d3b50428e4bb7bcd72f22de3112ecf9c99054ac58d03267a747821b580bca8a6529854359e65be81bca01e6435696788b523a1763a542d7e5ba0229bf90076334e471a93d42acafa0de680c36a09af553408973b2a68fbb73dfd99d2e3afc4566cf8bacb0c0445614d57d21c4151e0e3361085fc013e85d42d00fbd4a068298e92f84b4da3bf8d41a1ca43b24ecc524511b3314c98df928c5463a51545a0f12b8ab0f9868b8445d19fa7862757ddd4671a29de164545fcc817cd61b81172d9c365c8289a4ea3352f10f20d3a8544d6fed930780705ec53bf2034e2e82f8aebbea14419daafd237d80a91bcca3a0265077653053b3d7f958f46b1d84ca929cd36e296dddc2d28200cf698dae6a08b1027709a4e20dce1a9cfc4c853676800e5817be96e8a4462f799364355a018b01b90407997e9101fb24468780c775a20fdc2385bedaf08a563e60c3cef3aba77e74bc1a06924865cadb99488b25588e3c4a3222b55d0768ddbe4b467e0926bbfc1b312e2338202d817abfab41e59a1467cffe9b210964b7c9ed382f803d0ca39eb820b2d5e4402998ada0cc72f842327472ee2f43ad942fac38d590b3b3826b322ff62b856a70c04baa944c210211476cca6ceb25830bacb3e8a8a0643338d8a7b4d23fba946516d0ad39d10d529ad63854aa2416e648ae2eeaf5ff2a6faa54eb5b629de20d2ef1c28ea2bf2cb4b1d0295a42a12581654f8d6353a5605470aaf31b5f7f28dcc09c187be83c1fe18f31150ecf087a472a82ca95189cb149b3147b593e042271809c5421ee943263360c1dd0f11425225f1a556cc3b4447b9fd743ec61bf7774f662b5827c4e9f62fc70c12097b2aa1bd4948b506340be94b2731770405ef437425954a7c6204365cb906fad73ce36acf9c892e82bdaf6d395efa30051d1f694b3750e7818f8742429b40813299ab3c922a37894ffd5080c176b2f3b16a8b1df63fb99334c63781f3379064f1d56164f5b67b997bff650803095f41ab865fc6dd26847fc074c034dddfcfc699ee988b6facca19a1ed0b8807186b7ca78ce38fcbaf6ea6ff038db465e8878053d8b0480c2e4927042958222a85b7efd6e4aa54205b01ffad825153464d166da53429a051474a0ffd51f5a41257e98225f8cc64d34bc7610eea1cd6e9fa61b3f1557bd29a481ef06c043c37d36664d16c3f3fbc6137b430eb83202cef633b01ad7c62ba029fae0ab4507ee130289606252d80738401a3207d2c1c02be66dd8115c9fb5067185639192dbae47929bbe53007a28b64e6c4d91ca8f7fcf02caf8ae0853d96a94518bd24488ef74830e813525e9d466d29945d29155883573379595cdfdf4951e49bd113dd20af75a84d179ceebba35e621e0e5916b3cf9190d2070b692daf9a78499f65c75a3dd4f87345ed153256d7d29e1552739b6543661adb58f51e883cbf65513c3e2c1ae0cfe813e76c4546024cc78807714c50d6a5aaef12c317900e4acc0d0fcc46466c17fd8ec83e86409bb4436c84692022f3f925561326421c3fe14ea10b9a913e463c50448b78a048e176a088c1ed405d648a7ff06f660b915db773afe322e1357e1fa6fff7383449edae15bd129be92da1d28060a4622ef5d6615e984501246e7f1ea7ec60b17be7a8a7000df410c588c6348a59ef7c2815da80bad282e1deefdb928c617360be1e79127ddaccb7f772cda82c73b9f8c72cc9a6b2641014dc80e42f88d872824c3390c54c59cf8f5623dd096122713227dcba4d7fd2e2378564b71434a196439849c66c09b1669a6c0acc27e819187db47b5ebd355051a62e1ce0cf0d89632e9d5c4d632228af742e89c914904e32091db19f6fc025c3242cba8041e4613bd119a4fbcdb935eca41469411895f20661921d8c334484559125c5ada4871b2bfe1a11803a4158af66e84d16f34bc457212b3b6026fcdc4fb314850625930e00c341086ee4e14d2db124ccdd192505b4db5531fd200baee20fee18d6e0c767c10a373e01045638bfc07e1082a83e3629c3c40f7920623edb030b7f100ebb7e4cc51c118402df6d68c05ad112e3d9246936f8246bc3eac974954fe4e54d32a88195016e58f1d3ee0ddc5dbd078c2ee86eca6486542effc975d0cb031fa7119497427bb3026d82b4ef4fac46e2fc1b0d7849212a2ec14820c08d4087a88ddc61c33f083a9e7509e159fcbd66b1a4a3a6ed09aa08c7e08fe672d57b8ecc2b6729a823fc07ab80a474011b734e0bec2d86e09331f884d194ac6404327e72aaa8c4c2d14cbf5185ab8e13e16eb13212c87634d6a3172675fc89ca2622eb0b234eaac0df725b4d8c666a0d13de9e47ae451255eb0397ccca70072c6e46ad75ff7e0c824504ba7b8260f305db03d6c92e791ec4454e4b5153dababd14fce0d531ed9027b65fd169437b641f4bd9e5ca111542cf371208d0e7bdcad9856844a25a81e9a3f1bc850d86b7afcce2c17af3eaa7091997e7fc2607b222269768fb610d75edd0a51731bbd9fefc47a451bf3ba08889aecae62dbe8fb8424a309412b4ebead5b912c01f111de941227e460f8928c9d057b2d3b1baafeba8b0896a36240120f559d4880161695e33adecc6166394132c0aa2177aa4605945f0fb3faec5cb3fa1bd14a59c7bf5d56e0a1cbf7c3a77cc3eb69198c5f57c0594b6808231f9fbbe8857df892346c56f4725d00e2bdba04dc57b559e1da5c6f12c33aa7205dde2aae002a2f2ab4f5b2f4e30c8070ad5cc06c4c84c1990e584feae8a83b476b784a8731df95d349c39ca3a5041b2b77a8235b78662857987f6f7def9730c29c8030ad956758f443e329fd9d7bbe4b0b85b87b056b367bea1679ab6f53113a34c5d87f7680d7a30585b32523466be6e60bfdf7342edd94d9d94d713734e6636dfd328e5eb4a5ecc69c19056914978bf7223ed202ba7c6539de2a4c953533f11d9b00a616f44b7fd2877519e6a9d7dc379b3736812d7f753b2ad47f965a0f3812cf18447f88b7c56841d7e2974116281bf2a8002cd9d824981439c3ad129f514d94ae3f7e9cae9a54322e33b8e0a242aa8c19e7b86a19a7604cd9267c36008f2e54a8273336250d249146051c5c92ded448fa1ce69292d954b01298da7d0ca91e3a5c75d28f8b6063787c29fcb2de08da415eacfe68c2b134893df67e9f2ef28ec3e9faf6c0e937ee64a643bc43ff6258367654acd334904e779562493cf2fecd70ae43e0068f1d5c4b7a89381c74517a4c9770f9c8b3a2fa7a06a2d42b7490459e42db0f9891709a8711430d271caf3cd810be027549e7a9be0e4816facb834a8a66b58f2e3a8390c5e7d88e1f91c8adb061d4574ca987704e1d649c1567102c2f1d01e1ef8802f4b924daca1eadb8bb354cbe159f14c87286beebca0567bfde56b934addb0289bc4d7380e56c20c5dfc6e5b5857816beb7eb39963d9a6dd4ba5867e902b02feb9f11928460cb742cf81f83a0ea867c865c7b332d174521eed26e60e932612c7c4a59fa3c86b3bd8583b1bb72dabd0d0a9f80e1d5a2e91f846d1113428171d81e985245833ca00f734560a2a855e7b5ed154e1bb1850b9b1f4541d6b7dc19d50a256330f71b7f1ef48819f198bffa8c0436ae9d36d0f79307e8d1efb9334e1cf3fdca42d537f38369f59d61c7fbdae934b7dec7f1b500f4293e97d5a512029a41e1e8e5455b1c059e41a39dce83652c24410820d6aba8f6c52ea2d5f52d5078a2b7c8a81549ff363cdd11f6335d3ffc11f6fd00e4d22975e99008bed925302ac609a6b09a041a1a8c17f937f3f84a88b8a5e20f991bc7f2c44702d0c9139068ddd9bf6ac31bc787e7c4b936b9ac811fba9df1395d91b33a65357c960b9e9832367a622bfb72b50f1e11a9997faf931bcd8a33d62ef07573353d0f0c48e60ab01d6289154b3cb25920522a5f8576dbd7a1af8ca495e48326558981819950fae54f52d54be206fa687517149816c42599b622c270c31e9993d3483814e93c619be8809ab2e10ed2966ef84635ac9db9aa2caa790e322f6da00f6e43d7b63e7fc76020a268e61cab6f59bd2ad960384c83416ffa78978a21afab34280c80fe911017ed30076984c5e2388cbe99c17b31db00501d2df6a555fc5b992b1a60d9453521c0eadcf184376a9165aa789040bafa4fbb19a9146b7cbe234d0b7207c136621fd20c246fa95c825309025922b52fe9382a10baada47b886f53201498364b9180896ed244d2cdd505d682f1409365d695f92d1ae1f9b7975a2e472741c764ffed95485253d39e6c3eba11d8544d0b111c7247b42a393669972c9c03aee7ff64b411d851fca329b033dc6609b5a0f22ee017210cb64296bd2a9d6f56fe5cd78f4818e17782bea833164c0126377d4c28f8c911d5ae3780f5fa5bde6f0081aa1d6bf2e81ee17396391dcf4196a1dcb18be1bada34bad1b99322ee791139a2883574f7bc00f10729bfe59543385aaecf7c0236fb1e46e6f9fedcb9783b5f53bc3f8bcfe1cacdc4fd0531621f73db7e08a11bac0bad49e7446523442742e92963645c6e5c3213a0844a5f14f9698abdb316717ed32e11a3e420301c9c9fcd0b6a1a36728a86c62fe6cd0060c4774823e2057322067e427a5f458ea7cb0fd2cb291011cc26dde4df904863891e1652c5c78d212211d9da0b0a4424155063a88ce9eeb425bb3ba84444d1d8f0f54fad49e547952fef3e023d1d5cb4585edfd80fd5cc65f0d514660c786116033eeb4f7d59c6be90565681cfaae2edfb73423e6b8c4a0080730dce35aefa7fd6ac41651f550ee235216b7757217a08eea143f52ce9876880a67b9d197ecc511732cdd2eb089d60e8d55b75bb4a7abda36187ad9ec6616053de6c76ce654c2492b09c0fca085a90caa747dc4f6b918ab4264b98c0ac128bece8d71d19916f1d07b49fc477aebe0454c94485aab4230022bb24c5a61561ce32b36c085068b3380e6a3b9b270b39eab5461714e077e40d2692d1c28f6bff805c7705d496c1b9115284c356fce6425cf3822477502f2942a1de70009473a1c50df0e092bc7fab923c06c1bfcf8490db11702c0f71328b1cb3a16ae8b8302e888ebf3136edb11bc662092322e5434d00758f7c7d8931275363446123e0aeb41dabb95f8b4ac2203f78ed8fb79bc254d07cbcfd080b8908152befac56e3ecbf63790628e0530c2abf1237a84ffd1449d216cacac77f7361ee55239aa366c42d81855120c05fb820002e600bc08caf381cae5db18dcc1199aa04f66e0fed980c4f06be559f1889a6309a89ae1dcbeda17acdd7011b9a3e09f6eeb652594882b8dca1a65bd511dcba8f3252bc71803c79d7839709b9208a049e7491c621eac1945dd898ca9e0ccd283641b5c16d3e359c85c78c0a67312f7461f9ea9db57578f2149995a8f81780a8476c6a5d7cb3cdf80ecb1bf8a3de1d3dab18e64b90f9342ca3d8698f7bbf7e141d7eb548c089774bc594f49da86b953a83644df7b16b7124b8f4d215fc6c21068cc579846bf6e4c024435aa44c7f48e256deffda586f5c0771f49591191081d5dc221b037a4fe7d3bb9b16b417f3c2b7763d0c80eae69f0b243d2a9d388cfe26c7c4959d75a784f75182d41db2ee589a16488fbb06c4f7df5a6b95e854abb9e41ea978ba28a035a9b448b29e458277ea6d0c124c58dc473db3c5705a51a297a6b4507647d329914870cf5270cf4da953fe8ec0e6dca309a8828571b5dda40beb265a030c4a2b862670ac1bd480534c61edc692179aa46e8e61162ea208ebb1288fe0fdf7554388d055ba3e90c0bc66f311eeb1204ff602cd9379444c8b7cdfb8fccfe80f847f4ef0c34a305fd261a60ff8b7345b773800c3ad4084c47ac2680045a415298afbd7684f2102fd411c03060575ba471c9854a4a50ddf4696d700efa6b91c0773ede68b8e3e8aedd2958acc0df3cf005015d279df10aaf581f3596364e6b8b077e8e0756b9da0a221bf5eb526ba88c0341fbb11d5a6252802ad9f88cea1b588e8790a260c6bfe1c2a64b698e42d433d3e762628ed0a20873fa4ba8e8baf92afd6d0b62a7b4bb5c9cca3d488857ea42ab83dbb58fb9faaae866440b420f1df189962788d0d2ed9c052e6c16993f38d2f2e49c41449c4c0f8ab02ee8ae8501b5664fc93a7582a7caa2f5b3728fb07184780444823bed55e25cfbf15d42eec92056d6b30a04d061b3b5bb554b05d4db3dfa3691e0eeb08788047a287341faa5b83bd3de6508f4c4106462df3107105f8910c1ed0143bdf7825ee42f57bae72e5d8f3df17448505ff015eaa905103b022afa08dc7a86ff0c060947f75002e3578ddc3ba41a78d16bf98bd7e3d0844a94fb24b2e123129542f8c2d1fa7a4959fb2b567eaa370e7ea12ef4945d88147adbdc3530d67918077b78a230d6b9905a52eeab835833d21283027103def2d82dd3593c2479cab2b730d26ebf1a18aad9220fa41f681330eda45f6ab2881157451d8a42a5f8c8508ed2ee08c1eaebac40e488eab824945395ce77dc5c510e94e9ddcf2519c786c141a9ef7afd49577f5626ecf1a2f609b06f626899aa3a5ada6d61b970c36c3310461e8cc584f6128fd73289ead2ac2f8c58944ee6dee36b1552ab0b134cf8a79d149b862a6d8b5e4bde29d3ff97448cf59c50055d01523365e1f70c98c0a4a7046f564571cc6466f9b5d352c6a980e671db2b9e4a806f070cb20885ff819b4090d75607daf0647b134ff07502dfc3916729e1abf49af5356418c62813f02cf718daed1e3fac2981b3e3a5cd20bbf4b061e7ebf075670332bf905de2f296a755709d1485a99c02ce54f85061becc5b1ee3afb571ad3107ec56ab042b573121cfe99d26cc5425dd74498bf82d529b836cf932e81d36798cdfbe76f77fad0d87d0541339423f105dee00fb77560060ef0207dc0a523b304c9b1bd85325204a7cee64c3aff95d86684c7ee4f2d292a394e06acc90017daa06979a6a70c0b00ae4afa6fe180b10a447fa15969dd63a9777e2b383fb915ccc29e97019ac3cee0f417ea76090ae371b68e8f13cad67b43beecd3f7aecca6d5d9cdb05c109e066560f52047babc49fd99cf2406ad47a68ffebff0f5cc3432f83eb0ec044afd2bc63900bcb9a765abb7a96d27a02f0a51b533b9e0d6fa779076afc4541e2718bec61e2b020f5c94d07f9e65b5cf12be67b61538dee5f9d1889e3ef11f5ca2f421f589b8db5e57b8d8f43bb9238abecb38ae41870411ccfee300744a67eb509dbcc7dd0e5cd01ffd9f26819c7d74f332b0b7c5ae9887ac7fed43e8001f689219411800439003d371c0e86c63fe0d14f1661b5dee0fd824dbaf8381f764802bb26e0fa924b492b52a6aa352af651464604229245e34fd50120074e558cea98742935e18ec33d8567847e86f798d09f57c7647e22fc181df3d557f5e6642df8700fe4f0184c4311f100909b80231449fa1e5601aa6fbd50bf4f0ae3a73c64757e0e26746246bf90cd9e8cbcb44c31b0da0aee412a24e4ab324cf7fc545b0b1b55811db780736a24a552e6e59902d55569eaa85266a0f725cf68a54cc526ecfcd0076b7a101a302d3241b2451f9e42a556439a865729f3a518206199667ff1e5f2a33d9a43ba8f0aef71d15f34f6e066a27740bebe0b6d96245ed09a5b12f079864c9957b90804b5ced68e55d145b8e13764cad40b764857e1589f2195e87d54a30ac295c73c6233c7d710d0270912f657a93b8210c994752775a54fcb58cabcf9923dd2c949b6f7d720e5773775682a5070068f22282e1569273370d3bdcf1ae2936d1a3fa9827579bd3c9a2f04c7399b6d2b237f5a6858b368e3f41e2763cabf12990acbb1e88ffae5a040725b6da9b071c628253b94de858173152f2fc7350ec779bc0605e49333ac2b506ab84b7c4d3fc206f6d5e5ab11a7084c87ae73b2fe565300dc33f414e1bc7526a73940b08cc198f88b6a8626c07903343a174dc3795606472d1a777f0bf07933d8866d51ce611d8e82b99097a7db388373da22ba4138990c3162cdb5d9c7fd65080635af4ddffe8ec74de5650b443fc04d235de398108f84ec434f9ab58b53808c9f613ff2d4568103eeac16051c11c8d24b7ae21718bde8da3f74bb294cde90ee792a6a7a747ec5dc237c0151bc712b4d3fb8f0bcf3891d9f92e17c01e1d2830e894643d74f63f980d8188ceaa5e4205495cb081c20784250038d3bb29c3425f52d6a97bf6f3a1eb06c29d29056958d5c343d029f2a11191ec1b176608ce3d586c277566360ac177f27d53f8b110274b224034304a228511a8a0c0507761e8408108dea77389e921b6da1ff5495f0de1437a52cc54c5017694bbd5dee122923eb0f9158a79fa98e813888d5d93a1cf96280970dc0a0a23281fd668869474c666d8d0ee563aeb1cfc18bb7093b036041aa5fdd6d58e06c6646b9134f0f83f30696ce043476c30abbbde4078626ff4d16f791c98312435ac92e9e67f582d508fee173200669e8122850004f71201d2a7c87569b6535193ca9b3a7f544db6406b4e4790137647fcde63ff8b9fb0583c54b24264e2cf3d43161d3c89e3af38abcc4e2f1679db3d304b1686bf8a18dca7d8c497fe59ba5099f7ff7422d38818fe70af94851c20e493496635ae81d09a697b5c8d284c1a9a4b18292b2c92ad4f9c4491ee9e0adedd875e7387ed496140a782b383c1840d2f0de731464d9a783fac7fd7ea1fcc8280145bb7fe48cc72f01b3d8d6dc08141cf80b2949a227be67c058a9567a7a1adb76a93f04ecaac0152c1ca73b08d4845c05ebb7b2e0288198cc183f86b1722b3d134b407aa450a5216a945c6c72b144b7fcd4da7ae3374aebb5a359f12e5cee8e50a09955356adb322f3297cc530a495bc32bf212d7077cae954bf2efac123b5dec6b9bf82f4c77ce8663844b69deae29b05a6304b4b4706ada9faccc78828406b46eae43c87a0bfbca7df4f4e0870e89c9c546fede4973871e6230ff0eea6fc2e2937e3c1f78225cce18583c1d9eb796eb0e425f1b305dcbea84999e3c6c929e87df2d98e457397849937783c414ccedb489f71990775515ad7e96a9eafdf57846a4006020d570fbcc060190cb2a9603490f7f1a7a22246e334fc0090ea2cfcc97aa15e5c69ba095b341b9d3f0ad57ab2d8e8bcf20380093684e008cc6466f616fc2967c726184a995896c5dd5e4302658359b81385bb7732a0fd6acb3b6b505c71b0d9c5e0dfd0faac54bad7df93ff4221842d1aa94cdf7660263c6f305ee8cc19bfcb744424305dc9297ed737d245c2be8f2480c7f6955e19a77216f402b5613ff511b4a21763f1249c36b605eb5778ea349068a10923807f23519d45ed1b236bc3c923074c041030ab64106b4f7c5687348b7870c737b709261994cdb4d84707063c49bd4f1116b3f4ebda165f49635a2d7978e0c42483b1b220aa7cfff5e41bb15eaec5e61b1267d80715befd1643e678e42ea100fa1b708dfcf1958fcb5319aff9f49aebef4fe9c1aef604180e5e747fa4f36a547ff1950c135eeacb4fb60204663696eef9c49f79de64e3c41557f150dc4c08efa2bbb8fde72257c08f1bb3053b9e1b98d6639faddf3704b810495fcf12dc028801aa66e496c92f6ac6354f90f8cecd7ba21f347657613a0d48104a9e04ac4805e5f6bfc773e4c4bd2cd16acaf3ab40813d3c3d22fa4ea6fa841258ab38747a2bdc85776c9172a501b51f657fce9afacc869103f67f2d5ac69aa1c66ca1eb6274a1d633bfe6ade41e92a1a4254a797480ea0410c1875dcd614a908610a19a5ef9822c785eafa899ec5ccd9f1806461b3dea290a1343874add7906641fae086b3a8c54e7338aabc21e9bd8dbc687ad960712231a09afd822431ef22914fe6e38e4c605a8ca27df0c87c80af5deb95d0ef8d74854d0187e703d78f7cc5b1c0eec3461c5ebb7df45e0b03af0ed95edab7267255a0e38243b2da4581e2b8423e2b0cf4280a018fa4d19f43b3289a84c159c1233e88863af2ae4ac769a2063d72bdbee7ffc4683a10e4133a1a083b0456220775a55fc75fa899ab9578fcea21c3a44f15587543a3d1fd9dbb9be5db7e9144097222ce80b83602c5cbe362faf6aba03b5fede54308a5089928451bda0d40b3d8650ac9612a777db0d2dd29a475e051e92c21ed981002e82c69b2da55996986c6bef7a51dfadc144a2fa0ca7ec66f157146c95f1a80737db0f6c8bea9c2416d2fb657b08254f5dc0109f01245b2363a379af36a45cc8b6af51a6190b6c91077a494d0c2075928e45f8b2ac2fc008e03e92d0b04bbd1a03a9023051496897d862ca20f5e20baa935d523c8cbdcc3e140ea10a5226405099ad7337cb259b889653b93d09400412f70858d8a2d0c83c49402fc06098f371cec59db15525fa8f393945884f6ccbd7f9102afcc8f5e506290f8fb6924c42ffc7d43f968e35f34d03e804891b6465786711317e937646dd713a9faaf4fad7772a1406f7f609c9c11c3c46270500d3d3dae5ea87519679c4170290d79a398448c754af81ee7d5254281c42e6d8a7e84d7fcf40384659054e6a4469ed50057a214503e54afa1d0ff0e7e9718baf3e5e38fdce03095d2a54fb96cc67c52dc76af646dae82260be931ccc738574574c33f694ad2913cb06c46dffdafe2f1c2c8bcff5d75c7859f9f2e8d4d13f196ca8dfea59dc025b5f54a6dd2af9bc1e947e70cff92e28c229c7b4902d09330b3e7ca56ce136bc275a74f9fce9c7d5c27b49635912c980d62a089d89df3f48984a433dcabccfffd564f087d8e211151c5e12240c0f6886c101d298c5f6b245b120b173fc1e6cf9033dfe02d380d2be0dda3ef6b7975d1f094bf15740a99c8d7d85edff0f8fbbb0a976daf26488d4738097af008caa1efeb73be0d8ac9918571ed46308457c0a715586cd3460fe4170b95b14d65ff301593977ca26aac07fd1f7553a6dc7c70046231c6a4111930ced2132c7afff8c8be894a2ba91ea3d587b51bf5d23135a9c9fda0f0fd4f9b00971a2c13b1cda6e28b0f7f413d96369bfbddb1cac6f458e4f50413a9f1d7005aa403684ebc5f93232f6721eedc5245e479e873a6566ff37e77c64b4d3651f4e6632a782e1e126b9233d4ea21cda3caea00434700f533bde2fd006c56142e3d89e28e287562a9c71087b4179a45e149a7f38a42b7e01551d61b6b276a7d059e5ed19523c7ecfa5516a957f065f355c2781d588702507cf25ca59ec25b00debb9273c37280aeae1aeacc6bd69375b99c59ce8232fee2a8f2400b16c1f43d63a6031a5298fbcff898e50d89e379938136695f7d4e4cfdd2a4fcf1c0cbafd2735265b4336254786071932b6c5ea307b7e79a942fce175a23fa14076f571b78118eba68c3470b5e0152ad10e63a776ea291f88af7cee6cf36f7df711a4362f5af6cb2da4cee6ef0dc609e17e83a9e72191fa2d01f05d5b4631058e888ed2b658c899195b67afd8d1184fa0284d9793ca80e4c83b5b381c5021ace9fc7f649fd5128d8bad98093ac5142fa4bc7e5c64e72c11fb446ad6ccf434512788b5b865253208af09805b9490b0dce994391499ef59137c74441ad2674cdc4f4508786e71deefb84e6013e5018cdd00c39cc8fdb34afe89417b8bdf52857c2ab662cb268640754834bcb3c431175bd2142cbb9400b4a16c1fffac3e5d1441334904dec405f42deb570d289200910e016db5aa8d0b52966cefa938f73cb1037594e59be8b3e06baf45a0e7bf10caa859ed5c00c7326f2b02b271fa319763e0cb4bdeb1176c178f68e05896629d392e9317dad8feb048edc311a9be884832904ad7407bc93e2e177650a3da2d3c50121b8f07023323ddcf1e08d26210e49a2ffd495aa4fd097f888ee94431aadeb9d1bbded2f58d18b7a4ee3131dff61af35799d51008163e64231546fa7063fc53a157b03a84e77110daf1df47a706ccc5dc24144159975c98dbafc1266996f3063f2c59ebc6a533fd11246d559447a68a7aaec8b1a3eb1deed1f54c953e09570591fe35ffa7647741b4be5e6524f4a496ee949826dd1634da260aa9db903eb2072394183b461146c277e28cbf0a97d87b062fe79b3f32f54ff597431d2d7413581d7e2814ed1d051cff5b3ed40b8cb520002220d8b700e38e8b0d3b56bd84749468f67e0e92e0715d1f3967d72d9c85897acb5a3e9c00025b4dc65ce9b00b494549e8b9d27c368203cbf25b7fc91d101e68110b2427cf09a7086d7e4fdeb1d3c29a21279601dde1dc2bde00e0361db00ade5ffc06512ae0717e4aa4638e1f9ecdead50acc50985fa710ccfb242e84b63a0cad425ab8fb64988c9752f95c0be7596a28b8c3ccb5da481d40e1bf27092bc97e485441ce580c1ea9223c64de455adb91ebe0fd6ece20c24c2da87855c18cda28ce64edb35ad1a052fd3888c6939d38055d660ab254fe8abfc60d6e5f370e01281b2f1c6418ba0560c5f6a405b9a330679f92c1a8cfcb4434192c34427d16c8d3cb57049d410dba41f1958355a606748f6ed2c6e44797a64c2c919f17f2658ff198926f037f96c75c94810740a0fb4095d5f16985eaf14e429ac72421d42d31c96c45c1a722d3eef757bfb58e827a3c2986401f42efaf5f52525cf4d76929e933bb2fc50d66cd07b9d740610bbbafab81d222f3a7989ef86498658c325bd482dadde4e94b559e6850d4ca99ae1f490c5fde56553acc466c1a21398628de882d775204fd99d855c717a3c82c7524df24b70034a126ced070bbe51a16441e24a20d60797d96887ae7ae88c2e578f24710353f018c7976f110ee9b4041e75c18b363ff8d90e5dc0c0e6a033ca61fa487fdcec2b4b6b0b184db9bdd8dd55e5f808afc64d68e13b1c41f8f9d6d3f32e060e0a9857233e9784663e50c225edc86b54880a766ca53c7c379c0b7ab1b91905a101fc4c1d9970d10aea4ae46aa681e63a77a01e4e2b9ad925f4d0e556379b3559ee6be247522d57ea89207fba5c0acc0de5591667550fbc827adec689bcfe31a752e708aacfd7466678154be9006cbd2c53b0b15e39485a62560c4fe689bd47efecda9f997bdcf3bd3225e0b1e6167ee141821b8073a09007793aa9598ca4c39ab24f76b348a1e42d022b8f45b9f599018be85d1deeaf2e0b3ca9dfc15261cc58df4f5c1b5ed6d49dae35c69d76b9a4fcedadc03707e1dc22065b72f816145156e65a750fc686996d23081a09e28623063020ba5eebfb345acb2bf574cbc0c0cc25e6c523c98b923fd6495201e5b7a35de1d5cb2f739b84927d57dd7c1075df714d29254312b23680a1b7caa0f4e37e6be8e21adabc05df7ca013a71b9810fd1377e0d9d103a2205f93d82a6e1b9fba702e874fcfe6f6bb758e54c6377d49b11f5f3bb5b2ccb14ff7f28426cf19e9311060f873f8cc088d3b54f01752a0f4b0a8535cd9898ed558995887d17ae4e110be1fd7c271eb0352514a74fb6c6fd97e828ba95d26345a4ecb6ad3dc4a63fd79c21eac4848c15d6c53a8884c28d46851ce8d6a874c90042c2c0e3ad069ab484fa1616612dee5382f63a3425d67f4636aad3952bf4836763a7a689ab1bb70b2616f19a253fc0dce0ac85f768ef87078dc5056f90874f655bb626b7c58827c10dbc7fd6f6c547763964f5442521d763da4432636a12a76d0325a6da8da5ab90b674a967143378b7c8eca5d45a472ca18fe2895ab4a9c02feff6236f8092e5a316bdd994085721a3cbe32413477d93942e046a68874741b9b093abd2fb1fea6623cedad715a37af2623734332369719c6102ce3c9c68f2e3678f7d948f7bd99e45ae2e6242f0eb988e57aa14d23f918a5b291bec6345f777868a7fdf742e18674d75a0bb14d25bcd2f4ac75ea0ff396edfa8378eb466a48c1a925c949398ffc7ea3f121bf9341d7f4af53ead359caf0e04b523d9586bf04a4157515af341b3f12bd8b0ca38260fd051af124cca78b841f8c1eab2690b602ee9f0662b83fd26b9bc10120b90007434f2ebd026e76eae21184e949252a9ef9ef6079a3094fd2dff5d5d36e760839d6b91c012397e459b05e8a4fe878247a68b5bd2a0d5d069a855a8f644fbab2c84d87eedbdc1cc8526db5aec9b4508f3895d95595c92f61738dfa4414a91e29a677e74afa9333b80f9f507653587f2d420419d580e8aa4d6dad4d90c1624a082bb13ea123d1505499899d96df7a2e0e143bcc4e5989d0d35280b8190bffb19f77bc5dbb2a6b4fdb3843cb7fa9d4c071be64f6351b549e4b4c9bc57b18a52a69a85498154a33025f40770898eb87378c359e537cd7967f0d028649eebb3074e479dde4e15a78fa1228848271420e3482ad318835c9a36ff8cf44307da0714dc852206c8a79a310840d8bad6b8996e55350d8ce92aa55b8c16e42d79db66f18d34fd90dead6f7709d355181cfd523580efea29de139bf38b696734e104e395a75f5b7ea24c583649409a8017e55dc85ad4df67845c239a1559a8ad18f55bd6d731e6ff9d52a2ef6c59a4d43613e44fe225ba9c51c78035f2e18a1b447e2650e4202f2a43c45cdca381b4810c8855a3b6c132b97b6a99e861fb39c371334744b84d14ceb074b60b0fcba3d760b7dcaff3aa8446b1add0a631487bef70b8e960f05fb981472b09db7331bc8ca39fa09f1081609c28d31b90cbc4d1b7b03677f5ac3bc58ad890ba3d9f4dc8079839d20c2644c5b1508a312f77432d7e38248b0892f92a61a313e3c325ce81a901aa279502abe0c4aca3b8d2be25cb4db5efc02a19414ef3bb30a542589277cd09901a8651c9292f4bbcad392ff0a1ae0e00b53ed1e8d01968c0c1b506f22388826aab7d58c515fbdd7f76fd672a9d32ba3ec1178e4b83fdd1ff2f3ed26f750a0a459266dd8f7c01c43ddbe2b0fa78437d268a9eeb4f9f145054be3d60a725f1e9fa806c5bb34d622a4dad83ef1240f87f8f4ed787a9187b4e54febc7a36bc208f208f5728c1193522738a50369d48f748c9638e7eedac9e348d838840934df3a51b0469636d9d2f87597597a09b02d48f95c45cc094f3b7f7f4aa4a0bf0f4c737248e063ee6ee98eb024160a3f98d679533d8da691e1bc08ada1dcce9a7c055f7dc6a35b85c035e71110416fad9601300a661d2648f554aad97efa8e9670b828eb481662f53aeb47a840f36bed4e0db5c3fdfaf93d4ff553b79d322663d1e3c2e2b239decb7e87f6e0c5274dca15c529ecfafb2e81ddb3460b3de00287639d021e9ae2505a0dd8089264106e1130d7d8f487faea10b02b1664ae4f97eb2ead614d0f1e903fc4287b08401062cde5e29a6aef25ee4d79d617c99dae02e8b74006d751472df05a8a621f9c7385301cb5cb1e9060d237f2f0e14aec8cfa3fe58e7b614e5e55e94fd7224e60e20fc7306eadff42523b314428ac89f9ac470e267924241d5f2bd53a555703b7e1cedd9e94f179cd20e81660818c53b19f8a85417820be0bb56be3486876dc031efe0288c43409499dd0300d42e9ab01445e14cff06f29f0ae769e8b80accdb61c5445b61d8948921eeeac0793062b4797ddf4a60e048aa2a0c0d8fb3c06d8fce89d8db9cb489a268da5553d06e39d19f142125631b22c3a57d94d04c56f67d90946c0581d1a967790192aaa11ad17c4782ef99ba5884b7836ba779b76d7503890c41caef3e65c2554e44fdb3e1b1bcaa97e5777da891611500b371fe419802c9902622ee3425bd2dd2d842cce7ecabaaff6cf1b24ae5fcf34c0bc7fd5135a4346f444d4d28a45c4342c68702749b45e28cfdaa581592e52207df1cf2bef71772baaa5e6aa35519fd790577ebd1dc3406ff946d2891240bb42914a59f860eb6027f22625d4dccb78bba6e1000c54df72b54f9f270ccfcbf941a375559356c8ad87842c414907d7dd32240966d1b98dd24c4d13aeb8b4efdb47803b7d1af27d02a4ff723f0c4e83fae28c9c965e3891b646072ec204ab53c99a6e34fc11ab2ac597120d6a1f375aa042122af34f4fb3542d02056153da456827f6386554f98fa0ac1ccd4403e4688175049e837812abf0d4099c749eb03260fd23a2d1b37c9b523eae1595e1eca45b34c6e184717b140d226bf1ab6248abbaa970d876d7bec2aee608c94bc64f71ddbd83e36af0ab1350d3cd788befff31086319a5300bc8e5c6a9a57ea21af04ac80496f168a3382a31bb41c7e9806d3268ce5694c54ac12cca2392fc6b459dfd5cb05088b9fa9e97bfe539509191d26257b43ddf7483ebff74cf62e1e0dc8e1c58232131df1059491c9d8a0f83434664098d765e97a6392e27a72d7bda8b72d7ab4a33c322662859e076f2ab7fc74f673e888ab55d7e125dfd1c66a85bb9677d4acc8acd8e990ca8a018154c0829868d5a303844b9fdd8989b782ae702f98d82884250e027b42cc6a3e02836c5cf1e69f3e6defa2392d3670264401b5fb5ca0779c7521c049a5387bf33db33aa80e5255c154c2caa1ff4dc91740d8cc8cf9dd57754077abb15e6806376a3864b1cf652e2f4c5fe905b0b3d8c920d4b61c33dfeffa2a17e391325a50b706fad5e3c05ec35ea81ae10bf65eb8f72cc455ec4eada646983e6f1fa49c8ffa12cb12d2144142de049436156a0332f60d796501b6b785141db3e0af71cea3e8d659e355e7c41dd34419f00c7846a46bcad2e9235fe985f4b3e5dbece13ec37645c053a09df19282234a9469ff5dce0088edc48779e2df0df885800079666d6e3031830b2bb0e283453196fdd338bc5008ec88a7f0b84cc8815058eab6a46009aadb8c96254887b8a568cc6cf0d1ac6fea7da3f52b33d64e2e54a13af9bc2dc3d0babd0d231514404b6f7ce61af64e747ccf982e8ded730bb7fe2cba2cee788b913595392e161cd059c44daea7b98d7c438f2b69b7a56e6df6515dcabb45f608f28f1848a56a45b6ab55d2e10acbf223af0391106116c2ee50540608cd52ebdd6c836e4b6dc894fb32a540f6b851e64a4f30279e7d24c35d808d8057118252d3803c729ef3fa0a8429929c4205d6e394259c99d3ad3c727d84c87a3e86c0e7c04bf92ef8c520e9c56cb3cd42144431d38906537464d4104f4270ab729893b3ca04cf8275a4a5690c10ecf25859097804bd41b690a8b51f17d08ba2dc60cdb4bbf5b0cc2664d39f4b4257a263cb3210c01cd73811ec46926ba8930d9d03659b8c5646118512d6daaeed61bd0cab75ba70e8725c59278cae923044542e021fa5139841b285f5c85831917e8c0be978d2b1432804eec9056b8732118bb145a74f121086feb284da36e8346296145df21204a3768c07dee45ab04cfa330d49d47d74c82a3773369d652bb4014f036ddddc9affb36f502bf75f5cbe5e60d59a0cbad40575972a4df46517f74d56b2489f92a9c782762a362708846a93258c8c81213d017317399ada812fae07b1884f143c71d9f1b04a3343e786041284d79cb231aae341b49a055d334ff5647a68041f11575bcdb2ca6b019471c5325a47a9fbc47786b8287f98df40c030bc47882b29b9f202f567f1d3bc4c73a29e616d88b15d01c78141a73f181983cea48d78966a7b93463342a5a61cf097eab7df94788a81d1397a566aa34b20c51e6e87a772d10a6ca0fe65168705a1f677286373ad8c16112e29643104f7d83d5d8fb97a33d04a94971b759c5528acf93fa30c5d38e90734428b9ee418384864e2dc50a5713159e30127338b8798ae5224b672716849045b72d868a45939a7fba3280223d370559b8d58899856344c8bc6725c5123e9f1f05273dc42da07789c5475e02e79c87d63a6e7f1ad95e1df4825f5037780a2bc0ca485e1d5a46267f2bc20301adc9787086e5d66e142c294277ed022a2683ba42ec891122e0cd34e6561b48a7b9f5b93a5f2b65a2c35ff0e51242c78df4281c8c5ff206d07d1463a474dbaa5049328c1c875f7b9645c189cb9bc2ed368f99306564e7cefb5e5f539696db48304fb7beb7ac3071521c98a84db92017c86419ea7f4cfbaa801985afd4348b28fbdfecd4d7cc2231a6e718a91367160a939154ef35694ffa39f1827284c3178dbf2a1fff88f9c3b75e675a9dd0f4a2fe9982e5354807b6790cc0d37c1f557c6ef754c16a3b004bff6d3468279b44f83fa326fef3acd7d2300360ba535c892de4d64317fb2b8c6d03dfe80bb890ab395401d55a2856bbbdefc1210f62b7e561798cf592db6111e2901163870cd01e53620a89a53a417ce9450448e72fb3b9e84940021331771621c380b968e21d3399002b091aad1b9fd0ea7e03daaa5a6fe99569b1675d4f27ff5959b7313783bf08095a8189e191b5043fba491e04c39d2de7495d1a909846e070e01c4d253e8821a6e00f9da2aa53f413300e4533940d48bb710184a4785a1c43ca19058dcdab9d47e6a00a09b05dfa44b91af4592ec5792999766c72050387829e2dbb116d6734720280305880f08f4d2b3110dfd96113c1c71f63a40b5cd0d352029f4dc71d31183fcec637a002324f902ad45ff701b52781f90c5220ba007711c96834ab47002eb955f32cf51228d046272013d33666ca269002eb6609767d3fbced64c85bc3c22925f07a562d7eca0c2392c0d420e387249c613d3fb5351da45baa933b658b2eb24093e12c26eb204d34ff65263bd4064fdba05c5e4d895bb19c9a8a9e910e67ba2e983a301839bdac8303616b341c3b4b7a079939b25b07b39927e8792c20c0a223e8847221ce0ebe3a6b1e5e9640154ee1d341f70b8c8de0c4c66822d3f230f847af9f17af04c3cc5bce84080ce10304480e478193e3c3310c6f7c8ef2d1f0692e1b7deec0a3ffb3bc5be56e3bd2e21286aa4dc82480d7188d36aab1c82470d2003b10f0a24eb0e6cc43f0e2e790adf362588e14ed74f6e8b2013431765fbdbbd0d11cbf87f140015f57ddf160330f895122331ba4c35498d5b85abbd1b8b3683ea1f79630233ba1738e01d2d223abd51b39c4bdfe4c9aeb1c755664afd37fddf82008f8b81011c5cafaaffbc9db8b61e33fa1359517b0e8e4232238bd379bbf95a6f6fe1c0ae2b7911e8b2db5321572c22e1dad2e665b7df296b3be162d4be236263b8b013274f93e0772300c5c80d3fa6a21d359087bedbb78edd059bc8bf5ec78330e302f8aed4b9dc27c0f2503ebadb7ef6a92c9e00461d512c92c035d6a91cd7f814fc6816856139ebcb0a47881d436aab3c7f890bd26835343d421eb40b4fd2e18f8fb066996d5ebfebb25af4d877046ab1cc4e1fe8d874f25117b6d8da7f848f2bdb5b75a9c80a00fec3431a658660bf9518807046c91f9828d74d425843e47eb72e486bf9d36763ac91a73fee184e1cb7bec648032f76f47dcf77bdfb22f60afdbb98429edadaefe1bc3791652cb2c45d9b4d0f4d3c1340118bbbb68ae9a155c25b9b54ba3bacaccff16c0e02e100e65531a79afcd05b18031230a233dd0c3f4f2a468d0622484336a53abf44a7a367fe35e9af10fab57a8ea262c00428ebee21741c1c6c478439b082fa90b9d645f3c6168cb2651ea3993cd65b313402c1ab83407fcb1b2fab7cf657ecdafcc3f78a62bb9bbf56fe50e0ecf0f5739655abbaf2d703d3763aec70d9cfd08ae39a57eb6aa50ae90d148c49bf12cf485931a3f9b987cab3d4680950fb1df2bd5e524dc096e40daf809d9070778e40f58358fe96038188f2e487640671414641979627c9b87c71e75b552acc4aecef58b6334615e73b78de947090d0de8f8fd715fc5f733f85628fdd62b3b9afe02cdc01de7724e2cf773bca983831aad70d605a01e8a66eb2477066552d200a09053add0935a3209850b673d36018aed37ce34927f2e5d5beb11a5e69b876151d5390d027a2c429179bdc10e5722188adc61e069d7932eb6695bd6facd84cea0494c23bc03dfcff1b13498739b4a3e045b3abc7ede145b9f5efc108cab321d394d689c9acd2c513581fddfb2603d6ba03c6e326aa8504381258c4053ba97c7727e94df4993508fbb7f858df1286622c08b182adb60886df0e426088316ef7e29071cbdc5141fcf7d648b4b19a12002ce7494dfbca80c549361daa7f4857b390dff18088020de0364eba779131458e6801ac98a6dd72bc3d180e6102231c39315077ab68babd54a935643e30d9ec08de9fd96119ccdcd1cda34ea5314245f442a7223e02d364233504ff8192826c7c66377fd1298201dd869b08011a1a60a1e191f7013e83c75e5d3b80f06ce2d8538bcf4994a86bbba8d55517ef881de4809db20070948044ffa0c9b4a65a9c33e0f1db59d7ce774457130cb41b7134d8b578730ace55d9936de6ae9ebf6194d921ce8d1ce2f401278da31b3bdace9a938042e94e88e268a7887427e0c550b8db01958e1182a467d8ea83412020f4bf268b4f7691835f45759536c9dd612728aa00cdbbc695fdb4d711953a833e9e562cfe55ea0b5f694efa94d7493a62cd2c65ea5fe02289ea85b6431def9a968ce15e6f7830310bc4442a1813e82eb1398a1c3a88b9874f4dad0c6066c319d76bbbd360aae7c8178968442988ad3829f0c792e01647205fe49c4050d53209cd5a6394d79b0242dd804ce01d276bc3ce787ed78f98c6ffe87ef78f9b43d4e449a866d1242db22500a202b008a464d5d4b158fb9f7cda2bd01585f73e346279b702138ec3ffee3f7ff6ea49b888890901d460df30c800ca77be3e6dec099b1d91139b0d98d9b1b37ee8836c17b3f672fa114d188a43263e57d471fc18223e48f2872c44cd3418f704196af286dc90d3cb423ec1257847c760b7ac8f2c618299625b2ac9165912c4bc5b26658d68a65b158567591e0c6cd43b9cbdf08a34f55967fa1693a4c59fe06ce8d26f4d98d9cf75adefb7bf73dfc1e10efb904f15e2fcc5dc1ceb7f7ff92a39fbd4427595e22aeb02f334dc7bbfc8b8448c83595e5b31b3759be3d350d877cfbc0f6b39a7aa24bf2d513b7872c2fb790657392041cb26cb72a24f64e341cf2493c94c4ee967c029a0e7a79d966b349596d230c87eab84e0d7744955b29d75a2f075fb01e2ecb3b77e772d3d19a60312ebe347cd3e1f20b8c48b03d77bc97174c891724727489fe6460d21a7c31ce477938e93b9272d3c605bc6c34a3a0422935009385d0cfaaa5eca6d4da24721fa6bd26fa54b9f75e73773d0426cbbff4ee0422a13617282149445f8cb8b922e2e11f8a62188a847e5e09dc200dc7049ce99de228224c7e6bc8306d1b184ddc17f607f6443b71178a889b9327fa04ff1a19f18987fa4199386152d9fcc97b4f7a0e36a33494a6e1a04ee8184c64ad75c2faea9c5c32a1c4a1d8e1198cfb96babbe7ad983426ed06489768e6172f09857f491e4aa65e278143e497e4a1a293e8c494618ae6c84bd164eb0d8bf1c27ab56ee66c1c1663b925f9b92dbaf4b07cdd1ab9be6b5ed5ad204d415a24933173e00c034e2770e6cc26d6b46865496b76faf07ab2bd505a1e3992df254e7525193375e4a1261549f283583e79629d7cd235bfffa861d24b962c49a5e413f9043a2f6e32182f27a77370709c83ed60b76c822373baf4603bd838320c39068e655972499e4adee5986cc12a79a85e62d3d5e91d8a62d1b84002899e2122eb999ee9197aa4924f82fcc882a59959cc2c6654d54a55b154158daaaa51552d55f5aaba55e59c9286c36921a9912e3de7856b3b5abac636f97d8b2e3dc985d4a2a64b4f2a8938b016cedc16945a5bf320ecf7e003e33551f2bc80f80a1a4963d14008e1f478b0183c715c4d5f1ad90a77457e3d9f01e993151367a6afb0661abe2154327120ac9d8b3e13e5d62e1deae5c4a663c9a3b894ff1046376eae8897f350b2c6bd9c9a9cea897364d42b3b9cfc1a5340f612115ef29ee01c51e1e68aa8701adfd9863bdde0661ec4c8eff3e67d2a51929374e955f3736a31b39859ccce82ce2c66cd3c328fc0fe3c82a44beddabddd74f2c74389ac4535305c5e4f2cad39e784b00afb859d99a9763db9aeeb7ac47a3c2cfa8a43e8d1a24def5b70e16a6e606bac68c4668dc98fc69cabc132fc54a9aa1955b552552c5545a3aa6a54554b55bdaae412c9a4e1e8a24bcfa3647ae6bccec1b77312a74daf3b3f1ad886833d623111e5f53264034b1f6b60dbca6aa5ac2978456224a4b71cc248469d8875e29288612422105e89783641c124dc33167ed63378ce797d5c3c5767d15a9b42439170909705d2fb4267617f489cc6c4c623e391d1b0e3b11f14502845e2d0c0b6fc46224885e82308a4a9689adc338d09901f7d823d3d5565abea5355285505aaaa5055a55495a8aa2cab9a9252aab2c242235e355afe0a5b135349ab59cd5ab97eb72116d3c7e60d169dbbd48f6963e6b5aada8d336a45cfc08e2e7a4669268a54552e35d2a67719945e53d12d949ed24b29a614084a5d280d825221285532baa26abea107c2ca73b312e4caba2dc30b3fabdba2a8a125ae6713278c18033a5f591008295da40c424a21a41c42ca929426296d4819d338d264741ae9d3c4322d5fd1a7d658ac74a7aaaad9b73a86f5bcd895692b1576a93cdf5030e07a36f10cf45c0d938138beeac11a79a895beca497fa7345409fd3bb5693aea5fe3152646171d880a2689b0c7733d1eecf100e1f1b8783c41783c42783c1e8f1e2ce961b8fad1986031b10a9b351a2abae4e87c261b7ddd20020700e455c44ba5a75d752e4c448c85e119ec855d912e615892643ca1340f356fe68d6dd8af61a75f6f76c55cb8dd6c168102c2dc380341ee5ff3a64f0d876c4d8d5b727b412feca78b50715304e706e57a5eb0f30d74354da35c1b21ddf59f176cd634d9bd3927d95d24baa48fae0a90d155b01474f4c680884ec25250236f1a27886ee33122351e3d034157e86a23d879d1353fc34618d8eab09af4a1e84bc9ed05a48f4890241a5d910a9bd94cbada434995d6646477f7a44b9dcaee0c58e4960530920c20b72c98618c4c695cce1a93c6e474a96031f3ce4151ee9ae802eb562eb8070bff4962abf71f26533d9b22cf09595866bb168d2e3df24c4ec9e5acbc588c24a34bef0e0eefb393df2116496c601a5e0169d04c6f44bae8fd86df162ccded2643230da5f27738f3502af8089c812db0f3310576e2f409477e9f4d1a45adb86618f9519ac88213acde72823c5153011b4e91225457c17914a14811acabe03c461584a5caba130c9cd964e63cd3a3f86dd1a59ee9525331efb3e9ee9e4fc98c85df2286d2ac60de52eed31695b516c6d59b9b4e8b962b4a1357605f67434879be4bf9bde18f86f38425c6ba18c0015746fe8055e1c02ba38c6cef79fd559f1bf678ec0dadcced97131929bb3b8464850aec852c9e4baf1658534100e457abd7fdea2ecff73a1037161a355a7e3110b0062a8135b0c6b55cf348fe115360b9a0c56b58ef6837869d38a333496cbf6be4eafaea8be54eae43506a2d8cafa38bb3d354787212db031eed477729ff2862b39ee9237d723de36a7aa671e652b9a9e8b6a2675060fb2c9f6f0b25f10476a547e562029b4130f27b4c590846a34ab049d331e12ffccb614a155f356f7e61e76b4d1e22bb2a9ebcfad24cbb72ce72ae3a77398739d771cee39c754e49d36139ab5e58c414c045174d53b4088a5ad1a6f71c39e6cdbc694a336f5c72362fa5c17a54d9c254092ca37ae66a1cced1a5f7d24ed30cad8484766a3aa2fce846983c87e36c9ae6c833ddf434c3eb9992c45ad0927326e76c3877c339229cc3e11c009c2bc239da5cb8aaa215b528b62a2afa516705a5d6924838b32f16ed598170c9c909c3c983514e5a592e415c708cfc0ec7804f201930ca492babceccd0233434a520ae547eaf8d6612a6942a29e1c03fd88cd2a0609ee9f54ccb265d2ac99c86e35dc98f8712512b0c20fa750b8bfc4edbd5330f35c2d48a8a4e4ca11f9e12258d4ae2d9341dcea666d22ddaf428cd1b915e519a9ec971e18c92ac1d91488e2a21c3661227bf7903dbcd49e7ace6b4e6ac735e73627376a06b898373337b0a71f591a66388abba42eb421b4346c215a0746548b82a6cdbb86cdc90ed068637705c45bcb4112c34829de162601b0ae04aa5522ae0d15e0370b53ec9dc4e457eaf3017ec837d024424c50a04481f7d8449b0d2277dc6496f3c4440462b10109160a53192958bae32c20d67ce26df9e6923de5566dcbe2b4ab8546ed8a8d1ddaf3eadf870ef3b71201f6cbfa666c6d5d4bcc03d58f795eb94b411ef33ee139bcd9b774aad25916e1a13a8079b3d2528b98d2ec24df320203a0933794a9a8e9b463d2e9cc0120acd642f0f76bea651f699943c2c58580770b53e7d5c1596477bd571b58622bdb926341409370d7e98e4b290dfeb1197fbc28272bbabc2f6290da53d43697a86a6547aa1345fd8876a3df34cee0b0b211e60e68c648712bd660cdbf2e11d50f41ddac1668e0a58070b714562c70f4b49f625240a50aa06b8827d7587c91ca0c2b04f06b89c58f8f91eb4892e954a1989e894c608a5314313989e7928f9e4592d9a86ceebb4704b68381c139ce9fd392ccce4e7a4906aaea64b4f6cf6ba86d474c0bf518d1c5ae91dab79a6772ba7922e6cdb70749be4f04a9f56ea4b02383e584a00ac4767aa05e502188f545bbbd7f04528e39497b6ab68e731fdaaba6b9baa7a09f2b4a2aa5c7786afee56892ba2fb0993d25023975ed125d7997b5fe7e69cf40a2b2016e3684d633d689cc37bc030142e673d43b5c8fa4829532bae38d2a7c6322d63918466d127882718357d5a7178dee48943b5e8137c698bfcfec24586c95de46799e4d77836e99217f91dd2c1dea0288d83134e37a44f5d5ff7e3a25194a64d6fe287c5b0546447d3a73607fb1838d3279a3e359a8722ed8858189de37e3cd2bc9960e0341df30055b5a3aa7255f1a82a04545502aa2aa6aae6d5a39a377daaf27b63db39cf3a21d99372f27bcd57cb34b7942113db875474f3e88a0097807a80abf5e9500e36c80f2edaf450aea64def642419e34818469ad080e1bcc85c0d4b566231d14ecd82566aa7a6a295b0188a7b260e3df3848c3e410424a0af9877f5908957123eb00528003ed4a3caed46b5c7d5fa34446e974b1e6a84258e944bdcbc559ed3d52019551056990bca27223c6fe493f71e588f5286343143ba449b388744f47993c43d386ffa8812343dd370c041d6643dd3272b3fa9a44f99ab3e2f95488705eb6af290ea0e693759d6482d6c905f43519a669a41ebe720a6618eed77ce1a132bfad4f87a83cd280da5a146e81836a34df27bad10c2aee8e14ab7452f92d1dd4522aa19e11a12e99fb775dfba6b676124a4ef68476a7a1d13c74597de085bd8a6666953bb4f920b49e672565e068b89104a48fb0e91abbb264e7e37a6dc2fe57923c23fdebcc9efbd3112d1abdb3f44981ae9999ea1346eb0f4d6fbf2ee42310426c3ccc289fbca4c69faf4e6ab5b654ad3cfe815f9bdce16512bbaf44edf45b875cfd074cf0461dc9cf716456e070f9d74698acc819961730dbf4bd34119d40c3ac99e0feed44fca519e82d04129473990148c7220210cfa7b870dad0c8c546231d6e7f3c93e79be52faf9b6d97e5e3f34c3cfccf02333fcc40c3f30c3cfcbf0d3197e3e1fdb899f0eb638ebb7cbeb58e73b5ecb7db5ef78f5f68879deba3d5e0f97679ed8c60bbaf0934b00a7f07404a33a622b67bd27a5947256ec72d7e58acaf6fdb0aec8c980f03abc62224ec4e9d321cc515d6e60bcdc7e3c144c9720fcc23629638cf1b9f7feee0e6d90360202b9c2ddc056afffd12719a4c262e490c624d74311f3902bf23b122f39609a0eebed59b3e122c3acd5783398ebe45e50224c961d10a813238afdd81b651c025355ae72315eca18fbf0c413711e6a84e9933e55345dea433b553368154d3583764239fc8f56baede98fbdef7248acac68614a382950410aedc1d914d97379b3579365c471cf2e23dda195e0a913a7c3de55344fa8933e5533f40eed54b920e5c63734137ce8463a34133c7df25015cd33cdf429e274c905ed14d9d04af04faecc910d2dbea19de4d0ecb5ffbc5e58cc0737eb3cd7c55cd13cd4ed8539eef0be1c715e76b773c481d7e5f88686a283cd4eda00ad19917db22b406b03c8525a43a2b50064a32a67e7f31ddd33a7dcd0cc1fdcea8f3e7d6eede1df913ea57c7e60ed3f4779b5ec3b163bf8a885b51fcf7d97718c2ce661c8abc931edd25cf1908729d147d04206f9fd72eeaee3b11f946b620aa8d84212fabb486ae80669133c86c5846e078b698c24f497870ae188037172e85656b4a971457304081f71629346e56813bcc32f42b0cef62d1633dfeb760efee853670824c83fb9351cef7c585d3f18a5bc19cdcfe1e8bcb0ef5d1dc12aa80d27c7bb1af9ca58eee499ebddf5e44aaf1999604f8a49724cf250eff1f1d1a649390e20c7935cfa743dfe256b5d2c79a6d879b5ac4562c943b978701699e4d8c1585c02734997e5538897ed366f1faa3fe7679e7fe91311795ec6c35a5959d1f993961071a88deb8e4bb04e01350da5bda04287d47a9e3d8a87fa1c5a9086ac05914828bf2d953e983659df4ec44bd3d10dbb63b7ec9eddb4bbeab6debbb0985885cd6875da27ecf0976d3a2ecb7a9625ead4abea582b4cd87b0ec4620f6ecf04a43d0ccf3071f6fe2e275f4ded8a894b2291c49b227eb7a17ed6e5703039eef2de7b33ce42587a839e52a8d2db8f97a3b3fb8db2686d554e528eb73f6ffcc3e6ab75d9f97a5df3ca19e51de6230099763ca545ea55701ed60c9767633e0290fb34d2cb5bd9902ba25fafa805a06fdd510b409f3aec93c4d257987689e2f91c7c0229574f73818d36847fce461e49a5522f48a5a8b0030a15c2808623a9548a0a2331f73fa9249186861552476c17624a071e2b2cb9e2482a95b2028b8e19602a954ac9a006b3b1a18193542ad5829927d4dcbfb8b0049c542a7503185ca1563187974aa55236f082b5c4492a9572010cc65055610b39681c1a6598b94f8b3049a55237b0703eb93f6974d036a9542a0675b0725fa6e10c35a9540a0730e8034aee4723b823a954aa8a544a072f8842b349a55230782a45032cf7df1568b8f0924aa568587cd0ee3dd295a75c0ca18607f4482a45044fee3b9295589272c4d7116ccb5fa0213f9cd13ebc1a75f1a041ca28c8630692daaae7e970ee79baa64287a29ddc3a0137a6e1e8e14cfd2683f5c21011c2081fdec1038b4496487fae4f41de833cd4fb752c8294b4b586699762a392877439880f5eed06f4ea937b0f3a289e43c1eb1e8d4927c620d7f30acd603d874ae0a5d91dbbeb19460e0e54d24f7afe8c3c9a9c076377913def256df38cb85b871192f1c449f5289fcb227bee923c71a797d00cd67972e73b1a763c0fd2a7ce3d1ecf3b2ec9d5b97b078b71f0419ee53b383459db1c694c56228e105aa089355877f86e9d31d7614375eeba31ec14ed16505b6bad41f8427aa8ae0a1b7aa5ec7266a37355d876712517f81285fa5e0906891c1d6271b9bbad07117dc70293df4bc6d10916025162619036bd6320b1099d638cf114d8d1cde561210d070fb5f61cacb34d945c0d9a64223d82da5a43554fcbc1f6df934c327c3f98e11a6a6ddd2e5d6a53b40b81a336c639fb2481f48f2efd784672317677c462dc1b0e225ea9f44a0d87126c3fbb2edb2897ee183b4608a19d7758bcc3e0e39df55d2e24540551b38987aa70c9724740ec60e08a782fe1341c07a183584c4761ab9daf14c57ba656c4fb6b5938c093121eac7bb031306a7371a1ecbeb08e446a94f59e9f8247bc959f07223fe925265597d8b6297103522f2ba6cff4acfb449bfa6f97220d81689809a3c2b471e4e70c89f69418f6e3416d2e5953da9cebfe6c9cc1641a773963e599cdf0f20dfb5164e5335e6f56420f32baca83902efa8e6e0f458222009971d149b08257ec553ebacae30cbc62f14a0833a1f2d181a86020273d3eba2660b89b68456d47e368de4d8752fb485929df583f58279a8e10e9f0a5bcd9672f7b7046b2231922a24d5dea12cacd9ee190e1535a293f79b35206753604c61255e1aec8d05dd156348ae4b06814a4b9a1b90e8c36c18faecb7926e724c35b32ac05854c1bbd8dee25ba34549214e5a144873f89646d8321eb49095d74619bdec77a5242f60af5e93ad2695c177006b6dd64185123875279175d8257b98e499be01219d8ccd194dc122b1a35a2111da67c14baa8434668f660536ee6926498f3a4866e3b30fad472131786938861975a762e42c180f9ac31c5afd5466b0c6ce8f00e8c3ea51cdec1bf5d7b5c1f0a1ff399ed12fc75ec290ffd55b9af36f52b94fec7fedd941b72385d82eea64bf08e0f36e3802b83267b56024556e5ccdd746e7665074f81262cd0a78865da9027fa14459fde65598f19b4d7d21873506a2d297bee76333be5021b5fdd3d7337ef158dd0c186b0134f2fbc3a62192d64691a1a7f6830bff71e0c4cbb2dc48073b0b04bd4f5a8fdda9709cc014cf4fbbb0d368410c2c6d2c94090bd808179a8f6de7b190c4c2edd392786936bce83608e75d9f118618411461881023f168e1093a9c75ea105baf43ee4ad4b15a59442940fb4f7dcac8171750909384676efdc0c3ac9f133270c27d8a5500c7b4127108af17213e95a955c3fb9be6a28586bc5d91018280614c31511df1a894a99ddc8af8ae18a70508c8fbbb4509b17eeb258c89b850e6f06ed9567f5f68852aa6559b6c2998bb11e6232f19dd76e5228745920ad5737d6dde9f674dbee4f374a37a8fb9adff13e97d7d643f76993ebe77bf5ddb57627a6319c83c5da86b63e45eaa3d6fa785dbfea65bce8a6604bd45ce36bc7633f28a050ca3531051c3a2d728c31f1a1b49505f93a23848e84a250bec1c1caf604240191c8b2f450cd921eaa3a34a2ad5bd10bd350f4f2a587a238242dce98bc2654f7eadab12b72c38d2dd1391b41a631b55b37ec7e0d477b077072cb2d0d73b099cdf78924d8cc79e1bce8779be852c321a336972ae59c73cebe670b36b3b36163890d1f6c071b9c9dab4bf1b155d5e7935bd54cf12d362e1ae581857777340f9523017deac727211fb1c788023d7a5e59f5ad0d80f2eb187d28100e32038372e1cca54a9f8ab31ca51c9b93dca60ab3c4898174293e01378976448b2ec5f7a48caee6081735cf1d79d1d94c2f54f9e6923dc75799063bdf9e44a69f373a21a4c4c6f85871a84b71c76ba7775ce423d9c5a0ea5bc5493c13bc6589c815fec24696ec7ad6ebd717d37040f9a48b1b3d9091fb0916b93191ce310d07acaede4188072dc816e6706357c34eeb7412d070c0777d57bc5174091eba226d82af6e6b231c8cc2a51ad578342a3284772209583d6b4c3ad8023cd7c41410e58eead6e1ef2767c7837db9e1e80c71d6ca90610b4386cf3e19666d0b193eab76341c100fb65fdd4b42fcc4be060f6d327be5c619b6830c10bbcb249a8e1d34b16b155248582a6260539f2459fe93e4a13e97ffd47c943c14bc7c0a4ed3214496ff2cf930f980a1e9b81e9f7d6cb2bc4ab2fc55726d2e158270d27494649beec12f58eb5556378318d87991c0cecf574d8792a6a33d634932446649928d8c64f97683c823911c6c265292e571b23ca20b9bddb851826aefc64d9fdcc3829d6f1088b7971804e03ff8c6cd33c9db7b03e799e4bb0b7607d61d918ab14b1a0ef9a8039b5923d626b1461eea48d3815ddef6a0e9b86e8d5825464c54b4495a81753cf683020ab918d8771bb9e3b11f14502825429767cd933eb50032ca2e69933c932c6f9091a5a59f8922413104539ea8d62e75ff83020aa5884601f854154a5581aa2a5455295525aaaa515591aaaa73dd00e306ce43350f696fdcdc7842442acbcfeb4c60496085c849351d2e593e5e61df33219670c0e57a68bd3a2663adb0346847d82554d0f4c9b241967f3664dd7a423b5a4d9fc427562423cbb74c491348145849b2ecceabc32ed186a36fc1d08e10e1d825b60bcba4e9f088d62086bb74ee21b1902acf1147bc0a1fa0f3ec084fd5f18870446b70b9eab48bc5214b396469e12c3ec9f2d551d7af6384932c6f84131d499a0e20b2bc114f8c20e394b2deabef5def61ef75def3bc67dffbbcd7a44fd6017044ea88d40d30baa6e66baa032e6d6a223a87128b826953bf7374a9e3b31cd9aaef434a25c519125dea1c6ec773c1816488b15d6369d4859fa8d825674438f128b59644ca4839879463e9735f90329213d563ce1098157779877b54b97549ced9172483fdd128d23341d465aabc630cdb8650f786b931d815e9449f503e4ef4c9e6273ec442082b9cd1aa72a24f9dec449f3027fa746527fa542f27fa6439d1a7aaa29d151f569e97b28f5842a88d001cb4cb4106219d8797103e560d07c450c615d887a9a8cdc57a198be70a3d00d8ec9a82662c19ba9042195e19668833faebc25fafd4b23e3fb0efd6219c9044ab3ba40421ccee5ed802a6c8f1115342a50b372821c747dc289a6d5c55c43a7ec13a78d1492f2983a79803e8eaf0e860b350cfce5cfcc431461ed82ce4e69c4d87a42c3d1f49218aab8c237691072ecef950975842241e58961a67cb59e871c09591e5437d9a54c6df151f99cb795eb7029b59377169cef9ec668c320290bed2e75c734d763221390e7935d9a54b13af5c2047bc323f459e18aeb8fcf2c42b3ee66481bd393a16d82c42d9fe4e146aab9eab4f5070c09591699cf882514e5a59ae666ae5aac6055cd7c414b0a39d1716bea8865c1dd6c395723774ce3584a5dcddb2837d0865aaa8ae41d72d979a0e97dddb3927b5554fa94ff2aa2cd2ed33b96ace39e79c73ce39e79c53b6883deaa49c539620bbfb26bceff0bdf79eebeee79eebcecde11e9d9f6c0a85dada43d5be55e5d6a796524a49a594525659610ab0acaa03fbaff13cbd3b4aa594324bb8c4bb584cc3c3f8daa64b4f4a299f7c70e5ddc5b81e9d7b66017aa91c8d60b3a6c94df3e071a0fb01a869dc11ec6e6211ec7be6ae9046220d5c91e91c448a27ba4b10a34be77ed0a08e520481524a29a594524a29a5944b9604699068849bc912f94ecd85569225221a25c4e549edd44ba40481e4619678457e8a2aef8a0f494497e0cae8ca2c04e82e41bc76340f4579c0b791917c10f22e5c0822e5618651360823a85d92081a22b994faf4f08b854142a6e55aeb859d0f217b3921dd965bebbd3ebaa1c76b74833494a12c59b26c9144e41c594a29702591deb01189749823ba14fd113162c9a3d19547870d3f7aeb13fd68f427c299cba325447874e56824e5e87274bfa3fb3ae97e70e6f2e77aadd7557fbd6b263dd2e8dd0554e1ecc52588b7e0ec42e09370662fc240fc3570466b08812dce4841bc717617dcda44e328d0333abda3d7eef7208c51ca3929b502937159f4d6a766d1cee8580a3ac933c12a0b0b8a019d7c2616f3a181d1008c11d11f2613b3c8fa3dc4646016390003cd64828f98cccba257794d4c0603ad04df3d682578297a9d988c130d07bc08f7918603be464a69a697e6e6b008043be7ccf4ceeca494b9638cf9c1ab82106668bdf732bd2f4779d5eecef47696580fd145f2a1eb32bd1cb5155d8217859a3012a44fa1211e63463a10cf4a390e71619be481b852882b25bda307e95355e5108692a64fa3775240a08a06ce4a19a40202bdbacbdb123bedb1b437436549cb61cb3b2d4f69394bcb575a3ea3e52a2d12c3b7e4d13fb78dae953b97e5aedc19377bc9592f8102dea6c93e2d46fad47212ce86c0c0c31c28c610accbd75bae1a7776e53aa5c76a47e534ce92f2eabd2b93787fa9f4f202fa086749e46cf42130192404f4969f8f10080402812490df3309e41108e482813491412050088f0e0a921f0804ca92c8ef59127994723dbe2b437f387b1d70524a29a5e8a08bae0fd1abbb95818f5ea2fb81960c7af69169d15d612288bb1c4810b83d930b067241ac47940dbe7611db86e3bde100dd1eae0cd05fa8454545be86ca6ba8a8a40c8101e12130b97399f216969882e10a0d16961589490c9871d267904824d20cd257482ba4ab9270fd4a7dbc15ab2b2b2b7fef1ec2e718e50eaff8b82e7f61d8e9e73ac54eaf530c048249a2a6b0885ed59419a4635145a376525870f63f94cb9b0d81017d3ef4738a33ec9f4f86fdf3fa7958cc1b81de5814829507e10c06fbfc270ac1a23c83c92823ec17ca10988c61fa96ef786d5beeb95912b9e5108b59a901735d2d979b13665e4a295b5e5b92d8eb8a483a4f983cef144bda04bb7b49d32ca16921b55811ce48a4116e69696969c1cd3a9c5e82c466bdc4c9184bba60e2c50d18384d72c2e8d3932d77774682f4c98928f2b3409fa494f21287ae2be252f5ae1c74551e2fd07b0fef7811f30173e8b26d6428143a1613baaba96d830fc423e8b2337ae6941c31e3998bc2076c9e114197152441a0c7fb9e8dab79c2b309dd169cb9dc727957565edf4a5656de367daa5f7963312bb8d95eb955e6d09d0cbd1933bef2dab9a0f8ce0505a12dd0a74b0c9297972d128b697975368a2e4971f981875d0a420829a5b973a99473cedcb973ce29a5cc9d2b29a531c6dcb9b1aa2a0861ee5c6859d67b2f77eeabb5763734831dfd1a8dae725deebc8f40a74097e24177984c130d0724c5207d8a425cf4d62897a7bc352a8867368b84b8f136973b71903e55195ee556f9912e6c38e281b8f8c65644fc8c0a9a77a967ac47e8f18a40af6fb90d74ad9c72339a4567b919298b3014305b193e0a295caa489f42b5d61fd82a95b1faf9e72048e331e52b2caff17ad047075dbe826ebcbc4f09d147bf5913398a222882f04ae8239cadc88c2e710602bde526328804228148201288042281482052e82dab8c4eb200e9a183aecb2aa41938a482b326f2c8959143f7548ff1571341e029009b6488f9205d863e3a4806f4bfb712c23d5c19598441a7d4cdd952be182184f13dd91d55446f590576097451eb12e8a21ea18b1ec2b4e1005de4cac83b1ee8c6936e16fa64b988e5f12f620d7039bed20b74456f58034637035d843f3fb0207cec110b61b9080bb91e894410261233cb6bf578bdf388b31a90c8731803245e79c31890f2959720afc8afc4bb02fa1bad3cca83fe5256de597994073d914738eb9cc8cb2bcfe0a3b18269bc43e3f1d2c0199197e3bbb39dbff8cedf512e111994ffc0ae28e172ca5d4eb9c442400eaff8a824ceac0c1202fa27e59f06faa7fae773d008bf9b3591a55461792b2af2a107c1a27a79472929779812d53f1f9c819e92819ef29a72b37e98ccab0d93115dded15b7e84b367f91defc9db8bae10d069e829b7737df65c5396e81cc24240af24261233087f3e6df6dcac89980e565d2d5b7758059b8994b8975048a9ed25373db0d5337773c466ed0666faee33bd53e4200fd53434da4792a50961906772a9dc44903dc854f1886d257dcae0167dca9a174dd3a76885912b8e60d1a7249d45d7b4ac051029e52920c7b02f55a335405323102ca56d4e2765c7f82084efc5ce39a33d5e0482a53d68fb14ce350bba18c34e4f7ca713df5a8cef340c93699fced5b4cd8c81187bbbd66b8db8822d7ec2f6193fe1773c48a4ab2be47a0972ecc0575cb4ce55b5585df7c486677b46040aa1bf1e23a50daf5c9f7f31c6b709abaa6de6ad0b93b16f155b62b6082f6bdbb4209eafe2a4f4ba6ecb94da29a488597791b3f7798554b4bdcff8993d583db6cd7b6caf0e9f0db95c434f7bbc59bbaaf889c9b45b7711bf7b3e7717e57d41efdc8a1d42781d56bf2a08f10afdfcbb9f1fcc2157be8e728940ec7e2e6c13862f88c9cc0ba9aebf89b30e4c9a85a0355c61a6cf88c077658a85c42157ae4e277c35e4725ae4f708338d37735be478a745c75397e3e35deb74080bb55f2b7e37bb8864faead65ad5aa56b5aa55ad6a55abfaaaea55b5b26835e4ca133ff91ea7a0ee49213efe483622b72c30c9c9d673c55fee966559966561e7b2b544cd16c6309994c343e7dca1932b1ea90ec405dd4a39bef24e3cd4cbfd5fe32c3348a2f76da1b1a2327aad74cef83985d4169a93c619c2500c77c47c74402c11c259e77a2070d6224772331c8bbb730e57fa4af14ac8c23bdaddb8fcf3f63a42dc0e51bae7ad4f280cf061ddddba93bde3e5e9eaaba76032f1eec296b8b2f5286fc2d94b0967a521dc112182b88b7b757950c564e285549cb968bdada358f758c7ac5beb1d0b6743603ed15d56151673d19843b7856ecbd439f929a48856152d4846ceaacb2b24e525c8ceaa620a7e069de44abe9af138834e7295f268bd724672d03801c4e3ab945b17667a9d7b28a57a18ae08eb149349f9773c202ee8f8869e725b46b9d9cbfd4562e330a74bd643bd3c53ffe28c1e67d4d6c09965c119e933708e0a7e79c9a0bfd45a6b67f4eca57492a5b5d65aeb2783c918febc610ca8ef7cf00af6d0adf7522a3d3bc9832deedc7ae87e7e6087c064fbccfa75d0c564ec85a060cf21b6c495edddcd6786884eb93c617192fbf3cce5e4fe746ebd73cf75fd613157bd2d7764c6b210e47aeba1cbf6090ba9bf6e5d89ebafd677acef681bafeeca71225caccbeea19cea8ef66b67e3b63641db17ed52a8bbfb61cef2c1ba43dcaf694a7d25d9904bca09a19470ba1b7d6a5dcaae0b15c368596b755917cb93f6bb6a9224b151a224c2ead66c613ddab583305a8fe6cdbc992346ba6424c21aa344b9ac5be57ae33a1e44dc76d239cf94ea275d7a62ddb88d471c81254586115e588cf45cd6a519b3eecc1d2ca6ba2ecb0cfb041ba8ad2b73eb13c5626ea4362ebb498f2ac73458f700549dcbb61d6c2671ea4572e3f222b181db0643d24a9ea9afa4993c532fb9a9de20f5603168c871f60c336563d374341b377e620e18b6c1f8607dd3371063584c552fd265dd8772d50b6b724ea785adaf2a97751b56f0b96606bba341588cb4555555b731c7796c5682be101653e158065b2dac234f722af6a1ea41d791dc78b5711f13246fc9cd5bf270b07773635b975a8d22576fa5fae0ddac95ec0a368e09a5e82c4590e15b293a291b96c0cd18c3bebb2360c8c6db922e1eb4f9c2b62ebd08c9784f9e3c2cc6453258f7e418d873d2a51e83756ff31531678dee422e966031cf0bfb725e8efc0acbd59a8e942f5c16bc104318c0c0c48b0a3b8d85c625869c411b11b442ee472346e217bcd0852eb8b005234d07ccad8525466216a2915caf8a4e791ad0e686c98e224554701e287865a8e0854711505ec45d05f602e9786fb7dc11f5ed579fe489d8ec79fb3148049864544405e75104eb45808288cd9f67a41c4434216c0c3d104499af95e223e6033e12c44f8e12f311b3cd734e4fc6552b458cc9cf0628e6c3cad567081c9d18f31133ecd00e46a399228e24b9e36585f9f86703988f0fe86296b4a49c9694ceb22ed0bd9ea95f05d0800cef79bd016838e263ea634e003cafb5d60b746b5ea955945d584cad145bd7acae39af39dde59cbcae0b74adfceea7e188af17a51511ef2ea915117fdd190d473c0ead5ce063516b8620c3d88ae8ec1ce6035ea05b658fbc5c8a10144cca8e94b323a5eb58f7d34af1f4a6b4527ce7aab4523c7669b452ac6e33c59b8cd0002c315b11f1f356ad145f5dac95e23f1bf06021f0603edad3b940776679db23816b45c45bcc87e7025d99e5c7aa2e921b78e685870dec9a297e3ef602dd9825121b7717c98d7fac1b9f2817491115581e363ef3c2e3062803f57e5a11f1376cdcd64c28988ffe6c0005f361f3753f102fcc20e724087481eecb5186ec4c892ed0edfc4162e3d745326379d8f844b1718f8d1116230fabbc3335431b256de6152fe70c9cb151e2589d3d1907aece9c9907f2b51a0e287128b63ed0980f2b5bb14a1827684828e3151ff5f035945231a40283337006f401fb81fb019bab63b048975a84c11416ec3bc909512b227e84f9203527aa38cb327c0653b01879114d1192e1e7b3010ceb40865505820c631c412bc58b5e47a1ce7cab35e04bf69c746755446761790d7c0f106f11e242981ec45d8678c973947f44f7783e04b48136900bd8456e25ec510ebad91319f43a95f880566a1c05672b4bdc7b503e71b65203fbb8b875c9f3969fc8f3a0ef78a09b813ee37e5eebacf179872d8172cf12f6a07bee339a576a601f168370fbfcc7733dffcd400f996e4df7fc73d2ebbc1ae0b2c79abea351eee70716059ff4862d61ba070b31dd622143dc732210051381d9845b9784f86788875e7211dd2304beca3d380b02b72eb91c76c905672a7718038000e22d07a265b6786e0bca3fa0967be651fe01a2e52a2df7cca38070a6d222f27c7a700bc657c1f75c8c33973d9f1aff783e7756e51f957f4ec3f3f1d0b8e70abfcbffc42d7778c587e8f3a24f9c59b986901a67b9e82c35ce223a0bcb6bcc9b3d9167df0fb4791667347f0e6af9bc191198593ee328ff1da684e82c67c1598d3fabf1bffe2df17eedfdbca07f6e66f3e7f31d0f25fb7ce5f70aa9f114fb4f6cbbd4622d1652e3a2dfec8389c05c03b33cf41d8fc6b52cd973e8336ef6440efd588c0ac94926f2b2e823cc474a16bdce9881c58c2e924f526ee6728a2423e59e793946e4c28a9ec931443365d339e536a7dc29f24cf59363c827219b36754c0837db6cf28ebe56b059c47a5bb9a4177d6ab9412eac6065187dcaa4189c18583c97056b02c98d5ff7460d2cc6debdce99cf3d9e5f7d02dd83332270de3953850f863643ae67d0c609945f9f7b4a281f0cf3f51d6f62d69ce953c3cd7a3c9808a6c401ca28a38c3c577c609fc73011fc0198718379062671641399d372413cd3a59e291b26928b3eb52ebcb801a34f12cb264de2442ad80cda5ca725b08b3e6543ae3ca38d9db348adf5d69d3352e4ce5ba36ebc8333eb3315a760e7b3992ad2a5761895c2e6ea2e0be6eb3a6cd48d977ce3b67c67112cd7c094a087b706e66662ce151acac69c5216245b2ead541fefa7e1a8aff73a06e3a1cd43a1cc14b45c35cef514cfc8f51776a140b63e239e8752c809bb348fc406865cd874063147030aa534782cc6e5cab9c1c9dd6e96d8d6fef250d0264aa887931c23d376498668e455ed08e9852ba2be5b83c062220582c082dc58424409efd56c2bc5471db4870a35537c5f7ae1b2ce99f422f7adc010988f9be169098b89404ad80f93098b8133b73e4991abcf8a9b938e6198b018b9001396c4121b584c9531f1b04a99031b65e315ce865c3247e2481cd9c4c69d45dad43051e6d42a5f614ab4310c610c4348c065038b391a79a898d3a6a631c748eedfc0626295f76a94b479a67ed5270b3ed624918285978159489b879aa9b6c9fde2716031f0119b29972b9b5857e6481c1b9812d5e34956186224256c8c610863c8127ee21c5d22e507f30dec0512c1420446ea87238403b3d69217898dc30a0419dab8ae99e20180f9a8c2884ebad42f028b8938e644c15e5dea9cdc2f02a35bd8f66255f4e5eacc4f3181c062208635883ae9acac3aaf89753cd37e26ca9c734e5068b61b40474e212f8693a6d42e076154f76ef1faf030c9b04bf23b3ac618638c7109ae6231f041e73274afb12bc310928d310c810ca4f9972591e1bbe478b4ab4f0dc47befd9676a3a9cb3bea3dfaddb03f14a0fb5e399fa01ad04d3a71fafb0e534ee5f6fe835ee7d7541419c185535ee9ea304e3dc9b8459b092eef8d127980764cda6e52c4fc14fe3e38998039c109aa9cf816692988c13422bf539d04afd1a67dcb9bc8269dc15f7964fc183e5b2fc1e08cbefdd2f8db760297e1a97a2c55561b1165895834e7a2572ef941958e522b927ddfb06bd435771350ff5b71ca5c6abf75d92a623e54db3b5513c148df64e47b4d2e7ad9d608234cd4e8884b40ca6dc7b89e81c2db7812ea170396b4e9c106ce643912e0c33df3fe2e6e8d27c8d4b449be6218d4b9f699e6508ccc37a4c9906fb3e717b12b6198d01e13de7dc7bef3dd72743bf37df7b584e2105cc8161bcbb97a59bae3d834e1a9eef3d5bbaf5f9d644a1a39ce51d96db9e69e55295db9e894429a5209c914838fb4b17ce5e2c3c0426cfeaf2af7a500c2846b39942a82b3edc3d560b96d2397346a79439a3324608332af33a6332560b34bb57abb900336de79aedc92472a5d45a12e92f959600ad30317aca2790f2094c912463173d742b03e9c3645e03da143dc8d83b5e0feb1143afb2bd7631761a8e87851eaa7036054dc6309cd5832ea9e178ff5c9745f7cff42e4f3531cf47a2589c599c91487f294b8ab3971421d8a9929f0d4acf23d5c73b7d1f68c9eed92737cf0a13f1f0402286adfb79ba5db360080c0a165a98c110982a41a114e8923c540a0e510ab21685444ae2449bfad502a59f447aa23571492629cf49fbd361d1270be08c66cb257149da42b92c2cec923c81352717765231cabeff62afc3967bd67032b457a72913dcbb739436ea4edb33bc423820c58b771c7899ce9094527afa50286f5eaf6e7b1ee5cef950873ea31e8f07745b9baca753e71d72a17ce4dffdfcc062d8bafcfcc05ed87a95af845878c2e75e9d6221eef3ee13c7e769c945e580cb1de861d10ade761fee8589f64c118ba9139374563daaf79091b5c2644ad9274f8c095aafaa620eb0b018790b6bd768676232133fac47752963e5855d984c852f7655ec479114a4a076ae0beb11332beb6355576badd5e3b157552f0b8b994c5c98cccc181683823900ebb84ea7d3e9584b3fd73525cee05bc3513b1786c54c263c98cccc33068439a03d6c31998ffb7c3e9f4f6bdaf96032f3d53f588f9a27ae289787e60a5f16eb917de8fcb8fc286e4ebaaa874a63a873aebbdf753d88f9b8aa0a215c49a24d911b16537155fb61401a93990f92480ef0bc33016bab0a62f535b66bb453bfa3eb5f28545f61aed1d1ebf285c9a078de790a3e2b4c78deb905f2a92226f39113f3e19cc464eca4a13c2726e3a117bd0ef0bcf30a03d281a1329deaa257e67abd85f9b82a4ce6a2984c4a9ed81215b786a36232a17c5df4cab45c8f6149b45c5f5c19f9c22c142c86c9b85c6bc5da61ed591decc7b0c795911bb6c4e572c519915cadf8b088e04c56cf0abcccdbd111621fef2f019cc2ea3a04979f61fce4f9aaa1eae7b4de3cb8e7cd88c4dc5c19b9d3e9743a9d4ebd122083721419d05192c89fa334b123377be13d197df1c299e8b66692b7351c16ce68d54cf2a12b5fdd29f128bf4fc734d47e6d3aa7943142f85e63e17cc0f7ded79591a778ae6740243e954a1189176ca67e854eb00d5e9e22b95ee50c6cbd9503a651d7fb3b129044a3b05f2041daf4430696fe01b29ea874ad35b5452c9d1a11010000006314402028140c078462c180442cc9baf814800e8ea65a76521a2a498e534619460c2920020000000000000851de2194371f23b5d4780436c6d162a6808f0c5f22a5ec12efcb07bc765cd60b216612f4a8e7efb7db72a8adf378b8154861071d59546cd655ecc013546dea521369002b92b21f9e1e59880a312090fa13a78d10ff9de5b6a6667f85887cb43d5bcb1c94fc7f4ded8bae4d12a25cd531ecc0843c873947e75ad97a2fc74348cb7ca6b70624707a372864a30e4d4cd5988320a054b25c70cc1619bed109662c802c512799d9c6aff4d3c828147663124a3cd1a345f5703f73f60b94ff5bb131bed781155455d17006da196e2ef36621704b3e68e3576322d1c87e6f622eaa01f03efe89a4e6c6c7456072f919d10686a058796491fa073972adba3f56871eba531e30f759a4ec92ac465499646e655ebabed9a5e102f3e4d3026f69b13c014285dcbb780558514843cd92e0cb9c64661992055b651a6dcf209d0a0489394c6b69ee6db969e85a590f57ac2b89ea9bdd8566204c05496b40c65c3d362d8f36af095945d820c25ef27c38e1aebeeabde7d08a538bd2aee1ce2395628ef1a5e668a41b14f3afdd72a03b183781729b56090410dfcc65f6122d583a733fc84b421372a4c308cec2d602a22e4406cfc95a8ce62423147693f9541dc5a8d360aea391a79bef03b12cedd32b4266ce7c2c147b7bf71d191fc8eaa0af4267afbc5c534ef123a4ee9753103a7a869a258f547ccbb62d1d3f046c6294fd6168db6a59bbc0d7040266230e24cee273ebb7570e29e36585f93d6eb8258da5da4d0c6c612e28461110a3228f49070f72fd49057ccb570b9908d5edb92699440ba61de48457dbebf392a994c09ff172502a28c1109c26ffd1a1b0d5d3f70b0a1533fc0f0820e3906caf3bf2ce59b59fbe489239359ec7a12efdb2f8a659406f96a43544cb54d1764867c2715f9f8c025304c937824ce3996a891211371894ebd5d410bc397c9699a3747a022432d894f819052ceb318b6d4704c76dd8899fbb9cd360d6c2609f79cca86cdc466648dc2b8e257fb8e7dfeb390660cdc6094104c28bf515191b1835dd4e8846106c81c7ef67ac24e4b3a0df6dc2ba687314367c248a9d573475ee7e7a3feb44bb173acf91c11d5f2d9e20aab09f0ee2ce0002ca9034f003f8eaa5a4ca20abf6a432c37ce29ed5be0eaefa21977b812d9f565b145bb38e565f04d882eb0d6aa2aecec1893a6d28d8ca3390cdd41ac090d4f6835ce447c92cacab1425eba4f0d1fe3fde39a1bbcac991f0334e8ed8e35b0b825326b17701712e4cc41e5cb869b767889fdcc6ac65ca3758c0ac1cfe547d05567c873bc329b418c81f9e7e92d9d789baf065079ad83de1ca7d09f47fcbddbe661bb1478788fcb67f050d40475737ec2894b1846582a197351fc20ccdd37a597dbef3f9573951f9722b21926b3da757a1afd656944cc5e605f793714906d0e81d7782f3325c0de9ffe2931b9e19755b806a09efe2a589f6756de131c036661c1d9f02f691f77ca08a8f5edc3fd4da94011a1c4321cb77d9c7a576bca85494991ad6b9837469124e00731efdbb5042d6f168a2c5de42a56b1e1101fb60173d62026aebb49bb70386ae763f63a7ca60dbb945a4d68fc6d73b970766f66667fd84147a6710866e0af0f9d7a8635520e7e99b4028550881e85f029c0714d33df77d06280b47e3ec12b82bb099646c9e8f5e845d54ff5ddf943d00405bac6c97a052cbdadfbef133bfd16f166047ffb5ea492878a1f82dccf01dc2d5e16a3a1c2006ae0bf2b9f01dc4e96ebd5530365c12bfdcd57b1f38759fbbb85e9d11bebc0fb0fb8f50d5e4eee64789de7352aeb4a75747604247ef88aeb2138d5b04ea7ffc768bb39c0df725128c82e26de6c19a85a9bebe383805c7375829e855b09718daf6b0db4adfd5fe5c90a718bfb4bbc900a5d11aa22e35c662e84bfb1823215c2dfbfea82283a5a3d54c1c142d6356b23f444f3330c3965a0cb845ffcd37a5d0e3e673cda31f699d213ca1cd3ab16ce2db90c6c1f433e0f20876390a4dc43a997700bc406dd069a7f86aca1bde3134832229a1acdbc9954037e3b954d541ac5d77a4bb5e9f53a23d703b648de5bddf0528c188f59c197cce3d7756fb9e15221a73e26accc1d2721e1f10ad2d318601dfa4e8309e2a2e9b25c742219a3dc0790a1799806b66badd4c7ef72ab222ba4e36883617c06fbe562211ba365fadbb86444c9ba820bbf66a5f1158f71a3278af53d2e7b770b01f54eb1cf3119b5743708430ba727fa584d8c84dcaca7bfddaef101c1cd52efca7e5470d7af06bcaecab4e704afb860688ff50ea92d4ebcbdf306571be00c8fe6b85936862a37a291c856d142e2aa5a598693d9cf97c044c69ca7c962a080b0dac5961c5114fb253f0c00627e047ca327a92220af97ad6dc65af6ea3f5fc4e0fd7997d2150227f145d24505742124eb23ae15b04ad99edb1cb5659465f4720459a2e811450ce97e43c9c2202ad6999ecbe77f52241bca81d26083d1cd6719fcf1b828b124d56277be48344751f362a679b94876967d53061be6542bbf4da5f7ec3ad672e737f95a7bc879be33e4a0f6d8ce100f3a4c8df30fb72fa7532cc885a10f2c5ee87e95000219b23756dc09a4e057d405a3ee64ff4edd8b1e3cb855e7269714b5e149e18de5efe47bb4942b06fe9f37449e54b1b0dcc3606bcd6a6dc0ed1b71808be88264842d12cfe75c52f695da43ce1953f6bc64aa671ab4e4ef6880d78f75748fe100e597dc936a2a6b05770247a550719b4f1cb5d09928e4e7fbf19e8c290a73ef3e6f432bf15d954a007f6d72afc1c9720f9622142163bb2a4931e3025c39c34aa414a2cb8139ebd0a39d0c0dc71387ab46a6abafd3cd9bab30409b7bf88da84241f0effa3d43cb5071ce060aee1ef6c5cb12396e181c7fe0e8de62876e15bef6ec7e41a3d5052e2422292e59957e90a2ea55341f7127103b2ad192d8bbe651a083ac113e770a1f8e1d771d4a05fb81998fea4e61d04a193385a71f78a3a6eb4ba771af4599c990cb272934c941eb358af46d7e762a5cefc40c59733550a61601663fa5649da88b6a0f85c7a191a0ffce68153607c08a469098bc9c50408af2a7625ea47582cd1d41c816db1e183a0e1b33e00142688012fdf460f119c10e4aa72eaa31470d32d56eaa70ff5bda1ada2fbba3406db9188f66c3d1be535a9c43d0268162d663b400a7c1801583f68889106e104dd5429e7a1e2e58becdd0c6763fdbb39e838ad31e3f19593414b97303e429a16e6e329ccd22e89065f7ccfcc6c09cb4600b97a2dbfe7ab64dc3d0670509022a0cecf4babf8788e9160d8accf2e2f0f78c01258188f7c1012a7f265a517e30cfe4d1f53e460f03887db567122ee71d8526c91412797537327df7e02e3e31e469a30f22047b97258c48c7576bc25038e93d18068d119e8668430db00d2712d189589ea73973485327b94f5036bc8cd5cc804d01f042abeeee678e0231236e047a5ccbaff67ca894191c03567e7e6516ffe15434b238ee98ed6e6a6927c18d0a581dc3460f64564a4a7e08fcb0f0c9e84132b3e9f06ccc6fa57232906e91e463cd4270f9e9e8ad56cf81e341ebcbc2b8862063064ac309b10d695e6a9b64d31712b6c4a7444add06714f06ecfb0ca6e539f668dabb5482a0757f939245f8a6ff1a4c02e73cf3e1a4e20f7a506e32e8ed22bf96630bc3c4f62332b65f5802b4f0c22c92f5d811b9ac4422c2c5fce8caec81e4a23f641d4971973b516d024514db27bc24b9afcf512d489118ae1910057e4329cbd52493f33f47a92490d9b396a265d9e3443a7df3f08240afd30ad3983a18d6bb656104f3025b9d84aa495c62a793fe0c86cb4facd362bdd130a7bc4cbd3b24f1f75655c2da6618073c87a1b8245ebbe4697d5cf4a937ff3efc013f128862ba818a3ca40a908506d177ac652a1ee1f4563bd7c41aea60cc5b153fca1407fac22314a466a2ab85cbfe2b407d23def16a8a0ca6d6b4becfc5dba54cb7ef71c3d5d1c2cc31568cc8ac91c1b826177a3dd5f906765f0cc2dd7570aab3018ab2e3fa4d27c62f83728f1d75a302126ba3697d1f134dd5865f2931959b9b014567221a359e8e1e9f5f945e8d5fa5d4194f8c01a91747a541ed890fa65f63aa0bdaf6078840e441dec6922b53971502b9a3c406691304dc552a4e5dffc2ac53f8ec7ea203a6d9b55bc265dc7a7e2f0843060c076f84d5dd9cf6ec87424b0321b5a84dc4f17b6a26a8f062dae7b3965a0aec0cca80fcc8bee634ea9aa06678b4280c4f28c2bc4c9b0e9aba7e61159f144b6050ff90ff178b98d0c819dd5eb6cc5544cb3a817fcb38e40321699464d5b823b55d2473ef13bf8da3c26981518b1d66af02dd00d3a17e3d5bea1187446ab6802c3ccb1722ad1a4918a76b07b8cfa5a4cad4ad5b6d2e46535d48559431f61cbb8a1a62605a7645961337991d294337c2ec83a60188b531a2d7e9205e3b1f0237fa48deec21c6ac1d3e41e9195283206175a8018b6dee25303020bcc9c50b7dd7f7cfd3159ff3dfe7b5357b9cb666ea8b0f788a443219108cec9d6391a0eb27fd10314f5ac6a886801efaf6c907aa1a8a67a63accfa54ddcb12f3f540435d762b1b003957492423d982d0a1522150699dead2223920cecf94d636fd4db7e559e2ac07119568e7b617b313d2822957a3868692f59d6a1a0676dc71b169965fcdaa09ace9df6eb69669ef58655a925f603ec2c49f57d10dcdc31789549bea7a1e2198d4c013e9c8a2671c5327fbf4848de1eb716288e0cd60d91567cd57260ee4a3efc3ec0eb028ad3bf5fb1f6ed82a103012a7387ae517607ae1aa2ba964655b34323a9041063561d221a5b133bec75e71a9a544a5da089726db14cfc377a127ac3c4d3b985c9306b13db83c3962eb3b258c089d16f3c6edec9c7ac54dc9ba088005fef3f227b211a0821f510522dbaa38ff1f7370b2745ecdac5a39f60054548df71fa751a7a68b0dd6465c589192378d412d1222b5a4860894d68512f1244d9c707517ff40bc87acb64ace10e5393db9b814ed0e3b270900c8335a0c1e1fc1654c00be5f8471e09843171929b25cdbdbeb079bd8a4b2f3db27e8ebbec1beed62ea4876ebc91ec52ca8e773b6db21131910c1c226870fe911a1d35a3ee9390444434a42d77bef9b691cc7572b0acc140afdc20b1dfd01edbb9eea3106dad2047620d8daace8ec920882ab60fb1fcf9766f9b99b96a1b7344465ffe9efaa7e9946a232ff9e3e8066016bb99fc7dcc42c7bb1fdcc7f061a4c86536fce07b62fd0ab796555ebf6bddbb2f6e5630e3357c7eaf156e1b133ce017effb70c0cca6b98bc5d1577cc6527d73eb157b7199fd59da733e1be95eea129a31a5659a60e9e1e5a125c3df6ae290b9e3e97c33a3aae865f442965ca0db5bad708e9c4ff61e65d181652a2498ebe2d773cb4f4a4920f81686e18552f2f01ec606521f89382f0d5edab366af5d6d785616670616320242ad16eaaf360b28db0b708d4b3b1a574d65f1b14e9b67fe3297720e763a3d1d511fa2f1bf035040ee46c183975ed828450487d98c94aa929d5eaf0558088a26330f8b46a4fbefe207fbabdb8defd66df2ddc91928cadf1062652abcad84eb9355a8e41df39130f5ea963901975df6e845e08d24a8b20ef6d5b9a3070ba6e7193d29c242d4640cce058ae6bcedcece858e5f2e604274b1d5d484da9727a96e698cef30fa6bb1b458be643e3b94592cfb0f767b78cb686fad5233d97aaebd2a4708c980e3cbf4d0316f9f7e2daa23ed703aac192530ef1ae27469dd8f5109733aa2805acfe27f6387844159f08128c67667626b3c58b6b352814771847334978075d75a75d371db7c9d3047862dd59707d3bb0d3f13b2d69c1631b2bc50f555afe5030895aaf50e6f141bdd08361dfa05a0888be88e4a48a216601bddb3d633eff49a800d6acf69703f114f5e6b5192684148d7365cbcfeffbde0c590ba6ea1c2ded590a3d0ae629051f0d865ba612e78cb716a5fec391cfe8109969efb9b83aab5664372460d6a167dcfa0856650a4223d615f287ef653184955465738d0d32f462602adc4ed0b9dec85e361086b6855f58f1ed1824432b440970580a75fde8a909b29179c4088f7ae3dd517c913a8a2bf75c080dc468e79dff1dbe2c43e3781ea50ea8281858f94ef83c30fd5f8aacc132d48a0728371006466139510ead79b97cb4e72a3c43717da0dd74d9f9004d3612b2e5ec29e0af949ad06e0d3a7f63b2a4b583ba5cbd6358f3c4c10ff264d8223cc62a7232d98877fad9f8b220cbdd498629e2d54ac7a901777288bf2c990958a7fc0620c46458b742c6a54982ad195315cb83867ee37fc3f857ef1b1bceb93b7da146c4d446e20322a5bb4f0007148775544a0a30ac278a91a9159779ae49169d68a00baed911636e23ac1bd2ca66641945589bd71f664c700680b28e20ae0add2417a9549ff377f68efa193860caf96940ac78d79b1fa0821dcb8ab27da7b1bb480fdd037dadb35b010652925544bcf75c4c2694988afa7ffcf05a1848351483dc524d277f85bb3d240500e025923fd92e1e09810069899cbfe219a029b0901c5c443520532ade5795ea2bb78dc3060e7b42d2697eaeb679c6be9de52022947239eefb6afee81b9e426dd156e78e4585ffa798706aed36fad455298a21febab8dbed59cc27717a5fc586a2c0a400217206ec33a18f1e6b262aeff1f390d2ed2597d0c03d9ff9ceb275133fe79b459842a6f8bf1cd803f4ce789dbc895a0157a958ead98e48fa02d3d7aec87f688d7c473e7c7e012c0823c1e73eef5e67e3f4828d879b8bb3c58185de9630ba2a643612e1e15c6b2e2f594a79d40bb81c0fc7bb489b937403cfd0962fd85a326b11ed12b796022d85cfeca66438e07de25e20df4b32491b337169ad23d28b25bd0e44f2fe0af99a75ee3a9168e6a1bc60ba3d9d5b234442a879bdfd718ea3adad84c5db32956416261ffc711c077c0ec0c0841622d78963a7a98dffe8fa433f52ac0da25d5da7f54e28d48f0b6ff6e8252fe524e48ecad831f51e917f25ba06e3168babdd7236afbcb6976ccae227d41bf93ffa32b5c4b7670f18ca05c1415381ed746d8733c0cfdcfb66cf41cebc17f0fe9578e42b013e53f2a20e041f8938b0fe8a2fb557e0738c87e78ce817c16a36533c045d23fc8f7da70fffd2e70fee1e4fc3bdeb3ebc4ca541c896ee9e5bd298b58ecc575c14d80104ad83e23f7f822ac290a80a5cadd44981ce84e9dffd2fc002689b1093fb2a08663a3cd3c7fe8fed5f1dc844ca668a33296e4a390c3063700e3cb9d4acd8006c7c80e258c473d440bb6e3064f12a12a6d37e85817988d3a20f75731dcb888c0faabe52f9c45360f329e89b79cdd8fef31bb257e5ae2509fe75d3d00e8514da646c823869d6b8b5fc129846231275783e4b9c3b10c7a31d8f863988ee18a8c14eb1302db7b6bfdb2c96dd0df523e0067f7125c009e121ccace4653f65808d623fba920e7bcb3ea26afd4ab833f6ba56d79871ec3fe4cc4a76447e7a3e9d2f79706db5e55e76af8aaa88e16552ae2d5c3c31b3a025706c42b9d159aa260a47dc5eff9c014ea71d41fa1c7cd123fdd3300b1c9226a4564e6fc50957d4a4601a6c82a6700c8c13000616e50c9bd5b3ce60c49095a280bd0a22c8e760dfac6ec923081ac8a3dd14febba90091d8072ca3eb63e38819f2a871e9504a69e000430995e25e0a31824c6e9498c65d69a174c9b2ce7e76b15b73ec0729ae527415fdf48efb21b2283da80750cb76d164c17512700bb100a34e422b9984a3dbff4e8db7eddaf60fdf7c942e38dbb12fd10d8d5ec418270509d93a2bfa0f6bfd6790e8acb4124ad05837c18d0604fcae7d746d845cabed91eb439dbe25c8cd606b9dde81ac34da45c99c0923b79088c4ad4be9fd5e0c5d3c87cb26482b8a78394aa5ac1f7f50e6e10071f9514387a2f2c5cf56ea56f0e1497f02192aee71e3ab8304d3a200c4b9d56bfb9ae22e3803ea42966190b4fcabb59b70977d4cbb3627b2e8d54dee96546a7fbf05cb55fbd099a89932f05518ec9150b5c7399e0775dde9a7d2420077fe1d43d9e50021a195ba9e66031a066bfe8935057160fd20dbbefbab4e9654488402da67c603651946dcd4f536f53b9805e4170a1a47884f863b10816334fbdb5d7e762e62b1d72bc9660f02d02ceaa5110103610349550e9687445e9b1b98126dcc8a32429f796617fa1e1c7aede1fcb6af09f48e2af0ebc917d2ad018eba8e66afda236b31ca5de69aa84066827abd9a3264bad0b58067029c90a2a8d8a5a85a6d2616f097bc0e41b120208f32807e529575a48bf3e0054a3a94231503dbedce67a1a9cfb7fff1fa2d858b2cac2804c0b4edbabfc9b0a58978e9f6930fe0d54890e1006a748927db72c2e64d36374925c4766efa9eae39541243e0142af94d518067fec00b9f34e915be4933e31bff57dddc34265773a3e38c90a43b35aa6867446d530e0dfafe0cd02948b618a81f20b3583ab185a30f56f577c2e8d9c5bb7c5ffdee48851413e6aca587174216044fd6fa0ae81e7811f0c9f912b92be9656158e24bf8911cc54b8b8b618d8808d4266674860211855662fc917967416a906bc9c307825f3fd21c6c182611844f91bd28b01ea455bab788d9df682d310f931c89ce472bd835c768a549418f52b3839c85d816e4e9c410b51fdc3831fee80031ce0607d972fdb90a219e0e8b5e0db77a3bae93f072bb507fe11217eef4a056c3cdb1030a7078de237f4fe6f5ddfe552305bbb9ccc8b560a8af5f46a620d125cd9e013348136614bb3046ca61e3067dda4816201398d849ec6a85e5f4567bd347c62016191ab1379f01478d80d56c0b13c1b5f8674a81b5e6d9ebaec36bb0a55ba635e27180324573e6c233291895fb0676e0b1564fe0734a54fb66556f7f4219e3b980738da0fb60e635365177a2f0f111b21022c4b5d203affe0cd866bc80bd22a149dc5e171b88ee9202ff3bc582fdf299387507c01970bb7104dc506ad5b3a3434a02851f8427a38b00c74b5404762003c5b92ac88bcc45b9dd290a440d319a5f0f89d69017d924dde140c19a78e52f0757853ba2ba19b2bbe39ae18650deaee60a6b7b5c0fb45837a18d504ffa791e5c0a587336c17e685ff0e2dfe5460abdaa36fccec2181c1887c251ae374a5ff444328942a4dc0b565772fb1dfcc4fe32c11d4593e7e6cffc6b5ae27cc26da2c4fc686745436de886c261c374c62bef6af5b3e8d00b3db95349c95dfcd1f331001a049d5d8b1b1ed9c63baa5a8822f710f01fe173429d0d03802213058aad21301bc860877244f41066bdbaa4ad2e39a4b902f7e3a0a523fbb780b880ff07a0db03e9052abc496e5f1c8191cb00258be6e5c245fce75b4be094da92da707ae71ddccd20a4c71e2f599a8084a75438bc45061e2370cb66946ee3aca269f32b2fd1ce998f447e0f19436b722593246080edd0c2810a81fb5b3d7f1e7b93eb1c3055e5f33d611e95e9e6f8f6e2e4a6959a19d28acc6e562d02aa447749722d7d75ef561e0ebc096679b718b52d4ec85b8379f0ec2157514054d2d453a23e819dcdef478fb981d49b2788116eed546f8653ec53abc08bb3b3a25b8f74d3805c60e6529600015c755abef5e6eee41bafa4a78ea02ea5972550b32af3336001310b9938b1558995e18a99f2cbfccccf2ab29e14c02b9c56da1aa7fce175370d1bb5e6221ae2b242faee38e2e62c4244ef869c9fb3c7b55eda0880c2c61323c94ecb3eaad463ab1d1340d23b9a0405e407ef41218c00220361d56f304792d06dd79e6915535b2888e417845e9bc743585be624df1bb92de463206cf98ee2ef8b26384911bdb7d92ce40cd767162072152d23f1f7fd9a614dfd4899a85ef7408addc6fef4f080620d5f18b0e5f638a979ca2f0e69c777f426ab6a17287f0e6fac2446c43e94089207b98b2365b3b80202f1007ad2b8f8f3a7f4edc2ae0c87bb776d9e2caba6f884fe79dc70e0ac3e721818fdb1aceae3daa26d79f7a5eae2af675a05e6dcb41e7ce5b51fa6295361421cfaba4d5df1463a9bb6a5945bc30a1c2c760b83f9bffb3b97934bc4b313bfea14121a9462d4ed2e13fb2d740309f6c56935dde33eb7312d42ae894b7b10222115bef7b7e92a3ab2396e60e62bada8ac09f5aa4ec404185c1b016df237bb95a2a9af1b11ef49292322beac60e579bf9aad239c2dd121991101b5d2538873fc8b5e307394e4acccca6008f32c84539ff4944a34adc96bd8aadc631228de25c04ddfd3149ece819803b4d791ac3376e0bdfad57ecf8fc7666f1c3c7c422b3db4696cacbe779268276ce2e086e250ed4cdca4a8ad2d1de37a47c5cea70a7d2786db20ed2bd056738f878c791811208363b045f30b2f5fb7eb7d005d3abdfab3afe177865b4a85feb772da3568ba57e798aeda2a125c663bf52526c398c597ef8d9aae6bcd8ba8addf070e7831483879d54339ae2b24a9a89b21ff1ffd01233be7726c219ccfd76318e949990ec41a695ed9b569ac6ca6d4765a936e15846d6304a1abd234ed2301a06cc633fed59e7396e940e077b95844c334bb2b4d1bb6f45c51d5c8cebc774ca6cfbfb3d7ed56aef70de671ccd77ab4074118fda5f31c4b1fb08e23f98306ddb5ab27fc37ade21ead73a39c0c4701c2e882d0a9c6e4de177029167fe5651e2887a42db80685f9152c616aee6b5ad8fad25111fc02e94f5f882773a9d0a3a80b3521e2581f67b298a8390f23b9e8ee10cc68e378af09362d75084eb9fcf194bb7add6d6ffa2d1f950830b122c76575b8f4434233827791b218d4fad0cf90d49273c3dc4fe9e46cbdce2b9d3cdafac6a2b078f2cb99aaf1925586224bae8e980cf3a622462671c7e0eca3a506ef68efe90d1a75466fc7714b346b51d2f30cc282489b0bf4504bcc26d494b202f6d72707c9332b81afa7773c8e5b1f8b81b97ac08d800fb07765095828ecc1cca8b1b3575ebd5a48f8c08c8a3df87ce0f427626f12b291aeff20d5abfdfabf00aacf39a257cef35706194c59c9072c3a2ac15aef27e9534dd0decee267600b5682cd2a5c0949e7c1ae4f74f0a6a13392f45f27aaac0a040e7c893bc59ea6036e8f3ccc845a77aa34f8330033dd70bf15386db2763032dd4a9888e4871cc7e5c0fbb652d304f9a2d857f734bd85bc005f669e30203c9cbd5957d0c62e0cfbf843f248d7abd8953f27bc7880f342c8ad761ab5d6168f686e2fdd9c2620f4cd07b0745f840d8f131ee027b73e3d8b5e9fa79e4e3e285ef19478a2ea32a2f6850443dfabd0ce77d6f7a986d5b3da54bb5fe13453704e8a38bb43489ed833190365c26f2375134b57aad444ff5a957fae6e9ce295214dca5cc9a6f5dfc61f98aa335b92ccfa990d6120ace76927163666c5b5040af6c19cbc7e0304b9c79a21d30df7e4143e36390f555e4ba11c27e9c5cd26d99e275284bb0d7c6c718e80e45e1406ed1783b1d90edb4309c1657f22a8df67fcdd3d3a74ee2f5f2abee1d25e63921319ffa1f39d58a7f0850effc751f1e923f238b06bdabef3d700b272c33fc953873ce45fd8fa60d2112d3960923057e09555936fd8aaf6fccb5324f94842dd8324d949377ae2c72fbab454b9f9455a6909821c099adc5491f690a573fc5f809d2c8aa49b6e467978b036ef7e2d88b3469d2596c11deddf16095a952818aca978b9c215f6bd52144e4827e90da98cd61f7c3745a8cbc3237230c4589250ba32c7b07ecf88ecf5a082df990ec4d9122ea8bc146f6902f5ed2cdfd4cbcae8ccfcffca083f77d4e1e4963bb3ed7caf2cf67d1acb7757c6eb94fd2eb7db7cfb4e60446d0e03db014abaf90694dfa56dbe561b6477f41b298c55c126deeb3a65409e3ad576b132f8ec823d268d942186aba7736dac5c2991f076b2e92af265f821f670bfbb2232e2471651581f23e419719402d86e49540c3733f0b479ee944e4a95a37656e60353672720b201cb973b22dd868d169af23d18657d0ea580f2e316dd4bca7d122f15ae28832ef09fd4b36b8462bb08368dbcffd9e702c561890dd989a980cc3c2b25e4eecf4ab80bc9031cbd00e2666fda5d61fd30ebfef9c2cb0657c67830714fe5ba7ec0eedcbf4aba0ee5b836557ec18ce1d4c6150941369d257c07401cb1e015985de76ac5f5391b3607f257dbe5d8d83847e735d00670dbc5986a0c4cf224c7dff16c4185453ce00b432e6e94d418499a3c6baf5156e2af7ece1fab1ed72fe7e421584ee657a9036274209d72f054bb4e117bb23986e136e9fc6adcc4444d59fc671301d04cb4d301e82fd29d85c82c9192cbab5c6c23ffb0e3e04b549836a1b78d50b70fccf656decf6f54159157149f537a135d64badb1d0d04b716122fad6d8cc5ca62c2922958146c55d4d7de85d7bb832a1c40da36d488481b233a4cc7a9f6524ae1dcaab2aca144d2aa9489bce2e4599c43ad558da4dd530efb0ebaab13c041d04ac0998b17c52cb4073d131d9b91aab19d0d249a6aaf655d259a76d7334b1c7007fb839c2bc64d0d1f96342ac283ad55889a2953ae8dd23c7004bb88a0a0632ad49b383b5061ef46a4daf8c95876b61bfa2f1f5af635e2e32cf8943a41a8b3f7d409e2b76f13bdb94053215900361d66eb455daa8c632b5aaae67d3c0f313118b97d89d48a51dbdf39dd70b8f2e8e819af3421fd3f65be2ce49554d55221112d1d931eb974bf6a2e30872acc3f49a2f8df0a41635233a8bd9c62e07260bd834d19a7fd0e69196cb3b8dd98c499a26bb37ed7d9962403a7ad9dee8be079badf441844d6f56d6731c534a2abd9e061be9a0927ecdad0b7449827c47814fd961de3859665e5e592ed305d44e6d8f63949619a9b76ba3e3e9a5221dab4ea1e65aa98d671a7e09cacfb64c901a40e9512daeabd0c8fee1fce665cb95df8ec8cc5e77f287c272df2c1cd6f25251be5e0616efe58dc5eb1a81775b1bc813007a0c8be20c917fc743fb98e1f7a4e438fc078cce50e76f8591f98e59e183535355d94fb88ec1c152e8885bd0d9d8fbc00fd5ab46c17c0d1ba08c064b7042a5b85c747ab561f2949b1b6c7d7b7263ad669486bf7ce46bdd1d844cf6cfe018ff5278460b474d5b2cb05134b746fc2c1845bb1fcc6cea310d614651e9938ba09d1cb40cc0e595471b6c58a10f92e33ead0f8f9d283a429513898f588153048c5c53ce25a06d41716b8c4d85be1ce30aa4539d269e1ff03ac5fb04647d37fe6725bcc94e778440a5236e906507f181ed97c3e79cd2b5683f9e491769bc5e53b845170c4d5faf3d3349d5f33c1eb06a33f9099ff85fe7b65b1ac4f4b919c5c407ba42f7660b76bae4ea775cedcecb56841cd2109fe580449502d07b22401e275a42d4154ff403f3d232c8dba6b97b4f737476575044eefb9181772d3d097cb19206ead53b8a603c28d34ee69c9081831ee31d07ba08467cc970b18736543336aefc9e7958ecb4dcf2dcf7bbeac9808841ad25bb9b7aa938e45c60ffefa1cf16c7624a00d2ebe466240fd8bdcb5dd1aadc38b32a6c9eec84a13cc698877688221deacd5b7107be3da46b3d5f852a59b6083a4e1084d36ab5d418948b6a7ae3c528dd37d71c96fb0c3ac326e10ec511a3440154c842c97dcd128adcc0d242ee37f3e364b739041fd792c0eeb130ba2796e5de91c43da6f8f6047bdbfba0c5339c52e210fd59dfcf9c634d3057d08bcc4b53b776d102eef416967b734946ec40c4b3c17d47e1570db754b2265836705f9d6886b1822d2b4d4f5051d996269875e1ff10b41c18ed79129d341394a7f05c1f8c38b024dcfc25828054c050416eba21f439d8c812c96cb18c703320b1848788e16632e060471479e910a08681de55a37f0dc05ebbf6fd748af4c543a203bee7add07bf72f478c03f752bf070da493cf895be1a3c88c98b1755ab9b5e0ea354213e1a8620ae58250797382bfbf443219004858e797785d0c68b9e7aa572b8ebdfe9263f1f3477ff1bce2c10742cc1e34bafd6b99586993cf2db4190beb6caea173d959bc108b8f8f4217bf1472cfa97030be69155588f903a9c0dc9427df474ee0776bf3ab1e178757ff7d2995110c1bfc8e1e39607c5b3e92edf066b8c59470fde914a368ef391d6619c812c16928abb6d9024d9ff1017e75513ee5355097ed24387115c9cb6b9b5ba7bf07df315d88cf92ce112d61d682c3e375a8813ced69ef66fc84750bc236121cc496a2ea5a14f9fc1874957fbd3ae5756ae8af039439a0f76495575504346625d0153c1fc97ba054db8aef47da8f005eadc804ed8ccbebce98c2ab5301f494a520a257c1bc553a1ed706ad40a125630b817a6c13914731d96bbec3643ffa0e26e9f357cab62bb9101f0f68d6a9e6c98bb636b95c4f05e4891889c1be012bb8c2768d657c65cb7f1ca9aa0d2462545baa52feb8b3769035ff942d38a58a7999a452503dd2d6a7d4e5cbaaa8fb61f53dc4d5685df37df370c3ded986ab89999939ad0a5dc59686f0c31eed99722f987e96edf1b3ad469b35330ce119943433597395b688326af61b1855cc57fe10c13c60a5b9c19173dcfa813c68680d9409b058b94e6068c720d4a8c78255a57b6b0701f4526c562d9c73e943aa9e89b574b6546a76abe3a6c2f8b8626414f2d554d37163f34b4f2d259e3355179ff1f64b0a4d3bc724085209b248183c21f06aa50cdef104a9dff4bc9143fb500cd7571298c65d1db2f758838d44a70f8a3c60c2ee3a155668ce62e0789b071cfa272139ee3e4eb046eab628464b9f2e8c3f8658ba3b06baeaad3af68c9417a871e88d4f1534144e8cc674755acd06ee88abc8fba8d9210f03ec8589d14adb4803cb819e5d04173ff1c81039e724697b1814b9ebf79889b132d45ea6232656ca30cc7eaf38f1a1cabb6b8964be30afedf1db0cd56d13f515e5bdd6fe82b971439b70d4481a39d71f6a8f7f2de635059f0b45ea5287a804648e9b6b1394c92b2ce1c3bbda6b79ad24ef38eecaeb98312ef573e8cd1dcfa63ef20f33ad97eafaf457f6618bd3df193d9ec7690728b5036b5cd4c497ea01837a5e8730b7f4b4bd21a6b6b9c5b085f0e72854171c7b4a0e6d011d5f4e59c0a9e17d5d1fe39038cc35eaffbac5442b2730a839296c66097ef21d372edb5682906100eb9b846d2851d773ca32520175a444abde2ab5707576ab05f7dbdf745c53559f2d566ebaea43e0fa4a90e45fc90cfd2dc06399eec287a3e7645211ac4c221000ebc0647300fcd411b24b182caa20d968142c2a00b2051c4e75005938008ed1620de8b0d50c412072664605746f633827dfa51745930793c0dd92310b3ae877cc6f573c4ce0b6ca8582cdc1776ce3b7dc38d26746bca82912d787b6d28c60e230b2c3aba63081777129f07002470be13aa72f9298a035323508d29f1e40ad84e659b9ee4fae338e17b261dd501a13bab3624fa5fa2f1b73dc43a6ad19d6793078bd2460745939cba76b6ce6266a1162c224b6cadabd41eb5be7aa511e9b285544ae5107141e33290dd08a565eafe455170aba68a45464eba53fcaabfa13ff27758a03b47baf441a387ca9a9e3073e389951ba7aaa30c84311e49fce080c85285117f9f602db74d9d43bf15e58b013043620fe7f50faf7da0d06fd21e8c441e8546d2685beecc22c612a0b3933513c46134227931afc21418d9749efd71818912782319c3386be54fdc08811b3c07887dcd366611dd299862f4764fb9f752d6e4b67b2a5371b6e45352a163364c542265409468ddeeb5c21a6085cb42212c9f79069b650e64a726d6769752385a08886c9c8fa272013f24a5e3a06964e94270cff0c87dc102645ca9d8355c4d212651cdc19d3bc5462c1eb5b05215f7555af0ed840c3683e79eda005baf0014a3a632c321406161ff62a09afc6c63f2351d50eb78a4353d656e8bf2aca4d3feda4b63d08fa0b919c5f9b56a79d2cc91c3407cf2bd65c3a175d31826e35c3d4cb541a5624880a0cd10df46228732f19e5fb3d9cb745a85828f979e90a3791885a91f379bee598b2bcf016cc9c3d45e0b8fe1097a1c25d840a428fea2ef69b2eda457f6592109f101e41156032e8d5ac4b08e1eeb6e5983ae5827c2b815ec3f1a3ea165ec9e4d9cddbb0b34511bb25985700592003ca1e0e7808d4c4a3221f953aa513deb67920d3e752387702d2ef58fb863d63a0ce8da9097578e598eff6a8055afe0a402baca703defc06c505019ee87f8a11355502669eab5c0babb00729827129840a6549a2c28d5017aef0473e1f70a0d7cd817c8303a6ddce54aa9258254c784aa9ac2050b10035e31267bcb329a23a10e282560aecb16564ac0cb59ff81c3530bc6c27effbf458b38dfff14fc7ca9e027e43251d0aab6a11360e53ad0a1576fb0c3c925bba21da19f8ac8548ee135575b2b62f1480d896b95fdc82819205980913648858de4a17ce29d1c96550b5df2288fe0db357e5ed46e7e30f819ba2413123fb9a26f68cb1bbb0e6624d622cd743825a07f7480ef0057a6d74467bbc84d28856157a41c6bbc8e9cce8d6f35e227eaeb36d4f7af2e04cf7763a442382f065f12ace475422cd850c3f9160ca7e40c2c52a3507b707d0259407d71f6a54a3483ec6de60fa231619c4a682511314348f5e5a0cb7ee5c654b9d08364041d394e690a304d156e2ec3258e01ff56283cf386e2c1f294e5bbab87131ced1f83fd8bad2bc8b3150cc58966e674ec1b62662d0c00e6dcad1006ca0bf9d950e4154bfd1535b2da023f985aab4422d60da5fcbef7151b95ea29f3375a10e01522e001ebfc0a5a894a81e7ccaf60fa953e01cd8dfe276bc971d812b34823b0292d4a853012e149cb65dab07ea2315cccea6f4d183c7deb50a02abe6e53e485e31faa4a710ea3cab33bd2dd2815608b28e66daee05a88e0142efe2afaf3d9b43ca0b3086ba65be42e02881ee05063b42a5d65fa0134ef6d2b8fb53e5282a85deedf58907b531cb4ab1e63b690ff6a170cb7ee222ede550b5cbfdd7bd70e32f5fde74f6423eb9a6876e8c78d39bd10b51a0c205d0a50cb19f3795e30489864979f76c6e82fb3898ee8871029064624dbf99116e58902427ae6763c07b4342280b3ac37cdc22ab8f88aa32c055b8f0350b549acf99247360c9a41c349fb4478834e94276676badda95ab3f1fff0699b83c4706fa3e8071b6baeed2e003ff810216e67eafa8565d4151dca9558baac8d01f55fd77c3fe80b10a8fde813e20f9ec826dd4780cca49d5e207ed1cc571cc4129164106e0ea1bf8f44d9d86e28fd5682cc5d9e142e4d3db8802fecc1deb6f07d1558fcbf8637b9e867c68c57fcb579ae20e29dde56e0ecf84d2e9381aab49c06d972a79f418ddeb6ca64915baf061f65453589993a29a19844c82a000d5a209c49c22297e64d87fa39abc3d4608dccb3f1239e17f163cecb06a668c6ac5d5237c0edd32a248aa42b63394458e2e26554ba6c60cb4dff278c0aa472010324bf2a32ff38a22fba2dbbb75c47d9e9e61603cf255ad3a1f0d28f88bae8195106070e7e61cff17659c4ce2d10062faf174ec168ce4f5b198d29902cc579abc4ae6548e438cdf2a39125a916c6cdf6b1043952ad13749217d0d0254f4cb36dcf3479ede739cff10b66f9a3a266f44f81969254635c10600184e55b31ed570cb40fd9975cd08c92c5d88dc5aa8d90890bcb56bb6eaa9aec6ea9f6ebaaa7e78f4d4ad85663f894a6a01116cc72011f9edadd90da6e4900ac20d4d206b3f4b93c04f2d9f0b642ea1764c0493ed3bbd0d490051ed8ff072e747fb16aea79692c9a9ee0fe2f17b82776358a9fa1b065b98cd5f80192a5b024f1b7b1cae15c7f12a9178c1b51d566af1e1476c1ad81fe67b749d65dfb7b89aa303c54322fcab4f2771504ec40f3717d46ac57c3dd1d140d2726226b8b297895332d331257522f84c1cb3b3288450920665fb56b7f4dac3983edfe22d66ad380ad4fbf32c204aa4436287b3f9df25b905c306fb37601db870a6f2dfa0b93867caeebc896234e6d2116b22d6b93408c0711452db143cb72c68a27aea5f67eaa28b124c6b90dd779465d7db3d770e11c180dfe5bf60c800fbee10bce939d2cf64d34f08ec8789eca968c08b1a5ae1fcf881069ccd8b1a957d51a83a5f37e69f4b9340c40054a809423181cc0a5b2151834f3e42213eed1203daa4807e30193e41979119bca5606ab4f60d8708396e8cea6ea03e116ecbe5fe384971ddf9dc3758877a8f2e864f06b8309c21d6f1305feae9b35c0c3ed83838d5188ff3aba514c7538c54aa7c0c379ecac852ae1f214efd8a5e08a0d8590ed9e4ee424a95f16f7bb015f0886bf6a9bd11f496b982d7f1e0322e909938455dc3e69197a061204bca6ab018687cff88994c59a35022688ae89b2ea5d774660ead99d6d79fe6d070074b1a8026984a073cd62498ad5b08f3009e34bdf3d61dd2d2f0391f035e330f1a6eed36523452345fad049f385efe019647c340bfafa810e14b7a2233829633aed1675455d38998a7be4b60f7f03e894a706bcd4d071eb9a74f39305cab9e2aad1791ddc8f7e21e4a79c8a9472fae6c7a9577e4dc1e16dac7951b45b382208881788cb451e5a0dc57b959ac018641650edcdc2e74f43053436c0f4701b6a6be21f5317d8aa7d78dbe6ddfb0b6fdb147bf2936431ea501f26392eaf310c5248c708461c5e5a8acdfaf348831d8853d6b55b3ac412aa33673a4f3af77d191ccb30d3cc190ccfaff1d6e3f32c1f1bb253b3218ca23135de963da0f08f6850a88b08ddf58bbc66a49471509c2a6dd26559db64378a33b34693ff5ee040665a9c0aac1d8b03444e5ee147043b9fa66e7d628085e0e9036097d5d1d129c2e12a5913268cc0de92a036c3930cb3276eb4bdb13e50a9aeaa2ad0fb469b5ed4d5739cf7494cc3498b01d934a011a37e71dec0c233f502cd2d7bd3ebdb2f420576a553bbe9d5985195ff0941a518d83b08162615893690405752d985bcfd88978ca728a8310cb48cb980627694a36b6e2c49d9a4e2d682e59248c61f836ce33661ded98626ea394182b072d45614a7b009535d40fb3d5a172369615833637bab0e243d0599b7ab5611c958bc785aec88515b8cfcb25d650018671822217caf1bf0706957a273b5b4d82bd14193ceb075e4982db007b8cf1ca87e570bb75b5907777e4a6fd27be03a0fe2673216628a72f9ee4aaeae7592709980dfcf935b0d0070003d7779325e9a72326b7bb71259566efe1aaa9a180b6360fd46107ccc9c281f70a6620e340e31a20383e36d4a6af5bfda49106998e9b3250c6ddc254fa79d0c71c9be4778b60f95b3f2e770d54b8e850bee82d2043c644cc8b4f71860e29c96c0150ebe5ab8232a68e05a3336669379578ecbfb8c3d72a5ef74f39f1ac4b432b0a47bf8a5c0374026325f69314b72a55726c06a3d8c252ed48327a140bdd443c50cec8a957e6606aa51b0740af704a2223b0d231fd05fd0b76df0292770e3a46f6c057e9316d587718863db855b5ba891f7dc7ed25b7bb5cca8bb5cbbafc64f3489d248096a89375a082e54be1dc9301ca23a7b61d0e21473e759c9e049f803b19ff4423a1e74888551a9d7f8654fbcbf24660a052da7d075e3e4d61741ceb52ec1752b0f4ae3536f84cfc36768a94bd468b431968d0f27655fb5081d5a93a3391f02e1c3f85b44c90bbd303e8f73d3d570ea76b3f1f1baaedb89240c7b640f79fbd726787826a1868192b8b9d90975d79486d893b09824c3748cf2fdb509b9540d1ae360052342af72696e63598aa79b86ef1937f510ac0b045441a7c5dca842f2ad65f4095278345dd6f28716186c5a1bfc1bc60e2caf3bbcf7d024655d56d433140c060ba5da9b59ff6006015f98c1b0bf1165a730718e6c155c680a8fe58c308dae68715d408b8fe5976c4c291fde9224ad695677ed7037757de51a39e99575eacc7842e3cf9cc4119a27024d418c3059ff5d111f61b15a524944ca04b52880cf6dce8a720f98576ebbfcd25631237d2ca613776dd14bae06508cb9c8d2e4f6c94033e365a0bdc7da9e79f2795532011c5814bd63519eb251262d12ebee7f9703606ae0149d32be1771ddeb103595b8c7f7dc2c9f699428de4cc6d157b2b2bbcc6a301dda5dc343bf4a817aa870456d05d5f4b22d2a1f0f6ffc45189203c2a990ebf259d9aee1b2fc53637a248d8e29778510d2ee4a223beacb8b92488589cd707e5b24a97ae3206b83cb22036305ca77b0edf5cc6aab42369fad98f3f85c700984b0998ab9dbf790a5915a1d50bdc67e451893ced9c30606326ae73a5786f9a714bea8aaa40dca06e045b5b4e1c45232c3a647fd0590fd6e4c7ba439d9d8deadcc3b002476c26fb3813e206660a80b03c9a61117254fbed207330df863e5e44e593b0548662d4977fc3cd93f9f3dd0eaf62f8d942beffadd1f30c9c5aab6b64a0fc6a716fca44a1e34195e174813949b8b21ee28f84e81413058c02d10428330d734b06479aa0ea241573e7b893f640d18a6d6319de796a34f0729efb5518e5fcf563987b3321a842537c37b3e06ccd1bf9ef3cbf19b9ff23654f5921f651a4bc5a962417cacf9866a1c53c57443aa39b47e928cc7f3a233de24b6c7db50091c12fae7ec71ecdff2ca8ee3a36be7ef3a473986dec122122e3822f5246cc4d4eb04a0255bb59292ee92cab31bd7fd41d9a3652c6bb81fcbf1f57de57788981a1db522bd625aa5093ab822da622594a3ca2fa24cd1e32813a5da78ec1eb3f9cc6476fd69e1e6e054babf6ec5b02d177fdc8ee56900beb88b654667c6e63173001b0da0458af002234f6f0fb4581a310cb7c150e9b43e9f756554618cbb59cdbaf7e3564cca922071572c753bac1ec58cc4b5803f98066b223f1032822bca55ce10aad867e586aceacb92e0cca23988b29440e160a62eec8efc1beffb4ed449ef849c38238ef4a2fbc0645c57cb644e723c25fb0fa91c54902127df98c1b3eb586658f6a6ae5ef85a6b62686d16f76247950eae2e6dc5d13783d3160318cdbd268b050f178e84b6e2f74a5b91f805312cd963df497115ea30e6ae11fd6e172aead40fec92373d1aef3071bcf258831181aab7f78d33a8e4e6e310440db4a54c039390714eff580609ea143262119269daa5cd5253a81a35096b2bf39147bf37a574f58b7dee42550efcca0d18cc101b3535812a01c0d67fec93f8822fba17c07dd64ef5548841b2574694d378e895f8aaacfd3e04cbe87119814698d134603ecf0e6c4e2627d48d6a455966a05a5a2a0a95ad7b319cff1491a485daa94fd3458197962e7c1e27e4f5d8f116133996bc2c64dabc26215d885259e49259037d3be13287ec1b2d8f3ba0fec1bb3a0addc5761cb5f2d47cb04ebada9706d12cd771fee954171afa66c9ad34545264940354f21e9cc82dce286fc0b622c82680efb7adafef5b5a3eefb76edc23fd63721693366f235b84818e604f3223983e67c6b154847f5087ed59849009bbf3c168f0e89db4b4f491e58ec7dad596b4254bba305bf4d3dbb2e2986e60eae5c97394db244f956a26aff921bcd1da47c4a414b64851252311c1a91979a411583555eb8b4224035e11f60305f48f6d128fb508b0e7a90df901a3a913adf63f5df1af5cece8c9e60ef8bdc8ce481339b38455ed96a08fa4c0df2de231ed9152767d1eda1f29380a9f4168be5e01a02fed263a07daf00d9343be6409ca57a7d30ba77d832cc923ece69d18f7b455764c2055dacc4043820b86485e89d2b1173b964e50009898a9cb2cf93bbe4f4c338b34bc2ee754620cc9fc7ccecee87ad42e913bfb219a2eff6ff77067e15e6a99aadb0f139e2781eee8830b4bf4abdb65312c778cfba45465f3c236df6d23df9f547f4a24e24e19c5d204431375e23896c2b9e1c91fa415f1484275970871900cad43bfe549819a5d14b4c00175edccafc0f522bf6427639e9062eccd1b1690a0b63ffffbd3477aee5611d7f75e9307c42052f1649d64937395b4c7a52d205214102352dac800f20992467f5a0f1d10a13b0e797605611956d515a98d01bd3aed5d28510a8a2169d28a8abd2519ec5403929b20ecbfcd8629740b9777b483fb57a570026b423aa0b1ba896589758dc1a68f13b85498d99c8ac8fcb5a0c1393537710e71bd4589e81d043159b073c60ba4ce37cb78f22cbc6fb86b465e2a4c2003c71586860ed8a09cb6edede1097aca67356a299b7a8d67dfbd2c9fe3c63b9b66dba8f2b906e658a2adce88b8c9802271c3b955b33e60514cb3dff123ee205a101c0e6eacbab97bc023982da33ae8818c13a3258d5d49dfac3447be5e498f4137cb87fcc6b6a2be26e214dc696c06a20ebfe68da88baf2c90d5f41f207d11c9627d2ffb1a4a6c7ecea390e628f1d96fa220badc7a54e7e4c8b2f5e9d35ee378727dacc1cd6230d86c97df20043f129cf244d5f389856be0adacffd9e8156402f061c0940d33facceca81085116ff995a62382f01cc07f521867da1fff3fc774094fb830e83224db556a618aa169162a4aacdc08d293aaefe88140370c4268886284fae9303b96d3da938b3a42b0f7190560cd46e192af1f598e13d053860b129fbeaeb78a462d1bb09922b9360b1614e80ce3e6865882041e4b028b289803e8d07e9b192c73a00114a00e0bff15764f98a0883bf7621b15ed5fe455af9792fbe5a6b69a747f49f42802ba2d88902ce8e5514c5c4119945c1aca43aad6059e971c7c7afc033cf5ac3c493c6fa45506c8c3110be419252989cde786921f3c2c2cfe47583bb0003fdeacba28a31703c2fdca5a4a5ab488a50ff4683a6288bdec93b343009417e62a82a0821a6afeacc032b8920d3403c4ba0c78558d98b5fb9e62062157ee8866c5a08f7eac34a825ed3a4342be3ca75948e927deb2deb93c6af903cdab0fe958f4bc314c1d8a86845ee11d65e96e85e06666972fcd12ad398599558c737ccbb772bdcc9bbff3fe78458b065cd917340617eaaf815f504c773fd3c65fd44319a25befa28dd2f631a63936a9e5466d003f7347fd57f59a909a244b388ed430d8b4656663b5733d855e5237f6781670b77958422c227cdaa5063f84273530f22490f13760c401a8695a82f8b2750a4e96968ef555a3395d12029f166aa6cea2d51c70f22663d8ab204113e7ad45ee8d754bdfafda0aeade212910409571e14d51def4650472057f567e25035fe9c9272c9e64f54e1d1117615699024933d2ab3eea2ef51bf8b69a1a8f0cf52b608cac153db25a934673e07c550835298f75b7c856213ef099f6820a6f49d9edd8ee2f85d73a0e2e52ec2c61952169dc2f131d1c777a74b539062ca1e271e72107d89a563b2b3d81f51936639637bef3179e6418bed70b18b3531050736b064ff5cd328884710eb0338b5d311c3ad6068fe719d938156f79c46b6b01984ad74e5c8406daf6fb30fd465cb59aa3a7ce87b4d12a497f95690ff650e54612b31cd6b472dc3c2eaf1fca25aa2b91e771493f60202053eaa8bcc5667a07a7d58b5b6721933df17593f933c0f20eece4a9f9b20bb1762c6c8dc0b4a950e0466a6787828b9e40b0f8460c470805090a5d9cb7f99de33d6d53dd4b542d1830bfef9d6c2a261c5ce7cee430e7fd4433d8c477052cbf96176b03c5ed3fa41ae3a0edb4e8d4ae9e3e1003c1bcc059365e06b41b81fc8c40743eabbd8547acac1a0863624bd346ab4e283121a2327fddd93bdd1510c372a22740652d599d2de5027714d90ed74fc9637eee47025ffc402319ede208023b87a580e17dfb242669e8ea0e4278ddd07417f89a839cf0ec05312d4cb4589ef9d738ec6cba9b284903190252004506d4338366a49f6533d0b044560f1f2852f32a012db1ec92e7ca4aab56a151d49ce7b3f76a245581c5dc4fcf8e913cd28542049151fe0021ffd2288260d21f4bd1f040a5db03ca198054b0097aae96181a8511f8d2130275046c8b6ba8e17b400a0c7d3fce5e87997510edd5131d7aaae12bb72965114cf75c37b24013d3ccdc0f43812a910924fb2107d50c9888d8866ce81e1aafebcbaf92a53b8e15c1f63d8f54447c8c76a8463df7e21d33801662b3923a676f23ef4c828601d613acc9732577a2e0732d7891fee468bdae4bf9269ce20d75307487c5bfda4385a48875f83f365c87204b9e96fd23a7775ebbeb9ef2e48b6680642f7d29a7968e57d950e04e961b60cf5c84c3657e394e5baa56f56584fbb461a6d3aa36c30484011c9ba9e2d1cb0d1ec784eda77d43989cec47a80c83b0db424b6a1f6f6b25600358d58917cf98a80f0d1f77096f9ea95d8befa1d320a5bb320103ddfce4b8c447b00b071236522f9bb10ac922f02a11f09c96c3a921a8fec90c1dbb261270d714aa0a8d9d099dcd8dc647339083b9d38adf80db8ad1b407a2e1cd820c75c16b2a987adbf5d40a6bec0bd10767ff06a6cbd4dd77731760f5e72e273710e8be48267b9e310ab191d0ad289fa6b255610746ac07ce31c7e20809f4e0936fd0e81354024cd84ed64682291461ff3700c7253499cd0177a94f70eed2f3d7c4bec2e35a3311da45bff812c28e362063f2f03bcfee308e6448413518c6ee42be485ccfe63a4fa041d420b22b06b4db6ec3ddc3363fbb9be0356f4ac80e4987a9dddbedf3ae04548a2e4e183fed0d40227ceff4fc4b66f80f03713a4b55adc5fa616982a19c1da78e67057f298a80c8379e0c967c621b294f0edc7a836b6e38d93643a0a36a19091dfc12e70ae048fbfdd54ac4f949f74c94a2cc39f43f2773cd76da89bc0c3e81f1128c14cb385698354ba7909f654ac997027573f0324547acf81dddb698e1195d749413eb81c88484f9026e23143d6d5c40672419fd73a052913c914e016c4e908694226bdba0c7049009cfb799c207dea0781596e517d5c1ed492c127a789c71109ccc53970bee50bc9379a719392e8609da5d70e342cf8c47036b22b5d973df489f22c1d462e4580c11afaea6c085ca1c108d6407453ce4bb03070fb172fefaa68b058ad4cc31fe4ac47ef4b80136864230b4b0536513ffd9a6395a5f0306e5167014ecceccfbbc3b0edc18b13c13d6c76a3df880ee18451b01b950467989277eb3bfacd20007b40b7b9e9d22484dced979b9d039682ce7a28c8c5c9f20889afe1b1ec25819f10e334405440cf03f47c51bdeacff4425614cabba84d09ac49298424d0384b2e66eab9cae3c6a04eb626eb70692e96cd02785a42e157b9a6842102d1fd85e1e47e3519add4d993c1832a4b51e8fb502f0d3d2762fc19bcd8c1d537879d285ec6ee992b8b09a3434348f8d7a8fd50238c5fe039b0c4b904f0f995371fab553ccbfb605d85cff275e272ee4859bc7c313dc02ec53554af8e200c48a2b85b5b3174b46771f5c3ff1ab6b01adbc59800c1ba38e46906275cc2823415ee47c147f029c66bfaa2bad16cd8104cefb420cdcc4f6f284232703debef58114a60296c26636e9093ca4e67707a886255046b3cdff77445a427903f10155c0bcdb25b7838bc687084086110260d26cd4448ef048f78d9a593822c836d360649ac9380383d13d47e974be4bd0c3e203bb35882a71b537e3dd768a9094bbbfd51047f5fc4d25357d7118b70000227dac3bf04cfe34eaa91036dc2503a66cdd3b6cb4810c2dea3049714be85be6a229d53189d120c6be1ae708a2a5abcd525ee9365024b93c1ec870932c74bb203756bcb3f97fb87a293e2b45f4eff636cd6983993e713f44f83fd92ed0f94ab496d43675817c30346c4864dd48e82bb830f07bf62e3908b23a6661ea16c607b11cfe2220d77a06cea5b0ed60ad92c64f53aa22f154574f54924332d3e8f81cba22e3963a332b8b3c1e3c29e962174b09ff84bb38113b3653d688d7d0abb8b27dcfeea13490b57b931a54c7184cfd4641afaf724ba10474b57cea0b17b900278cb155ac7753436dfa00d6a0883c27d8cb97112bc3aebd947f4eeb0ae63277bca949bfcb8c1ec2bd23b662f74470257e247e1495b393d7cc09f481788108faaa3475d8d03c7d5ac6b56ef107cfe46a70a7bca02afc82a279700e226e709be8b8102adddf973c0798b8198938d9894cf3b606119267b6851e072221b7c1431a8e3539a5592b9dce2fdb375a91bbacb27079f8965224372e8ebf163f39dd8e8dc0c583dde78352dcfd7ca07abe30387719ab29b4d58ff31370730605e5c7a2fc947ef24305f47e690384689d0dba2cec4b6a315883b39187ddc95624ce10fff4c3972e9113d95c6485aba201181c1812a64dfb8f400f2326960bb71163f62c6b373775cbda992d72bf7d1cfca9964990c6c4e3b2fc985fc7db48c01a97bdec4521de9821864df886426e135315d67218d2a341a6101e09f59c32d303c0b256b1502a4088d33fdfca0317416e4325b9c84b004daab90abd68a81ee750d276d72f4df69cbc7be09f601c3085f0c3286629c1f6a924956b2e4e6c9e156dd4d2838a5c54e984286e73cfb3f5296601c7e1b003c0048ebf14ab497ccc6fd4a5a4948b6c214d502319654ec3e8c32586372ba8ba8e4cb12b19a44ef65feb31627e4375acb8f2eb09b6d5a70a08eedfd48133a88401e2b1a260c2591715a60a80fda92c32ea852828afc94c83bd7978739d6a988b45ca66ffc8680e9747969c06a842a3dac224f07a0d739a08518808136ed50115398ade45b63a7958b5e691d58a1d7270fae3f60c6d5018f8f24ee4760cf63a754531826cde92b83a3b9775b88f2841e669a196cb9e79541ade748700204400cd60e81c6c82d14fd0c2fa41d4cc8e81996b712411931ceea6b2962e225272e325b148b050760edee1bbe025e1c8f80fdd33690e63264e28e364607be43f870342a799be1781e6b4735d959537497ae6807a324af5e6b737ea85584a95dec7a0c99464e5b857821d9e6a9f88948a89fed1ede401deb88706d1b09c8b93577c4043531003d20f4eb6e88129303776f3af661ac41031555eb5c63aab1865a7ed059d272e7cac48c7010ed4336143cc9cec0540296abb9734d58ea6e703a363338bddaf53833526fbc72ff80f02a126c83035e4824c46a6319e745b54f757ddf9829814d785ee422c5bb7923522e563820cf1bde95c03d5584537a2b8d4c71e4bba3467ef69fe7539d28530da658c0d0cdeea95122bcdb0f245330c9e938de44346109b270aa7a8ca83ea4e7decefcf0c5710c965637c2489182a69a26762c7dc0c704f2b5e54830f59818d1fe2394ca24dede5943ab7eba2ecbbf6cfd1483a86cfe2cbddecfa001c019b2d7d165c655b21eef7c25b732ab359db33ea200232bf5e7f7256fd6210c40e94a09743c9f199959b52323aea1830fcdad2a78b6f87c344887a599b8c3e32924c4dc1b819271d110e2d8f9f0945e1858186b6648cf8ec80216696e760735427ad4734f35d9d7f15c9eee5ccbf1754a96fabf744fe7eb694f63b11c611e006423914306e563682b82b56a7afd0fbbb6f6c3190b4d57ed6faa5ad348bc69214fbc4fbbe05abc9133ea6865a88db0f33b4be9acec8df92b8ca297a6a053a75f34798bd011a2387a3090b17452492ce74a93d4e07c85b2baadd7fcc36bca4807875c21f2fedea41eaf4d644f786d32d64b9b713fd9bb92f18c4d425dccedbfe53b7e1a44fbfe7483204e55a4fe2313c80a7fb2c6136571f5cfee9d2c62e9a930063faa9614c3076c09bf4baf3ee4b76e88b42b778dc66160cb336425a2e0002ff02285c1e1e2ca6df183875b15e3633c6c5130c1d8ce27fd83628a6cc979d05536bff9e5f65b9e9308f2cbb2247f8ab701d98c581546de848c2addcb938a8c7b1cd4a74f296c6c7db9963a207f45c779c045006273e68398c43a9fd8be0c38c62f2e0cea5a82c29258cb86841890120d98be9e550df257f7ac00e72fa0a41847df864969bbc22d58665164ea1a7016dedb6870bf0c3686db1c85521772a6850d5f6b45bcb714f1de9eb5a97cd6775a284a184170940f79fddde45b1d143b0d7d5a01cd507d0e10fa953ba6fa2df01ae081f9b0572b49b5a68aba259be8168bc48dd9c52b81a35d35352e28acab988a157ad545bbe5aedba101b33c91bdaa73807adc82bed6a7afec9fe1088b5e34f57468e4e855387a806f1e0cf65194e436a7982e52836d4b8d09ab9370021585aa22e7588e4185fd000e36533078020a21d63e5fc0c2d446be9bbe412c9fd4c35601ce0e041df5950b483c62cd9c84814024773c21d9f87746220afb5959616ccbb94b006129071aa4e2c2a4a70990ec87507aeafbabdd9e87fc01718bc052e9547ac7972ecb974a41b7add5fafe97e64211d76d484f1cc13900d5fe987f286e022ae6df472318678eeb0fd99645707f3b7cd622dbcb2106dd37120852f7bc9beeb839b79155d738d4a81c619728acf7a37ab338e0662161ac2e953d0a00d3b051117fc808b78cc0c60420c03781cad0c1c7758194ae2a66ecec4924b321ba9c0177e3a19119a3c9e7d77e53b1915d7e80e3a9e1fa3e4d48ddfa558e937152adb159cec6e22dff7febf18ae407018d828e53512004f1bbf2912352b6a66f87f12e8e83e54104def4b7e0b5a8503096e8cc8a4c58aa0498c21b6c835269b3f5be91a2ae9f7511ced1e873fa54b758940850c427bd0b77d038130db46b63baf7dbf55be8f625470d70528e87e91934f3eae895be60503a1357a8989f0236d1c7823a9189350747320b2c6a3cc1c5f7008c2e1bb3fcbf220768475dabed706f7ab70f3df738d41945b160423aa7a581effbe6000b7820b5c3e84e441711dcc2f98a96061eac7c302840bff6035e5c6a632c8f73ab2d47b51e2882aa372742ff82d0edd279f6fb84a82b0039101173a23b2c3b51dcbec3690f97dbd52e4068d2aad7efbf0c392e76d24aa9b9e248649d1b1fd789176e99ef69676ebba8ebacb5c88cd05114f4128878c5ca51fa703c1836d50ef2b7050d707de74a1a74b19df75809a29a49037f66538493fc4ff86a8e31c37b8c120a5e489facf8c69b2e5ae4a748d46807ee14b255056930397a9951ab3892e2a47076e925a2a3201e1a0acece874e3145b3561312d2fec9c47f70933e51d339c53f63c21454cc20912714298b2b1b592c2c5e86189777a7b6d2484038d448dbcdc2d47c37445599506dd175a052b5440605b0599c665f8b44af00d8c9e084f10825bb89c67addcc2ba373a357d4727852dda5a0d6c520b5d40bdd4c8352aa075542b83ab39b9a82a5f3a2a8a2ea28f6fe04de0108f7c129198325ce3725a84248cb575108060a1a2e289f32a10aebce8fc6a9f24d8de6723bb124100938343ee3bc0aa9155db01ec9222a9b30baa7c774733244f907015bbbb43e033b799ae65add16aca8c0d0a5bd7d4d3c54b1b7375010ba261570f048194ea78664be1f33eb5ed8c0a238e56307c79ae61235e82ee2f8bdb41302e17ce4df8f89de2ed7444dee7c2f355569223c085524e284c0b572c38ad2cb49a4daf557fa87433ca20f4e2f5bba8b285d716add1c7f8c0524881ad887a7584758aa18e1187d908cee67321e577a4bc174d1d51b6e5febcffe6ee5737043f647e4c90e590f9eabde12cf95d5fb6210911fdb600f84cf998b7ab3bb172c46cf9543900cd23fea6d8387f4ee29fe6ea85be12ccf1531fd56ff666054d233721e794c62a912acdaeaf4be67ba73d119554451370806dfabc49fa67f96f592c831f119678f45c346a882f079fe52fa0fc7208878d712fa2cd4e8ae5c48f6a5995f8724042f556215eee892266f7c31b70b59252c00774a946bb001893862f3e20f7080e2484fff7e65e7789ad523400c3561d22655a5d3d487c06db2fe481d489c5edf17151c6723ea458affaf71aaaa2501c0e28ffa5e05d133f095cb0f7126d7c3e7deaa1567cc9e9854114f73e42cdf77264db0a111fa0234930485ca503afd004794374a382a7ce9d44e4f23fc199660a2849234f85d373bdf96563b7bf6688d1f011195633a593e6f8c7106451ffb3832bafe099df7b8832b88766879411470ec2d35ea09eb11fbc89f9d01dbdffe418a482198d44aea23afff25b8568a1cfdd90eb41bee8d537b1f9499c35ae6a86cbc96a6b55adfa39724271d69c2074576bbf36b8dd2cfbe5173387354f9a5253f676a90716e10e6f052001f439d6729406addddc3ea55d3e2180cda00f814491a505125df0f928a3439ed9065db1aa21032734dfbae0eb412fd617707a11718e8e3d0ee8504ed2ef5abca468847be3eb41ce9b2af4140bedde955a7a73a50163d53b7c76be428f48154d6c894fe47cc318d299698629fd8a2c4dfe9d5943d07b5f8465640647efe139b98b189395631596c4be1dc7aded3026c1a6758f8af41e8884aeb77bd8538b5cfa19a1a9a4a8edd4c81b9fca34c173952bfd2de1b06af2743b13b917b71662778e7467512f5e18f4ea49e78cd09dabb2739a908a88f8229887d394c7b4116093994f75d52e580ca2729203c375d26968d69286d3bc4c063cb7db7dc76b7bbdc999b47faeede3d747e5a37901720ec500a054fd9259f3552b1784682cf4a0c0ff090e1922dd0cb02a297cad1b6e5596e79e3d77ec9491a037fc2a1084944b036a68bd491c8a9c768b4e35431fed99705a01efe327e6c3bdfbb7368484a2ea09ce48bbb389d7a42d8974a8010c2c066079552a5dc52c591715d6e0d0981840ac4519340dc195ce8040f5a646f80dba8a8363865b7fa8beb076314f6d42366d9ec50ad0d391e5c892da293b55b72ed984d823bb95fe9d917ba14229c8f17edd0c3b953bcf33320ce0809af89d4bba59b00225046717cca07e7c8406b34de347038baba57ee00b38fd53d075af5a5ba42ca627694c7d82c0b34948e484564c2878928b7283cf52cc279a61713f508bb752167c3c838a32530484a81d43a8615a938cd499af75253011377d0774931d8de1442e50a68956bc7e90bcd0773e5f31245c9fab017466d5b124fba8df9153485062781edf213e025d05b31ec8977537d8c8bf7fc0ae9e9439f0e74d3899e7440736c095c63d9160351c5d5c1ac605c4b6fbc2392a7db48596f12b2abb7ac5b784a1a37f8d0229191764440e866e6d336a841808634e01fa969e65535cd0be3f758804181fd000e3651b0780382c76a66147a08340096838393f4bc346edd61fcfc6965872b625c917b2cc3a4c07e83871b28d83c31855df31edccc57281fe8b9a642209338d625f0f0f94fd02cf60fcc9e04ce3cd403798d0696d3c933aadc208b624abaf98626a131b9bccc74b6afa656ce6b6de690020a60d78bef0ed71ccfbaa9933a3d1b30a67f2896298307caa99d7da1e2716b8e883073c6a5a59311fe049118ebbb7281b370f4ebdb4c4fdbbdc71ed57ead917d99821228875aeb650521788510f5a520efd0b2e73b706dfa9385d10fe9135f43708d778ede48633bf280e07c4c3a47465d49e47b0e6a3d0a31e83adadd207d0ce5226a9cc8058668a62418dd52bea1e997a06636d3db1ab77d754f4b8ce70efa5ab7f35b7bf441d36c56ba81d89bc0f037440ae64e2bd2bb8ab9b00778640486d4e509256877eb4993b36a21cc3604ad4c28e6e15317d5ab7336a86b9eea53d2dd3c3fb63c618679090e211d5ccc17488a751856857a828f5bb90b7bf3fe06ecfedeaf3a8a5894c583f4ec9cbbe10e6a0295d93caca1248e190febc52fa4afab0c58e0c57f517170553fbab52140314f8d7283bddebbd4a9e71265e8cfdfd25810fccd60c9fb7bdf1c36e08619e8c4f19b9f5557035951af4aab31765aff5557d873dda996a8a7e246d1ba9a06204f499b6faca9588c7a7a38904f220b69b9d1e3ffa7a11ac3cb32a5d8be64839008612686e5eef8fee1a2b074c20ccf7a158598fac06a3d360f9fbb21c9263e567726d7a06f8d5f421621baac04aed304449e05ea3512a5041a7c8e17984ba288d39d2f905fdba8d3845e5180a318411ca957cb45cac3b5b537559b7d512d98dbaeda7843529516147d10244cab4e383d575ec0464a365d4ba6db67c262919a224e9f79f69ca9984e2344b78d882ca27fd9dc2f6b4f6c65513caa707773d0ce4bcc3f7643e86cab5f093f849778aece13d5c224d5db2bdad12bd66be76f2a75da3d25b18815cf602a194640c81c9ab98b84f7ea5aabf259e57d9573d5f1261108b6ccbb73cda6dbe51f68dc84a626d57b9cea6fe7c19ae046c18d1a947d400bff652a97802096b1b2af30fe95acbbc369ed1ba1d90f5c1f8c8fb81f5a1b2e70fd481acebc9f1f997c08e8f6ca73d833e7fe7aeffc045fa8bfa22577917b7182ac314d823ea86e82ad5cf3b775faec84e05e238d1a73b0f433f1aae666790ad18e3902808eec6f0f758f57a4580f1e66bc8e1aad678b80645da3891968d49cf542a8fc0842ceaa5c842b8debf598112572dff66f12c9923a8ed00cdece525f08e8658372b457852d96a38d9454817312b3be3d14f8617ff7c89336de1a4861a5d06b68751f43ac01471453c9c243816284993e7364f1d311508182c0a2c2d57d231599885907f6f5ccc6cc03967c60328290fb2446487b2df6d9b2c0be40d57ecb3b0c38f54cd3097c60b69edbc92127178f764fe153faa606fc298f23f3e55440f140af84ea92b3aeddcd1302dee3e43323929b124861be0239b858dc90422e5153b5d85f0a14458004dbc8f42c09d5bd3e986e88eea016ab5a589d7d06631201fe20eba8736c9415695938205fe395da5d7d37920d61a19874e8c3b825eb730af4eccba04fdd3f4965c1eeba3730ae05dd0688a3a4d104aa99a6cb6117d1609c8b90f50e0c879202e830257300c8c17aa6697977f2ea8421a3f864ba27c94bb3595c88e51ad34a5d051ff808c6ee31f8fa6b957d499cc91425196447c072e8cea0a8edd30ef23dd56125d35301adddc3c4526126217c1fa4ce2c7a2d8e2dd34fcd317010a468dcc8ce2ccd7febfeaff16f6711aa1cdeaeeaa06fe06f82752814351fe211a7c26cbd9dcbf49078dd9f7390b93775d99c4cd894432f6fd94a9bf460b525b19871faf7f8d77b0a19168e0655f6bc0aff866914ccf0e1a86c9453d3b1585859c3e637bb20c5c4111a07a7b8ca9438d5d70c0d3f07d99898d8a9c88830f64142e706286f2fe46eb77f96c2141e86dd8b70add35ff6560b5a4ff00726e4f03be38d378d0478fa749d28cd59ac629ab9136cf98a9b8c90687b68edbecf985e3c8e19a6d0f414522767cceb05e43d5f71fb9d6a0af020cf9b94e112bf7c0b9f442b526d4c5fa22d4824b09317dbd30466cee570fc169b23c0f1afd081e209fb5203a980ee887b19263b4e9a87267526b0be574570bf13c67ad40c8c29554e98973863a8c2652e673cc51c9081ec789ab1fee1c6a1ac5305cd2b4fc73ee514f633565cf2346903333a533756cfceb46c5e1c6e822229554b3419547086eb345ae8407fab5920ef659a9ebdd53880ab17722f47d6b80763963cf8afed68ea891fe05ed2ebca480ef83115db4ad78b8e3d7cba0043c6426f248d8f3b60167800bc163250f290bbca1f5d3e00fec10adf4c96326366b65c960602184af7a97bf0a030b9c40687719fb267c7b8a06459e8c590240a668d7bc8e45c96649b7a1b034ebfef87fa6ab3e1cb8a4d844c5cfebf7ddb8a9afa6a774bf7caaa865bcaaf5d65944a96b40e120fcfac922d0976db39f226386029a90d6d73006e82dbda615d6e690810a5d065769aaee760790b6a06d9ea157f1bd6b03fd5a64f5892e8c2a39696605ffa1c97d4341387844e1070af49d17b485b0299091766b88bf50247e7d6938206dd8af13adc4a705d89b1e3b6ea811f9485fb772887b23a41d0f4a381384f541e136e3d7956dafea3bced0e59d577dd79df13e076a017da7370a2e76c96964707deb2303d687a251fbbe5d93baa2683b7f182b9354730b81dd7ed810a685e6da4a6b38c4856a04f5d236504002a92b3b955bfd717fd5d9a9ba3136e7bf7f13c83afcc86abf2df63db2e67bbb28c538ac8314ee3e6d5893c2cd464199e4d36f711c281083cecd2dc3b7570de72e1589112cb0f658b02b1e7b845d37918da09e67420b572dc547e1748ce0c0fd6c15e368af0605b089f560b67073fa0463647ab94ce5884436b5f068efa4e13a98721476a66208ad96047266e80aa238a1cb2b515f0a2fb86819b5914e7cbfc1ae5a045823fb3798e268dd9514d7fa0d1ec901ef70be7124008d5fe369091bbe8c6cd9c3b550dbb53915a0c4b01d07b9025282a29a2f537ae1be0822130ef8c122bfeac956534cdc918afcfeb9b06bc19a08dcc96853dd20db3d1fb6bb2bec143b2e743a851ec03501deb979add33ae644f08029e8a5c43c8eac8f8a1e1bd5858dfa928d163924040944a051483aafbee95895616687c6948c92b48d3832c997a7ad0efd0240a163cab29ea68d56e797b80319d3ce5a9a454f7383ef5fe9c2fd0d8829cb2b29c84896dadb3babd7a480037ef5229811d255fbb30fbcca3369ed3c9d3ba861466e007faf95b68a65d5863066114c909dbce3314cb97503dc4f77de5d4a60f9c1ebe91e6825659122d2269b6ba61104c823c651d5dc88f395ce486642b67059b88a6e924d8af466a4e94af8d9d9a387bb84c4efd5fa226a99870eac041411265c1a8018957fd5532c9671523b5fdee3b88c08adefb346361c05f775a778ea25edb39530f983520dbf0c6261010ce35773939bdbfb95a1ffd99ecd24f7a24484037d539e63ce51e851d293ab259626501443826ab20d8d5c765907fd6c5fe161bb9d80fb0450c6c1acd4f4066c104e589096aec9da6fadcf337a95a4336342ae0bfa9eef61a3c183ddaebc61c52293f99b5e5cc0fdba306e6c895f23b5ec3f2bd87c4add6c8d1474b3903750180bbc8bc844c47e39d2af141c11c3b443c9a8027a0c91710c71189ce2f5bbc86387e2e6959669e8bdb1b1838f71a6cbe5216b1c6b2935253951e432717fcda2a35474715a8045a8fda969994f9e0f2516ded0becae8b957e6d49f62ec5977be0321c59edc37b4c8f2d36280ae973c3af61f508946d7c781acd6449a621f9fe35491b4b5f47c970f64882de223e3d0350f5752882c3ba66564d0dd40f64787f3d6f622a16c9643228c7c494abf95e81e46ef6709c992ad0a34d87bc8207c7cafb765be2cd734b828db887e08fbc5f9ce0381c4f04477dc79f9d65b8d73b5d8dd40a6e5d0658b3293a5620a78dc8cf07530caf497835994a8d63907f54637902430cd76c1e30c189f25810ad158a080396b923570344deaa4d2e934ae15294e7af11fe3902a36c6efc39a522d9cfb0883f04a0e703e0ec869496c021f94c21bebdff15ca1a4c0959a5d4bd81830096def9ac9948b5b8195abaf1fe53691156da7611eeee1602601e7394de0645855ca16f469481fdc2ecf9e349004895a6b2ee3cd2ab6d6110dd929a14a92d678f86a39ae4d1dc5c2dc4ab495c0136d5932dfd836b52274ca011c9071a38f4a029ca31b7c88399203bb1fd2140847d4ea27a6fe9ca5a81ba58c10765d78da8926386257a81a0060b94e4660f01d2ee8ef0abc0a7c9c254f71bf20fef8976afed0002e7361c6628dba3c9e98d88a419da8f061f473e37533a8fe296f5b17a91968133f932592c2108821d41303361b8279a36f0ac712713c5fc2fbd15518ee000f89be77a32e6ea7cb59dd1f0eae02b7b06e92b3252b5e22a2b5e6d05abac74c53bdb2475038f26ea39f1e54c8bc2c842e013d8d541bd24e86bc61499483d9d1426723b76f4ce8313466f200b646f069d1c46dbe54123358f95e22d1e7e993cf10521b3c06479236570088a90f42a8682838c7c3dc320aaed2710df5d6386eb58ddeec26dad308bdb815bca1aa0ea812a9eb5c31029bbb4a962a693c940c1284f921580c444318a322ba5cf4357dd9a0310b0e79fe889a659d7bba8c34de3f8f7333cff25c3591dfbfdb3206878943588dbcb8ff8608dba02f6534a7b98a772555dce46992fffca5359183c0f9c51bda0248bc38f609d77f97787cd6d541a2f1f558046d0896d42039a4e7a208e2b178147b2b5b6439b0a30fdc24f017921d0e1c55a08dc240a5e34d9647489046911764d08d1f4c4078220d21b98c1f7e06ac0ecc350e3686f1d2af3d9a7fc0ea7e309dd1811af2c2e0e6be840700f292831775019905a04f20ca8f1f8eb15689090eee39201e17b8bc803751eba6ef576c08959c019a80b1a2486abb4a88db960ff0e0a18a8181fe0a10615964720f85cc1e001445ca3ed283fd291c438507c09563258e62017f90b99e6854d30d5a6680115664d41b889c48f018e575375abacae7293800cb53cec3b6cc5cf0cbe16fea286804a68714f65873c9f5bea01499006cf08ce9c4c0d25453d7529771b98864eda238b2b5dcc784493164880b0fd013ab2cd016c0f9cbe656c60390095b96848f204100d417cc9bdaf2f1c9f606b257ca1d22a1ade7788791d216aa6b163f92c6662c15680eb0d6078ae397b668c0744ef2a737c12e9aa3ee38b0276be0e530f211961948c665a1f72d059193bd55ca728e23a938d084a42902e3d710c3da2a103b720a4dc14b0572da63e52c7d6f9b7b41827f9975735f32be033cf3735f7f8413aa56a46b4ab1210b6b2ab9611cdd77be6796aa41e8e794aa07433ad247c041fdf3e5440640ce8c8c42467ad69a69054a7a1426382ab7122645cc1eceb250c24608dfec21b0c4adfa1f9888c376d4c677e3dabbc96545e9eb49b597b605d894e6b4f4ba48cacb10ea924a8ab3b0a324c8a86e7a880898a86149f2171d2d45f14635d7d8d7ecbd028508e4463d7a4345f2b211d00b45e2be01b6629d95c194acc1a286c3b3590138d28431badb8e107575ff8b18ce16138d77a02c2108363437a3675954d3c1fdf6214bf997985d1da7e3b5e4e9dab50a93a405027449f4b929fac955a8b258534f9908cb00f2bf82efdd90927a278f686364a97239810e09a0a9a9c6f30e0784aa770ff24c1dc3a1872437f0763cb138a713cb869aa44133ee359ba62bb1c11937f2797e2db287aeb62728d3496c4a04068342342e96393f41e98c6e6107ff2a16e5f8bbadd71e93b0b5bb0d854f908f618903d2f495ff0721227744bf30af5a2bd3674d03068f202cb1828004e962604e97ffd5afa06077aaa1d6b9389c58e1d87339ca18121ece6be748b3d5cb27610cc5ccc734c72a6bd2fc2fb0369a5991be2329361472887aad5453107c41bc4859148d106ac3d2a331ca7c652035e5508830bc6b9a0b18ac66915dd2a5c28e66144b901cbbe854c3c5829047ed30de85d2653727f4d85b9ec800b802bcb3689388b126d2a3593c94842e00b1ab4e5e307aba0675fb162892164aa87d9043305b7ed60288c99436bc2aedfb768a93c6cf98813dda830126d82dc87c01076d0f6672803b2fc385a5700cadb17f2ece9b7752537d57ee0b806ac432cb69ddc290a0ba79072db4b3d1ea2248239bb400c2ce77c0e2f197017a879a55e6e76f1cb6b8717fce17c3704731085313d330187fc43a22cb6a8944b0245bb00d728a011679a0e521273b3ecda8c3b7c088c146104062a056401483bd52365f9f2e2c59806b5d7d697ecf2acae51c0e041a8264d734b5cc2ba9713d678531cdb936f03e7a331e9ffb5a0d27616327cdf6f87f54a809f2cd2b3174dffdefc600800c6d87b4635c5fd49a8612c4bda99beeb6d98ec3feda72f48b99f408556f5ed41851ff22d7d0d833d54756c4a01f229deb6ebf89448b894f2be8cc757d458660129349e1955b3951939bcd8afbd52b338304e78183eaea2d2108c9a5e74ea5d1648733ae50af76b9e9cc4b5eac4b5bf42d593ad8c75f1a547f4f8a751f5e7241c5044a422b2e474fb5c928e78db017b9ab5bc95c1e284ce3705cd342c822f1fe144c8dc7ed172ce4927d94226dd6f564f7e387e5581748580ea5d850aca48b580c6141afd6262f80fe619f9ebfcc6092392e36493f2e297013a8f7893d081393ac28b9b9a016bbe3ffb885e5bb369667bbc5eb9ed48e5e4a1094b1c38c20018309dbf866e62de2bbe8001abe4203ebc403bd0ff0fad4a3bd39c2122db80195549cbb5289d703dfdee0588090a623fd4cdc1c86b142f9e355203c3ffaf318b7d98992e21129d278171adde4e23d8a72d6d5e541c46c11c8f90b5681d980308567cbcf22c67867991cb2fd99810c2aade3642296f34c29d21a01c7ece3dadf9ae8802800e287e2129170e4808ad36e3bafc2c2ad5dc051be92f122ff56234d3a239385670bdfb094a439aaeb8a0ea68e054a88f1125141d4f1ea1ced33b032cff7b46603acae8189ca7ab3eb2073663cef6d812b77bd7656eb85975cf74a033870608294d3649e022f45bdf8bc044c145b6cfae7567e5bbac91182aa022cb4434df5f7dd47bada8bf25db0f3d1727b3637648ee5d34f783de42df42881613869cd5660ccafc589273c7d6a21953e3f40f712521ea0289dcaef37de9ed19630855d710761318978a669ba49519a8bf4b8fcf20ef2766a0e116c0a500e766c5fbf37c0958333ba7d2f6eff7dcfee959fa724aa411ebb6b3b6c31292863f7f996bf7729f73bebd13f644bcbcd61bbc125a9323f23ed72e8064a333850d893e35dfbf5ee5bd609f65316766d98413e91b01cbc49c263a9874cc5123076719d80fdc436770f37d7a9b813f01a026f6aa0f302216ff329835004481f75aa4bb19a62511d325429c17b663b623bb640cf9c114049079682667d4aeb72322c80a5d4d449542cda3ac7c41b5d52191670cb62077f2aac9ab817cb50b9d97dfc67df7bae79e9bdc7633227b85e3fde18b4089a7b44f0921461192bb7290e9560a44c28d167555717281f477adf6c0b830148f31b35d3cc4cb24414f829fcf924582b265136cdc3c674330b022b3419229ab0f8074e3be364a27890b8735b5f82beb5e60a03fc0f4a1e689f5aaff097e75a85fe59c193512f8a14c044b5500fc57095368cb043e887b2221e6e5c9b28c2bfd59ae2cda8b8f5c35f221ba6858f7993f5d0d9f61e301fb99be9e6b50b1ce923ce44a344c0cf84a0c6662151b635a89c23128d8859fae941d17da0a9d38d05469a1918e77be7972879d1893a85a07ccaf12494f33a489120cd2d431a359c77b9e8fce591f1f896f5712ba750a430f44d620975322323aab66a81be6a493b2a78bf87422cce0fffddc660099c9e555e9804f8962d536be2448cde89e2b234bf5ceb4b486cf36a4db76af1a7c002eb16d5241ff0049982d611652ffee81a175d666731bab7812bfe4535630886916f0800558b230982a222984b5171001db55de3d8c1a874155b69e001fa71ffb0798b29814f2179afd4fe9051b6b155281f5e69aa7c8bc6466f0962f2bc258c2d5c1b19bae840a398f0216416798d4520be5f99d73f056e7a7aa83bc05151cc6d480e299adf02617e857b43b520e87a48848ade328388939c675262f98e0483d0bb9491cdec26412929986148193d3812efa6994e231c53828e1bedbfe317c0f0efd48b45639bc4243d4000268ff2938aefbbc2dd8a958a3899c40562dd0688bef6f47ae5008f8446082fe1f07bd60fefe5a70e33e0aecfd02bf78d662f0b0414ba15a8366098464961605add6567fa93a8380557f5696227182147d27298619b1d94562ad08c1d3da9bc0589901862e7820035f639553151b59417ed810e584e482623a99964e364d60e05282f42ab363f75509700429dc3b13b1c53284114f70669728221ae0b2673d1e3ba4cee475e998cee75f55487135e58214531f272ec50a420f9da193360c18378a3417a50090acc32e7208e4cc0b2c70e887a02e9cab13c7ec28aa292a11e8471833a91620e0f87c4f26b1ba527720a0eef5315d64c704f849a2f9ab0bb66f0d08557bd769882aa0283b1d9fdc3c00e349301fd1394b35fb80378ab524a084da7d963da9db6d45d8f9c0541dc178eb0880c9d96f8127b11a9cd4ff02a29163383f34db10dabf58b37e609cf95b7e328efba5dfa2d03096e9e51720a74762f5abad6695d5ac8895f00176c72102143cf84e651d79dd64b88974b5318a2db6d8c7149bc5e6c3e9cbd773e2385ad611003f172712b2da44d502218b6a61de7181b957c6e9b9d58fa56c8390ad30ae8b4e3e28dcff7290fa03b762d08e73395ea76e5d5ad4586df360f798bdf4089ef3a7b78c1229318873081ce06966cd0b2f8379dcbda399bf573c8077a07e00b9b58b76af982e8b0096a1cedf7a1dc2eb4ce6cd08da312a041548422899e44bb738a006cfa452180534ef75e5b2b132ac91deeea53b2cd568da01ff69136f79852baebc85cdb5f7891cbcdbfdfe9e831279ace5ab071ebcbfa7b1d5d962bb49d7847e56631d3462d54e361e8254d35c013646979638650a7569ba9604976ce98d09b38385be2db08e00a797a959e53b0c8de9365ab34ad7d4d4db799eadae830a3ede32221a1e32f87571ba3a020756aba3442c92e314810ecdfb27a1da4ab177bf53bb4dbb5b5720ee424270f368f8ecc94daa5cbdf725b1b9199125124d3ae4fe182985d1441a5bb15b2067a6b6790c8519d4b0973cf6c398483dc921fa09693b22c3a4221c3d0aa256a910ee478a3fb8c866115dd3ffa4a90be984b65d4f8c58422f9cc2f75fec4bbcc6dd56ce80ee27b5f81ac8e3cc9f19f15f65863579e25a64298015b24b5f2d7f74e9f955f7f1d07f1c6a7f5210d0294adab3eda5cb67294ed4b63fce44cc1dfd57f09744ad4523ec843eaa017a8b4d4a021c0a0e688ca0e42cf46bed0f06af6cafc1f7e590c95e099c24bb1e89036d38e41a6ab756f2718af2b7a3c88066f4c9bcc11595405d39435c7971155c95d43affc49486559cc73e30bf49766d8828ad27ee70e5d150bc1e5c33c18be94f3be5859ed8d9fc167069f6a0a49512bd9af33ec28e0a37bf515b14426ad57e643284691d925c079b741c188483091896178cdf5590e34bd44a70419d95d3346058089cc2e2f41e8ea838855d7a16145a70f2e6f8600375d7eeb66f636a8e7ba4ba06cdca2d18ba0e04a8d77479b012189243fc76a1b5db55b5bb8873ffe6b4c5a826e0ded0262de2c01f5e2fdfbf6fe9e3bd10923b697c57e16464062c4c3d5bc322b994be09f82252ad4f2ecef844f8cdd63c39fb272d4098b79b22fc01012fde7c3e7a2f73d1002509070a0dfb1fd1506fa4618ebae4fc6fd7d05a35b816a301cb2ba6677e7749e842eff28777c3884c0566eb47d33a2c6c4356196896954af5e84dcf049bf6d278586c3f9b85fac039f0590b084118e47b2716820729b402fb9f726f8d86343f91854fbcbf627fc3dd77a82412aa2f18b7a13a798430cb502234cfe5b6f2130c3bbc9d577f765b997a0e8fa86646101303a49fd10936b700986630a3ff162e73ba6d4523e1c2be1dd0e1b99b7d5058fa01f7b78d87598c47a0f5eec0c9cf13fbba95538efa4894eefaf6ba61a662b9642b4129a5805dbe51287269100caeb87b69f1c1386bb141c690e1a990815dcc54ffdb3d3c2fc5f9aebdc8f3cd202fd2bcadfb7d26e99fac8bbbdc8d580dab67761ed626366295512fe3c8a3f7b050d6c165818edc0e469fbc99370921b8144d04d5d22801485468309fa22c32be8fec62f8be3208503fef9e37bbd61a64b8eed2ad3e999c4b887783711925010342bc45d42f53662c72404d20349a945f4a646159a6ff4ffc578e3340287932418676a6ef35c091afa446f120a21d3bf9dd1a5cfe13644f06751306cd26a08a003bb59509050192080dfab035b8dac25d1eac689a99015f34e97a7e4240415c00747428607256a93c96da15ad766cd340f07870555cec9a8968df16026f1d44214fabe8fc12fb7d590802ca1cc60268b141f7b6671ad30956ca730da9a5ad50941b818a44b0dd9595186db8b513d54fecb508a68ba24dd2598726fcd8c061ce796cba2c6e6692418db98627d2b1bfbada72948e7fa79e10141c75205c285db809436eca9e59d57c46c1e2af398f555ce200ea8e9147bdd01337e8316ee9016ee801eef50637ebc971479284072099f61f598bb29355da075728049b3b46a5d08dda22475f78db759e9cc8c76fced7a03b06921020d3bb8f8258473ffa78146a0e7508281cc282a9aac64981a5f3d8129f75af5fb80364a2592b1dcd595d60dacc8742003807a05cb21b72d1e2189d6c28b1da4c5e993f0c7c9a6d8342daafa0719e6b11eee98c60a9ae33ca6816b00cb768e181be59cae11042c649a8d056d080dec50932284206d39a6873bae0510761243e25e63338a61589898f2b01341099c162a2bda31cc51c4abac376cd70b48fff0bfa67e35c4eb2ff5460124bba6e01d3b4372775346d6fc476418315d60c7c8beeb5b746cb13416eae4ee5a0e2fb826e9a92de05d38e92cf622085172d7afa9f0db3cd5fd9396d3d2e776b77e35219abad11e7a47eae0782828ac70740247a7a7c5c0e8e4b4ce2bce9020af96e5c0ef1a12cf81caa7a70668b2aa79739f34c7ea0ce22fa0e689067e7d4e1e2394ec1573bdac12cd4808e086c41e1f83bf8fc056f6dcf6396adea9cc6ee2e9daed981f84161cfb7704d350ff337abbd66d673ede3c62fed1b157221326cf96f4e6b4ef2aac7f4ff6b79a80b25b2415536dad760d1ac1bd0e62c7e54510401c0bed2049418ac4a9193758c0ce11fe686a2071d27612ab426d391ace54fda12efdd1b67736224f0764d8162dabf93d75b3702754805d02746d18bbc1b9e995ea70e9c036b8fd6d872578e8627abfc67260a4d47a22847678f8bca5e01c6709dd967627950a439e4659004053e6ad51d844ef4eb955678f21821e8ab7ebb1cf2ef4995858337927b88e24a9b94d659215a4eba8d34c451249579b640661973e4588ff678bcc6e4f5b62f36c02d187af8565659af65f9e9e6d432e1e6ea86ee8a3dfba8618f626228115458d344e6cfa46f1ce8afbd17c76a2e0bec7d395d2d5a3700febabb4d56f2e6d32a1fe4fa7f1977e69d299b392a9e7f183f83d4ce78d58b50dff73f6b6d5f5d7ca6d1b31405c38f859975208efbbe89724361184c4bbf0a1a602888f0e3a8c352a69442eaae527ce96b8aa914ba54e2bc524f82175ae04ce591f2c319caa7a96f8b2ec2293562a8f47108108a269c8409e74d26148c560469d9465c52523d63380d168a950c4387bbb1fa0ccaca3100b5b04f714d88616deb540c4657632d63cd6723478b251eed023c5ba9521fc0c47dfa57211c29b5fb7114fabbf283036a1a1add2cdaa9c255b5a5f1ba2666d1c7c60dc57af41aa4cd1605f075f53eda9b106620cef1ac61aadccc25ec9305d585ea2c7b03b1f9933788691693b3ff14e131406093e3d1ebd4d8e3cd619173e30452b321b0c71f798071b9070831e7c4e22750611867caa2d909c8db0b3d596d520d3f3f8e690eac58a088dbd7a4317810678d98d002dc3779c2323d1ebf0dbcda240551797761f5d34dcb53a64720e57f863d45994938683ec2736d8f1e11eaf85d107f67c75114fd3d6e1d3d424dd403d4e4c168b82640a9067c6177acdb5c9515b77610431163b54d639cc7d8df794b0fa79337d470034f9ee7c99b8514d5dab7b908c7334ff204eb11da4f0137456f4f9c9729418f9ef214a45dbf5da6687914a03c14f444fa4d83bbce99e4ee0464926cd8887e203fd0d2dadccf00bd97fafc275a952d35361475d3a5f106a8021a85b815a0a55315175f05d5c42ac0b85948242859cb768a3eb9c96389a8907e53860da55f4d714908b6123b38ee3916ca5e4e6861d64cfe10c6dd734604517020ded25489de1c1f262a5cc03176d21402ecb53c65b78a42c4e329e60e2891e2cc84e17f0ac8ef9bf0da18d462f9da2c622b000044e4bff9844a2ce9c947a4c33014780db6ce028e93881bb095bfd6f9c6961e5b56520f75155c0a801e307927fc415be47203dd21c86e349f1ac8bd243c7eda7f018da8928cf2dea55693892970358c04e0bbbac14b8181cd2bd34e211bb9d418c5d6fff7c1e464e29e2a4e12691d7c442a156cca2377ad0032525041fca103aaed629659205a55550719bb6a1411f68e25449a4fb88e05b9e02b04ea11470b31192020a280d82a1469eca0969110215f93f8d24082ed48e222cc83c496ee2c09aee3caafeb288ea2bd3a3aeea4685b146ddbbaf6f7f6df7b4b29a59432e8085e095d09da64ba48b7e77518d245da70f777fa4eaebc051313728672516b6d3269933669da79fa34caefb7b3315d320a8d461e1a8546a5364b70542853254fa94b0af599c8d92963610465e8a41e7bde9536b9e36e754f3e177649bb930fe9276b417561d79d2ced79b57eebaa5a9348260e6ad044672ca4683f7dae2f39335552391291a3182209d9d741cf4470ca9eb8c0a9ad59a8d6883dd1c0d9090b55639d2db66e7bdffd6ebec277bf9bad20f316af1cb1ad309704a19acfc58e75b916da15532528b1b10e915b91231b5b1b6c0f3fcb6057a78576f5186c1aa8841276edd319c1e96833d455c1daaeec1b6261d589e814b919d9d58fe47645b22b10362d77c006b99673b2ed9a9f0f15caeaa250ed0b22d22b8b427f8d02bbfe21c48c814acf4b80faf9b500ec663fb78f9acf6935e7bb0ebab5319fc619678cefbd18e79b2f39c3d8efc62ed7a4385bac02ecd46ffea91602e208fb8bd68ea163d0f1783189cabe6e7dc47e4b4f8da9b5a2cf37b63151d62f8a19fc489b708f267d42495d67c05217edfafba80b5856aff445fbf7782ca90b89c2b4d7dfdadc3a013b87575aaf08d4b952175067ade98b3e1f9fce35856e3d03a08f59bf36cfa0a45eafa54027d01867a1b4d96ffefe7e262de78c04bce50cecd5990705da387404171c61e38c2990cfd5814853686556b5a4dc3c9630f2bef7861fa6672822b1bf73fc408c43f52a0143a988c41f28d6195d7f60aea534987cefadf7561b02bf94947baf4f15d662f0ca44a4ea6ca933daa9d310ed50f25565f69aabd3d81a5a60fc4ccfb062200c4f7ba6b8ce159b18f76094b5dd346c4c6f9a9d868de9cfa418cf80ca6a7641a42977c42111d674062803ee68bc6cea2e7486466b85311832693016e150a52e22f991d847118770e8349c061a367983260d8e1b00d8d8a4d12134b4687638b2e63184207963cf9630cc2c3675189530f45ac1cfc4a6d5828f0e95273f55be525e92ce9cf5c53a7df9b495b1679d71a12fd67b542f674b8b4f1562759babded9adedc15d2921d66a435085ab0ad3b0a6f8a9aa332e199897aad5ca1129d016abe8d49eaceca4555facf695ebeb95fc4cbf1448ebf8b6a8bf5217f0730d56daaa336f2d0a75695dd3a98b85424969be2dae615c8072dcdfe76268d2eae720c22fdfeca1a7a48e2076761d042e6d0bb08d95a14c257ecb8ee3b74e97a45d7ba97de49ff652e42215c1919c5d0fff644f91575287f691e8494e94dae91eb58b77fc4ae9488eda06d04fd65b5aebcbca31f6c0fbabd5ac34d731b27988adf65a6b2d0eae3f2a1555acb5d68a84a903ef91381a0971afc86bc969e32e697897a2a82ccb2fbdda62a5972fa2b175f4a1f926a7b6ea0193df4ac5be2e8e9e268eea88bdf4fcd549d1929e74d12c49176b59e671f4f2a6e4641e451efa929fbe74d28baa8fa592973e3a8db52979c8dc4199d8c2f2fbe947a76459c7df417909857a6c61e2d78cc341eecd02a95bd411bddacc91d3ea0fb174d1692313c7eed10f9bba45a2491bfde42517fdf4a5929f4492491bb74872d14973741a8f71e39d6f76948ef768ee28f9583af6bcab570fd49992b963e4a38fcc1da5e73d66523932ab07ea8be8a20f5dfcab73ceb966c76ec9d1acf973a220bd92b3d129290405c71fbb3459d10c60f2144051347958327aca512a37099de461f8a18fbe0c55aa564ac8491e7ec8c5a7e16c71c4aac1c70e4944f8d822b388d70e4d16193a19bac80c4d9c4d7292f834d1b38b5a14473d5e95d441f23014b144b3061f3b64b242be43e4a287442eba6834f2d0cbd0c9a7894e47178d1e7ae93714864226890525c9e431ded0dc31bac8dca17a1e238d64f218f758aa9cba094a65627b96989e42a14a272f9d4aa35289e4a558f290e4e5a954f2902496c2d054324d26a7b1e19b4c5add6159965efa1796e114401024812008925c2481e0e869387bb4f291292a475efaca696ef9a38f9ec66314710d9135f820957cf4a2974f1b77e957e43b462eba68e4a28f5c1479a9749a4b7abb4b128be43b4a1f392bc7e8221ee30e99202d71788cbb475559510a788c4770c1115ec06354e1fbf98e1cd6b589494e94d63d47dd11a98d61ac33c658639cb5cef95a7b03d156129041c47ab980b149dd7e154969fd734ab357d72668bfef69dec18387e3fa9302042988ec30d49e1b1f5bb7736a63a761a8427aceef0c7b7cf06c9a751ed467dbdc7290ce60e5a849b6761a68d27cd8a436ae426acf571fea72b383d66b924d03593668075d3bdd9f0d798736417327045a98758bcb5488d4026d4ced398ea20e1d32bf3f95a50fcad1f38b36d8d841d1b46df0c3dadeea5017ec3a0afba385d8410c521770c439e79c73ce39e79c73ce1608df0067ec34a69d461d8bf45eea34bca9991d7bc6f8cbdfe7f933e9850d6107860ada980f16352482e8e373b2b85d9d6671a6a012a9a440402318d1a65ec2a0acee6363e4a68e8788e088de7befbdf78ee0f581ab4d824853689fceb62e42612ffe546468d0dcc001801c6c0cf4126c5c02ea372239b6a9d3da220a0ab304b0327c5b51718e8aad7140350eb4be5d991e626156e3dbaeb5565014d532448ea31e6204290c399578ca0765dd293fa5ac1884acb75b1454867d4031157526f3ea8bf531d7ea229e399fa1897d70e27dfef14632c7d7c71b3faea2879cdd8ac3d11914dcd457beea2e2c57aa26d448e98c71c6cd270eb8ab188658bcc569f4c705dfa62e0394e90cce8d0f6e9d6d6ec76aadef25b3e3cfda6cedc2a270f1eb9d1ff75491c32ed8d6f38eccaef316450ffd484ff114ab6806b1430faba9f3f878d76e88715f76f06f508fc70341327b48ded852e47d35bd0381c6b79be55bbefe10383e3eb807e2e32a700f16e26361d6b4fb33f18ebad4689a07db7a48ceb287c81b3beeb478fd1e2dae81ae2cdf2eced599af565facdb96af2cdfb353792e2c0a95070bc1432cccd619bc03fa8289f4c0a485f00e0aa2f86951c427d48ab3a86460ce9c825dbee1dda5658c0e4be6206dd38239481bfb875f6fbdf220ded5194a5f44b73d5bccb71cfedd2b2ca44b0adf6e90e5690d505943a1ad34147d8ec50f955af1a0dcdb36f3a8972b9f83f054aa7ab352e8a8d05d950a5f9c2a19299d516e2ce6bc71aea7ddf8c7a7a7c78950d59f383a75bf32165ff116cf3792b892a20cc71dd2353c0efefd68fb4b27e9e96860babf1c0793f58f837fa67ffe387c66cdaf90ac7a466e78cf79afd913490f0bbc9b7ff150971c6e1cc7711cfda56fd070e242196bd972141416a3caeb70184f83c7f81c1e7bd0657f83cb3c0e6ec4f7700b7c11eee371fc85c65fb7f1ae19fe86bbf899c3bcfb8bb7f1980cf8051e09ff5eb4537ee7084739c2cd1a7ff7139d7b816f81a762536902c78df9283f47fcebe5273a46dda8ebf570f857d00b3c77430ed7f9167098aebb315d679aae7bd37528a6eb3ed375dedb3d9b5f2161d566376800514014f067ab5e27ad9c01247a14914301fd45ceb4bfc81bbc6dfcf51a0f3a8dd73ef32df7f145b805be871bf148b8ccbb3cc6d7f8119f845fe033e0df933838fac4519cd6bcfcfb5ef92b39f9d518a88b75945f856185e4593516ceb3927856069e85c4b3701766bdc7b38a7896eec2acbf563d0f94b05136d6789f79fff1ea61c0dcc180e93a17666d985ea361bacd9ea91f3a407cd78192da33658c21ee2cfbd78eba588ffd4b475dace9740a994c2693c984b211f1abde85b1727ee800799670a33c123935533cc121837019535ebbf900f06fa3bc0f1608cb838c0015bc7f1bdc7fd7f0dabfd71be66911ab5eca56b259157296b2a56c30453ccd8e0c8eca8f0d776b4dcebe961698ad1dc6d7788c9f79ec6d5cf6d765fec65ffec4673e87d3f896d7781c6ee3b3cff03478ccbb3ce541ff3e6ff37b80db955bce732c24e9e968404f7bc3692fa6d34e9aab5e2e2b94a49e8dd148b99de35f475a38fe65e4c5bbb19925e9d14077c334cd37dd7c999f49c3af7a35bf4272c2820539035d8c1953b6db78f7d7d3c4febaca6f997f055117eb4f6281c8ad9370a2174f8c7fe172a350f9f2729eee23526e3422c1c4bc70f1ac1c7b5a9fe1593618cffa41afffd531e30ccfc26d7c0baff12e4ee35b7ce659fce467787e192ef32b2efbecb187798c3f1dc6af48f91d1c3fe2fd02ff46fc5be01f05c75f14e12e7ab81963ee14e16feef4706fd1e2249c8da9d8ecc9021a536962d4dd2a5099d780025d99eb2e2cc8c69c47f2028d3916e8695fced35da52a4b528e96223de82dfec573f997917fb1fcebc80b88ba58576942c566adc3fe75a32ed6cf7fe95017eba3ce6ba0bb8e05e78d2f2fe7e9ae5295a5259d96b26deb2c7ed55b21b1e7c9cee62b578592daf33bc9198a8b305aad083cd915c5a4f9d83d1e9c7d2c8a60e1bd2b5bf52ecc3a089665cfe665b36ada8673926e4f95bf19a6f277e545e56fcaef10e12844982b241676cd55cf48595d8cadc0629c2b545250ccf718af13578bb53251c52849a1629c4c316284e0f739cc46f9d7d37dd27299341f5f0b643ded4bb2adaf9ef6016deb26ab1e4bc7e27985615b47ad7ab4970c68af1dd0583daa4d5bf55e2b78d9008761d3563d707cda4b04b4170a68af166cebe1d3b0154234d60ab131d0ad062f8fd0ce060a851e30b16f68a7834ee1a39fc9ca41fbcc9b243d37497ab64e2244dbf12649cfd6e64d9221f6ecf92ebe9755ebb1b255cfc26ca6ad7af86d153b7bee54744e3e84b055052fd0bad01d52afcfcf45b27bdbea9e7d79eeeed660d34cbeac3555d7e836edabd1de570be9ac11421f7b4790bf13042b9da1dd864076e7eedc9dbb739fbbabb3f31f1fcc0212add6da16c651ff5e4ba1b3383a4316e668ddc569ddc569ddc569ddc569ddc569ddc58535eb5dc0e972cee7dae80c0cde7b2d126b96ec6c66207be62216661de6cc47ca7b75805c9d0c54eb0de495a0bc97622baa6e6b2ed9f4a66ffa664febfaa6b2d58ab4d72c85485368a3cfb67e751b4ba1b3a7d5b57b816c5a4bb4a9eec3d0e7863ae12e046265e313a18fde853e7a17fae85de8a377a18fde853edb8eb8d0a7bcba5067f4c95b105b25393b9180d27befbd18536caf88b6635ba0ccd3b79c911cd13948a806b22d0d0264d34bab69553b0775a1acd6b50eeb42dcc598524ae9b5ad18be37fd8485598da3d6b3112b038f58987522448a143162c41e3982646b1c18644f0b86a0be41ec89bbb71087bf5071a84193bd4b706aa3f04761b96aadb5d65a6b0d3eadd15a6badb5d6fa027ab5ed7741f0662ce82698d03affa9c5ca44e5bda397a2d6e9a4d2210297749e5b1c4a949a0a9191c13e469b8b20d2149a58dbd65e77109434103ce153cbc66e98b3fe00e8b45c846dddea26fc669b4f5bacd9712441495365d979dad382e0bdb5de7aeb3569dab3e7d192397f4a8b8dd12e14f63eb1ef0d7281ec7b7f8cae5b245676816ccfe47175e0b7e81194201078815417e8029dd7f67668de9c084a6a4ff042b1adad15c414b8ba219a033a043a04b5088f8782db0990d4a07a449ba03c2d218fa156944d03d14044b9eadacd9011832ee26c0c567dfdd3b8061f9b25fa8e9083ce0a813811e03186aadd818829cca626a557a7b431dae3e1f1f02a499253a4784a3c53a450a512cf14289453b284429dbc4424c2ec1293269e48d23c9924e9550a720a1e1b2379e40935050fea419356532929a64879e549a578a9295028d4140e7ea52c04f7dc2aecae44c596a2ced05d322b4fa69578c84b292f392d7ba9fa2d475e864e2a79794d1acc2eb93d79c94953343ede3494979cda7124b1a01c993cc65d86dc149ab41232e424d2f12ecd1d239197a49b4c260d66d79489e3b44c9a628a3a232a3d548650268edd2793e6e3d6908f4c5ae5d9a53a457d29890f7a09c4a249ab2538a3b1a3c7f60c893df0de417a764ada88bc96261fbda8542a9d92b3d2c8452413db93741a3bfe8eca471f9ae0e71d5559aa1eb4b090936f499beca127b9e8474e7e28278a31748a83b749a7e0d93436654545beefcbfee173080cc3fe61fc658cf5f7895e63683ef6fd34fe72aed56c145763ea82a3b8f6bbf6b3d908b6e29bf1cda06b5007f60fd39afb55d7919a906ade22386a8d5d03bab6c09252999b349cd3adcc2a1f5d3443a67ff4d3387fe0673f4bdaf04a928495437b766d8e3df2a6f6a4a2bcf887c6bac634c61697cb01776b0fb7821ad4a3b1ddf5d420bbbbe96cf1cb3a37bbd3d13a22b8401fd6e967e1dad561fd374050b83a57047667771054b980ab2bc88116610ce5d59f49c7505eb7b5ac3da776b21892907bb967695ab7b55f9ed2c67aa9943309ebd56acc3fba91ac3b7b9ad41ceec2c0cfa45fb54d5f981a05b92194d644ca92ac3a190cf90bf948f6028924d2a252e72e642ee4206db2d227d24364880c91213244864e3aa49de96432f95464ad694d12331544bb5418faa0c30f103f00f1589111d0200158640ea66fd72236a679a6a7716fd0e896fe4c562a3795784a65527bbec65a6a4f99348c3af9899c9d5a75af9ed6b8c81c01219873f6cfb34981136f4dda407757679dc39006ca1b126fa974c5f1d3a50d01b5542a2a74ce5e731428740417208102e99cfc699dc9f069fc969ed8148ea4907e4e7102b46b2da646b0470606f626e189c749671c023f9d595c715b0d73d2feabd58a6849ec8b75489bd507b4272664ddf5b9422cec3abde40ce54bee7f72f34dfeaf6955072abb4f91a0b295d8cbe98c13c76ee94c8a63c714a4b194631f69cc1d7b49632ec77ea2b1956357d198e9d85b3466e2d89dca4ec77e52194cb6c2b1cb50190bc74e43632dc77e83c6583216c79e0395b554dbfefc0ab1e71db281f273da15b2afcf1d72ea1293fb97dcfc21707a5776c1376960595e2f457b4721f6a4615ee965af5cfc33d12a2eba7c4e14f70917bf389ccbc559bbbe6e95bfba7b77e4e5b127ad56e472d9163708bedd74cb3e49794b5f4a473da667e9a907e959baeb4b7a96befa133d4b37f9163d4b2f79a72ee548cf5245cfb2743c723c7271349658f6573a1e392efd034b2b407474c0d004fb61b385a1d379736eedfa17125163e9513c3f0b23476ad996756e417a1786a4f789bc151bc56ad92363cbb441aac7389cbbb0abe3d9d988afc2b3ebc13e78c8e396c7401746e21b75b925637e949cc8e5237256626ed5c90a719dba3e25bfa3e2a362e2297266e252795a63625a22f6674545999d667f9ee472b15ca32223d20259206bc4f2ca929ce5ffed7a7c0bf204d6ad5861e2dcd5e524e55942b9899ca15ae7d31a540e6cda2acaebf7dde66ebd4449edf92a9136b0ed32314e03b7fc272dfc6be1628bcf89c25271b23c2754369133ed3a65a185cac2ca45c5c5b43a3bd67661368bbbdd6c8ab4397bde9cc9d64f4d5b23776a4fa552d523352848a5ca42fe94899ea1ccec04d628aa8cf94d9bf59417740449b6659d7cbbb05cbb3023f6ecb5beee96af3f3bd587e52bef56207bb65a2a95fb79c2c0b0764a885c5c31e62f6d169f6db90633f244ce9e4117c6dbbaa65279cbf5a2af9393fc24213d3dae93d1c5ead45faffc6515bbdd77f2125dac4fdf9dae8ca3ed7acc3372e4c464e56c326954165e1e72b19ad4fc176dd8e79c855d3731827ba8276c0c0a3ae3732a2a0fcfe73f862e56148a72452c8c792639ab351f318259c693e9fadff3931bf5181b39d2b3a7145465569daec4da276dc88d6fbac632e61f77eaf1ed310e3f61f2188ac73c17a6bbb020f6ccd9f3baa94bd27212b7ae50d45c5881dc1ae409b2e240d4d71ff7fab771820842e2d61c7b5e5f41d61acc787a7755a62b4aa7afc4959367937f27936a37e597c3c8d9ebc5cad39a570e6c0220e3d06127870b3b3f0217769d05f9c38f0d779f9c6872769e2f568f83e8d3c4462cec621ce6d99889e9068de984c1c8598ae6a260c6fc78977cf5345c66c6aa8c83c0ee4efdcee9aedf5171d863de8ac741b87761d75b9f6baccf39a7af4c340b95b9b3c24ddf03dc25e60e0b17cfcf898209af397d85b40937eae2f32b8dc9bec2e2e1c61f8b2f2fecc2c81d70c53b8c5461de956110bcf12ebead90362f1be3caa0b2e262cc6f59f2d7ad5b62a41e07c138728632f12d0bd7c5162c30994c569242c94e26992c3bdd9ada18c69ecb112dd7f675721443bc8caf90eb738754dbd7032804555bd66d8a9244c8876975c8808eb2d3949b244488d8fc36d0223be79c69f66c6d919c79d9da5cc45abb6f92181173bef856dc04151d0a1a013f1745eb634f5b2be8748815624ffb09819ef67e3db987ca6a8e5fcf3b2aab1bf0eb9987ca2a137e31e0d7738eca88f0eb19476555037e3d07a1b108f8f57ca33120fc7a06426312f0eb5987c61ce097c6725aae9d61702ed03014eee70386e082b60b3a711ddb80c6c0db0e3a8387df09f80571dbcea8c1af5b3ad3436c88ba0404847840107edd69ac027e3d85c628e0d7a4f108edac107b0ef9517ed6c70ed13ec4abb810ffc28378175e819fc129f0307c021fc3797ccc77bccc692fe312f81a1e819ff1cac41be175036f01af39ef03037f0127e28ff0bac4e74491e255039f13c58b9f3804624c7f008ce380fbdd016fc371c0ed0ec4d3b03d3646c2d9f313028d915840cfcfe7ca48b90b0b019591aa4061f6ca4840176663a4207b5a921748b9cf8794fb7c48b9cfe7f3f97c3e1f52cf06667f1e80477100bce936fcfb7e779a7ff98c3f71199f5d14f3080303b3c54a8592e6bd985f80bff81f1ce615e02e3e013ec323c0fde9b6d1008f3d033cc6bbc3781fbc86124af8cc0ece021490a4a7a3c1cb96f9ec0d608012bf8067d57e7896029e95806721e0593a3e3c0b88f56c6ff65cc4dbdc8ec55d18cef2fc5499073d460b22ecd52d35f4f096beb45ce5313d5bfee24ff46cb57c8677ead20229ac55d2b3a5a267ab05fe166b60d9f9eeda025b9ec999cb45d1ca388223d826c9b03cb748148a41831bf148f870398d07bdc6d7b88d6fb100618262475c1a4641bba405ba70399d48da7c4da83c0e0ee36f788cc7e1b177b9ec73b8ccdfe0467c113ef3a0d368b98dd73ec3cfdcc5db38ccd7f88bbff198a7a1877fbfe28823fc75dda4c1bf26494f47032438dcc083c3cd977962aaf28874f32b2436b391eb8238e2ce29bf57a9d993d4bba8de45f52eaa87eaa1563d6a4f14ca4892e40c74a9c614dd7217ef82f1d9dce6a37c4562cf5ecfe6d8b3664f2a6a60cb02d1d1b141ec4d2452fdaef12f2447041161baedd5abd99327e7620618af1d75e940b942f2ac5a50558dff743b2b87b4b94b98c4fcf517cb46dac0f63559350dc4fc01fcc51bc061be00eee209e033fc005ce67970d9efe0b1d7c163fc89c3780178ad394aad1da0003c7cf61dfeb5d3e15fba5a3b80010a40800108e059404ec06aca277fb23f9044ce74ca552a19555a3b9bc8d9f5dffe7a9aef572e88306bcf85d913b9537717b6ab3f3e954756a01f20939d2bcaa652aedaac54094a95b2d9186dd4e960bceb66e673701a7f83d7781d6ee373f80c5fe32e9e068779d05ffc0d8ff9961ff14898de73f8eb86243d1d0d2cf049788faf353ebe9ae44ecd3f497ccd5d18ee078743c6eb69fe6d40f900788fa7353832f08ef3db85e570838e1c38a4523b5dce743a85422693c9646ab16c3f745840489b6faf7a361efb1b1c34de65e35b2efec68b9f794c291751849b60cbe53d7f9da06413168ba5e3e35937d7b9b01f367b7a8ed77ad42595d2f5426e7aef657aefc4f41e8a994def7da6f752b655cf7683869ad7bba790dc1cbf87d9b56cf99333ed4fde6095cfe1061c5ce675e4c071633e4a0e3a70b821078e1bf3cb8df22e1739d3ee226f708d8be798f2351ef3d75f3ce830afddc5dfb0f12dafe1f299bf0187cbfec6636f03e34f5ce5b307b62612f0107020bed630e02b6ea7de2ecc7afe81c0575dcdd993562baab1c3f3e0e0db78fe99b3fe86b79e06777d8d03f1b4a6c603de738ebb309af71f36de6d5e9b21ae82d87c9b556b62c5d8e265fef232333ce66bb88b5ff90b19def2317ce5679ce5630e2bed06b80b0c9d951b50b3e9dc70a6dfbcc6fb0fb7cd78af397193d1892d1e8be7e2651ec8e3e9b06a9765fba103c49e377b0631af49ce504ed2878242ce524e7e7b8bb73183c33c4d8d19322d966bd3cc60c3895b8d19322d962b85b4c99bc55bc8598bb7903778c35ca42de30ecf83cbefecf0c285eb6c4d0c8153521a26ebfb581f2b538f79cf79af3971d3b5e0356103499bbc61a6cab8a2071a6ff135fce5affbdb70989fc115f0407802be01ce80f7c15dc2196ff998af7c0c677999c35e862fe01fe03fbc035ecf830cddcd8919322d96cb793f3916469382645b4f416263b49431a48c61867ff56cfc6b57433743a6c57295329e558bfd60e9dc1c66fd000700d1001d6993772d63bc053973f116e40dde2ec8fdbfc383bf7ea70777f1f042a707ddc205e3badfd5612d415d94a02fd6639e95c3b2fdd0f941013a063c8ba7850b93551bb7cbeff8e0ff3b3d78ccfb8f77d085e93bbc0dace9c1f4db85bdfc8ba7c54b4f1637e8ffeaa12ed65f7e4ea26832994c26132a888d8767d52eec870e901b4c8befc3edfa9a53ab3f6c051243561d9d079170411ad1fbfedbae17af173856ef173be4f400839cb5982c1816c70ecd4e870bb30e83ccc19e30481beea6e13460c4c490b39d1dfcc578f2da5b7ccc5f5ee6fed7615ec6ff438ff919eee265f88b5f398c8fe1b09ff11d9ebafc4e0fe0cc4ac6cd09109c31593595dab64e4b419282a48719ff3a22e35f414edc64b11a34616b992cd36566f333633cabb67a56ce05c31d3e1623672f1759e3f778c3bcf0cf08a36ff1dfcf1541169048655996655902027b568d95d3f22c1beb870e7d71e17a96cd9ef67bc5603c8abf78d35dfce931cfc277781e1ce657f8cbab788b4f71f91d04f8eb7776f096dff1c117f0aefbe19d4701efbb04bcf720c05d3b384b0fbee283b7be07b861e64e0fcefa1ee0363d7f0f709ffef9d8984acd0834a6b284f34e40652a2150b1a9dc622a4e38efc7793fcefb71de8ff378d6c5f35f41af23af15ffe22da1527be152fe75e3a984c0766594aa3841ba75951bf9f2729eee2a55593a6f5b91d3523adb7c560e8beebf5297cf595ac02f839f0f5fcef4ca4f0fbf625935564dc7aae95835db0e2fb3df5b99efeb0665ecf0e02e1e4c56ce0c727662b26aacda8c4b8b0c16d8c962854a0a8a0c5346490a25e364922183b5c35e99341f5f7869acc9d358399e9d2bc1c2d92008b7570b76100696ed858215c8c00a436c2cfc21128636568d5513d2d383db142509928f03d87a8224a238aa59b72f7945a48d26c7ecbafc46fc812290acc147968115b9186691c845e44c081bbd452737390f2793079e6d7df41b2d8a9c92365a93a157d246889ae486e2a03b344507bdd65a6bad96d491daa58bd65a6bedbdf75e0cde30c639e7acb5febed02c6f40963708914826e9207953725289442289b039d9a5934c1bf1e66497e453fce91bbd45261dfdabf94674300c796aadb5de91777978d6e211bcf1eebd99bcc9f8ebd91663acc91b9c7b397fe4cdd5349ddb9634c1310765e8a1d1c5d0f891367c9f83fbfbdcb272809b74709334da0de9a3f973420bd9cefc837ff6d38ef0d93cb28e644f64c8ba9a831de820eb423b21e22ee413ea09fd849810eab9b210d085fdd85828c89e4ca0b19017423ddf1702bab250efc2826c4cb485bc40636228248a31a031a228364163a218124551d4b9321da228d224883232a2288aa2b84365278c7b09ca601e75b1ae23ee6a30722a627cdfee0c8af56b28874d16c63456cc1b977bedd047ebe06ca51a8b6c122e79876210cad1175019e8d633eeca405315a2c1be2a9ccac848978350eda1334ec09e7c8b09c2a6b546556585820d81b0b53c467090caa3fc952a199db0ca150b0b98abd5e2427f46e59b9cda99386ba230a94e2ea29e6ed4abf84847940b593b2bfc5b5959b122b52275f2759f2b2727b62445bebf522527ac950a65227a915680e8e8806109f6c3660b43a6f3e69cf0aec7e787883d792eac24955b916ab9fc7acb7581781756bb3f2a359b8e3d81bccb63dcfd41198dc8196ba57271655a2951fdcecacaca53e46cd55ab14e4e5627a9b23439f9fb7389dc2237c8c4c2bf120bf3f22eec9ea9142b559232efcfebc4bc403f25a994ebc4d2a8d39bbeda2bbe5a59b1f22a4995a44e582726af2b784a0be77452d8930a7bde1e9fdd856128ecc963cfebd2e272e5ee4feefee46a2ab0c73d3c178a223c552e777f7227272c48afd759e6745240914b95a460278f73ac974967e1bf8849b4591ef32c4c0a1610d6f1a48ad898cee9a4800265bae93df5b8e43114580a1eddca4495bb3f2b257f7fec79fde42fd02d728ddcde85dda00bbbbc1bc4822a49c14a52299692d4cb687af7fc7af53b2b5ef23ba7eab46262e2c2e4f54a95a472acbf44ec794f2a282cecfee0d84ab74a398c9c95a430eb699c983232269708ace47756fce4775638cbe39ceec27697b5d22613738785b8024bc152278b1ccee5721768458c0b1897c8054a99f7e7fec462b192142a7632c5621bef72b95c2e877de80f0e7da0581d5d107dd05cf06b356df407fa2d7f507e264d66830e8a6e53938820f8d9cf18e37cb5b5dff87d18fa3e10f410fcb249a98b493385a8496838360f996ded05b112aa2d63d08644f1f412768010e7acb5d60af82d6e711c4551941d33715db416679b31feba4710acf8de7bc17b6b8e5bdbd704af082b01ab60e83487f2b3d82b5452423ad4a598452d7e222886624814c571cccfda2269b2c591588ef94bb648124d60e8a221348561479139c031ff698b271125a6c492d1164dc83d6e31b4c513707f7a874f6b445344115344957185b8023b45d9b1a62e180331f0696fbdd6669b9164190d0bb34e83f6c474e8819ed6451c57f6c385d9206c0f3446c468fd92b31c72420eba256f74e84c803521ffa1da88a0b1da04356bf8350634c6ba11b6262cad2f9880a9a1348656a7b031ac2781c262f0d5276ceb655973b6b43105f62db7c6f5d8d72b0c579c0e798d0195ed504deea83ead7708da28e07a2b8d1b306034d05786511cbfa5fa42772beeef4f6519daa328636321a711fa917633e09269c622eda1befbbc32d2840183cc4508557ec3827e611766e2b031ecd66f0080ced034ec696574b6d609f105b4592f515efd819a9c81df97f3282a9123936357b5acdb18c9f1b93398733e4172961d1c45e4c8c54cce40922e774c2a13a9248dcad1939c28f148ce48939664a934f22bf2d0c8a422937c5a33527b86b4d3ce0da3cd9c030174c001a1c0a8344c58eb92d42945020000000000a315000018100a060463d1581ca8a2e43e1480117f9c54604e184964598ca3300819658831841803004004406666441592259a8b57f7a4033afe6bb10fcaa4236fb53bca081e2e5d77e53cee8575c86820c25429af2228dc690d81ea05b1d2768fa6383dbfc10e25b5d72f0b49ec9ba9874713b9e7893f9f0bcc7d4438f503e3fa27bac62e6b8aff042ccb0685232650b23a0361dc20befe7fd24eaf28b2a05798f1c732e6c93cb90a9664e955779b447bc68109879ca9ec7e6f558de88f2eb7b09ce44ac418ab78523b62bcaa198b655867774dd69068a12f87f00e53f0228965d84e1e22e3a51ebdeb405c00a75c9ddd5c26e997f22f53297e4e731551ffdbb73254051ad69e424b011e16e9c30938ca0c53d85d7ef8ef251b0c91ed4e76864c69e41843a5da8a6765b50d5855d984b8a75179fa58abf26e8930efb20b752f1d83fbe84edb71d7d34e29b82b5afc6538d5a1dfd887d4c7ce2bbf4b487cc30bcbb7a34e88a0b8d44f51e3426255f8a6cd22e5d8032f949557db04af9a3af5fc42be425e93621d25d9de46b587a5b306b58e99102cfcf4d8df49cf0e7ef0bd9ee23f004b0f2116fca07f0510d0c61284e238b16a58c81045394144687563d34cb6f65e33362e6c6d6e76e43f07a4d2ee26d006cde6f5015b16b14f552bcf2934a98a78a98242bb520e260c0c2396f7d1e886d1e052605fbde5b0c0e434a970ef04af8eee0ec820d12ae11fc4c0a78395ca5ffce85c2b1750bee50cfad7759e0909caf90af239f4d016501986010a6313406e84fe0f0f57ff889837e23d7afecee3e3cb452b037ce7bb8d527e7c61749242468f0dcbb234a0323ae24df2d01ef3ee46a0db3ae7286e62ba5001588ce6d6fd380a0ece1dde5f62360aaf5591ab9ed457376fc70766d080736a590a8eca06a595836100bdc2883772e9544f2139fce52e5801c1c08677f32258dda896d1cda21eaa515695f2f653f53db0f32e17a7948055170e80dbe394540460882ff5c02fbd0314e2348714f432e3320ad0094823e7fa434f72a3d6f3aab449aace6e2a82ff1510a3139b47d5ddf029450098528c77749330cc1d08c946368a1024590cbb65b47c3e7f4f66754072e2c940b4b3a5b757fb39f331677e733c1d12a43e3a763e3547c49363cca3e795f2e72fe74381ee091643e10c9c82fd87b0b7235598de4c2ca54ca0ddc7f46e8e12f0a7f63609692140e4645f689454f02664f880791b4df1aa8ff590dbf17c0ecb6480bbfe069efd8e42c47b6af6270aa28241cef74480430ea5ed9531878bd9903a32e56ac1aff42030149439864402ad15564e5b44dfbd094c3bb5e1d3c5d2f5740e0b20fb232e1ebba2d576b7701da938014e2e9f80215ee77aa82f5e5137c6cdc2c00c5d222f82e1265a797eefd9bb716fef851259d4b6ef1a8bdae438d1f8c1aead1c3338bd0872b288b00b27ff9150638a90060814345a4c67a8a646fe65499208c9a887a66fedf36d20e3389b1fa8dcec29a81da2f7ee99722b338501be1bff60848bac82c82cb4850c798440ee0e43488f47fa2ffe0cb8ec9198213c1e41b01ea7cc4143fa9888b3580010ce993940a7044dfc2faa2ca4f27f69aa01016b44bc1e7a2a003b59c414600b229bb05321a4c2b27cfba7f0836b1e850327be1ea46dc3082db145d21b688a6ac0c4edcbeb4b9260f467a58b34f58f7c7186804ea66ca568aa8f7afe90008584e61effab25879eeb18aec23ca973c5907dbf013cbe4574abc1ef82dc83a476733b8f7f1928bc2958817d71ebcd876bd7b050bf464f15ca3cc893afbc89af16c8134f30252b7aae0dda6082d333a3adf7defe8cdb27252853e2de845f93d26e294921f8a57b83ead99450bb55f02c90891020615e0b33c4a26f203b3b4fbe8e2fa84c08c93aa8dffe94427676ad5f968dc89e5e8b63ba0b8f148251d2d1aefdaa9e6c8a9d3feac9ed1e0c7ec3720cf38975126c48bed1a663a5566ced3b7fb47ba66af6c6b40aec3b25737543426badfbb199deff82217c700ba2e6371085f9767ef5fba50b2e552743f0cd058036c7f1804d06ff446b086ff067e4287cf28463d1b79f639442fa0eee1196beef3d7dadd2a7d4f733677f2b1099ddcf1cbd2b5311db5bd24a9ec6eb1b0b203bec1258925d5340b26191d0866e92b0373438ef9d62e98c8545dcbe08de0dd0788fd1d31ddb05d4db0603e741add328c6f161e6c12e60ed1492b390122ff6bf85154905221ac21b9bf2d3314f73de603160010d0d39ce297608a8c1196ef64943394b7e7817437ce37713f81c212aa19b2b4462faafe1d49669d88e26293e418f1c5aea65eedb640fd25894a8a28a00b5821289fecfaacda5129203265a14a2020080670a87f884ed410789a481442f5a500b0ee1787a9bc82737b95883d514548098741c5c673bf6e0ea381c00f2a930d19348d2145235b7bcbaefe0701b0d52587198280953d594068dba4f7ef41f9142b5911b6bf113fea89ce4c73a74398872572454f17d1c60ca9eed74c237dd1da24a6ae03c2b57193d2be80756af08cc2034c6fa6b07f08123aade67b9cf833737b7fd3a3418b919ae8404a769edabb7b56a99b162c68e662349d97ff2616eff137f5c1da270fd4483b9305163225b0efabbef41ff717950e10fd02caae83a3a51dcafe9d8781821391baceabc32fd02045c833a9e053f21121bc31ab8b780962b0b32a5bac0a6040369e8a20039e62489d0bc591348b417d92140f220405788d60150493c6f840546d8d869041b7ec312e543a63e4cd39c8b41f30abfeeace65beebdfcd9d5ad43086719b57a9757659a149af79171cc4afac65dfd3b3e0a462fb7f60c04d950fc5a03558929267821243d6b48aa2dd3453231a049e7fefd717559c89b817a0cc58f90f5d4433e6e0fe66ca6e1c696f147d4901737882b1697a8c1008e7fb0060103e97b699143d4ab05ed64f367563f92577d6f51fd3ed7d467037d3ff1d3846dfa6f82e12067fd7b50d2555f93eebde7dc9bc2198f82a87f418d618f1b8fe01475f7ec470e2203d447d41f1784b8f4a27ecaa9d47ff23858db2f4ad108a6a95ccfddd44f1e4e5d2702925e1f4288ee898b5f2508eadfffa0703d76f0610b336ce052874b784c4358f0e3df7f0d4ba20f68400722495a949adedcdf75092640dc1000904bb309fe6839d3b7183e148f1c2dd8ce5f2dce0c927f60eedba21fae92432d763b12d757d89286e39307d1a3178086e887437566df9a1cce35bc5f0f05a7b2853e8700c1ff032a01f992ad9d737021d3c0bceea178b0a40003d9ef94a2c76c5eefa1caa4657ab4ac33d6aaddeb704a4fde5b1a439dab374c8f856f5168afe2471f6bf4340a9e85fb40c07e1a1db6cb372bfdc06c64d736a49f4e09aebe94f75ed26fac66f3e5b36a39190ddc4d1eef74efe5f62fda9ac528ec56aeedc3f3c4c95341736c9f8a095399b775fa6161fced97cc5a7dace50ad14a417fc7159ed0a15be3498fb22eb68c5407f838281b492110c516cfbce32f74bab36e65819e68fd4914ebb3cd217f414de11d0aff809f8343c684f6447a7a30061201f38f260781cd3f7526245dbf6902311134ca701d307385fb7c890c90345360f89e8ac9c7c02eee8c133616207d0fad0b1c107fa1d63313a17508c1d5a40f776f6a3b58975356930fda99639cb172946c513b651d058af7d496ced03c8191c32fc133deb693967fb5bdb23b007733402e4b115b6ed94ca62edc4160e16912cb0112eb583df86fa247335467e3a942470905ce0cb5bdc14c5078349a499cf44dd8c8592255c0144679cc69ef910d6aee5b34cd65aa0c67e6adcb342b24f9d4e3af34569b264c9e83d0c632dbf6590860a5369767064a80eeb15d057420289691aad427c637350ff81636982495993fd0f1a45a4497174e9e4b65226929cbf652adf0be7d5f0f6570667844031e3e001353430edea862007e24c082c898f4d1e7473287863e46415aef8a668cdbe2b13f2c113a83434b2ddb27cc647c31eb4beee4990b4ac8e43a4077d16e05a0e00a03511c41bc858235c64a23826a0d1e150b4dd7cc50be02045e3692e1a96b9a9538747023998424c6ee5c6f30d8d85e936d42a6a4e8d79e06fdb79991c804ddb6326b3de4bff77cefe816cc51269eb80920259e12012f07e12cb95be187dda98224fc13387d8caad8fd90c998c3f877e9e2940f08c80fe86fe60cb06967d6cefe32a399f0cd9dfdc83c46e595852e3b38d341a9bed51e12ddcf32e09c0289827d373e900a07eaa8d782bb3a0327624d44756ca80b64e5af810b91b427bf71cca900f6c7a190fbbb004659e3da025d6e4a6e29a47ed369d5ca5b87d169a734269f64ddf6436a4677f735bbc8aad728fb319dc658b62782aa84c1edb53255bad96103471963994664b23ec3abf79548696f7f38b0709f4251535bf93986d613c6f06da760bb185d018200d5880791fd0d98d0c5bc88677175d3eda0fa4733c001ae2ee672fc13b15e3cf1a8d284cd3fe3102e5284dfd67b4aca37fa31b2f5cd028169e57226a3003025d3248f36df8699c9627fdb50835d68a7a428e95a65319c637dd34602bdd9c6015731e614058851fa9249ef3425bcbc03e872db118534355ca9558c02e800500307d7fb3217d86d94ebb207bf567e7b8d49fe40297905df3c090f6b62c2f1ad2d3eda6fdcde6f603fd065609218d9cdf6f9c1fc3556f5485c7cd64c802ac63ac043f1152394566a195faad3af8639087a7d5bede18a3ff2229f3792467cb9ca11490e40ae5b9830432cc0a3a340b95a29549df703e2ce351605e0b43078d13f207892b37fef4f5f8ccdf725a35d9608b1cd001c16efdbb1c81e4573177a9b1b3544f14b2c9878f9486911507e8c1ae6c46955e97a804afb2faf6499d9ec37e83cf0ebbf84211926897426454923391cbc504912b61b05eaf48a0b8eda27ec04f42e66a6f61f740c77e7f745f2184b00ce12e6106a0d1ffe62085af08530343723ce4bb333624ef04611a81f9d6c3327f6a4d508737823efb3fd822efa144a84384e00554980e1664afb7ac98a2cf2b279d75a5215fdf5fcd19036e50b4be61c4f0805b4515ff697e62ea04ec79064238dbbd2fb671d2442bc951b6748a78be6250d42dd42d77f19e5b5dd8cfb53ee0d7e1007e87a4aab7f6310d6f32e947ba51f02016177c9e913dd70cd4deea4828d88ab32b2aaa026cc991bed0b9c419651fe52e4d03a04edb04bef2bc04df1c6de2e15f55375cd2c48f050f324e88b78dde475b1d11834474b4b4e129c0845716307b037b0d0636647fe71ac96c02d6e04d73d2310f2658d7b1718c2ebd0a70f29e13d319715a71a10b12f4648c9ca1603353cba5e3e93927356b58f4a9090984d91763aea24d04902beac2702473ee5b96077e50adc5331717a48261e5814b57a5a4f0b46d914e15d46589e2800964cc71f3f37c1e071ca2ff4b8d74c8865dd2bf78d4730c8a6f48fb0ce7e523642e6178c254c3682b460df2846a7c7151d758d34a36c3731cb115cd9ba064d4b57838db09303c1ac02490ef60272f4ba309db5079729c13f04e00fc296ccd179cb90c8d93d12c6c62881ac18775614738d8d453e45d3946c1c0d7e8a39c4368fa59318d04248ef3da64e748b3f4a161d34f3bca6f57a6eacab7f8b35717e993452c822799e6ebe86f263328a6282e91b086ea084aeda8dbbcd8f6cbaa8c5c1bcb0a566805f9b0b1ce15de50a19cd0f27968317b3f51fba2b0a9ee94339bbd8e75d7ae097f8160272813207723b0a3a4fa4fee659422a74544138a6ecbf6b249028fa690ea8bf65bafb224eed0b1bf1c1d4997fb5d3b3b677f1098ff540fcfd7626f54de5b90adf1043cd5ed0a8f079755714705c365a0d317eca753c187e98095a4714d34554c3e729faf882e2fbc223ccad637d7dce1d407f0b0806cd6384d3d4b436ccf20d6c44d90230592e408db9cebe20a5db935ee0294791c70c43b56b550833caf5dd37386acbe2b5e07dec36cd6516982642a564cdef6f7888587def5b3a3c37ff09460e12d741c28223b79756832f546e6456ab32b9bb051feee9ed87e8545d2687baacab54661745250916087bb890421241442e6a94a0923561525690bb2818a412e940ae9afa0514794ee6fbba3a22a92854311804b45b623f2d48e1e6ef8ede9c4c72a0faf1c0b1d9ebbd29936e8202f5b63a17bec2c5590390ddd92c734abf90417ec75eb02e2e0d59b3c69dd65c732d245e84673b9c9ee8a84573c61134009e4f662c38fd6aecd97e1549f74573a2c86e1bb00900f5ef3456dc52fdda49c052c151ab889c220a0d615e7a44bdb64c00b149a16d35e0d02149bf885a9dc9e6ac1974811af456e24c1a6ad4c7e8380a7677b6319e1adc54a88c332f30d59382157501db71bfdd0e62fc582d93d066448172a68ee112ff58a76090ae8938fbe4dc633b2efe20f6d2fd6ea769fb785ca077b12b766cdfbce02d1993cc3293b27a411d2094197be1d2c579fddb8cfe2e8d126009ab67f3d80213ae13f172e009a1c7749eb91f24b327d1ee371910fd5f86b266d93e70c10ac578c61496f9d287900a2995ce3f311f293e30e6e14346d4a80ecc30714aa32f24e3d73fcdfa4378507dfc627d067e353652cb29ae1fdc7dbf259e8d759bdccdd4752ec884339055e2387a9a1d4e54b21a5359c1b94b687ec29f1758987bf3b2e7135f17326a07fdc28f9897a12aa69ea28f90124108d8f32f809aa92007a27439b649ef1cca04d8e2ef9fd962d236145d5ffae7c9bb3cbf39405d02ecd4fa088c3029ab7849278d1d1470353edd0a8bacb1b6792e5f9bec67db582bd9a55ecf9dbc0e92718f208875290326896ce9da9225599d1f741ee0a7c2c2f2315fca924993f2437285a0cdf03d385d30197c85e6a47963b165e428667658b6112d60fef5f572af9f058486ee05b5c2c2e9408a522a38d556d7c2c23e08f81c883cd58c7f0b32d1a28a7fe0659d5f6fafef3959f8b60c9447d6a3df9748827e3df56c9e3627a9026ce110c858dbb4640056a016afec433d96608e0fc3de06413152f8f58cfc7aec07617984e5da647591e4d4efe4a13a98ceb8af5bfb8ca8a844ed36e4e5f545aaa48c77efc45c11544b4966f42414617110026184c2c88dc3290ecca29f3da15271ac60df0129447f1c46671e04bf63744f6c46ddd69064fcbf40ec56502bafd85ca9c6e248e113e2d6c8bd0439f295be0cdf6e54a611b38aa99dc4ec55171dd92b525145a28c3b81f273ca24f1faa59bd1f2b2e4eee35f58a99fcc982762cd39984f56dc64a867061f864b1ced5510e010c34e5a4baaf69c769e14398922653ab79338ab79b6c55e29911e3b2100f10968ad82b851060d8996b44d57ac457b8ec48521fdbb32cc48787f9e5a4a15130773f90eb32e0a016dc30c573d6294f090edce0ef62aaaf2e10205f0f0788bdafba59596a4abfbd589e74471af987103a03a860c8dcc6ebe2f80c154d35faf56eab0bfa3aa7ef658ea54d3be4d2deac2da559f2917989f6a21be3061a32208c90a84bf5e5ddb121c25ac31f296b682bd52cb3b8da51fdbb1aac1a08e40bb8e22dfbdd7abdd213773cfd432d77d26663b145f31d3cfc5ff9f063b9e755921214c44da4da48e640290d882c32bed62ac19187e031a24f362cf6b7f709225fe13c5cbe6464ff0faa08c105188611d8c1687f7a3eeaf3f5295fc1458e5ef0f5c626f49702892813b8fdafd341ecff8649476e455178a247b45b2ec6047081f44e9476235a623579484350eb607f70a94501802062bcf1e8680d4ec99e525217bc5bc99993be60669e16b4cf1fe727d53de20d13ee4a5acc0700ecf4fc128b0b419ceb08a63195da7f0c138449f736ade706b7432ed2284d70cd6195ed1fff9723d0cf615247b029217d40eb4b752285b16778216d4c0dbbe7ee502b10211dbcfbb6aefd13e73adc5d1eaaff28000d22eaf1e4a7dc88c58aad9c51a6d8f0196264391074490d34dfd818ee6dbe9973a5c35d50a36f6eb686d49517ab6b0fb4b62e5003038a50835df422c60341de4429adc24a9302b9463bfb0ba3654f983d020aad14882eb1e0564a2fcc4f5ad934d19fdfc660b3a3765c003ea14290c9872e7521c2b708814038714d5ecee5209bc18ecfe931f64ed66e55bc848f69c2f8398a3e687ebcd95aa0b648c2588c79656661f6e0ac0dfdafb177e00d4a380a30dd765b6d8d4ad041d441cf78c0bd34b0d1a34933db88a7236ebe05848144c7406be1ef695cd3029841402e2f121c0e26e4760bb8b048a52f2c88ab340ce926a7c1ad76b87e62cab0625beca5f319394e9a82c5928ba655444ce547b72370e68e280b94ceb017307929ca49f61dff55755ba5b4160e72e222b077a3486560e805c5309af8b923160bed33d081e83cd566ed99f4226527c21bc40ee199d3fc4bbf0cdd61062ff6f3182ed63069f45e43817584162234bd9440e9f40b593bb48b62718554cadf14c4984ca3fb614d13110ed577854bde69e541b3e627d5e8e426375521acdea8b132d566458fcdb20564f4e44c52283f8efcfec6db34d02585c1dd31385d516f0f1aae38b7d34f8e109643001f020f2e1d85957941f5974d59ed3a4477924286cb84c5ff4215a883cb9745bdf4608f36f0280ed5e276648704218460c09c514ea83db780480740054a508013d03339d0cb47ab416882eeebd05f34c7d5cc105f99323731d495b1d1a7209c11aea5c515c8726cbb3b9950407cea7f6b5df3c448f65de4ac4a7cfcea0278346890e098afd93aabc072e2963d4d0701613a4581d37253112cb10c865aeeb489b94114613336c48c4a8021d5656d2d01236789b1fbb8280612996360aeb444c6850d46e5b41d9cd2978e85401eca92bb0ba55767653751426bfad2be930a2033ee8390ac59061a4dd5d940fcf0d984c474344e820031ead02a0c41172c9dd4a70a5ff8e904400ed4ed01780bfcabdb790ba840d75936b4d77547fa2caebb3f0e80b499da43066280caba1e7193a87074d7592a589d87d211796f65ecfc7ae5e574c456e0adcd176443597b817d61eef9164fd611241d01ef5be5b0a2f58a98c328ae1cf439f81f1d15aadada12e55bcc1a966160b0fece66843d02b9524cd3592b4b2ddebbf663b64dc87969f679673e5c37e5355088e8a4c85d83d12ecad6c6a5b2e8d760c7e8544485df5c1738e481fa24f7c4505836bece4ca3ad31422bbc48e32a8df5b20737a508e8c7db5401ff4f90c13ff70fe11831ae42af842f14c6a7fc61fec5342941665787dc95ab215e4aaa48187e036c5c452002a61cb46f3b01d123984e01f52e091218f87804d201bea784d6f096cae611a864c69e0d0701a09ca856d5376c2733d108b3d2dc07befcd753818a8803a2bd935189bb3fcd871a08326867cf50b9332ad8fd8aa9c09c5d287f239b1453f04f39e84665c7019800ad90fa230c8deabf4377e1fc52f53509f141fdb60737f7c2e0929c53e31d7632832a0e67580124fa55773c26a71b13f478cbc1db8e0b56e9056ec632968078d2446c4834010778e69023064b5b373f70d659e85b11dc8cf45b9ae8f4510c55a6505d64d1b6b99b023a5bfc43e1ff0392dfc0ebdba1cdff2401a4617e2184cd154622732469f694e478aab225f3494ff35444c797819f737ba66f56f6b4ce80b520b4f259dede501b8fbae030160ae5c04936f26a834a7e240a4dcd736d00e0fd8dd12fd2ec3e72f00055e4a5539471c651c400e3f454858d0948f293f01ff52a85d695bbf502ca43d16d65e0e328b60491a14f7aa93c4325a5fcabd3cfe4dff2d6cdfb9c0f72552680186b021ab11c3c5e865c4f35840a18e7c38fdc0aaa642ac53750b20c4fc500645bb37faf12d9d9d25f2825c46393636934af63be8d3e2ed8aec272774bf9c72a1e45b69c1409f4ce537317aaa52d9fe535b69d0e00fa7193401699842a453ca243b2a3ce25706a0acb219d5039c4e861841f322d98976b60b96a6f69c40bcf615f797bf6b7c5a51c368463bdf4e02b5b3b4b26ce324bdd51710013ce0d59d3d96f41e0e20f12633ca9390f90bcbf2b8cd17b093dace0efe00fef4961decfb22d3220ef95f530f2934ddf3200beee576798f1a250e66097b7f320194a27f3846384604c2de92c93469f1603c2823f61ac456ee0d5af0978b9be6a76316c2f1fe3227d4236cf6cf9ae5f37159afc503d108e301277b9aa127f0a07cd3043cf2d0a7e8417fb2ac5c4f2aaebefd8f76003671199be0d499799f3b36b0759e99629f9b624d9d404c7a9b272c9b902898b1dbdccd1cbee03ecbcfcc741ecf1008c23838a197e5e22c907930d72eed60bfac215b31f79439bd841623eaf6090ca9da70137359f0fec0b679ce58748bc5b5927ab725dc5ef38ecdec890dbe322877e959754897263e9a1a392ef52e1085096ce3c8f85d1c276a229d5e78016c1004d0507423f8a3133c0a73b987ce86bbb16f58cb37773a9f4a3142816dc28f961c0cfec5bf6f73e243c69d51ef71d82e2f9f3380bf9264b7b03ecc4eb04746804ab7c815aa99b1d0f569da11b97922844dd6939643e4997509aea8c4ce89ee4016d568145e7587a82fb41f04b2588ebc4453dcf529ac9702f845f8c15c3904775f00588d9181204bc51136c90e890061781024c1356600cb823b7bf1f8b93e0cc36f7823e9bcdb3e4664677c786ce6a6d19c88d9418b9ffb0c39a7b205a3c230b05aa486f38480a39744c6c9726821e6c97e1a245cdb8c9ac93a0408af65dbd32d6906ce484200e41ac57d069a7e26efe12385107a5acabf7e2330f819881b790f91844761ca829d3f323e38bb336f1a31d248f706ab9972d315530abab6e1f2bb9ff9fb494a15d9b06c2d4d60cecccf47727e8cf8d15e7922c9e900a9a6a5c3f94e6cd9893f01476cb3c3c843d01860955a345f7d7a2dfaea4b5455a2021edebea1b411392348e3a095e828e83dd6ceca9d46a412d04029c7a488fd2770dd3a13b5829453b4a87ed17144cd2b3d74580124c58d6fcde10a2b3cae25de0dd4583710ab83171d4da016424ef15b84e798329d519001c17ce1e278b5c293920776da84d91bd8a9c9839278c726cc0c3c9b9bc95cfd2838af164e0e94b426be6069df64ea08eb391cfd408bb39d07500109485adc4cf30d98d063c8839f3bc96fff6870cacb310407880654c45906c3694be995af5cb44f0c21cf3c14c3989f45be7c4b96f8fe38edac77e51795a37858add04f47aa992a33a371b83047b6a07a34cdce8388630e3971bf8b17ad4eae6e45c2d6d595887436281755de38389f4e1d471cf9881f6a96edbf5ed0894f6d1e032d097eb799fb4b2f84fdaacb17f17b0ec8e23598cde2b9071f74848a3d2e0a1da1de8aac5872c7441156e9e0f35904632d873583de6a5245d50cb5c9f8d1de64fa6e5eddab829e4a815c36a839248526eb8569d11aa62e001d2b67e87ee96043845e13eea1245c351c116b40932f9a8ce39dcb78fbf17d25e601b9ee2784973553a336970161413f6881268424474c7a7fa620e18804b76753528c08062d6e15f1212eb09ca9a28cd2d030655c6cd75605de3dc299e5c8613d89fa491c4fd3b8b62ba846981b6e90bfe01919426177d3eb9949bd8ebd32ae00a20580e0a19dfd1b74440a2c66689157962455913302063ce3bac72f3a7a4cfc259c4c6184a5eba617ddd5e5bda999cc45ecf935c1059735239bf1d802b0ab89657d0c15088a0448a16466741663d99d06d234be1db32a55a3d3d9f62704563462d6f7eb6ba16215d8fe6610e7d7ff6c6fb4706a52ac1c5e648871e7e0ac9adac6e6a8e5e1f7075e71c4f52abd18a8c80593d710eea2c3be6721562fe5a132cc1bb1a54d0fcf95545536723b57f471806aed5055139b487d8c70e23ba473e78f4d448e866e0738005be36bd553c46ab2bdc414ea42cf8021a77c2655db3e17953cb98aa01999e6eedde5f4746e25396940c5a5269fddb32547455b3d6c81abb81c839435647b76c20ed13f5e13a4ab398c0bb5ad06b56282924448d2d2f5b04cb6c53be01f4ae0a7725039a45d781e89993d379045e539354d1f90739f256b5bca3d53a5dd75992e5d1e4c5b8246f85b3e733e55eee13c0470c2033a2230dabda8a2128858462b1492b3ad97278945508e5ec1385192d0a114790915183af10f99528664fdf13bdf3a62178613802a5e1204fb05e2b4a3c25a65ebb1bf1b4ec729f6e9e72e8d57c8ab5475be3bc391d478fbc1fe70f0ff030bf5d01976239399c1134d035834cb86c121b24e0df4bb86d59ef35725ec499563ace7d7e8403d73f57c0b4a0fefd1057a5c0a089da7a4803dd1d7bcf1b85c6101e9a94268a14fb69cd63a8bd69c68a91e697e616bb5cb5af0dc263fba5a58ae0c0d46921f662a5d7e2094eaf2818b65990e70f0ede1be7fcb7ffee2d103ce2dec891e29bfc3c6f52900f56299b7b1dcc86689a13e58e8861f3a697cef515b753b113b28769ab7d3110bc3ea62a5791394990667ae1d68698d2d6359329cb009dfe34546075765a118c303c462dc0a4c88e98f1b547bbf518de18c629e4edfd530f90d8dc1dfaa19007c3690c08d2d2278b2dae0a0b1d67deb0e79d3f0a730d5f98cd9530be98d9b62db87d42f704b33972554ba6cc6fe018cc0801fd1d8a8dca2d826dbe30676731f6e973151472963ffd4526fe50d926a6ad16f14b100d80d0ce5ec99e1a35fd9c34b8d7f767f3d2d2db679fe81cee2c98a51bf538fd8d8ce24e26f9dd5c528e9ccc8997fd6fe038a0339d2b9d495b839f297f6a233008a5488264d32498a1d714a01d6d65795a4efff482b3cef05dafe38e167f4105306837036552f9eaf61805aa6d0a61d7b722ba6400cb601d3ee6dc00ca57db1856b876391fcc8fc2ebc6df9a210af6a4ec1bd24dde981410324cb3d78b18f60f92a200d5e1ad1f7f48fa54578d3b2f8b0c8d8993dd46d35df94cebf9130c65c9a09aba7c4df29dfe62953d32c846c4085bc8237bba53846d557c058c5842755e57d1128a31043a2faf1288cd2087cbd28fb20a2ba0b6e33a135373626f663e5db53ab2dfde88e17fcac3fa7f091637e73c89f42d5b67748fbb598296190768bc35052097b92791a50dcd3085d356d6da0caf01df1258439dc6c9e78b66616c9624e8151e4d9244c77e2dd14064adf6a6b3853dae13be728749e82918279e3390a9d07b6bc3324355fd2be368e459efc0004680ef5f0c80596c8f19624977e404fed426535ace2b12cd495ca0deeb8a9abe7849a113ff0cc4186f89a3dc27739676567a2437fe6f4bf6a1a478f7f1bf0a89d19373c6c79f05af32135a9477b30f74b0a0114c2ca239f891ca34a00e5b71b5237ee505b80b6bb457b8673d3f1127249d4fe619fce582a628ed321894a2aeb9b05c1f884ae740fa76193dec2bba083d1a848675810034957ed0dfdb95b3f9250888c0038048a6248054e215a1c4257c00dd2228a20a6b785d70a6c675bb981ed86e1d1243d9da06d2bd6480126e76bf3a53553095b9f821805a502f44e5d181462fa6d41ddb383b011d9d75b70122440a6a948c13ad257fd0eafe3c2e4bb85954f85745b189373014cc6dc5d8d138596e3cebc414ed558fe3544c8967fecc91a7308e24771e8735ca0dd11da0c5134de1e274c72658da0082624a70996ea4758f67750c2889abf0fd8428bf53d5b76a88a7b3674fdbcbcf80ccd930ab530c988bbb79ee0639f9ca1636897db83dfa124b78e2970572527692184b7429bc549d38f9f9c8d08e5614941c7763ea4538af031a1186d1b20b4befa56ba13e9f6150a8c38b7a4429ec764323a004d8b3074c290f8bf7634ea90b8f3d6faee06ae0667110c1b60def7d063d94107b80927e8aeeab650f5f80f9473cda63d11fc49ab2955c25b0e6958f7f2280c707c312d163ec6907eb7beffe3617ed87f397350bd3ce287d57d260c5dd88e64837e6576c45cedf95215429459638b989b4a259d2851de6783dded7b5b20d1fa87918a8a210831ae96a94355d539f0b0f14f2e77631e3b31da05e4bf4b93a393676ee8930fdb579a42062f8425878dbeec3b760395969e5516ec29fbf083308e604e3b21fbe8721722aa60e1a4b67510793ebb942731549e45e377e64aca6383758e97a4324bd32ce43fc1e121ee5bbb4421fb5452f7c9bc7357d5720a70fa84b5f9ca5026fc1f5d742d83abb85e28e283585ed6843c1f8a8ee1073a53b1d7ccf8660fbe0373a6fbd76a79a68ab2b05a847b27332520b20d830860452ab9d2f103cc098f48568366517b9e122553ed727f4a270ca27bce2ea3cb022629dc97f32f4697f9b90236ac73d1e10bf30977999e81407362f4eb3139832b3ab3f7db8fd95c6d240501e74445d0e79231c4365dffacc83bec1c02aabe5b1325c1696649253cefb606857b6c2b116b66e11686ea1ecd9726e845880c474d0bb56cd7429936218013acd1436e281ed753ba036449ce56d42d3636999d7c768dff04d81158dda7d2e33d2052ebe4db34fd6da78e96684f3823c8932be1569642a183d848abf348d8991b91037b27b13b4de1825e05cffb7f16ebe7149ec4622fa023445e1a3f4cbceb64fb20124afdb2f0cb9c472a3e7bf10d8f1d78520ceeba065497cca503cd009ae428cb931fe3f2c08632ea0bcecafc5a0ed9b92d71c89f3529604c3c1db2e553a911e9706b694b42b819d450409052a430f59f99552271d520c127afe3337a595b4907836736c88b8dc54fa717d69a16fd9088a5c219bfa23c0dcddc6369e876e05113c17cb9b50185dcc252d04fe3878cadff469236e1b96c0ceb0f9884673d63d7e36c20d5a130f885bfed547d38c6f6ad5242c973745edf1360372526be264d744a2c3376b0730fd0a83fd17ccc81e7844a16931b5d4c53029242eaed1454d2516670a12b823fa64bc2c485cfc661620cee6a98353206c32c064194c54e7b894150aaeab0eb5cbf7d8ba5f453f4f79aee744431d3e535ec00de73c54fe2bb25941a07799f0e4df5c74f9af5420eabbeb0a3134eeb36c43fbc3c1754004364f69e7e18d6c567565d3c636ea007061384ebbd7b2eafc08a67c94a79b04f819ab71870630286efd419a40ddae4649fae0a284d370ea1ef6b074b8b4d8b604131db61105689ecc13c3d0ba8dfe5d0b6f9ac90493dfdcde5bcd0329c59ee9a5df2c23db3561f2cb2fdb5d22dc17316008ba2e42faaf523de74596a9f06c1a846cdf8aa4253c133faacfd91551dcc1e041cc5506a71c6070efcd6383fb7d91d490957ce7077ffcd50a0154aa18a4c341418846978dc9ca46e74e10eaee65007671910c2048999d5771892324aa520f6818cf4fc573fe49ff1d239dafb7c58befb0bfb1e1c1c10e046e3edf746124cd7beaf728bca49a79f0df52c4f6977699591188c785245191c7bbb27e31f5d5593ff02e36a6af29eebc0bb61608ac3e6aafdd1a88d406b45791972cd132cddb150d05b66759318316928a4a0cb3965e43ef8e2f9273c9db5cdc9876764bacd414d7c469ade4c544b47427600806c5e703b0018c03e9605f19d7b817f0b224c5fe3354455d72dce0d4874e6c4b7784dfcb9e2068659cd9ac289803feb98f0aa70455845dea05404c3b2a7aeaaf9cf62fc2111892fa67d4bb5d96b1fe4f03659804d6334e41b09dfcfe26a3c6fc89144be28a62d3e763c93c9cffccf6d0df45cbe529b0ab1101b041bf7720924886b4a754d911182497cd4ea7b32ece314381ed75b8cddce133044b269fe05e0ccf559900f0dd74c5864d8abfc2d26928ba793dc68575edfc4bf31d2bd5f771dbe5cc2be81ceb52adb66f9c4a58f3f190d55fc9460f7ffb21580cdd0e5d321e8eefd47c590a41e0e89e756306edfcaa46e7b008865e04e75fd1a0024498c599ea532169bb5c2e5718bf1a4c7ac521073b68f8ad4cf492a728e6fd78d4c637eb6cb429338fedcc616a8489a79c4ef8ba6fa8c6bb03f1197a2c715c1e4b653b7eb03cfa8483f1f3c1fa8dad2bd16408f1b2386367e57539afbbf073f68edcb31e8f6bc85a9e931eb1eba0c8e8f90a52c28b1ea753105155e281e1193513b30b5e3e22a9bd4960331f1752821e6c1458e2f70bd419b6560ec4457497d44345addab262ebd647dd2315a9143ba90bb57148fbcf0b10792a0c667161af9355b272fc9d8281895dc2498980b568e8d684fce78570422362b63786c58d2c86464e072261d47d21864bbd4e3abc014a3da071e20e9aecfed33ed168ddfeed35fef2a4393b4a78866bd3d01cb7289a86cb6c903479316497059694d4af8d25991ec975cc50d0da5fc190dba0f87e730c200ed79ac8a02824104bed8112ac4e59618b7500744895021d5db6a7de89d71e190e53de52195debb1b98376dd335573cb7c88419a35e99798843ad3b02db59a4b0179f776324bed7a3db63937a1e30d4503b342bdb9c670dac68c7089faf3a1dbf0263bba57fb7ff94f4a91da3ef7b98525a24ae16a54584ca5e24deecbe26a8ceb6ed0723e13fa23f1692b3b2e0d01d57bd1a977816ba9cea5efa3ee1a885ffc151be693dbc426e727a1d6475c174c84044fda5a61c077bab63920a85840aafc391d5d38dfe90ce5da86aca8fa6d15247af77a0ae5525d4d4eba450356a515648ac1ceed2095c8161220f14a514ab09895696e47549aca8eadd356897dda0ff0a85aeea4d3e20ba8e2879a35103dd7eb73c987147489af0927a35a3fa702b5db06de9283a493176dcf1a5b000479781c633d4cf8da3ebc81fc1e9aaf0bab132e81dfcb10aebc128d03fe2b2b0e08a2540affafa5117dbd490cf466c93a517a5f26b12db4770a786ab138a7a5f6f3570a063f9ec7760de6eab8d9f1acc67bc89bbac79fd1ae8acd5cc3f03e91db61f43b52f107ed8d55eec2db8c1f73e3eb7f8bbc7df3d3ec786c5cf9b8b6f862e3ace2dbbc1f73e7ef7f1bbc5c7b1b3f8f3e6e70dc7451f6c0b37f8bfc7df3d3ec786c5cf9bf36eee0b8da4fa6ef0bd8fdfb167f1f3a6d40de84247abbe1d7cc09e816f9b2c6cba60a9ca96c19d850f3409dcacf70fd3961109f06840ac6404511c791d1f61018ceb0b800c2d0c502ed378d7aef699287dfca8a227d92a6054af3632ee137215f8d2ed44d272fa2a72f5c6ab902ace2b20eae82027d855e048571b92dc53f9ca75d3dd41cae2f42572f5beaa70269c6756b5cf44d7c747157d92bd02467ab520e39e901f817bbe365163f9fba7862c72927d058cf56a47c63d2117819b3a6dfa6abdc3d6fab12fdd6e242da72f91abff810a01b1def95b91b49cbe885cfa8c2b43e5e330508abe045c6f4410c5d816c35472fe15d794a99d9d3ee65470dc7c27876243b43c262964265ccabc1b904c1964e6e01488af7d4bacad9a9c47b61b7979d0212f4d2ac77d67f4d8980d0ca850fced0371ba050f3742ccac05f9463cbbc811fb5fb9ccf974e16d1a2b97ee369bb3913f4b571debed7401c0949859af6271a24f8e02ef331c83f3195f1075d5f4b22c11e621c0e8ec220d0a49cf66c5f812e8f4f09e850189cb79a0c96b4158492a663dd59f49194167a3f5d52763311f18faa9705bcb69dc8b3a87548298acd1525a80239c9c094e733d93908d64b405ab7f5991efdf60997b4946d258bd12ca98a9b1ac68755c4250d3601aa64c50cc5da72883c4778df0563ecd594c12edba2063b7f694e6de15627f678a6dc1da509a056b00202a9963e8eac806e46cfede0f62ad8f81d2384ef7920033e326a803a6dc1bcb4f193d5c094a8313b193b63d2e3eec3239fae0185c1cf0de3f55bbd553786fd7a827c75f08f8fe1d8e1b8053d96244b8d852f16694f43f83826f31f4ec2f02bae8050472eb4ca9db5a7f402852135b3909da76c985efc857ac848f5fcf92530e12749835cc0b5fefec3209387c7a7e6cdd5644338142ae2c5fb556cd266c00d52853e315db98b6a102af626c376a93f2b3ae30dafc8eafb3139448b5679cd79bbdae8df7079c6c5d9d4538ec4e554bb4f9e7526d14495d730ff1f6efd6f34177ab8a145b6a878ecb30bdcaff7357adcd63b9fd604ce8234efbee7e9b74e76291f186140ddd55046a8d629ad5918b149625837c487201ae5a8029ad03e0f14a809066e59d94d98b486eb5b4b1e4854d6e9ce0ffddfefc44c9c1f94b9a4f872b9d598a56097e344a912395017a717c1a45e9bccbf9687c40c121cf489d38bd46183e1e4773baf325040807d0778dcc05070ec3f0f138f765d954933bda4d35e041cbe36caf1eafbab04235d635c33261585d349972f7f138de2e950071b2ca4e8c7a4ba3c286664571a54093f0c5e32c1e8bb2a89c4b12c871f5978e541067cf2d06ccc582d286f001ba069149d851c7b1a5f3cb6adf98b62c497088ce160611d9a2ddd3bf09c78b6eb7d42b26a359b01739bc600cc0f52429c2e9a43cc87e93459a9541f84490cc18f424f0ac53ef66058990fa06db5ed85a7034d95a9d8cf0d4124c7f495b797c7444809caaa1d45e5fdf8672f78d16ee49404119b959abf0d780b9734c10ae064a0c92efa4cf72df7531d1573d69f4eb4d86a4b94addf5f50d2fd1a96c12933cc58cbf1244acf776de75aed7050a1998840d939988f44964e6c998b2c80cba68c8022d9eee3256807d9e69da9e254b997ae5f5e62c13a0379c3d0a21541c433feaa012c62cf044c704b22559c3bbe2ce118989309b5c616963ff68ea0def15420e1fd3abee98a4003d512d6cf47b818ce80ade09b4853bcdbd9da09486e19e3a41911b939e66edbbf23fee1545a7099d5e794c1c97bb4dc195008b18656afc8c7dd70b5b2b46c4f432e01109b6d0671f13a3be30c5d76a8344ae6dbea274006b7a22091ce93a24bdfc5d92d08d11c84f39aba7c72596fde82b67118b27769d0f749d89de2a7d5c67690e8e23c0b7376d219b88fb1589fd57c9de3a4bcb586f1ddfcafb5668a431cda0954c1375fc712a791e81294c4564573babce124d7b8d1b404cc21129925a9282d420dcfe2ed2eb4479cf3a9777a8671dbf1de0496ec1b41961a29dbb1ba74aa4acb37ae0f70f12651d9844a7c7d6c2c71306e8f5ec94d93fc53a01316bcea298cd858bb66558204b6a192347c06888a281dc32856c03a29415777ceca2a9a184769257c75c9413581a20db1816b0125685e51d763578d2d479605c869de1e033fbf553f8d405c6a005d99cd714231162500a2f324421f17148683500eb10410d32ef07f98b9c40302b61e2f30af9c1fd3b94e8c5fc53b374d3f7df2e3c7a9259ba1a4af45630bd9942c746e905f6b2940da28d7e2a5bfa586d63b107cc6d37777dfdfb1e0fb84e79a5c58ebc88f5009afbb9979109278f32dcb19ef58d598cbe71088aa407196dc4528092e44a69b8765d62af47781696066ceb400d564a383945ba74f0e62e6887b09446a72ecbe73f042b8e2ad97c072bac479882cb2900e692137bed4e5e953eb56270799d2a9ebfdf2277e30ec5012ffc0dd2b115d9c5817ab59a5f09de8e6df6be7dcfaec2a99bbe52862b72a748cf712cb6d8966a5fcfe21ddf2b7da87c8ba157715fcb2aa6a5575af10bb3fb8ee728ef4d7238bb52cdfc663e676f1130f73bc04ae41d854c067ffe74e27f02577a19952bf24a38e69a6ea52c0b079204494472fd1d6e9d7740bb65f0ee9174ad74c2651694354fa3565af1168b24bc301854f24205e3e6e2730eb91f0f248578021b2bfe88a150d7361f8df14b8d499ee6f720449465e2998a57fe63f09a34a1bc223c557d9a8c305d689d40fdff1dbdc34bb5c7dba2cd137e94776cc39f42ad176b67c3dd18973e52b68091807f266dca2a3de92a3d725839f48f90e91d571b56a7cbe6b0be79bc1cfcc74363ad62995948ef37907d25d9704329d9414a6dffee5fcc327fe810e12e4a5cba038e4d89284e910533a9aaf4285a96debc4d4e594a9f31137e3c182b57ef9f655f6589eeaf2fcbd2aac770f0cab4086755df4534843b34d5b7981021ef30c7ce0fd3c32cf3788f29f452c671e47378c52150084b0936fe2bdee31c7f0e6a027c9fdc0e4ca6e5eb786b084bcf7dbe6f61470c5351188babce3c546c129614aa1220864fe1891c77ecdd8f5175831ab014b00007b4e62b3d6121f18cb449d7771ab8c5306929b5cd3dc23340aef4d09f2d35bd426ba586592702860c1937b2b637a68eaf82b54397ea439099591a6d8eccddf160070003a1f0f5b78fe2d04dcef3392e6f17ca7444ed9ad387fa435d2c009b204c93a1df9dc7c994831d333cc84023993c50d881631647c49a3adad45fb9cee86d1b5885aa475ebd0f0e1377333eebb74b9409d5a326cebfc7c8aaa1de7c15b077325533bc1026d6f8c088e9c337bb00d8e0ad44a7e99ea2b0c30c7ae95698c953bc72a8d31f9169b9470a0e4750e801fd84fed7d3ceaab049536fa8d8e3c74593cd8e2e8eddecb834e6be47a0d78d2988cd6ee73bcb5ddaf364c9fde55198150479ca970f19471a27ba9679603e72c3463fd3f48e89dd7cf4f1c09b5148edcd748f4446667e11b4afb31729b42b062bda41777a931e5690161fb29abe714332b0ee3094967d3dbc45df4b3a8de012b12327fee094414908a30f9b5642acde414fc4703297b988929794bb3dd1a6d1ff96ab7c1987ad8c522b0c3555dd444c95b31c51d9b8229c33ef51ec2862a2c002fd9f3ca8aa6505bcd74da3b1bb8a33b80e9437ff698153583a8355d5d835af11cd7940056d521b3bf8cd7becf6ee344b5540172c6ed70d129ea87ecda432e09dbe56bfd466bc0cf08a479196d86092bb859bbed46656f8f4e5e15ad7f5b8cf04da43647b0d059a98aa9f0bf1e7266d62e6d86235536a338bcedc5a3da372a79d2edadf4dcf475e6c11793b5f95ccb86eb699d7a529bfc0798361018d08d44ac1c9543731ae24a54c576823b6074727b0b8d28eb095552925edac27993d053fa39ac8fbc89934b0a4049ec48b1e1ed8e51e54d0091e53a08cdcb477110ab0c2cca10915246a11c09160162ced5cb9327479d5b50c5b2247f425c5567ccb7de0b2f704a51a602452a2ffb82f65069c58614f5ea6e73e7b295f43ba43e72ffa52267a92545a0981c1d6241a12109300ad191d55a2d89df594fe0dddf4326a162b3a02c8c0b80b057384448b0926b00a622b9bcfda55f1108ec16b3da4cd3bb9e3e83626805f1b3be462517da7f599624f28552425281240cbd68bceeeb62fb20a2ec11c00122f22e7d088f1362b132dbfb84b69567f1e5eb7c529fe12bca56e4816b344955b90c1fe4b8097dee1a5951ebf7438aef4fc15e79cd6fbabc633adc453c564a068552a04c8249bd1751a57191e5cbfa87c8fd69d284a1e7c8178f5468f73c75d93bd93b37b763dd41db2eabd2d0b86f41ccb23349ac669d79c5f664c7ad148189045fd210e051934369b2c4113b3034e7473b29da1ae27edbc02cfd41bef5e66559d980ee4d6610fa07677090da2f6bb2361da8a3e07019300d6d60f1432ef3e64419404b34acc624a094210ecf1179d32295106d5027248fc7f02efc1de552d4ae1befb013aa95e2cdf34edf56a320ee0c951a5c440763d06cfc0417582724686a2eee10a5ef7fd39c4426c3d4145f4678488b89cf8d9ca4657717bcadc2fd6755015acc93c4ebe530ca987e1f512107ff3eff0b1c9f3b742a2f0ef354a45c27f933b18993e2f48414cfbcfa4722b48c066e6fd75e777ca7104a98e02f5bc3a0d1584020ef4f17321e828ab7024d70f0b78197c0ceb57f3dd572dc1d5f462ac3e5e46b49395792cfabc1d3779764c8a4085c43ddf266adc732f461277def32f7fde886b82a14bb968f70346ec8ca6cc8a0cab2463f568c623e889761cd8610033c4078a9a3d6c17222ce6c22612981fcb30b2a925dfb22d8c370784041adcbf6dcaa333ffa53fc35a40e6853223e541a56e0a9cdaa9732f94e8f3d9ebc7d8c54abf1bf6a7b9703134e5ba15a39c7d10092b60f885cb22ddca6fc9edb87e8989993a99fa44515260cf5f8fd6e0352e1ccf753453a5d82e71e367dbe4e6109e9079bdaad6288de812f43ed792f5d48fc4921d35873a9bd7a08414ba854b35190f04cd94736ec7cab82676e15353d418d7a0c635c3adc61a3c55499a362c1f2cf4abe8a222801119f8bb44d898ff47601b8b38383ac31e5095eea47966fae6e30f0394bc535deced7402dca54c80f69ca96e60e252266827d0fa0b313e20ab8540fd9f756481fc642bcde6201fea8608b514d88a834908e8ed2097fb4bfad8cb1b1f96bdbb5c9690d57e9a9e29ca766837dad84a417059fcbbe297a7bad7cfd2d691439c218f7bf439b422a2dc6d9ef3cf65a9497b505a81ca58b56c094b8c47ba0b46318c1dda282f733441c2113e78218652f14354e1300afd737a47a797d23a0746e992dd682ad2a9227f06c45971f5b05e6b0ba19b78dfe181f92da99d5d0618cbfafa5adfc647ae10941b91635d783092db01523675203ce1d9e4a1bcac1f71d12f25c509cbcebdd85f298679a1b4a1779f0f55f585fc648e23e144a10ac08db2ed5ef0cc6d02153f6bc898edd4a7aed560c91fdba537bfd20400a6eb7f1dcc5c222fab215d11845a8045775321afe09c119ec80f36c7be57169ec6822a669ff23a3ec2ced896552384a254c0a8e7f9f4c7788d38098ce389663b1b43c4e85f2c82f922086426c1163e79047dec0c0367a396b9d855e9a5d6d91f9cfa03664201a0fca96a50e8142d51686277a65e840422e338e9d640719481a6b32bf1ef224f44a22c5df72fd613048e9238418498fe34082b9fcaf5242000133e1a0efeb41a555dcb21cf55db907bf38c6e0da9e0c9c78b84daea31c4d1f3055a46aad84092d32f3f90e9ec980ca9b75ed9604a1de7ddfc4d9bc2ccf35787bd7c559e2790b073865e8864b874589e1312a0938643387727d8053d0cbd2c5175f74f041d28688b9621ec6585ed7ae5baf030e885f71bb3c80f6c98670dba3b4bed4813e7b434d3a677760a8095287b85f8e3ca44b1aa906aa6cbf89316df0f876f13cde5333e8b3cc889bc782c8ff8eaa783822240f9608a860074faca373498809e1db1b1ed562a64e36f69d94989cee3288f6e088d0b0dba09aba0d62398233b208ab69bb64cb2d19ab78b6f26f163a43f8cd7da66b261a241fa213b10a57606535369385f961152bcb3b0c9f820618c0577d560b9279c68cc05c9a333f07bd2875408e8db3ca74d1c9e239c57c19f3d5eecb6e8bfd01a42878e1948abcd331915cdb3945cbba6dc3f89b11a2d044c4bd05cf467df21dafc4d02daa7db48d8f201eaf167d3e68b7b2583411d35184c3433bbe9650dd720499f2ce10ee264c0d675adf6f8a0d746b56fb3b6ab45f65f18ab1607f1fa2887dbd41e54be91779b9b7f123b2a1ac838abb72c1e065404ac0fda70dffd70a0cdc75801fe21dea03340101186191193b8e23815b684656b546d0c966672a3acedd1c4eda03c4edfd5e6077ac002c32c670c34ac97c18a2f755131bc0468458802ce601878bc84baf398d0934aea1f873945217425ad64266bc8b94d3e83fb268d230acc6ac5e431aad8331f879416411ba0d2404c7cf612910e8a01bcb9a0de6ea574e795868273c90d724fae1098d4389d8ff4680ac2dbfaae987b04069c768121f029ac692e4e39cda0bc3fc9077489d130e4050100ed74ac004406f5d942f075936f1ea86a350022733f4c6515d8230c5340db2e487f79d7ce2a62ebddd730450af18512793160e0fcdb07141fb334933e7654f66f440125fac5ea2660d61862a8e59943049556c53592ed4c493218e65c1b0c3898a8fdf4528b6b76b7a59a3d13a18535502a9738424c01df6886abf1df36951a8fca64c452ea38ed3f2e4e944b8e9030560792ad529af50a06debae64cd69840900ca9eeb976c57bec6aa938054d7e9752626c00b78c94e292b94456ba266c3ce9f0342089cdaae22dd438595a81cfe1dbdd80ea5115484de8268882b9f060f127be435f24535e0770ffe04f6a593e0187756e79242a3bf2abf790ccfcd52cc5d1f0f8c82508e0f4076ba184136a7478a25967a0f6b8eabcc99bb68100f490013d495a3412b50118972744da9146e9982b4b633e2188781c6bddbebdaf39e799794942037feff925ee004cb93f1586f8f27d474584a5c92349412b768bbfb2ab872bec79301e30ef4e32f0d3fd9579690936109d2379619b422bc25ea4e11a204f384968622b6262e0b9e2e88289563d355c758e5752a4e62d1d155acc2997fa5a55157241fbcdb96a0918910c1793a797a9d32cd2f5f6e8bf1daf97c22674921728b1c44a3bf1387b8ff4bd2cf0f619ea5f0f08f8c4c9de8625b0909c905de54c201397adb0d88c4e27ce25ca5e27d51c35496b0995e9a097a7240779ce9d91d09e9778ead9d458e734ce848c4e5e7962dff9f6a9d00c40b8e0859fe542e16e2fa87edb90552a973bb7148c45a43a07756f72e758473c74c628cd6e333e5f073c8ec494d802fea6d28c8fde605177ff0fc0de9a19b046799d5de808de0c704e6e4255a3f0a2ea6a88592cb1d563c692d222cb5e33573bf4f51468dede6771eaac930b6ab63fbe83a51d54dddfb6a21e14d1b166dda8159704dc0bd262376f1f726d2b02dacf8b0beb46b286b5b7ff4696b431b02d38f22e1c197638a21d8038920369b11a2539cdd7dc1c0e0266be3aef3cc35d800c22dd7c5dc9914b55b7fac2973624fa2a131f731d5c95c0c9692271362816950f71f8a7bccc91cc80bb649783f15ab31bb439d4fa7a0163561058d52e055b2447245006ac56ce4574cfc5483fca3c1755d152fab96876786e6cd0a654a36f98efbbe7cf455eb97762c38c0b00103694275a51b7d0bd54d0e4c81f15e9b5a21525c2b1825db438ce4560247da92503622eaad0915c0d7e307c551b91dc123eee0f47d5255a514dec75642f0b254a7ba9f788c7e525842ff57f01f7a775b8db705a5dd97c87f26e78b3809c9001ca7a442b6ab48b54f1d0e4a07324bbeb1912843f4e4dc4dbe3df235e02e53ee21f0a8f0f30ba0f834e51bb282f3b7d1cdda2a5f6460519f5b8c9b77a3cbb950f2b12ff1c8d0c054e02e2a0dd9518ae04c70835f9c157fbea4a5650a7b526a34480cda348eb23cde24bf835ff7a5b8c505d5d8c94a0c6fce23fe54dc4929bdf645bafb019b4d4f51cee47fa88160e8dd7cc73940050344242c15b98c13b224d58544416f1fd5eebe7de533ea32e446631f0f95a7c809760253c32f3e4ebe06a0f01e84cb9e9795e516726df14e5354b6a4bc666b95a2d0ed6198bc54cbfacb50cd21dfbbaf308143c14b9659012824ca92fa3b467193ca0290a6065de3fede3ae949a35f48e7fca98d2b7ff339dea68a89a3428e51278422e4798a7d09627249355cc2019fb93a96dc5a36f682b1e717b228dbe6e796660b72c46a0ca9367e302fd82d4f5cf0abcb3351f934a7bd54e422b351315e889cbeaf0225c09e84752e206bed6ceb90b8473900d160a5e3741799b10403bf812a98c97476d1075b5e19c00880ae6129e0eaa40cc8ccacf9598f31052a5b1a4bdb19743cdcbc7f329ff1772c6ef1f1cac92549eb8c0fd851cc2f462f784c8779a80ec3ed8e4d4b77bee3f3eddee1908bc5a6c1091e672d3677c09041ddec5da1aadf96e146802f135d92b062c5cd1aefe235a7901899936906b52544dba579a1705afdd61166ac84201698e2459084e6ae141550c260665093f199d1fb38a66a945fb43b1ad8c3f29cfabfbcfd7f967944c44ff9c10cd280ba443a748416766576a2a2142c3cb4936de88453e82a0b9f8540771fae416ea52db96d9c18e47cf76ad1120dfeb9b19bad50dc5b1015447647f4067a17ccc4e3397fc9abe68e9404c14b09a9c2684300393290b9f3c81062c61c5194b8f2002eef361fff12c8410839a2e0672f61301a85102aa69050ec2a492381fc0b318c27885e10be140897b884105b65e0df959a473dbc4abb9b302c03c161dd83a5a31e89214e708f4c91639cea40a9525f9952f5cbc44bd80e113cba91ecdaafa12c5324859119c5e38d29e2f974ebe2f29cef54109b7d7ed2699b1c6c7fccd0beb328d6dcb34f6ee413883ceb6694ed84913062905cfa8fc22d83a2e302bc815485548352415a415e40a21a9cb43406d1023a21fce1b0e07c684c25893bfd590af286efa637a2c4249926cc78c978a9660cf55be28133a7f02bf53c904859574481a93e7c599175f802321270a836704bee4442a6e8f882f108cd45df42bb31be025efc31eb8f631e3b4507949f11f6fef0688d1f2a00a6de4d72342dbbe43c34883724e152d1e03d30e0666818e511e8c381824b39be0c1ecd2011a89c9fb43d6e95d21e4e28f3c6d62e0277b0082d418cc5ba709c9585f68366ca0475101261d72d301c5b0a194bd74fa590675e5fdc1fb2ed4c80d893a8b619e1c09285dd34d23b39b53fcbda47346cc2ec1373151e2955dd5b33ca579cdcea6aa9c355136c82cdd849895a4ef8b0c0ad3f6002980e2e3b065a7a5e830c5466d6fcbc9e41e5976cea7aa7b71eda3c3263d54a911f2191499862d00a9ab11d8b2fcb4ffaa8e5431b5bcaba1194a98ad004ce292cc386acaa93ca01aa4fcb76c09652884120e887d7498451b723d03a374a8411c29a468d6ee3d1a525bcb22c5b8326b9f897b8f52f42d786b14a45e206cd980bee9811fb358a026dd2faf4740502c23d638820bb7e395a8966181b63fe5cf9c7b2518b16352b45a0c3fc43559ed6f13078637669d6978d599d8bbfe48116f2e9cdf9c7bd2b492d31c4220509795d39c18b6ddd2fa5c19695fbd48f61ea4a0871a80841af45a20acfbfdd3d3c661835d1221448bc2e65e30d0088c816774d0eae85192d5cde6042e73aefe2cbde6b61be265611b4429ffde0585f6d50b16ce2746fde36d9dcf210000c59bfa3d5cfd789dd40581e8b83e31f3334c1a045084180b91591b13f21ea29da06e1946fd0f9d067eae6598247d479db313fb922bdd3d5a10d254c0319c08cea17f3d796f28e82894579d97173e004a27ff65e87e933ca6a086247efdb02e9d250e000219cc55cd3d04662302b16ec3e137a9e47907afe057fa25a3663f1e268f33e7280a5fb581af3cdab3a09539d63ceff136b35543900b61e667c731ba4155cd0a902e8a36f2a6892fa7e561ae4c6f2600da1800110ad69d84f6a4d3e135525de78799676018596e180fadef59c72231be0050fc7e226e1ea0c978d42564574cf4e4c71af92488e0d2fb32ae61dfe51e236d5dcab1b5568fd22ac1f38a7bf6398d700c1bab60a0b6e843f39808e55b11e456083be404c13147ef13006a8cf447ba0a00bebf92165b476bd2e6b0b0f09c329bdfe7c0d5f37f38c8f415bae3a3dba0421753e3cacf40b621f46c95bcb530b14f6e03e1d588d15886c05c958cdc8849cb2d971296cffbc484f2ccc2794e01bcd196f9a417a9f73f7df7b8c7b94f585b22af9b4aec48fee674cb8939bc34b7d63653b7559917c54fd6d0a122c84f878a47ca954393ff6a6551d1be97cdf82675861e5163fdfcd2449f5c5a39a1377749bc433c8e46a26e79d8cd38ac6e8cbb811e573922d007223245f87e42205966daf96606522ce225a97005ef80ba11301867dac2fbee0aca23b5923f90e625538b9685a1bb1f60d388938634618cfa9edf19f02d930b791756f7f2ed9edbdeb3c588933d208392b4ff123c4363865105cc01f2d241cb06a22fc73ffb03fb8ab91b362f49c605cf30c260680815716e7919ae8b6d7ff7ba58bb90b93db2314775a5a02d50c053365404d68145f8d2a119b733d01178bd598d77b06598e834d54199169f910215b12e3251126381ba8a071b6fee3534774230058bf3e08d2c51059f4b9d1cb65dba6a0c1fb30b076dcf5f2ac9ae5904beddcf3d4d4b9caeae668faf754dcf6ba3926952d18629a3167c805ec519a3a3ed6caaff6bc77d2ca30317d1865e035bb4ce35d6aee802a1df976153cb77d70ccbd95c0db382ba0b289a9ce2bada33d23187f3fddee96a64478bfdaa9a7dc44f235725daf32ad6554c9cc80a81bd61a68fe89a806bb0b08533cf85dd5a1dc5d6cacbd9abc191068eb81f03bd3638bbed35a1007e157aa00e751531417833272dfbef105c1c39061cae7cf91643223de172b378bf6e5d02f6960b8c881634ab4637cfdfed8bfd02cbe952fa3243b30229b79f94358c64605ddea3ee948e8226784be3c516b200b685b1b6dbc46510da4b6a5423682b19a7505908f875035be9ebcf80800f4620e5c8522fac67c0204b8b194eac37fb2f7567b111fc5b8f5a1a30ebc208e042acad05ef12d202af89186e5ab820737e454e474a1955343cad023af0096554205e914d07b356705d09f39872190b9a8cc8b7af7bbc56896bae57a72d35e65823cd205823ccca296e49fda472e662d2a5cc405b434bae8c1ec589680120c26f1b77824804bf598b8896b4bdf7de724b299394324d06e8055306403d8da89029e4e6266cc7c155c9668d6ae23789524360d11c02df4ef1560a293be2bdad82a9c9da248dcd1ad96af607993a0e0e9813d2da73be22d1bdc7a954df3ac87cd1b629a37e83f0f82588d36d156f978e50981d038dcd17560a29a36ea7903434c7da82e8705747477a27eb3235b2190af53f384009e2cc06acb2c7f64cff8135b2425bb845d12485222832c49d59834371557be5aac4d3b64aeb4101b6ce6db3a1dccbb280d1daa81c19d05450916dcd636d28a76ea7903ca8d1222175211b808602b0a0ad79fa26311692c7dabc9ea0ae20d36bd52069a857a5e6b16b9816a979ec15420f6e4434cda0052857884cddc62153a7d422ad72cd2259dbb5812dd393f5cb59a14cadcd666db3dabe6da4a370ebbe3514f3bf1b1d6e421b1e8e959d0c25acfafd9484556f384856df6a43918375425aada113cea0309ab413d29aab3d8cf4d7272c8c9d70fee549836873df9aa72ad55b6e11d2aa7f3bb04696094184586face15cfd4548b3dd2841288c866d6ba130eadd5b246c92459a691b84ee5499f3c74ab11e56bf2dc2595db85cf4a87a427152e115a1bc519e07504f5fcc6cbf3e416130944018218ee1753886f53bbb1151e22904c54ff43a2c7257b4a2288a626d914e9c93752fa41fa041ca88698d90524a29e544c3156ea8b5d64a6dad265cad235db2429c7404cd99cc1a741cae19739d3187b999b9cee7f4ceafe78915832a0ba87266b36b6ddfec9e81c1ea0d455b7de2303c557c6ac2275b6a4d040371ce9086128788359c6d74c724d38904d0bd20759b45b162b062a0ce6268a38f00f24420cf45d1009d94bb1b0988cba2e701c9ecb937b6b003c1b9e79873cf39ef9b73ce39e7a4218e307bfe514a29a5b4bbbbbbd65aabb5d6de7bb91083de8b47889c63100c41c719e44220120f49c230e440e81fe832fce148fcf45c26f9206616a91188cba29434a8b1d647b94f2e8a27174f8e1a979ac256d91391a494524a799b73ce797a250a848952da1648eef6eeeeca546bb548d3de5a1dcaed35791a4fa7179144cef109258ead209c45e74006bd158433ca71468d350e04a1aecde867158e3fab0c8ed708d6c348fe69a22c59aa683a842131e816305a0cd11bdd3169718ddc29ee65838c65216d6e13854d21776e1a248cfafd2e1b6433916927f513240ff7c385643afe8042e67e4caf7133ce072744a6ce09dda5e6e99b4553d15d29786fb72948bc4db789bb378bcb06dc71dcc97244570649dc51153ed952b352fa14a2734c1521d67a4457da0a5125219dadeb6cd30bdd110a85cfbf9cc6bbbcc6b79cf6d67f1e7b8ee7c1e9910b22a5809032f281010d70c00372f0e8b071316379cd0af978adb68186d7ea196a78ad8281e6b5ca859fd451ca0c29a61416a99bcb6a488438180250e94147662626e7c5f56e3c72bd46a1b08df4480fefc3889597eb781f46d0b810ee6304f61cefe35d08ecc383ebc47c07ce2e7f81d37217374b48997aca88ee70462810e40e6705093b6a1ece963283e4c1344831350f26c2425258c81d5c840ce633d6604e63ac394a8db186421b53473f63ea081b9108d1efa36083aea7217e970341705a21d6fc28f60870993f80c77c017ce60d80f30370ab00977d02dca6024ef315708c006f0d4026cb0a484005868620fa016400df0a72aa999d5035dcd5f1f4a8881a758c9e428a4461a89bcbd538d7ad977906860054645e2561d7671e45c2aec7bc4bc2aee7bc4b9a8b65ec8a12766fe7fd5f0a06be5d2aa4b1fc43c59c4e9c18cb28144ee968fa44b1ab71e10d780938033e02ee03eb014f01984e47538e5463174d1d8b02df0222c4e808690525a0cacbf09a6fe1b2ef6278031e026ed31170ee5f72e8c8e182d53a64c4b00190a4162b187231b5985e4c96093331991075e3ca51df1e745c1f2ed8081b61236c848d4e5a42dcb3a0c43c25a4c9f837c5189ae3fff9b81ff3eba90f4a87a0301f31634b88d262634b0808dd8190d72ba4ad7cfe2fcaf180f7d1873a4685721029bd5ee1bc79eba7b3ca095e2b422d9cb115642536b686627fc3655e078f7900f8cc07c0733ec871dec6ec81dc1f87cb7e07ffc15f3fdcb0810369e8876f09b574f8d61001f8161100bef523e85b405a41bee602fd58732d3e01b97f3d2747569ef9221d3e4e231d63098ba652c794e692cd369b2693eba5c52f6752d14472f1c0cbb9b840ee4d5e5e20f72b151322bae3d263f333fce66538ce772c7fc04bc01df01370ee4b589d8c5835af80685bbb650fb51c37bdd6f6b14fc5bdd65adb755a617e293125a2523a509e1624aa92944baf417744976e83eea05c3aa63c581451947c36877448537949094915626d0ec94518b242717a72e2ab139be253649df8ebe51f760f599ce5e4a37f0b76eec38f7dbe3d718cbd4588478fce39c7af817c276e7d383cc79ccfb1d6fac6203cfdd6aeb7fcfbe6e41c777e1dbbfdd63706753e1d3bf8b5ebab937727c76e67b8c3cc7887994fce71e38e9ae232c471723c0271f26e04a2c577546edc51334b8bafde3b0cc04950cb58298c657496e3b1368e92c2de2b85fd58dbd179de700f5d8637dc43ffda0872383dc41f726e6fe8d84367858e9f3a77c71acb77f4cf89d72a5e09c71567ad38fe95b1f6b1586eb1b3dcba0ab658c5b1cf31f439b6824e7cfa89cfb1e6e5cf81f8fc05befcf3d789bf5efef927bf06450de4e975cea36b38f4f9b51d35bfbce5dc7b6006d1009c0481fe1a6b9f83147c7ded7390e2e86efe9d7e9bb3ee72ef81f8dca47370865d3702f1f949cd8e3b6afec697ca8bad957f218d9572e2336818b4ca27fe611cd250fcc46d265f9bd9641e31713c271444c4134a5bbad16c325fcc264f823c979a6726756c26ad9cfab451c963b5e2c03944f6a0302288b599f404dda9cd2264eab4086058f4e2252fdf83c648fc23791e185bebe058231122791ed86bf2d6e37b013f3f9d425a0f0a9b8f7978df581dbff4b956256f77310fba43226db5d82bc6ce8d2e3c7aa0927ccd5ed224829a4c2e58e241772676a5997b080d41846792f5e179f86be67e4a89ed14ea91311e6b9df300ea4161f4149e401cd843f069dfe90bddc5cca38775cf2be579a179a314672f1863e7307610bfe0990ac35388c6e44d49a9266f4a995279bb354d12b450af8237e5d74c4b36238d85d287afed3c1195ea5bb5574949c9db40109d85984f9d838d4347f5146da36410ab57ce438124abfeb15f355f607f49a52a603f09e6516baf5c10045550cc24d68641d47a12562fc7dd7bafbda730565d45c66a4dae2fb90639090bd81f628cfbc1dce1dcb89134d53bdb4dd7752e60ff97719e2715309134d54d408ef338ee7af75aef05ecf7f27c922f91b2eaf657295256ddfb96a471452037f64eded77ddcd799d44e8fa5cc03ff642d682d075ef049de842563d54fa38c558fc9d571f61e4b598555effe2465d5bf17a5ac3a090642cc43563d0c836818c35d84f20ff4ba2f12c7a1990f6aa432860a83c47e8b42a1509544caaa8b28310ca299449cf1ee4db52509836aeea7d9b347ec929581d829bfe1db31505853ca414f74eef4453e84107d52a3a4b1a1998f38aa6c2a58596f71b1b6296ef788a32108c18820f4ed02e1fee0fac0e5c5daaa92a5a26f55a90ea943aed1ad489c3de08178ab432cfdbcfa0773777a564161968900d2c7da3a46fdee401c2d0b1196b093926e4b11e2f476e9979056c7ab03717a95557f0983e8ac39107b084cd8474730ebd361604674d231ea1b0851c788da4848cfe638ee7297ebaeb50d6b01e710f13a0cf87d58ed7c979076bf17580cf83d786b6aeaa116f2af16067eff6518dc160616e3d98c18615a5a5af16a63329e8769c04ffce9937a8a7474a4d4b1240aa33e60f855d2802e435ad8237fe087ddf3f04ba55a19f07b6c67c0efb97aa78b06bccf7d20b74b58f5191a59434f373738d64430432303bfb7dda3278f0f23506ebd9f06811a1d4194d2a66975046bdaf67df52851c750435488adda8ed058f8d319c925b3e9968b35036f5c2036f66f4a7a73c0ef69bed5bb42ae63ccddd11ba2712c9a05c393cfa03876ba45b91dadede2c04689106b6dcb36ba53b34819f5f6c8bd81487d50218c22d623ea11b9476b03c39fcf75f4864eecd08df5d91223736da6d4723272a6ab5255e2c6bedd6e99e66e8686bb2d982c2ccb9bb5ddb8efb2b5ddec404271c7d58bfacedaea7c21a50c3badf8666dfe2c4a7c0c889dd215b3c97a47f35ddb282cba44b24454258b64837c45a2f78f7309c554346d4b10696e8b80d2d084ed359c9291a424eed6dc6c831041aba3b5f1409cb27022cd4059d83e0b8168c6f7deeb971b67b3b0dd2604a235dfda76efe4aa908d4dd87e130666b8d7dab663ad94881127841b42bd465548ad5748ad5748ad63f55babb5b55dceba97ac1032923d97f3c06abb4349484a50406a1ecf8812ddf196a02077bc2e2081ee7d2e04f601dd33d23c1ed312ddf16e5d903b1e1612463d0572ba80a979661d9b42148685dc99279030ea31813f66a0437dd63c1f0d64bba073fae1205317458987a690c54258084f17c89902f07618fc3ccacd6c12321d7a953c85a6d014fa6c1bf0a823669f10ad23ea1312ea96a873c95a6bada56eeb686b5d0211227d6ff7ab6c77adb5d65aab135cd5d61637a89736786fad9cdbd1b96bed51b6f6a8c7226aca5b5ee5ff25bef224ee2815969589bf58a71498981798ab25338342a15035e5271892afc5bd3967cac5eb8db9b8b854fb82899d3ca4d5d09d058542a1502894a72a0a85f279f279f2ef546be5702ae6071111ee4862430c0d755e09cc73c2a702533fba7d98242523b623148674446fd5092641307ab1505260625e604988262f564acc0bccd592994955150a4d82c8745a82158bd127623ea968ab92228fb0261534e582594a695b1fe92abaa96f242f302a94bb040cc90ba66d4aacb61d69a65e62a27e342a8ad42898a7d206e5aa5545d59290269aa46ac9bfb372cc5360622eb1a74280c0a85ea6c0c05495546d4249591dc141cb8b9512f3024bea5810905c4e08612f3129262f960a2555574540151598d4134a4adfca0a4c24929454c493abfa62491594455d258a7431315f9986b05215a522ad5048a822f89dc48d6a105e4814568f4e641193172b25265555287789d4cbdccd1f4440766880e4578a626ef24530272531af29967f31540cc451fd5a14949cd84b1f944985e8028342394c4813fd83c1569595aaae42b938b029286fb72893ba1adba644ad5596aa13e59ad458cc0b524daa446a0c26468f502bea56d4adb366c125c624555757099214cae738dd4a0aab49464646d5c8486f0cc171140a10d479e1e2850b9d9f8129b1a46656a2aa2109692525aabe2149d594d4cc4a48babbbbbbbb6fd0bf5e661318943351c5949480ab58ab54a149af56a713b0e6afcf5ea75b4793c9d5c1268d4261e9743a44d8882643c5ba3de850853f5f1222cbc5f27215956faee0f0f07a3a435ac4c3100f3dc6f849488b71e1e1a54f4cd31f1d52a2221d3ea91075b4c4622e3a5efac4461a040815c2c232e6d0914347510ebf4de4703109692a2f395efaa8b084413dce37b084f33676561259567e629709b105a64500f454d2b4c3c0307e79c1a8c05a62b6c944613019199571868526a4a9b4f0d9cbc8c16f3e86e3fc9df9171ef32e5ce6bb1b63862a4194a1e9e9994350d8504c0b9e9dee850b1dae09e28c4ec762e9c09cd061753dae2835110361b19a8eeb1f9b63c058488b9175af8e71e2e6e6e6a6bb5eee263633735ba7d3e97ef48c133939393876662f97e38408ea3491f3edd4d8080d4da2b1058e8b15171ad029ea21e7eb015f917319e268bfe38ccb84b499183dbcf499e909837a84d15334a36302e881d1c3c3e30254f9be2c1dcff94e87884e47decb9a1c0f0d0386947137305ecc18e167686e4f19191d3231aa143142588e0c9d1c786684342688b986268799981c5872383159e5a02ac92107ae67f58ed2ae3e012489cb71d7268954e972dc4582254af24aab0c52f7daa3a983a139e79c73d69e3d8988d324db6a7960adad1c7755130956586beb1d72c18b84ca83aec343c4e9b70866a8ddf7de7b6b4b6839aef33e303c618ee3b853087e5e37b6519298e5d581bd9c7f1cc6dd9ddc3ac871287d0ac1709428ddadfac08fd679a7973e5dedbc8ebbf6626fc773da20a1adeed4566c67d870861ef8851e09bc4ac33543d250214e74d88a8ae2b202772d0219d7492832d84c515397b2a61d824c9b569f3a486adcb1681870c75d1867f3c54ec950e71cddaf373de7f2ec686e1051a80aded5f33caf2bd7597c419774075fd87d1415a8c2d8db04dfbc1875eacb7560681d759af1799e77e1fc3e70c2903367fa1248eb1344b7412bd6ca85605fae76de67437086c7590d967e665cad84e1ae86c0c3b86b713f673683c16a25aa3a68db579c41edab443ce2c9449540959024a7ec992f3ea7143ba5f493a0378ea0278869d7d12388d2a76339253dd57abfa75266dd03adb5d6ba94971ba7acb6059c160dd4a9743a2f501b63ebf85ece8e620d663467abb5d79680ba6ca9f9d3ab84bc4c90b708524eba4412492081c4bd4112905028d082277b91708479c51095127cb28506ae9355aaaaaa131ceb655eb95250602e2f56a8636368fdcc3231ad9613c2171718caca95527292aaaa22e0ca8a482429a9882755d55d5f9928ec55a4835d9112a4e4a4de284c0812aa082ef930abbe327d1d03855d4161b72694139322abaf405c2826f5a8e424b552c5ac54aa9995aae457485c545474545e2f95aaa6c008718d15c81898e80e4a134a15a21a2b10d54a354b69579faceaea8b60dcf5452d0efbca549b6e1d13b23e28ac535a1cc5c5c5494cc6a217ff60605430aa17979655aaaa9438592126262626264bf454072840f1048581537efb06bec583f81bd7c0db78065e8663e071fc029fe316781d07e277bcf63c5e8187e13f7c0f8bc53533598c17ed03783be3dd73f81577f12adee2f167bb7bf60ff09b7780cbbe016ef30c701931de7de721e03aef83e7bccb71be0787f132b3d81efca2a679fe52176d179efdde3e2dc8f3d76b38602303877234a4bd665a6e6c64d8996c723e0120936d77c7802046c5721876220bb635979bc976743c583e9dbc9ccfcef34130b22610d8c8c0b19886c7daf7c5b95a7e07c7791a9ef340363a705d06cd659ffb5f320bb6359c4fb6b86dfc0a1290832ba00a68410c36683244ab810a7a71ae7e971b1b1938762663dd562ca02b080564b92fb7c9ee3f03c7fa08b95e9403723aa17c86d1c3836b62bc98c976747264b31b1b19384d88d6ed8cf3957c632303c7b686446e6c09cd3e017ef30870d91fc06dde002ee30be03c9fc3779e07d77905e03c01dc5e121517e7c2b75f2565f2223971d97e5666b1b137b29991fe146be23c33d94e0e4a7613dcb2ca2c96ab4d609c7fd5f09da739cfdfe8791cfee26d388cdfc1633c90cd6797f9f8ac24b3585c73816c5025883f2d5ce55df8cfb0f8074f1c367600bad1b41a347c6e0ea271cef3402f6cc8781fd98c24b3585ce37a0559dc4e04d97801fdd02c6e570d1a3e796596dd5b5219e8677cdb3876b86103e8677cdb9873a25dc09617c08d1d9ce771d800fab136807eb2c5afd72bfb0703593efbec39bf7997cdd38861a3e76fe0bc8ab73cee5750bb8f3f7e7ed61b58b7201b2fa01f5a8d9576d1f061616181015b1e87e3bc8fe7bc8d1bce53f3d77b388ff12f19355cf69efb4f99c566a01fdb36807e6cdf3cc8be2ce69c70c5c018cfbdf8eb3dffcaf9dc1feed8b1728d7856097a29692c76bd58372762e00e985960f4f0605b33bad00b9d5f39324a43aac993723e961d1d3b93c9662d1f4310fd784e66e446dcc2c2c265fb3d28a0856b9901809b652f338bbd99b9aecbcccc2ce37cf69caff1e335afe23d6f03c863bccb65bc8fcf3ec859fe7a07c95c2f1a2b7e1344848d1790eb875683468ff9596f50e12ecb5ff79fe13172d079ec35f3cc643b39b26fb16eac3750586b6808ecdf12ba32fea5e7635ce55d38fe16cef331df790ce338efc2626f6c66321a999abf4e3323131383c1bcb8e071c5e8c2622adc84e9004c9502465b9e73ccb1586e64dddae2d946a0e8c64492820c49dde0065c0843129ff49e220b68164c20051bb24ace6906f9052e4c21051452c045a494734a8144f641644971d449297ed0dd5ebbe7f527bb452972e075477c73ca49728549274d11a14d5b89ec8398926b48f490aceada35044f43c835ec46594561150b457033f8ba1bdba04f2cc082102d9988220e51a4a10b0306fb3b2e701cd7277ba47621adc341cc2c7aa2447185eea782b46a9034d26609b589a4162091a750963c25904ba4610a7906e0bb3f547daedb3780e843822cdb5b415eee3108542eba75acc9b1bb6344be76d9a29455148657545eae162b05e5c464a52a214989a853087e5e87b96b6b53f983f8e51ae8b5aea0045935f3d5c294f304892890a80d7e267dd3272d2206a2af8652763d416161ab356143f6415ce59a9865196c5ec8aacb5d4e944cd8b8907d1055b9f659fa9dc2a3c2acb572b8045ce2de8bbb0f0959353baff34832f51e021a799ff7a532b51551c32719b4f866124a96492c68c2fcc04ed2d07e1fc42c99886289ec8388cad2b92c99b0b540f6c81ef965c984ed045925fd0b69492c289255141644cdae9016c4cc22879286fa17023d0692197c0a88a74c43d923a7ac2990c2ba2c99c0821bb294de0e11057dbb9b526b6fdb7e82387b9c75cec971735e260ce172b63677adec968e90beae34cb963e6eef4562bc3256472b69ea155cc55e87bdeecad56f696e74ff72f5b2d7758b1c1816b7bd5d9df3ebf9f555a2a3f60897c398439975cc460d1d60b468d12fa895b3b45adad6a4039b7aa8642c1c38355533020000000af3160000180c08868322912409125d9c1a1400126082665a562a144863912086411c0632106390210018008c31041965684a2b5044f21971936d96189fa0d60c63658978a1e2594459aa95675636f9a096b245dde85537ce538ca1dc3c94afc4e81f147dd70b632971da20ae76153d0d90d1e32588125e310c1f018827b4440160d7048250e0f366c4fa27eabb0d9c70f9defd5f15a0208a6c003e692b0f5aa0b6e3b88a5397e6fb9da41c42c1125a2a36ed9bc626ecbe729e7dc996cb8c5f59a810325f98fe78ac203111aa1182347688ea792dbbbbeaeea222d59099ab3cc69b13a1904f349f8d8c680359c28df0b28b11aae51b965949065d3364118f1f064a79a9da78f4d97c2171354bd3cfc5b13a42493ff6369a222d29a583a1be455bb4f903f08779132bb58e50f4e326990dcacd86827d4731323c1fda9209356874684a99504a8bcbea429f7fe797614635e5aa8175ef8cbee18f3f0ac17c314d52bb0a4536accbef231aedf055a8fc2f72bc5ff8c5b0c102df60a6a06241ca599f80a2582d11ccb4352723a56fa361611f88cecf1b0b4970995e5fffae12160afa1e86b76a299348c20ed1a5a729bc15d5b920b6f36440f5a1114c5d3449a8643fdeb80eff91f36ca13478589060e5f495ae328bf4b073dbdb3c908382de42e178be887af916aacf58a2e765b10aeafbb1c04a1b055b7cdd0a51c25a9ebe4785c55072372099df0ce534d11f753cfa97ea00527c4ac8d3275e23f575fa3d03290cd88413ae29d439ffa2cba024ce1456c5271cbaa40229384c42da92d0cfc5e82edfd8e50fb3aee98467989281580e1448b92252651ce0f2e9fffdd51407e87347c1e8530de8f9bcea83209580b7eb04a99369fc586541ca2328f6fdf3adbdb3287d3e832e9ef05fe914f0c2fa35fac2d38975bfb0d09a2b9ea0484aeb4268a1246d3221d66b4811e804410793cf22464f0ccd0b3a251cf9af02f80ab7b5cea586946129767089ab94318c9b64e88a6112c5063c624d114370d20c50e11273cfd893a634d409aca829dbc06d49939c0e784b7c2661a028a5fd34794b12a03556a48ccd94d7121ec9d233c0f9a4b20ffbbe53504ae396a5b70d6bca32b0570a0e8fec15d5812e44c7e1d67a916af2dd534911464aae9e81e508acab1ac836892b8de3b4ac6791ba24b656003a42b5103b597c1df0aa64ca1146aa8e02881c365027ae55e4dc6b7c18a423fd108d413e043d349f0039de086ef2389f6879325260b0bdc1ed8c1405e3c221b2271c3300d03352f8f4687b5a804c44ac231c746e2355d1a73e04bf6fb0471f5e7fb72c1e2f9d5388798f43db485555148c9a178e142f41dba8718416a71c1abdc30e82cbff86d48ed46e29002f52ce2345d80ae33561b07ca4d6b684f3e6fe48bdb828feaa7ce9a2caaa1f1aa9cefadf3a440ef8744192049a08d8539054da732129632f0d83d600702292e2d10b37148ba47691186d936615d68887a22c928ab9e52b8a3e378ea442cb01196895c39ea5f45bc4d36bf274e807dffdb2e1e70b902b92d4c0f76d0f3f3197466353bc2e310791a438006833c8306f29fb358423b759325f034a52e85a47f6f8c92dfbaf80a9ae98b4e137f4869d2cc63b8098c532365081ec108e9447591b25351c9a926285c32b4e2575f624052b295110eaa1bbc2bbfe032ba9855090693284e1833ec9261bb2e3951486803c2134800f700fab4b2e40805c17558f7cc527b15b5202da7b26e36f048acd2d294123952dd1eb96d4539f25d5440cb6cbd3010aa5c1013e3a951f6e4911372462812e297b516aa69794641711132cabda11ef9577d16672edd7af96b8bda4006ac5108629118eddb1f33861523331bfe38a49153ac6d339981453a078a557b2284de2594a60f2aa7ccaece1c0b4085eb5b2885e0e5f6f4cffab1c8706c7efc006d919594c6a56e0032a55e27effcb88048a2503c21a02d5868c83391b193866c4418dbf3662c7400ca61f40e8cdc2114a77ab7551eec4516444ad93f1d7da687693c39cddbc9ffd04aecc8cad239a419382f9a413f99e81584310fc5da2ed0f9b5496cfa8005bff166a0d2e330391b599779749c5cd92343215739372d2847837b6e7be8e0d2ab8d8a4ecfc7ab1bd849e64eabc0a3046f27bf8bb5aefd9afd779e488d7ac4e0179b3424638dda478092a68cbd01a9e4d2a22dc4dea39f5c5b79cdca3212aa926b5fbc4ff0783c3ecdec90da397c56922e24a0773bf00ed26657d5e5d6741de65c4437deefc53df199dcf91abc986d12b6552468197938225ac27941b94d584725237e3f8c38f2f78c65db417d6c8f075e77708dc7c40af33a8b5cf7e474b7af36ff2f74237b59d97e9e265b5e2b8aa19859dfd00f64e90516d27a5a25d16db6eaac356ceead90346da4975d1db844b4fa99e69c6b01a8356a66327b7dfc6d3d323101cccab35d0aca856271a79e149ad1e601ebeb4278c6109972dc3937ac772a5eb00f8a506195e47ade55dcb3c29c5e74995da481c470d382fbeb1ca4f6f45033761dc36f5c8f57f52cf3a6da6bc8863920a2b502a5510470af3b089506aef1decb155508af10103a1d4ec39e36771a19422c3b0303894dad64a634429c167d883a2d489bc2871fbb94d37e2d4c362c2cf0cbf06948eb08f529531c568b65ed1ea2c0eff7f4535de4829c41eeaae377392de32b0d06b69312952395c1209b7d8f489d34f311a330ea1464ac14aa2caaefa4cf30718679569f6853c4bae94c2832d6b9c7e32441bb6c9875c2935a4115b8b9eb04d1be69d5e2eead738a7b62224c566af0ac71680cbe138b2d95b30a033a55cc4c1f84da953d903f0818280f34a7a8aecb1dcd18f0e0dc8c737536ad16fa466a5eeb5f411de1f80e82f1ca13b34cf31f6004b00d19c48deb97e520a8c60534a888cb934231aab0d78700a2ad5fc4b903fbead161237c04b542acdc076ff5dc4ba9112950a1ac6bc8bbcd20d58a2521f232abb161fbad17d8af6d44911955a8f2fcd4b75cb01139987362d952a26af4a610767452bb54dd01f032626b895da8bc0683de535c7e24a45e267e94151e96932f03400a3335738dc7a1af2b15ca1f67d853a3e10fc0e4a39517bd489fa649c1577a7f7684ea232307c4aafeb27da7fe19d788967dedb2597622c2a1fe792bcc0026e6017cf745abdf947dc7a8e7bd4847c74da2dcdaf6294428ba90f513cd94493dad4b4b39f750679947065e496c10655a3607b61009608afaa9b4cea42565d92055936860d3928c29e2985b5a754988dd4524a569bccea81166111a3c85837af14c7c0e3439ee81e229d028f939d2f879222c1f0a88a3858749ea456e5a290c1ce593a3b7bf68d2946aae4f7029e4152c1fc98cc5ea947e0fc07889bab029b35cf447ab8cc0cdf9d038c68051bfb08fc1cd912d0b0484a4f7cbc8807f91d6e90b879d397ec7b35078ce8c90265b8a1a67b62972924ababaf7a081c50180b7f05f9bb29c5cb6502b8b333167a5ca19703ac42d59719fafecfb00b5c82b0bb6901fd7ed164dbbb061e208408b387f8de9f9dc80118bd1d7688f4dfc436c6567eddfb50f7334d08c5ba7520257e6f45f40df7db0fe7feb43de4664b21b240178051c48f58ca5adffa2962cc2cae086d5c8ab50d2db0ec49b89d44b16f3f2d0c84801c8b204eff314db1e5b5a0fdeb96584188a68895d2fc4b997ea9cc3fa33cf60d0454487d2806cc89ea647876656499336486b907c439c30b26da7846fd53b78bf7c977f996bd0482433db5c7609305b7e9bac617b2ba91692e80b0192e98f0c8763d91add9e5f7623458b23e939b687d10259c98462b3248c1305699490283b1ea0c52d88c556790c030ae3a831486319529431bd61226c946b2a75f455d2495941f41cff29ff9e2b7ecf73b0cae1020312ecaa288598f2b6abfba5783f38747b420c96452f279b5ce6b997f83106b33f8ebc168829ecc946fb90a6929d1d3e5c75f1309a060784e026ef5dc9adfcb14b1ff2770695cd67d1fafb431be301c92abbd67378bba6006cddf1c840a91b50a42c61e8c689535495f1d9bf6985e80776c22d29c19b5e48ac96ba5fc8a261f07b444490c406dc1603706f415b233fe2677fd14f5198c8e3b2819bff31d167e469765e7002fecefe9a14f207f3519224abdf02d4b30f87150a2c378e288d78e1c604c68aa8a76bd50453faadacf3a424a1a030ee895bebd9a1b4a57902c1d90c27dd8b5e20f343746514d572225479c3eb45b88621f43c1f8ad59166d276747066099113f1182d88609840b8b2bacffc6f99e58d7d1097dcfcb0bb79b3d0a1573bc9156942765c77ba50a7f9b157b0dd7e5524332e369f6d18d32e5f677ebf6b080485750cacbde54227187d395e446815fb4f3d736c29578c965ef67975070880cdfabbbb660fd26f158012b5ae442c09354b4bf442276ea6f5d3d24a135e768b688a756cf470d0b77d5eab13e1f06a7a58e559dd6e47d368426b751f832eaa32e1f6b8eed2745c8ebe429160204c154b75daf1feba7ce2abec75ad663dc39702f75d5a3d7eb528f539882e06dd6e64356ee8638a4d98c5176c88a59d44d31ae77455000166f5fde87d48aea8421dc51c748b09e57b3f189f4d3ccf7e40ca2f8a8097ec846fb61ef56150f649d31f5dd50a9914c219bd642f75cd25b358f0bc5c0c321f60aea3bfcb3fbb6474498518be4d3d9aaaecb6fc49e505ad7770cdbf59eb458df2f0ae1d7b715cb13df37dbb4bef1644535193a63f9c2be79f0e6d863097e67cddbfb78e5cabe5fcb0b3166c6142f1b7f3f97380e90e9c401702c12ecb65975f25ab44505db5502007363a985686ce3fc669bf85e2e72ad5d88e311135424912fad22024404732912386e66847d0b6e6e1c6e2ffac016847a26310703a5087ca954c28667e4ddf8eb4c43c91709d3bfff918868c071721d1349b00aae3ae70e309716ea4a060934e39b08a07bec5896bd67c0ded3e35d2102a997d2334a5cba7a059d958242a0fc52b1b1fe5cc8fdca458471240aa5056ec3a59fb01718241ba0a8c2942c828db694084fcfa375529759d514a1a6409b993cd85325490893e8f63b0f94a03361add0a2a3b02390ad8c1c7f0a70a71b9a5aad0029eae681f26b3b773728d828ac6e2566d617a4d171e6e53c90d9acc876b248fbef81b4913e717c11a10b56ab36c07863d8d18209d0a127ec1339867d9dfc2b9c228168fc0699e8e1cf3501c6b186dd49037f9a889151a72b45b51dd378c56840c6e73dedd8f767873ded83aa3bf4b5fb17dbfd6b9bcacf8a3e8baaae9875a48154617103894091613df5ba6436b53df7958756a286be69c38cc93d6a4df4492dbc5b26c47578ee44e5416165d41fe79214653d8b0a5f97d888cb2be3c4336bd1b08219358817089d89a889ca202b2429ea83284a665854f13543556f4f9218754e18a3f299807a83094686843ee87b6e3286a18854406819c31d494c7452d075dbc3d353144033260696ec1aa20e10c37805903f37a63e1131a7897a2a014931400cc95617cc46f36645126b4318e2725d48625abb301fffa9eef0d8e6798f6460360a12e1fb9b5410c928c600c8cd27075534a5abea9e7598c9589d79f230aff80569e74863529da4d67b7d6185ad687f999f142607ffdc1fd98b4dc2ca72e275018ed24541093c5618aca9a3618746704eabacec3b8d4e75895c402fbbcdc9814c65a6ea706692b1cf7311333f149f9550998127a184979bc54cd701ca645465e6a3f72c7f0dfa4c689799b78b4dae8da3e0f480ab38342033d37c132cc7fd4b715698cffc3d0d89187b537a9366a627fbd3d22914ac7e648d33a365818bdb798645a1064060a4f0e43b50e7762451ed69947b3ad2c6508cf176eccaf4aeb70331a829b4f1a49a4e99d6eecbd63adcc9a85c4fa56f574ddd651d81d2e24eee4389d0723586d83db6092d6f59e2ce9287f2275c2f2cb62572679a6d6733b62bcdb7c7e1e254c7ab943bf534a2a533de8145d5365ad9ea3418457fd652a49911ad4b98b8a52eba4374b9197c31c279a53b2997e2d0bb75c7d82973856d30358d1e3e8a2652d7782a0042f9f3f4ded5a6f7d636bdb7b2a87bc416c5fafd45263e6da795bf071197f0f25524c51568bb3decae4c8a036bfefa97897df52a700d2b60d47d7f2be9b179a79c50312bff298acbc5db97cc0ed0aca7a9073df9dc5e1dc0bc1b3e00afadc840aaa0f865d9207050cdf6f4b700eead3e9799cf354bcf55cf962914dfb7873d238abffa66d12d8aa788ae3ca3b585e81f741fba07837468b475c0687713b21ee1a1141f37e6143d6265d15b599df47367d4aab55aa517d72b7a3b2fc58154a2cac3d993e2c834c14446319a1c2b4806d95d11a31d567016c95d43469d5b168a7f28e7db287781413e752ba22d424e4247ffca11000e954bf0fd1a2fce08aa8c281050501c398284971e145c1123175d29f7bbdcec9e70ea2fd397ba655a097465a2fc899b1d2bfa1b390b6c24f0e84a062583d82dae91c0557844cc0c2a4c8d8e2b455d393f914aaf5d572ad8a848ef76b5e111f00bf9e4899a7b9df88246abca6a4dcd4993e876b6d1819cdb26de44543ce1c4b71ef925483ab610dbc1e8373d7a50cba9f089ff6e80183ea6e24f4e36ef4e287e71f08d50a82741215f1a52fcffd513c92df076d81407cba58aec3dc5779008493815533cc5195b05d86e15d796e223501104cbc71e5502837221098ff5be12447843dc14c7c9736a54bcc6e471590c4bccf7b513b8f4682afe814d0f544915976a7a2e106926c249cfcd70abc10e15272b1ce3cb0cb9a3ce20151f01e01aeaedd996a11ab19e88457d530e6e062c9fff7cd1a838b05e4b020290f75f30cf3edd0804d1a4f7da6209688463d6d1f49a7cf79e23e60ee13e155f105e559c77a807cd6a157f9fb08f3696593360e6de40382f5358eac02afe25b2f76276f5be39f1df7e151fca1fcdf0663b17c82e491fcb5a9db333d64f7c8fbf34d48aa834177c838918496bd28a731d0bdbc1e463f94c23555ae2a35ef1ace21ff6aebd8a83bfe63865c547f555cd7caba8e8dcd1e7a09d29248ae948732868f43c595f147349b24c8abb0aedfd00310d100d2ea0e02929d1c9b2cafe2ab4f701c474407470815e07e26a165c5ab267646c1e953063cad25044ddb6d5891d6b1f395616de39eb382ed8622b542a147825ac6d2c4b6cc82db3f27457f1ddb16575890ae70997c5232f6a30fb057d573a6cb29f4476b1ab38942962032de126dcf2db651982bb30f0159ff22a1e7f86b2219c6130c2ce7e2c52a2217b156f027009688edc903f38b3cb7d14db0328b03c9e644813b8640d314b22f1757951c5b3a29b40d914f06f07bd86090979551cb0956bcc55fc20d2581d2b0e77080837cbc5c6038cc27492e0cedd8a034d575457fcc064f247ef2c49037ee65705644869944cdb22ae7c514cbcd24fb260323badb64f466957db41a48210076659bcf81c3257f14cbb96c0563c383a573c358c74e115673d88f55f71f4fdee4f8d33de062b8e052a237ff3549c96c6e6441bb6e3a7e4aeb1e64faf913bebe3b47c48637129b42f45b6f597d74cf4e56aa8e5f881f285077b37ec99f1527f0f0d7bff59165f733250f7ab55b1aac5e54fbf33ff14b438a2646a6917ab7ccdc2174c801677c8a4491c22236a8e708acf5e1d6fd5342f3e218b1b8ca68acde2b88622c26d6f428b03b7300d1f6bb9113ed71d74a93042fc6de3513df6df862d0374a39029c902ad25c4542acfb7495169f124e055ad6560c53d06c004f53d2ae39f425ffaca11b1f24701b9f82a3ee0b6d15278ef01bb2664e3c7b7b81fc0af1902b4a5b92c01b70c0db009c62d204d4e09023fe83641fdd39a37be064ab689e6fe43fc3b1446db2406274c0e4b347a798a47ad9455138732cb8c88266c5e24f3ca82c505cc37b4d89a99c741889a000c17105e4d6087481ec635e103c0b462c2ea433ec579471cd989ef3996038db38b134fee45db29a22c56a5a01b56fa276ad8c6388ffccd09e2cf3ec33b38cb44e85819d38b00959211c7fc1fd7b2b0a45b2832015fa4d28d351dda0b39b0fa68a8af379507bf14eeb44e602d9d40d7f4339ec04559ca7b617176a41932efc33de1553e3de0211cbfc0ac2c0ec06bf58700ee694f6eaaa309e53d815166a5ec06cd1e10e5115a867cdd67287bf213beb0934fa3cff88d7f366b811f425e550e475aadac266a8ffc8476336621ee3ca01e0afc0951520e6db757e1ddc8c29a71fd3f212b4c7ddc6028341a5c9262b1ef2e20b679ca70e40d11169b3c8001cd500b14886f0814626287d8ffc542860e65685343332b145801086fd9274884eba84c31f2ca7a4e816e0bccd01fefc7212d21983d68ca48a7096eb68155c1fc7d0601318d60562eda2ae104e8180972227ff19e90806725309ccdc3f735282ac13e5161d2a518af8295ea1f83e9edb89c580eecb17260a80d80821c7f04dcf53a4690deef1b9090edd2360650a30c4c287793c10e03f679a105418256ff2c5db85c8bd3df6ded9709be83045c2a3b25fe2296f1901d0d5c10b56591008c85a7e2e95cf351c72261f598914016ae6be248386aaccce0e0a6073f12a4d8bfb849501b07cf51315524417dab5c819df6945a64030af93b1a089b88a3eeebe84ef1129e5c9584dce97d3a650f8f73492269a49260f6ba24f960e6c10dfb2a097fb3a3d1c8065a12c08cd2f30b5f68969b521426812f3d0ce8034a60d6300044499854aba8394fbf81f4a9350913003fd333adf439bb3f6ca47f47e9e3ab3cb04df606ecb004b437f46f709f11380949554900fc9d136ec570b4922b8a874d4f03ff78fc8699026027e101b2088a7d0c48f0269275d7c1b3b9539b4473fa57899cc3e930d304f01b5707ea5222184ae8145902a7bf81e240f541e6086448226cf0524252f187d9fee1d2c6252024366cdc123ecb7bb7c6ea1259ae12fa1b2fa0039580bfc3b6450812b1fd16038c12595009e0e0f72107623d0eca9c3cea311a2ac1d98a7f268174b1434e062dd84e58098a70892ab5cee33fe18f9dacd387c17b4bc611b0045ecead3100470771861a8d35cb80c16aecf6b9efdd0caf2ee3b65902e3489a962081c09b624b004ddac80a8ed4e75b4226b741b9043152deed4e0fe9e225ccac2bc5e01c1c7b09d1b7d81b9abdae6be9f2b7bed773199430649e99ab294889694a86317f82c3f1f3d8d97a6eb826e3ccab65a5f3ffd0d18e84267bb73af70892806e4a8c2f03593b9270cd51d34cd4f9c946753185e664cef8f4b860cd6c0af5aa85c824b839903f78b834a8c1d5ef46a441b52fa05ffce1f08db3ca24089d042550448ccb8f1e49e455c49ee64b889adfc2e362e51db742ec2cbab6544bbccb02f04380a72ca184c701f8865c9915bdd0333a4625abe3b9a5a20410998c7a8d76a466e040f5a2845721020fa7a439475fd42ac8804a20499cfd185980ba30c0f06b693a9530fda50c07768137c8fc95e62e9520064ba0a6124e38fe4a6260893dd451c2411c2dd0cb8b0153c21ba3e17e80958061a01afbfa0a3d62f4d2d584b7843d4540197db622e693ee0b959718877209c96aaedde2ab347d280642286a3a9469355710b58eebade9094be3684c5a839e80638f60d3435fda54da69cfa4083d67361d5bbdd32698504b15bd5e4856f525549255d32d6c4a1ff10781bee950aac171e097d2d053f42874b31d920e713ae977b9934fd571fa4158945a2520194990b42c7e20a559b991926597f0a0b7f430d337d8dc64719bb091834f9646e57409426ceb05fb7c596687392633598d200fddcc33a70324f3c1ae0594ec9fd4008701c9081342a4d0e94f5dc78456152f9f892c0c640bb4f4cb78c721e4b4f0b0e6845de6cb4e6fb5ac1832b92aee740eed3b5d038e70a44e39371625dca28089eb4d2091ec0b9076c21ecf25d537539f88a79fc9272f1afeacf74f8b0caacbe30a4db962fc6b96b97697587458b74f000d5355d7dad35b76f7d7c955f0e926106a7a76d35556396697f0d32b53408c40713edd73c0e4f72361d82943dcf1e8239fc2628d9f411344d8a2febba793646ff9d818705b558e5b30dd7628b2f9bf15d8e0748037c836fe1bfabd5544ff9bdd2a55ec8d8ff0954f84c9f1cfb9edd889b18e4f4a10ce9dfb71f24e6def78c1d9035a1f6ee774052b576eb51c5b493d6a8bfb588e9631a4065fe078b01d21804ff8a567b70dfc7203f023a5f2cbc4397a745d9aeac42aee00ce022d8b0d197e9d4a2fa88a9c25268e5e6982d50ee03ccf4183152a0904b83ce89182b91d7eb586fdff9da48cc9f82397026989ebd12a7af493aa361714f4b299591a37852a3b7b36d69c655645f788eaf6e3ac89efd59c37e79f34d86ceda9c00abd7e17970c62b4a51c9526d01e6949614c71ac5ed0f628b72d73f639eb4a0f4603b43d727875ce1edceb9dfb21b1d7c0e0c202f7e8dae5f8ed774cca5e5db587f5c5ca66b887b5e55b1f2a71cf2bc7c4bc4202996aa2381bb8005fe466b3e78a09bd271b6e76aca52fadcab9079baae869f884ee01aea36305fa7d696823e91ebc6798189dee5971b62db41d70455f30c27a97ef9e748ae4b0a0b6c9ba754f29db68ce4cd0f4ec199f2178cfb0013a31249cabf4cfdfab320e9ccf3530bea6925195074cccf3e95b48d2b0df0bcd3bd2ae0a8018ca4c15df7307e92acfbf71ff4ecdb6f9b91fbda23ea23095e34ed4924403f2f7d85f72e1b320192805ca3068ff3d5befc9b30e5e1ea566d61e395b3d34f03959fac65534083ed894762826c79306f56ba7aa9cede043ce08a6761d1b3e90544d9d217bd42fc07a411789919248d53f9f87ae46c341420d74128cbbdfb0c3479cec89997df8b08d5b6d6e761c9d33fea35ddd5573ae9d699699611e041a5dd019d897d73b521fff36d44adaaac6d9c661149c2c685d18132874f1ed004cc63ef9997a7d97efa4142a4890acabc9cf84531a9403027f1b15cc887a920423a5669f208e6cc07304724e3171a4cacc1abeb4be29413e821065179d19138864c8a304995a31202790b314372bcd2aa04a4c673d4ac28c61a63843f3f41943a2e8d80c16378021134476d6b448169e893661936319bf1a9a0c21d61c8cd58f962731164e5ec86e68f8602906883b119746196aec30e21cc4d2707219a118d759f5c134685a118408032044a04466a0803df277ecc398bdcea8e33d2e66b1d2b415a5cf2203a047340b320162196fe82693a139177aada20eede4070792f790659450cc5716da8860f9cf0c8a8b39e63c7682456a979db671d32152c7661ee5ba9c75554de95516b1f45409cc4b2a8125b0573e5dafd4cd0c96fb9544a9965195264afc8cdfb183e27b81c36daded430701b9f43067410c97aa6cdce5cacc9c5a328a6118cf3b7a8fc7f4da24d8058f4a7766328a5d3cf84d8f279959d9bdb18279c6dccdaf8349ee529c02cef14d13ce297568b36ed46230cb325bf86a1f43f61a6c48372d2c0d6a5c919c7f8f71fd171a568554a0171754b7030514b304d1a64c58ba1e7b915c1ade34478aa453c52c8804dbca1419a53f525d2c21ba5f5606220b057109bccc228347b8849c5be1cd2718adf84c89ac6945f2fd5465b36b05c2636acb2e805849d61f1f70e033b3a04f40d9df215bfc279646dea5575567a7e75de8cc2c5664aceec554ca8066f2cbac0ff66696636c997deffbe44c7d39c879a6bf4c635f6e384b0ccb53d6b985037416264e167e9ad874bf2206741d07c455766b62eed40c2cb567d19683ea1c572f165d50e18024fc2c4f34cd31bd7ad68156cd7d7f57a7afdf672cfa7b1cf940cb6a1c104af9f7649c17b4a847848576d1092d5e52919bbd191d74801eac40b4e047c368b26821b3f1970604ad67710be971e77199ac407f89bc7f0e7d2786ef0063754bf01bfa4323f6e13694dcdac6f6e72fa05d82427c1eeffbe6938d43ec2606de5a2269736241a3cfb9526ddd366f25fb53a08bb83dab7229fe958c042d99959d6c73b0099ae2a526b464ed01b591247d36c7a66ba1c6ab8ab2667fed07c173cad634a7f557d9f4ced5aa88e50921297bd1605f14f2b48ac5af0c1e58551795a9175879c20370d403190e63049969287b981483f7e942aef3c2164d063df4ac978d1c1c55f54ab81c3558fd759c0c5683f7792586f3f438a8dee4014ccb7f1311e31bea015468ca83bb628b1e2dff1c5e650637afbcc93c26f381eafbbae4d80c6b29843c9cc6a218a3d82bf481c79945e5852fa2a2f0f0d1f896fd49dfb34869abbc4601f2ae1406ebbfd08240411308015de39a3c2a122e08dc40261f3e0fd02971a4c97c41a525066b9d10c349e5e885daf468e1f1365040ec20fd19b8d2b66044c86c20f6ccbc2e609a3d5ef5b6f47440e136ae2a26c68479add601d94c4b9e1f87db464b87c15961997f6bc3fb9383705b08ceb6e812e1a77d114a37ebce4bc71c068a8d3c26390c874b0343ee380c8702e0e6ddd452d88cc3480748f6b977c8c7d5b8c3598254b64bc2e582820a2d67293e40c640fd705bd4f4cd8aafd9acb7e4c762dc610499d9ac0f81bc94e387b33cb2fc9ecf470eac627b69a55e71a5f1f737bc4dd686acbe5c7916a71f5f1a1d375aeb0ac66c449a7faa5b9f1ee6fec04a2b9461a19e2b8c0a0d45844d0b4634b72f86eeef85e9ad81d63b0bfd81c84c9efc438d1724f54d67d964d0119cc0de66b71efe17b8d8e2b97dc15f0f2049031a8ba0f37a91f14239d54e467638cbbeb877bb1816d60e03e079151509ce77361b05858c103f9c15a124875bd465fedf82943ff0b736162d3138e84876aae2805bd7fbc8febb460c554b6c75c30d57951436acbdebf5538bc8df7d813a13b9a27ca701ae8baea57f9497835e7c84ac023600b6f78a79e75a846aea0e4503fc39d444741f965a66726e3529a1db9534c179489be0fc205914cb258ff841b6d51e01aa6c908beee8110b952e90917f534e645586e6e60aa693388b82c4be91063b689fd0cebf1581285deed7e482394e232171161ef7629fadf3a4bcef54d02072332189b3b65187e10aea4ea2c2a0575f8fefecfe45f47115eebece652dfb585e9a5114048cfd5631af9b10b8b015ae4ed8b2adc10a0816113dc75224028aa3fc1925f41fb87347a3b34b6a669cd5d61622f020bbb7122efa597208347fe618db7a4125a26723131bb1987625e6289cc15425448ea8bd7bbc48775bb814ad992f6841c513b531f602554540ddcccbb1d32582ecbd7379f28f13f355b7de4daeb5adb21f63886513a8323a90aa2fd55633393ecfc8fa79a673c65ab397f96e0e4402b67401a84fa9a6b5747e55a35911ba0645c3c23ea340a3be36207e69faab3fdfe195374d0c20b6259603c983cf74af96d7e25d39f74884505df43665d9e709f44d2f88b11008ff89cbf9179cf56f9cdfcbab27217fbb8b8f2ab6c83acad74a18918c139b43e883eca6727d60c7215b31ea5fdfb82438e4db2f83f3a4e914f46a9085c4da2628abf4865154611d0b64858d6eaab3904995f3d9775a4859971161b779b6e5b781b0ce62758443fd03a6802c42942821d467c5ac37e19e48211392724b77eaa1ed16110e06712107344dd5632e76450373779bc86dd63d75eed18882cdb19e8ae2db2c37665e35f14896629e41e2f54bda097202b82a4347387b18bdd6d795133f2858fcdd6065ad6a4fc173418affa38d6396e4d31f49164d6051007eff0483b6cca26e46b618fd1c07e28a6687bf58d6c168d471bcc47600459484989e55d2488122e8c1266fc4ba5b484bc6078a65e045236fbed2ce7ef3281fc73aa0a68869adbea8e12a5e50f604cb4a65228b105cc3c9db352474891c0baf2648db48e3d0c28a2bd947ecceddb1d236c37d9c7892281cd5012f09f5247ea65b6adfbb7eda53088eee4fd259ac61bd5d2f5a2b750e220a5e987fe32af1142508b72f050a4093a4b4347440a908130dccd74ef112602949ac4369e6508abf3905d1237061f473ebfb391fd16911b6d5244af7005154194b77ce6546c955a1ca1e1082541895d291b86a9c1c156632b2a0cb84f6a8885080071d56228407fa391f94844454a4c344c86319ae2181e46d0a8514d97d60555e01500ecd3b463220ec916ab5cd6c98c132fff42b3ca374c9c85562492911cc0e9102acd2a53b4f94facbf829ee9018ef81cc16d319bd8d88c56e2ea0f01954d5a88d56f026e1bca321640a7ab72d4e7e98303e39650a78fcc0330f1e4870ee54f74975795574f74cb301f3bcac69a5a8f71fbcb6b11fad85d9405e31a0c07f9bd135e301f2d7a72b87b23a65085e7340bc70d3ae2a3e5e0badd54994143d6c3c5309ba906859a0a0504c39496a604b3aa4ed61fffc409cdd0f270264a7f4d0afa60b920030ab304bd51b584ee9e99eb13021e43c47c66e4f9d8d915363e9c5f55a3e487aa5b981a3f1022404013ff9a4bba263a28ad2b2ba8aa09b040d1d95a4768fd53975f993cc553a89e8a2b8e426ca8b0d7e931461e53a0746bee135a1244995138532547423b7a58d23294a4f584f30baf604301aa8dd6e1d90ca528a304565c609e0d6b43ca364f320d81a9aecb1a342be0ad7c385932893246c6cf9dd7427b1b6fe9f654a0c1ab39a617352c66bab10c29e687919f5d3e3d0ebe299aef6411bf683bdbfcca33f70c6f9b21abbe2b9abe4c9995dc518c9819dc76ce382e19c5c315583cfa0c0baafd35123e2290cd5fba2dbe61724199bb705801795cf2337edd77bc4130ea848966f3824aff16fb51d4729223f925485350a9886f747250908e467afff2bb780a650f0aa1aa5c74f61f92be7fd2f9527e89349041e3c6ade9b08a921c30f84906645abec407f95cd06f5d163139540e8f2d1be3609a4eca52fa9a17971431945c4a4860859798ed4906c76b205745035d68f292292bdce4b9301a4be160b40a460de6edcc20841fca9e41a6f7ed7733ab62ac33dbe5e6ccd75578e121346c807a32ca2a50fe57b036512d6b36e16086463c85455f4f8663685fe58d03c89d87aa72db1470f79d8be42c5eed0759164430985c8c9d802e18ecc1935b35348210fc9638b97da0eff4429499d122d811b0dc501fd7a8b32d99b44b29325e21c18a5f7edd97d37be7cd9c8b61bb7e90e6f60a0b6a2e73550fd2bc1f9403be51059140d4ad7c87988b563f6f1503a9e3c17054c2dc41d2a1924b1eaac688e4d4c3857c532860de1a065a1daf8c11d841fe048dfc9892bd9bb10ef67809fb87ca80581da4242a2395f265dda993c346649b185fa40488f34979ba16a510fc3b4b93e2baa953fc4dd4ff5ea2ee1d5fae6fa90a376e7954b447c81bd2331e778d5f27882037d307d0f194e59db7721de5909a925eb077a6839fe4497ebec9a180c353ab10e2e0e1c349e1369861f872117d143705f549c7846687478da2dc1d026321afa2725e6425409b00fc86c97de7617f0a562a9d9256c5e8fe0c5182173b18ab6c5df9c4ef451105f0e5559a2fd2828d18b61a5521723002ae10a6f2dcfaac919633b5141542307e464759c953bac8c790ebb882569cf610e448c572de9504db7c6e3d40dbb5bf3a978ff045dbc61862667b133e13b9e327c19cbb36e719393fb20fcb534a31847e006a044beb14624e96068ee51cfc360080c38d49d26e12aadbc57e31a139807927a04a7d5cefd000640d2b39b726a824711a0b69b00ad5be4a70204f6b7e2ed59c457e1bd6cd97940349584ed9f970bf6b97bc30317eb512bf6143eb0416d881f4ea3c1dbd8964267a022fd49138ed3d5f669229b64ebe7b63ea4cdb7697c21c844a3a423aea039e099a6adabc03ebc21590d2ff279b9285ed5ad9e993c7f561824f198f3739116c6c7ddcc0a9f0b01a99ae5e1f99ae3336b6fb64a7c67bb544b6a3ea7f689b6118619b3d6a0e7a43dfcb9c13531a9d84d7473a5a75819de0da034fdecb8461168dcf305e1a4fe8e6b56ece5ad9bc02181a0328e6be6f7f450f5707682386894a2dc4d1981dde86a406f756d07ea5545b7e2bc34948987ed2da723d640d4e3d832e29fb6795214f853f615e20091fecb64bf1348010847199de61cf5dab074f6437c512257b34685b8a6e077183103b1aaab46af6b20008f9b8830c9971412c274576f6080c44dcd7e4201a5f936097ae19444120e74795676ef125387b498a4ba4bb2b6176d73c787e9f96b4fda8c0017b52fd03b3a948e567401c79925fff84ffffa1f8503a85e6ea1df38b8ad3c08d71663a5e9fe7753e9c3a2ae61c43550d46e090c1e1e6c3b27e6b26c85b8ec06043a8263c64f8e86ab85061c14a210ab056eb2ae53250591aa5b1d04980839abb2b55a827920116dbec0d678e0feb4530e3a65624a3c91e97ceb5f3be14151f332f7bfb3b0294e6a46601c7e76680508bb3cf12327d6c14b08f9121ff0ccb4bc1902c6da71962faa332e9cc935fceab2ea03894240810fa84a6078431f50bf8963504bcd4a5763fbf6543c0355eb5cade8ca2c0f287e04dcb15d3c8c1de37e51591c258170876518e750d6568bd08d7d1584d4e582a3d0d6c940fcff454e2d89667d395a1682b74d30bad08da20222a023f473015b327402f6730fda369718f4264320694535daa57d0c9de02d61124a1d5dba7ccf6b078aac1fd02a37a16b933ef021672df26c18140920d49144506ffe0efa5fabc019100d66cf92a1b36e2efdb889ba4c523a738d421a2489cfeeea1505e98b06a177470fd9ee70576988955f90642c994cb57312fbc6de1a9a124ee920830c2a5abf4e84171dfc3acc1938f00d773aec9c8850d1550bce41db1ed62b170ba2e8320e749f74fcc3e18dd4dafbb155d2bc16298128fb504eb4842e8195d807182d12e8ab7d5cfe26a8f3ce7755055ba53e13baac6e760806c093e340182645de4acb66a0334b092388dd9e4a94687799d1d80a9fb550d0099e56bb02934c0ffef568c2d9153457f1042988c289ad3c53030bdd0e1115c1e9245bf3c9828229049d00a08192eb9faefb855bfce04c18181158a59569e7ad73c59b44ab92409173a61d64ba948af70b9d5050fdcd9370cab6804a317a40470cb15c7aeeca179d0004af711ed0202d72d149cb688b506058e4db694d874309d7e3c14609f69d4ed72cf1c14639124f1f759f0dfb702e716e5cb3083e8394afc73e989e56094d34051c107cf993e2860f7363915915219d48094336438e457c525683fd05dbef0025962114f1ae2c5991e78975c7bf265265abc08ed83b0809324bfb3be33bf10a6a284d5e59380e54ce3951522037400a0bba1acb6745d5923e83e420993a1020055cd40c489880ce2912fdc2568683bd7f8076fa0feba24752a2cd67cab172772046cbb8ac42025fd3919c14f87ac79ddd85ccb58418f76c87a6f4acfa64314bac8f1915ac1367054d977248020808cef0413d4d8096a0fda0d8df1178f7c3e09e94ed32f45e45e7f2542f084592150233d76743368f5bc160438006bd3e55b75fd5612087530d3d3372a62c6480aa6151e38d7a646dab61b7f3c841ac419a59c66a5e1cc81b9d8b40fb9bf4ff03047a9b5401ce4ed085c505cdb8ead24416db2bb7a9522ced93bb2d1bd95bc2df68fc91c4f2f774243fbcf2f0f7428a0ba2568a22d983296881ee33a24aed0bdba5cf0881eff17a8f3393700a8fab3d6e7587f5cb205ce63c47b982ac9a4e7bf56c4541cde3a24f647259897a64b95b90ac635b9add1a6d45c35ccac973ea3d20c0ab2426594cc6bdb403a72120a550d801994de95e0175ee80d8a8803fc14037385cfb3fa8263f364d9790e68f92876577cc23e599956f159602f3eadab027bc8af7f06f5afc42f2c6290ffd3c946cba21df8733e931701c2048772ee162bfda6d009dcc969693acdadfc72f2064868afc910b0c465ae84f8e6fd85aa1ff2f5c752ce2944ac6dc83210be2a7d66e60a1188ec6847163337e70d5337784585c8658b03b8c10676a5593402d26d10fa192f0c219c55c3784e9af576b1e5e3b58d381111f2f7afdcfa6f9c9b2bbf5c11385e854369e63a00c2eb1b0243e5e4094fcb533e7c66bc1d2e7219802d0fab46782ef83076c857b078138a7c450dba8f9227dfde880892faccfe684d9720604a5e24e10f55c45a2f1a4ef897403fb08907d583451c83162cfd2bc42bc444e46b394947932a011b6ca9871a5a01166031361bd1449241193ad9bba34c179245ccf43794f4c92033a078f846465c686bc0195bd60031ca607a376385a42aa5e231b3bdb3cfb1d437f38ae3dbc4af2302b507890ce1303480b6b89bacd74ea4ea420fbb84a7149b228020ed3c28ea02f473791b935110166c7f719f8e501410b7aa4fd9f9445f237e282827f65834b94b770f19be537f0c775b7dfb9feaf8c5fdd2765a17b3ae1ddda928ef9330ed5bcffe8eff9683a4375ae9b31dbc515326f8b07a046b12b1a9c287c67ec08e956b235cfa7f9c30bb9d5596d5d75b2c5220be179e7d61159908b45f0b4c7a81cabd6f81538d3e2e9b75aa6255258b3df1e1496feeba811963cebb6d684736f93ac664df413c0b7ff6400f1e6c5aa37a5fb6225873b5ad7a7f2dd562376e1247df57ed4d989c4b5d3fda5def6f524fbbb1db7f4cc08acda435eff638dfb102c5127f8915f40d12ca52ae8f4bf9d1a9da4331e04bee71bca60435a780cdd40b0313919ff8085a1cc93694897a7db3bdc85de8f18995952e218a8e501b6fec171f128efd8412202179e55a80bed3816602df20e4747f667f3de7fc6e67fe93ec74b47f8159a2673bfa87077b8cba166ef9eb89e142db020284c557d0854501852d2c58dbdbeecf1e29b210dc8104752e99f1912fcfa29098e9c1f4e18a0edc200b3e20e77c5811bba8c10041934ea177284cbc946408038db93eb258594c9b7c3f5f198be45bb36694706bff2e0d0378bbaef55ac3a2041cee27738bc6d05963e994d417c645c64018435b53dddde0ef76d1e8ea3797c8debe1b50a10841e63536d23050c1253e3c0bac21463cf435c58bdb4d8c3767c9376b86e1c14f937c26b87286939f3539f1e25af895495b01b132b236e331f4e8520a81e0af1e38cee3fc50424cb54a14960c95f905a8d0aa87985739bc4a4dbf450d0c0dc2f399a9e27f3180908a5a4735947e18f877caa2bdbc075b7b4fe5b7e52af347e9b800c0ee818a8f85a9df00455e3e62ef5537b296736e8f429024f563a79c08068fc716ea258ae7d0473c66a9c17555c717e55877ff88f7e2734a9bf412fd408d4729b4a530abb910a64e241f1d82bd04a66985126095806dca0f5de26203bc2241db69f1983fdadd875ae621279c29a0a05e8c88497ad0981d36fea20bb81d2c21a89b89dc141c530bf2f598e3bd9fea3e9ce3af7e634b57302de0b170369279e1ec8c8c5fd95b2ba65682c981f9101bde31f964850f1ebd75b4083ee87c3b6f848a93014db7f124a6e9f4a2b070356551b5b9cd186c63cd46a1e6d4e73c6307a9cc5174490c86d9442920bd8b9ce55984b61a19929e666aac4a15402f041789d8cabc4d852e2531d6c8ad6b03655e057a689529545f9e30df6ce15701dacbf7658881d24aa80cc76e72ab6741d4c22f26641b73cf4b7381149940fa9a371822224135c10824b605c1dec28e1b28d7ee0678dadaa5d069c6fc0a661e78d7bafeb7c2dd69fc8ebe561b2a56467df104b97b0f228b3604fa1d6f3a5b4454d1555f4cf694e82cfae6c2b5b3957f0cd4b80c2f0c1f7ea717a10535135046559ab720d206b56ce88c1553856e2b15773c2283b6fbf59c59860f1e7d9f43827c90932b6117c7d4a8cca3f44d0725edfcd9549a07e501ce7d976bb023ac5c6c40b0b749a559c2ba80d897125f45c5b8f22e8ceb854a6d563b47c9df38f3c13260e8904dd7c60088bdf3a5ecdb88603918a135e762bcebc170ef57c45f140b2e6561a82d4935fbc7660cfa3f0b581d8da8407b958ab2e5e8ac31c27704477d3df9d54c51316f76deef0715a7a6c68fa143a148fb37b3e4e3ef6bd40462a2731e1e328360b012d95f3cb7b041b5895f83825b7814ae7b5e9b8815a8d4cef38df88fa9a5ae6c8d2d340503ddc9b4e839493f9add332c6303fb574277ca41bbb982cdd019bb62a06996678d88a86ee3c21d362870fad4d9d54bd56e28edf02749e5353c44b7f36b5144dc54bae9aca5f9721f49902f4eaa3dca3c46fab906b9a65ae3acd9f545a0fdfb2e2d55dd5f4fa0e367d391f3dfdf6275083bc6f7f1ddd22574076db07ec6be594dde26ad5442b812fcf6981d7dc026f6e63716ea725b3732baa6ce49d996e6176953b09840b65b7ad13399538f0f03210f2b701812f2fbc7dbcfb9c9be7e1ad3ce66dee8e05104e86b7b7f33614ddebabda87f7cb771e4fd27ba55a9813cc1bc05800c46cba7609a2fded1edf287395cf77d14673ace38cf7fda1571300d908486028c9add4707e28ad1ed1341b81688967c53da0e15a1be402d550a7ea86e069a9e41f582487c675c43926717205eee463a99c717a453faa8e54d7168bea012dbea24f415ee51b19ed9d748a10cf7d7736959e3531c90cee94d42558adc2fa4faccb97a2d26189a8527f95038411408e063eb40f2162813cf7b29877613e83da32f7789fe9102228e2a3f54b932207cfc5a2f6b45edc11ec230eb5276782501d1121e2791f8a98a9d0d7be9e56286ab697fc9662aca32c2eed9870ddc6cdf0ca534f4b643593edd3c5b81def011a4464f9ba11c258662a31ddb8f08d58606a919aa09131143fbfdeb40ab7a444541728449962e5c8322700758c302594482dc1d52232bfaec3bcda26341fbcd8e513d5922b4869f52c638cd4555a4b17a367e2bdfd07ada5ad92e408180c22646df510eb8a888d40221b5accadc54464064c38f22a3e0a2e55ad717ad263947a98c9505ef46655ffd445210481123939b1a5759dce7a7214bfec95c1d205ec6cd943e24c64106a74a4d4dc2017a0d872b5c316160693542fa8945729e31973e39e954833e213d341cdaba31b800a7a01a32d5765331f93a0ffbd8d7f28ed0745bedc1e4d9c257a76a953647a1b3449c63e6270c7ceb9879ca234d5a613cbca8e8d2e5761684e6a2601b0fe2961c7988ba6a926bc4414a333e166bad7c8d6881ac8af1283089b78ccb971b31e10aec9ba4c57602861f01d38ab727720c9d6b146124ca6fba7edc5d409d835e576036646e2ba1c4c9b7faa60d2c59097cc0214130a9667cdbdea3aa96584cf0d485293150281924d4307ffbf46207e32be4bb5771636ce430441a71f9f381729ab9febee4b9889eead1c4ceb4097f5739faec7bfffa7fd8240fb146a8198276de3f0db166fdd999b7a1a9e06bbcb727592b6c13747bd7742a6de97f2ca0b58a3ae998a6eb6c7867cd98fc5f8bee6ebbe1141e5e87594e472babe7594a54841a38612993bf525fc3c64fe9d4a763877db9f6bd76faf00198e33600e581bf6aaaa9ef41deb8057337d479e1394aeee850d4236189b81be47ee625d43eec85556077be5349b41b0b634a6f168f75c405b9b2938188b89b6461466b52546e71fe036233431cd4908bf5c3afe9a21aaf5a31b77d9d4457ce9602022e0baab5d02f78fc91977933200124665806b5b570b29c60007fe781e0dd89ed3ba1e975022a1ec4459f697484dacbf7d470a353ef7fb71f6f25da36ea31ce7526f30b2bc96136620e8ceffea5ff89ee1d1d237ae1744bcfe043e7d44600f501040d44e3a8a15d63a5dbb5ceb74ed98b4715dc33404d73a8d592cf5568ba5460deec3189e7db894e91e04b7da2edfe5c1eee5a726ab0802dac72bc1fcfb2dc0f241b6412cd984eccdb67b6f29a594322f0eb60e8c10437edaac9e0f3d5d7b2e72ee9ae643eb023de7dbfaf8cc73a19ee73306e03f7de82782157e3628f4b351bb9f95b2532c3cfe089c3ab4f47d3ece31ced1e8875401232f828f7e4811f0b90f9d814d7da7ce225821c40566f7fd8c7e2dd8a08d22f187a80ad5f769b77a57c88cebae98adb5d68afe4138c8c531c8f386b73e8af0d643ad74cbdb14148483dc2fd0bab539bdf9bde0f0ade17507913d446b256105b68e906bd30aee8bb87fdd711ecb8d6d7a4d136c306842f5fa9bb11811c6697dbcc07a7d1c471ff38fa288c3d03f0cc3d0814c3e17edf59339bc1d77be0520e47b89e7fbf73abfee39c64b42289a733ffb8e7d74d1b7affc85d7280487bf1c7237abc055a55ea97d63e00084af1ebcf62dc28f41bda1ea34e225edd72b5386dfe37dec4cd8e9035ed23e96e81e773dcbf09be9352e573dc2cdbfb3fc8df956b3376adf1e7cf6ed1c9c8f7f38b73fd1ef07ec64837849fb389e9d05f51efa503b06f1d77119ed551042ef702b3074f257f6cef25e294fb5dbfb295ca0f60f58e3156b59def07883081c9af21e4bb0c1267bc736ec5697ea07a5cadae0aa12ce3948d02fdfa5ec5614cd08e40b0cc75ffda09f4d71f61c757997cef302b5dfdff8e5c4e5056ad187fa2e50742da24918df51c47dd147f3041be88a28920968465d703f496f5fd2e8fa9617a87d643bb17b2662b3cd194562c07d6cb5ee5b8d94d17affcf17b831e78a265510aadfeb79c309c2e29cabf8e2b423b4c553dedec69a4ce9724d1fecd4f52bd6b1b8a09c9d1c9d13848873d13b5cbf4d41a44edb5f9095223f88a85d91fb90cbd5aceb648d52e5da485c2e97a343e272394749b29a246aa5721ff2056eede6af0c71e82651bb22a8082ea98e503d8885b1ba6971b45b06f6a2b58220fe5608718176ea2e59b7556ffd2a3875ae108224ad33597fb2ee408b9593605b817e81b704d1c5b9fd9fde8678baeebb5e3f54ad73d6595fbbc24a7db8406ba7429bd182a7de0500e13507af31bcf6a1eac4025eb27ef6ea08e5f9abd7babeb7c5797d57350f2b5ca065013b59af2cd373564457b8407b6fd876eef173d8766ebbf5d683eeae81ee7e0a3a9b8697acdb34afb4ed81df936ed3c6f13c6dda933e824483ec1ec33471eadc15edaf557b1be236d57bf32f239980fd3a462f8a82a757c1ad03b153074fd68ed8c893648592d4fae9bbc12020b81297982cc911631f47c798c49125ae0c22490f224dd3be0d5daca1e730beb7748d6eeb38ef80ad0a76e8220af837ce5930e24b100cc0b98eca697f204cb7cee6662dba41601f3dc48526846ea21b04e94196b4a457b30cdd9aa4873f106136495b62377fd8ed6fc4913eadedc7c1934beb80115aa310ba46b7765c6842a8bd0c7f2042af660885b3f6e182da6d1afe6a5dba771cc31a563c4bd4545891b28211245d62e18526c694902c8052eb153b2df5d14366ac0b8f1a28e906513162d04982042caa7ad940c1cf5e6494d363cf1b629cf5e3c7e1c29f2856f413c544322fdf063eef1aebca7addd731265a0fe5b19b2c8fdd8670f090a5a53292ba4e54f6cafab05ab6ca5a592c23c79569c033f43c96389e5b13aae720a82384a036e10a1cf2ec2a0c79cee02bfa21af43645d1a72d2adf9dbf508ad19a2f5b4e691878eb37f9ed65aec167581fdd34d9301a78f38cf3eb2b4b294ef9157164de5f29c3ad79e7d7cb63777e93c67adcf2efe72f69de921f412ecdcd54c14fdf410cd2e6432e0fe910aec8bee82fca1ab40777d74c1e90ee2f4d1854c0f2042abb3e8b2ebb481974754d7ec9edda5146ed38966e7991e4018b908fba287680976ee6a96a97ed7640088d34558105984fd3cd5ab37bc1e5a0565ab9c857d43e8063aba472b7571465accd848e7440f2fd9cd729772d69b6e7ff66ae867ad7eb64a2a8721e3d84eeb4359eb3a451539f2ecf9ea36ada0c8b3cfb367acece3e62c8d0797ffe81764030fadd76fd10bcf67ff2311ca6d32720ffe3e2ff29d3fc446e8f6a1655176fb2e38720ca2d767d12bcb995a9bf8265585a5d5255686b686e7366df08b2a121eb908e5361d791e73b2f5a1273dc0fa11bad14f72a29f351f2076ed5e48641e411939d1ef3e2ec480d61ac24ef2a11a7c5288123dc07ed10936c9934e10bb2ef002b31fa12294d766e9e4dc22d767234ff29c846ea29ffd2a46b4deba752f32ac289c75cc0916ae2432e17cb76ec9f29a48a80a8cfce8571f774ba10d5e9b1e327c88aa20c38737c7cb7d363de8741ffa9115323d9caf02dbf6a10a6cda877ecb23c7e16c15ba98877fa21ffdb60df447811e67322074eb3df304ebf68910f0a2e921011fa22a48c0874615db9b7346280beebb20fcd07d4515842128f645ae2b7689503ae0a11fcf7bd96de966b4eb9a4591769e5f7fe8b63aa9c0c443b3550ecfb96bda68a27002aee246cb0af9cf05f6857cd72cd9b4519fbdcc56db47fe5620feae6949bfb39508fbd855c04eb5eeb10229645f8003c69a5c89e8f6b9fe8cee31e93669f492781b143cbaae03579576a6faec56c58db224d43edbae7043c067c75dd8ca2a3bb6c2f82cbbcf775a8d699ff39a0fb7297dce39dfdc9db39ea823dc6f40fd7a8122f26b6d9a2a6073d46efe46fcf813a19fa7bd03c63efef0afecf5b0597ae98ec97e6ef5a6e370bbd29a38748fa86f9a50a6f378bd1e8fd7e3f5ca299cad66af347fa38fa33d4dc7e6689a8e7d1cdd344bd3f4f1d7018b5f96d8fc8ddefb998e7fa5e74c289c9f2694e949d7c976e5f19e39cfa47f1e79bffa463d2f6f93d1af3c6baf01f5b7fd8d18788ec1eb6dc2e03b5b01e0bcf76a74dba49f908902eef1cef490c193b4e7aa19365bdd26eda39f26d408a51d5be10d5eb153081e00c7e1306ae4bddf3ebf378e98410d7a3cecbc9e77c03da31f8823afc1e3dfc6dfdb008f6ed473a391b78191f7bcc3cd332c093c1fb11ba1fbfe913bbaef2365ab1fb1637474de0f87e478c41863243f728cf1038ed03c03ddf691907c44918e9c87ad7e1b5cc307de8183f000ec23ba4dc03efa38f2eeaec7d9731fcf33fcb6fd0c7e9a1edc479df31c5b7db06109dd23eef9120ff772a607ec207aee26e6f5b0f3963af0aaa187fe4a32a423a47144fa8d23ca1b31835e6fd3e047efa19f7df07e208cbc063ffe3646c2bffca3cf799eab2c09d87968bdc07cf5dbd74332726cd4eba13b5bbdcf45dc1f7b2e22f7408c6ee43df7f57a758ffbfc5ecf6bed8df8971fe937fee8474628f65c6543f0f9063f0cde0167c8f0ab99ea027d59d8e99ea11a5c890320081e02ba814beece1482332d8580bae37299f38d47e3b845e43d6a404160c7e0a36f9fe3f0354fc0bee448ee4beef37b869d02806e2008e80602d1ed02f00ed0ed730de83e7f67034037a0fb1400fa01ba7da3fbbc5e0048e1a5eca71ffd34387009ddf53845e8fff916a15f83fb1c8397a6879f83d0d0c1cfb19406bf4074dfb4f7b907529ffd6669f0fc43770718343807374b832ba1fbd430bacf51748f189c34a13058e9f75ff80e83c76775ba5678293765f0d1736d42f2d1c7dac4f3d1cbdad4f3d1b1f9000cfe4345689cdfb5f67dd95efb79b5dfb4db74e4daf30c4b827d9da992323892f35c7b799b7a6ef53eeb7681d9917ef6edd7fbdd282ba111dd00b5f2652bec3eb7261492e3b009d543914aa8df730ff57b68cf473cfe6dbbfd47effdf6e83e0c5e4d0fe388e7fd44e8c780e6193604ed48bf24ed86f3380a59dcd1d1cffed9d95991d148ea67e4da3cc2a3916fdf399a0ca823d4115acf337ce2d1b72fc86440cf7b46bb1ea7918f6e64e4d884321abda8c85754847944bffa45443efe46af260f87ebf9f8c3defb59291bc2e8bcdfb6cfeb8047eff1ea8f3f3b7581a30ac4ef79873bfe78aefb5953e7433f9c8ff57ba66bb79be5d9753f0ff54dcfe54c34ffec39baedf2ec75c4683ea3ceb12eb2dfb6eb3f53817007800467a77c5cd2444187e672be2ba52c09e2e9e358da15763451c0fd88da15d6c3e838c785e3cf97e4617883bc03d69df9b76df9db76eab593a5c6fd4adc18c239493b359a764550d00a4b820ef271f4a0a01f7f2baa5d1164a7743664637754fa6ca94af70e0ed7ba34fe458364116aca849dbcd6b3baaf7aad3ee26bbde0a8f451f1bd245cbd4343c01061f25a435f0d43b7e16fc45e2ba971e83e4fdf6bacbdfc85bac3efea2234fe813d7b918b9e67cf67559c166d0c3155dada75f16a6c75c35ce27cbd70882d569bdbc5aef396cdba47d5c7b4120a0e67af9c15b556041cce9eb5ea2ad649268a3e1fddc8878ec8f187334d27d239e9b95f09e209b89c99337366cecc9939df4c6f229d4ee6481fd19ddb25fce8bb8427bd7e093fbae9a7ebf187dbf978929ef36003bdce738efbeda7713c4f9fcf1d08dc4c8f433a5106d840af43733e7ace47c799befbed93e73a9e93264e67e67e3af2b77339d4b15713059e9b28089eeb5010441ee269e7d0104fcf23f2ea472691896e231c0e2744e2469ce7489ccfe7f3e14e321c4e1475e66f3fbd89f3221f729eef92908c8a86784c8ff3dd5191e9443d21740399def4d3740cbf8a974cef80cd5fe9b8df0ee13a6b7ac0e17e3ac738d7a1fbe971380694be9f9e9e44c5b33e95f084744f179603a57bb107aee401762560078efd76e01c748042070e020804ba5b57f2db842dd002af2f2bfdc23556c9e93b496943d299f437a876c6346a7971622f3fd7114c8de4fc913eaf23d4af18c5be24df0827b69824456cfd0e51cbfe5eef707b75047d75188661188661188661182269cb7c3208b9eb3cb7b401060dbd2134c92883cf0320071d201d01e0039d4ea7f38048c8d10c453ccfe1aed0efe7e1cf7f3f1c6e8d340ab2c1b392e3366ce86de8252979909434d4234b0cbda124231f11af4857ee300801a08a8a6a0ce22d4d494905913de0506f2d5bad65ab35af21363c3a68d536d4cb601df48e8e90928c8a7c1e4439392803c007bf9c86977845bbcc2b4a32f2111579e0e1909292cf9741e957539f51521286a45e6f28e997adae7ce42d0e784543bdde063d5f0fcd5657594968c61aeaf5867679e86883d206a5215f068be706494a1f804919134623015aa44099296c9004e1d265c3e973105d0c4a68057b04b5ac5843c017fcc1ef0d5e5c0210f362f3e5f5d81d08e6c2633f00d308213ba2d0f1e3676aac4a93921c1e2278d648c5e1fa33b6e7be2d7b494a53fe3871387b8be4048cc59a356dc4d072018e00f199996dd163824d15aa50cf195299df1b7cbf458072c64c9427525c906264ca8ac76253d83c76129ed01778183df631e7a61132fa24cf67cf190a94cf6e007c44cce3de63fb6442e1289f9f3ebb9309955b0023460d1992363618188bf018c9d66319cc00f4c7ce16ac144b9a4c244ed83cd9faec057821cd2ee7ec22d80dc6fc4e7aacd47526a6c911b1265ac49c0079ec04d0220745b60c890308aa5cd0c0964c8559a2e6b1d892384c9c74cd78ec02d062082d2e3af070a91183c68929180c9a20c09610a4c72ef6a4304bf185878a142976155cc4ba409ba57d8b58a20f310b8b4ce5e7de67aeb0cf643e2bc1f159c9da670fc197d5c20a1b606a94b455b148f7f939a70583411469ce79009f91d4f89c7dc44e950d969a3234e83c01a39166574144c52c114b53e500e4335e35f3361e7b792cf602db633fc51ebb4f2c8998c7625c5c8f1d04262cf18a7de8357822dd97eb4e5daa0ffd5ae1f8d0f7bd12c0efbb55274896a2ce1fad2662d27db1a050c4e872d666260348ba6fd6db75ba5959511f5ab3b3b4db54ab448921feb66a4cbfad5b054425040f0d2fb02bb574db35177de29009c923478b59ba6d9bd875ba54593eb4571f627de836abeac36db542f86dbd5a90a2ccca9a34335751d26db72010e88a13216e4ea896a4db767de876ea3a895877c97a18d6b50f9d05b10f1f0dbdeeea66832f52a1398954c1bb81692c0cd58701f81b418e94c832c2e50a8e140573f088a9a0c3a58c917457b20fa93e04418a1c1d64d6d8303b5395863a72d0302b73064c983be216def235cbef241c16e531f6f174f3584cc9e331128f7d0350dcba6f7f8fbfc5adb78ffd837bb5ae532ebb5961578ff37c9b7e8f73008c4ace3a36e5e3abca07f3f224e94b2614799e8f1bab13ced3e69562079e3e44adb7fe45e745d13d30a130e91de4aa2b5e8d3d005e3b07232edfbe98ab1330180c96f00a06d336a5320a8bc12f182fc267d7604251519d5917b982bcdebaa571eeec96464651728b44dab3eb1e8a644216f27c968e512413463c896e23f7f98817c56c4592a4b52f66a9cfbf6df4f3fd3626222222ca4137a2b6a222f739aea8a868cde7f3a5bdfda2b3a2ac8ce5d5b5f5360bcbeaadfddece798edbed76988ac7e36129decffe0e07f1924e57f642b91c26fb13a7d3e9d676bb9d7ddd195eb2b9329d8eecbdf092cde5ba743addddd2d92cf367bf2449d20d87c3dd36dccf3ea9b5ce64a2287a619cbbde660d1a3c6b40f3165eb2d65a6badb5d65a6badb5d65a6badb5b66dcdab6b2b2bc4faddb22076ba5416850f386672d811c2064fbacf0f379cd82d7d0164e2edad8b44551a8ee0d66b4d860a78c1538649956020b70fa4e4aa48545941a58cda911b1b787d61184b704df9ac4d12fa33318fddebc863473a45ec60b14566c78b282b0014013494e4adcf121245c49c00b2f6c8840aa79c78ec19bb5107a6b86041812505933a4b47e2088db881040e1a2862c2b029abd68ee0b352b6c03cf622ec1b62c5448a1332359850a59b69458a31c60ff472f3d8177062b11e41a014a96233c32a15319109858738a8665d0c50c3fce6f0e57715f30abd899f0fad883979f3f5240a14171f3a53fd8252250a8e0fbd84db54bfa2b47de8bd30ae39e416af8916219c444d8d89b13f6448f0492bf0e13ad5b660309822c5187bf0f8c6630f5c4093c40818301a6129761534de9950b8acf2bb27c2ef24252cbf377c02be623df0431fbf98f85e7ce85ebfbac23efc6ae2e2433f9fa86c6121260e11234f8e7450654758a8011d6fd02c6163e2ec850d5dd43aebef5ca65ba2c6e1b1e7b2921132f2431f8590253d76537fb1b8127ee863135a2e4101f6d8711fe012a788d5d412185d1c80b930ebd8892b397760606db9497359999d3ab788f5d645acdb54b3d975caa975324809132e8f7dcc4c82e4d042c3c58a2d1a55fa32738e68b1a3ccd711b0207fb0a442b48b4a6074f0d8c3246fe7d763cfd8751eb162ca8a17c07899ba0147c3912cb8203f6036d0cacabcb5b041b20d73d91a970ef4b1673497f1a01859e3552615b596ee3397f96e138a444aee1150860697af1758ac8849c36c95abaed58f3397bdf59b55075bddac32104869b99511f1a15527ddbe0f7d4cc9d3c3c717ae3b6be966fa30f40f578512b0d3cdc24b36f4d16fd3ef437fba4dde54c3bebcc40ffdc44e239294e1a366224d0db13069e840ec54e56489b9e5a0625323270dd11da2aebd46af15158fb3febe546fdd4a39772ed354b9aca6da6a4c7bbb7359761b11dc5aeaad67bf5fbf9230f9111ebb1dff525d2b5ef0452ff4e61e5b557eb0bea2229a6a5089718971e598d48cb2b4d6dad22cc199614c8a05c6189b39a23cb9526bad73baa2af6329cee84a511445dda9e1eb9858d459060505059d3bd26c57e27038dc4e682cc516a1d2344d53882774a5d3e974bcded81d25bd72b7dbed7a4343258fc7e30d11eda210954343434344451b8ca5e02a2af16f2c45d6109eb22c6d8976c0f6572fb0032ecbdcb6425ecd9bf39c5b7b736e73e8bd1f726599f3dcafbc1fca0fb7496885dba9db74a184847ed7da123d871c57e4e4cff4dcaffc90cb7dc8e53ee4721f72b90fb99cf55cfd1ccf759ecbf90ef21ce9b8e7391ffad5bb943bddf4ec22f06ee739b7bf5d8f934445605cbad06fd7e3c4a8089e890af9353d80b09e3fa320c82d023fe9a546857c07a14265894341909e4dd09f753b54c4fd93b42599cb79872b7aee774f5c16fd7a6efe48d2715efe4674975f964e3a4e9745bf21377f380ff2de6fc8c91faee71d30ce962351e9232a877e3d94a8fc918e1b7fbbfc7169f471c4b9a0fa79443fdc1ae41142d74411a2a0c5bc24a2067684beb60d03d66dba150d4f4dad90fab0624ab45909f647f7bdf78ad5436c842dc638dd184e7b55f2b7e8b6d8b3938ff69592bcda104ef489e936d5b13b697fed73e8f91d524338f7f917b899fe77ff3a79faf8ab9c51b39ff457c90a517bbbf6a9e79cb5ce39db2d02ca866198fdfa0c1b4276eda1b6992acfb021d8d02ae7eb575be1aa52bd7e879c1c5011ee6f111e7b18e8faf50a81db1c5e3b4edb0ac459eb20a208227eeb3eebd5fa785d8856bdb31c3d144774dc2138bcf59aa3706358c7ab71ded86d2eb3a875e26d436bcbebdb8656db50cd6dca5aac35bb1643d18a35ceeb35a93a70c3f856a33a0c3d6b1743adb3769b5bd8bfb7de025410aa68758a2f603c09f9b0e2c2d3dde58f5ead88e3dc4fd79b724157e709f696b9e73ec79fe449191cc98f3608728c1dc3d32d3d93bf2de24912452af28c6e24144cc74845a80926ae2f82748b51289d746ca24845a809255a2fd0b10ffd36e9b80c5e66708c6ad7951802f633ecec25baeb71663483631444062f5110181c87281fa321cacfa03138ce3738c218924ec7e8463a3a3a89888c888888b26b91c8713622f2d34522c79944f749847d7e5efcf3e121dc79623f5d3bcf034fbc3a83dc7ad0108821ef05792fe847061579bd4eee16d5446e7f3b277f2ec8d97be81ef24ca29073e9fa87cb2b447ab668798144260c79906f8d8628b14fc4a9fb3d71185b783c83c7fd9eb4ef270ed871ce6e71e933f8ecf6b3eefdf8c481749ce3706305ea728b789c2b30a9a966122aa856a01e7346f30657c80bae329db58a09285fab98d0fa9de1af07e06b95126f9fc2189ca9c71e54bdee20cf4e7a364fc08ef32027c59afa6e53900739b6a6884d13460731ba2fe85660fe5d0314b20bee8fc1e00a448c2fc2f7f9af079980470f5ac1e8bb4df8835480df97b3170a3c5fbd5204ff7aef36218da80aec675f81fdecd6af18fe76ef6f95126db54a89b62f7fa7ef3661cd0387838256aa5a2cfece639c245097b0ef085410b0e314e7bd6ce778666721e7b68c339aab1313d6ce849d8a708e00d66851f60a420e723fffac8f0bc46eb1826c103b0bd85b08973ef80eb8409c2863fc5acdac082ac4aa73db2c5f7d04b6b64fc562d5abf40f87b3dadc22ac8902ee73a6872191aade341c0357dd260d652b8efc0d79e5ed74a4cdf9a669cf2046afc1eb5ab375b23a89567de4360805d26a27d17d7f0c725cb5d368ce223ca320827c74ed1b671f30a23886ff82b093973e236bddda5c49f2c87126abceeea7506fd743d77d84e65cb353f5f9d012d5e866419058d018a4ad57eb155baf184b93b5bad6da33b6c295d4b8ea37cea3a3415e490dc2fa9057d7f8a2b806913ff4c354d6c390938e7fd68b7e3827c2f5ef0ed5e5b4d63a97f39caeaec7205c514c7ae8daab7bcdb9cea148a357c7eef87fd5b7088dbb6a57ad3a8820b4f4d144a1d438c64d137155a87f84c1870fd04ea2db6e1137fcdf2ebfbe46710c1b02f65fbec00bb4daaf5a8cfccb46c19b86ab700c4c657115ae3ae34a492f8a7a1c45d15378d143d75a24937c650aaf3d544a21845215a533c8cfa08a4343bc1874b5079244491f77880f4fa25bf48ac34eea32df2514ea050679c0998043eb0506a13bc46b1fd1103df262193d250ebac3adc0aff75e7d5da3bae633eb7befd5f796f7a2d95625cb8613c14bad749b7210d2ad6f60ba4da25b17e1368d1e846e6052128348f952f63bea270e6f312eabf6db018b79bd7dba40eb590c51df4975da7bba120ec333d4ae3d141d9b235a6f93885aa60dd8baee83ab1638ab9819b3bf626ca6303640cf7746e0432d3b87723ab17ce11cf1a20398b0d313c66887055ca79a8ea1fe2d8337b5fed147fc8896da9a285278fec2dcaff4a19fa93f88cfb359011fae158d00c636341d77e4d95bc04e461e348aa4e70ae4567872eef371cead57bfc0ec2390b48f788d6efb4917987da80a78292399a0d18d379c3ea402f6d3419cbec26d3ad1adfff49c7fb743f7e943a80ae76f8525a7fed3774d7b10272a823a427d15d29c874c38fd443a2107837ffa8982d0a1417c9e83c1afdfe1aa30846a748fe767df862272e6d09a669aa8f561758158176845c4eb09a920821542bcde1511f17a426775ddcf7aee577de867437f252c60a7112fd04ae0705383c98f3a69f616b0d388226754568c913336e4857484101769a89ad4e013a7abbea9c1044dccd40e3d68d2dcc37faa30e4b45aa8f511afd1febade7a4d97dda69c9399f8ad75d45fd72efcfcfd9ddffe7a0e4695f89dad48dce0ef4cf637a365b59bd91ae0834c1d296663b2b44877963a61461c3975d68c6c7193ee4cf5b7850c265f5ad680c94a77c67a00121c4d925ca1b3e52bdd99cf0c347578e4604353266d2236c643ea4c9fb67467af02e002047afc8403fdc6565bb80ce3341998cd09861b1d7a6cb4017a926eec258c1937aa1666586fd28da938a821fce120d0dffb3614e8ef90fdf3d7eb0d4601c2f9bd6a37e8fa35bbe9be6831188b1104e4c4499ca9745f29286bce4ccc9182254a94745faa6ddf3ed05fa7412541d710fefc50f34a73a34a5b9af44f1a133b524a042a03946e4bf537459a406d48f6f43132b5838d4acc890d3168523e56fed85082a3cc2a8d6187870c2e466ecc48b7f57a9bf6d5cb9661a73165db76edcf6f4bf6f6d5cfb5c1d16d067584dae72f9fbf6ed75310c10a21b8a6a48842e396e64b9bf4e2080232a1f545cb8f3fe93e475051f1ca91444a0a8c3c2568b2f683c48b2b2b40d20d7cbb41428a969c36676ae93531270ccb4896609054a4e29d5a4c9b5a03c27a7d6aad79680574a959b0f35a6badc7bea479bde7855cbbd20626fc04f65aa7b590152b9a94989366cf8e5463275339a8946449f2a63516a0e09fa7df2026d479f6c83ffd0231a14eacf34f971f269489659e58a65f1f5f7f667cb9e14bbf3d4ca8b234cbbef4cb23bfa5791ecfef8e51c82fd6395e1d26944e33b5005e2751f35afb789e660e134abf6d090047edf2670a171e3ad08ee430f57cb53983f2f02052c30495183ef5bc32fdde30a14c3f60cad8d024bcc046e2c9912f6e7ed2cdf4681eb028b831696629c41cc91383469a639cf5ebade1a70599d555c3e44917133c5b6d785e0c6960058f2547ae0069e1828609a5ef8c3e56c46494024062793ca1aaec021f3131cc8618618b83e7853507e0087bc1c504460eaf7433fd1d3b7a46049cc101870d6d8b96914aa70c8a1940487c79a22485a1a9f8007951d3c04062040d9b372ebe8c684245e448599f324cfed469fb6a223efdb85a810547ea87971678f132b36709121d601cc733793c211726943efdb6b05f7ca2be2cfd4e9950258f2734c246202f374ef0e9f27625ddbed7595858c13d3684044937d3eb52fb88e9bc9ef3dacbce6b7d020d880e315c7c584049b51128618088a095f82195f2dce4fdae158f27c4e2f4bbc2843adddc60f8d2af0a13aae4f178425ab07831f3650a10979cad136308caf494399265c80b6952d66d0795147584893c3b5204a92187ce1db6608a17b0401367cc559a3f43d2138555938013a7d6fafcd50b2441191c5d3266b0914124dde7c7798d64c86b1d34d10747558d2c586954def3f5a689f23c81933081b4b6dc029d99705e27697badc1ae308181a24b992f244ae739aee495e5a96f89bcf6a6e99784096596a769d4c3cd57203e69f49cd16f8c78a9801d37305f55a06ce949b5ab70f2b419b45f7aa47c19681483d8e9067b26c6f75a99b957170b636ccdd2ac8a7e5b35db86d71e638c31c6189769f198c41863ec4cf869cae680629ce3f1f918638cf156cf3493def47ae44dcfb7a9006f9a66d4de3ce3e44db7804c28d3ec9152d4c0494dd3ed1f13ca44eb796e95bd2f93beb4f3a5e7b24493f2a519aa2fddbe7969a276c6b454a565e9d6cf79afcad07821cf426efb9850427c4ca852d422d3e5cfd3addb589afea5db3d2654596ad167faccc86bfd7566e66bcc902f3225f4681d4894e439a3ca20aff7bca4e77997e779e6f9c8f39307068febb20e8f386c77ec9850f8064df40b8db5362c66ea50f1d67c985b6888f8e1d146074f5a699698adce5718201fb4995f50b4b4f5a0ea728405cfcd0d9188461e22756cf00143c444af158adbe4ca734b6797605abcf60ce6cc9cb30d3b8954546d3c9224494db2c0f624499224e915b84e378b24497f42e1e3490e4fd6b224d2ab9fc73de9be4a92a4885586a140f23c129ee7568e09c5c3e29528cf2d9b09c5c3c24bd677ef040a306127cac4d13c748b599ac509ac546bb770f42f49c97f6f30616562cee32f3132a25e449579b376ba31a1c8aaa6c55b9726617234b1ea6105e9fc69b1840820b20d1b3539412fe409a20129e284075b0c6854cd590164cc8d3069d986cd2d71e7b576ab6642e99d33ed76bb33bfdbed763bcf66190dec0bd7e335230633e4b15b35699ed2b4e855743b258a6a9b052d2faa894277dc6081d243abc71fd14c0f293a4f6a6869bb12b144af80288a54a228fa939d174551f4da358ad9ec280900bf95cafa8c575efbd945edb5971e6940b2735faa6b756750e402768e922b33d0e01c28a135b040ec0409a634a8011ac46871aa82a906d7809e369779edc8de935ea59ef44c867141f3645912343ebd3ba3453159c8b868a1a145ce163133409d8341b43226949885c14e9c1f314ce410e2c7d75860a181e6e54c59ba997e8d1ab5355dbda0b458c143c61e143a7080c694fd78e1c6cc0b9224438e09cb02e4c5b33446b2b4de89c1b227cc6ec491a9255fe0ccc0fa5233a18f9415585b7ea805d2629ab435650926795c088bd2414246599db4afae2d3bbcbc48f1aec85bcf696d6eb7a98a6ec1d8302c62043023237bbb2536447ec912058297a328384858e1f1c46a0f89868ece0031dcf8d0e1c2923a2ad22eb6cc8422b16479e2a269b49052e6080b175d803196bccdc193230a18f28c19265d5280ac904013c30d171a00008d2943c38e16253d76bb2da4df3ac2d582b150bd28bacd6242895a4b4f0e352966f090c091ee13edc88c0a684cce9e207b581c29b323b19850f8ca1b0faee85d599fb128556b5ef449f7f9658c2419723a7371644e11ad33765251b482d6b302e3b567ed56e0bcf6f30a15329f5844832b4b0adb961245d2cd44464f6f0494154ada9a88dd0973a38aa22856a14246f5dab3f6918c6dec1445af33542cac0a9717bfc0c81146c09a5099da320205ca6e8c1ad759ebf4c1230626c575254beb135fb78a0b1cbc34b9abbb1fba75a31c631ba9884d39f50e05e341922449e6dc24258751ce92921c69793df6e3b55b284ef21a4016a68a5699227596a49b89dc799da1b130060c971ab1acaa21a2c843f7dd7ab273eb442cc7934fba6d32ee489de445897722d9357a85bdbd6662bbac4ee71b74ce84751e68c8eb5ea7d3e9c47469faadf4d6e74f16403d00e159a245255c26944e4722004c6ba77592174c2832eccdca8b4894a8c869adf596e5537664c8469ca8302d8ae00194ee53cc0b805a084205c9922d6426c46023a39f3123bbaf2f122759e46af9997a9188a67306870d2349f2e498c3f4ba301ca889f5fa5ca17571e356a4068a143b506bad774348204b08b96642c8228089281640ce84701902c6089a0da8191132a64f90283ca9d6ba206518b13dc1b03d62dc88f021c1474c9f1b40982ad89baaa92b79b47c54e9ad31af756e2a4a952b7e5cf0484bb516c9b0db547f27296df8cd21ec4e189e1b6178f684e5e932e3b11e3a8fddfec8d29511130b226408db8d385f8efc199b9acce9e2674e9a254faace87ede04753989b323db4d65a6bad7998503ae9b7129b151cb039d28645581b353bac744875a864040983c4cd8517232e7080ac8f0917e2e0809122c55887357260c2bfae7ae810b586d8c82aa386ce903b5d8ae0c08dc8410608d513b03b28508839be6eace1902ac08b2f4e5c5839f2862add3ea65af6fb0234d63547eac8c1924605108c143b90747bc585eb45b01bba8e5802e7889c31664eacb9906ea6d771014331d63872cca409b3ea91c54dba4347b0616b807169e181d50766f274052a62c7cb992d485208c54008db550fac29ad1e3a4dc384d25cb818fd56d2b2c4b584d9f2036c0b9e19a2a873818c1c33bac2aa90e4d1a20527ed8f131947cab2b8a2e864e4a72c47b800aa3ab506770d3f9d161e531445d1da115cb04b58bab6644111e3d4e20b764a1d0c302c3636a0d227a8a89c5ca1d2daca622407994785169f3467a24c9511f10bb02b7e32b8684157648d8975b6c559b642490056ac9912759a6bc90e5b89a28e45efb50a27af3778adfd5ce113c51dd6a15f55763bab42e756ca8aa9a8f1a2e836c5962b5a7baeac2c39b3d2daa7cd5eeb255bf264e5b0e2a42d2ad59a14751a45cf0c300510325241a92aa93a40314ca3840c1e1e7bdcbae82b49a6602d575667aed49809ea441b258642cd6b31133f15f50245b3b230255d46afdd96f8809d442cac9c336119692e07f639cfb7c9f739f7e58ce480010606869832690e4b1118594ab490d326cd6638b303fc56da5075a786a1df55ade2a96f51db56591f39cac2e80022a60309d6092cb01d32d888edc01315448c0794a0580f2427c47ca089fde07aec96840985b1b6234ca8dc903375cab0a0b3074e16d9568b8ab6e74f951b5913144a48b2064548ec344983a058ced966a97dced94ee5bc5920f1199773aec065c24f4b3e73a865496833843ebb2fe79ccd321a9ca9273d933e03138a2473a4cb208b54970bec8d14d163205289a2c3208b4e0ff65afb18e8b5b7a007f0da5f9045ac5e180dbf373c07362fcad8a079ecbe364a1ebbb7780ce666cd63b035148fdd052614d6d9f102d3021126540e8a2da48d69f1a304cf192b59570123a6c04e172b24435014e19362748720d16da9488c45169850e20a4c282de7737615985019fb6123e74a0dd5179917914a99061115488d1b2e30dc9891280ba2a7c08412bd20bd7614581d664b199ab72651d87c4937d38f81918d3f182748b4a9d922064e9a73ce270801a626e4b5761019d7b0a01b98979e3d7cd0a49b09638cb13fe1b3c7fa31e6baba21c40d4d1d1d6eb96d022b2f7c065b93f6d957c8598f17167168402912634eba99acd29c73ce619f73ce27a4a4201b02a44d589434a33974dfadfac4e467cd5e02132a934e02db7bacb4c1a2f82d02878a7f5733b4c76c8f2b9e0dbfebdb638cb7adb2578fad8fba2d17143379c6d3e740a63e8ffda9430911484bf1d83fa8c0e4b1afc0c2d7636fe1cc966016a9209589c76eadb0d2de64a589b2d5759b2a981a358f7d045e1a89da993389eebb258224af3d6b0f41ae7efc94f50023e52cc51bb017649832b8da1263c896176dd468b48200cc4c8bcfd93ff09445e86143cfd58e2839dc52fc5f4562e04e25609e78454985d1532f10ab3d7615b28895749d72996fc03913c679e5f1b8c7e170d9accccb59521b0d2ac268a0855985d540f1d83dc0e41480b6147b0738f0849d2e1599644790fe5dab0ba4d29a4c014cd28aa630195e6133647cf60d903a071b953f2a5e4c49b950bdb87ce00d683662e420b2e6cd8f146312bd56e8f8566b20ac4a4d064ca8ecc34e2296c5184996c7187f10c3d2e573961b9f1d03be179e185df113e602e70886a8d971a2238c0b6309d89273b4801964578660b153c44425b3a247cc152d9fdd0248f0fc2ac0e1774996e6b3e76cc5c967a7c039622b8b161c66666e55fc2080ab4a51d592e78b0c1c5fe484c9b2f83cb18f1338c9b20cf0d9259064c850d6bd11a88286c208023668c0dcb8b81a1373002db49c01d0ac21028645064b100255907cf0001fda973624c054bc7d39e160a44e4f843752625ced414b5124c538eb5e0754915a3ae1cb6c009534a00945b24a20e1776f6c00547e7c760f3e9183972a1f3c9c2041a3858a04ae33a7549a17b724686cbc60e766518954a2881970b7c6767cf602457e20e48b0b26c4ec08f3123542913610f0b0c2f5250f1a2d6c528cc91393be7d38d175b92c87ee1187ee935c402ebb674961770ef0d9c7536cebb3fbc6547c7605b81673912d1b2ea694e5186300b75d99c4c6db9e321a675b699890c7571efb78fa1cf84c28d02983450ac8991c5e4f49b210d5400d172737f46c1dd1ea6042e55e5569bb18560192c48d123956acd0d9c213f4c4e84afd4236268d8e94337ab4d2b0cc68d9ab6724d28065a5e913d55605898fc778ec2ceb31efb195c7580817173379dc54809548319ad1de751a7bbd9fef2e5927fa3a7616e3770fa3192155e72d0999163ec4bc4056f4b6e5c5901e6059c0a6acf931b3e306d71a5b05881340593aaccca090fa1143cf98303133e9f6edb0f27a87161d1528553548ace0f2478815d2d72a51263efc5a654798125cad4d39e34bc2bd27d80761d1bc02fbd6566b7d67d7f9376e382fd635d75ad16cadd75bbf75ac54af2518bbd3e5f3d7b13b6b62d6e1e8e2584dd1da36bf1144851b33f311da04544942e5b1678cfd0b9f3fbf8e7d792386bb3514cfbdb1678c81a3bbd63a0cc333c478c44b392807a175092ee86549204ffc534540d6e56daa4df902ad36b1df7b315aed8c6a86b50e3467c5163f365e88a9b204c9d80949c0dab0b15ab3baa1fb4a2550a0dff9bc59a36f0e5fcfbe7e7eca69d5da479dd1f302c35faf090e8b05698da24ff45ec55e5b82415aa3755c68b95e7b1eb597b7497f4eb5339d3ad4b9ca985ad46ee0e3ad2b746b473d7fbdbb64bdfc3a26e6cce3be7e6dc118c1ea5a105b901742d4b530e3938fee4fa3bb579acf9f7c1c9d2c6df4349f8f3e7ad9d3e86bc37a7a7a7a7a1af398c7343b5a3bdad1da318f76b476b476b4a31df398473bfae967069e6ec733fb4ea62c7bc7313f017d199875476b473b629b7df7bc773cb3753b8ec0fc74da71ccf68e99c99781be6c476b3330dbeccb3e9b8139cb3e9d633eb34d1bb3b55ed6eb1ccf31333df9385adf799ee3e8cbbeeceed632019fb2b53e0bcc4cd6979980379765e369732d1b9ff238663bdaffe08b272a09b9ac8660bd7a49f1d5667d758b05682d45141b2d3abcd26dbdbebe2d11f2e62b50922f2b73dc70a999132505ad3a0b125d76cc68c1a32dddb64cecb74d0bab5eb71476ea20f6c5cb8c9139744aa495c49b5b1d3824b8c0a865c160b04505ab3e56af55ed0d9818655c74793b4b47749d39a951e5a5041a206965aa695a5b5642dc9889494bc04e754d1e2e585a846c013426ad2ce2b0bdf1f8b302cb9d74d7b5bb6448941b1b6edadca4d56d541d21789b50f0f4204cc779f519b4f0f5d5ebab77b053befa59ddae6d05834117aa57ac0f751e7ad9bb4d461ebaefbad7872170c38bb09f3ef40e621f8a55b22cbb9a85aec29e35b68ac706f77c588652760ac9b7adb212f3215198a595e4db72792df9d08a7d68c9b27c88217c31e4435c68d72c1eb70ffd06ff7c78a3867c5fa9a90f7ddf2aab0ffd62d1f8f0fad8374b8beb7a957d2896e543b30fd13eac61765ef8b017de35b60f2f9eebf6a1e3e0181cc5f38da5f0d487b80a5b7de85e40be2cfdee31a14a28419ec7e3f11c58e43c9e3fd9785ec993c2f30f29f02a8fc72392040d47203a3fdaf04a70664b0f332a2f64baf076ef8d58597add227ce95526ca8d2fdd87e24b2974be7460d894245ffad5f3e40b8302e57d3e9fcf6f1e13ca57e475277d9157ab2f0afba2222765bee849952ff28bc7842abad356e7edddfdda31a11cade758a7cd13113d51942772bf4da513b91211913361a216249400910283ab888a94a88e123f5f565ee470c34b7a5edbd9f378bcb640cfab03e5797eeb9465d946e709d06badb52f8d93d744fa430aaeb526aafa699e2e72ed36cb45b5d65a0dd5a3a8df3926148ad6732c2a2a2a2af22bc7842a42ebe969cafef7f3cb6642fdd07a8e44447ee388a569f1ee7ee198505e966559966559967edf9850659ad6fb7c7ed74c281f5acf9169089a1e3968bc419283c7e3f107caf378970a0e1d47e844492992f2fcba31a1786d4c288d26cce7fce4b3bbd206119ed23eefb2139e674f216767a1cee75c565df9104b8bfa6cb52c99cd727346fb3ce5c69833566cbce0080283881b3166b0b0b4d214a4eeac283b13d2e6cb00f498d0d2f27102ca5bbaab57ce44444444447ed9985044683d7dcc0bd79765a9c6e3f1783c1e8fc7e3f95d6342f1bcf053d9ebd7eed368bebcf651fb556342e934663e4306bf696356d90f0d0d0d0d0d0d0df990676131a1f192e3b367df78c68c093584d6f3e9eb05d56fb0815f34136a03b49ea38ba8dfed76eeb789e73b57ca3b7ffaf3bb5d93ddce53b8bbdd6eb763c99a0b291d5c6af0ecbc62270e02b920cb6143ad86989dd3ef9e0bac0e5c5079edb74cf9e5a2c69765e963e9970c986e431561cac5e7ece397cf7ecaf8ec3ef7f1d9812dcac63c852183840d11b33651b27c4dadc85d239cd8b121762648c78c8d333126d40ec763c0e0378c0985e10b878beff5dcd7ebb9d2edf57cec9ddff38a76c19850daeccb5395a84ff29ce4d7cb48a5ed857a2fc4e485dc6f937621571212722615a9908fd8690238c674d1222586b6271552c144aa8b98af324037d27dbe90e72ef94bce90ab5898d7511899cf62493e8f457d1e13f3794c0f952a9ffd7631a13299d26baffbe97593d21b26304c68a12993476b035f7b059b23f55a2f0993f27a0c94d729b86c9d506186c89c54fb2d33a13497a71c371ec9f36dba5b46188fb19276f23887b93076154aace3310f27c13ca1b01c538fed0b597a6931e8f8e16304cc98d42b4813b11a5a4c80a4fbac64bd3a765c38abf1830b9755d989a9225559ae64a4db0677385280c501abe1a60c52963b6e2c88904de9c2c1e47b3dbf5a468b24e79ce5aaec8584fc6241024325cbc5151e6d54d27d3ecfc99ec743f2bc2230fcf8d1f1f5244ccaf37b25ec0aebcbd2af952d493764dcd87aed3e40affd92b179bbba4af2c5868d8bb01b53bf0bfaddd6eff660e9f2e39663cd54baf35bc5a99850580e930ff21ce4776c8cf3a4e7234f92e4ce4992cdc9933cd208e91fb0981c203b4b859dc694744be61d37c42881a3058999584a4e915291654995386cd21153fc10e9cada2186e6a74f9aab13612eba7aa4bb9231b16961d3f3d9af1886736729ce551c338ffd869950586bf78d174c0c0ed9ef767ebfc6b71fa79850235acf310c9417995e1445dfc0f4a4e4c50f29b09ddb4adda6aa9d28fa289e22d8ef767ea59850bb166f7e68c4a161852c7fb110f239fc5c040268fe80bdc538f1e32acd7ea388bdb9327ad22f14125c6b5178a66481a5385e78ec59eb7117992e386af8b9d2c6478afd3e115b737badfd3ab94d72b95c999c99cbe5c4e40090f33af539cf391fd9c67cce4f1f8fcfc909f4b939643e979be3e67374a67cae6dc6e7fc769950b93880fe3c4f3f5de93c9d099fe77962339cc3f80c9fe19a652dc696b5b43745c2de4479ec4038301e3bd3930e387b1e87c5e1f2d82f13130a97297d7efabc819f993efb1a89cf39afb9f8ec63f6bb44c9939d3732f2cb6542192d91f23a1d91d7b9ebbeaec85e87d3d9213aff809dc654f7baacfb40cd192f72c86e1c0972825a183f5eba48f0b91aa14a8a091a6225d05ce9e4f859d1040789213e741eb604cbe7ec370956d24549499ec77e5ff021a96d5bf8871d5782fd994e426dfbd9747b86246a8f50104b6444e15143c60b272b7af884c80048113d64f854b9d27124d4ba3383c490b41a6554b0e1b22ea0a544850b3c5a2fc4181193e6458e39468488095ba1850cf2a133853a70b01012a649091f42d2d0bd888fe0173e623fcc66ec910104ca0f112754b4d8a86aa345e4cc4dab48202e31e50fa50c044a5222c81b173229d2d09d489dd36643878a2f26ccf6ac4891f3f1e5c685b0305e0271093224d49b29ff7ed9b3d99e3a49d8c4a1ca9344abd8f3a1ed817e1816c40e922e7ddc3cb99286ee57880915662026b10ecd671768dd447359d6592d8fcfa1dbf7e18ec7a19be9c3196d637aaed078f9f84a3990644a09b32b6b28a6d230501a2d25b468a133d625d5e8f60f65a8a971e18aebca559abf563cf930f49b55769b46114b48c412fa4325d4f657c86d00bf8544aa9d48b513833b31b81bd122089b1d64f80ca9624bb710049c0c412b9312766548ba854a1095870790395bb65e48b79089386361ba6429d1822bdd4215cc94b23e81f62cd9d1966ea1375c677e38311362e44cba8584d0feba90d9dd42424265b74963fd16d2f15b28c76f21abbfbf85a2feba5070f7266e9de2d6d976b6b95d24626ce48051848a9374ef70b0a17892e72c6b2cdd3baa9c0fb022526a6326c8a47b8785c20b202e44facc29ab4af72eabcb485515272ff4c448f7aeeb6fd7151e4129192db2d2bdf3fa1dda5fdf99eddddaefd4fefa0ec7ef1dd9d5efdd8ddf3babdfbba8bfbe0b2efd3e75816e50b7756c7f5d87e7af9fc1a8b7f1fbb4aaf1fbb4fa7d92fdf5f354dbe7dac9f6d74fb313ed0a581b33254a9ce1c327dde70bc07029b3e70b903d52e93e37f8ca62c76dc89a3d4ed27d1eb13a63844ad612376dd27dea39e1c28b1c6d7dd802a5fbec9a009d16806c0c59d3842ddda717f0b7ce4cce4c2e2db7736e696ece5e7023c36a4f8974eb5c50a28c0b687474d8b9926e5d087450f4d1a14248151fe9d6b990472d0f9c1d47cabca45b97f5b7889b32359e4cb1a55bf78615052dad0a188921e9d679e9d45e87f6d775bab2dbb4731abf7564337eeb64fcd659e9a2feba2e8803fd9d7bfbebb96054d5ef9c950bbf73317ee7c8fe7aae2c6776736839b59d5bfbbb737d8e58a909616b934196ee9c14e9640a8a2b30b2604991ee1c9506d85c70c5d8f3c50b9774e7d4861cf9322595254f8a74e768d8f192d6040eda0b70d29deb0243e6c50a204066d84877ce8b8c49c6f4dfe636d9ae8967ac1c2bff909564a5b965c2f86d52fd36b7c8ccb5bf6e9a661a00c8dc30a3a4851a371ae936a5a0c06022c54b541a8b749b30d093c58799193781baa4db247123ca1ab5215c88b848b79995e177f9a6249012dc9f2edcc6b9fdf5b1a6a5cb93155b27d25d4ad50193d2d366861a2ce92ea9fe6e59f3c2ac4c931945d25d0aa08b6bc78c333cdc82e92e655049f111a5ccea899674975d7f85f829a2a2c7141a28e92ebdbe4cfbeb65c956aebdf85d92b9f85db6f85d5afd2da3fe7a19dce037eeedafe38253bf712c7ee356fcc695e1d0706a63bf716b3817584973c585226e5132d28d33c1eb0b0c40447268214b37ee4e178f306041dedcd1926e1cd6df2672687411f2168626ddb8ac1159686626daaedce12a926e1c17b43253522ea280b5a51be7f583fc41fa7e9359e4268351565b2449a66d728d94112423a8e8779055d00e0a46596d0505050581f91db4f63788cd9ea821fc3911e8ef1edfacd4e8f6d7c7a08adfa3d4ef31c5ef711cd3f6b8f6774c23650c1d2625dcde7ca47b94fafb9626450a3e33eeb849f748f5378e891c48b014011296ee114b88c8d6169a1e6360b849f798a5420b35324ac0e4f9f396eef1dae9a2e7049133c137e91e5b20e611b7d8822806a3fe8a277e8b51bf455114d3b6b8f657641343e122108a36527286a45b94fabb25ce9539507ab06549b748a5d4428d1a163ff2b49d48b7b8023564309ec048935a916e514c9d2f657ec480bcf1936eb1eb2f9085c5c7d78a185d71d22d7a8d20fcc326ecfd0e570877e806465b407fd06d3a18651592d5f91daefd0db77eab63192a9790dbfeba41112366c52503ec496aa58d060b3029f00049b7ce0aa9f4a8548b17ea4335c9105444240004008315003028100c870583c1681c675916e70314800e80ac5a66489888d328c7711832081963883144400444004666d3002a723fdeb659db35e7caf883c3ec87641ca47b88737992f84aba08bfa31a496044025c1499bdf1d1eb90f00f4679060583aa92c87016546e452cd0c296b248a51345fcaf807c890e1c28fc9edc7135110e0b5442d2c634cba9177c6642cec9032651007b0c351818c48bbb7c66619f56b8644597435ac0b5093bc5df65720553b17ba4069b682114a19c654ce2c7ff86c0aff52fd2c81ce6f6c9e19f8b90d6f866fb569bdd05f60aebf57633eac03d82903a4d8f9d7e5efbc42f772797480e052ca0383607a3483e3ac7474c57108be490d5a84d16360498c34fd93da0faec94453498e970f725c6aa627dcc39b8d2b3c1635868aa4f68cbdb23051fb2ebca85fb2c079e41209e30ce85022f173b6c4fe83cef66523978fdf46712d1ee11362ca9eb3670149482a77d339efa4623c769983c92f5a2b2ec349a71b9680742995b4db691e2dd0b9c524655b4afbf03e3664aac9541f437582e5d22cd6f5d2eade6a299b2870425545fb93bdfd3c6eb20ac6bee4caf2efd8b4563056b7eeb523b093fffa4a8fcca001175beb74e8bc7bc16498f87460fbc1b3ba87340c70627188a38e046e33d5d0a8d10f0debd0bc0129f56643a9ad07b3526965416da7eb40ac2b354f3680a55b1016928bc11f77050881ac45e90dc71b5f752c322e44f6e94fde13e80aeff5563b9f7ae4e777740a95092c12337f70183fddd44bf141a4d00b3c9886373288eba0a33f00e203e37b2d88fab30a9440386638ec7b3792bd8921c85040d0ecae07453e013fe7e401889d084a5ace5da5c6811d5c918e5254718beee20c96c72944e04220e474354cfdc850fc48bb79989e383b72341ba3296438bff46df9c1dcb8218c53fc8e97b0df892172ef63dc347e019e71601ce5172e78bbd9fd3a335546f44fc0d8980de43a6dd5bc547da297d2e6dcf41beba4842867a95e84b40e2963c85156b05eaa0296344393c4c5c13283c81517ee29c25bf5ecc2faf2d5c33ed1b089239ca6e21c4548876aa4baf3724b61f0bd0a33dd12a341713e03e33b841ea8a35106a6da77821808e1a4da16eca0481e452ff9a6430d14a6bd84f34bcadd0f552f34dafd05e995103f74fd70a9c02e78e6260125fa753857d39095e4838ca8a1832372927bce98d09c7b513e3bee1d6d1914d1ed5fc85b74e8ef36a20008d36bf3c16f58d02e439164f31eb6636f0ba92f25dbf0cee6ff1340c2a4114a330a141c98d1f90388bc59e490bc67a6bb4605192575a1651c6d9d3dd3999ab568cd8df054ed5c9174901bc634c07611c0064f87e8df8e8397c215af3db8483e0201b4d0bf99ea3d6628c886b01ba87c28b9d5538e13e08d3d7572c2d2270a13bcd34c36c3dc0c67e3726696c6ce91ae2a3ac79eefb73df3deffc77d75ff7dcbd792aad2b42531e0bc4b4573557190a4d914d732acbb8e1d488bce4f404a461a020392e8384d24a695dfa558cfd3da7bff8739638abc6bcf4d1ca3968eda2aa694e95b656dada9660aefc36d96bd3bdffa8fcb8f9f4477e6cbb04cebf546e611e70a6ba639c6e731d47bed33a5840d22965852d2e144233415e7f2464bc738e5fee5ddcb7eebbeb9e3ff3d81f00a6d3361887f414ed9dadce268005baac19546c5455059fe752d90dcc3a6241a72c7a34c95b70cdee62d90818aed8e8ff1d73aaa4a4108e9a16cfbd275bc0945a68938edeb71b31558a1bf77529d1c434871c40b1de36631903e648fffe64fdd328766f5821a2a7bfefe8d0c3d46fc23aad98b8a481f64d7190523e28e4313b3b02ed112bed89ff372270838dc184ff509566a20a40a7023911025668725885bccd322926df997a5aad6e44776679c6ddc33e8af3bfde4f23b5c2ba760ace76d5d78c634ebb181d14d942fcc80942456beecc5f99af682487568bee347237f932637f217b880c58d75da46d9196d76e0a8377cc8189e2ed09f07d65c899009d44798d264f903284c59e18fa6190dd8e1c0f9ddae0a311a4fe489db28a2f48e5b69ac77b1fb0e5459796ae505ad2cbbb38d4f0f94f443ff6168bb21ac84bbd533db11f6fd6f0ed413df9a1aaa1febedb2bec9163e3ec4ed1036f47bd9f4a610f7a0c17d6b582e8a83b335e35a7ab4042513b0a1853baa639904095991c530dcb32052deeaeead796a7453cd2dbb37d4cd44abb74d14eaa21e0059bd02632c36e736bbf16ed1ab14889baaaba3f580d539c1b759d2c42d58acb12320867b8767112a7010b04b6142f5f592ac1a1e055d57e6e63014d763475be83015fb8850c51c827de6e042ec0ce2104f00352798bdecceeb8f0a372206c2fc3fea6895cad90e29feaba69b7353104605c53f842c666988a479c5ead56662f2949056d54c5b86139e8f65feda5227dcdb7ba9f46f4fb82b52514388ef781a2182e8056066f799370e826f22982b35f08145ad52be10ef186543de2583a5d4c4aaee699dec1381aee156e5ce1b46ca46b1c911e4813eecfa65b591c51d8ee0985ff2ed36f8efef85b09f77fa9e57c3617835ab3502e06c472b0c3491d505788a300bccd92659aa6504f8e77a3d54bb62608b43d38c5e608657563c081154ba1853def99bc8d6610cfb5d8bb1b9824fcb3a61b64e9e874ad1f3647eb928354547f9770008ace858b627012c632a32264bb8ec8f79e1f194c77d642645a00301ee8a5e9d9c0d7adbb5a7884e809a1d77ddbab994e273f3bcce6e179a925e911826c2f12d5c5ed6cce01627062226f882dbd5d8e57de8cc1de57b5deaa91c89a7c543c8c161ab8c016e25b2cdb83d33a0abb3a8152424d85a351c27314ca504449d2e87613a9b045f9a4ecd186365bc9bcb5a40b469b6e5b0e0cfdc634a46267c722e53f5d7688afe4a24136a62ddfd2c637300d53d523517726409b8b1b263cb014e71529244ccd6889494044835ab2767289e09fd2792e700ad9a3f0d25cafe73b91d1028e6c966ef84f9ae905dda634fa8a39e4c9bb2d69d044fcb239fb75200cde174d7d47a63336ad698e69c0bbcf1827e34f6460ca948976696141137ccedb82d1b73bd4978a27e342297b2284724b072c61dee38d3ac9508e1641fbbd23c539f28c6f77c47c88417a6334645fd4737682df2dd624a331f4d562c71a9b849a62546ffc2e4320c44ce2adfa638f504f58bf1f3a9b869e0d548da7d2bd0c038931c1672cc8ca29359d07d05ca769d40b32c1501e0807b9026d1a415d854ceb06163dd4396fb0ec0c472df26204d90064bf8eb1fd22da38a38f9266e8f5c1cf719fa38964e4f5a96eb9557ac29a2d75d4daccb7cce9b5fffc151097c6c67083980de6a4c0dc6145e5d0aefa19619ff6586994d44d072472411a9f3ab21d8ee0586e5e16694f96ca921ec880608ef1746e479a72c6b41519e08b6b6fcf3d30e8af9715bf8e283ff68f8bf63d7012c3e595f1bf595b05f5767acac40a7ed9c1609cb5487612005248fa612904090f703e0577a79317db4098ba4949a6b7a4be5eafe5be8daaa67f95ffd0a8751572896aaa5b704eb949dad431ba35441a81c89840404a934b968e81c8b0e36616582ccacf24232f8983ce1d55b1f6acb253455f87be656dc72a57adca03daab283fb93d224728e40d4a335abbedeeabe3a1cf33ed731e2f68304eab9564dea7578b0d84d0d945ca320542e7570ddfee649702ed97852edf30c8de869b8ca5bf1377e09a6870aa3c346c5666c58087e36827066001881cecdd7643fa00b0773f8345da707c9a1a1a4ea679363285dea001ff648d24af941fe764042af149da6bac2020236dd2c8064374f296c692d871faf87bbdf164746a0d426b633f4320492dad8ed2593a4f58d85019b480b082c7109f083ab8e96967c21994e7fc2a7192473e3003beb53c48c328e5aaf1958031645a7eae9e06fc7d4be1651e73ee90da996d1681c1564f782b413747943a0b03858052620734167abc0d87c5fe198e044670c6cf2872594c7bd0d2187ff30bc733f9223e121374bed7a97063cd908f90147bf3cc3dad5c980a06b933e23bad745df83b760e70b8c4a8cb9f12ac8b6fcc7280e595a01a4d4316e2b53829203c5cc8e97ec0b267940c364bac800f91b3ccb4c1edde31ada848865a1407faa349bb3b50ce59e9669cadfc2813fc33a126c78183ba28069f4809fcb392339e41d1129121a6b92c007ec562a5c60245c54b51dc1b2629a59f0b293d7c7d7c1d161e53bace79a997e2a23d049338111c6faec33bc6831a831d15fe1abf4c1a2b789e137731e71d058c74721c132b1badd335b3a8bf833d6cef0034107c64ba6247500affdb128a1f7b632de90e5631d803a08c6cbdca9c471eb06403d44fe4dd04b96882a20c9128b7e00b3e62af75aeeaebbe29a8f5a8b5beca29e8d78dabcc54bba85536b80535b291c3655fab1d69af9bf10f2d7623ca5e3432880a76a0a8126343a2c8fbeaacb055948a8ca8db1ea50befcc54cd4dcd57ec1606743ad948f4f519983975717b61e92d78514f3dba7e57c29457ae5a6c32e48f272fa508f041f99fb93c120337abe67dc6224b390b1e9034c794a190c440e1f2071a411b73eab4e82ef8b61bb3f7023f59bc19ccb1a1d458f275d6fb944ec8a20927b97f3a4ab0fc417d00c03c62d3de2b2b4dd82f12ab05c2aa00ac88d533419cab30f571951b0006cfb44a4217e4a3a600b57c6d35f77678f7a1aa500c16fe444bd226a34af65cc790126df56baf35ecc898d49efcf2d8d1fe783921f2f455d6d63bf553796a8df9bf6dc832b352c948cdee48d5f21755b091b45f9b8d217d89969944b475defc3ea2c3e6dce6f1f943e45455ec354a9c72b5c89fee56f63e7471419a185912fe189ac58e2ddfec4494c84359f28a46bf331201d1e5e9825a9bfd7e08cf4694da61249643613c5926bfacbcef3ad208e3a91f6a202e1575c4e0277a05f3ad7c1dda8b904d5e2ca849349cc4aafeeca1f22a9dbf4cedf219b5cf75a7a4a533c82d01d2a19938579e9c85240f4a077d5a90031598b3a6c5d2a0e9345a17fbf5121e20ea006ba34470ca4709fdecb4e2d1735ac7ce49e1a4ee4fe7c2579155d4ed718f78a5cb9e13041cbe129c4f1f86e04829b87094947ef9a4ce003ca64158beb84a0ea20ec5307985b13b7f1be74cf0629e18bab1eedcf55799f735934742fe52aff509365dde743536dd6ee5eae6fcf74a52106ec49a53ee756ab6185fbeb98792daac0611f8d5ac014f5c9a35874fb4d7f4987996721b95b5dcbe2070c5ce4d8edea6526ff163a4ff49a21cda370172aa0a0a5ce8ad2cbc38b365447efc76b718c5b7b2a62df4f9c2d380ebb3849dd08eeb6381063e291d835913afc9bcee4198f48ce51c5f442c455756ef2b1255376c80d32b4e722be4967a6589748be610bd704d81791ba77d7aeeafef6c526c564e775cb974232de8af21f26696259d9d5fbf567bd16da0bb11c0b6c71a1ecf227f2964246a660a2a8d67fb7b9454b999dd2c74a74200c7d797025f1c2bb9cdb0346f90af6fb622dd5fb1e384cab91f6cd0b5543b019f570214649817ab86ea9199feb230f47d0085984a0c01a686ab3797397a8eccef724b86fdba004327d122b3febf815e96aec414cb3bd2ede141e2d15bab7dd05d0fb88ee71496591461bef94ac1c07bef83894ee866aefdef8db5b70467e983bba5096062504fc573c451adebe1a5cadc4634095829c54ad7330150370ef17a388bf9ea3a4acf453b685c548766a0e09cdc89b407ca4adcbf2be55dfe21407333e817b7af958f4695f36ba8d177baab9de92b0d07b06abe4bdf23a30a26434bc9982bedc9ce69ecabfabd3048996cdbb11a2528fe575c7f4dccaecc4c96404761968dd5ec062e75ff5bd2f18afcb295d26129461098a82e90a7462393979aa8b0b9d0d463fa14934b17a4f86f3fda01af5456126cce80292458d0bd4a75bcc4666fe7f49f4ead1e917decf046d157129b7823948fa16df4336467229121c2e61dbc9c631341a8c97afec4e06e0894e86b61458abbca9a0789432110fc9f921be3ee7505cc4dbe584f82e40ffce21f447eead11df882bac5c92266b519f3c47d439a9cad4ffa6ee5932bdf69afc204e3cfb6108000d5b7aa13a2affb9855c73e652a79f30b578da8cb583dacefb7f6e1f8b9a77694c243e582f9cc12dd3c987ff1ecc656e254fcd16086a82c253cf327125bae561ddf2e4b678b2532afb92053d1a4f44f56a69e66b2beb96fc7040756fba2618dde68a241d78504b43148ebcfd01fdeaa6fb44d7f2a6c9236bd61eb7f8c18c2dd7757f89e3870e73b2a1665b515e66a69ea4c9dc2ae63552cb5e4ec3a16a56539bfefccda30f6ccaf4b08360223ede8cfd34ee1872e8766429415724a4a9fee56070bd5955f496c7726517e08c08571c80c4bc238a59f522f53f0d08ef306bbed484d69d03d9e46be12279a6cacd805a3eb8b6a21f92ad51d7656242d68863f3287526f630b66d0e7ec487e9ff2063b0ae1667973b34a19e870266870dd0f83f2f5c5366ff47673f704233b2b64514b425a0b3e6827dbf9c77d307c87a5028ac0f42329ae899255bc0393186dde79a11f5107db8a6cf7dea40373998cd50a10fc776dbffd1b80075cd57b81eecd9ab0cadb1060d71cbfc5c75de1e50db6c7aabe38a8e139a161dfe238b10648fcc07c4606614d437c11601fc5b08a8ebcd65d48812cbdb2c5765e25965934dc6dd01517593b902e8176c9207bae692c9351ffc08b597be56df64af2cbe94d476b09e27027c440be0220157e172141e362f69ebb75cab5d5a5f5c1b470b3eefc6d66f3a54d96a496d207c532b534f063a17c283b743b0aadfe6414b4b83b0fe8d20a48fa8234d0ff4c93f8cf49401fc7eb28a906f2e695ee75703482f64934dded45d2037633c2b13250ef82220ac2f1104ef8544bdf573d6761f6e76cf0f205b4e098459252d2f52910db70c2794d7bac3e49641ef40f280061c121a9443e14061dd87abe1dce50033524ca766c46cd409648b73053d4205232a32cd4adbefe056801b21ecabaaa775508c027bb377b278907987fb89969e9c0492df0621205fb2c05013ff8721b0becfe57480cc54234ac2bd347116902537e1efbe5f0fbcc17ad9ea3b446b980a3e78e8bd0b0f9956664985441da8e6d8c50b3f467d948c57c7c754149fc71775d6b83264375a429d8fd63f11ca4e10638195360e5bc7c1fd7dd92b7c91bc741193cf292b19f747c9c1be46784148dfc7dc5133ea59b44d59c988bc85de28be2f9ba7d99ba32f45aa0e092241adf43995e9fe0526eaee44666a1374442ba44653a61e673d8e4ccc0d6b91cb76b2aaf5cb9533317e3a14376337c85cd62adfe473089526d3e96e5a7f750d34e510ba808ff2faffbeabb70175c3f21ad09f50a929839acb326293972e0651091569276060fd046bc40a3fcafc25bc0f7993121cfb14afa37dc66edafd4d5b1c975263436cd9e3959c108873945c1c0b163933bc0b0b1954436d1622933d137a6cb0f13063ff6f0354fdbce2ab444fd2d9fee7107f32a9597448df8b093e61f874618a4cc8f73e35684aa08f06e9173c86b6fcb2603dfb8f0111e46556313655b9251a345c68fa825b018f41554c2f2d3c8199bfb46c249135e306a58fc82c502061b4e3e5acb74cfb6948750a948f9a4dbaa010f056493a61b5684cd301e600dd613e1d5bb25ef51e430bed74d362e1dba917b4f6b0da71788d3c0325321e575f81fda10fcd6c1a79dc849879077f0897d07496f346f6184ac386ee0a1d1a4bb8a64acfc2caa52c48aa4bc346296881c94e303d30157f598ac6d56a878504a5058ada4500d847fa3f0d70ad934e9c088130fc40e79cb83fcbfeb887480630d9addf047688788793797956afbbb36de237a19e4b99e054c1c40bd345817b17f71eb5a791e9447bddcc6911d15dc48454f4fe8c12850a2eb0a9535453f9615ff4e7578d601225afd66fe053c76b3b05ed8cc8f129dbe83674cc32769d0aef167a332776cd7b250971255194c518bf984248d80c1a3c81a45aabaf06e539f4a2098ea252f188c6a2bbd559f9195b8236b88d38f05d0b545189223f91ccbc80ec29941286c8b9729776ec6b2015c393dfa746e97fa364e727e6257d3814ff420a0d555db45e5d955c5ca213666125c482a5b9c296fc2a0f3b82b0c6a8895f5972dc7358426c2075d4282980c1075a4441a23ec229e2c53ee42c421931e1dffe196abc3caf8fdde60ff9aa0f528091d2b3b780184f97705850c26b4cb553fa239203673512050036744d4ab14d6c0897b46792ef7a960140919f81a5a8a3226da27aec89acbbf2b666322aa880ee52f640abcd312412e0d156c9484c20fb4975d2ebbb1e6f1accec35dc0950f9cb361a0ff32ce89b60a2c5f33459e60c448feadceb7310fcfa1236bbc5110113286a3c672ffe784d53d29471fd320dd2de808b176ec797acf4f859e2b83fedf03c625ccf6a295c5ca73e017cd79583f026aad3206c0e6c7f71e29d29ba2d9ac481cc29794ef1664db7d170eabe758ddc8c08323a6b4ab4d2d92342dfabe494cf0a5b780870834329e0cc535fd5a739e457c3440d24b2d7cf7dd321137f0c55bf8f2a2275db90cd52a85df6c2de43ec880b11ee8dc2879ceb4dae01b21a7d38632f6c56c380fe2fef27406dd84d7d2ddc35497367083910ca82b53df859178f91d64d0084218768558593f7608c52e58b133b30cf472663c6e1153196d9391ac55e017411cac25a4978f9d291a10f64a22edc9f4ee02fdf2f61601f70951a056cb33c080fe9b2903e2619e45e4a96568f172164783e266a11121fe1b1673c07510fefd7b2a4e00e8dbb75968988e254fde46f31b64a0eaf9474e3ba7bf7309100038f75411d26632b4377a03d7caf802d5c033955b5b7e3c6997102d1ec0e37e1600e2ab685ff1459d5192e2779ac60941b8854b55ec146a05e29962ad67c2724738dc808181fd5710d7934f7d6199f0dea5b51b0422f05696f7aa62ac3962747b02fa00694b4ff391819dc2d6229950111f83c7a8e77077212154873f29b5dd4d053568845a81320b3e80d0a22d8953d66e98cc2237f45fe1679273976811c0f5c05097c5659f303cbf3ba5bfbfe27d8cc0cd468942fa6163093f68f56bfe6ee131f5893358b131120bf680fd21ff2193c117cc8312c948def9d243053e4341a11a12ea9e5b3589923f9efa6b056771e3ea1a0e12ee0a152bcc2eedc9a1d774f754d675963909c75bd6e297badc7328f84edab8315deec4bec3e3583ffbc34a700112d00beaa4875cdd127a16141d2fdfdc6e817b6b69e2a8c1a5491ac667bff864ea3a9cf87e985b85fd0f846f10002ce1120fd698db4d07804e0f13960da040a7adf9c28938fb40b726df4200271de122080fbaca751b51d77c0c2db03213381c4a0a21f2ae79912b47b5c32b8bc204ef23f30b3033cbee882dbf6310a352ae447e579bbe3366e15e98bbd8b4a183219a0ce3abdc6c4c2e553cf43400870161c2b7d4370ab13f0ff1ce1af7127e7eae9c8a23fc7997197c969552a1a11088ed451ad2033f4ae02cdde76f8df0ee3cb0826539f2f82f5f54f4a0b63e92372c22cade265aeb80f0e5f3f0bd4944d0ff1d11ea4028c4308a5ad0d64743bccfe80d296c912d0f7f577ed566d19722e602c174190ace531496c06c738dc7dab5d50fc08792a4437d185e8cc5572e001f8b5e7f01b9124597415d1c4b53683e474e4829a0e18ff93a32e8a1df5836ca008b0eb65d1ae35e65c14832f5478fd40e5a654f12726e639b15a070fb12807cd13eb4d19541c7c92920b60aa08c11d1ad79bb3058562a27716949b35ae5b16d14a42ba80e28c2c8a2697295d4de42b6e00cac955a432812a31a0695c7cf5c644d864f5fe058e506e9a520b81d15951b0175af88f967a4b97c8794055339553cd75a410389d77fa6a7ea70d8af0f5e0872c9f1c9139a1eee21c6562d16758f6d4cda442d98c99a38c8dad958c78d0ee3dabbd5ff90def86e8e07e3f21352abaa743de6564be181232f63f2c194e154fb65b01eea9c996e57821143d5f155c3c7265fff1e27063f7bed8913574f8082224f60b9c7e16f096c5631cc24f722b85aa60df7343c2b89e3c80db1859efe25846d76b8d59cd19e8e8640d9f049ada227338d82d057c045b401578ee92d9c8bfe54e495038bb25b0a13f818144eaee77c41d78aa10f247b40762aa56c9e29e8336e958e1a5cb746d1dcfcb8c917bcd9d46a9b83679513bc178edf8f2b62c9b60acc349cbb27e489a3631d4d43d4e5307c8dc6c0f0bc1e22e700e4c7ffd6a9c183a085b8e4a2d712a270a0878b6ae3f45c51a355cf19d8ca243c0341b5617dbce8bcceb06b8d91f1b3c276a289adc6a092f2492aa7ebc9d977dd96b2fa15c9c8ca4d9922921706680d19d2a82ca2fed1c6a4d6d3a8f768209a03c577db2a23ce6e2f18ac952be634542497aee458796c962f4e153b6bc8f046acb3588131c5aa444eea7d6fd42f6631aa96ac4587a58e67ff8aff4d9035d21971f9d6867a0f94e343d00fdc52e2316d849ba0eac16dbe386cf5f3f3b829891cefe2f06dda4cf96d3d916368ecb8535c06c61cf0405391caad68f0e098b106447bcff4e05fdc11de04129cc07a4eb4353b0db8d28e5916dde8465b5440d29a811cbf307bdb60a797756975b99c2990ffd9738040457db38ddbe3bbb1dfefedc2c7fc39c943ab4e0c13f81aced1c43e59caed37071ee646e1530f7d355eb74799247eb894683b5d0df15fab8bdbda84abb91b169ba9266b5b18cdb2759ed86a0c88ad5c1623d1df4f730d253db7a45134c336a706f130370a193d28c74f06fd4c65b305bed16b111d27d14b6318de6074752c43f6fd13afbe39bc22f3676083948cb912d4b66cfe957e6632ee5b8dd3c8dc3600468fed88b03b0e6febf73c5b54d3f99f75a0e1e11560f7c18f585ec251190b9850b320f5bbf8095bc572f37aff539de3b2c57d9a5186d9224a5d89f7793ea4ec9be5dc2286149d56894ca0a8c8d8c6da1c0b384d8790aad347c90f29426f9b9442a0a644d010215e1fc9c8dd2e2480e6b19425269dde23a5303dda72e26a30395d3fa59d6aca75b972e4912bc9aa8c7465b9c41ba234ae4d07880f1bae79bdd5367543b658ee365ae625278d1d2089280a8b9406d9752a349507986fdea8b54bc05c0ee0aa7385431603e36a09972675241508021d46d25fd52730fd561aff4b83234e6f2e8279e54d0a1f65a6c63ae01446108215e9023eeb33b211d8cc601fa889e75e0be3aff01f7832bbd4ec07726f8a78257f60e88195e50916d8056edcaa919c911ed062de1eee536a9a303188e8701a0ea4db59fcca0c9096cc80ecab07da8f16dd775ae54a3ad34606ff6bdda8d02c2141df524eaf2cbbd694236c2af66c66bc219c86a54572b8a3c6678e2a8c8fbca0069f3370f9e4362c85b593720fdeb795453232b843643d3422b35fec6339a322043a0ec4de99ea97b24a435727ce296dc1d8da816f2d9fa8d0a9a4244352f188428f413adf3cab7cc659ba30bd9c0bf1cfbb4b31dbf936982da55e43e5bb52c1b1716b11ee2e9ae922f29d8dcd81115977b127e38efd11d75f7cbb8a9e2ace61c43e41b9c11569593c3a64f72d52e737e2be0120b789472a089ca19e0a81d56e68797c08f51e00e8061f930eace4215f0391b945ab92fce57416184d23bb6b2d3a8fb169c56779fb0fa172e50a72efdd72379aa3133fd740d54b85252bc8c1ccbd9712046be154bfa335a6702d1cfd9edad8aab141388b7491c08185b5f18e8a380c0365ab1f9e9ebefbc4c6bab6f6f0bcf59f99c96cfb1395ade7665acdd9c7b885c887a361492b6900e5944f44c3e86b74bf6ba0f2b00d1a8037cac477aee10c346adb6a6cb346305bcb22f84407f2316af1706629d4f763474d8d2676e01ed69a141112ccab9263e7c6725ff3b04c95a1385be367d32e8ad70ee09360af0b6b35f8a8b094f974eeae7cb38d64db3c5f49fc0998ba2e0e340e435efdce750fdd829099005ced9f40088c903d0857af2b4b76830b94e68e9e6f0da8e384230f63acc49f87754c6c6aa8fe87ee9ced83f99e1c0b70fba0e72feefb10d63d6a681320c8de50954187e3e2d6f874ef4a15e665e91604a94811766ff9e286954923e9011b999e9ab7f2c8cd8a2fee062a206d1c84b3a1cf84f1078b393636c8bcaa9e34d1a1f00e86bb5418bd0d962f427b8fb1861493478baa80d18fe8cf2cd15e1c1622570f7feba29c9e327ee753290d72d26e433fe1399e5a1865b8098ec2f2f7a4cdf270b7a68e29741a8f2f740b6b55d85fad12dd0b4263adee2c2fe5ffd0f5e131e819c5807db8ae091e4bd2604571bf5440f9f4ee7f5d1be812ce28902d233789a5d777efdd3022249e7ea96494cc7728379e41fe0fc684aa5c6253561050130381bd1caf209e09db6f96020629b5c7decee7582b9e844de0456a2ee7d78c96cd2768ce79cb4bf0ac1122418e7dc2d259273704cc7b2ab65399024c895843a49857071f11c50dcfb55ba8b2f6c3f88042b07b5bd518542d5dcc782a95b4d569d687cdf8575c64d40b74bd07327146ef5417194da504888e058bedc2596b9f54685ac6fbcda1ab78166ca1e7e315b28f9565456d98332729f92530962f66ea53d6826484f4b80c4d13628f88fe81e9e9bc890ab502840b396d0b6d1de8918d1997f0cd31624ebccbec3138425315452997e8f79f8ea839a7dde6f9ef4d1bce40a1166fff04a1aaa0b500b03f7ac6770260b66c9d06aa7ff238d0e25cf8d33fce436f99620eb8c48ef319748b1d0489f9c21614de8d825bcf452a372690b82d8f4ea27a5dfe6f4f69f4efa0f0cfde3977550f24b62062d1299b93a8b2d20eb423b38e97f560a7528ac192a73d725c830b2c82f535bd4957b9341248f3809ebaf1e5b0601512fd326933ccf0fd625d322dbfce920045a54f5181160804a762d51c4ec18cb54529d610b48ca6b07d749cc027e5a2a7d9feb59b9aa6fa9effa7231cd503c8aaa88f5ee1208b7b6652cc47a5c9323ed9952ec62ce85b8502cc97713d86418db5929b066a08e9a6806dc30b902d9f003671528f072651ab9250bbcb64f3da4bf4a1ee3f5021e600451ed7e5667d874a535bab058aa503c7e9387eb9df11161cb363ab0febd0b21dcfd84ad8ddd0b5e4fc7fe0dd29ba880f529f9f01a20eb6effe282582ed52f5f4d82512814fd4c85a704246cdbd05d26f7504d1c9de309f3ad05c8411795b50fee852cb13e6dadc990049b135e234960e49f5edcaa69fec1874b93e34208330fe388a60dcd18b2015a8c24d93011c4fc2f77209cac6b5afd9d3d00b6fb992da48967ff9c9e21f75818918511b1b4cb84fdc35204700ffd297054ac9019d1de7ac449e74856b2503c626bc31acb7bf6534acd0ade072036841662627f3587580a85d704875f7688adfdad0a41adb603203175da96764e41f772825482501f9ce59663c6a4a756443f09e0f773b3c99f930e2b4b2f695228b31f21aeeb8aedca9884ecc8d0df6736f749a064eb77e27504da1c66fb993e9690a48b9280d368e182374ec479903a5948e8060c18f10f6fdc3b6ea045a0e2ee5ce825ad31954593ebc39c4c22c60d125509742ca949f1553674b3e057a99e6b587e6dfb7e4cf1d96c2ff54ffc7153647adbb074f23d0cb1aef5e0539ab552d930017c92c852e0af28b3a151feae2bacb2e054e73c1c508711fa2e7604274efc5e63c19d0b489063d8fd8452e89aa81847dc4ca8152a9766c6bc2d3e72163439a9df419979944023ed8214474d98fe6d05ff5cc057b665542fc4376ab4fb2186af43366babe025948be8d520755896adf6795b0fd679d2e10e97a297c3f8c7f704be07a05bcd7cb59ab5af5e485ee2c6c6a9f74bfb92ba1f1acfba2304c36116d0523dce223c9802135cb901fd12b01c180e9b27cfac79730edd450fcd890d2d3e7333c8fda5248b7fe2ede4dcd10b4ad4a5bfef8133b8a7b23e6a21c897b03984903a4ce39d31865d10d23f6a009f29bf3a8c5383fb6060d965250343ce94ad09ff2f351bd3e7b71e668605028557c8e4cc7406a4d7c4f044c8afc700a67436ed1c65166e3e209f7c73d1930663a7c56cf35fc82ff5b622af945fe2ac4157ac1c33c3c8db186a44c5409fe878101ab10147ff0d2980c68b5a0027b7d1329c9c74414847f5c7b743b1aa92039c457fb356ba10d6998ae8101fcbcec15b00dc0e9303893250af0a07f3d21e4851ea7374fd7e3f32a6a032829feb2edfcb72fde519a6c94df2fa8f3f423d07805a79b6ddec5a471b90840418905c6d202bfe430373ce7beb543d2dc8e8341db572b3f891d9a044f777d686a156fe85ca6a938b09aa446666674e44cda61563dc0622e6751ab1c6fb52cfd83a278e4e832e2b4e126a03760aef25325bbe0f0a61dd1bf20cfe252169cdc48f675401f35169e1153514e96d228e32c43c7da03751b9259225bd943bb92b6c460a892991931116e08698c9471f8b86b897ec4fbc56786718d084f14cf0b1a0c1abb2220115ba83be4ee88ac7d6e2e41cf0bae78129f434c86b60d04dbd62855b30b2211b435e223301c04b77b3e0d04ed78d0ed7f82ced0a4c0637c348b7dac7119b2c5c73eb9533844ee3776c94fc820318b971834f60542991a274bb3e6d3ec614fc90ac23f66a939322a6b6147ae19d340d7d748cc83eccff7fdfd7c4c231da6ddbbdec35824aea2b7a13d80cae87132a6081060b18e2aad0d3fda0fa71e88f956b0f80362033465cd9fa3dc05c7051e0bd1a9abaadcf3d20169e3546d83c13684192f1d78bab3cd4ed539ec1ad12dba8226a9521076ebec692fcf1e2b2d9180eb18b90a1b9ad2082e5f1cdd9806bb347ec7127f866a148d85f1766aa0e3557a385d5c9b6e91e5814bc01d872b6fbfd58f98c32e2840c94de169035ad44f9f5a19fc12e4a60cdba960dddeb0f9266b54903c78d10ad42008214c20271b32a6c801a1a738eba301db01fe026e601f07bdbdaa14aeba9a64957d1f04dca539ea7543f97156465efb518d6bab78f19db1c17caae8c88c3e55a237fc0c68d64955f6041332cde92d8f511d055954dc2e0438711244deda2b134a43d68231894a833bc87717ff166963470cc0f73c96d49a974881501f2c4aa4fc671924d056967a417a023d229ef830531e2de057e5b72b13ea87e98b355dd4aa59a9f0942a0b200b90f641f82c60134a81f9a9670e2a720f7822f3e83f3827e5aaccffb07c7526f773fe2a023220030ba8a61a2948e24d02d62922e628e2c6f95dca0aff54619a96b51279bd68ba68bd6701ba822c7891cbcb4aab3e9151edaf5a0bb974f5ed8af9a9f02b452e6910cca5403c2e0fe57e4cbf7fda18cb9c909b912c34024982982436d1e588bb24cd79c6bb753a1105c6a5268180325ade83f8285ad2ebe9570423de1a464e944b532c008c027f5d511fc40538635e3716f59d1820b1d0b4b64617fd8374095e89c201a8a8d038a84c8cb135e88ab3417f50fb14fc801b19f9544fec7f9d8ccbde5a8f7f28033c805480c287916ae4111011443420816a0c5414e7e8f3a738fc74bfa46500bf7b39a441f7fd637c5b40140abc06ee2166f49a646346122bf0a62db89ec7a5d119754d3605db7d69e0a6e0443bc4c5dd8e4127499528698ed43e14a49e1bb0ec966f7d580a949af193cd4141bebd42b5e21581ad04e7d3690736b9c5e442c29d34d8a567f82c50012173cafe9382eeabe8f8335aa1a1b9314c7524badf9c1cce6ce49d57d81f5124e55226366077bf71192625b47f769d8459838743fb4e8b8dd0d79f84a765189a71a4d2256cb6f82603ea20a386c9b763cb0c2035094508ecfe158910e7d06e3117cf843805167680e8e09c745126d2c53a43d2583f7d2650b1788ca5c10ae471ef23764d3b0928b3823817ac18f7f12983ee460a616b2e13ecdb2420f14626e3445e357a05e8a8db0d1fc37f1945ecec9d8716098a6ee4c4558581ca181d2f8be602eb242dc6e63fbe314c45b3d01054c8cbf63a8fac3de0b81abc2b303aef0c6b020db33d20acab32c633b89aad4783a01756c6079dd5ed31e0acbd76ea191fab9401153cb2182e3373e208cc211dc393a9724c622d79fb414d929176dec0a730ca4d262585fa6046faa7896987f15cee19a67411de90fbbb0e7e0a1311643e62257676d70869e4119ccb2d638c46e30e3186ce0670bc98712515358a7d672d3f6b4f749ad24bb26b0ae9c7418673a38d947e8434fd9f3f6ad717867516bb8fdad814ccf2d8679aa7df87394ce05f8d50f383053118acd407713d28c7e261819c2bfe2bbc3facc7bda9a4c8ea711a62952717866910ac6a041a37082cacb332c834235f044c68b79d66669c10360c29ed2258cdebd023c966f0e156dec8eacadb1300dfbd9e0cc33969645319af5e7a0e45b582f04aeda5a146e869030022075c2e8b780ebce6d779640cc43cc21d7187ac6dcef9c34d3832dead98a268147b7ec15e913de82ac8a0440ffc370e0f7078c1e266480fb48ac754467f89641787fe0b1a158a942759664057983b322a28b9092d826671ff7211dd2e64fcd1e59e08c26be81ab0ab1b26720719c4ca2f52f444e2da44e8fbd6d50a3a0e45832fe835d625edcec256249a4d161c4d106108f31f00013aecff71628ac43d2808b25d176e568285348c51373f9d70de676e6a2ab18b849e099f908529d311915e9f8f24b1e58800372c8b614434fd312f4e785e36fcc54528d9e3435c04a17ae430b1f677fa0004596102c13738ae824043470aed74d6f90fd939e16d8726c42536867f88b75914ca2eadc8406079f8cfb0e58e326ee83a98a6b6e99ab2d8928831e267fe882e361d90996026020abb1793affac70fd5041c922efd3ad0763890790d30b73a9d908c628995912580e618ab9bcc093d3cba583f5e8ec763cc4ca8afc7917ed566a4e4a3461687ead8e701db2f98e0f752413349e4bf2e7a2a847af5fab87bcb66b7e38e4834fdd2de4d2db4dfbefc17d266d9e27da3885bc2bfc24290d0b2890eeeff07daca95a0e71bcb34263f26e8052ddfdca5a27691e53390d30a78d1c11415e596deda5b80d883caa774327b89b82eb70312d6160d81162721ec4c0e24aeebe74dab050e3f32111c5f576fb28b6ee3d3e5f2c6964e0f15ea9d1cde5ef49af5b15ddfb5cb75e8e1981254faa8771fa26f99ae38305aff1e4c4a0c2a5eaf1b51b29a18f7713517768763d252187c0c6c91ccceac0adc6e459a160d328a081fcdce31ecf3d4589a91d39f18c4560468af254ebb4f5191690ddc6dcbd3062ebd6555e0666b92d6f7f424ab21f76d52da5d9aaa4c4be87e5b4e2b68dae589d8876901dcb5cc68f76854843ef9151fde6a4bd10a81064d24f6615a00772d335a4b569248aab4b312687f0b8bb64707aa109a36e0667b82761293a4840f12316586d4d2546e75aaaf28301fad1995311399fbdc7921ef876d09d6e85ba5e52fe5200b095085a0a40baf054369ad4d402f4c8a0bddb55549fc226c339c2d6937f92ed12c976ce3b311ea4eee52419bb325cb6ccb11e08ee6d5ab0e225e0a31337759d3f78f80ec93742442e987218772094a7e80b07794e025b963ace3977263d8e7dd8fba37c527392571aca155979307485bb0b125295e59ec1e19b7233cd994a0e55d67777bb837827b6b7d36b62457cf14d9d8129eca29934e1c580a4cd2bdd2055eb3d00c917f1ba21fe0a4a7de40834243c5118187a48c624cabc91fdf9a040b4c9c807b29b20350477a9bcc27aec9a1584c99eb607f9e5b5e974330e9b584ad2609154d4593e4a4a54fe05fda0e6ec6f05067baf47d54e4cbc638a8105b1223b45ea1ab07c25085b82319a3910daf3fec41c1a18f935367af60be6ff52e62440cc3f7c10730899cc229a94d38f874b2fa6b11e049b87c488d004c2e037c81646879de618c9200407c111fb1acb0f2a5c1ce1b80902f17c0c6383afa1a10290720b08de15444b07d02d3790310bcc3c2367886a14010c78b00e2259b589bb7350d3fd07960cd44c2a09361ecd9d70c7e4f4bb34bb2bace9221538cff2dba5eb71bb7809149c96378b3cfa3ce167cfbf814c1b307326f58d43fc85086b869d4329d61ac9e91c4d6198819b2c3c24a4ae9c80d58b5a2780314b9462fc7d8141cffecdc6857d388321f12642bded289dbd900a179e60f05e6cfb0bd31474fca4c7fb3529bbfbf084712af8c2aa2240173236127bc480a1dca70656c61c8df4fb8e917b4861fc651ea206061fee2273690429fd92784daa297195df7ff19f8526556e8dccabbc2faf09b1170dd6c451b628a7521f7a9408dba44f1112aea216c867282f694510a475a62d4785097d2e1bf07c0715fab5043a4e253eb48f8f27a60c8ba3259744b00e8cd4680a60600f6d1c4a5281b6a7b74b45820e7e59598971b292780c7f3af665540e1da6147253d90c4192d972d44ae1d13b888d5b1d0a1198d6004106569a2fd8fa95db17a281869115340058aeed756f5b68a3561181d93c57d60879b28eb22ccce4fa2b249c11480e241b0ac62b0226811634846fbe30117a26abeee0c5a77eb70d1d18e178d7d01328e1c1d9daf3439262697ec1313ed4f37e91c40e599cb2bcf098315a3850d9b7101ec68597b67b0f796b4364044d82b688a9b001bd12c4d527b2e865c5dca8f72c9bc7ec407e8a85747b7e16ff284c73b01b549bc1f84fb86166b20a3ab9be58efdc7a843070b9365fc007f4de77a2cd394357750a1e79011441398ec042ddf4609aa7f0ad1fd266bae72f54f36725fce0ad9c08a745ee5408bfdbee051247ec2841987005dc20a0524905a34baa9cd680656cb2229381ccbc21bd456dbe918f04e27da5f11174233d0010b61fd1f3e1e2574832be010bc4f6448ce4884bce41d13b2c0628f592618c1663020a49bd2e21c00bd920d161eae5db40cc3f54120d75343453b52f9f38b7628855a9493a02956b6ef04f7734a642ba57c0a6aa131991839d6f09cb9c709238c08328e0d23089b82fd48e484e64a675d7e069d4c7aaa3d8b1c1d288fd05c0230f6e15c023087f01432c1a803f2dad6d2626651fc97aa1d6d70baf86544f1c97da86938e0174d72003a997727d1ecf44a1949af2ef65f299cd9dcfad08d56ec8d9bfc10fba6633a03bf2bebb90cabac844fb8c59dbfe822695b0495e813a6400aafdcbacb9f93aed65d5ed1c7c226ef7989557b709f11f4be4e04c898ceaea0f0e3b926e2204f6a36a05cace99608be296494cf4c994f961c430c55de17e857fa7d104578c3e6d58aef482e68be2623560bc49a211d728e67ada398445f9a6f3ceb9ee977d3055282cb408e4a000d049b6c73411e5fd74ac835175b2a9af8e5e24c2259887656b4a22da1b1fabea095b8e239b22cf0a837359b70100f83494f764419608778416fefbfd6770926c19f4925558ab25c532510c53cc69f326057ac873d962ad8cac2b640e7f2e903b6b73f616e54fe80049c10a102f7689a901d782397dcb203871bb9c11d6932da015bb4f5e0529c83138f2cb3056b5e44c9174ad27b4c89800ba98d1945cd399bba28217104b8b5a26db038d51e36b0af3dad70621df2a40a77846d2e6866685a09b28078c7a64354e1b95becab810222549f226c31dc05dee384c54b8ba2cce95653a82d20a23ac48b0cbfce177c8a4b0ef32a34ecdb2dce2f12601101a5d17323c78d5e7d373ec20cbe4247a2ac21bfe298202280cccddcab16fe188affbefbe0a9db87263341b4efbc584f7e8b4b4f67df0ce8231b6e5fd30f2d60cbe984e3a3d00f03ed41e71a469b54a8964b45bcfb7ed85e06924ad154b86007358ef90fdfa0cf524074326399914a99c758ee2464e4b9ec2e65ff272236031a9a00838c184070cf6f1988c86da8e99f3155d37058ba91e18a384618e0211bf5bb6fe90f431b3ac89dac970975e38d32d2bbe71e6e78cfde9c415caa2a043598909ad21f2c07ace2b53a9141530801a55876cb2d3cec40b6ca1b12f164ac0f6052e81e9da98f2f676224d86824401875693507722db7f407b4c69370fcf648eb3a8a1b6d938fffee174eff4eafc0de5d9f2aab15f235699505dc5b12fc0574c82e06e8eb2fa03f92f94b7f10f08db87920c4eae1d46fd348880ba53e21aeb0a53ff4f269e22a4baa47779c25af504d904723a927630d39447d1ee90f96504728135403b2f2a00a925993b6e93840499efa2bbd8fff5aa53f8ccc1c32430f0498e0e4d9eb773b7899eeaff81f86071d9c0192f9afbe8ce45a3ee0a405dd0104ef1fbb5367eabc4297534d32215e532becfcb0fe31ac766c6a432a74a4dba6e3b3650936e375792c6215025665ea8cc8365bd4a3a25ece4f10a484eaf50f525d1c934fae5cbbfe210838f90f439ed42bc2918d50885d2c031f755f88fa4fac779cdf5c828cf9fa6585df9e91123ef0272d12657febb40fc8238b72d3123a4974ac839027287614898b68a281b8da24c07bf028ed10114947a571aad1ef19c213fc4a30f38f8fb8e24874ef0e4b4eabeac6e938bae464fedc4ba87744ddbb7bbad725f97e4077e37f50a97906ae75287938098b3c40952c017140a05d28cbe07eb89a0cf744bda711da9959d2ef09f17d24d030e2f10195fabcaaf34cbcec5cf989d6c25d44351c9147eb68cfa61085a64db5f753640ecf6140a4700c43fe473a28bc4142f705d45c545584c2421ee7f94e26a9690d7a5e88b4bcef1c47d47c5500e6603f39f457e01064b9435205262ca211f6f0a850d6f20f865e76e1dedfb19e8895cc7070aa014da944176db210efd1638478ac7c71de268b0a38ee7bd22259c5db6200df8221b331cd2b0527aef3e0f0412ba47c1204648152d345e9e570201115e16d76a1ac3409edaec2b39d87f9072462174877b639d345e84fe8b77dd210041255ba4a85b8cea6270a8149e8af269e6c38e72d353d20109c7dfcd66b3c38b4528bc43ee73f7518cca227684c2fc017dfc4c0ce799ce9a0737975da2798950cf31063c94b4ba9658f03ef487b30f17640106b951e660e38833faee62e7bcf23db07cd905f1104653738ca0dce01bd5834c1464c927c4943be7c906a5e405c2e850bfb643625cccec838b653308d3cd4f7ddb38d3145d797118fb062f65b66416d83a8ac1e58c8fa310bfec8c6701a21fbd61c2621f7a4ec8ac8728f3da00c7820c4d239383ba2d0001b9da23e786d7a106c562194ad94951988b188f052e3f00b509e469652a17a55b9ae175afed3aa4ed59c80e04794bf8703a241b36b304b3b76814a911732fdafc68dc92bd44406f1d5199cf0ad86056e208931a272b3a70ab383251b8c877544f4706d9ed511f7551d947ea26d18949280fe68f67923f54ae1f03fe2d786d1eec1e12f1b974aa948de1d8674fca9945ca38ac2b931df6cebc31af5f3a58674498e2e67953e377da2f16a16b1929b5dac80e8ba422152784e68a396c4edd7db68dfd405e1a747d80c47005eed405ab934ecfe0e366fbd3f8a16b3d8385d2a918e30ba62ff1475392e651553cf40d6ce483a33a4989782e3adc4987e176d2dd913709c5361764ec5c20ab310d3f56c00fd4aacf16f03fbe0e8931e9d4b2797c061be405ec00a5f6f5aada1a2ac0b8ef1350208e3e873cc94b52662e2147898864934623a14b31efdd717848838335215d87191ea35e386272373890c81e58913b6e62bbf18a3306dc547c3127d3f39968b32dfe476313249b4ac390c9693d2067e43836c4d2121eb0b87cbc5ce93d386788f766953cf93c3805eaa0fc7f71628dfd70bfed6e3da21daf8b8e7e1f6813fcae27ec8af9dd1689954be4bd740d61ca50c3503f6f639017dc4db17845ee0bd5a1008093f8f1c6d89ea610b760fc95d45aa2df31e82a48814882e2ca137975bc49ea3689db357352b85b7563324385e42a0f9df58143d9004656fa3512f94a2dc102b767e193dfebe0e234a41a5a3c97a88c4d603856d4282a33bb0eff399871c8215a252619ff62a83f1e9b56dc9249fdd9c2129046e5b0699a0f34cd401f26d9cff00d5285f302268b969f6cbb6a443aa0c40c5c07af280f03e2c3000ac049ab72e797a5b17d181690939055370b1f78a2759555e10798683bfef63e46755f40a80ff42cc945ef63cbd6d9733b76fcb6bcfa2844edbe024bfd3c13c28c9a6e976a3a3df69c7778ad8ac7398dc3f91e7f6e72e60cdfbee245a770a08716e7dfdea283c4fd68e42231bf66ddd70890a5cc7a3712c9d6ca26df833e11bfdc0cbe47a3c96ce2ffafc9679161774e5ef48dc6398255eba4a3c16c6d8c6e5e2d43d49b0c922189bba8ac4b0714dbb9acaf15313d2d7ebab540460d93091775980c221577edcc4adfa9b38b80b6ac107fef39eeb7df6694e61f8feea8cb9d24b037505d32385b3d6b157d02df0752b5488f2a1f1a511048213d20cc799d8fe81e068fe29d85141e1ab159e4cedb52dac3a846ae280327f1f4f5d7245aeea4d725a72a5aa84f817abc92084b374f28097150988b4518dc66c0fa928c91cdab1b25629a8999377c129469c7c8f651098c040f0578e2ceb3366430c0241c17629ff4bd2837fd7fd125c830faf06326ce09a309bcbb2ed51acb54238610e1f1e4d8755282c40b3e4f067d4a4bd24d3faccbf5e750993501959cb7240ea439881ed82a5b8a0020e398accde9ec31fbc38c7bbdfef308aebc0d9ce893317e9f19b54eef1280dab5c9f52773ce995fafa09bc20c23843fff5b66e8965cf04a3142ecb2906668f497c99802e35ffc68bb93d307fb8abf5b48d1f45a8ccd2a612be62bace2150b6237414f155dae9079432230030aa8722299bd0b2dd138878ddd3704eaae4b76f84d90191882364eb2d1e5d7bf78a9a3e0537e8ef11c07dd55718baeae0699fc80c7bda88654b7b7bd1bf440c210d23a739bf9f736af014e9cce54c7ee380ff006c7f54f0ec791d0e5111e07b5634fa5f8f1ea10fd53c5971703d42ff711c4a7aa5bbc9e4a0f8b64135aaf06185f44cbb83337d09636ba4c071b2279bf1878b99b13107b0d29bb277733e0c9063d6618aa5a43ce82df072159c7279e9611d18434c677f8f48de3eb69f164eee5ccf93875b9831b609855276bb97b3cecae8e27a4e1493e136e55df25fe5fe9a981f7e2b7df4262eb82da3ca128dc4db0c48e24e7921e8692ae14070d80b73d299729390076051489c421583934a3310436039f90f35c28803433815e70f843006472a5a08b5a2787d5918b950ae016fc2d076ed7dc14fcbfac2880a2837058b660092e884e179e2cae28b020a36d897d6a1d924c826c76cd2d8889ceab347cbf678b92e3bc46752116f3c33002a18698b920535abd0aaabbde222e4c3645ad57d4d117f6b1380072e7fa89ca77cdfdba7eef3deb67e7918555d8ad67f3ebd71a181407e84619be97c0cde9f851129a5141994a29713866dcfc0a49e2b9a89030df0036493f4eac80ba8e6f2400181eeb7ad097e1e1089f5aff844b6b7bb93201f3143dc076ecf02c4a42f5e04c787c8a0d24279ddf2af158cb12a3bc31c4971328516bd01a0ab7922b359199fa494c461c53c74ae2701798652d4851cf99dd09ce410753d4d94a4af755cb010e39517d0aa7bb2efd68f267f64d2c08bbdb230f474a9ea5109426c62d2b670879ca8bcc30f2746805079a079310a3af5f62690c80b3248aa62c1af44ffc5f4ead75ad306e7f5c6c1e136b6ad9bde7600e6f7c02071eb117353c613205ca2e52626d9a73b6a417f5e193dec469606fd8615a71e1e9c7cadd25f99ff503e20a105182560530da003040818faab78438074d802cbc72d403848c53545b926313039f24fcf92e6813e7940ece15ea1e2240e1d31323a2d719446a7ac276fa63bb90878d7b3123aca4861025d0f875389352eac8080cddf45601b1ea2f0fd64ebc5727c57d56385de3c43519410119c8cbb88ff0b5bfbfc19969b3f22f002151cea4a756b81efb4bda8b5d128f7f8b6a8d57fa8add5754e6eb262b80007876d67ceec342b968596a7699e49bdbda308245cb48551bcf7cf0c06106911953b346f19d0fede97c006bf7f594dcb4a7fe5ce414636fb105c4d3658dd1955a3d7f4e96dd2152209f62e5ae1e5536df46de2b8d8ce983892440dc36d98c6f97e2ff5261c49c642f4ef560461eebe6fc4811d61d94c62bf53f2698cf1b4b50a0d832fda8288b8f6a67ef9aa693cdadd7243f363c6a00d5d9d7f442c90872320000728cae9ec679679383df335f4796929e7ba24c5fe6e72bbc661fd801cfeb3ab2b7ba42ed0cc16b46e83e18982ca9896f13fb94de97180b14196c42f22df526c36e28e34f0c9532e46e7ce865f665796cfcc77c9e70802556fcf947ce4e7f76933de63032c8fd75460ab47c4072234d1f9f45b941e20c8805db0eff51783b21eebc799cd78896d99673bb3aa4169c8a236f6dcaf5b716c8496175791291f31fb184ff6260c33533b00b230062c7a2c9aa8b33deff7c8439b757b7cbf182277c193a1122b45ff3fe8efa8057d7df51ead1a6b1e1a0edada2cae95a58199b49a2eaf583b67c165904e316dca46cd3fca34528cefa92c4c8fff2f93d64995a74701c2709dab228a79916f194af667ac4b33a75df4178aa2b2663ebe78cfe93430e1a523549e493354d9917bf660117a2a52a899dec026088312ffc2886c5d513e8b91a3b39d5426849defba5bd681420eec0305e5d5b2215520cd40db2e73f829504084074dd1e985aec089581a6e36df55d27c22950d3feb616eec987002963801911f36da6e94ad2c17b5346c57a9f8b2c8518f8556c7a34726887018b7579e6c32030f2a3823182e6f78ea388940b6c66d435b12b1ee1330b7da0807b28886586fe02c3d8bc80316f2e430c111f907702ca275ed3c7eaabc87174d642eaf5234b1d91c5604c9652e82b7fa314523954c669bc95ae7dbda20ebdde1b76a775f85601c562c446c2f188c2d011715d6119b158bafc2e4c097354b496e58b1efbc6bb5fb052394fd6a66311043430505afe6d55eed50fff14b59409f70a53410de351b09c51170a037c0f81c75f4d1ca7a62c1896cbe38368870ea6400137b7ef0459a97877de9558902661f003b84e73550173ae57f21066107e54f94fad1ba8d54c1c67040a5963a638d6bf0b5ce3d3b7f1d004f72f02e9b331257419c7c0245b171cbd1911b8ab297251d66b41ea15b3c5b4f113327a523d09cf5a1e639a1e1f103ad612f92170a48541121fb5ab03206122a5dc9185d4c22e075126dd8b1423c3c2a737d2f983938972f3a0a3b43323848db7c6cd1b5566f8a0ab5fcde6559d6969c62531e491a9c780d2facb9649d0663dce6bf6cd328582a6ca6a8faec9e45ba1674e2c01a52ce72eec63af810b492239f11fabcd48752085b625773f98d0f7a6397254ccc26c958e9836a80cdc1c6a74d39603bee18ca0a18ab139a43d1b224fc1a293c42c5af0b0eb925ee185226262f4191c497c314f32faa83b187daba0f836f3b1460480c87579db0f8382931c01d1ffec5fa7b5992af10148e192688eda9b082f19b4fc7e047ee54eb4ccff0223920591f9e20c7d990956171093c927702a7124168f24920bdb03f76a964f4823a727fa00d48cd6ff47b1072ebc80032666e6acaa1a6543a8eb8cd1ff0214e918990f5bbd85e75f4602009f3d4df88debfdc90e94c854d133ddfa4a4f982a86f0ed2860f5ae3953a618e23f72e188ff5a93fac305cd31890023a7d604b41ee7ece85b8196c33f6aec81bb4c020f6cb79c91d8550bce42533818500c629acd10247ad64cab16fe056ac00805e00e62b51ba0c6d58309057feac21d8c47d517429c2c0cd83dc114a38cde071e3c9f190455379bea7326437f148284471964067577a836bfa7d25ee070c235d63832019364c385db1a850f0c01a6f10ddacf577b858b4fa074a260e0d47598410c3352e8445fc5b15ee1b30a3c38ba33f70f8187df0c0f3b097faf7ce4051ec00c37f35f6d5a06b8b9020bbb4af247fd3b8f11feadf19447082dbeab7216329177c6acefa80a447bab4a78ca9f838f9e6c0425c0611f1482c6381c251b7deb0db95062cb970419a85a60d3ff5e3580bc0caea99e5816f4cabc2ea27a47018724ca3302ee5bf34e071a0de973964d399403b6a871b84169fea5bf78c346e7872787f6b25dfc95b3e02e8c8648e3c92d84513952bcc226364f14a95027ec24aa67d3f9dd4b4dfb24f1b7b373f6ea98d66fe683c4a07add0bea7d4cf0fca37246c177cee271e1c99ccc29d8cfd5ea6e912d134a350b73bc9dbf93b24b2b7f25df5b26ae1a0817276eca2cbea146c8f12d22340d574205b751f404f7b6f78eb78c6b054dfeb33c12e14d79c95bd974348cb79e11a09115d884f03a36be636468fa387e1b0832861749ce6b3e88754742031fbb24feafe92fecca33ce3f53769648a2804a19f90b9950cf9f7f3cdc2bc317a80ea559919893cd2a0156153d03a8bba120bd03f42a2439dc02c5fc4988aa6622d2967ac62f0a9a934c22260c5cb9a5fe5e1ab9a01ef89e1d7308315249335a888b7e0adfd7204f93fcadbfc81323cbc2ad9d671ab2bed6c9eeed856cf81489e9a440b5957563bf14ad648364fa3104c75ca14328a1539a586d47551daa2f57fa5480dc89deb0b8a3266d733f472d15160118d8985da533a322e013d130b0e8db3a77cb59f67ed3bb1371ea3aacc2c6360a6932b670f5bd9884a019f8d43275927e06324dbdb07bd0cbb62be82485d6655407dea0b6092b159efd395591afe30fa025ebf8d2e6c06dc462679803478f6a9da32bb38ddf15051d73ac615e55d8167a75dda3012f31f7bbb884c13c10334566eb1b0fba09a3c80eabbb4c36d5cb6b3b4efec11327f2f5e7c67ab576e27f845a79d7cd68865e279cb7689d35717daa627306923a50932a8835916d4a2a177f604536527b840f6d1306d32032055c73b7b41106e5ffdafeccea633b41eb603e440210141b5d8c94d3778e6e883166bb22cba14d0a6b63d10a4b38fb48bce6663e312d8814040a2b3e34cfc26b53454b4c657cc5110c26d8d4dc08bd68f674605342040366a573ccff805d5fb34294ae660dda256c0b3ea9f4cd77386327f8201c5d7b7ac2f03b5eaf6482f5a4f01f8363606ce10e09a28217fde74bc4cc79f361dba93f84412e3487ad058ae99652b04aa08035b406d27d396f802b9b25e2ea951e9e55e31cf92d52eb2b14a1eadff5d60bded95002f58ba010bd01ec0160784f62616e7370dc3ec913ea86948faa865b46ac099623f0802681f82855bb2490cac2f3bb42b6165ee597d0882228e6caa737c13240fba65ac9cf6f23318cb7b52872606b374279f88e851249168239d3d726ea91fd0d944916dc41df9fb39fb761af75d8ee01046a8cad351b82d314ad9e5b21f1f6cc85c95a7cafb6bce663fd39cad34336787c6053757e66c2a0358c2f64ddc672a67779f49393bee173a6cb582880719eff02ee81c33b432a8002fc8329fdb6eb3c4a3455092532d5e43a0200030d07b16d98f18e52a87cbee86606a22af83b7fe3a4d583bedfbfcc8a500f4350e589dba40e8c281bdc3b2a5a5158817c7b30b3a631494f49abcf13876d0917bd97e5b245c6435e9d4b7543559948bf52d344b89d5d9c77feeb6c99d31b210605ad280e3e4dec1a5128476988a4639fae98814496b738dbf3512e409b9a0ff3f46f9c46ff6af012779f499ca6db77dbdb772576ef4c7c8b1816da71843de05bad964b716e9077ccabf34f7b3ebb6df834577ad421e5b38a0cebccd52de59422fb72625ef168b3200814016ab9f4b27296e3d600fe390f28bc1c20640e8b820689053d91d29593adc882c6f93348bb8c51d8a0b8eb79f6a5fe07c26e019b0c4b9f0a41eaaff4a153d4971421733c3bb56ec8d114495aa90f3aa0fe71ed093a4b7a063c2cee70bc4acddbcc8122fd9cff0b412a0b8d8418ed7bcaae31a7699cf5bd074e8e27c43453549a05c97400c7fb1eea7045daec069ed293898a188ba3ce178ed811c850c2f67d018e07fe0b9a92b9b5414744fae249186fc8375a694aa02774d1a55f853517f778270cbc6f3a6dd658714b554761aac1077f8e9f0f6a97e22b2d4e2bd2ee98ea11c8138fd217571fc4261676ce98e05901be640dac162d0b32e7f92a23c72a001f83779af23d2526eb36818a406effd2a52effc356ac7339bfa824ac13cf87f3b54986bbc2e7bf7da812ae17d66c5b64851a540db956731d454f8089886450d083053b7559787549e798abe1a652616b850d701b67305aa5630d14e78eb9654163655f088ac0e61808795008d3f69f800e576d787d0a1acde5808947b1fb43c2d0d94b0840e0f6e7c72d0de0c129d3fd7f089698b24607a9b007f7e012a0cf83868b40b41012faa4c2590ea8f33a02d94876a0075a4b36282da6615ba04f2cfcbb536b78f6fac10a1fdbb42a532049a24d1ee0a41621931b94b0a2c6b709a30126f3a7435e59fc4e4a566e7f2289dd0719cb2e19d918503a40749e4015457efa9a81b4d29b707148aba64e12424ad270f817c26c31a4c1a89e0b77a2030974a4e52783f8689fd39a9357d4c4f821064ad33843fc71ac124c49f14fa3ccf6950108aad2cf5c689dea907e3dde58b0918ce79833e72f9cb1318e208972c7c8770dc035538979459f7a72e97203a7654d09b8374255d752ae9249c30f2e3f9878353c888585841d167ee7980382ef0e03c0b364e8d5f6b058450424e2650cde441fdc17f0ef974cd99c242cb1f47b7326e60ec4bfa67859f077990fe4b50ceb7009e5b6a17276664a81b0adc297af269fb09d481d2200ef56560125ddeece0933689e89e2d94aa1f3eeb1648a5c66ed41680f5134d51dfe3fdc297533a66059d134f19fa9dc9d4d5bd47ead967aca67c8e61eba248d69f269fdd190b5404552aa4d1a91117cffedcc49b0753e9b8883f30c5f8299c38a37aa32e620bdc92fb031ef3d4de4721fc65c2bfa9e9382af4a3697790182c43c5bd9e2ad255c14365c95e1f02857a6f1fec6bc61414cb2dd31dfefa1f8e16491dc601da5e3628eec76e9e29a623a8ad2e659a3b9351dc95228a0481cb25592aa3fb332da12f87e1143775d2d4029c9006850a8d49a62cccf7fa70f0b34cb14d6a71323484d0765ba80d4e64bee5967bf2c5168663f9475e78c06ab4f8a8fd7d779218fd8b83236af72827950c427d122206c5683ce75cd8f176552e9d61c1c9a706974cbd3c0189ac1b00c6662f56594bba3686541158b9f92568de832c8bf29ecd3efa77bfa30b4c12ad69d66209f43d6d64201d9f477f816594832d1b1a62a53009f7a55ffb3d1c321757895be40c09941cee5f412a8de1b80b7af7c2fb4a5e33535d156a048a97a52e7a0aadc4d687b2b7b80d9f07bb63d0f08acfc2971dd64a29cb0bc703688241c5041b16c5455c707d47c2b4813bf8caa24fe50946ad406f3939c553514fd00315cc796138f8c50a8ed4390ddb48cf1334f89cfdf1454a4faf8477cb3b39aa1037d536a89f5451e6bc5cf5cc7c8b6f83a4bf06a25d43e451a52f2c792c2ac7057fb2c63c007dfc594edd62c1307d136991381676b8eed4c9e722e5f3554671ec433074c15b5fffec730d40740c23a465e4703d3ad180370d3c2725432e65567820aa62dc65f00f0f4c724067456b24308c2f92fd0b749bae007e7b6a253e124eea403a9e954a821a7058d4ae3284ac6bd3aba9690b5a32bdcc1ff64dcb1775350139ba3a8204e80800589c16cfea3a01301d979cf4f912f956618193b659ef9ffc11c8f2f385ab7fb029698f14c815c858fe5d0c00ed20a380774c3498a504f30595eea80ea06be2aaad0c21d066288e4034890466cbe2dd35d234ddbc2b056fc7db54a19fdbc2c35382cefe5026a647cc6400941e8c7bc56fca7f50d58e5004fb6721cf3b84d956be2416385492ffa444d0259821b60123afa6d43e7244d4eae81b3ba8e168f28cfa93b426dfac9d1e334c05db14328c57a1f24cbb1df303126fa6eec8be19679ae13c38a8c63f03d2de2eddfe0cfe9479a7042b413a8332976200d30646745fb770607ef1ce5ccd393ddc5fe3e2b80a94155bc04861d32a0f791bb4344df8d101c760d97864ff2a02ab10bdb36a667a7941c95408380036895434106d222528fdad5a9882c57bca9a1ed0165d823ed541253d6d562f370d0234a7fb515f6c8d2a9b648077011430ad36d38a350f45008b564675d9a9b7251cfb4940a1f4c8350dd4876d854e292af5af10ed174388c3cfd9733e204aaa0ecd418b05df3b1ef92d5fd770e28f4943ba04d2f78e3ebaa6e1402192d58bd80f621dd9c74e9641c82d16a430052d2f0759eb54cbbdbb7341115422b761248eea14132812af46caf167d3a0611759034824e3d17242403ca66d9beb5e7095308e03ab8cb927f16fd70cae104e597554b65ea06068177285287559ea80daf66c99cfa149afb4cd6a5488a526a1bd00a0e87128c8bdd120a2c4ee7caeb51e05c989b0c88853c567252feb800c00556aa57617e59db4fa6c4823c1e265a75ec898fde09a5009c0b05315cdbc85a5cd2778a610dc0c69fb6b74c10fdc606b9c8d14a4005fb90d5da83ba4779d95f225f8d7159d40e60ba44a5f662998f0cf611a0558b10d209f43d1905306af0a2ccadaf6d475dadb253cee60f42b06540447724e5ea0232a9d40c184dcb485f82377a450f9e191d1593dd638c116d720ea4c4988766b73e096941e643fabce970c354b3981f399d60f55f888997eabde3e6faf86cf89319b5565c611cf05a7341014bb90c1520cf173539ae368cd922b71168d24a5fd4b84cf6115149db78df78d676506ee7eaf932361a7dfa85cb4af534cff2a510409941a1e56f741fcb10882b6965818d01e5411f93a767f24a2dee7403679de8ab91fcd98cfeb63386707f410810d95d853d993ffe3ee6a2cf1e4e8c32b440a637ac993a6048aede66454768e2681812fcf4d4045a4b0b6f6f1b07a2964d36b95ec808ca6d9410946a445029ef4545b4f4c969341d2327a701f6ff6a85f0c1a8738c1691b8697beb2ccbdb9940c76bb974156925ac4ece4850fc0d7d67721fc0813392cf42b09d73c78d4e43ff9331aa3a3695901a523d404dd934d9ec5c2b6af5ee16a7823285e94447b392c4e2d6c7983fc5069a66859d75e0afbbc4eab3d75eb70302fd89eef00749ff2c5468f23bd697e63fe126dea33cfa1ee51f2c5e568bb34559d71095630320a7c09d1b945011cbacc6622889aa08cda709d687f0f8cac908368801cc02e4827535e5cab5dcbf2c77c01393644e3a066b8c00d82788dc54d8f0cd441afcd2099e871b1de797b8f8b6aad7d70537c880afd6880c6930b190d907137c920e3d79406edbc75554cc04d5431cc7a7dc179666095990c23c164e61328ec33aefd85fa0d49f3c8bcc19adab3d18cf59092f5370bf59313f9d626a5e51880b4a1bd291b4544c0e5b44712f6c250d0111190665ec85c3dcaaa789e12292a4098602c711c823c6af0bc5ccbbb090655d7d19c115c7090c70410505d3397f8382123cbc5faef6442d32e505fcd198cfe987abea8084b938237d35e9fe0daf7ec6e68b5222aa03be95fbe3985ea7de6410b51ef02df74825b6e2301449d15e1b419b2ed8944ec2d85116f2b3f52df35537dbf7ff2dc9bf6a4c25b53c9acae666e30cf75bc885da203bd881da42cae2f01c6d541d34766591e0fd4418ef90c14fe7763c6adfa7034684433624b65f9b28829963ee7d95e0c9acde93fc51c77e282893a3367193155bb1780cce42b0ce19acff3d00fba4816caaeda5287e9ea44b43e3b323ddf63e91b125053c17569e79a2e898cf2fb3c570a77944b9e6ffc4c2641daf6f3947ff210e7710a7bdfb86d8d14b534200155ae695cdbd19f421ca199e3cc361c771ceba3e0fa38d4320fb6603a3671a85297e7871eaca8e3766921565046f194b44aae06ce63b67287f6cc870f40e16ae765c3eac5cbb412440b8125b9c85800a457630e85d40a123dabdab88d84ea07a76ba6a1f62508a7ffcdf5253bbca5c343f3819a5e74563712f38003b216429e38deb4906184efbc6d4278b13acfe9c0629b1fb71bf791d5d9c4eec75bf9bec287390a7e0d69aa5d12a1c4ab230a64182e80468cb60420569e752c45e518a697d5c5a15a87865da4ee7c474eb3313947b3296ba6eae8bfc448afba57f307a40a7fa3bdf583316efce249249ff8f44840050837bc2cf785a7e40da4c28eef3090a7db3af09a2e0bdec8935e54bc5a4a26d2ee05ce229f059771b31fde6efbe9983ff4495af72f5e40729cbcb8636cbd1b6ad23c8683e0ac2832b1870602090fc1deae5854062d2fe92c8e34090e5bfdc3772381cb7b6a92ce12b30bcbf79a6a07915e75fac410c7e8258ba7c76878a769917021c34c862d3a4f7cb0fc4750a5e33eb3a8d66029511b1a439f6848ef268201a94a0daefa6704c7202e82eee46da06ca88f314b7ad1af5c6a6932b3ba02eea380dad8b0ba13f1baed3eddac12174e16e93ccdaff3af4b06e627b5a01c8f0533111167c5c5868e9a40d5c3c53e7d6407faa9e0e71a0863f3d4db4b5fb0201459f2c364525cfb6c877692aa473613067f0083129a3179b0f5941c1d7a39069dc49ebb8b4200e77e85e8e5a13da3051c9b09add813392cb2b5541685ae2cf6cff7fa52f3755c4add95f8d59f806d5a961563eba8a41626fa384df7c457ccbc87fd0bab76f4675a648ecf160aa0c02039b09f8f1e5bc05301d5a060b08e2453eab47ff09b88a74039d0f120813db66e2870ba2320a4c09b95c63861a4efdfab9450a895d9ee973af47e841f2c41f15b850519905fb9d1730c9868d9a79303a3f95c357ad48c43c0dee5a4ce277719ff48ea967579f211541c937c5bfd2deaef196134183168175d99c6dc341a880ac66726741a4b7740f7e40735a682c5528519010399222c450f25591848a91194138f5696d3235d2a133dee0dbfc98597de4cad7da24e880c14c517d73944ef80853ed6a4f1bbaa30bae398c851ac499d8e04c27a15a3b8331ec494b8d7da03492a9f7213e08ada55983d5c0a455264b04b1c27014882f0c80fc45619867d6e9a17a495f3807e6a9c6c83f1dd0369ddbff318ea2e25b725d35a309b249ac381e82901f014a4e18256b676e21ca602628a3fbb207dfd5c8b7f81c8d8c5a798aad3c6be6408c4e62ffb1fc7732f64c9bd8283c16406e9e1a3f19636b84929e53603ad2d1323f6bcb3988eae0b1bf1f104a85203da7a94925b1ec078fb7738cea110aa39dabf0585536580cf53a6f050d2fedda4d868b88613188696fa1f1b80d32dc161da3f56c7860bf3be37cdd117da1677d677b17665d144063619e07d88ccf11f9a9c96d83a2b684d003a42422cc9805f440f3bdf61eee9c5645c35385e07b49d06a847ba6209d7136efab29b38caa3ed7620912e9d3a413555e8c00b9c41203957ec5a65de259812a8fbbf1c39a98caf1c8a42e9e9f1272ecc3b9e0a3e89733214fd8fd9dbf61c3951109466ab08d64484af059ef0ea342eccf703a044cb8216a41257f5d98d35a753688445058216e6e96ed0df497b6546150c300952c236fe8264a7ec8103459c2e8e9c227227e942be7a511cc363b1df85e2df318074c20b92a661d1ea5c83027854c11a91677525686c9ee961db91d082867c8b74ab654cc82123b30fd2fdd347e20af0730add21dc01c8597b0be2efc0813c2ea6001f4f160b725441687b87c851cd57b120d79923c7f61e90187ad57257e540c32d6766075cc7a336c62b339ecae83c84265e35723b7b90dbce0f1758bdf48d4d244686fa516625ade27f52d08f306f607438543660eca54c83e908a5359818004273aa821cf799431ba5e04bdb10f74050c564f47470acdeeb730440c1c6d55cfab8b9fc829f750dce89a45378aca6de6cd806755afbfed705d5cd9ee22f89de096eb354540539163863ed7bd1b407da221a19aa626064d5304dc794bd74341246ee61c2c8a6270ccac16388f0b208011a32f4421ebc71d4984208552e6301626c608d1d0505e37d83bd2a96a6ee599af870d70b9a60040894265320b96fcdb8a50986794f5e38ccae6b698241eabe96382876bd464d5e7151aaa860c025e6fbc276d0599a76a90fe22558b821a048646fa4441fa4dca42d9e464e4cf052e78320b7d5419cbbebcbf4a36c5782f13ea7c9d049bba7a4d80d01e88327b386b02cb5e9323040cf0a7afe22380aec1e75ec8b58436449975aefcbf13d3a41b8868528c9e72b3d09001fa81499cca5d196753b5a62da92850a856515568e72dc51ec0c2e85ff449069080d7d8fde1ee5f2bd3433e06412bd405537b5b130ef19cca1c315d14f02be2430102cfa48fb8e27a8a87b0fa2f37866e9f23d50445944a69c6ef9a8b2ee6ad8cadd570a35c3246dd5fbad61778a4ad40652279ceaf04e3ee42f42956c6bf36cde4f42ebfab1fde5dd4ce6f1b68278c31c288c31386c1bd03583d443cb17c87d75e7d69b456ccaf94bcc08f8194b53ce34b2634d80fc73c9c861e1bcdb3e8303c86f09bfb970c2dfea3a935e8495bb8d4edae38540bf73468ab587bbd05d1ddfac242de1ac4289d2a18a5f97eb3af590bef2ac5ac49d68102bef87219c2e50402ed982c73a6251f519ce44d06495424c9ac4f916e49f8707b947e11e4f0a3d1550b087bb7c403303b5309a7ceba8a31f6da7e4d35a57db8e1253f5348c293e460cd4f4988b7ce322c017df6c1df4172b060ab25b23bc50133b4a128494450683d42a501df22f1e730fa471f4a43a4c3bc843c6da8a7536b166b033310d39c50d8cd02f90ba07d0e64f1db07b570ad173932b55715b83bc87bfd575e83d6b5532c6aec9b690f76b6279303b8ddb42ba5f171d8f3faff327fe1937f576abff0c761f52c8be4e8e0e5b005f275c602b8eee3bbd4657a5281c937a5b50ee101417c4417c3028828f719a3e0cb7b0927b194141b5ca47ca94dc19294b8e0f55df10593404df0fea103ec86a86cd6c18414d0df4dab9410903e14b56556d3f829235eb93c83fdd3dbbdd01667fa698d1c695d6c51eab4080d8d9b14750d9c1f0a54a12545903eba04c1257703272aa5f372987f2164849503c84b0425685f1b19a6d4fe85163e2e20880d4378363f2afdcab7fedbac58eaeb9a1f81424c663185433f00d05b3b7f107a63dc1348c4fa2e65c241d110d83ea3d01a139fad1f9224ab480f141b32b5f637ba224181f8d5a83cab6b19df7b12a6ee423eb0ab6dc0a0af8601a4edc5d791c1f0b48ef0639373aa3832acf7cdda3696a9db73f6282a82c5464a5f91fc0e8ec304f28e0a21fe483443efdc78362f1262dcbb229f7cfe597e4711d444a02aab7896156508e58cf01c2c08ad80ba7c05116cec30e6e42ba3091a2e096156155f844f536ad1dcbabbaa4383dc2c8e911ff1e7308e278e690e3d9675c02ce0ac54cad6b3a099461501109b834417531e60d9244a694524a524a191d060c06e3051a8c5a3821a96afaf24943472ae3842ee96b4d8974591b0e87d8379ca08aa45e89a6f77d1f454e11fd93e1dfe8d2e8aa947a71a3f236a2647448a188025b13a61e4d3d4ffdbb82024d6c36302dcd0b536b4896111aa6aa56d8d1e448c9c8145d282ab22bf2c5b8c9d014c563b7a49b2ac04793c998cff1d164538da39034f53cf5af8a9c3d3efa7487f5f1479feeaa52112d970d0a133968567ba947d57e8a4cdb6973026d4096a4796b4c174e412c372a25a97f53ef0e53a510d4a324400016d65d870c33cee8d2d0b227101e682cf562e48158e045180dd1d305ac0e685d2c3a8c81105bfb8180e4b00287a54ead0d860278dca0e4be3ac85c40a7408e40d08e8e8c8aa0090079d2e952f9f5d7755dd760d418dd5fd7750d4661fe51e5988b62080d27c2540cd1399de5659b991207230f4018c827a74d86f9d466a681b1942ba920669cdb4706154b24d2824a689595b4d040161485464cb2b0428bcec84c0ce709888c830e47c70b4618ac5658a0a911422c86c5a8e314110403ea68ea02d805059835652589c12159c65af08c3b8e5de879712bba2a5aea8d33066977c846d916538e0f87102f8ae2b4d80ccbb28967e755d702548512d0147800c3416aba6a7ba661457019e084105106c7610808f82e8bea4e1cff09704521816207e4978fd51d1551e9b5f333fb33d807c09eea9624a25cc4357dade8adf7de9bab85bf5e793fefac33c66daff2c51e903edbc859e4a3ca35135ffda8720d0d448b753ea1c2aab9a91d7d7dad2889f278fac502b2bd9b24969b0f2f0f3eba244a33e2f9e2e0ea7a92ae2bba8a90a85a6bbe811cb2aa6af2e8e967df02e0a34f757bbf7ff4c94e890025c03251b6410f0d2e6fcc0b9d5af1ec4083cb54135c09ead113f8d002b82892bf1ab8400928d63ad33857aaee88647a2fbed63a430755754a6e403d5810f8272327c221cace5f3dcf5f3d57f9479728361cc5e6a757603ff79f73ce04f8a8b2e9f23b3eaabc9212913508a46c883a6b2b9c21e282806f478f2e0b228e94e62eb0f07098898379d13250c6a1f89c427e824a389708730fc4204c79289f2d7e187c54f904f1f3795ae1c82086a808860ed0d051966bf6b16fb9303056b31c91c226d542eb16e86c39511ddf7ca6461840e9a43280ad2b12425a19728a36402db3aa9c69953a1ffbd675810ef8a8d2298493dd3f7131a0662b2ff450a4407d7138b2608fcc8e9f5da075772fde7696d29a9c207c747914faed4797c79d222d17e061889121940337a385d2c52c8b317ea8485c687a9232fa27ef4f7d9af5d327a9a01ffca94ff15cd573a49f5523f0b774f66ceed9a7fec529160ef1afdf4a5211a6e8ab7280dfb5064d662c055a144e8af5579a2a2d2ce38e86b592956fb9faab2ef2a743a4c6dbe9678f57bcb519064d69b0f991aa0cd053d10143de50565b559e722dc4950a9c8e66a038de75d5a521ebea93cf99aaa17fe2eea010bd877c789706b0c1de4b2d6d2290502574829454796e3ffb9f9b1cd0a1998143024947436b0998d81b3b83217b56959cbcc79b9f3d5626877ece563fe76c0167ae83a10b681e32a494e4ac33c6caaa26de808f2a9bdafec6479d8eceecc2044fb899bb9aa6124a55167e6830ab5e5260cc5af0bc6aaf9fd3c7bef5cb0f0b4419aa508a6c4c1f3c22254c844ca9263871c94821a6f5288f412dc618a3b9e6e38fb16f31c65867ad895e72ee47bd8f7d8b31c638e3d57581c7b5bff1d1e511ec9fb8acdc46751eca38e38cdfe58910f828c58a22d98f2e4fc87c8e8f2e4f18c30ef0e616e20dc5db1d73cbc47ae2c154bf9211c6d6c665c7b78a27f4bae7b2e1040d0d2a64709948fad8b7521f634ce2c2a8eaa52ac4998912acfdaab3ce1a44c718e3eccb3973edb0463c1ffb16633cb2e4c08f2ab7748affc4c56c3eb4006ec6dc5d27a009d0eb5015b63f638d57bed714b419b8302e30c8bdabb63887485037c03973cdb5cf396b1464dff293f6bf2ef72af0ca4d7d8b414232b8c009b6f0778c0f39c2315c45502ff4afcbd155a469414dd7acbc89bfe5872b7c00bcb3ce3a13c57cec3127e2f0b16fbd701de28c31f6fcfd28d3516d434f57dea522a362bf62ecd3105cf73551fb56e50095e05108a49f7b97f3b5af3d6e5dfcd1a01ae56afde1ebf56badb50e795561fa5317983faae47af14fdc34254bc0174111d657e85f097e299477b82a7c87420d8650450c84df5566237d85fe95e09fead60d15f5f7de7befad85c257f8d4449268d1482a08108109a99f1001e190c4ca3861047f74d961ef9f4c0840b2ffdafeaba0da75b03e9f75db79b3e9e37befbdd98ec271ae7bce28c7fccad8f7ca8abf3ddec1ddbbeeba7730d3bbefbdcf7ed87d5de07ba5a6572f76f5aed007854da1dcb33f0c572bab0cc128ac963e5c3970572407d79ef569efbd37b36773efbaeb2e02971c95acbda1a595e2c612e8e8d78213b6d441cd3148aead640f7bc866b23afebd3d6ffbf65e15a6ec157315a9d039c8045598fa34a3550d27322289a08d45f4f7f65ce86fdf62f87bef13776d52355c8410a154b2434686aa105b090d27289d301088fc7533ab6aa59db3bf0a6a1110ccee395b117b5191463f79910a4c8e3aee193319e70c7c5b56115e56a3f32ad55c3377953caafb5239a9d4a89eef504eeab5ae62563557a6133b7fcf94eced81ea065bd85445d0ffa7ba5411f49f700e3ed47315413f66914ac69f3fba34f2f04f5cdf26c160017503e5e5b24c2e9186b6ca82660c0a23caa2b3fa7d5499a5954556d36ebdf56edb03ba9570b3ced885f051a6b6187959a7b7d2502845bdbc1115c3befe1a56f6d775a51906a3caea0ac959136635b6cfb2c61963cc3db0502c40014d5454cb3126930955c502d20a0b891fb023a70f97cb51de574f13849ab2810c95231633b532a6ce410c4b7b2c56a45043da80bdc2f8850ddcc6a09a3338c4358d31c618639c33c6ae0bfc8adbd80d0b83ac59e70ec2dba48ec15a6c5d71c61983b5ac2b589557defa6e4492f10d6b0c6d8c69c2555130dcc4f060c55223369475d6b92d0381c08f32b509a9780363130064d5662c9343127aa3e1e6c3a1127d21a6400075d8eb60c564e19ebf37b49c73ce6f586cdffb89cc59b725f70fee87f5f9f6c64799dcb6369c98367a071fe31e86e3eaacb5d66075ca30978f31c638673037160c66014ab0b2ed6341c555da0aac1e993c117b3f59329ed896ca3e78802026e2c5880c039133add16ab96d2d7d50b82d35352d316f5c18d7daf43cb0210ddd90c0697e48d138a43830a04c9b80648d379b310c3e284a1f72561d792a5459682d4aa8a570bbb041e788d403936109f1e0c94e0c2f036f1ec4725ca49a70e472bef6badedaedece7db7aefbde39eae8f498eb811e2fa98e2a6beaa7efb51a638641b73870249250689a2d8cf4d041266613c1be430e8d891987b010ae32026b322823d18463560c0c83b5b02f9a947794adc7a002c30080d99187a4389d1e3d028103d6629284f0e2ba4b2ce3a47f50ea2b3d69a98cc3a67b5f794e0c1dae1b19952828911b33e86f071ddc7186350e3acc6c571ae064609c619073b7a36449b3e92a6bffa1120f18f26893f1b5e16c2d4a3a9e7a97f952c9070c36b021361c7c602899d0c40d7809fab98115d68cca627ce52703eec24638339f77308671a61bf7a8e3f9a641e3b11dba7bab6daa3b0706aecaf410dde292c96d7bf12de9583e0d20ba9127c83c1a0501549fdd48aa90fff24b8b31c13c37aebada97ed69962f122459a9a595ec9c90b55e37af819e4671a18c099f194480be24b2e1399c9cd6a557edd413925a158feda3f9a64ea7523514eceac4a498537830421b28ada5c248996167062e8edadc4e89015e75029a632bbae1d172b764720a99c08d2beb8aab05ed2b2d41722559b94b32982a378a7462cf47442c4d461e8552e13e252a09e3d2eb8f43cbc485641e50e19a8d64b3fe396aacc03886aeeaf00f828928ac932c43dd569577f5dd71ff4c260c6e8d25f3de67edd7e5d57d49f08d7750509cae048e142845e9806e246f8fab4991bbc7a101f544552ffe0a34a34b57fe25fa686b666e811b78a35fa89ca29adb0f0883038d9d460886a2c1f462c6bde3cbc982da5f0d0c6a12969022723a9e7a97f533f447f698c13e10ff9a94779ea5f5fca62acccbbaa3d8ba37008b073a9ea09900b861f25ad14b929275786b9310026eac96384a5a2469ae4c039474da9e59c73c6313ae3ec2ae59cf3d40b9f57856970fd9241e28dc5531b916d0aae454ee9b96d69c9231171ce2546658f0c270c570efc5a43a64cdbe90088a86887ca04066cc3a5171d3a1d0c2d575e18f42b0743a71464d15239896ec45a8c129a083c17751ae9a20650a5d1c0979587343aa2219fdee57c4bab1f4c72755caf76c85c709651707b2bc403b538a5c3b5747921146383b7ae20a833af04ccf8bea02142cfdc6d79ebaa18359bbbde03fc72ff4af06a99c37857febabc7593561110dc577e6593559e425c45388ad286fca6c1e085665083a030e8a3e14454e3a08022d4ae186d6589ccf60a6a948c4a2caa289aec394750203a391cf318e73ebef111d2cf39e885c128df34ae18796482b3190b7149d34a45ced97d812e6e6a32ad5a1ff4c3cdfad2ae37a0c546b06c885b3582571833e2ef98d20faa950094c05d1215f802f1851d15e7827fd858b0eac6627e4aae9a4a306e0916d27d4b9a75621cb84fe734c4dc7be73b4f1ffb414bb37b862f73ddf7eb025f9d96eeb453e72bfbd0de15faa050c7c975ceae7f5de0bb83dc4f309882ce7148b4c1afc391e18491e32a8256c8bee8e3a1b9ea853e98e3cc3c29b86ba6a20b8474a7b8ae33751d39c435028dfb6b756b230700cefa320727050e6a6ce636655c676e4ceac391615ebbaf8308fbaab50d96bb5da10f0a8d5d5d67940550a39e637ef3e4fbb8e1feecbdf7eebaebbefbdefbc7c5de15faa07043533bedbd6d6080ebcd4f16f2b0fb50bd2bf441e10d13ab75a47be3105711d4094705abb3534d17ea3d850d4249b3e3de7befadb350007799ed1f2c584537cf303d9a3860981d256c36688e2e4b4ff117f3c3c1b282d31a37ea627c5f3c146a9a481d111c28c820a398371466ea7466d49c565a6abae66c281485d460347415812f8518a60ad30d8d9a93ca914683517d413eca74b314c1c71de60cc29d3e7879e4dca2609a028833ed551eaeb50dfaa07702c1c6aa64b5ae70e9578fdb908f32dd880d370ae7fad7b218caa06bad65387d326c0ab2e89066e4c4cc55b5dd75101faacc0e92da114bf3a14ab2c8e9e06c4e1ec457248b17577b57e8834219427b75abc939e371f0ad7b06be47add7b716a31c73b6963c22e79c33d8c70a7cdb8ab86a436d53d35823975400db9022eaf45aa88c5656f0dc52b21af382180c2956e4e272d4f81615662a73025b7825eebafad7be736bf9c1cf5a6b4de78b10b7b238f94c035d3d2284658819fa03cff8008c7be4b500b73a806f7315413f325577bd2bf441210da687bbd41cae7f5de09be7d4bbfbb916bcf3ad37bcd00785479d73ce39ef3e87c47f7e069343caa7b77bc40d229fde6f48b3c077efd8ce05ed8ee7f4ed703a23bbe63cb761ef639f4bf1d02ef0b53bb363eb18580ba1f50269459632e3678f5b181e565c99f96932ae18e2bdedf25dddd65878bae3921a45bdbeb12be64fccb496b4a6719d73c98ca2d67a383261d89bf69eea70b983c738cf75cc5e52d77475935c57ce6ec99e1a31a66d6a7bb27aebad73ce39e70ef8f0cc76aee2e283fbc1d5b0705dad994c8f7bfab860b85b1d9b4cceecb8629fcaa0e3901c0cc54d16da423158ee476b5891192ca54605be6fd86d43c953cd295322d79441fc4c33283a7632aaf2007c9489a64645f1be964d914ac8d517e27255c84d72ea5ee2df1ef394bff7de5b0250154ae02ef07d3f8a6c01038849b89cd7394fc8507001c74321eb872b87c2d611899c61d16a518bdc4ddae814e59853d07aae4e44c71a0a58cc5504e5245dc50cc3bcf9af828aa283f5e536aae9db2c0a6240e5c95861d41281726cbd9c5feb0ce8d698990e0a201ea29bccd11d0cb8d65a7b3533c8af42effa5a6badb57681c930a3f6adce5a2fb976e252e1fa7581af5731ff2a64adf5bafb1a43476bad99d85d9b5f6bcf5badb3d739e7dc656441824e5e6f0f541e089db6928cdabf5e5378515c45502face064faa0e7e0d238386b54c8b0599771e76e1daab263261c949753b83a6efd6ca7aba41f93d1ed834213a90ac9763854b5782b33c34aabb9072f79e9082b065594b168808f320905fd6ef40f59c2e7e5aceff5125e09fea9a5fd55c82cee7ccfb34ca4cfada3bf42ff4af04a36ac6333897d732c1fd73d6bdeba4f479edc7b0b871a08359860d43deb04fed466ce54db48780597c00a1f1e0a35182e9b2f68c85445c9ccb8c082fa90a144b878a006c6f2a9b777422b262f4f2b1a93a21072c644c6994439165d1318a3fb22593c7d28b9bb6b10ce39f740ceb7ea561114b7986377bd19e6d6b792f1b43cfba2f85993e51d244877018d04531c9d0a3bddd4e1e38d8f814252c25aac6e3610c1f226ab69310e792b9c1df306d19c93b1c4e415632c74ba19bdeabe2ef0352baece8fb16f31c6416197faabc09d4dec5b17b8012e2b961931ce3aebbce28c31cafd70a3c8b53af87aef1de9db9bbdf161ad3aad05e35bb59ab98408ba9faa32aba48d52573ef8f15a436d73734320824d5a295d2dd92aea4ce3c7754f5da8755c36e7b35f2f61f9f62c95170cc2e5f7e56f890b23afc03186c69216565272cb989bb67804d0a3826b28850611451ea6cede490304d3bf16b7c8d25abb265942beb56577ef47ac5b44f58e86004db0ea78168b9c81125a221f72cff9afed1f5e562cebdb2dff5945ba3ce4ce967575a83fabc89247e7ec56899b034ce89725b677ce5908e65c45d0bffd4696510f1143fe5aed5b9f5167fbe6aec9d70f677f15b818131f407b97ed644455046d291ac97e3c999070a8c1d08f8c988475f1ad935e412ef0d52c580ed6c8b169a278cd58e52c98af3fbee6d11bd4c8f6809e846694e8e1c884b29db2a0b2112665d86bed71d6d4d7be25e308311123ae5a6bad87c38d1093b0176d5509275ecf7d524435dcc882c8b031ef625345d03993aebcfe26a5648c6fce5b235411d448c964cb89fb3c0d471a2c262e8c6845132e67988bc98b23178b899633193595c1cbc66bc79530f5bb735db727ad70599dd5debb5bcc46ccb3d90e3c324f5374759314ce64d2ceafc544455175f7e611100e278c3cd94c60cb5cd7cd20697c5fa09bd60280e44c84175d18243ff440287b9319721e90fd4498bb019a7541785bf908ab7b6006a353e02b865c4550be44ea7480257d34356b5c183f1e4d4e301c61c68e26152f1b6346b72988c3cfecc8d15443d33abb369a56647ccc1fd35d0616f87a31bd9aedf385048659dd564c579329434256975c2101730e199d381a48ce8a342d24683f4826960c5f60245f6778199cc44ce26c7141a6b8cbdd77c47ddfd77d5df7d500588b79391b21aa0b835f85cc76be4684e03127a921f4c6a8e33d3f00be175a56113402f742d1ce17c8315769f6afd205c18d1105e183467115411f705f8c23a047ca3105e88b21b4d1f1bac017afa88aa0c64c82f7f3f1ab908580ab981ba3e641ef9d639e47cc6bc92be619f37ef284f28e1e3a677d8701078ad0473976f0bdd5d0801b98af10551174a585bb2e8a9593456745cfb283922737f90e082aa221123e4fa431beb79a55841f5d93ae8b6373adb99a8a073db77a6059ef2cebb16dbc435a2b302aee56e08e3958494fab3a165a20a9e444158f4ac009bff2ac6befbdb74f6b35123f1ff04d79ae22e84f3f5dfdbd73fede5b4e6deffdf36349e6d45c7eef9e03d50db6effe557b7fdd9caa08aac69fae5bdd4bf42daac87e2b0e47ba1d27c2a822a8cd27eea8542179089293b2a281a1c3e8e27cd033e3ea7ad22bc195e6b181af9d9d1dd2edafd6879e715445d019499cbb45b6a7757273cfc057ee4c8e4d6eceddef8adb078bd2de7bef919ff6229b7bceb9a7edb92bf1dc31e63284ba8ca35b6473d659e79ebdb536f15b812fdc13ae2e73d408e13ded10b121e170d5a83b188dd1e0b5105bf278a828c7fce95445503592e7d35d12e34b681a0773dd73fabac09724af2982ed5d77dd7b44248d289a818243da2c50377fef1d021497bc21b267918a929d7bce392f9bd27c5dbf78e11cb446a615bb27a1c19c60610547c9c3d1d30ceea8c57e02aa1b1ef07367e7dc29811736e2852b70728e2b99b6c54af26dc8f9d89cf7387ccfdf9bcb068544ddfe2ae8ad1abb7745e8a8e7986b1d7d7b375308a06b0e7c85748952158b151a19289a69ed5252b5f93967be41c68ca3598f89a392dcfbeebbaf5438ebbc7713c76fef0a7d50a8d5f102a05dffbac017ebc9b9551906f94a4da983cac3eaaa03ff282573ce23cb179c154c28b9e51017063ef6536b6892a4ba748ab0b47c728edaab0b665e6acb39e7ec8424a4e6449a384bf9d948ae9904a81a865a8e7a66b075b89055144175816f5613cbf9a8f0de56411cbaa72458c5bea521079984a8b44c5c499542003b80048318000000002049b238cee39a92031480072fdc5884a45c6858248d43227120200ca22808c23006c2208061200682310c195a0513aedee090e7bed561a3efe6926fa125530bcd83c7dd3ba762518279e76edb9ee518e63b9339426c5f7385de71f6117d3b3c5566f87df3b4123f0885760cd41a73fd0102906708e796af051900d719a38ec54f95c737a8105ec9d2f9b52216607f0715ffadbd0adf3fc927c3ce451309bc536d78f82a21563f094a3901cda60699a06d7e693b97e6b7aca586b9c75cce4c10ec9cc95c1b3bce25df54e2e9eba0e7e1b365622687f3535bf762aea430496c7ac6cb324e113a68789002286a68f16721df1d239c86b9124e1ebd7258be7d30007608e6cff5a90b2e3b1648c2bde919868370e4b07a1b93f899e56e1f285073660ec49e14039e0079aa0263ca3f13713932ec1293db7c48468f67717a25e5688ba11496e7f8de104452ff1b25ec58b082788e160089b0bffab616f837c8c0190dc7eb16bd25a99e17880d33d2485540c402a7937240a3e06a433eea412a1269743d3bc8d526261621096c128745a38dd908c6d4ee0736a90ca164a7b42d3c683fe2229ba2172ba24001962230843b2f726285310bb04fd3548c7fcb8d896886e12aa61bc2f4d460204c14ef52b79d113c5670bb8915bcb5671c0dd35efd427346c73601da85392569dfa0a82ca4e5dd0e64457ec30a5dc0cd9728b292006f84a691aca548d0248af0724e45ab50084f217e2cd2c38e89012566429ef909f373518bd74f3f4ecec21a4e6a8608b50693654962d55103b85106735e0739b6002e431bbed6062140ab5dc11c29ac521af203015053574ede2d05c496cd5988da385cee1b0dc732f55ca2c0a504022066cb84b56c656e0c9c59f96341bfa1560d481032a19d4a6eb9682eed4f9a7546fc01901dff00a1710c080e76d0f520441cca1f459db0a800a1490cda0ef165732e80fc7c3d798483da09a1b49e1d2b580e83034b6ac73f899d9448c12416a87dbeec4ce61b945122a44f1c05f11db145e1071a79f2614376459053b9437e5bdaa915808b361f4d81c0a17a2489d2b81e2c9600935f394f50e82baa2f6dc50fe9d38c8af93cbf90ee50d6ec70a81e9ea3e7c4e3962d5d3d4fa305183f7ca0f14eceb7160d6c49bad5f930320a8c447814b6ef5593d9e29da46fb36e30caaea4a7c2aa233c5ac72e8f572a702daca9754ec23edb0bb4c256d3a67fcd760a385e0109cbba89d915e3d8b10cbd93e736c3a7a11b13f652284f6bee016e7c2f158298565da58b5fbc7a9a672a256c609bdb94530c8aa46f46501cba9d3647b6cc5e07e306377f5ea26e9165ccc4b21bf756eee39014624fce1b3545e1cc8cc57afa8708e4bb749b37f719a406a8bed994a9f38475d7f6a090982bdd30fdefef0d2c3845f4618c505c49f5c759227a514b1f5c52008412a61f95f0f104ec25e19ba8418a90ecd0a7ff2c06f77393dba29a540a76032397e121cd205243a88fbba1f77f1d0c6dd64f691881199b8160b3e544cd779ac9b5607e0778c5bad619000df067805764366f8686084ac58241c68e1932d35db7f593beed4a89f8e207352b47db97d5b6d2cb5de000187de7d47f506798aa998341b8c923fa950f968686f146370833c52fa37c2deabfc6a90b1f528eeaba0d4dff9c773d443b0c2e5f936016180788e1ae3a052878c6040c7de4dcac714b5100abd3b2a6066f661b2d4e4841cf93ab7a2d7b444038933e9761d7b89dfc9e50bcdd9180aa1c65bfc55153601e126ec4c01d7dfe268ff1e54acb329370d4abd9bc1d822a431b8d1b8c11682f1a5c8abc7e9965c87d274f41066c52a86b35750570a184c3326579251de991e1f7d15a110e46c393bfe822969cbd3a76945e85c7c3d0b39182967047189a070dc7b160bbdba7b6f1334fa9476cb4c682458a94eab31f8cb7ec1126d8c316e24b560580cbb7c040fceacd9239f33e9f128078abbac97cf0ff7b31fe886c5c65d137e07654676e15c1817387ef970cabbe2ac45db806d7deeb0954c8cf42b713e525da595c5499f8e6268a321632638e802d656091f3a06733872fafef8ee996038919c86a03c9b12e015d56d3b5f3df8cd74b398c61069ecd52dc9e01631ba69c6e422537002238ee8a6e4c703ae8e81c8d96b75822f80a811ed64edde116a4d817d23a9b4ab30df2c77033cb8e0c97a7e6b33e0ae37ced61fd8e4d6be4e6846e7117b6c73c7a0b0f5eb73bebb1119b6e9b93da9f8e278695d8e8b921c51fc812c564c382035708b859ada6d22f1d7e2dfbd04925ea826c920873cb33ec5a6854ce2b394d6f022d81857b71fb43aa0405b7d9c45c4ed3de30c682c548b0e9bafd26f3bfaeb7e7c60750b00921ad3004ced912152cd614203dc8b9e51e6a51c1acf2bda3613ca07a76160e67ad5971acb76686e45ae7a999ba911c49496bc51c5f44c0efef8cfe7d43624c8f04475ebf67c4c7aa2da6f2d8e69d9302f674766600474a7ae46de7b6b58d05f05e142c9692a72226977aaf60da58d8aa3a32a67d0c576e8b7dba46268393e79d997d5d43504f387e8785eccdeaef368ceac4b1770925a4517244daedd07a9acb0df07dadaa5fe2a89656347398c84f5630d685e6a679c06edab2629336f8fcb5598ae0335f7cd3969b9fb8621398f0793673892f9bd1fa78cbad367908f6f76b539a0402b1ccdba3282a0880e2e55af7782f8f89fecd31dba257bc1771ece20898e2f6bc9469de3c5ffea3139067f4e7f408b2f29c109d584069f288c1f9d44cdcc56510a2b2069460cf01efd869d43386f417696dcd1786d6d073f93416531fe64694d06b8dfb0d8bab02f313d03e4c047615a4069f6d3b566eeb1e833d27b11198a10b073dc1f1e805a8463b44cc87698fd0e81ed4897079216824628ce5ef890f0bdefc8c4a6e07e3570b3cec79de587dd90901e5e4e61f548210c8ee48d023ae438e4545d0f5e20a2ee57e93da2e25a2bbf18b4e5eec4df371af50271ee0f89408aa318e729212a4360a1210e08317b444429406857b643df361ce7272eec712f0a6b3773612dd4fd7ce34f6ba9af40ab0b2e0c0de46483130d670c2a5a5dcad93388aa90a1a46bcc64543af505989a8e51492587896ba4319719c7f4816f4c944c87b2f00e14eefb52579a0358be22fc562ff6ee134e42fef8a9b467ce20991411707eb334e0a0a141b2232ba70284b5fc7a6a006cceca947b935d3eb36b59d5964fe447c099386f6a28f039ed8edaa682fb3d7459f4893fb9b9325296422eb4e197d062a98bd2bce676aaec5fbf588db79d449af45f69c635a71c3e0460ec4a9e85c5155eef1adafa952b240828111868740c7058aba2af6dd0d2726346a2fc0127a0a8bd5409d427f526a78ffc1b7df270d503cc606410ca015869eb90626814258ccc0da8458d72a8b4c00c5f69042d0ceedc51773d2c98041e3176e1a77d1d1863ee936333b4ed3740694536834ef9083935f184eea5eb4396456bde1355a18dd2d8ec3dd7363420d869554c4cf9e64700b2eea3ed1557766c1751b8c59ac00e2adb945b6a667f2545e50bce620141ba249fb04fb1e640fc62b7fe935f62b12553e0ab25a37faafd313f6d8c4c952b1c1b1ce10db54e924ce20f46be474826e0477af3b82ab8a9b2b1fbe662952b25e27649ebf56fcac611d1c3775f084c4894da0bc3e3378de73df5e85b49ca07d008f107479b0be5cb047b203527f9d142a99be9420d6747c50a4878a2d2f5a0e447047966a212ad8326dc8bce7a66ae352dccf79c68cd72a0dce3b1aa98805c22208ae50aeb487026c97a72709198112718c3c67528610f781620c21c07ce5439c8bf0d5c1297a3bbb7c00762e0e85f1c9535cf8d37f66fdd2ad65d1d20098c41af4f1508d54f3f6717dc6a173ee7fb62804e64ea30e9edc896304ca8e80dd87a2d482536d387882eec09bf6a385faa319ed435c733614273601a2d75cdf9c6bae98ecfb2ccbbb95d3be42a6bc57d8a6da86fae6bcb1abe3f46c6f04bb57d2625b480275de0bba748ccef6097bee50d9690096cb567659d8df02266f4644a1e4d160fd4a4159f4f348e9cff0e58c601c2292dfd929f2d67c9329e7558c97a925eadd239bcc0ad477f7078ccc779165927e46b9e5239258d9782be9d8fee7b4a5c48de7a6216e384a68a14bb5470a8276ef380fd5c96d04619934c2794dc563db2b1f3ac6a48d7a781680b47bc841cd82453d08f3c7e03c9979fe52857b376be9ed27230bfe4e5747cdf1e951123d70a9820b27ce5fa6793e860e69ff9c51219f4a5e337f0ea2f7a0c0d1fd09ef99ccf88813eb447783d7b5dabd88bbf68d0fb78c5cd34e65035e4900c68be48db5e4789a1926c7148309f86efdd74c47fc792972f71d023c0828c9d43a6c4c5cfbd61a9350f10bd591d4ae9079201bb201493d958cdadd4197c5d892528c37b9a0cdee1f2f27da90a4e38a8659124626a439f21c4624a99f92c84b00d5043f81ae5476b9f9a86dca503fe4abe68a5839740fd674ff35d1e1dab7187ad39e365bad63a85e8918fdd0d2e4fd6290acb7f77f5a7d4d6edd102a181da45e0e102c559de6dc38d6af2e35a98dffa17ca6363c6b4e57b6a2d437133818b616e48fe3d1367354808ce712e0b8222b833b4efdd53d00638ff8061d93cb071d0ea7633f0e6792960b173c328341d18af76d92b798f63197d461d9fb3285bdf8b5fc83a7333c3d684af8b3cb1d8d2034383364d8be0c302e9b7ca3026360d1f3cd34cbc0e741c02103c442b0a7a2de066ce3c438cfec9a8de8a1409bf42a90ab919af1d95d0345f7a331ede60a74894df74e80d0ecfd476ec8e9e441827aef39e562ab9f136b1f17b82cc6f74a6c4d55b0fbd5724e5ee08ef37bae3ff0169c60663807935ff889f6dac747cbc3e40af2345f29040f061763211fd9968dc6f24847526f5c0679d69d5483529196f234bafda523ea507e863432530bc99d7a0e268244c7de9f48a439df4d2ba2fde47586412e4103eb0beaf441435bd71e4673060ed8d86701c84d83559ad7d558433e6cb7ad4993d9b1e44800800c3808c6a4a20ddc142a8a2c58c2c5a754062e1e067c53cee7a2908b4a49f9ace663e2ac9c83a3dab6a09a14e944836fd47b0b8f8bbbaa8d9d4a62ca64e638c220035d1b665d332def587d4d9f461624788e86acd2f45ee1b0be39484fa87c31d28192bb1e9319821a4c400d93420994f11e6016f85e30e23e669b1d36de2ed7980191c62c4d61441c58f20e72a9b90433efbd2f81e46e800d8e7aef513b3991a3dd413d3ab664193e81c1e970a66a83cbe381f21b2ab2789d9bcdfe1d377134ff379e7dc2ea0d884d1cf1085fa73033b1e6e4c6da98a3ac61591c53595eadf67fd7422a39d7e5602bfdb44a8157547193e40744af258e748500d95966b7a7973d8361b75a2a7e043dc3b1aa6d6ce58d06bbaf30c679dbae8cc8ebb8a1983d704a0928493b20b5afd835e3c62cb96801b438a6944ff80df519d9ec80589eabd2f8401e4323562d130fd8c4d30da344d6187d458c0c568e3bba31fbe174a05ed4fb9de0f65c4355a0118efcc638574d68c64bc120b3dccbeaf04bf481ee9c53a762590076e42386dd0e64654ff3a8805740fe02a75fcf438444f80c0cfdbbc1e1149233700a43a3b30d7135510565ea622162e247b76a4372efba07b053e15a8adfc862583e8adf6b07ca7a2cff6990c0c7715d69df67b2c8d7fb7f1fbc199cc44d10a138a7cda2f5da28a292b38d76155f1cff41592d352f06d8111b87dab83579afa47fdd6d1cc7a3d1ec44f96fe6bcdc72882054a08e73f92525e0437c8642baba14b7e98a8f67b18a94d6aa30d5339395ac96d946962e3c93ea7a0e163c73ba34e0b0861ce295a5528bf0bf2bdde6f79b267d19545cc02ca86d8895d25283d5501805aa88e13401fcba56b8a7d70279cb6de72faa9d4cec2204e143c27249b33813eaa4ee9e396989f3e012f3a764c9a5428c62dfeca95b4bdd9db0560a499e0b7a3a8e66682f13901c7a30c9221121c41d8d54a9544fb90c2930284f1da4ba45a1a47848c9331df99aeceefd0f252f23284b84550d314b53247a5369ff830c4ad81314b1f1ff418e8dc07064a26c18afcfb29af8481478f9e6a93db7287bf998c6ebc4b2c03b480b8caf7468d0a2395516073a64026ef01175ca4f1c6492094930443e008d170c0c2ed5b52ba2c41a7acf302cc9da75311213a0b42147ad5d912a250b616dd816b8e776f1b5e84d5bda5520d862e0b31b0073eca19edb03ea7ef6bb939e5f19988f902d9ebbd1dc46f04215da49cbc5537ffec1a02f9e8fe52ef5f345d9f9c27b5a703f75b480f81429d61d194917c0aac124bc362c8c2193f851df13fd8b1884c0dd42837af964c6912c946e23ab8763fa5b5174aa50af01b52896c12ce47ca5fe46da385dcd75c6769e9c4169529b301b6bc28feccb4e3664b2966a57ed90144445a342a9930182a5beb3c281e2bbdccd8af3ec4ec8f9002359bb5090b575474915444863b4238d786a586765fd2b5946f466171f0b4a988574a37747840f88606efcb40edb8e47d8504f025f4f50c15346e9797a5aa170b5f15b32a973c0f472970dbaa59b441928747cf2b6a0be37c716aa7461b9a8f956f3e6faa53559fa6f46b0ab40cbf55561bef943299eef8a75fccd0a8ea35254e5620e16b03bc74f97d03861378bf7c70c4a936e2c66ebbeeedd28c4cae49bcde69c191dadfbf0e51298870f0fedb00d43a6cc58663e9c0315e04d02696dc66aeeaca4dee420177f9b9196ba812d01ee46d6d700c837375749bf3121343b77d36dd62f7f2aa8e923503621ecd1c3f9d121e7d33598722a87b3c4313c38b07437f2a1a6a9689dc2dbb50d1c6baa0c87ef4a658084e8bade1fde8922307ec5ad5423b5846180e8fa8aa0350244d0b55befe369906572055bf935d21ac80d2ce1b5837ff35e6672a15c2bfbefff24e60c28b8a07cc169b09d50d60c05c01edcca7cb012499e4f5f28b0865055863eae8b6a7a92c40222cb05a6fed6f480d03f6252bc1bc91abf29085e414f532544d2f17c4d96acb7ab33de8b5018ab5502ec9702780dbb17a64751544acf9db3e7711ebe2b5bc8505e4cba67ef31f114de63d410a26d5a081b08a90567b487cd8662143a03f53a5075631948b1d70d0df14eeb55a25a3e74d99db86f35d16ba80aaf064bf2f185e64f8dde9e98d9e1edacaeec0b78ffee62f0fd7c08748f5c1d169d74deabf8f655fc69b28722e6d4ad0af56d02c161399a089ab09ec190204eabf6efa13b702d6f2c2ae003e634d13ab40660494ed8d7a79400629a220354b282934caaf93a565201cd0a2045d1baf493cd604533b2d4526a1605411f52046b6ef65b39c22845113b956ff827e66da23636dada41e78800d04bb0505191994438c1202d55f828adaf74e9d9bb5841653fcbe7e76204a7cf7d5d26aa12a2565d0951b5e43723fa889f27550ffd221b1c9da2a40869123f924577260e786a493953ad4d3a66c239f1eddcb3b4f92d4d77f6f80185e635eff35eec6fc2cd6b28738dca7a8273d83293dfa6c3e824b890ed4c6e7624c95da7b133f9bf29164ad94be2ef8b85da452e8058cddd30350161518eb43f0090d1353c65c35b64327155dc9b46b7934c64de6e5373f32ec8a66ef9d2dc28e9765cf26404203d9dd3c428ee081e51f73e3f796196c6ccb2a688497df2243f634a4a11ea8e01e25719f67a7593a94d288d43981a867882789bcdc92326826a4f21a6362c9df0a70ed83b93f5bb6211f55faec96e9f3ed1dea90130e76de615be75c28dde25c2e4ffa61844b9f3f6e6c897feac2f1655b3572efa469a0403b974a27d36c1c68174ef6dae91650b2d556590d4d358bd1a913afe71a871286f3a99367b736a15b282ec272dc688877ceff07b12410f5f7a01cec383c313d456ffd9174031adc426e503107de5e61b300dbd12d11d4115282a75e8ed5d7042fb9e21f19aa86b9dee09774e3a722b88687807af08d7c14cfb768529e3a3b55778f3fbc15b9a9a9e9a1ed99abcc11ce0ada558348fd07fdd323ea892924c50d534105030686b5e38ac7c1f827d271c453256b38813af54008367e3485a35156921c9f84cdedfc2eb8ec3a542de5e8d0dcf9c7a816e8ce0b18f0539cb57aff61763864998129e2708815c97e41c5884b081c7cfb9de6880797fff44260fc0aa27cf8779467a609e5e9fa2d4a21ac99bf2a46040c2e7a7227932cad4b767a3d00390626b97e5b3d6bafd3d2363dc6e41026130ec2fefe53327a9dbc23fe443353193692a63e2ea10cf4170939fe1255bb4412f1d839f1605f891a9553114847b8ea9b4b6761f3fcdb9060bc7586169d149fab876de227e3f0a408da4e75e3c460571b5d131083204cfc57686e2f223942256847cfccf0e0e514f4c2d05675e81319b9cab4d992e2108c1e669c081bae9eb92029f79f31218ee46ae6b4286b717b084d8e4c51bda25dca71add8f5e72019e92962673e143f2de6d9f09913cc867e524b2ca65f08dbe618e913d1dd3cf42692f061a9fe0e60525eb0155532353d9e9253efafc5395946459a83b4666753061d8f2e3ff49b9c0ff65d015a27e66e00075be1f08a8797bc7ea42abb67cd01af16311647929a99b930fa108025c170386c9b83dfa911875a0efc7dc1d617a6d94195b0e2c89e7754ed8655638120f78adec48e67e973cb2ab2db3dae776653ca00e54cf8fee54afef0e0c6d3af1503b11c8e6f180d83c96ba9ae90d0cf13cbf640b1da6e826aae174b40994cec94e25869132554bacc6437d5360bb636f80a00c19297ee7269da82e242cf077367276b5539e253c676789eddf897fee74673bad7221d1deb523ee3930e0368ba37b6b700f83c44282c6f9a63a4103be5d0dab85e1ba78c0ee6fcccf42ec01c3dc6c6c5b1c6d87f1ebb69f74f0f30cc3bb7122aa2ece869ef350825d372b35abac63fdd6931ba6b933267beb6f743f65b12ba1240c43351066bc97a8873bfcd540c6414dfb27fd396caea8fc76d243b62746c79c7836007571d31b69958204ccd517ec652a07bfa8ddf24fbedf0101362a8a44d6e4761e2b16cdfaeee1baf84db448cb4ad4b5ff7f92b97c5971b40b5d91469e396816749b7f5610c1f4b75ce569a5d96f515e160e17bb40e76f99bf39727681630e71230f2c8e7df0cdb0a2640f4598431be3987545a94927f863f9b806ab04fa36205c6683df6025cb08d5467bb90220795d0b28a031922109bd6418e3c88e999828ba921a81f18f2b3665288d5515812cbbdcdbef16adaea49c2315088b8dd725cb651ca6efa75624f3959b4a140764ed820a8132bc1ec0ee2d9e2f84a0a5b10af94f51b4752ddaf39cb11a9954ea35a9de712695cf7c3a7cc94a6d262c231b2763ca845879b2f858cb728e65dc05b79289e966372e2c4f4ba27350a8dd56da29438d44f5413193dee90e2c28846175cee9ee643d18a4630edcd496f7b5020273664138a280790b40ed6d74ca84b973ffa8942137d26e85da3f8804bb9008b1725abcb462b16524dea4c8005aaef965d4999a4955f5513e9964f10009b96086b8e0ec18281c226dc82390e124c08ad6ce99b1d45e994bea5d946a6899f9901cddab8de2c6e5eb0e216491d9ef671179341168ac8d118683f2ef4d566b5e8882626f20dd60821bee9d6957e255c23945dff046e4374a17d6a9eda1e5d70047e95307d6e1b087fd1e3da7fb1d9e2dca2705899bfd43ab7a588039c8313cfe619eea11dc5bdad34e3140659bd94551af83ba081ce162355d75e34749ed136a33179d364eb5802ee7c1615c504a914b20279303b7ea355ecdc291412542f113c8067852e3796215bd0f6be3e06ff22d18f5a6245eedf0799d302775a8052d0bf37f618b7fa4836d1989e89b4e5eb72860d0710bfb547a38d296e8e36b18ce6a143fb094abd51cb29d28183ed1ed17edf20bf80635c3160229ac10636de6bac25621a58764193b13f62648782244f5973b5fa11f7655ef90701f8e9adb850720b0111e46e9eba477474ac3deaabfaecedf8e661c801a41a4b96debb21f2e05c4701ce36a2cdb9690ea21a300cc937e3fcc852dfd66a47474f33a03158401e17f460545d10eac9f7726a76d929b78ea6d0de1873fc2c4b02f7ab517a4e0c43ac837ad6359317bc6035633e0a8e865d25a5090b0f3f543ec2115ff9947687c9de7bb9b37a42282fed9212cfe14ba35fa4fb61d21d1f79f09f0f3ad92c5430b2c2d3987b355238254f1c6039b5f95fd12f755b36e9e4840f83b6d62e2936996e072b064f178ddd1d1c1ceb4f42246be7a5a41e76638fad47e6f23c5ce69613a8db36343919ee93a060f18a8f4d0a5c0595a4558a0ca1f92dfc389f9cbef164abce98cd3240ddf04b6fca3b9a1f1b5ecb35a7e4eb6f47573a80e99b158998460cd2d1fdd921f8c9b82b5ba1799ae6e7a65fd9c95deca54b15ac0db8b842f8efa870d2b925e8370be69ce9468668c411e1946638d394f2980873989f81dbe38b465cdf8680e1a16ab6b8747cc6338a200213b2cf501a2723380f7376805f8db23ec6b1e87032202c16e3575e3974a37910f1c049d00204c8eb01a1a9b58d60e0ad8cd8688c7b609095eb9fd4ca690b400b271dbecfb6707f01ce7adf70ccbd0b42815889620b31a4850da60b270ac74edd0dc635ea319c8a6cf02ea391f58efc43acee72d7a40959437aeb5462bf5c3344652a84594d3c1eaa70854cbca8e1af484a303e7ec98cf9d468965d772bca5a201ec2de982a74cc140f52a95450ef10d47f05c686ef0d4909c7dcc4b03d849eb3f14d9eed3d4158866e806ae2475986a48d232017839daa18b40e0624664b3b11099438f2dda9afdddfe87e0e2129a1b2be67f60ef8bc0cd4fd9d21454b3789edf8a4d70eef4b7d26ec1bd19efc6c9b1f451b610590afb42187509e48f87c24923f34052b1ded9f178360927ba94abb7bad546c044d3e3df48270f792da9da02893d552267c147e052aec4237fe2e64b82bbca2e7106081e2a64cc1c4fe2a6e4ceb18301e19ce038a6637f40a8c47c8586e92ba60c04de431150f167479b987eda53e5e4c6235df3ca13447f3c425d1042010bd4b64abcc8a0fac254241260326eded7d41ef90311f7139bfd075ded55aabe9247fadc587f8212ca2ff7a1c4d72cbd5025856cfe6973993edf0ded19eedc22c8ab6f27a3da5f602984eccf37977a7e288eb5042105abf543e4a1331696d1046f89fb855876747406a10a2c58619440edd0d91ae47c2f33039f977f095b0a7e0889c6be489d74e66ebec563b328b344a589179ba26c6f4cf6b422a37e2c496faefebe673deb4d97aedf71e79315f6f0d41a536b12c9aea6bfc3767ef3961149966f4ef8a2b508f97bf855affbb4dff77ee8068dadcce3aca106c90e020ecab6fe203c38e7f1da4461a511e4c3a68b1e10f481c359b7f5f697ed6e1a477e7689c706a21bb5fe98c11c4d7b792418003d0bf5d7412a44ce2ba4cab0f8ddcaa9c5e2c928ef8fcb143caa4605124fa360f396bb87ef50cdec4ecb4370d9d273d1a02c278d44cf05644e374783294f8ac995253ef26c3aff36d5dc56fbcc18dff1d5132e3bcada201336e1b36a144b8aadc3a1bf251938e0ea20006106dadb3ef290aa595747076a0067ff07d3be49b09f9129c0bad076c39fec37bd6cd2db3d9b705252cc0324848d278025116436eaac3d6bb6bb24694cad1bbb212360e4a6adc4c5bddccd9c291d9ce45bd879d800b113fd5600d1d1650742619b1346876107e391236687ff50d1b4336305f0bb227900aa040844e170691e7c10b51e281a9ab5f4582eeda5b8b6bcff810743617bd6188e48fa684cdb511f52f3de656efc7c412989af19fbfd57d8bfa39b04260d12a38d2227acb9ae85167e8d7332fe9ceecc7d73527da9710de547e442613b5cdb37f1ddb1c60e541fb836a11e39e6d82d65da279e4e3c13bce3e50967196ff166dd82a43aee3b20c07250e302c53362ace34bdf18035b1c7a8005e4198d2f5f3629aaf8ff552bb9cbda37aa9025e81455ff5c58e4e52eb968a36a5887948b8009993b0baf43ab7df8b2bb368d5656b742259d9622dc640dd0c3bf682a9974af63f1de5108c2dcb206cf5731e7948430fab6ef9f4084622fcbab38639d8cdaf14b7f3872988f2bd38d3515949a6dfff1095a60c1312bec075cae174dc0e959ab865166d4c03f7a933d4420cfad062f4846c280b3df7ef01ee47b8ca6c09138e19d4a6e79571c7f0c4122d5f78329d7f1af723e538118bace8301991f068b35a35cda2b13c5580bab4a9fb0fda5bbdf582f982cbac97d7588a09da81e2bc0bc768de54fd8f2be268a4457a30713035fa6e27a23c7c40a41b83f63bd801ea444566fdf99dbd748f9a3e628dd90ed9a48416eef1b2e1212e6217af23ed81c290d117f9d2158be2266ba647bd832bc10a38876c7d81962e677399bbe6f9643fb64661144359e818c0416162b3dd216ea570ba3bf9cb5c9ae181163127e64fb41610222dd6b7409d71e60f25c8b492c6161fac57d22adde46d179257169612e9ba60ba20ae78d11143b9f5726b79721fae3c64675f5ffcc1a7522e1313ef584abdb8df579d0e842a3515d31e53a132c0f3332e6bb0ebec69c00833383c4fac7da636fa2a5df38bb8441d10732d9191cb59d6179bb1d4b6c56d74808ad4b78fdd3361c3f5d37054becbaeb537a2840d8f59480aa607d5789dd4bdaec527695e3f456062284b9e7754faa3c1312ec6080af9b9257e42fd2336fdaa6c49cd69bba8728dd9e8812470e6ad6299eba6d7c0644e36ca2cd5c6fc2813568acef19310cd9b4819ffaf6c69a08011b67018ccf3424400421be75200c760b668ebe1e16458311415e1f31c744b9dd22d11b7ec359b819ae2021aa7a3e414bae595f1d7276c1acea30d0c55f17c693ba8c998504af172b722f25cc8012abe2322c852f3f28ab647366ad37186fe6fd487773ac419c7396f1c2ae8bbf3db72ca0d6d08eb1b9c8180e12fe74f49aaca087f70c636900dede0226ba3b9ed0383559920fb01352b8200cc2e2c449822774e742d65ec7f0e9c0e98f9cfcf45008c9e791a3685ee5b275efc2de64fafc246f9f8a5887b40e99b071b6da2176a86f66855d990dfc40b3281e921e39645d68433b7b2e43c121916c5770570a484abf4a4cbd4be6b5ae19259f3712278df93e8ce87fc31ca97ad7d75e2e80484f2e9e7dbed56999cd7f2601190d88ce3f49963e66fa4b5031ba54318e713905d247b283309ce6ae2a80597cd24beaf6e93a7d06a563df3cca83267619c8f6b077853e048b3c0481f0dcbd0590e2dd6ae1f1a4ce51d94eb9f2ad2a8449b7338ea32caba07465c0fd4b877ccfede28836998ad65a06dd33ff03485740ee9badb2bb6a9c584fed892bfbcc1a5f517d029ca2882b3a912806e4d3ef63400c6a2e8b26ea4159c9b2b6f2573d0ce07fba613dee846e5c6f6f10f9e864b0fd9f8f4ac0a33714e9ca83689cc9a6249bb158068fbcc4b25ceebc83242d929659c18bde68a3b2013760436d5a7abb865610082394e700bb213bdca5e0d5d95014aff1e25483033e648021d0b442cbaf736a2489e31d98eb58e57b6d9b4caccfd35dc2bcb0455fc10e6e7186afcb62f6aa2a64d5d9dca5e5dbe92325fcdb4d7f82bbb6c7cb5b83d3d2de4f485cb6e5b9c92f5d6530f159880c3e0498f3a95eb3e03a45d44831bbf9b41fd9d7c4e94a8c0aab8601037376d1211bf1a7d2313172bee7b0242c69787baaae4de6e8ffcea6b87659bd3e59f2be6485113d8eeeecca3d4a4327952127b2fad0a0bc85a3de07251b40b3fd6cff7cf24d58553a2e695f59aee8e08dac71f7fc4b3aae0ea4b88d1ff026858e7cafe76c939031482c7ddbe39c609b7fe42649e63ca59f38b3cf398f457ab2cb5d49d4664745a05fd65ec9f85b1e2d7b7e1e3549ad960e768ea80fe7cc8e2616506ac6a5393a79888aa67a6842e784c2cc2944aa542fd6c13a29aadf49bd393dc8c979ae68fcd1c28ea48d9fa2d475ff30f6485437e820ca350ac252fae0ca8096023e66fddc4f5160ef73189e115c2a993de5c121350248b12a90ad23e0e23c6647c1b76b7909774f82dc9a4b92a9d651a8066c4a73cb5ddaed790c775290be9fcbf6d31dd0baf8bc1b0d54e8e2a0a5826b573cfdc540ed5f606984da15ed9b66c196f390cd6c975078787110e2e989a7f1b1488b5790fe9265805e3128d24e69dfc7414959bfd1ef99aa3152d2f8319ba3f7c2e092ec85de675ae0a0d649838784de38d281c1b23bb5e3a897877af1092f331bbff8bb0500335f69432c77a5671132e927460f5ceab3d8fe4a4ccd22814ca5183ab2417078242aa6265247dc9eecde8141fcfb74f85aa5919b9753c249e27e7e96387f0a6ac8d08fc5532b046e22537c322ff63acac00cc1e79a462f044db3bd2a75eb833c90d84fb0e60a2497d7c452cb3332c2e00468846a2dbd74d85795bd83d19d13a6f93ed588005b4f679fb452f75ad782974b74a12526423ec6653672d97f0363beb54bfa32c86df35393b8637d0fbb8d291791bdcfb8f21b289d757fe8e42257a4aef5e91a3b7165b1bce730911ebdbf6a4877e6431f5d20b934c8df7c9c6efe0d567295139ea2708ca2734598d18cd46bea8eceb3ac0587744c43fdf2a387db8075174958003c5e0fc23bc7ab029964f8b8438fa4155a530fa70607b1d5246dece3adf06e9bd2b3f80ea208a6177c5e750f89706194a63ad4470ad05e907882414d98d06c8b908e2d82661d291e50b71304efa787c6f493e49103b3a3c71f46af032953a52ce311b40e649db378bef730668087e9c2772f2eb175be46eafa001d4ce0f5b077b2c6ab7888afd4c37f15c42c5e31eb80a848824e3df4a4904ee1cf8f473556ed5384adc766936ddf37d2b1b7a22d0c9309021f3ba2cdaeb2ff20eb11e16308562c2323b9e134b503913a1be1b732720fca8e758b914d125bb978315620613d17c33b195d41d3db63e2417abf4bb9eecae708b62efdd0f42fc0251241264c99affd9c0441f5b091a30ecc390aa3177c1771b8cf2642322dcf5b7a96d9656c946890a1957b9fc0141bf4467a58084053a2c8f90c41a0e840c832ca57e01e926d038591cba8c30874bef7208907dfe3a563d6643745e15937a40f0e6c3ca9dcc0b095b771531ea97da5c310d7072975e3900e9d26dc65c44cbebd3aab4ad9a231a4e660bf70f73809c81d144acc0843649123d226aade4afa199492804a0b624043088622f4334420def3a70516869bdb8039a52c55a43c27b50d09c6b8e106c58952c6b788f1c0562a1c631ee80622e2c403b698617a2b8f5b71530d059086f4dc27633ce5a9c2667aa664541885adbaf1bee0c41cbc51da786345e3f52ad00bc4e1ded9561b5a063a59311d038a29e1e78a4be9ba6ccd1536c3e4ad242945cf216e2b8993a184b57580967ea85dea1876f88688145c8f571840d4c01c965801014fc0ac1abcb3f8b5ce96341dad89b0dc9a673522caffd1d6841205cbab24733dc809d1497b2e0a3678356dd411200fd67be27d0ab0f8ee8739bf25fab8e86f1fd6585a3428b734bab2fac37f612d17845f536171d17dbc86427d6c4173ecbf4a31c622c19e34d67f8a55f64c40de275831f208bb091fc5e11ad75b3259af58f78b5d40a5a03c1a56960392670a914e6a2967c04c1c6fc48661d8c52207a7bf86830b6bf615e071b9ba1cb0319ddb33a1b42ffd172176310cf83a74e0459ff0b48338a3c8757970e4e04829a68b5b5d270a5326b0bb1437485637f39ee99dd1e0bc2bd5c4d5e696de5f8e070896c57211cca5598c3dba1cf2bd2e01661cc65d98b225ee473aea0a757d5d0227b0b644bdc0eab41c153a569ae881709c7b128532208b1082454ec6403507de63d6819f2950d411650de42cf94e0d80478f423270011dec33c4e791413b07c2e2af72593b4e84c15096a3f08d1d4e3c2d796cca98dc25f2495cd864e2cde75cd78bd5a72a617aa58b617445a01ed4749d4b9df54a77bd4220a1fa10687442e4526e69b3c5dab6dcf5ba3ed31aa5efd420b2cad7eb510234290f644fe017de33e539e8b74ac85997301df3691dd23279264015656f61160ead427774900060d6fa02a1694a4004c89695a80a260a762014168bdeeca59e0c8deb00e9e50113320fe0033f000a802d5f243451729359188cff8a5880d8f31c8550e12631b52b0403ce37adc5a7842b9810408f4aa975b0d8dd1881099026803cb3013a687556a6c8a4a7ec097e8a55060a82fe9e02b1724a0cb10e060fbc004fd249aa2009f4b019fededad445574203141c5443a50469e16fe85d83270031ca36253a6bfde2041d6ef4fd4d28efd9d025de70375c4ba785d3c4b678109fb76154686cecf0378adf7662e87a7b3cd76035c275c170b66fc4ebf280265423b412a978424a62570c8e3ae43407f730c17412872e965e076191af0db33406fd1120f020a4eed0c42a94e8ce99d94df62cbe3458090f997f4ef84cb94d05874f1175d286cc0b986226d641b2849da1b161c30f29d24436ad3199f80bebcb1ddc0dc6b21f572ae96a5ed8e3451154c23234bda0eb4fa1cee250837ffe6bea4b08a33109be5239753545d285013c6cba3a32e9d82d10520f3a92741fc71c7a164ea4982eb5bc16b677209508f0277730491cf7d62a3b5fadbd551e9ecc6cb719bf0e6be6f238ef60fd912d2b7ff2eb43843efe04b334409625adf490269bdff1093531a616800a1a7846d342515e9d613a58a10bb315bd3bea32fae6ce7d2cd8ccee2584d119591ed0872d938855bbf392a5a7c032426afc1cbadba5cb5a849bde9751af2eadfc7aa36c4629d19ef299caa362a4a09037334c3f8f5b04b3ced8b38da1148ba56653323b93843bef90ee3fc767ebe24ba07bce58b25513efe95d8d0229b1268f3bc8aee462f674e4547a3f6715ebfc45cf1b3650d00fdcb6eabd57c28dff929b1da9f5a775112c3b77bbffe550d4fddcefe43ee1e0ed1b2ebe8c3dcaef3441d16823c7abf3a8495748d419bd82a46276017603c8ef62e4a03813c56a201ef2251e430a9f0d0587ffa502f7dbd3310154d5e2eea8a673de4963af1dbda22594e4be1e514d295ef469823291982a28e131409723949e77be5608f2744a5cdfb074f7ee3aea9f25d4161a29edd41fc195899012270ac56d39559b3e6b33548bb07f26460ead59eadc00d97ce125d7f1741d224bffd16f7cbf2b2cc7616efd9a3e759a512e67c1885a9170dfe0ccf71c1ab2f52c871d0017b48c3ac7b3e4b04c5b02c67bd4541157676077ef7c6d209c745f91d456a450e84ed139fa7af36ed5803186af6aad7911dee7ed23d8710bf5d41975de188659657127e292fadbaeb044732026f0053b503c1fa84ebdd480c08da518173668c582568697ebfc4c364cb6001788ea36fea7fb1207a0e9e310cbe7bf74796af5bc0c91bb6580a97211fdb722fe6dd1ee428e50da11b300b7b5e0b408dccf7c8654cd3caa1fe7ecb79ae5560d5a4b5b463cc6a9d8abc60f31131103db68971d440830c3d5e5ca1e85477f1450dba054fc01fa6825525520d218d7014e042c90023f298d0ceae00d18169ce5b10f5b95e8d880e658871d08b878127758087c40440420027044695559555555555535eb6bbdbb9b333796a62fc7c654ff859a5c07a51f4a2332a59452925206cd04170516054cd32e64aa0a6f605e115f7c4c9ba92bb49c0845023729bc101d66047a277e3f5120d05b1c1f30d777aeff3d1e0b79be037a27ff4ac555f26aa80171bb9d5d4964808d9ac8bb4244cfcf70cc05f44e3c1c94450443882802b21ca1809d0bd51242bb1200bbbdeedb3104b1e7c64400b489ca735a1ea0270781f20f38b739551899dfd2825f3e9e2fc6f93240d2b100523702d85c89ec7c5238320ea0d5cb250a364df0dfb92e1cc3be78695265040265f83b17fe3210d893e60aa077e2d9762af4206600e49e2efbfd552801f0eb5ceee55fefc43b8927d8e0fcee8b758e25dbd97d5044886008114b137a27be7725778dd240d8ccecf8fe49e607eee5127a4955129b11bc8d22cdc306bc944edc1cd9d4f1fc2c43a03f51bef667cd4a2d050caf31172a19f893b9f0a7daa177e293ac7a516e24c8f13aff393c9ecbc09ffc030a8dd03bf1dae8f6ae646a9395f7bee189c707e7bb2f4e61d41014112228249a7e3908947f40a6959213de5428221adae4f94db790a5654f98e47c73b831effb0b717878bdc37916693bce83b28860081151aad664d51246bb623908947f40a8eaefbdbb2ab4b0f2501354b7ef56f44e3c54e97439e742a2aa36593d54445ffadabdf7de838cbdcbfb352128c4e6dce81c92ae46fe4e83eb1ab5c9baa177c2776c3bf73365c8f0035af9d87642efef2e1f49a16ad8def53eb8f3c23c19b62b332202cb31ec8b51a82372d20a8fffee86c840f9073cc271223db92ac21bd14343c7d17b7df1086748489d5bb6396f7f678f77de391febdcddf962146db2bebfc54ac584180f1f37353cbfeab73ed0a41f714a2e3c3f5bdbd97bef72ddbfbf8a92e77dd64721ee7078d77b3ff53d8cb274b58a2edc7f8be23d867d711df513f7d2e773103fc28ad7b9106faff2df7fc5adbb5fd9f31ee90a539831bcce75ddee76375a83668b39bdf7418fe3b6320c947fc0e956d39dc348349effcec22a6eda641d61e3d3a8fa70be732752d195852b471625284b7364cd01743e4d09d3764f192a2f9e733414d7c74b9f7e22183ea34d3d5b711b7b993efbe25d62ed8cc3b86733a656cb7c46e40181fd336de5ddae9b0385d777723bed8bd394da64e5df7befbdf7bee9eaf8727b77735b78d6b1e4dc7befbdf79e7b7fc6637398cd39d4745079efbdf7de7bce3953bb6eabe386f74f1c5f3d5986e5398deabdf7409298d7b94c1171671b69feffcfa6e193ed3817d3d0bdfffb5399eee69ceb77df63d8177f79ef9ab99b732cbe3f8a17d35b3b3ae7bc6ce9a578db1793293bf7df7f1f349a39ef3a28022b8488a536f179776edc52a97fe7ba2a5cd777fef79f6f10b50dc78272f1283a0a0ae242ee926f9bdcf1a2c5ce4d74fac385e23b8b4ef0994af43943713e6a57d5af3226f859265d4102321c594663344f31bf25b78782c86655c4bbffb754dd5d9a2f6ed9ae77bdeb7d93fa5916883c3bd7bbdef580524949ae44d68a2e1c223d66fe9b3972c4520ff247ced75b91ebbaaecb39e79c77b7139b38e7dcd9d4f27ddfdd96a9eb72ce3951c9b95befbd6e378a71ce39e7bdf75ec2c9e3bb18bb2cd8fdde17d32cfbe69c73df84ddef591a14df3b114acc9a39c9cce5effe3f655cf2dcef7b09a30e9786c939e7fefbef9ddf4fd15871dee1ecff0faba0c5f438577acdc07c51d5b82dc9b030c3147a61eea063a198f6ece2221e6baa2a2b362cc428df685878a1b601724cb27d9f4183b33cef3d1a0f993229b49d65d66b84e4c6a30608e707d298d077ae032dfe6e4f218edf9ea06b42316bd6f2ff019f4516f33bafcfa2ce3cfc055f382cb687c59a91b95f757f81dc5b4b8184bc70893befbdf71b1e78e7d29d230d254b8a8a8d0b210d51ed12015c46c52baf382222e1eebcf7de63cc68a8891fc0b9169c888b94bdb7d6d96f0aea1debeecebf3fc0dc6592614ca23511500c3a9b73147e0cffb705948e14df24fe724c32345d4391e3813f86ff2b64a666937c4be22fc7243bde4c2c77328b116d259c7820e22fc7244126dc62a2ee871fc3ff55feb0c180790ef19763122027b5e2c8861fc3fffda1ea4122e6efe22fc7243e5e6bac8a4d6fff18fe6ff20cae0ee9eab8448e49b40fb6205b64ffde812b56e2e6faeef12ff1c8e3dce5b7ffe87cc73973f3f017946ff81de5f917b6c2609c6e567eaeb69cf8564a910c15c69b1a2e7c5e38ef12e812f0d0240df34aa573c4bd568a62c2da79918be6e028a125fa753d53a40099022bfaa87296e6ddbc52e50c31db161caa37365c8282486fda1630a03497cd33123a604400f8434180911a8b8a5bc9a91b12812aa618fbe94ad22a769d9441fc6125a72c3face455cb0f6b236d2499f3109e73be32ecf25dd4dd7b770bfdfe525b5aefdf12ef3b5fc07e5b21d60c8a8e46dbb4c64b180428aa66052579a349380cb26d0f958496db2815c5bff8ddd5a7023027a2c376be6acbac6371cea52f6ebc979777beb14aa6cf97a2b9cfebf34505b994bb5f350f92a2f31a75de79dfc193a6b46ddfbc4a53c4e6212cb3519bcc1e6e442794d39db23473f96d59cc9c7303544d602d5929bbb084fcdd2c52749260bfd927d6c9d9a7d6daed8a8d959222eba42842d02b1eb3967f100c9c57e855d59c615ea15749f370c3597e5ea529459439a0a2a25953f17e14bccaabe7bec42e450812efbcf33849bfa8f4a417e2ac9f2e69339fd7a74b59dd6bf6f6dee315654f9ba099a70673df4df84fa2a4de7be79b7d12cdccbb797dbab830db410c33a062d0cc90a172d3a6830ae0a28b2b068da956d793a8cc068ee8697ebd5098d767118c4b4b0a4b333cafcfa28ffd0d30afcf223297a66ed9affd33f0e10fc31f7a18c5782861854c0722898d0c09440f3d5668e269871fc5118c24b8b9709821c6344c6c28565d5046b8aae1c29a2a87a68c06192797b1827910656859fa78a4a8192931d5c0c3f8021b33f020124548b88dccc584109d70dc9b4b8f9826a2e3d28abdf7de63983cc609df68e191e0e9a978d9b1545f2f17b7e58b376df92ecbdd73c61b938433694245210dd5eb6ca1895e22460b8d4bfe8c638169852fd44d64853047ddbac570d6f712446db2fe0d530008faf0877ffc61f8c79ff75e7778026a8387cfa381df4559cdc01552be70c2a8038f0b27488dd650726090a5f0d945554f507a9fa428e353f4882442caa965d03bf1d027e50628941810f7930983133f3c1290d51734d984f8a62f172cdd7a46ce167a277c68d98213c79078a7cb0b7768b000f632f027ff804ed415f44e7c95950a4eb8848cf0535053003d4af3483c28a873a19c27b8a966e070e43141efe4c370504488a0970e49934a3032568485405312f44e3812750437671a36f85445e0564370f3d5f3e55041f081de89779d4c0f5c8968f0c528783ae089941ce89df8de352c1137f0a3d4c07ad304bb7f9761fdfbabc8000f64ac1dd9905231b5b344dd4b663090994e091fb213cf20b6a08810c1102298ac30d03bf14d2817d07c996681207804c95381de89ef436914681e4f8e2370326d023421c229250bbd131f3ec919145c97b8f33a956283a4e51bf4abd60aece6a7063286b02baad66aad0259630272c6a42116c7caeb67e5782aee0c69f5b3c4a6d54a5f1014044608c98dc5edc5c40e1559cb8b68b3ad22018bb206994ccd10d5777fc987dfffba30304313baaa833aa1884e79d128391346a8a5962f15cd8d7406a8d68c159d1a90b7288f0a87528da3b524b36e06acc4976dacbc7eadab48f4de6dd480d58d813179a23fde29b72b8623b824b3aba55de3e85a60cce054fd54a36c2f946ac618b624a2800945c794da271ab2ca19d4b605f36c9f27248fe66658e860536af923b53b9649629268d4a8d567d0144b483f508830929c4031b11d6fc76689a5b0f3dd6e8f0237078d09caaab2aa5a2135f7ded7b117512356d8b88660849def989d57a952dccc9b57a9925915cd52dd4eaba0dfb40a663d12526f5f393b9c3170287896320a085c5e38666cd0f1a0e9592f9223ce5a6c81f1d03a6ba1547016d4bca1335363b2728ba316477a0b06240a31e9b249b516c43fe5b8d0619a71d6349194a2c804ad30cebceecd2b150e8c4d57e642cb536ebcd03675f868b24ae91115c6d6366bb043866dcb8ac454dc17b2d1db11123eb1a8919604d298108682f430aa28a3228addf82858d53bb12b7cfc90232a752175df8ae58440c55eb2d6bd9bd768980adef7decc79efbdb7968add3ea33070b48af3d0f78323a196ac14c4e356dbd4c7c2a62952156d3b2eecb06ad931c5f2c3da3680d798dd41d4f2c3da333a3859d79e0e5ab0f3005b3264d795007a2dd952738719869d59cb3d0aac36e6b564a87b89055618e6098cc1ad3c5ca9e656ee01dcce6b5516d5ccca439e2ed12d70a8e5555e41afbd0eec9221113c506095e7155ab6a703208c50494199d715b8ca1c0330cceb9a02976bb0caba44074498877a5ef514e79c73ceffbc467500019594f40f2e7288b5d018aba8535dbda91b27305920818a782c21837454648aa9a784bae77befbdf7dedbe380aa0963c58822f48442b59471995a406dcae0be84d48062cef7de7befbdf7e6fbcf2b555195c3d80ed801db3bab17b0fb50eef270d7a0b3fcedfeed26e83db7ba97f4efbb1eee99dd5f254db2ffebee3e5b54a61b3c3e50644bf28c0ef54a6be954f4637ceacb0b6c009c77be61f637e5c29854028f1c93201d4972bec98fe1ffca8138e678a0d88713c9b7e488e947e3c403117f392639cae93013753ffc18fe6f9c890b98e7107f3926319af1a16564c38fe1ffb6301961248322c27ef8bf7f69836e39555d327520ea07f8f0fb5f2662093b1c05588d44c53771010227c70397981b6e926fc98fe1ff2e99f8d52c7772fce59804aec4e8c403f163f8bf5f1d64a2ee87f8cb314991c90b98e7f063f8bf4a283610a9231be22fc7246f262c7319783f86ff2b4561e5ef623926d1494a106c8a889c0180f428d2d8dce590627c78f2b4f6f31a65f2695b3647e46d15708378ae01cb5c2a798eac9125b240d026ad2ce7a005b2f20ac7f2c475d4d1f4234bd8ca2c2dc4ccc861ac229183857097b4a04d5813862b759d5768d915f310385c9dc3f56bb8ba01cd4376c8f204e992e13a9d59b92d19ae69332bc32c2b7f568e5939c8ca1660e516581908accc1a599955b2f2da3b613b0f9f39de56f160c9aa491259924a73ef1d0618268b5a4c0b14a23a61df3e719efd3fa5a6c7d80d98175434490ca8a39322c508b964f9ac791ac010bda03042d19143fa8332f71649df709625b5bd9013f329f391e199c1cddbf16299ebb7bcdb7cafeebfa11342320625bd9efed106926c5e2e34521473bc87b9fa6fefbdf7452fddc6016febdb9bd81a8b18d94b5511e0da5c2069cc60a145f7711cbd891dbfa0e4943dc2cec2c67a32d91263528c5b7ff8fd6f0e5c6a8832dec4b8748a704cd114a024aa69e162c19a2e77b21c9368211dd4148e0c59138f8b0e6730a0b9c1c273063613c403b1618645988a8c98a456338359019e6c314154cea49a6fcb5135542deb91822cd229a12d5ba927ae7a6454ab6f3d8a68dc27ef57b5ec930b5c3058365674a7615f0cc740732f2d165754cb8f6ba5088398d728d70e178c0ffe75776e951080e63b6a0230f3a65a0b00d6665886dffab7d67b4b6b4e80a9644a9c5c4c2082917d8a2052b87c70da9028c1d922432205e4c5032cc7b04f2acd440729193524c0720cfba4ae6062a9a6cc085242460ecda9bd413799607c411a9a38c60ccd1799913a1898878b885a3164c64def69f316d1f09c7866764e2f366e9098dfd436e38b5deac686cb31ec937281d94d481c0dfb5c8e4cba18268fbdf7e6db59260781325e206381a6404bd26a9b22eec84298e45882aca2d48c50b827baef775590b9cb6fef5dc5b2c713cc8d182ad6da446e4c976f2d754a653a6408c8819b53e65825c1a08ab45416d01595e1a89b624989c4b8b999b5fc831c8a0ce95a6b97c4b371a1656dd94035819e682136cca8532c715054c729a1e61d7a82e7bb9661301681e150adc062d102ba0c408d0920df982d94479d2b1aafe32fc7244a21502b22ed8f6117c69a322f293a2ebca07a7c630c00b3fa311d63e60411ea4ea7b5f65a6bad53f83dc98df861fdfe3cfc0567989c2da75e00693a169f2b901c68544085eb479b8fafa397ba2d8d22673dafd2273632186cd05482e6de5c4ca981e17c2953cd6dc5623002033a0639d10646a3b508e99752e598ffbc4ac15c6a04f78ef59a77afb5dffc69486f56ee49afccb7de7aff7e3f8ad37bef5d1a5579ca9987bfe00f7977282fcfb5d67bc75d02502f8a583e5ffc44424d2579ae89f69fe0a906069a8d16423f61118883225155b386a57303695d8d26b220472a600d78fa9211e3c6915af38701cde8718a81428aeaab07675d5e74302c544aa8f1dc63ab83c2d75bfd5d9f51cb544a8b399b2c125eb3f79e057352248e28a42c5684bef396ffbf02100a1cb23917432f7488662fbf3366effd5cb54cca6cfaa243e83b9fe3fd80efbc3e73dae6e16f8df763d8f231e284798d6e756d49c39ec4b026e20f6b87fd7436ca46b9ee413fc07c742499c9131a62204d64b8557f6c5ded90c9ec400015ca4a581cb3455916e7a16bcd7a9b69031a3194a294f629d4c8f4c586054c895e088d1062c33c843b89a0cb0201c9fcb05e5e201a171e50b1b8fb01d2d3dfbbbeddb90f8e6c5366d21791f8e395a1e5623932ba344939e7845bb3d8fd15fedbc38b2a0fd6092ba8314a640b08fdb1d592e2e3a86745fa70eefb0e8b891f40564eacd9209376314a6899312606d53425e5481b632f81912e2fbcfb7ae44a70ce77f4bef78661dfe63fada72f41d51536cc76f6eea131ef767a02b11e732bccb89c80746f422bee92dee11e1c3070bc4728edbd37dfbd7995f62ccd433983dac6897194a6a8c5a0dc92fa31e85a183000250d1d1115514d9875de79df7befbdf7deef3c84f79a891e6b4834b31e2d65fba285142c5b294c412e45ed8a0b2e4ec53034a318e45c76622c21ad8b1c53681752dbd973858dd65a6b1a384fc9cf6a4e43caf7de7b2fe247419c7df3cd37d75b6b9f2f1e0b02b6caeb0b2aa85025179dfdbc56c9d5e80010ab34b5a3949b4dab45b6b236a305851a5d960e6a84516db9b0b424b36660a347c60e5792546908324c3e586421b36060b5b0ac9ab93136db7a60ac5585b074385f685ca934b9966a0296c0a8642d1caaca0c8c0e280063190000000018477224c89214ca1514000720ce606488506c585c2288452262481c0a45511c09310c04210c04411c096229d9d9006f708ba316ceb3cd74f3ea5df2674bc7965f7a64cefeaf0aee9f40a631fad306085523783420e88da51e45cd852dea1a4ac94d240b494bbc61c8d204b2b65023d1ad705d8f92353a37593055663e248275378a7ae07ce36a6cc0ce3776632eb84e0e6f8eaae7da267a8bced59abc83152d9da10b598905f3e49d3a2ce20d42d2cab69d5d941cd587f28a02603f3e93215a9afd71e689f28ad82eaa44ea701497aff478b1b71c97b470b962995609734f9753e3e5a0a2dfae483f43a2290a398050063885e41e9d5937d33058e89793ca5f8eed1f839e849ca283d452879b528b62e82659f2c055edcfc8c138a430ee44e988bb570ee28b947eabd8aea6506169eb81a184f113db726b57a9d7714f9ce57849e3eda0cc29ce7ece56041b0d4dce1ed988088c84e3e1aaf5be57e0e49b356db0f4f19bf7a7dde8accd15871a788b612e99246067b0965aed29607994f2da15d9f77bf064d2a1d1b8aa2a946f9089820392bbf01515d398b459b6a369b259ccac3311da44f5d4043d58b7ff3849cd238595769d254cd13b8dcc936dfb3e49c3f9fb88224a665633691ad2df7b5a16438764b147349e3279429463f526bc0079a722ec6e5e50de18a48b3ac971ce297bc1efa5ecaac9fbf29d543acfc7238b448336e1cebc250d6be10c34cb8d494f4bc0abf42aa99d8f033a2641263f4febeec4ab73e48d57fc7cbcca2e547d85b540c49ad8dce2b6aedc2629898e25c559804de40c4e337666121b9b08def65b0f01181eed691b9aebd0ab0f9d86da894b6f09f0ba5679d70eafc6ebd0d3de2e26b52ac04b6a5fd24d83d7c7fbea69a6bcd8f40deb9c369e4d51919eb38fcf9ca8ce28b61e8c470c9e3f0fa0ca7c2ffe31691c781da66429ae26edf6c5b7854854b0ceaa2f5916666420ea14cf462649c9d86fbb4e5509d117fd8abe702dddf7dadc08d849b3687bc0b72c47035cf21a686284afd02cdc62e4b12a0c1e6cdab3f82c22db4f8f791a45dd72d63f23f353731530f437d3b40b12ccac50e12a884d7ba2d05df093e950845e30848e1dfe0512531020b94a52c7a399801af0ed560dd9911e5cdc3d6ae3288ee3d8308479cd7aaadb222812e8548c704d090049f8626401b93b6703644e56d1373cfad0eabcb6de9d65c6f92b79da830437acf3e60cac854a160b7eeebc1c8da52a3d643758b08f478ae62f1cb11c434ccdd763d82d073774bd59fe529a1ada731b05703542238bc0273907f80837a3a26a468de47373b29f3c6ee43c68cca2b3320762c026cb02a8042d5a9dc0264a86a8cf88d613eea434ddeb47077ee733e061b1559f724ba78d4b3be8d584f00d09fc112a44b49e3b970e6cc3508833c9f606b4e424590e4a0fc42cad477c75ce020f7fc03d5388c81f43889fbce9d1d76d815df66911132157698998be238c469ed466ca92b97ee621a44d1f175053da83b8571aea58825f3f3a19259bd1a67a085f47a9f618d05f86b21986d11a2e5e024d169828f66d56be71ce59f516fc4231546a66640c3aa9fe39b986f41d7116314c52a9020b52eca237550080de985d822959d1b5a79f3eadd287fdd6f7fc3d94861f09d8f300b68d3c799ce2318109f3a36392aefe3d0fc56cce9358f03a12eca5071d4dc4b9816e762c70fe0cf438b710b2aeba9626e46a42f7081444ecb6e17ad674977195a8bb0662e599c52aa9d908835b5f5aeab40cf6807959f11ecf65d8799a3374119b7fe3475c5d91d0abad9bf9c1a97f9d34b6e2ca7fb7c10db715e57d4b6b16e0e963a12a971520c54cfa0a587125745fc787d5c6f730bb1bd4bb12c7bea156a6fe7a132ce20f90bdff74248b9f8e8a24865b8bf2a1e23b29e4418279a974be90df6b1de1e4280370e8b79061dd22ee468ecbb1857e2beb17c25ea6cbf1fce3d8296dfa2b0f7f4622bc9d4a1c2fc62c089040538c8bb96994b814f32bbf9d390d91e08599eba7b61a4906c3b299a8f1dc8a991f1897df3594855547626fa45980da89491745ce2a66a9873563968d58fa5add0b9dc80231bbd1f0dc2ffae2ca9618ece000237a624b7d10020375e4d76b24214d175f8c116eb5caa911e91c86a72abf0a1c27f18497a459658fc947fa3433ab84cd33a735dbe42c20920fb181c8c87fc20673eca86320c63ba37844896b277ce55d8140d9e949e50ef2a410605caedef8199d8b353338018a1472608bb373211603399cefe3f441c3ed21f8a51912b1c7da1923a4e45f72ede38af4a1fe73686b4c0ae7bbcbc74ddd1d3900f0758e1b38133cefa89a9d118d33a15fde503fc18ecc6d9b1ab57e1275e99279ff54faf649474e98efe8fd6d87afac6c7c97791e5bdb67cc0305e22f4c4401327b15acb13aeed2b982fac1934b7aaa54ba0c7c91fe0b80a7d521a20babded148f7aa25119aff9ba639cd6b37d4fead5a9675e8e0d470d94b592332c36010f5fa246e837af782932307f2c021e7b94a25f292c0e0ba6ffb617e0052491dc1aa24c6bbdfbf808ac5d7ec121ff989d0232ff32d6aaeff4ef90c94ec259f1922e8f455712487117b4d3587b60bfa7f627c524b8fc3ec875c4905efb48ff82dafe8b890bc83b6b27455a6a2a8b049e0a30d9ce019a6108deb2983dc6a186a766f0c188855546a54e46cc0bf001ec22ebef9d31e762c1689ccc85aae2b4c1b0081de78693be49bac8e00085b432432486d955e7a4018e60b607d447dc6abf67ae87448c080979d6d492b22c8456bef81b69ea25ee09cef9a69d59ed5047350c3d6b54582e483f7a98aa61e56421890e5b475e4f55f51f7fc5a9e33e6da58ffcc8e73504d6aaf897063550d045928064f6f6ba020b04165bac60658fec773301dcd503b9d17297d3fe6303ba02342855c708dc855d196907ef7c1d7187632101ca0fda528c9ab557cb5484f2f9e7b01878b50d1c9262631003ce3f38e6d907a464b810751550b67b07374bb407d3cbc26be9ad6f0cdd152f5da4aa4dbc06cf70461445aeeb391e5889aaecba323e60df23a3c40cfeead1090d302de43a3a9e4ab794d6d48ff717f1a60ed4cb4bbf76d0612d47140b1b1359c570714a2ef8ae2336229f786f07ecce8a6499af91100e82b51c390e95c44074f3390e0f29f49ba1341af43a14d502350bcc687ce15cdfa2750a4cfbaab34a2db4da825799559939272f9ff3874a960581826678440d96d8132771401e3f0853b55fa621a8f70a10c1c047a656c23ff3750e877785f1e98c36696883732b13e4c94abb535d4b012450b50bf404fb800c2dfcc732d332dbe291912edc1fa740ca39aae1ac5c6a30b83f07ff098dd4b065f793a04b7363c49b3e86e582f8a75efd4f740b9972db45c488bedf0750108feff7149225eb0d225f92b467dbb4ab8347a793822ca74365259ee024d02225ed392e80eff189002fefc23192b8b0eb454f2425e087a328fab18fb0c9ab0e257536a8aae83c13d7d9ab03759835d8251b665ff2a966f47018af845c6a03f4aa78d4ce12edbf68b27dac7548d5a92d0478175a74c97ef2094c622f1cc1f8eb01d3cc5f8e73a2138f4b90be248fd7b73c79184899d3e7978ef6bca5c8c87252818586400e724496bbfcd221d0789c8245f335528e85260df438460b93dfcd522f4c0fdf86eaf4993c02967ae8c5410d277ca805da5ab3027edd0dca11ce65275e3e1499026f39ab0ac6ed040d13199b9545dfcc30d5b7eb1a6bb6ec55c5b538a6162ada4e955130883afda30b98d2cd6494b825eabcab0092a23d3e9cc3b93863ca831a6a03b581ff9c712a761d39b47373e549c9cd769bd90d4af88cf2ba4ad885a4dda76cc271fc3fb9ec094a28fbcfbe261eb8bc36a48789c9b823007442357284e9fc5632ad9cdc6d2fbab6266624f83e99858390e0ce90cb537012686ec39d3a3462b7922beb51fabaf4e80ccf9aa81d4006fcf1a2c09f19863ce362bee093ea96539b31c6e4e7352d107647b91082bb0dfe62db203e83a41f26e5f69a2ab63b0e51c26229f864b97b767b91632698d71d25acca142a008cbb4a6354f6f5bc777ccc3a171566b858e8bec83878045ecc7aff5cc89e74403ac6a27a7b43558ec495359bdd6936e1c1a3fddc943f42d021e2793fc64cb1b9c90c026846b4f18df55a6e1b105eb8c403bd1244a29ef1fb699b3a482e133f5f464c3b0e451058ff61506f96bf9ce74219b2337b89e878ebc1bc13d0462b0afe3c5da5a5785685a444e1983ae3377f89da3176a32c869ffca7458ffe41921a761c5838d655209cc4fdc47c46cc748afc9669764c326ef4345c07a6d1c14d24e38b8abfc6291a4c26f210eb763335e08b6bbbadd432cedfd0a3cbbae8925f75ece3e96b41f1a316ab498a41ee7363bf912a3e1b652468c91a3f50a8b9e94695824d7002f78919c6c9dd79e4b4b198803d0020f297245632ed8a17f2fcd1a492b3c7788021bd1f86c5a193ae8c3d8c1b34698b31bc74f962216f871ca7b2c3802d6d75eea7cb366450a368cfbcbe8c9c8d2fcadddc9b58c0c77a60e8394262ec40407d6c563d7870eb105df4ac616eb9a14bf9e0b80e7720a20a0e2adc63a28450c9780593642d79e8b82215c61e12a6ac72a482a97ba687850c85da7b99c278e0978f2f2493b4952b3729084759141a3ebb7ddb50f31bdbe8cea51513b9bbf492bdfab99cc2c293e06a4dd83dee324018ca9ec374af583d60d92d830baff9b1c681cdde1ebc829403b50a289ecd72d491a770a7fbc0762d6a633750d20639a228b1f33c349c30e644b79c75e23753510728926f4457814990ecc0f17ba656b5aa8161e84bec5a36841d0ad4886f44fa8b5ff415afd1f886463802d4dadb4d5716d5f2a2b41ff75433987dc622df0c6254bd9815c7dbce79181915c2ce3fc5cd8a0fbfef417facd4ad5d5fa6817402038912b537a6834c71ce694db28fa5a9b45ff37b4e849701640fa5dbbb8d235d96ee174d5882b9752e316223ae6668946ed1591943c4fb4125f497aa79767c590445968d812858f901fd17ae9ff14a587c845df66bfd87dd45e75299702abe622df71bcec35448972600f5644e18c411180898124eac382147d5f6dd8c18b6668fe2d441f0f25345a5c85deb1cf51e8d243859e87a242dbc235ccde84e1c4643f79e1bd8fbe6c6ca4c24be028644a5a125dc2ee4d5b8842f27013bd003176a060d9ba68845b81c5109bc5016caa69e903e0de2615f16ea248735f3b732b6212799fea1d51e8528ef2db8c11a31b17e291ad21725c7df4ea9e91bf6de5d48091dfb67f8a5a300557f08ea43ffee20b2930ea634c3433678679fa8755f9000269f76fbe4ee7219a53142efae588c122cfcb5766f3831f0fdf2afaa37d3db0a030c3d46571e6bcad221e8e6417696408fb17074220914defa1eff2560ddd939494d0015b7278576e33d56365f4fbd2ef741fd254d30b7da46880c0303a222b4ca541d5271a9b559de8678424ca89c4bd2a9b41067a7e1f8eb147255c91e8edff4d7ac98be0877fc36725a2eb25cae843fdc4447f8e91e89e9912811c19666888176868f3b85fea4c3b24b40d0309ede82a232769f1564649f7837eb2fbf613a59f1a89cdf6748b35629b8e3ca923cc17c84c67dec237956205dd79c92fcb28ba44920de9fd152abebeafd0050790ea7dc1b08afdea022a67718c78df77efba6c2f20ac6a1028633e26ac32fddb34457913ebd4cd3d9e8965531ae5c84037dddbef515666bbff9dd9f074ccae5ce43e4658d16b85a84f496ce83695b50ae3a78d4237c4b614ef9b5415b866c5416356d9129a086c702998406760522cabae48d755868b61c27e8ca2c654c0e9117ec9926345193766c1694d46a183cdb6c2acb277fc2224dd337524cc71a0e110ae416f06c7cdd920d3a0fe39c74ec74f56958b106427393eacc974de6ce4b2182e84d032d3e31c807898e23b961625a3d3511f3cde13b1ec84ace3338dbb9e4e7ceb31f0aa168b6df0b8b2fc304986f676b24c626e16e4929107b8881e02c8d9891db47820f3b0e75b6b4423bb905742043d2198cd204f65a1c6cd4814c6b619cc250feab8495e981277860dc9b8ce70cfdc7127d0dc2d9b4be3684a5eae042243286924f93c2fd120e55b9d15fc17cae57a46074b61317a6bad0603aff07c702c0f64d2be9757b63da7a383c269d9c8fae0d592e53c0fc1d1e8ef4aad4a4c136481eb8850ae7144426056f28a6643c05ac0c26a98fcaa943063f4273e0c6d14780522bd95e5014bc5eaadd2007afd787d6040cbc9fd080d1cab424edf59870dac1ba4af8a5c81ab8e1d66cdd4ec479ea014421d0582cb020fcf1b1b1863e5e0d0ed0d3090743b85e85a26f813be11fb402342f0319083060fa53df25c6b8ef8811d85fbb90f774b034b8c1d1c659f1982543ef1e6125c3e419e4c0882a54768cb9f254a6bbf592a552782f0e2987a174443efe01138f4f26783c6ba5b864bd9d921bc54444992e8833147fbf3358ccd7048c4696f6ac272111adf8748818489f4ac087a3321088745cdd6c56e4bcc11ce641486c456409c50af98702e4ece54207bd46fe66c784239545edfab6738608bcedc5becc9e630afd4c760cb3c715c967ae6865f741c4522b2fab433b54805e66080f7458bf14991984d2b94548482ca5041730040bad8547c2dd177424c112aaf40b99a96de7a8194bb169a6eaa6b61f2efba5f0d7541f14a5d2fb69f3baefd95b56f2c36a60b12d2fe377972d97b561a32c285e04d8e3a2e197a6ab1cce8e246b745aef4df501e1a7af55b22d84bc898bc70e4251ce819464bc9431c960282cc76429f38d77a7cde37b52ccc77df661911d84aa0dd0fc496b3ed9e69d69637b5b27d336c459bc9b31ff0af963d13392df61ed172a9d08500adb3ae565e15989865bdffcb01775b3543f7b654f57c5b59c3cfd6ef655e2b3be554ebdad9d24aacefa0751d10ce0a3ab82eeb65dd17328b7dea2ebc6fcbf5a50b5184e8b5fe0850f03da90c80218222fe5fae3ea3e424bc07a83670b27db39302a1049d1095118d5bd6d32fbd3c8f14f879a38e7a2bf45fa4ced8d858e4b01a0600406e357527d7f3b09c32be03dc141a74a66e40786db334b9f51611bde010268cffbd35a418caf0436563c5de3b53b2ac64b522baa274c2d7bf1e4a4c9a5d0e874c9b05c8412651ccba85e8b3f9c36c14c0168a691fda84893fdc207d440b885f885600ea110d470024e6836e39464a75db4707ce7526dd0318268d8be53c1855528cf4c10750a4e24efb6699d1835d5538faa5ec656829d8fc8a369fd01fa49699062e18e132dffae312c7f684a0b755dc8bb77dcef860675560d73731163c7c0b3a09148141161f545bb6f0d918aa887eff47c5a118aea2d26ba03706b2e5c0e4f72659ae1ca88f411278b277e07d2dd381cf2358a6f4c9e4afb8fb81d32ef4c971ea9544a4ed2136709abc11f5acb5490063bc3e8c9ed47f2153224af510951195b27db3e1d1162f9fdb6c8237ee120503b4c718223b87d56227da17b2304db86748e403d26ffa64a44b39eba6da9a1eff377d24245c93aa56caa0901b56d0d20a8e0e903bb618536052c76652bf7d3d4f6688d991d20d0cf41fabca23c47fba9a2fc7288919038c674a3e4a9e5a516427ac94fa4fcf4ff63750b1a0ec177454f67b36334f297281b8f400e83e8da072cb584f8d2ad548a355fe49a618806ef310e80541d44e5b2a8d57ee64a273054548abc1b5a79052795d79e62ec6e2b9f2d2248ca538f196150806aba38821b796dfc2f9bc77b6720acb7c90acb7e63a5b00869ad936441c12792b160e09d410bd735b33d60f8e1538aeb141d2b3d7b44ebce3ea00694371043711aee7a23950316a27d1e516b610c335d757f7dc8862eead19410fac7d43011905d16629e45a0ed1951371280c5708493109cd3b3957f729f6d500c975e9d8e13c4c8cad6199849c775c0b00c4e840041ee14a62f450a5a88d5c5443c84236d7bc5e1d7221880bb99eb81f2870542b13ca1572e9e815af47fb9d8843395e25520fac8d145f05811af41444db15d76b09236e7211be635e93133dec7148e293f7c85608079f609f926a49f14b605bbb1f5a3420e3eb635a243606bbbaa7796e449138b0392e064a8cea0029a28fcfe37fb68d2a6f070bacc8c421211a2658dd1916064df3f5456147ff89178321b200a52381700cb032d2c88da6f4f70ef2bacb55867daaa79955508ea671c096c630ffd06f43fceb2a902291ca883a14ec704b09c0b00c9d008c79fdcbede938f1d3b7f01005cbddef6133527074e724594cd2eaf7eab2a1c0b280c36d2b1c7234afd442c026a91199cd3b0f1c288f580c825a5f30715f885834689870e23b928e8a728e6187adba36c07c421e9c8c1f41106b0b1f22416520ec049bff4089132dec4ffa217cbca830d31922d39ae8146850d2b166e323e9d956550e9416670fdeb54953580527535560dfbcefcac9865fe1a16a1f37b3bac60adf1ebe602c1cbe9c2cc23e525d2fd4b4dc3901cae28e94f10a40146baed80f61bd4ef45a02dcf76b96cb846cb5a8e94d63bef21970b1f5f1b89c51dbbceb56561fd4218d94c9c676efee015e13bf078f5c4f65317a22bcbd063316a1865823927e9e7c120a92c9a68865c362e7eb5c6f494db0f49eb10d7315cb6ed31576a2c672896713a0bd9205e8463e44d358685dd154418268b8f5587a322feb6469990d83261c406da6194292c4a169a73c484bfdc6d259115acab1c87b0fca5d0acc2bfdf91c5a110fed79802ddc836dc9a0c752016de43934aead5fd105787dc9120b10e5a47dfe65780628eaec66f90e0762aa832c2b3fa14b1b43575c378f6100aefac3c829833f01ba6371fb981a3b1c60ec646628f67f1f1332543a5ed0751fa92e2859a1299c8638262bbe8744667e8157f65e5fec3f13f5ba5fee9008efa41ca9a6194435c832f4ffc8d48bc9e695e03fe10fa6d76374b19cfdb139ff4065360d4a78ed80268b0c7020d46d77052dfaef38838eb29d2ecfb9683a40a4d32c7090770c9c168088d3ea00df8f49c0bbc3e7af98a79ebcef6cb2e0de4728e2712a43a1ac594becd95cd6c94622a64300a24890baa14fc9302c45a869c0c03fd3aef9264be03217f4efa51ef49e9103efa91893f574771311134be1c57730bd2170e85e0bcad9b68201ceeb2cb10355f323d6cc50b0357303c073d8cdf530c7f3c3c9e00034d591d4bf56753d2fca4ccf9c13b3b35e64d89b80f56c6cbb048e7a24027924179838f29e6dd934294bbf843fde91b567db6a0bfee7f150c4d1efca61d601cf36811953fdc95471bdfd1822c69e7fc396750fc76ca36e8b27e1fad2ca09f1899c9fa694d470610e643a7d30d9b5799a134625e5e6158e72516c3ccb1d43accbaef95aaffc50264cf2c84bf2ab367535935c576a2421dc05a4c5cca58bc9a81625c7f57cb1d98843f49a4d1dba4e45411c97af8ba852abd93c9092f9d3c749d33b0185fc0b31290272e4988c2f4e40aa9280688f08487b0d36a8ea94053f518662e5ca46e6d55edaad6c9eab3a65b99678457e07a69584a0e55659693a88386a3c62993892c74b7769d5909aca47f87c5297c53561bf7ccdc893aacf0b939f3fc582b8667bc2f40afdf2714630ea8671b5f0727e5136fa14aef121ca3dbbd9917becac879dd83d3ca133daec2e35b168ca39532553379d71662a355fc6638cc84f2eefacc5233e0a807f6cfc8df502ea0f63042411abc244df8a91405fb2a81d811a43b06473d2bf70e4c428d2f465abdcca1b96b89cde0f062fe80ca0f351cc756042ba836ef584b402b824f380e0dc8f072ca41e0832fd501383f3b22cc919bcb40b5b43243cb28a8858f417926bdd6626c60a3b8922f029349c007ad386394eebfb729eb7a698aca15cc2071b29491fa005f1ac1cec38b9d35fb1ef6b8a6df8e0448ee034032d363683d4de4eac3d577251456a30ff86ea5b147e80b6d283bb942db4c5aa2677a0c0fb34e3f616800c2956ecbdd6a3abfc33828b21da5b8fa1d59478a9bc27bb477779a4dc507baaa34785c206fb4dada0f1f21027621aaca281ba4ad768357636a656a75c4b2bb4617baa17c5a909f57395890a92ed704ebe2dcc4cc07c5ed492eb084201ec421de4a0a7be49ca79609ea8bcf9726d147a989daf5481bc3e6f9c48522557ec2aded369b328c27dd699a0ba9cd3e85b9a878a9fce61c2b02d9b6c85cc116e0c0908a0413cdfc362814d67c9257a02559dbb8c726dbaecd81b28dd34a4b97d0d8f8e80de59d5527c0a75a663f09417d84e0ca9557c210d8bd31f401b5b316aa6508589135700dd031e2bb381538a33806699a8fb5fd8989ec66d958dacd70cc013bf01e38fd72daeb55a7cb1394c18ee7b80ea78d203660ac161338c2bf9fbc297e028c741a47646f3b7beb3d54c274bfeef611d2c32182627c3f4c6868593b3017f3177989300227d434f97245ccaee11d6f1625cbd57f7e12d9d01ed456ac3d193a8255d751f0d225e9b1c0ec7e67e439f6c9f3e77ce799a5c1389045d14e738b1c70c90b7700bf7cf7c75dd76bbab0f41d6faa2a1c3a6810577f708b28f7ef0b6c63a038dad9f693028d3c20fa95032ccaa1992957a9816bc4135505ba11ca7240bde68688ba3e1b733677f50c87a1a52e1f9337a69faf231159abd90468e23b6e800f0ebc5fc11c8a2b4835d31a858215a4283cee8a205b53bc51242afc9d933da8b2c187e51ad47dc308d097c4015dc7e1d99673586698e791444f85b7998eb048d5b4aa694416b080a7c80fd74c226e69acf2e6b8f561efac3af87d4377a9d85ea118c9919a646283e6771718d245749b3217c08a55f4f005c77da44e0c3a334ceb69223c9f9b0e6756be3a11bca8f477e278c313a13e933d32c4daa05aa418dfb44ca987e1489a3402bad8f63403a684df9009bca0518d1debc60aba68d30e499820183a6c380967218b3a3dde7f48f7f2e73a7ff1da6d010683d318e7157649f2288eb0c28f855348828b28ce4ea07d7734144ff49cea89d4fecb84a3c03fcbacc880c2130c05b5d413b24676f2431013e202533be887f4a513e3376131094ac5e74c900e27de882094420b213756d3e30f250b3e53176a8d212d387fd92d8d1c732252db324c8925056e5ed74762dbb78dfae9d3efae3123af955d787882c4d7a1245254ef013a9dc13a83083f36b75dadd05fc1e750aeee7f0a385a68cf5e89d7401555ee6d7f00fe1ffe65adff6b67a961471bd6468b608fb0adff0105ea3c5ecc4839299c772d3b70501f6dba90f5d3d946e43361b707983696005ad866ce9a2f624bdbf8099c187d2fddd1a0b91cfbc48381fa3dec0e3269dd0376afaf6b87e010b4b490a2c8a4ff8227403111caad5720199e72c6044ba4cd58902f9bc4fd4a5bcbf2e16e95e13dbd16ca24539584f7c82c09aa9abe50f7729cd6934f26c117305ca2e07b143da54c9fdc7a6211ad3f1ac95e42f4904f8acea4602e4e7fba1d507eced5a4abd28b498c09203a922b06132515249b6700abdd40ba28b1d8067dc87608ef9e226d84139dde310ecbd7a5cee8f41fe3cd58dfaae03412ca0439d202ae341714295879e58291003ecbb1242b9fc549fb78095acc5cb721657cb7bf9ce076beae578648e88cf97823842a344db69c266ddecf3bdd9e913a45d125c15294f2eda1f63a6b2543051d49cf6aa966da3b0987ec13680f5f91805cb04228b1d2b49175a37c8b4f7a900c3a04dd473e3fa7a19ae86fae6dc558e0996168ffedc2ee1de70719fa707298702fae49fcdebf1fd422d080a9828f82d3e2bae25ef892288fdbf8cbfd46b8957703143b3e4c12c1d7a80ac8d29a342227fee2c8a7ae3f90b8283c3033387a08194f310ab13384d4d67af72ca420414a07c7e54ba9d61307df53f7b5fd07ff2a0319fb55a73c0900649e90ee66fb9a7014e8b7570661abc40c9cba2d8109e254177989e09f426f66987df86992ccc8da879d71b6bc253dc3ebca5ffe13a31130154e150fa173de54fad47d6295308e693cdfa6ea9b7478d915f976929a216d73011c248b1650fa927bfce433c9681585c520eb01384320a9ae953a81f531b34fbfd916e3f0631f1db75c85a1313b03f25b3cac7ad6c28491414657b11efc222ae0614d791a228bac5f4b8a41a963916b16a5f582f225b4babdf0d7a266cf59605f9c606871b6c207fa173cc1e868263cfeb2d3f8c1d189e489d8c039099ca6ec40cbbe280675e37fdd5efd3208b73636bfaa777debdf1f97e03f643887a5eb56811805ea8ec2064e59dcd860f193b56be3a28e8fb1363b4561ac34f5aaffeac1de5a649c88fcc18d15293f8ac3c50673f60c86a46ce555026b60af65ec710c9836a2c6a2b8ea20f162060285e108859a1364ab5933a093f9ad4ddb36026dff547fc699b2e4ede23690427a6f09fbf7e0eb41a0475613e378ce8117a0c0098dbf640b9b8f8f0470ba9fa30341283a35755af1b93f10fb15b7c9bd255130bd89fff8287668203ff2f88c6e5a18fef60a5298d9b85239a4f1dfb513ace4d3d423442c1e6acb412f4b58fc65362044ab1ba164222b7d477855b30d0705d26cbdb820429d9c83af6cd74eaf0a98b238e4d22ce0a182a3c0477d715903da97c69f34bc911129adbac953c0de3477881cb41fed82f5f3de2e804dc4014d03715378f29c3b476a2ceac7dbea5e676f4badae7b9afad511bb3bd10320fc315be2ec89f36eef6807aab9614b28d13561658c765e8629651d88f7aa5469dcc5a47a7e2842b4767ce848a1825095e4e52bcced12d031db11310c9ce2785039a2a3c0a671f2cd89bd1498ecdbe50bb56aca78697ee00d6d5d0e68a0277794ec0d4f4bff47b9bb539a725c04364f28a1419d410bf2a48dbd3b4519ff43a6551f42b6f64be36811dfb8ecfa7bcca163c0645cd5a5cb2a7a001abbc0e03e2b8e721e02fb803fffc06991ca0625b0bd020c19f4229dd19da3c8a896f87de0f5b82aed82533d772c6b242a9af1c131fd1f3f120e6aee51c8996e0ca0809a392e0c616838cda6a4853f252110fc43b2ee344d180b2a022d61695ee2ba28d1f0fdadd553db860f6f763176f270afa93286452af86f7c4e844e4161ae1a146622636e227539a6a24d5c058dc88fffec332af33822bb6c88911a2f09ba5244a445fd0b8ae2de59e3cf6af3827f15b47862d5aad7fbaca6be03d3076ce7d51f646c619130f015e07e2b23e99232764daa6c7686943de3f6e2a6fe5b3a6c06b7d9e37afa69fe3f1c3c80143f51c18c3426dd5973dd4de9ae57ff9ff215dc1c95871ac24e7cc78c2a0e27600d5eff1545f4a110c3220f4eb62cf299d65cda591dc7ca0dadd958e4af3c2812a616d5a8473a299b52bd9df503ea736ca063cc1b5d1d214ec155657396e04055edad144e9f03e5928065429e7013fc9d5a27b3429c39ed0c6dbd5a41f8a1a078f3cecad9018b61083001d1c196063e3a52d94a718d6544ebf260c36f53e63d873b20b015d48eca5ab217e711fd230ce4f08740df033cd6bb28c10e4fcb15654d53e630e30deb0fcc4a4e302d5a47763ee013b230ec28009edee849b8e8d18f87c3981ff752380f1e8fdcd6b0da28437cbb789395a47c259f12fd3d0144930508215e5e9852f51cd230ce56a5694166f6a584ad179c9d496d86eb96f926a9fbb1384051ff482e6e3fa51b8d77aa5c857cc0c8e221c464d4871d87972e60c48821696401828f25e3af32b376ba6a4f3dacfc3cd53e5ec18074c93f095b78adca212fb8c321f10b5f4510f5e44e81d092b5801537028305db8dd56f78ca2fd25381dfa64dd541bd950300b158712d254340c9514d2cf3cc6a5752d11c18b09e76fb48ccf0140d26adabb58422b9bcc877d883d7a837d3d613955fcd50d355389b6e0e561ed19381641610eaf19b1ed4a2281d08872cd1d31883c556cb31cda8d040c946d91f84de97f799a35e728af108281eabbe547df6849563ffc337e6831cea674271553d259564ab4d994064bac6e1c0d0e85c004d54eb02000a642cb30b3749ede871eb088b05690e736a398ba6292b15d3ef02b4633ee1220f55427121041e5ba32e715c752970250bf6f852563f8b4be21e9cd6d303601c7d296d0e65305b43b9e78670cf903874f27c728a63c5e4980efdd03d2751bcca4478a013c293cbea61af2a59d6586b8253606f0ae41a12fed9cf58c684c8bd62c532fa25ff9d40e43db7fa870968ce0275f1105dbcdcd8a9cc2e818d311bf42e9be40e4ac95806e1f313eac14dfdc8f04614c863ed751b90f206b9c2e58194cd2220cb4b0f693caa40507adafeb154cacc42cab61d3beda4c24c2a1162b12fcf30799d084228f557437e301690a7f8b2fefcbeebe8d0c383e875a53362c1eb8a5dd1c93a759f27682015f3a18eeb28785bf88238542b8f8516a087345428235ffeb5c825061dce781a0e79c34163c5079e48ce4b82ed10911bd2648ec899e1bed78ded3288119892ae2182dd488ebac25d8c715d154f9a7032d381fa633b09bc6385a8a8cc1ae72f6cc1bd9743250cd170a4f5d45c20d204762f9843c1497952095c65d066f0d6a384fe99f30bac6801f27fec0f47db318834cd920830ee8950516269924759035dcbc4feab53b8992927b7969e68b6e8048ae86bab6f19a1a7f62cdd4dc6afaffd8bb34a929f4b81a22b4bbea8c19731d4bd14eee19ed224b93921a9ad4dfccea6abdf1ccae7aeab5f5c373a3b347181012ebdcd31306664c7f98b9085ac32cb50c6980fb2326ce6c4c4419e2420f5efb544057640d00914b671f7c371a49af2644bd2658f73ad553a0dda1007947d560c2a7b8b18e8a8bd82a23d823f987b67b3de4c2fc357336fd61bead472170480e622fd3f64ebcdce93e5fb62ada61114b29dfff0b28662d4f280e6ea051dafc0c5c00bc6a6da15d9bd012d52de2499c189716eafca92265f83c0681af81300c7856a44574c46e49f1545e95fdf0d498bd6b4ac95f4f72f7258a1b98b18d356efc261331f4b55ce33149306ed172590f9c62fb67ffe9ca1e09491bdfa46255045baf29c5a3f92ea5abeb749b9fed138d8193c98bc1510781b325a13275c1a2459bd370f2d41458ad416f23247a0b6a5739809a8c3e3d5a3617569572da8511252b04e4b4785c4d93bbba0a57eb55c215bb14d1be3647aae996beb267a868b00faa6eac5b5c46e275f783f1ad17bc0907843920f604692b3385675c2fbf7b150b75128840187103c493f9214bcde1321463f8779cf34398421000ce1cca755d43396d128e1200f1c99d59246970b6048aab3893d8fc2d9618542df5e5b1692d796b6ae49f2fb9a9748542ddf4d16b930c53d2ac306c819b4c6c702b5f2d7f497d129321eed8c1826fbcb8c305eed3c0378c9842cd6698426ffad7c3a9ded90c58a59bb064177cdc80dfbce9001badc827b10263026402ed02602eefde4df82235e021ec011198a08518cc805349f0dcef9a202244101ccfabf4066ed6f330c48cc67daf9bdbaf7ddf9bdf8c0591bbe8b28040e79a7e2ce580aa3a3e6c7adcc0f0b85989fbb1e30d2eedcd86db8c36176c546b4db5a3188274f0e43891662383c386050dc8d90e331d6537c8be6ec0a056d980aa913426440329861366c20866a2e52b88178f196a32cabac2b8626c59c5909a2ec168f122e92285164d564d11ab06e5ca87159bf4ac8a46948b0a6bea09653e8b9c3f52395126a0685e9e68549a724e6e4d38983598642c69294d253921191d298d769637452562884a8c683137042794830535c84bf90228faf3e4839464b1a20779ec31cef01849ecd0e9c4e5c4a0822c05188a298ef4187542e966c86685091435332568668825ea8c3d66d664cc62c460b65eae5c9c452622518b0f09152c3523645c56645254aa6c4a1b8b82563716a48b2e0b0874aee9c7520ea8aae3c3a6470c0c8f9895b81f3bdee0d2de6cb8cd6873c146b5d6543b8a2148074f8e13693032386058d0809ced70cd62282b2313bbc145cdb23155a339864443486c45580ab09aaf9717af97951973327674c5c055b62516836b9a0563ea45d305929650d60aac145735562e2f529795aab9e80eaa18a6caa062cf22d75f9d5912988a401302480f1072c08a06a460408d88e2cb028a2b0a984bc08e103120a0ec00622a7005b30c30558026019052101ac00a145298d400892f0220ae04600e003b7e319c5056226602979c0562ea43b3042412210f2b3aa420a1266e7919a16585c3dc861dbe18349465101be182b344a6429a3da45788b7e2ef54b8365fc69368e92450b8dc06c641600a703a06ca31490c2db005068129f0cd62d6dbf6fbd604b89587ff6ddbb66ddb07847840889685c6dcb6f22bfbe2560ed1b621768b8c31a11d4a195b2b499eb64dcbc14b5d0d94c5450c586b1bc786b179a21a42f8f69ea7e9ed8d80fa8242c69b09a789a914bc370d24c5f0155747822d878788b77f7f63d8d78220461b270dac1e25e88c11b71394c8727b4bae003bb1797a7a9b27731828ff78881fb3d9cb6f90e7c6fba02c22c83322c3ef6e90bbbff7b22e6266736cfea661fffe7f3e4477f71709dfffacb7ef0d7706efbdf79efecdbbf73b301134e2a7040db4af1f2c0d6d4727aebc6430c5ce9efadec8260e411834355274c1d0f4ac5c3d2dcd9e4d06316c452dc170dbea7af2f5edbdf7de4b95da7450440869d0c52edaebdfdf7bbf77903dbeb58f0fbfb7f7defb2d421a0c11f4defb92a10d4474a054fef9ddfb730786432b03e5dfd6f1b1018e615f081d1d3d19cb7befbdbc79f3fad4b1310f83ec4cd987b127204a3232d68cdab5a29823133b8a3b441bec4e315621c19d47ab88587cbe18e76bcea67bef29fce23eaf511c3fe6e12f58b463b77444ef9eaf6bc8ee3956e7bedf7bac33028677eebc3ed76c62107bda7e3bfbee62cc1131ff7b27fda26235622c29587965e5cfca319b06809995d7ff64d420e457fc775ea97446cc43986bf9fa6ed5d83520453312692c985ab51394e2e894295ecc20ed14b74cbc60c990f8ed1436a9ce0e197528aa533168d8ba2a71c336c36594bb5fb995eb23e4fa24f956f810bf5103e76bf34ef2d0901c5b9134f2acde52c1e366e645c6cb8a351d73effd5fb5902a7558d5400abb4eb2f03f5b46492d6e9e6488902e7200600aadcdec4cc556553cafd2244732436147b0d4afdfd6042d771364b66dbb09ecdc76bf4d20422b0f8930fb92e1e6810dd8033bf5c076b5402eb3731b570120b440ce8ad480f93bf30008014ce8ef3d9e4ac193f6de7befbef7de7bef2d42baf7de5b84f44367846db5ffc3ef7fe79c5c4b6d405a2f3e5e4056883baea25a5b44bc4fbd1c93a89042612654156adaa08ace8140e133f622ce4545e54577001c0c13b12a84f3a442fa9180132f335539542fd6b4b8964af2c78d39479683aa47ee072e3138d1e041daa081b57f0cffb7771fb0bdc8d924a150bc48a96632b4d5252337b12a1b3f7884ac74fc6559eeeca659c4120389cec7a621a30509ae331e3154b53f86ffeb831d297c6254eabaac62e8c181b8678b8d8ab01a9430aa968dbf1c93c4d9cce0b4cdd02051630a2c43cbe3032b3464509e86c074fca45352b33b0f7fc10c41b8ef9df530afcf9caeb937afcf1ce93cdc70ab2673dfd956b45e9fce8abf2ec3f804e3b79f9c4f4bdd4749847beff7eebbeffd13f559fc5e80eec3e34200d8e7f8538063d867e413c3db7d00b0f789e1e51bf641e9f18d020c1762b23fc7c103c2beb8af35dcceb700d6bfffcfd2f7a1e2de2763f40200438f5ccf54e50ac74629a374e3985ae860caec4899bea022fb7700c8365745122b7cbcd0a8591af177ac6d3bce8486de7e60fd248b6a7eb29c4ce1e327047d889d9c79fbe625eb2f9175446a787c07e1ed1f9bf79e1cc13321889b4ff6fe0c84f760ef071906cabf17bc126039867d2ba22e494f9bf741d906cc3bf8e2140d7e93207baf7b64ec76ec4df4df7bf7db7bdf93e57d10ee71f2bafb390463d8e7febd7b8f91c806a0fcebfda785db938cf1ad3dc7b7f3af610deeffbdf7de7bef51f04263549d36d51ced194e0ec77c5ace0dad98be085bc1cce08b7dc2bc07028ff4b31160df579eaf5edf5c64fdfbff8c79df77325ecfa90a18418a90c90d1a268c8d2ccce7c828acc6d737e73077b1bdf7deef18de7ba8220c91118eb01f2aef1364837e19418d34450eb11523ae3cd38ea717af7f0e7030867deedf221b641828ff7af7de7b1fc4e202c74fd60ed19086b612bc74942cae8ed0a83726d0a302c6069014351d2e3ac8a13a51a36d692aa944ce164d0c2c62a84ab6ba98267653f7c5336783f803172e5a70b411511569e2034a38a590bef5c4a96c75f570c1447513c30e07ddc282688646b3f9a36b296a4605848282475a9d111907122b008bc1893a5990e05ad76a705479d53d4da9b18cfdb8b1022e2a069d3202b43de16230724271c16184d657d80c124fa74bcfd6004e56965610a38f900eb48495af30258c97184ed4b0f05a15c1edb25cc718773c4ce505f6f1f271fcef7d5d83b5fdcd6f90e8ba448c77b56cf805090d6bad3558151128ff6430169d6bcfcafbfba7ddd65b6fb0e52bc3603d2edcf986dd7928c32b785f73222ed6f6bd6fcee67e5fbce56e288d9091aa4861f3b1e4f6b50adb3309aac318170794b4744667a2e8884c6b75749dd216a6a3d8034886d407fe3a2bf6dee1af183bcf7beffdefffb7efbdf7dea32f8f61df6682bbfff92ebfbdf7aebf94afdebe38a9779b90def6fdd5d47befbdf7ceb58e2c19255ecc95f9108a326a949024154a0d96b5ac6ab0ff7065af8321a67e964678407b7e85b4fb7bce59060439b61053c12633236ed6bab56a818243a66749e519a3e51732afd2275a376aeb50d8218302b9b1d8f154376ba3ad151bb41a4b492376ef015659b48c0753893343aa996af0821441d5d0b1c643c748cfc09ab5d65a8b90fe194e26d69e0109a7a0185e4e49a9291a972e085310e28c969918ba8a8fa8e4cab869402000070d831a040000301885811c8619546d011400081db240587c3844403c48181288848171200c0884416130200c0400028120481c6acb611486ae0000141480067e851ecd32983ea8b4f9a1f2bf2048521bebc67b8ef7069cc41082fcacb580dce4708302a25ee5865a066c01c6a15f023284247f78be58aa06530f943e03227a802461baea176cd93985488b01e5565baf8ad8d1185240a149888424f1c8bfe01010068748134936db7d31cdf1f6a4c9a174cc89d690f3928e2169e91e4e28686a44e657e1534892a33e33e2f74da0b79a480e545f53fdec73a2e6fc38681e36ec04ae6b0a44e563e05e00288a1b8fd107dffdf104206edba969f074d1760462c5fdb70e07b87a7aaf279083060b4b9523e77b2945638ec81390e33abb142ae862fe7a027a5d291346c4b452c36701df6ec847e61ea2369b1c8156116f3d10cc601a6d341a6721022b0a9bb9676d691b016d73342b21dd3e1a81489c4d3d0c18b573a5afd5c89b8df760c8f60c3ac7243b36ac619cc2dd74d7747e99edb8088d89c1e40bbe2ee6abd8e60d4bfb05ddaefdb94a2222c0d78b89d53052e982908a278e004db76d4902d0545862d25ebd23a600fc3fdca04f1427a8ba7e345bc4c158199485d3d16967a185571132de4e63cfa1e02e8c741bb62855ce7666583d4a4930e5a7d3b219cf6ff1ec53810324722ce54999f2a0ae653e6b80d0e03bbe3c374add08b0b90a8ddce96fb8018dcaa981ab9d74c7763be5e65c49b268e7dc32cc8259aaf581b14eaf64bfe9b74e4b6c20b4d30e18b112dea481aa791d4f75fc2de2739e90db3326874ca5ab7c04b0df72c56799b645732a60cc4b7b15ef0e81c345727ba54be77ec3087f26d5b535cd84edd41ed21d15a097209797f81d8304e5191dd57bd9045cf99a916a699464fc66a1bf1b3f6a8b173a9952613d99ce8330f1d6e66a9edb888efa75554cf353d474064ad78e21ae2686f7f99710a92ba5e779b93e470b7548ab953c18cb55be8f1710f05eedfeb895b54a3d4004b714f07d259ea77cd5c6a739d5cf4ca6ec4e558086602343661f7e1a367bd8104e0789b11122ff56aab49958a2dd754aee9ca0352a2bcaf4a6ef6fa2e8f0c8e80c17dd2298e81166182d8885d1ec65d8c5f7d8855c8d1ef9422b6f33466db41a84dd3060654001763aeb3ecd9b69ea11c2377d2c064416443fa3ca76690a2a4e9dade571505e1581181eada53ed379de91cd0b8adc8ca3bb56a9d87aecb88550e233f2db031cd8e65fcbfa6ca46d73d7c6b0f26f39514de808b980361bd07b8ededca69bf98ef76c6cb4e167a88bf758bd05293667e27263b20d40ca3ddb1e36f9fc6d0fc3afd76565d432d9b135bfd7daa59d8d1ff7e29b7130c1d062cb9cf92a1d57218f39ffb26407f81a91926d60911a5aa35fefaf913a826fa763efd008682e0b4a1f5bd6e5ad7afc37dafa4f2c28d01941d6d2b175c5c75562e0b5de82499f4b656a20095185ee2edccd09f5abcfaf7585fbf5014c05368ab58da2162763875aea90cc13580b7fed1f317062738d6407d5c29ff9d0ced2431f187010747041f4a038fe0926e3826b509d465deb88e89656337e08b23403c9eb992132168c731d5797742f8e924d47c14c3474be35cbb1f25777f5ab8472d151147d06c6716d9c98909b3d64c5d176981e422feabfaed14dfa6b343a3d6c802e6191aa0014d2a970f4df6d0547a308c10ccdd5a453b2a151c3c32b2b150f8496dd5e84178c5efcfe34c08f8d185b73e1ff2c578504a77254b4deb0c94ef008d51489ecd249b231527f0cea13adfbe66ee4e79636d2d6235cecd1b1948f9c11e328af5adaaecbd74d49f92fc10cb03d5ac9ca9e6a27797512f51c7e79aee208ee49b363a43988fe1c81c85751016ba8baae830381c7419bb4e5fca67c58b453587c58bb9bbdad8283a980c34c7c36784b887379586b1a7fd09e306c161ec43f4c5f11c9f6a486e7629ec4b51c0c960e2a11d1519466050dc37067a10745886e02ba8acc0d15e9f7bf7b3d6b5f2127ddafbfbf069ba8d3816253baf1400172102646d10b095f694e258b20d37b9e80fa1ee74e0558ee375dec3fd8bc83d2852e4210fecd22f58bcb7259ebb868740995c6a4e8beb22a193df18e77a26e0906078057cc74a508d2cd2648253c2baa9ad2117d36a1a60f29623d077f8347616791cca952a40ac9e0e77dd34a398c5aa1737431c61b1a2e8e680a8d2b9bbc843abc4a40791c745f3d5c793202e743b1f961887b496a12fc9f07e00bf21ed77d90f4344c1abf30100779a5c2dc257da1d003b613f6ba523953660aa3f57ee0253b6624e12f17fe2ea7344b8157475e44410aa362c5618905e7a3279ec349d9c96548c92793f2949d833292a01488a0b0d432be53157a0342496bfc2ce2570850aaab16b493e6fbb73199459b35907efcada8f8438a8c6186a14ddb4a76b64778f06d5800c96d3541dba38c23cd148f1f35f96daa6f0995aef52637ca1c812c8ca275823279636788a9bf706457807637655cdd037cb47136a1e9c7b0c917dc184cdfd071f7b1fc963157b8758c40781182bbc6aa24116c234b94bf1084491c7f764942e897f584ef0a6704d3fb752bd0cc30cd0fd1a2635814a238f764c0842c8a60a645930680bad14864afbcb5a48da975078e654a739c9433770b3e9e317169c6909ff986c85c8c3a5489ba28f232132b9cca6bfc7f12f38922a359f302adb9c3de3a7a36aa81f75a55870a7424a7ca3e774931a89dc523745f08b3433e3f43d8eba553e023e70dd5fa857ec64441d19ef254cd2705ccafe570e5b4660566ab2e359a4c16e67e5b8fd35516669acc21e7e7ae88b007230d10548cd2cf05a0dcf1727c02bace665ade8a12098054de5491d95e9753fb3ea2225dee8b4c71031639e5e65669b6cdb09d19250a3149994daa8325896eb801c7bb9a29de5b5a85224580ee88460bef9d37970eb00cf902f248ad51433d5cfcd6c23111368f4779b8c1a08dd96a27397f898981dffd0950cd8801e9e768c2e9f52b1db737ce5d1fbb2414ccd51271caea5065efa9f9a15c28b22f4812fbf07541277b506e8b6c0344aba853540acb029a2c5b58735bcae2b409c6d928ff3b225aefaf2b76fdabeade0ad49f80089b2063c96cc9c34d0754f1ada551c4d1df4cdca208ff5a7f8f2b9c62c8a7871cae2bb953b7f03067ca4e114dfb874e9206d6f26ba92c04106a665211a03c84b755e0064034903c188b6943c22bd155becb1fedb189344344b5021ce8b03fe84d462777970f26d2d3adde229968402d7926a6d8bb0c7297eddf7815f2dc9ff86f45ec86711af504944df4c35c4a365a1f88c34242c04b4c3c89f65cf85d9026d5a5ec8576b8751decc38a9e08d8d06bf25cee6e1d662a169b00d7a4e93cceca4999b5f0952a7b0a02f9afcd6cc952f4113ddabb24b50e6dc2e874916eab402b3fe6910deb2028441b70c41ab584398058701f178a895292018cf935ed30b41922855b22cd75e4dfdd5e4c6f28413461326a1d777da18f55b99ad7fff0fdb151442731de23c1fb7b9d5294080f7eb7ceb6e94c1cc6cc5fa892e52ef8b1a7b5c22c18501a92fe2eb459d29721c7c07271002a0891ff1629e2bbed5696d37ce9477c8dc9a6a41ff656adbbdd16a6ead409efad8fcad83a08752e088ae4d4e97b61bbda06e70f13b23a0ccd29721738a32108ff12339a45b3a37761e1c4aa74c8e3ac9295dd8a4bb0abe0a40b42313b9d39611d3be4d6bc5b4cc2a34144cd52f16d9d4466fbec17e7a4a08eb9bade556957d2898539e29342dc7cef57b0c2f6ec2b725ab9e74f63462b726c1785fc7466878a94784315d9f32e4fadd70fb9b3357a0385709718e1290702f6d2a92ae071c16c221ba9d3a0c98607a521ff78c6200aed6d1390d0b32786d09b35729d291a5c51b1ca33a110bd6ae2df643dbda9f8bdb9d69b4932c2b975cc9553b0ea653a334b98e6a24fe2276285107e45adbfb86059a19652522662b5030e2226f6528e6ca0ebbe82001c6c02fb295772ea5e2f7a4298994e813b2a4e41162bacd8b9df0313f34d7b6b41d6148599a5192da24b3a34b02f260fc721967be13e86e8a400e776f3beb6637ac9342f45ac6205f5c0154343725d80253011ad7e7869d6fe75a22b53195cd39b4d90e2346ac2a452aca0c60f1a877b7f7481736d0d760a7dd973a88e6b90f3eb84220b2c3465c14297694c40145cc245a76a80d565dec8fb1184880bdbdb57657da355ab8545ff78e5cc449cd99cfaf7696e4545b02576e0ce8dbed33457c1df398158175ee161506e1d10ef104e3dc1f1f4b73ea7988f572f5eb72b8c280c8b0b38be863980e9125318b502dc8fd1059c223185b4716d5282e14d5e9c81946ca8eba58ab2455179b843b3da6710e45a7505a84544a212b3a6cd88e0481c9f21f7172be6b95f743f8f058204cae9341456747fa5e5213a144c75d840565e21e4438ca9b2a0e57b8455b0446be1475a3cd61d8b3ea59991a03890dd1a69b17462d4f0a235cf1cc81a2fc6a28765e8836c66530a48cd47adc3cb17b52a7b5c41b927dbd379092842b246892628702c7de4bc6cf4555f21abb12f3748bd00a4c053aa388fa0c7888c8187ad4091f2c6d5a244fc39e061106460f4c54c4c24ae67cc27fdf395f6472b09dbd06895379d28843013c8d062878476b24c990610414529731ccc66056868c6bffb9c32dbb268dfdb9280faad892ab9df3c207a00ac0f51d3ae4e5c8ed39898d21a1ce850ae737e5d3782280ecf5ce0c70b4259c7baaea2cae7aa005fd372820252727b44f05989c0874a50e3cc3841bdca5b09e3cfcd3ab2cbcb99e6c414b836475fe5b2bcbfa2b0cd6bf5286fefc62e8a44f5ab873802ab3d4a149f585cac4739767b14c8c29a43e411cf1787ed271fbc5273e80cf963967253387c9a581978d31b6ef4e9193a44f4deb950988dcb67807260dafccd94ea3793419f969b7919d84810f0c66648004d46076078a4f2623840289a15b418723520d097a2529b0a6af84ce6bc636f62a3d0f916bcb8f1dbcf15e87b35a6597ad2aea0c4573c20e0257a9bb5a1d6bc27dcc2d0ab95657da3dcaa30dcc6ba5d361dbca47a35dab2dc2beaa7974308d963c8438774ebbf9892d8eba3c34e62ea40392a7b3d54f0b77d4552ce9144e4db3e237a7bc8d9c2d24c1d4a0bd943dfb5940171ddfae7e8e250c2ab439bb7fd0e3aedc88d2d16ed9c73072a6b3924db5b26a0a8790dcb632fe96014eee5231b8ea157b61bf914899837349241489037f2e1fdd4318428c6c97005743929d425b732e479ed7049a81c58607f6a7d693aaebe34a148a4f5a601c9f3eb09851d5adcd7b31e7d33c3fdd1ae14a6bfbf92f3390a90e51117bb9832c8bebcdfe0ae70cfb791763aa33546185ff856038e54b4e0c79835b067e2638f5e909c1bdad522e2faf549d208ad35dd94c861fbad470f3322b223c51f41de0f5de2edbda0e773434b3520a0ee1b2347fb3245b56c942b8bb6ac28ba590db258190dc538f95deedd4b27d18eee113d8aa89122e9072013b1a947f469ecf76385ffce551b7d5cde96a812622ffd249adeb8cf733eb062881b7dc36201d906edbaa6a5c506de3532eb592216918ad7fb23fc8cf19289a5e34581b70b3a588beea177d485f4469b475e738a1ae985e4f8c4aeceb2ab79c7ea26564d87de36cdabbfe6ff7ca2e500588143fbb27614373475143d9c9217519c488a23e10440213c0a696bb73e506a57a9da7fb9605f7d130d0118a6420599cffd731babec0edec74006e97d4f4fd9ff8a118a333d272b758ea7b37d27e83a8fc4b9846966eb9bf43b19d5791ccead3b81c739a64e2d9cb3ea4c3aa7b138e7e1d49e3374de3ca26bb6e1cc1627f69c8dea3c0d67f99dc0e3b4927389ce59e224bfd32c4eeb70737b68065ae79a9c65744aaa337bce2671aea7b3fc4ee03aafd4b904ce6439c9ef641534afb3cda57782d7b9264e253827e54c7aa7b13ac7d3a99e33709d47c4d9863359ddc49e9a8dea3c1acefa9dd0e33412e716ce49ea24bfd35a9ce6706edf19689d3375b30d6e4aaa3379ce46728ea7b37d4ed0759ed4b905ce6471b2ef6454e7713ab78e4de06573a64e253a27c59975a7b138c7d3a9bd33749d47c45906675a9cd873b6ca9b4773cdf69dd0e3b412e7129d53e224bfd3589cd6712edf196a9c63eaacc1292bceecbfd94ad91c8fb3dc77826d9d57eadc02675a9dec7732aaf31ccead77428f734c4e25ba39a96d26bdd3589cf3746acf1938ce2b7296d199ac4eec399be2bc9acef23bc1eba695b8b9c4c2a9e6b172363a72bac1b9664e263aa3e2ccaacef339b3e544beb3519d57c359bf137adf349234b7e09c2527fb9dd6e2b48e73f9ce50eb1c13670d4e597566cfd94acef174b6cf09b86f1e299b2b7426ab937c4ed645850b26cd3cf04a786a55607a706c212e77984964c1bf3b51d569abce179c55d9c931e7af3ab3eaf4dd9b53854dca3b6de53c4da7ea9d61c7b91067179d53eac4ded9569d93e1acde19b44e1b71eea29b39fa26fbce26759a8673f74e90714ea97307a79c3a53cf6922ce753877e7041be72d392bd066aab6997a279338afd3d93927e8386fe454a173aa3a39e7b48af33609f55092ef1c0474d636a7279dbad366e6dfe4254898e062baa819cb283595c3851e7ad4b12161a9660371d2a90d8ad2c01b1561b92016337295409c7e988def331a6a4727ad610742b0ee47f6c36b98561a43ef50766682f784de13eb20e88265bb70673389afb6514e64006512499576ef5191096bfab781f4b6ae26d5a325d4b3930bd2169b154d882d8f00ce7d792779ca5fa061f5849781f5d0f59895a2ec1db695415ed4c521fb7e8fb61be023328f80c2508415694047411d8d8b4152a0f4e2adeb0c7c16022aadc9575b308cca4a079b9510f81a9314ffcaffa0575e1cc41cd3d8185cb761d889b95702c38cacf2ba6316306634b867611fbb35208e1d1d3e7a1e99c55bdd98854229c709ad1a0020574a68cac3df008d8c3d4412b2f7de5bee2da54c3205df0525055805de77e858c7cc5e48e4cdeee9541e7778ee7ee6fc6875a266374310dc7f6a0b89a88b74c87de73d91e5512e45d1ecbc4f390dfa3bef21d10e12ea683ccf73ec68e48cf951e0bbf008d3c1e3c5f91cfcbdfcefc5716f9fdbf1707e5a71fc6c77defbeeadc42fec02ffd0b40ffbd6f77cd7f7e41e146586e11106d3c139b8c3dd5c0d0763171eaf1cbdf6d96517daf8de43fb3d2567317d560645cf9c38ca17b2fcf0e84f637b7fe93df38c466ed0d9a73294bbbdd349279df4a7cb72f7d5d698aa94a8904cc92151514d535f9eaa642f146b928d42994e3a29a59e8ee99f7574b649c5fa53cc21cbdb7d20f91f1d3f8ff573c8b2632a0289d476cf83c7141180fe07f3f87920cc03c8c3630a54997e9152083e4313486c9a8b9d7fc4a671a20e1e797b2a8240f3a663e64d6cda8fd8b40eb72a0a79aca97c394462d0831430564410441a2868f2a938018ff50b31647929cdf46f6e272153b99b88c6c4cc405505081dda2c19600b1f3d88407162a60859e4c39a223b5439d2e30889abc499258c3cd18205938ecd3d801123af4184e4c47d3a132149f158e7cf72c8acb1011caa48e950831810b440930c18220b21aa60c0e2280b4dbeacc9974746fe137647cb8509114c646e38d202171aa5b5aadb799435af4532974a2cf4f4c06637f83083c4c8cc111ff7beca545949b92821810193e5b7edef0cc86ff9563e4c0b07468a56fa9a6f5f302f371060cce4f1457b00a381afb375abf4764e8c406ab941428828ce36dd3ecc754fb4a7d65aebbdb4e7c3b23c9f3a316a890ce6762aa2083259388e0ad1c2ce0da2e9eb7464b0ce52bae5d0a276cbf9ed721c07c3a3a1879414427058f383c907b06073a5872c2aa459fa2d09ae4a0ae3e67c32802dac5cf1040318252bcc2562ac420024092e4a423c80859012fc30aa62f5c42979c08a2cbc20b1c40688d31911aa70a1694b10255344b16aa8b202a5258a36565bd8b06ddbb66ddbb4dc1357eb986da3b586a9db1604a574d249e7a4934ea529485b14e16408285a2869365b6a80b2c409b298200d9b39e7953144b8f93160d472b5e5d7821298c2021253cd488a1d5e93062aa870d861c9072e5736f9b01873ce392d96225ba00861d4e3cd961c5a3349d4192b7890a207125498acfc8842b7da23130a0a4276b76a6108d9cd6e9b6f4c8cb83fc088f1f144e59b4925b8d004c607244fa2923c487a3205c48f1f5576f066985182373e94d8f2849a1e386e091258a90b4ae7dcb8eba276dbb6277668bdb5725061ab2db54d92388ec3a9944529a595562a86d6da2300375ac3be567c3370dc065b8238d1a20d9826a33b65a0a00d0f41927481224dd5074e8ee36848bf3fd2a2248488a9129091220749085f9e1449eaa189157c345101860e932ab6ad87579d5cadb4563134a41cc7c57abc3ce53826e1acb5d24a2bc7713ad5b9d8f7d01c7961f7d5711c4701216d0498374dd46005cc93971846a4226c5042c48a2a8c506edbb66dfbe8f68251212f10a8f2821227b66091428d0b8635607c0c21a6471b2e3c90400b29caf556a1304114269650a1818529be7984061025569a20412105b11205e5967c81d281c819264420e64a129611d9102e3708e1041a2735db06bb52a5564a9da627bbad08aece69b927aed6315bad61eab605415f3629ddb6edcba493d249277dd9acb3d6dae5d65a6bad73d249e7a4ef5badb5d64a39aed65a6bad95db6aadb556992c48cb120d8e2833a7172d6bac10d134df4a718589d20b5da8488306835924081a1f4e446da1c29399399d9230e2040d3eae704802d2c4ca9bd624e267a660b166cc91102b78d192c58a151fb51b017eab82e553eb177bc1b65ea2db2a0d405b6a6d0d3160c28d9526901041981698ba17ac5112552220a28722ae5a1730e0890b912c9c8c8182690e6902091359929e20f1a50c5801a5767bf11c778ff0ec4661dc16fb9e1a04e4f58d04ac386da9dd6acd32c5d4144512154794a051784286c810a1c5062e55fca072f182ed5c8ee2b0c090e3386eabb5cc0d34e04025248d9b18ae54b9338805a20802071c5648a3c64d073fb8410302325ba07899406e992356b0880122b52607af833d863bca282759be8c9a18bf9e8a383f4517ef4854e62dbf7e0b3f685d5d5de5d73bf872f5a4f425ba4051e6a16945d7d38f5217d45a1745aa723b15999a3f23b753912bd208294f96288d5ceeb3a3aec5ddac39943ff9176f92525641d5fe282613baef72e998f9e2beae1912b99ebb46e1533b19e9217778b1acb5b9a3a478ec282c773e2bcb5acbf0e14e0f65ad65cc9f4c77eca811a2e6c4120af674ad1582c9629db59dec26af29e7e8a8ec72e1ee39bfefa55c21658decb6d31423b99da618d5c8ed14c52abf88b2268ad48b175ed017f47d40323983be03057d41dff77121117d79b9ffb82dfce67bff23586bdfeea8f985f49ad378f19286445e02cd9d105aa24882cd932a8eb0b3a748a364052c4de4807444fe84725ff41379e2f083577ed175d6addbf930def1389f7befc5cf6f86449cccdd7cf1dd8b97e18d17af33eb17ba6566f7ec784e99e7c441d5f5dd3bcefb8ff51d8f4196fb1d1f5befbf23ba9a5c0e8f2ebcc3b3ebbd1def69e6300e57ce733878e7c78a77f04873cd13477dee3b8cc3fb9a390c2467742dbcc3f358943b8fc36350762039c3bf77910eb9bce107f98741a05dd75131e73bec6c50fe092437b0207c1dd4b554153f3cca9c6f59500d897272443abf13650724677cdf73ef62f5c476f77e687a3776befe48b9d0c6ced7ff2c2843ef391d32bb8bf2ebdc403b41b9dbe2cafcfaf097a42c39a1dbcbdb6a00cfc360df5117f7c177b1fce7774f45fbc2f1f2456a7e278e3cb80fec539e051465f7694251e670072cc88ee7cfef7e6876e2c87d8cff36908a76e7291e75d07c0205b93e754c7938bc80a25ced7ba2d81e73b1fb1d71e43efc1a3220e7bdaf610732e7fc1447ff0ebbe8752e7a39ef6157933b310839df611c39ef611c1cb6780c9f25cef083d7cff7d0031c4c5b3ff1e87aea315703741aa0f39f8e38a690bfffbecfbe776f3ffbaef37debed473b3cb67ec7ccdf48a78b0fbbf8968b9fa20b3ccaafd57ada7afa15d00aba2d1cbfc43c1ebcdefff58e472f7738ba877dc0f3b087c1c4b173b0c8ddfbef3d24d2d11080c1be73a190ed4ee5bccf799defe7bef762bc4bd491f31eda9039e73db1b38e886387e71c7c82cc94fef7f5f5b087e1b15b40d1a4e0ebfe2562d8ec5c81783305628cf05d8444adedf5a107afccf3df4bf4e7119fbe3e7c1747fbafef253e8f38dacc53cbf46993ed28b076955e4d31fc4318ef3a66871e7079be157570d97520e0eaea2a8f45f9c5f38845b9f10ecf2f6088ed3119bec00df4f338828c49b26209ab333e4c600a354c503c91e2841340626cfaf4ffc8e694991365673964d6683359aa5c4042081424548a96fc7005d40e522c51d1830643cd1444d2f848c2e4c335ba1204d4510e6494a049fa53a42f6fd4a43f87dc7dcadda738359d4545101c8d9c214e2bba94a39133e8db6945d67f12749f62f994c7a80e6e8a2c6bab94f298e4fca8f6dd4b2d77475e99355a0318adbf9f35a495b2367da487e554545496b73372dd782375246b1e231376df61083f3fe43f62274aafe85adc1e4be162b9f5eb6b2002899fb8238ef64b0ed98dedc3b7a2572b5a35af702a992d5e93a7b5d8a75c4dee8eb53feee01d9ebfb7d3b32e2c8e6dfd7c5d9defb6af81b8f34062b7cf8fb8b3f3dccbdacb051eedc5e3bd3a3a6fe78e9a67ce73efddd33c318e1c3ccabcf373dc51f3f735fb0ec6f1fd7cee65e8c18771745ff3e474b8ce7df4a96cad27b2de8a94f5ef73db89c9483b312149a49027849f9f31843cdfc51ff1a7cfd754dc7917ed5f319591e4af82a108caff4489f4f3a305faf16aa0810824fe883d7d72e84fd1a3013f7d365148e63159074b4d11983e1e93a364caf22593d3985826f19814a7e17889be3c3a924f827c14e48fa081e9f3cd0830347029d851f3ac55e6167bcb275ff65452c4c7d30f662ef3346e2f50a2c8ed050a163f52aed0d8b24686d3863c520bdcc994476b81fbca23987bc9197cd5df5e969696922c1159fa4129edbca530b71728561eb86ddbe67d5098dc60adb51ff884c993f99aa217262db05c6c5a60188661eb3af1b2c48a970b9ce212285c802e97cbe502673631e2a14316ab5b46ffc7e5fbe4657ddd83240996bf74472b8d640782080f5dc2308104123bd01c86312678618a2053cc5045f327c11f057fa139346bd86b47a1ec9f7f8ce551e8c7c63c22601efd984704cc637a4877b45ec40899db51b357396570ff1efb9f8342f2723f4322218ff93842de9e03f082df0d620e3c86e4da1f836e08b9f57c0b721a9ce4a92ff109356f1b10a55cb16740710c59f8eed2062adbfc1dd78f390d4a6badbf51fa96ced8f7c4b6ecdf960d96336860002229aa6bc2c295305b5451e2084d7e5b19dce79cd2dd5d12910495dd9d929eb283d9dfeb71e9cfa424b99d9290b2bf01723bcd6044aef27b3ce6b13103f940966439c398c7bebbbafed71fe6dffe56c6e4724896efa97079fc08a1f148e1158536657e0a3849d05acfa3aff0c11445e391c20662aa34d15a9fc206831a10d05a780acf07939331501c650643c89ebb7bbfbd8facdfc431841cbe27e690c5c47f72bd07893cffee1d77d0fd0dbf27f6ed3deb6568c39f82df74964b075f82ff499005e2a1d9e47ef256d84c023a38935cc93acae10fb98b33e976f8fd902bc045507431dd7f4f1c47f8b0c7c2431e93df81c76437f17cb0bdbfe3ce1a10bb639facfdf716c44b24b448c871018fc99f33dcb19b9a403c5afbe1ce9c446a51aa70abf89a32dcf195653371c7ef91b5d1861081a10e58ee354129e5be250fcac3c7a2ec328c7f963f85e6fbcf9f381ccbe87cff21f73965beb346510e62882002c9cb920c6c6828c420c3133308893202259afcb6ee0408833dec1f160376c105185c7001be3da2f518ec258bf9bf8638954088cc092a3620b16108066e3b1991927b723b1939ca45988a285122678890f1a62cbfa390aae87e42226b40d494686872d24a5424152c14e7bb673def6a7df7ac6701f89cef9ec5fef311c0ef7cf76c005fbf7b96c173df3d93f1de77cf08f0dd77cf66bcfdee99ec5d36830032321880007c6201c0e0821e000ce1225faad0b3d7cb973d7a06be7ce9a367ac9e853fdb5ebe5ca16730167ac6d3b3172f5ffee8598c972f5be859bf7ce942cf2a78f912a967305ebe04d2330a5ebe0cd2330b5ebe14d2b3175f5e3cca17eee3e05112c9f25d7894455a7894465aaf83477944e773f02861c889e17bfadd3300fc0e1ea50c59ce509fc3a34ce29278dfe151d290a5c5a35462dff1286bc8d2761e577700f0e5e8b45c38177f2bcfb7808230b78c0abe3cbfc53c3f86985bc67c9ef9214b94d12d634c371dd15465e490284945bb529036b206e4e9480f61e20508fa7979e79c517296ff7283ce12e8835e3ec50508fac1462e454d03d1b60fa5d8bf97df353adfda2bd008284f6b9618212d41c10a4d94a1412a8d550ff99d5508d745f7e6cad7cbdbd1f91d1dc1bd9b73de9f2ed7a42e57009c64b0018c923623389a3b546199028aa92c2700130514526a5335b830a64889872a42f0060458485dd124fdceeaced7792a4a2929511c87b2fdeeebf79ccaf1cf77dcf1d8bd4e949beb3f16e5ecbc8b345b712caae51d5b7ee1bcac4d1c1caa8cf31cce7bd8eacaacf37aa7a1f3f2a594d7b85467eab88eced79048e7db07e71d8fb04929a59676b4d2f163b21612aaf6f35a0d8974983c263fc7d6befb56eeba0f2ffdb891c79cca0f961f9301920a1621ca45886a4cd311425d4646492a12e024450d165046a0c51134b98497305ab8b93a12c5a5650dc8d31116ab755daedb627d72f2880086228f08e1b7be8579b43efc225a8bd56239ab755daedb627d720a7da1f86141d585e20662aa343994dca02705edcb3bade862bab74af42b9cca63b24a26d434506c9a0cbdcf0499895c4cb79579bee6d24255eef0462b2f1d3d0dcc43b25d027f3e07763ed5d5eebba679d0e1186b60f999901c0e5a03be7cd9ace150208672a8e955d347524d9f5873ae1b6fa63cd6b9284bf0c367bd6cb1a884e0eca72451aab2f091030e567c3a9557d51c7913721a8e39a7721ff91c1e73bcb290ece8fa8fb2208fc99df269f657f64ab34ca82a7d3e44459924658c4ca52cffe57d9d7bd779d779d7798e579eef79fdd44f505150503fdf5e235af3e7ae918c6a21b74c96c79b7f2873268f6e5586cc3c1a72e42db9e334e229dd1276dcec572d43bebbb15e0d5ed53f24b143369a475ea369f295bbffb66de338ce5a6a3fbc61bf5b86bff7f2bf297d4ecf22b946532c9e463c36937801dcca7e4fb0db43fb9fcf1a35721a96ded0c869d49cc628ed0dbba66e2beb86ff79a01567ae150c6fcc0fb4a2674aa99579862ea66bbf3b36ca1818de90d97a94d52d63e2b1fbed3f236ff2120392dc5d59f31895475ee5342886794a2e0d177c2fc9fde4a55279723f450ec8aa8cc39ffb6fe23185a35676ab9621df4bbaf2e9f3e4979a03262dc4f2cbf4d9c4f17678f4a77f50e46087c79a2af7ff60e64c76ab2c7f304346ba95d3b05f954b3041e60e97e0bd8d2f7f6ffff3441bb27380d33a3c6ebee11cb22a574c3109335c4f86db5329c704fdb19e797f14ec496b5aff85c5f8fe9894b80439ef83600b7704db5d52d65894bf2786c7fa2571a067b244216fcdfd904b298ff526d54454135252ddb5697fed373c7c538691524e3aa7e4def284164ca594fdb25bccc09d52b63c218512f9da65151df2c30f59b56d9fd72a8adbc6a396a738d2a62e3077972bab2c6bd965ff7cb73e32c5b4cbec644c0a75ad56ab35d1fa69762885ea538de5513e3d79d8874c9ff9424232596c8c51993e1306bb79768b683ea17ad639e9e2902f6bb9f328df6bd96bf098329fe45386c17dfd5af69ae4216bb4a1e9337feee0f2266bd9b9bc611c448e759cc065c763110bd95fe2b1d964f9b3dbb48a658d36d9e491cbde437cd06cb277e0346c5c75e958671b57603ad6796c21f2fc517ec953fec89dc76e326213e6ea881644bed0b2e8a0e6090aca0d63b2d038b0d2c30942708511545168454f96dc2c3da9ba420a2a6833a98799177e28c306aa06da7cd9ac618153163cf86066852dd4d0a612543a347921a9ea0736348a1bc24a4a926fc62ba8cb1599ecd9a36477a78d20e821038a7cc8b633e0fe6b0edcee72b526dbdcb96deedc9f69ae978bd1c50d52ee2e5656d97f00b9bd2c6195bfef1aaef7ff1cace103de8705542e4cddc72b70fb136374cfc01f4d28cafd0f766dd67fe068420ab9dffb10fceed99571f1f835f789a188c3c327c85cff7e871e78ae61da9cc9b3fcfdd75f7f77b94292e10706c8201efbb9eac6aacd9adc5150b638cadc7586dd32e87fad2e6dacbe06e176172ba4dcfdfd0ffcf66096fbeb873930cbf5b9fb436e431bf53b9eeeeb7fffe1d1c107f128f3377e571ceb27b2be7b8623c72c37e6c02cf7372ea17f87cddd3238f013b9afdf12294b1cbda73f4322efbf0ffc6fecff9e6bdc19cc3d7ef861fd9d47d8e8fd091236b7af453166c50c3cf78fb17e8b33a898034fc8eda778ecee8a653826732c83ee2b7337814de60d96cbc77d7f7ffff4b117f6b1dc2d91784c8ed249964b3d7dee0d91f7a874ad56543d0c2a24d14004000000a315000020140a870402a150308b52204ffd14000b78ac404c542410c843711407312044210c03310cc23004186408328829a74629000a970be6102be5fac692ba2b261058a3b4d35e8e1c90abd043ec5c0fdc5cb83b40aace515fa310c87ec1a01162e53fc05c43f30c1a425a5815177d3c8158b02a2655100358e35bd867de9c902be864c5cf26392d2ea5e3b052f230b4635102b244356698f203a96a6b83041b7a07897c82ccaae640a8a378f973fee285f022640d01a5f2a59df0cb1785d30a701085b4ebccf6401fda74df48994899a5243402078ae404a1f08cfe032e239a978b56b3e5cb66ee4c3968d6517cfe4e84465a688a62bf794f91b22cf543d059e0eb1f4338f785a1935688645242a4c63d47d4a506d6cfc27b4ab28e67e8bc4e98339597877998b6031da851cb28ef86e961992335b63bfcfec48e6763f4a72d4696c0a0458b230901a44e35423ea8dfc6f65c5803660f4fe44293848c6fd8c0f200a4155b89d03bac328ae0e43bb34ca7a216bc7b0f2831f9d6294a147146a2f5c21ad2f96c52b88f51ce728ab05ec801888f9ce1e50b67b9cf50311b3f0671ef9540bf666b5e6d8c0e15c26006a2e4278977687120d1d817970ae29bb3bb119cce30a9ed7d0b738389441407755c9773090c95626d09403d4bb3f5deaa2fc6ea47e4b8a850d3cb37670d428cc8417c9765aee509893a3928ea9acb6f4ea4486f8ec6b3ba1bfd6977924957cd5714d6ecc9501a0190402b037793056ef43f5c985dbc7c8361eb7d6babe76b5d41702513ac848d797208b8883fee4ad736e291dfc2606e8dbfe5d6632201d4fea3648d214e669a32722e1b323180da547e1e413cadb479496a405a64f29b3670ddb1145870d3123187d17a41420886920cc7c2e1b3e2bb2021522f02243be59c0a715e18b2359e0d92f227e08758f38ee2f4da111ad00ff1ce6097788ec327235e074b20e3eb2fc00699fdc1be6fe4b6e9060305729ce1d4280af9313f601b0f6ec70fda573ed074dc189370eeb5fac077d80d475c3de1716f3180dc8e7b9a8639a50607a58ddabb89ecb9e6550c5820380fe4fefb6db618158912b2c16cc0c8bb733c90c3721ec89edec3e6b00a08badffe0b79f83aaea08038671432ec2a3b503d66f019c29eff9efb18bc12952c44d22cc1d3cc07c67c7312f435a8901ba3b5fd121e27956ba6d2d61ca4d7bd4c9148d806d6256b8c82b6a2e5d4aa91c045b8828a49ed1b03c47261e65d3eb4a2da916ae03bf6780305e7e374dc2da92b416f116f0776b178b82be5513f59c7a9e8c42f8dc265b1b81bae8a1424961e9b8fd04566f5332fca2eb01c55ea2e5671f056bbe01351165d96a3d99e85c4dd3c39bf1d8a2e9eebb24d9dadf4fba92601c47158f7716167f041fc242244cc707a87f82aea3989ebeb93958b2690f1262cf3f86ac82d3e711289e4f256c7c0a0d737e86fe8ac2c620205c4baeb83d4f5429ed7dc9ed26f7c7f50c68a774d2c3c66460ad94950abdab83d47df830950ab3a3ec2097262cc8759f7718980db77e727777b64fa1f231aee852dcb560033a3bca174f595900f7526081c099a3a5f972675dca94c594b56ebc25feef001153e221b41a08be6f9f9a8f36ee689b47e13fc2f20721ebe99709b20f69e0c08c3a11f8c9d84ebe690cc308d5ad4edaaf6b1f4b694630f5772e628a703d0e66ede4d07f2d5e9bf1c5203888692506863e575665a7d62e2585c4eddee712c3c828958c09ec7fc40113e3776fb30929e97637e2d828f7b8ca721571a72fd1e5eeacf739226ee537092eaf35ca021b0a692d1b5d5247b8b841a5282c21ebbd8b0424577cdd97307cd20289ac516ca8e89fe7c8c850f4f6edf35cefa6ee6e767ccf53593dbeec981726c7e831e8ccb515aa38484447f88feae8f2ad7352f1224377dfc63c21ac8e012c5c0f51f1fa12a04ee062403218efeda7f75351740f4d18297d11a900f3c6d1678bda37232ca4e5553025e376d4a01d34a15a34c25285d09dffc7042fad2484a668c5171fae4f2b8cb66b0b8d2cd4d2c542fa087318fba2ec8cd8e80522f68e8bbaed6723afdb638cd55dc508aeab5b88dca7562ca6b768933924b0bd63ad29ed393a6354f5eb59e7603ad18aa8e5672021a2c109b20ed7530435feb08a776859fd66f2c65563c0cf3e29746292093cf5b0799c43e45a6afd8b1c28f65925d7e58873589d36c1dc9102452db7520969944493440474d14f28b7e67a7c1c9dbf5ad43b451146376f196280609eaca2e7a25c8c4b200da768a3b60595e1b3e02ecd7194f8a4f442ce4c198c9be8b40f88e369b61d4825b427f86c33030752390bdd991ae4f054cfefe618c4512d0fa43dacd6581428f975825e30bc229c80c582b36760555dbfd484d0ec0cfb4d6437fe7c8d63f89c6204e9293f4c3c6e0cc9f257dd58a540b8c4cd9b2bac3328f4610152f60ba8308775d935a01f7fc157cf72463f353b041d2001aa2ac27de9949203864bd6f3613f1b3b9ded6f8cbb76172080773ba28cbdaf718b5978244a0af25ea810abba91a10c79bd6cd914e8d343a2718f1130264c0796e2ea71a38d1a20a72fe7ede9ed21a2d1910498b1a41e25d00ba477f87dd4a2c0a89285c20164777a66c0e67ced8f613c60241db66a2ace381029f254149cbcba763dfca5d579cc165cedbaa33ad8a734646b9fd9cd2dca528f6b395c07fa1ab3c5017a6dd1e783e0743c32006922944ed0c5fabbaa1f3cbe057b3b130cbbb6ca2ffd57a35e3129cf61aecf416ea16817a324ff9327413dda1c7b0418bb9fab23f3aaf6d6c2792a2ac69ead6e712080c6cdccb3bd33ff34e454f01b7f3767aabcb9c1a0ce05931ea7fcca45a3ac41cbc2eaca5ca58ae4ee5867406ad9b50cb4ae2699c2e22a7d22e546b8a0c1c693120292eee7c5faee438b850c3c989dca76ef711f4073e0f894116515a62b09d7a298523cb449850189cc43172508e4c56206c037c5a4998448e7543d5b1b787b837640ea2899f524461b0e14ffd2a9fc5b667779a80408abd1d9dab2a302271da69b8b526185604aef08458048d454da51a26240ef1a82a2fda7a5db51a94a0393919c826074340ab880733a40806037a3eeeb2d48a15fa5a6741b7b0e05abfba480d92a919373ce4e9f73d66734257bf07f0b89c59f647b82ab6566998a8cc2d0bd93fc9b17ad17eedf24a816fcb16b5e0d20886cb1e3ef4eeaf9cf8a73b7b76530f574dc7552c13ef4785d46515b8809a7c6274cdc2c5234090fec5f2389da16ecc409792e01c1b38b8894b29ca0b9e3d2412157b16bdf0d3e610913d7edd960c080688b56497f7505ad93b7e2ccd884376e8babaa83c7b21833d9ceada4d737bda76d896b9b6dd179d50268c29272b34330f1e25f7b2998296a4065f7f89bbe5676fb67dae765599708db5b3dbba8f5d1d85598b4dea064d8d37ef790295320680def466f04a7b7af7347d7a3c7e7abebacee3a87e3c0cc4e708608d463af84d5e8d631afe3a6df7d63c203388b6e841ace09796aa0600ef0ba9221b129a28f595668be52503c507966baeaccb6518982367308c0d2322e544a159476c2070e997420e500c3e4874716e7bac7807252f2c4cd7c47a215e060ccc91bc4be6fc9513fdb785c6b18fa1512d39c75706ae5e50247b6cff44910c0886649d057acbb31991b468ed76758cf67d197ec18ae8d2e3702e2d29aef852f7eb9570e22325f7a5559bc248e3857b06dc0cc14b2e795ca8f27b9b57b9703c810df4753c784700cdb41caa09a7cc73831685ce83746a1349f146232cadea67a5dc567c8e57cb6e52cd4da634674e113f10ceeb817c610d2bb14696bd296c8d01d607d6adefe224e025c672b48603a3c4075b52cec447056c132ccf063853984892423bb812db3cd57f2d3f2592c4135e803abd033b8a6a5593096fd5f183cb8ef5f1923c8d4ccb4db391b427400ffa05d884bf57214957173b717a0148f489cd081a0c8823c961e5544a7881d2922bb15fc6a2dfd03a6c7d22eec2b00ebe7ef74679a3879fe46fb28534a4e2e8e86b5cf0fa9016f22612236f23250290fc4d2ab7a81cc5076e7777cae843ee79990241ba21cb46c8f365e828b3463d1db9c546e58a07f614fe27539289d111d539f0d74054db387f9263d0637476bb0e6abc3cc932991e568cc89db5a70b82a4ec7cd1115d7e926225e07214467e368be89a627400c8f5456cfb0dac4563bae382948ecac42643b182074216c2d32fa01911861df72aa085f6595500f03be6ced07f047c443f592389e541b988b3112d6d147d989d839ad73557da48c1f2f08e3d8164bce3b71166ec695a9338e07336d955370c3b83b179f383ecf91a1824c2a778fdb4a57563564ef5727a2648026932a0b7c40fc8d3fe72db76b29ff69bab403aa004b93d13161cebb1487b2a672b7fc14d67b976aaa76825c886a15adb13c69a7060f55ba291cbb817b8d75a5901925be219ebd4928d5825c1d542870efae5229e8788b2311f466c7018673f2b08cbd849dc54473bccb987198d9be5f6965896699159446cd087b3b04f2a6900a88588a08077fa8876fbb5d8487d33b6bafcf02cf6eba9e97a5803bc1d509cfe46e6a1d91c088da37f0a65369bf4c725e44b56f2e7786278eb72e91fa17ec21f5b4b3d465d24428538a2261609a06d0774aad0ba85b50bf940efda7f6cc8cb9d41a6836c608ccfc0cf8000217423b2bed8f2eb8da16aa4862286c70715d2580d075f2819459a6e46634c520a38ac80a987ba48ffdafabf66483a7760ae39b00bb8f738e29638c4ae8195af44d55222d19a3f4c0904db48a382c4401449b5014d881c2f38dd83916cc5c3001eb80dc07229c1d622505855c42cb2a0297bce4b74976d0ea2d95c14e8c290b960d1edae621c99b650268c0e6d1284a9a02033517c8ac88bf6408f4a342016e62db6556b437d30878c34a4344f011585e544afc2c87fcdd5a8a42ec82b1232210d916752c0a81c25ab306b526ae59a87625421afc237c2d430bd5f71c15f3ccf47b8a97f9367c42d61f7b4b9b44d94d36e023b1b77448b10f898d752699e2950deb0782da90d849d1b877206c9900c4dd20520ee263bdc818a342939110756a129567f00a68ff3388aa664f78eab546ad39326c71a28fdcec13ac39a3d1be68fdb9eef4113f5f9ee07a7178deb2f6fad0f11e92f49b9f3e4cdab50f95b0c564c52e5c1066d15201adb8e84e84ebc5c77d83ebb83bcbb435be6d9ad0a835963afec3598d968ea2323260505b2dadfa99a7e4367f79fef57a8a17e1e992b32470a1050a1317e79fbb98ec7141ec5da85b8530aebbf4ea39e7a03cdb45e610489247b92b2f4579d7ede938314fbc6279ba2c825d0f261bb538aa840515ff4a7b6726ca6af8f5f25c0f33c32812027b65f10da2d9b410b01f0522c8fb6853758f0031faa5a992b0c9aed4fe1451758a88092415c7277a8823926220bea61d101db2b41553a9474bddb0d7c54572eb4eebb11cf0a71b4061ce252128d96bb9e7d58bdf65077fcaabb9f96cbdfaf82d7cba35d23c46b536d0ad4f555129a7cbb5fd6fc5640dcd059d5ce402af31e07a1a45696808973fa01268e6aed45106f04f8f834f14dbf8339f9e1c18ead87a0054dd683c521cde1a284d1fc17a7c3324373efdcc4c99097025ffb1c19b76e5459de2c0c7272961452700957143f624324c4309f3dc9502e6a68aab3883f3d2d7543f97137262627314c5f8e847a859bbb0818ccf6a4ef431dd030fc8a400ce46ca56a94609f95cbe2086bc3e1e0abe95b5d76825c2bf926552f9b118c15a6b7ab2d2377e590d865a65ac8d225e0cb27cbd7811ae02f070965ab0173044af82082aa7ddc118c1acc61755659d085204ce6bc54164e2a61a06a256354e8ee90948c42d190d2aafa524c0550da409732fed83b42e9ca4e31df2eea7be341907a093accb80ac4207929dce2773d337049f2a81cdbe634a1663dbe445626d452fd5c230cf16a82ea254236503a97dd9b87a50b18d74146818a3cfbeb63e2e5cbc36290f0bbbde29c28eccb59449553e2e9d94c298cb146c4bdff98fd1ffd98ae401e6978c536b0df2cec1703393ffdacc87daa3cee32df4d2c32255cf2e3cf32484dd92e860205409c883d8336c2083a70174bc7dcc9c0d9ff9e5320ee6c02c66e876393b7af9339489b7732e2d78ace9db321148b75f80785995a1f22ecdf0ff8e32e7bc12e7457343fa01240700acbe0b61ad17da04325ef041a95478cd8734d0a1efaa32e2188a03b41121af137ed826a54bad7f4ee13ea43fbe9848eb03f69c223b69ee684e349a6b52a4473890705cd56e4fac769cdb3b40a7a468cf109184217769d308db24511230a3de7e2b9b5176dd50cd0f5eedd6271ecb3c53abdf9445d13643caaea0e5d66a7afb1935b869567bf66204bb0fb1b74a860b14f377d068026e44a0f5c067eec21b473613add719acd2d5060264bc22105cc4501e6145b0b151ddad47efcc78d6b325ef45e981045696d5f9ffbed13f57517a23b46f1da26fd0b2a9df360b0dc5a62b5eaa3f43008004a210ee7c72cae11d8684efdf557ca9af50eec619ec8a0ba7a51d10eed0cef5a8cf9c21ef4c4a996d519dc01e64c2794c325ce841a7f7b98242553300b69cd34b11c16183d4e687922a327cae8ba0e2f680d44992ed5afaa46cb81921c2adcb7a4362fbdfd6c84744f1025f2329ee783b843a773bc4cff79ddb81f11a9541d9cd449d56119113c480be335a1fa7724916286bd65f32c2a7aa19b62a531ab8e00f8cbc6737bd60a621487b313bdeffe8183c57992ddf9068b7a31745c3217d081bb5c1228a1fa48c873ad721027800621c9a8a7494c1db2790baf99b1020b169f0319e0cf5b948fd193d1610cb4ce7234c2bf112c596ee63e6b33361a9d660ea5035f9c602268a00d8d4c84b01649e8236af54ae8cd1c76570e86d728105b1bf950da6d6003988af28467200a37897359772c65497294f42a917924bb1af2be96e80b96176456b46c03bc0952251612856eb2562910ab6cea192b86cc228c06975f4428a6e8a9e321cb44f2d22b5ce9f06ebc240bcd147bbf34a8e18994749695f9b955e80e1177cb859df4efcabad6a32da86d717f06b0c2ad6198462cc216bacdef72c52b51fd8fca4f1c1dc8da14e3c446319bb338176bc7ca8c60ad5db2770a004b84b533f08eb05d827480b8aa53ceafc78a08c6667668a4f4b6293a6a0fad3e0f2f9412df7220ff2aa4b0c9a19a20ec9e463941313e052e281b7b7a5c692bd5b160fd7860d7ad2b9e07076a9cdb3d625e1b0159d3732d15c729c4a8cce89b12e4f1c172a290c38196d8dfd0f3a689fce9208600871670ccbad71232db2dbfc857f5f2327b5099f54d053f77e08c1a9411e2200850442b96b10f2c1955d4604888caea29904147448ac1f0b223e662e57fea048806fa0be2f67babe3191fbf93937c727e4a42ceba5c8141aaa38d64a257c6332c0cca07cd21e7cf5e64914955b2a14d148bc7ab33a41328630309470220afd355a2609dbcda016b78478eea75db46c40620067d78755f8947700010e2c9fca0da6b8b38ab61fd45dfd0f16fd0d9529d55e0e102a8e36bee8ff9c2139426db440c82e423083180ac61d0a5419fe5104994ee46e27259349c403692fc2fddc2543c762dfb6f674ef4a7febe41347ef3923fbed631d8362dcfe948a83d4d36263e0faaa68af0a7632174d89ed494be754e5a10d0c2203cd626233dc2c8572444153e30d7d7fb9862960735f0aa26a44b59e2fd540410b8cc354f7c24bd50c99e984ac38206733453411617b1e1dd8f7858f95eec046696721c3756a7e4beb118845ac4b0eb5c1b5c3c312089c80dc13ee75320266c619bb0f744fea26f6ba11f7ee8fd6d7073227c7d9a7293f8bf07851251fb99f259b2e8fda388ce8bcc2fe20e25722a8f58b8470601063f2ce4da5f9a0086607b4739e50417687f0f5b1ea13c3b87bd113f6727cc19516a98f6770f813e5248b7be55189a857710fd67a522e828f2c318c222a31b9eac5f85ebd18a7a74360791efa08cc0c1f070d78ac8b6a542790756564a11233208c8b2a768a8b29adef9ada91e1db690721713d7029f4b7ee8b4324ced6edddbbbfa911cb40e129e00f7daaccbd1aa6639fb08cc8bca87a4172324f1532f7b41692fadc36b185f1af9725cf32b6c30c72f9c373087399f44ec3d8c8a44eb28cadabe546e85fc0bec1a4475a6b33961d92c49eac203b33571529cb795fbafa2e503045a770e00d1ff2224a6c38c33911f4671296755ec51e86113e682238c20da05a1e921aa1e6d810f3e4412670e6904ab253491300c55530b492f6042bd22371028c7bb1380b8f4ac1a841ba9f473b6b4fa891e583570856ff925f4496922429f1450ce2253ef9ca049f7537c20c6fa0e5d1f95a05a0e388999890f2a75d924222de39b85e238e4061107a4bf58f798d7a1526b7bd92b163c12d66c5b277b40be2353c53c9b84c3f3d61940a28ece5739846c5d19e21d694f59e69f9f233968e20f67a6ba725f5785c8dcc53a56068b5490db9c3488c9d12f56b29b672036d192dd63d209647fd82ebb2216b7e42ab29d11114a3f6cff669adc6b8a2558a4c29cc04a4067b38df0286e305ec240f6a1ef827f5b086676cf2706002338def28a16865798117d45820f0a190bb13e90c010690652cc1b42612832e8da8443ed09876ef590fb21654d2bd5a4cdcb894c025607f26bd70b72e708e2cf099a51095545b00f64628cfc546f77c3d7c438c3b33ab6b26fcf98e3d005d2957486a0019483794b992f0f21af981bd24a454201842dc164f2670a6a1734330d01f18fe9644572dac4bfa3c2e033064adfb762df1618d6df0faaa61e9acbec42c70eb47807487f081a599e408146cb61dd190c07506f80d6f53fa3e85cace9f540a3444ac9830bb68435f8f3755e836684ae62c839f550dcf1e3c3af3eeb0f8d2131798e6e8a8ddc350582cfd43cd5e0839353335832009f6ef2259ef6fd75aa8b13509133c3af5a873c07d0a2702c7f7e806134db2250f1e4d5f46ed1905dfe058061845b462c1845520086d132677ff985b1c27ee279fd5f45a23e355b85f5cdda0c2b209522d62d3bf5c808014abcd71fdbebd6b8ee0ffd40f7054dded04339a6d5424614cf41553ce427b7ee26105fb1788f204a90af9bef0ec368f9a6164a3ab3ad47236ec63589b195972e971bd1b38676b8f2cbc562939cc5c28e82c463b0a2f3307814124629a514c334544c7a982ff318702124ecb23924c92bba6cfef8c6869fc330e85d2640db11a96f9e1706746dc91c0ec3880c40b82a3649f0461d18ba41080fbbdde29220f708665ae2494a2388c1b8a4d3e5f8410b64a3c33092b350290acc7cf26c8bc3308697a8f038e47bee0b2ed6870c83537939132c09c02160b309fb41be1784dbc0a97a61b0e8bb14171a7dcae68b5365ae81d59ad1dd5af72d805d18a758a8279ba460a061f85e46f094e5aca83bdaa5da297a4d3aa4627647e4e5260bb64b3c28ac39083496052b8c2978730074586b0d57619418050ac4eed3e310488541529604c5339964626c7036e59f2693dce45305f52ca0298ccb349eb5f70a29e7b899952785a1928f05c0bb0660c5bb9638620df44541e5ad64d304437f04803f3217b2b5c773900ac8ab30c2f01b1cbb746b041e9e12eca04b848c08b9d646869c37d6594327635a48e62a5f8bff3e62dbf4b7dd2b1ef0cadf95208cbc280c9d29775112e512712a8122b71f01ba3b1fb0b3fff5a0d0634c06dc20a703ff7755decc9ce4a60d608fcb133d27a4c92068b5caccecb13566827c5388ed79e1f18b0c98725ad00310d5c84a29bffabbe6e9ecb82d086f516008a27290669b110e96947b1508c949acbc288579935ec137733b1029c06b157c392a6089682d18717942df1ee74aefa8998fb5022693e4c4636d34c4d128d332c8beeb11967e7b4e3ec63855291678a7590c409a8f132f2ba6a5e3afa2abe240be65b61d062eea91d8a4dba2777d9e6a5b530b2f65be1f1be70306a902e7b2e263e2b2bb2b503b032157ce9ca83ff10f84718712522043c6851f5e153cd17a2a2beed6345ef96287d8a19e386937bf7cc78515e950633c2819815a9ad85c5b12d593d31eb3b367dc1c49248b70778c01239294e466d5da86fd716dcac071a57a51a7f79a4ef07bc3ec21dd48e55e2b1b688f1522a3540183f131b62a858b5f22db98ecea838acfe42eb7016504dbb623fa72ae3667ee1f3db29e8c2b64bee35a4b4a306165a4515f90291264e51f3c538ca3037634a747830dceb2beb06a41b83881318a0962cb618c23939ec3d63fc5ecaddb155af449ef15a89e5baaf04e714239e03792b9e3ee17b4cf3328d441d203a5effca12b7251117905b569b16db63ad58a415ce871c6315e34a601f7e332379b6ef4576f7769d072d8042a4c538d8ecde2c6a2c91920362b085bc4e99bf8b66c622328fbe5f7bc4cd4ce0c9488631392314e039af2f96a5e31f6911ea6099ad4891de9f789c009366a65609872943fdd015c9b6caf25a351d5c37f9232752740ec69d9fa409adb371be6700f04285d8672ab4d3debcb9c19ce079faa126f6b7f47bac7d02351789a640b240e8ac6e2ebba9bbf592640c652c0a47ef54296bc9ea26c05a56faf4ee1cbe28e3ccc54738c00208605e0cf6ab0a0af8cdb1299f97550b71dd020f631108c07ddcda14b4e0a26c703cddb06eeb9c1c29bdf050ca035658f1f4685ff9e682450988a5841731c57581797f837ecaa04944ed0a121f02a17a4c2fe35fe64fabfa16ec8e3ff208bb354ee1090a3af5a6ca32ff8cc381acc981d56e22ebf1b270929135f6903b0f197c0c0dc76a0c0abc424ce8625d8824b9c959a17fe94c684124785b17f4b745a73ccf5ec05313576e326743431a1d438d21d75b9e9ccaf59d06e7a38ea3b5171efa1a53b240b2eca7749686cb66ced636592c19a84c546ae1c83e6b8914abd2ee64cd3c23983c33a50467184292d19e88b289aea8a8e7553e2f46320513f9a9341667146ceaaef03c1b03dfef28f1182546c314f9a68e3fde95c99ab3468c036b4041b0fb1e66cee4fd2303fe09813b75f0034258176506d7ab918f92b4374533d82ab60cc93aa1ce63a4f928bb192b9186b5f517c0633984a82c2d7125dd23f7c2103bb45d87b5d99f66ae334b5419b7b131f1ae46d9991fa988b5632fe1e39454a3b6694d2999218c37f0b1d622c370e7a7411fa8d2461431ad90f579cbd3a7e1541837841c880519fc7d0d482c6e9fe68699397c47524c3593f43f0169ca3ea1024bd12d2f9055d1b2c7185918ca6d0d41bdc7618cd8f288f35564011dedeaff528f90441e82b3535fad983585b9166c611f88699fb4234f84a7af7a76f189aac0be2e5464a6e6de580046262051cad6f5cf2d10cb40ab1402a2ea53d2a57aa2a03534850d8c4cf94320c679d898176f41f65d3551d0a12f324a8813d021b91019f1fb7d2bfbcaa167a623d1fb796b4c4ee73e7b994dfe3a0ff4c0a2f9a493b8073625a31183c515df827e033eaec71cd3c5c8b0b863ca7561f337dfc6626ee06dbc204b93d77cf86b1e5b80b6365d9d3c1a3f1c1bce13cf1a8be2e11ba5966d8f3d7049020a92006caace0eb198f0d893ae3f1725e4bce789495368ef738f20e59a85f6ab3e4aea69d20392e0c19115578dfdbc89fb41db5817e0e98102e5792abe9a6c23fe9ce0346e6e47ee581292c3b317c59bc2338bd875fac60b75447f0e797fcbdd3f0c067a4a8fd17a576a917d44284a016e0ef870fcb30283916fd8b9637d2afe088df2c120cb082e304e78c29ee5758608b0564abeb716bacb47dd9e147ba3f829db1f0ef9a50c181517b3bee47c201bc72e1bbc86b64c4338a237cb35c5954ee208e0d8366d0c1cbf6b376f0a78cdd4219d65b5f59a1993c48a3b66081be2f190258c9f55393ba34ace7c2fd7b48387d5c8a64216f039f8b760da25dadab1efbd0f89858b8005c8a5486a80ed68f70066a9cf9ac80dd1ad826f4e78b5134991a8cc89a7b106f0fc6371498bc1c4efdab740c4225964557e63f45dc0e4062d36e4547586b3073747a94476dfe7f9facb0c836ff3e006c21d7e6829704d54acad3e79ff76f389cb7a59e2786089c05b163437c4274fc867c1252ac14269688e0e66d296a6a2f848a54f0d6381b2baecba38c7d68dde03fe52beed6e3b9b4a7cd697d68558ed372621740349c576fddcf7d5f1b4c6cd100cc3e70eeef1d58b6a513dcef814bb2f2f2b76393c999f8e7010147d8cd0fcf2023e0c200d659014ee1778fc91e1f4c78cfdaaf1bd44849a9ea1e8955c4fa7b229ed434381ed202483279340bcbdb0cac760d8a8ea36680d61755fb2ddf27450ce089d672c9badd73c904ec7ae759f7cb61a2db84990063d7e065079e769fa33485adb421abe96bbd75a6dc00035766888b7d79c36e6afbbaa88f5c627842966c1b644bdbeb223a90370cf646c28a25d63bc66bed1dd4a9410c68b802343df55694f8557ede545ae8aada2d06ee1de808adff59e616568149a404b8a4915a0e8543518b14680c945b7cba01e32c2450e946172b71f24782ec6670d92c30878dec5a08f1a3cb989dcbc74eec8aa2f7e2f7ba4c20285b17ae26ea1aa71fbcb3878edbad0c0f532d99dddc5befbf2cc568f5425a0684f535d126470f0ed341806f4a0852ea22ecebce7e1093af6a4849898901497a8492a006e9f336c4e8356a2cb15aa3ec7163763ddd4ab160e0c1c050a32cad87f0adf3f9b6fb584eff736fe1f03bfe8d3426ff0e7ff81646d887f1043eb0766fd90f5784e9686d20479f04ca272d85cac4aa9512f2652734bd720103e619f7ff30cf5115edde481b44b0b5efbe4a784ebfeabe79cffbcaa1139172e18b25bb5625ca7dd928ff739a8a0f194a4601b74ed52b29bf9591585c59c394c623c255f9d3ad4c6ca27a76ba40b4ebeba9e1330a42cb95b58c25bb1c4545a9857e92151a06c7d84f7921f7a412187d82b6ccd96ec4a30c3d1bdc05e85e4613b0ee795689f30563661fae1c32404ad448fb06602a95c5366d7566262fc135718bbe498f06c8852f92618c9658462cf2878f925927ea5aaa1bd76d83b4b447a523bb8ee6754414eb2cd97bd150db6423839564a89d59073de43cf21c4c18742019017a21e5873b489da750db7f25cc18974c671e333bdd1ff32d0c32b8a194a9852c32a920ac67873b0e117950ab6596ecd0a0f6ca31fc226130d72f67cc4062414d915d2e8b331580430dacc7b70c2c8d4c77c2198fa0d6c7fc0cdac4a1e4f52749148014d4b6c0efba512cf659b9699e43a5f83919a20f5bc345a6475ddeec73917395d257de472c74f240d54fab1bf5de7b8ecb7402d1a903a47bec58564a24019fc0f9f3e0a8ab03bfb6dae3ce58588ec3f29c882ceea3669ba9e4c22af003ae32d5b8accc7325ce0a81638de5d836f1f25c55c17b41d8563ab75c2e745e495ccf22c60366c56d4fbc5abf9efb57645a3ebf59b1695bfdf79bf832281c08cd9ecd53ab6fd2308b2bbd0949865f217f9f70701d5f9948cab48500c7239638f497cd96f2a70849d676a707087bf259edbf2a9af738484ccb3553abcef954ac3813925132395c3e1ac9e7194c73e6d0f339b6120f196b9b7d996b135785a3d4fe3ad64cccc4979cd5b193f7cac76d86550e5140189d77d01cc80e0ff85262ff5d60430cde9e1a15a6f4797980ac1c618e6a8d1c21b8ddde56fa674c73d0efa3c155a66d25bce720e551c6a7ee84d4f897aa03c969f6e861221384cca13ae660cf4e9fec07389ef007997197846247f8e4e16b72114de361a5bf82f081702a0016fab50f574f38d2ccf32a1c6123e09f481c37335e1d3fc0d9af2ae04086a637aa69043585b1c2a357b93c5c5b4ff388d923c59032e6399dc8f862d86fec76c4947837049ef82388f2680ebf783ff9fffff0a6de1b33e0541ca410734dbe1f9db0a8d34da585d2fa9587b0fa7171fcb72635a394c76f8374669d921c673d018d52b92555af5437f5b6bce634d1c1074addc47aa6934d8054058404cebf9e2806aa9b7d51b84695bd5c9b273ec6b93eac8e26b50174cc45e2ef39ee25ce6ef3c2dac6179a18d54d4a3f04c3f5355145f3a31e7ef01f034354d73ce276e2d0e1b16a4153fc5403e7d057cc45c97c96e1c564a6214b020104d9e72cc9fcc8977f4bc409df7bf82212afdb026770fdba7117e9b2d08833afa41fbf59d02d166921bc2ee2fc6b665f3b1089935959e6c4b3df51ab1eb48d77c4b96e2bf9cab985bee1b2429ab41437527d452025715e12b5c4328d291355aff016d55de28cd5e2c7f2ccb1452390b8c409ef87f2fa7a45983d7d50e3e1bf7ce924ccc45a1d1f0761f05fe9382aeb5ffea816fae129aee6ff393d5b8e8a02f16f7ff4ca4939f0d683536729dc1dec101d20bfe7601d09294044091f8efe95de993fe455f1f56823bc0d2af9a376371580572e5122539e326beaeef86e2a22b9742b90ef99616819e89075dec4ba456978abe327c0a95e9c738a53082bbc6384b784abf38a556880026aa4b8a0131aee113cc60d3308d50a253ea0b67c28f32bfa1b2f5c6eb88baa688ebf71217f83b29b0bed3af40a50e48629f0b8a9adca0a79a9ed626926d3264f423ae1ba73f2e49fa3234f84ec6e9bdff6dcf08bcc363a5925874af95f0a648672c358298e670361e39321878584ba0dd37997d1e258881bde803f1396a0d6dae5e6f9d97959c6b9e1336be383896d289ffab2f34551be8411e28a889d638d110cac94e608ccc250b8b10944231c63be0365c3e09cb4e825418481928c9599f5b7691441b9ae6ffcc54b3bfcd3ebe816b2e944ae3daf5d86a4a5892469b99584c6e5c6d5a0b5c307c8a4d3be56ca45fa76c1199ae3d2915d47f9ea53483343627124bcf95102421ff20a527d60cd02ebaeece410562d568182278f187ce6647aace2ff61862549044c03a424623ad6e558bf293d6dd25ce0db98e998746f45b134b0526cdd648b0358b3eac137c7c83275500d42de5a04d3e144e019e01de79359605d035b82dce6739b93e2cf7c335d0ed7cea523c09547cc8656bfca571a236a825b3655bd333900524af17b6c47ad484e5874635eb34b8146cf15690018fc7d42b7785f244ee4a56de4a316745a8bc38b3c5506c7a24e309b13482c20bea3f32776f55cfea647c01cac1d8b9efb5c77880006636b9e711deaaab9995bf8d97b1c0118ac1308b1d4ecd8c24e1bee06f6b419b558e3cab31332c8dee3d65d7478951edfd4e5f0becb377390a7fdce55f37a2b85de2bc91cc52fe969c93de79ca933ef4d9deba2725b5d5192d51b2d7afe216e5c6866b599f9e908ef8dc3eebc305c89af86f363d922884f41c40b83942677b0f323252e269c1ac3aa94532c9d7370d18bc8282a5b45b25a2c13c9486d911c40d6addc72e08dda0b31d4cea546e786cd4c316f982e465a24ef7d266127e8390a7ae757248ba074e42d3d8e9a188be4e1902fca27eb17d33456247df02c7d09ba68e596c124b1056b39c6f09112d30101e89fdef5e5d4b122f9a5d7d008cd8d7e457212caa5a41a1f8be42c1b2fc050423f1bd867464e67679771d38b6448e0bfa932c3b477d1c54872002a30b91f47d919c9d1091ed1e9530e424a7aff935c854d094539c3aef11218ff89824645043f728a0d1d621ac9bd426f9740ab9f0ae5d943d198173212a5524cc4561ef8b4918363484eec32cd4652c1f719e97861bed76f1e822ed6115b1e754011de2a714a14ced6679e6adf5b61d848e8e4fdd98d791ac9c52337b2ba9265df6f426f1e4b9a7afae0bdc5f80101b3f5e2bec6774c0ab8b2f8d6919c511f6422588bb2757346505838c8045215187d3d6610c7987cc963fd7c148c7af84fe348564697ab3df4418d77cd9e8ea44d2613117aac474350382760b5bb614da6a12476321502e525765d550bd38a153b1cc9947f45800d9b1c0f712431e8303381b2f5347b5730d94a473c1cc99bd8791a9871423a9e15de351bc99743b0c897ae13fde3bb558025249975cd226277cdf4894eef7bb463b8cd0e8ea4756846e4f61164df54a9e74f98ca3e3280019c7b05eefcc4a40f57205c554d3ada98c419d2386c38c5c219d2b45139918c1aee30d293a51b53d44e037cef8bf302683a128de4408010200073358c21d089f7cbdeb5e0342d4ad9ac86d16454f7f2614d8523fd5b23db08516bd2c8de5bee1d3410fc0e510fdf6e417a7b480933aa72adf7268c87b4f810b1fa5c26be7371a5ecde9a5d5c1f1dbbd6850bf9dd9c8e00ba7c3c11fd17af8f8eb5fd76bc43051bb648587e25c5a7a213d10c7479f8f144e4327a79b442aeab4312e5f0f6bb69e1f00458821140a10d64b094196a3753ae9cac9133f6f4a6bc5d2b6487428bc30bd8d8acc561de30bd0d1cd60dfb9062ad957b3d4fe6383c44fc2626a2c5ae2700c38f128967e508248ee020c5e0840c76da06b022cd1736bcfc1210f6406f0149947ba068b14fd500763bb88f5209b6422b00476b245b233dc3611fbde121e2fb3b44a1ca3389ca90444df63aecf2c41891c1deb154c41365bad2e27d5b34f31174514d004ed95d7c146f483fe352e6e28614870970719ae7103f03ff6871f134f847119d1617ff63e62e2e65dd06c019a799719ad3c85d93b13ecd392359c3498b6487684c68064b1a6b81411aebab80c0907ee63db290e21e3a2d3e8379249634761aeb4b99d82d70117a2973f19eb952d6a227dbf40cd2a28f02a4acc577509a16188f2ad367d220600775adc53a02b01e07101717c31bf5f4145b40e6f9e168f109d67aa12b654930b27977cae89d52ac17af95b17a17b77efb7250b27d5792b38788afd72269b16b22961dabed90343d43684a5e700327189d400db23e1192a6a708486883124a726003216990f53bd88d8141f6ba3c930b4040624856c40b9907e89225b222f55668d23039316954898449a3f2a04b9664da7197f285bdfc389cd379a36d89ea1b264dd368ac278dfabe81a55911d80ee499a4817c5f8dce7607a5b14ecc587f0951c86de711195b5c9360b78505b2d79d406c302292352d25258f4d43a2d1aa9191446204234b1882421b8e1c21ebf750bf6bfd0eea53378001b82de3daa118b7a7c3a9c248bd16a78a7a7b72fd70aa30d2a2ccb55227c0d7610feb793650454df6ba94c16e58710f1d6b0491ec759daa44153cf091c1cec3012a18d1842419ec52362915fdf5506b1535ae8a23145751ab62892a96a882488bb28a5a154bec903533c36030d86177f19778172f11cf5e1f6d11ec15f3e2ce68021c63bc5c7f39435f2b111122fd06bc0ebbfc12f03a0c77108de1e85a195eb0dbb40cf6dad146bad6ef3a93876408106d08898522f73bcf9bdf4d0f034c2e481ebacf03c095493842123399fc6c48a41d32c9eb1588021238340107553c218606bcbe1d8107000cb8711cc7711cc76d5bdf6c16db212658dc1abbb5226b648f369f8db6d5b6a04d6823da8a6834810742324888d2c8d29014b24836a9ad50a9a8542b1199e5d4a54d7f2aa7cebbdcbb097aabf9added10f8056a8674a29a0821346e4be1d6a9aae8d16c9766da5369bcc394d6eda4c30fd569fa0ca74e9e5776323810c361200e56ebe9b37ddb19eabb1616b71e8437b99ed67b65fddd0e2aee536d2a269c9c93bd5ad4a54b7b72a19853cd3c42776666257d66eaf49a63880f6634dfad893a9091eb9151e41157ea6355ba1d43b750fa76ec2a94f3ccba99fa87050df9ed4331cb783d2bcdec7277fddcb582a758b6352aa2b339de0c97772af3b9d5ebf9b13962097fac94f6ebf9b931fa025c09435ac9baa9826db3663861592f205bbe8e2148fdbe78c18f17771c50bbbafbbdd8472ee9a7c1b3beebb99a793c9cc2a7756eb1913134b37cad1493daaa22b4a4d8ef20ee55a2242a0c9474bc42e61b2528de2c4e3591bb698c5c2427bb7f2e795af8669e5a2cec2417d85d5344cf166836a1287ab518b7dc2d529aa11a53911191dc1d648234d24159e481369ce7c72c74a45eeb3dcf1f3ceac8272b2696a89d8259ae34010e51945cc28283332caa54479ed59de41699a469348148f31336a127d4d4a7de57eabafdc54eaf2f3380e04f1c8a2f53485169bc59a482dde99ad90b556c85a212b34f190d744a234d5a81add9c8af089a8c53e6d1a51555d53bd3832afde9d900ca95c0bd4620d5a6c2bc40ac929b8cf63e6edb576a426bda04ad4c743cf8db924877b0f74c9121d1c494416f71da2085550420ed410052358f80e5e70c4121ff8e9c0083aaeeb20cbe1aeb9f061b3d7b50e6acfbb910e6a6aad14da0ebe6e4f755ccf39e7cc87f62387529ce77d7a9e779b46797888cf652d5e4fe1707ee6d43f49ef4cd2b19e495aec77dc4cf254cf75c64669d29d484600ed93746d060a1e67a0f01863f1287e8547d6b66db5fed9c36310791a8dcf26a4243d93d4335345eb55b5de84811862cb1cae53b4d83f18f5cc87ab92141ef2fa9d39756746dd99bfdca269b3fef4e9efe813d15d1e35a63d8ecc79880cb0600517d8200e334002022dd84112a33348e104497452cc7d24c90f28b030859a115da0220d1300020b8e64506bc20d4a76a07cf23c8b2b65b12b65ddc90830c6886cae61056d20927513acb46a85ec508b5d933a9a02b0b3cf94bd0ee48802c85ef79932f13c3d329e223ab08b7f5d669d9689986707098c900319ecf20b71bc7058ffba94c9ac934a83101564301c568c433cec52265e0bbb76e8f680fdd3342bd4359a504d9a20479b6881912c802c9b680151aeb5db6addb6ba6d75db2af79ac4628160d788d8d1a28fb16b4895e6b27e7f486a74eb61c3433a50a4fe753b742a0238831825d28e9e196b920f1d3dfb35491e29795d29635c8b5cae2350c218ba90eb47b9d33beac83a4efa87bb9d945493be83d23452d76a920552a31c078274c8eb4a5aeca6d1fab9674a38bc5443113448a1088905485ee811851728a1010a72000313d06b855a9c61007b6a80c4089127dcc0094ab0424f1124212892041120d5600429490c09020ea8b0c2cc09520a2df898210a54f84c410a21ac508324841c89420da69080a4a323a070031a82d088880310848ac0852688a10a0e60c20d889024a40a4667d828dd90c0da791b1ab6229857ae2e3ba2e4fa131b3332b542b66b6700c7aedd3a44f311927533875b7f8290202493df4dad1da17f7dc7eb66478b6d852c912db24276e8a467454f1d18f18aa3fe0703587a6dae8d16ebd893a5c57804bb8a836e148f27b97bc9d433d6f4d17ec39dadb6ba68b15629a3934015a26766534f082b018ac7eefd4ec749a6f6c6503108b167bad7ae5a6a3b1d27991e07cc0d92d0011624b1e00d498ea32ed14414828083283c51240559bd4dbd8dfa771cada693015aac9fa0ddba52d7d9b069b1b246ce5a0314016d20254d66020692956d4e3700eb3b4ba40e0abac96f58d6519e6eddddf336fd862bd757b69cb2a26ab78d5b969d6ba6679834f76c6a2bed496b6fbfaa24c0b9cdcdd25a233fd20cd6d87fecf9ade69e6dda235464566bbebecc8f32094aa6c87da44ecc63e6494b421c8672631f9d31c0ca3ede33e7019c28021222840925590a0521e5711a21cfbbc8b209269a9085f28b7c611d819226460e5529c7171cd48527692a0ea21d4444b43855384b802035de91048e0f5892e973de814ce5572a79997b5f13d88fa11c874da0cc408a6c3b88e8138e974b27a277b448c42bf6d1e26c2c914cefeec8bdb404c8dd0711a53a7a79e6d22fb39d4becf041448bf3271e80b386279149a49a4ca79a29a69c49f69d9348fd388de4996bcdb6ce9f1f22f367fe9c98004f35d008d024cb2698f0415e198285239468820ab240449e0149122df88192206a50c19cb31d4408791f4032648a5c8b900c89a246519a81632522a24494663611d31223a12b8821081cbaf0012cf080015c888209543802179448e2618e1aa529bda7b1cef613e6017924ed09bbcff3e974debbf7c84630875dbaa573cfb1fd847fe01f45744e58d21f530ab0f4ed619fbb94858dc30498ce3d87e91cfef1ddf41c5d034eb31be2283d548094951ee660020a3bf8001544a614a0f7ef4034366926da0e40290b8db2b044123600cd1a9094a98e98c20b66309ac9c6599bde95a2c361bf4726694c368be6134c9f32d37f14d1f1de5dca7e785c87c31ca773218ed3152065272c692cc796b40232c0000643b3998cc7a765df8b389dc361bfbbf771ce0094b2981f19810f9ce08429663399947df84711273c33e1b0718e5018e20067b33cc4848338f73186fb9471388438930a0894b230c7949d3e65a74b7a550c641d0e754e37fd7413ae4434763ad158d8b8817ef25889bade6e6f25dab2ed766edc44da4896434a2fcd4a98bb2919cd57a2930ec0ee6404c8bdf450a774d423e36ea8c3f14ca41e99fc54610d89840b44618e13f7d3a52cccb1fd28c98ff3288f5fff7d77280e734c72df64c7e230a76fdfb77888ce3bf47dd3f59a647a25122e0029ed30c9f2db0d736c2fbd847f98be71f2fb0128d4e17efa89c33d2b7d3f987e429dd2b97398a77de84ca2b1b9cda412cd36ab08f2a71b80f253fef332db1e2394000308a4f8401b8c20824c5ea4342b224b4260548612100941260fcab3e43bb045f99694620fd96ed37d412ae7a7c43b311d52ee7753d2006767c8bd1de5de8c4e3700e765b6363de716f4031cb71f5923802e489a1a24632d6becb9e0535432a212b921371a72739b18e47cb192334dbb0a9435f4f73ef1383fd6a0ab928fc83a04595367189890db0849b6a5bcf5084bf637f5940d1a9bff467b34655314bd41c07133da924ab3924f8948a956222a15958c4a4725a452d2cc87d248cec8e4d3e78efa1c522988c611d98c4a52669a25110d0905e5aee5121014244c77a87f47e1701e3ceaaa7b57e170a29ebafc7084dbbb8318480f1fe0112cf02aa13ba330c57ecf2a2091bb31d1a5b44b7d28fda1b3f9a23f6f07a8076400fae09512c698ca6327d11610c9fd3195c759446790bb08485f8fe49700474ad49468e2b0c9008e94a84f93f44c1426258282acb1678d21f7e5a45ec8cd512ce42e6d5b69dbfabba973ce5c7f28cd44e2369616ea1af8ee21522069686d22f5e913343089dc7fc1098f5ca9f3248d1e3eb85c06702cd5aecc41902ffaf6ab5183366f8bc256286af588720fb568246158008e252360add55a3bd6205b6b500949ee1fe94adc4ce50ce452cb3e0085078c325833bd7cd3260d8a6b50a340d64c5c8520616c0df056221a2bc2828479d15d446b94a6b320637d10c4f40932802d456e5af366694915b35cc31ba56fef4c7367f2660f1f60ae42089a2f5a96c275280720fd38858abe8f3508a72b3e29015220d6d6a0d9ad3e2d26f58c929ee1deb7330b8412d5234a933ac78120250ada6e7ad8d74a6bb13920d62748ae4849b92b488b58e0599488a3459922e54eca5d837ac08a4411e00806f912206528966904d84d70de53aed5a5c5d50a5956582a292827262b1598427d5e773271a5cd56da12667e491e92ba6461b051b7e4f393fb1f90a4b1224a03722088fb1d2ecdba09e0dca6985d00b7a30d07607db7c9bc196d54dca05b7758766cab412d3657fbac51147310e54090d6a0a62580ca3a5c8b68ac4f242877929137a44332750eb38e7212942cf9cf8f2eacc560524cb3a0932fa305aaddb675254a4b255a2ad15289d2d2f67a0350e69311a0a4310f873adebf7f982775af69104aa33f34880a51237a449168529d559f4aab3ff5a822d91f4ab32262c114333a54816a10a5911488d24cd994329af5312a221aaa8134368f3ad900dc4e35d8de99dc007e18a9939c9200c7468a3111f4c41252a8610750ec98e940091b20e10116da3083e8074504214347318802053f2ba04086300861568416ac614a2d98c10641c081174e7094240e47624002148c2064160406135881102f9c810a233802156a34d101282011628323d0846a20816a31a2b8810dce0007246ee819011b86c070c40c960044061d734976a5a41ca79fe2e2c263fd1033a7bc857527be3d4b795d4ec2b47eaf49c2b44e6f9d2f5a87dd6dbe68dd86aeb832e77047efe58e3a3c8a0478217a66f5af6afeeb77e3efa6b73aa6261053212dcacf2868b7f45b3ece1a5292f732050db6807404118a44d0f20e0c71c8c83ccc7129731977068dc9cb5c49632825aca0481c98a8c16c269371997754e64a2a234326737d5c80248a368821480d4cd0df0dd7eb6dcb757839c5758798b97b0a1e6b4eb92b661cc70a441e85c8f4d47579f0b8c82d3e54217aa6c5e5f23b7aa6df725b489400cafd98fd6e74b4fac64e6f6bd4e1e5d85b6ff98e9e895db6b4503abd965b33bdf2c389bdbf137bfd289660ad2797dbbafc5cb08e16658c069d7a00c6defa386b192949bcf4fddde8c75270ec5ad75db525b4efc9b1d89db9f5588bcbe977c4aecca2102dca24b6d2969217739117afcc520c60b721b9526ed33bf0f3386b3a3625e0288f7608a14376f53db927d782ea9d494052ee4ce2ba5389bd3d1392a20e82e0811790e0082400c3d7782211993fb889e860a3e5cae953d7291e658b2dd77bd8b116873816ebd021a7e091bea55d5a57a74589a305e054d2a20b9652f625923934a198443d135299e54442ea983cc78123c84a434db2ded44504ddf1e0ae932da63c8507cd29e3cc2737b9b76790fcfafa5af10fb58374bd6d53ba3be5b2b09cde7b6f6272afc9efbdd7242585d294a6f80e91394be69debb65aeeeb5d6bad15d35a29ecb7af2faf1f61aff8fb6acc2ce3a3ebf4e3ebadfa5a5b8eef72191f34b7dc9e75658b2e23ebd5857dd0ecd2baaa24c017f6d1d9e5e3b17d8bbe6617bce3c22ef4fd825b1f61d84767d75bdd82775c7771e11d7a9b5d30f6d1f9ba6863171e67905ca708e68bfa94cbd2993c16169477ddc9b833efe457a3e52eefebc2a357efcc95b98c2bf396eb227367662e7365b0665a2fd9f58e7a3357c6bbd775b9ebb6de725d66cb656e00bc2b3b36829915803eecceecba7d19370097b932b0cb6d3a00ddb52773655c7e382dd895d9e5b6bc73ddd1cbaecbb8b5639f5f8dd65db0db343539ec76765d94b35c994f504c4c4c5647591d48e51364ad1e3e7c8bfe7dfff29715c7afe760bf7af75f41f2d388bce1ba7d5fd753eee823a7708d43975b3c863eb4bc43179cd3d2f429b7a129774cf90a75396dd753de2d1fb9161cbae01c17eeb7ee987214d85db037ae5771b50b769bb62e4fa5f10eec2ebcf37a5f070ccb165f5e5f47790e78f57ebddcb3de785c8131ebdee4dee49a98f4354931795f93b34cde29786499acba6f827f56df77ab63b1faacd7b374b3bc85987ce2306775fa536eedb41edad5c3d5c387e11d5b29ab87e15b77f4d17297cba691b90b1eb9962b5b74e19193b93634fcca53ec8dd5c387786cdd146bf138e975e5d0bbc6fa1393539314bcd3faea63c53abcdcc2e151640ec17c7257505ebf1b96ca6af5ced321d3937cc3ee54d917e5f4829714ebf0f26a851b488bf233c99d4a6ecf5a9447dd26d2a2fc777b8916dbc313890ab03bddaf74f985a172474a9a4a669216e591e0008a2c85b2448283209936856439915a9414892c8fc4e98fcca510f2729442f273a816d4cd4b6bdcaeb5285fdf1fe7912cbbc6ccd5dece32b7697a69ee3b8db4283f6b9466d23a2665b06c7939692d78206456031f94a10d6990ef997cfbc84fa499244f6b323d717004a45cdf05a1c3f7fa77f3870a6038754ef7b87bf7de58e70777ef3adc3d1c4e1dd34f9e5742a9aec23f4a3dabcb069c1ce5395447c13f8ae88057fde4729600ac579d5c308338c4c152992c161e1aa43f00d1623dc53a370a82d24cd94afd577376822265a194a56262ea8cc6386cd4205aac2fc2c854d52068acd6727db7d719a95eba8eeaa5cf97c0a3304fe9e0795057bd4756bf8388208400ef6778555fb9e06991f0b2be7255de558f5e995970c8d36fe258c93112860896a572964f7e618347e520244c95463d70cc2080a5dca3e610074be5fd858d71a8ae0029533d07f81f2011944606216b4ab9defec81a1ab924c749432940ca563010202837399093af4ebf3001aab3aea33a0b2565aa37d601af82794aa7a39ee37414fe51e447f7d373781f08e403a9a7987ca5fa0455777572516eca95b47a33625a2c0294b2fbe93f7c97b2128ed26d7afed058fd771e496bf7ddee86f3a8f7c87824adef70f7ef3addbfcf7fdf5198e7c342d058eda4ec0b82c6ea3c8ecc3d5812669e3bfd66bfd33d2c6fa8d3fdf40e73dda731f912a66d722425c862fd5c0efb83de622ec7b6499914737f64cd2b6fef8fed47fd1250bfdd863a76c3dc0d75a6c5f552ccd1989cb3a911d8b32c659bf7f91cfd0ffff8de9ff847119deffd1ff3dea5cc4bdda6bd944769e6254869bccbeff2ddf66d88ea43c08f272a0c3e75c3da37ac386c40eafd1ce055cfd15fe11fa9f755f847119dd4fbe0a5ec04a47888ea360d5e29abd76b51c6519a776cfba692b2de8e63fb0fdb6db6db48e1d0749df033e368ddbb53d6fd00650e594af5a5c5ed75dbb649e3a60feba34c5af94ffe136eb3b81aa0c5ed366c5adc5e0412f3abb7d96e5db7df02fec4e4a73b73eb1651809401f9c07cff03dfbda3fce42dfa498e08203d6579cb0d3fbfee2d1ea623207d0d54b61902483fbf1ef638b2ab360820cd3db69b1edc4313fe015a940349f9c97fa03452d6ed3628cdf7cd46d67079db7050f91266fb0c02d82c6ffd87f0aecb0f47cbed8c96eb6af5803a582c43c617e26009fbde6d3abc3fbe7b67b93f8ad8ff081330dfd799ffee1d3573ad28ee8638babdca7128ae545125207deff64d5df0aaaec976d45d5d296bd4ed9981986b712b02a42c3308a41387f5fbec1fe62182c6b6cff7c86edfa3b0fe7b8f0c29ac18f314a958676e9fd8068d6de731cadb1b6f52366dbc2b652722802a0953391aab97f465c33b9628cb154598f46ccd1ad2f5f0c18d1b50de5a0890c4f387caa359bff629124d92f87404949f77cb42f4e947702b9dc645ee0d8f2fac16153a6921cff4973ccae0b09014c211437f381a925f0e6a147698871251211aeb1c3607274da79f30cfe91ce63e1dee26cc633a87a911258aa131db61168dd9214aa33f1329d431493ace9f508733dd69f41e19bda4311a93548822f9545afda94155a81ad5a38a5493ecccfad07e288db4b33a04144469a4ac12a1345246db7c8c8a722d27b9140d340df345239d8600ce530c52a4bc016ded4d81c889126c1cd1114d08fa49a3b1a499449b73d2e69c2dc4e5d1119d65f9cf76b7448a9c84f0839e658b6ded5a2243d9a8886803e7cf555bb3fd52adda1a15b5994a8f9400474b640601c7a651b3b5252cea5386c23e9e0cf52632e75379a23012e0ac355923fba78b406a676a3fb3cef99d21681e122a400ac93480ba065257d5d9ac5e66d4e78671a4b0a4b1ef32eb482119ca6edbed86bbd65600e9e911a51900123459bf7f401ae47e034d1a160f413141d250a44a1b9a34ba37cd42a652c84d6b230d1ae9126a2db78a48272109e0c392a1deb7344aa3c29bcf3f3cb6d03d3c76900e3e336428ec63896c48e48bfea9d228cd06849484dc678120104d7ec00a14e90914298fdb1172b7376b4b246f48c8fd4d855305528b326f546c53b448f1905027b564c9922532d5c76d8acba3fa8f0ea0aec2610ed5575fe11fe055b8c8bc9481a71f0e94ea06476a1a016e4094664322637d28b829e406daa238b9009479dc906c3e94a6e7e6e393fbed0149a343c6e6a40101f9020e72899ca177439211e496e20d5d0690ca9cc8e304f2832024cc9da99621799de2336752ee9356cf8cf4b3f583136f67e256e54e58adda23fd9c60cf4cecb5d84a80633dca5e677afab1d2733d7cd43c6416e698b2d2a7ac847d3c59e9f361fdac4fe5211b2861496394b369fa0dd7fb50bf43cfb5d8f30379de6ba2e79442b97a74029130f35b00c76a4469094fae934a2788e9ec6f695f5e172f621e5f72bb90f656ca4951d266b0cfea4bee48275fc693516e1dd85f7f619e57582ff300c41c0087611687619e6a841b965024e3c9e1451429e988871d86796061c538625cc6618877711798e7c5451ceac4601e7b8f4cbea349e058bd26862a153d33fa60014954a9e0364b4d35d3f6f9d0ba0b1e6776f9eb863aaf2e62021e14c95eef91c16e28629e170f64b0f7c83a16231d9b13093889a6d0b2fa1f268d2d57a028663257914c49ae9f47006b99badcf5be9d42cfc8e959ebe55a3f5fd49bbc5b93c9e49d7ad51e31c151bde2ce1ed9260deef6a749c3b347ae35622468d218b973f385bd9daf2ddaedd634b9ebddd37cb1adba19d3671d757896488b46b6edbb96c8b54bb478e4840470e6ef2a1feb604a27bf1c217afa89759483dba9fd767a4d9933556e7e3bdd9938eca1faf61c395fcc172397bbedaa8bb3e5cc7b575d9c79cfcb1b7747ee2bbe947dd7cd2fc77bc595cecc9d861c0e7b98ce3d87ebb89b33cfdd7471660ef779d3c5e13eb949efdd91bbcaa45895448ae99652936f37611d5e0ac53b269f7827755abd7cba4d5de520ca97c2d507cd2747d5a3eac90ab5dd722f51d44b1b8747d457bbeea8ae7a28d4ed5f5e4e4800c31b336f9f3bdec461cef7faef158fa7eced785fd9beaf7c5ff9cabd6fdf57de492056eee56ab256884ecca27a5df98a73db8d2f67fb0a1e3d53ee6d863d56afcf31b1af37b93ce892253926af5f5d1c13bbba38f53d8fdf5bd863bb7d0e375fa8ce61395f8c2759759bc3e170b8b6a8ba55e55c1caf45d5e597e3fd1b275eb9ca5f2e98f11d9f55bee28e3eb2ca51df0d2ac5fbbe77b6d6331fee49e3bb0ab644be6b6bdf3f9c9d79d9cc1269913a31cb56e81bb98c3a79c5e335dd0e11c193b7cb4943f50d8f379ca79dc913e038b3054eb24908c92a078f3ce812a4ac5281299484f9bcee2461ea470a98244c3d05e6a777c71fb2bd2799fbc91dbf7376c8e4dca431b10e4b94b769fa4801d5ea04e52305785080c75c924f37b9090bebf0b2bd41b33dcd165be024f3a04b94e45147feb08e93dc22f7d3e5240c07c31de59e240cf793db4918eeabeb4918eeaafb49180e86bbe9a6240cf7794109c3c170a8d74b9d98654b84dada87437335029444199f13725de04e59f1fad5a4d1b5f9a25f2bca6b7de77db2e67b3d4ad6b05e9f9235a0caeb55b2e6e5158f3a4e32fedffd5a21272420fe6885e04963355fe0acfce4f59efc94e5135850420d0f93a3567742d6f0501d41d6f0f08e44d6f030d927640d8fc99df5be4d82ace1b11d7c0d0f7b15fa17ac9230f57d950b4a987af0a6244c3deb7ef79330a7dba5ee09e59a505f716bcafd4afd7571147e9b702b93eaf6a857ddbb3d4ca6cfdb8343a5720df333ee488da0996181d45308c01d4d539071476a04eaa37147ae86071b770703c418519a90c5e2b6cf1b8161901627380456eac57827730065dea53c7a1b46fd746afc467e0dc0f90e38d4d9612601640c49b21dde23b3e99b1beadc9c87f38079a4184a20bb0165ec65523e4f4427229a675ee131023935ae40d6e577b342458b530589d565300b247b5924a956b7dfb15761d5eda7eaac8fd6aa6e7d507dc75ee636cd2209e5b305002e2f1e7365e000ac9879a15989bd66e42000580d0b0b9146e8a285ab05f3937728f7e4b2409232323f39ca95b9caa4645820b14892c118c60f5e4162dd9523183429e67d30cf02a96746183416493d33c6d05824e919d3e759c0a0610be67c3e8646a34600336866022023e60500605cb46011b321c27278bdacc0f7f62dd7de755b21cbad12c65adce08d13914bed940470b44329fb971d5a9d45751648525cd5ef46a69b29185920f950b3cc5f00c91a2b64d4bf5acb356eb6d8a5d62800612031ee380c5acf843960b67827c6698cf757aa0be332b73f7d7555498032b757bd9b329f8c4a060fe1e12c9078c037efaf46cd206872f9ddc4b84dc378d731de39314e71e813020967316e7255498031c0dbc530c5e818309284b31b02a187f1b17bfe000c67df097d643e53725081b1c495180b8bb045cb85eac200c0e61e5172bfca9ad5f1c7937fa4b94793dc6f5963f21e55b9c715cafb53d69cfcf5c6a3cc63bc93b9618c1bce42202dce18f63231b0046d386b9ac922a945189705920f663d33be8a7c7a66fc432061909ee95e4507f8fc6b312f0000e3a2058b9808cbe1f5b2025f1bd848be4b8bab15b2acb05452504e4c562adce00d6c43f30e57ca6eae94a5ec509e4785b3b132914716dd6ba3974d3068791e20e7c670934a8ab2dfe14a998d2b6538777692c1d4b8b3938c0552f813028544c2a19028440a935ab3964f8bd6fa6901b588b4925c331711978f8b1616d55a43612d0c9ae1ccf583746454d422caa1509ebfb952566281c4028985923c69eeda33c0bd910dbf368d401d4e8c6a334e8c246da39ec92753ccda5594c552c2f4901dce22498bf32c9028cdab6807fc6281946751f8a2853fe12cf49939f5c8dac7b68141007124c410fb791b946686c522c842ea41275fc61251b694a65e4e5953944b91d2985cc67029efa7701c5010cd2773b3cc716fdab3cc9d48e6502e8bc6382293feea86db7b64f4b23b7dbb628bdcfbc6d0188d71733e0194b2d54dc4cca9be6db4557808bd4d2b6991c3d131ee1c1d39ee327a6d2d88bb25c2dde4dad018f7d5ad5180a10e4e0a7556efafb0a5d118f7b64099fbd84999bb0d3a2589431ba098c9b889648f2c12a591b41f20225b2d88fb26b40dfd702f019586b89788702fd56c12d17604442d770b62a0141e4b4125da87c7928f87c7d2acc3e39694b94bba2165ee263c5a23295f38bc53223af53782ae8737cbf4610e8ec6fa3e66fe01ccb9eb2b8df20425ccecda501375d10c8888d0a443948816511a49a446696450f531a2495d336aa221a01f9a4f9eb38c44276582cc53d2f066592641091239ec6a8982f42c7ac9d19a5763e60eb431e595dfc1712358412095962369441aab35dbabec42aef20ab9f69559a4343668ac9e05b638e403cddb4b57e639abde9430f236e4598c56598e279c8333dd70d8f53c3d1336e631b37c8f59efa367241ec2dd1d3e88e839ab1c3e8193d2a653f6ac25241d486b3dd99ac35bcfd9d69e3afbd2e23c6de286b916b9cf6f62f7b436ddd86ef82216bdd19ed62a56709e35dfb39bdb1928a5b44a18ce61fa009cf132a382e3679cf4cc18d39a514302031094723d78539f2761eaed0bcd619a94289de338af9402d06bd11e75ef5dd3cf5e950dc051471e4fb20d024769644bdcbf1ee8123864148e71d1a287c516ab044e3c00bd1310c0ef9e34aa12c6071531d7a2e5e8105ae20cd0b1fa8ebbada592b5dc04755aac1567b3d133f5a3492e5d2569208026256b50dc2db6e1ae8dea03721fa590015aace7317377044c1a09902fea2b143a8fd209b93ef55d2050e75e65cdf7ce5e205a2709683fca29e0fcd0b984ab84e1cea1ae94228767748d9a4b3a783a3df3cdc8efe6c3122c95b00f7a432e59b264c9e7dddec3de1034ebd0e2ac3374a8253ca3c59a6bb6cd95de5687162bd862ad9fd1342e3a565fbbab9020595ff9b15aac2f89e048054948822004234f02178a3c20042c108942561f84ad428264f4ed75039a8a214b08c9661f09ec911a9450d8daaf364f7593c9f4fa6db8e298debdbb6953b754e0e521979ebaa879faaf74c7492bd1ca9d7c70f2642eddb1668ec6e4f5db35b9b263d3be74b75ac1b64bba397bc6e8402528cf92979c149a525829df713d33f6edb78fd6628eca797a8fb37d821277568b747c299d45f502b0542a955cb428d2d3bbe04e71e56274d0c91c40fb9ea9a8cb1d2dceeb6871d66aadb5d66edb367d3a86e50cf7f90229da1f4fd2a06eed0c0264facc9f9e99b417c899990229cecb148abed0ef2f994e5ee7a53e1e7a66ae5f8ec52dd6c954aab2664381ac319d40d69cbacf77a87f1fe6b197993beabbe1c08f879e6c51f6169f78f6033bfb93bd494a181e6bf3f68ea22e9022dc3db02305b2e3e999917b692b611eabe27238ec6d1fd7e27c2dd19ea552499a50b2669e9ee199b3fe6e360ca4676a90ed7492fba7ef864c0ba000838b933cc516a754c2d3343a84a0343f746ccedbccdb988f9901f4f50783ee6e8a87d457239d7c395d2e91c7f983842428b29dd9ce1af014d131a150a86f58e7fb09f37c37ddbb0a08aca7ed26a8a7eef7be4536dcb1dabba679d475e6761ed3e737ac93fa877966d0987dea26e729a2d337c13c45745037611e91c6ec5158f214d13179631e937b206b25aa2e6556ca4c523c4570a830cf94a19e3a787fd8a031fb7a8ac23fd098bd0ae8074f110548996ce21fb208e5cdf707a6ec16d1996fcc53244c40bfbb4ebfc33c45b08f4eff847984a031fbc6d387c6ec274e3aeaab62209b1fa78f94c917dbf5d4b654e8e4cb486b592251829625122570964870104576c5c088b9a8ff40556e5542dcba32b7ded9f9b5acb5d68e4564aba2f2561d5b97debe7569ebb6455badda6aa9b45a554545a5d5babd2a311775f9b56ed39d14c12c4c81baf7f4b6c8278ef86419593e2104a26c7fa43e48ae82cfcaeb5b0fe352d4d7037de5f0d77b7267e2c1b8f5ae1e1a87397875fc7d372929ae3bf66497c438a8ee7a5d2e3f9bb62e294fb90d755d96a75c93a32ebeab17ec395cd61d7b32eb5fe872bf77addbabd5aa5172e89506531f8ee92aad56eb7dd477d31583d9b6cbe5c2ae7a9785dd9dd78bc8d55ebaf0d8935d3098eaedb2697b170c8f9d5f193fc84cbd5c7807fff5fab19b3dbc3056e1bb70f8baeb2e39f5fdfa76c12e33ecb6ea2e2e1cfb46b95c2aec4241717d9eab3b825faf5103b3bb1bbb7a78ec0fe38ff9e3ba3bb01791bbe24f97bbee1a272d8faebb58d8ab0b6cf5f175eb72d7f12dee15dee9c36e3fbe307e37bdd4ad84bd5d18778d6fff05c3d5e5de5d3d7573f8bc28e7eeca6da8e98716bfeffbf8559815c1a4e1728b778e5fae1b29af9ffd70087bbdcb5d5cbe7aadbe72658bafa3dc1c6e6d11bbbcfb70ea772c1ee7e9f341049346c5e3057a727f65fa6e567d6d865d99334c038ddff7955233ec4e7c9bf660b7d53a103de37aab75952bf314c1a43173ebe14d0b4b7006717139ec8e3d19f6fe6e6038aedbf7e47a53eec89372f1e5f77279caedc97d7d74c6788a60be70691d76d37a8bc7f42d2d2d2defb6638fcc2df7f4767d14eabb69fc03eab53b79a6afd4f707dac3f2da6d7282c79e1b1322ec6dbabbd6ca328364131316934beb4d4c4ca889890d65313161b94d5396be26af97e5f2bb39f9f6dd98b0b84daf5801ba48493112245370bd9db57e055dcc1aed9916474aa248f8ccaef3fc5ebc27f7e429540b7a71f9b641df60d29825982fe4e5fb039266d2644c3e26c25c7e2ae919005cbe81c81a99250c40159080fed0eea4c91a9d27141246e230271c22e3335b6f884ccf646021684c9ece1c0344d674973b7a06c6e57df44c8c8797df90408a47d07af3f381cba8cf205d6fbf1bd4e9ad7fb9b3f4bdd0db34eb0078bd30a73832c39c754398cbfce21df560dc18ae4bb3fc7af81e03f77bb20b751838d6b5aeca0def4cf201285f6faafca4cc89390caca3452ee6de756dee2ebf1a2723e08b2b8116e501708368511ee602d1019130f24270dc91104076501a2993389d730906a0bccae58acb1542c0dce2531cc92bb24422450db28b3b331012b02dcf5b39ac054ba560b015b09195556e3a7d3738b4b94513e516efa60a08e6149087ca9975b44acae52157bcefd8cae0fc6e54567cfb6e6c800a4a500128b778cb4f77e4b123b738f81577889a5be01df02def5a2e7d57eb10358f3bf24edf35768d11b4e9aeb7d5d6943e781beac23ebea3459957809885ecf602488548d9fafc6e60ef3ad8ef1df1ef5977c467bd5e2d2e2f2e18df97cbfc7a69b5f00eecadb3eed872d6ef1d5b7edf554b297edff18e8d77ea5d4eef08669a82472f7b5c0aa5b6e5f7751bcaba630bd6e123c37678f0e4d765c69707cd2f1cde98997e668a75d05b1be07bc39cfbfe7de3dcb38e5d4e61adeec6b0bbc8603c7299c5c263cbccb745e6f61d616fbdeb5db239193c692cd8ef859d75471d3e72ebf72e77d2e865c594bede8f13a907d85ba7adcb7cdf9f0f5d0e29ce81bd75d85b975f0e2b8fadc36ed3b77518de699d5e7e3dd8770b8737dae21d7af08d7750213d43f18eabd3e123bb4eb75af1c8e5b1e5f6d6f523530ef4187b4693ebca4c29124f8033af583141bcc265f5661d769fc35f2f4759f182948494440952125212253baca9aadc1b5e1f35bcf7c547bd7f5539ca6bc5cb59c739bc5e987518eb30160c0683b160c7300c5bb182e1d5f1ea7d572e1dc6f8f5a7937d62e52d97afe03067c5e957b8b87c65c50a1797152ee08e4c5b5a3e6a5eb969c55756f0e8027aa0d772f98ad61d2bf651b3cbe982b93d93ca4bdf0d0e7350f28adbb44a0b8f5e6ebd939306add4cacf078b4117d6e9875baf93c67debdba4017bebf5568b22c990f130c765e0cb5c8ec6642ee35dcaed737827e3ca58193229354fc69599b58ae98cc20d94db1f210d432d144b996f58adc90556986373ca6d4e49799d34899474516e389166b3591e62e699e4430bbecf02b863e615a7acd3155fbd5b7157570827c0151fe511ce8a1b8c7b48b91d2273d80deb6197f9deb0e21af75d7b8d4493ec3744e6d2a65c74dfcd1099d7ef86c5f5ce2ce3f2b73c877732f79efab428af7a01782fb3cb39f0dee4e3a1275f2973b93917cb68519437313135a45a4502f6c749bb115b94930be0487d640b9e4982f48c6bd664ed076f01a46fefeb0176ef75bf792bee2f3f9c7fc56d1adfa653aecbeb7569d1e5e3cc2ef5f62977a7defe7002207ddd711265fb72814ca30e407fc505e273d90bcf293a263b00e3a422dfb8562b5775ad5c2b1707eb32d44a33eab6e53a2a3aa36e93c144e70e0f2a4da6efdfc9eb4c3799c21cd38723b590bbd33db5019447080a92e51334a0e5d9f9542bc76ddb56eb66edbb52fdacd7992c773a7da7532977ddfaf3a1f2a09b95a3778eebe84d3b76ecef3b79a7fa6dab37b475abb572dcb5964a6b37a9054a297db779a79277b269fcc3c2e7708fb8ac48cbe74fd00f8a0de3cc1348eaf2bbc0ccf5f975a52c0152e6811e179899fbcdea36edf2efd24f10fcb7f281b769ef5d176edeb6759ec956cf9bdbc66d5b51775a035052e68e7ca8dbc7792993a79a99f3baaf66d3b91b95cb0d48ef2949d779af7bef8c62c8a44bf16610a599431deb0f057960c7ebb3ab49ba9a044ca21af2ba2d0dc1495227495292489b5eb9337f05a733eaa40693cfa3f794869394f73b8d6ec00f0ddfa752b36c02052f005d2e7dcb9d462aa48f15856a756547afebdbb7c2938a59740649f19db2973b8de4378bccc03209ef34ba49e159540655c865e9c418cc90576e52f4b2fce4bbb933b35001b29c9061e6f09ec6008e928a995b1fc52731802a1f8f9951deb57463307d353aa3ced28da1cb9d8b8a0937ab872a26a872f7159c9987e0b7564158e5ee7e4be0ccac72d7a722027e593e01b4c4973bbc72c3e3934f00c12095bb15dcb671dcc6711cb76d1c4adeb64c5f1ebda7a314ebf793a294bf2c9f008a82bb35a7e8bb151e77b9ec7d09906ae0415119c03002269cf082ac7b29712ff6657b31bdbcc8a62f33851a793287e757a3f32c9a5184012cf990af8de3b68d3b799da9d6cad5aaba320e3570b6ef7c74a2bdc974c7eda670b32c1c6732dd6ed672a8d7a35e5f39ae72288e1b6be875a6ba6d274bf369dbceb2613b37d367debe1b2ad9844fab8f9ed9b84f1f1dcb5743c621db77301e77b92ae90b6acc40b63aa86aebccba32a360992fb38f99b773e742bbd5cb83666b39eedbc693c31ceef5dceb667950bb15a12ea5f6fbbefbe8990fb75c7202c3b6dd86d58676dde9a3f7b1fb680a4fb8c629871eae71caf461876b9c7268c2354eb9f3cc325b1e3cf9744f5f00e5134724e5712e9170a821b3904df7d1331ce743e541737d9d453d63b38ffe6e78d4d92c05d9c7a692373c66209b6ce8289366d6d133f420102559f6ec3d55e043f1387327a17b01ce4b245ea0a2674689b993145fea9b4679082fcff751b2a6c79c651e05c8f37536cb33079ce599e7bba893f9d405b0eb64e67a46524ae7bc3961620b390252302d01cb16cd5073d31d20414912242809c3e8e531744850726482554a18ebf9939bf74e5af375ce3941cebbc209891448e4f185fc4c260fc9d1511e59ac8d063481b8c5da7098b3bdf491e57537997a4ea3691b8bc8a76953a6a3eed9d4787a89a27eba634fde4c3b289cdab86f2713dee62c8fa7d31b02c81d1e4d2f6d5c7bf3a71a9b9430a6dbd09f3a148afbc63dd5dd744fef6e4e4d369d3e6e2f3d55633b17deb829751a4da79fc6ed7e26d34db887a984da5ebf3bdad7994fddbbd1f4d34ba69f3088b991b31ca599b24d7a9c18e83bf7a90aa0c4dec5531138c66424541124f763e4eb59acd6cbd7c3cc14bfe4fecf62e5a6975d450866b96bc2c7e8942b2df787835790bbfec91d7541eeaa90dc6d5ebde3968d68620c5164fa2a6b4ca7b7b2863bc55bae97d93444cda673378acc23954def360f89dc840f52d3533d9d4ef674da4ea7d3e45850634f0d72132140412edd8eeb5e2ff1cef6ee3ba8eef3c3e977dd519f0d9b2ee5f5b0bdc3233d15d984a584e1ba14576bcf54b97d474a17630fdb7b2bd974e9cefec4f207e0cc94f698e62604231b2d6e2c3f746f33c702d1e2e4ba621eb6cf6f73829f17e74156146a00475904459eff41072044709e352f392316f4a96716a2c549292844c766a7c3deebee648328993010dde99463710da28100a2c5c9d3121042479786a8795e3caadc0672aded2f3d335b9c2fb3ea38c9d6b604e5d6bdab17bc5cad464738eaf306725d9bb8f9520c0d028edc04bb3767c263f7ed5d7741ae9e70ad3c39ecc9d8bc8b3cdf1ef8915ec749b6b4d6536e4957ff92a9fdc8da2e694abf2cc9d8cb4b965fa5b49b60925c6badb5caa416655b6badb573f6d8d94884b27d17936dfb509a12f70d286606f591211c8dd198bd7d0b01dc46ce1ee9192e1bc99abeb5424cb6b6b1e948c2d8d106e5f046f769363542be589f9e09d233a55b2cdf7d3b672b0b87c70d20656b83b468378b471d968601a33ccaebb0344bcb72454f69360b4431168b89a228c644b166719a3ad0c92e257b66f6a474266bda1a019b0d20eaf4bbf9ba947cf988e41a54526dff8efa4ee9dd0deaa6db9d5eef6d8ffa6eaa1ffd3e3c24e5b5685396bb79e7812714ecbcd2bb9cd2abd7628fdca9e575e31d2b44935e3ac8f2f492b672b839bca339bcbceebcac164f5b680a3670593801dd2cdf4d1a7bf95c3be681d9cdeb550b44273611cd8f16682661e6c927049c51396905fac12c75a746bd9eee23e7d877475d1c8bb7777814226f78e450f4df9d79bba38fbcd51c4e885c5fda91eb4fb777bba4a5be95e3e68b7a714cdbb98bb3bdd479bb8f5cf1a84387d7e3cdea824929a5548757bb67cefcbc15a69022620b02794acaa4316b82092f74f501519c4a5ce5b839279d9ca4342328dfdd2b690ce7e756f3c3b15fbd6b6ffbef89752fc6a1f6a7cb7d7569ae3a004fdfe4676232d9c0d16247e301870d1fc8219cd33d9cad06cd26cca1001cb993139413247e7a2614b2f275e1b56fb5eefc11326b34dbf8a80d4a236515e5e425938e1d42985e8b80282caf9f4682e6919e610da13a945b7aeb9e9c75e71195943b8db0dc59a3d94655919985e6ae6bad6013777b3ab7ddd6b36e62fdc574931be6989cbbc97bb2e9aebc9ba08d16eb0c0a0e6fa0bcf492ccb53469920773ea843c66a593a24ab9846d103d13e694ce72163cb65ec2610ecb6833cb7b724f06a2c5ba80d25d8ea084a3ecf2d0e6ae76d5fb61a7f512fe21bc517af810ebd4968778d25eba13891ba5bbbcbf9c96bbe0317c0b9e3f2dce8904585baf2daf9f48348d95d54fcba3454ad175fb5d0067e6d65bf04d0b5709e3c263781b5f8d9a5b6fe19d10873941e09839e64711965f1c93e31e1f639e1ed9c5e2bb92eb9c9ccd5554984373eb34b7c622b2eb292bafd7c1c600a5b3409046081a9b604bfdac4d23f5ad3b8fb4582f44052b38b2565068968d67103c81d440caf2938f36b7ce7243949fdce5c293f6d26b117064addc1d2d1ee5d4991199e527373cb98e93cb8252f1a4bdf43a0421ee8e2558b09462ab4a98161e591e621b2d56161ce6bc74168ce3860470102ddecfdb2f070b73b6c80b8a8656aee956c70645bdbbfccec223885330ade6e0627c571c639efa0221c856e05fcc43801104214886514c4c27580793ba03f0f4cdb22aa762b15833a84dfe706a9e341c36e4d08a1cac393f9d97afc03c72095790bdcc99040e52f8c82e963446b3ea823d6a1e5923f75dda289358d6a4956e3ad0243269f367fc81df4d90abb4f953ba538812e039cc9ab4d376fc0d832f9f972f975f0e90c6e6f1e5a7b3e22f982724826c85fc74ee31e6914bc8021166b28b4dd64e6b6bdd4ce7b6d246aba226e46a581233b48c73f9167ed75116491d04ecb7289560c82befba966d70c1176638620e674300c757d1101efe2aa29f3394425448c2cca27e45d1332acf624e0a7156a83291e96358ba22254cafd0185208061d5bd7616979e5dd090a70e695b7562678b2f29696ab287893d359c2182b29a1cf7c08648641f294b93dbd3257dd710348a51b31de2b18a77685736010b101a4dc57dd86aaeea8bacb8df1ae61bca90faacb9c8630708e8a5e06c758dd51f5d6e932a75b1ce3ae77a52973fa7c389de29dd365f04ecae975d83b5a95c7c0296f3d5c49c1b54515fc93533cb2e0930641103ca1316e65a8054f683f860c1e4f569af5938ac7099ebc4fde7f1f8afe5c7de23067e5f62bb7783c65d58eea2dbdf216d55b5aee78655a5aaeeac93296661fc3d264fac64a4ebf058f2a99c632b717c663c4380c2c5b8cd139c61d63d4e82cb3ba3dfde4950cde517de5630cacc3d2b20ab7bc751b0ae67bc71491710348b9753a6712d461697988995756300f9845928ecdcf152ee3dc1d5a3804ddcd95b21dfaa724400310c0e732037c6ea7f9888aeeb5d71a501b0a64908290188eb0625118ad90864269626834366960d0c2bbf2d665f9eabec834c6a863f33060c058b92c922e8b24f4a9dc4d0fc66ddd98296ecc2a45e5f3306828292a3060fcc0c0306845479486074a63e3f3af1752cfd4dc82d6220b241653bc8c5e453db3fafc2b8a9ea11faae485973d23638e6ecc1453b038a2364e6f9c52ba795406197e60f4031c5920550105433436bf2571440c88a609c016b048b23e00c718a32107788c51cf4cd13347b226c6c9a5a411439b2fe64f2ebf1a2d168c70f593166fb8c2354c9962188f71189fe04f14074048c2cc8bafa257142f2309331f43535df5b1f32b88d2d8e001046f701c96747c05e5f9031cc3994b90ac9991e7fbc3a9d96425c94a1288b372b472c47120180a913533cf9f8640139b3619ad4f1ec3d9c8e5b1e611cc230ba416b4d1451e59208d261006ad3261a206b84078380ece3de2321e78b8459a7e4b922715dd7cc3132330faf1c28993bf20226b5682a0bc850fa501c2c35bccb740a267543edfe2a76752a8ca8488c6e64dc2cb5c16952b73d68b6c7978476f4bf6f29753ce82ca5da5b56795359591f859b93099875b65af224a23cf42444116a23c637c7e00c604c131408cf2fc8909e0c8022906088cbf00824163dd18245a9c31428c28cd8dcfb31c519a037c9e25890589d2f0f019538ba119011c5990b0489235aa8e9b9ea97a9ef5becd437d3ca4ac95b9cc599034cbd0b49687db1bb707b8b5f652e6c62011d3de0463a8d86290628c5a9c3153d46e7a5a7e673f1c536efb21361e43a33436f0ab88c6262def702591101a11254b88a1f58c29bfbc3fff0249d6c87cae0ee3b5c62f46128606e0f82a128b244c0cad676290e819d5e7637e648d8c8b57118b2209332765e1b304f037ee0f306fef815a8cf171e5c8a5266194008e314631314079dee48e2c948c2e4eeef80207636522068c3b562686c02a13c393b181431d1b930655c8e047666387ef8082185c8c1d4e8c4e8c5668293792124325860ba605002e2f1e7375c00358410096f85280974d0e79250693b1b460d10a5dc4881123861723c68360fca85c18b494fb1a0c1a8d9ad764d9a6000418800e312f0000e3a2058b98780396c3eb6505be776971b5429615d601524502f8894faa68e5289ced70a58cc50867e12cc65d6a9fc91a4ec65b66b2a67ede45d43329f167b1baa689310ac0098aac51fd19e5ca88f9814a9542f3191f61d0609024cc7ceac2883f087216bf009230f3ed03d5bbf65229b7b725c71851cff3bc18a3192fc66806e5b24892a4826184da0838c600498901d233e32ac6e7e42a5046952dde9139b5b763c4380dd96107ebed706d9c7e383232323232329b8ccc86fa78b851740001a48a72ac6ea854ac3316b2a0754cd1c800000000c313003030140e888462f16840242b22447e14800d99b44c6e5416e8490e43c818440c00000000000000002000180005759bd20b52719c0bc031aa37fd50e3716742ab084498bb5263a05fba855530724f717ed0caa59cded7c021fadea32df8601aa5f21d93fb57222d828fd3c4505dc8941e4097ef919713cbf2b30749afdb5734fdd84cca45c9275e0b49d62dd47fc4c5f571fa4a9530a57772abe12687fb54652d90ae201baefa6b9ed7db23aa02c5705964d96ea0543a468d232f58d74cf50fc5d91be939c52c5208e9464899c2324516f46fbb4c21ca4e2f0ee0840c2cd95749ce41ec6adc10bb3161a0ec4e24fcc62a5ab8ab7480ba69cf2f2a921d15d6eec220cf51e6184100fb0a0633149100abb223864d960491ba6014c797c4b179d5ad3be10a219af198ae0cb2cd544c4996b287452e2ba6430cb4f52e698143a64b3b02574ce670d43a27d8e2df1788d99093c8cdd677d20971ed9ef5c2a644f2bef89b3381900fe9044896b9b0723e7f922954bcb04c31d76e4c22283964f2fcd304b5e22f861c8be8bf68aeed168b07cae8b2090007d1a4cfb58f1763f0880e9247c92f842a6be17677b03677ff05897f43b5efcf426242607b2144baebcf2113a0dbb33ac9143abd0a9895a532415502608cb0e0c7c2807799f8cb0947300e34a88b48b8d14598a56995dfe67721d743982945cf339b76476282412d5d1bb04d65114788d8a831042855ac9dd56021337940233c4c4d8dd74f8e4dcbc2a919e5bfebc23e31a828c4e89951189708a4e7a33c52cd8bca958fda145dceca588661540e719ed80ea2b1d5b3e7561f5ba36f82b2f18091e2a05203639d24f98a3e8274e64864e35ff013b8805b7026fbd1e6747339618b6454928be61ec10b39271fc62f7fbf8e15b22d8b832fae7b0d1bee5233a5a326e60db4ae07d365dadaccad30cbcac8e05f7ee4070f4d5961931289e9836aedc8011b8113af03ef299a61dfc55691f44eaf8cd866a794136d17c9d8ff20f8ca8e56c0a5d48d9b88052fb30a43d62cd14467f44e8630532f2f5cf1843bce6d81fb285fd14737379f251671d9f0b2b6945ae072b2441abbf61c0d88f58fa87026008b84d54c546300c7dd5e9daa3405f25e8a9254b376ef5b23dbca108b7e8f87c509b63d6c62ecf9064295c667b6505c7f29f3d4193535c7c21d360a616ac938a4b9043fb72fa060869af7806952950e3e54bd69af5f746350687bb692024bc1f8a52c3f9558359a075f8b04756c07203e926147005d3c1760402e5006c54c01caaf31a78468e43ffb67db831bc6add04dbc1009b0fc173403e560c83931e9bc83ac0254e1d7f0492e7d9a5f49569daac77d80dfaf5cfa028f5405cec53bb218b58c9252b1e4b2a2117f13af7f47c625b340374d9cd7464106b6db6a7ce1ce6fd4da202099e71df7089dc5fb33b0d2029d0e2bf5ce95dd93f4fc174793bd3ddf7997c9ba941bd1e19ef96085b327bf9a89c20ceaac37fd0afec48ded1d40615a248636ae12512d06670e38e87894224b9afa430d39d32cf7c92c5510cc13db8358e2e47b82e3dda7ad65ec64c4f03f2e90016eb337aac77b30513cda988a68f7bc6b285dc993a0090755dfe75458811e46e2711e62238e2238f375dbe7912e76a0dbbdf345532b9853b28fed2f32d1a9dac7ea6e558eb2b72f2838129385c06602c0956582f323930f34b93afa988a6a9b99e0ad12e62ca526e804f58092c4796c0865fcd2db1b57ae097b0979f1540ba2f62208ab8578d40f86e64ade1e870e4e4bc9e0f0d5911b0a5f9514c178298e93cb94ed8ff7db591c96aeb66c748457169cf7da10921bfc71c2c4e60679f89ba9b100798c1e53fe97a0b81de89eab9934415ccf1a10536bad3ba42f747dc2d396e65f12c151e60b7d7aa08734c3f328d53a2267bfaf28253d7338a69000e9aa5e140e7cefaa175428e00d83a49d3b1ce6ea2238d85570971c5cd9d5c7745a491a910196bce2981aa2889bb9f816c9c0422ac98e939169680c47aa9f5d0524e3c0a49196ab56a926d4ca1b28fd31a19cda388cd2617af7b65a48342eaf7eb8a691536c6490d68b17e63b2e5ae43aa37a6d501abb9512ff73e26d4c935b744abb02c3dbb4f91daf91c95f978900d357a54ea05f157af4de4b5accfce7a1cf281210cb03d310db6df51dba23db47c667f7d0eb890b0485ae7d7af1ff247f74000d8b3bc533f025292cc7611e10586a826e05cf4d7f7049e30ecca78d950575b609b96a4b9e958f961394dbfeb3fedb736014c46cc7160d75c39407d4dc79caca8233a1cade3d3e661aba5f50f63b43b59b6c1ef8cf7ca1e127dfb1a8de7c0e61b20fa392cea66f869e0673120a2ad31fb3db8a8f75e11ce2ee5ab6098c949d684cc364b56abe3586146a3a73dc80c445e55bf9b1bab5a32ca8365048b655043bd25b485cd39f05aee5bd3e5dd5dcde3483b8b81b682942a76300c439309d6d69ed13dfdafaf7251a9d4abf60f6e604919abab4fcc481e6e8bc081210ea23cde179509a5c3f1cc38b2f7fe8f0a4fa02d5f76ea0db730c540ba0b6794bc980f26e3df2d10a41b3cc6440dd9e93816b1c407c2102f03ac3141ebb81ae3b11550c07f45c72725048ae5219416a807aa43d4c306256fec7f1fa4cda0bc96a7cb816a98c4bfd53bd74eb25da8b24914be7797cfbc6fd0c346d650e1a710c53727b252739e3d9660b531e1f43c6ab04a8f5daba1f17a55a04dea4397cfbbc7ae7c9910bd787bfe02791700f7cbb7f7010357e1eeae7853038b3eb7d58f03b002a739fc32852f0fbad23d00cb06cb007689b147c105b069ae8c98868bd9d8d2f439f3df554be8824053f9eea66186a6d69ceb7919b5c7ba1854ec11fd27c37585f51ae4c7bc6d3ad16eb14fc9480debf0e99d3559523181cef3cdb9fedade5c9c0c0b95c6b07bd53c16207ff4706092554cc566ad0bc9556e1b11c9ec69010864a293e226c6fc45dd6deedc13ab260e8a6928a72f0a5ce667c4f7c776096ab2ab866715c5b39f24ecefe46e1e2444e502128665bf8d28c393910b666cb1a7e4fca724be6106e846213aeccc1c71cefe1e57b51ae11343ecf0191860e459261f2b39e67470dde846066f21dc49817f35e8bcbced35c5e1bc337e658cbaf25bb7c57e5b02f295062ac80b5b03e04eb0efe4f3711dbb8fa4276407c49189a6ccbbfe650f9f2256d71005da185a4d74f8191f47ba405bd414e7221aeffdb2c5072a2dc80cd7a4586311007a2a0fd64e95af01c5ea28cc06fd0b294f3bd8610e3e84d3b17e17f45e64859f1fe875d205c641ad26b8914664d15ac59bac5a18fe47df04b62683048de8f3dc08a6f58541336b3c8a1b570c104199358d0c9a9a8bc781208718c7c57f6fea6261c918d334f37a507314aa250418fe2460c7007fa9843696887758133b7572385309d810848feb69dc48bd10f7324a59bf96a8caece3672807844de09b94ff95853ed2ac53c4e33f66814a35b725f83f200e99c4e7cc0361059d68feb8ef68df92e59387cec460dc9291f309736ea43290c96aa8f33fd9dfee46e8e3fcfa01fa8bdf256ac146773b002c851d9304cc68d31dd22bbb2e56dd9a65fc0952b8b660e580004142cdfaf25d281ca235d088012d773055f01311369fecd6fbf1f68862c7137b11eccc499a3384721ea835c0bf06142c481d2864a2ff0b10e87814f867c185c9b2ad4343a80412a6b2e3734229b3d03e4819117d9a8b7fa0558508ac87336a7abd4027e12bd8f663eb59259bde164f6565f031d45711f68247bee65050f7b597783946cc71c83c0ed11e7d6e0000e20b901ecbee932bb4f5d247300353216575b5813b1d7c390c41e33798549bbd72c989b7f79d6dd319e74756db96d5cfb98262641106f7c14c4f9b25fbc6d124fbfda7355fd3db79ccc6827c1923fae3b980f711e01ef98af7e5d51ffe3ab9af2229326da7e44e5479fad6ec07fd4265041cc0acf79fce690c35971a3a810241ec80b2212b20a91dfa04a62464cd126522fa15cd597deedaa77fa5359358a7e937bbd8f04ad5738bd0df02087d4ceaa5e44c0328255b2df0b3f04b1990b056ae9fbbd0da569528787a997574d307015657079b79a2ece98fa5a7d5dd34d74a51dd6cacdee0b5dc89dfff6517d45a132fab6053425e1ead06ac67f42adee455d8dd86dd2c888b779e6bcb4a4f3eae6a5abe1cff34252e27d8e7e54073c86e61236eccf63d43a760dea504677010e17c1891c30bbc288b1a31a0536d0da1d7463fad555d4197d13424ae002b8fc6e7760be0022eda7b040aebd2e0b3b3ffb7e94fc28ac11cad9d2cb981301e14e5f3e952ce4c9360c94ab0c21d1c0cde4a5ac002da2d0b567025061e630739485a72628b3c5618f241f33478f94aab9e5425a3d18a9052a1513c077cf00f946ab9d00d95a6bd3cd4894860d90d9e6d1123fe2a4a4929b6509c12a5b99f234d2977d8eb82092f5208db158b53dedee11861602ed9194215cdf9874d339b3c91997969833398ba1b662d31a1b4b8522f6e579cd48aeecd58e642fb1c999a0dac064ae5321a29dbdaadb2fef29f9820e31dc031392bd8fb77278c346137b9a1de80f63e98d36a625bd183525ab462862d1f26a374563a0e68358ad1368cfbe369e339320eee86b12e95a1b7585a85fec59feb9535dae9e37ecb3d821b1da95f039925c56b3864e51c33dcaf3097de3788f1775a4628abeebae1b926b3bec6e6c188ddb0e95e55384f8eae37679841a69d2f497c1272de27fb76378c98824f608f6a440734ee380a93d5046adbe103453a246426ad39a0b017d20ec8763b7f360d0eb2f6507d955ed09e6131b2d1368dbbe1fc07d27885d18d84383b186dafdf81268792d6db03cbf70c24dd622ba19e4de2c6f55c29a6ed70a3af4b01630d67aadb5837c4edd67dd47a6f0e2e94db0ae1ccc0eb746c83985428514321ef68dffb9ce326305fba4aaecfe1fb9b2feb65148406c60e788507c1a083ee941837465a5e36a7712ca0cc6658c42537c9f3de1de393c4b35063174a9c539b6e19e302907291946d17ce786e6fbedc820b3ad125787dcb6d515ae623b91037a2ceed4298035489ffe980bf8aa2656e7d6784034a8217c14dbe598015cbcb16d37e2a52cfe6eed3ca16e7d0388bafaf67a94052f3ac829ae0ae3569977e9ea3c9c8a857b6264ce14997be158844bed3132e6e4ffc83d315024ca594ffe3e9f6766d93ab8537f69bf98786e97f43c93ae9d825a5a61b772d59142af6e6d4a7a52368f3b0f71df0ad26708cbe69ce66d53651385b99ec7beb285f484f452519d4e8d0a13721a2131e58a26f76439e8484ff5343d114ff29bc449d8e1d255da587d76d17b13e189f3b6dff6148f5f51bf671992193ac78a4db52efdfe570bde037f568a4f871faa3f48fecffdcc005f9939e5a04d33a0204831ea54be3569b3c37e37f3a08860f5e031b7925ae46ce8510d61d9f263f50c1b8307a362461eb41641cfdce886d98b176955b7623aa541af721b7088d6241eed0c24f704a74f4fc2b9ebffec24c6b62d9e2abf7eba7aca822d1954d4502b987a6dc9072df0d1e8b2591b9423d79824ad9d7d6f16e46c1120de8b93d68d3758796a505777abdb4308f12b09f595d2e011ee0b4c0b1b26b055f52e9121d049baeb221f0053204ce6b304495a7dbb1754924fdb2d6f33ace0ade8a81ad0831a6b6383bcfd8ef41a7d4f9fcce8abee0c3a22ac789fd084a8a9437aa8c8f6b583845e87d62d70ccd116bc73e84aa711a7e403db24ff3cf1581cbb44787919f44e4a9bdd1f653932b589c394b870511c18b92f7d088a1f2fc1d5d2006e7a1820f0087b96d46a4ac47459f7afbc99926f81d72768c490455230aba60880156d6e4c77fd592a66502144b5aa8a21628653cf60a5283116ffd708628d62410cc248c193eba17b921950980e3d5b57d28ad434683fd3d367d2d0b3c2ec59daa0abb81f545eeccd9ab09b606ef718d5eb8d88009af0553a5a0509f004522a60bc22bf94862bbc8883ba2189edee156a7a4930c71f6eefb9e00492651e083a6b81ac6804463e066aa9b3c06240c8abf269c48af7120b951e1a1d4c9a2043f4c5bab55b280f33b1a90a4ff3cbdf5b19aff7f1b7beb90cffdd2fbd1b2e8393ce4bb2c25e2421f0ed1924ad8d5d75cf80fa43a6fc4509694154b0242ed49b5a4a6e87f4a49b81b1234ecbcaccacde91956eef9244bf146f7746b9c36a553ed53a6b35568a40a47a812405352c7d18df8c7b742806057350a95212e43c5915547ccf56dd512f240385681e240a4f7b9f372ad7ba4f933f9e780a0c50bc11386fba66d218632bbc298458799b601e85e3c1b373c4c8e0ec1e658dd9fec554b221fea41287552e77f5e8d43ffefe66549fb8fc04c3ba1a1b8e30d1241bc1f80c582d804d0a01f74d13589d73e66c1f2c2ec418d13bd18b1aa38230f4942c698c105a7868f6f9512266dc468d16cb829c387acd0d34665220c2ad10e165cb8a7382b611354e40af5ec54f93e46bb016c8dda19728e1ece40c9a22ddf73162b03351ab7b6e6af92bfb5673fafd789b00186b2174e552ddf64a42ea5c449d29e16040a00eee62b3bd570aa5925d7dd3c2d21c464422bb2d76c00bc0d0221f7d5b05f8c2179ac5799749d9c7be6a404890d83c88a91fb2b272aa048ea4e6169cce77b9cc6ddb0157fad9168c9ed9df0b6a2ac803e9340ac3b3100d6fcf77556cfe98a52c95de4cd4d043538c0ac06cebb52aed11d6ba0958b9cf5be8ca924b160829fbb0d1f0f5d987ae3016a013b749b11f5d70c0a6fd16ba10b6e1dff871e02080e4886b16583bcf226b2d5a2184883922fd156f305ef9b43449a7d27c048596ca5a02569cc905eabccbf71acbeab07b0e59e8ae7ee4128abfe5b6a91fc6d007738c139ad654c30e0569a9ff99caff9ee37f9e2e1af84205a7482c4a0fdcf8f5db7ef03eeec971efecbc5e8494466e4c5e04b7b3fe2b89eebf720089768768b96d78e5b0b907d5e3dc0d5d87f919a8216b5ba12ad66cb01a915414d40875e06f3d73f3d4790eb6b6fc0e2968ae65615682eec66a9ef7bce002bd329405486e13e4490f0b768d4badb9fe7b12ce2c756189a97a41df8ed2c6c62222599b7413fb3179fe571ee5390942a4973a21b4c400027d5ba48c70774ec0e1aa7e6fe42994d75a457d0a091e1aa4f9997d88def6fbdc3b53bd72818e23945c8e1c92f84fef7563ccb75b674145c55d2c5a7f6847c959c7fb6c7885f536027b41b1be4d98d4f148b28579e067183c36a317e2f2dde1f48240e422cb7107add2d982ef039d658f6e1d1c077d85be50b29eabe87da3d454300d12b55d5d301e40b7d9282cbcc44e7412b30495d96f548adab3ed005c24e8f16ad4c0b93f104121a33bece3ce3536ab7f804226042d83e545a6e0c57c9a9312b0fc518cfd1a8752b7d007680660784448bbc9addb7ea43a8efa2510eb67e8537f51e14bb5b3fb725aee5ba4c87db90007c4d79083b120e9257fcd8e484c2d023c008456b1c9f646271d38c719a3dda575feb4384efcca9b4206ae39ef0f5ef83f4e368113b4e18d59a1146a75673f9146d8ca69b3bdf97787b8ab0a92a3af23b6f42824399331e03f928066977c8c56fe831c7d615ac1ef6a90eda873e07e7755f55d5d1796d7437698637c290c5853558843c10837af1c7b43c182638682659f8582c147a1609814387d68456b923ea82095b96a51158a64e319e371a24e67b0aa8e6b4665bbcb26ab5b66b437b9c68f33185aaa0684328eeb80b68d4ed816607ebd4a48baccd964971ab5ebf82aa703c28e5a51bc5f64d7a167507eddebf8a8294d1860d26bb35a1539a66f810611abbf0c760b0255aef524cf40f6151a3455eb403b9a86cc670c9d378246abce81be45ff505c8202fa2cf4a4e56cc9faf2ac1071875d878b41a5fada3ea1191547315accd0abb92362ceba7d7ad6c1bde9b8dcd39a020d894ad27abee2c18760bb3f8ce59a4971841adf462ec9cff1d5a60e2af9b84fcb37f593bdc556affb3f54770a44b40c513ca907708f90605c47280b37d2160e2fb46db69fec7704da1b6ecb56a17e2f456e619c24674100c3ded775b727036d172c4ed7e792b37cddf5811250ffd1f005fc7716aae1d02c4c344c8f30398691b528c6435d4d25864b96053c702dfb9b71eea8e99f98a4c65a02e32fb8d90bae65267ef304d728a7620a4a20993bd9ab37cd931ba124008db81ee9721da6b590efe09b43bdd089ed71c3a60b4460e4d02f3df5996ea29296a2976c98b07520823d1944ae02d55bf63219c3206dbcdb04d25ebc7ba886d1b2244f21ff8c9bd07336490d7bfca2c2a45ed03c2069587bb59c2bda0025775b9b88c35b8872eaeb1c68a15c156ed817f928ce77f726c0a943efcb3d02f401e267123b091f896d26a6b06d2867bf9b55fe341e860b508d2fedb1a6a1d3102f070eeb850efbedd622f0aabd1b30db4e843972ab2b6dc748ca47a641524455d1c1d8308a5903adf72f50bb9878ce13a8bb2d404894b3e7bb486ce834ed556b258d3ae5f3f368f5f891c086c163900594ba7b729d10bcf7c8648d0d236ccb78cb70dc4394bf4dae35444b539e960d3a36cd9a7b08bd7addd4c097225cd16114bbb76d75bd0fa02e482e20770d2442b03068644c3493d1ce6155723b2c8b827d382a23f6ada1b4b4497e1cb4d677ad2d8bf9a962bd61e8035dc7d1b9dd01ebbeab5cf982e6f9bb89a2e8b0bca1b358d33d94ac46ae4293af1d76510d5aed017078adfb98e2d37eb9b812cbe08cd537419ce9eaafe329f6b9a0cb81eeedb846aec2127b41ebc244bd3129314f8da7fe03f7de9ed6a41dee780c0f488ba031611f0762ddafa6c19c3d32ec972e95a0ba162b352032bbcc4408c21a602dc3dc148110c2bd5517fcfb262e2cbfcff4ecd7e05e6cd735017ee22ec1eb5ef08a46a5142be8487170d17a1cad6306d7117c5f68590a5dd1a34066bf43cacc2e36fc0202c19775147766320f11dc3300ddfa9703650f9944b3c6be3de02cbefc5fc69f5edfcb4b3c5cae22c964ca69331bd870b9319a8ba897dfd1908926f049879eaa615b9757ba876d210b8f915a5c9d44dbd18633846d73c93d6c64bda97fe25e7cea5f8e2f370d8132c4e96c21839e4d455aa89b06cddf8f7a4cbb228d6f992bd6beec31c2c1b6f8478dcb3be67cb19c468ceb66107a3820548fef94392cdaf528aa17bb28f5010a85952dbd0d1764cc20829cb5668b8e972308802cc7b064584666e5194b89ffb9247739f26a47106467b6471a0e3ccdc080b9cc86c6c4c3d30eb109006212a1314f232542759695dfb8389430162c344819bac618a230b8dcc5b8c108528d186b9811ff07bc903f3e80ab708cadec7cfb764c5d53000e18d687952c66705b3f120db7173d82a7654065f0202602baf1a7a1b244ea735a8b8717580020d2d7df53a6c7c6fb009215e8cfbdd84096e5a2df7709f4f5375260b504f356665e3bf0c7167061e3006b47830ea68526e8272fdc6e6ebe0305f72873763acabaffcd5e95f18d6d802ae57a86cd58d0f8b8bcc838daa9d57a81208f25a86a44c996aebcca72847c71fadfd51ad71b2c3ec397bd06ec94f55a4da443a5d94b57b8f4770ded4d70f8f43405984f97bcbec0e8066d875c2e0096bcee61d478afc2f8a2651b7184b115cd184d3b018d4067887156bcf0535ad1c7d78581c2783f4e565eb9443500d9bc11c36628d1e677c510dc95ddc952775dc83e44412343f8713a98cc063e9e90a65f77ac3f77957469f0b3c32c83ad49f65fd895c3bbb68e8a23f00d7b063e1a2149275514adc490bd650529a2dd9c949c86c6b811bbb5d9d2723d807cb6b5ee7f21cf33d6e2b4cd2c54d2812cba41b3ae0f41aa241d8c6eec2ff351b7d9c397f6d08f9ea55f263daf4eecb2c1fbd6705dffbdcfa42f2634aed5193a6e6f5312c2603db63902e7ddac55dd88468ee21232adec121b30a60bb6a6a461a15039a5d75af0484502800d17172d45f12a594d2e60f3737d74c7c2927f670e39e8901c0e774de01ec06df236d99eb2906ef9b152711c1ecd18c5a2b42d1d490ebdbdbfa0eeded49d73a00a3edf861843b4eae5cb8ea24847a5677af6e075dc3d4db462553a89175463d8e6d001c206f49552f9d9f5976f3409dcd14ec841c68216bec2a5526fd1eb2f55045f16ad629debb595b3e4603cf1ba42dcc7b1d18dc73dd989dfd9b3215dc32119a6033830c2748cc4f6ff9c0801f0cb8f251ddb268eef8ac6b4efa9aabddbbfc2a2e0c86a6b2cbefde72af893a33b45e2af6e016abbbf6cd79327fbf27b9922e6d8a56348fb282c8e5d796ad3d0d5334b7d143b4a3d68f132756e61ff649b36a291ea840e04e6d7a20ba60adcf207b41d8f7fed65dc6ad334a3aab591ab6b942cee1e7a15852e5da154cf5a1ac0d808b92419e54bc877a1d2935532d8b6e2dba8c107fb9f847a2e4c02d1fdcb7df37b91b04bf3c7d37ec0d05fb3642d38a3310a3024887250aa5aece984d71931b2f036f4e4fef56325526a5a335f107930e9ef0584cd86276412cc0ad34cb5be3d77663951df7a779c382baefcb0de007918302d4082af3fc3bc6ef358f961f3b68d496328bd63cb2240b80f66b4824b83334fe06cc0a5fd4dc68e361121375ebb05cef12586b7efba6eaa61f3d9a46e6ed7d60127f0b27356b2c4a58147159cf7b28ee8900af983e257157ca83301c561def3eef7ff5fd7f6176bc36054c3d29269da04f829fc6d5a3196ff8d2ba39356a55ea3f21412364b4637f338f1b4308fe943da9f94f63dff29c781ff1a14fdeb472b65adcdd9373deee22c66fe498f2895d75b49e10a39fd8353a7a55931731e0b25e2b4e00cfa850e50b8ab43d1e66c934998b2e714c7c5b580d2cf29046b1140fb5a957f3f603cdf39a160d167892fb1b1ad4deb15508f906d012affb3db17cf285d62d304f347393118a63648350a7727bef8971887a3eaec8002cf84b530667b2481d1ff6554afea74255ab1ec4529e99595afa243b20c9b62072ffbb3845111599aa8b2c1fbfe62f06ecc703287269211bc257b7a0e7c88c2b3b4f8efbfd7bac2a088ae731dee023b7278da907e1d560e21d0299b78a550834ebd485aaf9030e0e4413731a595c1a537dd88f48485cc4f2f2b52fb8a0ac6b8f814fad478a1958c68e1f5e4c4d87429e080ad939fcd78789ceb440ee7b41cedf340322675cba4dfe000e9424466b629729f471471746dbac19f93c8e7db94e87abd2de4502beb48f23f6b88bafa2653df24e570fbb2831c7177f2a98c02bdf50e7865458a54862b974ab5c583f1e419112decbba5cd30ad34c73a09e2b7cd13dc859f9372643649d75bf3263de351fb83ff689143835852f7269f685d10a92b0819490813b2b41e705aa0b70d4ab5c36b590115ef4dc797d7006e945266ebde185f92dd8786742dec80be0b60692759828ea9c312833c6f445ec946e5dd8131a5a2507f6e78632922e2b3d6bf774c0bb315e862408bc50776eaeb32538809faa134e86131ee2d9d7a46102199b84af5123095a0e3d0122fc03722b4a78f63f0f1bb5732eabd427d879520f49abab2c728491bde5b84ccb8735b3b706c054a6d76ff876f9ced1896dbd2a01969a939ddd95d20d38e8836ff28976e905da587f25b246e7345bc08fd9602409aa2a9d668f047523da5a4d0a56f94c84186541859f4f4af2f4609bf2a8c627317507d71e9aebedd30c5d8bd79b08b3620cf20778226709d6d85559a43d5e962be5431375b160d2a5ea613d7b9e6060a8e08dc3e5579f185d8316c109dfdbe0c48c56e08a1a1e824564f68f12412f73aaf9cb7ccd3b6daf2795fdf5d598cdc7a8309ff84e2725da90355e2f6aa3313239f82fac3a1134be95552af5e94a02fe5943a3c4cb09f9040c485ac1b7aba8f30898219ed0a83bc056209f82245f4e1dab568da06b2303e359621face38a3d3554a4aaa3eb15892fc4bb2a04daadf5936fed30f2d639c0c102c21ad140b9b1d68cde643b18772fb882c1d1a05827de8714220727e14254bab43321126a983b3612c4e85337297fb62ab1fd43ce93c753c87503cd44abd66fa15d1cd1a7b2e3b63a8c477c93cc0387694980312e9014655072247314ea36e7871c457c1502d2f2c4d100369a391166e1722c9ee7c9c7c98b82e624de9779ed120ebabf327a4b833d23242d0da163ac42c762b2bf268d46aaf0ceabb2d5945a0b4bd0af3dfc412d921d04e828940ad9974fbeae358a203692517fb793610837bd0a537f5bd386adf8b200392b839a2430ea136da63e2dd174a79408a7ae6b7fce312e817e51bc1707abef7b43d703b1d7dd2534c04dcdb60f8ed6edce33816fe6bf8c86b4285c291203db8241f6e85d8b94a86572271415787dbdf8922150c62e840301085dc1d09ba294582c14cb8c52d1fa44ae2afb2c9a5eb2f5ac5ccfdb203d2858002740bd5ecd7baf51b175274cf79294f9f21e893f656d95dd4208434797a9a9f7680b573c993c606f3f05e667663f014d67c352588d0a6b8674b44d264784026b8250c9a9931a1369f653d1a7a5b833c3853b062ae50fcb0b33d99d2cc693c9706d1b5c2dc6d109583866ba9ef68998245978c2ab24896974f773f308a7e72a47c3ed8a18600095394f9076168b76a2edcdf118a0ed689d3c9b9b1337a848c0665696128c9d308823d57cbd4b5588b08cccb9d0028cea8450a74e679279e11bed8c64364a0168a2fa5cd31373efccdb173ea8883ffbdeccb1506156f5103c166781477d4048e020cc0967d95263a3bec821c9c1d6cfc46aebf9ca9aab71f206f3ac0b57876ddb881dd78c17ac81b66b3e93cf4be9b263b8590d987bce137b89996988a07e24d1e9402b6a9c501c17e2ae98560eedb2ee17735f4fa61a1336f2200c1ea900f139087ad75560ac08f2139e3126fc62d0df9173fa9ab579c099b5cafb1ce1576e88e6bddb057b25e85fb58b2ccb5edd9e532dc1727c5871b68fef40dbfd89543894d4ba4f277894003caa6666a8620cf518ba263e28690ac52a9213c639552d1ec4c006ed6fef533878a286ecb0a5c4136a103cf5227f712a4e52a0082a2810d6c62eca7857971aa719db4aec15fc4db90c331651dc24703aa6a43e7378f36a09a87182558a145aaf5d0f8a438ec7ab4e55ee46f26cd7eec50321a6ad42e2c7973ee36b5eadb839ea22a9d87c187510b9152011a9352d4f435be31245db9104554b83e310beca68a205fccd3c9e9880b761cdf7b7fb1a95263335f1fafa771318e28c9a5d8fb8545e6a5a881d2aae9bef52af9bf6a82035d63f35b4a897e75c8f487fc42fd0c76ce79a712e652ca8cff004ba9e266430c7af5b25a799fe1ccfa0d2ea5a670eebb19f1410a55c3bf1e7320c10af100782116ef548400e8f3349081f927020991c660281c4654d9129cf785b965a538635a38c0e83275d111ab27ccbdf6da9a41ab4abe045ceb571892ea7e6bc824f0ca48d02eab618de1c65032b8e4e6798f83989770262b9c3331cf0f9c46911e8d9a1105a4f9dfd602f7e006556a895fe0f1f0ac07d689fc6779455bcf3c181fe2112c17cb8c0c04d9b3d911aa0dc0b44ef3140a3ea34c83c09101e315e335f5005d99a571c7e1fb0ab9aa637e78e5f460a417b50691c5edce23b33d849fb267c1875893878c3f043859f6d7bfa00613f665035029c54738ba6e8185259c623e022bbd5316cc15482d63bb14128ad97c6eccb05d58141348b0acd2119e5c29ebcbecbf58d9d2bd7b6f2a7c644ae5c630387c2cb1c79d1a38e966791b5c505aca539e518d8feb4790877515fc185aa06437773ebaf133c826ca0553483defad32bd164ff1fc7c6727c162f530d28a13b35f31452b89fe52f57accbf94ebbfbc102b2b77dbcd16e6e252c832ee41b790e862d6904d858c59125d1a880c89a22f8cc8404a740d3491e17a856ae9b18a871695b37c8bb7691333b95e79623a8a43ccd84c433dc89708eab7e8195762ee1402d3b0c708ef94d6cbb03b778cab2664f8d703fb65354fdb2ce0c490d3568ea535ae744f59c850a1d753472cef9bd9e4cb961acb094216a653f81865309b2a9d067608ea6c2a73ba0264c42918d208c4e40405162ce1b215fcbf5db621dd1bdcc10e4a31a78a6608772d878af01b1fee6db51ead92b8c87becd080eb6c446d444e9783a04e67510718516b3c3dde924ffcddb4938fdf6b97616d0fb3ed576a5bfe7a7fa8e63b866b182a1d291ab63bdedf2a1f6245a8f6e386d60d8fefc134ceb2c14298da6276ddfc2e1fc8f96449945cd30c1eda0c9ce1b2b838ebe1b35d113305cdacabeb0eb8255f67e26b4aa5a6a6e36903c128b4eba4e4c9cf1e4e6c9aa513e7aa1115d3d958c3f73455b0a51078ebfe8485093aeff32eb38d6c57ec86c5f7697487cf525dfa02e613903c359539da6920307d5a052de46cefe1270071e1e4a0b1eae7586f8369b59e320b3e45ac284f936e580bd70e5635461fe85433a46dffc8d3eb03a7ebc6e5624f1dc901b885b1854ac6fc12a31af673f2a7a076d4d53137d58d39a5e2c18f9aaba437f2e0bbd7c0223dda46062430666f3198e55bc510a503854c4abe0d338449e6fba93521b74c2e165ee52f6f9a533ab38b50a8d985f4d9e08d6fe4faf7da242910079672556a5acf11fab413f02bfd4b395c9b3fd5f4b459811b05bff097fadcd6178921b51a11732af2a07629701c4a9591cedf720f1f2aedc510e8ca26fe7ca2c3f68bd085009f3c9b6a9cd52cfdc6c6815ff529e0629b6baef6731de845e1af5bdc1cfa4ffbde359a510923c27c772811c1c82e6067f8d522e294c1b537105ee22588357f11e353e84f9ebdb8a7465777865fbe346470ba5917a8beaf0c6b33e44ddf3eef370e7cc00140cc3c12ea85cb46dac8c76558635459fa528fe394cef4e2150add2744ed52d4c4665aa8357e969a1219f0f63ced49f5efaedae4b4af7e65590511e8b9aaf788c3ef2d00e014f5cb583684de0d44d103eb9e7d506c524b9b0f41e5985d9059a1268c6ddc3391cd3de3fc06701adf862583ac35d20616fcc495a7134398169949d543f3468c633932d09866bb2b52abc5c55b65e05c4c2caaca98def471a75119e101e6fc953cf12f0788e9b0381c5636a5810c7b6b5bef7353698df14df892cbe3c739fbdd503c3e0ab38179e1a5c4175955b7c675b164ec76d3d04c96a4269ecfa1766ab2c6596e2dd19110a4a76ed02668acb0ea96ac4ff97eeda34c3fc4a8df5a711fdbb8d26b59e9c152a1414db86302ff6eead7347f7646ca0cbf8f8042777a886d8bf4889e63e1ee331631148fed1130ca25221631571c4c0227693e8e6a6d9ea44d80471047ab1f1c9afb9d3e7e12aef9f40d2e2e6781d781a577940d3684753319846dc33e37376dbcaa0b4f48db8c1746edaea02365696d97568c8a1094f091d31b199c28c09a69b37551fd4f875be1a2f4e9619ba30e0ddc418226c337628901f8400850704a0d9c819fae5ede11db0f7222a18932e76ea52e14c91c6430b324e6ac270b99032aad18e69f1b11ed6d23daf5b4739fd6b4615649de99f6df7b5817a3f535230357854e9f1b9531174f87f4d026ba8719503e838e3a8d8b165fb4ab4fd3e7a195f151d71c5b0e6df29343c76f58acae6e2d3b65d044477dc6fc1602bc01bdbcdf8bd8c79857334f4ed523362fb9b41bdbb649ef0ca3cd0c99161dabb70794b1da20c4a32c7e616e4e18e00d47b59d9941d2dfe64dae612f2974593c25c356037e76bc89650dea6a5f1bf5d49dbe69ef3affd3deae55e07ab732c25eff3d1fad7a79b8e1b58688d78a83abbffad98cc3f16fbf8230ef8f69c83f4d94de99cd752a2ae82ba6caf3420fa7c093b8f929297ef589cf7903de075e6f3dcc6c9993b1ca99a3490d1e63ca5a5d67cbeed5379f097cf869a99ccc890352e6472c5c3e67fda81583ab62b62b7b2d9722a6fa5061f212932e13e538a4dbc4d85f58e34c78b23b116af0a125ced11a5cc432c3f4b0775510f7b15b2f0f35d4eea20d73afafcb206312e71c6e828ace55aadad38b6228520322dc9196df603bd021d50f297f081bf9de4339895355390fee47f810b3f37b5d1c6ae0d9f9bc3d9d249fb0ac8e1f6ad793985c6edfcef57e52198d02a73911fa6c0af475d86ed32bfa1510cc909beaa92651da5872b682794e2dfa480ef813c4ddf59441c12228bf997c27a2e328f9b22b715cafc89af60e3c59dcf8de359bdf4bad3b535a236bde1e8a02dbf01c55baba0c885a39653ba68372e678cb20676f17312a990332a969d0e1b403c94aefeea8b87d6b9e195138cb58ae4594ea6cda98b088495a2f423eed8a459c8d8e4a4aef7d921b938b20644e6b4a8a97e21687d438d2023fe56e825075c8a44582f266ee4a520b3004a0341ad2ed0e54b4740434b9a3d4b9ee6afeecb55c4333da8b35f791cb6448448cd4813eca655a88845859f636a4e68831b025cd522b7094d46043ee8f26cfa967baaa868fc4ad184c194437008fc7134f3c4baed36389265b769d08fd1c268e4939bd4ed3b3036eb3a6805401fb51c2c2428a900d09acea8db9c26ed7426660158069d23203649a0bc6e65e1d85a66f692bcb360f2a3df728dbdde2f1792a925514bb71c2cd4a4a3a439d829625f1989a080fe4227b941d9aa928910f6af4699486b2e3af8ee8fdec3dfb30fc9720a1b0e4c6066d87e8b54c7469c6864a0aa60d350b29b62eb13886f7adddccaf92139399778424f95ba67d60c8d74ecdcf57bf806802ff9e2e6e40ad3d16a97806a7301cbf297d230541db06cbaff6e38208cc0d715b43ec5fb6413dbe75e19f828993d00702586606545c9af8f4cebc78937a85120e1f4ef60b64d5cb669b70fbed388b671da875aeb783e421d30daa80882df8520ff22d2ed856385044051b7c42851b067437398fa809d43b733fc5804c056b97212747f78d9fca5bfca0c0a1443ea37e33a08fa596ec61116fc310281a55afe482e61efac3173cd1e0cecda73af9addaaabddac455672ca077f6d0257505847421b0ef1a44d092b7c04dc718e15f10b12e89c17a31f3d4f5eaee4938ffce6ba7d2ad21a65af459c6cd7bab37aada38e9c0eaeeb369885fc286e096a1067b058463c9eff075d83247065e80d754ab375045cbf553b789c6b97e004109832e812fbd608d9c6a314447d1401588567a1b52b0ddb7cc49cfc7d0338064cc8ca6ea793df299a172c7c20297ea214c05d94ae06f58b87660196327f8ef56412e14bc80ac153c15acc22961814324de4d52bf0ceef53d3a1ecc181322c51f5fb2fdd75e4c0e0ea7201862a12c6e27f2c1ab67787efc55887b702ad7178f3c83025cf10be9a76edf8293c7853c51b6585f1be9edb42cebdfd728528694cc09900a894b1c27fa1861f9abf11f455607fe19dd8b35c69b86c082e9f46380cdc414109e33901193e106abfca785c47bd9b5a35ca2529eda52be86d6524b95f424b92ef1752df3410e169ee650de89fc62f4b4c3fceb9a0487a129bf68848287df8909b518a344909a1d18b39b746a66758b0a6676268c826e7ef7b9335ac54287b7f9c8c1990d7ebbb6bcb8ce41ce4186f92f858ab74cc93905d2f876781750206c4448871bf3aaea493129fa011bde17bbd34fba12ee96ddae25ab48fe6608a882c642ff089340166fa6b5ef7e537e7918cc2a0946bd53b1c564ad6d99595e37b2c28f91d90e8b02176e4c163ebbcfd4a934c55e72baebaf8c5bc790c2ae7e7cdbd50bcec040f676204092180a3d8bf58cdf8778003436adaf081a196a15b2acbcc9fdacc63a3a3306b36a46a6b2a7668bcc581ba5495c3c603edb43fec8fd6ca1eb7bf7532a971036f9e3cfd1c9cee1e2cabfe815a1a3e3011ea649022c629731495f542987c5a95d06b4c912591d487ac765d6bca9c67790c57cd01480739155cf619bd3bfa397e08309c40687cf5efeef6b1bd83ddb36213e5c367973c34e791e79ab552f718ce070fb2e26a9d4b86e4010951a63d29278cb45a6d64756a8fa74091e43d975c16bd23b62abe359a3f21e504ea54410934a478ad8626420d3deab47769a8529adb01123f891c2f8d5abf45fdc98b0e4b2d1db18be238888f362ba846ca961e4371c60d1044d1a97c846500115fa17f669640fdbb87258261ecce9b7f4cd2191c13f6b726524d2a44e61648b928fc205aca05342b46d45c0f7e85dde4ba72e82c5386a7bf511ec31aad2e091c920f9e2521ddf712ba11c97a6ca666774680b7e1fbdf2da48a224dab17718ef3cd39d4e7726c7a5a0381348dd3b6d05442780ae407167ef7dff9477c6b2a3134f86706c59bfc025488e5ea7805e799d021a1b86ad5b16a4b4cd9a7c57e077d102467afdfbe85a142a4c99aeb2415821c514acea374c184bca2c0bd7a32249f3c52484507b611b13ffbd8438b6b9753b5680f37ca4798683516144f89114113ad38219904edffffbf410b7ad6e1fcb3eed273efbed421d7b6e1777ad5665d3fce4f040b41660cc95d93a417076bf8ee8c0ff48108bf45c6290b09259ea881cee1f05a6251e0704fc6a4067f28febb703ac8f402dab82851d8a1604191563f11adad1ec514cc0c7b33f45fbe89e26a832a72aab594de1263ea287effe12aa76be9c3e88c7662750cd364b2ed208f3e06e8eabea5d576a9f263a7f4d454225402606bc7c2c310b9887d73e9f6c4cb0dcbf436c3207d7367843346d7c69adacfe62f57ea9727dbfe1a9be8dea869eb15f15a6778d74fcf4971f471b15f531dc81c6793ff5688cec1bedf5ed1b7d487ae1c36c1c5f58f2427f1ef9e835df20606d2378dc887488fa9a1827eee99031f0d5875248a8880833070ee53fb05beea5e9c006f13f98225ee748dfec0f7baeb7b07978446c9fc546cd62449d4e00ae553abb343a1f2a288392e12c23cb28da5df5a62fe79ceef8c8c3d2018730beb18196049afa673c03270c9437feb7c46de718cb78c254beb8bcfa64b9e0adfacdaa99723131940e115297a7f49f4cfc83817298fc76ac0aac0dd5d43d863b6a6d3d4a8c8544b07bf9479789bbd2b86b372aec3d7b3fe14b070061373b37a7d8bb832543cb8ddd20f4528a89b4d9a037c13fbe627ec2fa9a2930b380e7bc51ff3516213d70362fec3ed60f830d98e37db5b93926a0926421a559db0c25fd0ace1f6680ca191d1a8437865abb723ea0b08feff235ea06c3496f684ce5953b216de95c49429ec999ca2b19c8218957474ec09f1d3a36d918718b6d36bb2f60eb0cc5449f05bd4a3ab43f7ad2d0c8bfddbec84bfe47986512da47df8e19a3f7a06beab028cae04c482c93a015d32106a3da4ab4565558706b857631e169b2829a3f514adb95f84d7d95803677008d9040fe9f24aaea68c7db77fcc28d43a1eece39ab411b97fb32750f274cfb4585b8502ca7c012bdb588bdc78ccc6cdef0353f1fe03779bba1d4d26783fa49a476ad9e3c0e35532ea20e78ee707ca9e579a10d2f1f7817e36698dd32ae088d9499140bd05c1f060fe6f529b66440744fb804263a7eb1c6e6406cf74a14d31ecd39a3bf4925d9a5fe52c5f2c28d6a9ad21e8c637e712df11c9ee47350579633efac03e755b644c375c76945e7a91cc0458eabd7d1ee7599bbe789349417b782c77370ba4c6f77d846837bafe815ce2426476f25995c0862110da81c51b7a1b0a553d74eb279cd47fd4eb65b7107a02b4823db024b25c2e8053d655b8f90b272b1f33a97f91131a2a81aedc82aab3230b7ce8daca725d2a17455026ad6c3e310e2fce5a64a0189a653c74dd23b4389eb70ffded55aa580d5baca8bcc0463262ef559575723afa6a8716d07007d1b0c7d1308e9319d12a2f0ef2e62a6c2b2c4547c109e37613c660b6c01f9d10fbc121f34a0a76c4b2d9305b76bbe4cc65ab4b620106b82a9233a6fa46ade6f9afd6c148894f693bf959ff1b6608e0fb4f98b0da0589bb82d901d65515f5a892f6feacb8b78ebb68dc15845a0653eaf553d4fb1e280de4b0c14ef341c987a808c1d15935501f2df879edca6a73adbb86a188ca835d043d366055dba9c698aad7d2baa53d26b929c9ed0608adacd7a26d4259776cb6c800d710a0f48b0940943424f557944795c558fb2d6d12a499592719073f4b64c141b4802041c3739a6d4ef369a541162b901e6146133284a3100a74a874671e40b1261e3bf6cb0bc4f25789135aa80bae71eadc03f14bc263beafe8936377bad99bc6ff9229152be1375a9745a178b0deef6c59f01daeead651a784b38f50371ccf407383df9632f7066a01a297618b6270ef7c59fe6a954fec8f76193531a1a7720302b4fe4429ab7b0a2f02f98da7624eba87e87bc02bd73f96b1488aa9312380f100e4921e45579b316eeb39f127be6d05dffab2542451b7586c2b38c8040169020efc5142302721cc06a52d4eedfb5c4a56dc266dd81c5f3b11c40c8c765245638068952553ad96122a734171efaf45c985432b9fd10ffe25fd4773c184bf3e0f3292b8991eb2c88209c635ee5ef66934d42c9216895e881af4821d6f25faa1131cc187c7f96e5fd1f6a4cde22a03cda38a7d32c0b428933e705cf20b65319838b993c35525a507dc3ba68af8aa4b7a011e17f70a67b0bdb48ab8fd8cb796e32a9cf5a1f5626bd127d78d7b38b5fa71ee621be14cd460b2a45c5ede0dadec5880bb2aa709fe4c94f3a13c5ea03147663cc1273214289bc82f865839daf9284b8e344220200e34c2688e31456b928ff045397a83c000639ba4539ee56779235b7ef4bfd1c0ff60d624dfe16b925efe6bde3d0a8c9c3893a7a7649a636247889bb9e05e008ceab442b03a622f84351a61c9930367563d205ed7680f47a054187eb5dd40beb65978752facbc41b14955c7a3629601282380d2a489b389f561864827ea8c87e920608be31b3fac9e3cef2075df8f84b608db354ab5ae67e1a6e03b1bcec1d07bf147980830901cc3c9ecb544bb9ab1d0340c65280dcbfd9dfdae2c362831a863351298c9b5d4bcdbb73201e73bb7cc120eae4953f11850ef84bf8dbd9085f64d052ab7b58df7cebccb29d8413f26f04946978629782d701357959f78e598ae23a1d131ab92525a3f2eb2d1b929c4140439ad7c0221a59c503b9ed7ec471f580c6c3eb2496ca2e6fdb059c192148c68f886b86e8a5b6755681076f4830e42a0af2e1ec7d4836e13ce6c9bb20e525dd2123e4a53b7fc900745b43206a5970fe314351f81e43e882a7d2177f169852f360c72699e622391729e18744aa8025105c2090bb956394956ac9a8262e9baf4756611cc0815f20092b477d7abca9d27491488e4d762a85106c2328eb794586d913dd0e03cff9cee5830523c00eb34c1ac7782fe721cc56143a7575d151cfde3536faf491cb4d326e3843a9b31245867367435cfad6868c88bbb77aa3c7f278c16d364bbc88ab613ba3438c02040e9421fb4e52adca70212493f16971cee32acc38423599dd6f2aa647a222481e0cdf8ac78944313a23ea15fa5ff799c1d1698c2529497445ce53d00b790520ea41b58015242a299e5458c8b91aa1cac039e190f7c9ee1fa644793a0954de497265b2082f34c484a6e89607128d8ad313d7673ba62b124f413edf686b7aaa27d388c073321b01cde34a42ff593f238828dace0807d44623401cd43a44822d2b45a10651f150d0802fe6045490affe4f7675f14fbf4b270951cc09bd2c70522fb45947245891fa48912e2435d1503a907903eb4ee1efb5c2d1ca96f8703740b862b639bda761d0ebe2ad6e2ac8146ba78c2d74e1fe5fb6dce64af3cea7daa23e4b0835c58f1dc69ff57558546461deed3437875f6bca132b730edf3e5b275268c14eb7ab0c2bf251b315ceff5ae0d2ce5826a8f4ff4bce82df803cd2c8b14c10199b43b2e5d73e5bfb5154103056650d90ffa933dc90c32ff9dc9602a016424418031883ab6a53b8bf5cdf07a0a0cb22d87584030e29885a7feb6d8699a18a01bafc36281ed26627d463750e835514e200850851188c32968a3b946225092ca8c2e521785fd489e2edd942ae08e72ecf4da9a64a5ca40ca1c75a9e95e73f8c5d4cc1766e6a2da88d9609f234afed0ab597888a9f91feef94c8d4e44eb1452303e745a03541a5eb81ba55882cccef94d6044904065b66fe03d542eee04f05ffcd9bb77b2a700166b2a372adedbe79a6e3472d6fd34d293a4863614e3a5a13441f8fdb2e24230b1eb7d95137d39e8ac7a955abc578849932133d88cfa8b786da8f742602aaf573d904d5532daffe0687ec68a68c78acf88f09c526a3237c12e30e6f7a5240ddcbf5c96f53e538a3ce95261779e4d70439759c1b8fb57a9b8d8a791d773cf0f02e79b1b0e02772bb8e61712d27548fc904a2ca7b4c138600e2ebe9f1f46e10d1c7bea98a435fccf02fdc8db7af8868c93d18abd661090248827fa13e54ae5801c52688f2a70beb3acce8cf1522f1df3a4bb7c6653b33464778c5d574d45be3222fba67e6c4956c7a5b362460e3f118ddf1b4cdf3f38f8350c1d15960feba90041b39de8fed8750cb4d87a4dd4d252f91245788f8b6b9a44e54277ff27f3ef4c05916ba2616dbf0f32546ed00fb102b7653accb4e551c9711f55f70583cc49e73d3c49da326d7292e6cd81adac677d62a193252c5c557d5fa5b22546280c2d9785bc1b722020fbc8bc18a4841bc3eebef5c6f940703fc69b0b2404e2efc56c340e982f6d661b91c9523ed8d06d99dfb7a9b82deb69954fe08ff79b3172e2337d7d81221371543466d812cd73e134b37e39373d8d0f7ae21d4529b040f2889a295b06171dff55f8e554458c2507943ea8ad1868e1c947970f63612d18060369adea8bc0d101b1d00ba15b24f9483efbf0d79d95063e9fa28ca35bf10b2233dd488527b4cbcc6007063c5c4b5e69d6893ce61119c45350bec4315628b6f11a9e59738458ad37ceb27b9c26d5e247c10b0f310adf6d205fa9adfa9da9fe177e18c59a46ed71c501a4fa19bfec9aaabc041aeb2464b495bf9d9325de7792c6dc3d15dbd3e06453d7e032f29abb06045d2f027fb10bfdc677209f205b2be266826c454feeb93cc84b522a85fc7209a9358783e859dae4eb14fbe0b34717a404987372b5793c29d06745693125cac0bd0c0b3da0c7f055d71ea8464d0eb219634f37e67a762fd5f9715d894f4da559b539e4a57c8922cd0761e71a4501b8a380d765d318c45583092024038451b4ce6219c1d7eebef2b826478339b2f4986b30ceb69288501cf84b5340212472b53ba3ca2ec8859f5aeacdccf5e3ab3880d9ae98f444cea33e6cc696702c885019f0e56248609d81c4402db562ebd0c62970e7a849592889c39bb8fbff851d402abe6c039d15fb832298f2412e18a7e90e20c34941af724dca0b7bbe7e9c14d29b53b03f07d089794b4b839af2554e0e4b374875b32fcf6231d44d350169fb1f706d6e85e8029bc25eb2a37520e2e2dc2e3d7568b2b3efa87e6a57cb2b452531c30ab22f8d7b0551eebbac9115059990bc55de8bf9bb2e64773b59a357b4b370d7dbfe51ac5adfb1090033e049351019d3121c47012e628fc5c9163f25d0ec865aeb3181453a40de499670d03e81b004e5d25c2df81fbaaac6cf3514c513625d3ec4e9e93c36ba41aa117a85544918db07256b9bf4ce6d41d0aa50f612187ccc828aea1b0562a81bf432064cbf21f820b3629a46a9a3ed79c99f9acc898ec1b12bc7d2015e014b5849e220582b3da472bf39247c97b4343bca3dca64400d93fdcdcc5739fc89bfb1a31c6a6f41483dbe5e06b4d1fdc5aeb36c5311f93e72b6ecbd1f037699ae6845859e3e8dd073e19e76228ea6f34c10402bdd7fbde633b36d00472e3fc364b665ad4407a90d363560763638ef4279aeb7ca5a7d07f0ed814bf574ca20060e0f663d0f29b61e9805dfe81783e43eec0860732b34819e3eec504c0267e3d4c75cf5b4b0f3eb533035553fefbe0939f6764be2ec419c932847e9d26ed917499f644dd5be5d15ceb505a7410e89ce84ba0a252d3e68eca96d108f6b9547e3e0e30502a03d58af609d4a34662f495fc3a0a3e728949750f8e96c89ce8b8342a5cca5623239a70103d70731e61cbce09b2dad602771238fbaa08649081adc52338b766c54efe54ed05711e51e71d0535ca77692a652fda90c8073ddbbc106a6677c3d5961916d510b8a69749ba93931681070d587c0fca229a2fa3e8324442ddd0750be2a517b6df5dc19113e0534f87592d8b911dd506866ce95f8459d1744908fe8d6cac410282c04ada0542b64c323288a5c59a9d878c56447cce7e0e51cd8b572e890c881476ede2224499736c12523152874103bb302db7205928132e045008fdedddfccd2a4a0972fea9a1cb6c5a9b23ff3798bfa63381d1b4b6ae1d8c7e26aac1dd3c9c55cfe2a035cca841be81523b77410739495ef227fe20deebaeaae9b96f02dd5e94a9c2c970948c3d1f33cf054dc24b220e97bfb95a5cda2c1b673c322928b9025894b43823cd60771c4419c59ddc6a8e7f532cd63dfc59a00a36b0acfb1be57edccf85492f9866e2f5c70bc9875b46e5c63f7e00e9dc7be344561b159fab51cfb694e35c69ac7f58ef721e996a37bd60f8a15ebfde67cf3289dbfb61da234358a6b03cbc0404a8ad3d6519383d67cda9418d54f50bed82a2416481d9a176f30c7529c12839305e8d67f179b9d7ca0ef1b5e8709ddc30df620c4c251a1a5261c6f36079f056c05097ce02aac75cfdfa0888f4b14e34d7b43df068d978d00d437383e22f48ebc31f0224e3062765e98c6d6fecc75f3fa99453921f9846efa8a2176a1418d6acd6cd74a6965b883664ad2f6da2cec4191219b83669aa77347abda4546c200552d6f9644d9a840bf71302a19b7a2a3e3ff34f68e006e9a98e890c8ee5e7ad17b5413f03444177850a4e0f499a2a061cf34a800b353938bd1f5113761d0c2e2c520269659db220826b07642450c1a3e1382cf616ac27f8a4ac63386e93f9354d2d3975eb12e3ee2dbc4e74ddb371c31c4483c399b6f2cc1263d084317dc0420b914038fa1e9833dde30b21260d5f25eb46aa982cfaacff790c53ccb9e8d35e4cffca3e1e1d4a2991b43d01b7e78137bb59a7df910072e3948f9cab8c01214d7329ebe2200fcac099e0e56d8d0703faa38184b3aff578d6a8ba8dfacb53a54b286ac1e0c7f040430b7664b13483d3d41eb54bf2488ffc996f11fed5d0dcf0072a5ef6ec8162313755ec7e4b5998d4dbf3033ff8b51163ec5ccfbb6f189975900c2725d8a794675fe411e72502de6c05c12d2569b53d2dcc433b8fc3cd019f7db80f7c1514a9ecd27927d043891683569d6f11c9591a91d6ad73b85092e7428b4ebeb264ad3909ec185ac515fa0b05e8c1c3b5bfbef9bc0585d2aec7c2b687a5a95da5c47d354909f0d07d1e2a48d96589c3df2f6b40c095472af0118010d8d9d50d7954d85aea25fc4327ee65d75fde57218baedd5bc0ef13f39e5f67e1f3dc1a226ead32e2b387bfe6ea61071773e7a764edd640665de8b2ea6f89a2e5aca8ab28083cdb81fc04121e6fb1c006ff1ea2396cfa913ee8e2114b122b5d3392da0c334b70715d3c175749f6c71494f55542252e31ef36462367e72536268b93b50b0b1e60bb6cc50d4395b1332a10f4bd846f4e85e3e463c7d3c2ec58f7785ffa1f87b40ddf37a86ea48ae3605cde84d9b35a4dbed4f61078e05a2316887e587041f4d821713099f14d3ae41980e3c415a4308989751dfa63c0f6abf9d2a8804d8445d5e226422c09abf3e3d29bcce7d2815aab082400904bfccbd13b6e6afbe8d8e2785b984b025f4ea4784cf8769a05ab820ef54c11ae0d3c40ffbf163859c1c240e134fffb6b29cbfed6dce27b24510f00b3cc0f9f06fe6661c677f6eb29a8cc815b1d969e986974d015ffa73709890d87611dc22492b6ac8ecde8e0300137bdcc500d39f4df87822965eb50a3432906a435591a49cd0e6e1e291074ac9e3f3aa4369edbeb4c815f1c6e6d9d065ce5da26a0765f477c922ab7ccd47c4e571bb4bf6e9a5e24bb2e80cafdec4686aa51b14ffef6e2260ba72e4d614000799bbee44396f115440197f80e27c68e59e02fef4b9b74df48094a4c3eb9fbcb263644d3b475a4945228b35f4b20148cef0b52ba34fe451f3ca4b48a8850d9c6ddc2f27f64147060a59900de88e290a9e2216b5b9c9ff8577d8981d984e1995ca0ca2dc23987a62bebd2215f59efc4b18b36a5529d4868e1637d231cbbad9b9b1ee34675c5f626cd55de675e168135a6b922fe58493acc480624e940550ff962fe0cf4ab5c15a89c74ce7e52524c0ac016574e5bd84df6aa4dfd821d0acfe43237cd8fc253b13184e5a566a5a3b2400d41e9029fe331f383dc6d02647bf85f50ac3509b96306fe79da4da821883ce212c6d304442eac053050f86922f68d98c200319585a2c055710cc1af11dd3a7a3ae5b3f5c3b215d1449c3c131061223de3cad3655d682733733a2daf4c62adc3cff0fad2798034c80ee5f17f034120e810a0ac33ac1e444b8a14852dc10cb9b76e101793a1ae12bce1f6aeb2c3ff7b7ffe86c303e08e7d164e7842368c86467d7c81a56369929a2cd86bd831be5b35925b78280ac26059249de95ae392d37f969ab05cc520586fab562c9bd4c33cd869fee324a7fb6c8d5a68d4a08a7ae841c4f44374ab7ec03cc5b758f36230e8c01a1ce4c5434e07deb104e7e0edfe42728ffeef9642b62714b655401bb33148dbb5f873febe80835f6031d7b25f56ea29f09a8a28ecc86615d45e1ac66e5744e3e100aefe7705507b55f093ee140ca03c4cf67025e5831f76565c7e79b1ebe658a4a8d67dd836ba5f2d6cfea69b801a21e433a2d4e3ce306934d8e783309ec1620dc427840ab56da9572aca4f7b26471716b6953bd05e8250b9dc9a47c1c4a8f249d969a63045086a7c63f4f4182c72577360fce5713e0ddbeda16e87f56c8355c9e878bacc1b7b136b3212e2650ed6def5d0c8e51dcb014a062bba8a79fd6e8a09bee8b3f7cb22b30937d984bd36728e5384ac68206e7c91a229eccc797f1959ec57fa0b2edfcbbbe86bd1388074617470024f747ae5078e45c0790f126cf452b9ea1edfa26d5f4325015fbc4ab009b0d9d7cb9d2e22e1992d973d8300abcd99fac93e42c4e31b6b0465467c7b675c5e39fa538c1d8256c7298a369bc70b8fe3133bf6376aaa231bf79b47b9f14fb590afc8fa87411d8b3d75e67db5ebd851d1c8f52dd1e5243e15dbcf26b216f2440cd6ec1fe64bc2b96b26806c956062da9c7e74e074dd07146b4153268f537f3b3727d86ec74474fed45ad68e661ba4d6c0aca8745ffa2d8b7290a4bce1083cc918f0330817969205c70fb28bfa466451a2390f1321b3d11e9a60b6c1c79ccc28e696898a70401c18dcc7fa17fe1f331f0a0898653fc756d5de02df3bc3988a63cb8cc6052db01e037fe71f98aa1e03ed521eab50d7afb3880683095a4c925e4a0a3c3cd166a21747699082a37e1088dd2463181b2ba90b77bf33eb5b959e8489e75b2aba6c93fdbd7bb57de34c15dd3cd604660c48241ae62b4e23d9af1d34809d6d36a0a76c44dc63bd599c352f6da1bcaadb5101c5412494b954b8b98ac40d90ff7f2500aed0b7c3428fdff55a52e4b5584625c3c9e53abc336f59c06fd05b6a245cdb335c7c5c81722e070b798fd9b30c2d28e483e31fa0e31f83c67b40d9e9279f50f9c9263717ab33fc14e9cc996f890a948805f53b2fa6604cc48745048507fd3768d3c3aa8bcd1d7a1318574cdbb238fdbac1d67b95f86bc5d26cb83cd5e3e1e3173215b9817131648c8e6ed3ea3dbe2023646ed33e6efa8ed537a7d33d01faf128c2aaa99f05a5bebdf8ddcf60b8b0fe3be104794138144a39929a09d284918fb22c9ca94862f6cdb9f0f799b82b0bc19be537912e80ff93bf04ee8fcb0cfca69674d709635e882bb0a72c555d242cb87e26ddc9805884887c6699e3dbc8f130586b53b245d9fb2855144772f95acc4eeb70042405997634a2eb91eb28a8172ae37656a8c194888aaa2c64ddd37c180db45162053b3d0fb4a2d592eb9a20408b7f78c44dfda5aa0f51a972016f54498a8951768388ed98e6c0feadf02b60ff0d56cdc52377209e923a3d5f007d74c621e704ac839506494e199541c9a6c1825bb0180bf5c34531d169e79401b62b9d28ecd917642008f579f5d6f930b094c759023c95c207a836c363a1591845733094b5a971d737113afdb8c9cff0355b963b0bcd7415ddcac7b9994d0deab55ca9bfc885005a460b4d7758d61650076c89d76b34de10478764b25d49aaabb9749e53b2735e38511c8c97918dede03a8b1ae25a37bd523842f35976eeffa6bf31481a07a1b575ca90d3d4b9be231e69cc2e2f1560597d0e0f6939a006885248318e10a3500e6d0f0126eed30e7a6ee37d1b4d90369773bb113ab4211e80725812ab31e326a8178fb584f0abf507d521d1fb9bd293b021fc185d177e6a336ed2e537341983b8d37265c1cf309a3334b8d47c0c496b0b4a2828a5dd71453eeff2a7d34aee31a4b6dc47676033c9c6ac0a7e95e572b44afbe51e83fae328e39d4d336ee2744b3b210004df74370de331d69c2601ee0466830083f16afc1094eb0fa45ab8c955803bfd21f247439e76c6104cb580d091d11e4486db91c8116fcd9644e1120b566d7daf5353337398710cce1af227a0af051cf8f0a3c4ac62f7415c01933efd76740a7e28c40df903d586caecde6d36edb8532885e44d4edfb3744d829e4a5bddcfd9458a99efaac2e44fdbb9d109b670d650d8d1a41cb13a16ffda7922ae28cc4be5404078654844a372053e9b46d13a575d99f5dca31d8f81089ea7665013235060fe8ccffb615d1d60b58b0889ae5a29306f7b78b64093e8c2825c2b4db189887b28b94c99ec6c2a4fac9aac9c88d591331b15fbb92a5b39103b84547d72ca49ca3a146b2aa50b5de77114074f3fda100d2f0eb68819f940cc70b15b878ba83a268edd3a19747000716b834c5aa2916655fb7cd008591fd92b3a4c028f0a5412b329f0bda739d08314f27fcdebf8061de5bcb7d7ddb10c39488b279796c2eafefae948ae5224461c361ed1bfcdea011d33da7df42036540a78258dfa3061b7c8f7a4a0d54808243953aede4a98fb2c95259a5b461c61adfdcb682bc64c64ea31f1d35ac3bd9311ee908904f97f31466e942921c08f2381af0b6dd8a29fbf388c3664c49120a31d57eece2ea6e06f344ccd7e66cf4ad6a26c45e4fa844e8759c1414379d21803b90ef7d6cc4b1ddc98e4e3cef6a5cb86f127b7accc0628eb88bf13e753b82cf90089e1ada0bd1d7f66f58ee76b7e11d7e7ec0ac54574202104702535fc83c0b7ee948e5e59b530ebfcfb69d1443f8ba8e60da3eea20121138f9fe57cc5011d8cf959823c85832d7603422b8b413cbd73798f04d3114e703592a4417153aa5d06240216f57655bf7172579bca3437ec215147dc4a331ffcb5597f26d03d6392721a776366f7d608f81294869c514fb7d70898b07bd8c5f47800e1d2f66682a74b902fd706a70712a4c1ba461bb7c85bfb8551a622c6ab751eea24e1ff4ea8124f5bdfa2aab32cffb7a0a0955bd0e92def2cdd4c367286c7733fadc4a06b584f28836e0102c94f1334657fb50a687bf8064bdd10510dba22c00a3301f6e0be123a7833baabfd129dc109dd8133d0853e65f6b0c4e2a2cf9f1d0051712f1ed5a4053350a9146f850245565f3b62b84ceee680c4ebd279b65d0c8e67aeb566f7b3503d0426620c1f3638556b9fac92dd294902e94e06e8b611d65977dc913dcc39be55e495eea6e3fd2a91d90c9d596b47981ff641909bf23e73f09a6c09ba34729d5040e6052d2f70acb6add8c88568118d2adf7a2a01c52c5e5537d26b9fedab51302a62bf0d3eb45a2c39fe138546ea9e0f170068d8b884b1904fbc642c57045b2e63916693c788b8a27017b1d51e5e948cd2cf6453d4c17b7f9946d24173c4fea967eb8beffba6a1981c2aafeae1fb81b6f1feeea3c14940b45eda947a234022e1305ab258171761ffdcfaec4a41f6cb3368af089daf19c777577ea91d63cd3ac92fed29a3552c247f3b12dcec2b7388011975adf70fac379a6415c42f1305bb52af264fdbbe621ff5199ee7e2a66b4d20f067d54748a9bd96955314e200d1ce52d8774bf427e87b289d03062f68018f176300cab8074c2bfb5df4523da291e4390d044c7921341e43069faa32d300513df9f23f7f5583ba5f55f29f6a32e4c7c6e5e04a2be6462850a3b54aae0f3758b0569a55118b05cd712b0331298742dcda54d2a112fd3da43d430717bd50e5b1b5cdf37b95bfe0e9f3e080457b9ea20cd5ee88529884369541a0d9bec7ee5616d64ac1b6b5589d1f88b3b87a40a808a2739371f49adc2917373c2e2cc71d0e1a01dbbba0f4c8599e3d2791480c6c25e1dc0b9a169716edf1d98a7c609a81141a3fd288033443fe6a4bed45046cc7cc8005c57f1de263288b8321f117a8a43638bd5ac3c67f1d0dc8f6f701f899abf3f6489696bf47a4c857bbc78f9ecb5e115e9ae938d101010567c5c6ad84a722cd760adfa431ff559f45b3e5b9dfb875f2688e2dcaeaecd10eaec5a2f58751532889339997206e10b33ca9c0ed93f9d9d001b749a5d5eea01dd2d3f656c5ead5e5a83c325162352853de97d5501fc2fe1109aba899dfa71dba3bddff2b182e49d073ae188426e66dde3cc89cf2519587e7737b544ab0eb73f361e3c347b7091cb6f211fba85cd75fdb233bbc93ba62b485ec2c5e2457a6045f84c4e7c4e186bd835fa9baeeed247a5559428348548825b8b6986f3f510f1dbf5fa4ceeac8e461c386a7dceeb87f8be0e30c82e6726d768a555f796a6b3d70c1eb0f2bcba02f79d3d450f47b3872303ab4087b2c6ded981d1f010cb74a69fd5a49f069c8966aa80f6747ab7e0bbd91121395dfbadbb0c2bf7f554a6715faa40e23e8b3ad3d9d06269d1dd9c02b274690ecf533807e5c5836ad634fb662a911cccc202555918794b4b65551448fcc294fac7a794926c7843d49c8b419e5e6e87d9108c4d8aafa0e61e467083412cce2112df9d2e8a5a41441a5b21b4f94ba4ff54a94463484f08792480b6b23772916c955b762707f3969febc273d7da006c0754b1ab25b1f7175ffa51312c746803bab4f3601557f23c1f5b786360941647131c4ea6a196ebe4ec6cd5393a300b61c26f5e6c36ac49227b660d2ac512090b8e59929c13c6b7b544da93d4690f3a775b64c8bafbb49f2fd40726ba759cb4f40104511415724d762178b35f9b52194fef2d9b4c08224b428004908ea1257d0b10864e1ebf756eac82ab408a2910af09f9976eb01f271847c290daa3641e61e807d0e33805778d7aafe10421dfdff54a893a0d5333c6a2043d3f2f2796cf61b7cffc2d1fbfab1215b8e405682237171580e55c75e219940f7bfa32c005de9fd44fd72070d678688acf1a4dcc578d8748b2742b8a56962884531e025e7e0b97c1c5b4a8a9cb34b5c25766c3aa39d0038d81ede2c1d20b245f7d914019d1aedc67c6d913b0f2055596d4c9f1d328eafbee2b4b541ecd794736b31df29eb5ef00c9dd6e171f2688cb7768491742089e61658ec9f1c29a0bad6a6214a777a9e21896af35854887a41290a2bf35f853aa2b53f9c5575a0e51f0a7d047ff86f83c4d5cc22a14efbb1697f75de06a1fd8eb16c98f3ad44592f096e2698078935bc7d71c8860aac5074f331a5e48b950effed8bc127f627ab1d0acd1c537a8ae4a2c25b8646b1a8949b2f2cc8d5a44254d3410e45c001a877fc36782b74002a863ed1b2341489eda99bf8aeb79eac2f7c97939d4c5ad9245bc5d54c00cc2a3a486eb61947e8a34692eb89c11881cdb562cc0118fe563fcc82e95aa5ec96e8216ffd592cb7c62afbace345af173ea044dcc45d908dcff6eca52dac4d35d77d796e912b18c246a15a9f869012987edc6f28f0675efbae443ec90fce3f0e10e517005ee47f4c0ccfc81eaccbe160f46073f3c08414eb5901b01a4c5a90109ea1b8c3f21e2de287d593f16f02a80138c1e98e6cddb02dfb51de979ec9aca2d79e3d30bb873a492383b612fb048c79e3c93fdbb46544fc3c6f9d6d08c278c4b9c4b70d6c4038eae9b0815787bbf348ede402592f95637b8deb6759d0b348cc63cd71d2840086114acc9d081903afd48516dc82443ac2742b26e6ace5742b97f0be72ba351fd80af97bce9d94824c66f42cf48d91f243ef10a354c1144d716c725bfbc442315ee1549903c6db3a35f34f325038489f1b55218ab5951e286a14c5d54fa85677442647c5f028bef67f6612c1d4444138695c48d8b1025bfc25026274f10f318cf297d1248164b33e464a334bdba16c16b33c53dd210f9f68dda8fd215cd8685589ca3cea17795ac024ed7272aa181d86929568dc909f47e6a1693f64afb9a0a252a5b62c5ce88a14e19f153639f09a18f346d67ae8cfb3010e27483d43058486075afac7c40f41419fbdc737e8575d37daf3bbd8eb48b742cefff37d10564064e9a4f825406100d4114507e7f9f3a1ec11fe1aceccff9f29d4c87c5650342aab19cd1a1a852037e516d73132d16e3313e251b742f7cbee741e4772b8370352abb66bacb04066d7ec521c605dae2cef77842c841cd4c2f8f4553bc2149fc63dd6bfdacadad3eead2fdda7868f36d914fe86d7152dd97f3e44fbc2b73a39b889146bc2e10313104e5d6f9574b12ad6eedd88068777a1c154ce3ab112fcded75216fc5652810464244d7ac58a193a33077e6d9add3eba6eaed5c730de76b7e9561b64fa72905474efce56d7215acb750f2285c6a130f656b8139029c9bbbb610447b3144f587c70f3e38a5884659934252427b07b7e9e43b1d3489ca53aeb3b62579e5a9a97b18551be38c4f447034ee1b35fbcec9d4f6e3fc313d7b33c5f5ba98be0ad07b4b67592bdf28b8c3cba8ceccb253b7f673fc52144b93c4334f88444b931261c6f25df19ba3c8ce68182ab0832cfa1823266c5eb6624e1637fa896315e9ea2d23f3239bfe2b8ed2b7a94161311980b5c7a666d04c075efa227c21a3a0d4e7f79739a138e7ae7871649ae53f36c76e2ac254f02e4bc57d2c9bc635fcc90a09a182286600e25dc6385a51430c356e93eadc89bc03510a7587b1ec06cbed03756b94627439f4251e595be28b88b23a5ed044b4d6a8cf6acbf3e12bb89acdaf4c2fcd2b4b74dc7e49967f65d349fd71ef1b0ae8b1bd46691377678d67c25d045a835c359a7cbd1e078d211731d88510636d327e43a8b92f754da4c9d40c808c9cb28b0c9ef79c11d0966ddd8fd385a1365aac313f173ca441a409a8b82fe711ce87e4e96475ce9af10a01030b9b39ab9870f2745b45719080e1e5dda79ebff5d5702e4ffcaf3b2ca12205721dee7b3543edd6e3503d778ec31be7f090513f182d2ba3e50983fe21462fc08263452107e8ee0c235a8a3db5378ce895492cd6c64d17c45168af245a3a38998f3996cb4e775c8a7be5fb2191c475a62e7b8b432699aa06f06d214c8829261a31b9bfc0b1bfffbfaf0f109f760dc1c850688e456967bae5cc6bb71359c876f8f95eb536d59b67e30a3626ef091a7465b81415b65dfa993e35d2a74f2024af2e2aabf5690375cc23808096d4dc25c846e43a135b38d84d638b5a49c3604579a3a1d62113a83499a438bab97beff7696a53114e9861ed3a175d2a4b43512de5e4a7cd4001108188baf4e50526366224a7cdb7486845671127dfe4bc33e8a8d58e01ca55f876625b94a6db4377d8c11e3dc4583abc46a7d904698139e5739179483b4c099a8e7f7345a794594f419097d7ea6d4668abe41221817f31c7e072c94718458eb9221530880ea08220a902be61c7fa9e85d62d321093d74362fae7779ecbde03e5bdc33de65958a4f06bf6dfaba0fdc65d80e63952cf968efa340514b6352a0fbbd30f7fc82dc8c616e16ff3d0fc9b3e126a9bf6b3f21799ac4b426eec9dd6598a67a56cc6c59c64ee1b6b0be2f7ba380652e6e8399526a99f4e1e091e1d97fb61cf104d9b523a3e1f0d55bcd98122c35814ce0337f0ff9b7447647e5c22ac5f77fb488540586a7070a2057447a7c67f784f399f8630f072ada12aed1ca9d1c548c2b7f18542262bcdac9efe6ea75fe3eee6ca5060c5fab166e746e1b970e8c9bfbe43bc93f8916c0cc5f1c6e0484a5e8868673fe6196cf20823b37dbad41dbf5ac50d14aeedcc76cd065b1102a312c44f7738310ec9787051a22c2147eb92f026de6f148207c2bfb13d9636b68c60ac87dc5834d15c40ac3f69f9917538ba4e9ec9fc86761c2481d37199a6d545e25985051e1f280c747aaf66428c3f806db4f59bc46bb10a6e1a004cfef29b8a28751c7e71a47825af98680024b34451b7117a219d9fa087098c63dedc4aecfdaf83323f3b75b1161db70d7686edac5cef437de90b3864d6888a7a4931d6546b5c18d9050a1af1f9307cfde966b7c7ea62720f757e9983c41f7e31eab11443fd8e562557ba127a3893c34b11320554908e696c11fad30b72939c313cef7c28cd5ceffc46b0df0d54c4c46f3572b2565b52b1e1309a247b4d928a8278796304847926a8eac11200e8c24c7301b3ae6d18266ca4f478340fa18c7ee9f13553207023b36dd716ac08792b0604288e758d05a2cced28a1f7d6fe9276cfd25deacbf08ee7f4c60003d2aef5e5800248a4407279ca93b60d2336409be5f9e57dbde390ef74a2d995da98b5bd1f5c7a415b848a91a77d6b19571b216c948ec336a59f3463b0cdd78a7c8f602e5136a5d55ebfcce66465ed7dce3456d2d66ab48cbed1563d4a31c24cc37b930f89104f21185822386060748b2802de10e5a4032e277fc3891045f560bc70fd480a67875980b68e378d823ae320689d5d7bf037e6e25fca9a47b0c7d9880137478775d579428333dfbb514e2d345fe41725c21e71c5e9fe550f88a4ea090e564801a37562c53ba7dfed1e3f8ca9fdbf1e43e86bc999b2bf85c5e5cf9e3587b1ecce5910ce47961c76d8a69ad5f1162a1192f9eadc2b8aad17bac0d655c788f3ea4a8c2ce74fec4abef045dfad01ad647a5a1c1dc1b970961787c1aa3b9886962c43b5299fa6ebe8dc0606ce556d822b8b37c3fbaefef6640a05fa1c0c73e26156c70da35213ebd886eab0d5b327ce8a7a9410ffddc4d436b13a30cce801e973e551434d5197f362c080806461415ba061ebbd98dfe0d9cc582e488aa6f2afd681f3ae923945d717862309bfc302b6bf2a34f7d8c623706d57ffd582e54731d51388f83dd173068568a524a4b771b47ec9d33b526b3845d13312fa31fefea2e51100f4d3bc6061c4d418dd041c150dc4093655ef28d5977429b85671ca5ccaac549c1a2d9feb93f340b9fcea5cf00ee8418fdb80e0269ecbd98a431a14184b1c0b5a26e7ff771e66a804a28f88ead4690d3d2c6385fcb00367843a8cda37aa8cda511f747b6bfb883aa107ea2727eb429716785d6e6db8c24db02d2a1713a5c0c2ec8c7cae460084cb311f97428a5091e91d07c6ef8bf874a2a04d6777321b2b744f2ae0c59dff0e0e90dbc74cd261c0b0cbfdb37e8a5d146476202965b4a8261ca03f1accc51fc59600e7d94e2ae7957e2df02508255e6362f1514b908a1b98e59dabc7c1155d4e55f16db88b50d5bffcb269023c798db148d431a8a005e8694b967dd905890216fd01937dbeac0d1d9cd3d598926158707e3c63bec418413e7b06762152fba0092c02614073b6c176bbadf67875c2722430ef8e5df73a29de26cec0c08cc8009ddf1e3a41585f0c6fb4987adf051380fdc3254b86812503c13987e0fc87c5bb22d4287937be484448ddb9cc8e0f46dc8d95243418285d34ece437aaa70847528bf0b52b1ccaaab38c5597614309ee3d85bf5f70239616589be24efc615c88d7130db8202251b483f74eca84a12e3040a32486e87cfab8c34704fcd90bae53cf972808eb1e28f4ff2bef817e8d254f7e9c678f6590d9ebb98bfc2adde866a5e7687efb91d38e4933571500d0364769cbbf31dee020587777706a8ea07a1f870b886dc156f50ba9d325f47ef463fb5de81e3ec7a569cdf015ff47025d5e23a7aa175713177ff5c0a9fb226fc317f236a570147531fca9b3d0051a12eefa3d54ee72dd6ff02056f6fc354a7a487c5176461cdc72ec27ae65f4a17014e4904d7cea00a80bea618cb8f7b3af3fe21052d9b1c7093234ff760a12960dd7605a60e00baa21b97f884d6a87afb2fd6f03200995767aa5867217a08b66740716c1d92914cef66809d9859782a5014884730bbadee32238159c36b4563e2651b874106278ebdb78f24a5af6cc93473c1c375003640d0761659081185e4c2929af421c6e6f10b8498e34770e05677c0556ec50f122332231022e8a29cba446279ef839aea980abdb3e6fe59df685ae019cb3e2750765a74a00d6ad1708c41da780360eb0a345b51b32aecee84f0e531e17a5134fe9505550a3a329208692b736a6e4f81ff18b0ef84c55e0aa2ee81baf2b6b7e412502fe881feb68b6460413f76be8e74af2e94e489d739a5dddd66a14afa291bf49ba6584e6d07cb9ec4329bf61d3ee2453ab7ad12b6493c6205e4149ea84483655e9d0cfc09b42e1396003c2116438163352ee57d8bdd83890b1d6ae74617ab4e678a4158e06a5595ba0483df9ae168af96a3d1f9301609fe8868af7b44ca3d73372a075b1ac25193a76d5ff4561665b48d4dd9d1879eee1c04cde24f429aabb16d046738acacd51b8f2b87688e68b2a30550285c514d7bff6a1798971c79bd10dff5a16859776222b4096c2cf663d31e3d199fad391675ee2c7bf16e0c1099588c82cf305dd139ab906778fbf66fdd0b5a71ffb59f93da9e75389f463b37d8795024b47c3ac66db414731f71f823b3733ad56e34d518d8094651c98018e6077fec02909a3d3a9e598df7f5bffa6d1c8d49b737f58f06d3ac24d742009801aa50076f7474c3fda6ab0b4d3f2ea9ec47f318d43516d6492e632d69a57bbdb7f0b0b7c72f55fcfb41d9284d729618e6fb5cfba96873def08c52c4242be60cb6fbe3308dd025d0ae1d59c1ac28214e05b0674cc283b8fbe956c476bad6b86eef7031e2e18164766c2b2e551a671177020f89e9bc43467823456bbfb0b550353f36777d1ea1b12931fc2a340cbbba36bdbfabac686788bffb6b935aa80aa7d4fd4c4bbd714e394b39cc73aa9c889fdff0494b4a32cbd1faee7489f70358eee51bc4cddcc4f90cabca2f36230e08044de072c7670ef8d852edf3f3704d9debb77a5e4375c990cd1d1a9390bc23a3db201d4e450936681885b2fc46fc9858e5de52e532749045f8d5f0929c9b1a150971d297ea3d1840157b64b3eefe996ba31c71ef87b89228c8bb041a0bfaf307b546178400b3d7ccfaada1a84a1885173a79b3a0e0cd8700d122fc58d102f1bf4bff76573277115c0882021fd7ab40fede00bc4faf692a6e80c32f3d4b8661e011a8ff875e7bfeab2a4fd34a6a33eb0278eb504146190db3889dae5d39827a6b9fa0f356e281813e1af868c8752d7bcd359f9af52fe2b8a0c0033e7c06afa9a012a5bc9dd1db4caf70c23528959c6ecb0e49fbf6565f42beec94c68af302178e84153101613dab762af989f131eea44f81d22bd49d37e4a65f9e087022269373a1614b4816cf5a2217842bc93d729ae603509e5617ab8fc7204f119ef5f499bcdb9e5ae103efc8fa92028fe4636e077b0cd879dde93aabf28a98d84dcdd8c7def7609eb1fa33521f53a7767ceddb174d682c22004572a9dd3bba3e6ff06a1c9921ffd997f6d9492c634447e475126b040a99c044f115e00909c4d739a5acce4f6c6e4144378d0a27193cd1ee1df8dd86d9648ed94b7ce48b5934c2c4817e00c1da5d8a5eaf3c5ed3a7db36981d5663305b3061e791aa61107fb17d981d280c11e139b1b3bb080f8bdd9e29b31161e6458b2650cc812b95f1d38d0cbbc620321d9275aaa2014c4b5426b64ae08db4dfca534ad0923c83b4a60a49d9ba9ae931f79de063f62b3c7e1d21f048c38502a65a4497b5c959391005e1a1131e957666b682f0ddf31a8a8f5c53cbc30df6e729e22e4107d97539178689f5cafdaef4f237cd1fe6680a314cdaca05dda83279dc444a74b6d63de956b758e46074ca02a0b53066bbca30fa078e78721873aa263150f1a5d4b4733f91836994ffaf24c5dd5664bcf4caa7a6296f278be74ea38d61a55e2ec0010a81ce29b92e1e2e94fb070ff77b47bec5b5cc841be4a41f436890c47f3d1227097014d896ab0a5a82d1405aa18a8990e6564f103245644c50f69b0d0c6a69fe8d4ce07bfd08d50ae5765c6a84d89904195c3fcabffdbc189cc6990d8bb0e5b84d3c6a5613699b88904c7f10b27c47061c05d4444b3c966e2e8337cc2555be2eaa3272715502d8f83c2cc7845d2e3d9b3648da4c03c92b15f90ca42a20a01989272ee654757e504886a9eccd2400e226be4c7c6198a6c9d87232287d047778943cc67d2d9bdc7298dc70e4d1c18ba0bf1b23ebd9675e3c8ae7778ee2bc58c547409ab39e2213a5037087f94c95d28bfb2ad13f7659ca4f4ae837124ca3d6e7220a6a38abfc786c9045d924d137813d8fbc015e6b270b315e7abe1883e853cf7c1e80537301c297464891e0dd2f9d9703a0cf1d3742b81dca79efde1d3b190f4f146d61e79553ced1fc6e7bd2f6ed4ee18e8983390782cb6207e8b97081eb9f444c5115a48962c0183d8d24a8d864861fde1cb440e3dd166f22eb5d20e90ec6f85d86e13686305e9601b6ffb56ab953e86244aca9beccc499ef882768023e15db999c35a8741906209f5b719d4b8e0de4b9e437fa45ba9effb183cb51f1218387139f1d5cba870e699a30d7c7d6b0c3429432d14a1f93b9542c2c9429197e32eb27b80af527a4f68c6b405c9189353787165aaa5a5af789418a01a4440dcd76c393ee92967596c08c08a12876f1eea59d1e63352bea24cf86f0af1bb95c2e071366e7b39e2af30393f88d32829edaee75fe55b0a2912cdae0dd1b226196ec0c9321f190e77ad9702fe2731796092455cf8293405ca2b7f9714c19b919d817cb1569279bea091c8cabf081c682015aa9fc2e5e2e0d7fc94545109965de9a950392e7282a31d7b9d2bd800dbca2fc2e10c776fc90bbeabde1799919e88dcd0a6d2cfc016f6db0681921a1d283afbd662f16cd792528232cef2c0a4d68ec886b20e3d23d1ddb0abf345aeec2b1cf132ea7275cebfd6c7400fc8737439c6c86290e2177c22a778bdaaf46064de868d594cd29bc1ea3e689757818146c62ec001d8b5ac437a96d4e8e207cb0038754004e3caad1ed862a72280ee229fcafdbc77838a309bf9899b088a0f046ba6532817cc55dab216394ae4eab923cf85769d02dd510bedc1f36d73fbf7d4ec2057fa13ca99359ed97e6868ae43ed9f309cd5f970c77856553482fa31696059aa61d61d74f799c19159848e0f0abf2941708b8f370233afcc4c5fa3c83d0e10ee075fb75c9194b93dba81b234f3df30470d34e7f631a3ee9fc94f9d00210779ce6118bdc32a07760acb6705a808398b252087205c44b77aee372ae8f5a2a7cdcf7456f08bffab99a07714abe51631fb699fa3866f0c6dae5baf589c650cf09c2d388842cf219820e5c133acd258cc8f3eab4e14d7bdad014eece4e05d7d4da83bb93e2948484a87c78719ca6bd9b9e6bf444fced5e41e3ff9a3a633679d56778ac6d2f1d652f472feba256da8959b89375412368b2eb14c22fa1d5302b8300139c74640890e6e7d1e91f8401c6e26c506b94962e4011bc7f1865603eb6c3648af95df92a03b5bcf5171685a1e1cf0eca46a8c00a2f35628f98db9f84253cef0fc219185a8f2ee0241c30dc9913bb608f3c1b08912c52f38750eaf7b7330bdb78e54e5b8ee586d883d3b139a05b07f57d4f22c53e59884d14912dcce4968b9dfd085b939e55a2baa1fd47c332c59bae7f82f2d53e1a4b4e14aae61c46577d7e0fe4404d975cb81a105a83f65d8bcf190671c0cb038760ad5e3d84be1e3c1503dbd86f907953573b668b9edee75355fe4039fe853e58fa95567cc4afd598b7bb62289621a172d1d8cabad3515b6cec915ce8e37c4e207ad322207272883df1c9e5352ec76f706298e3ceb469bfae6f33847df37ec9a4d74d00377d6e66f7cabf93d24800e304964b83cef7e6d813a44a006e2a084b77f7cee8f0aee435759e2e7167826d8c35a80525fab4e172de7fa8fffa9db071a68c2338562ee051e86f9d6d47eb428b703d5babeaff73072544bfc92cc6487961462a3b5da836d1a159e98a0e171b15cf291c8179d65e592adc82152eca84e85e80e2152943544ccc7e2b3107724e3380a5e29c83fe37e01748253b900f8111331517c2492b8342e10ba041ee978c08838aeee17989b0650e06c2dba2b21282129c8d8b6174017c46a40b8a7f004b8b3f70256e910b1e71be13769211f7785354265d9813b2bdb144070d52859e346f7d03262f7637d293a43231d5c1ed97ad63226f8c97dcee5e1623ea0d1e194a52dd3ea8aa7e497bb021577711574bec8b2da2f6ac9bf9af2555abccababdbfd2ffdd47c04ea7f87a854305c15a539998192636baaae90c84ab6da3f47cbd96d76fad80b4b8ce15cae5cc5eaa66670ff3bd702c0e0dd390b00d05219a45cb7987fb4e173bc6d1686243808df8b12ddbe0ce80da125d67623dd44448484ec480ab70a8d0a8df68008c3d1480c87835710e9c1b99101f7db7b31426855f3c527a594ef4939aa75ce7949693debcd292f4a519725db8e045513539bdb137cc04b9a29cfda8e94ef49cb6a3b7d22c9f89e73ee456a3a091f843b5793b4a0fd7ac45e501b6ea730a8f9059559a1821fdc6ae0f81863841535618c31c60affd6c06ea90b6a7e7db2fa8e31c6ee0f95312988a1a7b7a02c8aac36bdb31175ceb99cd95a08ed3b11767feeb35b06b60a8cdad321e0dd11809d32265a4e736d0bd49d2ac13b5c7325702598c033c53c133d8317b0daad3b1d8c8b576c8fbea58e86657cc52dc2c8e42d1353b43751d1d05b16bb6a929080757a99a0b72e014643ef142d075b570454b0001aeb921c8cfb1d8cbb75f5a070bb9908152c80869ebe729447a5570da5d6ebd313228783ae1d284f0074d5c8bfabffec8e36b94b4b449bdea542a899f53476068cc4319c71cf6aed5cb3374f449f7086dfd12622bcb019e212d126f769f30316189ec1cb627c0fbef6248cb2eaa2c27bf9e8317de0f9b68811c21621eccbb77eadb51f4ef68887551845747bd5459d97883e35ecf08e3ebd4ae3ce2a664c7e2863332686b92464b106250f8a12740fc2a6a68ccdb5ebd7ddeebe3b5b06949d7424603530c1ed1a8d5093daac77577dd1cdb6075babaa12d55e9aed25d99c7bcebdfb66b357aaf5161042082384cfbd67b50a6e67edeac1224723318c7af680f6a9096a4ccc0d2a7063470576aebd38212a53c6e728aaa2a895474d19df7bee3de7a2f401757fa779a61d1a88e48adf1170b6de7bef8b27f8bd9717862f785ac22726475bd0dc4b6b97b2b516253563abaaead54078d990bdb449b6a0464a5bf9508ebab324854ef86077c9409859e1c4122c9d6b72245fe4a1841525e78c8f8ff2c9f808a37c941232495149a184315ef2d0962e07217c314a171f3b4639b17cb1ae4b5a2f9042277c707ee9b66207277a58c0022ba0d802bf3b76d9502ba0b0a1f00fee9061052b988212b6a083e1dd29bc74bc1c9c810a6bc08c99de113150f60202ed1851058cea519e62d5b82752a058967a37a6cea2768836ed786f542b7cf96114c29a52085643b690de0eeaa08437479b5a0a95b38b024da37277389826a208cb1a082aa4668662876898a6ae134258d40c43c00c5b364248411535e98e3e9130b5ee5d578dab945a4729106887c3ec0a2fb8c0ef96659513cba2d72965517a4a596e87e8efa2ce09bba440798e76145e353b8640b18d4664a540f968f494d115721a1415384bc45573dd1d43385129bb6a407dd95c97880a224c450fe53474bddab5d6e6840bc3abe60a2f444f24123108ca4910b16308cbb2dc8e5941a06aed68d38e1a195b42635d73525b7d5159cf053aa8a2e615ad1d39227d8233eb19eda83d4309958d565494723a19d173c5f5b50649f9e4b20c0799e2a15c8472da282ab28cc6d1d096922245bdc80a398de828368813a7115dc869ea2983d3a1889e224241b977a2cb44852497d22e05da6c8a147dfd5a0b82a36b9645b2aa8b5a57cd8f781b8691b86eddfa93d6415b39b91113035b1019af04ccccb409cda063d1cab26cc343ece851b1a97ce0a5431eca90102d888c16a31a45b53661a4d2d21454026096c5932d449689298a10bd8a2e110ea6ef44afaf6c4de90229af2f02e52294cb5b44caeb65620af994fb0107d37d2151443dca65a25ee6608c703014963713519fd94f45c368447f31b32716d39c9327d035f4b6203448ed0bde2a0df5baaef0c249ac2a4c299d5585db25a43dd18280ac2052be17924fbe50c39765599f97552d99021f9c5b901624880c38d0aba2e6d5d0b57387b67ae25e50c020a4efc56bc648219dd65503a1bc6ae021b528f50761493a4acad255cd48515252124af9eea3112d14b8cbbab3950fbb6a687c96597f360a6a788229bc20d0ae085c3613d3b89574f1b48a31ce19e5e3454978d0e17c8fe13867cd8f462d69613fc9035e7e4e675dbf2a6ad2c3538bd1cf499754d46ca0c682064aab3a5429e194925651ca294faf1f148410d253365ec2bb57d6fdbde63d5a1b861f059b75c54e10cc708b4d3e96646baeb5b777bdc7f04b9f483f90b07efd8a97cf35682b278f895a740fc2f9492b0a427819d9e5ac55c9a136ccaee82182dd5f6c21bdbccb86e101c75369590dc7ca87b2ae06695bf08a3a2e6b546d1e75d9c478d7557d51ab306a9bb8f1d09a73ef7a319da05ef15669a8edd45d3557f438819fc412dbc8c34f2adda58352dc2ef7674df0be5073545d3631de1bee11033f69e1264f3d47cb577d5165fc8b1282e669252588c5d7d1b9ebba3efb74bdbdba6a7eb430a4754942708bf112be495b82f241489fab675a5151caf76e6e58bef40962783a5bc607190b1b8ab8c7189d631663ce96a684cf394639caa228d7ccb966ce59ce8dfa44c2cdc5b7abe65073736154116e782039e7dedd1442e7a829db557faf1c1d41d8a636c2cdbdcb26468e76578f18d5ab579fad7ad593cade165e1e92188e79492a10f206cf207b7c1ec5c858649045f6dc7ba33ec1ee5b73a04dbb2be7f29b323e47511545c599df196ce86ca69e733ca34ab35f92a5d88f3df71eb30d3ff7d87b8c1900d4cfb10a8dd0f666a9096aaeb84d3492a06109eeeec01b94d02865636a8d783086e372d136dc7c16ace2252dc670503857b73efb74a356ef2c9c20b15e5596550f8f54e4dd59e8dd691d8de4291d5995b5547ae45401833070cea942470727e190e8e077f66e7e3a3a585e247a74303d904a897ba28333e3d1c1f4ae341bcd861be480654babc26a90423fb53daf58950dbda1b26077e6b0ca68c5361ea9bc571dfc2e1e39550cd1c149e44001890eb5e829bd3c7d3ce47d77922c4a2b2aaddb9255bd04ab97a8eaa556514a7f38fc5e8f6ad4a7918ddbd1c114890ea6f7877ba283dfad9a0dd76cb887dc505bc5a432516fa05215b6def083410f8222080492a00902812810055520ab0850ce00a66f59c04107d32cdec08357ac2f6af5f7f7aaaa5f555596e167550da3fb066af5189fbc6aaa3b6d56b172c394728f073cf5d9a7ea66aafaace86faa3b79902cc65e3d8f5865f39493da1f0ed39b99c0b4b219b6e7f80ace97a8529b2fc559d986e9a33f3eb2b8c0d6696e72523820c1d63d555986a9cb72e3f79c0c3950f6ca2e77591de9a0eff4b136aab55f7e889d106d72a78f35ccfe45edcb78f91acaf9fc4ab3d45e378439fa543d3bd3260786102d430f6f5468a8d9c237f2a0e3e11c78a80c338a552d88d6a1d2a2cf5675a8ec1518b5df72301c1576a7201a26d319268cc3bc5613ab0b1a6a2191ce009203080e57b55e7587ca9ea34f970ed604bff7d804bb7ae990b7d4235e5e0e1dba7cc4cb57b58a555d390bca393f60ad2d50ce0096f0f13ea68442e15aa7cd396fdb71403ef043cd6d496e3d5af4c91901f7db923e312bd640456bb89901f79ca517a19bef33c6f8d28bf3071318044120e7e08aab4375fa2c77bd363546d1a176e5728bf2fe5f66fa14ba10dfd1a719ef0fd1a73ed5f78ba880c9c9bcbc9d0fcf31b835e0649a9029803beadc9c378700479c36b9dbfaaddf84389956c4c1f48b74775b47de62a510c0674871ff84d266552e77b1ee5200408a00543aadaa270e0e0472eed4458aa2fa72d781400f2441d5adf70dae56275d75d505e0c7d5eaa2ab8e894d605c0c01f717d8159660052cb02f88610c76603d3a26c040dc08bb9b73983006049001012c805082320f2c78c0ac70051b5730c1c1e6966106104c6fe821055710d960c60f98153a26c0407a84fb660f6cf16240f9035010d5e03406dc36b4898ed905d7ae02651028915ee04803dc1007b8771a10894c2ee07e8eb671513cf7de7bcebde79c7baf5d0194718807370edc97e5b8267fd013b2dcabd3d6e6a97973736f02cfd0aff6f7ab5df3c7bc79570977e94ea0f9ea36ed8cd588cfe19af5694b3de841f3a1536781d8c5a3726209aeeefe7073adc4c4d4a9cbe3dd3c8f8303872e4ca27302ccae07301a1728dee9b01ab0baf3edb56bbdfcb05525119c7b4ee483fa5e93016df799424be2b384243e447857ec40d192f8f0a0d9243e32883146b704126649d060879e6f6849d0e0c39a0df61950f6d282e8bbc1089e6f4c5f0b22be05d1780038d238c325af645094cf8d5f531dd4d84ccc06b3c15a66a8b80bf7cd92d99867cc46eeb79b3e9c97460583da178963f9f6838591071cdf36f96287841211cf0399f8c702f0bc8dd5c0f445c6d3eebd40515fb08353d0e3762dc20c4e07c35810266c25db8231c1dd5fa24fcd9e30a18146443bfdd04c33d3c05ad0b081fb79009786111a685377c03dd3700e42e8200d1a349e7ca681db39e79ca3a16359a1eaf4633fd7fa654a2b6a76f773743fe7a3c23e9cab53501a833621ec41491961ce6b23900828f57170fd3a9b7dead27cb1e56735ada817e36c2ff67873d4271007727e6e70dd1e34c4d007a05f8e009965a1859f1e4d4553e1839c2eb488430ad6d0634488eb7d3560038c09712101c77b139f44bc2098811f13dcd90b64a27366bf1938cca490841ff4fbdddd3fb8bbbb55f0b3034a8784280deafb3c8d417d8f2e9eb19b78e88078670e6c8d8a8afab4418d27820655eec8f4ef1456d5b4ae46db6565d9527c939255d56665c91ed4e74b49ec78976f80bc37345ac7a9303d95570fc9be38c20db418827d71841b54615a958f0ad33b3fdf4da680c2d378655bba26bd2ed02368527a5df4ba3e2f0931ac01a541cdefd5bcbbde4445e34eed9c0d7a57a0080d8d010deafc9bf37a7e185eb62423ed39b3557a0d14af120f79eaf2d4ec39a9cf0b43d0753311d89ad4de506f2cef6c137b81910beee17e73adbb15101d9d418d118c19d52100be3ffbb039d75ad026391899022730815a80d158b704f48cc68a971602488e00eeec32a8f4143231670f1801761511438b2f8e70032dbe38c20d68e88b01a4978d61f103a62aca87cd44e0f92625944dc6185f0ff8485d948c41f53eaf9a3aa432cc68fa4d4a29e58c2d5f6af912255f7ab2b529a92df59dc442c70f58fec9ebe3b558d9400b5bc8c777f66251ef53a9f62914d89de5ee5d056639bd7bb40d6b81ad83b49004c76096851688e07631be6b897a03baf50c7abb5b0d04028140b79ea329eab2a99be5e79582e42e1b869ba868a6a0ee2afcb410044727989eda02d387b260061c5feaf10e3a7c7c02bbcfbbe71c4c5936376c65c18621b8f76543ad6a35abba6a1ebd6caeea1464514a79d0b33c74f170b76ea60edbba7b7bf57dd9c8c350e83ad0cd13b3bce2276df6807545e04ac80111bae08513b23042c3188ce8d6c56362ead1deb0dc9d5aa2d3cb6a970e961e2c777717d9dc67a96ee4ddfbbdca547e77f99de670efc69dde4c51f6063e043ce2af5314bb72d99b14c66a54972c8f978ff7d02dd0592c5bea017a75d0abd379bd953f4b7f03fa55835e3ee2a99be11f3d75f3cad59183472ff14039e828071d441dc552ea95a5bf6ca64e437d4580d1c4786551a410c25801de498796ba37f4b0be5e3ee233a431549ea35140ba138c1520d3e4702ad626078fa635ddd0335ced0dfdbc215bea410f3a3de8ce5c3ee2bda1b73520070a4d34202707bf1bba86c881c265e36089c76302970033eacf3681a91c4ca9f7550189983aa52c123f1680ad0389f887c48cd5085925f831035367b4093c1b9083ab0b02120642c2147cbc76e4c08cd1c8f0edb6472f10540ab32cd4a0056669d115f45d610818845916568002a67db7c0fd96d768de9865718538609897c0401c76eeb25133098e7a07f715aac0ddec89e4b5da146f16576882e11d75730ee44ce0dce80ea3d11d28290fbb49a4368d4e501b8fc7da80e35b6c0e07458a4823b29fa3bafb72af7ad29c3c71ceb91d9ce50e1a183d38e605ec6c5810a3bbd3301c287767003bc5bbe705602763033b016037033b1692643241d0bb37c351efeed8099e4973d2a606c60faaec27b799b41127e3747ab8995463dc5c577426e9e6592be9265375734c6e23b2aaaaaa7ab5f7d4da3713e7749c8c23d5cad34ce6ac554747c731d1714c741cbc1113732dcbad25dd3171320038e937996266707e332fcfb3beeb8c952abece980c7330319e49f8faf3713200b8ef887bb9200793a2e2789c0c84543543aaa120ab71a7ac0dc33f3f3f3f73a045b4a94f0453e25a109d30741a8a2245dc108e1ca962e70e3b56637a59557bd2a6e6f1a88b6d380e713251495472ed690e6a8e3f388241a44f393609d2a72c89e0227d724ac07d29248221756293767a6a68a67ebf34b035b01afddbd7a499fa5109e8a45a95e07e3ef4065506b96adc8d6004a9f2398281fbd57f9c4c1cc2581cf2c3e2909f087f9e8b75594f8bd6432b062ae0838263848f4a0734c0c401f980cf12ec8983cf00a01c02fc1ebc6c6c98b44b473b2b3153811295278408b9037eeffe6861504cad7cc6477d5a91b7ae9a15f7a385614119a7cf72968b6268f942d9f837c35a6d925fb1d6a2645cefd228aa3c7d44860ca970cbb00c3bead98e92d0f21b77476d92af6d9216f5415d49c2c31365c4e13d368928970ed88588850a2448e4a5839d612487111c52a23072876664c243197f9f6ee5d21165c8b8b9552e1ff031b258d565e30edfcdc178caa684b2c926656b000031fcaccb077cb74a4395f779efa74d3e2da12176f4bc2d9428e97e8c67323ab25c2c2cef2a082deb5a39b436acc6c1234e0652b2c134b0d3fb6bd226980666ea63e813913898663822843d0ff68c50ec6bf2c36a340b8e60248711c9df6511890fab51a4e6a8242a895b849ec8aa6c55872a5f8471b16449c337dc90aa344c261805c3c19af8f840e75e14343045b1aabf28a01998c8e7c6444629efeb29bd9e1e6ee8316e4f7b6a6836fa2cf635b18f0dccd47f4756aecacda4947704a35cd1cdb3be343c9f6704f78dbc28525490700467b983e7e353ab4f0f967b3e55a9ad67730c9c9f8f9306c6f3793ecf47b6f6e083f0f94823b685e8623a8683c178684bf13929258477cf39e92094ad5d7a4aafb4343075d69beefd689c73523ae7fad43646da2837845aa50968137d31c2f85e6c0968535fb7ae3baf5bafa15b2f02f40b74798b08dd0a5d9383e947db9a75d0658264cdb7bedac5444a734e73f41dad9d6953d5458dcf3310be0723a43de01f151f63499a7a38c79b83de99ca8bca709e899969b1b547dfa34e4d095f55d1aa02b5245108f7001095540d820265afa5a007e716dc4fb2f7e4e8a4e71a0a81aeea6c588d7ebb5a724b6e710dd39667bd47490c876c69e1a13ddf409b0b6a374c67a144096649bc0882fb329865818522b59de59a0086c3e17c03f72b4908f4b536f59b16cbefbd18218c32c625978e18319e1b1a93efbdf725dfae9a47e1941052734238a184b0a5258fdc078d6e113d8f64509c4b41793198c6cb196af5fc62222246498c8492aa71a797059d08273367958da74df0b186ec07e6a343e8b61d07d34298d04ccd180c7dad886c45dca5036b4b60353af9d8c5c5ca780f3693b04adc19f2424309886f649c5ec669581927007c426a17c6e68661ce2c93ecb1d07324f2aa6c8e358aa8ddf5706607f0149b49d884c4ab71a73480cb6a2b0dc03e18cbb0a909c0529eca9e2311ca531d001ecfe489110269ab1868538cb1b5d65a7b2cfa482caf848bcb5deedeacfb6d6ef8679669217f1c4cffc60ddca085dba8b5e07633bbfd652514561269983e8b9554b01a53a7a50eee9f906d18e5e547eadce74844c7362c322d09519e3a8df4a9cd223b376ce471301d95cc21720704923bb2a7ba258db0141bab68530403e7871df562737c82fb3e58249e8c02f72dd9735d66d8cb6abb7098126b1fae883414f1482482fbb70c47214f9c0c10bff13ee431b253a4e708131e8864891288c4f92821b1f597a204c437294f395539cb2bca45af1fb54cdca9f5b34f28aff554645d8c47cc6078d173f49580f846d2e853e8ec46c8d2886936740d60c62e1088d94df2be4d6e06bbfbde0edc9660948b506a9b2aca9d6daa07d9d7a6facb5a6daa8f3b4e66d430f5adf276d5d47a539ec3e5e8142be32a36471e19d4cab840d8f6c4c1f45dac90ee8143603862bce58378ff2d713238de7f3f5088939929f5f0517e46de7b664b6014e7793c37d4abd3917ddf3183476f3ddc1eba8718b6396135fa41e0b00d0176c636250e6609a92ff3d38c4f65db9d73cfe1183bbdb3ec54f5b81395f469f4144905c3b1d3a72aa491c8e36410f07e5ce264640ec487cc21b2c7c1f4fb29eedc883b8fe769d1a78c33e35e4f9f1c4432c465d8a7c81a247b1c1798e52c2b57f6a028d92222c0ca58e6606eb446811e0fee5f7127ee64d604e7b8831b88c4ed54bbbda4c51de85c6bad359b6398730f76fb3469537381aba88d094602371e5436790cd015c0c39f10e7dc8470c89f75f2cd482349933d1df52a48af1a774a415673aec6b9a657cd357946240bc2761a6d8218bebc60e79c73242ce1e143496a9ec1f05e51f39396e59c73b33d61c5780333907865bc19c81258beea3da47a3d64be7e413fd16c3821fd02dc43a6b33de487c4734e371bd55b28a1371fd3167abdbaf90557a750ce39638c31c6f79e8455f5b7a90282e57befbdf7dc7c8c2d95142dca2a31032791e32e90c6c39d8ad7b96e13c7c2efceb9f65c775bcfb9571dc618638cafab8cf382dd2b3adb44fb340399614a30750a63bfd373dd48b407a4add1bb83907a9ba83a04ab419d3a7729f7288b51ee598f72cf51a770282a64b9db9e98d10171ce35eaeffda377a3e02c46db1b8daca8d9c2ee2368c1d782dd3b471c9604bb100fa82f673d0aab48496bf4ac36b5f5eec8ba8d635aa3fa70079ecbd1401e7e4c32fccbc114c2f82763e4019f1610c3439873f0fb9c33263f1ef1491a584a99719812fc07e11f74b6c4c32101e4e11cd3c399c16149700ea6ed1e8cd2624be00938993c22945354ad76b689b22e62180cdc0e07dccf0408e203cc463fc360f6f83c1a9d3db71ce717ec42b3a873d6981932e6ad96c5e68aadb3e487592666e1a92a2896f2d41591354778ce97281a7892e6adcb669cc58e5eb2312cc9e6184cdd149b7166de68c6adb74c29bab9615165627e004f200ee5f5391ac512d1a67a1a857a45a7304bb147b027f886fafbb4140bcb59cbe4193c27e3c9263c7d1c4c9fe69c785a788ef0249d4acf2d78deccd298b01add421aa6db13d7727df0e8aad88663309e233b56d4ea8d49a636c4c1b4112ab20da758ca53731f615aecdc251c4cf791f624146a50a89969f1a6f44e0b206daa4eb0a5a67c0f483c25158e6449d223a4822bbac0f1e1218ad0403ece1133736d13d28ae0f64aa2c170b8bc7f8f98c13733fe6229cb366bc6299be7c599c1f3339a8e6567dc25645817eb8365b48a3a9fc3b1582524ce393af8863afdb44d07cf57d4cd34b3d394186738502e7ae9fda6c5124e4600ed8893f1e16d1d3973320130dde79f275c1ff589e5fdc9f2218e74b7bc9be0f91073126ab9b3d426d23c8b656d5ab1f32a4be653502c18785e0096750000f0e2c30c9ebf96354ca61ee54336bfccb4604a98582012c357360391f8aa918d3dc170e2d8ee6cf3e159c1020d32056c773ab54ded2d040b1a7081fb2dc86d3a4d48ebe8087918be3ba24ca899c4449f620bb2400536e03e690935371d1ed4dc749c8e1020638cc5c862643132169d7b2d3e5bf3b5116dea409bfab96d61862dda12266018e1dcc2684ef093d113dc275d07b763adb5d61abb732ddd9460551d3640a0692ea7810e1861bd297132f50df4e6e36442a226d352d060d4c00bcc8ed31b60413422cd469f957adc9b1d245a176135fad008b5bdc9e0fe122d884645b3d1af958adc458ab816841382fb54838173a342645b0a588697df0bd4836e13f5421e4d10d09d9834a15fb6d1b4ab884753af132808d180de34b989906dac00a01780de0a4c3d0a4f6051685dc4cdccc4c4984c3f2b42312b72a080abe7879915d629a7e3823418ac46bf7b9aa65d43cc1f2c0ccca633b589b63584b297760fc6f75a73ce39e7daa57ca3d869f4299ee453992c21f5d425337326bf2c11c3642ae0607ac6896c7b45a6913e5d4560a61e429b5a8433c2efd2489b8abcdb0ca14f2d8a6e4560a726053359e65e7ed7af85447a2db26da761fa4d0a8683bedf80c070583f6038400c47e87d78d55ca30a491002599607c4334893825db6ed54d140f463a3a21fafd9567e6c5ed6a61a6a4269044e79d5c848e388d14d4bccf9643e994f726078eabe022452ad0ede6853cccccb338cc13f066ad014287ba981f11445ab18ab2a5655acaa182beaee35266da2288aa2a87f7ee0405a2604d913260dd3efab66be9d9a81521445bd29a142a7eec3694f68e4a28a418dcf8d0b268e899301ddea5757b71c137a7b9e1008389ad075489090c3c5c970df47bd5d3dde9028086157b4ee11ed09cecd097bd2a44ddda8a8ed4a241b68a3612fb987e07e55a4e62604f7e0ded9aa4d080feeb7271a912b54f704b32b245b4d489b8e5073070922a465ae33f340e409274ee3fe5e03d140f471b74e82aa018a20b5e11ccd2c8fc6ae0808dcc033f65ee24f6df0cd269183d91790ef9a801b8b191cc1dd3b5a9ec92a38331832131b6a7e736730ed96dadb8f25dae35071bf2a0327b83f6a9962b2971c738231c659476d6aca0281a4927bc3ee6dde92bbd80aa3de54490e0c9405a04e8c850c82602c620006ee763130a1698d0425ccb0e041cf0b41c86c6edd586befbdd77f6fa566b29bc1d618ebf6fadd7a505517755a3b5b0d9b772701f07ced3d47575dd4e7a21222548c30bb420956b8020936c062054e42cebde7ce4aae5f4f19595be7c3bd3bca75b3c698e302930b8731e1517121085dd8028df1a240a8ecd449d6ddedc3e607dc7dd6cd1873dd2e3af75863d8c1f7f0d57f570ff70bbfb7cb01b32f1e3edc5fdf431805380c7910c60863842cc6e89c6b9fafd968dd458072061a363c83af21a4a68c8cd986dbbd183b4658821142f79ed2750f57af8ed9a7be7d6fffb9fb5a25032a9acfaed94b869b498898243b4c378298ef47a005415b7d15f54c269335750c003b1dd4570168a76dcc0633c19b9c8c6430f00d0f431852f345b4a9a98b8136f5bc481c4e4739eab6e9dc6b77884a8836751115c0c033d130cd39e79c7386b040af20b2248b2ab0c1bdd96807684cc0f9312ba65024491e76b8a03c5c1879c891e2883280000c1e8db3124de8ee6eadb5eed6dd0600e59c235412a605167067f1839bc1210db8bfa802f7c9b08331dce18b328cc1e4189c59cf02fe869934c47461fa4216baa83906679c1b99f56408e129ad4ea1cdf149e46048a955556d6a43b3312fe1a3951152d0c6f7d326f8697fc8abd2565440ad6b04b628f86b1ebe54bda23e6f04890852d5ce0869005c08421748ae0b455e91578347e40d79438abc22eed76acb0e9b38e79c73ae4e1ef494dd15d436b32555e8e6191c7ac1540b6e19969ed75d154b79aa451262479f52ee3e449f46770f376864fb2253f7cd21108984338333d3ddf12d5ecef7d8a85f1ea87b058d547f3f5ed43c754c3cdf985551211b83f3643c2eb31ea6a4ba8cc9c4b7dee8298aa2288ac22dcf38376e6e17bd75d9a0bc87b7f4899dc5f86b12e3a49f3ec5383dbd6ae8c8b63cda395aa9a893ced8a9f496d6ad2e650367e6232dcbb280b4b43791892c4bce782512552ea7d7e5e67e3fb8bad90613d317586e7e16566e264d6164845e4ae9ad6e651a83abdf1bf9689d368b56a7665c208de5ad9b1fae6e29be7d2e79570882feda2c6be5f3f9fd58b4d5ffceb82eb7744997e5d24f96954b512db6ba6caa9553d42b751075483d44fda258ee5b99131a9151ca1c265e930706ce53245f93e7644ad1fb796d98ef2706c6c610cdeaad7ac6b9f12e9016b58605263d5fe0c9c2ce1490302b7085005c192900ae9e6370453f2bcae696e395328ae6a5b1e52956068a0d9ce7719e160a6b46ba924acf37cd78b6315b6ec48c9b6d985ebaf92452e8fa58970a51a1aaa26ea9f425ce860d9cdb92934875528f383770f58c730387ee427a7ea4b75878d954bf09b5fc4d27d3588c0c4c8c35b91877228abacbcd31b85b5a4db3202e455c1281f5dad0828847792e00a667d900f406a537e3dc6037d643a7ae87f5d0499675ca3e5c0a1d64b13ed1194c1380290ba5f4515a2917f4a4c770a09cbe000c87e8f4ecb5a1d9e8d3f7fb89f1cde61c4cd92df570af6ee35e3d878910e9e69783a905d238745f1b9a8d18e3cdf670d925b589bd02b0317df52e82a9fb842c4ae999c46d8993a94be692b604c54691a520a6234bc52251d5b4f1949d57c2e1bc04b6521e9f72d5ccc6297f78641f6e96f2a05887a7edc69332b1d4b25c3a4215899aa8ca7a5bb974b4531fd9235ef0cd3c7dc81ef142dd4cfa7cc1f494d11816bb6c7c50807d3b630910721adb34448128d129944bcd90bdb905d378f308d3399a6f765e0be7058feec8b6232d0a235f34231465564f56a31f9a1415290f7b63e27c66c3d037a94df43434df43bfe845b16e0ecbdaa43284a85ef6f0b4f30cd5fd399adeeb0259d6cd405e2b43bd7c504c852e9b7af8fade98f8f4e99d1e74d5508aa2d42d4add8af626f42630655943c224c5aa9ea32915a232459f7269c89ad57ce8940342d505724ba15b970ea04e6fe6419dfaa04ead789a479756e8b2a94e419535ba2956655929577573b32cda456668524ae9cd0fd35c710e134d50552e01a6af2ed59ce02c0fa46fe29bc0947a98ca5b6f4c5a10d4ad9b5b931f0ee796296b3ebffb60f9ebd56f75f375abe7772bfaf84a349d0c005e55a796a57a5a4a1f8a976a4c9a0d79147b05c0fa7000d897e770b552b721a13403698a52d4b44e455a86f94cabcf53aaa2a8f7d5a3ba454fd90ce495e24397f492b23e4397b22e7ffdc53217ba19c803352ab0bc75d950bfb16e6e970f0b53d4cd49e460faeb7a75d55c15c4d1462c02cb5d3daacf87abcbaa3ab58f07cd15d35b8d8a3eb532b4201aa6f4d007379feaf2115e35d4baa51204ec5f4e817b1ffe725370efc37330b5b9628a3f80294ce92b9b83290be4e1795b199a0d78d9991d32a37578a1c56047c9085b158da751815b13fc432f28e714c1ecd2611d04fa358329cb8aca280545143a2940c64b31ede618a5d2670899566db125cbda74cb7a460c6e3d5cc69d388d8b8c182119d6c5b2062286b52cb667948222aa1102fd81980f0ef369b6cdf93035637ae848073a9f94ae8f98c16cb6cf99ce33985af99d2a10ac2c4bad938f878f77f66de2e550ed5a40599fe4e78badb5d65acd6c47301f7cd3ee6e76d609390d35c29351b76f9ed886e1d6d1b81ff3c17ddb40196bac7b6609f3c1ee5b2ce969ddba0841a668bf71f692270fee331b77e2d9b37b73770920ece7f12cb1c407641a4de4b1376c6ded4bbc97218e374626d4dc3f3dfcbc2a5e0c581073087b44fa24e3ddf2a6d1a7973709c9a3e2ed3c237d22c0fbcea74ff67dd7c4fdf4e9ef3b277d1ac0fbee8903a34f300fd2a700bcff84f44900efbf27fa647aff0d613862bca70c6680fb348b1ae7ac95c88e93219431c69c638d892be50f8725bbe2590f91b98172e71a152ba31ba1638c87d530d147ef275e201a9db217341b4db21a18c533e2a0e8220dbbfb440b8261777b489b9873cd544471277481381c3af5ebca401c16dd852ecf72adc80775e5027998d5cb37959b2919ff30bb3795bda1342410b7d0bd8167976f170f88d9ed1788646c6c0876ce8e4e2b0b047a8e6e47907076f90d3b65afa7ce7ab63e5bfd64657e2abf62ad53961dc58a7ec3ca9c5d50e56201e259ec2c567420ac8c75e1ed759165b98c05c246e5a1932ecb806012c5badfb0a78aa26243a1cbc387208b7507c29ebe2255ec33b19f6c6d18c6ea576c3d6321fb50ec0d5b1be69dd9fa07c451ae87acca997da3339a8243ead1fb052d08867b08ced1344201f7b1a80111dc1a08b743c17e6215b87f4629abd5eadebfb77286f2aa22faf51175107b3c6396bd59c7d8a9c81377fab18a8e49701b8165ab58de520392c8c1ef82600666b714facd3b7be88a8ed477dbe3a5bc0f2ef4a6c40c0cdfce6ec691f296de6d400e86b7047ff32effeedd4336cb21447f87d78e2bf241c52c6417c12bf2418d1787243abb37a2bf7b439d1d8784d9c52161d17537e39030753ababb7ab0f0a06ecad9cdd7689482f28af28a522bb335dec97ae650ea53ea599437a754b652efca5356ceec0a6b8fa6a4b0a7dcbd07c6d8b1a8a51e78f47655dedecdfb1d9d5d3e587e2fcbeffd231981e308e54675f5acefcae343a14b491fbe62330e098f4e1d8e7ab0fcde9bdf47d7e697bb01398ef6ad9736f4267fd31e2fdb6fa6fec3abbd79b7441fed60b8147fe34447aacadb55b9bc2a58746f9e8acdd4c521e177efe973b81e6cc58ce11fac0f361b81e9abab260587849568925aa31a6f17cb6b58e9c4c5661276b965e513eb1d1994cf45fe24a91349963fb89dc42dda34a990375fb61d7a45cd7388dcb148d8b239780e7173ca9e21b26788ecf9914ee4933e351c0a7db6cc0c85fefa141f0a5d56d96b1846c1b97a0c800b41e002cec1cd4767c61d26d3e766d212dc978eb5da6ec631e1c8f3de6953bfdd7945cdb2670e6942c4a74f0c339a49c2338644c22f48685897394f83c673348dcfbbd81a77f9ebd301eef2d9a77b975b7d22dde5b54f2977f9a84f05b8cb497d8ab9cb5bfa64a3fe506badb55aa3fbe0c3476f76f4149b1b4e79b57906d75b36efc0d6d914915afef21c89e0bce0945f941529ad372711e71c8a44b9bc6a288e85457f588a2a2a72d1a71551f4894dfa047aaba8a8b4802e1b23b2a697b7e987a75886adfac37d20fd87c3abe6a6bc60d253ae1e2d3b6ff002931e4e21ddda2697bf36b9dc00d66a93cb0b60476d72798c25b5c9e5366c4b9b5cfe839d3535a60da8dfa8b44cf7a4492d199a1100000010005314402020100a078582b16840aaa9ba883d14000f9ea0506a4a96a8610e530a19648c21000200000020009120690040398da8027e9ab6d25b93c4e5c2b4e13377065ca055b0963ccba58fff1eab12ba2fd4006d8da8739c6df029fddf7aa43968568e73bef063a273046e6f3bef258815f8e5c0d171a4314b59d1a16b256f274e7f5af38619419c94c484ab2e23b5ed4262f7b0e176b283fb682be23d9959689e54c7db20c9d69a33f9d8a6e8607da24cc08a3694b71fb4c59fd800f94df5cbb471fc6f52b2341fa4bc65b410a1beaa880a79bcc743767ee40a5e57d0e24279944731eb6d9349329fcd8d485cfaa2163efa375ada021585d19352fe0da405d42f7e12ec7b6915a573413c5227ffef1ac09c57a1d5427cda35492b0e6ced8b2508b51e020d8c7edadf34e8744844dddcc223104462619d30e22a01d614ce2df99aa0497d9d7327954ceb00589a949626ef1897262c0dbd1afd6be2066a2efc55ff51ebf131d55c40e07a5a5098b49b328c8b073a5d820325379ec69e29963eef759a0746a512fc58dbd4730387c329fccdf83fa5eb27c8affbbe8dceb666de1e38f19eb52bc4b3584e987b73de5539404d32a2d60d342b4b34ab1116f2d4acb17449d66a29e60ccee9cc953ab3fb4f35f6845a777a257731ec0d35c57b32bd17bd44c291d73daca351b4c27113ab3d33b2448b98a38c9b171d96e42c4c1096de735d6f6c92592fa204a80dee25390c1f54f7e462698e9ea9a7c05e19560d813014c837c1a2e4de3e1abab3a56fd18bcadc6249c12687397bf60ba56dd58ed9d72a2bcce5d0847e3f372d3f6f39b197642c3b580531738d5a4aa3c17622ab2a605dc62b25c3a54b008721a44b2d30bb1221f234d0c3b8f64d3c991a31541c99810d1e7bc5e0da5252b9225223d639aab862d98e265adc403aec9641872f6395658efde5ce013253200753eeb536ab8cab81c465442482c9c93c7ffd027a10bd4c69569dd56fec86cca4cdb07e93d14c3f6eee4177fc40eda55090ae20084b4330b28aa0691d0187d7f313762acbdc5d524c7b57d7f68f66671b7c5c5d524b05c23b77dd5efc75853c54249bdd9dc72fea005ca1b8f64a9d969079d7d4e8d78e0ec0b1fb7e8ac90400064725f65346ff87ced283884db05ca6b4a5d5315a48edd6365bd4cd1a30f37a059c43ed4c52c630c11fe0bde2bfef001c025bd74ec31d4ee131f837632a9eed527a2f783012d495e3f1f0d155bfa7fe1c8dc482ac65ddd0c22388dd3c6457f5d446b3e7cdd122e387cb2094a7f743719d897c990f3954cc71c18f2c96884b2b18e511d6d57fa2b67a2e6bed27d57d3d0d798c8381f86d91d8dc99d9baa6dda1b67a5cc08ee67c6c5c1369f53f42234df3c7136bc7fe90394019228d2da1399cf48e01295269d1bf054f6409332c023b8636863d52367b6a05aa5c0bc574beb05ad877ec41a208135dadac39928bacec167e46622a43026d318266e995e08875a9d52cc5ec288e4e85de996fb705fa82091c7ba667c54ae175f531cebfcde9a3ce431a44b66909e3c55b3d1314b5acf8ed2d03dd33ecc577db4e3301ab3ef416b387775b568ec8fc0a141db7665d3b1133209650658c31ffe4627435f4924a8dfd709c1e2142c410581f44885a74e33a110c4d9818948693017a04027f5402927c0e0aa333f270c183564f44fb90a3953da53dd6b4ce520c917c8e0a3b7ef6d581da464ed38c13e4a0d0b3d34b243ab7135b7147dc587a278574de42fbd9f5987063cd90a8f09486ff3224bf4c82c6f78bfa8f2773f5d016dbd9e50e4635067ae2ed38c7931822f18c11ed4c71ea6afca6476e8a84ed80158038b65ccb19ad617276aed19183631f48c08f62b8e510d378ec4881c474697e8b4631bfe592e504dc47e5d0e1218bc795159a4fac063849ac028c6cdfbbd185c8a534a61abcee5cc3c39acc1a3d9d5d0fab25916a3106884403a5444de54e3701635ee9839df12328ab765baba43743d02bf4fc37607ffd3d409a158071dfde5e610cf4c39ceaf965bc4bd179a2657104d765f10017f987f66c14ebe4f846e7fcffa6bae18e8a9187e701d968ce1324938b206718672ab93bdac95899c5bcc579f2ee625fc4db63bd2fad71dcc81ed8e0ce14ca4084dc201a2ec47cf677128c6d9d325d5d0d4a1fe24bfacc41413a537f15dfece54d25f36e29dc12b29a51845fc804b62e419635f60b68cafb85a4131ba92d048c6085bbd32ec9dbd9585b058a4190ab9432d40af558845ff061e1fa944ff0f277572ff56e94c165e8071a010c153e31a38690892b38a6a8767b43f89bd562b78e47b6d480e454844aa84d3bdb895699c18bd6fb19f31b47a48339d1696d5f1a8b6be502e7de3b103b834bc800df5c2803a506615f3ad4b1fd73625432fb8f77682bf54288c0ee7eb7ca8244a179d57ed7bf630a3ea1ca08c76244944340b15d2ca8536576a17f78e292ec6463ab32dd581deb7b9c271d921102b8eaa3ca49b0407e403a7810a59101edee2c9865bbcc46a501e0a5424d2d3f1003970bfb957207ce3e3348dc186057effa498bd71ebb5ac3d3f6bd80d10eb9240f3cd7c452c4aaff2a79d282ef4c75508a533fa868a014f619bb496c3676cdb2f1449705b3cfeb6999aecc9645575ec4213b5a1287d933c910fded31fe3e244335237fa770ca17bbee11549e12c8aabb6433ad0a349c32278da2cd83f5fc0b6792a9d111ff38af76942f69db64e1b66d25829354879a5a175121c9d5133ff78a7f62af24d25fb5c478a33decdb45d38c71b19f079d915d4deebda6215e2ab9a26915a6b720e4830c7430ef63182050f61e1e3fd85a085136b01ec9291c604c9f57fcf23bbd9a1e1fd7b48e08a0521e3be37c4b2ec1b8ce90397e8db0968c29a4fbf6d3e07d958b50aa7be6599bb392f617353a4e2a3c388fd0997cc205db5ded23c71b72ee322db385e0eba25b75078a77a13df314baac7c975f8aeea5fdd0f5ffe7fcda4bf1ad8543157531efb69530d69e73f729bc82d139a6fa9652e7fde0015f3ac549b450f86b252addf8a3665ead975248ad7cd8dd7a227aeb6f5b056c57be5f1215a2a83903d1cf722a4eed5aac39adb638971190a9e9da3e59857804aadf387140502c991158ba640bb40edfb9181b183dbd9d57a7a763764c2adfb25209859375be7cb813ab8514d390ad476820fde81123f412dd9355f80ceef4889a493c7a2d358d68220124410c32c6214775566f591d088ed316af1b002c2233302b56fbab96a3b3143c29db91d73d86cf0c05d64a7a0026cee621d32e37eb8d82723aa0fc07631bffbef8188bd1972818263a8868f335024882ddb716f752a9058b22c2d57b3ccfbe03304324b7f128fe07be99422422db4bc36e90ad33f6c23e2b686562a1493394fe083230c2d3dcf51cefca474635318a4b002b650800cfadc590cc0b08831661e2cbf9f5a14f392cb6515aaf9973de27c3e791f8bd56284a3945b88dc9d3ecd401a9fb49479ccf53d93bbe854fd4aa206a3232440b799addabc98c62d0a57c2bf14d31827db8a75ed4aa4c85c50dd4acb9b6f32d96dcd62966353547f3c4d1066dda535635427d7f81347d47185e8a029034e5d9d9c07fcc6b3663a0397aacd61b6cc9f4a6ec540a51e1cc3522b53c09cc5c82bb2530465a1200706ab9f7a71cbb6482b45ceb47402862456fcd868e3d533469629ee27f56612e119f8bc93d0cd9a81b467d288c014d191bac37273228f721001a10a6eb4793ea6d23603974f6276e11d3affbc6d72d62c901575dc92841b775cde42bbce0fc847a6ee2483350f19c3440178f0ddaaf34e5722d4ee0fbe06151e64bfc470c2a93f79d25a0086388331970ecf81ce13a57e460be681ab3218c8cd2f6d81a09834e4dea100336de9c5c598966d96005840539ea642ea5188cdbd8ec4cc476ec9b51484d51e5625e2d3fa8d981f24cff86266231c8f451ae724ca007ff19dac8f48e6c009b340294f7954bd2f6fce0cfd1ef87a80ba7a4ea6c636aef732a5d17556576a0ea23db77f6af40ff45a1e03ff4187e6c3575df52e236046f13151f88069aa9a7c9300f6762f4c96af34aff404edb0a7e88c9e841550aa43ff954d6d2690da8e2e90b537142de8210a0f95963c3e543e6cbea5aa815858879569713cb13bf7e103ad74825bb00d0622354d57113ffc4f37a3888d9eabf4cf72a6ae724cfee7304bdb63fa4773a56df3b9a38f5623ea5b352a8374cdb8475b0aa40528acc13f02cc5a90b0c971ae0c9a9f42d525204e3784439dfb3f3acfdde58139ffb78313f60b4e3ebbe3374cf4f97f00b098a0b9b0c3a9555c59c772e4051e50595aeec19fd9da2b0ccce2e925ca452b021618053f50d6ee58bc802e6ebc0951ebeb410063cc8b91e7d36d051d6dfff6e0920b235aa41fbb1b7406b55154e4f988e82139f1715afc7c9c0494b0199b3fc25d4674a6da4de600eeafc1d054ab7ed8cb5f7a8b23ec0641d354f29cea5f35eeda55994282b041ef6e3451b0bf7b1b312bf26f2fc44aa5c020c11f797411f339cc75b2c81813465bced9c4ab4ad6c5425c9351bd036a508ffbf9c5b6518d49f5ab9af2406b51b8e4162b148a7afa4fb22327a08d98058023e4eb58614e15a8acc17530f10d7286a3681adc9f28fe1c21cb3a9da024f2e56cddfa5cde6e79d97a66bcf23e1416053c856e93efff8a8f55fc78553c3ad685391495baddfe7685997c36c5d0b2faa8aeefaeda3dd3bb4071dbdb19e4944c0dd1acaa79b1d49ee0b2f8d4339f64507c995a39b67bb021fb7765fe65db2ac851cc274217947077ccf26dfa663e13ac3564f87e7cb0919d10be131b1157ad1fb41f50eb533ff2593a2020e62e7ecee774600d3cebc9533578519295741af8b7dae6196aca88abbd43a19684f6b66a227af7a090b0396ec92ebb226c2ffe7b62197ef16c19eb20d31b942eb3088a924305b56e746b82f2cf200feafe1c0a3767a55c6b2e5aac8e21734926c42503a2be45e478c394a75c64808b5656fe71f221ddceaa74d886e73b1ad62d0ad00dbe4180ca1a66cbf72b72330cf1518810b4756fc0fbd2c79315693839f3ef16eaaaaa8635826ec3e70df3ccd9cade14a1b6c6c7075322784f9a6cb07bc8ce0fefa9da16b5ce4b3035ba4803452809ebab38fac932ee7364617ff32143b7510160c22cb23407fa1b4644455971f4c7b486a8fdb81ed19b6af71aa1b7645759e4ff6cb508acf8ce52809b768b1ad2697e504d31afe57592e5a82433219ebdd4882450f978f207665c40f2dc9bc66317b0780466014bd658de3b52ccac5bb0c425b56bf931b962a4516e63dedfaefe54282f35333464b4120f6537fcb78734d2b9b922450dc6efbe82d691849c76c03f62775f256db7284cc622a04c618914f7fb68ac5fe5ccfb5555248cfd4c4947f083b56eefe041fae58e569813303d52fa45be92e9e89b108f3334a531dd984659c81b57c85de55f3706bfccc8ccfc8165d29cf52df4a3d8891dffa2ba37401f1613f23a02453d62aaa33ac0f9b3545ad1c4641c571df4cd228f8d395f07cc994c54f57de916cc31b11d955ab5d759f366395546f3416056d25775f0e585a0da9ac4fd46bf24321b06d2d470e20b2f207683454900443594aba49260471e3b4c7611d661737c63d30835ea0c9b135026a97f5dd16383204ee65379ce83626588b2dbb8f3f81bdf3587886ff496cb399d075a3c25d3a26e6f4bd2bf14717915e241a2f6cd7f5250b634a75d06733649676a5caba47bd216ec1fd629c1573439b284aa17f9a7da36992b1a5da60659d674c899bf020c595e8e0b5d546f466fb33cd1ad583b2de9f7dfd8261738793207b09581a10c5001a46b1c7a7a4cff0e474b1dc9005aa895ac1f8ec983b7632076ab693c0b29444dddf7631150064b4a25a6ff19faa7bd242c4c71d2fc3ea693dd90533840ebc39338a1fb791747a9862156de571735055b0e53c454fe29878578f035f6f11d86dd471d445eac90663f2c6af448829ae5856efa93a17fd35c0c0a6a23c0dad9b210e1633c944babd34bef44dba70dab3c930c377442931b26ee10352ffc09d80a7ed1aeb160bc3d9927c7dc157d696d1356727bd4b0dcfb54698d3a1e6be41401d5e3e2afb9612ab679dade095dd00d96fac1a345d5d252850996bea26623be2a71662e62cefd5afce779f8e620998857ad9cd5b2a3250d8029d9dc2be2f97c3dd646a7a758fe4d16a1a482ff8cd3e9554b537f8a4c0561ade77d7e0c4f16ef315d6a1162b9fc7a72178066169df2e27a9e445cc1fe63bdb2fa00869c4445f2e26758ced27a1c2b107012a913791dca99db33a053c6c5b796d2982efdd21ff48926c7bc076e460972a66b4fb3fa04d8889ef7254808c054927b9b01df3394dba06de6d06683e1d8f4178d6a4e6e84ce4544f36d94a31f606fc3e447f4063095661f3a0ae04550e5272e5ea99977bb48b2ab501334206808582226b2a6a1867cd267ea21256cc7ba3fb2715ad66fe1cc507f320a605458c3a7d77a2e58a99bfc3331d9595a43ea2bd82ffe924fcd6a19038873fb5752efa3a8414dd7967c7163f4131568ea417e30d7bd7921d658f6b242c53a94556f248c90ecd78e2b496cb8926ec06abe1a76c5b83a0441f9a7db75313369ddddec0807d8359f39aa624a843f22e98612b9ea26f186f00cbe8f9cfc7bdcb33f708740b7bd0c31002851db00b117407c60974a607416e72dc5bf85d65ebbf5df451e202f115ae0c1ad63644e684593471fe5c8075902576f770c9c341481e5bb84041522bd444a1ca8bf0a76a97bc149b2a2b87f8cea6d43929900c5c9f8a9f2587b1b80cbca9a3ac7cf9cb6e664b70d8562fa32aff48d712c428d352c4edcc1aa6e290e10ad751ebaa0aa32a77a66bfefd3d05f8adcf8f2ca0e86834b171b7c0c985c88a32a7a801d5fae166e41248a008a32a27ad46c7c1d2148622764376b6e9a2d465bb25fb5b94c178df3ad16a0e1228121b6c1ff6caf2a2c081bc738b46ede4e83b6661d4e82e96342c95363b32b7a02c46b85b4651913a16d85be1c9520f1f59799a73d5c9e044518f4ee5b6342828d72eb1aa83d0120d7cd1ab420eb2a58691b8cea9a249c65cf930c69d3c01a0ccc7b4454bf8fb901696e7fe4c4a2c1e7070974603340446b3690ad1fb39f62fcb12f09f4c9fc34c59fbc6e888664f301e844f9868fd048d18dce7a6de6156744928347f8d4a9d9e589462738e322fe312d055873d5040e5c10007035488fc380932c72746c5acbc596045cb7d38bbf2a60c121b64496a63b62b90bc269a6b717057bea478880dd1b98c7f1596ea1dccc0806b9b210af08005ddb48d979c4905c4f3a55d3f85612bf5eb159246e68172d7398d72c37badf6350c3d04f62d01dba8cde2bbf8c2d33f262a165f8686a200cb70ebe13ea3d9a9810be35c05422632d91285810da7f46826d3e5fa82597138cfe16e9328cf30527f78615161e590328481b1e5ff7a87a1d4aec250bf3fbae846f4a9fd4f5e6ef92c2c40db4145cced427894526c0a28da8a5914920d73d4bc4c9d7603b73922a0ea5fab0f7d488d16971143ae19d7267883990928a6b075afff17b7847ef2163498f018614f3bd35fda7428771beee0c4064a306f0653f70d86939f93289bab71579819e7500edba5422dcda15c97dbd163e2ad16d51cbce958914c21a1164eb9095de2cb3193391a46c8581726095decb2200b359c4314441062ed2170eab601d6faa8977d6385f6cf36fd605356a01aafdbff5d0528d8a202f7fb9115a8d84c44c4ce29a226fd8486c91be0ea97e1b9b354202bef11700bb1974bb12e6e2d900dfd2251c7d78cc454641efa3ac8473d940b2de6a64ba8ea28d58b175e1b3b77520b97ce1f8c83ec17bcfb58ffab462964d41ca786ad5c5b8c5629624fb9ca662781fa562d54f0d631920395621fc800245b9bdb06276adba5441baeee9d7f6bc925fa5e5ccb49df1d2317e02bc3056d19782385d3d8635ca428297064d1121d71e73d355dcc9f70c725ef7ecb903d07d0685baaa9a955f2c2fb13fd072cfca7f3bd7350ff38e1992f4f458692fa7779b7ac92b3a65f1e4ba61c765ec1f61048a2a47cb8fc7e5f256f78800437984aebb892173103bcf682aa4a0e18e46d30202c8267f53550efec16a7a38c1271d2bbc1bbe426469439e5090c1b40555ecbb3e490a085a9836a391fce1817d40daf23a342e2befd4ff50195715978c0726fb8708e11078c9156a8001900a56bac5fe2f73c3a3ab40c19c1b296edab05826776c835ca625951329d920f3dc103275b6d38379c0e40cc9f238dbc09243fd9cf10b37a1d360f1ebf7ce96c076eceec06c30e467f02d75cd2be1743c4a647dfc27fd01fece71b173879fb4931ebe46f04aad84bd9f64bdc364683081196c34fdb6a4fa8af39f8e9f9c1ab21117a3575c41472c4b0cc5ccd98a810b3ecfef8b3dee8c057b4ccfa7f6ebfc01209bf3f91fa19d3eeabbc37f8ee25f83170bdd35770275428c2311cedc79afbbc3067e6a7938e0e070da9ad6770508d87d16d94e70440e5b32f275f802ad33f0934444146f9bfad26c1a2805700583ef49db2aff012af8b0d716b461ad99b7561bfd3f39214404845708b4d81e0bdfe5b310586f65b31aeb597b38e827d812697be4c3073ae1384b6f158a660aa6545a07cb13485f0394bcbb32a5b1990e47db00819ddebccea2b769ec2094be0088a5bb31c1f893501493cb63e699e76c4d70b6b94b586d015b50c11ad0e55d60e219711bb7b956c8c0445ae4db568236467aca4f84758480a36d9d1a4de32cff03fe382cb1e40ffba1f6a770bff630d3eda5b85a5fa0422bddc9ab6750ef993a895ebd790d295f2f91d78762578136689e025465027deb61a2f9693f93c83ff175109efa8556a1c7034f54cd8abbf86d9948001a739f8e61d9ab442256d3961b6427c22a71a57cc3c6fa2fd2f32df477fc2e2bc140fec43ae0b7ba9d09c0890f09916b1c01056a60a7422be9ee8b988712a171ef26d0f65a5822d850b250879608f2d4917ee1684c5104649fc8c7790e27ad2f957a7cace368fed98afc282e2340a11794c67a7e2d441c886d1b69ce516bd95c1c9bfdb54d2eadcbb09dcdc5a25d81dfc31b0245517e55cd3c4194a3851968c04dabd15eae42b58d136d8f84eaeaa571e0ebd14a57312ef674e6ed0663b614d1fafca210e69190d03e4a1ff5339229ed749ab186977301453fa702767bc6e8daf95b7898058bfb971387e9570824cdf42fde304615ddbeaccb770f04d8fee00b9ff7d1223053c464bb02acedf57d0911a96b75a52b2a6090aa51ee378f7ee4705ef309e21640b5e45e02b8bd7e650412e34b572a4a9ab304f395f5e66c247f7defbe9755a683f61eda0468e1a22b7ab7f1acad3988ee50d64bee0b038ea766b51185e554a17ccbb43ef0d7b8f2ca8681187fcd78b5ca6fc84300e39fd4ae73387680ef888f972f39a5491e7497467aeef20a1ef21487a45b38fc5bcb217bc3462d2719703ff5051404893fd1cc1ff050cad7345b660ed84b2ee7fe81b6758f907aded61a4c94aaed96a6528d2c4cfebc1020820d396e7911b66e1316dd8e863df019930a422a3233486d7650a0c339e3f385365225dd3a1ed958dae09f953513e93bb922b9a155de1a688b86669d0d9033327948a59c25c3bbe5b1e5ee8a32fffc55497b085c1132f82f496f4a9aa246c7189b0b9e3318dd6558a21c3d6f2d3ef401ecc35920a8730e74a3c5f3de89b3666134a88e78ea6c76e03ac8478012250bf26f0ff89ac23d195e1a03005c64da247e5f9f0b2e122b635c4eb5b3b6d204640f0fe0ae807ab4bb0ee3f199c21262b28eba50ce0269b10a2f3834cb483b56a95805729dc660815c14f2221ff117904f4bafcc943205072a2142a619f7ab1d2688bb001af1fa98a29f3a5f7383bd0d4b39464c404f85871373fcca692e248507d24419e99bb7c285c63929a98b878d32cba2eb4396abf7a61ec75f38fd29b24b667eaf7a4c2f28e0ddf42b47fd450f85c226fe70648a746f83c4a5909a0f0ba5230f42cb067c482497574b0d6285f5f3d52c32ae963ba91d24edb07868688a9157f72dd2c205f8f6bbbe2e94f0e91ee98b083d4f476eee75c28e5b4749ff15bd5d358ac23ca39e2679d1d5840ebb62022df0c57f6ff6ecdfa6116d3dffa7e5b881b5092898bfd1245b9220da2dc83ab8c1946cff11e3b71eafac74d9a5d303d565ab94047303d7ce76ee1943fe3e6ef31a2823e4f830fac956e8bdda0309b952dbe12bdee0178e8b2d9d101dd72c91235499d0ad3c06f31576708647a11968fdb2633e627120cd1c49e1ad76388db40efad58446f94559001ac3c06cde89f18a03391b7de0ea85113215d140c1116f1cdef1582ca093673a66b88acb93b3587f1c4b68c5c3ed6fb09e5548f18c13ba9971e0944b74d4a387a19c098eacae83811a3e7c45f9d26f5a22a28bb56298a76d44860e4613c47bc90bf8a9dba225a4c86e91b15f65610453e5f7aaf161e549fd44fafe860125800d02d6897e2b0fc2e025214146d4f13257241e4b7520046cc1ef1658156931ec23855fdf5ed2773fbf0c6429a8f3855d036c718895c71c6cd9309d15f8fe2d6c82790aef3726f13794e4cffae376e49a8883c6fc1ed9bdba2528e433243d661168f0dc39d1b6e864307373a449c4e30a655df51c991a87f5ccab8f45d83846c24f9a8d6c214a21b3cb372e4aa87774690f3ea9ddced8ba72d388c493696737b8213e5573b2c3fa9686708e4dfa546f9a59e7cb27f4bc1b73238b18e78f8389b91b052f3ef154f2c573c510dba0a7c50a3b7c8dadf2b92c1560ea4267b7c206a90f1966641e224adacb71eb368010eac406afaa1e970c9a595a293ff5d355b87fa5fa446af549183de962d6d57b300b10966555b063d4f35014ef4c1481af4c1cf99148f2c05d932561af098098b102cd8c023b5a3752ccddb7efffe1dc54140958dc4f4bf06c0106a0a2ca93f221b6f585555405e3d879e82bdb9e3a342aaac4a49902feabd766540bf32bb2fe78ee5aa4bc4e476d6fc49fcf2c381b38068c221ff988d26945bb49a2e2efff7f71ba4ff241552bdf27d1cedf4073455270278ce7198a7ca74d3ec3b328b04ff19078b6ea13e3f3874accb0e11557d141405d393dd012edd99628fe42914c44d9a4bdb53e79b7dfbe520201b052a62f9d5a40bc7c68258421156817c6137006e101a024dda4a347783ad786abf12fc237540802e8cb33e8a9a2d346c1111fdb49b230bc217e67d00125828137cd6f29972cd21334204e1d6adcf8e02076ffd6e67ba27824b0088be3014d8283718a5b651884e5aca23a67550f36ea0dd0adc21a0656a7ac2f059a51483bc62624cd5bd56525d2613df4e8c12dc2943da7c77d925908f7c742bbf2fe75ca3a12fc9d6165c20dc60130f63f451b30bc313bbfe103b803109594e92c62e44004e7b3b83c0b98f2321a9872b3cdf48d55e87a15e251e9cef5f452564b977528b0d20a3de9b46cd15420b8027b4b61eb3620ae4221e82c27eb8aca81cb6c7a6fce3456f2d60b20b1636f4d7871f6065c83d0ff00095b893dd468a3f70751afacf8d1cbdd70d0dbdd70d14fde78d1cfd876fac24082e1370de0740d4c7eaf0d7f9b5d0337f9911ffe926ea28067fd6c922fe4c20edf91abff0896a012b60582370c87782efb3a1e0e92d9e230e46e1935ef5c3b19c08f1313fe89c3e3ebb1d22341a038f46e99ef83356ad3d60786781f33273207e552b099415af7cb8cf828326c32e39d53782069d4e921b43ad7e081e53b8ba79c3380edc9c5f3fb134a292cd4460aa4fac48ce909f17f1edce849b1a9cce3b48afbb1dd811e4e1adfff8fa110797e2f082474dbc48cd420d7d11596446477f7ad69601b518149018690e990ef950825b4345d5cc7d9e3977eef9d8340b031e9d0bf7fd5a8269c216a9e2aff7d53427d00665e399a3e04b02bf4a5f41b66fb1d61cc00419a73732f7d65139a0a88a7cd6d81258f460d94b0775ecd446dab711853d64e1ec90a9bf90aed4548ac27a4e7905d234e54e58b42361e130dff3f5bd09422e6b57779f3da3aed72a960d885e65412a4d78b4f9cd8722105ef22ba339d6db293e738da2bcabbc68c571f09edd2a231c158ff7ccb263c7960eb478aacb51baa26a9e4da58cb84e0337c8da197662dbbaf93cc2a68c8367804730feac252e030c6e1389b3ad84508ad704e94f6d92153df3bbf33610867fa948c3ac57fe53049939b0a624b83183b558bfcc5a747bfdbf40f6ff170173f9580c1085d4868743eaa1a8b05c20fd2a4c7d57f110540e02800575c06c7b7baf8c62a6a4c937c163d249bfccf072262f7ea7c08d03e4115fdc17c548aede7833a2bdd1426efcf645780a40927a7f2a566a5763fc3c2bf34b016381132e58b362baae69d1996003cc17eb61dd2fe7294906279d27e920eb38bf81c9b9676b52af164f9a70d3c17688ab5472250b8d08c4508acae54cb68c9a2e01e7de111acab98a1053172685e31163b9a016b2f47e96d44ad499c32d1e374e9223cfc927b770e63c73e825cf184445ade2cd7a8396d43f7c59426edf428eee4e5dd518e432de57a64deb4a39e23054985da9b011f217a979a8e80ffbaf5e85b1537166574a913a705ce4763d3763a36b02fc94db4df1a885279560cd5a1e31459fba62fc5a6f5480ad6a18fa7eb23425874c6d53bd8252c91a3f048bf47c9dbf9bfb1149fd8cc7d134e152bffd28d0984fc775d4d28e5d0ad905957a3db1b24d93529108851c39d6558f3ef395622c2cdbfdb526da4fd408cb85f371948fa5533c480117e640e024bd6fce128a5a583b6bc0fa4c0ce0807ee80deca2f38511f989fe3ee22c59b34060b6182bc3705e6ed6fbd9d45ec48f07dd25be94292564092b3850e8ae1c62acb48777a44f837c2ae5978d7708afd6e8cb823b609dfc2cb252a54c302e79707cdd90be156ff8e452fa1d5ac676e878c48571f63cd1984029a69ed152923c67a7b57bbebbecb29242bee40ea54344404315142c47f00fbf70f026a457ba483ae91a5a2020a683917d247389c5204154a198718c946ab4c37fe430198e2d6a8debb527a8c9056ddc94981d013c12da7ab1bd63c4ee7f63157e1f16e052c706751d8cbe48dc8869c37d6cc23cac7b972388e8a3eec871788338fb76c9acc21661bfee53a6b0680ae14064aa8b9d55652bb85660f227300deaab4e45a29bc45214bac274e6a6b3085f0fd6c4fe9bd2b8465f05d738db75dc8c257e08897f27e6b9fa251e2264dc2caed419bc225fecf608f080b02cf7a47c145603acc50723b4f8e9ef834478a5818a304f7c02208f505626edd87c87fa3f045c14fadf58de674d364df7bfc9acc0393ec8680aac8e3747c3638ecd1e86a4541ee59865c85c826f34c6654a94c189099bb86563626d75b7a41fd6bf51d9b734aab9b974c0e8bdd577e0bf1e9a400602e07720fa0d2cb90a2c11d1be9dd1cfeb9bb09e9ccdecc8bbd050d523737852fe3e79b43a7f20e601be78731a7688edc9cfdb1bd33870cb7fb3eee79a91a65c0b1cd3d920c3b8d4d124a4461f1c1a1357c0cb0499d7ba5a6a62a2922cf3806263c8a684594f89a80a9401bb629e3b0f56bd938711e5137fd80866167119d7990c25f8232433cf696411de15cc6246795e2aacd8dcc08f60106439775cdda05641daf71c7503dea9e4f28a4cc50f0ffb413a1689da2b751dc74d483c6eccd082d868691997a57ef9113c97362cdf214caab72bfb8bb49f5e71ea8196ebb85a7873a608b39729a1cee80a1514d64e46344d8b39db9c7b451f7ec9450de582c1e6c281c0bcd04912c7eeab4f48593d6060c6b0c97761871251f13474ee46ad9ea38e423322e0cadc22fb276e76e92cf05be641ec3904fd4f3e8dd547859f001572f124f572337b7746189f59f711d384a322298c315aeeef949853bf00836bb82f9184cb39e4dd7350e9973cc9bc2d1daad8c06dbebfb3a3799f3d26d65612704995221ae92ea45f937f6f65e37d91edf8e39c725efa64b6e73752b23d760df05453241e00b451dcf4f8ceb3d2f0474f7b0923e221269b08afb7fdb655e7eec243b3393b5157cf33c1f5f7f8fb70b37daeaf1d08c7a9b98580255100443b34cc2ccd0e02b83af2478dbc2b3500a54f6cfee3f99bbaca3203f2cd3b367e24889315c15bc0e63cf103e79d6e72acd40695da13206f1eb30d98b806086194d771ee037069e7cbf4b891e0d9ffcfc15efb6c2276c81a813bbab1bbbf1c364b12857e1f11039f48ba8b5660fc8ba9c96efd3bce92d7a25c2b0f2ebf71422573af4aa141f2c366e2be55ff171e5da9326b6c7dc0a0f410bde14b44992e2173719de9f2d32fa07da864313d456f3c712e5b6789f97a217cbd3085408349ae2981dd7ac2c13a1c012fe3d717408026fe8f3cdf70606f2d74fc1d58f5e6760412d1c9ddea06bab3e0ed50b5710465d5ecc0da1907ae36a947d49aeb2daf97ad23b0cc19073c9f59ee7b69c4568a2d9759466ea7eb8f5639bb7ae17e8a3d437ebb345f3556c07778f41fd4fc13b7f8951c4dca8b18ff47d9a16b1efe480fe84b930f76b67035c2ddb75da8cf54d61712514a74b82e694e1d263d61be4000b6d05d94938d4d9838ef1f2122257fba1e697d8c5be138322c032e385516a72f59ea2c7999b22b40cbb6107f5876b4272dc39153e80d4a1b926b1214a57f6451a8e3c765bc7b218b0101000f4d3e5e8021eecd57fbd5ce4f44d3ac9d067ca278a47c58f6bbc50cc24a2912f2eda27a5e9e48e9441df1fa1ac9d4864e45cd59f4b501e159342769b25c671f253dbab871149773ce14caa04cee2865ead40d3370f7232c7405f5c9c5834b7adcb031322d246f0d40fc98e22192bd80f62d811e73f85ac2b9722cf512d2dbdf216cfc847d67c3639c178ff1fb4fca0f443e413d6b818dbb34e9126f1588003a1f5bd8bfef42108ec7d3c8e2d146b77bca9469ce0cc8844672005617768d0c44a36f13750717b78acc030878c611c5b80c4731246c7cbb4e9867edda22c116e1794918fcb11ce2573d4def175738f86ad61450fa5632eced3e8a2886dfef6326a851fccd2766ae819cdc3c5c976aa114c5e59519f8f131bde7be99a1b58cbaf4e134c71313eb74493c4b381fb46a82df2236a682635f4bdf6377bcfc53f11981dc2d09c94e07c4fb93484a4bd1d1dbebfc082e5175a68ce9569c94ec93a58990a9b4590545cda36082c68296bcae11797a8d95ecebcb8e82f84f65905514db85760564b2c7a144c1b78dd95072b79b9c2da104d985ca2b35f774e2b9f3b806e74f67043d64604e8db41f9cccd031656ee2e21f8d48483b22ac76ad227d266314cbe76bf843c915d9f4e20477304c0e2ee522795ffc8f65c81da830ff1172ca2a6f08f9a6a7c6aac09532555364724082b8eef94fe7c9d04c9f39c47839908eec2e2c9a3c6d76bd4e82596f3b307f0dce75d17addef2cc719632eededed4f34a5d5f060cd81c08e9112677d2ef270b76213c4e2832e795cc0c57d274f16a9b7c48d205f1b619203b7c0621c22e7241d1bbec0a842826e8131b39f9e3786fa6d12a3760142d401727edb5b89cd91f1833b777ae2c044484e547341d2bb33b2043ab74c6afde3a248db4c6d87bdc1a862448aecff2b2bad400f0228d42c97eb5db5efa6a9fc6be2460ba81fcdd3669ad1e8b685c5aced90fd40678851339371635bd378936866adc7b98ee2e2bb5520e845510a1c2bf4201e0a28129379a05532a054248abbb6c92d3fbc86ad1b51050617bb45f3947f6203f791b5862fe86419f1d8ab8d563816a241604231b47dd69d284fba59431e8650179e7ece642d292489edc1a8e1d41b1e3077b26c6ffb47c03131cab3503aac764ba3c7a480e92cad0f006aa30307c70a6af6e8d6695b2a4c4f6291bac31ef6ea87ce954cf86a79d0fb62ca468e96f5e0025cc86682193b4034b8c3913870709fad36ba9a531c6baa3ef7d6086974963bc85fbed62993fb9399c302737c27537da6496acd0e09aea1da22df4a964860a014e5c47180ea17362670ea00f0abb33d8ecbedb0aa85a0b31bcf6cdfa0f1b65e589839767255fbf8fcb52b3948d0fd9c66dd75abeb41e00ab57252fedb8a00576d8ec05577a878a5e35f3c42808612d1ac5b11fab778442f6b13ebcfdd8f80eb46d3807e2a44429498becafda0fcfa37ec9e15c7a53b320f5879967c927092fb321762c68940e5b85270c1fd2f5a634c27fe6971cac90db458d58c6446b19a52d5373eedca250e2a45fcb9b4bd9168b9eae817969874e41d4566187665ef643ea8117d53bf8841a8fcb8fd208f8a319ac08220ef142c79a4a02ace2af8dc1fa062e0bf3e57ce9257f7d0e1596d80dc9b6467b897393c871f8fa040c3f237817bfc9321f8b8cc85c1989f4055d69501b7b6c844fa7345d31238e2344b42c7818745a89cbc2ba1aaa7401d9ecb7dd281dd2bcf67cf135db7511cc6d7241ae645acad8f46afdcb7c447d32921acf24c4baf1f240f709eaea8b2c8f88106a306eae4e4a55847be7c920677193672e63e1234edb0b43afb1df96d0723aa07f7f34cccf03e22c9d6278153ef09ec4b22e1873f800d6576aa2fc6f447caecfbb9006bb1e6c24b9d74e63a09c2aaeb830f0c2c20f752159222d64b67a3eb44b13fe8043797f1db5f8e3030b914a8aa1725bc8a05e205ce08cfcca998aadcf70814359054cddafe39eedd1dc03dfd1bcb6b553507fc60455ef3137d961639fe9c8b8e323f04dede35ef6c12efa460c0dc09a5cfe5e2543c3c5c3d9a203cf587d893db0978d3f060b3d9beec6089ce62e05f514742035ff6c0a234cb296b5fb49f8a359bab8e7ffa498be6019e7033315360156c464e733cdd802e4f8e48bab18078cbaad2be7093bc89033b71b910c712900258beb09c9fbecc24dbaa0a8d51d36a4683b9ba71c21d249c0981add0a4979d31615316fa863871b83031897498a7b56e74413dbf8c66c7b6883ad791ee0bb6c81f9096b1d1963b7d118fa3bc9bc49dd986b4a5a1a998bab89dcdfbd4f151be8057c193263a85d033fa8b02f4830cc89507a07447f0126da69c1aef2104098fcfb394c02107e7457b29f9c9503689080c7248964f8c5eb4dff40a865b1746e70a691608608405c3ca19643cd5b833f092ccaa9de596229bb0b3651ece554512044eb9b38477da0e1879aaef4caf6ffcabd19b749ebc7b72de042ebd24318723989905c48842a27702462ff0d80f8f0a5e526ace117c2dae4e8983ecca13f5efb5ef841e020a7da872a4d40c5903f15489be5d26e09de1d77382eaf073444880adacb7d4e478efa1d0f1103a4cc8928726120f21f46024d2620fd524dce0b254cef23ca758b44baa8c537273217c182180260b9a1d5c56f6655ae201dc38ddaa36efa0d4e89d937da0f6ee543c6347bad123e6835a28c2baa8a81f449ed6dab207596f8e07b664c6c484265620c122ec208ae4d95cd604d6798017e7660a49f9f6ae55724f70fd308d288a1ed5845bf7079b96edc1171370ea5ee00630906e05b4dbe3608cc8fb7d004ddd9101a97f1b390adce686ba99c3b404b868dd4a430e0bda9a85047663d002640e93b51a01a3bb6990a2d2d8c00c715d9c318c22370ed30539e0da28ab55dba19e59b735d502917e5150bf4e8ec9dd92bc928ed520005e0558d8b46aa69ce2e4e3b4bb0df8275125cb93340cfb8ea8766a8949aa36384fd29136c5db8f783ead93ac19a7f3bcded0ba579a04cec97a988d27599272c873804d0a5ad45641224f8ed9003e5629d86a9087fbde59c177075a4db4f4429e3b4f6264d07c8c6c23df0e63a8a7d7f1a06df3f8080046629e46afbaf6f71fab177433c5f227e844e22bc6e9a5f77df13cf15799d223c84d7eab36e1e5e762a081b99eaa96b155fd2dd2adb92426d6cd863f997c580dae35b83bffd0151278aadb928ffccecde1e82fa1bd5ea2171ef95ad4663f67ca9d8a76a618b49d3157e15046dd12b6b028abf232fc524fd57fc7e94baa8d69b2eed522acdc987c67675d64dee114fde13c4bd78a6eb7f0f07a78db088546491abdcd17dd611e92f37d4c076bf01556ba4efc40207094619504b4a18459955fda9f7d45d86a18cde7a763704cb4d37ef0d1de7cb31ce574a9cbb588e1c23c0f7eccff2e370b17e493fbbe794cbdfe2413ca90e6f669471c46568ff0832348e70dbd42ad840b7beb6fe4c3b37098412def636281d653f46648ee03083fa570785f496a1c20f001ff15fe2f7b1f2be8417c4abcd53b015c503b03306e94fbdf6153ccbb2fdedd57982a13d61a147ca0b49253037cb3eb5123e85ce0ba2d1202c4979352a496e19bcd69c24666d1ccb9e39bf95f1cf32da0e5ef65c5173e8f8ba6723db12b8b58757ea5556f46a6546c7679c45c59c382bace05771d676d6bbb35a37bc7782520f429668c6d7fcf4a60ce4cc19c637d9b81a71dc48c398a18b6af312c9f8032d40afe4431229977e152c583b0b47104fee362c761cdd5bffa3ef018eb5a99ddd0874d84dbc63e472ab143827c8376f71ccf6d64ac9b9ab7fdff4e08e4381a10841998c6145365d0d90ced34ce4dabadc2bf2d64bbb422c1184aafb29f7153f474ab9183e476d889d02a10345e8473c9991ba86425f3a7b1e3386b37b37191dfcccf91807a3fe146feed67f39b79b333f56d1dbd2b66ba4251d4d223f142626112babefd1cae82c1ce63ac169db7190e885e4d64898e039e1be0f5ba71a77fd52ebc093722852da17a84a76accc4da707976219bc10bf887278f505a9d3dd3b8b6a6895029eccd6c78d87c5a5535a855bb6ece5697421481e86696f347f935eb08a10d1f2be64fbcc119d2b4f4f52b6ce17b00a5c250b767d56a0944583966cb006fd8a5d515d8a073621462d3a0dada075385c91bdfcfbf7b6487f10e24e98fb38a7919de0b04452b67a3a90696ac5c8dbf9f09d61d0473906035180879bed4739ec9720d325041c63d58e1360982774a9af7b1f10f3e6b43946838c914cf8fd250959849919de118e98f003eae5c99fa1f70ea8f491d0297869c3bcecc16a01325c8ad25bf1ebeea29d2efa6c6dad8357bd334dedd64167eaabdaae609ec50a3b49fab4d483e2af589ad08c0e18f0a7573a8780ecba666ed99f0df0472ad8c47103b047b2004af67d2e8276344552f6a95fa5068e4a312f64a34d8440ce919c070126481b868a1a9e97620eb347176c8b1de664db10ccf86858784a6f3d1dbbc6e249136af3da919947327055d012949c82cdea8dfa2fb22bfcbc48d018d3441cd4f57ef2643d41eb098437fea58d0c70f6a217a5dac148bace970082fe88414eb7225e8d5b0a8606bc9dc378ca21bf0ed521d3ba0fe8d0a6c69e50b88bd59be664e7e81ede57c3340adea2dbda49d12a634e812ed015a6e33d3074bbfc2efe5c9e2feac8a08a200dd7fd4eeebc2caee993edc562a2c70606e54fc371a8cbec9949458bb21d16049a35ab14772b22ccd4f490b6fc787d93b4931dc2f1acf6020f44f6798d2328094d59b433425e57eb2f085c8343159a0baaa167d20dff14ee64210c69aceeff3c092d903f4dbff94a33b14d47f8a6595e67d6cfaec52e7b76258717ae9f348ea8cc0056250c72bc3feca2395b34041801c31ffc6c831513a5d9167a6201f92a0c5835b7c3a65de42a7ea04055ce11b46557f5b0c758b2d5a51994368d79038f8c248e1bffe8cae12095254f075a1a42d8d3002dda8e90743a53d8133729f24bddd85f9d3374cad95db2e4ba4b1629aaf29b309f7f5b30385c18218744fd807e2f31d87e4f6334855aecf157c172da53e718e0f1ed3f4dcc313060e76a223a93bc689ba4bbf179c48c6ba2650c8fa808986efa84b8fded5493f206ffaa1d63aee6356900135bb05eb231905fddd334b7d06a0216750c88086ec307d6e9e40c9667d6fca231e6077136ecd023a6db2916e58f9c81c51edfb936e9d0b6b018001e3db9fa4cda4e1e355376cd2f5676c1908bb9cdd14b5a2d4a7ad483eefe709f3ae5897ff038ef36e797091386a6987978a63206b8b8148e56ae31c2b46f71d6b470974b0979b910d19a4b8e974be583ac191504e8ac102a4e696c8ab11623addc043b5666313fd87110077bfefda7a46ce9f14053c70ea7c79c6336993b8054a0399ebca38ec40ae7132d3ddb8f1681b5d731856c78c270dee34f506d48b1dfedb7e31621aaf1a4128ec8e154cf58d898b153165f66e97357a1c058036e0b9f13760371a1132bff8777687eceb24eda9fdb1ee11653a3d5017bb515989c0efa03f1addb12689bb9614320c28bb10d98907f95353d357145e25dc6239ec4f38931c9da5db99f2dc6715939695d8567ce5451501ca24164b2f44075b561a8f301d2bb84b6bfa3c5e520170a1cd38c2f192b915b6199877f23c079c4156149e6fc8d55728a0d58927ef3b72b43a45e1f96e16764601fd7980e2303eceedc9a50bddda317474299889401f473dbe0158da3263242cecdd7fb207c0f0fee6ff6781e9308dcca07147607ca4566a4f9a9977fc148f3460c5a77833e48b13401603adfde93e669d20b494816b4839b19de663b884b7adcba8e43b103985d570f0c2f459632aaee41ba753563b8463fa419c7c5aff10d72b780ca0d073d2022bd24f0a59690e8a52005cc13edad7ec6860093ef42a2a8d3e4ea28ce315b4e718b195714fef922d6bd97692c90c64a239339891f5110786e943b59f4db8aed5d152485a0e2238bbf8d903f51ca642741fd942da4a1b118b49884e68ebd06c220d86212b84d35b1be5e1ee7360c1cc53a1250822cde4d915e098735c499ebe9e5dd7cb38a12d51d9e97118087c1006de1fe98297cfc298a4140409f112a142dfa45c890db7ace87fe20a6ff9059617bfb97d39593a15408d0bcad7fd65356e3ccce4a9680696e0707facb451f394e83a25019c5b75eff65ddbefa49fc867d747183fd37da30c5d53de35b9bf243c10325e6ff2dc49876984b693520c5c4abfb5af6ac4332b4decd7db66fc0e8a273fa60ddcb51a403dffdf0aa88edc11ba306654e3a70f79524ac092a5929f0630ea12cc417b22b3840ca0dd1d3e817b3d5d3b8800a88b4e3f4b331d794d2a5c54ee3adfcb233cacea740ede77b44e26215f249f0b8d38f6e3d8d12f7605e7f984927a5366793874d74506fa412c4e30b32c7256aec3acc68faa1fc378954d9f8d80256122e7e32fdf719e056c43c4a9946a3251983bb20c7f5a8f9db97783ded8c1c9e3a2bcea40d0d858e2b5a3441e41e722b33d54b91a7c1fcfa4dca4df7f88876cdc383d2ab32d86bcb2354279a5a46e6644ccafad18dc3d4de0643ca439415693bdfe387e567b7d907982efe5acb6bc4a53db0ec453c7b22239dc84d5625a99458a9356732778215cb0b13dbaa6836a143fdd9d85f4cb8716e1c02cc209371ca6c30531dfd58bff1d27c519be725b6f0f971da6c94fc7d08206abe6db3f01436e71a96bca23145c4d83d1d1a83de37238e8aadf2270610343dbaeb3ea3b06ef2dfd4077ddeb5bb82e642b3d10c72b1d61b514e11b24df4577d218c5e6fdee43fcb6f87ad6451649973dd72f483607b08facb682e3c8c64247b5c7c13c74fbf2fc52d25adc747faea79c2f13cf6191f5e773a397094cdc510281427d3b420875391e9cd712bab646e883d4f704b292173dad8f5354e6627c3a9065971ad28bd3212d184b7f9890ebd3ca71bfcae5021efa6914f15fed3d441eba1b78d211c97f763dee07578edea8ec1b6403cea4f0251548fe88e93639aac48f1a49363512cc4bbb116f33751d91dd7a923e46b5a12e56859ce10292e780de87e5f55d3c18e4f877fa12e807ced626a171ef32593d5910fb8d0da8dc6a9552622fd9fc57e49f9cef603ad8d99b54d5cced790357105ce027be123496aec38dfffa838a4b939e2475e983f2c7719a5a502fdd22d78558a4d2fafcd4fa76ef12dd95259065ddaf0c765a85692b39406512d4704f1c717a65e5d6ead9ef49be6c92d34e095cb365b58da0bc6ab2ff4f5a3eee951aa281364727a66f34a9766cef45997063c7f0f07d0a30ab813a4b82091f8e551fb9c683b821e3704dc71fd699337f43e9025f019b8903cb89a339325ea5d9db68ad9d3f71a202a9b30dc4bc106fe4759402d027ea4fa2bd9cdebdbbf8a36fc142fdedf18f92e2afe193c6ec6a02d873d12e0b471b7dd3acaf2b83fa2158f4be21fd3de9bc09cd9ca06a1697d88c78435693b0bcd3976eb8a18a854df6c8b167435250e69525322d930c3c01afae830c554193a0ece2eb8bfd70f7603c961991eab28293ef7565ef05ca2d6c61fc8c313ff22cc2692ccffb840d4a74928111e4ee22ba5ad8ea60a967c3c9be51d8be29b2b47215d8276d2038058edccb199b8bbf3f57859cc8af1b179d9597f25d30550721d8f5bb7235aad23e192833abb72cebd321026a9da00e358545905a54fa365c51a8a528b6f174eba907f5ef197180e6bdcc6517c3ef507c9c3fd0180cea88176ea004381fea08b7f525bc22fd3a8b1d74dff320b41f67be0244c19b7793d7a0b9c67b7f080726f754c79bb2bf3a07df660e9900928d1812749503a852620cda0e40ba12da519632931cf16cb072c805f0069213949772566eba807c112e4c62184398ae063c97fa9ac29a8fec08b3bac49c840c4cc48161750574619bd05a4c97d561e3a090aa0e70937d5d2576dbda5795259bc89c27d680bb3199e6134ba5981b98298b7db0166b5a8e77f4b21363e5b9320fd7c97b3bb8d3d6926da8c7c6ccdf22f98bff72426151115b9ca78a85b6db4bd2358de408a06eb22cafd15e04f9d7dddece882d1186106bbb817dc692f0b11e1237d8d9a4dd455e5e359c7b4c2c0470b69642e97e4ed517b9fdd2e5b4aeb1b73d8aa5eba9dab9c0396f523c909f684134964b561be2f61c4b52d4e9e629856b89bf6821813bed03120ea86f97248e9bb7052f065ad8a7afcbee743db1d1ba24bf7101442ef803982a8cdf0287d3087e30a67653e8ff22884e8b50ef3ce65336cc4960e164282dd5e9b5db03d29d47a01ce69c6196e2e154e55762f25284587bdfe3a02030f47b99db21c9cc1fb285f803580596c79fc3aecfb956a037985e67c061d0fecea7854af7d40d888abe143a85fa959aa9d31c479e32570353c7ee462ec7983af8c6286c24d27691515aee32e50aaa6c0b28c20aababee1909344254995898cb31cd95b082fbe54eb0a87316426ad5bf139fc20960172477ed8fd66f867ee59d5929321f88942b0bbdbc527eac19c8bafb0213e4008392797e61b1c1f4b6b01cc94d2e2ba91f79843d79495f565880f0710d22159df30414d72a09f512bd49a95ffeb2ecfbff774a4c7a5125a92586d9ca142b2e9c163b5b332b26fef941cefaf15ba96a21bf70bae889f59a662dc7d7f4fd380450a8d842e5f557ddd0c703d405dbb943b54f0dd11d794923b0d97b03424f1c3c758c88bb00e8361b7be67a78301a5ede7f8cf218277e295c1ab0b6526210ceebba3e6c572e45a074c920918c21f6f6aa4036d6c8ad7263bba7a268abc62da35551fe2d3830636279bd3fc18ae2157b8b027265c5ac7b8c296b84a100acda316b5cf8989b36b984049bf52e0b58de6a790f88102d2e0240bebf4d0b67a0a4551073925c4f199330cfcf0a96a2886380dd1cc492889004b5c8ef38c9ec58095856b116977ccc1565b3566d6f12bd2ab40c42124788b0c901995c112f3981b56659302777bf2d45c12a68330d9ebee6b47efe99e6904eaa84f94e83268bd7dbefe599ffdc4505dd353d191be5d49ca9c0deb05328d7ea00f37390bc418b1a06e6ce7aa72705ff0eed84b32b96f59cdae38a8624c62f6827bc7cf337ff0ce032212ee46e2486295cccf205ad2dab5c05cd926d9569909b10f7b3ec5c218cb2efa38c76b1f45e08f603bc17c1d361336dfc86776529dfde4468fafd7e6c39675dc773168876864eddcf951811f35f0e24d6e3ae97df47b62aec6426683ae0b9a8d296489401b1954f20e25524b84755fd1ac906bfe26925964c50b87077d054c9208e9cc52e3b0fe63f3a6ded6959d32f76aa250dbccd8b8023e1ea7fa7c47aab1438d94c937aadfea1e238c314f4f0c79338d6dbba07214a411a53d75e4198107c2c400a1484fa56aa9fbbea5c46985c32971924468a50cf2f60211d3bbc6239846dc1a94dc42e33d0318b78b5c303b052feaa0b05b4fb9ab2e13f058282b184a5424800e56edc6ee54a202c4190d7a996d7a5f611d210770b479a411fcce1a290f3b4873f19327062e5230b40d748192c3834098f060996c29f6c16b36c53c010cf9de3bb4353bf1087626cd48c2918c2d9e0b797c9868f89e08084a503fa500281b2ebb9f0596220658db6734fd8b692f7203b6550197a66e5ffb7430f148646e43b6e7a77e409ccf803c6c44265c6289efb9f857d62d852c1be1b03a0e3fb368626b74c6822de63ea1e875987321af157051d8e40baf8428eb45b27fb4e0b90a83ac4df03c438e8903970d755561f8a37e8d0925aac9e6624518d1850188d203ad92a0043de911ce8444dd91dd1c026529ab198bde7d2cbcd3c389ad66c8db583c0f87742fb620d99496cefda0134081a92fe3ae2be72dee2e4e3f80439123a7093cc32946d45fe769be10a812f20cd99e2342a5714702b46b6da02b4ad8125abbd7cd35753a4f1fdcf1f3f7f169220ccd1cfd2220b85e165aa5a3b2acce9b48a3cd109b6232ae8e9194db5ce30e65def044bb04c3f69af081bbda46c1f15b9a3c71d470595cc94cc36bfa817f7c4ef12a5197c5101365d506508683aa5630e69043183256eed21370e08b6a8591e3ada7afa3848496e81ad5e2f5627bd14fb6adf3007b5d56d3cca68578f3dfd1c3e15d889edb828b737ca9c339ae2757578d0c9e6b994c6c4379bb700aab8a9cb525a004fc027d07e1c3d28419f3dbdad4f470174c05bebf7cd1aadf6e5602d91ca1490332477fdcb702f2ab04d0188e3982b1640e0ff463b01427d84dc1128935580ec945c71b3a7ca38fc0aa1ab96273169e085a74346ed0f81f7dac24654ca389081b9af67eaf7c12a44bb472d2765739371cb66a1017296d64626964e0767fadabfc5804f8b7d990fd210b4f9e8039113e5c671bbacfc5c4266ccae6cf9766488181bc4ec3885dc46291e37781974a42918372e406e29d27e0251a36d26c0fb104ee43ad0eeed0c61e4fb4a030b4f7ef2112a7e43c96731de9f98f85cd6d40cafc6924db7d22e44ce61348a42ed8e3f20babd2729f55fcb2586a5ac3b669b17856c6a74856dd145bfa4e4ef7fd9442aff3ecf0a851903e2aeab116a417c28f58ff88489e1d4a51b88815aa4cbf20fea95196a3e95c75817a4d997a10471a3d75e7d16b78eba3b648acad96130830ea45693b7504f1639f23b001d9a5b937dc3643008784f7421bf060dd9f8323d63373d8a5fb243cf8caee062eddfa13626f21b52a841cce5ebf56bb9a0c508656287be9fb620ef8ad66633d004af8901bde2b6242d272e78df37f2edf0feb27087a6a3c4c815f95f62bab5a5e7aae02d6b2731057b3e3b23dc448cfe967ecc6b09d8430ed58a1ede5204f2c8bff5d978bcd3344242b020ef03fe92cc488ed11ce218cc9c9dd2ad20a24052f518eee5d318c6098d917cd877f0441689da50145a4c125019e383782cc95f8973118f682fe69511a023511ec6e0ef7b7f68402258d6a1d228cdba51741b7874f47f7940e0e18f9d70c7b5a110d7e22c94dcf9b3cea42c1228567d77534d52216d836340332440b84ecfd353601d934631245684540fa25c1db16f1f6867e60b76428e07a82d2c2b44c1b3e0b29a696dd0e724f246fc89f7107bf612ea22fc2f2215f1aae705f7781117a791da01e1370f73c311c471569dac9b679e6e627f2774b3b87fa06ee0fc1a911f2d200ed4a52272a30f3b799e824dbc37934e87375edd9d3cf767b5aeefbfe2ed3ff4f51b166a1864354e149703b72475ef42e06294bb158014a5e44769547e9a739dadb384af77c9e8392cf3d8d387b6d36bb972f5d8edd39b988b32f060f1e67d046e3873a9f9806147d6949b3f94389c75ec5e1e66ea0af26e62d485b1c5c0ece01f05869a49fcf77a2d5b58587ab4c10468a98009ccabdc299876ac665143f29bff6682fca3525e0740e9a88b6bfc5bc6afa6af2b31e5810a8978490eccc9f785c80126c7598e88a11f38ca07b4c6b10e84c69aa93af39ad7e3c2b0233255688db2ed7af128ceab56e0c7d33e7ac31af7551b0d346402faef1975ebe3c6ab2dd1890e9493d4f1cb5264ee4fe818e23e89d42aa39bbeace09a3649b80fd24d90d8807280b079d5f093e4d8ca0c34fb27cbe65ea79b9e6a8a45bb6dac7fb0dd17ca91b2dff94c0bff8c6d8d40bb9cce874154c90a152da3dc59cd33e9d0841c9ddff5a87223db1b027e1aeb39e019f3929384e504fef367bc285699a6624aa29f82469e907dd721fda6e2a2a806e2b24309d2e0ed140de39a83d5b7cd05af306005ba520309a0901444a4e1781475af15f954fcf2d238896e403ac7201f4fafdb8f616f1b16a1ca6c64560e080b6c7f02d4caa586a49894a7988773bf63c8934876a906b56b71411da782e8eba022bcadbb53a0f0b7644236216c4b93874a84370a40c6aa738a3573f0719140ca35e47aa8e444e4501b7ae954c9c40ea63a8f5e14635682d0ff118f2582e2b31986c72afaf0bca1e8dd173e92b45c0c5dc471be4bd154ccb8250ce89627039ae413a21a594edceb183650984dfd9e970986b8d1c28a53c765d89224b1d588160b8e8870dad5510e73042382127cacc95a3570cf499e85369e1849890c8986fff77ab413e4fbc7b22da6f4a5aef2dcea8875efeecc55a40ab2ab8bb1a990b4a962eefbbc1f261c5fcc9e395144dfde2786b5c4643ac206741f8874a2acea3bd27ea9c22d78044c61ab87a676cdfb6d072df756ebdea73e08aeb6cd93485461111017aa30ce6e1d93116a5438a4aef2b71283f4f38374fdb2e7498b6f55924b8939cfde310a10b81dd9496d8f1775554acc16b87a5c00513f2c3b04ab24ae645c0dd1d20c026fc4b8ff4cd556ef629567b42a6780667339bd28d57fe6a74a3eb1183b1fa6af9111f6a1f6a3aad6fe091307d584fe9211305dbe2bb1b2741947c15a9daf9b1a5a81ac54a541d0f43b76f49980625d718971bb9fe847f4326fe360496ba4e25ee9841ef1513dc11c160af03513f0ec067626a4ec4ed189169ef3c8a585f8f3c71d7b5951ed2e096e8bb59b0d3a1e986b404b53431d80fa7261095163967ea5c34298e11f11e9d00dbe15548c5925a991079ab5aff5e17132a8c813a65d51050d7b52f67e08c6e14245c77d44ea66c3502d547c42e4b74751554f5a12227befc95c97d5a55c31f66e020f4ecc58a0ac98325f80411e98fe370b672ff789f7e87edb52c3f7a97c93f2ac9d68d509e40878291a54f593b8be840685c98629652f98e8b958bd225e890f4ec510c7a5db0f74ce38351c9257c50421e9c58f0ee422b9752c85169668ce958b518cc3fdc91f0c1460317ff0f630a1831792c2983d919b3680522b960298964d81c766ef980ca9240334b9381fca590dd7952f7494c95256331b2bef410ba606a96b3a609de2aac6f9b91a433eac24639459c2c23c6e3dcfc2bd90ac95cda7a327115089505d701cbb22eca446780e1d3668ef1f7be7bb0b2defa7e6de2f52043e7991cc74d3241cab81b02056b84c96dc22afc5e065bb497eb7f0d9608656fbba07c90d068302b582ceefdcea41fa97cf4bf9ae2127a4047b3f2b7e5611ae07fd3cbaf64f0dccf92248e042c130004775409edd40606c47bb1377c7bb8783e02b0cedbde00e7d8a4a288131bb2d3b23533511d6928769778c0d81fe9d0eb57bc0df2fe6b88ce9ea322061a084925d0483e916e1f38bb5c7afe1408aea6e86c0ddd946fc97457eb92978e6eb1a048a0ce0acba8258117258b76c6dfa80a4e0a9a7f55dced9a730f217ff546971e2ecacfba5fb2f2831eb86c122da4a7d389ad6ab021d3e42c8a8a434f5236ca517ce8dd084e6dea5a14c1eaf1060a92c322f1711ac3c1a91dbfa55921e076a6f27f0baef7c932911d4913ce860a95fa2e50e6c56e7e2a968d52b045fec9b57dd7656f554f55dadaa58eb3dab4e2b2d688ce1e85983432030688b7ad399df53c990f03ccf9a3131008358f22051c2d66cb1f796b04706e593c80ca91320a289e1685a16fd31c32256ec77465bf7b858ec8034cbb552294744facb2202cb888d224641a6d026843c100febd657acf1c455c3efd7662c7704c7a1f6a358f2abb4d23fce15e1b278284e34414b6678722c20b310b8ee733f9f6d99f1fcdc683fbf6674f787907729cc9e6bee4c1a876e1b586630de150653f87b4bcc0edbf72dbce0a8ba36de1fb3b39506f5edb7c5bb2481b567e1607cb8159c7d0baf2af6def9b22926b89bce8c6abf39efb8b5d7ca56d032890716e302121257c7265f3a7b2c8a9f1651db151949cdb0cfb6b01200c42e7d317438d0e1b8118bfa8565115e41db03abb8088d72347d9ead785ad989cffdd9ba00ba7675a27bd412fdd8d19c89d3657369e9bb10595cf017055843ae98f0ab2f303664e031e833eb9d04038b9566372b85318ee773da87b820ff3af85effe5e58850604a21522e6080b2ba6287e0df4e1d7b96b2f005f63615e68f3ee1e6798fcc260ae163500c73fcfb0d177db6d80392fb270e3f32e71586e2ef8d1c5022f4b9d7d779c1c7f9db0c71967c9cd8e7202e2f25bf869f00554cda1fdc077e0f832ef6d43343d37a9e1b425ceafdad85b5380c8eb6f6abd1f56d3cf075d43c644832e4a6cd0c5eb485612d98f0aa2400a85e796f42c190c5a4df8e5b6f61d91ba1efae9a2808799a0b2a7402c9c81eb0bea785499f5600e4f6e2b8bbfdbde58bbf42a210391838f959e5665632638e7153bec0352bc6c8f3dd3f0f16b0f8549a20f6171a9b246152d7db666bc17c4cd0ffcb3f2ae1844d5b75f67e18274f7f6b5cfc5e6a8cf21db00ee7255aff9670a5f20f1be1e31497f8ddbdcee3f5190a6d0e277fb1ed9ac0bab212da9bf55b4c01b7d4b1137b0365bef9df63004da3bcd1eee2557b6f2845ad51ee4698e15676600efdc89251870cdc3402bd71c55b4dba4efe21a1bbf0e9a0d52da32c2bd0cb58e49d960114b6e8be9cfac5ea2501fb40217158c8104b07319ac6fdf3371b3948d9a30f0073366765808dd39615f977377221a1075282a5ce8ccac11f89993d9a43df26044af4b61dcadb8b19f93eabd43c30c09d986f6bc621737a80ac6bae49942fc54a09adc7e5d827719d3f7f65dcf8413ba0f8fd68ea989140111dc4b7c059e0aaff59ce21f422b778f7322bb186cda9549f683fc814fbabfaa699b2dd0133a34907a10ff48c272841628a153d8970582deb2cf794284535f99effaab5d78e581199886c3544d84b19f8194f4046ef6543cca61e88275f99965cf01c71285e58b7c5cc4e13ca29db3466e942e97689849497121f06cb27d57ebcbd259c3398436f4080568c96d2a2135cdc8b45dac1d0f7e4e944b0e02cac262d1fdb7a17b53a087017833dcb224bb254ebb5acbec479d0c5ace0645097746d9a31a23a2d4e7742000b75472226a00518a2212875949b6259e7994809cab31bac453fa40cba4dab6a72ea26d0f3b7c370636d5228ddfe065502214aff7c9ef538061d029c30822be1847709d7f5ed0457a3c17f5a2d51151ea57bcf0d433b08ff605645fed6ca3f8ef8497d16ac51fe3a248b7c9eb92bac8f1fdb4ab382a4d8730e5d5557113126608cb7224f31f0738aaffcd6c87f1cf191fa2c48e836287b5019ca6aab75bdecdb342dab24a6e57d228311f883536691c8d01bd412a1d8102d1ac486a8b7610c2628a721bde4e2aa8898f3442cda349b3efc8357d6d5cf16790241992684cd95c845f86021334690752ad527de4620b84724e6979564595945d5898a76ad316da3df4e8cc1d3c6784098ccc09bc8f8464d3f6e9888251d3ff01493d6e607002936c256db30984042b8e2921d47496e45917373dc1eef8c42ebb16fad88fd84f3042912d60e37e90c383e80ce56d7cc0838a6f50b6271e76117303e6a84dab142acd83a69fba138377c65668f42d7dd59ae5b8e519c04f7f99d21c49d425d35828b72780408c01f98466f0e1d161159f1b51e4907529f9504217ed6b4d09795f7d9bf0715a049c847eb4c6e6cf977ec31ffa6973ec3d9ba54fcddd90f9b19933b9b9b1b41a060469dd8360b23046d9be5ffdf14e45ff78cc17bdc987b54519e92c5a0b1a074de5cdb2e0321e405adea03f99f60c67b51859b1a21e8832cb0d551d2e5495670bad4203fea45b34a0aa6d87b68c18270b511c4062a84e474338357443bbd9a91337238519fbf0908af928f0728549f4eaea303c0ac7b362957b0855c9442d6bc057cbfd8ac38030e6149ab8f22204199288e2321ac78f0e9bbb550e0ac71ed37edda957462b19ae591e12d1c766defdc33b870296ff116b145cf71527378d544c48e29c360a73f241fb3eaf205333893b65cac113d1b8141e129933f4c7f889d888ea2f342703aa7ad8588cf32aef0c2d1b148e0c36571eb3729981d2e4d136e22186963edfa50d46494cd055c37fbbbe292950f05a0b3aa6eef5816e0be2cb98247fa9089cb6017a202abe7d11f5c4d7308f521254b35024b83903491e277d0d976f6b5956701494b6df7fe056a1ad75851db37d672028c1c7ea429c2ad956fc4621debe94b5ab0c785d902766de7be566e6f6cb362c1daf9345eabd363fa4275038f1032c6acacad41f18cc7d65eb290f1664057777f80c8aa6ce4bf36d9d76feb62cb276b738cf0f5e6b550610f4fe99ceed2db70dcc23a744f413cff24bf9af71c4d2d8b38dc0d1bead76bf760fce7ce477da14f80539533196ce860556a0b1265355eb7e73b1200966f950f399130d8d828b9d5e06378ef6317d1ad09c00b342c1e02f45a89e77c7fb7bd384820e510a0bd24d50b4db1705d6e4b239f4d358153595a017082c1e218245069b3b6f534eb025c1b1bf188fd0d95e04613ebc6dd62cd37697735e371e19ff225fc0e0661087fceb26f534a1fdab6b07e1bbd58835810d09b649263e8e821a37bff9729e5b7ef79936a7aee85539994f808d298bba2149aba8c0237d002dc95e071af9b383b93d971ceecd3d9ba0499e053f4317505402ff09fecca2dc03195304880f0fd61cd2f1b9594054d9ca4ed4c2974e83b552599fcb3dfa805f0edb3de12ef9906f23fdb4a53e9e1c4c9518c4c5414edc592a505e609f849e1647f386d7b30c63b6fed9edd2c7c204939e4f680c8aa5f64297b4d2c23bb7663878abb8713fb1b49ca71b8a47598ec6c35030456bf7c22a846c1accc1aa6c408cdd8ebdef70a5a5fe2933b21f6a93a8523e3abf1a61dc22842ca1269be6735175ee884bf04e17b20e60c73b5ec1530760399154449a636d086dece0c65685c9a3fc9794d8db92caeda5c6c359e8281baefae5a6d123b9cdac1ca4e6c6e96cc61db90906fed0bc9704ba17459a460e10a276c5de9e617c51042ad43660245f13912c40d435fa598a2bb1ab82addab5fa7283e560b3784f70f385cc15bd1bf5b947f7ce15f8aa86f765072bf3fc0165304eff7f86786da3690354c164b298c1c091dbdc05243220bcf4ad098830c954ac7a1e0bea0fcaefb6d6b5c1a1b7b1e21987dbf545058c595604dde0fc1b09fc2d6c63801c14fe88bbfcf14ea420121bc8f69a1e02a40b404cbcfbd33868c69807077dc90c0a48ca078ee39c392f94f048094ffe70063fd5556559eb49d4bb9c170eaff42a3089bde4d7f040781fe2d6f71225a44f8253c738d72e3e76f01177b8a887c8685c4ab8931199261488ba0cc4e284c35a0742c3eab4e132245cccbdbbbf5d83043a5141a164b57bf41ea8c2167e4274237188f390f49c587a842eca5df08d2333ca2896789259216929b65abc792eeff6f5d132c1a02bbbd4b9aa7522e90b1a386c9545c22523221281bd5401fd2bb4ef89c9a57761abc4c81b728c805e93647c650eced8c24670243c17ae97ca6308859a51f28dcdc6a7d6fcf91e8999695d8e9e556b24438d1d229a66ae489c2702850013b49a0728b0f04ee1e973f463487a2016b0f8dade9943f592920350ab2dd345e6e6363ee2d74ddc6a6ff5be5da115da10a11418a0fdaf507091b7a97abfc2fad84125ee284de9d0838c9ba48f5bd5e6260fad6675de0ebdfad0fad0afd4087f422c096711afc0e3ffabe6e146ca0b7811b890f74c038b017be64dcdf1d53994bbbaf54942d736e48aaa8a2cc71135107f088ca0e384bbc4e564474b9d5340c2664573a3a003485c63017ebbe4b267cc2372800f3be097ca5e7b31873f14b30e8256556443551647f703e7ecea0e18762dd675f66a522b6889f3f0d33d9c9344eb943a52436348e5f630500d78fc8e6173fc8df5ea6f23233cf13759f7d11a83628b7da969a3f67e1be8e9ce199fc689d006a7eb6479c1b3e82c4982823a3be097c25598b6098ffc85eda23efa999c0b184e84163999f64f7865feccadebd114bc97203ea18a1821a1e611f4128a5832208f5201b46f28df9311641e709ac41da795a5d8206575fa3f75e6a714e2670b7ae3dad61373ec5057f2c2f03ef4229178daef921508b9f3449e6a9324c4e3d536034c945cccdb76d2ccac72a561bf5dea13fbd9331ecbe11066722f953d60fb49616b68aa5a612d577d6f96e1cef2459e4205e2e1e38210508e679683281b46f124f7e1e6111a507a9546a387f6cac08240c935eab5ab289771049a9513d4ecfdc55f96d1ee454d27f45f689b50baad0fd6cfd25a047e4f2496fca8398831890dd200962efdfc535cf5421062912ef5ff9e3fbcfc7d1420f40fec4cec0d862375aec17fc6a8a5e5f24682007addfdc29c8995e635e4811da1cad917eddd70084ba915f70d8e70f7877dd1f787f0137a6eef21b503502d7996a9ba215d2fb66c290e6e1061ff4ad7dd28a320f75c62efe54bc25b4200ea74611d85d45879eee63a2ddd3c92607b1956d637ce7bb5564ad01252bc3dd0c2d9ef49fdeebb8ddb0e37834f9852732b08619f588bb7d3d6296c22708c1e845205630a45a620f5c6a3903a7b50feac2baa2083f488dc99adf91383530b1ee7d6ad34d1b63ab1b53f2103918d49525488dcf2effbe5a9aebdf584356c43238cfa805527d6d812bc2d73c73c0d964ccabef7ec7a209ad371b7f503e5011a08fa7ae68bdb9b4d3b395ea7919d95dd097f59ebd3c37bb449a8eda37512ebe99bf4ae14ee19da7ca66a94cefb6e022d78f9a4e483fd38ecacdf4c97661dee3abb2593324b769f9bd737784074446538c5531f840e33a146199ffa74fab22cd7c840850b8e0f5863efc184a1f2156d1e7821227c16b8557ec02d156a798a1c1db0f03b037958a2600dae7bc11c72226abdf749a366604c4e0d4caa7c6e1cd3a775b67e78e873976a3bfb8f9c40fef1450a34607667da8edca295cceb656e2c45a648b681713298e8f2edc79f811eed9a4f7c412ebf8069c0a5adb5c33866848b627f7112e425e2fa40f3186d87d8ee2652e124188bcde87440d669d3102fd860522a0c757feb5095f13e3dd57101c705c6bb44712ea3d29ff06c9c3d8f116e1fff9c37caa5fd9e7bfe048e85a03fe0bbe9b336cb44c5ac344aa6f4912591217304cf268453ea8f8370a789bcc106216e8f2593f358853dc00dfe7468a9d5e3c8334c703e69e49e35b223940e3d8b9f3cc738f267d23603c18b39f9193f2f70664dfde4cc7ea001a5d7d04241da32e3a2ec353d5b485b3320c763264e15b88f8fd50d79e254b274021ce21532aaa7c1ff9a2edaa7cf50112407fd22088af0a94f624404074f6d51b06b176b1426f6f2229e710cd8de66cdee5cbb08c53be3d759531b40e60930e603a9f1a4d4bb54cf308d64865d8a01f816b245d2c43af11bdd0054a4dd3347d1e22e115416298cc281f323ce2c79eff401dc789310508dab76a43a833948973d40b540a7a7f81cd6de5b989171663e24567cd1477173b2dfc0f09fea11897d9278761f6f5eb9f1e9c84ac2be016f4dcfac3aa312626be454547b7896dd1b353ba1025f8eafc4cfb376024fcbe34a9b2275288f9de4e79f1dc62d935464bf41b4578be02af255a3801452edb4b4e1bed4c64de3b434168b1ae6bbcb18c0e26e933c3cc6e7eb23791c1ddc23ad4ee5042846c7cbfc0a451f2d16fafe886dae7c7b76570ffcb6af19fb05b7b11f1550a31bb1de9c00566a6d7b909f31642f64005505b1dcac936d7a59880203b78e69b5225e8bbc862d18ffb88792be44352c78d708b78dd4b9dc32e0a0a332e425e2ebebbb1f56d5bffdd566fb5f55dc65698ef1805d6f0514830297551e7506568f7f0c90fa9f9fec174793b7b440224de931c5263c7d00a16ee3e168330c993b471c943a04ef1e9cd896f1da30e2428ecdd6b298f85bccc2463bbdaadc882e2b6c00d82d8b33b33571affa56a6e16371f92cf34dcd7eb459258d573a028739e18ca6de62175e3a0eda061b7b610bacd9ea977d88f061dbc4a9ca450f88c6e8ac5289b9cc3895eabca906e0f6e1d27988d33acaf4955c3978802e3c6565c1ec782b50346b400af7f50ea4b7bf72993674513090764088da3b06917fc93194c6645125d14e4b821f446b07d47d2d1ad5d096cb73d3c87781a9caae142c4cc7145fc7b86435190ba0937df9e16b5af3534f354803083fdfdf1f9631f74d90f9697a4348f10daa72775014320bcb16a76c2c47c4fc46c8dd9cdcec3a10648c124d65a143df72cc02b5114a4b47def0c8d92eb2766b0a2b3ee10f5d348cb4895206c03162e3df39172bf4d06549758081e3dd14fc60b62c3a980914176bae0424f30ba3125d8f9b33bc40429fc006a991c61e907f26689085c9d151d2536430599d17012ecb42de15212524243416c40e695f880a84ebf3479efec03eba0e1b20fb60d1c2b1282895027e67af9bacbc3bda5af8a0cee8d05b902d2f26eaa4240ffdb262bf32c4d3597284146a14067cda21eaf2e6616018161d525a7bc8141069a59debe29a721a93d8380f7869c2fb6aa999e63c3dea83c67ed7c610d7f6560584aff2b083854cf68cea37c6f9a20fbfe053c3a5f38cd5902c35896656dbcd453f4db24a670aea5c34948bafb8642e39bc3ddd8cec20947eacc07bb6817d96a25a31f0d21cbcb4a9f99eeac7fd7284300d2bcf8addcf44f4ae6b54f2c8b3574e09537a5aef0a85ffe6ed001462cbffd83fd14467a21d528e4a749d6aeef6991072a2b7d91bafd0e9fa5ef817843accfde33015ef7409bced8ff5a1a3525d8f95c7843478824479d9ccf5be48428f95c23833cb78fcc947ea01efd0664c5c7f60e72a1be27e50e2c7a0808898163c09fd2732b24bfddd6ff1f8231731406f2469245cda04f6b9d39bc53358b6c17f7ba88829bb7560dfbd2d5168c162d5f5a3adea0e83968307cbfc59a2c79d6aff3387c879794761220a128fc7d4801c864e8be80e4b0afc1d93e23ffc4968a3f992bffd5ee26bb543abd976e8122dd20a5652e0865f4380ef19b19b40ea8dc6382b8eb8e736365786a3e3a2fa707e649daa03418aef1bf40f6cc85130e369dc6665d092e0df56e4dca00b13c2052419157aefecaca58e04ec208b33ed2ce6d9253f508c784e9d52c98c0c82643bfac85a57dee5a4310499aa1e72e6a4c3813975f5ce35459e197215b3e9c6c5790d0bb253962f19d306ae2be41fceafb342f1cf6bae1176e0773d9d85d01b6673361c7cb755ca1c18ddec44b75b25bc22ef21f7ad05f9f47833925e69745c6e36c6cefba9db27864231ea8be7fc51bc17b692022d2c9851d7dc8420fa69ea272ae2af31c581856ae02600d20afd68a8bcc271d4cf8745a3cce38230f2ea60b0cebc020227ca77f52b89b90078e4c8c888cc65ed4aff2d62f483415e0d6780bc0b2172845616188e2ea9516997f3a2fea8d1faa2dce4cbc4d9c753ffe2102654e3f0c54b80758034ad4efd0880b822ab30bdd63e53c3d9aa1f46ae5534bd4fd9840eb7874a0b33ae1c39c100f617007c46cbbd49b308e588bed3b12e4f40c65c25cb5c63cbf9678759514bad580b9888eef6545e406399f9f121315e93da6cf88e9c30702c9b67188000b4b8a868a6122dd67831125fa77c2d43168945e525448da698d5e31ca12d7ca69e88a2e204339e3c491a201d508ba772564eb77a763c731380970a83be293a5fe0c966fa4e9cc4d4e49b67319b65b0e6a41ab97ca167bcb6b95c502b9ae37c0e1e68b0d42ef3ee7c4323c9e425874e38cdec992a72ef4d894d49a72b620ef5a172cf4c743b215d387e85e3899ce7d09b5e5955ec4bd84286fe6f5523a1a97ff34a09b623fda37e332ffc682a8b73a37973513bd8a7bf9489e4d7ad39545a2eea0bf5b29e5a99b5bc1754e6e7eb121f4dae7e2b466465f61efb65e46a602dc46050e3cc4200d55301e554d07bf5130b403a4c035c730de981ad8d70ce662cf34382218fb1f8833808d6fe38456b5f833fb8ab2e001422b9df32897e68b7cf030a339fe641eb13fa0231751d34a1d6e232da4c9bdf7de7b4b29539201f50c5f0d740d31865ee93c278f4798d9135be44bf64ebbf04bb2745cb021387db82717a6cfc0c7b7afbc883e28237cf0e8f1a70f9fc718ddf680139d7bf090dd416797299e9c8a0ee5a9d4152216a316d6a909e92bdd121eb013d34a7642d9b414f0f3669e0e4abe69308747a73874305e696fa66ac6c82b3cdccf5bb058a18252917242393119f2319594487624aa5ec76d5a86d1a859fb72a5b92118e0248321eebe1bdb0338f5003a52affb3aef629dd362de7d40a2f3f53e9e3a15efe6a1746ab227adc1e9bcc3ba9cd825bb0c167f09fa38e6cf2844839ebc610c971f1bbabc9ddd4d6f941098aaf8a3f39eb226c026861a1d22f31184e854e822440c2b839e6f377937f2ba2cd898793c595e4286bbe836da6aa3b3e661f439448c21baae1b42888f31840bcf8a009b8f1ebabc0cf5ed938917459ddfa553adc948676fabec1de77195918e7d3f3cef3c76ad53e1ad619f6e837d0696294b1b7ca717b945d7475301b386e4db3d5396937952ce39e79c7366998c3c6bc8c4b36b1ae6d9e98509c9628491642fccb34e61585d2162316a619df4956e090fdac9b462d2c3890f9bb3fca1230ce74c5211613a955645ce327e75ab62bb886055dc3897da233ff8d0c30a0ff7f3162c56a8a054a49c38070c2827dfb39b4a4adc28b6785f8c2d5f6b8c0446c2ce04cbcbaf065bd503680f4f1abfa4879a100db6671913cee1c086ecb4d260c7a4b39c2ca5bc4c8cb0d06dce79a744fb4c7c30b6b047957e899d739ddbc4445f59d95456565454d86d835c143673cce78d0dd660b7b372a7bb012247917562641e3b62c461e6bad3a9185d5e1f31fabc5c5775270a36ac2b8ede83d69dbaaa3bb2ee3408f60c6f781f9d395e9c9dbaaa3b75e5dcc78464e1f8d59dbaaa2b7eafae3a257d32f181d934e8f1291f9d208515c7bdb6e78bb2c11e9d2fca4638ffe67cf7f8deeabc34fab1cbabd8d2de714ed8906331c1324aaa77c2561cd4555d45981b4418f657b6ca56ab08f3ea6e1053350a925557dc8b7b71afbae25e75c5a2b7ae58752559ac5b5930b075255fa25015527d629c734eee25aa5526722f2333dd7b591d624b7bf66218917371463821ae0817c401bde81065306353b648094ef2281ba39f1f33568489f2858b424c6937e06ef6921eba97adb41761b6aa9ae659db9deed556b1a5aeb2d7b7cbc8dc8b53459b2016ebc56a0105b986220c3b61c3baa2defe812823d221b6b4c78fab03c3a03adfde834783dd8e6f9e5dce7787d3200ead6543c97aa18ce0dc26a693403248ba220c735fe74770deb97775a0d8c1ce75785ebdba4d8cc7e0bb0403628ce8eaa8d786c6a0313166e4287624244bbb4dcc120c8831465c1d35ae4d8ce7d56d624835b09c8b9cbb28236e4a9c73d4119d7bdeb9074403ecd1630c8a5e236e445e8da85707dbc48491f52ace49aa122f79ac46945cd411252ff1d2ad3925e798d2cd70244bdbc4749f4d0cf7a18e2039e724ee75b39c2ac3281b432ad5b78f6a87e5eaaa43a21c918e6825da11f1887a443e2296ce6835628d76da473cf5d512b95ab202755df5e4e08c542fd1d0bb7c4145f73a957c41c58b5a00e7247f40472239e7b1bdaeba2f0392a59905368caeda4372aeae240bbd95873dcc70805a9cce73dc8adbe178b81ecea72f27c486190ef65cb957122cfb74b9865e1b121577c3e1482e27c2f03f67051bdafce65e95d932ce0a1673ea5c95a1f1a262955922f3cd638dcedc902346d4557571adcbb11aa43994b5f56c3ef205f5801ef912592da0a008c33a3c17010938f72eea013a38f72ecdaa11dca53d9205088fc06e381bce96b3e96cab6d8707e8db81825c43af4da5ed683b3c5a8f0fabd5b261f6ca5e9a8afb6c62341c2d47d3d156ab08d3dfce04cb30a9be1d041186d218638c31c618638c31c618638c31c618638c31724e2d77690ef5afab1df96213d35e79e4cb8c69af3dd5475616e5912c994e6c692a5879431a24599285739a437340c9e25e92255997d5d515d755835d7dd49d9079381f36fe1c81ed977ce1766e388a8186637374be454375158ec450773a1572af475257ac6faf3eea13dfded595e8468423528d74442ef9c279fb2806f185d3110dc9178e350ac28807e1e806cf4075c5b1ea4ab2ea8abb1837e4ae201bd21cd637cd61c997d3897578b2c735d823940e45c9e2cf7773bd3ee45e9e4fb8b95edf2f2fef742ae47657a742ded98c5c7e6214a435015e2bacbac8e30af3f40006d0dec59e18b9a753ccd320f73077d77533a412d9671f7eec32fae48b84cf90646018d1979089de017ee9ccd3c3197643ec6faca24a84c9bc7d4584893ed692846812fdc23c92a5a323115dca441e538a7b9640a2bac8d95f60431b359775666673e7fa803a72d1a72300433122e7e9bc13d920221ef922ade411499e0675701a7862446ea583f6242222fb2ccbb62a834929e59cd29b1e57c31c1f5f0ce8181ef6d1206b18cf3ad37d8c6113387f835f1f79d5a0f4d1600c3b48ef38f374904e4def2031d8f1ed2615ae0a373f77fa4506699696425474902ad8b0837cf38aa783f0aa83ac7c68d2a7eb9110cffa466cce354ccbaea42cd80d6f3c45e286c9877846cdc259dc172d5f74dc0b84e0c142cfe3bb8e29a594f26532503a553e92c71a14345f7c6a77523a9d52ea4c0694cb8f447215e72024980c2cd429151e2a64d8b68db6f8dca9d3ef078bcd7be1d2491a44838e3ca541434f699091a734885e166a90b2d00cbb3ba9cb18281ee30b0b0f4f4e491efbc58818724621d1dd5c858a3bdd08152a44aec2eb4db9a18acd51fc7471c84f71df5c6a3e3fe5d69cb817def06291972e43fa52b4694e9f6e9b26f4a89169fa89d34f03a6afe1fcc4bbe99dbe4ec5f703e77e1f0bffc142c48016ee3eab4cd7823af54edf74944fe42cbe8fa24c5f400b779fd194fbf1790b15d76b16ce698779dd899f664e9cfbc1c2bf8ec5e7551a27ceb570915471eaf94975cf915051f128f4339a0a96bf7aa5995e36fae6536b9d2da9bac94d7e22553845711557397194a7789c2e5d569fd34f43c4f9c96dbb2804d8fcd43a60f35d78e3a587375e73cd372f4999a3c57745683e39378576bb28ee22c0e6bb4bdab19af4e9de8973273e2f290776ce79a269b78813e76ecdc9e70d9366fa937bbe22a5fa3c917cde109592424271118a8b5044f4134d91530d45e424915392a852aa427455384985537ae29344f239dd844e6ae254b0289ad75cde9373b571e2a68bb2515d7a757943ee4fbce6c44d5a75d3c989cfea26ef621227a6e77eb32fa54cf1cd316781e2254ff94214ef34cde4a63bb52b4d2ffbe517a2d088270f4d7f3af11aa2dc1ba63fb926f7acc9f49e97bef0c67bee55199235551b2631be211aec548843c716a38a64c7b9ac321cc71ec7bd7fd643b0e89716eeb5901e39faa25371e3ae3635bb6d54a5c1934af3a00327561f9ff0118a1770e19985c7958c999951cee203d2044e1231dc350f6344977827e04220f1c36e28e72fc68d4b8c1ec0741122460c19c9c717d8506be12cbcc5d51180a19816cee286f1a23e95ef84dd53c721b7f86264e1fbc37f1a6c6ff1c518f6f1163ca3864b0c165f8c2c3e46683df8d1a70872f82ebad8e86384a08f3e46e069f9e8538428bc0b10f1c5a547e70750980111b07024a65f484ae994529f224031e594d1db6bc4174f691dc39e444c9d383b12f188983a399b382c3d939ee31cbe3d14a2c5f6f0acad0845a3e72162cae4ec3362cac4d90f105329ce6e125f9080e1e74a9cbd469812ea9a1a5489a7d349c53b33a81ee5da16745ac535a79546acdb666795d17c7e359aa35ce36a43739477dab7c239f0d3aed8bed07bbeb14115540c952f74d93ca262f439513d1fe2c8b6e89bf3177dfb3808c3e0580486c1beb9a644f6996f5f76f288e22abe1377d15c5c80a6c9354ff9e2db2dfb4cf3abd9baed9b3498b39b38e457226a70b0a78f7d3cc1e36353121108c3b718be45950c527c7bc73a6d81c8e213f9c60a7788c3b7afe11b8919d89079a2d04fdeb6cd67e26f6ef39109d28e85e20556f868f3fce1909f4d7abd067fb078d162e2b3b8ec233b15ba088104d0b727d1712fb0217712d10789213674892a9de2c4119d95c6cccccc1e8e4f470fa09d6bb57335b034b03c02cbf5b0b1b2f7143a8fcddce64d8e58b6799af4b8aed2689792a71730cfbc71beeeba28d8b0719ce09f117d4e1cbdc4e91d33fa0bfb51a4d8d2cedf8f2a3dff4a5ecbcdc0868d235b54da79f36d6a9c20dfde3b9ac71a2c8e069b03b1a5319fd1dc98b76420a079430e0a2dbb6cbc210f7d681b07bbb245041bce9b79f3e2decca15378ff305085dacb79a7773d6d7adf2a16f4abd338ceb54fcaf82329a84ba9cd214ecb384dd33ccba4742aa56b1afdb8a8a2b1e5d1348e73ce6734a679d7611e6b947a3ea3d98535f11997719452ab39a669ae0635a734d31cfb385965bacb5daf41ae55e4de89534a29added56f92c1fa899ff88c167da1cd8b4e3c6a218c3771938997944876b47157d36c685f0de798cf2125b2f7b2d7b4b0bfa354734c86761fe6332467f3b1dad8fce4e337f99660e608c325b4d5fd23558fd1de91adcef1c5c2645e2b769b5e14cd53d19cdf719dd13ebb35624bbb952f36224b07940811463b35c2b74f201a24b6b46f1fe5b14394b1797bbdc3b7673a2c63bbd92ac341a653557c06e59af3c043b5de9570224c0b27752492c7f85262d595124e29053145bd4f4178685d3cd4fefbbcbae40b103773d1eeb52d0c73aae2b5d68387f674ea3ccc12f1b42f3e89d56277f7d06a9a691b62492c124bf4c25fb4bcf87c6879f183fbf0c25b5ec078f10286a35ec080e12db6cac068b921eac50b1f7e701f5ebc78f1e20586522a61dad632dd8d456275dcc6e22a11d431dfaa0d0cc31cc3304bc412b14302e0a11d12004b24009f6ddf449506eabe3061588ba699bc45c34c32260cc35e4cd0dbc11e3c760f3df4a0395db1ad70e12cdeb1077aec978d85dd8d85b26d2cedd664be39bd251edb132fa93296ab8cbda1f79ed36fa381720f004e3f156fbe1dd22f3326653f15b79f0680cf7e288f7573adc4922f40b838c73a9558df0ec4e7f2491e5cb0ac00516e381a42e2ef0be987251f422b57be8c85136122d71afc337102dbc8e647773a41577898adba0e896566661d1f630b5f1e3ede466ef3221f9d9cb8c9c98989db3cc94dfc88cac79f1e58e17f7c20546ac3b7977cfce9811ade073d867e7cc0e30708ae6ff9f803849eef62670789b384237508bb201e3ad8b0ba62144c305287ea11e9543add2e602314d0f0f3f72314d0b0fa9fa123bf398d12b0f1270eadef220e1b7fe490869b234f9d4f7a3c753e7900aa4c65b618866d1bbda1f628238f2d7796da2ac3ce7dfe1ddb5336a4e3669d07efec970df9b21feb61f693b11aecea3a9d9c74f2ac519ebaac3650de93382a29a4678e2f954fdfe69d69e43192bc064d1e5657758976e488788874443d3ac51b90f62decb7f0d8c24d2a3ff2d267f323b7d5d4e068e433ba7eb6880d62977cd980fc7ab65d0b2449de763234f2ed1bf906245f628cbe01d96e9bf19fce5ebfd9d969f2cde7c76d9b6b9bdb08f3b974274ebde3aa0cb5d15ff2ef5382032744b0537a512728eaa1c4b1c17e7251f44a9e1ddd9541ee88a759fa47103e3f5b9aa69393924fd3896996463d417c2321cd326ff7b2e106b415e95458da823a555372a0ad0b1146c5db3b954f89d19f78e90b8ba00ab0110a67d8f1d4995de58b5ff2af1a79552422d59783bf74eb9192377aa2a463094f5168f346ec0b17e82e9c3958d474d4bc34e0d30b565786a441996c480e76e4d2a5fde2f3f0f1b7f08af2c5c1a27c8402901d1f7641b5f37088c784780c5b794ce5b14de260ae459fcfbe6a44e2c8973ad42c2d5a7d3be9862e2e20e8277a650edfea3a62c32ec853752aa43c1e4ea7c26c15d42faea17e89315d501b783ef46ebe3dfbc986742a92762c0bcf56998f7e21b1244b7beb896f125010124bc8b7ff504f886cdb56e44f2c50832c4f528d7e7c8e580dee68b084d3606947b3b4977c04f500fa128f6f0f495d133bbee4a3c14e6dbd35cbe61c5f4a1bf8d4a56fb588ed8e868c5a70b035f5087f07075bb3f9c94fdcd7c2330e959d3e549639f827e7b2d3f729c143a41b9bd3e7a8937f9773d167813ed4e9d2804fbaa943f54883318a7cf32eb34045de60511b6a73156fb139f8998b42d47669c0cfae123c44bae994a3323fb9c8e967811a3cddd8a088067c92eab7965444a56803aaae2012d0874de4fce641f2861ca04decd85cf46d37c4fcc4876c56bad9aac12ee13c119b53afd506f58d52a774a36eb0d9aadbf8637ce982224b8fe6901d0135d83cb6da80021a845e3a951745039254451aec1cfcf2926e1aec6d44a4c17e5169a05cf30c888f7c1950d6eada60af8759eb3a1b2ca720b6b4c459830dabeb7e19911b7ce4d94fd44ef0a94bb2b4a77da894a7a4a7e1f6f4a973ec2a33223202ead44603e5279fd1271fb5aa575735d2a99f116b34048752fb22719aa59d4aefe8f6f98cfed80ac1df7cbbb4e4dfa7042bd1c4cb926f5b097ce9f2dbbe38bf8bcc1d2315897c23f2230fb3a14ea8c1a6375a97af2ef7f6fa922f31c6b51b824e5f74bb202396e2481c148f8de279d9cadd639da12f57269363b75383a5b72673ba79585dde37c35a8af37cfb79d565fa50e24cef824cd535254e381a12ced025a43c269ee2dd0fdec93749aa7e891950a762bf30657537e56920a1cbb695786cb0c4bb4adab125be5db9a3c15be23f82f0ae069292bb6d5e2b033a86bd7e254de0dc301180d74adab1d5257754577555d7bc1247e6b46c185f5da485be9d622fafae0625ce8eae0c367e17d405499c0444d6a8ca4c27b148acf8ddb6699aa6699ab66d742471aa916649e9d2f02308df82b8a521cdd29d4b104098380bc08560ca33f21bfd52c2912c4d62a74094b1b1bc021998408429f906f4eda55689b5795862958674411b503654c2912f4c481616cbc85a275109e7491b4b1bc2ccbc8012ab4193775c17d0312ecea52ec83a8a866b482da01aee82220ca973d2adaed882862e68c80249169691ad18c6edda057dbb05aade16a80ae073214e252e4b4a3f4e2e1b9258262e4138104038c7001104100270972080f08e11c01723102b58541a364dc3050807e28b1188d0c4519c45a521f989b730397114f7afd2d82ca1096f0205f3b0d2ae138f11c3c50504dd4fa7d09edcf0c47da8342437f11f2a8d0d13fec44dbe3042f1262e6b4e9c3472a09189a35cd2906ae3c449ee439539b921bf89c74ac3e45e52abc12ea15fba6ce40c2497af63484e02ea143b69080f9546e4235fa932a34b02baa4568cfa2dc1ef55d712fc611754629586748a3dcec97c00ae2101cd68d00c3624b1ea119c6aa40e555783ed65b021c9f5ed242024e4cb4a0d3984102e128bbd446d02d00cc40e1db3cf88061e9ff2ae9d6fd7523ef4e6745a435d8b3794a4d8606c90c3d9299f5acb4a8474ea76764ab3316f8c604839044c1b20bdae36a68da952cd1c95081586d18ed551176c7fa8a2c232e26fdf9ea33f6b3a431af35a6d8a067012d1691436f0e163143620f2d3767c43a9ed688cf3464f8f2b245e16c201c931733e3d3e2c44e2984f7d9eb054c55d6c73eedba647e71e1f1fc67cb84788d4b8c7877bd84748f4907b32c0d247628e495476f986f172a0c1195d42ae95eec90ae7fb70b9f3b9868c1ca9c1e21e1603bdc817ea439e7b689846022b1f6ba8b373909d6a83d284e0634dbc1cc49581666997c286ec8383f8e0233fbf25d8a30f0a54df177d4ee05291784429c48b15fe7025867df1de4aa784a467f2867cbb3dfdc0bcb115700564305c992f80c2c8d04728d460e4617c84420d429e8b746a6e5d162cbbe4f1b1a343a5d3837f98d5e01d86641c630a9322086960c3cfcf3ce49f4c4ee0ab408377b04326859452cac8524a6666669e1bfacb2fc4a0e9180bf1e5225c176cf4798c9919c3be0006396307661f599679c6b7463af73519db3073286fd8c4c74a13a5f88939d3c0e00214499e357a6b6ec42ae454e186f2ab90934929a52449414a29a5741ad21af61fbe86764522cc122effa3ba7cc860709b267470e7b15eefde9ca025c6739c9298cedbe58b98bee48db8f1bc83095db01b4a295dde1f6113cf518a97f707c76d087b47eff8f6286ca023e5f700185c802249cce6fc853a9e6b6e44a190f4328c4f8002cfe3e0c7ae06a2d0cffb43044dc42ae4c4705715ab9013337a794376d36f1e2b0462157262b6ab83f38f430f23d8c0083c419d8736c6749f6afa80053920010e94107373829698cd714a62b89b13744ce7380588d9dcfb700a10d3e930c2751cd1f97675b8c6e2e3b379185b510e2888c28f3578a10763c082dbbc6088126a500328808400879818c31de12a1555c267e003034f60028f83725cb05fb8d1d120690a0c74b9d5601369b0bd2b0c1b72916f67a11b2924a8d52f1c533ac21d86fcf00f83e1a7411a52de2f482064c4209e9757d6d4275edcc10e3ce44376fe19c23fed3cc40ecfce3f9d6267154f40be441ff6918128a4c9177e82837cafb28e4142ab8eb4aa6f6ab0633d7a897a5524b21ed7792aec8dcdec4ca8549072105a8f9755317a8cb1e3789950c5172539abec28c6d11755ce844a87e7f1237d38e68b461e6fe8d6491e5a67a24155185ff6b28e069b34fac2cd1bc77cd10def3b9bd7dce63bb6236b49de914824128944228d4676f4690d0e3568c4fbd8f5da3e3ed2385dabe40b139e8ad3822d7d3a9aa59d2362c3f8e2b260392cd890af602b141d959487dcc0ae20237188839446e83407b2bd06cc230ccff0905fa8e89b0b2afae63631315091fa119a5f1d40e23d82fa7675d0abe36a1a5f56f108b2cb846469c72e0764a8c5189f08b3047f50fbf40f0d78e2104f2e8289b48f4f6ca142689f964d8fa06280151524dfeea0c6110a572aa436183a80abc78f9123ad92ce6e7f7eda277dba8c8e3a82ba747a1bc82571648e7ce1219ec843af97d8c2c989f3257da6cee46997d4912baafaeeee9e973b3e448327201bc670913f400a64630c4157f404daf4187d02f15f7c891eb27c98125f34e98c32826f84e249b2096ebe42386df08dd363c70e1e2b2fd8507b9c36d243ed52829d392e98382a6d460b47a5d2705aeda13657dced84d07e4f8f376c979666f435ed364a8fd9f33cb6446718d8eeeed6e69cf346c9c2df2c5bcaa18b2b61262bd0a09c406c91bef98c563db3e4cbe6b225659452deed52964abed0a15eb974823a67aa54a8a60e70aaa6d07451d69547e86baa321f79e4f53c346710ce9d9e4e4d9e1910092264fa74409647835247e6a0d8339a011d18f601a1d833b789d181f9f423309fce3ea767971543b23486c918e1c229c1c63b7b8e10135f443bd6454e711e9d1d966592c5d33ad3e2b3ab448b9f4eabf7a241897d2a0d4a97f5d4a074ef08365c91b339ce961886794bc6923c27c96864de8ecd9059015eab3306f8ecd2db8196be02f2d09094278fd3fba402364b6b525293063c6b5d2410b29ca6121369d55bc10a7226cf1025e4f8c02f73357b863c4685885101d30226d4369bdc75b5ab9ea6712e64434ce83129a814422493979438a9a4b31d8c833395105fe81de21cc23228b32686f885088259b8831458a0ee9a3c3827e7db59583e5ee9d01289a99c2c9d0b004c24d01736347b727e348e8b524aa763d96b6808933de144c2f774adceb4d5eaf46dd5b3c5b36d753a27835c40405c9dde6d1e7dcd15d66218d86b87bf7e171fb300e0e333b330af00542468c7b5d38a2dabceab3293ba700e00de7d39b4cfee0f0038362459c65c318c06c0c73c3f7847b2b876269129d42ccd328cec6461ae6886d56a32a12cee22064ec4543d78d11dfa6d6f9b4e16176d3f9bd8cf6f6621825c88623843a43b2c63b618c66cc3f7c402edc1b753ef28cbe7e2cbb2a9692ebe18b3f558e9d2e464b2501edac3726a1fabd5bb747943cdb69afefcd99a938a421319c44af7560cb98280a80f5a1a2667b6b9600100dde93aedabaf7143b0947ac7dece6ad5c3c353bbc7e84b72124725555227a7c19cd1a473fbcec5c73100f8daf5a383825eb2871a1cea978b2fc6445b65a8f6a42ffbd246bfe9b5485efa8a2dd897749ef6d197b359ba088dede76d202300d19767e2f51b6c880d69dfa4df0f16df6ef7c4faa379244bf3344bb60f3634a54995a14538a9329408ad160d629b48b75a2726d98e2379da274f8060a3d7d139a767ce416ce65dc9d3be7ee90dc1b2cc9cd1285586a27829292c4e5908b683d02c92c776efec508e30518602c1b27729a2ae8aa8b397fcf41f2e9c593ec9f2f981f49140b2e5fda0c53ca99c939fbf9ead5e83a5547ae48cc5b1e78ce50b62408c992d20961e19ca9eb05233a255e9727dcbd0ebf9c0b2cbfefa29673db05248060575ad1717765e42429dc29e073b3f764085b4acf5ca02ddf17440777c7839f0707083d54e84999e0dbc1aec7834b0e15cad9a55e8eb455fd24fe01203a4f39be927b031d1b5086361585b823a0ef74e7155f49e0bf1a293d2b39f894ecf7e25af61f62b655a46d23cfbd9dfb66df4f772dcf4ec277afac51611a006a790779d67bf9a619ef4a6673fafd6550daab5daaf7bd19d2d11b6c94c344554643feef99bad6f5e21c2e04284d185d8d29e850836c68db2d168e4d96ffb0cb3d24e3b5b93c8049a451aec20ed49d886059e5b60b09d84dd4922d92ffb92673f6c7e3f585cb860617171715c6258ee6cd98f7ef6fd60f1e9612e5c7e3f6e4e6063581cc725c6859be86c99ec047afbcd3b5bd3b39ffc3b5b95ed5cc94c1f0df6fc7eb0d8181697ddf703c72586c547df6cb57c344bfba9cad0d50ee7e10bdd697035573ee40bc6751bf66143b353f16243b18565731f6243d8d0aa53743a9d26944a135b9fdd7953a76aa278b695c3fef4eecb6173d8cf2412e9f568318cf69466192a22b788ded93a7184c132394f2991b2f0d89a38db93124f41cdcfb31e405f711e7cf01f32b79e65cedfa8c4b3cc7d9840b33589ac58e1fe851c7877f619ed28b7374415d1c2338bba365a6496dd7d86f42f744719b170bea1f5ec8638e617b1c2ddb3507b14eada58c1a3cc597ca13b09f415a067d6476e927d2bb21560687dc525e5c0da8ba308d0b35b03fa8a5be38367fee1989f5d1cf3c1910f4ef21f7828f1cc871eae9f7876c3151e783851b9ae725554b24fc5fac8553c1b5d153f51f1ccfa0d4f544ab2ec53b99f9f7c9e7ddf0d79e4a31b7627dfc8d99ef8e8c447d928cb9e85f3ad415d948d12672f41a13c854589a7a03ca5c453521c351ab5687157f86cc91537d47ee4aee28ce2f6cbc1cfc29b2b4d89a7784c0951a194b508c9e25bd1c2f9731f7da1fd9177b5c1ee374a3bf293b7f86a505e5ae12c78c58a5b83f292d14d71524ae84f7294ef872a7332a4526d987c09c95b541993976438d98e4e85f24b9e7976437f6c8987d94d89b7fa4bf64b9fcdd3977cc186b0a1ec26c369354b3bc9bd2a439148d9c2c3848c4c2233b0213684a4532126c56347a48830f108237eb870cd858b8f22c1549a3672ad0936092480662b53699ac83317dd0ab0a81308c2863eec08f66ab0e3557d55862f7db580be18fbc9d2a3914ec98b1d696c88426187b854378b742af4b119124fc7578ffde2c2eb0d35a72f8ac40557efc667bf631afeee4591702e9ce35c7c93c8d04b6be16871a04565624a2dc4172c0eb1255fb02129bdaf4e30c496190666e938c497c986d734c3b7c7d98aae6ffd60899348b3b47f5586ded9e29b16ab58754a5111a7887acbef87f91a9aadd99a2d49b30c05d90dddd9c1cc40773021300160adc1b27df661288825884922488150c75410312196415f0c23c4ccf0ed2e5c456f88e5682f2900aacc3c0000ea8ceec58b2a43b39f1f7dbdb21755460ef1a2c68881b5a4c1b2d37f354b07a0cacc9ee9637ac15a9245de70facc1eba84d93385602df932573d571d10405499797aee69b0eb5ccd1576047b61432fe8ece9d4741f2aa24ea5734268e0f43501a82e3060481717fa6a100910d59381d53ea41489aacacc4b5f020882dbb4202a4de643a5017a31c2c4ea8946d62379a512936772e2a1789ee779a714af390851e6b7fba1190654e8e24ae840348f4032d7be25dcc66cd66e8cf62d7104ab542a2db274a5a1f1c0f653fb1aea9df61dc1deddc053fb36df795b95412da0bae70fa8f7019144831a1caeb789b18969ef94e024ff4defbe9bceed77e339a9875522be3ec660185769d0184313c467de791e901c6d63aa5419909a390eed1d939ceca4945e156d37477fe634a36a437e0d119586cd53b74038fad6191a24cdb26c933526a64e729b67124ff14573edae344bf3ca8a26f262e4183baed248e0fb29e977232f46186ea369e862a7b4b6f92ef3b42f9b4e69daa5cfe9527a365dfb6ccc2f472f01831dc7e96ecc7709cc7168df71188d0eaedaa844b44bcf2a0d9bfefe0ceb8c251ab22492e836ced3e6a494524aa9b7d5fa718f66e94dd3a4f4e24b7529b76dc5a5ca695649b30853653853908f89105b8a105b8ce0c9c0ce0f39c877adee496fe73ce9c580cd60636ce9f9b653942673ea1e0d79edb669739b35166426ba8efaf4acd248403a752480806e383d9b42504d36d348e027d7a31591213c2c0f863c0f1fa1e0c1cef740f5df47287850e4a18841909e1d2d5c0108d0c71f202c2a7cfc79e2e6bba01ebc7a30d48321ab9f9d4ea5b8074224910fbd2f0d693a28dd36cd375631e1c1c086b3e789069be781784ed850e2084598f8f1e303fdc0f0167fe1eed75941f1e3c78f1f3f7efc151e7f26898ab7f0cfab7bde39e7393a4178ace2c73f398a5b3f7193928bfce3473a7211c2027924678f3ea3af748ac46a9014825d50e7ea84b460c32e880b622dd076652d825523f86dbbdc059570e4cb0624b5ab7ae6b0c09c8ef55a16c8b37cb3b0c4ca6827546295582516bd5d50e7b240a9edfe200110f6204aac12ab53a66c95f990a9e1128ed4346b4f27f7124e09c70675aa4663be71e335679e0fbba02e68e7db3ba1ce486bdac622b142120b73a69349ac18315c5c40d05d5ead411bd460b7e44b09a7bdac25814a385dd050f7ea823a17c7b240d95017d40975ae06b321ca6387cc56cbc3fecdf9fe00e7a3139e10f21f7f80b87e03dadce40429564e9042a785d7020a35e47c1451e8f1ddf55a3e0fdbfdec10dbb24490782fb0a1cdcc14adcde659c6264b810d37a0ce08cbe06fc7f9b00b6a51cbb001b177419202a5c196f8e62d823ad51db1ad223f3305910667a628e2f1b01bd07667a62892f1cf0f749e7d8529653333454bc5cc14ac4e310ba83bd7b7faa50bfa992986fccc14400dc6b7899d9a45880c61a5d49929583f0dc6210dc69fd128ecd950a74289333345f6621951851377f844983832d2a988d3476c8f15d23c563f12fa1eb9be7d2649904ec92c7c7c18df4c92204227b5864aa8a753120b1fbfe59b49d2e332a93554ae55a7e4153efe8b6f26c9aa65aa3554ad9d4ec9d6c7f76f26c90e5049ada102e2d12969858f7fbf99243c7e4ab586ea47a753b20a1f7fc53793448745aa35542c9e4e492a7c7cd437938427c8d61aaaa09c4ec9211f5fe59b4992e333aa35543e499ee8949cc2c76ff1cd2479a24884e11aaa223e3a25a5f0f1bf6f26890f22b5d65011e9d12919858f5fbf99243d8678b5866a88914e49d6cc14467a4418aea1ea9144d52909858fdf7d3349543c11866ba87892ece8947cc2c7e7be99243b846cb5864ac814af4ec9283efee99b99e2b5a3d51aaa9da04ec99f8f8ff2cd4c119493d51aaa1c57a7a4133ebefd66a670e94418aea1d24972d329d9848f7ff2cd24b909426b0d5510a14e49283ebec9373385108f596ba8780c754afa7c7cd33733c5d02ac2700dd56a8a239d924cf8f8a56f668a233e220cd750f94882d329b9848f2ffa6692e0f44418aea1ea892df167a640d229a9848f9f7d33532069307e0dd5131f6b0dd513b125fea440fea50b12ea979e3dbe278fefb9a32592ef23dfd2486c5717bee7208774aa913428831065c81b861144f6748ae4ed5248a77c3af5d32956a7b4273ab54518eafc2f31e66608b247d0c965d365e1a5cbc2459785cf14019898708ac469249dea82fa86656ca39144f253defce61247962e8b44540b91a52918342a344ad1568344684f8342a80ffda12c3a048865048d3545c39cd376369d590a4dac59e3a694b6e64d4aa91b322dcb382ed3328f2d886459966d1cb7695b966599a66959092247d728ed48276ba7e631539e51e076b19a464f0dd2171ea94f7e3a79d644699239a7c934e7a473625986516cce39d9270ebae883a51e596b108b314a52120d62a176ca5662e4cf6cccb22c8b4c9955b02cdbb62dd330c6dcb331cb981d3b43a7cde8cccb186bcfbc9d9bf3ba6ed7d4a0c61fb3a6695566dbb64dd3b8aee3364ed3346ddb36edd6382684e6ee2873b7f48c72d36edb2c34d3b40ccba67ddaedf1c7ee1a7a173f477c82fc8b8f51f8e0fc9452466d487664344c8ecc24669e52ca399939c6a6b465478e57901846c2a89403dbac9b49196890f36992d2b76ddbdabbe79c526aad4d4d4e2a870da31b866954532191e24f9714c336d6b46dc3308c6618c7655a8651279c0635c695523b6012c326c5300ca35fd3d9340998c4bca58d9c24975262f4528a6152caee99c96fd2d9b227d06753c64eb5679e656fec5b823febf64181908f9dcabc39e7a4d8c5b02c9b734a496da6cd348d62544e6b038d4ead6a9aa631098906310fa7945c95c94c27954eb1e6ddc694d22a93dd4cd328a57366d8a48ea9ba8871ee3987b231fdd6709e79c8dd2d8a25b07ee563144ad0792c72e1e438d27c8cf3f8d94bee6632cba69dcf6d8d45ecd6d82574f16324b6d9ca3827c72bb261e6162c018991223ddf431c6063144c787d47d183e4354b00a1972e893ce6f4e7e3536f3d8b8f501803cf7788612866073f738c331cf3435662f439e67b8e63bee61dfd36cf9cf38d7a165bb01b320d7609b3448ef9913a8a067ca7281af0690d8712455114fb32ac318f32a81c18b0f9f8931da539f8185f9476e3f685b353147366ea28be8c7df30d363a0af3e8fca1300f31075f737ab14b03be7639c6d1b3ec58cb81d44c1fdd3f9a4ccd82519f9fe904061b9a3e3481d235a7d3c1ef1cbbdd1de2274783db308cf3507eed1d6f5263f989027fde211a9492ab452ce7a14986e55bbb21f8a1e94de0d315b9f14c421757c26ebdcc5e6067ad37ce97909743d09c03cfdbd75ce455e475e455e4da26f2bab926724d85d7c1c186fc284ff3503445d5331f55075175d3448e9aec2291a3a6673e0a51534595114d5495a937860a0efe9accbbdb4205a54285b5a7aa7db66bb657f3cdfaa9cad8cd316ddb6cc96de992aa125ce221c9ad77db47dd9250d6332f5907dfe4a48bb297067cd32d216d1b931cb579e6a5eb913c446d295506b55d1a3086a7d54a337aecbb152f762a8b95ebd7cfa3d14834aaa22ad23c91c6719c7b532412cd4c91ab563755991af6cfcbf6d0a382e8a753a28b1a0d29a9445417892e6ad43f9d42893cf3e8cdead490d245892e0df822175d91e8c610d22959e3ddc322d744ae79dd5cab5bd5912fde8a9fdec34fefbce36164ddabd647b508915791d7ea9b481bd591c87add8a573fad41914f9f9de8ebaf5fc89546f4dae8b5500415d53f72f9fcf2475f0c91b3775e9541d180dfa0e813b948f3ea9de8a35e3fed7b83cd5023cfb291835f5d438d5e24848ed73a9df7b29975924b3775aac6fae6d2bdda95684e725bfaf8bdad84662be5e0b7b7fa46fac2cd47ce559a6a63abfe7ae2a31a3efeccc1e73b175eec14ca8b2decf1c3facc36e4874d3cbf0f1db7f9e00315b5b6b5c8de5004bf5d6d4a8c4eadc1ea9d148daa8bead5bc2fd4bad679e9fa1b36ef75eb230f3625be62e8e24a88053df52ecb7c240be69856b24ec26ee6d6bb49234c8a361a7977f2d270e4a7a378878a450c11f2f30c4ffc746ce475e4b5a2a0f849736637d161f5f10a1f7f5e439e07ef401eee0d55b8b768a1b2929282e22a5506e5e4282827140a8a83afe2271415540a4a65c50a143f6a854a4a4a4a8a4b4f4959e97cf0bc1f3b7acf5b6a6c940a15fc27a39163b5d2308679fde2a3541b239451ad1c7774caa41fe5c6d3631e23064af55addf3939baacce9a2eaa501bf7abdb1c1adaaf09377f5dbfcf4a97883f55027f73c36e89d1c7c94abb8b1c17a51373688633e4a0c948bca311fc595183d8ad7ea28282e516e0e7e13072b0d132ff1ce8587f998fc74b2d6e73351e6a58c09369c443ecb1c0c4426d0cc9c74e2395845f5ceb39a3a59a34ac39a8f7c546d541f79ac18e6a31d99752e1e4718cf0936ec9c9d2cf391772feb85274ff19a93a344189467de3488302a9e79a7523dc54f1feae3b7b50814af285e4f5f45f1ea331a75aa5f0efe93f78e4e99dc50859b78c641744278d583a8343a181e4798e8da862259af09b3e6e438f8515cc5f59a60c3cef9cc5ba753a79b72c393779ea1dc9a93a378e6b6d2682794178f230c8d1a13c7c1b109d28322cbbc7d74aa7b742a3479e799f7aa53352667cf7c5469341b26db1c474945986bd8d5aa7718e65e841939d6c3632b1ef3184d1ef31a33c76e58ef0dcfc776ddd5a2a669d3049fcde999f74da7764c134496cc57f0d90b3e73d20deda4c1676e6f78ca7cf4cd9bd8925dd1ed51bf5e3548ddeb6ef708ea1e0f364863341b13f49433e7fced6799c61a96c2d7083c245558eb25eb85cf0ac6f31d5f30f962a30bd12f3126f2d0efc81776354bbbd69a559d76be9d276b041f6adf397c7b87c7041ba30022d23b3e7ea84d9da923558fb57ad040e4e34bef46dd0bd4041b8c3146182578e851ed5166ce8bea4b03fef4e998bfe85496d564ce9da2015d663561072e3b2bc135ec1dbdef0b1b8d250bbaf8ab31048d61478c2419b4e7c040684373419d2e2631bd06bd3fe641cffda2d29a6f9ea4f559e6d345f0b57ad75f0eed959053a89e3a12cf39fd96f870f0f7f410f32ccc320c4b40a7b0ef315086fe5ae6e1095bf1d7348f5214b9ef06f8dd0ae7d98f1b7a7ee5e38f1b787c113d327715a41c58cedbc32cfbb80896f3ac08ce6bb21b82ef83551a45aa8cb7041bcef79460430dfc4e7137a51469bed2a9cc29aaddf357a12b7273296cf550e5e5f58458140d1afcda45b56bcedf3f9f1f9b9fe8d33ccca55b5384d9aa2b317aee9bb36edc22f20cf4ecf32709cf87e04b95972e7f92ecbc14e2a5a58e83b9179daae17cbe7421228ce6d20710613697de6ddc568b988e4dc7b4898d3c2dcac6385291f4b8c260c811149d2c9def628cb76653a7674bb2ccdb6d44df9047b5886e0685fae4119f7a631e8f04bb1313928b3cca92c49a7ad659387dfc69622e3defec741be5f486fd9e4f9d6feaf4863866d645139add1acf353f312142bbd389be28cd33e619719b9b4aba3bc364937260319dcf1ce5ab7506e57d6b5019ab3af68b5d715de586569bd925e5c0863868a55e83a1a8f374566114a522e5ca3bda589ee665363a9a983993473b367d7cd8496fe2db631e2c837a367b7c8803a39977379c3adf398ec61c87776b1cc3b0ac3d4d5efa4d1e0ca3f3d3577d8644099d76ac922cd34f6ea859bbddf044bae1c94537f4d20d412738ce8a38b7b786fac8db9d60199d76431c336cfad5db431cd467c471172572eb9db34abeb0f0c9e21a11f2cee7a187d6fd72906b5a8bcbe246c9d239b0247b390f71d01f79e7d5b9ad16e13de71c34471df4dd7423e4e46c6def660e15893ef031be4cb7f165866499314622aa73f4a977948aba93905bcedbbd0e728265e44ccd9b3abf7dfead7ce0f7e2c5c535f0994fd163ab792dbdf8d43be83bcce32a3b6ae39dc430cc67e26397b463e9f785fedd55cfdce61b07fd7aa7130ca3f319d2fb32cfe5e4ae26299d1348fb8c74adab0ce5a11e707064c600062a38127bc6227ae43ccc4728b8887c37bd49b39849cf289d94ce97f59e8e79e8c9223097ad65f2458459427a888a98cb78694010ebde6051d2a54bf0e7e37821a37719c7ee8c8a5a8a51647d7c57a7f8d9bb390dec62182dc33eedccfaf671b10c8e30628b84c2b794524a9fc8d22ed909f165f214be5b9260316f5a65e46354b2abc1f6a65376894e563e95d5a38cdec1ef6e00facca7bb34b75213ddf0f4f5e39f1d9ccb96de655e1b407f4a5d9145bac6ac86c87078e9dd659fd822dd4b82c5bca3b145a1cdfbb00f7603fcc93f2fbb38ca2d059ae6ac79c6a2614df3ec63d7fcd3fa31cc1973ce32d7e65326f2d343cbec18d36a8339eeb296619853cce98e1d0d909e09492273ad0714a4e8f1d431528944f21595924a837d3ebba1376f987d374042ea5d632b0d63d8a8daa89b53ee8fde69c565881a474ce0061337393d76fa4dba7a6440e26d5a0de674f3d85d69588a275e7a9669d586e6994ba73eab0deccecbb1a9a8a6a18b2b212301093ccff9f44e6673f35eaa4797973fe3af810dcaebcdaa7d0eef7a881a474ce0061337393d7682f80c01eabf01c2c94a8379dff03ef70d4d9cacb6bf238c707abb087e361381cd3b571fed2bc18f655aa5f14931969508ed862f22126cb8f292d2b47396455a6dd8aebfa8346d34c6512e9d9a110400000314002028140c870483d1784024eba2ea1e14000d92b45272569b88390e53c618838c210022000000000034494000cb39646c351c34ba7268206b62d2221e995e6c6348d69060d32389f457349f44a3cc59e91a5736131e9eddd65050a5061943401f151f8f2d8b2cbebe39582792352e43fc3526a048d32698c5779a49be6b824959cefbc64b1f59d5198f154e4cf4ad3ab4ffb91e35f4fb6ae55148c9ecffef8b084ba22bedc64bb809378602d5c83b4ed3ada1a3b016d405814815a52eeb3eb7ae4c9842cbfbd0d5b9810a14c5809e780029460afc9f33cba8e68104f48fdd356c6fdba6f51f56148bc9ac3c364c569fa1b7c4cd6d4a0867c61961200927049429d529958820edbed2515a5415ffb4db1326e252e336ceddcb2387d77ff3e506374ef632cc87e732316034b04d723d76d17387c509ab705c4120ce2c145dd12743c262e434be909a85dbe7f653b6927b1666484fe4e6fb6d0311530b55f14b7491a05c097d5138d97065b93408a1965d44fe2ed404d8d32e6a4fcc2a2f883026d06cbec971794995522ceed4a67393a6a32528e0706f4c0d495144af5e30532df51efe8566a5f3d4ac9c6f6ca3ab8dd633e2b689865a9d785f9e373ec25d12325e6b8638151f1a866f230e746d3f9419c5e1f87fde2ecbcc83b08bdedc3b901c0703c27520d440c2140762891eca35d9869aa047d98f2640fae3291073af186413c3cc65a17e81846d68adbd4f369727b047b530f6f277f660b9ac6b3a03e6d91c1acb89e1def095344c139ca1187bfd4d7bfa9b6dd542de824d4a6262263469d31ea19d049cc95ef10d73254683a3699eeab77bfcea0b10c876ced0be00002e95a07ebf755c7a7e8a08c7c9c6b23a65917a87dfe8442462f101ffd058f0df71d1ff6217eb8503f84da66fc534cfb08bac147a12c3a1632fec8f05e58a284e91c75967e41ea50048c1323cc3238f9f3f59239ca71cc676f1d6992913d8c25c783437a106a318a0270e484249095cbc84ac4f54a5a8e464e82c1d93dbb3b3eccc33f6e0bb3b4d9c820181698160fb4ad7c5a71f44a3a053166c7c982ec7180bfedd41c55c1c6f67d335959e60c2fc67668b8895c93f3388856f3497603659907633e27c7e5027ebb2d1adfcd6ee0a868dfeb63c46c6a05f5abbeb07cf9c700b1bc90b6de764d558be65a9568be53837fd1f9ac776f010d81d1f1edb8dffd34dc2d55f155af23234c1159f9a5eea9e7f6e9610d45c905bf0cad1022b8db8d9949b6019e60b9fe536263434b7d8e8cfca9d2c25b96e78807602ba3b5cf463180ef7fa08a0fb0d8a744017936bf157f9d7c20efbf3cfdb559bb124154ba128a30888e910e65562e76e648612a44965ee2a74ef98494d40b5beb676fb844bdd630496d24fad9317befba568088e4bd71140afa8d33fc613fd84fd5aa04f3fb15a572a1eb25e8315b504a240ccb7b83002607cc127907997b88c72af805c20402fce09c635560326b1558f56db7f64eeb4e8ff93e594beaa5a31b64a682b7c9ec2bf9b3842ca1d3526ae2afcd25df0f6ea5a404636a7f5339c4095c200c0663608296e111834cac5512e112283d499f151e209949ee1ab2c74ee6aab673ae34d5d49fd7436873d021f3f3098d6f9e2900095ee8832589a32d9c813f0b0c0ff5aaee7703d373f3dd55fd00d536daa311addf0af6fb0d65960802030c1a04774cb42fd82022f662b64522acfb30ac2cef44a3a8caa7440addf446db11c26d637116d10c0ab6a0e45466aca6a8e0338e7e4c0d6a190ca2f54326ab742092e336d671923bd92472731a42f74ebc6e89caff2712dc3f2b2251821375802a54c684a79fa610f899e020cc7d6d41591102b3bd3d12fe39b407501ade5e9dc194d091f2a71f18a409ac832c193dbc54021e6edcb056e8f55d158aed35e1ec5faae143d10bf10386af0fb3a7c3542acb2f6f441904071b1c0c198a2922161a0594a2f5ce720b88be66abb1b1bf80784412bc6e3b48e5f85ce8d36a807041613768fe3538d051299e4bd88ef7ea06e86516f640031a6d067fdc7d8c12c4cb086ecb8cc7351401e05917155b97def93a3057647d8c6f0c34d08cb528572b10e11f8a14989b22709bb57b37fc8659e6f7a71dd378b0c8a3d56e168d9ae3f1b66d5419e1136f979d817cdc8412bb257d0acecb8a3f551daed87c8f68d47d2e0ff338e2e1d5bf59deee0328c03e3785cfccd3dcf260ac039cab485b6c62042629f99b755f77297497c4d5748c048d5a5639205a6fd38b23850e05ab63149f2c0271d93677536011b130f0b83781402080cf7bee3e6b0c3341ec3c011458fc17658e153b59e04f54169889dbee9c80b870af1d7d1914a236c2c57b061123aacfe1cb2262576b12856a4b31ac5819778ec4f91810f59d49c713c7322a0ed0e219b55b5538ab2d43e7fbbcb0cf87862ecd517b408545800916c02ead96281465d5e8ca65d4ec2b49b5557086b6eceee6288ed1063b9ba369ba86a0bbc77a869fc80f1e35d78bf7cff04076a248c54f0c1366f3e3ae38489ce255b37aa17da94c1b1d90353168b2f3e20dee2ee0c4657833bf0999ad9d6971366ac710971ec7267423811106383b9eeb1d7a8a06fb97e3dca564ee95312cf20148e0f953e3a08b4c14b6565ba7f9c7adbfc3130e1540ec91dca413f3ff9069ccd093acd4333486d3149e72374aaa5100b1e4427642281abcdfe198a7a39d126c82e3358611fc2946d9edddbb6106af500fd312881409d5ebe3fcf9acdbbad72a7508957798ea9438414f8616dc30bc4a38e3519a2e763ccef5d8a8f5365835c1ffaa4b52a2c99a9b1f30566b0ed778fd33fd19059c29c47bdc581cd79fa275515454d49cb73681cbe0a4fd95742d8a634d50bd4964b97c1ca8e74e860535dd4136ff6ee62590efcd698dad13469032cb3261895c0b4372186664635598c5daf4df5023a55588959f06322ade93d180676c9f27febff13561fb14c89c0776db9b4a6ef5e4d69c389c44ac54d9a3d48d5b009af1adbaab04fb8086fa1c063ef5529fe04d56bde2e5438d6fc268a19fd01b5b20184397391e9ab1856486b645edb7d51f69ca873af902423bd38d2e086b180ea12d9f5ffa0669ad1ae51136d308c51312d942c78bfd23116b7edccb6a766ce9456edf451e3590f24203d734724418ebe03b6c97d3e26ecfcfef44dc924974f8e26f5f0ff0ca6cd33e7c4db2dc9e4db2bf4f46efe19bf7a6de632798be34ecd9e9bf449e2201297d7beb3729ddf90e0a38bc71a3c96387826e75a7cebe94dda59dba042e793bef780ed8c5dc4f2f1528328acbf7f1684e33b1e7d94f6b4a0ed0a544729a908c88168453f661ec7c832ceb3ffa41b956107e0719c702277e2581817bdba1a557274b0c12e06864a2deda5393c77d2805a896d0354716eeb450ca5b7935646e6eafc36db2a2691cb6155e87ec33323e1a21079b3a805a13eac8173c327a38bcfc7f0311a54e07248a909461bd2971424b13125f6cd6849092969c41cd67b108cbab967b90c0346495348d19ab6fd185c660d884e77b92dc866a5be9d85c4f31fba9b7451c5e64c8b8741af4ad2cac68da1781a8b820c0200a7955e69648e7b5b3d2860aaf37e11e83cf517e73f4b5705afdfb9902daaaa3a88354e119389682c7aacc04d27ed41d61f49476878f874ee2198fca8d4b72e4f033c03133c5aebc0c5e0a90993e2915dff1b107274b3970fdd7c17f813e2077a09a9ce7c315fdf2e74330e45141356c6a91d2ee99c1495fae24c7515f7ca7140bef1866bfa8e2bb1860cd342c6f1323bc088d5357f9619b0dfcc8ed1ddac52a6530b1c84ececf9efbeee527584c34e5abbedca6057e082a07b936ca72753eeb2c0a72a0cb43c4a0b65ab2cbf68d219deef7c236cc03035d3aa46b67ae63ff2adb531d1dac9d485a39757a55f84594b59900e9b92776506eb9e5047f85209b63bc19f2eb4f5f79c7110e5de7e20f5f7ce8329c6979868c1326602991a54f7a787544331c86a3fa66a2398ee0f61b50f03a5ad176178d1cb2460b8d89188dc46f9310db7c60372eb60f2fbc7b156c797547c561ab4d40d65fb115a5a59dc912472cfc22bc84dad78e6c204524a494a31ab0437aeb1a4e7ec7f175602263e57bcc75f5bbe96c898adcc88c8ac31253314544b2c31e3234a3f9c2d6d387162a9f6f58d226e3a6a5e338b3bd62c236aef11b7f1419b828744fdf260193b130bc17923e13d75ba45eddd84da653e24038954d22e9b30d3ae40b5844a53fc683f012a4b055f176383004d5e6ee81f8b1435db517d72734d5a83fd108c7411a17b3214547896822bd2e375dc449942a64de5c8ed7ebb6be8a02eb8da5cbf34b6a6d259c0a05c44669247b27943e6b94b20a3768a184315ef46bad2038a182efc90cc9ea5f36d0b0469de4cd04984ab98428eca53468295bf1894dc3579c1a51ee0f5f668e9f3850c8b81eb98494563db9c96150adab44e79e8de808a6395d9b7a4edb081aca4abd0fc01080f9d3ee41eeb81f8485f3a6305b5268199f9244b1fe2da8a0d98a6f72a85dfe4856e39698be9a2183704675562fc7fa7e07d8bb0cf3e284879672195f25c6d26c0c6a2760a2b11ec73fe9533ceda4446d57b219df817f3c718f74e160936dcd15a8280f8d78ce5c6e58a36a2a44880b2a4893468fdfdad585f457531a9499c1084a4d5dd9a1cb91bce4f8d75c56a87eba32e39620467fc002c696e3e9709448b132784b2367ec41fdd4092fb464527a08cf1c51b5f34d211ab23f25cdf02ddfb2004d799bacd550f577c210a5f08e84cff9dbf3af3278787981a515758387d0dd474fbcf19a0456b2c17e5fd2157a5cb95f94af1b10701e51e40c42cad91083d1a7d50978aa18952c82597a4981185e4f8316d0f0c4535f18f6b5dded58d2cf5ca3379fb6b415352c39f9ed7f974e07569c575de5a4a57e05307d5decae8dc731a0156c1e6ae4222bf020275c90898660b5f0b4aad7761a0bd9ed8d3e8d4869b15877b99468c5abf110ef131361e175820711f816c1ae755c35730433f3877586cc61051e10c33951b0f66313202286ab8c8e16971260c7d311fdbff01c664f828267c8063938c21349aa062e9e7f54d0595789fbbaeac85b2e1c9c81b6371496c02ba8aab586377f1c22e938d9f221eac21615d8d88801d1ea0c625e30172411cb4246fe08329ad7549f6837cd32a2ffced5954d34642d25ea7cfb2b2ecf13589c553d9b8698db8ab48776f6600da9aff951fbdf26809fe52c463f630b19179dcee64229dc9622f841289221a564b2c8a6fdc7ce0f901084e5fdd3805fabdb41fe510a243f1f0e5e2f773d5aab744201c4706974202129f67dd58fdb828a4ebd1b9ec757a96bfba1d858fb0dfed76e588482de644389f8ccb7299196525f088de8cc048a3623f5c343d42e26caee4e60b526c791b5209d650683a9c95d89c9e83244293d69827989989e4a5a76c1e304061916663a7a6dec9b57d7dbd3819e5dd1432c01bdc65c1a1b13995f14e6d3a9bc4659c53326ddcc6e4c368cbe68ce843b9fe88d5a381609e4ab1d2afa3205ce7721d16790dbf4f56c3e3efdfb8b6155e45df9017626f4d9d2c3305708beca836545781181751a6108ea1505c5fcb02ab44bad8d54804309c77db22d4dc78931f9b837d51238de240802fab338123f5c68a0b2e55b4030363c02c92b9a683e8976027d5da7ddfec29e37b3266fe1bc0cfc79e863e1570279c24fbbda821a47d1dd60aa0180290fbb57a7da6ee49182995fcc2e8e53423c39b1102b7750df25d40c00846b5432aafd81e510dcd4c3791fcb8b2cc241ef43e945aa9c01dcbcaead8ead7297b54279c16597d2cb2ad015bb80ef7845a341ed15cc596fa91312ca652114bd744956a8df47e29afee5d8981672282fccb9b3cc03a3fdf52eeb833037c874a37209c1177c2000ebc24b429397bfb0151792ea26726a27da58e10ad47a35c200ecd48e08fb576310118de18cd10d7430006fa5f0260a3e4a536485a210529f87c02e6e60ce1d76d583713cac989c52370bae770218b44082246f5250a492ac2ad46fce4f7bcb7db27f722dc336a6929694dc23ac4d68dd2d96a3cddd8aa139a1cc763f1a54b79119c584fe1779da52b5b81a7b78ad96ae5448144c5cd67bc4dbf28d38faa057cc3fd299aebb798782a0d40dde0105237011e8432df191c364156b861b6be90286826bf610225aacc51adecf871478d21ff474d279fc51748818260d61a18353eec4632c593c30b232cc0f9e479e0c631ad6b56ae0618ee063ee8d98e6d99e9b767bbe485be451050800ccf74b083dd36b431eefaf278aa6ccdaf461cb31d338e1d13d126a06e46939f3685bef49292daa16f4a93ea4f51393acd14437a1b127c83da830b58d3013b9c974a7ec519c93796b6249b50bbdc06f8d2a3052d2774bd68ef0fde08c503d33acf2c4faa9ed6f598647bfe7a867f503ab90e3dc100c40a270bf9d2fe06c4d906e7eede3f8f0c4c31c19df4de24610fa56d863636141996c7ce358f70105ec708250c96c7585a22fee89a27a9255f70da35868efc7b70e80a508fd816746a3a21b138df2dac8782eb77cec1eefce7436287dce7b5513b3c0b3feaa54b09da9333d8eaa14b331027f4ef996561017541a598733370e5df1a7574a5dd6c6542d0e8202cd8f8bb1244d83706f01d45e7785c5c139c1e2ef81a65c624d75ad052b207f241870201b3b211b9bc5830ff21b071bc0eb1aa30b3cbbc15cd4a36bcc1b281572d3aead9127bebef17a9604fe731430bfb01c680c09e380b399092c022cff7b6b3644240f36a83eaa2787c8d658aeafd791db68cb6b7244f53330506876291b2b9feb5fda4168975b4fa466ffa626b87bb38d302c2c2cba4c13f789f713726e9338ed699abbde048374df6f6ed1f2f0f2982b5256076a810bfd02ac1a510be2fe3b5f72c7880b2b3dd8f746237c1cfde9c6ee8bd877b48544b1b70eec14621967d249a0fa234ef021ec314932311888ab6bbb1d48ce36714fb51692b9f7f6ebd0ce3008023eeac60f1e7ead6274449aac9d08e7e7b61d71961902a7a73ca05d9fc18e935b57e8374b219f16f09eb9a7883c00be2d0dee4a1fc0131e2a3ce12a82169733e702963689c9da6eaaf0ee478aa830c871c6324cebaa691c9ae2ab582064282d4da5966d650a30602481ce4ac06f21782392a6c8df1619e71da5461c38615c535f4dacb8ca3caedd41ab90e28f7d7888652668d7ba0265ca929fed74b31b686a60d41bec89e51d158d66b42f1a64546b15b77f9848bdde8b7f7ca60008275c72774e85a8b30cf94f0b2e245035ce4a5a3f7ae8df6a84075427b81e7540e5e2b28a7e262bdc32082e0ff9ff4850a33ad981c040b6fdb7bcda6893fd77bdb8502aac4396ea0e8ef410da45edbeca84c90f3d20530d37464c34c1dd5ce8372cf34b1f711f0884346032a29896318362267fe10e254160d3a4923ac73814caa476ca5b026afa903dc866943d64a7c3986aca621ab1f818e52813893d5ac69011b691704f7c4808bb95141006371f518a8981f0d922c402f78b3c46554c8435acd477e5fe4ab72b82d856b2f401df3813864db67bd225aceb3b2c4dfd5e6db472a41270e2c15773deed4676466f8afb3da68ae91f8f42732550d161f818b88fb69685004ce67ec4eb87d6f92af89301702a14c8997c7a47e695018ce1a7e83a524096ffbc4e5d6b5db53ff2689ed65d1cc67dd31357156d9af9b87bdd580cb191d9d8a9a56191c8ceb8047ec0f76766621546297e88eed8b86fdba73ba432c3e4d7762b6e0c10f09323c3abe91be6e42ab52c749c8fd84a494246a0ee95b13adc649e39bf2760d0efe9dc337c0f078a1a65b0b86d94708897c31e61170b45ab819ff130a3ceda08492392a37d1b039965b7ba78589bb849666d46ebec9c919a7b496746bc904abaf9ed2daf7f8ac6a40d7382162a0480d2b76908188555761bc3e77e994e72ae33e08a70fc3549c8657dc464af2b4e5ba2d6c26e00399070dcd62c7614e97d700ac255df03dac6f214c4503deccc8bd6f4f3bc90b65a04a9a3adc1a8a954a277eef97dbad9058308f3f8e4729346318a14bea022a6421dfe40de9e6d5c6db77770c9b42470fb9dc8d85f3188cb97024b6336a5c6ab1f02d48232be069ed7ee04b5802cbb65a6c5f2fd3cad6eec204a440c46f1c5bd4eab18ed6b0c190730d0347bf07d32804c647dbc8ce9597abe9a266a39e2d2e51d0b5dd4e4d2e75909ce8b916673b31e28a75c4d14a959ad76aa16f626192f04361ab72592016359dc4e40a422d6800ee63e8175715a356e87a27ee71b593b986f5e2845ed66bd96ce5a3dd318179de81201faec785b15a148be2fd1c9d3866d951034197e8555bc25db3be4e2885f307a67fc5d479d39153d0ef2fba518cc74f7a62fd142d1aca93d41c41a2da723ae022395375b228c68200bb7f07c09aa7e8f824c0fb0b3774149469290a6da0c2c2c4aff9b945382b4be62187ecbeef8a2b146d3f004d8ff908499505c3c3c66a01bd23a01470a4bcc33a20b841e55ab9c82121b1b6e6d5b9a92713f28f1108b2f15f6327efd9de9457f97a2275e153b104774185521ec1c260728e08ca07630804270c58e1bad19a10c288e949e7526deda91777bed547c74e69d58b0bcc22c42cc8a0a5e1a1ab62b4d77e1b857c7fc1265de27190757a0fd82805d8f2c5f9d29836c0be67d2468902a3e079aab6a95620c01124adead914b9b16272fe50801898cbc0be3821ba9da25a15095109fcf9f8f28af9f15729c76e7db34c5d428b7f93e863595b780ba84a7e5cd39a4b46c117d50c368a6ba409755a0fddf0db260dbe1bdaf1ac835dfe4b1835fc3fafaebb26e4d147a2065dab6dc8e1102d062d910068991ada155b725d7ff5d0aad0eb5e9f7307c5d2d9b25e87e2492d4e4e003ef4af232e2a34c8b4e702d465b9c5d92217162818cbcc43b5a08cb365e56d2d219ee816b4be5ff3fde3ebe2c1541aaa8fd42a54dc49592a3e0b29e48698f15b93e630919823159a9538897e946e700e2cf31a788ee36cff14d4bd17196bd01f6486a36cadb3e7179ef944bedc1a004638299b4fb8bfbb3d4ca33004d33a87cfde094f99484c934334d1f42f7fcd87099e0bb9fc43fd5e248673f02f5365de86c39379f24c4279f653e39e466ecd9b0e747ae79b88a534057af79b95349e13bb986cb80ae3ca2fa15be547cfbc53fb7e7634b4bb3ef049a5f7c8b68b3066ad744d88d045da16b963e4030455611facd12f1fcc298c7a27d168b89c548b6d80bc00af55e3b07ed23a6465f8bf6bc1f31922b28d0c7364ab31dc2ee49e16d77a5650330afdf69996bbeec707a96b2695a4049aa94fda1410c99391b97ed03f00d35de186873769370741e98b38882b27e3ca699ac4d7af53e691b51d4d2498db177180a0c414d783ad9a228b83cdcfcd9faa8f6778650b52f26c5de9faa208ed1eee3548dd2f36c74b578dbe09f4508b9af3d60052ba3a867f27c94c371a49ce3000da865769f3c2d197754301cd64ffaa92e5c0407fcb26852c885cc5ee682374d86bbbb4916a8f2b2b2e6b7df09a21e816d172ec18fcea42732b4ae3e9370c40940bca1c78d8bb8f7c71af42f305988eb9ac66df96e9188467602d9f5d11daae49159103ba53208ef345c5e7940efac9fe9c3c5c4b8c5daec9df26b5d7e6a1cd9b8749274e11e301d1baa161c1f71b31da8ce4a09311b811f55838db63972c0b2653c483e9507d61ee76ba79e3cdc3b1946cbb50ada60325f1af76ecec0f2bb82b730be4ae52aef568a98fa1748a5900da8502322b6671bd5eeee7278fffdd3b318815cc7020f26d237ede53a02e673d95360a12699543134f7cc9c05e32478c81745798edfe8f205db4bc8243d3b38838c943266d14b5bc50f25421b1c8beca9bb76753e3a82e538d4099545f20cd88593c086415929adf8bde77356b123d0e4d761e544e7bcc0cdd7808bb59d7b2967d83367c086ed165bc661db72306106ce881b5b00683fc3599e6ee3d5ea1748523783395d7ad94ed3ea95aa2c6fca4b21d68685118438a282838cc649ab28f5d32a98964afc369c0e68e396bb5da642dcf59d8245f4a6d3668f388a316ecfaf403a1ca5f1c2e2cd3ff3d306a0b11cffc6d20bcb43cc52b35dba63dccc86e7677a67c97ab6d4980817e9aaa3386f80c5034ec9ee3aad9d87ef106f92c8ed277acc48b19e2e846c6daf7c740c918bd26a336038c454b4df2e0430f9788d5d5094f9bad85dac413e0ed8482a7ae72c70972aa27281508290b9e1448157c69712134262837ed788297e3135a989c09d1f92220777c125131e42214a8c208fb23dfeef5aeeb5f520a2ba2962dc85ee05424bbfe8996bac3a876e2f2c084b7c9566a2f0127c26ffb54ccd7009ee2d3690cf67d03682a232a8973fdbf258a79fb01d21af956c283134f985077c6da41fcd3ca29511942569a65f00f785af44bb81f51473f035f5abb0aa6e571e1ef62bbab7de5e4a91ceeeb084179c1d7f544851df20f3c09f9358fd5c47bd5f6e23a8b9600ab40b029caf8f51b143de2a22e8da1d6345df026c292cc49d12b0e18a95179c74a1795abdabc022c3332311d7d5c55791a36691aa8b32d119cebe176553838aaa526f10fb22368543d64a837ac20d991a566ec12f33edf8d3b3f93c712b69b4514aa998d720af491c8117070664ff777fef880f71fe7d12f4e8497ada8e9d3cec8fdb856711436f13abd3d7aa924b56b6f1f58f01a1738d7491dcec0a36c04dd4f5e2a9c00782dc5fae4bec6cee7b64ad9a2e291baaa8d2d2801001845cfe15b23a86eab8381f33466c15639dfb699de2bcb512d6bd4cb1a195913eecf8790a9d4b3cc5242978f3ff7e1210d3d57f561defd2ec1dd4af40b62f5ea2ab151c7e20799dd057886e87768c4c9a85bb9179599f36a8cdb6316217d569a81a8ee3d6d6dc7ffe6ff278e708e2276c143cbba79813876962f1006783cdd2e220b2d70a08b8d770b7387b9d4fefa65f2b047bfae122d61191cbee1d8d5618f79d6bf14a4a8267785f4feaaf4cb968555d2f1f359661293c46f21540255daaaf43c5666e59ceb1b352e8abeb73b00aa4c1a2faf12d1d4e1816f4522645ccf894409084180483cf81413f16ffd09a83a2883287f099776adc927d576b29953d4de02c168f2562d094e1246787b2476932533bcc884113aeb731838baa385d5b86115d52beb8cbb7f0fd41af31375ba91f281b153848d279c795c224f6fe5ac081be738f217c3c6597d2fd3db292d461d17778ab7b287e40f4d9c5a7f31b5067cbc05c245ebe7268c1f71f4d5785dc0cf0abc0f0fbf06d6dcfe6ac510ee366edeafc473a712575859383a2977d5a8725cd601c0e6198bc2df29fa48d059a8d96f25e9c9e0b3bbeaef06f020a08c8eeabee2514880a8f653d272fc4a917f8b6543403928b8c58564792b3352ed121e74358311ff8b465baaafed7e00378924118bc03dd13706f69d370b9d5adaaf1670a1396c8d90eece2ec6d0fedf2882a969f764ebe97410d6509476d7d8ff892eee2516204a92f8cecc44aa2a052599118ff968c21e4db5a5cc53c870b44eab04b1fcf39ada88b8aa0b6af6186792c7cd0487ff54342ec052688304bf1cd404b8cf42db07ee9502ef85a2dee3db31880fa884aee9acf73b6634ab19e0748f81ebdb988089eed4a79f2f35b0d0b87ee57b4e5822a1cce90c45bf7fed005e1f7027b381f26a31e36346b624b26d3acfbd6b77850bd7eb08ecf1f6e00a4d3b0c3ce1641f051ba8aec619f5930dd639fd970da762afdf0c509b4d8fb2e84dda28524f6984a934171f24f9f7772826da7d7735234d14f60b926c20d80c139bdf5caa729f6dce727c555621f2b0ab5d472cc9a099e01b77bbe079e435bee7c707fb2e0733643ee34f5117fa37e942475013ab65c83600bc288df222d141a1bfeb9fd119d71596f7f46b437caa9295000e0dc8465a4152b63c46a3f56df63fb8e232aba660aa76c880381cc5a7fd8b6c530e38ead029eb8db7b070b307075d4225c09a5e675e1a2354f9aea1da24ff42a076e4411737f35684bf49966d4ab8626f58f99692db0d94f3177750a0502a2ab63acdb685577428717f6e02bf04b7676f0d564b9c074e83bd7e7889058b36033db02cb02721109c8033802b6f65ac43ea81b306bb9a5c83a9a3497cd19b143ec582a1bcdb476df9d350f2c469438f84fe2379063dccebb7c18cd66081f890fa6b58edd120815952b3ac7d4e367ae1ef86d165a4437de3363c594d1cef9331e4727f64ad266bf1f3a02e7638cff41119d27fecb40b4a822d71661f07771ac877f1541b101bf018837b37a9505c577013b7bbd6b3e6ffb3baef1ba84953f3fd3b3e86fedd34d0413e85e5049bb0122b5b47910e4225aed96d9ad7bff4a277d47fc3c9ddc77630512846ad16fc11999717fc82292179df983fdc4c55f97ee61e4255aa52429d87cd470014c4a200bed80e00f449716d7b44d8fe892ddce97b891a648ce7154c5e3bc573b1b4c541bd8a041db7887ff13a8841fb3c3f12485575430fd308e434e7a7ab872808cf5d9d7f1dd047b8029c4a03495b4276fb1ece2fc97c3bd4e362823108bdab07c721b461d3d9bd2cde4de57ecdb8e32a0028b6118a69aff5a7b33de901f78dba4335a518e1ab8ff79ae25c6b48b269d1a979ff986f6c7828fa61156af426a7f9779b54962d14dd4c72db34636d923b758442c4e2eda208498e9aa4b63879ffb49c1bc49a08860c2f170c20f345af48fded016d38e2bb65ddbdf8d894d286e9f2f3b9896585674d7d9a10aa2a12d39e08f2601245a8cef3031ccd49b243449852238a020f4467a6bf0cbb027de7be25078f11b2c7d1c2e673c53828187c4753d6af8b5c98b9be21d109ed823ef3f5fcb690ef512337c36f1dee8a98f6ce0129e1234532d8c84eb313082490886338aec5eed2ca79a50d997cb4680810b17311fc533dcd5102ce87b3cb977c7fd320a47ce47e578421c37f9c0d5c85202a483496c4582cf2355457fb29d3fea9528a0c5e9755f6d5d2aa6069511829bebbf66ddff68b91eb07bdfa7dd5d47bb917e82d83233a3fcaf86a66b52703ade7f512f9d7ba94f54774939d199f54d12557ac04921c474d6500b7f549830ee1f4d841697986915cc7bb0aa1ff868192fa87423ee2bc2ec28c877c11bbe22f02f5f379737b35c5601d784809b1cbe633d3cc1cccf42e6902c697834cc91e0d9a58040471f00c658e0e892bd01d128c2d8183dfe73201fd3df794a6f29f10dd58e969f542076e34c1eec31f040bce2da7ef209268668d05379db530197e2145779d2a19ac0aad717d1b5895903b69f186a8be1d6a0e921e88b0c06703470939b6dd7436298618b9ff8adce73f8cdb275f1f26de537b3ba27e73aed42849d73cf350cb60659f545b11ac73bcaf15a03ce7cd605c70b6f324a1377409ca0cf4e74a5c2e336d85e195b5e4cbb8c5b861c24aedf6fc636b06e03755b62209290a0e377d14cf49f0dd49073dd600212856895cd1861494dd1a28a1e3fb997d9807aae17a5418115351d8e45c2121b00e3915c4045d9c671f014425436e3df306b1281725210f4343d3b6ca7f38d89dfc857203c3c380243aa95d1c9ef98089b8c7ed9b2622a09c3720fa4a94c6898729b848bfccc8971784400b62697fddffc1f5fb7c9a8e702d8004ca63da78c10be836e143566ac45d521c38a43b99814135d2d01aa142cb727ca00c6988fcff549e46938dfe67cdb23f8e1d5a7cc358f9026c23029928403e4c16b79e50a638ac48d6a5ba7ca9e040d24cfb1e0e926647dce49286838252aafd07406353f48620a951bb5eb47274fe977d9a0867bc84e01dbc642b4324b8f7ce388c77984d8c3c93b3c3641a7a9bb6aee62e506fcdad7d1ad47f90c38533a06669ed9000c67d1ab72086ad0545e58563dfcbb3b47910a6be9797d4766d398882b22219f137c0dace141fa0a82bbcd6d65d128d624c3a241cd14a39835b267dc808d6fd2fd15866c495db3feadf3b46fb3461245da099d2097ce145f2704672b8997e6f63b50cc90cd653e509ff20b034a6f2afcc285c319f66c915c18198e3ba23e05d06d7cf9758b3850c7dc6de0d3414606009cdc103626e3eca909572205028f6005bd40b71e74a47920ee89f4c45f7c830b7450ed1be09e58e421bc79cbf8bbc59f20e60425ec0058d76e19e6f60b84688419d3bb4a65df0f6e192c792814cf265fde8a92ccd5fdff2d7c8ec228bd206db1985eaa142478cd572ce6cac0b04b8c9cb77fe6a3789c3926ace972838baeb69e4449483668d50885b2eae10a48db088edbffed238574cc646dd44bea75f003c9f39484a63e68e7ca5cc5d0cb84c3fd3c7e1ffc9e1a23e85a2588bca8a1e6cb14ae4a2a19f7d57c98cce51b5672183a2539c7f90e866d55d2038aca97684c9f014d0e18803d7b2387fae3673308a82c29ca9ea6f88cd91e287ab1cf788eb1cfe549ed0b7f74da37b815ea36935c6e2b9da537502602256155231743fcebceff721071e814e1f9999d6f1efc2b1b7b1d1330b9576618b9d9ad7fae6b55f4a54fcd3460c29a39e28f2a60ed3a5746659374b0e0cbee0893b95c6e07cec42420a1230edb0ece32766a17343bc82d3998d4928d58f90e6f9f7cc68f3ab5054bdcfda76b8a620ffdda45263dbc125b8787dd79976c2885aebfdce570605056e08caa9110e783d949510dce83bdb444e064e371d99daa34ec7fa0e0797189ba04dbbdec4dc9df61c3a7c5a06d162c88048ab54ba1e6494ba708db1224df501105003208714df0bec026754a29282715cdd102133412a3061198108e7dfd79bccfdf8a8797eebbb61ac6840d34c5b4b9706f4f14eda0f78289842d979e25d431e345ab766c8bfcf0000d010557d5319095f6580c2d3b1a78360c7f0590c6a907df2bd333a1612678ccf52419b246ae281268baf6ce8bca158daaa7066d616f6a32254021fad221630c18095d39f65751383db40300d8ba3daea62c08abecd7c5c4d1ae812d9de9baa89d3c6e81406909388a950e6ea1c3042c7e67c5663eae2e82c9f819923dba2a5ec200f15d1045d1c5bf8707b4a8b5cb2326c4a08c44b73451ef24495b960c1cea7bb56b4a789083e31165a2e7e2c3f088c76ea749fff75f3e40bf0ad66c1fa826940dd8c5642dc346709f47d43b6792c21f056ca8595041723238fc3a36c21ada0037e3fdbfb524675ad3b19ec5fbc36859f5912a238e9c27ee35648be8c59316238e6a8cd080bf0d4e8c46db42e82cd29d17ffc8df92b6292228024677153b8105dea236ea9461ce2a48bc5ac3c5e6b14acb23ddcd6ed33fdc674214e7426aac17a700783991961016a1edefcff2567d5e771b44e76716013bf0309577e531f61388e217c44e06008f511681714f5507d4eef73b199dfea8290f017cbf2cc338f00d9060c682d790426006a07ef1d52ca5d59bf910b511cc9d943a40897cf8e488b3c70bdf81da6a79b120009c01a176b4cd483a7c31e9c19e6358a3b5b446566b54f62358a2ef20147107c480020c2bd49a0f33892bb8e8704561e4babf7fd19f370180ade5fc5e31a2afb253c907cdfe4dcf066d6afcbff4cf4050c1cf9f8e1212750d3dacd909130b13e57bddc7eaa060e438004930004c514ab21499fc791d1bc0485e93faa16e113fcfe4e3369ea3eeb3c2eea45ea2ff13b404883153030ac18303ac8871822018eda5804561f7282b60f88abdfcf0786016b557631f850fc66002ec6e362967086e0aa8b5dd3df41e12699676a1cf0ccf244980ae08c9d09077441b9dc3d7852e97fdf1a0ac9915367c3713a4fab4dcdae31155bec3ab1c7cf3ba013b3614029ca3d944c25bcc341ff7ccf15e5e47d9e6fff9edbf8a4a88f829242e09d711770c761b39591922228bf7d5a43dc80ec52eda4ca2edbb4129da7535369b076a495b05acd4e9a024caa8f10d19752c8009b20f027cccf3a96fb5188db182f920bfb62e02ddf64b5e320b5f5b53d266844dfbc1e17881d6d04dadbb3bbf0965bb2b079ee845276ab4ea064aada4eb20abfc7993eeee219cd5527567045456d3805b4a06baf8b7affd870f7bd8c1a7f1f5809de4da94b4dab5c9b57ffcacd71380aeda2553304e5dd5e72c5df598d80b133723df239819a0e80d464dc189ddae7810cc5a3d831d7974e14a69a61f307320f81b63bb4b44dfd6d193240608398749bf4cc41173f0b6abacbc3d1de829af34222a7194ffcbbe7395a3631cbe5714682096b1cdd67b70235b041f00a645e1f4b378971a0ef350d5ca0491d9a4193b486386f12f6b0881db3a6f86f8871b847a627ea76954bbf6a055b8812d2e78aa4ea54878310142cfcd7b21b70449d5b67cf702b5bf4c154d00c6f588f29c59430a0953e74c3b8bf8ee25219e123130f700f7c1e4d119d708c328c6f203ae19c84661f46aab28810e00d619af623a357f65bb15322aa79b6be02bffc73a71e9e440190ad04dbc888cac614d7333102849ae0ff7e6555869533f03473f81f469fe36a703a871776860a161a0d08fcf6a079f13ef413267bece133c68b2d2a7329c56dea9632d799d41e1f5fd903e20139f832a8e41f40ab0093532e85e4b14296fd033ce218aa65cf86df63b9162232ac38c80d026565e270ee5d93d7956f28980afcf0588e87af17916411f4cdb0401b738dfc740bc240ea82ee6b37e0c61a800c02d13bee413e3ecd7734f68845ebff125ecc700d3755da1aedf77f781b62dd8c06c701b0573bcb3c0f8907dee5a2fbd2d6fbf7ac62c6e18f7ff6dc6b78a787d5d1a18c2795422f703d8b9d752c7af65b2ad8c50c8d3afbae417bfa11ea239852cb7eb090d2bc6ae01e3144bf7826c97f01782426133d230f72f4e28065ba2fa3383c371366982376010b1cd3dfa89273a9b9142e88b91b5d09fab914ce0abe89720de4bab08885593a9d9939a9b5f81e9207146ef563eaab5d3b3753c1a5216024542eac05b7e4e6d70c6f6716657fbd2f613f5bba8267dc2baf87fadbd731bbaa2570856f0710a1534534ab0b7630d8adf893081b0c4bfc6fa0684df48bed768b864657d2957cc5f58b9ac04d594118b8d8c6276a34f6f6c2c224f851a7ec97f88ce9d7fe5d2299cda8bbe57568bf4629668a78793eb114315ab7e3389ea768d1f0b2add1790d8257f3187e3ccd39c7fda41d73fd3fd1a261ed6b3d4ed9e46929ef43d8945a8070773eb3313a2a9c86663c2d1dd6da7ae85a86ed5aff052e1aa2d5fa151d13cfbf1c2ac8a6cf64d0214e5594ac5c56cf1cf3f4bac7c3075f8e3981bb2514a6b4e1aec80a5ea355cc929aeb2c793cfe52dfde03c8c706c8c1cf6fa2a1ffe2d506625002624745eff68a414bde5d34831ace73dd54d3ae4ffcee0fc45ba6180898741d831a25b8e898c8c6c0f585f8b10b39fb73a06d40d61b65a8c3f9d9489307b15907f00381ed1ee6aaf390120d4e0cddec3868762991f54443ed5a08605c448e10021dc2091a2f242c21f824db482aad436d30ffa4fbc1230229cecef37233945a9845a68309eac5551eda352bddfbce5926aa4c3ef54a643aec02dcb1c66e7b5c40b23c6ee532eb4e07d6c59d7a7c1974024ae523387ec4e673d110fb4dc8e46885596eb82833265a4ada93ca9d2309d5971a6d68c6ff48714657c901b27ccc2769b7b99b9072506f1812d6a62db00139eedc07ed7a02258b2172ef7d407977b4f88da2658f22b07bc088a716f28cc58e115b23a1e81980a2e4328f5104800588908779f6e017bd2efad6b3645a45d414af74e3af65064a0d500ae53b6aa1044215e4c940e0a7753d17a819de5506e52afeb9756803a7176a5fd3b198d66344cffa3d07b005777e4b7472517e6cdd4b5645ca886a65b4d0e9e90804778e37a5233888124075e94b29298671ab039b324d1e0b2e16d832eb06520efd65e07bdf4d92793674304f298a565d265ee78d5038948eb75c182f2a273f83fa714c59c0906d0a2c35e92350092dcd04af9bf9a0f7adb890761243dd79958493e3e3639945f3917f5bdb9a239c6d9fc8ae58b7d5ef62d107652ce66986866312cef6c0e05dbd49428f45281808cb3515d09cbf9c4186b838bd85cf51f3123d5a99e96003356d0c8729f9583b20b585cfabd4cf487aefaa5275ebdd624e5aa35ad025f816ab0a4728180a5e0b54c5d8b5c33c56cde5f3d24da89d960458789be29773c5ddfad04e04981533c2078daa81253b86034fb430026c3bb98dbe4d3a337ba25dddd98ef32dfcd2224fb43d52effb3eb3022cc96d7e73c82d5afed447ddaf98c2d1938c21f58cf6691ef7fd775ee8a0e68c36df445d6e125bfe2bec3010aa1b6ba8e76d9866b3b1918fb446eddaa17edb9538313bfc783947cbd5a411723b5a89f9d2cf8740d6b0b21c207539728acb6e1715163464a3364f3a2a7fa16607a49d3bf36fde3affd2a8b3d8bfd8651fed0e6ed3182cd27e0a564384097bf95b2caa80b6868178c2d7d37366bf8a2cbe3e8461529a94b4b8d03c7db7735a840c6d462e9b60c63cf8af08a83f0b3ff455acf40b3490189bbc69e16ccae8dfcba5cd7257d94e962aa4aa309798525295f5cc664128e0d03edd95f3a87d70f586c709da573aa87be1f5270d0e4524225350b228f5856ccb4063e03d42bb8f94e29f2f49249b71962bd3887c68a491cfd8d80cf475e9158599de10aea3feb29c1a2b2648e6d713202cd29373a5d7f167b872ece24948cbc6adcaefaa0d1392a386ccc1390944095638686454aad1dee8676d2284494e4b72e7f78d3b1099c24c412b904f046ff6e73435afc2dae0e9b9f233caa254166a22a248e30de12e2e50452cb521b96520d34eb449060b40f223f9d141bd2566189900dd575ce765a85ad8486eef00384fc471dce09c42535d4b06a29ad01856aeaf4fe68f490fa8af15cced23446a0c3be00f59298bd361819d6e3adde9d5ae730c8f3fa2a75bbe9794f621b8fda55ea95db7b2824f86c0147934944332b4f2a9cafcb210404cf2c03ee920ff3d9a59d65492c3dd71c45c1511e06f94e82eb07cdd0c5716de038d490b060d44884a3a48d1efe09e81dc1a000b0249084b101358d93cd79dcb95190c49a07da48a242069dec23c3e8f400fad3fa9d79cb3470a42ecfd0e52eba455059d9e461ce6094d9c58c3097bde545c8e41473ec9a70408e91518929e7b61221ff53f3db3515e67836c234f006f8711b65c3afd850fef12267004a3e50fb040728d62ed1fdfd2bab5af6554e6e40e4c6b866474d463b6b812f778e69b318d16981a57d5c7b4529cd025e52041b4e724197f0bb854daf948f6fed661e56c581084872138d9e920c88ea651205821d82ee3be02387501ff5283afea96f564cd7693e74983a3bfc44fb557bae8996adcc993c25627d81f2352d4c6b5cbf1516e4f4c2b6a62ca7fdc887e7b48cdda581aa8087ea2d5543b6f2e3de49c3dea51cc28dbdb6efae6a993be2e3a717871546a40f554284cb0462cd9aecb18680ddf627d4ff501fce67f3a0ca673f4c8f6b5bc16f63a5536f2df7408d48720a24657981846b4b45a0703817fe0fe5a9cca0a27c932c2fd05c1bf13681724fa87ad8cedfddc6b695f7e02bdcb1e86d4a086f514b7a5a2deb724048d2f17a89d20b1b747bfa1ad19e8b23fea383be3ccc5bf0f27722de05d3ff7001027ff44ed3afc0f4fac39635927f2ff9b74fd2cd355de24e86f1cbf99a30c587cdb2d7c19fc317dfed4a9db329e50211785d5daffb2b4c848bf1d38cd942722e42bde4fc5d27b2005f245209fef99736149b4a93404730d0bc9b215879a23188b5b3fa53035d75ea3b952156e44af7160076351bc7c1adcb4145891166cf73181ad4525b05d6fe88e8f502cbacb3d67569169c484be23336fc46de95f2e832265b439b48b1b587bee1d722c8950c10858d82993bd621ee640dd10d04389aa6a55c154e7cc8afe66c1cc41e7d2c5ce8d9ad50a6c833a483823277a115ea84c230ed154b00241da58083671fa962def5ebdd823547de73ceff9e99cf944ea6dedd4305c4b8428b029befcbe37463273203b23e6d9d4260c8a43908f59625d8c041f0091a03214bebc32d0f949f0accc0a3947d5cedfc99272142dfe7ba11f26aff5af4c9cd5fa1124906d7df21a8240367f89196d819bff0c34d32273718e8a53edac1cd71adfe05b4d6e5d66d176e654c99bed01a68d804e848287c4e8429809141814cc0b4316796046e11ab8aed249ad083ecfee0d1be85845ad8e46d55cf5e87a8e6ecf14350f81153e1d8e5ce0545205656ef967b0fdbe5ed21b58892bf6d0c09001b2d1bc2c3adf0634be2d360567dd16099e925ca775b66a8b4245f628eb3e233903a2223f877330142bc35414beced574af549b48cd257fb7e36b61ede78b637e52410ed7cc5f9adeb4eee42f2089be5771283a03725ac613be4ecb1581d1766a7a0df13bd2557626f7f008622f4bbe43aab4579ed41b900fcd01b36a094ac89ed50d6805596b854da4a7fc53014301060a429f5905bda9c8af5657b4883fd25a401e4ef1e13a0d0f6445e103ac6078302b0a1e66c5e2835971f8302b1c1f6485c7cb3e0e6dad2c8fa593ac6a7962998c06fd9ee482e48812915a9ec75fce8805915e9e6da2de8755e4fb5a9eca2ada65acfa948f11c55691ef6b792aabcc8eaa5aa58aa2307954f0b72c94c7ee51c51ae428761ff69d4d2afa5a0c185d2030bb6f14dc685cc9db277a1ba0a8d790669e52cad7e4bb15614099e3823c08d8c4004bfb410ec8ce27c7f692535da3798e1f076129cd68c92c23161bc93f10e9737b654d38fbd8c4ae5df0d4bec4c89ab05b2bdd874ab3b3bc8f27ea840622f524c2c1da162fa3f979375af46afe3b2e0848be78444c64f103a3d9e59958c3a288459bdd15d7480b7d88e6ce8e7ec1a011791867e254c9b17b3f71282188df3e591a2180df66d2a687ee0c777d21f59b8b837a7b1ee2209bc65a9b1a32b434f297a30870b9c082a3b1ee097fee48150c2ecf291698e11a208c1b7093522fba1adf1302567a189c67cd38ce46ed071da72d9e4a7304bc8aa0a50abee8f68c812d52e952ecfc74be74524ea69f1f9490b34c3fdb130fa8f544780e4cb15bfe962e5c6018a332ddf84de8341ad3ad2d0b76376dbb5f4ef171c9b3b7a5280226a555e954cf235ebada44d508b2c3b59d065219b7d72f8c426b04700da606cf6cd1abc4c0f89608126d80b930843f6e01750143e586933b5fdca08963a70a7003006ded367efde510b6f9f31a19d8e5e57162384288e9fcb31956ec9f418b8c51b4803988c75337653c6896fb3a44ba4fa7c37700e33056077eac0f7fc2a73e6a1fcf43dd131dcd364578c96e47697ce710c5393fd7eef4956b10b4d5655d8a5bce3b35b01d7083fafb8038d2454da1e412a40c372faa8efa9d76150b1865a66c73fb96d12e0408b1ff6baf1c45c46314adbba3d02dae86d284a1b22ba77afae8f8b2032e65938666767f0aaa8ede779c7f729dffbeecda3ee269973ffce7660f63acfce9d8cd3e9ff19f5607f0443ad11b281d9f90087aa374c8b2c603c06707c83f4f7f8ac9cbf24f5a1533e023e64fcd65a86cec2c857deb56500b42e929a839e44864839aa3f1cd6116145d0489209b111b24f1cfec7644f45ec79e91fcf2b3dfdf16907edbb85fc9422645f85360f16e677d4e0980ce0a738176c2c077c32a27ccb946931b39d5f1bfdab4cc63b1e67e4ffec8d51afd48594d9539471a0c826d4c7ed295088b20769aad2860bbc5f1725e335eff5dbaa63917d4d753711bec124c60081fe8fbeb9712f77ae1127094acc265c4f0dc23ab131f78fc654d79ca3e681b596672afd34ea98d602189307794b53e7a52c10784aed42a410fb1ed8d0182da67ba8cea0a76910db98cbf855effd234bcdd26653711f805dc7692915e988a4d66819a019609797f46a0bb79e1e5db556f8da635a2d97d2afd40160f37470daed1dea082c3f324ac413fc3c9939d388013e7e7166dc694a23cc9bc9bec3c9fb9a1663c6d19ba1d7670ea672fe1bbd188864dad08df9e554c95c090f84d2a173b5e0b8a76a46ce7d406226fe3d6297052a9609f784b43997c9fb28b951e22e7af778d9c98385f086b93e2d8c6ef7eec681b0209c2a78f92695197fb3d48d58671aa929f45b5df1e17b92b092716396912b6307fe8575cd10848eb528940d23da8929698fa3f99688dbdcd5c97ff39fc812a41859af3a36ae586b96f7d8c9b46a3f1548064bf54777cd068a87c0e987ee6a9e4dc490cf473ab805a1bf62003adebb1cc7d4e15e0144602538b6cdb564c490d29145a2fda0c1dc31f69c71b20a29651e9afc7f00b2ad15cc19e9b2c1a0b36ec20aef995bc86e467b8380123e38ecfbc292d3a10ba0016bcb5486efac2c3337c0d457ede7c14ab394fd55f6db6c02756188b7ad830c1cb77b97a785ed6312194973b546f1b04e02e8b0be33f66648343a28c01cc7bd467cf3bb3af96e8d219f6b9cc02bfe0a5fbb589f00a2f6ac70b63f4da37a1b6b0bdeb7932f58033e578d6ff05e5b06ac3c04ae279be81be7061a34390dfd9d449e5ca0180434b8cecbf5193aba80d89849061fecd86b2428677d1c96cc68b4ca6d97235d3dd9a166e9f47ebb19e22ba9b2b336bbc01e92d33b85d4026e93c39554c51ef04aed60471ef1d725b8517d83c8999a553b0dd0ed583bf8b9c657810f1f228bbb1ab05f5ad1f5580410b3dd580a661a6efcb1c1507f55bd1d0354f4d5ee1b7eef0804256bc002fe5735225903e5450c7762817d8efbb848fa07bfed0cf2f6394717ca6b26d49db279353d17a5a857fd9fa7ca0145e87ce2303335afb760f683951ef30d2dfa5801718404cb9b8866cd71380aac65193cd0b7b34774643e9da87ea630f3bb3f4ec06061fe8a47fa240f7138e442908f5b438cde093d9f4d8708a11207e4a22c42fcb90651d93e39dc846d3682809b65fe787b267a407d3527bb92283865c367e6d6d9f3709fd98e1de5c88819d38c65b84ac1262db3f61ddd8075867a7f5b954ac96fa55d950cf07461868daf60d5c1dcedcaf5f420c777de035afe22981a55db9f898dd92b56b07d0bed55c7ecef15e6951275a2e4eb35b039323de2eaf77e7f2543723c29e5c7d1bcd497ec821ad2b27491402afcfaec07e50cb17ebef07a09b81045c027ad925c8a880583b0f0db1fbb451049ca208137d17113c6a47003f5e55a83d2761bdab32b987e2743007b55d7f4b3b098e02ebcf05d30c9e62f4f463c2d8cda82feec9ea1458c0686d6387d1bda592cd4744cce142a19e0af4301e604eb992371659eb1743c21817c6ba6dd21354b9b1705214e846aeb75b3e65e418aa538873306de2dbc5da62bae8cc98cd5ba50b8d73e3051d2f1c4953eff55d26caa4ecf403025302e92fb2917154912d60d2f55668df6a9cf0b51615d42db840792c14385a254408c127c2b67c64298da5b4289cc13fb16fd8c5e671e9263c6c634a6c5a34816f941f93dc8a997463d8f5e91fa8167d05a40c1631701a099a0ee93d240c7dee70294748cdc10998438bd19c7788c006a8669687cdc577477a839264179fd28fba3b6013c6a8e294133f076164b74143aab6afaa5a5ff510a29ddee392fd212410164dc0aca9adcc02045cb81731cae17ccf8b6a0190cf4ac78052648c0cce87406dd23a467c7396b79403743a8f1ed78cd0355ca4a18001c4ebf263d70a3eaa193f73ef30e4b635a3521b959fe09c0de1b8c1ffe1ae74a1ab89078977513ff2c22a57e412a54bc856a944a2f501fdb1d43c9d825faaeefae3235cc2270ce4a11727ebca5013d0782005d0d79108376b96e31b333e8165136ea056f5dc6ef03a61c858079e465e9665e48d52bcf22693ff23048d301cc0fbf29d452c0d884f58212e706061b05fe2d49c444666a7d94ca4c20a46efccef8b96f23e2faf517e45c7d51f5a327fd51559ff8cf2f5ead2d774a89d2af2e3b7267f6d83f0fd03061adfde81cbbe547ebba0181f926cc43142a230c9b00d2ef77315f3a3d54f22d480a86839c1f2cd0d502c5e4a4d00cb7242eba11c5585741d03813c00d00b32f14311dfc2f1fc0b392680df81360e5963dcd56acdfa51d18c1da3559afe2e618e72b43b9f19c76858b8b90838b759ccebfdf5c1f168d44ae2e3605aba29b290705d8b26360a72355542555bb625047980c968ef3ff744410508ca274767575a0e9042ba6ea59bc03128795a27bfce2d19b82a227b07685569fe9d348a1afee185fe4824b65582bc8f7bf053c8a032341da8c508b40e145efbe5ddb94cc89b29d4441db5414783f6a5178a36dfad128d8d7d4cded516cdb4e650eca356d6e7d905edeb7a93e9737d35d025d17e9c20fb5461446b73a164c61fbf55945d256104b609115c167ab00ca017645154b2b179194cc3abdb824aa7ec997e0bece6abb95cda6a45834b7547673353173ce06756877db720f1373882946e3055d826e30db73f4282ae51a2a7571e1e4b7be5e8fac53d2acec2ebdab9f459f4c7286bcbae295e8dc4f3e300ae3dc05e3986e3f4dab7b1e5b0787a6248081cc46f9f1c45c99a4e4754d752e1b420c735eb9f815b7626578c9e0d773384e30b794155ba7e69798fff2fc37030ae4c2dccb465617db2fe122500a30ce10106b8d16a5b1685c2597c23e6fbd648b06dcff02087d0eea5e566b2cc82304c5b87384bb3dbbe02e208d5dc0cfe7bc3188795048881c480ce0848c24610e83bb518eafa0c7f811787170eceb94fe1f619435192c8076b709ab89c09502273bd935e984f8fbcc055b0be8a1903828c7bc728da876512589d75b56d91703bf387cc915b3c9055c2d4863a2019a5cc7a5d2978f864472182ee440a3828b2fd834766b246cc6bc752c24762f38b9849097492ed26ff799fe368b7a73c7461063e505956809856ce9a9baef3be8f9bae961d010db5a3f56f7aa4487950475f2eadc4d7a31e7ae6fbcdca5ffabc5ad6b0384ab4a35a8e9d7880747986724171c0929e10b666a23c5d10c00ae36b59f8b5d9e21217dc118e28cd28771ed21661d549efeb4adb1e15e9a28b67ad42b5152c2dc990651bf67cfa5ce7badd78d213196b07729d8204bebd5b0261f2603d7df45ff6f40c66cf07f99ba2a337b4fbb885defe7dd647d6e05b40eeaf8c1357b60ff19c25cb1e8d953a21fc4a822f2f9947536f7fe6818010af95683b4bb2bc06016532a358c54a8c69fa150b5a06f1d5d5a4b973fe9241223f6145989b18bf6dd006319a5a949132d0cc0fe4af537212ceab2019581dcb0ea0037344b56affc45df40501a9bf9ad4241dad28a46a480c55e09a53d807ed6ec561e6fb898597b49e64ebe845143761ca22c7be22de47aeb66f82a8cd886c2f0ea79e4b85e7d3d3af1c7e52d964826a1d89fe548d0f831c5f395f25e186d655e3bb01b8d45922080537bd5aa34b54a053f92a882c0e34879671e2f86ae5baed44e540cdabaa129035867cd5c7848382952a6ed79dafea5e0a44aff2afaf8c116b9852b813db5d0be15ffc146cf94034ce29f85a674e0dc7b8c309c1dda81819d8253d7ef52f26004f7123c173059af2ddf70ecf4f7c55f5a0df157ad3c30823c7a90af129a85b79385fdd5d03111194d29937f04c43d990eb9e45c368b728d2d0bc4c6752acaf3d2c6dc21cec8aa8f549d1aace6388c80902ab98bcf1f64aa8d22d7e302a7dffa1378a772b528f2ac04e248fb9f678c07659c44178199d17e70c1d76c1f41848422eccbdc21ff7af7b7cbb0007add1f5d330d00cbe607ccf00bd4ad04745184045e1a4c531a9e59711c1c84c4324dc78f3d65e7581f93f720002a8cc55eae4390a16508fce0fa1fd3c66d60f03c0a7b20e0a5009c45a1069de39518caa3544783c59463861eaa171f2b000397d3dd85d00cec87dcd0e1b28be8b81afc634089f07990ca0df59cf5416237ee4d9faf145c6fccaaca71823a16e01c23db5174a5d7d16f9c305005006ce714e3bfddc45ae69e0c029e4338bab096837fe6f184c4c99982706af60277586340d760732ad98bd48ff63175b8c2bef308364efd55e0556ccc47c4b488e9b15cf94bbc585ed18806af5c4fd43cf8c6c5ee60427be1366c77415c5d067cce709c6e9622df8528a56c093b4193fc61141f224b1bb91a99cb53626dddb7d4eb8d31c92a04de28aad3d8fd5b650fb4b80d28b6aac46244f7374936304dca02720db9509773abe8ab9e09b7c2ebaaddab4861dd0b846d05cbc9ae9ffcf1b14b9d463b007d1a920ee857b1396cb00679449e9ef8e997bb2a5ba4e957bb6639a1878c37ea74a6c4fcdecf3a99379527affe77ebed7bfff1ed537601a4c6aa3128d75f40d5f86ae6d8238dd24369c82b8a3ee6a1728e939ad9a9a824905e6e39fe26b83f071923d5f6835335cd9d62e439511015ca43522516161e000b3dcb2c35932e47e4ce0f9391ff06d9a92fc1647b9125a34d342cd1d6940a78a25ed16cf9a5c53e42f472b1cfa6284a1f142cafee9ac9b22674214062870caf5eb9a4805b0aff17e7066dad10902047e3e7786e8101a5bd2d3be2e8bcd12caf2eb891459b9d1cbfc1ea6b535471e5ba778a1450bbe600ad217ebd32f7ac423442f68a634d2c60d150443667e8d59b3c601179903a90d4c62e15a61d5300d437afc51bc079ed20173ebeb9befddb8724da90ca8c88667cca6fde30ad32271a547de49e0ca6895a5e44d054163402f2acb03055c71e1d6d8fc1e5ca11c3197fad4b3d54eb9524be794343bb4b06a2e5e2620c35f8d4a290205a5d8a8136381a24a8014f0c57d73b619344136b6c7103a913d406ae801507f9480c5b2ecc435928c3cbad5851a0851a519612e93ee2e9c9a68edad16a09ae66b2349332004dd93480b6bcee4226bd2f76d80fc6fe7800cf05740546e5b739b6b71d92d27ac2980d25336566d790e6044572f01cb7405758269f064e3f7c7839a9bfe52dbcc0ba2ae8f55e4b68b4920ae2ceedc5415cc7402a129d86e1497094392d3e138491a69aeb176dbf64b540c99146bb7d8e0bad552e1d073deb613e9a9ca31ebafc3f2a2acfe9a01abdc586e5f0fe7b11b0638aabced2ae5e5b939e9d3af2ee99eac360beba6939483a59d5729413229f87a11761550d67a71386369507c8c6ae490c8122a466b78374a602ec809334c9e064ba5196a1849fb279a84aa88b16e194cfb8a74747ee2330b07fbf098c2032f6f3e5e529dc9a9ad51b14aea54ee1fc430fa75065a8f5c0ce33e9879b0feba6abb72ddee4289780a3166cb365ba0d9d6aa5ca7e65134dc2269960450d1147322a6ce4c352c9c0d70a2c94decdec4b99207e837f067150864c593dc67be4e0227d858e67e32404d48e7afdb05eeb94883080137004c125bd6847c6838b38a7e02d4d019d003996014d8da0e565a77f2d54b91cbaab3a238be6e386fca505c171a55cd5191496f8ff1693a36958be4ae4d7328427c8d2d506d469cdf138c631cb28a0cece0c0c96af0fd0537ff7928b1cb72cd3ac86fe3bf652345263a21154f7174735d5f500c985ed0eb5f5638d28e204e3793b5b71610b6ca120a683621ce43145a6024484c294f8fd73ff4b8526c4274583529fe302dfeb23043eb2179b5d4c40cc556698308c09873542abe1f516705781773ad7ff0379d30e94ff31d3606f0d24ef52611959000064ee9ee60b09c9631e4714b4aea1f01dae2783c4016e7616f4bd42a31fbbdcb887624251e08d1aa950f6c8b993b87a1b4d43d8837b537a76f3f2250bf777f2c05f13eab37a9a797092aae84b3c4839daeac2d0cc2f8973af936f5cea1dc14ab43a9ec7e1b04e95ed5c0ebb5ff146967ffb7010e6b25b237795647e57b799d2a7d562c538e64c1031de50f0647b0711f28d77c63d7e78aec65a3fe3a94a8f64aceeb568178d84aa715516157b9dc725f610f7d83fc2cd199e71dcc57e170ec8571f1829eb8e818ecb06a6069ca32c4c5f0a61257c1f13cecbb569e7c971c2014db186db4ee4aeb95dd276728d8f175a9bb207684a6ebd07445bc15b9dea2856b959ae6b7a381b73d8b989021fdef785e7e1f409584d440dd869427a1a7dbd285d7317406159ad550208b4eddcffabd6a90f7a5e3f046c3ba4cc39f435f113ed3e54b6a59a5d4da43baa96b2320511d3e7b5739586ce4b9b4d5061aa5ee5e17a463c9a9db3921e4fe708d947d4983b43ea7e85ae58e4ffd899224fb83f904bce19ce386cd4c8493da86ac0f0923e7958c17dc2b34f0822c07561b8e73a4c7d7d29d43415514095e402a47180ab1b0dc808e72c43b303ebc301dc3abb72821c063336ea003b75d46190856370f09e985a0cc988e79efe16dd73391531540b79d67f37f157e24b2f402b6e1d45088fe88574c2d077419d1602c87e727dbda5726c5cec2f76c3e8d68dc04f2ac0fc84f2f4c580710cbb0ae04945ad3b5526b2dac344b15b0f0e878ac0056cad88b52abadf65940345c2966607f065c307f4259a596d217e879d325e6aad73d22fa5b96a7e6c0b61f9764ca3f88748e5ab51f2ea50b5d45c0281dc40de3474ed9a2c12b4ddee5fa8177fbb1e92f076d19681a7ef7f50dfc65bb29593334de6524e05be59d192fd7e190b1209845944d99701295a6e61776faf080ef1e95dfdb4bfe1b45109d32b0da18ec1e3d678362d78f95ec6d6e11d1de96202010f39581100e5e99b9f0d7215e5c2710034596ff40ddc22f3b95f427e8bae4f56f52ea7f16fdd54b2aa3d3cf9ac2c4365b5618701039cd6be4c2bbdb2e26db2980781538708ce2a97260ff4e28fd0bd2191e0d5f0a4f8e53d559171ff3856008e83b734005251741fb871f52d38434feda02b7f76f540fe5240e7081279944e1069884fe5b61906dd5cb550410eccf64529d1c38178a83c697d2e457cbe329cd5a55ca0cbd6804045e27e3f9ea787a0a1e736b54e343e24e345d7b52fe2400188a8a25233e104480f9372c90631b4bc23d088e8ffda4998b85e62bc1db74818a26ba832be4a4cc230136435baadfc749594dfdffeebfb886bc7d65109b7d8f22d793c4182dc595e29d3d782e848da09d3b9884f579e3d0e2514ea9ff20c0ab07fb29044e6118c032e74c57e34b005f655fb9ea44a7632facd735ddd019b77019c22ceec4020f38f2099805fce50e824291139699df9bdce3648d2c62303c385473082b1f7beac877c3440cdd1ff5fb56a2171bcf1cff5a3a2dc2ceb81ead6370064757f2f723d4367d74cfb844bc70a30a0257117921e1111539a9be4723567109da9835782a9f20bbb806b9170756af646177f4f03dea0df36b690460d08af997d0e9444485bc455dd903f319cf5662de26260cc4c72acb8ce324b2da208172429a495db93770a700c29f2b4f0987622b3e2d9f38ff5d1c772faa0ca58564269bd738bd86084de7bca50cec88e40a48b59a6958a775d1f44276405fceeb1a01ead68d1669f0cf8a00a549cb15c822f0abb440a1d3c6c7fec76bad23c3378bd828350a4004d5b36ef71c3fb69a6a3474f7d634fbe4b0f6e9d37e79e19d8a68da8fabb7058a9789c328b49d69a16340ed8945f6616591e772dd6b7ba7966e000e541156d1e0414b210d0585a5f00e02d5df36c52a0e4695964d2e1de622a1c512ac79d46b6268913cda3940bfd871f242a44958c49a21172ce5d4b4e4c867e7e5baf292ce38fb3de3a9656d235fbd4e8ef7286a18c48886756a61488d57aacf620939e2d7eb9020c987711ddb4d5a5d49cda39c7950f87a51370afc44be4afe17974d0cc398258b249e77de998242612684d80560295086a0bc019d4bce5ff4f79ad27ba158b0794e4c4ea955662b7cb191b8d5c3664172ced66904900c4a3da49175eecc477f0ad48e1defc5b86e32419d9627572d11b600e6e8372dcff9b5bb782c75ad76ffda84a4c98a80fdd53a260b7d64180bcece3e2ac3a0ab5d33fdf194450c2570dc11212063ab69c4125d2fe491a1d9ba7e6205e9be5fcf033581f800621a1003b7e2022585925f6fe8315fe9b518ccf2c2430c570020afa228322b66d9c8e439b3889b7537b08d3a96a92ecf2defbab41de674d2bcad0f1213949b572fb0262a93192150660cd2a20a1620b3d4f964c5a05cf875628ec36a321b4cc922f40db21c5a4460545dc1491e63138f6bc0488e2b3a905ea35b79d929f973c80133f9ab4c56b39173925668399984271c3fa5b91dddb061284d13d6f93916807c7c5274679aa560f7a3bd7af7211b67589998736c1589905d4e9a168b0b8195efe5b62ca4cb3d7adf4cbbed0f1fcd73d49659fb2ca40e1b531503690274c7a4d12f692ef2804d0fc4dad4fe5e325518dbc6e4b2b0330c5a4af457b8ab6b7500e8426ea4e598189fdac0fe21f5394316170d4f0c0330e2b6e9fd910550d89c5b5f4207592f9f8a00ee289e726b2d29f83064677b9ce1c1741ec4767967f4977824f0fb62a95f0c396c5085bd1aa307b4afda449f432224ba5796eff092c5adc3abe8d58c630d552b8116eb0c4f1e03a666a2e128280a433d64549a38933acc6c8b3f7a84018378e4b9499cfe308224c0c0d38062f604bcef9d569403cdbbaddfa2e22d1d54534adf595d892d69db0a32e64ab79bc9b41c872159e8a1dd147154f920c4e22dfd9fde17ae53d451e26121634d893992e26349ea94414078451c8ed65bdd651d4b406d73d5ef57bf0f1356d058eecf599dd1ee0b0f1b099de643b9408b509e5d237fde778846a8eb059d5f1644182e7562864037543ab4a9e62391435601f2cad7def6cd941ae629f22704bf0d6359d6ce1e02b457905fca60ae27831c9a8797d37820fda9ea32104ff18d04f0390b27675b9fe111ea65389d1365f5e42d354b777ec056cedcc7f2e2bf19aee120474bbd00c6e90fc55e509aed6fabc5be1342b12ae9b94e16b1702a295bb1db8a34b3161e3cafea8301f55e5fa87e999cc78ce56258d33bb27612a4721bf97f839cfee17d9908dc4c837b158979fa36ba1d77246b545cd820401f2e765e3751e0095217d1d60497bf7892253a3e4330c024dac4ef537df0daa830c79e0a5ddd8da7593d05bbd826dd6f834e90e2231b3568083c52981ece22ccf2cfd04ebce6a22ff3c72d96d82c227029c7ee78e1f8994f021a886477ce086866946d12ccb94edff8d6f44261dde5558c6bb7cc26122f3c7adecde4d7dc645a151a8ab37fe08ca05c842aab2c0b5e8e7eebed6f3b77d21f06573308fa96e46946163bc9a26a130d4b5b6f58aa6437982479dcbb15460bed2a7a8dfec467a91607da1764c929730a09ae1847be508ba8befd296322664ebaf225bd6819a34fb03fc969908f094646d80067d71056750552bf82ceac6fb88b1b1bb55c24eb335a423941eee558dc617e5112756f75aa469863b2644afaccb273bea436795af8e20f0ce0e86d61c5fa80823efe1b7a29220756f8c60f59008f3b1f6d36e8f88781496348b12197b8053c1609052d2bfd908a155f9b4cf4307791d3a78b371ac421eaac69ff7981682f2157c82fdb82291b0a5500add78e0b24f282e84e22bf9c35ed5ead2a7b66cabb2312b977ef764e071c1798a9971d97b94656e0bfd365e0c18bb89b70f4f6e08a015c057c1dbc728426295b06538a011498308809e5d7eb5ee034e8c4af5e54d121f9778f50bb40e27d899570d7962a4c2b2af2586ba907f4e312348396334b5b669d52ee03bd6316742883174e712640272283b633fadb1171a7750b0089c0f59c9c4945bfbc108aad47b8914e74b647508d3354585e4c12983a86646b0fb7b962e605ce10b6950049eee364c816121fba2b6ba1fabdda18502c6357bb314b1d45b677fc6593ed214b21906c1148891ba831e117bedd00a608209d8e30f50bdbf7dd8de1ae8d4304a83cb083fe1a55ce9c1c2665af0930a159fc8c7c884aa4c6ab8b3c3484daa5f1969cb039ef231b50b922fe04e7c8a950e2f58c0a73985fd249ae4034b188a4a55b03bc8557b797fd8a92fb03ac11f7ae23b3e0b25a31a85814fb4dcb1c4f4709fca56348df66419cba2ac174dd4699817e83de845781ea14bf064e66d2649e02c81be63e9cc07d9a99050ceb05281157d948330481886fa0fe5180bbb31aab1b7614e62513c27303ed46f10a8932d78d9f10db569c6fe10d015892f0198bb18dd0649dd74b5b26a4530d308ce30966128b2cdcbac5f2374ffbec8d4b1022fa64466a1bf7f2723ca1ff63dd9702ac3ad5b12c935ce3929d3085c57320828dcc84437a993052ac557a44f6972ff6b3fb863a650528853392765d1f511288e0447e6e868129d22c17154a2d4133653196f0b89690a644d80b1ca27500c7ba6a4377eb31590e0974cf3d2411f9f591f585884ec3316c8616b9f753021bde65539eace988c9886a10b868af88554cf11574ab61672d35e4bbf930a91db9229dd09c4924b5147685c9507d71e5e932083491dc704ef46841300005720d61aaeba714d47bb22a46bc317133aebfe3202dd53e6e8e42c429a90d0e15bb4fa7115b97dad808d0c9548ca09aee47ca553a036be8d3e78fcf05519c1ae66526ba4f9b47721c5a51a5c482236ad43440707523810039fa21267ddcd38004a8817cd4f8287f1f01e20888c7348fbbafc31d352e33aeddbc6f17bcbf609be74f4b9f65cba30d629067edc8165c2581c83066b21c45a7abc93665fd204c00e728bc36e781a85ac913b34075168d17f11cc50d12051406071009a3467ebd281765cd232b2ba31d968cb3f875a3254acaa16fe29000ec465b5d428398c8e07c4cd65e581376515cff57081fe28d0627132144a056197fa34796959ffc413461c8c526e1aace32b7d40a2d55ca7181442e88295b43caea10169cb60bb495645382fd9ad6466fd0d382908bc91ad89510dfd3430f931fe71ccfa19a8c8b1a9afd6d61e9338eb133c20436a106b8f2ca0c442e1964782a119a5899a2a60aecc2180429ad76c4459a1c8df09cda686e7fad0423f50e9ec2be6eadf039babc5e0d9480d3f5bbeb24311dc2e28a0a89efd657bf57bbc84ed7c2cd9d447e18d5366114d4e7e74cccd71ce4767dff46f062bd705a020be2921f0df3e5cdcba882569ed39660307fa1ef9600853100a2f8a91c543ceb720194e7df62d505789cd811108815431cb8afb1faca01e732e0c81f923901bcb24737f7cf337306c0145718cd5e9a87c7837aebca63057eb86f6d8688c01af5ae3b50c58cd26e3793051e2e24f38f49e5038bebf429203ac0696d196973ef94ae22c2fc3cd409b7a1af410b6a75399255a01cbe82ecc38282fae88aea51e21e5cf5b5024730865e07f43b7d392a248587403fcdddef280c7d52c26737465282f0466470ca1853d42f1b09d4e0971f314bbdc42c246407d148572f6bad0a2a99b8aae3947ae32c1620a77b6f814833f09781bf092fa7decf5d0e1c5e0557e61ccf280f19e7c1d407475342cb980cdf27e6a48789cc940ca21942c4417531ae6ce97dd792cb33e4c0869c30a190a8063cfeb3201d89472075269a5873c21708069101a2df33c1dd8724ee8093ad5db20ac195bcfa3cddad855f7e72bc20b7685593c40768d1f9ec18a8788c8940f419b980bd3baf2f6582ad62e1bf5e158395fb9f7e72120c0ea7c598ee31bbe967a450d118416b0844e84725cb5919898fc234da8fdd01328ff0d8f2a4a688f38c017cf17a29e52df8e56efeaac180b79140dadfa22d07efe457ac2e5362aee6435184cdf0967c716dc426c2f2a266b8180d26185176cab95ad9d47de8b8d6360146cf5171d08c2fb644c385cd1617df0f25aa39054166dd91d01955aff02af59c213a30e864e8d9ed91e5bc034045b126f289f62f19d2c8b75550eb0877c6160b968e6ad2b406a7c9f6d196de1effae5701eb1c19cd6910d67f893a520cb2bbc6b49b039be282744d0d072870872d8ae36ac20570f819c0ad844faaf3efb1975914d331dbf90046396c4fd9a18bc65656b93f5f115f18da87668ff5a6274dac9fb71cb28adeeb70e8592e5b0aff17828c6f6fc280e6e2bdafc13b40a4c49432e6f70c6d72358b0c99dc5452cf869101315a352252cd3f388b24ddb2606bede44ae71f17e69eb19a8ee57175664a237891533f744d8b801298493fd7acc70003cb01154c62f9ebc30e15a6f15c968740659c50b29378fbadbd2c70345970aef4dc089f60060d141140ce24b00ee91b214d75a341930ec2e8b264c9f986d064c3df2cc6bff99244d03d26188be8013c3a82d3c07358da9675fa7223237cdec4901f56057cba593c1ab9980b739f4cd9b0c000a637391357b2ae84dcbd6a500973fa69de41dcb00ea5b2b04993a5bbf82ce0544d74e19b3a364ac644ebf9214751aeebe771b639bb04e1f2b0ec740ad11da56cd1fc3a403ecad342d77900c67eb2ba9bf9353000c2184c5709c2c0a6e06b91c708825ee241479ddfcda511a80d3e06a6c0347ee795d34591b1cf3a4a87ceefc7b53f69e1c88bcb5c7b2ccd06cae88efd826769175b98dcc45b5e024cd25869391a6f4d927514c162ee83c9867397155c9bb1d6395d154a389c389020b3f1261eb239d26ef9baaa0e5e08dd877d4227af215dcdba9e7509de84d80eeac94f3d32c8b1c186e1dfa51a30b0b593c53403b7054889cda74f8c6ea2a4738a39be530016c312809be4916ff70a6144b12061c8e60a4f747a2ef25661b41536df1acfd16250ac297304638503e085d43cb090c1d6d7ea889098548d078152578ae4981aaa027cc43e161ca764de55aff6115c602e8dbb2957efb918be09a6bc090f547ea2a5077ef2645ddff671cbf5352cee8817ca51ab3e8eaec63e7ab9b4f4fe0738a3340dc6c50e8029da3a59549f7606b20c30ca2e3a41580277083ffb3b3b0c2776e447356dd5852fae2bef399a8354ce4066a219114fe26d1fa177c59ece637dac5b6b5a9dfe83a5d614cf8a3d28792f82ae5e4bf70b5b495a69c0dcc55677e2c5835d70578a92c5689690ae98c760d26e6a36163bc906d0d358bc7cc6e23e6007f9803dd2023be12922246aecfd2624f2808349ffbb8cdb547e70798658fbeb00202f5c611be276cfd0bdeeef482217b1e68b23a9954e1cd91847c88d00237ed8d89a33ccb432f930d2c30796d595c98a04a9dbae88127d784dcaf92edaed414961471307216d4173124988793c1ff29b04a7b2c6fc82473f96c13621e9b9f9f5d6fab7dd671abbb86646d709bc3a62ba467dfafe321cf2b59ffe540fdf5bb9f7996f25ae1615740386c02c885f8d6086c01c73e7f1e46a09f0c10163c579d80b150557bee3ec4169780716d001cf25d587fcdadb15c7c1238ab18b5d732bebbd728486e8c449bb5958dcde6068c229fa4a5f1d0b37cfc8e93892c861a93a16b67f4b6d629c253cfc12116912a7528af695f15f0630dcd22dd5aeadaaa55ab55db534abb669bb66e93665d12cdd154e2e8c907aa6f2a5ccb2008a3a05a8ec893bc70e950aa265ec070ea7231fb8511d3c179222652b2602b00be6365565fe137537ec676ffc1b60f2417830c16a414f57dc2fcc9a5c22ac88649b3997645eb3f846eb852d45480ba131efe360c1ee63b8d7b62f262bc24a22dfd3110d408537d00e7742a11eef2288c35e5887de6d9453f1dc4abe3c257fae8afc5f2715067ff6e6226c11ebfc1801d609f13608380bd1b8f871481a2f7d752cf2e36f70daa81fbaa8d9e9c3aafaa5dc21c711215cb2ae583fd5ee254251854dd3169d5accedc2dc7606e51b9102d99677733afcd824a9c046d195de13547cfdee18d494a8bf5402e2c95ee1bf0faa8777fc7a7d81f33ff43cccaec1455fb2b0b9c64d20447cbe852811d3b54a1d1b6c3a18f35ef52dbf0cfab66a96db78b67f1b01174a0154dfa3c5526b376ba05e0b33de9e70735da16c1a67dbe0f55b655aff146843936fb12713e7d6529acb6649efaf2625c0987d242fb8401b5202c790c7e9f030705cc48a07566d6e3a4d10b578da4dde64b75c6ae1a11bc4a71e5cdf31136db81ece6b91a3530eb3249a78003edd090bcee91102ea4ee20020e73ac92a7af10a348c9161e6ce2a6cb848e560f7b2a36d8820329b916c87e27d456c04aa38794014c7e0c75f25f0eaca91b8e4ba23074c0a461a9b7ea090a7daba4344c0a4e714db56859c6f18c8efcda4250626ba3587fd601dc65d140a31a8addd42513aaaedbeb4b394d827d1e4c23911d04a646e37125b4c9da9f14f84422006b241cfa89c94bda674ac2e79597ec0002d8e5a0a8ec5c7d4df42bf1b8dcb70815beb1a5b7238833864d7b3f9a9d242a5690b72909ff7eeebf0b224595a4de046d72b227216019d590348261bd3b8c101e6d3321384c01b74154997f4a189fc6b89f05c47b7895869eca6ed9c07ea2fe4f745b07eea9cc8a21de7ed59a2297d56801edcd2a5d4b42d053f94b0898f2f91a4ceab0e2748756356c3023d9b9abf66011f1f86e40907ed6955ca1e46107c59d250ee957969a3bb2bdad0d9c88bc88730abe86ed200483e25619224251c2feba259ee36d4c41bbaee398d4112525eb4690385c61a06925486880d324b59936a14334933fd466e597842d4bacd14695d121480a8ac5481d9df785b5b745e1d5be9277e0adcebf6e892c064e84c43e7682c952f16832fe02d3d04100e03b2c7c30072411cf36760c4600609f700f23a98761408ae64d0fd6cf815f825c991e9a408b03771b6dafaf14501280abf999eb97fe92284eba46f61f0050556ab0b0f0b00ee19def9c384f251d19fae21365943c8d5760303da6687bcc79ed76425a600a7a4d47b6bfa053c0ee1df28808f8058984be1171e603a551d0327c4d4f900d4d194222354de5c9740f916e0af29bef08b4991d1355bdef8eab4e56e11d8009fb6989c34dfc26f54b5bfc4c6fed3a818172ee6fe4b3f43cce1f1460e48dacf8c168011d23926ac62a233cf22ccac05846883eab611c481808d738110c3bcd33fa009ca4b9e139320fac914faa2662163814b742830c2a4f6624fb293eaa2512e3d44e184a28268138fefc97969e8ac9e1ca263316d0bfaef8dcf16431be1e2611867e5f4c2859a99d4d21c4d245aaccaa80ef5f3f8e03b7e03712f3df87e09d051fa2e8cd23b3d7bf290170d84fd91ccf2d95a2f32a0266046acb2a4f8e0c9bf55bd5e61cea116aca07d348e9b3c25b221cb96212c43b2482e4837c0cb821b81b8c43a4252a0b85d6aa966d0b5a63a338bfc41a1cf2a26f002795fa356f4b192466d64114082d169d90253c1bc0749e15c8394f8313052a44f22430f0813a7850f1635f2bd5fcfa382bbbeb39b690bd3eea64bca28ab7e73eab9bc5f39587cb0c054b8e2e3a0ac2afadda565b8661c45fde8cd5d10927897a67369b99bdbfbaf56404afb408c7c9d37774f2a4ecaaab2e9d19bfa2ed2e1e0a78486cab242d8a3bb3675c80cdc820e293862c7689c1429e98b1ee6244aea099588123c48f989839dba2ec3cff82dcf4e7f2eaa2e9d15ce2d8ab4dca4c7bc311acbc40579b4669c0c58d5773746104e1c40019fd559e55314092e44ea34a314514069db5a891e30d834d8f6d17951b4eaac7ada193c18463bb6ddc81243adf9fa6594162639a4985b4966ea64f84a9ff8735f20e9bd2284ba0481814eefcdd99ac832f3bbe26684e50f5a1b7c798bc321bea86bcb797e5df7c6ec237224f81266603b938bdebaad59fe74665daad944e63cbb35d36f26fe4b98a8bfc388231e8a5f68c73108cf0e2cec646aa23fa8e9a618459e66fb26099636dfb7e77e3de972d276922c67f6ceab3dda434c58591f9e9cdad48641a5dc79fbd237f1f77508b4f7ed34d883229f2b1b5dbf992cc0276542f599efe53ee119a281c061561c135efaa8437b4a646a6bfebcd30df0faabcbcd7616049d4498aa02658ba389defa5c29a7d068f51277e9e3cc8b3488efe26649682da6bf9f4e3aae1173ec1da63994f03af378434bdf5dd19028039cf250a16ffa433903d39344c502661a94f4f316b631660444dd281314d9e4b9b26a88fad1f910b5411abd79ee89a258f25c711ca209139e5d630777b9f3995c1ee6d853f180dea723300306b0fcd4c687db76b90876125d81d4d20d61f45e73130d1f52d80619389f254318641ff4eccf557bf7a84c52f9c63222b41b850ba3546b8a8966f2e35058c830f86c86c202713c652a4d128f8f7361b4002d4a0b43d058c2ba33639d2ba783b87c35b6b98de4f30ad948b94c19cb30f578867fec6ce7f6b7d943f33f0b850568f85ecb322e1c4f549b02983e4efc37abb01e6b8e22bfd9ae682ebf1714b534661bb3cf6dd43bb8833ce340da85c2e31ba44cd03ce98d920b18d2625360ed3ae1416fd4705d5818053d26314e00706816f063aaffac81c2a840e6f29c4c047ab879e6cbdc7ada01552da5d686f3d55784558b4e93cc436c19aa4bf1fcc20dfb3e809f12de99dd048b9753d216fa53f2facddf6e9c781413041e1492d09c4ef03ba364d5437ef185af634ae9caa1264d7d54fda254ba87d15d24b6df8a1095fa02d62d2f89ecf39f127e861f4182c426b36aec5f29e6b5f99bf7efd5058a53994993753761c8ce800fc1c1a5b655ce2447f03b3f2792578c8476787a816d49c2c4e19c8cece6ea827b1bed4fc85102d5c422ca20554fa46dad3f0547811a0f2f82e6baa38b71849b959e9879a106d02dc320052f884d395f243a26c49b4cfaf0b21d8d34c51fc86951d9b47b9216741b41014e9bcf27cc05c2b591e41b9d5d97b5f9f3885f9d13243a48b9285694f8730426990bb19c7f901ea8effdfafe5e9b7279e22244dd3e207d5b0e3ac109c1802541522509e5b9fd371d4af0ec962494472e6535718971efe16e4659c6fa42f78da6dc61e60aaf66f211007f8504e4c49da82b10cbd0b3cc0e0865d83331f60232deeda4608a3b48f11d8baef4897327e2c016e13680cf3b1d0483db380d5eb9688a8edc0716c5a8c92d819bd3cbb59a68fce9e4d20dd85001a9e21069a87d7b0f0184a19d0b7293e0a055c447dd5b1d2bfb6986476d9fb56ed25bba7d5332a26a30e78567aba061fd0bd2cc6a2687fb819286739e9341fef4f08d3cc32db0d8be6130b7bcfa9d1ceee2438c61576c794635c57bdb8132053e7c6567c20e4471164286a0d989b390e72f4f08654582d98f48bdf620abb8f3b05df9ef470f48b47a07a8f230a24562ca5fbaf9b228056ccc1fedce1be56171e873220b751c8611366ca8e3a1f93c33b467034c9074044ce3c300a28fb594ae44cf003fc3a01e1fd953f1fdf3eea679896a4da75c75cad2dd7827922b19f72a68a6e376f6cda897e060aa6b6d41d11563a39a90512abcb1be24518853d6d2819dc63e5d76b2c7991b4286a60352639304ad2c80d6e88ec2717e108d9e5179bcbcb8915ea5acb137f6345f435c8c0a003c45b345d8b2c88c2ac2e804034ee5f3e80d5e2cf5ac9c3cf4f30d8e7de97ee1651373a9081fbc13f0a6ea98b77aeda56bc7f9345aa7ee16b36c2a0af27bba418b25a1267d66adda69802f7c7ae51e247faa6e0ec8567303afc6f2b9ccf1b63534733f65bd8da31a995f42018de28972976268177298232bc02208c92c2edb0487b4fdd9a04b83291bc55b6704e4ad89d669d72b72e087cac6f22dfb171021635ff34cd7b6a0b72d971d3920a0aa23ebb545acfcdf03075f809e192af0090852d0bbe3bff22416a4f25d0bdb6cd51e9901b7d2936b651d93e9c08b509abfe5d7226c45ed77514dff066b5c3cb7d77aa949c7ce50f1f960ab5f3df69cb51fb9059a344289fbfd82b34c7e36ac1d06c6706e6c325b1f965d4dd395247416f834cea05f4438e9536cc403ddabf86086eb7f4440e7ca480f109695b4f1cbc9b0d2abc04b825157836e25a7f34b4646208d56486027fd444a0186deb5fd791c155c6b01754215d882daf4f73cca77e4b015ca6d8b3f18d9657421b81636c91813f7b355972842bd04df74361dd9dc913e0a20e9eb2c482c88c97c315ea9713723caeb2cc1274b4754ecb3ee2dab3ba23d8108231f656e4f1b538b25225398fe82a73a614a36e43c8e4fc5c4bc9ee3af621430f1765368d026e93ec0f4c9c358ab27e8718163c11a38ca72585e0a00278962b3671b2e5ce71b37200e9faf463b1ae6a9fed3e2e1db55930627f1d289244ed74539a1b88f39b11358adfd2e35d0f17e590f0850eda6b22cb7561c9e49aec1c5b9585150528b5e3d594d9bb52f62223a77cf61261b01b90288ff3c05a0a87b56228c741dec86a3b7fa44cff4b8755b3a3415cd742b1b17a0c1224fb2faa9529556d191f92560729a93586a0f73a5afcbd0607cd013fdc6440fd231df6b62d234594834282f54a2d65e8095cff8a7825acfec098bd8c78112336288ab63f3011ce758374cd252e089ac4c69a7ec285dcd4d228fe530e0302f03ddaeee20a085122b746292574baf34afd1ad3b5ea14483177f2c876910499055b18487730d5b7276910a2ccf94d7422ab18493e7302450c3e4a69ea59c0310037c03f205ca191a2f22c7f47632fdb32180f6ecab5f8fe0a2a4a33239e9da11a811fa617c402ec207eeb8b267569ed4ca92c717d5759b20f314b60ab7c47156744e1395175bdd545be579fcbf841a0e76d8de5215b672d85ed2ede8afaab9ce6832ff6675151421c3c4d293f326191718c306514916c6c1f8e2fd72387b4a18809adce8d5b0fb65aa041edd322002c222dcb62e60b87513e13250099cdb342ca3ecf005488e7b8f24f309d2f111c0da192817549de3a8acabbbc6e2641c1c78ca42337408b6e3bf15e2e65f5d0a458134d317e25e1a9a3198e13567a7749dbfb952d5c1db7221ca6fded8be18f6cbe3110b70c9fa01ee78f74b74fa0d1fa0e9967bf1919f3ab8e2f8a5be225bcee9cd0df5a6eb9bdc5448539afed8458f944d55ce20be40909ea5d4a4a6155127976cbe16692bc305d3c3fd1e73c80096692ae64e00fe660657f729cee370f1bfd9aac0ab642ce3fb789fabef5f069a3cb9cf4929e67a7e2a7f9a4f3036c74428c1de9eef867d87a09e8c1fb8c20be004d9444ae03e2fbf9281d702735d658b5525c1afe4a20f083bc9be2f0d2e175bf22e070d3627951fc5b335bc4d34a46e7f8f6da193e8dd6219c04d946d788de1b65394dd4a5a04648809d0b746c2b5aae8a6ae87b4778f6933f77e1931dd8f241eac7429d2bb05d252cef7dca4c452670aa617558ded6b8d4c6c5aae0c1151130e09c2c3040bb52040c58d5f1aff96847189b7863084aaa95497b058cb9c20678f2f66d9ceb8e573c086c7f9abde1ea6689ff76186113dbff09f621124075a5b8e0b9878c6ba8b24c2c16886755a1768aceed1034f6d455b04294a874af654f3073bd32d7920750d15a0dc0f16da2bf73628b0e9dce9c8000077bc36cb661385c2d7a040ad7b8f9a709e8a227c35aa44fbfaff078722c802bb1a1f90c9405754978d24cd0bfa563d09d7a8577f6b781b94239e658574bea6ba0c1ff5049304666ba1c19385a0f4dd3555d7b42522e72bb0020a7196c936c8502163a9eab288153e96abbb8737a17aaebcf94e0bbaf3dc077bb5726d159de5bf276fa003cb70fd8d408752399b4cbac7cd58084673e1935291b8cc8b73c07c3dddd8663c53d037e685fd7fba9b44d796a169c8fc444b34e70732c7d397f82ccdbb5e3bcd9594f6be5b63ec7951778f34e8c6c5d2cc1ce0cd6ad86e0743a96af89a81421dd57ee02050eb880f230fd434b71edbf2ce9daf5bf7ae209a9fc48871989410311428de71d6203b10ff443533e6cf4fbf16ed777f642fb4fa1533af78e8f28a03c51b6047ab42837cf443aeb8aea0f900e27298bb90da6ffe375c9406b870e75551035d4663f55c54531ea53fdfab38a5f5d86d1d8d2b7b4f2154dc7c7f6cba2e67249f580193be9d0e5f4d6c1a050acf4bb856305e15251db9592203b7d8bc5740b9a19465d468472c3995e0623b350cdc0120ac6104a8dc2cbafc7e11a5f767450a98c909253d3e0163003b8f7b567507636feb377338e8ffa24f486b6d93b6c9266413b2f7967b07850b4d0b590bafa24a8246d945db036559e8d8b5bd1cb92bcd631c334f9fe46d4e74ec55445dc5f2c857128b0a8140f75eac4d202b13babd6c9777fdba92b4cbf5e9d6c64cd96bcd44d7eed5eefcd50e13b5e9a26da6466deb60d6e47491769192e9a688ae1da6a7a972438455ae24b7de77739a735e3c679d5eaabf598de97622d1a41dbb202ba3f209cfd8ad83f9f64ef64c255bb9575dc91e8964b784bbab8233cbf2a8759a269a26344dbb98e40e7b8e9e11dd893c656d73f9c019f3b7bb94e40ed3b2f9ee4a82dd631aeeae2419bb767a0d6bef348a67a68baecd8bf4ae776094beae21faa46d77ca4cb7697a15e1f9cb07bec09eb281481bcad691b210164fb4130dcf8c3e3f61d88447c77090f2c433ef48a3cf93135cba171d833ce24b8c31f64e9e8ebd26795e7b26c221286e878304d2b0687a86bbde91b1a73dcee92290a64dc7de51d02b1b031acd7cb797a77c439047aff20a7dc246a34f9bccf7a28b6e5defc8938e3cfdc9479daad6a75f57c01932c90dd58f6c8c452bbc30eca0cdc6805e475b0773a6bd6a176d77eb48f98eb68e94a7576d93794558d6357c7f35ed322f6bb824fa8c16d2b9a51adaa96b983a3d4d1e6da13f3b458789d847dbdb709072085f57c017d8efd65d19c3b6eba0cd6259b72a5a92a2e68b2a50081d8aaa5c8b76918f93940fd2d82fe65d5fb8539e2b793ecac8f3de7341000fa878dccb5d6e1df9b1cc88855ac9d0ab550be9247410b8d349803b425ac87b17dc0177c015401bb84307d5a75a5191542baa4ff54903acf83d21c7c5051c1714ae24ae0fb2c20b63840f6802d4ab0af735071f2c4244c7878e1a1f244282e0f0c082494f911f3a363a92f8f008e981f38385911e184b260f08694c4f911f3ad246ea48e2c32324f688383f5818e9d9f9a124c9101ed8a3c98f91fc8adcc642bc5f45ee7b2eb8194388fc2e8568eebd6deba44c631965941104e3b978af707ab1a9092ad598725fe6c6d71378e8215706d902846ea8b56de2ec9b394fcd29a594d463a434863a916994336ef1ee902fc78d9a53a4a9e0dca9f58aef750c849889e6de895c49ae2b2e9fb6b9ae689b2bc995a4fa514951e9d09c4a0a9a53fda87e18b9d7c8ed77f76a0edae40ec76ba205da5c096a8b765902be2b75e36bce127ccb4fd950497d32e6230c427d0c58c28026997a23314391e975c6f9256adcdc81be7c0e98a3ac6ffc9e0bd8cdc3535bddbafa17f14ced539f708d3e05a71258ee80b437a8b7fc00cc18bdccabaf4e5997f6c6f48a3f00f3c3dd8d49e12efec5537846ce34114ac02c315502e69634987f5da297a12e4f23f370e90332bf2b81e5876f1de2921230c77f40667825309afcf007e08d3eb428ae415de68079ceb4056113189a145b00020c966ef6e47953e1e4e4f92e45e6485d1879daa44faef1824adecbf55ae6df0f4b9eaf459eef4f4224ed1261929a6521fa797a59d3f3517933e769c30c4e31f46d3375e4f9ae8a3fdd327bb6cbe348b96bdafdee7b795364328f4bf4f28d4573f36d63c9cc5c7164d29ccdf3550d76ca909f1208599327eeb43c3fdb06b6cc9348f73e2679be8a2118733e6eb781335cf05e409f6f163c97eab3af77180ad536f171d4411bf55aa8c7cd6ed42f8c6a1bf1bb3032658da0799e26aa9ae834c5e9cf524cc5387ba8be8e44979927e3c9987f9f1dfb8de9847008f5b1c4aeff5a62ca49fce41fa4c39472bed26dfec6d4a7f832c2b332f2b9984a6099c6d76e1244129c0199dc15d293d179bafc8533cb1c5a9152227cf36569e3b92f94d11d85d112f10884b8517ca3893773ac216b6a9a6a8a1ac17c1541e8d1568626cbd305641aed023005fb0e587cb0e7abd2c4589658092c431a0ac22822cf746863229d2fb6f45cc9486f36758a29757acadab84067a4151b3e64914516f09a79864a9b5993a3129f4ce42727bf0754b98ee8ac19d9182977e4107cc6109a35192577443288cf1864d4269f909278135f20b1e87332e3cd6d273069434491cd833511266d90b6794831c31be3650edcc1c524a5618e853a4760214f2c6349beca30c31be3159780322719e207b2e2c277a902c54d3ede2a672f0843189020894144224d0ba164d99c55761494d3644d4b49219148a1d1898692611886a16428d989360202040c5ff002292545b3d65a6bb58ca43dcbb450d5b24cd3484cd490bbecbd97108f15e22169dac948cb0ec4910b47279a966559968db4d1899661188661d8cd50b2a3a06427da6874a269599665d9485321a58c4e545246271a2914229142211229142291b4ec279a9665170359f89363173421c03668dd83125017405c004de1bef87e03680b20232023dcc546a318a54814f2793256721469a3d169720585b2cc429e7ba5e4a8f30398135be26b2834ca34d1dc4859135dec8a4e507aa058880371461ae9dab9240b6fb20ba405ed0265e1e4026101e502f59048292aa5140cbbe6059a19e80a176405950b5485520fa339c2d94d8847a4591ba38b9ed918d1c908530b6b78b8660fd7c42a1011108f0f55558198010c608b440f3fd82336d188464c000c4b35036ed293f5744b3ce840d898ace7aac17d73f16483115be281b05c7311086b23e6d19f0b92b511fa3c8a2502084bc4e8a1d7ed0215c17834128944225168044468249a1d29db5b7b15501661941c22daa50dd1b5a3d8184d84e99110ce7aa6f0c30fa391482412755c0efd104468141a81a8608108e29a5b070127774d0ca3267532415368d18272a2b564a39696f991e8190e7d848910e14b2112291bc7b493674e8fceb433071bab86764fac7932769e8ce9fd59d3ddddddbd3d5350465ab3513b58e824c1417233e10a24056a554d6191e1544186ef1a09194e1dd3e661aa87c87def664daee8b4c9560dbda92fbe4c41bdfa7badd406f336c5746a7a0d991bbe19f90abfd702822c2b5a81d894cb344354a76a4c5742eaa88e822994889173c4015430b193999e5a1ba33cbdd63a5d5757dd6d4d10c5d6d688204b847c9fa2a6806f4a8184436cc0a756ebf68d2d55c2c87679af1b243bdb8b8879492aa1dc6086a91bccd526af23dc0703af2ae355b99bad0d6608c8c1c78d08a800c880e7029e8b2f375e0b3c14c3eb429e0e131fcf7c8f9125533e150d150d29a8d7f519a9531b43dfa26381d7adbf5755086a6dc4eb7abc0e3fad57ebba713d9e5edb24698c943ca01d6b8dd575590c34ab7a591830605897b541a594f430ca085bd218c9025fcf041f234551aa5ed6aee1c68bc6170c2467fd3b0bd722e6776ca3b1e58136d2a51ea90d665b6fddb236a8c757f571ebaa7aeaf7b24e6d8d7aea147ded5b587235680c852ccd49fcf922f6cc3557cf2454394d1aedd2f93d9f0cd357901b7da0146aac955a20f96450eb8fd12f59afc8c7036f756a63ac532a6140075da7ac8d7af949ce577beac2b2b9faf9685d1a44cc4c318c1104acc03c17fd4907157d67e16200e01d06103146fa686d5c20a767cec9a2d4558d20768c6e21c2437ac1b568917b4850df03ba1bc36ec3e96f9ad6c6083a2ac719ea4dbdeca2e10e62541952a739e764514a5f1e09be9833f453b63ec1193cbc17fd18fd5cf45772ac024e34b9be07505a298aa2a88a06cac650b5fa646d4c7fb0f36d175a61fab631d4192eb4a0fc011623eebe3c94333005d38c2ba495fa9eaa454975a2d676ebd32b6b4304d3aae86463e89cd5e32b9cc5fce24510f175b970ea7bc054efabd19748544062b25faaa44237b8fd97e70df9eecf4c088bd8f75cb47c904e2dc8c95bc895a42c6d875ae1fd9218cd3d1a319a838fe54ea8dddd2d65655100c23824c618615733d75cbb48ccd25cb7c8f3709a302d8750949443a28cf209928702f20972489443628c924a087127c9b23b2e91b2e392aaab9886a824a601be809f8f4baab8a43958bdfadcaa572b52ca29af22b7eb24b9c33169f4a0d183860d68e0b40f0d1bd0e841a3c7bd682c883de19a024c73ef3a3946fb63be5f52b8b87934f7a470676e7c11b95defc81d8e186315bda37540a0b97e50b88de39bfac852274b8c5b347745e1c2772c195ed8b8477e87fdc610e782c2ede04e7e134e17183992b50b842dbba6a6a62647cb928d17710e981b431886fababeae01fdd12bb44448192bbaf679a56c3a528e820f9182a7d0b49fbc35a9bd42c86533c343ccc44528289b75d1565f29cac6a09cb231a2de4250f479a08d41b12af8ebf4d4a7fa0b4f6d6f305aa4df0d664bf4be0f1d07295b9f2eb631f3fdc54cfc2addeab7ba2eaaf57a76cb6e33b9eee10dd57ab8357c35c25779e1ef363adcfaa193c34d7b68cbae68abd6d5dcac3fd93498ddebca422125a87c399143a351adf7bdc1df6e1b13c2400f6d718bb1873666097becf5baa0959132f6d9ec9919c86ee79a9b571bba2ccf48297de8d469723784dd1076ee2ecbae375c49f193198c9430d4ebe59b55db7dd9daeb82bf3678086d8d8ae52b8beac1a597dbdd2eeae37653cc8c4a74a023d738a9e6d136cde55457a97264fd55b7cc0897fa93bf53d63a6db07734d7364b8821e34dcc5e610b9e0c7873d1e0529fb6be037c21e1006fda0e422e7ccc69971f70c64dbbbc9bee7a699bd82277b4e0c9a02e0f9f8033e8e5a18d8ed66942c2e2e5e4d88b76f92320d02ef7f21420f54bbcb9fccdda65742ec2c79bf89348b5527a73b3c58474441fe169833d48ee16daa08f0eee642cf2687b194a98e34dc4c932e664294f8cf8c0175dfb60eaba07f07127d4161595ba31de0bd64a5fb2f6b656dc1dfb5922aa5f7f95bade25b531a2531b037a080a48821a263ec488e8759bb39f6fd0f67265a998112e51a0c30e0729539389e6eaa52de2cdc44fefa9da2d766512af2165f089b606cdf5d56e33f6f5d42a41658acad5c6481ba97a98686932b435aa15af10bbd731bb85e8451b759858ad8d811784e978ecaf39ec3848b9631a9722b631737cc44c34875d36d7313291ede1067af5b1152b4165db39912b8c15097c015fb70ec644f8beb5314b80acc38d367737521bf0db6473f24c6e94cdfdc29b830a25097624e8b9b8e2c629f3f21b0384d1f32247d07321860e94a3cccbb2b90b098c9a78a5e17659961de38cf2092517369412ca28e6414ab8345e71b8d348a6625f70b84db0f7316bd6cf5febd1c6cc67a4ebbadd3a9a6cfbde7b99972feefec54d93a90dabb6d0b6d5a6c915e83a75d9db2eefc210a76e1dc4c9efd6466d0c4551d5df10a28be42b4993a70de6b7809857dea4a35e69b8f110a4842b3f77e0922632d3e690dc9b9f135ca0243fdb479e8bf7264af26f08ea0fc398301e7e015250e55382bd2aa680223f0bd09a76c9321f5eebadcf95eb296787c4dd5bf8badcfb420fa9c47b5dd8865b5f7d2020dc7a5db2ce0b74499718bacd55d6eb55857b6fd55a65ea4397ed5292549c76f05e62cd3484947a37a8d39c843f8664f914dc91a08ff6116db2843ea4b8d7a9ea34c693f15ee06b4979d58f4e793701e9944aad1d047139a44fa3b843c8f241bc9b9090bb89489653913c19a1ec1235b67c31d75cca595edf16c23011f5a18770ad416c1dcc298796089a6c6196e652da055eb0af94d73be94c39938f286e75fa145c3d9e657b59866eb36c30c39a287d6412a9440a69903472937f54ab866aeda11ebe97298793ef567ab50b0dbdbefa7068637e580367b05c1e96009ae0b90471d922037b47a25e4b8d8fab67d9deab6fa9e76a85a10aa10de177ad6a5916f66aebaab358df5e5f41d805404b104184ce823b98ef0b02b32cebc6760c77a199d0310b10af9411ea080a101bcb26771a8be664b748d95c65a25d42f8429d1fd007f41144907ee1788a4823ed02bae4e192489647b27c10876909440291413a6335f40fc85caf04962bfee1dd94b385fe2c11a1e32e62979f76daa50269172bbe481d978b0996872e5f4333403c07cc419c055f4fb8416cf247e892419a135d4224901890cee5e1f620ccea203c139176e1e13b5902c942b29c8664794b44e8d7136e27756442782674fc19b9d39cfcd19cfc9b934e962c6f25cdc9735b2fe9169210180402d101027754de62c1d087f52a81b40bcba54aad179d6e628b3c65c153ce74736fb27c55830fff614b62cb01f386736cf57a37e54c394f868f49a75d7cb8fcf4a35dac4b9a576e5e21e595bfb772794b56fc2e8c9c135f60cd9453e30396409a93b707bd9340a2c869978639be5ee64c3eda45a7befa00cc550fdbcb3c6cdd5392e557b6ee66b99b72b21420599e421f599eb4a16cdd75b2e52c41652311ac691172a92e8f040e987ea1b185c66f0b1842c88b3b7a3b9225e7b98e656243cd3437d91cad616900cca0f2c83d7890b2c7122a78e8c8d6c6c095f6894aac8d4b6e624b4fa49b63c634883e9da4247b597612f1e58e4e4239017d54b53c6d1a7faa6da6de892c5564bf9a5e3555a95a455aaf973c5c563cc425b9e525eed30ec7d5e1b824c5331445c634588d4bf53489dbc3b14bcbe854557109e5e15d79a04f22bec094ded19cf2d72f29f7a107bc823b4a276be2e115ccc4c34a095f58fbd01e966549a924fee46e3e47cf547722b794ed1395c019f23432e9cf292ec9937e5a322ec9d3fa64e1997ef5e95d8e39c54a5a75621995c017f32a9b4dd9bacfc3c496f88b3b4a2f0aee2eee48240d77c71d37c21d17aa42af169da12edf732e49d23593dcb8c371493c43fdd5a2d465a8741d7bf9e393882fc737b6c4c7eea4b89dfe8061ce318dfd29ab83301c82c2cac8cf54541ee6c4df18d30067488be3ea2419e6904837c7aa7d281b63a98baa16ada84f8a7a758b4e365d27c9fd47ea34c4169f494d72b67c961808e95434b92b1cd3409764681bbf1b97e4b925d11c134d34173fbb63fcdd4a40850f98e4fe61228cec1f507f145b99670abf6e69d1dc1586db3d222dba97058e249664f922124083043482d4f0f4842dad7c9d46345784eceeeec6483437e50491609281e6e6a439e699688208ac99873afae50d316ff2a44005da65a25b115c9e454c4e521e982798f314e31c5792dbb23b43cc447373e67858c09c095252c09d3c4d46343715313d0c792a439e2638e42902af6582c07331411fed32e968179907e18e97bb3704de4c873c9ae40eeae4e94c343125a05e65b89d1c9280767927d13fbec013bc96e92dc8d32ddc5119e409e2209332863a9e8be94a72a7c31d2174a220ebd6046d14972c6951eb94526859b728b5dd1d638cf3515e578dd99aece9d6c96c6573168e375114755dd7655ebe70c97ee68ab7945691265b1b8e2b57b89202bea03ea81e10673621c1cd9cb3e7e79c73ce1963f6ecd93de7fc9c73ce391bc7782ee6af2bae9c308ce6e61c43bfc732230e5a702ccd09d19cbc01f2001e0cd013ee330223cb438002156897d23c063290a30978c9e46f286b50b343a3b81dcd92c69718b1459ec6a0f0bd07697c31c06b9177c29542963286186e8c2c5bb4f0892cd0c11e4be59a9332e68ed19cbc1059bec4e81629c465863b3f25a05d645e8411ed5262394227032e727b7948ee9ecf0f6a72f794cc1ecfc55506967679f575055e0b7c927cdf73c1445ea1089222b9be0bdc57c50f244030925f93fcaa880249ae5847f3ccf23a854314a0a3904ef4d3a14d9e8e8354a2d8c6ccf414d7e4e9b262d6655eb670a97ec67abc85234d9eb6eea2c974ab56c017f2d3d6c589490c776870029bfca050939361e437240b26b2374ac3703b1af25d21cbcbf7258dfcb2846f092384bdc1c795e6a43c921bdf2cb295003f3d52d434e10e89dc95261ca43ca95f7208eaf49edaae0f2e9da7d73efa343f33f53bdf4f9699be34611b3353a730131513cdd16bdba85ebf5e5bf4de3151b883237ba35a99da3b1e153af5908da15e7ce91dd0d5344db35ea569f3f74eadc233a35b775229372e4ec15de751d73779620a539466dd86655d7bf69df802714011ab319d3a75a875f730f152cf34919581a742f686f614d034af95993e337107b16962184b3c51d7403646344714455158a36962cef70eeab37be42ebbb6cddc3b91a9adcbae69cd2377d99caa4c7b36ca9ea33315638c233c43c518638d7bead9b56da228ead6c553f6aa66539bdac4a5fbf9ec300d71e24b83709e7d6ea257ab775aebe81398e86df3049c9155b5ce8c0eb20b181d7498065dc2aaf613f4a64a98615b4793b1471b83051d4cd293e3911c63f77a60cd9351a45dde903bf4e4173944ec20099e0a72842fa8418e3c310a6183919c8076e96811f388f8e2c357de511ea20f383e1e30c542b4981846732c99e5176c9f941e401964c78831a7534a062b23659e280a279ca8eee9c6076d9a83375d00f81d448831462343803a601158243661823be1520dfa89620804439d1a5864e776d0a64896a14d7ca141a91b49a49fe360348d2628b4e91618636c5cb2214b35e2a93c43612432901b57a0658637cdc1439b215868b3733b1af0341260040426869101243a896761863637383007ea080183468873c0dcb742b8fae50dc1d202fa5c3ef14179e1c883dee0b5bcdc613253ec782d2f4fb8ce49a2640ee48edb0b1c0225f73b073c599e8ae276241d1d1d1d12e4c0ab6debc8934814e2c8431c263810073261c2041a8981add3405aa77ff4cf93f1ee146e4723cbb78e8e655d4a6ed73f13ec9f5e021ae0bdf4cf6b918fe90b81090c347063b8174858b852e8e7843abc1788d3290f061038287e03520c2e0b4c90e5f65ab21cc0cf91f8d23a47748e407c44477e073b5104e1814c7ebafba2147791e67a9a33d247e24bac411459de0e21cb373ed23f4d244bd9d12ed22e90c239e77cf3689779299f1cb2bcec600fe8a7a675b48b4def803db007f6c09e2c3f872c7fbaf7037f32067dc01f3008e4690933083285b975e20b29b6c89348f7ea64f94a8a2ffd135be429bdf7a704b723492066717fe2cbe8928afef393e547a2ade61ea637d80307e240264de427b457a113b4d3c65415a594d2377d9fe23e06edd6e5c8f6d8f6ae4893ed86e3ca17dc608f6dda986ac22bcd21b910dfc6544eb724b8cd7335c906f5b174924996ffa46f9a8ee4ae9b487ca1b27b28bd9744fa394e421eaecead23e579e56915214fb90b8314e33c1c111d3d768adb45253ba34651495939175f9ae26e54d2372bb88351c2ddeb49c11df788a8e0eeb87b3c19ee6234ee2e8c1156c251d3ec41c2111f791b041de983f6503d534f4f7c8994dedb33491f5247feb8892f3d84d7228f0427b414b2fc8467106e277372da454e1d691b4280024a2a605dde08ae050c21625c97a7615d4ad7a72558349135ddd246de481c224f86e5c3a642f9dc86b40b0877f0d2d1d6367b823638648342987041efa0902c799a93541457d43aac296e078964083437e52191d17b7807838777dccabba7bc23a99c083d912cfb06460fb883c17d05773f790aee4879d42ab8bb79444737dd223f8a4a9a49dfc41749efa5f8262727e7e522cde5c41729e54bc12a52f64892a432b3366b82db491e2559be6b1e394412a1c9a187ba2f7774f1a66b36c81eeda264496412b1883fb10975492f532291f8671179169167599bd637cf85fc95e4bee64ab87b4848b87b466e1e79c41e3eaef59393935b585e1f7e42baca96b295a8bffc2ca904f2cd862703cfd7c9c6cc4fd50f4a51eae509e5f3f328372a29e08b69ba354f4dd3aa7e4cd42dfdecfaa6eb2164f9d1d60920cb8be4435b2765c62c21fd22879013bc91efd13a9acb1dd4d13e601dd706779aa310673e9b9b2c9994fa079b4a45f1e2b5c4d3f8228bfb2247ecd575fddab8e6aa5715fdb5bdebb11ee55a76721d05a55239e8292fa9a01ce52c28a3d153b6dbdce8275b088a7b5d7494873699974f5ea38d41c1ef5e284d9c9c5cd32e4dc3a513edda75458982f2f8686b4814edd7c9c9310cc37e7282728242da5ec64828b56abf36ecda751414ecbaae1d05c37e5da45f97125426910ed31a7614d2cb996c6e74d0d6dd3ca2cd8d603adbae38dcaac22aacba3a62176655a32adab09f6ca1437b6ff5eb625575f24a24fa6834424141b9cccb28b844fa0c0ee9dc520d946347c1af39946327fd9e265f5b77e5eb275b0749dbd6d17c657f563b4dd632d12fd1c8126118b27eb71014173b08c36873fdec4663afeaaaba5bb1aceae271ddacd283b6aebe7ad44fefcfe85db67527af150d1d45a397f4a30d0a81439ab38e623ddbb48f7e323a1c8d328c8394315ccab06355256d48e78ef047d5efd6d1e40b026920d0481b8d40a2572311063a86551f55d5b11108f4aa128d5e5507814418e823d013590f5970a739eb34f9aa2e6817103386d43add5eae96d5219d1b3b3e04a915d5a22e1adc2afe0074bbd5e97a360d730c73ce59d1061da669608f7a9adcf852621dbe777cb44ebf806ef568cec269cefa81cd8700bd6ff523ed96c6948d012de136e4e91d7bcb525bb4d65b064f86bdf59e019c516fbdda9e2d6b6b18c01756f76cbd71bfe0b9b00e1272ad1ed9b2ac5b5696556a8d35dec233cd43b1810a287ed4d72e724ea9853b5f5324de831333d14864139484fb4ad3f49e799e7a3f132e3566221ae13a86d9674a6db416b6376ab62e2bf3decb56c6d8ebb562b5d699f9aa5a312c56ec730570467db4a1db79618b2bf6f90ec7d5590c5700d336e2d2fcb56e7157c3babdbd057535c31df114742b73dd560bf41b5f7e23ee6065c5882f85ad8b0ac12666edadc537d334611fb4b18f102777f4206b61b7a0431b38c33a08c3449b235a7007e814b3e00e1b313c635f1f8fc5f85b50dc3099b1cddacf8a6db5810e13e15d81adb562558551308de11275d0e96fc4d79e5eef64067d5a19ec331057d81f2fb8023803b30781e69429b80238835a3b537f658baf5aa96a59a05bb77654107e769ebe42100874999741a0c763a0c783224db616db40969e6e7484857c1512ea3f72c5e21f4b177b32f67a5df13dd05f84363f3294f8615686ba746ffad12eef51764ff5d1067adcaad747f5c316f54ed19c4ae79daa82584fda5769c95b3b91b278c6b28fcf8e5e7cef51959a39f516502d2ae2923d7cd53cef117735dee38df7083b2a6e5df523439095918fd6de80ef9e185fbd4bb332ef3354aca2014f45e2b823ff70d7012dc371c74232b39dac1863c45d8c91e6543ab10a92bbea303eeab0d28133de21ae767257490acfc4f74a9efe00c16be937e0bd24118f783246973804218e8ac29ab65b3cac628cb7b43a4cebc017f19595a1afafb607ba68b360cdc3342789f8d23c1104efa541e7e92ade4bac02fa60d8c39894ddf52e4f61182ed15b4872d73d3eb02656f15e600aa0cfd53df12589eec92d43505c1c17683be2b9b03ead0cf5990a7750da1b57a60e5360bd1bf05aacc72462254507e22fcbe239655a490167d40ec7f3b1aacaf2514921e5dfe6a39202cec8a97e641933a8e2a31af1239e8c239e0bf8f748d9573816182d62f0bc2117cae7783d30f1080c2431d914dceee6ee6ede4a91eb99a7d8ddda36663ac571759e9fb9e1c31484841bfb12976ccc3cf158ea97f516b736ae39ead43507f972dfda5ebe7e6e7df5d1b5df5778b30ec07cc9817494637f246c63e6d15946dbd51ce8a22d6b0e746cbbcd819e8d2efab5c9bc9c89a27535916dd9354df4696344b89465cf34cdcab25b2bb2f65926da3a27b2f66763b293ed657b72cbfa89fde8d6663fb2ae6d938db1966559349f5816954f0ed3f6c45edbac8fb693db1ce828dbdd5e86e99b84a52c4559f15a6b594abdc3f17ceaddecb30d3bb4d42545fd9ea2b25337fb7d28143af98cbd667f72d069b2b57557b6dee5c8a39f6c9a956da23f3bca369a3c12dd5b37440fda42505816b4687334b9aa16655114a5e829a5f00cac5820c910686e9aeaa3d7a6638ad893a74b9d523136e4d15c84dd9718122902633ca80957be09a70912696eaa70c0b92c32dcf8f98602678337cd4d8f1be461844b935fe010d321ce4dbbf0b8148d4c0991a9161d4ba656a653971d6384524222d05275ba892fb048b74c9f3a3884e34e1a32e1c021cd4dc7e276cfc07424a6e3783d49e478496a78e40eda1c71447c8143865c65b8f088044c2fc288768912420156214f5b98c290a7090e792ea60fe91ad014bdbda4fcfdc1d0efbd30147ae8de946edb53d3a6b42b6c1f26f4a2db0842781ca41c7a0c4188fb18167aad189561e744ee6872c4fa7d1006bd370c746ceb8330cbc660d50a508cd2c6d8d777df8d20262c5b83e6198aba42dbbd8fb9b51b51ba5524a153db3d4c0c6f88ae815c575c3eb36d5ae7ea5054efc85424b54e8c91745dc1c3a46ffa89def1c44d8eb6b120ee4a2f20c04a1de29bfdb8398a3b433febe9619aaaaed709b70b7734d4b32133c530716298e303eae4401f3aed323d3981f0b29cd50af862d624568a3b1d429d76b151e440eaf447bb543b4172077357ad802f2a7c85225dfc91e3af308492335b57eb9071ea9c0875762a2baefc862801034f902ab0c8c733591cdc3e063280c42996798e9a762941d92d7d7919b9d465e7344e0f1fb98d5c493f0412d94a1416690e1ae917bc190d782f6eb490e1bba7854b083c0e7e6e14781c8ccfe708882f1f59f6797aa7488f868fc20c478e49e4584db388e6fab2b75b55104eb02f2ddc8e7b3e2d321721bcda85e6269128bd9459ca1849a4dcb345b774243d688304069ad3c285d0873261895cd81123ed9df84271e7c47e793b3927be4420dd024f2f7189c23b3acd4108ed3cbc91fd6207a9e2421e39ec18f151e16d2965c3d72f728877870079211d4ae48f941d8ee74323865dd18270bdddae785d8f52d6573fae2b6ef4d606a5b5e22653a230673a155124913686d281c189048b1969e555e0d124f191defb083d12236dda5c5715ee90682e624027528a816e8953ce908803319083dbf5cff381a4dc3ff10536a15437f9899f624f4dea1ecd45082145e10ec70561146e079bd81cdc0e3681d5d6471e8d53aa7f1907b7d28dea668910420871d79dd3e3d6c8cc9f1bdcde583206e229ed78c4c7c747ebd00977f73eff744b6c96bc12a40d64f8696ed2ed65081bff547183dbc1233f4794c012129f25edc2a45da0b5c18d36cd451b5cea5db4c93153fdd34db658a3a37b47f718691d16ce0a2f23777ae5a326234105143f39c668e43635c448ac692ec8bcf57e9a8b3ded62e16e52fd94a8a8a3b9b823c79d76794d720777722491ee8d3487cbe141935c80fca8e04115b942c8a35be2df90dc3d1fd8a3737e744bfc1092901c630492e3e395c585f9074e2c37189658614a0d14f28302097c3214741ca1f941a104445870fb2508826364073a4ec88f8a9c2446b44bc9c6cceff188e722c7487e54e8a048eea891dc50c7b4d971c303e2f48039a5f8a090214df27b2eae29dcae45862c2ba4eb4eb0a239bb6694573681c19515a498c808a59432ce08a18f1f3f9a7b3e9a0642086447c80f128a502896935352cecbf91989837432595ebf00f109c4167d624b9f481ca47c72908d39c1a588a34f64d964b74494975e7a25cd93a294fd4494b89fb032db79b86c1750fcca7b47e96d73336b8ebdd6138aa2541ea6a8939389f14cca554e663c518911aba8a448159553d72e314c479f6c2425354f4ea2b66d1dccdb4156e68747fb43bcf64e931965329eb278525454b6975352289a26e2a736bb07b5cd9cdc891c53a4764a9ed266fcc9c9b14649edd88cda658aca898665d48e37d261e2b669c7189e939ad4c9e7b5c3b40fb8bb3d6079ed73d34e3a4561954f7184af3dc32aa437e92425454bf9e829291f1da653524e460781a4e86630cb6863bccaa58c564b9130a5081289441aa56ca47e62e5d9c6032e6d2594bfbc825f73a02ba350944fdb9c9ce02bc968c4d39c90e6668dcf4eefa8892f2ca7e4ac9970582e9fb6f9b9aec0a249f4e9963e4dc11dc5f161c4e7c8758591ecbaa2b4f251d47cf8f8b48b9624255bd93a98575e7a0549345fe9621e9db2a54b96e4557ef2d72e2a5449aaa8dce8ac72d99ccaa145c125d9f58e946b9a06514e4e489bdc3ad226f3320a0330ece4e4d994a7e090ce9559654bb9f6948d269350b49f6cdd057ab68db00c6dd7056197f4b150f844253e160a1f9f5993f9e00e400a2a5593fb3f84d81fa0a03c5af90352bcca880797a270907296a333e9d3c664299f295bec892d8d511845c989634f7cb9ba65ce9eecd496e1d28ca51e446eefbc823f7e80fe5c6ecc15c273419b7b35d97a177b8034b72395c4887b32892d9bbc94cc192325b13cd25c37d5e4fe64125f624f0f2152ad18127a0768b28c528b33a25f988e3bb85d0b017339d22ea3770be1c97850fb044f4e8e6d206deb62be97b6d4dc68ced27c7c863b9a6c8499f8c94cd8984b0eb7271ae9179409f74049865bc88f0a1f37395214759997295cca3e239fdde6c87134471b4d9e18c636d0250a8e525268a30b6e4763d722df1871a6cd95e2a75317c60518d1dc7b29e6885823a2436d1edc3c1bb303222fdac6d827eea319d22b4efc927c0fbaa1f6a1ca1587db43daa51e16e99e36d247da0549bb608787479a4302856be4b980f0f9e48e25c308936cd3afcd3ab4f5393ae091a9e0c14e7e54ec20488e911f153b3892eb74416b9fb83057960c2b2eddcfe090ce9dbf588e52c6d722c77b2f0d782df1544fdd7e5c50b811cf89e311cf459c182e815148926147650a770f0e10875e1896e29f9c18a7396c5b70616e1f2a49b52cb816acc2a7497e43ee70240b20bf2aac68922395451659d821bf1fbc2b6ef2f3ab620c4c727d1af0b931e59e769efad46f6a9a72ff35c914fe01fdb34e5c434c212d11f2539613db9012c72b10e19973cece893c5fee38c94a6793393d4f41d98499fb062ab8f2af5df0665370e7fc24ffae2b67ddedb2fc3eb18cdd37b9719a47e3e4b636d7cd4832ef87e71e8638793ab529b85b090ac97d2824c32179486e4c41c963e57543ef932bf6de419b5ad157af9310db1bef9895b94e2fdff779b4e9bb5e298aa2ea36333d8ba26aa5aa157006755a3f3d3b6d5df5c9b4aa847a40bd47dfa3b5c6abaa4f577d64ec9fadb0374e7c89394f8e2eba28b6af721473a87cb7a2508e75ddd469caafa269e221a17549eee273f4cc25294aab57243549ee22ad3ed56337eeaa4f8ef4f494be5fa7ef115278fa5e95afacccf55b315f6a059c01c2a04aa3154d3a1c0f534a312e4daf6c6eaec6c1c9f5f62a21283a99e9672aee20a5b11e52dc7580a65a5161f5a689d247bb004aca3c49fc2e2f59ad803360f5c91d77f2fb816604519450e3cd7ee76fcd36238ec0f7374233f7463417b96e89a377a2d061e88aee10a2c31b458f2caf22e20b8b111dcb686b713f9a09fd7e6674aeb918baa88574b1ef46a39e61df8d463daa7d8d469d7419bdab67a9f51dcb4c3dd7a25d6a673796c8d22e236be30079c4b5b8f5305d73541185903c4317855e1fc58f7c17701f3a4c5716386309b875aecdf2644898597a66962723e678209ecba854710d38b2352e686f3c9e3c7a689b59e6502874686b744d56226691850bd1855c2bf381cea12542f0bd103d072967d1bd11c2f071a27b6a6dc41c8a1dc2efb910e1229a8bd711f1dd7d11db11303f6b447337bb4f84b3ed75cbec17782f2ecd7a37267eae75fad03b963c75649fe25ef439ab59e3539adf4a139386e85872d63d311811cff2643c11be9a2b8d4a237cab504874c893a9e3b8b2904c9db227b8f1dcf5f8cac2752d728421448e3168440b02814422d1655e16e1d2e833a2cf8fde16daeed6e5c8f7a34d849d26dfed8184b09505b3f5628cd43b961ca96a9be6a44e294afa845a93c18e9452ca9601e47703e4f7ed09f15ce4df0a0fef488f079c1303bfd8d2c1c071f861e51df7b2823b27b6c4edcd680cb1802fe2df031e179f849c042404e9de99aece892f13782d58c01947b021c81972bc187274401c72bc7572a16884375be1c6692e36687a9eb07832a60ab70f7b842bb7f6f18c7047ef39293dee9ce722de16e1569d33c2545aa7db1250b461b104dc724e36b8a4b9f86ceb72480be4e6daf34d21c7daa012c8e45ef7376aef2ce58f74945255e99c1cdf3aed12df39eda37fe438bd93684a0134b9e5d4019a4cb1077cc88d4ba3fea893c83209d0eb5425ee94b8f903a55c5de20a97aacfd09697fdd1d651b744a7a2beaac36ed11bcf884ef18ccafb52661156b9f5d2666dd4f7dbd650c1b2b9147c8b8262b32c935936a9ec3d4fb2db53d95bdae78839eb646b19d66eb5f7a649dbb79f0f7587de1688e810976a5c5677aabff5f76e5d35aabff755129987af7c84690bc51d5dd95eb74c11e854fdfdc55df5910268a6e9a3d32dbbdc8a78b94469d6191b7d9ae665165d62d15f73a2119ea95e297c6fdddc20eb958db1570d2d570c994025422e7c124dc43311af09a884ad55c54d2b158d08000004001314000028140c07c462a150342a9786bd3d14800d9aae54724c9a66499043c818430c0120300000020000c06010008c78502f586b75588bbc10d822f450c62711065e684fbfd3bd016c22b6f55d8ea64413026fc1c58bb8fb9ed66553c9f342454a2cc188084a8928c0278711eb55c55bc1b98937d7f2b22a1c2de9859b402c3767a25772a3108349a8ad1b1dec131cf4da8993ebdd94f2745b7fe97f406dd14bb84e8068fdfa0af60064b924cf0ba91efb859cd5addd1199b3abf09ebefe554afdf698a3405f3e98cdc9b4ace2ddc01427e6c754fabb2a9bc089fc4095f8f0aaaf0e36b930b4655177da3af365bd4842c6dd85aa31f3337e0efdc18c3a4a8c1e3cf6918a11709cace16e4bf95e2b9760b82c07fb648c6830c38198f3849e7a7c0110ef8264ce4ac489ac66e9cf45af714785a4807b33093934aad58d7e894093e15d8def1cc93c46c18f8ea2185e9a0115f514a442b832e5ec611b9b829757bcb9dda25ab34002e7d22d5267a774a5eae61e71860b9d2eec967d7b1e411d4cfbf9011069f6f4ae61f33d82fa4aa43632dc3dbb05e2f5f76616fb24ae947a2a5e4be11f40dfec6e00bd41611da7f5f4e3b4a157301141f9bc1d7b9439561144c953eac27b5da620f4c96bc8a9dbea2261a294ad1aab24dd05d971439c47abceaa9e688a80a95ef009d5b966f2e494585044b5e40aabe54c99e825a1e34fc7f9d17da37ecf49be47f9ab170f26c1205ced2a980a1f50731d3b8b5439eec82e5822e30582ba448cc5fe19f88f30513acfe2b20ed156f1735607d92ff9306114a8ae7a0fd4d580a28ed6a103416168db1808d61d173ead28d82bbee65094ca6f1d08b4801b35f37d9bc3a7325fbb8f9476f86381e6492aff2de288c0896eebb561296ce3c3e5fab76b293dadea3b558983c93b3b1b9cf0c26faba5a5bb5dfef69dcbc7c0b1370ed43d35eb2c9909dc4976466eb66a62c05b9d54661554ae6c144167aaa93e1072eda86d4bafdcdc3223655dc944c2e69602b676dcbbcae77022cf364d7685884a395073f6a65100c0d229bb8689f895ca8164055c5f7e7dc42e33b036a249655bf80b0adab0b5f92e599b21a8af68f99451d01299100bab27be9a07b249359d6baf376cef9786dc2cdb58bf2806022d9e56d9cbc0e688192bc8e786295525470f4e588347506da1cb7802d008c422a2818ed8183c02300960e259c18c36d125870deb3c6a9fc0a14f7b8e92959a62c3e3fc96f1db362a834774c90bc91162fefdf241dfaa026cfd9c6270c462b81996002b2084eb5cbf4d1a88f0440bf6a13b924f444b7913f85402f4574b42516e044c17ade12d8e83556a3e2a0e0ff9445e6f094066e26d83305800e231124dfdb49962e1d33c5a17d668466a3d9dfd520bc9a31c9dae6724e39e76aa7011c34fb63c59064bf1009199ae3eb283bb50569d69a845e6ad54056318a35ca84a10fbe9e58a51f57499df14ba5a9eee0489963e757c408dea6ca025c12125af18490067e074bf756b3dca978d0cc00798a25add13d067d613dfb305d0ecb167782e0eab3b58294591527854f2b1abe21a2da0f081a01d29679aac1c41d03fa883144481d032aee0eb7cc5589fb84adfdcfd02c19e071ec0617afd56cce2d585083d319335966200420b385ee57d52c24c1677db16f370b6a6d3d17da1ae03848cc75d25a19a086ae41f3c14a3ee4440979d8f2a45350de0b61a6b1c95df411ab759c3a185c1c52097b7d77797ea895626c1aa9ec21760aea838e85b1434b5b9966af56ddcb4a4a18df921130e502f717df3b6550179e18e65852ad11ba5c0273b8fe3bc153920cf2c4cf35261ee292dfaa70f524d6246a1df54bcf7317c3f5830abe6d36bac593d4fa22ee651eb9db72174845b880e45e4433a27f2a6a98128b2a613f0239ec5f6ab006274e7e53ed27421ae0463439fc881b5792e669f27b857bd02685b1e89b6085e1b418f3573216a502c1d2c5e33ac813c6f092c02016c8a8e92697b4c1639bfb8e7fdc80f5667181da170da77f089ba0ed63e1d394f444b30460e4187db6c225c0291779a6a4091ffed24f9bcd233e52fbc502cf38c7780482e789fc2150ad3bf85542ce8762286223dc14678acfdea6bf3c5e65504e7c3c1ed0a3b8096cca74d440818b68b800e819689fa670d38d36aa404c4cb253ce5d15d3bb7fb29e88a54de72bb086276e500ca881df6260a18a74a3ea6e0d637e41035ab14a903ff172694868617a5368f6a61ecc317482f7ef3c4e5738df73026597e27d6bd01d1c73ea034d8dc7c4b6f3146415821cef8713ecebe81d16091b35a47d59c583ab9a4c132f004318d433810bd6241d86d238dc62ddcc85cc0bb9abd5d94bdf1c70b650c49ad99fc045a9489ab005979e799baccaf78fe970010f3bfa04ad05810319513d22483c3f6e3cf5d2f9c8a946a9b89de3a65710b538b46632468fb6deeb310181c16b085d7a00e52efcdc6848b6c0c7fad3cf9f1943a9a439f27906d2906a5773934128612d035c2a4167184f9d947f9a823d805ef62cc53478b31c3f6963d97b58d840d1b3a6c7ced57348f124f6d0c4af13a5799d4d041655e5f412536279040c09fd4b525ba948d1c3dc4382ebc80784a8208a158338385ebda69f58fdf7c895e10b2b0a0f5b641e7651d16e53f918e727db58ba17f0d42929891e4e97136140f03d434f1060c7e9896a4322328e317ee81d5f56a63e64d11708ceb1c196a44001fc6b2996944c40e3aef66185870b8d3e63c6908ba21746cb9433ab0188cc3d0644e0e56c26095b7ed208a9efe646eca53f525645344c547a90d9725e6f4b6b5803a8f6ff29576e04aa010b32f47f2ea5f102ef94cc3c7fde2b35cb1e8927db9b87e07700772104a0a1cccae0cf4b883cc34c437f38b021f44aef1e0ef51a9d6e7acfe64be6c56d8352cf38b96ba5922bac1fe232a362bb4819da6f6b276920565491137f060aebd71242595e66785097c61cb4e782a136a4038a720342342782c131faf374498cdff41b87194bf839b2d6021a1ecbe9dc20c5364c3ebee6e685545484b8b282ef762028b23ad52dc22a65a191c2821c629489cc1346c5e33a95f045c5ed7a8dd2e477fc3b0c109fdb901cb87e4d4e686fbd6e3dff32730ccdfc113d3c88c8631137bfb4dbc84c31fca25d059ee1f7b1474863ff575e6f36a870b4d6874515b83402c52e3ee5d237f0b2229f6ad31d9e6058e455f5eaf318ef416ec9dd47a1f745224c50191285a457a10c035f9399e1ecfa1763256e695dd067cbfc6902473d2a77ac5da22f111577f0aac86b90d8f608638c552a6b0a957046ab1fe2146b40b664c3d5a625569efb12914536dbbebf561e34066ba12cecfbe34b40481dbf2c0141d851b3459aa84d71e60ba151da05eb51d48e42d14cea6dc530c29cfc010eebcdd7c46303d8313edd6966a0503a886b91bfc53c61e34062ef0a17948e058b55cb6470222df8ebcf403d87526c9b03fa67c20b8112482cc7d8172336609c46920a5cccf7d06d0a0bff363d02093901514ee301c6c3a9e3a7c74b9ce2125434a0b92f1b8b6cefad5c9fcd6fd7077a25f90bcc89f89e8f6043674ec3ab2f0fa880fad20825ba8e4e43a0207126d38ce03670aebc15618adc19944038e2ee9c6949f2b9346c3c30db6c391bc838bd101b939765c61995c22356f301a0585be13fa414190e27af22db59f984724f1e5c5059297949563a43121f408f57514a662cfd9638ba25df0a0311784a05e9c156688179b9747193f68dd333f26ac68dc7d152d875c9f50b4232ea3d302f45652eefd8202471632d4ef3a1339f789d7e80f46e1ad4888007629138f3668d26ff401914ce52eb7182174241af43b8282f0efd035e148ed218bd90571758e89703cd26e2029b6765ff7adbdbfa020548b7d92096e7f434c47ea16c59bf6dc263063731bfe1cc7f318eae0df61644b8331991192f9265cc74e29601169d7dec00e31cb84c49eff766b2358ae9bd5df80e438786d823130c92e570650b28f66ac2a8db7d362e8e0d984887b022519538824fe118ef546d043428cac3c2aa9c0ed94695d247ebc1ca65d82e2d38479769137b4ebde4299d1fe0a544ded112c5173bf1e168d87a0a4f2dc6934dd566b145b82f6169eaea8f94148f0b4680ecdcebb7414a3f43ed40bdba7b8e5d49f41ceb79b31995845ea6b52b39b81e04c47717f4d1751a77ba6e2aee8c2cc082930f3c88836eb7a1b2ae37411a374dfb92149dc9f882fa3c24871cf06f8381c87f2fca1da3e52882aa25fe5a2badec40e900687c8ec8c86278f615468acabbb01c8bb48f01c536813057b339ab238f1c68950b078e29d49dfe352421e52fa89df339a934c0406d1379eac1c7fa9e4784c4403065e0730da702ff5b917a64a8a2713cda3ba2024fea92605a036038bf0d32b0db0ad80dc968cc116941551b16a12c4b0b468b0381aa96969468debf36ccca614afd6c7d5b5b71a3c14ab3fea828a508ca4186db50bc0c412ad6e7230d628011c5c95a10ef4d9a3c981f86f9e44e4c80009e483fd8815cf382132a4cbe569f39ee0fc0322ea17e8e9530a287904edd8c6b93ea8b20b0d023065c8521891366a483480c19d40609afb4c1fb65fa465bb984400b9e1bd28278b759442862a74ae69b65f31f927a5d60e8afd8afce82b4ec2d7ada7052ef84af2e1c7c871bf2f4ae848f152bf21901a74543424630cfff35f777552bebbfd96a21983a2c1d11f27e4b233b080dba94cc4aff8ccc3a264447433ca9af3a7a37bf6e539404fd599545bbd3def7219372cec0a61e13c6588ce3bbf9336af57beca1364e9f0603187ebbd0302c5ffdd9d8b14f2524dc876d369e9c8015d4fbfbfa88fe209bf092ba0aa05cf9fbafbb5736930fb09ba2699380fb974ba55ae965107dd7cbc8b28771388dac8d75cdc26f1908725c02956bf96bc078e6fa4f169410f154a1e8b23c6ff82f20a8349b0fec99c923cf0106d349905005da5a4e165091bf86b1c0c48775a8656799239c8f1d2cfdca344a292abac19343023c0e766a7d1eb8206b08940061cd94d7cb84d601a01d3dc0f89de60c8ab6f7064ebc0305c11ff46db744cc11d822876731b5304b8ad92338859fd410100844dfdd578ebbc1599717364b83ad95d6b9b496c47d2a4f919b7931b34afec3171f3267fe6512a897597b184c90c4455e5bb564175e8daf20f8e4f0d74f1ad4163782ad6a2313d8b0745ecb8fc27e28dde439f53c9fad660d1be684b94d86f3f04c20e86326d2d83e7c986db37d5ac339cd38c22847229f82c9fd00d8d3b9d981197deb591087f510d5dab01c5aa0787091244b0710912cfb6468806a25fb47455653b6b4d21bf1ac406b2b75ba63869ecca448977aaa5aec34da54f6f57520d954c50aa310561561932d45644a0fd5b715a8bd4884e2290662f0107af7fe16f4c73029bd269ac886afd2f23747e97b30ebaa8457123a22c1345b4169e20dfdad91158b98a0306df49f1d21a174b194c08ca7968b1b4558f517fc8eb9076d32beeebb42babd522ac7912cd46c148533e2d65a5f1555b3815950a04fc11f732fe30e9a76f5c81db28130d366ef44034638916cca9dd5870182b85c7beac0387a5f28d33c9578491fbf6300776a7bc29b46d907dc39038b6975761512b88631c2d34c6dbf95cf8bcc9df50e3bdc376d71cfe97e5fd5d744ab31b85613ee0a85d168b8df51e4c30c292fab86e012e847f14bf7bc87bb72888121a9ac136ce7074e38c1fe466f21080b2b6129ce5f94c77b12322068e62c05e3bbeb0c562107e59117825e772eeb85ad38968442d663e934374d3f0f38eee44979c025a15fc1dee61a309084280bc5e206bb5e829b3d43eac7b31461230211f5b21de9c90857fa8ea66bc9873990ab8d5cb80c1530b5503987a0bd4241bc322523ecb0a60da45a0433f6c1b543639332093ba2644bf07ccb3acf5dab317bdb702a6accb2c5a28942387f71d567b84889aa9e158ff69e541f42ad0509e369081938e79fd5dd95754e10f09da63f7f8d78035d7a5a6ad74b4c9802cc84cdb2a76bd3a20313c9fd4011451c9709a927e6add04246073b033354708dfc01439f8e38fce45bdf6e9eb979327758b766308f140c1a1b9e80bbc8e31b29cd805de6ea69f87c28c0b7e1340aa94134e4ef4286c14a9c47550d1e539550f28225bdfeda8f7a07243f820933c9350d9e9cc2e4e05e04b41e596db86255d961a5001ead7cb95f242205f07820ff43c0721669281adc7e0224812a9c75a03a4b02d445b60641f020dcdc8113999450928f277062f604c9682748909e16fd7edd20ad6e3749608f81b3c4e7653f07a6536c0bef9b3da174958245332fe56271b91b6d2eb83f27c1fc615ea276b532711011575cc7342e99c41b0a73e7900195a1395a32a681f857f50017dabdecac1c76867000539d07d9a1e56181600de8463512a90e2d90b4ab3d00caf35fdb7ac2c20fa5a466a6c10c24acd51e89797c9d1e37e335b329fb3e09725148ec42ffd9d5efc81fa6321d330bd27144e2d113434ec9487899f8fadca778dbfd2d0894801a0341f85b4d1eb28d6049a6a4ba47b0b099ffdee5949a400f0d7804228a8ecef4d6383102859b7dffc440227de56c58640ec89e8c5b3e6ee23bacce8a9b22ec45d60b320ac4fa2f4073899f71ca70a48645ad4ca1998cf063c768b0c28e5c673f14de2ca2f1278c8630bb7b3414029572431bd4ed97d7ea46aad2feca544dffb423b3d9ea107fca6376d4e3fb8934bc027ad1f2830273f9ae2da9322e943db7e1fe0b44889bca4f4aa8026f8e75799784b2addea4b265dcf4cf83900566dc320b1058e7381038be2c4b2db64295ea79a615388ee9113c387be38c8079b54c33defa6aea5d3e4835d5dbc9559888839395e2979108c9773d68ec38b5cc243bb58f7dc117fa4e96f58aae2ade07aaf851bae801e390916303d85bcc5eacad3ef203e1fd4c7889c7c43fab2d52fa561c895a257767fbfb60d42eea2ded46dabc9a915b0d17c35500158635f5e094570b69c87ac0d62b5c9588a0d2e981e6883d72c35b75ea8fdfd6f29fcb21df3c952a017e570d4e4d7dd9614019d64a1c4433566123fcab8912324837d769dcdfb61044f90882d751e0fbdefde6ee555580768c4c8766f68f0b94b775fce3955618a33575ae63a1d97b99efa3a4f6b1ac465bb0b00425292e4424120d432ee70d47d9eb77537331c16ece3775fff236c7274e2ceb673c1756432fe2422bbe69fa34513aeeac10a7e431387d25b3817a7d4628601b022d729fd36afe417345795d5fddc3075ec6533dd82e9bdf62237e4951fd545a5701dfc121ce1fdd962247dc9561967025a04d9aa7d53d41a22ee6c7ff1ad8d5182f99d458539f0ae67f2ea7475d181f238ebc5567e394745b68511b9b1d503208e6b5c4127142a7328a20e5768bc04342e6bc3d0a2700ae62a8edc53b73aaadfbb8c208c0cb40181e9cef4233314bcf80100a91400d51919ad278106622b5b67acf7ab0195450d573969fd210e8eb67afe461bf8f55c286a9bec1fcea6e5094aa5018b5740492fa79c232cce5190a81e32c8309b3e0bd44fc90fe631a47031ada91534d37dc39075d2d9292768d04eab9d2be89afb0050d5618d1dca3ad05b06770986d2e62b99f7e45141e4b9a6e26340b96c97bff9e328836204e5bb353f0c76d2bde7a33aa55a913fdf380ea7d8a0ff025360ba84a59df10cc9f02f4e31bbfe57593339415a6ca68505759de3185fb981292d3604e7949626c2c9f0b54736d70b466b57f291cc610e63796214b01a9dd2d9242eed738cd62b3d82a51addc2fa56885d107aa6607baf8629c40a7216e071f2b5a9e90a4c68b431bc140836f6b83cda9e51c518eddaecb81bed3b16818b164b9c890f4e8bcc81c8e007d05511df3792a51174a3facdd47d3f7abb9ed41af80d8d8fab7af25e0f5ff5c446339b0882ac44ab467667267777c84840d71500410f587f3bfe1fc1928821e821a97a5cdcbe9576236d7f55d8f05e15acda7c92c3a499dd7a5ca10c53ce7a4e019f245089eb0f420d26dbcc103494c63b322b3cb12fbde062e19050606efc7329714736f5beb964627b93e5789304c419514f4e605ad58907700992726e772ec33f2a7d530b15f05cce04ed96438e0fd7898054c68ce5c115b4ae1f0eb4be48e6a8f99d7acfb828aa88a1ea97c00cf3da3c7ba50782045b3e9f31d46e0db0b49597050edae820e5e3de0e6cc1ce9ec464414c3d99d482ad2aa40a79f2982934f797ea331f712d75c3229b6a01dce4eabd72bdf5b7c2f3eec2989100aa1315e54b442ad698c17ba6911d24213a30e5d226fdc41185f4979c58d68c0691ebd195518f9717e097ab5e935d8a31eeddaf99c29678563d4ac4ee44bb992dacf1402b5145998167c42a957552b488c6ad5e448e0b66cc201488c3a927ff3e893ccf57e8e8937bca2058c83aca9114caabf4fa91122b93026fd2d53e446a3504dbb70a137665131e19246d7dc9f342b2d9233b814d4c19b1dd81d2647821b6721fa8b199bfa24a9c38ec63c7925884e565e07c2adc1e74b8b3a568dbc0fe758050d40c08f2a32458e1c693c35261b27ff5ca375267e36fa08d786120e242c8f3c54631537b884f5231e772a2656f63797cd4a0bb3dfc2f4a808eb55c14374092cdea009c4017eed64c01d9ab93f44046fc3be6a6b0fad1207469cf23a26cdde0939a76d86b0c04bbb6d5ad7482146bec528956470bbe1dc28fbe8dd01e14c2744cc8f64551c7cc38c17b09b6058ecccfc16ec55d1130750c0c2a2588dba9c6a5a9924027758733d8e0aa66cdce8cfdf67b7208129d82f86252d12d89bd57842fa075ba7413196abc3fd4ec8dd74cf4aa0b279ab38f0c7b979c29ec0609c16d2cf00b648d13616c39d07670e0ad288c0f1cb3214d65302c40fa5dc731ace0886b754ee8a5fd28e08f51d0d67a45191f9b3d633bf209bfc020127c7f0c24f691b25fc5c2842b9c4b516b004fa535eb13125c9e5d5744bcd707457c04f7a6b93cf105df9ffd21aca4838588b8144c7715f56a0811ce5b7ddbd877dacb4e150bf20f801f2e2811eaa70678e3b511e173abd2ead91f636dc12044986d328a4d256bb4bcfbefb8a00e0c5634cbc0d7a63b8a10dc929b29595e9dcb3d7873d6a0e19be2c418722b42b71236654c301a0269c0a1079a4fe6adba5f7da50a223e3686b49ef133db0f025b4b01a8cc609a47c6891b7b32ce23e88606338188c8411a50675945223597f83142a9df21a92023e0e113e9a8892ac228878a8f6b592f924307438c7baa23fec9f7284a713504c65c870c6b248741c143d9d0f86cb82a72f15e3fcbbe98a4e2fb69dc7f083707e950662ad0f4827a9e66edafa6204d747968b214f8d3626b9936c72459b79e496bc9f84aad6257d42387dc19faf1d6f7fd0b0ea9a027d88836b42bdee1a5e8248913a5ace55c85e7bc35ceb46d2b2777a6c4c6fd63988d7d1d2e049c302656dd33f76c60c2cfd8d048df90fb9e17aa08b49518746667a5cfacc15e85ed9a55232cf55fb91839f9d25fedf9345ac80b722a75f8daaffb3df455e2f5aab359f9381311a531521ec0be4a52a9530a3dc4c37b213663d447e19ff1f8eba7d0c58005204f78bb0def85a45a1518e018de7a2b4e1700c96be053a1216c4428cc5bf6e5cb129ead0a5746ebfc6b0cff67b7aa8e1c8e8ee6c2088e0201bc0bcca19a878af3e84d24520a4602efea3e28744cd337d634712a3576a18acc675585adf8e3c20437ccbb52ac17203ba283f702515e00db0f7f0bc7a8eea37ff3fee7a914e8eb3b22c3e50e0f5f846659d178b0b754d48ccf82125801bab0da54def24b12c50a2ce299e2e977278cdc2136ad6dad987a034e3d917fd0d636fa89dd303925cf9877cd3af2e44bc5731d1209627cbf999f5529d59e5fa5bcce41404e08e23432c0b0b50b370ed221ae254a80388db65fddebae27cf56dbd514979ae14494a298b1c9a5e1baf5235c7a024284d65f1d0481e439e8421f57f69240d43bddacaca68ff7965e602e1c268c144cede6c67ac3c3ca5780628cefe3a0ff751bbf709d7aaeb327bd165ac23bfd543df6a7fb149def14c2a3c1301c87f816ebc6fa00c25113264c160a024e919a14e4be895ea19711728f63054e906b627c0e2b9a8886ced010829d7bb0faf4468376e02c34d8702391926899003a7375ab98bffc040239084d754e3e00efe4066bd8df635751922cfeed80b1122a2328d755ea83f884d1023836082fc293dc16318a0f13b801216eaae2a78ddf53f05ed46f08bfcc2df83714f7a7d91214872d73dd08e1cd6bbe89bdd15a8f15cc520402824b082d6197167440bb03e1ca8ecbc448feb531d18a66a92681fe03eeb6968a514071298f9328bd8223c962fdfde752a9ab0f4021a8bde3ae8a5ab8db844b2113bccc512d567eadc83d45da70aebaaf98036f64b7f5ce880fd5fa0b19f290d138c2c9d3b14e9ded4098c086efd4b001e17c212df4432711f12df86f44a4e740929287b01f45ba10b91ab0bc6f477662539d7e1ed298b92d728f089e9d0a5b1f911c3d2e6b501fe0e857ea6c76e2b2dd7ef442e69e1ecda5254bbd1d556aabb3b79c3b8555ed8d3a4fec44ce07acb6205fc5b3f3357d7b8289db91841dfe14f16b298c3700111072c6019d66612006d1928b05e57dd71af42ae898855f07f4196c9161c220cdefb616fd169fd105b68b37017c498e496d9fff209b7d03fd7e5ef1e6c58754b51c6b43faab1906ab80bb1bf2b7da39a020db809e70470a7f2050c28374fbe2859d9c65892ba5fbd7d81f0ba81b471a42eb668b916c842284afd93431a7e60d10085d2af2b66b961903e31f6a70d5903a467776fb779d832cd8f4d6679d7dc2870a36bddc36866648d583837e475af775f8475c46222bc4a1a8476556df8c57e3b057f9c53bb8c991cccc0d1011e6fbd7ae3f8d65562fd6b0235b3453c270eba41c928c3f03e3ead7473a8d5516cc770cbb4bd7ef9827046cdfcc50c8d70c44e38356c1832669401c62d34bb085e1518e7f0e745e375220a45f79e25cba865e88e08f5b1382d3565806a44bd73f3b0c539a2a41016a3ce74a858eb745028777c8c265788db0eef462fc6fea2771ca17906f4e2f1b79961cb3ebc8c42d49374b30dbf4971a38b3c241395dc13b601ce3447d0f971a62cc1cc2438c70c4eeba4320289a789afaf77508f7aa8ceb5d4558aed4a68d6b3b709896269f05d1e253006c47883a3da824f9d67c0779862bc270a2e6a3d36be755b7a475475ed2fdbcbdb52d0394f40432c0c623aac3656330d878af9e7f97f9c12e8f8c0ff25060fad6760dbe47a2d835dd6177d53789673c1a6026fd17725995765bf87e068fde3d9992865f08df14b640a3770680c4b6230e2316ca27eea0f335ed130180b73402ac597e0289ef25cad75646d43dcdbfd9e1c359e55f0414b435bf06f1c135ca2df4367e743a06667b48de376f5e48d167c630fab546482a1d73e1fb600d3b5f87ce1e5f6ed62677cf253bcf25e84da739c0a1cb247be0ceb043c18f3264e60ecad18a7b1c06a2c0996532a6cfcbb08408907829f0a11b4315f084c314df65261e2959c645ded1bfdf07ba2398e3aec9598977e8b752da50d39a9754f2bbff0352d064ee266446fabcd95e5e9c7f8374a67d9c0d280c95256adc034459f59b1a3229c1e32599fff304a1202f5c5862ec225a9c34f306b23e2fa74c14069b926d8c03c489ecb09a0703e5d0256a27cdd26ef209c18ee1ef8d0fef84c757a4cca45515191725b156d170909bb7e2353a6ec779f78ed379d6ff24e88e916c33fd6cbfdaf36c0fbd7229a9d7b62e34f642673601c3303c3a331d8284949fb6814143e0493d46d424098aab238185d78e77672e9d1be116b3017881e2bd894039572cd1b51c91a10e6e55456e9008568e8e9599906250b741a60f5976e6ea60ab00abe439931fdd3ac9a5d18833b22f5bfbd73287127a551c2e53c7dfd888b470dc4573e892c179fc6f43725fe5fdd772c18ba28d3c4abc0a03734bda33c24b83e8709be6d8f79ef5e4bd4d33b961505953f9641a69a92bdea844f7fa421fb018571301ef87d6d866917f20af5f9312bb83e67cca4caf1e74c351615459c420ea7653ab943b05d8b1f9a1473c165cb9fb27f7c8b8c0c0703fd07eda8ca4e0f34f8f8f5678c29b6d09a71a3f27ea2365f3f250e08bfa02d0443f8ae882370d974f4e2c9b924b623ef7bf020bf9c725c993bc47940049577050ee057f400e136f6825a30f68cb7b5703269b40533dd46736176b1836f62dfb0e916c27d823acf37645a6c95727a3b5630f0df6b0f4d272547b607ac66bf6e73594f00d3e251288e5237e819cb06a9585fd063224741f2b0832a921c072d0e6b286cb90b691a472e304cc179f0a9ca1ab7a3610ae41618897f80631749624485897c427040b10813161dc12f7c6f7284328049ff1ee714f9f0473f4ddcffe2bf4ec50ce4838fd55dc82ed7237e00f7e91835f542f2211ce196a0ed0b40a39e40d1f7885c9e095c8dcafbc48ee62900ed8e97a5bf12306280ab7f13b9827563605398c54c00b3b85a537aa9973b001fc27dc521314104f1c2b5c8fa947eeed5fec2ba45f9278c28cc8df5f4767afb1d7962802d1598ca14fa903a4b43d76dcb5a7925b95138bad078e5398e12ddc00b4e3ab8f9e1960969c901820e132a02c7c8a03eef5b37ce1a2a49c00de5de4ee4d167103e5a9f6d73a9b2def844075b82dc0ae0cacedf332b4f61b59d7e03e8b092287b67570f9dc41b14ffaeb64a90864a03d241816c1179c894c0693a379cd4326b6bd80b80640ed29ccc78d9a9f632a35f1b13667b76e22f300c3c918eb2fe74dfcbf404ece845ea95b1e9c62b56a86ea4c5caa8f5213974c6920c3b3a321f574d0e011e4792e1a96a45cd10c4525dc8b72cd1c930c4770f35a73b07f99cb6f86507679e3f9d0c5425140c09b734490e01b746860041fe5a3afad71332e2c5d5f1122551c78f2d45ab458e5ad45237ef680c88c5fb9fcded3dfb22ea37c0b9c33981780b42dd60aaeac2b15ee99be2617c45861a0674a6d6b3d888cd0aaaffc380aff1228b825d2f15c94deb6b663865ecb2278e5c87b0a4dd29f523bc020ac7c364f8d74a41b06c3032c57202175b6eae8245f47acd5e63b4cb0bdc23aa9ff8d826248a8140b249a4adf077086620838b36b5463f8c146e654458802aaed4fc3af9946919fb4a6e86904a45f0a02c0e48a94568b05f80770cd234a950f2a4b2cf03d922a9f33452acfa6b5a1d6fd0408da321135a1c45bc7667ad9c37970a55683cb8ab0931455f2df740aa3112dbdbc807d1adfa8ae360704612329cfc87daaac90db5ca768f03fe876169c5c23562eda05731903ae0e98ecc1eb00b995e2c6f41d48d6b24c15413605e9d5ac4a58f734b8849060780adac3f2a1b48cd56bdbf1912967f03c44bed8e5a00fda1f8458551f2ea55023477a621643b10265e3ada54911749e91967aa39e82898a20202a445332a5c6ddf6d1c31dfebf41f5c07d96fd81d9a1918cd112a6c18615b3ad200a6ff3880a9a3277d49879d10d839d25a26411f2604115b46fb7d9d55344e4e23537200db84732ddf4c27c7beb275a0a37980c8233c2ca76820aa1ccf126d2479f7c4c470bacb90779a80280c0605dee5bb024b6a6ba2979f87c8823ac5f47daee138458079b520607dad693b0cb3a3d5de707fc34b62c1507b0d4a63277c05843a7bb438aba35069b158ef73ac465a644484c670d934e80ae866b71f2a1f1bbb594cfd58d4a0f7b65a9671818df4718630e2334a5837157e416208b2b403326af09551e5650fc7acad7c6f3754288f6060c5df7c59fea1a46da23e1a945db54dc7746785d5d0014e47be6c9f110b11bf995146719577b55d816dfed0c28f4302b9e1f0f96094bb6592566f2933cf956305fad3220f50678dcd4297bfd60f40e7716a71cd9728a34a3c3303d694e64517d4945f72d7a4fcf1d3db116bd3c3daf9a798015d414f19d23f16d4da8931880db42214774de575549e2e6f2182a5e1cd366d93bda92e5d586ca76120e0f3b64127828b362912ace91d3abd84739dfd4a63b3e91b0ac5461411657e2b4e476539a05b7f30dcccef323f54038e8d69a760b88873288dbc245af5844abfc3459c9356c4529f10a77d3b7a5e0fa6c7e22751162e81ce3b8b04cb9db4fc4ca998e85707facb345e3a9ec776c7ef34649b709e62022a17ad8aa6122e73da3601c959c20f4de6ac5b8a667c603846ec976d014b4a11d44776eba818c6f6be16eec0bcb4bf63c0ebdb904651614765dc0fce051bd5020aceeb32ff71b49b1662c5bf8e499cc9752b6fd76446d3465ffa641bf72743588ce449199715d40cd64d145e526485f4b52025a9e1d03aed1d8b62353599b855be49480dd241a9e9116cefd5c224d6955c1bb548590e68870a3e5fe3b099802e04b8f761cc9c9429e8f16b6221104157eb614ba65aa158f47f0fa55ecaf730142feeca65ee2b179306a659dac57440fda91379a95b621faaa68c04071c2bec7fe512319b80f6ec9ecb420fb51a1e40a7af201385b25a41a37e5a4ea2872f4aa90033b404ef4aa5d60cba7b836c61250518ebaa251704ed6159cfcb82d7eb8f344207bf48ef710947ca562c37aa9b4b2576c395b8e7412f91f73685a09c99faefbe3f8a82fbb326d1413db38eea29b65024a3253ed7d100ec16b32a366b0b8183cd187c32df1dc52121bc776e48c50b1279d3bd7bd21ac89d799a00729abcd9ea6c41c29e1fab0b3ea5f709aa6e3a35eb0bb3baef71fab069c35b4cf0e15409bc04c973adc3b906b290cbabcb25650982f852cb223cce88e3a4867e688154e7c22675056b61e07de8b5fd1276ea3bc2a110b12e1a3ff70460f9281dc5e0689472b32dfd1c80425f4bf2d477666532442407cef827d4f577fa8ad8fa7379a524bda4f27f5733a6a970ed27cbb3e54cade90c83aee353472f623653a4c3e615517ac0d5314abb19ad1763876d77aa6c064ec1b83582f1d7dae260b318bc0c970ad4ea18f8264104a73e4b0fa249c582a030bc06dcfa703e56a39f5a212eacb66979e177b6d26a868213cee6e364837860dfdefb4d80010b3b19471c7f6b892f040b23590ea1aa57dbf5afa5319a58a2f662b3bfcff4f0eab2fead8ab1bcdc1441861d8e6c714bbfc840c5bcb293ffd2dfa6d7d8122056bf1a2317c929bcfbfe12d6cd6dd96b6253d67751675786243e4fc66b95e18c24ec88c6fd9a925e14e546684dbb91ce57480703b128891f17f033f14fefceb0aac8a994233f27f553587f916df3d138bb2557caa0299a973e8155f008830fec15dff1cd6ce8a9183bb40bec7386809df95980eafa3f7a5e8e8815e508511b0e2d245a598a04a352c88cbb3a3e4ab170aaa5a9dc9d6f8f242d765d20e9b958f3d859e7318779129863f1adb90b8eeed2da920686a11865802239e9197ef3b6030282f955cb3bcd6cd2a229402d7752b8cf13bd847d64f8976a5d73efc044c4c44f8cb342062408e09c553120f67425097a38d583588fb5ec2c3cab945ae35dc63ab90c9b726599e46382a6ac0f4760c25dfe835ffc84b1739a9acbbbfcd88fa04d395ba15c47fe8c51513027d5ac53869a9524bd50c9483ede4911892d3bd5d4e4622922512f17a301c134824b885e8d8062d5560941e5ba9d88b0798906944d8039365a8d80e5302739953076b13e2bfb454801bae8464204087b56e469b977b0b5b4c49be4ac04f5fa60432de8f98e0e620df616b1a4258f9c1e7812ea63b0ae7b0be852091657701030bfa667dd2144c29ab8ed561bc8be203b19caec45ee1caee9a10fc1ac8e79874c992498c7d49867eaafe4a7d220d183039b188c88f82b91fec87c8698b472e1c3baac17f74040cccf01da923afb49b7602e5eb25adfc5081cceb7e1ac061afc57424601175fbb5d587e98468504c8b7ed5f91d6f981342922f7b815184fccb2f17f3aba19f112127c050b2241337da1c967e2e9e64a43f648c1413d94dd14011c077beb10308e04291f484f66b40915d5da0075a940143021449d96fd650040386303149ac348322f5f3a03876ec031844332238e96ce68f516660c20874cdfd31d802309805d930db4d02a53740689ec1f9ff138d3a07b1c6e8783aaf3ce4896131c8dbb335870a8afca820bc9dfc1eb9266589ba51ac16080fc40ac31ca1e2b97d465026e8b2c648ddf8e4e3268cbf3140689825c87c1004aed4968809a20dd462a90712d5bed6169f587076257d88d7b1740c73dda51b5c31f2183b4e6dbd693438a662755f43cc7ca138b7ea4df3d9694964ba00362408fcf93fad2f6bbed5cdabe29005e6ff2c1dea7bb89d4d3427392eba232acb939889af86253ae25aec24e18a1223904e15a59a05ac32a486ab8778d442707e5f0dd0dc24a0cad5069c7091a7c1375830956c5f7e31920e5e56580e07c29d463408318144d70861655a8fb58045eb847ecf88086012ac59b18da75de7a803ca941b9ebe981d957473ed9b4154d7ea5cef125c7b36e7f24a0c8063d29d30035337a50e740ac94a3295dd725ece9844926b5c82050445adcf58e5791a750848b2e13867f50cca64d9b41109ded800fac38f1c890e5a06afb8e38771bf1a53177cf9e2bf799fe26a5088e31708bc548233b591260a93294e02edaf3a4ebc54b629100092fd1db22e1c84044ed241b45a983cd21ae594b8ca7ef47d45f1319214412f69b875609026c0a1f89f2af6d0ac0420eefd7765895bdf268099193073c9da83ade4b780a90d602bd030b5a888f19f889f6467be7824542b7b6e98ff084d26b3ba37fd9a13e4b31196b02a5a1988365a757c9884dff196c02b4dd306f75e48dec99058b689f00964178eb6914c28c732a5be4333401c0378d0a15224c3af9eb351f2d414ee82e222dfa7c1ece24b3804a4186c7e680be4fe5ab6582ed3591a9bf65213263eb20087042351c1995be5d00d3fd41b6ac5cd01e359b0e8bfcbbd93daab40a3dfd0ea10e83ac8520e49e74161eeff678360f0449cb010bc26097cd610f5330c065f311e2c74ec2b1c9012a089a191eb238321e1f51bc4e9afb490ac3d6673a40e08bce76d5ec96024fc0387e101e53f509fe3b08342c508fd62550f1bb9baa76a6893b64fe12a06c1d6ccb85a223a5c0d19a6f4e1a25881eb83e491ef0c97957f834175f89aa08f0b144abd836ae92b1407ada4b6f97a13a0a977069b2fa8ead770b91ef22c54ab5d17ac0c2bf698c179a1f37d13d748ed7cc25913a178e51a977e4d8b32623a0df8e3b199f8d413e487c12d1ea720842d17cbdf144e1f2fae34d4f571bcc50e8401c55e739460919d9a808d962956a4beca7e0e630e927d162253582ee89efe9c0b822c70f99297e457904167ac440a0c381de2adcbc0f8ae40d9064e4cd1a69be1f9170f5c26ba22668f2a24288b89b21a35d03b80498a4adb9fd01c5ab33c0e265a88bec7356b75b476c43582c18dd957a101098b2f9f2d5c94dd6e195fb2896070cea6c5aaeb34fe55605a09614e98397934475c097e51ac0c0c74572760169044eb04c02a083d351a2f80935a054efd3914ef1ae6ff67a3360250c69957e9e63ff54d52e38416a293b3c813a6dd7199a56dfd517f1817a92459ec20627e0ed234c2c6a47ad50bf5c5e702d3efd7ede020f314c14e7290dfff9f08da6d4b58946a9510ecb7a9b00c8a3f52d8dfcf08fd7116f721b435049044c3fe5edb7b7621e4db0bc240012a20d2f10f3ebd9c21280924227cc2f022545cfb423ffb97bfe8f4723f9f45fc4e1c7f1b58d872baa35bcac12a85030036bc0fa6ce0600361858cc69c1d4effe55abf1a0f24f87a5560467f9f2387e4b757a271afddd4f34c5e2be9910f1a07c57cd0fc23bb12ee13eba4f8f2df9075b88c1298a473c5723456222e0eeb5ba229dc454b73e9a05726e606ccb26f7a7f0c5e1312e375a0ee7453cbb228f36d3c69b3bd780d7a11e6f9015b3839d2c89fa049fc245bd4c834ebeafac27479e5f9148734709f25cb7ececcf3feeb72f917a2d5e828f9f59f523454d43713dd35731893d69458a8ad263188eb08cbd1f946a244c3200259ecbd9201ad8ecd76c1c1bb871495fa9159865355e4985291bb27b2f8a907a78506a1d8b4fdf300b4c3b523673b14f8caaaf7d18504a8f3f3753437af5640bf7d711c241938152da3070db12815a2c8152a4f2685f6287fb47b20293d51f78309e469874f9b9d80423359936dc94702bba5be171b154e0589994202020c414beadd752c8c8c6a449cef3c3d018af7e1e75403e21bbcbddf071ec5365677d2733f7dc2bc495d726ab31d35d88f42e6ca0571ffc21b08384fe81ca3270ecb8b4328ae559749174528d46ef9e6f13b2486de286269f6e2d624cc53bca6eb2bc6238014df7b29b940cca60360d6b0bc336c3279f8a15bcc98915566705940252508ab0e43a4fc1b779a2038d53846d4b82265b8a07d5408168fa32f444d58ca693376efb8b0109b58f206d1e10ea6549d0eab1ffb5be2c0907c30d036146fdb224d843364ecdf29d501d084e20c3d215b960a04e5d4aa8ea8461db411d28509a02bb1ff06c163c1d533d6f7ae76b9c83b843eaf181c39fb9d3c5411bc8a07901b5da5edce573d82b961278a089fb70f6c58891cfe98f6d1ac2383b3f51202d5f8d216ad209a706a2101d653c8884a2db21ca9474b955f116479bfe195b76cb58695430c15229d2cdf07b9b216123b8cbee92e61f9ec1f202460858f2b77d3d8c61a5267244a43332c8f649bff66e0760beb7ca00be6e2172523cba26a96bab074e1af6aa1326b21735b8c1a4eaf3299d700cc2833868a70a5e315ae0f68f39ff90061cba18f7305422cf20cfb9267e3a8235dbc34192a47ddd81b5d872036a48bbfbe78b0d3900142f369d8c612c457e344e432beebe0d90cb211b48ef65493e495350f6c2936e79b98f665ca0e5bcec563a62c0de91e4aeb2a28b8bb8d51ea36b6a12ea799b20953b92c6a5e5a94a413cc6b51072bf5be92962d013c8c60bec2a445a02d6fcbee9297170f74e6bcd43688d57b309d504883cbb45a42ddc9dabcd7a4838f51ec30883f5d2bc6b2ce6df160022efb3be4e44578c9238f0d793851e2b4a5cd21b014504b2b8fc79ae33953aa4ac8d06361ef7ba92fc68b91d9579032c050004a7b7a2821c067792eb22ef165c64ae083720e6d62e694ea41f8404992993dddb5d3bf8f034dc7d8fdc0b3a35740a2e499178ec52e6d6feb01def4cf7432263dd88046b7f79dd068e4e9da33c33f2f333da7c53c4e5522d309cf3f806434ac3102d8f3e663b1de6306038e58dd3152cb247fda1ec2e2eda9c45565711d66cf33b7e7b076709e5e45e3d8c9f9b8554ce2c43bb8a1edc59d185a7056af5257d0047da14b7098bf10ce1d1c37c3cdcf4513389504a2e4c3d84f29e689b4cbb63ab3c1994695a3c0991280ef2a0e6332c4d694befe72edd0818bc5911f5f9bf27b331c252af6c8d004228a46cbc8221d93ba07e92c0f4719d4d4b111ca81e2971e34aefe05ba3cb53f1bf010422ba6cf42b69185fb62e113c0c6f6e6ec05589386a9fb957fba44634d1e4c0c34970f5989c9f926799736b6f7a3340da3788a439abcecbf505c1670ad482d35cf9cb4b74c2e7b0280af57c8cf27efcffa49c3794a778667afcadb670bbeafee4ab65141dbd51c97a719761eb1565d7facc2cb995d653cc0d24fe6aa0697a3b96498f96f0c3ee249f9949e327cba6a83b6338285d8bfdeb6e9f34677fc71e81b075167858d14c5b340a4eca55a6758e3f2ea7da34024091866ecded37d6d56c3340016c1b56be6dbe02670da7d8fccf50405d0b77f36626f0c234f19fca1ccae53d54647d27472ab01943338abd1a8b4d54940e417b0ca55a00ce84254e8045ec70a08fa194e93426c9c090b35c6fd7b964e457468b44eadf4b13607aa666f3272883a8e2525a87c609e89f53dc7ef64b80537f9001565b9c4fd4a48d3b23c04fee8f8bcb3adf7dac1ba8433ac06da523e98e36bc78a3eb9157e2b17c7cec29e3f44bcb9775f502dad365b04ec4efc6f5033f04b6698592b18a644a75118ff0942074882d8380363a2d03abc925cdafc0fb329ba8b3f31f70e6ee75fa0d615b168aa58e9c50a240a294084f6bc45b67abe193566a7f28b040c200856925c2b1ae97c485d2414edccecc5f9e879ce42f2dc3923d7a0c4177e0c27999a72224cbedee6b72ed088ee48cf4516cedf942f29d45cb17f4f4ab1bd4c31d135211266423dcee2619baa8d02b4501f3371b134dd24754877088a6ed6c61dc2edbf47672692ae6540ae4b36a218a6a2450ffb42817e5d67b329c84584dc1d00793f33205ff769f8a212618a64ddb122718354af3d4cf6e5fa8461902befb1fd6d6bd5f45d5f19e2229176a963679232a8a1cd0b4d1cae5c19ca9297dc81814cf2184b0901aae8b745f435a01ed8bfe0af8bcfe86291c17fcc024efdda21bc6a24ed4273fb110a129f62c0fa517fc7652e79cb486c9a5a59dff7026557b0e1b7ce4fade0eded34360c39ef62e196d0dc37a02c4fbcf0e170028086bc0b1692f2ad879079e7a606fc87da1c89a9ce808460b7ec5f5419c07b79a74d93e4a3d0ba9227d5e8cdacf2b77ea03d01079c9e75b72cd8c4cb7d1444b0f21def3ff0cce7b0485b5871f3ade5e2b9fe48ec74cf91b28f1c2f84675933a9fd43d3f2b69e221cf5fbdacb5ba7888ada3a8c75ff4818aebcf98fd17eaf24162d9d28442a22e1262931e3e82fb458331d3a3345affd2f0df1dc031ed0b7276c93d49e9298dfcaace0cc384865db77b5b0cab37967ac21d7a4d99923b3f6bf5390b44fd974d35a2ce88513268e4bcb3ec15a623309d10f79ba317db494eaf8b18df4b7cabf0fbc8d11cce74f9d974cb2d02257c992b3e516039af0db8745f3090975575b8ae0189392fead53bbc365115e80ed83d7ab8c8bd2ba3805d934c2a5f9b161016fe301ce37b38aa9dd7ed40f749b19a51ade875d0ab34cd0f4487062127a56b1fedae843a11d121b668347e67ba5a89630090516b939ed161414dd6313fecb2e97a05991a0dbd1b0d0ed95a06d441f6b45a4d016b2c6a31d619d9becacaa061c569b3ab987c5d9a84f30b1a510c0e312c960bf92f264464e03dde0758f0a42531fd5e94e8bab95ceb918560e48a6d2b8d00815d301cfd88282a3bd9b858e21922199b5d94f1541025aa68c65baea21a33f597f5bbf0b31a60e647647be5d8d02204be612bc0b8d221083e684ee75933232e3148331168a5e9c715429af30f342406511b74bdb3f7a30c00d6d6a46ffdbcd8d6e860fd44e0f3c2b24f38d93870f914de08be1696e24f5bf0d8c79cfcd5a393f53025fdaf862aae71d9537670f9648ce79408e212a0db24e716e2ec8589becaad42c123c11a550485d253d10f41a5ae80c98ef0aa6558cbf6afea6aa20b837476cf3660e8cdea7938b7dcea850c79849c28e3ec4c17ff35ff57db7f25a07c2869c778a4b7e8ff2662dd0bd60ea2d9ac231d71510cee84802ca8c31aedb8a3999e0267f201869410cb3758b3c425a2825eb5462da240ed7c08cb7603c2da1d76fba363f8c54b3d5df89383e438044056ad869b0c0d991ec2a73756611a3a96b9b9abe3acbab9d23aaa25e5aa1b3b5659fb245c07775d388be2d896eca26713505084c668c72b79703c9736d8907aab43cf6527f0b6ac7f38239352c06b00095a5ecf6421ac7da4aea201970924a06a85c1891c9c8a417ba803d397537b83002c2a7de8e1928344873c08f7e810007bdd342f83a58828f3c88d4d42e378a142b3088acf688907efd68bdc36416e9555aad306f58a4fbce4a320440bdee7a36dce16b060c05e63d1b5e16e14ac1d2a05a5cbfed655ad35b30657751d7803d6bf5dbc46d023e138d05f143a3dd6e4965857a4d9226f9fe7fd8c64dad6ae10e53c7f8908bebbc460677f287a307f1cb69bf9a863adf60fbee11d9f04ca11f4955f4b64ab9483c1ebfd9a39f4acd3c6bf821b8aac3e01dd0a99ac0d2ac46ab5910b7f0e4149a64d4172b8a2f80da2236815392f439ccb6f09ed9babe6300e00db970a0a8f3f7d4abf146b7b815af800b5f461626164304a2359bc5af105f4b59435f02b32a2a8435f4311d9e14db454020fcbe180076034816b285d01ce63f0c0292a8962a3024f01428874a1b073b9f19cf9b5ecd413962739525d0eca735447d68b58b9ca6c7695cb3e9e04b94969908a5e046a434cb64d8510588eaffba46d5127c87d95252f36700c51121d5c74aba0fec544da902abdb9e8045db451f82eafdc942bcfa1484d2a0dd634f7636d27e15bcb16247863eeddf5e6d9621393782a833f474dd02ce37db930680c0996f14e80f7b708831c1ac4ad1187084b065827c7e761a297108e459c046db5381c60b18d9807e2e9ae8a75783c138d477cc4c1418ae3d270bac2980511a259c495086246ae8d54fc3853eb963e43c3cae83e01fb93ab4f70a00deabb295ae583399a4abbf080d5dba5835c76839d39064710115dd30dea07117c6368aee51bbbb70c46161b6e185eec65cd03057510d0c51e94d38716ac94acc740689226381b3151a0741232b2ca1a240cbb7c3744ed15684ce26953dccd31a377186dfba679dda9871faae503984ee4a846d54e7dd46109111556043b7581ea547f4bbd7d67fde37a440ca598d8eb08884082f1e739b44b1316f43e895eff360d6f05e29c7c0845dbbead5a7c3b76815c280ed186ed3825c5c844d128f6707563a4e2003dde3307005933b25ddf934c5a7573982754512a15ef3bae532e851e7899278dc86b6614b829ace6a667c44ab6e6de2f281916ec0e159b5aebfe8b4a6ca5cac782199df2bdf1516a10ffefb46afdfdcda97e14a1f8ee590f015d0e02c647ef2d6e787899863deca9dfe21912060cbedc733891d85e3be26a0486b0a2fae54abc97305e3c280648fe3ea002c4feffaf2fc1feef8285e99adb9b98e81df12b93331b48d590428589eccc51fcaf40c36edf12dcf8e70e22fc9d48b2e83b9f2a6493b9a49c6f1361742674728b82300ab4fc4c63f837039d1bc0328e058d2c97aefcae919d35741edb59efa8688006db1c5fdc502a8e24f06e21de81dd948a38b19ae4933e52a3537d3ac6e281e7b1066039883c2a15f21ebb0f8f982ae095df8ca9642cbec428bfddd3f58f324caccb5ad2c9b15e34c15f52833221e20fcddfa73234bce83180a3fa8e9fc8d35fd8101e1aaaf80fc164aa5285abb8f4f37343479aea0a64fc3f143c6e8bae2bc6abfe4cab5eaa52b6a0de6e455e9459b0e165c98852f817fb44aeff7c1842ce0a47fda7d1702a5cd648ce64266b030f739afe6193b30c1cc5fa60f026418d8e01e32400b911b422afa403fe4ba99b5e35191dd91aec12029a6c8b2615f04f46c4b55b4cb3c5b07fef638734a8753afdcc5276f7b547b6a3ec16bc1658499a7c00870a7f3938ca6b8893011c0042fd0ba21282b86c089484be52aa5778066f079b5720bc55d890c15f9a821428031d4beb85691b62507e4ce0787514f7346138e35bc257ad3d09f4473c8205467be0ca285528a3c97b9326c1a4269851f6003b55c652abea66020fe22de3d9a3405600c0813b94663a6eed127c07df30a7b6f6e004e0185878bb5b61aeafd657b3c5cb07db29c0cd24cc9355304ebdc9959292cb568ee4a81e508989e779098a707088ac1c67fc22acd8b9147e8c18fb8db230dec8894f4bf680818e9549b599dc2e155508100d478c52a5a9300ef8a9e8d1d9dc6fdf4b935f2adbbdaa7981540db896ac0d43d7e07de6f899228d4418cbce8fc83d8f9edaef58e96ad838c993771b134373ba51cc91bf38177eb89cda48d51fae07929b1da7c19c8b0d4f3d93dbabbd86478e87389426f21fab86512284f9801a9848b6fd927d918da249f737213852975f21ac9d55ed01381ed3d0276e78b49c88aae9f6e4310b039520a07807ce3430d50b1a2233aac6b0c2c9606bb405f66814b3d57d41216e323dc60a8397267f3bf8f908c5f9ad7247eb6dca1edd9a10cd49f2a60a3a801e8fc426e583e53752a53af7e0c148e2ae8ff7a5131a837659b091239aa18629b6f409c601ea5a2e7a915a99dcbb7025f8ac0a39f3797cb7b56071903d40eea4e8638ccdb758045e86b88e6cf5416e1c644938f48db8b135cc23e94d630491b9196a3839d1956b91946f862ddefeee7ba966bf9f10bcf7e46fc852a9d298cf7c081c0ea1bbae405e28d18aaf422794143fa50a1a80432de62751875ef0a2292ab79d002cd94abdf4d6803bdcadc3100717249adcadf25dbf9a6d2ad15f6e21c7d003913920085cc3f7af22629c605902839062bbd78591d3bb54ceaf4b526d04e7dc689a539ff624d0142d4c7966d74a1368888e10f35972a34921fa98856d188a3a2cdccc1d5bd630b67963304f6cc73075a4757dd45ed54327545a954930d5c027932a12d259b788443fe1e147ac6657fdddb297286914e1292609d5e5800ea418fb9c44305b76810828c2052769c28ee2d150d24fd6aea3371c80ce0340c27a861107e8e50a17d4a11bcea9d9aef03bef6b71852ab7e83915038d3a229fb2cb6517b9d8c3f63957d03ef526e8e63a9ef9f7becf0d9f4a655302d235d9b2463d6a388045811a0f4eaea28b56ddd4e028d80e2aab81e482634119813250fa5a3586b8efac402aa794a5aa38211b079428438b4fcd1c63c94970cb1cae303686f51e7dfa1ffc6058d1dbd132022984fb5184b7d5ce8b0f3f232ddbb88dd86fd468f5c7386f0305d65fc192400c03aa6aad8b3737da202aad7d585de5f4ffce006bd3d3e9f1f0d3f9f241411653af616429891ab1af55acc0f65f8e4617ba2873da760820eb4111e29f2812276a2d8fac0acbbfb8c49c6aa202e487a4ef9e8ac22f4f5b21503cac299b70510ad8b1f4639187a7e6ff093c3a88c9c54f3c059a8ae78ce474e54090d3d0c61ef55f5224685c26d0d74846be5409093cd0e2623e823da70052c8f3f2ef69470440f64a6f9a48a694d04d5df94c55043d5394af69c4e32b2fe1ddf7d6133bf75da003ba6f854188f25f06020c7c72321eeef047d9fd2ab54bd036810686415e02e659391e1313008c18180d1885984e035ac3de90ebe70de20a1e7b60a8e69c33b307bb0af9d833240101fa0a98a155399c8dbfd6723b09c273ee57113a74eebed3b5fcd0791e1bf58469e0bfc4a445d601bc22d4e3cedbc0a5c428eb0cd3f17cb659b219424f1d5135ed821ba65bf3f52194ef25934f5077d1368a2337d1865962e40ce6bb082f738490c850b73213c0a8c342e52e56a2a5103c64c2f1df42ec329eb76ead27d1e0650cf93346990c9e0ada07a3e198880eec687ac46b63985411478e80ceb375dcd1caac6a73169fcfe0d8a83dd4e10fffb250f5134d79345584e4f964659209cd2ca1e099b407a6816189476e240a1d4df0f9e6508cc6b95e13472e6c74a6223d4bdad01abdaf8bfea39911c5de835fa54612b250ea9b99305a0f1e6414f7aae678594041aef626559c5bd530e31cadecbe3645775bc2e8f0dcf16809f1edc6e50ecb754b8381389daec088150442b12f4a3098329198e0f6e2020011587bd952ec6aebbfed1494ebe966e9736897e9873889b8a32507a2c0602a665c31bbca0d6f66073ffabdf96db4cb441c9c4f4fca15f6838567677941d5eba585f34aca928a84f8197a692e8c76322d397f2fc065af3298cf43ae9703576d4bbb7bd67a2f31988067183cfdc7b05d752154243cb09a8a44c55b049ee8bc9069a42a37521ca7b4a613d324930fb49c70092bed6bda525ebab8881c8aaf216b9cc80c99737ef9fd6091037402a843780df4493297e8d398b022585d6357748e1462393a98c581ce2d6b8f2e4f404d5bc93c3c72af8705985b523f4d2ca24648e5c452716b99a1a2f8c7baa995b8c245499b8bd9d520f030daea9e5380a1c1b9557e81255e0b3a4272036754fa056846bc019b0d6f38d62761c1b0ab3b56206a022060786bc6ec75ce60d59930410c35213c66aa2125e3d80c57d12a925995eccb001fea5134735c606d4084a7588a387888a7d4e06a724e876f6006b7b16cce2fcddb1861d735b3a589a714cf4e9214451b06ef47ea276afe58cb0f25bd7c9db2d47dfb1fe716c8ca841724aef6afe6e75f335104b7ca92c846c1cac077232228d4d2ca3650234ded05595d672b04d2cec9520d4c599d9a27460be142324a4bdc80d6b273f860e17597950ab569781dfef5031253999f672e4f804cb076355c0b3cd6420fedd53f0cff0fc28c729c490cf8cdf1be8e56170ba4786b020c9895c01ca970bf290557c5e2180e810558cb2a1b8edb43fed33c7e203d05add7d1d2b053f9e062c5a8c8da4a32332a40226e2a6445e3be67c8ac886aeb0359d0649ab6f20e360eb125b6b70baf1083ea62afd2aee93bf4d35c7d58bed2a5c873a0a8a4a75d07cdf7d17cc564c8ec3417585d247d6556a7a79c570c672a2c604238e2380ee20cb3f0c287431e2d710f413ed173c0a359575fd81e99274836a2492236a443a1cac73a8f8847f0a36349e4ca784ab788f0caba46f3c1ded72874b3f3054de4dd72cbacbc38f5a3e21e8d2cc03509569d3b1715edb0b5c7b4322b85ebe05e1ceb120f70259ddb7156f81f7394c713c0849942986b391d4632d7a2c0c7304e25132473359808f8a86fce9377551e5752475ae813fb26364212a3a2126544352d01dbb898aa5367747e60fc2999a2d2b3c5d0bfd583697b421f470d981939f369a4bf0518810ba936572c5bdbb5d16338811ce62823eb3e134c964c491ce24bd1a786c357ac66c5146e77d1105856cd6a336c283d1a14258dd76e6e3b94112ed10a4aa487b6bd5ad48927a0600da790a566a505e940bb36432caf253e02876c57b4f93ab805bac86022e111d4acc419af7e0b48cd2a20ab3c296c1f3c53c60f903e4b3012a289d9cd3d316bb3aa49eddf1281ab042d663e3fea979086a59adc652136a27a45901879d5396fb49a167056c0b196774e883c9695a880b352e0c8ee76387770565c9473518756e876555adf948c3024016e0054dacb6ab4c1e21d75c2db08cd4b975dbfe7259f956a6e78e74ebdcc4ee66cc0328314f71d749852203d80873938a7117572401163ba3a5b7b5c685bac9b2e9aab3ce08cd2ec0fc67d0cac56f83a311349d4680ea999ea0463d853980bdda24bdf58e244f76fdaaaaed51843f810f48cf04994446c25f0e79ba5e90ad9729dee6f58ecc6b6c25bef2e58bfafba4fffd780f06a8db3be01b32dcea447abf4f47712bc7cad68758cd913126d3cfa7c8d083d8b046b0f352c132be7c0f66eecc6438336fe5a69e3f19839dc4a6c563a85d2049f5605fa8647b180c438c98005337b5f57819f4efb19bf133b6add27ac7de0708bb0d5989d141cdbc5bee35518a047627bc81a2c882a6cfe282e225b99e04f440b0037eda89e49030c6c9f98508bb7085342b6504add97c653d27dc68ae87a4eb5df6e0019fe62f5cf5abf74828e7f138fbbadd54213e6ba1b3af2fc6b8d6984ec6486685ef90194618be32db295757d0a22f9aab23ae48e1f49c9015311c879e20542da6faa67f91bb52197622906fa787d7784af2716e6124dd2f785c52ea8a2ed90a071434b2d1bd33c902e35664ee2e8091a5fd42f91b1f38ac55f80be264ce827db401ee0490a509033806dc7e53e6b9bd235067cf6fcd4262c0230f998ad37a23f40d0fb870b842ce7a2d129d4240ca7facb3e01d4f75fc2d055dd5f9faa9ae48fdba1648550c4cc10130e358806d7554c41e8e7ec60ad5c6a92da28290c675c465ef805e2423825657b3a241a0408a5a5091e3e05d898db2ea3d1991ad0a5db2b330adcc239a4b8a80abdb84fefa788ea644948609b4b16fab1d56d493efbe9456c2b160dee6b22f820fef7a4a15359e23f38e6769a5092da894b036072ec9deaffa6840ca32f42b91f8fd7f15846ab4c24f95b1135ff3aa467d9c6e101a16e2e9ae800bacd4d7b387be07583cca27439d5bc44cbb5c7ec17763431263030e35c51c6ec14d09a310c4e441397ef9e9d94f729cd780b4d561af649d9688d5363996b306036e179aef10105eb85f79df248ad40b78203ce36002e7016699b1493b3a0f5cb29a2e356a712f35d8081eca3d4c63d6863bfbf35296dc6589d7c3b2902b358ddb7b00eca8371b9dd090b1d7f8fe017b7aa7d27976e540c57468ddd94506f6590520e63ff253477766bfb1a72adf943c8cc4af5142af75e739e1dcc492098a6c4bfd265cb0b2a0ca5ce45e1f30e20d7ee75a87e5667fbba72b9023a7acd690cffcb34988c8e5600ea4ad77046a39a699f5522974bcde8ddaf69a705293cd325b1a432e74fa7972f4c7a3d1eafdf9fffc917dd853cf25bc5257129f63c045219ad58f511ddf89419fbfee981a5801a4d8a5875284bf1d2ca61c4fc2a60ed0007ca7152eacae2d387bbbe19ed6c3a4096ce6a05cfa7ff321009ed9710052cdcba2902aa12b4660b9e27418257e084bf28711f59ae08b942dd95287aa525667a9d11d40461743d6f2e69e98b92e014a455add172865fea974606cc1361065c269bfe4c8595755b8bc21b9895add571d6d693e0c629254a8157572aeb1a9295561e30a09852bcd3782e772a1bf0bb8246b7d14340887c408c995250f15f5880b12174bf508ee3cf9d9e1a3c6403f852d199ecd7bc0280def4d0b287a50f567bd25922597cced48656303c4f21370cc50a74292c3018dc089d132c2dd91fc60b8794500caeacd0742e8fc04fefb6aeb93679cfe08a24f0b500dbe09301b5e941e0e5a30115a433001dc401dcf073da28779c83e5093f96500f2b83f4f88ca1d47081d5fed166e728ad4ddc331f3620fa469da97a37acce094668652a0bae0252201898f490e4014480941d1aa837ed637a21b742ac75baf4f4e5dea0fe82056e3f4cb87280b0e60b9254515cec5286bca36f197d15c9aa743508419fe8a5ce01a6b472a6f6cb21edc8d773528ee29a593eb40e37502539bc9e1ab35e8fc407da69d75fec39670a8a46ddfa8a029801c7502bf5fea26d3465f1d72e8e9ffe06b3e52b007b86bccc9c6a4a8a2ab861a63e66fde8cd52e5b15611aa7e58ef273a85099ef097458fbf76c6843e91a46e8ec8d1f1e1d39b225aa8b58ab579d670ffd1af7d4e59480d3b4cf838c78b2f0ee626f79433b8e94b020d0b198394a1d3a704b8a04b3ac676af420ef6e584aa8747421c6aba6b68d280c2075da7246860caf17a6855e396335e3650a761d82982e7ed9fe45e0f13719c0ac9bbbe4ff48985bc369e5931b2ba795ec1e4036787dc50174285116bf5f8a29c95ccbb775052f30597620a27c3d03ea34ecee8db42c07abf4a7f52519ec07436a9be906092c89c40fade5585e513d6bdc3ee26ac6a0805869fa2dcc6edb088cf0e0eba1a85c8a059660f679561a2d3f5502be42fbc746c2d71c0ac6a8d7dd6b1dc68ad8707ff300fad381f04da9a3999ca69bc415a6b7c1a51e4eb5ad12a6ddc61643a056bb602488ebe7af557420ba9bc3fb168b69dd743db0a4185fc55a4e3a69ea2d1affe7b6ae90a964a2f1d447d4b9c8b5223d87151a1c6c16ee7969b960e0973e16110db85ed91a4419661d1898e36739fcd885fda528dc9189ae377cb2299b2172d98701f1bda1e2019903abd2d684a862e5ebfcf3dd8646fb6f5da7ac0d5693c80b2c5a3fed335e41a8ab21d450349aebfc342aa6d3d6df278fdf23ca1f734b6516a235f4df0e7c344eda60b0f7ff0089353a22d60f58d09090e5d7b0fee245e421507a189f49c43eee8a05124877ca879b28e9968179c88b5124015220a810ff28718c85a181ec0194e97167b90930130109a6c7f375d72e490cf925b517d05b0c228b9bb4ff62e0be906a41597ef3930869378b87ba682504198b2ff25304a82bccf20f39570dac18f7d6790bd32f8f857f0d9a61a6ac002130a4d9ebe5e7b78d53f9b9261a94c14ffbf4a04176a7c70e3c58291b80bfc83918078bff3ae221e4c6ca110a969a52a94af1b4b312ecef5beeebaaec971c6cf2a526c84536915a16b89a6360ffb66fe942c2e3396ea7fdf2099742421fb6af2b05c9a47954478c7dcead7003aa76e9a2be4e1a6c0de8567e6a58fa06e763fdcd8ed7b0cb5586f24eb9f5b867e535b79381d3123a5619a83eb63f0e51fa1c7a8afad5ac6005da311691c4b28f6e5a9918de28e1fc3f0bb341c60aa5742c6ce51ffacb429765aea6e6660396c3500cad30e606dbc226bfb267883f57be9c5dea2494e3f61cc8c2e1e229a1959829b1b372572510e7db8b8fb0088fedf259ee39fd0eca9c13f368d1b42fff7a163d2c4c9a0a0b8d51ac77032e8a1c7c440af3cd4e17c88f11e3de8c8e32f29bf79c44f49cc4c077ea9ed5ef4543d632952c2df88bd495902163c543016686d43fb86d3d3526ef1e33ab285332101162e8cf9c09f2c5ce631c61a733a86b5f2d9718a8627232a635891d3ab8e6a099b883e6f42b36f316b6f54a8a0548e67cb03ad612388f51e380f73cdb11ca798aecdc530e63cf58816d4f972254626732cc8c4c1a4a3de0d8a7acba89d37646bf386b9972ae9f2ae26dc0e941f913ec1c0e20325868e14796de53dc30d5e37160017cbd2036def19c93a940cfddc417a78063b7909b0d22d924e52654320028805fcedf4fe3b17a70772eb38a2561c5176193c074d38da5f8c4b52e080ad423563ba4547630351fcfcdb20c11af46e2f625c3b4dc385a439c2a442cf52740a5abb86f27fd295c9ae8e224e984cd33f0edbd34096efc85928268de869aa92344ce13f21e310afdba549b5a20ae02f21e8e5bb8de06763669c30de0ba22cb8956ba85441a95c9b859975a629bd101e90ab056842a53fa09ad7e0c290a750b54f85b93bda61a9dd6813831d229596da5a0af43f9ea72226bc2280229a7598e4ad811713e04df51e6eb8eb8b9b990ac9484d26aa5faf2ff3169fc992c9d4856d97d82788bc59899d92a60c1e2c3673a790e28071d7a5ef4dc3f9b9f938fb3adfd2cddbc71c29c797758e95a78159c93e4d7f824752cd552b9c95b1d8041ad7292da8b5112309de7f65df1b59fcaf4652f8919f494b39533a802ab59cce26377d2520529c8b2ca056afb46640c6bc230bf305a1b9b069406d98db237683a3370301f18611f2fe0630aaa8cfc1d0ddf9fcf14ff22ab9c11dd9270adf1188c415b72113aa7c3ea77d6c0efb093621c811b4331d3745189efc45222f1ac5dd9c8ceee1f60f413a165f24274ebd402c29e512c30f65e67855ed37ea76172ca07e7b5f5d36404edf3c3832ed7d45036c9bbaf72a45a1a6ba1a2749c4551fae4fe3b5a86317741a9ab4803d1b9dda5ec73f05b07caa5db11c5af64533fc91cc460df8677563f648420d5334c9d1113ee289c68ace4cb5cd23403e6b08132c4cd04a29028b232e76bc7259051ce5692531fc866e7a2283a8c50021812e5721422f64292721849fe3384b0160ee6ab2911f81defbed0c9b94ad9cc38438490627387e53b5412a637aa73079ac5fc81ab01242faf7950ecc77d90dd612ff254b3ea8f4d924ae278e764fd12c243ee6c7c0924dd2cde3700e3f239244361010bb277092b2492c01df6259457a18a924d7f4f0f0005db5b2f839d29f813c6450d92491086ec7767ddc2d5cbf179bd5b9c60710f085363f13093844dc1b8d7cb9b4742dcd8124083e862f6ae78b6b9d9653ad23f9f40d20c33caa490e302621236d7a57756d77da07fd9ba681600b96aa131b961ae52e752921e272aa34ed1691a3f18ced14614f67967c52f23f34571fb212c425bc18812cbc44953c1863056cc3e9a5a51ce04c014637ba7a8abe2430aeae4768085e5e10ada70b43202a4747dd760e9dc7cbc88001d33624173f3610e74d118adca2e0f12f62d6a84c253d2afd810749dab6b765eeabd2b554ca80c6f4da820e79e9320c9b6d10ef05884cb68b06a9a6f8587ef8ec1dbf961f6aa85673ed5f41e1a98485b70d2675dc69c2668d7f9532bc0a4cc8761f66279cc8a36a5cff0584fb69e669396598d5c66943b498561ad6eb5eb00e64b1deed8c6e1083c0ced716c8d98358af08c1455b48cb1c12701634587deed815087c31d4426356d37f6b93c96c1bbb1c3f8f22a06cf9d54643d6eaa05ce1928e75348ebf9a34e41c325a3ac3026145b1742a0116ac860a8bf89b753c7eecc705bf817cc2877bd93b91fff3c6b90ec7dd7179123fc0c068bb4f06efa10931547e82beff0690a0280e193263186397442ea3640c4af412da6838148962b6db1fa3a65f24a844018db88ea3e409c947a0373d46f1186ff30c68744d85a2b89b8e1d7bfb6066603bf674312c753c01d9540c2656c97ce32d3c048e49d935113c3a3c4aa6cee3b5e6cb5e17aa5bf28eb61065bc27132da9a1372e17222c405d8573a011cca025880aa5eec5c2ddb06cd5b353130e9db35a314e2c07e25a4e71bafb8e12f163fe1e8480d90fea1025462fdc28e3af7e26067c30e47bf43045efb39beb01f2fc84072742d1d829584dea9841d3b39b92b3d0ec487fc98d20c5397040608fe0e9edcdef68a0fbfcef4a1924577aad0bea2feb04ddcd60696b06ec827aa242d3b1f6cd1862ffd3e9ffe80ab129ac9fcab0622b901be2095b3cedff8f64ea8728555f867a0b7a7413d54acdcdf49cdf78c506fa42fbf49e7a73d890f3f77ad0fbe8c34b11cda2ec750afc2e55d2b4d14a5be49f31204d2f5f0ff27d063727e55908dd0f4ff849fbd4412ca1a0f406627752cee09e7f4c01c5cf4e0b18795f1dfcd340758eda34c766606c8271dc463ce082e89a716cdc96b9bea0453969c4d8a1e5f6b8c1bc73956b2bbe68d72f031c409f13e87101150ea0c10168b8010537a0e0025438800a0750e1021a9c808613d07032e0eb4ed498aec64642c71d1156e8648302996319ac7e604586509ae9d705985a2b2a9f82a394a165a9ded4b87d1ad76522077d37aeefc66119e6709fc6e9dbf87d3456511421f158e787cb97e3fb6abcd23442e62cef1b18a9c2ee6337c67205277b3c149b54aa7d412eac946d86b87690656b4e2e65364476145f985e02fc639f858657cc409a352bff98b0cbc73af8b993c1fc3fe625800451b65b5d003f416099701b83751aedf75f073fb0f6b2c58006fafb8c55bdddcf5820e211b3ac3f49f506bc8dde4069ae5903f732250f0698c6968aaf7e71ca344ef2e37f99602f47a0884905338dc22fc1591ab3e4bb18de3625699d58d1b565154c3201d1e2355e97066046c4b281a13ccc49fa20e824ce75877929247ca56ad4496c8fa1e21c7f2c5d06238d69a717e7da7b61a7865ba7eddea228b18ed479fb3ced1af958dd082720e4d0bc8327ab4db26285eb1475f7a63ff81a8b922a51a7f2d6458286dbb92e933a8f7c1a7b60413ec24fade41e1f6e916ff0edd95d4de1a68d05c81e3c3d5b4ad6fd0a2bd9c4bc07b981872699ef6c63b9fd03415f39260135213db7d14857e89a1854014530151b0c2c6ae04f7b3b7d028719b0db4225d6e265f2127a79cd7bdd16a86a38c702bc26db34e7212571aede48196430f116603dce6ddef97060c3de085c265e1fa2999be0f0b8634dd31b37b0596ec644bfe48623c0f93820b69fe0e9fde67769a0f3e8dd9532e2d54bd32b37aa596eee40bffc4627d8b93860c63ec1d7bb4def0140efd1b7973a961ca9290cb29739e834a16f9a032ab139f035e7405e71d0c105b24f4939823021015dc8bf1712a6369160d6586d6ada48c85f115ab02b3c4e6f5eea1113c70d51f960dc84960bf7f2e82bc8771b2cd935b46eb1eef01239bf3f642fe83818d6ef4a0799b9da43f0206e10e74d89e139c8efae2080cb260a8625624bb21d83b0cfb813fc0767af522323d8aa6eaf256eb54cad042f3823a384ff65d14cbfe023b747da43302dda88f3ffa40cbd034c1ed1bb71782d9e6c58702bafd3a43b36848511175823c93346d7e99f5220b2a06d3e9cd2f0d1894e61a174c671e10485847cde4b644892b5f27e2c0420f75912673bc54cf318585fd58b8a18ebbe52949ccc567d29ba46b3f995dc1c1cf234944149797a8423db5caf76f04c3879381cec0569b00097e53ed86ff389f1fbd663d382bb31344a6784013e6033768141b02ef06ae85da57d146892d58f1e80e804ab72eb609103013a1f66f6ae8bec2efa514b405434fecaafccfe00d82d0f7316b105e875e6c6dd0075f25e04148927aeb3e04be7ccd4adb39203c057ff2489926e934d995f140c03dd625faa6048f629c9003cbae779cb0dbd766f42c7534f1ca787df84efccf0f74e9dccfd0ce67c369eec2cd8c1c27778006fbad871ddc03d76325a61566eaa305a358e6875cd254d1e459316fbc2253376af7ca9b6ac145b06a86ae1431bbfad7f2fc1bbda566e2ba55c4add1ea00b80a80309249a410ba4fb8c0a1255224627bfa48893bb5dc5873876fb4a3a3e13bbcc311ab731ef79f2887cb61a3b4cec3765e1af7c4ed4b90a85512602341058392b76c299541c7255a199af923a3d75305feb2c00674a6d276b9b84fd2ebaa58a503162a95addddfb8f3bdc469503e1182fb4448c1b76530d2a6199b0546d516a290d759bb8ec618b407a897a21c035cb3b41ba16b6040c7918288634fc524efb7a66b0c4e530b0a6dbdba85454d39a1f95b44dd03ae6b4a4d9b3df4aaa0a720a55b4a51f0a76557b63f22ca879e2207641da5ba797908eb092b37499cb114302a0d5dcb5a950f6001c0dd3f70cd945e7238fce42802b158bce04cedcc3012185e9a41512dbee14a01f92fd16def871baf038253be7d105acd2134cc9bf010a8c42688c8ec39ec9514877a0d60e87e99a235a8d97f840f3a5d760412d3f8c161b7f5b2d8b4efd600d6873ff41a9b3742472a6690739f2eb69505ee2084e54d2850039e77ab89bb8fb938fc318e8e21d56612fa79112487f8aa7c39ce7601b8f047e71cd9276214fa4e2636a958183bd710a96c596e45cc05a4996548b340ace47036aaba9f2e41756e2d9e71af1d22eb0ca49dbfbb6ca29d5b0e5bff515c0db7fbb3e345d8fb2a8d3bbb8d5209fa8966df02f2c7d559f98b3ad14863015f07e1d6e49e2d24e67fa390072396456fffce06416ff53c7c8b57a94c30761bf0e90d8b43b7ca616be174368b1cbd52719cc9cc346df855efa9cb551ab9dc3080383508e207003c927e32d30b99220cfaea4dafc39a89399bcee380efe716d88a3e3f34573bd5c907675211cf096888e0b8d2b1729f69c85c2807b520e7d8fbcff35cfc09c8a05ae76482c87be3e04b8cfbe31a83d09dacc1688b4f33030ac7ca9b3d720410b88cbaee6d46775979a7ee0dabd062009c95f8b9ad73ced1a8dd88796ad1644fd58c8f4a0765c7dbd240de28836a67ef156da1e96e105b3629b799e9533ada2ef04be23eec0283a30668b4b9a693e01f2dc3de5811d337f8608c97dc9602fd3e002b92c30c00cfb72d3d05e7373f039c70b30b0dbf15b2cb6d0e59328908fcf6d735aeab47dea7f5337670ab1da6fcf9f651b4ad09019dc04336cee67cf0c43b94550957a7de4f3cadad98093c1d4cf8d7b9d27a240468c900d481fccb7b51b5dfb978dc23112a8aab2dfbbc2eba3aa1f9df8a4a8b3b1f77a0fca4cca1aa4d5ca05ed2ac2066fc72c01f289061f9066feff8a291b5d9ab0e726f2a85256c76c742d91f009ce6aa1ea1db803531a0512e3beac04a5ac91a59734aabe60321faa235114370f6e9c924811a8fb956d78966aadb9e17daec763d7a7e1d1cf304cf85a9f7ea183abf0ab345a918099fc9eb537078a842021e97a36eae81b5f78415319222cf1ca5231f143cb55f01e03acd05ba11864a621f0480385c6ec3abdd7a337bd06ec1431ccaba330cfd10def2907e6b84e0cc0833225f303e171e276db6931d293bfad305feb3d54c36261c9e8beaea89d66dc93e1661bd2153b6f21dd5a09a826a254bbe5a09f57e09b29bd5863c58346d41bc92fba0fb4cb839b1c1ca293bbe77ab887403b741e06dad7a87a7412447283b2a20b3678c5835ebac4efd655447d06557ba8984f85671c8293572f5d6a467c070aaaa0da51f8d1f726ca1c972e135579ccc45b008a6423c6e35866715c8b60d067e3f6d08c91f9911609f2548f39801fd12210d5b7984abfe80b0a70e8824afe080526c97ab597478c705fd24c4a686fc0e99188559d00e9d9bad809d0b8357c874c045a50884286ce74467c6800c4865765a3bd79dc85f4e11ad11213e320c4cfbf9b92c1688c714250df352111abae7cbcd5249e893ec8afa32d38103d476ca6832d5dbf52e72aaaa718e11aa5dedee11310c7aa84cb4b02c3aa77a9ad274aa4b23e885c51925393deb494980436e2746d0463b7fa4abf921dc5b62205a8d27c82fe17e4dc355807dd567e47372c3ccf4d1b376feb0bdda747b654174fba1688a9a0920d0d15786a0d229fad9e009bc9747bb689a17456046d1ffa846908ce221dc61b9088f9e1466191d634f9b8e6570ff118e13dd9905be3d3099cadba85aae1e2d1a711d89414031859ba6473bac0664eea7a6356308193c90a6e0d5df930c029c324252a874b959294f7fe00747257f0f48afc28e022d26b2280826f22c23d73de43437b38bcbf1fee143a3060f1fed08be127337eb9796715476cf8950708ea0a785e0e052b61f2ca1ee48cd5eeccc8967de0fb830350434df77a45c5a3407c33203d669631417a7e8cafffe3f385df2cf80453c7d7d6fbf38ec072e125fdd9f51e991fc3ca137937761892809501cf3e1fa0fe7a61cfdc6820b1aafd94b99ad092a94ea249e3db505583104affbf50af64f9791f124eac4845a5755e89f359c46f6b36f7f510643aa2e38b9ca43c818457aba155b61d0fe32554d19dca8ee77d8079e378bb723697cca4a39dbfd0698012a0c814c442a4831ae8b0908639234063004aa602e3990987e3a88810190ce64041639402415010fc032003e4b824d767b7121b31748e7e1265508dc019301a0cf0a101a1c1001f377845a0fc26e77d53f09aa7cd0d5cda28b940137d8de1f79beb140e71c312e4afcdf968418ae7de8f7d973ab2b7c8e8030f436300a2dfb4363b0600fd8654d0a7857aff5d68201f265a3212b66e25d13dfdf9d175deec0f0d7f0fd461987f048eda6fe3dfff923ec8d56dca2d858e161a71a031960c7e2001ac6719e76646985632a49bf3410eb522cf5afa462eb54fc2646449de74c26e95505838721115dd18358e37a528b75c5011d8e09b30387d2017bdc8fe6342c16a955ef6b6c5011a473a4135914133196d0c345d83bdf1aa47215984cd17d1c79763db4fc58ac17ca0554d504b34bd34daa2370b5d8026b1704ed0b8538897fb6df612f1cbd0380e6a29dc7ff1fe18f33bfda143e1c3d04243d019f3fd8107a53bdd74a7199ba527122ff23c9687ce8e97235bdb78832690d38b732118d0abd8e3f9f65b7b64819ca991a78fd4b54b75f233250527706307c1aa9e9deb5b00807da8095edaf7662c0679616093a280fc4af87d7ad72d83ed724120a719122382634f5deed60512b2a7c0f73c97ed0bcc07cc0e02b9efedb00936a5e56202ffa47387c07fb6529fc5e59831efcac754855caad1f12f46aab12842af3c95ecf9c208ed333aa1214059809c5742a397953ed5197ba1d2382583932b4436625063ad714190a31901a93a94851416a4fa820bfc1569798298a7416311b503645844c2f84ab91c3a054438a7d1e357e166a0f949cb606c07724e658a41931ea04eb3fddec9d34c63e1133c66e1cb818a35d881dc553a46a9df9aaeb98ecf142cd2e8275393070b4bc9618a8026b82c3b90ebc3e103e5bb4a23d8d6a7e95d69843c4efa3e7e7bfa90718630e4f3b8eae917d249b9438e312175df09668ce2aae7a2742af079e104d07b3682e0b3e637448aa5fdcec2414c6b38f294c002390a5acf4505b1ea21926a3399542077edab17e66e7aad9da3025bff36a53ab0efd7b8e71bd6f45526acce3e68acff14d0bfb849f7713fe72f9dc21afd3e8db8046421deb83aa8f4aa7f0fc240508419e204c227c438a8057b8e067668077bdfc7e75eda41924d24b2754015ecb90aa658699178294a860644c9740c45a91412b2d3c30b82874eb13419e519793eec6d5e2ad8ee8a0eec7172b21e17d785a0946e03175c8fbd5f3d673e1b9a83890689446e058eed923679599adcb41a3817a4200a6ab1e2fa26b134aad190713561ea7aa356bf6c5cb84e8f240cd2c69784b7f1775aad81a894955a20be1b728c3241b3222abf432cb42f472ad11f6d0d0784807a90adf74c3e6aaa686b58bdf870a4b2ad6edab0c3f39a58a53412d4d3110acb7580b26ec8a2d2c114a034f2800894b524880391284942cc412c1ea0ddad3fc1c8fa11367321d7e3e7f96fda54b9716466099b8e22ea20c833334e2085ed2060078120060415b3797bae471f08509250fb4626b402415c1415dd09aee6a244c744ff8ac345e95f5f9af2d99701ca89c4c3e14199ebd9be3aeb25fe60661fd105639b7065d76d4e9ecde6e3ceb141f95dc2f445a4794ca5243bec95acc8de9bf4c55d9d15784d8833482e1798ad4640306db51e469dfad354fe30b414de1d7242c73f45ea05794e2e65f20740138e59003ba27ddb866e71a1887188e15601fb819f3013e3178ef1005810cb08fee4ba971d07492bf768df252f0331e4210f396d81ac5b8c9f86b1d3e4b0e49054226f0727e5177838885cdc9a3688a4794ca8f3d0136de371ce8fd7b40a41f1e4637cf4d04fe6ad5737535e6a72f89e844c7d81ad1ffebf7481d3b38549523c5f3c75eff250601aef71d2bccc559569ce17b7a7f7595dde27e24cce91c26050d5817f30622d761a59ca531f5d42e55a405b81639a1ee00092de3d3cf72c315fb8431627c5fbf285a66e45b967927c0581e2f9f964cfa7197c08ab40ee9e7148651a98370dc50a654c6ea5fe8f40645e1512aeda115e08e136058aa6f597a44411e32c5e8a8fe6f338e6381cf6810151526a09122d27642edd409685f8875fb2655322e9429f23a92be579d17070e6590a702cda997aa90a3db13e484a74da91c25c4b9c8468c10d25aa59b7603900e92ddb633c93f6669a5ad59d571b7b6c62d97341a9418a2a22a0d6091ac21bacdba28724f820646b72531d0056efae619485ab67293deef026cef386f4a5fcff4ab77698db53a06703a7ecee306b74b886db217ed9810d1e8633a8f172c7ddd4c4058bd5e5bf7b9683faede26546e2cad5938153761b1c51e47307d78e497c208e12b2b9782b2e55800f6783c4d89ae188b2cc378220ca2113387e69672b24329cb6922371e97a76358cac5d779c90f5ffb3f75ea405e6bd97f4da2b10b5c675ea9bc2ce6f8f85c5168762e9903167d1f98b0e1a2d5d488b0634b3a1df0e4f3bf4f5a3e8d1271b2fbaab5a87cd6c86782aa795c9d07bdf9971a87487371179f8438ae5a3cf677aff1b3446d0f27f079a85e130eebc247ed54fed88619defdf3d6141abf535ec0daed1d7e9dea3ee813a1559e74c182a885e040c522e988e7866b62140abf665a94108a7c65769c75a5182c3de5cf80e692c7eb62aa435387bf90ca424bd4774ce356da1925d731f118cb4c616285817af631625d92fe659f011986e165fd8562cb8e6b4d5d2bada6e31ada0514ad0d5255a5fbf9de57049834090158caaf7a9f5edd3015cf5fa5c0d2dbf7041cba89c65a0dd9ebde9a10c4e74341ff2a6c052127405bdc34116e159b8cd8ecc26f9ada96a85b1146b41f5503d6b2561f39ebddd3868e0c4fb70f55862d0a032e5b247f8edc9178dc7f70401e2e7931ab576bc1b5aa5c8cbc5e5ede9772c524fb19a14612677abcc749cbafdd6f7480d810883f76399a27a56df21177ebb017da5b2af363e1e3966a9af7c1b41dc3e6473ce8beaa1683fc09477bdc8d04bd5752253ff22b75d5489eab114b1df93b88f579a6e9281c22521043bf0e6528f5ab61b58a346726e0e1ae00d086252a7cc801676e9b0bb17f17eff2ba7bddc077631c47069b4cad7471bc690207bcc1b253f3aa0bb5fbaa6096375e261829043d4980ebeadc1e712143f562fc23bdc6064f49e67ba1523ea594e4ff648cddaab8d772946d0359f8f824fe62d7d381125bbe5e801510f4755d5514dcfd3681a54f8894687158266008bb5af85844e6d125d6b4b25ea81fa5db28a3328612b9810cec27bac377cd6623e144f6db0b080b04275a227656341c9021144577e453a6d4162c4aa203d7c2ca7aed708ed2a78acb14e95fc4407aa2a303658272b03cb594948a82471efe369f8812b9276c9587c6291abff3c79fddbe93d138b9191cf68ac4ecc546aab98952303b37850d7300ff1a62f9d2ae42ec1a72b9a01eccc72c8c95d453c314ca14379739043c67783fa29061220b3433f04108990d1af381931473b91da73625f8c6845b4a4a2714dcfb21c5af73e40b7e70df323c9e5b4fd8dd4485a452aee40814ce4ba66c3215a625de45600915dd96803f41945ddb3589674b991aba2d314a0ae1cf8a1add4a574c88ae1d5c935ae82fe7e828c5d8acb7e22e397f3372d7f7f8299839440728f989545a812ff91372a29d7896cec37a54ca9197bcaaddbb40151567d2ae2be6c3cdf2a104435c62e10f224d14a7827ecd1ef0784c000f8536cc6f4f896a352873790b61b6b373c413943cf3be076973c9b0d00f81cf58bf7cf683d733a7a33c7769cd279eb300010945a9c14a20ab0bb60eb0688ed3ec8bef82aa3d818775ab47d185af3a5af7dc4b45b394fb18e67457ada7a792558d148a6b6b7e677a2b4586b6741c9941fa95b9c13ff1e13b4ba60eef39bd481131caeb86518607058aa52961f40364c523fc7581c93e65d16c0f769dc24202049002a79ee616f96d04247ed0c4affd93222012e9c38219fbc8f625ce17d5ea8366968770340611c9e6ba7338de5ec4ceac5fa58b03a66451e1b78ff38f23853868d21e637dd7887d50747f94011f7a7678358ce51f07a5f1606cfe800f4af5c701c20fa9385c3156b41ed3ed70ea11af0e2695d28b9f98bd3c70b7d241e105ddd85ad5821cd2c89077b857c0f6f0c46a4b12ecbea8bec0a0d7d644ba3ec4e5d84d9bda44a226e8e9538e8af7b62dc5ea7ca7346c6dcad7fde1fde468c0b994115430fe35e6fad7870d874adb2928a99e79a28854f230d74454fcfef8b36a1f540a36768725450c6faa9d0bc3ed9cf2eb40fdd48facb8722e512aed25b9297e396da84aee80f8e9fb038d95f5e9d409715f354e18bbe2efc338089c6f9759a8288227b81f273ec852490a18ddde0aeb920cc06530ccffc50727c33277293be09d34c0ebea8ff651ecc2edd0836e37a06a50bbfad55b14d349f81c3fd9d8597fa9c01382eebb81901242055ae24d3ed18cf659756dc0619d461d699041c819a012e83a8aa4bc797cf97ce4128b9daebb4887a763fec0b45cc3262871d353045e63149ec096f719ea8b9f357a46b976a4a52a94c46438f8186b2d77fbd17075b0e04a75bf826c068b1d4237345eaa16d9e0daba712e3834db89f6ad87f6c8084ba2a7c1b14868a2d84d66a8bfa7037b617dd285b1da66d29026426f9c5b3fd64f7037fede8944f77c9419c3980207d2b6cff9f5c06ff30b640854fee3c9bf111c02afea591ca7be5d081bc06e23ebebd5df60837e0c14daee885ed4920c4ac51867a9eb502051451bd60a0b17e93d928a0ba579d9b2f4d2b1f622bf51b394ee4c5b8f2476f9666efd24558745138510aa6fdce61609727eb9624967f9bbbf41fdc46b9dc3f06046ad286f433169001a831559fe2cdc1982136203f88b78886abc65e2504e48b78ad738f31ba7331a52a786368d4b1a2e705fdc080ff316d598246181010976c72a65a5500180351396c4d69c1709d05e33b468461d6a2af3980c3cbea2548667f46c69da8965246d3d05d32b4807ac933373a818aeacade32b51b34fc2036748cd826f985679194b0adb1a5990f365b92f63db11ecaa960a69a040f07efc7c8c0694f5f531cfca5da81a466c70da0c0c247c641ebb43ff25c30e15794993bd180b9865764bfb956ecaa47111d3c401965d8b4ee49913630b9f980c7834a9d5c97f9c3b939f47ece0aefae346e042ab367ba54201e95493a751cd1ec48d4ff45b323d795eab0d1c55428f66747876876245a9f5757a7e68058fe5696e0626991bca8e6b7657ef3ad70449b86b03c367c1e8b632fa647190b865a6b8d34420869846cb2f7967b073e0b340b570c4f988214e64fdbb7d30f298644219820d06c4e6d5e0cafae3629a54b4ca0c17825301bdd145f2b47962716a37cc9a306a54dcacdb3459e212acfb3b85d15be50d2e483e0ecd12e4df44080685a9865b327a6c86b38890627a61675d2a0f60cd79b5ad3200ea221a230bb3e26a6b10b67d24ca23559bee59c7822d59ae9a23ca73a7990209f4edf24fd6d2288cc5976eab3d58aa36dd77e68473d6edee82b7baeaa8731b26692b553d66c74d1d7676cd9ae3dc6176a2457e4357cec8822bd8cb84b150e599f51ada93fd145a34274c12e5f6bbc96d6f60d4fa3d74db76819aa85fd66d6e6b1eedf0d63648b9b90dc6d429aae8fc42ec5eaa35d14be79d32e131625267803388906314c1b64e1069c12acb3c257e431e44127ac3ed82b4fcc64aca75294f060d487e7ce9ed343ca437b1a94f39e30f56950b672489a65ce1ed21c9e2c4f75bae534871ee9961d4a84e862b7db0d8792def4c8327ad3a09c3138d448bd35a753e84d96383b5b9c5220e9bec2b367f668339fde7838c311c3b3a741195dd810e3ac16a83c7bc289445fb9ea744b4873b294af39dd228f64f98e0adf7ccc217d65195de22bec409975d9c1667526bfe963d4a06c826699d360ad3f0dca8a1355e499f0fdc01e4466ede144ca52fe98136926519a7530999eddd06213a6af06a53667cc349ca72f0dfbc1300502fa429ae9ab093a7de88ffc2950b7cc9efa53812ace74c938c414797987ec894f05591e0706f2b367c6f97d3db387ab35d566d296d1a88b92a6ab931053e4b50cf585dd1323cba376459896eef58593ce1bf651d3d60e9ab1d38ce11879450e9dc8da9968903628bb27aa482dbad02b7228a3cad45ea3c189e11fad1dd881c050de238a704286b539316d01b159489d80124bb840d9e0bb22f72751280d726f992e695a26cc03cc2659a4c1d77c42749147882ad24783dbb90d539ee862ea9ee9ca7e16eb5996c599f504e597d92357e4edc3ce36286bf2253eb2864bae13446056dde1a0a62756778208cceaf4863d918aac5d62a163d04e0e8144a12c82d5639e3e567875ed62ab3b6f380219054498d58f90e557f70922322f9c1a9a1913944006060a2230188d75c64f600242aa5611da22ca2631968cbd59e28c5c54c1c09fc5fab0094415ec49047d219749ecb248068632e6b231532e105f18a04474b1c7feb16c3000c3308cd6d74c4e8eaf199b31f4e4388531e8e4301665ccbebb6c3a91c32d5710c8c8c8982087209091915141ae8f2eb30683628b285b8d4e899225e3cdf2d8123385fe8b2e32cb25ead1b498daa8388988c9f664976366896b449521590351852a61852fac71c444bbb299f2a3070ec41714b9428fd1d4882e33d30dbb32a34761c912cc52aab27cd843fe6a30346c5b57d7366fba18135409da4033fe14318364090227b27c114df8b6c84483da83e83062b31b76b3ac6241ba0504417cd45a332e8b42d949f6315dacec630981a026a936b559802baeb8a2b5437e7ee2d003acfc631ec7bcbc361aeccc6a908806b39b35383922706c5012b1b1baa5735329afa5b8df31e10b59b9a5307dba4cb8595fb35821a84db1d17f2dd68964160e656eb1a56ee7161b867538b0635dfd1617209f329253b7f4a6bec9ef437d0f518fa8d3519f3f50f1b49d4e271c9e4ecf4e3f2d3dd3cbef74e2b6d3773aea8419d020fd11ddf551842f8c41a7874056d93efe88764998c8433ef5ee769c9ec2a1f564eeb4543f4ca552a9d60ed65bbc050e599848de52b773ea346b71432152e34e97653b1ca7a36ec9b78d43dd92a7727cf77459a93bb30977baacc72e47eace8c3a3d08cddefd910a5367e1389d763a664ebdfbdcf093638e79a332b697c2ad1dd93ba72561ea70c4c8acfad655ac837bf7185f4e0fbd14eeec7de61f4de88839935c7f734559f504bb45c9408d868965abc1d9e888f0b28e986f34481fe49475c45c44835eac717a9d51b5beabe976fe587ca6d46536fd48c50c09b79bcee2b676d49fde44ea2537461593fc6e0c2fd77b5edee4eb8aec3eafeeb3ecfaaa8ba33bc7e88ae248965344e1532473ef36cb7957cae4ef4a27e4543d0172ad5d6bf7a9246e74121f4e61edaa2b331d9c774ae110484ead72f7daf54075bf314fa1f7c3c3d889873ccec1bd7b365d11866607596c64faca3ffadd4d376c1edcbb296896b2f7c68e65f73ebd530f7b5bfc1ea666ea13f578439951a69fa6bde77d7ed7bebb4db9d345ddcbf1dd266454f11e84e6d34d77a39e5763eefc5d794596371c52822c65a630049cee749cdef974adc371ba46bbd4b7ed1b8dd34bfd467fb79e8b9157648efbf13d75ef863766486b47eaa737f11df5ee9bb73d77b7003072ea3060c457ee6ebc227fb7b58300397502e4d44f97003976588ccc29fca3efdd7bc6beec39bbcf9ff76c7a31f3b4eca70c631be7bd0c9f775abbbbd7dad1fd7b17a3cae931aaa45237f442efa8cb2e87f7cf6bed389d7b086465af0756390492310c6495e5ab3c0bd952ea11946596798b0bd0a24092b30ffb8868504edae5901905d46af2dce4878486334bc351227cf20b3421cd21102edaec5023a409d048a5a4921464d28f2a2585576d4c264d97c98f7cf956687cc8f331a4524a0aafaa529d1e7177d5cdaec2f248f5135d541d96495e552689df53a954ca43a5bca354582675573d8c2f99f4752ad46d427a32491e613e3e157bc5ba462a7b5ef6dbf6eea44a61524926c92472a9bbea7dbb7b5e97f250a757a1befed747a1505ee85d4b7d9dea8d5d2d0f1f8048ee70abf3de79477929eff574d4e9aa1baa544fdd76dde9aa772a7b3a1de5a94ea98a6559ea5b2a533de5a99eca541e0e332c4ba552d953e7529cea3bba6fdd8f4ef5d885dd877deb52a9ef43a152a99f50ef0a915975ba7dc36177d53f950a7f47794fa550de511895ea9cbaa177d37715a54f9d4e47e1d3877f743477787bfd72dfa8d5cc62588f113ef91b461c216be44db7845fdef1612448bb280c8f0e4e189766f29c47399436311ec62cc09833a6815583621a2c3b2c4f744bf86e14d12da6f78d38a25b324b83a55b253b1ca6538abbef7bec3c140a8542bd1e85eb53b7df97427df7f4b512e44ac7e35d2aab111663236e70e16baebbbbbb7b9553125b4197d5ba21692931ad4d449c30715e737dee467b19c77533e3eebdbb9dc7795dc4dc56c556850ee6b4119b119b119b11d334ab59ab6956d3ac66b50dc95a6b4f354dc3ae691a0f32eee459d35d9c3cefe4791e3ea95017954ae1907e38336d18485cdaaa5871d9d247c489ba21d5cd682bdaaa381171624372426d484e9b116a3b9d70b815499aaf6e27d4e9439df047b9ad8aad8aad8aad8aad0a9b440b433892cecb8f88137443da8aa2c441b22cb33765ddb5e67038eca5b8fcd1fce130c3f1ba08331a0d6b9b8966ab62abe26b4bc399342cabb5d61fa13dfd902ca3edce26eda9996eea2ccb3253cc32cb4cf73c53e6fd46775b7b5967268b754f2f7b77aecbb0d9655c167ee0d9bbebcc740e875ffefc66c2916638b4d8eca46dc2168ab6536cce491fb199a9cd2ca5449c681aae2876c825c5964dfbf4286686f6167bc819596b5927efd8c31fadddc5697b7798dbb66f716ee7b68de3ba731b4a957a5fb59251fdf4d58ddd57ddc6a18781b0b276acc3198e260c84489645b81ff2f6d88a3bb5f6ca1e2f3fedcb449c18929b862bb232e4927e84a65b29abe58e307a17a81d98b4daa18838b19d2b92dfb8a41fde6396f4a347d90dc7cc4ff6f050d216c9da2b6afb36eca27edb5651f25e639cd1edf5decd1b0e4d78d5a0b49c1572a5318cb906a527b31acb19695c91c62571469c51175d74f76e668a7db67dca703864356e7b72a1be6b29a96718f5ec294d3beade148dc319ce3cd339edf3a276f06d38fc9c53725660ae6b2b85978db546b2c59fc5914a61b76a71c6e97c61eb64960755dba4acaf5c915cb19c6c1a9d233b3a47767aa0f39282da1767855cb1dc91ed81ce0e4f8fcf6b87079f947587a7c7e7c559a1b3e3a373c41538cc3a1c3e4e2061be7f387ca0f013a83b41042647fd56b1b74ef770e8237badd3e9a75a3d1ca33dec2e6466294480f281c24f3831e40a278cc10d74b8031eae80411d0a2230280c85ea5f8763e6b94845968ff447910275d51d22619e8857c0a4304d0b18148e02752886404104e643a15028140af513d880417d080acfccccd0d880f94e03c27c9fa161c17ca7c960becfcc9c208379e2a42423c38279c22ec9c8c07c9f390108f3c4cc830cccf713d880f9308be89b2e141c80210b344128e2822dc0a88a583145910d9e70861f182239335798d141d052198460b21934610b2cb022095f8802a6efb5890e1b1c5035c06cb48b3553ecadb54184922768c44ce936ee446be44c3fcd596bb78c44b57b98d164fba869a7d3bb5d60867641bba05dd02e689bcce73cd93ec63e92ad668d84dcb7d34988cc590fd34fd86bd3dbf46a7ab51cb779576e5a585f617d85f515d617689475393a5fa15f9d345df5d52948ddd2cf5ae97bb1802ef49ae0cf62757777777777777777d7d7566db7a3dfd1a21f242c3a0ddab72ae601e689675077aaa6d76a7af7132522da4e4d977e812e85b4a8857e8927ff90e3cf124ddebecfbb31cf9c0653b2f6d6de2c389bbbf0851307d3f141cf1eda7be2b4565f9428aad8ad3e8156a37ad4d73cecde3cdddb6eda6eda6eda7ef2bebdce6004e4e8fd2e2ffd16b17777769d9f3132e95897a4e2fa6afc8285ef47e5f00e0d0b395dbeafea7af43d2c04084e7e40743b52729d69d0765ef8fad3e36ec5b8067ba57fe69c2653e795743b325ab14f70e34cc7a1e9b2238ae69898539ec74023b76115f9b0996c6796b29da9f1f3d5a16c310cc3300cc3300cc3300cc35ed2e1c0565d8fedd3bb9cf13ebf3d9ce71e4a9a1d1387a7af6ffd77ebb74bdf75e10beb0b6b22c897b3a36ebadc4f5b05b2950af9a66ef9a940a98ec776137785c8cc61d49d39882b3b882ad6064b50783a753b4e5888ccdf372e7c3d71a24b8773105d629e39dd42e74fe5681ca5bb1bfa6647258f3c82c924794c92c724794c6d327561d660d6f538610e0b91b9c3a1e95fb7c3bbe907f7e37b10d39ba014c986ebcca75d1a442c36a812b8fdb0e5e818f18dfe81ebaecddba544f40b140c45546949a6412392646bed37ad86352a15826c4d7a55caf6a66e4763aac2e58a061a9fc17af195e4d8e5f81a5df555a3d0dd826b78195861f8b6d03dac56c8b9e98c4517882e1953b4db2b115dbcbf450b142a869ad584d0ec3de694bd9bbc9b753dbc6f58488e20327b980b69956131e1e8a5485a701b2da24888a851a7d813859488fe745bf8b467b929919c4bdeeda7d2bb8b658ad32d28ac93550ea752d3191af6180eb59bded51f179ce9d62435a922d5a35b81a28a3d772b15a28afde9d62ac895a02a748564b9c3f5c788e9aa439d622f93d17c35d91ebbc1706c7785e862b37da5e9166de67facb05df535a98c2f9448aed8371094dc1242f3f79853d645e17b45979fe882cd242396183e2e6421db87958a6cb310a7c8f67328c6c8bc3dac484958489f51b68f712249caf6767b4d4a2459dfc4f5952d0e6bee13658b6204901a1e22b984f3d347457686a6527431125de8ebbb31aad0ae4777add5e568715bf62e8e79edd61fd3ad40a6a04eb1b7918d58900c857d4e6b81eb4f54b1a7b7beba20efd5126acf1a9c3a3449d45d12750b875bda3b3c83b2bd14a95b13964275fbec745518dc79f5bc845e70275d8ec63fbc07911c143e0db7b47313075b0f4f9c062d97ad3e160dcb6223f7eb0362e1e064fb8d06e7d577cd9ccc3c1e23b376d674d59f4eb10ffa108824db872cd9be22e51ffdb0fe68f86bd07e622ed2a965187b6dcd23055b44093b7651f86451f75152d3fe6274a133f1459620ae4417f9449e58ca44152d7c618d2c29cd323a337a39d3384d339b858f9332b90451ca544a250d383a44bb456ed9b9977e726b60890669cbcc392b656525560dcecbe388a1580d32d1555aa2ee0a1d151d1a3a2a8c3a37746da0c2a3bda98993b76e2f8bb8b8bdb4e99616b7ac5b935b16b7973952471ee916d56deaf69247f6481ff9923fdced65d0902492486451bb7e7b792491dad53433c5be4626b959b2b6f518adc7c8de59965191bd7384f1ed6aeffbe29462d8c97ceb36cdccb28fc6c5856172593fb9f17f271491d87e1565db3d44f6ad9be55993ed7441b6efb0f0c5f8c9c3fe37932b732bc64fae753d5a8ff1acf51826adc730897185c86c02e34e9e1e9f1797ced0748abddc341053a24b661fa78dd6b64c6ea6712737e6d6cdf27461dfc29e656f62cfc2bec47e65afb24fdd39348926923b8bee346ad0bebbf3c81eb3af7726994a0d2e3528d3a0fd2f9de914fbedd2223a64966faf043f3367da4f1d1ad95ecbb2c79ce130cb324dcbecdbf64fb64782c2a6226718eb7a64efa0e8d2f1c8b20c6796d6b4e85317589fac1e413e197b638f2ef37651f89a983fe9969a6e69ddc56b8bd7b7916e61bdbe7158bcbe758ea85e53afa8d7b74fb77cafef57ff748bf7faaeefa016eaa1266a245df43eea96ecf58dd4ae599324d779b394274eaef5db8661309eddbebd2fae69dcddde7df774d4fd9ebaa8ab6eeaabab7ac95d9dc52db989c969cc10994933b3afb6dee2ba38ebb6f8bc31c69d09c28b9fe03031de097d456aadb5d61aa30bad940bb9bec3c2377f529fc560dd18264ede753d589fe7589fac08e3ce233b3c2fee5ca23234d1056b42e6931b2fcd649fdc0c6bdd79a4c17a1777ee34c8d3603debce9e06eb4deef469b09ec59daf06eb4beefc69b07e75275083f5aa3b831aac4fdd29d4603deacea149d460fde94e24b3681acda33b9166528349a6d25cea94991c147cf321a5c9d408a95b8e66ced8537ca044831a884b4fd22d7355e91a1d123367eac87c21a5a199393595ba20633db0374d115a135d220fac254d953537b9b694527675d1a9216cb25b7e2cf2934311ccb13d1a55382a3e941c1ba5c1f8d89252afb523a2e0b0971dfd464d3436184f23a68dbb1cf4de27bd6723531dde447d4241da953af618e3f7184f345297a553b6c6dc447d37fc32f7d30d59997b77c31899c34dc8ac81d8bdabe1d51bc48c681083c39de896231aa4c3d79aa7adc951eea45bb0a3192fc292f64edf61cf6ce4894f1ac4be6a10bb5dc1e79dc87675d04ffaf989693e82086df5c3538ee3501ac4fe06b192632b4c85a5b0925596a9be2f851121b3cf8f667556cc6bd14cb3d763f58486e6a23018d62101e6fa6559966559a6d9b36851ab1f3b28e5300ac5631c86c3bde0e6d4cfbc27be7eec30889d0dfe68d13c7128a318b6cfed73db52f0c9cf47eea1b63d44c5387cd8e5bd28bef0d9b6666b621e60966d38fcb23561b0413abf81d145bac4c8a4946cb3da2131bfb5b2cb471470c3adec1906b30bf17169eed8f0617f7c5123d86188e5c70e4199e62a879c5cc31ab9bed2dee873dfd094652a4b1759ce141955ea6bad36707d0785af9e060a0b78848fe8125b4e4fe6467b967d1f8b154350939718343ddc6e2f6feceed6be811d84664d7bcc49eb41afe11b53521e32d763af4164a6e0fcc2b6b988a7ac5b6690c63f70ec9098f8c70f247e4ccc7d0b9fc4f40527dd1284c617a5bd21895b1549a044105144d5304bc4120d12916f34d81856319011404044dc2862da67cf6816a98d06bbd2241e98d446f2899a16b6cf50ee23ba4a9f18bd4e478755b9e3d37538a274c5ce43fd644fc4891a6b03dd1fdc87e4ba9256de466a2336699f1c5f2ba60f83504f9a4e236e71a79f7ff6451cee8834c6184eda753a4c1e4ddaf5c76e61516565b1496c72d3af8409cd58e050f2e0d0904c261395524a2965030dc9b1ca2b77ea69bf64571fb60f0edb27c7cbeeb24a19a58c554a1e13d73dddea6aaf77aae2ab933b99876946bb53d395a03d0c424d268edea4c48f68fac961d3e735ee9b768df39ebdaf84a995c0b3633b1c9acd326bb35556825c99973e92a7be95205f76da27a905127ea0f084274021d9b16e071623eb7f548c688b28e1a928d76fb227ad98cd34d3c675dee943a554ab121626ac162e5aaf9ea26cffbcbde0a6942d2526e537185c3c8d2d27efdde30bc987584139de00b1425bc3358166ca8cdf2690d14948aed41fd93861ada24abde97e51e5252721f9828a2bf52cdf7712b247f6c822b56be562a75e0f9e0f1ee8a5dcf3667828f7b6239a23efdee3683c19f736202020200fdfdb8c3623cfdb74747474bc17f7b69f1f2fc6bd8dc6f33c0fc6bd2d27c7f34c474747475e8b7bdb8ce7b5ee99808080803c17f74c46469e67d2d1d1d1f14aee997e7e3c937b261acff33c16f74c39399ea71d1d1d257997484c339ea7baa70101010179a97b9a915ca9469ea7e9e8e8e878da7f3cedc7d3683ccff372bc7720be6839f6de99e81679ef40a2cb090808c8bb8f76654033a51a79df115f32231d1d2274bcd36857a673c4bcf7e37d467cc97ee44a8d4de365edca686696f125cbf1e83dcf4b0171c8f2a187191d4a6786ef74378e86ab39ba47471c4dae8721c3c34046401708a8fec5bb179bcef6e36d3a2f361d9d9f5c7f128383b1d16c39de46f362a3d96872727deb646b613ada663cd3510bd3d1d13693eb5db44c2e4c402623cf04d4c204046494eb5bb0b412938ee9c733e9949874747e723dcb246361a231e578269a12138d892627d79bac2c4a3b32cd78da114a3b3a32cde47a162a2ca50169469e0684d280808c727dc957354d47fbf1341d4d47d3d17e72fdca9ae1a31a8d96a3d168341a8d9673bd4b2cbd69036404040464d49993b3eafce8e8e8fce4fa793b6fab69f3049aae6fdaef9b5fb67997ebe178ee375d9c117b7424d71cab865cdf197d6176749421b52b88e7b4cb1efd00c48c8ec6bb6c26a503df9dcab4cbca40e9a1f3e19d25c21d9276d99b1ba3ae769de5e9ded32e4c49e955bbda75d6a6eb3022a269a476b5ebb024dd4952bbb09e9e56aa5ded3a6ca80b6a1776733384a4eb301e9e29fc4417964ebbaa92d28e524fd761365df79e6957252a42d4365d579374aba276d59e9ea39ea4aeab439d4fbbeacdcdcf4d50778458bbefdde54dbba89292c451d2e9ecbb6a433453ea52f70ec4179aa43b13dd727a7720d1451e7d45dd7dd4ee3be20b1dfab921a246ee4ea35df4e60823a20b7d77b05bb6d087dc7d467ca13cddb3764da59952dfe50e25ba78efba777856e1a399be320d7b94cdccc0216bc681c0e1f7c3510ace66727d04735786efe483b5443de01928d8f6c8c018d7abae07c35a0bc35a9b7a1703b3180c0cb3a8179c0b0cc35c6018f69d6c2d0cc35c6018766a61628161f51e4b3351c26c945828d57725598a2809518a88a89e5b5955ed194ad56f282cab3795e7a6def455ab345ddc4db561b13eacc4d11325a249b89d5c591f517d56866fe6d022a13d433d3d3d439f99ac1e0dbde1a99b77e9b7244bbb2519dd8e94ec19e16c3853a7d425e16e389ba54ea946fa26ec926e3c9b5c3d23b956ec464fa4993493748be566a7a373b74493e56434194d4693b1e829e7a4d3ae20ba25da29758b952b571a754afd36b9ec882bc26265474af3a87245727de76e89b369b03e3b9a2eeea68bc817ce0571a5beeeb058dfe46a8e38184495fa906341ae37713551a5beb3e2e34e425ffca250fd4928578ba45bc22ec91ad5675b24756a97d4256997caebbb254fc69bd9ecbc995ccd9c46f2e5932bf5df37818cb2ecfb58ac77d88c36827dae66bab6f8357703d54daeade3d9d68e0c9fedb0f049a1f2ec12875d925cbf652d67ccaa372f871aac0fe24aa24ea9cfeeaac17a95cbea947a7a8f623d9999545f59e06597f4217136ed9a3793abe1565c4dae9f3773baba241dc32e29d72fd74c7197d460fd1abe2e09ec1f35d8e2769a6f6ee5b2453365be0653274f7b2357e66dd17445dbd37323b7788aa0ec69498c6639c6a8041b7b627cec91f59ea22a82d224a6d0cf15508c5d8cbbc9194db7d4e4799ac9cc6733332b923b8aa4810c6000e5023294b040053005262081081c023192788003603480010b50c049025a3e7a20c0051247f038006b8789113a72b0c051840160565975a30004400d2045c48bcb2780930d574b370400025043088fdb58568250f901081a9a294b017de86106663590010c5c40090b548002139040042090c4031cd000062c400109f0d10301481cc1e3003b8cd0910347110680c9370a40800110f1e222001bae96216a04000042b0ac04a14203881f52401f7a9821e3c68c1224e3ca8c12244485a322222bcc98018475b0ce111efcf8f0488182922323c68df93331aecc9fa12901ce4dcd133264c8c0288251642486b99404690c3f9218ad1bf3894f3ef1792581480868093162f4b8b871716324063c477266707262d332b931b392c8cc4aa2f4861a1a9938b45a492c8458080d51816484040b2c5690c9eac8eac88e0f805e3d403031d1a141d1148122c7880d0a56ab99d4edacca9f91cc9fd11119649492caa05215f1dcdcdcf0bc72f7fa6182443214e484cea79839239c111c1af4ece8d8e074ba51d294e2921c6c8accd081e3926443d9105116928e8ab6b06d422c184b0d95a01a2268d89ce862c9c0437a04030f29cf051e529f1bc497239478487190fbef5399e8f261818794a6020f690d051ed29b2ce3fd5987f80264020fe71d72dff72792e86242020fa751041e4e24083c9c49607021bec822493c9c5e188a2e273dd1256b1ef070be1cf0700235e0e1148a2119f0e2fd69135d7267010fa711053c9c3909e8cf9ab982f822837c3c9c2dc8fd5924bab092a24b0af578d84a0878386590e8561ae28b443ae261afe128bab4088a2e99c4e3610f1de06123d9f1b08d72b39822be7411231ef6147ea2cb4a27baba46c7c3dec9f1b07b703cec9cce417ce923453cec1d449792e8ea1d033cec22300fdb26770a0ff1a5836e3c94572c4597af28ba5aa8000fe511011ecaa4015cf585f8d248443c9461208a2e289fe8eaa49787f2c7e5a10c12c0654fb71c21becc227265da78289190fb26ba668deba1c46979287586f8e9351e4a18e4be74417c99478244d7dc9929f3423c8c4b007828677200581e4637e47e07e2cb0c9235d1a57b9f0920d1255b79188f8278188b54ee23baa6d04c99341e462be4fe8ef832531ec69f1f1e1201c469cccd457b830f7dc8edc3630c5933501ece9967c4175a83125d2ab5912b3366004f0ce0f0cbdd72011cb2f211f2c52251c2c774d9220b085540880238646520f2c5124d00879d99982e2b011c819804015c44bed8a1248ad44c97bd79000e3307d434a0e6887cb13c0c38b2335d98d2027614b093809d20f9626d7ce0b0e7a5d07461443d709821400a11e5792424927cc1921c81c39e58cf4c99cf78e0303b00de814356c6868cc06e74d4e4a8c1517344be603c451cc9b32a19008719ccce7cde09922f98cd8da03cdf42d35589664a0184082034001cb27223c9974a4423e5398bc8975ae711f9525f3ac9a59304d049368a642e1c662d38fc86c03570d8992acd20f9526d28d144922f34003b00d811628725680587ac2f081c7e2a3470d893f6d4c8173a94c94c17bda13c72651e08fc034e4a016bb20f3864f5806760146c8344becca42424bf31632199b1d0504ea25450248a040b593e9c704041092a222a2a2a22ba3766194764967164c70740af1e2060ac736fe7f70cf5f4f40ce59861c80c83d2d022148a2c9f438d501b8a821fdb1bcb636fec8dbdb13c2f6ecc318c5e5c9963181d91414629a90c306014bdb89d4f94ac8d929292b561dd985dbc5cbc7e9890e591cca119349d7072327d300cc330acc58db925736b1a99389306b367ee4c9d6903172d3a6f580f3684f5cc19330b25164a4b729845e60c1d58ac2459de603cd80d76336f3224b3c9105116928e8ab6c0820516cab2f3aa62b556cc26c79cda49dde6e92004f54ffbf41056ab3e429484888828498e59a5ea225dd351e8344edfb40a52298ceabcd59ea19e9e9ea13cef1dc9ec1d2199616629091abe0fd71b9e7a536fea0d4f9ea79f1fa02714110945c1f370773b734ad5464949a9dae469923839f2063e3c47240e380e13252122224ab2b4540779236b24cd1d3a673d433d3d3d43797eab441149e4421224232fdc4c572633298f7c89acef9bf426ec99698d1a4264f92944936700a6c52c9d37132773323319ceda7809752693c97459f8fa332d13d62c3f516e4e6af20cad15dd19be10cc926381df63b556d8ccc6f762013d93892fb648aecc8735cb74ca7c89a07cbd0588a07c9c2e03c414593f3b2bd42289a33bc31752997a9a2b0e87648a35991c6510c180943078c316512cbde931da39ce7b8663e215598ad4c3faaeebba6e5ec3d445f7852fc61899bd8befe1186984157bdabd9b5e6f9885f55e96634c093d1c336fb4ec141061bcfad3a9d6572e37c6b5bbd16bba008eb10c1928283366f4d0830f3e80604aca0f3f0001040d1a2a2a4104b1b2c2c222040002506388215ebc754fcebaadd535e9dbe2a95b72efa68e5deff73677b30be072b7f7bee2d857fb9d5c7b30a6af1c193272745050748ecc987164a7871e76787cf081a707047b7c52527c5e3ffcf0fa0102881f201a34808254548284820842686865e51811cb591e368644882200bc1e330ac0510da4212e04120014e50018d5381a0229d763492d495c4a3604d092e44a624349002d0470c39aed6d5cd70dbb6cdf7287b86149b6af710370c317d91e0037bcd95e881bcec8f62c77e5862ad93e881b0a91ed556e3844b6a7714301647b206e38806cffc30de313b27dca0de314d91ebc61a442b6f7e186918a6cdfc30d6316b2fd8c1ba2dc307e21dbcbb8611443b6c7378c64c8f631aa4415fb7bb3a862ffcb4515fb18f78b2af630ee2aaad8bfb8aca8627f724fa28a7deb3eaad8b32e4a54b137b96054b15f5d1a51c5bee4b24415fbd4ad1155ecbd6b23aad8639788a8629fdd1b45181155ec4df788a862af5d1f51c57ebb0c882af62c6e1251c5dabbb84a449538c537f366ca71c14c20ab4596fde0e128afe4f8b394246fb4d21f1ad44a2abd30775aa0ecab9e360ac0df88b24531a57265882e698498522f4346aba552e550166d399445ae29d329f531b4f1bda60c7d3568445f2052ae8fef90be5016b584985256924515cf22a997d46993abcc74cdef63b15e3f79a0891da36ceda0f65366be64be39e9949932260f67d0a4427b6132343235a8c12ad429350731a55e094c3a0e4e58717c40842f094f78ac383527aad479b4c3835cbf94e448ac5a83bc30c599c03a42ae3508b1e24495ba86cf3eac91b7b8001f253c10e18127636fec8df530d2b73e4b4639362b75f999acd7e1a0af067fa64c0d7d75cbcca4892e514497194818c81af9822dc9214829240e6ab2b5967b0d24e6bc2d7a931676ad8549810412b8e2f8ecfcf4d497c9b56f9a8976ecb4c54db4164d78da293635cca3b7f4d6de3e521bfe287990d45357bd6becebb1255b5363ed12ed72a4505cc96d748b2a75d6d0f62d12d1a912ef9eb2f4aee7ddcebb9c7737ef9abcab7937f3aef52e4654bd4b65cdccde6d8f05a6d160bfa491682c38f9995e23bad0d7b344170c9432576225d98703404d41857d3844aedfa83db5db4d9296743a3e533754734a66e4e843d61ed2882fd9585ce4b8db5d0e8a0204e57e79bba72c8d4415d34f79bb9e9297b7db0d7579bbdc0e97b7bbcd225bdeaee9c894b7abfd6879bb59e3d8259bb78b116179bb95e752591355660612554cbfd1464415d3ed8c12554ce7e4278d8a34d83c3b0d56aed5e1987346a6e6549de8f2bdbefa20baa0a19621b670f2a58fd43a9b0ed90d7da4da737fd1f1e06eb9d05adb6db5567f3746b6faf6b678b29e1b36cf9499295527579c211ca006e9f0f5b38753a68fea90e8631fa5f8e7155d9e105dbc57a0985326b3d77dfb1e0ffaceb2a8d5f4d6a0a006a9d7e1c82a0ea5ae04bccadc487c3ceca11e0f3b080148d44f99e94a00ae3838823efe1e2c1602be0f091c3ba576c5a93962f85ab43dea35411fc344c6363a7cf6a6871567b31c0d42338dadec15e7b6b287606e651bae400dd68a131423937276acc341bf297df5f4457fbac5645f616298c831aaa8ba1e298a6d8fa01dcda36ffbd6d21b73c2de0495464264f8012215bbad9a75ec1a2b845c2f8bfac52aca9505d3ee66b128718b66dbb7958811edc414b688b2c922bd4483b57e462c69229db9e9d634b6177fa3e7125165fb46bd7f33a5d64f080cb7bc7afc6ecc94aafa4909b952b99294bc32d7daa9e19bdfb0afbe6cf4ac562b95ea29d553aaa7ec4b56a7abd3d5e957efbcf0612beec64cf5d93dab155e3dd53bd125f258ad5658d513a8a7504fa29e453d8fba14c75d1cdce9672ac5aa6046a3caa457a5faf671a74e07e569900524815edddd5d1abea4d466c2c9249f6e41cdd70467cdcc803ea1c9229a2f9ae09149d157e3cafc8d39e794b912f3a92f65b1e6245092a442744597d3bf7a095792a492402a09a47a8852015d2028aac79cb20a3f1ed5f5b057adaefa4a857f9c545f9d54b8a5fa4a95c2a82b6b1a8c9d924aa552a994b4e16eb4d13274e6fa9a7993baeae1a441ae57e1d860d743f5548dcdbc892e91870a67ac66e99ddee99d68f3ea96d58d7c2bece149386b7c4aaecddcc531cf2a798b78a3721c7765c9b59d8e9997882ad2266f9dcdf6c22179e2691355ea69cb7409e6ebed595c19534a9eb56cf62d4a1ea24a1e6a98514949c9634eb9a4e4114b9b064f48b9feab47d5a41ef625dd8e94ba99c8af67fac866c2a5ae902cab9092d4e6296a243daef65142be34116a501b215a91b35c827be7e88bd105eb6957cbcc94faecf501b18426d1ac611de99c4aa7cdacb182045a3d85696d999e691a2cdf28c23a394ac9518f5d8e59336fa64db7a4706bf5d4ace996d6aa8fe4fa2628584b502d53c4a6658cb44c4ecb1c69199ead447eb1eb9192a74f83dd3495bee46147914b56a732334d135d3a1eab53da46481121be7c443bd145f57a12fa58257775290baee4d67ca39ef57d5dd2255dd2e177674d83d839287cf5a104ca15ffc0aefdc7ea41644ecda7ce5d996550b7582c058b57ae5e7597882af5f3ae210db91e45e3034f2658dab0c046b29cef088be73e9bc96c194daae761ef347b1dd64054a9e764963fd1c58473683888cc2e28866712aa0970832d76531a34a337a3ad797b2ca311062102e6ecda0d93c8f560a7c3872c83d02cafdd7aaad1e82284e21605431a6960614a160a84d7fcb3cc3a9ee7bb9ed6cac93ae71b0975d8c95feed820c7715c9e51c58a872c79b2e0d97dea178d3032ed13b9421f51e8fb45505e6e5ca10f25145986444196f8f3f592c6b84d56cb28b39e11c41ea7cbc613ec3158d831ec2477bf6395a2d6539ef44d2b6d23be9e950fcc5f22bebf90fb15854deedc58064439a4b9c76045c6c0d72257312746e485298ce18a298c810e79d5a09cc218d090575f970025cad9623f27f66d727d9b9d7eb396abb43b00915c11106997a3bb55411e4de567af618a2f1ce56f0aa2a51ccfc5557e01b6d8c3171fed8612be0bc3b7c50e0c1fd62d3ffa5bd7bdce3abfd4b76c666c36c7e1509ab27bc761f6ee37667689ec5cb169db63a88685b4c8da63e83ff023fbdce8468f7dcb9e7dcb708c869252a6ee762044764e323946950f8715cf6f73fb69abdf1e4aae7e7bddb09998872b60547f82c6c24041044685e34cc166cc8c91a18e98636caec768376f0e7a13677a76204476f2c4b28985b4c8dec3994d4cf54cfb9d5385e1180f4b1185eaabd56ab55aad562b954aa552a9543f810d18d587a8f03753e46ab55aad56ab9fc006cc0ab33aa24fdef4983b29a511d174ce1412d9c9dcb7badd1ffdd60e2dcf29afc812ab43c670a8e10c4ba17aab7096a9076cc6ee650ccf1e8d5b1689d68e2cd303b119c34266e354a39ed8bee99a73ce1885082315391eb3d6da1885b0df361c32914d16c3300cc3304cd3281339d486d45aabb5d65a6b2d7d8c292108e69cb31f638af645610203c59c73ce39677737f6211543d1af94523ac410a11339d46e8a01d03e89e450e331718c4268979d0e994d9387cca66cd2b0eb04762886a838c10c3e80821bb2a00322983a8488145e30811d8060831f94400b3073ce89a1c070104c38ce5a6badb5fe043660eaa170227b142630500cc1acb5d65afb13d880b187c209130e7270041ac4c00956c0817122c3ac99223f2412e9e0018a21232ee4210830df4c915996655996659642f135866118866158c550c44ec1d94c9173ce39e7fc096cc04c0c05263287d85e0561db6208a494524a8982d2097df46144e263a6c8974caebc58363e968d0e5feddc32aad496730e5bccdb0947444191605491510587c481d2f9fa61d6208e54b69452887e3b4dfa7e4885c8de21e9ad4fb6c7e8198ee4ec186561616161d9628c99065f8ccc356268a69143960fb182bed879d28794521a14d322c5ba1edd0eec9623a2218402f49a2c7dc11cf3d849748b44ede0fb7c4a96f807f6cc763ce803a8d2a8d4eb174c83a053866604000000048315000030100c864342d15014c8c266db0114800d8ca44c5a581d49c4248581c8186390410040060000000000a00100a2434aa49803dec163596551263f045bd048b77b22bbc8f18c7274931f022d34a4db3d114317369b41bc687dec439ffbec14ad6dfa14c16077b447eb66dc0adcbc3f34fe876ad68b5671bc417f81d2fdc8ca697e4a677e6b3a67b5c8c132aa784d6799402f6036e441af6b2bfd20c9ed7632c86cfdf906f7650874883bf627a9a3a3bace0588151354467ac3dfc97b9121c7374147c5c26f1a957984f69c84d4cc63908fd93f0c43b0aa856bf483fc79e0497f6d0700b77a67bf8380110f801fec7f7e382c5964ea5cb90dc141116c391fcea54f9cd3c26d5a591d6b8c4af38306b71265569868e2e613717ec710c79b3ec5f9d2899e1abf6a03c49a4e16887c29bca660ec90b7e393a76097b4667c0d479bd6ac9dfc5d7a17e7af1de3d4e7974c10739e32b7fff4251cd75a339a3fe6d3de77c69e54c26c482810c2b4854f2012953cc8bb10b980f382ecc4beb6c0fb767bbde86ff37e228b4d7b048cc66032273b9c0e901c35d2ca72358bb64f8d2f8c0300249e5f643d4f57f0f8be165c02bf39a917e8e2a5785368fb25074aba3b7eb887297fa9d043dff25a3256d885ab8744e7e4c39fa9cc21011478bef46d6412dadcb85a80c6c3946004580daf2ff4d5070c779bde7bb1bd3cc5ac7b3eedbb96c18e90de048104153ea294a9adfe4784a6db38663b0bf744bbaf2cf464f36c61f7aa423971356ca466dd6f1058140f28b657573bb028757e2acd5823ec12f5e7d689b3a9d0010451224a7a2b5b393a5b6c17a47a0571d000c05594d234ba5eed45d24357d53824c13738764e6882ae91ca058cb2b6cb7220bcfbd0c093be86dfd52815730318b1f0181ef185211e2d908eef68e865465031a256ac7293e20e9b69c27d7ef59325ce057e821730f844c4b804acbfce71ae4388aa289b43b1ab8bb9872c24fe735dbd19cbf032ea1fa6f306c7fa1d9952441f2360624732ca2140120c81a9cc6c59a2001bb3748e43c02fc2c768b35f49ee1f3d9b233fa22e8206e1caa7bb4e50caaf748406e3925fa9086d2b303dce8028e3d6063993f5f5ee1de12d3d4e85506ebfb7c16fad406633fcfec473a25df1adc425582fd8c1e633243c70a52d864067eff303e089887a0d1524d6ee145cebf717fd0d05a9060253853ac3d798dad34a0bb8d94b27bdd6de58903acf0b6359c01d0bf4771ca400c42689c4adb9d2a15d6cbdcc540fe3a11540e9d701f60a22bd047be2e2d2b49de4023e34941d4d57cf908a5ad3205b32f3307906fb195f0902edccc7b54412347f11051ff230a1876f1f84653cf0ad9665ec6680687bca895609b0bc2bebecafd2095b9b6ef6a48e01423f0f0b866e692c6a63c55bd18a1fd26781290ddcc8733b237a240f4aa6dd0339cb347a71a95387db2c3414944c118f98a792e61fb1a883a8bfa82161705befd2d2e775ae544283e8b90d5d8f8504173440cda451935e72581ea3d8e4db6762f8b3cea852cbbc0b0e391aa6edc9c559c2cc843ecc91c4aeb8d48440dba0ea0920d3d2d21d646d035c9b1450312a1ce4dc46ef256e854762432393c544c2ad9487d506956cff1db2eb43bc70c6fb1912dcc5d97836e02e169e2ee71bd677ebc9b2646561bc320008527852a3dc9e77e97f32ccbc2c3db393e9b4de3bf0d3be7a1c54b8ce167363b5b1a71174af17b8c6ad35a38bd509b376a977d0d9d3485f13a5d5d2ede8e551bbd0375c70c61f4ffb76e61a5df4aaa7e6642002627422f31b6e5f16d545af3cad678a38fec1f9fe942e0ffba7a3df930083d35f58a4e2847ecb2e6e8ea573ba5ceca76667113fbf9e46a17ad84406ee79ba84150b2108ada97f5e6467e5f0e77b6af0620b4d94148720859109dbc6a1ec465ad5b3de3848efcf35ea5d31293fa5b236a6187b3592a95f86b8817a4f35a6397117a0a3535581deba78e9fc70f54e0209846ffedca64f79aa6eeed426d70bbff91cffe11537b9834ca1dcfa4b0e9ed85017d61ebaaad64a8fd003b4adf50a813039bad931567cbe5c8559854afff8f781f621086de07c4eb05152923764693a4d264ac8f9612cdda9f4cd708d456a46181f07842f424c33bf9c7b817f4fbde0ee4fbb519b4e78135828211caef909315a51406407f9ceadd3e970d1534a8e12db747eb047aa3de756fc68fa9793ead196ff0e1264f02c0a531a43a2949fcc3f1e8ec7f908ea74efb05e9b65410af9127a92ee89696043a6ba4c06f00d1a7dd2209dd410b9dcd234608314b79e2398825937f99c86aa550b82989036c099c4a576a164ffdd534fd1bc7dd16cc7fec7f2448060ce07fe2539893a557cd8bc08c319067b16c10403fdb97344249e66317c46132192e6713072449f34281ff8e2d099a2f9bc46be95a430bdf3cc49afd1436a01d9a827df9e4e2d9a00b7c1483b067f2bf3dd0ef2711f4279f07de0096765381c6684b7aca9f91301c5901c5c0f085a97c5b042c604a7922bc02f0391f74142bf016d96b375a3dfe6259fe390f17a282691f4a61b340e3c6ec96a6685e9b90783efbe253416503a63e35b103c4a066d7d9db95884de4bfc1befabbdc7987d4ca28078a9a8b5e36f77b266977dae393eaef23a45d6463bcbf98d7242c13fb3d853f497a3ebdb7858c65c934c8893a6395ca10e619b6a7d7b07303d4bf96102924b9b55221102bc18d0ce5664c6834f9881256177d2f5aa66617cc5709235681f33fdcf4b3f3ffa73e85748283bf02f4b1e5c70807dfc99173de97cc90e0a0c4621f0c37867c158c8a1e21ca9c31f188203814fcda3250e1ab8c6794a751de0d0d6a2c138ca5ea085b2ee2dee3c050c5096b7e0c2e0753e650df27b961e8c278fb8aab9db01653c951698c3a0a346d7b019e22cf35e71d6b045fa90dd469ef0f6648c5653092b13752be879b9ab17168d00b7b557483d2439821c0b7ace12667901ee62509cf8052b606d39c88f2cbaf25bf91824ea1e718c2e37e86481ce68183118c7b35fda17a98c07a2d6e8f5908a8de990d42aecbd87ea3b1b8a5608cc1f7ed049a4da593df9bbd7664b7e525fdd6b969c649faacbc978f7675c1604709752b9ce927f9ee2b058eede7ec391b7a75edee860ebeafc1bf988633caeba694ebfffd1c9eca4bd093ae2dd8424ea8b3a1f518fc50225dc0c263e6c17227d1f0e3e643a6d36d24de0ddc9b0859db26b8a72a1df9c96da8e027c770c61648ae187b950b33ea1bf25ba7c2177c58c69923c6f2d079f4e81364922d0697e0b2b3323cf5172e740b056f2fdc0029aa4df2e323a854a13d49068b2434ad293cc51a58974b0ced84f734624680a9685df905c3eafb459c6dde38fba7b0a0f5020741b4d9cc2a566c94596bf26d6ce4fa66ec8e99c936fb0116a3d48f747af56a64e093f82cef823d5a2930a92da2e485a4dd753adc6adb2783038177e18af2289a7eeb67c3ce19ee63dbec8a5c75b823d8e2a3f45533f6cf0d4c08318fe4cc89e82d6aa3ee87bc7f85caffa787d53aa0e0eee7964c59a35113705eccd94a69002e8f9b3b742300e9ad9e4be81d04083dd398560e261c5a045b4572652b893ca1a844917f3c6d27f12b6067867e318b88f890c2149280365eddcd4175b31a4c8c7373ee1b05331428633ae83deeb8dedc4f4053690b0a4be03a2f34b5639455aa26d5f0cf7d38291dbe1e2ebf128741a9863fe8bbc656c86c2f68ceb3d8c0fdfd86019b73a94dacc76631a7b1708ab3a81256e1dd188c23956070d03d3fcb761ed6125ea0e72e003fd784d0bf26fc63d13475f4368afad69ba08102ed6ffb1ff2c3226680db78a076e0c49e3de587865ef1d1f0a9579944282f8a56fa66e232774b0d2c79b688461bdc5c1090717a0209f250b4445b5135319a3e2281cf697b7e028b2c16b3cd5afadccf133ec0e8615ea3c2437e5d8c825543eb248055bbb7a0dc1dcf296a36d8d83bd46a7e3af6e7d66d7bd185f74631b97055ea4a7e0c29a4615ec008bf6e235721ab7c1ac34137861892fa4a1efe82004621fee7520c5d2c0c5595d98a6b08f05722f0bce39cf087a3d9943b8e5b7177581bea72173c52c3746aa4049aaea0df0ea4e3e23e706044adc179aa568d026c6662bbf862044086d6cc709ffda8c0b456852e237df10309d401261696ebbbdbf0a17b102f3584a013d6bf2b85c6003b364818999057f41270bd36d7051e653bb319c94998f47f7d76bb0b0d8ff9591e2e72f8d06911d1b0895b93e48d210690c2ca50578f353479513e87eb36e1c978476df74e91137b5c40b089cdb4a0fde110a35c081ac11e16438c2735862f71a472aba5102796bf8ab7411e1c2123ebb73a40e55fba155d857f0b2339450a374fee7111b48a27f9868b81bfa1ac3f16b045a880e3d7762d05559c901869fb65b9c54dbcf28d0d2dee531502115baac4fbd95b00bb4bbf109380c034ea9949f8478d8f8bcd5c37b9807b0be6db74767442a7fec36f2551312fea90dd71f9bf238608614cd6815552cf9f032ad8376c70429987a9ba03c4152c5d16a7b9c05912c04743141a93417015738c186822605c0e1d32c70fd944d057f2aa44313461fbec939bb6f81011ba6f12d254fdd520b1fb217832ac5fe1d7db1c97edd488836f7af9327820f83a7150473470bafa6817fa4235a308052ca0bd9e1c3d42b1d0ebde34605832b9181693c138493e291c7ceba34a9a232d4d3821d2eac18588284d27d4979f6daa68a9eb04c21f0685784f9305512a4b159d09ff572f707fd0442e74faf9aea3a2e623f35d4567d63e0cbec08490312216b067298e6c71b475ad3307b5e21e59f11e1c1218709065345ada578a2332ee90f786d8ad37f56c7049cd337bcabd00d3772ebc8ceef87ae42b043cad6f52688de3cbc1c80b4dacfd75035fd1b67ca22d195192a61c19d31f0f513c28857efdb4c5e0b1434832c610b7cdce35d74a9b48ef1e7bccb0ef272f2c99e3b82097454054e8e885de84e96986291a7cb27e2f588d1890823c09c0dd0bb1a1498a74136d58e3c173317b7d47bef584a570d3876397b10856403bad7c8676b134212c8dd3e2dbef017f399c6c21b2c8f75e28cf81afa7386a9596766c67c560262adaf010524c85739f3a12b0ab824a0b57c3d4c6cdd83d94e091ff98629fd2ba8a0635549728ffa7ffe666a8d948cf927fab28596a9b9bd3705cea6dfd7d1566f35ab23466032755aa2ef737b9ed372641ee6cfff9bb26cd5394b602c8c1877628cb7ba7a10cd653b26d9fd7510541efd1fa79ab17ffdb098e7598b6a444b4ffe1c3042a61f270ee32b2a941bb75d9dd64d0a6fafff0043a5db8c174da261c86f47ba2d35e0a2d9df17ecc0496f03e8a1b971ef220653ee8dbb09a3f529335b888f208d5eb54e167643d403948ee8f9fccdf87ca9de93ad43ec4098d5797ad2b19d3ea76d8b27cb0c825fd6ddb1f9aef29c16cda3e472848eac447d164e744437a2b463c5e8aefadab6a42a3a8cc5715cd11e02f92ff08fe9fae5fabb9f54b7c4f72b31e4e89300f86c7251126d050500e56ca9635a2086c52974d9503d72052d9958d7e3af56ce1161646c1685658a32928ea99684f3ea43d7260d5ed28dbe4a4a6afe1ce156a01c0e09c210945a07a3fa2a47e27c57729b9b97f158c578b9013c680e69726422e0a09800d1b5f1cc76b791aa4e1276dc639b27ffa1d0cc6b6175507c5144d0d765c31532c656c40de0a1341b5e3bcca274e23647d6a4c2cb0f0bfb238534fe3f0ee462ed9b89a5bd07149e10bf3264d5247c0e31a26cb84923d79b1f8564a7d39251009dce68732dc26b64b3563f0060d9764d0ac31204fcd777abc3b5b141020f70cdf15c36f305d76c7975c807a9b0f163b92cabd8689a819fd0a1ec83f2b99d3e8d1fe2de2dc81649b7298285f678b7cf16ec219c230181d2a905c1441826a31ee57801130b1a04c30a39c73a333b4c470f1e2702c9234fa35935a80b4ac88a8d8efee4f1811d4383191a787659868a6132dcf47f95830774922612ce354b56e934837bec7553b50d5120c9ce0c1232dc1e08ee208c87ddcca3363988512fcf0326c9fdf530d0de1ef0531974e6e0f54c6e10ed8b9fc558fd78023b8a8a11417057f2a08ced6d365fa474751e7144bed1f26f58126b670c8da594c3b3794ea8d25d211e4199074b9da034708b737e509d1ed06d2fbc2b2154410c04ab7aa1d4b91085401f20cf289be4d7f6ecb3db9cce68c939d9f110e2a9ed3605f696b4ad96ece7d2094398ce3dd6e7f90b2ad695293e1b679ca274d1a49214fa910684b8b39651dd5e9ea51a5aa5911730f94b31d236858a4cf615430ae9b729b90bc27dc279713d302144fe59e516999e9d543e664db437e5919b02d7ea5fd4ef6b87cb41b01e09dce6d3cead246cc53b5089d01415ef90646c37cbed0e2e10ce9c5f888454b7912bfb6b75e45ddf4ff0d98563156f101740f8ac1e36f0344aa8767497c2846a166b371f6d43fdc23ca1eaae6f1239c228af4f587835079e89afd5ead581b79fe6fea80e70c176d5fe3a9a92a822c3cf152fc0f6e5b609ab0f6c2588daf64777fa619a83e0f187916a9fa8a184096b2d8873b99fc62b37c0d6b3c0d8cbf774ab5ab99c7045c820dfc2ed7b528f1e1f9edeb3055c4842f1e680305529ceb364527c8eba1e3057102a0c5e47d74e5ca892d3e09d400c410cfc89cc8f2ec8413a6bb1de1e219677af0d24b1ff5c7f4e55f7f56bfe99076a303612fdd26fca31ffbf8fe811f1fb64d19eb289f5c000f8d86297460b3971a33f1c2c71ad4adc8a9c1c6a1428549c593a9925937fa0887bcca5d558019a663c9c897d505e294ad156f3ad1ddd757fa9ce1869e547d7035c25b85beea5c4e6576fe2b3834a388ce612fec9a56599344dd8f0cb144ca05be173f7d8becf3619c4a60670652dc654008a640d3a366b90e868ac72cdbac1b4b53568f305421e84ca171b8237cdad36340c8cf33018a0e55dccfdf3069a5be7e8bf81c29280f1c8e7117d55a098372b4d11e62f0482c457f3361042bed6f24883e9f2a9fbb5152fe61498d981d3cece5771214791484de006172e8e043d459062bd6f979afdaa3cf6b734b8a71dd30f7fa31c05a8a247ee34f63867d0fcc23b4dcb33fc39e5462061c3a1f8730227faf446545e2b08dd63efa755701ebf99c2502aca0738721a789f7dfb899e959c7f7d7401fc20cc6bbe1b0a258e3e99a1964e52b2a004cb988cb059f1250acc08314e8c7dc83c872c7cbaaadb6559a147d04f405bceec2ff10c65b270c50c97c71de66852f819ee0e403164c13c52464130f786d28f4b6adabd80f3424f5112fca35d42854698fb7c9b8bc0b7ab3ae6a9b66b6f42c5e6563994d6af8c2efcb73a3843c01647d178a1c8556830b5ebb572c6eb193fb689e60b4d32290c7815905d14b97b81694ca67d50654def3c035406ae780b3dcaeb6f5fd1390219bf74e933057d0febd4e6f7c29c2a5e1baf156062bf8fb95ba68eef3c1f162020afa335cb7f486f746e193e1e448c7f26203b9b418979943e088a50dcfbf00895581e7fbb27d6d2a05b53a08e98584da3dab988c9eff49733032fc74b5a7093416844e4196ff45c0fa672412b7d0896b682956116152cd09c6cb959f327447326851ddb0123a9c49096c499a0b01997f6199e55d29ed6698751c799dcdc0b0e05e55ee801e2029921321a7fcddb767ea9cd884801e571c7241a0067e5bba362cb1ce78ecea535295e1fcd12a8a0f24fedfd18886ebd0e27e5d69c260dce4378ead69ecc621af02c1f3b92bc0118a3758142d70a75ce3afc5b8ef64128e882e7cb768a3433d64853498702e1ab16d950a7e71d63bde52e9279141c68f08f6e9ff758c6ec8801a0b6dce87b120c21449a92d36eef8977316a7518825c8506537bbdb6511864291cec4a87c335c20a7ee19be9f0c612c4c4f6aec611f3354e61922dee936e9665325e6d8a36dc502dcc86c00b1b9748c61ab79e082513e41406da9d279a134e0c0a33506811a1208c78088cdf51149e6f7ecd5c0058dfa0e4a3a6f0ac2e25362094a42d0c0c97a650222bfd55467da601eb32888a99a5b9ac1dccec799c4f82737a613796f8abe98202819cf39266be364d0258d553dcdc1b4167d330d8249651dbc5b6d21a1b902b03ad054d26973d070b606641e2efe4ac33bb1fbc219b145d6c46e8987204080ddb83c0f227ac3bc79e0bf0b16434a963d37b49bc0e9ef3e75d5afdf9eb85d5b26c4306845d40b4c74fd645419e0f50c3335697c05ddc05491079316848ca9cecd77629cdbb0229757f07f4c0bd594ed4086e38c6165905fc2a4caeffa88ae27680dd01bb46a7d80be5a839961a56e1e3d26992501b4202af761cc41686d133cc9efbbde7e35affc37a92c5fdd3d5f7a22571a78c8e52a63e2c97e957732235f066247d29313fa2ece8eee775c3b4596f4dac091873f69866b1af4c0ee97a1803c807c3025c54d0c367203702ef613f861a9380719c72d236197bf072a81f36fae0d40b2bb627469f943d622311d54328f2aa1c244e4320cd4fb871bdfbff5cab747d905bfec623a977ad3706ef66cb74c57d56e48469d8d52110a9d02d91ab3a48eb9af3813fd252322bf1725f9c966cfa04d17f4316cfa8b20023f303d5c445a29c239f7f4d09e7230de9d60c2230d083c880f8dac76a029e8df5ae1debabd8874d3cd195fdf585a1e770cb8c18c52a5631c5544cb115536cc514abd8c52846318a2986628ba998622aa618c538627889d12d0292473defb72664856f484dfa4958a0fc65b02d937f998969a59bd1b4eeb294bbd34191343bf36d28cf68b1627ab01aedc07967b441874b6fc2460277eee6a4222b146a8b0291bb18c0e571a8118eff0d6f95994b05eb4951222476dfd221144f1fa64109c294c11749729d061527f0e5f8c1bdf7a754641cfb7261a34eb4b4c55cbae41db16a23095f050523c7deac1628f8c9b0dba8a96f18edc4ee2485384fe2a7b5fc6cad4fa6356c7379a0ed27b516af2d9a2e1005180335cc724db98e7d34336a6fd484b3f5934bce143903383afc5d8bedfd3089c949b8c5939aba6f42175d47064481bf73bc429377e4b197cf1e21917acc6f1d5fda792388d4c85ff6c0ffec61ff7e392c88a631a42bd520826d3f585e7ea254fed86a5c41d45eff00aef49d021903e2218906b314af00a0289241a476ffdbfea2203a14bf4204fe160efdb5b730ba067c01f04bc62052df7fd8affeb22bfef9ebae203adebf1084cf20e2ea7f3ab4fed949ff70ebae203ae8bf9c1d31f0cebea2534602220e211385f41b1b41c4a3ffa27c471095fa75a34f48e8a6190ea95514c52fe88a8e497fdfc35bd0b7205251feb31ffcb973ffffe50982e808999d48dc41c44dd8fbb0dae11eb74f9b04112fbb87e640215510ae219d02111c71049959241944fc1c92f0f8c520ca34784fa24dec581b3b47fb777436d525888e19a0723b88a6a5f17627870b22d8e3d3e5a9a0340e27114447f34d26e04afcb1cfd32ee02062851aaaa642b8b7d452c4612cdae503fd2b4904e4965aaeef74065f390cb41096e5f50c5f7b9714cea3f540d0434751d58444b754ec58b709921ed247403fba2934dedb90eda09329005ca8d9321da78153cbc9733a72db4fc5a0d6baa82f9d2a76e735dba47704841cfdf0c1d075c45161ac9414dbe41739ed4408759b533178a63548f064e4a0d9caa3abd30b8367648385dce5e6e7232834720086748cea3ca640423a6dfc6393be302c4b167c8eaf325ffec9c1f6140cde744d08fd98396f76ef28e9f5cae08dd068219739f96904228c1e882189aa86a72198800ecdc30950471a71364133a41ff837b1d07385b814fba9e2ddd8891c7433d3212f7701b916cbd4dde8f2a45c13946fc76a189794d7e931316af28b9a6dcdd54d230194c41399f43123d33b33b4eae9c17f7016f3d7eca6f52184c2a8269fd2e1b28b668b01332fb92bed7e8a8595c315c8183b1ea99056c718d6b7c82d60569f6b0479c50660c629994faaee8885a2313ae4da7d0a510bac1d789f8bd23c0b7fec60d22148994b322ba76d7575711e64e189e5476473ccc19a521f164f83742b103968ef48f64b1b651f5f0b2543a6e40f890126c67138a361007e7c51107eb3b0ae1ce0daaca20d0ce896ce84e07d0195aaabc6d752acfca3371c21a708ac240ef2819d0418db3f82fcda24041c2a2411f0ef20e2d06800d1b438d8018416c004fea10b08294c8070a771cc61a7d3fe50551c0e0ca0ea358e1f938b00e4f70f0e033145013847b2ff4e89bd914ac6e1c1ffbdd6e330900cf5dfbd7be6c7208dbb7ff50e3208b0c0939e59c019fc2d66102325b2ffa614781fd4a2a6aa03fe4e3a8800827bff17fb8daee07b66b0fda927436b0f84f0e7cc42367112fa29fbcf8f0c75aef937d11f4c07fafe7380219b38167ecaf6e7ef4339f7fb2fa080701a90e4e81484b4f70fed1f6a3aeddf2c656868798686ce008ae8b22bb13f8a694bee34bb8f212a614d9fdaddf45704538cfea7ad075b4a57ccbc43ff8977df4615e7239563e40acf313f4e83efdb788954bed0ff93bffd3dc8cddbe77e112c6f36331f89c12da6520d880b78221eefa7c317e21f18a120614f0bb91528063f2f8676ec1cfee4b394069829b03f7f3a59319bc8d32d647b14654ff32741bb0d1a94fdfb0086a1b50d76db16e8dee2d9903edb28090f645ab8a832481b81223d98a465bcfaadac9e369d36aaa8980cbf3668dfa9599ac80ef90e72e7e90f66f159dbfcd399aed240ee88483d19ef76553ffb81dc1a1ead13e25fd5f4258b5d7909677acc61e9e01a34fb9a0d4627c479add94916baf224c8f59cd3b2d35568fe373bc1fc901f5efccd204779f97b8b5e461edef4f2691ac68323954bf748b91c5a3c86c339b5710e966f6bea5d55486393c1bc178fe0dd7a1fb2df1b3790fc4edcec4c4fe366b75a8d382b4d3224d4381471a141ca9386188fba5cdafffc787318bc6b9f043353c792224919291aa66f969d9912651b0a517580a6fe01c1eeb6d834b0d3e9dd5603d3b0d7f56f436b7d3b1171b5786f7d487701dc20c8203699cf3f82d39a3ae6c7b1fbd0ee4c7fe6cc7a91b8af57d9345b31443cae2a870fe8e0be2db45adc5645fc175b9eea0220ed39149afe87781a9360c3c452f4c31a11252e209c72151a43e09479289531ea3545d89412877d5f18ad4c0876eb50266898db2aeae38d31cc96b50ec43ab265a196ac7c7c2cc20f9c89062d37ed5b4503197fd18c4565b8d772151063bdc604c7e835171b5a3e2d1428eb5f42a0814284d2ea5faf28b8f0a8bf59db3fa34d370d01687a21dac04b007ceffa1c20ec34f948d74d4fdc40c7406459298101f2a4bd8880f74e417ef22455a10428fe03f0fb02b8444cd04c3f806b02b61c509c22bca476722f3d07502ed959ee4e51aebd31d0aa896e8beee66cbac4739d82ffa083903530f3c1878c8affaf97f60fe44b42326a3160a6313bb844a18c7436fe872fd5b02872baafbf486c2dc62f04790a65b6e11424c25be826d8d480782949d01bd9e10601c2443dacd9f3cf5bd87d40f95e73e4278b35ea970dffe457c0c5d93f2279e329464ed6242e3a91a994dfa431b22237ee50764fc61acc3d61e0bed28ea370efca89dcba62ed42f0c8dcb1adb23e4f7dd54afda553b0eebaf112bebdebc2a06088162d758328941d24b2b9382e9c90495bd171fe43811ea5b89ae79294c0cee892f71b508b80f072305ad47a16cb169678a1ffe019a7d771d055bcb2808c516d381cb16a353a094d241aa7509d3e13bddf1623d0e6732cf4aef3924ce7f6dd0b259269404a49f9a4a5ddb4b6adfb85365553d7ac3bc024469e8ca0cd09489cd4149d32dca622f504301ea46819e1c64933c722c69de298ac42f4b2a2147a2e08d43d4006ed080f141eea1013290f8744d9ce3b3c5344cb7b3984c92f9066c640c3b52ccd7e636806a718c455600e91acfeb9952a5e1a2535263bd9ba641a0690ec942aac39d5b8dec5c9d9670172ac8041fb0f836986d7b2302a81a506d026bbc20ef15f1110f98f5812be0f740c570a6a0ef64435d727c09a227777f7192ff93d8f0b5607ca1a3d204c6a91870c6cb2997d875872db304119843b6f702da10bc9dbf92ca3ae247631a0bf622e1c183cbc1850fe54fb42ca81010a1bba624d5b9ddb195b1c54de1865bdc60ea72ee13d23e34343fad4cf258ca26dd475b31ef2cf01c609ec19a162e53d30ef9d1609ec1cb5e1520749da3e467e127539060c940f234cd91e19420f36445b1ac9de1fbcbfb53a4720a65b8138c16622cff30f95cb65c55229d2c02b2f9756536507d9e5623a90cb852ae159ef08d92c2d809216d5acf67c4f4e87da13544b03e781ef935a36a7124215093e8faa943aa5579b5509a1b2e497472aa54ea9c566aa215491ecf36895aa577ab1998a102a487e7aa4520815123e1e5115c20a894fcf3715576a7542d116dd4b7e5c314524af71bba7eefd2f70c827fca87b98f87a11f300f15b7c4b89def817dfa5a2cffb79df52d1f7febcb784e87b1fef5d2a7abc9ff72f153defc77b4b8a9ef7e1bda5a2c7fb78ff52d1f37e26bca545bf94e89688ce524d7896887e49d12d2dbaa536e12d15fd25a2b344744b616aafd41b034ef37d686227a3f29571ef25dd928a221343d0a6b6c8fbe4eab55e46dc6dd5f49654365da0ac96deea3d461172f9c05b109af6e2e7cbe5aa7a47da17879d6b7c37e951f31d995fdbd2b657ba2a4d5456cca09aed62dfcff5aa7a0fbd1639195fb6c0490f32eb98f9d92cedbd4fc7a5a265c708a2c916f15fb9d0ebc0214f88d9c9e6dd6fb36b27a404d11a0443dee7ac3b05a3d2472db441ad1edf1a4f569a5ef23e3ccf8b48c049e2d5dd93608a01133f60b293f1b7da84026466e99efb99851422800666522c869bd97871ef5d33d735ac21404929c26d6b0dc148b56ba0089e4cf065ef1532ac249e062a5b0c0e795dd80b04a5f9e46dd34cc183ea26a704d91a447f09b1b19beb450c3d6cd5a3cd91e512a9b6cb7b2cf8269e9c41b0d1945a1aa16e160a7159713d6a1bbe09e4d8e9f5bf9605401a0e85adaa205f58d7686ed473a961b234fdd9dcdd0b0b3f8540e63b43b9c996dac31c1adf2d4eb885e82791f95718c45f6388189fe249fd4d116d2e33bdf411fc0f1a8a225cc21683d7fa25cee46d97b8a27c1932e6fe6c36d51cc9acd0ff7f60b28f75c4d9b2f876e2fd7d9209eb38df6f7474c7f45eed5a80c64943d87518267d0ce07a3f3dc99623f88cd05ef823e45d2a69c525708d2689c65d91c26880cf7de31833f6898c0df93f90113f351e06d003efb3b6c3c8d856fb3e5a74bb7e78e98208a28ac7b17a70c12e9dacc5d44cd6a9b25b524960fed1001725b25cb24037fd4666bfb3f7ff0f3a0006db690432222e19cc2aad9e925264be69256e104bf9c27a2b8888906b175b11b5dccb04325298bb3b2fbabae789c7482c7f2cf0def2d2a9e399b8b68a7526bbf8690fa5cd4a5cdab5528aa9c057effccc35e33cb42bd97779f6f5a3c310f32cc66be32fb394990abb08aa650eb23c8b5f9aaeea7e229d849bf9cec9c323980106cf22c0ae73c4328cb4de2ff888adf8c2c394fa0139753cb946c60f00b3155f66330c7eac946f614c5cd9cf819694b21639162b3eae17d153feb44afef7a5a163f7db1ed2f962435c455740936bab787c7c3c4030d4c25bec6deb6bf416314693db80035b48cb6a65d907efdc70ef7d3b745b5172ce04932e25cd642aa60525233a608ca53813ec4613c175c407af81f86907b774220cf22738a5b88c0665b6a5cc4e812dc041f21cc581ec763f0731ad69ea42ebec6199d355a2b3b5b0f615cbc1ab0a5203833439db5e3de13390715bec6dcca6a19197dfd301dd163a9510c60d2140c501e82a9d4bb9f2116e5006b7767ad6c51ec06b35b064a9d4ef9bb0d4eb52ce8c037d8c4199d74d2da57cf6118d4179cf74f6dc67b6219903fa2a5343b71dd87c413a980a38cb413d08c906aaaf497c5260ca8c8634aab3033c41c3ce668fe3d4201420f54d4013f5aed8cd24d33347e6605def5437c7b9d12f21b71fac407c051178b4f1be8e706fba46ebe3568f9ab08394ebd8a3529c9fe995521545aec3eba1b40d55ce504af6c600119586b23813422fa99ca1e21121998a5ec4468b924f3d91533d5b3d79568940503811e7fd3fedd2c7f06ad6be33d7e083fd8b8e777e2f78b38c1cbacd7526820806e26ad82dde202a7b0c50cd3791a7b73d5bc346c57eeb36f7cd9c9aadb9482e5c32b5afd0f42d2194ae27bb46e119cd5c87e6897e08dd363392f5f0846c3f08add0b79a058cbeb5a9ebff8f18771468a64db87b7c7f73292aea2ef79955bd82c55b69a670be58366b8835d7c0756a30e164c4558fc85d2e331bec925e6b2d5ff42150a912cd1d27a396229deb6cd2066c965b3847663df1ca7d5a0217e47e93b155b9069a5a99f6cf33759aa914df42602a13d7beded9375067453170458d137aefd568c516e353d5dc9f93b585341454852db7d1082ee5bb2ca54eef2a6b8cc2180344e6da8078234610e74afb361ac1d41d979b79db78716fa85cacf1f1cdbf682e0dffd545de1056dfcb3488c2fc8992f89b8b6bef6e2e93593d97c82fbb70ea9a1aeb83f71d059cbd5ad148b15e27f66cd0280aa5eeba42151d88b88f3b64fe9a5dd237716960c91a55570294b80e0307d981fd604c35c743128d45c4b12030f52bb46b68edd984c0f6dbb4645e3d0bf0dc498cb28f2b0ed39ebb05a28daa6f20fb2f77739b4c5b73e2cd91d6966d44e90b99c6f1cc9b302de815ddaf593a7028f437adcaa13bee67164a9c2d3770aa50a55f349323c6553d464c7afd5a2cf750a0dd049ec4b438f885348c4883cd79b7f20eb9cfad335bcd96a583e0725adbd64d34c4d11cf01f56789e51cf654661827d66cc39ec3186f1e1f9a2159bc4e4724277a22315c92ce9d2f783c14b49679d724182ae08c8cd47c209ba0866e023485cfede23b335d4836e8f72a00e1051c9fdb5ce86aa291b87828604311af57386071a26e8e2797c15b31a9676361af73966780f53f945013a2a1d78e1390fb7152c604cf4352ab610471daf0fa1f1e53f010795d03089985a4b009aca9a5489c913a9d749fbac410ad7fbc86a1dce9cfa4c12a713c79f536c297521620136a835f142b362515cc1fccea1b3f2c324e4b5e56371b058ac6159e68d78b1f1859e02d247e09dd362cd875d9f5a48784ca1959e74c3ad498e51edc77b196f7030cd1193a40ff3088e85e6b85a958c1b052a47882ec676349b38fee0166ed5a6350ff21b221f630f886291b661af483909df9b8f75b651f36cbec279bc7b1b3eed1ca8f394e9b459cdbed9fe94be2a40e3ca36587eefde80f080bbf8ccc9134c24dbd11d7756c5d88b823c92bf4aa71c58055ff0661e827a880f91e584ce5300d481d337857805c6268548d684518f533290168a2f34913860edb99b1b5072a96099b7fe61f7f04f5abc49cc0b8974e9b4ae6596ceda0b552d30e83401784ce4dd3b9f2402f93edc0955bcaf96f5f5c3cef9974b452fb5a513e479fe87217278d92f66b20ced9b053df77375e1a2f505859b379d1f19f80152bbd961d5f1908dcb5e105af2350764977135e211518eded76f30cae95162e0dd3fd2e37aa619210a3d1b5e59aa8557f1446314560d3586cca9d7cfcf20e5ab0bd4f09fc900b983f7a15054fa6cb885274c6d97db97c40a92cfc87db081f453ae31017f72441a4657b19bffd4bb0e3e8075154678b83d4dbeca72afbe0d5e16abe407572c243c8b321fe4dcff44880b6061cd30dc7a6bd9893e3d87de90a95c79efd790f0abf887be57c2ba8b649bae574e9e3ba96a50e8e892922fa628522f57c461896cb60191541bed5dce58759c408cccaee6ca4af46a8907dc73b360c302367b6bb46086f72236d3171d5b5ad251a6573ebd0505f8406d976b0aab006e536b9c725dcb44b642cc8bc47ea4904cc98465ac4c71460857eecef7546862d37dbcdd8b44da28b450eef6b6e6e4e4255ca8864cc952a9b8130921ef6356d1ef62d76c5e3bc4e8ed21c2a02baa3216acc7db07aa60e61698cc43130b352c5c42bacb519374301a8a071483a0235067e0ca99e02b3a6811b24b4aabdb950a4852e02461b45763d769d483376c40d243b91fd0bef716893c9369efd6e574f02d6260e258d839b4d61c4b4cfe439c54dbd7d19e9007213178473ac5430b4c12e0d6810541b0e5dd9e0c1ba6066ee710d02e659b1b0e61da2987919f2b8d6c04722c699d444201c516a0ee3fcede3739e4ed524cc014849fd3e9cb374d1d4588b22b884da1983763376467aa287d0a5a5a5402c836fdbf52976c78e596f52d3a36cf5897f232923011364c8da9291c3618d0d20759f86d10529b799163b37fb0b22385b9ba075105371446bc64781deba25920782bdfe63a5a3ba780863ab6dc564fdfb7cc4f682dd723fdc39fac9907a73c57b0a22a1093320a367cd846dac106955b0502f8896068583c48d5df298404c4157265b9f789d79e217dfa3bdbf4e74404cf671ed5d478dc6678d31444f0f8805d01dee2e8913af18803953a63c0d861ac8642118c7db9991ac3ce4b981e382dc9520c1040d2fd46aec28797422253c496fb3bf540e8be92de4ea16a0185a78993590e02e06d39eb47323e261e09ae8bf549232800106a0bfebef7c8080280d868ac343b8015fd084a13067085c682e4c3dfff8b06f891d864f948a39744e1fa3c87d84c404cf533a9067d489a4180c5d1404d6ebdb51c675a2fe110ed8ff35406c079442b5cd7b46c8dd3a922730a9e1c1776371b84969f201ec4dd16a7bba214cee8493c7c15bea7219fd25ef00dc47e75332d748ba0d0990c9fa9b9f0d945b1c2189a012aa7ea35f8ec117e2d795c049a5adb9216f7d814609062655e72232e5d6b89b8ef21934e1b9b96fd4e0efdd70279baaef945b32507cac834db8364548a34e05b399d9c0e3106292bc2e411d7393a9d3c3af2d4dd54dabaeab1421332c0311bc7d13b53da30ef59e42ea4b14fd2d69259a5dbef4c6ec805ade2451d9c18aa51e316b34dd4a80f2ca3a1980fac77b521dd7e5fa69f90616d1d052ce4fd4f25c7714dbf42b29ee64d265f5858d8b24d37a1cecd98da7ebd6765824dee29900b63ada57bde6b8c3e7c80358d4ecea4b6d07bf94a7faae847f58409d97ab85d90cdad53cb487a76cbccd41403089df89c7ad457435ffcc4e20640814a546c6cdbd92873090bee8a3948c7a03d412220d8c1ecf28f20b05eefc14bc6610132494d30659d8ceb0174652d33e626d5d2562551d6796e5792f78963381cabe8e48aae68e2cc48a0218c3936885798a169fe1bf3ed0ba9bb5f5bd460727b0c92c3fb7053380d17725191a76c3172b809d01b03c04140a04970f0649a5c77193a865f74ea89ab570545b239abd91b8c8ff0c260f4005ab1f304f2100227e6b5902e684f52380d25ec1c7513cd8f80987ffe334d9d69ed55c0977ea22bf015251bb92ee9fdaf3fa2cf150dac0ea4941840e528e40be814ec76fb27879542d64659e0fc293b928446710afce356464628a216ee92837ab891b106437b7219de732f71be89f3db0305f5932842affe6fa68bfb228e840df9e8d49306716d214566f5b716d400d2795c11719dab8934bd40b7f98d8e09f223ba9935e23859e32758695b687c56c4c1de927bc39aa9bfdadb8fdc88ccc95a7b7bca97087914ee358d0b869c2d08d6720654e01ec8e6b8b919cb36e65292bdddf754377884c469d0057fa7fb297ef0f2c557f1b278d6128a0efbf490fd26bd7ff3f38b86eba90ee79ac28381101be5da385ea60fcc0bbdec545bd16230dd8c37ec3c2f0cdf96e84471d5155bb4de080c4fe1e1c389f8da1d3cd70faf22f0b35bf37a0b0460ee0321191811deb6507c85ce0d7432d154e3ddd966d0d614be0596b59827e0e4e2151b302712723d31e8dc9db8ffe90ae1514684188fabab5c8f6ee51a4df7d600ef417bebfa4e3b2811539ec27e90e74c39d5eaae13d01951a803b730c4cedfcda67c0b21f869ac565e90107102849210ea1112f412277d1885dd83e1b07b38c16b23118c036e7d7da26ff478ca273d1d71a302d529d938958e6d7a556ea3326bd5935c8ec6894e660867f022e8cce38b4f03d204e06bec6e4d10e28d020c775b06a0fdb9f379424acf11b94e84f5a2d279331cc55a775138a1abf3c313b58f1d7cc3ec93160995047ce65292698bda33c73818807cec39d26ff07ca90167c4ad9d78ad510fe713c5e308140d9a1bb0f027c401b74cccd6618e1e330cddd9986749775f4015df7c9eca684c9728a4590fc5c3052d4250b7accaae23fe9d2a76394cd62b8462d6f813544a86211e9c99c9a035b732d1bae5787eece24a2bcd3ac87175c85e458a8ead1e0ef482806f747765a9601d2e841b543c8062d050acb8023439c636c329bd853521894a6cfced1db16af1498e8da410cb10a55837c5a5be3da318070d52939adffc85ea007e5a9560bc23074c92f4c0b5266f4b3ec57f9acf9740169b68195066cd8b1c54fe9d9021036fcf07292b49fe3936597b683ae9cfdd80219835c5a07d4b1a2ed5f7e92eed6ef981cd1c966180cf129d68f9103e60198331c5d7c1f6c46c0588c1b731d6c3a28fb763843bf84a5e0f867a50312ed748cb964e7c0c7d30b992a7c8064e1dab2b5268aba9e37470af533ec870c31a000cd0a9c9dae11ecc18e495501d56bffdeafda22f0189a0af7cb149252af3b4d20fc8980a8be53263c4a4a981423c7e076363a9520eed69b470dec1752b6adecad4ae140b8f5e3d0f158a605076984e653c4ef59d1d53551d3e5e034bf0d12d8a4a1336156a076fa0bceb85493ab14389e393593720b1f3f400f1634000ee2b1cec97e08d0d178a93003081ccd49d5ee3361a3411bd9640b15bf84d39f2d9a2ef8b0b6c49aaea5ff22f49ea0efe4a14680dd76e510112a15425dde8d647f40273c237f71f9f694595c31b167fc3e720ecfd48e2e9229a5ba88276a87a6814305f0305fb3efdc33f562ffa94cc703d123e8b4106afc5e150f3a9a84cf04be65926f4deae716e95a91cf1ce0091fa4a87cf9a3b8382f44e5896c1c1428b546f29b5f3ad3e0d0b52ba69b947ab70a5c68f3d22cecf3442bc48720d928b0434ddf813a9fbc81726430e49bbc576fc3087b6e7460835b1c0f3f0222232e879b8627686b25f3418fa904a14f64a90eeb0e45f5155d8a61dc98a3b68820632e8b501e674be7e822154ca52aa48e1c4ecc8e96338998d828d6d786a251b214bea39872c2460d7500770853adbfb03f56c3ae3173e50e71ee2dc8aef5dcdb0d939ff7cb5a16dbab2276645abd3e4b7ca7a7e4ce83a9081310322879c1d0c0bf65dfd008a9d92de97b40d30bccfc0b61a980040307742dbf54a32253072ac6ce8896f76b552377687d8e1f6b28cdc6e0e9d34c5776c751780b03d2834e2b981d9ce388d122c0a5f9e9776fa51fc7e74df0b26f92dc8b3d94c1c1da206f274c83cef6e1bd7fd1072afc1c006f3efa074ef5fc93dc777c5bdc051f69b98c39791cf0b7e6da33d32da2a165dce784cd8bf12729ae84ac9fae29342225fc1e1ce10c088ba89d1669e82c0fe260990ab1116f21f26aad363e9a2dd642458ca02e57e0754366f2a4b02facd6919392549db39dac5f1a1faf1209960ca8b29174f7af6d2d454dbe377de274002896420ae03023f922aa77fe1f6e388ef528f43ad4af2d6fadd25228f7c9d5352a4220a7ede0e5ec6fbb89860f5549d3d5d929c4e5599ec8bee9bdfa3250a72a0bcc99b82e7347c036324591e8a14fd11bb90510c20e4ca8a0f3e53fbb036c508bf6bc38a62582e2c5309ce59a81524dac0939998d785d6920cbd0c4d97471b689a8f5ab5caf4cd82949394e3f42d39b219a53cf1d6395445a1273c3f2ebc210b09307c90a042e9722284d7ab00c8fd983881da5cfccd3ba69e618c3c89cdce5baf7d46af19ff20c44886f3f8037b096f673c0f384195bccb29b3173a17f2f8da8c786a1619ade4fcadd9f7ca615c15868487125f1d2521e3cfa99c1fbd6a94c3b2d5a9652866f0af57d2bff027d8a47ec15af608a16bac9da77c440d993ca82fcd5425005583ba428a15730b88a85ad21d0e630e3e29770b6fa092715a14d50d4dc7fb87c1794afea34af12c0a7a34356942a50859c856588559847f10cc5885ec2e830467e66b01e489104ada99592066d0303e7e2041fbfca26a532fda09ab9f59bc7d6de717aca6007d9ec1fb4602461c664ceec32e1fbb0c3419c2affc203a40cc19bcdd5a1f28311cd660eade575801b37c10308f1dd5b3a9fb35a6cf23167dc6a3c16a4042e0dba94856b563b7fb86cb01b28b553f6a6a513928f28fd1e80b1cbd26a0cd26af1921b2fcd38093bbc9c87108f85013c03315afd7db709de7ef7a4294f0c44b0544027c0b8156e7f32a1f2125bada5978b3ee1181ab5941d5e16578845187d99ee69b02f316aa6be3ab6409bc6eafa29ca6389a8fce6d7c850b357681e80a54920c01d50a7709f0212c4f3a08be473449607213ea126e4578c20f89fb551b6f1b3bd2de10e13f0838cd49c6e7e52b42b630e2ce4239e0624c74602cb17a5aa04f7c4fc838813eec5abaa0639115a7f9f3589e7f9703c9d0f483c42170eac0c3c372fcc69913ac171b0679dacd27fdc6f9e24233e004321e66674f2f6e008c37f94559b79de215bff96142802c7f13b30dd54e208595018e110238544d84852e851309f11f94ecb5f4f5a342349ef2623c151d3f9ad5623135128031737cc03a92aa082291a88e545733ab63c9c506df9932e3c0c0a5a979efa9d655e128cebd10a13b32461ed11354da6b64652ac0c143c8bb03db12da979521f62a5ac94825a6fbc6b70bed73cee032075aff4faa7b4d84451c886d946ef9d350e1c28b22de5ce5a083c2fcfa2fbed47ad4a5a31b1c06007048f48b927a7adb5d30dbe6f9bbce55dde5793f143fb351f7571536b19074d61dfba26c6912c1e97c86cabbd4c7d018c9997e88794cbe69083b97a1c37cd454fc952044d6e0204c522251eff04cc50c9c5f501e0c5950ef45a5be5da4721c4e37e2a2dd03945249408de5f9edf699251d30850f1ccf47219ccc61556f034de01db0bcf0e6991115549c3f204d5d6778e2a27bae688e4e61c8887f81f88151e417f308f0eea449a1a5d56555e46ee73ee3131f46e53b2669b49181a84dd9426fa5019ed729c3cc6cba919ab6f74c14c350940a43ec445007cf45b6473aefc3df19649cb36835e3150289724cf7785a27e0a2c32118a55cf33f607d10d56196344a85f37ed4d4816daa4dd0e5c7f8f5094c19cb0737c496bb18af553532828252da06a0314fa2da9509a34995538cae00761b0d9b85dd03b270970e90f8e8068a1fd41faa4a807b8d0004ea78ea31f102fe97664d08680922e0d559a168456478f2c5aaa0c55375bb7a0e867dc8519a26f907c4622902b2c3b6597c527ac6952b17ae33c73fa586b8cae55b4f9b1a7fe197be9d8a1a8b160ff08210f2226e7719979a6bfd46e1996b3c3855624250e7492be9e71c1a263ad70a519812ac64f33c2f475ee4508fe81b036db15e1eec6248eb086010add1b3b0e6ee75db0b27f5ea109bbb2dc7ce345fc2a9fe0adf95cd9c1655b18828d56679f1d390702c21a7be2c1c875e435df5ec2c2e1b66d1fea1d8f387685650ea047e035502a3dfc5359701e2099123982615370200d34c76387d79cfa950f00770e2a64a18eac34c9061f72730211b4854b124b6ecf5475729735cfe067cfecf273cadc51a4b25dde35ef109052fd7fc7e1065afbda7ff33a4354876071ed187899e1ba2506809ba8443742ae15b074e32d8832e5b69afcc004b41a2245eaa2e27f2ddddc760665ffdc4603f1e1f1fc5127e7ce87c01ae5ad60e17e70126757f7c3723f27a62653451e6ef6eb446bc1ea551d6433328bd9a88281e36dd193f5bc42d648e938405496b530b03bf5af1e1315131c7469609fd02943cb18cf418db6d0a41d0b35f89cd82d449fc8d42cfa9e2776333e02e0ff58a185c8fbd53f18a0630d650a74e85e2a19103dd835cf19a59fdb2cadd49e8609ba23cc57f6cee6493a85afd9971af06c124881ee34e12182f22acaaecc7480c9fa6a8b1f0253a42b73959877d19b7d2541fe46a0269b7c1de06eb4267b2e19de85be44b33b31faec81b3f34f8c7a31bdb45baacd721c63f3051268e9d7ada7e0926760dd3ff369b78156d5081593f8f6e12c26f3c3eeac2f164477bfe768fb380a0b80149d526bfd33c29cc833c9b34da019b93b70a1cada8d79b41d6c572baf492d53e704b23c28c3cfdd5f4ec6ff8bb746c113093f8191f0b706bc580ed5fc422874e3524ffa59dd9d0bef85ea209f6f7a2ebb8b9113b13f03232e1fb042809719be51c7cfb3a192cd5bdd9da8e652b0cb5c04999fd6a47eca11b13b4c440e69d23700e1c2d4f673211c411bc8991d28109abafb60c029f18a65ca67602ede15e2e2fea15121b9373cf14894a41fcb85fbc98d609261a5ee0333a7556daae9e186af513e99674c60b0b9223e0088585cdb36f7af97569615907131d0bec5370eb29e47126c98ec04836fe123808fdcc87a5bd4b9783a2b661de2cf0b8e184b838caef03d77ae7ce0bfb5a549f6bf8d68e71d7584072708c23b129e38962aef7e4eea1c48a5b44cf09fe286c62932e21a3f3e42a6ddb597283bfe2e03ae9efeb08e87a3d5d260aa18b364490121abbdb2533c037b27d35bbd24b2a5741cc00e017cfcd69d264b5bb1fb85f34558ede8045f8790b88e3be633ab6f5c27792b905a191a07a6792cc92af13b771bef01e05fccb2da9ff80448361be85c20a8d7116f842da6b4e6215c768b64b443d8b00da09121edcd7f1602d107c0b77ef0bf0893bac567dbcf46489856d473fdb3efdabccde6b310891182f3156eee2d25926d4bf2981e83a4bbc86a45d459fed38fca8d0f6c57c457c31fd72d5c52e41e36dffbe4aa452bcb777ec926bb7dd3a88fbebf68d4dd9e569509ec114f7b0153017a1931f5946d1bd70ebdbcc6aac6f19835ac5894193092a3b1beb788691feee2f516224247d970fe6f399986b888417ac597f0df562f8e1cb3f1c1c9175810873a08015ab4d51c7385babcceb70385b5082077d11fb0f30801bc09f49f39147400b7a527232e6b1a56200c85a12eb6abea890114b1a471f4b5365dfff7b346f8910ce3164438174f0341571fcf0bed9fdf75bd41c97be43725adad504cd5b6f92f39892bf8290b454751b146605300effb54e72ba46c6efcaf9ed162817c60505edaaace7c1f56f3612cf6e92cce91bd45e84f51ab26c1708a47815a338e2697f631dfd3a6097a7d12b2f59dbbbec0e3b02aeb11b226e751919233409b8ae88a44097f66330275a31300491f3e09163374a5f3697df114fbf1068d1f177972dc2a9d17b5044b658ef6c71854bce3d445decf0175c94219eb9ea17d0b34080ab2c8e0c268337eaa83f037dd7dd57bd409b6a74d4cb5726f610ddf08d87e52cd353bd3478e852d2efb588f1b7aeb5b6e2be1f53d4385166e885c165f7dfbaafb6852e5044b82b9ba17a6d9616523f986bcbd8c0438561b0ae6e20446a8f29ff8b1eb05fc90f1e6fdceaadbbae7b6f18f0b9bf37b89b3c2f84fdf82fe09c267ee82200c1bd866e4edfec763540836ff60458d8e595232cb32cdd8b10291f637d9c60a6cd919e18b12218ef252cec626f923ac0a1a274dcb0179d66abfeba33238608f9ffc5904a23618ce173cf2e6091754041ea8dca5a2e1348cdb22abcca4e63d7d10f58a4fdb8fce01ee1b7816d18b8cfac743ba197f5ffb8b63e33d14a2807934d7b1881aaebb4dab307c5a582d6fb5a8b6ab16767a5672821e3ddfe2d34c31c3a7ae1c2e332d6d9499b92bb6c8f0d5d9dea6dbf233b77cc81416d5f12a2b6bb569a262ce6c0feec892703bfb950b03d501f27fc35042b1140878caba32aab42eb6f227b233c9583f8c9c692c610d82f24ba7f5b30b87b83f26f3f2098be528fc00f77ec74c73a76bc0c172927933116f70a04d41fcdad8e1d9e93f25c4b5224555d9a25effb4b96e98ffa43abd2cd6231b068fb06f79bad3a21d6bbc64bc09da44cf0aab268cb0291ee62ddeaa9fffd3fe20df15f770dee4b0098e81d0ed240eed6d6c2caa08fcb8cc5a0296fbf32af5be09d18d05d470e2f20bc302b6d644c710d600d07535b913b95f85d7d22a416f0842e7182407b8ab22c72898060711110d3e970fe600610f9ecdd32a73b075444c37017300af9e751d5df17ea621a551dba0d5f1b5565c581daebac7b4db61f5ecc36cde1651316a72685bb053e2173d9b65024adbc79a42416c1e691b9922442e590cc8263b54fc5fb5c086b3d03024c225b26d7d8dcd25d7af3d57a76f21f150e09189f58b89cfb1f089a9d8e23cc875496a5dbdbdb4e0c0a6c5e61949dc6023c7dcc134378f8cd3589a433fbe218ebd264dfc65b49278e91efbe0fd827c4ec9b1b21d87e4bdba383eb59e0d8072aea9db17b19e0266bf64f398979ccafc54dc8df81e096435327054590c533b1a8d05563e288839a90d5205bfd6c13adacac61ad04458427e741bfed549044cecd4820b6fd310e2136a1d1bf2b767217e4189a3e9b722997c63a760b44b8ab58616404a55c9149b50ffb6b5f7a9e971f0d385186fe287bbc47273fc59bae9c665127eb8d09e1aeb32d4b84682c224a80252143968b6fda723f635f3d0afac9e563d34008371fba8e3600259b803bd4e64323011626f8e3d8fb56401eac6c710d748ec1f0455e699b70b00a4a3ea92032ffd4d000fc88e669f2184e05c6c3ee6fbc19f1a7fb0e315f05527476cd454c6b4379646503597a550270320d646854190b19585eb7dc54d816935be0187e2f8122413006b5eec57a3e675764e5b7b019d76f37340a6ab9156ae2f7ecd7593a2903b104ac056d75ff2eb985de376257a1a94da50e3404d4dc634118f9b59991f848901f9048a65ae9ded637347017b04eb441bb79e13f7c25dada0c9e9209a543f0113966096dcf67c1bf8ad084163518c36eab2e08d3548970cd4a0db4eda15bda5d95b9f7088e76d26cd387d9d5ef6a2d51a948905102820e168078e3d9c701692137eeba057b08dc6dc96c21209165aa6328a641b3c483676101b93dde974e028c64f618a9d4615382ed4d93b7baba296339af3a9ea7e9d4abd78ec692d7b038204a443f4612a5542c96a4bed87cb281d1a633751b6168c09c5d6568150a8b2e2e372ffd37b637687c88dd452cf992f92a08a6a165c6f0e1f6107aa3390696dcf55d3a447bcfe7efa2957eda19dc1e97ed026a279331f1b34ca45e1c648a1ef06d011ea627ceb4a56fad956efc8e2d3c890679e3e800697cac86801724ed85703e62025257f27120d726d1f11dfedb2ab8e168b62c3b75dfe6ed8f51adac488db2858730d8a9ce32572c74422942aa7dc977b8f777fad5ea97a56eaff65fac73a9c128564aa0acb8359c6fe2e5a40525a370b804e8396c9b2b42e29246475923501707211d424884c7245f38fb6d7047e59101b830dd2980e7b475dda9c1cab781a3a9995b4d8f95c4a42185bc8eb505f3d359938f5fd3a57944d305ad56b95a62d15b600bf5109a04359d475d22d1d38ad1110b6f5b908f9711a38e42a41e5132746ad93528360f851a931038869de6d962c32d9052bdb217d2e406cab5883df7480c7fc712add142705746bb93a5c1e7236154d89b6289395c9c4098941b2a9601f714e530ceb9199455b6e231a0f682302f771fe11e8700d407c1df420d292c2d443cc178901618ad2cebb9aed7e44faa67101cf2a1205abc43f767bc5e17914215187712802a15657077546c7155404a4b49232936aa8f5b5b88fea09282ab11a46602dbc6eb6b9cc9acd507af9dbc8b9efcfb18f370a4bd117f07ced7707d21fbeea1b2302de16ff8532234135f47af9ae44a2b40c5fc6b7cc3c0709854be7ecd7a5acb0822ad650add102144ddc836afaf9a4dd84bc7ed1d7159526739d70ce24612bad21d4d2865fa49d26552010190063c84303a86828206b2c23bd1c9d1750babdfd42fb67831592ef6cd56a3a826e24e0cc31da304aca5ce702f378cefdd349be597161145aac32a6034920bc3c4420137c2a4e30338745969d2a7570788e4ff5867213aa6592a4c1f3b8489a336f58f3d80bb3001cf0dec71efdaa91e642e622d4bdacaa8364d5a4970cf5df29c4b6465702dc5d45b00a1a11c44138ec104146488fd9a179a4106aab1d07bf7120e0f1a14d987d5e4b59e0d417d9c63035cf09bc90c87941a6c466573c1fc7d5d5777c1234bd94ece96daa4fabac67290902d1c2e801318125fa57a299f7c7b0b31c5e2a41f33768782cc9ac84f354957202d50b00f9ef0de636508c4feccad1f3bb8cee3bdd6d7dc37655246d360ffdba842f1f6cacad6ccc5eea7aa0554338ec94f400636bd9c872b9a6ef145f8c1b9c168f4c6c5ab7b58cbf92bb73f07a62226bcd7d675d477ea3bfd3d290f538b9c813cbe1489c3866866dfa534a80c675ada95b802bfe2feb735043b6f8f6e168ee0dce1a8e65b3b2381fc544b3a2dd92c1b41bcb43433cd5f701f2a02bfdc353a43754c8da886ac14805b0d886254c2c10b96ad270ec12b789f339d1df4e1344bb853ab781c81ce3d9fc6a61796278603b6e78f49d3d15062742f549de960d8e06dd1132560b5beff221aa82bf62989aabb74104330c2cf95bf7241e243871e5c7e3a35ff722d149a361bd45a0d507ae5f0a2bb2132b9a859cf2f6135cfa2651499f365d8ef1d3b54f3299652b8569e1fbc724fe3ea8323d4b0a30ee3b00e5c7e7af739c93d88d4c24dbe8fc39ce2e0554d9cdb821d517b872ffc5da438c03f307fae71821a3ea303844a4839389070115d04a43c2ce07b639ca3f1d2de35779f90eedfdd1175a8efd92069a68333068e5da13e82ae02442390b3eb72e2082986bf7096af7aa6c645219bf4fc9769b8a6f9b38b0eb7f52c54f764a440d20a4f2789a1d88ad7d6bc90210e2fb904a4099795ea20f3478ffc22947b1ee2cb3f8aa64067e05696e8b39f57d265c1867fa4d79f4f7475b496c3270fae6f7ce4b146205d027e7b11e80106396f9e66d1621a9012a86b0fd043a10e6038f2d11aa0e249d4e25340ab2181a2a4ce4d6a02219d43c05fec6be600db02bc5e5f929533e2b186bf63991230815f670dd14dcc7e12d954bb17ea8dec7616f2ac8490c9f982c77c7c86d60d28af5c608751a0b00d6c5df752908a4e16919cec225fb61b3086ada35606e259faeb9f3e9817960872eb87515afceefb07603b7cb8acd56e62427e6f4f8844bc199f69d4f6e7f4d111ad5063657a0ccb25100d7f73536d5fb871702cdbf583a6b06a4bec09750aa12999a8189b8a095fbdae22bfa0e0127f6d72d0908ede1be447ef4ce0d136fd082d2898da415dae54c4cfba5558395f0509603828f9b762957033eedfd01c8b5e1fe098d4c9b6ff60405583213d8f2dbcb13f2294534cd213a1c645bb286eadb737fd3021412ed0a8cfd8f4069e9ef98e5b28364cd12dad9fc95417e0d2f6e8222f5c30f070b00af40dc7ab1926f2170bc6f2014ea8ac7ebf3285e824a654bdc9b54db7ecdf0e61f30f1cdfb162ddf1743d9eb8428cfea67a2ded9e68daabc92f64dc466b4389ed7adcd56ede143b4b5039520a3ab1c0e8c64c1cffc88c3809195d93645ece2fb72ac074695ba962a9458cab0ba8c623388e0e124fb92d2af217ed11bcaf1327c4933fea7e5c363692e79c01022394585e295fe33994d3fe8beb0c071a8d5432aae5b87b144d7e798bae3d2c5e91ce5b43f5a0758b65bc7b2a2ca70a39f1512a66583278c565097999f77de3e2efe5316e02d5d91c0230304bf672499351665b965f9c92587bc51921ffdd10791e0a3a6d11fc6f9c9df92b99ca8c1a0b21f32d32da59d0f51664835a3a152fe5584575a8a4f7521600d625c7be3a77e56d6a6eaa7179d56363c2e452453bcf826657091c76af32f3b5553bbcc846c6dd968ed3614ec61bf130e29e7e0524736086f85dee36cbb2b524e9d4d534b79305649ce17640699bc47b9e594f15724c15ea366d33c5c980256a9999203cec725fe02c31d73ca5e7ac62669016b76be96f9baf09b3511bac1f80378b988c332188c1a05a231aff50ee5b0199eb1c681a9235a07ab398d77cd202db37a5b8e8a3542cdcd7e7c9ff9a99c8918c88b9ae2b086971ca665c4ccd3ec3de4c1c5201ad627bf0f962819114c2809e6319fe5e1e13d3c9a956d832e9642dd2723d940dd064f4e9025317376937a0bdfb29633520513db8be5a0b2a54926849802f80f7a090cfea20cfb1af522781d401a2fec0d216e7a34975fba0c52843ca62dd27ee78b60b548f2f4684009a66488d03098540bdf419eac576a9ca8335156bc86e5afd93726dcf52879a660f4e332ba4a2ecbd56463ce347b81ec8af768b1eaa4a82748cd44e67c3e0be69dc65f85fa44c08155ebcd24790df09dc5960f0f8aaa4f190b51746128fb7f3f4667c12e202c277a2bca531e59f143f74d44067b6ed2cb26eb04ec539e71278b02b30b6cc9de4a39fb079118c18e93815723838cd53d9cd9f9cd3d401124479af0319d3f5967142859fb45cc6861db0d1b5ea20003982dce4b645933082c6a3d0ac22135d16e11ccfc69a162d5aa02abf580b9fab84d44f68afab0bb2ef854746448efe40c1ed8e432e971f50e9015a1810f79a94000ab6b1d48780514ad29f5fd6dd8cc66a48328d5fe61a699f873ee7df0447b754b1318501f88e6eb5e3330ea797d55f6416d4ba2029f924a7f3ec113a97bb24722e3ab6279cc4d2b640858661df830b6a0c9826231312dc5c7c91bcb28add179953d2cb396979e5d6b6c3d60c02c820439dc49d02ea3da8b83838a1fa576670d61678928fd9772ca8296aa06267ad637dd7611360d13c977ee8b7405d5a0bb8d8598715aa1e352eb6bb4c0fe47b353da2b0e21ceea6350d0b8c73fc2899464e3adf54230f7246a9d45ef8056a7fe777cd4c034e29e7ac6519668036b5880c61944a8fb2a7a017bbfebb39e039e0b9de67046c49d872180404e8b2367627ba124d64cbbebd57078a61abbb4f86aba1d1af885603c44363719525d76a5ef2e34383ce2cb7def69a2bb56373699b47740dc5760a8bf6bf2f34cd827cd37417740018a9233ed463a4e55a921242a022ee6e0d59bcbbb970b363d9c3ff84367f1890877e7c76c4e4c43ba7b568c9ae7c80e7ac55a107a72846b24ddb531a0b42f1ba1721ad80cad0e0c9464a369016b62a7a96b6a202bd5dc0952b7d9ab1de8e4b2260ee48397c361ab8c916d6b2991c02fb3fa8fa3d5491b9058c1a31687f3c1f16271910c1d3b80f14c25f56293065ad055954360b2cd629ce578f44b9b27d8f87173040f1b64bec47b876bc34884d484c9625ddcb9ddf2218928d4804b3ccb06735a71f63484065b569dd00d9bf3640709a3347a40525c544d769563c99714b4f8855eb2ed94364aae6c1b06590373821a089efe42618282b2b74c353501d4ebccbc22bab809c06344bbc7208fc8f96848c0a6e10558818356ce986bc4141165b4d3c615aff38ff01d6920d205ef45d20aabc9d596d4951c31391143ebea3ed709c529a9e1a20ce12d76e49a0b933e2d7707699257beaf5b00bc2d01c6840e56ae91c0ffd43b710aabd2154100399d1d98496190fb8b99fdee113a9f7535ef1e0974ab955bb5940941f827e6fa639724f25c542d735a0fc3212b8edc0b3fd340e4586bf837b33bafd68a3a287c1d8a27c260275cb5ee47aee2abe37537798230320b87bc11871ee75d633cac7cb46943695f16a2775dbccb80dc74ff7dc84e62bbc4d91e1657b451345916c7982f11ed43fc46edc4cd9da2fa3da4967e986f3f3c8055b1f7d46c79718350184606d9846d067843089b271440d5e048f8ef74904f14fa4a0c06f898a948dd31f178a494832be265ad1eaf1f173f8e7bbccd37ea215141b3aebd0aad88ea313353ec9e313342c30ad1caf985e4466f5cc5d9fb7d08aef35ed449a348bcd817f4fd1883e8716fe0ea504cbce8d8d5356f084fb8b5616192de7d020a7b46a61b47db9bda07d91db3737a4d5d55592da7c3e7096e94323ad427ffa98f95c3fb616698505e66767c2706997b44709845e22f8405a8d2e459b38a4d8e22a71ea5e918c523d9b3523ad2e1f805c00a284198b68bfb7a8f80ecf4a445a01cc8ce9c38531b7a13080b1fe7ee59d5a6ba41520e3deeaec6d141ebce22f23040f19e4f1f6ac505d25018761c8999f58c1fac1500182d4f330d2b519c61bfcd84617cb2d7dcd79713bed4aeac254b4b83d1fd17a985d81f1c972a4a6869b5df11a809f590460d136bb826b0588edd65051a5506cacef7c21bf0c587bb3e31991496f1a4419aceef60d41428f6671e9ecaa8f55b08ff1bf7f14cb405ac8d662a0d0f9d28908c6f9246e44faf79afafecdae78780a1277431059ce1e18441ee56a04c7d7d915103e62c09efc61a28b1da56c47045df5da6ab7cb12c9c1423d036757888349840b0fcd4a0b2efe7028659e6aba1ae3238a1d1831a61454e5d9d5dd6ec38d403596db6deec1eae6366b726513548f076ac7c47bfda98612a5a6c8b78376665706abf76e2e967243cfaec05b53e61158566657a87bf17e8a987d3a3b292c767675d7f2823f8b05d344e0b29fbc37c12188edff0e1f82bba40f0ac2b501a09db1cdae321c29f26003582571c262bda07f7605309874c7ba9aaaf6b19c5d85aa564aff1cda2b4c0857cbc7fed64bde5771d57725efb51aef56956d5d615b09bc6f37f7ad7a9a02f0de7629a77243132c60df60592a5803350feb0b9631392a813d584ed98d96099d61b38b7d2685b5d89e7cc2d29ff3a1f124cd15a5d18640b270d18ebf3eb063a2543da568e14bc2851cb2cc80909b5dc9fe5a397c50318d90d66f6d8893835bc466d23635f8b96922af460d3aae720c1a74fb737f66a6e1463e05d79cdeb10ab4c83006a34d1c448cfd151e5a9650ba3c96e530f0d7fc55ecfc91903d8061828bb58ee2b0c96c8c023cb39a4683b4d6860bd9c74094e75ccb92bdc96de070f3d961e9e9e35f90fe19c8f871b096799133359e3611d3226407fccc3a24fe11ffb5d8723b1078756b06ae4209fd4ea5677c9cc92eb8a1ad1d762d66d9d867f450b216d40ddd0f30bc3960bdb4b61eb8bd874b3570ac6cacd8bd1dc1b393ac3c4ed3dde9a38887befe0403d98149ecd2af79b1bdfc473894dc837b9168245feb27e140eabbb8407c5a82a0b3d1bf919c3008ee50f589b93521acb10267f65da09ef093d8e06569d56ed1fab591a7283b650dd8f1aebf4842df16f18c2620918e7742a3c88ed79f692c8986d777acf83521b915841a38417b3d3425712432fbd4493beb032ed56328783b3d5bd07e6c21325de81043b2d0a667fd2644c543f160b095ff9d866f26140a7ecc44b60c885d587f82dca16d06b9c20f7ed0dff567a8fa46d53333fccd637e87439e1e29e3a7aabdad5fc2d5716278b6cafe377ddbcce2f487d8ad60a5b596b5aba47c9ce90071bd86451273df66d0b7115853fae563e7c6519b1932967778b715b8ce40bc65521e3c40e113159876e60ad9b778c6f33a6029d5e1434892cc07d5e1f0e132ddfce35946f7573fe2081d9d4ad45ed2abead9da1ae6c53139614d7309a6ea27d657b82e1654661f8b19f887fd01b339df6894ce1d93f854d5c39110d38a18ac8e9c6b0d2e911b4a4e483d48bed59a481500bf76ffa3254e3838150f88804feb6301d8a5f11603d841e3402f3a04301e50ca3e85a07302281b6330530fec2f7353352cf4d46c50a9008ac6f886213efb48df0508608ae1466e80272da173136c142879df011811b60cb98d41581c397deb44ab0c73eaf801f8178c6b439c7fd560ed65e6f301da45b05d6f67b9c1ad33800a13f115def7491bf18595f9c7fd99026e1b61b2134d8670cbe7cb09a77e2a3c832fc4409d42855fc6eaea2e049e50ba69d1c277208798e69dab0616ff0c32fd8f64e776604c8b60c002ec37805bcc48bd4edfca12881c589cfd782913cbe418e9354edc386aecac3248e5ccbb6f02d3e74ae4a0d8dfb3e30bbce178add24cc84a979a90562b0c946e691e43d8d3ca2ceedf1a74b429bb0516cc312bfd5bf3370fdb48eec9080e29d26b14e962e5e61d0be879ba52555a2c11676c2333debaa3f681ddd7a70efb6f2c9609036d7236336858738c127d74970880c9049d2cc80c2a615f3ee8980d0ee6cd018fa9afbc9d0e7431989d2cb9172db0041d37d5e41a56df8086aa1cc9202f73f15f268d5e70824ad0d7183f0d1d41d9b6362cc60bd569d6172c7149121c4e3091650689f244d0ebe0c7ae9690c3f8a5885d1f14e1f3c71557cef7d5605186713a344b5830ce4ef2431344723bf9cc18203c8be0297ff199e99e4e12386fa60294d48c6a851d8111824f157e6628f3e524c489c73a26e4e4957bd393636e45c274ffcfe5d38ab64f0cfaa587eeae968995449c90ba19127fd0a9564c9e25aa451abd23d08af444988465a007610ffb6fcbcc56a41d87a3d384654ed86a05131c987cc04d7387175833588aae61633feb391d04a8da71ec03e33f3013b3153c9c975ee731fb716eb76ebd19e4dd8201d43fb76c18eb646ab543d035dec92dc005d00400ef073cd9fb42bf465225da852b691f75a92dac00c638913e90ab371d439eff768d2280353fcf3b8d2f106ee36b506bb232d9430b2ef5ce9b2529cd8f8220b8460c030cdd681eb7398f2544bc63a039cd63d9a852b956983a2048f66f21b95b2d4bfbe8135c51a8da5fd77365880820bd0a1ccb531d221539e5dd4f417db3a1417e082e6263a29f30f98553166ee23e35ce30421d1575881307ef4abe612670b4ec16869e7195058634ac3256480084897234918e39e4e754df4b9214f28e846774568da26518ceae0f3009b7bbd1380c5e363a6b31a02d2b1a0d3654640612600d766b0463046d774899cbda44e14b9df02a4654c08434d3d052826194ca8c258e55f3d127aa1945463e2ecd6e0260ab60c2511b72e8ce236519b4f4e766aaa38e377e5f0bfd01392174d83dcddf723ed2c369869bd505094c6a0c9b7ba50ff8b37b43f352bae694f53e094801cbbb302c0e3e5f3175a9638a474dec192e6c5751c92c26963d33cf004234dc46e490cce790312798c9d3ecd7708d8fd9773fe2945ff92694369ae8aa047aa3c06f15ff07d4a385e1c7cdc36c4209875d249ed54b8c0d13461a177f8cf326c4c6111c311d67adaff6a51cb57381976fcdba9fec91cb9139062e5bd57ccb0afd124c55c85be53869e064e5facc6e0c15ed84ef3acfbee03d0337d31c979a0a9ed44095e1e23b28824e0c7db4201c38628902442c0e5e7c3f6267b9c0acb294c492c261d662c40d0bb03027a7eb8616cdefe85791efa10776205ce79bea7a25c4c26aa6e368ee2050289fbd5b7390aa50f62dc60f83d080b8418e5d45f0cfb7f3b619a0c0092fbe30b72fdea5a379594918af2d5032857e4138847c1775e435b1f37e3309a58b8d95ac93c95b5ab601c03a25cb1b2efa070feab3f3dc490c41d8e979df35fa55c7e165d98540eec945904fad2aeaff06b4026fb258741b9655676c4837228cdebcea26b0f3709b3f4c0696a0a6bf4ca4ae9633606da196d053625e2d1222943d6f9503865e54ea10ad7666234c19c9fd45ebe35aab53c8f938c4dc040a8c4e8ade147d4e977f8fb959ea0ab90185840608591d57311d612675944c86db5acd09da6eb4350e1441481adcdfcebefd253f96457a8b5a6c662655f5a92c82bc1b41f5b12cb6e00b847223dfb58f681558c4b909bcab29916a58ed1e6d79fe6cbd3bc58d8f658d7c5973b86d270e2ebd229c51f384f2bcf216a9c5719c981798bfb7bce305ca809047bf1802379fc63394e072c262fe2a8242a23c38d54dd25abf784aa39d590558de9db7b037b481bc6a7cc05fd4417963a67e2141321e15bdc18424caf2c5dab2e75552100db44c44f6d26e76ccd31498383960bcce557f2bdf6f7157fa445767a6cef7d495ebdd6e2fd2b27feb6694d96958e6df1197202629dbeec8735e9402b591bd440703ca2aee6958405e15a503b9414b80c2f1ac0bea71e42f71edcd403d38e3ea4634da699a27714b61fc4ce331ad3355193f870eee19571fd45243effb96c56e96602a34b57de954af1eadc9c57414811cec3722c9de52ee2db79432259902c1064b064e0636fc310bdb52c92f6de295e76332b5a0de70ff4aad39eb3beae570da4bad3dbf49622654324449e85d36db6aab2d9784f5fe5556fd6ff0fd9da5c2777f36d5454476e19f6e106d7f4b44a0eb94f3e8bddb67c331decde9f1307991dd44cee299fc0afb4acf06a28161fa1f68874f9baaabaebaeafe645be2c2eb1eba769b0eb7da24dc35b17925d69794fc56f2de5392f911ff9212eb477c36ef793cec584995794fd3f023afb2ded3da3be23e5aa821f769ed7de867b4cb42d68f5021d5117143c48d45f9a77a0f895e7954487d16a5426a5ff7ef275baeb10dc78550b4786ff12eab8cd4c7b0afb2ad62d6775a7b7267480b9e9cd9a61c3d32f94b0b6b6a539b6ef4cf10813dba51b991e726cf02c360557611e1deddbbbbf76f07d9213d721605429e1eddb80bb87a1d5ed4c226e1fcc6fe2bd2a3cd89dcf7defb8b0df53d5f2a84baf9e95a433d32ba7c725459b1cbc6ca4de23922ada92069ed3d1e8ef16ef87bf0dd87d78061acc71eb39bb3fcd4da7b24fe93e4bd7fef2713b7d6487af4d3a3ebbb05bcf2fe097983ba83fb8070bba75fb8dbb4f98efb3a49239920fa4a4fe7b9af2e19f72e731e363d2a3921ad0569ad86633c13f0ca7b1d5a8842d5d5503a5e4f8efb5ec7fb9fcc77b4f678eedba86018ebdff7b4b2b69470b067e9be9a1d3d9296a5bd1f85446bd2c5dd6a75f0d91d4277906645f73004248af1c4b9cb037a54bd943470dc1869c487557c2e006603546aa85fbdac36f815843e5ce883b7a398aaac6c8d520392bb69bfc9ed84c5c5a5dc5c4e4455e57229f97d5596abac249b98a0dc3f9784c78f32946d142afa37e5efc6fca9db7b90612aea376a7d655976b72f22a88f54a49470ee9f139950fee659fcf688d2fddaadde51fa5fcc6076837b4a972fecc9b97cf9ce6eedbd4c3fb428cff97ab63d0ee9fa0aee9cdd66a8e62b1275a516473bd70309210ef851bd833888762e67b2ca464d51371cd7693846bc7c1501e6f9630e1977f0b8f023134c8237b103177ea4816b60d8860b1f26816860a8860bab6078860b1f2281636058860b1f9e2018188ae1c28747a017187ee1c2873e700b0cbb70e1c31e9805860f4dd00a0cb170e14323700a0c1f1681506028850b1f128154307cc80397c0a448845b206cc2850f874024302916e116f85009700a264523dc021f1ee1c2873a90084c8a266e810f8b70a1f6f0611098147bb805c2215cf85008c3f0f0f0a10f98147db8053e04c2850f8330cc0e0f1ff28049f108b7c0873db8f021108681f1f0610e98144fdc021feee0c287390ca3f2f061144c8a4818e2e092e20fb7fc6098948737b8f0e10c981493700bb40fa1b8f0e1133edcc230fdf0a54ba975b4a05ab80be4a0ec6b5675f8900ea11c1e871c70407912ca6f7d49cffce2635efcd637e6990f7080674600029e39010978e619339ef9de67fee1876756800216f0cc0b90796619209e198867a641a3860d060421c433d778661bcfcc80670ee29985f869809719c5b2f82519f62bb2923f39d132d1f39069bf43c6c3c3c87678950cc6a7642a6fb394efccfe67fd42649bfb24f941723ae2d36332528408cf901d9d92902040727ef8883d6e9cbb9c92df5c58fd486b2bf7f2a9eefa6f1027be926f5007fa5c088f549f58591f1c6772a6577aa557b2b1b1b1f1f171f94ae0eec32bf0d9bfc02fefa4a1e0c22702d1eb403d9501e27089e2a054b284035f4acbe2b8333d652f9eba411c980a21182e7c58ea27b87063005d3cf47953fbf008a94024fcf14efea87f22d13bbd9394b596da6e9e23441644c680cc465623a39101916db1e7c297c916906dd1c885af80ec876c8b44666409c810906d51678b2552b6c5205b041273b6f823fad8628f0ddec8dbe26de6395c07c780af92f98ecc77c878c8dc8663c0d732bfc992703d649b3771e10320db1c04173e4bb6f9083637c1851f806cf3145cf82dd9e62cd8dc0517be00b2cd6370e10f20db7c06173e01b2cd6bb07914177e01b2cd7370e18fb2cd79b0b90f2e0cc2e644d87c8acd91b0f91236a7627328f8142eb4c2e643f6ef66fd704438d5713e93d77b1ce9955c0b7cb70293628f1e5830c23026536052f4e1a30a17be176118160fe38f1f7052c1a49893f3041e86a996c0a40804481386308c850426c5204194b0c3306f0a264521428ea0c3300620029362a9548412c3d0203029eae80c4108c3481f3029eeec00e1c2f720ce0326c521ae05fe901e5cf80e24f2f0c09228981489d48049b1c80c98148dc48049d1e45a20c3acf0c130273d701846f4447060040af8ee0226c51e163029fab816980226c523aec5044c8a27d7026f1806e5450eaf430f0c8eace08402ef007c52fc712db00926c524ae05324cf6f09d0926b90f84493e70e1cf1c321c5e872c8737c95c3c0b16ff015b7b77ffd6fd7c0d81d9278545c1debd5544152908ea7ec7d5726f62c28e871c2c0ed6f4c2a2587f6b43b1a127aad55657cb0dea7f525816921016c2b1017f86408f4afecc7337eb675eb7fb5772a47ef7762cae7d83f516dbede95c4bcb5a84d8c531cbabfc961478d6b053858cfb1ebba8c533671dc22cfb4a2eb2926f71f237642c4019cc6a4c20c02ef7f170379792677f29a2b21b0fffa290dd44d56eb539c421e7982d0aa8081efe45a2caa6c78fb15cf7db112cd639f6251975d1707f2364ddf720cbb19b09f676bb008ecb5f723d04e0257355d0a6815ba5702416233aec8dfaa0f767d507cd787de7ec5d50a5617e1078523892a39100478061a8771dfe76df0c048eccd9f6cab98aeb0c86ebbc85eb6c85eb763b82e5d6c730cc39e75cbf73a1877d05613fc3b16cfe9551fb5a93167777df6dd2701b25c74c05be70296c985455559e6df2665b062e67337ea37d52b8169f397964e404477a32abb813d7ec012c04180830136024c04a809500230136026e1dac0633015663c274603a301a23603a8c80e930426986923434343314e601cc0358135813580e2c47472addbcaeea6b6c372f6951496b95989452caebabdfae5a7ffebb6c5cd55a4fa1f74563bb794929a59492565f795f34beeb8e5dbd5b94a9b72a35792c6895c18fd97b47dd594929a5a48e446545a994524ea794bec4beeb4b57555f2395b2aaa4dde8cbcaa39b177659164629c564fd79c57961b69dacd83563adb5d65a6badb5d65a6bbda4bc2896c177d9c31e342f29ad97d27a392d394198947f49ea48f40894528c524a2946e9152a29095532a3ae9b57472ae5064b15adaaaaaaaa4aca23482aa594544a4a29959256efc7c56949392dcbb268dd62bb79498c0989552f31ebb22ccba2d5b2aabfa494524a29a594524a2965a52fabeaaf786926d3b1f2af7d046b567ffd9c5736e32e7d57a447d5a2c8a7a192a71e849584e85b52fe55492a29e42b8968d20616300ebca0ae63be18d04dd077f41d7d37c550fb395e143e87a16e7f238a7bd72f9dfbbfec2665ad33d358be1657eec36b08f7f4fbf9557ae43ebec6307c23b5d34d5765af2f3054f84f254661728f50faddb3bcf7efbdf7de73777ffedebff7fcbdf7de7bef3d154cd77409b57b06ed9337d06cfa98fb67b443790f6fd8e0b74a5880bafdae0d978d30a7abcc0fe7dd24f9294204488ed7f88e233e3b3a3d1aa769921829120488e3e16a4e470ca9a1c231f8e9900784c92a1b4673fb6f6e0fbc3790c7dd2445737bee3343dd280f23ae5dfc857fe87726dfa4f678509b761eb7ff3ab9d3be4e749d7beceeec987aefc5f538fbb01f3349fd1e5219ba8888641d494fde8efb2023da683e20ce6d6823e9dbd9b1d9b1793b3b3b3f3fb4ff95ee262592fa92bc9d1c7007e471f9df917e793bf7fdf80fb4798f75c6e0036d28680373a00f22456445a408883ed30ebc68fc75458cc6e8fc2f34d44dde394ba8ab25978d95ebd25aff739121a38ae8c5db5102c768fa90c02dedd74fddea35a134fabaa7eacbf8be8b46e9d1cd49d0886bf1dfdefd488754ecd9f80b0c62c4912011d7d297b5ac4d658ddc7e908823c1222217df0ec7e87f3fb0887ccb6e2277dbb2c8bd7e6aec19fe32be7287a5013336429c29878f217de211c48dd0bc1e73058dacf9bf1d7f79bce2df2f9a5f91dbf4baad2e1a0f6d585cf1061a5f56728841130ef274fb19dadced5d35f05c96e2b28e1a76dc799da13aeb44cc5037d7e3e4462f0d789d955ef295a627fd5e7297d48b3891dbfd4e9eda0c9355ae2aea466ff7b34a6b73f603b9f1638fcb97794c776855ef7a7a513ff3ee73b71ebe8cfe8b4958c09dae12ef3d5bee59251cca56c1af647ce8a443f7ac5b16ea201526d351ec1b2065adbe699779c58b8b3f9367e6150f9969f053fcd453f0297e964f321406fd7c6de2e2253664b75aadc31cc5be2f19eaa9cc2f191f5aa338db28e476e8607695a1f23bf68e603fdf738ffb2d71a9d65a6b961e31f514f5eed453568359f5fcc8501d85357eeb2b7eed52ecfe335a094959168ab21ae6d78c868f427d44a1ac055c1b92e8cb364ba2af0596a0b9949f6649b819b69bca65cac687b2def8f546af2270a98de5f2e672d9bd76fc9ea33171d30547b802911719b97cf90a3d97ff0d31696ebbd26dbfff6ebdd250ef63ce646beed94a863a70771f7ab3ba3aa94e6bd731bc92504b5256d677c837f5b80ed19fdabed2d6ede3853b843f666aa7aed55bfd2890b28f6796805001a3c1b7dbdf0c27e3d8f966ce3de05c92eb3ef028e7d3ef5512c2528ebfb8230e733a07fab88eeff40bc491ae0373208ebb6c4139ff7721ccf195fe23fd02815416e6f890d63ac7775aeb9ae3ae035d27486fd007f7e5f408080751fde3d6686bce66af660a3eb9ed5ea894be63277e478fd0995ffc857aa7301cd4ed5fa55f446eb9badcf717e6674fba4b30e74b0662c65de7d5b726df7a8a9fbeb3801b425a25bead12ce2d4af5f2a9b732944a5236624fe1a373ada7ef29cf66e4f5970d42a31a102817bd320bb821dc7bca6d10f119453ef5558622a9c812ed0d485d1339c22a93a7a353f2fc233260835f44be327f3eb3880a6d0a777e16ee7c96f3374672671257061d978f5cd621c38d5f32f27d70d790a1fc77e5fcf94c854e74c8a0e36e313b313ddaea9da3f90be851fffc1a2e723fa93c992fae9b4ba8d4cbefb7d2faea6bcc17624eaa9eb0ca8c47e24f8784bfdce02f2c7ede90395ef16791adc8e0bfc93fcae4a9aceff54e614f65eeb18c06f58e7af7ce6e0e52af99887f12db0437360b6e64175f89d15da89f4ec576f24f74bca85181b2357f2799e59ed47722ae13bb517f837a8a7a475ccd94b2754e4c25264d03b29bac2776abf6ca286bee3a341a5a55ee08954b5522ae77560977a9c7dcd57c7c23ec57551475d3e2bbf88b2bf54afc7741a20bd25a7ccc065583fff13717e465c5c76f1d3b9a478f6ea80a453a35dadcf89b0f36be12a38f1b7f45d6005f898f658f92c19a3f911c1b1d9c214c243acb5726c387d6dcc27ed4ed75153fa20e92d37d377ed3c41dd4a918dffd5d5a731b0176f079f3b6c46d9aa6e91e3d72d03b97d69c8d406b51d2d0b34e196ceed6342e8811213d8a312251f2f14b4ea058f1a0a69971f7b214682dbeab41c25fa46f357e11feb2c2c68f4003a2e4e101750e3a9377a8d5143fa8b9d53f4ee55c8f5cfe1672321ae175baab9cab5c7c23186687b3a900bfc8f015f9727335576e8ec77537a5315cf91ba3e14af99b63222ba235f92ea3406b52860c29453268fcada8ea277388b28f110ce357fe11f2290a0afa27fdf25f7391cf3d922a57b25cf90e470acedda3469473b235c7d43d469951ee23b44f05ae45c6650099df7b197dd781fa7b7d9b3e17f137eae9f309dcf712c22dbbcf573027a5ce5d64f40b123427a217ee1d66d4a173563d5f54f73b66e798257c0799b6f6dc7940b9c46650b7775d52f87cc864951e3907847a225fbc8ac63265baa918e35fddce753bd7525296d67e173f3297a478a2fa8b2a8f0aec89baa95ce8fcfd8330fa7335badb57a378349ef32c542fbfb2663416832a2d6b553f5d70f595a43a421e1a7cf925bbf3da5b94f129ead95112f68b61f20645ed07670d77e9cc73ff86d45f4af9d7c7c771a167db0c5bcf977b7604bd96ed1fb81607e44278c95096b64603d17b2267c7954fbdac15f682ba3d49a385ef42c651f63926f0b3c99cdc1afc9ea0986d7f6311f1ddeb87f03e1cd13920ac78fa436e7fcccd4599f14f7eb629c6a68476b7dd1c8df4636c9c88b969ec9271d4ac3e94953cd50f3251b70464a2402607325d48ada46f51ee2dfad64c4b9a31156363b9351ccbc4de90efd4cfe818271cc97ab785ec66636eae7b4aad7b8b3a4a29b52ca5d4dd53f9cea2b8e80261f49ddd6cd077ffae292be626e6e6b6bb56340bcb5351bfc2869ea8db0ca47f839a945ae1e244d1fe4759092f6b0d912e9d7b489d738e7e9b626cdc53f46738cdb6181f77ab3ebb61fd12d7d17f72eb8fb17124fa1d8373b78ada62aaaf28ca6e3137b77a964fd1a72acabdf5d4539594d6bbcab977abb2f467748c4d282b7993cce4dbb4c2c65f5cf0f80a7cb9c2e642f82e78fcc585a856f82727dd73f21fc4fc3e39b128d89b3c250a72e1bb38f94ba5f115f822918b938bd3851fe3c4bb083dd1261d2f1afd374016ba0f551af8314e3852571be3847bea4d305e2cc6094772ced9ed0878036f2e683b02deccef7754e517e92b7054fd48fe88be9b81f35dac7beb9e3be3cff6e98971a24df39f9c1f73e3442f5a732f5a833004352b931965adce1b3add536e06decac638e15aa89fe132a2d4643d40c2cf8fc4bdce95725edddd25cf7a37f65ece69bd8bace4b1cc722f6af12e504276936c37d175bbf170dfcf19aafdb5fe2bf5e3096537b05fe236b3e0fed0877642ef9585bd117a4c0a47aaef8dc3638f83ddba5f5814bbfd1a5cd84d54450b2bb2dd6dfd6b36b7fefec2beb2696d53dae129622a954aa552a9a6a6a6a6a6c64d393939393939ed23a78374a97744a7d3e974baa1542a954a2c6a6a6a6a6a569ce4e4e4e4e498b0bc9894dc0ed535a5524d4d4d4d4d8d9b4ea69fa6691d5d6352522a954aa5504d4d4d4d4d75939bdc0412808c1257236d2a8ec8c7e714512a954aa5528daf744d4d4d4d8ddb713c454c3e202ac2939fb052a9542a5db400060815e12f10877d7e1ccd3b9d6a4aa552c9d9381ce7c3e5b820f49ddee99d66a9542a9564c0541729a396443b8ff34e4568dabf4854abf4a927d1d3f0e8c0b1fcc1d00e5249a01b7aa236cff51788e3f244b7a78cdbcce3ce1246bb3d8e05e2ba90070cd5f54f12c6405c97c15063ae03d0e6e9d10aa79186061be67b8e9dc839616250d4fe19238c9657006d2696835a513c273afc04c90a4f30d288b49720cbba91e8b786f15ba47eb3527ec3507e2bb9fcec46d66f2c567e7301339f8df01700fcdff02e5a3c00e6f7307f653e2aca54deca5afc84148e814722ab626158caa65816c5e688a2c57be07f48113d6852a6a84bc62d0b9ee01878a4f2ef238cdf6015f7a121e537b80694df2213a316bfc5266e0441b4b9cf721747ad96f51608f415c83d28ba0ce8ff85e8a452a9325f4a19d083e2a45252521ea5ba88107d8af520d0fc1bd657e8a7536bef678c2a3f9f129d54aa6913342dcacfb72e22440fb24a00617dfd99f9a9479b9f2cbb81ec5bd445df75c9cc0b0887c39a735ad32d2b7369cdd25032e6f92919b3a66d31773e8c8c79fe146532589b5f80f9a01765325a9bef436b53caf943e0e9c124745a737e75c95813f4ef82ecb6048c6c73170628e5e129f2e8d1fca772838a8aca83b214ebd21ac8ca68edf1a3cf3a5508d9e9d1631f9e1e6d2c44ba488f64852618195f9a9db456bd4a96848362e56b36e3aec80a6184bfc81b5cf8b8a8c58ab5b627ca1c6ba0f95426294a564f589bbf92897865fee4079201f5f5f12307880e9a1c3834346138512089039cb34883727877c9e8f0351c29e5df3320081ec15839e9e1449e9c3c8c14d9c30a0804650a0fd60efff77ffecfb5feefac214dd3341e78786d0718307e468f52686872e89030a46dcb827ecee81982292a3fa91e3d82f1ef291ffdb2f2efa54aca4ad639bdf27e87ac83082981fe7d4ae6ee2c81af0346bc0f3c18ace0d13c0e3c9a9497b2d694df447787b7c3a7380dc3e40059fb443c08f459efdc243d9234397a64b94ae7b4f67e8719290ffaf7d324c552292a0ceee1650500bf55235806d6dea3f117005878065e79ff6c096c7a881fa859b16db8ef9d5ccbfbad211938c6fb0d9ef8aff5a887c041324e207b03f4d9dff01f47724219a63c8c77c36fbde36836d0da7b9965e024528137c51af152fe552ebec54f8b8aa0e8532c3c41130a8a49c68cbb6f635a7b8f433699e90922813f30499b744987faa5860ed9cba1c3af7902d99d1ceca38127dea18168f879109e2012f84355c7e1dd0d9e5abc4773c37b16d94657649be8fd49960425c35f58402c35fc45d6ba13061305a34956e0a75ea8b626e99346288a4a2a4c9ecc0de56563e5ce68cd7bf4e8a5f1bfa1bb480cf1bea3a8356ffb82b20b90ffa3b22aab6a9b9fba758fd83d1866060ce3de7fbc86ffe0bf2844031ed03b28e60eeb876d386e8d23f5c87dcfd2daaba1895ad42dba8fb21a35c30ccfc1c2745ffdf9f3a7a55afd25fe73ee1597b2569148632bdd25c7e87e439cbbfc660cd0803ec3330cc3a61b81d6de3fc071bc26e4e36f1c0fbf64aac7865037ee714f0385892031d32e47ff7b4f3a1d936ee1117900bbc87e96f71acbb3331cc3bdcb91c1748c65060331afd22fa0f7c93c3e337280de03ff03c8468161ef180618a66f9cfe22c301c75f6af88abfac55f4afe15c8f31c619edd6a747fbe81fd3005304f131678cb4868ba6b977f7d871aec89dfd031342f7e891fc487d0f1fadc59719f5d37a6a3bc2e5c2fee17a50f2abec5d8cc2ec0df8548f59d5235c6efc7a05b1c20650b041fb68cddf65035e43549bdb66dcbd71e3414cb67651be288afea0d13f665c8fd6bc0db7b3c031bc6715f53da494aff7def78fac7fb4e6f0bdfb4a5a1bef1da4715651dd4f8fee69cd5fda47860c17174dfbefd1e3fab70949958dd323ef97a1340dbe499a86fd3b878eb671cde3fa7b2e02143c7c2e77e37cfca54d740bd5875d11d7e3ef8ec65fca5adddbe42d1d039ac655c68c23661cc95de6e70b761678c5df0bd7c750d1709d6d9b684ffde7b471e8c26415fa53df3b25a5fbcb6ef55e57137552d5fb25b3d10b452fac69b21a040281404f51a0ea715c296b0692d6cff013abca625314c56f04935532d0a32712b148a46355dca37e17a127de75d7a3ae20aa680d017f46bbb7e19ea9fb26452d192874fc0ff36106c5ec871710fd019c67a8e4cd557549ebd8cc08000050008314000030100807c482a1602c1424ecb21d14000d8da44e6c549c674990e328c390410618000c0000000000800191290101fb8b3414fdaed73ee3d4d4ab288eb2cefbe362bdc168a89e3de3a2c265cb32c6cca6a8185511ca7a52961d256c4a9c4558410e7a20c79a4dd9126135ffc9c6c63c8b98386594b25dada14efaae54f99fe809ec84c7e20ce69103368cb022628a39320ab1cbf7892778626e3d6010340b4cbd094f9ae029f0b5d58d350b3982a552e4fb84266422e099f1f7a72c67ac32ca7b83246d5e6e339d6a4f89ef9dff6c013130f44c9f6477722bc96fbb1d93b90443983d0466280d6d9bd459d0c412dcd765cfa9e70c6195c61e05847602caf5eaec772be2cc2258f08f97fa67c8d1543d8cddf06011098d2b91570af94dcc844f02f6128f3c48f3082b22a0c895239733184861d77b0a399efff67fec3f3e2d059efaa0a7405cf6dd02da839f16cc145c31104b8c3781bc343a8da024692146904754c882234e826e7fd1661977ebe5fe20ac47f50f699f6461a50999e38f8cefc2dda1b880ba656be84e19549034d078686dec5d3404ce8df8286615de70ce523fd01f1ce1297597bccccf10648607a002e2358fb08a9013a24083c1bb1ac49a2457a018958d5149cc080349fc85fecc4679e14278c66c0f828bf0b725a994febd487a1a209ecc28473d79143d94a21ed78aa220f767aca75746f4491616ca3e9379b930d66d60b58a517d772232e7e92a5f702ad9720f9b62aec822302795b56bc211df49104b7e4c78e22672af6f7f14655804c42c37fdc750fdecf10362a220ae8c983d3dd9b36e1308783af04e84a40d51933f3c346e38e1ac4ee1c6c423cb1600d9198c133182a2e3a62f0599bcf2117fba3ecd6102498c3b00b8b816031e60423c7d2d212bf425618c60289ac1adc34a312aaf40c0784d0fbba01da4bb6aed387b2d1ebf8a8e8dd2ea1abd911a7f79eb18e72c63258b348ee573ef43cf1581995817e828f5953a10e5978e45208bc096d1d9530096c51e030e5392780b24317492cbc2035ea2982372c2b4dad6f0815a80125649d07072efbe5fd83b3cb032c8e5b7536905c15cfe1dfea6f66711531241bb93c8d7f7b7b3a5e5d16a799cf8e24e644059e11c0ea121659e28dd5dd0ec3a7e6def96bc6f25c09135942eef52e6e1990579626f2ca77f478f08971aabc4205647e676479e196167b24997e7d231c43499b429c9192b8e1c938b3dce5c629f7011a7a3d9019f76e0942f933f400ce75813465dc1b1002b2e60420a849fafc260822f27a3d8b1d414c6a7c056bb1d129faeeab8af03f891793ff219d69f40c95438370b20ffc3eea109f82eef05ffe6f74a2417cc12f66dc05502840e3e4de94c4141194bf049ed9d60c8f65afdd0c0b25abb04245f0e9bafa674a6e68b0c3fb0ef4e3132d0b0825a9a9046a2fa1488bf5d28cde0343cca735593674b002d7a7c97c6bafb4a9f3a1849689a40b4388dcacb14a9f1adb38939f370758e5a42d278ff90090a5e5e867217fc8d1e49904dc3a14274e207b8fdb658e21aca4abbb0cf9cc76574b58c69a3a5ab0e7ca2e88f29955e97b84f7ea669362015ef06da82cbf1936287e7d3568eaa22e870a19cf68feaf0b911353e561293ed6bf95c8cf8d5dd5e1f2052a47c21212c7b2efcc6e5a06d82921729d8bb29e7dd22a515cedbd010f539afd9f4a4cad90a0eba7e79b5cf50cf94491315dc78c91ae6586d8ae21d013c43fa5bdb2b191497fab811ca0a045f8a5ab1099e184c7871446a6a383d843f2a2cbe52b4338443da1c99af845c40bfed35b24c50e166ec236d3a275f385ffcb14f266dd6eec7c0b4df0f063e186bb66290e1d2273392ffc4f433064066336c9a2a523858b9883870e66568b2bc34797d1335b69d6fb3e6a6a3cb65db094c277dc7e54e0197b4fc866d5af673622f5b49fbfb49c38854063320e7a1e2f65d028e2bac295edc766c280527d4e45f867da45d4e784859a7b401007fa9d018b9388c5a8faef88f4ccbf50ffaabdb08ee39cefa73eeb950367c90a3942b118c0c070acd513742ce8028a33b6c50b0063f72bae6545de03fba5e4c5f47eb56a6ae590b625401387ef8bf619ce327abb3d629dc7cf6bfb578fc08b9fcd1a80130a99137143b963f4ddbdc331d9ea6ad549e89e44a38e5f86120de0ba5fd07b8df07a50821732cdcb94640dfa9bdc06a8fa91447e25800c7ccb919865fa01f5d4aea03e88f4eb573ce6ed4aa51be84037c8f7120db7fdf7f7e5ff5af5a9e382652bd1d8c9bce33de4f62204c5c1b91838dc9396da9247e04f8fb1be919a3090a8deca2d881ef1956af63e2427e361eb6f591a71f0cefad9cc4a78be36e217c802bc60d39811b9ec0aae73265fc12cf5ce02d9f344ae4d485f591503ea278cd25e747ad395288b2ffa3149cf0a8a0f2b20a4ed3832d0182b529fd055397ff7be1c242a9e54606ca6a9221cb06070e6a585baa110511f69f4089f0f40a9b4fbdcad30529be0fec76abc1e1909c4e1e9cd676cb6a0dcecd63559f98fe9bcacfed424524e9b907c8a6307a773040658343125caadc0e49f5f614b50b35d94104a3003f45fcf84d97bdc5df7e10a500e09ecb280e2f65c299c77e95bedf588a7e3b665cabe4190007588a8d07a20f6a12b2aef07e05c55c7ddbc6e61237c03c0960c035d8c4b670fc70b23f0c0604b60641d5241ba29817c849cefe4d85f2beda33fd374fd958332d5dfb91575be540b7f8695c38fbbf87ff8cfd5057e8b3be8398c0b34975f58c218178f66eb101bcfe3d639dabb171136feeb08e15986a03f9b5c281e890f2b278c632180ddd81d1f8a3073507a8a6736ab2004a32345aa33fb1e7f2f6a1a7148d0f84df038189f66880da0cebb4b33266cd85d692d3046fd137e41c07e07627f8e33c35c3d50bc6ce2016194e45e4dafe31e780dc8611fbc9b7cf0e89e114df0c72e3207746a60669bbf29e7fe4d4389ebe2384ffd15f83f6d1a0255378ad0f8adac38f21c8acd0c6b9eabad798f07d70bf7a3b774266ecceaaff11dd0244547132a6eee4ecae90a3fcc90aa187147116725274ca05bd02330d2448243f45c394982e5e1780969c5804ee531e16982fb7186b8f0bc0b414e22097942688274191f78e598da97bb5b20763b74d3ffe9a187df446d1a44fa1fa0c2bb1b1d60c84e4440267715ccce6fef1bfb2f4e59dc7d964ac78cb4c537a230d0706131f8cad9a253b317f4302b1be4323c5f3815a78181a5ebdf4234073f3678f46fc8828fb76697225a537d0c9cb9b6f9b8699acbbde888cf8efb8dfc8cc7e1e2613cb126a00346b078c235f7d7faaddc86e4a6f6623335b2abd997d4da389414698c79dcc0c89ed95852b41cc666ad0515cec8ef1a3c235a178379e4c8d2e53d75e26732d40d046754971095677e4d8802cbd593033143d7db3bba0830321b17f1ad8069d7a8333f711e9cd9ee1cc45e4d41b8b30c468c7ca2ec0ba6bed98980b68322bc8ba654037a8603150439f6fdcdbcecf7874d9dc673beb2a303ca883b44c5d29d412bd53e01bd74571e1c9d03dbd42c80f96826dfa8ffc343ad98a3f5666d54db6c0c560f30612cf80f8d4e1e6534879eb2631357e70f2e5c82e86f81e71d08e09455401863eb2bc9885d1d3e542ff9d8323626c1c6747cbef584a86120e14f45efcc859bb30301236b5f9e887a86e4899208f20f918591cece122ed16f203cf5915a2c9169745205d15f60cd17a2c1830ce3b8c6bad50de34e596e6d1488a66a4b35586f94b9824316451565b2e7d60b27a3b8848f3bf12828b46ea54dcf06ef8f48173d6cdba9967356d725730597cc6e0ccc88457c5fa5537b260de3c5999ef648c081500e06a699cf639caaf721f0d38c7898fb09537b4e03979ebbc8284c89cede42d5dc2ae62aefcf2b75418683679d421ed800e0d62d2a68ea4a46fe0a1e95380624ba0202028af7f44a58f07b68f377f7bd4698e06f6ed604180b789a82e5461a6df3d823230f984353672ebb821892835805f5950631464102904aaa016519148eb4b08c7ef997e700a4bcf8d5b55dc82e3653f6a35c4ae18b19d9cc452fd1b4d0ab8eddd3c657956afe2e70c258a28a336fefe7ae9fbff449703e22039910837aa574c0e5281875d06011fefa491c9fbc3f9df6dbc8c6eae5e696439d8bc7f643652706767cea3fbf733cad7d283bcba4091d3f70a1deb9dd0f0741bbcb6187672a5b4bf8ce982addf5099c6dc6854da6ff661f53edbb55cc7b3d94282f8592d2dfd65c37c3bc09b2d761e850e6ef4135b34af9f97baad521d89d224c0f30ef7b0b6f1a5eeb0982f200d0bce743f08cbb84acd04d28189769eb9ee9fd39ae42640b33fd57757e11e38ba8982d4a72282c5aba4c3881dc8b6b680438ad67d0015d5f49014953f903858e786d85175a7487665c5e53439fb07b9500e30d8016d7bb02a67a866ac1eb380557909d5c34b204832211a65e1fe58c37d154b3bc24735ccbf4f8506eea0c4ab02d6f0528c3850b82ba92b8077c431c412e1a027b3896d359cf823fab83b9661b78a1697991152223de42c1bfec1a1563f23d7b966dc3fd4a0547f1e6f656b13f01d7446868a8dee811deb0e836ad5dc532fb2888729741a10ef98eb40b1161c49c392db62e099ab7f6d95eb15e0e250844559278f05d48e387aefd8124c232cba1ff8aaf1a83d152651fb747bf6808e130b5b2ef21b0de4ca0d66e06419f59b4a83f8094ad2d2a3350b99873c6d7aed76bbbd8428c10441bf1b070a0821991125eee994a744a385cb6160173646282e647f5f6ce713b6731ae000f067a8497752866051bc700058df9c910fbb95eec35290c873b79fc08d47be3217d27b7aeca9f197851d14d0ac35f4df1d1ba2cb0e8459d7f0c68ee6fd19966903d4a16ae3c0d8156fb95a089d0b71572fbb5405a9465e6e298dbb05f00f591ea2eeed434cad09573d189df6a532aff85d9f42ac654531dc661af83031dd17bffb6cd3d1c5af79ccbfd318be20adb9b9968a86c24083367ca6b0294eb6f8d097de353401e08a361a12e56e286ccb56a76c1d26f136d97e398486cfed53ce42edd3bf2b8be810117014b0c61f7a5bed1f7625c28ce982dbef0d8b98dbd91ef5452b1808c3eb6a7ae39203183a4ef1424d2c21089151d093685bfd1332bff02ed653a8d4a65bb944638e43a8d03508c47d0583f2bf1d3c38bbb896f19a0903030f9b0de779c32182f86e37419e148d278a3bafe4fd980c127923397f2edd7951ce3e9cd911ffaf35d038eb2871fb6e2a9946fee4dc4db1659ffadcdef4db0265304ffc78334be5d9c16f89184026142d6cef2c507920f2d014798688d627e918749628616a2850122c63f0780267580e7f880a6145f60317471219cba1daadd8f614a678055fd3d4ecb88e37eee1ce52ec14264bf4b4f9e64a7adf14fd92be919c85cb219f42c6b23f8e5644794e80e7b0f3186f1f42a0c81388d7afa760b70a4b80621e49ee38f8226c89494fd5474b93799053c3c5970ad2ab056d524081ebce887f5ce9f946da1b084ddf7da17603efb0ee7407c12461dad18131837d23f590ff12a2c006ab4c44746851b956c7ec67252d61306d224d6010251eb7968cd8d90c4b1d7dce7af10adeb19638f5d466ecccabc6261b71c97a31d55036c01c6537e4a1056662b05ddb4d0e8b9a73c78a014ae8aa7ad253664fdbf1d2fb66086d9109ae75ff42d2d782be3b3703c6d99fe63120b909f120401a6ba80c1782e2360419b93e550e3cc0e9d2b541605f0dd2cc6d092fe7a7f093e0919269b25b7b40860dd7f432882eb05bc2302727ea2823c1455dd50fb8a350bec8b30edfc5f4632272bf5d070e5972bbf89b835fd0a2769e72778e02929b31ecfd680dbe671c3a502c5c538a19fdc2caf244c5f5e11f6982d84612fed32d20a99208c9d184236dfb34aeb7b0c56d1cf2047ebcb51167bd0f5ddd68968bc37b645322d68f4ccad610a9e7289d8d6f4ef3ec8840a8bace447f7f2b484718c20303d14102ad2b621c77b4f1db4b8503ff9e308f3e2cfa7c90aa5fccab7d5131d78280cf022430dca2a74d71e8f4223e8f01f17a49b05a658b266315389663d31d406676c37858d1b21f6314e8f94e9879053dafd17da070d20330116a21daf8c733cc4b229fa3520f9e99d9b07ac59c96dc5fe46704a437336c6dabe1f4040bda6785eaf935fc88ad300f2053fc89b06c2cb436ced8c7e00256535e422243dc63998acdd34392f037d2ee6a00cb42277a40b605d0b95dc1573289f8e0f26ad2013ad772064856a38139ce068a289b57058df023b0687515f2496286bbcdf8aaec7d174d3c0aec8295cb28dffbbbaff681e0246d542e2a92c026a75de723c0b61782407d0d4b81912c0eac787d8941d858cd12fbd37ef8128278980ca9b71282d0ff42109d95e150bfa1959145beab980b56803f6a276ad578cefdee7686cc9d53b4b507680be13046ed42312a8cf1dbf4a56aab6aebeecf3a2a6c7ffc6120e21b772fde7d8aa0300aadfaee075f9357b908a36804bc1fde7dfa3be0b02bcc8df83e0a197a88b510edc12d9edf06f6ad51d5948146cebdbf0934cb23d5711b85455b7e1246be7b52071f2c338264a82e684856423d91ec8a8f96124187fcb4114863e1f52f86aae077e2a3079309eab74d011681266b0940d5664aa6ef3f22147ed46ea5c9dd580934b6ec7ea0e935a6ef7b7fbfa8585fca47bc2872f99becf0894507592a800499e229cd1acc3a6dd136c92d8b1f351a7f3af6578bae4fafe7f7f2d4ee63bb0fd6dcfce32ac8eee1376f0dc70983fdc6ca84af775b38e46b7416b72c38a8d68896cd0753a55eaf697d9cba3b2a99022205925d80fb6389f339d2bb862362ddbfa42b46b92aa86013d84f481f761b3e365bc784a010fbe5ff8237a485343c6c022aa7c64a12dc1e47a0f399a5356661e8286616ea2e838137ede10691c9916ba8501e32654cfe5b7aa0d80063402858fb3141d994bb9c09f8d4b3c65d81d805521d64817d8847dfc58368d26512f6c31cddfe1781b82147156286128e57166162189b06a5afd01f2d0583798ea6a70813437e4ce9df167955e0451e50c9b230b30aac300e32954a183cf881045fe83a62447573d622ce0e2bd511a429b239a4ecec577fba107565a5845f4479bf50193cf5bd404884d28af9a0cd5f533fc436c89440743a3360003b84b519c22df01841eb434f28f1ec1e499407e16a328769d992cdd3c53feba9e419340023d8f938c3fea19cf27bb40079b00b0f0986f02fc29f93296b480f11aa8166f85ffd9cbcd9060f9725a52aa920be4512f8eb4f69c8dde1b32e86bbc11181242831ab59fb34a0d74f87cecbbcdaf4b5caef5889be90dfdc9acaa543b6bf74d1d852fe7f9cedb043a1428c73480e5314f2bf3eeb50c1ce597905a72d81340fa25f92eaaade5e63ba5f08aa433b2bfeb64cb96216a910aeca7a0e65aeb0d24d5f40fbb1e18431942b89be90207a8cfbf8df66277b5867cb3b2f9f5682002c580b3ad2d87e23f4f5473006dea537ce47e099a6c93ba5aca667ae30ee773472f2e3c35684b9e47457f32a3122effd2bf848bf5b13eb337d80ba154c1653c606c41db6a49f250156d2e8a5f9951434c59ed4e2d52538eece61e0511509542f1198b93acd6297978dca0440ff1838e4819173a128a91e86500a8e036841597b768149e42f99c750709907bb09b11deae7eccaa2ca082c2926c87b3de44ac9a26dbce94b0e52f398b228f0b0cb0029bd3eec30809112e376f4abb47ff14ebeabbafd2cdb67c0354a3041ca22a0c9bbc555ee46bbec1b4d7109c9e19a8bcb4cdf7a5910118035a3188f062fbb4335f21e8565a64655f0ef15c784de6231ff45e0c57f11a7470fae57ea42539194cb1749690e492d43e975a7238d2d5cbacafea271e50617e8e0b1868ec3278595d93e0a5efd22502f33820db4665153cfebcb9201618bb95c7131e6b6300f98cc377e74978d24d1cf0f3b0ce7d7040bdc65a39c84d90a4bac5a6116d4d66b53f5378a16ef20c5388014660e64950e6e4aba43fd32ea476f84f285126c3d8a26d8055678bc8aae3b9c5d135ed7f2a45ccb02c7d552a8fef985db579230a7113325266e3db83b86d03f38f50caa21e5573c37af046b94d001176fc378451c22d8853d73036e2d0a747143dd8f3c57d1955daf38da5c0056b8ccb774aa154d2f546d403f4bafa8bcbe4254b93de239e76380683f70e54f28f3a4235bfd9f448ae970595341af789aed15bf756345f648dfbce6317b30c8996c7e76b317ac0b6d25426f6ed5dab573bd0c6c0abdf8d58ed3c8b810808264d0087833a46b7d5b4b5f1b76a445f7d2d7d2deb6f122f532e2df5fc7ebcc935c298033a16d660e271f3f46a1591386165849e866b290057c061a1fd7d629bb6adfaacc80f7f2e19e5567ef517ea36e39d61a3e0d95582d92afd3c878be421180b1a03844edb892100a26f876fc96464ae32126f59098fe3f9af5d4c0a0a3c3be47b340572755bdb0de949145a1d151aeb630d75f134513164f9a7d8da19bf102a3bfd9c27eea243a3c1cec4abd0aa5b8b5a7c6c66020def89aafdf893536b65f5d3754bb3d6a348b16735d647e8c13d3f739ead6acf16d5636e853cdb757b9ccff580770ccff18f428497d27d10effe3040e4e40c50ba49ac8fc468b9c7bae171a6b1e03002abe301f94285ec0b8382af6153939b08d548c141f993c6920313b26b0ed03affb9ffc9fe3bf46eed056dd94afb15f40a3810b7c2f7da13df2c7cc392e68c2d3dee9ec3d80e01d91051e7b5da520db95b5e03aef41078463dd8100b5308ab980b95789e9acd2faafee6db485aef61c3e9c7b7d18b8e0c37024147aca4f29552a3c57191179ec95d19cdee973d994b8cc3305b89ef3c655db3f5082d6299cd283d074d88821ad7307d7345aa37bb95fa7d003acd9b2c2df5689eb66b8bff2e91cf321910d0892f91fe17cef170369293c331f17e9e11c6a999fa04a2158d0ee608b243294a24291323fcb7a6db4d61c683fbf579c2e75db61470235282d05dfdd92a7500312c62c5590e20ccacb568c57330db1b80f25ca67062bf4eebd0383d7a8baeab20550024bc566f61f8364e0867c0807cc0b3f45b9cc56cb8781860f637e26285fc258e94a801c8945675bb88cceb463c4ee571a9646f0cacc2ade02f56798265525a5fa08640637a8ecbdd33154c812311e0e88fae501c1147d5edf17513204b4267bb76a8517ea15de32b26e0275e9ad14ab9fced5120966c631a7612962d2da42d09f503820a6d7f933da5b28496c097c999cf2c4e182b56652e5fb51b927f422370b2cd2656ec77345e936f28724897d7f027672ba8ce852a3e92b6458d3e5d96a3a308cbe4a381770a0f3270bdfc247bdab4d19239641b6789cf974a43f4bf64dcba248f67e25fa36b3850ca8d1244bd8283a99722cbbaa4b488a97de7cea7b75cf946d7259e8e81ba195668cae584e4df643e62a3151a9ffa7f322d92cd66a426214e0cdf148a37b89ffeab52956d089ec6725ddd6932eb3129ec885a3344c0ff0121ae2ab3aa54b796a7dff551e10cb1d57ba43804d74c412db52f7d6124d372797b854a6908dd12046b79a12414f4bed1aad9611c09e07515349c9f5f5d53a7fb71dfe0738841e72f1b79a32850016f2df3462ca1a80e65d71ac72ceca554b2913807273352748b9904356419299234068ad2f8b55df4e4f9ccb13c0a36a6fb47166757bd0a76d6c616ef802d1d6a58e19e6871fa2894d726ffc37323d968bf0321e73c3f08b1d450c14260950fea701515daeb0d3725f336d80e63abc886e723eb989776a4204e562a31948828916428a5aa344a9ca5bebc6064889c152f25c1033ce4c645ef3d99b0448994a68d539a5b4c5d29947684e1b02b557a6cdb0171d13703ccd4f0bf66455a54ca1ea776a0d0f693098789e820cca7570b8dde09091231bf9e17385541656adad0695597197125ddcf4927063af66a17835639978fe5863846c8f170b0a29a8c43f45b433ff3aba39d496607439f595a2457bc711d655d76edeb58f53dc3fc58813c3d08808a506506abe0d042a74455d76630f8ab6adf067bf36ee8b568264c08c6d400b194c3484083c0cfc847840b5df4b0fcaee671408315bd696a0acb302d50ecb78709569490f2783eb1e549345a5f79a665ac0f608b66fa792bad37b5936cf813134aa27ecea8bac8076acf28a98dc602c476ce40f4055ebf67131c1008e6fb867d35d70bcc8c63cefda53d742aab3b5878af104f8bff6c67615dd26044f706780e6bb9866cfa48cf9c1364933ed0622a42938594e651054a0199b6acd3e3964ef2fc07e2a7b0a1a9dd33a83e3d84463e817e0f5a4535e1374cd963eac3a5c2b3eda88057b8a6c484c3dcb3165fc069703046f8f5c80560e0e2aae75fff75d24606748f280a84fc1e3d3d951c2548f6248cb22353ba6cd69e1efc891812821f4cbf26c5bd94c07b0ab565e8a26aed8f57e40b4bf49ad4b2b4c2cc9666ee565011b733f04f7f4f561f4c3e523955861c47a71681a9ac5fb527d385fb432a99c53991fa9b57b24ba6e1068d5d4a92e20cb116d21e79d03cfd9ea645fc08251eb994f1a65d647748b0c0b7fa13b6ca01611528741702d0134645904cbc81f74db06fe871b5c4b3873d6b510e60af9f5c5e79b3c9d552f202eee5d98b1a71fd39e58d40d48d190307d12e000578f8109e1b5002076744bd003f0cc12e4430e29e71e4d0206a8b3a79e3100f05367d448f026b45358d8452335b0f9e84f816c0a302d2c08282b644ea9846a06b89b8861269c9de56add7cd99ff55e43662a750f830b16008053f4ea3453a574ba16f661d18a2a33542ff150aa4328a92680e680e7a905536380ee8a050dae9f9f26352cb9c80557c9afdff534cbc1933bbb6bf3688f098b91c3152268afdb26a254fa331c29f06f9ae3923070c2b472e04c889cd8348b577615646b9544b82aece47319c1300f41c5c77807ed1104402eb4eec2ad2c6b55bd5c8b5968d57a8ac95086471ec551f216b41c2bf950562167ed3e199db956891130528a5272514360c25ab752d582737780caebcf6d0d0d3036b05921772c3261c83ad20fdccd2515df2fb52ab908a78f473d9ad307c03d67998774e9f756da8c4c3be4777825e4611a41670abe1a80507a908ca36642fca977929dab0ccfa3ebad4e58d62045752a9584d2b7efadd9a9eac533bcff360e929583deebeb89745c7697003ac6f02db76bd995c87f18e27b9a505f918cc3dc80c63328f6aecaef03fc218141e287868f3e2e6b64d15a330cff83a5834ec144a01d07bb8143b3baa772bdc66323e0f1fc2db7dd51690ff7304133d78ef7b7514436560d7e14f462e7143a39af450f6fb3aae1ab6f5d9b15cdc2bd46c4fe1573b47590a9a9f7141589c50b9a83676fb1b3615d211eea9888c8869d6a3f9537876ae0c57deb72b0206ca154808f6c8fb7540e297558f146925e42948b0e06905928baf7ea1faa38793e6a69324872c172b14bc7698746eb196ed354e6fe2d8fae6763f6888e6e360a062a95b7e5bd7c2f45a2b91220301c14b6862035e93392ca1a4961c7edf0ad2c329ece25d40efddd77a54bcd28fe4592676080b22050265d046e602e5979404d9a7667a1540b0293358d58e72e3a5b3c859f1f46f16904286abc54b91d0077ffe17e99b8b68ad0b91621933a91d9cbaa67996d83578ca3909d6eff90f86a98a4d8c235cbbaaa03390b6b1e2158028c1774ac2b48668da2d73c8e4df1d3ce31b537602806090a38be2fa20e62853ab73b47720433230243c943802025b62829857e523eda3f4ab550dd5ef522facd70a784faf693c51abc4dfbb05887593fa2f37711919110d2e9d54d80cc1f04abf77c788e145b20d361f6c7f3fc8ed92adf726c8051533680cafc7ce13917b034b775fe4a7ef8564543e44e2923cd5a3ac212e003f5bc57b56904b7e248ea3f9a01c70d84cd7fc28f5ec9f9818e9a3cc0bbdf621a24e0812c706dd5b4aa25de91929f94ebc1c4d1a04a9b49a4fbcdde1b7a21281e951bdf3c7744b0180255ceb2efd1ec34af6ca9c3dead4569fa58ad06e4d9a6f1a2a348fb332c18cae3c45df170f805f68e981317fc3e1ee52cf4fa150bea17e9ef15d95e8e3c69cf5c069d38b0e0dfdabad7a897d3d6e20b7553abef72039bd0a38fa30bf003248f012643cc36805d84f00b83d8967adc28ee04695a811c7d223057ee7756acb9ab597e518e099cbdb5f28656334036ea79485311293bd013efe2c17951b2ada4007a8c81d94cdd7df5c0e5570b7a5a6a1b18856f9dfb94e97411fb609f1f4c1264ab85a4180af3d9d48366c8282142f2ca16f1f88f615a89d98be40ea9ec4a1b86ce86b1221fadb20d55299fa534013595e8350b48d41816012b51339699d728511f88cd12814680a9bf4e825af34f9c3e48a0f7893c5f933e840cb69a329e9d7174f8711d4d42dd905b1688368661cdc7d937d715f60b659872786913fe5def0d7f7577702e6c35caac8227bea70efa1b940a5be5504504387aa3afd304b65b6a81e6a3b08784a56ea2aabb529bb108482f4c8a6708de903f1361c65df4b17b711d8cc2bc3d73f9f77861b03ddfc4c86c0a03fef65ccb214be7f63f4ed34b76b19ff735c51e85e9940e5bc8727997dcce70326522182547bd7992547bdcbcf4460b1f64951c9b1597d5823c7ba377026367b3be69d9313fcbaeca5c2c8fa6c903809ca62d49c9edc6a81d1cf2afa95e4312ae90bbb00637a17161d12a0d0a06ffaeb1c6fd8a816438901105403f0b8d780cd060d7e2382a8145858134adeaed83e8469fc396b5ae1b9feb43ad6139fe41f40107e57d4c6f50b0791c5428a4d00e084e279f067d14d90eaa20ff2926fc0a8f3a2274dc538da51b391c437dd9352a5b40535224903d0fa54e7e8e087bb7780da1986962c79b4bd4a8eb959c5546ae540e8f8aa45424d089888b473e1cd17c7b9c208c5d44f31f5716176f83c9083598e2da3ba0a711b07dbafc14a5265dbe1a08fda0d82710a06033f78bef2f5d9fa168bd906085ba67d5be4ef6a24a7fe6b6934d7b7d4e222869b9a811720078eea98608fd1e6c3e17a96ef0126ecb777c5cbaed4cc24ded9df411feeac49cb76c5f171546cb2f73ded21405c4fa889243db7e9cd243b144381c86d09ce36b8f7f74971757f89d47d7fb3b6e0007b726015ffeb7ea9ac2b5fc77bcfb37a314d4c4707723594a68a1e5800ee0d438fa68554d24656d20642b5b2abf7349f76e116303a15d58b227972568fbc4102dc4057bdbdd3a7d6da706035a369525e7aa606317782baaf23b2b8f70ae524c78b9bab14a676ff152672ba2843c2d392496076b2de9caf3c69c9502f2261fb66493907a61604bc221a8959cac30b9327910382b6b3e42fc5d1120329d7e06578c2e3ad51b3607e7cc708e3a62b63a30cf94a18eaf9a7186a14b88bd25a118a1d5bc0977a3237a24ff2f29164db9e68c8320a6d94f11532fbab86e9495576a9deb164a6360ac6f1cb7a6e00bbe72779a26dcaf054578cdd0e8d3e3bdd6b9980e76c25522fdbeb1c8f01d28230c943d833928b072b5a14201550f4a8228bfe158e32616c25ddb8753eec876fe8bea58dad6ad61088bc8eac534a6d8c1fea1c8fc4480a5d1501b212b71107cbaeb47e6279369cb0e26184aba6ef399cda65618c1cc94072a6b5234eb1304e7078e02ee04ff5fb6c6f5906f6b939353d1272a9600d4b1c106eac41accd8b239a50e8ea826bc0ccd8cea6c7650604003352b614453ed4fb8cc5613a5395448fbb0533aca30110f3c3157b1918c842d4dd01335d46d6608acf77215d18d3df2e0b4186cc85601001686d718bc9080decc3b472c5a7020fce7d9c4e8844e1953a29bbb32ff65c2b89fd98721026464c0c1f10733a1840dda4f5a980f993cbb565e8040656c8bad76194116417ea3b047854550c1ef9c3b695113408bda79e7ff876bcb8c97bb1f2cd4f5a61862b5a67eaa1b2c59abd66a7ae8a716b1701f420c0090e0cecaa6e68b6242ca3f687ab0a91afd66413210da70dbf55d480547680b435e1a56aa8c042f4b82b0b00180cb7ad89a05130c24ffba3abde7851a453b992f8c09e3d39bc8fa2a519caa37bb3d6285b05434a9cc3e28b453e43b47a75860ac0918fbdd1950f23f0da221b1824163c21946264e5b45cda81030058c756b55354eedcd2fa53a46bc3c093bedaafd8672086c23cdcb9a60c4660b6e5c009753ab50d06e6aa1c1eda7bbf2dd548479a1258cdddebe01967f853dba6c7d8a53cec898f296c4fbb0d8637fa0bf094b67f3fc973cea53bcd27000d928481dc39230309d5b73b965175e316a8c9e0b3c04ac31e56f9c597c581f8adaa91c8d8a7966acb02c566a6350c23f8a10ceb8c64fbe5fbf850ad0e0399d865400697a9d8890e3a3db8202900672d218eb92baff9638273dc6b04f62edb60e29e5ce16c118c5865edfdaa802a2386be3a9e18de19a4dcccb74085a12b533d7cb390384881d2b29ad749c0f9a17691b0d51fca61de2c611a140bb2d51bdd225d8f8fa9942c3e2a3ea07ea4a77f2545f80ca24e50ccdbc965f3e6ebfaed95c3d288992879e18156e03676e6c984a69680dcaa1c2367ae403a89ea1aefc123a49cc8297b8aab4712dbabb38452b7c3b26f1dd9686e6ba6750ef3a4d0ff794a39af30965524f72980fe601b9fe7e31b7416e5e5e0c2828343c56ad260dbf8ca11e04e1f0e9108640afb9f2a682b6b89a580761e0a248af147047e92047e1772cb6385185ca192363fe911952bca70cf89832e7d2e309b9b11e05448f8f30da46e3214e11ec81557347e1b9ad4039fcf8bdc35e6f5d809e43fb57ee5e5486cb3329f266f6ac3b4e2d32a474bc7110a2788c03ad1a331470a37e35f4f4a1261e7c4971509e4abef0f634a45dee99f616c0bc640f1506f22852a3dc0aca94611406795c4aa109e27d5e62210de3bda1b9c15ffdd798ab698139fe7bbd4225d5c88fcfe4b615ecefe20f0b62cf8acc59ceecc0e8649b62c3e2d9738b07c614c6a6552659ab0885e76dadf6e82fa833515114908ea846551162f3717b81b186036f0ee8992d4dd6aa5d25bea555bc77a1609815a6f8e7dfd50536ef9b944d2827fb3d4909e2115a29e17dd2ecc143d537dfc9ea1acda2a6959b94e632465d7c713542f8a813614ee140363f84d57b0992749b969290ac83b7aef08b79a63374613099db8f4ab65ead4dbee3266ba4bafb11bbf104b780bb541a7f8471034ee8d113b060244f8e75e3953dc7c663df6bbdfe6566e90084646455b6d844eb124953093faebcdf457d071b342b170f8bc9f5b1d8c98fe146b367f8a48dbeefadfc5ef2d27b0572f96e34f51b0042da7f8fa4e79eb3eb3590831e73f37e3e7ccf2ebb1748dccf2b163b6c4e8fee7028c2d0d261c2e81589f755c7fbd8857b1f8300f6e2516aef8408f4a11c06d1ddb762effd76b6978f95afc6fcfe0241ec7cd1b389517afffb3d45fcbe09d4d8c3c1f723ef45c3be2768bd582858903bb00a45d17fa928a487f0268e8f2cfb6a7ae7a036d111f4bae8864e44e412cd21f82ae5db004ec46c950034a3249d3a06d9c40a0caded8f61964980c0c85aa70e836c624586d6fbe398652740d064b5047ac9983679867fa6e779c88fd6bf05191219da457a6464ad53c3209b582143ebfd31cc3209101959dba9619049acc0d05a7f3c669904088cac77ea18642756d06895647a0080f6780680b8f524038fee2510f428187219f07d33844e745f1a96fb8dc3677bb38161b29407150351a15f258335f1208867e6017d9491e3f8b9301e3cdcb08e48d1023a6b9b1d2f60e4c629ff78cd7628440084cc4321df4fd8f18c16f6689ced975be442082d54fe341841cd585475806564ce2dbf8591fb1752e22d1a8aebfd59365136d614e842cb8ff701f9b9019bf669f560b5509d301c6d6a64886718f2dadf050d5411fa5efd440e83bad9523df30a972c9c21cf5be22b00bf5bcec7cf1dbd4fe70ee3164d0c79de4379279ac89122c49da071284f2699ffdb77dc19a63eff4d988c3b0105e7433befaf72144f885754738c5fb5cd3f7975fd79b2a0d4c47dca4b064ad7cf712f3be44148f18877acc5ab32a8a0c5058cf126141707f470e7a7b179bb78a37d9dbd1e1e7acaf396ec3777423de551d381b05923adc4a81ddfbf9dbe319567dd7cd07ba511210d84609e9d27cb7b6a538128b18e24bfc6b484c074f1a302dcc1f23ed84a59f7fa1d20bd1e7505d172f9a65deff22e55558886b8006f149e53413acb061e2084a1933e0fbace9fd4f2a8dd91f10a46f44bd05a68607f8ddc2cefa9c2191c86e808876a40f58c9586a4adb6599ebdff416ff4fa54888bf7c1d845917e9e5cc3ff1c3fc4d7de9ec5397d8a16905ca3fbd98a0f76796c37b2ce1533c6c197375494356f0831a3fa1dd04f73f18f0b0a4ed00c7ad05cac4f9765ee302f605d841dcc5d570746ae2d8f58c0951c84014a1ce67df02f9f26f115389d77bc63fa6a4f2da1dabf94c38b22a665c35eefac98f7fdef7eb76e524d52c197d9d5ceb4cdd8658fe15a31cf92e08edfd72c64beef567327971a14b2fed7e28277c8a751cceb717fb32646904ad74ba37b2c563fe5279ad1fea5e9cad40ca302d8298a71b1733a68fe3ea2e6e69931d8bf5aa862ded2575bc6f83386f0a3ddd0d3f97a14f33e505f7c3a69b03951c2ed99763ce89380b0b69eea877fa19817942f66679ed555cc331a7c602a5a360bc4c615f39e0d1339963c767c7b2b0a59a87299e03d5e22496d20bf6b1ad75d4545e259d1005885c9e0a577dc65defedde4bae64394e80edab4bc6c33a9fdd57f6aebb2b52e8189e8511570a85ab2a836bb2daaf759a65b8bc7b149dc4c5df30e8ae6d68bd05528929b78e80b91bd8153b37100e25691288ca231cfc7f3baa81eea68cd0dcb2daee3ab59c74aacadca5c18d07951b26cee592fc6eb164a06d4bdc91dcdec705b4e2501ce7f501490574a9bddd40419567606cd966a768556b27355f7074c35184ca477684cfda3152f311d48ff7b1c09e6bb5fc96af6c5e93345fb28faf92c0a1e80645b09c507161a8267d606985f5f679d05e7a10f301368233f3dbf78cf428392c1022bb8816547be27f91cdb3fff42c9449531b7302da7d9afee22bbfe21f5b5d26881fe0de7a93de5fbd139ae556d003d4adead5320c4f62dabee9c6c84ca47828b189820eb8982546fbdfc3158dca81110a87b9a1e54ab3e1790d27b2d609a2e563632054ee54ef4f74f8ff2210832a7813688576e11f564d5c9b8fcb0c4d52f4a01b457ee03b78789091312f792467bcf0109cf2143cbbdeb5bbbc3e3c878036d078db3d338fb955333d49d6ac94e0bffada4f6d077de1e65f51c3a7642ad095385445a7dc2fc1a598e6cf22892be17add76410bba34019f02fbb7a333703b181e248b72fc2bee20aa3f5273062462214629e14a03d60adc73c918f2c19940a3d944242e5c4669c3f001776ecec726b462a7352fd2e66c93e8e871f824d8ffcb47ded67e44b6c50d8764a28381664c7fe1cad9c5695b5df951b342704132cd7f02a86c67295dac704c0064c42240d3da9da50f9f78a0673716b1173a798107aff1929475a65f7496cedb7d50f13fca1e5f8f25da4cbe50ec23bf6fcf899f1c765dc6bbe77c7309c1f198a42c3ba715781835db911ca8ca618b6c866f91bcedde59d218efc8c1c0b97149f6254067563c20c1dc56dee47c553e293004b154f6415e70a2b17a9bea10515e1d25ddbde9aee00ef19188e37d34940f2dd33c719b0ad7c38c3bc3f789856083bd70d42deea475805d52df1782e42691b224296646be968ca690f0542bf8a409b72412b818a3ee9514dd3bfc3ba7cce6c4b4348114d59df5dc534f77a389e29a076204260cf518a4c56a2741b192ea366868d45c5f9b206a0c789318f420ca6593cf2cc6d54b6919c2969c90c92509bb6c16fc2b9b6fa51a2fa9ecdfcbe1b2454963a840166890878dd839a9b98ee1897413fb916024e9048e524c2edf17e7cf2a6a6d145a9ba3c56f76156a9e3b9ea0441f69e40bcb27aa93691438c5eb4b666047e353ec87603c2f64088f54ac349abd382fadc467bb10a295841e4bfe9ef11d01205ca2c3c046582a75d3c64ca868a2e9ceae5dc14b4569df2cc1304b73ef554c00a4e9ceeeb9faf2aea3195fbea179c26ed6202ec655c5c0c96e280a2e56445172c8d92441928d8f8dfb379843e4970edc17abb03360392de7660931ff61907f19699219e6fdd86d21a306f1bebfa858ab5aeae1ad241f3499c0cd366ae7ca2b5c773ffca0cbf182a87d516d4fe22e51ff813657cfeff2010ed4f40a4891d25e02a76c38c8038b32060e32c69b4e13572e631867e5872b2ce60d7f64074eacf4d51e076e3640e721b8633dde19a4dc4090e13fd056ee97117db67b4fc3beacacb5b986feb520c5e2513f4ad80063ef87c7c739eb56bc7a9b49eda50213fe532b77f83a8388f30c25576e8dad744b347da82fc2d504732d233268448f4ea0d99dd351ae56c9e66b59c37c9ea6eaf860a20d05f4ea4c7e7e867721006f550a02f7d16831b5914663c1770d3a2a155e448b30cbbcee7b04b04f35d63b0dccac87c7125736fde87e497657ea5849575c227e08d51ea015be533332c2081cea25c069165020451147e81c65bc4d5e3b35450fa01001d48d934e380e7daa661c37cb987ececcd4d660c867407677e97488497e7480f2511cf39ffd1299c9584532dc49f143279c64b31717b5f6ed419592871ae5aa7ee107b9c0f1b500ee2d9fb1e99eb65b49e073ca40bae222787f58cf971d45d4eeff4d63343151d38c7bccc2540983c4574f78891f186a9fef5a3a04429c4038ce7a09c97ae2ca3d274cb3c8a0080cff7f71ecda8a827b84662f97f100395ba7d228b5a342df390fd9cce646f869b868a0e8f7210873a39801524a73ce6405bc5258c9eb09bdac352424b52330722b1a5a415a6464b1bb17e014a7fb0d54060e7cc89510ed50533b515562af1900bdd56e6937358861e5a7c6384162f05bed75e2d49814894500f807c098421154b102a29737bd9536f09a68de6c3d428844c9496cb1cefd1188e6d5653368bdcbc4caaf83e474f95ae2cd056d27b37f1c406d56c5ee1bb9bf3743718d6809867bb8dbd61ca65d31b2238383a5f3a1ffb3b373b9ff4ae3ebe6110ce55f0490a6b191fc6937d688010f47aa2d1477e4a64bc7ce5ba4d6cbc01f151f65391ff1f3c37c63f85b5a3a82b86daaffe4ee9c0d58303ef0513c93ac2d50324c1db1affedd15a7e89e72d1ae9314084083d8870be2e4fcb13419e5da7db4109e70f22f23164ffeb05061c22875173d663d5c3973c7184ed9c85819d6eaa3c81446ff77e0d303934914cd5f6768aee911584217ab0f9e17c2fc910469f11bbddf738f2906f78ea78f4ea0b428b53d980a08efaa80cf445ffcfbfd626263896084f74c0563df20679ae596b665ba2bf68414a9b382f8abc07e656a2a5505b2155cb94c8fb50814bc19548e1575c6e9c3684f9cbe7582e94eb58c0c4aeb7b74e26dd2578c833e6120577706ea13799e4304979b7a112f70d5a3d194afcb80ad88653783d58cd489b3b2eb42935d28e54ce76e3af4cc58e0406729681a0faeaca012f3e9b8c18d6cf59e1e13591ddcf2ff9f97025d0c0cd3e5380f7c32ae8ce5b8692e0bf5861fde4a40b30c3ec8a682edc9bde4fdcdb842395d0a7769b048da1f680cedfd0809e615215bb89caeebd781590b3ba44adf0db2ed09c7f3dc4df67f937bb571867258309f01542f23c637543e819a05c13ce029d81302b587e38cf1a87d010f9e219a97fa1658fc23662be7eea54bdc3d28d7faf22d8c37844f9e7be8a4877f0ec11694abb83397f549579dc5ef6d4667174597047040cee72ca784960c18590f57855bda325afff2c73b43b8a13c16a950f60b7afd75e515e853af0d758c1226077f39554f3338c37b4a37f40bbcca1946400d2ec3fc181dc8cdce1ddbe725c1f9e9f04369fba69efd5b0c43471900287aba283a0d3373a104deea273ce79cb92e3df987f752f91c773de8f20839bdd31d1d7de41bbcc5697715b7708d06a0ea1a16ee14786e83b1f81aed3bcf883d5156a288480e1e5b84ec5fc8b446b823a7dd822cc3a3c7af137ce84ce565f8c020e9f950965af119ce304e07adef4e63e2d1c133d2cb0510a4dde3df2804b9645a2672a1f61b763bf74b8ffa581272674d255e0c673b3ffce940020ae2d14d11871c06fa2ed199744591ef8033fc4f7f2705ea7f1bd2cdd34fbfb6037317db74323f365ff1d43b81218784b1b3cc551dc7a8e6c2585df13344a603c4444d4dc46b5871cd47d93afdf3f39e41a168504104ae0371df8aef6d042027f40f7a1ad36dc3b180c196f7bd08238a68f3646803124a832079b4559b8603044ccdb639ff2e4e715682f435486b19b4358af3015cae379b530ea714e40cebe966fb1e450603ccc6b6f44836fb81db3516396a3002b73236e38cd843792b1c4bb65aeae8d8d5f05103400485254997e0be9871672617a33c10c19f2e3d2303c4e53c5a684e40b4f27b735259ea6e210285a447700f62f06d8d307f72ee03b387b028598e70b9df2cf2a568a006460e8f23b166c4c64d2bb5da71f96f35c3c7e1ef88173ac81e33a7316b733ab9b7a4f5a68cadde74fdaf8a8ff90f58b81af2586c36df91e82211a807aef1f78d4e8c2d2e252dff129cb743dc2657c0fccb4b4dd7d025fc6bf9b485504387841d0b1ee2e5a1d5a13f8eef6ddebca88bfd969561a913b61853e1be028ace6ae687c31d647fcb97f7b2e663617251174d817e2117e4cdbed66ab8a104513264fa8a327ffd253d6adde0d9c323256f52a9b05fe6c53945c9d2b3b7d53a40f75fe2cfa4c0dad66f6f520158630f61155bef42d81af5f83fa49c572616134f573f5faa741635a8600fe095086663ba96b1d02355ac595d0cace55b8fc6eb9b73bec202cfbc81eed298ff8b928ebe7769da7387f39ce26b6d336c744b16e3d60be0d772c4cac4f6c4865d6835d403cb718b604df00ad2dded8b0cc199d7cf0f50f42ca1a221da4a715755e9c56ba9d62141f6dadb5b218b558880fcafb2a4198ea9bd2258f26d60b5c117728ed07fc889106653edaa9c5b3263dda8bf4aca99f9f3a228eba064c4dbf166a53b4e02189017285f347968ae46a4a55c6427edcaeba4542f7a367f932960f1b54132b4d8156e917b58f296e91580a5bd3c4ba8b9518ff083b45cee14f50406cf969b0cb9f015b9ec8fd5aa85253c1848443ee45694212f20a785efd0ccf8358342fe545f1ed6d39f76003c9967eb63f5eb003e0b762b6025be87f3a0f8ea42ea1b942a3339cc1cbe3de4bfce11579935c7485992abcd4c0225b449c9f35f4a1b5eac735456c417cd6e629f42f9c9a469808eabfd204fbbd6aea65918f610bafbdc296b7de1a9f16c08a14d431419a37c4f5120110ff6ca4bedf73090537510c2b8cb837864693fd9edbebbb5afceb227784ebec2d8f2d892a4dd6194980676e6e7b845c2dbe1f0c1319b0f46cca2a887cfa5004fc8a4115888df6a2e8505b2fed495e53d265f42b041945e0c44f2ba5b6b1ea693e1d93672f681ebff61eef2225bdaf983f49179a558ae6c1a474bd84d27c363e25ea4fdaa64256932ea33190b6265a38a46a2ba6991f99508c11bb568e4c6878de10482213a6d20f18763088a98189270d07d1d6ab279b6acf9e1ba444b59447991e259d31de65afddc8c543b5f09d5233c62a5048d95b21acecb3a28241954427495482a0eba08dc9dc65663b5530aeb920f78a9fd9890b0c02d6e8f0eda9a05b75b12eefedc963ce5091c28be783cd8e42364881fb8f35bb5f191bca232d02654a7d698610eb66b6679017d7698630a4e78a685b00bb7080ef68fcfb62232980b29886a44d57f3076b3534e45e3c265ad8ab143e985e9abd91045e2c8dfde25cd817936c53771fc7f983a17c67947f594760d38450867339980c0ec8277ed5218d3ba32b0170ee5900cf5e238a09088482c0e7a4c2fe8fc5d2904e086792cf785e44a6ceaaf1d146efe925123b44bd143da543c5f64351c4f7373ce36c61caf4fa14d59c9bb69efe04431d47dbfae6f34255bde24fe88076f1821bf7c7eb13e6bc3c90afccf5c1dbd2437eae4ef7d32b58cebb4ff77b17d36ba6634adb6b02660ab22d035f3a57206ee66eedef3d4ac341a0a921a27c38d091feb948a5b35cff18ec15561587c129ecfe39a0dd18f22376d2c5ffcca46a32024ad6d3ddd2bf4f61b018e026abab3709eadc295ec1d398ccf2061bb659479f0d301ee2e17c4318d14574b7969bf54a51bbe287d97fd24596edf23ef6459f8e442c18ae07c50a56e6baaad191a539c440b403f8432261d3d3ec05f3f0bbf6f3f85f2d646f9dc37dc8a6a7c9faa787ba5a8b6d15da2ce016010af62a6e3b7005c26c86235572aa22c41fee10e925da32554f624da5a4c4f17d827aa7b29c9a583eff6da77ccdd7f41b97f46d1e13bcae4680916d7cd3b74cec25bfe3ff6d18e33476edbb9b1107a93f165224a249ae1654f668dae1d5eaca922c6c01e440bdec1f9efeb0510ac120d3b87c0537afe0ac64803a013abca7e7ed4783e0ce94338199d7103d705a94d70dce6f138fc548a3b20e4137d8bc6b2a93913668ba4f8c5fdc7b13fd56586a06417eb932ca760dc6ec6f90a566efe26658be6054cc83807c57b974e8c73905eb9ea8d0564de6cc54e8ff385b4e164bba513ee2f7969ad4c16b41e3bb71e62a02ce732057e38097ffe2b3c5a1a5e65a7eb30b65fc17240dbf3eba5628d916eb4bda2e67de56e39506738b00b19b4230feed1da75950f370dc616eb9626e11690b1c962dd2324ca18b05815bd7e0f0db67d3fcd9bb04c1eb66aaecf5c0ba656e251021a97129134797230a94e0828b49d6555b0c1070d2b9f9af65f5d9d4040d49b3727a5df078f83fb837eba6a860454dd15af8053ece9d86fa132b31bd4333b8797af5095c722162b7e50c3893e706603ce2508a109ba6e8cc10563f09c2119971f09a9866b72364ee1a804b07722eb9a240446eb3ff637e4717e3ab42cab5b413eca4498f010878af082db0d5e80bd024ad27777e560823e7b6fbf028fb80bf6248885a3e188309c4153ee328ef8ff1f0a55303afe505ecc5ee10dab338d99d306430842941bf1fb06a1baf3ef98fd524e183909e1240f6768da60c888e9f597b859f6e1ddf387c37f14ae5b76d246e822761c12b7654cf5eb757ec8fa585e19b13a1feb10589666bda4f249b5bb8ee0856157f90c127db8255690c1851f51f815df39b7a26220c2411d8783e92c99e1e76f98c087b7559eebaa5885eae80799f581bc189a36f8287b04c49959b9e13c165be2163c0659401d0be24e03fd612b5d3d463791f1081a14eff24fa579df1d5f0f00f63d67d8ccd9d5ee3662f888703b9d5d1712df60b386624ec62b3d8abef855dd4f0e90fcbc9ce32eeff6fe13c410fd8d9851fdea21138bb50063332c2ce2efcf0168dc0d985329891117676e167de6129e67f4444ecd2e27942bf15bbf48d7758caf41d1125bbb47a26696fc22e3de33d2c45f78d881cf6252de907c3fbd01670f479996ce2d379ae4897fe5b2a4a31255ddf65610e842d20f5ff60ae0cfef332a0f87fcb03c56f591434678c49c28b4a4f886e072e18d0de896b7e8917038c4ae8b4a4b551c0fca922f0b55d913b87956fbf5e15cdd7e890f5e861cdaa0a1d019fa0906abb34e3aa42dc9e223a40819b0ee2764705222174ea42091614fe146e5dc7b38f8bd57d3431db6c40446f0611fc1efa4eb947f60c639d7009e1553c5be29e8f635e19c0257b3328b4c73d4da30c6686abd28437fb52e58a250533188b7c01e54cd76838c99e1b4a84f9ec03a88f63e061c66ba585ce41274c126708f25c548552a48f9060163e80e5fbd16efe91a180b50fe40e59f12e9e53ba67e927c07efd8f66b63e12a23a314fbe81973d5d6622d0db0fa569ae4bc090538fdd44d3dbacc268969e929e3979f1b6a68cd1001097c18b2e9a7f230d50cdb9c15d2681ab086ec48cebe47540a7f524e9e52da8825ce591d01a71e52787841a4fce7869e6f9b5432370e10d2f8de39bbc8b7582ea325a8416269dbd0039b974542d7b8b0a073825355a68474574421ea8f0903f541fca49368eb28f8ea80119d82436cb7c1dd668c7eb45024a0192ce27ba34d0a2a4d19d97ee261f239e62bdb83b4ec45f6d841950e86a1bb8a814a0ee470ac37b97052f1812974a3dff1bac9b96677d89e47ebf98b4c74f0b3b92dc3d005f6255799b5c07c976609288641bf46d32e4e5b5410d13da6957a2b94bb169d91871e49b6d38342f49ff4a26ace00f7deaa50c280bd3446b5872ae6ec692114e1f83241c6e579588be08e9e8b468e8ce4e07409a0d3db6eaaebde925acf5873dc9c6465bd51a13545d7c19cb661bab788ae106fa8cc8e7438f65653b5cdd2d5923530c371336d68b9225709d6a0b838c16b3bc1751f5b7df5d4d4cb720242f7f76794033afc696a3ab4c6c1d24994b371f24607a2fb588c73df475ba8ccf5da35f42b38060a58aa015c02c1c60f6046c20721679d100c4d3f96929b694230600dc6813de669991ed5575a1164c71bc447715143d705c72ab8bcaae611da8f38f420495b1746dade0ac582d2f5f81a0012eb26fc7cb9ffe4b9ab16bac052a6c4b3fbb2e5284a4d01d91b19fd8948f90eb2d767e1746e5a29ab839e67c1b51d7ef896877cc8dca9f64e6e42bf84494834f2c7f2d210a5f10776f9d20f984696cb86dbc1888b7fbe09880973875859b167b1a15d0e5e70178c14780fcc92a4d6941c638ff464f2ceaffca13f4f7bfb8c2a5e7b702753f54aca8266d02d40584ff045d2062195231000cfa2aea500eff23d7c3e3622b1cb7260274927390ce898d1886efcd0429a001186ec7bed0de0a4022cb7c70ab5bf390ce7b6bcd7c6c0c60ae752ed6bf1373aa402e09e307d456c45d07dda12932831ce159fb592c9ec5f05385242f12877f95bd1fd718128c1f554ec22e31fc5719f9b0f3c49721cb905c62e04228b261e827c6d30b580e7c8107f793f8613b17a8902a88e82df93b09b6cb701d2149be4170f4b02d7e5c2d92bc77dbd435a24b84c00b6078f60fb1ac243f640da5cb5921968c1c49faad86f7911311d2cb050a6ee269a17147ac18e89f642b48e02355bf47b13d35c8df8dc1e14d21a242f3531a5969cb13a9080c9c14d3d0b088b6c1677f5dd202ccf502fa54ea7a59209c5151074d55b3849c9c7414de8a78004526e6f9a6228a26b63c00b91d279ae1f13c263ca17629be2992b8a2693b9b26b13cd433a136a05565235bdaf15eff2490d01c9eaf776246b8be916858b29b6cd964efbda59452caa707b90772074440b27d8b8a54aeb3dc1e74f7b6c587ec8280ce942a2959e1e35449413931df7dc07ca852253e50243e7c745ec3e64d96c6b16402ed7ba9b035435d670e4189360e8ba003116c9c3125b20103a05b22d0a9f069fa721beff21bdf922963726cdcd0d961fd4c0683e1f2d2e2e285bf604c182c2e7f41d3f27226c7c60d9d1dd6ce6c7b1e8656dbb05dc8ea4edafb5966a9b4f73396dfd064f901b8cb0bc05bfe067ff900b88bb7c169fe71f0d913c0659e6e87315faed60d5f12b1e14b1f007ce9842c26e56487b7b81f0b64838252666656aa131306658a18550a45dc397131637c0d0f7b9727a1e7f59757d1f37acb97f4bceee261f4e58ef4bce68e1e7e779e22eaf02d048a5ef99ea64a565258fe5f25b64dd35c39f7c9c9c9a9655f7accb35676389aa1942c94dbdd807028e28e27859886fd0c97fd0d8ec7bc0cefe113e032dff9ccdf1fdc87f7e1deabe8b0830e2fcabbc310ab33e366099bcba865f432ca469f9151aa2785d5f1b0438ab8136a41b6b8cb4b8b8b978be5033a4ff7d5eade177127b5aff0fe44079897e94ab2b84cd4716971e1a1ecf57688b53ca2b5b9a069216259ac133e30eb32a2bdcdccc8c09831351d4cefb93198113923eac0ea8c587335e7254f597bc20ccc2c9d1077629bc52c6d59b03c0f77f919bce565f097dfe12e5e87d3c43c0effefe1337fb95a5ffa944ed8c870d8dcc8feb5bd7fed7b62d6bcd8c0dcd0bc78cbcbc5c5f2a21ad9d3c8647f55e8a706d5201824bdda2b2a3064b4f7a91833dafb121d98753782a16f7a78205ce665d0fc75175ffacbc3f0967fe12e9d1fe07d9074d773027c4ae039709c6d0903bc021c88af3908f87afba90af80a43ac405506adb6d4fa1bee7a1bfefa1c209ee6ac3890df6e8cf56eabdde0c20e84f1a2bc2b2529c8dec6677fe3ffd7631ec7655e86cf7ce934dfb98b7fe12f0f7a0bcb61cc978be5add2d57add94aed6eb4b1b4f0f91175ffa38013362f442df883a2f6698bc17e24ede2f441d1c1a1af6db653f8386c77c0d57ebe56abd70c49dbc7374255d3c47d479f11c1107de2c9e03d3a299717dde5d17714776cf5bf211dce633ef3558ae04293e423837f21ca42c916273233772a3afcb1177f2663163c4d81af6355cf6327cf62cff9fe131307f7de63b18fef235def2a0bbbc8db3b8f972b54a57ebe56abd6c6abeb4c1f8b287c805e2071f09e02186b89377598b422565fc86a803e337441c78cf7868c3fc1f1ddc7378dbb783e7571633b455de9581f9d2c673802f7df8b2872f816eccba01be44c09737c49dbc67ccb216051b30ffc3839bffb383cbbcf3bcd77830bde73563bacde7c65229c791a050a18e11a31ceeef1f6684be589f3d2c88bed8908484848484a4c4099b0e5fd66eccbacb0b119f1dd97e7d1d52796cb68a43ac3dde7fb04f2287684468e3f53e7c281a02a6437c003da279ea620719449d17b3acdddce4f8a9218358830ce28ebb63788c92b5f334bb3b9741dcb9cef210070e1d1af6d7655fe3b3b7f17f96c7fc8d9bdfb9cce3f8ccbf709a2fddc583cee2302f57ab74b55e2e2f9a06ae96493b5f26cd579f69b4ad67822565755426eadc19f40c65ccc372f4c5d2b867849779449f08be9e6f05df8d26233d22d223223d22d223223da213cd9744ca97163a9b79fd4c26ea78f7763ec30eede2513c96c3ebe031bf02e32f2f9716174beb24163b575452ca5a39c49ed65bc49dd77e1336458dbe586f296b658de2505a6de9febf36696b3caf3c3cb9a373cf5f441dcf6411772ecb0eef2ce20a57d670db3a0f7147b64b1b1472f8d98d59e7219ee70dedbda541e7eb81c3fbd1c15f3a98e5101bb35e83a80333cbda11c8eab412002f2e3d5a4e7a982f57ab6499ac7aa852253d50243d7acc4a9ebf72789af33ddda4adb99d9726b6276ba73349f3abe20808daca5a59a3c208e9de7b71e7dda16d6f2ca78a9f3d3fec39d75eaf767354a89170760b2145a181377ba7f7dd982d1101e71e21bf79654fbb1ac216f7c044abb5b6e8de2cee3ab2830277388cefadc3dd5b87bbb77beb70f706d63a1cce18df4c45adb5d65a6bbe5ee7e3e393da9f91157c2efd529becb2aaf3f121ad36b55e878590a2d0340e8a1b74715dad66229bd62a6d8a03abc8e090ceb81302873a2170a81302873a217068db6bea1b38d43d0ae37b45b213027b88d0096dab87ba9e90a2644bd60f903472638c31beb7c3175f5acd7cb1fdecbdedac763e2a11a108adafb36ddaf5e99ec0dd8d6a417a379f9bcfcde7e673f3b9f974e677543272fb3aff7c7cc05bbe79538f8767c16be399acb62aa776d869fc25fb7bf2bb9df7811abf6987248d9fdc61a8c5d20e458d5fdc7a87a3c61fee90d4f8499be6e007f7e77519df1dae74b962b14ad824e98bf54a5a17d6aba84940e2ed1d6b93c2ed99640da93f5b536eeab04d3dc49df879b6dd15252a08410291aabd3877de0792422d9646d274224195a4542b1356f982b9ae15dd6a2f57ab6499f8bb6ecf2d0f15ad54a91214c99b2d2b74bb3d242713699e94b5a73b1a4ba23e4161d51e4fe8487b282926d5cd9e1495d536ad80c4b85db4415c516a8338fa62bd74058853edd44a6a531cc579916a2535a85ddd69a1a351d770b7a887b4b8fb48a5389a484a7ec56abd54fe2485e5647991cdf49dd13017ba666f16c8e2ac91a3cfc810d1c5d5ec50ad56abd52c5191d151eee56a952c1c0e87c399d46ab55a6da552833afa72356ba3015f12b19dbd150811a567222b89be79cf61ec14e468c51d94ceef7282f23f3f64e0e12b95cd3c890c0d334645cf6b92f7fa2d752843cbced72c3dcff5742ce5168b8989892bb6592cd68b74eeb22cc51d6f4bc1c5e71cf113a8b595d95110191aad96ca6929dbed7c6e40b894a7a1e536afc36f9e871ff1403e9ff15ece041c892fc2f3ab0409e2b01c87bd4e5c3a34f0d07173d8ebc4359a703c6b8b1d1d57eb7644b858b996ce9f52d6ec69cadd92dc2dc9dd92dc2dc9dd92dc4eed2b4e4e6468d068af95e3a18af7b9ccb79cc6e7b8cc5db7a859db16ac9c6845eb532aa9fc960123c8cd8f1f3362c4cc6c6a5ccc62666468d078272350f1edfaf1e309e675586923af59d6621e079f7902f8ec07e0322f00a7f101d8c1afd3fc0d282738f8939eebf030a11c1e86ab1478160e04389d4868b5252fff6b9bac4c28ae534a8b243f4be60790a16a7463d651622d7231d9ae1f3f70a9148c0928154ba958744a89c9dae2de804cd96c0d4de3280ea53b94699a6fe138e2957018cf43078dcf7199b7e1b31b1ef39e07f92248bcdb7d6ee453d0b831e47036a0a7959da7fb6a459246bc1057e26b4eadfd4cfca95a0642beda5b8ceb5ff8eb71dc06259ee6c0fce63e37f6754478d7464e0b26ee785b0a349f53f3386e3e87c368b98c4fe66fccbc8ec79c5c4080b8d9b9c34c9ecb01ce680a0e7b9db88cb64959963db5bc59b92878cf8d398fdb7c88d760b9256c38a01c89e439582e7762e65c662e9b9e4bd95839db0d1b392f463218181913cc4ce79f6d996c46a73c0068e8e1375f030f1d39cc7f9d00a0861e34f0d091c37c72bf4e642e97a8e3b94bc4816d7858a351de86c7ccde7399d7711a7f8387c7f81c87f134b874b8cde7f09ac7e12e7ec769dee529ffb90cdfc3738ef7f2dcc32c61309395b3c1cad1f03ec46bf6dca2f5b0dc148c72e07818d0cec36ee3184839920d481c398ee338ea571e62e389898971a153be06a7f91beee27978cde7b8cdd3e037dfc38ff822dc8807e2b5f644b8ec3d87717dc6b768bc8efbcce3f098b7e1415e0947e227e0f94b1be57f82f84910376df8bbbf3ca017f8158c526c294be8c861feebc473db120579580d262bd7a3e4d6697858108f87ddae60a4c373b8e9ef2f3f71cff997b61b447b953f97adc707c8973722be048a89020c26ea780e1371e0197f5dc6771ee33d87f19fd7da037123be083fe227e037df72179fe3415e8823f14a787e910822609e4d8dbb3ce7b45cb9f33e22842831812280d8e41fce93849ffc90993f4998de33c3f45a0cd3634c2b30dd6a5c905c88e5e2b7ebc78f1f3234fec589e999d70c5f3aff977202c3fc19dcdb27cf030e1eca104118fdef70ff2d43b7674f81d0a46c33205fe3e7e6c66e6ab83952c41d777bb7e52c31712745dcf1fcf31007e767fbeb5e2ee373f88c77398d566ecd5caf1b3093957bb9b2a971a28d9395151afedb677ce7b0af51f39f9ba05064d282e98894c9ced37db522491390c969a6dcb63efb9295636d4183877e1d8b95636d51a3e1ba99080f82c411461001a4082045785acb64e7e9be5aad3c2ba7f2ac2d4ea093c58ad16a4bacd75e61e558b9225680fc6a452489701836c6caa5fc76c9d0aefce3c70d96980d1b3654a9121b28121b3632ddafdc32aba8e3ddfb0d55f17d35568e952b92821212015b4df084490a2996205272420dc619dface0bb8efd669c0b4c9ee2b983a1a852af9275b6acc45c2d979754cae4ccab142f954aa58c71a92b753774b874a32b99fd46d4b94336dad4a5f20945a2e2f776559ed21817341777dd685fdf9317f773812ed015bae20dba41f8f59ac960523319167760b86cd853fa4265d4a327f6d78ff4c45e3e092de9897df530fa82437a62153d49ec79f41ca3657bf9a9f7d16021d2d32383f9c01a311e9b0de60524edf30eb9b517971c6dfa13eff28904954bb9b4e413892985d2f6e8559ab0ce969598163674f729355b0f118b7d5e1edf5226a52b6ee8ee4fb018459dd2dc960a7b5e3fe5ebaa21cb3a62ff16e9bcb228c1a1bb7be466718f8c6eec624192a24e892d62cfeba468857474f7be73f713c87c2231a550598cbafb178ca7603c84391d6583eef9a4cb883b4a8e3d46dc11821277b2973c2cc158064322eee4d0ddbb503a74f7ad7bc49e2556cca049de74968a697b7eacedc6accdde7cec69814c76fe393d65326d4d25fed45c6eb59a4177bfaa5ba84747262b1ebafb140dbafb929d4da9125d03cf431b74074514438f896e4ce8c660e0f2d5e8c68aaccb45335372c20dbafbd38eadb4b054afd224556a02162eed618551d8eb25001315468cd0ccb85ea187d5a9c36003208b0809e11999178cf4ee94007adcafc74038c84b8c4b56c0dca4e67f6582a4e12c4abb8555be5429935597718d229b352808c7ccbe5a3314f6bc0e037bde8d4d8c8346997e7af7fcefdd8bbbc494aab8d54c26ea648c3b6b5fdc11f7256a028983ee5edfa36b1a99e20eb8ef1116a4e9e90e5504d05d4ad5fdb7730eba4ba90aa04fddce4f4d4ef240bebd3257441d13f3128d80cca105c9b222eeb81b06237d4694591177b0974a52a992543e91dc227bbecc4b64cf1a60205bc3f2eb1897ff06cbac41a34278464695b242954a951440778fb7971fe3c6442646d4c918a78ab078b9e2f9f4d3ffd8ce9cd3510fe4db26e6cf8a93842cb11c90d56f4c8cb8a3f3ec337147c8c69e9d45dc69a1d59646707c4a5fce8bfd2526eee498f8f3adbcdfd8f598b8b2e7c540f71205b4ba71577b36ad2b914f53c2a9d8437492d7b0eea3d34e4e9ab4cab33b6781fe7928a7fd2891bc7392343b7a841e212991c6ce3750659d4931aa6e206353892a84b4de0ac69cbdcab369365f2149549b773d9c3d9c4193d33ab74e0bfd8b515b5372f2a98dd17edcf1e911ffb27fb7ba05cd1f76d3237b03d92ff592cd3608290aeda63ab2d376a84671b0d7239b4692249931beb7070b357fa1264da653f5eadd9ff5ecf52ec88305cd5a290ec55f77981ffcb6d7ed10ebfc798759e72f57272c2eeb8d48d93271c9d6a0f41301a8810e9590c01aa49b9b9294c638951223a0d3b53c140a87a299cd4ac612a9528911d0a97e513be3f71bfb219d5cce9344d4a5d5eaba49eece7aabb7ff21d19c0a54719e495bd9bbc31a5e5d9fb031ebe48d3485246d82595df759d20761ce5d87bd0ff43eb0cb7545d7e65a416f37868b5de80e5da2dcb5b94632798d7447b7fbba235b73bd7bbb6e0c9d173e307b5e973d7cad15c86a9908294aee5664761cc5e9e13dd76835310e56bb53600ffc40ef0b97a03561480ac330ecb93638664023f410e8dadc5cf226bc5d9bd96c369bcdc230831feef22c0be12984425e1370dbe68a73f1e37cbd9c73c68f7528e8bd062d096807b6c1a12990b6d210e76bc1b0d6fa992b920db6adabdbea08dac377c445a1663cc5a6b5f651f2bca28345389c1647f842904402c34f5f9b8f528ad3518a9329c5b9f614929c4e7eb19329a6c3db5104b8bfb114ee101596c40c05b6d86685c2b5b6b189a9edaeadb764a90835796d86804ef26f756d42d2d39c10ff8a4a0a8a874f92ba936dee77d8cbd5daa1d6f84bd60e4b23199a4a36f8162099e78731c618638c318669fcdf0e5de3d0d418638c3ba739e0d39cec9ddfec39f66ccd79ebb53a94c0423adb5d21a437e03c620f04ddc30e7ea0f781d70a3a034a846ddd32615bb77e2bd125736ef8a339f5666baa903d858440af33a036a05baf3f37d6893f2b0f9b1de96607dff6e57c26bd56fca136fbc538df9b71b6df1594e27c315a62cef87aeedec68f0269b67dd2063f863dbfd3cb6edd034ff03c290eb595665c023d1226e19215a4aef33a28e0d5ecc672dc9881e2e06bedc5d6f620947530359e407ab6e665fbb05e1078f4ec9a44d99a1f9be7909eb3b71cc5d694ce207c2841910f4d22893a3e30ceefc3079244fd43927ec61b668decd5b379d2cc7cf01104cef9dc4278e20e2ab4af190394915c36f53ad9a535623b47166475991e59f668d6b031eb36f6d91a99d74d7131a699cd62dcdce07c51dc5d4e7b5ac7a8d66ae57d61bef7f3aa082f7835c623bea812daec8cf9af4c4c1bc4416db4db4ba1b02d65c2e8346ac5269d4689409adf68922513c83cc36d047dd1a224955269d2446bae53296ad8a0361a536d1a4185b0b7112526e020b4069b313ca5f2bab2d6524b2a65134552426262024f9bfa97a03cd3f3ebe9f0fc7a262c4daf8dfeaef8e78d59d7ffe32c8a436eea24a792529cf10645024f24e4686ab9b4c9e463da3f50ff90a4a9248eaeafbba1e0cc3f23724039a01cd005caad6c5a05ba369bc6ac4f512b820d09db62418d2a0ac28dcd1a63a843f105a3142715829fd791447d4956d5031ca80da645d4881e3d1e612825aad4ab34b1ce98ca8aab45faa5c29eb78a0b90e41d3abb939bb0ed3b31691f492357a6495bf99b341f7178f5388ee3388ee338be78916d37fa54ba788ad59d291ebab8b890e3488ee39872be663298dda566322ceedce87c328da46719fa94bba7355888f4f4c8603e70c7786c369817909473dad0a73ff1fc2b37205c5014f6f4b9b1944b4ba8d23a87888ab4482942055191d1d116581ee7720d07e53f31f76985a3c04238080be5d0f97fbf1e0745a1828ddcd38eceef4f8061a12c5ebb7bf1d48b6924472c832171a164d0f95ba7929ce2724a7149a1e1c443e75fed93c92a7fcaa487ce5fb23b96c6c10d3a675b0f117b3a61cf0b840bcab753e6c93e2d2c2e9a99a06c0bcab6a2a000e8fca7bdf219e8967d2e0f8ea288919e1bb3e1a06c135faffca6dc69182c3f592474a75f9e48ff454a3bf6d9888d1129738f3d6ff62931522453913b30db724f269279b22d87eedf73b6659e4c24fb9c720f0e6a427ebd558f83ec898570113c74c251602378080b1d50e1eef283fba4830134eadd4db2ca490507ddf374bf41947e361bbbfef98aa8936dd9a60233f98cb863f4ec32a4af883be75992cab603948fa3c83c560807659e6ccb3d7846e68ce998014e263231388ad87dfd4f8ac7b24fbee527ec79cb1467752a2b1e9ee7494292242b2ad9766d7050b605651b0eca362c9492dfb61ca0734980c6519cb0100ec2413ffcf0832a55f2038ae4871f48378d9824c77cdbd7451d92b20d13655cb5793fc0e2a8daf290696fa081a5c29eba5e00031948e2870516f0030d0821866040037890c0902022a000083cc0013bb3ddb9043ec523f0330e8197f1073c0d77c0d37803de8533e06b7c88b77121fec6692fc317f030bc66e08ff08a8137c2eb05bed6927824fcc707f13ac402ae201400c40fd96d70b942acb31675fed947eafcb3afd382a4f94ac73c027ce60fe0b3f7c165be07a7f106707fba67bce736efc36b3e0105701915a880c3f82102013ec8f6cd77ee2301157856ae76001f78ecd953803534c7385f931cf1fd3eefd2933af62a04b6d7ac1fc6b42b5dc718d38052eaed6b8e5090d56928f69341185651c7052c18814824a4806253114af1c40eb51892bef1c78ab105630b5840525baba8c2c62e4dc826a2a72621f9be13ae16e74eb3f6ad413f3513e18c8855c89e1f8b5502410ff569cffb4829d289ea138eb6f109518f2b50c1980293a988c924b4494092a07aec598b28ceb8af97844a42a3533a9a845445379baa22d49049dc596dd5ed66d2230a5043b6a68e2720d1a313644a6bbd8fca37e20137d510c54195c252580a4b612944f554d6571b6922d65a49eaa4c71294845420c8030e443e7cb859d89afc05a025d660e27d316e6ae49f41ccc1fa9cb505c54179586677957bd94d3ca532571ebaaee4cac4a4f64cd5b02b94ab7c9a837a5dfc12dd9e97f512cf0ff5a15ea3092a89fa3ecff3462748cf437d2e945faf46950a58e888e298f8fd3e92a4b47393aa5b09486acf94674a5f52a687aa0245843251437a240149f252d451798b75f7f56a746d4abfa8211135245e470d5d9b1898f8751491ad49f975d4115bb3f2eba8a26bc34a7dddaf1ca4d2d3f395a823efd49becf0ead4afb6aacc3af5a95d32d220c072893abed4a376f8e9d493ec10d4a93fed90a4536fda61a8534fee50ebd48f3b2c957658d2a9177738ead4eb1d923af5e10e4d3af5a41d9268d6d39c54ea3f6f87253af5dd0e533af579872a9d7abcc3954efddda1894ebddd618c49c92aa5dc3b627f1dca3b944943c2e42d3d3d371175e05de2218b625b42790dbbfad4b32c7df1dc44d429f1106b556bb3de54c4c6aeb3449d95691a47602a51ae7aba535f6e2a0445573776bd042592aed70b06f3d389e520c81a4790f2aa54c9a348fe51fe094199d423a1fb6422c792a8c323fb6251e7ab557574b2811a5652565b324b17f3ce6f0cc10a09d4f82429a5faf3d5392361a6d3c985a246b4ae1182d36737ab13ec657218f619cd47712157a3cfbdf7c4c1f3130244893240895a28b9e5de7bef4a0464f5ab415fd15c1a1c821b4b9d7cb1b21c3721b891d1811ade7c6acf8dd12bdbb47bef6d02c6be6c1aa594ae562449fbaa49bbb4ea42ddbfd29796ccd2c5bc9e9ef3eb592181a20e75da040854f448244553944da394527db269f7de5b792a8ff54073e540e489f1d716601f3d00337db653d08be4745d9b76efbd2824724f26b9ad4dbbf75e4a6989bef7de9b52e9b1898c44eec92b9649c92a29a5d4a575ee2171e913ec6572980fe9fa3a7df9c068bec63da4cf2e99b6f1033de2891e39e069143d3691a202822b2708c69cd45a6badb5ee5a88102209618024b4a9b3340182b9458f4d6424724fc6d8458f4d90d56f55ebd71eda1ce0400bc8ea383c9356795a2810c40e7a053d6f8873df9bb1bda307b4c61863330a283675ad33ee4aa58e8e001bb7a967a07d615e64303324724f96e97bef4c06f3e2d2c2123b57602fd72cc617425a6e1aa5945e16a5d6e4c377b569f7de4b559b4629a55d4e795d89871a3950af900d34e706dd180f09d875a79064d2a1c6b7db26454d8e2591fc3aa04d8156a56e6442c43e7aec4048e909bc1f0ddfea99863ffd55ead72be6004984acaa23ba0b74a915694feaf866a7dd7b6fbe7956e9b10364f51b524a7b36f58b31c678155e9649b96aa95ca9d7674b602827f993693a2151c694928ab8a2cf304662015b3e17efa583c9323cbb3156668655c25e8990b8a42c5bb3572264ddb4efa3d7a4fdb0b149edc901b23abef96399d89255ef6d692a529396c4d0c5edeb230f59fd0e7171d42b8fbd356cc5a408298af5b0fa1037df8fbb759c9e98e203fb3afe216e7e5417cab7d382ed0382167af41503890be013c8b3a2e8b5a27493bd62216cac37c618637c23c5e73d0a08474c642168d3c82f07459b76ee31c8800a42225082084c7044fb3021851447a8420e2ea0ba422d0c576461892664c184910218e0411559d881179ec8a14e81283285529123e3c9a6402832848ab55626b4b0000f186c30842ae4d0c8bdb235f78a4dbd866b8373708e1028be808422b62d8e88c00515920a25010a3f4dcc8088065eb0841cda6a7777092c4842ee7681dc1886723a7355738f6cdacdbe45380214527c210550a4c09d8002161839c1a8033eb04ebf4d0122bbeeda55ecf3835b786bf57ab920050e58b0efddf7de6bda14083e38b2692847021d7aa27bb7d021c97a9550472237099b3261fbb0eb0e3db2aba863b3e92cea1c197531ac0dcd29ea72cd99da7c4f4ad56bd891e2c848dacc44dd18a14219a0625ba7c15f770cdc0da1b5b405724658da42490b6458ea0213dfe7ee7d5dd775b5d65a6bbeefeb6e288edd9ef310c40b6af3dd98e79e53e17ad72b4237b3a7079a2e5b20691fcd657bfeddef2349f0dbdef755bf89d1612faba062cf6d687e39eab5b57a35bc4b897675eb41b0356025738831b6b8f3eb4a741887d8c352fe4007b57b38545bf51182e48961e89e07bad6a04822b9478e2e66ecd6148a6e124bf488489a3f2cc93d330ceb067aecd17645b036bbb55714b38bd6452b661ab98524a1040ed526569faee27bed15b3288a261690b41f3787a6e8acec344bfb3a935637e9764e769f772553047d7cf3c7dda149134202bfce338540690f88e2b0242489ce4938545be7249fda55b0e2ae23794eab3cdabb5a852451bd44721caaad23919c069d84a894eb1b8a7a52a1991100001000006317000020100a868382599824511805ef011400126592684a449e88a3b14892c22808a23006820c21c6100294318019848aea0495716458d7ecb8bb41ac18496ae668830a5c566ce3ce36face3dc21df0770159bedefb328408df92d8e3e67c2f1c70b8c6f83204b6f402abe67a020d9a8ccaed4c08c61b6cff73d0fb242a503b0e6e42cc711966b5341d92ab8a25c1c9d167aa97bb9dc6f595f9d0550dba777b42235ffaaffb080e567405a6ef4a7be16547aafbb3fa91a1f5480e68f7be2d7d9c179a8d376d29af85bd49a0de3cdad72ef2b7d4a8a8e4bd7c8b86284d2fa6ab4937b5eb11c3efcdb844df8a8136012abe908c492b101045b1dd11009b6d5cdddc561462c9a6db43df759706a7053a2def411c8e7576f40b9a6a13ff9d54f64f3dfb3e51ff06a5da2a8dd6940b66bfed425bc96debc4d322aa2782d9dbb47e1bbc61d4aab3a3d82c71fad788c95d7b4b97f039889270bd95c4a6e13ad5380c281414819d6483a125e3f71d1288e67038fd40cb6ee757800c093d00649b5f2b9963f9e238950b9070d739c01792fd967b2802061eb55f33a2ad84704b0ce81ad5350af45ca9c6d16417ba5419d2f85ab8b73953c3f5140895bf703dbcce5c7e6e02e9d372e1fa8df1ac78de1730715dfa1c82e5a9cb3227c18c2aa38c1f5f81352805bbc702d2d0d9cbd34b2253d62646a5af9328eed7f2af941a5ab8d45679dd21a9cbc5a9afab35648b4f7f5163fb808201b3cd42d67ec5a6899ceadb53736d196567d54301c1586043c9c8de0e377a2758e6ee6f187bcd0679578a19e4a82ad0549a39ee822c0fc9ff5369c035bbd2deb4d0e959461709cf3b3a989a1789cbc6ff2ec1c25d67aed18521cc03db3b5db949c7918ead367000f218ff5a47e9e9add2a8b6cb28bb695140f693c4c2100cdcc5c1e55047438e57ad3eeeef8e2bed754ade34e17a1c19f09b43cb21f5f64a3aee9f9e17c548ce7ecd12510d29c1de638533ab0ff4dc475683004584c0f56cb8ad46f0e825039299be13eb5fed6b3e9d98118092a25ebc3d6e32cc7280fee2d3209a83985edf5ec51c548210fa92558171f3a7e72468e76ea786ef76cc90f964e18db7d99c8c4b5a5ff5b5d72093ef815fa39255ca3ed91cfe72e464b7db066b945d26cebed2a1b005359fbb27fba7be31c454753c78678dca23b39118b4be72c61b1136a65ea0e06f9a0888533fd81cb66b045ef981546475cd1b5fedf94405ed015770f6cab32f193e50c9d526ffef341555450b31d82af7d14034e71ad9ce39ef22125e484140fad04dd694e9acc8bbda6e31ce867e6d1ab219e93bf5de2e41af0dc423f37b3393fa4daca45883eb200548b576e484d96c3aa8ea1936e2eac519129f39b63ac85c1c0366d2c58840fce5dc16520a359a0ad4b75adbb1bc591af5f26d765449bfd27ef707925e2a4ba80bd99ca7635cfaded2385617ddcbd9b864f057cc4c23ccfea197d28b691a646219ca94d0578bbe2e02e546c03b783a04fee2318b9802cc5ad42ded7281b27cc779e4d1d844c54f02f5414cb3c530fe423285ccba7995d8d0182c72bbfa73fefbc4ad143b5ad3b956a616b9768b1e9835852b54c26a132df8c57a4c7b6f223885faccab6f0448a2040c331ab95b5cf83c498a6272c3fa01afdeda350561e407cd5b5f60026f3a7543f4ee78abd7d5f7d72ea85cb13e92670ea78c025c2c4c3a6bc9c04c49485e92d86979c47fac63b9533ace19c66cf71c01d1bf16b8d7c22cd2757c34997e213d1103b37e8e143c36febf06e70ff7fc49f8e629ed9836b1f317c98680e5d16af8ca8900dd4922818e9ee0862017cbd2f3452f3f57807ea69e0dcd288573bb45eff9b54bb28804e678cbd13c7fe0884846646d209bcf407f7e3d70c39439aa20786a37232204435f5f40e80c6b762381057fbe26b897239a1301d0552b447bf45a376e40ea054cba6302e89e7abb51b66465366164ed050d28bfaf9aaa84880d375d1cf359f9c47a8e3f68ee422e290543c9ef40efa1b12c8ea00c152946dc16f6bdc899b8b6e777413c08310f2771b9008b2210f4e47960eba5fa57c576894ade0fea50057eb5716d54fabb93daf9c902bbcbc85b864aa542e3514ddd3c1c22f5c5f0c4360372b7a3f9852094376099765f6c5a8ab652cd8fcfa73af63fdcdc227c287b66dd696dd5dc96a99e8f0b0d9b839d216dbee76f565efa8ed23f79f302eebdda0771b7909c9bd79e30563255ad1d207d1be8bc958626681d7dc34f8a4460b1f337436c1949560ac377f87cce950438064ed149f0fa3f4f53c49d1a42e5358cb789015411df76fd9a4178bae1cccd28f48d7978239f60d2fd29a4dde0844a9fc8fedb6a19a52a1f1eba0a45dcc98819abaf88e089402eec6bc4aa94e38e6b049c37e01bf39b88f23aa96b3cd371f0c3eef24e73306af0f637b349d85822abb394a6c7173e2d6b2a65c14e1fcba83670756ad4698eab9740dff650b2cad0ff75b0d2f1002a3ef79bd5b9e36865a260dcd5fd2b4efa4af77fe858564884fbae83b6211f0186c3d53e9807cd4010b19546a0ca1057c95677254212e6a03185819c4061a66f006686e16b23a4f4028dbe0be4e09621ec18d8097260c22cc8245ac3540d37d10256009d3854ad92dc702c8e2c6ed3738128e16d12807d7164f051aa6076e48cdf1d0cb0056504974858dc984788c05be8f76bf76493d85104a566151e2e49ec42a8f9c22b07aa8515d51738763c6794dfb9eecda4d09eb724c33986fa21576e88fb914fa98cabd05425a85c3cddc7e5860256434def589c0823e4d0d2b2c5f206333cdc3a3166a85397a6976f1821e69f30f262eb7ba417bb68851e07aea7d9edfad5653b7bfae67ddd261382b8907334f642a9c9cb52642a717cb43d57969f25be8098b48ed080317c57e4da1b6861da034eb64de353e28176d3f8ae3182a5c90316654a14f1d0ee6f3e9fe26e942c987424ae647c9ab7cc7b612d3ca02a268754728a970f1715fbd0420fb10da9d644e6a2457a53273adcafd9de2e159af5b6c715c739a1c02719aa1a10a2101661ad01e210701fdc5a75e96236d94fe07588e4a386e1852766a063c63d688a6d60211e93311dae64db1434daff7e0887059f0d810a5608780f8f9e4bf7173123f67e8a2fab7c00c8d748e634e9dc44a37300566e40e8579ca812234232ec0989040224fa4d81fbec3c84fba57a63920832934734510d4685fe0db4653ec44907e03d0cce8bcc2a6fa694a763b455ef3499e3383c8c6953695e94c7842e4a6257b6f93f37c36a130388defafe20609d36dfd14fce2f854e51bd01d494b56167a3137f9671f087b942cf3353c441f9b72bfc03b849c5e884f9c5d2744c5ccc43006baa50709263fef4f687021b456733cfbae4b5652dd39d47d8e9b47a0101bc1bbc0d5ec01da33fc337a86a6c8b54d036bfec94bdbf2e4f1003a70f7d3ad25f15428a0382061387ddd43dbea4eaae77b5f2935a2f65b00d6074a4094080e5c0122fa9e0a8c073ed092e9f314b3be6b7da8565c22023616e171edc13bec4cb20fc47adf14b6983fe506134429013d9c6936e6219bc36cb6bc50254dd6231e2eeaaef5125e2418c1a0c3d1e2d2dba4c3fa042c4f59831a23e65242fcd4be3534ed1df9ee6248e24c848e9c9127b457ced872c5c1a2de140af660e1a5cc11a4b653f0acc40d442fef94a84ff9bde1976dc719277a42a99939ea2412198ca7fd3461135f895caaa5f4ea6a996f273415b15df993549d459b67e6178eee298d9cc5461de8d32b17e042bbe643c341d95766e3793abca21f92c1a37b1e7820b0c23488a176a477f4ab8e27d3f93fadc0a3e1a7f52ac97c822b794789860f9f3fbe50097d4c88c9aacf7373a3eb262656c012e28518b5311037ccbc1b52b62d4cd7fea692ecf320a722455024a47152f187e98e04cfae8ed958ab01d680698a77c5c19b6dd60fb7a7314af952ed9641e0765826b0397ceb0a25c38886a94a5423b71bbcf24411e5c5c0ea7126d0c945dc13da3b3942f424eeaadd2de1e5c2b748a56dc425627c2854cd4cb43748111f5f32c5e60a27e3c4817d9c80f2fe11243d4cb53bc8489fa3c1614dc13882114ae0f497ba694844c1fe50e23ce5b819070bf1445c1cabc4e461146e9274d0806605ee052c1e50e86cc9b4a88abd19b8f6300b137e7d240ba6e3f31754473b0b230c5dc60d009d40c84599b0b0487a16d1fb1771fae76ba87c0da8daae9bd0d4051031407d5e8bfc529b9e6f7a3ca4b119b610411af1bd292b8959e256f4f1de16d051bf6128be7233e9a48f8a687fbddbc50d684d44e49ef218be2bff9b21099a4dd29679c0cb3206dc33ef2db17bab6d538c80f8384d7decb61641734f2e110eaeb0118519fe644003183fc44ce440e25033dce91fa627aeb3449c4501379403b7bb3608c10dac682f96adc2577bb616fa917f8a4e7bb63ba563e9ba95d244b91517ea5d0dcd814235a3a73848dfa05444d0f1ba9e50dce6cb04355c7288aa90d3a0d53467c582376351e0c0094695480dec02361f16231f8050d8e3c0cb60bdf800c80a0e6db734ff40598c342004d72d46aa004714f5b8d51c0f2ed0614c25bc4a56d014bee393a2457698018052d069281ba44e9d811d81a7b1a8d208881ca4dd0a1a1c0490249afea71564eeb513cd860921f7508c8ccb020a871ce97671af001053409388a09568403a2c9e31cdb437a11ffcd6caefd04037b79aa6e344d8e3b86e803f61feb8da21bd2e7d2ef66f80eb6bb9edf6be239af6a00d412282de5ca1e8bb1788b8eae5ba589f65824686ac88cea9e9b206730356e88e6bfc502736e528a44c8aab60976fe375950e0f9bc9cb4158ef8ae41368d09fcc52f9cf566c9128619af5dce5d7ce8eafc8ad36060cb73b3e6b283b9ae27b4cb351bdc702b54c14db51dd8f41c0309dedcf67886857bc32a5cb3d91d71219388c25a31c3a2326c2f47a0cc0b2549d8d94f25946cb8267abad911cf929e1ec6d1208f0ab933c4f37beee774745557e5873022f4aee53ceadce754478027f72120f4cf2a95ad53da8f3aea5db0e911db52a4d0621bb73944d0690a1875d440fe6692ed8f2a5207de4cab755f79a65cc0a8026091e07411e98bae30896db2a903f9e053ae9555a8e9b5841dd740e20f40442a7814b07fa29c46a6487bacdc30aca6c65a0c5c5bd1338186f0b960f112850ce62262789bf49b1b965a6d6e2d712dab185c80a5cefe3cb76d7e3ad15ee70794b35dd828abdc2a853bf332f672730ee58613dddf5ed472609c61f0dd2b396bd907c0a55c1187abfa207fb9615a1193bfc4abfa7f903c57d57580f81b937c08e925780e6b010d8879c5727e96cb23dde3aa9f11d5cd8f297100466f7a3b64c9a05802d32b961068b8699e645dd717a9156f33ab8ca4f592223b30a513fe4e319e522a564a3c16ee6299709d88c0eace33e78738b3b376e0f712c4277655ae091d7d730b3ed78ab11eabc614b72c5c4f7074d03e9e9184bd11e4ea02cbf3a42e1da26ad3f1f69cc466cbe2631d0de70d24749f88d51c4fcc1bdc2f9d9f2ecb11ddf6435fdf3063c370b9db87ee9d4a75059122f7084043d390d7b2936ec1841bf7799dcf66f33400e3930b402a8f23cd777df6aed19d11736ad8bf0cedeb143e6eed34edcb8551271f6db4bd3ec57aef999f8d00048ad6fa9cb034a6b2ff4006282235b57fe89d2e08a37b611e78d994714552c364f6f3f8e5258a675fa4fa52cfae794fa6acd971e8ba8f488a0df4acf87c02764eca4b5a96f003c592083f8971ace06de5e6f0161e004d074d36ac56da7c88f12f3732bae92062effbbb736d7b8a266da30cdef3f07080269c2c7465e55d99a646e0dec9146e9577f572af467085af014af8119c0092edc77828e78075748d44f946967775bfe30a43b2592940b9ec427375e31e44860bd78fdad159805146996b8005d47e9014f199477e92c104cdf0b26601d263467aed865707037a8d881c4430f1a80d7e38943f96690a2fa669748e3fcebfae9d39e972fdedb96473edd827b90d6b9babd03021a1d61fe1553911717829fbc2e43f8e90fa5a2f078782d7355b432d8b95d47719d8dcd6317e7f22a7f50f5d0b90b604b43f63a416dbd3d19d8bd328c70122e69ed800b3ec0524c3dc59a5cdf8bd46a7e4fd468f78561bf6ef9646570099472f4a14650ee64dd2ab92c8c2ca5652c57589c46dde4ac62be1482cd720665e6c5946f336e12b00cc6756811d4df9b914495f6cc69d73e95ab9378b55fbe015f00b2e7ea1cdb879aeb939ad30a34a3ff7b19bb0e98da82dab5ab7088261d637cb0d01d603afb7a5e42efcf220c64fe0372bb0c8248f953c24915932690e303d5f5b04bfcb324f9b0441193b9fcf5d52b9f22272235bba35abb65fb31a16cbc488b21ac0a56cfd1b99c4e6fd4e03f29c58b5be158a4ddbb2b059c41a5731c353c44ff8660fcc91553b6b015d4c67f000d95c48ae12c65c508447c993a948a4afa4d6f365393694f767434d6124a93b9787581bba1a08bcf87441a7d7a1558f7e8b09e2c4a7cbb170dfbab6ff350025267c8d8e41bfc516cf3830af14b4b405dda3b62333e9d6239a62886f2b3ba0fa2dae4f8ba614f1aa4939ea11d11509445178b82e85b2c3e2b8383d6feedcde10262ce4f8bac8198b25cb5e8305cca32a57c07ca646b35b05cc3516af79cc63651242ebae8ceb5d9449e530d5e1abe6b5420d152c714c9f807e7640aacfc3d862cfbd569f21c318c26e08e603d9a581e3ac97726378d2fc2b4f95b7c155e597f80da18d79e597c47ff47772b84a1d8c03a2af3dd0b657a44ac531d02ee9e3805bd71ea0d7284024205880e90fcacf370330b218c8e12a7c23aefa4ea7831171ebab8a6da8437147a6564cae823fa1da0e16840c3181f5eafa8ba1d2c99452717c5f12d2476cb7a890e755bd33dee8092bdf9191df09b998d30d66d0a214ad13df6b82131f349004afaed66949c76ef2ea4098e4e4f113968fcc712e87646dcdbc30e343ee18382f480bb6a065928cb1ca71516ca79cdea1d3977076cfd495d22224214ee4932fa7516dac89303a9da5382f82b9cef6713dcde915048f904bfc0304380da8657ef8e117b6a7cf09e44a286e6922eb57a6f05267a294029d78ad4c040543a721c6443fb21cd2214c64d534910434264afc02f884a593f22ee33f779348586e518de776c915cce9a56c353ff0d40f23b6ee5cdf886336755a317a9c66abe3a27446d82cf7ebdcce0ee871c9705a3fc57e532052d62fc43404a5e7e5c5295cf93151fb84e92c0bab38e5543f7a295090ea53ceef0b944178328b1ee5365917f82126244391701d7641b22d0481f51c42546d3bd7e73d7c46eecea1414d3f0063821ef3c54766706e9eab0d67577703f50c97ac1cca1146845cf22455b295fe74014211f97ba1f08dc51f0fdabdef50b39603ebacc47f1761635600d1dbde0566d93ee8300e284f654a95483463bb5219ecdc3a55967ba8b8504dd8e254c9efdfb07e313963255a586c21c53fd5852d04a2f4ac9008d7ef87988a512a3c0594602c85ffd252946f3067a895424d362650a02b5f7018b63293d01a914eb50217a382818c9af0234403d03781886fc00ba5f73ebf9a8ebb7d8c9754eb7650f60ebbbe65fff426c05ca24b504aa18934d2b408113b1b6856c807443c38505f9c0748eab8e43d8428a6038c01d65077e0987a6b097346b9da1684b4e0aafa28f7b96a2d3ce9a2d6d502ce2c6b32f3a96d3ace008b3eeca23d34fb2a3791a8b2c4d691efe6ece608546848a407e113300b0a8c9daa8170cf06102d0bc90abbad75cb2e45c2ded4cce00fc11e7426e4df7f089166effc855fe50063c9dadf0515c502dbc1c6e41feb1c999e62d1c440f293ac1fc2a0daed842f114e0d1b69e05dbde038d93c0fbe38979cf560a0b2f752471633a0acff2181a0da3cbb8508b88b4d8275a2de6f4be5191a69e76cd51df7b49b00d15d71fb47b28380c9011649a4225e8cbc7a84bc97eeff499e2f30db11e47784e835cc1da3968f1a2889eb9e709c5c8b672b549233c93ccf9ab254e7b95e12a2f42b89a0eaeb838d86d60d2bbf1e2cdd68fb906a35317d10dc71450a24c27cd00c01c36cdaf47537b7be2c64b1787f72c90044bf7e54e5f70806500dc1aa424d06ef26a26100af5a99c9347172dafe468a167ebf971deab491385fb86724f40e255c91d42f115182cc45818ed8e400f0e52433f63be7df496de5c6e633b8bfa7f251813e09b523c03ca13427744bd92ff450833dcd212c4a7e18b0a1a8186d4f3f2522a874b146fd7f0383cc085e258bc9b01a5e792b550e98d586acc68d1c446e11b452ecae2702626873a13769761014890fe13ef799d4544f54f281ca9e70f1697137f08f6f36374462a80943b956b9eeb4d368ca8c50412ed4cbe91f02d5182f4e5834d9e99d26e6f5ae4760219f5f919ec754f52f54aa554dabb80a2d05dc802553eff44bd2b066920c9702f68073e317ebf404491d441f4773c51f086a7c74c71c238628ed22f9b244506d56c5a7cc1900ee48d3ad7422ff6325b8aa356fa3b4bd0dc770bdfe1ad2f043f4d22c314da0631328389079aa7a6bdf1434807cd2ff27e45a84c9103e05a313ed01a782916df129ac0cdc09d6afb1b68f1da0934a60807c2f7e3490e9a280b2f84320fe0f9019a14ceb6e89f70a5b2e7cff6b0a8230ad2000d277f7fb009b4a389092d67571fc7a643154df3eb72e9ed8546acf34ebbf66e2595200a1391c9f4533110713ab1dc636d5fd0fdebadf70580d48d81e0846cae2e815c2ce417caed2a98eb2c7ce579f2dbb12a8657348cce6c03fe0535bda1cdeb5398885c333b53b9328e0b7a15762e3930729b6cc504ad5861145af2407fd3da84005e81d2edbce1bf740471eaafd031f20fd98207330fb11dd2cb39781ae545ad07c856f0ca7f72fab5e01d3e845155318f5b0f5232a0c241f80b37b5a0f2f2a88e83d6aeae3c3b59d9c35029ab42a01e0e06ff6b19c4d231ca1891b8aaf9c26f83cf875d773f33127b68144df20a3485e82575716b9b9c9132c8e6e1cc65040526345c8e462c028af53e60bf7e7e2d94129e0ce0ee5cbd48d6e1eaa0b7627f9fea32004da3244bd8c18bd36db99b3f130c897d951be44a29a7e17e8325ea6b7877eaaca3388d10eb80c922cc414b2e00c46ad9875bbdd6cac315e783e3e733ff3709013758507f72db5d5ebb2207d9f983c4defaa8f97fc9f51e3c9954312068c1b0c97592c2832680ad8b1da2f525e96794b83831f7f2cb513541e8f73d2a29bcf8e9a96cb0c324add24cc5c3d68f46f5a8e95e475623409398ad07c34149dd2930f46107ee04afbebe6021f0eb132ee26b25ea3f007519ceb3bfade4aacf05613a4ee4deb5445601cffa08c343a81c40781333bd625ae83d02a526f7c707df990989d8ea58dcbb1804be485401603135673fc0995cb9ea17952e7fbae8009beeebbbc6ca8a8f883d4cb4fa7b15dd7bb591eaba97ab68101c500f286f18268f0f89d5da41c3d1b740cec48901a53485d0d5ec1cd2e1a22143ed5ff53fe64aec677e04ad6c46ec790cf1e833d5b2aba184eefb91d908e9e26c16e760c829a6fba0f54b903ba26f36824d74201694cedd93777393a14080ded9499126f4c4e68445f516e851d3fdbb5f75a21803d0db840b08e8381f8be0994c4e8c48bbb41d822ea176a943283b81b744495edc6640a7621e4679314b5478cbfb7276a126c02e6a7edcda1e649c3f81cd828c86023a7da2cdd5d1f29a0f66bef9fee8691b490cf607c5d43e62a8d22009651cbe17f7a37b9f22514eefaa204e5b8cbad54a6dad9b0f0ad7fb8cbe67fea0cd7ba89783947f80141d8190b8a29d0f5d125ee998243d13f8a05f4fd0e159248d3b67043305ab060a2487f3c14b1cf83461085225b0391d6e8dea8cd354bef35750574993712e4934668e073eabb41203568e414c6ba84125d3fea368db985647b847ccc7f2bd7b03ce33ecefd74aa14a9ecb040d8f73fb41f8450c6b1fd6a20e6e1075ea54a4ac6a514af768f15bfb8468fcb2a51e6d68500913dfee0e9614036590290c987ef36cdf57246c143d326725b9af2dc5f971e86d40400169a09e71c9fdcbc171de7676898952855eb288ad5087507f24106bcf236bbeeb0b02826dff5421f65f68a65efd0952a49168080b502c199a8ad8b1faf10d54dda229cc221bf4c86bacd072f21368443c7526343a0cb3e60aaf8f95c60d752f093b546107cacaa8953954d3d4e2d238ecc4237aae3be2c39c87176b6399011a9283b11704353ac8fe74c4415be016391d5ca0f57548bbaea9f1b61490d89fc01ef87efeeeef93b4e869a7afb43fee892ab1b182ed9652f6ef777cfff09536e62030796330eb50c10b1242d26624f651d5e1f9202094ef09cffabb5f69f4e518449817c35109ef33e5d82359cdd4fd1325cbaad8f924007601ebcccda32d82b1d7b15ae62428dd20a70433740c2e07407d8293134ee904823bc0b1c8528109b28eb9fb9a2d5099e2abdeaacac73181bce7da09c3c4d78358e9afca648695168a25aacd695225db9d99eebce08649807920b6f6769a0fccbbeb658b1961604d18003acdb746f967d701fe3b660a66d7fba63471477a5a447c64b419182a5fe0292a5c3a5304a2418ddc1cfae8cf2a00790afcbbb2a421d3559006fbf4582ebe5a61213da07313cfac361efa8bd80e3e7b002fb0cec3dc57e4b75cc4b9c889222bfab6eb00a3def1c83ece3c73f0a2c0f6437b59c411a9550eb1e370bc11c92650041b1e48fbdaf180e583accf205edf8c9ae2533cdeae1c97e5a181deef5332764669c1bdfd37214363f49e0e34a29209b4206fe69e628d42a24d66ce3133b4148ff83f10471860e9a88e6a34364dcbc69b6d43477ec5681ab1a373bc369094814b6ef6073da023c18ba63e60595b6f1835c5e0159ee4801e69739c0b497e44337168ae2fdcff46278e04e19eba9ae9134c457a7483f159b404a10bf7881bef02321bb2dd139ee6dfc769172faa45de0c0eb9c5304fa2865c1dfd85e2752d9e93043fdc3f9c2709083fdfb920453e56f3e0e2b5c404caa427f6b62bf252ab2389e71c1f002e962c5d6593dc5850c232e452f082e34729a6112f62d4b3e327bd0cdf3433096119689136677b0ad1df65214f8b5cb411eece6510823c4be5c8ea5feb06faa3f5b7dc9745bc495aea2d989032637ea5902f07cbcd4754a9571330ab4e9763b544506ddb03141f5611599604aaa68758e05116a957c3fd81fbc9d099a32a59c0baf28c2ca6415230156b17bfcb461afec0720ea20bfc40ee46e24cf7545120866052954d307035089138d6db5a3ea0983309aeaa059610b2e48fcf0ba7f75b3c21dc966cfb52e310ea93dfde17d15e30a4c36fe21fe80427d5624b7cdfec10b890f8986400ff5123ca894c695af5e606d16ecf80877ba1301bd5c007cfb55482b2e041eef0105e11aef203c056b5cd9f2af6456bc7983c805d5e25aecd7ff37127c66228131eed1926d19f3fb567ba9f101f51de0de6eeced46ef1e3a1b667dcfc51f0e2fca48fffa592fae0705fa38c37a3dd12fc4d494124bb61d17745162d04355a6165e1ccaf98876504d91503f52d69837aa01141b07ef1f5b8f3ef64385e880f8314e2707db03d7b5bfeeafc25e1444cd80b272082172ec1d538766a776563aeb353fa0c304ba868e50c89a7fc0430c5a434750c87e2e1d28eb0b7861b562860e3589fca5e28276c256e5c031c4b63c869b1467c2a583500b01b5b1f224d6152ffb93cb136b17a18842fd22794fcdbc3d4f9ac74e87f25c0a3553071f0f3941183a2be429e596eca01cbbdbd4017baac12e5d574ec1d18cb43e0a3f481c14dcd4c148a07336782dac1771bd7558cf503581366904eeaa35db40fea0e2b2ce4fd0b14318f399289318d40ea2d497c5c155408002395c034ad51a1ca8dc3e6036b583ff250b3f04ea88f8e582e1c5913e76cadb784453857a30f95500b903f6d69384e5b3badbaa31abc81df0f100078d2d97535d72870086125c881a1c56f58090acbb2cbd83047adc7f228cb906f50e38c675772e7ec05564bd03afec600a8760f59b4df1f2e202466f5f9d6e94f3c84a747002812c2af180a3e121f71c95dcb4b4e316c1bde2a1f6e39e810ea9ba17c840003e281c9eb33433c325c70db23bb5feafa72c9d7aaee261cfbb24696dae8224083f301e36d83ab3e2254b09b7e4c19934cbb5932f2c9c41ea6746684e2b6f9dbc1d8451929bb4b5b231a27d88637f030a9fa6a58ace2b8ffd5e45691e60d12f5b7add56ec42c2dcb077ee54951e6f08749948cdc304c865a8bead045eb83d7d41686fa3a1b728ec781e6c9e1b4323093a3e00d5d11f2fa7c32ae5440f369fb551016ffd13d03f9e7cb19f01e3f403cb0410b68921eb91a829982dfb644197b6d7f490189432beb0654a323d3cd5e00d062cadba4ba8a04ee50bae965a5daed582917f61c945f7eecfc5391fcd0e85ebe651dd63db72332604db17e1cc794dce1200cfff72d559f5f05000d38a572a48e64ed04e1731f3c4f5c06ed523792d88a979025303c1a9afae0f5bd08f071c23b804df846e637b48b75ed768920486ce22645ce92dc204cd0d0bb939954acc21375d1bfcba07a91af317991576d09c6c740f8f42f78720a351323fd8bcf1a25d1a6c0a444752431d3b70e2b450703a7e7782c7c223eb7f71bdcfac4e94a9d16aa837bae2b5e51083e161dea16a2cb2de22fec84248b79e0c0860a1179734d992ec9a475d1bb368796e6a09849ac3681a4c14fe523196959af8d7f1c787b9dbdc73cd6161b1ea4a7906cca2735bf5e02b8529b60ec7fc4dd776300dcf9886c7c05fbbbc395b0e9f7feec5836570189082c359a738a751c6ae4820e85b85786be2eee19050ef3984f9b943d45c3d2353696307c74e768156d110f84b001bfb3d07efee2ecd496168cb7e0cf101d69ad9acaab25a8c961d74a018d226ad860172327deeef45ff13624da953c5c89e63cff1429a344ba2cf0d387236303c6e0e613d45dfe2dcad4d23d437a431e8f0b4006d93d6a5af9c0098f4114935035bd9dec8508f38c19eb5042a0cec666d5c07f8968f8548b67cd273b28da08a6e62db260dbdbcdd00bbd9f3ed82abfbef828f252b26c3d6badad0831f0461e59a6bb7b8c92506c697650ee2a5e03584547221afb1653c2b1a1f2924706c8267d72b2735f63b2a317ed9dde1ad04504cf43caca40aee9fc449db7484eef3b186fb71df238f7e180720ac096ec3ff3540ac4778bb29ef15826d5c599c048683ab2618a26f144562c4fc86438a6415566067859d81fdbd3fdca0a47db487c68ab60da0c074d41e08c89137c84e2aa9645077ba37dff0d233a8296dfd7516958a583b9d5b78206b334372af74f7f9e00973e89b97e2eac055eb8ed1e025b4faaafecad7833daea6b851502e5e40de1d420698c38d923e82b2f804728fc36604a18cf0d0dcd6b0d139724511fbfae5b2474c34a99ca5b73ac26974728cc869f61ca1249633bdc474cb696dce6a45a986719427dbc77c47a77431d0f943e858b254c4f454a8d2a00b19414a47c488b5881f177382f4d07277769ecd7a168d51ae7c5137b257f9881dc6c907fe14bee0fa581a3ac99744a049ae907a8eb8e0e1e2245e1cf6418e01a75dc871de2d01c3bfaffd3ccf7cca60b7806e9e1e7a11299c942179d208e78ce38313f27346d2f82c38993f096e3e9c860763938d4608e50c8b7e0cb316dc881f6e2790591a71839ebf56a3e16d93a06b4e87c2bbdb741642b1d3230d051ce23b28098a4c992ba945329753b5cded9dabb01834389df448c45732d59d24b68358375bf536029af414cf5b68590e8a43c52a38ff27b7a8a4f0000c772f753fc2e73ed6cd5ed2c44891a1aa152d385d6d4c741c0033444777f8cd73dab8fefcee4c737e16a59ed703af789f0e98f101dc7b48fd6190c0d94afc1b3218e8aa551e5afa3ec479fd0ef3127290cfdc924e0495601590d7120c4d4086938107d535109dc5b52cae3f1583fe2cfb74acde6698b86edeb25e31b95d6c386063081249a271617399808c78e3db4f9a6d0c107e6cb20e6645d74d07af95c5dd02d9fbd2f71b75dbd4c9d70d53a260fbde87c99f74679b11d3fc07d63c1430b51555cfe7ab1c805161f852dbb92ddec54bb4b4382dc550dc7818d9757148b540707e8a64eb07d3ecaabafeb458c4ea6e8f27a84a1272f69b37edd8f33b8d631ea57acf15504932415a734262003705435016770952b73f1129beb1d69d55bc63e0959aaf9b8718711f2e0c541a10222b35f485908dff2c75fae8a02a5ac1511a8479e2bcaaa2ac54d77b77b055f3d9e67932ad4edbb01d9ee672132b44565f025cd65ec30512b790abe7f0414d2f10cbcfe8b55bd115d4f1a04c8c930d2a4028a17df601e225d728f3f81bda15b605b97cadb4bf6aeb8629b850eded85c0820977a3a2e3a1f72e2a0749de74cfd42dab711a2a049adfc9cca3d3d1bd5e7db0fdb070e21cc45c2f9c974c94dd74f7865d736b9490932ee34a62ffd7b8b9444248a92e7a4bd9795bcfa7992a47219cc74971c2fba82e1e4cb96c07e2aa6b09ed4b2d8daff695d8686850ad4281ba5e6c36280090262d3553e9c3ad51db066aa818d67276c97fd8b75826e46cd9c83cb54fc81cb23dd2ce744d72a92ff982b80ef90ab58ceaa3d0e954a2ebc8cc61d320b5870b9d33771668388b5920e14465815c4066861133b076210bb07052ff836278455104220749b2f92ea4c50a370b557ff74f51ce4e3b0387b67305e628acacd9d8d8cdc19071d72b3e012d715c735e976bc49dee39dce08da5c37311a2b758c8bf318c58bd37b0bbe896e5fba8ddec696046a676dfa7bef69bbaff738e05db620599299c9c21f88ba75405db8f376f0d035b934d31184eff2502862872d5ad285122ad1096e387efb134ec6aa3fdadc41e0cfaadcad96c623d220a2f076bb9ea9029663949a7b7e39e16e35e383098bcb92c300993242b2b2b2764842d6bef4e4720ada31eb1e991c6b9ade9b479074d29b69b7101ab7c72f68988c528b974a4d7358da3fed4d22de1e1df9dcc5c9cac097c533c618c0faefb2beeee61824455cf44ef41b1f2177f0b03e89cd5bc2c7a0091dc8ce88ee68e49b0c50c7475d72833bb5d8094a7a53eec078517a921a29161a4960b9502f1026004c09e4b7ccecaba7eb89b0e8d2003dba8ef4764a42bc4e1e88368c516b0b71e57d0b11ffb98f3ed287c00f7f6b4eaa791f75d8717255cde4d67ea2cd798e4389e39323506af4b71370141f78d0f0aad78a7d3d728bea44e3e0e9b179abb298c7c75de56c2046f7e0bcffba590e346e2dbde592215bf9118b0e8164440ecd7988ba40479085b5cc528dc35c2a65e9d11f34101b8c1855e2d08bed510d225da6971ce754680d307af32620c05af398ace2ac5bfdd823883c17c33bf337afea7593b8cf76292b976155d42441948114b5ab4b007736f186330745cc0ee667755ccfde6dcb970475c78e329ce4bc0c16d9016572015becc0daaf0241f6df4860745db500d0b09d51171ea0009dc6369ca93c5d157d8dd447a01e77603511d3fc51613ad37f2d891db778dc9ddec17a8c73f1134619c37f71d18cbb4ca400cefe66d67e54e1a19ababeef09872329cfa893fe7ac0187d1688325f04773d560b121482e98d515b799e93879e998a1b8051ec081a543c8622d82326607076e77ca2990b0ca1cfa6c090059c4058087dd24e24c6abf0f83d453ad77d315020980b3785d825d5e54a5899572dcb85d62759faa5142659072ebe28d1212d0d646dc6ac91eaca8313cd2bd1aa6454f34e3a2eaf021dbd8bd7f8a0618c23ceae335cc6b222251828c411fd320619ac27e37e37af456d6f131660b66641fd923190c0874c8dc60d5081f4917d33d81be350b0edc3af9bb191bb77cf8d6f082436dfa7eba3213551e6067c6f2e5d29f2f212d8e32a59cb4cbb9ed785089b57eb708b893bfc835f535a56f947612f8fdd45f130bd3cb2433bd6f85445d20a48368c571202a56cd3d2c5eaf5008e2502c12567ace1ad28fad3156decf5ecea12e428e1032b282471acc1ea45fe5e6660a9872d2575902d82cb9ee810fec0895c2a1ee9af35c6a9b94ec262f809264c78c4d1fac6d1bea960cf20963f136d4c1a0085c26a3e1c39f6a90104f639908b27b8392501238201e4ba7db50e7c21861e0f7f56a750155a69b33718fe079221c4e5b8944b61890b91943a26ba66f0898c03050946448b649ef51d02e07408eee971fb6c0abbf968ff6f1a8be7287c9bccc7f1c972ea8fddb94a1ee74097875263a0bb5bd9f30c01d714161cf850101fc736c34c069a0dd33055308c68a1b1b80befec350bc3b586774a55b01a9f1ad48158bcfce4c6097d1c2f49355ebe8c4faf50f395d0772c5148bdd910a999c72586262e678f29a89c085f16ee6d98d6cbfbf500f7ab318eb5958c33cec318e5bf308b178d64e434dd450822a9209da4f7dbc4a13f6b561c768f70b7280416be8d04a19f70b3a44406be851a50cdb0f53f0ff2db854c17ad0a6db38721107650c38d8d4d0f21dc706319c0f634337380ba526063604129d5b8819d66b0c824dc40917bc01a4ea761c5951a7aa2e0e124ac65d4e216632d39bce6d59318b5a38c4158e91975913564a9cc6990beda0c3c0f4a6ab6c2ac26de1c343db92784284e600389860ff3944c500e3205a264d0a36c3df74d10e0288770ddc88b2a42224177990fbea0c9666337048e2eaf4d6c34ee969d200fd81393c4e4fee76bd3ab2b14208db0e0ec0b1d5e9509694203454961c835680534059af08f6ed9b9379da5bddb9b734e67a9f9b6397b59a062660f3a399ff673a02a4c76bca47b4c6dd8c787d2988bde85988a41e562db79ebb8b5895720c59b13140cecbd38bc4d3a175f8d1c17fe74edff9f633d68d4c94d0de4a5552c5876330e83423432de085a2035001e25f8123a721af0bb84624971cd6878243b32e7811696ec35bba5911da016d7e995c3083b364bdb293a431a9578d18191058a1a16afc708e77cf2e9c6ba43e4caaa9e77400e4e1803d3fee1abde5e875902a2e485ae6ae261a97925b0b3aa51c8bb27e6d8a467aaf24da52ad38c712ebbd84d383d862ab45f772a494a39b2e63f29c69ca04cc12bd08887dafc06d6c34e62fff858ef2e93c04baa8eaa5c553804b20c7013060e2379cba53dce956d5c70f075a0aa1812094808ee67ac42148dc6c04baff2cc406422801dc81b8a95e9c3a4f3e66337038c79bb7815002b74b3d4e61016d4073f3ab22d2ca298f9c721bc228bf41f8799c95c4efe3d007b9f1dd58b01c37808a092abb11f0f67c4ef87a5937184a5c1bd5799b294cc50eece8a12c5c54fc67d5d7e99c751822eb138fb38403064e896e8c43394339d2540827c7d79110c61345096b49750105fe9162425e60990b119c3394632996ee74b9802377e607acdf2be9da5b48dce185f8d64bf046bb5e6834eee2e0b814fe44525c881029b020431234f6599280f73025c0f5a51806d07d9ddabec71a654adc3df3213c70f2d4319ed8a64e473b665ce98ac99b8328ed7c1d5ffa62929d3402d15b4dfa58e392043df5950d9caad1ad1d948e2a1d89162330cbefe198bc827fba714c965694d000884afefef8c66b471965e4557889ffe69b1605ad607c57c7cd9458663946d71bd69dcd90a17a2172ebe6fa0eeada3c3d44d22bd909f77e4e8370a95a7184f85d485de99d8ee433e35d68e6f1c6e462e5ae4345f14ea81d16ac8b6aec723f4a30c5f133f3d305a71e0a96771dd1d0c40e9f43b2588ed135f5d9162a8ba0d811aa3587f1461ca4d2138319c5926b8dc99ee2ed9fb81003f016ca23e07e7dd81fa15b42359cc2e1c8d4267d6ba0b3e05324d195965885f2b301c1450c6a1939bee983fdf9dd5deff0f284833a2452c9b55d29326cb76ecd8edbf71ecfbccb1b9275ec4117b491074364065f8cb444310189ea790d5dd0ee13565e10d8d1b312d8f35dc072dcbdd6b6682c31005e2a656455ae82e98630be9e2804d832f7100549ca10947946406148c93e573b733abdab517bdc18a23d191a524a865e0daa67a2eb60c676267752b9114c2c35ded09386548b2e09fe767dca91b20e5858b8f36806836f68b4eb5a4ecc91bd30ac14df097ca3fc112a77d10b82724af65794bc19e67448d1961909d6fe62eaaf27b250055555de02a7483296d6a69cf60c8aaab0ca03e51f86b4c19b0deeed071652fe050a13f2c88053a1e29d72138507ab32a9acd88d164445a37033f2a6bbb4a67cc26a8ad2898ee3ee1508d2df8879138212ec6a191653ed6452ad82360bd83df9a97245fee1374fe625ab77c015d2f26b080a9ec3f4cc52c4f47c2f75b67275b832ad7a9ee3051270023cae901644339fc4c9fdaf19df0436aa86f20b90553189fe4dddd7da69821f2455cce0cbb13e760141cf4290048608d497e9999309bff73e08c7bca6f958562a527b7810fa787ce0d034b3e2a9c52923e28da6bb8bb11fe8ce716aba729b29874bc84d2693e464bb411657296f26a08a09a054050505a2e0a25cd18f82deef6231af5318c48abdd633850526e5d87eaa4587b0f0c000c3838d8d6ea9ec1ebe42751c20fdad78a9f202b3987303724c523e12efc5a4f1af75b1101acacd07dc158294e4967194764a073f2402fcd23b0344d7fe0e084accb17fbdf5dcf572979b2906d78324b4dc2ffa1a31b49caa3dddf5a1e5027a838556ca0fc201b4fcd7abf1d7dc15d6b9e0a6f6753c5b65b0c63084bdf76014f9397cc002219175e73086e896ddc07f9d1f545fe60aa0449543de152e32b515150cd8bc805679a7005e4ef0d90db345631571a7b44b9c02cd751b50294cef367463de6a6c7f31eb1503f6a543e4a3ffaeb058b1f2b8e84d36a41619b8676d0806d9fb91d8526d60212ec7e1823a180aac703f5b31a9dc14d63ea3dbdfea70210ab47b0490f943c68722ea3a96ab3bbf29aff05610a776ca2b84f7fe10de2ab465147ff1ed94e1b109df49b6e425ab429ae22db7294efb327c3a059e18974376d7a12601d2df4cb2b10251fe0ac5dfc1327b5a7078ab162bd4d5d9656d46183d37178f2f2eeb8f8186c92008f6f40b70be9d67bcf914d4362fd7f6e8155653dca1776b69f8e505fb3d31798a61dded9cdcc9670056951b7689e97488cddf4100d13dc98b7433050b8950319d2eea2e804fb317e6741f7b85f7e449b90f6ef3ddfee00461cfe514bb20657264f78761f334a6bf901e05ff31286b019cc61907257207af3122319f02dc8a490a1d2e8c76afd3447abf06f90951ee0ea69d8c9bbd421a78d2f081678f2b81a21457d85cb2add816e7e2776bc586ad6b02c35364aa6fbc9eacc768f4ad3a3c0b7deaa7cedffa4239e6a3b93ebab488ec0ddb3ba89332384fa15ab0aeaf84a4f60a297d3942c829a02895af43b5487d9048141ae03754b4e016e130598dce4ec9cf76fdf72bc46b2ece8d038ac94fb08a826c682d5cbdfd0cb6fb33cbf1d915b20d734fe780130454761a23fa2cc8c808d7b08b63d1887a7469525c86be429726b59f8116bb68252521218db8227ee5ace596833efe1bfb64e06a14850c7d2b50b8515acebfc1e969192e9466e984d0558f9df617efb784bb9c5c3815aaddb79e423575ba25d8dfce4efd6e44a45b23a27acb882072bdcc2dc73a5dd1487eadb228b84be564c0642936e884140886e07a335f05ce2e2cca3ece60cd69c4782018a5122e7c2967a7966b90b1a3ac16d11b0f13e5bb53518307add32c60eb1e94b6f29039997ed14afe3731073109fd52a7435e2a4327ceb8bc22e1007739796a9b811293f548d3e3277f851bb4b2c70ead7309c9fe465cfa797883022c7411883175217fbc5555b4c1e26190719f1ea1cbad6ef9be7928fa372cca18cf6416f90e6678ca3f677bcc8dc549c74ba4e2d180436a5d73e567fca92beba4505b8381072c9c1dd0678b5b1f9d4ffac3b1da07c69dfd8316053d6c5141ca604f6c29d5a2cbb76d328efcb85640835e6ec94cab9d19d23c442a91f9a9a156a37cc2bc6bbc281710ce041efb9bfe9daf9fcff88032bd317f57e6997c054fbe90195a3ad98810294254c019417c78958050fc23819a7cca88a1a244ae1c16c4e435a875cc3a7ae3c45ecc4ea1f65a258fb83e48c6bbee7354e58e6159d1e4e1a30755b0c8f851174e7eb3cddf961a6b43536350f83b8f147513c765ea4dfecaa206dc77bab0dda50b38f75a7e5857977edbd1d9e9175493f0a00512a2d363d0f82d5226c3417f3c1dc28826e1fb526d318ff6b12660269e9d5cd00db251c744b792f915b5a5426c7f5935350d28f5a6b1e816415838860bd01fc0b3bc8c76e8906767a670bafb421776bf39f21df012db0c94df7371edae82dd9281599dba1837ef97f0c506aa5d48a242a406abdca169d61af8715511e5e81e4dde43d422bc852dbf574f74f3e54de727cfc0e742311ea5d5ce6bbcadfd3622c60f06e0d6e6180e874b27d62770a5731b2fb7a41f5ede4154009a44924c58180f7551cf4aa33e00ceec9ca38bec782d4261e1c5c5c7e8640b147b185c7261a0aa82c1420d460a1fa3b94a7f850b0f3c3ed64a4ee4d33851653376093b17fe983d710d8771e001b08a60510407313d566121b587cfba256c4e6f2c837b5e683f6ee9282104c3d3581701192ca537e03a5debd470911d9a956d82383f626736f6a4c0129eae513dc538e5691b4834a7381d1bc5aeca0dfe27bd2d0bd5c3aa7e1d4225d8e7f679c7aab359d5b9821803b7d3ad8c1be0964626f56ff0325bad5325ba1ed06675b40eae6ec48b6a8cf4d37993f7fcbd2daf47edba7f82985ce7455888578b6f1d82d36bbd43cc8872e16451e13a0956d3ad4ce8ba370c40a096acbfaa280e6581bb5fa885b35c6a4ecc54ecc3f6fc45fabcf331a973871865b67d2983fd419f0644085014a0297cff83f8a904d2e9d00ab931bce92efbd1946d00e96535effdebe9841a146d05082735af0e08db8a5122e8f6d7d34265c25454d7a694487d5ed63892d0c6f243340bd0abd868dd2e7032dba243240b7eb0d63cea814339e6bd41d47f93912c4d755f3fd4c083fc5a58f94977e3ab01e064e376fe96e4d827bb0706ad968555aabd10ef7402b9b3365a44f2a832be7e9518143e5e1d0a04797e0b561eb7050e3e2e75b56ff594972f5b5e86e2fc4da20e3d2ec989c185f3c8d924865efddea4130250920d346a1562973087684eea441367e287c21a25241abf0ed3160cb4fa0d7dca7a1b468fa97bf865a902277a438cb4d7ab11afb65e310c730d6b02a6ef50a69a714a3779f9d11a853b6e9bbd566ae19e1c4efdb2df4101e085d1ab4ae08c28a0ef9aa62f1ad2ad8c09bd890a3483a29d156f1e7fa009c15f6d62bcf3503279ddaf9f8d92c731d833e34f9e2fbe65d3a01355b02d27ca9a4a962a1a9254140063f2ec3887cfefb78ee9c267b2098fc8e9cffa7cea5c23d17dde64449108bb0d0364c1f84e0e39384969567a6d828c4775c773106a0e00e79e8c020d4ec1f88d190e54f1405f9a62c10e542daad58363265d7da7bce4f8ab1b1e4ea0c2dbbfbae68c1219d82bd793458b9f8ca89c8245c0d8bc9b5ce5513129b56a156b83b9f37ec5494b4216d1ef9b50f1013ea1824d63e13915361ca92f1a2ebef8b59428b13d5ef248973f65a16d0f43779367a1b2b705f46f9485023e2853dac693a5c0351d450429c81712e56037e0e7881ad66ec4c3ee6847cd86129f229625d375938f04152f05a7c2a17451d85377931e0d1dc6436a704fa5200f912b3824910fdc0dccba2f5537e97e998c21fdfff7fad8a7d4e86e13a11ee95d32323b2a302b4449e8859799f370a10deae7a0825971e17df283898d14c1edc988ea1628a84ccaf040946aa736a238052343a68d5f23e6b46523d717ae3116370daeb33ba406678356316e6b0c93623856ffb6127e8350444b5c8f4b0613a3e7a65cdd92d4921e92e9737f2117a8f96ab5d1de6040989856e6f84cee3122b299e9a3af465f6609fee78050f22a3e1cbe7a45ff3bd3f8c906e341dded5c879bbc275ba2fe2aac70070e4fa3ed797b8c827fceccd71caf3bfd155c487e6e45d09e3b6dd9698e3b25d95edc0dc0dda86b44eff2eae89cf68880d1d1bd8d94787f97237c95566d528778198a436e954527f4a90194ee827cf51e30446923483fe97ca48330b413e4f91542c9c19eaf490c3ac8c1f3cbb496c1968ffd7fae61427f995c0f6bdf40c3605207edd7e5c400ab75aab687ea61f1e3f65cb7ec37a92ee95ad7b84b6c5d1e0b058d547e96bb6ac9b9d4ebb086b2bfdafb810ee802544ea0392f678ace10a721c4a7e7c4dec8e13c68a237a9aed7aec176e946eb34aa109f6fb0ace901d4db68b00c1775e05d9a13a84980f67f8d6e88d7dce3fbe11c86664829ca471b273b7393a7fdfd80d9c34856ed10c114437de23779cdb50375897ff1690e35aff441d243b53bbe55e08f0983e95fcc29a8103d60dc37e9b5e48c9a67480abf759b4417ccce7657c71aa679e0537238824201d6437db49fdcd7e1439d3df81294553d40da5094fd056e129e54f6284a6d03843b66a1d471fe51e8a8af11db848ab1acada1fc7561f635eaf8a9b20d0f26605115e67a8a00ed7c5be37e6026d50c7250c31f8e5793b41ce27bdae4a0c01cdedcd1fef5b9c179a044d51b1cee9ca8d33eb5536081e4632a5127423a958120d3b041a912fe283499d7cc4918d2db21234ed63b3991be307e8c43040ada146ba38e323c8293dc1c7ff44feae2fbea02ca11ab8883ec39d33bef0fe0daf320204bb67bc7e30ad29beffb47189f7752e79c9fe8dec69f3a4dce3871e200921769b81aecedf401a19bb674a0d6fa9f699e0590d2f8c4f73a223b6c21ef5aec1037794b229b552d9d7ad9f1894d3d8e84c007c6f3c83c9207d6b39b266a355474032aa43e8b592014ba9a0e1513ee3467f573f2658018692543cf827d8b5b8b544986a71f036a6f1467be164722eab3c71c4f800b67b067e9623cde393adfc2ac694d565bdb8fcdf5a5b27ec4b6e29832d02163516c6b7befbde59652262965bd08cf083808b77cbbc1a6569de3198aac42a10f1bc970aa241414141414d4766d97ed08e2ac24a763e85091e76584341cff51b1e76748ebf19f0d78758c219a088eae54989896a8d2c3a9c74ab5d9683c4e4e5dead3934c16a3a16b44603e23ccc965d5460476240b6939554a25ebd7a52562efda52c3655b0223c7c6637479e1e1d103781c5a00dfa381bc093a00df4303e079e81f3eba859fa15df81d3ac8041e670203f8e182861d05d137535113188076390940bbb60440bb9e80685717006817d40fedf2b2a3a3054de70efe9d9086f3df8dab03672c896ecdceeb06a76fb609ba56e4c75ae4329eb046a75c56918e946a52d248a5a270e008690f84c304d854f529f54ddf6404fd68a107d22c3c0fddc19e011a02bf001d81e7340bd6b10095002d817f80a6b30668fae424014d6f5050502b0cd1443eebf1af8ef131adf330b48cc7d1fa1fa0e76c8508685814ece6b22d9574b21dcd1d98cb8bcbd6830e9dc2efd03e82fe47aff0401af63c34fe1e277c8fde8f43a3f03c0e789cdc7dec3a00460ce7669bd313d46d748086413d69d8169853256d3ea458add6f7b1582c168b55a443e1840d55492fa38f212d0629132314ba3b4648d3197a1d9a8515827c0c09d1585821c807cedd381e28a499f0403c36c0219ac8737ab573e8da101e403c24f9ff7a8922d42c16bb13f6a3615660362d4e5262e6196714f919e1902d01cc59e17768ff199a85f7d1b497413fe013a01df00dd03300e96ebf091a85efd127f068159e013a02bf000d011a445480a202e985f051da496b09f2012386034544e8a884190166049a8655993b4573274a085141a38f5105edb2a1b0656bd793dfeee2ec04810738608619a1d0dd3fdf23a4e5f81e40ffedd028f2384378c0a69ea428721febc0f1c1a9c1dc6162f2d4ffd12e2b39b4cb29137141b96eae2897724d018d2e1b0fe24e0e5d9be169e85a917f5d23b2c536c29e5c0634c29c8ef2acc8088372d90e7d337502ec08ef706386861db15aad8fc562b1582c1a2f4e44b4cbe6b22d4f5da050d051021526a625aa54b19242486d362ac54748979676a8934a9f24254509a992128f9e1e4582429a0912a8648dc2408d06970dd1f428a445950c0a81f89ee1595048e36a437280391abf0e8dc2efd029fc0cedefa37d3c0dddfd8f0e7a20adc2f3d0b0efa14f781ebd7f480e5d2b5264abe0a4e54602a48ffa1fe4a37c948ff2d1de412c35d4ae5fea235d45c3a8f8d0e29482beb9a1a06fa0f44d934023e99bbee99bbee9db0d36b55d369715cf5d1e229bcd7c34ac0acfc7f21258910e7d13958fb0d864e62465787848f25f1433948b47bb6c2e2b2ea71eeddae27a9a3b5c18c8e5e4b2b202b85a81587e540f2d7b1e9a7c207de37ff4ce0fd144de47dbf81dba84d7a16be4d03505d466f8ac001cba47c328f2b17b0336c500fd512f55547df4515e327d740ff9c87f3452c6327ff413d9e63fda293f551f0d95a5983e9a0a1e92fccf4747faa6614c542a596549f7a08f4ad037b71afa064a23e927b493a6424369248da491349246d24832edb2b9ac541267cf186fa4b0106725391a7986c6d996287333e8ec325c2b72a13eeac3549ffbf55feac5541f2cc3d7d745fe9380bfb165d02e2b754bdde11b8f2edb929d2d83d65ff4d3ff7454f5e1b8d8679ccf453e8f9fbbcf337cfe57f581f1f963d527c6e797f1792c7554252bf7a5be6dfd45a705d087f42d863376af43eae89961861147d78a14d12e2b55e6b24d115d79642108460b7709b1065516f44d7fa93edcd7d7517a278f47c8cdfd7d0a90db6eda1d6158c2c68ee17c69e924632f14feb81be75d369715d716d793cbea2740bba05c567f2814926d6e743975409c95acb165d02d8434fc03c6cb76ecfd27ce730f2336442bc065f5570869382b843140dd60818786830891d16545c865bb615cb6a11d1b3c78f0a871d1f068b178f018a2e7cc9f9bdb4697ae28d7544d118c09d7eda60bd80e2ea89b2c601c80bdc0e57493839b2a6e86004b411802c94d6cd7b99c5c3697ed8b29a9182a3541121fa6b456daaeefe3ed862631dc70642fe62ec6b72f5e30c085a91295f397a89b9820a98e863dbf0421123129b97952df6d4f308cd49e4f449592a83d7ff5c59ebf0a87627b4a9451e265862523b2582c164b09d49e3ff5672a5646f82a88cbe595127624db5b2832965a57aa96e36ac553dcdddddd29bdbe7a42a95d31896eab8afeae250e5bd3b973bf5efcc2941b2f15a732e79c7306f9a44f5c5412c5ac9eac94564f56472b21325e0161bdf8bea9f5d453d7a7aa2465a348f326459ccfe5ac82fdd8b4f6a088c96f48b695946a71f660e14a8645a35f37319c193a868c1a648d1d9e1e1c2b2939fc1625351583d96c369bed0609090909c9e6c5c4c4c4c454e35a49d1e19292929292a269b1fc36e34c325276784d92116d369bcdb6b2aeb22ec5e716155a07ad7fd6a5fc38ad2225d559f701575280ac67eb2b293cdc5ae75647f0e8b13aa2c709f7a7db2edfe7d65a6b292dc1ca8817e7cee5b8b9e31c37ba5beaa2bd4e31bed7dd2fb0ef576bed1d27c6e25b39112bfd1cb5e973f85aafb3d6fa73ce59e9d7cfcf1df1d5d7eb3fe752f7afd633e7ee5e47ead3dd8eeeee5e7bb82c9fd7cd39e7e42abe76ce39e79cf373fccb5a6bcd2eabb5d65a6badb5524a3fae8aaf3b821ae1eeee73ce5ab59e3b135fdb6ab18068751f449ae7cefc0ab4a7bbbbcf9508e8fc3612777777dac4f39238055be0b449b5d587babb5fbff7e8d2795f0317e94eeb81e05b39a9b5d6cab4e7cfe7f0fc6be7bb1327e5b64c7327091a744695b1eb7fee838e8d7147acb9cf391d8e07e38b81b0f04665b37a893532ae993c411b5015825e97397cadd79c69e44caaee7398bb63ee8cf0fde75c716533e7d6ebac6fadc5bb8eb65a6bc7d2e659496badb52e04b5ab26729ab9703f9a3bf3272e7dbaf6c563b5d6d29036df0ed5ec3b3af1ad9498b5d65aebd34a89f9dc7c3cffceb75e574ad45a6b9d13f663d7b1b4c0ae4f959ccfd5a68fb55e4fc04fb7115cc358e75afe6fae92102b98560d61a845b3fcdd789467f92baee50f73b6fb20c74079ff5e2336f8ae65203f6bd710065b5414c240f388ab7761adb5f8f5aa0198a333ab3e1a36f7d54b69ad97524adffabd77a4948e25fd8bbfbcf7de7befbdf7de7befbdf7de7befbdf7de7befbdf726b19bc6be3be6cce55c5a1feb95d6136afe9c73def43f07f3d7fc35e79c3f8f99523abeaed6b1815a35c45821032c5055d82aad191d30124e4fa0b6740105156022c0e5c9c90f983031b584510c7ab003265cc08227a45c31c760518413276410e6ca1066f3a7042e940ffc892bb65d6dcb8165069f4082fbaeb558f2acb5e9161cf846d79e579ed8428568492a0b971d8610c4960e7c993e501a62ca0b9200831f766005910e441881c40e5f78c0e2685692dbadd0c0c909cc121045182208220e88008826c24851020637f0410576e0059208b4f430c517b3f9330222f6fbda178b0b60c0c9b8760447235146ff8a16476cd59e57b480daa5ad35afe20347589cac28ca61d6b4fd6d15db7b80030f1081081dbc6822c4ccf19e585860c3130b0b6c3e78d3db84a5f86a31c10e74eb64b972d3c1b7ffabfe4c9d2c36dcf38a9625244bbddada84ce393b9a2be7b889e8446c759973776b5b2d56cbba0f49d4174dc2dde9ae619839e7cc95a496decf5e3477e6cf3a832a9b3a7d0166090530499b5eb14193fd57ae7042a1077fe9eeee187fe9eeeed8dd1db3402c5fafd8ebc05cc83f370cb568f6fd37433cea1af8d97fbcd12807a0597e703ccab3efeb8b9cf63eebaee6759a868d1d638caf1dbb57326db30ce4cf40f7397685f9e84237e26aa350a998544ce08d3dcff37c709f52afcbf7c71513ae5c145e6bdf47c519d2dc2b696957c41663af146715ec47a764d37136550dd22abe8feaea5e026dfaf407d1715581959c18537c55b01f782c0fb07ff06cd4d6770f2fc65c48cb39779d149ab7f48160f81255aaf13e4972424bb25b9c627d99d638675877a9d5a2a1a9a1a9a9a969b1666a6a64c49a9a9a558d2aaca9a9a1a19a7387f3e2b3d52d10c6d3f662eb9b14ac2a5bc950a8db201886e26a258ab6355b2c16fde163b15a2d1a9a90e6726550a725be622df107f1e63aabab603fb0a5201eedebbf9b1b182ca4bd62a50803c64a056249e2e4e4fc036dfcf40711fb0fa29e3f8e630e0e8c186c1c6f6c5e35a38ba6358e236b9c9119c5711c478e67e6326d5f2d89f9af6d629bd417471dddfa19daf53134cd6bcd59272fa3e6256393338323ab5102b9736342edfcb609e52266477292676e3e49deae97692323fc3990b3291c8ce6bfaf03afb64d9c58a4a54abaf48cff416ce5d0f86cc3c67f34b4d114ff42e3bd50c8db35efdd6e34bcef62abe9966997aa79549117fa944f7d36365d48bb37dccb070585bf90765773dbd82f43d7c933f335da4e72e65f3a4f72e66db438c999cfd1ad49ce3c8e8e4d72e661fae7ce0c38c999d724675ecf00863ff496f94f2c61abee8c8c6ac5aad1e5e96925b6645b9c9c44191ad28acd2633e3025b5ac746dba830628a8e90929e4cb96c09af926766cc30514e85e54c4a3832a62aaca4b9e38f8dae9651c5e6b2a72ed542697b6bd9a4ab632cd18c116dde45451cd8b86d9036bcc90cfde8c89d38920d241c9ce94f3c296709f1be6c6c6236ae284a4a5b4ae84b4b353521edf51fcc4647a924d368975ca634ef18516653f3ac905603a3a6c68d6a422fb279d5e4d8d824f17ce6f98f471b4da95fc0ead4940c16bb37210dc380e1988dc7b14163ac4fb5ea546f55ca6bb2b1da6ab54a959c9c57a5529998f0cdb9daf5a31ebbff66444989f9e21e91fa26b9ec16b92c4c25a76ee89a54ab482e43aa4b2ef3a7a1120cb2a7c7c60152dfa3304fa22c5552ca655142e1ae19936c54928d4a8aa1a3fa8fce983364c890c934393aca3a32684c1a3366d410ab512d9231839c240d1ad346dba83095fc11762f77395c73813083866cca48320aa7da35f45daa323139ae1b3b5593bfc0239d9aca3492c81ab346944c16d2ac9498303170b86bb48daa6418315352951443a5a46051fe63936c52146993926cbcb44dcad1368a942a2e6372d912d3981d1aa692fe356854d4d55d97a7272f50505fe8ed46b750a7254aa0549c2ee135fe3bce698d6b36fea56b32188d8dcf2dd767c3ded08cf8b9d1ee2b23c4cdcb42da8d0e1b7ace6e34dd33b43fec489bd0231afe3764eefbff4648bb9687272a4726938d364c95d9241e448bc351a3228e47acf99e90f6cab986a795a395d88c18c0f65afbc42a85b41a1ce04a056269a376bc74cdc6dbe81a8d282be532ff9c83834b78ae84778db51a4f33d64a7818ba26fb980d6d3405a4d986a613c7e5ba6d6f09fa6545f216f98fecfd6d94d494ff90efff5d7d234adde16f422894b4642787cdd3ffa4b868643233e4eba606f6f9bbfa4aa9a45b21c4fbe58db27d4947257d406b2dfe1d21ed3e76d1c8ccf454d2fd6b260b4135929409404d26b34953c4fc16061764a8a409374af5c1ef52dc265f9b831b1da0804aba5fd75b1aeb7a1d3436c93ec14c2ef35b6393da3ea9327f9f90867f5eb26d7fd2fcfd170d2ef3c711d268c659493b4e0940e53041470e1ff0a5ed13aba423a4d58c36e90221694709322020a01a170d508b0504c4b566de8e25d196793b33ce4aca8cfeaa10fcac7ff73604922bd9c4664c2f934e3d800aa4fc572910b11b79133faa64d55f66473fd5cd58d27df35ae3bc0c0de37574ec63e8fba3ce4f440f796f12450554031220c3021840a4c88f0a3e302d4327c6789b31c14cd2cc0a669666ecd0c1347b61061c26f4f4d86ee44ddcc88fbcc90c45b4d1941c44680ce1d93c5400fa24795f478ada351755928ae993974c321fb909e64fc63293fc27db5cb6547df2d3cfac60fa642926596163c943eab1245fc658bece2873cbb7f106c5a4fa2ae8200c2d037320a73f90471fe0716821dfa361e8a10bf03c340166c4f03fe5e7a0517e3ec0c708c0b31110437900d716d793ab8b0bcae5e54687cf0d4c07878be87aab5528974155a91a55a360401c78e3c6e726367b210787093d3a3649fc3df4cf1d9ca70c8b93c4afcb1960e10fbdbbff543066305635542a4e94edd52acb1491c2627b9242143b1db0974143e013a01ff00de81e48e3678096000d5c448a888cd372a75d50b728a9292f14e27ac8d12cbc0eede377e86e8597413be07f7c06912244548079111a0b2bac56453e60dc62379cdb0d350ff4ba5769ef41f0af4642bb48848cd4543ff7111b76cd1b57cf3df89e37537d371679ae6bf07f61f5dd7fae81581b76adfb6f8642c6b0c89b81631843381679b3d57b639137f380e0d8650dfc23444f76ad0341212bd57b63d1fc320bc3c0eefb86cdb7dbb76bd81d5df07e3639f1c586cd71363931b567931344d81f065dd78e54980939793177e616729a9a3c73cfb1b45f56a71ff867d7755a49f74c8866e20d5382e09f1fc24065e6792e7c1f5483cc30861c406c9975230e0100c30220b6806101105c66dd13ed190e19a9753ff7910dec5ad19d75415c1b7fa815307bc207dfa624a86777733e893f67e097a24a1ca7f87f0abbb481b58fcc2c453cb1f11b998f7ff5d3654a6818e7ede70c9cda5e39af7021b5af1120bee7db30b38fd828268a2e1217bef70ff50ddf874f73610913a2590e53ee13cdbabf21101ffb869a4a698a446d2ef33e7c52429fbc9bad7bba5125aa84f4255552c2846836c5ff4b3a84384b14b6111b58fb488e12394042c91418c0577d91925a344afd9c8550bbac45e0685467ddcf999139cebfa39121a23ddf86d63e52002298ecf9b3a9044f758eb0f917d8b2cb0b68d973099d79dfe91ceacc1b8d72515191eb1a7ed43ddf2701e6ccd3485663f6fccf69f6d83100d1acdb53d78e74ccba9fe10b4be698a925dc9859376697cdffb89cb92031b944f1c0c945041f971dc0d9c485896ee2d20155f662a50a23eed9b4e526034edda48508bb3543a580a23fb6ca5854d86c255b5ad06411256b1eb1ac4e2da5ea539576d4ae4d5b8ebaecfad5367b5071e26ba7573aa3f29ff4aaca1bb68ff5c6559c293e18444bf3e57cb52485340580b611ea4ebffb7dadca874c09b6aaa83f9be8321d40fe23f360f6acd2362a69295949b192e2f78d49eec64f4320378c1933c609bfa7eda600d0bea3115b57d50641dd6badb54e9ba537287f63b003ed67edcf951d4bbcd22a6bc5508364be49ae4d6255b46ef1cd39e7c518e4387c9fda3ca748ab61803890bbab9f4f670f99eff6ec19f3bc2f75c4e79e73ecf7f1bd3d9b23bf4fa539bc55fa6e194deff7df0693d41d3e1802a163c68c1933b387baee4f5b10a4db75a9b3bde5d32ac5cd71a5dd9cffd08ca20c1451f5acd7f95548e35e6694c9dccf9dfb2cddaae4ade49dd173f5412eeaf0fd884e48fbc62972daeeab2d17fe2afc4295a85bf5f5459c1cbe368b343ed2e85c65dca793d8edd9d8f51ed33c9ab51d7108046fabed762d56b2b26ac7844a0b983965f66cd272032d4d4b9c16b93672dfde3188854a62ab59a824fe317bc4aacff7f47b1810fa1fcd7f561bb94195c4e2fd4aa23de35feb59cfb9a7554fbdfca5d77a9046ab7e863faca755df0a83c4aa0f4df5b40b838c9468b7c6f2fed52a1796d019f823b3546fedeb7cb97afb6fb9f7c63048fe3b9644fb7e4bf59ff7f72dcd7bbab4cfd18c3020ad577deb552d3d7756d97186f5ae30c8374befb977b5b4f82c5dce8c25d14e427736120a116dd1b5d24654e30e35a881bc30c8d7655ba95757d91d88f84bbbedf7ccf0c7dca1b3b6aae7836af6a09b3e5d59badd6eb7efbaeeb929123a46d780644a1515ed2433bb7b4f02ee8e861a90a8b0ebdcb99f046fae06ee93e0ddfd44928344858d848ed9d68e73dab8af8dd4b7abd85be7feb37aee925aee6718001c0ad55af57dbab22e5d5fc7e9c9b60f0352df9b6c107ecf794fab89d5673dadf9ab575fb5ccc7aacf4ac8430f42e43a41f567fefb4a3a34e74ef7370c62bfacf7ef08ab01e2fa9977fdcccffc123a8b551f979e35045fa7fa4c2474d78e5eafd2aef7c2a1fb577b36af0a7217fff5b1eae31160ce6c5e45675f38743f976ebd9119ee455dded25f156a50d7300601aae4631d141067930da46cfbf5cb2100886850ff864321901cd2ead86301ba7d04e7dc2955aeea41f98876ddf4691d4b1cdc29109e299818b3e9fd7a470acc2ffb08111252db470a4c274a25638dfb70d8146b6053eb4a36bd230d3ed694ccc761f5b43483a21937166160ff107ffaa87e41345272605ee1e2894d37b545d3ce9f53ec9ed1bfce317bea1108e1082d2144b166ec7945084d0881c9cab0727b81d8fad7c81d453bbacf1ed3ce9daa839ddcf832c03881819a4f1b638cf111627d6a8498abb5d6dad7eb3f0757bd2d5e4971f3ced5e72bddd6e25a71abc502e2eee59ca35188f5afc53f2b0984311e4bfc25fe8a6b4f7dfb9cc518e36aadb5d8ce777d643e6d104c1453e020678ec3f85e6bdd6bbd81489fe6b973a1f8565da4e812459728ba4811858ecbe36244093ed0c40d3e300515b3f9930242741cd277a54b148cc5bdf85ad1c70b172f9a4841530fba60b13d0749d4b8cce0c90e888032c5511ed37d098730bfcc7081859625a0488182848b031ca8a80c81556061044e5954a0658b294bac28b67020c45eed790507587629621dc66b65b56793173b4011d50128ae58224517dbee79050a24d4ea61ae75be62d567ba7deb5506ef799dd7755ed7799de761fc1ec6393667cd18638c31d560929b8dbe241b036eab1095b4716dd77d9fce95f4ba2e731ca76fb576eed88f55d2be7dfa515781c8e1ec63bdd27a02c6d87b8cb18731fe4f4f1c54bdffc659c99ac7ccc5c48c31c678b4af03621ef2fb787dacd7cece3929b5737a99c4c6f09c18f76cfcdfe3bb3f07abbda0ada19015b2e3ce632d7536fe397e25f15b1d7307cf39313e62b17677773beff7820f68f79095fa1d33c7658ecb1c97b94f52b375950d2f883fcecb5d973deec3e00dadca57b5d23a55e1ea5a1083b489c8d15a873e30df88429c75f0c569ba5bd5677e8ce3f2a60fa4a36312bae953fa1cc7658ecb1c97bfa494d29c33bef9b9a71c57392e7fce39ffdcf1defb5c49efe69c339733f765ce397339e79cb99c73ce39e79c73b6de07f947df7b1cd2e8535aeb15b182d5ed0df3b6eb73f8e62f7bee7c607605a36a028acc3077ea5b7d1335028610993bf5432dc3dca1794fd78e806634df659ae7ec636d8368c36bdbb14633ce1ce504c204e68efadfa5dca6d10ad09bfe91ff7c5f182431bb1e7d5f28192ded26253edad5c9ae5fe22a48df4d9c2296e42e6787b4ebc7307bdc23764969ae3e20c83453554d7cf5bf557d4aa9382be9b33e6d1ff2aa4516885e34772c2044e3637dd25c16d5ad5f6bb1cd76efbd18638cc523c45c562529299b4d3c420c05c06dfb5f37b30af663db4be5b33f27a535e7ea74ccaed6c7396b940fffb7129318fab182b53089360d693ec230f696288246e6d349b46938e4cd991193fcdc3381bd909f7b18f2088337e66ecc351cea86c21f749c23cead7bdd5a6bc3218e00f9b9bf210c797cb9cc651f0e316e4dfb1ee4864378dfff5644fbe3427fc7e1d0fd3d447f8c56d3319bfb4a77de5dee26ed54f6e99ea1107e3b003cde71d65b39a86fd21c0e09a94aa2275ffd4fc8c30a823e845f78bd2c087aab35945bbb95b31587ac15fa562e183191315971e1d0b81299c42e1c0aab2d89760d87c451ec663774a95d8266f00556e7aeded7623c8a2b2a03855629edecec61e70e8d953aadca89d9da1775cfadea948a6fbf5a3bff6f65ab8f7d254498e6125ca9f9b58699757eede2f3eb53f5a1566836bda311ffa7d9f7bf74d3eaf6622e77de0786aa952833c36ad1b86a5e3637b05849bb238cb9431f67eed09ce93f77cbacd5ca2eeb17bb7e69a34a55524c9db255a65b3477a895aae19ff41fd57f5e433d67a0cee16753e87f184ff1ffdc0b4b1c36fe36be3d402aedb43d3d6d1adca036f23e6a34054ff19fc2fd67bf061b5ebb9b93a7a4d9f493bc6a6688767f4ea7bb8a23cb1b36378a73477fa09eb3d00b690efbf1f4bb2cb3b59e3bf4bb1dfae77d5de7a94a1c361d813efd75b9e3b03777e803b9cc22c1a168fb68b9197cadd74c3b15123a666f3c7ef8089f6dbec618c46a3488028b1f72b0b2450f3af8620b264820210a240c0116c5a88a0bb6d8a00825ba70394116b6272168e07b6261ca8133e5c0a1f8e60cf153e0d1032b56d084920eb4144d49225377024b0ab6bc9def5e7a1e47836ad6449b3372c723e0f6f7e2ab3fffad3a8c6dc7716f3dbf17cc1c25da58db23e0b6ee392882083a1491858e2d620aa4e7f095218aa0b23dc6767707c2e2eed6bdd57a7d7b623981975db678d063bdeebad72e0b67dddddddd6de8bcc684e0957f28f6f21f1d2c27c0a289bf8e8e8ea7492840d8a5ce1019ca971d3cbf178a1074f8628cf19526f9e27b2f0db6c5dcb4ad97b5526df0c2a3286628467c608432c407a088e0080a1213283ce40065890e58881863a493c5e6993db110c10544e2728e97a0e860ad4e96a511f890977240e28ed00326420eb79645136b75b2d476d06442d144a776a509969a124828b082082abb14bd282420624c952e6e70051731906ae21602a51584c0083d08813bce61b02f10b39bb74e0f908e2c3d3a7afce7fd1a2971fd7bf008d43377d9b3a98884bdf7ee3bb65e9cfb5dc27fefb5fbde2c9cfb9760df3cd22ca48e4e4f359242a6878e76467b745419fd2e05a2d192255decb267da544b6875b73744fa9322f1cdb79574c188c90d3c60f284c4040b0fbecc986c289208c196a82e8cc0c46c4e994a92f473ee6169db6c49db839193286c705a193c8295bca3ad8727dbcee91df86410e9c418b56834c5de1f6dad767cd157c838833c883922f74653ee0bc1e17a106188303e21ba6330ce5e2ebf068d449808c3e36b7c97714fba8ce3b8175b53870be2bbb111a7fd5ed5477dfaadea5823d20faa3850cae373d1f0c7e5386eac81d6e857a56f6291079146bcaf8303f0713d882dd604b78395b4ff7dd37f747c7c2bc4128cc1acff0bbf4f7db015ab7864895eebed13a27b46e69311a77d59cf7fef8b7e65b2d3d2e9632db51356ef63d1481445981d5fe3bbec3ee9b2fb4653681597884f91be95a8fa3a205541ad128da6e4baa3bed19479e36b0e9bfea49f97d00012104734d5a2b28081107c7490022e989ce860cb1520b2f0410f628a1044105004610a285b8a80022d9808411519bbe600c40f6c25145a8670c54a1460aeb0220301015f387182289290028a0e44296cb067054430451544cc008b0bac80a0884a4e1822229cd8a2052fb89283168c510db1bb15a4c04e77ff194eeadf121b0b0eaaec96d2bdf75e714f2c453fd8784f2c452458c2f41ec1038e2f26c2b647336badb563792467b14d5d6cb1ed0e336bad8e28b6c23d9bbab862aff6c442c40c76291ec1bfd2724eeb3e270c4fafb57a60c4b9a98fd5074be7fdd2ee4a29c55797dec33afab04c1fc6517b9128b14e6ba641d53ad1b6beb750daf72b3da1ec3e89dd25f74932edbe6ab5739ef7d36aefe7e78ddceebaef46233ba87e4e4fa01e98fbdd637cf1bd5f7a5f725fdaefde352c7b9cc55d18c4ee8bc42fb5991bd324c6b63920b76230df11f155494ace1e71363d3dedd9f4c4d32e5fb5a7e9074e76fdc1aedfe3d446cf2a8ca88000c02001198e04d51f3aabdf42f5994d7c5a5089edd9a44592164cb23082ce9e4d5948b1675316351d7b364571d1dab329aa073ef66c8a3a41940e2c31605450e09619a8988660edd984050f60126caeb8d102dbb3090c531398a4dd24f5f4aa71d1b45833329887a6278aaad252952a36a5304ea2d8d71fadd3a94f5ad63d3397c75943dd36e4ecfbf36dc8e9f604c067c49f6eee3f0e745dda9f250e1b06807dbf679775736ec4bfee394f985e9836379636fb97b75c7911cb3996f3bb793362977e130ec0df8bc88d65697f7676aca1ee5af7576cee2f5756a75d7fdc3b96442dc86c8709e966ddd35dadf03d43211c16763af1c3dd3314827d30c1acfb292405231a70d60752f29ea1109e2998e8f60c85b8971f84c0db33142243e9082c9f981a50f104b8672804860f28706282b04231e2220b0d547b86425c3c406249d46acf5008b5e2082d8a0062cc9859f7538b7b864264aae041114958a2648a7f27b32f10bbeffbc384ee4642612e2ca1b30ec90bde775f83058836f70498b34fc848ee1ed42a4f836117d6c00ff2f003a005a884ecd8c97ad429542300000000000316000018140e884442a12809b34892740714800f74964e58489f0983b1248c6114454108196388218600421031686868a80362c38cf62dfeec04d62ee8ae287b1cdbc2f81cd923d940061804abb7f1c1b1cf24906d237bf60ba5c55c3e83ce4a3f02bb6bc86ee24c7eae5d968b16c837faedcdd339865271366525defc5e92aa367290b9bfefd05127db89c9920ad5a61d4529dec40b8b770628a0c560b0f0d27d3c310221ff1f8d7edcbd7a9532c5d39a7e633ba53424a751852c7387c611827dde102f1d085d422d9e10a5118ee51c719f915e5a41f07148c853268f486f7e1750b5bed7967af9d1b65d874c6727249fdd8be65e7092e32382921307d6a58e957e0211583638ddf8f0f2e80ae111c7f734f0a2c6dcbbb5851144ebb1297722809a22887ce6da9c9407a03c8d8964acb6e89c5021cc27dac8aed7ec51a7d78da4ae0fdd0916d8fb15e0f44013606a65facfda0ca02741c81461456a7e2df002723a5a459e9dcd5e3ca05676587493837abfcce19d1daa7b1173fdd4bdc468bb4cdf891022d70f2d8b8a380e862a071a8157db8b687a4f3b7332bfc352d27d801ef45be0dca2a2aa7711977c5a749991fd38a6af65115be52770cd80048c04be011180f6ebf3d8cdfc3588828cfbc7e44165a0bf4614c5d3567e60f4a9603daa72c03c230fe1093ab4fac6f0ee9393f039e7db881989a85cace016e353787bbe06a3b6e9cf3f7d8d36c2953e9571e4d6da536ebc4531b9723eac97577636e2707d5e0457476b1d2b87736c8773533b979be19b07cb78e501de2a0166e7fde671d2109fb0e6820501bab84e212a5f82cdec0f0c8bdc86157efaa3fa9b8840dc8762b0331a06f1bca4e4f274c3fe1a98329af2b5766e43efaa03f01133fb7a981ad67cca52f89ba0690c41f92473f477e8839c046b0c3f81d709135abb6835f5a54ac54ab749d0044d4262085da65e435336732b857cc2ecac069caabeb11064e910a896b82ee71db72f4fa71007371690be6ffa4bc1d8d2b866fea997a66e4dc0ee2944462c6806fe1d8f726165bd874e3121ed58563c36d4bff601d1df98481ec79c70a5acca35aabab37d3a81fdafb3e6ceb68b5d70e7541cf626a1128e43da2631a335913b8799abc08842da4b7d3bb2e5efa595a92877cf7dc96cc993ba2948c886f2292199038e93ca68b3a09c4561b022d9555185b991a18de2f960a9602d2aee08f9620e5f227a257112dfd8e625eddd855d5f3bd199f47cd953d56017449241d734f70c267261f2ad581374de94f673af7a3dfa20e1bd2e74ed5c58df216083fad72114fd5a4b4719dd1032ed2550dc1b62207d596aa60a0dbb72a8d9f8b39c79fa5d900916c603e9b195e459e329affb05b4bc0d5294d30ff61b3164b35f3d3201d604d1d48c0024211002be333c086f27f658b77400261f7aea9f9917d422b31ef0dc7c3bf36a61d1a4b33e66383b8ac1a80dd96002fdd9256afe2c632b09a10cb0bcf44cb019215c5a73d7e408232e94e08c87987d18fbabc476e9a0914c708cf7a00f9580de2cd88423540d6f0d99f30e4a7617b03a2752c84ea4d80c15c3a9dbdc780fd385d5ac2533a8e482ac81aade70eaa31b6c1de33e9558211866872862ea1a7876b0ef243047b16d9f99843fc26d215e0c4976169e5b50737dbe5f26e05ecac4a031fc9fe73d029a7d831e863517cfc848e22644b050450d9c1eecbaa475ddabf1399668966a2ec8859dbaba78b33ac0c40ec08547dfdd3ad367d48afbc2fbb5f5a58a40afc1000d56354f52f651aa200f4a1c7a0bdd1d1eb7199289244dacf981e07c43411b513c2c52bd586a961d6e8f261ea8382a6312639993febfd80595720b8bf1664987250f771a68d713143d728ce9253438193a76f6d34f8af22adf3f531b943c9d0cddc889e71dcc3f74f1455e7d608c0d794f1d7a7bb2bf429a5ffb730470a8b3502cf211620606b5037d1b6a0bda16f21dd42ec8ed101ba8f69077a0b620ee43d8f4908a20d63c98145687db512a5ea06822084c5387f6e379d407e3f04b8ebf5e7c043ef367ae7d92aba9fc5dd2ca792641376d65e0d33a9dfef451cfbe572c56c2d47269c0ab2a745cb682c653ee450936c354bcfda1cd38371c81beebd8d6dc439800c2287b4dbf86ad0ce58a9ff0532699610ab5f4af65674893a4e515215a1468f26170738a049f98cc367697a15e7b6fde11a46de8c7212a3e4de12ec8192b445cf9bf6802eda55cce25a870ae9cc14b4afc23ca6d84535a29fb41cfa99ac87eb0482f054457ffd28f6a55014a5d2980205b8854df006ec9050ae91dd1d7aa697d1ae513d4e2c4bffbb55ae526c4d50560b67139c69f409988c637e2ff7f83234e3d1c6103a615e97d25d014f8d4de0d663442206ae893a6be9af551643719633095d81822b32b009f49c759880112f151dec780922bb59d2ce1ee246639e35fcff225defbe0e6e9fb82752759e38f7dd84da748607ff0d55b7af66ae8929fc66bd00282904f77855c681d87bde2f6b6d7922e6af1f3513b483c7eb1f61e34d9b8496edf3b00d8bb49b21cc32cb183a46335a41dc26ab7009ef4c8c7d52aa91a08ab8c387b921ab19ac4dd6bdb149b2c8bc6475ce6933863deb316ae5cd42471794690d3ebab46189e933c1d11c9ab8e622197bff48e8a911885095829b183a63547742ca7975653a745bd6c2cc67b36c59c406d74a725a2c5eea33c2dbcf9a1b7a4b665ea868797c46c0c0eb1bdaf96bc1022f6eeeba8d36bc8bfae085ee9c7d1f6a022560e9336298c97ccc5f0b5301690d57d03a3b7343bbd32d083858ecb6342022ab2c4906486a632e679529f34655640301b79963124300adc688b9df7b87f1024513df16dfa42e37c7a51549b512e7ccfcfeb0fec8dc6fbc11dcd7249640ed060852987c74be062d09e52a565fb8476740bf2a32623cdf83849df3f6ca4abbc532eb056f71a06711d8125e00b8ee1ac8318e1c8d9e81629af08a039551d0856d5b026bd449f9c0af48f89853192b691211ed0b0e86fbfecacf92b296626fa57ebfbe2f74c8f17b08b07c4d4b6ae8f6fc5d06b863b5d479cf54026c6623bd208c2d7b92c076514d44a651c272dde0ddd3b05fea70bef4647edbbc96c3600b7dd755f73ce8f406b44b81ed7a1b0ad41e9a0800292858dc00efb53fd8e9a9ef138deafaaba659f6aac9c50d34c142f64fde3455bf96d7e9b5aae01f68f10739451bac338453c2f214150c9ac7affbd5cf215f37f4b6fabfd7b5ce9caf62112f47aff56d7204a903b8ec3e275bf59a54191b5fd049ea21a92787b1ae40289f04448b600211fa930122aa91367ec8f9c1cb93d0ecf54dad9f89593112c8b68d371d59e8c1181166f144a052b174b107a81baabf024e25357d4aef5822b7af6067b7a04ab4facd49878b649993bf6ad6d1ee1971d1a4ac6408bf84a84276ce3b45f16265b6298bf4e8358e9266d593e868c5e5ae314b9c01b0a91f181665c3c1dcde73dd258e0a6606a38620006a874312ea06f58a3f5a664e698442773f1d6ca8769beff242dc706692cd77a2b60f10a22c025c2fd474dd617e70210b1c50b9c4742ce24590d68264ea059e4c30ff0229c0390628c1bf02ecaf5135f36da007992ab68633baa8b965fb8287d6aff254827bcd23785c6e0d017fa5b8db81bf62e3170e9e10abd6e799ea3b76979ebfeebff738582bbfc0b6e73c3392aca85fc7f195158579f4e786645c9fd51e8ac5fb7a4142d77701ab5a80d6da026846efe14e78c19bb4a8abfe8615ca9ae88713d1a13afe3a787d18530db8048b897e51e883525ad3c2b757f963f0c08c7a8c5ab07f1d9d93a10e061432b3f6e209beae18328d2ab9b6202d4861225939792626ae670673a827371a19a3ca9f566d695b2bac512cc49335e3255a5c3ee6d40c9ef93fb0d007a5cbb53f3bf3305a22b8a5249b18b6989ae30bda5310886d8e054c3c5c6807f41fbbea75af30190877fe5f91a8a8e3be2c91f47a4cf06af2441cf0a2edc70ce19ae2cf1ecdd57631d04b48781a4ec5e2a3692f60d593e57e5b168a6dbd673bd289604dba9045b7260e8fb2038caa9e072877059940b26f238ad9a4b5cb6441617bca8dab1518d63c3bff6092c5764c6c9ca648db91d7198734a57573c09461c93ccfeae01afa525b8aa18da4e445a0e53ede97da179d5a6acfd09add130b7d4901d4b1edb2b0e4972eedf85657de743ecf974409efa5f6d67ac657437270f87d403ed81352aae8135bc1e022c6740644c3b4d0f386a5278925ebf80feeef5d42345de430ee847f8f9cb94ff27172ff32cb6479e8df784047b4401238b5fe102324561cfd874884a405df77e5ad847d36cdfb4f73342859ab9dbf4fdf10db988d7ab5f20c06f347c05e6bd98689b6ee98a6bb435d20848dea14dbc7db2c76f5a95ccdca1e48fa3c62120c1334a9d932ee881056e42a97a04f649722940cb9de3b6d993d11498934ca4da12aef8fbb4d2f871a2e8e8e59ce0ad81c0af160e81fbe3ec0134299f076d7b29dcced8869c548054f09cd10084c3f2de9ba34ffbc3ffa33c091a74be55a3a8f81f8dad07afbebe1bf3c83fcb61efbb13987facc88387dc1167941f42b181fdc03e0b923a48b3874ebfd4c7321b6c78a7e7dcf4c70beaaf87e8202206af4b92efb858416f9830a6d8da5f5a8d9e6463866391de5124f8abafed98f32c9f9230d9a13ac82d4af5a7104235a1064ed30d65d100324b1b47ad0954e5431d697f8d2586720e4bcbd816a4ede8844e7aaac43368fdd96c2083e0f1672fa201a606936d866346ccaf9246f900d95b0a3cc74f3918d0e04fe629b3ee75d07872f9d28753ee3d0c71fdb20924c6f5c3d61990c5c85ce18a8824bf76cfd00ebdf8bb616510282289a326ae54de8b4e470478b0c3481eaa16e94c458d99ebde8bfbff7914752891544abd9095065828a23e7bb8f984f571a32e52717ea69596521e3a35445a7fa56e04152eed3ea2386675b21f81194f4563cc7c42868daabe74f0c647ed7f344c32d4840a3ad1b45cc36282183a647745a37fc0a23943ac77c85115397acf5aa33d20688286c3a8fd540c845a17dd7091da272ae6d743f46a519e6d5e48678d5dc93ead0fdfd3fadb911c64e0f9994456a4d1d8728218d3d4db29b727caf7d27bea67178a0143eb6266d19e77891fe411e3ff8aeb566513317c6a30ca1922fad81985e5a7d6e4b9cc6dc824715b8a9217aaa83520af156efbbf0f9491b8fe81aa35d041a0c7e09247c3997be31716b8b3f1d0d8ef593492660a59306ee7f02c1cc560edb0dd437c25cf1529f4c8faef0165e076beb84a017331380bd01313f228b0f7f88b696ee06666cbdbc29ffab4ede910bdc2dc8c86c77b4aa45357362de101eaa86feb72cbb5ae19a4563e647bcd75f4023f93990799b6c9fce225d18887cf5485e550ffb94c1573828690736832e488ed0a5ba7323f4c5453f40d10995f355b430a4901e59a53696331765e45c89e7f6bfaef6e4686bf2ff3d6aeba710b0a5568716c158ef6609f9c07a18565d83306956cb368bcccf3c3c248766e91194cf9f13e2fc8fc79556bef1e388ec78bfa43774efd91b58108597a59f282ce2584728176df95f3e406f124d3cae3abe9ab62f66374c4bed08f3d74b33fca6b45468853ac51b1447726f26ae7028866a9877b9be0897904045bc6a67db952fd0aaa600c9809678468c70080e2cb80d72091bd9fe6fda969f257d41139e0160ba0de178a68f270b68c5ced59d6182d65848e4107c1c854da7d450c5ed416027ae1d7f99edd9e4bd0aa62d552259cdd51528f3a3d2ed75fa9510eeaa8a694782f0dbd1592cae7ba127812070dbc1e2ba2cd48fe2a453598b4f272f3c5fdc887f86ae821c8f7ea7ab8743cbcca28194741fb55062be199ec676678745ceb5409f6df647f493af38f53996227ceb25a9588472fc4ba815220d0bfc8ae68fb39b500848547e14bde8d2bea772bc2a39a8f8e2cd1315f0a7689c530fe944455f9d0be539da22ca44641732b05149cd2804851bd7ee9deeb51274cb72e49f41d6a3e739f4c6686ce672a63547433e59c4c3318ddaaa51cf5df2723bdc33d56186f76dc784304c6b5621dc81da56c21664495b47088bc4bcb59c5dca8c2ef9ec64c9dd3474d023166272f194e76ea9940aa2a165aaa584c147ce7a71e36d37e3bce3f90365b648c6b213d7d49aa8c7ebe91ab3a7d528d2c4c38f4b38a54228dd5a7137dd484038d9e917721de8c425c7d9e1675fa5e58d5679babe66f6a8e54dc8a86c89a3df135439016d39a8c4f6e2a1bbd7ec83d43f43bfafeb221f8a400ee8540ad9176d9211ffffdbf4884a45870be897e6442081493f50d01d286502ca432c21045c554863821234235cd109f025f1e076deaf9ff873cb6522390c8b0c87b9b90e6ec29a5e1f5b8c5352f859907923e457528bc899d2e22a4140b765517ad393aea4983f88b948642792652cb14f4d0d6b8e4ca4902d04405861b4ccd012de4cb95054c6b905125e8459c947a1d6679cb2a5ef8eeae13a4de2164a1cd003c46d28d16b83cc3490144cc676f5de2df75f0e133439a6f2720b88aca82a2fd0ab1d55446b43eaf080d97619aac2ff124595b447e37c487b148170a84cf71db6b04a192dcab81027a8a1d0199e77442042186cf2ddb361e27e8966bef577bae34144184fe610fca8403f38930168035abc0db052f5780c38fb5e8025c65c7679e8b86c173232c6910cc8f4714782c100040baf1ad57d9602b34f87d9166af450112e5430f4a5f6a462cf7205238576083ba70a42cd3c9de8966b7fd3e4c1fc5d505cd1f3935f08849ade84b2ce056620761c35411f1c255039a40a2b702dbfcb2a177240f51507cb9346f9b3a8257f7ade0891118406efb705e6ad07d2d05b154b8f1e1dbb0b36c1f129629d5ac91ee2e11570aec509d3f091d5d68aba187cec3592e6b2fd02b2d40538505bd441bc664df822bc629f85f1d5f0b964850429a0fc90a34d40c5c7a1e17b8d3c2dc7a32029ea162087dcae00d3a077f0bfab547fa6f69f3e0b691e2322bedb61dad989da00c6ded4b620039b338beaf31cecaa1ad44773e6589b94d8e8a6f62c1997857028af74a63d46935f0b86779b3e421448ab8ae3262ecbf53d74a34f781e897e355e929fc532c1154f4133839ab6a8c8cd3601612e6495e60923022b9172d3efd1c4d7b44ff35ee63a46c6702004075c99ba5964fdd74993dd71a94604246c0c3a98e2131ed41240bf1c11d12fe8047593bcd12180a581195dd20b8c4c5b02f2d8161f72fbcf395b38e94da9c46f7fe9f69913992809aa3a745d881f67035a2c9098ee33a888d0f473b19f3f0ed970385fd2e1c83726dda2654fff7ef5252700c9254533666fa626d74732193f51e1449f27caade82b0520766808f290f1e67b4f4e222229f07fecd4cfccdbdaa04a8980c9b4f5751077c6269869ed077264e0cff72bbdcdca6dc7fbffcc4e2c18a25bb29fc74920be0d4be317a6e13c66c344eea2c97ebe11ee5a0ff0056e7d19b9631c3373f82c9911d38761effaee3839e70e4b55962a4d55ed8be5b444c06983aa4be71a5900ebb2bc826cb222f345d29f7b1763759f15b8fb29a7e6f78f3480469e154a7b28cef1c2f95cf84b7dc864b6016a514320b941953f7005654a48b3e13126f0ad07516d744691875363379b3b82fc8103ff2d0cce3e73070b345fa2937411f0c3aebd4941e635f27049d5a88b9e3f6329f7400eb26a99bd8135bafad6345b15fae1359f3af6048468cc151a6e89a1ab3a42429b3720960feebc85ffec0996362acbca3b60eacfca262379b808c26a94a7885785a3e436500a3136c7df8d37c8cae719c53ea5eddb8737b49a6deba1c2d9e0a12763d6247e798ee72475c031b33edbe34c849c15e3aca8b038710d71a429de362a3bedef0318c5e26e3ae9ac898d441e35c01be4fa20c120d748d91f15406ad3f9affe90b38455d384b70a01329d80daac29ee7e38dbd798b07b4667c7e916e1a10225d087100a599177f04dd220fe979a0457fce738d251f84e8f46e3f49b26a0258959029b14136c8a23bc57c36a5851081632aa184ca51e6088f07e5fad92ac9062daec7b5259f7cfcd9b1c25f40fad3545b3c22dd0c877ce914a8b5c3fd38cb1842edb149ea89df6da64112df2038d1d6ccd01d759a357ae0a80bd2c48787d07d85f030fd581f8f69aa8ff9e1cfef03a71e6e2f3b3ac947e96bfa925bc3b5874891f05be9d5d255f1d9e889aa440d9c6ff2ea484b39c83f44d34b996cde512db6e1d8cedfd32d12a086d7419fbd755cee5ae046f8968cc21fe2b87f542ae1859d8f8d22bae5407497e7c224f90b727fbef344f1ea76b53025dbb3701aa2a4dd5c2edd12fc55b4ec3dc16ea30818407c9d3179f7ea7b1603f5918e02fa99b8663be73736d91ef56621140c81f4e3c79611d87a054410eafd30cb8ad2eec45d46c371fee3cf2712860db891646d30ee57504cc70dd3a139ca57b1980813fab68d275a6df41c3064a31ec82bf26f1d6920724f8dc53cb1dcf6642d00d89208009aa89b6461b314417771cb65be52a0cd79646b85eb8904bfc85610f05dcedead7b836a443b856da36d9a0c3a4290936da301d72ad28fb0700b31c766d8d674fd5d2bd03f963021f55e170373e8081778169d8b43b150601028aab6853048f3d71f888aa7f0b632490e1fbe5168d6214c8900ea252b00ae92802608d949d81691fd0b6020c296b4c3057ccecce2fc7666b6d7c4a2850d4f0155f98e47c17557232951338ca8f5252d11b1afded11259c24ea8feb847e94d269222854830447d33a3a9a8e13f34b5bd4e9e608a81d2579650b2f8f5ed42a0f78d4f02fb0bc05334aeffe695c6d1e56af617ec22ec2ec30bc07cac2d25b8943a7521ac3370ab044a735b124a9314ded92f08721fe98120e714eab17fcc832a5b080ed54d68de776df2224298de6800aa62332fc0e4eacb220f04a9fc010418dce02a38bb32fda9e54c137d0fdfd8c5caee9dbea687649dad2a59f7c2f6a7aef82029d183320e6ebadd1fd3b071a391cd75451991bda52fdb5ba8beafb7df7239cc11d95b9e687c425f079944286e4ac377b7e6e9525656c4274b8349421ea3dd9b41b84f2651b866b1b985195000b2f8906a67a3a2790d8727f51316cecfd55ce3531ba89980c9f07270bb2d42c8274584c7f186d1b072d04d586769e0af5533d101aba263593d9ce85287dbfe34e5ec67614d01ae092ebed5f46ff88ebafa131d12aeab7faf20e2838590398fe3c7cd4f5545ccd928d7458ea429d5e0329de387a3c1167b217a16cf49010029c5a313b8d95bd9635621e6f8bf7d78be89606413ed4b01f3967b35cd514cc585e81586f232afc328ebca1487f71ca2698672992bca766e29c4e5d586433381ad9987083b69b1d5948c90c1e6be07b64249ff1b90f55b62dfbb1cff0d7239e98b36843ba8b906b2479762e54d20ad2050363c5b62237a825b1669689496d77a6ea14c196f9d3cdb530a73adb430cb122c9c5dd8931d7a55b16d308b3a6288e715cb1900827ad4658512ef7d07d73a360c68161f98b3d79049f96473c06be5b9096bcea358e636663462bb0d6f427ccec28557c2b5e67f91f11f3f41466f8c42b30d2299ef03fb6b77fbe88dc22c379c4f29e360d43cfa70be8f87bf6e46662fc281efe4cdfaba3f7864c387c479c583a5e3b3211662e88d8a6fab0b3b20017f7558a3a3629095c437cf63a1c455d7e5d0fae5ad6a0ad388f8b6b054044f43269625c330bfb6896f7e35f797c5927b38638527dc4e3b3c7739714bbfac572f4601df68ae3449bbe9a42172a4f436c2690d5db508b7bf67285ff2d178f8ae073ba3574c685fc0a09654f287854003eba4a518b905f374e7c322b4f14ca81e6384f120f0d569ca68d2ca1752e3753d30ca9885b716c01b7a0768b12555441ac78fad7f989fbd8f192de24a8e6058d4447080dea1ca878fbe7922beb78f0bab4daf5afe57dd0142487ca85b93ead51e9cb46f7586c3d623fbf9f63713ad19c006458c0fdababc56a191b42a7f49941048d49bee24d5b78af8ed701f775947b19112bb1bc412afb341e20ecd4790ecb714201d7f1086564a2f608aa3426572457f53b4eb7e4d6120a86e8fdf574749ac5c02d9dce6bcce3a8e4c57ced6bc1fd05458b0b8de479063d330d2d5d149c71fd420168b8227d501715aeda669427ed8e09ba2b2792ccdc14faaa220b8a48b1cb0310109a4126829b56de65a9d3e3654d8206e2f6089c7ba8a2dda76a1e1d0b2f749ba889c584775d5306e98a9083840f3d410806d80c09de758b1790a96548395b79e0b02ebd15d5e383ee83e1070d1cc72390c1550ac4913428bf31e63623391a75a1396eb628e60ce59ae2dcd6e8eb1feee9bd7ea10ca2f1f1e6ccd9617a40bec31710d7196a4ddd8df209dc1328d1280c6bd7f1050cb55303d5f8b318124f3f33981d642b90082bb77b3cda3abbf91916b0413e1e4823d02f7268fa264790a8053140cc259e681c98836bcff75e903501852b822c09db56dff84aa58f579efdf335d58f62d269fda21501c63b74eafcf0b1212086bbc738b9f2dfb05d8240b4935471ce1bc45c50c628133e0afb63afa013bd65b433ec0c8ec594f5b6c5955b83f00c655dc28bf0e9dbc05976a7f2266deac1eb81dd9b5cf7f2e28ae6083122b22715710fa67f1e43d92de2e12895c11f0841910e9b99e19670473e663fdaad5f37899dae5a1332ba15227cc1f277b9a9ab70fc0515cb0fcea742b88384aaa7db371347d8aa814e48a8d97515dd219e45c5205b64eda0a65824366481a983d2645932e16f0a23f3bbd5a89cfbff89396e6cce086a28d816a3cc90ae7b0fc3d9ced11fbe1e51f0bfc5d5622a6f8a68200b72a691bcbd216ec919d79caca09518e00153819ae2900e2a034b74b63106c6ab583598bdafe95209082835f3f753f139a18595f40c10d141c711193127669535d2092478ec8769d54c2e3135e95f46be0fbe8e4a30c1c3923041e9528d491f32ce28f130a8f8641ac1ef91d7ffc5d3693b0f0e58704dd435a9e48947b429eaa4aa4515fd8d96860b224ed6233a8213830a7ef9bf9354ad366b132e4c50f3a1a92c207b0e4407b880b57a0af5fca2189b24193f764a73614cfc8587ad52c08b455fa8a0d3a1dccf35b7ff03dd5cff3448c44e96097d4da6ac4620d6315ace47f844aff0191dde447ca03fc56b8f172de48bfadc42287bfa1b7157d0d4331bb60ca6b03df8fea3f54ef43f577d4f71a3510f13fcd69e41cb493770b78e16c937110e8e51819f57e38c7e8f3e863a749bd350571fb01eb9c4371decc4ed2f379d0664cde91d78c0aca37d916b265f74a420fb073014d1878bd42d13ff5da5eff68afd7d1be50cfa25eeebacd216447a8854d709393f55740d231612df2746ee1afc93661eda0233c636e20257b12a07baf09aa784535e283999907c83a63c211b589e941cd3d302cd0bdb7d8ccab63b7de30d68caf1a129e9421ce892019a4fb863791a433261ce011c99a953771b461d4886eefe2dd7d87ad0cd77d468960f71dadd3e9d31dcc20d83bcc0b02e0c8b9d38db7ed8d9a1aeead5c8811025d91bd3ca418f803ec9c553c06dedea192f1bc8f0ab1af21b12ac32d1ab93cdcd1ebe341b97871be3256190773429134812e0eea4f688e24ce1edb7d22135f3e7ac9e8fdd4e989e553a23fd292f4769397d09eac5907428fea74533ca6d964364ed6ab75198cd05302b2cbd010b60df2b0ac0a941b55a81a05d2458350093369a0d6b0ed5ec9d109751aeb48cf05cc56de57cbcc1fd42fbada819771e1c98864e8f54754e35d33f59372eba328717307b845e61fbd472fe5dc96629c5e44c5a3a36c8bffcef13de450c0fb330a65d9c063223282aa65d331fbf1067c01e020bb861e6552b5086395e214251176cf0d55e6b84ce1979902c0110a9fb2089015abd733b1f8b587071b29176a0fcb87f466bbbae32fb868f6025c8e9c2fd82454ee61885708104b51597546634530074066583d7f337f37b59ff2ec05783b3b9484ab1d626704361dcedcb982160f6a3b978789b48d9a9d7151b1609847d21fc9ef898d53e75eef3f6a3cd6192d101596abb5a4a1b7f2e1a9ded4544f10a73fc034d233e19e039ccbc62f294caeeb7efab74b474f8d55181c36fcfe73aa53502971a0ab4c9599626e088ac63d6abb0eb33f5de106b8becab07927642c5d648057c20884aa054078e9161048c3d99e0167de907677da295a678ea2e7fbcb8f9a75a9587b4b8aadbecc4177ef31f9bb88e9c173bc11214b3ce30bd445bafb91a2e5a0d94eec46e88e8ef6049de6802af043cf975b751db92f9e3945092d60b4386c1b2109ad18b271674f1ef70da95dda50ac597423a3e652d83d69340dc378f148e9220c71c7218c66e941c92f01641227d6bd9ad9b3bcc3b8eb2ab07d4f2bf2e682a71d14b5c9beed475081977d8e88ec9d472e5604c0883e289fe96cab097301bfa00c9e8074264a965dfb1e17e5043700dbf2662e0df8b902aff0b1d029257d9924e0777210a35cd79496482f84f03002094e0e1c28ebe0fe0dab6fcc9943cc9d760c8b5232f09d416a01a11b14d0e43f88aeb84d20471eeeee0f55ed3d5ec3690669cdf95bb21d3143a0ef55892d0e4bf50ada37beffd68c78567c2fd2d03d9904221870502dd5d2ee21a18a2b2d1de3b16704d26aae5b2968602c6747c0a579a2b4e3a35b29f7e6adb90ec4fd88d2a5613c9eb14da1aaf3136e4c9bd3d9cf97a08f9f017f29c35425da4f7db30be9a5bd3e9efcd2f6686ae224190553d7c2b785eefa1e539317c4cbc79e4509cca6be09eff7e9b46c91be6f2acbe70571a944d6b539baae871e53c080024fe186a4c611fcbbd2d0a12e3660ddaaf1ccb2a8c0e029529fac5bd25c0905aa2b0ac12482022d12188615016247800377c403550bde4ea870077258979e0a6a12c950f391555ce2e2bc10241ffbb7bb1668e0d65d270d4d70cc970d4be202d3e9dfd461a64b2fc3577c7866e4d2213b35d252909616f929c84a8774cac8a5405a2ad2a7219516f2a91d59996dc5a26b646307f8ec5a20fb7b55ad955780bb4bfe70331e8cda0adc57d49fb803cc0f08226ed042c90780700f20efb916c4e990fa4ebac10b528b38c0373bc5f81f9cb3548b290f6cb75b7d3235de8e1506033759ef032843e7aca700536268bc31464aed4303c5ffa148f16c61fc77f89612687f5183b92efb422f76023eff7e41daa26b69d61387aff2918bc9aadce26acb1a59da4dfdb3ba353c97d4e5dd3632d68f25b27f5920554e2adcee6dd5c273f2577df9857750d9b714cfc5a26c4ed1e19bb963ee385a9b09552a09983b54e452a8216ee8ff2ea83e07f7516b28703bf3f19400ad4b85f98ee01b83c111469ff42f4e18a42e40801bcef1c9255ccfea23300c0b37fd1e892ca2186b526188f98a53e2cc39cc3ec4892adfbcf31f619adadff1da4e839e4b9c378ed88cfe0d69f19bf969685429676f2e3dbef30612e5b9745822a8533214b1231712a40270710d99b08b83fbf645b29b53592c08edddffb278c89fe80391151116d91fdbff08fa5ce2a768ae7b3bc1b5920a543d65b6f8d02c2695ffb978ba9256a78c92377c8ed9ec70dd1fd6e92b0125a1955729f7462ef303e8bd79f829699c9f25eb0d4fcae83a1a0ed4de4d7ef6dede2a82f6b931c5da9d09c34b5592f03e4a662d107ce27911e4430baeef1d909845d659d4281f3ba26eabc043951f97c478bcea7131998f51be4bd54c4e743e0b1294bf363bdced9d389cdd7bede86bd8e515601a70ab8c72ff3aa5725c7b7dde4906168c4851cc0e27511e6f70278edc1b9197210b944a38c4aca5bda9c60a39def30b6a167148662e04ba5b73cb7381fbcb3b259a85df96f835364f15c91a85b0fa3784c72c27e59496408974f76d6b0df109f3a27fc77fa09ec776244df3aa1b98d33f4aaacaf8a8620869b6b797e43af65ca523bdc649c008d8ff4abf83883b60388a41cf0dacf70ce9e74201e03352a94c1b9d510b213e56c24cc1acd987242ef153a3abaa849165abbb2c469b97bcc9603fe630f0652636566ae4763576ecc053eaa25601975fbce0aeec538647839d5a3bf6cd78ea5ec37cbdd55957440f69bc2edf6ff523b3b9858f9905617d15de61e0a3232a060bc6027c8cd504498da7424ef5d393771f3c75043474ecea4bf5b56ceb8d73ec3242aa130fb54a973e905b555c6a88aeda7faa2619c7425fa39a64f06fbd72d7999abc58b1d1906545740dba912c6fcab9b40d7cf764303ff4309f13d2c7f938d41760cdaa08c0c473f4dd1b5d1abcb047f1100b658d9efc5a8d635af96ab329a03d5a7c0fd185c926f2a1a19461c432dfaebb010a47c753a3d67a374361288d8fe97e061c8066368bdb562f1af686344fa39b9071d9844d624de9ff93e293c0fb3b2ef64a1cb1c8423064a69b6c38a589625a2161a72c4bbd1cbe87d2a8a9ae02913cba600160db18ec286e4bdb15d0a8e19a50150719469f0c8da5276f3ab7e1e83156bc79add8347a99b5d2dc9c7dc1092b35bb8c912351086e28f4cf040373e2228cd6a85580479225ca12f7efbf225dd1a068afb8684b37bb84906a3fb0799666311b01213c3e8bbd17ad4ff719adec5026463ea3d63ef32e78d3378401ea5f210291e5d8e73f2b5e1a411e1a6da6afc9ed994c2d96f6c12b14cb5b4c973249c5529f1049f2040b23a6073fa55820325c6015d77f2751ddaa259d18cb7477c72d8e5b4925ba1832130d503585233c638b3fd5c4c89a770914ed21dccea5273199798adc8163c7eddb02596028d7f68dc19bbce0c1f7d94d61e7959373f853f0b8f84fec5173d9e32ec7ac54054165a445e1341e1f86947cb7f003245743bc77310f85c4218b6bc6ba2a24365b33c6c6c9a9a6f31cf4c15841c8e15a4e1f8415382d78626d9466b804dd787a5d1dafd33cf4d00338fa1fd278f3cd396ceeda161883001cd739ccfa07308453fc2816a1ae14474b42dd8ee9bdd7abf9ae445076d605cae8474335adcc1089d3b5bde5e9d546b456cece76edcb11e202e47d07a63cad38427e7f37c7573f8c1009f61c4b32528b7b7f2b9bde72477fd31f0daaf22da5481270f877aaea41859a09fc8f4bcf59043f39ae6ace91e9178ae03ab25c0dc58970c7f7711fc525c58c08109f0743cd696e04fe9074a7f48393e05c423f219ca3864c536fa2c1819ca0b5a12b970e2b2a30abef9f139ef18fa6338d50a7f25c54fa425b1a7b1be65ff3eb7f5b2d4ec3cce1926a3cb5871a53911323a2dfb00aeb17a46bed06f3bc90d32011c8b6e946824aea87ece2ae471cdc2940941494e5d939dc9fee80789f193f331e4cda9a8a7c0fcd9df4c7615f56746cb7dabc39d7bf609e9285ba0843ef14f170432e9fa87932680639cf98869046d213fd345fda5cc425773a17c02bf8a866fb85361c3ac5a0b32fe70e541faaa97de9431865bf4a8323ff70a2d5ea554dc50c96ae58e4009662718c206eff223046f4b3a586909110288f17f968b0fe6df5aff22d937a06e49694a4adcc041da614f8a65a0f3f60c34a914a6ceb9b55cae040dc09afebf80eb95760e579aff0c646c37b07723ef3eadcfbe64a240850d34e5ef037b84c40aaf51051d4f1650753212fbec42b96692a76c1233194e0bed1fd5447b01121aef92cfa4e20511ceacbee4321ee7df2095323b4b2a43684a25b94aa2441c90247705c749fe9dc849a5c76d35a42839a75a8dadf169cc0ede7230acf54422d28b429b2496d1923cf3d4bbc0fd54da3ac70c3520471ef92dbda7d3c2ef7725c244a3707af58419ce5e3e5e899b49944c5d0f92988607b2c1450c40b2814a0a8c327f875a6275100c30523e4f71f4df06c6132ee32f139e150ce3881409a60bcdc57a9604efda03c84084e007cbdc31262a916d6ce9bfe19d0e2203285d6871614f28e905265c1ca1d4eae62472c9f0f3e97168091143f6dd41d217aca4dbf3753b9110a831137ed2ad00d3706cc0090bd785e43fa6c2ac5bb7723f5befd3d00e9796c4e3665f06e088d8887ece6ab7be3c3cd9cbccf6e3193910c6c6f808dd2ffcbc5aacff7b67b305e2f30bcbc67bb7d8e3cbf43229248b52245b4f0366a01d285a0d92a96a5e599ca29d2cf0c6677a46d9baf950ff29068b9f3aee0614261929ee367ada836a7b89303b8c2f4710d0ade5e0ebdf91626ddb070ffdab17c5cacc528e8702653d52c4d1be96180475e55bd2571ab52fd9501e89eadbb35ff12068e0c60de145b863eca4d231ec1c05065634b6d7bb234c591be57996d414cf3a2dc6e5c2f0b8dc234ce2f197ade6e9d6f9e2d5c9125a9be5fcb59447358a0b005f36168e2557f064f8ae63f1b2f0ec6872e9f5f26ecbf9c81b092b080083eab678250dc734b64d0ae5d0b8d57c0221dbbb5b6bdef9f3c898a841cba8a09148fe833332f7807ff928dde30bc9ae178d69b4a09cf0cd4c187724fd8d733a80d0db613d3e27abe6fccb5ad06e2b037a90f894956169176051409d6965f2316816ed057f69fe2d51e5028aa445b2357c4fa05982dd538bdf8a3061c0383df88c8bb06b50c1f955272df4ce785cde8bf266d7aabfe06d7bdb4a2d26e4cae874035f820126ad91196c4a8ed413edc1907b8b1f7b0dc7ac65e7a679ac60ce8d2033781b34cb98025dbc7985f648265dc432a4baf9025e5a300f64e9c6ef10d6be2a73bf617cc00176299ad461c1e43be22673ef750fb8bcaa2a539539bb107e0307edb98002df8fc87aef1df1c1ded41b849d6b9852f47ff4b4d545bd9d808237200804ea4662c37dd5bff5c5c37ae83d60b401377719c92b32629b3f9a65044d9599b94b1492f439e93caaa4102093f8ca5a92cad3e200309a709e3c4d6020c52e2dc8a32b333fee1ad10b11aa9e5d8b726901b2fe2051a8f0ee1436f65b48111b74ffcf50b55198d139278ba9523be3b4c228c94894c5a22fe994a31148e7a85a43bfca06dabe3073e28db2620702660750d554de5581c8b70fd381896731ae16267ddfc09b628da179ea1d670a7659f0927f75c6fad0a67e21af8aa072958b10c8f9e9e4362dff7f547fcd1699594c5a94254336aed05b6afe24e5058a0e2bd1b252f171fef37236e0aae53deb2ac0bb4b4012f0785e8d8ee9e93a655a539bd7b82ce6719b35977d3f01c02be9080158fe59964f93e5dace4a54becbf22d5ae8de272189f43f85e0817b217023ed20c741a612f09a6b30fccb5a1dac16ec6ca8ad809cfa554cccc75948e54d077e6010585cbbd698ecf1607079a1b8825e8747486a8558632382e019e6f101a8ea8c0006adac6b81d2e609b621bc4b07cb50a71eb4923bf36d830fdc9713481a917af5d8d7f25365b32a8d6c4a1c14d1f6e5f88c3ca94d12b3c44dee3e34f0e0473c468a0475588f692541e2159ec25daad2df3246fe334dbdcb01f47d6476178b18c98bbd9814cc9ea21274b847bf6c175db0ed29176d0671f1821102aa2d58ac01b61e3323c39b7a3d95f081a228ca22ddb0c7602a1380182438cf1997f2050b52c15102c90673ebc4f9281d809e4119914d36930517867f707f38b9d968d980092dd153bdaff9c3b4bd8746a37563b0c340b6872ad40b232128937249284a097a49877cc542f3d2030f6c538986009197da440019d3567b222ee94c72d2942d023f07a45dc497ab8cc22fb3c1f42826cda7b241bd35648a895859b7a9090e792e04ea890ae6214117de01644eceb91087c836c896bf4973c2d8178c4a30018af586f50a03a9e5a1613de64e4b36fde2471c847f95f09d0778253a44dc9545f6125b2ad80c5546fc9263fdefcb482ada2d2cf22f0500b4b53238f2a5b24aeb3d30986897cb554bbecfcaf50207dd3860b5e99cc6265d6803e364961892c040271d38b5949608c35452450256a8a2eedd636c3ef84e982e05155a0782e135c31eba651ab3aa6d6b7ee94a2e2360181e3d8beaa94315c7c65183c48c89209662134730c684323b94727a728b1f575a5da40be1d4681af0d3330f10f45dde1a2acd0f9fb120fb636007fdb2b3b2034c7044e59e82a25bd664004164981d738816b0eef530308c7bcd4ef85cd5c57b4828143581b8939613318816f3a151126362cb99c29fd61e924211b8a80256d19806c2989da632c795a813c08ac7199b0e3e1ae96f23233bf2e335cc704862fb6c2fcfa02449a1e630efc87c12eeaef349a0244b98db62510b4dfb169fa8a3a5fd5952f7de6870bec39e07239eaa4bb82958870fb1198818a730fa9560708b5b05c555f5c9f59657e7843a556dd0328fcd5358af513a3034e66f969edfd5c33717417e195265be52983517d38f9ed022c6bdf3dc4ca93d510fcd8af1db4dbabbe0e0da255224baf887b09b123d8dc8e8afd95f52b9390b531f3b361fba16881205b4c775cf8d20c092fa084ecdca0091fd622eaa659234dfa680aefe6122d8ee448386c31fa22efaf16c1c9854596277965fc4f1612ac0ab950271854cc7f0335ddeacf3e10f7ebbdb52a1f0256896c7508127ed687c72e1e5c8e54d5fb9da63a96039623191aaadda9404d3481bfafafd11700ef91de30f9c65227b2db2b3d96bc71403d859346da0beeda9e8a231021b5e887e1ff6788949546712cbf9918682659166ace627c30ec9edf7adc8e5fb9df42d80960a9fb8b8461d2daa134782a94b4bc7b01afda1b949b655e449ae66052eb3b0237f1ec585f4d65f0ddfcdc35af695e061ff78cb40d4af326107338c190b7fcaebc255795a90a3f3c02476a94a66106209edcd06f543162ae40aab72b89dbf78a8a1d322e3c4f28cdd7f523eccb412d5177065f790cfcd1154a738bca1a2733fbae6bc5a1c52c9881a7931f7657cdd56ca978a24308595891b46a51ba2eb1ab7a2de09bd129cb9900f6cd9c5e1765ce9b12e9d3419fd779589a8a15829599b1eeb159c0880693e6f5a1659b0ddf2c3eac49834e7f0fbbac08789e836422e9249a34e73b4e192d0c2ffb55bb57b2ead2a4a99ea7865f2ec85cdbdc90a7c742322285c70f7e3e515a90696b17b5d53169c85e30a42b6043360c1620a8647ada1f914871c2631a2a4818a071368ce07bbd9bd79708dc72d861f2638da1ce5c578b7564bfbc02844f2699bb798dce4dfc2227932496967923dc8e591473cd10fadf67eca862cfc818f2df8689905da649a17fab023ea4b367f15b46caa24c62bbd3f0c20a28aeddbe2fcaeef2bdec528065b4136a2f45f5995744e03f7e8bf2ba1e86e4d32622834fe1be5977aba105793d2781e832bbf819dc26cf2c2b880cace60f77aa06a49c8c7255bc3b10e19d7d551c4d0f37830869588220e976879b2ea4470794eb3d23ac4f1a6aee94aaffa9e839519d36c5b615d179804cca7692e815cbfc6043463fb3d823091121ab62195cd303d3495523816408eaeb74c6f9bed99404e1ee6555b048169542530aa18e56e5778764cf637621ecd6dab41eac6414dc28a0ba950911695d630ac033403b0282c18f1265284444984d8844fe9ed881fda4d6e0882113b0d678f095b79c7d95c90fda637b3142cded6e306331a52713ee5e240dfbcfed4f90d43af6fbd1ab881c02234d05fbb0ba4fc8a435f1b89a489421b1bccd8c7cc5bc2404b53edaa59a948e6e113401114f1ee3b4e6b8203e1ddcae163e997465b8291fb933bda52eade31556f3a92a19a75efbcff66bcc4477e0ea0ac531120aca5311741ae27c7b308b7ec0fca03e3d9546003d9dda5bd0083128629d4373259dd32422df8142c6508ef50f8c95312746a8292510e79cc9224a3c28c1fe1b464d8f2a7d4fea8b3e0e518a5ca178fb8dcc443372a1def353df5a8e9e92c122c41de821f373cbed9048add243b78f1d9131e40f6fded28ff0c96a8f7cd9133ac3d1330ad52adf2bc710aceadfa4345682dd0c217fe191cb11e59391b7c339909eec2535a30b1894fd788c8ab6498a63f9e60f2ea9f96eb89fc55ca081dbbf97c51a3bae91a6762378c75f30b709ffe53caf2694b26ac225f32ae805681de17dc64cfe32e5e336ba7ef03538e798f48ce5be2a3d6e642f0f7377668d8fc13a57177722df92bde806a96075d9c8202420d29f1266658c5dbd0bbd0b742236dc75a812837084292792559988501ae79033f2e176398fd4214ee4761a033e268db64217f8e51e80974688d967f2c599278334cb9a48eb80eb744d178dcbefce69222261913061859439975ff3b4dca61d7998c5f8ebd49e9f6c72769b0a5b8f936e0041a9024fc6a9d7912927eaedd91ca0947cb8a349caa8084363482341d224f7ac32446cdba8c8761025948998721697f2580c52d73b9ac6d4453b756adb319153b78f89f9d0dae5418624fcfa9d9848a3fa10646da88e9aabdf86d3f78fcfa9467de7d5946fc89dbe0d3f77453bb9537539bd21dc614559571e7fdd9a1719a7aa81e2c04420ba31c7583446ba75dddcd4c177ff6a77d85f61125e226ddb606742d45d0a8a94416ddaace01d65afdabe38c5db2d49853d9b3bbf7d241a7355b20877e819c035d66b8526de9c59226565559d432c3ca459872347e4b386ac7747bbb11af0da648b06cef1a2d84f7fe6856f3420c89f03b674c64744b88c8c53ef9e0ed9a1eea1ac3b3bf3e9d93ad5e506664466fa7a2c9c8170d95eab0309d9ad8d8e316cc97224875aab604e95cbcd00f91e19a71ad7a830da44c31381e229107a75103aeb33ec0435049520361e095df30d562642e3c09c10d4db89da5df78b4d6eb1ad975c0b0e7195acd3c110123b587583a245a75980e37521a071e923e354e6f2401a8364c191dbf351f14f7cccce93716ab75728d4c7621853c9e099e6ec76f7aaea16cb6706ac754aab577855c28143159d7df7236f5447a824dd2265495b094509abe423493025354fd0bccaa500d2d9ac21d1447d277a743fd9d427ea492aa9ac62a5ddaab730f1c21971fb040cd9b51731e97811cde6f668f03c8146f9c40f0ed7dd1133370d7164fd5435ff9ee255f9aeeb2af4051bed2baa541d78566ec1909270b3fdc0092a30957dcc6aa54a8392e9ff56370a24527d99dd54f3737722f7de20c256d258ba138a21e44624d3570617d1c287aecdc4446ddb50bb4704cef8b19de2ec6c0c278b4dbb52dd88e45c2fcfa85acd32c1c0859fb57d9e6574c1611b516990f000575fb9f10bb11e32687c25e6a404f9b97cc2839c9d52c057768d515635bba34de96dd1b276d63b22d23a0365ad112edb7a16f65b13448ceb847e9da6719e013f1ded7c7bc771de235fc1ee2f604db305aa74146a500dbcd10d1b8d56cfc9a6d74182bc8e889d8c50cae717186601d2ea1f33998a024fa4d9489aada9398a043f44f14c36e16c992f52c1120a044fc90193cd5b7edc2fad087d3010542bac273ea0e73dd5092c270c12a0b85b270a6d87a0a2d427ee0e241fea0f514e2f0c36c50917577cf7970e6b2d0e3d0454721a4f55d82b9a48382e699cac80c9827b45be9141b4ca831e89df1415b10af77afe6494a24178a31459c9bae807387af0a27152348b1199a69d91a139ac377b20b83e88bce6f51b5a17cf643827855b0c82c57c7a8599496244d0a728b42a690eb29f889c3a7f562bcd0583bedabe50a8941c5d82e547c8cf59d5cdd3431a5bb94364d2aca72a2fef89888d535410ef69bcb41dd9805cfe817aa4cbd9115e9d84f05c5a9de85c4a7824632a01f625a0110a1e347072750d9654181b2622b0a3ea4f983b8f4e146f283e898c2839dfcbe4235a629c7b66d4c519e10da8ab2e9d74641b9984687289d24b2444bd052d79329ac393889446d8f45203ca80909d8693c1bf96241788c87de883d429618708b200d8912bb2fa3a083b0486a61591c91d527dbe49406aa2232fb838559142c800c20a036b4705d0e2496830f2c4af5c1cb1cbd3a31c28d0cb3244c96040ea3230c87696a6d0bed842482ca42f4fbf99374676d26eb06fb341c46984395e63289e81f3871cd29146213ea65d0c82477a86c3cb178a2a33d26e172b826aa26f69818b65b0d3567eaee0ed907055ff522e29241f015b8fda57c8a8b24c9c1ef281c01097b27196f13a51a03fdc28198139ddbf0be0c732b2f1dfb041c496565e43508ee919a2d826e22cc82b21a9b27b91296a746b157a1c81c82b172eec04ff681d16061d19942a06c708442051ca825001e2e3f8ee40002f254d4500df0c44e9eb65dc1fd9163a8e46a622865eb95c2cad81ed623a1cd833da7bb7ec12db3b8e1dc901e884e997cf495cdec21a156baadd4f1ac7f9dac5ca984461aa5ebe333e56224d4802d597e360e8471e4e1bd39272b3a963a2733aef0444fd4d053ae9bd731c9f8e53857e0dc3189e67afccda9e6316ed98a9fa26f260e2a0d46861a0273cd37b42f11a0b6c22d4eb5663988819ceb1f0af5eb2cca374cc9eeb3f1feaf11e9f45fa983ecec0ac1c070df30e0924fbebe558abc6911131873d385803d7c42d8dd5a5c4a9babbb40581177238fb220a8963d6aa9e006eca23f23a7847523598122d60099c5737be8574ac48c21aa2bb964fe0ed7dbfe9664435398ddfb64f662819258c8956c89a0b6ec2d2f7d2e0fbd3aaacf7f488e233e736e0863cddcc036178f1e801e96935bc9e02c76eeefb3d3851b256eff648869dcf1959071c40e43be7db4649740ca43c977d6f248d756a2dfdb8746c12448b1753597f9ce0ff2250459996a0124ac3429f7f6b87a64c11e6e7b580ab7be78431725888b4cea81ead80c2f96005f7debde973ecb033ec2bb683928e95aaba3d06a8db8a0da2c98a88d1036d198fda248a84a70d50e7fd0703b338d9e26c595540c7a0e70eaac92b830f13ea428478f0916c83577588f9cf5ee8e5f3b1b0bdf951710038be2dfa9a7b0242f20a831566200b79bac1511d2aaea200124a43ea0118fe9b84d7782c1bd505617c6d26743f9a71819ed224028e071dbe103281626fa19272a48cf42e079639044c0749060cd2f1e5b32892916c633fa0825074d4a403e773817d01a7d6f0be6324930c8883fad705160b10bfaa054468b10fe9898090889cf9394a9d1e7a9a331a1c1bf27e7491444b6657447fc5561b116d160ddd388e71f146d8acc235dea8f47264abecb461110814e8719ba349909546cc1e35bfd2a1989d080ab77bd67c0048f03678f348585eab157dbaa1e2ae7214bc157a839e931ae9119864bf0c63405497047c511b215fbefaa74273c7dac395e8b627e8d1efdb9fef0d39202854f66bf7e58d473289cf4b27e040bc2a830b5597254afe07f072859756e15430eaadc1c55ff2cdc826163907925532b9f1db00b4b205c115524dcc20e127c8d640bd5f355b53431003351063df1aac7ff49f1932109deceae0989295c28fdc0decae5c301288ebcc52ac9584d01b508875f7eb04b7d423760c8b640d03ece154de6b8c64a687caa63707d8befcf7c6d5defe968c49d249594078204a0c855cdf8bd0685d701c17ab96e44d078391805df8e63dba3de784c7b859394f9ec34c2471094dfa5309e2314d540e520d95488ca6445356b9f1e1d1d39be0a712c105f3568125116e539022595dd9d12b2329e9ba877808a90c945a7ce416ab2c7b76a995477816668b2d7902311e8226b776343ab2e687107c3777f3cbf1f1c82b650ce3e41f50e5f1182fb23ace1dc4fecf61252ed0f6fe9a00b1fc9a3126bddb1c14ec46cc449441a46c208f491052c21bfa5d6b794cbdfd11bf5f816a604a8998df19d9802b5045202a8f62f27b25e3d800dd0a88e0ba98e7c3ccc5f2e09983fbbcf0c831411dc88a20d222283e39b29af692a107052f40441a0a557a2814eacbc391f08bed2850941efc3e97a61ff07d13342bff85c787b6eb52f6335f2404e434aa53e3220b6648b7ec38bad5c14866a6cb9149e35f5ccd5bf3387760f45a2c795311769ded696e8a5bb02801d32255be65050cfa1739bad5277033ad77031bddfe100826badaefeea906da54a3c734df1548219ae0b4a1610c534099bd4aa47f751a990ffa0f519a24296137c27b718a0b344f01af0a2dddbfe2774476855b3c9cc46b39494fff999fd68a9aff30b457df39637f94c6de9b6ce32127b903839b116dd3f7507703760ca4dc3341d679255eaa9abc4a98a4689e0bb35e61567b711202fa9e2d8fa9ac67567b89dc2eb3cbdcf411307e8c8a052da249df1394b608c3ece6abf507a2b05d09f95df0854f7c7fa0b949deb642de419b86cd6ed8fd1516d1248812d26c2f64ab1168b6d7444361fff5d82434f59a8a68f2b5432ecdbe7c288f809a114d96bf5cb6257877577cc207df3f196cd47612d104331646558b7374aba217a48968b2147a08cda08e48928826b9150f032f72f1c37444939f041ec16c91b0a3c72cf0fdd2ac22fc0f428868c2dfcf61e4e6c1f2832857ae8474d7f8c0a7f1e1e2c74baf41b77db1f28a683277a7e1e64ae5d39e2ffcd75b652847878868a27fe3d958de5a96a7db992c5f83d4642c8e1607784b7df895f3d46b90099c7a344b8b4fbe3ae7974e13b753dd7f388968a2cbdb3e5d95310e949cd6f739114d5a2366627aab649b7bbaaff6403c27248d15e696ed417010606a584493d29b0f8dc51dea4a07024e78344a153ea2c9f131fe9c3025aa4cd11e1dd51f9cd48897971d9e5d4416d04890229a1cda9b64c71d04c42f839ecd8d1c0002269a1a859026f6f3c80c413f38afeb20b6799930d5034a59c8e371655723d60092b4ace37b355f30d9f9d6436cd6a6079a64b5d421283682583686a1443082f2a2253ddf0bd501cb915e62acc4322bc6697361492c3a9f88bb61ada2a19720e6d14b56f29b4204da9f0e5ae41591bd9e7e81a2527918c2bda5b0d6ec98bc3eb359a9e5e844acd221f1241e5b8e59791420d6001f9ad465ddaa8da8e2d72dfd8af31199f6793cbdbcec38780e53b296fa2545db920168617cf60868b2f9b9cfa9a5a15733d128c6a6dd3d99eb090f5e68a0091f81846a7ca101e0a63be810a1fa9f7dc6b645c69e1ad0056efc1b7000ab1e10454a5c8bdf1dfbed9c617efccb09b4d28b322d0449eb21501f788c961e9727c2f6ab2fb6f16d7351f3ec86bb1cace0f047ecba8a1616f5d2657d49f4abff41033ef530e615ebbf1cb258abd3d3205b564969d73e84736792e0a5a6f44e15cba5fa8e2d5c8a70dd436c7e10c61119666035cacc1582732d3383fe388f0bbec682519d0038580f5ca7cf2f78fb96b7a4ca525707a631a02b2a20f408116e8f53f603b499e7e021a18f71bd2569a40cdf80a47370836b1b0dc8e02791145c6dab58caf763a3236d0b04537f410905052525113d5e52118a8a3914e6dc505b08a47256b5751b6da974f28b3b7f4b7525be0fa19ba69aca909147d335bd27dca396f1e24506e767644b6259b3143075805ea779e6bd4444a3a045bc23065d581e41b85e2f0e11e8fcb3d697a8cc70557f313f882c177d521c0ce4f283d723af1a5c53345cdcbe47658f6d619fe8722ee1095138ead5df9bad1b3cd00196a65ed03e663118ee7b64c1100805836301517608602c0263a471bf0612e612f7242c1332a8eab38882068e2ca69c0ccc6c0d58104c5a85b87e069b8cf6cd9520df8716672b322082745eadaca75be8483eb61bda765580e277a584c61b15a795f75aba210aaee217ffe7138428edb189028841540c778e07d3e9fbaee1617db04dc009f1d2fe2d7a04d9f4309bff3fe7d37479f3f17eea1ce754742dc378bb4d881a6ca93b2e7b8f5db2ea427e1693937c3a92e434f299f548ecd758188698c3ac2f43c501ee0db0843864973214bb036b8ac5afeb046010138c9d18e820eb3d6c23a2a271dd08c7bb9c4db4eaf20cc14a1856d6712b11a2fd342728de1eb4b2efbed2526c7bc2e62288ccd328cee7b71c559a1e2574ad02fc309fa377bfa5905e8cd32992757deb0dbc62fe46297eb04e54f3de95c9efa10c7fbd80852982b5b050990661e80b1abb6a2819f9d6bbcdc011fe6a41b1d08df1908d6e3f9056fee0419a792f1dd0a4fb83d1332a3752a9b0a5fecb061387df7d038898d04397783534ada24e34c9bcaef81269f8f1beeae702689b88703711e0dc55d5a8db42e590c84fc5481f8334bc068558e6975474467ccc8cfcfd6a146f66e2481b09375fb0783bce1ebe7caada3e2315919a23b2d4b2437a9f8f57e271f56e0f4aa144f696192f657fee8d47ef321a81ef06873772fef8f6212791823bdf32b04ed987dcb46cd252c36cd256bfcf9e7349438236cd319c36f68151dbd309559bd391585be83cae2d7dfad7d67eced8c63bb9d9a6b1481f446e64508166d7b8d97852080b1bdcec4d2f6dc339ffe528c9ef627acca716ba2d1dd8dbcf374f9c9fc69068635279e476055680872785fcaab94392d9c450f0750692dd6599b747ff8f11eff510f9b673769091cb86d5875ab21d72786f520e26cd2315c85cdf66a9e26f5ded05b2606929a414ec2f368f10e6cc95716619732c662ca52a0bc27155c98fe031dd991578a3df3f589e2c9a875ac4aa145ea4a24b05087fcb5626fdc24517864fbd64e9e2b80a74eb575a89e69d1f5143262ed14897e946d460b124810a55f878fdb46a97e3d8d116477a49030d117bf40704b903b474988c3475a64233b66d3f5e4adfae62072047cdd26fab2608c548fdf86892253e500cf29b760c2acc9c98eded37cf24c66908376845401ed451842c350f2dff9cb6aefdaef992701939516e805696683ed7a8eeef4b7f9b91beb339d60e428361830c2643f8525b9902213b538682ab0ce83a297f926ccc9580f7e08a155dc0131d96d3252160a253aa67c62a2afb23f3eebcf95b523257b8ad4b7c4f1b9388a0ffba7b5c0ff1ac07403eee617e89a95386e48505628428e96026ef19cdc78ce089ba8ce8cbb5a1dea8f86dcc32d96e585b52b455467280c3756f33b85306ec39a79366e951af5c256afc992707d458c0e4cc24a6701b04eecb0d6b662627464ab81343ffcc49b5a3ece95bd4546eb92b20e558cc36ae88bf2109fc7bf0dbcd9bff510545b338265638afa2a0f31086af9716cb8c38a71a94c7107972f53928a30c46f9a9e079cbef87da3073604e6f4e4c47c7a064f018ab43af7b992fe09f9582e7565790ea0a75219009df86eaae283a154daf79cac64c89585b17ce84e075a631924061611c9a672be4b2af85cf7677a2c95bbbe773d7e377e831576e54830f10fca9043e8644410f561048cbb83902203361621233899982558d0078a3bc5dbc01fff27d3968842b3da19d4052bcdb236aa265266b8bc88e2ddc21bac91288879047a0b7e46b7ca2e865098ba4d76ea015a5ef577e9e186d64bdb4b48994294c10d40ff50d6f7a2476c712f94e29254d502a232cdf7b0a55dffbaa6965c378ab1f37393f2c110ecc7123c23a1aed709e0d63c328e2478e25f280b08e463b637dd3e9b5376289a05ee3401ba60241ad4e279e0eec0c095381540bc604d62b401bc6f4ad6654364c15136a5ea0423703b4a62040ffe14646174384e643d524e1d5a4421d4a8446be868f54844734cfd53c4d2accf135b526c7ca084baac60b6bcadb469ad53646abde6a884a95212a552c11eb9c9744c879db980ac45b79354884ddd7d1c8d7204195b0b64a4b24f534affd19db4a96c8cc36a60209373234349a03a1e5299ad5e64605c2a5386f1b83856734e25e6319bb37e2b141ad8c768c6e4c36dfca28f4beb09ae0004110959a41c3076e0a13b081d9401b13d0bad82eb68c38dcddcbc0a07ef100a8698e05e85e6b7d859b11a311aa3201d66ab5cd3dd4e77d4588a0d6fa99883043d334d389cb07388e3b814374c0f33c0f4409b10193c96442a582280304c1d40c1063a452a9d40c8dffa04618751333e382042860240a758c46dfe8262882662685024fa6cfebb84db3aa6dd3b41a80fe55e3362ee4a2d6ca753e7814d034adf3348d0a2a388ee3bccf468d072cf1bc2f65d25060c950c3091316b6da2de0e864a061835aad16021a3170d7d15ad0c3c6c3383a1967903112851b0246a39b33c4d800acd5dd5df5fdf8a6858c14607103b00e119eea1061d0902df26938d6ddf037bed7b63636326ea3b88eadaaa02e5a91212d3b26378c424dc7dbafdf79a01682e6a56ec69d51b3afb9d1a9bcad0d7b03c4aa6e59552e5db422415f68935a19fd832ba39b9b9d711b5357b8b2f2b6311548ad5a0d97d0c84110c57b1c4918467c1056234b3c873d89015694456956d3ea157505d7d1aacd68147aa10583b4223445665e33bd6ba94fc3f94e0fae8caa17e3e9dd823fa3728b03ae8c2a16e3c97b5baf005381d8556b15a4e168a69591a7316a1d8f2d7225b6b4b4b4e4c3c3fbd8307505fbda0fb9b2fac25420f6ad689dfd1a2242a315c410f1ecafe03d3e6aaf1511ae9c8cc97669189da8cd8ab160ea15368c182be68bd0863972d8d7aa166edb97834b35f13147cd6fa81c3c3e844740ca870c3c3e841fe2b1aaf9107e68c7aae675fcf7bdfd1eac391efcbeea79b6eb348edbb68dd3b4ceda91cb91e3ebc8755fd3bdb53735df3dcdca5d47fb1aaa524ff348349f519d3c636ab58da9402a1315136dfcfea46252c7ef4daad075b4f75421a83eed73d8b0d058ae07454538200b2322f0041a60a6e87630e1036cb060872c44906185ca053c80400f2e40060562b0e980258a2e3cb0e4050db87859d2c2071e3840a412e4e08c2f46b00232b4cc5a004607c618e38305a61023031a9625e26001103de420881a2c6d59d050820728c8e2800c1ce1830c14f1a5861f8a98401933b8308202f60d2c50f4000a3374d0800290f862dfc0b24515330023c413646c9146189fd7719b666d0e46e7388ee3b80d023c285102279608a2054de8605bb26308c106983252588102387a76b0012eb088a3054790a0023888030e295cf00302c8b8020540b82560a30a2338e0c41309d0e0a85a9a5040067858c0103df868ef2ea6ab4008c6e73cd7ba0b18c1438610dd057c20030eb0eb3a2c4970918006f460812c50a002313ed82e3081af3c088a03cc0f4c3082207440089fade3b80b7411c3fb620dd4a7f9b7bdf7de7f71c669d3e1fde03c8d2c2cc0c01716f8400b996ddbb66de3b42a38ce3f4d4c17361ce0c50721de084110ea124558c1003576e0a287d04647a863dbb6d7c8f81db66dfbfff10fe8a28d2f6264c0c40d903881a7755dd775a90a70d1be0dac9ff6d950c6160fa081820e84890110524058b2c1113288a20c0bc008c2dbb6cfe3b8ee8b2e5027208288534ac3518527088db66ee4346e749daa1ab9ed67dcd78cdbb66d1ba7a3d6d5576be5b1aa0a8eb51bb7d754db58b7144650b3d656d7c019fb2bfb7d268f89aa699aa62551022fb40975fc20f3832b4664e08c2e6ae4a00c0f3e20059cc08b133071c40d2c1046f341b6428d2ab8b031051c4b3ef82101111c18e30499312820c6d4450e8c10a1ebdce8c1468d1cdae7f5f0b82eb4e9820c23787491816d87b60037c608820f4300b1c5082e3431392858a2880544c005327040175b00a1a38b298408814b8e2e7e10a2260e20421d2480c60d1f66c29c91442acc05904085b1a208308c97214e617e40c2c4051c417c5cd86008afe3b880810f1d171d5882e3a20b22362e18a0008d8b0474b15d1082d8d28387911b9d0c2c1ae0838be9035305b76ddb6642853fd8a2013518a0003014500232c004a1f560dcb6cde3c081112ef08103501c61019f8d041b6ddbb66dfb6143c60f3010d8e1c70f304d80e0872d3f36b0810902880907b491011f7ca000161f1a360093d8020a06b411831f5e500608a9323e27c8c2075facb1021d24008d18745dd7755db7850ab4d3b76da181cfe4adbe1065d2baaeeb3a8ddbe2029f876509073fc040105370608c32baaeebba8edb6cbcd1c93863031508b528b375db0d1726005cc785c7691a05bcedb3093f940ab270400b40f0441438f882029fc60311bc48408c0a6c80012e9e50838a4ef37850e3019dfd6cc20fb545145ec7d96824dc8c316a5ace8f1c359cf0c1c7e8646ce1c39802c268f42306689420c7a669ff7961d4689f4df8a1c2211a37040d2cbe6ed3ac0dc76960701cc7713c373b395ace102fb421da0d1a5f3c8ebbb1d9b137393c9e8786151cc7719c9121466eb42243d068c0c87143b89b214378bed168c8cc0b76b68f4383094dd3b4bff9f1680421c487060f3d78706ce972f00317ce607b1668377f060a38ceebfcdb344dd3344d0b354e5b693ab41f5da7699aa6699ad6dd9c11022daffdff8f6e34fa1d1b685968a66efb000f75ab261863cba66ddbb679f146c771dcc6719b0ecfe3388ee3388ef33832bcb8c1c8ede0c3711cc7e9308d4661a7c31893d675ddb66d5f10b494b9001b3ad8020409d2e0c14646db010076f0828d194c400d0a40e101c1c1152ed0800e48c0a1c40c3a1dccf0c6195f2891041a548ce0b58ffb6de7e67f0cf9c1174b64e982030ac081c406fe8d1ca408021633f800125f80b16962a0c6ee3f54e72131d37576ecbaedd4c69836b438c109102046d771a19d60b3200e25c0f0a0840312d0fdcecae84b6387b1ebfeebbaaed361b39d2186ddb44ddba2d801056a5440076584e884183b2dbe9872e08037c2a8c005596230050ab8ed8788303a195a00317ea393a185169b0a8046751c8dc06a6db50fbadbcd47df34edab5ab5a356ab8f208dd151c7fdacfb9a6d69697b1fb5940f5f0575e18eba321261d442ad568efbcaad6c7c30518d3e808cb8d18d0230ba511ddd1bbdd5a6aae3575575ccc162d9ac0706e83d08facf09e8b4faac67b4c3d5caa13ce7f93ecf034f2088f2543f1e9007a6521b6a66c6fbfef43429a0ef04943a791e8da79d52decac7e951284f3593f27e3c8fc6c686e6a77e6f643a3d48636968686868aa7f33a79fd4f79980527f7a4ff5935a9dc0d3e9bdd3077a1e2af5f38d566a1c5e78fac21450ea7b552af5d3d1fccc23a0e6c3f7940f19687ee687866ac299d40f575337cfa4e374dab1034455140a854285a023857a5398fad1c0d492d383a91d6138737a7086878d0d8f991518d6300cc3d0ed3773fa1fd39f4e3b52a84fa552a9936965a5c6815a3101c7d3ca5de7c7d6a068524b503c524339523fde88fa1f1f4fdf23d5c4c7935158e3187ba4a4d0fccc833435d07c3f75443da8a3ead0a143870eb7df0c6a47eae7f4a8f75475e4914a7d4dea8432a1de3bad988023ea533f750477a03cd5cfe94fde2aa5e3f374a456a895bb0eb832addc75be9551f7d6c7f63f1ab7adfe647338a1756fdad19a745aa7753c39befbaf43753ff38563c8ad8c7e657433723be38e96433546c861e1c2b305e1c612318dfe5a911d3dfe8dc251cc68390e7060b832ec0d0f15b7821e2a0e0d8e034e841b016706b7024e055c0abc07c59d8053833381f7a4e13d68780ff79623c39dc19580230137024e045c083833c8706c18713018ed736bd8233cde3e58a3329d40546a8686fb3832dcaad6e40861070fd30944a566686a54a61388ead1a3c77f9e0a895b49d16315f22841041e5b13a10db2c6f87d3200b90739d5879f366eefbe69bf79dc36c39ddef40848f9183a99863eef97e89f9f6edcbaeefbaae7d9aed3386edb364ed33a3b1a7d461f8a537151847534fa4c4639f5e6c6def86bdf8d566a1c9daa1b3b26b4325fc46ce37682cfeb6a1bdc56b7d7bc8c5b2d53c7d15575acf594c609c5bd11ea9ba96f3731333ef8b8256e8bb781e9d668a30d4eebb25931b60c4b66ac61190f6b991189f501e4cffd8fbbbbbba66926ee41ce56ffacfd3ea0ed755826dbcfb7712b95eb58a971fc705846cffd339d4e27d0643a7da91f1e1e0dc774e2401b1b70c8eb3894c9c4712720fb1cc86ddbc6d98d33a57eac3b784ad9b72a295e4585212a25c5fb0e951af2569f86a3e1a4524d7ce4fc9bd980b8df524c4026a0fe01c70d1cb995f6a99f3afe8029ff52dc6a8fdb2afc01f41f4660e5f13b4c303ad8450c04636fac8706150dc75a222fb00b27729486a6f2c63ac568df2e51d18a8060341c0b9671e444400e8060d2d8a1eac0e0a1eab6701cfb20079c485701bf29c312e9aeb037160ceff9a2b340e745d785f784e9b8f01e30dd16de03462be25a745974587415e8283001ef09df7e7785f7d43c08260ca36e8cd17e27c61ed9f1964ccd32daf7bae5eb810f7e30da379d5070c4a1e950c9425021e5502595a95159711dfba12ad51bc5e3411e7f32f1f8cfeb78ac942a026a0f4a1ab78a75231aa3d18905535c319ed6b00f088d6a97d116c9b1b1214334cd6a9a75323ca0192158d00d6e7b7053b9fd2d0cbbe77eebb65aed6ff6df6afa071cb5ff01479b83c5a259db0468ddc8464a35996cf56fe6731dd7713bdab7355fc26d34aab1a1ebb88eebb040db4a657368353f29a0baaaaee33a5bea27b49667fca1e97878349ccee8fb99b116e5a39762b2c3da9d1d53ca4ad84558b555fd4ef664b7d55ba9718cddaafe2a8ef105a05686ca7b3cf04fe1674a81cfc3e7a3a58a34dd21f7db66f43e7dd4d7d0db7c4c3ade732aeb3ade579545fa3cb5e5183fd5ab00e0287811c78161b4de73deffe8af1a3d4d158e9f6aeb3c93cfe7037a2850e5f9801f0a54753e9c0f784281aacd070451a04af301511eea34a3634ca95cc3a9a119add5617148186b2ad47cac0f0856b7e0363333a654a00f4ae53e27958d8663356d04adb6cd6c1fdaa0c68e03bdad0b61fcac0704d047132cb55a8b426ddcca7e95c9c6fd70d56219391ff58f3a1f3278dffd90e9bff756a6d5f7ad3e2df5c369dba869da1686dfb7a57e341f43de772f45c3e1b4df34ed37cd81b41fed392df563474dd3ba94a6d2543f3e722b1fdb1f6940f6b7d7543ff699f8f8f12fa531f9fc34725fc76dc3b2d91312d65a6badbd41b52bc623bb5aa1ec4dfda25d81baa28c25c2637420d8229d18d780187dc6dd48a3a2cce723a48162c26fecdb104175b137df89d18a7c3956465f082b31dfd789d9198d3a3144822c134e44482bd26dd170ec7f5f18dad8fc4e972f424e041501bfb12ad3138e637f87caa484e3d84745c089988cf09b2f9688898bbd79c2b400ef3939d184f730e13d4b9814e03d5d1725505db4225f122624bc27c7db371de13d21bc7d9311de937afba622bc67e6ed9b88f01e9ab76fe2e23d21aa4b7d61cb476164cb8e8f8e37323d60b46ff2628fe878fb200b462e83d1fea71529530395ab33457c58200f34d94af4a13c5b65a85fad9aad5b6d524bb02d58122c683dcb55adda6a6b4f2dc182d6dbaac669b516a95abda9a68aaab5ba504db027cdabdf566dad3db5763cac8ebad9ca6db5050b56cd9a5035cddacd6eb5056beb08f6544df5db6cadb5a796604f9e56b76fabb516f96a93c267445381ab5a35d5cda69a4c3d60017c985001b0556b3bebe11aeed8019bd46aabadb5eab8e731af014b25438031fe0480a20d3308a062c30d1a6e0b243085056bf8904a0d1782220458e882c0a540e185135254398a0c50189109ba43903881c2841c34b924ecb400850d9016ee4c048ab020f5a388ea5489b0a00681482b8e051079385c6cfdc0049dd6179bb3c60372ceefa4a082971c1b9cd07ad409df23877b09c1066f7144f86f3bb86beeee007077a29a32ee079055d1a9886397d4d8bd8a07b93b0e1ed650b9fb96ac148de643fb62690b626973d2a5f0d5d34196f0014b1c87f204a046960d8a205b0f541411e812b0b43931f1389160b3c39289005b0d9a09e0ee501f938fa73b692ed89c380e2c7d60967454c9622aa2398103d40a96b8389638d408672ca1f6ea8b2593cd8cf55ce08070476cd9018aa0840e1b104b342a1a95a65303e4b3a98943074e858fc733a2d16846be2896b427418074a78e8a250dec46d872c0205add505bce8909a78247806e84eed419a174a074986c4c3c3c026841d0a11b41bb4207ae8ca500186db06705a084ad0745d3d56c55d3d1926c41a81e9df568f07c7850b81d33b503356e43699a66354ffb34d389844df3a6783968824e355ee755cddb866c40b6fa89a0f9c8623a818bc0d20c15596abacdc7a744876d053aac58ef71c0110313a4110233345086ac4888082e4b7c6078a148466d3006080a21cde715a0862850e2f800094470c2103b5d9440b2c40ad0000119606c6185144044012421db43e85407372083821290408c2cb0e460802a35508902e587c90926f4e0e1451758ac90400e38b04a2021a327ccac400556604b71c0c1831d5429400f1e35689031c605c0d8428b090c21840f2c0310808628508040f081313c60812e4d4ea00608c810038c2f1e10c50f08d8e10664d02801185f7841012d4bb8045a529322f3023656a00131ba0883c5144404814b9601aa148006a0252ef4e0d4a440f0010d38c104115a70698001003159e282bf800d107c6003637411068b094c5184105a6c1800d00b2ef4141912042747cde671bc800d156c40036388d14598094c5104114204a1a5052c1baac0004404c20f9cc44033930212b800f103151a761810c40f33a52a4c716870d820703fb03ef822b041c04e61a5a8426c106da78aa08ea682f63c4eb024541fde089a08d566eb51799842c891430b371ad44c981a01250248c2a9c6e47d9d67bb8ee3b4ea9d96530038b0e4993cd336f311f14c5a09a8a12c5056df4d77fa7836144ddd501d6b4bd2525acd96c60e4b2c7533d6336d39a9127824b0749a01556e393359ec101fdc94ad764630b0f4821325353bd8edb439c1e1c1120c7448c18c2c95eba939014916bb8da0e9c4aaea08a7420996baee84202d3b687c10a0fd64e9614904130d281d281d3730d911fbf469074b46b6e9a75544e899b41477b4f90044966f9be94aa8342b648901034c299ca1e52ba3c48c053924355e0b5b0cb80057e8100277736272124057654bc16b41072ea0f8d1010243f00877b4a448270908630994b998d8212584a6ce4082e6822702912c27af85eef4cd6845807eb4124e4c76b074f28052425f131f4b989c4c4d5042a5112e967a6c39444e5d4f08a9ee042e5919e0014ba7af8909443f2c715ac8d54e86eec4b9d0a570c407949950f89a74274f849412d38f0d8aa9870e120430028f143e15629022802ca74ff45648ad500428c8436dde085c8f46c484da5078249ec93b6d40b818361e2495f3a1a9381e3ba68fd45a58e282cd77e2612a9225091470c877b3fdd87e7410584a616653c2a9c09960fab1914013442b4187251148d55c9acea671075819c0882f326a8504cc1073851510882201587050d2472e4cb60c50a5062a334c110a723280263d3c2bdc08200000f86d0c31e2b0811b3180e14800562388e079f14007a478800c4b60e82961070aecc2f0224c155fa488a20150787162ca0d0a4044269618128a03086f10d560833160b0724d114398ae232e9cbc2f4470296232411a537ce96981480f1de0e9f348f0b1851655701905ca0080982ce91912042747cd4c6a5b80103ef490630d162c60850420808586198a10b1d1b185c08c1ccc70e4052226af9b000f6128c080248cf8e1004f2c600143448172c4051450f5079a0f6c998dcc8fb16d6c31b02ce0d6a86a5834ec19a612a0486043604160bdb013d0acb0479b51fd514ff84ae0484889607bd81d55474d085c0e5b53c36dc682dcc99abecf7a1e67b7aad5dab9fbc989f80d1e82484ea2bb51338d01c165264d5496e35e4d2731e9d6272edafccec3d375f7cfc31301dc5d001e9e56084f37de7a577e9cbff9c7a5f9db7c1766e94def8bfc6bfe9e1169119a7850b355ee3ee3a14906defa22d4c4afa4c7b979c1c8a3661126b24114c502bc8abc6be1c63926eebebde64bcb37cd7a55c1c34f86cf086a6e8dcb7f91fbc27e67f435cee5e3dc60329565fd99f07d5ea278dfd75e1b258a434f0b2f8a7fed22149fefca8f49f3d49f66577ab77e5c84ded424ba89858d0a77c7b274637d5e579d410b41fec8a7a98c4ce17bdc4d778f79d8690026436d38e59c6e6e70781c4e39a703fc1fe0ffffdd6d0aee16c7dddea0d06df99e2a4efc7bc20ea7cbe1eea1879d75ff9ed3f76c173eff4fadfd2a32d3ffedc2674bdf175e4041c879e1fedadc32a27f6de2d7fe1e5da2b24cf4aefc5b96dfdd0ae0d4f3fb7e898f4813bd316ec90bd0e3ee2378c855f193e86e198c1bfd7b4a4cf4b3f2e2f4bc5bf624cd69ba2429a769f6e1487017459d8a658601d930174e33e979b8015133a60c7f23463ec8cdbbbbc9ddb5bb53f1705339917906d1d178cf769a896ee8aeb46dee3b55cab87b95269650d225d448e0ee2b77b71e6a65b8af88dc6d00dced0f770b00770772df6a36ad66f3d8957d777b82bb35c1dd96e06e4970b73edced0835e6a07bd5e2ee357868ddc0652671b923b220eee8f0b0a08980b882ececb010e412110911521609e222a2934d51e37d53529ca55b9b453805928bd24b5a2f7c9b674c7f6bdf160f0fed1077cfe1a1e5e27e5ea40cc3694d165cdcbd8787d600eeaec3433b00777f410997a899628d9aafcd9b47f1f9461e137d79caf24b3f8ebb0b71afd9dd51af19c386bb15c1fddd6de9ee300feb111be6aa55b87bb5369ee634c58fde2f319aca364e378a61f88cc1ccdfe64df717a1e6de179666d75faf0c70f7eca137e1ee290febbbfb0e0f2be8ee253ecdeb7a8df78ce8df951fcde6be3f4b330cc3742a3ae76e55ee6ec543b771779d8a244662255d329fe705324b6f4a649e40c8540321324f22f30422438b749464a879eaa049193d42653a4388b088f028e9ec882c14118300d1a8795fe499f30612936d2d4b81a4b83c4d1911100ccb2f20eeb687bbe5e16e77b8fbe6ee2877abc3830308d0c52c2d8dae7d597800c11a29b407b5d512abd51840b7a271e7a745872cd5beddaab66d5a16604d14b5d6a3fadeb66ddedbcd37edbfefab66a4d5fa9ba6d92b46f5bbdfae20d9adfdf79ff65df1bed54e35a9dea63aea4caba36efb1ecb6864bf3bea5656ecfb5f01d630c01a7def0eb4a51b695359b1198fbaf7b1aaacca8acdd8adb6369abea69ad4f1dbbe7e2b2b57466f75f4409cb6b2e2fe9e8a1262c0267cff8fab7922dcfe399bd1532af701512afb3e3ad8ea63bf3ea82d6928944559ef563e9878df1d792b2966f6bb951433ed61187550b9cfa7d2b2fd92f6f5ad35bd4d05997e5369c101fc6a4261595a02553cc0e0a3fd49a5654bf5d19e07187cb6d750281db4af9f526949fda7d2b2a47d5d69d141fbd3f3f03ee06a49fbd34acb96f741a996b4b78f52e99092417bed83ec3beaa4da52b7541fd3832a2d3cc0e073fa2dd507fc0d855ae1006af984dc07b5c2a18a21f0ebe3707aebc399baaf3e718cddea488a997d2966db8741f66bca870cdbdb1fd2befe970adade5341da6bb6db01fcb42257aee4605ffb1cea6f7fa58a21ef4f7f45cb96f7e186bae73e07d37fab2b3cbc0fb7ba928369c57db7caa1fb6fb5e57db4f7563974f5b995f6fe397415f5a92ad5964dcb966dc5c3a715b1ef3c546105061e362d5baab002c378f43c6cab2aacc050534b5c0c0d60cd03c858830b0db49060f4af618cfedc11a3bf87c5c891418328460e74ef41f2c12df1c1ad54ee1f431dab7ba927f509b732c2e2a3d37c6fa3f7c47b57e56c5dea497dd2b98fedb5af39a37fce68f445a96fdf7e57b920c0930a54d1d0a07e6685c3cca3c2771f1cc04ffd0ca70f5738d0fce9532b1caa18a2f9d3e3e0e33ea0ca475dcdacae545157338f5af9a89f7a2c3e57504f033ecd0f814ff3f5694e9f5a5da1f9d35fa9797087eb7cefa3fe6b38da63f141a97cd4553a84faf0b3497db8ba7225c4e243b3ba52859114343f431d93c50668689e6695030e483efc9a9586fa6f15ae42cbc2f7334ff3463b0b9859056938355edc0c15161f940a8b4f0c9aaa2ea13eb5ba7225a6e168dfd270b447ad94341ced5329ee63458afbccbc14f749d525544ab363f552b978e9e2c5ce3c4a4563fa4d5557485654554c2a1da2f999d5952b333fb3aa342b29eea3a582a1d168de7d66dea86a342ab0a252d5c75375a5c3753ecfc7f6f57d4edbb8fdb66a5533be29726c6ee4e0b81cdce7e872e4d8dac8f19b1b3972e4d8dc40e5c881ca81fa5027ad269c497d39500fda1a1b5a1a3b638d6e50df36661bb38da9a9de981e3d5ed3b4f74eebf1a0a6696e60b9e246e79ebf8f3d7cdbdc7befa1b9e1f5f8ad0d37bcf71e8f44eba132da80d0c3ebd1a3478f37dcbd95d1466623d3c3f33c1e1e1edff578adc78ed0f3bc9d517bef5d2b22c2eb78d78a8cf0393efc19548f3f7d092ad7704850f5781faa1e3f82aac78b60a3720da7c7ca88c7eae419777c5e686d46cfc67a6f4dab6dcc36661bb38de9b0f0b0a6283eceb423954a713b4ea914e77d9ff236321b996dcca7bc1d3b76fce6c68e0d08a351caf33c2ff534bfb9515df0b63746a314cd8e1d34de8effd5ca682333a64e9e93e7fbb1763b56461acb7f3a56465f08ab1c466f745369562914e86d63b631ab4f8cfd2c9819ffbe9999cfeb4ca73f7d2aa310cb956f66e6b31d3802bfd4f79d1ef53d6ae69b419d3c8de651e1a366be0f77c5e24b7dda0cf87d2af5bd4559950d53819c4cd5f3402bc6ebc00eecc00e046d073cd0f340d003410f043dd076c0f36c1820085a3156cc12f07d6f0e00bbd740cff352a919edc3d487a0722d95fa1d2ad770663c1bbe178635af43e516a726a49949a156276a34751f428ed36a6fa3c986a92e70afd9303ab4d5f7458df72068c180b6033520c8d5d830402bc686f1b05cc901ac31c201b41d188dbcdf7604dfc1b05e013e8d0da36666e6c11a1af0695623989ea3799a1a3004af6201862b23101582bfd930368c0d63c3ac5033d6f301e83f8cdc8c8ec6e45b8d1115f5d5d5873a2234daf91e101e999e1b8d764654455b67186b5f569acd146f14482b5dd8c647a4b9952e6c8a9259a238161b37164af159a2b70916d2b23396ca844a54e6c25266329f22d42ccfdc046fa52552504c6aac24bdf84c52849a3a9f494abc639824c7182c6d82e25894240c25064b9ba4d8854d9d635849d24dcbd7366938224bb746818c9078062143908e188191547a7a564082915458e5127c12c9b2123336d210453463f7537c94e62496cb95c53fd277bf8ecb951f4a13d7d8145b2c34b71e357f63ed2d089f50a12af10da6e96c5820eebeb9454163738f4af7494fcfd0a31a9f8f89b0fed906baa9ecb2aa9727a6d6cea75092d6ef7cea9ce21bb23691ccf2efa7b8dcf79491e7253fefffe15e35095cdc7d9317c5657a936232568962cdcaa54cb336d63a31168ba51383914a3118a9c462b9e600774fbda6b5e46e849aaf6737e9bc8fd3fb1a76d31b2bb2c20a414c3dd33d3d7a2b617163fd79632dfb9c568a8b2e7a9fb47e46746628ee3ec4bdb240a567f8489bb00f3243b5801575e833ce20200847f040087482bbeab5a951f37736d637955d1e7147672b611d2d3b653019995da8c9bae98db18a50b3e86ebdf3a95978df32262bcbbb51bc519385912e3ef56595682662cdc87d4bb3442fc93a896e8ad15386849aac8d750f4beb198e41346357e8451c9bed9fe1a357e1936e6a9e2cbcaf489a27912cb6c4c99844e84bbc2f8af725d14c4a79b10835d3adbfc5e3dab2d6df1263749b4af8af89f425d639cdfbb5cda4adb1de79868f1eef9f2f31d62f7d5fac8de2f4c6b62cf6d2b7c9ce39656d8d8bccf2a56f1328af2346483c835e92e2f2e22647643e897a7a48d3479b1aa3f80793292e512c94535c039aa1a01836bb41b828bdaf24b36d9e77a7f989d2d01189491c13a2614788901592ae14255ca225d0ede961c5b4d6382dcbd1dca7ecc9ae925641abb8aa1055a9526555c5dd91b87faa15dc3fb103dd9de5a192146b1ddfb8f8b684bb1bc0c324b12041c41d31880e9ab5110b9729d649a8b863d7d53092ca79659bbc45a83963b1942e4c63ec8ad2d3d3d3032395302c935b965ffabe5efa368191544a93a533c93acf4bfab47cc6b18c8b5ac7f2163d1cc5b88ba36b0cf53661e6286ef34b9c6634bf92f47d210183d38291544a140b6919deae7c93e2a4d71833417203921f2e26613427e5d737e97e795f230c5ac0d0f27d61d871fd78e40d7777f496189685dc9dc7c323508447a8b8cb4e12074d33d1cd6f5367111d8ff0b8b851acc717beb8fb0bfa85138c94e12ea23926fb126ff27e895ea2bc3fe773d21b000f8d24c0c81017d670b185f33925500ba7b27dd12253fffd22d444baaf4765ae97952eb4cef32669fdfdbc51f351990b0b7077281eba10e42ec2fe7e9a9f34f785e52dbbe8fd57912ca7affd2a324bfc1a72c1c61dbdefcaefee513cec11e3a2d6b2a7a127881e9ed736936e0b4070bf52dcbd050f5bf8d28294164e992ef1c645a50cbdaffd69d16b9307043c4a2e9ee72533aacdc7698b858fee6e15a1e6d1ddb3f296e825c1439e24ee3ec5c32263bab8b865f9cb347f4ef9d7dce6e7a41809a3b317b92fec62a29f5dd88bb7089522d60a222c17f29008cadd873c64018c8b252e314689721a7b8d62a4146ff4a22946ca457f5e197a9fbc58e2582ca7e76926cd4e2253eb1c7bfcda5a96535c84de1227ef2f2f4e8b501335ffdebc365f43226c766a593691701afb19d193f78cfd2f61e100ee3e83872c04c0ddc5d979ca5c5a97fabebec4481986d312c9c4244e7f865fda444d9879cf24e60dd2183341a748b95b4886d3bc4c9e0c09251942f1d11dc25a4a894ff33251126556ceca4be2981246a76c140b8dee7e82872bbc5c341fcda6bb17f170851b174b6cb65a8f828742cab8e86ae2a1902f6289374e638f894e22a46fb59c7828246886de4fb34b9b8f0ab1293189531d0f83ace1eee26b147c7818040ca983663448cbddb38e0c1e06f15c3ef170e78bbb8b6976e1f49e242e75709ac4dd8d78b8d3728c9ab0146f5c3e26ca7177251eee84b2d72f123535101eb83b0d1e02f1627edeaefcb39bf419fdfbda4c318a8b3e47dfa421204d4434ef9736937e865f1be73cefcda34939c568d20b1e022951597615a1267eed51f47244e6f3cfd3dcbbc4982465fa88cc272a7bfc1a125f627e7d44e673ff4b4422ce760c86378af5003cd471c35ddc18c3d2bcafb9cdd2bc318db14b6625c5b1fcf83514ea7cd1a1e29e62974b4684c91bd3efca7f44def3efebd87da5384844cdc72942cd2dcb692e3f6f118be6cd63997eedfc1896f5eb9bf438c5af219d9d30670d11e749122aefcaa9a971697e89b5c6694c096ff3b1965d1213bd5824e29b271fc54866d1e3d790bb4bf13067c9e532cb7f6d33c9040f73a8b88b3ac766865ed8e73ca4821b30198abf95e6345dd27afc1a32a2947d8e1c39729e37494fcf9124afef0f19310223a994b89ca5d7244d174631116b6f8d4b1849e5c8119c1b2330920a0c6f9385b1eb8852f649c10cd186968d87295c21dad0daf13005a5201ea6c093c227dad0527988938687385f441b5a384a403cc441e2a20dad123cc4b1b92123dad04ac1c31b3036b46e9670d186568962ddd313d42ac0632cc42af13661e659b260a49266ed12c5dadd937888021451dfd793a646cd742be17d63da2c3fc5b1dfe8bdaf51f36e342749319a94d38dca32ec1ef91c1c1e2141649f736384c43394b84465d947935ae93e4171099462984ca339499966124b7122e5c80c292bc5e5111c1ed9e7f0c86e8cc4a2cc589868766118c9dce46569136b34c7344eb72c6398b9f79d95174b49b1e932778652849a258a83b46cdf2d344bb14c0631cdafbdefd6288e6999fef312e5f3e7f1ce309cfe7d347f898fc87c3e4eafc627915984ca98bc3843efbbcccfc14577ebd728a445262c95913798db4cb399c6febebe5f62fd22cd57d2e79478c76078ef5ba258fffd7d53fc2d212bc85a8fdecf29f1bea479c6644a5eccfbf19179263d4e7ad1951f865ffb4b0c4bb30b351f27bd463189d3df3ac3ee9f274e7a7d3f47e322f4bec854963fefd78fd3bb71517a372ca72eb3c48f91eeeb3cc7175fbf966533bd489f94d1a3c749bfef6bbf76529a1acde4e3f4beceafa4d7287eedcf6961344369bd0be8c5d7a62bff9324543eefdfa7ecbab0921771cef36ef35de607f9ad65463f3bcf2bd3b29b2f710cc598e8f57dbd365ffbdf953fc54430198a65e79de1c5d4bcb1c769e9d69718e973f2cdbbf2bff47d3d111684bc107c744f226dfe0cc7f0a28edd74ffc65a5f6d2a618dcd22d4cc4568166729965939cd8b747f6bbceff9f835f49b0c1c6f7cc660994481d06c2e392f999de812ef34c762328d4e913265e3944473929da1603d05052a515966b2339423323b418b4c9c62a42cb43394511f91d9894f5276b2d31cc3271edab22847247e252931119acd1d33535213c984321427e5f541b3a9533c43797d50b3c84ca394e679915020bdb1d6e30cbd4f721e4af38b442f969264b663b025f82432778a9150a09da12879824fa28b4e394d2638959de66552a258684a89adbc0bf80653c3643053e9c2f2fef3caace0c7449ff797f80653e3f4b5f9b506ee6e83873ec8388c546215993e390f9d1845ef2b4986729e322658866532bc8a4c9c9462a4ccc25b4662259cee04d1c127d63a69def73c33c9c2247a655a9bacf3eebc595bcb8ccacbda586bf2b2cef36224f3bcac18c6472c1626d3ec7aed8b4b56523ecfcbdae6696e99eee9616d146ba251892be734e8c4247a491646ca692c7683b0ca33bf344e5f9bc5a271f720b83be9610934b81799dadca70c2664051d2cc3322b3ab8e86a8d6137955d2bdc6b1524b87b91bb5fafb94107dcd16c6ef26af4a643288e45c95086883b228f0e8c5442e1e6059be3eed5aa508fb87be9a14d15f7129726524e635a062b71994914ffecdc244ed34cfecee8df7dcbdf284ef10b357f682776b786991b17a5b2989ee123d6c61acda6d65807d19844ef79a5a040e3cc65ee8c6e549649164e33c9da1acbace0f4bcb3346f6dbeb68cc84c379a49349b453865c5725a6eb3c429c9c2321423e1940533ef499e39c7d02253eb8bc97ba2d9dce64e6f2cc52e8dde74276114a758df1799ca621a9f57b3b0bef8646dac5119464ab1c6294e6545a60bcd6411714727c547392582e99bc482101d4c5e970e86991b95a53a31cd23442706bb5b6398b9470f6d4277c769468b80ca4d62239c6e14c33089ca328a5e9cca62a92cc6c2fbe294d4d8c4acb2bc33a59cc674363ecf1b2b59b33316bbb8bc69514cc6c23798697e6dd9dd2846c22c25d385d3d8799a47b8e8a679eb2312bf48d696e5d7369358b8cc246b63ad71d18db16217bf581beba3f4c270ba23b620440786b79e691d0cbba9ebc7c31d68b88b25d6b2c744bf338a5ef2617803c1f246ef2b88c5fa1e5c66f2f149745fe4c5292afb12a778a3f87bce8ba678a3a693596ab907f37cf3ed85ea9e975a7235d5739acaf1a833f513b21571ed88cd04cf7e1fb769b57a0f2bbaf52ac3064375cf05ce69baeab5568e1b6241ebb556cd36a9d5abb656adbbc1565b3dcb434aad5df5dcd694a8d9aebb397dddacddb8d4ad567baa3ab0d5e45cddac866b35b2b5da6f8af561abed365b69606bed6c95a1f6a855b35f0638cd9ba93c6aadd5b660777c5a75a2dadad95aadc6aa763b998658543df255ee87f642f5acdd8268276b2b0e0d917a802d08c8440bb2beb97540ddb49b8db355730e89da82ead6c330f4ea75abb68ea99f4da156cb59abd5ba420552bf8ab2d6da2e4945c1dacdd61d4d0445f80450533946b04a54ce8a50b7aa55b741f64f75736b76fead1a84e6aa0c54473286d56a5737afa6aad6c5daaf47ab3c5ab5767b8b32dd54ae566f670b72c24eb5a7eeb35ead3dd5da13685d35d94d43aa2b2bab55d3a926d0d6cfab168935c19a604bd05cf34a533b6b6b6a0bb5cd8a60adad5ddd5cd5f4a3829c0d62947131cd2fe431911857b867540c2531907c12767dce3b0c322ece6e528a4b5496f3194a184bb8e7d7ec44a31cd9ac30dc3d03698836b432f025033728dd27a2de262a13714aa09c9c1b5756e187b45e3ccf4b5e9d949de43c4483d27d3225434181525ca6515c51b62c0a36d32c948499e43c04254329f1d0130b1cb9478c6cd4cc310c3387d2accf3b2add274f6039759567c63875b192309a371860dc4530b6c0c0e049f1be271836e21769883825c6a90bcc175b88be7889fb8b10352dd08605bc8838a936611658122dc093f7cd976f7811012fa8b8fb46314c56945e266226b1f602852ed2707751eb7cfe96e59c4fca2726fa2d23eac24b117a9e3257ab8b201771c29421c2654eab15c68c9cd3305dc2e040a699498993ee6ba8c4252e5193d4580a5089a5f89478a3e69312bff43d85d27d6358ca948d85b6ce4eb696292971522ed1255c7c29325f9ff3e642c93c02c2451377b1c5858d0f9835dcc516982ea2894d975966181830e74db72083f4e31665b88b5b2cb9e7fd49f9dc82c891f2cc4d868cb8a2ccd0faf2cc2f8c53971112cf70f789cbd42c7b7a86b428c3451b5a5a74d1e2a5058f1661166d64914516a02c5077ad749f88e87965a5896496a8899a5be377e594bf3394175518cddb4c6519e9ba3e2bf91e8c9ae7c3f2ded9e7c59ce21b4cf353593691ee0b136d5c34bb302dcb33a01785b292fffb31d9a338967b8eb499a6b23cd39fcb1423e1a4dca455629cca48ac51b3851fbd644e4ef10de6a790a6f0b23c7b17d0aba2485952c343199b0cbd942543e312293fbfc4e78784a63c7911c5b18c9ab0c7af210cbb505e3cc2a9ebcb1c22a1f367e8f8a2acd5fafb1a6b99cefb67e92d42f379bfd57a8d73b4cb957179d30df369b5649900df6ab51e87ff23775f259f93067dce11d789858cc0cc9750ec3ec145f785ffff03fc3f3ecd182c93196db55a4b1e009ff719835d25fc3ee5dfadb7a8b789ca728a6bb8fbc44aca4d5eac0448e31b304e9994676e72b11221a25ba238a6b464090aa4d16c6229b36d96a6cc8a5934c30e58ca58021d91d9894e8fc8ec04c537e4d4a58beee9c23875f9acaa7877bf9fe611a870e3092aa870255250111389ccd40154ece45448890878e118c98cc092bb58ea08d4704429fbe84be2192040060265787187c0121508e8bcb69974cff3b23092894b96be2c519fe725f7253acf9bc49b3081ca2592e9b0dc628a26dacc50a6b811f39734dc4598f91a856d7ed69f8391ccf3378ee1cb175702f4f733942f4bf848ca972157ce694fcf97976207eee20c1fa9f0ad1208c7d09ae1a3bfb7855fe9c527394b2f6a1269f3efbf9292f4ef183e2231d24974b55992668902bda851c05ad3a0bfd4d87ca5f93536491396d14ce22f42cdd999e272bfa833143dc3316428331c43590295785f93cc5a8f198a550515a1e649640a95a7f94ac29295784a14404471a40165dc459c8ccd33bd3aae13ebf33493b4d9800634d18020b101360c4081bb8b0c8800036a60c027120d3d86c13209c515eeee2414555e647ab18662c68b181cf1cc681411effbd8cb16773127f182c4319197f08932dcc527987011a739c9119c9d1d2245587045d13bbd419fb3510c7b22e809175b287e25b51650c602b62ce0051737895d2eac4d27ca38f1e5719a87ca333bf172776dbe133c621334706fa2012e3611e44dccce248cbe3699388389ed2eca5073a3792b1d51c228133c4c84e21265f478b8c4520ba7996cb55a4b4c29cfbcc42ba00d773129a30af8a280ac15d0854c9732bae0808feedeaedc0596bba0940881124b1945cdc7422fcececf394facd19bf43849092a527694f85c2c93304344ef79511396d124bc24114b82c745f3937024d270175324ae70246248f0b83b7ac9f3ca36127e84981417a1f9fca123ba1c1173df473471b13c42047717a59467fef2cc4618b154e2d969841417316c9b4918e746b392306a84bb58c417772f22e65e04127711951515a126798958639be93d65efca9924e20b114b317848c40d1732af910b98248c728979116a7209811ce9bbd3fc18cde3106cb8fb10460c81e4c27e1ebff6102f9628feac4d21da108ff415e28bef5b0a114baff9d242ecb88ba5796338a87913441b41741183888d41dc9c2946ca39697fde23106b00f14524ef1802114bef110f81b871d484c1ce5be6f407119c9734719a93e852099acda224a57983607803a1b222ec53e225f84c82cbfba43c730e2a710954e2a012a7254ec2685002dc45ccc4431fae7017cf9c834a1f5ee6198bddeb4388232bf18bd4a8ac3433d29634b4beb1596ac694f0162eee5b5a2ecef6161e34971ff6404644cd22dc0317f78d3769a63bdffc6b580f41e8d8c3096568d96ba3381bcf6e7e67f4653c58c103157c5ebd95306ac23279c3c343410002ba9428def7cd1cfb9d914c04f0783649bc11f015a16646432d34d0d2c545d22ccae72d373e5f4b4c7cfc1ad2d244cbcee8d00e6bb8bba7bf03185209bf363fdc41c977b871378bb4197b7c5ebdf1ec77b838d5a104ee1965256114355d9aa57461a509c3dbdc19c98ce9f065b29891c58b52162a3b59bea5365cb4a1b52466a9cb6b896729742c6d602903cb9733e71896252c54441b5a58765ce93e11759252e93e11f58b650e9add13a7254e333954a63709a78fcfc767ce411bd537f63a69e3a2f2e6f328cd49b9fc1779f1a3f78c3d4efaa33427e1941895dda45fe217cd22d4ccc1e7d55b13c9307acf1393da84bd2bbf9e91b7089f381a35ef2bc9851de9bb6f5eef5cdea33307a5664c694986529ae79de13ccd2db4510c1b755692874a74cace5030cc1c2a42734ac3964529cf2c54a618298ac6e715ca50d07bc68ed24cc38ec9d2344969e6199496cccef42ec1fb3ac9796867243328c56852949da1a0d92c7a221401e7084e7312568ee534c63a3a654431988c88755e1293e8452a2f2e65276b764f2cc5dd59f050290840a094590902eea55902c1e7fd9385cfab959ce0f3ead7e699f5e3d77efc1a52d2dc45d7c5694ef247a7cce75d7988b565f93cb1669d1797667966cdd238cd6489625692152f424d9d74f36536531cf44e346abe8658a8595e7c66170a84cf2b549a3756a2580ade17c94c6347b62ccf6e8ca59b9c3907ddad51208c67379604cd2626cd3426652c315a640aed9ca5245d293d2c16942840425296ccc05af2334a893224c462f5a8421910742aa63876e2178b2544c70577df6c8f8b25b6f2e2519a933eef37fabcffbc661a8287322ffe3d44f9247a28518406e0b21a3289bb6dc1ddf2b8db22ee9688bb65c1dd0e71b72b7cee3895c5d2ccc2f995b4dfc0a96ccb5c7783b1b7b858a2f7ca8a4c22d8d566f9dae68c2895c57edc2ff7bde362cea619a594e5589649702a0b2ab1eee239ef1c97f9399a8ab9c443fdb9bba871113e4d24338dbddee625353ecf9b245d63a674df7562fd65799f8b46e18e2992347f8987521b2b377077d7e34bdf26e779936c257c24c568d28de99e9ea12123ae2831d951ce4eacec58f9d68881f1181733f68a21896532b90cd186965724302c0bbd66159946387d1776fec8bb50e29796c57e6bd9007888b45efa36697d4eabf5e81571880421cdd86cdf7cebefbf2e1aa4749f8867116aeabbef0d8a4f11e7467c155ec80aad3fbafb5b69dee46592a365afa11775701afbdb6abd2b6f8dcaced80b59a12ccbfb298e617d7dc4193e6ae1dcb832bec1d4ad1b4c7ddeb2bc8f6a33cdae19e9ca337c74f3e585c14efcfa1c9cded7b1fb4429a731d789853294129d824fa28b4ed9198afdd1a388572277473d34bd1022eee8e812b3582c20b3d85966188ecd36deb7089fb89cdd139738361b42b30b2b9929e534e8bc387dbdf47d8d5866c54465d9859a654fcf509ad314b3c8b45a2f336237697c79f19792bb3b9a1f8df2a2e23beeae6f123abe4efefa268d252eb1147c9e660c49184a89f72db5c62429132ada22165129f1de268c48e62a834d17132e78e86ab9bb98e66fe1342739cf4b9a4b5c4670193109a3248e69d8c569b88b250c1e622e2e92afefabc4a5499a3221cc5394ca6039cd29be41070dcb32eef85582c08596685c744424d34766f8e8c80cc700c3dbc465266738067717c1c332e66593f223d3b8825c126d6891545cb4a145f2b868438b0c713c244a83488a201e168484c47d74619f376a125d7db19417491cd33fdb298ee534f62b263c2c68bdc2e9f3b02024f425c6a546013537fe791a889488f82823a1e6a397bcfb962f7d9b88385ba7a62c8dfdd6b83cf3cdc7303e82fd9317f525fa1e2d807fb1856159a8f5620ba7afbd33fa2ef3716e1eebf33279519bdf6a65fda52c45712c765fbff575e56f61d8455b2d9ce62df4e2d6f9d4b2d72e2a32d39d95309a4997d942f327bdcb6ce1e41c193292662637adc7b1d97e69ecca2f7263972b6b13bd2f12c3c89b6e6ca6fb75d14d31123ecd93d4d9af22f37c4d9a5b9be7391ad1789318e92f8a354e6338bdf9bf8f629cb431d117a1662c769fbcb8b5797eebc8909116acbc384533d6977cd474659d2dcb9f8b7e675429fbbc886f30b50e6a3e2e4aeff977861ca4cd24a0172f4eb30b86b7d9b364280a9417f5677ddecf51f26293175b1b0bbd48e634f645a889891e47a380c26e5ebfa863f7494e8a5f1b17e5fd5b163b2f0e6aea3fefce432f2a014aef2923ff3c65aed8c5af1e744a898b50f3b53394f3bc49302c27413779d3adb4240fe98b531205ca43bac4180a865d28248e096925782703776f79c8e3e605bb5acbca0c059799ec99c572ba51ccbae946cd9e97be4d7a7a865efabec629b8cc493469c6f2c6fabe621bc5484b74aa378a4dd274b9641a936812179672f755925d294ef10d2c34a3248e69a50dc3249aa1f4f40c6112cda84e459d62334d2f51906aad90aacdb0824ea28132ec717afd0727d8104e11e34b4cd9a2f119fb0a8453aab8fb79b1762ba6a43025fc9effa212c1dd1ba0faf3628d9aae99bb1b79d86402eeeee3e1500cee0e434b95c9149769fe2234a749ff397fa5c8c61a776b12f2c2ddc512c55b9bfae2f3f77d4c347b6ddb630423212deea2bb0de2ee9fdd396f8a61249534a3260b35616936ba30d691a49b96db34dae84d2a51f3a8346f0c9da2af798ea419cba419cb431b0be1323fd11833d958089f44174f3922b3939de6f3ea142399e894f43c2f8963b3cdca1a239901a420a8f40ed0754d4d3ac69499111901000000d31300203020140cc72322a12a6a29937c14000876c05a6c549ac9c328865118a40c3284100408800130003042439800f30e5225329cd904683a294b9c9fb94783644d4126292cccc23d4672b66d193a768d57145c6b17e5d00a96e24d3c197a67896b198d7eca3802bf878b013a076aa0bc671b098c165da6095ed807b6c8619420e926c3308bda7be82c2c10ddfb4f3a2692c66b759e4b569ac2d50b05f88aa542f64f01182046284726499b255031995c6780d3d6d265b9ab115fe2cd27eab15ab5bdf4597249bcdeef16516b7ab454a45a2222527478b8f0c89df34abe3259d57825c722748559981768454abaf6f13affaebfe039c90b09dca420111541e4b5a769b8d87b63470bf054edca96d59f1295d159217866ecfeef482a1c96cf52090e35fcef42c813380d1ffd9c61d36a66a49285515900a18ec80761f8a75bc0841d4c6f05a26e73e012076efdb9f61a6d8cbfa1ea003a46bd1f1ad3b9ae56a4686bc9874ba57c6a6240ea400b2dca45951f664ceb5c84fe8200542ba6f022b6cc1f2576f787e3704518859ea94ab450aef9c24f136b903c64e17b06b78574303463820865db1804ac5ecb66eb39bb4f65a9cf91c1030d88273f5ca8b864d7116301070fc8640d046f6bbc6a6c4e354f08373322ca0f5387fef28a0199474ef385be61ac6f54622765a2566fba649c71502506f95baa01c6b47ec280d306bcac33c4ec0847e6941cda281b13133b335695cf7a2117dab93ef6f94a9c9c73813e5b988c634efb00716a25e15d31c7411bef00c5d8076fcad667c88663760e0e32e5176779e72b148cd347870e645e15e1ac86acb769f4058939ead2c62eadb3dd917fe63a2aeed8e810a7a39dd640940bc16080d61ab400c51ac3f04ea024e06bb8e1e102e94b8ca8111d60af60eb3693e5cca8b43bf061614a6811f1e88260aef56639e8bf92de7d0cccd56e895270d77cd0427a88e739c8f051e09c62cf5021ed385b4adb5ad02455d11ea056e883cfefe20af8be06fbad7a88327e1120e3b7d19801fbd9fc35d2d28eadf1a43b75170a70923a4e742373342f1784f9d3cc37a1a519944a476eee005a0d20735d721df6593f172779601d6b9224d5895a09c0b8c7d514e3fbb11831b929617ecc1848ac0a8f09729ffeb9267b4f1952aca316fdf2e83b119234d3fa1b5f769b149b95c08bfdd4820a804249e509eeac4bef54ecda4af9e467bc6a64300f6a63e85b88f900f56c0f020395ad4db70ab1e50f670eb09e388988994b1b96c9fab75cc6cfb6213615a94fda6473c3bf8d7bb95652234d4e7192c08402f915926b69cdb52657c7f5a946c1f8b778bdc54d090d94085e1a96645fe38425ea66b2f1b5635e38124e32b3d00b34e5c12b2d2173621ebd7c11a1aa1aa35de45b59a0f80fe7f39b6ee46e80c0225b9481747d831cfb315200b16746ffbf449edc145cc0044049d3d2208262e0fd1265a6e65bc6bb35e5ce4b32836879ba72b2fbc0978bb764d77a1ba6e7088eba7cb5f0bbbf04cf0f52f061f29b90c8654b0bf27175216553ab8168e1104a79776015a208d9e16793c74c187194a0c17f5894b8089b8a5cc9ab2a597093d7229ede55a6f98f4794e3ba0f7b6633c00ea2a48febdb6151484846421d0d32ccdcc01d221de452d8f6e5e6e84e888377352a050a047a7c08c63dec4c509338687c5b925624b84b22b0beae2786c343ff1fe61c13b90de0cb106fab62149ed719288415ac9257612da566600d6218a69fb50d089251b460ec022f5fc62df07834d9aa9d3614916064ceeddd9f58f4fbad85077656456bdd46e089511a5642f1a5e3da6964b8b2ff6f5407dc56c84794e18a5f8b53c72f2938c98a23a049778e818f47475f49d876084b5b13192f401a79fa055c31a86a8d208e9f0129c93c1374374e8cafe3a0907496e6a522f8c12583863d4067b5490ce29605da8ce6d3406b5526fa0249f191ab30cc03b35262311f2b02c2189360687231588cd784ada2cde7c514e15c1c3a3cd8e56277dc91fe472fb5f6fb92c4a591a6bae042a1a0075422348f356f31ceca990623a9397912f0851a97bf83bc583b65c275c86f0a7e46e78867594dd088880c5ab9a03ec6c7408bf9b72b226995e8cae6d5e809e3866f2dacc96ecd98029daeb860a9c08f5224189cca7bdbd26ef120b259b76ebbc903a9a5289926a3494910a0b6471398bb072240b6b4ea115d60f3c854dc19c53a699c66c05c5db503c6b6ff50823015c8c777c06f248996bec50c3c57c3816268fa6d0f568ccf4ff1bf99b707bbc5085756a1ac73bb556412a1e7ccb6458e786749d8ca3c3e830ed03c917716d87a9652db29136f895bcbce002262dc3fdd52ba8b977be2d1322329fe7d303359d2e1620ed810fdf02d0141ffd9bbe672956a62cce509b23f1a38d381dc7dcf722ac2a07ca5fc00d8ee41867fc03628b45fa9e5db1daee7fd018166fedae6b387e3ee5914f41a41c4976ce9b13359eda98295bd9c80cee56edffa29068b0fa0ef9781f95fddd811fe76434bd713e1c4077eaa36be0e48a8cdca3147694b4392cee385d855ca15231d10bdcc709548a7c60eea7b4281481b20c8443a46a2f5bd1ad8ac37b043a5bfcf12b95d420f1a651f73176170211dc61502fd5253107eff5f5f01bc7d75f18aa4ef1fdfe424f02e1807664169c8c8ad39d2e00d61af855850b79b9961f58f13dd7f4875df85f302cf332ac1aabc8edc2a50edfd406f0362415e457bbc8666fd70a964d70e3c5aa1394b9bc7be650799ef8d2d5502e5f1f11007a39d6090bf15c59255a0218a264fab908832cfa119cc8014c3490d62369e0d9dfcad6b01cbe2851d0432a8c2b7d8ef59e53612c3eeb0f6db2bfd939accd7427e635360074932038abf28d3cd9219655bd18304f4a93a48feb29e952663aa92029c0754d6d1b6760ac1f70d38ba7737a3a6845a86e5d410cf21f4a9719221ca05b916f68fe58e7323004f9019c8f8f65dedd505c60155b63cfdf646de8d9c5648844238c4b5d3660ca4b6ad7cc6ddd883fb001e092d2689e9fa5a8392dceec70b9c7c5ce2ca07aa1e96d7c6ede76bf6e029c856c31922bda6447edaa07f0e936284d9797aab09ed20d2ef23d38e7c128bcfd2a4945d5d0a1d40b08b38728ab36a7c030074ca1c06f04721fcad4eea5e3b6cf062f5336732fd5c81c2bab0a87454d077c52ec7424bd84413f71171a887190c4eb7e10608f8334e9d3f77cd136ec242985d2c5e088acf8c008ff7330833b1857942934bc76e3db938ec17ad573333cabb792e9bc4fdd6583d132399931046fc698a6cc39bb735adcafe3b7c194905a7183c737b7dfb7df674bc825e24ccf252e4587a8601509ea100059d3ec3c68f20a33941134ba1075a1c51318a25f9c1bb6b5bea5076db5ff6e08a81c742535e9ca9ab7209c1df582690efbce808bffe04abbf92be8e488ef32ebab249f20dc4df8fa4ee397b241c501b424dee90de4f8cb403c83caa8421c15f0e92cc3fe01fc39b4a0ec67c0c3bbea847be7f9bdba667f533c29ef3552a28c3a3373a218130cb0b1054bcfe70bacf5e2bc40acd8bdd3d5ed956fc7962d670a8f6cfee35b948112c2a90bcc526928a27a84eba45e87bd3c7a05a9318b11930b0688b8984c976b611b9ad44d4c90988716005a2884dece078f15d21a85665d91efdb178099129dd96d03789cce2f40d6f17896a623af6e943c159ef089d9aba2206e758d2333a908a87c171e5cb4ee543886c9c4513940f8129261275b8f8ddbcbd5d88e2cd05e641fc2614653ea990f844ef5f275950007aaa96167a38af44673f4931eb6a0a6bb532309e5c631a97557134dc8f9ed5106e135a322ad5472f644a40539f9fadabb5d2447636172f469b24e3feb4bc71dd46ac134364fb4c884fe8f179a8cabab3015da0beae2509aa1a3988612a00523e058575ad04d8472206cf2072fe7faf74cfce789ae293754e14fad0026bd638794b09db8a45c7a1d528f4a1020bbb5e5c4f0cc182da3c59384c804861f41a8acbfde500876c8f5cc3daa9a7043c4c0a83d9d8bdf1c43966f62d21bc309a6dd82b18d56345d63585007bc953462bc491d778b0d17b85d5578856cb42ac59871ad866c86267fb39f55c39bb5906de2bb0020e73fe748455a9960a2856de5c0475111ae32079ac9af7b006cdd3e7148d9a99ecd865e75f2c337301ef5de2590d5aba5205a79104c3821258868ff11dc8fe7f2ebcfd6c6698811d4edea9b601778486eefe93eb30da27a05d2eb5ec7e43de9ac3bd9dd5e99d7ac8e639bea35498bdcb6e4d88c30fb15e029c5e8e954cb775ec216c46e7c7835ac9c6a7e9f382c01fc3c4d3d8e5b7617189aea1761b14304e90a2d83e44861ce1b4f5f63971812c1191cd30e89b9d4d66cdc9f523640527c903843e4a2195c615d0df332859694b91ec59c5d18881899d68a8b35bd35a0bb5bd5a8f9af7c29c581635e924466689b9ae86271b53f292bb8d4fc45e1cb67278ed09511fb4e3f2052bdbc15a916505ae08f7e22c97caeadc19252340851b3900c67dccb53cec701cfef58d3eb4668f12a1e56149601e7ecf4b9f3a18f65636056b951617ac2a212971bc108fc2670d6101eae39e9ea72bda360b70b4151bb7437618b0d9487247347702c698fc01b0fc974c723d183e59a4d9f86bc5aea66fa5a05aa2037b0557f86854b622d63b8bac640715ba6f92749d6b6518414a6f414d91e0e0e0e62df23c10c4b09bca1dd20a59db118c79ff9067fb5e093c1c70ed50ed5372597b5e41a2e1da4349ab10daee52eb976202f5aa546f6eb32b915d7a7940ffd5696e0f2b62a20016f652a0812695fd6c554152d6f3a4cf7d31b63434b89eacc120ebbefced7af35a24a0ad29db75d8d4e181bff56d6a98824843d5a5960a712795ba89a5a4dddb19f8ec5ddd64f4b6156420d9db182e173f50af4bae674e912dbc1c6ea48c3a9dba4f7261a250819ffe2eed2e9feea36277f5bcbfcb73b6c440ce141315a10a450c62e5bc050e38d5e4014a9dbf1979f0a6717f95e5aa629b9d921caff30f951bd9011346b1c411c341574d162153f910d059e73b3649686ba619f2f461d8d1d9043a532d2c4b9dcf738eeef7aebcdfe842104c7bdf934e974ce2f3c0e5b475bbd04984f09990289e8332fc85ad8dca93c268f2a176d2401fd779831cd6bf9db1c05b3dad5b58f0f39867219f220696e2232c1c32177430801e0af8431fcc241983704e998121622cb38dadeedb1dce1bc17a01e5c8c4cdae05501b016241789f69687a3402780f4cee0c520d274c81e305b83fe97734798dfac7aa99c291eb063304a22fd40f1619683100e460931068f654a190decdc52809ff91db55b25538cce6f91ff5d595252e7ff01c831d13a6fe9f44729febdea63d576390ae4923cf02945bce07c205225635c404d6347666e65cb8b3b5ec3205e1cf115ae9eb0677751e967eec6f456d4fbf2f4cc2bcb0c306d6b6fa9bee1db85b61ff8f2eb203400a84f5c2b1bf9b3c2cee025aa47394ff255770a0c946f469f5c138f11c5499d3af6b9a3a12f04e7fd8e9ac6d5ed2552ffd4dff1307b0e96d43d2f9d1fe1ba70fc23f22767d96494a9f1a6218b8813a06e83c83a5ab21cd31049d1b89b0b52aa7adb43f8041b0b23241c778f141525716761d24e7a698f93cab0314331c22b0b145eff62d8f3cafad98bc391e1cbca27df63afe3068789beeb45da554d7ee4a26b1bfa42d41a8db1ffb5f2b1cea691e70cc101ce199e27168cbb0909285b4da1948b07f7c98cc218d8c27e083828c890fadcd9a4b1294716b9210169a18b980c5aed5f74a6247fa1da42339ef5e9407744aaec9074a525d101fcfac2776ec7933a1e9aef7df1d10485eca276db2c5e9aa17d34ae909bf9cf46e7ab3a153a345e6a865ffbf605bf280540ea79916f121ed4a0a8af4f9da664e349f10719c6d3bd46f220c024dbcc1dec3652889feb193f5175c93459e2820e19912d7cdf68c2c486fde0881bf985c31fdf53af333b5d7ec4c9c52da0408a23670da9c85755e214084a9288c384314f00244c1cd61799fc7996101b1392607dc1d002c1c22fd0c5ec25587d809ff27506e362112a5b0c20713d8740dc9e63712192432d12196c176e88834fc2e678918ea132428eea2fc7ec74452460619d0202682eb69c529c6592b2e68908f8b86eae7cf9e1e31e1cd50782f1a1eb2098d87e4550e53f6bc6f02f64c3a09adb235781862c216c6419997a7c104570e270663567e919159d7eaa20ba08ad8bbabf076f2106ec83d4285bde40a29e8588f385880d9d4b895837fd7a75bb0d95042854082cbaa016ada2f03eb2c4f1bf47fa3ec9f2fdba914f44e4e15cfd2d8c71870d54a2a21ce074b0a9008a845cdad8bcef9aed9069641eb3a74d5b1666a8e9c335a0bd5c1b9ef719c880b635eab634c9b8ae68e89f0368e95f2854fc68cc167c27bba9843d9f611135bafe268e2220f861f1bfae735855c89352b33d7274faa2b49b36c847bfe92f2e9a6d29c29079bd836d7118f7f186610c981f9ff31c4ca278a59def774ae81b3b24c4435e9b9b63f164b6265f79dd928a0de9219d23773d3d86a1277489749c2c480279fab0c689ee849b971084b998c94a209cdc8acfe8aa23d3a3256834eeab420c75cdb0b7139be9fcb997f029b4f6a0564a7f3bde998dcd6e17b928b1634618521e077fb085f29c0e538730abfb182d1cd475ee5091962363d338e187f8d638726cf4a6617bf181949b26178cd20136080f84c1d68d3155973c97b62555caf0c3d56329bfe58baf226659e44e62cbb1e5d31a0ef48c09ca9f3573cf2688e0e9912340a23de2ade1d4095cd5a6dfe38bfc33563db8dc8cde29a3c6ca5f2529df3f0a218390ce04923ab16c1fdde53c98f0e8acfeac86a07fb16b873684d682b38ea533ad7462dfe010dd01942e6fe314b020032a6b14125e74e22fca92d539d33d2b731fa03a18c9a36aac3ad16cfc1ff80f92d28cd35c621d2c5a3d16b08338e13c585090e673d4d611ab21d378b44ab5e017993b4333331d017a0a68bfff4f7917891ea4980cbf65893420bb3285683dfaca34e9d8d4424ba8e8438bc686812310ea603436669c798cd8ba3da7dca6df265186f75baccff0a0c76460f57ee4470d5efe5b9d470b2d92addece0c9ba444b073ad95809df5615188b3bcc1d24d6f72aaed8e3c3d267c8b816257253f968e9c3a86eee2081dde068609a307cab6bad3a8215fa5251f15a9846b03309f954413833f2f2d23c9cb66502c74cad3edd5c52b3727be06db59b1503d97360c502915f274473470b9f11e62ed2c361a11075e60404b92c231bdc07d8c7be73c10ff866e5c23daebf677ff2a9614ca11928e5bbfcc7e5ef814bb4c4cfa20349c82087e687837d04c297e4beea5783f80483ab7d10763a84313fa9e7c8ae0707f008734151542ae738573826262aa164277c42530e833aaec494549f5ccfc97d48932de35114dc5007fa86993241f3519a171b3b36845b78f9c7b4db38060fd6c3909472ee5e56d0c7ab3ab8ae4839ae3fe12d3dc2e0666d635aa324388607346a5015df19b047515aff366a862449a1dd876bcf273b3db445c4ccd4e0b46720cc5928ee37f366b2828b48e32d6ed6633f4425d7b0aef8ea1b8634fa1a50c257e818d93dff1b413c3520f38230dc46551266fe563d983d4a4fbe0c538dd7fc646efed7a36895d6f6daf514a92dead81d19d143e0ddb047db67fb8228b06acf3efd941bd3bd3fd2253d950d11f533187d029cfa9e72ab59645d17aa5c32f5819d2c92d58c097d007cbb4815cc627331518d183133792afbd9b73af326ba568647d8fd64852799a8278896e83569f85e90eaedf43f3a0d760ce2fc8bd88d45bd2bc704568515d3447f6ea2859a8b1156cb49e632f20570e20bdd60dbb86bec2ba46c8e1bfed2dabf66aa71f981033125a3196d8a4571a8911855934c604e4c1ca65abbd073617e85e30354f496da6a53b6d4176b8ca311326190a4d819c39e29a4236685d8de30258575a729a5268aa4a4d28a1433f257cb1d424975a499da7b0702b1eadfbf47f46f216239444d9267f03c84572af54026fd4a9e0391d578028f6acfa9ec3097113f1276dc0548341bcaf9c6b180c715e2bbd521197f7146ac22502bb01671c9a10f00ed7ccce87bf0163bcdf414f0d000c26818b630705f754b05828d5c445b129640b30de7a068426dc51deca87dff33314c0ee7fcd5c594f93425fa9831e9912a4111ccefafd62647a9fd5940aee8a5a047c7488b1fe06d34712f9e236bcd18b6412aec61c2ca6ec47b28ec99584e6035de9e20bbeb22af35518e2fc85d8371b3eaa1c4fe6ef4117ad8584257348ec8f18251b6c8c7c538511dd957e7c515108863f2a43de2f6c974d1a43e94f08c6891aab6dc55c377449811e96026661a0adae678cc234d7708a6d46d29d6c71400126b99fcb73bf0e9f8481a1d5f861eddd0a1e02bdd46f19aa506051681f248c173c28263b2ab3877f2e5d8ac8e9d8a200f60620199f74da8585a7c3ef3d9fdeeeb808bcc1767432e0bb49ad728914950e26d851a3d629de444fec288eb6102b4bae071ee5d1a2aa18341266bc86f191a833c892da29722a30c371f5eed21b68d9ad1bf4f9db66bb727bcf8fea87158cd8d0cbf1ee53aed7ce346df3d05d3cf2e1e786111827ae5a3f72d7c04d90765ec8fd5a56f4cc6890fd0c32f28faba36397c0da147c4f6b4694b244ea6b1b33121280b2bd5f3f0f8cc41cab50d5470b2e2f818dbfb151c18e06005ac6f31de4e2020490dc802c336e71784d6168b2db1c9a1adf498636995eccf0d92f1912be2ce778b3469a08b888c4685887f1125dc466e49dbbabc34f9eb953aabe14233d3045663748cfefe953fe211725da207c8bf307ee2b0937331f748b01b3c6e631e649b61fdaab0910521069fd40a60f480425395083284c4e3c478e72572dd8d556c667fb8af271b63633af7a9bb4ea2884a063319823cc300df4a86c6bc4a47c41a34d8197b39d776a6893048b05ec23ca8749b09f7210503c5341b9320cae261758b934f1e5bcc8c04c87649a8bca84e3399fa186e935cf454843e69bcb8cd8b119d06fc3fe7803b2ddd110466a5b78efd0a75bc820e95a1dee998a88451c772f055af9a855e798a842745ca8205e1f9d61c0022037bdb4d7cd789f557c0602a48f38ccb84fcda371fc5612658e06bafb791a414ce15103ae2d7e8a2792d0e52e3908c6b2deab20ad9b2dc4fc2e16bde57be5b5238b74b00074c659122d8a8b438209e44d15395d1ed0b959abfba0edfb60d4c0382faf8fbc3aa09603c85d895eb929b81da1f34a6bc1c433bb12aaab7d95ad837eb9ba66652667f1788ac98fdf8f5cf591fd338136555d3e458614beac60205ae49c53600eb479f23ee57a815e760d36b0da4f66dd9c0ab39a89c57645d4d9edbd0fda7a119b6475cc18d8e36490f5c9d5e28868dd06ddb13caaf6d2e3cccfb9f7988be9f86a29a0c6886d927164e403af2e775c4e5af23e80128b4beebb9addff5a7a9abfaf57c7aecf754d1be912ac6e2807dceef5fa271cc0ef3624fe791a74702baf9471475d4119c9b3ed32bcd25718e639878ce30b1f3dbdfd437d9818c93718a04fb8d360e6ebd32a76a91ce167c9be76898f283ae3bfc6459713b83274729badd6dcf5308677e6c88330db460327a581f4c6d2abee26a2a2406e6601ce2cd21e9629adeafd669768862ec55d493fd3aba0bf5c7dc82b599c0544adda288f677a52269205a9a83ee6fdea3a63ac8558a5714ee7818af879c0b134ca32c89ce422f01bc887c45c7e511216d53db1b88d30417951e0806f5074c0f62b1ff892e8fd14de3f0849fd0a5691c35e5252a54b39f28035ca45c6f4c53322728a24ada65bf6d9b2ae96a32340129753aa0d4d698d9ed5d83f33f4853da0b040e23ea1259420638429e00ee0149375c68a4fa061d23aac7409c070a1efa4434f431e394d83814a49be4b3678dfc48e89ba44a695599169321bec3ed7ec7164d57fb77a6ff2e02df3e600163c3f3e4e9ab96802c7bf74820390535a3be47447477a9280a24da30482efe5df0cc79f134ad7d69ccbd2f7e348d069534291be22022fbde7c9be5d3d7cd31d46ca2cd2bac5980981de4c695349e78608d706d35e26aa79587894ec59fbc1264d7b079a073502f0cbbc7d6506c1bfd1e8ff1173fde0eb820a8483da662c95d803ba284f529c4e6862988242aba357f80e91f3c3717b3fc5a0be6dc062784ea625ce0a51657497c82b503e3b6f5adf9d9f1a3a878e556e7081f6c8d323b4900ae4671a9f09197f7e995ac798b9769f999140688accac352a4b68b6eea0d86ec5115910acc83bba08a45aca6cdf916dde3c83ae72e866920c296aa58cbc1cdd641b0afe44f61351587b1a2765d73f3952c5fcefb2c15af1ecda1b56737833a3ea679484630d752a1c16ceab7d40f6325d14b042fd2723f005d8b7b4523c588387cbf07a951579720ec58b504ce13338e9876a712f4f47e6a6599b2cb593da4341e6f16918e6d74587b9b8b35cf9eca499a643f5582c196607b4fcb0b204582f4a8aa43c7c3c9d471e2faecb4c0801b8dffcbd9c6c0452153814029eef5dda4e669d07f30182e3808b6f642a3b5c2222d9291c6827944529f99d05d81ddd4b8f0cf437eeefba6f4fe3fbc2a70f85e033eddb01c6d31e84e6b6fc31325a28a85866b2afff6c2956246391f399758dd9b82de78d978b4b7647d9e80de626758edf7a6aa8281ce00407053a23e0d465d612a41d54ee696ff36e7e84b3527c1b6e48db4f19707f268cee3f262febd03fc6bdaeb69e0d8307ee96b6dc50cea221285818faac57739fbdd6a38b7215963083fe934c3c58e9a147473c7a73bf348de87da595bceef2d1b7772b2acd4986e080fc0d83b91633af808a2796778fb1fe08b7bf4e1d882279b3167fb936f8c73d45c0c98590e94e8c42da24873ec793b0c9cc0f364bc3804c5098d71eee992a9eea8de7096f101c5d4de889a416d160f1c8423077efd835138c27b5a5fa5a913062cabbf7ecf4ede3a5e19ce93d3d92d5cf6a7d4195895caa7cdbf18c18cd91cc2c8c5085b29bd3c97f63e0a62c1f6fc0084109fe7b99c7d771fa1d9417b918a3c9f59d25228792590f80c5c79e266c0355332cb74f954e2740b5a7c2279c2c9ba5528e20629d95194b0ce74b1169333611721bf61e6640223e533d97e1a40de1200d7402b145c3767c4e3521d48e93e72e20f8f5e0750970f64d5774be2bef95c3af3987d3680a247302c6c349b517d21d60355326761c16782a227aa62cb2c5b7267ced9cbfc069182c1d47eacccbbae59ba245c1b54323a928407d7292eb8f8884ac7f8bebfeda994b60296885a4b9f4341b3cebae4ee71d389d769f35c072732cd9b8a67c490c7e2fcf26136e4e8569fd9dc8c8ddde8b617bfd45f764cac2c6138f068329127662f56c07b45015fb155241b1df178a2bb4be22715564808af2fe54f8736536f479a15246fce52c9a98323051388c4fbc9ecb076efb64d20b8e3e5e6927c335a22a6d1221a7f4dcc88e940952110e49a32c90a53c4c76c329ce65a760617b7b8adb5a51ea97bf718db251b598246f3af42384c56b786c5637921ad82660a49b96ee4bf5ad50d1eb80618b94799fb348888477977137a97b9639fd68734475eac7bb99819a0f7f7f722401e2d3c25f71be5f1271a6af13c47f75e0cbc5d541c2378d4ebedbee9b775bae817cd0666fd63b4a1508485984639fe8f573898e2a18ab99abbf20aea58c38f0ebc62dbb8509a4b7a0d7d765318727753ff742540b40e4e92e330de79f1cc04968783671fda5c6816ace29a0df4954246fa5f0028910455f7dbe6396aab4a3296ee4d17f9c34df15863fc6b53d3f62624d79a6167db787b3b0bec90ada2f5e4329e8371d9f05b5970d4f3ff44447de6cad468f1d42041710fe6671f7d4f6f76c0bf9450b038fc0c8832078a8880553494ff3c76a1735779186993bad5248da22132de3576ab5a0eb84817d15eceebd296ada906cdcdf5259b775eb65292024658e0bb9fb3b24fa26ff959331948cf7485018e8801a45c74b29713f876492212d5481504820b7d2e70acad983937aa72a69ea41fd5b17136e6df7a79b6af6bea47c1d5a5439f269cc544c4c5f6e2e3195ff4351ab732bda33598c5402d115674b4ca2ed069e2aa3e8bafa966fa1014df7a29ba7c3733c7d8489d970dad0d16cc143208fec60aff0a8d2a5ee62eb9f44bbe8a0f0fb52e48e6d92623d3562d7d6964609733f883e7799ee4a778329067699b4d5241b0fa04e1e652306fc773204a754f94d3da40803c5255b9bba38cb11901700b7423385f621c87c59ce92b342034f476ad9c347a7a7d07764fa4b76622a381e360be44862684c2383dc3eb5d978f004ce441f4f0d4c06a653c16b8e36e5f0f83f24c9b030fe517eb102ac310afdf8a2c47bd871516abdd141e998728ea92743a1ddd7a677c0d0d704f7be8ac18aecdc6a7ae14548e1d57db2cff81f073a091315ed8f44d4e3777b3130e6e48a8b9cf95764802775fae0046ed7a61f6006c82b14decb703e35e4660fca9dbf6f84c77cee12c1e0f2bb52ae4f1ee908332252c7949c505e75ab7f0d1cbf6d0821d849b1752988b8ebc3faa45af6a59a891ad478a28462b7c4502454e5e342b418d18d4fd1be07d081ed3f8bf1cb2636e40a38338d369505f86e360577b2cedf39d3c23401cf859a6efc5a15f7499e87f7b4e2d7111620f0f342a0cc585751e5963d291eb3f0d18bfc8dc3de7c98100eaea6cf676882ee202a0cc093f221e04159dcdef10e2e993759be1792398cc507d85abc68f8937e200de67580b482dc5c960fe29721c66fb2f99b0ddc54b94c4950d86a7e62eb89e5a4404f24aa669e9cf88c7a9a670f909e791405d4bee9195da40dce32876653ff133d46faad8961944a0624a8ecbb077a15917134a30bc785851c2749dbfbb4c7d9339df461b4da4971b6e87a2056001dc018e7b47936a56e9a2cce4c7243b0515cf9c8b844861b95c38b131e8edd2f8986bd336ec6e18b2c239bb97d8efcdc48cff6fdb720f6345951da1da361d2fa0b1a84b04335bfb74af0a1c17d351f36e423cf09cecada32d573bae9609bb80856a1458e1509d627ef206bc7b3f0848d5e29ce33e8e56f65d00ccaaac594339fcc7a81855a01ff6d1bd8b4a452ea090c5864f12a613fe3b545fafd11875221268e7f4e8a260abc5f1a84870c196600bb3ccc5a29bf483bad6804a305ec660063d30a0730e4445b16e65f1f87e01ced3a43b607c39c9c0be59e0e1040ee87d3d42c7b13a12611e5f11265a3bb14013a62ea3a033a2a8b2126486a5f9beac2aff771021afe1546cabf1096cbe6614a490813903460a27cbda55a3923c057055f06adc3f15c8b9ee9737e00e52fc75f004e19e8ad3b52c32147617555cec66ad5c17b2aa1a54fadb482905f4edebd9c038600e751741db6f6b5e340a59641eda8fd674bfba45df41d6aa06010103b9236c49216a4671e594ab5a8d6ef1052c8409e18bdb04dcf1e165d81ed99fafc12ed022e4b48a1e3a22657a4a10f55c57ca75c4f214eb21e99ee31e4642aea7e81280889741e09a373f62a8c916e259e54519ff37c69d24e427fb9f2ce7d78b8785aa8e80c19f789fe1fa7180150352f632eebdb81ee0daba2fadd83c61c228fbf238fb826599302d1783e9c16c167e7ec8fc6d0c3cbd841f0d5d763f7ebe7f708b0c36d2c5a522a736cb311b4a2cfc31324824f41f6f1700550ff48cf0a171be0149e90bef9e58d555c7d593c1c3a66c3661bfff45758823824cc31d92bf3e014d2ed5fd2037f087d385a9caa33415fe4a81eb01ea383b0b90b7fe19ea74b804dfa61bb1381e859610d38b54acd39a7e121bf3b3c60ac0421b5e0aea8e2a615540f1688441b7b8964474593501644af264ef8c6ce9398220e3a2dac7a5ff54d9b14465cc34525eef606db3373354ffe09f0189598eec67b6db93906b7bd7f97668c4c5d8e2cfcb5ee34302d2971b837046e57dcd0d928778cb6e0fa320856c581cb63c14573959c11c71049a6df510692591aa97562033ec9ff51463cb8a65bf03b01db10206e0f66dc8cf8c496d960b898aac42eb5ed4c78653b259a885bda316dc797ed790617ce9b98bb337ac17966a24c6a822e7fb89dc6fe0ffab7fd750dcfede224b3ef52a98d99829826c0bafe60d9bff0134fd1c5c5cecf819d8629f0615d56b30f9e0e53d3e6f6207540430022784206d14e1019754c1dd34da0ed1971ee5e783643b3e206874ff5f904d8590d7acd8c0fe5dfe8868c58477e26d78bf1593ab10638f12fb62a4f8b4acd4536d5b122306ace40c213d82b51123a5b34a7907ef04cc6867fad2351e3a8239d801d877075357e8605594671af50a145f6b04201353d6d1a371445febd323d6e41ed50880ed719b0e549dae515106095178b942636f1669d56a91f1cbe9f339e049af6ad004a63b9a884ced1c8e2e9064d84f2e9e7fc830f7c1d5d0feeb411ee4607bc797b2dc1fb33c3311ed1ac143ad901d9ebe9c10c383701f3074381b61767f8a7be2d2c95545f39939ad3a23b1728e08f5b0d61ce505a974573d1301c631e97d80e97b1d5cfda964ef35c3a7c490b01e530cd4593161ddfa0a9306700aced82bcc1d6da0d48b09bac18d7c241e67ae5612d623a693f405e66ae9415fdb5331ca814c3add79c78a237165a134db4c86244127896d9a7aea5a113ba80ea77f104c139b51e52f2146919fc9cf6c60060b3f6534e01f5624fe5ac7fc09f35ed60dc5fb309cfc9d1fff3de3d21f277dedbd847c3146f63c7ad139aa3738f04fc1f6a8db508d28f08f4df5f6efcabbeb54cbe44ccb0d58077798bc5496fe3e155f3e1ff5422436f45b3db17148fb1020ccaab9ede04adb719dff373ec5fdaee802a4351f60c5f7ab088536df68849cf741d47bd27638e0b4314ae523fe59d751154e5716810156b8834db032e7facc75b525b87a0efed5693f13fdd8ff5acf60860c3a2cd2d2ee0f9b075fa330c70d80d04c3df6a91c6ab7a7f04794ec98fc5cd500c90555510fc5b7c63e9fa18c5b9bb080631462d86129ca0161b74f6fb993040bb7f3ae4c3eb65ff3ff15ec8c3b5cc9195b1c5bdd4c7b126bb70d4faff57c1e633aa72df3dab4cb3abd6684a51db5b7bd90e7e896a63ebf01b3546f5221711d02131f36bac35610f992ee7638e5f99a3a2896b80d30cb31cd0538c33ea70fec95e8e815c4d1faae363f05fc5c650f6cae03b7872fe9bcb3af06fd6cd4184903b4a73d8f0d11a915b752f717c0534043249b139f5cfaa0de1b18d6cef05ba5dc5ddd75e0eb9f2cd3bd34e3cc9eef00f786f9ffc1bcf8d300e545378290d23507fefeda71ec34566de689256ad96ad3e23688ea83567d99c7c1b7fec31663463eaa0e9b6d5b6eae52b659ac47765e2f769cd1d09d190c96233e0f00e0635ffe1e2e5ad0a9dcba27c3013a23711c4403b9bb6dca9878c30b0f53c1d8c16abbe1a00017d4f122727e19a7cdf4dd1277ae1c7068d6053849f6a9074a5477cc6f436511d331d150460ad6562b6d3355187f84221b6793694e9cf8584fd5c76a54e8463847c8c847e87ad246ed0f0ea4f3c21cc8f870afc9789f43c29556c745ae005672206d903eea64f901b0cc37c59bde3ba8cc5bb1a095458e112988a82e258f8363c171704b242f7216219c7cee80e3f99223f9cc3fc75f84947764f719e99cb6a2f6de4db37158ae624c5c0dab494e51b0180aa1fb8568d48d6ad875761e89c6f7046efbcac6b3611b61e47b131e156ed775489f04fe54ef9624fbfc41a655195a51edb2136fe151b4d41d2582da2a286521c52edb0053fc54439441ab18d858845a3d152bea2247cead5a3dbcf81c996b5bfe56b07ae0f8dd9848d8135ba99c4e985364c49f28fe8b8ed3729df39f933b71e3e65e4f8097b40dcafc0a0138ef1eaefd26d108895abb7e9692b0668f00cd56257d98328ef8f205da530a3b7c00f718a8a74950ee16048ff0da2c3ab92c5852de07608cd760082cef04194977fd4c5fb6cc99e055f5241af87f4a6460745fb110429d3c2eac368950ad380146f9963c38068a4317ced9be65ca63b66c88d64d2219839e08c2752ff9c95d8f301708ffe93b70fe90e0a7fae412343dd2d434812941e35926150698505512c57736b72225204770bf569215db25031dc244217ad27c68b0209fe4f077a4698532d0138494b10344d876b21ed87d06d23b3143860f2aee6edb4db9aac731ce76836d662dde52986eda249be1062821e508d8f6aef5819e6e054872ca7d3df92d18b51949195953961b177e5a479a6bdf73ffbc4db55b7000512a15d471970223257886cd31781338d5fdd71068f4396175250a7392bc73d62648c6aa493a10cb7d2f004d3d485fd370079dfa435baafd073c1474c262b432a307107a9bfa8461d877c4cc1b95b5e6b94dac0284c88b4113ddbba7960429371e96fbf337871663a370d37a497ec0ece0356b2b11909afc50d0a601d5225a7a0ecf0bfc49ebb975982157837e65e89e53e3aafb5b38c979e69aad0da13e4f7b1a1d75c91681da6d7586f9f42588a92f31fecd9850d792910858b0410791089175f69f85ba6aca1b1461a7a00306eac03884d9c5f2e92e14bd4630024b9a5a5c20bc0adefb4bba95032ba27d02d317d9e0c2fa053c768300f927ff81532d22a9e60f21f6c623c0ba1ad03588ca7588c4f0e143cee0a40694eeed1147b8bcda10c6ba269c261d836677e1dcf49f52ed5e16e6befc40c949d8be8aa05a28a86a3e4ec0087705422f16dc112367775df422ef8246065bfaf8f4bb0266f06c477bda2429ae0502d54cbe072454961ce7f03bbb35274b20678e50d2ff42177900ec27107a8197bde3a1390c46c76f4d4cc116f254f455ca64d9513a483f69a368b3493b209d92cc47031230619f30196b514dc4f9b9b7170f6453ae83c6b518803b038b58a5b4e9e2afcb1eb632e4a831e0b0e6ace621e5f7a14c97780ecd24824b5034207535cd0d490d5b0c038c215f85587a7134a6f7c7759786b6cc2304041a5c9606472566a3cbab51b2a28c7de13ed07a76f4e06fc04b7816275b17a85160d4fac03fb30d66b6728eb6b962fe591c9b07c7fe2949d6ff967a04276789a38c361b8f12a644fb7c25ecc509d942a56009482a6c63c1a879e81fdff87612c2b0ace4a20a104a0a9e4f5b613708b7c79695c16234f4b579da5001a0bc188cafa198c998abd684fd46100c7654040216c641c370e2a1ac9506f19098acc1c84c7a47bf717204a25d321a50d8e853edc144c9acbefbd2b68e60573238f391d595dfaca501225cc0d65431be17fac03c86c85bef467b4fe2dd48dd3b597caa931cef3f5e79a9b77192ebeed808e068c618434ae20266b24c3e2949244f7dd4f2d88a00c7848219078fef9fd410f558e02d1d2172b33e6bdb2383c211285c2999e783c8291b5d1f01351b69133a3a84738f267777ae3012adefdffcbf2f25a1439f95e7446a3d258378cb1926d20eb6295c0a3f4fcc3a59e8366f3d30f6e32f424897266bd8d559ee491e15deaa3155934713919dc1504a5369c827920a57ca2217e66ab24c7b9c2263669a83489a4868a1b8b1a6422b0166a54007c34b366f4007ee11db828a2797291ec717850786ad9f1e67dd733ed9f834c3136317174ab9fad6c5b1390b29ea356028d154a8b2fc84b2164f5e38c7fd2bd05b0f95ce3a458313c46532d53287421d62017bc3d4ca18224493aa74229506c1491a4391bb1b512a879896e4a4d0b247a3c115ce3aade1d228446fc49a06c72b6fea9aef3d5cd8bff735e602762170d2fb0682806ca4519f1297f531021503e18f8c24103317222a0e4c3413de796a67d1d6d51bccf5826237ce53c84f090cd7369be2204a15edf5f22f1c191f872728648f59108bc33374b340a4123a71bc2ba40284bf8b10057241eaf8f03088d8f7464247d31a31ad29d40f88613dd5a8d95c1f026517158e96af2b6d6b2c6c9c34d38a1718d62f9b74b65591d41d2f4b148c72e90dadfaa1efe135199d9f052db89f7baca5e10621e17fd998670121fc75089bd55906d09bc92bc55a583a4d1537c8fc67c373924b0a0d10b12905017cc50d22366b571df4a06fd20aecbb1d0dedf3d39820d4f8bead73d7278b51d7c3415051813f0076df9afc2de8cf97b697699918b57bde13665305e21c397183acb835057c9be59474355c53811c1b450e63ab44e480a181c2a4c883242a9079bc0cf48dc74b7e7c75097eee617c30ec738f42052e3cd8f0e80c04abc0ea12df2079a945164dc2c14989d6ee902cf4f6c03d4a2e43842bdee8dd822810bca2359f5e760b4ae3b1157a432c75a3492d9b0da5950400612880cd82bf9de3f3ca0bc34421dbd7deb7430cffd902aa14df209c7c114718d5d616a564e4922d854d668a55fd3b6312ba87a599c8ee73d7a5d01bc6bf73f33d87ee01bf2c406dfa6b07b91ee61ed13a6adfd466ebb2c17f19dffeea66b5e5ea8007cc1a0e425b255db8c7f15c91be41f0bee3e2e784de46e61ee135fb06296c2e4fae003fbd1f229c495a3691a6793fac8a2773fd01888a8fcfffe90e745b4ad155d1b31e038d6951a59fb939750ae38fb8c2779716e38027c528baf3ba7b88c06c90679b0884e2c03b30de6b770ff069da96bd3fe83df2d95c190d15afbf5d653d18a6d52279c5a0f770b4975cac7790b248592a38ebad4749351c12990ebcd37a12ba11b71e1d96f37c0fa8b830e94e9825e9ee114c347c1ac0f0354f10dddb546e2c73f718631f5b163ed882de51f869b1839d1618ad0c0c73a0689de792e766e45753e1e89c6a78404fa62c6434ee1be67d009ea7d4969c910a8937f946578bd3380e1d7ef74eef2099892b1cb4b8d0fea0ac9501bc65eaa16855110381a108ee0648f1d52b07975eb3c6c191576da32660fa1e12db22f2c375d6daf2398263a3edee514e8cb82439d5227ed40195e1414055d3dd83c86d091f001725670b74507fb97b080c586421c8570a6694f3e4da3f02c41e565a3f7ce80e7a12e131e3440252527799840e4e0aa6b9f02762d876b0116821165f8121e65a2d775518cf6e128c74e42ba92832609325c3d696048d376e62006202fea1087c3bcc2c01e840075d1fe899792d3790f921f5e6df7c366e350fcf0ca151cc878ccb361d84ce0d6680fb724cdf38330e1f27db87c1b1e6cc1310f2d109d3871595b2fcccfa78579b07228088a656bab6469255770f3848343be7cc6e58cae18a75a916f974f1a2a39a29353ed105b99a7904fb3610624dfff3d3cd9f126fa2281a951416cbb91c6e0f1f1a774d349529aa03ddd362fa6c70c601a34a9b9b4848492c6f5c660a03abdf8c1a52de622db95118458a6d56a0860a85780c0f0ae2c025b89f395e29ce4911e268126a9518bb256ddaf74f67bb52bc0a6d36dcc55121e6861e620df8964dcc8a25f82a7c0604f45a03c79dfd19641a9c61c5fb26c6f5473c2e4c49a177372372f00b070de2a0f0622d1b308f86bb8ffe77f92374d53476bf6caa1dd336c89c2874a61a0bf8d1bddb68a1a5f1c2433f87ef5cfc47fb75e708bf432bbc53c5286dc5a9fb56d92b889674c7022dc7fcbcf83ac39815ab4ab2109c5a690ecea8e6973f3bf1bb7c7769dfda0ac12748a95d0a94b0f5904271d061006303116720eb9ab1494b7de670547ce1b7e8f013214a398f72218a96249a7a734d20786bc01ae478dd3901b587481b70b2e38af9b4546c0fa1161629e1b9559a8bfb91d3707a041b20d5029d8f84ed21ae99fb9879ebfdadb35cce060a1f106db28f46a4a8e856078a3ea01a6a7fcb05a3e7c0837915efc051700ed71cbf663d0256c3b0c2949cbe2abb61ffca16f5d09f9c4332ff6a6cebfd31decd7785ffab439b2f58e24edf1d1a4fdd8097337cf0e67da834b39d6f7db229a455f0420afb26fa641fe96fd7c0fffd42564f08254fcfb2b0e94e607b483c3bba53467a220e82efe0ba9761b3b2459562ed742df7926a4a31c8cee3b1c85196923c3dd853ed61205346d80320de7280644604094eb51ef8d96c26729e5462509e557594d4559dc608883ad25cf301f23ffe2fff83f0fee23305b59c03ca852b982177c03b38f6784769aa98107ce8b988df9665900a10f482a0411f4af72612ac0bf08b17fbb2a1879fb56b89038c6a500a11f222428b3ee47dc221efda4e09f8d7aca045df3294e0906f6587c4fc6b5ed0a3cf6ac46db0a94129a4b017012dea33e44ff3ae7c6a9eda801301af1458493f62590ad1ede19239fdc4736148842959d7984e6714206378bcf240d3f786e355119fcf7bd35740cc765c1facf1b552374d1e9fad46ec5cdb46322bb36a4863d3b336ed4dcbbab4330d6bd2c63459875481c606959f8f1197fff4bd0da9756645389e30a9dd8c518439d81a6836a9c3c0a92fd4037cecbc1c0dfd6d2eded5c1514d1c5cb88ebbd28429e8bee887e16234dbf12ac785bf56c0306b4c37f2b677968eebe48ed1389540107fcb262f188e5d4938316331c45fe6fd6611d25a38faf8c1ee5f4a8de24cf888e20cb0784ae95c5ef8cdf40d7eee269b3332b1529efe7e91cc09a76f7cdf2c9585c88c82751b24cc9ef5d6967299f836f1cd3bf5f5dcccd89f6e6867d0c73f14d21368f95410262cfa804c9f66d68a4d250b19ab47d6b5c8e9479647e3b43b4d728ddeef9541b6dbfcf637654c6d5670376a7be2fce9f51937fcfae255b3a88eeaa9f76c1fd2239f8f0371b1ebde98d8058280c4ed161269ebd2d3c3a62271d1e7992d8b219756bbf399e0c186b99e8cb245c7b78c763e22f4ba32772db5e3a2af20a74e2b2f4cacb871b9a9b365787e36e6bf870d5b8655764e1c8bac9990fa6be2e0ae9cef4e5537126af2de8df9d45be11b5614b6a080326d4f9d21ad95890d7da51f2ead52d091fcfbe2dda40fa15720a302cf58c878170b22ef4b1642183189314a10bd2b7400b27adaf96815fb5c4c7ab7e093ab28a1b8018dc64129ea444e1046d19d7e35d8482dc15113dca6dd9b9712e7287a2c6c52e8d8cc11d3d24d611b17991fd92324695fc836170a5c81fc697e232b297c08d49e4491b74c7a571ce97ce3f09759d36e2d7156134ea35ee5d6ec8a8a32dbd88f75273a75013b203108594f56738f43404c3b6cba97456be2d0982b8647796126dd9969b4d21f0d242a16f7516e551335d3c041c08b45c0d8c486dce28dc0956793ebc4699e288f402b01ee2e0096bc97a079701f7abd3f65c88b426c98b27f292cf1d3cc5af202962db7e5dcc31a6a99ffb5b2e25240747be45c82bdb5c3e0a621bf3b63e0a6505e735b638dcb049a5a86cad92f640ce268b67211f11fabae30134f6d6f3e2c5ac19c724f4d97b05a6f63e7db00f5cac04aef8fe1d47144630be1b0a6300fba0650ac988b1e0f2125b7fc2b7a001978627d51fc57d33ff81f5393827c94c0cad9fdb26a814fec8ce440e5982677c90f75b13ae1c2e30270c35ad8ec23ee44b24b9461c819c3db9e6e645d9745aa50826cbd2dffd371c5c308f7eb8c38e50468c8cc8bbe7b41a74348b4f986f2234297bb94c7904e53f005a2f6cae1c1d9c3dfd3ec542990ba717ef2658e5a5f8ad2751830ac1a291cbcfc61f4b3b2029352ba788c5b61d2934d4167fb0a2dca383458aeb578bc75d95eaf9707128325de4f9a47ab460e613134de44e744cfee83ee002bf377558f05e0bf42972280a3a6f98594d535be3e51bad64b59eda31f719bf80b7b01b056ca4ca601ca5792d7168f0d7ee4ec58d79ad99db65b526e888e36fc865e4ed1b0cd1351044d4b0acb997d0b6042ac53855eacce524fc17139a2b193adfc4e204fc41cb396a8a8e274f3cca9c43af7596fab104e33a1dbf944f0fb03b0c4b994c615862a2c12e47d3a95a4bf2ead7f8067df9acc19c42e5944a41d567311a42f351468a5bb6525b0ec99b436467f3a2da24f10d310026986302895880a630e374a8f573120a6c38cb3528fd3d5ec5713478ed242eae62620761195170b486face382721504c23dfc6a1c7010829927d53bd9dae466fb1a2a71c6e57b95dd758362f0244c93f5a4973d45601dba15803bf5769f27757405044c398e9c8e2ba7f3e8ed38723bef1d2fbe71a9cc395011fa0fd48ab78f3058cf8f029309acb719d84285a0154228e4aeb8d9f6e24509faa1195809524931599cce511cf02d7001c4810aaeaa65dd8efea21a0fa33e40453ff80360a4b1f691cd3d8ea7bde28124b45a12de95ced59b9599878b5c92f68cede40d9578f8f71b3126c3e18954570a7e539748d07bedc10f3f1900efdf72786f3ff2411d61e6f1537071bb453900fab0e79ec91a6952776bcaf8e93c21b6d61d686c58bc0eb712d1f5426820388bf6407d10cff61932efdfb81f627c43f0c36ba711080c592d7ed6e31059b9579af9e8e0f425432055d3007478ebe97e50b60a9c9f71f00e6fdcc307a644927471ec6c6e8787e2b99cb162275f9acb0e7f16c1fa2b52d77b8d2c062f9c80e75de8764a3ff366d6cdac9b1937336e66f4a679263e4481bec86c0e785b1eda29d1c98f7f329babcb43f7a7ff23febe7a612f4eacf9e6fe4d0bc52045113ef7687a85891438002e2d3d73da0f2aef7356cbc3a07ba93d2eaffbc0674e2f325fdcf0705d0ddb0f26fc1909a12fc0995f1fa53850d09591851927d7d894c5db1de2ef0db5ab5c26d919fdd16b8728dbc8a00dc2cdbb076f052d8e5b663e46b1b7f43cbdf541a0125663710da7aa685770a605bff7dffe36cb3ace3fd9c2b0e146fc0f0cf06e19bb610fd9807e0309e83c1769c1898c8251a9fbe0a45b42c2090254d0a5c6c97d78d13564c537b79e14075fec41195e339643e6807c9698edab307504df2171b9d5bef0bb4dc79a7d06cc5ab91faae4ee2e6427a5d4908e2d621591f474e73eb3eeb18a4bc23b061fa8b0763ed9b05448e19c398ea5241e9c89e7e4b171cbe2ea9ea114bd6a7ac3394e75acee8df602199c818614a2b596aeff180d92bc22fd19960e938cceaa749f33270bc7831e99858a363972e7d529f01ac14edb3abb4ef4fb08ca9b75fa35b2ef8f69fd6a01f44229c477bb843738bcedc1e358e9d7c1df809fc0dbfa5117f885b465eba31c9ab658c5bc04db2277d5335c2f86e90b0c3f7f66ad94cca51e02953a13e62eb9b51458f453aa99dc4d90dca8daedd17cbebb09c6223324b9cb4356fd6c05c7b96e0067484ab3d603354424586b95badb57c4f59702d91286a89c629fdce31c5b4af1ee26481602c8be4228dabdd77f969de835b3ee2e739539ce94fa74ba55a276f7670774afb08b4b178b9e6c461a3ca5d4b41bcb9c51ba08d9ad009ca5750671b8389cfa54ee2f3430253877e35314f004bd46ec03b3f9fba51c6871e8581450629163fd433681477df3be5de2f4eda6844c5dc080f021f57698de3b2e6f72ebd305dae103f5da7c656d3a55fb8715b9dc3dee2559915e003d9addc1082a301a586189d9794b7faf22081bbfd2350e6ce53ea3a74a1ec16a5d6fafe436ebc73156e629c0ce696350c7624538cec6ad799ce221eb26eb549aaeeee78ea2affe251508808e1c5878d53b9a96e2a08459988c802027761a951c0c42b2f5e14f0e67a1f18c2add4a7f1ec0453917d1927622c291508cdf8ad2c652945a26676b6d29111f3c812d999cfae06fb3e815759cb278482a58ee64ba96bb9412e64b4668c96554304205a6bdcc42ef805e0729d7c7278673e28dfbd21d8222e9b924db0b2c30cf6c2893c0f42eaacc05a5195996f697b53b286d06c68c378ac96c59c187d376da4389eb18a823e12ebea94988ee9f69bd6c16d269bd87fd83ce03fc3d9caf4456f0449a3d2ef2f254c5e4f2ea11fd73c979183b3c0309be4af82d0f40cbdf454a732c51464df5c433972380fb3b370fdfa871c51a9881e5b550a2771a874412db47d662233c3bbdb7f3381e0894d30e310a65299112d087876abcaecb50b6070253aa770fcb87f971c4ba44164e6f2ec051cf87b5e9417c44ba1e3f78aaea84a5f87f4fd62eb51d9daaaf1f1015427df054552787473e8891baba02a5672f86b83bb68dfac4a9462c50ccc9488891aeee2bd9800f0f3a234760ef925b5375e4c49cf16cc8370795c804eee86e04c4bd62d9940f17ad4815f0ac8e3c5afa81266de5820aa24aa3d4191171af6836e6cb452f428173391b5dc449887a0564f929138222e28da2a07aaf297f6af455f0d90ca4618fdb88b75190712397cab616256864918142f0e29065d63e2b484e264f77a62b48f0b4796f43300bdc923866e09d6444da6a534ad3ac3cc5d63e241caaead402a9f2f4214b745d303b33ef21ebeea3edde8c9eb485a5267c0aaf09b0e8b968c99cf4bc549ca90e2f63c569aac4527ab023db8512c4de58b3cb4abbc5be08b318d9ecce522c8e19c6367f392f0cd692660aef98ca8cbb2929381197f8ffd86ec5c34c115381557ee376cc8149f0ed1687fa1643033f5141a5d2aa405cbdef35da4ecb5865710ed4fd203d7f8bfb560548399c975aa23974f7a99f600a2ed82556448169ba0f9323aca45c9f2f2de6b46bcc6a9491129de294c6ab547a474575b6793e1bc4e4b88a278d39cb65790603d28ea0c38f3a4dfc414ed49d5979f7de0873b0c69ea7a9e0690263ff338470d337e1d2dbf33edf934143e4d649ae0948a555d6f0433444beacdf5a3f54e795c9412daa0c4e84416418a682e37f348dc2ef39582030ae6622ae716f793bc4f1510642681ca7cf2b77d66fde5b290d826b0858500b9fe762e5516ef0cd8b2cf2903f9a166d3e889fc329e466e406f27abdca23748047914883e1bf3452a41936fb4ec6eea749f687c8bbc5f158531d37328dc15f106fd4358326bfc8eae62fd28d1847e6c2c651d76c6542011999a48d0e8b4df4a70e7cc08883309cdced62567b0a4f255544c5751064b8272e60eebcae3ce5c434516fe84a38ced3ee3c92b01a618c20b600d27e988eec8f79173e006f89bd54805675286f9845a958bcd84155a8b9b240ed7ddd908414dc60d6b043e5c5fb5fe67a08cf2326955044af6d686425386ec4afb997d79090e5607eb7eec10570a41ac419d8c599196061ec360e277fc5d146d1568682e009f440f50a44dfd90387c4dbd2a4d6efb3f19647725dc3a2f1491c653148bdc2b53668f43d3f8c54c5992d75a1bb043e6cfe47e26c18ab33e9f357a82ebb921d55699d72bac81d223b3919f2a07cb8b18272c186652e021f8842ab78697c4065c92873c6a85f63244457c6b2119f1bb58805ba391b59c43ace977aab99099d0a246223c96a5aa104e9785f337090fadc790faaebb86332133546da973eff4bc741d78e9a4a0ac4857a5db6d3b13f26a1401ebe4ebc91235b680c230eed27d9a61967eee999d85d1a4c7290076e3c46e46836c5b06f484d7a1032d70f94039d8943262ad10b0278eb5a46ce060e71c800cd3d86efe3950ee6c7fc28afa48af8fa65239c602822d11e58245efc3d8ac1705605a778187123d9518c902de68b004175801123ac9a2bc12b53f7643c43c7a948f9d61c4e6d250cd47d701eece7cf6da870971010689a109a39b1c070b2d0408c2e3e7608ecab871fb090cf1c58e8294efac5f897131772188bea9205ce07a40bf8b63a0e5d452f26927ac57b84dd1cfb37f52173dbf127db8254a9592c0400ce9be77d7cb95faf4bb88b1b31abe7a7073fbe9348d217cb8661fc60278e246bc5d369c0ef44ff4cf1a662868f1d46814d0175216a3b6139520fecafb8f6e54eba23b50db7a70d0a86468bf739a91b5f1e902a1a5d1da7c695f600e2c4b2aadb79d74263ddb0dcd099365c0df6caf28b3bf5a252d5d72202d56dca986012174093fbe264906917f239d9b87a664faadf8f2c027d5201b308eb7ffdd9c28cbc53d6f9b392d60c1b169435c8cd7f7455539c7854bfb4f69b02977866cf372d521c60a4b3fb07b28c43c24f08c33b8a865c3a21ca82e19efdf9db5423ed0610108d30bf35a191b5131fca233b45e996ee7deb58459500bb7f828bdb4711132aad8e404728520eccb18be7231978fc178fb63ef7c9578c6a330acb2ce9549760e575c319bc8de910a002984862ec1afc7f4431b0a727184d14eb8dbf1bb0a85ca023b4f84aa66c94c30332dff9ff1b3600424338e04d41810a3d1a00b277005428edad919eb0349d2c0d7597dffec7922156abe9a9a2e9523ff22eaa582a48e697a1c811d5c03e92eec621ba7a6ac46b74dba4eb0c466c8f95624b75fee651fac38cf705f1f55d9ffff9d6ad39d194a5b0e853d4e045215c303a0fbabd35b0e3c8026287c7e66b5034f8c224303960d55f43741c6a0184a435289d9b67f4f99db946792d50f432371d57c6d32a2f3e2bd25439061f0d89f5cec1f36a3ad69908e03f1f860f7b5ee63e11d8eeca6db500db4853a922dcf9a11af0785c58bd9893c68c630a040d23c48f89c428939ac7b40b0d2716ba1cfa4db881c22c5669aefef09c149076ccd49b6f9eef060aa8c48743984459e336a9447d3249c2a488041950736f5ea3959068d6d8d7696d4d6d6b109476daa295eb62d937161623e1b9db2289b5f5214e051dc72a04c10436a0fdb90b406784a620546dc1a06337fdf3bf7c317abe25574a6a3fe26c15d520635d5e506abecf32b16d529a418c698f54064411d066c5f3ae95d1938c928b204fb096889f18918003266192afa7fef00a008134815c75be2f095c1a608e804b49f2e1b84b14008895c02646839f24a84eac55530bc494b40dd7f17c354d36036fe10955788b9b318cc20022242fdd9f5da5ca869398e3d7813ae928ae900d943c7c72efe6e0a2f998497065997fb17406c1004f6fdde26112e45bd5492256dd7e1aabebc2a7b1732b82abd8c02d041451dcb7470d96639c2ee2ec9ff9193395a00a6bf91bc1de8c616f26e6f9d547c31991b960dc57971ec0e4bc7d2816c42ca023dbbb440223d9a8c3470fc07dd5af1e1a0cb6a0ca91509c5c78f43a872801922fd267f09240d51290dce782217de6f84f5583c8a63f08c7b22904d6b180c187527c7ab8f4f36abd67f9071a1d89c366074f49b56c79ebf756088b9a92a12878b01616c229f2b287a592847106a94511e4ce003c9b287974e91328275c1950ebe6ce047c4668f77e4fe0d46e9af98189b5b8c5d8739a8f1ff3d5f2208d76184a0fc1c061dc1f8b7fb32f30d1bd7d29b798412fa8bf6102f955c04c8b6c63f6dd6ad11694943486b0f708860bd6c2f083825c294a12e15d1890e70d92ee8006e994517398288a424e5ed4fbb9af96f1793291ee329d2de042607c46ecdcdcc955062127adad5317306324f602ab66bc0aa4aaf228264e3bf56082be977ff311ef41bdc90cc743b4f4cbc3b708d618c34a991a06094e7b634bc6d287f4744c0913535fa749dcb41fca2e61ab21bd2505972f4cc0647a04ae5b9a303273171512bb28f13684d6479f445f398b57d9ab58f5263ad28950021590cea4529a818c27072291b6ee251390e456bb86f1602b804da2820d9e1d158a2713d7774a55b1370a2e4871667fbad731889b5c0e57a94541430f8f44dfc85c4b7eef0882a691b9845726999333bad52a019fd40ad9c4b660b40332cdd8cfc5cec5d0513166040fe64e4b8845c8e32d844cb9e8548bcd853d2bbcd68a9d20b18e66934f0c64e71c79f99981407399d0acc664bf50dc726b34079326e9d23457ee856b7bd20df6a32d71bd8ec93a7b35650f8eddefd2190dd67c4be41d3631b4196d081471b22da94ddfc2a9294738a9d067bc616c11976d425cd58e708bf6bfb2a81a190ed3bf551489b68b98d468c2454e18d415085bb042a8049904b01a219e6b27ea9c6f47503eba49f3f163397a838e24ce3f89fb84726ac95c8e1787b31e488f42c89a7e6583bed5661299b7879abd52b3a10599062c83fa912298841fdfaf404cd02732b9822dbae0d7ed8e78d9757e5ea5517fd09e692f7274455fe578a7417bddc19ea72f6d4b95bc2bceb29412fc742ec3e268f2b1817cf56eddd810452439bbd83033cd060b54829096160d373d3f2935e89ed7e2d154a9ca6e0aff7eb068000fcf9cc2b10e04f18a187b4b6fbad1c0f3c2e5c9c5ad740b8bebb730d4a444f4b8d4b44539410cdd306c5491c416c2bad99b18f584bbcbf2f48bf947d36c1cc3f128f28eaf286fd01e85ade7ae3783d4211efd420841bd61ebb80568f609784f9c3c1a81577981e0bbcdb6436f656376d67fd55ce225353cea5875a00deb2b9e4f5eb5562cb2cdc1fcb168e44f4e2d1729515fa9fa0a59473e03ec49637eb7b0d79a2d3f37e088fb1f65404aafae2f0298c2406314674251e795bc9086d343b706576ec9bb49d0e373931ed6bcae51e79b600a4db24d533918a8a6b43f455b5fc24ff7601864779d37488a0586b0a1511e806d02ba84bbaa69328858ba0b161d7b73097b8ac71d505d2d581d6660724c8550ee08f038ba02912b0adf2bee42a6aff9ee7b79d7dfc17c43393c3e2d52899523644df394fc63ee8eaf8c6fd0d509e4d1a0a10ec240b638b74d5af5100d7ca4088243368e5b0bc8fe59580a4cebe7cb864f9dc353d52e6c38d59d85e92ffba188187b481b888743a8c0002c66aa7ba2346db9ec61acd804bebf9fcd46253b75dbf0798e6195ca5a42b6c1f7cb5664729edcfcd90ebecbaf0526bac9b064c7d2b5fe8ea0c6679214d3787800f7ab48b129a01035128185b7b2c3e52d06cc6248b6c915e54804b5ca35f6cb1204573e7d5e3835a16777560b24c4a667f6cbe7ce12cf9f11d0a0419d8c097906c1b529cb30cea1b8326c9e0a3ad597be700a494029d1ed597b1637013099c95de2046c2f73a7473d1e1c19888992c08786c43ec8ddb536467231f589cf82cdfd0b77a24e9f07a6b5e0703525cd80c85079188b03bc296e701037e81c767d0c00e7769ef41036b80a8f4466b8344c64e6381a951e02167e63fa9ae032ece67c1f90ae5a69d13f958e148df60afec06617f61285c10f06140468444461e1c5c9eaf0b3390698780c7c30ca13a591ab53638897ebf564917c6b7b7236a3896b7fa248910d1721bae300bf9f1fa0b36303d1c3a07084386a967bfc7a863b481594fe8048330e417d72fb684bc13f3bd1a4d9a0c8875ecf53d4079b55c148f44a8af3d6544bedfd7b91699de0f2b351022809a31375c758a6fd46f67927c0c6ef6176aa08abc85cd3028ae1636865bf0827435b7357c8f5e5e3db69da81408d3e4fdc9fc93bc7b97a9d8f131b62b35609798083d64886b018f7caab6e73c0bf2b8a4d45b5d72286af2df642cc97bf1af2032d256d8f1ab4701000eb5881c3ca6e0a303a99977fc79d4247cbaf7feafbb6cb032ee5ee3669b5da897cd6db93e67d9bfc4a87d559352286bec7c7c7bd153e75b510fa0029867c27ec6d4e1c59ca5eaea24dd0172e28728f81be6db3b83b52e4e34d730af0e59b6c8d93c201ea657ec0b23cbea2d1c4f17ee83ebf2e3ebe87dc3472a72b054d2a0f4880b689d8e655fd0ad838b7687b762f4c05e9db279485cbdaeb4ad900d7610d2461c2b754c2562f3843c36fcfd1f7524b64a75f3334555b0fcd690ea5e992eec9436976ac7852ac8ff84c5feec5dc675abda0259b2a7a0696fb6384db12c995f0de06f3bf754b1cacd041f99b9b5b799dde1ae052aef6725582397e6105ca82ea7c59b72815b4fd518267d7cdd33c0786a169f8d482f99358e8cf15b93507643d9a2158ca38df0c7328a8f8780f5beebdbea7df3df6020808125b93baf8f9839359aaa132171938c0cd2499f9a1c3ecfb63d4d8484737a546ab98650bb32ac369f9a4d544c2dd5a1043704b502b2fb546a82d574b0509551a2020aab0a73a5e36265f8b49a5948585bd6272164962cbde85fb8ea8ecdde8b43bf850fea080e67bbab64baebc954fedefcb3c0db124053caff01a7db99a7a84361dbee3e87cdd16be7fe8b09e6acd15a6626110ed5695f56e3a339d33c0fe2166ce39e4b5ee9bd2dbd56bf26acc9ed36593b16d67a4d9d7b706492579563c1ee9747ebdff9ba2283ebcf1f4848f259cb341fcc1b11542b1cf05d61d99af29217f09200ffc42d0efa6decee76c4d5250598fdd8d40f4a259efc49c8c5d72f47cab066c666ea72d5da793a203b16206d4280d580cd38b9806cdcf68c5983b5a29cb003d51e49577217f2ed5c0b63c568ced3d500c173cfd48851ed197435c569afe5c59d8f4ea367f6a2d37c3c23c79c3ddd912de050c32208f4f11b9ce4e4c1bac06340289c7356252c85acaee09afc6b6a8cff6411f34490c3ce5ae03159b9fb29414b19a39f15f1456af023b3f3d087ceb975e08a0f00112b62c0164bac4305986b40e93a8ee8fd8c7fc0ce8dc44d63f1a95cdafd1bd860ca420dd9e1a75ebda7a845ea35c6dff655d39ca02b46ed01023ee8234cb57d6ac6e05cd7fbd5f72faab96d872b8b7dfdc2f11f3d4cb4a9b606033ac615aa700ac2f0be695a5bfeafa3ef15eba57c1833fbd8a7a697bb6b02bca0f92f79bf0031417a939d974c392ac0160665ea3171a1912c30acc2132faf0f5e872be48181730c01e4f3693acb0ce5c26da65436da31193872e0bc394fa9ef17289d592871d7737a38b7f37eaa24891c470e523982640a6c0a9a70bbdaced20cd7e31272b716b91b37fac40a0dc912816d414620e281ff37967340051cd6be7537155326f51443429429fdad9593145129a0fc3c5361e62b7bb141557a232aa89c4b83b2066929f8373e22364646d10ffeb7718f6927f48a2174761c6ffa2e4025491c3530a08b80f57b0b554d7a05b4a48c1b5c0487a8649c085cdef2dcd28af01cea5d8dc00e781bced838a7603e1d42520f28adbc92908b7003285db944d53fbd8f1415d4222da184cb1cfa91a24c8bfae8c383c56304147a550b878f15782ce5a175108d01abde47020e4010bb6285d9e3a4d1bc70256675ebe0fced0e83439c2ff1194a224c20f16c34fa2587288b2121788605cd9f8551842565850c8b27a0c5ce2aad4d718e44b9eebd825f7188ea9900dfed56e03183d6f93982db1482643840bd1795e19d16131c79df07ea022e3424719854502d7d5a97c7f683838ba3d336f6f6cf0d31b4852c082c6009417efb319afc5b9e8712687360e5a0c1d9097b60cc9956ec9b2c102a0e81151e9eef00655a23501f6c870f71e049b12da20217c2dbe6104868cc661dd6ad3f1f6217d7390f8554803f75a662adb0c51822f238f920a1f404161ff0ead898e18fce23bb44a554ab72c3603d8ba6bf6cc9b23263ca8f0cbbeeb48eef6921816d625ba4f4dc8ca2d66bc7b64988313c6741e377b231a5876498d421bc7713a253832335d683a3240905ae556b535606a12f985c5800baaef05250023a77fc2e0d5298496cbaf77b365e63f3ed57e6064e699c0bc1b53fc384f399a82b03b36cac6544dc464f57c04249cd73628934f410200008ca8ed5d137de4957669c7034b4d29dcc90682897e5b774083e700b77656af8206930f1b6d2daa519da20d7d1569c2c4c9afbb3ef44939b26ee1f71ce98fa58a6ece66d89ce665b69014e0515a9665dedc011665cbcc2ebaa31bf8aa52452facceee361b468a9bda0c927d50b36c34be36e9f9edc93dbd7eaeb170dda31c3d1ea201e8e8967255f252140992134ed3aa6ac466c30e941806feba473c1c3d1020b6b601f1039089480308a21c18c219393abe544166e07d7cafbd166a683b4aae5caef6405cb36d16dc829aeceeeede9b3ab0b4cfeeb76772909602f01be420f61b743a829411ca91a2a50bdb922c1c5c878483568575f23f9265afededc2281d2efc545097f4ee2148c21e270836a8397da7f06081b3d3644c8d0c0bcc98dfa7573108a8c1c246a3542514a19199cd17fe1e0e2d7c4459d3c494bd408715068a687805d42485410a486a525858a0ae7b62e94744c85aa43f2c38116a359c24f7648e212e4b3bc4484145214e481e05dac68a32110d7068a1f38daf4e1714a9e64582f478f95d28d2e3559b3436ac221957c6810e09d78e926e4f01357c6284e0eab86972f4e505a7c415bac8a737b4201198113a0001cc77c0aa1d0bb8b172b311b5d584f764813c5b9354c151b581ceaf81a19634bc08ea507865a502832a93a6473314e05b47848e52f9643490444b059a41294945262c32a2c46bab47a24d7bda220432d2287d0c1ee01497810e89a514230248a26d126e39c8119cc083a3af471490322171e9e12703045395045a9ab234d8f1a8c3923e78dc196512288082ae4a7902a19260a6447dc2c19829c0b13a1eb850ac2a55610a0252e2388952af623442aba822c86a4086445a4c065405a214e246d7d9131d666e716544844840da690406ec90638d292e61fb16dcb1e65602862a376b823518d47c88148f1637a75681519004c31c481c4a3b44dea7221c4c5576ae080e64a26812760ad4fbe59710d5060c63d6924815fa50a1e489a417108dd5085506430929593f5269252df1361859a4460ed106536fb254a86fdcb0d12716f3e2c2589f2c0c6d5c0d1dd4b16bebc03b7708820c17ba149000165a0d065881b81e01ea130737bcbc62120d695e98d5999466f7230ffb53536aaaabc498fb74ca89854230b8c45ce08280c314b54b834d6ee6dc12e89a2441c396583e85b5e0eccb862525d87cf91dfa8d75f080e1014c6ce21f8d1a2022992bb9aa7c339524e9b89167ed2c512032af27af547b7c58d84c0141f94958760280837d0d64f1c1a32d0b0f370e2530b94d60c30b97855666a8ceb048cf68b2bd3c49407cbddc2a18a02f9a606451a5290f8c491dd8f0dd422a59027166518813c9081af024036c55e952c306281a0bcca5ea12c22852064f86390bd2ac3133620564aac7111c71894ef87e7e3ea9e90409d30a3820bf3a4a46806c5d40cbd878e090a442451c0c30d0284c031934f091b2a680311a43cedcc89071f6648607d80d02707c1695a92489528f0e5e6b3269756943d34542e2200d9a417718295a53a14b899784372963066169abc0049324907e1dccc4493181401a1e0acee0412198273cd22251c10d4916e85441d030c07f5812d400432956b44f0019a626358ae0420adc1d071c44ddc57054a7c3282b810c297a13011a27597226181538a555034f9e4b3d3a756203033ce3095d8a48284eace9c292c053a3868358a6a2161e446a2ab80e5887fc5cc0926586e80bac46dc03766cd47ee2b4ac75b8f088c786f561c78bc41a0bf5047bc294d900e5489792572eee4d16ad1973463da9f083d467b8c988e3627445fc31aa3107ed425aab31253ab47f9e24e0e0c20b50212669b8c4428229118050158b4d26452a138ad18f3882441d1c971b0ac84827727271b0b802a57853230c893195102ba0fa8c8559a0a165d5258d9da61808505265e68d1508ef0fab0bd9132852da1c40c84b1090d55b88cb2c890061c03a878e3c61eec4ee6068e185a50c9d09ee2a9032a56650a441c22e147c5d985861958666238b9a1e24843c0097d8520082ba3b1e74ac613180fa86078e3b08649020040368ce9c59d258fde110c78d89a0cf7df49d088978a1c20187292aa2324cda3a93e10a949f2f4bd22f37b46a024c5b861c3d5c99810343ae4f182528bdfb819c07371224c0169761ec4dd28dcd9f5f84225a880a584dadb030a8022847695a3e99a1d2e5c785026d0a69e169333328c8e7b3a51d4c294a254948a43424d880d0713384cc98169c1f2d68a49cf171c38a5a1ba219230ce80a83e3220b011a66a2e65c3a63041329b70e6ee9c3d063d30027640216c13ad608b332c5895061cb0c219286583a522929a30f062e612658210bc18346872cf115485ede70403268c61c466bd232338b15771496f0c8aa792c6254a6064ca720a7d7d0994d01860aa95ebc703480930fac254800e4a0b26a032304b244729207c55009a44316baca66611de0a5930dae2d1f4e99b96462489fb20b49b62c0983620befd3910a01a8033f04d820c28f108dce889f3f214e022e1e5198e097458b91b04fbf0c44489092c093124178b85a1179202963093a502a8254cc19b14f1a82586a00929e3b741eb5111a29440302991f5082a7118fae20c0298c47c3439619075c492998cc28aea52f75c6cacc906634f18264aa803c079cc13131d356814f00217cf800a90223278200d638814ea1b53756105b13c8699249482a895f454ac31263991aaf1513a80d656065eeec882084101c0de083d51895328055272294322c461a7c39b075f7008c365c19b46829a05cd5f3ec974c14b433ef9a86c7d85a086d6f178d75b44ca4e93868e78bf53f068b4863d0ce17bf4c1b3f3198acefa0f03e7e3968e78b72c6616c4cda5e4c6ca5b38bbef66c64b131698ff96060c1a79314211d28e463ef051e20a61a71b1882bf4a8d2dd16169d52b9e073c5cba61552d6d4113cede9b2409a070a8c22a23641d2a8044eb568b3a9506251131045555cf2013b0e42f2aa659ece44c51b45a9331c660e16b0f930f801f6c64daa0c2c07163c44052c60860b1c00c627475ea5c5cd09029ba2c22046d3e6d1d2526607180a3ec45a78081680645dd5c79107485e13dc220a04100156e1b8e533976ca294088b4899ea0f9d99039b58cc7825259289422944acd07025ccddd8084395dab0d400f598127e1c92e0c691f01ff2f86ffb1b83f5bf87c1225dcfc1f81fed14f1a7231545461313fb325dc6e67793e989b839e7bc64b1a22cc5e2e2cadbf6c732261ac76cbbfec37fbb3de9f1ab7bd48ae8fadf118d44fb1ec2e53c14dab10b5c8168585858f21ed6fe58b7b6ffe1e90701f727967eec878d847f94f2d1d5d100db976068a5fded31f917ff8d56fc379a7d0fe1e47f1f91b530be3dd99104e7f53b37e3bd89487b181bc7ba8ddf4627f9d12b07def6979343da606b757fed260e6f23b2f86fb43f2423d2f417d6c9686c65c57fa3cdd9bef86b3ab6877474cd96bc65b439dbbfcdd9fe8d48d36c9f28a3057f7178f3307ba9a245ea98b37d31f86b3a16139bb3bddaafe9b257afcccc6ee32fde36d2873c66cb79e28bd81eaafdff22073109aff335da816698b18eae61a1ed85c4b83a9a3897a5d0f6679c73ee262646cf4634db0bd95a04eb7f9c8b6922d1df740b3b5fb46d4f6c71a2c81576be68c7f1b1820f55c4056b3aae06daf7b08800cf5824fafab3c96832f10f71c89eecfffa456c0f8b6262b6f1cfd1b798982d26f6ff1cb493fe48cf46b4644ddf5e367a35dbf6c4323be9d9c4889fee13c5e835fbe310dafeac458b600b31b13facefe0d1f6b797e5eca29858fce9c4c4e4db0e1eeddb076fe3b783413afa18b4f3c5b5b360b0c597e93219ada61bdec3e2b0be8d7f781cc6bf5e3b32687f3338198294eeb6fb713cfe7d08c1bb66fe8b35716ed7441fd366b81a29563ab087fddfc2849c3cace1b1122be26f2318ff28067f1465b77f37b483bfacad450926a31dbdda8da483c7622d0c1e8b4839bb183c169164f2b76b04c5c482dccc2fced407db48dfb4912eb6f166f06200e7620fd335bdd62028a8178cc2fb056f70ce85f1ed8bdcb46b600ae0fd6dba1ed219df08ca685162000031106c1a84a681153ab81a10792027c24f4ea22a259ebb9ef1d49c0d4a32d5116141499a960f54289c58bac4891366aa6b802e440c18603684d1db13160e34181527c7d92492f56dfc5a8261c7622decc2eff88f1744379cf70ee09c2fe0bd360e0ae09c13e1bf08de38ef1961b3a602af72c7ae819f361a3fdd6dfc7474493bba3eca43da8698583018414cacfe44a22f73a367235a0bb015354df465626211c4c48276d0f86579280c0e8f3e78b46db64cdc36dbd87cc43e340d3fb61d6c32d85c3630360e9cf306fc679c80737ebcedb054cd00f39b61a2e2a5d85a1d5e8aad2529c5d24ab1b5ad524c8d12e7a598da1a5e8aa9d9715e8aa9b928c5d416705e2a2ac57e6957d2e24ab1b412a5988c3c9c73194d4a3199ff646c88a1a914d3c17f318afc629c71ce4bb1185b9c9762686ed082f0520c6d8b73cee32bf8ef4cc79916ce39d0aefffd8bde2856d2b7ecc962b11476580adbee077d8df4c8d938e6e66be4d86df7fa1a39762cc6378af18d627ca3ac464f8d016a38efa5e1bc67001ace7b67cc70de2b43660ce73d31616ad9e88bdfcc38a3fef59fa36b3223bdf67b9b701ec3c739e7bd768f46c18064a76e01569cf31e3c644197ca24c027ce39168e639b1a06b65e9de29c2f4023c600362d3c82780058d131838a932e79a080f260a266b0420de7bc97f602b0090a0928aa38e7585c531489ca42401e469cf30605609980e748cc950bce794f53aa2a412ac89289e59c2fd812e7408bb0900f4b9c73dea740a81613490f24ce39cf117c2eb023801f95789898580bb6e3718c7e1313fb2a6dbfc217bd8d9c0bc66f039efc3292b55ddf2992471e868781e37849152638e73cf8cfac03ef4033eca6e95af6ffccd79eed3d16eb33bb2f1bd1cad08ec5fa8ce8db92f56d7c65ffdbd46e9a6ef302c6cb172f5d7a5cb89b9e3ce4bd1ac06fd3c4b8b4bb91726579a46938081180f22f5f408800b48dff782c16e9782e891e078f37e2062fce4ff1c0ca388f15af4125ce09358ac4796fcbcb5b2081014a8fee0020e49caff50a78f58a73de33f67c832a3d6e343087f3b0241a1b9400ca19e9baae04da30d22e85b1d1d764bcc1992cac0e0b50992811b487c0e49f0b7ee869e1bc47c003076c32cd792f0be7bd01b070debbf2854509e390681cdae0dd59a108b8638c6719fafa5641f4c3fa2ebf902ee122b28e8536f218a46fe33078e48e5ddac5da979f8e86d1be4caf9199fd61fd56ca462f26061791751919e2d0cf7137b218bc6d4f8cbbfffce948fc3a3152760dace9dbd7ff1ec631d453f413b3e3fc0fffb96b78d2e8fd47ca9e26027d122e7dcc794f00ce7b56b692f7ed65a14c1bc5c4e46fac9bf1657aad5785f31e15de981d6e98fc4a959cf7793740fcfa988479627a157ead4fa6e3e014ce7b527a0170de8bc2790f0ae7bd279cf79c70de6bc2798f09e7307e905670de5bc2794f09e77c412f09e7b148808ba953fc12e70f70ce7bf0dffa4afec3fa3e8166182c87fd617daba9c5c519bd7d7bfa2e79c4d9713a4ab0611cd0df1f58df368c748bfb355d062c819cf7901ce1724dd7d9b66713de1ed9aab69becc95af5db9e4cf6643f5401ceb904fe93e3870c2f7f6893122cee8706d938e7366dac5193c73d383288e001ef47b7807336ae26e1bf4c7638973fd1dffe857ddbc30a467a45b4f8af47840405640fc459ac28e561b13784c74608e7bd209cf780dc71ce87c73122d197a5016fe4918efbff451cf27823e9f20befff67e09fc16cdb13e3b21c1ec7fe9f83f41d0cfe3f276be26d874cf6ecd09828314707ed21d0845d0631112cc1ec122382946025927f2e988483c1a071b8a0130b16658d8c1744e9e06b7f6470c216fa3a062a7e619a38e7b491c12f4c0be7fca68d45a431d84268fbb31f45f917d605fc812902ca1fae7f603fb01bf4fd032b3907a200c481be347e37b3b117bf139e7e27e8b5df09bb21bdf63bd175fc9958f53381066844d6257d0febec61697be1cf041bb246fe4c70cec77e2516e0bc4889b3121b803c7a107e241471b39e89b1de9febd1c6618f6d04155e82cdf41a5a49cb01e3fcede5e05dfeef1657ceb41d976366e517de741dd00b91756c6a358e357e0dac6b1f97f6a7f376291bbdec69a26cfb3a9b16faba2c127f2db48fdee84bda8efb4039e02fc1c0de88be04dedf16de43613cac7ff10b8f1f28671c0e8ba5e71117a7a3948dde1edac631004ab812f887f56d93b879c4d943bbfe461fdba0e3ba6f241289431eafd98c3231313bf9e7824122f1d7898989891d6d1d3c74945f085686d172a5fde98672469ab64b7bac04cab27d1b873efe47fbd775df58a304d6d9c7ffe778c4cdd1f459f21ec6fee8633b0ca6e9e48c724dd79546b412e8bd6cfcf24daf8dddf49abfbd59924cfef7101e0ae99acd9eb1c8e69c1be13f1e49386f3117fbfaad85ecbf708c86212616f4415a2e280b6f7958271b3d1c94bf8d6c71e6bf30e86b7f8c8d63aae2e27a759cf7e838ef2139efdd9cf76cce7b35e7bd1f9cf78e9cf768ce7b46ce7b45ce7b44ce7b739cf77c70de1b72de1372de93e3bc3773defbbd98f31ecc79cf73de8be3bc17e4bcd783f31e0fce7b3b38efe9e0bc9783f31e0ece7b3738efc171deb3c179af06e7bd37ce7b6e08701ea88d06e7857a6c33384f1b7b5b9b9103ad6dc6d96da4ef86352d8c53abb1167c618cb9b9bd6a41b3b63138b61ac11b636a71655ccc391dd71a0e9c1970ce859cf328fcd723cf8f6b08e75c68fbdbf8c338e7d9f0e241fe103e24eb4ff74be3b01c1ec77e6c047ee11b70a6cb193f2d54bc93961b1e57e1507e5a746e5a64bfac50b4b02eae4cc260ffcfa5301e82c595ffcf63f2d0b3fdff0268d3b77d1cdec7e290782cfab838f95844c265128c762b8171c7e14ddb441ba9c2048a524579a2445196285994c7e11dbc3f518589e3f02e11137d1c645126ef4f4c91a204bb6d641d171757028fc31b2ec14c1c8777491b4b94614962ed89c3a2115987dd46ba8e5b8b2bbd6da48746fa38bc4bef6f38eeff3918171757d6439a06711cdef5900e44f96fe4b148c771443f236eacfc7f0e123d3d1bd13ef1ff39f86d0fff3f07ff7f81f6e7e07178dbff98bccdfe7fc17bafd238e7b29186ebbeb1c2d9af4217e7143c71208fb81f853afc4781ca8f82f047a1a5f0e03781525036d2b03c0c0639e718f86f42130e94bf7148fbf84d88ebe2bf092ec6244ce0cb24ac8826fb4940c339e763128e9cdf3f09619cf31afc1721922fce28ede49f1bcab61bfe8b1000f0fef6f1389c7333d264757fadeeafc9f297e531bbeeaf4100c37f108e10ce7e104a52bf0775d27e0f1e98c6df03ae88037f0eec8e9f3814d6953f07673f075df74f9aa195bf068a68b84cc6757fedd7000d07fa18fcd780cd2661f66b600f39968435cef903de333907cec51e1ecabf581c96c9b8d236d6b4fced862f4a208f381d49dba795c0ba243cf4a571680fe9ec3eb21867c7d97125d02e4dc81f2c790f8dc862918e4b7cd848d7ff58820d631b4d36d26445ba7e71dbc334fa0deda6d76cdcf49a5dd343e2cb3bf1e39102f288e3f3e335e1fcc7bbf1e399e0401e7141a1ed853f5ec78176e9d9d4dace4ae3d86dfc6e3fdec5edf9fe6eaf3cd5aff400893eb679c4c5e9288dc32fcf331df66515493f479ba6d94bd0c2b212787f399b38f4735923e72491882c0eed245cfe3f97327dcfb65ad98d52ce388c87456f4ccab47d0f7ddd0d973f4c283714965ec537d2f5aca2aabad2c6b28eaee54abb88842b81717165dcdc8c3823d1237fd075374dc71f2e67fa1389be6883fdb0fad3d1b52f0a63e3874b1b71257d979e2626fdd1ff635ddcd1abfd38db267e239b5ad98d7228ff22d2fe6db227b3a049858f39e76f9c63e1e09c13b94f060dcee9d98856460783c09a9ecbb8b8d29795c3e398af9163f0ed6be4ed6d399a38177bb8f425d85dd3427b1682810051d6c35fcadff670988dc63666444b1289f4b134d24764d0e863e04cfcf63d2c3fd1f6bfae9c8be93aeef6250b16659c5d22ed8fb4eda127da377188848f65d213c36c5f7e239d240e8b48dbf625982cf789c01a25d097437f8cb341b3c944ba8e1ed6d9e5af33fefb1ed6bff6c66159dabeb43f5dfddd4adbfe729ecd8e6f987a60a3be52a8382f9622a4a7941b2ecb469a8c734e81f321f775f12915c739fff0eb522b38e79c9420526e38b77d2d17f68dc3b9fc35ad56023ff2873fd265f2be7f7d9463fa0bdf48c5a47ca3fe8cfa316a06e71c68fb5f7ed848c7bfbe69a89d48123f91b64f2489bfe86d7b5489510f445de29c8b1ac391c5b28e3e93bf8d0c8a1272cee356f50cc6895239077e397f2c8a7ac023401357d37172ed637b2847d024021c6d5fceb3bd6c1144085587730e94897439ac4325e172a810a03c857d5ff4f13d948d25283040e3d0cb814ab387f6afe5e8fa58d2c63150e527429fc024ebfbd7b7fde988df2ed2116930f9ffdbe86b8facbd3046bad9c34f427b58be7d6ae57ff46c3e083671fee9dbf8ef7f37741313fb72fef8e5fc1182221c821c70c02431ce1613b3e390743249fc43b94f948dbf3451a2943fb24c7e30e35078c7c61925d0e863646cc22e67dafe72feb679c4cd338cdfceabc5e92893f0fce5b28e269649a25dda43a22f0effddd03e7eb9fc489a962bc7ca21f1581c7e394fdffe68d7952692f7b1f8c38cb4b104ddd0ae91f16f93bf8df46c9f081387b5afe963f1bfc9f4da97f36cf4da27c2fee87fdb4dafa125e1f22379c139af08e7e5d8308aeed74739cfd6a2c58a35bb46d2b0506ef88dc1a4ec7f7ddb9ed8a2c5bf1bba95602b4eb4067d1bd14ab01679f45ff8ef866e47ffcffeddd0edcb79364d0d38e7329afced32e0477ee48ffadfb39c9c7f03268d7ef88b473b2eeeb68d432fe74bfb1beff8d7c979587fba1a691b6bff89347d2c655a78ffd2ee6ef1b6e2fe76f0fffa86c5c482f2ff6effd76f6435fd628ea6c96c9b46b38ffef666c92fe3b6fb6bc92f43feb7edd3e088f61d7bda5882d932f10f3d4c13619936b29540a45ccadfaee9bafe3411cc260efd5cd674897623bf7c278d1ef8e35ab4c815f1b71177a3d9bf948d7e58c695943c01d5ca6e504a44090ce7b1a3a41484920cce398f1d25983c2c75ec00f6d4263d40fc65b787b6dd81738e88733ec77d36c8f0e171ccd7c831a0af91bea66dfbc7df58a2b18d95c0e04d136de0ede9122c49ace9b9e4bc9786de367d66fbb4ff5f24eb4f37247e33dbac8e5efbc4e3b07ea3dfe49f66138963b61d0d1bd1feed6f3739e3f0367aba4ffc6d35e4a1997d1b3fdd5bffbabf76dbc334b3a427fefab31d8bf5d937a2f9db9bc9fe9f15e9db4696f9db9bd9665f1ed6f5a79b712cc6378c686ec5f8c66dfc45b9ef56cbc98db9d1b311eda6896eb64ffbf277938766dff642b663b13e3b16e31b377246b2fe74746c0fcdfed98f8774f577b34fb406fde6ff59fc43ed47d1ecb67d9a6ca4c9cabe4c97cdd5be58ffdbc31d8bf599b18e366393d1d8ea3f241eff7f71dbfdb5e49721db3538db93018301549cf39b26daf27f1910248c6f5fb487452ec6808be02fe9d93894fdaf672f646eb6e39c0bb9cfd10abb06de763f06e73db433ce7b3038efbde0bcf79a71de2be3bc47e6eb8d71de730186f31e009c730d9cf3c2f8184dc063e3b7ed1f948d7f2ef630e77d22d1c7601020408010c1e8c94ae0fd93773d94cb3fa334fa7b58d795635a8b0c016de13dac1bfadaec0d9e391f82f01f03377a623ee2162814a952afc527fe6b993814c6bc519c733aee4b4489f3a0fc932b0a34c3be71288c7d312cecc842fe3f4a15c77fdb7347fa8df76278f4651cd95c4c13c982a59dac3d1db004deb4b1ace9d2fe48629c241e8f63e56dfc455a4d4cecad8e361e8afbb683435df48779100c1dc039b75bac48c240bb34d2be468e81bd2889f0d0b691b6f11bbf4d0be3b246d2384aa06d236f5ffbe3d197325d1fcb1327ea7cf9c94aa03d47d3c232eedf058db4f1cb49f88efbc8fa8e2be9bbb487c263d1df375c0944fef876e939efad38cb7f3744dea5e75c8ef31d9c73139c37e1be4141ec1af885b18f837f58df29e6629ad8c30c60f3d38187cb198772c6e1a0071c284810e7bf48db8208181344acfb6b82380796267e4d174b9449a3bf4918ed4fcb81f870602021e781cc401ce8062e6f12c6d20614a702504913eb02c42441586c480345a8bb4b7b82225105225b0ec28017a87c516145100b1536006861c8c7404f025914d252a001635660f6ea1f272c9209d880498bc88d1a11200c0162d21e98e12007060d64867648c023ebc4666d4ca79a789615443dc6e82127b403576fb053c206180e02348193c62c73ebd8b381823e92be500c068899783b45870ada772368cb16047fb22210f4c1e767950b313a7cc004f1e1e97540739176f2a2438baa287272609daa74e912d3f227d49003da04c728091522d43d440bdee2a2e71c2122c30c2f369084a0227bc07a0b6385e4a842070203905ac4a84898ae4474505270c131e842093b3e672615e0a5d5000a3151846c8171604920be04ed8ccb431f4b3eeefc9d025a91f951c011e9024406b94da204ad0131c948a4708d50005ddb72eb70034c0b289ed8862deadad6293f7c6443d8a4b97ae46633f960630b0020c50bab15a62d42a49428296364b33ef86eb612b95aab7bc0c7c7221a22e07a143b8cf099f912ac14673c92ced0c87a434a1328af318e2cb11d1001d089326b49667472b4866b462522f61e158bf0d0a9b16c0f956cfc26bc39fdbc8a2ba4580055a229696fb234c030f26911015e846458716713025b6b48b81821aa71df75c95b26962452e8caac3fe48f4a1208d2425296e3b746eaf1a98a86511b068033a3c40b231372be0290d31cb97023939a64db0222159828c081c52710bddfa5392002dd8a7e1977e8c6d59b27de8602f42ca8df8a8809930ad9a9d59b99e1054ca6221d7487d63aa9aab2442eabf396b516801d2418a1cc92e0192f73b80840c72106105014f434628e5a26f4afb03a7a30180739b982aa8991536cc6e4400207c855d61e0761ca2468b4c5049c1c4cbd355f3a0757f5962fa5daaa4cdae364d8e592ab39185cf9b9902180496730bd0af34186d7efa175a60edc41c2144a8e16b5382bb8386cea30e74eab2a38e6b66af8e18a004cd4002abaaca4e8635b350c702075000e4e8459055a6844f4e1957e6f6ffe6cca5ac341d1200f36bd25bde289c991460f385c4a11872e8389115c7fd2b87dd942a9c19034531228b0558232e3d2848cd305342f858e7e82583eaf1a8a84b8893ad8896da20310a66165f893a788a01d43b28c50404c1a97bd66d11697010e152f145ae3014b0e84347e489df109797f7c65ad7082c09047981a423e4bbce007721a20b96201c9a4413d106369042e0d6227e6b8d0d5893239483da526c2f8305d119547088a2913e47ce1b184ca87350d0b3e08a1c05b9201a389ab0a221451d1b8b874cac2ca08119a58246090187e22cc2f469ba50ae4b4882005c7c6a801ada1a6214d0734ac9632c64b0426b4053a88ca74e1c31b3f4ffc4890d326891c078a3641f1f48b234555818856004a171e5f24d1587167c3db053c56327172f00ac262888a110afe5c3040cd20b219a0dc0560ea1e49e26119667db021b6c50671050b8e0059673cb3370ebd105426a8c3bab91e68cc69600b98251852085c005ab500a53004ce2c70878913a32c2a770a68032d0a524a871d1f82e428417288c3e38f940947fc11301d0e5018a54214863f4356092c542f444e3275491031088a56af500f5a3e01249271c60b9a861142071f0eb422d2204d908f9b2190ba8ea0a1e9aa41a49f7378881cc2f12aeb8ee76889561d01a84ad848a1e5c796a10a8278748c3c88e8b3c40ca9b412714469c568604b29b62e50bc56490010ee9cb86181de0ad28782d6a8348c25e340d0874b136e54320b387ad8549ee168503790c8d02529c03827d63224c9d0e86e6eca961916457e24204193165bc33664826c4cf02571c573bc4201e6f4bd411182317b647721809f1902c1498a576989c2213152752a18314bbac4428ab1d5a90b12243847d8004a3c7015015ba3c257e7d29a356b6d9e38a068531a43a49c0cf2ea2377c726861b07fada0a33205e7415b8e494b0d2c3400e1939c8b4c2c2d24681483f0f5e605766672bce90b4e252b707eb92864f886d254621cc45a314717b08688072817a0046e80a2438390b38bcce4b0b24f8356904f7a02e6b4d5bcda6cd940c5daa6ca8d0a1d499af4f6cd8e8048931640a7ce4c20f047284e2d0e4899955a60a026a39ea0f95940342c46824c643189f146c4a5051b5e18e904d0ccc9428ea980e65e0a21067cf0556593ef9e8c236d0e7080b36697ef0f859b0255178dcac02c24b5d7d35c9f1a603071faf34058d4c41a17e18008ca413715a616862680e02882680a0d2490d9c07f0fc6995d5e8d1045324acf0648772b223ce00abdcc143023986d8793b141b3457de423c11ebcaf0b9faaa4e53483d89a08cee8823565a3092f850050a658f60e009971e897c833a446ab4f6666b81fa51238d0084347542d3c50619a96c4a19883ebf1a650fe878b8a3a547d5a575822a476eecd72b06d3ae781800c79ce7528d5112b6acf93823e08e498677abcd8453678a3ee087283049565fb6d8b2fb941f403aa244d121420d0873f281a9aa4c08bd1c30664c100e906ecce890e1928d1b642e5a6d62f405ac02287c8664d98263f7628b5c4f8286089c491f3ab37c5304983b40499f358273cd883d9074907911697b37894194c0190dad1fa729145db84e34ec274f657e8333647c52497112c397ca2d38aa4cc2c6c883b0801e12c23cd000a2c3ab4dbc511c24ff3e61666d71c11567939624dc001eeaa73f6fa7c8b80efd7824b953c4990851004fa23a133c351134086aa40a4e2aa182e22a19a526a90ed45d102b039bb2e3510c25ec910e2e05deacfa0952f50020c46e8618283f4c758aa4c46db09d000bb13a854017353314ed89838177c18f231174057e52c5186553984dace165a974497064e9f16020ca8e08753ed890e300024eac44a92ef0a817abd2f051e12460585b036442e28d06535f8020501e96566495b101e54b1baa0b3a1080b23665489ac98101b8b7109d50a4acd079631031939d3054b2340721488a0f32e823cc2b1cac3c6861d8344a0c0e09ce6393a84eaf80a448eb10654c170f503f0a48f148c6844213c860d3753c92d49427c7037b1c10731c1306014e2b0015c836c0015eaf36adf139f2a468c9c3598d0b9de08654d162d424c796617a95a1411a3b3b5985ceb031c5d666858b1c02b618d4088b9bf4c843023a6c24d905556c7c0bccbed482a8492300cdc4892daf955219c0141b60f2595b2326217d13d0348c6c15816be578dd9440615280820051c652dfbc268c479b3f994679e202c900165c95178b4b67583411bf7072418129347ecbd7962bb5060eb0d9e044e310162911786142e22b746424c3b6ab33f6c3ac863b93b37a59f2fa94d596838f508e181b94334d6c701139c3333609c8a1920a2b5b4ca862d6ef048305115a0a486a2e06999811e209524392144426346950da20aa8066c897325117b076789a53b258012592043bae36252af5e312c34d014e59e2315a2bae140235a1cf86b0323b2a224061e44549d81d4b0edc25baf084cb95142ac654d8c4c20982d3050390f54048d98d0a8ed46cabb41aa462a3e16f900433d011d605499c3e75248068636505062e0d6c90af213d55bcb8079ea0a031b3eace56991cfa96090e712a2e79548ee000e54caa0c82660451051983e9870d2d90308809a5c016180088484068831c127640b4b23ce919a6c960680e3eb8a0aa0d90204a1dc65258a09bc2e648c0845250e890b905e84a459499a02e35e252841c8fc09050416aedf8042aac041f509c8c07fcf4ac14507460f5b33b1b4bd78cd1246306961067665d82240102939e0831876d0500698e8061b51a616a8b98c03363810915bcc2b3054ed0839d212a4eb6409a1108f04fb0aa83ab0cfe0315aefa1803054b02742888db44c0965a1c1be5210a8215758500f94e1db47c2d4ca4f2f3064a048356d18b3a85eab290a19585515d3c59c244c94f1a92096b4ea56d11b2476088808827375b8ec247a4fc8cf185495547eb6b76e313044704767cb6ccf1e29207471d31166d8704f8c32585af0ac115c38401e84aab49900c103a2001a5e0c8efc1882f8c7c852ebcf850be113385d5160d2e581842b2f6d3c3827708820519ac58e132e48a851aa982d96a8b8452d11692ec772c24a3d06a114096035678b9f0f140a4a1939a46761d080511b1094c02439c2a1072a16d14a5b8ae301580e2a0c70a0b250310fa4d3a7501ce8b4ead9a68ca82a6b36a18d820408727757ed829c68a7b6c23a6d634b940a9cbb80ad50e11874a7d0978524815b3d0d888b8f2270828092492288048c2a9271cc8da8861f20568e640993062995eb4d561104291e3a689c0da44434d909c4593ac64dd81c023d09103173a770b311415d0c83848808423c181afdcb0d3ca840342c8b0304cc0c3139b1d6b95b402b5c2d325a789b4c2304400274482260b8d3a9c84e04f031dda446963caaf01938186a72e532811a7744119b3a7c45a083830ee3b18cca091aab5c440f0ed44da3085c8c3af51e2e094140f73162098c01148c6252cc3ad0713ea68ca00a22ede69e3422852c7a4cc1d1388c396062909004b05123b04465403cd6935f92e482874a30f31450427a4503440113727431e4b6afaa8494d950c2862f648cd21525b5932d8484f04fa14431467b3424820e1b37be0f7a706110ffd65688249335678f0d2c19bc3a0c6dd0243c2c04065a52beee4e22a60820566304b8091063cc6d864e8e373804b80b58b86209b940106393d6d52af0a46d120c5aac72b204b8c501a4821a4e4ca226212891444ce41ed0dfa922942457e2f1d4c4af61090aa0888cd08b5290f660d62f62862e0950e10682c1e788469880de9820643677e5ab8e43890e3a8f1f44d247f073c0a5561ebc7e30b923f79ec7c627265431a142d343b72600218310a34a552993b17c688413aba5245031b24926863a023286b83115595cacea0c15539a1a7842540ee060a8651b0b812d044d15087a5c2f9c80f06e09d479502ad58f2284830cd0f3faf300b8a20359abec45f7ead32d42081a84b041cd6dc2fc408f822437025558d09420601c1a0c7c422417719383049c3a3d2982c8ee0ac56782ab8ac60c46024eacd900d493a391d6005324d99a0fed110e26950a0127a4675cdc082008055a8249dc91281b18d40dea3550f99cc9e4a9b50c9270908508ac3f7c00159e6c8c5ebcddd8e9f192a0eab475d9a7a7038e5862b8720b433396ca84ae18016049a34f939657606462cd4d96b250a021e2885312ea8531ce33d5e487af0e96e4e06216aa5bac4c1c9a143be6c351225c8ca96dc228726b5ac3aa95c6d4a5326a238e663eb98d858a01140d5ab0e1f12d1f84abd3240e02343052e42ed71350097219edc08b61e60d2646bd0a127e89975a15028565fbe38446225638b0725504d7a6952823e79dd81b185458849a1c29b950770bc26f9b83c23ba4aadf844f851690ccc94b3035cfc3454586088ac250caa373c35008a38b8861e431e10129b326462644b9b42984a70ae4d1d4c1841f51d46882e88a03d95fc9784049c386074084243c68124389614e11b1a9409f58602a220298cdc201519ce2fccd12155b6c3cb0f2071d8185461e3fc370a108e44426404500115170b6e179c6f40e091045d82ec3285c1d102e64e2a3b052e818993938009187004f1a080f5cac04955a137770798d844a93f3bc8ec516327953fc2041597181c6610ac4ec441d4e8c485306f3a1c819b50e980a14e19dc50838ca5485291aeac55899225a639431b1399af03a91d41c1648a27455b3e450a82651789930bde652613881783b8c4b151c2b9561d397218182fc0496001e71e0218d5e4819bafb6416038cfd002870b260a04931c15e15bfd12059c207d089286731f894e293c6419319b709ea1811f9a5c25e17572c1b7d8a0a27362a57638f741390156a247e50ae75e7665c906bac42939e70aeb057a20860445b88f54a2066a0c58e15c8397a6479846b171ce7500073b39515cf0df0d4d71555870aea14f516e4d10e71752382591c070fefb93642f15e11be6528d4839bf9047810e5438cf32b96c72c139785d11c33986333a4f9c678109969cc3a1cf3906484938d7ca52c47987244578970fceb59a70eec105cfb0c539e79c73ce39e73c4bcd85287f886bf640b8b14a469a848030186a504a810a062451850e60bdf0ca244088030a3715a5701cfa34640b0325472c008364a9d8624017a944604a99c9fe8126a4c285410d347024a584a513820d6c6a5b28d1d81064c6999337702ebc1a13cbbed7e8ff0ebd09c086050ba282803a74c81346010f17c638905263a51104aae8943133474825a161d1273eaa6ba20959668aaf411e3f3f7eb025b941043952063149fa58a0ae62c285270b0b0701c0a6804000a78092b23a4f1a4e08998076c4738057263672cc5ca981c9478114126c3821d58e88d2aa34d920a70d97dbdf6889cb0273886749cea7109932783119c2e1551d0c689c0c6e8cbc669225df95368cf634aa1000181374803a848230b7654712133a10a3fe00755467e68c0440193cd13021c30e203d315c0cc242850d511d5f3fed247adbb0ae0985b4ba3b8da05b2c8808cb4c8428c3d4eb1224d29e0f4532a45922733b45dc9284c48c5205511058f200064396275230bc7e5f17b4b2d29081d352a0c2dca201c08e31e6045008541a3374bae464355880159d283ce4de82131636b903261b4deaeecad0b71e1652c0889111a2a546c71563cd998f468217c9af2f3388baca460574815b0480161a0943314cd1910e261e183163b38094481c1187b3a49998ac06cab0110ab52509831761a4268310270c542a906975c60f1c017cc234b8e445cf170e77d61a8b1f02110c2135e88c0040c506594228474e282c38a26d0839140cb2e00b43af8d9a07398d064101e3e0828e0e06611bfee0b82437e60c4f04aabea86cea80ec7e147481b900440179dfa1933405800d122ed87961d9545161b40882ad2a68854c15365c586001112ad2c19218871c228cb62cfa4951b1851d1b7ec171d5f5a3338589b94a113ac2e0f7a778a99517ae42949ce4d160640162898d140d070b065b5a345a83e2f7c5491520d5253690008530e2c04cc6162ea3073f139cbad1801a9d351e8dab8711af4167e0d03153580823224b724b8e39207c093c50d43684c350013a43d6f0bade30b015019405721cc828a06eea01c7ebe1400caf12112c5064138554653de484ea33074b251f8e2b5b8e534ad889a1a1c35995c521cd16bdca4f1a02a63a7109e3aa5465a30c570628139c962c1d100609212106a8606b393c889200802c90b638d1a48783d6913a4f4a2b158e4e0970eab3022538c1fa932e6b972937be0d981f48eec049800e8b08cc907848b1e3ceeb2c004d06c4b5f9148458c86809d16288ad78a30d049488af4a781e4cba787000e4266d2491716bd2c254328ea70eb78b192cd248aaa226f4b176401708105a0fd0f4254f0415a0c893fd08a3b96c6020c48885a7b0bb3e49920250b02324490d073d4b0ec16d033f366551a5e851ab2a36b206b85df08899744a3184024c4b7adc3dc2b0e2c776e7195e62d5c3ce1612126480c2410217992aa092e0105b85bc52a7be88ca1a11c19249e849470198c763dbb25417dca0f154e5d5ab2fe7cec89892066fa636ec6804620e9157008068e043154e303e017f77b0522160e1151364a038ac528432c5e3428924a73a08f06ae8e68a71597902a2d2808099149cda5765681e4410748749eccd6fc6994aa3327d7982c6a0819eb443f2015c63aa303047890971d28b332218ae479286097431003532e02c0b832426827804347c9d0689ca63867648c29aa72b95f81537ae0f797cccd5d8e1620d84983b5b2eecc879f940a1a4c109386c5e8d0ca116b64e7d7c4774a02124b9c96221c1c28720232a0d6c8929f52ad4a21d170ca93182804e20d54286426d887862006703110f838c083bbd369f07350ba5b0a6944ac4c510a02c0284b9b748946e1198d9a2ca90bc9a80859d9345194c4f424f58a840e0487e2541daa335af0721209080b893ea0b6d0800a72e4d80b3a1d546ad922a4e032b1b519d26203a98334097163f12d8202c24c1e1238c044c209051d1810f1ac7c227013ebd408cbb84210a31b4da92cd89292e1efea4b5265a883459eb6a50425e43979100a00dc4893d967cc01d1c2020041214ad521646a491434332a3204b814452cccc09456780dd89379f13940d18e8b06a36f9cc15b7472a8f3d71619938b82559d32464515258c88f9c14adbb23ebed7cb386480ca80788e078c3024908491720008087982332cc3460c9e410255328451bc64c51258070800a151b157c91dae069c18f936b6444aa425e39561e592e64fdb02e04033d7084c3e212a93fa82a98340096320daaec3460e812051c60a84cadc80a2276e577e7a84439e1015c9e0c183e9400c874e16ac0c959c24284a21a0f3c5a88fa4141010d33400d4120eb1004ae4ea994341468a4bfdfa9142964f011c1c64d91064e9cb5f5e1b24153c0aa839b14193684b1704b92fbe1b546c22a3b9c7688598a07b9b5fd786a3e354c826ca55845a690171e8eb4628051b4f568a823838a0928b852920aad8b03da02af09586f2c3d91e0378444bda5c7d796d707e3c80c14731a20242ad299305e8f1e98b08503c62401192a2cd24859e4c447d1b29681c6b3258e5a1c35ae5309283ba3f688f15028cd9130fe435c0e2224663473073cd1b214a30a194a7128b553ecc09828539bd30589c35a410b93d60b383604a1573e7c7998a0094915022411d0150776e72269a2a825acc048ec55932f1656683024946147531759d692417b7c006a2401c49e233dd0f0e8d096a5449014af1d9343a0685882b63beb9497a45a1728736f97e088e8d2c0292718dc2cc1106681a81727ba2c8d62c0769ce3c0e54c17272f4c408af305c3274064a22cc932e2c90fb290a4118a32194de51901c9110610f029ad168adc28d910e380393300411b3eb13a2052852494ccc43c74bc15bc11cbcaaaa4d6098216844eaebc7048d0236a810b59ae84892b0467c8b702336a8d8d0fba0d2c9283eab80adb732704020a103716d0fa992176d0f24229cb1a2922eea4aa030276c1e74004014b04d093e5cd0126106000872a0d571e887285a65dd3ca8b172a0f4fdc207f2b9460099a0841ec7044512401e6b441e38262868239a7883046845052a10e191c93bc4451b123bb817163d49ab96d3e746cf331e0653b200a2c0b96427b4e157131a35c11bcef910174f400697100a93836227cbcd256d598f026628da40a3a42d9c95fdcf88e1a182011274b940767abec422d3221da8a0282d08f307ae8083a58450954e0e227c301288454880046c89029060a4460a5cc948f02106009403a5cf1c150b6650b888fba2d5f03ab105065cad591c39691060a78b93270f9ec3cc81995c0842f1c62d8f8a31c1e72bc0d4062cc1c9b2961c7089a78124a691170578a0428445a32c8dc00519133755d43ac70ada95ae321cb24224d8e948bde3a78590b1023270b09218c823ec418c0c0002d1098ca326f86d8b51903444c1903c63cc100aa00348938387041525a0e2833b62610397032e2d6db54830b154b3f80201ab0c024cb8dafd103896a189104c54c1e0602192007c30eae0792ca4e60a201a44294e05e01c101f592e16b94aa804d7729930a0e569dc8028094f15392649144c43847420558ddb99028d4933222b23c80052309e1880462066c40d289cd9ab155036619e064648233c8edc7e8688806831e67084d7934c5c8c6c3d10518135efd177368e8410da1689a90681a222902a005013127b0227b5c6ce06165cb4fee0809261e5ad09314d535f9dd011286ab0ffc46d8a98204460a60f171c18497130d1d0f8f3fe5222981907714d802c7a3f0bde2f2d282eac8aa15065cb9f300db063c5c2d2479173fc6d081d26815045ac884f8e42585ca2a2a522694310a9a40e614c034f9b4786da1e046a04e9fc59616451eacb0b0b5c7934d206ad5032d02e8552823c8d0ca30ca1580ce893a38a4986455d04ca804c9a722a9a0ed0e0e3b810326b6407810e1cc169926567219e218a8e28ac32b1483025b06372f622e2cd571704ffad06bb1810a190f6894085a84c10c84b61f046487c6c439a435c8adcb913681166824a30fe2b38406efc2832649a61c493a671c5cad30cf6c72d1e19315331b7a97082f11420aad58e40015adb62d6716793900830967fcd2000b85571709b22a801ae4a0544131c68b4048523dd0a16bad2c9352575434e11229299fc291e5c01a1ea63812545046851dc8b0d4d5856100b89e0e38c583e8c81d271d1e39c0810390507e4c89f5f9e427c410c51c054b99aca2bd0a926ce7b463e3039e12432526181e289a408d452722726ad298f0c4c111041b0a3158e302f0c1b101aec48145c408f1739569ac821b3b263571b581941eb8351b178670c90262bcb3e65890010bc5e603a80d1dca3078c5f861684081424b22928ff96705025147638c36b1a012655d9dc88a70a922e36382934a382ab873ba59faa0556a40069064ca9a3737403c25e0e91104709e7e26ecea060ac511a5f6a38ec6121a8f4a71d98fa6506921c6c4a5430c88e8c4298d8d972243e8bd16230e0e5e0cda5bb214c9e7870898126e44b9a1030691922e284075da3ae5a1c959e9c48e4d4e7a2416d0717ac02b45271f005cb951750045e666812b60b4f87890122397675097006e10da0009a2296e0b492cc453c3aa471d1286bcbc7670b0cb6025502b3f172858e7bea70473eaeb910755c95627973a7f5e2500f434288528095a14ac690140985377441e55a221440faa405dabe0d4123d39e2f060e84a994a613f567960d97c282b4ea0e5f6d849f46687a84eeb88a194d0178905c04072f4e14a212311ba62226315b0e9742050186462952bafd62148300b48a4215f8568a8b8ed84ac02a34501cf5c00726b8f5e652d50a2d05a9e0518169d7871ec03224a0290e86a5720e6187058e08e34a1d45c0a5101bc59d0a38601a0ac2d43070f2e606a95aaebcdc9a32799b860202b3b23b4618b9ebac7704d5a1817241cb21c795530c6cf1a44122cc01074b1c664a150804a254e38d6f070f891b20589981717e6c891c315248581e7063dc9e4279136c831881c74426df0b30100578c5ab191f24b404f2a3b044e555945e3ccab3207a2242f008bf5234b6ee8eaccfc5e6d3d4a9145c39d0789a264e172856bca00432449c013e4f7f61aa1e3401f4a012413b07006a30690cb001b98443caadddc440a13c00bc789a406ad35051c9056c153970aadaa4ba390187ca1645c6233c5090db844a602426131200517891e91229d9a2b7307ce062367f068dd79fd58a758305f4c3111cc24e66740241cbe257e320c878065484e12f5ca8840a2dd42537ff953898e87486d103cea62e84d830c8ca6c088c3c05727447264d25e002ac1f085d012651103d6f7000774801a189fd2b6c0889062f0220903195c4ca063800c9a2c6560bf846a40c08808c12a6b0d044c0f0c1e9430e9f4a0458a28aa90492c78354176d1827393fa232ad5f132a07672c48276a40b4c1bd8902396111fdc12a13074674ba60e82663a5e26dca10d40e347823d10904dd262e1e2f41308951242109292d8528306754da002809d2c75660594486c0b885aa1a283853833d86e187f12da2092550d0bc5c81aa4e88d15d68cd0193517afbcc478a880218859250916e06a45a3acd2e28118661871d06183eb0ee83cb3ff77d63c5dec784d7976bfccfef974d7df53d5dca1033d816feaa6e73fcd75fd3f76d1b8f539deeffd67d7b845d33ebb729cfebba15d0308a4eb7f67a48d40601169c4f1b6e7efec1977b93de13eabad3de6deb8f1a2ada9a6a98ac61d3dd56e9a690af7fe347555df76158dddd634e5176d5f306cbc671bc7bfc3bdedf05f53d9bb2a6abce90a77ef9ee9e9e7d8fcee2964bbec8f28f0ed753bdac2e6caa2ec197ff3c7b2f1a7646e6fff5f9ed1d88d4f996555f514b2fd7cd1f69a2babb6ebc9b2acabf6748d856c27fa5aeefbe3d9eb7fbb7771465b1aaf57d3584ed9139dd593755d54c8f6744506efe2ccb2bd3d9653d65459d6f778f6ae2a64bb3de34dd9d83dd9156e5d349edbb315b2ddf889c1f55455b3b5d74cd7159dbf477d8755765e856c9787c17f4cde49e318109834fab7155dcb117cd582c1db46d6bfb49785fd29c7aa899eee8c9aeb2c64fb8f8db4fb63e30ce38bb5b58f342ae3f5308aa2a70caf7037d5b385bb19e33563b7c36ceffefff66453183dd15e36463bdbf6783653f5abfe8c87b7bfedb3f7b3d79fa99cb2ea9f5b989dd738755b18efac9a72db7dcbfaf3c3b1290bd92ed3622f5e9645ddde9aaebb76758ed756a6df37ed5e6ee10ecfa8e9ce1f3ebb69f67a369de3565dd5d43c63d57721dbd1b3ecfd5e46bfc9c6ae7b9adeb7eed93bd9dbbaa6da5b3395d1f844515315b25d051b7bbbeb7ad4bbbf95d773f56917b2fd48d7b2e9ba78bb89fed4cbe839c7ecfc5357c876e2b1380ccabff642bbed2c00ef3ac37e86cd58555d164e6198becf53458bd785cf74f5ab4f7d2ab729dc0ad97ed734ec43b0787d6f5bf7c7a76f61f8fcf32aaca389442fb4d9beae783f7b9a73ca9a669fd1f89f5dc8f66fa48971d0f8e9fc4d17e9fad84f752d47504cc5bbc2f2f9bd8b9af329abdfa742b6b7de064c96f6752d4790157b65d6c7ae39afae7cb6ffa37e9ee9a09be6bea69767954d61d9654d143e55b4f6455776f63feea7db9ea96cce685fd71e7f3a148d7de1b665d1755dd71676cd160602dd752d47105e5f333e67d89f728b9e1d565b58bd8b33aabeed0aab3e3dd359f632cac6a690ed421b790cd6f4bcf6b4f4ed262cfb368dd3d8354fd5cb42b6d75e189b3d88be671aa7706baa3d757bef1e15b2bdbeeda0fbef610d07040281adba9623c8e37c5dd6c72e6aba2a1ac332ac7a3924fc6d8faa6b39826dfd9dbbf9ff7ca21e364fb89fb090ed41b4afa7f9fa595d579975e3d545d539f642b6ab2352bc736b9eed575b739de1f8eca990edc1b3af77714657e0fb65d9554f55864d5796dbb60bd95e47d772c17e86bd701aab6e5fdbb8b76c57ff2a64bb6cf4b4dc4ff6eb0dc6d7d857d9d7dbd75bda57fc6dd4f9361707d8aba27d956113763f6ac271cccac6619d11491b836d1743f17a345d65965d59d5f4303c77f4eb0dc6d789226b7a0602efe20cfc324fe417f1581c7ebda57d054ff5581ca245a411bd8b330a9f78e5d9b7ab3f5b37354d74954d21dbefe21c94330ee7dc5fd371ba9623689a78d1f4cf716a7eb63ddd7fa6b290ed41b6c79f2e58e76b565dcb116c4b14693a4894eb601002893a18b4917530e835a20769a21c4dcc20a2fc0211020d9a20487c285196f000d6810487131b4c0d26bc4864b033747961988b3d4c24d2f5890bb2ffb517d79f0bde76dfd861ab07bf5c06ad6e6795f89d4710beda7f62acc142051114ce093d190c21a148c7c15f07837d6e55cf63fced201be1947f3078dbfd1310badd176e7830dfc8a083d81e16413448570e0c56f55c5062b5670fdad1757750ce3814da5ed8a1b781d783c5604ddf3ebeed7e07fe33e0172602de2f7ae3829f98313924704145a88cf19e21ce7b8538ef11e2bc3788f39e20ce7b8138ef01e2bcb700e73d0538effde1bce787f35e1fce7b7c38efede1bc9700e73d3d9cf7f270dec3c379ef0ee73d3b9cf7ea70dea3c3796f4eef4d2f89041ec8559431dec003e763fc770814ff1d4ac37f87862f3c8ce018dcdfa136fe3b3481ff0c2de23f4308f09fa126fc6708e63f4365fc67088cff0c31e0bf4286f8afd01acef98d076c9c73b69fa310fce7e802ff396ac07f8d58f15fa354fcd70802fe6b5489ff1a2de2bf460bf05f2339141a4cf8e561c57f9490fc97c7d4035f872ceeeb3081fb3a3860b0d5558affba20715f6981ffbafef05f979b1f561bff6191f11f1690ffb03af01f1603feeb4dc07fbd49fcd7e3c37fbd34dc57e68cff7a5bf8afd784ff7a37fff584fcd7bbc17fbd31feeb993e1f050d1826fccad4dc5786c87d65823edf2a42dcb7ea0ef7ad5ac3e3f136bde1be4d66b86f9314eedb1484fb36d171dfa699fb36f1e0be4d70dcb729cdd7a00f1cf7f531e3be3e2bf7f541c17dc9567dbab8af0f16f7f129c57d7c2e711f9f44dcc7870ff7f171c339b7906541c204090f7c3e8e709f8f3afebb04e43e1f46eef311739f0f1ddce7c38dfb7ca4711f90ce7d4042701f102eee0382c57d771470df1d29eebba3c47d7783b8ef0e0ff7ddb5e1bebb2ddc774785fbee9a70df1d10eebbfbc17d7742eebbf3fcd7880bf7ddc171df1d1bf7dd8d71df5dca7d7728b8efae03f7ddfdb8ef8e01f7255b715f925405085b122238b0006102859f96970f4718eec34185fb7024e13e1c48eec301731f8e97fb70a0e03e1c1b9a30f07d60f4a10cf77d80c27d1f6eeefb4073df8798ff2e69e0be0f6cdcf7c18cfb3e8871df872feefba0c57d1f18705f4901f795a4b8afccc47de523ee2b05715ff987fb4a35dc576ae1beb20af7954bb8af0462c18b418409172a44a0c0204b42a256fc978813ff2542c431246ae3bf4424f80f5129fe434488ff10b9e13f4454f80f511dff2172c17f883cf01fa2082848942c1703179c6399dcd72609f7b5f9c17d6d62ee6b03c77d1ffe705f9b34ee6ba3725f9b12dcd7e602f7b5c1e23e36a238e7102a700b18b2b85a9e1b24bc4c9cf304e09c57c6393fe586b5e001560fcb41af8103099c7ff87de89c771abc9b31813184086f82668aed8b17ceb93039e34aceee7aa846e68dc352c5598a288d9f68fc44f514253a1612a062c30fe89c6ba1c2a7d8e06c009842c0ae8144181e3e307b60862c8ae24520490f2f8f5d6b69511e7d1cacfb46440d44d97dd938c6396f2355a21dd8c3e24f4724fa22b1aedf982612c78c7243a2ff77433b6d8d831e75fdc695c608954e1893f64f94a0fac7f518959f281a11e7fcc1212e671c0689bec32abb061e7db1bdc1de586fa837d21be88df346bff1eb7f76a26b6fd3a4afeb31f91b87f3978d358cc3fb138948b25fd365c6211ddf433279182c225f383aa663ba4d36fedbfe70bee86da40ca1ed85f587e76afa453249661fefda1f6b24912d4934cef0b797935f46f2cf9967f2a7abdd978dc6135d337ae1dbaf6935b67bac481bbf5ca48df50bbbfe70f1abfd7848db48d648dbfffacd382cca63df36fef99b11fd301ecac818447b28f7d384f17f7beb3f3734d26af7d058434643cef2f01769b76fa4d7c4f41e061cbcbfc6608b900860602c5ab0284dd8c9c312f7fcd3c4daea19f7fcd3cab22c230029ede461f0cbc93f586ce04268f080c12a422c5acc9f3888c50a14a5f113834199486355a2c4c5c186db964b162ccab8b661b36cc1a0ab5312ce39182ebd0c63510a815f4efebc08ff712283e30dad6c8c6dacac5c51dac943ce3bfe3685e2298ebe4882731e68cb8811a559b2f850dedf9e67da04e70c5a30081b31a264d1a2948d9f2ff0c317c4592065418c05680bce16a8f86922d6b49de2c743a22636dee6f672433a6f4c9122ce4489a3afeb8c4831b1381bb5c5c452942e45c5c44ebad3462a2686d2c968a90dd4c697bf8d14134b79b4ecaaa6e8d982472f55e85811d7636262293d1bd15ad0b311cd6e61fc695fa6e1a4579391f59b5b0be34ffb45bf66e7d5e8d988f68bde3817fbdbed13614fafc9df58838d5e9b8be9b4fbabddf49afdff0ba2ff66f49add2b139134dc2ffab56f13fd8b974844be903f913866b740d186f297bfb1869858fd8f48bb8509b013b58944e45ad238568c6fd4df46d6ff887473fb74c3dbaf198732ec7be8ebfb58acc964a1b1c6d1d76f9f6e68d3f49bfdff0b39e370edcb74fccd8a434f44d2b5b1c65dd347b37f3774b35f99489f7d22ece937d993118936b2be8d35e46fac3143260ee1bed98b7906913846248ec9c4215c8b3b1ee3b1f696470ad344b2bbf66c49992693d192324dd6a2c589ae38d11ab76da4cbdab3235b240ff34c57248f1395d1e66abaeefe6b278af4212676d28989c5e09c63f19fa4519234715e8ced8c4822baadcd407b2b5bab112378634c6d187fbae09cff752ddce24ff786400333b85d036fcf36e73fdcbf87759dec7f3dfffaa40b8a05e36fc31e1ec7ece1d1cb1989c7e2f068d7d12bec2fd3c6a0cd9b00921baee67f7ddb305ac8b4d144c5c4c48a18011284014d9cfbdbe65eec1a488410c148cb466fa4c738ef15d072a412ce39cd7f8e4ef0e027d26b32913e33fe3bba7ef16fffebb23a9af8c99244e38c1a652fd1277d1abdd6760f8bc334b319656b6fb06d465bdb1b7cd36a98cd500bde18531313f3b61cbf6e2f4dc3fff672fe48d7c734ba1672fe8d8de88d686ec97b58835eab654f267b32db7e85773d249b69ba66933dd9af9137f2c53d1c33fe39facdb6e935b5167234f1a6e9b6ffdbea9ff4c492e88d63753471368ed935bdf68948992e969eec889ca3eda12f1a69248cb4ffdb3c94bdf03622cb5ffb1746a4971bdab68a21b02c6dff614f447aa1dd17def5102e7d69844b13259246b49b36fafafbfa5555555555354dd3344dd3344d51144551144551f43ccff33ccff33c7befbdf7de7b374ff3344ff3344ff3344ff3344ff3745dd7755dd775ddb66ddbb66ddbb665599665599665d9755dd7755dd77555555555555555d5344dd3344dd33445511445511445d1f33ccff33ccff3ecbdf7de7b374dd3344dd334cdeebaaeebbaaeebba6ddbb66ddbb66dcbb22ccbb22ccbb2ebbaaeebbaaeebaaaaaaaaaaaaaaaa699aa6699aa6698aa2288aa2288aa2e7799ee7799ee7d97befbdf7decdeeb6ecaaa6e8d9d588feaee962118de3f023d73f05da370ee58c2fd17fb75fb315ff8dc67f7d1670ce6343fc75d1f675257d26c7ae81493868dbfe48f4b79f937e8eb64bb01547db860c7948db9891ae328f37079a5bd0eccd81963686d6f6ba05dfb61a6f636b30d0dcdcbc2dc71f0804f2de8d3d89f61c320104024b946f1b5babbab9dd25edeae890b75dff38d2c6e29c8fa1502e078e1b70366abcb9b5d1605b534b9311e30cc68bd7ac8c6cecd52bae2dadacdf2bde4cdfc7641dd7741c76b405e0bc48d72f8c9f18a4efe011196ce7bb0691e88b6e34fd46c6a237c40fe7d931b488a7e8a7e76876d344b79b26ba058f472f26e676553d6b5b4cccd748dfa2be6db1a2edeb56d0f5cf91241b9ac9c61a44e210ae3f9b1dacffb13d7b0d300f02c0e382732e26163cda6559d3731e309ee701c7e388f3607158fef018c0f9d1ae8141f9db0de7f40c8b87f72f0aef61edc38e101e60a1e1f55cf44af02071dea2433c4163eac4d93550f6bfe6597442d5749c821ef21dc87a461a6f18397f3986bddbb2ab9aa267377b167a127a3d1e2b9eaa39258844a4f1378773cee3e2e45ce23f397138e7c7e4fd93b364881c3bceb989520c0cacc44f4e0d3969a5b18824d271597ee3d048d7b62f1669bb2f94a3eb1a697f234d34311b8761295094355daef9b5f2a6e54a94ff1e1a8773797b9a38dbffa6913f4ae330f9e7927fcec48b6e9ac81d61a6699ac81d25ca3810427880c589c595f1f701d3a5d1d7fef862c64b640d100f2bd6dc28113a419b0885a062820899180de39106ee10a1704283a60553a80c81f4966983a25ad210316966c470a103d39062251969b8005843584d2b9a70249721581b5ab95a54b91182e88aa01d26a2a40921a0ae819b0f2c220889adccf1f1caa242480ab63533955213045945c1461d1b55a0200a445003e8cf89360895074ee612bd511004c719b2175d4c2408f2a5049197bb064120a4e624bc61d5a601b9636609098a005e005182c5a9e7840523206c8940a962592601f1e2f47e5085a3c7dd26250b3480c12072f7865d838420fe3b20509ec4b56ce8bb1710541409838b72f70353c1fc64cd3149290d14a1ee4e2d6986ca17155604b148d614d252a001d3932b306911b9d12349071ac80ced908067c728887a8cd143ceae8b9d5c1dbb3302411f7c7e56d5b942739176f2b2a34e9098963fa186b8a91300dee2a2e71c5117c47a0b6385e4585722111d94145c72d09d6a0085982842b8e8f6f4b1e4e3cee3a17322b74994a0b514746f6e1d6e80691185ae241bc226cdd523e427ac5698b6089542c649e46aadee011f6411335f8295a21c32c6184796d80e9080e49a518988bd67c5fdc08437a79f57f1ad0686914f8b08f072231921aa71df75dd63c81f952410b4754b18b5610038334bec473732a949b62db0c35c9a0322d0adc82616a06741fd66c45e31998a74d01db27b6b01d8418212ea436aea2cc6414eaea07252c37b1c842993c0511de6aadef2a594db0f55aefc5cc81000a51f7fced4813b48997e489973a755151c733f6e5849d1c7b66cfc088146441f5ee9771c65d35bd22b101ced9818c1f527cddb314909ca8c4b93b223db31c39f3c4504ed20426be232c0a1e20543b41b16f41dfc404e032457e85783d889392e74349871d2820f4228f0968c65b874cac2ca0811e30fa38a341dd0b07a8ab1c187377e9ef899505c742c7279bb80c74a264ec5d9003583c866802a9e1f6c886db143105bf5425099a00e4b0c04886885ca9d02da408b883c8824fe0c5925b050e74ef50af5a0e5137309f870a015910669e69ad420d2cf393c736e7504a02a61c39cf320a2cf1233a4d27c7802c56b950410c1079c5169184be6810f22b60fb424191addcd4df131bcf4064508c6ecd1304d6989c221b152c3bb53172448708ea18b3a97d6ac593b6018a18fdc1d9b186f840cc82961a587811cc2301ebcc0aeccce84739f10db4a8c825005f5008cd01548425e9346700feab4e40c55e850eacc1728b9017e209023140727721e95940342c47024077647c82606664b66095865f9e4a34b3bfb812d89c2e366d51c808f579a8246a6cc703388468f26982281c517e521811c43ecfcaf93e173f5559e3e1218497ca80285fa6b911aadbdd95bbf8b0d3252d9943239931e5597d609ab7cc00038e63c976cc8493bd98c2dbb4ff90124fbc0545526845fe2062ed9b841e6c2554c068edd8b2d72677c8cc588b4bd9bc4248a19c08ae02d203abcdac41dc11fee9e95a046aae0a4133c205fc5efb09d000bb142e547f8712482aee04f9ca9383d714ce2dae2383000f716a21341b053254b731082a58270306c1a25068744704894315d3c40d5c1331d41ad005420db0007f4b07456e3422738223d0c6890c6ce4e96a11e37831a6171931ef570b1c0ec4b2d889a1e10c0141b60f2593c1c21798099d784f168a3000f1f2c2e9d61d154e491ba526be0001b1c0f5ee8c848869ddc41c892d7a7ac361d3bb004d9e14f305810a1993b502449416442a3a643021d7db8c470538053161d51c2caeca8881045870d1d201e0829bb51c1911ca124c10c748479c94127c791bab355268733871a9433a932089a910307264f7a86693218c2d1662c8505ba296c70d8e128eb83a302ab9fddd9987a2392204980c0a4276e8c6984a92d6202cf0ddace1015275be0863b7763815a1c1be5310a4e510b13a9fcbc8902a7a59585515d3c5d829309d92330445004ceb44101973c38ea88b1b0b1400c1306a02bae6c547930e20b235f211b3a5cb03084642dcb86881aa58e8564145a00d4c0536349db284a715d626ad09874ea029c179e6abc717a43008d8d882b7f84bc097983f1967507028f40c70e6e952440c291e0c46e6726e0e189cd8e196e76188608e0844c706bd1264a1b539e8ddb032863f69458fb6a6b2406826f271287b62f6dc3b65483940480a502b5711a83ee685cc992c1467a42108d38bb077e7f6a14699c00c2968aab80091698c16c7cd89e04d96a64113189440a226c1f5e3a9894ecd13203d48c391a0c9df969b930c3c88cb4196b98d6d650308c82c59db05607bcf3a85220166b645004a9d1f4455ea3a006494d8c9a51ad9d81050100ab52a961d54326b3af92968803b2cc918b863402d2e2b4143256c950404b06150364e41893f1852806a9187762288941a38018689b6cb4373bd082a0bd404b3ba3943c33e3cfea4e672cca9c3980c108861718c24c30d017ae5e087a21008617c117263ebda85e3eaf93defba6be6515b34f6672cc8a98c9302b7ba04c4d195dd958d904b2476462c88a642c596fecd0a13f96055292b1780c98a4888b097c70177f9a7017535cb8c0c15d7c7100a630b84d183f3158f78d2592b50fd65e1807ed2170267ebbd76b50a14105bb061aeb7fdffe98a2be6d1e01e59c1ff9efcc25bb062689494f3cda43b3386b7e6d360ec366e3b004fb9d498b7bb0c9cca12fb36e079ac01ef6e5fadbf7301e128f769fae441affd117ebbed10c1b2fcda477ec6b2f8ccd7471cee3cafacbfddb38fc957915571afd27d2349cf475ededd2ab85a8a9944952f31c65b8f0f6c714c9bb03cf307a360ee1b495c2db1f4b22714c4c6c810a359c011d06744ca0e9baadcbbaababbaa98bbaa7db5dd375dbb665dbb555dbb445dbb3edadd9ba6ccbb2eccaaa6ccaa2ecc976d664ddb55dd9755dd5355dd1f55cfb6aaeaedaaaacbaaaaa9aaaa87aaa5d3555376d53365d53354d53343dd39e9aa98bb6288baea88aa6288a9e68474dd43ddb933dd7533dd3133dcfb39fe6e9f6b6b37ded6a4f3bdacfdebbd95db33559733555333551f334bb699a5d7122ac852a0bd266f74037c69141e2d3faa3a2b6c1254686154175438d4d28c983970590e809c4a0c91922373e40e0489220838c456b272e283a9040870e6002c8045b2bcef4088014d6132204143bec3ea4a0c0672ad9d4020717631e4720dcc479451194a1d38a30ad768409a12082056a3395075c6cd569b526a3e97105c3ad64da2818e13e015a45621373f535d84d80e48654c0ecb5043e05a74a96072850f161f416e5040bae7686891db75d231b3ce42aa4818047f6ad8a1441262a7106fc34b5d51fc2c0733498d071a1edc4ab80a4c1273635d10238ae3b079851d026d722518bc7ee01c0bae6078b5024682cd409401c96549a5ef520a541d10a232e8649085ef151a31c152ae475c1852937df0924ea1780234a9a156280fc0c9d52024ad097529f1e7880c55babb5411b807858b1e64637a8c1e2b1c203d4745f10b48950082a2532e5e9c95580650f87135962348c471ab83363d09625719a57319a7038a141d382295488a09900120307be19050c6f993628aa1b7875276ecd82379fb840ca4a3323860b1d0f68f19c4861f5692224c9a1928c345c80de142c0919be70a180450a064d2b9a70e496325c1e3c901604529a485a1b5ab95a541d40c78d03af3159b2466975b82268878928693832905145fc02d5e5a1abae819b0f2c205c7a806d01521c9a5ccaa065658e8f5716155e6a92d853311a71baf3c0b666a6526a8213174c9ceae0800748273250b051c74605a8c90f4f894d4388587adb8aa006d09f132d515205251d02e6b432df03277389de56913ac0f4024b823aae19ce90bde8622281daa60c7fee76a8e1a4674b09222f770d7a90a1032311960ba34011f2cd4978c3aa953167550300d2d8ed19c580979925242802784b4939fe4a01bce204820b8b53cf098b45522404d02106a457a0d67c8940a96259244582c0e20d03492d4e2478717a3fa8c2d1630432c591512552a1c9e252b24003188c214a4e4411ee71536507cd8f5d8384207eb6068b528b8555de4d039427712d1b6302a204a525324ce979b800414591303828854cb97fdc6094d992f60353c1fc640dfd48871f5a0806bcb08af6f8c36aec61f73483a95a63a179d3f3abad67d1f8745954f6718a75e6f5a6dcaa30aaa6261bc3b2bb0ad9e097ab7fd1ec774ddb2996997786cd133d7b2ab35d86d1382ef3b2ddcb5e465d773ed5b4f526f248e69de1985d579585db3575e1d68f797bef33eae7983d3f1b9b3d02b0c4bc72975befcd763ed7f85cd9142bcc2bb3b2fcd595fd3d8dd353c502f39ede557b8bca6c9aaee9dcbfbc731c9b32bcb61ef6aef9e7d4cb1bcb2cacca290bcf6957d5d8ecf2c21e55d31656d1f974e5f98cc3e2f2ca6dfb63f8fc317aa29f8d5b21dbeddff6c0daf29a5ded6c1bcb1ffd2bcaaa70012f1ba72ddbb2addcce287bce6b152c2defbaca3d4661d63ce1f89b70c722e0457d6caa69dccaace94d35ee58595ef4ffefc6ecff7d4dcfffd17301ac015e188d3dfb65154edd198ddfd30d0bcbdb5dd6cf2c1aaf739cb22d1b0bd98e74cbdafa998c0bc0baf2ca6647d3d4bbe7bcaef1da4d21dbdb7ffb1ba9b6d6c012e065e1146ee7559e7b9aa26657b1acbc261a9bf21aa7b3ca9a6aea63639537955b3435bb799e5e766177c6a2f2feb66dd1d97463f56461d5c59af2ae7367511555d7f5bb707761b7ab48b0a4bcbff7563dd5739e65d76c652f64bb796305f0c29d8553f78c7b576338edb390ed6977fb4a032bca1bcb316bcaae79b6ee1af7f40bd91ea4e5f5bcc382f2b69f4dff7a9eb3774d38353b4b0f8347bb633d79bfdbd396f5ed7caae9aca23dc572f2a6ea39bbaa4f65f3fbbffeb4fd7a8321d365f777c36af2f6b6ff96457d2c9f660bc3a690ed41a38fcf4ec462f2aae6ccc2deff386ed9f9afea91aecd80c0235dcbb547c22882b5e465e1bfc66a1af795fdffa3339692575ed77ffad5fcbf6d67b6f542b6df345df77e622579dbb89be80ac7ee1a9f9e75bda9070bc92bc7735fd358365bf99b2a8aba81b08ebcf037571646639795cdeeba2eda07cbc8dbe3d4c7de956313ededead7d40f5691f734e7f38c63d85de5735dd5386947d7c7572fda6113f5ac0cbbf3baaa9f4fcfd59bca6bec65f944dbafc2710cb77abfdbbd2acfea19c32b1a7fb457f0ce5fede6ef70bcaa28ec51363d0df558bd5e8de3d934655595e5d94c7bdb29785dafca7197cfd884e7335e7f5ff5b2b2da7ad5f4b16aba6cbcba26da9be04dfdeae3d874e37faef18cc6c6a45cf625afa8aaf7ec5eee267ac26a47d1344525783d3bcbe937e77f7e3766e135d5dbb668dca2a9db76b98ddd98eda17ae7b48d5733ed6cecd5b39b6ddd3bf5a6f02ab36b575d6f76b69ba690edbd9b7a5d379d65f36ce5d3f4a739a342b6afc65ea9774d53f49cd3d5b3b22cbb6a6a47930181f2b7a3e19425f648bdec573f8bf67435cdaeaeb22b64fdedcd7c5bdf47bb37ea85d1d685db5655fd3f5177fe4938789ef237d600026551af2cb329ea5b596d6156955d57c8f6085eefcef27cbaea77db533dcfd30df5b2333aafadca9ee88cb2a7290bd94f847dbb962308a407ea6d3d9bc62acb7ed45cdbbece69fae99d61d64ccdf8747bef41f0ca691ba7a96fd7ee6558eda7a7f7fc6c9a9abd3dcd336ecd15fd2a0302d11eec2afaa7d7e9953f3c7f7356d919fd299ca22ea737fea679fe18eeebfff30ccf9bde955dffaaaaa61aa3b1dcdbfff596f605046a7ae5734e5db4fd6b1aabee87cf4c6fef710ab3fe8ccf133de1b3c5f4aaabfb5dd9ab1feef377bffbc06bae6a5f51d53461b355ddd5ec5d7a5d5365d93ec3ff6ce5af9e5f7a965e556ee5569ed5f57ff46c61bb2f1bcbd01eec6707d473e03dd735fd70675d148e7f3cbb291078f4c5b6d21ba35d6d4d2fc76b8ba6de85814020104a8fd2dbd1b59f73bcfe3376bfdac26b5f655f675f6f695f40e04a070406fb4a77ba1d4f6fd2eb63d644599675e37ea2a86f7b925ed66c4f78f6fd777665d38ea27468955e036febceee29fb9ea6b26fdbee23bd28aca6e88f59349d512fcf2aa4b79b68bbb2ae37bf1bcb265b0777aee93d7abf79c25f3e3dfa61578dffcac0ebdb133de1396d51996de5a05a77a6e9397a63d8c3a7baaa279aba6e3aa3307a8dde786d673776d3d34ccf335d4f253d466f1acbec09afe73a9b2b0bbb7e7a8b5e559ebd79b2a6fb59975d5755c8f6b5efe9297adb546657f6344dd6bbb0da4f057a895e7fb6f23ccfa6e9e1efce2e2b647bdbbfde60d875690fd19bc6eda99eae9ca2a6f9cfd30dde5f8eedf78771e83d61d7cf27acce6c87cf565e856c3fbba1b7cb306aaae9da3dfcd1f3444f0a7a85defe5d2ffb76f66eecaea64ce85d6198654df7443dbb9ea63755017a83de96853faab2b0fbe1aec6b00a0402814060efacaf919eed07f404bd2c2babb21cf7738563ffbd19e84dbf7ac65efdeeea7a0fcbb090edbfaefbc6b50b6fcf960a6f7f4c93f749d603f4ae2c8cb61f75e51595d31eb3eed71b8c2fe03f26df80c020db62e92df0c65d6e5db8ffd4ec1e46db5581775e7d375134663d1caba86bfe1a69d3c438d89e445f76d6e9fd79bdd97676754f148dbb1c7f64b1bd916ac6176acfcfeb7d7b76d7a7fd84db35edaa90ed5f328bfc2a0e853690ee0b66915f66dae74dd7d48c59b475e5343dcdb93efbd0d76f668fcfdbe19565e36fa6e7c9a22bca0ad96e9f7d357b7bde15fee74f3f9bb22e6ac27e5dcb111cf612783bfbdb9e7635464fd654e7146df5bce69cf6189ebd399bb3caf69fe73dbb3ab7309aaa9d65bff965263d3cefe9677746e7debbfacf794e7b77deb585e355555358fdae0ac32a8ada7953d4fbf8ab69ef6ccaa26e2b647b9d5736e779f528abf63986fb69d27955d9bb5d6dddb9b76d6b7a384de7bcf2bac6df644df4cf6b4f3f2ba627e7557f9caeebbaa2abf9633fc36a7a715e353e4f389d5db6fb59ee2e1cb93dfb8cc2abe9db183d1178d17866531865d5399d537535d137ef8fd5f5c3e7a976198edb943dddbc282cb3a7999a6777d58fa6ed79c0ebd5d48ddb55fee7dcaa5eee357a6dded5446514354db7a3732c9b1f65f3aeaaeaca6e0bafabecaa6eba0ad9bee6e8ad79fbe9d19eb66aef5ff5ae89aa793d7c76f77459b6fbefd5cfa6695e555e61796ddd3ebb2b3cb306bcbdbbb377cdd365e37fa6a667551d3d34ef2c9bf347e3b38ddbf3b3739ca267deb335e5753effc9c630bca22710989a79bf9fd114657bca76f9779f96794ff6cf2deabf875997edbf75d323f3c62c6aaaeb0cc7b39fe3d49ccbd8d2bed4047a63de19565d9fa2728ab27ded272ae65dcf164561f374653986cd763ec3bc2e6c7e8fce6caab63f5dd7f444c1bc301aabb269c2b0f94d53f55f5e5956ff3fe5355e7bda51d6f5f2a2a96cfeb665fd0ca3ec1c9b4d7a5d5eb555571885e3d564bbec3f7b82e97179fbfce1d87567d477538dbfb74f2ebd2daf0bcb699c9adefd73bcaaa85ac0ebd5d8bb7e9ed713fd29daa66e2fa0a7e585cfd9b769dab673eb7ffc3d01af8c76f7cbf277ddde57f3a3595ef46ce79ea2bdfb768ebd37077867b8f7b835e395fd6e6cba698af6b0bcaa9cc6de8c638fcae78c9e72efcaebb6e6b9aeeb09fbef4ff88c856c978934f0c557d9171a1078f44520d0f64060fdefe1693ae909f07aff7d1c9b67aa9e306baa67003d2bef39bb332ba767cacaaaaba6b090edeb6dffdba719e9557959bffaef53d377d5cfbdcf684ae535cf793ddb796d61156e3f9c9e535e8f9aa9fc6357553ffbdbb44d51b50fd093f2aaabe9cd189ee71346e734f542b6d7778b26ebb7934c2f80f7a7301b9beeec5d1445db15ed4579d1b68dd37945dd59765b554e7b50ccf5ec409bee3d79bfdc5515fd302bc36aaa9abfe7e485fddaae696fbd0ac773dbcf5e93775e55dfa270ebaae88ffd3fc7f498bc3d6e57f44cff6f5bd8779fa6617a4b5ed4ece69fcd0eafe6f71ef54060bb962348d753f2b62a0ca76adacee939bb319cba5e7a49ded49c4d9fa2b1d9ffe963dfa6597a48def8a771fcdd544e5d19f5a9dc3bf2aa6a87bf09b3dd847f6763b667e43dd52fc7a67755758e6339fe2801bd222fea3f7aa2de8cd735fde60927659a2cbdc37bf5b6731a9b5d6d6197fdaecb9afe4dfdc373f5b6733761d865d7d4fb8e7ad72ca83ec06bf5b2aac9f6f35c4dd985d1df5921db7bb75ddb4d2bf872051eab17563f3c9bad1b9fe7f94fef297861effa13fea9ebc25ffe72c66152363b7d1bd1d4f3e88ba8dabb0edeaad7cbe91acf676acea91aa3a88c4ef0b66bfc4db96555afcae80a1791368cb459b5afe6b99623a8c653f59a6aaca232ebe5ff59788d5d9e046f37d7b69fb1777f3ac366ff42b607efb57fbda57ddd40609ca2a7d95ee2a57a5558fd68ebd753f56a3cc731aad7a3e6d95d0fb76c3b7b16664fbd312bc7aedacdb68d7dfa4f18454dbdae2ba7704fe1f94cd1798667142df5aa2dccf6965d7f6cba07f048bdf1cc7e1fab3e85d9df9ae8799e74e7a83745e59fa6ab9b9ae7daa6b3a8d7b370cb76d39561776dbd7cb611bc2d7bb26ecab2ff8cd93446cd50efecd57eba6cefe777cdd3a3280aea8dcf738d4fb445d37535bfcb06fbf9e99565774d555585e356edf247217855148e639fbaabd9e3f67f58c8f6d5d3dbbf6755b59557f85c3feccf4eaf1bc3acbab272efa6eae1f84439bd1f357d37533f9feecca6678a6e7ae73636d1dfb6bf9be9eacd7f6a7a4fafbaaa2cab68dca2306ab242b61391c560ea060402813d092fd30bc7271c9fa68bbabfede83f31bde9ccce7f45e1f6b72bda6f3cf0aa319cb26667cdb9ab66bbca42b61b3f31fe7441b7bfe05d7ad72fa3f2ea6538fd73abae5ec8f62faf4b78965ed76dd1d5afeb3cbbea1cbb737b1ebddada8fbe68f69be7c09b9a675f51bfb6a70977d3ec95de3696cd936555f7bb6c7bb232a5d76ccd1465fb4765168653d80bd94ecfc661f0fe722b3ddf1f0610588837e97557589ddd14f6b0fbbdcb7654d2db5377ee6ada59d37f9ffa7e86d7c06bb2acead5f5c370abaa66ab0ad9feff1c149a9d112fd23bbbb139c3a8ab9a69ac7ad614b24634db5eebfb08e93567754ed3d45d7f3fdd2ec742b6a71dd8cbbeccf78b2dedebd12bbb33ecfb99c2ddf41eed75417b08041683ffcfc1b3ff5f7c957dd974430ff7f596f665ffffa218df0002e58cc3ffe79355c463e0edf0997ab4cbece9c2b2cba2aa91269601812ccfd1ebbb29afe6099b2b7aa6f18c1663bba0791ed5732d47f08cd7e86d55944dd32e7f533559f8e4317a4fd58553cfcaee99c6683c9f660ff6456f8caae79ca2a68fbd29a7ec2a64fbd98fbe8653f4b6663ccbb1b9b6dd4ce5f98c652392ae83493898a2f7106ecf1eb4d39e8397e8854f7575d5558ee5997555b7237adbdf63b7af688ca6a63fd59677e83de7d975e3d3cbf279b2706a9e3c432f1ab75f6dfdbcfad6afeeef2bbb962328e4157a4fd6f4720aabdd5de19eae6c31be41e84d7d9bb2b08f65d34c7b1c9f42b6b3835edfb2dd4555d9a7b1e9b6f6ff7330ee5d8e27e87559584d53136ee3d874d1f6eb0dc657fd8dc61ac27b0807040281f5ef9d678517e88de7b9fde7875bd9b727fa4f40af5fd1f9645bf3a3f1ea9e3ffe8f17083c1663762d47d0076f817786e75465e73e9b737aaa662b647b31b66bcdaec0ebcab19aa2ea1cafbeb7279cfe7967f844d9d8744ff67717954f21db5bb431f554c3f3f37ed6fdae3b9fa7dace2b8a9a7dde3ecf1d9eddaeaead5f4fd7ecc1e3f37a993d4dd6abac3aafdd65e53def8ac6ea19a39e3d4db5355d2f64fbbaaa6d5fcb11048097c0dbcef0ac9a70cace698cb2702c643babe7fdfec371f7aed9aa323bbb6d9e37763f3aa7adbac2aa9f4fb40d26ebdbec5a78785e77edf22ab7739f531366d953c8f67ffb1b595c6d7c957dc9f87a4bfb3a7a35f6ceebc6683cc3dded322aff154e856c2fd2f59c9e3c393c3baf8ca671bcb26daa9a29ebaaac90ed728db48d5fed6e5f6bf0eabcea87e3d46cddf37f7fceab4b84873152fe356b62e1d1795bdf9eb2e9b2fd8cd938564dde9cf7a773bbaeeceaaee6dae1b515b21dadae5fc4ffe80604beade508f294f0e4bc7e46d1998ddbd95de1ee7e53c8f6b4be8f282fce7ba66a6cfaeec2ae476713654d333c38afd97ffbddd5c7739755145d4f37d8cf293c04deb3cb6a6cb26d8bca665f4f94f7e6f52edbbae899a6283b7b5966ddbc663cab327a9a2e0aa36ceb4d143de0ed723f4d565dd5d9a76b6baeec175e9b575e7f7bca7e354f739de5fecf93cd3bc728db671946d5f3ecf3e9a2e89a375dd5f8fbd58ce3389551b40d76b49f6d786a5e5635cdf4ec6aeb5338f5a67a76d50c8097e6557b7cb6ae8c9e321c9fa98f51d4807796dd0fafa70c9b737ccaeeda83ddeca7013c34af775b7576cd734e531636dbd3ec675e1955fb7a76195e65b6a3310b04a26eb0a3577866ded36c5b2f9b6b87dd3eafaee99679d7b8ab2cdb5d549e4fb4c71e7583bd45e9ce303c326f3fd1b3aba9cca2ecdcc27d15b21de58d79e7183dd11335e1155e511585d7b51c419927e69de1794ed7cfc26c3cbb2edcdd804020f0ecc11e7fbadedd3ebc30affa65d78cd3ceb2a9faffaa1e936f49bbd605c303f376183e5d98fd720bfbd394ff9757367ddaca1f4dddffff47552faf3bcbab5f55b69f666a76b50381f7b76daf767961f764d7f4fbd975655346bd1bec5cde56edff84d53575e5366ed576cbabce69daa6eefabf3a7f349d89445f16ec5e7805bc72ea9e3df6322bcf29cccaab5b86a7e58de13335dbb37fd8abac9a76025eefceeedc7fdb5d556e3dfab3bc68bc9e262cb767bcaa68aaae03bc262c9baec9a6f3da9a270a637957588dd7dfae71dbfd37bf39c365d772048dbc2bef373b9c9a3e455514f5ebbc9e6b1c4f80173efdfa51d9fd7367d7d83d81c013088c3f1d1088b6489e9517fdb33ca3eb9ccedec37d4dd978555eb3f5f0dcbabdc7b0ebfa7816b2fd8badedeb8b4d5d631e95b7b72babba6aeae78efaf5446d20b05577f0a6bcadbb9e299b9eaddcfed3954f296f8aceacea5797f5aab976d97581f0027861d8643f3bb3f179a668eccfb7b4aff9b701a3f0a2bcadeae1dfaeeb99c232cbb2adfbf506033dc9f0a0bc33bbf68fcaeae9b6ecf9e50f04f61eecad1dde93b78d61975561589dd3563ee5930acfc9bb76f89cd7158dfd399faed9a2295a00afc9db65d7a7ae797eb3cf296aa252784c5e36867b8f677956db2ebb309cd20181ab1bec29ddd9b9f096bc2b7ace663b7f3fa32eeb65190804026d37d85d02784ade933ddb338d67afca1d7555b30d76f3092fc9abae6abaa6eb39b7e80cafb071280cfebba1ed7ebdc1f8a2672010180c76b3077b3b8687e46dd5f8c32d2babb3373fda6521dbbfde601463bba071b8b6f57db4e31d795b53ed6bdae3b48557ef4f13c647123d10c8b22aaf0acfc8fbe7d5ed7d365b788dddb6a728da579979a25ded6b3982bd2bbc22ef7aa2beafedff71acba6677856cbfbf1c2a1b91ad0a22efaac21d4e517996e31535937f2e78f4c57e9afde88b684dbb6c70c8cbce28cac62d7c9e6eead51f94bbaa9e7d2d471029e49d51198d67156d7b9fd7aec642b6afddec6cbbae685fcb118c83bcaa87dd7535cf336ebfeafe53c87639e3f00ec2489b3d653421405e3765dbaf9eb10ccfa75f5b54c8f6a091eee7d71b8caf1bfe6633cabee42410380feb6f030834a20181402010687fbda5a17de2fc96f655c338036844068d3410581c0281c61a4906040281bdafe50842c873f7ba1f565bb7fb8ec6de6c5973987c57d4345157eee669fab3a7bd752bd2f50b201008fc35bd1691467468f7aa9e65bdbcc2ab0bdbfdb3fad7d1693dea5ed8cb7137d78f7695657faca62b4cf7ce1e965dd645d7f9af7eadfb46b4fe6ef5edd63b5bdf36f2355516fef1eab63df6eb19c341e327b23d79a463f54b56915f6f5fb08afc72cf7fbff0ac7a14eea9ebc6ee975df4cc7ed9df7d6cb2271ccbb10af7d90b5fd46f0bab5ef5f399b669ebb669fbf506e3cb4e46fb7a4bfbfa7246df06047e39a3af8140fb4877762d4750fef1ce2bbaba6b67e5de9eea2cab41b7d7b7ad1edf133d4f539ecf555ed9d6754fd565e9d74cfb3aa36d1cb72aeccf18eef56da3c67756e78ebae869a66cdbc22a2a64fb6df7837248f8cbc1b57fbdc1f8aabdf0b4d9da0be3d4adf8a22becc2b37ac6693ac768da6f3b5dcb117c89af2bc3b2f965d9f59f855dd424d2347c36f7b25dfdbea7329a9ef09ad2b771184c5764f0dbb53fa63df5f1ce27eb67163e617645fd6cc6edd98b48231a1cbe333cab1efe67dcdd1396dd2e64bb7adbc33457f8baf09753bfa66d8f7daaf6ff8947e49b29f7a62eab9ef357d9536dcf356ed13ebf72aaf675fe6b1b77384dd9ff7e94fd283bcf310bffbea2f1507edbeea6701a7f73feebdc7af3df472f8fc99e0d086cd7b51c41b9f865d9f384bf2cbb7f96ddef6121db55b7deedfab777715e01bf6a0c9fb26cfe767561b5455121dbdbf946ba765bdf368afab7453dba7acfcee9dcc2b20b0bd91e34d1b1b8174e65565ebbeaa2b0aca6a72a647bf03c89c41fa76ef045d5fe3bfadb1856d7746ed5752d4770478f779dd5194d65d4ec6d8757d4050289c41f9beb5a8e200e1eef6fd7dfe51f9fd5a834f18995919ac428848c2104180c89040024a31100303828188e470312c95c40b8051400035f9674a04e1b4aa44918e4304c21638801c600400801100119a21a070ccf197fda13dca1cfe05367f856a9b4a40edb4dfd00e3dda5f6968130c61524ae65a9907dd40e400cb0dd6164256e6533f35d54d5423dfe9a8177e7289e313ccc891b01044e009c9b4ad12ded6e8f5b136e8d968bf1a17f136c653a653354203f4109b99dc742e152c9b31b0304060098d56b04f0a5a4da365b1bcda7695b2cba5d7518d91a183f78f3e6979ec66a758ef9be4eeaa367088b2c636e8cdfdaa700289331e64258b9e512d93aad5911a2e5c88455f43f2678e675caa03b0d332b2f401b7cdf6673da27072b79c771fa24c7be92f35cb7e212afd5c76b46aaa0db49fcc4e7495ce6857616df8004265ebaa9bef57216b7c94b6cfbadb2e33e5a0d1168263519ad0d84711aed68b0723d0570a3a9bf1568749d8855a14fb9dfff5d2878c9af1af6089d6777649b6fc44a0714c0536b32f7cacaae4d88f7af2bc32f53c4e61a7c8f00e0bd9fd2d56148958e73dc86025c6ead0201782d60806dfa4ecda7a2e09816e68a402a06f6d065b9da7a69baae3ba6e7448904d967b54c0aede38d190da1d9a0dfd0caca21a5d356a3281445c5293c3112f911dae7c07324168828f6be8c200948ea16724a2a0eced8fdf12f517008236b5c496274587e699c9b9031412c714dbfe1ce6285232606258b7b464a8ab3faae67f6ab40b14041ae6465e5a8c6b3379464485174f228355da118afd3b949f5419c1c554f60dc09ddd1e64c9956abfd22ffcf7178cc14ac82aceef8a1179529ba771e513ab7b7aa0a9b5f86e6a4430bf742dd94baadf9e3956ef2e967a950a5a407e597a90a4fa3e5cb322664278ef802e352884a5c539f478dcbc398e62a5b8e100038936451b1b8d17042fb5cfe1ec2cd0fbcf800079bc5e0ab7c05f4580cb353f91b89a105708a54a5c55aa15bf9cd701f14be5bb680f8e2032f70dabc84865577fb01aa9924d47524cf60568def4f2c8780194f125507b22900dd97bce1386824071af7ea5116118fbb8bc8da3007b355a32aee1e5999816c53052fe26daa715aac1d3545fef8a36f8ecd6381997533e9f6148674f07326329d4549910ec94b1b5b927c8049457e5a59a8b4bd3d2d384d11074dba413f2082d4841ad26c2b83f0ec333d3069a170cf0112a0d5d0b693d3f8cf37d97fa441b39c62c6b7c1ed3f94b7f94b58f3476907b33c931bc4c7fba98f5f2f6e7479e95ef5518e73c67b3fd0e1d89fad4e0e88060be40834a06ead7506851e6261cd718516036302e6350614a118b3307b1f3faadbcfe020b6c5a36574a722247ddb53ac9f81e201c2dc0b9d18b77580f1812cd83e7d5a64a9228e15d00744e2dccc200f387081de40b49f70e73c8fa9f7b9e7a830d74b91dbe836db94d1483b15f674e7e2521dc4be7917527147a2512b217433c552d6bf116a845494765c75192b1f1f8443adbc80d6c258090840497640a311625a44af00612038bb04c65bb346e974f73a0c528f0064b87d3d87002cb834aea1dd0cc53f61f449c200d98867a802cf338ddd4e586b6eb570ead15dde894752991362554dcef0613f06d57ae2f955656eb761da6de9e6b8078ecb27258d5d6fdab82142792a0b8659ca649ffe14e8040c4bceca14f12e63768e7ebafc98c822564cebcd0c9c10f9a769c3c44e38f97ce9c563ea73dd76272e27f5c259bddd6348b7a39efb6e99eaede2617cf3040f0bae13638cfabe1b9a3174598a7ce759bf3944cbb81724f5562143d132c66cf8ae29886049bbe1092c8efd3f164b32101f765c69e9730e230542e9ec7ab48fccfb6b4befc6e4e0de8757208a9303e912858cc7ec407a336753323382110d500d314aeb0fcfdda3c4ed47f2dbfa837a67b1f57cd806ed56fc8c6a68e750972ca234a963977fc064f19819dc8f7dc9de38c90e97d04eeb290a3eb8c61d47a95df479d73fe98e861b693fdda1617d5e6c7a4841d1a0b178e5d1ca3295fc154c74835aa461dde6b2a722da5994d50bf4cfbe0c1be9b624497a8dc272d590a2b4d95f45b0518ceb1ca900e3877e2af43f5673bf7c3c418f893d90b8b28421db09ae24a1b12e3b36b5c09c8855f568064305607903b118481148d8b157cf5ebdce1eec2d796e20c229020c11ec29a7678e77b3e299e69d44df361ef58f2e8f78ddcc36b750d38909ff581546723e39144137d8db9a6c3860076e525e3eee2d9b5a28aeaeb4ec8cd7406dcc04db0dc29e1393413ee0149ad1d2a4703a2b55e79d6beefb9a8fe7e194fab047d380252ca1ba5cdda23b24d0af8d1123c9f299c1a0816b62e405520f33313bdf78d0053fc8568602c9e1392616dafdbbc4376b42d3f7dc4c14da36cd72d0b4af6565643e156f8095d6f6c6470e22c3ca02b8672c13eed133dcdb4762a5ea3b0610e951f9a13d3b1692097a286cca75efa42ecb2bd1af8d55478a917928a3a5842f460fd9aaa72b6c9347d7e65ab87703f4d81913403df96ecf73231b73648dd8f9e4972e1b951813c9706ad0282f1fab85d05e94ef452871a5a5407d5ac0e34b3744ce10903f8d656f8060ca074440843ed5ff1697cc156dc07568ccd6470fed8a5c37965c5d321afbcd8c865271d644f318fa9ca18b46b6b72a4900d3c892d65c135bab9f21c30f1722825592cab74fc0fc6431349efd87f6eba010b99667f60717c7b4f957f1c5e744c09e6f592bd0f16584b6d198dc07506e6b5938fcd7d584c4aacea42d90e11fdece1edc4f9e311512e9ec37d9b52d23a1ded7276a76421345c6739059f73769b534db649b1c65c0b7434ca85bf207144fe754ce4cf8599f143f52aac61e6fff67c076ca6504d6f582694101f8127b7bd41772e384d202943af1e84b7bd7696688735157fdfe79f13a502d09f353091f0d2a0abfb1307102e1f2bd2f0dfcff4891be42af8b4a6ae017229f69275097648090d68e52d04a0b60529a02034ca601b897fcc99f245c84211d5b61f9ba052ea13f82171906a715f2b8b1f60605e05b1f0cfb8d9ecdef923e2a6578309eee093a5a6db1b1d76bc32ecc6a6d2c5d4acaba384d9382306ed1c91b9d32e7c4dd54abcdcc39acd82d44c448d19065ad15a8ddb6111b89d4c1309514a2022aa35b9321b26fe9474465d27d8c2f57079844f2c10452412a979668b2220003fc221c75a222620465f8a9fa48d59414547d472603764410c40e54f5903f179323872395a05c211c91430c8a5297dce05a1dbea84325264a88d0b062171b0cb37f6ae4d470f9478d7e0fe28d6fca4e79a663e9399f0d7ad885a6c32280f629831992836a8cb24f116bf50295bd0bb6dd9f23425e181f361d225d808f79b57bdd9f98e96006aad990b59da01b7fc26fb3ff73fc38fbb67bb8cde52a86c7966063db5f650c99c993cae5b76525bb8ef8f3ad512faa3bf66f7a7235a8cef40c01dd07568e3733d419d019ad9b2cb38c72f683245d65ad60cefa7b58344bdfab0e08fd917d96fe37d44393e1a2214f7f2b695c01f672f321c3832d5df9b52f66ce3917ff9ff2144c146bffd9873ce4fac7b46c90acf43feefc24336423ec3371f1b00c52777148f44617b3d5fa12147d630aa74e3350119082ed83d1812590f3961f977625d444267c8580b13a683028830c09e6c13ec014ba77c74ded363e188abbc932ccd256c911126666689065735d00d0b2097a07c86dbf68b5a7965fea9a9570b2e9bf56aacaa203c3f6e13c064386f25ae5008c57ef8e7e0ef4dbbdd501620a9f9c46a45a9fed230809a7f074f9088079a5c26256b66cba5170a70e6c007c408f5744086378c0b08f2275a5ad7d4bec2f29cea91b1d698fa9e5ad359abec83c0ce66696dc4d0f9214f1f6ecad754ab5ef3a3810a71c412f88b90e4f262d87eb4a40d0cd1a1171809f1ea5393ebe908432fc8b19f2c23c36de5f79f45f0e358060bf58e3bc28e99f4025f3b69f3c7519508c10125f4f78a070fce8536c9d95bad03d90092da0325d5dff929aaa1a59abc9e4eb21ee0d38fee7e60def782244576719a89a6450c0e13ed039b7d6fb93aac208785d5999d9dbca4d8089694f71a9cf33b485cc601bc8ea9fb764d97ab1c12e2092bdf718abc50204f5bb9faa9e81aa42b07057c92c40260bfc71ddfaa88c60cf714ed0e83e45efd9a3e679414b07e9566598c0f2aa006a7cdc83347fbef3e9fc074a822436e1e50064d85bf37d3a0b19c9345258d020b4713b1354b2b9048114b3d795386b3041147dcfe75d20ff7ad3a2d5c00c345d94f8fba2679f039dc18dd516f8c8f549b230785e096619cddf55c8a31ad1c61f251690577a18451aeef3f8779f3429f5a1c194069461348051bba7b7342e372044ca487fa141adfb547d810845d2cf597078bbb4a03efdc724058c8d70662cfff4b09d48c6ce2e4947cdeb3d1a229320937cd3f5dbddb87aea94a61c7ab386a067a708cbecd511363d023c8fc0a089cd542eefba9ae7a33086fbdb1dfcd0b826afe80678459e6fbcda93aaf361a0758e41de87024325f59b5c9da01610b085e2c2238465fe1e5b44cca2e6da8dc2173f2b35f4e851e9f1cedef76640774848bf9052f7917825baad73c0ee661a2e823d944214a107256acf1fcfbd7c1626aa77624d6242b29cbdd59aecb1b62ae301af08bae8df8356a984c9b70b0e64bf162e0fa356b62c6cc22ef2cdfab1623fc04adc804908024615149a7cbfb9d96b8fc68b3f552fd0231cd833bc802fc2c3ab678093b25f71e1a38ee8a41a435012753ae9d4c2e0100638ac0728c82dbc1bcf1db03f63ec3139a0c6b27e262436c7f9408abdbe4e66aeafd9eff9178a27d5531a21d63a47d8f494f8f30b22a5bbbb1944261aa5aebbb8b0d7e7b1e826fc2ea9984ed777734510a0c854f9bbb826affb9d24ca0b2b9d290f3e3126a9cbb125c6e42b87c8e08a1acda51290fafd0c8fd581313b61ac7df7b2d8222cdcdf216779009551b59e49ccb2b630ac14e8fb2fd9ef885512faa012396872386a44487ffd09e228ad171295fb5aca4524b37591b54eb8a2f323cb70253ea1748b9efb323910262b83b595831f14806c1555e269413e74cdda13bb0e890c14e476ac9c940c1f711a35624909bdf75c517da15a6160e4c2f96957a6acf997c46c4e4b1ce89b012bc5094600a752b76a26c615084be5a6cc0817577aec6094ba367b9c0c767ecbedffdd931fd8b6ece7792520ba55ec33f17e00424224528efad54d028dfc8fbb98c16843b5ed3d11e227d9c284317aec2d6ffb8beba29cbcdc588f65399b6f3a4a9df66614f5ae1356a9013148e3d7440fe330aa402a3362a75028b0a4028c76da75913b3737aa350b11e065179619c1a49ffbaff40866eca3f220e9658c066eed50d6c8437d76451aaabf2748d2ca90965e24e5c38c33d97920122a9703b7bc238e4ba9d212fbb034534e1381245a42b6dee5e5ba0a953fb2a237e03106330c613afc1e35c6e3c5b2b024727d66a9af8f19dc8e39a8c84ff84f3845f40263230d5eb13878ce401aec5063c353e0fe40c22f0364ec92e47d965ad0c5a591ba04a1f071a80c969d218b6f7f8070687356f1f4de8cc64a5fb88af38165cc20eafeaa916872dc54b706313132a23876afb0486cbdcad4edfe9cc4aed272ad0cc54c5a2592e3c828c0eeddb35599053e8eb4c134544b9b380db7841d241d1f64fc3d3ab53e85076e0c2061e42e50ec618b99e54958f9dd90f3544e6cd76d7b864b4ee26c4b67091a807afc09b8391e76f3dd0f17cf82b3bcfbd335ee1b9319d4183eb9f673b1c67a71fff44f19b0374204cbe7c29a65a30957690b0a4cce3851f1931d2dd618144683a4e4f426a1638c4857a4dd94d76dec88e762588b7c02a46ac7868fa7eba68ebada105df3ba1d7c9f644428c38d16e26a13abdf792289e74cffc76255eb43da71a59aeadae16f9398b27c735ae469fd1acab97cab924314e383431d980efc9c383eb48eb4d2de03821179c26716631d38bf49094e72b07d4a333fa7a6a819bb2ba612677ae49da74be29e5c10770b0a55ab3f1882e797641bc23e02ec2dea27771d2caf5d3dae3476fae1754456917c93253439ef2da6ea87b08ce32abb1c34cc8b02a6b00d4beded3d0ab2ff8c4cdee56ada61c0cb9bb02b3128c50550006aa2f3f17adf0e74379aadba760c277ae048f9a1dfd18a0fc1acfd94dc6c23b57261137844f2e45603a8b320e8e7a7dae269e9c15e4360fbc353cc7cf22020883e7bf8f4f0069829aaa2e12aef3f72c18838e96b498248dd0c5de450b26ca054291d9f57e167c5c3871eb63e6db91d8b213224ad1f263f4aa5ba094705cec0d81a1b3e30c5c02b453cdd1972459f22ec2a743697ff8c15b8cc5ca0286c401f84510e311edd14ee3fb9872009c5e48547afaef122098f586bd71bf86fccf85843d7ef17c6ce59a83633131fc042973db618b17ffa1b92c57cc7c61dd756f654b48d093c71c7844c5f2d986fcb488e2e701a29c74756900dd79610504e5123cd005d0d140fea7af65143f483e699e0479de1e120505a71f8b3dcb00a83d68b501b0381ece6704b81ed1199bb62fa221de8c61fdc8bc55b1dbbf8d4e27eb460d15e3d00fa14472a757898e60e1a4a4035d0637a59113d916e394fbb00c941131a9403259d0a534288b8f664da43248ac62ce61e1bd96534460316bfe6bef210d1e54c468f011388d7e358e2c18bb818269bb7863d90013b3818a8ccb00528778041ab74b5caac791bc7418ddbb00654006bc49b9e0393ecd1b0bc1c361ff00406f107b4a59c295e9c306ac9ed08f82b832334f63e94b2294d5e614c54e38b69dc6aa915466c4013b79764aced1a6bf1a47a0c1dd705d7a40c2a5e64f4a0161595e1f1bc8107ad350edab3152d3b97d520cccb6b07ad798d7a41c791156610e04307edd4c406207ff236f6ee6f15feb1a6dc558c0e6e0535f397fa2403d8f00fe87fb2e8be05b0e502b66d0e93c15d9b14c2e36d5c4b1825aca44bef3201f8288a4418540eb492c24496a14aad30c0af00336880aae24935e644653b170c53f4c84100ce18316fcb4896bd07fd66c4bc732c444bde8368a4ec77b2d7959e3d7539a60999d0dbd129853353dcf321df5e5ce55de10cde1ff2577e87bc8d08e20a142208475b8a43b2a60ae9a10f663d84d92e7dddbfd1b943e8f57e8054f8176357d2d7725c7d2d6b069116da2eec7d02bcf2fc136962e08b688ea57160d29ffc853a9584a64805d82b2b1c36a7362d969dbb412ed94a0595b11981a3191ccfaa25631e19cd73a8db4d078cfcfc966084e3404407613476db459449beaed9cbfee81e282ffab32be467344765e968a25611f35f0c12fab8881c748deb9d558b5fc261154ebffbe746467b988d3a06b8512f66d8347366e8145738b9a340b7037a24c9b4804b377bcc6430806ea9905656bf88311d2e8d0a9773d5fe986f89a4486e1e491b86b85b3b8e2b30260b233fc5652bb5b53b90fda25d1862c51a6eba56df9405a925e150a2af9a855eb77b5fa1e6623300eb16cc174e24fd66ed7308ace581a2582899cd6da7d39b52291f8ed0a3dda490320ef47d384faaadd62049f95e75c039809e75035defe8a09bddf6efb518cda9b9842af0df6100ab85b35a6f90c6a106c0ee9383b22773d1b74e935c5ce115e94118514a7fbd93e218bacf64a2e59a520d5c8ba95b75ca44666d16770d632c12b24c9435a02fa57ea07402de6c702d8a2670b10ebac9d68c7d94e6353fe725acbc001887fc32d22d9aa2edd3929680f912d80297041431be067c74491eb831ac4ebe6b06d7652066815fa549fe3090263566bb05f15c995395d539f5f24ce021e4d2c1dbc98043d0520464ef71aa1af43476269af7af19464c637bb421ef8be7e36c2f9cbab6bd2ac98bb3ab650708f4665f669586ac7c0291364d2088625adf0851a212679a07b1e7faf8f3aaa611f413fb9c6b4d32ca9c9e6e2930e6de1025855122e300b939e6050a7ecc80810542bb18e6d187079df968274fba8098be3441147b6fa6fd0234f603b1cc56d41f823f0fe91204e5b9cc23f17cffe3dfd7ac4de7a9495fb6a02c477f557f076971ed2487600b1f5a33d0e7cf38fc79a65c4290fee7e4456baf7dcfa7c7d003161bbf518c8db453e930dbd64685acb5573abe6fab8d8c7a5c42b3a596b7b46d243ebd2b9cb982e918caa6bd86752377bef785027e75510dbd7dbcb304831f7febca81aaf9bc4052ea83f6af872dc2023fbc92992361bbddb37164f27fdae34a4e43f6996fd4136c076e2ca07bcf6c120704ddfc41e7cbac7b7a5ceb3b9e7f656e127814a47b64c6be664d0dca92834fef9035881e7b20ff73d8abd3ccd017b531f99ba86c3be00b8ae009ba06d4de4b5d1e82e4a07de073a9ef25f4bee462f1a89b379e68cdcb6b658f7c86e8fee7859f17d4860419ff862abb070f716cf10ce0980e1cf160d9ea2f3c1a1e20013f754e13f79c3167b31998cbb392dfc2627a03c677a4a42ed48434fdf53f5e9dc59031be637ff1b9e447aeb45c83a64cc1c861ca84e5362667abddc58a0710c4702dc487a429cf80309ee399ea1cc2983976918dcd254f3fdaab71d921c0e0e0dd466501df26ce5fd2da0f0679db172119d3fe250df2e05e7f81f1e2a4a5cf2717972c930710476309390ba4a72301e34594a9a4e296989af4c525ed2b2956bd2b0fad981ccc84ca99dfd038df7900c98297798cf9f6a376f36495043d138fd553e86137827c926b6079ea035e7699693e0e3a1a670f549185d8d33ccb891697379f994ee1c50f37582b2ccc708eaa0fadd3ba17cac1ae3d2ed46e9e64358dd59e702e19f84c35ef301097b8863a2a9cc8bd990f98fe0c024dec5041f0a5211960e0dc624a3a339b0f966af522713bdf90107ebf89f4f2168c876cf55335870a7d86e65d98a2e5bfa1cca0c6fdaf32cb8d50c8ae2e39603f1a5ea4ec653be3edc30e7959d865c5f8e93725c852fb343198d7619633ed0928e922c5f6c1eeaddeccdcfd75048dc03316e5787fd7c6758be8074df2845ecde87f615ec2b548a93e0fc3607612aff76c4714fbb080a6c65b5d27ff4d047e33ac81e419bdb37a5652ecad88d5690b2e2c45d47bcace8a69f893ba9e652a61b3b5a73067ddee7ba22e76d6be0cf96f6f9cdf449a1832b9096bc80047945a318a6e79c6fa33a3e3e6c81d71258b6bf1dd5fa8e1fb8edc5fa0817f8539114e568ce7b4f4449f5b3210e804822ade0e16c5b6cf0b201c7211b88f09672bfc26698165a1cb634b9662fb4a510ef64385ff30293dd93c6acfc7bac310f3bd0d71998691b2f18fa2dcb34e50dac2f5eb3c314bdb7f62d382de660621b8d1e22d02ddc4be9d5a869da37f2ecda4f9b4fbe338d767a014e768f97061a2be877f2a0eac7d7f3e8006fc67d4067e9b55bdf25fc2eb2ae6549b2d8e3030e8d7d4e8fffe5047886ec018476f262f3c2b60042c8f299dffdd54f1d0ebc17f0efe32ce7934ffc57bcb02f0cc99ad63fa1d43ae001c8ddc4a3e33d2d8aa7a4beb5a2d17ff3bc6d763043f50a43dcf5b991d144a49376b204066d89ec2c176e455103e5eeeb913fe177487addc147fde91f63a14a23b30156207908da1e98fedef323e33d0a90698883f8180357b480e728785c53ffe30ce335391d711acde6c69efd1da473fd62ecfafd6b857f3ab1d33d612d76412196d829be4883e06ee3a1bb2fd034f63d5d6f0b4d38de26ca3dfecd475ad63b167d3ce502a14d04249be4c6e4d30d76e142a2a1791d06eed68e27bd548449f3684e75046313f7b275700105316041b8d4ff8a4402fbfdb228e03db2fc6c69c3b084ddaf7e2f2cbdfee260a3279f2909c1820b20e116e3646c03edc59daf276931ef3761fd2adefb9758a755124b09e2c7e7b25673d010e771d624989852ff23c6d9fb61a752114bf8d44b026545437ade46f87e2f54f05976a5360e4377494014cde35fb9f49525b7a1adc4dcd82a25d844ff007177b3392d6a801d17295ff8fde011f0c62e8f7a1484c14a1b2695c89ec237cb97d24c14d078d787e0517fd785805b3fc88e44f5be56635b1241c886031bfbb4649226704b33db289efebbdb884147ae983bea44db721c3a7b533563a56ac8dcbefc3e9f7ea7e5074b701a6f1e2e28c3855b603046e3d82eacc58761ba3717d35229ee06a874ff56eda1afc18445299f96b130ba7ce01b4ef55e573fd1bd4d9a9315a67eb3c9b36e367d7c08a251f6f2ed9a36dd78f9e8880dbd19da60061a2f1de25cd2239b10de82be2f090c164ae585e61c4e2b9906939a65a5403a9aecf1d00fdd24415790d851107309766a477ac64568e68228531533ac5e4d1344d789764a4ddb61053aa303ab4c73189680fdaba355ceacd7f24c0da1e34791a64ef8e47007c693640057c10d79ad6ca28a7b8a0a53a6afe455d8057285b3ff78c38c06a1a07e926baba927f13725c39359ca67f22807743081de97b867f9c37dc77cde8e04464070b00bf63a6c6faa3c5af75f9517e9b6074779ab0b8d245b2337dfccbb076500091e87543917f9381bd2e09ab7edb34642d95835fd8dcfdd75077ce1586888b203cc20730c2a30c7e8c16c1b1e9eecd621f7c97de9d6329bad16001ca6d404d4191f743f3f44bc7bb6b1e019496f87d3935d8a3da38b85b41c2b336908f7697394f52b790bf3219e18e6c79cecf1e8dde93e73487753ec9530aa691ad67c6a916783490c9084bf4df789477bf3491df69fe89fd98692039ee35976fabcca126bc86abbf3fbb91062deced8b560abd0de233546e54f5771ee1568f335a5185f5588e6443813a985265e1f08dcbbfde490c5630f243fe05fc833ce577d37dfb748383afeb3ad53e6a224bb7e5ae5291eb014a2606a8ff5750a7c704925672f012bb027e42c7f1295097a3253df3e90217560cc62d04dc41401e8503d7c2b4f49d202c4062100b2086b3aff23dcc16fb81e213e6255a4b57366cd9b053e2a7fe203904b4f81b0bfa92d2b14576932c1b2defb6bb4cf94438c18157029b50c820e4d2f5d91482b375e1646b88cc7c2930664e338f25e832a6fee260666a39ac0902062325522fc09169752a46984b13a5bc3bc42e2bebc74605314f3d09d0455c2c8536400f216edc5390d10e983d01b677521f5cd124b3ecc53b4bf3e8611582fb1de8115ce9954140c2382fc03cc2685ec86d12b7c28aaab5c77b3a09f7a20571989bee34cc8247da2b14c0e0f48964595d8765237c40e50996dcf52834f5d250518b84f92475fe0e528897bb7b7a31d49e875fa7771567b84d1e3cddc1857ebbf4b95be0006988d721a5a258c32888a52d0c157bf9df9f39c8bad1e76015b85995c82324652bc1a91e09d18b9d7c346a9d63720aba563b0a469bfa39de5829f94a481df13de00d3be8f22d23117238c041164354511102683ea2449632337affe38c80523919171589c43547d12cbc438509dd2e8f36bf20112305301f29ce47fc5190faf10a9f7c8e164288d1685cca2d7bd94458a90d945a254ced0ec601daa5ff9feaaf3b73a8ac53ae7534c62ef1881860710104336461b0a4a11b326e6a22a1f868754c6d222079b60e8a1b4e93e77169983e73f0dfe5c483e847130828c21387a5204f07f14aa80d4c4e08e680693d658152e71a07abd1d6f4c032f9eade85c03ea8a83ae3902df1065744a41b767f2fc902355a24762da6a623a21ab741582cb4e8811a949c535b8a9e97de440e3a801b4ddcf5990622e86d688bcda7654a5ab3ffe34e8a49e40697a5f1ea0c7a6bd87cc4aac1cb52a1a7bf647d0f523aaa19b98f6731b9d1a01ebe411eac7aa29ab3235523cdf2f4473bc88055ef188a7882414328ab8b201a6f78c56b5abec00ab97092e05e50307b2b45cf4be48aecad2fabb38e229fed9244b35790cdb84eb7db5601c299ea89e6d9a3c353bd2059ae2b46b3d548b50f3425462caed7122da376fdfeca08cb69512397778b5a87bbd225b52c93c463599d6f752982992eca67b5abc7b79638c13cab24b054d7e453b1d86cb655839829d47fa54f7e06b7b283fcda6abc5027298b59991916ad149f29923bd2afde4c973a0afedb48166d51b29bed72512d7f7063b02d5ada7c6713069b55d7166ced693566a8c50fde8960c13eca0beda998a6b735840be7a4b0803e3594fa5c44a2d8b6c585eb5844919ff5c264665c413cdb65ca7b5a28403ebb623233d8a0c6ad72e124325c309fdd529d1c69283e8eb9e213182bacef5e591903382b17c75c992a4c0190088af287c87932e5d0b8c990a16cc9ae81d5a2a8ce2f6d44067b1739de651b036430e88d4a7cd8225804dc4aadb1bee8c36a7e740701ee32ebb8b4af44fab7494344b51673b6480b72577cd87fb9d20f55511de64effb66b21206018f96098a33b2439263b411458a7d6e54ef5167cd9606ee331cc200bbec7f8112afd6799dd1835c33c7e6565870e92af98718a9c19c35d0992f1d274cff80648b1b6d65f3b72b83101097de2c6f91716400a0c7289d78ce94a66c0eca085c04c9a170e46aac6477a48092f6943f36c6e97f2fe8b6900dcc9e18f325a19dae04d0aee75382aff251c9567621a023eebf803cfd5762134732f10ab5db1e7ebb079668edcb62578f42f63efaae8d1125f28f6ed4919034904f08d0080e8d998bb0759a6b9ba07f1cd2dedafe481cf052ea574b7701fde67a7728d90990c2b5d3e0318ee50177dfd0cfb6cfd91d374b4e75dcbbebfb92b2c70f4ce1bab5053db286b7ee3c9fa8ce2d4317f921f8d4ff0c41bbf664797ac247d9658d37e0901302c1ff31c55e4e15c28bfe64e718c9a5cbf2f78c8be9d30cbd18bc19080fb15c0e0919582b8327f6b258ab3ecb80ca29e043ec53c06422ba3752a363b38adbd29fae1ea3f9ce9251803fba76556065f45d3d239d6c5c6dec333f0eddea711da9e71fb8e891962d9aff22ebe3ca2a19401807ccf0e637d92254b7c128fe1fe17d11ba801fc4c7ca808c1189d355fbfc3f5534d93cac964a01ddf2d1ff7acd07f33d40350be7c644086919cf797aab1f0fdecdd0da9165be634615309ddb1257a576e5b97bcfe5ff4bf8aa206536dae95e33adf3f824438350ff12188d21f64b685ea8f4d94e664f6c90aa8f649153b16419d525d00257cb136ed9273f467f37b4e60213a3e0a347e503367f8bc1598ef7a911656dbd185636023cd391dee6b14c5a8d820b6103c38d32bbab38129adc9481a291d37ed97cc81cade7aa8e009606422361ba4c76f7f65dbdee7d2ecd1e64ca25a08ca47acc0202ad1a8af41b330d4da0da0305188415dbbf6701083908967fe3bf3eeb3a70dd5d637d705893a282cdd5a6a38a9bc95f809216d4ad844bf9d92a1dc4d35e3aa7f931365272d1f415dd65360823b8da1072633a9bfd6d0a005b5d1f765e74449213cb27e418abefdd3a4d15f988294265a599b32d589a02c4f1a05eaa850289944ea974a0d2d53311cd229e27fc42ae53fcd22facaa513c4eb74e897ba5fc2de32151b2c6451d52919f53f390bfd4bd328fec2a65196b69ba89b1c96b7b70adc4ea20a1761a5a3dc52179ed8d156b5d30f04efaae4e97bcd7bd7656fabf085533e02a42f7aaa7d04d53f0902785d05945625f0af32b84007632b84b429614e29a4500ba52a8687a8a16a72f8891eae2c88c115915e49cc4c13092e8aaa54f144591459173f268c33943168a4918a36662f8ea4a8a344f278a03eca2f903f28e44a1219a246122692f15492e6322942278f29949a2ae57ba5729856064d2c69a865ae5c12925eca08e6a514538c643e493327443330aa49816c26d14d6209a78cca797802a3ed279e6d8b0c950d5bbc3846432e71402e5e9414046a57291bb8f92c172af76f8217d8fac31ad22b3ab6d626dfc24eb283b7914edce079b96229f36471f48d0b3d99926a1a74a65e241c43ee030ee4193f6c85435df4c1532bc4038bfc98530fffcdb968478d09449f39de8fdf89b547c5fe23694ff6191d6bd8859d3043030ec0a3345c803c801d98ebcb95e91b7abb935b841ae14e5e2b6f51cb1658fa9866e99ead14912a7bd760856e87a1cd7ad48cfcf1fb16c5d8ca4ad2dc43a451034f574fc8826b3450756be50a753058f3ac96faf5d1ed565ded45e1e43c3e36d8cfe3bf58d00db2ba4d43939fedb8ed29bb538e75149f5dddfaf711c7372db7ef1d99035a16b429eeb0e3257c805c59364d73549d4f78b2abd90bbfc9716598dcaeb64b96ae244dcc6e4d63182bd024c7cd30298349e8b25d7557a3f128fdb5809246998eea3211f888f2a7fcfeb9d64cce079246b28a642536b5586bdc93538e84c3cc1fd0eeec75a12f4b4fd9ee3c0f8fcdf965f5c59b9393e7ba580358d186ecd9611ae02cccc580c1b0fcd0b330d4c1377d76f72f9ef768dfb441954868dba59f93f0c1b0540a8b57ecf68f3bd3f5b6c02bd372647be040ccf6bbd080a52a36305f8e0794b435d9532e5aef2121403bc90883e147a59f8f348a16c7c4f68d23ad3d03fa48e5141949a02bce8f1e116cc6f6b3864d2209fd8c302a4bd510bf197172333e9109ebbbf9a5f13d0633f11f00a164395b03f50fa11ed0a5f47a80cfc39da82d484bded8aa330eb30ef7d92163990030d15cbf6ff62cdf8f56c92cdb8993291a78f34b95ba55ac734e9e0548421db5b20a5f87bb77ae9bb36ac0a13bef3e8fa8911a7bd4625ec551d4ef6524a0b7c65030b42e3df472612f6a00c5c1dd9f3017048036ef3e9a740230941ecb0283fa4df3da59635ac19cb0542f9f1be4d9431cc686b5370d58ca7b0196d7a6f66c12fa71cc3172efc48b5f3644beb226527cdc2eedc9001129b894871ca20734980feedd35b718db4dfbe8ba42f309365afd37301dbb75b5e92666678d181051906ce93fcc4224ea6554d1a4c123faae8d83b35985c27ed54a688c070946088802b9221db3fc75ce2b13959e6910dc345b0a1cecab152bd39f6ae7ee19cd43d7861978d95cb3a494d9499548e3432d8a6ef3a8f3496c608668fd3e7507cc91594379ee3d2034f64537374c2e97f5a779581f2251346d7239ded19e9bf018ea4312c55e24e46c10f14b1d8e4609241a5fdc1da5e1205c0a4f8f2fc43c630216e3dea0885b12bd742fd669e733e14a869360654bd74411da81697ee0560bcdebf06befd8b62db33f02dbd22af7a42b0be029fe0fe18de44454ff3e846cacadcbfbeb2d61f76c32a515a4c68fc53a8684327e29409e7fcda3842154bc6e78b3c4c67c37fe614abf77e34e9b6af75c3f7ece73a1ba9c4307067a4fd29142512a5aed258f00151430f38f205acd0ea5ba4ba40d5c7066a396020c34610c5c0fe184cf912dfe275405393648a682ec833cb7692a51206b198c02bc9ff7abe7dcc5433b75395162ffde830ad787d114506dc1dc99dd3f6289680a06ef187c8f6e68b58b91b953a140f39279414274ab7dec09ea053b1f81579e7ee4528a1d0b1725d1c1f870775190a6e298881e4f381f552ec0a321e9635b4afae37bfb1c336c38014922a458faf1c4e4cfdd49b72587e4baf857b87676fa99632c9f6cd4e1db2d070513322944239704f6de9b6b6d99946de4af94361389ad44b9906262b9a0c23fe5b18c4bfe9ce8aa64a5f43f79488b67b166c8d45d3d8f03a68f183790b9c83f00df841ee147c7d9af20590e8e77ff513ce0d62188daf8c133c145a4885929f511b65e7278fc65814d38524a55d6f3f462f0605fcbd7a03e8bcd7e7dc41760e09f79801071622dafbd9184cf8bb4da42487b7818c787b270f6fd63af367814b49bef9051bb243a27aacad0cb33bbfa605f7cf52e82b274ec09d167645752996b1bd01729d00c9295a22a7a9e4806ef78db6d61306103da3cbc7d726d0ea0c2742c96a3508b31af540449865609f5b019db360ea1934e3979563a517cf17f848cea42d069cd0dbd54ea199ff9d21e8e7270c3833e1c0557a2db32beddff1bd72f1adbfde474b47ba7cca0931451b5a33ea46b7f8ab9b0ca216f4a44d4c85d913ab19522bb971e5eca813806b847e6b122d1b2e4f5768c19b02bffcd20bca4ea2966322007f7901c1686d0ae72e1b92f8fccc97667dc06659ba40e3f3517a5f71209ca25482624c78d73e399aeba71930fd66680e139a9d81a310586842641673ce17b9428e7f3a149f4b56403fb41775cb8097cb28e4a0a1ecbbf31c80a6c323e624bf9fc2f47480cae63a312cc7b0929168000d2d947230d96d1e045dc1569895642c1f74b15c391b307f668a222be216a29adbefa9322e04389a44afafde9752841306f6a77593fd35289156f2819725a2ec7001e5f49156705dbb3ee7cca998e499d1c8f98cd2ea14304ae7a0f3f87651e1bb6221cd5b7e3c336608100c5ce964a14526963392fe57dd026e7be30a0e05cd4e3b749c7c8cd5844508996ed7127a3c73f2176e84fd235bac00ba30dc50154e990e7433ca990bf662452e0495f6a59d4d13f20ff32ecbae6b0660b52f20bacd3cba03a043ba8df3cccfb3799662b8ad321a4261812b562a0470df0095f51da31153318131876b104349cb1f16bec1562bd5bb0757433cbd199791e9d03af61c2972d62db14a2bc5764d61336ba1b6a2f5014f7d5aaf0084191a7258418538c91b89bd0d7bb11ae69bfbd5fa552206e84863307b8e6c825560eb59815727626f89f44f0b9360ac11a25e9130b76aacb1b14c19d18e11b4f4a294f745b7e2515c688e6153ca0cc007a2c164a8b2f748099343e670fae20d775328d891193c00e3c0ceab56358e78eac81028ab0afc9634fc798835b8762ef56b3397889a170232630a4dc97e8acb4db1d79074de7757905dd8e0b027f35087508620805ebc818a067d9b9b2486c936c8dcaaa93cd71dcc04e0c5a071421900326cd0aa86cb01144b4636068f251978ea9226cb7b23c45613a42c9bf8703818d017347e33df3dabecdf8513aa5a9375af35369ec5a206ef211e67cdc70223c6cd16aae60ee04ac08220fa078fb4acee105adb4d5f927648f65ec70c53c146e0550c4177eda36807753113e6491fb5d884e5ac013a813802fea73e5ca25e2bc52ffb9c49dd74608c5e8d244593514a17efffd059204e4840e3351f2cbe7eb598e847a21841b9368a887a68fd3f09405f5310161e0d70b3ae8d73b0aef67bec751dd32ab6aa24b1b1b2b3f72f47c52cb349396a58397ab3beb8ea821644b404c09bfd4c4f21b14de8ef715f320f27d3f299e303520ec32416144653e4ed4c1e7a42fc27a0db29f9d73fdb6e1247e02bbaffd2cd65f1f6bf0bab9cee101b19cc6f027bc49dcf489fb03cd9c73a6ebb62037eced9ff21bdad1f078f4b9dce35f45df677572d6bb5146ecdb86ed871730dfb934d381262a923a97284b6759317318987f96eadd88636bfa4f898e55834e0dbb90dbefe5fac5211c799ff601ad9019bc4c6fa55b55d06672d61f8cd51c95e9dd5155f6fbf59d5cbfa2d828094ff4f191a58e8c4ce7dc79aaafa9b1c0d38177719caae5d0abc3f43eb5cfbfee2bc30fdc9c91a8faa6bb3a73cd5de473959e739ac1d7619f5aaacf7ffa591473f9a33519b1e730c9cb625c010c241b8ec50597661997da3cec949ecc6bfbcd51d2ca65cdf2ba7f7f3b107e842efc87e1573675a98290f4cd8a9859167c6c1b78764ff6c4691b24b63e5d895f5a5b1a28d5bbc92a8a2b1f880e38886215dd3094894b751920bbc4a94734887b4b8ccc5d0cdaf455e6b9175e027c3eb104859d4b7a1cc85fd1540e9b1bee3f14fba129fe9de2f516572efb34d5bfdc18717fda1b49e9fdd04ed49b89d851877603f5d39e1d23aa4d0a3af0892b5f203d136977da0880bce32652d6a5c4540ca247d77e0d1d74f69a170e0a9d35f06f0d63cfa72abbc8c861cf719ea50702f718936bdd8a3049f59bf575e149abb6befca4ae0cde761d7365ab23b79fa33a25463edfef1e99523ca5873b39c1c424e5a7806252243dcb4629294ba03e4b14e3ac74cc5548a43d321bd0ed161a0a5bd7f3bf1a5fe49ce3373874c98ba0723db452c4e2399e6c47364e58b86867d867e1e3482432245c0d45fb4597edfa0582d53e367455146d77432dc5473f4a8f48aa03523a5bbbc72731f112916109f7b1c241a97c3de26390fbb96f2b5b8a5c017e5130e2888c3479995ff2c803674d2fc7c973d80b70abee22c6f91d839397a54d0a9a6c013396cf6f173e288fcc75bfeed9b7184fa4aff38583641c710916d82fd057b5268defa7bf4eddd76c6633260ca3d8a9b5a6b5094f6c95479fb5e434545c1e016dec582577e5e7f457593fdb0f757c8a9ed3ad6fbb7c73b316e7fec50c74976cfe6cf394ecd3d88913195762aba93a2bcbd94ee136f68cca36e5e02207031f11bc71a8ecd1129a2bf17a05792f78408d5ffbabe523919895ac3c504e2f77e2f0f7bd74b7fddc72ef3eba3f5cf568ee64cb7ee602d7c7c513719f71d68b48af875fd8bc44e53f6b412ec77be3ee6a5886f9e7a7361769a5349c21bba4c69ce1a4527857ae85293c4af13ff83731507197100af3dd9db9f2b8cfe7b0db8201404cb58524b112aeea6f01bf82919c1c097a007fd4893605e27e065ffa392738f0a5da8f1db57535874ed5306651784034780c00de7538cd3f4edf7fff32713926f0158c08a205f9aacd1854fed6bacdcc78ada3f967780db20b3f26e94e1151a833486b18a58c363a2742809f6ab887f06c0115b34c701f2e1263a1cfd6ca0bfaef25ee58f9c67765c53961ea312d2625c943a48831d726d5db06c4efa0894f90f57f1aab0644d8ced06377698505f153b8bf06224f59ae5a9dfe6351a301cf71b1be4f124752f6b8b2790ca144000bfd8e8d9ee84eeaa67b6a3d2010c2423af45bd46ca098077dd1d43d297ab97246fa5675f84458c9fc47c162c09b2777b8ddd8f673c6b25877a8fb3ceda26f763431a8d6e90b7c1cf7e2e507ba4e84c1616bc0948e6d386e46cfbb5e6cbcaf71c9892129d40db243d62fee42e217fcfb5762c47718ff2b5cf8ca327474d10cc4e9b45b76dfe9c7ad209cf67319162fe40e69bcc0a5b953d4fd23abd43c427a84ec7c87972813536aea1a30c846c8471a35fa5b833f1f9619d8df453a1636f76363c3d23ed925a1a690ab328fb869d0ecef22e421a3275f304f01c3ccb2cf36532301d602138c1e648ecd36e5ef0c93bdadb92e3ee52d23b8fa43d29936353acb60d29224f1df189be72a570aeeede0be083c920a919e910b84afea7af9be65e4e565df02c8ab13c7ee612991ae50e2faa394ee28ab2c1b090e339c1b65582c7d35580013bfe6c653cd8c39a86650d2f2b554cb0a283ab7dc7018e08ad101d57e71d6e190e390ecd71a341e323aaedb5b6c74e37a77f799957b084c099fbdb4bd6a1dd58c4cfab4b4c8a7b627c6eef12928f2ee0002c1652c8a4090afa4e0d04c38681928d25b3241f8f00b33cce553dd725f81d70d48e0e6ad9af6d217ac3d808aed666161d075efcf0e868774bc2f99ef3ed675d549d3748c67b6b52eb14c5c3da4ad7342a53c5ab02a72021da195aa7d38ba43f9ef1b9c1f18ee722d9faa487916724a39376be501228586575d757ef3f56bfbc7b467b5360e28ae247f6104213a38f9a7dbf88ee34e7de9861e42446cf3f20d165e4569ba8043c960b86ba96422f700432d14af3e08d41c778a75ef5b4cac95494eda0dea75fbdcb65ee0481bf406eaf85f7b867da377758aae8044209a49aa7cab8786f2150e871fbcb5852ec32b3819cab779927739caf5668243e9799f079dd4350dacedb261c173060bc8cf0bb4dc125b1a89718919f611405d78028f809cdac8653499f88dc0c5954e060c838632e209e6e734d7ec382a1a036f74e6f88980c3001c79912ecbe1cc49cb412c1decb02aca2b1f0d8ba3e131a2e8300aacb695d14fde5906f80a640cc6346041d4f037af7f7eaa5e9338ecda5f288d93221f443cdda83eecb295197aa21d5556379f7593ce6fd0036daa3ca2b8a92dbac78e7c9ad29149fc168bdd988cd3cadbee4826c265cc5c97577490e7874172c2366be660f90338e5dce549fc006f8cf352ec1653649a100450d89ea7cbd6cc5a907e2efd74109c7b16ccca70eb659fe069b185caadbd70a0c23f30196db298f612362f1959840bf9990627e50883edcf9a03a5da430cd7e935ffd0f224d379927a19a528c1e56261502ce523b4301e505b8bde4c61a34d682d667e165fd7c6b68a448a5a73934d6f8322e960626f2abbbba98a31fd449eb95d20c7f8beb69f4387bcc98da5e6fa5f6577c1b065931f0320bfda67eab306db883a73202f6819f0fbe3bd1e32a7569de10a75f12f286148033a35c590df2cc6d80acf8cf277ad85e00e28c3e6ff8e0647e02d416a4ceff083d0ef48fd6ad11f767734823fec016bdfe6c101a818f8d801d182d4920fad9d146c76749eceb332e7e44a50d38195e3bbc1038f60d968a426a6e5b1081dcffc00077b580b66e3d5189fc27e718b58889f33ed38dd0ecd13d1cd074a2ba264b16127131779fff15a016f9989c872bd5bd737b31f0c45cb0708532cce1ec1e12b61df6eadd4404fa15e417f852428bf4e95187729e3483cc68506a23d488b20fe226bf3dc0065fbd212ed8b8c539a01d8c83d327f9833f46a087a6c265281b294590589b6e574c82b66e657fcfdb482ed867d020ac7af0b724d93e64e917c2db8a1d8525d73f29a543d822e8fb40bee55f1826a897bf0fd87d3acb480a3463f6fa40eade7feecb41f3de0f30c1bef7f5d89c194497a8762a056cd2f84035be275fe7c980067340edd848b1480911ca790588223207428d943499378758719f9916784f551e108eed6e32752588ec4d66a0fc0315fcb8d9f40783a73b9a0b9417906870316ff65d7f282028c22a7eba149ec32cbe8a76e1f52eb7838ea4c9a7364b9028f065a691fe322b290c0553c1cd3831ae5b1d162583c00bf70bf75a638b56be22a6222a87931104ac7ed7bf99780c8541f38b5531486b4804620ac76219a24a2f59c8b91ea413d46dfdd2d36b3f93bfe308c94d9cf9a4438e2225d9b68fa9085b4a8173d45bad656050ad657dd0da262c247fb61aa2be1c413caa10ae7a2d9db50450d6807e900dc7b5d61eef912c7a25dfa5d3ae02dc6413e1d9da68f0e044cbf45cab1b3db87a52bb20d4b0ab8005e58edd1aed2fa9153f14c1ef0feae3d781ec3c2563b9f2e1e32025b5dc9d10459f1dbf7811f8b9f6793f9bc7001fca3c91239b623910c16b4bcaa61ded4fb37119c150ffba42b4c5b39e8312b6886cd1842b5a2b7fb5cddfaac07a13e834e6222640ae26929e8352884916c32f8b120e844b09e231fb63c5125a89bc01913ea491b952efcdde8b8811b8c1f939ac7e9fc36bbdd539d9e4214e1f19f5f629dba646db90734c14b59ff037f79a2f243915e22c827f4cc91461d1569f7dcf8f8289f4c2c6e19a6a0e3d4850da2721acec6a5d05149b2aba8a4d56adc6cf5c2c5a9963fa43748bf7bdbdfbd100387631bc69c1f6d9df8bf7f96f145133b1988a420e848635a23dfe31d444179b3054f7a458dc44c7844455557f7ecc4e3616f16c78fbcf4b2f7557dc3016dafe0a957348a7d00e99956d7485a8f13a6cae7a4f0a1aa01d215d661baa30f9b2eda2d39031bf102a74619ada0551652c4b4c91cd89343e359da2a6da5a317ae94e08cfa3fb2533a9681388d46518581043caa6fbb2d191d23e4447aaba44263a9d362b3a0708cd3dbb5d14de54be71a0377857084a0051ebd178573b9c77869cf55f4c8cb157af504a8a47b67d9766d3b35735eb16276c4aa613d1c68b59020547c1e430d58b0dbfdde834d9ddc1e64b6887b36b1075beb8bcbffaa7f536afcc2f1346102f8e805d04f5c5dcab254dd90f0c6c294fe749ba63440f20f89296bdce5008381c6333f0d13439259940daffb85af0a9edf800f2ea44c1c51d5c08026e66bda5a194f7e41c281fc47122872645b6fc06339e6cda2c6c56189510088da94ebd802c0e815246a0c933f7fb921879ffd986b78412d96938dd733c2e6a9b3035ec5ac1a34326bf3c09e36fe893b23de38effe0f77a3c873dbe873191413ea87e0d085f3e723c57c726ebd05cfe79685f39dd177d5a14dfb9ae4b9e6e3bdd6af195980ca8b1584201f60e6d702ff1de070a7751fca6064c9fcf5a8c40ab269127afcc54b8062f250b6fb0018f3a93cb0321e16322af37d50c5c262cc4b8315ee65ebdc2a7edc819b865ef7c1c1dcfd9b00da2de6e83e59b04a8d99f17e782cc75efdd7b2e06f91d1e0ab88a92897f63641c014cd5ec0684e3b23c364cee75993a8e4a7e981cbebf46d70480fb6776f1889309f001b57813f938ad91ee661e85be5b2503fbc3c1bc067a6b1c1f45841ecdc1df583845d8f363d5c2c1d90ed52cd9335253cd5de56341b5a3f08ee94c8d7257753ffedb71d5e57f67a4b3a81d63c10628dcd2c31d9261bd88bec7a1e2bf52ad1b167ce73c59b3f6ac251241d1f501443b8fcd6e9d0198928594942f04860fe6c2dc56e4df69ad8d9e106f27f07e848b225c3afbf1f1d6d0a020ba18abefacd63130e38aa4027d6867a66ed704deec680654c7a229759d137bb63d1268523160adfd2f12303bf428fa592ec9a75771c875c8000586c5b8163a168a72b8499117f8f2a0b7bf08da809321fe980979080c0b685b8619428d0ab3ce6488b2296db278efb714fa58978566d76d170b389e50953bb2ede70982c6254f5842f8a82563b83e5afb362e1b37ae53c408e4c309ac05a121423c1cd45a575e454295e4bc7f73b7d40277ab66363cc8d3d584f0cece1726d9a3c1c2b0abe7f299c6ee3b43cf69afb413c61695c7c61f0ddd73dc7f5702f425989b812c467c8083890d245fe7aa4a6d51267fb6b5662f070a62e843d2bd953d5f4540c36dd301a9c68b68b70dce6745a59eac3eee60b8c395c8b4c610a1a9046c6044078931436925622bba7c8f114b6f4f302859d768e2c73bc503a21fb53c732bfc834d65c9e149a9338c14f502499b83ea82722f3ffa9ab0a351e4a046849bce4d0e4feb85f4acbdbc614f3e13211207403e49569525380b60819f7dbf3d4e5dd001189ff8f793fac60eda888bbb8fb2af372ad84098ae6f50f1737bf322dcd71619d5f7aebc5fbfa2771a006c45b4e53a8c342edce5d0c5cc5724eb7137796807f5373fc61f8d24e8abcc7c6e62a1bec248b8e11921bb09f934b17f6482b699742532f26facd775811b1acd0d965d2c1840be8f0ad889db4f2843c88b70d2916cbe5c9020a9388c490bf80a5639225d3da42419351d9fd57ecfa3ece3027aca2e8bc3810b27ffa3a4478920c291dc6c295161540ea24fb1093ecbd97edea63744bc83da76626d8b1c03666079f5b03f6733df2229739fb76f63dd85360ead47f54021e9794e3c75c0d53ba5c964342499ea620aaa9cacaaf9799eca42ea385133e325690ece7881a08e6a73b8fc0e7190568f2fac98d6ed373e3f4e4f784d149e1b68fe89492f148199ed69d1a79be96a3140a26b7f361f283c4a8b341dee05d497c126fac83873bd45ef780580d7415c4ce103116b04c32ccdde010f4abab014a43386241d5a96e280bc111c2a6ae05d8068202bf5b988a5313a5aff24b8e061ad14d9771c1fbf4ff1a6513a147fd7e73497151a41a70f4c9066977754ee35da4ae06acad69b9117ed969a513ba7c6dc232cecbe3ca6d3b13b1cefc58c29c73c8b5546dc08a8846ef2f76ee2ced3a9f2c2c6f890645d7bfe33498ac1dff53ad8e0073e60180418ea6f73ea3f7584ff4f096571d8386f92ffa825092cbdd5d298b444e46c4c8e51e644140ff59a4458c7c5c09ec12764e6f21531cbcd16239a22abacc7a3211086ba41504c34ab2fbb409f3851240d77a81e15bc93cebd74ecbe4e02fe02f7465385d8b99b6d7bcbcc32990df545075d7e97251603f60156a3aa12837d83d6a802d5afef482fde171de583a5d9b6ab7d5ad5900ddd60a7872f01809bdd0f1af2021a8de2e3e5b1066ac805df4dbfb5193bd9978a6dfc7bc7d9af3899214c66e76972b81b0fdcbc0491a424ecf9d2d1cbec8735bec2fff80f21a82f988fb84bcd067019bb3006e2cd3d5879a581847af746455569b1d9f1a888ecd49d489432a3a051cd974cacf936fe5cb907a33300861e2200501d6943f5893cdf1fe473bb067f00f8747718334352037454423c84058177b2737971625051e27ba0d57acec8e33b7b2c0ba146ff85039da983347571d30f91b9f176e3c6c1cb4e5a0e4cb9c6c898a11dc400f82d5e4967650d033efd44bd24276836c3f5fe22ec638ae0c5630866259a2933df887cba47558258fca6b2918eaabb94ac6e9dc7fc6da5843d95135f5c3ba59d80a4212b75e1f9e64b907d93c6b8bb50b85d4f24891400615d6069e700268759989c7a55cbb770e68fdf54272d27fe58aa8fb167b096522dcafa00bd3a89568edeaf3d4877d276e159cbf81754c4e35b80b06c8a23e993b26eced1d0d4d47bbfd8d3909fd1311ea48cd72cb340b31ff49635a842e80339a6b0e582520c7eb26355a040e2a623838b1100dbf682b6fa778f84685f75270e7979a243ef011890df77df8e176e442642a20767884b355bdf1e6fd915498eab7761063fd9582892c321cc2d4441a16344ec8e6b1aa5888a301683f2f9007b02fe43df2a8663b5058b0403d9a7ec14d17a134f38893127426b8daaf0d70fe332bf263a28716efbb0be69f5098d7080976f097aa4737f59643cd8c160467830da5bd185a3950c9574fca98aaa765adaa0cfc18d95cc7f61575fd41080d75eaec4b030448b1af2f2221c45727a14af5af54497b1e07a2a9bbfc56393bc0da22ff93a41f1180a783f5e5f1f5880a0c52f73ff59825b16d0906c26ebec0e338f8b2310fb76320c45eaac7e6ec823b056074468d8de0de546c1f37c24acb30d34065315dbd4a5d6f110669dd9637f4b9e85950342895a18bf80fd38774400a168cd37bcf868596dbf82ff4a889aba279444bf98f3e9120b22f2cf8b0deb95189aed713bbce401f431f188268b6e4a2744302ca4e5a55b7b7f2805fce11383be20afac1fe53e424ee9ca0303352f0c4981d1c53d871d23b4c4454386577b6670ed2ef6217fa4cdc7cd631cd4e29f0953eae4526c3e672c4c3bdb6492dfffdb6c32cafb15045f19e10d1e1cba15358d97be367ae3ea49948fbd7f7a3f7542bc04d15f40cd3f07fb6a34b98389661098de076a995aaa79d43d5f7987b262d602196b61f19f641b3288ed49a56dafd6e2facfd534b9bc66e66714a56d2fcb282c9b59b47460b6b3556688c42113f2b1ca7249b0904dbc41ebf8040cfd5b581b4035f101732cb637c054f17e33fd61cdc6a0a1ab110494c499e268b85978ea6a8ad3247771d792a69af794249c3577360f50ab5c7602200325526951969bd10bd1798477ce64da818ae16777dbdadfe55bda01bb49a4e5f77795067ca5879dd4c6223aec263b86f51b7ccfa7aaccbecaf3d9cf160729e83fc397788bc61007479fca177d6a773df95aad34f2834dbf22824a68a09dd262a99b9abe7eed66df0cc125f5d49467fb7f5f779d5cd8c6894bc6c46e7bda4e2f41ef145375b5b98f18de1a0ffcf7a6f1c5ec8f8a911d409b4f9e70c3542a67ea4c3f1c2b5a18ca8183180dbc341539edd043207a126579d5c9cc74d010f1058a5ede316ae7d6054fe31412ba61413f05a94a888b4cd240886d1ae9860ce42f6a10a7610af4cdc6d6d5fb15a7554f801cdcf20ef7151aa83a9d959a276c3aa0f3a3082184c48174cf4efcbea781991b7a5cd1c0ef5309d54833a9d82e3fda649b2bfb77483ae7c7d41d95f0659e2a150dd90906192d86ce4be677f0c1f6fa12e402265e3280d68fb931d6b0f7442c40cbb6941ce4c27daa8e3df2e4745f91bad70ca158307d13939a5509d87af4a131b41fd43b955fc37c50134805ed1ff19a91385f795bb620cc29c43196a3ac799b43f6315393a6e7a2c406822d72faaeff6ee4f717edc420000bc2d7145be745c8b7e7d8f72af476573614a710c8b4614e44a093c063b3bde697be3c8e5f40695906312dc921ac4ee7d5585fd4636ac178909c3120b268d5534d8eed0cbb5844c03e5947f51628a45ee6f59e80f840cf1a56042cec1d498a918ed34fca138c73d94ed6b0aff5ab450f1ddb78ddfc578bc87337530f7af959e0056cb6ca4895c059e798c87cde3906997e405d821082316fa3006f6ccd4496f7f6cce07d5d7cdf9fd2bc0e622576ec763a044bc2b4dbaf8a3d1637315858b53489c1655ca2d6f6339a897f1f3e5558242933b85f9186a39d5d84a9085f49f3d25fe0320d01c160211fb1aaf914f9911175f7b89f2d7b062c387a13a6612da24cbc2a3cf79acfd3f18128067d0ab6e8fb306bf3064d625c968396791120a3fdbd28c5700689a3c5305064557a9ba5812aa20141267043f824c8d06b2ca1a49bc0cdcc0cea2fb2d5093ada0261e29fa4c81fbb8f98e8e76c621a9a4c992ba11b9a482976f5b40487c55e71679c644b190b4c84c83af29d812df3cede2901e6b04986cb5fec1fee8d9b1968de88f9102db0286b0c957b0f3f13ce288de49b277d812ca114f346f3127c27b023e0b1f9a2e54414eaf1d8a78449106bf40e2099573b11f5639ebc3ebde19b421c7466e71f600e83f83af018910e308263650e1dc6c6710f06c42a2cfa60e9ed828c28772765a111fcf77bfbd1d227b384006ddd6e10420ae232ab4cc9d00c7b1974dea27c3e809370806467b710377cea4746222e25bbc6a09cb3d1228211860e1b79202dcecb895b847b53e3f7d4566c7543d844d7194f7e32ac39543e05106ba97cb81a47018081b87dafd84e4e257c5d77815048a1d7d2bd2ef8028619192d948d5c0c3c5244a73706a2c759280922fed9b005b2c47019dc1c08caf2684c8588a6258bcc0ac6009a18eedcef51c292d576fa84ef6f6e6ac8864bdcb80798c6bc1e74c169473fe9eb9a0784d209d8f6ceb365811f347269c61097b87e081c4f1647b2c3658b6357d885fb6b597ff52832fb796e7d5e1de36a3351860d4a6d48b65dac2fc309a7dacc130bf89a681aa2079a39d18aaf174af855427383e338a59f4fcf907f04a0402205a5347dcea164982e34c9d8dca05534ab1583319ad02afe138ff461166c17424aff0a2e5b6819f136c7fac71c1b35fb5a92eb622c4891b02df7571a9a9dc40e2afde1321c0c6deaca738dae1bd3fd5096a90e12d95ed915b50f0373fc048fa8c450a61e18ac8200854bd15411c73b0469ccd1a11a846232c170836ad37851a3e8551c8d4f3baa8dd77bd0e8efeaf7b14624cab1c73c92eee6a41aede1d285e2ecd997e11efe0edcab01c88e7b9f0846808c23ce14dbc42a0c000260d20cf90bc532d58d1871ef726e2845427a08bc534353d7acf47f429f2b8440e0d36537e928dd35b8aaa8d44602cd71232e700ea09cdf1010140ca69ef99f5518740dcf6120afdf5e72d46d39409ab5510986d16a3eff94a485899ac6706ad7b415b048b6b725deb4bb005031c3329e98cab89f476c2e2c242d9da1142e3bd641d165f91ad8d12c7d4509e0a53b97220923f2f5b213ab1dee02ece19a4c919c4b6c6b62daa2cb23ea923f8efe9d213dd15ffeea45313cedde812e84746a27500222632acc91b839ff3b415fb1bbac18dfbd1d49e668d2eb697c8675fc62186868b73e9a36751d523cf5a2a217a4451ad3ea6679be552cb88f36ac6f0aa217fb4bfe250ca483302caadc9df61af51cf28643ecd6306c341061d820e2dcdc53aacc072ddd2294ee730172d839e5d9ad0028ca71cc961040f278a1e4f233611d9d4c69301b23c3784752ae760eb58a77dc3f9f75105dd1c0f3407f820ead14725fafda428124958d2cac262e18436a3b2add1ad31685567ee5cbbb455a043872207654d40270a1b20a656d075e18308e868ac0fd64684693c748254b268f7d5da94bd3baac58f54b3dcc0331a5ac6b8dbc53ee966c198e24a76b036fb55162432f1cdd30731427723d4e89905b1b0a35ed36522aedc344c558ca216860e8adef8fecf433aa62ece0ed2a47623bd1921d8aa5f8a467141514336ade6885a3ee1fabb3d2d5d98a13cec00073006f74a58a3a49d0f9251a6473051bfe1f7c2d8b8bb74ee3b07ce167220aca813033ccb19437ef4696b088078616c8f583b9fb6e34b49459259a0072c746d5924ecb76a9e611c1806b8639f250274c90e50eaa19a2225190a3f1eac7d497807464feed2a75b84fa32d952d6e0500a1cd07aacc5cfa53b553f2ed38c2a13973eb55b086b3c257bb1d89198b1de5dbebba3c677a02ca7dda39ebd7832d6fb024edf1d77d4f688211688f03165fc2f750f28413c65fe5cb5d3d0e1df01e53359d721c41544e14a551fe3bd6e1446bcf017c14f21de0e1df05c5cac36616a8557c8b8fabb1351a620100fab0fb2f992e1799e186ad532417734df06c7e3c13f35581186d55c4dc1f1e22848a293b861fe97751d7aaccf5a8b5ee1b1d4c956efd8d06e8567d89c5dd4e4308a74cb1b1aad5a8b65f3c840d79d4387006f090bb5c85eb6e6161e5e4c73c9bf8f75fa04b76ea19c254a448738be358c72e85452a0eba3787c2f5ec81908dde00e07711a4f5df964f7036aabea9a5d5de88af767ae401faece2b648d780cbc8c5747905f6540e4995697bc5a91dd4cb432569f19c9e51865a94a31dc0e4f92b00c7bd1452707594298000094f6470641ea8513c9b2ede4f9dd0ebcbd133348364f03fe55d62244ff48200ae6beccc1d029683d960e325c6b125f0a4cbe6c5a2fc5d8ef7e0f85f79257b46d869be498c28212c6d0e384e9da0c1eb610bd3374b7a822d2fb5853bbc21de951775e0cb6646b9eb6f9ed820570b4e3ed65362c9baf9cdc899182dbb5b5ddf2f1f54ac6ea967fde6e3213b708b8f5344dd755eabf0c6f125fbf1198aa94db6cbf10691b3a7b150423c3b44c6781714d1d5ec6d3dd2d197770e404fa6821188b2cf790d3086591a20ec2f6ae40d2095875b19723dfb52140a608c284e76f922d012b87471f013f682a23d6d42680ab6ce711138fb491fdba4882cdb5f2af4285185253502b26af69b96e86f56172553d7c862edb775fa442beaf1406cc5129aaf24db61aa37fd11325dce9a212848b3112a3b1d93600cadf1d065de1685a04988ec90d696628727552ea5c5046ba659040cb16749d9175fdcb248fe3eb560b25bc8096cc55601aff1d7767cdd71980f80f77a7b2036f9cf8665b47a2f190973e197c7599ca82b69daa2b0cebd80468a60203531f32d32a9b285b9386b2b9899ff971ead9586cba319717b1fe60775c7994cb10d52dbf2daa1db03d9cbade6e8240ca76cafc26e56803919335ade96a5082ac56c0a2abd1cf70da8a92916ab2a9838f17ec3088a317cbd81a57deb516fb3c1c0cb2a1be3bbf0ac60a75a7697da99461798b461d6028af95ca27a2d42fd118d5e479397e1593f38ab30eae7f4d2b5c0686b6e52ea5228a20c6059621fbcb5ebd6662b62dacc1c5d5b4e7cb3e80317d19e2f75f6d6c2636693d26b9931906e4ed023ea9841f0c3a60b0a6d0013033333333333333333333ab6a1abfb54744564a32452e6d8c1185abc42453923ba529ce4c7cf845daf01769c35fcc662d919ee102400cd90b150c666b3491021e0871518517363849b32eee796ee2c08b1a9cc6f22f3449115fa3794183b368952849b4b9d955225acc25f06206474d2a43c8d3681f3e7a2183d34961ec549d7823d789a889200421f02206e7aad3e6612a5a52d2106fc00e5ec0e0b4356f428e527f71aa3243010f84b0a0e31507a1b4cde8b778494b82be91c591a06f4880043e32825c71d224a5ead478195faf15873b314929cf5caab4d2b1e2f81deac62b4b3f0501295bc53156d4850c27bb6913a38ac38cccf053ad5944978a93c997bfd5adf86a7259648168304024470d0e5876a0e2946abfa7642fa9959244d4b69ce2a8c14bfb562ead0515253a4c71f493fd2ecd4b492a742be828c571633a51547ba438c893597e4f33059f53c7288e954bb49bb2365db213c579663b66cff48d8916117d4147288ea77a1634ea66a799141427add679f9ca64ee1309508eb2818e4f9cb24f2c3badf45fab79a2adaa0a42c54a3012e2366e64d198dbd189b3dd2561de2a8805d58ba8a9053a3871d6984da6f94dfd5106ded0b189e3e8ced0ad8baf723abb4b347192344466b80a25db2311b564c347928e4c1cd7bf3b53c59d86be44d470a8a00313c72449921283865a58371d23173a2e7136cd97337fc24b8b96748725cef5172ae893ccb4e88d889a8d0a8080d8b8a1858e4a9cf2b64ec6dbfb693751e2a44eb3d246cb3b6deb4de29826e58c897e5d49b288e408493690e990c461944a4205f3cfd00c89a8b916080703ac231227a949b76d5027bcbe17511bf186c429b4c84df5265ee955a2818e471c4f8f0afa2fd929d15b448d4b301292dcac60a0c31187bf2f3b39e38efc0d1b712c299ac949b93f080808c8480e1b68197192428e8fa5b065d1ab2c46702420ad6da460243140c7224e5256722b3158fcd3a42451c451dda2969874bf7164c4449c6aabc41893c78d976a071d8838bf9b54b18ff5d19672888392f242c9ac747257107618e270194b8935c913d133b41d4147218e4989676292f1222fae88da4848b25182771c8911e22ca64a651adf7427c806710a16842ea5f39725e95a4e1067d1a64c8cb944ff9316382a10a245a320f1d01188d37ec8144c12a2554d36dc98c404c7800e409cfb67fe456d3829762971e4d8a2e30fc74b269aca29a926f9e687a38c7c570e0f2d56f7e1a4043929c8eeb5942be7c3f14ae64eb7b1630f2729b6324c2ee3688bc90e3d9c57545773ec32fd29f008a82d3aa0230f2761f5bb8409311e0eb3f9296f31ca7d2137920141c71d0e1a374c123332c4eb49442ded3bec703c316b52aa3358509708928bc0468d7275389f795e506adb4aa5121dce27d7644aaa2455ab267338862f159f57fa649a12391c4fbc4cd94288fc8b8b889a094810f2c8b30849361081472e011a33729460023890169e6e5000a45c00fad01187535693b2f72d7eff9788a899d5a0030e870f6dd17e2c55bb6544140424b12274bce1183559ebcef8dcc69605f21c23c56ed010818d1a7b9e6ed848bcc30d07a1a74a66ec37d1d67b162139be86c84848b98e369cee04b358df4da631dec186a378b696858ab163e51a4e625232497ed152b25d2a821a6fe346bb6144871a4e637a83a8641627ae2ca28623c7888d1a7888373ad27010da9fd5e3e2d61632a1030d077da7c47819de15468ac3739400033368cc90c002be02c9198e99945c6174091b9e273683c68c19584860c648020ed3263acc70b41275d49458b3a034653857981284dd9ff81963c870ded1bfd9abbdacd2348693244951998426f9737d311cf6548432e5fe362637b608c9813ac70d1b3368cc7015d4c800b2801eea08c349507bf5314918cbf78aa86d8137e800c3c147688bbb6ea95f7fa404688b90911a0bb295e8f8c2d96212936991f34c5a23021b37d2928d0adcc0e2060e1c88022020366e68a1c58d0e19e9f0c279847e6db9987032425d3845afac1517f35c386cbe4dd25c088d7576c7164e195ead3548bd2052a385b3cb9552f22554ea4dc9c239eb34868d3deb14190bc713257dafd2a6a4d55f415382a6d3f4d2808098223aac70126a5285ae3476212c0ce8a8c229cbeb684b666549dc3aa870b62acd55259ce7858c88dadae898c2299718c35f37455a3691c269de42c624f3529512c70b4147148e36a2ba2a7e3b4428b1d0018563d26edf9753c5843889a865c7130e42891353265d32fd9bda4287134e9ae48f4bf944b365aca309e7eedc205312635f31165103010101010149098180180620111d4c387c9f986e34863e135ac261c489b39d7aaaebf71a8c820e259ce44b3f91c1b2891f2f0987fdadca1546a8996591705e93b2c9b793d42513b45103e5e840c711cef91733e512ac7e531a0d1d46385c74fd983f2fcd5d01a1a308e73c31378911b9f7a1abc00c2c243023c78d1b18c80e221c4597bcb989ca971c0ee1b4e94dc91fa1f269b184703a4986f6be332997a406e1bcb1191b7b5fb632d70184f3a5bd4cba2c8844e8f8c131c9fe8a31cea25acad8b8115266f674f8e05c17bc522ebf0ead931e9ced6b764c26419a383d0f4ed2447e9a96c5ba0fede0fca22ec874aae94453e0d0a183933093927cc2fae5ec7370902585929a34fedac975e0e03416662e9dcc74dce07c326a10adf1f32315289ea0c306a72a259778eed9b97beaa8c141dd6bc8baa6d5999e06073532be491a53c89e7cc70c8e7f627ccffeca73b364704ca16664d388f13669470cce3a5a7499b6b44cd93b60704a53f2492749f21a7bc5e9e46f51445d719e115aff2d4d4aae5d2b0e6a2a8845bbd2547792ac38eb6f36531f5a92c622e06215c72f2d79720875131daae2602a3bd6465f12e42ca9389ee456cace4c66fe101527e9b372d5735b629d051a0971b3324282ae91a32c052e4e712ccb4cca52e83cedb3290e1a64f0f5d3d5d4574b71122efcd62a0899f32c521c67b4250d61a5bdc4378a93564a39b522cd54d44571ec53c25a52b94d29af43719817a554ccbb73cd04c5592ff98d6ccc0d9fab083e7150bae354bf9da0521aebbae0c21387d79372d94cfcd01b75e214f4cd4a94cab21faf0b4e9c5f5634e8535517d6e46213c711b6652276f28de645d4fe4688c8087240a289e3fbc92409e2dab72fcdc429c46f54760d97e49163e220eeed7531378961c64b9ca48b316a92df997194963866d6d2a3ea23fce2384ab0c5d955e270394c85f35313252a2e28714a32d67f55e998249cc4b9b22925b79aa323e51bc99c085c48e2a4aa4a6a13e533d7c573118993560c6a4bea86b06c042e20710a939b4fb8f0a969541781193466d856c1c5234edf6562da5eaeb9a28e389f361393a73b76c281c343b6405aa88b461ccdc4c5e9bd6513f616d1b32e1871122a467c968957bd5a5a59c4d95426319e262d13de89a8790e1c37922b451107dd8ad7d4922419ed2f0c2e1271ca96a926c6b4f8f89968e0460e1b0fa08007422ce00211c7a4d132af2873bdd2b37071885352536d26ac04fd176388a3582a95bcc289db5ab935b828c4498a307da6c2055d13218e5a25833699a74e261d059ea3045a8488e4a87102633788f3997bd556bba8724b444d057150d2fcc95d056b934b11b5828138097772a2c474ff975844cd05208e1d6a739a8ac92bde1df9c3f92a9624c7c64a7da62fe6042efc704ae9336f0ebfa04f8e036de138b658d3a23be0651570d1879324bbdb296d5eb7c9e2820fa7103234c786c9d5a113514b1a13a031830337dec603f670fe4b164adf4e52a54911352d4250e0c58a1e8eb184f14b5994e8d868115ce4e1943d3e2d98586781fa4616862b708187935b694a6a418bbc688d9011f7bfc351ac2f4668cb8b41dc24706187d3883021bb663137001775385db57fad49b941efc6e1bf7438cfebbb98e0266e1af14fd0052ee670165de29820b233699ada851cce3222e324d50a198465e40a2ee270b476930415df3a7a747038a7a6ddaf14c49a7825eae20de70c97cf4c3a19a52daf00379cf532e39f4a3749b4442289c80872006a1b37682489821b27c002044464048998369cae844ddae2e574f5323103b860c3e9d4f7492af86fccea226a77b586b356d6f5afbeacae4b0d07b1492affef6c7b51c2349c464d5d361d4a8ac9d8a1e15c92b86023532c9394a488e2bec0c5194e49526d0b3a6e2a292d262ecc704ac24e895767b857d019c145194e5146b52965597de393e124a537415bde18446590095c8ce1dca2444db443759b24226a213792b1e1420c27f1c4e83dfb1159d1ba08c3c92da8c7ff7c885591175c80e12ce7bba74caed8324227b8f8c2498cd1a29f12cc3face485d3bb9baca557e5f761178ee322738b95a01a4ec985f3bcec462faf68fad52d9c729460999733e82c152d9cfdaea489fd19fe3b15419f9689ed8a93da4b176fee458ca515a724e3f4c8a4c64c880b0424c434e1c18a83721d95bdf49bd0513d5671d8b3d323c35d0c42095571124a56486d6b8f71640b2d7088a0950a78a4e27861d9b2749e146f44651ef040c5f9cc8232e97ab62fe514a7d3d2aea4b4881373f430c5f182b6ddd924a6d251271662c62ee1518a9305ebb7a05fab72ad07298e75bb5a52b2d1ccadf118c5e95ded84d913e3218a83e95845ef4ba24b5285e268165bda4f0a5293a01451d3000888718407280e972dceda5af213773f719ef1b70cbfa33b5f0f4f1c936852c80d354ae59276e230f2f4c97c0e0001611a3466241b4e82460af01a38b000010101390f4e1c46a49a36dda4b2c9aeae4ec46313e74df917f4bdaee48b3d3471ca7dba31fe82e5f13113a78a1a43c69ccfc9c53c3071924de9117264b6d6fd66d098e1038f4b1cd49d689525f94b38358d1987e9016743f0b0c4315c1431934f9b7ccaabc429994a2b72c9eef2c8831227b9f7be6257ef3189e3e9baebb4a0bc5a5611b51c23288b901c35b2d862a43c247112469a64722dc3b7684a4063c60c0b60c002129841c302129831c3022539247844e2ec795aa54edae09dbf889a086cd41871678007244e2553b29421c4892c298f479c426c08e95de1cc4cccc311e74b91db159f5fddf810b4112dba036aefd188a38e7cb86fcc4b9b37234e493a5b4d624528bb7d11c7b8f771ad9b1571d60a15dc432fe610fa441caf34558a322b228e2637a3f4bc7488d3e8aa0c26e3c6932e6588ac3390635853a769423bf349529047218ead31c8be94efc5434688639dec35a6a74da8d406714c29b5e55c2e2f5dd1f610c4417e74655c562ba67a930f7804e2246eb6399997c4125e01e294a167a3088b299a9b7f38ac8ef80ef3d1c30fc7f2ccafcdaf2d4af4e8c359fdf5459870af1a631e7c3829d5ab376f3e053c10e21e7b38a5133bd94325e92e9c20eae19c596d36c85fdca09220e6e168ba7253e3fce55bc5c331e5fd51a1ad153399dce17c9e4967123e5acf7a3b9ccc2b6b984c21fee292247538ef95e58a86662df1eee870503d152c7508ad1b4e10e7706cedbfd1d34b5ebec9e1783f5fe9d2ac94ca0c621c8e6752f3c59dccd491c1e124aa46d54dcb74af718f379cdc2ab97bbba8cbeaa11bcee27d3e76628511226ac3a9f2e93dcb1a76418ed870ae0ce6735f4a6b38ed8c5237a9645c91aa1a0eca4c0cb30e5521b3958683fc080d7ff964461bd170dea441976e32214adbbb331cec7ef42fbcc9275b6b86738d09e23586d18da995e1f01b84093d6ef3173d32a8a1c4bc6272abc718ceadaec1f485fa8bb1cd8187184e6321f4c6976138e54d27a355f5463379309cba4d2a154e2bdd64fbc249aa132b44c678277e79e11c16e62f9f8951b3fe5d385fa5d44c31fd574c31170e27f8c6d9f426c9d77f0b07959f757a71599450f1d0c2a94cf68c792b5488c51e593825bdd87762525bd6241e58385e0a95375dd03fd2f21e5738b8c9d7743529b849620f2b9c4d924276f35e3a39496ff0a8c27954868ca6f392664d7b50e1a48489999b5cd453725338986cf924b9945e0a878db1de10be89c249d070a57992f08d690f289cabc4da67c693abede2f184d32653fd917bf170c231b76c97c956f726f64d3889778fcd244eb38bc5830907199a4dd6d9588829dac16309a7fb17f17dd192699087120ea67409ef0d4af68d3c09070d6a9394829e9da04a9070fcd7607b95498f231cd48dcc74cd242669818387114e2daa33986077f93bde15e16ce1bd92ba2c9632d69d133c88703eb9b6acfecc338fec8670ae132709625f9bce7242389c5de83dd1435c38fb2e0887936f540e4b3196c9f200c249cbbcf26e379c124c8f1f1c4cb788f9c9964ead2d041e3e386912372132dfc512d51e9c3289d97479598c49361e1c33d5de4f9811b7d8a2153c76700e712f72192c58890da2870ece2675ef66460d12c1230727fd35d14653fed4d9207ae0e0ec6da192502a49274ac9e306a738b22f8d306969734f21c90632379218f0b0c129eae8492127931e5379d4e060aa65524cfb9bea1e343868499fe954a808dba4885af198c139d4c32a65d497596cc4430647cbbe924e0a7372c80c16c12306279574f742882e61b52578c0e0b8297f9b0c9331e9682f5e714af221dd4d4513a22c49e28a83ec8a056dea4fdc986ac5495b55a87cc99455095971d6501b6bf3a4ab8bf32a4e3135f69d7c7739a3a78ab3bf97084d42d544ff527192eb5a67a75228ed3f2ace37fb97ab2479529de4298e71639f29459ac8209be274b95acec2f5a538f87909b1af30f59991e2a0276ab4e0ee280eae156337c38593a4e54471ec73cdf1ebe2553587e2a0a6e473cb5d1b2da4a038f79a6082ca275c4555e0f0e21387ef12cd84679a17edee5e78e2e0a226a992a4cb74e294548fca5192b4e94f1239710c1b7dbc940669c9fca58007425cf0621347d13197629acf4d41a589530a1bca7e834ad598c9c431ef9ac5af8e32b97b4c1c2b754d8ec612e456ecc5258edb1b2b29395a9409fb0b4b1c47262db1da66f482b012c751492a9d1647a70802929845bca0c439f54b5f360d6e72749338d89e9874a6552d45f34212674ba17de369b7781a338717913826a9f29bda0d53317e0189d36c52aa73922066ec2285178f388b4c796bfaf20993ef0b479cf2f24cfc5692dc42f6a211e7f88b6994c688539292a08449626788b52ce2e8a5c5d7675cf47e7ba18863fc89729574938863d0aba4a25993596e1071da3bad6cd167115e1ce214dedafe44dbae5116439c94fe2fa94d105fda094212db620b8483032f0a71aece20b3578a51512f429cf54fa9ed33a9b54a1ec439bc7f3709afd1a276419c3747bfa437d9e22d1588e35adca668cd57b763c81b5e00e2949b4b12d524e93f9cc4d8f6cc69273f9cb4cb6f8590a7cba4ac0f871761c233475bc4457c38ed66330d9d3e62d9dec331e68f0915b33e177c3d1cef52bbdba8601ece9b1d1b3457dad00de1e198f46dc9969420e64647c38b3b1cac3d65638a675953ee851d4ea3a4ffc99982129312abc371ad4ec54c526636494c8793d279a26df9a93fcbcde1248e900b22a39ee86bc9e198dd5e93984f84a5c53542f4b27811877326bb3749b6941bbbf2020e2755932a59e89e0b6279c341575a859c54f2c20da7f0a1c76c4d890ab7bf68c379d64c949c2b9bbec7176c3885babb202a7cb1869360ea176715d3a98abe50437268ac245f5763c4a4e178ba43b926d5f49bc268388f4cd1e1ae3fca1452e30c27b94fda26c1ceb62fc90ce7cd6f172caafda20c27d1f95adb342645860c190e7a7fad6153c812372a8a1763389d2ca1c4f47955beff85180e3286d0eb332553ac0a0d1c3590057c64e454f1220cc7b0f94ed4944b1026a96038e8cac95842888c31e72f9c4c9c52174e2ca3f0c20bc7b2d257962ab388a65d386979cb5fc209e2c259df2c63bcd25a6513b391175b386653929a60a675d43c2d9c5470cdfb4d514cc6f94516ce619fd9e4e24e185362e16c71ac3ee49bb4ecf60a2775a124dda5e765ff0b2b1cb6ecd4c2a560361605ccc0420209500a782044e445154ef9e4b6786197bdc471a8778d2c32d035b2184940428583daa57a99eac93ffe8b291c544d9049bfdfafc9165a34e2a8c003520ae75bafafebdc2bb14ea2708ad39ae4b24927d5e443404084f0020a873139a637865793f26f2ef0e2092769334549532944b6c809a7984e5242fe8413adac098715ad14fb3e79cf9209c72f91c9748f8c2749ea174b3808cbd2a1d7a43a21b7e485124e3b5a8248117acfdc0fb181da092f92707e773335fad5c48725b811b24978818483c595c78ededd243e928587e0b8a1e5c5118e9915764c584d93c7712344ad181c9ea34642e385118e7d99e42a5e899cee8bb09abc20c2412f75349f5c23b6c4396ca0461b30b705d202435e0ce1989b16e626ebba7a498819b281a30223098042bc10c269d34c8ab72ab27bb7201c749b4c19197d54cc8fa4c023608070b2dc54992aae173f389c9bfa931b4c46e66ce4b8f0c207071574a9b52b25595c5744ad78e1450f4ea92e636b92d0b754e71849b00b2f7870b87c9edd5dfe5ff9bed8c1799309b9d27bf2ee9988a8ddc85158bcd0c1a95b354979bf84d73211f0220727a975e93257959cb75ee0e0a095928c9654b052da3fc046094432d0352a072f6e701613d39990eee12eb2b7512301c6cccc2cfe563251a1f286dd89b36b2c0d4a0caa3693cf89a349db79d79a266f2d13623380b189d358f64e8d7a6ba9945580a189938c35f3b6a56a36279938dc660d9b92b6fd265701100318983867df65ccbef5250ed2b26fd3bb59688a25cebe4932ab9bbb0c318d4a9c72747e695162e5939450e260a19254c1aae35cbb49b02633b229752a8983b4935c3b84a9a04784118983a9ec7c8c3441e2b03944c8b71ab7138d19603ce220d2ce4ed413541825c81127157ee156eefb2ec368c441995ffef42e61a6368c38653f493c13f4476ba42020c9224e724ada8712de4fea36024311479353fd5e479e88c3c865b659af0ba3160c449c82d5a953dd3b5f671fe29ce5262821defa4b8c226a35466a181bc9a2468e12140086214e292a1bd452ef45a485b8449fbcde5012e2143474d6d86b79891b40c018c429979a5e865222040c411c764fcc7d5599620c3ba4c008c471c46dc91772b6322e188038c639cb98719a5ba9ca00c61fce5623f3c539d95452d80fa75367a62e09e2b75268fa701247a6d6246b3e214c091f4e6f9b4b12cb7b3973df801934663080c68c05cca0b18753de91a244f90c1f3a82a18783fa6ddffb5989f4330d30f2703c95c62c6d107516e478389728db9433b88abee60e878d9b9fe9942cba6187618753b509422625fc92ea7f068dcb038c3a9c4fb46b0af667ba2e498763daeb8b6d294749959bc3d92433156ab252107f228753eba9a6b1ccc6e194c468dcfc172edb9ceae070d61c7b23cc432f3420203980f186a35da9585a4cf525992232821c3083c60c0accc04202202022e986835ad23d9af6a15a646d38696e0da1eaddeb6ae300061b4e42e6d59d8da7316f726b38ec2955abefaa7519cda04163061612d0000808266380a18663d68c8fda9a143f3427809186a35fd298f274ac010c349c724d454d739226e9ba1630ce7054b54bcf9cb1a2c9d0994163060e4fc88b19cef66652e77e58bc744d190e3f1b84b6f7d020fa2a0c6090e17426a56a92f48bd8288901c6188e61b3525bcf0479133c6b030c319cc26bff68c83cf22cdd364c0d30c2703e792c84264bb9e5570a72d428768001869318a55a82e7092ffa041262233546dc868b00e100e30b87939a5ee2eb1a6239120f30bc70d0fe4cd125c55ad4ce42cc981f6074e11844cc5899a0452c6d40404040ec46ca0c01830bc7ca57b198f7fe90a12d606ce1209324c5b2545c0acf68e1a435458e8a88f413d1e0106064e134fba62c6fd60b8bbb0a010616ce39bab4faa5778553ee59fc4dd1b5c2495bd692f2ca86b074a9c2e1b36492b3aef2769f4680418583a6b18af14ff41a534ee198d456f48c1e236b7339020c299cf352578941c44f8e1885936caa4a058d278b7a1d0a67911151cdd7b436499e70beeb36317ecb68c56c0205184e38aa4511dd4b29cf5f4d389750ab6e4a93250a3098d0b78ec58f09309670521572ddd374abd243634d80a18453950c966413da6bc329092731493245cb7bfa5ad60318483887d234b3f5d35dafeb0807d165a533a5b52433698463beac2f9a79a2e5138b70eccae4a1c45758d312e1aca57ffe94f8a12a6b4c42041843387cc9d95e8d9937c95a3c802184931ad73649f80dde9d29028c209cfa37a5be24fd4634a4051840385c900b336be94bd6f507273f0fd3cc97732df55c80e18353364de9d582b957c97b01460f4ef2a6bc56b99a47890c95008307c72db92944e46c6a6b07c73afdcaf533a5a9c49325c0d0c1419e14ca2c496f165fca1b6fa3c61d1560e4e070693e356d0c7a2fe60c0930707034490e256e75e95b966e7010db73278ba8cd1b64120d306c70f65eed0df5559f553a038c1a1cd6fb7f4b4dce50974b20c0a0c149b0249ede767506475dab71b55426c9570701860c4e792c63f210af545386980b60c4e0bcb984abd0b716646d2a0b306070f8b7d210616e955bbee218a4ef9bd6c5654915579cba47fe46fac9dbbead38a8ae14d3c26e4cee222b0e4a995232a52406d1d4db2a8ea6fb2666f454b124dfc2872ace956ef7f9b77e154a5271128b2327c8cc702a48aff0818a53988da72491263a1b44e30b1fa738bbed9ea469a66469dc1407954be6ae4befd3da4b71b293562cdcc8ac9d901487ed1a25d37a53fde533c3c7288e494a59e3afd7d5565a1407eb0d377e275f5a3e14279bff90662b325616288eb6265e9292d45be28987d81a3e3e71ca2647d659ce096ea6278ee9b4ccec63aed2cc9d389850f99149888c3f160808274ea9de84d266a62aade9386ef4c7264e7929377f9a2e8b7a061612980102a28983bef92539a29289b3a9af4e79b9b7f20f1327315c95789717bcc478068d190f3038878f4b9c2c63374c344144f8b0c4d1840dabaf259b52f25d89936d34497989277949529212c7b694b6a2f94c3ea54de2d8736695dc2cfc7669923897c86a2a338d259e94267c44e2e4a13395246f897e7241e29c1a6646491a3ee23897d3b5cde424b35188691d3e1c714a929856bf152e33798d38ab88d80d35fbaf5dca22032020216668f0c18853080f69f19220c39abb88d328319a9adfd7ef162960068d190998610109ccc8127c28e23ca756c62cec64e82d1147d16ca76241b4a79d883825999214632a25a368778883e9d125c6c5dfb4d810474de12ecd49e9429cbe4e4f7a886c163f11e2248bfa2dc132ebe4ab38828f419c64d060d962456f9283801c123e0471f84d67e1eaca6ba34920ce779b41fa657f4b620b88d3550ade7f2246da5fc8f0f18763c69f95a59261c9f4190001010109b194c3871f8e6eb9c9af5f9329c9c3420252f8e8c3f1c48eba569b8b354a4ac087c3788ede9b8e9217fcb29103c3c71e4e17e629a357ce4328f570de39339d49164fbf983c9c94bcb2986ead3342838763fe4bf2c8653ae9c265420c93f07187932055932ccd1a6452e9910f3b1cff52e65279529c4d973a9c7545dbda7c263994183a9c947892a4f3843641e58b161a3ee6705226bb6fd07ba76564391cb48eba57ecf5d0a1bf389c4a8bcdc5942a8766ee6fdcc06101341dc2071c4e1fa2b5f9de4cc6d7df7010cd962a8956a1d3a44c0d3edc702e7ddabda277f6d18693f40c26fc5d529992cf86c37fdbdbc971620a155ec331989a923abe4953c371f4f5627d89d1d33521566938885a65ddf90a6d7ea221f6820f349c946ef9cc5ef147c6dbf8e0e30ca79425083b3929733ff830c3f9448febf451e2b7e8ca7054d354269b9651d7350808143ec870166923e564b9a079d445f818c349beeca37d835c454d6a88a5e0430c27994a99f81b42f49b6c09c3417358d2906fa2a3651d7c80e1b0b16e1e5baa2f8ffb85f35dca11f7b2621a745e3889dd78a6eef28dff8658760d35c247174e42e48da86c3df96309b1e15984e4683b077c70e1a0b4491b17637a0819db40d12d9cc3f7926c2bf1cb1294e51c0002a221c5b4703449bcd4a77f6366d4b370342996be1432569a287d60e124e858537ec2096575b9c2b96b936ba99d5a2a6d5248f06185a3463d65256a49d229c9037c54e194c7d372c67419767321968e63061f54389794ca84ac6c563b95b78d1b1458c2c7144eff39ba7159a6e59e144e62512fd9bf8611b94688999e8f281c43a624fc6cec5753b2c6830f289c36a9333d9aceea7c7ec2514c9689bb92ec4a962ef870c2492cf115150d7e6be21f4d3865db2a91ed9209a7d25557cd6c19ffd512ce6de24dfec922251c4e4b0c9536b9838f241cbfd652541831275ff58184839b2cf576fbf3934a0a043e8e7092e554eef9d99896ca8711ce65fe7e964ff35184c375bb99afa92432459111e4001a33b2dc8d1360e12440592840010b48018e1b5af80440403885a4e9e18308e77151eebba1a4cb91171a15984163c6d102c78d6fc3c7100ed2e4adadd3ed87104e7665622ac5ec9235ff08c2e17d73a56eb4be5c52ef1800014920205d0304061f4038c795c894d371d15da9467cfce07862f30595bbeee29f2491f8f0c1f1a4c5ed9764e2fe941f3d38e92a9b2bd5733a540515f1c183a3e9ca65793bd4bd4909b2402608a9f11f6233b068c0165a3c20050a181941160071c2c70e4e627c4daa379f5ac96f051f3a38f6c8c6b592cbcae023072765e2db75cd28a984930f1c9c2b8c66889213370e888f1b1c73689272defff25cd006c7246490bd932a35389ffc669543a9b4f7ea070d8e264c69cb6d72ad3df4318393b696d6930f09a9010252563ddcf02183838f5413ebaf579155033950160c0001b1e13972a02c82f01183f3d76e30a54de8b313fa80c149cb7f78cd49319b6e11354f00c8c0e315e7ccd91ae31bdd8cbce9cd356723ce334ac8bc39212b0911230e9a596f37c996e43731101053467811c7bcbc17ead76a7e7610900ac850c4c9ad33adf777e346544646426ee428d79e6ed0306524031b01198938956e5f1b3741834cbf889ad9b93365846520e26c3fbfbb317765d24806404070241c2ee310474d259ce9122b5d5f4ebe05ea110f7963387c044b86218e49be54f724a5f3e4b81067358d49949153d2a509218ef1fc4fcc7c4ac9e9d3208ee297b726f9a668b120cefb9f7f9d1706e2242a2a435aefd7890b20ce964b570a1f292696f41f4cb1272ca21690c08c09d02881e1c8b105c618830c3f1cc4871ce131a74605918c3e1c948fa524e5e3ab74c7878398c6f82a1af4c9a1b28753106ee2749f2cf7af530fa7b0bca6b1fab24949c6808d0ac8c8c3f1946db8adb878f7c9ccb3e035830c3c1c2be6ba2af35b8ca7dfc861e3014a010f84e090718763d021bb416957861d0eef268ea5efabb815acc3e1774f05ed1926bb48e970129a4649d28f5e1231cee178322dcfbce413f43e1972385aea9b2bb9fa4fede6d220230e87f96cb71c3b27ebbd0c389cc692b4f297f10dc7a441498275f96f6fe78653780b6a845cd5f94e807084e428c1165aec40461b4e7d92ccbbab28725321776c389abab832f2eee2978c885a48ade1585dafa9bdc49860bb886642861ace6f72c34e9e20fd3aa36390918653f5c9ca3342a4a706a1e1a42db4fb48f598355dc619ced526edb674944a4b926a84d8b8a1e901362a7014f0404800e420c30c87cb97ecc43bd1a42c2732ca7092d1547fba659bfc36194e49ed9224ecca848c9a8c311c946b3c3158d8e02baa840032c4701293605249e9c7b64c18869374a2fc887f8fb9a632c070ceeecc6ad2cae95097889a096a2413d458401632be70d813dd196fb252ce464870e3860302c007195e38870cdfaf999496b99876e134b3267be336b23423a23672638b934d90c185c3e7a74513dff4862bcf10938c2d9c6684b4ebdf1042e9c5ee6568e1342aabade8fa6d5b46168e25fed56de1dfb45f26030b27b9a4e94b16a5de576f838c2b1cefede4aa9ab04169df0a47fdcb95de4d28499ab0881a7a055ca4414615ce97a14e9cb45d9a4416512b1b810c2a9ccb64861255593fb993318583c5982461b45c2691c249b4f6935464acda84a42c6eb4086cd4d8c29d042124b8718343123721230a675f930471e41899c1000ccc60830c289cf264af53a2ea785b58c6138ed17dc5af4e2ba2664420c309e712b446ff5556674870e3868867916adc952dc868c2f132c65862d9f49b993c292890c184933ca34a5031ca4965a1828c251c4ec986cdf8b260d2af8473c6494ad44b2ae84c56414612ce792755da755ed8341151c30ad010c95183032359649180193466cca03183c68c19584860465256a420030907bdc14f941275a3792da206023292a306ca38c2b9cb4e939c7b622b3e1135c591630b194638f8cf87f8a82e59d369ea9620a3082793ee5c4d8950ef2123c2d94c53994a292cae960a053c10a20119433869d816ad273256d989885a020119423808a9fa558252b14e52cb08c239df24b1f246bfb72045813b000424a1c0456400e164c25b89b96264ac45a68c8c1801c8f8c1a94ac789716137988565f8e074ad799258ab6c5237193dd83fe334e789b68b800707211b4fd2569562bdb583e3cf5594f1d3bca1611d1ccb2e493f2767decda1c563a600e1c0818ae3b8d15ac8c8c1497bcd87feaab7522b0ece7a2ac534cc9a3062bfc1412fb6966cded8e098c29da0cefcfa5449528383bcb2e83d6a2e9420cba0c1714b54fdec85934ea949010f847c40c60c8ead7f31975f16119b89a885545595cdc04202336894f641860cce6ec265caa5444b5c2f230647ebfa50dba07a322703062741575f8a777f21478bf18ad3452f35e1f45e5cf55c716d9b24a93bfd62b4e278a24ee9db662c8b9388dadd0c2c1a50108e12a0108bc18a93a50be799afda6e6b11b513b80db3195834202dc62a0eead24acab929a60e550c551c76b57594b8e637e918a93865bc693171f52b6a490c549c648bac983abd54c90c2c1a00023242821b3744629ce224469e94cb64a6385b8830d124614e7b2ca538052d6d1a94b0d5393f294e6fc2896e324659a81e03e78318a338cc9d9d94c2e829134f44718c934ff7ae4ae7ef1b8a73678a50f2fb59e80ec500c5d99289dd3e62b75c2f9f389bead59fc99864f7ec89c38c50befea9232e8977e2a8d1ec4accec54374909278e9bbdf1643a258495691327f9a4696ba5d555137e2186268ef12dc655d634c9843213a7785212ebd8ca3e2719625788818953a9946942df05d5695fe2e8afaa6169c4c532dd12a7d2959dbd6d55e2b4ad6d319a899546bca3c4612d5cfa6e1265c82ab1f4ffe64e12c738d9aed48eac1d153f28c488c449664dce672a29a8a6ee2071deac739a84aec8eb7ef788e39d05216e77ba73c4493ab9e3224eb72c095f234e315cf80b42451b0f25461c5493fb65d5c6dced2ee224bfe92609d69b255c10157172cbb79b7ea39dbe869888b37a699cd013ee041dd6126220e264eadf97513d445ccc28c438c4517e4bc574b726c82a211a82554d52978a4a825888931eb5361ac48e2638429c0493ca44e8957c96db208ed1f7948a21323a2e9d8238b928b14d1e37e5f61926c408c4496f4a13eb4f056d1e2302e2645be1cf527a3339eb3f9c7f748d5227b64831d50fc750319a9216f564bcd687b3464d7f797345dd6cf1e114fb62dcfd4b269fda93640f277135caf23ed3c351636a290fa7cc50a7a48626956412443c1ccf33680d1a3344acbcc3c194ec57b2624f7017ed70feb73071f3dde226d43a9cedde2e479d0a5a464f87c39c50eae797de24b19910c31bc498c3497cae9fda50829ebae4703465caae1871389f76195db24fded92e8310030ea7b0a27666f4ce5598450731de7052828929ffc88e13743d420c379c52b6cb2f57e2a9254b1662b4e11c2ac3f6c5f82b3b411b3522703783186c38d7553659adddec7bdd104b8010630de76e2d4d33c94e79996a38c68dea12b5e2426759e3c606424c8b1869386b9e6b892e27f3448d86a3cbe5910d3fd2c53fc3f94daeda24fa82127da1420c339cb2a55d934aa8c625b1b1321ce4b9fa7f7889be3f22c3c1e72d9412a37a731bc3298c0adbbf92c208d9300d31c4705eaf4d9b2bb4a5e5cd0531c270ba9ca25263cf64f01f0cc7f0bea943dee9cc178ed135e7a878e1fc7b66f9d737edd63c82b2a0b14688d18593e993bfe2f7a486bdb9701236c6cd2735dbcda8b770304198bcbac992da64da32c4d0c2b9d692d41b53bcd5f19318593826d53369446cbaec86701c101084c36bc4c0c249be8ddf2689caf9f75ee15c1a43ead749b71e7a2b1c7554aee9305153291ea30aa77427fe29b9ebec664f418e1ab683185438c6e54e99d717efd2838090600469113285a39df42253caec27bd278563d674425fd07ad205a1289c6ccfc4a44abded26998318503849a2c917d4a4cc355b79c269f3456fd73426c9a0e284c35f12c34273e5f4cc36e1f839c24d05a997d562c2d93289eb16c4f72413e6428c259c45e9e768592f21a3e9410c259cd2786d961126cbeac783184938293196d83a19128eab72ea7ef7cc33fe231c4b50923e492ddb6c0e6310c308a7b7b89de6e56e629b8883184538e688129745fa8d6c4884184438cbae8e922f4f50e2343186703e0ffd27456b897a199ae068104308c79e516f39414138989cfd96fa5a77a68070cae62d626ed64e92f51f1cd336679498ec0cb30f0ea3fdaa2c553a398bc5e8c16934499f1b83921ea9a10508488fd4d022e9420c1e1cd62c9be613993d8450093176702c25e554dfe5849b500727f924f9c43caddfcf33460ece79994cffa51cb335c2c151e3d77de953fe1ac486183738bac8d1d6a0e49262e3d9821836389fedbffefa8cda932c428c1a9c94ca57d2932c67f00b0d8e5627dd9df598daf262cce0d82683ee0c9b35c514951fc490c14914bd162bb216448b1b2306e7bcbc235aba5d628c890183d365bbf79eb05f712e3ba9e669192cc66c5c717e93a6a499941a74a9b4e2ac57924adb6b65e2172b8ee9629fa60f6162ce985ac5e92ccd5c2c19454765aa405b3a4d2a4e9ba559268608d323a2e22449492ef1ab7f0ae8290e7aece4e7babf4488a638c97b9b269a05dd3b2ac5a935af6ff6aff279498a93e816c7c3ba519cca82bed8341fba440618a238dcdf9518c4a7286d9b0ac5e1ebd2eef3fce54d0b8a5338513abd927293d2fdc4292669f29ab83167578a274e82028fc4a81452c6a2501c0c0302411083000424bfaf0253120000000c120f860332a1542e90f3001480044838284a32361c2c221a188ec9229150180a8583c15018100ac431104541180d9440a63e9abcca0b01f330bdda343407612c2a34ca67d3c698ca6589624288b64e6bfe540dc138937c4498d2f2dfc1ccbd401ecff1eb31ffea839ffc2cf4a44e3e0cb71f76b83668988f0f2fc04007aaaa29ab6f81a29bf2625465e5d7cc7b82c6c5fd4d7223f3ff87a696cbba9adb245a5b8fafb0c7ab687880b902a0970140690023aab3cae83700a4c4ba556c33b569ec0d1c00693719809e0a2b2f033388875c6ad8cbbf4c27dc05ba75863e2353a1b6d2e953b5a136a0d1ad0d516b0935dc9fa825c49aafb9a8e562b74baa7c54c748143e8d00ba3e8fcb8e4a325254925075059bd90314dc75660d5616386c61c7552b72cbe0c36e2a14b3f5102a8281c41cd8809bbd773fe1443b845fbe878fdfa139c08b7b1396e72ce30162f1ab59bc36ebf30f6b0620fc673748321cabd6a75cc505e04e1188857903fc29c632e0db9cb3522216a1cc41adf8cbf1087c32b58ccf26b985714e36b6460ec7e90adfd1d4263bb1d8ce23d7e21c159bc70da5880eed5f59ac989dc31182bd97525ef034b1dfa706da468ff2fe98a76179033c82b1182c8c4e3bf39d87e5e8bfe124107c669ec57ad43603c7377e844288fb30c88141349d7c7ac913ddd718e33e3cd0fdee8186349e644c7434a18c1b66496f4bda821e4c9f20223afec4670c06956ba6e8bbe97d560d9da8ddd120c57af4b9298b869d30f85e14a507cd521a33965659b69810754c5e544a20469258613a5a9d67f89cf012d5c2f6562a189917330e9ac2aa2355d4fd82b9a7cf896d28573879d0e20d671eb92b04a7fd37d074e4e7c8a7a9fd173ec00e1eb0cde3d815392c45001a9b6b0e501b408678820e7695e56165ca89024270091c00988f152893b49cf4ba865fe99cc4e521104473faf31dde8f4d3e5d504dadc9bb70c7f77e960ac1d33e58cfb8b8fa5f57bc9e3c5aadd51d0aa09d8ea034410ec0c92992073d91375d05caddb99cb3c6dcb5687a44958817cd8500eb3c153f59b8845594d07a9fd8fff1808dd82376b435610113a271d75fd2d6b480ae6c9dc05c50b8ca1b3b746a57459a8848e3a0ba362fa9acfc88e888b48b1a985bfd9fdf42850fcfb5d261e0c76230a54934c0447b41d0d102beee85a5941c697eb0061bdea5f0ba15b062a0a84097c0ec2066fc0f82b65ab493581c4ba04899a31405275fa4898013960ac7b55d1094df7ed48b2fccc2eba2afb8472dbfcfb52345ad60c5dd464be730d8d2e22c66c4a838a1e7b6a2ccc14c997356658e12be1cb5d55f909a20e016d577f4aa1b07a2d54df8ba706ecfe013c2aee5a7607c324a09fbe00878fbd84e7bd10bc2b3ebf99c043b5d93d1e37e363bc720fffb05fb3742b2ec376d9ca345463421ebbe6f5e868fd816a5f7286374cb425d57e232ddee33852a2fbe4e69f278fa42a29b30a6ce4ffdf9d5964598169c45550539af9fa72ac2b39621a2c26aea6ac163ee05c9993da52ef56dc75c3973112e6475b2892d5101628694be17b76ba9790d1fc443d2224634a1c27e16a217dfb81cd43bea53e37926d5df1a01818603fb1084eb0514ee818dc79432b1997fc7a0476393740d1b2b5dc9cbb048e4803f33cba331e51eceea84bdef384bd49dcc0d54e86e1068c566d3c5a97b5e7274e34bd983504146858537b26dde025e00e71062fe296370bd92b4a3753894ef0efa95a2afa7e7db83db2f35d72aa7d9d44d331a99c5c689791aab619ed23e5cfd709bfb66ce81db5484a809f287e39f30166f0235f5f67ef89c9d5fada36fa22691b1f16a46c353b3501afd0b0545748c8ab39804a1ab91acb25fea414f151ca67301c2af2fc2bb70427fecb8c568a24afbf5c260434f416ad0d086b9b9022e8e77cdd83b4ac05b614fd2f5ce78b9dbd27e4c569de3a24895d1058e4039e0194b615d106a45b5418bb0cc0d49436727bc0bd7a05d2f26d6140ab8da6f11134d1300a100b8419184c7e0aee15df07cd1086cf47e5781b94ce00d1e65200e912fc84969a23739f4600cdafce0e4bac2ceb76105aa3500083082554b657abd7116acaf074646f41ae86dcc3379563453d2473dd82af353b37ecabca0485082520478ed44ffbf858fb5bf20857cc15d73088fb8be153401bf54b029e09b7b6abc2d1f7928380cbacd3c6d8cb2da025cd8bd4b9f4e7dac227b04c5044ac852862da0ce8d579fff60ffcc819adc5114c4533461fc7fc5f3764f46626b14bf84433fba298262f8458561fc8927d074d43c4799f11a03a6e001bf89658c34448636d9e91529b1cf06e21f443dba888db6f427165855faa86f849624d548faafff37f8453cbbe1ab1b62084422df7c4def4f0d097fe2cee0432142589a11034c55fe9ca26cf73a71c051cdf33885652f21a9d096ccf3d52bf56aecd9f843c8583ea8cdcc8cea03160142aaf4a36ae4a85e08958c075356f81b795ca464342817c3f80fb3947782373064a7b05a14a03808ab7d2a6243c2671c54475395f1747d738ee08dcd153e1fcec3706e291ee1dcd9a2f1d419cefb7d434224f735bffe5569c3235abe3e97ea69226b76f968985cbff0225a692ca1d00bb63632370fc01548e991e762935f4c02d005702a4a76f73d74c1157f6566f2cee01d32c51bd189a3dc560ced83c93ea0f42b92592c4f870de17be24502cdda624bac85b94c35998fa4fd704ae08d6296bf81832bf56c863128e61236884406fdbeeece937927c7a2a83fdb0810c699f80122ae64e7491255a4e997ce1bed4e23892fab79f0364cc6aace385dbddb286dcdc5537376c2a4aac0c25a7f97683a95a22f0da3606014c6998766f1cb96cac58194adda436bed5939f8cdcf125957cd880fd2867bc7731c21fe0834a4a70ebb4052e15d375c8892129bf87a74c29fd758924191c1edabe8f1a7e62aa315d4cc162f582dcf160f0c81fc32e15dd01ed5c81049a8d8a31e3839160b63244e9d2b049b05aef92f6775ea59b825346e75e1ac18c911c35e41921c6eb176e598ab022499c3244c555bf78a1de8677133ecaca5acf5590451d9549b433371cbc9f5141344ceb163d94e43f5ec6358bfbe4a12b6ac94fdd8fd862c3ef238da69bb53b4c4da719fd69d3e8b7b4095014728244cd3087387425973900c6f27586ae7890b7487270e9a7871397487ad9eb87c4f5f5f315a8e5184d21e25626851a4224d5ef2f2084f1d1003abe48c2487649d99eb259e76ac65d5cadf4d73ea34f5c11fbdf4733a0dc016097172ecacea1e731a16b0271f19d161905aac412493c488230fc1c5f9422657ca51ceef5baf71f8dd42a50e79049aa1545c43984226d111b69a56340330b07d77f766682685ca31beb81b1885d06d70b58e2fd26f5431867a30e62a04a81a046fc262f85004b51983c453035c527a0564c4b62c410b9531b2d7bdfc19e3f05c1e8878b7b50664dd92da7c18dd2d15d7a6db8008e3a06fd8c9620384da2f49ed41f758ea6589bc8a9927f92c0354d98138fd362e0d0c62af2fc697c8040310a2c18b9a2059ed1bcbcea617f56c963098b5d0bf229f7e7ff372a985faf3b6ee70178cd1806e4960d40f289850f6bfa00d79ab582a47262413ee2c141eca24641f1e9a2f668ded9967c7c9962d0f6d80f80784864997e7922b4642600d1502b227b75094abbb95ac5cd85ab85fc1950015e3081cb19a23894a4c54b204bc457a38c32677c59c17e5f4123a0cb5bd18d55951c6aaba34afd6f81e1e008da60957c172403033258e0e8143feee5b6130d730d0e7f369dbdb635e48d2abd2620d327b071176e9ebe808f6d62082bf46cd440dc2fca74c04796b0a41642a9ff2511afb199eec57d30631af4346d88e7bde561b2c8449ae849d54ea6dd28257d731a068b8e17977fba000f8dc0208c122062a16b7be5de8f5631aedccbf689bc3e8d32490ac7b90a9eb144cab10324e6eaaa2c61ff681ed42eee35595e4f58ea92415fdf30d4fbd5b430650e3d1a69ee011903da84974c8be1eb8560d5cd7447af4f4888af12198c733eca56884aa3ebac86b1ad14b08131967c8e79e1938112527af4219e9443bfb21b168c6f00110339042b21e7b834602792d18ab3bf22851a999cd413cb2710d85106e2914e521ab9ffac41412785467c6c92d2e2f5e2f06d1e161103f92a98779d048d1ea1a7af86289f08157812834fb7d8ecd7e9a8a4254007db341ca51ae17446a1413fdb0bd4837790134dd9d917831f60258cf1e758ce79d59f1ffe24111f71699479514440cf082a8819505559ed0899005e12f267c591cc330e33042a286e76b02ca11bed550d283b97f89c3291fa5ea7d79b8a0f539f7faa28111c3dbbf81b2a3124bee52dc71011c63a05bd20543001b49aa252ab3b66504a2f167b3f2092c5b942b902fff2878f3dbdea2d65963b1de357d3c9e2f6f90d0fd93ee8a11bbee35daff187a9cccd4075c0260cac1ea8b4b09aecb8d13934046f051eb4118865531addf14f8f0c7af148f34e084d2c3bd859a4e8e29a7a903f405801854f56a750dfaee570555bfca5476626295b39aa987af79f88ce90f5d3ebd8b35b255baa347c72df6658d934ff5c76cda034cafb5a92c72e3cb8c410785bebd7ea03a45230b588afaf84481ad2718cf13d4d10a415408ebea7801c3ca8940d9e8d261c8708e4890bb60c71beaf720ece41838634cf9e9a93df964379475ed4e7829bb8ee66c86467fe64670c7b4aa394980cc1a433e6ea0aa160cd2f1b459c37bc803701dbefa52f1537937167c4c28059e23169e9b5a9998ddcdd80a1d792a3cf8437dd80b21ddf0824aac28280cb056a4cb11b169918ad38a727b14387752a903b7ac1e8f023581b50f59d0db4ed6597e417c319a54eca8345a1e77de7fb9684395aa76dc5b8e4e320ffca30cd79a697318227dcd002c7477ad981d15cbe2d4247cc93f423dd5d8a8b76efe1d78303ee65660d83a40ece1c720c94eee504d0035b5c6c16b37090ee290487b34ca161b434a6ea76308c86f121657abc0c17394d18d0e9c37d075ca60e91aa37f8184a6cd83848023838b57a5440162fe8f8fec701fd0db2b264e7dbe9f5e197c2e3d2d705f04c8925b0ca020f9952fa690db79aa9bd815f8bee8b56e4891e850ac883fccd0370c25fc46a0841de67992a2a46c7c054945422d73ca806960dbcb40708d58da37321984ffec96d5594bc72274c0e8288e5c694c1e3dabc3280e149fa16d8dc99990744e5680002f26f387150d8d9fbde504b629552d112834ae9f0c881872fd89a03df03b840870648dfc70ddc82441b62db3b7dd20a1cec24bf8724db000ed55ea316882a58f079f6d7664fd7adcc28db2f5952f957d0e68b43de07353d3faf56a9799838143d2214b264fa19b65e8748fac1ef531dc7aed7c7d058e1917a6497b88a542cd12acbd3eea19c7fcc969cdfa3551c543f19ecaf653c0e5f3364545cb40ffc3496054276fadeee8baea2856b5220c676d6621c03a5ff71e53d7e538db8b4758aca4de0083d469c58bcd6127da38134401b482935604f087afcdd64141d5852dfe0aa53b9914bebb3d164dc72f836818b458f5e36706420999e7428561318d8117b5db56a5b0e915657ec9c1d03a8aeccc2830da969f2a97c10c24bcc2501822bb2409dc38d2aad08755e8d8cec625bdac13aae49794015d1d38b9400d79ae04e411505087651cd12948acd8ede567311b0e973400154f78d476266c880f816de4285944688c4c420103e7904845143705f11a6be1ffb4ff5e84c4246a6a4543d35d7a3348fa4b0c8f2ff9a3b8cae88092f3d05654611bcf06493326c3c54702cb0ad68ca892e7cccb25b70b823d5bcfe2a2019c3214011b43cb4abd9315e26df00af33994c69d5ba385647b0c7449ce12cf5a0be2fdee3b002e20f85a0165fcf5a6ee9dc097284b5f6dc252ae7b629a2f8b4c7111a96c88694402b36824e3ab59f6660467dcf71a8b10a1921cb63ac1fda7a5a447477d6ba2b5a1d7c80031f48e9d17d3b4b60685fdd650673ae5b5616f59bf3e93ae42d89821fd74a54041b2d355ea1cf294fea3ae8a84302468a8586151ccabbbe2e04bbdc775e3f762c3d0a34be65814709ea9f66c0c244afc25b4ffae14ec93c54eae8ff19ab4b5a574ae4353c692579f3abd1f50ed52806477d3639d8a66862fe0d8b897026a1099fc88463b3a2daf1394b675754015f0587b3c0078387b895f5939b0d43252f18ecf59f4a1db45b54b288e627e0c63be7781edd191454fbfcc0af2f00d0ca8969bbfa3166adb95094c31f86eb9f751a638565cb23dd1c5e306f659a53d695c9f5f498d01c5cde5b1e3a36255f3427b739921e0595365ef308c938e2012c3a10c19073c3a5c813430b5a15f9474b1973a729c206236de8dcda3ac5120980dd230867929b93d6a6f6e24e93bb76e3bc179758333d4220a12aa600c0dc61a17cf568ca0ead154a85624792137ff17ea051c0647d51f34b291c3433b3228a5511619a93695f21061935e5040aeef44be121125196e0b6cc917ad8f4336628151194b22e8b56f4e34562c60380be22aeb805c84d768f76546d32e6a42576c9c828166589104c25543821d603c907b1cc086ec21d11836c29c777e333fc848d4d7a99e8b85665614ea4aa7dc781713cca8c656b0fc1faa20e6721cdddd6335625cd6fedf9ac596ce42e8cb3b5ad54ab5729f0a2fb3f24e28856c2f7de342c59111b8605d7d1b18c2e8b2a029eafd5943672fe21c43545baa89de4936d49a613275d26c4357a651963896c6840d2bb5f0ddf3c7f7244609a17c87c1854c06e04c8c5570b36e3a6c46852c764ae2ef7a961694043e4f5547a92fa4c858208c927b1be83a9033dbb408109ea088a2dae51d18be1ac8eb1081a5f027ad5dea1d3f647b1dcd1dd98caed332aef110340d01cf3ec0708eb8a7e6127810f2a5b7f86e432b3be2f834200672a52fb2911f1e01e6bb96847f4dd29f59abe8ae1a731327814eaa2d6d9b9bb4c1f720d1863db43676c5a7943f071289b47567f25514c7176baca765f48bfebc84fe335dc1a83bfec45c0febb99c7780967e4bba1389b48bbb3d3e0c235f6e2581010acabb92a38af2e6637d8836a76020b120318d1a119922f7a650f9870611a011581aeda2e0862994aacc74adb4a2aae391d911aa6ac4749514e2674b05ac0f47811806e7171ad5852e283662e52384dd0b9c35dba924621cdbd73684c342ce987a9b41377af7530338f2d5def2d2c13630341559066c14cc699e5341251cc41f6e785a2a0e429edb8a72ddaf73784827c6db1b5f0295f28bcf2bc6973bf4e5a36b7b07733095422ae3bc3ab6cd813608937cb353c538062a2aa2a19fc2290a1d1675fc612b5ca9a7e364c5f729a13cf8ff5660c0b66715cddd3355f10422efef0b93ff886d94c3578d2be236d4ef9fbd8951ff726dd1481c2ec2b9e340aa26f017c67b1b983653c8157e3e43c1fb902b22dab1d9f2ef74a74d95f5769fd732afbe9324d7304bf8577ea51325ff105b248f49462680a16e121bfa1f11d223ca60f0b8c53512cd3ca207b6ea07df0b850b720f5a8d0712753269440fdd23e2c617bc5822f08845f861214b83acd4bbccd5a13c2df678d9484e5ef12abc0df7f7f74903730d731344301642b382798a170bfd7df8aa2b4afb984639c9bf780c33a69f3e05331cc04d52807350311db7dee182e3ad82b4fd8c20581aa90fb4231e1f4175fc4d15fc7b68c4d9226ee03c29ae1f696525c7cf86bbb216e143135d328305afed0d58dd0605b0fa89c720017094965465d2e16dc883a66ee2878f54b788219976fe50a50425088141fd415a5cf98018b673a270333153049cad1c87cab46cd41833eb8307822095a73ae50f79f0d5bdf5b00d2431236bc0c834e363a2ef00316f0a4df1d4b1630e1213fc2b356840a22c2ea701eb467eecf8c60b500912d26eb1a6342aaa3c1431f0c90cd741c29b537c71b671c3ab82d375cb57a4eab2843d26ab5439258bf8d4b561cab8836fbf45163d1decc2149ad2ac5516cfb4b1003498397c7b2eed075bdfd1cf3868d1c4e520c197ba63da6f83004427416fb5ebaa0b93469dfc0ecc760ea6928831807565b526f84c42adcdc0a0758e48208f088b8f780efd58251f50ca7e15d17c6958ccf199604078baba925e743044338dee427ea1c6314a1a962d1534bd815f31eb55987b119230ad063426f58ea7c846594073c435b7f13e0f4ba6265554ad7d716f4e94fea27f886f190e1ead51de35722f95470866d962180717cacf08995407574769b65bc7b11b9711f9a38d8602ec9f53255c06b17ca1e1b4139ad5a8864bf9364954861c319050b765c89af93ee9e9f26da55339f3b9abd51ca4a66bf7571941182a63db4caf89884e9a6b5e8838a37bbc47a1e4e6490bde21ffc058e607b108a330a87d0200621fca0c5c82878e5fcb0ae440afb8bc3e1975440f0deb1ef52a548dcb9a08ad8c1f872c3fd53c6ac636d737463014e894cde523753629b5a00b233d9b418cbcd689d197951be09c9e951af2d922c585204144e48f32617bc9c60c6e48281bfcbfd174e5e930168bf508f7774e84e925871138a8955c192f0d1d4dcc71b909a102d598d8cd2415d5c73c3cc706de2d8c31b72cf4458839391f16c626104dc14ee3de00d17ebbdab45ddb9d07ad6869dbac3bb834447cc0ca03225e51bd8c4b14a4d6e484cdc638d2a61e3b30d876dda4ae0f4188769e374e72aea06c9c0e199bb9d43d020282c50dbc3d2551e9b18e39b6ba5d743aa3e39c1d08a3f8045c5764e7c0409323cefb77aad02d40c6ce72adef3eefa2246b86177f31d2862f29c64daa02d2b2d6a5a2ee5d3e7c2b001cefa6647de502f4e088f6b86ce5aa0996ff5b08e4050ff830d257010bec67c84a59f55748c05c651878d3115f8870dbec82453b6eaf1267cd404a33e7dba65c67ddb065e58533c99e84691947f4bf9186c04219403ea175826d1751f1b7f4c290dee5146faef7b1f5137ef9b5c8e247c39baabdf1c45eb682e49d4ce5abf2caeb8b8f85ddd71d2a634a86a48e79bfc3a97eec767ab7c30fe261c52a2b7e8f34a2b15aeb3581ea3e8ca80a1db1a4fe674cfac82380f1f4ad369f1cb955c30a1aaf4fb880903fa43a161b6440211ac4687ece29608737d8d755f834c2f5feea0f0ea6cf3124f4c0777b2a1d7ce36bbcd9b511cc489febc88fcc9d1d835390b2add086d8529f896b1c92c1bf95714bf32903832974def9a3f84065ea65a824168c841a4fc5dd1c50b6292c1a24816874497308fa282e3e2986597a7dc094056314927e58261baa857b9a93648aa390ffe29192ba7a91de02ca526a381fc81153b8955ff4caa500559c90713ebd4a763c1511d00a2bf3ac90fdde9f6288957a36690db670c276116141319ab543285cc557a369c898d8ecf047a143186750d5a50393ab002d6b5249171372dfaf28a2d5329a13a68976382b9ca6347f5518f0a4115ac471d076bfb3c128d56b44d1c0cd03a0aef9443312e041ea3db9c694c2ebe2e075ccd0f0bf9bced7d1fff4949cd3abdc796b3b65ab35e1c5cc002c2ab6951a75407dabe8522acee624f70526c7b9d440739b941d830738929b8b712c89b4f0579b2336e3352f8e23ab4ab79e649053d53c11ea1320672bd56227ce80662cee6678aafdb23f1bb62e49173d658c9bd84d73835e10a6480a007845d04e6ba29853e6c0f3175ae115460b02205fa5b2a0541884ebfc7b0211aa0e3edd4598d1b5929a4a834b7b808b2632cc99b8850f9fe66f36986b419fa91401affe78a595d7319779dd494f9501ef2a0656415e8bf8f3629b577fa4787a220abc06d56099b669f22aab05684d71faa7d36d9d2a7322a5d3459d0c9dd32f974de7d45437ebdb1ae59685b612fd88777d250f40cf121820fd603e1daf7351ec25ac085399d430ae8f83f5c4acf82992ced041dd8f3575e76c97ba1318e799fb3876140c0fda4992958d5cb5d11d7591b41c8b1247f49f94747a0bc689fc5be02fea7d79303e7c84e20abc2685fb3a5693d9f4c0053df4aa2366618ccf04ba5e7640a4fe45e5c4543553db892955d65e96fd97c1893008c66ea1c817f1ba7337db7db40905662b91119fb0f00d053d333a739845f98fa852921e48c2a4141713208514589a555cba79480dc1813c4ffd74471c5ffceede0f5c89d8dcbe3be9277309cd793fd6dd882d762cfc7d6a65d92982be75bc92803efc8cc07176cc458b332ba45e03a27bc2d81ef866aa304369b98d7aab699b8e72cb6a81bce2bb3d769aa8c608ec06ca07502447301d129f6e02f40170a489bdc0d43d1f9c00324ad6d81e0c5e288835413a8e6dc4a50331020192a62287b73320642556a2956c944140f4c0169267bf5fc4936ef60736344f7291d3c706bf164f32023848afe570afa32f446f5a1cb01db486507d6ee106cd4cde36e0374d8b3247bcfec7eb08d6a54e1af3e03c2897a0066d88a6f04acb85764994ceb6577f1930e1e88f38da66bf58e233d5056a4368c18b8906611e41dea716ea5e8b73c7454bbfa2a8a6ef0816811e27088689ab10a098e9daea26b035b69171b34ccfe26f2fc9f4fba305f00b31ca2fda28ab40bcdb387a32b7a1fc8ab4703240467f33a51d5cae19553e76926cb535f6310780209dcdfe76c30ff6a1457ffb0f2b6268f78336491f101cdc9aab8f5863c00a23c017cca0b9e2a328ec9f31fad930bce91aa5fda08b35c4bdbd2554de9287520617ccd501c8dcf2d4cec8bc6c2e063adbc4ffe125b2d41d0496f17b0474d04ad760040e04cb97197f66449ebe1717eeb8c485cb381d986a717007dff857e92478026d1a8389a36f2ebf1537b55e689f5e47637265a04ee97692de89024e17ed3ced79082d338713bd74fad595306996870cd8321c95f06ee6eda1ce2039aa71cac164dbe2cb11755dc81fc1dc1cc28e8af6d29465fc3e3d21ae4a7adf7fb9a1c6605e7c7e9a4095a53a04030af2716ef4ce7cbac71b938a3b584cdf4f3e0f9967c9c07bb8147a7b8dc57c744d0d4ab79185387589b1862b9a89abe57c4deb591f630337cae9a3cd009f46a679dd6cc62704e994da150bdc496c4e1f47c0ccba13c312f2131b7a041e1832f77c65fa7d00346f0ce08e4987b0c85cd498376c32b7e23e487e00a22ec008455a59c9f95a90656fa32bb067c8c38617372fff1550fb24f3d16510dac8fb186a4a6cb0ed1626ef35a7013ffbf11b51f7333ce6606d05a00fd676257269c358414828063288289c2630aea4159043a6473b02805781b7930a9473d3730491b3a6b0b9dfa1d22ba0f28f7b7fc0efd12276ebfa40c3d41ab3be9932fb2a9cc1c7407aaed20b5b706026cedc3e68ba79a459123370ca9d9bce72e5365c07861d2d1c1599c38fdf152ea41abdaf0e7b7a8421f902a62fc65c675d46d96ff538a6aa7b7f5d3d871b6072e304ab301ad41c6d01cf087f2d3e8e693651dcb6d1695906101fe0469e356ed148315ce78cfc3f1f8662c98829c8a3c612ea02cd36c8255edf17eec88e5b5ac10d35cf502d967a730d9b12803e4ae56e6e7dcfaefebf95644d6745fc83f7b1dff4024a23ddee4c0af28db4ae2da5a24a2f42c212214b61953b536dd210e11cbef9aeeac58f3b447a6f1e79121135776b200e5e2f966bcaf68f9e2c23b8e32a7b832187b3b61c5f63fb48d5a6d4f3c9e5325ded985f489c0f606e204e86b6ed25975fc92976d3f31271dc21f3f2042e474f0023b2724f5929b2ac288b9ca09ec3376839ee4891830959d0905624ef9490aae75002260233ca2002b68d5c883074e1c77f58c308bb22124c522504bf7ee2856e8a2b2feb1721f5b8d632a65c7fd09dbe5caf4d42c1e4fa4968ff21eb3ddfd68c727b3132c3bf6aed1a1ac82c2ea729819a599f6794b8aaa291e7e25ea777ee15c9240a411dc47fda8177da5b5968328a11497cfc8f00df3b5138bbdff3e7576786069448e7d5c99700871228bae813e265080f8353047a0162614c7315b8a96c6faa233d30b056ceece4008d1b30d05aafc59ef325ba695ef166441207d2e7fdb8d05584e6339c9f1403ad66e5281eea51c49c9a9288118e9a33c71b868c131d1ee382edf1ec22d5ffde4a50f58939774a1519e47402dd3b8bcc0922e75d47d703c28d6db5881c3da5fdb7d6b672b3181b29f44ff271a65ce76b75544175e1749b4e4ba0ec33a4a7dfcac9a32abd2a082a559fb52c6ab2ae93f38067cc3b459942f48e4d88bb5c358e7b5f41c377f7126a16cc34530eb0b26708711631e1b3c50afca81c358bbadad0654a237c95380b14a1f7be42be9e8c5113f00b385ddbe253980c6cfb4b0024aca15168007d2e651e4ded54b67bc8c42e9eb1cccaafa79fbefbbebf22f8339ffe81b2f9d29212a3d33f749058c4085df803c7cff0186bc7159284a7955395f3734783c297d2ab097fc5cc78c0258902004b592da798642928488a118d698879fa1da22661e07266f35e7e6c832696ee25c348a729a8a915e013a9bc1a6fa44d81c3cfcb4f89fd565a6ccdb91033227f8f693126c01e89b0a7070e7ba5e309b333b0cfb6aec8a5bd1fe2e001e3f44af9e285848707e747845f721e02f463ce5c88416b4eeeb20ca5e1c74e565d990c94fa8afa689992bd86a5a4f710922e99ba5d7d7d29d211cd5106abf46df3cc697bf36d1a1135a8d4b53bd84b8210b785fb50f8a9d52cdf741b1464354d87f0aa704883437b63118e7e3064768e83b43d08a4df522d3f1d83d41b299be61f6912c075e74493a1e5496502f1a7efd80959447287a72daf1fbcf29d71c9040a8d3e46d3aa642f879fbaa138737567eb5a6453c70ecf8c31e74763633e1315297a4b8698000fdf7af8fc5efaea5c609b71ee1af0ab131d45cac6b45400a52c8209a1fbd8621dc68afc9fcbeaa312cd9ca2110652e5e74489ffb3ed8b28ceb33a7803521ff1742ebe7daceea32fb1eb3b192e6f332213f2304a18a1f494f3854c502402bbc41ca0221bd37ded405a8628ad30f4e79971a120dde190eb375de48b483d016b4529af711c607a5e1fe3bea766f3b829e4db580a60ea4d50b350f7621c2415298fa82bf6ccca08b8d5b05d3e5ace0926276d2212e0146a703f7f1d645f54883268af380922abfb3af9b46713cfeeea9820daaafd60bc6eb82ddce5bf6037f750c9dc8c0060a845e2af5a7920a198109e9a5f98b1d068f99f3d393f1b1c5830cdda236eb07f914bf75396e9bff48963373ad4cff7b30d997849ddf6e7e241a1e07382cece108f3b167b2ebd61fb4199344d95d2591d37664bd1aa32e1aafc322aed4d8593965752bfee1ce709c7b683764c4242c34b25d3d68a601be852832b36683068b3eeaaa300754174d8098a3f515f8549efc8dbff356e5e40017100492b302c37485cb9f4198a5003d60c432c7cf8c236a60ca52246edc45c13625e2ee4f6f1f2af8548825a36bfa3c9c0ac1264cfb7cbb75c37b9aec5952b9326ea01f728015837a5795be7004738b32c0a3a39c12532226eed4cd230c7b1d2a0d39cd8453ac68bbdc0623d0b41abed2126ffa74b3e43ca0a10f37fa1e880907c9cc3001b3703cd5c467b734c98fe28f8aa561f34d28b76621e906bd9718b81cc0274af54d481156ab2ddb075b68a8c6876388a4e433d9d9e634114251768f4533394ef12778194687c635aa184bb33ad21781f129d32699a585998a5b626429faca4a89b642c874c30a212fe70a19371871a8e82f3ea61157b025efe7059660acdeec78e5de073599356a850d000f49b9ac4c9230ebadbc828bdc95721029cfb4f8822f2ccfa81b9a541becefe2fa7441ae7e7b00c62fb321651c907efc9156db4a3571a05c47b4b1591df0835b5e38b223d026dab60ae0ca830b655736384b5feaa5e1eae9345773a460fcbb0f3defc1dbe9e7eefdf2c096f8ea05b05c345555af53112e537e19c31534d0af19707554d8764b72d4f6bdedf5c26aa0939d10829fa76af57bee4328e3ddf14a0e1de94b15404db623a90aa5bad456c34891899c88f99474535f04cc9cb60731e0996db70bc90cf2f08f145e306901208f8c6b9051653ee76cc0c317970d95dff6cd821b100166996106fd18e1139cd530a6fe74432d6d836ecb2c70eba46e501a9e5c384704ca71a642d60ceee19b1b151b7e62503f503af548db3323b69d43b5598afe06dd2eed239c2e385d95eb0a9aaa2e7362c08c163c1762347aaac3a1797dc64edd119b17f38cbb89561f1d7902381129c86b6232b21ec30d293b341abe9d949d4aba410cde8616b7a0ae84c6c6d0d7101fcb0b768e83995f53f1931eccc2159c07fac3d0f78123e9f5b03cc408278c42a646dd034bdf97abe84010784bbfabfc056331666d4bb1036ea764978cc5ccbfb5fe1505c9659357dc35e2cd7714d3924251d508ce93d885c2e5ffb35afffed87a746973d0891b975417d9c6d34a0394ee16e7bfb022394ed41bfb046d0bfc38d7e062140c6e45a6da5d6406e0a937a64b3c6709c8c7119af43faa34088ac5c016f66e2ff83149de2480a60733cd83b21dd808a0837525eda44bc5a0a1482e2af3a22d59add130ef4c3db5615bfad6ae695b5d3024739c656024fff4b4a64c490b7dbd92b1b066a89b4e0e88c6f89c19be0808948cc0ad2f5e408b72020d0da2fdcd46977f5e1919d5e993336bcb839bc9b5bccf1c89b451e01b70a959d6835a2a2f08abc699b50f3224387d3912f57f548bdd3c9f9a8538a6c9fcbf3e4ed895eae9f1e94a959c103ac0a97c559c1e8da4fa4c839e26f891db671217d9f7d89afdf7130aba1e7aafcaa8f45cb9897ed51bfd89af0d76bcace30860d40241bb88c80690c933d9d618f202fe61b5960bb04b897a21ae0871ce704b47ab4d91c13ef6f04bb0f9bcff56b27c0b5975924d173285b16e5378e8816c760f9458cb049778a4d7819d40e89012a089048fe39574d512ca4d1d20176592b94b009c92e0aea208b125d0e4998051860ca5d4a91c74568410e80cd32face166ba431db10f19dd298c6bea361db13b8222ee572b43a33d9f4121c05ec39f5378c7003cd21d469f7ac8b690dd9b7aa1705373161540f6f2297d2543f71d1e4d9c3aff01af8760d4aeb5c411f2dc4e891e3f48721399ef0c7283bf510186131dbf06d777a9002eddf36ae573e66f09ae7efd4f2ced9f04f661d85dfe367835cc6311797cd43ef2a513d8d42a751c62522ec478add9e8966065be21031c90551df1c5198c38f0eb3f2c792d9ff43f6ec85e145150aa3d654a927db41019088a358486e70b3fad7b9481b98b3ea88c7f913f48300b522aa934380bf748f1344b42dfc68b945711c66dfa74b6fa46f2bc07c9a33618b959b55a60071ed0b3722693bf10589342ae92deb553c163ae0597fb72ef457f0e87b94f17f3b0a84b6243dd7768fa5930cdbdd9b28e9679695a8cd5c19331bfe8db202233a3278150fccbeeff1e94844ec47f57ef3c08b8edc23c2af7c01591c5ac3a53a8c716e4490da12f10d70ccc3280252a0786b17f2ac5ed9a32dbc35ff3fd37ac71afae8a48a093ac27a71f757b552b162549052717d5244aaadb07d01ecffd31ee5c7ebefa5f35ae73cf4a4eb04ce35c9e37afc6018df7d48a76d0dab3aa94585afff0e0b2cda89ccff11386ed169688b72b5f5705d41a10f986e03157927e709487fce535a09a6fd6ed610dbafb2cffb1b79d90d70f2bb3515fdc15eb990e7f1e0ee94f92ac4ecd2617362eb3baac1b8111dc2330c33f3a76414c9aa103fa781a440fb42a893582970db927d4dd55ebd6240a2af78ddd04d6cd4e3160aee36d1de51140a2dff915cb2ac0c5768410722fc84e202017f6af4124739f1825bd2a81e119d0cd80fc2a777b207a41c90aaaecbdf7be3c53424d4dfb22275b0024e9159150f5c01c5e07acaf7613c5f33e1873ac36774081cffc1082d2ec8357edc802e6c1f629f94c0044aca0fe62af2f19edcef49a7d82f16272c59ed850612972e2c8778dce2f1622242e81203c40a755190789d3115da7ff081904b2374082b846994c865b40582a2b11215204cb70dfc1331d598fe649240133c18621b030687f6790344a52350efeff67fa22baa95c894191a8ab0182ba1b03248f44e31bfc0100fa0868071e900977d132a5410f56f787066893e8511446bbd9af1671a8f200af8b215bc7c0e20cc62bb603968e2723d086ff3c1f30961212e4c04f8bc51a249b7270e196a03a56c026af43fa63830ec34e903300cc3300cc3300cb34c2076fc56bed91faf2999e49609012f1c23b29e0a9494529232a51473eb0220d8068084b046d6b43e019c0a500a080a68ef87e93cecd0e7fc1a4fc3cbf14fe560f0a8431f85d62ef520d364cad0a155423d9e9b72398ae77368a507194c939766395b1e7268a308cd7b2a2e2ae3ea1187366a9f7069f2a355b33ce0d0a8e6ff8c4976677d79bca155fac14fb57612fd1f37744a8955fe1e444e79cea30d8d98cbbaad2537be2ce8c1863e35c9d5af5b905a84a6e0b1865e78b652beabc3e39c6ae8376b7c0be39e73f692471a3aed66324625f59aae88864ebd5566e1e5d25a76f90cadd8a0b59c548b199acfabc3f8860b21b3aa0c8dd42e5ebb705a501f3cc8d0a8f6868ebd61be933a865e94500fd142954e0d8aa119edbf2d2e83879a1e86fe7c46a88cc945d52c058646c6e41a5b94d02d3ef785569aba4cad94c8c30b9de61c7f51babc5227198f2ef4820857a9c2c5dfce7b70a117a4baa03bcbdca8bf7a6ca1957ea619b2529a6ac9430b9d94b1dea9e3e68fcaf3c842ef22c4cc9a6a3958e8b4efeac60ed9e30abdef494fd9fd34538f157a9de99bb4ccf2e7ce12d201f0c2a30aadd8dc92362d52bfa8639e64713144444444fa10e0081e5468db74e6eccd8c627226491111419382c7147a41462d49f1a2ec2185467e43bcfecd2562a4a2d02af1e269ce3cb19d22bc1b7840a133253727a1e595f35a0bf2c0e309bd14a1c53cc5c513ab77c22bf56bade59b37a1f1182db7fed166a2954ce8b7539788f274d9a62451b361a3e40cfc81c7127a713242db434d85c72f071e4a688494e13bc8fc2f87075392d0af16155a7e519f569791d0a7d662739450da3b9647e8c5cd72f64fdff4c5d6f030423ba734b84e42fb945c91a8a10e3c8ad0e61c750b2e1f3e9e0caae141847e44c7ac5c469ad4d89d780ca14dd5d15c3b4b0aa1dd2437a7d477d1a57804a16fd157c49e8fc72c2b7900a11d25a59659f75c0793bf8d656d78fca051291e4c8cd4927841896f78f8a0dd53da79a5945ad462961af4a25fd94f93f974143a3729c98b36afced2a46e511294941312dd45bfab6387ae56193e289168186698a0a443176d0c9e2511a651b445975cb4efca94a70b325cf4a22ce9f1fd1bc637abe316bd7c6b0d5f1745a2766cd17e7e5daed4e7d4a32f2232860ac210110143472dda28d5fb37cf78a8ba246a69380ada0a3a68d18feccbf036a92b5e25513be33fe5cca2f370aa6557d3d72ca7f1262608c30c13a4e12af80008be04c58cbc95451fe275d4b22cbc9c63fa14b761df023244440ebf8d944a4cd2061db16883d012f15a6cff98913739b1f3800d1b7e2365c980c108093a60d168f71d17b2752623f68a56aeaf8a8f195d3e3f1190a4b80848529c448c30c6284118628421820e57f4720bcaa3e716635d295bd1e8e688cc527f7acba3931c232ee86045f3f24757b6fc19a71aaf4c4ad850f28cc5a06315fdbfd2ae59c3c6975d68e236ca787542c6be3a31394a060c46b04315bd4739d2d467c3fa8649d44cdc068ea444e0838e54742e0b225308f59c91ab49072a3a0ff7f477f57f9d321da76863962d1d640891d9e93045e7497bbf4a5706a2a314cd0bb16baa323dcaa811a18314add4dd2ef6ea959de519452ffb1b3f9fa648f4d8b10e51b4e6df6f62b5b0590a3fc71a49cf64042928688891f239d6f8003fa12314950e503ca0e313617478420c0c7474c27470e26499948c6c421317e8c844af834bb2bc656f51478b890a745c822fe5d13bf7e796e8dbf5ef88bb8af824abc448090e0f9431810e4a44a0631212e890447f52ae97a8a779eb7fc4648ddc48f134461e3112296bfc19296b7c0928d00109943f03e5240d0a743ca29562b338971142c69779939274e364394b478c60a0a3118c68e5bfa8324ad91efde145f433a7d9fedb3af8788a984047221ed08188b65c35863d21aab33803a2e3102310e83084033a0ad12b997596165a3061c245444444240a1d84e84d66cd4c3a89b77069c7209a3fa54a7c3d66d134d4218856e64875f99d3b02d1eb76195d298fa6251b03a20dbdadfc472a828e3f74a644f33783bb2c6913caa3a960fdd0e910d3112a2f76120eb41c28276574f4a11f3d2575d2f8f18239965743071f5a2d7370d15d0697c5e6f20ca2630ffd49fdbe2f9efeddd293a899d48343a0230f6d66d2929767ff73860e3c343a85b94857a144b3ccb1161cc38188c808504a468ee100514a4670a49c8e3b8c80d16187c6d3c46a162efb68492751b3e1237a385ea9d151070674d0a1914907d52974552bf7eca1630eadfce822cb4b7e736374e89043bbaf4fc8d0d60f7d793b74c441011d70f0e87843af6495663dad41a3ff1d6e18a940471b16d0c186110674aca1ef286474d3b1ef8228a9a117f13a6e18f1725ed199f892928646689d97420a215acc2634b4a1e1caf547072f1d3b432fe99ca986cf182953666873d2524cdef44bbab465e8e514df767163d442647490a1179e4b09df0faba7aa8e31f4224b75b3bf9259f1c4d07acea05b520b5a33f9c6cee80843efadd24cb46c90fe2a30b4fd9b5ae9d5ae4746ef0b8deb95d925ad4934e693179afd9cb5e8e8bf7b3277a1d5fdf8b27cf92c779c3ab8d07f74771967ca84d28b888ca4a43cca8e2c4a49c18e2d747e5a56cb46b27720e8d042f3592ef72793fb9d62165a99d917f76f41aad43bb0d04bdaa56b39658ee9cc92a875a0e30aadfe9847acee9339af153a19452bf1b2b4ac6396055bd0518566e43b5f8f4b97bae5ef58d041855eccd244aa8be2c5f72c14c771724da1d90dbe5148655a3c29d521853e697f2b0feff2893cd1be230abd66164c7f94cb1e75550393131b9b820e28b4529856a93fc70e538d3f27e878423f2f8bf6d16d8d7abd1b25cb2b2734ebe287c6243ebe5c494a090e90063a9ad0b8eb9ce6094dd0c184b695f6fdd3a82e5abe90a89de1378ca18e25f4aa77b5d6b2a0353dcb8282374181191d4a68d5c3cbcab3b8c245e125a10d3e32684cfab3183b0a09cde7ecfca79427df4c8fd046d3dff1928e2eb5f290a89ddde057c0db6184d65c94ed2f655d7bde8bd09aaccb6242cb9dd37d22f42bd67c74b91e57253384ce75d442c76cc105915a247408a1ffb82bf342cb603e6b47109a4d75b1fb5c92dd6492a81da231822c071a37c218430561740081d7a6dca51c1d23514b1974fca033f34ef997a2e5f0b1c3078d7099b40ed94aaf16a468265ff4a215237f5bf2f9d4d2a25250bc8c335eb4f153dc8316f4246a26236b9878eea251a17410b2b9a48e56cf74d1ee8b9ac40539dbda8596e48b5cf4a942c913cf5254b5d817b8684c8ee7a875164e6946d42859671cf8e2166d9f0c9f3d0759255f27c516adeca85f482de467793ca716ad7019b685bb98f78d91a83279ed2f68d197c8acb1a48e5adcc5b368fcc7e528f5b96ea02cdadff032b9acc594f65c2c7a793529fda9aa32430e8b665db5522e67654a48a557f4275a8f10bf7aa3271957345274458590b956f4332335fab6ca8a3646ebce3288cd51afb78a66753eb9a69ba13bb3a8a23121656a4e21b63cbc52d1ead94cfda051a3ca7e052222af4444c880c1481a5fa0a295cd24b5887297a577123593131b27cbc8a6e08b53f4493c275126a31164afee0b53b4e3b95a84c6d0bca6a0380e15f8ab4044a4149d78dd314bbe5ad3a386e73059232511ca2f48d1e8d9245565c76771e5246a252367fce3501580c0eed595f1c528dacf9945e1313f288d7112b5b316d8585e8de048e10e2d7c218a3ecb629e965992d318e750b41ae36beb76bf201afb0214084da4dfa4a58cad65af0baf7532bff8c44113f104a289f8179de845c69b16a3c9139de7e1441fde3e68c54de8203e6b597ea9d38b7e5d4ee6524bba0f5e34eac9c4bfa851e395c90844444444523cf0b18b76b4c8d09b3367b1598b2edaf0e2ea52367bf6ac76bcf8c845e7399acf894da9f426ef40f0818b7666f563d0aad2659c246a6938868f5bb4f9e26f3419cd7c356e1ef8b0459fad62b51ce219ba5bc4f81214330c9e008ef0518b4e64653cf5cb597e919ee4407b7542c6d90f5ab41de465efa02d65376666d147cf8236977ff794d3872cfafdec92d62dfc3dfa1e8bbebd25ad5cca9571b935b0e8646c8c9975f3ee4b3a26699ca8e0e315fdc7985dc5cbd1a530992bdad82b37c6172e57828f5634ebb21c545dc78c3f58d1cc7a299d0f79faa12251b3e187ab683b33cba7318b1a6744b3fc5045a353cb578788f3788d13941c29af34157dcc79dfa4b86cba3ee10315bdd0d49f754c7ab34c5a87e4e314bdd6fae921a3ee7e2ed52859a6e855a6ca2f2dbb7b95598a566e962535d931af564a73c41843056140e28314bdbe1c8396e5184eb9e41a85415fec52dd363f44d1f7ce8b06ed8cfa08451b22b4fc3185584d6d4139193922f800452f274f5ade54a541658b868d8f4f74e69b252d661429e3c713edc93df553f9a23ecf7c74a27733adb5bb373487538c0f4ef4a2ccae5df628b489369b679975b38c870f69a2effcad1ed7b3ce2c74996864347ed0923d3325c56be428b151924a6cd8f031ccd270940d7c60a29352a994a92f328e8c3dca3133d27015d8a5e12826f8b844df29b39478586f490991a4384992a438890d3e2cd1c78c2f4773348b6bf8a844af450819474a97db2ec7c6c98852a2175e546acda8f5ca8d88480e346ed4e06312edb92057c62bdd512a44a2c692e8e5f8154aa8bc097d2989da488e8f48f4323288cd318bda59deee0312adbad43ca7cf3c680f9aa47182f0117d0e1e46e9ec596290a4b808d6118dd4654297127f42b72c1f8de8c5ff76fb66f9f566583282820f4674c23febe4ede5b25b8e16d1bcb62ca1397a5875a5227a51cde41d724f44af75345b27172df98f88e8bb35c9921df92d76f4108dd232e88f2366f2f46688dee3cb9e8c14edac55883e4c472daf99dce4324c88deff65b72856293f1937c6069196b5342153576fec43106d68e9a7b53ca63a640ea91332ccf547203a153ae91d99dbfd736ed307201ae92a47c7ecf9bb399ae01887e0e30fcd9cce8bab336a5a74f9f043a3f93d3acb761dd3d6b9c18360f916d83d1a377835b23c0eb88c8f3ef4b205a93a6309712d567ce8dc4d6f68ee2cbba8d93df462871663903959b25f3df431c8536d1e5e3ec77ce4a15f1f2df8490d6a6a5a0c1e1a577285682df90e7d36d1f4a8753ecba6b543dfae2b5ed0903fead0be8b318a93f9cf9246d1a1131ddf92f897f325286698e0630e9d165d14fe594572e87496f1c5e059bccc2943a2baf91187be57e6d2f82e46eb5a8292c364e0030ecdb676b61c352de92cbda1d75a6f3e13ae514f6b6e6843cd3d987ccdee1393f0d1865e664fadfbff94a7bb52f8604323f5becb39aae71fdd9da4989c2c6679bc865e5c525a4da3c878945243bf5a102933a3965c943a6968dee499362d5c79ea090dad9b482d4a937c8656673cef91e17d98a1d5ec282fb9d092d86f3fcad0c8a85d4913fee235683ec8d09bd0d3f2c71cdbbfe17f8ca1d10f3d7fe14ad6e51743ab4264bb96c53ec2d0e8a09da12e6860e86352d94a9c3c654ae87c7ca117b5cfe6d8f3f795621a7c78a113a5ddd9336659e8f074a117f39d577eb3fbcbc25c685c1619dec447a4b8cec7169af1d24a974b625bfefe430beda99812dea9794c8c43f8c842b36e424bc2e76379e63fb0d0c7963db7a051a97cf549d43e8789d7e00a6dd2faa4f470d94f6a7cf0618536ec6ffc8db194528546a616a99fccb529f34b6c7c8e1212b4207c50a1d3a5ae51bcd6fcdce6c7141a59aea5921d3ae49b4cd0381951fe281f52685d50da7b5ef856f59f442d75f011856673c91c5a16bcc465ac018ab20f28b442b3e09ed977b48ba3248df3f1844666d59d4d6f38f9424de34d1ec5700a1f4e68468e891784878f5d5a4de8959cd7231edae473644227fbf12d9bcca174f46309ed079da37b76a6ce82f29cf0a1847ea59ce937d919afbab91b1f49e84ddd4cb7382f6736b750f840429b3fa54ca2e5f0ea4a3e429b5fd2a0b46f39d03801133e8cd0e80f339774d0516ef87c14a1d3552e29d9f2c713fda26bc207115af73ddd4ae613d7827262ec66f031845eeb4d25a26389d328fa10422fcde5a58ed995cb5bca71728282858f20f4823e7dde1e4774c90c62326030721f40e8b5a45cccb275ac5c293777b24c46c0468c8f1ff4e1c28e66c94789f5f0c307bd164b868db2a414df722f7ae135737e3ef395bbf1a2152d6869e926336578176d96c58a5dcf9266d5cd2f6e03872e7a615e10d9a54a29f1d15c34bab3e479ffc9a03dc545afad74cee2aa284daa43a23672e30465e528b95162035d5a0e351e61e0718bc6f33f5f8ba3399ae8a02dfaf821338ea7d07ccf7ad4a2d351d5528ccb1e7d9e072dfacfc29ccca5e13c66368b46cbcc7d615d48d46cd828394316bde4aaf478fc50d172160e1eb168b4696b1da5b95382072c5a9d4c6a292ba47099cde52368666c0f1eafe8e5489562fe3335844a0d1eae685c636849a185a8d21a7f8649b6a253114a9846d72e67fcac685fc6fc8c13f7aca211dea27f5ce5c227f05045a3517c64c754325a96c354744a8ecaa48389d4061ea8e8b3fe90c2450d234c8b6b093c4ed166e12237b869cc723e290f53b4d93bc346a945ebf0a798a1b54729da20dcccb318cbe37727c7d7e04b50cc204523bf350be37234544b25258251f4524fee6b7136338b19cbe1218adef489d79acd25081ea1e84de95caa852ced61446cf00045eb71b7a3ebbc0bdaf2f8441ffd536370d73f22bc35237878a2132f3fc90c6d8d9ba34e74a2b7d5dc84ba244ccb19103c38d1095525c5aa9241e8ce42a286f223c7686e139d16175b367d97b4d23a231e9ae8fb555c79969b3bdb814726facf2fe8a072747a5019a263b5f7c044ff3a8c5c7122f529e6be244709123c2ed10817758cd541849031f9ca129d099d265a5734eb0cc2307854a215aeb3be0c5aafd6fa43a2a64a46d648232338523e90438d1611c9a1c65bc183128dba68e1196314ef529b44a76b529e0ba61e93040f4934e225730fad842eade49168e7339bd419db5a6ce185c003127d76b94fcbbc5ade109b47b452c69bd4620e71d6c0c311bd7231782e31f3928cda8836534f89114275a76cdee0c188de25d7d96d7af258449b2fe4b5aa6cd9e52052449f1e4e27d15a7aa5983c12d178965da3976c17f3b48cf04044af5dc81229548609c26883c7215a316df2c289b7965f45a2268266f03044a35eda5349f790a94485e845fcc5115ace93105a3c08d10857f12ca7e2e37986443d06d178522e55cbe6e45a5c3c04d1e8d0f02db6a0a2128f40b44afe5d18b15a1c7d5a88e20188c65fd0976590235d634301143cfed0ef7a6657d9ec496cce0fadca10d3a36599992d49d446504e46d270146424f0e843ab434a193a8ef6f54d518c191f5a4fde4a875c1923bbf11e7a5955eae0ba4a47d5d708ca490edf3323f0d0433fba95f0cd3287d14945810a443cf2d087687751a550265226f1d0cbd562fedc79e40ad9ccd8e30e9d760236464e4c26d1cb4ba9c57d75495ceb25d127d35e26e342ebd2e291e84fa4aa122ec92f1d3548b441870f524e8b9e21741ed1f7e6e4d2536917740ad111ed7e9c923a75d688464a156f79478bd1f9614427264cec0bfa5402b2887ea3ccb1a7330ca2883ebb646a2a756ea14527116d0b7a5ec9585ddd302d144010d106f32caf85d33b2345904334635ab590a742121043b4f95564ce332fb916d3cbc04234d284f894e9caf4750c84109d9cceb95cee9c41f43a6b3ff170dd403919e306cac9e2130388203aa58410e59a1a45992e039040344ab99c93d49e63b82806441b4e7974735f7d2d757fe825692ae5851c97739001f143afe3bbc96ff9a7956f7de84b0699abb7f4e80e1e3880f0a1973f876c154d1aa48e5240f6d06a97782d2e3eddb3540f8d4ba273d6b2deac01c9431f45887a8e6302c143ff9236616eee32c808efd0c99754667eecf6d4b23d80d8a153a54469d68d1e36e640ead0e60ea385c89ecccc591640e8d0a6b6ece2cb713c43447773e8b4cce6d4beb245b941460e9d3829b596fa052daec8e3d087d4427c9b74018143f3f35fde92cc535a902e01e40dbd1c4ce8585a89188f0fc40dad8ef2b26f9ed372fe541bfa4c17b4b81957e9d2fa1d081b1a51d76e55e6b39eba35f42f9fcea8b620446e49a2866000a286568bcc5ac797b5cc173c98865ec6cba25e19b63240d0d0afc6f19cdab15f10269ea137ffec97ff5a90fbe163865ef78b6f8c32b44eae2c43a7737233297d103274a262e489f81e2d4c7b03640cadced9556b793f65ccb2187a713c5da5cacf6bfa14863606ad7546171a64b4090cbd54e2b49bbcacc385ee0b8dd6916a5e2ebea0b4a506102f344a955ecffd5a167d65bad09acecf46b12dcbad74b8d00b4ac828a3a5d7c3847e00d942a771b390a9b5687ae4d5421b7b3c9ae7161e64aed20092857e35c80c2b426ab640b0d0fba80bdbf9c26b516b815ca1f90e2f572984521a47b642739a84b6e9301ef3a973aad0beac5a7566a9b9c5d3b2020815da97795ad2297c3dca17069029f4f15bc98fb9e849b6e50b2052e8c4055f53beba1a540a310aadf77616aadd2f7ae840a1d372fe79984df9a94f204fe85446ddba635c6c9d7c4427f4a93decb9928dadbcbf036942ef626c61ce3d856c006142eb2e6611dfd3f1a13d4a005942e35aabeee0d9f4838ef10c204ae893925afcab740149429f346ad642f3282575048284be65c86b2d9f944abb0be408adec4fe1a5fa6456520562844e83cc2befa29663e7fc9c22f4e9aab32008111a9d75eb98e530212f7a9021f49fa7cbf39e0879cd8008a1119af57c6878d54a7390164082d0b7f629ef7f190408fdab46f98ce1bda566417ed0798cfd306f1dd5640a15203ee885f51d5f9d2d6acfb2547ad129213dc8ef4e8517bdf05dee792265336b5576d1e80aa5dfc388cace4b4517cd6a96f3aa47eb9215e7a27379263d7c952ab8683ea4a8ce42b4f8d1dda291d94bbb7b7ceccb6a8bbe83fe092da54bb2757806708b4a2d3a337577555a09dd2854a145df3256c751d9dd3832b36833cbc153fca80b9d3f880e1559b4e6728610e1a7a243afc4a215db416921b4f8d2b2ac028bf6a516575be8bae913565ed1ffca3c5adb431557f432aa65cf6639e6a6a9d28a5ec9fb686b31e9efffdcb1a2fdccdf1a3ab5bad0f46e156dcbade639a6b41c3b7aa78a3634a8e8f3173d68b84c182aa9e85dc91f0d2ec8ac9f16c9504145a705ad95fa46cd11f3413c457f1e5be6597d219aa2d5a9a25fc99645a9f5432c45af4accb398434f77a9428a36e89c94a9ead03126af328a56659b9807779da3ceaa88a20f59f239471f2d4e59094563425b8ed4a547c4f70a28fa5511263ae39e8b33aa7ca2cfc9bba3d6aeb5d0912b9ee8e794abd6a43d4e3da8138db896c578d472963486112b9c684e8a4eee528716f5c56ca297e518a596a38bd144af51e7ba5c224a6837136d0c26cdb414d5d9b962a2cd2c2d7db17b73d2b14b342a576a59c89b0b57254bf492aed2ca65398c5495a954a2ed2cbc52a9e54fa972a444e342f4e5542fdd2dc3ca24fa4d993529efa85995ab2289fef385e6cb64241acf2cb2a9a3d4aade02895e4cc72c45a968ddb93da27ff9c57e7fd72d8a3c39a2d7b9a59c4d33bd71d5bb4a239426baa4bf7cb2c2885e7d8516640bb3f1bd5516d18b7459741d9458f141e5878a225a8daea673a9eb9f5d93504944e77268b159f49e15a35510d1e7cc9a63f4cc51b764aa1ca217648a78551aea19d28a21da2457c6e8f0b22a791deba052883674925ab7d862ceae7508d1bccb72965b16a7575e3888466791aafa2563e43d4134ae49946aa6502db94b20dad4e1524a7f6d97a1ad00a24f328f76598472a9b5963f344aca8bf243736ef252c3ca0dee5adb875654e874515f6cf5a84a3e74a62946a3121b1aba2751d3bd3db45167d3615a75d42994bd41450f6d7f8fd614e9e24999a9e4a1174573501173bdd183153cb4f2c59c7a37c568a1f5ca1d1a35b1328b2dbfaca4ec8250b1439b3f3ffe726f5ed741e80c953a34a27a4a693f117b3a4a874eae08d7d62e79e25099431f7fa556d56526937a14ad2287d6a4d48ea9b1fa615b2a71e8bc5d16472aad4a85bf77a8c0a1d7a2cbb965eb7f4126d3869ba0e8bda1158fda55bbd849cbd1191537f4ab95dc1d131d7c778546a50d8dce2bbada7f9490afc486f6c4ca4f1d2fcf62d09254d6d0b72ceb9c5cc968dde0ef068d868a1a1a315a5b968496ff0513eb19fe2ed034f4ef49dfc36897656aacfcc4469ea08286beb5e626a96bc27470e14063e48c93131b6b2908430cb6ca197acd151f5f8ec91867153334524d5d32dd723de457865e7e595b5c91498bea520cc38c108cb1c6970047850c7dee29ad5a5adfbbbf31f449b3d631e55162e8c50d975bd0d385a1ef951f261b32ebe7c66b1a1530b4dda28c1d4fb3bc32b998a1f2855ebb205a5e63634bb68a171a8f51d159d14d2694952ef4bbaea1e4e6396d970d47f91b4f82a3d1b8d0790b5ac5c86b97d4a654b6d06c6c6e8d71b468396ace56b4d0cb29b7bb745b9451498da4b8b1140f8811c60740a07e711c2b58e34bc0834a165ad1c26619b33d152cb4e52df47f66b9ac65874447504e2251b94227d48416a48b2e771eb1a1344954acd0f89eefc78e41eb721d33894a153af7d2826867cd42c79d446d0c152ab41fe447359654325b4ba5bc3a31394b54a6d097683eedd1ddd2a48a442d73a08102117c098a191529b4dbb2a4da73907ac5aa246a765aa844a12d1de31d37831528b43a675966c165ce6b722ba93ca193f3951bc4fc09993b4e688452d3e1a16ba509ad7f9febcaa8c1cfe70a13dad82fce739bce41b6ab2ca153d1a9afc947b4ec5a51425ba2646ba9f8d33a65246a222208f1a19284be55489d23b33cb2735441422375ec1452ef7fd0f892a072845ec7ea99121754dd57152334fab25c1efd6496c7e7af14a1d75298d63842b66b9b44e885edf2511a26d364a83284de536a17a9456ecee85684d0ce86cc5992512e5b96952034db51c9134246355d88446d8c0a105a19c46541c7ea102e3a0a2a3f6844491512a31217b0cbc05906f0cc4d60a935697f6b81091811a422168125470a1a280508c01a29031e014841f9050d75828223011c4829c1e11e013803000200800c6c0007201f00404a4a122180003c872b910204c073b83a411139000006d08004a0fc198be7481919010140001470001c37ccd026f1a0abb5a8747d1c379632b427bc3dff66cba32e92e100608ca1cfac1bb54793def81b9a6088610d1c4b18da132deb5ea9239b3d22515b03c772e36fe48dbf81c0000396e4502737be8025397050a2d018194900185ee883afce9d2d7fd41d4312dd3334ce6e3cca080e4ad4885a1e470a5b0e93124c3129c961a3048c2ee00802c0e00296e4402149b13132920030b68025396c90a4f8c84802c0d0428e4fb9f1370c004616da4ce9db27d685e91f0c2cf42f5b1675bf9c3805c7c988d9001857e825d562ca4f422b212be3e04fc98d1393356c9c94f13fc65eca186058a1fd1c57a36f6aa5a2f555683fc36af414a29e9da442ab2be379d45916bbc33585d66484dcb032ea89098121855ee6a454a7761e8c28b4a2849a67bd331850683d68d32ee678e59afb13fa8e528a4b3a7bf4d825184ee83dce63891727839bdc844ef8c993b31ab3d28c097dbb206596436f0e9fcf25b473a23fbf1c33fadfa58436b6ff64a92909bd122926d385979e5a0b129a934d13af5f95762a8fd07e799beea82b23f43af87a6752faaa6f16a1552ecbc8902f4b3a0939115a2d96d0a2698daaa58e0fa18d177590101aede7a74346f92fcc29088d96279b49537b4f0b0161f79848f32a56e77e739dc5e82c307ed0ea4f9d34cba0328c6a81e1834e6a19d13a2615d9ff662fda74edd41e735d7c252251fb33dc8c105ef4fa4a85792bd58fc2905df42d7f16a3590ea51dafb3105df4d95f54fa5f87a76769482e5aadd3b4a40ce579b5741221b868b465f428326bf1516cb7684bb6187d7eaa5f6e1d5b3423376bffd231b769c1736ad17ee78eaf64c7efe6d56942082d3affd5f93bcbac59b46232e4cb496368a94ab2e825195208393b32b3cb8a45df63e27b56e9a628132c3a8dfe1b64c3854aa17a452f688ba67a43e68acef574ce598d193fcfade8a30b993b56e82c8b4acb8a5eb7ea345dd9ace9e62a9a0d25e693988dd95bcb640d55f41db5d49d95596827532adaf8d94cfa768648cfa610828a46778c8c51b6cacdcde613424ed178872993555a37b31885105334524bcbcacfed21d52b459f4fcdfba4929d2d5e4248d1c9c7e99b6e595dd522868ca2d5a2de5f4d17a4ee9c88a2e844cb3a4bdda3158a3e68d916ba59102228da1894870821425e920ff1139d7639e64931c24dcc86e889ce85cbe2472da46a7e87d8893ebc4c32eba3943e9de3447f5aebecb2ac235d4cc24df42dfe37557787a889e65373e8ccbe0c324b2266a2cf973b67c163d6979e43210413bd52ba263d44483d9b74894e6941ae88d559e55f36c4127d940f95adc346d7f32d21a412adbbb0eaadc4c3ffb94e174228d17f9eb91c56b618a7e4c8844ca24d623acb48e1e185fb9268de05f9820b1d5b5be8dc8544a259a95bbe56d959c33b2b8440a26db95f12fb265e265a218f307816fd5745378ee837ca876d49e61f8434a2198d9ba4d0d2d4b1c41e8430a295a3cb34e7f032b3700111b2085c77e6b0bffa3d1c5c88229a13af673fe308edfd862422b92d3a534b9d8720a2f1d7172e731ea3538a3ce0218768b56949312ae61043741a84123717a485e89472f945dd6a2a36ea09d1eb90ef628ce7ddd32893139435a264840ca2d54169cabf6c390a755941342e54cc88d19b5cd67a0d4423ca05d12eebd7ce4f25205affffac1d73b88a77e80f7d668f09253a2eac9b8e1f3a2d0b7f79a51b6e42847d68339a9a9059cc1e373fc887e605f9653edfae5fb9f6d0cb319fb532b9b9f3327a6853648be54ae67c41694e481efa9871543f690de2a1d17e931926c5cb399bc33bf441e918ce4477d693fa103bf49a39bca8d45f463d87d4a115dff372f2a815428746c5446ae1e5f124c2143287c684e789c6cc3a86ca246a2925c84c19217268e5889e9551e3978a9049481c1af12b8347a97154b82b040e8d77ce209f84e816f1b284bca1cd115a68d6b9f3851965baa18d7933b43c732ea40d7df6c6c80d7b1e5a9486b0a19d17de6263d2fe395c43a332a79462b6d3c5f9500b216ae837666cc1b7f40977244de0810fa0c00421484c43ab59d2feda3bccc6900a41432fb666f1b339f907d9869ca14f2252a94e2e7533f6344ec4101149e3040525082166e8359b16224de458082943e3e1da394dbcd872a42164685c778775315ad070791c38d01843ef7ab3a30bdd9c5576232347b2a0f8a7a41a42c4d06ff6fb08ddfdba3c64c3811012865e3e4f725e561ae61dd34108185a79e23a62655d3eefbfd08f0b72f5bee7cffa8222226d08f142a3de829716cf8e580e42bad06f26f92cdd64d456a5102eb4d14c698e5ce15d5a2c25640b9de6299121ba3cb77848d402215ae83dc669544acb92f6a025240b7dcca022dcf565f0fcc406167a9f9d7d93f19469872708b942bf9fd3e37dbe94d2a463566883dc7d2d0bf1dafa9f2af492fe78729430fd8d5d0a15fa98a4ebf391621ada4da12d313ae683ce98a2742934ca25e5a2f14aa7c69c178444a12f69a2b53c14dad88296b37916b1fa3f4fe8f59ae8865697b2abcd20c409cd6ad920a56bd4ae05214de8f4ba0ba1e5312d8cfed4cc086142dbfdba7fa374792eaf294b68b4b590fb26647849cb4ae8c524b57efc53ba202409ad472dab8596b4b859c94868b7633fcaab708c9023b4da7368066da2d58488042146e865ea152edec9fdef9022345a9658139b255fcc3184088d10d3f0a24bcafea4afb1206408cdeb9c938cfdfd4a731742e3fd7e22b2e4cacf5a4282d00a21a370c9c5380a4280d06accd1f7930ea6c5fc412108f981a2153914e28346cabb309df5c7dd2c5d2379bde8b4164d9856edf3a2dd329da3651d36bb9477d168d9a1cf5fe975d1c8d62e8f901da9b318ca45df316717b34bf2275c8b8bbe579b9a9411f275cfab3e0820b768fe5777092965ab7cc6169d3ed961fa596b7d524a44c453d4f2a80720b5e8bb77830ed25b8bd1315a34427a4ba132e2a5c818c82c7ab94fcb9a56fe51c7670520b26893965bee1c5bf34c9cb1685746c7184f653e552622028b5ec7f653e22f27e52d4ea22220af683ca8f857993fcb410b22515b273f82726220ae685bcea2e3de3a478d2741016945ab73922d5de716a49bec021056b4396b73159dd492122d966ae6a03f882a7af1272fb9f89d5c450b928a763f8fd69d592a8f31064145ab3d3cbf2464ffafa64c4e524800728ac654366ea81462da3b88297acf264c6750223da5685c906632c575bce008c8880208297a15f11a3ec88ca2cf4ae74f55528b32d9021145ebc9ff052de31b8084a2ef3d25cae7a567cf16285a1da5d6627468b195de7701f944ab275a6c996849ffbb487278192222243972388827fae05143feaad2faf7ec44a3bb0553327f57a48c4a4038d1caefb8427faece26a32226209be865c943fe8c78eb1017899a794a4a490e13bfb189c61a2848060c463a00a289ce4db830adbabd93f64032d19afc3cffb9a576932211111191c4018260a2dfd48ce1fa856fd172705ca293dd70d9fafc57356c89f6c3876999ce2ad1e6a8fb9b59a7de75414af449738ede38718c5ca8d43006f3601c0c868281400cc2301cd6bb400073120800202c1c8e064402a15054a61f14000452422a48422a2c3020160ac623a1382c10060261602010c3401443410c06623c48c464039f4c69829a3886742b11a5dc5ce8e2335e93f88f556a290615b07e2566e54f5ec9eddc6f0be29645b1ed82cf82ca70704fb020c104ac903840aac14b1cc43fadbcff3ded33fcfffbc38f7782313377b1f69c11cd8c300ed0ad986986e3d763d609583fb0c91b539685ba70f59a85e38261f95089f3cd9490bc930cf45fde6c17963b3bd6f991186b1feab83b8b64913c16f2e2c8371a7b381e7e4861a5d82c675920be1c140f95fff30e895cbf774dc517544153c37406a9991f94bcfa8beb0a16baa20b0c576829285adc592f259a1d3f0daa2368a068735cf0da8a8f9188fea0c1bfeb7e0abe873766d99971b869e0ac3efdc79e734dcac54cc32b4802a24cbec9adeb1510816055769479ac7a05686d8b64000763a5986e08aaed2cb7b7fc03ffed796038e8929cb0218bd77d23a03be15c4390e743c52b4fed45b128c9f793bb2136a163788ebb2d6a4778829dc102cbf00252aa3e103e2826902de0d581083578f993a38906461bb598de5558238a3f1c442558dcef3008b7966dc996730aec782c5b8d846d74bfd1ae98fed1f361cdf3e96a84b84648898f67a28d3211be72ea3e9d723e24f301280a2f8db78b60de1f4d863ebedd24b3b513989e6c30c5b66a59ff40324084b565de384aef5a5b30e95bcd1006e39b2f584b9d8f8b274cebc0333a7e0a067d8180814f28df581d5fcfad71814ca6f9c1736f936d4b9e37294ca2af72c69e7ca4f2244edbe72440fe9974544c699e003c9f0000f31b3b68c4679f42acbeba595f36418174b70bd077d8508a7034ef01ed7c3ebcaab138e9eb81d2a1b022f527a3681305193e759cc0379c2956946d56d1ca4be0306f5b83228234d3dbdd70d62e7cb9dadbc22516c79249490cb096ec017ed6875e71765d2af481b6dde3aed0d086dee0f3a623aac08829c1766af5e7f3fab815b28fbab098d297a22eadcf19c8260264cf25e6a6544691f0f32937ab3dbd29b766cb9f849e5249ae5f5cf72a1b9f72238546d7bc85d009fdc86b2c3fab0e5ad485381596ec04db80a83380a6cf6e382eead11f093aa0315a066cd89ecb0130cc8daeb14bddfdf9252ed7088aa59eb99af4c3d77d7778ce0e9e635d8fdb9743fecc98a4ddd28a99b036aa087e442c485eb391a8463c15aef75e0aea506f05ebcc4f617ad85b61769de823fe3f9dc65c5691ab5b321b5f431ea9d78a0d7f9166312bc81a0c6eadaa1c31e42b80c1a1c8337164c2f165a409b472ae278e7672496b3f4cd913c100d3e30b8ab3de3106c5f166879ddc4ae360b95d11317e1e73b8a7c880c3ca6c111778adaae8c18b17ee0c87e34a96111b267257b72b95e761028a1f15797ba1cbe6f38c817f7ca0bf8e8d3ed2975b839762d55d549705bdb54ff9f695728b98549953075449e7b65f5c66a7441ca0d9bc1ab5a005ecf70aa64e368340972ca156be1e95bf1d389971329dadb25ecd4fdfd3b19556d9f9367a257d9a591920e0917aa57e01c7d902fd5cfa7412bc93b924e74bdf191d83e419b4a585395578c551a685c678df282ed42c7156755b7cea3ebf486ce46df105757da0eada021211f3081ef26cf844d3f9e971217e6b452e794ed635ddd644327d1e718e500dabf7a280358ccf3061d99ab82dddbe5519501d98c3ac05cc1592826b158d864edbd3f4f753accb956ae46e583d1f5ba52f37f34c833147812e1ff106fa7cf206c8134347fa028501cb25713a2f3790f73f214e4f324c1a39bc5082b683369402215bbb2cdb5f516b207aeba211c38d7cdbd7ddee180af6be3002bdc3342bc2958880685c938660a36ae0c185b912bd83516c17e778b2f1b1bd0a00865be8f8c908d6cfcab9337c6511029d6a9cd294c506101d425ef63b65022d638e2606015d955aaadbcab202e4b75eb4a0a10542cb08a004f9c096e211fe2aa2592a1991826ec70c180f6c2ceea51bf7673888b6f49afa1c0f4c764567efb93996bd74f4d0dabfb1cc82672d9c3135ffd55551947691fceeafe889c8346ea040a6df112e130aa5858da0890495d42de5a070cfb4f1ebc68609aa30a1a383e62a92d0103ef51372b9fbae33133461b1efb72ef1959026ecf81d8e3fec517274f1523391084365eccd24d4928ca9f9e2411f00459a9e2f95c766aa4127fe7d8272ede5cda022efcfbd30d48f2b36cc16cde570feb6ed9020773585574e7ba0a01d369e626061ecafa916629972d84646691aefbdd8dd6643c73e225decd41d0c1a16766dbcd66163acadba48cc80f7632c5f99a2564410880f794e6c53915fecc290c5f46227f9e56fc715f12b3b79ade94c49fbdb35d2b53b72962b483d1f651b805df0c7e50b4bd870e54217361917aec66a948529b08159172e0f8e03ac5477a8113d8165d2624410007b6dedc1274f9e6133913e84e9c6f3f8a6da997046816172f064f959db56f0e66e30c45fa823c9b5d5c4b5a68970d59c4a6d3f253a58024d99300751dd267c0893c472bc06730cb9cd54971b1428f6f7f74dafdce04e83d4dc06e6fb938549c250cdcbb61e7388c443beea464b5db874e3d67581ad6a92a69d877c3a1fa4f35da4bb97d585b0ebdeb00d3f8c202d95968d0c85319811bde5421bd09ec2d4731d19b2635163190ef527ea00cad950fb126b2478c8b49199bb14e0b3f7136ac1b27a61023b05bea31570e80223437155c92804c3207312e4dc12bf42fe32d330de866a93144c4428e7b0b42b3de1ceb4d4be62c9e66645206930e23558ff7092707f8f29eb5ee7e209a14cdcf1bd27e553790c8936d6fbecf6fd7a64d7206aff581912a1734ab6ea8f53b5f30b2a5a419eee6753417c5511395e1fcd6378f428ca4629beb9553e3fac21d92d0030b9c96ae5aa65da07c3deb35c9ee1c94e2b50b563d4ad341c78317136dc617769e397520f14ae52f56a6d13a8bf45be2f75a66a790bc501dfbc50b618c50d33b89823c7bfe3a56d40a3f93082ea762d673255d7a026daeb914428145da2f4fa7490da3aa7ab4db4c8dccfd40999a9b704834aa27af22a4934c52440789b048549d581a044958f0329652dedfc1041159102462e6b4545370f82443386c8f66ddf36f0300233b21c368b42b557406583993296f7ce13b4221829f1d56cb0198ccd8423a1a15418be0591b805eb5b11cda015df2744609cf3c44d9f80bd42acd8b4e7176f0800588b4526bac0be629c72d955eed0a56f934bc839c280192e68b53eb07526a3a3776584e82c898c3514e830dc044266bf184704085ba2211036b5e571b69f9ecaa2a0608b67f2c66d030f8f0f16123e9e7f6c5d0036306b6a1ed64c8b9446e039b12a834c6ca927f66974c6fac02e9d6779024a636cc01c4861834fb10425d02ef4e5c081ecebcfe7b89a797cdc3ae60059a5c61d3cbb89b6f653f8a47baa92a99a0491a04978409a7a7d4a56477930eff60bbc8768fb8ddbc7274cfcc18271552bd3b4a412e048ac58cb749271eebdbb10dde4d54346f305a36026bba9991ae7371f8baaa05ce700a0d8aed159b05499871a48122a46284c17f1d0ddf0a120329a7ffd82e99390333e4c613cbbba305f6a8ee48cd56b777a2daacfcb5c79ed405e6c73c7e696760c04942bf65ee5dbebd8def43a8e00a4061055b8c5dd7158791fad1797297c371668aabb4270cc02d6a8f888d928e554d374aa5eff1685dcb325853fa3953e7899c038ea98ba5d49828946620e9483c909142bae8e2269c44084f16013fde094e1d4899951c6095036f42b450d607fdc7815cad156570025efa3b3de87ee7a908c77d288fc0a6c14ace72ba829ce050a3d46f95866d8a7b3fea09223d7e94a8356aac80365631d380a785026e2ec556ad92014a479dfb4ad1aeeaec29244b6eb30d3445b63526d486af2aab6aed7c36c8139224fca4342094801e438c44ab10d6d19e59e8dacdf8de0654a5bd5afa5b262dae965fb02668c84c1262b7c665460eeb0a7c9a344cfb28890ec5ce7d51e09b81129c17dabfe5ac7c665ffd2e9bd6fa32684c83cdde3e2bd27cf35b8176ad58227e93fde476cd4f247607b61ec0e307cd630c2d38e3bffea64c926478f711fe10cc745bb673a4b9f6fce39a5941632e864a67dc7604165556a34be39b5700417f935784351d8bf785c053199051d8b790983868eaa32bed2bd06f95ba15e414292566b6db47a12c0a7780bdd05d7b84349255d9f0c7b27935b7bde34d1512a2428c0235850850b2f66528817d26cd869fee02f6fa1244e486ae0268735932139aaad08b5b093b73f9e6b58bc6a21fcf250ec1709213d186883cd33db48d9b8dc7c525612d631f358bda7f3a5737a4a02a828c039d42ef6934b1ce09ce92a484b1582b8ed153c73a86437530edce1d534cbf1d8b588743e3bc05fb31b8ec8fa7e148d63005c8ed5a4ed792ffea19e2e58ffd911b4fe23483f38400324d87da2f505fbcf7c7f23a209b7f477b0383aa5173868cc921d57c7b0e45c0fd8c95fb027edf75ab757dd7aa130bc2eacf23b00d1260009544a7adbcf58b6f20161930380819e38e6912d30a7211c665aac83978bbc4ea7d751efbceec2291f81e8ea6f863bb06f1cda35fa2ea334f82a5692fc282c1a1607e8ae2731cb0b6c0fe6bcbac7b0d7b905f9849c6f864e0845b89414bcb03f50866be1d94e4f9ad2931c9942c2049e10cc41304b78debfea3ea264dc4d2adf04858441adda471f26b2e73e599f8fb3619f8795d28ed8d600fadc761cdc37b448c9b422525d84c2b9b3fa77708fe2a11e165bad45f0c7918ec4698b6c14a27b32956f72a689a32d76e021e008185b415631424bf188bdd0e5470c85becc6332c9ad39b99910c486c2cf73158440dbc722159f64a04a05127c1b5a3bcc1197dadc47be0de374ce653815b63e64cf5bbe4545103eb93112466a2bb20e31c99527b22b4fdb25c0d29bd9916a79466b295101cc7b066bf8442ea1b0337bc8a4188cc7cd71503f4fa7cb681592c9b90ca64e1710f905d32a01fd7470aafc254ffb9163e361fad39caef81e03908ba228f4f2d042dbfc7710711619e5de6f63a74ed0be8246421bcca5b2499865551bf356dfb6a73dd25647da8d7039167f85d835755d078aa438a7a2cb4d63c7650b31c192a234836f65d63d9a8d6fac9500923dc381efbee111c66e5cb39fbf469bbc97cff7e7e1e4d5effbf094284185355bc5cac1a9dfa682528b2a3965c7420900a0cfaf1f1c2707119f5c2a4d11a538e266b25f2d5d078776e9152bd14aa585fae5203b4129603fcd8509509c8cf7edcbc7017e928944df15c7de46088130c0d1e75f6dda02741e5be4853ba432196c74884658bf7a0db061b044288c6828c116482d7143e78c44119109fae84f80a2f113eb3f9976dcc7dd5ddcfe7b45a1bbaa4e83418900cd492baece00b1f29a13ae8d6169df5a83b3c8120fc6427553cf0ee055dd74a58cee3fd65032cacb628af757b5069f946c2e3b8be058c00eda3dd9f8bee00203d1b7cac4ad2e3d982b0fd7d1702504d85fdd1e14f79aa5346c04fb1d5c3a586361a558888926f1a3fd2cdbd686268663382f6191ed74e22b73dec5425e6fce917032b83d9c426b323fe61ea32d2e4fa46118839c800a3989443d3b46ce5e4a225d2ae294e0839ad045b997d05218b596f169e49a37890496e56418a80e1477174122bd4afbd56df7ff7739753472cf3395255c561c2ccd3fee1c5c6124176c1bb40251526a77779e0baf7b1edc614f31a2a2df682acd71257ae8c332f9cbb71b015c59bf0f8efcaa3e5311fc1bddf40531e645d6fc2a908edf1c3193d10c147d06c293d698a8331ad05c0bf33d90a7598dcfd44baa5aa8234dd736d73c67892cc4c71a7a82c191742a4216c205e48e64f9fa1cb72e39678e1bacadb8751d9b5aaa879381df08e97498fb7ed61e55d9708ecf77c2b80dc7ac0c9c0833780b9f0398901bf4152bbe06ce9b4863acd7970e49fecc8be8c5fa52d8cfa87f9d7ec794425cfee5896cc6fd3a72be8808909d653bac7249d7da8195894b7ae926736e096837ec95e319144a2d25eac5d7cb80f35e359faf505411e9cd9a3c700eb33ca7c80d4366e047c3a9eacca96f86a28aea443b4e88a9a2f3971b469fc433d49b75fb58584b5c8676dc621b496506a5072955071a5cd97b8e8192eff150528ad53c22878bcbda4ba15b83addf6389929c552c6fa5f28b68e53bbdb8de8f3b2e22c15d9a1abf684db8e17c06524efbc5b50690d9cdb7786d2af9fa1c5b8341d145b62cafa7b0a9c63be9f002099510d582ebb4065d88a44fcdfa35658513289091d6bdd1faadaebdfb0ce0f215636c9239840a818456763c793180468d475090b64b6d985834a55124e5378c87afb611674b9bf9d04260fe58a534ee87fcaea7a1a1120d262851565bfe5c7f75b94e1d7fa160eee8c2de801c2b2b58c8d082b71fda721f2b778171eb57c4ac56e439c06888d9c6b01e4eab67e54406955cbfb6bf7009400af526ea56fc50ce1cb058210c7359ab26c4351c4bdd1d3afcf194e758464f5874ee63dcc34b3a435dbed6034a6af0b0f653e4e6f8d222e0e574e894cec1d0c04b4a8251f116a69b793a5c1816681f140b1ba0923c2b17c7224780a25147b504097e8ad4e00b5a6c9200244454f2d9b7348272f9bfe234cfe95f0525db4e8717cde89f349b44d4db80d8ce0eb9491a2767c334e9d4f5e70842e55d7dbe45ec637308350cc9f79b4b969ea644e208dc999f6a18ec838e22c0013a97a85d02721b74889224e2d5a2876053eb5ef8cda1e9a5dff3e384ae63a8fda3309291eaf03dac7c02a99585c5a055764ee7a0d3c70729e5dff657f5f3e6072a7b28f9610c3d61b0859b4f93468ec9a786a11d8b3cd235ad763654b2ff97eebd0932a46cfd868eb16d25a5c0b5d7d54c4f8f2b8a969f81306f02fe1a0ec64e4990eca9c93921e123993c119211ba89ae8141e4a630f56be9ca468aaf89dbf4fbd9473eb13d66c468cfed75ca77b7ce7ca33b2832f666b2aace5bf2215ec2a4bb96b814e42cb8e2de141eda116730c7ebabc986e64826c96620c38ed55d976728058c3a4b5f63cce541ee34ce9e0fbf5876754d33ad0ba51a4b8c3b174a809deff86c8c78be547cff2a0be9474e90b50b2c397db4519c631acb87edaed9f4ec75d63d6c937ed0c04fb25c2ba9e100d02862f42c58ff2c92b83fb63583edbd216128a23141a554454956ea6b43271c777382c99cc0e4900f6687763af39866fd19eba9a4399608785b29aa46555673c9f4f04edd78a3f1a43c9501f185645211b7f5de086831af0c15eefd12c508ba4199e50c3acea181a9e45ce5a4f42043e39c2f671926010da9721e118e51a84221fcc1052f251ad3f0991bb6acac5744d0c66ce7061520908b0a30c72902305062a05210639a154bbcbd27ea0412fcb45afcc69828a2723194bd109466d6a6a36d2dfb181cd345c56dd8bda6ead431e72ac9d83227f96a41081fefe7f338d0d3318466cdb0d5cdaba01241e65a2367effc2541ff98104834423312b9b67570bbe80cbfea8d5aea3add245a38e1a599590fa2ef25b35539348e4de76c2a57b6ad92f8bba71ce11a67d16c3474f35fb087d619404b9af9fbf45b2d3342ab4b18358585739ea937cdff15e79bbec3f2394f28c4f2e62abfd4dbd4f3dd9914898b515f708681fde76401b91443adc28f742be55fa81127a987351c3b0b9fee761f9d5f321aaccc3904e875bc8cce4b9ec54baa009036db710b48921441932825182913bad2ab284b61cd08181768a4edcacbc116d138d7b82c3a8a827022af537313732ac6f4cc227837fca198992f5658d399c741dcd9bb7c683f66c41b7e8000e7270473b9d247567716fc4c72f7050cbb2e0f7d909d5619a8369086435545b46482598e4e131058be54478405201e6ed9aaaa1c2773617ed95839965c2d9a3d03459948cae8dacd0a337f6b4111f4d3798d2be97da084e9f264c8c7c481887b7685a5fbed7ed4276c8d4d6140a16459934dec3d6673b6bf791229c06a3368afb48f827d8bf5917dca66e55d6285860290d2d06f298220d456735a14f2f52b1f3219dc70427dbe4dc73a94debeef6f238d81107824867b110788beea1c361095668fc30855c03ebc09bd725f18dd5eac0e5de9a9a21ee59032af0d57b60f8ddaa98d5e63a248809b8b862702813f56519f12c8a1a22f6865dcdfeef5eaaf5d76984cf082ee1b2cfed9cfc4d259b460b6600a991a01f1db88f43b775fb10b4d2e32385fe81a0481ae0c85f4e736ff58731101f9c3e9749a9b5b83cc64799d7f98f56691e0be715b01ddc947abf05f09233c84681b13cc2a66a8c015467eb90f431923c1513d96a61123337cba3b8285e66ea5e341deb57fa60b256e8337c44f1e14d80829307b5cffc9ebab66822584dbf930d0f70c06d0b456df61055c8aef183550daba8b6fd505d9df60bee970f39d6fa036eb9fc7632a665e6d4f8556872d86f2fc1b8cd2d110c282459e3498e786660f86ad02a9d03a62ad1bd30c550f878f15dc7125ab6149a391eb247d5eab002e8c2c71b8bed33cbdf3cbca9b2fcc371e815a5163c01195dce28eb5b3fab2110c67599c9e7d72c9872f4d6b60b37694cd9d194dff330a1c0dd5a6d2635660ee993ff6345efcd5ab0d1d3c64b8c322d586542d846d0a4993c8d9f0d8a3492c4c8607297ba0fe85c46a0bf6043812cd1ddc921378513b583fcca5982a68b84aefb2eb11193f904f9383cf2f990503317f1cdce10178ba8620e41da0203fe188525dacf3a7cfcd2b08eafc88fa328339efd4ce07804f3872dc3d91d99f81cbd2cf15e9735299ea96ce4d7bc9892d34c230884d270c30762a255a8c99c92a4018f3cb1fe680546504271b755ab63514d77f16fdf2c48ab41ec26799d0ef5014f2aba4f3a52673925f5402f5cd1dd871e3869baa596d0946baa9bfd2f7816ae69c9a36c478dc33584fe7b17284375b932d35993710442466f477ebb485bf00cc7051e2e081298fda29d7e380040a39dbc2e083dcc82841ffc5dd9b7d1b7e44b1df68799016882eeb763cf291dde048ddbc25e6bcbea26d0a07def13454d6cdb1741f6557aec0bbe4803c285f4c03eefa64a84d63c5f6646d1e1273fb2d0068a3ccfad697eb23d7b02e5f876e8040de674995753b56619d462ebd595045451c745465aefd6eb28a9eebe6177a24c62dcbeec2709640634fab793069f59df3299aca8abc1e7a728a6518e09cfe6dd124ac1625af32b585e3d20a3250e9a80542d81034f43ad1aa15227173ff220667a557417a6408b2e3a74677baebccd0acf23088cd4ea83c02df6ba866ee42ebc9a7d020569644fb0d691b463a48e53300f36da9d01c2bb8b02efa369901f346bedb54e92971a9b25a71450a0aed698caf1c14cccb09d0762666b0b418cf0bf75ae4d904dcf928a9503329dde3a86067f9beac240a2c759a64bd650d769719e1dd05dbabaff57151fb28557ca31518e3f3da30744604f618735f9792120ca302757c68f2e0412e94b118e9f8c74dde4c2447a8741442e2358ecb781f27251c81425e25839b0bc195d09c9c15f1b639cd95e83e18a0742fe7e52ee38363487dfb25a1199308ac739fe320a9064726782e80c5c1945947d460ddad35a3030173a8fd16acd64ed0ebc4a553f99c3c2e4ebf9001605e7b13454cd3f3c4bba6732d48c7c6d2753854293274f5445491d0c6d516a65fa965922f2fde2ddfa97c3443ab53aec6331505d28cbe0fa20754fc60c280ce129f0eb859e0fe7d2082b9a310e0d881639f1a33b1ac299628ac36f3fe0093693352ac14802c52b254ac275e2313db96cf4453071c5293f69d494b43bdad1dae92078534e6f9f93596298d1d7eafc6ecb62ace74c4bf368a30c07f74488f07586456d50e601c77f82482d3c03931c369261134fba567563433b3c71c3737ee20a3b7d31def9d3c573e2ce1520b5feb753f39a888eac38e82f0efbf6e3f5e1ddd22a1050a068c3f35dd03cad8d2b8d86b031e1ea53748149ee355ef0bb64f4ba41249c9b0b003facadd83ad6fdba89e0326cf64083af807a533c5dbccb39070826b74da550252130f9c1ed811bfdf3ae290b9404b733fa21e4cc23f2f0644b95e18632679fc83a458c5181063a6ba62c6e1ffd522ce08706a009421252a2009c34940ea246069cc5e2b407c42b27c1258a1c755172aff1846c3fed5768f8fcd8b526e8a7f92f4e9d05dc2036b400b389d367ca9036cc07f73c69c47b69eea984af28e11e52484617eefba6f074788cb5d171ca950ad0eff6e9f01366d8feb5275408ddb6030556c8db3dc6bae953ddb186311123a31750527e8843f5982d9878e97a21bad484db62e36b51f57afa9264a0b8a489ca067263a1d66190458e4e60658952b1b55f25a0045511b3b0821e7e748bd80abc96b55b9ff9930d0c62e24b7446d57a887a4e479552db476de8c5196911a388e40eb7038f338847930c453a865cb3889f009ddf23443d57563d8bb4aee6c1db11756a154a1b233ab8ed69c8e597cf093ecd48e933e86b89ad84c48c4c1a8c35910f93418d141bec026ac878b3d6939a62050748611bc10e6c8552b27ae16f36f46a67fb0d19c676f11ac28da210eed135b6bb7c62909ff852479bb44bb34321651782950bdba0c758f826ad680cc0af308a0ee517d6b25aa2a623cc926c921362601dc13d0ce6c21a746c33a5b85f5207a3ecb3d52c865f08013a47024de3d8a5ae6c8cc12f5d196635cc38714a4cad2a837b6644fa5a8c6267a6508988dd38220f8bf0dcb6147c984819e49420a194fdbcca406a56a79423e7d079fee3d4dcca90aaa910115ef2f429b633773c6ffc4bd2011c00400cca2e09f0e9c1ebab29f1e54555ceef36a2c1a7f6ae3d34183da08c2e42163719c5ed669bedd922b9e11a078a1b996b0bc53bc1711091329b38bf50a169970bc7981bfa1aab346881ddb7ad70607fc7dbcd3235ca99a69f3ba2a435f4e732a6117943d5e25a01f91e6b9eb51b32b85a3d9f1de264b90e94e01aedba996e7af52076a584c7a050302ea94af8e7691e0075b00eb51e808fef554e046d0aa205b0f86b577b4b3136fce526bd6e977194bb61c241941494dba55a0abf9c55cbeac889e49eadcb0c2405cd34b8c08d711e49539641ea7bbd8e42a20d3c9d28f48e848f9c478533e1ac71ad9a85fd025a05ceb1499d680651c228259e2bed134da1295a92d8cdecc3b77485ca86e49fb03e344ff70ca0631d9e7443891089462514590a1497eba6e4f1f498d946b959e41ef792a532223d86bfd8eb09a981bf3f906959bf37c4d429e5e00a0396be66b532e90d4cc7208d684c54183dd5037d01310bca4ded207d237c6c12b374648b2c25abb4b31a75801616b97fae8848cddbe38b27479716abf03f932090ced973017340f431ae37953d9e302320995b6a6bb6e1bc55bf6f1fe9df93674b224688c0f4c63f840877ca699d45b026070babd2806ea4ee4db179511f6fca964ca02ae31741c6ebfb2680ce4fe6ac1d434e5c11a29dcd6010e17ad6f523ea7b2931a2ecbf5bcf3316ea38d1453a2b34c55b0c29dcb1043ccbb4444924aa4b2252224ee719a5fb7b8837fc2f54e897ddfafba0700c09a022b6b0e296c641c7ef16474ad793322e003141cec5d961ef24eac8d02c080bbd18e2f1e2ef90117a259d444a3e13100b77ff478574c3ca55e873080b5bb180f8dbce337a4468ff032a1fa7ae740065b58f1015802a1b632e4686b414d0473a669e4ce030b06ef3736582725ae15d83cf768e12dc0550494ec761523f14d5418272a32e1b2b31cd852ac289a217a492b8ad463b994ac5dcfcf02c06c8e7082e6744d2f4cd6356eeb227b814f6930ca4b4c44e6a0e17974a5cd7162e6c23b4bd83c9194cfccf5e206d7e374e8e592848a70ef2f49e156f83b75f20d297e34818a6a450bf4b64333bb8b9a5d3b8223113c8a4396666fa1fd1cc2b88e7bbd28f8b412c4413249fd264e793152aabac48bb16c8170d601789066d62dd93b1b77f7a98d11263d4c716f50618c4acad10db14a687fbeff004ad386449285a1bf2e96e52944349740977387e0fd194235da6549a944618db99c8366a0504264f8cd7667f0b8451e0ce5a765ef99a460c84685c9d5f9ef667731b5566e186f6dfa9898fb07043d4c3a64b81dcee50db2140d77bcedb0578058e91bab05d7966c6e72366badaaa4ea4040ca16945ecfca9ac0dab57fde546db179050483dc246641fe3209e2b7d76a42bb16d0edabfd1242b63b0fc05613acabd8dcf98c340f20c2a2f074d17d5bd511c67ccb11256cc01c644ba2a6a4511389de57babefc5561010165832b8665c9165fde836f744a0ae2f93ae41573016c592faacd834d53933fc3cc1fb6f7f2f0fb216ff61d1e4899b80918176c82e920db4902855366beb596de1d8bce3d22744407c7a72bad5de7c97a041e7e7c3b16b31dc158901afa8dae260fb99a2adf372e6ba9ea12b8b35c85ed4aab15b0cdd2b7ee2261175a59ff48e002764a2dca2a1466054a3f272cfcec9abf1be5c4a5c67d2fd68cf80e3edf5ca6934b6708f0b45f6aba47d34bdbbb317b11b759e38c5a3c01b68d5503998b27d5b82cbc4f5138f558c202baaf76003c5f2a9081a4420c2d5f8ef38548f62336c48a9b931557746d295ea6778cc9851a0a6416a216446bc02eda11d0455459d85038f799d01b64f8e0be2b8c773dbe68bdefc2abc6de2b7681ec07a5c4b1ac9157ca334f8f42135ebcb90859adf3d12fb207fbb2e02ae2f6218f82c821300c9d539c6a71da17abd7696228754c8bd579e15e162a2eb45179e41acfb4ec5eb507c757ff05717182ba17d0fdd62901d7c8079f80f19abd605a8d47d2a0b4822003dec2e4", - "patch": { - "balances": { - "balances": [] - }, - "collatorSelection": { - "candidacyBond": 533333328, - "desiredCandidates": 0, - "invulnerables": [ - "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", - "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", - "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", - "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", - "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", - "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", - "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", - "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT" - ] - }, - "parachainInfo": { - "parachainId": 1005 - }, - "polkadotXcm": { - "safeXcmVersion": 3 - }, - "session": { - "keys": [ - [ - "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", - "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", - { - "aura": "E8E67m6hzdSKnmdHpkzuEd8JtWR9bSBUq9vwiRufHzZ95er" - } - ], - [ - "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", - "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", - { - "aura": "CgjLFDEdzCUE1jk9UnYcu1CyVenT1H6YVcrh9QPZLGxKLhm" - } - ], - [ - "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", - "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", - { - "aura": "HbRj7HfC344iugeEtJAHPvhXHH5NYQ2vWLdAyRZutzobqpL" - } - ], - [ - "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", - "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", - { - "aura": "FJDBwbp7Zb6XhzPuY5vXNDumKZ7tkrvDArLpZ86x6hS6TXi" - } - ], - [ - "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", - "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", - { - "aura": "CofLuVWVddqHR87Bp8p2G5A3kW92tF4U7rWudXcyEqtxz5L" - } - ], - [ - "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", - "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", - { - "aura": "CiZGfpBeJ3FgAtksyBAwxyqRaua32e7BkyFM6NXTNk3JYcr" - } - ], - [ - "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", - "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", - { - "aura": "FRd2aGXXgFY3f6bE4UeT3Ty87tJmra6GRWbRkahEq5rHVGt" - } - ], - [ - "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", - "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", - { - "aura": "HAKDDNB1tENBDWZwLkV8VoDJufPQu63KWBF7UFmM6JYGAgi" - } - ] - ] - } - } + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xed030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x20026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee2821610a59d610a39fc102624c8e8aa1096f0188f3fdd24b226c6a27eeed5b4774e123a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460d6a941f3a15918925170cc4e703c0beacc8915e2a04b3e86985915d2d84d2d52e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099f00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x5005ca1f000000000000000000000000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x0000000002a3067479c4", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96639be2514832922403288b3139bacc5f00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9835fb70434ad8c544e7161ee304031d7026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9856aaa163561c5ca3deb5e62c85126a710a59d610a39fc102624c8e8aa1096f0188f3fdd24b226c6a27eeed5b4774e12": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da992f26db9e1a10596464efc932b402ef1e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da998f5524a460ad187fe23dfbea8165c7ed4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b1448ce020e3766f52006b47b6ce779bd6a941f3a15918925170cc4e703c0beacc8915e2a04b3e86985915d2d84d2d52": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b2f4429c50834c52a099157f11c40a473a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9dc607cc9989171316a1164a926215f70c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x42283d003c636f726574696d652d6b7573616d61", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd0058640605ae3e8629134f107868930e681756ccf063649703992ad4ee818f51911de6fa91e874d2fe2ba7696b4c18dcb3a8cb4c0791c5b5583c14d76913132861747d5e806b5eae206d441fad0d2b09d95bee2db79452a69402ae14771224121affdebcea431b8a9900f6f539f2612d6606cc7537c8dca73b24858d87bf43525cf01b33f700d8cf11d3e85d9d3fe8dbdea69a20edce5d74f6d7a60dba8ff3e7d1a3cb3675ac4bb1dfe99d4e31f30fe61e80ced1b6698746f0c53b5fc7daf488483d7f3e474250e7ed4d82fe35e1e70dcc6ac647beae04000780bbd38982799429d871f06d8fa2c3d79502e00110799429d8d7957cb80fa7713a51461585c3b191cb7894cc315f5fa7134547455117d178941cfcf275e974a2bc8a7a584539e7afa29e5798a3b08a72750a7694731b177914998a9a99711c1525e3231d8ec351382a6a46f31947e1f0e923cfe1ebd4e944b12acaf26ebf662aaa8757ee37de95cf38aa7da6a262f45751963f47cdf8e551a0d354d48d1b4e2bea9215255dc7e5281d7e55148639eaf21d1ef39ecf8a8ad1ad8ac22aaac62d7f983f474d7f1515631c159d07af8e7a5e2beac60d97a92819af2ab7a9a81b362e53c9787554e5b5a26c2466e328a9d52948311515e33232be234646a687bb65b94d8d655d96d42133834384bdaaa5850373974c1ce988b3dd8c68d44e47f5b0675532579c386670381d2351b4a4c4ae57c988e6c321e78ca86ad7d6484794c1a2cc0ce66e7a78578f745c4e1255ebe62666e6c2240f3c38aa9d071e240e1c3d7c87e77c87d9430f8eb2bc871e7454d5c87b380fd3721ee20e3b384a87ef70b3831bc93cefe13dcc88bc0727390a879378e0c15197f350797092a364bcb9b974780fdf21caf80e7d7373d383a32aefa1a26e6e4498936aad71d4f41ae93d9c071baf711c24e7c15133cec30e3be8e0b5a27670afce83a32c7747bd1e9ac7c4f48cf7f09b9a1a771b1bdfe135ee358e12798df31b2f396ae425cee1e124478d9cc49a3bc94b8ec2e1ee28e73cecc083470fe7c183f370940ee7c18eba9c87d71d3bdc6d2aaaa6a26adc7d878def70d4f41deca8e8d57770d4f31d58871b47557e53513adc788f8ad2c16d6c7c074761dec351d24b15d5430fae55d48e8adae13131cea3a268687c4745f1f09818dfe12819df5151343b9cc651b3ee6c895d73924fea3515455351345ee3737a0f4759dea3a2a87b0f475d75892db1532739caaa4e6c899d54513dd4299887cb6b455996dfa8a81b7e55bf1c252b05ae8ab22ee75151964fe9d3513a6a912db1f370944c1d624bec3b54d48d8ceb50513d2aaa8757ada21c07ef51510b06286c2023cc0bd0700229271d4e18411666b4a10c2c88e28453141dbee34a8ba36e0e755d691d87eaaeb43e53e596d86d6a74388f8ada81c3692a2a35041e84610b171ad8a08c219c74a45a0045154c80042ab0810b17271d8ed25151a34a7354e94aeb38eaba928fba917e5d54691c85d524b6c43e535132750a3e45c1fc46458d3ca64e91738a22725a5118e6a38a4acdc04a1b566600668d3198e1245a2b7ce1810c4cd002304860c349e4285145553527ab34aeb48ed575a500d4edc7afbffaa32b922db1cf8abaea14a45394e756450901842fc8908335a0f0e5062759a7f053941e4750830f8c500529da10865394f6ca515545c5ea5b6247c14a5d69fdd5752500d42de7d75d256d897d3de5827a680144a112e58c126de7ceb9732e4a9577ce39f733b744170c2f4c796f537b3ba94ddbfbf6f61b0905ccb7636d72dfecdf726f9a89f92b469728eb9b753be7d8695893da712877b7db386697cfb58608fb73761b7f3b6625ccfdc9cddc43d902916ddaf89d034185bc2a6763acbdc716c80f7ff926d5377163341dc69afbac898875f92630d102f961a16f9280676fdfac8827c4d9102af4ec98d0b33797b92fdbb4b53bdf76f6cd4da7f9a0edae88761f576593d61730e1af183d90c1cfd8cc2dd1e7396ddae48f366dd4db041d8836bd874ed3a61db2a28a876ed3a636b9dfb0df721efab64e9f36ec379a874edbd40e7d063a74ac4decd0f706569f1d6228937d6fb69c773e59db9f8c31cf6b123ff7ac88e755955d3720f7ec96cfb469c619afab6e975b7e45ac4dd19dd3365dee7c468d7f5eda36699b84396742fa5f93b0ba616e79d4f6310dc8fde55314b5fda9ed5f1a89e6d97771369b67e7ba550eddf974cc95b66f693201ec520382cf3cf3ed7367639b0989ce7593cfbe9acb36c6b06fd83b9f2fdb178335e9a649ce2bf72655efd7777ac7adb64d6a7fdac6df84c3840913e6b7d4af476d0372bfce5536a99d339eadb0d226b5ef3436e36d5a774e6ad3be4d9bfc9dfb5820ee9d6f37ef3ce75787d4c5b0cadc9b8db66f5267bbd4be3e97079a4377080a94dfa128a0fc36fa7602fc0e41b1e53be3f181b2b76f9b2a6f7f6d72de2edbb4df3e3be3a9ea52e74edbaf34fec999f3e934206ec2f39af47c087de79c0db1dba40d7b86754b3d94aed2b6f7db7320f7d137e381bed3736e2624d6ed7d74e995b6f957eeb46ddb3697c4129b135ff936a9f21d27b526a8775e699bcd3f9f8c456ddf69fb9b15f11e6a4ddc3b7fda36897d331e575f93d8bbfad05f1d52153b29e6b689977f7d8eb64d6b6adfe4afbfc9dad2f6391b63ea9c478c0ce873e7ec9df1705ddaeeb46d92f3d9188f2184d4589cfdcd5edd26edf4663caf496ea7392322f5ed9bf1a498d98cb9379bbff3b9243a9707ba4dda280f3b67419c1012127ae2d96763db26f6f5d7a6f6f5cd64939cef346b58939ce3d06de69db73fdfe43b9f336dda26ad3ba76913bf739b36b13b9f8cd1b469dff9664f6ba2c73b49c96f97dfb58648fbf3f65781f8b9be26ad6f3684bdebd6cebed33bbd37aefaf8af0ea966d6c224e8e2d967dab43b04c5d0b3db7010fbec7bc3d5c77f754831ff2c42d9f9b70bb0bed95c22e8867d3bd6a615e30a5abe9db6698748d0c5b7cfb469bd9da64deced361c047ffbde74f5f15f1d52cc08985ba23bf44415bfc95fa76d5a31aea0e5d7659b360c30a4f1eb589bf8d7b775f6b4cdfcfade6cf5f15f1d52cc09981b00bad16727b569c39e9d9da64d1be9d9d97db4899f9db66987a0c8f2ec336dea67dfd6e1d366f3ec589bd6d9f786ab4fceaf0e29e607cced81ae6f151305f7a0082fb86818fa06ba02aa0555014d014501cd8262414f404d40a7d02b6809a815b40a4a023a0595424740a5a0512814f48951182a340ac3a8cb480bbd81880d2230a23588da20724327a191d0478043804278579e954783b7c57bc173c1ec625a99359854260c322a19164427c8c288ac105591a5215b43a40351124459443810852102435445140311151117a217885c206a81480c9112aa2c2e34466b5429a85810d5b8ac706de1ea7265e1c2c2f5832b08d90a322d32156429c850906591619199209b925d9155915191499141c984b037606d606c606ec0da80ad819d012b0346066c0c9818b030606a605fc0b88075c1b0805901a302c6059b022605cc09d816cc0cac8cf885d117e6956a0b110a44598858205a81480b910a4429101d413424e2816807580a322e445e4c1b8cc670554134031110443010fd40b485c807a21e5c564426442f5c24b8a298595c585c27e841e20811091ab000059c8404e1d94140100c18328449844501083080111862ae8829418c153155c49020868a982962a4c48c20468a18283151c444898122e6891821ca06ba060a069a06fd02ed02d502cd029d02a5028d02dd429d40cda065d0265032a80d680de80b466f18b5316ac308cc880c2068c26734c6c808a3228c8830fa6234849117a328465088c288de2062c3c9072a9075c9b2803d016302a60586057602cc04d814ec0aac04981558151809302ab0293029d8083029b02818142c0a0c0aec094c6886996f986d2899592617738b511a9305233546629842b38aab0da3345c57e0a1ab093f5c595c53ae125c545c535c52ae115c525c512e2896172814e813a814281328177a86e5c5e282b5054b0b161a140bb40bf542bd40b96055c1a282c5c59a8225052b0a16142c33ac2dd615ac32ac2658645856b0ba40d1a055a06b584aa06a50355034d0335033d02fb40c940c740c540c56181618d611ac21cb081611ac2fac21583bb078406140a9583d18916105c1f2c20282f5039a06cb091616ac24503016122c215845b098608d612dc1d262893112c228085406a333502e680c4662585fb07c60a961a56185c1028325068b0cd6186818e816ac275859b0ca609d617519fdc0fa32528365060b0dd61aa236ac34586a18ad61e486111b2c1d58594640b0b05838b0bab06e60d960c48675c5b262d1c09a8155a59760c1c0e2c2a2626d61bdc07281d5028b05d60a2c2d2c155829b05060656161619dc0328135c5bac22a81658545028b0aab0a4b8a35020b8a258515c53ac3a80956141614960cac272c211946be41b621d9906e906d906c9060a41a641ae41a120dd20cf20c232ef28b2c8324831c8314830c8304835443a621bf20bd20bb20bd482ec82d482dc82e320b120bf20a120d6b0a690559855115464f8c84a8154905c9454e4146419e21a1209f40af8c9630628295032b06728b34836e21d720cb904d90644826c831e412a416298654820c438221932091208f2087a41164112411e417720852083208d20b0904f903e903d903c903b903a9039945e640e24062915dc81b481bc81ac82bd28aa4819c81ac22652063206120a9482ee416f205d205b20592057205520ba902990289029985c4429e409a404e9157c812482b64159204920a398594224720a590512414198584423e2185aa30d51baa362a362a37546da8d85081a9d650a9a14a43b5468586ea0c9519aa2f55192a325463a8c45085a10243a5469546f585ca0b55172a2f1517aa2d545aa8ba5459a8b0505da142a3b24255850ea3a242c5a59a4225852a0a1514aa27544ea8b654665465544da8c8a898508d512da112a352421546054695840a09d511aaa1ca0855112a22545f5443a8845005a1f2a20242f5838a07d50e2a1d5459aa1c5438a8b05437a86c505da9685055a9645051a9b8a85a30b242a58218850b4429c4332214e213a2135807714b342396119b10c918a1a1b5f0117e9a64400314a02d9880048800009631f997af36ac763d4e926ce0c812497a92387264b2438249cf9123d772cf920d240162c204078e001dd1f3a30409264a8e1cd9818333b7209a5aa8995db6034a38c044891ea0243d3f473851e2a487498f909b9985238e28c1012643962c5142014047f42c59a284020230b19033afb064499223962c49a200349200ea00939e2556d89e1e0e1c5102e80850121d50d2f381d2a4c23a59a22409500f12477a7a38d0c394c22ac101264a8e80e0a7878926204852c46714b6e708264a303992e4889225bee708264a38008809134a1c71c4e330cf404289237a90e8319fb04e40d0e373c4891310f41061a28412274e7a20a04d27ec07942cf13f3d3e3f4a4ca0086d9ab13d40499050b2244913477a98e861c2082348f474a003498c046096b14e7c8ee849e20826ac1320263d3f3d493051e2730c264a385033b5ec114a9c3051f203e444cf11102c59628924477e7a9058a2848993cf114a2c39d94c31d6098f39844d72c4667ab11e38920428091249807a1a10337f1002254b92280152c244098eb983f5394289251b38d203c4c4113d4ef4dc983ad81f251480cd1c2c13259660e208124b9430b181234c921c7144c9120fc4a4c7031de88100123d4830b1e408264a984420c90f13dfc3c4c13ae95102a4e44789248098482233b12c1325940025f961028923404a2c717244c9129fe48789c7a1492a545fb40881e13735774848e839e576446806348397e0ea3d4a29757fbc36bb6ed731f3ba9672f246d7bb8e37566e2bcbc554d5c41c740b7158cc11e2d86a1d77dc8ebc91777388fd627cae1be3de75ec9e5bf71c4fc75573746ff7b98508b0625c553de77663e55ebfedb5dc6255c5ecb6c2dc5aebdaf5365c87cde5deaa5a5e761c63ec7671b9e265cc6195855558d556c4aa6dcbb5e524ef728cae8a514ad9db2d999b7bc41ca08a7131abaa9c9bcf71e5981dbbcab22ae79c735c653864bb1b63eced8d5bad73bb8f5de5b059392ba6821046765657bbcd6eaf1dd78ebdf8ba78af6baf6b9977fbdabdf6daddeb8ad775c52737c618e5cac85be9d011a3103a742ccb28e33e7e1ba37c72c69532f27bbb71e36b51f772579cf56e07217966cd198b98bb29740b24eeee7237dc8db137728cbda3e6de2a76dc8d312ec7b81b6337370eeed8bcccbdec96972bae7abbb79de36880d8cbcbddbbcc1be532cbe5962b77a5e465761c39eeee9c1c779dcc6e0e6ee6702bdffcb18e2d6651c5ccbd6e7723335b722b1eeb74789979f9e5e851e3606667e25d6666b70588bcce31c7d8cccd6e5d8c1de5b2e36576ccdb3340f08a9a2b5e5ec7046076bced3aa6b707c01bd755ccb1dac5c1ccd5ca0a13ad28e3dd6e166de7f8c149862d9b7b7977a55cc9cc92979717eb8e317616bb79eee6eceefac0bbbc38ac6877779bb2e3dd6d8e2c775900bb2ef632f3acb663dce5de5de9787b37f2eeeeee72efca1665bc8db3a3c831561c63ac7c543c6300e27b1ce3e3c1dd3172b41ef3004089793b3ac7ec1cb49ccdf2c6b8f1c5eaade38e0bbb63a28889e264b641f0a384077a3c1073ec0f1d5062c9910e3051d2810e28b164c7c8659ce841828992234c942449e2080e7040894a80254b94f8e4907ae881c40369c6c74c0f3b00e0266784c41225491c71046809134938d08344e9270990931e464e76ece0e17344920d2c59a2c40f007448d2f3c383a6c7e70890133d4c72e8e9c08e1b4e809c2871a2c706021d91c40993243f4047809478c0034a906676004a38d0f3b34495f949d2b3e4889a11124c7a965822c9919e0e24f95102c849dd1f8092fcf430e9e9c00e03f87152b33f8080034a7e7a9a3862801f0a50800120d1a3c385448f13273d3f4b784089238efcf434a1c4113d3f47923841e2889e233ff8980a3080258ee871724409a02540f073848eb603005242899f2348f4fcf420f1a3c411530106d0a3e40708004ef4246123c30120268e003151f2b304cdfee00125404c98f839728413251ea84098703015600003e8f149b264037ee3c7007e38e284121f003ad201264a92709224891cbaa7e78703364d30e971727f38c24409254e7e7a9a38e281233f4a0025394289254b921c0172a227872698f4b81e3023f4a652a989645357ea0505a5229220de54505010076d50502a28a8da542a15e4906c073d24290e0a0a724882381514e490a43828d548521c14947a290bc9a682828252a988648352412917c4294612c4418c645341a9540a3a241b946a24411c14d448368891a438885312c906050505a520920d0a6a24295e241b14944abd548524c541a98824c5294e4124294ea51ac92e9214a7520fc9a618c9a65229876453a94692003705de5df68093241bae695f691bf4428c307879a07e9845c8e96c177870841874e18b1b6a2074629f529cce04bca08104293790628a2f4eecd7970b0cbcf2fc379865fffad2a6f569610c056d9f17c67486e7cae8e25859130494e181d6f93b2382fdd60c117df55b37214fcbd68d7f49efaf2f4de2ed62e33f3eed5aa349ecd717a77375e9d224f62ecf5cb6c0062830610d6ac842c589b7b8e00660d410850e700084e7cc0ea9381d3e31bcb20fa7fcbe4c88fbe7b249bccd3cfb7c5aff640c2ea9bdb321f09d3b587771dabdb37269d2e95c5fbac4cef239bbbeb06fd797e71c4fe00285284e18c30dc29c98070f7ec08221b8808a2160716287599c0e122d5070852a66f0c2193438b1432f9cce07be9082136ce94210a6b071e22728579f49c5ea1e4213face363d5fdfe46faf49d02b0dfa649d3d6d744fabed4ba753f39c572e8176599f486fafea132c4f2a77bea7e9984377c2e9580ea75bb91ca8497009a733ebc583a449b0e6646935afd61881f97409587ed527975b3eeb132c462eb7fcc974ccf7049768d2b66c3cf4693dc71e572bd99e9e06d424b884d341d225e830dbe49f2c244d82d0b7edf2d029741ae80b5dc259d795aebaaeb4d1223bddd936093a0b5107bd72e751645653c4d59ae8ce53a75a136b8ca9d3d3f6276c298f837823e0a929e27cdfc8e80c43513875e5ce8d54ee2a0acb7394f3ca5f3522bd2baa5d3eaf892e7d4f9556136b11cb2bdfd3640ad4242835e94ad02b6d5d29459d6812f45897681274e841947ddb2f1f54a5ba6594d9edd137f97ca33aeb4ad0a9f3753a3475a371a5577db4ce9e7a495c3721be1d886f7fabb35b32452e98000b6378e79bb91d0ac3dc9b0d6ef9f6b95c73e2e8ec1280be95eb132c46d6218c11ee09f2b24797c03aac759779f7b4d0d708f4f527715d8c9030529ab44ffd37676f875a9cceba95e856a0c321a7132bccc25a8d73e8a9d36a35aed618b1ce6e642b0a8bab46d86145416747455f4f9de6728c6c121c6a526f908c2d395fcdbd6a0582a1ed090e391d98a54bed55dd2e65f90d0efd9e1866598e11f286359ab4efbfc12cdf9ee374560b9536d8f006194c61ca144eed3f9c4e4a8806335063073d2042185e4eedee745251aef84210c4c8a2a5094838f980832e70a08427e4200a5a9cdaa1f6641d7ad49e6071fe24ab31823dba11f6e8ae1a598745a044618f1e651dfa936f7f5c164810dffec3e940974354cbf796369aef753ab1ae2bd1871ac995da377314dd6711503204418b3294b002229ce1cba91d6ef9d521c8a55c8bb64420756a7fe23c8aab2348c0a9bd6b50738fc95db7d4b6e47ae7cf3b2b02baabdb7358ad447f99907d2b52fc146bd075c2e2dc6544ac7f752bf2bb38d637635db7d4f73ad116811f2d2f90e594ebce62be06b0d0bfac08fab1bae7dcabce311673b333fe3906c63f083cb71c8b2a6f41208b7f9e61d1837f2e7d03e2d737217e479ef9aed3b449faba8ddfb409f375529b2c5fcff9d1264b7b103a585d97b65f49e9d8fe48fa4ed710991e9fcf29f2cd1a30e7259a5ef98498ef43ac06a91c3abcbcd2f861745837fe89615656c473acfa44df9e3b49bde5322bc249ea2ff7b1fcf9ac9be55785515b2bf551cb1cd3523544a0670e3df3ab6ea9bf469af4cb27f3077da441810205cac8a5d8fd81f924c5ee0f9b7bab6ea71dd704f5236d4f32f5af89e389b94233771991e796bb6c8874ab6e99cb5a63f9f4e89d0dc96a8d5589605e39e6953f9fd8f4c11ad018c60feb66b9bcbc06fabe744bab81354874e9b2ee5f6efd052d9f6ab3a474e7b036e130d05d11cf65dd2ab7fc627ea8f10771eaea99c514361c7b8ca146e8becf9ab831caf8b105b2bba2ce8a784242bfceebeb3c3f72b56e2bb4877fbd8b13fd396b95b7bb2c08fbfab540aabab9ac215255f6eb19ce6d67ed35a9637b5cbfb222e6e2b46fbd16a759e8a3b68bd3fdc4f7f0afcef411a673a75980b23f1fe826bf29155434fe190b50f6ed1f7f9e822c1fdd498c0248a43cbf221440c115f7d070a436d544875ea44ddb0d05dab4919024d1a68d66b510d126dea12cd27878bd16ebb745c3cbc3df560c3af0b4bd77b41f7274177d971d28fef2dfb4a90987f959078a1f9d332247be3db62f77ddf5c12ee3619facf9c48c08e72c8873ce95083e3aeac9932019f4d1b7b71411ed3eb26eced7b71824ba23d2eeea13d69c4fee26e29c6325c2346daa1cbacd32a1cfb98d5f31aea085ceec10165e3e6af0699b363af4d919116db4f18637fc6661d6c77ad438cc6f26b43e5ae889676ff7c5126336e16fcca1b7e684dfaa3eec96abe08b0fc0af186294e0b77ee8acfdf0e2400792df64c3fcf4cd82607e5d93ebc58f695b74e896b63e1702cf319f8b01ba432a20e39d5b9606b1deac37cb9d77468408e696cf877126a49a6e6998bf8c880c229deb2e0efb4e63dad6951787ddf2a96dfdeceb5613f29bb83708fd7aa56d409c8adc6acc5da23d8d8753f827a404ed1cfc0e51a9c13717bf435b50f1a4dfa11708e1d995a00e09bf432b00f30cc6ef90163d781fbf432a40e3174803b97ed987e8a305b26de8442e395f5ff61877aaa8b138d1b3f73b55beb03eecc7ba75dd82be89fe0efcf0b35b33179d18b64094300634bec9e89b90cfee3c7210fbfb5bff16dff97418cc864c36a6fc26848d2943e26f4c9840094de8f24d903c7fd9e29b04897e03da021668b8f80de80a17730bbf0191600bf0372754f0410084b0e537275e6c7976ce864821a1212e1bb2619e1d6643fc9bf0479f51ab382302bdeb4603a18fde5e6541a23fdf71bda5be9ac26f4e521fbdd29a6c9830613ad54de09881d03f197079edb59f8d551a9cc2b7d6e33913e2df1eb52670bc0ad4443c3ad47cdaa3cfd63a13c261a057b0d60c790e5dc8735881e60e5561e381faabbab537c10f3df5da434dfb069adfbe65b4d082c1d3e409b9edf2bc8068442fcb41701a68fc7ab3ce9ed62f0ee209fdfaac30970559342a29a58c523a862411fb54019467af9c9f4fa8d56f9e6c04cc2b8d1dd37c2a677799908a48e55c2d13ba435764f19757ce45d01daa2286bf1ef3391dc69910b959ee5369dbe595cf4aab19f284843ef3f7ee37f34aebcf7ca72b0ceee28cbcbdd2443ed2b6ea65412a1755ef2c48e5d4771cd56a88542ef2ca4555ab21727de5d75795c7e2bce895b74fea74f6f4bcd2669af47ce4226d7f7136ccabac88eb31e7b1409ec3ac889ac5798e551e2291c642bf991016b212e33b4d9d4e4c7d5d7afe467593bf519fca2fdf2a5f225246b8aeebf29d9e0fe32c087be5b221955f3ea2c5793e5a9c27f46f719e07e8137ae2339fd6cceac87771ac918b2c6d733f5d3445d6f44cfb118d30dfe911e6a299616e4daceefa98d572fb96b65e6dec1b2b6d92f3faed5957554c23f4fd0e95a00d2314fe0e9500cc2eceea508234dee677a80464fcf3cd5576decfdf7318f40e7af9579bb830619ecf92ca64cb98b2b9ca1e372b62cb98f2b15a9941bf410d32d932a63cf42d041f6164720028430fab952741b2ae13ef9c7df6d39c6f66012b4f82d6cbc9f2b52284831533c882cacf0e5472a045086889f5f256847c980212849a3800942127b6103c8462bd9cac2ab45e4eeccead08e5c0820ea2504348e8b4f54990ac42cff4eab6c43b8fd1021668f006284242a7cd1a20f3b0a30de6946f5fefe1b75d6dbf6781fce4bc95e7a9f5823bdf5761852205ce09ba149953156d9af9761e312da0db925fcff96de6b7ed42112850e32a9ad4bed18dabf8f66dbbf0eda8e7d495d2e002207001842c5d84844ed09d6ff4fbe434a1778312c8008a1810e104450a9c93732932a707458a3e459782809373a84941c00985c588735411576a775bbe1d3a0a8b91e8b0a2765ca93d56141623d05d45b92bb5c39ab3edd090f36db7ac1a46b0042b63a8820db4f084982de89e52282083085b6c71042e3b40c3694fcfb79c6fdfcc880b099d9c57d1a61ebefd694e5b579af2ab43d04b713f2cee3d0d3a73056105217c3619ff0e5921060f5442196880fe789a70987f1eab4d93e07bee759be17c1708f4f5091d3be92eba8bee2a772ea37317dd393723180f6a1b63daa373f49ae7fcfd352f09d1a1c651428dff693b44c646dfb97bef9ccf389b772e311f287b8c610f723df36fc6d36e5d371731a3cfc919cfe5d39f571ae6bb4032873e332df5dbac329fcad7a7367f87ace8c1bfc581bd5a3ba6556e69fcedab49c734e99610f6f59d96755b973e57dba6af4f8749ad33e7d5f633cd47bacff4f64b9bcef2d900cce774de6de224f5996f1f70431b61dec96eb99205159fd56dfae53b6e4e8849ad2d7f3362526bdf4c0811ac6e4ebce5d3e76642b66e0eb320975ffe9cf1ccea7305b97cebe59b0d916f551fe9ed9b24d22eddd2f6b54d4d7e4e98bb40a2afc31935209a04bd089fd324e89b6d360fdd6d760486d9b4cee5d0855820be38d2a1fb68136d92b41cfaa56d97a4dfb48eac79a833d325e9d0d705bf01f1d06b16083f9c9666d324e9ee77c88a21709818f35cbaf3df212ba43c0d67d26b2a77df5f53d5261ce62bdf212bbcf855421968f8198dad6ad32459697071d6377b51e37756a613e26aeffad8ac8876dac61f75a05c0e058b73cbd7e7b4b41dea9e8d39ccd2b68b10cc88785911ee9d5fda9e7ac2ed77ce80d4152f8bc8d92f0ed879e92e23d2a3af7c6e8bb6a0298c7536c40ee6b221765e7a6742987c93a0af7cb321d8d6633aac3306a4b878e9d3612f0b92a2f24d90bcf4d92c126d4154d6c7acb0985512bba4a5ed695ad8a5edc9d2f6d4d990f658376e5e27da827e1767db211364f1d12f8d5a9a0b090909099d863c77d5654d9c8002c51342ffb34d8a1eebe63a2be2b97b1fe7d0371b62bfaa4cd03c10cdc7ba8bb33967e77cd89f56436403c1b7ef6fc6d3bed3419d8a0dc148300df09b366d3e3cfb76f3ecd510156730cd3740c483212aae4ce962b5ed0204611d4077a8045f3c0bbdf3395adf9b8d85be7dea30b69a11d4879f78e8fd1b061acc787ef6ce88b0d0475fad893784febaf35d20dbf39a21d7bfda64f4eb3b85cf795837579ff786f9d9d86a45283b3f9675ce9a7813faaedab0d0af0e29c85d8369013aa70f747d46661aa18fce8d3158935e93667c882269bc78c6f3e752aed3d92e6df437ffe8734b143acd4e9b3639449b368aa44dd18568d3fbe814e8c147c7409bdc47b75c3efef8b8647cf4e73b5d85d0c718638cbe37b1faec9716c31c52f9f3f9b4c69e563daf76fa49cb77fa69fcd2a35bbea5ac2867a535c1ffb426f82b9ffcb4ca67b72fcef3a91a50f97cdec4e6cd9d0e7b5aa579d5b26eefa547af34d7af6ed2d92bdf7152db6f82faf6afba6a29abeced35497a6741f8337fda937503ea6fc26cfc663c9957da567913f4973ca1277e93dea462e38930df847ce94fdb30770e359fcba1cff9aa7ccf9b4828503cf13f4dc4b7bc89ea9da4deaacfb96c527d79ccdf5fbed3b2fff24c6be2feaa354378e8a1bf8c07bad39eefb8cba1d644bff3d9cdebc30ac20ffdd25e5537feca2d6d634bdb226659965b55fa8e8bd1fde624f5eccfb11ae4f9c3ba55d5e7d526a8dfdcb30fa1dfbed3537ba39d7135cfd99fb756f3bcbdf2f934f6c9d9103b95b33f2d0bd25ef91bd25e55ce4d38cc0f10b6d99025862079e972dde779e5536adbfbe7ceaa3f4df68b90d003dd78e9ce01612f8b58e2d27e9a24e07b719e03c5bf7ceb7f6e693f9703c597be1991236ff94e4bad498fb7fcd29a24e079712cad098779cba5b6f13fabeefa789d0581fe9c339e58b7d4477f9a941a7ba5edaf436dcb78de8f9b8c7101f362dc419f50dbe78c619005e3344743a64f9fd8e58bf985b9e5d7a5cd3469ddd2a8b6ce3ea7d604ffc63f9db526f8e79c3e7b79fb89b8eef4d47ca25bb44dd32b5fe76c8ef8e7663c1b6368932ecf79cc39e3e1bae3769ab58ddf27bae50b84bfd27c71d6699b727e7d6ab4492bbf2212ddaaa3cba13fc79cb30750bf2a4d93d6b13ab34ddae8ec736e66d52df596631a6b98b65d6e5d757b7ff974d65c6ffc986f0c4819e1777d6075bbdc5ddafea5edb3e57ca7bbc9fbca777aa767d436e8ec52abe1da84bfaa366008097d0070bed26c9ac40f53154335e67b9a11d4e7790fbffd8a71052dbb40b69c872938e47a3821f4edd52de89f6f5603960b0fab15e9ab49879a047c98c211c29cd69fb6a1fef92c592f5f79f42de8a1ef06b1ebc3b64a1023cb03f15795c97af9262e4c988fd5ca93a02d63ca4956a12d63ca867a58b7e79bf5ce77dcd37af8c998d4d637b3c09631e5b43d7c10a760f71348f0a57faee0d24e47073386b278f1811bd8c0e2340031ae1802038c2c68c18cd3521650ac49ecd5af185190f1fcd40574a3cfbe3d280616bcf0faccb958caf1d826b57bef69fc9b5d604a9186d6c5641770c6801628e04817fc7ca75f95756f5c076602b649a3c907a09b3120f5efd514f302369a77ebd2f93b6dd80be9c2058eae33ddf6c698ae774644eab7769fad4d827e7d290d46d0c5efd008aaf86df4cf03f02b0616d8f8d17b93293bd3971191fad4b3b7162383e9321ed80e8bd099b2434d7b42f8a3efb46c534d10fee8b1ca678701fd63a74f29fa2ad6b0cb6b28c65c1e283f12acb0e577280842cf84dfa1a12c3f23bd9d668154de35df3cbe779401ca3be7f2ae02f53341f3db124242420f44f3be8d7eb7986f511031eb43fb16f34b7fd77f7e80e4ffcccb92efa5ac1b74e90e5627eef997483fbf3be7efeac3ffde879fff2d4e7bd4e0e2b4432d2e4efbd3aac5e9773a335d6ab740d81f0f66045227e87bf384fee02f8d0512c4b3e72c10d1b3ef12f608cf6e80e7e6476a12fba837393f9ccee5ccbe2d18ccb74d23f36dbf4cf76576157b99060536104de21f394dca81e2da0874fdd26a8acc795d97b310e866d94ca6b5d0b3bbcaa3e512027b82deda0f57629fda3a8b3db257ec982b718e2b71105ddf28b452af2b35e6ded4b8392f8ff549f42bfae54f2a9fbea79a2295d73c604f95d7482012e1677fc0f238e73ee39f731bb1272e22a52b3deeac0894e8bc06d61a232ab75c0231ba15fdc99e9268d2d3a82b3d9fd222bd3d9daa954b906892970f8aa9ee87022663097379a0d1e7926818d6e830c400e6379a30c090c6f7cdb743cc4df726fb938eab8f730935f6e7136a1be65c375b75637fd3771c37417df4a96dd02b7627b1fa3c677fdacc4809d4f20db33c1b02ddaa1b84ceeee35c7a673cbed3186d53f4fe09a3bf8c88d4479fbc5974970d811eeb067d9c470d3a67cf1fc699f3cd5e9d1cb330e736378b60fa3abb8f6c127c0fbeb8bda58b4081b85d7e68d866a1df9ef73a674458e8538cb5ceeeb44e2fe6b29a28352896579a1479aa7cb52dc8d2a4f871aa9a780fbd66085379583bab89b548e5fb46e849c6589b8cb6d43bdf718f855e2aa1ecb0df0dbc108318bc70e5b96eb7c5b46415e1ebae0b91f0d87557c1fb2c965db9f8207cf2d958b272cebd680388c936bdc5d937332333b383e776d0bc03cace6ba13e13c3e42a55aa089fab52650793b174777753f9f52a0efd3a7c8eb150f6ee6e2cddbdcc95951ce79c7331fae69c732e46df9c73cec52c94c6c66f6a8a48df37d242a7b89a15ac4291e2c7493a56a5c8d3f476ea9cd32e979a65e55ae29fbb186384afe6017bb21cb5432710480781e504f8ae71be5fe36a11ab7e104cc57e4f98ee3d20a5a3272bf75cf3ee7befbdf766bf7efdde7baf0bcadef0caef0b9203975f9244c373bbeba2a3a1f1f7a0a3a3f764e55e571bb0737eefbdea5d5de6c16389837959b28a901f3333efeeeeee767777f735459516fab1736ed961e17471166255b538aeaa6a3bba38ebef3de8e2832e466d9fbb7f75fbc0c3f8dee37d6f6f3a7e615a39c08173ceb9dd756d7136c2b7a49919991fdcbf39bf6c85b20b997b7d130e0384fd606e04e886e1052d9e170c2f6884d1052ddf4260bf1c84f48d99bdd9977d606666e9b06e93a4b74fa94929233373e5eea76d4bb0675f162c796d9bf95d93f42db6ab8074a5bdaabe26f56308b56daedbf5ec2d3f56b56eecb05ecfd6fbc82533cfdc98abc17421b11fe6dc4f883d0cc62cc8dc261ce6c130e5eb020a2d4e77df80b26fbb73428bc32fcbe23c7666cc1e78d8a1bbbb75a89af7c801079b1a1e3b6874e4d071de2d5da9bb7b46e6460c1d89326c5e96ac227cae797749dc3269cca6a171ef0137e7bc9fd4e12dc9ca91d69febd65eb501b773ce061bbfbbab31e6be0ec11698a50630cbafb373a82dbf575c965fefe79c734e079306efbdf71adb480f5d3a57419f7315363371ab78758350db97da12d273ecbdf79e7befb9f796dd833edf7a14428aef3df8de7befbdf7de7b71022fbf60a63e302600e7709c73ce6decc3b9e7bc3801800088a58a24f9053d5cd682f1eb3b561c0fbf39e71c57a1ec3beccd6fbbbb980ebf39e75cacfcc6a64955a4a15538e79c7b22cc69d64939f43987bebde7fc39f7790e6a4efbcd39e74618d3c039e728e662305737da23e6460e3237709891c978d6d76666dbddc5b139e7dc53818e4743b3edeef2d891a38647c6b3bece39e76ab6dd5d9b2d8bc30ba40c0e18c9737ed0dce891438cf7a08e39e7c579331855edc60715558c6606ce39e774c054401dbb71ce39b7c3eef260f5b0bb4bc2dc835e6d4f96d69fbbcf74dc0e8b01c036db75c7825d0780b3b98101c068de5bf2e3df7b3e305e0165778e310e66a9c05b4072f40580d33e08809d9b39ce391f30e7727c10008e8f0000a044ea81871d6e74a89af7c801879cc806b8623e2f9e5da6f1ec95d3e2d9636b797608e6d91f5f7976c7de5c8576efee48b66963df6ef6daa4b644eb550e266f217b0ba7e1ee11055ecadc35bde73a08e85b8c31fef043df628c11a8df8af4b92c031a8617a6ccb8cc480b9da4cfcde03a1dab4a9127e91dad48dfa2573ea3269b14a366f98e73e21df42ad68d1f42e803d4efaa74996f962eebba9263c3cc18ebdddddddd7dbc8f17672dd891573a371a2d10ab128916889459b6402a0bc31648bce6371038af6b813cccb21688cbe437901655d50261fe2dc6759b73ce55516ebbbbd6b6bbebd63d77ce39e7e6eeeeeeeeeeee2e2683c9ce9f4fe79c77cce2ec5b20cdbc7471b8b9ccd95ed0a6f2256e692a5f86788a175ed0f5b99594a29a21599893a9cbe25cfc577771dcf3f10e0b8aa3c1f03ce62de664da2497518dafa0eca4efe659175b8435098a6a863cd76d027fc59c23a6ef47dc216a735dd85cc65af4b220d663191dd1999d19c9f015323338640e793343696c6668f707de3dc628f6ae3ecaa36666b94ca1b1a112073601dd489f430fe77cc7396ed6b220d67badb5470e38d8d4d4ca63078d8e9a03c74cad55a6de88a9b5d6ea830c12e672bb0747f159815699107e4e717d528a7acb64cf11a21db6ab56a2ef34d4f6d41a10a7c8eca7e7ccccec3bc4679853f26058bb97f1c08ce7b9e6e521da52cf3398bba6f75c07d1fdedfc3e3ffc40d6b766a0de35ad6fedcf6577d76d6b7fb535ed55ce86b090d0efd077ed366abe63c063877b344f470e1c3352a6af37f4e3460c1d65a297bd1c922badc4e88c799725ab7783623107040089475ff29f83c1d3d23068aeb97e132dfbb061bf926453c36307cdb20feb03e0b7802639e726370771621fa850765e9c8e0f02a05f0a28fb4ea321c48f997e6020d1a475867b042dbed7ffead6e45d2db927faf7b0e79a5330f31ee9610f93a49b1c1f4d5a8f18e708f1a35905db8f5fd7fc1ee96f9ab4ced92e4e85cf3df79c73ceb98de43ab2f7e877deefea1681f7a8a3c27258d866bb4b7ebc2f0e6be692993437b01b52e63336311915714179b4058db7086b52166333c48f17fc98a16912e602ca4e69de3d9b1cf3b26cf85f9d9196dc4a4754c19648d07a2d7057235bda6037bf9ebaf2ce9fc62ca0ec6fc972714eb302ca4eda195e81642d28fbba8e1ca37f3d2a8c390789c93539dfd6b7493ebbdba41c16c6d63531aeb09841d1c835ef94c1903cacdb3aeff13e0edea882b2b7cc25dac5c17161ec72759e6f9b72a84ee5cee5ea44facf47eff3a2b6aeb4bbae3e7f754ea771a5751cd84c2623ba318aa13466c422996c06c34133735c3a2c1ab963f2c06a86a81d6ba0cdc3c1e5f0e3d7b97b38c65950ea74a2b74b8d46c331237323c78561fdebbc0cb38c86aa80b2b30a9ec8f5fb76e68d9c61dae2ac3bf7e2b74f11c6f4b928e379759ba4fdfad3f153fb28e37970f4be7d528cb3a0fe5b0cd63752f06430460165e72c28ff0299a9444f93fccfb94a6c5e9648e4823af53ac919f201eeb4c5e49785bbfc7abb29bfee7ae8d71f642abfbed12bd06db7fc3abd025dbfc2f6ec35eba9dfbaf5b7cf2ddc54fa8b1b7a3c056e17766e3a06ed9aa263d0f529ab28adcdc9f79626adf3777d591667dd2ac3dcd8db39e7ba7bb44d98dbfb76a2ae589396f43e6e51f4b36349c43fef97fcf817455d6b86c46fefefba4de0b999d13037a62c6b86b0737651ac9fdd2451fb4e3bcdc6ccee3d77af4a5733c4bd737e57370a7cf33b2f338ad9c6190fd4bfbe39e6d6bf31b34f13eead80c0b9f59b19794242ef3733c24242276764874e8e9fbb598ab9cded1ecc82588f05edf6b916b7c86de0d937e917ddd13c01dd5e267f5cb1911e7b4de2166d93f80abad1cfb220d69b805e4137f9d439b5f9e5baa5b6e5f2ed3c85b6f3a769125f41d767cc7331313131cd9b43b4a57ef45db723cfd5714585c9cd39edaa95e73bdd1a104d5acf713adea5f57ddea4f5f5cd7fdde9ac195bb0a0e1062590620c284ea92e8ef08420d4e009617081c2697dd7e5fade2c77e1ad0e942838cc090b7429e429068a941fa71897429e9ae6d4a45333e6ab03458a1fa7cca5c893c837880029323b8014d229f32d4608293f4e996f32bfbecdfcfa5b20bc4ea7691e07e76a45c44570f09d9e4f28051e980512c4b73f5fe77ca3d17d34e9f9645afd10a249cfab0a8443e722d04dfe06840e9f9e0fe17472d8780a652935be2d181bdf58a8876fbb45876fcb85c6b7edb2c379f8eca1ed29071d36d3e948f9e76fa391358744fa079d339e056c8c90377869d2fe103b4d7a43597016236334c853feb9eca1c5780e1a9d1a3f0e1a9607ec098af3761ad7e1317e23071eff7c331ee94b8940d9d937da43739e83d6ced9e53834b96acde50ebfa0ec1fa39db8f4bc352852f86999009b880bb0ed1841448fd59dc579ce43a0ec9cfdc826d26715b25f0981b2d75cb58873ed4e52226d67b51481028587d338941daec3e7ce02117d8cb746ddd28a34e9390781bacf1c07a740e638d41ae938f89e2820f21a596b8c88711c5c02318e437d82c5483bf527ce635c02d471701cea9376ea7bda537c00670fa82912e30fd8538c4b607486a1334ed467d7687be2a1ed6987b6279ab7d18a408932f21c0eb5c5e133ae43db13bf8d36f21a2d87f3d070f80e6dc6693419d7a1dd7023f60445c66f3c604f50629c3a9d6912d58670a5e7315bfef90d2eff5ca6cb3f9f49e39fe3f8f2cf732c987f3e62a11cda9e70687b9ad1f624a3ede986b6a7186d4f54dbd3484b6dc65364c7955e8ad234e9f97b1e4499077b41d9455aa6ad6320507ebe374f2665f5880b6dd224f98f67df727e57cbf33a8dd37192d3c9d992d3e1d3fa10441431d2a6caa9d42a0d5b127bd4e49298b4a41dca71faaf3659e2fb9ba0beff7d376b334d724e9dcbba5d72cedb5d682e0f7407cfa137be198f6c52ebb8fc1bdf9c7b9348ecce7d9cefe03b4d6a93ab9b3f0fde966fa31dbef5b87c13f1f02d87e95b56e31b0e986f988d6f36efb689836f3522dfae1c7ce331f2cdeae1db8e772e17c8f319df68a86f95fba623c6b7a8f996e3866ff0ab6f38a0e3f06de6657c733af826f3ce7b8144d7e15b4c0edf6e2c90ca9dd30542e3ae6e3cb8f3c983466a52bbd3bc49ed3b68374d6ae71f50fffdcd7f089267f736b91dfcede03c68fb2e2322f53bf864cc5b874feda41deae6cf156bd20dfb806eef67686cda9ddc125747a13c21e72d25a51bcd3bdfbad475a89af7c801079b1a1e3b6874e4c031f3250947187aa6ce656ec0771e43ab773e125def3c9bef1c9bd93bbf44efa4b68be3bcd278719c47ad17c739d4dee2387f9a5c1c579b423961d930ae10c2efc05208736fb649855e643caf15b4f28d185b417b9fac9ef3c357fdab9b907f5e2c0e14b4f22931a65ff0c80c7a5141ebcbe2b07769d2fe36a75c5f9ae4ea86e49d335db67ca391bed15eefba45bfba68d13f7a8ff789becfadbad154b91e5bbbbc643c5b97faef38a701c15fdf69ae82ce29cf3ea7b469ebb5a5497c692101adfc4a63f62f108ddfaf6feb5797265d693489dd077dcf97972b8d3631fff3a8c11e6c97cbcb95469b96e7d5a5fbfc01c16bcbb3effa3e5f4f7d18266bf1275fd8cd4ff7b0d6b09f106b8dfe8c15d6da6ef929b1d66ab6493ffc1ee1a77561adddf839b1d6e44f0c6b0d889f9916911c61adf54f8ab536f333066b8de6e70dacb59c9f32586b7bc6cf99a12d38b0d66a866cef79fcd625335a7260ad2d183f75e4c031239361736d44d00bf6817d95f0d381b1f533141a3dcee85cf342917b9bc6afa77e2e14dabe5910d137e130abc66ae167f55e7fac5b93ef872dd0845910d1bbdaefc58b3106a1775af35655d5515433047ef4fd8d3fd69f7775c510839687d6c39a21ede5d971bef4b31976f9e2a8a01b4ce3d96b88301af0e7bae67ddac76c48ff16818aab4cf7e04f476cb50dfb6d5bb25bc890e5817a56720abac1216b0b4ba195ffc49ff3c793111ffb81bf840c5a3c5083d129f95334341ac397076a329e7dbb7ee32874a3798e422b9f31d86a5b7904b4f2d4cf1bd86a3fd72fd92dbf4d92c156f3df5a33643d7aac1b172ecfbef5e7fdb664b72cd92d0fbdf8d4cf196c359682563e7746e6460c1d89320c078e87c3352f0dcde863dd8ebcf3eba7b4b0d53427fc9cd86ada0f3f336cb5989f226c35f87384ada6fda4d86a3ff0812004e3d9674c15e17bae99f7c256db23fc9c354178767eed2747793f5df3ba7511d3f8fd3728f48b678e826e70c875f7e3ad44d08b9d9725ab08b3e71ae31589a2571feb26e49df5e5395b121ffda3efb8a9ed6351db7c7ce5536258c6133322525cc46be25ebacc786415028826b5b31a94d3a01bfcf2edf00b5ca34d60dae4a2cf2ce3891818226c7cbb6be72f509765f6556568888a19a87cf9c2891e549cafa3d54eef3a7fbe1a931fef239dc1d08d8548406cebf8e892c3ac4a6a9273d0a5b691dec773a755756195521688509ba098e1dc153eecae18df09f85a536471da7f5b9d0d630a31fcc669a0dbae01e404ca39a6f2c0ccbd59f2a30dbb580f7e5b827dd71b36507ea7499b36757d4d6ae71c30a4b4be31cada8e97ee05633c6b3d3c6742f85f0e8741dbf94940fc5820fbae5d7210eb65caf74e673c99b64910630c2fb51da70aabb03c9f4fa334f8993fc1af183088f23254cef0f3614fab69f7e14dcf5a4dd726ee0d6250b1e2570c2a5ffc845faa7cc9f2ce60e3bb36413d13391e887e6b37bef829b1a761597e5ad8d36e6cf1f3c258ab81be627041450df4998f3e27f6b48b0ba19f18c61af4a7459f8bcd6c4515882665cfda8ab1051a1e3a9f14831ae402d1d06017e8a54bae00ecbc06ca0576699d3d39ae1b14c3bb9c0512df3905da04a5bb45e39def9499c1914307cd8e8c081e31427f427316c87ce7f687d39939ce7579c735c772e7b08bd3b9dc89dc4ae6908bd311552d4d7235ec22dfd3a5d570ad31c2f2cc2570b9a83e997e79569f603132fdf227985bbea7ebbab09c26a981eefb466b8cb8dc7223d3316fada53c17e8e59d4f4cb3f8c41a44a349ce316d4f908bd3815aa0162eef7c4f98961c2def7cc7f910ce739cff703eb51a7659c3ceb5c688ca2f3752b911e956f50c04babf3f2c8e73e7310378e74b78878477be69ef80bcf36dc7e72c8ef39de634d0f62da7d25c18d4f9feabcc3f728440997a1da3c65c1ee872f93972ce57ece430e8fab2e4206ea6fcba5b2eef868cb6fcce15128958bf75fbc0effe73af45d15f063321fcaeb745d16b7cbc060dc35c7823eb96fa1f5ff9467ab8f97898f3d0377fe81b8dcc929caf893ef44d8a3ca6d2385a492db3a600aca56d3fdef249e374480158d3ae3b51dd2ae7acc2ea6156c466460406e1e51756494db2bcf2c82eb5f66ac90f5897fc2072a3ca124ef02d7fb39cd9500ad36da18f1fba1109e846f36c25d2389d587dfc8804ed74a2b3a382f29b826e4bc613d1a66d99406481ac66d3257698f1b83a924285f862c6e6a5a916827558887d351f39403469b98c605f3331740d49f11c045bdef9ae8fa26cccc2b3f9780d88d7ee23a74dd0d98160587fe03f7f7589ab6c7079a0de2d91043b6034344ee34e63434363e3ae699cde68d207de5b0ec95548a1ecd036d35390d0054f294118151758b0af9918fa0dc305820886287b30e27f3a59774f99f2ae1851e16dceb48b8d2e396f3025007381b982febc51952e3987190fd711951115a703b3802e682be87681b9c05c6cb4ce55a55e25a03f8fca3b2be8cfb392c1294e27abb292ef9c680b92fe5efa3bc75a27f36da64b2da9f49e4259ca95db0c11f7af5ac99c354c3a9d0b8c04b35d605245e881155e689981174ae0c2024ce0032158d1c5161a58015393b190ce2febb6818855ffae823e8fbec95195264d99511b8daef04fe1b78b8a0e9efd655920fe5ce5b70bcc3bdfb0e71117ef7c9bcf6e6d10a317ac0f6e3a5fa32b4d721eb5119526017dbe8da88caa34c9398cafa0504a9ba46c4be094771863f1b029908368cfd51a5a1ce79716527e93531ab05cf807a73c3b674d05b57c3a74219e2536e1307f392f8153fe79d4ac649ed51195772e5fb669ba73ac4dd6e5ce9f170bc4dff9888ad39127e7a32b53d00d4ef91d599a4003213cd10518639c9cc32b4e27891632b84214c6d0410970704a0d218c135049c3942d70c1859373a885d3a10015a4f0032136ac8104344ecea76b0cc62a625646c4c56cb935abbcd898d224dfa00bdeb9d47649b1aa563287594c713a329370ca14aa179826b99642d9b70bcc28cbaf0e37ca30b1148182a1b01899a351e523bfaa11916315b5229f9ef59c8ec5c88c3b67f67623ec5d8de070aca230c7519dced4ca9f3672aa893cd350588c60a931e2f9c88dbccbaf6a84baa8a290b852e5d4d9b9ce8adaf1918f2a0a8b9191bb8a2ae24a958feaba6aade9aee6b852e5a8ccd795640c8d71991c19dfd30ddf1357bee3e8262b975ae5321a0a4b911b15c5a791538fd19e2ce1315bd051652157aa2a8fa142a3437f82c2f2803dc1579f40dfd3c642d89e322845a0448fc22738a47545711657aa5e456131f2a8b852e5af3a476131c2ee2a8a1d85c5084f71a5ca1d95af7c4a53e12c5fb1efc9553eb53ded4d557d78a65ec733300dfbb45c6a9bc8b7916f976f986f996fd0b7e9d1a7e889dedba4479f234a7da4f52f7dfca24b24f24bf4322c9bc134fe6b4e87f3ba3c5e759be49c7fc7b925a47f3e1d848dbd97f1bcbac177da16dfbdf7aa28b4c23673ce419f55c6036b86b0fb0744b54de217d7ba26863514aeb431be4ee7067d30cee0c07264a3186ca673b40eec697307d638c01c7a601ad64f2c1445a82bad776d1df806d376c09a871e48b4c40303408d0d8f1e015d9c00602d050ed65108c039e7a06fce238430fa807514ec1cccf90173d73f0780ed7bf507aca30c00eb27dc13007bee1e10401400db6cf747014a8e04a123399223b99273373ad4f5e1dcfa581feb637176abe6d200581041085106657f42341494fd0059911d5712ea28680a8025c0a4a383edfc308001302019cf0209625908ec740004901e5500d64f3494b700aca3e82782600c211c62779fbb7dd8e6e0bfe84eeb7fdb73e7f36970a13fcdfdc2fa9ad4ef78b0a705c19eb6c17f0fa7a1a0d2955a084624e319027b43a000b27ea29f8075eb87ce415765644e527ec874ce0d4dc663b41b4e4693423ac5f82482c56852684e313734297e8af14904b64e478a3cc5785f5fc5f84e0b002733c23e622a75a5574411458aec34a28528fb9b46643cdb6dda6a86707cf85b977d1a31ea0278d1ddddfc9efdb914dab4ee9c6be8a0c65d82e4e438f68e2f3a237eb8d2fa7c0ecefcf623e3e922d0209990390ac28bc3ce45a04489225d895dbad25699106d71d8b5c59196902098dbe9f7642684b4c564425ab4a5beca84503a324248f5cfafec01239e982bd47fb39e7db39e4fac310cc3305e297a99902aafe5eb12411712617dceffea06f4aea620c72bccc9d75017b298e59db317ca5dbe6c9b7e8036ecb5585b6276ecb8523b4b6dff09a539cd387be10348712fac1052724e330898f1f6a8c50249c0b7731956c70957fac286614d95b79430df6b1883f21894a934294a8f342e35e94a3596f3f0d4a9c6aa3516a0f11c6e0487f3a8282c96e370ab1aa1f11c9ea3a2444b4801963674504548e844e3a9d30ed7e1d42d1dda0e4bc70e5aade4c8212b6b8995879e40250d0e8db940f7c45cc8011868c00221a1138d2bb56fa4139626aebf7c07670d10f966f992cc6b8844a74eeb96fa587d7f3e9f188f4ecf685273d9d224de02e52b549ae0e20b5180c21b5610862c9cda198cd329e2044dc0a20a4bd00114359c523a0863042b6808021a5edc706ae7349cce86418a33c4d88119a850638c53ef347bd102e534a83316e873196334d6d226cb69e5214b632d60f06f3cb4a57e54198c21a7c35dbad44e99b57c53e78c87d6a5fc1c4474eb8dfc69917d885934fe18a73e9703749380862a7e00bf493803979f5818cab0a48dd1f00344f90cdfbe7117a971a5d544b73e3ed46aa2efd0d015cf63605e5519cf0db7fcf9bca1b1178dbfca789ee57d39e69b8cbf2edbe53295d3b85cc68bb8dc47c66f342073ab6e327ec93c191adfe9bfa159a171f6d23a34fe5c0b34c6a9eff37397d6e1d328e32e3ef28dc580d1680c4697baf21077a1427831f483b34037f6e2dbd98b368d2a7be12fda64552b34dece5ddabb6e97784b0caddc4593ba9db140b794cc1af0d887e8af46f621fa8c57da34f2fe4d7e8cfedab404fb915b3e471a5fb134a6c257a023df984a15dfe90de8b7496f8b6e39674122536952bbb604fb51e52b685091d6047f1a50a048e1271d2e45ce2987e3f0cd886462f876ab6efc9715a8ac56661cd3b8cba5711a52b20b9ad45a689ca7381d9aca83a140ade83ab45d026cefa3e7d0767fd8e247c7a1ed16203ad4aa2545afb4b9a4e84e389dd196a2778fd7f1d1aadca549ed52f889d3e802f482612f4d6aeef2f3dab90b7be1343ad61ff831d6255f3c503f128ec4e9cc54ac4bec3df3dcd1260a71df847ce8b3d29e476dc580e2837f1afca121297e363b2d2c4e7bf51e6a3b648436fe69d673c6c35d16a79dabd0e55bc7739ee3971b8d630d70fd09dda8ce367d5a1688e9ddcd470863c59a242d8bc7f29d662ad01b41480f2f17235f413758e5622e74a3ef86f8ca790a54cade60162a057ad5f7f37ea34b7e6051a0b0cad336d1770eabc02bb08b0502a955a5acfbfa6110623162554644aceccfa524c72c736fb6def22ec6f85a070a1618dd4ae651b322c54f99cf6dd366b3917eb79cccd731bab380d6a14242424f9cd6675a87877c7596b0823d5ea34b8edd553706bd2a66a34d963bbfead642efa0e864beb594773ea3fb1fdf16b66d82d8fbb5b04cc3de4381caab66321b79ea241a69393fb21c918f3cf3186f309ae45022a74d85bb8b982ceb92f32ec5f016aa69190de14aceb5547e02b5a26fabe5346377ecee6d12cc84602f17a7ab95cce18c1b1b6643aadf82bebdca8258df9e45165d926db2da252635f763d04a6b2a1ad4fa8a1328acd257e6c4a2c657d0adb388a48f0e9707589776fd81ffb4fd57975891e22751199ef396369dd1a6aed224e7ce994beb886a5fa94da549ee790bdd7a280b2a60b4a74e22dfe8c7ae56a8a74e238fd149390b843ffafbf15493aee47ca45157722e3283eec9a98f5ce49be42d4d721ebd7d6334def91469236da4eda95a11f94e9fd1a41eea92f31e1a6a92db9348cbbe6091821086304548e814a3a1b018716884018b30275175576a2a599c0e0f659c000b3680a20c3a60c2c9797be17452525800061a6b50a38a2a579c9c3715a733a970021bcc08c21a5ec23839ef2b4e47c6094868c20f8020a54b104e6ea60b149cf684a57d73ada934c97919746b2a194fe54da54d4da54d3543b8a672f8effb5d45a3e8f125f3d6a2753277de5964daeb123b7ca83d933597703abca5e8d6828911daf12e892e395fc22d69931bf9b643e45b4ce69bf53daaeb4a5f44755dc9957875b0ca535cc97977dd96684834814237c5e9f01757723e7d9374ca3bff3299326de72f6ed64dd2ae8f42c152b9147ec272d58de669689a4a53712557554bb382f98c9a5665e5359ae4220b9e47e89cf7509b6074a7842dade99f50c692f637faff84226c69bf2b8369d29726b9fd8dbf1091f9fed2a62a76d4f6e19736add126303fbea9381ddeb249da54def95a3142dec04693f6f75de6f7083af0c1f316a7b327593759d58dc6bad1fcc65b3e888fdfc589db7324daa42d592e0fab15297ec23c89d6c1dc69af4bddbdc5ea1a2a9c3f876ec9727996ef7ec8748210b4f8e5e2b8ccf639e276cb65b9b47b57ae38f7e07b0f4608218c95165ac418630cc24ca0dbf3e29d4ce39dd3c269d15a5a0b18307c85af643ccc041ac45a6ef760ac640b695f876dcce52d0f7dfa8ce58bc4e95815a84bf00ada194f7479c518d46541dcb73709c65fdf25d0cd1f022d8e163a83a44dcea123d126d99ed3a6e7d01d3a741af7a049d0a5c65e68fc4593a003d13a2ca54bd06d6c6e6e7cf8000288dffca1109b108fc4e9005595a13409fa1574e3a120d6f35093e04d93e014fa1cc9590c0a210f3d8dcd02d9875ef96b138f9819d025cbe5a557d52ae1c92675ac3222aa8c01a9afaadaecd67318f4396f915c1841df3057319f8901954dda9ee9c926f583f03dc89babbfbde713b5a48bd29530e82d25a5fbea06b186d023cd4357c5e89ee9b9d6b67ef6cdf97bcd3eb0633d9d86fdf6bee1db311efa6b13f47689396d003f9744396340ea5dddfa6b86d4cc34c95577bdab4bb08f3f1df7ba277a75d907f6f7d44a63ee0d8341b705638d6767df472d107e76a0050cd13a2e242404c5c9fa754a010e22fe56818c29089db6edf25be5c4c6af7312e8269f97b3fc665b977216797110eb62b8fd0109f3f9d356cbcf3469ebcbe4e2b4afc623093a7fc3beb11df7daad05b24c82275e6322b073ef39672435cf533fe3329867974f59f93a9d1b1ee3dba6918b7cdb94c371501daea3e6d0b64938ea8cb64d92a937b46d524ca5d1d69568dd78caa86e934435ab1bc5ea2667dd68aeba51ab6e2eeb4653d558617dd539ced1ef065d6a1d29242424b4e5d4fe74b61f6ecbafce103b3bab9393b33aeeabb36ecbd2ddf23bcd50987bb345a1774e1f6de7445da2498e8b4053344e874fce277cfe846efbe59d37599ddd2516c87be7f0ca0231c0bb65c33b7ee29df314ef7c42ec69ef3be3814b9ae41c117e58936892a3a1afba28b425cbb353eaae3489bbe02a4d621fa288d3a171257649290d8d3367013db23b76fefc55f67d1aa753c495d829531a9a7f7b7229a1130d33f310aec4b0ebcc566cb5609ce56d61eecdc643ae779bf0ed9bf5ebbc3a3c5b6a77d14fa6cc5ef0175cb9075cb807df4e01245cb870e14265e32a7c65e32ebe37d6e2db2bad0b2adfb1cab7b3161fd62bdf48b870e1c2053e05b870ecd765eecd06bb382e4d6a88468567c033be7dc70dd12e29dd7688ee10dd2167a1af614f3df33fa1bf3b06588213a8f0b30ebb5d36753a43b8523ba5a14eb3f96ff4db37d26f543ea47152ce07a525a8e42a95d4b1540d928e29433334a3092001031540303020180e87c3014dd6f41e14800e90ac4c583a1786834914c4300a32c6184380210000621001313a4e02ae6a5796a88645c8e1c1062421dd621917ad177ae3437826b7353e20ee4f17f6de84f349a3ab6e4317c767ec0833bc2c0e9db270bc8824b61a14de6240448cff32cbad1493adfa35c9a10d851c4b6c4bba45f6da3f13cc0fa64915e47e8ca2db4b025d9156ad67e768c8dc98860fb86618e6bca550f238726dbb1908572284af9a8785a8c96caf2a6e8312ef75f0896aa936972bc3d906a5e8ffbd4db06fc8162dfaaf4ea3b12a3d4f0af35f66261453b4b903c1cdcfe3b2a1f278cdaf412320ef3bfd58380ede8a089ef176bca149cef8a63af1c96c3be4ad64c084def62ac81f994a400227576467aaf1ef0be2ceae4086394c478c9642649a2352654484bdebfb47e71a5327232d8591b2693d91c28bb82fa8d713e9cbec699d70b11682212fad251dd8f514fe7c769a4b5ef8b9649c815c0b4089b0cbfb5f1140d1f64eaab603465bd12c3d76b0780cec349799a1cb3739fb1d61aacef293663bd12ed8e0d37d885bde9f398b9ab019e40a68f63e2a50448f88b6a2bb32edb391a4ad897ae3d18cfaee8128ba993137c765dabd32d6efcf1506b9a871b08a4b62dbad0759e17d3bbc84b8e48bd5f60e502cb723fa8c5864cd70074be5f4387b75bc817fedc574ebd1c6776c1641776bf616df5e9bef8eb5d103698be84bd290ba618c20a8bf0d936479695df76c5e469a59d92cffe8df8a0ec2df608a343903c41adf9baef775867d1decfc35efd181a7df38b4566cdeb62e6d2372078f55dd8610a438d3a82056ea25f8cb89b02a575889a017f9afca1cffd98a37ee042d8962c98de6dd49ae94430ff798bf83570e134d87a23c2a41f9282c4b440acf221cafaee8e7aa34d145311033ba4a906107c95ad35c80d69a147d5f6b0ac26fad096bed5a132458586be273beef18b363f13241722536c9da4d3e5859203939098e6644dd505f6bf55a5ac3e1dbf1bf32b43dfe09cc90133cf21151e8cc6f634186d45ae86ab7d612e8fa79440b3df4dfa4ad0cfa046bb437222b94f447d691abac8869d36cd763d4da17b3e22099a2710859c7f1b6a3bdee718dc718b888ae0726f17ba68eef5127ee50183879e211619021f96497f31e7d6d82207be69d7d11d64de148a72309612149c84b07e48fa5b80f1f187442c6cb36002adea56588a383938638ba598dd4fb47e26be0167eba085996a5ef2ded9e9a5bf78fb77d5a2cad4013d8b37fa575e55221df1f36fc9d14fe822939afed4ae50f1911c3ec7edacaa52a61cbfbdf3e51d5247e988305f03003cb8685af7d4db9f8fb74c453e51e93b155a9862227ec35865cfe8ed83595c40d4cac9cd4cd212f6082d738e74e6673c81ba4d2e7a6d2b85e3923e59d8381b208285a0e420448376c8e901a3c6d5c9905ea5fd4184acc24cba426f853d80196e819a5a843e04f5dae84facabee27c915566a522cb1cc33361351b560f0a7aa310d0ab553940eb2f72830e3d5de92af60010480e32b8d3b0c4ff1819fc12041fc8fad857aabf19add0a4323336b68b27c03e467b0a70ca8cc3b2ff350f138b731778bb31eb67a98fb81d8e74e90ce41c6b4085622fc086edd14e190a4d8356e8861def3699497471d8d721b58e89c8c45f319fbdbfe2a62fc622a02e7a8ce68818759ccc3038f9c4cf1c7a76f464e5e875853ace5aad2b3a03542d76dcb848cde2d294e449731b4d0b64157602f22238b64488e3c5168cc6f426231dc9e2d632bda66f66e6a797251c9d9d60f0ffea82d75db566654e1e169bdaa5998f0d0b888bbf088399d0917baeda588e106804a494fca30cefee788a9c9d042796f9ee4e066de42095fc94f49f62d32758112ffe5ce5d9a4abc167a96c130c09f9253474f7506a01c2eb480e934ae911191e40405a413af949b3b662ccb8b6f4e578e2c332103898826b44583f42d037e4503703e0035d968393bfea68ebe7a3dda7d9fa8ffaa1a9b39ae0852d93c13f58a9c75842716372c2aeb54522d7450a62502e6e7d7aa9f5b6f1dfeb9ecc55c38524653af24c1b8643bb9db272bd0f5905049973b052717cc3114968cdab99f1f682b5b07738f07749bcf9f76a65179a28216fe086e414818dd4db0c5a9c8da4de6aa42c06aede54a938bfb0a0217ec59276becc5d53d516c5c1c82607e67f1a3091b53e20eed7b7632d50abdf2a81d3cb931a0f0b9194f543921dd3f2142fca1cf9119cc45a661704654e9f25569b525f0f65a7467c3f35dae50c576839052d08c3313095340977a107f494c0345e9951c498e4adbbedcff51aeea947ae9698988b78f1ae4c1729144cb8c9d26c2b064fed359a9a0efb4ee2f42dcc430759fdd5769a0df79d167292ca1384bcfc005f563245da1ff289bdb98e8a8f63e314e0e885e6ab4afc0cc43fed0a4216c307eb5543c6d94703f4b14eab074e1a298443f31067d79bc0ea37fc47dc0f15267d13fea20554b4b02131ea5768248f4ffeaa63a6de8f9a6699320d6c69c35336abd94f88cf284321e3b3d55aeb8fa1fed7a36d4f71a6fd43c1347e7f62a18e131881e2d48c0f1a1aed124b34fcb424b05b3092459bc83981c9d991375f8592a63ac5a3bd9bc8abc36cbdfa38b320f8e1fc801e555241a680806d907bf7068e2a9e58054513ca0ea16b8440d1a12226934e3b5f7fd9895e83bd906dcf0839cbc5762a02b4b4a40b146e55790e5476d8620e7faeea25f52748271429e501bf97622d31711da66a768d6e0ae326430aed1a7bfe9db474c8502e74157e587cecd4adb5f2d84efcb15e970181db89e1745ecc44503dc1f4d8ce732b87a756f9d108b7f98cdb4504b6a6713ea5ca7bfe48fd963cfccaccf316f8f3ae846d4e2ebde3016cc10e8ac74568b36b9543705f8b12e1f05f998a8bb149b0df9f7998f8321abcd6b40926ce71ed64cd661fc721a508927b06af721d0bc1308c6a6dfba81bb49cb1dce532c69190a222695122f7ad66c049bba54c6f7ff62d5d01c26717a0586958f65b284ec88555fc0e2c9b42b47bc97a4c31592b387dc7ff90c515624324fed6a8c1abe9fc5a5a086a64771c25b258d0d042c1d2d303eb24d8fedc3e6674774ece3bd635f7cba9730a5644fbe9d83f3c2c61e9799d5c8f242965a0b204445af490254ccf560e078598bebb3f9a584303a2e24c2e291d079b1603613b550d7d67b23c460072a1a73637f82078325670bcd7fc1c3fd6183e58e3557427a45120ca9a6b603d811dcea4abfb99b4c3bfee66bcd799873b0408ae0435e83595077ee4de57b1c6cb8abb50081938c26e49a843d1808dc649a8f136477ab7d795ada3f1564048a634fa68ad7ad2a340802abd9e42d57246d75ba33e90ee5eaf65062f3dedac50311a0e62fdfd9816a7c27990cf96ad157dbbe310d390f2ab3ed15bb17ad4b2bdca96de1700298765ce776a6ed8e06bd48da2333176c45b97d694fa8ad866f8315c7d4a1238ca6338358c767f9b686e171b8ac38b1d9a8e1444edd1e9b75458f8d2f66e012eb09a3a8340da90124305d91c3a64a0c4de17e0e5c7bac317b1c8e1a6434821c3fb63191d3317ab7299761c750fce51448b47c9865441db5bd73d6f21adfb761c1fb9e12d62cd401b37d748258b3baeac3f8ea8f833d850e1a3956de33c617b7ab4abd6f41c863f8125597d57b38dda9e5260e6960979c1cdfdbce30db8b9b86573b79adfccbe23ed89482ba5595b3f784b490e65c6072f5d1da3e6e1f3f4b21624e45cfb3f42e69d9816e19c204cb9dde29e7de821b6cc71a53ad47b292953a941267aeb5b02b5b158920ee2c83028e87618c0306f29c534309da3e0b759cd6c289dc35b204c60b38730281d15f4ac25eb5f8ebe26db566f85815cb34d88d9af1b768235306de1ed690b91203930c59ba60517fd0fdd05bb70cf65fbbc1e55fce37fa17a03b8fc2e04f9c53e012dc96cd326a4df53558d4bcaa0b9a7b20283830552d397611c9c32e66726e70c44fc6a3817ffdd70a7404116ad6e3ebe54063332f1b328bfdf5ca262c9d5969aa3ef6ba746ca0636df0431fec28627539495ed0afb1c86ef62d50c4d6a6d84c9ff4438f61a048a617b4c8a78c61ce8d353d884d624a4084ad4c10e6dccf9ecf67fc61ccce4f9ae2a9f5225ea69d796abe5a3d4965368fa41a70b0f683c73f46df5c27e66003195e4f72d68001c56c2088b9b6886832dad8da180d97839dfc10dd3325374a131599d58e5f4837b25a37efba00053f3db4e5b1b3c6ab8f18bbc7244b50ab81ef2ee2ff6a2eb0571fe32ba7a8f0644683c68496f0dca944c420d6247729ce6876916930fd121a08a66868259674164cf4a3e9e853b1d7e545297f0247cfbfa1d5c7a30380453710852e33e5bc6898edc2342f2a0848cc37d84c045f60632380441fc07627dc9c240c7fc089a26f2c8373603414a3f3bdaca83b25378cd28addf62c0079182255188acfc33b51172e23f137837680174f88e5f81e3aa671181bcea6461dd6ec2535761f6d0b19585050621a95ebbac438c5098f3a8d8d6f8cf1cdad878e509d43bc6efda486fb295916317c4b72388cf1117dc1653c8d5cd649cb3d37e2f00c845e271ae79a50eda88d188ae1467d22fe7b2239b2f1efc9b8e00a4037f2106e4bbd6c7b9e7ee3ef9ae0835ac59b1e931ef2b0ba8e6c4777aed6711b4acc0cf33789c85eb9954df6e91d0c3868ff51635542e68c811b36adda365439508b39652756abd6b6e611842809ea547ff5e58974950a0619da562c9dab0021a50b33cab1ba3e1106dceaa3119e6b18914df9c6d4d27e31513398cca3933428867d276990c663fc7e66c19ec8ba7b707d6654eda07fc695703010081c9d8502539d24b9a3d5d2c9deaabcd7691635d560334a75223b9c13011d28cacda1f385c600f54075f41185464cdc528be4c0026d64ead6696ec4f10019a5acb10a5a909368057d8318eec6b04f8d8483b18e11a0eaae15993019ee77734712c30824cc53818a6b79c217793fe07fd81a499bbe961e7995c149d3739a11a423b4b3fd8bb612483a10890e7b2afcb9c97da6490ce32bd0c8229afa75b730d0af1b22e42f84166821f083d498d1c6abba98c8b7c5a8161b8ee1978680baeb03c92f136b9112d4b86d840c7986ca8888070a482e51d76b85711da0ceaa1bad9f3e710cb7e7a2ad3edf98856045d873982f78b239cb0ee3b8f585e8fe14cb06abdc19ee7d7bfb3d7f18db3a5d2b291dcc9985dee7f098b14d581ecc76df11edbe4828ba8c416223efeb29a5529c4fbb0ec391ccb55b4c7e03851292c10e07a206e1b9209e04287f13a9dfd27f85094cc0e7a4a94f7b46fb67563653a0e0d441f89c720cf364a5df6047dc10344dfea2d564a0b1fe9087051ce7fc0e99029b68c8a6abcfb083f38194e69c64e1e93add4971589df57667f00bffc325758acd6b46b148de89c50ae49b1d4567d6895695f18683969f45a93b4fdb50d32946f1f3c84b0ce9935b3ce747ce17b8910c3b17aab2ce4a95f6f4ad512ca8d8fefd83cd7e0a307653848198011e344055f20769afcadd0ede830939b6cfc03f4c44ebffc41d2b77875d110b849bb6b571d8180f284e0c3e010361dab9e6e73e9ac87c8cd60a53a4f96523c77bb85b91f8ac6f4a467cb8cd4acff7409e6151a11222d80732aac26f696c06ff02c6f96f3f76d6fc2f534ece471d0be4aa8ff44a2b8943feb26c847446ef24a494dcff1842e3cf22fbdcb4ab5c14493e99ae1085309f153ffbee96e958d55f0cf43061a30883098c32b8f8460224c7154400f47ef358a6efa82eeebb0e75c7c614031d60c30b00065af4bac70d67b4277082794e64400850823edb11b86d55e58a4ec17d8c427dac46b9aac1bba6c9fa0ef3ebef6498f5ed9787a6fc92c565e32ee0e909ded8de5042e3aad9cf5a136cf92dc22f96fd228002bb7c441250942a443247e9a908ef983b349ec8a7173034a0b928f31b99fa35387a9da799943cabbd70b116089157ed567bb32b0a47bf1ee7768d518c3c543eb83b7c58b04cd41a07293208f5789a808d6e97dcddc215c9d4bbc67fcb6c1ea6c5ef39a4b557ba17bbc7d1dc810500866a1a8ec7b0e5702122fff1edf54eedd2a8475ebef58c06225150d17c1035eeb933879c275a558a9239e5a12d36a1be504dfa90a69ce7297370584da0461ecfb423b9f8b8afca349743940cbe4ade77763d60dc16ea780bb1e2c9ebc037d4e0ad960186815616a299396fcda662f131a7f6b0d52ed58f9e2161a453e77dbc5685e3ef4ba663bc2c7fd7140f5f0abcefa83729e2db5ac43f18148d543c8ae41927dbdf6b19b5c0ec94793914f9d83e84c0a2df47f42c2e974a8b097da8cfe211e4cd4d103c7bc698641636f55d5989b812e80f2766452552fb3d40649a8e26f1ed5d674df78ac9f8bc17f47062eb2fbc9de199e1c8a5b45b1e88d4599e006f1b4a2b6b60e84ad711cc50da3b51ade1778eb89a1c0aaf845df354394716122cd6c43ab19920b2daea4973bbae93d3054faf77c4a7515e2dca3e6141c3b686c5a12cddad160cacf6029259b7a81c8a5703829ceb0d81579f7556d54bbb8bb834466dc345db045a80db010b9b6b5e0a35bdb790dc81b68c8535c19a1bf090275276ea5e6402c69c2067726f435403204885a1a6672d4ffb2c8e2deffa68f12c23d7606cb69a7a022dcbd1b7fb23fe2fdb899c5b7d919efd69f25c7d1c947266bb25caca6e85e8a275ad4d2e014f9a5e11aca3768c83d7ce7fac6bd76b913ef065574000aa8c90b94d3b1960a4966cf4909718610833f3d0460216bf2395b7b5bcbc2b5be8bbb0de60076ea601426f403eaa02eef3f2f636b60499e17afbd0c53ee5ae2d4ee770707f898b041a0d6a0acba5265b7d46713a4d27cfb2e031bfc326cbe71bedeac65ed333c6e1efe626df78fe277ebd0b1f8d8d444ed3432849cb2babf5fc5d5c6c7fa0b89b4252a9bceca06ae168880904525c7f77955d6cbc1c99355545dca5f9003d4c1b0e1b4acf80d5cc27da53cd003dc2677fd15fc252d09a57f14674d1da74e253a92e97254617c8b7a8f2a9902d9c4ae47427c5d2e7f5016601e6d6bf2e15fed54993a60343c98e1557571c83f86d0067916b517b463e380b49ee2e7a09dad39f10a0bcfb7511ffa37f5474c701dfbc7f1fdef9e1ff76bd4680b3fcad5b77adaa6c4ad510a0976a6a7acc1bdb256e4087d0ed836be9f1af8ef4a3980cddceb9ec25c36480aacc4fda6992fd9d7d8af22dc931d32d6b324e2d30b90c53026d21d97d692ef91fcad644527ec21b91f7e2c0c1b1f29c52aa23393ab3eec0974a9f9514d9ce12a47a5ab4b9db0d15cbd10d4e1e9816d4c7369904b6a82697e41d9d48858bd8fd169e129b396f1bb083308347a691fe631354525639d3ad64a2286d6cdd4d40f27265071ebf878df0652f4893a54d6e2b4ccdd88d1f738bd4302453cd51929210d567547e04fbac9ac02da83dacda97895e3ceb57089a4a66136010d9bc8435ef829c5a9760cd540f3dafc3e103faf16c5c8fef58fc65a8ce2001757c05c6d98477b48f73e905c1c84034d3c588d334870ed217db951f186d3736c8da81f0e0a8e0e334736ab918445a1e8688c377c9b46b6d931c7ee166a23291d72a19aa5a227006645d76e8542e9a474d6572623c235f5541aecae896868738c201dfa883ba6fb94b97895b2df097e66bebbbab050a8d509963158abc17c25296e4bc7932a28c890e40365a8f84bc4c93a263b20fe0cd04608aeec49354ed6601c3348aecca052bc323d825522ce124037fc32fa402a11d80dcfc931711d96997b4ce9e6b220732163fcfb6f6ca57cf67350b06e70a8026d6142d6110b9a5006b10861216f4b15e2caede167540309ae8eb5e68fc3d2dac718f694fd299c294462beda21f83042774f7ad55fcf4ff26098682ecb51f950bd15d16bd90ff1f9db214a36c7ccb2b1c7c57bf3fe7f6d52fe509764b7eb7c770bf9e46f5bcd179da693bd0b84484d5df34a85321b467f22f32cd0f4ff4c9d28c4d300bdb18e17878125f2a1d9963a58aab9169744a1123b14b633a57f4dcd083fa92f87ec47c1556821b23db6da2878dcdef9d6abf9346825014182c98fbf957ae787727f15e34a42d59f7cdf40b31cc135f3155aab0dd435205e11e2e4314afb67ee873ad0da82e604b88908c6f570d1de018bc6e0ae639a08361d351408c6e001379f649aeb212595872784176c53ba49de501c0859e82fa1c585434c3e18e065488a72591ad07d16d801a7454583dafbaf30534cd9eec56da85b168507c44e45a68f576982cad823eb4bd01d7121bd1b2e937d2eb9ab33726d2908a5eaf8c950dbc990345e6a7dd2ed9e9dea6528f9d9e9322db9297c7e4becb989771a138742c476e58f992bac8a041e2cb0861b742341b4e446fb81863738c08ab8fe8bbe86b4df4934f075bec4b9bf115219887ce2b917c49eb3b7a2c2bfa654d22252e0a771945ccc3fa6943dd2f29c16b845b3f91aaa54148f4faf169745e8fdab530221dfa5bb07eb564e614b5308c610a8141a77e4a0b8d9aec6ef9e9c4a7901d13793114a7ce175f46e570759474edcb5421c17870008db2f2cd36d7b80d5a145cd122c0b11413540e7fdb565aea8ca1df6fcc05abd34429a5da4b8e05e805aee67d82185f5f7a6f319d9b06faf005fe237ad50549ff964ff0e12f56433bcc7ee50d01c0923a56aa2fbc7fbc3debbcdae4d141bd26fb195556e610d9a84178cd731b76ac409590ab9567ef846a409cc29964225a08a7129618ff5f0c883e006e844a26b3e507da61ff14c4eebd89e444d9ab902761c23756c3f0642e15083be6880fab75c5e6434e84b8aa0b0388eb9fcd6931818b9a1bb59e3c4d065a838ec452e04db193ca8b91b2200e62680cc9111b61b9a0bab71b6e8b4c246cf24635fa6f4b07055b2472715db1617d5b9edb30c7c88337faab8f285aed1945bab7c4141c866a5dc19af4988211977e473271abb76c8cfdf5548580ed0d8cc89add8fd60f7b82ff152f76b021247cf3ed2cd8ac222f1ace8b6d80257adb76bfee3d8ec5eef29e09330dc1e0c70ad773fe3ce4a30fa5ca4c0577e00a7a0518c2110d623f132125e331bc009319b3fcf5554c84844b85a783ec4c188983dbd07bd5b1e947d0c04fccf3e7f715897b97b2aedc04830a1c139209f2b440ffed98fee8cfe2f82d76a03a4ff2f4c35714d9d56ed0d2d38d34f04647470f53bebcbaa2a2a4c869ccd6fad3e01692beb3c8d8456192f6fdc73898aa162917d6b3d291ebec5b31663235249b10d4af5bd983ca9132475e1f1408bff35e6e5437cd970508a46409a64785ad638d0ef0162c563e8663451669323e58c47b0a9931e8029c1a7bb93de5d0071964cadcd923939094348c10f771a86bc576102a4807b7f76ec8f807bac7678ce186dea8091164725821a461a53e7da551f085e4c549b20df06033ab54ecd1dc1661be3c892412bbf51f27a850238892c149ab3f5adfa073e5b4deae522359a805e39370aa8de44495b58272ebd4cc206fc633f27d683043ae1d541c0250a6c7b9a589a4ec30e5c02c06070dc480014c94b40b443d7f5301fb09c05cb83f7142a014430ae7115a1a82eb6f0ba389a58aedde92309ab91ed629f1bc25e47a96a709130a766729a7faa49c31a3a7329429b6121c199498ca3211aecd55954a5c4ce5af27a624dbabf4b227be6cb60260b0c926ea9bd0a0243c230994054ede927ee562525870536fe1671598af0f0eae924b795a3dfaeef2805dc92d38e16d74e17475038d7a123411263b0928fd3dae6b6120226e1392036d8eb5f849f8de017a60ff72cd75b4d792536b921d1d8afe7e0e2e9c5e7af84b7d19dbfbe3dbdbeee1bc6e4b1faa54d35810eea3366515aeafacce3f4f1e48034c74804389c38fd3f442f727e03fb18142e5176b6f6270502752d229584e5d20083ce854508d62b99f1f0aba3d684b7135031ec1c9084b1bfb2f910f9210eaf3ef6d26bd608c705846002ff65fc3ece5262d3d6242950b12b0dc73804b08c2ca67e03b485a99ad325d11c39f5c915de2aa2c209bfbfd59518d329b1ed645452c9412a770551de1aaedadee99b8375d695eaca34e1c33180cd1305bc73feb81bf089236e61c55250951a821653efcec6e37b2f13e2b53a4277d3b13f116c76cd52227a08ce4006541d432b4f9ca0715d9581f50f243288a415add50cb2c59198deb0d9b8e83e178dff50d1e0e79a2236ab8286cd08cd47838e7179db0f582040a861ba89239b47c820d45399a4ea12827eddc61b42f5bb34ced97708f5c5a3d7cfaf683eeb37d9775758133eb045edc6ee849114b5353e93f8b21ebfeaa4a8f35f8da25b266a086c41ef8c2faf923f8b71886ad5ef56234c3bb2fe20ed170b707ab9e042e7a310d43222531182ea865c76b2e1fc3545675012d1011a187971802851ab4f630f48825532733ae19ad9282b4f57db7b6b3c2cba9b416bd990643ced4b4c72c16a7379955df715566dd60f79cd22fb4d377d3711a82dbf9f9a835644fe07e074a9101463389e48ac40c970bf3ce83e6e5c61bb78b118cfe26bd471c50e7cad8ecb262780a048a656edbbd0d81640ec572ff1aefd645ba8a808d332ac646fe527a9f9e71e7a6f1c49a2d3d301ddab452b5bb206c9b091cf5675f9b4f570c725448caccbdec84d8463b0b643d6122971a3d2e3e9bd04659466a32038f48a8e0a4fb06b629410910713061c30a127ef7dc82b7f7fee2eb56ea3d245fe9cb606141798e4621550ea47ea781b5a1017c786b1fcc69b0b6351f710e6ff06e9676aa6f852a90f22d962736167b202b00e89a436719c3a9ca58d534cd5293a15f005fabaa4d2192d0c4698a9aaba69a7b7d6256d90d772c2eaeb406506907ead2c3fcb43486e2d1776003da455f5a5e1f7acd310ce4fb7491d4e88676bf3db83737c818bd34f811eefff168fb717a14f5ccfc9a48c3eecfa4ae115fae19a7a371b6c05e2a47794e2fbbb5e6920d40653f7839fb25e0089a9935a2d6f63a8a9ec57a967ab6a95304d9db2b40a317e9fe368c20d5326c3b2c5bce789876dea874182c676bee7b9452c547592bbb7debfe09836b66a88155970367c5f65b0e2449e211c233d5a1886b899b48f38ca4e7519238ac7f9a89adc7420263291ea069d7e054722a002eb937a63fd0d2cbfea7160dbf0cd0c052c2a363e1da2f612ef7fb5a6406fd9c03d43d72b437ba754588262fa77b2f8b7efebafe79e2093776cf6af6044a20518844d3cc27a79358488369e22f60ed04c7eef7d4390d57e4faee8f926d2da3c90ce8c4f43ce8ed85eaee72d21ac4d206d5ff05b0358f4e511291e8ed3b01a95475c84a2096a6e0c7b90a747e0525e220c20fc337d696c1a9c20864ba364cb811938a71862e2eee3536e43830ddb30f3d7411a459ffa9a599f61a3112f1d023fd0a9310f1dd060fa98143d31c326ed27c1631b4affb37f9c26313ed02e3133246fcc0ebf4004b237b592b22a9aa193567dca9818fb75dc8e665faa1e8fb07718c741317f0d264425bf97e3e4f7ecfff0820f19807a6a266c720515a87c88da56dfdfdc112818fa795113dd9f2da5c655db93caed1a2897a8e1daae84ffe242800c2f20779915f978d75e2590f95d229d56855349fb93cecc2937e77f86c615615fa61b32b659a686b806b9251339ab712c3c2f0e4bfcc075b0eb64635634da2e8a9c7ae5cf2d465c9fdd29ce0d1c2ff01483c3fb2a0f70c943f7ad1c2c05ddf0e5ad786660c57d393dfd81592bc79f18367d7f1dc60a2079fae5493d98241d7963d460b93f93693d1929a105f046087b565dc500fe4311173f35f01c1eb64f3218c05a31abd7f0e737b97e4ec35bfe3cbeb5ba29ca10011a8fc0fa466bed9d9cbc30e93e71a52e6cd177743b7b07b13790b0735866f11a1e256a47db9cc5a84e0d7e62148622a0734fb8846a0f18b5988b5283ee13f42a5731f9ce03f559d9b24f35bd1ea851e6fd3f48238fc3cfbd9505601f3d9e53b540aabb65cdf0e4ba6d844280f670258c16f213092be7e447d96c592226f4f800c4b85bbef01fd0a90fd44aea8d3cf67895c4659234110e1f4cf832ebad1616c5f9a3d3ee6ddafaf70870498fb4eb539aa2fc523cc6390b1ff73af37e6b42344c5121450d7d1ccd390333f40bdd92be2dab3abc148fcdefd7f87d16b4f0081b1e4fe29e494faa70af7c51a663aedb27a3aa6fa86fb5cfc95e6f19fba4421c86fba2a25441a9e257a1ae6ff3a4794d4d342a57d0cf1f7ba8d3468d4c121371e017d53dc65e5350ad2e808a0e853bb9f0146fb2928ec25d109dd831ffdf2fc19fd382c1fb49c6258055918f504c62c86ca87d3041239136332dc5fb0aabf796f829ce8e51d4a615c134a0b8b0b6fc4990b4ffd29f6946260a901e220433c6825ad6daffb816f58acf22c60565f66147fe98819383692e7ec4ccc7790820a27ad0d0790a0c0932f287d1a83451f9dd010cc9eebfe303a764b1d6344c932db967c47acbf2d7766d0bff0e9d092d5041b31d3a7cfaa00c369e2bed7ea2162992614c792decd0026cef72adc2cb8ca9406429854ad920b7e2520356a28d12616d5ae33d9c38aa4c452194b36d3ff3e3f1bf42a9d9763aa88f02026f4a4ff57f5be4183cf6b10c81aee8ad5fa12df2263ea86d218d1ccf7008a399260c094e3e698ef7ea8777242a01b942d6c8601834c287f40e90ea552cfbac350b2d5ba0dd22467ecc4e722a2e7bcc6b666ed46224b9f861749b2e7b51416629b67eb3b54ba8f3411ef08b7c9ad8c9180dad11c5e5ab9bb2cbb1a8610986171dd7d6410d3f87a1f4c4057d6c6fb7d47bf06f63eceee0b729315235dfec8fb5e70fb6f9994cdeaa4ca8d5231c8369a232ae2aec25bbc32108bc84b3d3fde1df1cd8d264c59e0ded24dbfb31c5355ef950184739869fad205fc82336d91994230c5e800121785089299088a47b0867fc236d0219395839bf5281f023c2681258a9e581cf04bbd9e63415627ba13621f88ffe8bbeb5bcfda3ea75b79887ad0b4014fb788e2bba0e8a3c3ebfd4129c3988afb19d5403600e7e39b4d52f0638a9dcc49b583413a9491f6c583bf5d2b983d3f574f8b8323be6ba38806dd3d29e27f1f0a10380fbd06744b41618d5062a71f3c78c3706d838a2e0f7a27c4d84af2c144476f69f12e2e86bdb5cb1af7648884330b64b5f87ae4515ccf87dcf6ccde2815c5a3edd9ad73e06345d42c5c0b46a638761657ab8665f51c3f1750afccc33772c3a4fb6cebb9102b39f491df15deba7a1be91e744bfd7164acbf1f641fd7bd3cda27897bb41a83efa2b9ae501f60b5edf90d29852fdb61abccbfde82e294e047c765063cc51caee1a56d9a284ae100376c92f347f744dc92d079de01d29ff4e039882aa3a790bdf35b8c2eea4b48243ad58b93e8d0ffd47d078bc889047274a8d05182901160573a7ebb825d6dcf91d21b52f0798658ac8240111cef75868102394fd662c5475be7e15510f556c47c71ca3bedb531494351ce0d83f92f5260855dc892a766180805a38c0d5bb12a0e7ead6b5aa5d921652d7673f6c67bd1f9d975cca97407bc978d4baca50a952fd7c20d0c3384148c4222da578a23c6c7c61fbaee3fc193f0d4b071b636558aec419bd72d7598b20abffdb61981e4216f0e72ddbf52cb0ee6a56aeb3db92582b225156770f51ce59dba34c8a39534e0151a6fcc4721a416d24829a99e5fd37c0c598cf7a78a29d920a7cd8306b5ae331fe2818be446e3d7a51e871d1f2a56256ce39ab2357bcb27de70aa6fb391560999318b95641ee95ab7d3759e619147094894b14756d37c84fb9e300bec4c601444901a5cbbb5fc3c214efad7eca0df993fe862d64689ac249eb445ca21b3f9b1432d3eadd52411da0650e2cb508103c115cda884f6ce29c95eda1b0187a328c3254d7d0391aeb1610c2f51fa6dc12e70daefe3052f4cfa7f55318897632de1895ee03d83f59eab10cef6bfd338e17fff070470438409e4c021cb22b9946e49143eb259fd19578862f75195eea33b89267f42567a608ca9a891d7da520c89cc685c90e777b2cabdcb6cbba2be33187ce4b3eb32b7b065fe232bdc467b872cfe04b2eb3977c6657e2191ea5eb1d8e5f0d25be1775b8a7a052c0c79b72e0185ec6fc3f6a10e6914a1b6e0de2ad1b266ce4f6cd6cda3645b6f33d21786733434ddeb90ec654229346c5858f0fc928a2f8738370fa995570bb85885f7d92676284336702e1e63e4241454a2f4681b4087d9211a32e3cb6b08a8154793c623b96ff2c8072188087151f58958ccc319a0cd92fe969bde63d6bffb26c956d911db8e60ab5179850cec60cd9ba644172dfe51ae924d3078f0a149fe94569d874a161dbc69ebcaaf02b1b85c8a4cec59192e01392d29db6aab2c951d314d0e9a53856e49357842e216ff00b786025cad953be24d456a35658f24cff3b046651bfb595ed0eda6b8f630ef20b68abcb1e54a55f63ee65751b16234ef031d059e67d06e8e4c875db8bb942840a3c7704ba2523c136ac4ce0c3090f796f872c65bb0d1d2cf9fe73ef6a1a0a40db742b5c8b3b8771c0465125086b43b06aefa158a0f846348803716064ff24047666a831cc2981058cd08f548392d382fc74e619a2a645b348080345a2e1e0b0a8bcac405c55a7e313faa9bc26dd5f279d577569ea4bfe71678b144bc5dc7bcb70487aa33e5d3c0b3abcd994d2db5506427e0b5258003fa761957787d1fc4b75a5c1512eb6cce436aa0b1d975f31393834aa82620f335663bb89b5c0a3ac234809ed49fc93d05143d5ce463ee1a6b554642c20088dd101f6f9779f805516bdc02f4f4183b05f1525c039ec47ab11704123e95e7440da037f20e5d079e34c910934ce08d50c6d75af66c25972804b95e4badc21a52ea6b1cf8950d0272134cd791887b2f35ce995881e650e76500a76196fb5b11fca2d805cf758a8250f6f6a6cea7c17dc1f325c9bfecd55ed41dd5326d40aba3977c005ac43c9a9220e10cfe210cfca5b67c8f87d2d03d7ad23a11531f9ea410d6294a84a077613f5be5704662af7edd293564d1b084de8438c607709a0d24f4d6c91890d5880c3a559aa032d752c06330d88a9809a97146483c101e54ac7f706bc1e382db1da813f0f9c428efaa294f72cfb90f5ec8466c160e11f38e38387f8a6b6901d039069882cd3a0ad88bd9ed5ece1f407871b9a3e54dd5adb7d0912a9fc47f86664850eb4af1381f5951a387b52f5fc1e686fa896402a5eada48c9aa11c48db663574626402c43416128da5532c90ac501ce0e365c51d78631328894252993dfe5218abd4280146e80f7a9865322dd92bcd6e3cdc19ac7766233cc7c7fd518eb91b5a531240f0c2a796415c9cc0ed288ada4a3ee8f537f744c1b9dabdc1aa751296fad304fd750bc4f4a03a53797226e8654e6ed28b05f9062137b1cc817a5613901f1dd70e5ae9b9665990623d6c47afe0565a1ebb80e214140c832c2e89eda9658a2e2783ef4f06020b7c742d21a45fd2d39726ffca8d4fc5b1621264a1b7f18cf6908e22ee79bd878b965e0647599548e6fe64b94e298e7f9f24c8144941dd42070ab1f5f92cc4cb9090824adf868fd549759e1fff516b1e17baf683b82be583f831e2b5370dba24b757992e36f3dd64452f6cd5f8f7adf1b17246a6a9d24c7e8790509e1f0509d939606c3e4f7c82fe4cb3d0fc1174f93a38b8edf28e3561708598bde8b502995a37aa7cdc6348992fa1a06a18cef8b94895b1ac2583de216c699ac581338d612bd0ccd9777120e554e411ded7ac70ee90f46bace0ebe8655285d1cd89c60a146321eb26015ce9a9484d96474d8ff6264f68d48f8dde22c1871d37bb7f2230747e06bdae0440cd5089ee2ee8f66e921a541f1bd2f91d2a463bda794362767945aa3b01b5c38d1ee256de90c9f4d47c78ecb5f093eea7653ac52e92a7a49488996c247bb4414ce4f374c2492770cd50143058a1a8899382e32b26d17c4ba8b241168973df5985ccfb531dda9fc215499da9b3219a08359fe4258130016530c807e0dde51046c42bacad837ef8ba0f2814a2b36f8860bb8110cddc53441b7c900d080d9f23ee46d028079001a70b75871b5f53a8d9a297b5aaabadf47d99d6e95f0d5e2a9720fc507ed72bfd55b564cd5d33b05834717220790e6649407a98822f486d4686f4b4f4608af05fc8de0ff99c89216aaf031841cf0cfb00cf247eec27ea51c4318eb96630df1fc1e6680e9c4c772a6fa2285986f323a5952e1fb52b171912e596b29ad110da7a2d02c65225395054c0337ccd84cf609936b8b4ceb0477599093152ab116877386d30036879f5df306d64f8dfdd5ed49a68a2517eedf8ec36318566343fa3dcb99fd840fd668317c3113fb228eebb7e073329dcee2e16a03b1451b2d172e3aa15169f53068bf49be1976ea2daa25306b640f8dc43e282f40f0e156f9aea2f3b0eeaae3cd85fdb86a706269b874404ebbb35ba80b43f50251768094452a5c47aa732387a02f9b3b890e79057a8451eba3b1c2f560fe1ae06ad13e3afd4b086fa50bc0620fd8c4d84fc8d05fe944004f53a110931c4853ccc8f36b447b987cbc67d4cab5d8d83406c3dc9b66383f235fffbf8ae3b5e03499818c66410f17ed1d758d4a6989c215e8458072385516d0493fae8c37850429929c8ae1276e1be42c6e9b5b73c4575e311f4709461b1ab29d5a4ae024c125c1ecc6e16f06aab09a11075dfe5eb8eb797419104dde88a3c92f7e906ae267785b8950d94c382fda3313088901b75f52c7e161e0baefe5204e53334a6272aa04713ed9d04575a2b2d6588afacf6c3193accb9aa59bcd1d08c6f9b340854377ecd4dbd97fd106b7d66cc19f8720dc25da2828f440dba9bbb359f95bfb5b6a8474bc0f2ea43570ced0afecd2ff38c0022e139fb8e0f1e3a1ef60eeb995c79f960aadb7045efec09c45b31ff359ae3f9391708c7fe3dff86682afab0b2cfa2609fe0ecc4533e039d99cfe7c101d7060eed377aa0fe5835f45a50eba531a5dca4950662135a955240bc9cfe2a0b0a06477c4ae7312fc3e5a2aa72dcbfb11283c172289f106601e0fc48475789dbb0228275fb85d281113eeb3d9e1f70c1f8f0f581b31210c8f05d8792552a9267a1306579f8c9c2232c57e1d754d5aaffb9d1553f0fd0f64476f3eab53ca6efc0374f670a119f21029159dc2546f46298a88881b99cfa4084b774517770d8faa38b9f22162247e183d631df08dd2ddc5f6732af7fc884fa1d3f6921211d31bbc59bd95dc3d6721497adbfd0c578a3242e1a7a111283828cf5c050d7d82ff0bdca0477cb03200220f6bf0642db16913b469822943c74c3d439b849ceb143e00a2a58142fca2b0e8837e87c79005c7557a6943b8f170d3d0a1157679c256f6aa046ad1647cde93b4ed3fd40466d093f49280f0b71255c80546871b679487ff966b67cd30fc26645d92985095d403b91731f071b4c20ab82d93ac8371a20ced9f0756de160100940546a1272642eb19502e17b4a516cb97094a1d0a8b3c9c8221ca080aff22a10b72d2d9fccfa37f3fec030a7d3b533c14d7c43f4079c4de2a221fe844340b6bd715279eee5b1391351d66ed7f6101ebd8095bc5027b8e5ff86ac7b4f1e294fc83eaaf8f525e9ecf2ac2a3bcb72417c59fab89c364b3235ff02d797575aaca9b482649875ffa0b7fdf9ac6a35760dfe9f2c82fa1da19ca807d90d8d8a3db399608d68d67a9b06715bb72877ce6a4484c424d766f449463fb99f119870940a28d2231b28cabfc09f2ccbf2ffd6658464b2dc151ff5b7aa86a8b53499b5d0406d7842402602fd2ca2ce4864ebc03e9f9d1389c06ed7814ecff58c27514c62920275de88ae6e1cbc0df31e272f44de597dcaed77b0d947018ddb0b163823cf60c8c1a1a7b45d0e816aef7b0856e78955c0183e82bff7e614d9a6813f1ccd9fab23b9ba29780243f3e24262d43e09f4085ca5f324d0c42f7ea51c742dd2d2914d111a019f1c41d4a445c66e768586e7ba1a652fea0598714d0dfc167db95c314a76c43a1bcbb3278c9557c25170d05f67f0cd91c13acd34566aac3282ece0a75c81d172def5b865ae94f3f1a436ecd4107a49017219a792c8b080293b68964b4f1c1a3f06a43fcd3eca5d26f91c813df0b23ccea8309bef98f12f1bd10f071ef155706e3a4184fcff6d64446a3ebfe28ae76002edfac45c63ba7978112e4df86759886680a0ec33002bbf643ea3fa229cf6102a08fe7b55168e1aea534aab1169a070d20aad6898f604c22f394a7a969453eead72377534f04b788032d6d63373f9c95ccad56c7b85b4a81b707ac5275435df80eeb857a440187ef34b37cc4343aab1560345bfaf63c480fea486d4bec97f5da6c65b2496fe09b36690c9ec64f94c8a4c41fbb7d546ec29f5772430e00bcb7a5bb5070b6ce13af5cc8348ffac808edb418daf3ef4fb7430d00043c9bd9552413066043455f163374ea4cb2377440afe36b75a4e21535f6c2d2b03391c94e5a35fe0cb8f7a10864b7a8e015f448176c61de487fda78033e360c6f95d18bbef8f5eb6c84461d9fa2f52b8af9e65c4cff16d4ba60907b35e0e06cc1c5aed38818414a5d276a5043096cfc35fde3312a991b152574904148d67939bd9e00d96a7adbe361978c5f4808de1d9c579f4aaef37e5cff8bf426c52e20d675afb8271fd8c290e21aa9a37ba7f4275fb5b77e705e5a5b93357bc4a9c2fb6642e4f3ce2025c71a2bbbe332321c3a43feace5e11b620d605d0c4c0400ca9cfc05b61b8ff26280417dedfc5277b91f157954d79f32fe50bf2b976b424c523dc165a64239e854aecf54f73c37f58c8039f2e3e960ce0df77c19633a7c01c9815979f8e1ae43d562224c7bb88160dbc0c2cf30a8c0656e4bb0bed1d993005a239d5e135e43d8700de8aae866673cb7a47b57206306c77d391763f393f2d7fc4b4aefa038b136d48ad7885ec7c903a64ac07a6e251cf90e2b4f9c40c859c5084e958b4a9ba6d794d501db89c39e265b3795a8449724c57e7531f6adbfc6d38c9cdb8f7412237edf036975e834aa3e5490bd81437d9c38b38be47dad0cfba08a607cf9fee0aeac6db50bc5eb0c701195f71a846eec2a4aa94239805d85a75fb6520537cb5d5daa4a1e9769656721e35255869bbb1faad3e8bb545c4319b640107e0e2887a8dad0706a80ddbff0a14240666726558a7d8b2147a59ad17b33eb1993560fc86591920aedaf577588eb919ed47ea98f1e8fe629047acfbea4970a0a8ff38a79a9493c5783fbd393b7f021e380b03a840a8996f408fa38a11b7ece3f426a21a0ae74213bd07c308b85398f249e5dec0b63ddbacf66ed4c3a015126e31520213267da41d12fd6a20b93f482089cb72d9a3333e1998a4771c4a9a113b82a3556339fbff6abb58bbd9d06844ac8c09ebfa5b27b3fc3f1560971a6928e871e1b4cfb6c647e4047161cb4ff4ca452f5e47d59cdaa52d3b048cc95f623c9a8d1556d2e5ea05c4561a247f7b453caba3cd70798b51adb9402a1343ff3933d002e660a32bafd210906a24e77c082e3d67b6f6302159a829e0a3c51f5d1b43a5e1a0935f0ff36c85db4d29eb18543b6bac6684d5d7428f511e3d3d1ce7fe085ecb5f30413e733447116ef1049c1deebb657d8f39d6a9119ca5ad9277571dd0c0db4bad59c445abbc0db2733cab1436ad5271bb66d7e8803507691e537ee18c5adb6302829efd40df905679aaac52c8f3a205218202441de54e84ead95c0a34fe053498d713b376bf6e0670928e61b857cce6bc1f216943aaa5194aa64fcdb2c791b3599072b2a49a551ad38c00421974118a747464ab3edfa8c4e10c9189b3414577421fd00514a0f36e008196b70e26e7a611ce18fecf41c8261290cad87ee76bd5badf562ecce218fc76024a3a8138bb0485788faf8fc0fbb5479f238fa6bb2895d09bfda4424ea400bf77aecaba2e8ccd89a584452212a06361c9bb531740bfe5105c7c716de0498df17fbe708c4a89b799010fbe9496f607df4b2ab49c879abb6ffef6a9378b21c1ff76a39bc77b5c997711159d75f6a80707a928059a40dd2f0ec2b98a121c938c7d59037136e9c7dc85742f1c86ee1f72a087c9ddc240573a3ee5de0710a2654a6f0350632236abf10dfa9ab5512288a229757cc090b5010c35ca44374dadc212d44df8ae78fdafa64284845737c552b602716a2d9800d394810e75d96d32265f1de4e43a1721ee17e9e39d8bce952ba2b749c78639b3060061e9e0e7d44410347ebf40f1abf7ce3f08a31320326107ed264afd805532f00246f7d9d320c44b16b22cc1b7f2b56dc1e0911d88465901f7e5bb4c735239c76fc670dbe7aa095f513d398ae8284d3dee68aca0b186fae281ba25652e621f06fce14b34419dbd17e0cbb7cc80591ce7d460a5505ab0037ab0ec8bd21087db86e0483092fc58ad0928360d5cdcc4921c22738dd29390541829376e4dfcbd624011a84bc6ad555a8c62bbb82ae1cdc0078c201d91c6302482b743a097de93a39e736d32f20fcb26326497d3d2c1df5513d268d958e5fce06510db990a54534606bf05cecad01fe6f083fc46405c19416fbe0d5a9fbe14ed114258aae74053ff633ab97e461d402b22cdb7ccc75cf7083ccae17b9d51a9f1983bbd7fd9453ebe78dbb01bb5a641516a3892c64e68147280a885c48d44e5ddb0cf7f6fda7b9ec74d9f61c89d8ea6eb850c9087e1d54d931238563b5350d071b00b532d7d3e1731b2a30ffe9348e9111f409f0a4bbd3eabf9ce4a2160d9e8a2e2825b1b31c8d80908461111e8e9079ab72120f23c398978d758698ffc18b1bc058afcde6809573a3e9aacc84cdc8dddc4b7e9bf08eb892f55fca36ce5fb397dd06a872fa3da4f3e4ecf971fd24ae4640ffac8828bc42c33714a550065e6150abe556644b208856d0f3dc5288a539615cf712ba20a225f09f6c24e70fc4f2e7fad7e15f5e58b6351a4e6b90424b7f10233a527df4f24ee867b4aec8ebd525f212788fcdfe6f65c7badd4e938274036a7363108b91fb7a799c02fa4e25754f4d369fdd9350303d8e01d62031c4dbf37b0278cb47de25f150c6304634327f9e9179bc1432b7e41118ba0bd5e87510f49611d5feb9e09a31965254e0026fa75920c13eace5060a671df0e3b3dd81189e1ef1b42a05499a79c9ccc903e2c640af7c7faff47d8a3c1872b1885afaaac5724a6df1d3fc5f798e774eb4d8840af8d7085baa97b4ec729967406ee7fa0f02aeac5864348e0e342d93489877ab13a0c4595977835ea7d38dad12414e230117c8c2b876b2fd1864acf0f04366d4bd926fec1c1dfad60fff1897c1fbff92824310168b901a61fe7a5b4f3dba88d8393bb23640f2e4203f0fc29cdbee1035b78bf0479ed293213801b3d8d7dfa8d26eb3badc930cd8facc30839e239fc70e749229c9400a2f7d789da55780270f5c61a77b418a1471b313008f91d139aeb6c04c305f94def637826361d03c60d750b01df31a678dbc8ded799dd6a3885e0fc81cfbd6c2b78b78e314e1e13aec5d6b54ede4bc4ff99f54b3aaffc67708812df9408d2d5d698b32baff75797c7d08e5c4774383a628c018cdcb2b17fcf81a735b2f9d4fdfbb1f97af915b3d91dd826a109984d5befce2e7b5bcceef8137b43b4565859662cc5e56cf2ad2d6f675f4578c03e279fd9f9a492cb0eebcd30318437ef0868404ab2a2e113e4cb1f36782b1616592159ff230901fb14c4a650c10d8ae40ee359afff28e7b97c347f779cee0bb3dd011aa138ad4f5b0e822a2f393f5a9768c648940c0823c7261bdca8d046430f4c145ee3d5108ef003fa6231a6a7421e7d221cb1c8140a0d8b68351659fb89489cee8d532225533edb11c13394ab63d32d75265c3995b9b44c09e798541c3deb152eb0b34d199a2f8e02d2bc58173269205f314baf5c200e24205518b5909bcb50628a5afb58d360008846e32bbd2edec77f824946b2293760a2c0e5e6ab643d2c7e61cee3c469e27fad46427802ff2006e84e30e0122d70bf76f1af43d988b05e1ac396601af514a8494fa1570789ca9ff4efb453723e1310f1f917e92d37abf50abed361cd762293b1174e73fb6b86701e71211257b13ff2773b089318e8b3413ab222176a07fae5658a350cad61671338b55a835631bab43f8e95eaea3388a303a2938303b0bfdf01706f94d591326207e8a6149544c09a66a2e2a032701606d0b576f1a22af63567217295b14d69912d159f0914a6617845445c94373853eb59152ac04bbb43bcdfc0d01641bb391a02e1c32951ed8cdaa3c8aea978a23c2d4ad262c245208331c9de7da165d8240b22ba09834bdc419dad6b262ad7cf2d55548c525edf3fc592c8c7580f7609f61ad563e2a40b734b8cc03dfb743a7c964f764336c347b6f1423f4b2176cd1d493ae3493e86610d00043a3d2e8551e2b2cae00a477552a41bd7cc222a27ed38bd5ed60b643f915d7d68a76b33487eeae64828fcc2a44020750be3e96ab6b6cc338f6cdff28701f44201b1bd35510942a6b14a8fb767ab179a84f8619f036aeab544ba9e63e0430ca36fd58457f109247d05fbfa0a02f3649902fc0e18cc6737a1b5aa6573738eaaa77b2954ae2b7f85c561ab8812dc0a278c4f39ab1f333aed59d1e3e0951721294e97977dab4cad215c2dd279f9d4706ae47cfb061cdb33570a7e6694e286a9ce642eb0befc0864d6e6561f632f5197b32affacac26bd6b706923070620f90732ea8cb2fac87138872a80099da81e98481ee157f29fa1598a28a5f2931226e0290c92f4bfed19ec85c26540d18118e064fae509e31f8cfb508831129b309ab7c24266f67ef6c440daa5aa2b98aa653ce16ce213b1617672aa5ff95c930fd459946ec83b6b7d5ed71f582db1bd4da36dd245054a4e3bd79e0979297c22b9c2b7dc37bf8901206f672b3410958dc5839a287afa209fd0951846eacf97c3a1bdaa024a474815b4e481898c6a7c16be4025b5ca37537311b95172246d768dfadeecd2b1053e3411324e0d1146c5c04223a4ac4b6f9687481c1276201224eb1b24a9a2ffd71148ac14148649926ef0da05dc31c633319fcab61021204c4c59d08f8f18d7d35bf4ca9d02230007a68b48e58155424c8030d2823b342225ca5f28338f7fde9a9fe39aaa695da1022765d5e96012b0de696ede05941e812680f4b38d077f39c367ee682c8b56d999eb630f60048c48ad34160b07d4e0b0dd36ac7889567e58895101ee1795f4b8c00b9dacd3258db0012e52d76a0d233065c418062fbb227de81d559191982c025d0b5747a1a44769f94fd3e903d7d63ee02c2e5f34215345f5736371318dfcf75a7459983e0a97230dd77c547a7e0e4578fc19f6d0cf55f4e116c60b0eaca9eb6b561bd8a97543bc85b47e9e42a4c7f82e9a5414c14023344a6250682bf99bce4b779a552331ecb8d63ef1aed751777ef8ddc92251754c62b3b055bbd555226f13253645cd4458c8a31d820d8a51060d4eef0bb00c6e49d8efb97a0309b48e1b3ad99da90acf37c937440f36a35e66c0874b5ab962cfaa89dc7530b42a4799688ef15c5a6d87828279ae9255fe822c68c933a16f3a92b82e8b8f3de78c039903a8e3695f95073904a120539cac80777eed147c1ccc61ae8d06dd3ab60b7ac1f94c3d7d0c5d97ada8c23d253a35cd37478e25e9b8b177b4edcd963818f77657a7a952ceb89d6eab7a1d7996cb6e48cc40a7e2ecf3edf78e80b16edd17a4e3190b0dd3b888ff3a3ae1f7f928984f8f723ace5081c3ebfa22a3fd7ab360c154e46f9f0bb129b425a3c1a05f1e98362de8a8144ab5405c396faa978a4e1fb88451f7878d8343a9c46270b7b6079a47150d8acdceffa4dc6095bae292a3749c6e87aef23ace1bb9d03798b6d5e837ed3d593098d30f240afa84f8c4b0128381a29b8e4db98d45a1f109b8900cd6533c710838b532ccbad9d412c89eb1e6b26220e9d04d7027c93954cdd610d5fe89bf854c598863704207ec81830c00f82b8f99c017083de4c8d36fd9de2e6f6f80321bacbf45668a5fb7747967032d9dff764fb199c1dcb129a10d60ee258c232caaf8bba66659a94b3cc53bf4affee4bb7ad49603e36a75dd46bfe435346141e47c4cbd0e359e14b2afc9d9a794c8698f28072eba5784b4e115432e26fa0449607500879171240fd52d7911ac9b4c5f12913b2435cb50b8488a32af59103481088f370bd9072a187a1270a59b827785d26f44d0429b3c5fc71a2a515e5a44a233e64df5218a43c4a78fc8752aee72aa7a7e6ce861c0430d4949603c1118277b1e0dd6b877b5f000ed1f37ee6d1bbdd0ca8d69e6a6038316e16245417eff31556b7f56835b00ef645fa43fd6fee7e0d2ad15605b9fdad86b30bf8a7b0ccc0b84445452264ee7854dbc2cbfdb60a1f4c69370b09dd43c4162ac69173e4433a6bc5526dab704794e4aaa6ccfed7f27dc9c2a2c90d69dcbdf381337e9864563659eac5fd0ce28c27bdde8f5c8593b74fa297df7b19b268352f6704e9de2566bac86dc02cde99827d129743cb43766539ee8a4896988689e4671806d179b3626388f96d7e74ea563c559ea89b44a8ad330bd419152abb642152ee59f859ceb308db63d42273932da1e8320c1112eaf4c8c1910498f4df43f7a9dd15c1aa4f84147e4c289749982b2a159c451d6ca9f389c66ddcb29ab441e39315b4f33fe9a4ea2973eaf2616ab85b1c0f3b926a3f20bac64b5b6d29d779d6010b58577240b392a7dc53718790cda65e6b1153874dede3a19ed9f3d146d3f0e2668063ed567ded73e29bd34b2c86a32808217005fcdc87f7b14f1104c3e5ad710f3d54066144e38f7d0a1d8e4a0dd43b9cba1e393319da604ccc4dcdb8e6d59f3c9ac9c8de075ff02e56dec05447147d1f8d94883db17a881c8566212bba775081f0a0ba90fb44fab085cce45824565d910ed142bf31c68bb6dc8c6725864cff6c5b7c0ad3f6b41b54e8b06b2a32d90e2adf901693787a30c0d941b7fcfffcb8fd4a9401eaf65e4414e4470e0ef2e0bd6b2c2d43c726da441acb9557a4808da386e707119d19ae2e6718a0c2a92345c388cd172357c0104316ca047038b87d163e20fcedf218ec099a805751c40d86966cdcf5294649c9c6e3fd2f86a1017e8e4501f0f343db33004af08cf2df9434bcb3f10341e52a6a5bdecfe20efdd8b9dc1b63b34b9bfc05c5c056ed8b84b43374f1b27b9f6e9d6cd4b811fab8968ac9f5d77f8c505cb9dcc0a063d8412fe0aa039497d148899d4e56c9e89f2a74d212eeeffa338952c4dd3716e2b191f4c8b60caf90a601acf4c7d2c8a5f74f28523fe3e0374d1d3e619455fd664a726294fa617e6b4c903b4cb339c469ffd17fbeda6ce2a9b29e513bf74798896eab76537b966c16a436746b95ce1d6818479b9b13979778e9cbfe9e32ad70ab561e92bdb72eb5ec62644918616f938081fb424b2dba625fa27d7dd823bf25f83ce9302997e0f52080475c1b2a519818c7b205b45e405207ea090f1eee51b78ace5f45c92a54dc00055e7b9a81f75f16fe332f68ffe40faa70c0d3d6507bde3b3d1190942c46a71622cd226dd109c212704fa45770b296afdd1045bf99ad6d37f63388d8471dfbfc036e0604e187dcd4670135436cda8dff5d7e10eff8bb386b59c349577961605081546dcbe4d451bcf7120daa8dc2084bc383fa7346debefdc323c304bbd30876c02180228276c31c0ef02ab2b54e7c0941f3703f297ea961c679285b87e78385f179617e3f70470051199878f99654480f952b940fe4695e2ae31593e2702010c17a3e0e065284a190fbe213dc85fc7e35f0693a3cc0140346dd86a03445e7a02c24ace97d0967a878bba7adcf01edc14372439d87655e173c5bd9665a48f4a72bdff9e26c9fd4a86172735c54e6f76f61ae08c4ebfc2f487b6f267ccd9e11480c47212a51c9b0e623744f1e3ae131339ff47ef7f2fcc2ae4f8eb3f012561576c8b8b742d1d8c75c253309e659fe1eeaf7a0f0d6488d7df9f937ffc3932cd899ff0a2bdd73d21d0b426784e7b154ae002beb85d803188763d5a904a15b092504f43c71a90c6843e8f4a4f0f0f2fd786e0453600647a67f7d099e886ec01bdda64755b8afe71246bcd85a08d4426537d824d7f0ca49ae749162549d265d143a9a866efc2f79024c1c2a28841c1045a8bf4d7c13d16b615766165522c2a7ab7845fa06bce9e354ba5bd0fa6f0ffb0c6aab9d0799637f36e390ebfd2ab8b259b128f0af382d346d5994d7045e6bde011a2f63be0cd59bef101417aa320c034cab33c0c09f8c87b8c292ce147b459a3c1f37b1007ae1ef84bfdfdc34b18ae21939dd6f020e2cf4dcdf41cd75ab3f64dd8e0642e1e2882fc147dc15d006deaaaf4ac097e3c9fb71ecbc2c883487eeb8bf4f8bf2fbd48dad44efea48b3fde48c2bd1801001a610c1cc24438d40c6cd056f9f56d8775aacb56ae3ea89770760937aa87e87b5b56070cddaacb20bc8c2c7ad1bf65a966dfb7035145b047951f44a878fe5fcac634342b872c1491db43eb24733d207ec2c167120e5f8bb7454bc7d22d85577482dd14c877ef8c1fa541544a6e4d292c2fddb589fa1fddb8f0bdeb6c8857d980e0726cd9c13627a360aed12b393dd971603daa72699be7be3666b57b533f744a566202cef91af6eec2231c04fc2e544df377603f0e0949f15b00af25867cead77718ca002c12af2f80639c7211fea30fb5a535d5ddcc6a8ff15158b8428d071672980a8cf77a2f7f7870411d9d02c9e5b00f5cba641b6fa82cf731c5abd5a1d221666885262895d388aa83065b5d6ff6feca36b56283529769ec4d04d8a8c52eff06b1c76c11c93d056cbc307fd81c6f9d306c25183e7dba1525cca4f08a51425a7de677a38d3f4e3a866048fa2b8b99372219279c18e807e554531108b6beb1092927dfe1a0ccc9160bc1e303c0aca3bba897bb8ce010297637a913cc6be3791f8d0fa37f5230348e35f9b43453ffa7c03f430720472f0d774e3cbce424d892ff815628679811ab15b9cffcd0b1e4cc4fea888f81b12c1ea041a7d457c8ffb918342d92abd0fbe1de2d914f8d958892b14b7a26a0878293e8e0603265ad68113eee34364541864baad05c1c4eec3dac96a4c88e88dc278e89bbb1c0399ecd586098c8861651e35fe0d0e4c265d3e58ce20df3c574401e65c1a53fc62a856e854664ed4fb54eeaf4a64f1e7f280206c11944d6cb51ed9e51c7faa84fce8323d295b7c11f62c943b5b2faa25297359da888d22b8d94bdae04d202553f77b2ba45c5d989f645966c3a4f04e05c3b608998fd5f938e52fe34c44ef164c869111d56b034b80821685372477e45f91fccadba33f62b7bfa5a7d25bf1dcecc2a37b96ef9fe2abafa4e84d3b8168da23bc9bb939b15a7ee38c5d15d12459c75f0757e2f9fe3dc5c1ef7753e39fcebfd6bab4355e4330c96d77ca2c1faa147007affec798824166386f75d3a145eb0539491580ba3bdd974b6b7540f58f84b9b63e6377c8959b004d91f9e54caa5423bac39f8fab1838922371fb9b5c99412e60614682d20dc9b48c839bbb2409e28c72de757f93af6332f5cea3e3241e4d44738c11a61a2eb398c0175db15891c2ee920d7624c06e5c4c2b22abd8fa19f729123a436012f3aa07905164b9d08c08c6dcbfc76c16c60233bc061f4e5bf8782168e9aa0833a1003ecd8c509c8ab820189518d989609a9d2e811e9fa0ba71f7fa3e9c35a4d811d2c418054d6f1bf63a58b199a9d0a2c70965f101df486d08a202994be8861098bb00ad3a360a14b75eb38f869e030efd7a7aa47e84246333fb5a19c9df4bf96be9aa922c824543466d457caa514f54b754ffe629120ab12154a3ae7be4ae5a0d7928123931290a914f780a1f6f5ce500cbbbcf0d7f39576e33e4b205042f4cd8ced39669fccb9763a0202c4da05c4fdece1eecac2b1893fb677382bf70f0cb7bb459b5604711173aa13c464e252316514a89fbac89b11c181ebb8825760a5532840d0e0d64bf0f0a25f5a7675681457a026f40044332e91026d0c6ea93483e1ece3aa5804adc3874643c897ebb280b5880fcc0dd11757cc8269491f1a18627faec432d0123e6e184a3eb99235a8657cc068387db86a1640ebf4c1c810f6715d2ca116e143b321f2cd15597447318819208a701325482ea4c8f9751a846365eb64937371d268557f95c60a131318cff8f177aeb121f6cd58d9f6d36057f4025d1b9621b512026517b09fcc167cdce25c6fcb23b5082125b7a620c05aec1a666793e0234ddfe262c48c2838a49c90b05501e6eb1417425cb2c2e7a3078e72e2b86bffe344f3f4d9c9e3a6cd0e9f5b32bdc8bc82832ae1af7c0ea5f878d3fd83e069a98bcac4beb087e55fbf14daf462b3ab229b7ade5d37d90d5b7e0d28abcd0d38585b8695900801a1d75811c2b8e0deecb90e8635a67defea83bfa0570ffbeaf45feac3c7e74349f1022250e932943da0e232789a46f6eddbd3aee5cf4e9122b0bc340b2e070007e5ea365770b29dc29fd82fd8236f8467df09e583e7c65d895e0bffdf193e70891b2ea0370e3b222369b8d99a6e9190fe999f7a5ba41c381b86694aee7b3eae7b4776e371e5fd357b1a8091a1240834e9b0c42e230a7f56565ab4093ac5e22c1eaa970132d0481e3e7e234d330064340c6891fe77010a06d42a3b72b37400cb742afc573971009d7af5a56e8b5aff99154038f9dfe87e5f0dcda1ab3790b04f3c1e6696aaa61801cf24c96fdcbb281c9fe49dc386e66c0cca4eeb5e338a22d3ea4f874d2a1a76a25db64f72e50f482bb594dfa90b884aca9ee83395ce3c566b7a00e166204af2c777b7403efdb4d747d277992b8c841b5ba76fae0294dbf8f65990766ed47f0d23767248effa9da6bf5d52882c0ab668b4de0f5d8c7ad60cbb641c426138bcfbc2b7d444331ec0225a2b09f2e0768651f56fa5c4cc87aa84a586c2f911b267167b3eb5fa2f80092e8348f65144f8a777ca24cfd39f248ec85fd903f3c87be5beaa09e9338f2f98a4ae88e7571cc16b174d7c901da64b9eb9d1a63820dbbdbcff6aed50cf1597117cb8458d825e0ada4de50a9c87f503105df53f9071de20cf54febed9423b557c1aa28f83719d069d3de9b3cc1514d25e0949be0e43f30ba233f050be9f295813e75355862ffa1a37132a3f9dccfef9e14d72b44f6beadd477442f035ef9a0e04c3ba61845f058cfdb91d02e53e07d60ffba6e35667b8ed868a265a1d4d29315d91bdda63d501c8aa36be92a356ea947c2d2a609a3f14097d71be56fe02d44171b01673445a6c9e49a0b060c207659eeefc959127d01fbddf5f268235d1f68d196bbd4cdcc21b9f58df5c7ae4d51e02cc9ef356967a164ef45ba1706395e789653d88908a15c6cc792ad722e179572126cc6d30ddbd30e334895929a1d96082db60dcd4ab8ca06772ab136c256e161b5683be01a68370e430ba4a54b457193b60b85147c1fe1ea52cb1243b8b5459b3198b213b8ea8786891c16377eee96f6a5491c68a3b197183dc0fb9e6f7b3a4d7c108ed029609c0b0bdb8557503bcb93da9205af171196827c0a44cf587994d7e2e85cd76a869cebbe286636ec63da685b4f35c167403c1a1125433e0ec60021735a5e98320a450bb4a155143328b16e7a599754495d324c46a9dc1694423ecc0f15ca51b1d3fe74dc720662340616325f01c5fe2d683a089a1a52b0841aac9012b5856c213e7e4c991a2974a2b7907043b39845ec72fb05af3accfe526270df8fbdb41d39f262656434f939c4bc0eaafc8134cce23061fdcf59951cbb46b860460c7d7c92cdbb2343a9890a8606ab91b1de3b25edb5ab0a45aef9a1dd7995d7ded82a1aa865687de0af4d566aa0aeb0ad3d94854699708be3ed8e22c1846d5becbb11f95249843f7126a7a8cbb04a4c18a685ed0aff2eaa8b1a597619b86622faa8018e4cb2ebfdb7eeb1e9c69c32418b0e565a0a8b581006d54e4006d75e310fb0e0a603bc1129a5d613bfd3383e104a17ad42944515e0c5f4834f7fe88f4645084aaeccc42431854f8ddc0fd501bd963feaa8056553bcaf727a8ad883e635c0b8e5a2c1aee1e779f7bc1ec753790e9a5a33ac61b6c5541a5dc163a1c03b92d817c9afb972008335133f0fa5e6d4398065cf012c111656508f9ef8c0238f163b40f9a8bd089c419a649621676f13e663a6e9af5b7565b27fe2740b8f4f2b13201ffe815c45004be3ec4030e5b20d459710ef5ed14d21368ef89ea4e94f7317ddc35746eacef93df1bf4a7d6ee25694fa073046bf15c94ed7ee3fd70528b712508ba0033e0ee40e50cefe61676c7a61f36c641dca9692051824011841f856e3711c968c996324919380dbc0d540efe81f382267065fa8020495bae8e5d638cddfd6f69f1c51f7077073d83df07822008822008be836076dc82eb640ec32f7416ec867fb5fd54d87d190abb2f7bd8bd8f4bfedd7befaf258c31c6163f8973f694064c26437416cc6af1ad0edfca54980c8569d9c3ec7fda7ef671b67fed7f4190dec37b9cf2917571535580d2f8277685ef2f3b87aff4a226ea2103564ac39789b0311541990c98f8a326ea21c2c497c9809572586631ddd9652c99201982a459e217cb0c881f822fea9002a82943b82b70dadf5b4d8170e334872f045f03e19fdb9aaaacb2e05f5365d3028427988a3edcece012bcf47cb1675f61f097b72c5dd1430ce6efcb60597a0b87e5fd717eef2bcd2ebd2563d5fb39df52597a6bbd39efbc51db733fef90092042c8c1cef6fbfc9f3ea338f193dfce4eb3bf9fe11dd85f8ae6b524933037e9a569ee1a5018d91ebb45dbaa01051156b55818910218d0e007135489023bcd3dc361b6687b6ccfc54ef0ec6cc26cf184f3fe0af30fa3296d620dff89bc6edd4d97c7c503739d8b55b5beecfbe4f7b7c64e0435763ceccaeefb9967671d14b85bd8eca60c3e592a511898bd963b83bb86123f72ab861232ab7e3855893bcce9f74a2821ab716ed1f67c9f49f052e06ef11f52bef530cd7349fbd6445e14a787d986f3ed36dbf8791b8378c6eb85b88d1fcf3ec7e119a6611ad2c6ef389c911ce739cf156dfc48f8162125256d7fecb708dfdaad6dc7d7ee6c3ba762199a56b757d1de1779a50dc08c948f90afe45e3e42ee65a48c846f18865b2c95d61d140877b87a60e775c7ceae717bd5e11bfccf33135394f041d2cde27421b7c1f5f91ebffbedfa7ce90c771b5c1f7fecdf0ed7dfdf6b73d533b0bf778d73d585c48d1db7eed81f7e4c817007896eddd317ef778514bd54ddb74aa46009d54d65f6ceb6ffff3d8eb7beef2b7d699377d43248be27bfef537ddf774594fd5dc1dbdf7705d1feae38dadff77d39ffa755f9fb70beac8e6507ceb7af7127038bafeef5d58dff718f1b1f976f447e997e36d286b391bfe32f99f6507ee97b207ffc1d30d394f16aa955bcc24feaefe1b438ed01c9fd1ec21fffa6374adf83f8258c9f2c8de4cff0f16b42625cc2cf92f16abaf1a3b0f1dab2f18b8dffff53bfff74d9cd2becdb543543e9c5bf51b2df433aa63b60375d75e46dff860fe444b14bc5abfbbf8aacf351569053fcd2758d79b5b919da85129c61fa60aa5a1de878072478efc52079ef3bf9f81350e2f2f77a961efc2bc32ef141f38dc637d331680757c1f12d4c14c537c5ef80f9dd1f1b7c52fc5223d32572157663d8b583afc00741710757c107c17ff055f04ff051332d008a57e0e92a98760049fe0ee027dfd30ef897a9ea7bf1867f99aabeb400e3975cabbe2fc9c77fa37c7ff271a89a013ff937fc4b525b7c6b70da4be4e097348a57e08ef3ca5c053f4c6fcc55f03d70de3b0ba990963c591704eccaff5b6536044a7bb53d9cae2d7bb5bd2b93c5bdc9b0b4d9c4ffc4e24a395d595a2bb3ad51b8b66ccfcf6387f0571923f175d801871d7a3be8d05bc920ac6af71a2e31db0107b237ee8cc30ee088830e3b9cf61549e0cf80b2055be2875597202a4913b5615c5a96204a75f0956333e83eb9615fd685035ef983600b08ba80e00b08c280200a04532018038224c0c10937d05003d9e2f202834ac5a09f49e3dcc1551d9706573dade1c9f68fc15b770757ddeeae6cff1b700ab0253e20c29c34c1aeeccee97a030d76af7647c30d250d35dc90f1cb76394ffb86afc30edeba36074e9a10fe6706ddefd15083affcaf134e1cdc15beff0ef66571d0e2ecb5b8bcc0a052660ce1356b94dbda9eefcdef5a37615526afe3fc816179f397ca4f934e9225d3da810d3e8945db73af9bf2bbf93d298303febe74bd319cae3629a73e7a90847d3fdb1771e71ae5be668d6bb19bf297bff4c9e08083b7f07bafd793c0755998ff9a6f8f276cd86a97b03d0d7ad203abda7dd3a0273fb03e765f7063195a956dcddf4102224a34d98980064d10c1eca3d8d5421072451801921230d9c12c145ac84036041938610823d05972e4a4063458a2085558f128c6f76160685ce383e98a350d4c104efc2b0c0a3ef825f043f04be0db50084c739a4d2bc579378ccd20fe2c8172632c1e63cfd9e29c31c638e77cb18cc6cd39ff06be235f1e4b9073fe72ce4860d92de2bc6f419cdadfcf709c3de77c6dccfe52dc04f83d28fef7a5328ee2989cfac4f7478130e18be8526a194ff2549a4cd3549ec873144517517c114518514489624a146344119511c519519c31e10f5bf9d7f0c127c330fc2f05f3ccc6d9d5efc1fc7d38e7ec3065ce39e79d1b30e2408516591322548802dad2552fb7c3782b4cdf8abfcad8f867e3d529635d285ef963f24bf34da7c78fda57cb870f7384b3c6e9aaa3583cd3552ca1e80cecf2d2af6809858d6b6cf07f9f4f667bddd492a2b607cb9ce9fa809386b12a8a83499f303a98ba3c7728b558ead860c619d8259c7bd8e05f70756d2f4f18cf5805185a644d86d8f8c3f8739a25a0c2ceaedee79d17b4c2cf97a182f8210e36cbbe378657f7af118ffd356fed1eb97aaf11239cab4d0233e0ad55edc15b2b0dee378645f13cedef9c1a955e0757efe3805d34947a34b87aef0cec72c01358f0c0084c8070014c8581113c84184112232002ec3e4b86e8798b4b16d1eecc87e77b01aec22333553c8277f68a31c663907d7b6464adb5b6fc147d8c31a8deb48832979bcd8b4b0d8cb51635933aca7db86d6bbedb912b5c6e6c5afe6603df912f5f714a759967b46d4a65db5e313b8f1e14ff08e4797174f46de03bf2d98e8a6c743b082ce7fdf5ab6d8b3106c006be235f8fcf06be231f005832ae205577c6da20647006bf100cadb522bed65a8cdb16dff0aa8631c618045d3026c796922c735111d26996482793798a600dd74ce0fd81249eca1b042d97eb89f10bce16971718147aba0ae69822a4322efafcc594f7057876e69c7346917067645c3543a3da248dbf1192f7bdfd4f17c0575786abbfda26398d2109270ddec2a90a3578cb53a3ef555fdd4f79b4acde57b12b066b7b0c15d6185b0557efcb70f5c6d8f755192ae4fc77e78d5dc5a9328410907adc6027821db629b524340142248a2a5cc9790ac5d2487e699ade3e0c6fad2aecfb56c57f6a1cabe23f69d5aaf84d9ac6aaf84d8d5a18abe227f5694babe22f69d166ab620ce26cf0695098b3fcbe9c53a3968fd1e2a50e64483e30f9a1031dc06e123c7ab2dced0ad10f60f7ed7df1bec5b9a7e31ee8920a2952e1187453fec0502c95252a8eb6fd71acd91efb6469a2a7898ad3be2ddaf62ded131244cbfb9bd91ef4a469a1c28508e7fad5605029544c4c0ccc8b4b4c4ccb191313738a31993131313ba215f2ba48231402374eb119842dc6b16d9f95c30f14cb5c04c33bc5b246d3b341ce129cd8b169cd61b7edaf227a9e258c59e54f660d9afde2f2d272bebcbcbcbc581953c9c6db1ff83b60f82d988e0f829b7600896a06fffb37fcaff83b60e90df271da03f9b5149d1656faf03f93f9a6d2dfb85f2a85690fe1e337994ca6d34cfd4b4dfe28fadfc8eff8f383e98df2c9b407fff22ffe1bf7311298ee805f7c51fcfb3744500453d6e7690fdff7f7a63dccf8efc7f3bf21354042102d98c5623017986d51c1e902b3b0fb57c0208b0d8ca400064caa80ddd9fe7e061e334c7c171fff574a7bb838bcfafebefbdfef3dcdf87b31fdfeeaf0eafb3e9e7bb804c635c2bfe95a82fb3a883fdfcf3ee8ffa51667ebf91d638c33ce4a7ceb5dbfd730f29773063fe7efeebcefc95d1e40e26fedf7f7b60871fadb9ddd5dc84540a6d7aa1f07b6ffb75d5fc079d021ee6b7dbed781eedcc3f6770ae02db4f0d8be290fe0eb10f777098037882fe09eafcd260ae00de29b777cd76570713a6fcda01c8c7fe7773e6767e773c88fe32ad6f935ffbbaad2e0f4c7396455fdd3ce373b9b76b6d9d9dcb966e772679a9dc99d553b8f3bcfec5cda5966e717edeb7b54b873cccee0cea99dbf9d513b67989d7fc53bfffab2f3bb7d859f7f6dd9d965db97f8f94ffb92f99caeeae72755ad3e86e146c557d576fbfdbdeea4a8a893a34f575f86c59d32d2ef247a93e9a6e0bfca80f1165661e3fc38a758c6c67191eabfb1a9a151cdc8a0312954765c9526fb9ef961f2bfb8e46fc97fe63fe537e537cbfc64fe518bfada9efca176db931fd45fc63ab744449985ac0f5ce08317943ef832f9d69561f6c5175cbd5f0057efc710e56480ab17075f5d52879bc2f8fee04de1134bef207883708238bc8f7f0dde5ac71bbcb55e60d4a0f5a121eef0dda401ee30a580074a9fedf16f7f62aa0adf6e158dbbc334db1e4f6b7075bb4923ef6f7fe90dae5ebb1980830ede0acbed0f9a30581fb8c0072ec82a21fcfe1228f70d764a0dee8ae105ec92f1f7d5fbe77d14e933526e9c71baeaa0c2f716069d03fef06bdc2dc45425745ffc1af7451d54b8c08e9d4f1857fdcae92f04b46d7ff1143b70c34dc141b0fd3f9a7dbdb6ff02ee6a8bb05adb84ed33b0ab94ae628ae21f531745100475f8e4e9fdc11a769d7f82eff23b6039ce6ff91ba777393d98de38bfe55b4ef31d2c7af057f0087c13785a3328bbeac3356538f7981ab53ca8412345d805ce5ac02270e6aa3f38dbfe60cc1f94f97f48fe5f92ffa9fff4e7679300e58f5f8e60f83a949bbcc0dd35c8b47c50afac0dfe38d61004e8e195ce5b42b2ef09db12fac1aafea2789e28faedac3b7bfd62db3f46b368b6c71fd5ac9466e968560daffc67340b46b38a5cf597d12c22aefa979a35b33dfe26cd03f8e5932e344f0decca3fd53c48d8957f8ee661b78011f578186a929979243cf0a0e344bd0e74c3bc0e71a79e02778b1df33c48d857cbfbf3e0c0be5cde9fe706f6f5f2fe3c4beceb7b7f9e23ec2bbf3f8f0decebf4fe3c46d8d7f9fe3c37fbc2efcf5303fb32bd3f0f0dec0b7d7f9e19d897ccfbf328b1af99f7e729c2be60de9f4706f6857a7f9e24f6957a7f1e9b7dc5ac20fb26dbdfa6bff2ec60fbf3e09c85f4fd491cfdc16af47d1a6d6dcf8eb6f647b5e3b3e6e0e88ccf53fe5e5c62f6c5d118169342c1ccc8a0261cedb098140a06475fd88b3692b1603aefa28d6432603adfa2bf9c1a61d39ffa02e736fd495f00dda6d44827b556006bcdbedf8305b3f667bd015a65f6357f865b1879cb1c6d61381a84b9600db13efea0d6716e21b6ffd0132c215be72d1610abf2b0cb878af5b1e2a487e5f4c1c2090ffb10db2cd91221d8fea4f6d9d91eff51fb94b40fcef6f88bdae7667bfc8598982294f3968f14ab0ebd20ca50cd5b3e50ac8a049f1c017ad8e5c3c4ae7ef059b2fdfd8564def231c2aa2edbfe3861eac36bc1c963dbfe5acfc0abfb7f43b650625d9a51622d92bbc43a14cbd40a02300350fe9063a9078618823cdf8b55c630bf168d61996cc66d7b8044e3770921405b91ee0868b338abbd82bbf615f336e7f5e3bcfdf756cddbf79db7d0b7ef53bc75f3f69de72dd5dbf72adefab7ef3d6fcdbc7d6c1f1379cbe6ed631a76b978fbb808bbd4b78f6fd8b57afb18875d690fe7b66ddbc735eb6a61e6630516b2ed6320b6e5d37bbf625d3588537af6b10cbb76de3e9ed997ccdbd2c638d61523c9d515c6a6d996874bba931807914fe69ccda0f2c9affc4cdeb8b33d38c87c120475514e3cdb630699469e19546563d58b6610153c951e77a219743e592ab510e15c4f481bff48ba3c59962f4f9ae53d4d938720304b90697cf254de734a100f35f23e9d9e3c4b7bda93c9b6b85992e36db1d65a5b12654c63cef6e0d77693a449db93e6c97bc97bcabc35836a7e86cba84cfa6e9224cb1666d8c70a9f5e0d3becba71135b986d71ca2e461276cdd08b9144f4e2755e6ba29cd74f5e2a4e1209de165b87ffddd68401dd9e8eb9171a49ea75748f872181f91c8d04f55af7789846c962501e564563aea232bcc22f16cde430499265796a8b712e5292244ffa9ada9a4a52db536666266826e8fefdd2de54153a5451c5ad6643a1bb958b1c3d2020e5d0d99e5c131a912223352044c90125c7111096408184638757bc2a5736763169a4364d9a0357c4b9da29bb33e640f8536d9bb20b433348f5a159831455289824504441878eae0f9ec9343799bfb189a9b9a5d2d5a7c0a437f45d0b283c283d1cb21a72b68768af272db23e21d91efcaaa48d7f26cbc63f748425091b3f9aaeb60918fc5ec79c4ecea86a52245444b6304365668a5a9895178a9436cae1ed55c5c1c3d1c32b9cc381f238da58c8d77472f4909221db8ddb8d253770de9af9197a37a6b789a9a1c9534ce92a56396d0f628f023fc5217bc95a90d91e9b74f5295362d2d5ab54a94957bf728526cde92946122a237bc94e31925c5ccca0fc2f6528547355e8081524a5fa186c78552b224243ca02831631c4f44a2686233110f90a3fcdaf282de65751a8865736bc12ba092d71d224cd3198c93024c1a085bb724cf174f52b59b268e15a3826dae98a89f00ffc034d72ae3ebd1c65e693a34a7f86a35055543fc3499bb4a7c3e570dc70e06ca2cdf6e0a8e13082a328014909d02246a424c90f22342884e8706ee06e3489f26426c52143d1c4a03ff3f867e8a5fac6121d3328e675cc1a79cffc0d72aa70e4bc2553736313a660501fa6ab8582948241d91ecc5cdca439682f781bbff6e1d91e7ca28f3283641e65d6c85bf564aa6cc2f6abd5a33c6c6b8623ac3ac36dc8e633f4708ea128065a0c426298c1d083e10a0c48306499e1882746f6cd5b3114b12afe273f36fe982744e816aa09d95c1552e264c9c69fd3553469a0f64c0a43520d39fb33ea2c1e55658d5903b5513b04596e0837e53d67fec60c4255aa99b76690ea67b82e436db78502c785ce81cb21a373dc6c8feda816cb419443f663e62a8e963d4cc3e43022470c91f349941b4b7c854a6fdc9cd4846a424742366fa91e7f0e9ab7681e7f0e229e23675f321f93ae3ea5ca15eb30e9ea596a6098225639af3491b34de86ad2d536b1d3d1a43024bd2e47f7b871e7ea3865e357f17aafdbf81ff7b98d9fa4295bf4bd2538499c1b37540e5c8e25396ea8ce31cb212407911c4543367ce3865d398cf80abf0341c9698170245a2870e470e8700cd9b00bc7942aa22acd41b39dabeaf637db837f86de0c57dc8571e454b5dbc6afaad9367ed2a7fcb42573ca94364a1fa58d5c3c8ec691c32b9cbac001c5cdae4971e85c06e7aa92b9d0e34e25c3ae93ac68e3186de393ca054e0e8e27bec24faae56e55a6524ba315bd8ce05c6d15b207c86c1501284da60c4ef3269346de3332355ab77bc1433af1d02b1b7f0c4d152a53f494296d94a393a3b3dbab6d82b7f1af28d9c6bfd243a91edae1157e177ac88657f8553d1483845d43b826629070ec681c361a871257f1d3681c371ac70f57f1ab348e99c62144e3407940d164c7bc8583895565d885230b2a936d5cdbab8a166dfc3afa468ebe71c32bfc38fa460eaff0d7e81b3339ecba1125ca948d67721bbf69d240379ae2902539ad931a0e26a0d8603bb129cc70bb3ef8f1e378e22df4f1e3d0794be6f1e388e2ad99c78f23675faac73f43cc5b358f7f062277cdd09bc1665f348ffad5a7fcaf5ee5e657bf62f3ab678979db842dcaad09dbc63f430fbb7210f115fe29a87415ab7cba9e576ed215b54957db03d9c631e9aaeed542e96dfc33168a5c94dbc66f3269a0764d9a83663bd79c1d8d7e41e69842be559f35aa9a19751bff9ab38bedf5d473523bed6c0ffe992a1bbf0c6fe3474f5336fe196ef72465e3c751ecd542b96dfc248c941e61f418050065d6e3939f32468f4e6c0f7e1c6d1d681d7b1b7f4a1bb97894364a1fc6453aeaf00abfd6b287a5e9c8c32bfce40ae54d4a52b150bee8dbebb5f0e96b4933a738723138d7991d14b98d7f66875de39331cac6bfcef0367e72061039da00954420d58c0c1a13822f2e405ffe70cb79baff6277cbdd276dcd7bb7a8afd61696dbf8c79c7dddc7a5bb6f6a6d8fbd32eeb0710634212dce4aded667539106a2dbbe987d6127f69a93ecf5b4a9cdbe69c6cd0097aec331fbc26fb3ef7b147779155ff94f9952a5ca952bfb7a962cfbba167b3db5d8376d21e274ddfe2f759e92f3be679b7d69ecf966db93bf59b6d94411fb8b67fe9ce6f03daa4f50f0cd393dbdf5a535ec3e4f47e7f7d865ebaddd5cb6bbb5a4a3b3348a2b9abf0f04c350144ba5718ce2a4316bdc6d531a57bd144da8abdf97ae0bd8d8f51981924f3a5d4f977349db5fd7d385b8b6fd753d1da8735d4ff7e9743d5dd6dd743d9daea7d395f07f34dbe30f82e0263dbfe8bddbf60fb33ff8edb6ff07e6108b7e72e25c3f23f73bf29698d3b502dbfd33e2ea77f4f97f354cb33d5feadfd167e433b2ef06d375011bbf91aff61de9ece344bd6573f6f57bdb6aa2c045ceb3bbd98db9ea57767fa0e0a2e062f11cedbcb39895b2437d6331e761f1dcc5e2391a2e1ac10bdc48c5d81baf54016d23d29885fcc009c80f6ccf28263f3ba71f0be21c93c6dec864877aec8dbdb1c704b455016dac7dff6328263ffba61f0be263a0ed05ee05d298df8e2315637896aee2711ced1e1fc6da970ee493a49fe0ccdf8fe96a77357eb6f8333cfcc417b41734fb12c72f8d8f4d1aac2da6d6f68cf7eef005edfbfba40c4992a93dc7153544268f332d01bbdb39e474b5bb9f3d22b14bbfa28684ac3da6373bdb6382731d6f76f635bedfab57bb63ed319d81bf74b3e3e1ee75dce19c8aa97d810452212dce3a1393c1b9ebbefd7b415b956b7b5c3f8dabbe73d5a79039e78c730af252b08aab38e015dbffdbb13f50d308a179f00a9a9dc35fcd22346a764e5f74414eb007eec0243bd4e00ebbc4dd09ee364804f35f6d97c1edd52cb2fdd7d515471c155802236ee770d313c6559a1d83cdc3ddeb8b59a466dff445677bfc839c6ba8db1e8ae5af3a8cb87d3fb4af99d80ff97b7ffc9f6cdfbf2b38f1dff5cb57876fb6fdf1cdf2cdae1255107db31ffca8db4e839373ce0bd8d6f684f893a182b7ee27b32df173fe6c4baf5621c60fe7fd35860c571d8a0dfa971361b0f20d7292f9b38e176059aefa876929c9f6f87b09d69c24860c15ee4d75f8663be72b816fb659aec260ab6c6c61c070178dafb04bf4958b2b3aeabe1ce0d0b8ea337ce577e7be0baeba8bd7f9f5fe8c175cfc7d179fc37d9c9fe12f78ebfabdd9f7daec7b6bf6bd34fbaaf61df79dd9b7b4afcc0ef78dd917dc37b5efb72f6adf8bb7dbd7f7b7655f977dfffeb52ff0ef9ff615f3375d55fd82c6c17917bc85f3f7310ece93b79ce1382e521857bd445df5576770aeaced2c5c0c6fad5627c3c59f383f03e7fd5fc049f14984e4a638aeba8b14860339ef0cceb5b5b2705cf0d62a2306164e3f9c54ff8d4d0d8d6a46068d49a1605eaec7aa28d9f7bcefd272ff3cdd37992539de2fdd1741fd69bf8fafcd065bf4d6ce2d35015afb81a1087e5f0ec11014f3dbfc65f3c6c5e60d8b2b8d64b92a35f62c039ac70143170c8660f83370a845518761f8321930fc81a1687b46b2fc7676fc7d9f499a4a7b1d7f0ee64c96ca5ca619d8f9450b2b811430e132a7397c20a8b221289aca130c164f18db933dd9933d4bd17eb6b92486a60c0fc179734e4572bb586b4d3232219859a0c16aa9de5e554c851500fe1c1d5485fda16281f08f31bcc21f9a337c30350de2d91ffc6ee45c7f6a2b2c5901b74212b6357444e9c515966cfc2be4b04b4d622104d6c5aa82851876b1782cccbcf5436321886dfd08b142ce6585dc0a397085dc0a391668b0da4d81b5831d3d71522b096181235d46f0be6c2bd86ccf4fcd5bdfbf70afdccbf612c5711c4f403700c20125017403a05c2b04ad586bd60ad2a2bd8e8070404900e55a2168c55ab35610a01c500e28079403ca01e55ab4d7d1eb28a7979365e3cfe9e520954afa5ed028254b923c5399cfe92be1933e8b57828e6924f44de7341331a992a8d2ba9c2ae8277d163aa691d0b79c662246c7523aa663b1984ac7b42ea70a9a530515932a89612a93676a78bca2196de62bfcb1b3e6cac65fc3abe995e07cf29f244f1c8de4fcac79c8e4bbc08e50544caa2486238b77a55785677b6c50b14b4cb1f1a34533540c93f0a746ba9c633672ae333a168f55c55dfad799291bff8c6e66e7adef49b22ccd1adf9e79999c5bdececc681e6670342a0816859a0215848d51bd9451aa28654b15818a49956a52b79927343b1dfd73e42bfc5303655028542a954aa1d2d5a784eaa16a52542f759b7932450accd3a4334f54e9eaa39e251893b9a3853a888af5a972baa8a30e4a72550b5763b2d58c917e196d94be1371ae306230623eb31e4d36a315fd80119379d30c9a79d3ac91b7a9b50ed7367e514866f17e56f0431bba0d1d11932a8921f853f3a15b4caa2486a0f61735892729ebf66a77504483466347d390d120721a3157f1ab2e3a284bd095a05e501557a94c91cd3488677b8838d71f7d8b712bfdbaaa6dfc2b1a76dd3cfe551176d93c96f90aff2c46936dbc9a2dd938c7629bb5fba1fd0821fed4d42dd424168f354548ba8ce0d0edfa3c7122b27e6aea16ac29c29f1af95373f9a98d3f35f0a7e63fb56fe886df2c5d74281d26dae2f390f7eaa27329b58d9aeda1d91e6ce3882dda3686581b40ac90bd73024a4e2c627233c2567b1b1da4242d829cb0c5c6bf9a1fd8f84d2f3ec4b95a266657b6f8ab65c2c8c60fc30cc34083a1c85b2735091cbf2f7f1af5af650fc3f91c51c84dc19c62f2cc29ac9a12856cb367323215996ca6224a6248baa84c379727d70785410423e62a09ce205e5095a09eb7be29370573777d78de62ed5c35a7b02d5614319f9ab2f19b3dec62f14c46d6f5b302531176fdd04c366f0ddd4c45d8d6d011a92fa5abcf8be9aa86e9fa64baa22e664f959a3dd36de36fd136a6d8d8d988e23674b627e7f2e4a6003b327737051b502c2b8a277be72d1b4eac8adf7cd4e5c95ee2898d3f26ddd9880925d99e15c8b0cb860f76e5440b212cac8af3d92b8b5762f1445ec8e215d9f849166fc8c6efc2e289281dc4ab627bf0c38e6e0a4154581f1c54459a83a3f2fcf5a7b69f60d93e53f3896ed4462e9e3c7f5a5ac85499b591cde7681c91e6ada19b0b615b434758b508bbd4242c8575b1aab03bec62f1f04aec79eb87e6a215b6f5238455c95f7d5c7e555b7e454fb108460c69e387d136ccd84d81b5bb3e43474cd9f8b10d2956cd666ce32fb58d22db83ff45db90d91efc6a1276d928625755d0583cecb201c4ae8458e2c70fcd5b367c5815a7ab8f938ddf255d5526fb8dd8f85bd2154db2f19fe97ada258ea8491bcfb60e78b18ddfe675500faff07f3a08c983b2d81efcacdd4d214809d6c7ea80091bffcada6d6c4a6dcc6ccf10e7fa53d3316ab607bf8eb6382db6f8eb8f928dffa7865dfff87f6c26ae09aa8508912277e9cfd1412e66109806f18a9cab399b9942dca51f3f1983a35d3c293353ea68fd393a75f1a5b6d9af732c065375102fe88aab41484149260d9f3da641bda273356b3ae06dfce691bbf09b4bc45f4d251b3f1943833d458382a179a1b93457460c2df8c5d098eec32c2c6ba37f1725bde2dcce9f12d9621a82faf579a3f10daff2db688cc3ab0cda9a2877a81c024723ce5249220423eeeefbb707a2956dbfd4b32fd45b9efd8ff611f196ccdbff8abc05f3f63f233a6f536fff53f2ddfeedcddbff86d8144ceb27c4b65958d5ff03625b39c95559d1e7030d0b2cfb936d2b54aceb8b7d33fb2adf7ee6d957588455a748b1adcfe6ea1151b6fd0cc5b6be9babfe9f1276e5bfe6dcb69f9958d7875bf3926d3f1b615b9f25df7ed6d9d7f8f633cebe4a6fc5b7df8e08c9f93d1e66f31738b7ead79d6dcdb7ef3785d3a738f645f3f6d51c9b82eaedd1795ffb6ca198100f513c65a8798407a8d4ede62dd5920f00b62b6630144b235992e054bd692ab1d6d99f367261d21710774c6a74c3c2b192c0426265c14afa09c14fec67f61324c6c4e70f6d17850b2d73c3c26117cb871a0b570467b2704058381f2c1c2b092c245616aca49f10fcc47e82fccc7e68db5ff5a7538975ce3eb5914ebf8768a3d11e2c984e9a948484d4dbf1f0b67b0a96aee05cc5b33c4bac5d6c0da650a8a963a2a814a8cb5db15285ca0eca1327a7cad4d2620619e96f29b1d6bb461bdd3c8d36526923990abbf97f93a679d484aab9d127ab489191da110d11b41e91215666dbbf265d775029d3a87d76395c152a53a4e89c346192571e9b8d54b5265d5c4ad91137a1248470424e08e57651c86432d97d21d911b6352484bd796b88e649d8d6101116e7ada122579db0aea118d81c760dd5f06a2714c57aa22f039f5c17b0afcd26400fbb583e6c4762d2153d79d0dbfe77488821da101143454331187a6208d43ab68926db9b78cbf4fe433947615d7324952ab1a6394282f3a278088a6e142db14e01212353628d024245435362edf23a9a48e77b8830f57bb060386fa393d3614247b7c36327b6f3c38e6c27889dd94ed10e11e74ecd070b4ad53c33b002f0c7d13c35b03f492c907f4a87538f32bd3567f8603a3fa8948e8ecea9a3d3c13aa60ea8b3b3b3b3b3b3b3b3b36362e5b820696a6a6a4aac5bb6e6e929742f1522a5a544a445690cd25a7a4b8f38e51477623d85e6e9de8eee9dd2f5d4bd54889496129116a531486be911e92dc5353630313fc36dcaa749a2c9a2265653448dade6889a5b8d1235b81a5dcd1356f5cf353b5114cf1345ff55966b1579a7f3cdb7343435b59a585813ab89d9535513ab29a2c6567344cdad46891a5ccd1335ba9a5be2dd8248323b226315f9325d5943503055a52bcbc769e2380c507f631680c729fd1bb346dea99b12ebd3b6d148507f6a1e52af43dc3ce838f7ccc37c4e121212f1a993ff6319715be2aa1f71fa21286fa7051659b0f4a84c91f233302a94e651e2aa29755f70aea71f3992f34bac4d39e8ccd120280d6502cda14fa03a540a7487f6502bacea2f8a278a22c57c6841c6f66789bd2292581f7f19cda3e4e6ea121c5ee55c7de2aa6e77938a19da0d4d71574ecaa3c46dcc2030083a43692812280db5a134b4086502cda14fa03a540a74875a81f61e45dafe29db0dd724a752a284e347e6feb451ce9fdac885c9c58bed658a17de8b152fbd1726bc20c1c4607858d55f3c4f30329466c96e49b68be2afe2e64132c2faf47878b5c32b9e283c3a9e1c4f131e5c8ce6b9d99e23b6f324b13c4aaceaaffa7699f2d85e70bed8764ee9fa67bab28aa4e68b0d95822fb697295e782f56bcf45e98f082041383e1a1c2c876cecd74515dea12eb9275c4fa98feea1829e2838506c407d3b8fe4eb5d63a69893529f371b3d72fa64d3a2b8f4d343a5d78ed343dce937686e394587fa98d296762c2a43bf138c54e3f9c64a7204eb353d18988140a35f1a966a37994f8e9b3ea4f20f2c9c4842967d26193ce34e950930e65d2a54cbadc89c79553cc5b3e564e3f5439c9bce543e514c4ee34c32e1f2827229e9c8abce5e3e43cd5b6bfea8e269c32c70c32d2f97c6a23fda566d96c4fccf6b88ee96d72164a362b89f5a1663404880f9f24a49d0f1659b0f476e6e1d181f5b9e19ae494d8feb6d4825347df9c9cf2a6c42b4d51ea8d428cb49188b1688c815d8d353cde7c3cc2aafe31d469c499f09fe6a3255e698a526f1462a48d448c45630cc6da781b8f10c1743d73baa27b2df550e9faa83fa5ebce5e4b3dd9a85947ac4fcdf61cc12879c12eb23dfea1f641b23d468a60a16d7f54baeea4d2f57da8d29bae624f97bb62a50a951d94274eac7a9a9aa706b66706d6c7a664d4361b6bbc6f5e07d53c4b5cc5e5f0ca6fde9a347c762ae5b9b9e0345d20a7c9668f2ef48d46f1caa4a35362ed3b585f6bed8b45d280fbd3463a6fa61ac5ab9ba62f4aac2d8f125ff9f3d88e9c6b56cb1db34669ab529b3da361f4bb7a5f46973a46c6fadc3709f1108a79abc5aa304aac7b36d953620d4347e7e4fb3ef83cdbd4d7f660fd6237f1619bf05ec8e28524d5876dc2dbfe2f24bd90c58a5562bdda2d0069a1e7020f17623b2d0069a1b7fd5d88b9c043fd790d7921b5f0430b329bd1f657f7ca63c35add3aaf212fa4eddf82ac851f7602507edac8c59fda28e7b33652dd57e50015014ae2b164b6e715c4be66cef26157feb69d7da4a8086dc8f6180b888c154bea1541b4593e1ca1c5f6c1c2226d1f2bd6878aadb273549a8707d6c7df85e6b1a5359a27a7799ed81eff1dcda3e37162fbe7882aa02234a0a4edff9a798b003d7f05b12d02586161b4d1cec768a39d34258015b6c5538455bdc5633bb189d2d490a1cc0c4ccc28964afd6d1d9dcabb248e31303332a690ac51a1a6cdbe8fcf2f35de25718c81999189414bedbb248e3130a5bedbc4274a13923568ce8e064dda4826c2d29799d131da284d8d74d207d313dc3e5478b4bda23c36bcf27fcd73c32bff1bcd83c32b7f1d9386cd46a53e2a19648cd26b276bdbcf316bd8ec92d1697ad4af3cb6196d5d155f475bbc2a81afb5c52bd55fbd663295faa19db70c45615bd696e9697bee0c57efc7e8155d7fc549b1d618ab0c1ba3c41a67934025d6e96e9558ff7fda284d4f8df5cdfe7472ac8fa86d368e59a3b44d29d6369b44a1c45ab5c95789f5ccfeb491fe531be9e854c42b9bf44ca1c45a667f59c42bac6336b9428935cc265928b17ed9a73672f19f3622c2f91e222ce773cedbe4246f0de93c67615b434f5835865d423cbc2ac2b68498b0366f09e5fc08db1a7a81bd796ba8e6aa12d6450024d8ea7dacf3cd2cc75f8ac02ef0e6d2e32f69221e2791c70e2f36f8e58cb3ca845fd41676b5ba1de8c42bd15bab8dbf1dd83d06a4dbbfaed45df9afeaf833caf4ba4e6d5f251c8a24097a49fcbe9cbf2f67f0f3a74df87b8830f2474d24930123bf87081b4df0cb5b92fa3c472d1361e5939aa8870c58799e1863b7a409bfc52edb62959a8557f74d4db65833d613376ef2964e6232931f0996f86e8cd3352d9d20f8a48fd792a6fc8e929a0809f8e4a7ae0bbc2b165e79f8e593a4b63012bc2e7b572b7857e3f760c1c8371fe32ddaab8aefcf7a95ac055a4b3fa39973f69c73ced792a6324453ac6136a8333996b4b63d4f6a11afb03e77c9ac416e305d35cbe24e9b2c95a25983dc38156d8f5e59fbd6207726f7a7cb0d8a61cba863e797ed3a07abcb3b443fff7357e9122111af263f4d6efb6436ad18d85f2a96a21db7a8730ef5bdd8e66c2aed729734ea2b5f6170e88e8312389258f7ec511321c9f849cc6463006c9f6d41500c0a5fbcf9aa1250770ee07f4f9ef8c9cf0c2a3dd6e193f72c5d15cf92bea6d0cf16cd52e8aa58d2a7abe25b53e867af6a50881ffcb594eaa0eefb2098965f49dbfc256dc1519f684882a3167de5598873cddffbfed215c7cea9b8da276824c6b6fd6fd6319a9c299e7dddf70702443c73503a25e164c4e403538f314565fbdb6c1b532062ea623b73b0fded2909dbdf9e4c3ed8fed6d463fb5bb306dbdf7ad63092385333fbbabd523904249718b3188ffc2fefd7b294bad8ca21dbff924b6cff3b66b1fdef78b4fd6f2908dbffe2ac7172e08fc2958000452442a4b088d8c2c333b1040498bad84424b6bf876191edef600fb6bfe7ac6998a048208ff05392a9c0b2fdb1e37e05796c7f1ca62eb64fc9f6c7998aed8ff309b63ffeb286c1c1146125b0278130452e520b0fc44a6cffec49db3ffb91ed9f33d678675d2271ae2e369d7d5d20f8b0fd5f62f6f5b9d85ea06cffaf85771f08dbfffb707a7fd8fe5f0ead949d9f0615f0af2d3905b158e617edeb7efe9219945d5a78db1fd348ed9bbad85670de5f5d6ca59209a72a71e3fb31b6d24d4d712f2f7fdf87ad1974b23dfe2a2b068c7befbd38b5f3fb15e74b7b0725ce9565656c16769da23f8e2a8a63ba9e282aa6ebabe9cadaabcdbdf0f7f2763e33cc0e4a9ca71306d5e1b3ed7bb2af6f0994c65d27eafed1f67dec97879ab12b064dfd7aaaacea78e52d944c691fbb6357fe2adb726155ff771ffb2adf1f00f665be7f0f0cfb22df9fe7c54ab5afd2fbefd8974e0e8e8b54db57cbbb7cead718a95f5b2ca4de9ffcbe9d42c5ccc02e719f72de25311c4993599e8e8279095d5af4c579dfbb4de89be897e458bac0b9c10ff505d00da646688ab240dfa7f4f9a5366b70c76822243985534be4b43ff7615c84425a9cf50ec1fb50302fe86357cddb57593164cc70e105eca279fb05c02ed5db2771341112f47b3c6ce749d6368d18a9b90b07d5a9dfd12e68683411924b44852f0d08dca56dfcaa203e4a802588ac04484170418c089224c8912045820c09022448ac04580081db38ecc2c961d7ebb04be70ac13e6eb30b840f23b002446c043d206e402401e20810458018020410207c8c206904587cdc7cdc7ce07ce47ce8b0eb268b3f6497c8767dd8f216311916322ab22419cf87cdc7111f457c0cf101c4870f1f3ec8906456886c4436a21b118e28b7056ee3df11db21db31db41db416447d10e233b6a3b8e76d876dcb61062e3df31e42b5da21bc322e9c63c90f465c9798089078e7800e781da13929e80e509569e40e509529e00e5094e9e707b42122c92367e0d246d20b601d906664a906dfc3a723a743a763a783aaae8e8e9b8a2034947161d491688659962e3d741051c7bc8001270493a706011663a7c54008b0e590590b2e0b2189125499623598a6419920548965812b040026ee39f006e02b909e826b02bc26ca5ad456b6d3d5a6dab92f5b62e59716bae082fd8f8d723360552052a02aab90a74046403ba012d715587dd810a19900d4889bb5e537c85b1eb658b218ae789ca3ecc568a1d04a040c00808e820702b826cb38ae083152cac60b162c50a152b52ace4ac30a142b6f137a0010d68405146e2d1367e1b7636f06ce8d9806443161b926cd0e286d80d4437c86e9861974a8a246cfc366011c592a9c3196d7a229a57fdd546403f9c0889a9ca6f613c3c1083a5bfd2e313f510613cc22db6d80286843c5f46ab725a009af4740292cd8064e1b7c4540757f1e380df862136f86003cd8698143a299c48c1440a23a44822c511298a483193c20710761b7f8e5d0e5e8e5eb973750aaf77e585a45f49af24d607bf0e74bf8a3069a4764e5fb6159cab05822c470d7f0e19ce31c3aecfa1ea3e87e2362efd6a8150b240908da6179ddf4613216180abf8497b4d37ad18d839bda1e6d2800481056d1644d2a5e5684c6846d092d08ed08ad086d064341f6e90dcce61178e0ebb7e7783f0b0ebe6346590a1c5e484cd268392d3e9458622198cc85054030d27bbc40f1968435286980ced86704ecc9cf0e1840f4d60d1049626ac3441a5095d134e6cd06c14d9a8d9f8317b399788d988d9208269999dab75924548c8c5c50c3abdcb480214906a34cedb689d5fe9b77955bf662f22af22232f1a90ac8857129b02f9f6359ea725de3279cb2c69b04bf5f85f332824e11876bd6c46df28400a76e0af40b2217243e886d80de1a3089621644590726f0823864832c491218a0c3164082043c48a60918214ecb0ebe6e5054626861758b1dc0b24a0580c26318ec4c0c5a8c5488a8125869518546248890125869318b7184958b18d9f1563c958339edac6ff02e945124f8c878847c6f38367c6238487c653c4c363e3e7f1c1a6403e0ccaac51dae5f7e4173ede61f8997fc3d0fccc172d3e10ad14cdd285329de12a9130fcdd8bde8b232f80bca8bd98bde0bd90f202ca0b272f98bc30e2459217452f86e4f47292f46ce3ff1def7b7fe5913e8bb74caf85b74a2d7b2b36feb762532051a85449864032d4a2f8863afc183368b67108246463a01fae923365d646aab7d14033209a03a9806458086f5dd74bc9fab2ddf46553e53ef7baf77183e56537488f7b233ec91ff9223fe4817cec060b954aa54aa56a3e6513867fa9385fd0305477340a591c08bf8d4621c9d5afd144af9803852890ecd533b269c9dc704d724f745176bc2436fe17139b02f96a8a42167f49514042e1c585b34a8990e4cf5a853095a1c2a97c98b1a28acdf454375512d5115511d5101510958f99a4192ca9546a2773de8fb1f918d30019c6e36e014b9f445fb45da36bde46bfb246210b0a49aee29a14052d7c65ee9714052415a080b45720d90b2975b1cbe66b5e4f5eba5794d7ee35e5c57bf5b04bf56262e37f397911c1ffa2e19cb25a6ef6277f0a958ad9574b4ed7542a954aa580a450282c2db7165c4bae05bcaa32eb981add72b5d1aae5a8a506e3d27438ec4a73d865a3c3ae1a1facdc14c42e919e7db9bcebc64a72a4c8102037053e922e112c34ddc67f693aecbac91ae7899c4246081511ba0915d9974be8848a13294ea03871e28489139b93234d90367e1790b00b4941b120d9cc8c19547e4ccc88a322c6ac51dae693f77c99e124aa439ab7d144403f7c854da0d9f9b2bd94bc6ede8af99a9408c9fdab69cc142d8b501a6ba44b212db3165a4bd109e534e2d49db716598b0f27162796d3ca49e59472e64e2665d1c65f1695424a9abb70fe9e2faf32837218bebc35836e6a4a59f9c326e5718384bf948567d646352a304b1923999047481c592393482ca415920a298584423a216f649230b6f187b15016cec02c60120d0a483bebf0af36b2790b2443218bbb889084298fbb05ace6f1a38054a375de46ffa33aff8ece59e9976d09ee95f39749c367cba4af5b0ace15d4814f8050401d1805dc8153401e5805ec91364032b3c6b85f5e9cc8b9de1c78037160eec3e2a3f2257d3cd0061e018b80434020a00fd0870fe9b322e207fa013f908f9b039201fd009a010901a20111f156f9f8818ab08be65bfe6b962cc1b90b475f9bf4a5c457f86dcca097f46513e25cafeddabcf5f2f8af12276b4a1a17178746d7e8283d0520292029474c0149143044013605d0a4f4a4509122450a14294ea430916284949a9422364a6fe3bfd1bb8174230901b11c9d12d5463434e9cb865737dc4be76a14578d56296ad228ed570e05e76a9dc8ddb871e3c68d2ade3aa3dcb871801b078812254a942851a24479c289dcc62f830c32ec9435fae6714c1aab8d3e2953a2660d1b977fd1a54daec81725aa8d703eeb97ed65a35fb857ee35a35f535ebcd7cda451da32e96b37e47421875dd0b9b0c3ae9ac7ef02cf852ade3a1fbf0b3d17ae78cbf498fcd5369962e377818a4d817cfc2ef8b02e6b0780c5baac7541f60340b22f9777e15846a849fe085ae41cb27108e4d424b6711258945ac06dfc2de0b00be7f1b7906b41875d3a8fbf851dc953da689ddfd1fa6bf4cd936a29078608e30646087e303256cdc070183230d0181817060c1830acca327dbf83f3a836fa8fd1463a298a57f953da28fdab8d7252d9c3705217df0caff2eb1405a3fdfae47fd1f9f12abf8bce37db93bf45679dedc96fa33f1a5ee5afd15f115ee53ff577e46afe93fe6caee637e94f89abf94dfddd4afd2d71353f8dfe54facbe1557ef27bc1ceff1db13ef947fdd56c4ffe925ed5351bb133946fc4dd214e3b508f00124d845ae7bfd38ba9fc84784be6bd35d372baa823b963f3e982ec1f21be1fdbfee7c3b67e689fccbe60defe40f1c5b0c861c159b951f9b14971fdd4f00aab5bd81556b311b6c5e2b98a6d8ed5d14448f2f77818ceeb9cd7c1a290eb23d25c1585b0aa58844529ec4adce195d87355b4c2c74755ff51f4a78664c6ae0ff973d276b3b6b5af4b44247397760f6d1347434736d08b868a868c84b8092143428668eed2bfcada68f5a486e1070c32186236b4b091e46a16a42b3ddbc3bb791c1d4db4f33d4498fa395a86c2d454e77bb060fa551b56ac8f1055b60d2a56e86875a5837a3384b01d169cabcd818d480e9a6cfc301b86dd60b8ef33837e8ec0129ceb8f2880a4d7fa75f47f8e76f1a4aa89d4f47bb06039aff32b2c5901b742122be45808010b3116662c0409a54ba854aa5494a67ada31442302400020001316002028140c07c5e2f140d053e10714800d79a05c58502308b3240c741432861843882100000066444866a6090080a80ae005ada8063790e3ef938fa72a7b25d10b4841c4a076ff7f9eaac0855cdb8c6e2261d1c814507a15fa9901a9139e05252aedce0e1495fe189fe4a6d87b45d373933bbdbfd800a18dfc55d3a18b04bacf7ef038650ca315d5f8849e4a4e5908b57d1c2ba1f76b5d4f5015cbf599704c4cb821b79473e18b1282441d95aad788ff4c2a585a2fb64df1585e2cd4917a3bfdfd112c44925c838731371dc4b9f3d62b5ac2f704615ca08460475eb0a5d6bd12602f30d6101b0e0cff54a8d5ab265137cef139cd7daadc66b931054a7b505c834c15e837c2c94c9682a69b097c286df453351a46e7eba262682ab3bf03c01e4723fb087c2c43ccdc5d4d4b3f8e4be80dec3f910246a0179666643a241e48e7ea6dc088c362f467e3849831a8a604378fdc0b43e81cd3e309016dbfe1ca0c8c8ec901bb7122ecc7217d8c3043c6180e6ddbaf3d395ff5ff25cb53f678eca1b3c32f0965f1bef198c5b071e16b97f157914f617435db3dfde9146b4ee063ab78352dfc152c88e07e30f878b6c0c20b1706b01856ada74343a4329e090ea45da803e3c8cf4a4c14a55b65b503788e1253704c22919677523d4f134c1a680267156543657b071ab02016733f941f22f5ee440861a1752f4f1581700122784797c7aab633d6f202381bf73bdd31562b4b2df3e019b050b9ee0080d1542c1a580497d2345674d8917f87b93cfaaabfdadf01ffd831ecd9b2f153c6f25ef352d484493c0c7a1d397f1613f24aca88b4f45a40f7998868b080e019aab671d351649f2c9e6b5e5d543e89783a3bbf7107c568c7be16b3e360d5dbc2579e22f22ad3ae2c952ff0cb0e1a075efc75c76fc1417bd42ae6fa9c68479f69758dec3691afef22e34696f7f525b7f4e800267bf4c2d4b5f1b082d5fe2b60d25df433c101f2ef35a64032ae642cd126e767aaba076fb48b3fe6cb1fcac77462690014157a88f012d878f0c4dc200015fd13509b2e671620b351e07ade541da3e52e43223fad7cc131144d25671c149e855f870df711b3500b1ace0c99aec27f3e4cc506fa522316bf46eceff03cc1e6114186869b09def2aa6a3c6e612e35fed8fd4473a3fbe46c0ab24a5104068de681f3c55154da49fad5b9cf76e9122a386834c703b1dda370af5b0ac25fb69cd737b7b034c7fcc98b069a083008fd48cac2c9c825e1b362afa95961d35c93666d6cd0c354324645afe39b985caac78b7a072513682cec178e0dfc6c8a1e90c9ec4f6cea2811f43a61be8ed5a1ba9cd2b164c53dbf0782a1dbbf35c2ed58087541c009b840a6f0267b17f9ae501a212ee9645695e4ad950b73ca834b3c4a08c9aa572570ad3ddfe9f58c037e2f769b5ba7a9422d5d53a8471ba006ab7e41152513503d221b2485d8147fcc9026201b7599324a666eb5f237dec11cf8463249285246cea3937521afb354f7fa8757cc0ad16298b286ccbc510e937c27aeeb2611338caf810eb550fc824866b4e6faaa88900ded9949103ff15d91ab5b584151a53bab84e1accfd639110d9d933558b14f430d30992bf7a63d0232c169d473a635f1fe85816ee7310db9865f9c5d95abd288f4df6a9b8e3c045c0521136deaf998b87f7e6bdd1ec97a04f0b6bce611dcb70efe30880ba2d9bb91dfd913bf8a42d584eae854fcd408f3623294a6ae2f044d3be8933b9d392a7d93a441202a10d47800066603a31a08942fd51ca0300f766e76f15cb2b2cc6e275f9f8ddb1c82c01e93a63360680788d3e347b02fc4992e11b2ac8227e936df4041d7437f2e8eb60f0d3447b76a0a43ea05b474e10d7b502acdfb8b93ee180ee164b1675e44d14547dfd0a13b11dcaa462e08ae49da64671dc9ebc08e5efc17d5bc1af9fce9e00e5aa1d791bd2787987b1b32574f903c4fea95afefa5e0738698c59709588417039041a23a7824d80a62bd2a719a329bf4c3fb9feab81549868cade5656a4942bc8df0d912979acd99631156ab6c7b457c4c0294366007eae8d1a5cccab6276f8ec7351bbad0ab0c9e092b6661e7e712891c58491ca2b17354b36486383894437504065df621b2c834e9b2a290e31d7efca14fca1d5942df2f64ceb2dfc48ffc68a74d31d41a899c16f92675dcfdc409c013817d441c0b8ae5c02654fe755405f0c3d35a8ef5609265220baac205d723984ea6a4dbc4385be6f092a1f40cbf7a887c78879167aa193ac0fa1855a1f5d821dcce61fb18ec422baad4184246e3ba54c702ac6a117c00a077c65b4ebc172c5bfe1a19a76cf0cf3c87594450ec94f95eb3b7853e49c6cad42883ec9488786e4a3cfb979d91c0ec54146360b7191ee174262b6fc0ab77e77f84776684efa53ea886bb24df183c135aea2a4d0bdf6816ec24f0b048781a2d88302963c2713f7f9f42cb5f86db3ad6984f401c252841dd883da3c6fa77f9b6857ba9d0e1d7a2e5cc0b75bbba06e8cf98454813f85bc2a70e9315cde3c759cee1396a68ac8c780ed6703611f18c960d633d67e3184fef645a224fcd71a30812ce513537f6d25c73781bc6cd36a8213ee8e8e0981bdf0c3ac40b480000bd3f8a3e6c85b627a9eb70cd48a9331e647b5dd35059f1b81d0b4433af73a4863b9a1bc7e57eaeadad21f6ae9774e4372ce5ceb7c3aee7c16bea65267f73b0db8c84ccd423f3eaae54496cbd88e4f76b10af0eb48601d8173b830ae60640bcaa6f9331b19dd296c86a9891b6574500d36e816173598bf218e356eb7e59239a325e5cce79bfac66e803efb1aad6cc086f92955076c5d1627b5268b72293be456a672f5288859281fe26ece76045de292ca9e3c108af8da9d68015c9bd52dbf45f6da96af5255b5a37f956d35f63ba0577765f2d85059db0fd1a8f2394d9ff2791d7cfb4284ba584fd9581b51a628269a5d58da2fae68eafeefa272ef7a59d7f45d0f2d6f8cf337af748e47a311965c952b13c67b0b2d6cc2bac94a9eb30a1cba6cc96978ee3a995e481e7613c0512879e418193fc41a8c9cd736356e15aacc89704d70a0c41cd88350a1366cb58a38e75caa4f7c136fa4d5bc9d488ba381559316c08beb548ce7c072e82803675b2b1bec9e471e9d3184523f669b09f4286569604df6ea0338149ed24970a87b71b7b4a3d6b8866059e68fe05a868bce564ef2eb1fa12ee5efddcd374a501ccbfb912854aa4f5f4f1dea0c053829c48971c5b6c780e25a4fdcf822d6c28f70c14e92d3b79ff5bb5b54b65e13bc2ee3c081ea8af43bb896813ee32f2e2c822b731a156025bace8684a968ae5398395b526f34223a4a0c882c3580131e78a7bb80e200fe775c9b9eeb8c11fab851229cef3bed78a036c89e14571a74f07935a18cd5a2397052b733976de38b91c5cc1a177606594259bac928e8e60ce407e288530539a69e4a97aba07fbf687a6b78e42d30092b8c2357634045389052f534e6f00833e8c9f0daaad9131892329b7dc4b721c2745e8ac445ef8474f447777a48278b1ee9ddc09adc6c63e6eb007cb4930ba43f11949b8cc6b854065882ea900dd89c3b5edca55eab252637b657475b61e3fb1546bf84347afbba82877da7d2a7aa56e22f8128411e9b89e60fe4feff6d67612a6c96655421d36b774efa6329c8d63fc4c52abb03cd504e0357037d638e17531ea0dbb665c87cb0ece07cb4aa9aee16c18a2eb01a07d9c1146db94df6db8cd899378325b974d50bfc73ef46dd5ce1b1515158816e4a4e62ca6ad74c0f5d81e9a78e5ad6eabac84ed975842a307de9649e16f692218bd34e8399ce2ff45fd471b7b64ee635085f6b29b07b9259465efd229e97bef8a25ef954cb234ffe486da0249de58dfe20b19543ea661cfcb62f180a92541d02c4c4e0bc00a6db1677212caca922f5185e0b6e275cb07ea806223a254c7f2f86df071743b20245a68748cb15c83e65d57090cab9aa35b71a22c79570a88316e892c577799a4af256ab1cc4d34408cd8da89cb300c9adb524e076806d172e1d30e9a1f8a6de80798cae93fb4a7f60552e0066e14e320261b6ecf0d874e2d8f2a486caf02c1b63f53fcae0542acc7a65a14764a48bd666aa09a3058933bb8effee31b588847e2b256fbf62813d7284e5d2e4cddda3f8733f6451032dc59ff6957cc9ea7658137ec8e78a5f52a9f9ab5756b6a1d8a3caab0dbccdb2941afddd11ccdc4e0a5336f488308f91874141b4e5179f2a22ad6bb0bb93cd81b82af49ef95b1e6046be9e8805827b3fc20c1378a378facd27d2889634095d848ee3dfaab62aacbe3acd4916b70d06b2f2ea6e45217fa4974a8a0d7bed1c59842b4ba9985d5d5994514df4f3c5500c0106e09975473596abb01fc2c9850bfdb40e1983d7bc67a18150099eb71a175b22e6e46d1e2d77177aeb814f6b08f19f2d050ae0506e670c5d3c7ae190d34733fcaed73a912901648ad901a34218caf7d243e43d1a8c093750ba43de72a7c29f7df93681665e413fac18e93679548b18c814b01c7dc5326f78a94f49b51c529614a063a3efb4a903090ee3d5ce35c5106351e3d8024cd299321520da5c092a155c9059f558eb677d66b1971de0cb9ed904786e06d0652a184b9abaa91a5a1334873d5de07e578a55afcbc0abe292d799d51a5277a401ddd8d8c1cb97f81685e9ec322f7a3a0b72b661f2b4689dea30ccccea97406486d9091063b1fc835e264ec3154b513e899956367c80de159c2067046f7ee7f7259e19a3f3800c4ce0e7a96d414202d3a73429543431dee9c8e7e04ac4b30071453f73b4c2db506d11b4a9fcf35fb040ce8442315d5a782516b429962733228def004ab3fddc54d03bdd5771a776b229a014acaffdf654b8fd792657ad6655eba672bc4ae66a1d33995903e85b9186bc6c1a993df9e5db195d607559e001449bd65458fc4c180895f6da3e49c47434380745776e516a383de927bc6bb3a313e507e7a9e5e0703ad7fbc30db5c1c899ba3120ad78284f7304167e4f0875705d3039020658c01803f7ee42763d3ab3785e9304bb41ba83643aebdd9a76649e4eff6391b365ba385d3d05bdd5954a0791943c35f2a9ba6c9190e0f42eb75668953451944528cf09454426534ab98b25692feca94c36234b364e9bbdcb5fd53a476e2c97314981e3090751677a4292d618dc6377845503c774d2b871a821a5d9037fc4f8c6fd742be43039dc5a9ac174275c86350afcdeff39b538e04b599621b7400b7ed4705a3443f66b49706d6d69085aced2311c49c1c7e0c5abea27fda3866fbf37d2687feb923b9645a1303f8aa3b902efb7037df88667a1007ae6ee369c893239eb9f1ccc5d3f2c24bc902baea8a8efe7b9df3fef92f031381e9d5a0b995ae9cb4cc9ab929f743d6faf44f227ae86d8d16b20de9c50f613294e219b7f9bd7bdd3374f4da678e1b5c554d6c40fefbb6f4993d36818b557e57bc353168e2bbc295d70c12b0bcab8cac24d799088303df4e74131393fcbfbd73a3af04f4aeab0f4f37fd75603d4fdc4189591c32ab465bea432782aa0557f5547a6ebfb9a754aac270971aad0c786a605fc7d6d3e50f032df10ee8173131d132452675ffdb586c5e4efc62e912ea2cbd80fe3638046f1fcf2526ba361d447769fcb762de6d1cdff67dca5a33e61adb73364b3a33d665adea016ad3f156d50a1ec2590d9b15dff21b47ded97032c52efa6a33c923f9443a41238e16c2ee24244df1e69c2e3325ebd05a0c66d5d0d2d8a8d61d28655ab5fbd938235e1d9c1c846e36eb865ec9a3d69af23e9e404f89e7be3f967b454fc18f46e3a552da9777032e5cdf537984cd0c913b9822875ab088c0ac04ab72e5d34a744623025963b3d26a4818e90ede0aa75ae3c0552e0489dc1fc56283b4d8de73c3b0e844d74b07354955d1f5e8f77249c99ded81b429cf28f1ef57efbee34d58b1628478d0f022fce822dd27c2ab49fec9e01f8ef27815bc2e80cacab3d65b0818d222cb7d2e37afd8b8867be73aa3657340db7f03c847eff958a3d12038c41d2f5d7f063ba98632f8fa8c23e61335ae0e577d30b7d117d55f8996c54ca0e62708a991100bfc99709526350c42263914979160fed9dce69163ebb8a97a3e7c0960f62548c8ed8f2f4f878a9f917c311f88b3f812bfcf1cc82398ac15410752336efad46f3c23c5242ea1efe64d161fe71c3a333cd92e73464a2d4bb7cb42d9aefaa368e9a30865917756a826e3f79548de43e019507f233acc9ef3fe83e702713a85ac97ff41730c79e499ab5f2f2e663db99afa649a2eb52e552b5d523857a799b67e072167a9f9f156019d4dd0c81c24cc6335f68e8dc4716080587d64d764be27c958266289e220572e5774c0be688375ee12569ccfab52f92aba117a4d69243e9e010e3d1cd86c1556f1ce435c5b25f4421056ea114d049818d67272403d189042871d99d282d491b50e53aa2d41595b2ba7c2d27f76837211f76a6dbd53cdd7f12dbfe5645ed7e0a2aa6df7eedc7e3ee7d766ff35df146b73cbffd482fefd2bdbd1da0248abca963ed888c8e9a09246a5066039f00330c6a53d2665fe2468e88aba9971cbbe866ce436e9283654aa93208bd382a62b3c84da587877c735e38731d21ec99ba3ba8cdd45f541cc358c495dfd941c475cde0ff6f4f34ad95691c9899f0ee9c4dbf5658d23656d6b1e9ec08d58c95ad6b312abf7e374d34be9d1738531729c69973b06683e28204e4056d894847586d39b0c2bcb76a4f74c8085e191be1f1838079da016f6d58a535c6fe00bba76fe914213593af69bd155f05ddfa90640d7d9c7ea78e49185e6022a7b35f9eee3418e7b5ffdfb67f30924e3ae437a970de37c169b24d16d25815731cdf915dc74c4e441d92941c9a761a4c490a9ad3e74d5957a0d6250ed2a0fbc896612731bd87558b5d3b41bc8dc9a8608906c3d34ea49f537b150ee67299a7b42e2d6f066b18d5502bc6165adc73aaa44da3bf16d82f083a1f18e8b64970c80dcac6ca03e30ee0769fbca3c29abb68d2164a1b09d536091f44aad67f40f202bd95f52d0ebe0eab40fe25689ff5cbbc6da9ee1afce7d06e0073e96642ff61d4f1cabd15896870a4054356b73c245f638158165879c90d41b1c30e6a60ca843aadb17ecedf184c7a07cdc1503c0758342d2d08763144ffb2f7f9ba3eb7b1e1eef2f06ecf5ab199ac06b062009703fa494d2295e0d6ed42a5b5d7b79a07490db691743b11418b4adde28ecb9f368293506c0bfab3b1f6be767ac7d1813dc4aecd512cceadbedf7acd321409eff13ede58dd85b4bbee12bbdfdcaeb509e5b0945a1cd1e57547186ab541664d5925ac676bcee7bc3403238f058d9cc5cf2de8255f4134e03fbc4cc05e12cca892413a101b3ba34ed726268727a322a087a46cdb654865b0c64ac11e9648e56450c5b855c6c3ae694fa75ae14370b2370a62a1dff230716dfcc8079ba0c468f42626cc7e02144e334825c79d7dafedd8826a7ba74a320f0e149f30aee5e1bcb6d52a932a93772da518909dd76749d94f3ac54f26fe39e38f8b219c201ed2c2613969dde70c6ebde2f0e3aec35fc9b71ab682a45601c7920b44a10c9523afd008849ce1973c539491de348bad6775fe98079180bb23be391e676ed421e645438532422bf2359a7564063f843afa224ea4cfa8395671bd386e20674a44f41259c02aa10554028d560f146281216f818ca6c8cccf998075c1b55278e24fb1b8719affdcffd25f5b9e802c43ef00fdd36a4506a72d0f9d0918c3dd35705a65ef93b69b6bce7535defc86122ad9fc81fe8db7ca6e27897f04bd923603e0c52ce2f399d8fe8c295892a53ab1baa407184cd4995a1a00fde350c110a4032b862c5ba8203fe5a1cf495877195c4fd2c7a3b96ad71a92370ef75b83331cd4b70295ff39dd257a8e0bf7cf32d08a6c19522291a5c66b3a2cadbee2e3f597ae9cbfbd9ec97a5804c13c210fd590ca8699d45d10b0aa58c4319bd2572c4e2f70555785b83d779009e243264a6c60f0cd329f68bba19b3c8d53cf1059404a978dc740948206b905990ba163993a8bb2718c3939206903e165a88cb57d88d64366207be9aded0a800d23b71bee733041f26ff1be2d88839f61610c3304dc1f71dfc364f77db9d12da4047ece4d503463641964e17b319fbec325987c9686eb31d4469137b7d13f78e3d40f7115ffeeef02172cf2034eca62bcb6761184d8c50b591195678998bc5b456473435cbc50c1d09245076efd008c3010d24e72196a263f8736255455cb7f5025605f8b376823939bf421e27cbc017f8c598260d9c407e2c469d088f7b425fc9ff3207b1692b627494af959cc7187c6901fd1b15c30d7b59af8c409466514f0a3050acf811d18dec2265e40c66403e31663576e2687db1d5b591185c2558956b8cf896083a7432d9c85e7150a222dd4f6aa7a525f7c8048d1d77f4bb3936b7daa0e5bcde0a0ed7fecc641c1ad75f8bdf991bf9b1b456a5a99f6b413766a79117998c37dff81e43b3dbfc329e78fc50f240772cf78ad21d101ae3fc3e4dba1c55604601b9fcd27604a0b9cc7e2d1951b6301eeb58e4ddc27309d6a6dc9f153e18fbc7d2d75aaeaa9f5745fe20dfb761a25f3e34bc5c85fd6407e4194dc5d6733c2432bfffb2dbfc5c0b722fe04dd31d232e5fbeb720f1e8b6ab6471daf3f0c9fbdc1c29db3234f890518cb06b4fff3c8c0ec841dbddb866e140662d39896b5135852e00f5764022734daeff0582ec1e7bdb60b9e5ad39417886c0a817c6ab2eca5ebcc7c477a2e480afe999de22b37316dabcae6fe4bb2907b8013ecf848db801df53a5ef3130345293cc0c40ede94dc5553a314cf863d5de369330706e65e45dfd6ad2e1d880f45b8e971a335ec9777979cb3857044a240a190eb3595c78e2ce80c81095bd2e88c432ea6cfb074f8cb2cac692b272c7b5fa5fb8d0cd6a6f65edba713e11df41ef78803f09f54263cfb77aeba48c7414bb77d1a07faae9014bd7a2b01130b652e9689f2b0b803b152e0b664e1c926be77d1227461125aee5ee8773ca448c78c620d33f6cc4de389180e48ee548a05836636a028d517c2fba661a2eb4d5e7b7cfe5dedec59ab33b08fd88a12b7ff1ddc2e6d7c6fb06c7394115819d6d430b5f6245890bb69b0a954ca58a5ad07099973042977ab821907f0a50447616271cc879cf70bc4ad13bad694deb52c7e0a11b9c1cae7776701b42a58152a0f16ac8292f4265e358aa5cda432dd236cf34c40a62467bff5b0002a60fea286b41c190d5e0ed15a6cac7180bec1359ebe8fb78cde3d7d77792f4979b5f1184b844f6b68b1a3521f09b1c9102f41046f2123eedf2be94678a085a3736e29c429d11c7a0431c15a9dbf67a9317f72a4f9bf4691c7682412a090ba91116539a46d85d021f599586675fbab9e77db20810590684a7047139f433a71384a8200c8b2823df5559c82f01e2884373dee7192747414866fccad9105ee114e28e478dcc4f8ea974017ddea413d71840eddfd090acbd7269e5aecfdda2abe21030edada580b13f3f7d86fea8ec160454454e51c9cd65cde014625bd84d77386d063c59a6f822d3625d4566feea401f5c5ccb64a613ee489fb2674a3187345ca0c11925bbae48052216869e460ec18fb65091eb0994bbad82a358aa38cfd52b7d3d6388eafd6025ac0e3416bcefe9b6935c681f57ea558f0118f9261ecf3f445e2cd0c56be0c7e48b980bf85425e87fe22a704f5c1ebeb586635704a82dffa314ddb1d6d29c07227416486284d42c42af53e3a7a2e38b4d5ff1433362b15f053b9b0ae37bc7e2e4f113debe4e3ed2333b32a58035001843ffd9dcc43f28228068695b53f1d9f9d850c72079ef0274f0d9cc4b2babd011fff8969c0718345b959483b2e6b1c4df8eb7e52daffc65aa6e3e80f4ed9fb2f135a1d51be649b6dca2766148d11a9f21fbfb3ab7f53f0e27b66a99d9a6ff4bb93cb10c4e88e8dae276a0bbc69d4e10b5641d313ed139f9970af8321d05405490eabe5cfb274f538d6e303149c7fe1689ceff8684dece109d9fa1f661cb2657f24e986fda21d03cacf710724bda32df8eb75bd051e23da6911c126919320185bed2c4e2064aed29c72256882699bc364cc79bce5d9d363988674e6bcc892a7b328c5c99f61093d3a6a30d74810480052501279917701109228e0cd6a199527859dc6b7a4a3f24c5190d39918436c7548e106060efbbb0085cbbd8654fdeadd1a48956bb3ae2c9f656534739b10e857d2758773e5a69c27575b7da0c759eb0d48654a5ab6721074548c3ff004268b391ddfd47cd6f7a1a981c9ebfde7bd7f5feeeb7be402009a1678bd5aa3cea753bbac6278e0eef1bc934fb796c2707239e300a9dfba9bbd6f790c02c50b2f2ec8cc3f24fa0af65cfd3aa4e7f169284554498af257b187f15d76a0f4f478318ca0b30a30522ab2a4211b5baa2f73d4f908a7b802f2b1585449c3afd97234d339a778fccb9bce13dce3bf859294e4434fa039101944347ce31e89c7ed5d1df41275afd29262cbe4ae5bac7148c70561b9757a3ee7afc97a768007406c6972506dc24b8f51032ad81e523f2091b1e9778354e4b8058cdeb737441b0ce6afdd7c77c415d9628ce9783403c2e284ac0a57049ef1c7045094cdf7cae2d78e57d873238e7e0ac1fb0ba24ed27c01dc0f7cf4feaf8e94d37189ef2ecdd86d5c3a1ca3cd4016be18c8cb11f4a859f95c21309587210910b1cc39f6674a47749c5f877ed575e326baf4c9f82af0e02f7d83bded2a5b81803b320ff02ffa119b89b160191f6714c1429e524a0ad0192e7d41843ebdaa51c0f03f9981163f3867527b737c998cbc0f4d648d3a6cdd531e3b916c626f03f8f453b534680cbda1929547d084041f83f08da9ce34c193a1caf3fb92b7e93807a721840f14c7486aa8aa5826b4697c44e75a873377280c45191febe323c45f23e62c665075d0e0dae94c4670086f43f81cf5db6c2c57c19df78032412754a93f819da9c84992edf3c0468dd18038a12e7e474eb98fdb6a59c332094e59c210a5a305dbd70481d5ca1f5028521b45db3e09bc829f5660ba595bf2993003ec83e29da9ed80997955a73d2b5e8472c7e9c29b3653b6e74ddc357ed6426fb8a147f9be09ee58666fc975ea32d5a6b4bcef19c13ca59ddbb746d905b7f0bca0bc992d34a047c4bba504499a65a46f3502d4df57a3e41402ffcb671b1ba6cd9c4454ef010580306da4e3daa2d4612233edbb56b190218d96a5371b974a4d734f62617afc70f014969d9d962ed0f74584cd7b847c6d732a580f7f30e16a5389ba59d4e8a7835a83b55b042077cb1e16b91dec0d64423476830c7ee487a5c0d8a2496b6e58c2789cb75968228e9ea106449b2237539d96a54c78fcd897e37c096f449d01ce0607e983e8027504fd1f745e12dcc61e7ef69ca004ab71ac474d9723ee856fb6bd436acbd31882afa386ecf14112c7fd9a3d92cd7be0c492cd7ddeab975355cae7d7432f09710e02af336c660048d08aba3fe8d85eae3bf3dc3d68efd76ea85ed2cedfc942b39d026091cc58f879a729c4dd6a07280091f80d80976966bd5a4c87b7260c2c34c7d65c442f1efbc6672e3c625257f581a435c8f901f8215281c20622aa29020e6c7214e5220439dd582a7071da0835d89598c6e9587cee4071f1577fa1454c001bf5081eafba184e59031cfe496e8bc06829905ecea5111e1389105b81b7b41ac1cfccabd607931c8cd59e79913805719dc31fe624d7eb2867b3d179cea8e2e7b3a39746fd65ce266d226f49390ef6479984c73f6481ec5140220fd2c13e6fae9b54773f15b01298ac4b1175cc24c850ad9aaa07b6a7b7f0ced4e9b9ac0d6219daa2d5b4615d142dedf13c1d4525be3efb1b3b049cd8081585bfd2e4627cc5476503c348d0b44a06ec44d5533669d8929d90aabfc8d503479161cd20bc805edb2ec400227c91fb2d5c20d00462c8eee81fc71a11cff26b4fe9b56a7d3679006cb83af625246f442f31ff4541a05bc2d2e66a7cf6a598eb6defcc3180bd5481be42c732f68163a327002b823d719964d5e9265ab4b7105b2e0ad0073d5c8881581fc3b0bbcb23f8d49de348b5d4c38a8f71d44d2272c91ed3c6e05d21fd0ba48efd5435e6e534ae06a4c73e0bef41b7b6431f3eb48aec5cf483f9844d8a53a39bdee255968434ae42d4c3888fb268ff432121643dc22b2af2bd5c283b8132befe03a1dbe4eee0bf3543d826c4f01c911f6be112b7f8f5467d5f4a97a86a1416a3afb01db018eaea013b8ebf9c67b8e7e3ff5396c16e38a450f3c437fced4ea7cadafb532c8259e841955a31c7fd624b3b42879f3e21ab941d4d886d51cc5bfc89434d5e5a4c68cafbf1547e3abad92b2a8f6b1d1ae1e785e0d71a9e4a59bf4899acc16128bb8800f64890b4c01801b9433f5acb02b6898b65755d4e2276af7a05945903482101d47efc4abef3220679d36cfc37caa1d3f19cb40b549912a1ae0a1078ce3d4bd34d3461a00e8e10d7707f83e0357f1ad77d4b6208c17994803f0286793abd031496c3ebdc86d6f4f7d5ac5d63e04eb81df557e2456e814b4fb2c26fe1299626b6acb9a370c31b6449cfae2a8b1820ea2ab5a37dab022d0db155746c351d24275b8e310b0081081051763a08f19932f36d3f53c730ccd4cf56192ab4db6a8f41d24f944d58ddc863a0575845300bb6891ff075b60818fdc1b81ada6b31396843ba7475c8235f229fe113ad4e4ec81c66184953c1ddca38ade9407a0cb523f7316c470613e7d7fbbbc2f970475c62861837c104ba4a5e471ab55c64367db9a02e77390a3b3f345a3de0ad33ee813e3241ec99cc4d30f10471b4b07a34f6c6ea3ebd1e9333371e4dda1d1a33fb08addec2ccb5941c1958a553b80a8b92c55b14c4c06336bb7577d2fd15f7e3f43f47ad149d5885bef80bf2389b19beab278b91acc55c6054f9eb6fbe4d184a878a7b40c5eca14dff1084e776f86025219c6ae7b37cd7909d43d3730bc1e05622d6acb3cc78d0b3057a9cac5dfd01f57c5d310492b6c25ea76162d82e418dbdb73c734f6179deff6a86cbe9990b9683eba462e3c479f6f624c42b7300a0f8056dee5c9c8905d070b9d6a73701ec86cf28fa1e063cdac46be8f033921efef453a924352e73ef9117073c4e4acde4b733684618ff24195e046527084412e028653330921948d9a586ba954691d8bcb234b9d23a79ad8daf0335e904a2dac6f1520e5222df2ebf6716a7dbd34f221534c6eb659ebe19b2235f488624fb9c946fbfc90cd64090d08d9a99ba9ae161968c85bf4de3fefbfc136ddb960db956533643dd786e1ec270e553c78b427f31dc22c70f5b057a7cb05f1204886bd5e70d07deb52add219d73c58968397b3ac5f75ce841c2e28a11c6b78db4b2d668f106c44606233a55e3dbc40ba6cb420e455223d5026661907e396bf8a55345cd84ebe06e7fbaa149be4ca3414cb80c90d2bae4330e383b43d9c2bd47d1e949103b180c2133555e3867c1febf20967dc38412a605cbbf00ba899105c18a44354ae8e014c429d5718c39824581261905d8cce15d8558c462cb10fd276c564cacd44c94527954c0fc03c295a9f919b0e400e964441d7a798a59b4ae67c8cf3eb65e1aafbf1b99973117f9fe2c0963ca3ef1eefca9e38fbd71e16b66b25ccab2e69b5945ad9cd217f3f3e076a26b96fda5c575bd4ef0c2d7c0cc898f4e0b9b4484aa6e1661e5215af40e858b1ba413da027b31e86d823e2d16276c74d2f4c118492b56bb9725796b0cf7a6da47ca51c61a063cc00e101ef06e12aedee179b9e7f405f2a9bb407e5a5e08aa75afd4d2cc2da745e87d5d50655e0dd6b7826e094985805af4bbc3e1d68a726543b1aaeaf6e44aa7d8621223848053edba4fb0f363dfce42f44f9703c62980faee43aa85463acc8c5a230b1e0ed9c127e67a7678255edee3c9d9201262984a6551ad21a2895a5e002a52d5de1bb330754a7b66ff10d0da9967df9c44d5cdec2d260ae8e4d23cca6ab990d39ddfd88843f0faacaf86d84931ee45d4418d26ad37091a4d67d923dae6632fe48e3f1e96f99928dce1a646ab65c809296d11a59e4023b447220f54cb4a806b10e300da72f75d1e9c9017462ca14da0f89d6d5365ed8f8141ddf8ba691db83a0ebe3f98bf7bb40315bdc68576d77279cca314321e4925009de93ac863d731d2c1cd7d6c15f70c87da48336f2cf4c4bde3494a39f28fdeb686b5362010ae90f37696f84eb5529e70a260b2288208498f03d782ead02ee75e521c15daa443c8acf1e105e80d52d39ea578a8318eaac6ab66070d23717639339ce6aee58a22004d23e0fc5d2a2eb76bad6a6d1a211586027f27bc98e9fe6ea924b10033e377f4010442dc6024211f075012df1deff01ba4f1cca335969e084da653a867c089d6bd5f18ca961d0978c22cea228198a9aaef2e6a615891137572f622568f1d9516b4491f24b61c47f048cf0ce80e0017ba1a2f0af40695d74d5040a8f11f2ac46e8dbfc4ed0d2837b5311feed0d01e78dc3d3ccfc98d523d4fb0fbaf50dc83ea72805ab7b83cdde3c030db8bf7b5e68541e4f496b8f7044f7a2ddab01ad789efb0ac17a2aa789a089e84fd59d1fb0ebcab16477b160ff035bb824fb0aa8c8e87a60e6526be53ad91bdddc7c98d67c45f8601ad449e41acf935e23e70bf05b409a5897d84f912af99ad2f8a1b52546cccb2f44d9cadf192b1ab791981c548b1c87d47ed76d3bd492c1dec5c813fb0725bd70b2cded3cdb6e6468a0ef448ec1add1e4624e2060bc3a744ab65603170bf3748008f0e57c96820230d03d2a21008132242000294346aa6ceec78712d7a4613723e9b21c358e92376acda8fe469fc457cfcf9d12bf0d666269a628c93db4edae9369d64df35271dbedc95232e7d7b88593750009bc8e3fbc73ddfdb9ab7cfd54f2c533209c9663dfddad1399718b62a4e1a9ae3700b6bb2b7fb141ac3917e76f43e15b38345fa9213232d30d2ed19a90c0017ce88e647c23158a0dae8fb34b2bbec3e41024c45643dd9acc7505f1588497438563b057538ac8a073e4900376c0622f9446a4019805d80581653b36ee34b2b1755a88c8d2bcd19f4d4338b8723ac02d3d81a660cc1e0746b871c359abb74a30085ba09118ca809cd93dae75095bda4a1edc7410bde453cb94ef7bfb84ae049f55ea69bc31f5b6d7317adf73e7f61afb0a3b762f7c603b90b6bac2f1d0af77c359079f13609328dedafebd1514ab891de88f309614f96f0b890ee91c7a6be278da7413e7ccb5af5cd8dc6866f452ec8251560705da1112f6b93a9501aecc2a1f918f65f631a6406784912f5244fe680042d207944d87207405ca3864a6ae56cdae0b51220b16af30d905f11d790095a3ce5e7283ec0f7a96050d95cff900100e15d160d363990217e1c012321126169613b1eef2f3343d0a660f0c62b2ed74d0b3be62aba6d502f9331109318001b2482c303adfab2d4742bdeff02595c10190bd03ba36f11e5214deb9441a92e272cd0c4e448a94bad776d25b6c9f414829b0da6701b0a2db41d3a55b24706506da6352d065b4a52b3b55f68dfba604772aa56e9b1a655523b58969329b240b6f93b4bbe4f112ce01e5b6c835ae6f8ef0643ee7b062a414794c9e13a4ecf57c4cad640a4194dddda450b90d1ea6163cc66eee84f70ff6319d49b3175a7df424608e29b8bc0946abc6f80519060a35bdfbfc24e12a997de674c047f90c8522ddd110c4011328db48e22b4d061ab50576251e3af588e730d179f8f34031bee749f148b6beb33788290d0b7d36a93563f13fa4dfea5c197a1e6742f036064a8d66ed51484259aa20ce06b4bc3740bc419fd192e066005d1475dac20dcab72c72d6dd1f8d35bd43ffeb213a2bb002f920f05a003eebb57d57c7722eabd5bf08d316ac1852c62d828a990d88ed2d1e9725d088c78e1d29c3ef3a673f6c9cd662cf923c486ddbb545b2f04565614a811534d1930197113ef1878ed5393d38798be56181090bb2ae7e602c97e3390f50071a432852e89c45e5e4d1ad2954b0829041f3e3d5624cc8f2cb79ed849aaa2190993e86e2df9b01e914ea02bf6e445da4b33b07b876e8e8447dd66e04fa3f857e5aa62e14767bf15785340e03f6932ea0423c6de11ba483ba3ac3c5448642dca1259000044b494f91e526b1f6580c30ec829d66093f7d6edab6ac35da51d90efe28aaeda28bc3a24771c795b9e6c7f8aa469d828cd3667b4e20d31e7040d84830777927fe6606e92d2e82f55a641b8bbb4a5cb2d30cc259a8180d435d27fafa087429806fc181c1b580cc6a5265b4c24063ec033bde883165dd940cb98e9352b567b48667d2fe0ad3bf1f06ac9ce21ecaed45468051c9e68649b98b184ad105d9d9ad1b9988c8336895575ce91d6dac8fe144615490da0a27845114415666bf6ee9d6c9130c7703dfe3efed16eb51cc41834619a3ae4d4cc99b6c39f06a885b47e84923a62d29aa8ec0a8610588954b13d0e91c2a108f5f0d2fd4f5c3164ac93b591a4f88552bbb71eb524e4d6cb0b32e339d7660db92d82fb6ee3e49d2206b4f06a047a8133b20ca08eab8df71bf95f6829d4b14a5cff3f266a024fc191ef0a0beb5af1f60c48eb9f51f131f359108431d0882cefd503b53ca7e2f64062dc2d847e4ee9712880ad278d722de22f52cccdc917c083ff10af98fc25e990ede1441caabeb0430538e949726ce60ccb6236d3b2204a1f141750d3b7f1a63dd3c03d70655bf714533c79e8f3c86acf66fe765b17ba34bd6dd7e43fa9ed13ba62f75d1c60edaf59c16532450a3bf7630e77843bc4467cf98add38ed5045413a666a476662b0b1b8e880405cf133b08d57d46000af3e3855692d311ac185fc3c9eace1f10876b9f3d953b5ba320120003c7150aea8c44673b2803eae240be108e71d7199e41158ebf2d33494eb8c98efd69ea0e2dadcab55a89bb0ae1ef9f301a86b4fb10257d0230d7478de2c7eac62bdfa221feed4fd7805eb0ab5e935c9629dbaf76fba3ae83df22f3ac7ac7d40fcdb5495269d6681c5abe0f5cabe9b86c6e757b5ba4e05a533c0abd3715097887d2e54a572b238b910db716ce93471cd0f04ab4f2d6eb49930b6726363c8ab005c54b817b7c08d6464c28ba6a9617f804fd2aef45d8ec7890afb84d613f6a14fed287631915b4bf61654676d35c9c9885dc104e910ebad57989880dcf343e96b4fa1df847207138067ce7d251467b71eb4ca8ac6aade200cd6034d889b3356043d05b8898d14b24de0953ee3055dda9fef0a48c27bc4d562e87d8e7410faa3f355aa3452671af12167d98af205a2fb11e9b550e30582b8d874b30e5c908835f309b547e61876ca8c6817f43e2aabea6db3addc2d67bbfb0ea004499006646cba22da5ed0cc4cb004885ea6986c68aabf54e7c4a7eda9747a99db10c60d097a12e5d250f0fe24f8dfffed7bef906c0a8c46fcdb6166be859a64ba643c4efd0ae3b270b9c848979216af49f39b9a65b03c97876690e57cdfd9ca129619be6cc020084e1531ae654decaa91dccea4d7a296b729fc4cca23977d0cfcc5c144cc80802bd19cee9e8bc1a645684bda37c4e8e208e578113041a6b10270ff56967feb0c89135828d0cb44167273576c2a765ee115ec0759be8e4fe238a4cfcc534cde848f5871a87e9b374d41c26fa7fa2b35036849673a05488acec683cc4b9ab90521527a95d50685e3aa3dcc4e84d128061d0c49282339c2ce528547004d22b2684a5061f45fb18b2d0c5a33b01e09aa51bfd1636e17d779a5eed37961e3cf3eefae1dd3c5056065091e3c165a2089e9e10f1fd2a95bf8948a41ebac1c419f894702994d8762e07c2b16fa2b6cfa01b434c64286ae1f7d2285f2f88aac8edfbd69261641d7d883dd5914860520d8f33763658f44853633dbc48acee2fc9d75ad8a57bed40c6321772741606c84cfc76883702607d3f0986e799280142014b146dccf44151146b1e9c0466fa1a1730d6c3aada2ae981395196f2f0c654f7732e5b4b9e2cea8bead039a4258128543c2a21e26b6707c42255003e3881207f251b13e93da01346a0c29ca0151e0ef67aeaf329ee3589534b496700a9f6e305bf7c949d3d46a78049165f9af53e37e4f4ba615c3c7fc0ce78ecdd379a25ea40a4381e549d4670f42ea1da0232843e1f58d2a2487cb37df714d001d4ecf1b7c7113766475a16c6bf3e64e1a9ea0d9ae7b127f43484d377b52a8018ab7915d8c72116b15d733ca5cf58d33f62042cfc4955835a0e0c5f971801f79416eb6b4297778310e68f78765b795cea4d4e6ce4866600a9f24f8408eacc5ee474f62be1172842900e9d3488bc62de8a9f8e366aaf5fef6e759df2d4225e67832faef5f9c7c2622c57aca406554b0fdb83ff190697dc7da459f66c56350249fe07af4419dc035e30146052106f7f8decd46cacfc4abef3b9600a8067cb1089d17af92157b0778ea83d550d18786e73774a4378cea16acee28fe22eb04e5d31298f2252a1bcb7bcd01cde2b355894efd6a9dfe8ec5c05da30b209b6fb261a3d1a63d4e4127400471ba8d83b6451fb84834c37fd6dca0114cc4037ba8f81e829132c5e006db88f60f12ae4602502395c299b91bb0297fead99610dbb39e0e4edaae966002957443dcc89a1bc1c1ff3f740f14243593bd707aa3843c53e108d6289189aec4724a1c8c631ec6acd50fc0c6f52352c35f1f106c58756f831bd11371f9416c49b7dd278dd8ac4d79b0dbb1a5ac1f712432e3de0f32493877c0b0a98ccf1e77168057737a8f4e15054094e380059a1c9c97a63bc44df825059a97e22bf6ee5d7b472714738f3e6b7ae196a12fe1ee932148d78a8c09ffecf27b50cb5849779497dc04819a40aab94a1c6274c05c23f54f9a2060e2bdda4657a033dd72e8f3e100955ab1c886c962b2a38d19730b0700e0f943550e3ad693445e042d33e1667050fa99f6e66c04499365d895030ed4b6976edcbb144030e97a5f46f33f7c5b1a86cdd1dc71cf06e711179e5fc992d7415ac954086e7943a7a95754ab74ab64d8ce012a1f894599205685fddf029b5793b1a69bf2a98dc66ed0223263cd4df6fb71ae30b1791ba0b5af77e3b1bc13f2000dcc022f4d76ceac868d5b337c535efee6103b79f9c37fb70d3ef04eab9afd56571a5f6a59add0e626f7b14376aaeb40b212f1b8b09e5f8e99861a1f69a7a80bdc262608415597a8801bae0fa1ab3d80b4386a56ff5b03a90ef8d993f9839ec48ef9c2860a227f32420ff5d05c7a53ceea6d24b7b1ce68794e66db4ee9ceee68e8f5c36709f1eef761c5c15d4a767e5d75baf921f70fb2743d50fd49a88ea5c2ee17dcbc358ca335235513458066723299cb82c4f80b0e143e53a5f32c405f42a968a5348c89deda1ad27beae3112c99517d1526858da8460ea06b412ecbd4c11989ec04601021b8afadb0ff06f737381667088b09ff01115808d23091afef3d3c9afe76a08b8eac8c3fb836bc3a5f0df7f4fe152a969e6c3dd520cd8f4fb816eb9a34181382f8ff0d5699708613f116fb21c4d0fa19798d51869fe1e63d205449ee97703615a7d7b336452cc5aebedafcfe2fd5879caaf87c42ee736605ccd6fd8ded96307aa95e67d1e37d98ecd4488672e1cec854268b816a530fa55291eea7c63130f0944fc3b9a25329245d8b5fd0da452f53fce45bfa62f2d0cd642b1a13f4d1e0b7146bc262fa4bf9b144dd1776199b83341c6deecca186ff6b645d40f622dcb443bb9d4a5258c3fc76bb9784d2ad4b463f2307941009ba854552d6d88a4e27abfbcebba8b5377f6f9f7e3d7f800978e53930498b3ebd7c0d1f927b41bd9a28cd6cc2ced660bf9e02c207c02bcb89c26d0c06eb5b26412623d1232e577ce66e068b9b77c446783edd8ae314341c8ba66e7122592813b2e0332c12c48a1125c00c5808f794f87497c762686137c7ed6206d7ac3f71585f0bfa19951a005a04b0deb95d17098829bc56583168ce5896d2da47d5c2a78468eee1ab4c287ab550959c0afd689b4292e8323d54e98e02fe01d8ed8656e1162aee56c5c9a48e0a0f57dfcd64f0802ee4cedfcdd2df4489fbc1cf145a060de2111118ab3066636aa4cf6bf92a3596c2fb853c0812ed43c6f8babda3431b7af0462d87205bc31c4658f25403e540c658599cc0c019803b2007ac7ab59381c938d411d0772de08d2527444bd23762ded5b3f919b5b72f0109230e232a7905e38cf253153e5efecd217fc112d7999b432b378ba13ea5488285aa1d563033a09ef09cc11691faf733d1457fbc1efaf4d62ebfbd103a205fa805b9b435e87070de9479420f082a804c9bb0f609d8b49d2eb1fb222d1b6f49f8359195a9d8a5ca91518ac3b987ac4565d2fa6d265065b3b72f6d99129518928a30ab327e747105ea8ee3118d1df78221cf650206da1b1638e729495503b9649f5429043694c12cdc7780c2a8ae285b0a0e6c43ed1207e5363f0c6137afdd5bd93a2e67b520f56c9994a221e66855a436e88db043dad92618d01c239b95f409ffe71d0183bfab0c935b31ca56726b7c6f4aa91b256026f0a606fc9d925f575d00a2683104ab6dd3c9f2979b4837885561bb029d5824131bcf5d7ea3b39e69ea5992d37eb29e22ccb19a92513685f312d3393dba7222742f831d564f6a6ef6d14dd3bafef22330423026f18d7cc6ccf0227726c8640fc5b3cee3b9e05a3bc1539025686f49e3d8107eed3220aeb712703d9d2fbb24e06b0abb829262ae32bfe3ad70cf5a69e0f73f6a60232044efb61a1f8a23bd566c4378198313898ced634258f9a658d68fc86a124877ae1892e3761a820144e51cf8dd69b72872caa0f1c5b897b0d8d99e3f4d7fe201b053ce7e3f064b8df01db34624cf74a8dcc990f745d145f8fc7b0c350319b6722b8ca6fa09a4b5440679a2e41b616684126d3cc52678950749dd861134d634c0ecb36da01430147c3598a8dca53cd1d66efdb82e6c499a26e3828495a0f4b35e22490fb36f348c85bb7e2ac21381b988eb5007288c1170fb1419385dc655f2f8b1521003aae4066b94a967bdfc4a4e61f622a206ecd1c942c1fc5144515bcf88544ab45acc107a8d905841396e8fe798ac4b6881a0ff500b6380591d32804bcb21842d7d01409c945c13fbce8e6cd59f7d6eeebe0075a5084ed260e6ff70a99ffb16f2243724b954e8555b819a0cdc99c21dba944f4f04e049c980399655c17135288a6069c4b07f493fca7278662cef76ec4682e309fbd9fe991a5e51d44fde60ad67ce85b0383867fa667992ebb00f9274f30fc266d36e3bf98a94ca93bcff5a3995f66d1f75376af0c96c2db91f0d5f64f97f07a75ad4e3322793647f8ff8b93ea3528cfb97d434736474dd301d986504616cad955f3dd008dfbe901549584faf37d46429538993896c08563559adb7e3f6c6af2aa9ee890fa427b6ec79a5d63d0132284210692f60e3b3727c5636bbb35e18bcd6399e865ce397e522cc8e8fbc166fd1558121ac1e665a9f7cdc9f2f324b614ebb9cc2c62da88e0dc74a317f5753f3017ae241e1bf9852344a2f90a033f78d7da97df58566d9fc6830cec340ffbeaeac7231b7e7d0f4c7566a64755192a9ae50de61017c2bdc0320a9d8e231f8a4b7b61e160dc8d21807ae864688e248a66c7ac6443f207194e4044aa31325362c533fdcf006a663e6a27408100ba8bc1a367e67ad5349207f60e3f7955177802c8e139488018b80eff239de565839af3a56c5e4b7caa790223eec2a1ebfdf1f1e329a1ca66da529ce3940e0a32fe4fe6296e814a2d3997f1f3a4cd175c44e5a473276393dbfed4061d59075692d7715480deb942b87498212a5605c2795923b596d6bc45838238c68fc82da07af26b85394e0c0b410681dc500bc6e60a682ca8c508d139c2f3758b12bd1f0163ca631df6aeac400035922b0777a83d45673e03539381401f6db26487e0d047c306a8b2d037a954ffc2f3fc205718466e598ba1683607707cb5e04c93c46467835ac20c9775dabd192dccd0051ed342095fe0600a077358de7a722186615581f730e3d3323d418b57a22b5729843c641910bc451f88b4c774041a66e46750e4df0ac9900bf26cd3533e2cfd4587f8a2a5d455ec0b2b8b4970ed9c43fb617551c5216f5b5899017c1305b9325e15d5ef45e18f3fc18192754586893b8ceacf3fdfc49761a7f8b1b49622a2fab9bbc5af2b63c6abbf8edbc294c013fe4c0ef36fe7e3009350860dae03cc19933d3a1a5030a750a31c195df33aa09103429b3d639d48a1e90f3ece6e914a05e13314fdd21e976b539783fd333f74cf89178de016172a605e984629976355d1dc1a20f77f7b7ab8a20240beff483a63214a1e1e98f4ca19dbbb0b591f3322030c1ad425da2b84e41a1963e3d59ed67abef364dd34b97b7c8cdba3d1b5bb8809e5432607be9858cc5000f37411871b44d86100535054155771f8603fe93ad713432f791a51278f4f7cabe925544d03f63dd7faa63257850debe1d06a265231e7f163e35f7f1619022de86720f55e564d2c513a806d2ed035d029c4fcfa4cb09bc24eed5dcee3206406986bac74d77c5a6105798f74fb26796672a4eba607ac8a483ec6e000815baa523d0432220110f330c4b6cf1854ba3af63e346310014f365ae11b49c6683a4575d062454a09650b27924eef23d9a83ae0933834af5fb37dc094a87d0481e78e48b057fc0fee4a171c70975d0c8d231427ff7d4ec3d57b2f7bfac9a84bd678a459eba0f0e5a7a6831d3c2103b8880c78168163e9bd285e3d01042eaf20c1f12ec8245df1f2d1163546e6dcecb26677c071056050a13fce24b65957a26f62d911509c2037ecde39a661db4418c4e1848524220755ace87196e831a0b9eef3790f4421f4d389761ac67e94626702a9ac9c815f00420ef1c41c1d9766effd8d263358ac450626bde404bf2a25df83f615fad8e5ebf0152b4d77a7d72ea0ec9f1dbcd7e4b035389325d5735f997819e7e38bfbd7d5bf8c165b21b7e48c5b567b6a1933137b0d6f2bba032382767a44047ea0d57d51f3cb93e65fae1582f915b35dc4e16c4d36b5da8af2d8ec13014ef2da28a2b044afddff6d958d96c61fb49f848b61ff2d207c650c171f85405b80f22060f0940301cb77801a35fb26c389afb42cb22b081a6ee48a6bc1ce94dc44ab30cdf64871b23f0e91048bfb195467454cbf25acee40d31bbe291ced925b0b5e046b89abb2d65c3dacd5aa80b5fe6ab7d6050f89d728aff7c355059f24d662850ec52a6ca389d935b8de2ef5760a92cb6712cc82f2eef9beacb86f03095df087f6ba941dfa39eaeb04314a80ca44a528c31ab6434fb7db4885aa9bc767863adf60ba5b994568310a9ea94af8b7317c7ebebece7e83ee6bd408320160b05093e74e6393ca30a315f7ed1f10b7ef8fbfcbc223a0995ea0f99437c8c666ffa2d4d8296233da017d9c41e3fde467acedfb286a5e662da1f26d0e049fad95ade3af2597779f6c6105241c503e3074e314c5c73b8a8b5c1478b9d8202536cd7896d860737c7ed6514cebeba912e50eb92f935ec4ae5721008177f1bb672abba05203549270c3b50221c04fb4fcd95d697e29ede07050bd416fb6c18b9991fab95a304c356bd627c5f6e75587b3e102ceacb8756b9000a5f2ac07659faf0aa8b8e4a850f42de3e6cb23232516a55e02e09e23cdc33394daf4b1773f908bc7415edc046ad4e99e5c5aec0fe416a63c7c14aaaf9e70b20fb9affc3a7b01c883e4be24fbd1f3ec7721fa4ab5989eb0a81c373db88a416ff6c44de8a345c9308bd96f46566ea24d39b9d966862df196bd207f1db920e625a8e1708960374e0ddc8ada576a1a58e21bd464a5557294813bf05320883e25dd470972061622951312ca0dcecc259ab1f255de1a36309435ffd9bd8c0f6bc96495b2767e394397bdf41e3bb9b65813295d73bc6c6e064f62407b6626d2f5d7a06d4b4853a85b22ed78951597467b14f3dec9a366cd1f2652a816933ff5135de9e1b1bd776000a4c5c065c919e69f8a1451578e2597f9d31de9d5c28b59a67aa5c7b9f787b14a83e56e6502086fcfc7e030baaeeaf77e385130fba36471260627dfec7acb7efd493c244218586e8a02a70419281e3e66c640abe33e70de9a02f70d93e564092c3b8c5c5ccc08b369ff84ba012c1324c7d4defd372fd67bf22101bee4b44e2b1a34384855dbf78b7cafb84d6737c16b30c5c3a8e413569a9808eec8f21bb02b3b29c206e4d40b7dff778e1f4e3dec07e55a2d490b75f3aefc158509621167867b5e8c82588fd77ab96486276386c79f9c20b534de85e7dc791eef284f4e68a6bf0c2ac6b60cfbe5dfe04fc1f11924270c9e30d46d42b519e005fd6524b305acc5c71a173cb33c0a00b2e51d31cb0eca2d8e57a151ca08cdb86a0c835247db38d65fe6e644dfbb2bbaaba8c1a60bd7fd54f954565445283ef880e3b89a56c286493238499c4f06f1e6a80822f60a1ee62123d57b460d5d051aaf43b0d7fa6201edfb6b3d8418b223453e751d189ebf3ab2e30537f905b38ee8888da084354369d229129d353261f88924638f4a38c4b0deaeea41dae793a90ff7a13d9ef412b385a0239539ea8f0b717d0f61129dbd1c33575734820b02f91008b1731088c0d26e0a380a5d62de4d88239ed324c186d6d8cc74bf1a99044d1908da73848d06519790328775977bb20f2bf3c65dc922731c159f9fd0537a4d0e64c5095649536e31210fb59214819ea1f019ae526d6c0ac96b3d8b393df3dac1039aebbc23a982c2760acec46c39b044b34fc56cdfeccb1aad71f670a00dc4aeefb8be7357f4fe4d39775192b0efcc916baa32e2e869b26f048d0fc1e2eef9450165a6c75cc47f432160aa91ba28629f6687050a95b04a0ce80309899d45f07064ee385289ac6c1f93946dc559554af0ff3794d3ffc093ad475c68aae8e0a81cca109418bd9b3f931a1c5629e9fced89ecc82a181160ac752f52be2bb26a7511fbc3a6713e5e09537a90541fa7990966fab30366074ad5f2626c3e23fa3991c1814d22d3f08bc86ede4ee3407dc4f8b49e4341c2d576b3b0a22e5be4d39f576636db5e135dcd2e0a76aafea76da7fbcb5a92903474f2283f71b6690a8ac1532caba5910debd352c53c770990bfa9e34f5f8aa2a7d03062ab3b3acbc22871ed761966d6b37a2986198b144f529bdd92aab62eb5a61115a54f9d319369f2aa9ab368e03abcd7dad309022adbf37bd3cf929edb0f6b5ece56b348937ecc82eb885ee18076131ed7342d335b34a11301577decce110f6616c318caf04df7d0705588db9df94770ac72da2a103fb7078f8131b022d72afcb60bc4e6e9d02b6a1876cac46ff4f740dc7bc36619d5d7886533f183a1f3778ca346a9ede306dc8eaccc59d0b3957bce032ef25a25d248f9bfe67ac62263a3600762bac95598a9ad94ad4eabcfb7e4e6b8c5e586355dba032bd82ad77b37759d64a2df9eed09f72f743c33c9b747b95360e6d0af2d532d00bd95bde24d825c0726250762bbcc9199e85b818c9a596b76c8616597bc7de015215dac5d75cbf42ca1951bc015725e22e7a9b4731d027fddf8f43f62567e60fb94b83903d82ff2ada8287bb62c44cf8058d29ac1edac4edc80abddbd79d8f95ee7344a79fe5e21ec0fa0972ccff7bfe15b212a83633e47b248ab0b5a7d58a58ed85bb168a8a608e1a2eab5c31aaa707b0ed0e46e98cded76b0a6ad9b3870c5338a26c28a0dc2ecb0050a79dfcd8e5bf9a0b4c4dd3416fd8224ba0698eb50ab228a6ae5154d44067755055746ef885825d18bfab1667f6919db8a8c1f9fd7cc2114d2852b859526269b37ae347fd680a7340843b81a913a4268253cf52034dadd3f19d86bdb517a34aea43788895e8de5424047e3ca1dfbcae8e609db430648235718d724d3ced9b44d46d295744ccae15e55985ec04a8d6dc78cd9bdd6ca0a464e799faf4a005d064bdb8de22a707f5fb8f2e811109728e5f5e9cfb532b5bb1c42c4965a18bbef7e310a366295451bbed300b3b05cc46352e3e0459af6419ce037c15bc9e5042310f34af3c666e50194e8463536eecda4bdac4254d78ac2dfccac1755366f5eae4f4ed6b9a3602286f0e5f1290b646094322c9b4c6e349637219d047a6dcc0ac962a8231889435018f593d8487623f5c2cd0746883917e628c95dd74d2b6a030ea26e98b21cf6c2e81b35a1510720116b979a13f4a0b46a21a123bb1c3d545a90bfe074eafd2c3c8cba1a7ed9e561ff12e4c90cb38dd3466aeef1843a579073bb0ef32f590a26d168fa6434cd489758511915ac74c40af494630fc11aeafd0d7e549c663f88f9c159a3d440ea83f4f6b034404ad87e2510e7496d4f6f1e6b6cd8f604e8a2844cacdd5b09591032b6436cfb3aeaf62b968d9d7b68a6be4071b2c9b7bd7a01a9ca0239ca1a391823f5c2f487d420cdbbe72ae73e44458d55a0084bcfb7a217eb497c7062c5a749af029d730a2c1bddf601faa0dc3c27a2e3fd1c900f7a7b2adfc86dbd9d40c08e5f2938c6d9980527487736fc9b0d591f239a22660d05f759511e3269985b8c373f5182fef04f2a0e68d75a3f83ab33f3f2cbe4a0b8b918f666316606a276e43d86a6fb214362b94b93a0e80cbb8f24b62beea0ff341c97bbbda588ef8ecb862a2e72e046bd0b2a435c43e44af8e4bfd2cd1e4f0f181a44b09b0a03af9d8441bacc2436adde585fae83a95cf360594a58a59b2d55e6ec944a95481318527ce25e2067e4d2ad127c12d0abeb386bf2f45a53f02cca91d80e738f9e441b293ad36a06f649eb83b314a705c2cfd77ac567c535855bd1adc29b8eddfdf0cbe4b5d1dc6773b274a246c0d91522f82c5bd59dc934c3ca681ada78ddeea1372913d5e000d043b5d31929980df4b427a5ae4cf34c1974fda279153fc9957d6a263c1e04d692cbc4008974f4679547283a5f9cbc9cb3ced86cb7fb9dad5249a17c1c4c326aaee4400acfeca479c604f43bc32e162041f155f1655dfec3752ebe401ba4d70b8191ef01da8f6a50d392d7d3b2a1db0996b829a100c999d714bc053e38d71b237d27830f2b4f1b308a4e0d7f74f534f0d2b177b032c22425879f4dc92d3f4cfe6b293e4f0caa17dcd41958b5591c851d132550e0171ee4dfde4b20df7719b510e7c17bb85151660715dc19e9ef1749251c3d39156bc8c382af62d526005d6f5cde903a6c0a912b232c6690028090b890c10222f35c091d4921b5c649ff6058b85dc2781e912cabd04522615bba96bd7ae65ba30ae1f0e4e558fee30911fe3e81b708533f6d6fe79d021054236e41f1ad3880f5887d08234e73b57ac85a4ba155141fb1968e83b59cbb7a1d4c6030c1242b38d93ba71879aad5072bc6926a2b373f14eafe8f39b840126b2945d324601d9b453ef499beab30e07d15df340ca587fbd44f826af7b36c9544aff3d710906ad898cff9865e90fd094d766b4ce24be157e6042b8a9c415148c3fcc56384974ba4318c1103742d3faf49e4c818a5f082fbba7ad88856e72eb40bca4e40d895a4ff3848c6db3b54d21cc4fe623136c50ad3b238889170ff6dab32d43ec81cbbe71bcd40b3a878a520cfdf9cdd5f78d5f947b02687832cf10af55b50312cae3ec49c4dbbc3dcd13c53d3ddf165fdf4688a76c8312d902ddd99fd83a5d3636148a5f6c9d1d0d11abe5df93feff72111778c00afc08877106d6ff4382179ffa4414166fe704df70afe239277074b7aff63d7f94919c0a78601bc4b78755f4bf80d4003daed099844445c04988e94076579ef4c543219c528cfef166f7bf167a0c6f64c16589c3170072f53ec6a9f76a24e8418850e0161a9c06ae4517125aab4ef8173e99f04bf89e47ea782350122430b1f338cc312aee90568565e8d9f3620577b042a55ab16da258966ade93d9c9849fc4dd53b3fedc0555ddf7913b574264b08b164f4c8d3ca2b1ff5c71c3f7843cc100c709e6bb01a05972bda9f7b6745649f5e5c9f5842101e1ffd3498dd1803c1427260ec99eb002a3970a81bf3b155a969de3901a569a775d53cd0ea42bf55fa7264fabfa08dba46920a4aa3544e51d2f87f4628a3f607729a9e22bad0442a0c481ffe82f9ec5fdf763fe715cdaf5bd94e4f53901defe3fc8ce4b6ac955aa0985503cb8f55a213702ba0f9a85308f4e2118085f8e4c51b8c9523b319126275e7d61c0da9e416236ad0e227ceb420105129380e51ec3bd1c4f7609374ae5cf1201e03293d1b5fe829357add367907f1eee4c0cb5240c83256089e0cfcf0b8ac25d14fd7bbf7b633bfff6ab01d45a8ce488c8e65860e3846b6211f0064a35e9e3efd9a2610e6174d624028ebe9456ff2c2d22427d6a4a2b01b7b84afb424507281289f4f25ff89bba4dfd924666dfcbb38776dcdfebd74de44214da767d60691a2776dd0c962a534b08d22aaab85786dfa5c096b06a4b66a363c650813127d417d19946a40a936f3ebf28dae4d8f20c0da148b2c42e5a82c46946a6378b6feeb29304e5104f24cefdf49450fdbed742473ee86e03d490b2ace0f3187b35d8a2472e657647845d8e96c67b8229f0c1eae1d0a8a1ede500f6bcb6a8ec3ceb613eae1225474dc28e9035fb99d118f4953fa1f3d36502fd0fa194dd2f8873c88f6c5f96b6a18cebcb445336d2a3dab672bc9c98bcb4ef1886efc9f7a74e85473eacba0345ee898d288fc9de0159446d8494a7399fcb71ce0839a1d1f8d237c127ac5bb369d3d7dd88f20c2aab8f172b030c122d2c65d5e5ef2bd7f3a883def528d8041b641478c41a0374764442b54a21bd63a9be2ad66674369a102878ca4dedd1641b6cc6201decef325041759a3242f03e1a67c8e87ee5f6a3eba5b23df87a14a271d6bfabf16220b3d5a53a10409d1561025af5cc474e822549747069d7515e2fa979aa5ab2495c68f2a4025b30140408949c860d4d0992047a02677ccee3fdc947ae32674406eba80b9893780068f7dcbb94f9f11bc16f45e580039cc5cfbc8fb90765c62b16b4e0d38b309a920d453524353cff600bda37e6c2cc25797f8c40051d143e5fc085a12c71050951837e95755fd3fe06089bbada309529d032cf0c55dab30c649d5b37595d9cc4ce29352950d47c32afa4a6b1d05523a880ba28dc90d4f1533f1c592145a1eed11bd016008824923fec167cd527213dac81442890e05cd68e510e3a656262b53c2d04c1c2c88276518931173b9c9302912f5c3420ce71643317032bf05ad31bde5a662876475f315e001ead667d9b89b75252e4d82d7586749ec1904f4a1744e88cb3e6779184ce7ec8fb8cb20c1c461a7ae42065272fc1db214e4c4f270ac7512590e759c2f01b64151553fa9c32c08b949e2bea6566d84c6c0925a6a044cc464b411b620dc5af5c0a9757f981390cfa5e410e11ac73243929999f252713579d72d77305f069a7fe123ee9f69b0a42b16c64151fe9f599d2bcb0d1dca66f0023c49039aa342885a20942a6e0e483f3ca9d02cef032820e134e33aaebb4a88dfd59291f3974ffe4c3fe8fd82e8e11fb59eedeb59704e360c187001f17c00f0a685c43502bed0e2097d8ed67b2de4009d2c920e7d037ef15fcc767777f79652a6940266085c08b2081f8dd12b34466334466334b6f3b990f597ab602e97aebffa51a8bffdf257577f5d7f6f714f6edb9356f356e6de026f27d697a396d45612e744f2fb369134993491aca9c944d2c646d471c9eaaf9953a378ca7f0a51159895eb5fafc4ae572c6e04de2ad6d792fa026f46ea0764e1b10d3963e5f53c53924d97e51ed99db33e0f7f4fcd39031bc59c607937477d3cd67013725414310a86e7b56577197840fbe76d910cc1ed6dba0e1edb9025d6754ecbea268583d5399934050bd6fd90842cdf70d815f194773f8e722fb1e6129afb1666e237b51a474d9087ab1aa7699cc6695ac833065af59eac39e1f947ff513ae6cc74ae06a888e3020de9b7767958614954d9d5755133679b2854577a29d5e1c137565872bb3ab4c67270008f6dc898d89dfcecf44e0a05e604a6275eaabca8c0c549cb1a94522118283027303df152e5450577bebb38b9f3bd658d3bdf65e81282eeb463581f4a5490ac905ac06178452d41760ceb43890a9215520b68adf9e2cbf2b93c2a5e10fd826e02815f7c593e9747c50ba266345adcc95de160b089d169703ed469c15de160b08991693778d084b21f78b9b5d1c6832694fd60d3b61916dc596f308d681d94b1a0de40868d3b619966dcf91cd322c2e2813d3ab00ccad03494b91dd36272674c8b6f66ebcefe981b133b15416bad2215a98b7e7d7faf7dd29a699bf82b1782c736a4691554657278753f774e46cd6ed53261c908a7e69fc2120fac2ae960a49482d20fbc637f7ea908ef947e7e0905bc03fefc920fbc43faf9a51e78e7fbf9a51fdef17e7e8907dee17e7eb79a3933cc1291d20ebcb3fdfcd290920ebcf3f2f34b27e01dd3cf2fe5c03b303fbfb4e29d989fdb34c93c1933bfc47202c888a7afb9f196e65d68be048aef81c05eee4921084e971395d0bc37bf996702e4745f689e877bfecd3073b845f294c584ddab83d281d185c137f36bc20ee62fcc3fc984dc2d90a64b763744223fba889d192d62778615bb324a6237856fe693c48e0c50ec74f089dd187c33df13673ab113836f38b193c2377313bb1c885d14bec9ee29eca4706abe4cd89dc1a9997567b0259adfbd664ecf2976afee35734aabd2aa7b9556ddabb4cab26965d06ee6dae59f99f8d2c4ea7a69f5329f2cadee0cbadd6f5ac17827c42906762d1356bb875a7be85e24247439cc10c72d0dcd9c17a399f237fd9486eeebfadf98ff977c096987de3c1d4142c28b5169e8253653533cb5b2fea1f3e54a8b2fb1299e62b46655af3ba37c8a5b9f7b12b1cd0b02b11101c28aaebf4b0f20102e4414c775219a39323f33e52f03749de8bacc0a563f7b526655ffeb6a88a33a88cabc53b9d6218eaa62fd71144d132e3d045d52e6c7854866355355a471adea6f3f7c236a2f565d655a2833c4532eb33ac2f69332ab1e329355b3aa49786c43cebcaebfd72f31a794eb5cc8ceafe90aec89d15e73815d675170237d25daef6520a771cf209d3c85cae59fb0560288cb3f59cd061697dfbbe09d6d021d71f9bbc53b1aff0ce4a90919346484886902a3064c122629e0f56fdaa7262a47332eecabd1f4c45c4f060d514688ebdd93314daeffd6c1a8e130496c2629d75fdb366b29a522e9af72e845042b5ab9ac5c562eab15d1ca05a4efb980fdf2f231c8095917b27d67bedac4758b8615a2d484a40629099ee23dd9d204c5f1f5c4dc2ee65934ae3fed9f9c15e2fa3b2d35b95e496a9092f09607b9cb85bcf4a18eb591affcc7590ed4e54cf50ff5ab891ad6452fac17d60beb85f5c27a615d7f17980bcc05e6027381c15c5c2e2e17978b2ba6cba4803fdf141e10bc225a89ae6b500ac7813fd71fdc9a45bf29aeffa77940b8fe9d695e11d7bbecd8cc69d64cf503995add32b53ac8d46a97a9d542a6d6f57f89f5176df6148b5dff9772e6e86ca51d3abd1e75c997f2747221abbd0bd9ed69ee93eb5c12b825b6339a0dae7bb2359784ebef69dc93dc12d79fb9336ab3cadb37be6c63695814e149ef626b517b7266a56171fd3b916b58b36eb890a574e622713d8a469f9c5921a1456118cde742964f7787e983aceed0fc3233ab195c7f9e59f1cd14b69f9c595d8fb9332f159ec851f9522b054c797968fd1abe1496ac44dabb704f43eeb7ad659eeca65c4a068f7169477429951eba9f4b5b5c97a8be7260603335640446c1c46a13a827abd0a5cf9c9302adae4b7a8f14d6546167624065c60836737004cd54cc5538841cc608acc24105a31c84851e139cf247859e124ef9e3a082551e128c722157792d4731c13b27bcbfb704efa0f0fe1e13deb1797f6f09ef98f0fe9e12bc13bebf2703de8901effcfb7b41bc93e3fd3d253882660e8e72a692e01d1cefefc180774a787f2f09efd4bcbf8784f702ef08afc53b34387004a5f0a4e9925e2b8527633c9713200571c810223823ea75bcbf77820a6fb3c2a3b0c29b10aef039e87f08027be98b21084e978a4a5650f2731a87a49ec90f20a73b73e3699e823c4a56c0517a0947d91a6986d9ca5ff047c5a41072b770fa1586a82012f91105b11e9d20d62c36624d820962c5c237fea258d908c5dac68b15097ce39f43ac3f3a634a24f2230eb11e816ffc819c2e15eb1a7ce32588550db15ea109eb8db0a6518d508bd0a8b0aec129ff14c29a85530e6354b374ef5f631d8e32069e87e3d6d8ccf15a9cf227bd562cc65ecb6b6980fe5fd26bc5b442182c14c6886f3c66058b69392a2609cc555c8ff0523126c83e89a3f45a5d7abdc0b63ce9b5665a7ce3a798ab668531d5970c86e3b9857c4f2169ba648d91b68ceb1f1392a5db893f1a2624b75bdf1492f6d67f09c9bfb58ae4e94a6d0949d425618cc81214a3eb62ada22485e7e195280591549bf29044b630e5e5e1648d59576521395dfe0579cd9f60cf566bcc7a2dbe8181ad8961f114fd8d3ea9c8a50f1eb9f43f2497be97e4d2ef965cfa9cd1a54fce185dffe9468ea2a4100cbfd00bc9bfdb7721892271ee26923557aebfe6b5ae8b374cd7adda1697fefc4d8cd52a1edb644f0ae096243f897279fa36f2572e9e70dd96cb5c385183cbe0cca94d9c208b28725083064746f2742b16411471ebd32d7ce0e2d6ff5cc5c2adb73e6ae6d0f1d69694235130c1821ee020cb5845f2a35c58bed473b6b1ffa39b13cb57e6f2163eb8ae77190b2332b824b54ff4f713eb2a20f4fad3dbdf5eae56ab4bef14691240ef7c7aa708a4af8bd4a61b8bbe4c3d46c1daeb956cac48d24b5b98451b47f1b36ff143d16d7b79b810da7d84a35e0787ab8c3cba3f116d7408f47c22da385fc8d8208f7509cc80001e257d89c0870d3530a1e9c1556e3f57b92d7e63fd79ab4886e0646748e3001eb799a242c6e7713ecd44f617c6af57ee538ae7ef951ae080be1aa5947a6fa4f9578877b3bc8edb3c2ddcd833eaa84f45e04e4e511a02eece5b6be5a7e19ddef5bc8edaa376ea020e8e0074747c4e9b7f1d28d4e6979f9a6a4eb4d6ae5dce24f5f93baf867dbdf931d1be863f7ad066542d41bdb3fb4143d7f7b8eec135a7b2af9dd8d281963b411e9a0678df3d043c11025c4b0b2c0e6cb43d175d21a390d15fcbb87008f75d38a4fb19922d482c0e6c7481cccb2ccc6f19689885a4cf0413d0c2d5de9b2069137938e75a9665734e2dcb26a76959a679edc2e399c38449f634fcd1a3d2d09bd89ce24270fd390725f0c304079dab0120f36a8fba42c6ed69c8b38a646f4f84090e3a17c864a15988904b49bf3e0e26e0e566ef7925692208fc66fd9332994ee710ed93c2f49338a8d487a7191d1dae00ddb748b20fa4e0e092ec279e3c11e55d1f7c63454c8c6d6155f65c804d8763e09cee9d1f8663a0a4cccce9441f9ef277d6a2c5985761b3d00708b63bdf03ac9aa20bee8caa190934d0db3a92b6559087f2ce0b47c50af087d9675cf7a753c7fcdb86930a67744c3770a62f7519e7f2eb70db4c390d362da3d30387b8d4615438d3c2e17cb766cabb35737ccc94ffb6597be258b77ccc1c18b0e86205650cd610d7bfd3b1a29de47125ea28e69d188feb48f3b5b9090bba7d3d7d399c93879a78fada8c66d9f4ce36124d0f2e8893f609d25ac11f3cd9d3ef6a1b5767a6c4d37ac86a55a47f7e80f88805715004da056ab801b4610b2720815a499aa8895ef5ecd64bc3d924b08180661f6956b3bc8e823cd4eb201a1ce5bf6d1c8f997252e7eacc1415b69fd4e19daeb33199ec0d777e5f7eba7d261770703cf0074f3f3579cf7786afe434534aba771a58a753070a45bf0ffcc1a37df69f13e0e7c7eeb9863bbf2b9d4abaf7bc1a4ebfdefcb2906fa51df42581597b8637534aaae20682edda9cc4040d39a2ebcda6fefc0a6a5d8f7a2b6806dee956c7ae5767c75a4774cccbeb65b4bd04625d4fab2ca0664dd8f5b68c05c4845121eaba1ea73575fd5c8f51b07575bdeea321cd7cee6eb72d7dcfebcf75f14ed3262e057b626ec3a84c20bc742c629d46ab8f9801cad32afe68caab8de348f4e90b91c73664d73e69cdb48debbc0f24956c8bcb8b092646e6347383a6a68415acb5a2ae1a9a1b3327191c394a68d5172c06c6f4e2d292e36b5a2db644fa908695c5c0cfcb62d7bf0bc51b2cad8c759c269a30f337fac5976f2c136c4e17763917ecfa6bae2938970c33df4c61fba98b7762ba15cc10a7d9d6d180a5961798f074a306070aa10927a88052e166c787f395b0f29607b9cb85bc8c0dbd8860d3b5f2d76ab55aad9c08561433aaa1b9317372b95c2e97cc2ac6c60553ccc857fee32c1aeba117510c56966559962c168bc5624d98cb5b2e97cbe5f22077b990973e1403539665599a582c168bf5e2e272b95cae16155e78297ba85f4d04eb22168bc562b1262c366146bef21f6739508b65b1582c16b843e5d2ac0da85b1dd4ae1acab22ccb9255b2582c16ab87fa45042b02bfb22ccbd263752de4b4d4c046bda2b192559665d940ddeaa076b550c7959b4ac7e2cc9cbae9d8b2b668ac0614eaff74b2762bb2b1131bf54f6dd5566bd3682ca3b14a6394c6268de9c050ba5e5bb3fa8989ea27929b2792db4913c9d3ff0b055e970206d2656666664749e1ed8031741c4762be99d3eb9e57561ab92ac68d5c3565b078ce36a4c83cb221611d06ca946094674059d0348253fe32e11c8253fe9912ac9a4230ca835c35598e3262ba60b6602299454c164c2226d01c8277b29993b9e65cc154c13c328598414c205c1e682699495cffd9aa992b73d55aab8c8c8c0cd5ae4cc5f243b222d911f70ab34c2c899aacd2e49d0fba07b6335ab7b0079655b839401e1cfaa88d2c1708fdbe5b68c104c05c2a830adacc6e5c077b5097fac604a5f1218f6d48d2eae5aad31c82c272b232fde5823673dc68a67cb3a747b911e982d1cc019f78ca3fca6aca4f159615f0ca6c5d07b178934b7a439674461d16111c6262c91a33baee4d9e94349f87c75c99ab85f58aa75cac3126284988d8ed5c305659fa56ae49a9d36c9bf1c052cb4b8e98d38d1a9b1ca1092814502bdc00e0a3a13116be163e8fe2db942b9ec47370965c2870aac06982f3e4f27babaf784e0d8d05e643605e04e647905ce69a784eb3584f58515853585558562e7f977dc473ba2c1b49d949ca5e5242515671f92fe0391d9b29ffcd8abd72c232e416b9fccdaac155d94ff928a727969bb08eb739d5f8cbf472c1bdf3d74cf97b3838383838ae15979edc484fda7bfa495d5e89047ed3e372944dcab22c71b08eb0582c5609598d0b0a97cbe5a2590d59ad56abd5f5bf81420d3017cecb74717070bc09e3c06f7a37b86da66c52966579621d61b1582c992ec60585cbe572e978b9cd62b158ac9235613580ff316c32cc6318c3b8c9dac06f7a309b662a9b946559beb08eb0582c96cb84cd2a1336611336611376fd5b5898a1cbedb22ccb92c562b158accd4b6d7adcd6a265b66c52966559621d61b1582cd6f527bd503b46cb2ebd2eb92eb72ebbd43a964d8fdb485907964dcab22ccbebffe978abd56ad158c7621deb58d6adcec9ea5e73c9ea019567b28522cb70acd65a966d2265cb297efaccc335516b91b3ec0a8f86deec7aa5d72dd1c8d0f78acc374c008f419e191868bed016ab9548608cc97edee771de81dd8d13478a316d9acd2a7df9e9476cee0319530018e7e3b24dd37a60fb515da488ad199d9f839bf3c0f6973a15b21aaf32b5df41131d3b7770f246a3a3544c6944b6eb46c5f6ec42bfe4b6751766fb29a5949e28a594ceffb2df5cf565a21148beceb39ee7dd079a86406d1b69db4e762369996da92d7ec6375f4c2624b6bf8d3041017374d5a3dfb6514a29a594523a9b929452fa1ba8912a9d2e277f691813c8c31ca594cac0ebde38d2663f06b3ac5efeccda2d44cd54dda8cb9481cbc00c0a333b7e72bb9452bb7d7c439e7027addec2766b1f372399e9465574fa05e2979963d09e528d02f1cb74ce9ecccc94c7e42cd471fd75b88a2733f30bc8538625b7cb2ff670cddbb88ad2b018859f7ddc9a694f6659964d8d4e20d4a7d8761d6cd39b29a5d46b69d95c409ef03bc25f897bd14cb48fd879b259ccf7c1803c7cdab2cd51a7cb4fa9cc3cf90cd390c6bba489b3002b9e67d4e2982e0b17e606cef5bc0f24954c97a6849be37a2dd69648a03575770ba0bb7dd2ea93d60c260c35ae24ea737e6f343d6ab4eb655abdfedb47238376f9dd4fce7973e73f0070590452affd91a1705dfc01a45e9afebedc6693dd1f402a4d5fee0ab92eb614eb644cbf2cba14fb83de1b18c6efa4bfbbcf072f77bdeeeee1ddcdaed728af0d6d55703e86757577de83fd3ef04746b29ee402f11290a597c5222ff6604d2d46585d207ed9512cbad83d580e2c4291a36cbe8d8596b0e57a9f077e4eaa744e12c99bb9cf856b3b904fc8add90c33c5ef61b70b8de21bfe7e7f21d7eb500395fe08eab75491678a2f0ae68635bc1e9dde942bc9ebef3eef6e773b0fe7ed401ab81ca9f8f99c02845e17697a906e6ff82e3bca4dee2cce1bbe53b65d6ffb368e7fbacd931e720331a88c417cbe263e2116686144144678d058400c01d1841363101f4f899189bfcf16c5939149bf50c4c8cf28f8b30d7594137dee522cb70fef95267dd87cf762d2f7d0c51b4e977ac8d79f030cbb1a9837f02092304292d1c7e50c36fa8b1b7021c418c4c76669c148dfc7fe40c40b27c0d0466431c610a38fcd418ad17d54a377a33c9e3941f806486805d10f12c467be8f43918312237d1fc781d01082b060640ce2a3ed30529189bf8fb6c3384526fd0cf098e2d8600da1d1eb8f0b83b46b49942b462273e46e817d00c40a561d84112744f4480b88202f46aff6008b1543fc45d00f461a0e14a3cf0b912f5143090e46260309465ce842589cacc62e048095d1e38a5852e467ec429b2e46affbb8b05f50061531af0830e8c2e8fbb890b18831011bbb90c68cd1037710031abbd0868cd1237d5cd842fc200156fab870660757786164ec421642959189a218fd8c5d583262f45ab6a0b246cbe5e342766244cc68ec42fe4116a3c72f261c222b8afa45e4c74847161b25a38d20aa0e518c8090b5102c8882888e2cb4208c58d99c20c952c46d01450c225d105a64f19c14d1a20636687c01c410ac917b2136688cdd0b193bfa42116307e1a134889831fa684f08d9db2f1481c37df78591a2d147eba10623c7c51522a88c3e9b1231468e4bdf66aa797833d4d021800602a2046c98297f21a38b61e753cf81e528768a1e86654751510433e53ec4209c059120158c3e538d91898761fb858cee856dd1545251c52539c6a52bcaf50742d3835ed2e7d21733ed0a27ac70011a5434af728220bbb51a46564a0cb164005310191ab91732f64a043ebcb09de599ef79cc37dac9069a3d0d6f385ded7d0c28398c41b8f7692382a0c1c8a4be90d1eb422e14c91b4e977ee6917ee9e3849d484343d771a1484303c7bd9051c8c86376d96f210e7d353a6a9d268ac0513ec0b0e40d0cbb953efd7a473f0d0ddd7bef89415a064b80b11a3b5a040d4e0dc41442301ab99016418371f3347e820229446317d2eca00440a317473f8e640545436317d6287123a85c518e5d580213276388172c9c170f84c62ee431004d60abb1a3a181fbee3b31480980464e14327a5ae5c07639a14468ec429a30466feb01cc6089a2910b3f2246af9248219739860536347296d50fad91bf8423c6129e18b9ae0b798362b9caf532b28071047fb1c48a35e6d785383a2fcb55eecb6d564b0b32462e64c1c8e8d5af0b1f8503cb552ef95d68c3d31796ab5cae7249cb25197d5eda68a17c62c8d8a594239863218c2443deb731c98a2e8ac62ef4ca18b558a307e518443363f431293176cf8541322c420475ddfb645af49065ecb2686307e5c8af29ae148dfc640915c0c62ee28321108d5d8803c5e8691be9f5c512abb10b6b7a18bdcf064404b5c61c8cfcb663f016dee10bf2a03364881fbe5ad1d8e4b6e397f93de69bfe2e9c49b87668e2357221c883ce90217e3cd2d78541bc35066bf4216531726110f662f4612723f75d18a4bdf06115c4c75323568edcfbb00da068317222135a24850951601939d12508c370003406f1d921258bd5c8bd0f8e0b8c8c9c388568cda0086ce4c22f8dd17bf9ba300853810236facc1f46f617489396350c7b2452c8ddf8c68a184580462ef4bc183df69a797a974a1787ce72e95396094f6a2e0cc829efeeeeee6eeb4b4e331b4769a5b48a9ba3289dd3a66075c9cffd0536b446288d2a369f69fd03d04f3645eb28d30f3c00518d8cd02210993ef09b65e1297b136f51640a0a72e848bfe679a76f5b4ff55fca4515695c1d46fa9fe7f0482ffd93df6073e95b47b50d2c5fd2e6d0295a1377198b308a5cd2be76032145728075310410b44081194ed8b8a2040600c90bac58020d2fc0204269884de1b21336806e76998bd5104a745c927421848e131b5cb9eca48b58002e3be9a206b77f8ab8cab67f1dbb59f65cf7f804793631ec7361df4972bd1a42a9480299970b839c61691a46d3551ca57d5fbf99f68ed2faa78b384ad34a66d8fadaf39845da077115f7daf74a7b8efb06793891ed873e6c4b90f5efa73f4320a1d534ad6486dd9edcaea6bdc955d96b57d3be868ea1aff636b8aaaff637f8f880f5cb4ebaa82243d7ff000ee0317b2ca292b17dcc9c1aaecc307318d0032233b0083a72851142a8381aa2e585145c6031a4e728e628be3fc3cc098113493481a4850412548cce0317508c8932ae60838791d308c20aa6c052c4103cc4467f04cc9c03f4f062a275841ff0200813084b6ed5478d71fb601c57f1b6f94ca1bca2d9ae6ddc23315b5a6bd125edfe47fdecbb74951bb516acf236e69cb30bf9663e79303719461d0ef368854367b9f3957ccf85dd434840b95e3aca9bd4aa853da5897aa85f6db0ca003c0cc0aa28d7a17419f29c74d24a9947b955dacc83071f808d8a5c457a79db8aabc8d9ba2deee2f67ba9d9c017601e734839535e9665e925aabbbb9b38ca8d8cbae4613f2e5165d83893c8751c54e7f811773defab4fa2a0dac49749778c40114bef98a94a491c6755210405f5d69dd37a92eb481ce51c345b462ce9a597ae6a98bb9e4c71558b4bae371972551422d1838aac5ca773d239ab0c957ce39fe8a553e11b9813b9d1cc71346a7c0c46f9d0f4d824e240309a29b0249765e94f269da1372967ce6ccd56395bb3b5ba24971d648587b3fb3792b7a1a893b8101340935594db532ed3e91293f0dafeccee67a6b44352c8d3e66e28da759b823c99e6accc591df27b0c32c053d03b98db16e91d2cfa8fa7a077b4bfb3d89d7e0dfb69e85b05a2db7b8e90b8ca5fc5cf97c1f9f44dae02427df22780cbf0d886e4b6ece99c74cec9d5298f8dc3d43bfc49142e3f4a651dd544d99c59ad278b83daa600321e8e72aff3be7e1bd2f39f7867be0618e59f62950d3697ceb08a3effa8ff83bef6f4e5aa6e392a0c563512dbb6fde66d9bb76d36937dec907cd225ed0fb6b7cddae962c19096ad3b8b5892be8a664e8fdd9524acf16435fa53a399d3b1151097242760d880b55a11c166ce8412058c264533875fabd5e85f63d56868e6c4e08513e5cb68e67812aa60ad56ab550ea3cb6b882aabd13f83d5a05506445f75557f660e8fdeba247d159542aea0ac55599388ad210e41562b1ce6d1736df1680d957cdf8545d79ffb440dd840e5d2184f5f71943f9785d40a2d0a29d14cc19060952bc1280f729412b48aab281546810df01114e917fa385160c98ed1d7acd9cf99cdeed8d6852177b956abd58aa56e3f0b309c24300147b983f33be4fc89bb3c886fdc0496a42fee877760b8fed3072b0147b9771a9cf2e7b896969999580f96befce52a92893c28c8833c48023a5c200abdff1ce0e3870047b9026a9db3ba6aceefb2c9b355d65a7a8e8a5a8ef21910e028efc6e2aacaee432d2d2d2e3a6cb8a5e7a88af62d608fa9fdbc541375b61087d902f25091878b8e8e293381f5b90bf389244e9b401eed3dfaddfa22ca04f25411878b232bf70b7df460be2c642eb2ace60cd9bd653cf6eb9dbcee1b35ec2147f5936ed241ddbae148aebf57430a8568e65030281ad7494ac6755086f963ebb73879b0408ef2e799432cc945b7633367dbac3d9d624531faa2afaeb3b6664ecbfb76b24fbe0d33a745e4222fc2c137f43b89d895a398ab3d6b156ba55728117df14df8f1cc7122966b4bcf91951dac07f10ebd8cc5134c2ecf2196a4b5a5274b1147f1f520578109e8a3dbef410e05aa3e8b4abee7e1d53bd67da991abbedf367bfa2fecfb71b70470017d74ebd3d714067b7c515e33c7833ce5ef290f7ad597cb5b4001c2253de83a7728bee9e7609d2fa088d79699695c086dbbbb728af6cc2534f9a71496e91a5e5b66e7c1b6bd79a8555847c8b4ece23432c4839b28b18d4775985507ca9de0042e39e44033577365e39a593ea7a07f969edf2d4ee122c9ed02c9e5028a27976bb0bcc59095eb61400047310ce00806187454052840010a407bf4e8d143e8010f78c00382de6e274b010a5080022ed65097421e5bc0f2164353ae97812f031960b0e788d573c4ba19007b8e8eb4a8f2ff66f550bf9aa86137a892f0424e125a682100389e437d03385876b080e5e646870a55a250ff4c658d8d0e0ea8d0466a8536524801059b18ec74b276db489c13b971cf0ed8b061c2096c84e1e300fa81f970e14042093990404363b71bdb69894ba8ab7097ab845cc52d0f879391cc8c110c8cc9c58ff4906d3b9dfea75cefc7e76b58211eb5ed347417b0e708c85540495c453609c46f3f0d7b8e921cc1b6c8fdfe2d1dfa1247cd7f015d0dcbc3c59e232047f1e5eb957a8e58b7e7a8e539ec409ee32e4fcde7db7374e47a6d7b8e5a8ee2eb19bd59e63d47496ad8738404e4e93962b94ac8e54b02d95b7a8e8ab8eb1e1d71145f1efe8109d0b264c972b424ec3962398aaf2f7115e9ad3b5baee2bb4d9c99f37f3af9b4d34b0ab83ce66e1cbfd3525aab0b3a1ef30d6b59a5db36bd399b1afe2a25b95fb146b02e04cb62158b60c9cf6327d3b70d2c8b69d8346ccc92b84dcb4876cbb26de3b8aed3c1e3a198371e0a92b49213c192dbc69df7dc4a6d794c9de7eedf0792d85adb1de71e739bd6755957e9ec3a6fd2ecd20e583851c408b02b2bf67c08d6bf0509cbb02b04db5eb985c5cdbd7edd4e6ec566977cce5a4c8eaaa28da3bcb3dc1f0d13c29c734e1336227074603872020a29a052bdbafcbe06e5d88d81376bb2797254adb5d65a6badde3b6aad75f6cc4c339ba2aace2fa3737394cabfceda35066dddfae7d8b6eb3ebf0baf5bb64b3d9a77ff78f5b3fa55f4d6c1abb57a15d999374709a9ed355cfa1cf657d16b05529b78dee62aee27c2f637d7d0f20de7f0e9df39fc728bdc536c8d8cd66d983fdfc0b006f8183910fac77fe045d6647aa13dbd72ad956ba5b492b5f61479fbec889f20fa38f4c9ef76adb5d6169a5edff3e6d3f7108adee174fa0c7a873fa52268a1da428ef2596bad4fa5e0428c1f4ae9b76dcfac5d8ec32eb26def7335ee22f5297d06b56f0619d03ef40efeec69c89f85fdd33be86bb47de81d5404f569d8454252080edaadf5039f52a8644d9606410b11cd8800100000f315402030140e88c5c2d1308be240dc0314000d718c406258469247035194e3480c624829630c2180183032323220520400801b8bd2c15a53d89e60383529765d30971de8868638ff50b6e4dcabbe5f6b21f632394fc874e3ce2eea251c46826f05c025575940e01b7bb0d4f3856dc7b69e1cac6c460369b83fea55fdb193f85c5cec44dc439b19eceabb32cc31873450659f03f104bf344981678453e88260ad3e031406b50f1894840645571e4f34f44e9a41f65b25d2a0fa26bd4f658a76780d7d62e8d5ade133353429e4aa410d85b12a595563f8f81f3f54950bc244b62bc1360d533b781712a54766a5f7404e7eacdfa5745d9c4ca12f9add0c2b70a3a063f9240a0f540b846928078b77b738ee7e8bf2964966ef183a629511e15f66c25605e10a4986ac77ea63fe2003ef81b2f526227ab436b99b41cd229cae3061ba4458929555d0ce0627e0746048b6feab548712bc0a8e76e4b709ef8173b20443bf74d2c9fa1f63281c5a7f9cb617618e28c6f7e6b1486da0614d5f48b5652f6261cf27a1670d14b6999684519ed28349ad50c62c83cab5618e43016ec4035b8e33a91a25fe79ac7535f419fa4f4528c20cfdb88450484f5d9221177284d639971086291e9b77030c010509575700d2c066666d67167676b3ddf07002d5ad6565cfdf8a6445d8311206612a042e3f8e298625085c85a156015fb7be06a0d3b6329c9b4d95d1eb56e45eb76db8ca06b89edd0e56b5fe6671b4a7856d037623ea635a83430b60e421ab15aaf6ae6d050a401c1bc5c100efaa408b786016b3aafa9cc92a0ebc68db5607c9dc860652238c1cfec579ee6d39e34bdde46e4ff74ee4503da3b26937d5fced2ca5a49d5bf4343e9aebf83a8f3c4128a6f3cf2238efd65998fe1c62db08445dfa07cec33d4c805b32733766207d19f41053ead90369f9d7dd1693edbb7b5fd5d909b71193c8bf684b010cdae1a6c481b10934016e98231d2f012a04c8b354245f31d51f72aa35e24acd4bdc4de68d676f1134362b5533964508709979dbf49db5f9c12d2cd9b287beb8b3237ec94419b46ec753b45c648ab3b0e65090f85ac1d55313871a4a82775ebaddc393a6b3ebbc2276e723359411c6b130047a42d7e78dd25c778b56866bb6149163a1404f4c039ac0b4ab3f0b2077fe89a175b4bd6061e61a494b6426e9a48f352280073aa1ee8cc840c4043fac11c0221444cf3d84194d5b83947126c0ab194b7707d03722ee21e9c4857e3741d37e3bd707c1c0a58f107c2cb15d2ddc70912ea152c2891d10e820b5b5b5658057fe677cb2652ab60df67c4061580c8b7e385ca26859e9b1cdc9d373be839a7a9c51692f1973273187040f73578801f50643689084e84effa484828f9602de1b5a23c0ff1ca8d5d270123ae93c66c064f0bfe11692cd5a4cc300d1c82de32c5c5a722c908bed78356e56691219f7ab4383f93a99bea41d50855ff05b8f6f593cda15faa93965714673546e1cad364ff76373fc2dd0c6bd153db065c8631811c0ac4dc194ed8dcfe36e2686500284b1faee4c7a0688041dff1c5ffb2a1431f4727fbb4cd99c2393e0dd083dbd88caf43a130fbc27940a00fb44c595faeacc24c15df3c02de1dbb7177f10a640a1569f034a5788ca4eba1c20f6193f138fe9cb322288675fdf206704030c6e4f606b7e7bcc08b2ad11c8017e07f36ef7b0d35b35f51eee29d5e88afd8c60b28292c569b4212509258cf8dcf70d38454fec68ce852aef73a1ac5631b0ed21478fa98b22d267ab42c64f6293fff04860f4c8e3e5093e3e886325c37e183dece544176f8ada0b7a8c7b54ba4e290a9ebbe808be66c4be5f8fccbeb157c25a445cb40b453c995e110fa20cb8e91931005fd198f9b532ceba8a340bce584e1af3487c28fdfd3cf44e05d541083d62d3a11a5472ee5d6296d0fac09b98a969b55db2622f881081130fa0d31bc3a90eda4ae805f2863e6fd93f189560978d37eb9b6a525034ab0f4afead4bf682be8c7af314be5b0df0c7dc5b696ce922900d782e7710f8872d6e697a973581e701f5929644c279421abc903c97158d876911e36b4e087998303c56a1969661b0edac595f88cc87ff9f15f399776db15e0bfcb242f65bf1081083f98730f0e99b60ca09aba2ea5d493200f3a55d46428b2302f2ed1f33730c7979455b6873be40a1d463b3920c477e43a2f8b64b71c5c4749f0d5b69d9de25b83afcfaf01a7433f737a19f606fff42f38397a4d0ebdb47fc0d2f4d1a396be6ce5100cbc9be60bd0a15cae2bac37f391a3a4f4cd8314ce6e5c24798bb4c8b70870894b53fb0d0f839ea7a1408b8237259b480a29f78fe7a18c9cbd0931f6edd43cc9030d365bbac79a4d292ca285b471c9ad32543695073da09349f781b42e36d4320da2b48377214ebae0169c680fb0917f8270a990398b63ed79749f8d8beb80315a8c3a012bf7bf7564a18f481ab71f3ba71dad56f2802d114f8ac07227de08c206c88c3a70e66fb0111f788221d985387d8f7fb6fcd916f190abcc973407fec03f7774a093543a7aae7560acae1bfcdf634648c45675c55311fac738eaf8104708cbd805caf5f218275c599b564fc00c0377ad97635b92c89d7e282477694fa44fae993b4eab9c67f34cc2b6cccccdc4cc4c558badc1343933a2ecb7a79ea65c4a24fcb069c112fe83b50e0c77f59e9e07cda9f3fb22d5f013aab2f83c4335b47c5b8de010537c0beb134b54506eb1b01f00c6e6fcb397e8a7f6c667799ef577512408ece8c171bf75768006c662304d160dd184b2573365172f1f9cf332edf5938190c0e6ac2e06c85b81f7688b457ce4db895164dff88e44547ca0927c0ce1f8cd166628334b60c60b309c62ddf826ff5af6329318d47a80011694ac27ddd0c83adfb896255ab957e4194eb750f45deebda9762812d3826e41828dc1108c810b209f7cf42c84ce19d0a8f4957888317825b7db318ae7a0503e0106b44dd35eb35d931b86cdf2474adb5e9dbcd89c1d99398caf79fb5f138405290ebdc33b288dc9d493f67e2037696a6aa941c24e2048c25ada5f4e6c319ba7d34a625f8e1aed128f5e0ce4abf111a02963b9f7313d2fa540555fbb07f23c7bf16c18f3dddacdf6b434a4e08896aff2f01ae59792fdffeeacad630ff415f30c322e9a49d6a4a61fec3eafcbf984c08775960e318b383d927ae444a3eb944c0ca915f9dc0d85e1ad084219665dd17ce9b77c69a8e68a95b2c5a8f69b88b284787d0e8008b1d2e43f9d85e2f3528a6023aea387bbad717758e4d6fc2731833007a44e501be67e8a6a994948832dee12a4f0c14fdb51ce4cf811d3314476aefc57652169b6be2b503fc22fa7a608d857960c6420c618d2700dc43a9c60f64d3901baac139f0b525e46c1636c144aab16789fadc642a7f95a764ec2eaf3450a5d8941d1071ecdf4565c981b3c8c34df8d06d1f489678a2ff9f56a115e0761aac60d118d577f292d49c9d124ee11269a56883e38bf767eca5ced7d774798bed9ce7b53c716e4e419a39db79fd603770e477e41aca2acf40b3654e9834c41424850e1b7b22887402c69b93a7bbe63333cba02f16db07eec08c4a2357e98c610865589f80713b3993aae87e5c590f2e655e97d6db5b7698b942f01d00c32c44f20790673d424c1831217f48643f94eb63679a31201da172117bb3d844b8da17d65d2703867d6c1bbbc8a3a621818ec20a5b1bff5af3c0a626832a6df00f41ff784512d52d3d88a02a228327d3c98418e913526f6de77ada6eef6996ef3551cd79b47fc7595c7f488e4249d77c286afb98de65089fd3df9c7bdf22c20dc49ddf16735f6ca7490ceec342995be142ba961bf6de98cfe49d04b635ac053fba82a86f623a5d10a362ea64fac8a1cea973f6b4c884b0fc5d4e9572d819638dba58e1b1ecdacc7e09c602f06bf2a6db6bb6a206253f04cf57950495ceb3d6508d8358004225fc4eac04377c34a9f1e3d4e22e34d2e362ac0926cdbfc00bfe4263660c7023bae04b8c439f3c9e84502dd6337c2e99cb9210f11a0b2c9121ab5b7e9bf808b550b5dd4edc5326915bfe88567a7458fa4a1e33b855467fdf4e2cb8704cd1d2846e442248b9e8d72f2235bc86262532b9468fea39cff3cbb9b42380a7c3424790ca95f5a2e7e8c487f3b500f2af5823b9c149130eaa44b7e00f0876a21cfa5da2341e8aec8e21f7672fc017ec651be18cbdf41e5b1b177d896f5bae786abfc40bdc31a0f57db08aa701d6223e9f4839e115fd5986bc5e1d887417a297de387e65cb462dcdb9986a298ff20fa4ee09a3a11f80552ba2f643ba91e0b227e3f2fb49733485146dfcc98f1845d2b2b69e86b500418312b6f642400ac94be5dc74b93d68af2fe29e95922df3190713217a17e7a32742de74c6f5256b40385186034244f35ace6543c422663cf3f4b36830b7abb34e0cdbe21ba459192ca40405b742f796ea91f936b447093d19b707e989f4f5ad7b5cc96fdc02046d9c1c26911176e06aaf3fe9751c14240042128aa04451ac1aacf5e142d931b31c89f25a1296c0882e361454aabf988f8491f1bf18e748f01153332ca096b9dbc7e190ad2797ab1ae9c0ed492886f351d9ea92cad1a6a75fc902c55dc90d7040c45fc01f1e3257a85898715f61d029f64a9918584ce08b281cae95d98e5d6f29c62df9e03f56f78f0270c7bbbb34853a90300c4c6c11c38b9f8dd8c4ace00a125d7a93e0e724513e9e2be5a51bd81237d7f89c671d15051f718b44bb0606d9b027e60dbbd41b4b2ef5235e05429bc89fdbbd30350600e73a7b5e900b618020d1843af56a2f06428d9023882dc2d7c1aefe411ed34152291b6c4248c69fcbfe03dbcd7e65080c77a41bf71fa17f461df2a2f56075b35f6981c055e906e72ba34252ac7583b320f05dfa14fd24ade159c3596071c9d457fad385d6a3c54d2e6504868bf29b1eae58d4cf2789010442c07b33dec41192ab43d6cb9cd718f46c5d6072183ff998ecd1fec7e7ea8296c3461f9fd2028f5be9cd1cab6f5480917e7141c833a8bdf230258a08b84d725425a160e9bb2555968e24b140bde9677adbd1485cad12a38654167ccad1c9fe00162d0dd9294d70f2d99d522332996fbb530610a74b3a479b7e5de50b14572537f829d72fb295f81cd8220d3dda2a653fdcb0ca14a846fdacc0623ca6a4acad50e85899672a7eacc376c9715a9b30133bfac3f89915fbbf4caaa9de90c84dc97712b8c0d5dced65a936a4f3474e596084a7f740805ad49c34ee15a855633d97f8b5aa49e96cf3e49c99b7372e7d24eac0da9e7808ab6f1e07105d45a949de7609b11ae55448b4e261d5d2b083b7a5ee0029f89cad2fa5e24f3016883eb3e68283a367dea1858ca9abf530567bec1734dd6ae2673ee252d985f9dd443e10a91515071d644006e5babd640be00e643cb385bde63567bf2a8428f85383cfdad9817f21fe9a13d08b3e640937e1403f3359b0385085b28daba619467c658306471538a80b5669c832c9b8256b72be3d857880b343043d0d2db11a477e9e0ceabb4e5faeb2cc3739d78c25f7da1dbc23311464b94568775c480329a705d94decc897ade4fb935ebda38c6f36361ee8554e6be729691822ccc622ff813c2613602ed40ec9dc10386b4e5d61992871595d7be22d5dce87b6ed20b1c4c0aa8286e72b7e0491ed13d5e17894a541ae7a9d24de2986fb7d6b77886fcb0c0e60e51075dfcb9510d4aa19073b5b461e787968a34f5acf0f3ae4cceb9c15447762f0ed22f6c7b97b22f2130edd147c3e350fbf888f894b071710752debd73566b72251562300c0556a6f19c4655db333cadf51503b13a6cbfd77d5c4ca1561e40d2cb39c52ba96156e4bd995867e74196604a2576a4f1c547771c0ad6172bf6618b283c3cc3303c231b98b3c0e8b81e5c96007296e467a467009a3316129cf5014ee148ca25bdccbeb6e136469a32cfa294d8ddb8351125c2a0726fa1b37ecaad1ecd791424f81f6042ab1a404947c51fd86b27a4b84db52581278235f11e39aeaecbb6f1b9bdb4a84e8d8582aa6a95b9d2674250e5128da56aa168b740d40eb52ec178063584f07d4b4c20edd16681951bb14361ac5407889b90d8a417d1aa61d6f22067407e5f77f1d03b268f0bc0355e7905d701710c612296aef5ccb93963791e3571374d2860516b17375297c94f3541ab74b290b7aba73a2a08d04aede13b8719b3df4588521cd478ea46df321068a12dbd2c2edf31a2b1854cf9462029b1f44ce879deb5098a598756de6e3f6ed870e23a4d3b1e70f845330ac1f8796e8156847315e2e3b631461b0d6195bb21a85890c7f8020e0e3f883accc8fb8b5857bd434ea941a8bb17ed6ef130f565a950e4f0f796a900236b51d5da37f7dcc0fb1a515f74f697553c08ab11c1d150d583b143cf725478f53a8e8d5ee2e1542a718b1221fa7e4b8044ada52e3618f4c1055c3782581138499681853f4b2ef951255960cfe4bcf18c5c03cd96d07b11bd4c7c064604687d65efde82e3ac457d45091c30dea2dc0177d2411dc80df10af4666ea372012f9f64142ddb036c0377510f28cea19c9d63c7fcf4074dccb89f000258abeebc1542a405e3adb0011d66c12a089118c12b101c8c8a3dd9a215b6930b975b3b478a258862f8e90a7164d922f830167ddce7b719cb8c7d603c5cbdbc4a5188adc6e195ecaf0e96cda633a2d55b68a7633becdc1f1179dc9c8bcf04bc3e4f30e802735663df40b6d130ca12ac2369e923c378ecb521c4d249fba0326145b41853183a8ad96a44e3b559dd6f208a0dadbf4ea754de93a693fda8e5bbee0ce9ae803fa3a9ea8daba4d30622558c55d8a9fcfabb6658d9b8e602df04f4f14fdaf002deb80773793217885343a82add9027002cd54bae71532cd26680a5f58e1b6f1b175d8c63b20ca61498dad6d0de47b75a35759437d47d9844af5f6f2f0ebf2ba004efaa5c5c6a96beda1a4c8d12f2686be0263f57344320484a094bbb3f150e5040d72086fb8be6fc671d6fd000363c0f81bc16598a21df29fa427a35419bb74addbc8fce23e9a50993eca8b91c62da26384af255c329dc952f4ee19600a2fbfb26117e6905179d0f2d03c1369bc767cc142f1c37a135d2f7d81f9f7c7b383ef58057150872757af9f7ff88b163e25325a165830b2b4cb24ac6f480cd52d926a74b97bfe5a967fd0e068ddd2b3af2b005a0f37b1f4d0d68b027e3aafce77f21e72300da037a9a0ec93871409c9fcddc187419a179e6b4848b5c877380c2d1e1604ed0be7992fa3d970d7cae68e50e8005cef855853ba99a00ff6d82f54bd6472181db2c67f93bf24aae94a0ac6f19b858385a19107e9017f6fb1627c10328137e35a5564cca72c2fecb8ec712ac1da2cfe608335c88bffd77d04cb110afb093d9bc9c9a7998325ac7871a79455b6cec1efa84783beadab249f24c2a6832a593e971f83f039c9c2e7d2e8eb7a735313c84bba6998c018801af55beb0646e10f62e7590a0d96927943c2a2523ba4b1ce3b98e3bf8b7d6853112dce5445460f704d215a724f82628a0d21fda3c01b6fed4091d1ddc6146ed2ed35bbb43ea29822c79cd68e86f7d4c59d9700a58f406e91724cf3e690412bc64cf50b1336823fa23cd03e9e1c83a3e6335ba1b1cd7cab1bbed525e34c090dff41bdab811b33525ef97ab56840ca05380775a67a7f7714958c2958e17df4333990328eecb20a90104b40c849bf54fa16dab01b4a67ec660b55ec286a8a620fc10dfe70a4769baa93ffc4ec7e478e2d4febee73a5331053bb61051b3495539088f4a85fab05730e768ac84afb29f31e7e41538304f5d2087ab7726233b2855a4a4bc6fcafaeddb7ec50ea32485b736bc841c2972a3cad6dd33e9be1ce28f5476bb23877f1be96d70f6a1e1aadaa7ab0be420a95defdea346e7750de39c5f3018f2159979a470144678100d3e524bc63f6a8698eddd347360e2de3a00ffbb6452a63b72063808e0360b58566bc614dedbe607cc6ed944c718c1f61a7b92bd64dd64220732587b16832a0c5277509080ae556e403a547c4a2d2f139ebfe86d855e565969d7aa1713d018030bd32e612236b1593e0ee578a7c59a6d357b4cdcab24c4f23dace751534d4ba1262881bc2ccddb78e6f4488b3c4f5cbc3eff07a1f1daabcd88d459fe2cdba9635a3c66e60a07aa7854f8fcc16046228385b0c71e3c686ca4ce0426d36087499b07b9648a704f367eea21fbf42b19028ade4bb14e6797e78c21ecd196599fc265cabae260e3b3d7f9ad5c1c07d492f314315e79a46b1be51b41a1fa6b1458986b52e2de290a16d30fb8e207319272ca1c03e3853c72ed388362c5945e4c8bc80d0ff52a6863b06ac5a516eb64818a36ffc7f8865882c741f6813fe9c0a06b9912852bb68382723c94a16eec2e034779741e3d5c311b999384d95a97f0aa8c669e0ae6e1ad984736129df45852be34370e2ffb2051108acaae633e3b30364fe644f48366e2b1e78cdb953e3424b7f375f98ed8ef4896429182f08cd75cf38e1134fa6cf896300e5e3700c1b6cd5c6d2868a92fd51c04826e105f8f8c547a00613c16fe8a89aa3b44653624c9bd83a526c90a1df06dc4934277955b2c0110ced503b186e7ed20a6272f0993eef5144a64ce2285d341cf378c2a76a00b17f19892765a04729aab1a703e2416560652b665cd30cc6f588405e68210f191ce51279e11d3ae87c33ccc669b2acb09e6ac9346286759152fbad33f7c333b3a1365f9d5a135e8c5fa63e776bf59e27eb661f5fe1f70ffcb855c4750cfd97eb919cd4486fe054381a0cf7ea1eb31bee8e110d27f235953892628b1f950bc3eac0b405c1749de88e602b8f14e8f66b767da483ac33714f289e12a2bbb1ceb4b87d6cba269f63912de941837b4bcf9b1f275768612fcadd4b20024b0a19be106f2b4fa8ee7dbd56ccea5d31ed2345e39312252700f7712a74c958a0e1d46974a43a44ad3f5daa8bd56bf8cc670a75dc8890c89c51116ae0bf23c7b3827b132375c43ff0c746b2324ee4a6351498a80489cf431b88696f4c0c48814c67608401d2692956b6f3a037e4520cd4d9731a6feee167c0f5a361a55063808d351045306b557523e561c0606b1888c72a5037aa9ca63e3ff2aa837957f966f67f1c3ca77e9957825a3b01fa34b34285f55035b8caa1023cb7f03f22934e1bfc18901da9c174cf1a5c169f3bf1aca053c69a648c45eaba094e7d67e8d48e885e4c903e67a18b75d2e3365784a3874a4b537169de08a2cde340a624da22f308d4f0ad27645408b511ce9780fe279d6bce043f29036b361237b3fd8e9565376cb707ab31973bdeaa614ebf9444e4688a1dafcf64acb3081eccc732c985dbaef3b45801ba5f55ade3cce2acd501f988322c30cc6d8dc9108147cf3f69c55cd91ef092b9f511974166243d3b2dd696052547ab6c916246cbd28cecca51f2abf835a29b0a73be3997d0a4eb0425b4342f6e5838945bb9d9cae1abab354aac255d1ac884b936764ba6d9d3ddbdff53709da1bfd7442714857356b7637accbd61871bccf4cf0601f9da23dceba3c4f4008820a170fb723b70ef57c7c48c6b4dba9de0b2957182fb78586f96271af0ac3536f115bbe814df5857d29e01781f5abbff51ee3d00632640d5e2b3c8bb65ae4725ded76c00b3e4c10233a7d6caba2da20643c553b22c1e04a197a36a21ddb8ac7d51ed11a6cdd41387be1b89f0f22570aa06c2d90c2a329656300e1e0c450a5fab2fc86a1bfab658ef212736c61cd05e71fc955d1014cda4c6db12992171c2e7c27165d8c05902e830b804a070504afd19cc252a35557d121d238235f44c3e97bfac014c2bb25b6aec71aa64ce416d8eba8a72e87837eaf48487c477b09202f314229fdeadc6fb5bed75d8a964c6038f478a8a1c8cba851bdbefdf0f61cee09662a76d05a6c878453026903fe1cfd0fb85e059f24a0c48d0d856c76c64222a24df918b17b5b468074ac1b948acd9e2275a1827da1d4be1bb3d0f9351803e16641da53fa38cf484bd8e40e92597ac43128608db88cb4e6f78fe2c934dac2b0aea6a832da1d5808b1bb6b365c80be6a504a17943da167121e41a0c584c920da457ce05bb40dc58689533d7eeab9cd79c6210734865f4de4d813905d1b9de3c4d1c35c1c38470bc4095ee5f0a881a9f15a55cbbb1de78730877cc549e2b1c29520a899b144c0014e1b3eb5f6615d23182e0b8cd176c4471665543031668627328ec56fa4bfc45197b134703a830cad9ca2082f80868d9f5fe5e64872c94c899a32e763e5bf09da789bc46f6108e4bc4aa64ee744834302b5a4790a1d2582fabc4491d0ffe10d84969aa87428a3c6d2254941aecc290f6153453fc71f532399adc90dfc87030b9816b9a95f0994d036c5e184864932df8364e5e3fe192250f6285e60e4c9bc0c58ba30c1b82943b63a9ce192bc8ce58e11427f435e1047d907ca0769e675ce052c7e02e80cdf08144b5cde0a6b0572f3509f8c2751a6b488ba3339c0c904774a507519972bc2ec63f99a94bd17ac7ac04bd6a305c37cd08f72bce1f25e04a95ca3849c9c5f5ab5813e50c8deb2e08f4d3534445341ea198b58ab8a9f59570ce7f69b7aa3441a18b5ac0271d629193018b9ae9c806154a23480ae622c693ab0814644785fdfbd3752a5b0da9201ba41048c798b5a4278fd3088f03a57715357ba91d163f4a74268bf8ec71adea06502a66595c2451826da0e2b0cd9c9b112cdf055acfe4f0c245f44906fc385602f25eae74dcf256b6a930c921a114c2d173affe3e9208b869515017859d69d249203e7b5b816948426e108438c3d8eb73b97ce82c0104a218c4ca9c40ad4c393980e0413d78212d04620c27628d1e0fe9ad5b44e25c8c106dfe0ba499489c1cbf71d01402cfa18544021568e52bf2a35352a1ce2c818131d01b02e0f079ea1b359ebc8856ecc38569df6160a2c4e628f57780f7894d94bef5c108bb4580f9582a08dab00048cae09df632d3f5a39e74b96ec96ce0864050d9bdca9012b902dd2761a07bbb0b78b82be03631d86d591507e3768b000f1328fcfebe4787011dd0f5eee72393a6681e403d285aa5f13cbba0a8139bb98d798838c955fed8cf0b95181130496fcb0b7317b90f92b30025fc8b04296dfe91a631855e9eb691c04c2556341b783a246844d4084b83edcc8148262e4a7a78cbe242778355abd78c7156ab3775773c8836e20f4d18354fb2596829bdecb498d198635574d499b298bb08a5c8de845e63c7542a4e7380d5c754d458065661b125a91044df653c749546c039bc75e24f06a6515d5ed90d507064a9a7a048317b044d502615eecc08db55e69dfd5fd57b1c9a26f65c5a805326a386f1b794114952ccf71d08b08070f5ac2297534030ee5a258bc4b6dda9514706a1e21b71c16b54893269faf78618a3d2ee2259348da77f6e8df2911fdb6affa023bda9d508c176d3833e858f508d1fdc40c143f6b41f7eba8376ac1bb0cd591b28b98ed33f0eeca067c9bc6bb48cdc00bf543fc6a2bc4dab83be31c8cc5b242705c48be197ef78a020b2b3bd15b13570e333cddcc05fb1a490d246e390320f574f619c8ec2b4374400f567e3c4080d3f3319701819b155d2b75b0a4ddae82b4295dde9aa4058dad84b0bcf15e95da257a98d231051a86d1e54ef8b00f89add00a5642e6ba909e6007c4513acd4804a2242f7cc3cf0cf0441e706942dfe6d6fea3f95589c5fdc9e66e06ed3be75b9cfbdb555fd9aa7172654554ee16f7eb260d1c385331c2abd8885bfd3f7b4344fd1977c3922e4a7d1cf4bae0cbbcfdd42c85272baee91d52c108631a8571705d98cb199e18feea77dcbf9b07c0c83463c829eb6fe69a864ca16bbff566a760d57e3f207911306a60bf228e752397158444e10139aa5cc399658033e386898facb1abc9b69347c04fa99f09b2a789fa4df9435424ea43125bb9559d4a6bf675d8f28f080bda66d2c7f39767a29dcff823848de191e8dc39178ae3dd2279c344ba3baa808f584aa9962917f227e73a28aef080ff885100ededa27a40335db860fe6486ded453a45b662d9bffbeb8f6e1b7889ad3e94dc6a851b417b7c751f1d3c43db096a6a417e060171d98282ee5563450445e287bb75d7be28073e121f7930176a11e8a447062fd6b8f01fe09fe9b983012760d371bcb63024ec35247894ac1bf150d8222246ef4554f3c773b76d8599fc5ba19fb8cdf1b8a3514749fb70035963360ba0e44a9277fd626ac1c79651c03d5f53d7b038885d90fc463212dc2c66b956304f0ebd7fd5680dd38cf2b99c9c4b741b0b984c0095dd7a75827478a456940dc8c2461c9924ffc1ee3ffcc0a373ed8a002fdf4cc71b076a942d9778ccb03e1d427ba53d97b9d5d947975e982e6a2cd36f0666a3fe0a0498c3747cd5695d1be069789eb197b4b8696a9e305d6963f5e8a8da003f036fe950b31aff9f813786dd64669048f2c5c2f9604055f600cb315c679a33163831935dbf5e18b08e75f5521f629460468cd75bee7e4e85e5f3fabdccd22a58c1cd06aa45732d4e90cc64821fa237bb7e606bcd2fb3455f70cdf111dd1441a7f68cc340cbd1a385929e7fd99314f58c4a5e087fd278fd36b83dfa4f8046f868c2bba0ba971be25f7df9679db2bc8f1afa9255c7713203ce106c9cb7a437d32d57bc79ce5c47519ca83402d4ca90a982418c297e98f6d8bf415c7c18477438b8518e6a385e920db4c941cc922e8af816fd30a2bc48d9d2dfec03c4704332a8bbdb1c930c9a303f0f2a240c00a8b320e4fbb43eed4cda0383c6a9b3ecf92a9a6a582085a67044893f1d2806e623ebb73e4cef531e2d49c50f2d9929e50af479a1dffcae975f0c4b86552fadc87d38595df96b64357189d1c4c071d6de90b0725c4d87226c5a8303839eea4e38c6ee84f31b675255a31ce90d1bf17f42a13a912c3d750ff7ddec3f861c805eb58c35e61c8c53f91b0210f9315e5291cdacee35bb48e120190278b4f2b04b160cc8bcf82efb2096295e1adc1529e649e868db0d32e7eee69be6031d365161fcd3889bf1df214663c718312217491a74edd480d46c6cb57d6244759b141b68db15585c3ec2cb383be1ecad54c26404833d43049cc0f55b9852bf0848232c2f6afc0623798e6755e7a944c23c4fc6331fead1a2b0af0e075214e8f7459e7e63318e891a67a4898d57731bf536634a7dead8bce5e62794f5bb6144ade1f6a6757a7b128b1282f49c7de74a6611b3161a372f74d3d01acf677adc97c8aa9bacfe8ee1f3b8c637386dbc0c1056e365c025cb9a533f846bb93dafba3b4c15d11965a14b54b43ef271d1052c31e31aae0ec8864106963d87aa8671d104f4eb99e54d8a3469ea2017e683cee52da66bd811ad3341b7e726b47962ccca6274ae23377e4fd3485a469d0da244b57273fed600dab5acc99688750f2bb90e990fbe878847773839a8232ec02f3a41ced9490ceb0d1c8f7a2f796ec14a58a747ea8cf731a09f1785798393421e549b37aa8f52d41b4e56b3ee61f9d1cb8f6068d8333289e8cc3b42f1d7979dc640249137b6a45f62f2a1188fcbdfaa5a2199cf4503b917898f6e2b48e13f42ad29e5ed528f35dba73c52b5ad9ac72404dfc0a87990bf702aa7acd855fb1380fe9cd13cf712553edb195b6d4eefe398018b64a9f115242a405805d377994852f743bd24e1483d3c0bed6edf01822ffac69770c348cf2dac48ba94ebcccb7df37680a7e8f1a5b4b89e053b8401ae2a8d64ca77e88cc986690f6c0556c749fddcf116741decd6cb932cf1e19ce3856354ac0b7da7dfcfd91680b05cb4a7aa206c7390b28937422f0d92060b3490ac7461605361947a5d92bac411ea774f90e57dc95c9f8ad4ce78a3f63fb0bdf7f5dde67b454141bd43e849aaf26f2716a8d3ef30ed4f684a890bb21923a22a0681aade1e99c1c6bab88db08186e865f60da9622e6eac28a612a9a6d2ec8f4b5a1dd1c5a129bdb866173ca882ae18a46cd387c81ad88cbcfc66fa916efc026912f95cf1204e70148b7461b50fbef7e73eca8bd5f14f5fa2d8efc9e344600c574188c60d23817c169e1de5bfeb13e262bb443ea5c564240ca68e19d72e27c2f5470393886a4a73083d8d7cc3fed9456c8c2b1ddc2a2c713b4d0fdf625ab65b3f92406832912d2b1a8c86820e1df3dcfaa38933b82a326f0a66ec94646bbd218c292e7815510ee27ff6ba34f7f81772b238c9e4382a664223a0caace3138aebf2099c442e90013b002b41e9a66a101c575a5d661095ed6442c8a49b7845e99e5cc617208d864425628df9c132f48ddde24359a0438bebb3960bd274f81e66115c4486669640471340ad8de592632ac2bdaec83fc4d353845f89749ad1ca811d41511ce7e0112e3215d55c6ee969c9fd4d430a74f5e5502aebe16613d09dceba1ac2ed13f3ed396c3226e84ac7dba8acb04e9f34a2d68024d5c11a19ac53d3101bfa7d5447d0877ffa7fc886b2c76aaba10b70f08391fdb1974ca7a6d2d9852fcf27c7e464b0e1ed4d06755dd98259db46c96de65195420013905304d6bef691051fc30e67fe5f8f03f85cdb9946093768ef33705f1a84925fdba41d79e20b59bca0f72677e6ba337ad4f5e4c426ec6b502a2e29362a3a75f56c822b81341dad3b4bb0a3d13c16b790bf1fbc3db8d2fe8158e44b9dc230cb8d7b685e4f8fa5acc7ec7fa98b61c6006eccd01f3ba857aad35977f026d19e7d2b76cc2fd9a0bc33e05a7694e62451682d423cb3fd50122f95101c3a93e46cd08a519d51f9e84cf7f6f406890d21471119269af90db7201a6ee7ecde1509e2d4dfaae856aac02bca4dc4345b24bc2b8743898fa26e4c15047e94aeca6a090f21f84d28810112ab6ac8b230cc6a2c6687ef86a34e23ece4ffb0f6e02678a866fb7028fc811a018a59282fda13a43bb185612e863f145496b646707dc8dcd07ed1201d9f766a906417fa42db15238cd7ecab2c25ac3cb2c31c942e8e8907ea59ee38316427387bc09ee7143dc2d56f7057e06e2a7c9734e66e41b8205151b888ef32070e30e291361e8791efcb8039e577d4dda9748c769718c4d98cbcd40616b66128f9368d686dbdd8e81c4b8ecb6568cc2c20372ba739d6bc21045d7ce1db18d7c033d8b18e90e28ec55d0070276a039920dc8ee6d3acc3ba0091b5245706722838d705a72725850b64059047aa6d80f45c025e638ff66fbeb9f1f9328a0343c1a0c34200b070b5c7c93dd6d06750d5f258437b94703345c344e940667645e0cb479fe21bbdf9826f2be63afe6c927408d7218438e0d216a058a28ab4e91c199fe35751c7d5ea02173043080fe31da4d5c0283d89cfe86c49b30cc81aa82ee1050345066de1ffc6d73292432dcf21845df1b0228e15b0661e9a24b7f926b2c7b4d4c34b1cdba2ff6f1b2aba91a08dd8035bc0fd3ffbf457101ccf94af4c14b1fcf5504458fa0c79be9f8311864ab2605dd9932861becf2d8b70423ba18b574ab486949c10b77bc01a00ea4fc0e5b0abf515342763ffb43c766fc93462a434d6501f693a8ccef3a1777d3a64c96ac60f1e0cb4227148117273e3fc8130ef9ee0d40820366ca022d97fad4a93631252ddd45d43a6b9478c1def660772df8bacb4bc040dc02639d375e94eba545f89012bf85130afa1957e5dccfc1d4554bfe4b0ebc306a47d0d7b0d1bea76026d894eaabf291235cb8eca0735f10ff0870565fb84f6078274623f15e55d83057083e166e67221101505c0ccdf2a684a2093e0728f3dfe5049acce466eef1ee543c815b32a2ee58f734088f0f7c3608a25cc512b99d914611af4c40d56654e12c1c4eefd55f942967fd8dccf522b15a7da63bd8dff9df132d0172c03d0d94abda1e5b3a9b895759626e2fc873e768daabb11dde425d51fcfb6714153a2bfc2a143234ea54dff2bc5c1912c436eb018aeb146f0a040eef25cb7e630a6f210f75e5c0c77139771fb97bdda86d728244557fa381b4d3b0a11bdd8e1a1990273c19a1bc04d2d310c1087d969832548facde7f8cef3a88fd998c4e6ebc1a983752bea799b459370ca7928f35b0ce38b5ff3134e8fc36681b2e4619932d43078cb75d07e123d1bc1e52da003992393e5231a4b9749b97c1d23e12d3c11abcb8df9788a9e56d3413ade5b0ef7a3466863f8db01a678d5c34082ce39bce0450374a1edcd3877550e309253074a33daa94e85f7cb01a040bc27c37fff2434bb025c9930250287ab929033be2837085ca7b5d7a508fe362a1f93687b21b661db06283e9859980bd9a9b1b599f7f29b75b33f954475dad64e21e548538725ab05361c5c8407826a0a0f37a8ca0e03e11634967d9e4c5b1815047aafbba65958882b21f834b05d616543c655e9fb57d1de4811b2c0a4d0e08360cda7fe4f15200f6a6e9d8cad7747d67c0a6a82a62f5cdde535c00544c4d14fb1b87afd1c3b8c7f37700285f63d0f358bfa2edd9dbc64c327a6ded5df0b5fc30c14069ae658d5a224063fb56280167615e1345fd67c0f423e029dbbc7d2fa96bc2ddd31172d43d719538ade45c8968f3893fbda05feb5d8f506b3d1d15b54bce3407c1b818a5119ec033ffdd3d0a6e9cb15778fd4ab3b22e151ff358a6b6dcc3b3901e09da013c3f0b0428c99bccf812b2223937febbf6f596651ffabfd38ac9d1c75799e1d19fe42a5524a20b76b417754f5c9257776ea21b96f4f23cb9c4c1eb84f21a47f2c784b36bd7b92dd0322ba01eafc98be11c7e53ada6a059c1c09a545014bb7a1ebe61420d7d307c8b38923aea82d85faa7e11eee8a9eece07876d961b4f4c307fb65438e2f7a7d45eb8b3f5b6cb899f95a9453a883e60203bb8c41b265389e0b97e1c4bb50dfe0c87aafbe4e572306e90b065c608f9858befe33716085e10d4749a8ea25750058e132ec54508f0118374b1c72d0eb95010070b313995e86a38a177199587f6c089ae225d1d280894751f69863323488830bbe6b52b8c40aaafd4cab456028540785ab27d77d52d56707591ea98c782e4f0951430da85875a1a86cc1f7c84ff389da2b4d39ef7b51316cd8fe7850370cb3cef7cd15e8c58b44cf6c7ee311dd701add84866bcb6a51099c9eccacdc405e0fe300ad4e3f8a127ae68516f4417ba18d0d5a058a0082f9d97acc82d2fdc8b8cb57eda1d86cc8cd74e8877642cb19f4c2882c0c395db676103c1d723fa7ab516e7634003cb1f1b1f24673e3c134cea6d31734e3f7b859ed04145f0a1b8619e8c90bfc1eabb7b12435521eff1cc8d9b7ccc6d4020261d3bb95e8b9fde5f5d0f835420b886b7aff3f480b2ed04d3aebdbd64e1e3d8dc1035fdfd1abb2fd3db149f62f81c9682fa5750dcaed421d73d23d685ada21e42dbdba3201632718ad13453e521df36f8a492455ca8f53129555854f2fa72c682738d028cc2610e99c250aeaea103fb4ac9383f41b49aa0eeabed8d1544f202bd32526c4e987139e777c9f068afc4adeda583f38ac1ccd046b719fb503fe66476b28adacd2b9a6748049657acdce97bf85bcef8585c3fedab2eedd3e91e63e1ddaf088c190c4e49832b169218c6f4b902640c663fff3a6803dde4f457a8775b96ab5bbcf489aba24ef0bc560fc0cbece6dada4fb688196daaaaa50b9e2a245728e0bc1f69ad383ea99b872a0d66f5b692e5d4e0b13caba57a1f4b09b8a4f6512a6f9c7798ff378ea8aa1e18fb470ee895875180c1e292949705f3707b718ffa0d2a2ba619116b99cc6b8d8eeed70eb662924457953f25e8758228a6caf21dc75721e35332b89f8a83da8f484fa28ca3bf360534d4ada2525263daa0e79c0611ecc491f54b6facf86046250d54e8ecffaddde358072dd28c10c5a1464ca02fd242482407e98dd404c722c534eedad11a8ab37c5a78a9f7b8b55c69b12337a6992100245cc4fd9036242d848f0bdef5287b2fbb7998b484eeb17db72cbd76d1b2c844e4be154c189d06db9ec3ef9c3aaed91286badd4a76524b36dc01c54c5609f60eb9bb962009675f790af799d67cf85e4ada06e575f51a931f25254499ae60dcf9fced9a43d86ce2b804611086fe1ee8484f5b04fe0310432c95ba128f19e0224dac6b8c92206040c9df113bebc4fb7cf0df1a20724eb7d486e106858451aa952a547b5e102dc4214ea667e7acbd6503f20d159204010a0e7a1c1d3bf5391369b379f3f3b671390192abfa0750099cf9f03b48150505d848028fb3807f991fc0b9d6b4463c9c6e4068c8ef4b702ca27525ebfca4151d3fc491e0959e26eafae0af589413ef5ad786075acd4b6a4a4b0c1d9e9aa2a705219510904bedc3c49888aa210724a86c1a728b35a90349e3b9d6398bf7398869617a656b316122920ed2df9e9206c5ba7df7af707f534d7b2ee4d6d27db5cc18d7c0990db68d129df5c33ee183789716a3758029c2587988d617ce4e7934aa0a2bceb30bfabd3438e074ddc32a0c0cfa8a3ec5d2214171f7c60c8efc98277e9400e41376df484e33d0c0c0d8b51404c21e2a5a8476d194fcfe6cbad1183057913ccb931b8f9a85ab04b0d20cdb5cfe4d58808046a0a36a787324342b0e4fc26fe85984fb8746b7f278d1085aa0d530ace413fb6beca6c8765fe123bf25c7a691309848266bf89ec53778460733b8a9c55e77615b1e004d028faa36e6153e896d60c4838e2185005ac24868b161c8928ec61eab9f1782122010c2d8a18a20bc8f082ebf0b9be7ce8a3d207ba7192c250f54b00d6be1a53d2b23ececcfe386106de970bd19574f50ff3d6181a5b3dbedd3e1fed10c176186a615c5882897c25422ffe693c0f096ea60217ea3ce3f7a4b431423ae7d81d566ccfef0ee93ebe27963e82f3e7f620e9f1b0c42f0ff2842c1e84d29fbdbc8a838cb60b4bbd3788186e902fb541d8c506c9be06b1506a108a1ceaab696013bc19244c65104764909d8f41222406f1854176097136d242a516724cb4fbe10b62dbda0b820abbcf205c107b8555b0b6e8b529bd9ff4415a783f5b1046aa59ef8ea79760e3e71524d4a8198976f98d9ccd054d96abad9a586a809e4e968151046cca7c119036b4deff28e1a9d0b3a07c44dfe0ca807417d79a426c65c56df3c5c49ad81478bd4fbcb3d0d9cd90df3b5e90df2b7c5454cedabb49ebdda6dfe9818061fecf3861ac0685a8db9e86436acc4936b1c5f39addee3a046e0b020ed6ba860bc3f34c5f119532b92e06badf0aea42ac1d2489a7d2056403dd9d2271f1154534bc3cb426daf3e0a86123183d4a49bbe4986705b4465d2f3afb738aa1d6781680b8b578ce8b033987cb8b63727148391ebbee25d75c621024a0b90f891c3fa13415aacf24cd05c22b5006aa77807f47a69a9f5b7e4f99606d3b3be0b63d4062cb95eb338871cdb5e10819f28ed6e3baf61d41739c7d78f44c108eca57866d8a6b20ec43fab528070bb5e3843e6f4f50c0574a51692ac62b314b34c95973c6cf0f23c9c0f1a58a96f0ec8b06b95dbea044df7b7b4b2d3532eddac972011539919e2398820cc1a9214069accd4f14510fe74cc7e13aceaa8285be2b384a764f30b567f2efd8b9a9f5dd2b5fafb33335f4cc92cde063f4b04c3b7c5c928b8a95db099a0b958898ad492e984217fae46fee7565072314afc4a89ff6ccf7a3c0aa8136e2a240a6cc4fdb0ae5713ca4cc07f90f74e8833335c7c98491e48195ba2b338a13b6d099018e2a0d4c80769c5540ef1561193c8755c9843dfcc6b7220f714ec341a50c0444b4656806e789bb018d60423359c42eae27939a95db4e0f934d9fe36457bef83eb2c5fa278913c8b1c8b1a06a7a97de1e4ba66e8674742c59368506592340949a255e5c5aa01d17d0b11870970c904e0d20225da024d1870c57dd08e9271fd2c5815ef4d814e3a467ade2471346f5d56923e301dad84f7ccc6f7845c15d1003323840bef217318f830e5c16949c9d46ef0119eb65c06b270df9be9c76bc4b04f497ea2580f76806ea6b99d115cc4b8082012b0f78a13730cae8276e3aef8505d61533053146775562118b92cbe2b1501ae89b4e54f4f76806f2d5783d22575a0ffbcebadedd95b8d7259e1672192dfb962e36b218637168412b74b0ca464017390636f2101a625625090bc9964dfbbaf450996ac1a611ae9024f0b0207a38923e942a0c89370dcd8e65c7bc97744e32fab0f3c0a1b9e0874177aa54b14b455348d60a422beca64a17dd1ecd83be0ebbd20275b82a356ce1e9df9d538562618d869babd4b8b0232c51943d6902e1eadf8f23558ed4f8df501bf4f1d33e849082f623ad040dc2a1682bd48ae7ac9859b2325490f591a307dfe99f680cdebee7df6a77ddd00d3f20d6b9a6fcb17908b0beb3133b8e23995990cdaa0048931ab776f44f04b0370d205dbe0958411f08102640a101576b0314c54fff9f282c6dca9862aa94c0eb3be9ca98a198fb8865f2dcd7a1ef23e12093820bf79189a29a67d3dd275562069ae8e4fdcbb410a6b2e2840430d695f697822e703e1fed26903f34e46f2896b8c842895683ec38617a49d1eca9290857c9d58d509fc0e0e4910c36970664331cac3712047e33a1cc33f99a4f2050f3c9741b6307cad507a62d9d9f1031af7270c9313f6c7883be82d72d27ddc1d596f0ac4823168b47b6960b2b5d2e9abefc780d7315b968efd530e82bc4758852c3c749dec0664e2813c71c6680068b2d61c31a2d6a00a254629b37a7ef9c7002531f9441aef8fd7ee4660d38bc8ba2f8909aeac31c06618cde36616b0014317124fa1cbec3b47349bf15d0ef6f4885b16cc8c10e66441463e18fd171399403ca795824b3d6fb5f515b1f84bf884c5eaf612c6d8b8dfa55604462e6b475807eb9429155b69af0d6b7eb2620bc631f9941ab7fa138134ead70350e1bfb8e2993e49dbadd24669fa83c6bc2f6a24b20e3e47cbc58d90709d6cd5e7bd57c76fbba7e7fdf738c98e693ce108a11bb984082b1601f6cfbfff08cde02ca5a30b928b7b0df7b64ad7fff8508484ea125b618e93cd03894b0a758201d5246995b9f644eb42b52a174b8e0ac3aa1ae6f6aa200e47d606f3ec9c27046a1543976f0c8473ac51cbe65e6ba0a804362b2fbc1d57468c8a111e7c5a79ce6391650cad680cfc25e3205c4c7beb705f77e2e5179f5cad3b5b5c7b1928251c444b60e9e4f3c1b25b0da712b8f8490202d6486202facd800e27c0510307c3487e6a8958ed32930a62a86191b1adca87ebf3e228029f32dc2f8fdbcc2f6f39a0f1566ce5b8007dd16275890f423afa5b902c33a88e71d101cefa4c385afe7dcbf08b19c2665e8ab33a070321bc917d78d0e14bb65b06c828ac6178df551c7b174834c6d6464f361443a267318ad09c4514f78b14d4f46e6286c38b4194879bd3e8be1c06e57d2c005f8b11b0e085582d49e0f20f46c481bf5f8df86db647d5ca45795034367e85e715bc8fe31b4362071481aa40c369fa40d9f457d211bf80d6850f2f216f137e03820b22902d14eea437985bdb227d99f1da97e3f996e0f337b413b1545c969d3f861e363e859260e89fef005cab316b6097bdf42e812bf399481c5227efb12e2cbc26b658bc32103063b3f7d29e1bb8afda4f67c290171cccb00fb0a7824e0205020f3cc03c20b28395a3b6e3134afd3f6aa628a290714d53c25931270d57d136803045072c4082769e6562dcd5bb2c190223c2d3954b9d0395d73de74ce4befd8cea908f99d6139c1b41eb44028ccfae5a8f80bfab4588ec8b5e7ff25a451b91c9403b36071e002f7d503ed298fdca32f9c3ce8713c818cc4da8494195eeab395d4c880bcd0a06a6976d4fc2dae8db66e5d74989096699662d1c4f539120106107f12248ca7fbe50e586abc12965c94e8448f0fa2c52f75e03582e9117a6590c1708464ec94389130d6d6053e0ad3b40dc6efdc074173614a7f108fa13207131dd638eae79d872c653e8d9b3cf1e3464cd4732f49c3548762095945962e06e45ed01043a8b5a8b1d3978ac70d3a56aca8260e232a9f178aecbe2be1441b377ec57f8330463854c845f83de87a6d2aaafb927580325197d545bc2c20da17dc71a313b3dc36c41f25172482520c6deb251db6bd82609861bcecb65c3aa488004ce4e1e6d506aa13f108a61aa07a233fcb1270b6e01c7533a0836fb9777a0abcffb8f9fba3c2ea5df8133eb86a2d0842e41d8f4085adbfac4333466aec9d6586be2fa1a8c099079a201f11810196903d7b817233f2af1a1e2e1a1a89407967009727117cb60e4fd738b6e9650e28da74e471a53906c1365507dada1845c71ad105846fe6158a75a37d7da012fa4e4468481f11d4fa7bcaa7e9d9c4538612c528a490b2f9b04783e46ae67e0a7e97b91fe13dd551dc17929e1a72a26a19ad9270bd550165e158f9a9aee8ef0e98ad3fec7e086a0cfabb14ed56602607ac4339de3018043b4dbd0862c5e530bdde6d8548a012d7e2e4afb6802a9ac15fd5a77784626c645b208879255717614a16ba60ba4ca343a1f404966ee86b6f724817b497e1091a15205454c06b8713ef5816ccb8754b540450fa493300bfddf6706a2283ecaf19ac5ec5d0855b4af2b8194c4205568c4512a507438402d857676cae66149678bc56a3e37ae3d054a5a1a0a9a47e81ffd00f168a4f12f71b13ca8381e574c8d00704a019882c3a8d6b1d718f85ce579ced04910cec28ee664f5c5a2e6eb7427f54d351005325e310ccb242438128500acb4bc52ba6933bfa816f134b74a99c24c85ac278c5e2d0f9bd3c5c24034a9c0356e3c2722328b0a468204678fc7cc69a59e4dc67431eb68711cda1cc72d5ed9506bb7cc24fbc698fea43edb4b205fef23d194762e1021349c8f6cc3bc44ee5e1780e14e4546ddb04246b31413d332ad19ba8bd2b1f6c357695cad13c00cbb60cb4e3405ceb989372c872281a8080f3368241fc4db14c03a17833f03219b4e31296066bc5001424afeea4003bca465278880c55d74e95b73d3ddca224373a564f47b88c6e50a582f7a873481cdd0305959c2f3271c4840ca35642d5d05110125621ef6beafa4076828efec21a7ac486ae2b1a968a49e9c5d51839394ac247d9872a4ae76ac2e9888bec01c6455eee8d8dccb88a36596b3118bd1d509e5245f64dd002e5ed0da53dfa0c3bbd1bc398537776e43d63780d8582be37681a2b71e84730f5bfeadf455c00bc8a076094c103c1de10a67ece63324eab38cfde4aa9b861b9ab0c688cf5b0f185325e8836b9c267f69ab1b042a9b31a4e38741833e38a1ee585d3d18088e78f3134128a06763689aa300397975a40f8791cec018401dc31df651285bbf12946dceb87d9bcbf090700f3ecd8a7fc9d47b8c553b3d00bad376ff7e5a0a3ba64b7b3c119c291182bf4279893c1548acf2c78f451b3addd7586c68c17ca492f4c54d06caf4c9164ce180c5be041397f8bed37de23300eb536b73ade474e47810206260bd26cc386edcf0073ed2cdafdc5295632cf2faace1304de4ed550f04665bfc53ef07d15f998c4e2907b656f6e3e4d91bcaa06b86c4e570584bb3b05886830063dc00f6d1676ca4b0af73f94ad075669925128beb32e5f8733bbc3fb8ed9c7732bc66f15a78ba583220f437c12746f02889d5659c5141bf87d0f11f40d6177a5b4f72f387a889ee0c8ff8699a0bfeff3483cb042ef45dbb00cead5d4a206fac3b703f87d6081509c180e51f56ef0ac03d0c66b21b49bb95404b866cab1eec3ad35044ee241d3864a8c059aa8d34e47370405f95933246a07a8eb093bd6db96c2f049f5901b27a757d18c2e1bdc41a385ff963a3435209dbf7d18e3064dd255262cc951e6b01f84304f975f414ea42ec1c4086641b9af09fca028cdcbe4b2625b27991b0f64043a6f0f603d87207e27b697c3896d09bcab284f88359d66b8bbe64258cc6962bfe51316ad50e19364c4775bcd70bd6e395fc1b3384ce901b888ac9cad09ae86e3d954a5e836b62c204a8306a48340bdc3b601d6e08724378994d2d3b8e718f2aa20513bf932c1d48c8ac11d12868804252e6948b81d4d47ae622273183a0b1d611e93ab5cdd8a76853b8311268e8991a17d7c97928d68b184156061c4e42b32213e60b6374a5f85a27c318b194c23c7cc1bf8ccfcc7342fb32651d8c37c17ab64190f82e2ee98c84faa70fb4289ae03acc2461219f1374cd01abec86eecd8a65600ad029592ecd8094a9f1b3651cd8e2bbe8ee94923e005820893432627f58f9afc9ba356837fec497799014d44124c23a41735d43619f8298db6a9dde5c8aacf3ed5a5671f0d9998106f48561a8468379a21ee9dc0c3eb810314db0241144672e2bdf3529cae83f525eb1aa280bfa6906507cc0bb08b1a1a740c29ca4b01c4cc046e6cbef02689bdeccc5224a813cdc13fb2b231964b59f70e9154db0dda54b70ccaa894082d96046105b2f0dd60dc25392a9ed51721a9bf29dfb77dd649e5f3862ffb79696afa0074d59ca94e47bde939553f8b2ccbb35bd859a2473925f5049b1034ae518c68f6472d2125a907d12fe144a810352c6f313c928a24569f884656d68b9049f571fc81f702bf2c6136674dc5823421a859bb6134712067a058c04ec39f650c0374d123ea03a3733d413feb89b8721d4d2b910687f80097f8e88d17a27593d42b4fc47dcae8e63ac1a76e532862273d1499d94a2ec9d9ee5ecd7364d9b85a93964485bc0a14a64ac6c06f646417e4f6a1d7fd88d49bcec31fe6924730bb99b041b3c943f8f3ac21f316e7ead56c5a94bf24875acb80aa6b279e76f1bf0924b7255b7ee7536aa85ca9dc996c8c037eb5ecf93a77c3251372de1f67919a7430de911de228778b795f8667de7960ece20d25ddf2a6f89b813454877cf6875d84f693d0f3dea5cba38f602d4bcaf96345e4f332ce8f4e2c94ccdf819256c149fe41d3d4959a41dc77c0b804d2fc5fa33c0775798768ecf9d37096fd134fd4c5f2426bd54abbab704f75f3dd9f1690784d0edbc9271d60e4ac291ba815d7b038b49d1f4aadf1430070c9eb5d7e83bc8aa516dfca8bc5234766f3368405141f4415318010972ed8235acbd8a1a16d4dcd0c26752d51745aa082f0ced1ad8b5f8a7e43d03b1169e91337bb3896b81ea207b2f67dcd990f2392af7401a83fac0d5e1ea478f9ec73232cdc3c5ef49492def2df2c1fbb0958ea78647436851d84420217ee5e2917b65d4cbeb399a220088a2a13d071c66f040cbe10391b776d6e192335bcc5b64c962171847b4178cbc7f8e73e3d08bf1e906e33a997249299890d97ae76753d2229a7c0757b09a07c8390e3b1045b0ca09aad57c32d757f18ee4d027203f4989b1fe65800bedc2d69dbe097131978c246f686a202e4f1c8f2d00076cd3bb0ff0d7352defd500d098fec102ac9b05135a009f35daab44a92f8ac435b635c179d0544cb306a171206d5ccede16b3ed6ab508524472e584933ca05e2cd80943bd72f49bf4f473bce0a1b76f08bf109102121514ddfe097cb1b7a2b3644f93d934f7276d48d34c2da9e930250455b735eb023b44ebb1b0501547dec03a65ef0b0c983a154fe17df02f0b76a24b0bb6a423d428502d48904daa25bba5b3052326e0e66b110ce6b490a4117847036c80c294a185a7abf5c6bc3b2331afbc55aab0ae15a6e6362dbb604ed632a81c51242300cc01cc2380456b7eefc0af55b0eb3edf68f0dfb90bf890f0db542f41ffbb6bbb67b4b29534a327d0ba20b950bde5ff97957a5e841f6047687ddadab4f304f2cc61c77fac4403db675c24a29c32af1c1507d90a014caa535a04fe6487b2885551f263a2a85be1c45554e91983a3c6392c2489ac4eddaa4c7daead28c75ea10f3a6bf796e2d629ab88bdb855ef51fc0d025eb3781f973bbd5aa24f9b6bdfb6804f3d34b648f1b04e7761eab0e31270b24023412c547ccc3bc91d1bfbc919887f125a09128db1b79f9d11b81f9987fd9d17d11a0ff91eb3f80e0ff78f9d1ff80f998c7d12f3f7a1f2f3ffa4df401f331b23e799d7f17138ebadb9f76ef3f80f492757b0f49be389dc83ebc42cb9c7d585106f2921880cd075bd2e9c33cb11773ece719037111805887aff04d63e12070a93f183ad734c13c8cd83d0ea4ea55ab57a47b039c4f5c81725dbefbcebd17d7cc4162ce259cbcbc8fa3bc641ffaa4c8837a6c77c21ce9d64838619ee6f4a03ef59339f6770db8a4f2ee7114a798c0a15e3a55f56a2389bedf88d6b3b1361509de8de472506b693c97c4b93fcf229eeb5fda192d91807666cbcaaa302f1101d292456ea02792a3436916449ff6964f7bcba7bdd5def2c16161b4e5bb2d6db9c4f6d8f72140970f3d6957b098eb65797a1c2de941d26a823cc63c7f3743951d80eeacb24349803babec90c4b52e47d1d24b3e8e8a294b97b53214e894070d82d38542bbc3da71fbfe343cb8e7e7795dded5ab104f8fed5adcb5c55fb60cd84e4c53326a4b7e00453f5e1ee6c7e86344aba47b97e77f097fb55a8964109cdb7d683581ee5dbe8bf1be903c72bf4fe1c5087048bd64088ed8ef6854e14275ed530ff5aa5b3f802e5708f5be8634ef8534dbf3f5bee3421a2b5e00fc0b3c6b4ffd0aa121cf83e05c9729d745b44a42a1ddb13b600d89d42e18806455d1729a904c1425915e5e68298201e65fde078c38bdf4227eef0347bb10207df5e8b5bdf6e7a3e14b0b7c192e3fbb68cb21f5da992de98c02d1a0eefedf69d4ec982bf1f125cee425a42bda9a26175d7997a4ae1c34308cfee57d8cfe45f4f1f230e2aa572f30bda4c754af1c5559302c98b0aabecaf296c35aa6ea135955b7f2b4ac65287833de9a266fa1e0e144c1f32713557dbce5289b85db52768d70fb693e1744d3a48536ba6d9b15e9f7fdfc727c626df5d895d563654d809969588eb2aecaea9e14b58ac598a70e7d8ab273a8729d0a2e759ffc8929135dd2bafc07af17efa5cbe8b265def2126c9a62d3d40f9b3953b80fbc9d1e558eb23cb8e0368f65d515dcfef073417459b4ab697ad2ae00e0b12dbdebbe7b92c48367e0cd5f9897be8e79a9f8d202ff764f0ea97713497e1bf8d2f7fec875fb6c7fe3a1aa1780245591f4d5e22ee9b1eb3bcc6cad5df154d5aa0520597daa0f96b83387facca6c8e2d227aa0fe753af78b353e719bb64affe57ddafd869f33227dca2ecb11fe627d8a75ef516f3547398659faaaa47187109dff8cfedefc2af029d7a79b7a5979068aad0064d93860397faedccb59510574381e50fff761ef6e5155c24aa3ed955e7304f96533ed832567db264ccf18bb009949ca009a91b444d5ea928343ce835c00a52a45d414332a7a6c36dca5a5d2674c53b3daa54ac8479d887b2e88af6545b6a2a1ef47a10208e6e99a3280fb3d4ef023ac48c3e91916e7f94ae08e0bd843315000efbd2d6cc9997aefc07902f495db75f856fc7fcb99d38e4a3a1b114e9b1bf23625dd6d5a779fb92d6d52b47d92c66a93f4b8f058365c968d992ddb7a74e374a5794ae6e1cc0009ffdee005e0a2f46804170eef7a1df1e01ef505c2d2040d2967709f8f230bf6d204822c188bf3d39929d1804e7d2df66f87678dfe3fad3c0f0f2307f819787112f30fae9250e8273ed739579bf85d5c705e008015f0eef11f0d1c0f0f2a3bf00ccc7bc1742a0470f071b0124bd25811efbab4ff5a957bce59db75c4acc48e671f4c8a18433e52d47551f99ead3aa3ef6c8131c7e984901a20b27aea85004e100888b2c53a400267c09bde52d87e2b22f47c17c3fa594be2cc0a93b7597d2b36280fff489bf651b5042162d7e80384211745043126210c60fb25cc901935edd559fdc59c8f118a45da7e3cd2fc776372aa567354da72fc7269232dcefe9938b1b684b2fd56b7becaa07f4253db62ddf13bf136df99f48922e694b232069cb99d333735ab81d22ddd04ffa350979d8b84e60defec088def2d6ad9f5859de02906c99ccb70d043b5113c256cb90caa72f07b5abb63d0bf0fc07b05eb2573b642e7d8ef5e83f807dc94e000ecd8e7af9eb659101f5926e4bb7408e9a63aca007af1828b1011251a6106e40842dbcc801119ca0223595d085104998d00209252c48f5db99a38eeca8c0065baa70e24a100fa9e6984c86b2a1cba22d59009274654b5bdad296568b87f6a7c796bdc86c2993bdfab45aad56abb9711d904bf393157453057263ab791f4c4c7db6ee35dca0bafc6c391422ba43b66b3914326423d17842ec0ba9df00ee49162e93282af45c4361ff74899d703b51ec73e24e1230c53df749c054e8fb1ba84ffc2e5a75dd11fe90f79f58c4c8f7a2f7be8891284642df35ced8a2e1ff7ea63a14fa1fde7fde874423a2ffdefb22458c84befb283e44ff79e18d1bb7f97d7c342cc21012fd6c1897fa77e8ef24d952fe49c054cdc75c2fd9ed1d1e9c54cd27015336328fa3bb8c1e9dc795f84e8fcd4e809ce2be74d9e8498fb98f93fe8a79d2619ccbd692dd7e2fbbe5b2a2ab3ac897f4d8dee337fc3c8e2685beb25e187a2efc7eb309676aa6fa49bf3a06ad44d7600a5867b7a609072f21cd83610a1f13a2f03021e95d421a3f0a679e3f7e1a3a11bd874e6c421e30d5bd4c68024ec97c4db8c303a6443fbf1ae8338d0d69ace84d01c986390f5ce83d70a93fc40a201d88dbcfbe6a02ec6c78299c99431f0177be01a64ef59597da7f00c23a55f41dbe8981511a107dc70b203ff88a4bfd2f33875f035ceeb00e679937fd2c042ef5cf58364d582c013213306e09d86ab9a5ee19017da5c5668ece6d89bebf638efa9e7e34307cdffd0fd17bcf6177197c1cdd556918b8e56039ea880f65b08ce0c94110403049f57bcb51164862c4195b28a1491344a4fa7de53da2908645a2ff11fa4e34f27de845df87de88a8634f7424f5f9e0fe7bfe2ff422b1c8f7a12f229a5f074d53bf7719aa00f4eee5559f42b350c8751e772bc77134fcf3fae0bea309674aabc04ceda0f0a44f219ca9ce43a6214d8f5068269c291472f4d831c11195cb8f5e269c29a6095f3e85107c14c2982785304f2374f99970f43221a75e1e0cfdf7610f8f35bdf40213e3f331d9b01898566f2b6817830c23c7b95bcb510e7978141f7c7046789d845451fc6f702c5e2c517d3c7a3c0dbf407f7e1afb47ae7da147ef5139f62a90390302646e6119279bc964fef295af9c8504849c7d974f07877c3517f9db56cb35a2c13dbc62251308c86834a241495f7910a7ea2d665204f3e0ab99ea21d173ffe3fb906824f4df73a291283e42224d0f8e1369e8773f53df1be1c4d07bff83fb8e7b8f7b23de877ea6443f53a1f778afdb1f72d84c799cafdad5ad1e6f00c9868526751edc053e843ff115af7809f7f8ca57be7226bec4572c8565a556fd934820e8b2e6e955f7348ba6060d0d4d0dda36e20ae50f16517bf1cb515ffc74f49d1e0077adce58e6445841ab55d8ef6f2af3b47d7feb609ea87bcc251b6679a3febe036e14cb34f56ba1973dfef428a32a20f699cf7ce633a02b332b6595db5336854bdc3b27dab05d2b36941ee994db0ebbed2f97e23dbe2a7960fdd297c3bff4e9e8be1d0b5eb77c00e72d4b5bb08c75e6bc19c26423cc93ffe755bcb8bdc46d268067dd450d731463314bfd5964f1b90cc6ed97e90092bef2974f71588f3299ec87c3d263c33898ac618ea54f6497b7ad5c72ce4a4771dfdfb37e2ee4159099956d9339a2b506cee051b9a418a75393ca6d1c73ec29bafd308cdab8d4df350be0e63d80f309205e37ee1340b86e3f04fac4a899b25fbbaa3d8e4e69a9f971e0a78b207cd0424b0c927ce007559cb0832766449105095440d9810833c400ba22d53d204122060e2f30820e56544d229429fefa3e8a14002865bf8ad34b5480f0b92ff4890a1001316780345ee6c90ad3c10ff334be0a70aae669f0909981f4323f2f4502d6980e20497bf87ecf1f9a392edef6fca2996343cf0fce1ceef95f664e275215e5e101e9ec01e5e913156778f91edd99d193357726e64915ee8c480609725f9e9fe4fbf2f3cb3112c91a9b1a363e14011023922aacf04272ccbf847cbf3e875c83e8bf7779efb5dfde7ee8b9ef9ec398903c725fc279eb57610da32a47d113f4f489240ae11fb25d26ac4343ac55f8a6bf4a51755063758a4a45ad629aacd41d541e84b507a1ad115659599f983754fee583c153b024a08e796be0335cd5a74797cb3ae01e970b8c611d5c1dcc9c9e3e51a62c2480be18561b354f562c364fd61f2dd46543a4b12ef5778c5b5daa8941611d1adfcf3398392188f9d1cbfccc934c03919170f9caadefbb273909d1734fb214f0434fb20d5ede3e290a01cc6f4ff20d280fd80aebd010a914be1169770a29ffcb71437746218429eead50f4572a33a706af4a7d9728ba2ac5cca941f4fd550733a7063066ff658aed6160a38ff9fefac4cca9210447ee8c486f304dfd3222cd629a42aa444861429a659afa5f423a0b2912a6898b693ac234f5bb84f4679afabd906e41b5c8c1edb74edcfe100eee34754ddcfe4a52175de2c3290ef3972b565d2eeaaa0670ad200047f98b69bbea0f424c70c5c2a14bfaabc2b6129c8950f8a68aac040f78062dc55de19b407d5fe1a380f7d0eca8ef5f456e5d0efdaef051d1655d06a0bbb9b5ea3146633762a7eaa23ca05850a0e997da95e5b12a9e895cbf73174912504dd80dc09b61318392753ccbbc71217841c44c07e770b1afabe6a5024c4d00d21775d11d90a4402f2ff5b7abace1d96cd623cf4a12494915bbb4d2e5958d0026afba984c5f0e27364fc1983a366c62cc1c1b4897fecca1355f691930a62ffab8e6bbf41c40a72f7a27361cab301c40ee1a91c6bfe6bfa5f4e97b1a176960a8f136de47cdbf48e37f2455432c12c5478daf118b44219dd4fc0ffec20654a852466e1055355f23de10be119caff145a2f8f8af2116a9f9178bd478177b905c15e4fef55d7425ee3c8c049c3ea118c5ffdfc6932fc44ff18555e36bbe564102d698cb7f4f55207defc90a631d2cdd5558878a343b44d23ee77d7fb5d2271a1ea2a74fc519bc17fdbcdb9f5cfae4f2354fda026ab9fd63796ed3b0d6ee738186df874297af5d886eb40675f91a2e9b8be84b7066dac6b70d1b366ac4eae3259b1cdfe7425f2a56d81920bfd715c081e09b7e2bba107c5300ee860727d674962ebbecb2cb2e3f183a55235618e59c0c598f7cc333d6f10384f3f695976b9a0ce051201a1e3cc3bc331bfeea52bf55dd1a846353612f33407ff5690aeb38c1a823a9fe2efbc436fec8255d0a1b07bacda47b9e00da780eba146816dff4a8f1387a879f71c6e5278f601d92af7f3a4462add22309c0ff9ae7afc7ce7fcd1bd1b9fd55b69533679301017989d68435c663d8bc8d275d060bdd9ab7f9186ade46a4a17f2435bd1483cddb1069a8782405a6687ed8781ba2112f037427803315856607fdfa54ec25343ce80c572406141f556aa6c02af60a09e8ed6822f8e608be4180e75f80dd2529108bdd846f7ae6a81adf35364d604c54bd71c3000628952ec9b390e4190a285c926733183a5543acb026d42b17d62319dcaa53c87c50b10082b9ca96d5bc8dcbd52e9b1aa725f561e54311d7653d569673e1587ebc080cc43397f96f0e5294cb0dcf839c092e172858a7c696f4e9084f9fe8bc3648405a469f9a1f35bb4e04c1f4b9343bfce953f1c89db7f3ea558aab6b30732a14d394c444552ab3d44f22c55cb2c25c5de7425f172b8c6fc600c90a8b317ddd56c2597856965d76b9ea13495d77492cc63aeea81a9befe7994d8d0fe0f27739ac245c49247179469bdc0672d9025a507afc02f4af7a47a7c0fcb504708ec104146051460ec6c0024b6a852f8c20a3074da820085470223944e4568f2e86b205a4dff130c0a561cc05018ea6a18b0176ec31e855ac8815e6618064050324b95557a553a7e555d227b2ae9ceafc35029215c63addedaf55fa143473a614b7df81409202b9e7d59807f169e2fa6bf218ac85bf9079a9652ef3ae414371cb764dd316ef8150b864bb825a3d7659c3d327925bb7d5272fcbb22c19e0d44569153446ab68578fdd276eb5132d856fa894769e1e95f4accbcd85c534b910bad0a205d9346d9a4fa9d573d15f3dc25cd2651c035af01c46df4558fd29611d6d5de2e7428fc339dcbe0bed8741625814838cae7df1e381001758e1e25a0a530248dda97bc7e0c6b3cec2797a5412faaac75a6bada9555623abb2d251e17f8d2e6dbaace9f2bb0cc5d9a504e03c0ba38d6dab018236e2ac055a6b1195558ba849dcbaea13adae399a41b7f0cd123a8637b9cee32a2047d57c3f8d39aa4664f049106cc57c89697226d8a980c2019f0baf2fc09adbe1f018f4c7f1e5e0a72fea6a2480f4d527579fa4d0b88c6ffa6dae0d47cd2a39904245cc074c989224652223490f5948d1840c9ed0f00111ba600115547ed8414a043e32e019e20726588d91ea77d9ec5461d54aa5b4ee347f399c0921739a6a394d15c65c2bd754e9b15d35edaab076f1ace461758f38f3194ccc4866860609851442dcc827856e219a307fee06660e0781810e4a20317c10a30b025cb1c41433a4f0a26709d7ab6dc539b1ab06e7c4a800d4b86ee0689cc46dd709c7db58c53c35ac336be64e8f1350310fab36307f36e07502fc74033d3610ead9ba894412dff47b89510198bcc33cace21980243761014b124cf86005115ff420f5c29432b818220b292d50e27a3569d406bad45a48ac2303dfd0100046d930494cdc0619a616b79902fc40dec5201b880292f3e7e2c4d027b286d6903b574b9f75acc894ffda4083b38a7536bee96796dbc0283e625371977ddcc061267c04bf60deb00a60a0649a520005ec4bb2921c2e03909570a3580abb62009238ec72b18ba7682c855d8e62251a2b61172b51721b67ac8157fba41a7e8575ac38e29bea57fc0abf5283b479a2dbf94c55ebb4614458878a23be69291855834b3eaac1283f824bce924d71840f16f386a91842a7a61388f0d8a896824b0df39813905e92633f31d8344d019b748bf504dce9133983aedd618a2eb2b87ff989cc1cfafd2398a85679f374afba052b7e598f2a47358ba5a271695cb2ebb39874036ecdb658d189a6a5472fb5b2141dcb9572bc72fbc7d2443912a3bbc6711347304bfddc0c621e88c066101122bca31171d4a8058d3070c43ace846f8e609473c1a57626d563d0d66a6dad12c01939689ab238eb3019f386bb60270871fb29cf668eea2a57accc9a00498ed5c0b79f68d83481a4bbb68de4264ec07a499ebd5ca6e17729ab1e568e80fe72f5c831d564009289e2294812c7541c53dd7e8e396a13fb8959eae766896c2c620d1b478d88164464f6e8538f3df6e8a37decb1472b971c6f939e745305b2eb445af24dd72070a9e650556c9d613d76155ab24ecbf8a6068151968bde4477b35cb04e0f316fba0821348b8769f27a56aba54fde6ddba63df51e8777a17be2907abd891f01fa6bfff3d3340eeb75bba461fee58bc0bcc08851e8dfa09920f52246f17ed52b47b56c8a4446407a5fde4bfeed496f010585f54a8fdf7721bba3eaec0e8bc140947af5a9aa4aabe5a9aa1ebd0e8916edf1527f8bb25095e912482c716b0b762b0d9cbcbc3fa5b445b9d5c34bfd3178a949f6a9bd82f11f9f79e979c92e175d59242c5f6fe688aeaf28f59e3e8973bdc7d13ce616a1bb955bafbc577ebbf9bdb440774f64990c4280e42c6fafa80b0633a757d384c544350fb3d42f2f9c4769af5ac6cb2d4a6a5dde42fcc025a7eccebe6ddce325ff262c56bd2e3294564bb5c32cc565577665974c7955956a87abc2892c5790614418404885c270c202278ab0c31448e0595aba635794a7b7cdbb19f81f05dae7b76f87d4cbef7d67044955b7779cb20f57569d81d726f5084ec19f64317bcb028261c9f026e0f7def3ec7eda15eb746255f1cd5655d6e5fe7aa2848b757c897913032ef57b1338d4f02076a7e50a2e874c3945e9b42207555890bae17b35917ab17553b5349e164e6dd20aa0dd5d764f9f6ca0a072c65758334774bb3e75d6addbd1c2f87bcfdefb7b3e015b3943fa92eab05f7f0b857c3f64bb334fb64ae647ff83f433a397f91fa397118bcc3c4946bce1f565c299228933d8af5fb70f7d902353ae2583689d02bcf9dd28ec94138874597f446d97cd8515fb0aacb960544b71a5556cbf3e6184d775c09d4f14618cf12a80734981626bb5b576cccf34e45c3d7c3816ab874bfddbb66d20e85e905bc9b55c7d22b5a00be51909d8ef5d9433678999139b3958668e9d62ea702abe616223c2d4e1a2b0d2284e4a973491636d2f8eb5bd5cd0ae15b92a1c8b1b82734d1387044704a7b24f6a4145f404b1c1609eb8d7d613a5c73fee3b97e99283e684793a639ea8161473492da86a41bcd1da2a8ee55242774199a655adb4528d56f7e9d39599638148245ba5b7682167509333a8e79519348366900c08be6c2fb055333232346cb8fbbfb440ed53f02cd7fa42ae09e7e28c9837e0e59c4c533f27c6d0a3c71dacaa556fc346c8a954cc6a61f9d1520a7d39442d882fa90569417d12c22f64c8763b8b79d33f84747b8b69d2ca685477a9427f39f83b5fb2953430ccfce87fccfc482c12c5c7e8657e7ae907e965c422a430a2d8c192d44824859cd0a28bd44c45d962a919166fdcc0c1518dfddd7da2b3caf5d744986701fdc9edb54de98f878deba293d16b8b396ace402b36962b3d220124b7f24ab338d2ab67db06e08d59801ec31d5598260f838c97869f56db3bfd43c36297b3e651f5b803a7e272e04ea0e27ce0217a001e83f607f0e5a83f0002d8ea6509547af5de7a0cb02da02776c5078beca7bc33ab64c553eb8dc742690bf0a9541c4bdb324d2cae499ff865e8f105bea1f2f22672f0f22555e860327d39ea9b0a50dd45fedc10b3d4ff048915b704c7e29926252b8ec5b1381607c5ab875c138ec55241e9539f4ea4b645db3273bcdaefb7cc0a7239cc05f682675bb92d6180ed354df592db2b0109d8963002664184d633736614b7df71608e0404d883a360ebe276184da8ac954137261babc7b900c90eda545ad0ed9f4e91c680e20543a4c856bd0a33c7bfaafe1b2f87fc9575048ed5a3571f575bb909119e391e141454bfb7ad9c49ae8a4bfd323ffa22cc2313ce94d33b22e2cfdc4e8fbd4de991f9e9f6da60bcbd186667d00c22324bf6d5e394ed554ffea22f47fdb657a3f82f8b1c0fa7721c801b6c7b71aa6d4a9fa6847c0aa8dd49058a206ebd330a15f45c242d1d5c978757c9b138ae19e055f7eaae008fc1d02be0cbc1bd0216e0ddf884bcfc90ed82e596c5447516dc0d9927cdbc1199273dc9a97a013e482ff346667ef446482ff324a7ca41e3ef63f433ef43e6493f3f1a176118fdccff18fd0c0a6291283e667ec83c49a4e19f291a621112184478a12535236e3040c206a9998a328e577b2d0b308bfa5eabbb8eeefdbff7d7f1bdbbbbfff6472e8ef69ebdffc2c621e6fb7b079898d009e689837918916428db944d26dc625ef2d24bc810f06e3998a6fe0d07f3667b85dbeb0774113b2636ac474e1576288f439c8ac7439c7b751fdba34fce42494775afee3abceb41c0f33e1e36eef7ad2a556557ed19edd990ea087d7dfe7684be8adfa346b363fbfa3ab6afa20ad3a4fd913bbf5a5fc7bc55540519b9fe525f8e4f74327a2e7422f33262975e6eaff2e525e901dddddb6b836d3192ff809e18438f1e7d0b90dc7a3895a3b6924bfd562cc592c56e87e759805bd973372fca6d8b0d09f354cb4d0c1e622bddd62c1b182d32b69eb20973b595d96b04e616324c14cf5c0bf0e5df464c9d17f8a6bf594d668e3675fa0adfcc9cfafd8d03a3b61c9bc3aff261eb2460b93a9d289ef11732b00e1587f04dbf16e4a52f18a599314bae6dadb65666a222328475b42d5a90a3b61ed7cc60d4260497fa9dc18eb3da16217ab42dda964d089edd1e31c6b8fd9e05a85dd515d6e9c1375c30aa9370c95f601d37c1ec2d7de5925dbaa05d4df49d69eac13a0dc6bc49b25d2d44903ec9a95e1b95b9bdeaf76f4d6c3998276ef3811233c4eb36379d5da4712a47359259eae754cd35a7ba2a6ef5d8a447d6347577f36d2dfdd363ab462a56a9aa30c7e2588e9add1cab395673ace6581c0e8c8bc1488e1552c1344389d2d515030149b94d5d559042b76edadbf7975756122e968b679496585c06561f56b65361641df7c175803b7f008ca22e1fbabaa5c720bea14d601c744e45bc1ae5af245c350cbea15b82baa472ddeef32a8db9587cc32d9e81abd6ca7229c128aa4459595489520bb0b29470d5baa24df8a6fec0a84a9bd0aa9a26308e08bab409eb5424f38686517338624473a0aafa435d510a344d14688645055659d5e5251a2c2a30567535a1b12ebde4aa9e79a99f73146c40b12e5540ee4882aaab71e05293314797af2890a3a081ec6590c43a347e307344395f05c2ccf1668e76c5ccd92a1655083367083962bea3f1328eaaa9f1d54b2f3996ebb20ac356e88fa700f3647d5af64867f5672fdfdb562b6c965ebe7ef712d219fd29fda74f33fa42cba6b3bf2eb20f4cc8311f7c0ae87227155818d7de19859230fc5b304b07f261a2284f1075e528da64967ab3e2d62aec22ff26334788e88d983942be23668e1017ea64e608f11ee68568f4c9cc11b2fde8fb690c668e10fb33df4f65307384841e85efa750668e10ee53f87e1a65e608e99ee6fb3b4efbf83b6e02a0724f112c8eb112e258b9a708560eb77a2c82613d961e63c2f1cc4b9cf7b0cd14cf5af5aa2df7712b5a8769524d13ebc08a9dfb7254a3804b8d648efd65cfab07560d7c86d7d3a3e6ea523f7d59e9b19fae401aebd1c7451ba8630e7dc7d9af1f815ac519f8ad48c3d96db3eea1ce698b7bda03187a9a10bcb07df72f7c088888c0c6ed44927f1369eacfdb69bf85a190ce71aba1c8d52850f334566356a45068931e7900a9ab890ac0ae56eea90eac1a0b32a23d3d5256cfa54c78cc1e5c66922a719bd62a8da24ab013b7690f65ad564b58874aa1f404b3d43cf404935907d3d42edfbcaebcd433871d0b97b9cc69a594faca7b9cb5528119c6d4f572980e9ab56ba300f938dae66bbe04a08be344ba025dfda265f79d0018e656b88fbf7a749f3ed1955b314fd40797c2a77015778206416d441a8493db4f9bccb19fc65cb127d3c4316082ca6ad092b924b7aa37bf1d1d4d7df18fa46c429afa357f24d5bdd808d5781bafbdf75ba52b0069ea03e0e7bfcdff081f00a2111b1fbe8d68248a0f1b1fbe911aff3f53b6c6ffc760e3c39fdf04b8afefc3e66b5e0b61b0d9441f352f8a456c7ccd17a9f136343cea6fbf8933705f7f8644c2e9a528f569b6b7f14752349b28c4478db7211601528199a281879c413f53e193cc53438cc2fd4cfd937356239c291b62c7c2b05f5ebf1e35be5d8eaa21da1d9dbf63e1c1ef2255027a29a38fc36dc299aaf16cc299226976d0e7a74fcb9a70a6c04bcb4a55000ab197a74ffc8caa112990971a65431b8a1ab15220206e7ab3e45f0334f24a5737852c723b292e97571627d21480366f23728c7b8570ea743500a86f43bd4604431b361bc05bdf26ac624be93baf7397ce4a23313c739b07bf76d5bccd9700c8653366a7ceff4b98d8d404a0bb3df2e9c41a54615e72d1b0fb5abb2a80134da2c26815b79fc6e6d85f2376297381425a308abbfc76d0ece8ea7722cd8eeeb9e74492fb4e64d9914bdf431a3217ecec87e6187a0f77c870c90c5cb7a2939ad0d73448a42900499651205a06b7e8961e1bc85f639754a8c800d63f5dd8483050b747e3762209409bafb1e97276d0ac99a2b8c3732365f349b6d4ce4e129c948dff0fc5245bcae6c92ec90a3b820d86f0c5113ce068319ca9309c29f690747f6cc2af3eb8fd36aeb8fd352a106e7f0703550252b1673d963dee00764f763901b2fbea332b450108a3a263e9b1fbe4a2939aa7405deaa7406510adb4e451d1fb0b2eb8d4619ffaa756b9fd5d571376ca43e62c401cc68c693aea610aee3f7be4f955588d735fbd72d50760646328401609d0d5d45885d53c3b2a8525ac70410bc6e881072aa919c60cca1d902044154b6ce9998b6ffaeb4f85d5272aac2c4b2dfdd36539eb138cbf0002c017a068e4d1b03e314d504c139569aa52a3a8524c53ff4c585188ddfe14a6b8958adb3f3281cd9ba0fa3c4d386f0ae1bc28dc51386fcc57035fff38da5100d200a4c730881140ea277e11522fbfd7237dd61dd2f7f3f9ae344a04d2a314d09db1b84f0d8acb749790851c1f9fcf8775be20f6bef021324d403c304d23f0bef0668e22e7ec4b0274b695728b75aaf805d12f885b4590f5003aa55dbdd6ca20a5946ed66ed66a4d341e4d157a4145f88258c72363de38caebe26bc2ed1779b369ca5203d0436fe53eee43f2791f1ff6c1623717bec23e2e3e9a943e91deea6aad3e41e993ab4ffe9a4ae5adaa11506b3273f83573c41b377ca0a4512211932ef5bb965c1193295a6836602144b9fd03cd88dbdfe978a0bbdb5a6dad3a1e8394325931e1664c56170b30744986c2e4b6c8c5805a39c602a471c15e16f9ca85b92443619f2a20e9cd180990bca1f5895b6880037050ef562f65bd07681e043e091cb95d277e287a896e3060e6f868619e2c20f658ad40d29b79334f4ba32c962ef557d1ca56000aa13d1cc557bac4585c9e7d1ce5227289a4cc1c4fcb34d9609ebc24ccb1bf8a446fe6f2172de9d326aefa64454f8b37eb910620c93e325ec096a3b5a7631950a9d702ad5e03dc7a0ef82470a4c3f11cf215b11ab593644c45a99f039f918aa2e57c2e702256a3a26cdf2f6262cbc0d1d67e4abe906f0b2db4f0d5dfc23ebccd1c8d7df0fd6c051be1f63311a64e65a0ffbeefbfcefbbeeebdefebbe133f253d7a40dde702507f3978dab07114e096db3fb341d3e46979212da4bdff747859a6a9df132d16d354039f719db8bc3773948bc8db0682246fe6cd40927d58674bd7bdd73df8e5e8ec1042fd168ba933e74d4814c2328ba54fdcf667e668ff9c4882a4cbb547983af51bc83405a161888b08e68da6d2549a4a53c2d545db51b968aa93d3ee9ef928827dcd344842375520993dc4711caf9c59641e7e07997b2ad578a6666aa6481b22b8d1d13b225e0ae2e1619a7abad4dc038fac1f6ebf0301e40f99871cfca2a66995528d52ca57500e02bf6e933cc5b99475a95ddfbc81086371a1eed41d76a3d334bae93003b6853acc78752e285064503e1d66b8a8c8f115fcea13d3e7de4b1df89729d5a856352ac30680a0be4bec1636def8588fa11a528f5c6343eaac11b98106bee967d80d8c622934b1a5a06186d10101e42ec93247f16a25e395cc0597cb2b2852a4f0ab47660e7d3acc90d2e3bc52a4c09c5f3acc80f915d0a7b8a8c30c1877faf83bf6dc0ab0be0a304d0a14d6f8759801a54f0c654a4b6914afbad42e3b852dcc863acc78b9a0d84f8719505a3dceeba22cea30034a8ff3f2f4785d0790c46166666619f35ce6e993fb78b44bcc405adbc8a09b2a90da488b8989d162626246b5d65a24e62bedbaefaacc0c5763626266b81a131323a359ab590b96336699b05334424e714e461f13cec4c88822cff31c66cc039181c5c0642ac93e4ecce3e84dd3364d8b7112f323999066241619bd8ce87f24e522ba60676de86d88768fa3ada68920df3808e3c1e83c60540140eac5849df24f87e85adba34301d8058c8220e60fac57adadd636f357814e01f9626ab56ab55a6b2d7566eb07183d295e068c9e248597674b8d7ef4a4cde8452b521d258df6337f24152313f27db94d76cffd26aa7b66a9ff138944af853e4635f411132333e3458fe732532ea290ec20602105c99870a64694d6eadeb675b4f3686262b45ab55a3d09a0fdce3dd076959953a398a8eee91ddc7672458759ea9e7602c44b2dba3161a7fa0b70147dec19354ddb346dd3b45aab1ddddd2da9d6aa6d5a1db9a3e155d1e3680ed41ee6cb217a8d0bfb7633de4c38123d8e9609394523a4f131e18ecccf7c9646582466fb1e32802ea06a9a9030195301fd32e10bcc775d0a1e7fdf736837191a3396c60c0d1a4fa241e367421ad20c8d297daacf7196e32cf71d450a5eb77e0772efd1fb7d396a4fe9911c7b68e83b1462349890e4332e3f21156a1c5af334ae52e65aab68b28ecbfc7cd0a2301b10f39f8a79d2e6ce98276ddc9edfc3eef08ccbef2196e14cc5f4b5d65a6ba7b07a381513f26ca9989890555ee299a646018f2af0e1907598a69669618924b194cc1f497532e1e8252f35cd8c38f2d3f0a390c6c7cc8f7e46c4a1611661e854ccc78834c0fcc9f1365b666b7f7e40700febb4ea36cb6ad03e3168222eab47ab55abd55afbdf97c38aaab63d830c64269a595614fe4f14c5b9f1ccd24c59b19aa579c94dc7a21ae672806b4311dff47b6096fac1200388f7788ff7dc9e5ab5da3c3af6fb5b499f9cff37201cd277369e77352c6703f64906eaddec6c78f3d3718475b7ed39fc5e0b45b09903def0cb415f268c4902b81989098bc488beaff4497b2a3ed647ccccc7fc91d428a491118bc8fce88fa4445f3813f2ccd3103926d2d8e7d9cb84343e68bcccd310d947a4b13f233250909768ac0843a7645e46e4f20b906cd89cc1bc00cb9e50ef00043273ac112ec936bc184d08b32e7f57c3491683ccf27ac39e682878f491e207241b0604198442df01c9be02e4de79f02b404e24493018ccdad79e6c2b568b791cad855d0548c788b34b40464791bac43f8e3837a648f379e90a0c61bdd2c9200e08f4c4419b72085040021b6b868119abfa1360a496719c357a279a533483f9dd1776aa8a18f357a9ed18eb585102e00cb5d23109b08a814e41b791cc1b0e2307ea31d0ccd9c265804f801107023df689027394406facc7f94ad6067b61a06db6cd806c300e010a48a0c77e90964d011c2fd977b14a977d1adb72190306e6d8e29b7e1cc7004f0c78ec1ee2135d0c008f3c401c5b619fea5edd196c29dc0b68e6f497c3bf732c4057ed3090af66a97f56b9fdbea551dff7096643dc995fe98bda60b3d44fd202fe38966d0a58c5ca0c13b5cd66538c399b4e98b31c6edbef18ec48eeeb96300857b9af4fced90cf583d0b0fdf6dd93f681f4b8bd7d72ceb69fc1d2e07d6f1b08fa6a929e57aba87e95069183b6703ac1b5d200a4c70eb2c18004e1be1c95bb93ca4f12ee76271515eb92be0265be83055872777e3ada4a8fb3474dec2ab1aece1c945be9d21413e53ccc2a3838a55218a280c2cb0be731238030d2f4218033290ce47c49069a7cc3e236db66db6cc6ac6d034112e97f1c7998c55e3d16e38e6d2c2c6ca53901cc62c5d023ebb01c356795cd0aeb0a0b8ba8ba57771190974aa84d9b93f4a0a36298f307dfb8bb804517b03af5ea5ebd567772ceee6c06a19c6d403f3e9f3e7d7a0c4096bbbd85d2d6e2139ba617af86cd9aa627b408e006f352e3b0c267b1582c1af6a5de65f418d4e3161e9eda3cb5bfb7749f9c631debd8b6bd281cab74325e4d513aead6cce9d6cce147f9922ef5a39c493f993acec3bcf1a165703b6c56f3804e9d0820f360897901560192db6c9bcd1cb602f4f721807c99dc253d6e33efb93a5c0820b9b1602b5ba54fadf9e3588074636d2e2b3dd64a2bfd1e47d38e7d1d8bb1ae6c20e947caba9b38c3a922c929b9fd130685e54c6a15b955d7397660672986b00e9331c7e020efd16373dd3b17de775a907b88db7a9ce3b8ad0b1e75776b415a10a80569646841cc46665ee68d907ef4e4d6d3a327bd11999f7923a327fdcccbbc0fd28f7ee665fec78c282346f121ca88518254182061834f1ba3fe0a5347db326ffa51324f8233e4a348a4b0392c67e0ffbe3e39defa7d90f17212c0efbfc7d15f38ef935a50c76e995fb0b11758e79b5f5c9eb14f51579952bd7479d1f62abbfa6fe5cc1175e7a4c07130c13ce9304fdc3b104f3a0b6eff247da78b550f8c060addc8aba55b494519f8865379894bb2c59648b2c1b629e64d3f135b1554609a195ad096056be19a702eee555de4585564209ef548b2ae056966c058a78a7d65039aa62ca6690363de6c5a8811841e3f5e601d2a6a5b7afc6054073aa06dc9326d66152f04a107739621266aebf19e257a90d8fcc9ed772413c5a950a5bbc079285d872dcbe4c0205d326e3ff7f6ba5bcc5132e0f6ea719ba291314bfd1b129e1e04607b6d2f9c7164c1ab95a1037d4506ef00a35a8a2d5b6efa8abe32b99081b52dacf3828f1e7b6b4d930bccd89e4c203619dca65bcf3435f53a06b550f4332be9bb1690e4589b3b8af424b7f5f44948ddb62da6a999346afbe95293466d5abad45fc5a895a854add347490e99a211010000200053140000200c0806044242b160aa48d20714000c79a25274601d09b424c7614a19630c32c600010001110101b46d009401a9289029aa0195708f1d7f7b927cbeee8e4ae9eb2d6ca9efa9a83add693a86a9bde55f678bdd31941a89a927c38a6210e8af6e425497613ee59e92db84426b1242680030877a559ed27464824cf454b88e95d2411a4d05eb4010249f904a9a9258d48cbb0179366a6d5670163fbacc17ff732ce3f08ec9a68f01c177b3362d6d88922ad83f017bfad9e4a0d0bbc62a6324be0b4062f98f818aa022261532dc57948a45d90eac9333061de7017a764dd574634a1066f19c7fb974e7c02df3036e3c18080b1c39d483557c3c14ab3419965d55a21ce85d65f9f74375587ef3a337e2cf6ccf1bbda5953ac941c48962f24691fe1bbaf8a2cfef65ea7e1cf492ee01d2b6d85cf1ca7884ff775736b77b41f1450cc6a010d4c73cdedecb50b5bbe9cfdd866e3d12f240b3adba77e6e64cacc9b21235ba47bceadd260be05f45016dbc6db9bad54494e0bf42fc2dffb4e65fc143d2944135a4f431964b7ec6304b9348cb04b714a4991d677c70759d6bba11c7fccd4252d63bd6f8ae5c4f9c82e463ba5855905e508b777b467c976ada9f462f44a6f955c52b149067c317d0bdf0218b447661756ebb409bffb565b05a5bb5ab603af118a0da5e144f2e699319cdc65615334c887a69fb852f5f083bced94dd68fd4e8adcc5288135afe5a4b08e05f0269d8ba91fe0c7f75fea251c9f43c5ff42a59c0b68655b1d84a6505b35f42989379b1819c98c5a7109925a1b2f1e4b34c79734ca22aaae30f67d2b6dccde1f6f94e43060dde26212cb8c3fdcd89199dae209a55cfca2f2b8b88846bb0be56f4f84e7aaef8dd37689f63e36e7cfaadf295ac2f578b3ebe6fda7d6e6a15c2be7168523237eb8d150c4acd73647ee05788c32d114147a2f62acb8f5e3c22f2d49a80c1493cbd9aa13ac827f9668d2d44e1650d05aa6bd4edece8a163426960ca2a36acd5219e9b3518132d7f3e1266d3078b9860bb290d946d9929c60524b089bf244f93fd01167129263c4977ad85beb1664be171d8bdf989c710784cda856e988340ba9e45411988cfd3cdbc3ff48b97c92226782b90d26abafcd600ab12f429fcb812f84da1c5582f05a7a008b1a64d8f898bd6586365d0c47e057a9090df435dd771ab6bac2cbb855101b480ebdb61d8184bd48f5fe4b493493ec037648a53bc572289e1b21996aa88fc94c0689407a272acee85655c050d616c3033ab64652853590c31c09ec1f25206cfee9c26b36fe81b7a08db50b0d662a516e0842b380cb44d52783883a51f3d84903f858d3708814e85f70d5b43dd822d40bb155ab26e36a28a24908a34520c30ca9d5d59d6dd4d7a132bf9c435d336b8f75b145364854c2b5003e26392c65ad662df20cd402e8f213d8e104fe037c5914a46602298256418d62317dd48713267597c5c2a9e95d98e084a946f22a48d294dc73cee56902c865e134fb1d6f5f481d2105987c29088278813600404de3b7e902912e7a56bcedf4e33b97dc87b6c3931150109e26a9a117712d8e0fcb44bfc2117e90c49e24815f04ce8bfd8b11d1e7b9c7a6736f6b2139ceae4fc05cf82fa37c6a74a668e2b44378552661d0747e3fef689e5d58890d6c8b08a35465ff44284bc85e453e31efeb414fcd255c877c56a6accf368c82134c9ecaadaed5323b80699e185819146401d51b23606bc563b2871addcb5986030900285785a48810b03a0600bd74c1aa0e5f461e0fb15d87c2933b88de7c54d666e80c7cd2eeb342f36f3f74f0b17e30daf6fb27b2fc95e1542fe704534204e731dd553e7acbc545ab263ee02446553612185a41ce5d2bccb35d36976075fccddd306be846a8204184a9a9ab1caff3c4ae7feaa560c280b5e0abad8e72c85258f12cbe9fb2d6a4cae54cdb2682c4a170bfe475106f8c86bccf8098b1ac2f184e23cc817c55c11336e99a69f6c5f7b26d299d61033c10e2cf104fe27681a1f6076021b1a4eac9b38063622f25fffc3215bfb8a7a6629908dca65b000c40d5fdebc8c307038fc7ea82d309e49e288b5288396610bceaa325205255fb0b547938f21dab95e7209ebcff632835b3c8e9ad79c2e78b69c72587416794212bbc17347558d3cc383dcac5aa45072fbbab7013283d46fecc7818e224188e81dcf15b6fc94ba271904231d543098215746f650a244478005f7eb7e90af820e69e215122d4ee7a7fa6faba9ec94848be9b32b56bfd4e7fba9b3fee47752b6edcfafdd685186262bf9dd4de9e04c4acbdbb4e4009161bae165325b0e9343bce191fec2937a6d34878837aec815cbb2b56cee444d6fae3e204036f2882bd0e66ebba8ae209c48d82e3d123423401218c6a234f69228d6fa1d2205373aad8cbe579cbb13d17ab6fbe4e2ad2fe3ed695cd717be922d166f11215e83258a1d55d061130ef94f37baac27541380091a4c582f273b452219690407068266005b962a45af53247595b1c736f5ed291259c04e347335f6ac932c24925dcba38b79669859c872b834466452a84c18be23c137bdaaf2e5ad9001dc188bc3280c49fd46069d00261222a1e0e0df95caa9af1cfae591ccd496b5c044b299cd20bbcf50218d009e180dd2a0eeaef604d741f9a957d71513c9398b8dc1c61896fe590bfe70800d498a40de685254abaaf7582a14e5c191da8632e091ff06976b03fbdc707d21ddbae978f0c007a05ec179cb52c0ddfeebed8ce9321642f2c5caafb350ca22f52adf4fb4c1464ba92acfa85a1410ea2273cbd8e77c53fa1eb30b84a7043632ad68aa59cd4a34ded78445e2b8d38644571b349f5764927e88d38b13532aaafefc85b77d0bc9709724522639b3ed35cb64ef22de555afee6e57a42dc4e49ecca228ff2de9d3c213a370c419fe89e2c536bf5b876ccd3af70d9a9c9305411b082a2e579c08e31b79a420e57f85cc26262772767ae432bc27a612776d5171b8c5685681896c0080c7fddd7daf8567c92783dd7507400168a173d4ece41ead0cb9a1e8040a9e4fb552c51da142a179fae6d6b82536bc5c25699bc674bbf6651db720feaf662709bb7960f115c9ad6c5b9b37bb849005a76289cba8ca372f78d5bf17d53eafe1803122db86766bd35ecd8846d873dc58dc8705aa7da081d09d5a5d53962f5dfd414e408a7752094415c0e88490908dcacfa914c00e145f09c6aa6b44834a1c8adafb90e28d5acd874777e38f464e34689d5699dcde85138128498704dc79d981675780479b800d06330553ab2964eef7574951475b681ba1435ea175d8ae9f025e6e90339dd38cb143b9a3997228444fc3b59937888214b801dd2720a981ea81437ee2550d78d9f2eb7c221a3f251d7aa29eb1e72d4443698a617eddec97cbfd64ed0eabf4f31c18c916c6f5dfac1b0f23d550bc8ec672e6df7f76be4c886de70b9012db1ad4a890fc2fd543715476a6055be749a1fd52f2d2b3d3287d47cbb1b13df7733d4e6b5ec63916b0895f29791508c2b50489e3cc084d7da5a62fb7df3a8c3924ce0bea6515244b8d6edb67be8c6830ccadd111af74c40f03eb4bf0283b220921fb1350e711f08d0ab17d6b30d370ec34980db326b2e078bdf3e1585e874cae77b4797d36495bb809183026738a95b385500118bdb3fb45cc3069cffe1254c9db2894db38c760289d636ea8a88aec4379aa1fa2eec53f04084b2a2a7d85ca41d2d0a1f92a82782526e664357d6074e783d211f453688a683ab5c6225287676201e5c60fef982ae4fa26648a8c0cf6e98817c5238d5da79e727b3b6203ff81eac4cf108996ad2e8507c0bec93373e2723bfde2373fe8588e61aa70c1a789973e923ff5422e9bd1618cdbddd6b64a71ab969933931cabce0848f3b680b570ec2d2bd5f6805d1ab67e39b1447c0a06487c56e48041f4b5f4d6d979f479831a3f7c1f8e61835fd928603599cc9c0b06055af88bbc8844e1e6c8f72d1e7838a385ece92970f64d5d8b3d0c644a8eb28879560e19c83102113ca5acd283f6fa816d9478708f5a74e440040de8fe26436c0f3fb75bc97c36a7f39114414ceb78bd952a994baaba231e11e1b898201f612d629c0514ab5a0b82b1e3d7e6604ccad98797749946684c32245e3d6bd7afa49400a92e0ac2b97ce1f2c186714aa1a3a61b320c9332cc04eb92f76a259deabd42d628b5a6eb1ce1de51fbf9cd5e88aadb4ab076f1e38ccc894fd8a79f537e683e8260eaea963437069dd8bee9314dc4bfd6e008ec9af35283a287e43a1d25a547715b35b5fe287de065809fc425d2316e2b917fdbc5135fc9cac5354343d2c3324190dac6a12dbf42a126e8b1da02d63b87d4f53de9467c8b82da12a0b12c6fac9cedae63f7037a2a76c3e81679952966717a0354f119aac5ad2a88adab502e068131d3dd534cd0e03fab92e2cb3065cbe194d5a4ef32109969e43a69d99376741970a7c121ce80fe009c0129878e29549177a0bf2686dc0e9abf2cf3b33e8fa731a6df35d879ece44745fbefff868c444030a9a9544e1ab84a365284e0dba1e89e983983fd28d5deb2cf3b0eed278956094448acbcb5de5ad8440420cfc33eca0bc971057abc188bb06e432a00fca857138a21f3cee03bf9404ba7834c03ce54efaef1ce91d7d7803eae38ac30093a1db4cdb496adcb05a592ffae479ba162c9b600dbe744681b0ddb8991377842a49335f08dba54f5f68f29e60217e4a1c02ee6709560ff54b8406585545aa7274d029639edf47ebd4c7a503a9ddc8949f849554edb0816b868dafacab0f07ea4c6ed6d78c0dc516e9140f5dfb6e719ecef21f880db73e08093bfbaee0dc6341da87e5834c13b48238db730929c43ec10502ad095c282ab7692a7ebbbaf7e9c7f378e371c5c6174c858d7786c8012a9c61c33b3eb860c759ec9bc211115f77cbc8eea44e31f9f303221302785530c16a3ae0b9dea4fc5759b561d00db3183f29afc2d1869e99d87995d34651502b25a62203d7efeba9a4880ef7211e5d198dc6630798968070292d2fc435310c27fe2c7629f736ab93ac334e82b22907c9569703de4a014650e654375c46a20da32ee25df616a7da4b7a3c0f60b3fe98ab79c4e3ad77226b86901218448b76254dd6a1b7e543c12a0b862b8681eb8ea0e68f8caae5d200f021e62757de02484dcb3e03ef973cf8b9d8fdf47dca6b121dc077723071cea2655ca5478f94e6891c77e3f10554e559a234ee1148c6e2f6349884d6c54d34f6025ec45523b26b1816b1cfaaf67a7902babaa4aa73e3322df5da04e5adbcde21c065b6f8ae0bd6f0f9a2a636859477821ab6cae744b6245320451617a635d7ce634508d2e44a6a778dd98ab61e2bdebf762f827d6daf4961f2b8083a9a863897e1d5bb662489db8d645f4391ec4ccaf1619744c3c4c89098eb0f6a50ec0d2c6a44ff671da3104b40b70eb3cd5dd44b7752ed84ad17d0d4980851c449e4be94f55f343a0e772e9b09584c2f12a2fd696240becbf642778fd886630bcd0f325647f5dc288041220e1c68e5d4df73e521621df0e9cb896ea3d531733a1eb43c61a61f3fbea00d738820a4e426b4569c9cbe4a6ebe914a176cf70afe50b0459a49c9400d230e5848460e57d4c379e2d42ebfd567dfe3695c2fa3f4dfed750316649e850c6542911e9379f653b60f51d66d630689bc4a68687c7b7eaecb5e141d7efb2c0f05373c85a257686241717751afd494760e7b8a34a935879a34f817079c391e74c0fc6b66b999d075b531ec249122590488d56d7f876f33b549b54e0a6f6c327508974643e02b7901b4f1e36f10cd46d428b95c6d12950e222bed08df3fbf86d20fcba1b504844ee759b0e3ca463c4f99b532d6a31a5915fc2e54a4208c3a4d72d49bdc1facf0b6bbf08e03ce4d07f6e5538f2b682a284ec162dbfc8b55327ec40331635b40f9a0cf9cca068e4105dfbe286143f7fb33f48cd3fd4483eeb6fb322e89ac2de593c57cde1be6745c1eaf4e1396d15169c4ae3ecc887e240db9ae0e4e35b5e215a9974cd543cbb046a3a3680346403275d7d5f2d2f0841d13af034f3f54dd981fb6f194e72dc0cb1df5461b472a788ddac8095a2d3667ca4bb84a43c91d4d2443742ee4cea4dbddc2a879b27385ee58403298d7d041e4ee904ebdcb9b9caf411fcfa78241623d717327588c3d1a67782d80ef5a75e559a824d621bbc4c84a8e6ace9197e95294295f4f66d01f7b1e32cc5b38be121de168aab078066db07734ca271bd3579dea39961ed5f1d0ee25ffe85242a66b450a21e4a544b8786cd5725f5acb4d8b5ed4c6232f0cdf75332abada46eb2cadec84cc543c54d31579d79ee8888fa212bd9f53e91eff9ca1c7390afb101129f4046e0480a7d1ae64c682b8b14c41318b2ac8db6168dd5c583ef10419da6677c15b880eb6d5cf91e93c4f62f6323e6e1b2e8c6ec4f001990a34191d986c366f4a9f6196f7c15173b187b3c72c9d799aa66ecc20efb0b4d76074d267dda478e140eb191115bef03faf5b39ce5a3ffc73ebc77683b6df3ab8f901234c557db2ad2595aba62579fc203650b04bdc8d277830156ea02370b2645df878df4bae00a1bb65137805f7fc237ad08fd19a4fdbdfdbebe0fa69b81dfab3993b5a69765b405f3e23ff0e39d1a0bb48279f27d37221b7fedfee9f1fcb326fbb44c50ce84ac61c435120cb41fc8402b00872d6fd27b0650e0a92e074c014869c6580bf5e4d4cf4755ad292322ced4d7cbfcb09285a76048d066947a23d4337fcb1cc4de14d953bb1bba1696c043b9c536a8950eafb853984f5036c18a0294112c2163e83c769e80748366cce9c17ef3a9114a2cff35268a33639e24f8ac35a2ec47bf0b106928784c2aec371ff94191d7ee808010bd87b390ee897689758a2d3ff3ccfcb849e12549f3859c92811a8ea2196f8ade731e74599dd7aba9284a4714e870c0aaeea8da4d1bb5fc15dfb430fceb40f5d61faf548377221120b1eb5af8a60c5ec84701e118a1804c355571cc4d3a314c38862b4217a802082b14fe5b51d9215b40392edf27f02f334110926bf317e759dc62f1aea88f9cb9508280aac9e1c9db8f376dc3df476214d724323b55418525125f441f692ba92f80b5fcb76aacb81610204f292fd9647f3bc918bb72685b5f9b29e9563da56f53be0b0f6f1b9948d120bb38a6fe79eef30887c9af47ffaeae811aa5a25933377ea90dd97d0aae98283cfbe1c16efb5f3171f08b7496481b538a079e3ed6bd0df5a72467288764d38dd7dbdb3cb19c8a255c41e8074eed084d7cf5c5a541873f5afb5cc1aabd0756420eabeb2804f8c6ccf0ae64a5f72dde4e73c6338cc2cf9859e369599971739b76996fdae4494b2489d7e4734808ddaf007c1a9087f0988c1b1fde12647a5c671637e5dbb9683bdad5edec0b7fb37a9b00fa2ba6140542d09f60d8cd5e812ceac5e3e141442fb061541170e8742112f3e6bebc6f48784005050cbeaa683bd961bbc849b2b405d9aeccc1fd281b39d317527065609da7add61d466339dd31f520c752c8743a6c2cd574d20fd48260a4d0d7c3877a41adf25dc096ceb31416cc5d9fb4b546d26520fda27ee49bc158e308012562b6106b56966844efe5f9f8f40d56bcf1f1094e2f8788bc7cd77ecb3e109d63c971ee9f817d8e3844b4f59865e7a420f5d2ca924663a49e35e6809fce938e6e2bbe5096cf654c3096b4c4fb9a087eeb865cecd5b7baa0a349659e8d3e7405391ac9965f2e425930504b0b75f54605d038582e03d8e888c667c06b4dd2f5b0320d535b7f2555bb94ec36acaece52c090d557a6dad1da4513ca1961da8f01b7358076e99b430b99639f203203ead61d7b8feec3b9ce54455118f13c19830d66ca8e78d6b272248af7fed1131c98ed9bc94142e488891c480d9bb40e33cc96e9db2b7a25e3689690ed3d19d8a7049305c46172fc44173f6bc94eac4e8c1e4563fb38161107348e2a2a42602902b5450b50ea8f5b44fedc2360c4c71ba1c356445d076d7c77d03c52fa1575c31614e3e762ba57c351a2e758f133429f2ffac0ab4680a7a66eff4dd74430d76b63c14387b99219e50a5e95c9202344fd0294664a48ba09ed4357d5378781af9b84fc282b07110d37e16dc5823325a169b12be827318e76a01b1bd1f281e6cbee7976c5fea660c685f0eb58a580f097170cc9d2a63497ad74888f58dfe9c21353b98b317657df36e213a5009f43ea992c2736d7e1e9be33ef4a7d51d434af7e7bef7046bf64099ed536c6d8eb6587e4d83c19d67acb686e3ecd0fe798729a5373923c41e71ba553887a1c6a1185f60aeb29d11db8bd01f30f37ca40dc0754315596edfd5a61c2c7688c585d939372073d204a9123bfab6c5c0790d73b2164a90ebcd69ea20631d34cad019e42918536d9fbf32c46d11516f4dec521399616688c8a67cda280f29198428166481d08cfb227aa69d643c187020adae1e4693421703ec0f8421a94952a337f7d7e6076416e41de25df29dff2a518475704d9ec4b7d38c17f4f9d6203de87352b9a55f83a998f640d3a1b25217f5870f07305de27b43fd91070491793ef9870c94064c36e22e1a6fd9953d35a11dac6542083ca3c6d3a0eee3ec0e169b05e8c3c43c97b9242126490731326e81c6e2fa685e9a90b2841805285c19d683a0d39ea918d6e686aef6aaf1c3204743f5f3c2f9050c48d8be1d897783107db2076e39e327b75e2740787f00d1bc035dd18170251bdada8b1ddcc24130cb70cb3b22d8321cf44edcb9919241d969c8d7219abc5de0e4a4e37b698bd1d5037c0e5cfd146083c06d646d33a47781c82d66686d4b633caeb37d759ba340f5ef60c964e6d9e43815535403ab225e23915743e8c064264cce64949fdb22d0120af61e7fda27453282c11ce06eb531d5880eb9cd118157f9b62179c4d2800d005e5d1bb21521101568cd3670f75f2f833c166600e552e1cac29fb2876981b89fc99e5b27c9abac0368c20bdc9e818105d0e2d284cfeebbd49158ed1b30d214614a10ef290cb76edd97dae64711a02017550988079ae3377ee0c59b4afa0b4b72919fa176d82b4194557b8173c5f36e8760bec712babf45cc52ecabb94d717b1ce0f41727528f3e86cd3d6c381420ffcf088c12742cd9d5fde182e1e0e0c668ace0cfd4ba42ab29efe73857d69fc99ec4ff3d479cb76d82a8e8c3a4ac093a0cdba834fbf5528a8fb52d52678af014267e4f98feb38f3a87126c2bf90fe6e71a313084b7b2761b3223040b8b98646082f76d696cf758a683029573d546aa52807b83dd3b57116d992067c37cebb2b37bbb080d7d634cc741c9fd05c78fa2a89b2945fa2436ade1cc494edd2dc03a752fd01db153870722be02cca3905b8db7f4e512a16950940d73e28cd0150242bdc2b75d61477d2722c60ab7c66053cb5605bc3ad9eb35757cbf00a6970048662a68716cfcc6a58bd07bcb74f192a72201006105b68d637b420f78d93a042e61b44f876680b0dd95622274b96e15e7a816ae8dc6c1236c87d7aa97700e62788497280a3c67417c975697b088a2193cf0d68c379f2f91ec558f05454bb969dc3c310c13cd82276a2f39c07e92a51ac37c0b34683fc4540fa9641017a36184c78f363aa7e025c3fdeca6f86c6884a6eb91324589c4c3e82c1d5099bdf0db171fc8ac9b7aca53dbaaa728ff373cb3f1271c60649d18947478a3faf171459e6d9e29ae30efd1881ba11ad4b40e1382e6f6e40f61295a234108405ab7a7f86110ab2034acbe5aaaa438dbae106024fce4f7f7786db9ed7f2b3c84af715450ba54b00af6f142d9e1cb10635ca29045721ac32e1086de566cb4508c415963c68a63fd02dcadc0052edbcb65fe1a0365cd7d20a625275d774f52fb3e41537415596972ed4ee028dda7c0b175ff4dca5a1409d64f0c4574c2b0149c1a5db78c3a525d8cd40e96d93b724d20850ba3d3bd4cd6bed1e7e0cc488e998ef95bc198b6952747849d27e5dbc206f6c010aa46c96692c53a012e295c3938899cdf8c8af255fe97f2fc023f386d48502a8671736be7c57cd3eaf1af960f15279a5018e0f08f5f202658625ee1edd4d9abe0bc59ab7e83889240d911775e9ec63acdb22b098c8d45e7536a71fbe09ae770f4d59be80f168942bb49fce5d6836f90ebc2d5b54f99906a83c259fbefaccd67b6375fee1023080b9b549c91ca77c6af4d39ce843051c4a1cd31d10b6bcc1a8f268e6851c9814e7c687436864572986c2fbd3b5b1f116dda4b17d4a1b4a378091ea3b3ac70b3d299369fa57922879a49009b08b651b8fa71e9680e2f560091a165853b9b43d716229038a0372da5769d00d02b0b1479cecb043bb301cc7bded7a187011802547f4309b63067f791d1113395b9b9b99da6fbcbec1bb24fa2478971e05ba967ab5272d427b581e8a413e98a17a06fe87a6a5cfe5aabd7a71401f6be04af3372cae7010757f9bf277de808220650aa45f62ea993a3000d4a3d0d6618187612e920077142d950bbf2510a35a54d5dd9d207868c5f0dda431b72852510bfae94a80ab9dca41203ec23ab44888a7ac11f516e8bea7b0299bb981f163f11ce2f8a046be61778416731f62913f5cf50af76b62c8090b9d6779e4df4ae2a04bff09f800905334b81cde80e8e9a8c4f7dd30b0c87c341c3d7c12803474a830dc447b59be4acf61be1383e0588c182e29cc1c3432c869d0e254159ce84c607f4336c7043a47ae6f0462d9797bbbc293f32bc03d7cd2059547db335cdf6f745daff71e70f20efd91b5cedf7cfc05787c77be77bb2d904f7e97d167bf1d83c975a5bee6fe303d598080a333b7d40db10873d5cc68b9beb34a3b7ccb91ef03ff6979b8e1ebf5834b83d91c594ab7326b8cf2b399fce014d0a83125216901d24d1a5e0c33e2ebe79501fc88b39e3982f765350268ee12580bbb5a559cadd8da0374942bfde13222398426cfcd7b7abc8646325b6028c1e667e39596d7e5a2712a3213fcae6920d07a7593fde33138aa021ef3a9ca9f59f0ee1ff165f5052f004e2eafeacf1d610454fcfbe43c5945a294e0726d9a678b7eecee95ed0f51bbac5ec7f017c30268b95ccb146f2a995b16b8415235319d824924384ed11bd4d75eea3db5a8cc08c22d9327fe28b99bcf13a5dfa370210a1e09666b7db2e1056b3a654c684661cc7bae30986f92c203108260466275cc693c230485cf769c0d2b11ab04dd1dd7f3b590363105bc3f17883d049ed119e736aa1101fad9288803fda692fd8241249d4d80914b300af2a1ecd231c7dbe365cd9aa36aadbdfa94dd937c641d5a367de1917dc6f9a0f43d3b9779af3379d7a196cdc11d9d37cb75ecc8c208a7dbff091fa0293a334d7513d907f747d68e321ae7e4d7b12171cedb109df699867857bb4a71a4dd02c9645159f8269aff7661ce40df43b013145ecd5259d83f5b6099f6a28357e1286c0e758680a30986c8b774afb28d4128e6ee7d7377c5d9f60ad1f3205c30fba2ab27606d40a194e301243db9cfcacae740c432061c5b2262f2860500eed8496e4ef84d94b02559f47f8204c5282ebb7482b413805d94857ceafa087143f95dc05581dd91967465383f06e375ebc30f00979fb27023ae876ec5675ad66a3b05d16b096d7392579f6f846a6491c5a9c4cc4fda4f31bfad20fca0de449cd60a2f03dbb5478bd63627b9c60f6f88edc00d512481a49a5ba39cd9ae08ced7764605a0bebfa29073c517adc8e9a13c047e69572be7863dca8b8964ecaf73320ef0e9fff82bef62020c9d35500f644f43522f583f1c6c1f3960f8116d00250f7262e70688847d2f0294509ba6d20a8558d382279765aecc9bdb516fc7a8bb965eb916eef6350a3d4e75acd3ab237483dcdfeefadba5fae57f12490997e4c5029b60f013c663257fd032b765d4131061fc6dd5e0a65e6822a79e077e965671c3daf3364d70ccd386fa0e1be5d97b313e0e6d41e8b0d988f413566abc72614c4bc2a5a6e0b19ba421e4949982001ce69475c00951b9f47bcb671ec865e07e9f61c5d6a7b06df818293df556f7211e414830abf29629e541138aa642b3cd3f21e519011de041b17bb229f14b2aeba02f2f7a99d2f95b5fca350fd647715ebbd09906c90d8b4f6e22e27cef90870542f29e30b3c82345957bd6a5e7c1583a766b284ea86d38f634143f065890cb02219772272ce8ad748f049f9f65903d497f41b6ce7be5fd86a7ebfb4b7f87e19417a8282388559b6d1b535bdb46d34c5ad4f08ef53cd9c1d33f5f77916bbe92681b5c0f8fc9a12940a05c394170418d8cd79f481faf1411bc8d80010ee332d58760a88f56ccfa3da69c44bd853634b58d4de50a2b315999c737bd4e3a03b5f959498583abfa140e70c4d77b646ec339af6645e8adbf608a92c9a73a08efda6961951bb607662d75d4a4bae1e3657e076d95a6a2cbd984ecde5216d1febf9dafb59c8bb8e0e5bcaa4b65fceb61ccf7958fb16d48c3764744419116811fca9c8059862d1824ab299e59e12021a3c94cc4127d02a2f774a8e54e0a5d92e5f078b5fe2e9fed4d561ca15f3da8e86b260be74e3b577a5948e43fe899e70928d0c61fc833d7c86a5d557e7f7f55a0d1193c6a01e5163ca0ffb7b5eb13d6a935ceeaf5f7724e3e2c37a3dcd38333e35c6c59b926f89310a6ce5e92d3d5f0e168db06efab8705b71357ef23082b1fd643eb0defdb968c32d1c8963599f696884b86985637def91e09e524cfe27ae23d9a34130264079c1187a491f7c405d025ce487fd4a0bbaa8befcb885c7e5d0118eb6a772a290a7cda53d4a9b70006f5f14e56437cddc36b795a5585e4e125bc8fee6b1554a581c53abcfdfe2d0ab2fc841add4c7f022484cf397ce0b59a618985ec55ce8a7481942ba7179d941c61c0fb318690429541bd085f69811f013b99e09de910771e423f6cdb49802b4a94e57c0a005fcea1c50db0ff64b5233e7ba73b8c9552947cef4ae819ff5c05b71417178f2f4cd99ed95c4c67428b0eb41dc7c58aa3772a2befbaeec057a0e9851309e65a73ec4d35e53e4df7d512cfca2b1caecafa787c844a3957fb5985555664e6ddad152f79c51d903f565902517b6c16669c757e5deb80f3a11ad5bc7ff6f20490f73879b4809938d914a175de0b465eba62d4a693b5dd68a365d03ba73ba5d453fa68ea6aad08619f068c7bcae2c333e995c737814e34d98bdf1070162287208b54a50918b33f7610961c1fcdf8f2986091f8e339f85239505cc4af8dfc8fa8aed5bda423032007d2d1a2752f4f085e0f02673f02a5d0b6a6413fd92a00bbae0b499b5ccc019bb2e9d7d279a71b372e8b8126589d67cae21f61d50a368ddaf7c83daf77689eaec74de7787a9aa533458a6505c40ba66458e9e1c94894090db16ed97d82afba63f17b8e75633cd9471e2d646932cff8bca8c773b0b43f8a7ac0458d9f7efd17c3b8a40298e6fc70576d583972defd116c1ed9cc5b27440e17634e6c0d7f281aa523677827b70d2e927433ee2073a00a0cb4e7dcefa83668af4bbdfb8143919f59d88478191776bdc8d32b2577a58800b9edc0b3a4efb39d337cda2c1eeb0b7b8d61c8bebf4365d076a781210a1695cd54d980100b457e9f1e4da3fa2f3d23b145880e7e637d3f80cf0a7fe7e72191a6e3879dbaa06bbda593a961c7876548da1953f81cd66757a52db28c5b338ca208a71b226dae5f337a0987f5bce2c78a10681b61eaad4dc2de3045fc84b60ea4932c36dff9cbd363d5ce1265022a53e6de38ac02f2fc00a53532cec663d09d31b414873542c762e4ecafb617976b785c4a860e829671e6f029576933f2c7ab304118d997611e781e4be4dadba2dbc4f5b8930efaa4840a62838a6a8a0f10575362d94c4578ffc9a91fc5ee1013b45e26504327e088e38596557e7b3481fdc0da616f0b4c124e56c089908d3dfc2402daea27ab0fd56b2195dabb27508c331dc538137c42014dcbc3d4310dcf9b8a331e91d0ddfcb2218ad514e8a2a50953a2e87a06448746ef98addbf5f43c2150dd9514ba83d4e4a737c947e181caac7782525226516d9b99cd7a51cd90cb588a0995b4941e72fb263f118d918b37e4b4f530123c503be875fd4c8549d6fff46f9d6dc1f534165009ca6b2fab080c2287d9b996f2cd0dc9f6c8a07476e2c1a8e4fc9e489abf968ced81f18007cec76e49df515fd01f93f65be6f91901c301906fe4dac66bec0ab149ca85295db7e9e989212aef119471e2c758037d948d576f6ab9ca5f022bc8e5d1b4d11fb37044b9616dc140d9005a05e736965d5a63b331fd12609d787aa8e7d9806fc32b4bd3e565c10e615a28c1c0fe3764502c8130d2020bb7dcac0d41017db4e4bc4fee457f9688e37917c3c7ee6dabc3003d26ed055fec36ac0e99c2c9159bb4d14691afcc8b089058d18382bd3f68a739f8308ecc99bb4f1e14d3af8c3aebf27c9232f1a24c7bc17fd3d615f4cd24d45af951924455b750afa60c063c5ab28f6421ba9906aaa421a90b55990c2de3af16074adcd4ece91f76d01e143531b48f4b9932580e29a5c8b9c4e052b2101035af488dcd4864f431cd8014b72dfebbf908a0d88cfbe5977faa2888c0fbcce4edef11fe86bb9d8cadfefd3c5d0f820c4e2bccf50f3c74cc584b84396e0541bc0f4c82fca1dc17887ff0153bcf7ffda159cd6c6cbb8bdea62f5f09344816f13339f5241ae17589d8b87999c0bd86cd4b4567a933d766cd8bb581511e7d444676a83a21ca747553649a8f079d4459ada7b67abebbd815accc11080b01b3f42b528dff80c923fc0d173e514662b6f4b68d34d8a02217b9339504dacddfc88f4e7cfcfc84afcb3eb075e950300600bfd611a23ebf2a69fd835a6ff9cc5f0158b02733ec9d8d537a936278f71b1edf13e33f80145cc9faf3f3e099e77dac0d85a02f1a932b6da7ae64367d9fb0ae57ed0bedb9b0c0f7b2cbefe29fd30405646c9ad6f6ca354a41f0a10e73366e69a9dc474bce1a53b8540f3c37ae4e043dec51f58c4d9853861b21f165fb04c95d27c98b10d497975c3cb59124781c5fabd90101c8427cc0f983cfb4d37813e38722a57c4fd0d069bc2082baf157d6e4d8a7692bc51865e269082ca7fa1f0a3be1afefa50515776953f854aff5f57b54e107a2925cb9a8960ba33f68e6bb3ce07b51dc9387fd6d84e93ed6eadf84cc4d62e6b1e7efa26767263ab4e41080b89a274c9cbaeb4ab2576a75a9a6832984dad1da705e1082c871aae64d93e044e653e9625a42c7e73cbd838165bb897b1104ded80956e5bf7b18c880064a5b4f793ab91c2f83b9dc3ef1ca4bb94dd84bae46848a114d87cf91510316dda96800e9f4aa5c2b10a613b0cfeb6e769fd8cb165b5bc2d2f51ed8b404754952887e565c8a34ab49743c60d96eda23cca8328d416748e1d7254d3e2098787c9d2b057bbae475857ae7f09d597d9d80dc5281ab77838361264e34d1ba9ea3287074487fde80c5ed535470bcf115c09596c67711832a0199f197f55ac72847e0c92efe6564d314f34700597cbc89afe36cad4343009bcb0dc047d1e4b0b75a4137846cfd72f64aff92b0d076a8a4fc7d4416540afd207a45580fe6f25d35934d07370224cc8a70967d59effae738d31834dd6be8ed28e85f76df0d9898207287bff1f83106b85f00fb327aa7654e83d1f1638be1dfc4e4cfe06d326624a256ef72540fe049d2c16aceb5de0af9c2ada93235db44ec2f199b23a3017c134a62a10d41828f50840a30d0bbff90caa86ff93b6491e395c52b06b1c6df28d227b5429629bc153c56ee4a751aa8012a020282114a1e514ab4059907329a3b4e3185a7a539d200421261891a6449bb46e2cd423322e1a94432f37ffdcd9d13cf26423492106440977c8d410bcf3a50884ca3e373292c89b7a68640894dd371a75ebfcb95df9845a7880788b54a8136207ebecfbca413e9900bdec6f5fb3896118ec4d62542bfb82cdedf3bf4f2db4a1d642e007f0723ccab016ef286386c37f723478c517261ede549a027a09da95eb25465be89956f169e89fe15dd11819cbd79ed70b1ac7d75bd14df8f11f09f0b8dbcd3cf851e15c708526846a3956296d96e95a702d90c1925e75d314cbe84154cab84cb320271923a74aa4076786e346b9983a605a42684e8c7b10029a72ce7259d38c6cfbaceb6521988d6362bcb60fac9ee6589ad57ad632a88e19e8f8d99badb7f7adcfd09791f64434d880e833188c304681a29bf58683da571aad5ddebd4334534733717ea391873d36521528732e32946f4bcd9d924cc3b051d235c7519fe31dab9a70e5ea2912d36a0d127935f8d1dc02d7c8bdda291dd50cea4728b0cb58e73049e31667384f820ec57bcab0bb88227d32786b2d861688d8bfc548804ee6226c50763e0d6cb84bb8828b14f5e78caa596b0b1168177fb0de60949ed52d5e15369046aca713afeeb0f6ec47fa6a7ef9c36f5d09b0194797a65f799aad5188a0b8dac6441659bf10c3eca5adc13b717ebf32fe7f06a508f0004c5c663675eb897192cccc0536f261c22223a41364d80a57b0e868dce3f48217632c965407d04af0c740604882aa2b224849be14a3ed35855a504200ffd1619a459a680d414d3b8243f1c83eb495bb8d625072baee2ae093f2a79ae5d5226ed97e52a9176e21953502b6e8b83d94ec78c5cd0aebb6efcddb551e4ee992368f626187f49956d77d624231fff7c3e80017f4432267050b6822295461540a6259476719a53f1cb636489fb50d1356dc739909405711dcbb60322402d25642ba134e24b10c20800e7025df19717155ccb6fa5daa940bb988e6219c2f2928b1aaee9c2d317e3d5fb767c0c82cbc2b4efee16e17984eb0240723fae9911451305520018e3f4fa7cd999a2a4a5e8905974073f990219e126294bfe8b49de3b461ee1910fb80716dc856b98e37477a5b6b4221c5706d26f2a7d955a5b2611ec8193da577240a5aa3449b3a4b57aa2b77648b10356066ab6393905220bd9332aba5bf692be4bc00d71f050f1730c97e203338495f4c6c3d6952c497e1edb37006067cf94bf21737c40192bf6508ecae7372a9217df7087a296bf811da075cfbc6ec71a5780e458b7bc5d32e62a28f0970872583a920a93787dfd6179a1d72afaeb5d96b935b8bb053cf0e6fa18d4462bd9ae7621eb47161f3f1590bdb530bb4b78581278881a91e61c0e91889131b03bfc2b409703c703c5f57767491ed2e8c9eb6c1e7cceaa96b146628902e26b132e7f496d781c687793ca878aa415d3398b9926e7f527c0faa9bc5179725045fa73602cbb028806097e61bf3adbb7380c8f723c402d9390603aa79554d1572d0be434154074e79d5442dd1c0f3cf0181400b16e169f44c5fcb6950200e2a9eb2d08591af44b06be1e27c083d3e0e425a5db915df9678cc3212893b121ccf8961082f7c0bbf552c9d85741f242293c9681329d29c6d3d6095e1cc8292b2c8dd4ba4ca8c044411360f81f7fe2d975c8ab1e41d67de62c401ab08f6108a0daaa09a9b455a31705ccf43cdc56a583ab7c1f935cf75baafc4b5fcdadac0f813feb6c48df98a33516de9b3344c0287a6ad49d7de1a13b57c0289cb76ea7e6ed39dc19053ba7081d1c750f590c7109b508f2f22fae4ac701b6a766c991201617c9c7aecd5e6ad14debc57997afe4b0df38e8b954cd8c4ccb30b43fc2fd8ca438a081496e7e7675f1d93e4d9193d10b1906a65866a916cde34367fcff0c4f8056a97c3e3fe0a7cefe98a1c22025e41a316a728d2e4c6142989ebb203aaf1899451fa2081e2182d9929f03446a817452129adc8a2f8db70cff744f68f278e4d2b6980c854d9f290f4be00602cc431de2d153cf28cf50823f5465491344eff62f79c822b460f23ff8a7db2953e051ad99fb9c5da6f8af4a5698645415fe7e1d65cfacfd44a4989358a135b8f08ac335c1a87cd41e912575852d95df09bc469e24c976cb287c618b5674238413dd9791010c7dd5940ee7182ddf73f20763d1f5fd8d21a00e61622f9cff3617686b22a9bdcc14b08d5b2fb691a98bdee5588655df67281e9d95cc83920eb1c0c2aa535af8d6f0cd097239490da3d0af7e3ef3ba9e9b71d37b677262d24d3157c6cfe20d0da51978ad5005236e8d27311c0283af985994dfd38aeb1029ab3f66af6c34ffea292c812b8864114853271283cc97a63fc3334e0ceb1bc05b546443163f32499b409133de7f27bef111c83dae0615a2f47a9400506795903a4b031cb473089f22a8d03f530e5901c590e4a2eb1978e2f5e08940edfb13b82bcb39d76b41296499471553abd5bd894f63012559da1bd83dd8954ef801f1655843aaa35a1a17416b6bd8b9e5f789e8c6a55c04baa9f0a167e35e1e08d53418c03a7d4291590fb0b28a0133136328cb1e6d638bedb3488e2f9ae99987727a698b29a0197693302eff8174126c900f6e7ea6139af60c484d76043b70cf06e5588a397c3b930c3c0f1625a97bdaaf0c1e04b05742322386ea08707bf4067d30bb83286f54044a40b32a9ac0c9ef7f6efe9ba214983a7a950b4ec382ba93dcee089f759b113287336c76395b5e07f69e2927bc43975c74c0400294ce50e69d0a63e673d8b4d692aeb9e00e4a4b03b5685e24eabb01bcdb4a40161a267f104120d58e1f55c3b22f229208de8d29e7ed13d47fbd0d68948a485b77556f41d2745e98334cb06f0c7e9d5deaa1f16835fb15013ee66ed8c9784708611b6531505f3598cd505ffb471e6a73a5a8566d53f0c02851922b039213f61ab4b63e6f7bbe55910ce623541dbcd4305edaad5919008507917d2c433b5d8d3d4aa80ab975194388f5522e8c9fd2d043b6d8d046f20a10c51f31c6946d4748e26f9108f78c38b5fb3b11e112229f486f103908871520a88d9c05a58c9ebade2dec5fc911e21ba9ac9f294e65bd9b5497b5609ac28ca66eb1a40e878d63fa8a00fdfb74add68eb29a79d3f4e7cc8c105f1a8476ee507ef5864aee2a5a2d8928aca7ea56a4294c0052655cc8f215170f8f7dd0607b15894421c166c68960b95706dedb30c9252aad94ac002c6ac3ef0d73f3041e1acd42c2c8143e79ef0a5849ff6d067fa798ae103fd39d173b6957627d10984363506d875a3c1b00248668337368f152e0bdc5191f937e22f0fc9349b315e97457859056f69431e80680c05274bacc1d2c19f49013a8442c128faee64b9065875f8f571cc9e0164ba7e3a606324e8a14b8379aff68b569ff4336dae7ae29ceb73d00dd1dbc81953855c58a62b6fef709eb8076241ea616111f400d9f400fe332dd4d20b9b5179d88a82eff0b1a5269e39bc9b850140c21042d13019982ae7d31ad13db299e2e78ef2dbdac634ccbdf1a510e87e71294a0c39895d515ae703b73bf84f06deec5e752032cc054533928e874833d864dfea1c75998a73d48f000d7ac705456c262294beb557d57cde94cb7d3e82f5837343dd05bee6ccf39694cfdb0a782b05dc93bdac3448a446626cf40a04002c26bb118097f298e9aa60820405b9d4ef6fafd5707b68671cd65d12db432af5d45e5fdd4388d96d710124a2001be2c11b4f0a32d979489b782146704e9a7ec95a279d27062452ca7444f6d5ea46df4bc90edad99f7b3af9ea9e4eaeda3b653a1b099653815bfe1d2f593316bfdab0469b93129ac21b9825fa3010c74dc7c36aaf3d5d3deeb31a8ec912b426ac75e424a6098d0439cd674273749c8599d01e8d33452634e0e24c5e71a08062e3240a678cd89806fbb0a479a895f4f16c4a95ae0313b93892a6f703f5bbfd7696b92ac06135a0ee91a821d270ac205737044b48aef1451e6525f68c5e2024756a1633d6d2cac3c66e244be3debd9c1949381524ebf8915d8b3405de8a7d2bc1c573188c267749d71a6f045c67c00cc57acc55148ea7059ab254eb14c08766238c4a588ab09f95caeeefb1fa555aed759b7fb62c5faabf23d8860e68f3d1450ff0a83832d4c5402203345ea761896f490ed24b58c228d4af11a1250bb88542ef0c305ae6325debf07e8d8a074cdbb56a7fdf1b7f655e1f0bbda2a5dbed64ec787767bbd7a192218e202383b3a736040170e83e891ada255d5ba1f9e39214817601bac645cfdb598dd84202c455c90f491a6b10cadd268e6b6183b62bb0f0c81c1b4ed2e2064316fd191f181fde8fda82cd61a1d27e03a052f125ee6177ee5abdab4558c8f4e57e2d4afbff0e7ff686cf4248163ad2e4a47dc6104f99d2e3a97eff62e34b74e6dfc47f7418b097601686e43c52293810174e8c858926d3259adcb75eda3168100af1baaea16be08266665b48ed99aaca244640494b8818f01d767485fd1eda8a4b8eaeb5083f4380989f6c2f9bb6c3f8925f0e845d3b24b97685cb69c8845ffd3e4b1a6eb302d91d07d7a4f503eb00ad69b75e417c565f9b47a3292ec1fcfabd2e288a80f6703eb834631d424f3168456c8ddd535d184cd668787c418225fdfb9c2c1edc069b882d2fd03e4bb5a9b85362ce88f520468b0235b448f638b90ed991a9523d4e6ff00b15554c0e4c505b4a6dbce95e27f42469bdb476e740a5da3189aa567c55c92d05da2f4c1a0adf3b5d977d083c1aeb6df926c95567180a5e25e6d1954158b31adeeaca0e0b7392a5535a964e72c069ee44186f1065b10d65fb74e196df29f867cf75f79a5a067022195e1ca007a846db44af3deec3f0106c9ca05e54479d7c2cbfda54efdc31f85eaf66a5cab7425f5b61c14bb00fc707a645da69ee4674c545a85c82661074183f1cd807ff8a9ac46ad117310aeebf27d511bfba6018333008c91518e6a001d5b54b34fce77c71b67ca13c8f50e931de97a21c31999ac5538f8984e8515e309af9fde1a566d591390a469f5f1d2bf5a4b1099192450d53c18ea8a89d48d2675fc886b83b2afc0b4256788a013bb34a6969ffc7927f25cb2ca7e09b5d8eb78d84756e61da475795f4d8e1d3338cd441be9badc1c9ac5f8c86998adfa3c2283b32024ec65c601bacc5055a0f07ba4b07099ebd5121490e068c85020585e413ae6c31bac8584f7006a90813fa5090995b091b8a5c0a909a645c8c80c37d494ed21a1c1a8ec271b260cdcfab0d90611482c1ae74a4c62b379227ca9f10fb8786205b1a6ea7d941e059bff0cd7ab998a9e7269909df92e85d0652a7eec2f3d6c44d3935fe2c8bcaa1be65c4acfa6f5290ad6f5472260cda8eba1b93c9fc933f87025ee30af54df1dc6184aa4b001719d9161db9af2de8ac6a4b8b9dc2828d8bda133742766a5347920f298ba13a089e749b70322024fe5bf2b0e53d0ba59a328dcee58abc744149196369a802405060453d29f90463855619b2e257562e3a0ea96b11774122a0c22bce42c4c11bb50fcb3c20fdf7f2ea8327ecad0f0f427e466cd7a265455b6b9c2239868c7cf69ff94001ed633850263cffd0499c44fa958ce9959451fb991a3365c34237a02ec1fe7a58b31caab0ee4a722eda265a1f34207561cf3d34982c3b0a6afca838c9cb279d357c2025a5a9c6148084d1f9a50cf4275d0cd1586ef585d1dd852a31a3016a8c955fcac3e2993f0e1cf9fb9743cd45dde50badf9eb96a41f1650faa5f67a3b79f91405b2d55e66df296b8c017e40b6153df61f626bbd6d5ba7e8d6c52cb77dfab46cd6779f52b8c0d2ca1154004be817ec8185d865784c7c81e9dc5def47e9df7a5481d0b8f2ac990442d3a8367176db6c6aa730ad842fdd493194233961863290f3634af42cb51b56a812300db443290e23c6d0285c8a1eb0a9e870ac4391f470ed0c6b5b8a4ec95640b3821a02ef537dcf7ba6a4f6701d5810203521effa5dbdabdf3f7bc03579ef4828a7356259b3875ab691ac23ba6b12f11c1c4dd6ab24b61a0f0406f64d012e521d0904f0d553beed5231eb8fb66c6f1aa5a3f3445eff814e098357c300d98f9f996b50768dc73d81ed6e2f433243298aab37131bcaf3aa89d7a4e3cc60fd3c80192d3ba459d5f663a41f7ab17303f1d5efed2bdfe3c7b3e184fd60a843e71475d664aa657ea8374c90b4c8129ed138ac348745827000e3020aa45e6f39ed9141a9e7cd8c8ea2050bec39602e5a5ff79d5f848318d5cab3758a0b16d81bf8782c1b54408881dad9b74a4c23d6e44ecf6799f2b89a249269c6784f3010147fdf1f1a2900b13c6fcd743390a7f52ef4705e0d31598e03779532c7d9a4f47fde703db69fb3e73e0a852a906184714c39a2c3079ba528609ac01e65e21549bebaaa726cf520c7bdb43f24b0067e2f8a01d68ea839d298930b4cd4451a9cb9f6dabb9c0b62b76a285a06e448215bac4cf409823be1be59c7b6534348f97554a1abefedba010de3488617dce12a3f9b9d470f8dd2e1b9b7db67bd9dad1ff2f86c254aa6bc71f8bb672232d0d9b7a286e4d2166ac5bc7247273632225f6e11d29620b4e342ac706fc08d7db36dc3a58fd0e25c37a96ece6ef2f14f5bde88bcc3e1b13880ddcc90b9d6daa1083c3faf5d70c5c12e667a34e2e2f1ae59f1431f99604a3b23f67c8eaff6bd834c7f4be683d5a0ea9613aeb1a415c993cfd4120da3fe06d8632d20007fbf4f352bb03dc3e33b69c5a568ec40b727fae661633ece8216af0892df8076914491f39fa3f2139dc988898a6d9af3e3c1f959d455672c59a850218531189aa93a79c5e4177402d84c53b9e7e92695f811b18683273291ca13fc6313c6f3105245bf485836313016f2ff43ff96788455af64739ac3a1cfb2228149f664b33078ff82e4758b5b6de6da75f19b21ee5509b9b1e51af1d3b02fc2ec91d4f5a66d3a23e7d7aacba41cf894de57006859c4a0f771824cb1fc336fa5c5e6d38a75d22b455f2cd097814fb6fbde7d2f4e77e20f2993523b0e23b7fabe5b2eaedb51a05327439af89837018f52fbe6861a16665f25c41e72a5f1c2b4ec2c83e4ab29b6be316c3a52b82d4cc2abc33816892ff746711fe8a107e93a59c2fc9fcf2f3f7443aa748070a8a8576f66aae94a3b0ef5a4557eed4ce9ecee40827f577216d4187a551d9b7fedf4a91087db60e836150c994550c8b95eb74afcbe607c744b06496ee64c7514fa7d791d5fe9dd51d78312db1aabe722e92d944d3d249752f8117dd7d592c2a0b3f44fbb7b885b06f5355de47961d4942208871c71956af4e8cdb9327b7012548abca628b2372d2134f82bc2b20df1c52acbeed3caa0769ed3ae8c7c6130654ca29fdfeeaa82ffad3507e40af95376fcb9d438440a9be758b0c0b1b873762a97f1b9a31b1cec31c3c979ea5cdb99a45b0fc602e3e7adfd64f2c05059a50c98b5be04992e3e8e7418e389d17a628066658b2e6e21384ade1025ca9efe121c4072c70b2c0d71023252592ba0390cca29c309b135626a9facfaa669fb4be131e0d7f25ad77717313d035cc4d6506a4a6833a36b6abf12297b3cac89c2ca54d33677621beeb4628f0de67041616271bb9991d7765c51b4525902daa616917e3023651587341ea6bbbbcc0aab631cb8ae89aca443027b2dda67cab1ea47c88772357930f3ae1cbe161f7f92a68478fd30cc93a3e14f7ef88af88aa3478ede48661aba241970b92e847ef9825ea251ef5c7dcb7004fd15385241e2a0a633f9faa1e6ce3206e50f04b9872fa6cb8cb810598a41b791df2908269edf3de9af8e317acb2865e17614bac237a036828722fd5c02e0c51dfb6e998b10ad179ac76329c8fc1144f7c24bc1382ab247c20a79d189a65b8e4afb4caa662dfa0f3a4b8bdd27a0e4f05357921c9dab5830bdc98a38ab5233368152411879229b82d4c676a094092f50e859505c60a015820e7d2100bba79359c8c56cd6133f07dda8eeb465cacfd0031dae43cddc1e2ffc667b3808f2a4f305146a67c2fdb49082b60535e05b9118b1e00da51637a261b192233f029edf37c7f3612b48bc499e9f3eebcc1cf08ce480319e7368087b72be0426581708bd27d657688af2e73194d46c7be2b99bc0111405c165bcc20b91ac059774926ffb910cbb9643490f225139b440797515bdc6b71e3fc595b275498422aba7ba8b7d6168009716c70ca0238c1005bc03aa2265b396b512c6d49fbc406eb9d690a5da3780ab6111e27aeab3bcb126a0ff9734a4ddc0fbc90d41d080014fa914aeb76cd48f166e8222f6cd71cf4e6ef2bec8539731564d83713c6a95705bed4b9fb665e9fe355c757a8a4d22fa7594437c2bdf282bac74772402bf73c25bad705560506288fd4a429888aabf0f1df6bf0030a45d05c19f5593fb569f5b6a7fa5793aa4f60f50c9bb80a3f46530b2400b2b9427f59467eb1ba7d030b21bb488402a4eef12f42ef1cedc808b61b73549120b44349bc0b376ebd340d8b92f665c1f54ac145c763ca4d3368cb17dce1f8a555e4223994bdb5d60dba41455224cc81d4e8300e5c653e6fe988aa51e9f78d0d9d6e31277f5453c07af7880a2dd27ec9ebf2b1d8c02bbbfc00fe1cf5700cebf701505264ef16e1d3a174d2956b33b31cdee30907898e3bebdb7e7a115af3d11c7438d154c5a9a6ee7833a3d7a7c402108474bc23ed1485ab347d76c4a28eacd4c0faa97f0f00812b8a14fbd16b00ffe41d874f4f8d36e57150fdd270eef0f120af5b85c4173a152a45854e2d99d2af377ef40c57412e965df392460673748c553458ce6c496a4fb5ed2b0ff3091cc2997577fcad85fd76a484d2db2dd74c5da79d9dcaab317e03b19326788819c5c22d5086e1e8b4bb297ba45ed9d32ec4c5a4cbc36e59f145e426366f4acf0c0a707c72752e2569333d58881b867bf4d4bba4bf81cf896e6603b09dd892e36bc6e3b6492ebc9909dd6d5126249d61beca044cd904b6d24954796c22e1d56d1fa0ff212e8b601f00c72ff820957a55a0ae37a62538a541d93f71e010d07dfe3165bd0387cf8b7620797bcdadc7845549b108e0888768581291b20f45bfa7e9d2afb543354764fe1dbb13e43920f8b04607827959d46a35943629ab869d9a6c3c08b5c300424c605cdf515f451c0cc5435767413835841017f6a0e90d081c83f4209bccbcd671018a539ce55bf344ae65c8ec946830edec57831a576dba2a3a01a1496d290597a7c7b0538fc8e7030b10b85cf002194bf672916db2b5bb6b312e5a3b168287a87d45aadb4c5aa61e2cb86990ff29a8effe3859d3d45af17ae3a89beb3a365febc558305b195c2e0c20e476acf85264c4f07e98542ab0013057f2e211833ec8eb99ecf04b1fff2d063fa7d6431301876959350f0183ebbed7dbee108aad5dad34c3515b0007c488531b3e293ecd0b1390363598ea7dd8b749ae3eb14271f178353d20884d60a143a722e3a53e2931e2dd16e2e62eadd6ec444ac9bab46b5c786037b6669ff9d28a405cd889b2884a6974e452617f639d18eda0093fe2d4ca790a7fd2b6456b3cee2ca725474f4a58523d13922bf294d007e15a61a705964ff117f79496abc085e48570c8601bd89b5f585336013a50eee5e911f8044abd9f27707db28d093d7a2e8c59dc24041c76f039fa31d9c6705b853e36530f5f4c389aef084b58043f141141104d4d77a6403a562c7cb5c9184c7cb04bec343281822196d10b272dabc89d151e04c07082736bf2cf0343b385b5612b96ea0713d8dfd64332c67c4c17c29e1fd1d25bc0ed4f65e4d48078596da8e07b692a111e589739de10abf0e8250284286adae9afd3dfd4243854e066bf961d3222a1c53c50bd7385a8ab62f6a7571353ddb806682e882887a41edebcec6d3126f0f90395c0540ca61ab30e07a69c4ad253cdaaacab97fdf31b4fcf43c349f3d1c2c9f2874ed7019a352c5fe2a936d6f25551a45006d45c8bd96cff227d5ecafd91fde4d280eeb38be89327314164181a639017fc50be09ce8eca90f787fcf7f46110d3232c9f6047a107994f1a780b4e2c7136564cf440b374b8f9b79d048f521c0ff680192c23036d00f0363246bc689cc44fb49bf6d847b4bb64469fbbabe761dc5b6e8b08c3a848dc01a7854d749161c31423d80e4dfa601d5e34aa939506c794441150496df81c0621a2acd0c9954289db30b439a0105ad3028590617a5127638edc04ecbf620f1937e5bee447de83d8ef55e1614dbea7b0781027ad222ec0e6a23d05378663f247fae114c656829a800d40fc9fa79e8000fb4680de846cad7511b19619094f65ea4c7394ca925656f6ec0af2695d843815ded69c8a260ea95d9239eea076ae8070149e64281461afea2724b68a54b7def78c407bf534045dbfc52088ef428f7308199c245642b034742c0b688186459fd4e0af4943dae79e5f2471c3f38d8f78fecd62c761af0d8f5750042e17250ee3ff89f3e88979595374d36cf253937711c85dd27930d666ec17f179c3d4a43df7e94c9ae16658edc15902ce52db3fe31a742ccbb846c0458be4b994af8935b76991392ba7ef3f3a1bd4cdf57c05880dddc84c8c7f5ec72ee2fd35af4ce23cca1c9f3b1bc76bd72ef4ea7ce0dcf840e76e63e9df0cc90e90f946dde9961a4465ef0f5af50a4634a7bd973b46aad4669327253c1b22b0ba040f8b9066c407e6ce611bb7df79c2809bae885b699620b5530a12d586ffe60cc3f8fc393a81aae08e568cba0518fc967def7655a4dff915d826b582e5d36d6150958243b33b5fae836c35364fc4984e2701e2a7e2518df20ff85227594aec7ba9a8c63f3faa7b6adae221cd43bb329f74f6553a650c8f1d53704807645264c8ec97138a57d2da3b5baaf8fceca022ce3305a1f074e7f59b5bb51aeb2482ffd7c60ca74ae2394566b75bd3ddd9b3e67992959d8a78610d9c69ff139abab8702f493bb1221f0133758dfc1b6933445be008085389587400c1fc708955131516e6bf20a1fc21cf12366c22cd991d592da5e4b87bdebb30930b6884d40d2fad44009ec2ed878354cc2444951b08555556aa321f175774b33d0229a617d0733e5e5ec5a3f7f9d8a393be4f07ef8656f54f23eb0c6ed8a93bc03378d73e1b673c25fef9e4ad2392ca2b3d82872b14bfcead917e3229e667390c0f914772c691f54a8a26ca71bfebeb15b77040aceea74587e564f415400fbed994bd425e553a341702377ce6acb179d83390242b4e857af317a6296bcdf37345eed8d0211f29959a0244e98c08e1f4d321a30a1b3fe2ca5f23274b1a9e0dbe8148bcbc70e77f80894bb2b5d85eb1e2d4dcca3c7a99234ddcb316f1450ef5aa6d8d813d8deb6fdbee8ca1cd8ef560938e82500ce832b85950fb8ce18bfe7fbf637d5e558d1e25220322a0366a4f7f3c641831097251c1e06fbf7cbb4afe24fdbe44b74d13362c94a2a516aeca7a7a09c420a90cb9ebed02d03da3e05421e046d8f80909a65b17450d0d9ab0064b8b6d933fcdfc8ea385f515e0c84b7891f5e8cbe07802f3540737b93cec8cf262c8c95660dfdf88a7665ac64f099f53e913ed303f8874195dec7ed951343a5793241cad228253619cbd5f77383a937dab0b0739d1b5e47b44427ba3dbd8cfc9adc970e258d6cfa0c18fac4ee53c4af0f70d3fd478e9ddf5c2933adb9731228b07556b6a6ce1f9893436574d090463c4eedd811a5bb286e0e704b054a281113d2cc2293b74cc6ebcc58ab8c69e5ba7e027129c01910b99b190f6430d35268775039f2b16f7e455108e1a9d4b926d160e98a5c06d0d3168ba2dd38dca4ca2b5f27530f495387f91b0badf75dae385865525c30b9a48506242ca927c4da648160fe8184c625a1b7417898fd695a9bc5ba74df15f913b3283af11926cc2de153c93030ff63c2f58f810c0fd74ef629415e9c40a46cb86f39b36fcc695c223098c0c36324c483419c9d3d40082a1ef34eec6790dc6c4daa91c8ab0be0285af9955b3561638ea78b0f0386a683278b211368569693f87107e055c767c8d86a81b5e6bd9759759e4fe69bcc807bed7c6c09b16bd030a2923d3b3d1f6cb2b9b9db59d254a4249e4fd05d2392c6484834ee1457f8fea1223ff558c8684a12d020d385f8371edafdfd68403a00fc0f35e576c09dc4c7acf98eb66f6ee0c60fe635eb39f9061d61ef7237eb0f4afe3b481cfc301fb649c2c822f840eb6296d7c30f5d3e7d300c1b4d62afd2d190703d4453ab03c801eece12fe06a473677124a10ce0643b77e7daba8ed24d9075c60285bf5245f5d6c1afe20d45567dd0859f58b520985ab99f072a6b07c945e8e283ff31c835cd025c3248efa35a9dc0f42febfced9a145c86112d4bbc109791f960563e1529922bd2a5b22b4d6a8d1b38721ea636f8638d4696cd79a05b1fe9567f4a814b0b56f399f2216a184b5e4ad98a3cd3132f1f73d47fb94b4b33d0c1423e2ff9a67cd4c6ac96228216f736a8c2449b0c7f4d5cbad87c5801a1eceaffc1eeebc3216d12d7cf73b7605d60ba1cc54c1c29e139a46ab958f8af05b40ef019518e92bc007f53731479348100b4a42f5beaa2a07cf11d0d31fdd6b420273c5506ae9faf0b0d0f1319f63aad9194a175db516078ab8563cab5ba9d284a6ff62d3bdd0b7f83ea6768c04f577519a9480778d270fb9d327d1be684a4cafc8240857acdb809f8974b1ab0fe80383bf1135fb1e1bf219c9266699f1a89bc6145cb6de0e79e4e8c117988fbcad12a6ce7bae69f05ad42c71a3fa8dbd1a76003d07396f4da368236ba747f41ed6f49c73f42c99dc660e7fcdbb2d37602950e3b7c8e3ca21ead6ca1bec4ec4305960c11aef7f66b6b31d8340c2056b370e0e70b7981c6b0c51557c522e0f3fb0bef30363fa769e781004d21716fea19852a617345cf8737f7af7dc5f45168e51469a394d5ae4f6002d84a149a109999759c2535a015445c47476cdc74626dc0d3bd740717a0544d247f409e80eb689ea7f5d6a30453da9b16e489f353f9062415d486f07f7761f07230157d4cf82a654859908cbf56081e72332d74cdcbd6437c7c0651538663ea30a2274cb08e22081308e5087d41d79fe91ac0e2a0aa0dac8cb5251982610a204e202497d4f481a54a5e6f862527511fbabba9971cc2076551d261da02790f8736f1cf8abd0152600790476300011364d5a155f7587ebe57ac74a0443f565bde257210046384be0cb600577350ebc952570b76380bb56f462e8a53fddebf8e9072cd24abf54411dca11c6e1ee8c321fd27c2d9c70d564c55be6b01019ef8cf5c7799246098082d02ed1cb4c6d2488cad85be001a3e478017143deb077906df5fee2f1732f07d6818691d9e86921b8ad71d37061508b5ac096e15059ee3ad22104e38c0e33e4fd1797e4bf40da9448f04b2ae7e338c939d49cc885430de3967e81ad4335d922431e9024559cd805f31883ddb668792c95ee065f284b228eda991881b30a02ab27e2e5fea0ad05b32fa2b9ba25e922bc876e16607ecd2ee32b040287075ecc560cf1d1f7529676bb516832b3a19108d1f4880bcb0a28452a28bffebde03d2f1b55703b00e7c16288785b0044ce7f4a7b83eea3a67a7a4fb8cbc93b1f203fe2aac74e50904752b01dd1873898667cddb87f79ec97ead5c86c018e0992abced0ba9bf7d816f88e299870d1d7b66de3520b071699b36b37f27f455c837c4a10b88c55f61418f20b882466ae6b8506b425837879df54cf8c3a08e39b6765f8d2207f02bf496edc6bf8027335855df95b76ef174348bc098c1a8d159f3be4b735e5a0cc50acd25c400ccb6009ecffa5c5abf305e1318a9acd6a0c0bc2eb1077875360c6f98b6fcfe1c6bcf6bc0298913a9df8111a73c862dc67199815233f4d9ff74302c4de568c54ba7af20d3ac36838258ec0c5ee669aa743ee773a268df742c1ea7e55b86012de7fb63323a9a7a57b0443f8616b9a397dff88dfbe0ac207eebabfe7f65973b865b00f05d77a01349b011e99fa9edc9db1ad64d167612d50673c5fd2f06a5666ce4fd18349f9084973acfa759c8db735ba226fcc2030d9fdfb6ad3fd8a459aa295039ae49e119fa016500443ea392d972b4a660558b7bd9d5c93d69770ed292ecaaeb6d0c25cf087c31c3b8851128bdd6013daa9901c46349cde7a14f3cde20e8ef15a056285c626254ee62ff25e5fc30692e2e712488cd63032022e6825b4e8cdddc1820db0048d2087546e8649fedb5b3b51d34bd6d3b0b44fb7f6d2c5c48f32e37b4a1715c876dd740b8be800c7d17f62de2860bf48795d422a4bda1947803c7d91d66b264cd106244197b85977973ed06c890e32c5ea26bf2b5fcea85cafa93d0b99346fa070fa1ddb7099d457115a46dc291634838ea4f1454acd0d063caf0ff1974c30c97c7f90ac0c03f28c6f7a0223aef341da4299d215562e37e29e4d6c5605cfc927f4db1483f11e096a4594659f61665db55f64196ad01b7ad9b3b3ed9fa5082da1d4b153ee5169ac0d0ac4e72a7740f74882e47e216e62852330e8c04d01307438cc57120bd21e4cd877feddcb28e230140c6b18e8510576acb1026dbbea36c29520b748c4814c4ac28cf222198bef1fefc8e6ac929b7d2273313108aa3a3a5cd032f8950c1e94d370a1a875553c3515450985a59941e1469c1189293ac683c45ca96718f64c4b796d8189e4cb9d4eb0b86d01f61d95a1a24259ae520b4caa69c10670981ae4499e391082303855336b5e2165984d0d09631854e52cf3b7014b8359d2545baf5c6f28130cd05b3f6e70fc3658847134b6ffdd727245f68662cdba6e563f4cd8f2db21d2ac8b0dd0823b7d86fa9ed9e62b3bfaa5bfeea89390ceb49868f0e17e48f8dacce47bcc7bf99a113219d4819a014606e50476a38ec84bd191b94486f3d9deb73416c19779c9e61da2693c14d1197587393ab91c1ffad789f8e57e2365eb85970cd018f285aee9a2d9dcd69a1a6b9f6cd2ce64eef09ac96ec01b59013213b2075bbe55198dae5a26bfb317a8a424348814f3858d06952df941e5c855534ca9bd50c5dfec04591386ae900e52a0c266305aa1e94aec6389912df092656e65b6f3a19641f43723546f8451f8e42a32b6ffe015a4597c9ef20b4950c442b43f153bf88416d6f199910a02d42afc26e6a77d0e613248c6d0cf825b1ebc3a1d291c0e39fc93f54fe9a88a0d2d38e85f12fb0929923e76589c4dbfb274a3ce1c25d54d623a5a03f56050a49eff901568befd03e08c2f621b9226efa5239ba7b01271cb0d550a39b267789ac6ab1a6e12026fc65a1c1df5c52c50a935f40c31a710f5462a9cfb3b11cd7bab818303c53e1f12eb1c1011874d52edf3f6ed97b07ace17b170fac78dd3f9fa6b0a3bbc111faa1299b448e34864fac6842f43763cbcabc49686852d11f579a0b19a0446b0b3930ff00ee29e16d5265bb85ffc9d5d21ef20bbe9f38dd341fb180e959e2c2dff5c852ea3a2a9a477e1c38829c2bbdfdbf6d58748675e081b8ef3693a823466c23851bdec6a04989d81ca4277d2ca2a378b3dc07ac4610d74ca6f653c9182b275a1d1a337673da8451894ca32480401b3ddd4d4920d8a609e219c878f87c0c93e19c3511256c5cfaf66afd1087807047183d1f61858810fb8495fd4869ba0be631ef0121e2d07c8451b63b90d5bff156ce7b1a74d01fad3b2aea2a24ff09a047b91fe3a6acea067e445ccbd566f518100156cc1f82e5ca0f624f8d0e8ae1c9212bf3fe1cd0a18abee45cb2ee70e0625ea228728afb81cd89319e23e0bf8a7e631ca750330bb82924d5bd6ce925294740c0b10e1977605996bec151edc812e01e9dd05a26213472a3b721215249aeca7ed2958722e1f0a98714496f7208428b4cde00182e8fd64b23c0ab776d304891d64bf935ab63421076bdee80eb036dd66cc59c76055c1f276b08fb9e0f150e78e4807731bcda5b64bc4b0f17923425a9ac4ce6aeaa63bdea407c65558aae184085dab17ae9df176158fe76d63ec86685d3ae8934c51ba44d14a7e7209cead59d49399fcde078bb4e8b7541a3871ddb2ecedc102149412bbffbae2daa3303643f38cb9e68606051d77d18f405c6d24180649af66fd6196caba5a3dd229eb70dc4f9c3a2eb757f00df22fc945487b9cefe6d66107714406a2c964cee68c4e87956b5f81636a419e6d72b2227f18cc02e65d8fb180a3eca4ae7f8172e72756fef2a59eb8f5e5727db3bbe1953878afe2553c16436b14214d21cf019c95837c986428e4e1732f9de683aa325f3bdbe51dca959395c35e49cba69d750eb3d7743289c6d7f0eb9c62765e6d36e0efd873848600d5700085ec8a6bba01a5619707e18d8ccf2c3625650b6d0e206a12382cb5beda4ac2345ed9bb2e06cc9763018e4e2957180da444b3df84b383d532379bdf9150724bbfc5b56aef5d67de794b47025b6ad8b702090db4c9f949a982c159791e0b79df8420318ee63c37b87c863acb0ca50c0e5315521b54ac9f5d5d15a3998fa249e07fe3aae7683fb869ea7d054c59ca1c9ad9faf27f774ecaa3bc5fc5c24bfe306a64a2fa554eb992aa962b6b85608559b2aa6347d29de1c230cfa5fa7dd86ead3060bfd4aa060ae2978a1a3647d5ea53614603dacaacacf0e9c2a7498d961a5e30204b7538a79c8560683c0d4c933292c2ed2b9a2f48ba5850fa01cc6f9933fec56fd7139f72f370405032572b1b0cb83cd29463f2a459bbdc17214124581253538ff0d6bc13122dcad01fb7a2aa1fabe20b1207504357a9a3cbce137e8cab070670c0f048662d2a096abfb641fcb96984958c9d06c8258d77ecc99cdc7f654b4aa8aec9941bbf798728923afc5d23c77cd3ba8cfc9ee217018b64b7cf4f29d3b9315d42e20e844dc6b152c033781e0bec53378beff42196230e137ec690c71a910d5d41ac5bc5457196e3a7bf7c167bf622bd4a3aeb78bb55c8b3955d78cceb77ec2d0f0c7b6d1650473ca9017de5aefc3944e650939fed5918048d7ae7edcab006fa507dc6a4d520be9d770530f3d1a8e764f1682500d9e09867e1d0c3031f1eaa4893908cb2ce248f8b5d660b752e4519fe3ef4775450b137145d2ee7225f90bce728ef44a5e89082ea668d85fe7ed73c45a05e636b65ee3b34a0bda9637366bde0cc76eb00e23877de97313299669dac754766d306be9f216c00e37b6d89dfb0f0a63a6b5862aeb37ac73e1f3a869984a4a63913d323e7737ff13a46a3f89282a8f953bafaccf272b7a9ae44a992a1981da6f0558c3ffa5851c11d54ec7a108a0e91f8bc447feeec8905d51718c06b2b5e069c73b22cc35edd411fcc822c9f138ec27b730a4d0659b6c89363102fba2bb8f187addb32ab6b7c7e90d2839777b571d8a13c0a1291bf738a2468ad67c007df78de27b7d21998c1699b060e9d536fd07ee52d2903cccdf4846b6856fc8edfa1c7fd89067b7e168a3b8ca7443e50921bff53873f3b1c4403c1beb2a8b2bc080b60096b795ce0042f08642226b3a1d360d648adcb731fed8d62502db827240a452564c331f7cabe8a3a1173974dc9ea13bd5acd17f28633f60b9841d227db25756f13ee25e4d7e96dc9f722c25c1de7e68c505d37e07d916079b6a5c9255d2cbef376b347c026985d54793606dd91f69555ac05f408b10a72b983a195a7ffdc13fa3419caac046e86361dbee6530ad7abf0d211a6441557003c57a000b194d6085dbb34aa44b90f2ecff9f72eafd4f25885fa88a2518bdeb8187d21d4602ddbf3f7aec7a32e36ef29fb3c4eb828aa5745e4834208e2f11611b727ffa0eff2384a965eb36afdcff52b90c74ca0932fe0c39ca8388a481230e3fd7ce7b74609a7df9c4d2ec4c9ba85f2ae27ec212c535a8bc16fe1c64bb481b3e9f281271486073c180bf1d29acc50bc0253b586eb66642d59697253f017d66256d57429e228835fa9fd3cb2676e70fd550b449daf64db09041f7ea2bf24d1efc659950a079758ae04de7da383d382eeaec7cede08d40beb6ac318c23d87927305c6f7d693cbeeb0fced1617bdad3de7489cc8120f3bae89856abaf016ed94fa4f2a4cdb2ef5a5f5a2540c08ff555716e6b9d9551b22e74b13c5b7dd9b8a224de1725707212cb07b40a38dda173f7303ccc0e4e670a2e15dbff4616af14b0e969cd32715d0d9b6e6060d7a068ffbd4c55bcd47e2a84586948060794b6254de41293e2b287027c24d11b48868566e77301210ec9304ee43f2fb4061710bb72028a694780eb57147d22f0482e1dc2ca23f3317710d645de9b507d92371e9a2168310b9175c108c87afc14858cc262f6053800b11eedfba1c3582168b03b2729abfc28490c1a79984fd363fcde1aba7450b4d9aeaf5762b4e0d12190d593a061d2f0e568ee7a71719b73a2a835c490e14945027dbf21c26412c416827b25144f44050f051668f3de077bab8129baae674e5791bdde719f9f841bf1e1940dd553f1e670035610494b0139e1d25aeb31ddb03d22cb5a3563431de5b14156da0f731ab3aa7a340c17cf45aa2a44e5e1a173f89485c86766e2ef836884a71358ab184453796f7d858b62c59fe09f03a7fef82cdb84dd1f31f4cc907ffdae2c088cb3574484b7cf8b867f1055899dd95db9f32908bceb6611b33f945e87b63f6382ad31060340ddd492dc6a4f0432709af2bb5ced571cc21b63f15d3a9f4000c69b0bc760190964b149c78f97a039ab137cd21e4d2f33e845f9d97d0750ccd7b8b9ba8fb743ef53ac156c43f4a71e9f7d0e66f60dfba4b42ab68822b8fd95e0d09e97012e9c9abddd060a77c6a7051babf89c800c401dfeca4a87dd95379b0a886c044a3fe226d58dab01c1fbf5c8b124f0d63831ca4a3d3b404faba008de844a7a06ea7ba2ddbeca1048f00f3c9e7aaa8b9fa98caad3e2d4b2d961c4be25b3232a226c06292681c2fe620a79120ac7f19610ccf7dc664cea4cbe93820e9f4f4191b01989e3ec7c81f600331a43ea2d4c51ceffb69a738f584d53e3279f117ca488441d6214df6b68de5df956605b3fe8b61f8271324dc7f5577673d746549cfa29b03509af16028a2b9fd5027e92abc67940741c5fd3c8d086428a49cf7de57fe076646d8d5c16ea9c841002af1cb85b985a9c7738785c6123e447f63ec2ea43477598b27c85fdd4046409b0def03763cdd269842659a069e0b681dfa8cc49992217ec45db401db189510396bde09fa8685f853ce621bf4518ee61ddbd145fda3217c04c19a03096e30c4e8cf992d15c59f0a42d5cf123fca9733d762c1532a341d7744328f645b60ef7862b1797dcdb89dcf5671cc1c79e5b1af436ae83052703b91177ba120b1243cb4babb5e066dc7c050fbd325a5ab56c8ec11ebfeaf518145e5d85cc86d564d6f0878838bc2a4f0149351ab240fc2c0829a9ca3d41da767aae0024a8edc3c9c41fea1474d709e0eb814f209fbf0848c4f9aedd629c3a9412c9e564b9b986f2c788954a9d1243844ad43eea306b719da9958241e9950ecc300675fb0301daed18622d16c7e301ce0fbc57c8236317537f5e7b390afc7206c4d939193d9d86c618478f0ea91206b1279dab7db48e282d6bd35dcc69921d2f10716f253cbb1b1d48bdea7e4bfc08d82aca07fb582306f77499e594ff7f72b6bba2ecee2150518fa94a969bc8302088bbf7bf8d9b8f5195a549de2a82679102441905aec184e30e58209c554d63da98c02a360f5e65294c034d127cbcf8be890bf7839ff060398dd9bcb10a9f0a12b4fa2e665703283aa0a99a99f9066a4d2582b97b4042d023ff848be6f069552a8e6a2375589784b4b6f7de5bee2da5945206670fe60e850eaf5948490bd121773d0f7c43ee6aaaa61c79e052ac9a3ef9241744e9e7b99894a985a2924f64c50d630ba9d30ce0f012d913042189055c5cd14cc20eeb9649e0902b323d44a91e6298bfdcbe68aea8a4c30ba3c30b438738a54d9a2be2a6cc16a5147f5329b385b367cf2249164bdc40fd94a5121a90c247a7cba4e0f04aa9dc11cec81770c8011da9f437e6be53a2cda43a5543cf89144e9820054d30c2143040c40238d082100930500405ade4f5d25c1157c415ad3c7e3b2ccf992bb791a3129c1041139d2c8a760cc28e4eb260b2a378828a7db363144f1cd95d07739a4d75b680d409b60089136c79ea5d27bd54eaaa1cf66cd5e7b7a37a27bf1bb274791c259a61d8dcb3691e32370c2d392069a4b2d8a9e75055069fcaac96fc92c39efdf2f8edb09e334d39549a4cb6c2e4b84d3037c1483965a779f5c3914ff36752708c7731eb0247273600da2107c401054598912d4a8455dd198936f335037f650ec964cd771cd06ca93ecf19992d18189fe796e09070494aa552ea1546ae139c2d0ee8aa9cc50e873c9539235c295b1d4a7ae96382f539546a2ec904a7d51c92096a1791212407a40df44434b5dc12139ccfbc804d0f6910101502ea805eb9246595f539b324aba4a1dcd69ee62a69f89820a5b72f25afe7d0578e71eb771d2d494984b64ba597749784ed7e26f8f970b77c1213a4af559e667b972cebe7e2f27256ee7e2698048eb8ed5f722ac6e32e325b40e89322d367b6802879bdf399e08c30fad2dbccc31899155dad629856e16bc73c9382635efbafdf0d9a679a1cbe36cd4a64d1bc4ef392a6f90ccd651ea98be656e7385934a7f9146d68684ef3ba05d1e495cfe4304626af7248a9b0e763e4a2907ee5cfe10e1bf59895c7efc6dc5cd104bb8043ae087553c6051cb793233491489c341165cfea440b271bb6a3132d7eb6132c9e38c1c20a7a289860020a269240310328b7088a1964b1e5c4024a1442b0220a213861c92d97a68c0b585e2813947f6d79979bde75df8d96b3bc8b5fad9994fb80d736bd966e3f1c2d6771c151d2e16b97fe72540ee546a91edaa41ed638bd1eaeb81ec2803d9469c13cc4380f6fe92bc7c930394e1026b3e95d3036fd2b539b4daf4a5d7e37e686a1a90e4b218d12d22decf952f8daf62e39a4375d66202d67f9fd765674c4540779ed16fdf9407fa3b0bcc5ea6f670b4fdbf41cfada2c8fbb8545df28a67c89eaceb6c005d953d62127e48a2e947abbabdeb1c32315dc941db518ba000cbab8811625b0c04c0fa2d4e0045fc0010772c0055117357141252e48525389c66895af5b1dab42bc3de46e25afcb4fba9e33bb178da100d3c77dd2b7a367d31c54f39820f8ca524742013f71b9729c2cd9f9702a0fa9167078892e94d90ae916b3d5c56c855cd09e2d395bb355345b21c7245671d04d845cd00e9aadfa1d2e8e4456dce10209a59f0f74d3cf0f08d75fbf44d4e5d22920a28e4fd48248c7871650ac00892db810039d195274a28e8b2ba2ae97a6a88f87c6b8c0503061c58e5030f144cc8e50c4a08b4d634888307a25aecfaf47fce2a5e4f59cd9b9f24bc7c90ae9902b4b9d4963139c5be0ef18c513455b45873249ec672f210b389448688cc69060016bffbed8955de0f8e5a05ec0380f09e2cb3fa6809325df848ad850142aa50ba218c404e5e592094a1a93445266ab9e66b1c56c511d87a2fc98a03c062728e39dc492188a4e62459e6441a3501060f90ec90d534e810b242a98864a85cb9e93b5355df1b6d53de9b66ddba6c3abbd67d4d24aa93c8851965ae1236d9bc71a6e7b9c41c6e37376e0f121c48f218ca0aeeef1d247fee8c7cb2312895c2283a41075991e673c5e522163724812bd3cba3c5e165117eaf1d387ba5a1e3f7f26d03c32916c3187d363144cf0d9318a274cec90b4e723d18e512c61059b1461f5d96d1e89e8417ae91bb57cc50711d459e6a641e32e2d3350a6192698fa971694fd57e249a9745ecc639e635637bfd1475ce6662573a3b5100a23e65dbd4a8cd32c445e08113d48c7a717428412ee427c10a1f9ca49f741043c4b16224f83c6b5b3b2107a2284f448f550d15cf5a853f31ea91e304ec369d047e8dc1c88a843c33bf9f1d45c7e3c37973c34680c906c9e8b64d7c0d5399d464e6997f11e9d8eaa0ee39dfc7ad05c75ea033c8cc7cfc78a0f96c3d0299a3373a62aa7e8f17b74b4cc33c3bb195975538621754ca88fc6bf1939d5c374d555fa88969b74ca549a1ecc08e6dd8cbcd2a91e33befa4a1f11f3193ad5438586ab98b28c4ef5307dc667e8237e934ef5e86ebaa99bc952277e3b4abcaff28c9b6672cdb3ce264b1d13b8d1f85693533d4eb7b98d3e82e6279dea818fa0c14609f7f1d8d0b8bfa7211369e2e6344ea402a6cff80d0d5d01d36462cbcfd03ea4931ebf9db96482d2749b5c334396915f9425cf02f30e94254f9367b20fca9297c9abfc2346963ae72c8f4824720965c9c364194459f230b214a22c7955964de45fe45db2944259f2a82c8b284bbe254f9ff94359f22b7902e99b53b674d24b5a0ed5a77a90ae72d255b4f449d1a77a6890b2e4497a22a12cab79465a52f1fdfed33256358fa787e87edf6923389dea71377de565f4649324842eae687c8872657a32d14f98f674b26784e9441b44d67cb8ddce3b2715333687708a7083263e486890a4313a5483ea50156af243448ba28e9c41545424f54805aa3fd5e7f7891138c1e20b299250031e8e70030cc48e30450761989f4293fe60f919a471005f1dcea04a649bd0493c75ddd1d11829bd41b72c6d2f51cbe8e2b668332fb595d2d62dbaa494534e399564373070620324ff8a66cf993d65f6bcdc750c5becfa3805197c76d543e6a6968bd2ebaa10afe36cd699d555cbecabc628b9435c4ffbb49259720bfe5ca1b68c30b980193021850f7cc6b082245530b18514a87002293f23c88e2768ad46e913decfe40d75f5ec80035e90c106526ee004078874f083256421034170c2073ae2046bddd20a38fcbea12e1fa090e2470928a67001500d3080010c64c00325c0a0013ba555f21dcf7083257c92e4808b3074010b5808420a5c5002288c6071ba6fa88b015a000215946ca148144f74e65fd415ada085221829fa819317c44067fe6050373b2674db1698eef87d9f730b3c4fbf9def1136ca01002320d8dc679ea41da3e040d14ec96ba4edddceab592ff3b44ee21a13dcd92ebf1d252cefeaf7bdbea66682f4d32191fd9dd26d81e841419005bc4002299a58021474e2647db7f9cba1b5ef9e436d106febd764d17b2c9736b46db36d5f23ac744bb7bdb5971176bafd8c30d3ad0e83785eb6916b68813d4abf7c2368ed77fa957c32e5196dec4bb9461b7b958cb33d69db8ff2b6f3fbfc72dcfd75355e36662bc6dd699e67edad7da73d7a6f6fe1906d4fb76b81dcdbfbed74bb8ff7f4dbd1b3effdd5274b95b0bc63d1b45b20dab55b5d33417a151460edda35a93d87a655fa668254ee9ad9a21dc0192ed284bc066e9a5b12bab8c2b3153b19e71cc5084a7cf950b5e3d44a6a8caf533ac19ba36f790d08cf568dd9aade4bce1aafd9ba71ea186de2ef1458109ac2175638820974e451d4650383292e5082a2128ca10b1d2949d009c11171d0fdb8b2b64ab967de262bfe5e8c51f16ed1463e66ba63a431d22dbae4b6a9c41be61ba229107d31596df6c53e2610499c4c7f41924611653141ba3e2f24cbce2089f3359134a607f479215d1e093ef9c466a2893dff35913ed84c360db60442154c44d8cce885c8d7c7af660ea4c78333879feb90f0a327c5138107e445d994c0c3559be9d112a32524ce28c86a3e16d0c228c8fb6cb8c9e14559f3239a55fbcae146e258bde3958374f5e87a784776481c8f05d10b810bb607146d2aa534866df6254a3449020ebda13d2d50f725b91b0938ccbea0a1264c966cd7d784b2e6fdf7116520b6be08cbdec40b11dcf628888e463388e0d451424cf32155cd47d340d5a3204943d38074491ad01924715ea3a07b892929862d8de17a0f28c2262799c02c3f4e86302801091740018808496881148610822b848a20a1332f632b99978df591e12b5a928f80bd2d26084a9b19a75a6b666d66b3ccdacc5a9927134cdf99be22cdc72bf2a27857f0c4e049d91e195c8c00146db497c4d14010693ce1678b60cf87b021a2f4b1adfe51044cc2ff6256e0b9a5f6133f20a28ee6438980e5e4992f204004a58684c440747d4511f6753b94496c52ca2418d55581ef9e409b0e41fba1ae26c2b975384d80d89ae7d922da685fd137e52b4356fa766e10ec29a5d45a9bddccb6ea63b1d84c62c7d000879e151e508c56c48be26d913f202f34a1aecfc88c51d7e74389a8cbeb62b23e29f35ba2c9fe7e422f0ad1637e10cc59449b2c0b590339834c8b8c0a7249b685dc413644050e359f255cd80795049565c94410757d5f44d60c62eb23430497cc1c4a4dc41c3cb14748ecf9962553e0306b0288a8a3425df824574c1261d2137a22da8c8e449814f8bb7c7863684bbea0961d7a4057e06c871ed0b495d6ed340aac3df4869494ce95bea04e5327f80ba2ae0c0a9195e45b1261dc23d8c520e660fac4228249b422d1c6a4b50c44d6bce681930e332bec79edbbe1ed4d6b3e50e0d063b2bd7ba8090187415e5b7ba7bd214d336088ba3c2be6d0f4ac98ad2d8684d8f2b8f0acf0a2048136992dcd49146f72f58d6d6bda32f1843c2762cbe362d31e933d4fcabc7a26a6b7a4943d152651e4cf91ad42ca9288b29698ad2a6332c6801b191c613678401e100d9620399245f96249d8a317158d748dd7cb23810774b3ec6699f6c4d69068475e1287c703a22eb9c4238174491abcb2efc650b4b922da64d709d990e92a5e94ffa0f7626c42a14abf0a08622d632f296576332f8ae745f1342b9a38992d3b5b14d47cbed86c659e0e5f373804b5a67fe04c4e5babad75861acd6706cde70aec693e1136dab409c672b6ec0db28bc99a120a131a933db39849f67c664b520a1066abc88e3c1261f576b66adcd072bd7080e17c3bbe6f28da3c99e024bd23e52674683bfb7da825916364ddc76fd339ee25e578ed9b1266979e11f92493d9657620f2f6f5dac37a191b02522f5ff5bc1763cd27b25e87267873dc5f4c0e49adbd23a3afc8039aa09443310f68bff6f401c63b42016568773b46f1011eecef5b426cc925c49e441b19abb6b632bb840656f3c86c88b226a59447e27cb1188b52c8f023c2e615b8db61bc02a76e685b7edbdf0e63941f1136925af3e90136126141a2cd0862cb01119cf780b6e6134995d24ae948f391b452299744e95e2492c4d4daa118294f9dd68c5dc4933edacf0f0e639421ca836a2b494e99ada2d9a273ce496bf0a806b0ac9908ea854f0e32c1eb61b1e7b3a1087e31ce86cfbe0b38d4964cae891394664142b50689b049e9b793d11d6443747fb17985d8faca10c1f96c288bb2b32dbe29d1e62bd2018ea2031c664345dbe519f180728085d422ea0a3259f32bfa115d9669232d4f247677b376efdd0fe0bdd3a9ed00df539be6d19d23427af7ed234d6474ceea907b3b105107f3e0df9c5d9c71cebe5d9eee40449d4e1fd1c4f623ea3b4e1f316fd6363e8f7aac23e5411f29cb6ef9ecd9a6b5ac75a39c65ff72d6c4c3949559211b1494faa1be3b0f7a2e7bc769dad54a3c2dcb9e79d93b8bc422a9a7b74d3a1174b100987e5a51ada875555b9d101c534848074c74208405c901f923392093c04217573310da363b42210311f8d4b0a3132310615fa2d912226408de25d4b34ee65b4590e649fc638241368061c0fefa4b13791df61e1eaee31cc7f51e9d10b5259e81652200b88daf56a7190d095cb422a1e082224f104131050b1da480a206514821032410413dcdb5664a55573d6756960e7b36ebf5dba9b7b6c74aabca71d37a55adb556954aa552edb09ec1d0d23b1fd3a70b6da1a6c3bc33e5cec764baa5c758a22fdd7e3ba5cf9b1e960ea3b9a252ee7cea2ee96e42e98cd8a64b0923e54d261893a4a5db4c81240d9a7d3b524f221a821cb791142542db29fb52a6b73945737d2aabfe9259efa40793b9a2ce67822c8ef57929a55c6dd659409bb5a3132da0ecae9b9efc70b09ed2a18d9d8ad154ea2e8fa9b7a4503b75ebd2f2e2f2d8f2f24e7e2693c9e290b7a5922d6598120ccd4d1904ad95301646ca542ac3b8f88506b4b15187817a659cbb32ac7e6302bbe9863d3b55258dfa2a69541d9a4a3a1cb24ba6db4e7aa994e686b898fc76ac94024ebdf46468b6e6953872d7d44bef52991be2625ae054ea0ed961bdf5ea4b97df8dcac582783ba5b9a12cf02bc36aa9a43757cee138a75f0f1c0e3bfd78b88ea389784fe8b84e3f1eafc334110090600848e7f51c3aad573f1c2ea71b2cbb4c2fa54ca554f6052ed96fc7bec3c9afc3b2ebf2e3c1f4d48dba5f9e4abd67a75aa6bca43a9f16cd15c9cf1d7245f4c90469ac470e773d7e3d70f84b1391523c2105443aafc78f07ec2e4d24e5031dd8e3c703e74424145500c3900e4e1538e48a6249d3a12748c0f576d7aec804c740b4b9a2ab54af34e6041c7231e9339fc3613e7038ce5d19f6f81de0751c4d648641c98fce0b965dafa5e74cb9a38dad3387a1b1b06ed7ea38e41c72f7ca01878ca22caea82bb2270eb7a0aab9291b93d9a2b1586c094ee8e049121a94c10863e8b1011225e842c91160a085145ca80e4f3bf5cc0bf0591970ea7582a9c7a40e93532f87b9dc2b39f5f295b3ded16cd27e7048631d8d0e875890067c273f93a925460cd35b3f266ac4547a17752a47e9f6384a3a4eb0742b65a9e5f1932d2628dbf41caaca1c9309a6a6cc161734c1f99285e460e9d457be03f31c9a8a9b2687572646e6809e335d7218e4c4050915019aadb845e91e6e5d208143aec89ee79298ad5c64b6543ecffdd0c78436b8e31431a09d842536cd8e5320a18b28db65c7299660c5eea86797d42414c9dc52cb2d757561b9bd0cebd6970f5d7e43ee92cc8b49f59687e0611ea32bc57a11bd96d1e165e9106ff9727953eaac9bde92e3044d61cbe5b9226a7a8c22d3638a4ca9dbd368951e62b70a26abb800837ac8dcaa872c2c7b98cf0f0790faba551a88498772a7ae1a62b7e9546b98872e7ac8dca6c3e87042b13ba58198ae326920f576ab6c8b1e32f7cbe9e783ddd5a4436a64cbe7cc52e62eb38a364217fb3b4e518422469c6c233b56652d5553ad3594bbea1c6a32a964d5e34781244ee9951a299d7297269c504a3a94f6f3a1dbb22473fd2492b5cad75f27614ffd76aa29739a6695ea2aa7402a95ca55afdf8e4a474c9d6c9577f1f3a1dba61cca6da2ef76d5340492067de9d74d3a44b92e63b0188fd1e175691acaa2394c90cc6d06ff1c3707040404deea70b539a0d7cb97588ff4b4ad49cbe4482307441313e3f3c391facb9fe5e6804a5aea54643d860eafcb63348dee68ccdebad8b7fc256bdf0df0f67fc9a9035d964bcb55fe3cb7cdfa1c2b8332d771ab9c8640e2c4ad726a646b1ac072cb78323a8076dc3259ee2dd7ad72895932e7cedd85c670f94bcc635afe8334cff6a55b2b4393e530882dadb4d24aab53aa977498f221754b77109b3e75169853950fa55b1f5237ddde2b65d52995ce91d2261d277818ddd2a262b3e9d2b6c8f8f9d072a981b4dca481d0ac56bb45d35c3f833234312e671d04592e7f79fc7870f9cb5d5e5e5eb4179797b3aebdb05e6462bce81867cd189739864bc762b15e3f1a69c05ec75cea540e99d3cbb8b89cb38f9f0f32e72e3f1e5cce7159e61c7797940e7b76eaa61cae82d8a5fa4d55aa9717ad52e910a57a78da2f6f8181d1aa5c6160685ebaeaaf0c9ab27e290cb2daf6e053b9881c9f0e9973e774e8725bf2a134f70dab4b3587ab1cf4263d77cd21f8d3dc31e654af2618f39c59d2405c2ef3981c823ac86abb68eefa3974947118a9d8fa2c390c62ebab7c3b2c151d7190d52e42e658d932df3227739bb9a1697a4864531ddaeb773a03b896e461b42abc3182a56fd37326e7335b261d12d9b2a4b72932b95e6aae825b9b5be639938bcd96fe3cf7244ed5d68ff3b4b5b7f5eb7471459435af77b48e58026daea83e5ced1a06b1e9a7aa033a753f61e753f536658245662b46ce6747263fdca66c5366abd3db1613f4992d9256f2da86b6a12dca36b435a1aeb884295c80041ee842078cf840a726033e08c312562839820a74e6b7a04d482b82e55e7d66af5e059277f1cbb1ba9eb26b769ca28ad82642125534a95ecc8bca0bf010ba4308f4d0bc3cc6598fb3055e06887ce9a6972eb3a9a33aaab5a9cb5cd271974e81a434113962905dfa0dd5538f9bfaa0d241367d8ac82e3d4c5de55d24c0eab20aa02d0f56e133c510a44c410594ae935f0ed5a9e9a54b08c86db275ef1c71823752cf91d2f2aa1ca63e73fbed78b9e9f6db41ee979774fddf69f6eb416e697afc7a90fb25b43769151760abffc7cf87974b0de4e5260d04bc0c72b23ac869d3bc829fb94c0eeb669d7e3a56a0ae13a4d177b9d4610c1d27c87a9d208bf2407528e3c743cb61de92c30a6c18fa0df3ee7a32c3d8572176e9f7e3816e18f9f15087d0dda2c32336cc5d7e3f1ee686b9e481de0eb14b3a74f910ba611e521da3c39e0da363ee42bf1c73c75ce6184d5f5f67ebe555879d4bae97d8e535abb8000fa1f55c1e22b71c52b77c119cd22177cb3578a9533956a75f9dea90db2f405eaeb9ddf2f8f9b0bafecb7524c0eafa5d0c02c7298640b4f55f6ed261cf36bd94c3d32edde630c8b6f5a91c2758e9ebaabbab0e59b74fa534cc4bcfa1a53c739b55ceca6190d36e39cc4db908b95b76cbe5a76375fdf8e568b9d6e1cb5b4a7297ac0f4144d24d2d3a872f6f79d792c3b9552a1dcaad3aeb35db9b42b95b4e7378fa72985eba8d78b78430efceca405e9e1fbf1c74a7de92e7eee697234e10bc6982e0e597836af0ab0dbe935e4b4e3d7e3ecc9dd2405ebe027308a3839cf68bd69f790ee532d621b8674ecae16bcf5c258741f6ccbd6fc745472c7df675c4414ebb08b957cf993956f6ea5fe69e6817c839943b9f666e28bfcebc9bc95c0c03384cd59f1dca0a64847641a7f8845cecc973a6d42c808be6cea79d73cf9e199a2db96766666674c4b46e79da555361539dd291da8a6c49a4b62345d40d244e704bb257756b17c0f48966011c5ea2b8499da9e84ed97cb622db11274fe862c7273b3a79021250470652fa2ca574d8cbe3b0251d521897b466d46d46e91b1a9ba818a933691c7193485d4aa7488f2b1c37e2629c1165d841931f40a108576002028800031f142dc104a22d44cd070fb1eb1758fe08003ce5039deaf37b75782f91ac34c0a91b75d34bc93da1b109d22219606e888b4db0c600d3cb1d725f0efac5942d4799173446639428862a031edde69076c171a7dc019089c829f8a00642af57206ab1022596d079e926b82852f6e4b82c6268e69e4c3028625183287e908213749103104c60065720920107a21c294319a28b2be2c4107164c810613311f6ce48e781db6560d76cba8a2d21a69adb105b33624bc7568e2d1ab175d3a2e1f4aad8aae1f48fad1a36a7a794280ba2d8933a650a9edf8e9ea12036a05c29f3b768fe12dd282b2c0f6d7864c0a8c37848631116e3738a5aa44919e817360da25ce0c83ca457d8330f6916f6a45bec79a35c2229a4747b531662fa0cef64bedf5bdaa75d1221bf10625fba29cb489952a62cf0905bca43f02ebd9b9a29cbb0ee20debeef29f2640524788111788083c84510ac90820440464802c5e7d36e32e94b74a16081c34b643a7dce0cbd4df5103845833823df0e0c4d5199660ea8885b04de2da67b6a71409c91530bc51dc9b8231c1007c419292a2a2a2a2acaf42926e6ab4f57d59174952b8d8979fc7662f0e9dfb7d3baccdd0e6272c3a94432bf9d940e89ec54a569798161dde5f478ba5e2ad46d8481a7cf244ee9ab9b7258b7498806552634465d5c0ce6e5e52d343a8cd9218d81f946e14a41d29867e50be546c9978bd1161dc6bce81885d1148656e9db45b4211a83cadc414262c01289e6824c195fe6f07e61c8dc94d22021fcd1b773c3b9d2b639269c9168b3fa76ea57b96e5b6d2be62465ad354828b2e26e42c50d993332c12313c4ba08ab3ce4805c55270a4d30688245340828b2a216b4a085959cd2a1f5e366c9291d393fee2ed66ca01b7674620412641b871e16292e7df4ed704cea676595d65a53959c50497341419432a134888b255c0499b810e2a2494792598bf18eda4fd6951c59341138e475d02d5db1aae9939a4da988ac18bb439828b2e2dee1028c5a0d932d88ba38a02d68e38038a0961839ee676e879c92b891704780a88b0b6af9789c0ba22e7a5b74d8124326cb48837e26d3dbc8a25759e11bda310e507d5cf40915a2415c10c7847b62b69ccc56b845d99313e29acc5678a998ad70db02a889708b12450b312d0c552d1069210aed64e4b83b8a44efe8a408a6cb1af911acb7218311ac9751f3193211447c7c768d5e45b0be86ac8a603d0d1915c1fa9b7c8a603d8d8c23589fb317c17a9d6f04eb67e41ac17a9bfadd00b7acc971cf90e3a6df8d958c1b57a14ed8bb51b7d44410d9f4f3e7435b250c36680752b6d081107c214acf0b9060e2450ab480e40b0bd4136560c02157c459bb3bf9110101b953ef41923295714493a55b00dac291d216906c6149a7e4257f220c36e46620466f770c820da8d8af1c75ba38834b2f0294226441ef167bbef4d2b9d2e32e5dfb76f4ec52d4a1a597b48d9d17179b2dab2f94093e992da995bc5e9a2b222a824f0da89c7454839c5801854d631186047a3dfbe1f86ecc5de9434ab445ac0b38a435e84a01f65e6b2dc7d99cd9bab7dfb13b582bed75883099f109db7cbd3bafdc61adb5f2d6dab0f63ec4d9f6af08bbb7979f4b6856da5f6badd56eadb5d45a7bcdf2b0f6d65a6bb35b7bfb686f1f57560321118d4ad0c5554822dada259e1f8e6ddf4ee2ae8b48c0593ccf6c6d5dcbbb762ecac78325427eb1f15736cb8e9f0e77d85f8ce9b89b8b39e8c6a71beb50023c3c220c5f233da47b44fae8f2bbe16d0e679b45b4d19e69b17527e5d08e7268771863415e5bd6d072f8daf1528910dcdde515f8eeb96dd64589b94f2e7221c01dc7d5186fbc5209fc851c11d16c41992e1e3c2cc83c99a16ced9c8d42a4d1699bc504b5779a37bf9deedd9679441bed32fb884dd8da0b1069689a474855a272156de7ec441ced3922ce8e1d226c33426cc23d8c536ced3a4418874fd85eef4ec9eda8315bdcb5e310718ab800883839d2466cb2c31a5bc3d9da5f5fdd66946a09ccfd44d850846dd7280928da689f2dc02147b4b56f99c6a28dc6c36382dab7ec43e21820d2d0ae1d0b216ccdfa441bedf3e06cdd6baf992e9bc56469d7aeb64313d4cec40e6ded71a5692024226ee2245deca2ca88034defe20cb6bfb91ed75d1e455ab9fc554e975f955097075b5e2e5fe3f22177c35cfe66b6841021bfd8303ee4ee984b190f712ccbe5a7c4d9e1f2bb6ce1cb9f666b7479d56c995211a69aa13573791d668be63c9797c721e2c8a8cff2dd3436ce4a08702f2b01e23f00d1fdf0c33bef1b91b04ac9f4c30f39ea10200391735c250fe0a6ace3a4bce3a3ccc36d8ee95676fc34801cef7ac897b2b2f3b043c70072acc00d33f23c92e761cf53f1bc92e7993cefe4792b9ed7d1ed65253d3c95bd8ca3cdfc0cf94493553268c4c0e821f7f08e54329d56586ca4c1f690a38e4ab64be0593d9b67ec8e642db656c5da92b5266b4fd6ae58cb62adf56cb6d95de6d95cb3438e91463823ce318e541e639c61a7b2ce67320e1c8791057097acc35bf2ce47f9868cbda38300de994e2b2c2d2897971b3b3a0840679b4e2b2c2d28979754c6f94ccec9398c6ce32e19006fc9397c9403c082e500001bef4e01c80100367060a715961694cb4b8af352b9c667320e381c46bee12eb9f596ecfa28bf401b5cad1bdeadb0b4a05c5e522a4ffb06f072b56ea861c34a0bcae525a582d179a96cf3995c8316724f44057c760d879167dc25d3784bbef928d3701934bb84ca4a7e409d1e6e52d2c371cd0f7fb9a131e35d8b0c192819325c64c8789121232543864a860c183264c0c890e1fd907bc81d0d39c61b1a33b24d8d4905b74ccf25653d55e6c180b17686cfa0d271829de7d93c23c35ec63b94f45ca897aa9eca7a30320f46f3626866f40449d9a48271d37d9ecd32dbcb7786ec33393b8d8ec945dc2d0307879dbd1b7936af76478a9152c1808979d6d82b6595a3f24993f41ea9dcdef4ee4565f5628fdfa1462edf8e9e3d92db94a5cd9d8ae7655449afb80e06f55ebd6c3d9d7931562e7769d12ef6df3bd4b7f3e988b9976f47cfc7e9aee4e10cdecbac7319bccddfe0bb4eb2eef2edb074c4a00a7c37c1dbcbcd02eda7eb046d86a14aed978d3376d9a895cc0c0dc892a179337c3b50dbc5b3b965772f9ecd2c36afecd3ee607834f92d31ae9257e7b2cc634c7b26e7fc70530fc759c90f3a52164f761f32253de848595e16623fe4eebf93f96975548cbfe8fc4e26c7b88aa1738e133c8d70dbd9b6fa461b968c196a6c66d0b881f1624a1d07938bb8dbc525d74c307b29af4819a5f219a6576353bd19d6a391793734a460dca85e3b7baac6cedec578289519acadb1d6c6da19d6d2b0f6c65a1aacadc1da7ba81c6b3ccfc6f366781e0dcfbbf13c1a3caf06cfb3c1f3f0eeb2673329da6435202ac7ed8d625e81352d75670f57d2a331bd1bead150bd1aac6743e6d5b8a1a5b472a9d9d95bc0956fe3ece18ec6cdf468a05e0dd5b3c17a3532ef869629461b53b627c02befe46d2f5f5356a172117797dedd488f86e9d5403d1baa57c37a37645ecb5552790bb8b34ec6b3b9db1d0d354ccf86eadd60bd56e6b95ed6bbf7e96ec6b379a3f16cbe1de8d9aced2fd70976ac52b6575c804db72799decdf876483a62530ddf8e9e6d923b7ef27a13cc3ecaa70966592703e7588bb89ba4ef4fb988bb55704b7aaee9bda88743f560d6c3c93c1b9a0700ab721593aab4dad955fece353d1ca807ab1e8ef56c641e00be1d39dc3bfa08eb38c1186d46d96b3c9ba7cd72c60427c8e9fb04cf90c1b2a9a17167c8bee577437b76992ffd7d977d3a3a24f0a0049be6bbe347774c041c91de3d3243d4967a8bd1d9aa73527924f3075dec4872db73ab547b7beee8a20ae8ee8d20cb95f9f8f8f820d189b7f2f6f228299b2c0185179658c2c40818f9b80a631322e871c42d1f431b596a25f539d3091dad94564a9558ab276ad61da3cdfc0eb03c92d5cc6af599d54acac8c8c8959452ae649e336f56f4ab2656f432320fe5571a35412af565643e653ef34e261f1577885a5d85fa8c0cea41f0e28a0d0bfaee6e58db9466d387599355c6cb4fd60c85ba37cb431831413a2b35628818e010046b66ab7e522598c621e841aaf900290a258576b7d65abb6925dc8d4c50025197109108482eb169103c2648690c701837fd0ef43b666b9e0137ba86a05a84d5d308d6d87488ec34d24cd34ab81a09447f4c90be4a249c1242a882093134b1e2074b50872b142cf7c783dc1249934e7af6f34172bf77bffc85e5dd518fb3e5f21290d1f14727bd1be57b52feeebd0bbede097f944dbf391462dfefa4e7ccd11dddd11de9d4007ac2211643a067abe808c4ec911662938e43955b52fe4e27e99088ef225eb6ca49979f0ff8233dfaf77ddf9732e901f46c15adb2047f8f4efa28df9f72a8f2c8c2f23bfa773acaa6cb3b62094723cdf2ab81b0dca481b8a8e42176df937238d243ec66d171822fff5c1e5f42c95f97970e8522bd925656be42faf7eecb2befac77f3cae89f5df9257df46fe5f576e597f411d6615d91df493a4e704573af9c8eb3355bdcbffb7df7f5dfb7fbdd9b41195deed149dafbd4a91cf2a4cb9374c86d0e08776d74eddcb5e7cc90fbe435ed9c8a0e7bb6ca4d19e750888dbf4f8731fb3be927920e63606060c050a952a99717171714aaa585856565e57432994a2515158c49a4d1e8fb3cafeb386edb587478f7f7d357f2dda450db5f849d1eda4d6a79d161b6bfa3ee9263b441e930dba4af901e5b745837e92b67c931daace8b0eeefa7dc3afdfb74583ae51841920ebb789ced4ba37757198de4b5d1351d721f8df227bf01f4c49c391ae950eed1bf93323e2591e626e5b07bf67db443dcdea781747a88dd9cd61e717821762442fbe28b2f88f6909a63654b17795a825229e5a494523a9510b13e280f5e26512995a878a7c4a3e2e36d4285fa2e46d82da2811b9dd17fb00e75cdc7cb8853c4dd522ba1f221ddf1339f26ab1e8f5e8f9a2d5927fd5e9590ae64e5ab09d6531749d79ab2a39cb23a7580efa3f75839e93d46c79aa48f6862e551e761cd5eb12ba31c754eeb4a15a2fe473d4fbd8ffaad5cc6543f78eccf8a94229f54ccc60e3b74e0f1415d30afb1d6daa172d48191a30ecc8bcb8f20010f5e9df37a551f3c138c25011ffbe8ab1112f030f2e830f82f99e492bda3b2e95d965b95facae3cb5539eae41b2d59f5dd68868c2db65918397598bcf2f9ddabae4e713f08413310a3981376bde4e9414cc8761c9188ed38e2e681fc84a456ae7dcb3c458ab4fcf4222c7f7947bdd148c6ae8f4ee09bbaea3e560ee39707e62bf988f9efa97c44ea2b9587b2ea61a87af00e1dea53b989ed2bf908fad1dd3c567ea25ff9d53c4e7fd144e6e82bf9fb29affc259f7ea01f9d07fde89be631ffed2e03e29465b9b59ce2198d5039eab868de4d5ae92a2ed963c92a5fc9f8a74cc2278dfebdfaa0acfa1109e75a546ffa012a7d3d3e3ce004eb6b7d05b0a49fb7443bc6a880a9e7ce150c541a3ba9c39bfa2e62d20632374d6bad5587f3da63b21c06b9b99964b859b97902c69c68b5121d72a8eb26bb6952b3ba59c5980ca20e9647c9c76be58fc962c00bb0d471da21c47c0236da47e05d8b220c009b3e27c234fab25183b28087de077d0efd0e94eab083ce390196f7d408be7f909bad156257ce30fdd58f36946767bfd7b49bebb52037db9e4c802b145d2a879c7155a3dd537bf7c6bfe2094301ef305bf13be277fc4dfc2bfef1608cb52008534c2022cb5d6b6770f61f93256d90fba1b2eca7ae20375b1b82b2b67bb3eb3bcd6654c0da23ab9ecb31b2868855ca8d6f2286d8dff4f6f23f82683ac8cdbc7ec0cd9eda9ba0bc3c288fe55140dbb43a1862f7109be33e3e3e7222410657ea4d108552ad2858a5943e1ab8e2063929328625c430b442a5a4525eb9c46c6520862423228c6645a66b86c89a3841481a1498218e3c62c39ed761b26e1784c4913aa28b4674129fb071e83043508a1dbf451c1d248df928b70e122747d2989ff539124707794387734fd99348c3718a5be090dbde0f8930b9e3b572ebbc6ff4ed2069a75f766981fb7923884c9f08935b1609bf3dbf1b5548da59b4995b35c21de9e2cac250759ff87582b8e603c8cff7c0f39f3e427eca483d9c69255ed4a9b9469d485d3628ea4ca953dc533ce43f9e3f677647e017a5387b741a230935417afa7a90baf2297d0c0ccae525479d54a6919eb2a8ea149ebe9dd5042958812e32faacd3f97bcea5c3e4d363b2e9b90920a24e11d27d8f79fc1ef2de9fe513387e7e35fa00c7479d49cf7974f9753f119d4e719a87347ab663f21130ee1d261fd1040f18f77e84eaf8d1865ef6004721f5dbe34744fda671441ee0f8c8433a1051879411c193baf7318fef43defb28a7ea61dea343caa9fad15355a77ef83e7afd481369a26a1ea5c36822f2de4b27a2d2a9aa5357ff308fcf43defb3ceea28ef5728ae73b1051e72bbde0b853994a64f9ca7366cb5d32cb5179e5389fee65933ddd54e42b7da6d30a8d3a9f0acf298bbe48211c8b8ceebd08e9df414a7bf0ad3a3e9eda969e6d966ca42efa5a77a0d9c12c7ba522c270767614111eca1ee9cdce621689e0f9106309066c9fcdcb08d36e771c852c58b2b287d9d6b6ccf322b13b2abf1dee6a1edd8968f44bf170dee3774fa4befbd53cb87b9ac8c7e594761465659a8e3af3f3d332466277d4d33287c4eeaaa7594fcb7707361661f4f7dc8fc92221baac4fb85925a04c578c1913d3650465dda39ce027986449b2256ccc6e61bbb053f68d126d6ebd422d5262572ef870fa87a993e94a0565ddd19e59c0a1f5b99f44c0f7b6061126f7bd0d8a2e1f91755f837d43bc87a8c0930acaaa48b8c0df0ebf7d68b7439495ddc628ebd21ffa437fbacdbb024ff9cd77930b1cda980fa497d1b9f3c844e0889b6782f739489a08fac50ab07cd5b36882d7a4af9309de671f8e929e4d72b73bcd23656ec72f52716fd10e659110b9437964dfcb2311c6d11fcababf37167171d31fea9291656faf7d489108919bcbf487ba68944b7ff6fd883b8d72b99b7478394e45d32813bc5853291344ed51a65b4cf07e0edd2de2beefecb733aaa3d9041cda1816783e8b7def69fb6482f7dd8d36d709a18d3d42d9db73e6f5e815589efbe68b14dd0dab86cb56b92c75b69ce2a17dfba6896cd7b4e8a2f9a62d91c6962d75d8a2bd864b64c97cd3b2c3ef5b338a44351d294b02894deaa440e864945146196544e9e8d89ce241844826f48525bc47a7931e0562eae4cc0a5029b9b03711df496f36c319a276c4a10fb34f3dabc515859ad9ef046bf02bc5130cefaed935cb2eb510963dc4522f7471756f8dd9efc2df8decd96576fb023c415aafc0f2f1a1105bbbcc619654677788ddb52ad9f0052c80c4070c56b084a08423a72d4fdae5511196a5b67c7994573e54d9d1037788bd1dbf1d1f85a08425b366f4f6f35b9693d6ad694d87f5da67a5daa70ef0bcdc72ca6ab368234fb3166da4bc72e74ce9812e92eeb2e923ce06d32e3fee71b6381dca38f7962b8aa228adf76e6bb59d65d9d634bbefdd36ba39ee769eb78db27db37c334dcb6e96ed96e5ca715e9669d779599e5e96518f66f975df36ca9e9d66b6d259e94802b9b94e747135331bf6ec4929a596526bb39a6531462ab32871e6942d1e09ee64a7291e9874ac79286ba67860ac7b742a0d30ad4cf07c97a5095010a509385bb7b71a07e00465408324f8e88c7245010f74ea0d7078b3a70d14fd48a3523d34911e9d91c694356f036cafedae66a73babc096ba06e11e9d1e9d9d3ddb425017e95367ce216fd65db59caa5a880f3b1cc776ed75db1d3f1ddb35fd90029b4a1d63e669614f985d3bcd4052396c98ca41af5dd3a1ddf43ddbbe676b5f0eaaab0e29a043ee1a6db26bdf8d6b99ee1c9a65d9fb4d8d1ba2ab009135552b2bdfb7c39b3dbd3a03ee618cd51ae0eedcb57c778d7bf10437385f3713ac31c09daefac6cb5163cd664aa34da6293dddd1340d6754cb324b299d95d22cb375ce487d688f37559850c51361180a83167a42e80992104f7078c14417f6eca9c97d270e2f9a54adde1b63a4f246cf9bacba840438b15df6ed08d93c1e1e3e664bfe27c2a210767da501e6baae3681c3ef2c9f2698eaf17d94fdd3372fea4af518fdfba78ff83ed22fcaaae7340f2678a04fe9b040527773fa01a1119b7b6cc2e9940eeedd3b0d24a5a3bb774f03b1efb40e9cde610751ff6521e60df55a7d01228daa796680e91274d07a2fc6a8ef18033f5b74d7dfe4d01d5ebb6e9e2a037cf26a0cf08cbbd3724ff6ed6c97db8638bc109a7bfb93dd7d1e0e2f98ecc72dbfadb5e3d538bc6032c1a8e97077f43c93556d0eebb6f75a6d46abb7498a41f4a46cb9d11cb712d473a669dbf48f790576c9a280e515b8d66f677bad7aeed2a481f6ed6c3f026b46226c4984e97d9f4d9945f67d26e57ab14c4a03a2cdb500136378c1beb10bfb3ed452b0ef63748592751f6a23d8770838b445dd8f68732fa9c0a14794094dd7a559132a05e6824cf03e6ece164558dd9e41213db411d6c00f6b5633548921ba1a1059f74426eb5e32b1efc32c8a0d920e33a21ad9500dd661165b7d3acca8d897ea1fd1a6ee4d1b31418fc823b2532678bf6d974078cb7c2678b52d22da242f0ab501eebc6f44c22aa527d385fabd17c301eeeddd113fd475bfe930c17b237c2869f9bd8c166d84cffd8fd902f7fd10d4b5834512613903519124041b28220416e884f267df487dec4de74cf0dee52f77f9cbc3ef4c882dbdf3b8e74c2bf076df6db954df925f9eca2edfb6d45d3411235243b4fcc8de12756a29479d2dead8a2d902527a84b2ef15d83e96ae6daf3fb2ec21c95e9268735fcade1254f68226ebbe66ef0559c9be4b9e20b1e2d149066403d7d8dbadd9db57d3658b268aba72687857263459f7db696f9711c7238a34ee37296cafb3d5eded77b6f0b76bced50b9ae07da9f398a8fc3e67d3366db3b1f2100cf3de1ea3cbdeaeb2b7d7982e8fe866b6eab76fd1950951d6fdb6b7df082b7dd32ada63c24411f0dca1c704757931caba2a991075e59cb4d0e92b3a8cd9a56c8ba2cd3d572a956a7cd7d94d33711fc618638c31c618638cf1c769267082d98884554aa6d3ca8884554aa6d38ae7d9a20ade0f993f820c1161f6374ed9f7994f8469e73ad2f77ddff77ddff77ddff7715a89c4522a6993dd94c01911ce6e4aa2543295bc233d5ad53a9b47bbb34513bc26c0e1e6b3ef250ee5cfde4e7710c6a15dba04c2a54b253015fbbef33e1c4862d565c51059f7374bb2ef55746cdfecc8be3fe930c64525d321b63abcf7d609ec3d613d26f6f741bb749b3d26d963428ad063c29e65bbb7e402eded6190d3bb9abd25d9435284d043b2afb764b66a6be5268fc96cd9df7bf7dd9c421e11910765bab22732a109decf1d6654d45a6b7d10b3953d43b2afec026749a6ab660251d77d8664b6547e6aadfc3ef331fd3efb992d96df6749cc960d6bd0cc169d5832f656f2297b42d475ba9ed0bef79898ad52902c19f11161dc2e954a1e122f89d5a126816c5164dded960cd1e5fd64429175ab0ebbac07d1658b686c6542fba6df7a046fa6d7d27fccd6b6efa591088bfb7ecb710f99aea8738bec2b93d8f7191470fde9388737b6ad72fcaee69577f1b3d63a815113bc3f4df07e7b47a512f8c704af2ddaf7dba74c5790c9babf8f3fec0e707802ef3d9f18e5749b83bcf68af69698e07dcef48c4cf05e3ec125ed014df0dea4bd1fcfc8beb734c0618cb2ef43ef67dfffa0ae96df0f315bf8f79ecf6ccd7def15d9b66d7b10b355dad9bac035c7ad92c10966deef57608475c7fa5e1561a3df9f668bf4fdbec358c5745a6169d93c9db9ed746f3a94c0f66cb4a07bd5ecf9cfa3e6e39543b878eb3e437780bd918cbdaa3cc0dab353798fa96bf47bd46c6dbf57cd56f7fbcf16f7fbf8f5b03deaecbae33c3a297ff7bccf8f07fee81e7f7e3c48ffee499fb766df7bcfa15ede8ea34ec7719f2d20dc23141f221536b7ba1ac80d3d019e31ea8a8b345175bcf306fa785a81a23d271630bd0c227ff68c98de6a2228ca9ab7cf3411ec040e6b9e52a73a81a57039250cde91e2df5d3969fce68e2e92a41278f36aa53bda833537d7d687f65e97aa8ff5a8da81dbb6e9ec6a997d8d7571469836815ebb76974ae01a8fc487310af80a282e3c8a01b400d006362d41741d36b78f08336d7a578095a06af01d6cfb180f846d6fa6d8d60a126feede7f50564b4221fdf583ba24908c4d2bc4965442043f4dcaa054829c5a88b42f6a6de77d231256d1bc92d4764cd0dad8a0fd1361aabd6d12686fb204dbcae892409165bf6d97228882826d2f9f60b9e5eb04ba176314ea07b794f208a640d60498fe3bcc96e6f2417374fda02cfb91dd68d816876d81842668efe3dedea16d6362505c142d443a81a58c09e15042d9f652bbbd8c325df2898c096d7bbb03bce51223b125ad1041105b12ca046d8409c923d4859fb8b6cb216885988462b9ab749fdbd22def23c2bceef232cb2eb017e26ded6d96bd66b6b467bf89b0fbec97baf0336c8f8aadbf8b01747a6b49d4869e7a5ff546d623e16f870ac7e9edd268b9b942862e76244a27a594d24aa9a534a39452e945175f383681628b4def3cad373720f8a35018c7c9c33cd539e86614b84e508211c78d36f1e3613e95b2da4a077431cabb69e6cd16b5f17d3455e2ca8eaa961d750d7a1c5ed1c6770b806db53759f66100b63d6ab6e8f7224d705dbddaf4b28c7a9abd75bb5cd771f25ac6d1c69ecb5e373d7a4ff7fd0d6f4b6f4e50a250dbe6ee853becec34771186aa99a03d77d5042d8e9b6863ff6863bbc7cffb70a4ba94a773d0dd9dee4e8712d89bb57782b646586a65b368281cdede34eadbe16e5f1361dbed6348b7a6d598a0fd965fd1c63ed302d7d8b6c8a535421b61d98edeb6b1c986852e76a4108337155b31ce084acacaf6a4d566da006e329027a18bd39bd72c90f4b4732986197c232373f392b9919979ce7cd1c050a7ef68f2eba6c68dcc6b8666e6e635a3c36f197dfa0db8facda5b888f4416d216441e36a6a52b239673c04a2ebea3b595486910c72ce3aeb672bdedfabeb67cb76e75c435057a76ddc56ae1e020e2510cf04e96bad9a449277eca0c304296a0e416dd8a851a3a666b59aaa50158984a02e6a674604fa88ebf5f0a50ce8e83d89a24740a73d5e8dd64b1c59f336cf0a5499802eaef888008777b6323acadff636ccee6aac72565ab551cda4ddd2760477bc45010eb9216e48e2c829efa96865d23299ac2696c826d9a2c69ed76c68838e00592794d2535184493975315bb6d33c2fc5b37dd344a4ce7d8fced4b492cd1a99e0b440d475927292729232c17992e262832fb0c00a593cc1820be8cc9e17601173428c0350940106968af869d689f6041c5ea108fb5ef1c966e7850e07ddb1525ae5bc18a3e4633582e3635ed8ec3ae16d4ee00d0352680aa13c295de0ad0ad2d438d21dbc4cd9f12853161509dd810c924ca4907c42fec82a8a80e596554c24d0212be406b6968382822a927022412241872612aa1574883a41852a112a11a24dbc3913b476b636cd5acd5a0444579c2b30569b27c2ec3f8388309000f38718a98bb5daa16ab76c1caaa6a65d7de58e1018d166debede5befd5b41d0def9a0923baa22ac2ec43d59e3b53cd08a3e286a431e7d55ae2d047fa459c01481ab30749635e2d7bfdb4767ef686c419401552ec49b7fdcdd58b36f20390385fec41e2cc2a648c698f54fb8d30bab5df6f47eb89334a24b654428773cb59a38da4213f0fd8cb19b3ce42b143d40546d9d65a6baf76efbd963ecb326badbdd75a6badb5f69ab5d75e6b03aa0da8542cd405a21e768ca119110c0040006314002028140c888442e17848a4898afb14000e94a456684e1689598ea220a39851c40101000000100000c08000bf5c68dfab770fe0a331fe3406dd9e62e3410304a4b83905cd573713468aa91ad6e5608590eb7de7c07d406540fdaa75b1e08180b5c935b7bb9abaead02a48160233cabe2f55ec91298badc36098be014252ac7cff5562ad2ef5a8dc482df479e65e34f41f18775bd50220e4a591b5bd80673325c49bcbec6de1674e061f99d6b7a0e9b09a430a800e51bf89e42fd812c5806ca86c61f0b09eab163a4886da276c127075dfde5ce7be6f00ff5bc91ae5f24cab84ee7f60ace0292ace5e6272c59ed597d50e7298af59f6143ee2ceb3bf2b2105c366ef2b2df21996659166a7872f45bdd013494e65e36bcd75afe48ed086337b87238537b44bcaf5fc1fee35658cb48f61e2af836bbc88e50c7ccafbc1d279e5f61aad5465a9da5dbd6b1db4356ce9b364926e8211da3f7b5d5e43adced6e9769e3d3c1d07b8b6768573eeb71d49af5c64ec0acdda8000e155ba46509d299a1835e54b8de850884e04e742967575987de7885a5a4c19659fb1cd236c057d4a9f65525be972ef64a2490cc83862360b319aa00dd5eb037a7bff6ada92fe9c6c0601d8151cfab44819746e6a552d83d6d980aa18ba281894c1e4f0c4a0b7bc7aa334ba13db5614d615359237563c3b709de0535c5cd86515dbcf3e7d73aed840c8a602d353303a520f664a3c26c7b4025024245af09e089822711983cc323119d4536ea546ade5f3a740043fb884417401403db51bd8a57577587e8144317f3786162f281cc7e611817aaa167920fb4e9d843b8132e5b53f7c1a7c162bc524a0030d53333b1a9668851af3a4cdbb49a113790b090e99b2a2bec96bdaf562a24914d56724e3b065a56598ca5e8cd5b2429ac6d10099611a001c1d64685d4866a9b25a7a9b12ef15ae7d0dfd210992403295388dba2e61dba7c2c136aea5d8135b706879617af77c6322fdd83cc85420789148a66d6dc9268f5b9c14087cc6165a120e42995f312556999a284e53617460b29bda05352459ec67a2544f6059fc9adb92f083029660d2aea7189fa539e0ccd4426fd790ce5c589038d0b9141177f83e0523c535973f4cb8ae61c0be1c7190b1cd84cfa21cee9000ac58f7f76100a8423ec10478849f597f3bd701c166165f4da8c1cc92c5c28f11dc81b13b66d0298abe6932b03d01f3021fc32fe8d07a90a1c431f8a61e8d7b38b5d87ee3bc53ce5233cc97d3e6b6126204e0955aa0152ecb2945b933468830e6ab74413a4e1207f76fef6fc714052f7aa44dc16ce7da93336652140e072ee2afe6b91ae6a46851572eb73eb075d48307a5db723d0890b381b99da9b446c45caf8138409370356cb7aa2f8e11081d0abfb1687aa6efce19dfe4b88b0ba577ffaf14f9a0475c8f056653c308879ddd017ec8be26ad8cb9ddf53fdc26337435defeec9d37a669c5392ab20d892a21650c1029332af4ceb5866e9b5ce58620c0a49c4554b460b5dbd26967b8b07320da1899aefd384ab430df775e57f306ec778fa6720734d16fb020992510a3b25ce198ab02e32932be38c80e43b306d72934511b7cd545a7113228aa58cf9f36bc261a2818714537ecadcf628f3ace5f6d42cf9a689a7acee1e620c9db9124157b4d54d5ac5eb8c5e9fabdcc2f5df118e0440f23dcd2cea53d8b10030537d0fc26ff439274cde29cef70b90276c9960afa61fd2e3bc615a8ddc6752424c139f143b2e343980a6379757977da008a8791f7c61fa68e86e7df8fa4e718563ddbb9965ffb424f94888d0fed61401246effd2dc8d4e939f14d6b0cd33ea66912c12013c29589619a67119980f972dbde8d0141970b2ac55064fddc52720e0d0f4c0379840ec30b23c7330cbe7614f1dc369b868367d171d4546a6711da7ae52a9fe48be40ee5deccd088034112c992d9f3aa0584f84e822e1027408b7130a62678a30726b71829d2192929d70a1431739d9e6dfb65fadad1731f707e8f02bc6dba38a4f70def69e1c4cade2913c1f5ad7d67184b3801b6639de45f9ed6a980762b8df74996e4e5aaf817ef400cfe4a68b09fe60f56e0ce191e82793acd98423d02c866d493ae3c02961b099bda8daacc0c5bba9121739934d03b6f40cea08b5a38fea304b8b3fdfbc55b220173152cd8f62e615123b3f316756795c3a94aaaf7596d1ae1b8e552b52dc6d276704327fd39bfa54d2983c70d22da7d6dbed8f13aea45b96a4be6c58a6fd870902daa5514028674441988332e02648008b58469f431dc3c8b6d50981672368c07911b5078faa3a7821a315414e86739876b81d9625e12691621e70548b69b679da0fb43244495d8557a3bf72b7a37dad6814812f4321acdbe409ce0b06dffd004d5bd94f1408a09b5d834e3d19715760c517c6e540be841ca0a9b4c9855f91a5548c06d6f7a6443a50827f78a8052653b35e5ff9e22c6f3e1158d5c83b4791d347aa5daab4d473bf3208333fa1bf246683c707365bc572b134633e0eccfd7c5c3c8e5d10c881a5140c1fd0749a47620f76bcda8c53d4f54836a30258337789be030202b6eef9cc0d935a4230a735ccbad642bf966441b5957884e884c3232d5b074c43f8a4fc0aa627e6281ee52433a8f2a2d4c19d81c30f07c6425daa451967024e79363dccd016ac8c97185d1200002c1890fc8f2c4749d918111643711bf4be5cdb3fc6e981665b37d19b5b3cd67f29efffaccad4353affa556a278bd7eb2f01f0165c0f630706fa6b02bc04d9de0568aeb5fb012dfa1893faea444a37a48bfc541abf56154ec7e6a1d8e25cd3a26a0bc8ecb41dfd79a7fc2fe8a191f1adde423cfe99e470551adf81130a68e340fe1119240a20fe013d3178286e74ae91a1eafc37b2e4abed832159abd7bee3df41e8ac99ea71a2ad34ca00cc776d707296cb164382c85b9fb63df57d3461ab5c9a58240652be7d6edfd7b4709681f200777a8e489ed5804ac2cd1e6eaedbb0b72768278e6a469a39f392e14b0cc1430ea5b3f68704d132b59b5d1ef2bc35f3140a277b9d6566f3c36f6bbb6a7edafd36539b5f196fc7784c2c38efe3d432ad06da62a9abf20bba8f2b30a7093d7ff5686e6f45258a8448e795b9c877c6d4a5bf94a14a3a58f28426b0ff76994887520eb61f9293b6ebf3eba03951490458de3fa0ea8804ab7bc5850e597f51ca7ec1def31a1fc518d29e97b0b4f2baf411852ad537d72dc88200ad06d0ce306615a819a18b308260e57aed6b0a345657286e25f6f8e0dbd10fa78156830223a57157e326509554422d367902267887fbbac53efd04ff3cd1fb6c6ca371520e2c23fabae3fec5ee22915eece2356ba7478ae5f8e33d0957b02d4288178e8bbde04a395356b984232e5fdf9da694bd4a397e9801f641dcde75f174d5550b482a1cccf623e90e4d90baca01368e55f43d7af89592527c4f88e89a017205cc5eed94b6509fff579b0c947f2390fb82cf847d9ae8e15ea1231270787c4268225bc75699712aa25961dec22c83785901ae3c9726c6b0627f45161ad40100c6674f05ca7dea16ccffb7a60ff8c115f5c7b4d16dad9c23a5acd768290b8d5ec8f34795416b33609b8f641236a9f243a4fca3c4f80024cc6eeca0617370d081c3a75aae726f198f0d7644b41e8211e560894b72f607e09ce326b399b17386fc7b6459e34364464ce818975dc61c23385d6a570ab742d097e043034dc10530407c1ed48b132cc691ece4d47c1b94ee48857270454d937a7dce200696a0a240975f3ce3c4961e194884881123a77c15403024b3f66e02660f10430f936fb1484fab3057c59f300f42de0cc9cc980765b454fbf6081ead3d5389901f09d2fbf7d0fd84b024f92e4ec315d965ae293e54733c7e1c552104d841d877b3baef65c4ff9da5f2b8a72f823856919827fcb9d437b9915bc2f5757981b229fd2d5a896fb82b253d16ab7407e5c150fced09c7511c8d6c616a322658c26ff26e5c2c2ae97679283c33b880b1bf31ce3c97288218a1f7d3a2dc0bc0cc677df3a9038c9f902da9984de9465c7bd084cffe9d6b2166129c9dc57a627623c058814d648269ca9dc06268053e6cb20da72715f8ccd8f596490614f692d33c51ea4690d14388d19688a7c00687a0d2a6f3c76c6b9c7a10093294ac1d7fcfcd388a65c81ee4eeaabfbf8b02174354ce9d04f5d6b594465d51aabb6ae66371661badbd488ef28a35058a1c6e3057f290a0c8fc293b597a5ac41bf6ee455fb9d8f54090385e785ec056c67a6134c9b3604db6d1eee3d940ea4b890387d08d426e36fc2df40c15caa6f79fed4057e3cb74147f9712dd05362f27ec1d49e5cfbd1d419b6db5b75356d6bc5b2aa646b3a8d0dd66d746e4368e623ac3e755abb5f47a2f6e82638f299f8b496bc8b04763dc365eb591b10b17ecc19eccebe869c1f644e18158b87922ae6abd9d63867034d1400e99d196c64203ce7c1b1f99d201dfd5b6b6c9aa7c86dc18e9985538b88b965c98b54e310c18cde95b35cf0011b3d48a80017e332e624dfc1461c22951cffbc2253c4a6af85fba844781ea66c4d2bd9fc573fd2608b762eda9cbee21aeaf65c4fd5119310efd7c9622fe6fe588871fbf561913102bd66ca6cab9ce994c9229ac7b5c9f3b1d7fe5dc2e9b176eb7d61c2dd9c257cd1b417dcb3b2e927f20f6884a0347992e3d04c198ec855a28f80469e0ff1d8c1fb351e94ba29ac81a787ab6fe832d173c26ba1dd82ac4444110e1d4d03a4360555c0eac55020224871db0a5f077413079b1a02b94a06d56e9f15ce925367725a1a3823f35b1480838e79d708d3f7daf51977dd331fd3aa33749095a600b1250a1942e9fc363992c87afc7d5a9045f2b32c4ba87cfe2dea395ba1d0cf269b05241a1d19931d8070ba6d24f366828d58f16a24b2cf60a584ce5573b4ad8c7ed517514a08ab1e8e1109aceb1112dc21aac84cd44f52f21e1d869f9c7f3dfa1e4fbc77bfdd736635cbd4db37386680897ce0f2e20470a4f9184cc67d5a99370f3ae49efe9715d31ef7eeccf64498a5b597b0d27262bbc2546b83ec47d5c1aea83f20567993c30dcf088fdabb6fbbf3cea93d079063011e1c7df2b85ccb932c8cc713ded803dc7758d66c66ca2e08f4c1eb8083885de42d235c746ebe00eec68b8e0e3bd1f83b180927421b5cf5b603036bb891cd6f4c11cbb6a1ecb56ebe9740388014d2314a49cd93a1a2d282cea4a527c0494cf40489378c808733077365aeabda8dd6006980606738c3a85f0a244d872fb1e7c83279d593ceaf336563156acff79d319f825ac843151cd0922be9bd1114b6d3365d397e050ad47fead76ee53613337cc0fa2ae1451ba53725d3d0d53c8422f8b97b3bd6a21b960d2f886a450ac08e136e3da127ea27855289a938b35a97cbe1da450a9b75aa6feac7d3a224ed8995f81a978df8050d4a6528b98dd928fb78d0776f8d548a151624f1a013b1f01f6fc05e9c157a4a3602c603610ceac00cc246138ad592865a4a9dbc245e8e614db1500477e19a4274a6803f0daafd42e6b37c78b30bf3a7702f5f12a0de5f18a54753cbd9ca3e20515b318c34e4f531c2fb24481aaf7af2b306634780f2040b78acba5706bb7a029d2a4dbf8f1c265d5f76dafb3ef1b2b30232ccff65ee9a98d1bd87c1deaf1e7b46d652cc59b6f02603df695c61e7ba461147c17d491c8128fa4b50870ab8012206968624ba9c7fa4c7019d472461d7709864e1fd017c2248dcef4395539a1721cf42281a858b71cdc80b04d097495df7cf7db07a7a3cc88a3941888507a981f8ad1332ea23773538a6315620d0ac0a0e90a98be7abbbf1ea6cce25334aef96511646033f265fadd691890acd2adb836b40387b1ec563d6f8a03d58922d6ec80e76b82fcc0c9eb44291f5de8f96fcf81f464a67a0fb42cb314014d4ef37c1946f128c6d306e22e53ae5e18f4289e4683977505ba27bc88c085c1c584a6d272183c492d8c0f3138377e8527e10d6497e8395efede3600351872c48e5b31450a7695b86020ac6117cd45b3c1b71bfc34ea9e3d08e620f36795d8ea914bf2aec0849773a8ac2ce09d875b4c1ebb684192cf354be94e2818765f84cf446909506b62ea69815f7a2957569e859c31df3b773afd9ed350845612fd04ba4894dc5d0aefbe0e1ccadbec49184b36e9513313993ec4a0e127dbb497e785f6e8c50ee37a5d824b380a18969f6c2fc43822dee76629e7c4c22e601d31dd08b333127e709c24f75df80b822ee6f61cdabbf65bfdd149e5ec701da41676969e38d01e234f239048d1e936944dfea501d761f75802cd0320e5621544c8617037ef3915aa1338e0dc396f47800039c6b8e178c4ccd69242abc2504c256b808b9fa749c90ee215686a4d1cb047ee7aa21aa066f207c6ecf9a22dfc7fc14c3e0456a860609554a64c19270aa30eb84da774235a615adba227b3a36636e2d658405a789d87de329c09081365d83cc4ba18331d243c8f9141e9ff971b8b10938715fd13545a51c334dacafc0c28eb690b82dee72c0d43d048ea1c259e2df597991bcd830f84735728762a3f285fe8ce7c9cfd81651e113a83cc4cd98f1eb45d5e2de569682ac636f8219ab98b68efe9a4297e5a4441a88b00ccf55e878ff1499b919dd5f9647e75bf32663cbfec6fed67c64d97d12f88555f387532314c604985e3cc5653b85081e80340ba26bf595592e2282bce8fc9481a0d8ea08a825ac6312e5e96d2f21318ed899251c35b6bb64f7fe7a21d0fea5a5666b8e1c186a14aab74a103d460e4281dfc404016c7028cefea877e173bfa006849450c913e4e283b51cbb283108ec677c778ce9160400d10a2be683be7ead2f55851319e2cbcc0393ad4197b67d7f2135428c98fbd48ef94736b2c859d31ca322bc7a07f015962c99f8967bb35b96fe30da05c79a24c6e066a965a80cc391237c8ac7a97af2ba96a28be7a9e589100f6846232f747f18289186def76921628a666d9b7266018f32adf6919a5eefe861e0ed5326771a60e201f1f486acf8c658f2a502093db8321c74298c97ec47a79e4b3130fa92ef836165e9120070ba0befdf41eab01901db752e8631a522501bf535a6f3d57b58aa7499fb016d5b701fa2140a84d2b3e495e69e2a67244dfb1179ea5270a02686ea8115672e3d1797409695a30a8685e498b75c81459b3884a94cbcb35cd742bce8dc161a3da5b7e5dfd181d4874654000ed1b2c20027711019d2fa402573d04db4bd61d264f6fd1b443e6d9452812f65c09e70bd0c1f06e2732035443113f5124b119239e586e1ceb9c58b26cb9e796d341441287e413c2520d17c0c5c3a4ce0304bb9a3f2756aaa5904b65194fff527794e4d08c00994bf839093323831bcf1af18313b5b6668bfd7b68936f1dc2a38fd8ee2e4a0f3fa58ac5ab9cd2e4fd89fae9b70a840b13532e308332639e01cb461c9c7e81ab7e3bc8ca217c7c96d9abbbdcdf19441c1aa3e3bde1736ed8f2361f9a6e08935b3c3299178a3cbc945b5f5a74c3dff83068257c16856fdc4d959852496efaf400543d43c4313c74c9b1f7e7b0e5ae7665011483a51a17d0d8aac9fe15146b8bb601e91ed518a777fb388d14f7a0b545d9f6a1ffe200e02ee69a937295af90f2f7e43b2a6d139f8c747467599913917ea64e647b973b3790edf280992e857384c7f6dd4e5716f0c363ce88000ece632acac104116a6a58feea33777a1ed7c1073aa6c2013533084dd074c4394ed442ea72b8d1ab007efc09cc307282b483d785c932c19895dd14ce01a003b4ff157663fe11dbd9e85850cd2ff83286d72c81852a8ed4b4b51384891bcb7ec76f0aa33cd5722bfbc0ee6f8424affefb84af15c1635ba8479b03dc3142f87019f4b9c5232eec93fa9c7ada90be0b098778762e32e5393b2cb780e43ca1589048b0dcb303b3853eb7cad3b57dff43e0950b24fcdb79deb3b8e5220af252d93d6d4bce7a2464feea67970ff8cbc72a57e31792beecfaacfc245cc1916f4ebc3c8ae08b375b0a97cb1b2b4a9647647ce2b8d7a21926c820deecbfec02eb248708de6e1de1c194f52776e85cffd709f869553a36e3f056816dc60df620652eb985a78c848dfa8371d498a2dbddca5f972746c1012e3fc7359588b77e1e3d4ac9bc8e1d99336aab403493cb0209064ef03a04c5bb7a8b9f885e9489e20b5d481b797540768423e3570f682392c015c93c84a8fd33a3fda2aa1bbf722ede690e31e6bfc742b4d042a4532c8b59416f1ddf5f86d12f8fc6e0e39eaa91c4ab1f5adb0cc039029855c11bde4a1b06c69898226362496177b1163319e47e2774aea6b44bbf5ce197a9fad84bed778db7d7e0d4e7d5741fdf9e4be0931a9da9689f5dda04724a9d79552a04ad10ae2e7e91b1f803f4b241da8f1b48d40cbadba483dc459f0dfcf8f39e9567e4000d7fc20dfae7732fcbc8a57bc07370f5e2b8336d02370e062d54fdac4ddf1dcfd186139cece23b745ad932cbf764089cfe9e42718a1eb7526bd9f97c79ac8edea55f52491fffcbd950eff06dcc1d312bf6baebfd9b6fe8f3704bfd756faabf2481b86df9201f77d046836ba4adeb2c4af312ea3695742c4838abe1491252f09150070b16811e4f69cac8cdeffc333bd7de9d51857c9e0747f175be69a77cd516d6c7e3d1be31e1918ba89be6a5136b241a53c6cbdfba69c1b99f413df82b4ed430e1d81abbb368cb42cd8171ae00dab0b6e6a7d93fd2b62a3605f0d6678b0789614fd1913459f3eb965df8fb49ff9e8570d02e537d4a8e33d604d2dae2c1bebcda867e562a119adf43e1452f07d1019bd9e329692ab29fe36c990948f3e22e4336ceb5834c80e08805ea320a74e2a3398e0e7e8ea5890a530dd4637ccbea2c411ed0a88664ecd8bef07e79383f49b697f3876159dbba54cc9b8915655e10c3a1467a62964b402b947a2cbf69214087708fd361b877e5ec7beea598b39e018ae0a9171db70ce2ddd64c26d5a10b1108510b63d5d65bae0c129c2aa1b15ca1e8cfeb88866a6266485301d6703ad5306f9f024a99eef06c24b265a4cd5accd909b87e24d78a1bf1bd3b34950a196d219a5a1650973088763dad0f9477e6186fac7452fb5939113136168254b95bcc07808d36525fb18138e272666dbb1126887f27232f73d3beaf8640fa30807e2860bec4d51934d08f608f29701b2466a1899e50658d995d0f4a8fb022154c0285f1846af5714ccd923e8914a5dc858693c72229caec8cd320335c34dd931f6d9f7e35dd6264bfd10a51e92bf2a0c84c25d3eedcaac3a9217d969aa7af41ae4ba00b3a1a2f5d5cb51f5d6580e3aa895a1562a7f5c973086607860f50222be61e1a921c0c494869cc13bbc2ae026743ddac6e028f3c27e0d646661202d01a7276cc9a8c852d1d5f59d14a7dc85bbd3e1a3abbe18cd1485d74f0765a2ef3a409efc0aa4d9e8b400ff84a264173791a7c046dc55a88fa3347326717011799049a708454d34afcafde8674c86433f605eab635b2e8a756163b5c3a0220a328b115f12e8831c5e01343ba882c01387cfeb2a6a0a660a4ddff5d51b72bd31a56b30f18e9866e476190971ba16a3240473118080daff9b82f43a56d565c521ae387e87628ef377e6e0f1212a723b5d4ac0b68aa8fcd6d8b5e3bb6a62e9d5d1aa1ad24af66ed17a46188bf2c69706608ef7ff6d1d6818fb76bcd17ea794559024e9cf0133ecee0823654119cbd0e139846fc6082fb4916f7e4199c333b148109c34bee832c91495034e282bdf7e08306b282c958ec806e90045f913331cfd180190c6500d67d98028d8fa36b1da7db3f37be1d07abe00b5bf7bd101db9e4e1da90a42891a8e6c24a14c00443e91f8a224a3aa8afa7de23b410b1d6b12c2874258c5d848a71359b29faa44bf4a5eafb5bbddab2976f7be572acf9f17b4d2eaceb0e1b4d10fa61c28458b66e3ce8fb3d5238bf9775981648a1ad60a1c9fec7b6099da1a28cfb6847d826dbd88ce160fa208d56a73c244454d8c62394313b44397437f22136736af1fc3e5773d9429b4a91e3460ac52093d4ad7177a46532a68f2a68e9ecc49d655420025fa8789ec00b9ae02064c1e2452bc091b127fa1eaac7407994db5f311cddc84a358bab2987303763281360c939121808d04efe9681a125195c8990bf49e6fd2a0866446f68b65767f9ca9a2d1b6bbb12cfa51e0673b585c39748e5d7589297236180587b7c3151b4d10ca68f2e0c1e661fc86fcf2385329a5ea1a094145b7fdfe8c28010cdfc3b85447098d8d129ae7a01ae7a459ed8d882f3c17a42d1de090fee38e77e93d49da483a34c1c7faa63f1a5de1efa131d0fe306d8c435aef32b5854f0b4d52cbe703be05e48da7990bb84db0e1d41b76410507252f30e51ffec834dcc95b0132a8d768ba64234004d43687cc303f52b9c68ee7bcee56a0d2694f4b7ccef9c455590847e8bb5d61cd36575732ee983a98873d4a8706187b5704d6a1606f0fc83fea491606bfb250c4737d0678ecf35d6a166cbcb778a9c6c3970499531bac86a62fc2084d17f8b95c3573254f7d1d4bc223372f353b6560caa3451119062b9b158a47328356a2e259240df0fcabdd0e3fa98ff32805ba8dfe9ec0ae5e0d6b1c81ac7610891c81ef0b78ec1215ea58ac8791f1dc1dd2b55b6eb184d2ef85391001a97a5649d4004548aab4c7ef0e2529a90697e02249efeb383ce5467e440955f81c3de5291121cc66707dfd8d586e5ace7e58a7871d9c941a991562770120c91809bf809b4d1ba55675c895071dea5e76ac0c094dbfec4be3047215c3aa3047682e84211ba547528ae14bda5e7fad858f9b8f4a3151e6000f409c0a1411820770a80149c5b898694cd646933ae2ec2d4b77925911db9454be16b7f17ee2c6244e6f60168e793e990bbb87493221ff9e4a9b24f4904859b36b01a1c47f31df8585173ab64c1df27eb56f2626478ac2cb130b96b1dd134a0afe4bb3d016225c508555923c81d7cd5637ddfdf275ed9ec907a0041cede9f8222198a19a95c53e08133334e211d349090c60e2b039bee70ef7e671407c046741c4d931235273813c69a6691ffca0c69377f6da2bae857d611d1027f51d717cd4b9ae60a281c6a8e89b92e8a39b4c3365b1539aa406931cc5c27c0f1854dd390d17dadf9056e5d25cc82014f7e4211cc22c9d08e928f41538ac2ac0cc3808561409f6726fabb72f3502d8340a0e038da5daa95f69e89235380cdcb926230dec0918514b4315c0e10b0e857d6bc4389f7ba48163968870978292039086561225a71bd4b82a403f990859fda5749ebbdc25e6009d456aaaa4c893903781be3ae764dfad3812d99bbc953dcd3c8a80a94e53cad31990c12fe172e03bf782a81240707049c3b747d25af2b6cbd566b0bff16ac78f3f15dc24ed02fb1738e9a90704f3931c9cd58e1d81a88e845990170735f1d3998f882a6a45909f937c0de4caa10dd60f1501a6301602d1dc09272510338bdf826fddb05b01dbaafd29a52b732489c81007c4b0d41e96903316ef9321482a370474537e71e73e87097de9b0a720f7991bf0ea2fb0b7041a7ed44090286f2f1aae9142d1d76fdd6d06f06601730198989f66c2a2c6df00da1003742dc59738e3b239f6a27d620681cd169c5d78a1fb23392e8b628afa4f8e752bb3e19735d8f5601f006b0fc86dc27a27a2628927c709ee65ec4bc9687170f693f4f75be2a2dc6c7a589f381c1f8d1f781128065d6fdd3e14add060ce207e73b6ff5aeb590b5116487ee80c2b643f98469580f52258725b4d2447995db027b955b4e5f610c078a4250a35d8de0c081d708d6ebace61cf573eba7ec11ff8f9c12bba8b95c2270fd0fc2ccdabee97eaceb97c7d787596176fd8caf57171127fb829e2951ab4e274cf3329be9f72db319d31c98cd7c7ccf6cf64dd8f051f300cb5f2a90e2df2dba602b9086d2ced1a56120a624cf65ecf3c480b6c5922859d526591fb8b00ae16a8d3a141f0bb24a804aa79ee2c686a04058f915c0a78b31e0d6839efb8cbc442a5a46958f0d4cb9817e5dc179b0d612901f8b9d7326db40a061e729ecbe4b0b84abe306022bcdff6b01cb2a3e9710f36765c442f06861d2aa92870e34dcafe27379e2f8e0a8321436f4a90b3298c3a318934c28b102302f84362b10130ee25055f4ea8625144a0e4df4b85ed93765c4f3e11ddf2a6fcf680e8f229857f3b934f17c29cd4c2c7af483021a2585361a5cafea9b3262f0c335063b79b6bd2971ca5d8f8c4ae1a30af32d4c899fc4ef27f85282f6897f944a08c374c17ee607a1106698def29c78c0a170c61189e04feee3b490da341dd853b42d80c2b82eb788139f955ab56dafbb8f3fd12cbf0afceb2008a11dec568610c2499a21c389ba9459c5b0f241428ecb21b2cc809b245cbd6b54806efb863632185e223c55e08173150cce9d685a128ad9aba67e724c8c49919791b66ea93ad21209f50c095da1db41970b8a60101827a7e49c9cfc65b07b09f482358e37ec4459c1c0d20b635263b4742b1634c83a26d66e6fd876240280432bade04f048c15d32d374ee04f6568a3987ef50e234492daf9a2b56d17deed8f80c805e1c4a692f1071abb8abfdbce8a98a15e87594aa32c2f9e204fe88eb2c5fdaa8c785f57aa0e72e05775336faf128b1646d590d5ff609d26227eb49896aba42747abe61d90168254f94eb5d5cf899b6ca48145cba63c1cf37be5f416e5726ea37b301b8603832bad474059524dee06fa8315a7acf15a2161100accba15b63eeb5dd64c406475b480f2efc24214d2ec930c34a14e00da3088f4b635e5e753143c58bb930cb7a0a01028e99be9e2f246be28b67002c83a2c46a7293d6a36895c9a9c1931c3f07696e387ee8c1369961268b1f3043e093f04f395c3c4b412aef1e1090b3c71ca6dae93ae58b0c9c3ff7215c3df20c77512f6d1b01bb3c26bfcbbfef975edf254effb9262fb544e5c4ee6b0fc99ba3f823f8ebffe8126b2bd062770c181b18901d91d55502c9a9a3c50c1fb2d7f4323eb165ef784e116f6e550795a252e38d8241e93baea5dfda8b63ef60729f4ac2e2b5a0b9b10467473dde8bcfb22eeff9f55420b6abec2d47d7caefb6188ed4b19e2f82ea3620b2c1da495997f47da3764ba859a04cea91d3d1b0da3ed2ba77483e4f1ee407292595aafba59bd092ea2f45a25ab32563e4c04bc0ef71abce744964b30df3484525f21b051d5047add7524070ca48ab85e4705c98981ad67e121d72f6b0f28ea130813432d4ca15183fe60c6d3885169eb505f383034162ee2b969194989607fea48bc8ce06ea914c30455cd55eb6ca1dd65dccb844bd03d6eb50bee7528d2c9ced98e3342dce6c61423b0ffd4a44153108ddb168f6603444cfecc0dfda006d461a81c8d6758579475ffb22ddaef10f0db813784fc2130ed6a756e4142455b8a15b95f2dac8b755b17eb9e5636706c515df56f6652ceaacaf543de3e50c3f434415c93d829532603bc061ae4cbc2b88b5e4dbc2e14f019088aa010f4875e0e9d278cbfc131b0afd399e514519c31e9b51d227a84129da8d22d12b4b98432e3402d80c6912408ea9bc293474df2f284ea436b7c76c674de1512dab19cd8196e21ef64cf2a9addf5ee5763921af4af93fcaf634c18660f371d2d31b3ce86f245386d97b7371f9b1d5e1fe56ab329ed42100aae398726af3e3d4a5062185403e6ee9581a12814823ee855d0678c423391dcf6aab1e1cc7442a79ff311dcbc82c02e6fd8652684cad00c9a18a83cb341c0e42d648eeb4ce629d1a8e92cbde401355279a648f5d4fe6a244e95bd637b07ec95d9d2e39a64f29c58b9b884c976a6f5829802631b876ebc1c38c84521c60c80565942624599a5ee49fc5674b3fdeb20a7155d11cdc94131ba59fb6e32133b4f7f831eea07c09ff2c645e5a6ef3470f62b3d2ccae381f7861abca7bb1c2ccfc81e7f30c0f6e32bf28336276f27691659c961e40df52aa5a059e66a6345fadc1382bd1f508675f8a7511003c5c7489aa23a150de96f6f00aec12fbbc9698ba7dca35212df8bbd0a49b680e904221d21001aaba6de1ffa3dfd7a943887b8ff6d56212c7ce0baf71027dc8cf5830ebf8848b12ccb0692e6297d2a92903e909c0acb00aad19b4702184314abded4c9401730a8ead1ef35189443b04d4d12cdc94887a2bfa9c57fa9f30c25cfdf674e1e83d6db4d25d3c35f82c3149dafcc8f3ff95fc2eafd19084dec2f5fd5cd1fed68838fa4d4295c037fa2b9123506c2b56b9f2b1419a1fa4866bf8df282484a9b41598ce81e2912a3b25e39f211b1251f7d5fcb14f73d6fe16b97789ca2fd7e546a726fb46a2456710323bbe3da033ddcb8f9e68b2c4ca2fff7e55a43fb5a1024c50f5c20b93acd4b1e889c979518a886a9b405cdf908353be5515acea081ff2334835ace2a3919ee26dd3b8ae547df02442cdef84a7bc795184135873f5d50ba3f6d819dc4eafad5cad2a7736c016556a4de82526c2939b69e5f8b0b9ee956a5a23d57ceca9fb89902fdffc47fd50086002fb4a39cde999b5625eea0601a055ff5c79f563565276778f47f21280fa98aaf0b5fb3aab6e9d381e6ea62c01f7ac2af8105d349251c3b16f86f17d52f64e5be3cd9b18329a63192985ce65729960bcf0e259f78e322842bf379f68a72ee6881351942872b673501001c71c6f727bcb00daeca47fe833fd52be695d24ab23ceb558ec9891761c36c090c64dae92fe715ec2c5e3a090552522090473ae424c502a9c87622f24a1dcaee01e2bb82eb010bdff856e8750958bcb4ad3705d202a4532a721c8454cc2ce422509bab4b5bc911190cd531feddb4eb71ef5b54d90fe94ea66fa2484982885a22a4befb5362c8bf053eda879f85c7f693e84a7011c935bfa1e9574693b2d96c9a45ea19813a2ea1cc36af7c220518444193cae19e269e1b4434e3564b2e0ed289d78d83c8284d5c57429d76ad65d75030b6155326ac1181d7a5f971be1a5b3a85e13c45479694d5aff446c749b33601d28a3215e3b4e75f5a41201f4c55617a273aec3ff1c92f01fe770ff13094edc8aaaf08e967d3da9666e7ae7ac4ac22bcc9086f54f84f57cdaba80749ab1a2ec93960349986d10db39711cd8a9af6fcdd4e6b50f0baeb442d1cf09aedcb3acc02ce34cc8e8791786ef8ac0e6de99c6c440423602e403f8473c23e82b6080a499b25c3ebc559d8167b9089f6896efb498380b1144aebffa88a3791a496bb519ae7abdb023bbcef1c133c9ab308d0bada1cf4361e9cafd6409c3498cda74bbf1fb404669fd61885d17f7c1d53766b1d36d347da476020b44315b751a75a25c8b238a7d806a32d3455f60e8b59eb88867c0ed59b412cad0fc6838acab2b22a9516a1e328c8d119efa930772690a3d6d62bbf0f9978bb9ca2b1ce274a11895ae25e859405877d6a9c69b98e3ad939ecabdaa70fbe158f111359a925ac1c39f8dbc634542fdd9830027f587a28a62b1c34ecab9bc386454a00ae41d42af81863bbae85da2abea2f1d1cc151cf6f9f9f1bc919005273d4e2321b643b55c0575c5477090ba51ac5aafac08f9fbc0acd3f273df85aab79a68397d85743fcbe085de5aa44ee1c0f8ad26561cf4aab4678139e43a04e9b7b252d95461e7155f449329150d433659ab79c14deaac2a52c50bdc52615db12a5ee022358b8a57f30217a9b056a4ba57b8488545c555bcc64d2a2c2a52ed05ee526331b5b872f7ba902279c2f51dcceaf3f432d9d07d69210ee8e5774c8940299497a7f2f4f21b25c9ca04d7731868028a1eef5a49024b48c7691f3cb5b0ea17837780a2437484dfc7d9c974748e595054696094115802e189125e86db8e07a3e8d22971b77854b65ad15747b9343794e3a5b410fc51450e97966c7857c9f8017751864e9038874b20c168df3be5c0e5305389c1d94c8c9c03dff0dd09130c8bac704e30bfdbb534c9ed782c6a1e85436a975fd985ba644683d0ecca1bea7b29ed64d987e03b1773586933a61d16c100804c9c122d07b1a6510977536a27980519cbbe3e8d3c7bf4a57bc7a1add805bf9a089e1b01a0fbd485e79c3c0ecd3eb946e30a2e4c4a689400ae43424fce9129f83a32612ee9a75ce410f3bae536fe9445c6425486ebc9386d8d6f9c467c2b8284a8b52a93ac64e302df3a28add44f0bf42999017307c1a46bb637ead0def66b2c1c874b850cee46df0ce106b40b4f3d84c4f0a6cca478dae34e7b7ba9a070cb592ecc65f774a0392b4db4bb50b704c2aeb14598e4c4e1bb9e3701f431fe8d4ceb0b59710c2983060f678f4051eed02c4fad586f1474feae9b427adc76abcea75e643f8450aa2717a9458b6437fd2c5e4502ec9f8ef4350394b29b58afdfca0d4b902d6f86a333caaa22bafa465a9d193e7e58b51ce56c400c4819cdb831ec59443b683a4818963286cb15e7f1cf46a38c81d8b9a1172aaeaa66f945d1e1455cd4315c669c72303b7036becf0c1b26ca82912c6a745d26f28482e3181a9b28f3c34e4ae89f1de4a5bc3d2fca18a8fb9072b867ea6e5f3226a567e52124d6f0f38c88c90b00c3cc0ddc8ade6dafca2ac52863d0c8ca6adae120db28719d1bea09ac6e2bdb665e16c98a506c530d64c82dff7a4e060f18471776b470b4973b4bb6253919c3b9fe79159ff928aa89624d265d19830aecc32b58393e9089abfc9531081f1684c3a380e9702462daed737609ba4864d2107962d8c173a33026a0baf5b8d1a046a76e49c8d4193725e9a7fe97174f2f3c31fe5b4cabdaa41e414c43e14e3e9872ab706e3f448385e16ff6b91fcbfc4c51bb298f5d263a0a340061d36983911e5bd9d7ff2a51bb73a942fa28ef2ab2e1ce2e1439f25168e69ea238e5d0bd8b3a676dc6d449d5b4a3cc93ce2e69f70421544fff58015858ebfc853ec930cc1cb3cbbac40ce640d1557bf07c71e254319c21204af1cb9db93f7c719267fb69b5efe06b52a00e75003a0adcb1f1e55b19b6d5f187e1a615298e17ae8dc625740afe1510d074894d3da732eea017d2ebf35a3ff3b78bf955491ab60eef00a041665c502ecbf7cf8d3785c423e6f5d5a28269d6529849e7657d4f32513021ae4f39c95a621138339ab99ea1402bde8a15262f84c9032305be0846f6a5cfd59c7ba16328c99a2f02640e2e1049c5113cb51ec202dd7e06a80bbbc87c96f8aa15067d7d1936540955aaf34eb63a2fee40f35aa43842f409507ff3c59603cc5cc87d870c8e32e084369ffdb413c17e0d345a8a06d13727c490c1f2a41326c4c738ff75c5a800e42ae34967a82de2e65f647575b986f9ec7da1400bf7031eacaa38c2beb53deb82adba74a9a035ae2030c10b05564612fce5bd22f6cfa575de5b9711cdf20159db9ed2c448988afc73065f0622c81f5fe2983a5fea1700d9b671ad3f16835af727172b634b4b23dc0628d0093dbe2d7a77653af4142df52aba23be20307f458e2d0ebb0b2b6ac135bfd1fad5662054eb0ce7f7a77692fbcda29c5a946e8c9371d178648f9d92508b6915ea157ca6250ceac6bb4a6630e410280e1cbd0eff747cae8c083b747ac4a7201d7ac8e4895d7655c51e47344acf11718a40bdfa736d4187203d02ebf20dad241002dcd314ea901a702426f834b4e92d27c11a0967f39924014739d42663374594142a5daf9808f158dc3ecfa3164a12aac65fd1924d6d2a96689fcd3437aa6da64477005da0ec6732d14976760180ef330434f2fbcc596c14ac8ee9e29fa744bc5307706d1774853f2936a165b309310eb1dd6b39101abce71c210df74adfe7ec961b67f9aef03d5133c0bbe7701a9c525c2900dcc35ca04200419e602a193fa275cc47b29a0fcc75736db4c1d08a1d79cc1a162a1b3fdc6267c9818f2a17887eae9696ccc75d34d962f0fb65b882c9c00f8282842d7363a1c5d95914af3053ab9a960e369f3605f516e3840079807ad2e1f6ad1fa563d528459ba8be15d783f2c9e32950f5dc07b98eae96d5f8dfee1a93793ad8c146ff3b2f921ffd37d8b0852ee45ec98f3bea17b85c80d0a3cbc4889760de15550e5906d63821c53c7cb9c35d427ecd15f442ba783e3fbf6840dcbbc7120c9a47f541e55308eca118a5e4931fee5aaf117781cf7556a5167656d628bc97612d30d94029ea149abb15cdf44859fdd1cf817e6ebbbd9317616d6f1fe2ad019d1994ce3773bcd738a3d31942cd07d23b09e71545f959ae5d40b6ddc4b64d18e346a22ac0ef7681d405dae3fdd01e077b528537a3dfd484534c70ab51fcf25fd21eab55c50e0616f7dcbbc173e02c65c65f081ceddf8b6e0d8e1e122ca9952bb7936c505d8a14dc3fcc5bc206c9d6f65bcfd679631ad6bbed66c180a7b8f2eed381f03eb9991d9e98cf1ddb86e0b4780bbe640495344d72264d82596c17ee50d0e46f4be535abae4a5c4725615709d466cce2d6215eb1ada55c297af69013414254e880113669b03348fffb4210307dbe33aeb9b660678f614edd46d3205699a64a1652861c975117f4f4852967f67fbe98ceb6f6b31e8bf6fb2b1e7b3d92bdc5b6def6ae3e37c0808cd9123c752fa7d7488d2ce9c62cc6585d9cef2b5e7bacf4eac35cd903f5bfb55a399dca1cf6df2ab8fe32cb24cdae9aaeb46c121a14a8a0dd6eaba093d09af5d0b8167831a5ced12640e214241a483bd70f78f8a9e6992303bf056609fe2f94aa68fec83519782c41390486208e0e4423669548f765a7a95562564ba012b32a2255cc4a491589594511c64304560b855e2e415dde0a8a1e07fb5b851e7289a58d9532a41e3f7ff42706c79219057f7e2d89a27baba281e5f315659501fa2828fd32de014efe125094ec5f698bb1e24458e97aa1445668a15c712dc18a7580ae35586afb41425c7637a2fc5b8912cd24d1005c3e913d278b04411055a693cf34849fbaeeae536582a35c7b4f00b712dcd7d72ab34a8fd510e12a620df7642d1adb712a617295191f554f9d5c412956fc76a32e6da13f484eaadcd0d95c252d72d1277f66b6a4a5c40c2846e636cd2cc24fdf9c43fc03dc31339e77cbe948a0e9aa073a1007e6e9a6b2db890fd00be4b094c8e08c2d9b720840eb5b6c16e2a714bf25275f5e9857d172b2c89698584cf1ba0768a3514e17b3ae2d4e1099122dd70c41789d5ce0636e566dae2b62a7af0688a26df09c0426f2a0298427b990f4b973a5803f328d43bd7df26cdad877a852510f75f010fa7a15dd4c04ad1b5863e6356da43255ea142cd72e884b3bca40db14afa1615e51a7762b69967449b7f91de5fc68d4e90faa27cece3ad6de7927d13859ff46a52c4c81687fe06c294d2f7840b3b5ba75249896a32853137c04bd92e4284910079ed1ba1f4af7c1265e66bd28220adc23b08da7f44b5474a46ed51de896c3b89a421365a84edc224abab5825eb2568894e016cea5e67d0cc0e59b59b8570e92b73afffd1394e25f2cff8f977f802c7303c881b63fcb0392cb5868129d3a9a1b617b79a0dd31d376064b54a422a4d7e444782ef6eb3a3911f014d7cb8376877ee9d0fce67ea664c2ff566d2fb39707a4719b7ea1e5a31d25ea57687d87ab6279d069e700336ab4301f6b44eb6af56340bea3fdbdc57f933c50c416e3cdfef9ccd10fa3ecf200b2df65316b001a612188e167eb846783cf55ed4673d5c59ed1ef64035ae697eedf4b95b96090608d6bd9d9b5229d0c24838070c1f4604c5a3fb596152c63999767a624660d290de12f1348265ae4655b9e87d340a331f691fde85600dbb692f3b7be73d306bfb5a37455d239414f99ea543a18de22da88993fa566f59a55131f01acc4f855cd03db416a1120e10f258b663cdf21892f37ab7c89098ca57da1f22484534054165ed6ca016f0e49a291ce8ba01e011334a7cdee205cbe999efedc6e97cb62cce371d1793d5721d293eada6d525923f2dd88d43d727e4b3a663b084ae6f72cd4d370d9b71f268b84c26e620164756823b0d30b1c4b375944876e5d86050c08c595369e4bb019f12c41fbaa5751bb5f7ecf0650b3b5e293044b22f0eff55c53204a3196eb72dcffb5ad211c380f95b15e861692ab2f7bce56b02b897c42310bc4f4d6235c0975db4e97b03e49d82e3a5b4b44604bed21b0c0b05c4dbb401ba621d912b0dda5d905bca82313ac7d05aad485eadc9401d4ae99bea3c52f7c49542d20c0be3c354c99dd0b6b61080a47aee67f722a968fe5976995ac60226302b6fcfc539f94af31d7ea0c9df983a1a505906de4caedd18e7f05fcf58f8aafebeb43f017dac7bbf91fff38efe8a9c67128bef5741a17b82fe21b3f862bee01884ba8cd47f206693089d0e5811768b29433f1652fbda1d76583c968cc126c9a60dfa17f2036162e495a6bcb887ee53eae497ace395b90b3445909f7732ee3074ccdcdf4aecfa13ca82322e1f3b1e96e7a23386f1ba806568295989ba345fda6ad522ae353ceeba5ef4c0cf6b28ac8be99c0bf09ada2f37bca83935f78a34e1d1879087d0e5e1d63548af33d79dc0dbaaf2d57c0669125abd4129a24577b9b19dcd82dc09716780c319fdffa0b475dbdd20bd19390fcd483d6385cc3426456716686f34a5b79ef5683ca598d18fa169cc207cc1b0cf2087b44fd9e6666c6aaddd9302942c7c8063f4595e37a60d02c6f5731e42c7029c6447343b5b9a1a5b01cad742ccdde37f456f16cd2b0876a2009da351574cdedae05ec6e8c9c2441ebb67c1e7744ead2b58d052460387c9a0714b1510b2d0f231307580d2bca060db2fc89225a525e2d7b3fc78b9c181b91e75de32bbdedaed2e0188dd3dda4ff8167e917e2295a28c83cdf45462f42aa8db633a5d7ae72550c3b075470876206854cc0721a96406e1492d11c5fad1897b30ea3bb961c71c909fced2eba917ca2170ae498b1cc75dc49bd5d433c395a805768ab53e1b2ddf8c2e2fd0ca495be337b1b7233bc23d6e8c1df608239a45c55024f3d5c32c290ad49877d180596cbc37519f3a9714cb73dcb04a2909f1fc5016be155e4db1214d36d0edca412b42334b87e5704be8cb279b5416d3a061027bf943b99179220feddbb1a2c7a7a0f4a1c598848ed1db71a09cdb1822e5794a39de814958502fa85ac467101cc05d9c4e8ce8b26767e3457fd1eb6f48d2197701f21cadd8a1471cb33e9435faafe7275cd7addec61c0464ef57822f175793130b46e2eda06853ea3df14b306129fdfbbf8eb3f74df916cc7458eaa11a2c8f802d5d374be5807baf055faa8f4f5d0d354308d25997831ac5c88e1523e1cc47e92945e2fce57a5e5ba94c85eb45e1e72e224e7c9cc29f56ad2261775524bebc7c91ac08982ab63a2df8eff84ac1fe94e8f4168e9a0d6789de23d8d85f468df741e3c9001f807111c8964139958d99e2bee7e6b6b2b50e90860ed63d1e7e19501a3b2311acb953006d291ba1051a38969d4f7a1e65ac1705b59cf6b15bd764310c63ff35e3d6ae4b7bcd7d06b920000a49bd17183c6dcae04b6bd93cb11ddd0ef773bd6d1a9d18c81eea102fd4879daeae40a0679918a06f0dbb32e77e77f4b78c3eee6dd5e0e366e046856acc80b0859e1ed6b7f2cfd725843cc9fdb5badc104483e23417ac76f9044908b6a1ce1eda5168ac6547ab8e41328c6c107a322a052a94ba899eb69e0eea6cd6204b7e40f3358230b3ec739c64a30857c4e4acd4202a0b4f65fef59932126221d492bd9502012a4fcea592e46d1d16961758d03f992faa6c4b7823ca0c67298ffe4b6431953ae812b5cbc22afd0bad255d720a65e44f0313b39c0eeed44013445940423cef46511b0995504bf4ee4fb9e2e8c99325da731f5a60671a179a083d4e62c0217e73f408e394bafd266b482011cf6509617ea53363988fc0300e59f9ca0cd61be1fb4c9b86f9b5def8fdef8bc04a89107570fe24bc891feb900d8406f16067aca406b72c6fda8a04076dc4ca9c706fc99193500dbd5373c7602fba803549811e8ad1b744b4208ada41d6103235d9b05a2ccc5933d1df23d298afa95b428b1f92f281750b37891b3b466dca430749321e9128761dc2240d2b00135b8c1f395ebd3908702cecc311da116cfb6761302656774fd84b612240db96c161528cf1bfac32bc58f7d306b346b815f7706d9fa0f463c9d410c180393baaa5731c8204426c3ab8d2cc83bba92d76a0eb275f7b8202641c863cf52e219a87c4f4598f6afd986724e0e8e1309fe04fd3738285f878bc308511ed245239920a9520c8dcd84a30707272774a6448010d1d0ea0af73571b42b6817014aa35e2e742fb115ce0324fffbcc569fbe34a7ba18965456b0d02ebaeb93c80a6fd6579f693c632ff9dcf170e3b06372350f1439904cd17ea61094f7ea8e8c930d015fd0e7f6f7b2d611626a8cd8d1720819a4021cebef3d177cc55dd2e3ef4682ebc15a8d0550e16e0e6f2b301ae0a22beb501365692dc7f033c5a61db4c99fc4194db781630498e80b3ec7ef778d2bcab28a4d527f994415d3c002f897e089256c59e40d050cc0b249307580f4f7fc14c41d0cb9d60904c11592a8fc6b52254bf586728ec9ef2164437442f9738936d1f27d5307b7788952b30bbd68d727ce422d137b029d0a1119f783462740d018a60c2ba1d5a89858dbe3e51eb7a90da12439a4088f693184bb3a4b30ef9887983d54a37cb09b342cf2a8435cce6d21d71bef413c8fa8c0e0202ac724e86355abc3479050094a536a7b5b91ecff319a2e9d241046051079765b10d0fe056a5f89e89ea39f7aac1ae137d5c5359ad5aa531e4090b458b08a33e04a7f093f8156a0f125ef37b77eb3b7bba5643e789f2771016ea6c3dc5ea15c160cb752f6049f1bca072280f861db19abc7da29b01d53d3e4c1e851438cfb7859dbc2a9616686d47f10e5c72cdc0f0358de11c6c4ebaad9f9509bb5afaf4d58b0ca38bd13a95b4cca7f57429e5033085dd92588d9021773c89b150ed18bf6871ecbb6f416fc30f41c516633e684c93385122c31eef655002aa338723e4fe4534cb22b842d59cb24bddaa167816158f586499f743f16df46fd5e83d0f9d1a1ec394f8664b2a6890ba5074fd6cc68704dea18582e896dee78a443aaa66f45bd6af79d7603e1a6fc57d2d776439b912426fc4d3f38d5de56746c9b41c23445afb8f23cebf0d99b707bf3c556d76606accc00ac859e30b6cf6c61fa2dd19ec9046d37f8744c0d8689e28cb95386462810e30ce103604907b667b5cbc05f5dda1ec00fc8e475c67975994664c45424e38ac42106bc52f6f65966eb62ae1979d078e87651e8d455a02d0b6fac0715180a8524f302734371d8d0390a3cd6ac17b6b488923ab61fd6bd9922d2183fcadc9f1551ff5d6af547257e3b958886f56c4c6d870ae1f4f7f5c3fe8c575b96e35810e810c85005e90c1612186a47b5ba9bd6ac61fb44a447aca7612b690969dab0514c054fc6d15c5820a38af6c37d5a0e8ed27ac04c8dea829ed0fc92d7e6b446ffa535a577253fca32a89d80f35f2c9ff44fa12454bb64830d60f2aa4e76a175e5c7bc109ce4b51b725a334dca68c19712f2a12e0aeedab65a67987392e58bdd43dd9fb6451a0942c83eb1c9d316c896e5659ce9fb524271c3a8d59b6ac7ef9b0fa98013408c4687a26518666105aaf5dac2a5b7e3e6b5517e4d733c0e6a277651192487734a50ab5531c8c70c49eda8b1cbb4bbedd58b9598dbf942b34afa309a733580fe5edd6996565483dbb4793683b52f3ff3d5d64531676259113a605179ce63670bf89ca9f89c5bc24e5aecc3e8d86b29f0e336a403ed64701b9f5511a9a0886c66c6661c4b7985e961eb59773625ae8a8f053d7d6588dc5eacc69643be608c836427df58da022f8265f756aac564f5c205889b9e9c4b9af161ca44ef0b03fe276ff3078af0c2f015817735999166cb15273045c076f4d785c9aa5de224dd4055a21a9c04492dc63c38a885e8131f62e98d4bf989836203e0f232f2618e610f78d1132143054ba0ffc14a89e79ca773788f73a8b77bc7b125b7d28f50b311ca64e0f8fa1953f15d9504e5079945a681ef1380e97f77bd05aef0dbe69102ce3033e2d474402f77e4c8865cd1bdab95f2181ce2c9980a7aed74be51246f6d449b69441b122858c524d05d0ddedbb9f3a00fe2fe8e84437d5a751be4c7cb1a8e94dcceb263c52d7d8b1eecb06c86ace03e00153168734169eaf37513de58f469b1837baff42ed7df27dd1941836e00f2d05bfe0ae432005970e0dcc29425d7a12cf79e948bc608669851b61f3772414ddf255c13329aaea0e1babad881fa4a66ce7b5345c8b1953b75334cfe7ddff57539fc8cebf268781fe8900370c14837c955d9d95019413dc3410d6891e0052a036de8f1432841e74750a0781e3e03da03ac11984f9fdd3e40135811897dc6c2527f8c8b8d8802392783760cb47192e16ed21a5902b205d35f240510751e02f59b779e16825d4b1a24eaa50e2c0776ef53ae04c6f692b9c55b85ddb6e719e76a14437aef1438e1ac8df5a954de2660d0f5e791b408d434b200becc5e92ccede122ff5110d78beb01cddfae886af23fdd6b99edc64327382c4422b5fb4a16f7fefbddab7f9ecc9deaee948ab46bb696c4aa2732419516fcdae28eecbf90b37f751224635990b001e84694c69fcdbfafb1b7cc59e66d61a09f2fda5b39ce1cd2db61841166c54736bded7168669c0a12d19fabb000882d2d0c337f6967c4b59996e91a8145031fcd09889fabad9020b153c3e81ab08fcbef5ced64794b2e321a8b9055f5ec3fd09e52827d154dd9a460a12c150ebe32396cc1d20582a4147c7db15c43849f19b1ec8fa6d1e969343230b13ef6433fe7a3e962ddf544cd7341d8444f6c7ee7d0273d9c92812bcabb15be83251961d461abdab416864d465549d009788b15dfc68260b2218875116e66440462f8515e427ff60a1e617ded86cf12ee063d50c0627d18b6f06ecb0706c3cb225af5a238476430aeb3e2636f4d3858b92ae3522bb1564de057ab7b37dd596c8a0d028672cace44deddbdd4b40fb5c75089865a8eb9f3dda7800d1b529e8807b8fc91d5e3112850bc140e9a183ad786689ed7f2c61275530d22b60c229c71478969d6249fc290e7d7837c367a3c7c34fb39a0463552bbd4245bc694bd7540b398e3a41684a1d09e22710b1f5f1308de0bfd2c678568ebd88c2f11cb259d80c98791e8ac6e7416771d9c07b6f7d4e24482c45ecb06f826d6c18e025b47885f4670c636386207d98a10a357c10d6ddb43ae449bd9ff70ffc7a63c176579707f2745cd8b826ab31926dd0138039a910ac887b1e2e64270623d160cfdb7f5f85caf938763c342e46280aeaca6b9c677dca6c03eb5c9822aa511c14074bb2722b063a0d264ec41f940f13a2a5c1d10ec4112f58ebccda080fb40de0eeeb29ae49b8ccc7698df59379939927e4ecc61fe039d04b0a7917d42a98a09df2fc3ff16ecbbc9a12ae4c589ae8082cf87ed29adca8fb6e89fdd8ae688ef1cd8af5f80831c1abcef167d765eb211b79dc55e9e7e542a4c984c43c3485ec3570828cc3c172cca22297f8ca7ce2347cd8cc69219c8c9e1d4ff06b0daefb4d811adf222fa249de510da0f84d71e94dca94e7eec7a12a148f20cab16e9ccbf54a4d3ddc142297ec05a822ba0c970b93df9bf74c8d159edf4d3052123568d9040085c22fc40e10c2e5aad2667422d41e29722fb51c0f6746d174b956bf414a6ff80ba01a92d3701fd4fa10978ac90b003ac9002a5fc81d22b67aa16f8e88ce9b2d21a836f241627800bf81554c39792ef9a1a190da91be7637348d0117115456bd536541ea51d730b123d091b334c969467f6d0c1db3201209216299982432f57938f6c23b3a5c7574e84b01de61306f740f52fb2a19c959321680c96f42cfac50f0231a6b4ce45e78b362ef45223df23aea04c98f27a39e2927c86453196d2245fa244dc163cd1d924b4b1e8f813d29b3431c7cb7d34384c35480be4931910dd50e75ed64a171c772acfca04e963f777ab531a51806d55d5c954481c34ab8614cf7643f4530c6b65dca497c12635da3af3eeab7c15a2692aae6b876819ad4e9ed6aa28f4eedce35a86e51f4069cfe5722e8f836f8c3e1fdbc0f7a4c8b3ab8d3138ab4ed4e45eb1aa58ae046910f402ff2b41c9a3a47ae7120ca8d061a9d577d2d1ba39944e729d8b6b2c92ccb0f4e417b135426da1160a5940ed8f23c6a0166d9ee4e9fca5c2a7444b77f96c67ca032d579820e4d1a261530800959c755614377540738d45e4a4ef9db6ae4c730ee13586603fff12a2f605b150433b64d90c385fa78bb74647ea144f8ca17518391473b75d08a8024a8641e7d89118342ebd56ef20ca29762019df61f5368748a74fb7c2e733523261076f8f92e7811a109712ae93895074d813324b00dac573df4e19b0fd0dcfaa0ec8bb828b00ae1d982ca21dc8d3276e0df785873feae16a405f3331bd351477f8cea4ada4b253541c27c8d43a39f8659dfb14a8b3d0836ee10a49638b7588c68163fab7790cdb0a6c7e5118596a7f19eb812eb14fdf2ced64e3fed688b1d9796d31d84f091286aaaafb1feebcbf3a72742e6bc6a81ee791a327692abbdc15d3c5a4c2d00abdf154d14ef6e4ac6e5dc7d547a2ea2388d07f1bb4246070aaac4750eb08c56e75fced1d4c2be5d58608a204e481f8503efcf9519fcfcfa9373a3bd60adca8262d4f5a489ee5d44596c2a1b2bd3f094b2ca5fb482e0a4e83cf6d089074b55e0c14512ef2bda63f8336011c1211eb9631b45cc07d2a12c1a8240d9407e2a781b4450cd3edd96a41c02ab8312398c37fe062b5acf7a5044b0d54b45fce39c20111a29199e4231ff6fe76dcfd32cd04737d9737726b855c1cc7d1432d627c3802577067b7527ea81dbb940ca7e0391a0cfe8984582a980217258c28a9ffb5a22f0cbee725e5f2b96e871b3d7f8c6fe32518351ea695cbf79ce937aee5d385fb9844ea940f44ccc15fbd42244bf9e64709641d4202b34bcb1de9657b013cfa06632c803481153699a46b5e88b139473e0f8db9d2dcd14917248d98738b706e425b7c982f99255d0ff702c96b41c2a937ddad33afcdb02b3bdfbca6f3706f1331746cfedc12755501e2d3719100a886478005cc531ace0c258f6be91d02353c2bfc85b4a63d43420bc5a69ab4e92d6b1fa6e6b4a92afc525703962dd394c61cd6ba72c970589ac3f0ea6015074bdbd06662d39a56ce2b41caa0e2c7f5ff850628efbd26cbac1350c734f10b25cfebb575d53134459ee27da9a65e155c5ab11dc45444dabb82e67a1d086f067b1b31dce304c7d7349341be05b7a0a20a0307b979301c2e18518204d022cda6a530b9b86196cec7eb77a4cf1f7633ed7b6f265b4d26cef802081c98258f9a12022b1d267683e48591195eb2d76f4b8c5528f44a50793f8862f3218cc423fc4240686291acea3e014ba80cc17ab8ddb4fed41a10b0e31b61d5a96e1586c893f7d87cf904c4c524c6792d2969a4d8dd9576b495e428e7fb412b99a85c87f6ff6181082758a75556ba831f6f8b576378c2d2fa448ef0621fb9910945d4adcd202317a86d6d510c4eb13b51934022542bdab2038c4012394d320ef0e3131e7566d3ac6ac61d47a2902366b8a8f274eb419671e3d920e42f7dcddceb23cfacb1160adbf70679968d1f15949ee0215a407cc7f468d10a34787087fbe517138f96aa528906e6dc54907dcd5bc0e5d63e077e77e0106ff9521a3c2e1860c495745c52d59ce802fda62a210a3d5bb2ae4b39a4e2c44efe3732786bb4da9e4b60fa16a0a8db79df50e0c4621e4dd9fd3773b585ef9e680665dc7f580245d42b83fe13a57971096b51859f70fa851da9f2d928fdf71035f737c9264645cdf1300832226fa87d0f050f6d688bf1258fb865731a7760360e2826c02d9b49405a74f2b3e81c61d0f835e2336fd366f07c942ef08931dcd2b029136ea53b6579a61ee73040aa56caafe4c742abc0270b3c130d44180135d3d44cf9482ecc920f8dae844ae8197aa70055aa642a5df9806f0dd8ea1ad6eabe7703cf6da15c2af8c12f2c14ed3f7ff8e937440771e930c75b40300d40b0cb29a569119d856de692a7a1f00c043ca3dfc5555c95dc06d609f534e35fb85b603cb47fafe60fe37dd045fb076ae57e1fdd9a0d8c0845864e9b513950799019a083ee614b2e4e85d208a720174a1e8f54d2785de9f68534c2d13667fee860e5cc949cd7e816c051b01210ba323e05556225dcc0d8dfdb46dcd4c56f584d596653681bc1b334c274be18fea42ab49cff4ee8b50b5f49ac76c53d97c1628b98c3de469128ca066fa01170f4569f21f5a56e91330dfbad5569dc5894844c725820da0b631d5c722f90d2f043e613eae0eb2c464dfd35d8055e741df36c5de9841c2aa274b4778a5adfa0e1d476fc9b024492db3236f4e1ac3da305963cb954ea2c586f9892dbedf190cfc07e856eac33bca32e9b4902c92beb54cf473cc37890bdc1b3a7f342f2ac05c03c4555690893a332b4c6ffd2691bec5c8b831802261576af0e16fad4f726896dda0379cb492c3f93d43858482b248cf21f981194abfe764352be85b8e7a282f89f0240bb59965c1437a81dbf345babe3657b9c9c78acce7a0e5d78fa2434dc5d41ee25f37d3933f9cdaa48ed0104d384952756c2cea7e3925165d0b70d7f1e52a642818bc58236b5f8655472d54f82312826a30f5d50bbd71643acebae022eabf6f49710f405e771aa1e9a37ff43d3e3493c01d842a1a9be64540f1d047db2f064fa0385d01479e1f6df7044bc43b11b0794578c3f46dbaf724b077b581f244685841089b389c8ea33d328f573b055d1b3b2405387e8994f00b35b3f35c22d2e89a8a9f2e556e735ea9041aecbab3f86e338329c063325103abc731240d88d4b1c3402edb019af429faf240f0eca6c5e9f309436fe6cb1be6f6be3f6540a1632479dc079c16dd9be3681c4c21bb84123f42e7426c18dfec789ba0c55780d786e6623e8b7c6f7798dfe72e7573e6ff1dc1a21a11f996252f5130375d281c1e4507708ea92d9a2a07e9dfc58d30e777f9fc8b0aee12acf9222686dbf87392cdae7d25ae12c65ec3d0548b3ac0ddf1faac14a3ba94f7709400c2a48226a0b22d767b77181fb40434b88fbfc17f7064f34cea0ac6d240a4d414df53322ae4294b0790dc0b17905e03b3f5e1acb6525e1a3942e101fb020cad291ed7b3c6a2e8582ab00fa65625940f8143bf2ea456b52d27cc1b1ef9d34ee4171923537165bcddf5dfbd564e29bc0726f997987a35faa575ff7ceeeeb09b7ffbb159024a262eee961d587fb1bf3d8d0977bc44f87a967601a802d443efbc3141bbddf747fbc8fa8e63505cc2d4bcd24654f47cb69568006318e3f5b2530bb5567e5dc3e235d07dfbcfc52d9923cc7535a8d335c65ca29fda2216e438ecb6aadd3ffa506b5ce1a89c1ee558188787ef26c259e909b100405b4c603e4cf8c91b5309610c4ce4d42f859f843684c0def2146e53e62e6c11011dce4413a3c7f51c608963d7080e4db48739f15e2d9cdc5195b121a43e3e6c9ca2f606b1c54b8d318e50cf76f88e8e3e11128fe1cb5a3ee3e6e30ea13b558fcc5fdb029ef0143ab1c8bb8c64a8114c50d6530a9ddaf91176c50a21f36f11c36eaee9d8bf82de38d5ceef14072672d5d6b5d7185c6acfc7e241f244c47746241e9d53443f1695f6a70a19d539bce1366d62755c683f89a4b5fc9d51f7670b147d96f0e16bd9f88fefb9a8ccbcfb77b15b3f4b18951141390e003129126696d4891533642725e87adbc314b90fc45a89eb82fac2e95e9a0cc1652ed8fcd556f1591b61306aa96dd2cbcc462e1c30f70308ac63ddf923a4a1c0ef62f4ef1f0a3bcf6fc8d14dae608d3999efa667d74b7a34ab5275741fb8d72a6a862c2c2bc8f32ef05c492c34bd39518de3d81d0a5f3416445fea018d80806fa7265231b115fc0e1cb6146866ca6c53243619f1bb6f47e958544d5a05b43c2035eaa40002a44889000f2572b768d3998bfbba7259edcbc33fa9b3ab64b050e0ffe0024788f19981f89ea855322c89f29d6a8afa89b801509f5a1c4e8ca4ccad78b688b45376a0e8560495f933171a739d455c62ae79cba651b80883a98687e62aa1c7c5b01232bcee14eae3662ac3c8c232d920601114e4ebfdcfc9c2418702281de6cafd534c100c3d5563daee74139760342396eb83388cb81f401dd91d4276257346e6086001b038bdb8b03151670daec8642e775febbfca12775070ead8bd96adf30e24e89841b0ce6a5ffc1c8482e305737739a062ae8479b0d31d5514cd411f25c246e9f93e69913926a34877cd47a5a179643127521f56b3fb4b42a466fe42b4c9886bdbb767294e4fcb5a42310104f8a21716bf6e59802e76a61cbd58eb87552340156cd7a62826d4bfcb023455f92e202b257381b23ccce2aa3f22775359c00eba1f282944685eec0687e35b4fce8253a2557c68ebd4a74181d233b96e2790ad6ece17e4305669bd7838d3c0ac8f0753a1cd8d0d10d2da552abf71153027cf1d82090154c943f4c9a4b4cc01f5395c70231ab11af1ca68c58841e34a01bd569e63aa7f3b1a1c6f243f6d2851f351ffae27cf8483f05ad4847f6b2533d9c7cc0a57e972a6467fff79d22885a29474c0ae2d159565d7c38754287a580971d44b0686b4418d8f88000089d8f8a623119b453f967c719f1ccc14785e21cbca7afef858e1ffca6cf97301ebd8ab42e7fbcd76702259659ec8d3b5e8210459481b2a4269a2823be6005d683559f001e0b80fd6ca4ae11bd2d368586fb72f8a0eea090a12cb09791fa7550598a4ae25a4840df2aeb976609481a522e87025014f4e537a9a4cb172545a3648041caadd7ac1deffc80a77668ffc6a94726ddc6c1d28e2992f04941ff8237567ae98aad3cae2ed3e714bf1d667487d576441a3f9476836681d2256daf6fdc70942240813f4889b9f9c489343171725004bc80086b02561f6f043a70b73b10fc88b3bb71c04990173032a8c64445cd36034c3113b08df04aa1aa5076e8125793b2658b40617b914f7816a19e71691cb3c25d840549230a22aa51d8128d7602fa227266e6aab76945b4c9ca836b6b934893a99b91c324caba4c9a9fa5bcfe633d19746651843f4a51e29e105ff61074bd1c4043c6a586a08a8f86f4a0cf74483d10afc34c2f48d89e59c555017dcb22bb920af945c0f6902b23a43e14f5b7bb6e7e7cc00168969518b9772e4813b4aea082cbda93d75903a7e7f19578e7d6de19fdb9645aa701098cf4e1e8545eddd2df27094af3c3481d41c0a5e157b10ada94a70cfab4e5549b4a8d052dbf6ccbe1feaf18e9a43a288415a008e8b61c1243a63188c0ef6d39cff3bbb3f8bd4221ca99f773f01888d04bb7e5d4ecc8b188a1c7bc4f7c41ff5130920db1c4d4b61c968b878b4674b5af466839a3bd0fc0c0eac32e33405728e8649d9a06487fb8efadaf74f5016e2fc7a31fc498cc3bace277023d473271a60d5d893fa1f5459b9758a2c44180babd8e8f174d2ea6a6064bf77a594a905e5410c28fbeccc21b0f2640b8f59c68af68df081ec23771410f72354923be8fd52ebfb59e63c64831afb60720e12106136ec09503061b457c3813164afeb0af68eb7bcb052043989ada1a0b157cb97473cff5c3ad54dca4d86aa15275fff0669fed0443aa07914fac42a62e9b2b4a97979ad23876801728673f5043a3fe13add4d74851c7d6c69489fa3e4eb08eb751568f8ec13e9863975431c2425b666a1d088e18a38976993c494bda99ecebcca46ea22d755e01413abf988a2cb19c05b303629248caa2dd089bf05ca13518cc67bb19be9c63147f89c37d10ead44db46bb7143218d44975b9e068a2ddc09e6ffd3995d78365290c3b6f059acca5a2897633dae5027eb1404cbb3907a7a671a937469009e7a9a30516e60625146f4132bf5e3fa635caa60ab04e8472d3a3ffc302c759c05e4a7f583177b590c40679999d24b084719ba4971a4e7f930e2b6f824a11809e736514f8d00db799230e8bc3840b21371eb2d86423b97142840ca47592857d0be56fd97413785512aa72dc91c796aac0a61777968246b339957e1c6bb3801d196cec2decc8107daf16fa2728e00b3134cdc5f20efe96303eae8b4eccec63618e6bf1ea80a7da2ac2d875b36de68da7315ad7690a9855d8723e1468a30fb5fd9ba61e0bf978e3132fcecdc1a03a9d76509339655137fb962ad1ca6bccb250cbafc99088832a2890a54c4a60983b694b04fcc94484647f5726ca534dbe1c5d1379068fc9d65f2b34aee35e9c83f0334bf00648e630684e1fed0c0e6a28ae5684b079a0e9c33abc5dead6fe7e037e2b1038b18c0be3db4dfb2c85a2af2f6761bc48bce8976fb8b7a7302d91cc0c87111cefedf4e6832bb36d38c8eb603d37c1a9f079ea0d14da278ca6589fcd036bd997fcf929b0c3b6218060c832ad1dc84ccb7a6aca70e345bd133993c1e9302e19142cc8510f2d75b68ee6df64384f7cfd44269f9ad6f0930f7f0c2d41093897677f3d506393e7b6c2edc5b1b6952827764043b440751ce8007e4720e967647d3cb3a9541b2729026ff4943606d5344e2ec43b106c2bdd192dcabab1bb3072046474d310873521a09ff1b88b42ea084e77bf624579c3dec9a3029c69400001a9172e84128bb6245b99dbacd1594b169c5cfea593b07a6c8c5c82a6300c265ae30e40631da548b05e80eb4b3d111c42666c8d37d6f75ca37300b749813c45a14c579119b97000ab59d10c0b3b86c486e3465db250a7b7d29fce0810cb5785039b95a05fa96d90f365db21ec6b09a72d67fb16984b364af4e0c712f8cbe4c93a7819c4f50a5138d5f2004fe92eb1734cd4dc83a986dab951bf70a934175c9257e88d1d9e69206b45a6e659fc1fd77777886cf3be8eb54b74aae395756611a0b9855de42c40595ac686904db722c0bec30944c58be46ffcb1246badb9c98e9333b79f72fa9cbba06128b23e5698ee48821c218aee526886adcfcec5b7599f3980cc056670f1be03bf29c24b353d87705072eff9691f8709839af271b1958f1f28a5dc1dedf36d527a7e3a1152eeb26a69d588eab182a775433631d4b6172e4469219e5ae737b3d2696df7e063bcea6b250fc5381ac944d91d1c148b464776252c745edd905086f4fa3124cf33f9462a263d303d464313e7113a0e596f65b03fbd3315e9738a7a3042c8583a1118144179a6118c3dbbb41ac200e68d339225e70050ea35a85251f953bfd5b94c870164ccd8835906cfa6b0e2f2200403d02fc8aa38d91031342d8ce7f64571bfd8464f802c854df95d73da0a37c160864bc2f54c8c95fcd70a27171788e7598391cf69014f918bae8c370b0e0b7500e793602f905bdf5a8f72d0fb51da83f82880fd9365bed2d8634e4147b03070244e318cd040198ef57450861c137793093c515930a0b493d5f856e9e5ea2550c1fb416d61560598123d8b1ded5441c47429e744b2b7ac4a29b1c7192625e369585bbcb330aec97d180b439570e5cba298d24c93dbf22f648c99d753431ee726d2c4f075c8eae462078fdaae1a9ac39446b9bd0ab07e3997758eda45d670c01c02b8a0383405a17f31381015c45b5862b4ecd4d41a0a1ae1faf0c4a93530e1be7ba0aa3279e235d5e90767d3e1f73d82c1b4599addb11ff490084043c1314eb9d7803ed8b7d70bf200d88c0f99306f22d0105c0c37e0cc35c05d20f4bf150413629338d2fe61ea5f42b3de9b6f0cd3064471e075e62eb9cd3853f6c1d0dc138489db25d9056561abbc7c34362ac535cea1a262fd1a8a392965d4b3f76af804b20141ba2e6e1e1581c584a9149e72ac6e44642c53d0e33a342057b161b43385fefe67dac2f31a0e5ad587604092f3ae90550a356a027fa91ad5a828c1ddfecae8e6dd88cc970a030d1f3451d8ea810a11485030c8db5f7d38270c2d1f3b2185f657a197353eadc6fa32bd597ae1c751f70885e503c54d3c20f4a56ed1f0e966e52164ae68173228c8a75e215abfb35d60083d9c2df4118558841ab5d64fddba55ecedcc3371224fb6158f7cbf177ac4a106704377d5792d6a661199c1add9ffbd15c004ca3d7e42b7e39111a77311fc096bf534bc2724bcd99399637672dd1bf0af668c3a50b3cce93e06913e4503410f06a73e8c33b21d02d3515ab881269f3b4d821928a9146da6079ee7e20f2e5cfe019c5f91ea74a75b6e07a9cd6a4a3b6a227d4e76484c20d615a6c8e37ba203cdb5e11a4768f42de8370ff3935b6ed96587297c984cf1dc535b384de7d9dff907736d63d133e0a8b00281a339a407db9d8f0f9a39e010386393f162e21fc96fb3742f55a6d3456a099e427a047d807078ed2decfb743d0e26f21c7371c0940706bf36ccb230435eb591596362ce09054303f7456010b8f0f3434fd7156b93df408f129d91ecca2b05e16bc92e8a47a6d6f58bc8354f49e9654b74798e74143093a64c12f6f468107ad58ec030f18d9a9fe1be8049b66a3cb21740a8361cf53801a90074619724f3bcef096f16340e05b8aea7076832d371f482aaa996d44bed05f56ecc81174008b1e0d515b48c958a2f0415f1d4d2bfc108f79f09ebac4a2579a720b013d67a8dc4b2b9b35b7a0a63a23d1307589052c2667156c05ba885e9429e0e988161f8ae4201c7e1db60cad18847af226a6669bf771d1cbf3f1f9a5a2337320bdd20e38ccff268124ccc0745b418185753afc7a010f5e009a960673a2bc175c1c1c47436b6d60b992f81c6b09e1f03c85d50aa371745a7a3300ce79a8c4e0450b1069441f7528c14002cca30566d3fdaff7e4ec0533c4c015cb5888f833c50cf5ca6894326d0fe10120bda3a8069970ab3768cbb8ba9390b55004e7418a2ee97764a93a4a99e65296c72854c1c8b6c78c9bebfcd5a821862150d39b15b4b763f38746896c1b73fd1c3d4fe52657942c6c992db7f44ba69fc0662a9cdea25665415ec294751449235f37fe74e36d69dd5e3127039ae7bd578c427b07d983e6116837d0d2e73e2980bb0ccd32567e1a9d19928daeabacf74d6844e07c489cf8618af207460b6b61ddc47338beab24107f1b0364fbb8f1b672f5db5d10f53bd9d87c260c5f5eb3ce4f465be5edd25feddd537aa86d4f5cc2c2d74a30dd857f7ce6deac206c79d1029969a4443990a56ecb36cdc513ab5c37ee38adc6afa48fd175f122ce66d0212980da77e7fdcc52d7036d78daf7b0e09c421057bb05778103a240c17ef7cf403828d85a7cfdbdb7ae826be4f6904d8e78c207105eb4128593f7f7149fc79e94ffffef0682cd9415a80a8acf64876b743c988842557d992e071044b21ed35d6e460c901ce7e652f8679cb6d9d195a820f6579fc5ca290e710994ec05a976c751e0990d74cd11ae5fc89a3609e9bcc533de3477e33cdf6a55181d7c0b3776f4cdbde4eefa580779e20c73b7f010ea577c167f97508b69a5bc5d9054058d9b87c65365e34948008b55a67a5165c7a83b359650478401ae8d5100b2b3f2ef602af26dc6ecdcd3269bae843582f1e9459a0c0810bee60385e7edcf749e51c426508450a9c161343b133f7ce504b1259be1af63c370a268586d9ecdfd02825b8228dca384cbd945038a28b5632a9bd43730dfba020c6351f310c23a934fe25404cba8b331226703391cc5ec67867bb161bff045e3b0cea20fd1694408b49d9e2451d2447628d35d803059a7f3420dc2863b37ac8b7f51d57b0105c88093aa327a9e0857a5ed7dc17487e230d7a191d982619f6019b47b530ad321d9093c285f1cdb159d8423d7b56fe05b40b437e32189bdefe0c0b43afd1007426dea7d9f4ec3a278e58e510095d67b1bce74c7354334e0f245ee0304c3fec6e7c4fa35efba31ff251198730ab1937e15526322007916ed0b0d28baa98b4b914a8cf70df58783e7c0e27b6600f953c88193e245f3165e41dcb223e8302b9cf051b652edb7c0bfebaec8da54e5bf1fc6370ded61ef8271749a9e9bb465ed94339e8b1ff8692f9ce348c3f93d629cfe5e0496f7907d4f947b9f6b2a6ed61c2a55ef463d2f6d8957c548a98decf964f657dbedc2364517bac08d41430813ea58372a327cf0b974f08987c504f50f8f56461e4d662690a906483b0c75089dd5fd344af749a254007e1cb85625c9bb9b853007ac4e8c288a9c6009b9e3eb57ad8b95c88e42f71eed7ba026f6f1efab07cba31000869581a39dfff26569db8e2f6fc4938b1434e7edad27de373d44acae06d0caa18ffa19abbe85abd08105af51539637e7afc2792a240a035ce26025bd8106eda9eabd5f9d043dc74e806a4bb21fac20e02c75c1988b9fbb638a7c9bca09b395257dfd0a5f907172aaa3a970b8b85911837fe12862b292cf02303fd005780b5cd0492fc33bf1fd08ccdcb24542654ad0147eb68994021e6e391eba246975d053a3993c744c41400bb80cf6d271debdd50d214fd51f8c63f4e5e1390afbf01298aff1078062e61be485c50391ca2839ae3b3138cd1441932d6d4dac0e850bb74e61f4deb94f37d8da5073fa9a7682773e8477d733cb6c857d3621ae3a941b7c6dd86f57dd56eda8ba5d39336e91efe376690f16e2862b546e7543fdd1ed0f99c2edc502df92432576b9e52597a09384bd84aeb24e7ac07850e0438b65779a7f13f3cf00840637cc753863da0b4ef055ce3a4d48052a7d661e78e11548a8e503149f7db7aac14f7fd8b0160f32896af281070b148a7df78b0a941a5b786bd74e685db8cddd6cfb49b110fa40a644752fdf66c1d0d88f714ac29f8273fb107c7dbc5652ff26cb2e4ce90dfa52764aa011bbf3b4d50d00c38c62fb669a7640911fb1a71cb7583e2605b3311346b4bec92784ab3536ee824aa2c5a4766409e5a3cc62c8f37e946a20ace0faaadc91158bd142b36d033f79bded22c32a91590ad63746d35e751c4290b165c67ebaf93f54ff9788a929aa3ecc6619233f39bfe3f57b4cea31af7292b9296628230ef1e014663b7d1305800f435a90f56476ae72a19a657f77d3289c52f77f20d4712fb32a2135845db0d14816f8b0e6e4e0bd330b59c5800f367ec55635496a73a3319bbb79031b4411160295f93debac93ce98fab7a75405cd06974a35034510103383f68faf4cfc160c6b219738746dd018c4a6f40bf47c1ad8357c3f7b84f2f58e3bbf53524fb8e2f1865d4e32946b2f647e0020109aa44ad704218651943390bb246820fb8b7a2cd0998f65481356075ff82eb3a315465c29b9e0ee5b78cd4af3d5190ea2789aaa818240a05fe7744680e5820da554d07d99b5564aa1ddfcac797413f66213db9baf81276aa81df87456876ebd370a312eec14420e7558c61373a8e8580f83fe9d37c640f50c6e5f32d92e5bb5718d42fa4523616c5fa598c24a4eddd6defbda59449cab40dc20d200f77efd41b3827cdbcf7fded4f187cd562812681e9db80d3deb779c77dfb9e756e0e9ab46b9ce3fe666e4ebb2eef6b80ee6cff3b375d01e80f7a9e4d7eb0a7c8e3b4a9a6ff02da54e4216eaa4f41e8d680a599baede5f8b6a560892bdd0b5ed05a1bda5aaba9ec21142b682a87ecf7ea209da6ce34df4fe20ddd584485262be6a01ba7e874f794f024e6a8735f31079d9656533964fb7cab1fb46ecb1fb65dd935db19b3bd523b0510574a2ba533db23f0a4b13306052048f19c3e779ce64066d77392eeaead930a702f311e9d364df5b919e3a60b631b381ea791ac562fc169bee751ceb42b11fc5446b7bf7e8985ef6f8b5ec8e95486fb29f2b8baf4e9fff28b93bebff77ff9bc3c2795e1b475723ea5745a236cad37c25e2649fad8f569f793c3a1b3b644b58efdcad99ffbbe535187d521368193e34db5ba2f71ec4b40529be36c0fe6be761a9ca4fd5319a4967469c680dbf66035b0bba79db63696aba9fa17486ddbae3aac482d2d2925fae50ca72efa9a92f434b6504addb95aebd353d2bd75c6d04b6d9110a7ec8fd7ca9ce37aaae7c1fce9db89bd8a031502420fdcebcb3bf9b2f1cbae7113789ee7799eb727cbfe463002b0b4c0e775dc8c99d7569f31f34b0b5860ee38e236223acedef7bcfccd0d6cf766de76779d84a35c7517c1cbfe934f92fff2ff423ee94d1ca6bcc4ef55a749a1a30248bddacbb51c0686cf75de570ac51560aa9a3277555a40d4e1db3ed84deaa6944ae78a3b7649e349de14902f871657af8642767dbf3eecfa93b4db5a0a525b821f2d004909e0489329004939016b8c036bdce5382c0a703989b63f8ec3ae011c667512eefdfd9df354385a21422370be941c268285e8f85f1f76a0b2d4b67308b6df615a4bcefc6b24f17f01dbe771ebc952b056d1860627ad05027bdfbdcefdd27f2f9a4c265d0201b2ef07197fce1851af5654610fa2064c1b38f910ead3b85a51a5545250f8e4aee35fcab7f49ecbd4a40992f2824c9a202a1f0f9326484a29039326080a14326982e0b0874913e4246a60d20431993630698288271f264d90107360d204b9efcfcd9814143e99c4f0964a390727ed773b44f9340e28c0f6757018a785007198eb242c6f7f871a3380bbec5b962606f0348ea5614b65e81fe0bab51caeb1ba83bf756799ce42e3c38cb16fff9b310e4c97fd99191a345cae9c4bd4b62c7a87eab29ceda10de0a4b53c780727edcf1b4753b958051083e4ebd95d19b97cc08b8ebccb219b529de47a9deede84bbd79457afb5babb7b75777bc489ef4e50edb436749296a5cddd10f5ed1203fba2501b4f9a691d662fdef53d5c5df35ecd626d968ef26eab0aab5741655819a956ca5a4bdd524a5dc609b03fbdd5b06051702dbd21ad8f04f680a4b645a2ba7faa95034cdf75fc65f88cafeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeba9cf1fee08cdc9291dab5fee830196fe39eaadfaad8fb7177777777777777772d6c8adddddddddddddddd7d3a8ccafcff8576485406cc3127a7c66aaa6bc66ea6eb662661c772a602662c07d74f96b0ebd3995d6b9d253adde4693ce3b04ed7c781810fef7b295963e3378ea9d0c90f844c428ab9f7e67caa5373ce6f396c721eddf45b33a75ef6cb1e5ff6cbcb1ea78bfe0c2be7c696b16bdc79f07c21bccc9f81cadcabf109869224e70fd6174e76bfacefa49314070d8c932f9b3a8c85c9a493b4b5cb97d60e8263d3566bcf191b278cacae3956d774cdcae1f400b6ebc5c1009c9f3da017e90f63a3879e63ad0449d89f71d81c02126ddbc7c164db9b04ccd9fc04cc19cf4dc09c0d61a207f7b3fefc1baaeea1b3fa733e911b7842508059fd1e3af327e2698ffbee51477428a0fb33083a235147ccd9fc92dcd3e6452698978d192afb7e3e0d95957e3e0e2a037ffe0c54661ff5134c799be79409c5d94945a6d4b1eb875b7cb04eeaa619296503c0fc3265fc4b594f19ff2f7f6b8e93f447e14cced8756bab83fcb0eb18c467279f4d71e72706391042132b084189cf8c2215c1055b042de1810c7630a33fbd9ae8960536c4292ae32659dfcba5699a3ea74c2d3bb0edcf1fbc54fadc95f8a76cff19f37cc6a6bba60c53993903a74c9cb2939e30ba4292153f468a98511748e1760b02d00ebc70057ac410be306207cd216ca1c9a6bb52cc997e885059b8ebd31750d9e9ebd324a80c14a91055728b26cd1cc2ae4f87525f9f12b1c2df99a97c49c3accaafeaaa9fca1e4ea64125e3d4ab8884c0672a5f7f8a0e9835151dfe8e2bfead5ee8a1b2932e93a868da0f4c80aff2f5e9105406ee38813f77a859a7dfd9e1d7a725f0c161a216fffeceae9f4369384e16a132f0eb0fd1a1c654faf5e97226db90432fcc4e65e8abe494dfa03e72aa175847fcf04d5f4e5b7d3a549f02d5a741a08e90bac5b75f521dfb6116c5d2db5605d87e396da607f3dca1a64638599fe65458398bb0ebd75abe2a17b8061d14fdb11614df3ecedca6b75697a61735cb8adf775fd225c41c76dfd7594b8d30f22535b26b4a1886e1d778788170eb843f6fe6876f73f8a6cc02dfbe6803957dda64d225fd32e0039833203e58a249f41063db17338ee9ad2ec5373d9871e616df028169903ebda5e1eff10e28e65244e1931882a505ec5b00ccdddb7c52d1d65d766e5a86dbfe97adf729992691350da24057c03650d9dcf54d796e1c87a174891f3b4983cad77fd558eac7ea9aaf92c7d4066b98cacfb27a74b21a41e5533f67aaa756c08114ac1a76760f78ef6c2174db9f3326409566590de46e1dfbdfd7a4241d3bc5037cef7d4a25830f82b91cf72cbd9c595d7a86cacccfda1a74b02e5f5baca0a6402f660027b4f6436d7a16488196d87487a692cad324726a8e93f5a467f4cb495b04d6f181da6696fdf03b1cfba1c62753fd93a640e29b2a05e29e0239ccf4b3fa75dc62cea1e1f26baaf5be94715099f953e4f1691a2a33dfd3335099f9727272ef796c67c6a53605821362b982cfca48536889ca7c3c2929a52b9bbad681cad09ea31e1c8af8a8311ca222a7ffa23f43ff4928dd7b5ffa5f6babf5845021b5fa50a5341a8d26a45a6103ca0ab8e0441021f8e2053b3dd0020f52901748308526b3f973bef78484f997b1e5a970fe7092fae02efa34af07fbcc4a85d814e092066d4a977058fd516339d726c749fa36fa38f45f334235e87af7ea9003102115480eb58b273a581c38fa5dc6c1beff7032071d8008a91aa8fb470dfaa455e27ab8ef25f53b79354502dfe77269dfeb53fa2f24d540c2717a1c752b807346676b70686872717017f5f183729c0f26601c9ca49da300571f38fc106d6e68ebf7709296b6db723c46434d8dbd288d69c1094b74808324a8a064469f3045124dd880a70538a0cde863faa365b2240b465e18d1c51235dc2725599a48410969df089713ffbe376321c7716278753999eceb5ee3bef44ab6bee7a02ebd92feb4fdeddd7bab9e7fb969bdd4b67704f3f61667c654eeb3a20d7d8ce3aefa38078d8393e4ae2456ade0388c07f17910e26d084c99fa42c61d010378ec87f7f0980ea62d6a1c664c5551bd8833694cbb7299874fa5f244549f7a71e555fe06d5a7547ee56f50f9153d84891e2baffa592bce717ad38b1963ad737ad39bbaf7303e3d2de93e3dea533e0585b30e7d93096b13fe136bc7e9518fd23ad34950c45c9e9bea9717669899eaaaafe2e5982953bfcb42f096993195bcfa650a37ec1e08aad35a6bad36f41bee15594b3d0998fe64721241109e3099504702ad618cbff4505fe2942f479599dd3df8aa9cca2a795697e953322ae36f32a95ac428ed2b9974f9a4a84bf215eaf245ab51da64b2f3c4ee288dd266dc7b0f326477ef3f76f7fe7b32994c68addb11bdab82da962471bdeeedc427ec5d2781b0ff74eba4974048d1c67392e259a636107257af3c00e70c2cdbf7de797fde6ba9d5d3660fe6d20b84ef7baca3d168341ecceeb4134f25d33563bb8a25a66b6efb3626ac7bfbaf09e35eb66b9ccb365bef7a3ac9f7f79b4b88389a2f3b0370beb45eea3843cfcf4018f7afe28ed37e2501290e8751f04b2cfebf885f4d75d5777d2d0b30cd93f4afa955c6f6f2019b2be972dc5fad9511d8c1ed4eff8c71cdbddbeb946a20e476fbfa0264fd6d613cd67257f5a691e797064060c1b4fd4c223f72a84f8119c3a9c2ae3f374e8dd1a82561575c5dd36802947e80ca4c54a6fa0f2a73dac88589855d7fd249855defe5bc0984ed7b3bbfcc98f92eda58cb751cd771dcbdd6da6b03274f68a18816960080f55e647eb2ccaf8c0157970da98cfdf934cf78ff3269ba3dbf6681eb9e3e36f7542663cad0b78f6b6c00d365bf346d5b244385b5f6cbb1c669e57ceceee9fd193bb3ed8cbfcc982e03213757d21feb71b0a89ea97982475ca180e997d8889b417d79647d1c1e037fe2fc05bdf7ea7bde7657f56080bdf7b4a54ec0e374ddafefc361e50c0e0e7b21ddffa3e9ba5fca769297bca50e9b2b7dd81cf7bd019cc4a9b11971c6068c9336090c43b34b8cb6c7838dbd3ff3dca0e79bb9c5109c27470abf136dc02f65baffc563dc4fef3a719757c58cf1be844176a99832de7b15f0cf8cf11e7b4e30fe8f083eed222617f36aa1041247464e8809c417e351f5e8f6483065b3d2b8229b23627b6f91e02a05a6fb37d87946dbcb3376a9705d5f803b3d84891edd733f6444cac20db09875faabcb7bfa77044100cde60c04352929dce55b6b451b8fe2a4d7a9383aeb32ab07378455bffb95e7748d2ab37aa886b0eaaf685b545dde1b6def551aa7ba3cfc1fd7cd5497f75c7e5597f76e05c6cf297158cac354ea9108b6f7a316de5fb1bde78ce0bd4412b70bef46c13cdbe38a6cefeb1673ce9a8559bb302d08b6f7f605d8b35924307dd4978e34a3621256e9b9efb42582034948494838b41e8ff9e0d0681ebb3eeee27eee9ba4285f38c54f973ba6af3ac0a60b78620ed4531de012136d568ffbc3ea617ffc510fb940d5c5bdfd9deb535ddcd7b875029798c86767736fad688343ebf97269f7e7a2a87a1c5a1155c6a1f1883649488eba49fa6e92a2242139ccf5dcfee99b24244c84bac2a4a19b03bfc64fb5cd7d7d4c3469fcb953edb54bdad33d2637cda55cfe80b43f0dc4d495fe537ad0e61e136dee53724997b0bb44d9b8f7208e7bb755ff61e2316fc63d45aab139e3de8772bc49759fea3d4edb1cc7715ee3385ae9459b9ba507e109ea4b9859d22ea03cc162734e36f7d3976cee7621582ad9c7fa3e4a8f6fd263b699950366878f1fec72b4ec203398500f9a728e507cba43d1012bef39b8ba64f6c4ef628e538ba5e2e6f425f1c1a75eede5702ebd6d32658712828f5363ab5ff969dbf8a7d863859fe29fe28d0a0ff04d0fe25c5a0b3463dcd69ffa536be93eee336340ba71698b9af6784e8a0f3e483d97b65ea793c5c4d27137eaef46699dd397fef4dd83a75c7ad06f9346477cdfdce7eb738dd072dab6e9699429b0e9515b44659ffe993cd32d969e6fee697098631f9326dcfe9e69177856f0bb3e360cbeff57c3d086e20d4d5c78ea5c0741bbf4a7b7e2014a7f7a3007b8c17731878c0de2c7fb94bdedb749033ef77ee430f1b977280ef3d064f277d1bb20346977e08b4fbd90128165b893d408b8bc3e9b23028b27c0e283949bee2fe6c81bb4a2e9a910b04371927bd357ceefcf6dc670efcd186ad27ee424f7b3b9af42b82c016dee4b3fdadc3bd1e6dee42fe6a8dbf5f52902c6d7c776a507ade8e3fecaea6bdc73497b449b0986549c4ec26c6fddd0ed95d619ce187f3097de73f7e027da805fcae04f8e63116f60b66bb0b371b243ddb0cf04cd1aeb512afdec1efc2fd349748511fcb48498819a557f67e6819fd99c954af907aa0450cfac94594accc07c0a8289a01978a910250801d04bc90cd43fd4229ca0e068067e29ff3099386106eae937ca30d72322109a81b70a4633900bc13c91e0829e19585a81163f33100cc13c7e4b88d9148213aa609b95760c433093af299e28729bcdd4bc94cc9ce8881920cd7072ce0f702bc9cc3f4014e4332b31788242063f389a81221538b8cd40d3173c3f33f07404298266202ee26806a6c25266416106e65933c1078e66604a08e639c511da0c5c094b9955c50ccc144a11867a66602a04330d153c1134035547498866d36f9421987f9848a8c2cf6cf502db0c1c43304f221c21cd409610cc530927e899812e442560a26706b2423053231f08cdc0186129bf94ccc0ec43c8c1126a33d02504f33c020b8666208c10ccb30a206833304608e65984244333f043304f9b139066600ec13ca360426d06be4c19d4ab0c19f6729df795c050349d300a95a29252adac648c2c2dac960c19325c60c4f80cc3cbcb647f6756ca3b338e7b30775fcadedf5c8a3d4aefe9213a5457fdd283620ff03b3de447753981fd6f4de5b8bfdc74984e49d4c169cf299d2853d9816df5ccdb01752930f570877bea96d35614b884d932c83069666d11e16a6346004ef0c48593462680e972033cd9934e590e54c61fcc81cabe29138b3501a5c00374b03c79a138659487cab8e75defafc7436506b061c6d0106c7f8e52a4d4f6668ca53c944e1a9a0f43c01bee4083d0dbe97276b1ab0ae655632a97999794c3beedcd187f8f0bda92f2e2937377af358f684f3a3f534964dfaf71d7a5907d350fef4d5afe50eb156cbe3b74d884f95fbaefbb17b274781058bd95a26f99c0fe65cac34ae01daad77a035a0f6d6bf200d72f531ecdd8dffb204481b45d014190a2677333f0dde009c43af7a9c6a13fc5d55671877f07eea5d9739241ae66ddabc1fb3af49dbec3002cfd7c29ef6d7ff353fe03aab1d39cf9ec9443f03326c207c31a639558f655402e2c654b69ee7fac1b4e444c7ffa39fb5837a43c7eac89889ff273f63dfd31620294528162617ff5fb34ab87f829e2efcc38560f93e977669c0eb99cb7fdf9406975d21a3edda12e7dec1f760778cee62c76faef716a0cf5dfe7380cfcef7b382cfcef7d802f87d1fdbd8d2bdad422eae1cc073ed885a55c3711fc63d2f8fefcbfa7dfd3220e9bff3df5b93fdf4bc0d30273f1c5fe1ef4441fddf3808026cdf083e007daecf4a51bbc477d8d571de0928b3e547e8a37a4f4105f450f41bdd8c3f4297ac849f39c1ebf09ff802a95521ea587ec505ddfa7603d4487eafaac13b8f4e0a7e4393bdd134ce77e57cf38f9bd0d27bf9793df7fffc361a5ff3e078fd1a06b9cfc6aecc55ddf7fdf9733fb3be91fe4f7df0f27bf1ffabeafa1c161f7bf3765f1bb2f9fd6b93725607d4a04e6c16e776b873839b1c8f16d1c9cd43e668c7ff5e12e7fcfc3781c8b2a0eee721f33260738350603f3d23e035cf3dcd50b4ff66b4f288aa06417ed708f0f858d68833bfc93fdc1f481c3d43d6c107089c1115c117f55dad853d425c5220f708727f1a6e53fcac2620241b0358ee3d8ca3a2e93d56ac17891a5755aefc283f5e18f2f8694074b97be5d9eead26d6cb184a1e797e2b7582ebf7ad5eb087fced59cf4555fdad8ab6fc927f166fc691aa916e29bfe388a54977404459b55cbc585037bcebf613935de3b437ef06187aa9248a9fa31eb88ffc39eb9ac3b7c2beaa89b65d4e5ce1e43d5affe4565e1cc2e553a48dd25dd2c5a675a9147e95bfcf057af1a1ffcd2e5bfd7a58dadfad6b7a0608075e68b3f7ee9a2597e8a3cc49f79cc654bb3e8d26e552bcff92ea20eff456554ff79f5ac8cbfa6b6b4d4a0b2198adf6a85e2affe55427c872deff2384f275dde136fc2d769d1adef441ee10e7599819d3d7ff5abe7449bd598e79ef9725be4c01ea94c05fad619bff5531f60fc965737951eb87bfc4c434be9bef3b6c2eca2597e953f9d7252b55af9ac416556bffa9aba4a89aa9fa28eee68afe8d1d6f0dc1454d9683bef098511b000024eb9bcb6e124cb53d1c645ac416566a85f54a60695995a88f651830a60fed4e5103d3e18e672f519d8d96128feac21e62075afd41d963f6c9dd6bb844b70f9527d1d57af565efdf7b9bc2ab3ace4b26e97b7354c37fdab1a5ff5ab0c5a51d4ac1df4c5bfa12ffece0e73eba738c7bcb36716e2bba56b501995ea6bea2abbe8140b0b0e111e59f2dc602d71fc00bb6853fa1c1bf3c906413a4bba6798754d5dedec95a883d429ae3e7cd5cf19da5d0af11a54a6d2e116b598a728be0d31cf7267da58e5165dd2ddf261c6affa17c66fc361aac7eff3c9c63cc05d83ca84aba96b509910c7612a58cb87ef03ac23fedde574c2e36e5157f1475ddae89183c3c2f0455d83cacc30b7fccc2ad39827cbb77ecc539776b77ecc2e2fdeb0b47e25d33d66979fe28dcbcaca4aa6bb355d7ee5c6e5c7af71969f79fc95afaa5fc9bec70c7e8bea6b50d9dcaa77c9a5109f36768ddb1e803be8349d9e62ec7d2af52a181f7eeff2ff31be257f0b0a89ea671ec3f05938f4a8efa31aed587df8625ebd2a9743b66ac7c86a7da84b160f96177f6e5db25a5a8718fedc43f67cd5d754552e591e35b67eb2f0085fe4b17ad58b2c5ac7ea55bfd22a3d8a25cb83ab3097e2abc41fff24e6954accabf0571a8504877afe49a575567ea575581fbe10dfe1cf5c8a5a88ff8f1afc9c4bbb5bbe8a3b3c96b64ebe7efca12e6358275be6e3a7e201a676f9dee573992e6176195f54b97c387f7cf17379ecf2e1fc51a54bece2853f43182e1ac663181f6618baa43b54fdd42588f3fcf0f1cf570967a8f2a1edc17cbae78b7ae5a9f8a5add2517d6aa6549f025379fcd58ef8a3b8fa9577d12688efe97d2af5aa952e7daf9ef5621e73e9c31e5befe2c2f2ad3c9d64d1a510df6506eaeabf6f11c51f9f258b79654c3dea5939480ebabf5fe5b95b3ead01bae7972b7f451dbee7a73ea54bd5cc2b2af258bd98597ed4213e4b4d1d3fe567f6bdfab9f22b2bada37aef4b21be553af5e0d7d410ef948ccae5900d3e8b68834f51b610ba3d53f6e17d987170d814bf0c7b3c81e797d3890faf715114e78b9a0627a7dd25efe1e3c139c9f935baa61cb2e7579ca969c874ef6f4777b43d6dc3c9cae924faab6b3ddd55e70e0d3e108417f440518513f4605667d841cf09aca0e2072ae062567f87fa3eecc0049e4f7d62b80068503b3b5657f576ad7fbbcad5ea4ebd56aed6eadca5dcd76d3df2defbd5de787673f95e5de3ac1d747b4e52d60ebaed9cdb93c26d0c335a31d2ebdf9f51619cb4317c799fbcf7be1c764ffbc6d8d7b42f8c7dc57d5df605f76595f66d417df9e52f59f6bdddbeab7d57f67df952b5efafbe4ced5b657ca9b2effba4f19ee54bd4f865caa678d2b4fcd525f9f74132bf32e9d5498fd199fd97c3a6571b439e91c7f2c5ced46bed6d3969c96d676066ed65c361e5ccd5a393f665bcc0a0f3c780e1d262b5b08cab957ba44aa9a4dc7befbd5ffabc2edb5bfb6e00c6c096b58fe32e4b8311ae5fe2a0d176d5d409b8c4b12d9e24f7381c56a66abab7de24b9ff3c1c561d64880ef06bdc82d65a6b97c0f56d95c761f60bdff42fe4297b0e137f06f1617bdb6e53a6932cbdcda507ae8e2bd6d27b99fa0eb369921748d9f41dfceca7c51943bfe461fb977269da34fcca0c74dc0d4ff46477e8d58a971dc71fffc7d638b67e7c6f3ad9aa3ae5240ec21a10a0406b2548e2b505d0e79cb37a4ef270536f527bce18f2c75630ac1773f607db2fed1e4b5c3d3dcb1f5e39cb512177dfa4a4240ddcfd52221c5faf99978d99d7cc6b66e665e365e335732d7dcdd418bc9493f55f5e24ccab7ae3d3d7cbc60c8ef7bc719c3e4faa606941a001edf9524b35ea60a5947ea540607a83eae1e8ea47e77f9fe71c47cf9bff693cf358b193b59567e6ccaef4bf8efeb4ba344b070f765f1cfb6a21012bdbaa6865240b9205c978643db22232da1132da86fde0a0ad50994d5624c34266247b223b924191dd6448b225ecfab22b644bc88252885645ac7cb1f259415a11ad96ac9c5835b1526285c4eac8aa6705440ad1ae9f4294624b294a3182fda40ca53c913274c4e808db114547181d51440bbe38c2a7054847101db1e408278e68e208258e40e2882347f41c01c411a3234643a0d510450d4dd44054839014485270218516526421c515525021454d0a278640dbf573d072f4e4f0c9f1033302f623abc998382c94f1d8644c422635221b0a082d50b4a3a126504aa090401d4115811202890b9b8d09d1d013434232265d12425c5c712b0a834224c2236111a11021105f1c6521243454eb92e8826434d88f8c474693d5644d643659910c0b19510b70d9d13a10744074b48ea7ebe98a743e9d91ee07f683747443e294e08ae082381fa32ba8886209e704d70407e40363417dd8912903613f30231c866149c082604bc084a040b9c998c86a46464f88aaabca8aac407a00ed013d0ff071c0120728e1809a03829480a4042e94a08512b250c2154aa0420951286148094d5881b4eb2f00e906da0d3d37f8c86ad54564931939f9c4c9faa34bcb8a465991ad6801450b305ac0d1026e0be8c28a2cecfa0be06201471600c4027e1640b3c2664514562cb1c2092b9ab042092b90b0c2c70a216c45bb7e4e518e51ce91ac266322b3c98a64463228b29b8c48765493d914d918d91c4d9a12b689e2309310b2b0ebdb703165e0d7b739326d8098b1396d7e260d6ad2a47cccf68a825cf24e8c4d60253a244e3e5b08dbae5f63ab29aa31aa398a21e78791e78c02d518ece72b85fd50d80f90ac061baa311c4015471059a28a64b55d5f56abb1195f5f465463317ea28a7645720b92029b0b8c19292b2b7c42c97861c570b38188cad49f52200152714211516d48c8250217ed680b18f95d340c44de8f931e0b8eb6101212121212f26e20e5b4cdad481187711f83e1cedd9eb0e189da751b846c50c2dd2a0e92b82511e431185d18430c0fe61d46ecf8d9e1b3a3c88e1e2777f0eca045419a31b7560c0f43e671f91078b397d7b9679cbd6819ff52c3175386055dec1ab8e8c2ae5f7a29d83548c64b0cd906c945dbdc6a3727b51a834154632e362542423668e18c0ce361c82eaff3cbc83c3260f819046842001b01aae8085034830a66f0996106243224e701cd1044ea6ce3c514c016260d2ee60d1f19dae626746b42652fa3262a98b1d7157c6aec7504e4301a4048268c0612af880045280214710428b29a004504289a21e83505d17d7520aac4d1d4085013126a15d518ab56f34aa592e906116ed86e54718308378a602a80f9c08060486041376c37aab851045301cc0706044372a3e846d18da21b45378a6e14c18264dca2dc6acc05690523061882e069e5ed7b21d33208de0bb92743916bd996ab487dde1d7351a66510e49e1a7b1d6528668c46925cab311a40d9e6301b8872151366c314299d7bbedc937b6ecfed19734f2e52a53eef765938ba05fd00f5747154632eb7d383331e146f4e3933717a9b79b0a82fa9529f773bf0751405a98bdbd18b8b2cecfa2a21a0d4e7dd25a8d2e956743b82e23118cff364d76f296a3172d87d105cade0d32af3b0d23044e1688b28dc6a1034c403995d7a40402d2bb52218320d254e43885b51adacacaca8742993d225f9e9f23d5d8e2d5a755ba9c9903f7e1e0c6dc6cc210475d9868b29d3850d122adb44e9c9398a38e9f31383cd0dc6afe424317a6e3d3f403e3f3d3d2b2f8a36ab17c51bbbc5fa32a232f6754423090d201b886c98e2f36ec7d110fabc4b05474328c54583a109050155d78f111fd4c9268a0d92cdcb88ca6cb8c8c2cbe88604c6508db9d46a42bbbe0bc8155463ac1e9f1f263610d100a281a4a321e412818bf63a7a6d01a24a9c0d441d110d2197085e5b8034845034844a3484381a424dd01052828610504a91aaa868d74f2972182acc350ccd98a019535d9c10da3528316b406226b18f8c9005d11535a028824697db8c145d0310d04d09508dc108aa31172117edde2730ccc83d3fcb2f3e118fc42d529e912dde4c35300599864c3cf8bc0e448da65ace30457a6e3db72e909e509968b4c584bda0a0fad4935b8dbd8e6a3063349204d5180da02187d940c48309b3618a144abc8de20dca2ad770b4926b78a2524316130a355c2105143ce52809d01444295dcaecf275f4bd8e96bc8e8e8e50fa75149ebea421b46f4e6e2717cd4991c760bc100c0faa429db30bd1142eda15a6eb75546900390d2493aca82f651e1fcd98fa364c01651339ac062d2659bf0aa5b86835564313d3758519b48f682091c2081a400eabe1c824ab91cc15bbba68d8453bb968eea261981e9b1b52750109dd60c893c86588a8490a9544120ee362305ec3a06dbab8fddc7e8cf0188c9cffc191259c3318328cd739c65b1a6dcfa35dc2f44c21dc726adce606635463396cd506a99c42b81dedfa647b5f4e2144c9f967c8c836b7282f39078d9573f48c48423725424c9e185bb6ae5a2baa56aae52da79f373b6e9c339de72cbbfcbbc48001c3a5c59a4510774697400aca1d10acfb26e946c59ba427578a269b007b0a218a25c050044be14dd213873db9953749475cbe49ba7147506e926e31b67ba24d7d524de14be5b0e83831876f7dbfc09c4edd9e6051b17058d55840497ae2b14f324a8292744b3a32c2a2e8938cf44d12164ece1d63d2cc8e8a1f4a6e926a35db594ebc4922721891939ba4264e2639e97e4291d4644ff1a6d337494ec2dbe5e9a45d02a63f9d542227e7e6d12525dd24d51c769354bb49b279ac1239139b9373dbdcdd9b2427494d929824d5926a494f3839777d2656df24d59c9cbbded56dd7a1fad409d6148b3969807042148b4c9d6c01db2fa9935db91aecd3975e11bb3e78c51cad6d3463ea83d4bd554bcba64349a85075091155577d51a4b52e64a14162120ab40320cf03c75d1f75f3b851dd0dbe156c04ae25d5ae4f9fa49ca0449bab5336228c12a98f0f18723ce076c029e10a8a5135d106c5c4c97a0214aa96e2d554eaec940f3eedfaa69aa9b632aaaefa6188aaad8c6a2c657357fd7af5ca28652b53364e0738e48a381ca484f4045815ee5d7b4abfca3eecb0025ad9260d0a7c0ff4400ff440f04b727b291f542d05b592690f8b4869297057119cbe47f938a9c4545bf93e1c7c14e5f0c308084bd4e128a44fbc1e2d31078ac3505fbfeb2e2ae39899a1a1e6ba88384e56228edb348b49a3f2f56f93c6e64e1c5cdd573d7d9b7afa2d2a1446a5502cc03725daa4b8d0bdd271350cf15f30441286b8a36e95f7f207954c674ccac3106d541e1c432e09d48885856efa841e5128b6a61245d174f50ac895a054a89bca292745362a3a65e36e00b68414ab7c8b689312dad7a27e8a3ab88dd2a88b42daf7aab48837ad7d5bf45663e3d7a74693a6eefa37d74d8f6a6ce5ebeaeb3bcd6beaeb7b1187a57cfdb1d6942d8545ca28f544cc11635f9d2a2ab28d78072d97f06677a130c01865b753b6e9aa7ffa39632bdfa16a35b6a24db5ab6b35276f80e9cbf8d58aea532afff79fbeddb953b44119edfaa6fa622e2d935d3f34a16a2545daa924b8935da6cabacb946d57270ee3be62018413da17c816b4efe584f6eaa6e22e549ca6c33eef82d65a9d92fb6a2d681ff4da99ae7bdf7fe17720d88160973fcc3aa54efcae0bbb0f3f107f8d8ba50fbf3cbda85b4c5f8a0ee2d2773a046b50994f7b9d2e39bde9895e2faa3072b7f77a15b62a82aaf8d935f684e2084feebd1f576ff73348dd9fbe628e9ddd3d58bf6ffef7e9d89f1ce5b8ea1fa4fefcf97d9fa7cbef3ff0bfbfd1e1b4fd52086a21be4bbadcb11e970a391d58f1c406c09e5058e143dbb4047b4251c56d8327cf7fcea7d833856118eafcf085a19df17d83d4aeb41b55dad87607044baa4fcfd137d1377126fa266ed674c46a323dc79db83f852fc437fde14f5fa63cd6a58d1d6a21ee758f7f3a0cf5d8a4c52f5374f9f851793a897579d29e2e2df7f6c56c37a74b4fa79ecb35a84cca49aa434cb921182d01c25a6bade77d5d47b929765c0ddb75d65ace06e59ea3dfb910af02385fec0ff0741b043c311d01385f4a6f73de9c34f47baaa71d020d3b916acf4281ebf601d6f9feeef2f7d781e287978659ecbefb29d2b7fbd335a80cfd9a7a756a6ca5c696c3b869ef10ecad4165aeb642c0dcd31458c396f501a6dd835f1fe665a3f4749735a84ca88dd064936f0426bbfe0b4c0d11d42f2a632d8f5baa41655f5e5d83cad8cfc0cee6be2c69f71de7f970be3b2e755fe4acd5e7727cd4e0f8b5d4fb79750d0d5eeb348ea681068f7133ff2ada74ef3bb3baccba35df8c937efde270d267340d384a4f96c817dd7292099e3ffe7deb5dce4926e054fda693219070573de2cdf160ce7b451bfa1c676dbc6ad87092ba0d8eda1e1cc1c91196d8e0c9dad8a5bf10df93c89e543cd902d8130a2a8436f7d45abb69dd5cd6093284667b7390ba395dd2a94b1b369c68c3fd9cdc7b1f660f8504735a484997d6c59b7247a77e5a889742bc460d2aeb347d4ed7a032e1d635a8cc7c4b3445931d803da198c2880d9e405073797e4d7d4e97437cd8e5fc72673b9dc2dde94fafb3b665adfd4e4f27afdfd1baa79cecde5e7c3d3aee6caf5340dd36d77d5fd501f6eeabe841a1eeb7cd454172b28bcd4171d21a6dee412447126912b0bf7b9ebd3f9dfc74596d9b7b9bef6f66ddb022727ff5736633eb861522f657928089e0f2fa2ce1314c84b27125cc473469608a36a70465e346ee86201786a268fad312d707c4cf3d8833e6a84e325e233ee349489f829cb449c025260ac25fe314838f893810eb1fbfc17d39a2a811f40866815f7a94279b7b93fe711865813ac7c7bdc9f4dc5f23f7477cd73c74bb44e992853745da406650586cee5136872101fb9728279b7b9087e9a4a8cb1a05d465bd6dee6bbc1ee5a0cdbdb502b3b0be1f3f889dd97d96ccfa9ee583d899d9c798a8c658dfb3b0adc6589f6621c07ecbf7b0dff29fee719fa5878c7f7f080b91935f62279b9baecf759296af718b9b38c961a21a3bd55a4eb539bba79a93dc5fa01b747dee0f0bcbcfe67ed43e9b73826b9d68f33dc8f23bac1e2d2de3efcc58b20355173766ffa92eee9dc81dd4dee4c36097dde6eea4a8c8494ee555449b0f4c21dd1f354562f5189fe559f410fba3765a7571dec461d39b38999d283b1327b9d3734f831c067e89537cc03f0555976b10f55f46952e7e307f6ff39c9d82382ffca04fa36ce4be494202bd14ddbfcfe6eb441c1a0e8d8643a31571d8f738341e27716845aac0fe9388c6b3a7788343eb718d432b82bac2e638d1e6f3c4cf1e019728dbe69efb7158396b38b4224ec2381c1acd73e937017373d93ae9204e8823d28f025ef9d5fbb3a8cef16dcfc7c93d7e8a7b3edecfae3f669c471d4f52aa1aac13b08502b6a3e8cfe22d3b42fb045c7a4f11af360bec53fa70b2b6c41cdfcea9315b350c2f3266c440ba6480890980cc8b86e9544300366ec0623303a091611c0498a1003530b8f9327d351577171c81f3a5bc49c0f4eded02997e3ed8d5af8a35a58615ac44b5daac6b6a57ebf753eca05019777b295b29f799b156a8f5ef5b28b5da5496c70e63b150ac70813667ad608f8862e8d283a14b1cea12bbe8724cd1e5d8d2e557b2d3e5cbbd25449bbadddeac40656cea39d1a6ced578d22894fba0502814ca7d6aac0e0d0db9cf90fb0cb9cf90fbec215a77bf7cedd293e42e95eebdf841daa9d47ceaead08b24ffc7d11bf23c8cc791245faf04cc194f10f9ff8380e175feff1e59cfeaea0183b6b5eaf2d7daf65417a5f5b7eae6bac555bcb1f57af646c4b15b75e3fbfeb4d7f42eeae8b41d9a3133469f7e7ecdf5e6799ee79deaadde6cd0ed45922af8bb4630c6f8f1978fbf24f197af93e7799ee7790f9eeebd0f8629e2773bca05bcfaf21a79bd425d92648a2effc71163159507ab7dc1902fdf1a4b2033fb1a718d9cb880c72faf916d2252f15079a5de4ad42e6d906d52bd222c8cbc2395bfb68be234874deff12247d60a5436b7bd856118a652a99aaaff39dc33e535bf7da63d74a35468f865952e48f5212ae3bc76effdbecae9925a9107b8af7e2a74dfde6c7fee589b1d96a255fe7b1f5251f95ee55db451d113fb2dbf7dafc6feed57fd6038c57a638075ee5f4e975edbf661f6a7882d8936758a56c8d65495fc51a15a79aa0fad34272badd29cbc4fadf652a9f4b4a7529fd3835444c07339fccf73566f0efb12e033da53c1b7d9fbff3678439ded12eeb243b3ba2aadc6eaadba9c76a3f974d30b706983ecd79b93fe5ebdd51bb6414eda6badb64641271b74b241a7b7410ef3dedf2e316483eee5ba8e13bfb4b72e3cf6ef6f69f65f6721765b6d8fa6d1b7bdfc6dfa05367d698d1ee5339c85c27ae3c1eed206855b89c366b595491387754e1c768bb0307a7204c5613796fd29e43ba0b2b9bf9fb55de35de672f5dee6d2fb7f0f04e79e01b65f3fffcecccbdfe33feb214cdc1f32abcbd357f7f8cf9ff590d7d3087e6bdf9b31b5cb2927adc64e3aee022e279316ee020d3d72a875c2eefd395f35377b2fa48d19eec2f01986c05ec0a547d69757bd574de128d806c1fdf74174ef3d1126ee13e1fe23d2bdf7dc7fdf83fb4ff7e8ded3a590faa193d704d8fe77d6ab5b1480a59039a94da9a485809e47bbce39aede6badbdb572eebbde2430dda0a8c3f31bef2fdd54d4e1e9c9fde73ba032f33dcf18eba4572460b553b310e04fff064e4f4cf5acae47fd60ffc1f4e98fc3e8115bf800d0ae4f8d38721e1cccead3100a2f68b2ebdba032faeeb4082048f19c3b9b52f207a04c00f6fc99e375e710c5ec1e7e391fd6be777afb217618f8f6530e4bd2f333dc85a2e9ad8f1c16e0dac34937e5d0f3449b5ac91c27bd048a61123ce2100cbd2f89369e07be7c92d35327e053c9be57faecf7de8ed7b6bacb36725cb4e18090bb3e770172db2beec0e19d672d8cf78573da660ed7f601c527533afd7c4fe7d87c80c152e839ccb5e78320d75d5b9d72d6debe2e7c0c7a6150af206833cb1ef7caae6cd5ee72375da72039b5412eb45965835d68730a6a835f68333e6d30346d300c6d1637288636871b348536831b3c85369736880abb6f7b5de6369852812be12ab4765cada8522d2d26abb91973bfe380cf1bb703bb3ea5612ad6c15a3a95daceda3386bdd5e9a517099c33f0aced99d7efd2dbb33eada8da9ef1a527e3e72cc74d9fce90f1a2cb71d75a8180f002a11de0262ea5010eaab11eeef2772738fce0d2a02774d98309dc252174836c5050f7340927fd7dffa03c373e3a0e0727fd7ff0c4754b797e38ccb74f4add6bb5f65e8ea3e20ddd9e893661f2c36fc769da641a31f9517bf8c0c161148a49ba67632567e2e4534a6965d1dfd9549794a5837e8e9330cecae1bb7ece0e5fdcaeaefa13c84c751d7e4ca3a01af31c36b98c47a750a47e50260e43bd36d5259099c9055c5f4e43f1e6db562bd1548806d12f70196ea754df4c18afbed49f1bc7cc6462c347c059a90482e013a1a5524ba9e57766feafaf5f2a7d8b1e327ee987b03cf83bb31208965ae6aca4438e8f4c6424c2448ff1e7136179fa2eb210c0f2f47d8c3f1f244b0fbeb73c8c8dad5b8c58f54d55b31c507af06f6879f16f00dfa489941e7c511361a2e5e78cb401b6b4e439ab648d5d2317b51168e4ee5ed2acaea585ce1616ce93234e5f23daf25749f9558aaab45264f9aab1397b596d001a9c64b2bd3ef5f183156172aacbbf669bc16fe5d27b996e9796d5afbc0bc703ccd11e64d6b772cb53f17b97209f6675a5b73d8707ee6f6610ee6fa613d86e1eec2e491e589dce61b5e4f0f0a87ef53ca95f7990955dbe25b79e25d31ff37c22b8dbeefdedc177f91ee0bbe8214c703f843ef89cee51fa961e32bff435ce2a3d4b9eb331cf1968f3dcac1c3a4dbf92c5941cbe4a463d0f7ed3f3e41c1e9e20c2473d0f0f7e1ed383cf737a1e718706525c3368f23f610f67e04b934e7aa5376d39453410020ba868826df6f3e97b938273567398e7cc033df2870e393ee8cfbf37cf5b5030b77502a6ef4345fa6aa3c444df73cf7db61a63f5e08688cf819407bb631eab3ef73bb3d277dfa3f4dd3351750fd3737a08f7a61fd27de9776625150ac10f29508db17a9cc43ffdce8cbe9787b8cbcbd42edfc36fd93409b8f4a109b89cb57222715a57f1c1771fdc7fb63fdd029e483b4c1ada3d3e8010badd0827a9932535b2518fca385bcb046c35a53949759837db76ef3bd6fdd2cf9949b3ae6621c0f4a5bfc1f4254d84891edd979e8827b4e9df50eabea4a72e69d0a6a1a6444efe5eb658e0936699b4a8593774efbda78970dffd9c859a55a20f6ad60d1e91afc4db0777c3a72991a7c9ddd56c5bc8ba47e4c449e5b81d1c3737c7715ffd28a51e678d70e9715f6b587580c5039436f7f76672df3c27cd8d614ff100a5bb63c37138341e1c1aade2d06848485e141c5a111c1a4f1424a42ebc283e1f16e05bead55eae0ba9d59ebd196329e54110fd1cbacb3e143870b2e792187441634f2894046d1eecb63e0efb2effcbcdb5f2b0b283fc40db1fa5f67736b9045cbdd20eedfbe4f63c39dab5a31dedfbb243af6d7f76e5eca5b47a44b46bbdb64b6d3fd4662f901301d55ad2a07dfd4691ec17ed4ab7373d3d6b8d06d5dab69fa9f5d9d524dadcd9c4c7df616ef77cfb1a88c73de8e5d2a39f89d3a393b6f5e2b0cb8d2d87e1d29fd3494a5f63a5b7afbd529eeea22fa4e20210a427704abd3d5d0fed59db3397d7079b00d722b0e7288071f3d9f3adf8f32d6963d70d5229e0ee41ca12a5c55204ee92d09fb9352227598e4a4d4a6fb31cb1dc6aace4612cb21c5525d09a3292b9029725a2d49c956c359632aa2e7f4f197929239c23c64e1d15e1b2444467ccfdcbbdbd2c3e33a6d3acae449477c9764b36ee449b317e8294d104f697770a0c1f14339d32a50f7349a4ee92d7ed947497587c26cdf7a72b588ac04246a5264ec238720516cafbd373c6747997884a444ebae7a5264efac3f831012e4b44dbbf6439b244a5260eeb3c098c93b4ee1a8c908645a03d5d10b2e082f620b91119d98e8a6e46537634df478d51cf03a2b29a0c08bcd4899322226c468e1801c2c88f119a119b91288c2c31e28491268c28610409233e468420c246848d8822228c88381a82888812105102228820820822882082082286186288218a6a6c86518dc5b05e911e1a44ad67889aa5341f3a84104308711ba23684134334318412432031c491218a188226c41741d482a8054114842d88224ab36d9f1ad33f350603a8c65c82264d6909876121879d9438cc34e430f1098785354a23a2b4192841693dd78ba21d2a769cd8b1ed0cf5501a10495f247191a445521649572411252de942cfaeef811e0ff878e0c703405af8d9f57b28eac1a887a31e6e3d74d103520f513440d3008f067a34e0e3451676fd1eb8e04a437cb8d9907ab0715b00f570a407207af8e981e685cd8b28bc58e285135e34e185125e20e1858f1742dc6cbbfe0eb61d8a7630dae1680ba35d5f0748274847486748e7099d9a0e131d229d263a369da21a636dc1835d5fc70998106c08f604ac0623823571b24ae14707568331f1980c8abb6a8dc96a366c781ec663678d8eca2cca284aa392688b9f2d8ad842882d80a0c21754e0820a5a50a1880a5448e167d7afc04f05802a105401a12c8276fd1f473f6e3f90244093008f047a245044023e123022811f09006501825d5f0240c08c38754b38faa1c48f227e04fdf0313232bac2880aa3288c96183961d4841190d191251cedfa0f387ac0ed0148474e42b921b5320e1c3db225b220cc98fa9fd5b2da127e861ef0f300a007043d406809464b285a826d09444bf8315274048923421c013ad273a4e8081547a238b2e48813479a38a2c4911f7aa4086aa46817d5d88b518dfd113572abb118586c92d324c78632d96ab51c26a7934a8e508e921c211c9cac3e4e46e404f1d08207153c8e260dca06643b622bc226840d08237c61042e8c6064842ba608dabf63688711402ad8c7678791146a0a9e1d3c3b7a643419906c0999904c4990ac260b82fd9041902d9932f0274d099f9a38cce430312caab196cc08598fcc47f6937384a408891192232447900081e40709cd1e218902c912244e2069028912489040e2834488238e8e6a2c868a4a8ac50038347c886068309f1b54dc70e2c610ac0706c48d2f6e7071438b1b59dcb8e206d18d25347c767d1a3e35f63536036668d787a1c1f4c0f8c01881f981310206082609982018219813ecfa3045c08c088205cd40eaf2910c483238210312320cc90024c34d062d64c842862b64a042862864582283900c4acc40daf56720c5408ba14703edfaf928df32528ea2699a47f7e822da47ffe42eecfaf90bd80fec0706044b0266040c0816e437ea539696f1b8abc27eaa8b050ea3311913590df623abb58a725136aa473210f967d2a0b22d4791976427721359898c44f6c942b48a76fd5651cba87524e391f5c87c46d80f5212182c2eb6495372e230ecb093490c8f6aac25ab62d7975121e391d1642ab19796ad5504eb8b960f0ba945d45ad272a2d5444b891612ad23ad9e161001ab3da8746b74b8b11e850acd88000000001315000028100c078422b15834cfa44df70114800f8cb65060569947418c8431839031c60000000000000000808001e0a70881b467a3d1abf5bc6c828187a33d4a1acd531578b4b006630768df63f9c0f717f1b812092398dc51ca587f014c9bb20629ca1476098142353c5a89f910b254e82009010c4d709550f0af8d84154f35482deec058f497f21c3170bb4401096c08adfff2ffe5f46a526b618dd3bfd538d72920e3b1df3c1f15724a090f9bfffeaf531d4edd1bbe4168f4faa73d9b986290ecc11886f490ccc77f3c0a63e29695b35bd932e0dfd69104d95249e959d57df62d26ea7c768459921a5ae37bb4b566edbc96d6b2efaf3fd44d418488ecec7db360b9aca48e6d2b59385f76fccd90f3e64378fb809a655b7873b74f054f5c314de3c565dcf3905f374b5d7c699027b35289d615b8c8204120a3d006258865fc96f74669b37635c76dd599525edea1ca23e874728b97603ee521033ae3ca2300f5ef98689affcea51b492bac3c782a304c6a937a333df073370bbf056c0afeec348ac6c697e7e8e008ae1d2448d3395c3e5ac76e893e72243529c94f0d7d6b70c8834ebf62d22f9c39f16ff0185d8fcb68015b620940d2d8d619ecea339bbc1283a3747fee916f275070582f7ccdf9691e9d02d03dce8a2a92370c0d5ae196db0bdb3d13b489b150014f85c922da087ca68444487074d05e560e6425d8370cee7aeb347145d1617d94620d1b0fae2920086354444fa70b54aa41e9c93c8f5b3573314a1312f7317034161d9d4538a92e0a993e7941910588f0374576978336495853d7fe3fca3bd25524fbc0c33e04a4d158f120f2c13dfa6b25b1c9c39989105ab7651b660702d2f6f3bace2dda6877638d8a5e90904b083e7112c49eae8ed2a5149ab44ba349b0bb76047f441e49e4545ec735f85b44c39879d5fd8897ad9beb545a3281c8f8b327bfa7b92ee7c3652d57caf64ff693c5fda75e2777672b051136efdef52a9023df0088f817588ad9157924499a6863433c6892dc1740d449fe41413df79a9c504321f00eaee83b1e5a006cbd6f1f83dc772292621bcfcc4b4e952b345d3b708dc76c63667fb7c24c304272771e36ba19ff60428d406353f3cbcb840a7d193d7a54e9f4593cac7d7a3605f9137970f5984e738ca5f7fe6a62b298498b97e6be27c53133e0af1b933e361b09afd9bc55e8d9534ce588df7af0758420aeccccdfb858091a98e2604143e434b0a11103b4971f388acb428fca16deceda1ba8344a75395bd57bccfa04874337b0d86f31a05eda8b127db019e45c486765c8d5ebf4fd1acf9744e299cefd42d8cb4f7aaa9de1fa13288ab868a68f885ffb8ba74cf761e33a956a9e93cc8aa26a00e4e960437664584021207e5321a860683ba24508525591b1f9f74baddd09aa3902c97ac9524fd5aa46563a5419c84dc68129cc53525d79e8a714db6574b31915ef533aaa8a38ad1260dec9fec33e6e9b415529ff27be05ed680763bc4b1428be4ad1b8cadfa307f2611598331b6d278fc106252a0ac857e0260110ce75bed6ce4c9427cb564aa63f8e84f4278a1e7a87e0f046282ae08dab7dad904b204083d2427a8d2a28028bc1762b12dff773508397ea8f75973485d5c1ed0a5ba38ccda4410086ca0e30e505f0c34f193db31b03c7473b4f4e4e372a5185d937786f4e03fbe89fca5156682665680a26402136601eb67b41043f96fe5883168fc97ab0ae019d997141aaa123179b68eb9b437373a257f8eb88e34e84d955dbcf0025a1ab547b45c91b10c334bb0f28e8a0e19e7ddebc9a447f1f47140d0d753c4615e308eddfcddc193548620cd95fc80ae787d6f7196110ea5cf4f799fda75deea863e90697ecf9dd34e6cf015c26ccc3572d8673bdc0d55966387eb19fc6917f4f31d3741fc83a26fac4551f0a16554cd3bf19317e1726ee50ba645b31c4efad700b336622bf5aa368078cbf3a9ea1f1b8a6715157ebc99239a264fc9677784120cbeaacc8ca98d7b40d1fdc3b2ca350209dbd7107eaacc9e80b060bc98005e518732eed447005967f63cbfc31c18044053d809290fe6cba9d0f85f78e8925e237ff38c08427bd5fc0d90ff02802ec04102c4db7bb1ebd22b93687a16ff3ca888e978eed9645c74d2d9b7e93c6396ece94a3294ae7f1d7b82f9032a80e1edcb5470eae271c44569a5a9c77469bb211704716f71b5e917475295309b3d12259ce945eacda66cdfdce8101e603c464ae4cab9ac5db7b847feeb1d9d0f313d7f4cb14f163c92b5bc26cbfedede0bdfcd854553aa5128a9f81d48e85139bb632baeab0ae1a1f2e03553e700bcd3afa45798f57b60ccf43ccefef82e5608933107f38b7fb70f02590ded2614e8549b2bffc6037c7062cc1196582396d9631add2f1ad4a505612ac436d25fbda26907d076a59a178630d99db0884c23c42d57847efa2d71f4f7e56f1217a0d48995bc761855da0f1279198127e12b1d95cd9117f2c83b005f947d22467ffd6b593af07b301c00bae468b7c359ef14b3fbc6aa1f98b94035adbe1b9f3d7fc58dbe9feba8a60102b0ac09e81ee3d439618ca3fd5a1001889465d44b7fcb3934b788636f49ff275c6aaedef4652062260fd00ddc511d1f19c75517c00a99b71b7818a19109c8f5489bd1f85f9ca1f2e5eaacbfe9ea7aaf1e5024cd89cd22a862499c7fc2a705570ca0f6ca029a6c0d7c0fa8a137c6578df574d57484c133e4b6a55215428234f25b10d2ce22e5533db15e16aa6b0f0036d6114c1220a080e287490053f3fa6faccb81a138f3f13ec900e251544bce091eca646a49b0cd2ab7897d459f9ca5b905157be34409a7f9db01af30879280939a802d5148f0ec3287725db75164d3df6a659f052663e1ec0d3cc45058cda7f69c88d9e5540c9125d3a6e39a059f46640eb89ead7e840f396b83e70ba6b384bb15ecc2f7439d6b12f7c08bb3b2cf07c3bf19859db006582784a379d02f276d7b2d57d108a6209a00612642da9e28144c0327af3f86dd66f8f21393762c3cad45aa4af28ad20397bd5b1ed28194df4d0fa266165f35660c8b4e2c17a4710f45a59ee8f20655ebcdeba6b7af36be8ade85eaa97bf34a82d05b2eefa26cbee0a179b5843d9bce736c185aad39cd58d6c856275d22d1b25776eedbe8369f4429c1341ee9e7bc954cfe682abf2fb73e3f7942e045d5a087d849288fad987674f35d2ed217cf90dc45596092415c9e3fdd8a84b881af29b95636dd9430c21469b307b86ac53522343c738737f365c020286189128958d0d1a3b885e00d899ce1911f56804d36d409f8a45d65145e6175b53ef0f59afa0eedcf2429f152f8db524cc6963b1d8de8443b983729428585edf977e1c2f79c38434b85202a58f6ebdbfb554537720ec006430555b1f3cf513e17a7a777fe984ff72363416adfe42ecb011f4497566d26c69321403463c85363a5f19df316033edf86a41ac4a91841ab095a53f5efa1a20cea73dccf799f4786ec97da1716e80eaf00de7bfec44a8f11d8f857a24d0e87db0623f6bab25ffb41a545ee46c36c7db991639e877b3d5456e65ad2d56730bcf25bb5dba968e9880dd52e852a8921c1604f651346d317a3ce2cac96a3779e781cc5e10efaf0e77a78e54f1a9cd3b8504a9689b6fa60edebc379c29eea9558a25082a65e87bae768dc9ba811a0f78d550fe88a5d155c634027819cd2d674ceb8e28b87ea89f086e4cdae5984cf2683e59c1aafdf0cf7b73c9b075aae050ddbc7f72ea6df5985841f1ec1a5be6978da747622d3cadd8261330402ba41ae175c56c337acc6e14a04edb90184d4a82a2ba1a8bbd8b956fa1c20523e14ffb93ddd7e7ed81ce3aa617905de2e8299ef72bf582cedfff98f870db6ae87d10f7ce13d47710bf49dedf43394db86cf54f232d3135d88fd5bf504ed81e16423fa5100aefb5e65bf87bdcea820a6b5e8af0c845b3aba0b77fecc2513bd58289ae1dd685b76e7d1b9fc2862547847b5c4136f49cdd7ffcf8bb710b0b16cf1fcd63923fef28b3a8a033af474df1b70877e5f551afb365b494659f25253cd0c3f57a103679f713f607e0398973d475ac98c18ab800ed04267b017fca2d00376b6b38da3f0b7990ea9599dc5d04642df3e221ae77d34682171d4dde75bdd34552d1e7e18f8c588dcbe6b10055d7611d21c61f3ebd8e5965f810788f6207c668fcf5922ce4aa9a05c65e1680709b2bd8cbbf7899380af856d735ecd38edaf52f4db95abb3b29e4f633e3ca8a5460428368c30a4af98392624bdcc3f6bb662074b2904c2fcc8c3e1c173312a066596c8d9fe38a6b2851d3cc328ff3393322792c5d901ded184c1d715ff645eab046c7981c1f2169d62aac81b625e8920edbe644026b3efeb3fe6a0efcf204a2655be8cbfa8f18dd2b0b32bc7769d64441388633230e487d4829e133c98a593e8e575cdb401b493fcabd60b82ee2825814d21a1f10b9403f24edb7f84e43852c340e9a2956365a5f80cbbb2861ccde6ef0849c68cd73eb935c4251a9037e447002db0391a10149a5f6af911dc71fa88c83e9defc7720823f78131b4667d3ec97096c20787334a4246e096b99b225e4647eb75b1f6233a6f673ddfbc7ce7f6ffe7bcbbff4fea155ffa5f9cff2d852158b6dbbc49015747bccecdf6cee3b5396ae39dac4551013fc023a85580853d033d78cd3543a352d41803f0cb1380c6aa8389cedd2f511efb87a948dcc9edb95f4b88a29c569ef849cb6c3cde8c8951127d144f699240529ce6cf768991484db974c353f65ab1a2de36a5f673736beba4b49cd848ec4dc8aff34eb49b3f1a588c58b903877ac680952eceda24d11d24712634615906509c3f80d346a9942fc122c1aa523db4cce0d6232d94203be4d598615f67b81f06eeaf43605d8c02f339e3a06762313f3c6772b2ac14bf37f54418d45451c62aba3bd29ebc3c625dab62446f541066aa13c9f01df7c755921c70184ec2d4b2e1c76d145e11141e4ec259240aec48e5a559bdf9cec191cdc858f1c36ac2510784d5601a9baee1041d7e09d03d8d7096f0a5a69dc2a0112d03843a4903afe2f8a2fcfee191422f69608c9d40953e266e0f4b33ece1d7dc9a1430e090feb2cb4f781ebcf64fd661846d3e3fbdbc5c22e4cfdd45d355337c3e5162302ee14517b5e239e2f74f09f1b77d45c1780f39f49da63b41b659e8d8fa3512ba5b38500b0d9aaeedfd0fa20bf2a9633a91a0b7a64add4cd97dd93cc079c094523c7b4a0c83046f77f8763e635f703013f474c8af6c6b3bf203e2236c8599d220cd3d67e58f7026104dd95ca78abb78261caebba5f63283d3d60ee5c4d954a7b0fc4102f85070bc76730cac279a429c8aba59627717cb8f9b334c64297800813fdf22c111264202838ff31b4afbd19adc3bde1ff5094dd461b35aa895f398295280796df867563a5edb8ab52bb6bacf509e297cf14966d620599921ee1de7d37ac81918dea5ad2fab0ec4c72b4fb1c694d77246f744221f1afa8db7295111cc4117683a3e5bc4c3a43c5786b08b61a659fe69a25c7a6fc36659a9d356a113aa26980ca28217a5502f30fc1e2d19196d7806452602dc2604ff65a2ea0ec1b451ae4a0ec432f8b02c284a81f25b006b8201a378f02624c657e07565abf40144ba2464f5f4fa2c6e7c0748710d6d4bac07af82483b552de69fc1d6c2a6cda6a8f153d30a6da674ab7543e5bfdd75e147f6e1d229681457b1459455b30710bd41d86b56819ededd5365858adeac1abeef6d8d1adc8d7c3c16671f8bad82d8d7b8e05576ac5713d86ea142ca911d7b83f7bcca2ad8d9927d355ac1edc75e8a9700de59ab304ba88017a873999daa3b009b47c739ab7375f5565fefb38934896c2020dd245d7193e8935f11378efda2bd43392ceb5160d364d67b7743f38c04a21b0250db05dbdf095c39d2245caaf51267058dc0fe3d551e9e969086e9133b8259bbbe6db16228f3ea9913a1ea921ad9bef0b19e9e20265aad9864c5a668ca8834e61e8120b6dffd88a995e89a4256dfb7a8ab10c7b7b966979fb9b4cf76f1032b1fed5526c921b34cb8913b173c58869c910fc5b2347a74b0f8f19fab0d3e5851de30b276c54283b933ebb82ac10dacf3c0681e9bd3d36accbb07976634864cae2cf7a243333e948ccaa67590ecbd836a9cafd30bba10a81e2c679e7078e5f65665bcc009914a283960dda614d95764f335efe1ab8924fb53a10ecd7fab8abd526ab377ab877096c63ae6134617737ac9b08e06dd6bbb121671f87f75b6bafac17f972abb75e9bedef4a85fe50b6ab76feb87fb076a16da8c0f7ee88734a0a9d48e1d856c6e9cc699565f019111d62f4b8b79fd5a1ce8d5b826499003dc9c4584024d52954a10d13aff581c6efe80b72403d40d1565c3ee171c624763016c747baad516a6a200c1ac566aa61c835b7be8031a44cd08824f8995f0fff94b9590e2deadb36381e4dbc5cf0531bdd1d0e1a84c546a16ce307398624ea39e6b56ac03cb3a542cea9b69ef1de327a1a4c96ecbe73db8862cc7144a58ed99ed0ca566427e081ff5f9235c73c16ed9e2e60a52626c373d00caea8c91d16f502c8182dbdd997526496fab3e09f0986ba8e52afa46042480508aad3bc656dc1de6dfc26510bd43296bbc92dc20fc6bb62d23aeca075000ccd713b0288030c42e250189b655fdbc18152ed6734cea332d0e74be1f7da7a0b285ff1caf45240121caed3334c76f5e749b8c7df49c36f8a364ff78a9dee85dd894177d964dc71c3485e12983afa83d18d6adbdfbcbfb3a731bb5d729ad57d40dcbf7942dbb2c802b1b283e79fe7b1115c93a26caafbc6cbbee77bc4af8bc370080f54c38fac73c06da09346eb81a3315a14871eefdd560431888cf2b16db4eb9ae350697ecebd5caf91a6e0f4e619987be0ec321f65f6fcd8f9efab4f1eba83fbf47ff9ab6303c4fcd587c0a88830ebb3809552fd446bb5435b90e899f73f2fff61e55e13c53a6ed1d2df91341461df417245fdf62cf831707cac3c11e489b19fa84ebd7790d79739c271c99ef13a5a08a95fe01785ca818c0ce775f5aec3f577e07db9618c745fa97eab76d160eb7eb83663aa1cbb8858591c5ae5a1ea102bf3e450921d674a2002be409051e6bf221652f63e18ee4281fb4ccfdd601607f87c0639ff66d214c0f9960e59733e2b08d56c57c5dcfefa5f695d2f974bdae7f06b10d3b9374cdda8d00ab52474ac88bc8fa7c6fe09df4be3b2180b9393b12cd67ba1be8c12666730fd5e92fb947ba5912d7c397a0856756aaf579194ba5b736f5460f36026acaf11087f75af166db04e0ae4c7c1fcd0d11a38f44af33c5b396b509a7cc9c0d7bdf543a9e0ef03a7fb21b80c5abb29808af162ed4e53da30dd80807fef17366cb4ca0912cd3cb8f1c403a6955b36ee35924e7ee0d6777bbd28ab6015099c2981a25fd6ccc43a6e1a31e9fc2a1154dd1005976bf5e2a257b9b7211abc1b141d237d10da037dc1b8811f1e1033f76de785b90df7ea2aa7ca7a3ea37eb7c2f4900c4fac44753d5137a08fcb3dc7ae29c0e066d80fedeb1fe6bf0c12e0e9d1dbb78c378810389407597e3ad2f31d076a51ef4036124871e1890ed3fd0daab5264263fb1b8a41e02f3f6770a3fca56ea68787ade59d1e464c9f60603f675cce11c5f1b99a623a03268385c0b7c271bfac9c7d9b5452e9aa3f66d6e97d3132f200a2a9939ef632707ce3c0c97090e273e56eb8003eea8179a2e2a49086c265d0df5c80db41f4affe3e605fdced18f065309da3a345a6f8912df4c690a40af949662b888edb08ea4822b19bbb1b35f436238f0dc33ab9db019cc93b50f5394d338659f80a58fb6c2e0964b2300262f4d2b23654a9c5990b721b4e1a4fb8b4b53573bc7379830a5fe4357462073c018fb8e9c4766604db002382cbd4748cace32c38d2ef0190e3145b00c72f4227bf14eb04d864d61d05b7037bd77fe9cf40d4ed4746714f41a2e65c698e03443651b449bd2d91f853c503bab4fb6780415533a79108019bb9b3cf2aa8a78b0da394b3d89d5d696adedd23b45511d43ecb5e0811b1ed8bc49877a3b25131efc98333f3996701185ddfcc6e118d7c1e11ad9ddb2c69da62dc2d8f7b9abbb40d1b86e32ffa43738a04d8fd720d5da8c1e47b8dfe64c6fe1befe4c4fa30f0206afd2886f785c9a6a5d4b5e16107098481649d182964c444b01ec7ec32214cd030a0ffc44c81368c3473b71e7fdad4a270b7c65b3ae835565fc7495b2908b99ff21b02caf19a86db4173eece344e11ae9d93f47f7473e7db617c875759fca40da3742c8ce98b770bc7ea073ba05ab6f09cb381946d80a651aa9b5d29bc0234cf31ea412ddf18fcdcf5ab93c27f1028a2ff964f9ba6376ebfa5bfb4b4d97fcb28e1ed2f8e657f18137b57f98da1847f34ae788b7a7b4c414a1aaca72d8b704319805ed5e53e3ca38d0dddfe805cb9e8ac882aadd1a7c43fe867acc07244a2e1db61da677af22b9ab9c1f72fcc40ed16189c185d4d51e6c31149346cfbd77d4389875ff6ff8fc788963ac8b247795dc61d9d7c8b0553fd5fdbd9f8ef707c89be07b0975f01f6ea6760b2f6485dc697aacda2075a9c5bdf7d50d2365c864ec04d0b8e7edbc64a9e3b622d04d8b98e892b33bc340bd76da2d92a53ac37abd2aeb901397d7ec663dd4553f41962fc83636d78e3c800b129b06178676ddfd562f1c6b5bb684e49d79441554433f7aebffacdee34eaca5105ef54eedde5df810c1d1c88582839c89fc5fecf8504402292859ac02d94ada9793e85327ae858f33e7e6ac8b3731573d7b17b5d7657edf5b218a136cca70e51e33e6abcefb4717821f34f9ab2614c1a248c683446636315d8fe181a4e6ecafe85e20f63ec1fbf29e8303898a12b6bfba2e36b74271e52742aaaf324199c93e89ee8fee59dac0d55060062f7774e0fcab5019f0666521048f2280a4d83991ecc7480451958145be5c95e7167d3333d5ecf4b49186bf5b47e974aff053bdfcadace732e92d31a7fb288075ed1a172fe349a2afb8aeba5eb64fbc9bf7ff9bb964307991a16695cd6f61c42ae28b9f7debe0eacd0dbd925ffc682bfd2bc48d1c0f0d24f5c7d8813579e6436448d079557366acd3e2e54cc5f9ff5d06f735fd6768348026899284ee7e7f82668d39b4cea055abe6c566088552b33f6d00f2a01c710b610cb2c5c1408e2b83d9be77a0b5fa8fdf0f5cd97861343a82360939e8211ed00c9d7309dcb3e3e5509ac42542f44d7b74cb42519d68fc9e2a0bf5e00b2272da97e40d6027c9ac1a51d24b44007e5ca63df7858924ea426bc1d28d67196484a38bba8115bcf4aa5b725b221185f339fbce77397b51d52c00b8c08938cae829651c9a43fb7eb30731bdec112132ff638031a5cb8807936de9476479550d6f6e07f8f19dbb4796e8be440462c12aaf923cd108b4246d94a4f336946ea60a4187caac1200aa30f48bae64f26530993a8fc987a1bea2f294bd1918f668b85474bb29deb7574c71dee14c79ce78073e50e73717b2ef533669db98c491bde579a0321c34c45205fc8d08fbc37628c84c272de284db8656d97c17cd010b0910802791c20a8a4304647a9cb4043a6fcc7215abd9c843597efd11de294e39c73aa639d73dfe364882d4180705c4802180d6405fafb021ffb56218299acedcded917887660610f35d0acfa86d2c23ae0ef06fe7151073b2b663da2fac1c9f38f6346d77e575aaff9caaa8cef5ae56348ad18e34ea684412b1c814dc4c1378f3b5bb13fbcf64b2b6c71e3447f1c31d3d14491423fc4ff183c0cfcc09fe078592056ad4585f2491b51d2aa691acb88c3fb9b04f9fdaf1a6a05498c43b296b3b477834cc13b835305f391cd7b9ce39dac90e3ada0972bb316f3e49b157220b65be4b384e96fbff91b59d9e843484608b7af47ef7d3c7e677b0ebff5fc904982ad7cae998cf97eff65b338e188490861872118800f20d5f8e9b43e9f65563b8812a3ff896d36e0fd2a9c9f5936bb7f2f52ffffe324da11d9ceac83a9266ea9dcbddbd7c7ac9aebb81120b92da4f3cfb0bef43d676fbcae5bc3c597d211ecd9a23dc1f8e2d5c9157faa0c48fbfa92f406ea9dc0eb554e163e7606e030682104020729168837aa5dfb090b474a7d8c4dbf3fdeb79c7383c31b04c1feb74c738e434a7b14635a337f7ff895e2a5cfeb51a087fb2960bbc49e899509dece9236bbb06c9cedfd4fa204131703ae0a75ff120b9704a3ab29fbe2f3f3d59db953c2b47c815280c4b1076934b1203c06f568fbf5f271cd3aa3b3296852e66b34b398defdb8c105556ea342c7e1d24a26c4bb8aceded191f6e55fec230a32a6b7b8bb7c1a72e67784175cced11ed209af90b9e3fd8fbdb018f2a302804250df029e9fdb5c48a656da7f5656ae743968cc341e42d2cf964158d8832b5b74ffaf58e64dd5c99ede7fdf2870ebb4bb1b8209357b0bfa6dfd3fd083c685ae9f546fe0bb2b647ce7cb8ea04784edfc6a014952180217c23fe8a40818ecbfa0007393898bb97ac3e461f61a7eef10de0e35735d59a656e25e60a58e5e57afec8fd6ad81b5fb503893d890d616d6fef0e4fc8f5e68bb73bcdba7854e7bbc53426e6285c82290ee693f63e09c21e1d0a391d5640eca07986e127d13104fe78117dfacefe32a3f83551829cb550c4165d7b23327fedc631721c723a667502c05b8484d96fa7cd69fcae5dc5f8fc29438b2275c26b679fc5f6f2e4b5d31786fc2824663f01dad7dbab73f0a7f0da83d1e6e9d58520094cb64e76886180ed07494377f4a83ee6f36c410d816a91fdb645e84ee23b4154f5b3d22b5e312b02d8ae563dfa0ed010979374053e926f2d67e54bef2296dc57f9b6992acb7f1c8538c4cf6a552eda5e8320fc2c0371fe5a5fd8320ba1f0339c809f6787a087f97acd2976d1768f2c41a9c529e89719f8795faad8a795dfd77988efd8018b7e8024f92617a5ad036d26b21bb687b10f6bbc67c8351a9e500dfa7ef325c999a6ca1f2bc7e5207f928329bed72b3d69b27af236f9f9b45744196f6a79dabb319d297489ef91d1642cb0ed707b938f6650bd424a25a4e7abb7bdb96291fb0c0df164c6ef5d964acda18583d184c8c987ee9889b23971748b6f73cb1eef24c602030da4a9e605b6f3a4aa77deff5e8fefcf1e4139df01328cb10c23a9f8ae1048e3b476b4bfbadb76f1d2e2e22d120a21bd3add5a18c2496203bd697b1f148a67416bffb7e32707309a1dbe5dbd074ffcd693695865ab9e1994218735a8b9ceb63771d54b09a00d5b3c76e4c34c752c36e676aea9282fe282e1c8d031b7c314593085a80f3d1e2c9f5fc5111525d9885b42c8e2eceb1f632f460e5a35ad4bbffe05fe5efb19c0fb548dd6b77cb6417b06fbb6073d6ee38be8ed615e3948104a8fa04ab9cdb9f1b4eb8b9286e0d7128d6b5037c17066964c434a63552db80c9c6bf80a68eff2d825ff0c001bf5f878753811d3d38887d78fe19b5d9c571c0ad67b052e3fe1f7f696adc8f47b892bd8fb6ebab99bb815379c18382c2fd3982a06b6c710f50f87d584faa0e9cb30b9509425ee04ee4d480f0c65acc58ab861b1f437f26796975cfd79f7550106afe81354779f79aea77880eba5ac4bf975ea2df94fa310be75387a2589a670e83f311ca68934bc652965c595146e682e9dd653e7c0d5c46c1ebf3bb8d4750740c89b4d16e257ae1ec38838f585f8403b2d35cc06ea27c510a410506d35bda151809e94e1ce3f3ea0f30be2026904523b5e564b8221ee396533a14019eec4924af2c3acb48293d2aeb9d01e0a15ce21adfb9c01def1690e5a19eef36935e169a7d04d4fc2cef2d3fb0f0fc9a7248bf2036f01e3b18a2ea7732432624d4d098a1f1bf4b2232c71262da4dac1d95a298747ed70ff00d77afe8e890e6ba525143b5f60bd6cda4dbe20ee04db3040d54521f37b29dbda0c11ecf13022a7b5cd24c248e9b1d14a4eb75cc94f49b2af5c737273f999639d8a19d9669fada6fd0a6954a2d1d735b6e8e61670eca128f1a67fd3fd7f9703602fc1e5208b32a02442b67edfcdb72d6549d3e0f2857bea6e12df77f4b92114a9e08a08e6c7caa6b5a7308f38a206e2f2163d8d42de92ecac71b76fe0e263e16aaff0332908274d10e5e66a15d6d24ae76e5a58b140abd2ae3e0df0e24b9c230d0e50744c047bc14185d0ce60340058ac55a25c0684747f701ce9e07851ac83281242f4708c7abaa0021bda87066d4f12f9ba6abb8ee065114f72b7c1ef80b9f687cd5610ae867138c91de22c3f92060fb9a363e4d77a3b00811f95297ca65f747283d1a3e4fe1ca698296f1b60a5a30c0228b9273e53ec506ef322e6bd7c348f923b9285538914bbc4217197a885399bb447e6772130240b194f1bb8de11a722a21714baf22760b5c2e9ee224091c7b87a74fa9f6f5edf63d0e07fd9d812aaaca46803518db06d6094b16bb27fb840d1eb5b0666ba0dbcdca74f6eb2cfeeb28583c8cd61527878b96fb1b33db06c1c1eb2e9867236c74e5af7bd38e073af6241cd2fcd8de2e5be8501c80ccf246cba85d7268c770d8f52d55473a76bab33f02f6a28e6e169ee4a94680907200f7ce00a2c39f53d0fa2b6c3c0459709080302f122d3b27c3518c8098c296c39396d0134fe23e566fa48e713e9c9d627b34bfa0303cc88e6727983cc0d31a0fdafaae83ed4e3fd31474b33a817961b63770ce4dc211904126cbc96bfcddbbc7ba4f0af2a0d054b35dd93bf3f00fcf2c9cb68adc68fb0de84eb8275606a1dc7bc65bc649a50a82720abf79da99d9e61e349846f962e5f4346e7eeb31da1e9f9f9e4cc0f67264caf1478567f36e6db3912e27651b2e6482b2bc4f3728fc264e9785cc4c63dd71bf886eef067521c84bc2163ad95646ee83e47a032a9393b6ba176f42b7c399ed0a37b17aeb60ddcd460237480065b0243a708f3e791cc7b56961a39cebddc3ca7d6295f38fea7ec73cec4963c7bd3b15a9674abe8b676fb41a50f62c0b880bab708635c5638baa83cebd2a718c578922e5afe6291f2ac97790b0c4e28fbcabaa6a15bf52027e42b97c25a7d3b362191941dd64591b3e9de6b529eaf5e03dcd0f1468cfe9d5cc7366ebd8d129beec819b3d4d52bfd03d0ec5e80b39402b0e93e2e7fc8fa67715a64dc44a79cd00b84dfbe1468344cf7e751abe88499aaab4591b20794938df53d1ec8bce69383530476812542e18a8e39bf003186503748632cd92695bca27307be8b3a759e3b3d7a77e3a7a5cedeaad99f5509c4c8733dc3e8efc2f3dc4b9ca7796ec0ecd1f78357dcdf3ee9196a7be515626b92d007f0b06bcad0422a8f5c79a42618cd7dc5624b4030dabd74293fd6685e2a882470bd6de0ab4ee462ec5277d9180d1a58105463a3edc6ebade1ca6fac9fad21fef052dd49a5caa64693fa2384635524f20c83d78e10d35c3d9a07b0acce2f1bbafb07a67309cce6ee7c41182041c11927e1139510dc232060a31a7b12758436461e177145f02146b886481dd1f230fb1c15e31be1c0f3d44d99da104b0388ad2cfdbda97696c1d8a83dda19b8ecd68217be03ffca9124e83c8e57b1914418fd0f32a277139372f064adc32ebd428c09aad13144f801b3cf9c4c1383c5378900346a5611c8a6ca3a06ac1e53804c3e1d9dc0d046a03c467b44c781d20d2505cf8800d5fde4563a7a9ea4d04aa41d3dd52027f0728e4a7387873786ece632724568eb52f4527fdb274e3b05da30cdfed4de881f25bc450ea676122cb7daa41a20d20df02bc4fdb285d34c3b29ae91619c87467cf044908bb998657f7f8a181d76e7c9c9b309498154b12c58828d4d52cafe4f20db26fa741e98de417de6ba7598fdbdf6be76d3352096664352a074f1e63dc540ddc0561280bea515b4280d8881901122880d70b67fc0ca0836cdf0194fc4bb50667ce0c480ca0e357433e9cc11ce40401b9265ad7bab48aeb4f1409a9822468cb58afda74d75b61f0856aa4e80cf146662f30603c70508d3c4422e45a941d285de9e6e171eb9fa1ea48741ff664ce084bfa8117e20054785d955eab450b436c86c9d94f03f92b437cef7564dd1f0c6eb4458bc2b7e367a74d6e2a40b06d34efc623bc8e24e441dcdfcd7f4da4189a1dc410412950448afb30331695850dec52135428242488cfbeb20057b85dd07dd6f901c9178ce642b069cbe8e75dcbb06a3ca18fe648860079dcad6e684f7da24f7f9e715c68d71021d4ffe594d620701a5ff473b4b2932ce578d35e2f6fbaa00ba01a33efccf4aaa52cf1ab068ae853ea13503c092cbc86d6c140b782605c31d0a472b856b0966acc4870c710f1c447d0e08b2f7850b790ba11204b663b293b9ddb39b15f4ebeef900cb61149ba1713d8ab60cfc0b453aba10864900fa617ef09009ac183ea8ac58466c99f7c77d13b09d9b10db55e9c12b660095b1323ade78d7cc280b27c3632493debf597ac7709fafd98958ba1ea2d13b6c4a6be4561cb32a78d40d2fc3f0572a4f505a78194e8e81248e88658aef313537939d7960be1d62c285fe1e68b3b2821e09d52068d5d8180f49deb8ba671b285e793c7e68cd3dcc427eafc03d31814705bb6c2066f14ea1f078caa6109e17002aeb69ae956d01cca06497802aed63f6502cf895981d8b968b2b8c06660c110fd87416422030d1c5f634f29c36ef205a83b696ea265295bfa7ab9404b85524e7eb0efee523a95f10a69dcc3502641a31eb8a425b2ac48de2d248d7c245a73d1b52a247ae22a46fae0aa47af1684e2018fc7cf3667f5425da0098312e7249d246514d96256c973c6f5b8af51153910b5ca1dd34cd88452520a12e205351e182ba6d43b807445152cec9c8f6a0bf3b8ca9117169b807e7336c17c82f353e22efecb86c902a1ec7bcfd257a6bd6810a1fa9b8a24514ce53ecffde6f4a48dd254468ed5f38ba590e16be163f84eabd971bfffe15a39fcfac3b5a1cf4fd1f2016c8ac30f3e208552d508fb9c204e9a23b00c1837814598e727d8e7048ecd304cfff87bc4a9f106a2525acccb752a0eea2ce2d8b0dd53499a312792f90efdf8bc2553b024fc7be1d89ac7521a32f13413ebcdac400cec8be999229eeb595969a7e2d23e634ad5385ae04488dca1f78bc97ccd45225c7092481dd8cdb604ada69e4f14a9be6dfd77dbcfb18f4325bf2dfadf79dc4ec198323edb3251a0dd95b6e31d9fc9f71a6785f856dabb42d6d856e2d9b497d09263cacfaa3b3a538d44ef9d3b2a085b77458c74b229941fa75cd90a0db18fe825cea24cf936c7ed5fe96a8cf89263a6a16338be52ec4b9e5fb07b2274acc28d0d52369ee38c1517a1e4060419fcf82c9696a96da08fad6286d9452fd4c8a3c2d9bbc3d43da4914acbe49d50f3990e97d75289934d414924a5031587d636833200015eace228559a6298399a7ae85cd48107532a08c3b72d04b34314d49f148036249331f57c634dd2532fe3962cfcb304ddc60de27b3da92276456a2500f34aab642164a2ec768c9d932b10014d7f90acb07dd34a5c99fd7a2a982914756ad6063e535295d1a3b8e9483a9dcee00e38ac183f1958f6a8073118becc7d4e0327b40e1da4009abe0bf18358410e3822dc96ae51416b636f9891f85d580292852997ef3374626cf0538791e20931b5d1d9fc022b2d6ea8ee593f4165f848fe107678c97ac5203aa93bd2db642ccdd1c26a7ca6b711e4b56be2944a0e752a267b0aa013e29074dd13652e236967c37cf7b14550d86cad3c12f9f03b2cd95ae0b464df211d6e523c2bb789327b23125b9085a4dc4bcea06ab9cee3a89fdde96ead8ed4e539e99903b2d7fdaed23ec867984a09780d354448873c24b07259755c94a66825c39955c0e1c9bacecaf2c17fb1536b8993717ad7e726f120eae92116188163d4d1e2159a085eafb354e78e3dcbc86930aa89cc26ca1c174f4e3fbb292658c379621832c7fa8a4c0b4c4f6c40442d76a87bdadddb5c2de95cf620d18ec240cda29b5fa16dca8f077021742fae4770164ad4af0f6f0fd1459902e2a021f1a81ff73ff08b4849876604fff6eb0d060a331435125a1813f1de4de3f3289df3fb28b2a32c17fbc34d4a7c114f86fb00092401244a6b1b48bfaefb28c755c9c39be43e44ab147a1928b1e053386a164726064151694208ab48009a1ca1a4fdcdd7171176f6b3b9a03e7a65e2508971a5bbf13a7cc4dc7aac3690cfdf872b3237a7398fd165bc7fde6ec0cdc309b0c82c8b9e7b81f8e391b1dfc0df47d080e311cd08a21d151ac5dfee8aa50385c942b4605eb9c46a131ce6f21c03d9f4f0ba0935ea9f508a8a211f7a0576ae9e0a3c014c363cee286acd63c03007756c016aeff343fc45c45f96ba02ac9bc0cddecc48fd89b640efeb82a45216d5720cad26fb24e1c8c9db2f223cfd96b62fc05a53abf2530b02960286290e50b2317d6cd1810177e08f1ba495336e616b520fb1a64e0fa1820672e9f3b6fe6dcc8520d0344323d0f3eddca5cd9f95a07e2cd491eab1fefe2a50b864812a49645a80facdd10a1c85f6d15e6cdec80ed207a29519e4069640e7e3ff7147266a7b037f57e325a7146e71fd07f5146eefed28ba71429a2eadae0ed0044a62d73f76ba83345a3d83c5a5da5231fb8b912dadf29be01acecf3a6b8d700e92a0d1b20a08df00e07085b7380705e0788133ef8bc459f296ca5ca5e6a3c12f8792ca80ee193817d563b79647e6ca541a71477767436f0e15a2eb4c05672453c6f46101589564369e9f8f5fbe925bc6d1fee34957a0ce50cfa1f3a492fcaede66aa7563cc178cc41f4059758d2fc19bdec8e2b831068a54a276df4f2bfa4d71fde55a36a1e962f70d151c5aecd4414c45bd3f2327a56df18d3b50428e4bb7bcd72f22de3112ecf9c99054ac58d03267a747821b580bca8a6529854359e65be81bca01e6435696788b523a1763a542d7e5ba0229bf90076334e471a93d42acafa0de680c36a09af553408973b2a68fbb73dfd99d2e3afc4566cf8bacb0c0445614d57d21c4151e0e3361085fc013e85d42d00fbd4a068298e92f84b4da3bf8d41a1ca43b24ecc524511b3314c98df928c5463a51545a0f12b8ab0f9868b8445d19fa7862757ddd4671a29de164545fcc817cd61b81172d9c365c8289a4ea3352f10f20d3a8544d6fed930780705ec53bf2034e2e82f8aebbea14419daafd237d80a91bcca3a0265077653053b3d7f958f46b1d84ca929cd36e296dddc2d28200cf698dae6a08b1027709a4e20dce1a9cfc4c853676800e5817be96e8a4462f799364355a018b01b90407997e9101fb24468780c775a20fdc2385bedaf08a563e60c3cef3aba77e74bc1a06924865cadb99488b25588e3c4a3222b55d0768ddbe4b467e0926bbfc1b312e2338202d817abfab41e59a1467cffe9b210964b7c9ed382f803d0ca39eb820b2d5e4402998ada0cc72f842327472ee2f43ad942fac38d590b3b3826b322ff62b856a70c04baa944c210211476cca6ceb25830bacb3e8a8a0643338d8a7b4d23fba946516d0ad39d10d529ad63854aa2416e648ae2eeaf5ff2a6faa54eb5b629de20d2ef1c28ea2bf2cb4b1d0295a42a12581654f8d6353a5605470aaf31b5f7f28dcc09c187be83c1fe18f31150ecf087a472a82ca95189cb149b3147b593e042271809c5421ee943263360c1dd0f11425225f1a556cc3b4447b9fd743ec61bf7774f662b5827c4e9f62fc70c12097b2aa1bd4948b506340be94b2731770405ef437425954a7c6204365cb906fad73ce36acf9c892e82bdaf6d395efa30051d1f694b3750e7818f8742429b40813299ab3c922a37894ffd5080c176b2f3b16a8b1df63fb99334c63781f3379064f1d56164f5b67b997bff650803095f41ab865fc6dd26847fc074c034dddfcfc699ee988b6facca19a1ed0b8807186b7ca78ce38fcbaf6ea6ff038db465e8878053d8b0480c2e4927042958222a85b7efd6e4aa54205b01ffad825153464d166da53429a051474a0ffd51f5a41257e98225f8cc64d34bc7610eea1cd6e9fa61b3f1557bd29a481ef06c043c37d36664d16c3f3fbc6137b430eb83202cef633b01ad7c62ba029fae0ab4507ee130289606252d80738401a3207d2c1c02be66dd8115c9fb5067185639192dbae47929bbe53007a28b64e6c4d91ca8f7fcf02caf8ae0853d96a94518bd24488ef74830e813525e9d466d29945d29155883573379595cdfdf4951e49bd113dd20af75a84d179ceebba35e621e0e5916b3cf9190d2070b692daf9a78499f65c75a3dd4f87345ed153256d7d29e1552739b6543661adb58f51e883cbf65513c3e2c1ae0cfe813e76c4546024cc78807714c50d6a5aaef12c317900e4acc0d0fcc46466c17fd8ec83e86409bb4436c84692022f3f925561326421c3fe14ea10b9a913e463c50448b78a048e176a088c1ed405d648a7ff06f660b915db773afe322e1357e1fa6fff7383449edae15bd129be92da1d28060a4622ef5d6615e984501246e7f1ea7ec60b17be7a8a7000df410c588c6348a59ef7c2815da80bad282e1deefdb928c617360be1e79127ddaccb7f772cda82c73b9f8c72cc9a6b2641014dc80e42f88d872824c3390c54c59cf8f5623dd096122713227dcba4d7fd2e2378564b71434a196439849c66c09b1669a6c0acc27e819187db47b5ebd355051a62e1ce0cf0d89632e9d5c4d632228af742e89c914904e32091db19f6fc025c3242cba8041e4613bd119a4fbcdb935eca41469411895f20661921d8c334484559125c5ada4871b2bfe1a11803a4158af66e84d16f34bc457212b3b6026fcdc4fb314850625930e00c341086ee4e14d2db124ccdd192505b4db5531fd200baee20fee18d6e0c767c10a373e01045638bfc07e1082a83e3629c3c40f7920623edb030b7f100ebb7e4cc51c118402df6d68c05ad112e3d9246936f8246bc3eac974954fe4e54d32a88195016e58f1d3ee0ddc5dbd078c2ee86eca6486542effc975d0cb031fa7119497427bb3026d82b4ef4fac46e2fc1b0d7849212a2ec14820c08d4087a88ddc61c33f083a9e7509e159fcbd66b1a4a3a6ed09aa08c7e08fe672d57b8ecc2b6729a823fc07ab80a474011b734e0bec2d86e09331f884d194ac6404327e72aaa8c4c2d14cbf5185ab8e13e16eb13212c87634d6a3172675fc89ca2622eb0b234eaac0df725b4d8c666a0d13de9e47ae451255eb0397ccca70072c6e46ad75ff7e0c824504ba7b8260f305db03d6c92e791ec4454e4b5153dababd14fce0d531ed9027b65fd169437b641f4bd9e5ca111542cf371208d0e7bdcad9856844a25a81e9a3f1bc850d86b7afcce2c17af3eaa7091997e7fc2607b222269768fb610d75edd0a51731bbd9fefc47a451bf3ba08889aecae62dbe8fb8424a309412b4ebead5b912c01f111de941227e460f8928c9d057b2d3b1baafeba8b0896a36240120f559d4880161695e33adecc6166394132c0aa2177aa4605945f0fb3faec5cb3fa1bd14a59c7bf5d56e0a1cbf7c3a77cc3eb69198c5f57c0594b6808231f9fbbe8857df892346c56f4725d00e2bdba04dc57b559e1da5c6f12c33aa7205dde2aae002a2f2ab4f5b2f4e30c8070ad5cc06c4c84c1990e584feae8a83b476b784a8731df95d349c39ca3a5041b2b77a8235b78662857987f6f7def9730c29c8030ad956758f443e329fd9d7bbe4b0b85b87b056b367bea1679ab6f53113a34c5d87f7680d7a30585b32523466be6e60bfdf7342edd94d9d94d713734e6636dfd328e5eb4a5ecc69c19056914978bf7223ed202ba7c6539de2a4c953533f11d9b00a616f44b7fd2877519e6a9d7dc379b3736812d7f753b2ad47f965a0f3812cf18447f88b7c56841d7e2974116281bf2a8002cd9d824981439c3ad129f514d94ae3f7e9cae9a54322e33b8e0a242aa8c19e7b86a19a7604cd9267c36008f2e54a8273336250d249146051c5c92ded448fa1ce69292d954b01298da7d0ca91e3a5c75d28f8b6063787c29fcb2de08da415eacfe68c2b134893df67e9f2ef28ec3e9faf6c0e937ee64a643bc43ff6258367654acd334904e779562493cf2fecd70ae43e0068f1d5c4b7a89381c74517a4c9770f9c8b3a2fa7a06a2d42b7490459e42db0f9891709a8711430d271caf3cd810be027549e7a9be0e4816facb834a8a66b58f2e3a8390c5e7d88e1f91c8adb061d4574ca987704e1d649c1567102c2f1d01e1ef8802f4b924daca1eadb8bb354cbe159f14c87286beebca0567bfde56b934addb0289bc4d7380e56c20c5dfc6e5b5857816beb7eb39963d9a6dd4ba5867e902b02feb9f11928460cb742cf81f83a0ea867c865c7b332d174521eed26e60e932612c7c4a59fa3c86b3bd8583b1bb72dabd0d0a9f80e1d5a2e91f846d1113428171d81e985245833ca00f734560a2a855e7b5ed154e1bb1850b9b1f4541d6b7dc19d50a256330f71b7f1ef48819f198bffa8c0436ae9d36d0f79307e8d1efb9334e1cf3fdca42d537f38369f59d61c7fbdae934b7dec7f1b500f4293e97d5a512029a41e1e8e5455b1c059e41a39dce83652c24410820d6aba8f6c52ea2d5f52d5078a2b7c8a81549ff363cdd11f6335d3ffc11f6fd00e4d22975e99008bed925302ac609a6b09a041a1a8c17f937f3f84a88b8a5e20f991bc7f2c44702d0c9139068ddd9bf6ac31bc787e7c4b936b9ac811fba9df1395d91b33a65357c960b9e9832367a622bfb72b50f1e11a9997faf931bcd8a33d62ef07573353d0f0c48e60ab01d6289154b3cb25920522a5f8576dbd7a1af8ca495e48326558981819950fae54f52d54be206fa687517149816c42599b622c270c31e9993d3483814e93c619be8809ab2e10ed2966ef84635ac9db9aa2caa790e322f6da00f6e43d7b63e7fc76020a268e61cab6f59bd2ad960384c83416ffa78978a21afab34280c80fe911017ed30076984c5e2388cbe99c17b31db00501d2df6a555fc5b992b1a60d9453521c0eadcf184376a9165aa789040bafa4fbb19a9146b7cbe234d0b7207c136621fd20c246fa95c825309025922b52fe9382a10baada47b886f53201498364b9180896ed244d2cdd505d682f1409365d695f92d1ae1f9b7975a2e472741c764ffed95485253d39e6c3eba11d8544d0b111c7247b42a393669972c9c03aee7ff64b411d851fca329b033dc6609b5a0f22ee017210cb64296bd2a9d6f56fe5cd78f4818e17782bea833164c0126377d4c28f8c911d5ae3780f5fa5bde6f0081aa1d6bf2e81ee17396391dcf4196a1dcb18be1bada34bad1b99322ee791139a2883574f7bc00f10729bfe59543385aaecf7c0236fb1e46e6f9fedcb9783b5f53bc3f8bcfe1cacdc4fd0531621f73db7e08a11bac0bad49e7446523442742e92963645c6e5c3213a0844a5f14f9698abdb316717ed32e11a3e420301c9c9fcd0b6a1a36728a86c62fe6cd0060c4774823e2057322067e427a5f458ea7cb0fd2cb291011cc26dde4df904863891e1652c5c78d212211d9da0b0a4424155063a88ce9eeb425bb3ba84444d1d8f0f54fad49e547952fef3e023d1d5cb4585edfd80fd5cc65f0d514660c786116033eeb4f7d59c6be90565681cfaae2edfb73423e6b8c4a0080730dce35aefa7fd6ac41651f550ee235216b7757217a08eea143f52ce9876880a67b9d197ecc511732cdd2eb089d60e8d55b75bb4a7abda36187ad9ec6616053de6c76ce654c2492b09c0fca085a90caa747dc4f6b918ab4264b98c0ac128bece8d71d19916f1d07b49fc477aebe0454c94485aab4230022bb24c5a61561ce32b36c085068b3380e6a3b9b270b39eab5461714e077e40d2692d1c28f6bff805c7705d496c1b9115284c356fce6425cf3822477502f2942a1de70009473a1c50df0e092bc7fab923c06c1bfcf8490db11702c0f71328b1cb3a16ae8b8302e888ebf3136edb11bc662092322e5434d00758f7c7d8931275363446123e0aeb41dabb95f8b4ac2203f78ed8fb79bc254d07cbcfd080b8908152befac56e3ecbf63790628e0530c2abf1237a84ffd1449d216cacac77f7361ee55239aa366c42d81855120c05fb820002e600bc08caf381cae5db18dcc1199aa04f66e0fed980c4f06be559f1889a6309a89ae1dcbeda17acdd7011b9a3e09f6eeb652594882b8dca1a65bd511dcba8f3252bc71803c79d7839709b9208a049e7491c621eac1945dd898ca9e0ccd283641b5c16d3e359c85c78c0a67312f7461f9ea9db57578f2149995a8f81780a8476c6a5d7cb3cdf80ecb1bf8a3de1d3dab18e64b90f9342ca3d8698f7bbf7e141d7eb548c089774bc594f49da86b953a83644df7b16b7124b8f4d215fc6c21068cc579846bf6e4c024435aa44c7f48e256deffda586f5c0771f49591191081d5dc221b037a4fe7d3bb9b16b417f3c2b7763d0c80eae69f0b243d2a9d388cfe26c7c4959d75a784f75182d41db2ee589a16488fbb06c4f7df5a6b95e854abb9e41ea978ba28a035a9b448b29e458277ea6d0c124c58dc473db3c5705a51a297a6b4507647d329914870cf5270cf4da953fe8ec0e6dca309a8828571b5dda40beb265a030c4a2b862670ac1bd480534c61edc692179aa46e8e61162ea208ebb1288fe0fdf7554388d055ba3e90c0bc66f311eeb1204ff602cd9379444c8b7cdfb8fccfe80f847f4ef0c34a305fd261a60ff8b7345b773800c3ad4084c47ac2680045a415298afbd7684f2102fd411c03060575ba471c9854a4a50ddf4696d700efa6b91c0773ede68b8e3e8aedd2958acc0df3cf005015d279df10aaf581f3596364e6b8b077e8e0756b9da0a221bf5eb526ba88c0341fbb11d5a6252802ad9f88cea1b588e8790a260c6bfe1c2a64b698e42d433d3e762628ed0a20873fa4ba8e8baf92afd6d0b62a7b4bb5c9cca3d488857ea42ab83dbb58fb9faaae866440b420f1df189962788d0d2ed9c052e6c16993f38d2f2e49c41449c4c0f8ab02ee8ae8501b5664fc93a7582a7caa2f5b3728fb07184780444823bed55e25cfbf15d42eec92056d6b30a04d061b3b5bb554b05d4db3dfa3691e0eeb08788047a287341faa5b83bd3de6508f4c4106462df3107105f8910c1ed0143bdf7825ee42f57bae72e5d8f3df17448505ff015eaa905103b022afa08dc7a86ff0c060947f75002e3578ddc3ba41a78d16bf98bd7e3d0844a94fb24b2e123129542f8c2d1fa7a4959fb2b567eaa370e7ea12ef4945d88147adbdc3530d67918077b78a230d6b9905a52eeab835833d21283027103def2d82dd3593c2479cab2b730d26ebf1a18aad9220fa41f681330eda45f6ab2881157451d8a42a5f8c8508ed2ee08c1eaebac40e488eab824945395ce77dc5c510e94e9ddcf2519c786c141a9ef7afd49577f5626ecf1a2f609b06f626899aa3a5ada6d61b970c36c3310461e8cc584f6128fd73289ead2ac2f8c58944ee6dee36b1552ab0b134cf8a79d149b862a6d8b5e4bde29d3ff97448cf59c50055d01523365e1f70c98c0a4a7046f564571cc6466f9b5d352c6a980e671db2b9e4a806f070cb20885ff819b4090d75607daf0647b134ff07502dfc3916729e1abf49af5356418c62813f02cf718daed1e3fac2981b3e3a5cd20bbf4b061e7ebf075670332bf905de2f296a755709d1485a99c02ce54f85061becc5b1ee3afb571ad3107ec56ab042b573121cfe99d26cc5425dd74498bf82d529b836cf932e81d36798cdfbe76f77fad0d87d0541339423f105dee00fb77560060ef0207dc0a523b304c9b1bd85325204a7cee64c3aff95d86684c7ee4f2d292a394e06acc90017daa06979a6a70c0b00ae4afa6fe180b10a447fa15969dd63a9777e2b383fb915ccc29e97019ac3cee0f417ea76090ae371b68e8f13cad67b43beecd3f7aecca6d5d9cdb05c109e066560f52047babc49fd99cf2406ad47a68ffebff0f5cc3432f83eb0ec044afd2bc63900bcb9a765abb7a96d27a02f0a51b533b9e0d6fa779076afc4541e2718bec61e2b020f5c94d07f9e65b5cf12be67b61538dee5f9d1889e3ef11f5ca2f421f589b8db5e57b8d8f43bb9238abecb38ae41870411ccfee300744a67eb509dbcc7dd0e5cd01ffd9f26819c7d74f332b0b7c5ae9887ac7fed43e8001f689219411800439003d371c0e86c63fe0d14f1661b5dee0fd824dbaf8381f764802bb26e0fa924b492b52a6aa352af651464604229245e34fd50120074e558cea98742935e18ec33d8567847e86f798d09f57c7647e22fc181df3d557f5e6642df8700fe4f0184c4311f100909b80231449fa1e5601aa6fbd50bf4f0ae3a73c64757e0e26746246bf90cd9e8cbcb44c31b0da0aee412a24e4ab324cf7fc545b0b1b55811db780736a24a552e6e59902d55569eaa85266a0f725cf68a54cc526ecfcd0076b7a101a302d3241b2451f9e42a556439a865729f3a518206199667ff1e5f2a33d9a43ba8f0aef71d15f34f6e066a27740bebe0b6d96245ed09a5b12f079864c9957b90804b5ced68e55d145b8e13764cad40b764857e1589f2195e87d54a30ac295c73c6233c7d710d0270912f657a93b8210c994752775a54fcb58cabcf9923dd2c949b6f7d720e5773775682a5070068f22282e1569273370d3bdcf1ae2936d1a3fa9827579bd3c9a2f04c7399b6d2b237f5a6858b368e3f41e2763cabf12990acbb1e88ffae5a040725b6da9b071c628253b94de858173152f2fc7350ec779bc0605e49333ac2b506ab84b7c4d3fc206f6d5e5ab11a7084c87ae73b2fe565300dc33f414e1bc7526a73940b08cc198f88b6a8626c07903343a174dc3795606472d1a777f0bf07933d8866d51ce611d8e82b99097a7db388373da22ba4138990c3162cdb5d9c7fd65080635af4ddffe8ec74de5650b443fc04d235de398108f84ec434f9ab58b53808c9f613ff2d4568103eeac16051c11c8d24b7ae21718bde8da3f74bb294cde90ee792a6a7a747ec5dc237c0151bc712b4d3fb8f0bcf3891d9f92e17c01e1d2830e894643d74f63f980d8188ceaa5e4205495cb081c20784250038d3bb29c3425f52d6a97bf6f3a1eb06c29d29056958d5c343d029f2a11191ec1b176608ce3d586c277566360ac177f27d53f8b110274b224034304a228511a8a0c0507761e8408108dea77389e921b6da1ff5495f0de1437a52cc54c5017694bbd5dee122923eb0f9158a79fa98e813888d5d93a1cf96280970dc0a0a23281fd668869474c666d8d0ee563aeb1cfc18bb7093b036041aa5fdd6d58e06c6646b9134f0f83f30696ce043476c30abbbde4078626ff4d16f791c98312435ac92e9e67f582d508fee173200669e8122850004f71201d2a7c87569b6535193ca9b3a7f544db6406b4e4790137647fcde63ff8b9fb0583c54b24264e2cf3d43161d3c89e3af38abcc4e2f1679db3d304b1686bf8a18dca7d8c497fe59ba5099f7ff7422d38818fe70af94851c20e493496635ae81d09a697b5c8d284c1a9a4b18292b2c92ad4f9c4491ee9e0adedd875e7387ed496140a782b383c1840d2f0de731464d9a783fac7fd7ea1fcc8280145bb7fe48cc72f01b3d8d6dc08141cf80b2949a227be67c058a9567a7a1adb76a93f04ecaac0152c1ca73b08d4845c05ebb7b2e0288198cc183f86b1722b3d134b407aa450a5216a945c6c72b144b7fcd4da7ae3374aebb5a359f12e5cee8e50a09955356adb322f3297cc530a495bc32bf212d7077cae954bf2efac123b5dec6b9bf82f4c77ce8663844b69deae29b05a6304b4b4706ada9faccc78828406b46eae43c87a0bfbca7df4f4e0870e89c9c546fede4973871e6230ff0eea6fc2e2937e3c1f78225cce18583c1d9eb796eb0e425f1b305dcbea84999e3c6c929e87df2d98e457397849937783c414ccedb489f71990775515ad7e96a9eafdf57846a4006020d570fbcc060190cb2a9603490f7f1a7a22246e334fc0090ea2cfcc97aa15e5c69ba095b341b9d3f0ad57ab2d8e8bcf20380093684e008cc6466f616fc2967c726184a995896c5dd5e4302658359b81385bb7732a0fd6acb3b6b505c71b0d9c5e0dfd0faac54bad7df93ff4221842d1aa94cdf7660263c6f305ee8cc19bfcb744424305dc9297ed737d245c2be8f2480c7f6955e19a77216f402b5613ff511b4a21763f1249c36b605eb5778ea349068a10923807f23519d45ed1b236bc3c923074c041030ab64106b4f7c5687348b7870c737b709261994cdb4d84707063c49bd4f1116b3f4ebda165f49635a2d7978e0c42483b1b220aa7cfff5e41bb15eaec5e61b1267d80715befd1643e678e42ea100fa1b708dfcf1958fcb5319aff9f49aebef4fe9c1aef604180e5e747fa4f36a547ff1950c135eeacb4fb60204663696eef9c49f79de64e3c41557f150dc4c08efa2bbb8fde72257c08f1bb3053b9e1b98d6639faddf3704b810495fcf12dc028801aa66e496c92f6ac6354f90f8cecd7ba21f347657613a0d48104a9e04ac4805e5f6bfc773e4c4bd2cd16acaf3ab40813d3c3d22fa4ea6fa841258ab38747a2bdc85776c9172a501b51f657fce9afacc869103f67f2d5ac69aa1c66ca1eb6274a1d633bfe6ade41e92a1a4254a797480ea0410c1875dcd614a908610a19a5ef9822c785eafa899ec5ccd9f1806461b3dea290a1343874add7906641fae086b3a8c54e7338aabc21e9bd8dbc687ad960712231a09afd822431ef22914fe6e38e4c605a8ca27df0c87c80af5deb95d0ef8d74854d0187e703d78f7cc5b1c0eec3461c5ebb7df45e0b03af0ed95edab7267255a0e38243b2da4581e2b8423e2b0cf4280a018fa4d19f43b3289a84c159c1233e88863af2ae4ac769a2063d72bdbee7ffc4683a10e4133a1a083b0456220775a55fc75fa899ab9578fcea21c3a44f15587543a3d1fd9dbb9be5db7e9144097222ce80b83602c5cbe362faf6aba03b5fede54308a5089928451bda0d40b3d8650ac9612a777db0d2dd29a475e051e92c21ed981002e82c69b2da55996986c6bef7a51dfadc144a2fa0ca7ec66f157146c95f1a80737db0f6c8bea9c2416d2fb657b08254f5dc0109f01245b2363a379af36a45cc8b6af51a6190b6c91077a494d0c2075928e45f8b2ac2fc008e03e92d0b04bbd1a03a9023051496897d862ca20f5e20baa935d523c8cbdcc3e140ea10a5226405099ad7337cb259b889653b93d09400412f70858d8a2d0c83c49402fc06098f371cec59db15525fa8f393945884f6ccbd7f9102afcc8f5e506290f8fb6924c42ffc7d43f968e35f34d03e804891b6465786711317e937646dd713a9faaf4fad7772a1406f7f609c9c11c3c46270500d3d3dae5ea87519679c4170290d79a398448c754af81ee7d5254281c42e6d8a7e84d7fcf40384659054e6a4469ed50057a214503e54afa1d0ff0e7e9718baf3e5e38fdce03095d2a54fb96cc67c52dc76af646dae82260be931ccc738574574c33f694ad2913cb06c46dffdafe2f1c2c8bcff5d75c7859f9f2e8d4d13f196ca8dfea59dc025b5f54a6dd2af9bc1e947e70cff92e28c229c7b4902d09330b3e7ca56ce136bc275a74f9fce9c7d5c27b49635912c980d62a089d89df3f48984a433dcabccfffd564f087d8e211151c5e12240c0f6886c101d298c5f6b245b120b173fc1e6cf9033dfe02d380d2be0dda3ef6b7975d1f094bf15740a99c8d7d85edff0f8fbbb0a976daf26488d4738097af008caa1efeb73be0d8ac9918571ed46308457c0a715586cd3460fe4170b95b14d65ff301593977ca26aac07fd1f7553a6dc7c70046231c6a4111930ced2132c7afff8c8be894a2ba91ea3d587b51bf5d23135a9c9fda0f0fd4f9b00971a2c13b1cda6e28b0f7f413d96369bfbddb1cac6f458e4f50413a9f1d7005aa403684ebc5f93232f6721eedc5245e479e873a6566ff37e77c64b4d3651f4e6632a782e1e126b9233d4ea21cda3caea00434700f533bde2fd006c56142e3d89e28e287562a9c71087b4179a45e149a7f38a42b7e01551d61b6b276a7d059e5ed19523c7ecfa5516a957f065f355c2781d588702507cf25ca59ec25b00debb9273c37280aeae1aeacc6bd69375b99c59ce8232fee2a8f2400b16c1f43d63a6031a5298fbcff898e50d89e379938136695f7d4e4cfdd2a4fcf1c0cbafd2735265b4336254786071932b6c5ea307b7e79a942fce175a23fa14076f571b78118eba68c3470b5e0152ad10e63a776ea291f88af7cee6cf36f7df711a4362f5af6cb2da4cee6ef0dc609e17e83a9e72191fa2d01f05d5b4631058e888ed2b658c899195b67afd8d1184fa0284d9793ca80e4c83b5b381c5021ace9fc7f649fd5128d8bad98093ac5142fa4bc7e5c64e72c11fb446ad6ccf434512788b5b865253208af09805b9490b0dce994391499ef59137c74441ad2674cdc4f4508786e71deefb84e6013e5018cdd00c39cc8fdb34afe89417b8bdf52857c2ab662cb268640754834bcb3c431175bd2142cbb9400b4a16c1fffac3e5d1441334904dec405f42deb570d289200910e016db5aa8d0b52966cefa938f73cb1037594e59be8b3e06baf45a0e7bf10caa859ed5c00c7326f2b02b271fa319763e0cb4bdeb1176c178f68e05896629d392e9317dad8feb048edc311a9be884832904ad7407bc93e2e177650a3da2d3c50121b8f07023323ddcf1e08d26210e49a2ffd495aa4fd097f888ee94431aadeb9d1bbded2f58d18b7a4ee3131dff61af35799d51008163e64231546fa7063fc53a157b03a84e77110daf1df47a706ccc5dc24144159975c98dbafc1266996f3063f2c59ebc6a533fd11246d559447a68a7aaec8b1a3eb1deed1f54c953e09570591fe35ffa7647741b4be5e6524f4a496ee949826dd1634da260aa9db903eb2072394183b461146c277e28cbf0a97d87b062fe79b3f32f54ff597431d2d7413581d7e2814ed1d051cff5b3ed40b8cb520002220d8b700e38e8b0d3b56bd84749468f67e0e92e0715d1f3967d72d9c85897acb5a3e9c00025b4dc65ce9b00b494549e8b9d27c368203cbf25b7fc91d101e68110b2427cf09a7086d7e4fdeb1d3c29a21279601dde1dc2bde00e0361db00ade5ffc06512ae0717e4aa4638e1f9ecdead50acc50985fa710ccfb242e84b63a0cad425ab8fb64988c9752f95c0be7596a28b8c3ccb5da481d40e1bf27092bc97e485441ce580c1ea9223c64de455adb91ebe0fd6ece20c24c2da87855c18cda28ce64edb35ad1a052fd3888c6939d38055d660ab254fe8abfc60d6e5f370e01281b2f1c6418ba0560c5f6a405b9a330679f92c1a8cfcb4434192c34427d16c8d3cb57049d410dba41f1958355a606748f6ed2c6e44797a64c2c919f17f2658ff198926f037f96c75c94810740a0fb4095d5f16985eaf14e429ac72421d42d31c96c45c1a722d3eef757bfb58e827a3c2986401f42efaf5f52525cf4d76929e933bb2fc50d66cd07b9d740610bbbafab81d222f3a7989ef86498658c325bd482dadde4e94b559e6850d4ca99ae1f490c5fde56553acc466c1a21398628de882d775204fd99d855c717a3c82c7524df24b70034a126ced070bbe51a16441e24a20d60797d96887ae7ae88c2e578f24710353f018c7976f110ee9b4041e75c18b363ff8d90e5dc0c0e6a033ca61fa487fdcec2b4b6b0b184db9bdd8dd55e5f808afc64d68e13b1c41f8f9d6d3f32e060e0a9857233e9784663e50c225edc86b54880a766ca53c7c379c0b7ab1b91905a101fc4c1d9970d10aea4ae46aa681e63a77a01e4e2b9ad925f4d0e556379b3559ee6be247522d57ea89207fba5c0acc0de5591667550fbc827adec689bcfe31a752e708aacfd7466678154be9006cbd2c53b0b15e39485a62560c4fe689bd47efecda9f997bdcf3bd3225e0b1e6167ee141821b8073a09007793aa9598ca4c39ab24f76b348a1e42d022b8f45b9f599018be85d1deeaf2e0b3ca9dfc15261cc58df4f5c1b5ed6d49dae35c69d76b9a4fcedadc03707e1dc22065b72f816145156e65a750fc686996d23081a09e28623063020ba5eebfb345acb2bf574cbc0c0cc25e6c523c98b923fd6495201e5b7a35de1d5cb2f739b84927d57dd7c1075df714d29254312b23680a1b7caa0f4e37e6be8e21adabc05df7ca013a71b9810fd1377e0d9d103a2205f93d82a6e1b9fba702e874fcfe6f6bb758e54c6377d49b11f5f3bb5b2ccb14ff7f28426cf19e9311060f873f8cc088d3b54f01752a0f4b0a8535cd9898ed558995887d17ae4e110be1fd7c271eb0352514a74fb6c6fd97e828ba95d26345a4ecb6ad3dc4a63fd79c21eac4848c15d6c53a8884c28d46851ce8d6a874c90042c2c0e3ad069ab484fa1616612dee5382f63a3425d67f4636aad3952bf4836763a7a689ab1bb70b2616f19a253fc0dce0ac85f768ef87078dc5056f90874f655bb626b7c58827c10dbc7fd6f6c547763964f5442521d763da4432636a12a76d0325a6da8da5ab90b674a967143378b7c8eca5d45a472ca18fe2895ab4a9c02feff6236f8092e5a316bdd994085721a3cbe32413477d93942e046a68874741b9b093abd2fb1fea6623cedad715a37af2623734332369719c6102ce3c9c68f2e3678f7d948f7bd99e45ae2e6242f0eb988e57aa14d23f918a5b291bec6345f777868a7fdf742e18674d75a0bb14d25bcd2f4ac75ea0ff396edfa8378eb466a48c1a925c949398ffc7ea3f121bf9341d7f4af53ead359caf0e04b523d9586bf04a4157515af341b3f12bd8b0ca38260fd051af124cca78b841f8c1eab2690b602ee9f0662b83fd26b9bc10120b90007434f2ebd026e76eae21184e949252a9ef9ef6079a3094fd2dff5d5d36e760839d6b91c012397e459b05e8a4fe878247a68b5bd2a0d5d069a855a8f644fbab2c84d87eedbdc1cc8526db5aec9b4508f3895d95595c92f61738dfa4414a91e29a677e74afa9333b80f9f507653587f2d420419d580e8aa4d6dad4d90c1624a082bb13ea123d1505499899d96df7a2e0e143bcc4e5989d0d35280b8190bffb19f77bc5dbb2a6b4fdb3843cb7fa9d4c071be64f6351b549e4b4c9bc57b18a52a69a85498154a33025f40770898eb87378c359e537cd7967f0d028649eebb3074e479dde4e15a78fa1228848271420e3482ad318835c9a36ff8cf44307da0714dc852206c8a79a310840d8bad6b8996e55350d8ce92aa55b8c16e42d79db66f18d34fd90dead6f7709d355181cfd523580efea29de139bf38b696734e104e395a75f5b7ea24c583649409a8017e55dc85ad4df67845c239a1559a8ad18f55bd6d731e6ff9d52a2ef6c59a4d43613e44fe225ba9c51c78035f2e18a1b447e2650e4202f2a43c45cdca381b4810c8855a3b6c132b97b6a99e861fb39c371334744b84d14ceb074b60b0fcba3d760b7dcaff3aa8446b1add0a631487bef70b8e960f05fb981472b09db7331bc8ca39fa09f1081609c28d31b90cbc4d1b7b03677f5ac3bc58ad890ba3d9f4dc8079839d20c2644c5b1508a312f77432d7e38248b0892f92a61a313e3c325ce81a901aa279502abe0c4aca3b8d2be25cb4db5efc02a19414ef3bb30a542589277cd09901a8651c9292f4bbcad392ff0a1ae0e00b53ed1e8d01968c0c1b506f22388826aab7d58c515fbdd7f76fd672a9d32ba3ec1178e4b83fdd1ff2f3ed26f750a0a459266dd8f7c01c43ddbe2b0fa78437d268a9eeb4f9f145054be3d60a725f1e9fa806c5bb34d622a4dad83ef1240f87f8f4ed787a9187b4e54febc7a36bc208f208f5728c1193522738a50369d48f748c9638e7eedac9e348d838840934df3a51b0469636d9d2f87597597a09b02d48f95c45cc094f3b7f7f4aa4a0bf0f4c737248e063ee6ee98eb024160a3f98d679533d8da691e1bc08ada1dcce9a7c055f7dc6a35b85c035e71110416fad9601300a661d2648f554aad97efa8e9670b828eb481662f53aeb47a840f36bed4e0db5c3fdfaf93d4ff553b79d322663d1e3c2e2b239decb7e87f6e0c5274dca15c529ecfafb2e81ddb3460b3de00287639d021e9ae2505a0dd8089264106e1130d7d8f487faea10b02b1664ae4f97eb2ead614d0f1e903fc4287b08401062cde5e29a6aef25ee4d79d617c99dae02e8b74006d751472df05a8a621f9c7385301cb5cb1e9060d237f2f0e14aec8cfa3fe58e7b614e5e55e94fd7224e60e20fc7306eadff42523b314428ac89f9ac470e267924241d5f2bd53a555703b7e1cedd9e94f179cd20e81660818c53b19f8a85417820be0bb56be3486876dc031efe0288c43409499dd0300d42e9ab01445e14cff06f29f0ae769e8b80accdb61c5445b61d8948921eeeac0793062b4797ddf4a60e048aa2a0c0d8fb3c06d8fce89d8db9cb489a268da5553d06e39d19f142125631b22c3a57d94d04c56f67d90946c0581d1a967790192aaa11ad17c4782ef99ba5884b7836ba779b76d7503890c41caef3e65c2554e44fdb3e1b1bcaa97e5777da891611500b371fe419802c9902622ee3425bd2dd2d842cce7ecabaaff6cf1b24ae5fcf34c0bc7fd5135a4346f444d4d28a45c4342c68702749b45e28cfdaa581592e52207df1cf2bef71772baaa5e6aa35519fd790577ebd1dc3406ff946d2891240bb42914a59f860eb6027f22625d4dccb78bba6e1000c54df72b54f9f270ccfcbf941a375559356c8ad87842c414907d7dd32240966d1b98dd24c4d13aeb8b4efdb47803b7d1af27d02a4ff723f0c4e83fae28c9c965e3891b646072ec204ab53c99a6e34fc11ab2ac597120d6a1f375aa042122af34f4fb3542d02056153da456827f6386554f98fa0ac1ccd4403e4688175049e837812abf0d4099c749eb03260fd23a2d1b37c9b523eae1595e1eca45b34c6e184717b140d226bf1ab6248abbaa970d876d7bec2aee608c94bc64f71ddbd83e36af0ab1350d3cd788befff31086319a5300bc8e5c6a9a57ea21af04ac80496f168a3382a31bb41c7e9806d3268ce5694c54ac12cca2392fc6b459dfd5cb05088b9fa9e97bfe539509191d26257b43ddf7483ebff74cf62e1e0dc8e1c58232131df1059491c9d8a0f83434664098d765e97a6392e27a72d7bda8b72d7ab4a33c322662859e076f2ab7fc74f673e888ab55d7e125dfd1c66a85bb9677d4acc8acd8e990ca8a018154c0829868d5a303844b9fdd8989b782ae702f98d82884250e027b42cc6a3e02836c5cf1e69f3e6defa2392d3670264401b5fb5ca0779c7521c049a5387bf33db33aa80e5255c154c2caa1ff4dc91740d8cc8cf9dd57754077abb15e6806376a3864b1cf652e2f4c5fe905b0b3d8c920d4b61c33dfeffa2a17e391325a50b706fad5e3c05ec35ea81ae10bf65eb8f72cc455ec4eada646983e6f1fa49c8ffa12cb12d2144142de049436156a0332f60d796501b6b785141db3e0af71cea3e8d659e355e7c41dd34419f00c7846a46bcad2e9235fe985f4b3e5dbece13ec37645c053a09df19282234a9469ff5dce0088edc48779e2df0df885800079666d6e3031830b2bb0e283453196fdd338bc5008ec88a7f0b84cc8815058eab6a46009aadb8c96254887b8a568cc6cf0d1ac6fea7da3f52b33d64e2e54a13af9bc2dc3d0babd0d231514404b6f7ce61af64e747ccf982e8ded730bb7fe2cba2cee788b913595392e161cd059c44daea7b98d7c438f2b69b7a56e6df6515dcabb45f608f28f1848a56a45b6ab55d2e10acbf223af0391106116c2ee50540608cd52ebdd6c836e4b6dc894fb32a540f6b851e64a4f30279e7d24c35d808d8057118252d3803c729ef3fa0a8429929c4205d6e394259c99d3ad3c727d84c87a3e86c0e7c04bf92ef8c520e9c56cb3cd42144431d38906537464d4104f4270ab729893b3ca04cf8275a4a5690c10ecf25859097804bd41b690a8b51f17d08ba2dc60cdb4bbf5b0cc2664d39f4b4257a263cb3210c01cd73811ec46926ba8930d9d03659b8c5646118512d6daaeed61bd0cab75ba70e8725c59278cae923044542e021fa5139841b285f5c85831917e8c0be978d2b1432804eec9056b8732118bb145a74f121086feb284da36e8346296145df21204a3768c07dee45ab04cfa330d49d47d74c82a3773369d652bb4014f036ddddc9affb36f502bf75f5cbe5e60d59a0cbad40575972a4df46517f74d56b2489f92a9c782762a362708846a93258c8c81213d017317399ada812fae07b1884f143c71d9f1b04a3343e786041284d79cb231aae341b49a055d334ff5647a68041f11575bcdb2ca6b019471c5325a47a9fbc47786b8287f98df40c030bc47882b29b9f202f567f1d3bc4c73a29e616d88b15d01c78141a73f181983cea48d78966a7b93463342a5a61cf097eab7df94788a81d1397a566aa34b20c51e6e87a772d10a6ca0fe65168705a1f677286373ad8c16112e29643104f7d83d5d8fb97a33d04a94971b759c5528acf93fa30c5d38e90734428b9ee418384864e2dc50a5713159e30127338b8798ae5224b672716849045b72d868a45939a7fba3280223d370559b8d58899856344c8bc6725c5123e9f1f05273dc42da07789c5475e02e79c87d63a6e7f1ad95e1df4825f5037780a2bc0ca485e1d5a46267f2bc20301adc9787086e5d66e142c294277ed022a2683ba42ec891122e0cd34e6561b48a7b9f5b93a5f2b65a2c35ff0e51242c78df4281c8c5ff206d07d1463a474dbaa5049328c1c875f7b9645c189cb9bc2ed368f99306564e7cefb5e5f539696db48304fb7beb7ac3071521c98a84db92017c86419ea7f4cfbaa801985afd4348b28fbdfecd4d7cc2231a6e718a91367160a939154ef35694ffa39f1827284c3178dbf2a1fff88f9c3b75e675a9dd0f4a2fe9982e5354807b6790cc0d37c1f557c6ef754c16a3b004bff6d3468279b44f83fa326fef3acd7d2300360ba535c892de4d64317fb2b8c6d03dfe80bb890ab395401d55a2856bbbdefc1210f62b7e561798cf592db6111e2901163870cd01e53620a89a53a417ce9450448e72fb3b9e84940021331771621c380b968e21d3399002b091aad1b9fd0ea7e03daaa5a6fe99569b1675d4f27ff5959b7313783bf08095a8189e191b5043fba491e04c39d2de7495d1a909846e070e01c4d253e8821a6e00f9da2aa53f413300e4533940d48bb710184a4785a1c43ca19058dcdab9d47e6a00a09b05dfa44b91af4592ec5792999766c72050387829e2dbb116d6734720280305880f08f4d2b3110dfd96113c1c71f63a40b5cd0d352029f4dc71d31183fcec637a002324f902ad45ff701b52781f90c5220ba007711c96834ab47002eb955f32cf51228d046272013d33666ca269002eb6609767d3fbced64c85bc3c22925f07a562d7eca0c2392c0d420e387249c613d3fb5351da45baa933b658b2eb24093e12c26eb204d34ff65263bd4064fdba05c5e4d895bb19c9a8a9e910e67ba2e983a301839bdac8303616b341c3b4b7a079939b25b07b39927e8792c20c0a223e8847221ce0ebe3a6b1e5e9640154ee1d341f70b8c8de0c4c66822d3f230f847af9f17af04c3cc5bce84080ce10304480e478193e3c3310c6f7c8ef2d1f0692e1b7deec0a3ffb3bc5be56e3bd2e21286aa4dc82480d7188d36aab1c82470d2003b10f0a24eb0e6cc43f0e2e790adf362588e14ed74f6e8b2013431765fbdbbd0d11cbf87f140015f57ddf160330f895122331ba4c35498d5b85abbd1b8b3683ea1f79630233ba1738e01d2d223abd51b39c4bdfe4c9aeb1c755664afd37fddf82008f8b81011c5cafaaffbc9db8b61e33fa1359517b0e8e4232238bd379bbf95a6f6fe1c0ae2b7911e8b2db5321572c22e1dad2e665b7df296b3be162d4be236263b8b013274f93e0772300c5c80d3fa6a21d359087bedbb78edd059bc8bf5ec78330e302f8aed4b9dc27c0f2503ebadb7ef6a92c9e00461d512c92c035d6a91cd7f814fc6816856139ebcb0a47881d436aab3c7f890bd26835343d421eb40b4fd2e18f8fb066996d5ebfebb25af4d877046ab1cc4e1fe8d874f25117b6d8da7f848f2bdb5b75a9c80a00fec3431a658660bf9518807046c91f9828d74d425843e47eb72e486bf9d36763ac91a73fee184e1cb7bec648032f76f47dcf77bdfb22f60afdbb98429edadaefe1bc3791652cb2c45d9b4d0f4d3c1340118bbbb68ae9a155c25b9b54ba3bacaccff16c0e02e100e65531a79afcd05b18031230a233dd0c3f4f2a468d0622484336a53abf44a7a367fe35e9af10fab57a8ea262c00428ebee21741c1c6c478439b082fa90b9d645f3c6168cb2651ea3993cd65b313402c1ab83407fcb1b2fab7cf657ecdafcc3f78a62bb9bbf56fe50e0ecf0f5739655abbaf2d703d3763aec70d9cfd08ae39a57eb6aa50ae90d148c49bf12cf485931a3f9b987cab3d4680950fb1df2bd5e524dc096e40daf809d9070778e40f58358fe96038188f2e487640671414641979627c9b87c71e75b552acc4aecef58b6334615e73b78de947090d0de8f8fd715fc5f733f85628fdd62b3b9afe02cdc01de7724e2cf773bca983831aad70d605a01e8a66eb2477066552d200a09053add0935a3209850b673d36018aed37ce34927f2e5d5beb11a5e69b876151d5390d027a2c429179bdc10e5722188adc61e069d7932eb6695bd6facd84cea0494c23bc03dfcff1b13498739b4a3e045b3abc7ede145b9f5efc108cab321d394d689c9acd2c513581fddfb2603d6ba03c6e326aa8504381258c4053ba97c7727e94df4993508fbb7f858df1286622c08b182adb60886df0e426088316ef7e29071cbdc5141fcf7d648b4b19a12002ce7494dfbca80c549361daa7f4857b390dff18088020de0364eba779131458e6801ac98a6dd72bc3d180e6102231c39315077ab68babd54a935643e30d9ec08de9fd96119ccdcd1cda34ea5314245f442a7223e02d364233504ff8192826c7c66377fd1298201dd869b08011a1a60a1e191f7013e83c75e5d3b80f06ce2d8538bcf4994a86bbba8d55517ef881de4809db20070948044ffa0c9b4a65a9c33e0f1db59d7ce774457130cb41b7134d8b578730ace55d9936de6ae9ebf6194d921ce8d1ce2f401278da31b3bdace9a938042e94e88e268a7887427e0c550b8db01958e1182a467d8ea83412020f4bf268b4f7691835f45759536c9dd612728aa00cdbbc695fdb4d711953a833e9e562cfe55ea0b5f694efa94d7493a62cd2c65ea5fe02289ea85b6431def9a968ce15e6f7830310bc4442a1813e82eb1398a1c3a88b9874f4dad0c6066c319d76bbbd360aae7c8178968442988ad3829f0c792e01647205fe49c4050d53209cd5a6394d79b0242dd804ce01d276bc3ce787ed78f98c6ffe87ef78f9b43d4e449a866d1242db22500a202b008a464d5d4b158fb9f7cda2bd01585f73e346279b702138ec3ffee3f7ff6ea49b888890901d460df30c800ca77be3e6dec099b1d91139b0d98d9b1b37ee8836c17b3f672fa114d188a43263e57d471fc18223e48f2872c44cd3418f704196af286dc90d3cb423ec1257847c760b7ac8f2c618299625b2ac9165912c4bc5b26658d68a65b158567591e0c6cd43b9cbdf08a34f55967fa1693a4c59fe06ce8d26f4d98d9cf75adefb7bf73dfc1e10efb904f15e2fcc5dc1ceb7f7ff92a39fbd4427595e22aeb02f334dc7bbfc8b8448c83595e5b31b3759be3d350d877cfbc0f6b39a7aa24bf2d513b7872c2fb790657392041cb26cb72a24f64e341cf2493c94c4ee967c029a0e7a79d966b349596d230c87eab84e0d7744955b29d75a2f075fb01e2ecb3b77e772d3d19a60312ebe347cd3e1f20b8c48b03d77bc97174c891724727489fe6460d21a7c31ce477938e93b9272d3c605bc6c34a3a0422935009385d0cfaaa5eca6d4da24721fa6bd26fa54b9f75e73773d0426cbbff4ee0422a13617282149445f8cb8b922e2e11f8a62188a847e5e09dc200dc7049ce99de228224c7e6bc8306d1b184ddc17f607f6443b71178a889b9327fa04ff1a19f18987fa4199386152d9fcc97b4f7a0e36a33494a6e1a04ee8184c64ad75c2faea9c5c32a1c4a1d8e1198cfb96babbe7ad983426ed06489768e6172f09857f491e4aa65e278143e497e4a1a293e8c494618ae6c84bd164eb0d8bf1c27ab56ee66c1c1663b925f9b92dbaf4b07cdd1ab9be6b5ed5ad204d415a24933173e00c034e2770e6cc26d6b46865496b76faf07ab2bd505a1e3992df254e7525193375e4a1261549f283583e79629d7cd235bfffa861d24b962c49a5e413f9043a2f6e32182f27a77370709c83ed60b76c822373baf4603bd838320c39068e655972499e4adee5986cc12a79a85e62d3d5e91d8a62d1b84002899e2122eb999ee9197aa4924f82fcc882a59959cc2c6654d54a55b154158daaaa51552d55f5aaba55e59c9286c36921a9912e3de7856b3b5abac636f97d8b2e3dc985d4a2a64b4f2a8938b016cedc16945a5bf320ecf7e003e33551f2bc80f80a1a4963d14008e1f478b0183c715c4d5f1ad90a77457e3d9f01e993151367a6afb0661abe2154327120ac9d8b3e13e5d62e1deae5c4a663c9a3b894ff1046376eae8897f350b2c6bd9c9a9cea897364d42b3b9cfc1a5340f612115ef29ee01c51e1e68aa8701adfd9863bdde0661ec4c8eff3e67d2a51929374e955f3736a31b39859ccce82ce2c66cd3c328fc0fe3c82a44beddabddd74f2c74389ac4535305c5e4f2cad39e784b00afb859d99a9763db9aeeb7ac47a3c2cfa8a43e8d1a24def5b70e16a6e606bac68c4668dc98fc69cabc132fc54a9aa1955b552552c5545a3aa6a54554b55bdaae412c9a4e1e8a24bcfa3647ae6bccec1b77312a74daf3b3f1ad886833d623111e5f53264034b1f6b60dbca6aa5ac2978456224a4b71cc248469d8875e29288612422105e89783641c124dc33167ed63378ce797d5c3c5767d15a9b42439170909705d2fb4267617f489cc6c4c623e391d1b0e3b11f14502845e2d0c0b6fc46224885e82308a4a9689adc338d09901f7d823d3d5565abea5355285505aaaa5055a55495a8aa2cab9a9252aab2c242235e355afe0a5b135349ab59cd5ab97eb72116d3c7e60d169dbbd48f6963e6b5aada8d336a45cfc08e2e7a4669268a54552e35d2a67719945e53d12d949ed24b29a614084a5d280d825221285532baa26abea107c2ca73b312e4caba2dc30b3fabdba2a8a125ae6713278c18033a5f591008295da40c424a21a41c42ca929426296d4819d338d264741ae9d3c4322d5fd1a7d658ac74a7aaaad9b73a86f5bcd895692b1576a93cdf5030e07a36f10cf45c0d938138beeac11a79a895beca497fa7345409fd3bb5693aea5fe3152646171d880a2689b0c7733d1eecf100e1f1b8783c41783c42783c1e8f1e2ce961b8fad1986031b10a9b351a2abae4e87c261b7ddd20020700e455c44ba5a75d752e4c448c85e119ec855d912e615892643ca1340f356fe68d6dd8af61a75f6f76c55cb8dd6c168102c2dc380341ee5ff3a64f0d876c4d8d5b727b412feca78b50715304e706e57a5eb0f30d74354da35c1b21ddf59f176cd634d9bd3927d95d24baa48fae0a90d155b01474f4c680884ec25250236f1a27886ee33122351e3d034157e86a23d879d1353fc34618d8eab09af4a1e84bc9ed05a48f4890241a5d910a9bd94cbada434995d6646477f7a44b9dcaee0c58e4960530920c20b72c98618c4c695cce1a93c6e474a96031f3ce4151ee9ae802eb562eb8070bff4962abf71f26533d9b22cf09595866bb168d2e3df24c4ec9e5acbc588c24a34bef0e0eefb393df2116496c601a5e0169d04c6f44bae8fd86df162ccded2643230da5f27738f3502af8089c812db0f3310576e2f409477e9f4d1a45adb86618f9519ac88213acde72823c5153011b4e91225457c17914a14811acabe03c461584a5caba130c9cd964e63cd3a3f86dd1a59ee9525331efb3e9ee9e4fc98c85df2286d2ac60de52eed31695b516c6d59b9b4e8b962b4a1357605f67434879be4bf9bde18f86f38425c6ba18c0015746fe8055e1c02ba38c6cef79fd559f1bf678ec0dadcced97131929bb3b8464850aec852c9e4baf1658534100e457abd7fdea2ecff73a1037161a355a7e3110b0062a8135b0c6b55cf348fe115360b9a0c56b58ef6837869d38a333496cbf6be4eafaea8be54eae43506a2d8cafa38bb3d354787212db031eed477729ff2862b39ee9237d723de36a7aa671e652b9a9e8b6a2675060fb2c9f6f0b25f10476a547e562029b4130f27b4c590846a34ab049d331e12ffccb614a155f356f7e61e76b4d1e22bb2a9ebcfad24cbb72ce72ae3a77398739d771cee39c754e49d36139ab5e58c414c045174d53b4088a5ad1a6f71c39e6cdbc694a336f5c72362fa5c17a54d9c254092ca37ae66a1cced1a5f7d24ed30cad8484766a3aa2fce846983c87e36c9ae6c833ddf434c3eb9992c45ad0927326e76c3877c339229cc3e11c009c2bc239da5cb8aaa215b528b62a2afa516705a5d6924838b32f16ed598170c9c909c3c983514e5a592e415c708cfc0ec7804f201930ca492babceccd0233434a520ae547eaf8d6612a6942a29e1c03fd88cd2a0609ee9f54ccb265d2ac99c86e35dc98f8712512b0c20fa750b8bfc4edbd5330f35c2d48a8a4e4ca11f9e12258d4ae2d9341dcea666d22ddaf428cd1b915e519a9ec971e18c92ac1d91488e2a21c3661227bf7903dbcd49e7ace6b4e6ac735e73627376a06b898373337b0a71f591a66388abba42eb421b4346c215a0746548b82a6cdbb86cdc90ed068637705c45bcb4112c34829de162601b0ae04aa5522ae0d15e0370b53ec9dc4e457eaf3017ec837d024424c50a04481f7d8449b0d2277dc6496f3c4440462b10109160a53192958bae32c20d67ce26df9e6923de5566dcbe2b4ab8546ed8a8d1ddaf3eadf870ef3b71201f6cbfa666c6d5d4bcc03d58f795eb94b411ef33ee139bcd9b774aad25916e1a13a8079b3d2528b98d2ec24df320203a0933794a9a8e9b463d2e9cc0120acd642f0f76bea651f699943c2c58580770b53e7d5c1596477bd571b58622bdb926341409370d7e98e4b290dfeb1197fbc28272bbabc2f6290da53d43697a86a6547aa1345fd8876a3df34cee0b0b211e60e68c648712bd660cdbf2e11d50f41ddac1668e0a58070b714562c70f4b49f625240a50aa06b8827d7587c91ca0c2b04f06b89c58f8f91eb4892e954a1989e894c608a5314313989e7928f9e4592d9a86ceebb4704b68381c139ce9fd392ccce4e7a4906aaea64b4f6cf6ba86d474c0bf518d1c5ae91dab79a6772ba7922e6cdb70749be4f04a9f56ea4b02383e584a00ac4767aa05e502188f545bbbd7f04528e39497b6ab68e731fdaaba6b9baa7a09f2b4a2aa5c7786afee56892ba2fb0993d25023975ed125d7997b5fe7e69cf40a2b2016e3684d633d689cc37bc030142e673d43b5c8fa4829532bae38d2a7c6322d63918466d127882718357d5a7178dee48943b5e8137c698bfcfec24586c95de46799e4d77836e99217f91dd2c1dea0288d83134e37a44f5d5ff7e3a25194a64d6fe287c5b0546447d3a73607fb1838d3279a3e359a8722ed8858189de37e3cd2bc9960e0341df30055b5a3aa7255f1a82a04545502aa2aa6aae6d5a39a377daaf27b63db39cf3a21d99372f27bcd57cb34b7942113db875474f3e88a0097807a80abf5e9500e36c80f2edaf450aea64def642419e34818469ad080e1bcc85c0d4b566231d14ecd82566aa7a6a295b0188a7b260e3df3848c3e410424a0af9877f5908957123eb00528003ed4a3caed46b5c7d5fa34446e974b1e6a84258e944bdcbc559ed3d52019551056990bca27223c6fe493f71e588f5286343143ba449b388744f47993c43d386ffa8812343dd370c041d6643dd3272b3fa9a44f99ab3e2f95488705eb6af290ea0e693759d6482d6c905f43519a669a41ebe720a6618eed77ce1a132bfad4f87a83cd280da5a146e81836a34df27bad10c2aee8e14ab7452f92d1dd4522aa19e11a12e99fb775dfba6b676124a4ef68476a7a1d13c74597de085bd8a6666953bb4f920b49e672565e068b89104a48fb0e91abbb264e7e37a6dc2fe57923c23fdebcc9efbd3112d1abdb3f44981ae9999ea1346eb0f4d6fbf2ee42310426c3ccc289fbca4c69faf4e6ab5b654ad3cfe815f9bdce16512bbaf44edf45b875cfd074cf0461dc9cf716456e070f9d74698acc819961730dbf4bd34119d40c3ac99e0feed44fca519e82d04129473990148c7220210cfa7b870dad0c8c546231d6e7f3c93e79be52faf9b6d97e5e3f34c3cfccf02333fcc40c3f30c3cfcbf0d3197e3e1fdb899f0eb638ebb7cbeb58e73b5ecb7db5ef78f5f68879deba3d5e0f97679ed8c60bbaf0934b00a7f07404a33a622b67bd27a5947256ec72d7e58acaf6fdb0aec8c980f03abc62224ec4e9d321cc515d6e60bcdc7e3c144c9720fcc23629638cf1b9f7feee0e6d90360202b9c2ddc056afffd12719a4c262e490c624d74311f3902bf23b122f39609a0eebed59b3e122c3acd5783398ebe45e50224c961d10a813238afdd81b651c025355ae72315eca18fbf0c413711e6a84e9933e55345dea433b553368154d3583764239fc8f56baede98fbdef7248acac68614a382950410aedc1d914d97379b3579365c471cf2e23dda195e0a913a7c3de55344fa8933e5533f40eed54b920e5c63734137ce8463a34133c7df25015cd33cdf429e274c905ed14d9d04af04faecc910d2dbea19de4d0ecb5ffbc5e58cc0737eb3cd7c55cd13cd4ed8539eef0be1c715e76b773c481d7e5f88686a283cd4eda00ad19917db22b406b03c8525a43a2b50064a32a67e7f31ddd33a7dcd0cc1fdcea8f3e7d6eede1df913ea57c7e60ed3f4779b5ec3b163bf8a885b51fcf7d97718c2ce661c8abc931edd25cf1908729d147d04206f9fd72eeaee3b11f946b620aa8d84212fabb486ae80669133c86c5846e078b698c24f497870ae188037172e85656b4a971457304081f71629346e56813bcc32f42b0cef62d1633dfeb760efee853670824c83fb9351cef7c585d3f18a5bc19cdcfe1e8bcb0ef5d1dc12aa80d27c7bb1af9ca58eee499ebddf5e44aaf1999604f8a49724cf250eff1f1d1a649390e20c7935cfa743dfe256b5d2c79a6d879b5ac4562c943b978701699e4d8c1585c02734997e5538897ed366f1faa3fe7679e7fe91311795ec6c35a5959d1f993961071a88deb8e4bb04e01350da5bda04287d47a9e3d8a87fa1c5a9086ac05914828bf2d953e983659df4ec44bd3d10dbb63b7ec9eddb4bbeab6debbb0985885cd6875da27ecf0976d3a2ecb7a9625ead4abea582b4cd87b0ec4620f6ecf04a43d0ccf3071f6fe2e275f4ded8a894b2291c49b227eb7a17ed6e5703039eef2de7b33ce42587a839e52a8d2db8f97a3b3fb8db2686d554e528eb73f6ffcc3e6ab75d9f97a5df3ca19e51de6230099763ca545ea55701ed60c9767633e0290fb34d2cb5bd9902ba25fafa805a06fdd510b409f3aec93c4d257987689e2f91c7c0229574f73818d36847fce461e49a5522f48a5a8b0030a15c2808623a9548a0a2331f73fa9249186861552476c17624a071e2b2cb9e2482a95b2028b8e19602a954ac9a006b3b1a18193542ad5829927d4dcbfb8b0049c542a7503185ca1563187974aa55236f082b5c4492a9572010cc65055610b39681c1a6598b94f8b3049a55237b0703eb93f6974d036a9542a0675b0725fa6e10c35a9540a0730e8034aee4723b823a954aa8a544a072f8842b349a55230782a45032cf7df1568b8f0924aa568587cd0ee3dd295a75c0ca18607f4482a45044fee3b9295589272c4d7116ccb5fa0213f9cd13ebc1a75f1a041ca28c8630692daaae7e970ee79baa64287a29ddc3a0137a6e1e8e14cfd2683f5c21011c2081fdec1038b4496487fae4f41de833cd4fb752c8294b4b586699762a392877439880f5eed06f4ea937b0f3a289e43c1eb1e8d4927c620d7f30acd603d874ae0a5d91dbbeb19460e0e54d24f7afe8c3c9a9c076377913def256df38cb85b871192f1c449f5289fcb227bee923c71a797d00cd67972e73b1a763c0fd2a7ce3d1ecf3b2ec9d5b97b078b71f0419ee53b383459db1c694c56228e105aa089355877f86e9d31d7614375eeba31ec14ed16505b6bad41f8427aa8ae0a1b7aa5ec7266a37355d876712517f81285fa5e0906891c1d6271b9bbad07117dc70293df4bc6d10916025162619036bd6320b1099d638cf114d8d1cde561210d070fb5f61cacb34d945c0d9a64223d82da5a43554fcbc1f6df934c327c3f98e11a6a6ddd2e5d6a53b40b81a336c639fb2481f48f2efd784672317677c462dc1b0e225ea9f44a0d87126c3fbb2edb2897ee183b4608a19d7758bcc3e0e39df55d2e24540551b38987aa70c9724740ec60e08a782fe1341c07a183584c4761ab9daf14c57ba656c4fb6b5938c093121eac7bb031306a7371a1ecbeb08e446a94f59e9f8247bc959f07223fe925265597d8b6297103522f2ba6cff4acfb449bfa6f97220d81689809a3c2b471e4e70c89f69418f6e3416d2e5953da9cebfe6c9cc1641a773963e599cdf0f20dfb5164e5335e6f56420f32baca83902efa8e6e0f458222009971d149b08257ec553ebacae30cbc62f14a0833a1f2d181a86020273d3eba2660b89b68456d47e368de4d8752fb485929df583f58279a8e10e9f0a5bcd9672f7b7046b2231922a24d5dea12cacd9ee190e1535a293f79b35206753604c61255e1aec8d05dd156348ae4b06814a4b9a1b90e8c36c18faecb7926e724c35b32ac05854c1bbd8dee25ba34549214e5a144873f89646d8321eb49095d74619bdec77a5242f60af5e93ad2695c177006b6dd64185123875279175d8257b98e499be01219d8ccd194dc122b1a35a2111da67c14baa8434668f660536ee6926498f3a4866e3b30fad472131786938861975a762e42c180f9ac31c5afd5466b0c6ce8f00e8c3ea51cdec1bf5d7b5c1f0a1ff399ed12fc75ec290ffd55b9af36f52b94fec7fedd941b72385d82eea64bf08e0f36e3802b83267b56024556e5ccdd746e7665074f81262cd0a78865da9027fa14459fde65598f19b4d7d21873506a2d297bee76333be5021b5fdd3d7337ef158dd0c186b0134f2fbc3a62192d64691a1a7f6830bff71e0c4cbb2dc48073b0b04bd4f5a8fdda9709cc014cf4fbbb0d368410c2c6d2c94090bd808179a8f6de7b190c4c2edd392786936bce83608e75d9f118618411461881023f168e1093a9c75ea105baf43ee4ad4b15a59442940fb4f7dcac8171750909384676efdc0c3ac9f133270c27d8a5500c7b4127108af17213e95a955c3fb9be6a28586bc5d91018280614c31511df1a894a99ddc8af8ae18a70508c8fbbb4509b17eeb258c89b850e6f06ed9567f5f68852aa6559b6c2998bb11e6232f19dd76e5228745920ad5737d6dde9f674dbee4f374a37a8fb9adff13e97d7d643f76993ebe77bf5ddb57627a6319c83c5da86b63e45eaa3d6fa785dbfea65bce8a6604bd45ce36bc7633f28a050ca3531051c3a2d728c31f1a1b49505f93a23848e84a250bec1c1caf604240191c8b2f450cd921eaa3a34a2ad5bd10bd350f4f2a587a238242dce98bc2654f7eadab12b72c38d2dd1391b41a631b55b37ec7e0d477b077072cb2d0d73b099cdf78924d8cc79e1bce8779be852c321a336972ae59c73cebe670b36b3b36163890d1f6c071b9c9dab4bf1b155d5e7935bd54cf12d362e1ae581857777340f9523017deac727211fb1c788023d7a5e59f5ad0d80f2eb187d28100e32038372e1cca54a9f8ab31ca51c9b93dca60ab3c4898174293e01378976448b2ec5f7a48caee6081735cf1d79d1d94c2f54f9e6923dc75799063bdf9e44a69f373a21a4c4c6f85871a84b71c76ba7775ce423d9c5a0ea5bc5493c13bc6589c815fec24696ec7ad6ebd717d37040f9a48b1b3d9091fb0916b93191ce310d07acaede4188072dc816e6706357c34eeb7412d070c0777d57bc5174091eba226d82af6e6b231c8cc2a51ad578342a3284772209583d6b4c3ad8023cd7c41410e58eead6e1ef2767c7837db9e1e80c71d6ca90610b4386cf3e19666d0b193eab76341c100fb65fdd4b42fcc4be060f6d327be5c619b6830c10bbcb249a8e1d34b16b155248582a6260539f2459fe93e4a13e97ffd47c943c14bc7c0a4ed3214496ff2cf930f980a1e9b81e9f7d6cb2bc4ab2fc55726d2e158270d27494649beec12f58eb5556378318d87991c0cecf574d8792a6a33d634932446649928d8c64f97683c823911c6c265292e571b23ca20b9bddb851826aefc64d9fdcc3829d6f1088b7971804e03ff8c6cd33c9db7b03e799e4bb0b7607d61d918ab14b1a0ef9a8039b5923d626b1461eea48d3815ddef6a0e9b86e8d5825464c54b4495a81753cf683020ab918d8771bb9e3b11f14502825429767cd933eb50032ca2e69933c932c6f9091a5a59f8922413104539ea8d62e75ff83020aa5884601f854154a5581aa2a5455295525aaaa515591aaaa73dd00e306ce43350f696fdcdc7842442acbcfeb4c60496085c849351d2e593e5e61df33219670c0e57a68bd3a2663adb0346847d82554d0f4c9b241967f3664dd7a423b5a4d9fc427562423cbb74c491348145849b2ecceabc32ed186a36fc1d08e10e1d825b60bcba4e9f088d62086bb74ee21b1902acf1147bc0a1fa0f3ec084fd5f18870446b70b9eab48bc5214b396469e12c3ec9f2d551d7af6384932c6f84131d499a0e20b2bc114f8c20e394b2deabef5def61ef75def3bc67dffbbcd7a44fd6017044ea88d40d30baa6e66baa032e6d6a223a87128b826953bf7374a9e3b31cd9aaef434a25c519125dea1c6ec773c1816488b15d6369d4859fa8d825674438f128b59644ca4839879463e9735f90329213d563ce1098157779877b54b97549ced9172483fdd128d23341d465aabc630cdb8650f786b931d815e9449f503e4ef4c9e6273ec442082b9cd1aa72a24f9dec449f3027fa746527fa542f27fa6439d1a7aaa29d151f569e97b28f5842a88d001cb4cb4106219d8797103e560d07c450c615d887a9a8cdc57a198be70a3d00d8ec9a82662c19ba9042195e19668833faebc25fafd4b23e3fb0efd6219c9044ab3ba40421ccee5ed802a6c8f1115342a50b372821c747dc289a6d5c55c43a7ec13a78d1492f2983a79803e8eaf0e860b350cfce5cfcc431461ed82ce4e69c4d87a42c3d1f49218aab8c237691072ecef950975842241e58961a67cb59e871c09591e5437d9a54c6df151f99cb795eb7029b59377169cef9ec668c320290bed2e75c734d763221390e7935d9a54b13af5c2047bc323f459e18aeb8fcf2c42b3ee66481bd393a16d82c42d9fe4e146aab9eab4f5070c09591699cf882514e5a59ae666ae5aac6055cd7c414b0a39d1716bea8865c1dd6c395723774ce3584a5dcddb2837d0865aaa8ae41d72d979a0e97dddb3927b5554fa94ff2aa2cd2ed33b96ace39e79c73ce39e79c53b6883deaa49c539620bbfb26bceff0bdf79eebeee79eebcecde11e9d9f6c0a85dada43d5be55e5d6a796524a49a594525659610ab0acaa03fbaff13cbd3b4aa594324bb8c4bb584cc3c3f8daa64b4f4a299f7c70e5ddc5b81e9d7b66017aa91c8d60b3a6c94df3e071a0fb01a869dc11ec6e6211ec7be6ae9046220d5c91e91c448a27ba4b10a34be77ed0a08e520481524a29a594524a29a5944b9604699068849bc912f94ecd85569225221a25c4e549edd44ba40481e4619678457e8a2aef8a0f494497e0cae8ca2c04e82e41bc76340f4579c0b791917c10f22e5c0822e5618651360823a85d92081a22b994faf4f08b854142a6e55aeb859d0f217b3921dd965bebbd3ebaa1c76b74833494a12c59b26c9144e41c594a29702591deb01189749823ba14fd113162c9a3d19547870d3f7aeb13fd68f427c299cba325447874e56824e5e87274bfa3fb3ae97e70e6f2e77aadd7557fbd6b263dd2e8dd0554e1ecc52588b7e0ec42e09370662fc240fc3570466b08812dce4841bc717617dcda44e328d0333abda3d7eef7208c51ca3929b502937159f4d6a766d1cee8580a3ac933c12a0b0b8a019d7c2616f3a181d1008c11d11f2613b3c8fa3dc4646016390003cd64828f98cccba257794d4c0603ad04df3d682578297a9d988c130d07bc08f7918603be464a69a697e6e6b008043be7ccf4ceeca494b9638cf9c1ab82106668bdf732bd2f4779d5eecef47696580fd145f2a1eb32bd1cb5155d8217859a3012a44fa1211e63463a10cf4a390e71619be481b852882b25bda307e95355e5108692a64fa3775240a08a06ce4a19a40202bdbacbdb123bedb1b437436549cb61cb3b2d4f69394bcb575a3ea3e52a2d12c3b7e4d13fb78dae953b97e5aedc19377bc9592f8102dea6c93e2d46fad47212ce86c0c0c31c28c610accbd75bae1a7776e53aa5c76a47e534ce92f2eabd2b93787fa9f4f202fa086749e46cf42130192404f4969f8f10080402812490df3309e41108e482813491412050088f0e0a921f0804ca92c8ef59127994723dbe2b437f387b1d70524a29a5e8a08bae0fd1abbb95818f5ea2fb81960c7af69169d15d612288bb1c4810b83d930b067241ac47940dbe7611db86e3bde100dd1eae0cd05fa8454545be86ca6ba8a8a40c8101e12130b97399f216969882e10a0d16961589490c9871d267904824d20cd257482ba4ab9270fd4a7dbc15ab2b2b2b7fef1ec2e718e50eaff8b82e7f61d8e9e73ac54eaf530c048249a2a6b0885ed59419a4635145a376525870f63f94cb9b0d81017d3ef4738a33ec9f4f86fdf3fa7958cc1b81de5814829507e10c06fbfc270ac1a23c83c92823ec17ca10988c61fa96ef786d5beeb95912b9e5108b59a901735d2d979b13665e4a295b5e5b92d8eb8a483a4f983cef144bda04bb7b49d32ca16921b55811ce48a4116e69696969c1cd3a9c5e82c466bdc4c9184bba60e2c50d18384d72c2e8d3932d77774682f4c98928f2b3409fa494f21287ae2be252f5ae1c74551e2fd07b0fef7811f30173e8b26d6428143a1613baaba96d830fc423e8b2337ae6941c31e3998bc2076c9e114197152441a0c7fb9e8dab79c2b309dd169cb9dc727957565edf4a5656de367daa5f7963312bb8d95eb955e6d09d0cbd1933bef2dab9a0f8ce0505a12dd0a74b0c9297972d128b697975368a2e4971f981875d0a420829a5b973a99473cedcb973ce29a5cc9d2b29a531c6dcb9b1aa2a0861ee5c6859d67b2f77eeabb5763734831dfd1a8dae725deebc8f40a74097e24177984c130d0724c5207d8a425cf4d62897a7bc352a8867368b84b8f136973b71903e55195ee556f9912e6c38e281b8f8c65644fc8c0a9a77a967ac47e8f18a40af6fb90d74ad9c72339a4567b919298b3014305b193e0a295caa489f42b5d61fd82a95b1faf9e72048e331e52b2caff17ad047075dbe826ebcbc4f09d147bf5913398a222882f04ae8239cadc88c2e710602bde526328804228148201288042281482052e82dab8c4eb200e9a183aecb2aa41938a482b326f2c8959143f7548ff1571341e029009b6488f9205d863e3a4806f4bfb712c23d5c19598441a7d4cdd952be182184f13dd91d55446f590576097451eb12e8a21ea18b1ec2b4e1005de4cac83b1ee8c6936e16fa64b988e5f12f620d7039bed20b74456f58034637035d843f3fb0207cec110b61b9080bb91e894410261233cb6bf578bdf388b31a90c8731803245e79c31890f2959720afc8afc4bb02fa1bad3cca83fe5256de597994073d914738eb9cc8cb2bcfe0a3b18269bc43e3f1d2c0199197e3bbb39dbff8cedf512e111994ffc0ae28e172ca5d4eb9c442400eaff8a824ceac0c1202fa27e59f06faa7fae773d008bf9b3591a55461792b2af2a107c1a27a79472929779812d53f1f9c819e92819ef29a72b37e98ccab0d93115dded15b7e84b367f91defc9db8bae10d069e829b7737df65c5396e81cc24240af24261233087f3e6df6dcac89980e565d2d5b7758059b8994b8975048a9ed25373db0d5337773c466ed0666faee33bd53e4200fd53434da4792a50961906772a9dc44903dc854f1886d257dcae0167dca9a174dd3a76885912b8e60d1a7249d45d7b4ac051029e52920c7b02f55a335405323102ca56d4e2765c7f82084efc5ce39a33d5e0482a53d68fb14ce350bba18c34e4f7ca713df5a8cef340c93699fced5b4cd8c81187bbbd66b8db8822d7ec2f6193fe1773c48a4ab2be47a0972ecc0575cb4ce55b5585df7c486677b46040aa1bf1e23a50daf5c9f7f31c6b709abaa6de6ad0b93b16f155b62b6082f6bdbb4209eafe2a4f4ba6ecb94da29a488597791b3f7798554b4bdcff8993d583db6cd7b6caf0e9f0db95c434f7bbc59bbaaf889c9b45b7711bf7b3e7717e57d41efdc8a1d42781d56bf2a08f10afdfcbb9f1fcc2157be8e728940ec7e2e6c13862f88c9cc0ba9aebf89b30e4c9a85a0355c61a6cf88c077658a85c42157ae4e277c35e4725ae4f708338d37735be478a745c75397e3e35deb74080bb55f2b7e37bb8864faead65ad5aa56b5aa55ad6a55abfaaaea55b5b26835e4ca133ff91ea7a0ee49213efe483622b72c30c9c9d673c55fee966559966561e7b2b544cd16c6309994c343e7dca1932b1ea90ec405dd4a39bef24e3cd4cbfd5fe32c3348a2f76da1b1a2327aad74cef83985d4169a93c619c2500c77c47c74402c11c259e77a2070d6224772331c8bbb730e57fa4af14ac8c23bdaddb8fcf3f63a42dc0e51bae7ad4f280cf061ddddba93bde3e5e9eaaba76032f1eec296b8b2f5286fc2d94b0967a521dc112182b88b7b757950c564e285549cb968bdada358f758c7ac5beb1d0b6743603ed15d56151673d19843b7856ecbd439f929a48856152d4846ceaacb2b24e525c8ceaa620a7e069de44abe9af138834e7295f268bd724672d03801c4e3ab945b17667a9d7b28a57a18ae08eb149349f9773c202ee8f8869e725b46b9d9cbfd4562e330a74bd643bd3c53ffe28c1e67d4d6c09965c119e933708e0a7e79c9a0bfd45a6b67f4eca57492a5b5d65aeb2783c918febc610ca8ef7cf00af6d0adf7522a3d3bc9832deedc7ae87e7e6087c064fbccfa75d0c564ec85a060cf21b6c495edddcd6786884eb93c617192fbf3cce5e4fe746ebd73cf75fd613157bd2d7764c6b210e47aeba1cbf6090ba9bf6e5d89ebafd677acef681bafeeca71225caccbeea19cea8ef66b67e3b63641db17ed52a8bbfb61cef2c1ba43dcaf694a7d25d9904bca09a19470ba1b7d6a5dcaae0b15c368596b755917cb93f6bb6a9224b151a224c2ead66c613ddab583305a8fe6cdbc992346ba6424c21aa344b9ac5be57ae33a1e44dc76d239cf94ea275d7a62ddb88d471c81254586115e588cf45cd6a519b3eecc1d2ca6ba2ecb0cfb041ba8ad2b73eb13c5626ea4362ebb498f2ac73458f700549dcbb61d6c2671ea4572e3f222b181db0643d24a9ea9afa4993c532fb9a9de20f5603168c871f60c336563d374341b377e620e18b6c1f8607dd3371063584c552fd265dd8772d50b6b724ea785adaf2a97751b56f0b96606bba341588cb4555555b731c7796c5682be101653e158065b2dac234f722af6a1ea41d791dc78b5711f13246fc9cd5bf270b07773635b975a8d22576fa5fae0ddac95ec0a368e09a5e82c4590e15b293a291b96c0cd18c3bebb2360c8c6db922e1eb4f9c2b62ebd08c9784f9e3c2cc6453258f7e418d873d2a51e83756ff31531678dee422e966031cf0bfb725e8efc0acbd59a8e942f5c16bc104318c0c0c48b0a3b8d85c625869c411b11b442ee472346e217bcd0852eb8b005234d07ccad8525466216a2915caf8a4e791ad0e686c98e224554701e287865a8e0854711505ec45d05f602e9786fb7dc11f5ed579fe489d8ec79fb3148049864544405e75104eb45808288cd9f67a41c4434216c0c3d104499af95e223e6033e12c44f8e12f311b3cd734e4fc6552b458cc9cf0628e6c3cad567081c9d18f31133ecd00e46a399228e24b9e36585f9f86703988f0fe86296b4a49c9694ceb22ed0bd9ea95f05d0800cef79bd016838e263ea634e003cafb5d60b746b5ea955945d584cad145bd7acae39af39dde59cbcae0b74adfceea7e188af17a51511ef2ea915117fdd190d473c0ead5ce063516b8620c3d88ae8ec1ce6035ea05b658fbc5c8a10144cca8e94b323a5eb58f7d34af1f4a6b4527ce7aab4523c7669b452ac6e33c59b8cd0002c315b11f1f356ad145f5dac95e23f1bf06021f0603edad3b940776679db23816b45c45bcc87e7025d99e5c7aa2e921b78e685870dec9a297e3ef602dd9825121b7717c98d7fac1b9f2817491115581e363ef3c2e3062803f57e5a11f1376cdcd64c28988ffe6c0005f361f3753f102fcc20e724087481eecb5186ec4c892ed0edfc4162e3d745326379d8f844b1718f8d1116230fabbc3335431b256de6152fe70c9cb151e2589d3d1907aece9c9907f2b51a0e287128b63ed0980f2b5bb14a1827684828e3151ff5f035945231a40283337006f401fb81fb019bab63b048975a84c11416ec3bc909512b227e84f9203527aa38cb327c0653b01879114d1192e1e7b3010ceb40865505820c631c412bc58b5e47a1ce7cab35e04bf69c746755446761790d7c0f106f11e242981ec45d8678c973947f44f7783e04b48136900bd8456e25ec510ebad91319f43a95f880566a1c05672b4bdc7b503e71b65203fbb8b875c9f3969fc8f3a0ef78a09b813ee37e5eebacf179872d8172cf12f6a07bee339a576a601f168370fbfcc7733dffcd400f996e4df7fc73d2ebbc1ae0b2c79abea351eee70716059ff4862d61ba070b31dd622143dc732210051381d9845b9784f86788875e7211dd2304beca3d380b02b72eb91c76c905672a7718038000e22d07a265b6786e0bca3fa0967be651fe01a2e52a2df7cca38070a6d222f27c7a700bc657c1f75c8c33973d9f1aff783e7756e51f957f4ec3f3f1d0b8e70abfcbffc42d7778c587e8f3a24f9c59b986901a67b9e82c35ce223a0bcb6bcc9b3d9167df0fb4791667347f0e6af9bc191198593ee328ff1da684e82c67c1598d3fabf1bffe2df17eedfdbca07f6e66f3e7f31d0f25fb7ce5f70aa9f114fb4f6cbbd4622d1652e3a2dfec8389c05c03b33cf41d8fc6b52cd973e8336ef6440efd588c0ac94926f2b2e823cc474a16bdce9881c58c2e924f526ee6728a2423e59e793946e4c28a9ec931443365d339e536a7dc29f24cf59363c827219b36754c0837db6cf28ebe56b059c47a5bb9a4177d6ab9412eac6065187dcaa4189c18583c97056b02c98d5ff7460d2cc6debdce99cf3d9e5f7d02dd83332270de3953850f863643ae67d0c609945f9f7b4a281f0cf3f51d6f62d69ce953c3cd7a3c9808a6c401ca28a38c3c577c609fc73011fc0198718379062671641399d372413cd3a59e291b26928b3eb52ebcb801a34f12cb264de2442ad80cda5ca725b08b3e6543ae3ca38d9db348adf5d69d3352e4ce5ba36ebc8333eb3315a760e7b3992ad2a5761895c2e6ea2e0be6eb3a6cd48d977ce3b67c67112cd7c094a087b706e66662ce151acac69c5216245b2ead541fefa7e1a8aff73a06e3a1cd43a1cc14b45c35cef514cfc8f51776a140b63e239e8752c809bb348fc406865cd874063147030aa534782cc6e5cab9c1c9dd6e96d8d6fef250d0264aa887931c23d376498668e455ed08e9852ba2be5b83c062220582c082dc58424409efd56c2bc5471db4870a35537c5f7ae1b2ce99f422f7adc010988f9be169098b89404ad80f93098b8133b73e4991abcf8a9b938e6198b018b9001396c4121b584c9531f1b04a99031b65e315ce865c3247e2481cd9c4c69d45dad43051e6d42a5f614ab4310c610c4348c065038b391a79a898d3a6a631c748eedfc0626295f76a94b479a67ed5270b3ed624918285978159489b879aa9b6c9fde2716031f0119b29972b9b5857e6481c1b9812d5e34956186224256c8c610863c8127ee21c5d22e507f30dec0512c1420446ea87238403b3d69217898dc30a0419dab8ae99e20180f9a8c2884ebad42f028b8938e644c15e5dea9cdc2f02a35bd8f66255f4e5eacc4f3181c062208635883ae9acac3aaf89753cd37e26ca9c734e5068b61b40474e212f8693a6d42e076154f76ef1faf030c9b04bf23b3ac618638c7109ae6231f041e73274afb12bc310928d310c810ca4f9972591e1bbe478b4ab4f0dc47befd9676a3a9cb3bea3dfaddb03f14a0fb5e399fa01ad04d3a71fafb0e534ee5f6fe835ee7d7541419c185535ee9ea304e3dc9b8459b092eef8d127980764cda6e52c4fc14fe3e38998039c109aa9cf816692988c13422bf539d04afd1a67dcb9bc8269dc15f7964fc183e5b2fc1e08cbefdd2f8db760297e1a97a2c55561b1165895834e7a2572ef941958e522b927ddfb06bd435771350ff5b71ca5c6abf75d92a623e54db3b5513c148df64e47b4d2e7ad9d608234cd4e8884b40ca6dc7b89e81c2db7812ea170396b4e9c106ce643912e0c33df3fe2e6e8d27c8d4b449be6218d4b9f699e6508ccc37a4c9906fb3e717b12b6198d01e13de7dc7bef3dd72743bf37df7b584e2105cc8161bcbb97a59bae3d834e1a9eef3d5bbaf5f9d644a1a39ce51d96db9e69e55295db9e894429a5209c914838fb4b17ce5e2c3c0426cfeaf2af7a500c2846b39942a82b3edc3d560b96d2397346a79439a3324608332af33a6332560b34bb57abb900336de79aedc92472a5d45a12e92f959600ad30317aca2790f2094c912463173d742b03e9c3645e03da143dc8d83b5e0feb1143afb2bd7631761a8e87851eaa7036054dc6309cd5832ea9e178ff5c9745f7cff42e4f3531cf47a2589c599c91487f294b8ab3971421d8a9929f0d4acf23d5c73b7d1f68c9eed92737cf0a13f1f0402286adfb79ba5db360080c0a165a98c110982a41a114e8923c540a0e510ab21685444ae2449bfad502a59f447aa23571492629cf49fbd361d1270be08c66cb257149da42b92c2cec923c81352717765231cabeff62afc3967bd67032b457a72913dcbb739436ea4edb33bc423820c58b771c7899ce9094527afa50286f5eaf6e7b1ee5cef950873ea31e8f07745b9baca753e71d72a17ce4dffdfcc062d8bafcfcc05ed87a95af845878c2e75e9d6221eef3ee13c7e769c945e580cb1de861d10ade761fee8589f64c118ba9139374563daaf79091b5c2644ad9274f8c095aafaa620eb0b018790b6bd768676232133fac47752963e5855d984c852f7655ec479114a4a076ae0beb11332beb6355576badd5e3b157552f0b8b994c5c98cccc181683823900ebb84ea7d3e9584b3fd73525cee05bc3513b1786c54c263c98cccc33068439a03d6c31998ffb7c3e9f4f6bdaf96032f3d53f588f9a27ae289787e60a5f16eb917de8fcb8fc286e4ebaaa874a63a873aebbdf753d88f9b8aa0a215c49a24d911b16537155fb61401a93990f92480ef0bc33016bab0a62f535b66bb453bfa3eb5f28545f61aed1d1ebf285c9a078de790a3e2b4c78deb905f2a92226f39113f3e19cc464eca4a13c2726e3a117bd0ef0bcf30a03d281a1329deaa257e67abd85f9b82a4ce6a2984c4a9ed81215b786a36232a17c5df4cab45c8f6149b45c5f5c19f9c22c142c86c9b85c6bc5da61ed591decc7b0c795911bb6c4e572c519915cadf8b088e04c56cf0abcccdbd111621fef2f019cc2ea3a04979f61fce4f9aaa1eae7b4de3cb8e7cd88c4dc5c19b9d3e9743a9d4ebd122083721419d05192c89fa334b123377be13d197df1c299e8b66692b7351c16ce68d54cf2a12b5fdd29f128bf4fc734d47e6d3aa7943142f85e63e17cc0f7ded79591a778ae6740243e954a1189176ca67e854eb00d5e9e22b95ee50c6cbd9503a651d7fb3b129044a3b05f2041daf4430696fe01b29ea874ad35b5452c9d1a11010000006314402028140c078462c180442cc9baf814800e8ea65a76521a2a498e534619460c2920020000000000000851de2194371f23b5d4780436c6d162a6808f0c5f22a5ec12efcb07bc765cd60b216612f4a8e7efb7db72a8adf378b8154861071d59546cd655ecc013546dea521369002b92b21f9e1e59880a312090fa13a78d10ff9de5b6a6667f85887cb43d5bcb1c94fc7f4ded8bae4d12a25cd531ecc0843c873947e75ad97a2fc74348cb7ca6b70624707a372864a30e4d4cd5988320a054b25c70cc1619bed109662c802c512799d9c6aff4d3c828147663124a3cd1a345f5703f73f60b94ff5bb131bed781155455d17006da196e2ef36621704b3e68e3576322d1c87e6f622eaa01f03efe89a4e6c6c7456072f919d10686a058796491fa073972adba3f56871eba531e30f759a4ec92ac465499646e655ebabed9a5e102f3e4d3026f69b13c014285dcbb780558514843cd92e0cb9c64661992055b651a6dcf209d0a0489394c6b69ee6db969e85a590f57ac2b89ea9bdd8566204c05496b40c65c3d362d8f36af095945d820c25ef27c38e1aebeeabde7d08a538bd2aee1ce2395628ef1a5e668a41b14f3afdd72a03b183781729b56090410dfcc65f6122d583a733fc84b421372a4c308cec2d602a22e4406cfc95a8ce62423147693f9541dc5a8d360aea391a79bef03b12cedd32b4266ce7c2c147b7bf71d191fc8eaa0af4267afbc5c534ef123a4ee9753103a7a869a258f547ccbb62d1d3f046c6294fd6168db6a59bbc0d7040266230e24cee273ebb7570e29e36585f93d6eb8258da5da4d0c6c612e28461110a3228f49070f72fd49057ccb570b9908d5edb92699440ba61de48457dbebf392a994c09ff172502a28c1109c26ffd1a1b0d5d3f70b0a1533fc0f0820e3906caf3bf2ce59b59fbe489239359ec7a12efdb2f8a659406f96a43544cb54d1764867c2715f9f8c025304c937824ce3996a891211371894ebd5d410bc397c9699a3747a022432d894f819052ceb318b6d4704c76dd8899fbb9cd360d6c2609f79cca86cdc466648dc2b8e257fb8e7dfeb390660cdc6094104c28bf515191b1835dd4e8846106c81c7ef67ac24e4b3a0df6dc2ba687314367c248a9d573475ee7e7a3feb44bb173acf91c11d5f2d9e20aab09f0ee2ce0002ca9034f003f8eaa5a4ca20abf6a432c37ce29ed5be0eaefa21977b812d9f565b145bb38e565f04d882eb0d6aa2aecec1893a6d28d8ca3390cdd41ac090d4f6835ce447c92cacab1425eba4f0d1fe3fde39a1bbcac991f0334e8ed8e35b0b825326b17701712e4cc41e5cb869b767889fdcc6ac65ca3758c0ac1cfe547d05567c873bc329b418c81f9e7e92d9d789baf065079ad83de1ca7d09f47fcbddbe661bb1478788fcb67f050d40475737ec2894b1846582a197351fc20ccdd37a597dbef3f9573951f9722b21926b3da757a1afd656944cc5e605f793714906d0e81d7782f3325c0de9ffe2931b9e19755b806a09efe2a589f6756de131c036661c1d9f02f691f77ca08a8f5edc3fd4da94011a1c4321cb77d9c7a576bca85494991ad6b9837469124e00731efdbb5042d6f168a2c5de42a56b1e1101fb60173d62026aebb49bb70386ae763f63a7ca60dbb945a4d68fc6d73b970766f66667fd84147a6710866e0af0f9d7a8635520e7e99b4028550881e85f029c0714d33df77d06280b47e3ec12b82bb099646c9e8f5e845d54ff5ddf943d00405bac6c97a052cbdadfbef133bfd16f166047ffb5ea492878a1f82dccf01dc2d5e16a3a1c2006ae0bf2b9f01dc4e96ebd5530365c12bfdcd57b1f38759fbbb85e9d11bebc0fb0fb8f50d5e4eee64789de7352aeb4a75747604247ef88aeb2138d5b04ea7ffc768bb39c0df725128c82e26de6c19a85a9bebe383805c7375829e855b09718daf6b0db4adfd5fe5c90a718bfb4bbc900a5d11aa22e35c662e84bfb1823215c2dfbfea82283a5a3d54c1c142d6356b23f444f3330c3965a0cb845ffcd37a5d0e3e673cda31f699d213ca1cd3ab16ce2db90c6c1f433e0f20876390a4dc43a997700bc406dd069a7f86aca1bde3134832229a1acdbc9954037e3b954d541ac5d77a4bb5e9f53a23d703b648de5bddf0528c188f59c197cce3d7756fb9e15221a73e26accc1d2721e1f10ad2d318601dfa4e8309e2a2e9b25c742219a3dc0790a1799806b66badd4c7ef72ab222ba4e36883617c06fbe562211ba365fadbb86444c9ba820bbf66a5f1158f71a3278af53d2e7b770b01f54eb1cf3119b5743708430ba727fa584d8c84dcaca7bfddaef101c1cd52efca7e5470d7af06bcaecab4e704afb860688ff50ea92d4ebcbdf306571be00c8fe6b85936862a37a291c856d142e2aa5a598693d9cf97c044c69ca7c962a080b0dac5961c5114fb253f0c00627e047ca327a92220af97ad6dc65af6ea3f5fc4e0fd7997d2150227f145d24505742124eb23ae15b04ad99edb1cb5659465f4720459a2e811450ce97e43c9c2202ad6999ecbe77f52241bca81d26083d1cd6719fcf1b828b124d56277be48344751f362a679b94876967d53061be6542bbf4da5f7ec3ad672e737f95a7bc879be33e4a0f6d8ce100f3a4c8df30fb72fa7532cc885a10f2c5ee87e95000219b23756dc09a4e057d405a3ee64ff4edd8b1e3cb855e7269714b5e149e18de5efe47bb4942b06fe9f37449e54b1b0dcc3606bcd6a6dc0ed1b71808be88264842d12cfe75c52f695da43ce1953f6bc64aa671ab4e4ef6880d78f75748fe100e597dc936a2a6b05770247a550719b4f1cb5d09928e4e7fbf19e8c290a73ef3e6f432bf15d954a007f6d72afc1c9720f9622142163bb2a4931e3025c39c34aa414a2cb8139ebd0a39d0c0dc71387ab46a6abafd3cd9bab30409b7bf88da84241f0effa3d43cb5071ce060aee1ef6c5cb12396e181c7fe0e8de62876e15bef6ec7e41a3d5052e2422292e59957e90a2ea55341f7127103b2ad192d8bbe651a083ac113e770a1f8e1d771d4a05fb81998fea4e61d04a193385a71f78a3a6eb4ba771af4599c990cb272934c941eb358af46d7e762a5cefc40c59733550a61601663fa5649da88b6a0f85c7a191a0ffce68153607c08a469098bc9c50408af2a7625ea47582cd1d41c816db1e183a0e1b33e00142688012fdf460f119c10e4aa72eaa31470d32d56eaa70ff5bda1ada2fbba3406db9188f66c3d1be535a9c43d0268162d663b400a7c1801583f68889106e104dd5429e7a1e2e58becdd0c6763fdbb39e838ad31e3f19593414b97303e429a16e6e329ccd22e89065f7ccfcc6c09cb4600b97a2dbfe7ab64dc3d0670509022a0cecf4babf8788e9160d8accf2e2f0f78c01258188f7c1012a7f265a517e30cfe4d1f53e460f03887db567122ee71d8526c91412797537327df7e02e3e31e469a30f22047b97258c48c7576bc25038e93d18068d119e8668430db00d2712d189589ea73973485327b94f5036bc8cd5cc804d01f042abeeee678e0231236e047a5ccbaff67ca894191c03567e7e6516ffe15434b238ee98ed6e6a6927c18d0a581dc3460f64564a4a7e08fcb0f0c9e84132b3e9f06ccc6fa57232906e91e463cd4270f9e9e8ad56cf81e341ebcbc2b8862063064ac309b10d695e6a9b64d31712b6c4a7444add06714f06ecfb0ca6e539f668dabb5482a0757f939245f8a6ff1a4c02e73cf3e1a4e20f7a506e32e8ed22bf96630bc3c4f62332b65f5802b4f0c22c92f5d811b9ac4422c2c5fce8caec81e4a23f641d4971973b516d024514db27bc24b9afcf512d489118ae1910057e4329cbd52493f33f47a92490d9b396a265d9e3443a7df3f08240afd30ad3983a18d6bb656104f3025b9d84aa495c62a793fe0c86cb4facd362bdd130a7bc4cbd3b24f1f75655c2da6618073c87a1b8245ebbe4697d5cf4a937ff3efc013f128862ba818a3ca40a908506d177ac652a1ee1f4563bd7c41aea60cc5b153fca1407fac22314a466a2ab85cbfe2b407d23def16a8a0ca6d6b4becfc5dba54cb7ef71c3d5d1c2cc31568cc8ac91c1b826177a3dd5f906765f0cc2dd7570aab3018ab2e3fa4d27c62f83728f1d75a302126ba3697d1f134dd5865f2931959b9b014567221a359e8e1e9f5f945e8d5fa5d4194f8c01a91747a541ed890fa65f63aa0bdaf6078840e441dec6922b53971502b9a3c406691304dc552a4e5dffc2ac53f8ec7ea203a6d9b55bc265dc7a7e2f0843060c076f84d5dd9cf6ec87424b0321b5a84dc4f17b6a26a8f062dae7b3965a0aec0cca80fcc8bee634ea9aa06678b4280c4f28c2bc4c9b0e9aba7e61159f144b6050ff90ff178b98d0c819dd5eb6cc5544cb3a817fcb38e40321699464d5b823b55d2473ef13bf8da3c26981518b1d66af02dd00d3a17e3d5bea1187446ab6802c3ccb1722ad1a4918a76b07b8cfa5a4cad4ad5b6d2e46535d48559431f61cbb8a1a62605a7645961337991d294337c2ec83a60188b531a2d7e9205e3b1f0237fa48deec21c6ac1d3e41e9195283206175a8018b6dee25303020bcc9c50b7dd7f7cfd3159ff3dfe7b5357b9cb666ea8b0f788a443219108cec9d6391a0eb27fd10314f5ac6a886801efaf6c907aa1a8a67a63accfa54ddcb12f3f540435d762b1b003957492423d982d0a1522150699dead2223920cecf94d636fd4db7e559e2ac07119568e7b617b313d2822957a3868692f59d6a1a0676dc71b169965fcdaa09ace9df6eb69669ef58655a925f603ec2c49f57d10dcdc31789549bea7a1e2198d4c013e9c8a2671c5327fbf4848de1eb716288e0cd60d91567cd57260ee4a3efc3ec0eb028ad3bf5fb1f6ed82a103012a7387ae517607ae1aa2ba964655b34323a9041063561d221a5b133bec75e71a9a544a5da089726db14cfc377a127ac3c4d3b985c9306b13db83c3962eb3b258c089d16f3c6edec9c7ac54dc9ba088005fef3f227b211a0821f510522dbaa38ff1f7370b2745ecdac5a39f60054548df71fa751a7a68b0dd6465c589192378d412d1222b5a4860894d68512f1244d9c707517ff40bc87acb64ace10e5393db9b814ed0e3b270900c8335a0c1e1fc1654c00be5f8471e09843171929b25cdbdbeb079bd8a4b2f3db27e8ebbec1beed62ea4876ebc91ec52ca8e773b6db21131910c1c226870fe911a1d35a3ee9390444434a42d77bef9b691cc7572b0acc140afdc20b1dfd01edbb9eea3106dad2047620d8daace8ec920882ab60fb1fcf9766f9b99b96a1b7344465ffe9efaa7e9946a232ff9e3e8066016bb99fc7dcc42c7bb1fdcc7f061a4c86536fce07b62fd0ab796555ebf6bddbb2f6e5630e3357c7eaf156e1b133ce017effb70c0cca6b98bc5d1577cc6527d73eb157b7199fd59da733e1be95eea129a31a5659a60e9e1e5a125c3df6ae290b9e3e97c33a3aae865f442965ca0db5bad708e9c4ff61e65d181652a2498ebe2d773cb4f4a4920f81686e18552f2f01ec606521f89382f0d5edab366af5d6d785616670616320242ad16eaaf360b28db0b708d4b3b1a574d65f1b14e9b67fe3297720e763a3d1d511fa2f1bf035040ee46c183975ed828450487d98c94aa929d5eaf0558088a26330f8b46a4fbefe207fbabdb8defd66df2ddc91928cadf1062652abcad84eb9355a8e41df39130f5ea963901975df6e845e08d24a8b20ef6d5b9a3070ba6e7193d29c242d4640cce058ae6bcedcece858e5f2e604274b1d5d484da9727a96e698cef30fa6bb1b458be643e3b94592cfb0f767b78cb686fad5233d97aaebd2a4708c980e3cbf4d0316f9f7e2daa23ed703aac192530ef1ae27469dd8f5109733aa2805acfe27f6387844159f08128c67667626b3c58b6b352814771847334978075d75a75d371db7c9d3047862dd59707d3bb0d3f13b2d69c1631b2bc50f555afe5030895aaf50e6f141bdd08361dfa05a0888be88e4a48a216601bddb3d633eff49a800d6acf69703f114f5e6b5192684148d7365cbcfeffbde0c590ba6ea1c2ded590a3d0ae629051f0d865ba612e78cb716a5fec391cfe8109969efb9b83aab5664372460d6a167dcfa0856650a4223d615f287ef653184955465738d0d32f462602adc4ed0b9dec85e361086b6855f58f1ed1824432b440970580a75fde8a909b29179c4088f7ae3dd517c913a8a2bf75c080dc468e79dff1dbe2c43e3781ea50ea8281858f94ef83c30fd5f8aacc132d48a0728371006466139510ead79b97cb4e72a3c43717da0dd74d9f9004d3612b2e5ec29e0af949ad06e0d3a7f63b2a4b583ba5cbd6358f3c4c10ff264d8223cc62a7232d98877fad9f8b220cbdd498629e2d54ac7a901777288bf2c990958a7fc0620c46458b742c6a54982ad195315cb83867ee37fc3f857ef1b1bceb93b7da146c4d446e20322a5bb4f0007148775544a0a30ac278a91a9159779ae49169d68a00baed911636e23ac1bd2ca66641945589bd71f664c700680b28e20ae0add2417a9549ff377f68efa193860caf96940ac78d79b1fa0821dcb8ab27da7b1bb480fdd037dadb35b010652925544bcf75c4c2694988afa7ffcf05a1848351483dc524d277f85bb3d240500e025923fd92e1e09810069899cbfe219a029b0901c5c443520532ade5795ea2bb78dc3060e7b42d2697eaeb679c6be9de52022947239eefb6afee81b9e426dd156e78e4585ffa798706aed36fad455298a21febab8dbed59cc27717a5fc586a2c0a400217206ec33a18f1e6b262aeff1f390d2ed2597d0c03d9ff9ceb275133fe79b459842a6f8bf1cd803f4ce789dbc895a0157a958ead98e48fa02d3d7aec87f688d7c473e7c7e012c0823c1e73eef5e67e3f4828d879b8bb3c58185de9630ba2a643612e1e15c6b2e2f594a79d40bb81c0fc7bb489b937403cfd0962fd85a326b11ed12b796022d85cfeca66438e07de25e20df4b32491b337169ad23d28b25bd0e44f2fe0af99a75ee3a9168e6a1bc60ba3d9d5b234442a879bdfd718ea3adad84c5db32956416261ffc711c077c0ec0c0841622d78963a7a98dffe8fa433f52ac0da25d5da7f54e28d48f0b6ff6e8252fe524e48ecad831f51e917f25ba06e3168babdd7236afbcb6976ccae227d41bf93ffa32b5c4b7670f18ca05c1415381ed746d8733c0cfdcfb66cf41cebc17f0fe9578e42b013e53f2a20e041f8938b0fe8a2fb557e0738c87e78ce817c16a36533c045d23fc8f7da70fffd2e70fee1e4fc3bdeb3ebc4ca541c896ee9e5bd298b58ecc575c14d80104ad83e23f7f822ac290a80a5cadd44981ce84e9dffd2fc002689b1093fb2a08663a3cd3c7fe8fed5f1dc844ca668a33296e4a390c3063700e3cb9d4acd8006c7c80e258c473d440bb6e3064f12a12a6d37e85817988d3a20f75731dcb888c0faabe52f9c45360f329e89b79cdd8fef31bb257e5ae2509fe75d3d00e8514da646c823869d6b8b5fc129846231275783e4b9c3b10c7a31d8f863988ee18a8c14eb1302db7b6bfdb2c96dd0df523e0067f7125c009e121ccace4653f65808d623fba920e7bcb3ea26afd4ab833f6ba56d79871ec3fe4cc4a76447e7a3e9d2f79706db5e55e76af8aaa88e16552ae2d5c3c31b3a025706c42b9d159aa260a47dc5eff9c014ea71d41fa1c7cd123fdd3300b1c9226a4564e6fc50957d4a4601a6c82a6700c8c13000616e50c9bd5b3ce60c49095a280bd0a22c8e760dfac6ec923081ac8a3dd14febba90091d8072ca3eb63e38819f2a871e9504a69e000430995e25e0a31824c6e9498c65d69a174c9b2ce7e76b15b73ec0729ae527415fdf48efb21b2283da80750cb76d164c17512700bb100a34e422b9984a3dbff4e8db7eddaf60fdf7c942e38dbb12fd10d8d5ec418270509d93a2bfa0f6bfd6790e8acb4124ad05837c18d0604fcae7d746d845cabed91eb439dbe25c8cd606b9dde81ac34da45c99c0923b79088c4ad4be9fd5e0c5d3c87cb26482b8a78394aa5ac1f7f50e6e10071f9514387a2f2c5cf56ea56f0e1497f02192aee71e3ab8304d3a200c4b9d56bfb9ae22e3803ea42966190b4fcabb59b70977d4cbb3627b2e8d54dee96546a7fbf05cb55fbd099a89932f05518ec9150b5c7399e0775dde9a7d2420077fe1d43d9e50021a195ba9e66031a066bfe8935057160fd20dbbefbab4e9654488402da67c603651946dcd4f536f53b9805e4170a1a47884f863b10816334fbdb5d7e762e62b1d72bc9660f02d02ceaa5110103610349550e9687445e9b1b98126dcc8a32429f796617fa1e1c7aede1fcb6af09f48e2af0ebc917d2ad018eba8e66afda236b31ca5de69aa84066827abd9a3264bad0b58067029c90a2a8d8a5a85a6d2616f097bc0e41b120208f32807e529575a48bf3e0054a3a94231503dbedce67a1a9cfb7fff1fa2d858b2cac2804c0b4edbabfc9b0a58978e9f6930fe0d54890e1006a748927db72c2e64d36374925c4766efa9eae39541243e0142af94d518067fec00b9f34e915be4933e31bff57dddc34265773a3e38c90a43b35aa6867446d530e0dfafe0cd02948b618a81f20b3583ab185a30f56f577c2e8d9c5bb7c5ffdee48851413e6aca587174216044fd6fa0ae81e7811f0c9f912b92be9656158e24bf8911cc54b8b8b618d8808d4266674860211855662fc917967416a906bc9c307825f3fd21c6c182611844f91bd28b01ea455bab788d9df682d310f931c89ce472bd835c768a549418f52b3839c85d816e4e9c410b51fdc3831fee80031ce0607d972fdb90a219e0e8b5e0db77a3bae93f072bb507fe11217eef4a056c3cdb1030a7078de237f4fe6f5ddfe552305bbb9ccc8b560a8af5f46a620d125cd9e013348136614bb3046ca61e3067dda4816201398d849ec6a85e5f4567bd347c62016191ab1379f01478d80d56c0b13c1b5f8674a81b5e6d9ebaec36bb0a55ba635e27180324573e6c233291895fb0676e0b1564fe0734a54fb66556f7f4219e3b980738da0fb60e635365177a2f0f111b21022c4b5d203affe0cd866bc80bd22a149dc5e171b88ee9202ff3bc582fdf299387507c01970bb7104dc506ad5b3a3434a02851f8427a38b00c74b5404762003c5b92ac88bcc45b9dd290a440d319a5f0f89d69017d924dde140c19a78e52f0757853ba2ba19b2bbe39ae18650deaee60a6b7b5c0fb45837a18d504ffa791e5c0a587336c17e685ff0e2dfe5460abdaa36fccec2181c1887c251ae374a5ff444328942a4dc0b565772fb1dfcc4fe32c11d4593e7e6cffc6b5ae27cc26da2c4fc686745436de886c261c374c62bef6af5b3e8d00b3db95349c95dfcd1f331001a049d5d8b1b1ed9c63baa5a8822f710f01fe173429d0d03802213058aad21301bc860877244f41066bdbaa4ad2e39a4b902f7e3a0a523fbb780b880ff07a0db03e9052abc496e5f1c8191cb00258be6e5c245fce75b4be094da92da707ae71ddccd20a4c71e2f599a8084a75438bc45061e2370cb66946ee3aca269f32b2fd1ce998f447e0f19436b722593246080edd0c2810a81fb5b3d7f1e7b93eb1c3055e5f33d611e95e9e6f8f6e2e4a6959a19d28acc6e562d02aa447749722d7d75ef561e0ebc096679b718b52d4ec85b8379f0ec2157514054d2d453a23e819dcdef478fb981d49b2788116eed546f8653ec53abc08bb3b3a25b8f74d3805c60e6529600015c755abef5e6eee41bafa4a78ea02ea5972550b32af3336001310b9938b1558995e18a99f2cbfccccf2ab29e14c02b9c56da1aa7fce175370d1bb5e6221ae2b242faee38e2e62c4244ef869c9fb3c7b55eda0880c2c61323c94ecb3eaad463ab1d1340d23b9a0405e407ef41218c00220361d56f304792d06dd79e6915535b2888e417845e9bc743585be624df1bb92de463206cf98ee2ef8b26384911bdb7d92ce40cd767162072152d23f1f7fd9a614dfd4899a85ef7408addc6fef4f080620d5f18b0e5f638a979ca2f0e69c777f426ab6a17287f0e6fac2446c43e94089207b98b2365b3b80202f1007ad2b8f8f3a7f4edc2ae0c87bb776d9e2caba6f884fe79dc70e0ac3e721818fdb1aceae3daa26d79f7a5eae2af675a05e6dcb41e7ce5b51fa6295361421cfaba4d5df1463a9bb6a5945bc30a1c2c760b83f9bffb3b97934bc4b313bfea14121a9462d4ed2e13fb2d740309f6c56935dde33eb7312d42ae894b7b10222115bef7b7e92a3ab2396e60e62bada8ac09f5aa4ec404185c1b016df237bb95a2a9af1b11ef49292322beac60e579bf9aad239c2dd121991101b5d2538873fc8b5e307394e4acccca6008f32c84539ff4944a34adc96bd8aadc631228de25c04ddfd3149ece819803b4d791ac3376e0bdfad57ecf8fc7666f1c3c7c422b3db4696cacbe779268276ce2e086e250ed4cdca4a8ad2d1de37a47c5cea70a7d2786db20ed2bd056738f878c791811208363b045f30b2f5fb7eb7d005d3abdfab3afe177865b4a85feb772da3568ba57e798aeda2a125c663bf52526c398c597ef8d9aae6bcd8ba8addf070e7831483879d54339ae2b24a9a89b21ff1ffd01233be7726c219ccfd76318e949990ec41a695ed9b569ac6ca6d4765a936e15846d6304a1abd234ed2301a06cc633fed59e7396e940e077b95844c334bb2b4d1bb6f45c51d5c8cebc774ca6cfbfb3d7ed56aef70de671ccd77ab4074118fda5f31c4b1fb08e23f98306ddb5ab27fc37ade21ead73a39c0c4701c2e882d0a9c6e4de177029167fe5651e2887a42db80685f9152c616aee6b5ad8fad25111fc02e94f5f882773a9d0a3a80b3521e2581f67b298a8390f23b9e8ee10cc68e378af09362d75084eb9fcf194bb7add6d6ffa2d1f950830b122c76575b8f4434233827791b218d4fad0cf90d49273c3dc4fe9e46cbdce2b9d3cdafac6a2b078f2cb99aaf1925586224bae8e980cf3a622462671c7e0eca3a506ef68efe90d1a75466fc7714b346b51d2f30cc282489b0bf4504bcc26d494b202f6d72707c9332b81afa7773c8e5b1f8b81b97ac08d800fb07765095828ecc1cca8b1b3575ebd5a48f8c08c8a3df87ce0f427626f12b291aeff20d5abfdfabf00aacf39a257cef35706194c59c9072c3a2ac15aef27e9534dd0decee267600b5682cd2a5c0949e7c1ae4f74f0a6a13392f45f27aaac0a040e7c893bc59ea6036e8f3ccc845a77aa34f8330033dd70bf15386db2763032dd4a9888e4871cc7e5c0fbb652d304f9a2d857f734bd85bc005f669e30203c9cbd5957d0c62e0cfbf843f248d7abd8953f27bc7880f342c8ad761ab5d6168f686e2fdd9c2620f4cd07b0745f840d8f131ee027b73e3d8b5e9fa79e4e3e285ef19478a2ea32a2f6850443dfabd0ce77d6f7a986d5b3da54bb5fe13453704e8a38bb43489ed833190365c26f2375134b57aad444ff5a957fae6e9ce295214dca5cc9a6f5dfc61f98aa335b92ccfa990d6120ace76927163666c5b5040af6c19cbc7e0304b9c79a21d30df7e4143e36390f555e4ba11c27e9c5cd26d99e275284bb0d7c6c718e80e45e1406ed1783b1d90edb4309c1657f22a8df67fcdd3d3a74ee2f5f2abee1d25e63921319ffa1f39d58a7f0850effc751f1e923f238b06bdabef3d700b272c33fc953873ce45fd8fa60d2112d3960923057e09555936fd8aaf6fccb5324f94842dd8324d949377ae2c72fbab454b9f9455a6909821c099adc5491f690a573fc5f809d2c8aa49b6e467978b036ef7e2d88b3469d2596c11deddf16095a952818aca978b9c215f6bd52144e4827e90da98cd61f7c3745a8cbc3237230c4589250ba32c7b07ecf88ecf5a082df990ec4d9122ea8bc146f6902f5ed2cdfd4cbcae8ccfcffca083f77d4e1e4963bb3ed7caf2cf67d1acb7757c6eb94fd2eb7db7cfb4e60446d0e03db014abaf90694dfa56dbe561b6477f41b298c55c126deeb3a65409e3ad576b132f8ec823d268d942186aba7736dac5c2991f076b2e92af265f821f670bfbb2232e2471651581f23e419719402d86e49540c3733f0b479ee944e4a95a37656e60353672720b201cb973b22dd868d169af23d18657d0ea580f2e316dd4bca7d122f15ae28832ef09fd4b36b8462bb08368dbcffd9e702c561890dd989a980cc3c2b25e4eecf4ab80bc9031cbd00e2666fda5d61fd30ebfef9c2cb0657c67830714fe5ba7ec0eedcbf4aba0ee5b836557ec18ce1d4c6150941369d257c07401cb1e015985de76ac5f5391b3607f257dbe5d8d83847e735d00670dbc5986a0c4cf224c7dff16c4185453ce00b432e6e94d418499a3c6baf5156e2af7ece1fab1ed72fe7e421584ee657a9036274209d72f054bb4e117bb23986e136e9fc6adcc4444d59fc671301d04cb4d301e82fd29d85c82c9192cbab5c6c23ffb0e3e04b549836a1b78d50b70fccf656decf6f54159157149f537a135d64badb1d0d04b716122fad6d8cc5ca62c2922958146c55d4d7de85d7bb832a1c40da36d488481b233a4cc7a9f6524ae1dcaab2aca144d2aa9489bce2e4599c43ad558da4dd530efb0ebaab13c041d04ac0998b17c52cb4073d131d9b91aab19d0d249a6aaf655d259a76d7334b1c7007fb839c2bc64d0d1f96342ac283ad55889a2953ae8dd23c7004bb88a0a0632ad49b383b5061ef46a4daf8c95876b61bfa2f1f5af635e2e32cf8943a41a8b3f7d409e2b76f13bdb94053215900361d66eb455daa8c632b5aaae67d3c0f313118b97d89d48a51dbdf39dd70b8f2e8e819af3421fd3f65be2ce49554d55221112d1d931eb974bf6a2e30872acc3f49a2f8df0a41635233a8bd9c62e07260bd834d19a7fd0e69196cb3b8dd98c499a26bb37ed7d9962403a7ad9dee8be079badf441844d6f56d6731c534a2abd9e061be9a0927ecdad0b7449827c47814fd961de3859665e5e592ed305d44e6d8f63949619a9b76ba3e3e9a5221dab4ea1e65aa98d671a7e09cacfb64c901a40e9512daeabd0c8fee1fce665cb95df8ec8cc5e77f287c272df2c1cd6f25251be5e0616efe58dc5eb1a81775b1bc813007a0c8be20c917fc743fb98e1f7a4e438fc078cce50e76f8591f98e59e183535355d94fb88ec1c152e8885bd0d9d8fbc00fd5ab46c17c0d1ba08c064b7042a5b85c747ab561f2949b1b6c7d7b7263ad669486bf7ce46bdd1d844cf6cfe018ff5278460b474d5b2cb05134b746fc2c1845bb1fcc6cea310d614651e9938ba09d1cb40cc0e595471b6c58a10f92e33ead0f8f9d283a429513898f588153048c5c53ce25a06d41716b8c4d85be1ce30aa4539d269e1ff03ac5fb04647d37fe6725bcc94e778440a5236e906507f181ed97c3e79cd2b5683f9e491769bc5e53b845170c4d5faf3d3349d5f33c1eb06a33f9099ff85fe7b65b1ac4f4b919c5c407ba42f7660b76bae4ea775cedcecb56841cd2109fe580449502d07b22401e275a42d4154ff403f3d232c8dba6b97b4f737476575044eefb9181772d3d097cb19206ead53b8a603c28d34ee69c9081831ee31d07ba08467cc970b18736543336aefc9e7958ecb4dcf2dcf7bbeac9808841ad25bb9b7aa938e45c60ffefa1cf16c7624a00d2ebe466240fd8bdcb5dd1aadc38b32a6c9eec84a13cc698877688221deacd5b7107be3da46b3d5f852a59b6083a4e1084d36ab5d418948b6a7ae3c528dd37d71c96fb0c3ac326e10ec511a3440154c842c97dcd128adcc0d242ee37f3e364b739041fd792c0eeb130ba2796e5de91c43da6f8f6047bdbfba0c5339c52e210fd59dfcf9c634d3057d08bcc4b53b776d102eef416967b734946ec40c4b3c17d47e1570db754b2265836705f9d6886b1822d2b4d4f5051d996269875e1ff10b41c18ed79129d341394a7f05c1f8c38b024dcfc25828054c050416eba21f439d8c812c96cb18c703320b1848788e16632e060471479e910a08681de55a37f0dc05ebbf6fd748af4c543a203bee7add07bf72f478c03f752bf070da493cf895be1a3c88c98b1755ab9b5e0ea354213e1a8620ae58250797382bfbf443219004858e797785d0c68b9e7aa572b8ebdfe9263f1f3477ff1bce2c10742cc1e34bafd6b99586993cf2db4190beb6caea173d959bc108b8f8f4217bf1472cfa97030be69155588f903a9c0dc9427df474ee0776bf3ab1e178757ff7d2995110c1bfc8e1e39607c5b3e92edf066b8c59470fde914a368ef391d6619c812c16928abb6d9024d9ff1017e75513ee5355097ed24387115c9cb6b9b5ba7bf07df315d88cf92ce112d61d682c3e375a8813ced69ef66fc84750bc236121cc496a2ea5a14f9fc1874957fbd3ae5756ae8af039439a0f76495575504346625d0153c1fc97ba054db8aef47da8f005eadc804ed8ccbebce98c2ab5301f494a520a257c1bc553a1ed706ad40a125630b817a6c13914731d96bbec3643ffa0e26e9f357cab62bb9101f0f68d6a9e6c98bb636b95c4f05e4891889c1be012bb8c2768d657c65cb7f1ca9aa0d2462545baa52feb8b3769035ff942d38a58a7999a452503dd2d6a7d4e5cbaaa8fb61f53dc4d5685df37df370c3ded986ab89999939ad0a5dc59686f0c31eed99722f987e96edf1b3ad469b35330ce119943433597395b688326af61b1855cc57fe10c13c60a5b9c19173dcfa813c68680d9409b058b94e6068c720d4a8c78255a57b6b0701f4526c562d9c73e943aa9e89b574b6546a76abe3a6c2f8b8626414f2d554d37163f34b4f2d259e3355179ff1f64b0a4d3bc724085209b248183c21f06aa50cdef104a9dff4bc9143fb500cd7571298c65d1db2f758838d44a70f8a3c60c2ee3a155668ce62e0789b071cfa272139ee3e4eb046eab628464b9f2e8c3f8658ba3b06baeaad3af68c9417a871e88d4f1534144e8cc674755acd06ee88abc8fba8d9210f03ec8589d14adb4803cb819e5d04173ff1c81039e724697b1814b9ebf79889b132d45ea6232656ca30cc7eaf38f1a1cabb6b8964be30afedf1db0cd56d13f515e5bdd6fe82b971439b70d4481a39d71f6a8f7f2de635059f0b45ea5287a804648e9b6b1394c92b2ce1c3bbda6b79ad24ef38eecaeb98312ef573e8cd1dcfa63ef20f33ad97eafaf457f6618bd3df193d9ec7690728b5036b5cd4c497ea01837a5e8730b7f4b4bd21a6b6b9c5b085f0e72854171c7b4a0e6d011d5f4e59c0a9e17d5d1fe39038cc35eaffbac5442b2730a839296c66097ef21d372edb5682906100eb9b846d2851d773ca32520175a444abde2ab5707576ab05f7dbdf745c53559f2d566ebaea43e0fa4a90e45fc90cfd2dc06399eec287a3e7645211ac4c221000ebc0647300fcd411b24b182caa20d968142c2a00b2051c4e75005938008ed1620de8b0d50c412072664605746f633827dfa51745930793c0dd92310b3ae877cc6f573c4ce0b6ca8582cdc1776ce3b7dc38d26746bca82912d787b6d28c60e230b2c3aba63081777129f07002470be13aa72f9298a035323508d29f1e40ad84e659b9ee4fae338e17b261dd501a13bab3624fa5fa2f1b73dc43a6ad19d6793078bd2460745939cba76b6ce6266a1162c224b6cadabd41eb5be7aa511e9b285544ae5107141e33290dd08a565eafe455170aba68a45464eba53fcaabfa13ff27758a03b47baf441a387ca9a9e3073e389951ba7aaa30c84311e49fce080c85285117f9f602db74d9d43bf15e58b013043620fe7f50faf7da0d06fd21e8c441e8546d2685beecc22c612a0b3933513c46134227931afc21418d9749efd71818912782319c3386be54fdc08811b3c07887dcd366611dd299862f4764fb9f752d6e4b67b2a5371b6e45352a163364c542265409468ddeeb5c21a6085cb42212c9f79069b650e64a726d6769752385a08886c9c8fa272013f24a5e3a06964e94270cff0c87dc102645ca9d8355c4d212651cdc19d3bc5462c1eb5b05215f7555af0ed840c3683e79eda005baf0014a3a632c321406161ff62a09afc6c63f2351d50eb78a4353d656e8bf2aca4d3feda4b63d08fa0b919c5f9b56a79d2cc91c3407cf2bd65c3a175d31826e35c3d4cb541a5624880a0cd10df46228732f19e5fb3d9cb745a85828f979e90a3791885a91f379bee598b2bcf016cc9c3d45e0b8fe1097a1c25d840a428fea2ef69b2eda457f6592109f101e41156032e8d5ac4b08e1eeb6e5983ae5827c2b815ec3f1a3ea165ec9e4d9cddbb0b34511bb25985700592003ca1e0e7808d4c4a3221f953aa513deb67920d3e752387702d2ef58fb863d63a0ce8da9097578e598eff6a8055afe0a402baca703defc06c505019ee87f8a11355502669eab5c0babb00729827129840a6549a2c28d5017aef0473e1f70a0d7cd817c8303a6ddce54aa9258254c784aa9ac2050b10035e31267bcb329a23a10e282560aecb16564ac0cb59ff81c3530bc6c27effbf458b38dfff14fc7ca9e027e43251d0aab6a11360e53ad0a1576fb0c3c925bba21da19f8ac8548ee135575b2b62f1480d896b95fdc82819205980913648858de4a17ce29d1c96550b5df2288fe0db357e5ed46e7e30f819ba2413123fb9a26f68cb1bbb0e6624d622cd743825a07f7480ef0057a6d74467bbc84d28856157a41c6bbc8e9cce8d6f35e227eaeb36d4f7af2e04cf7763a442382f065f12ace475422cd850c3f9160ca7e40c2c52a3507b707d0259407d71f6a54a3483ec6de60fa231619c4a682511314348f5e5a0cb7ee5c654b9d08364041d394e690a304d156e2ec3258e01ff56283cf386e2c1f294e5bbab87131ced1f83fd8bad2bc8b3150cc58966e674ec1b62662d0c00e6dcad1006ca0bf9d950e4154bfd1535b2da023f985aab4422d60da5fcbef7151b95ea29f3375a10e01522e001ebfc0a5a894a81e7ccaf60fa953e01cd8dfe276bc971d812b34823b0292d4a853012e149cb65dab07ea2315cccea6f4d183c7deb50a02abe6e53e485e31faa4a710ea3cab33bd2dd2815608b28e66daee05a88e0142efe2afaf3d9b43ca0b3086ba65be42e02881ee05063b42a5d65fa0134ef6d2b8fb53e5282a85deedf58907b531cb4ab1e63b690ff6a170cb7ee222ede550b5cbfdd7bd70e32f5fde74f6423eb9a6876e8c78d39bd10b51a0c205d0a50cb19f3795e30489864979f76c6e82fb3898ee8871029064624dbf99116e58902427ae6763c07b4342280b3ac37cdc22ab8f88aa32c055b8f0350b549acf99247360c9a41c349fb4478834e94276676badda95ab3f1fff0699b83c4706fa3e8071b6baeed2e003ff810216e67eafa8565d4151dca9558baac8d01f55fd77c3fe80b10a8fde813e20f9ec826dd4780cca49d5e207ed1cc571cc4129164106e0ea1bf8f44d9d86e28fd5682cc5d9e142e4d3db8802fecc1deb6f07d1558fcbf8637b9e867c68c57fcb579ae20e29dde56e0ecf84d2e9381aab49c06d972a79f418ddeb6ca64915baf061f65453589993a29a19844c82a000d5a209c49c22297e64d87fa39abc3d4608dccb3f1239e17f163cecb06a668c6ac5d5237c0edd32a248aa42b63394458e2e26554ba6c60cb4dff278c0aa472010324bf2a32ff38a22fba2dbbb75c47d9e9e61603cf255ad3a1f0d28f88bae8195106070e7e61cff17659c4ce2d10062faf174ec168ce4f5b198d29902cc579abc4ae6548e438cdf2a39125a916c6cdf6b1043952ad13749217d0d0254f4cb36dcf3479ede739cff10b66f9a3a266f44f81969254635c10600184e55b31ed570cb40fd9975cd08c92c5d88dc5aa8d90890bcb56bb6eaa9aec6ea9f6ebaaa7e78f4d4ad85663f894a6a01116cc72011f9edadd90da6e4900ac20d4d206b3f4b93c04f2d9f0b642ea1764c0493ed3bbd0d490051ed8ff072e747fb16aea79692c9a9ee0fe2f17b82776358a9fa1b065b98cd5f80192a5b024f1b7b1cae15c7f12a9178c1b51d566af1e1476c1ad81fe67b749d65dfb7b89aa303c54322fcab4f2771504ec40f3717d46ac57c3dd1d140d2726226b8b297895332d331257522f84c1cb3b3288450920665fb56b7f4dac3983edfe22d66ad380ad4fbf32c204aa4436287b3f9df25b905c306fb37601db870a6f2dfa0b93867caeebc896234e6d2116b22d6b93408c0711452db143cb72c68a27aea5f67eaa28b124c6b90dd779465d7db3d770e11c180dfe5bf60c800fbee10bce939d2cf64d34f08ec8789eca968c08b1a5ae1fcf881069ccd8b1a957d51a83a5f37e69f4b9340c40054a809423181cc0a5b2151834f3e42213eed1203daa4807e30193e41979119bca5606ab4f60d8708396e8cea6ea03e116ecbe5fe384971ddf9dc3758877a8f2e864f06b8309c21d6f1305feae9b35c0c3ed83838d5188ff3aba514c7538c54aa7c0c379ecac852ae1f214efd8a5e08a0d8590ed9e4ee424a95f16f7bb015f0886bf6a9bd11f496b982d7f1e0322e909938455dc3e69197a061204bca6ab018687cff88994c59a35022688ae89b2ea5d774660ead99d6d79fe6d070074b1a8026984a073cd62498ad5b08f3009e34bdf3d61dd2d2f0391f035e330f1a6eed36523452345fad049f385efe019647c340bfafa810e14b7a2233829633aed1675455d38998a7be4b60f7f03e894a706bcd4d071eb9a74f39305cab9e2aad1791ddc8f7e21e4a79c8a9472fae6c7a9577e4dc1e16dac7951b45b382208881788cb451e5a0dc57b959ac018641650edcdc2e74f43053436c0f4701b6a6be21f5317d8aa7d78dbe6ddfb0b6fdb147bf2936431ea501f26392eaf310c5248c708461c5e5a8acdfaf348831d8853d6b55b3ac412aa33673a4f3af77d191ccb30d3cc190ccfaff1d6e3f32c1f1bb253b3218ca23135de963da0f08f6850a88b08ddf58bbc66a49471509c2a6dd26559db64378a33b34693ff5ee040665a9c0aac1d8b03444e5ee147043b9fa66e7d628085e0e9036097d5d1d129c2e12a5913268cc0de92a036c3930cb3276eb4bdb13e50a9aeaa2ad0fb469b5ed4d5739cf7494cc3498b01d934a011a37e71dec0c233f502cd2d7bd3ebdb2f420576a553bbe9d5985195ff0941a518d83b08162615893690405752d985bcfd88978ca728a8310cb48cb980627694a36b6e2c49d9a4e2d682e59248c61f836ce33661ded98626ea394182b072d45614a7b009535d40fb3d5a172369615833637bab0e243d0599b7ab5611c958bc785aec88515b8cfcb25d650018671822217caf1bf0706957a273b5b4d82bd14193ceb075e4982db007b8cf1ca87e570bb75b5907777e4a6fd27be03a0fe2673216628a72f9ee4aaeae7592709980dfcf935b0d0070003d7779325e9a72326b7bb71259566efe1aaa9a180b6360fd46107ccc9c281f70a6620e340e31a20383e36d4a6af5bfda49106998e9b3250c6ddc254fa79d0c71c9be4778b60f95b3f2e770d54b8e850bee82d2043c644cc8b4f71860e29c96c0150ebe5ab8232a68e05a3336669379578ecbfb8c3d72a5ef74f39f1ac4b432b0a47bf8a5c0374026325f69314b72a55726c06a3d8c252ed48327a140bdd443c50cec8a957e6606aa51b0740af704a2223b0d231fd05fd0b76df0292770e3a46f6c057e9316d587718863db855b5ba891f7dc7ed25b7bb5cca8bb5cbbafc64f3489d248096a89375a082e54be1dc9301ca23a7b61d0e21473e759c9e049f803b19ff4423a1e74888551a9d7f8654fbcbf24660a052da7d075e3e4d61741ceb52ec1752b0f4ae3536f84cfc36768a94bd468b431968d0f27655fb5081d5a93a3391f02e1c3f85b44c90bbd303e8f73d3d570ea76b3f1f1baaedb89240c7b640f79fbd726787826a1868192b8b9d90975d79486d893b09824c3748cf2fdb509b9540d1ae360052342af72696e63598aa79b86ef1937f510ac0b045441a7c5dca842f2ad65f4095278345dd6f28716186c5a1bfc1bc60e2caf3bbcf7d024655d56d433140c060ba5da9b59ff6006015f98c1b0bf1165a730718e6c155c680a8fe58c308dae68715d408b8fe5976c4c291fde9224ad695677ed7037757de51a39e99575eacc7842e3cf9cc4119a27024d418c3059ff5d111f61b15a524944ca04b52880cf6dce8a720f98576ebbfcd25631237d2ca613776dd14bae06508cb9c8d2e4f6c94033e365a0bdc7da9e79f2795532011c5814bd63519eb251262d12ebee7f9703606ae0149d32be1771ddeb103595b8c7f7dc2c9f699428de4cc6d157b2b2bbcc6a301dda5dc343bf4a817aa870456d05d5f4b22d2a1f0f6ffc45189203c2a990ebf259d9aee1b2fc53637a248d8e29778510d2ee4a223beacb8b92488589cd707e5b24a97ae3206b83cb22036305ca77b0edf5cc6aab42369fad98f3f85c700984b0998ab9dbf790a5915a1d50bdc67e451893ced9c30606326ae73a5786f9a714bea8aaa40dca06e045b5b4e1c45232c3a647fd0590fd6e4c7ba439d9d8deadcc3b002476c26fb3813e206660a80b03c9a61117254fbed207330df863e5e44e593b0548662d4977fc3cd93f9f3dd0eaf62f8d942beffadd1f30c9c5aab6b64a0fc6a716fca44a1e34195e174813949b8b21ee28f84e81413058c02d10428330d734b06479aa0ea241573e7b893f640d18a6d6319de796a34f0729efb5518e5fcf563987b3321a842537c37b3e06ccd1bf9ef3cbf19b9ff23654f5921f651a4bc5a962417cacf9866a1c53c57443aa39b47e928cc7f3a233de24b6c7db50091c12fae7ec71ecdff2ca8ee3a36be7ef3a473986dec122122e3822f5246cc4d4eb04a0255bb59292ee92cab31bd7fd41d9a3652c6bb81fcbf1f57de57788981a1db522bd625aa5093ab822da622594a3ca2fa24cd1e32813a5da78ec1eb3f9cc6476fd69e1e6e054babf6ec5b02d177fdc8ee56900beb88b654667c6e63173001b0da0458af002234f6f0fb4581a310cb7c150e9b43e9f756554618cbb59cdbaf7e3564cca922071572c753bac1ec58cc4b5803f98066b223f1032822bca55ce10aad867e586aceacb92e0cca23988b29440e160a62eec8efc1beffb4ed449ef849c38238ef4a2fbc0645c57cb644e723c25fb0fa91c54902127df98c1b3eb586658f6a6ae5ef85a6b62686d16f76247950eae2e6dc5d13783d3160318cdbd268b050f178e84b6e2f74a5b91f805312cd963df497115ea30e6ae11fd6e172aead40fec92373d1aef3071bcf258831181aab7f78d33a8e4e6e310440db4a54c039390714eff580609ea143262119269daa5cd5253a81a35096b2bf39147bf37a574f58b7dee42550efcca0d18cc101b3535812a01c0d67fec93f8822fba17c07dd64ef5548841b2574694d378e895f8aaacfd3e04cbe87119814698d134603ecf0e6c4e2627d48d6a455966a05a5a2a0a95ad7b319cff1491a485daa94fd3458197962e7c1e27e4f5d8f116133996bc2c64dabc26215d885259e49259037d3be13287ec1b2d8f3ba0fec1bb3a0addc5761cb5f2d47cb04ebada9706d12cd771fee954171afa66c9ad34545264940354f21e9cc82dce286fc0b622c82680efb7adafef5b5a3eefb76edc23fd63721693366f235b84818e604f3223983e67c6b154847f5087ed59849009bbf3c168f0e89db4b4f491e58ec7dad596b4254bba305bf4d3dbb2e2986e60eae5c97394db244f956a26aff921bcd1da47c4a414b64851252311c1a91979a411583555eb8b4224035e11f60305f48f6d128fb508b0e7a90df901a3a913adf63f5df1af5cece8c9e60ef8bdc8ce481339b38455ed96a08fa4c0df2de231ed9152767d1eda1f29380a9f4168be5e01a02fed263a07daf00d9343be6409ca57a7d30ba77d832cc923ece69d18f7b455764c2055dacc4043820b86485e89d2b1173b964e50009898a9cb2cf93bbe4f4c338b34bc2ee754620cc9fc7ccecee87ad42e913bfb219a2eff6ff77067e15e6a99aadb0f139e2781eee8830b4bf4abdb65312c778cfba45465f3c236df6d23df9f547f4a24e24e19c5d204431375e23896c2b9e1c91fa415f1484275970871900cad43bfe549819a5d14b4c00175edccafc0f522bf6427639e9062eccd1b1690a0b63ffffbd3477aee5611d7f75e9307c42052f1649d64937395b4c7a52d205214102352dac800f20992467f5a0f1d10a13b0e797605611956d515a98d01bd3aed5d28510a8a2169d28a8abd2519ec5403929b20ecbfcd8629740b9777b483fb57a570026b423aa0b1ba896589758dc1a68f13b85498d99c8ac8fcb5a0c1393537710e71bd4589e81d043159b073c60ba4ce37cb78f22cbc6fb86b465e2a4c2003c71586860ed8a09cb6edede1097aca67356a299b7a8d67dfbd2c9fe3c63b9b66dba8f2b906e658a2adce88b8c9802271c3b955b33e60514cb3dff123ee205a101c0e6eacbab97bc023982da33ae8818c13a3258d5d49dfac3447be5e498f4137cb87fcc6b6a2be26e214dc696c06a20ebfe68da88baf2c90d5f41f207d11c9627d2ffb1a4a6c7ecea390e628f1d96fa220badc7a54e7e4c8b2f5e9d35ee378727dacc1cd6230d86c97df20043f129cf244d5f389856be0adacffd9e8156402f061c0940d33facceca81085116ff995a62382f01cc07f521867da1fff3fc774094fb830e83224db556a618aa169162a4aacdc08d293aaefe88140370c4268886284fae9303b96d3da938b3a42b0f7190560cd46e192af1f598e13d053860b129fbeaeb78a462d1bb09922b9360b1614e80ce3e6865882041e4b028b289803e8d07e9b192c73a00114a00e0bff15764f98a0883bf7621b15ed5fe455af9792fbe5a6b69a747f49f42802ba2d88902ce8e5514c5c4119945c1aca43aad6059e971c7c7afc033cf5ac3c493c6fa45506c8c3110be419252989cde786921f3c2c2cfe47583bb0003fdeacba28a31703c2fdca5a4a5ab488a50ff4683a6288bdec93b343009417e62a82a0821a6afeacc032b8920d3403c4ba0c78558d98b5fb9e62062157ee8866c5a08f7eac34a825ed3a4342be3ca75948e927deb2deb93c6af903cdab0fe958f4bc314c1d8a86845ee11d65e96e85e06666972fcd12ad398599558c737ccbb772bdcc9bbff3fe78458b065cd917340617eaaf815f504c773fd3c65fd44319a25befa28dd2f631a63936a9e5466d003f7347fd57f59a909a244b388ed430d8b4656663b5733d855e5237f6781670b77958422c227cdaa5063f84273530f22490f13760c401a8695a82f8b2750a4e96968ef555a3395d12029f166aa6cea2d51c70f22663d8ab204113e7ad45ee8d754bdfafda0aeade212910409571e14d51def4650472057f567e25035fe9c9272c9e64f54e1d1117615699024933d2ab3eea2ef51bf8b69a1a8f0cf52b608cac153db25a934673e07c550835298f75b7c856213ef099f6820a6f49d9edd8ee2f85d73a0e2e52ec2c61952169dc2f131d1c777a74b539062ca1e271e72107d89a563b2b3d81f51936639637bef3179e6418bed70b18b3531050736b064ff5cd328884710eb0338b5d311c3ad6068fe719d938156f79c46b6b01984ad74e5c8406daf6fb30fd465cb59aa3a7ce87b4d12a497f95690ff650e54612b31cd6b472dc3c2eaf1fca25aa2b91e771493f60202053eaa8bcc5667a07a7d58b5b6721933df17593f933c0f20eece4a9f9b20bb1762c6c8dc0b4a950e0466a6787828b9e40b0f8460c470805090a5d9cb7f99de33d6d53dd4b542d1830bfef9d6c2a261c5ce7cee430e7fd4433d8c477052cbf96176b03c5ed3fa41ae3a0edb4e8d4ae9e3e1003c1bcc059365e06b41b81fc8c40743eabbd8547acac1a0863624bd346ab4e283121a2327fddd93bdd1510c372a22740652d599d2de5027714d90ed74fc9637eee47025ffc402319ede208023b87a580e17dfb242669e8ea0e4278ddd07417f89a839cf0ec05312d4cb4589ef9d738ec6cba9b284903190252004506d4338366a49f6533d0b044560f1f2852f32a012db1ec92e7ca4aab56a151d49ce7b3f76a245581c5dc4fcf8e913cd28542049151fe0021ffd2288260d21f4bd1f040a5db03ca198054b0097aae96181a8511f8d2130275046c8b6ba8e17b400a0c7d3fce5e87997510edd5131d7aaae12bb72965114cf75c37b24013d3ccdc0f43812a910924fb2107d50c9888d8866ce81e1aafebcbaf92a53b8e15c1f63d8f54447c8c76a8463df7e21d33801662b3923a676f23ef4c828601d613acc9732577a2e0732d7891fee468bdae4bf9269ce20d75307487c5bfda4385a48875f83f365c87204b9e96fd23a7775ebbeb9ef2e48b6680642f7d29a7968e57d950e04e961b60cf5c84c3657e394e5baa56f56584fbb461a6d3aa36c30484011c9ba9e2d1cb0d1ec784eda77d43989cec47a80c83b0db424b6a1f6f6b25600358d58917cf98a80f0d1f77096f9ea95d8befa1d320a5bb320103ddfce4b8c447b00b071236522f9bb10ac922f02a11f09c96c3a921a8fec90c1dbb261270d714aa0a8d9d099dcd8dc647339083b9d38adf80db8ad1b407a2e1cd820c75c16b2a987adbf5d40a6bec0bd10767ff06a6cbd4dd77731760f5e72e273710e8be48267b9e310ab191d0ad289fa6b255610746ac07ce31c7e20809f4e0936fd0e81354024cd84ed64682291461ff3700c7253499cd0177a94f70eed2f3d7c4bec2e35a3311da45bff812c28e362063f2f03bcfee308e6448413518c6ee42be485ccfe63a4fa041d420b22b06b4db6ec3ddc3363fbb9be0356f4ac80e4987a9dddbedf3ae04548a2e4e183fed0d40227ceff4fc4b66f80f03713a4b55adc5fa616982a19c1da78e67057f298a80c8379e0c967c621b294f0edc7a836b6e38d93643a0a36a19091dfc12e70ae048fbfdd54ac4f949f74c94a2cc39f43f2773cd76da89bc0c3e81f1128c14cb385698354ba7909f654ac997027573f0324547acf81dddb698e1195d749413eb81c88484f9026e23143d6d5c40672419fd73a052913c914e016c4e908694226bdba0c7049009cfb799c207dea0781596e517d5c1ed492c127a789c71109ccc53970bee50bc9379a719392e8609da5d70e342cf8c47036b22b5d973df489f22c1d462e4580c11afaea6c085ca1c108d6407453ce4bb03070fb172fefaa68b058ad4cc31fe4ac47ef4b80136864230b4b0536513ffd9a6395a5f0306e5167014ecceccfbbc3b0edc18b13c13d6c76a3df880ee18451b01b950467989277eb3bfacd20007b40b7b9e9d22484dced979b9d039682ce7a28c8c5c9f20889afe1b1ec25819f10e334405440cf03f47c51bdeacff4425614cabba84d09ac49298424d0384b2e66eab9cae3c6a04eb626eb70692e96cd02785a42e157b9a6842102d1fd85e1e47e3519add4d993c1832a4b51e8fb502f0d3d2762fc19bcd8c1d537879d285ec6ee992b8b09a3434348f8d7a8fd50238c5fe039b0c4b904f0f995371fab553ccbfb605d85cff275e272ee4859bc7c313dc02ec53554af8e200c48a2b85b5b3174b46771f5c3ff1ab6b01adbc59800c1ba38e46906275cc2823415ee47c147f029c66bfaa2bad16cd8104cefb420cdcc4f6f284232703debef58114a60296c26636e9093ca4e67707a886255046b3cdff77445a427903f10155c0bcdb25b7838bc687084086110260d26cd4448ef048f78d9a593822c836d360649ac9380383d13d47e974be4bd0c3e203bb35882a71b537e3dd768a9094bbbfd51047f5fc4d25357d7118b70000227dac3bf04cfe34eaa91036dc2503a66cdd3b6cb4810c2dea3049714be85be6a229d53189d120c6be1ae708a2a5abcd525ee9365024b93c1ec870932c74bb203756bcb3f97fb87a293e2b45f4eff636cd6983993e713f44f83fd92ed0f94ab496d43675817c30346c4864dd48e82bb830f07bf62e3908b23a6661ea16c607b11cfe2220d77a06cea5b0ed60ad92c64f53aa22f154574f54924332d3e8f81cba22e3963a332b8b3c1e3c29e962174b09ff84bb38113b3653d688d7d0abb8b27dcfeea13490b57b931a54c7184cfd4641afaf724ba10474b57cea0b17b900278cb155ac7753436dfa00d6a0883c27d8cb97112bc3aebd947f4eeb0ae63277bca949bfcb8c1ec2bd23b662f74470257e247e1495b393d7cc09f481788108faaa3475d8d03c7d5ac6b56ef107cfe46a70a7bca02afc82a279700e226e709be8b8102adddf973c0798b8198938d9894cf3b606119267b6851e072221b7c1431a8e3539a5592b9dce2fdb375a91bbacb27079f8965224372e8ebf163f39dd8e8dc0c583dde78352dcfd7ca07abe30387719ab29b4d58ff31370730605e5c7a2fc947ef24305f47e690384689d0dba2cec4b6a315883b39187ddc95624ce10fff4c3972e9113d95c6485aba201181c1812a64dfb8f400f2326960bb71163f62c6b373775cbda992d72bf7d1cfca9964990c6c4e3b2fc985fc7db48c01a97bdec4521de9821864df886426e135315d67218d2a341a6101e09f59c32d303c0b256b1502a4088d33fdfca0317416e4325b9c84b004daab90abd68a81ee750d276d72f4df69cbc7be09f601c3085f0c3286629c1f6a924956b2e4e6c9e156dd4d2838a5c54e984286e73cfb3f5296601c7e1b003c0048ebf14ab497ccc6fd4a5a4948b6c214d502319654ec3e8c32586372ba8ba8e4cb12b19a44ef65feb31627e4375acb8f2eb09b6d5a70a08eedfd48133a88401e2b1a260c2591715a60a80fda92c32ea852828afc94c83bd7978739d6a988b45ca66ffc8680e9747969c06a842a3dac224f07a0d739a08518808136ed50115398ade45b63a7958b5e691d58a1d7270fae3f60c6d5018f8f24ee4760cf63a754531826cde92b83a3b9775b88f2841e669a196cb9e79541ade748700204400cd60e81c6c82d14fd0c2fa41d4cc8e81996b712411931ceea6b2962e225272e325b148b050760edee1bbe025e1c8f80fdd33690e63264e28e364607be43f870342a799be1781e6b4735d959537497ae6807a324af5e6b737ea85584a95dec7a0c99464e5b857821d9e6a9f88948a89fed1ede401deb88706d1b09c8b93577c4043531003d20f4eb6e88129303776f3af661ac41031555eb5c63aab1865a7ed059d272e7cac48c7010ed4336143cc9cec0540296abb9734d58ea6e703a363338bddaf53833526fbc72ff80f02a126c83035e4824c46a6319e745b54f757ddf9829814d785ee422c5bb7923522e563820cf1bde95c03d5584537a2b8d4c71e4bba3467ef69fe7539d28530da658c0d0cdeea95122bcdb0f245330c9e938de44346109b270aa7a8ca83ea4e7decefcf0c5710c965637c2489182a69a26762c7dc0c704f2b5e54830f59818d1fe2394ca24dede5943ab7eba2ecbbf6cfd1483a86cfe2cbddecfa001c019b2d7d165c655b21eef7c25b732ab359db33ea200232bf5e7f7256fd6210c40e94a09743c9f199959b52323aea1830fcdad2a78b6f87c344887a599b8c3e32924c4dc1b819271d110e2d8f9f0945e1858186b6648cf8ec80216696e760735427ad4734f35d9d7f15c9eee5ccbf1754a96fabf744fe7eb694f63b11c611e006423914306e563682b82b56a7afd0fbbb6f6c3190b4d57ed6faa5ad348bc69214fbc4fbbe05abc9133ea6865a88db0f33b4be9acec8df92b8ca297a6a053a75f34798bd011a2387a3090b17452492ce74a93d4e07c85b2baadd7fcc36bca4807875c21f2fedea41eaf4d644f786d32d64b9b713fd9bb92f18c4d425dccedbfe53b7e1a44fbfe7483204e55a4fe2313c80a7fb2c6136571f5cfee9d2c62e9a930063faa9614c3076c09bf4baf3ee4b76e88b42b778dc66160cb336425a2e0002ff02285c1e1e2ca6df183875b15e3633c6c5130c1d8ce27fd83628a6cc979d05536bff9e5f65b9e9308f2cbb2247f8ab701d98c581546de848c2addcb938a8c7b1cd4a74f296c6c7db9963a207f45c779c045006273e68398c43a9fd8be0c38c62f2e0cea5a82c29258cb86841890120d98be9e550df257f7ac00e72fa0a41847df864969bbc22d58665164ea1a7016dedb6870bf0c3686db1c85521772a6850d5f6b45bcb714f1de9eb5a97cd6775a284a184170940f79fddde45b1d143b0d7d5a01cd507d0e10fa953ba6fa2df01ae081f9b0572b49b5a68aba259be8168bc48dd9c52b81a35d35352e28acab988a157ad545bbe5aedba101b33c91bdaa73807adc82bed6a7afec9fe1088b5e34f57468e4e855387a806f1e0cf65194e436a7982e52836d4b8d09ab9370021585aa22e7588e4185fd000e36533078020a21d63e5fc0c2d446be9bbe412c9fd4c35601ce0e041df5950b483c62cd9c84814024773c21d9f87746220afb5959616ccbb94b006129071aa4e2c2a4a70990ec87507aeafbabdd9e87fc01718bc052e9547ac7972ecb974a41b7add5fafe97e64211d76d484f1cc13900d5fe987f286e022ae6df472318678eeb0fd99645707f3b7cd622dbcb2106dd37120852f7bc9beeb839b79155d738d4a81c619728acf7a37ab338e0662161ac2e953d0a00d3b051117fc808b78cc0c60420c03781cad0c1c7758194ae2a66ecec4924b321ba9c0177e3a19119a3c9e7d77e53b1915d7e80e3a9e1fa3e4d48ddfa558e937152adb159cec6e22dff7febf18ae407018d828e53512004f1bbf2912352b6a66f87f12e8e83e54104def4b7e0b5a8503096e8cc8a4c58aa0498c21b6c835269b3f5be91a2ae9f7511ced1e873fa54b758940850c427bd0b77d038130db46b63baf7dbf55be8f625470d70528e87e91934f3eae895be60503a1357a8989f0236d1c7823a9189350747320b2c6a3cc1c5f7008c2e1bb3fcbf220768475dabed706f7ab70f3df738d41945b160423aa7a581effbe6000b7820b5c3e84e441711dcc2f98a96061eac7c302840bff6035e5c6a632c8f73ab2d47b51e2882aa372742ff82d0edd279f6fb84a82b0039101173a23b2c3b51dcbec3690f97dbd52e4068d2aad7efbf0c392e76d24aa9b9e248649d1b1fd789176e99ef69676ebba8ebacb5c88cd05114f4128878c5ca51fa703c1836d50ef2b7050d707de74a1a74b19df75809a29a49037f66538493fc4ff86a8e31c37b8c120a5e489facf8c69b2e5ae4a748d46807ee14b255056930397a9951ab3892e2a47076e925a2a3201e1a0acece874e3145b3561312d2fec9c47f70933e51d339c53f63c21454cc20912714298b2b1b592c2c5e86189777a7b6d2484038d448dbcdc2d47c37445599506dd175a052b5440605b0599c665f8b44af00d8c9e084f10825bb89c67addcc2ba373a357d4727852dda5a0d6c520b5d40bdd4c8352aa075542b83ab39b9a82a5f3a2a8a2ea28f6fe04de0108f7c129198325ce3725a84248cb575108060a1a2e289f32a10aebce8fc6a9f24d8de6723bb124100938343ee3bc0aa9155db01ec9222a9b30baa7c774733244f907015bbbb43e033b799ae65add16aca8c0d0a5bd7d4d3c54b1b7375010ba261570f048194ea78664be1f33eb5ed8c0a238e56307c79ae61235e82ee2f8bdb41302e17ce4df8f89de2ed7444dee7c2f355569223c085524e284c0b572c38ad2cb49a4daf557fa87433ca20f4e2f5bba8b285d716add1c7f8c0524881ad887a7584758aa18e1187d908cee67321e577a4bc174d1d51b6e5febcffe6ee5737043f647e4c90e590f9eabde12cf95d5fb6210911fdb600f84cf998b7ab3bb172c46cf9543900cd23fea6d8387f4ee29fe6ea85be12ccf1531fd56ff666054d233721e794c62a912acdaeaf4be67ba73d119554451370806dfabc49fa67f96f592c831f119678f45c346a882f079fe52fa0fc7208878d712fa2cd4e8ae5c48f6a5995f8724042f556215eee892266f7c31b70b59252c00774a946bb001893862f3e20f7080e2484fff7e65e7789ad523400c3561d22655a5d3d487c06db2fe481d489c5edf17151c6723ea458affaf71aaaa2501c0e28ffa5e05d133f095cb0f7126d7c3e7deaa1567cc9e9854114f73e42cdf77264db0a111fa0234930485ca503afd004794374a382a7ce9d44e4f23fc199660a2849234f85d373bdf96563b7bf6688d1f011195633a593e6f8c7106451ffb3832bafe099df7b8832b88766879411470ec2d35ea09eb11fbc89f9d01dbdffe418a482198d44aea23afff25b8568a1cfdd90eb41bee8d537b1f9499c35ae6a86cbc96a6b55adfa39724271d69c2074576bbf36b8dd2cfbe5173387354f9a5253f676a90716e10e6f052001f439d6729406addddc3ea55d3e2180cda00f814491a505125df0f928a3439ed9065db1aa21032734dfbae0eb412fd617707a11718e8e3d0ee8504ed2ef5abca468847be3eb41ce9b2af4140bedde955a7a73a50163d53b7c76be428f48154d6c894fe47cc318d299698629fd8a2c4dfe9d5943d07b5f8465640647efe139b98b189395631596c4be1dc7aded3026c1a6758f8af41e8884aeb77bd8538b5cfa19a1a9a4a8edd4c81b9fca34c173952bfd2de1b06af2743b13b917b71662778e7467512f5e18f4ea49e78cd09dabb2739a908a88f8229887d394c7b4116093994f75d52e580ca2729203c375d26968d69286d3bc4c063cb7db7dc76b7bbdc999b47faeede3d747e5a37901720ec500a054fd9259f3552b1784682cf4a0c0ff090e1922dd0cb02a297cad1b6e5596e79e3d77ec9491a037fc2a1084944b036a68bd491c8a9c768b4e35431fed99705a01efe327e6c3bdfbb7368484a2ea09ce48bbb389d7a42d8974a8010c2c066079552a5dc52c591715d6e0d0981840ac4519340dc195ce8040f5a646f80dba8a8363865b7fa8beb076314f6d42366d9ec50ad0d391e5c892da293b55b72ed984d823bb95fe9d917ba14229c8f17edd0c3b953bcf33320ce0809af89d4bba59b00225046717cca07e7c8406b34de347038baba57ee00b38fd53d075af5a5ba42ca627694c7d82c0b34948e484564c2878928b7283cf52cc279a61713f508bb752167c3c838a32530484a81d43a8615a938cd499af75253011377d0774931d8de1442e50a68956bc7e90bcd0773e5f31245c9fab017466d5b124fba8df9153485062781edf213e025d05b31ec8977537d8c8bf7fc0ae9e9439f0e74d3899e7440736c095c63d9160351c5d5c1ac605c4b6fbc2392a7db48596f12b2abb7ac5b784a1a37f8d0229191764440e866e6d336a841808634e01fa969e65535cd0be3f758804181fd000e3651b0780382c76a66147a08340096838393f4bc346edd61fcfc6965872b625c917b2cc3a4c07e83871b28d83c31855df31edccc57281fe8b9a642209338d625f0f0f94fd02cf60fcc9e04ce3cd403798d0696d3c933aadc208b624abaf98626a131b9bccc74b6afa656ce6b6de690020a60d78bef0ed71ccfbaa9933a3d1b30a67f2896298307caa99d7da1e2716b8e883073c6a5a59311fe049118ebbb7281b370f4ebdb4c4fdbbdc71ed57ead917d99821228875aeb650521788510f5a520efd0b2e73b706dfa9385d10fe9135f43708d778ede48633bf280e07c4c3a47465d49e47b0e6a3d0a31e83adadd207d0ce5226a9cc8058668a62418dd52bea1e997a06636d3db1ab77d754f4b8ce70efa5ab7f35b7bf441d36c56ba81d89bc0f037440ae64e2bd2bb8ab9b00778640486d4e509256877eb4993b36a21cc3604ad4c28e6e15317d5ab7336a86b9eea53d2dd3c3fb63c618679090e211d5ccc17488a751856857a828f5bb90b7bf3fe06ecfedeaf3a8a5894c583f4ec9cbbe10e6a0295d93caca1248e190febc52fa4afab0c58e0c57f517170553fbab52140314f8d7283bddebbd4a9e71265e8cfdfd25810fccd60c9fb7bdf1c36e08619e8c4f19b9f5557035951af4aab31765aff5557d873dda996a8a7e246d1ba9a06204f499b6faca9588c7a7a38904f220b69b9d1e3ffa7a11ac3cb32a5d8be64839008612686e5eef8fee1a2b074c20ccf7a158598fac06a3d360f9fbb21c9263e567726d7a06f8d5f421621baac04aed304449e05ea3512a5041a7c8e17984ba288d39d2f905fdba8d3845e5180a318411ca957cb45cac3b5b537559b7d512d98dbaeda7843529516147d10244cab4e383d575ec0464a365d4ba6db67c262919a224e9f79f69ca9984e2344b78d882ca27fd9dc2f6b4f6c65513caa707773d0ce4bcc3f7643e86cab5f093f849778aece13d5c224d5db2bdad12bd66be76f2a75da3d25b18815cf602a194640c81c9ab98b84f7ea5aabf259e57d9573d5f1261108b6ccbb73cda6dbe51f68dc84a626d57b9cea6fe7c19ae046c18d1a947d400bff652a97802096b1b2af30fe95acbbc369ed1ba1d90f5c1f8c8fb81f5a1b2e70fd481acebc9f1f997c08e8f6ca73d833e7fe7aeffc045fa8bfa22577917b7182ac314d823ea86e82ad5cf3b775faec84e05e238d1a73b0f433f1aae666790ad18e3902808eec6f0f758f57a4580f1e66bc8e1aad678b80645da3891968d49cf542a8fc0842ceaa5c842b8debf598112572dff66f12c9923a8ed00cdece525f08e8658372b457852d96a38d9454817312b3be3d14f8617ff7c89336de1a4861a5d06b68751f43ac01471453c9c243816284993e7364f1d311508182c0a2c2d57d231599885907f6f5ccc6cc03967c60328290fb2446487b2df6d9b2c0be40d57ecb3b0c38f54cd3097c60b69edbc92127178f764fe153faa606fc298f23f3e55440f140af84ea92b3aeddcd1302dee3e43323929b124861be0239b858dc90422e5153b5d85f0a14458004dbc8f42c09d5bd3e986e88eea016ab5a589d7d06631201fe20eba8736c9415695938205fe395da5d7d37920d61a19874e8c3b825eb730af4eccba04fdd3f4965c1eeba3730ae05dd0688a3a4d104aa99a6cb6117d1609c8b90f50e0c879202e830257300c8c17aa6697977f2ea8421a3f864ba27c94bb3595c88e51ad34a5d051ff808c6ee31f8fa6b957d499cc91425196447c072e8cea0a8edd30ef23dd56125d35301adddc3c4526126217c1fa4ce2c7a2d8e2dd34fcd317010a468dcc8ce2ccd7febfeaff16f6711aa1cdeaeeaa06fe06f82752814351fe211a7c26cbd9dcbf49078dd9f7390b93775d99c4cd894432f6fd94a9bf460b525b19871faf7f8d77b0a19168e0655f6bc0aff866914ccf0e1a86c9453d3b1585859c3e637bb20c5c4111a07a7b8ca9438d5d70c0d3f07d99898d8a9c88830f64142e706286f2fe46eb77f96c2141e86dd8b70add35ff6560b5a4ff00726e4f03be38d378d0478fa749d28cd59ac629ab9136cf98a9b8c90687b68edbecf985e3c8e19a6d0f414522767cceb05e43d5f71fb9d6a0af020cf9b94e112bf7c0b9f442b526d4c5fa22d4824b09317dbd30466cee570fc169b23c0f1afd081e209fb5203a980ee887b19263b4e9a87267526b0be574570bf13c67ad40c8c29554e98973863a8c2652e673cc51c9081ec789ab1fee1c6a1ac5305cd2b4fc73ee514f633565cf2346903333a533756cfceb46c5e1c6e822229554b3419547086eb345ae8407fab5920ef659a9ebdd53880ab17722f47d6b80763963cf8afed68ea891fe05ed2ebca480ef83115db4ad78b8e3d7cba0043c6426f248d8f3b60167800bc163250f290bbca1f5d3e00fec10adf4c96326366b65c960602184af7a97bf0a030b9c40687719fb267c7b8a06459e8c590240a668d7bc8e45c96649b7a1b034ebfef87fa6ab3e1cb8a4d844c5cfebf7ddb8a9afa6a774bf7caaa865bcaaf5d65944a96b40e120fcfac922d0976db39f226386029a90d6d73006e82dbda615d6e690810a5d065769aaee760790b6a06d9ea157f1bd6b03fd5a64f5892e8c2a39696605ffa1c97d4341387844e1070af49d17b485b0299091766b88bf50247e7d6938206dd8af13adc4a705d89b1e3b6ea811f9485fb772887b23a41d0f4a381384f541e136e3d7956dafea3bced0e59d577dd79df13e076a017da7370a2e76c96964707deb2303d687a251fbbe5d93baa2683b7f182b9354730b81dd7ed810a685e6da4a6b38c4856a04f5d236504002a92b3b955bfd717fd5d9a9ba3136e7bf7f13c83afcc86abf2df63db2e67bbb28c538ac8314ee3e6d5893c2cd464199e4d36f711c281083cecd2dc3b7570de72e1589112cb0f658b02b1e7b845d37918da09e67420b572dc547e1748ce0c0fd6c15e368af0605b089f560b67073fa0463647ab94ce5884436b5f068efa4e13a98721476a66208ad96047266e80aa238a1cb2b515f0a2fb86819b5914e7cbfc1ae5a045823fb3798e268dd9514d7fa0d1ec901ef70be7124008d5fe369091bbe8c6cd9c3b550dbb53915a0c4b01d07b9025282a29a2f537ae1be0822130ef8c122bfeac956534cdc918afcfeb9b06bc19a08dcc96853dd20db3d1fb6bb2bec143b2e743a851ec03501deb979add33ae644f08029e8a5c43c8eac8f8a1e1bd5858dfa928d163924040944a051483aafbee95895616687c6948c92b48d3832c997a7ad0efd0240a163cab29ea68d56e797b80319d3ce5a9a454f7383ef5fe9c2fd0d8829cb2b29c84896dadb3babd7a480037ef5229811d255fbb30fbcca3369ed3c9d3ba861466e007faf95b68a65d5863066114c909dbce3314cb97503dc4f77de5d4a60f9c1ebe91e6825659122d2269b6ba61104c823c651d5dc88f395ce486642b67059b88a6e924d8af466a4e94af8d9d9a387bb84c4efd5fa226a99870eac041411265c1a8018957fd5532c9671523b5fdee3b88c08adefb346361c05f775a778ea25edb39530f983520dbf0c6261010ce35773939bdbfb95a1ffd99ecd24f7a24484037d539e63ce51e851d293ab259626501443826ab20d8d5c765907fd6c5fe161bb9d80fb0450c6c1acd4f4066c104e589096aec9da6fadcf337a95a4336342ae0bfa9eef61a3c183ddaebc61c52293f99b5e5cc0fdba306e6c895f23b5ec3f2bd87c4add6c8d1474b3903750180bbc8bc844c47e39d2af141c11c3b443c9a8027a0c91710c71189ce2f5bbc86387e2e6959669e8bdb1b1838f71a6cbe5216b1c6b2935253951e432717fcda2a35474715a8045a8fda969994f9e0f2516ded0becae8b957e6d49f62ec5977be0321c59edc37b4c8f2d36280ae973c3af61f508946d7c781acd6449a621f9fe35491b4b5f47c970f64882de223e3d0350f5752882c3ba66564d0dd40f64787f3d6f622a16c9643228c7c494abf95e81e46ef6709c992ad0a34d87bc8207c7cafb765be2cd734b828db887e08fbc5f9ce0381c4f04477dc79f9d65b8d73b5d8dd40a6e5d0658b3293a5620a78dc8cf07530caf497835994a8d63907f54637902430cd76c1e30c189f25810ad158a080396b923570344deaa4d2e934ae15294e7af11fe3902a36c6efc39a522d9cfb0883f04a0e703e0ec869496c021f94c21bebdff15ca1a4c0959a5d4bd81830096def9ac9948b5b8195abaf1fe53691156da7611eeee1602601e7394de0645855ca16f469481fdc2ecf9e349004895a6b2ee3cd2ab6d6110dd929a14a92d678f86a39ae4d1dc5c2dc4ab495c0136d5932dfd836b52274ca011c9071a38f4a029ca31b7c88399203bb1fd2140847d4ea27a6fe9ca5a81ba58c10765d78da8926386257a81a0060b94e4660f01d2ee8ef0abc0a7c9c254f71bf20fef8976afed0002e7361c6628dba3c9e98d88a419da8f061f473e37533a8fe296f5b17a91968133f932592c2108821d41303361b8279a36f0ac712713c5fc2fbd15518ee000f89be77a32e6ea7cb59dd1f0eae02b7b06e92b3252b5e22a2b5e6d05abac74c53bdb2475038f26ea39f1e54c8bc2c842e013d8d541bd24e86bc61499483d9d1426723b76f4ce8313466f200b646f069d1c46dbe54123358f95e22d1e7e993cf10521b3c06479236570088a90f42a8682838c7c3dc320aaed2710df5d6386eb58ddeec26dad308bdb815bca1aa0ea812a9eb5c31029bbb4a962a693c940c1284f921580c444318a322ba5cf4357dd9a0310b0e79fe889a659d7bba8c34de3f8f7333cff25c3591dfbfdb3206878943588dbcb8ff8608dba02f6534a7b98a772555dce46992fffca5359183c0f9c51bda0248bc38f609d77f97787cd6d541a2f1f558046d0896d42039a4e7a208e2b178147b2b5b6439b0a30fdc24f017921d0e1c55a08dc240a5e34d9647489046911764d08d1f4c4078220d21b98c1f7e06ac0ecc350e3686f1d2af3d9a7fc0ea7e309dd1811af2c2e0e6be840700f292831775019905a04f20ca8f1f8eb15689090eee39201e17b8bc803751eba6ef576c08959c019a80b1a2486abb4a88db960ff0e0a18a8181fe0a10615964720f85cc1e001445ca3ed283fd291c438507c09563258e62017f90b99e6854d30d5a6680115664d41b889c48f018e575375abacae7293800cb53cec3b6cc5cf0cbe16fea286804a68714f65873c9f5bea01499006cf08ce9c4c0d25453d7529771b98864eda238b2b5dcc784493164880b0fd013ab2cd016c0f9cbe656c60390095b96848f204100d417cc9bdaf2f1c9f606b257ca1d22a1ade7788791d216aa6b163f92c6662c15680eb0d6078ae397b668c0744ef2a737c12e9aa3ee38b0276be0e530f211961948c665a1f72d059193bd55ca728e23a938d084a42902e3d710c3da2a103b720a4dc14b0572da63e52c7d6f9b7b41827f9975735f32be033cf3735f7f8413aa56a46b4ab1210b6b2ab9611cdd77be6796aa41e8e794aa07433ad247c041fdf3e5440640ce8c8c42467ad69a69054a7a1426382ab7122645cc1eceb250c24608dfec21b0c4adfa1f9888c376d4c677e3dabbc96545e9eb49b597b605d894e6b4f4ba48cacb10ea924a8ab3b0a324c8a86e7a880898a86149f2171d2d45f14635d7d8d7ecbd028508e4463d7a4345f2b211d00b45e2be01b6629d95c194acc1a286c3b3590138d28431badb8e107575ff8b18ce16138d77a02c2108363437a3675954d3c1fdf6214bf997985d1da7e3b5e4e9dab50a93a405027449f4b929fac955a8b258534f9908cb00f2bf82efdd90927a278f686364a97239810e09a0a9a9c6f30e0784aa770ff24c1dc3a1872437f0763cb138a713cb869aa44133ee359ba62bb1c11937f2797e2db287aeb62728d3496c4a04068342342e96393f41e98c6e6107ff2a16e5f8bbadd71e93b0b5bb0d854f908f618903d2f495ff0721227744bf30af5a2bd3674d03068f202cb1828004e962604e97ffd5afa06077aaa1d6b9389c58e1d87339ca18121ece6be748b3d5cb27610cc5ccc734c72a6bd2fc2fb0369a5991be2329361472887aad5453107c41bc4859148d106ac3d2a331ca7c652035e5508830bc6b9a0b18ac66915dd2a5c28e66144b901cbbe854c3c5829047ed30de85d2653727f4d85b9ec800b802bcb3689388b126d2a3593c94842e00b1ab4e5e307aba0675fb162892164aa87d9043305b7ed60288c99436bc2aedfb768a93c6cf98813dda830126d82dc87c01076d0f6672803b2fc385a5700cadb17f2ece9b7752537d57ee0b806ac432cb69ddc290a0ba79072db4b3d1ea2248239bb400c2ce77c0e2f197017a879a55e6e76f1cb6b8717fce17c3704731085313d330187fc43a22cb6a8944b0245bb00d728a011679a0e521273b3ecda8c3b7c088c146104062a056401483bd52365f9f2e2c59806b5d7d697ecf2acae51c0e041a8264d734b5cc2ba9713d678531cdb936f03e7a331e9ffb5a0d27616327cdf6f87f54a809f2cd2b3174dffdefc600800c6d87b4635c5fd49a8612c4bda99beeb6d98ec3feda72f48b99f408556f5ed41851ff22d7d0d833d54756c4a01f229deb6ebf89448b894f2be8cc757d458660129349e1955b3951939bcd8afbd52b338304e78183eaea2d2108c9a5e74ea5d1648733ae50af76b9e9cc4b5eac4b5bf42d593ad8c75f1a547f4f8a751f5e7241c5044a422b2e474fb5c928e78db017b9ab5bc95c1e284ce3705cd342c822f1fe144c8dc7ed172ce4927d94226dd6f564f7e387e5581748580ea5d850aca48b580c6141afd6262f80fe619f9ebfcc6092392e36493f2e297013a8f7893d081393ac28b9b9a016bbe3ffb885e5bb369667bbc5eb9ed48e5e4a1094b1c38c20018309dbf866e62de2bbe8001abe4203ebc403bd0ff0fad4a3bd39c2122db80195549cbb5289d703dfdee0588090a623fd4cdc1c86b142f9e355203c3ffaf318b7d98992e21129d278171adde4e23d8a72d6d5e541c46c11c8f90b5681d980308567cbcf22c67867991cb2fd99810c2aade3642296f34c29d21a01c7ece3dadf9ae8802800e287e2129170e4808ad36e3bafc2c2ad5dc051be92f122ff56234d3a239385670bdfb094a439aaeb8a0ea68e054a88f1125141d4f1ea1ced33b032cff7b46603acae8189ca7ab3eb2073663cef6d812b77bd7656eb85975cf74a033870608294d3649e022f45bdf8bc044c145b6cfae7567e5bbac91182aa022cb4434df5f7dd47bada8bf25db0f3d1727b3637648ee5d34f783de42df42881613869cd5660ccafc589273c7d6a21953e3f40f712521ea0289dcaef37de9ed19630855d710761318978a669ba49519a8bf4b8fcf20ef2766a0e116c0a500e766c5fbf37c0958333ba7d2f6eff7dcfee959fa724aa411ebb6b3b6c31292863f7f996bf7729f73bebd13f644bcbcd61bbc125a9323f23ed72e8064a333850d893e35dfbf5ee5bd609f65316766d98413e91b01cbc49c263a9874cc5123076719d80fdc436770f37d7a9b813f01a026f6aa0f302216ff329835004481f75aa4bb19a62511d325429c17b663b623bb640cf9c114049079682667d4aeb72322c80a5d4d449542cda3ac7c41b5d52191670cb62077f2aac9ab817cb50b9d97dfc67df7bae79e9bdc7633227b85e3fde18b4089a7b44f0921461192bb7290e9560a44c28d167555717281f477adf6c0b830148f31b35d3cc4cb24414f829fcf924582b265136cdc3c674330b022b3419229ab0f8074e3be364a27890b8735b5f82beb5e60a03fc0f4a1e689f5aaff097e75a85fe59c193512f8a14c044b5500fc57095368cb043e887b2221e6e5c9b28c2bfd59ae2cda8b8f5c35f221ba6858f7993f5d0d9f61e301fb99be9e6b50b1ce923ce44a344c0cf84a0c6662151b635a89c23128d8859fae941d17da0a9d38d05469a1918e77be7972879d1893a85a07ccaf12494f33a489120cd2d431a359c77b9e8fce591f1f896f5712ba750a430f44d620975322323aab66a81be6a493b2a78bf87422cce0fffddc660099c9e555e9804f8962d536be2448cde89e2b234bf5ceb4b486cf36a4db76af1a7c002eb16d5241ff0049982d611652ffee81a175d666731bab7812bfe4535630886916f0800558b230982a222984b5171001db55de3d8c1a874155b69e001fa71ffb0798b29814f2179afd4fe9051b6b155281f5e69aa7c8bc6466f0962f2bc258c2d5c1b19bae840a398f0216416798d4520be5f99d73f056e7a7aa83bc05151cc6d480e299adf02617e857b43b520e87a48848ade328388939c675262f98e0483d0bb9491cdec26412929986148193d3812efa6994e231c53828e1bedbfe317c0f0efd48b45639bc4243d4000268ff2938aefbbc2dd8a958a3899c40562dd0688bef6f47ae5008f8446082fe1f07bd60fefe5a70e33e0aecfd02bf78d662f0b0414ba15a8366098464961605add6567fa93a8380557f5696227182147d27298619b1d94562ad08c1d3da9bc0589901862e7820035f639553151b59417ed810e584e482623a99964e364d60e05282f42ab363f75509700429dc3b13b1c53284114f70669728221ae0b2673d1e3ba4cee475e998cee75f55487135e58214531f272ec50a420f9da193360c18378a3417a50090acc32e7208e4cc0b2c70e887a02e9cab13c7ec28aa292a11e8471833a91620e0f87c4f26b1ba527720a0eef5315d64c704f849a2f9ab0bb66f0d08557bd769882aa0283b1d9fdc3c00e349301fd1394b35fb80378ab524a084da7d963da9db6d45d8f9c0541dc178eb0880c9d96f8127b11a9cd4ff02a29163383f34db10dabf58b37e609cf95b7e328efba5dfa2d03096e9e51720a74762f5abad6695d5ac8895f00176c72102143cf84e651d79dd64b88974b5318a2db6d8c7149bc5e6c3e9cbd773e2385ad611003f172712b2da44d502218b6a61de7181b957c6e9b9d58fa56c8390ad30ae8b4e3e28dcff7290fa03b762d08e73395ea76e5d5ad4586df360f798bdf4089ef3a7b78c1229318873081ce06966cd0b2f8379dcbda399bf573c8077a07e00b9b58b76af982e8b0096a1cedf7a1dc2eb4ce6cd08da312a041548422899e44bb738a006cfa452180534ef75e5b2b132ac91deeea53b2cd568da01ff69136f79852baebc85cdb5f7891cbcdbfdfe9e831279ace5ab071ebcbfa7b1d5d962bb49d7847e56631d3462d54e361e8254d35c013646979638650a7569ba9604976ce98d09b38385be2db08e00a797a959e53b0c8de9365ab34ad7d4d4db799eadae830a3ede32221a1e32f87571ba3a020756aba3442c92e314810ecdfb27a1da4ab177bf53bb4dbb5b5720ee424270f368f8ecc94daa5cbdf725b1b9199125124d3ae4fe182985d1441a5bb15b2067a6b6790c8519d4b0973cf6c398483dc921fa09693b22c3a4221c3d0aa256a910ee478a3fb8c866115dd3ffa4a90be984b65d4f8c58422f9cc2f75fec4bbcc6dd56ce80ee27b5f81ac8e3cc9f19f15f65863579e25a64298015b24b5f2d7f74e9f955f7f1d07f1c6a7f5210d0294adab3eda5cb67294ed4b63fce44cc1dfd57f09744ad4523ec843eaa017a8b4d4a021c0a0e688ca0e42cf46bed0f06af6cafc1f7e590c95e099c24bb1e89036d38e41a6ab756f2718af2b7a3c88066f4c9bcc11595405d39435c7971155c95d43affc49486559cc73e30bf49766d8828ad27ee70e5d150bc1e5c33c18be94f3be5859ed8d9fc167069f6a0a49512bd9af33ec28e0a37bf515b14426ad57e643284691d925c079b741c188483091896178cdf5590e34bd44a70419d95d3346058089cc2e2f41e8ea838855d7a16145a70f2e6f8600375d7eeb66f636a8e7ba4ba06cdca2d18ba0e04a8d77479b012189243fc76a1b5db55b5bb8873ffe6b4c5a826e0ded0262de2c01f5e2fdfbf6fe9e3bd10923b697c57e16464062c4c3d5bc322b994be09f82252ad4f2ecef844f8cdd63c39fb272d4098b79b22fc01012fde7c3e7a2f73d1002509070a0dfb1fd1506fa4618ebae4fc6fd7d05a35b816a301cb2ba6677e7749e842eff28777c3884c0566eb47d33a2c6c4356196896954af5e84dcf049bf6d278586c3f9b85fac039f0590b084118e47b2716820729b402fb9f726f8d86343f91854fbcbf627fc3dd77a82412aa2f18b7a13a798430cb502234cfe5b6f2130c3bbc9d577f765b997a0e8fa86646101303a49fd10936b700986630a3ff162e73ba6d4523e1c2be1dd0e1b99b7d5058fa01f7b78d87598c47a0f5eec0c9cf13fbba95538efa4894eefaf6ba61a662b9642b4129a5805dbe51287269100caeb87b69f1c1386bb141c690e1a990815dcc54ffdb3d3c2fc5f9aebdc8f3cd202fd2bcadfb7d26e99fac8bbbdc8d580dab67761ed626366295512fe3c8a3f7b050d6c165818edc0e469fbc99370921b8144d04d5d22801485468309fa22c32be8fec62f8be3208503fef9e37bbd61a64b8eed2ad3e999c4b887783711925010342bc45d42f53662c72404d20349a945f4a646159a6ff4ffc578e3340287932418676a6ef35c091afa446f120a21d3bf9dd1a5cfe13644f06751306cd26a08a003bb59509050192080dfab035b8dac25d1eac689a99015f34e97a7e4240415c00747428607256a93c96da15ad766cd340f07870555cec9a8968df16026f1d44214fabe8fc12fb7d590802ca1cc60268b141f7b6671ad30956ca730da9a5ad50941b818a44b0dd9595186db8b513d54fecb508a68ba24dd2598726fcd8c061ce796cba2c6e6692418db98627d2b1bfbada72948e7fa79e10141c75205c285db809436eca9e59d57c46c1e2af398f555ce200ea8e9147bdd01337e8316ee9016ee801eef50637ebc971479284072099f61f598bb29355da075728049b3b46a5d08dda22475f78db759e9cc8c76fced7a03b06921020d3bb8f8258473ffa78146a0e7508281cc282a9aac64981a5f3d8129f75af5fb80364a2592b1dcd595d60dacc8742003807a05cb21b72d1e2189d6c28b1da4c5e993f0c7c9a6d8342daafa0719e6b11eee98c60a9ae33ca6816b00cb768e181be59cae11042c649a8d056d080dec50932284206d39a6873bae0510761243e25e63338a61589898f2b01341099c162a2bda31cc51c4abac376cd70b48fff0bfa67e35c4eb2ff5460124bba6e01d3b4372775346d6fc476418315d60c7c8beeb5b746cb13416eae4ee5a0e2fb826e9a92de05d38e92cf622085172d7afa9f0db3cd5fd9396d3d2e776b77e35219abad11e7a47eae0782828ac70740247a7a7c5c0e8e4b4ce2bce9020af96e5c0ef1a12cf81caa7a70668b2aa79739f34c7ea0ce22fa0e689067e7d4e1e2394ec1573bdac12cd4808e086c41e1f83bf8fc056f6dcf6396adea9cc6ee2e9daed981f84161cfb7704d350ff337abbd66d673ede3c62fed1b157221326cf96f4e6b4ef2aac7f4ff6b79a80b25b2415536dad760d1ac1bd0e62c7e54510401c0bed2049418ac4a9193758c0ce11fe686a2071d27612ab426d391ace54fda12efdd1b67736224f0764d8162dabf93d75b3702754805d02746d18bbc1b9e995ea70e9c036b8fd6d872578e8627abfc67260a4d47a22847678f8bca5e01c6709dd967627950a439e4659004053e6ad51d844ef4eb955678f21821e8ab7ebb1cf2ef4995858337927b88e24a9b94d659215a4eba8d34c451249579b640661973e4588ff678bcc6e4f5b62f36c02d187af8565659af65f9e9e6d432e1e6ea86ee8a3dfba8618f626228115458d344e6cfa46f1ce8afbd17c76a2e0bec7d395d2d5a3700febabb4d56f2e6d32a1fe4fa7f1977e69d299b392a9e7f183f83d4ce78d58b50dff73f6b6d5f5d7ca6d1b31405c38f859975208efbbe89724361184c4bbf0a1a602888f0e3a8c352a69442eaae527ce96b8aa914ba54e2bc524f82175ae04ce591f2c319caa7a96f8b2ec2293562a8f47108108a269c8409e74d26148c560469d9465c52523d63380d168a950c4387bbb1fa0ccaca3100b5b04f714d88616deb540c4657632d63cd6723478b251eed023c5ba9521fc0c47dfa57211c29b5fb7114fabbf283036a1a1add2cdaa9c255b5a5f1ba2666d1c7c60dc57af41aa4cd1605f075f53eda9b106620cef1ac61aadccc25ec9305d585ea2c7b03b1f9933788691693b3ff14e131406093e3d1ebd4d8e3cd619173e30452b321b0c71f798071b9070831e7c4e22750611867caa2d909c8db0b3d596d520d3f3f8e690eac58a088dbd7a4317810678d98d002dc3779c2323d1ebf0dbcda240551797761f5d34dcb53a64720e57f863d45994938683ec2736d8f1e11eaf85d107f67c75114fd3d6e1d3d424dd403d4e4c168b82640a9067c6177acdb5c9515b77610431163b54d639cc7d8df794b0fa79337d470034f9ee7c99b8514d5dab7b908c7334ff204eb11da4f0137456f4f9c9729418f9ef214a45dbf5da6687914a03c14f444fa4d83bbce99e4ee0464926cd8887e203fd0d2dadccf00bd97fafc275a952d35361475d3a5f106a8021a85b815a0a55315175f05d5c42ac0b85948242859cb768a3eb9c96389a8907e53860da55f4d714908b6123b38ee3916ca5e4e6861d64cfe10c6dd734604517020ded25489de1c1f262a5cc03176d21402ecb53c65b78a42c4e329e60e2891e2cc84e17f0ac8ef9bf0da18d462f9da2c622b000044e4bff9844a2ce9c947a4c33014780db6ce028e93881bb095bfd6f9c6961e5b56520f75155c0a801e307927fc415be47203dd21c86e349f1ac8bd243c7eda7f018da8928cf2dea55693892970358c04e0bbbac14b8181cd2bd34e211bb9d418c5d6fff7c1e464e29e2a4e12691d7c442a156cca2377ad0032525041fca103aaed629659205a55550719bb6a1411f68e25449a4fb88e05b9e02b04ea11470b31192020a280d82a1469eca0969110215f93f8d24082ed48e222cc83c496ee2c09aee3caafeb288ea2bd3a3aeea4685b146ddbbaf6f7f6df7b4b29a59432e8085e095d09da64ba48b7e77518d245da70f777fa4eaebc051313728672516b6d3269933669da79fa34caefb7b3315d320a8d461e1a8546a5364b70542853254fa94b0af599c8d92963610465e8a41e7bde9536b9e36e754f3e177649bb930fe9276b417561d79d2ced79b57eebaa5a9348260e6ad044672ca4683f7dae2f39335552391291a3182209d9d741cf4470ca9eb8c0a9ad59a8d6883dd1c0d9090b55639d2db66e7bdffd6ebec277bf9bad20f316af1cb1ad309704a19acfc58e75b916da15532528b1b10e915b91231b5b1b6c0f3fcb6057a78576f5186c1aa8841276edd319c1e96833d455c1daaeec1b6261d589e814b919d9d58fe47645b22b10362d77c006b99673b2ed9a9f0f15caeaa250ed0b22d22b8b427f8d02bbfe21c48c814acf4b80faf9b500ec663fb78f9acf6935e7bb0ebab5319fc619678cefbd18e79b2f39c3d8efc62ed7a4385bac02ecd46ffea91602e208fb8bd68ea163d0f1783189cabe6e7dc47e4b4f8da9b5a2cf37b63151d62f8a19fc489b708f267d42495d67c05217edfafba80b5856aff445fbf7782ca90b89c2b4d7dfdadc3a013b87575aaf08d4b952175067ade98b3e1f9fce35856e3d03a08f59bf36cfa0a45eafa54027d01867a1b4d96ffefe7e262de78c04bce50cecd5990705da387404171c61e38c2990cfd5814853686556b5a4dc3c9630f2bef7861fa6672822b1bf73fc408c43f52a0143a988c41f28d6195d7f60aea534987cefadf7561b02bf94947baf4f15d662f0ca44a4ea6ca933daa9d310ed50f25565f69aabd3d81a5a60fc4ccfb062200c4f7ba6b8ce159b18f76094b5dd346c4c6f9a9d868de9cfa418cf80ca6a7641a42977c42111d674062803ee68bc6cea2e7486466b85311832693016e150a52e22f991d847118770e8349c061a367983260d8e1b00d8d8a4d12134b4687638b2e63184207963cf9630cc2c3675189530f45ac1cfc4a6d5828f0e95273f55be525e92ce9cf5c53a7df9b495b1679d71a12fd67b542f674b8b4f1562759babded9adedc15d2921d66a435085ab0ad3b0a6f8a9aa332e199897aad5ca1129d016abe8d49eaceca4555facf695ebeb95fc4cbf1448ebf8b6a8bf5217f0730d56daaa336f2d0a75695dd3a98b85424969be2dae615c8072dcdfe76268d2eae720c22fdfeca1a7a48e2076761d042e6d0bb08d95a14c257ecb8ee3b74e97a45d7ba97de49ff652e42215c1919c5d0fff644f91575287f691e8494e94dae91eb58b77fc4ae9488eda06d04fd65b5aebcbca31f6c0fbabd5ac34d731b27988adf65a6b2d0eae3f2a1555acb5d68a84a903ef91381a0971afc86bc969e32e697897a2a82ccb2fbdda62a5972fa2b175f4a1f926a7b6ea0193df4ac5be2e8e9e268eea88bdf4fcd549d1929e74d12c49176b59e671f4f2a6e4641e451efa929fbe74d28baa8fa592973e3a8db52979c8dc4199d8c2f2fbe947a76459c7df417909857a6c61e2d78cc341eecd02a95bd411bddacc91d3ea0fb174d1692313c7eed10f9bba45a2491bfde42517fdf4a5929f4492491bb74872d14973741a8f71e39d6f76948ef768ee28f9583af6bcab570fd49992b963e4a38fcc1da5e73d66523932ab07ea8be8a20f5dfcab73ceb966c76ec9d1acf973a220bd92b3d129290405c71fbb3459d10c60f2144051347958327aca512a37099de461f8a18fbe0c55aa564ac8491e7ec8c5a7e16c71c4aac1c70e4944f8d822b388d70e4d16193a19bac80c4d9c4d7292f834d1b38b5a14473d5e95d441f23014b144b3061f3b64b242be43e4a287442eba6834f2d0cbd0c9a7894e47178d1e7ae93714864226890525c9e431ded0dc31bac8dca17a1e238d64f218f758aa9cba094a65627b96989e42a14a272f9d4aa35289e4a558f290e4e5a954f2902496c2d054324d26a7b1e19b4c5add6159965efa1796e114401024812008925c2481e0e869387bb4f291292a475efaca696ef9a38f9ec66314710d9135f820957cf4a2974f1b77e957e43b462eba68e4a28f5c1479a9749a4b7abb4b128be43b4a1f392bc7e8221ee30e99202d71788cbb475559510a788c4770c1115ec06354e1fbf98e1cd6b589494e94d63d47dd11a98d61ac33c658639cb5cef95a7b03d156129041c47ab980b149dd7e154969fd734ab357d72668bfef69dec18387e3fa9302042988ec30d49e1b1f5bb7736a63a761a8427aceef0c7b7cf06c9a751ed467dbdc7290ce60e5a849b6761a68d27cd8a436ae426acf571fea72b383d66b924d03593668075d3bdd9f0d798736417327045a98758bcb5488d4026d4ced398ea20e1d32bf3f95a50fcad1f38b36d8d841d1b46df0c3dadeea5017ec3a0afba385d8410c521770c439e79c73ce39e79c73ce1608df0067ec34a69d461d8bf45eea34bca9991d7bc6f8cbdfe7f933e9850d6107860ada980f16352482e8e373b2b85d9d6671a6a012a9a440402318d1a65ec2a0acee6363e4a68e8788e088de7befbdf78ee0f581ab4d824853689fceb62e42612ffe546468d0dcc001801c6c0cf4126c5c02ea372239b6a9d3da220a0ab304b0327c5b51718e8aad7140350eb4be5d991e626156e3dbaeb5565014d532448ea31e6204290c399578ca0765dd293fa5ac1884acb75b1454867d4031157526f3ea8bf531d7ea229e399fa1897d70e27dfef14632c7d7c71b3faea2879cdd8ac3d11914dcd457beea2e2c57aa26d448e98c71c6cd270eb8ab188658bcc569f4c705dfa62e0394e90cce8d0f6e9d6d6ec76aadef25b3e3cfda6cedc2a270f1eb9d1ff75491c32ed8d6f38eccaef316450ffd484ff114ab6806b1430faba9f3f878d76e88715f76f06f508fc70341327b48ded852e47d35bd0381c6b79be55bbefe10383e3eb807e2e32a700f16e26361d6b4fb33f18ebad4689a07db7a48ceb287c81b3beeb478fd1e2dae81ae2cdf2eced599af565facdb96af2cdfb353792e2c0a95070bc1432cccd619bc03fa8289f4c0a485f00e0aa2f86951c427d48ab3a86460ce9c825dbee1dda5658c0e4be6206dd38239481bfb875f6fbdf220ded5194a5f44b73d5bccb71cfedd2b2ca44b0adf6e90e5690d505943a1ad34147d8ec50f955af1a0dcdb36f3a8972b9f83f054aa7ab352e8a8d05d950a5f9c2a19299d516e2ce6bc71aea7ddf8c7a7a7c78950d59f383a75bf32165ff116cf3792b892a20cc71dd2353c0efefd68fb4b27e9e96860babf1c0793f58f837fa67ffe387c66cdaf90ac7a466e78cf79afd913490f0bbc9b7ff150971c6e1cc7711cfda56fd070e242196bd972141416a3caeb70184f83c7f81c1e7bd0657f83cb3c0e6ec4f7700b7c11eee371fc85c65fb7f1ae19fe86bbf899c3bcfb8bb7f1980cf8051e09ff5eb4537ee7084739c2cd1a7ff7139d7b816f81a762536902c78df9283f47fcebe5273a46dda8ebf570f857d00b3c77430ed7f9167098aebb315d679aae7bd37528a6eb3ed375dedb3d9b5f2161d566376800514014f067ab5e27ad9c01247a14914301fd45ceb4bfc81bbc6dfcf51a0f3a8dd73ef32df7f145b805be871bf148b8ccbb3cc6d7f8119f845fe033e0df933838fac4519cd6bcfcfb5ef92b39f9d518a88b75945f856185e4593516ceb3927856069e85c4b3701766bdc7b38a7896eec2acbf563d0f94b05136d6789f79fff1ea61c0dcc180e93a17666d985ea361bacd9ea91f3a407cd78192da33658c21ee2cfbd78eba588ffd4b475dace9740a994c2693c984b211f1abde85b1727ee800799670a33c123935533cc121837019535ebbf900f06fa3bc0f1608cb838c0015bc7f1bdc7fd7f0dabfd71be66911ab5eca56b259157296b2a56c30453ccd8e0c8eca8f0d776b4dcebe961698ad1dc6d7788c9f79ec6d5cf6d765fec65ffec4673e87d3f896d7781c6ee3b3cff03478ccbb3ce541ff3e6ff37b80db955bce732c24e9e968404f7bc3692fa6d34e9aab5e2e2b94a49e8dd148b99de35f475a38fe65e4c5bbb19925e9d14077c334cd37dd7c999f49c3af7a35bf4272c2820539035d8c1953b6db78f7d7d3c4febaca6f997f055117eb4f6281c8ad9370a2174f8c7fe172a350f9f2729eee23526e3422c1c4bc70f1ac1c7b5a9fe1593618cffa41afffd531e30ccfc26d7c0baff12e4ee35b7ce659fce467787e192ef32b2efbecb187798c3f1dc6af48f91d1c3fe2fd02ff46fc5be01f05c75f14e12e7ab81963ee14e16feef4706fd1e2249c8da9d8ecc9021a536962d4dd2a5099d780025d99eb2e2cc8c69c47f2028d3916e8695fced35da52a4b528e96223de82dfec573f997917fb1fcebc80b88ba58576942c566adc3fe75a32ed6cf7fe95017eba3ce6ba0bb8e05e78d2f2fe7e9ae5295a5259d96b26deb2c7ed55b21b1e7c9cee62b578592daf33bc9198a8b305aad083cd915c5a4f9d83d1e9c7d2c8a60e1bd2b5bf52ecc3a089665cfe665b36ada8673926e4f95bf19a6f277e545e56fcaef10e12844982b241676cd55cf48595d8cadc0629c2b545250ccf718af13578bb53251c52849a1629c4c316284e0f739cc46f9d7d37dd27299341f5f0b643ded4bb2adaf9ef6016deb26ab1e4bc7e27985615b47ad7ab4970c68af1dd0583daa4d5bf55e2b78d9008761d3563d707cda4b04b4170a68af166cebe1d3b0154234d60ab131d0ad062f8fd0ce060a851e30b16f68a7834ee1a39fc9ca41fbcc9b243d37497ab64e2244dbf12649cfd6e64d9221f6ecf92ebe9755ebb1b255cfc26ca6ad7af86d153b7bee54744e3e84b055052fd0bad01d52afcfcf45b27bdbea9e7d79eeeed660d34cbeac3555d7e836edabd1de570be9ac11421f7b4790bf13042b9da1dd864076e7eedc9dbb739fbbabb3f31f1fcc0212add6da16c651ff5e4ba1b3383a4316e668ddc569ddc569ddc569ddc569ddc569ddc58535eb5dc0e972cee7dae80c0cde7b2d126b96ec6c66207be62216661de6cc47ca7b75805c9d0c54eb0de495a0bc97622baa6e6b2ed9f4a66ffa664febfaa6b2d58ab4d72c85485368a3cfb67e751b4ba1b3a7d5b57b816c5a4bb4a9eec3d0e7863ae12e046265e313a18fde853e7a17fae85de8a377a18fde853edb8eb8d0a7bcba5067f4c95b105b25393b9180d27befbd18536caf88b6635ba0ccd3b79c911cd13948a806b22d0d0264d34bab69553b0775a1acd6b50eeb42dcc598524ae9b5ad18be37fd8485598da3d6b3112b038f58987522448a143162c41e3982646b1c18644f0b86a0be41ec89bbb71087bf5071a84193bd4b706aa3f04761b96aadb5d65a6b0d3eadd15a6badb5d6fa027ab5ed7741f0662ce82698d03affa9c5ca44e5bda397a2d6e9a4d2210297749e5b1c4a949a0a9191c13e469b8b20d2149a58dbd65e77109434103ce153cbc66e98b3fe00e8b45c846dddea26fc669b4f5bacd9712441495365d979dad382e0bdb5de7aeb3569dab3e7d192397f4a8b8dd12e14f63eb1ef0d7281ec7b7f8cae5b245676816ccfe47175e0b7e81194201078815417e8029dd7f67668de9c084a6a4ff042b1adad15c414b8ba219a033a043a04b5088f8782db0990d4a07a449ba03c2d218fa156944d03d14044b9eadacd9011832ee26c0c567dfdd3b8061f9b25fa8e9083ce0a813811e03186aadd818829cca626a557a7b431dae3e1f1f02a499253a4784a3c53a450a512cf14289453b284429dbc4424c2ec1293269e48d23c9924e9550a720a1e1b2379e40935050fea419356532929a64879e549a578a9295028d4140e7ea52c04f7dc2aecae44c596a2ced05d322b4fa69578c84b292f392d7ba9fa2d475e864e2a79794d1acc2eb93d79c94953343ede3494979cda7124b1a01c993cc65d86dc149ab41232e424d2f12ecd1d239197a49b4c260d66d79489e3b44c9a628a3a232a3d548650268edd2793e6e3d6908f4c5ae5d9a53a457d29890f7a09c4a249ab2538a3b1a3c7f60c893df0de417a764ada88bc96261fbda8542a9d92b3d2c8452413db93741a3bfe8eca471f9ae0e71d5559aa1eb4b090936f499beca127b9e8474e7e28278a31748a83b749a7e0d93436654545beefcbfee173080cc3fe61fc658cf5f7895e63683ef6fd34fe72aed56c145763ea82a3b8f6bbf6b3d908b6e29bf1cda06b5007f60fd39afb55d7919a906ade22386a8d5d03bab6c09252999b349cd3adcc2a1f5d3443a67ff4d3387fe0673f4bdaf04a928495437b766d8e3df2a6f6a4a2bcf887c6bac634c61697cb01776b0fb7821ad4a3b1ddf5d420bbbbe96cf1cb3a37bbd3d13a22b8401fd6e967e1dad561fd374050b83a57047667771054b980ab2bc88116610ce5d59f49c7505eb7b5ac3da776b21892907bb967695ab7b55f9ed2c67aa9943309ebd56acc3fba91ac3b7b9ad41ceec2c0cfa45fb54d5f981a05b92194d644ca92ac3a190cf90bf948f6028924d2a252e72e642ee4206db2d227d24364880c91213244864e3aa49de96432f95464ad694d12331544bb5418faa0c30f103f00f1589111d0200158640ea66fd72236a679a6a7716fd0e896fe4c562a3795784a65527bbec65a6a4f99348c3af9899c9d5a75af9ed6b8c81c01219873f6cfb34981136f4dda407757679dc39006ca1b126fa974c5f1d3a50d01b5542a2a74ce5e731428740417208102e99cfc699dc9f069fc969ed8148ea4907e4e7102b46b2da646b0470606f626e189c749671c023f9d595c715b0d73d2feabd58a6849ec8b75489bd507b4272664ddf5b9422cec3abde40ce54bee7f72f34dfeaf6955072abb4f91a0b295d8cbe98c13c76ee94c8a63c714a4b194631f69cc1d7b49632ec77ea2b1956357d198e9d85b3466e2d89dca4ec77e52194cb6c2b1cb50190bc74e43632dc77e83c6583216c79e0395b554dbfefc0ab1e71db281f273da15b2afcf1d72ea1293fb97dcfc21707a5776c1376960595e2f457b4721f6a4615ee965af5cfc33d12a2eba7c4e14f70917bf389ccbc559bbbe6e95bfba7b77e4e5b127ad56e472d9163708bedd74cb3e49794b5f4a473da667e9a907e959baeb4b7a96befa133d4b37f9163d4b2f79a72ee548cf5245cfb2743c723c7271349658f6573a1e392efd034b2b407474c0d004fb61b385a1d379736eedfa17125163e9513c3f0b23476ad996756e417a1786a4f789bc151bc56ad92363cbb441aac7389cbbb0abe3d9d988afc2b3ebc13e78c8e396c7401746e21b75b925637e949cc8e5237256626ed5c90a719dba3e25bfa3e2a362e2297266e252795a63625a22f6674545999d667f9ee472b15ca32223d20259206bc4f2ca929ce5ffed7a7c0bf204d6ad5861e2dcd5e524e55942b9899ca15ae7d31a540e6cda2acaebf7dde66ebd4449edf92a9136b0ed32314e03b7fc272dfc6be1628bcf89c25271b23c2754369133ed3a65a185cac2ca45c5c5b43a3bd67661368bbbdd6c8ab4397bde9cc9d64f4d5b23776a4fa552d523352848a5ca42fe94899ea1ccec04d628aa8cf94d9bf59417740449b6659d7cbbb05cbb3023f6ecb5beee96af3f3bd587e52bef56207bb65a2a95fb79c2c0b0764a885c5c31e62f6d169f6db90633f244ce9e4117c6dbbaa65279cbf5a2af9393fc24213d3dae93d1c5ead45faffc6515bbdd77f2125dac4fdf9dae8ca3ed7acc3372e4c464e56c326954165e1e72b19ad4fc176dd8e79c855d3731827ba8276c0c0a3ae3732a2a0fcfe73f862e56148a72452c8c792639ab351f318259c693e9fadff3931bf5181b39d2b3a7145465569daec4da276dc88d6fbac632e61f77eaf1ed310e3f61f2188ac73c17a6bbb020f6ccd9f3baa94bd27212b7ae50d45c5881dc1ae409b2e240d4d71ff7fab771820842e2d61c7b5e5f41d61acc787a7755a62b4aa7afc4959367937f27936a37e597c3c8d9ebc5cad39a570e6c0220e3d06127870b3b3f0217769d05f9c38f0d779f9c6872769e2f568f83e8d3c4462cec621ce6d99889e9068de984c1c8598ae6a260c6fc78977cf5345c66c6aa8c83c0ee4efdcee9aedf5171d863de8ac741b87761d75b9f6baccf39a7af4c340b95b9b3c24ddf03dc25e60e0b17cfcf898209af397d85b40937eae2f32b8dc9bec2e2e1c61f8b2f2fecc2c81d70c53b8c5461de956110bcf12ebead90362f1be3caa0b2e262cc6f59f2d7ad5b62a41e07c138728632f12d0bd7c5162c30994c569242c94e26992c3bdd9ada18c69ecb112dd7f675721443bc8caf90eb738754dbd7032804555bd66d8a9244c8876975c8808eb2d3949b244488d8fc36d0223be79c69f66c6d919c79d9da5cc45abb6f92181173bef856dc04151d0a1a013f1745eb634f5b2be8748815624ffb09819ef67e3db987ca6a8e5fcf3b2aab1bf0eb9987ca2a137e31e0d7738eca88f0eb19476555037e3d07a1b108f8f57ca33120fc7a06426312f0eb5987c61ce097c6725aae9d61702ed03014eee70386e082b60b3a711ddb80c6c0db0e3a8387df09f80571dbcea8c1af5b3ad3436c88ba0404847840107edd69ac027e3d85c628e0d7a4f108edac107b0ef9517ed6c70ed13ec4abb810ffc28378175e819fc129f0307c021fc3797ccc77bccc692fe312f81a1e819ff1cac41be175036f01af39ef03037f0127e28ff0bac4e74491e255039f13c58b9f3804624c7f008ce380fbdd016fc371c0ed0ec4d3b03d3646c2d9f313028d915840cfcfe7ca48b90b0b019591aa4061f6ca4840176663a4207b5a921748b9cf8794fb7c48b9cfe7f3f97c3e1f52cf06667f1e80477100bce936fcfb7e779a7ff98c3f71199f5d14f3080303b3c54a8592e6bd985f80bff81f1ce615e02e3e013ec323c0fde9b6d1008f3d033cc6bbc3781fbc86124af8cc0ece021490a4a7a3c1cb96f9ec0d608012bf8067d57e7896029e95806721e0593a3e3c0b88f56c6ff65cc4dbdc8ec55d18cef2fc5499073d460b22ecd52d35f4f096beb45ce5313d5bfee24ff46cb57c8677ead20229ac55d2b3a5a267ab05fe166b60d9f9eeda025b9ec999cb45d1ca388223d826c9b03cb748148a41831bf148f870398d07bdc6d7b88d6fb100618262475c1a4641bba405ba70399d48da7c4da83c0e0ee36f788cc7e1b177b9ec73b8ccdfe0467c113ef3a0d368b98dd73ec3cfdcc5db38ccd7f88bbff198a7a1877fbfe28823fc75dda4c1bf26494f47032438dcc083c3cd977962aaf28874f32b2436b391eb8238e2ce29bf57a9d993d4bba8de45f52eaa87eaa1563d6a4f14ca4892e40c74a9c614dd7217ef82f1d9dce6a37c4562cf5ecfe6d8b3664f2a6a60cb02d1d1b141ec4d2452fdaef12f2447041161baedd5abd99327e7620618af1d75e940b942f2ac5a50558dff743b2b87b4b94b98c4fcf517cb46dac0f63559350dc4fc01fcc51bc061be00eee209e033fc005ce67970d9efe0b1d7c163fc89c3780178ad394aad1da0003c7cf61dfeb5d3e15fba5a3b80010a40800108e059404ec06aca277fb23f9044ce74ca552a19555a3b9bc8d9f5dffe7a9aef572e88306bcf85d913b9537717b6ab3f3e954756a01f20939d2bcaa652aedaac54094a95b2d9186dd4e960bceb66e673701a7f83d7781d6ee373f80c5fe32e9e068779d05ffc0d8ff9961ff14898de73f8eb86243d1d0d2cf049788faf353ebe9ae44ecd3f497ccd5d18ee078743c6eb69fe6d40f900788fa7353832f08ef3db85e570838e1c38a4523b5dce743a85422693c9646ab16c3f745840489b6faf7a361efb1b1c34de65e35b2efec68b9f794c291751849b60cbe53d7f9da06413168ba5e3e35937d7b9b01f367b7a8ed77ad42595d2f5426e7aef657aefc4f41e8a994def7da6f752b655cf7683869ad7bba790dc1cbf87d9b56cf99333ed4fde6095cfe1061c5ce675e4c071633e4a0e3a70b821078e1bf3cb8df22e1739d3ee226f708d8be798f2351ef3d75f3ce830afddc5dfb0f12dafe1f299bf0187cbfec6636f03e34f5ce5b307b62612f0107020bed630e02b6ea7de2ecc7afe81c0575dcdd993562baab1c3f3e0e0db78fe99b3fe86b79e06777d8d03f1b4a6c603de738ebb309af71f36de6d5e9b21ae82d87c9b556b62c5d8e265fef232333ce66bb88b5ff90b19def2317ce5679ce5630e2bed06b80b0c9d951b50b3e9dc70a6dfbcc6fb0fb7cd78af397193d1892d1e8be7e2651ec8e3e9b06a9765fba103c49e377b0631af49ce504ed2878242ce524e7e7b8bb73183c33c4d8d19322d966bd3cc60c3895b8d19322d962b85b4c99bc55bc8598bb7903778c35ca42de30ecf83cbefecf0c285eb6c4d0c8153521a26ebfb581f2b538f79cf79af3971d3b5e0356103499bbc61a6cab8a2071a6ff135fce5affbdb70989fc115f0407802be01ce80f7c15dc2196ff998af7c0c677999c35e862fe01fe03fbc035ecf830cddcd8919322d96cb793f3916469382645b4f416263b49431a48c61867ff56cfc6b57433743a6c57295329e558bfd60e9dc1c66fd000700d1001d6993772d63bc053973f116e40dde2ec8fdbfc383bf7ea70777f1f042a707ddc205e3badfd5612d415d94a02fd6639e95c3b2fdd0f941013a063c8ba7850b93551bb7cbeff8e0ff3b3d78ccfb8f77d085e93bbc0dace9c1f4db85bdfc8ba7c54b4f1637e8ffeaa12ed65f7e4ea26832994c26132a888d8767d52eec870e901b4c8befc3edfa9a53ab3f6c051243561d9d079170411ad1fbfedbae17af173856ef173be4f400839cb5982c1816c70ecd4e870bb30e83ccc19e30481beea6e13460c4c490b39d1dfcc578f2da5b7ccc5f5ee6fed7615ec6ff438ff919eee265f88b5f398c8fe1b09ff11d9ebafc4e0fe0cc4ac6cd09109c31593595dab64e4b419282a48719ff3a22e35f414edc64b11a34616b992cd36566f333633cabb67a56ce05c31d3e1623672f1759e3f778c3bcf0cf08a36ff1dfcf1541169048655996655902027b568d95d3f22c1beb870e7d71e17a96cd9ef67bc5603c8abf78d35dfce931cfc277781e1ce657f8cbab788b4f71f91d04f8eb7776f096dff1c117f0aefbe19d4701efbb04bcf720c05d3b384b0fbee283b7be07b861e64e0fcefa1ee0363d7f0f709ffef9d8984acd0834a6b284f34e40652a2150b1a9dc622a4e38efc7793fcefb71de8ff378d6c5f35f41af23af15ffe22da1527be152fe75e3a984c0766594aa3841ba75951bf9f2729eee2a55593a6f5b91d3523adb7c560e8beebf5297cf595ac02f839f0f5fcef4ca4f0fbf625935564dc7aae95835db0e2fb3df5b99efeb0665ecf0e02e1e4c56ce0c727662b26aacda8c4b8b0c16d8c962854a0a8a0c5346490a25e364922183b5c35e99341f5f7869acc9d358399e9d2bc1c2d92008b7570b76100696ed858215c8c00a436c2cfc21128636568d5513d2d383db142509928f03d87a8224a238aa59b72f7945a48d26c7ecbafc46fc812290acc147968115b9186691c845e44c081bbd452737390f2793079e6d7df41b2d8a9c92365a93a157d246889ae486e2a03b344507bdd65a6bad96d491daa58bd65a6bedbdf75e0cde30c639e7acb5febed02c6f40963708914826e9207953725289442289b039d9a5934c1bf1e66497e453fce91bbd45261dfdabf94674300c796aadb5de91777978d6e211bcf1eebd99bcc9f8ebd91663acc91b9c7b397fe4cdd5349ddb9634c1310765e8a1d1c5d0f891367c9f83fbfbdcb272809b74709334da0de9a3f973420bd9cefc837ff6d38ef0d93cb28e644f64c8ba9a831de820eb423b21e22ee413ea09fd849810eab9b210d085fdd85828c89e4ca0b19017423ddf1702bab250efc2826c4cb485bc40636228248a31a031a228364163a218124551d4b9321da228d224883232a2288aa2b84365278c7b09ca601e75b1ae23ee6a30722a627cdfee0c8af56b28874d16c63456cc1b977bedd047ebe06ca51a8b6c122e79876210cad1175019e8d633eeca405315a2c1be2a9ccac848978350eda1334ec09e7c8b09c2a6b546556585820d81b0b53c467090caa3fc952a199db0ca150b0b98abd5e2427f46e59b9cda99386ba230a94e2ea29e6ed4abf84847940b593b2bfc5b5959b122b52275f2759f2b2727b62445bebf522527ac950a65227a915680e8e8806109f6c3660b43a6f3e69cf0aec7e787883d792eac24955b916ab9fc7acb7581781756bb3f2a359b8e3d81bccb63dcfd41198dc8196ba57271655a2951fdcecacaca53e46cd55ab14e4e5627a9b23439f9fb7389dc2237c8c4c2bf120bf3f22eec9ea9142b559232efcfebc4bc403f25a994ebc4d2a8d39bbeda2bbe5a59b1f22a4995a44e582726af2b784a0be77452d8930a7bde1e9fdd856128ecc963cfebd2e272e5ee4feefee46a2ab0c73d3c178a223c552e777f7227272c48afd759e6745240914b95a460278f73ac974967e1bf8849b4591ef32c4c0a1610d6f1a48ad898cee9a4800265bae93df5b8e43114580a1eddca4495bb3f2b257f7fec79fde42fd02d728ddcde85dda00bbbbc1bc4822a49c14a52299692d4cb687af7fc7af53b2b5ef23ba7eab46262e2c2e4f54a95a472acbf44ec794f2a282cecfee0d84ab74a398c9c95a430eb699c983232269708ace47756fce4775638cbe39ceec27697b5d22613738785b8024bc152278b1ccee5721768458c0b1897c8054a99f7e7fec462b192142a7632c5621bef72b95c2e877de80f0e7da0581d5d107dd05cf06b356df407fa2d7f507e264d66830e8a6e53938820f8d9cf18e37cb5b5dff87d18fa3e10f410fcb249a98b493385a8496838360f996ded05b112aa2d63d08644f1f412768010e7acb5d60af82d6e711c4551941d33715db416679b31feba4710acf8de7bc17b6b8e5bdbd704af082b01ab60e83487f2b3d82b5452423ad4a598452d7e222886624814c571cccfda2269b2c591588ef94bb648124d60e8a221348561479139c031ff698b271125a6c492d1164dc83d6e31b4c513707f7a874f6b445344115344957185b8023b45d9b1a62e180331f0696fbdd6669b9164190d0bb34e83f6c474e8819ed6451c57f6c385d9206c0f3446c468fd92b31c72420eba256f74e84c803521ffa1da88a0b1da04356bf8350634c6ba11b6262cad2f9880a9a1348656a7b031ac2781c262f0d5276ceb655973b6b43105f62db7c6f5d8d72b0c579c0e798d0195ed504deea83ead7708da28e07a2b8d1b306034d05786511cbfa5fa42772beeef4f6519daa328636321a711fa917633e09269c622eda1befbbc32d2840183cc4508557ec3827e611766e2b031ecd66f0080ced034ec696574b6d609f105b4592f515efd819a9c81df97f3282a9123936357b5acdb18c9f1b93398733e4172961d1c45e4c8c54cce40922e774c2a13a9248dcad1939c28f148ce48939664a934f22bf2d0c8a422937c5a33527b86b4d3ce0da3cd9c030174c001a1c0a8344c58eb92d42945020000000000a315000018100a060463d1581ca8a2e43e1480117f9c54604e184964598ca3300819658831841803004004406666441592259a8b57f7a4033afe6bb10fcaa4236fb53bca081e2e5d77e53cee8575c86820c25429af2228dc690d81ea05b1d2768fa6383dbfc10e25b5d72f0b49ec9ba9874713b9e7893f9f0bcc7d4438f503e3fa27bac62e6b8aff042ccb0685232650b23a0361dc20befe7fd24eaf28b2a05798f1c732e6c93cb90a9664e955779b447bc68109879ca9ec7e6f558de88f2eb7b09ce44ac418ab78523b62bcaa198b655867774dd69068a12f87f00e53f0228965d84e1e22e3a51ebdeb405c00a75c9ddd5c26e997f22f53297e4e731551ffdbb73254051ad69e424b011e16e9c30938ca0c53d85d7ef8ef251b0c91ed4e76864c69e41843a5da8a6765b50d5855d984b8a75179fa58abf26e8930efb20b752f1d83fbe84edb71d7d34e29b82b5afc6538d5a1dfd887d4c7ce2bbf4b487cc30bcbb7a34e88a0b8d44f51e3426255f8a6cd22e5d8032f949557db04af9a3af5fc42be425e93621d25d9de46b587a5b306b58e99102cfcf4d8df49cf0e7ef0bd9ee23f004b0f2116fca07f0510d0c61284e238b16a58c81045394144687563d34cb6f65e33362e6c6d6e76e43f07a4d2ee26d006cde6f5015b16b14f552bcf2934a98a78a98242bb520e260c0c2396f7d1e886d1e052605fbde5b0c0e434a970ef04af8eee0ec820d12ae11fc4c0a78395ca5ffce85c2b1750bee50cfad7759e0909caf90af239f4d016501986010a6313406e84fe0f0f57ff889837e23d7afecee3e3cb452b037ce7bb8d527e7c61749242468f0dcbb234a0323ae24df2d01ef3ee46a0db3ae7286e62ba5001588ce6d6fd380a0ece1dde5f62360aaf5591ab9ed457376fc70766d080736a590a8eca06a595836100bdc2883772e9544f2139fce52e5801c1c08677f32258dda896d1cda21eaa515695f2f653f53db0f32e17a7948055170e80dbe394540460882ff5c02fbd0314e2348714f432e3320ad0094823e7fa434f72a3d6f3aab449aace6e2a82ff1510a3139b47d5ddf029450098528c77749330cc1d08c946368a1024590cbb65b47c3e7f4f66754072e2c940b4b3a5b757fb39f331677e733c1d12a43e3a763e3547c49363cca3e795f2e72fe74381ee091643e10c9c82fd87b0b7235598de4c2ca54ca0ddc7f46e8e12f0a7f63609692140e4645f689454f02664f880791b4df1aa8ff590dbf17c0ecb6480bbfe069efd8e42c47b6af6270aa28241cef74480430ea5ed9531878bd9903a32e56ac1aff42030149439864402ad15564e5b44dfbd094c3bb5e1d3c5d2f5740e0b20fb232e1ebba2d576b7701da938014e2e9f80215ee77aa82f5e5137c6cdc2c00c5d222f82e1265a797eefd9bb716fef851259d4b6ef1a8bdae438d1f8c1aead1c3338bd0872b288b00b27ff9150638a90060814345a4c67a8a646fe65499208c9a887a66fedf36d20e3389b1fa8dcec29a81da2f7ee99722b338501be1bff60848bac82c82cb4850c798440ee0e43488f47fa2ffe0cb8ec9198213c1e41b01ea7cc4143fa9888b3580010ce993940a7044dfc2faa2ca4f27f69aa01016b44bc1e7a2a003b59c414600b229bb05321a4c2b27cfba7f0836b1e850327be1ea46dc3082db145d21b688a6ac0c4edcbeb4b9260f467a58b34f58f7c7186804ea66ca568aa8f7afe90008584e61effab25879eeb18aec23ca973c5907dbf013cbe4574abc1ef82dc83a476733b8f7f1928bc2958817d71ebcd876bd7b050bf464f15ca3cc893afbc89af16c8134f30252b7aae0dda6082d333a3adf7defe8cdb27252853e2de845f93d26e294921f8a57b83ead99450bb55f02c90891020615e0b33c4a26f203b3b4fbe8e2fa84c08c93aa8dffe94427676ad5f968dc89e5e8b63ba0b8f148251d2d1aefdaa9e6c8a9d3feac9ed1e0c7ec3720cf38975126c48bed1a663a5566ced3b7fb47ba66af6c6b40aec3b25737543426badfbb199deff82217c700ba2e6371085f9767ef5fba50b2e552743f0cd058036c7f1804d06ff446b086ff067e4287cf28463d1b79f639442fa0eee1196beef3d7dadd2a7d4f733677f2b1099ddcf1cbd2b5311db5bd24a9ec6eb1b0b203bec1258925d5340b26191d0866e92b0373438ef9d62e98c8545dcbe08de0dd0788fd1d31ddb05d4db0603e741add328c6f161e6c12e60ed1492b390122ff6bf85154905221ac21b9bf2d3314f73de603160010d0d39ce297608a8c1196ef64943394b7e7817437ce37713f81c212aa19b2b4462faafe1d49669d88e26293e418f1c5aea65eedb640fd25894a8a28a00b5821289fecfaacda5129203265a14a2020080670a87f884ed410789a481442f5a500b0ee1787a9bc82737b95883d514548098741c5c673bf6e0ea381c00f2a930d19348d2145235b7bcbaefe0701b0d52587198280953d594068dba4f7ef41f9142b5911b6bf113fea89ce4c73a74398872572454f17d1c60ca9eed74c237dd1da24a6ae03c2b57193d2be80756af08cc2034c6fa6b07f08123aade67b9cf833737b7fd3a3418b919ae8404a769edabb7b56a99b162c68e662349d97ff2616eff137f5c1da270fd4483b9305163225b0efabbef41ff717950e10fd02caae83a3a51dcafe9d8781821391baceabc32fd02045c833a9e053f21121bc31ab8b780962b0b32a5bac0a6040369e8a20039e62489d0bc591348b417d92140f220405788d60150493c6f840546d8d869041b7ec312e543a63e4cd39c8b41f30abfeeace65beebdfcd9d5ad43086719b57a9757659a149af79171cc4afac65dfd3b3e0a462fb7f60c04d950fc5a03558929267821243d6b48aa2dd3453231a049e7fefd717559c89b817a0cc58f90f5d4433e6e0fe66ca6e1c696f147d4901737882b1697a8c1008e7fb0060103e97b699143d4ab05ed64f367563f92577d6f51fd3ed7d467037d3ff1d3846dfa6f82e12067fd7b50d2555f93eebde7dc9bc2198f82a87f418d618f1b8fe01475f7ec470e2203d447d41f1784b8f4a27ecaa9d47ff23858db2f4ad108a6a95ccfddd44f1e4e5d2702925e1f4288ee898b5f2508eadfffa0703d76f0610b336ce052874b784c4358f0e3df7f0d4ba20f68400722495a949adedcdf75092640dc1000904bb309fe6839d3b7183e148f1c2dd8ce5f2dce0c927f60eedba21fae92432d763b12d757d89286e39307d1a3178086e887437566df9a1cce35bc5f0f05a7b2853e8700c1ff032a01f992ad9d737021d3c0bceea178b0a40003d9ef94a2c76c5eefa1caa4657ab4ac33d6aaddeb704a4fde5b1a439dab374c8f856f5168afe2471f6bf4340a9e85fb40c07e1a1db6cb372bfdc06c64d736a49f4e09aebe94f75ed26fac66f3e5b36a39190ddc4d1eef74efe5f62fda9ac528ec56aeedc3f3c4c95341736c9f8a095399b775fa6161fced97cc5a7dace50ad14a417fc7159ed0a15be3498fb22eb68c5407f838281b492110c516cfbce32f74bab36e65819e68fd4914ebb3cd217f414de11d0aff809f8343c684f6447a7a30061201f38f260781cd3f7526245dbf6902311134ca701d307385fb7c890c90345360f89e8ac9c7c02eee8c133616207d0fad0b1c107fa1d63313a17508c1d5a40f776f6a3b58975356930fda99639cb172946c513b651d058af7d496ced03c8191c32fc133deb693967fb5bdb23b007733402e4b115b6ed94ca62edc4160e16912cb0112eb583df86fa247335467e3a942470905ce0cb5bdc14c5078349a499cf44dd8c8592255c0144679cc69ef910d6aee5b34cd65aa0c67e6adcb342b24f9d4e3af34569b264c9e83d0c632dbf6590860a5369767064a80eeb15d057420289691aad427c637350ff81636982495993fd0f1a45a4497174e9e4b65226929cbf652adf0be7d5f0f6570667844031e3e001353430edea862007e24c082c898f4d1e7473287863e46415aef8a668cdbe2b13f2c113a83434b2ddb27cc647c31eb4beee4990b4ac8e43a4077d16e05a0e00a03511c41bc858235c64a23826a0d1e150b4dd7cc50be02045e3692e1a96b9a9538747023998424c6ee5c6f30d8d85e936d42a6a4e8d79e06fdb79991c804ddb6326b3de4bff77cefe816cc51269eb80920259e12012f07e12cb95be187dda98224fc13387d8caad8fd90c998c3f877e9e2940f08c80fe86fe60cb06967d6cefe32a399f0cd9dfdc83c46e595852e3b38d341a9bed51e12ddcf32e09c0289827d373e900a07eaa8d782bb3a0327624d44756ca80b64e5af810b91b427bf71cca900f6c7a190fbbb004659e3da025d6e4a6e29a47ed369d5ca5b87d169a734269f64ddf6436a4677f735bbc8aad728fb319dc658b62782aa84c1edb53255bad96103471963994664b23ec3abf79548696f7f38b0709f4251535bf93986d613c6f06da760bb185d018200d5880791fd0d98d0c5bc88677175d3eda0fa4733c001ae2ee672fc13b15e3cf1a8d284cd3fe3102e5284dfd67b4aca37fa31b2f5cd028169e57226a3003025d3248f36df8699c9627fdb50835d68a7a428e95a65319c637dd34602bdd9c6015731e614058851fa9249ef3425bcbc03e872db118534355ca9558c02e800500307d7fb3217d86d94ebb207bf567e7b8d49fe40297905df3c090f6b62c2f1ad2d3eda6fdcde6f603fd065609218d9cdf6f9c1fc3556f5485c7cd64c802ac63ac043f1152394566a195faad3af8639087a7d5bede18a3ff2229f3792467cb9ca11490e40ae5b9830432cc0a3a340b95a29549df703e2ce351605e0b43078d13f207892b37fef4f5f8ccdf725a35d9608b1cd001c16efdbb1c81e4573177a9b1b3544f14b2c9878f9486911507e8c1ae6c46955e97a804afb2faf6499d9ec37e83cf0ebbf84211926897426454923391cbc504912b61b05eaf48a0b8eda27ec04f42e66a6f61f740c77e7f745f2184b00ce12e6106a0d1ffe62085af08530343723ce4bb333624ef04611a81f9d6c3327f6a4d508737823efb3fd822efa144a84384e00554980e1664afb7ac98a2cf2b279d75a5215fdf5fcd19036e50b4be61c4f0805b4515ff697e62ea04ec79064238dbbd2fb671d2442bc951b6748a78be6250d42dd42d77f19e5b5dd8cfb53ee0d7e1007e87a4aab7f6310d6f32e947ba51f02016177c9e913dd70cd4deea4828d88ab32b2aaa026cc991bed0b9c419651fe52e4d03a04edb04bef2bc04df1c6de2e15f55375cd2c48f050f324e88b78dde475b1d11834474b4b4e129c0845716307b037b0d0636647fe71ac96c02d6e04d73d2310f2658d7b1718c2ebd0a70f29e13d319715a71a10b12f4648c9ca1603353cba5e3e93927356b58f4a9090984d91763aea24d04902beac2702473ee5b96077e50adc5331717a48261e5814b57a5a4f0b46d914e15d46589e2800964cc71f3f37c1e071ca2ff4b8d74c8865dd2bf78d4730c8a6f48fb0ce7e523642e6178c254c3682b460df2846a7c7151d758d34a36c3731cb115cd9ba064d4b57838db09303c1ac02490ef60272f4ba309db5079729c13f04e00fc296ccd179cb90c8d93d12c6c62881ac18775614738d8d453e45d3946c1c0d7e8a39c4368fa59318d04248ef3da64e748b3f4a161d34f3bca6f57a6eacab7f8b35717e993452c822799e6ebe86f263328a6282e91b086ea084aeda8dbbcd8f6cbaa8c5c1bcb0a566805f9b0b1ce15de50a19cd0f27968317b3f51fba2b0a9ee94339bbd8e75d7ae097f8160272813207723b0a3a4fa4fee659422a74544138a6ecbf6b249028fa690ea8bf65bafb224eed0b1bf1c1d4997fb5d3b3b677f1098ff540fcfd7626f54de5b90adf1043cd5ed0a8f079755714705c365a0d317eca753c187e98095a4714d34554c3e729faf882e2fbc223ccad637d7dce1d407f0b0806cd6384d3d4b436ccf20d6c44d90230592e408db9cebe20a5db935ee0294791c70c43b56b550833caf5dd37386acbe2b5e07dec36cd6516982642a564cdef6f7888587def5b3a3c37ff09460e12d741c28223b79756832f546e6456ab32b9bb051feee9ed87e8545d2687baacab54661745250916087bb890421241442e6a94a0923561525690bb2818a412e940ae9afa0514794ee6fbba3a22a92854311804b45b623f2d48e1e6ef8ede9c4c72a0faf1c0b1d9ebbd29936e8202f5b63a17bec2c5590390ddd92c734abf90417ec75eb02e2e0d59b3c69dd65c732d245e84673b9c9ee8a84573c61134009e4f662c38fd6aecd97e1549f74573a2c86e1bb00900f5ef3456dc52fdda49c052c151ab889c220a0d615e7a44bdb64c00b149a16d35e0d02149bf885a9dc9e6ac1974811af456e24c1a6ad4c7e8380a7677b6319e1adc54a88c332f30d59382157501db71bfdd0e62fc582d93d066448172a68ee112ff58a76090ae8938fbe4dc633b2efe20f6d2fd6ea769fb785ca077b12b766cdfbce02d1993cc3293b27a411d2094197be1d2c579fddb8cfe2e8d126009ab67f3d80213ae13f172e009a1c7749eb91f24b327d1ee371910fd5f86b266d93e70c10ac578c61496f9d287900a2995ce3f311f293e30e6e14346d4a80ecc30714aa32f24e3d73fcdfa4378507dfc627d067e353652cb29ae1fdc7dbf259e8d759bdccdd4752ec884339055e2387a9a1d4e54b21a5359c1b94b687ec29f1758987bf3b2e7135f17326a07fdc28f9897a12aa69ea28f90124108d8f32f809aa92007a27439b649ef1cca04d8e2ef9fd962d236145d5ffae7c9bb3cbf39405d02ecd4fa088c3029ab7849278d1d1470353edd0a8bacb1b6792e5f9bec67db582bd9a55ecf9dbc0e92718f208875290326896ce9da9225599d1f741ee0a7c2c2f2315fca924993f2437285a0cdf03d385d30197c85e6a47963b165e428667658b6112d60fef5f572af9f058486ee05b5c2c2e9408a522a38d556d7c2c23e08f81c883cd58c7f0b32d1a28a7fe0659d5f6fafef3959f8b60c9447d6a3df9748827e3df56c9e3627a9026ce110c858dbb4640056a016afec433d96608e0fc3de06413152f8f58cfc7aec07617984e5da647591e4d4efe4a13a98ceb8af5bfb8ca8a844ed36e4e5f545aaa48c77efc45c11544b4966f42414617110026184c2c88dc3290ecca29f3da15271ac60df0129447f1c46671e04bf63744f6c46ddd69064fcbf40ec56502bafd85ca9c6e248e113e2d6c8bd0439f295be0cdf6e54a611b38aa99dc4ec55171dd92b525145a28c3b81f273ca24f1faa59bd1f2b2e4eee35f58a99fcc982762cd39984f56dc64a867061f864b1ced5510e010c34e5a4baaf69c769e14398922653ab79338ab79b6c55e29911e3b2100f10968ad82b851060d8996b44d57ac457b8ec48521fdbb32cc48787f9e5a4a15130773f90eb32e0a016dc30c573d6294f090edce0ef62aaaf2e10205f0f0788bdafba59596a4abfbd589e74471af987103a03a860c8dcc6ebe2f80c154d35faf56eab0bfa3aa7ef658ea54d3be4d2deac2da559f2917989f6a21be3061a32208c90a84bf5e5ddb121c25ac31f296b682bd52cb3b8da51fdbb1aac1a08e40bb8e22dfbdd7abdd213773cfd432d77d26663b145f31d3cfc5ff9f063b9e755921214c44da4da48e640290d882c32bed62ac19187e031a24f362cf6b7f709225fe13c5cbe6464ff0faa08c105188611d8c1687f7a3eeaf3f5295fc1458e5ef0f5c626f49702892813b8fdafd341ecff8649476e455178a247b45b2ec6047081f44e9476235a623579484350eb607f70a94501802062bcf1e8680d4ec99e525217bc5bc99993be60669e16b4cf1fe727d53de20d13ee4a5acc0700ecf4fc128b0b419ceb08a63195da7f0c138449f736ade706b7432ed2284d70cd6195ed1fff9723d0cf615247b029217d40eb4b752285b16778216d4c0dbbe7ee502b10211dbcfbb6aefd13e73adc5d1eaaff28000d22eaf1e4a7dc88c58aad9c51a6d8f0196264391074490d34dfd818ee6dbe9973a5c35d50a36f6eb686d49517ab6b0fb4b62e5003038a50835df422c60341de4429adc24a9302b9463bfb0ba3654f983d020aad14882eb1e0564a2fcc4f5ad934d19fdfc660b3a3765c003ea14290c9872e7521c2b708814038714d5ecee5209bc18ecfe931f64ed66e55bc848f69c2f8398a3e687ebcd95aa0b648c2588c79656661f6e0ac0dfdafb177e00d4a380a30dd765b6d8d4ad041d441cf78c0bd34b0d1a34933db88a7236ebe05848144c7406be1ef695cd3029841402e2f121c0e26e4760bb8b048a52f2c88ab340ce926a7c1ad76b87e62cab0625beca5f319394e9a82c5928ba655444ce547b72370e68e280b94ceb017307929ca49f61dff55755ba5b4160e72e222b077a3486560e805c5309af8b923160bed33d081e83cd566ed99f4226527c21bc40ee199d3fc4bbf0cdd61062ff6f3182ed63069f45e43817584162234bd9440e9f40b593bb48b62718554cadf14c4984ca3fb614d13110ed577854bde69e541b3e627d5e8e426375521acdea8b132d566458fcdb20564f4e44c52283f8efcfec6db34d02585c1dd31385d516f0f1aae38b7d34f8e109643001f020f2e1d85957941f5974d59ed3a4477924286cb84c5ff4215a883cb9745bdf4608f36f0280ed5e276648704218460c09c514ea83db780480740054a508013d03339d0cb47ab416882eeebd05f34c7d5cc105f99323731d495b1d1a7209c11aea5c515c8726cbb3b9950407cea7f6b5df3c448f65de4ac4a7cfcea0278346890e098afd93aabc072e2963d4d0701613a4581d37253112cb10c865aeeb489b94114613336c48c4a8021d5656d2d01236789b1fbb8280612996360aeb444c6850d46e5b41d9cd2978e85401eca92bb0ba55767653751426bfad2be930a2033ee8390ac59061a4dd5d940fcf0d984c474344e820031ead02a0c41172c9dd4a70a5ff8e904400ed4ed01780bfcabdb790ba840d75936b4d77547fa2caebb3f0e80b499da43066280caba1e7193a87074d7592a589d87d211796f65ecfc7ae5e574c456e0adcd176443597b817d61eef9164fd611241d01ef5be5b0a2f58a98c328ae1cf439f81f1d15aadada12e55bcc1a966160b0fece66843d02b9524cd3592b4b2ddebbf663b64dc87969f679673e5c37e5355088e8a4c85d83d12ecad6c6a5b2e8d760c7e8544485df5c1738e481fa24f7c4505836bece4ca3ad31422bbc48e32a8df5b20737a508e8c7db5401ff4f90c13ff70fe11831ae42af842f14c6a7fc61fec5342941665787dc95ab215e4aaa48187e036c5c452002a61cb46f3b01d123984e01f52e091218f87804d201bea784d6f096cae611a864c69e0d0701a09ca856d5376c2733d108b3d2dc07befcd753818a8803a2bd935189bb3fcd871a08326867cf50b9332ad8fd8aa9c09c5d287f239b1453f04f39e84665c7019800ad90fa230c8deabf4377e1fc52f53509f141fdb60737f7c2e0929c53e31d7632832a0e67580124fa55773c26a71b13f478cbc1db8e0b56e9056ec632968078d2446c4834010778e69023064b5b373f70d659e85b11dc8cf45b9ae8f4510c55a6505d64d1b6b99b023a5bfc43e1ff0392dfc0ebdba1cdff2401a4617e2184cd154622732469f694e478aab225f3494ff35444c797819f737ba66f56f6b4ce80b520b4f259dede501b8fbae030160ae5c04936f26a834a7e240a4dcd736d00e0fd8dd12fd2ec3e72f00055e4a5539471c651c400e3f454858d0948f293f01ff52a85d695bbf502ca43d16d65e0e328b60491a14f7aa93c4325a5fcabd3cfe4dff2d6cdfb9c0f72552680186b021ab11c3c5e865c4f35840a18e7c38fdc0aaa642ac53750b20c4fc500645bb37faf12d9d9d25f2825c46393636934af63be8d3e2ed8aec272774bf9c72a1e45b69c1409f4ce537317aaa52d9fe535b69d0e00fa7193401699842a453ca243b2a3ce25706a0acb219d5039c4e861841f322d98976b60b96a6f69c40bcf615f797bf6b7c5a51c368463bdf4e02b5b3b4b26ce324bdd51710013ce0d59d3d96f41e0e20f12633ca9390f90bcbf2b8cd17b093dace0efe00fef4961decfb22d3220ef95f530f2934ddf3200beee576798f1a250e66097b7f320194a27f3846384604c2de92c93469f1603c2823f61ac456ee0d5af0978b9be6a76316c2f1fe3227d4236cf6cf9ae5f37159afc503d108e301277b9aa127f0a07cd3043cf2d0a7e8417fb2ac5c4f2aaebefd8f76003671199be0d499799f3b36b0759e99629f9b624d9d404c7a9b272c9b902898b1dbdccd1cbee03ecbcfcc741ecf1008c23838a197e5e22c907930d72eed60bfac215b31f79439bd841623eaf6090ca9da70137359f0fec0b679ce58748bc5b5927ab725dc5ef38ecdec890dbe322877e959754897263e9a1a392ef52e1085096ce3c8f85d1c276a229d5e78016c1004d0507423f8a3133c0a73b987ce86bbb16f58cb37773a9f4a3142816dc28f961c0cfec5bf6f73e243c69d51ef71d82e2f9f3380bf9264b7b03ecc4eb04746804ab7c815aa99b1d0f569da11b97922844dd6939643e4997509aea8c4ce89ee4016d568145e7587a82fb41f04b2588ebc4453dcf529ac9702f845f8c15c3904775f00588d9181204bc51136c90e890061781024c1356600cb823b7bf1f8b93e0cc36f7823e9bcdb3e4664677c786ce6a6d19c88d9418b9ffb0c39a7b205a3c230b05aa486f38480a39744c6c9726821e6c97e1a245cdb8c9ac93a0408af65dbd32d6906ce484200e41ac57d069a7e26efe12385107a5acabf7e2330f819881b790f91844761ca829d3f323e38bb336f1a31d248f706ab9972d315530abab6e1f2bb9ff9fb494a15d9b06c2d4d60cecccf47727e8cf8d15e7922c9e900a9a6a5c3f94e6cd9893f01476cb3c3c843d01860955a345f7d7a2dfaea4b5455a2021edebea1b411392348e3a095e828e83dd6ceca9d46a412d04029c7a488fd2770dd3a13b5829453b4a87ed17144cd2b3d74580124c58d6fcde10a2b3cae25de0dd4583710ab83171d4da016424ef15b84e798329d519001c17ce1e278b5c293920776da84d91bd8a9c9839278c726cc0c3c9b9bc95cfd2838af164e0e94b426be6069df64ea08eb391cfd408bb39d07500109485adc4cf30d98d063c8839f3bc96fff6870cacb310407880654c45906c3694be995af5cb44f0c21cf3c14c3989f45be7c4b96f8fe38edac77e51795a37858add04f47aa992a33a371b83047b6a07a34cdce8388630e3971bf8b17ad4eae6e45c2d6d595887436281755de38389f4e1d471cf9881f6a96edbf5ed0894f6d1e032d097eb799fb4b2f84fdaacb17f17b0ec8e23598cde2b9071f74848a3d2e0a1da1de8aac5872c7441156e9e0f35904632d873583de6a5245d50cb5c9f8d1de64fa6e5eddab829e4a815c36a839248526eb8569d11aa62e001d2b67e87ee96043845e13eea1245c351c116b40932f9a8ce39dcb78fbf17d25e601b9ee2784973553a336970161413f6881268424474c7a7fa620e18804b76753528c08062d6e15f1212eb09ca9a28cd2d030655c6cd75605de3dc299e5c8613d89fa491c4fd3b8b62ba846981b6e90bfe01919426177d3eb9949bd8ebd32ae00a20580e0a19dfd1b74440a2c66689157962455913302063ce3bac72f3a7a4cfc259c4c6184a5eba617ddd5e5bda999cc45ecf935c1059735239bf1d802b0ab89657d0c15088a0448a16466741663d99d06d234be1db32a55a3d3d9f62704563462d6f7eb6ba16215d8fe6610e7d7ff6c6fb4706a52ac1c5e648871e7e0ac9adac6e6a8e5e1f7075e71c4f52abd18a8c80593d710eea2c3be6721562fe5a132cc1bb1a54d0fcf95545536723b57f471806aed5055139b487d8c70e23ba473e78f4d448e866e0738005be36bd553c46ab2bdc414ea42cf8021a77c2655db3e17953cb98aa01999e6eedde5f4746e25396940c5a5269fddb32547455b3d6c81abb81c839435647b76c20ed13f5e13a4ab398c0bb5ad06b56282924448d2d2f5b04cb6c53be01f4ae0a7725039a45d781e89993d379045e539354d1f90739f256b5bca3d53a5dd75992e5d1e4c5b8246f85b3e733e55eee13c0470c2033a2230dabda8a2128858462b1492b3ad97278945508e5ec1385192d0a114790915183af10f99528664fdf13bdf3a62178613802a5e1204fb05e2b4a3c25a65ebb1bf1b4ec729f6e9e72e8d57c8ab5475be3bc391d478fbc1fe70f0ff030bf5d01976239399c1134d035834cb86c121b24e0df4bb86d59ef35725ec499563ace7d7e8403d73f57c0b4a0fefd1057a5c0a089da7a4803dd1d7bcf1b85c6101e9a94268a14fb69cd63a8bd69c68a91e697e616bb5cb5af0dc263fba5a58ae0c0d46921f662a5d7e2094eaf2818b65990e70f0ede1be7fcb7ffee2d103ce2dec891e29bfc3c6f52900f56299b7b1dcc86689a13e58e8861f3a697cef515b753b113b28769ab7d3110bc3ea62a5791394990667ae1d68698d2d6359329cb009dfe34546075765a118c303c462dc0a4c88e98f1b547bbf518de18c629e4edfd530f90d8dc1dfaa19007c3690c08d2d2278b2dae0a0b1d67deb0e79d3f0a730d5f98cd9530be98d9b62db87d42f704b33972554ba6cc6fe018cc0801fd1d8a8dca2d826dbe30676731f6e973151472963ffd4526fe50d926a6ad16f14b100d80d0ce5ec99e1a35fd9c34b8d7f767f3d2d2db679fe81cee2c98a51bf538fd8d8ce24e26f9dd5c528e9ccc8997fd6fe038a0339d2b9d495b839f297f6a233008a5488264d32498a1d714a01d6d65795a4efff482b3cef05dafe38e167f4105306837036552f9eaf61805aa6d0a61d7b722ba6400cb601d3ee6dc00ca57db1856b876391fcc8fc2ebc6df9a210af6a4ec1bd24dde981410324cb3d78b18f60f92a200d5e1ad1f7f48fa54578d3b2f8b0c8d8993dd46d35df94cebf9130c65c9a09aba7c4df29dfe62953d32c846c4085bc8237bba53846d557c058c5842755e57d1128a31043a2faf1288cd2087cbd28fb20a2ba0b6e33a135373626f663e5db53ab2dfde88e17fcac3fa7f091637e73c89f42d5b67748fbb598296190768bc35052097b92791a50dcd3085d356d6da0caf01df1258439dc6c9e78b66616c9624e8151e4d9244c77e2dd14064adf6a6b3853dae13be728749e82918279e3390a9d07b6bc3324355fd2be368e459efc0004680ef5f0c80596c8f19624977e404fed426535ace2b12cd495ca0deeb8a9abe7849a113ff0cc4186f89a3dc27739676567a2437fe6f4bf6a1a478f7f1bf0a89d19373c6c79f05af32135a9477b30f74b0a0114c2ca239f891ca34a00e5b71b5237ee505b80b6bb457b8673d3f1127249d4fe619fce582a628ed321894a2aeb9b05c1f884ae740fa76193dec2bba083d1a848675810034957ed0dfdb95b3f9250888c0038048a6248054e215a1c4257c00dd2228a20a6b785d70a6c675bb981ed86e1d1243d9da06d2bd6480126e76bf3a53553095b9f821805a502f44e5d181462fa6d41ddb383b011d9d75b70122440a6a948c13ad257fd0eafe3c2e4bb85954f85745b189373014cc6dc5d8d138596e3cebc414ed558fe3544c8967fecc91a7308e24771e8735ca0dd11da0c5134de1e274c72658da0082624a70996ea4758f67750c2889abf0fd8428bf53d5b76a88a7b3674fdbcbcf80ccd930ab530c988bbb79ee0639f9ca1636897db83dfa124b78e2970572527692184b7429bc549d38f9f9c8d08e5614941c7763ea4538af031a1186d1b20b4befa56ba13e9f6150a8c38b7a4429ec764323a004d8b3074c290f8bf7634ea90b8f3d6faee06ae0667110c1b60def7d063d94107b80927e8aeeab650f5f80f9473cda63d11fc49ab2955c25b0e6958f7f2280c707c312d163ec6907eb7beffe3617ed87f397350bd3ce287d57d260c5dd88e64837e6576c45cedf95215429459638b989b4a259d2851de6783dded7b5b20d1fa87918a8a210831ae96a94355d539f0b0f14f2e77631e3b31da05e4bf4b93a393676ee8930fdb579a42062f8425878dbeec3b760395969e5516ec29fbf083308e604e3b21fbe8721722aa60e1a4b67510793ebb942731549e45e377e64aca6383758e97a4324bd32ce43fc1e121ee5bbb4421fb5452f7c9bc7357d5720a70fa84b5f9ca5026fc1f5d742d83abb85e28e283585ed6843c1f8a8ee1073a53b1d7ccf8660fbe0373a6fbd76a79a68ab2b05a847b27332520b20d830860452ab9d2f103cc098f48568366517b9e122553ed727f4a270ca27bce2ea3cb022629dc97f32f4697f9b90236ac73d1e10bf30977999e81407362f4eb3139832b3ab3f7db8fd95c6d240501e74445d0e79231c4365dffacc83bec1c02aabe5b1325c1696649253cefb606857b6c2b116b66e11686ea1ecd9726e845880c474d0bb56cd7429936218013acd1436e281ed753ba036449ce56d42d3636999d7c768dff04d81158dda7d2e33d2052ebe4db34fd6da78e96684f3823c8932be1569642a183d848abf348d8991b91037b27b13b4de1825e05cffb7f16ebe7149ec4622fa023445e1a3f4cbceb64fb20124afdb2f0cb9c472a3e7bf10d8f1d78520ceeba065497cca503cd009ae428cb931fe3f2c08632ea0bcecafc5a0ed9b92d71c89f3529604c3c1db2e553a911e9706b694b42b819d450409052a430f59f99552271d520c127afe3337a595b4907836736c88b8dc54fa717d69a16fd9088a5c219bfa23c0dcddc6369e876e05113c17cb9b50185dcc252d04fe3878cadff469236e1b96c0ceb0f9884673d63d7e36c20d5a130f885bfed547d38c6f6ad5242c973745edf1360372526be264d744a2c3376b0730fd0a83fd17ccc81e7844a16931b5d4c53029242eaed1454d2516670a12b823fa64bc2c485cfc661620cee6a98353206c32c064194c54e7b894150aaeab0eb5cbf7d8ba5f453f4f79aee744431d3e535ec00de73c54fe2bb25941a07799f0e4df5c74f9af5420eabbeb0a3134eeb36c43fbc3c1754004364f69e7e18d6c567565d3c636ea007061384ebbd7b2eafc08a67c94a79b04f819ab71870630286efd419a40ddae4649fae0a284d370ea1ef6b074b8b4d8b604131db61105689ecc13c3d0ba8dfe5d0b6f9ac90493dfdcde5bcd0329c59ee9a5df2c23db3561f2cb2fdb5d22dc17316008ba2e42faaf523de74596a9f06c1a846cdf8aa4253c133faacfd91551dcc1e041cc5506a71c6070efcd6383fb7d91d490957ce7077ffcd50a0154aa18a4c341418846978dc9ca46e74e10eaee65007671910c2048999d5771892324aa520f6818cf4fc573fe49ff1d239dafb7c58befb0bfb1e1c1c10e046e3edf746124cd7beaf728bca49a79f0df52c4f6977699591188c785245191c7bbb27e31f5d5593ff02e36a6af29eebc0bb61608ac3e6aafdd1a88d406b45791972cd132cddb150d05b66759318316928a4a0cb3965e43ef8e2f9273c9db5cdc9876764bacd414d7c469ade4c544b47427600806c5e703b0018c03e9605f19d7b817f0b224c5fe3354455d72dce0d4874e6c4b7784dfcb9e2068659cd9ac289803feb98f0aa70455845dea05404c3b2a7aeaaf9cf62fc2111892fa67d4bb5d96b1fe4f03659804d6334e41b09dfcfe26a3c6fc89144be28a62d3e763c93c9cffccf6d0df45cbe529b0ab1101b041bf7720924886b4a754d911182497cd4ea7b32ece314381ed75b8cddce133044b269fe05e0ccf559900f0dd74c5864d8abfc2d26928ba793dc68575edfc4bf31d2bd5f771dbe5cc2be81ceb52adb66f9c4a58f3f190d55fc9460f7ffb21580cdd0e5d321e8eefd47c590a41e0e89e756306edfcaa46e7b008865e04e75fd1a0024498c599ea532169bb5c2e5718bf1a4c7ac521073b68f8ad4cf492a728e6fd78d4c637eb6cb429338fedcc616a8489a79c4ef8ba6fa8c6bb03f1197a2c715c1e4b653b7eb03cfa8483f1f3c1fa8dad2bd16408f1b2386367e57539afbbf073f68edcb31e8f6bc85a9e931eb1eba0c8e8f90a52c28b1ea753105155e281e1193513b30b5e3e22a9bd4960331f1752821e6c1458e2f70bd419b6560ec4457497d44345addab262ebd647dd2315a9143ba90bb57148fbcf0b10792a0c667161af9355b272fc9d8281895dc2498980b568e8d684fce78570422362b63786c58d2c86464e072261d47d21864bbd4e3abc014a3da071e20e9aecfed33ed168ddfeed35fef2a4393b4a78866bd3d01cb7289a86cb6c903479316497059694d4af8d25991ec975cc50d0da5fc190dba0f87e730c200ed79ac8a02824104bed8112ac4e59618b7500744895021d5db6a7de89d71e190e53de52195debb1b98376dd335573cb7c88419a35e99798843ad3b02db59a4b0179f776324bed7a3db63937a1e30d4503b342bdb9c670dac68c7089faf3a1dbf0263bba57fb7ff94f4a91da3ef7b98525a24ae16a54584ca5e24deecbe26a8ceb6ed0723e13fa23f1692b3b2e0d01d57bd1a977816ba9cea5efa3ee1a885ffc151be693dbc426e727a1d6475c174c84044fda5a61c077bab63920a85840aafc391d5d38dfe90ce5da86aca8fa6d15247af77a0ae5525d4d4eba450356a515648ac1ceed2095c8161220f14a514ab09895696e47549aca8eadd356897dda0ff0a85aeea4d3e20ba8e2879a35103dd7eb73c987147489af0927a35a3fa702b5db06de9283a493176dcf1a5b000479781c633d4cf8da3ebc81fc1e9aaf0bab132e81dfcb10aebc128d03fe2b2b0e08a2540affafa5117dbd490cf466c93a517a5f26b12db4770a786ab138a7a5f6f3570a063f9ec7760de6eab8d9f1acc67bc89bbac79fd1ae8acd5cc3f03e91db61f43b52f107ed8d55eec2db8c1f73e3eb7f8bbc7df3d3ec786c5cf9b8b6f862e3ace2dbbc1f73e7ef7f1bbc5c7b1b3f8f3e6e70dc7451f6c0b37f8bfc7df3d3ec786c5cf9bf36eee0b8da4fa6ef0bd8fdfb167f1f3a6d40de84247abbe1d7cc09e816f9b2c6cba60a9ca96c19d850f3409dcacf70fd3961109f06840ac6404511c791d1f61018ceb0b800c2d0c502ed378d7aef699287dfca8a227d92a6054af3632ee137215f8d2ed44d272fa2a72f5c6ab902ace2b20eae82027d855e048571b92dc53f9ca75d3dd41cae2f42572f5beaa70269c6756b5cf44d7c747157d92bd02467ab520e39e901f817bbe365163f9fba7862c72927d058cf56a47c63d2117819b3a6dfa6abdc3d6fab12fdd6e242da72f91abff810a01b1def95b91b49cbe885cfa8c2b43e5e330508abe045c6f4410c5d816c35472fe15d794a99d9d3ee65470dc7c27876243b43c262964265ccabc1b904c1964e6e01488af7d4bacad9a9c47b61b7979d0212f4d2ac77d67f4d8980d0ca850fced0371ba050f3742ccac05f9463cbbc811fb5fb9ccf974e16d1a2b97ee369bb3913f4b571debed7401c0949859af6271a24f8e02ef331c83f3195f1075d5f4b22c11e621c0e8ec220d0a49cf66c5f812e8f4f09e850189cb79a0c96b4158492a663dd59f49194167a3f5d52763311f18faa9705bcb69dc8b3a87548298acd1525a80239c9c094e733d93908d64b405ab7f5991efdf60997b4946d258bd12ca98a9b1ac68755c4250d3601aa64c50cc5da72883c4778df0563ecd594c12edba2063b7f694e6de15627f678a6dc1da509a056b00202a9963e8eac806e46cfede0f62ad8f81d2384ef7920033e326a803a6dc1bcb4f193d5c094a8313b193b63d2e3eec3239fae0185c1cf0de3f55bbd553786fd7a827c75f08f8fe1d8e1b8053d96244b8d852f16694f43f83826f31f4ec2f02bae8050472eb4ca9db5a7f402852135b3909da76c985efc857ac848f5fcf92530e12749835cc0b5fefec3209387c7a7e6cdd5644338142ae2c5fb556cd266c00d52853e315db98b6a102af626c376a93f2b3ae30dafc8eafb3139448b5679cd79bbdae8df7079c6c5d9d4538ec4e554bb4f9e7526d14495d730ff1f6efd6f34177ab8a145b6a878ecb30bdcaff7357adcd63b9fd604ce8234efbee7e9b74e76291f186140ddd55046a8d629ad5918b149625837c487201ae5a8029ad03e0f14a809066e59d94d98b486eb5b4b1e4854d6e9ce0ffddfefc44c9c1f94b9a4f872b9d598a56097e344a912395017a717c1a45e9bccbf9687c40c121cf489d38bd46183e1e4773baf325040807d0778dcc05070ec3f0f138f765d954933bda4d35e041cbe36caf1eafbab04235d635c33261585d349972f7f138de2e950071b2ca4e8c7a4ba3c286664571a54093f0c5e32c1e8bb2a89c4b12c871f5978e541067cf2d06ccc582d286f001ba069149d851c7b1a5f3cb6adf98b62c497088ce160611d9a2ddd3bf09c78b6eb7d42b26a359b01739bc600cc0f52429c2e9a43cc87e93459a9541f84490cc18f424f0ac53ef66058990fa06db5ed85a7034d95a9d8cf0d4124c7f495b797c7444809caaa1d45e5fdf8672f78d16ee49404119b959abf0d780b9734c10ae064a0c92efa4cf72df7531d1573d69f4eb4d86a4b94addf5f50d2fd1a96c12933cc58cbf1244acf776de75aed7050a1998840d939988f44964e6c998b2c80cba68c8022d9eee3256807d9e69da9e254b997ae5f5e62c13a0379c3d0a21541c433feaa012c62cf044c704b22559c3bbe2ce118989309b5c616963ff68ea0def15420e1fd3abee98a4003d512d6cf47b818ce80ade09b4853bcdbd9da09486e19e3a41911b939e66edbbf23fee1545a7099d5e794c1c97bb4dc195008b18656afc8c7dd70b5b2b46c4f432e01109b6d0671f13a3be30c5d76a8344ae6dbea274006b7a22091ce93a24bdfc5d92d08d11c84f39aba7c72596fde82b67118b27769d0f749d89de2a7d5c67690e8e23c0b7376d219b88fb1589fd57c9de3a4bcb586f1ddfcafb5668a431cda0954c1375fc712a791e81294c4564573babce124d7b8d1b404cc21129925a9282d420dcfe2ed2eb4479cf3a9777a8671dbf1de0496ec1b41961a29dbb1ba74aa4acb37ae0f70f12651d9844a7c7d6c2c71306e8f5ec94d93fc53a01316bcea298cd858bb66558204b6a192347c06888a281dc32856c03a29415777ceca2a9a184769257c75c9413581a20db1816b0125685e51d763578d2d479605c869de1e033fbf553f8d405c6a005d99cd714231162500a2f324421f17148683500eb10410d32ef07f98b9c40302b61e2f30af9c1fd3b94e8c5fc53b374d3f7df2e3c7a9259ba1a4af45630bd9942c746e905f6b2940da28d7e2a5bfa586d63b107cc6d37777dfdfb1e0fb84e79a5c58ebc88f5009afbb9979109278f32dcb19ef58d598cbe71088aa407196dc4528092e44a69b8765d62af47781696066ceb400d564a383945ba74f0e62e6887b09446a72ecbe73f042b8e2ad97c072bac479882cb2900e692137bed4e5e953eb56270799d2a9ebfdf2277e30ec5012ffc0dd2b115d9c5817ab59a5f09de8e6df6be7dcfaec2a99bbe52862b72a748cf712cb6d8966a5fcfe21ddf2b7da87c8ba157715fcb2aa6a5575af10bb3fb8ee728ef4d7238bb52cdfc663e676f1130f73bc04ae41d854c067ffe74e27f02577a19952bf24a38e69a6ea52c0b079204494472fd1d6e9d7740bb65f0ee9174ad74c2651694354fa3565af1168b24bc301854f24205e3e6e2730eb91f0f248578021b2bfe88a150d7361f8df14b8d499ee6f720449465e2998a57fe63f09a34a1bc223c557d9a8c305d689d40fdff1dbdc34bb5c7dba2cd137e94776cc39f42ad176b67c3dd18973e52b68091807f266dca2a3de92a3d725839f48f90e91d571b56a7cbe6b0be79bc1cfcc74363ad62995948ef37907d25d9704329d9414a6dffee5fcc327fe810e12e4a5cba038e4d89284e910533a9aaf4285a96debc4d4e594a9f31137e3c182b57ef9f655f6589eeaf2fcbd2aac770f0cab4086755df4534843b34d5b7981021ef30c7ce0fd3c32cf3788f29f452c671e47378c52150084b0936fe2bdee31c7f0e6a027c9fdc0e4ca6e5eb786b084bcf7dbe6f61470c5351188babce3c546c129614aa1220864fe1891c77ecdd8f5175831ab014b00007b4e62b3d6121f18cb449d7771ab8c5306929b5cd3dc23340aef4d09f2d35bd426ba586592702860c1937b2b637a68eaf82b54397ea439099591a6d8eccddf160070003a1f0f5b78fe2d04dcef3392e6f17ca7444ed9ad387fa435d2c009b204c93a1df9dc7c994831d333cc84023993c50d881631647c49a3adad45fb9cee86d1b5885aa475ebd0f0e1377333eebb74b9409d5a326cebfc7c8aaa1de7c15b077325533bc1026d6f8c088e9c337bb00d8e0ad44a7e99ea2b0c30c7ae95698c953bc72a8d31f9169b9470a0e4750e801fd84fed7d3ceaab049536fa8d8e3c74593cd8e2e8eddecb834e6be47a0d78d2988cd6ee73bcb5ddaf364c9fde55198150479ca970f19471a27ba9679603e72c3463fd3f48e89dd7cf4f1c09b5148edcd748f4446667e11b4afb31729b42b062bda41777a931e5690161fb29abe714332b0ee3094967d3dbc45df4b3a8de012b12327fee094414908a30f9b5642acde414fc4703297b988929794bb3dd1a6d1ff96ab7c1987ad8c522b0c3555dd444c95b31c51d9b8229c33ef51ec2862a2c002fd9f3ca8aa6505bcd74da3b1bb8a33b80e9437ff698153583a8355d5d835af11cd7940056d521b3bf8cd7becf6ee344b5540172c6ed70d129ea87ecda432e09dbe56bfd466bc0cf08a479196d86092bb859bbed46656f8f4e5e15ad7f5b8cf04da43647b0d059a98aa9f0bf1e7266d62e6d86235536a338bcedc5a3da372a79d2edadf4dcf475e6c11793b5f95ccb86eb699d7a529bfc0798361018d08d44ac1c9543731ae24a54c576823b6074727b0b8d28eb095552925edac27993d053fa39ac8fbc89934b0a4049ec48b1e1ed8e51e54d0091e53a08cdcb477110ab0c2cca10915246a11c09160162ced5cb9327479d5b50c5b2247f425c5567ccb7de0b2f704a51a602452a2ffb82f65069c58614f5ea6e73e7b295f43ba43e72ffa52267a92545a0981c1d6241a12109300ad191d55a2d89df594fe0dddf4326a162b3a02c8c0b80b057384448b0926b00a622b9bcfda55f1108ec16b3da4cd3bb9e3e83626805f1b3be462517da7f599624f28552425281240cbd68bceeeb62fb20a2ec11c00122f22e7d088f1362b132dbfb84b69567f1e5eb7c529fe12bca56e4816b344955b90c1fe4b8097dee1a5951ebf7438aef4fc15e79cd6fbabc633adc453c564a068552a04c8249bd1751a57191e5cbfa87c8fd69d284a1e7c8178f5468f73c75d93bd93b37b763dd41db2eabd2d0b86f41ccb23349ac669d79c5f664c7ad148189045fd210e051934369b2c4113b3034e7473b29da1ae27edbc02cfd41bef5e66559d980ee4d6610fa07677090da2f6bb2361da8a3e07019300d6d60f1432ef3e64419404b34acc624a094210ecf1179d32295106d5027248fc7f02efc1de552d4ae1befb013aa95e2cdf34edf56a320ee0c951a5c440763d06cfc0417582724686a2eee10a5ef7fd39c4426c3d4145f4678488b89cf8d9ca4657717bcadc2fd6755015acc93c4ebe530ca987e1f512107ff3eff0b1c9f3b742a2f0ef354a45c27f933b18993e2f48414cfbcfa4722b48c066e6fd75e777ca7104a98e02f5bc3a0d1584020ef4f17321e828ab7024d70f0b78197c0ceb57f3dd572dc1d5f462ac3e5e46b49395792cfabc1d3779764c8a4085c43ddf266adc732f461277def32f7fde886b82a14bb968f70346ec8ca6cc8a0cab2463f568c623e889761cd8610033c4078a9a3d6c17222ce6c22612981fcb30b2a925dfb22d8c370784041adcbf6dcaa333ffa53fc35a40e6853223e541a56e0a9cdaa9732f94e8f3d9ebc7d8c54abf1bf6a7b9703134e5ba15a39c7d10092b60f885cb22ddca6fc9edb87e8989993a99fa44515260cf5f8fd6e0352e1ccf753453a5d82e71e367dbe4e6109e9079bdaad6288de812f43ed792f5d48fc4921d35873a9bd7a08414ba854b35190f04cd94736ec7cab82676e15353d418d7a0c635c3adc61a3c55499a362c1f2cf4abe8a222801119f8bb44d898ff47601b8b38383ac31e5095eea47966fae6e30f0394bc535deced7402dca54c80f69ca96e60e252266827d0fa0b313e20ab8540fd9f756481fc642bcde6201fea8608b514d88a834908e8ed2097fb4bfad8cb1b1f96bdbb5c9690d57e9a9e29ca766837dad84a417059fcbbe297a7bad7cfd2d691439c218f7bf439b422a2dc6d9ef3cf65a9497b505a81ca58b56c094b8c47ba0b46318c1dda282f733441c2113e78218652f14354e1300afd737a47a797d23a0746e992dd682ad2a9227f06c45971f5b05e6b0ba19b78dfe181f92da99d5d0618cbfafa5adfc647ae10941b91635d783092db01523675203ce1d9e4a1bcac1f71d12f25c509cbcebdd85f298679a1b4a1779f0f55f585fc648e23e144a10ac08db2ed5ef0cc6d02153f6bc898edd4a7aed560c91fdba537bfd20400a6eb7f1dcc5c222fab215d11845a8045775321afe09c119ec80f36c7be57169ec6822a669ff23a3ec2ced896552384a254c0a8e7f9f4c7788d38098ce389663b1b43c4e85f2c82f922086426c1163e79047dec0c0367a396b9d855e9a5d6d91f9cfa03664201a0fca96a50e8142d51686277a65e840422e338e9d640719481a6b32bf1ef224f44a22c5df72fd613048e9238418498fe34082b9fcaf5242000133e1a0efeb41a555dcb21cf55db907bf38c6e0da9e0c9c78b84daea31c4d1f3055a46aad84092d32f3f90e9ec980ca9b75ed9604a1de7ddfc4d9bc2ccf35787bd7c559e2790b073865e8864b874589e1312a0938643387727d8053d0cbd2c5175f74f041d28688b9621ec6585ed7ae5baf030e885f71bb3c80f6c98670dba3b4bed4813e7b434d3a677760a8095287b85f8e3ca44b1aa906aa6cbf89316df0f876f13cde5333e8b3cc889bc782c8ff8eaa783822240f9608a860074faca373498809e1db1b1ed562a64e36f69d94989cee3288f6e088d0b0dba09aba0d62398233b208ab69bb64cb2d19ab78b6f26f163a43f8cd7da66b261a241fa213b10a57606535369385f961152bcb3b0c9f820618c0577d560b9279c68cc05c9a333f07bd2875408e8db3ca74d1c9e239c57c19f3d5eecb6e8bfd01a42878e1948abcd331915cdb3945cbba6dc3f89b11a2d044c4bd05cf467df21dafc4d02daa7db48d8f201eaf167d3e68b7b2583411d35184c3433bbe9650dd720499f2ce10ee264c0d675adf6f8a0d746b56fb3b6ab45f65f18ab1607f1fa2887dbd41e54be91779b9b7f123b2a1ac838abb72c1e065404ac0fda70dffd70a0cdc75801fe21dea03340101186191193b8e23815b684656b546d0c966672a3acedd1c4eda03c4edfd5e6077ac002c32c670c34ac97c18a2f755131bc0468458802ce601878bc84baf398d0934aea1f873945217425ad64266bc8b94d3e83fb268d230acc6ac5e431aad8331f879416411ba0d2404c7cf612910e8a01bcb9a0de6ea574e795868273c90d724fae1098d4389d8ff4680ac2dbfaae987b04069c768121f029ac692e4e39cda0bc3fc9077489d130e4050100ed74ac004406f5d942f075936f1ea86a350022733f4c6515d8230c5340db2e487f79d7ce2a62ebddd730450af18512793160e0fcdb07141fb334933e7654f66f440125fac5ea2660d61862a8e59943049556c53592ed4c493218e65c1b0c3898a8fdf4528b6b76b7a59a3d13a18535502a9738424c01df6886abf1df36951a8fca64c452ea38ed3f2e4e944b8e9030560792ad529af50a06debae64cd69840900ca9eeb976c57bec6aa938054d7e9752626c00b78c94e292b94456ba266c3ce9f0342089cdaae22dd438595a81cfe1dbdd80ea5115484de8268882b9f060f127be435f24535e0770ffe04f6a593e0187756e79242a3bf2abf790ccfcd52cc5d1f0f8c82508e0f4076ba184136a7478a25967a0f6b8eabcc99bb68100f490013d495a3412b50118972744da9146e9982b4b633e2188781c6bddbebdaf39e799794942037feff925ee004cb93f1586f8f27d474584a5c92349412b768bbfb2ab872bec79301e30ef4e32f0d3fd9579690936109d2379619b422bc25ea4e11a204f384968622b6262e0b9e2e88289563d355c758e5752a4e62d1d155acc2997fa5a55157241fbcdb96a0918910c1793a797a9d32cd2f5f6e8bf1daf97c22674921728b1c44a3bf1387b8ff4bd2cf0f619ea5f0f08f8c4c9de8625b0909c905de54c201397adb0d88c4e27ce25ca5e27d51c35496b0995e9a097a7240779ce9d91d09e9778ead9d458e734ce848c4e5e7962dff9f6a9d00c40b8e0859fe542e16e2fa87edb90552a973bb7148c45a43a07756f72e758473c74c628cd6e333e5f073c8ec494d802fea6d28c8fde605177ff0fc0de9a19b046799d5de808de0c704e6e4255a3f0a2ea6a88592cb1d563c692d222cb5e33573bf4f51468dede6771eaac930b6ab63fbe83a51d54dddfb6a21e14d1b166dda8159704dc0bd262376f1f726d2b02dacf8b0beb46b286b5b7ff4696b431b02d38f22e1c197638a21d8038920369b11a2539cdd7dc1c0e0266be3aef3cc35d800c22dd7c5dc9914b55b7fac2973624fa2a131f731d5c95c0c9692271362816950f71f8a7bccc91cc80bb649783f15ab31bb439d4fa7a0163561058d52e055b2447245006ac56ce4574cfc5483fca3c1755d152fab96876786e6cd0a654a36f98efbbe7cf455eb97762c38c0b00103694275a51b7d0bd54d0e4c81f15e9b5a21525c2b1825db438ce4560247da92503622eaad0915c0d7e307c551b91dc123eee0f47d5255a514dec75642f0b254a7ba9f788c7e525842ff57f01f7a775b8db705a5dd97c87f26e78b3809c9001ca7a442b6ab48b54f1d0e4a07324bbeb1912843f4e4dc4dbe3df235e02e53ee21f0a8f0f30ba0f834e51bb282f3b7d1cdda2a5f6460519f5b8c9b77a3cbb950f2b12ff1c8d0c054e02e2a0dd9518ae04c70835f9c157fbea4a5650a7b526a34480cda348eb23cde24bf835ff7a5b8c505d5d8c94a0c6fce23fe54dc4929bdf645bafb019b4d4f51cee47fa88160e8dd7cc73940050344242c15b98c13b224d58544416f1fd5eebe7de533ea32e446631f0f95a7c809760253c32f3e4ebe06a0f01e84cb9e9795e516726df14e5354b6a4bc666b95a2d0ed6198bc54cbfacb50cd21dfbbaf308143c14b9659012824ca92fa3b467193ca0290a6065de3fede3ae949a35f48e7fca98d2b7ff339dea68a89a3428e51278422e4798a7d09627249355cc2019fb93a96dc5a36f682b1e717b228dbe6e796660b72c46a0ca9367e302fd82d4f5cf0abcb3351f934a7bd54e422b351315e889cbeaf0225c09e84752e206bed6ceb90b8473900d160a5e3741799b10403bf812a98c97476d1075b5e19c00880ae6129e0eaa40cc8ccacf9598f31052a5b1a4bdb19743cdcbc7f329ff1772c6ef1f1cac92549eb8c0fd851cc2f462f784c8779a80ec3ed8e4d4b77bee3f3eddee1908bc5a6c1091e672d3677c09041ddec5da1aadf96e146802f135d92b062c5cd1aefe235a7901899936906b52544dba579a1705afdd61166ac84201698e2459084e6ae141550c260665093f199d1fb38a66a945fb43b1ad8c3f29cfabfbcfd7f967944c44ff9c10cd280ba443a748416766576a2a2142c3cb4936de88453e82a0b9f8540771fae416ea52db96d9c18e47cf76ad1120dfeb9b19bad50dc5b1015447647f4067a17ccc4e3397fc9abe68e9404c14b09a9c2684300393290b9f3c81062c61c5194b8f2002eef361fff12c8410839a2e0672f61301a85102aa69050ec2a492381fc0b318c27885e10be140897b884105b65e0df959a473dbc4abb9b302c03c161dd83a5a31e89214e708f4c91639cea40a9525f9952f5cbc44bd80e113cba91ecdaafa12c5324859119c5e38d29e2f974ebe2f29cef54109b7d7ed2699b1c6c7fccd0beb328d6dcb34f6ee413883ceb6694ed84913062905cfa8fc22d83a2e302bc815485548352415a415e40a21a9cb43406d1023a21fce1b0e07c684c25893bfd590af286efa637a2c4249926cc78c978a9660cf55be28133a7f02bf53c904859574481a93e7c599175f802321270a836704bee4442a6e8f882f108cd45df42bb31be025efc31eb8f631e3b4507949f11f6fef0688d1f2a00a6de4d72342dbbe43c34883724e152d1e03d30e0666818e511e8c381824b39be0c1ecd2011a89c9fb43d6e95d21e4e28f3c6d62e0277b0082d418cc5ba709c9585f68366ca0475101261d72d301c5b0a194bd74fa590675e5fdc1fb2ed4c80d893a8b619e1c09285dd34d23b39b53fcbda47346cc2ec1373151e2955dd5b33ca579cdcea6aa9c355136c82cdd849895a4ef8b0c0ad3f6002980e2e3b065a7a5e830c5466d6fcbc9e41e5976cea7aa7b71eda3c3263d54a911f2191499862d00a9ab11d8b2fcb4ffaa8e5431b5bcaba1194a98ad004ce292cc386acaa93ca01aa4fcb76c09652884120e887d7498451b723d03a374a8411c29a468d6ee3d1a525bcb22c5b8326b9f897b8f52f42d786b14a45e206cd980bee9811fb358a026dd2faf4740502c23d638820bb7e395a8966181b63fe5cf9c7b2518b16352b45a0c3fc43559ed6f13078637669d6978d599d8bbfe48116f2e9cdf9c7bd2b492d31c4220509795d39c18b6ddd2fa5c19695fbd48f61ea4a0871a80841af45a20acfbfdd3d3c661835d1221448bc2e65e30d0088c816774d0eae85192d5cde6042e73aefe2cbde6b61be265611b4429ffde0585f6d50b16ce2746fde36d9dcf210000c59bfa3d5cfd789dd40581e8b83e31f3334c1a045084180b91591b13f21ea29da06e1946fd0f9d067eae6598247d479db313fb922bdd3d5a10d254c0319c08cea17f3d796f28e82894579d97173e004a27ff65e87e933ca6a086247efdb02e9d250e000219cc55cd3d04662302b16ec3e137a9e47907afe057fa25a3663f1e268f33e7280a5fb581af3cdab3a09539d63ceff136b35543900b61e667c731ba4155cd0a902e8a36f2a6892fa7e561ae4c6f2600da1800110ad69d84f6a4d3e135525de78799676018596e180fadef59c72231be0050fc7e226e1ea0c978d42564574cf4e4c71af92488e0d2fb32ae61dfe51e236d5dcab1b5568fd22ac1f38a7bf6398d700c1bab60a0b6e843f39808e55b11e456083be404c13147ef13006a8cf447ba0a00bebf92165b476bd2e6b0b0f09c329bdfe7c0d5f37f38c8f415bae3a3dba0421753e3cacf40b621f46c95bcb530b14f6e03e1d588d15886c05c958cdc8849cb2d971296cffbc484f2ccc2794e01bcd196f9a417a9f73f7df7b8c7b94f585b22af9b4aec48fee674cb8939bc34b7d63653b7559917c54fd6d0a122c84f878a47ca954393ff6a6551d1be97cdf82675861e5163fdfcd2449f5c5a39a1377749bc433c8e46a26e79d8cd38ac6e8cbb811e573922d007223245f87e42205966daf96606522ce225a97005ef80ba11301867dac2fbee0aca23b5923f90e625538b9685a1bb1f60d388938634618cfa9edf19f02d930b791756f7f2ed9edbdeb3c588933d208392b4ff123c4363865105cc01f2d241cb06a22fc73ffb03fb8ab91b362f49c605cf30c260680815716e7919ae8b6d7ff7ba58bb90b93db2314775a5a02d50c053365404d68145f8d2a119b733d01178bd598d77b06598e834d54199169f910215b12e3251126381ba8a071b6fee3534774230058bf3e08d2c51059f4b9d1cb65dba6a0c1fb30b076dcf5f2ac9ae5904beddcf3d4d4b9caeae668faf754dcf6ba3926952d18629a3167c805ec519a3a3ed6caaff6bc77d2ca30317d1865e035bb4ce35d6aee802a1df976153cb77d70ccbd95c0db382ba0b289a9ce2bada33d23187f3fddee96a64478bfdaa9a7dc44f235725daf32ad6554c9cc80a81bd61a68fe89a806bb0b08533cf85dd5a1dc5d6cacbd9abc191068eb81f03bd3638bbed35a1007e157aa00e751531417833272dfbef105c1c39061cae7cf91643223de172b378bf6e5d02f6960b8c881634ab4637cfdfed8bfd02cbe952fa3243b30229b79f94358c64605ddea3ee948e8226784be3c516b200b685b1b6dbc46510da4b6a5423682b19a7505908f875035be9ebcf80800f4620e5c8522fac67c0204b8b194eac37fb2f7567b111fc5b8f5a1a30ebc208e042acad05ef12d202af89186e5ab820737e454e474a1955343cad023af0096554205e914d07b356705d09f39872190b9a8cc8b7af7bbc56896bae57a72d35e65823cd205823ccca296e49fda472e662d2a5cc405b434bae8c1ec589680120c26f1b77824804bf598b8896b4bdf7de724b299394324d06e8055306403d8da89029e4e6266cc7c155c9668d6ae23789524360d11c02df4ef1560a293be2bdad82a9c9da248dcd1ad96af607993a0e0e9813d2da73be22d1bdc7a954df3ac87cd1b629a37e83f0f82588d36d156f978e50981d038dcd17560a29a36ea7903434c7da82e8705747477a27eb3235b2190af53f384009e2cc06acb2c7f64cff8135b2425bb845d12485222832c49d59834371557be5aac4d3b64aeb4101b6ce6db3a1dccbb280d1daa81c19d05450916dcd636d28a76ea7903ca8d1222175211b808602b0a0ad79fa26311692c7dabc9ea0ae20d36bd52069a857a5e6b16b9816a979ec15420f6e4434cda0052857884cddc62153a7d422ad72cd2259dbb5812dd393f5cb59a14cadcd666db3dabe6da4a370ebbe3514f3bf1b1d6e421b1e8e959d0c25acfafd9484556f384856df6a43918375425aada113cea0309ab413d29aab3d8cf4d7272c8c9d70fee549836873df9aa72ad55b6e11d2aa7f3bb04696094184586face15cfd4548b3dd2841288c866d6ba130eadd5b246c92459a691b84ee5499f3c74ab11e56bf2dc2595db85cf4a87a427152e115a1bc519e07504f5fcc6cbf3e416130944018218ee1753886f53bbb1151e22904c54ff43a2c7257b4a2288a626d914e9c93752fa41fa041ca88698d90524a29e544c3156ea8b5d64a6dad265cad235db2429c7404cd99cc1a741cae19739d3187b999b9cee7f4ceafe78915832a0ba87266b36b6ddfec9e81c1ea0d455b7de2303c557c6ac2275b6a4d040371ce9086128788359c6d74c724d38904d0bd20759b45b162b062a0ce6268a38f00f24420cf45d1009d94bb1b0988cba2e701c9ecb937b6b003c1b9e79873cf39ef9b73ce39e7a4218e307bfe514a29a5b4bbbbbbd65aabb5d6de7bb91083de8b47889c63100c41c719e44220120f49c230e440e81fe832fce148fcf45c26f9206616a91188cba29434a8b1d647b94f2e8a27174f8e1a979ac256d91391a494524a799b73ce797a250a848952da1648eef6eeeeca546bb548d3de5a1dcaed35791a4fa7179144cef109258ead209c45e74006bd158433ca71468d350e04a1aecde867158e3fab0c8ed708d6c348fe69a22c59aa683a842131e816305a0cd11bdd3169718ddc29ee65838c65216d6e13854d21776e1a248cfafd2e1b6433916927f513240ff7c385643afe8042e67e4caf7133ce072744a6ce09dda5e6e99b4553d15d29786fb72948bc4db789bb378bcb06dc71dcc97244570649dc51153ed952b352fa14a2734c1521d67a4457da0a5125219dadeb6cd30bdd110a85cfbf9cc6bbbcc6b79cf6d67f1e7b8ee7c1e9910b22a5809032f281010d70c00372f0e8b071316379cd0af978adb68186d7ea196a78ad8281e6b5ca859fd451ca0c29a61416a99bcb6a488438180250e94147662626e7c5f56e3c72bd46a1b08df4480fefc3889597eb781f46d0b810ee6304f61cefe35d08ecc383ebc47c07ce2e7f81d37217374b48997aca88ee70462810e40e6705093b6a1ece963283e4c1344831350f26c2425258c81d5c840ce633d6604e63ac394a8db186421b53473f63ea081b9108d1efa36083aea7217e970341705a21d6fc28f60870993f80c77c017ce60d80f30370ab00977d02dca6024ef315708c006f0d4026cb0a484005868620fa016400df0a72aa999d5035dcd5f1f4a8881a758c9e428a4461a89bcbd538d7ad977906860054645e2561d7671e45c2aec7bc4bc2aee7bc4b9a8b65ec8a12766fe7fd5f0a06be5d2aa4b1fc43c59c4e9c18cb28144ee968fa44b1ab71e10d780938033e02ee03eb014f01984e47538e5463174d1d8b02df0222c4e808690525a0cacbf09a6fe1b2ef6278031e026ed31170ee5f72e8c8e182d53a64c4b00190a4162b187231b5985e4c96093331991075e3ca51df1e745c1f2ed8081b61236c848d4e5a42dcb3a0c43c25a4c9f837c5189ae3fff9b81ff3eba90f4a87a0301f31634b88d262634b0808dd8190d72ba4ad7cfe2fcaf180f7d1873a4685721029bd5ee1bc79eba7b3ca095e2b422d9cb115642536b686627fc3655e078f7900f8cc07c0733ec871dec6ec81dc1f87cb7e07ffc15f3fdcb0810369e8876f09b574f8d61001f8161100bef523e85b405a41bee602fd58732d3e01b97f3d2747569ef9221d3e4e231d63098ba652c794e692cd369b2693eba5c52f6752d14472f1c0cbb9b840ee4d5e5e20f72b151322bae3d263f333fce66538ce772c7fc04bc01df01370ee4b589d8c5835af80685bbb650fb51c37bdd6f6b14fc5bdd65adb755a617e293125a2523a509e1624aa92944baf417744976e83eea05c3aa63c581451947c36877448537949094915626d0ec94518b242717a72e2ab139be253649df8ebe51f760f599ce5e4a37f0b76eec38f7dbe3d718cbd4588478fce39c7af817c276e7d383cc79ccfb1d6fac6203cfdd6aeb7fcfbe6e41c777e1dbbfdd63706753e1d3bf8b5ebab937727c76e67b8c3cc7887994fce71e38e9ae232c471723c0271f26e04a2c577546edc51334b8bafde3b0cc04950cb58298c657496e3b1368e92c2de2b85fd58dbd179de700f5d8637dc43ffda0872383dc41f726e6fe8d84367858e9f3a77c71acb77f4cf89d72a5e09c71567ad38fe95b1f6b1586eb1b3dcba0ab658c5b1cf31f439b6824e7cfa89cfb1e6e5cf81f8fc05befcf3d789bf5efef927bf06450de4e975cea36b38f4f9b51d35bfbce5dc7b6006d1009c0481fe1a6b9f83147c7ded7390e2e86efe9d7e9bb3ee72ef81f8dca47370865d3702f1f949cd8e3b6afec697ca8bad957f218d9572e2336818b4ca27fe611cd250fcc46d265f9bd9641e31713c271444c4134a5bbad16c325fcc264f823c979a6726756c26ad9cfab451c963b5e2c03944f6a0302288b599f404dda9cd2264eab4086058f4e2252fdf83c648fc23791e185bebe058231122791ed86bf2d6e37b013f3f9d425a0f0a9b8f7978df581dbff4b956256f77310fba43226db5d82bc6ce8d2e3c7aa0927ccd5ed224829a4c2e58e241772676a5997b080d41846792f5e179f86be67e4a89ed14ea91311e6b9df300ea4161f4149e401cd843f069dfe90bddc5cca38775cf2be579a179a314672f1863e7307610bfe0990ac35388c6e44d49a9266f4a995279bb354d12b450af8237e5d74c4b36238d85d287afed3c1195ea5bb5574949c9db40109d85984f9d838d4347f5146da36410ab57ce438124abfeb15f355f607f49a52a603f09e6516baf5c10045550cc24d68641d47a12562fc7dd7bafbda730565d45c66a4dae2fb90639090bd81f628cfbc1dce1dcb89134d53bdb4dd7752e60ff97719e2715309134d54d408ef338ee7af75aef05ecf7f27c922f91b2eaf657295256ddfb96a471452037f64eded77ddcd799d44e8fa5cc03ff642d682d075ef049de842563d54fa38c558fc9d571f61e4b598555effe2465d5bf17a5ac3a090642cc43563d0c836818c35d84f20ff4ba2f12c7a1990f6aa432860a83c47e8b42a1509544caaa8b28310ca299449cf1ee4db52509836aeea7d9b347ec929581d829bfe1db31505853ca414f74eef4453e84107d52a3a4b1a1998f38aa6c2a58596f71b1b6296ef788a32108c18820f4ed02e1fee0fac0e5c5daaa92a5a26f55a90ea943aed1ad489c3de08178ab432cfdbcfa0773777a564161968900d2c7da3a46fdee401c2d0b1196b093926e4b11e2f476e9979056c7ab03717a95557f0983e8ac39107b084cd8474730ebd361604674d231ea1b0851c788da4848cfe638ee7297ebaeb50d6b01e710f13a0cf87d58ed7c979076bf17580cf83d786b6aeaa116f2af16067eff6518dc160616e3d98c18615a5a5af16a63329e8769c04ffce9937a8a7474a4d4b1240aa33e60f855d2802e435ad8237fe087ddf3f04ba55a19f07b6c67c0efb97aa78b06bccf7d20b74b58f5191a59434f373738d64430432303bfb7dda3278f0f23506ebd9f06811a1d4194d2a66975046bdaf67df52851c750435488adda8ed058f8d319c925b3e9968b35036f5c2036f66f4a7a73c0ef69bed5bb42ae63ccddd11ba2712c9a05c393cfa03876ba45b91dadede2c04689106b6dcb36ba53b34819f5f6c8bd81487d50218c22d623ea11b9476b03c39fcf75f4864eecd08df5d91223736da6d4723272a6ab5255e2c6bedd6e99e66e8686bb2d982c2ccb9bb5ddb8efb2b5ddec404271c7d58bfacedaea7c21a50c3badf8666dfe2c4a7c0c889dd215b3c97a47f35ddb282cba44b24454258b64837c45a2f78f7309c554346d4b10696e8b80d2d084ed359c9291a424eed6dc6c831041aba3b5f1409cb27022cd4059d83e0b8168c6f7deeb971b67b3b0dd2604a235dfda76efe4aa908d4dd87e130666b8d7dab663ad94881127841b42bd465548ad5748ad5748ad63f55babb5b55dceba97ac1032923d97f3c06abb4349484a50406a1ecf8812ddf196a02077bc2e2081ee7d2e04f601dd33d23c1ed312ddf16e5d903b1e1612463d0572ba80a979661d9b42148685dc99279030ea31813f66a0437dd63c1f0d64bba073fae1205317458987a690c54258084f17c89902f07618fc3ccacd6c12321d7a953c85a6d014fa6c1bf0a823669f10ad23ea1312ea96a873c95a6bada56eeb686b5d0211227d6ff7ab6c77adb5d65aab135cd5d61637a89736786fad9cdbd1b96bed51b6f6a8c7226aca5b5ee5ff25bef224ee2815969589bf58a71498981798ab25338342a15035e5271892afc5bd3967cac5eb8db9b8b854fb82899d3ca4d5d09d058542a1502894a72a0a85f279f279f2ef546be5702ae6071111ee4862430c0d755e09cc73c2a702533fba7d98242523b623148674446fd5092641307ab1505260625e604988262f564acc0bccd592994955150a4d82c8745a82158bd127623ea968ab92228fb0261534e582594a695b1fe92abaa96f242f302a94bb040cc90ba66d4aacb61d69a65e62a27e342a8ad42898a7d206e5aa5545d59290269aa46ac9bfb372cc5360622eb1a74280c0a85ea6c0c05495546d4249591dc141cb8b9512f3024bea5810905c4e08612f3129262f960a2555574540151598d4134a4adfca0a4c24929454c493abfa62491594455d258a7431315f9986b05215a522ad5048a822f89dc48d6a105e4814568f4e641193172b25265555287789d4cbdccd1f4440766880e4578a626ef24530272531af29967f31540cc451fd5a14949cd84b1f944985e8028342394c4813fd83c1569595aaae42b938b029286fb72893ba1adba644ad5596aa13e59ad458cc0b524daa446a0c26468f502bea56d4adb366c125c624555757099214cae738dd4a0aab49464646d5c8486f0cc171140a10d479e1e2850b9d9f8129b1a46656a2aa2109692525aabe2149d594d4cc4a48babbbbbbbb6fd0bf5e661318943351c5949480ab58ab54a149af56a713b0e6afcf5ea75b4793c9d5c1268d4261e9743a44d8882643c5ba3de850853f5f1222cbc5f27215956faee0f0f07a3a435ac4c3100f3dc6f849488b71e1e1a54f4cd31f1d52a2221d3ea91075b4c4622e3a5efac4461a040815c2c232e6d0914347510ebf4de4703109692a2f395efaa8b084413dce37b084f33676561259567e629709b105a64500f454d2b4c3c0307e79c1a8c05a62b6c944613019199571868526a4a9b4f0d9cbc8c16f3e86e3fc9df9171ef32e5ce6bb1b63862a4194a1e9e9994350d8504c0b9e9dee850b1dae09e28c4ec762e9c09cd061753dae2835110361b19a8eeb1f9b63c058488b9175af8e71e2e6e6e6a6bb5eee263633735ba7d3e97ef48c133939393876662f97e38408ea3491f3edd4d8080d4da2b1058e8b15171ad029ea21e7eb015f917319e268bfe38ccb84b499183dbcf499e909837a84d15334a36302e881d1c3c3e30254f9be2c1dcff94e87884e47decb9a1c0f0d0386947137305ecc18e167686e4f19191d3231aa143142588e0c9d1c786684342688b986268799981c5872383159e5a02ac92107ae67f58ed2ae3e012489cb71d7268954e972dc4582254af24aab0c52f7daa3a983a139e79c73d69e3d8988d324db6a7960adad1c7755130956586beb1d72c18b84ca83aec343c4e9b70866a8ddf7de7b6b4b6839aef33e303c618ee3b853087e5e37b6519298e5d581bd9c7f1cc6dd9ddc3ac871287d0ac1709428ddadfac08fd679a7973e5dedbc8ebbf6626fc773da20a1adeed4566c67d870861ef8851e09bc4ac33543d250214e74d88a8ae2b202772d0219d7492832d84c515397b2a61d824c9b569f3a486adcb1681870c75d1867f3c54ec950e71cddaf373de7f2ec686e1051a80aded5f33caf2bd7597c419774075fd87d1415a8c2d8db04dfbc1875eacb7560681d759af1799e77e1fc3e70c2903367fa1248eb1344b7412bd6ca85605fae76de67437086c7590d967e665cad84e1ae86c0c3b86b713f673683c16a25aa3a68db579c41edab443ce2c9449540959024a7ec992f3ea7143ba5f493a0378ea0278869d7d12388d2a76339253dd57abfa75266dd03adb5d6ba94971ba7acb6059c160dd4a9743a2f501b63ebf85ece8e620d663467abb5d79680ba6ca9f9d3ab84bc4c90b708524eba4412492081c4bd4112905028d082277b91708479c51095127cb28506ae9355aaaaaa131ceb655eb95250602e2f56a8636368fdcc3231ad9613c2171718caca95527292aaaa22e0ca8a482429a9882755d55d5f9928ec55a4835d9112a4e4a4de284c0812aa082ef930abbe327d1d03855d4161b72694139322abaf405c2826f5a8e424b552c5ac54aa9995aae457485c545474545e2f95aaa6c008718d15c81898e80e4a134a15a21a2b10d54a354b69579faceaea8b60dcf5452d0efbca549b6e1d13b23e28ac535a1cc5c5c5494cc6a217ff60605430aa17979655aaaa9438592126262626264bf454072840f1048581537efb06bec583f81bd7c0db78065e8663e071fc029fe316781d07e277bcf63c5e8187e13f7c0f8bc53533598c17ed03783be3dd73f81577f12adee2f167bb7bf60ff09b7780cbbe016ef30c701931de7de721e03aef83e7bccb71be0787f132b3d81efca2a679fe52176d179efdde3e2dc8f3d76b38602303877234a4bd665a6e6c64d8996c723e0120936d77c7802046c5721876220bb635979bc976743c583e9dbc9ccfcef34130b22610d8c8c0b19886c7daf7c5b95a7e07c7791a9ef340363a705d06cd659ffb5f320bb6359c4fb6b86dfc0a1290832ba00a68410c36683244ab810a7a71ae7e971b1b1938762663dd562ca02b080564b92fb7c9ee3f03c7fa08b95e9403723aa17c86d1c3836b62bc98c976747264b31b1b19384d88d6ed8cf3957c632303c7b686446e6c09cd3e017ef30870d91fc06dde002ee30be03c9fc3779e07d77905e03c01dc5e121517e7c2b75f2565f2223971d97e5666b1b137b29991fe146be23c33d94e0e4a7613dcb2ca2c96ab4d609c7fd5f09da739cfdfe8791cfee26d388cdfc1633c90cd6797f9f8ac24b3585c73816c5025883f2d5ce55df8cfb0f8074f1c367600bad1b41a347c6e0ea271cef3402f6cc8781fd98c24b3585ce37a0559dc4e04d97801fdd02c6e570d1a3e796596dd5b5219e8677cdb3876b86103e8677cdb9873a25dc09617c08d1d9ce771d800fab136807eb2c5afd72bfb0703593efbec39bf7997cdd38861a3e76fe0bc8ab73cee5750bb8f3f7e7ed61b58b7201b2fa01f5a8d9576d1f061616181015b1e87e3bc8fe7bc8d1bce53f3d77b388ff12f19355cf69efb4f99c566a01fdb36807e6cdf3cc8be2ce69c70c5c018cfbdf8eb3dffcaf9dc1feed8b1728d7856097a29692c76bd58372762e00e985960f4f0605b33bad00b9d5f39324a43aac993723e961d1d3b93c9662d1f4310fd784e66e446dcc2c2c265fb3d28a0856b9901809b652f338bbd99b9aecbcccc2ce37cf69caff1e335afe23d6f03c863bccb65bc8fcf3ec859fe7a07c95c2f1a2b7e1344848d1790eb875683468ff9596f50e12ecb5ff79fe13172d079ec35f3cc643b39b26fb16eac3750586b6808ecdf12ba32fea5e7635ce55d38fe16cef331df790ce338efc2626f6c66321a999abf4e3323131383c1bcb8e071c5e8c2622adc84e9004c9502465b9e73ccb1586e64dddae2d946a0e8c64492820c49dde0065c0843129ff49e220b68164c20051bb24ace6906f9052e4c21051452c045a494734a8144f641644971d449297ed0dd5ebbe7f527bb452972e075477c73ca49728549274d11a14d5b89ec8398926b48f490aceada35044f43c835ec46594561150b457033f8ba1bdba04f2cc082102d9988220e51a4a10b0306fb3b2e701cd7277ba47621adc341cc2c7aa2447185eea782b46a9034d26609b589a4162091a750963c25904ba4610a7906e0bb3f547daedb3780e843822cdb5b415eee3108542eba75acc9b1bb6344be76d9a29455148657545eae162b05e5c464a52a214989a853087e5e87b96b6b53f983f8e51ae8b5aea0045935f3d5c294f304892890a80d7e267dd3272d2206a2af8652763d416161ab356143f6415ce59a9865196c5ec8aacb5d4e944cd8b8907d1055b9f659fa9dc2a3c2acb572b8045ce2de8bbb0f0959353baff34832f51e021a799ff7a532b51551c32719b4f866124a96492c68c2fcc04ed2d07e1fc42c99886289ec8388cad2b92c99b0b540f6c81ef965c984ed045925fd0b69492c289255141644cdae9016c4cc22879286fa17023d0692197c0a88a74c43d923a7ac2990c2ba2c99c0821bb294de0e11057dbb9b526b6fdb7e82387b9c75cec971735e260ce172b63677adec968e90beae34cb963e6eef4562bc3256472b69ea155cc55e87bdeecad56f696e74ff72f5b2d7758b1c1816b7bd5d9df3ebf9f555a2a3f60897c398439975cc460d1d60b468d12fa895b3b45adad6a4039b7aa8642c1c38355533020000000af3160000180c08868322912409125d9c1a1400126082665a562a144863912086411c0632106390210018008c31041965684a2b5044f21971936d96189fa0d60c63658978a1e2594459aa95675636f9a096b245dde85537ce538ca1dc3c94afc4e81f147dd70b632971da20ae76153d0d90d1e32588125e310c1f018827b4440160d7048250e0f366c4fa27eabb0d9c70f9defd5f15a0208a6c003e692b0f5aa0b6e3b88a5397e6fb9da41c42c1125a2a36ed9bc626ecbe729e7dc996cb8c5f59a810325f98fe78ac203111aa1182347688ea792dbbbbeaeea222d59099ab3cc69b13a1904f349f8d8c680359c28df0b28b11aae51b965949065d3364118f1f064a79a9da78f4d97c2171354bd3cfc5b13a42493ff6369a222d29a583a1be455bb4f903f08779132bb58e50f4e326990dcacd86827d4731323c1fda9209356874684a99504a8bcbea429f7fe797614635e5aa8175ef8cbee18f3f0ac17c314d52bb0a4536accbef231aedf055a8fc2f72bc5ff8c5b0c102df60a6a06241ca599f80a2582d11ccb4352723a56fa361611f88cecf1b0b4970995e5fffae12160afa1e86b76a299348c20ed1a5a729bc15d5b920b6f36440f5a1114c5d3449a8643fdeb80eff91f36ca13478589060e5f495ae328bf4b073dbdb3c908382de42e178be887af916aacf58a2e765b10aeafbb1c04a1b055b7cdd0a51c25a9ebe4785c55072372099df0ce534d11f753cfa97ea00527c4ac8d3275e23f575fa3d03290cd88413ae29d439ffa2cba024ce1456c5271cbaa40229384c42da92d0cfc5e82edfd8e50fb3aee98467989281580e1448b92252651ce0f2e9fffdd51407e87347c1e8530de8f9bcea83209580b7eb04a99369fc586541ca2328f6fdf3adbdb3287d3e832e9ef05fe914f0c2fa35fac2d38975bfb0d09a2b9ea0484aeb4268a1246d3221d66b4811e804410793cf22464f0ccd0b3a251cf9af02f80ab7b5cea586946129767089ab94318c9b64e88a6112c5063c624d114370d20c50e11273cfd893a634d409aca829dbc06d49939c0e784b7c2661a028a5fd34794b12a03556a48ccd94d7121ec9d233c0f9a4b20ffbbe53504ae396a5b70d6bca32b0570a0e8fec15d5812e44c7e1d67a916af2dd534911464aae9e81e508acab1ac836892b8de3b4ac6791ba24b656003a42b5103b597c1df0aa64ca1146aa8e02881c365027ae55e4dc6b7c18a423fd108d413e043d349f0039de086ef2389f6879325260b0bdc1ed8c1405e3c221b2271c3300d03352f8f4687b5a804c44ac231c746e2355d1a73e04bf6fb0471f5e7fb72c1e2f9d5388798f43db485555148c9a178e142f41dba8718416a71c1abdc30e82cbff86d48ed46e29002f52ce2345d80ae33561b07ca4d6b684f3e6fe48bdb828feaa7ce9a2caaa1f1aa9cefadf3a440ef8744192049a08d8539054da732129632f0d83d600702292e2d10b37148ba47691186d936615d68887a22c928ab9e52b8a3e378ea442cb01196895c39ea5f45bc4d36bf274e807dffdb2e1e70b902b92d4c0f76d0f3f3197466353bc2e310791a438006833c8306f29fb358423b759325f034a52e85a47f6f8c92dfbaf80a9ae98b4e137f4869d2cc63b8098c532365081ec108e9447591b25351c9a926285c32b4e2575f624052b295110eaa1bbc2bbfe032ba9855090693284e1833ec9261bb2e3951486803c2134800f700fab4b2e40805c17558f7cc527b15b5202da7b26e36f048acd2d294123952dd1eb96d4539f25d5440cb6cbd3010aa5c1013e3a951f6e4911372462812e297b516aa69794641711132cabda11ef9577d16672edd7af96b8bda4006ac5108629118eddb1f33861523331bfe38a49153ac6d339981453a078a557b2284de2594a60f2aa7ccaece1c0b4085eb5b2885e0e5f6f4cffab1c8706c7efc006d919594c6a56e0032a55e27effcb88048a2503c21a02d5868c83391b193866c4418dbf3662c7400ca61f40e8cdc2114a77ab7551eec4516444ad93f1d7da687693c39cddbc9ffd04aecc8cad239a419382f9a413f99e81584310fc5da2ed0f9b5496cfa8005bff166a0d2e330391b599779749c5cd92343215739372d2847837b6e7be8e0d2ab8d8a4ecfc7ab1bd849e64eabc0a3046f27bf8bb5aefd9afd779e488d7ac4e0179b3424638dda478092a68cbd01a9e4d2a22dc4dea39f5c5b79cdca3212aa926b5fbc4ff0783c3ecdec90da397c56922e24a0773bf00ed26657d5e5d6741de65c4437deefc53df199dcf91abc986d12b6552468197938225ac27941b94d584725237e3f8c38f2f78c65db417d6c8f075e77708dc7c40af33a8b5cf7e474b7af36ff2f74237b59d97e9e265b5e2b8aa19859dfd00f64e90516d27a5a25d16db6eaac356ceead90346da4975d1db844b4fa99e69c6b01a8356a66327b7dfc6d3d323101cccab35d0aca856271a79e149ad1e601ebeb4278c6109972dc3937ac772a5eb00f8a506195e47ade55dcb3c29c5e74995da481c470d382fbeb1ca4f6f45033761dc36f5c8f57f52cf3a6da6bc8863920a2b502a5510470af3b089506aef1decb155508af10103a1d4ec39e36771a19422c3b0303894dad64a634429c167d883a2d489bc2871fbb94d37e2d4c362c2cf0cbf06948eb08f529531c568b65ed1ea2c0eff7f4535de4829c41eeaae377392de32b0d06b69312952395c1209b7d8f489d34f311a330ea1464ac14aa2caaefa4cf30718679569f6853c4bae94c2832d6b9c7e32441bb6c9875c2935a4115b8b9eb04d1be69d5e2eead738a7b62224c566af0ac71680cbe138b2d95b30a033a55cc4c1f84da953d903f0818280f34a7a8aecb1dcd18f0e0dc8c737536ad16fa466a5eeb5f411de1f80e82f1ca13b34cf31f6004b00d19c48deb97e520a8c60534a888cb934231aab0d78700a2ad5fc4b903fbead161237c04b542acdc076ff5dc4ba9112950a1ac6bc8bbcd20d58a2521f232abb161fbad17d8af6d44911955a8f2fcd4b75cb01139987362d952a26af4a610767452bb54dd01f032626b895da8bc0683de535c7e24a45e267e94151e96932f03400a3335738dc7a1af2b15ca1f67d853a3e10fc0e4a39517bd489fa649c1577a7f7684ea232307c4aafeb27da7fe19d788967dedb2597622c2a1fe792bcc0026e6017cf745abdf947dc7a8e7bd4847c74da2dcdaf6294428ba90f513cd94493dad4b4b39f750679947065e496c10655a3607b61009608afaa9b4cea42565d92055936860d3928c29e2985b5a754988dd4524a569bccea81166111a3c85837af14c7c0e3439ee81e229d028f939d2f879222c1f0a88a3858749ea456e5a290c1ce593a3b7bf68d2946aae4f7029e4152c1fc98cc5ea947e0fc07889bab029b35cf447ab8cc0cdf9d038c68051bfb08fc1cd912d0b0484a4f7cbc8807f91d6e90b879d397ec7b35078ce8c90265b8a1a67b62972924ababaf7a081c50180b7f05f9bb29c5cb6502b8b333167a5ca19703ac42d59719fafecfb00b5c82b0bb6901fd7ed164dbbb061e208408b387f8de9f9dc80118bd1d7688f4dfc436c6567eddfb50f7334d08c5ba7520257e6f45f40df7db0fe7feb43de4664b21b240178051c48f58ca5adffa2962cc2cae086d5c8ab50d2db0ec49b89d44b16f3f2d0c84801c8b204eff314db1e5b5a0fdeb96584188a68895d2fc4b997ea9cc3fa33cf60d0454487d2806cc89ea647876656499336486b907c439c30b26da7846fd53b78bf7c977f996bd0482433db5c7609305b7e9bac617b2ba91692e80b0192e98f0c8763d91add9e5f7623458b23e939b687d10259c98462b3248c1305699490283b1ea0c52d88c556790c030ae3a831486319529431bd61226c946b2a75f455d2495941f41cff29ff9e2b7ecf73b0cae1020312ecaa288598f2b6abfba5783f38747b420c96452f279b5ce6b997f83106b33f8ebc168829ecc946fb90a6929d1d3e5c75f1309a060784e026ef5dc9adfcb14b1ff2770695cd67d1fafb431be301c92abbd67378bba6006cddf1c840a91b50a42c61e8c689535495f1d9bf6985e80776c22d29c19b5e48ac96ba5fc8a261f07b444490c406dc1603706f415b233fe2677fd14f5198c8e3b2819bff31d167e469765e7002fecefe9a14f207f3519224abdf02d4b30f87150a2c378e288d78e1c604c68aa8a76bd50453faadacf3a424a1a030ee895bebd9a1b4a57902c1d90c27dd8b5e20f343746514d572225479c3eb45b88621f43c1f8ad59166d276747066099113f1182d88609840b8b2bacffc6f99e58d7d1097dcfcb0bb79b3d0a1573bc9156942765c77ba50a7f9b157b0dd7e5524332e369f6d18d32e5f677ebf6b080485750cacbde54227187d395e446815fb4f3d736c29578c965ef67975070880cdfabbbb660fd26f158012b5ae442c09354b4bf442276ea6f5d3d24a135e768b688a756cf470d0b77d5eab13e1f06a7a58e559dd6e47d368426b751f832eaa32e1f6b8eed2745c8ebe429160204c154b75daf1feba7ce2abec75ad663dc39702f75d5a3d7eb528f539882e06dd6e64356ee8638a4d98c5176c88a59d44d31ae77455000166f5fde87d48aea8421dc51c748b09e57b3f189f4d3ccf7e40ca2f8a8097ec846fb61ef56150f649d31f5dd50a9914c219bd642f75cd25b358f0bc5c0c321f60aea3bfcb3fbb6474498518be4d3d9aaaecb6fc49e505ad7770cdbf59eb458df2f0ae1d7b715cb13df37dbb4bef1644535193a63f9c2be79f0e6d863097e67cddbfb78e5cabe5fcb0b3166c6142f1b7f3f97380e90e9c401702c12ecb65975f25ab44505db5502007363a985686ce3fc669bf85e2e72ad5d88e311135424912fad22024404732912386e66847d0b6e6e1c6e2ffac016847a26310703a5087ca954c28667e4ddf8eb4c43c91709d3bfff918868c071721d1349b00aae3ae70e309716ea4a060934e39b08a07bec5896bd67c0ded3e35d2102a997d2334a5cba7a059d958242a0fc52b1b1fe5cc8fdca458471240aa5056ec3a59fb01718241ba0a8c2942c828db694084fcfa375529759d514a1a6409b993cd85325490893e8f63b0f94a03361add0a2a3b02390ad8c1c7f0a70a71b9a5aad0029eae681f26b3b773728d828ac6e2566d617a4d171e6e53c90d9acc876b248fbef81b4913e717c11a10b56ab36c07863d8d18209d0a127ec1339867d9dfc2b9c228168fc0699e8e1cf3501c6b186dd49037f9a889151a72b45b51dd378c56840c6e73dedd8f767873ded83aa3bf4b5fb17dbfd6b9bcacf8a3e8baaae9875a48154617103894091613df5ba6436b53df7958756a286be69c38cc93d6a4df4492dbc5b26c47578ee44e5416165d41fe79214653d8b0a5f97d888cb2be3c4336bd1b08219358817089d89a889ca202b2429ea83284a665854f13543556f4f9218754e18a3f299807a83094686843ee87b6e3286a18854406819c31d494c7452d075dbc3d353144033260696ec1aa20e10c37805903f37a63e1131a7897a2a014931400cc95617cc46f36645126b4318e2725d48625abb301fffa9eef0d8e6798f6460360a12e1fb9b5410c928c600c8cd27075534a5abea9e7598c9589d79f230aff80569e74863529da4d67b7d6185ad687f999f142607ffdc1fd98b4dc2ca72e275018ed24541093c5618aca9a3618746704eabacec3b8d4e75895c402fbbcdc9814c65a6ea706692b1cf7311333f149f9550998127a184979bc54cd701ca645465e6a3f72c7f0dfa4c689799b78b4dae8da3e0f480ab38342033d37c132cc7fd4b715698cffc3d0d89187b537a9366a627fbd3d22914ac7e648d33a365818bdb798645a1064060a4f0e43b50e7762451ed69947b3ad2c6508cf176eccaf4aeb70331a829b4f1a49a4e99d6eecbd63adcc9a85c4fa56f574ddd651d81d2e24eee4389d0723586d83db6092d6f59e2ce9287f2275c2f2cb62572679a6d6733b62bcdb7c7e1e254c7ab943bf534a2a533de8145d5365ad9ea3418457fd652a49911ad4b98b8a52eba4374b9197c31c279a53b2997e2d0bb75c7d82973856d30358d1e3e8a2652d7782a0042f9f3f4ded5a6f7d636bdb7b2a87bc416c5fafd45263e6da795bf071197f0f25524c51568bb3decae4c8a036bfefa97897df52a700d2b60d47d7f2be9b179a79c50312bff298acbc5db97cc0ed0aca7a9073df9dc5e1dc0bc1b3e00afadc840aaa0f865d9207050cdf6f4b700eead3e9799cf354bcf55cf962914dfb7873d238abffa66d12d8aa788ae3ca3b585e81f741fba07837468b475c0687713b21ee1a1141f37e6143d6265d15b599df47367d4aab55aa517d72b7a3b2fc58154a2cac3d993e2c834c14446319a1c2b4806d95d11a31d567016c95d43469d5b168a7f28e7db287781413e752ba22d424e4247ffca11000e954bf0fd1a2fce08aa8c281050501c398284971e145c1123175d29f7bbdcec9e70ea2fd397ba655a097465a2fc899b1d2bfa1b390b6c24f0e84a062583d82dae91c0557844cc0c2a4c8d8e2b455d393f914aaf5d572ad8a848ef76b5e111f00bf9e4899a7b9df88246abca6a4dcd4993e876b6d1819cdb26de44543ce1c4b71ef925483ab610dbc1e8373d7a50cba9f089ff6e80183ea6e24f4e36ef4e287e71f08d50a82741215f1a52fcffd513c92df076d81407cba58aec3dc5779008493815533cc5195b05d86e15d796e223501104cbc71e5502837221098ff5be12447843dc14c7c9736a54bcc6e471590c4bccf7b513b8f4682afe814d0f544915976a7a2e106926c249cfcd70abc10e15272b1ce3cb0cb9a3ce20151f01e01aeaedd996a11ab19e88457d530e6e062c9fff7cd1a838b05e4b020290f75f30cf3edd0804d1a4f7da6209688463d6d1f49a7cf79e23e60ee13e155f105e559c77a807cd6a157f9fb08f3696593360e6de40382f5358eac02afe25b2f76276f5be39f1df7e151fca1fcdf0663b17c82e491fcb5a9db333d64f7c8fbf34d48aa834177c838918496bd28a731d0bdbc1e463f94c23555ae2a35ef1ace21ff6aebd8a83bfe63865c547f555cd7caba8e8dcd1e7a09d29248ae948732868f43c595f147349b24c8abb0aedfd00310d100d2ea0e02929d1c9b2cafe2ab4f701c474407470815e07e26a165c5ab267646c1e953063cad25044ddb6d5891d6b1f395616de39eb382ed8622b542a147825ac6d2c4b6cc82db3f27457f1ddb16575890ae70997c5232f6a30fb057d573a6cb29f4476b1ab38942962032de126dcf2db651982bb30f0159ff22a1e7f86b2219c6130c2ce7e2c52a2217b156f027009688edc903f38b3cb7d14db0328b03c9e644813b8640d314b22f1757951c5b3a29b40d914f06f07bd86090979551cb0956bcc55fc20d2581d2b0e77080837cbc5c6038cc27492e0cedd8a034d575457fcc064f247ef2c49037ee65705644869944cdb22ae7c514cbcd24fb260323badb64f466957db41a48210076659bcf81c3257f14cbb96c0563c383a573c358c74e115673d88f55f71f4fdee4f8d33de062b8e052a237ff3549c96c6e6441bb6e3a7e4aeb1e64faf913bebe3b47c48637129b42f45b6f597d74cf4e56aa8e5f881f285077b37ec99f1527f0f0d7bff59165f733250f7ab55b1aac5e54fbf33ff14b438a2646a6917ab7ccdc2174c801677c8a4491c22236a8e708acf5e1d6fd5342f3e218b1b8ca68acde2b88622c26d6f428b03b7300d1f6bb9113ed71d74a93042fc6de3513df6df862d0374a39029c902ad25c4542acfb7495169f124e055ad6560c53d06c004f53d2ae39f425ffaca11b1f24701b9f82a3ee0b6d15278ef01bb2664e3c7b7b81fc0af1902b4a5b92c01b70c0db009c62d204d4e09023fe83641fdd39a37be064ab689e6fe43fc3b1446db2406274c0e4b347a798a47ad9455138732cb8c88266c5e24f3ca82c505cc37b4d89a99c741889a000c17105e4d6087481ec635e103c0b462c2ea433ec579471cd989ef3996038db38b134fee45db29a22c56a5a01b56fa276ad8c6388ffccd09e2cf3ec33b38cb44e85819d38b00959211c7fc1fd7b2b0a45b2832015fa4d28d351dda0b39b0fa68a8af379507bf14eeb44e602d9d40d7f4339ec04559ca7b617176a41932efc33de1553e3de0211cbfc0ac2c0ec06bf58700ee694f6eaaa309e53d815166a5ec06cd1e10e5115a867cdd67287bf213beb0934fa3cff88d7f366b811f425e550e475aadac266a8ffc8476336621ee3ca01e0afc0951520e6db757e1ddc8c29a71fd3f212b4c7ddc6028341a5c9262b1ef2e20b679ca70e40d11169b3c8001cd500b14886f0814626287d8ffc542860e65685343332b145801086fd9274884eba84c31f2ca7a4e816e0bccd01fefc7212d21983d68ca48a7096eb68155c1fc7d0601318d60562eda2ae104e8180972227ff19e90806725309ccdc3f735282ac13e5161d2a518af8295ea1f83e9edb89c580eecb17260a80d80821c7f04dcf53a4690deef1b9090edd2360650a30c4c287793c10e03f679a105418256ff2c5db85c8bd3df6ded9709be83045c2a3b25fe2296f1901d0d5c10b56591008c85a7e2e95cf351c72261f598914016ae6be248386aaccce0e0a6073f12a4d8bfb849501b07cf51315524417dab5c819df6945a64030af93b1a089b88a3eeebe84ef1129e5c9584dce97d3a650f8f73492269a49260f6ba24f960e6c10dfb2a097fb3a3d1c8065a12c08cd2f30b5f68969b521426812f3d0ce8034a60d6300044499854aba8394fbf81f4a9350913003fd333adf439bb3f6ca47f47e9e3ab3cb04df606ecb004b437f46f709f11380949554900fc9d136ec570b4922b8a874d4f03ff78fc8699026027e101b2088a7d0c48f0269275d7c1b3b9539b4473fa57899cc3e930d304f01b5707ea5222184ae8145902a7bf81e240f541e6086448226cf0524252f187d9fee1d2c6252024366cdc123ecb7bb7c6ea1259ae12fa1b2fa0039580bfc3b6450812b1fd16038c12595009e0e0f72107623d0eca9c3cea311a2ac1d98a7f268174b1434e062dd84e58098a70892ab5cee33fe18f9dacd387c17b4bc611b0045ecead3100470771861a8d35cb80c16aecf6b9efdd0caf2ee3b65902e3489a962081c09b624b004ddac80a8ed4e75b4226b741b9043152deed4e0fe9e225ccac2bc5e01c1c7b09d1b7d81b9abdae6be9f2b7bed773199430649e99ab294889694a86317f82c3f1f3d8d97a6eb826e3ccab65a5f3ffd0d18e84267bb73af70892806e4a8c2f03593b9270cd51d34cd4f9c946753185e664cef8f4b860cd6c0af5aa85c824b839903f78b834a8c1d5ef46a441b52fa05ffce1f08db3ca24089d042550448ccb8f1e49e455c49ee64b889adfc2e362e51db742ec2cbab6544bbccb02f04380a72ca184c701f8865c9915bdd0333a4625abe3b9a5a20410998c7a8d76a466e040f5a2845721020fa7a439475fd42ac8804a20499cfd185980ba30c0f06b693a9530fda50c07768137c8fc95e62e9520064ba0a6124e38fe4a6260893dd451c2411c2dd0cb8b0153c21ba3e17e80958061a01afbfa0a3d62f4d2d584b7843d4540197db622e693ee0b959718877209c96aaedde2ab347d280642286a3a9469355710b58eebade9094be3684c5a839e80638f60d3435fda54da69cfa4083d67361d5bbdd32698504b15bd5e4856f525549255d32d6c4a1ff10781bee950aac171e097d2d053f42874b31d920e713ae977b9934fd571fa4158945a2520194990b42c7e20a559b991926597f0a0b7f430d337d8dc64719bb091834f9646e57409426ceb05fb7c596687392633598d200fddcc33a70324f3c1ae0594ec9fd4008701c9081342a4d0e94f5dc78456152f9f892c0c640bb4f4cb78c721e4b4f0b0e6845de6cb4e6fb5ac1832b92aee740eed3b5d038e70a44e39371625dca28089eb4d2091ec0b9076c21ecf25d537539f88a79fc9272f1afeacf74f8b0caacbe30a4db962fc6b96b97697587458b74f000d5355d7dad35b76f7d7c955f0e926106a7a76d35556396697f0d32b53408c40713edd73c0e4f72361d82943dcf1e8239fc2628d9f411344d8a2febba793646ff9d818705b558e5b30dd7628b2f9bf15d8e0748037c836fe1bfabd5544ff9bdd2a55ec8d8ff0954f84c9f1cfb9edd889b18e4f4a10ce9dfb71f24e6def78c1d9035a1f6ee774052b576eb51c5b493d6a8bfb588e9631a4065fe078b01d21804ff8a567b70dfc7203f023a5f2cbc4397a745d9aeac42aee00ce022d8b0d197e9d4a2fa88a9c25268e5e6982d50ee03ccf4183152a0904b83ce89182b91d7eb586fdff9da48cc9f82397026989ebd12a7af493aa361714f4b299591a37852a3b7b36d69c655645f788eaf6e3ac89efd59c37e79f34d86ceda9c00abd7e17970c62b4a51c9526d01e6949614c71ac5ed0f628b72d73f639eb4a0f4603b43d727875ce1edceb9dfb21b1d7c0e0c202f7e8dae5f8ed774cca5e5db587f5c5ca66b887b5e55b1f2a71cf2bc7c4bc4202996aa2381bb8005fe466b3e78a09bd271b6e76aca52fadcab9079baae869f884ee01aea36305fa7d696823e91ebc6798189dee5971b62db41d70455f30c27a97ef9e748ae4b0a0b6c9ba754f29db68ce4cd0f4ec199f2178cfb0013a31249cabf4cfdfab320e9ccf3530bea6925195074cccf3e95b48d2b0df0bcd3bd2ae0a8018ca4c15df7307e92acfbf71ff4ecdb6f9b91fbda23ea23095e34ed4924403f2f7d85f72e1b320192805ca3068ff3d5befc9b30e5e1ea566d61e395b3d34f03959fac65534083ed894762826c79306f56ba7aa9cede043ce08a6761d1b3e90544d9d217bd42fc07a411789919248d53f9f87ae46c341420d74128cbbdfb0c3479cec89997df8b08d5b6d6e761c9d33fea35ddd5573ae9d699699611e041a5dd019d897d73b521fff36d44adaaac6d9c661149c2c685d18132874f1ed004cc63ef9997a7d97efa4142a4890acabc9cf84531a9403027f1b15cc887a920423a5669f208e6cc07304724e3171a4cacc1abeb4be29413e821065179d19138864c8a304995a31202790b314372bcd2aa04a4c673d4ac28c61a63843f3f41943a2e8d80c16378021134476d6b448169e893661936319bf1a9a0c21d61c8cd58f962731164e5ec86e68f8602906883b119746196aec30e21cc4d2707219a118d759f5c134685a118408032044a04466a0803df277ecc398bdcea8e33d2e66b1d2b415a5cf2203a047340b320162196fe82693a139177aada20eede4070792f790659450cc5716da8860f9cf0c8a8b39e63c7682456a979db671d32152c7661ee5ba9c75554de95516b1f45409cc4b2a8125b0573e5dafd4cd0c96fb9544a9965195264afc8cdfb183e27b81c36daded430701b9f43067410c97aa6cdce5cacc9c5a328a6118cf3b7a8fc7f4da24d8058f4a7766328a5d3cf84d8f279959d9bdb18279c6dccdaf8349ee529c02cef14d13ce297568b36ed46230cb325bf86a1f43f61a6c48372d2c0d6a5c919c7f8f71fd171a568554a0171754b7030514b304d1a64c58ba1e7b915c1ade34478aa453c52c8804dbca1419a53f525d2c21ba5f5606220b057109bccc228347b8849c5be1cd2718adf84c89ac6945f2fd5465b36b05c2636acb2e805849d61f1f70e033b3a04f40d9df215bfc279646dea5575567a7e75de8cc2c5664aceec554ca8066f2cbac0ff66696636c997deffbe44c7d39c879a6bf4c635f6e384b0ccb53d6b985037416264e167e9ad874bf2206741d07c455766b62eed40c2cb567d19683ea1c572f165d50e18024fc2c4f34cd31bd7ad68156cd7d7f57a7afdf672cfa7b1cf940cb6a1c104af9f7649c17b4a847848576d1092d5e52919bbd191d74801eac40b4e047c368b26821b3f1970604ad67710be971e77199ac407f89bc7f0e7d2786ef0063754bf01bfa4323f6e13694dcdac6f6e72fa05d82427c1eeffbe6938d43ec2606de5a2269736241a3cfb9526ddd366f25fb53a08bb83dab7229fe958c042d99959d6c73b0099ae2a526b464ed01b591247d36c7a66ba1c6ab8ab2667fed07c173cad634a7f557d9f4ced5aa88e50921297bd1605f14f2b48ac5af0c1e58551795a9175879c20370d403190e63049969287b981483f7e942aef3c2164d063df4ac978d1c1c55f54ab81c3558fd759c0c5683f7792586f3f438a8dee4014ccb7f1311e31bea015468ca83bb628b1e2dff1c5e650637afbcc93c26f381eafbbae4d80c6b29843c9cc6a218a3d82bf481c79945e5852fa2a2f0f0d1f896fd49dfb34869abbc4601f2ae1406ebbfd08240411308015de39a3c2a122e08dc40261f3e0fd02971a4c97c41a525066b9d10c349e5e885daf468e1f1365040ec20fd19b8d2b66044c86c20f6ccbc2e609a3d5ef5b6f47440e136ae2a26c68479add601d94c4b9e1f87db464b87c15961997f6bc3fb9383705b08ceb6e812e1a77d114a37ebce4bc71c068a8d3c26390c874b0343ee380c8702e0e6ddd452d88cc3480748f6b977c8c7d5b8c3598254b64bc2e582820a2d67293e40c640fd705bd4f4cd8aafd9acb7e4c762dc610499d9ac0f81bc94e387b33cb2fc9ecf470eac627b69a55e71a5f1f737bc4dd686acbe5c7916a71f5f1a1d375aeb0ac66c449a7faa5b9f1ee6fec04a2b9461a19e2b8c0a0d45844d0b4634b72f86eeef85e9ad81d63b0bfd81c84c9efc438d1724f54d67d964d0119cc0de66b71efe17b8d8e2b97dc15f0f2049031a8ba0f37a91f14239d54e467638cbbeb877bb1816d60e03e079151509ce77361b05858c103f9c15a124875bd465fedf82943ff0b736162d3138e84876aae2805bd7fbc8febb460c554b6c75c30d57951436acbdebf5538bc8df7d813a13b9a27ca701ae8baea57f9497835e7c84ac023600b6f78a79e75a846aea0e4503fc39d444741f965a66726e3529a1db9534c179489be0fc205914cb258ff841b6d51e01aa6c908beee8110b952e90917f534e645586e6e60aa693388b82c4be91063b689fd0cebf1581285deed7e482394e232171161ef7629fadf3a4bcef54d02072332189b3b65187e10aea4ea2c2a0575f8fefecfe45f47115eebece652dfb585e9a5114048cfd5631af9b10b8b015ae4ed8b2adc10a0816113dc75224028aa3fc1925f41fb87347a3b34b6a669cd5d61622f020bbb7122efa597208347fe618db7a4125a26723131bb1987625e6289cc15425448ea8bd7bbc48775bb814ad992f6841c513b531f602554540ddcccbb1d32582ecbd7379f28f13f355b7de4daeb5adb21f63886513a8323a90aa2fd55633393ecfc8fa79a673c65ab397f96e0e4402b67401a84fa9a6b5747e55a35911ba0645c3c23ea340a3be36207e69faab3fdfe195374d0c20b6259603c983cf74af96d7e25d39f74884505df43665d9e709f44d2f88b11008ff89cbf9179cf56f9cdfcbab27217fbb8b8f2ab6c83acad74a18918c139b43e883eca6727d60c7215b31ea5fdfb82438e4db2f83f3a4e914f46a9085c4da2628abf4865154611d0b64858d6eaab3904995f3d9775a4859971161b779b6e5b781b0ce62758443fd03a6802c42942821d467c5ac37e19e48211392724b77eaa1ed16110e06712107344dd5632e76450373779bc86dd63d75eed18882cdb19e8ae2db2c37665e35f14896629e41e2f54bda097202b82a4347387b18bdd6d795133f2858fcdd6065ad6a4fc173418affa38d6396e4d31f49164d6051007eff0483b6cca26e46b618fd1c07e28a6687bf58d6c168d471bcc47600459484989e55d2488122e8c1266fc4ba5b484bc6078a65e045236fbed2ce7ef3281fc73aa0a68869adbea8e12a5e50f604cb4a65228b105cc3c9db352474891c0baf2648db48e3d0c28a2bd947ecceddb1d236c37d9c7892281cd5012f09f5247ea65b6adfbb7eda53088eee4fd259ac61bd5d2f5a2b750e220a5e987fe32af1142508b72f050a4093a4b4347440a908130dccd74ef112602949ac4369e6508abf3905d1237061f473ebfb391fd16911b6d5244af7005154194b77ce6546c955a1ca1e1082541895d291b86a9c1c156632b2a0cb84f6a8885080071d56228407fa391f94844454a4c344c86319ae2181e46d0a8514d97d60555e01500ecd3b463220ec916ab5cd6c98c132fff42b3ca374c9c85562492911cc0e9102acd2a53b4f94facbf829ee9018ef81cc16d319bd8d88c56e2ea0f01954d5a88d56f026e1bca321640a7ab72d4e7e98303e39650a78fcc0330f1e4870ee54f74975795574f74cb301f3bcac69a5a8f71fbcb6b11fad85d9405e31a0c07f9bd135e301f2d7a72b87b23a65085e7340bc70d3ae2a3e5e0badd54994143d6c3c5309ba906859a0a0504c39496a604b3aa4ed61fffc409cdd0f270264a7f4d0afa60b920030ab304bd51b584ee9e99eb13021e43c47c66e4f9d8d915363e9c5f55a3e487aa5b981a3f1022404013ff9a4bba263a28ad2b2ba8aa09b040d1d95a4768fd53975f993cc553a89e8a2b8e426ca8b0d7e931461e53a0746bee135a1244995138532547423b7a58d23294a4f584f30baf604301aa8dd6e1d90ca528a304565c609e0d6b43ca364f320d81a9aecb1a342be0ad7c385932893246c6cf9dd7427b1b6fe9f654a0c1ab39a617352c66bab10c29e687919f5d3e3d0ebe299aef6411bf683bdbfcca33f70c6f9b21abbe2b9abe4c9995dc518c9819dc76ce382e19c5c315583cfa0c0baafd35123e2290cd5fba2dbe61724199bb705801795cf2337edd77bc4130ea848966f3824aff16fb51d4729223f925485350a9886f747250908e467afff2bb780a650f0aa1aa5c74f61f92be7fd2f9527e89349041e3c6ade9b08a921c30f84906645abec407f95cd06f5d163139540e8f2d1be3609a4eca52fa9a17971431945c4a4860859798ed4906c76b205745035d68f292292bdce4b9301a4be160b40a460de6edcc20841fca9e41a6f7ed7733ab62ac33dbe5e6ccd75578e121346c807a32ca2a50fe57b036512d6b36e16086463c85455f4f8663685fe58d03c89d87aa72db1470f79d8be42c5eed0759164430985c8c9d802e18ecc1935b35348210fc9638b97da0eff4429499d122d811b0dc501fd7a8b32d99b44b29325e21c18a5f7edd97d37be7cd9c8b61bb7e90e6f60a0b6a2e73550fd2bc1f9403be51059140d4ad7c87988b563f6f1503a9e3c17054c2dc41d2a1924b1eaac688e4d4c3857c532860de1a065a1daf8c11d841fe048dfc9892bd9bb10ef67809fb87ca80581da4242a2395f265dda993c346649b185fa40488f34979ba16a510fc3b4b93e2baa953fc4dd4ff5ea2ee1d5fae6fa90a376e7954b447c81bd2331e778d5f27882037d307d0f194e59db7721de5909a925eb077a6839fe4497ebec9a180c353ab10e2e0e1c349e1369861f872117d143705f549c7846687478da2dc1d026321afa2725e6425409b00fc86c97de7617f0a562a9d9256c5e8fe0c5182173b18ab6c5df9c4ef451105f0e5559a2fd2828d18b61a5521723002ae10a6f2dcfaac919633b5141542307e464759c953bac8c790ebb882569cf610e448c572de9504db7c6e3d40dbb5bf3a978ff045dbc61862667b133e13b9e327c19cbb36e719393fb20fcb534a31847e006a044beb14624e96068ee51cfc360080c38d49d26e12aadbc57e31a139807927a04a7d5cefd000640d2b39b726a824711a0b69b00ad5be4a70204f6b7e2ed59c457e1bd6cd97940349584ed9f970bf6b97bc30317eb512bf6143eb0416d881f4ea3c1dbd8964267a022fd49138ed3d5f669229b64ebe7b63ea4cdb7697c21c844a3a423aea039e099a6adabc03ebc21590d2ff279b9285ed5ad9e993c7f561824f198f3739116c6c7ddcc0a9f0b01a99ae5e1f99ae3336b6fb64a7c67bb544b6a3ea7f689b6118619b3d6a0e7a43dfcb9c13531a9d84d7473a5a75819de0da034fdecb8461168dcf305e1a4fe8e6b56ece5ad9bc02181a0328e6be6f7f450f5707682386894a2dc4d1981dde86a406f756d07ea5545b7e2bc34948987ed2da723d640d4e3d832e29fb6795214f853f615e20091fecb64bf1348010847199de61cf5dab074f6437c512257b34685b8a6e077183103b1aaab46af6b20008f9b8830c9971412c274576f6080c44dcd7e4201a5f936097ae19444120e74795676ef125387b498a4ba4bb2b6176d73c787e9f96b4fda8c0017b52fd03b3a948e567401c79925fff84ffffa1f8503a85e6ea1df38b8ad3c08d71663a5e9fe7753e9c3a2ae61c43550d46e090c1e1e6c3b27e6b26c85b8ec06043a8263c64f8e86ab85061c14a210ab056eb2ae53250591aa5b1d04980839abb2b55a827920116dbec0d678e0feb4530e3a65624a3c91e97ceb5f3be14151f332f7bfb3b0294e6a46601c7e76680508bb3cf12327d6c14b08f9121ff0ccb4bc1902c6da71962faa332e9cc935fceab2ea03894240810fa84a6078431f50bf8963504bcd4a5763fbf6543c0355eb5cade8ca2c0f287e04dcb15d3c8c1de37e51591c258170876518e750d6568bd08d7d1584d4e582a3d0d6c940fcff454e2d89667d395a1682b74d30bad08da20222a023f473015b327402f6730fda369718f4264320694535daa57d0c9de02d61124a1d5dba7ccf6b078aac1fd02a37a16b933ef021672df26c18140920d49144506ffe0efa5fabc019100d66cf92a1b36e2efdb889ba4c523a738d421a2489cfeeea1505e98b06a177470fd9ee70576988955f90642c994cb57312fbc6de1a9a124ee920830c2a5abf4e84171dfc3acc1938f00d773aec9c8850d1550bce41db1ed62b170ba2e8320e749f74fcc3e18dd4dafbb155d2bc16298128fb504eb4842e8195d807182d12e8ab7d5cfe26a8f3ce7755055ba53e13baac6e760806c093e340182645de4acb66a0334b092388dd9e4a94687799d1d80a9fb550d0099e56bb02934c0ffef568c2d9153457f1042988c289ad3c53030bdd0e1115c1e9245bf3c9828229049d00a08192eb9faefb855bfce04c18181158a59569e7ad73c59b44ab92409173a61d64ba948af70b9d5050fdcd9370cab6804a317a40470cb15c7aeeca179d0004af711ed0202d72d149cb688b506058e4db694d874309d7e3c14609f69d4ed72cf1c14639124f1f759f0dfb702e716e5cb3083e8394afc73e989e56094d34051c107cf993e2860f7363915915219d48094336438e457c525683fd05dbef0025962114f1ae2c5991e78975c7bf265265abc08ed83b0809324bfb3be33bf10a6a284d5e59380e54ce3951522037400a0bba1acb6745d5923e83e420993a1020055cd40c489880ce2912fdc2568683bd7f8076fa0feba24752a2cd67cab172772046cbb8ac42025fd3919c14f87ac79ddd85ccb58418f76c87a6f4acfa64314bac8f1915ac1367054d977248020808cef0413d4d8096a0fda0d8df1178f7c3e09e94ed32f45e45e7f2542f084592150233d76743368f5bc160438006bd3e55b75fd5612087530d3d3372a62c6480aa6151e38d7a646dab61b7f3c841ac419a59c66a5e1cc81b9d8b40fb9bf4ff03047a9b5401ce4ed085c505cdb8ead24416db2bb7a9522ced93bb2d1bd95bc2df68fc91c4f2f774243fbcf2f0f7428a0ba2568a22d983296881ee33a24aed0bdba5cf0881eff17a8f3393700a8fab3d6e7587f5cb205ce63c47b982ac9a4e7bf56c4541cde3a24f647259897a64b95b90ac635b9add1a6d45c35ccac973ea3d20c0ab2426594cc6bdb403a72120a550d801994de95e0175ee80d8a8803fc14037385cfb3fa8263f364d9790e68f92876577cc23e599956f159602f3eadab027bc8af7f06f5afc42f2c6290ffd3c946cba21df8733e931701c2048772ee162bfda6d009dcc969693acdadfc72f2064868afc910b0c465ae84f8e6fd85aa1ff2f5c752ce2944ac6dc83210be2a7d66e60a1188ec6847163337e70d5337784585c8658b03b8c10676a5593402d26d10fa192f0c219c55c3784e9af576b1e5e3b58d381111f2f7afdcfa6f9c9b2bbf5c11385e854369e63a00c2eb1b0243e5e4094fcb533e7c66bc1d2e7219802d0fab46782ef83076c857b078138a7c450dba8f9227dfde880892faccfe684d9720604a5e24e10f55c45a2f1a4ef897403fb08907d583451c83162cfd2bc42bc444e46b394947932a011b6ca9871a5a01166031361bd1449241193ad9bba34c179245ccf43794f4c92033a078f846465c686bc0195bd60031ca607a376385a42aa5e231b3bdb3cfb1d437f38ae3dbc4af2302b507890ce1303480b6b89bacd74ea4ea420fbb84a7149b228020ed3c28ea02f473791b935110166c7f719f8e501410b7aa4fd9f9445f237e282827f65834b94b770f19be537f0c775b7dfb9feaf8c5fdd2765a17b3ae1ddda928ef9330ed5bcffe8eff9683a4375ae9b31dbc515326f8b07a046b12b1a9c287c67ec08e956b235cfa7f9c30bb9d5596d5d75b2c5220be179e7d61159908b45f0b4c7a81cabd6f81538d3e2e9b75aa6255258b3df1e1496feeba811963cebb6d684736f93ac664df413c0b7ff6400f1e6c5aa37a5fb6225873b5ad7a7f2dd562376e1247df57ed4d989c4b5d3fda5def6f524fbbb1db7f4cc08acda435eff638dfb102c5127f8915f40d12ca52ae8f4bf9d1a9da4331e04bee71bca60435a780cdd40b0313919ff8085a1cc93694897a7db3bdc85de8f18995952e218a8e501b6fec171f128efd8412202179e55a80bed3816602df20e4747f667f3de7fc6e67fe93ec74b47f8159a2673bfa87077b8cba166ef9eb89e142db020284c557d0854501852d2c58dbdbeecf1e29b210dc8104752e99f1912fcfa29098e9c1f4e18a0edc200b3e20e77c5811bba8c10041934ea177284cbc946408038db93eb258594c9b7c3f5f198be45bb36694706bff2e0d0378bbaef55ac3a2041cee27738bc6d05963e994d417c645c64018435b53dddde0ef76d1e8ea3797c8debe1b50a10841e63536d23050c1253e3c0bac21463cf435c58bdb4d8c3767c9376b86e1c14f937c26b87286939f3539f1e25af895495b01b132b236e331f4e8520a81e0af1e38cee3fc50424cb54a14960c95f905a8d0aa87985739bc4a4dbf450d0c0dc2f399a9e27f3180908a5a4735947e18f877caa2bdbc075b7b4fe5b7e52af347e9b800c0ee818a8f85a9df00455e3e62ef5537b296736e8f429024f563a79c08068fc716ea258ae7d0473c66a9c17555c717e55877ff88f7e2734a9bf412fd408d4729b4a530abb910a64e241f1d82bd04a66985126095806dca0f5de26203bc2241db69f1983fdadd875ae621279c29a0a05e8c88497ad0981d36fea20bb81d2c21a89b89dc141c530bf2f598e3bd9fea3e9ce3af7e634b57302de0b170369279e1ec8c8c5fd95b2ba65682c981f9101bde31f964850f1ebd75b4083ee87c3b6f848a93014db7f124a6e9f4a2b070356551b5b9cd186c63cd46a1e6d4e73c6307a9cc5174490c86d9442920bd8b9ce55984b61a19929e666aac4a15402f041789d8cabc4d852e2531d6c8ad6b03655e057a689529545f9e30df6ce15701dacbf7658881d24aa80cc76e72ab6741d4c22f26641b73cf4b7381149940fa9a371822224135c10824b605c1dec28e1b28d7ee0678dadaa5d069c6fc0a661e78d7bafeb7c2dd69fc8ebe561b2a56467df104b97b0f228b3604fa1d6f3a5b4454d1555f4cf694e82cfae6c2b5b3957f0cd4b80c2f0c1f7ea717a10535135046559ab720d206b56ce88c1553856e2b15773c2283b6fbf59c59860f1e7d9f43827c90932b6117c7d4a8cca3f44d0725edfcd9549a07e501ce7d976bb023ac5c6c40b0b749a559c2ba80d897125f45c5b8f22e8ceb854a6d563b47c9df38f3c13260e8904dd7c60088bdf3a5ecdb88603918a135e762bcebc170ef57c45f140b2e6561a82d4935fbc7660cfa3f0b581d8da8407b958ab2e5e8ac31c27704477d3df9d54c51316f76deef0715a7a6c68fa143a148fb37b3e4e3ef6bd40462a2731e1e328360b012d95f3cb7b041b5895f83825b7814ae7b5e9b8815a8d4cef38df88fa9a5ae6c8d2d340503ddc9b4e839493f9add332c6303fb574277ca41bbb982cdd019bb62a06996678d88a86ee3c21d362870fad4d9d54bd56e28edf02749e5353c44b7f36b5144dc54bae9aca5f9721f49902f4eaa3dca3c46fab906b9a65ae3acd9f545a0fdfb2e2d55dd5f4fa0e367d391f3dfdf6275083bc6f7f1ddd22574076db07ec6be594dde26ad5442b812fcf6981d7dc026f6e63716ea725b3732baa6ce49d996e6176953b09840b65b7ad13399538f0f03210f2b701812f2fbc7dbcfb9c9be7e1ad3ce66dee8e05104e86b7b7f33614ddebabda87f7cb771e4fd27ba55a9813cc1bc05800c46cba7609a2fded1edf287395cf77d14673ace38cf7fda1571300d908486028c9add4707e28ad1ed1341b81688967c53da0e15a1be402d550a7ea86e069a9e41f582487c675c43926717205eee463a99c717a453faa8e54d7168bea012dbea24f415ee51b19ed9d748a10cf7d7736959e3531c90cee94d42558adc2fa4faccb97a2d26189a8527f95038411408e063eb40f2162813cf7b29877613e83da32f7789fe9102228e2a3f54b932207cfc5a2f6b45edc11ec230eb5276782501d1121e2791f8a98a9d0d7be9e56286ab697fc9662aca32c2eed9870ddc6cdf0ca534f4b643593edd3c5b81def011a4464f9ba11c258662a31ddb8f08d58606a919aa09131143fbfdeb40ab7a444541728449962e5c8322700758c302594482dc1d52232bfaec3bcda26341fbcd8e513d5922b4869f52c638cd4555a4b17a367e2bdfd07ada5ad92e408180c22646df510eb8a888d40221b5accadc54464064c38f22a3e0a2e55ad717ad263947a98c9505ef46655ffd445210481123939b1a5759dce7a7214bfec95c1d205ec6cd943e24c64106a74a4d4dc2017a0d872b5c316160693542fa8945729e31973e39e954833e213d341cdaba31b800a7a01a32d5765331f93a0ffbd8d7f28ed0745bedc1e4d9c257a76a953647a1b3449c63e6270c7ceb9879ca234d5a613cbca8e8d2e5761684e6a2601b0fe2961c7988ba6a926bc4414a333e166bad7c8d6881ac8af1283089b78ccb971b31e10aec9ba4c57602861f01d38ab727720c9d6b146124ca6fba7edc5d409d835e576036646e2ba1c4c9b7faa60d2c59097cc0214130a9667cdbdea3aa96584cf0d485293150281924d4307ffbf46207e32be4bb5771636ce430441a71f9f381729ab9febee4b9889eead1c4ceb4097f5739faec7bfffa7fd8240fb146a8198276de3f0db166fdd999b7a1a9e06bbcb727592b6c13747bd7742a6de97f2ca0b58a3ae998a6eb6c7867cd98fc5f8bee6ebbe1141e5e87594e472babe7594a54841a38612993bf525fc3c64fe9d4a763877db9f6bd76faf00198e33600e581bf6aaaa9ef41deb8057337d479e1394aeee850d4236189b81be47ee625d43eec85556077be5349b41b0b634a6f168f75c405b9b2938188b89b6461466b52546e71fe036233431cd4908bf5c3afe9a21aaf5a31b77d9d4457ce9602022e0baab5d02f78fc91977933200124665806b5b570b29c60007fe781e0dd89ed3ba1e975022a1ec4459f697484dacbf7d470a353ef7fb71f6f25da36ea31ce7526f30b2bc96136620e8ceffea5ff89ee1d1d237ae1744bcfe043e7d44600f501040d44e3a8a15d63a5dbb5ceb74ed98b4715dc33404d73a8d592cf5568ba5460deec3189e7db894e91e04b7da2edfe5c1eee5a726ab0802dac72bc1fcfb2dc0f241b6412cd984eccdb67b6f29a594322f0eb60e8c10437edaac9e0f3d5d7b2e72ee9ae643eb023de7dbfaf8cc73a19ee73306e03f7de82782157e3628f4b351bb9f95b2532c3cfe089c3ab4f47d3ece31ced1e8875401232f828f7e4811f0b90f9d814d7da7ce225821c40566f7fd8c7e2dd8a08d22f187a80ad5f769b77a57c88cebae98adb5d68afe4138c8c531c8f386b73e8af0d643ad74cbdb14148483dc2fd0bab539bdf9bde0f0ade17507913d446b256105b68e906bd30aee8bb87fdd711ecb8d6d7a4d136c306842f5fa9bb11811c6697dbcc07a7d1c471ff38fa288c3d03f0cc3d0814c3e17edf59339bc1d77be0520e47b89e7fbf73abfee39c64b42289a733ffb8e7d74d1b7affc85d7280487bf1c7237abc055a55ea97d63e00084af1ebcf62dc28f41bda1ea34e225edd72b5386dfe37dec4cd8e9035ed23e96e81e773dcbf09be9352e573dc2cdbfb3fc8df956b3376adf1e7cf6ed1c9c8f7f38b73fd1ef07ec64837849fb389e9d05f51efa503b06f1d77119ed551042ef702b3074f257f6cef25e294fb5dbfb295ca0f60f58e3156b59def07883081c9af21e4bb0c1267bc736ec5697ea07a5cadae0aa12ce3948d02fdfa5ec5614cd08e40b0cc75ffda09f4d71f61c757997cef302b5dfdff8e5c4e5056ad187fa2e50742da24918df51c47dd147f3041be88a28920968465d703f496f5fd2e8fa9617a87d643bb17b2662b3cd194562c07d6cb5ee5b8d94d17affcf17b831e78a265510aadfeb79c309c2e29cabf8e2b423b4c553dedec69a4ce9724d1fecd4f52bd6b1b8a09c9d1c9d13848873d13b5cbf4d41a44edb5f9095223f88a85d91fb90cbd5aceb648d52e5da485c2e97a343e272394749b29a246aa5721ff2056eede6af0c71e82651bb22a8082ea98e503d8885b1ba6971b45b06f6a2b58220fe5608718176ea2e59b7556ffd2a3875ae108224ad33597fb2ee408b9593605b817e81b704d1c5b9fd9fde8678baeebb5e3f54ad73d6595fbbc24a7db8406ba7429bd182a7de0500e13507af31bcf6a1eac4025eb27ef6ea08e5f9abd7babeb7c5797d57350f2b5ca065013b59af2cd373564457b8407b6fd876eef173d8766ebbf5d683eeae81ee7e0a3a9b8697acdb34afb4ed81df936ed3c6f13c6dda933e824483ec1ec33471eadc15edaf557b1be236d57bf32f239980fd3a462f8a82a757c1ad03b153074fd68ed8c893648592d4fae9bbc12020b81297982cc911631f47c798c49125ae0c22490f224dd3be0d5daca1e730beb7748d6eeb38ef80ad0a76e8220af837ce5930e24b100cc0b98eca697f204cb7cee6662dba41601f3dc48526846ea21b04e94196b4a457b30cdd9aa4873f106136495b62377fd8ed6fc4913eadedc7c1934beb80115aa310ba46b7765c6842a8bd0c7f2042af660885b3f6e182da6d1afe6a5dba771cc31a563c4bd4545891b28211245d62e18526c694902c8052eb153b2df5d14366ac0b8f1a28e906513162d04982042caa7ad940c1cf5e6494d363cf1b629cf5e3c7e1c29f2856f413c544322fdf063eef1aebca7addd731265a0fe5b19b2c8fdd8670f090a5a53292ba4e54f6cafab05ab6ca5a592c23c79569c033f43c96389e5b13aae720a82384a036e10a1cf2ec2a0c79cee02bfa21af43645d1a72d2adf9dbf508ad19a2f5b4e691878eb37f9ed65aec167581fdd34d9301a78f38cf3eb2b4b294ef9157164de5f29c3ad79e7d7cb63777e93c67adcf2efe72f69de921f412ecdcd54c14fdf410cd2e6432e0fe910aec8bee82fca1ab40777d74c1e90ee2f4d1854c0f2042abb3e8b2ebb481974754d7ec9edda5146ed38966e7991e4018b908fba287680976ee6a96a97ed7640088d34558105984fd3cd5ab37bc1e5a0565ab9c857d43e8063aba472b7571465accd848e7440f2fd9cd729772d69b6e7ff66ae867ad7eb64a2a8721e3d84eeb4359eb3a451539f2ecf9ea36ada0c8b3cfb367acece3e62c8d0797ffe81764030fadd76fd10bcf67ff2311ca6d32720ffe3e2ff29d3fc446e8f6a1655176fb2e38720ca2d767d12bcb995a9bf8265585a5d5255686b686e7366df08b2a121eb908e5361d791e73b2f5a1273dc0fa11bad14f72a29f351f2076ed5e48641e411939d1ef3e2ec480d61ac24ef2a11a7c5288123dc07ed10936c9934e10bb2ef002b31fa12294d766e9e4dc22d767234ff29c846ea29ffd2a46b4deba752f32ac289c75cc0916ae2432e17cb76ec9f29a48a80a8cfce8571f774ba10d5e9b1e327c88aa20c38737c7cb7d363de8741ffa9115323d9caf02dbf6a10a6cda877ecb23c7e16c15ba98877fa21ffdb60df447811e67322074eb3df304ebf68910f0a2e921011fa22a48c0874615db9b7346280beebb20fcd07d4515842128f645ae2b7689503ae0a11fcf7bd96de966b4eb9a4591769e5f7fe8b63aa9c0c443b3550ecfb96bda68a27002aee246cb0af9cf05f6857cd72cd9b4519fbdcc56db47fe5620feae6949bfb39508fbd855c04eb5eeb10229645f8003c69a5c89e8f6b9fe8cee31e93669f492781b143cbaae03579576a6faec56c58db224d43edbae7043c067c75dd8ca2a3bb6c2f82cbbcf775a8d699ff39a0fb7297dce39dfdc9db39ea823dc6f40fd7a8122f26b6d9a2a6073d46efe46fcf813a19fa7bd03c63efef0afecf5b0597ae98ec97e6ef5a6e370bbd29a38748fa86f9a50a6f378bd1e8fd7e3f5ca299cad66af347fa38fa33d4dc7e6689a8e7d1cdd344bd3f4f1d7018b5f96d8fc8ddefb998e7fa5e74c289c9f2694e949d7c976e5f19e39cfa47f1e79bffa463d2f6f93d1af3c6baf01f5b7fd8d18788ec1eb6dc2e03b5b01e0bcf76a74dba49f908902eef1cef490c193b4e7aa19365bdd26eda39f26d408a51d5be10d5eb153081e00c7e1306ae4bddf3ebf378e98410d7a3cecbc9e77c03da31f8823afc1e3dfc6dfdb008f6ed473a391b78191f7bcc3cd332c093c1fb11ba1fbfe913bbaef2365ab1fb1637474de0f87e478c41863243f728cf1038ed03c03ddf691907c44918e9c87ad7e1b5cc307de8183f000ec23ba4dc03efa38f2eeaec7d9731fcf33fcb6fd0c7e9a1edc479df31c5b7db06109dd23eef9120ff772a607ec207aee26e6f5b0f3963af0aaa187fe4a32a423a47144fa8d23ca1b31835e6fd3e047efa19f7df07e208cbc063ffe3646c2bffca3cf799eab2c09d87968bdc07cf5dbd74332726cd4eba13b5bbdcf45dc1f7b2e22f7408c6ee43df7f57a758ffbfc5ecf6bed8df8971fe937fee8474628f65c6543f0f9063f0cde0167c8f0ab99ea027d59d8e99ea11a5c890320081e02ba814beece1482332d8580bae37299f38d47e3b845e43d6a404160c7e0a36f9fe3f0354fc0bee448ee4beef37b869d02806e2008e80602d1ed02f00ed0ed730de83e7f67034037a0fb1400fa01ba7da3fbbc5e0048e1a5eca71ffd34387009ddf53845e8fff916a15f83fb1c8397a6879f83d0d0c1cfb19406bf4074dfb4f7b907529ffd6669f0fc43770718343807374b832ba1fbd430bacf51748f189c34a13058e9f75ff80e83c76775ba5678293765f0d1736d42f2d1c7dac4f3d1cbdad4f3d1b1f9000cfe4345689cdfb5f67dd95efb79b5dfb4db74e4daf30c4b827d9da992323892f35c7b799b7a6ef53eeb7681d9917ef6edd7fbdd282ba111dd00b5f2652bec3eb7261492e3b009d543914aa8df730ff57b68cf473cfe6dbbfd47effdf6e83e0c5e4d0fe388e7fd44e8c780e6193604ed48bf24ed86f3380a59dcd1d1cffed9d95991d148ea67e4da3cc2a3916fdf399a0ca823d4115acf337ce2d1b72fc86440cf7b46bb1ea7918f6e64e4d884321abda8c85754847944bffa45443efe46af260f87ebf9f8c3defb59291bc2e8bcdfb6cfeb8047eff1ea8f3f3b7581a30ac4ef79873bfe78aefb5953e7433f9c8ff57ba66bb79be5d9753f0ff54dcfe54c34ffec39baedf2ec75c4683ea3ceb12eb2dfb6eb3f53817007800467a77c5cd2444187e672be2ba52c09e2e9e358da15763451c0fd88da15d6c3e838c785e3cf97e4617883bc03d69df9b76df9db76eab593a5c6fd4adc18c239493b359a764550d00a4b820ef271f4a0a01f7f2baa5d1164a7743664637754fa6ca94af70e0ed7ba34fe458364116aca849dbcd6b3baaf7aad3ee26bbde0a8f451f1bd245cbd4343c01061f25a435f0d43b7e16fc45e2ba971e83e4fdf6bacbdfc85bac3efea2234fe813d7b918b9e67cf67559c166d0c3155dada75f16a6c75c35ce27cbd70882d569bdbc5aef396cdba47d5c7b4120a0e67af9c15b556041cce9eb5ea2ad649268a3e1fddc8878ec8f187334d27d239e9b95f09e209b89c99337366cecc9939df4c6f229d4ee6481fd19ddb25fce8bb8427bd7e093fbae9a7ebf187dbf978929ef36003bdce738efbeda7713c4f9fcf1d08dc4c8f433a5106d840af43733e7ace47c799befbed93e73a9e93264e67e67e3af2b77339d4b15713059e9b28089eeb5010441ee269e7d0104fcf23f2ea472691896e231c0e2744e2469ce7489ccfe7f3e14e321c4e1475e66f3fbd89f3221f729eef92908c8a86784c8ff3dd5191e9443d21740399def4d3740cbf8a974cef80cd5fe9b8df0ee13a6b7ac0e17e3ac738d7a1fbe971380694be9f9e9e44c5b33e95f084744f179603a57bb107aee401762560078efd76e01c748042070e020804ba5b57f2db842dd002af2f2bfdc23556c9e93b496943d299f437a876c6346a7971622f3fd7114c8de4fc913eaf23d4af18c5be24df0827b69824456cfd0e51cbfe5eef707b75047d75188661188661188661182269cb7c3208b9eb3cb7b401060dbd2134c92883cf0320071d201d01e0039d4ea7f38048c8d10c453ccfe1aed0efe7e1cf7f3f1c6e8d340ab2c1b392e3366ce86de8252979909434d4234b0cbda124231f11af4857ee300801a08a8a6a0ce22d4d494905913de0506f2d5bad65ab35af21363c3a68d536d4cb601df48e8e90928c8a7c1e4439392803c007bf9c86977845bbcc2b4a32f2111579e0e1909292cf9741e957539f51521286a45e6f28e997adae7ce42d0e784543bdde063d5f0fcd5657594968c61aeaf5867679e86883d206a5215f068be706494a1f804919134623015aa44099296c9004e1d265c3e973105d0c4a68057b04b5ac5843c017fcc1ef0d5e5c0210f362f3e5f5d81d08e6c2633f00d308213ba2d0f1e3676aac4a93921c1e2278d648c5e1fa33b6e7be2d7b494a53fe3871387b8be4048cc59a356dc4d072018e00f199996dd163824d15aa50cf195299df1b7cbf458072c64c9427525c906264ca8ac76253d83c76129ed01778183df631e7a61132fa24cf67cf190a94cf6e007c44cce3de63fb6442e1289f9f3ebb9309955b0023460d1992363618188bf018c9d66319cc00f4c7ce16ac144b9a4c244ed83cd9faec057821cd2ee7ec22d80dc6fc4e7aacd47526a6c911b1265ac49c0079ec04d0220745b60c890308aa5cd0c0964c8559a2e6b1d892384c9c74cd78ec02d062082d2e3af070a91183c68929180c9a20c09610a4c72ef6a4304bf185878a142976155cc4ba409ba57d8b58a20f310b8b4ce5e7de67aeb0cf643e2bc1f159c9da670fc197d5c20a1b606a94b455b148f7f939a70583411469ce79009f91d4f89c7dc44e950d969a3234e83c01a39166574144c52c114b53e500e4335e35f3361e7b792cf602db633fc51ebb4f2c8998c7625c5c8f1d04262cf18a7de8357822dd97eb4e5daa0ffd5ae1f8d0f7bd12c0efbb55274896a2ce1fad2662d27db1a050c4e872d666260348ba6fd6db75ba5959511f5ab3b3b4db54ab448921feb66a4cbfad5b054425040f0d2fb02bb574db35177de29009c923478b59ba6d9bd875ba54593eb4571f627de836abeac36db542f86dbd5a90a2ccca9a34335751d26db72010e88a13216e4ea896a4db767de876ea3a895877c97a18d6b50f9d05b10f1f0dbdeeea66832f52a1398954c1bb81692c0cd58701f81b418e94c832c2e50a8e140573f088a9a0c3a58c917457b20fa93e04418a1c1d64d6d8303b5395863a72d0302b73064c983be216def235cbef241c16e531f6f174f3584cc9e331128f7d0350dcba6f7f8fbfc5adb78ffd837bb5ae532ebb5961578ff37c9b7e8f73008c4ace3a36e5e3abca07f3f224e94b2614799e8f1bab13ced3e69562079e3e44adb7fe45e745d13d30a130e91de4aa2b5e8d3d005e3b07232edfbe98ab1330180c96f00a06d336a5320a8bc12f182fc267d7604251519d5917b982bcdebaa571eeec96464651728b44dab3eb1e8a644216f27c968e512413463c896e23f7f98817c56c4592a4b52f66a9cfbf6df4f3fd3626222222ca4137a2b6a222f739aea8a868cde7f3a5bdfda2b3a2ac8ce5d5b5f5360bcbeaadfddece798edbed76988ac7e36129decffe0e07f1924e57f642b91c26fb13a7d3e9d676bb9d7ddd195eb2b9329d8eecbdf092cde5ba743addddd2d92cf367bf2449d20d87c3dd36dccf3ea9b5ce64a2287a619cbbde660d1a3c6b40f3165eb2d65a6badb5d65a6badb5d65a6badb5b66dcdab6b2b2bc4faddb22076ba5416850f386672d811c2064fbacf0f379cd82d7d0164e2edad8b44551a8ee0d66b4d860a78c1538649956020b70fa4e4aa48545941a58cda911b1b787d61184b704df9ac4d12fa33318fddebc863473a45ec60b14566c78b282b0014013494e4adcf121245c49c00b2f6c8840aa79c78ec19bb5107a6b86041812505933a4b47e2088db881040e1a2862c2b029abd68ee0b352b6c03cf622ec1b62c5448a1332359850a59b69458a31c60ff472f3d8177062b11e41a014a96233c32a15319109858738a8665d0c50c3fce6f0e57715f30abd899f0fad883979f3f5240a14171f3a53fd8252250a8e0fbd84db54bfa2b47de8bd30ae39e416af8916219c444d8d89b13f6448f0492bf0e13ad5b660309822c5187bf0f8c6630f5c4093c40818301a6129761534de9950b8acf2bb27c2ef24252cbf377c02be623df0431fbf98f85e7ce85ebfbac23efc6ae2e2433f9fa86c6121260e11234f8e7450654758a8011d6fd02c6163e2ec850d5dd43aebef5ca65ba2c6e1b1e7b2921132f2431f8590253d76537fb1b8127ee863135a2e4101f6d8711fe012a788d5d412185d1c80b930ebd8892b397760606db9497359999d3ab788f5d645acdb54b3d975caa975324809132e8f7dcc4c82e4d042c3c58a2d1a55fa32738e68b1a3ccd711b0207fb0a442b48b4a6074f0d8c3246fe7d763cfd8751eb162ca8a17c07899ba0147c3912cb8203f6036d0cacabcb5b041b20d73d91a970ef4b1673497f1a01859e3552615b596ee3397f96e138a444aee1150860697af1758ac8849c36c95abaed58f3397bdf59b55075bddac32104869b99511f1a15527ddbe0f7d4cc9d3c3c717ae3b6be966fa30f40f578512b0d3cdc24b36f4d16fd3ef437fba4dde54c3bebcc40ffdc44e239294e1a366224d0db13069e840ec54e56489b9e5a0625323270dd11da2aebd46af15158fb3febe546fdd4a39772ed354b9aca6da6a4c7bbb7359761b11dc5aeaad67bf5fbf9230f9111ebb1dff525d2b5ef0452ff4e61e5b557eb0bea2229a6a5089718971e598d48cb2b4d6dad22cc199614c8a05c6189b39a23cb9526bad73baa2af6329cee84a511445dda9e1eb9858d459060505059d3bd26c57e27038dc4e682cc516a1d2344d53882774a5d3e974bcded81d25bd72b7dbed7a4343258fc7e30d11eda210954343434344451b8ca5e02a2af16f2c45d6109eb22c6d8976c0f6572fb0032ecbdcb6425ecd9bf39c5b7b736e73e8bd1f726599f3dcafbc1fca0fb7496885dba9db74a184847ed7da123d871c57e4e4cff4dcaffc90cb7dc8e53ee4721f72b90fb99cf55cfd1ccf759ecbf90ef21ce9b8e7391ffad5bb943bddf4ec22f06ee739b7bf5d8f934445605cbad06fd7e3c4a8089e890af9353d80b09e3fa320c82d023fe9a546857c07a14265894341909e4dd09f753b54c4fd93b42599cb79872b7aee774f5c16fd7a6efe48d2715efe4674975f964e3a4e9745bf21377f380ff2de6fc8c91faee71d30ce962351e9232a877e3d94a8fc918e1b7fbbfc7169f471c4b9a0fa79443fdc1ae41142d74411a2a0c5bc24a2067684beb60d03d66dba150d4f4dad90fab0624ab45909f647f7bdf78ad5436c842dc638dd184e7b55f2b7e8b6d8b3938ff69592bcda104ef489e936d5b13b697fed73e8f91d524338f7f917b899fe77ff3a79faf8ab9c51b39ff457c90a517bbbf6a9e79cb5ce39db2d02ca866198fdfa0c1b4276eda1b6992acfb021d8d02ae7eb575be1aa52bd7e879c1c5011ee6f111e7b18e8faf50a81db1c5e3b4edb0ac459eb20a208227eeb3eebd5fa785d8856bdb31c3d144774dc2138bcf59aa3706358c7ab71ded86d2eb3a875e26d436bcbebdb8656db50cd6dca5aac35bb1643d18a35ceeb35a93a70c3f856a33a0c3d6b1743adb3769b5bd8bfb7de025410aa68758a2f603c09f9b0e2c2d3dde58f5ead88e3dc4fd79b724157e709f696b9e73ec79fe449191cc98f3608728c1dc3d32d3d93bf2de24912452af28c6e24144cc74845a80926ae2f82748b51289d746ca24845a809255a2fd0b10ffd36e9b80c5e66708c6ad7951802f633ecec25baeb71663483631444062f5110181c87281fa321cacfa03138ce3738c218924ec7e8463a3a3a89888c888888b26b91c8713622f2d34522c79944f749847d7e5efcf3e121dc79623f5d3bcf034fbc3a83dc7ad0108821ef05792fe847061579bd4eee16d5446e7f3b277f2ec8d97be81ef24ca29073e9fa87cb2b447ab668798144260c79906f8d8628b14fc4a9fb3d71185b783c83c7fd9eb4ef270ed871ce6e71e933f8ecf6b3eefdf8c481749ce3706305ea728b789c2b30a9a966122aa856a01e7346f30657c80bae329db58a09285fab98d0fa9de1af07e06b95126f9fc2189ca9c71e54bdee20cf4e7a364fc08ef32027c59afa6e53900739b6a6884d13460731ba2fe85660fe5d0314b20bee8fc1e00a448c2fc2f7f9af079980470f5ac1e8bb4df8835480df97b3170a3c5fbd5204ff7aef36218da80aec675f81fdecd6af18fe76ef6f95126db54a89b62f7fa7ef3661cd0387838256aa5a2cfece639c245097b0ef085410b0e314e7bd6ce778666721e7b68c339aab1313d6ce849d8a708e00d66851f60a420e723fffac8f0bc46eb1826c103b0bd85b08973ef80eb8409c2863fc5acdac082ac4aa73db2c5f7d04b6b64fc562d5abf40f87b3dadc22ac8902ee73a6872191aade341c0357dd260d652b8efc0d79e5ed74a4cdf9a669cf2046afc1eb5ab375b23a89567de4360805d26a27d17d7f0c725cb5d368ce223ca320827c74ed1b671f30a23886ff82b093973e236bddda5c49f2c87126abceeea7506fd743d77d84e65cb353f5f9d012d5e866419058d018a4ad57eb155baf184b93b5bad6da33b6c295d4b8ea37cea3a3415e490dc2fa9057d7f8a2b806913ff4c354d6c390938e7fd68b7e3827c2f5ef0ed5e5b4d63a97f39caeaec7205c514c7ae8daab7bcdb9cea148a357c7eef87fd5b7088dbb6a57ad3a8820b4f4d144a1d438c64d137155a87f84c1870fd04ea2db6e1137fcdf2ebfbe46710c1b02f65fbec00bb4daaf5a8cfccb46c19b86ab700c4c657115ae3ae34a492f8a7a1c45d15378d143d75a24937c650aaf3d544a21845215a533c8cfa08a4343bc1874b5079244491f77880f4fa25bf48ac34eea32df2514ea050679c0998043eb0506a13bc46b1fd1103df262193d250ebac3adc0aff75e7d5da3bae633eb7befd5f796f7a2d95625cb8613c14bad749b7210d2ad6f60ba4da25b17e1368d1e846e6052128348f952f63bea270e6f312eabf6db018b79bd7dba40eb590c51df4975da7bba120ec333d4ae3d141d9b235a6f93885aa60dd8baee83ab1638ab9819b3bf626ca6303640cf7746e0432d3b87723ab17ce11cf1a20398b0d313c66887055ca79a8ea1fe2d8337b5fed147fc8896da9a285278fec2dcaff4a19fa93f88cfb359011fae158d00c636341d77e4d95bc04e461e348aa4e70ae4567872eef371cead57bfc0ec2390b48f788d6efb4917987da80a78292399a0d18d379c3ea402f6d3419cbec26d3ad1adfff49c7fb743f7e943a80ae76f8525a7fed3774d7b10272a823a427d15d29c874c38fd443a2107837ffa8982d0a1417c9e83c1afdfe1aa30846a748fe767df862272e6d09a669aa8f561758158176845c4eb09a920821542bcde1511f17a426775ddcf7aee577de867437f252c60a7112fd04ae0705383c98f3a69f616b0d388226754568c913336e4857484101769a89ad4e013a7abbea9c1044dccd40e3d68d2dcc37faa30e4b45aa8f511afd1febade7a4d97dda69c9399f8ad75d45fd72efcfcfd9ddffe7a0e4695f89dad48dce0ef4cf637a365b59bd91ae0834c1d296663b2b44877963a61461c3975d68c6c7193ee4cf5b7850c265f5ad680c94a77c67a00121c4d925ca1b3e52bdd99cf0c347578e4604353266d2236c643ea4c9fb67467af02e002047afc8403fdc6565bb80ce3341998cd09861b1d7a6cb4017a926eec258c1937aa1666586fd28da938a821fce120d0dffb3614e8ef90fdf3d7eb0d4601c2f9bd6a37e8fa35bbe9be6831188b1104e4c4499ca9745f29286bce4ccc9182254a94745faa6ddf3ed05fa7412541d710fefc50f34a73a34a5b9af44f1a133b524a042a03946e4bf537459a406d48f6f43132b5838d4acc890d3168523e56fed85082a3cc2a8d6187870c2e466ecc48b7f57a9bf6d5cb9661a73165db76edcf6f4bf6f6d5cfb5c1d16d067584dae72f9fbf6ed75310c10a21b8a6a48842e396e64b9bf4e2080232a1f545cb8f3fe93e475051f1ca91444a0a8c3c2568b2f683c48b2b2b40d20d7cbb41428a969c36676ae93531270ccb4896609054a4e29d5a4c9b5a03c27a7d6aad79680574a959b0f35a6badc7bea479bde7855cbbd20626fc04f65aa7b590152b9a94989366cf8e5463275339a8946449f2a63516a0e09fa7df2026d479f6c83ffd0231a14eacf34f971f269489659e58a65f1f5f7f667cb9e14bbf3d4ca8b234cbbef4cb23bfa5791ecfef8e51c82fd6395e1d26944e33b5005e2751f35afb789e660e134abf6d090047edf2670a171e3ad08ee430f57cb53983f2f02052c30495183ef5bc32fdde30a14c3f60cad8d024bcc046e2c9912f6e7ed2cdf4681eb028b831696629c41cc91383469a639cf5ebade1a70599d555c3e44917133c5b6d785e0c6960058f2547ae0069e1828609a5ef8c3e56c46494024062793ca1aaec021f3131cc8618618b83e7853507e0087bc1c504460eaf7433fd1d3b7a46049cc101870d6d8b96914aa70c8a1940487c79a22485a1a9f8007951d3c04062040d9b372ebe8c684245e448599f324cfed469fb6a223efdb85a810547ea87971678f132b36709121d601cc733793c211726943efdb6b05f7ca2be2cfd4e9950258f2734c246202f374ef0e9f27625ddbed7595858c13d3684044937d3eb52fb88e9bc9ef3dacbce6b7d020d880e315c7c584049b51128618088a095f82195f2dce4fdae158f27c4e2f4bbc2843adddc60f8d2af0a13aae4f178425ab07831f3650a10979cad136308caf494399265c80b6952d66d0795147584893c3b5204a92187ce1db6608a17b0401367cc559a3f43d2138555938013a7d6fafcd50b2441191c5d3266b0914124dde7c7798d64c86b1d34d10747558d2c586954def3f5a689f23c81933081b4b6dc029d99705e27697badc1ae308181a24b992f244ae739aee495e5a96f89bcf6a6e99784096596a769d4c3cd57203e69f49cd16f8c78a9801d37305f55a06ce949b5ab70f2b419b45f7aa47c19681483d8e9067b26c6f75a99b957170b636ccdd2ac8a7e5b35db86d71e638c31c6189769f198c41863ec4cf869cae680629ce3f1f918638cf156cf3493def47ae44dcfb7a9006f9a66d4de3ce3e44db7804c28d3ec9152d4c0494dd3ed1f13ca44eb796e95bd2f93beb4f3a5e7b24493f2a519aa2fddbe7969a276c6b454a565e9d6cf79afcad07821cf426efb9850427c4ca852d422d3e5cfd3addb589afea5db3d2654596ad167faccc86bfd7566e66bcc902f3225f4681d4894e439a3ca20aff7bca4e77997e779e6f9c8f39307068febb20e8f386c77ec9850f8064df40b8db5362c66ea50f1d67c985b6888f8e1d146074f5a699698adce5718201fb4995f50b4b4f5a0ea728405cfcd0d9188461e22756cf00143c444af158adbe4ca734b6797605abcf60ce6cc9cb30d3b8954546d3c9224494db2c0f624499224e915b84e378b24497f42e1e3490e4fd6b224d2ab9fc73de9be4a92a4885586a140f23c129ee7568e09c5c3e29528cf2d9b09c5c3c24bd677ef040a306127cac4d13c748b599ac509ac546bb770f42f49c97f6f30616562cee32f3132a25e449579b376ba31a1c8aaa6c55b9726617234b1ea6105e9fc69b1840820b20d1b3539412fe409a20129e284075b0c6854cd590164cc8d3069d986cd2d71e7b576ab6642e99d33ed76bb33bfdbed763bcf66190dec0bd7e335230633e4b15b35699ed2b4e855743b258a6a9b052d2faa894277dc6081d243abc71fd14c0f293a4f6a6869bb12b144af80288a54a228fa939d174551f4da358ad9ec280900bf95cafa8c575efbd945edb5971e6940b2735faa6b756750e402768e922b33d0e01c28a135b040ec0409a634a8011ac46871aa82a906d7809e369779edc8de935ea59ef44c867141f3645912343ebd3ba3453159c8b868a1a145ce163133409d8341b43226949885c14e9c1f314ce410e2c7d75860a181e6e54c59ba997e8d1ab5355dbda0b458c143c61e143a7080c694fd78e1c6cc0b9224438e09cb02e4c5b33446b2b4de89c1b227cc6ec491a9255fe0ccc0fa5233a18f9415585b7ea805d2629ab435650926795c088bd2414246599db4afae2d3bbcbc48f1aec85bcf696d6eb7a98a6ec1d8302c62043023237bbb2536447ec912058297a328384858e1f1c46a0f89868ece0031dcf8d0e1c2923a2ad22eb6cc8422b16479e2a269b49052e6080b175d803196bccdc193230a18f28c19265d5280ac904013c30d171a00008d2943c38e16253d76bb2da4df3ac2d582b150bd28bacd6242895a4b4f0e352966f090c091ee13edc88c0a684cce9e207b581c29b323b19850f8ca1b0faee85d599fb128556b5ef449f7f9658c2419723a7371644e11ad33765251b482d6b302e3b567ed56e0bcf6f30a15329f5844832b4b0adb961245d2cd44464f6f0494154ada9a88dd0973a38aa22856a14246f5dab3f6918c6dec1445af33542cac0a9717bfc0c81146c09a5099da320205ca6e8c1ad759ebf4c1230626c575254beb135fb78a0b1cbc34b9abbb1fba75a31c631ba9884d39f50e05e341922449e6dc24258751ce92921c69793df6e3b55b284ef21a4016a68a5699227596a49b89dc799da1b130060c971ab1acaa21a2c843f7dd7ab273eb442cc7934fba6d32ee489de445897722d9357a85bdbd6662bbac4ee71b74ce84751e68c8eb5ea7d3e9c47469faadf4d6e74f16403d00e159a245255c26944e4722004c6ba77592174c2832eccdca8b4894a8c869adf596e5537664c8469ca8302d8ae00194ee53cc0b805a084205c9922d6426c46023a39f3123bbaf2f122759e46af9997a9188a67306870d2349f2e498c3f4ba301ca889f5fa5ca17571e356a4068a143b506bad774348204b08b96642c8228089281640ce84701902c6089a0da8191132a64f90283ca9d6ba206518b13dc1b03d62dc88f021c1474c9f1b40982ad89baaa92b79b47c54e9ad31af756e2a4a952b7e5cf0484bb516c9b0db547f27296df8cd21ec4e189e1b6178f684e5e932e3b11e3a8fddfec8d29511130b226408db8d385f8efc199b9acce9e2674e9a254faace87ede04753989b323db4d65a6bad7998503ae9b7129b151cb039d28645581b353bac744875a864040983c4cd8517232e7080ac8f0917e2e0809122c55887357260c2bfae7ae810b586d8c82aa386ce903b5d8ae0c08dc8410608d513b03b28508839be6eace1902ac08b2f4e5c5839f2862add3ea65af6fb0234d63547eac8c1924605108c143b90747bc585eb45b01bba8e5802e7889c31664eacb9906ea6d771014331d63872cca409b3ea91c54dba4347b0616b807169e181d50766f274052a62c7cb992d485208c54008db550fac29ad1e3a4dc384d25cb818fd56d2b2c4b584d9f2036c0b9e19a2a873818c1c33bac2aa90e4d1a20527ed8f131947cab2b8a2e864e4a72c47b800aa3ab506770d3f9d161e531445d1da115cb04b58bab6644111e3d4e20b764a1d0c302c3636a0d227a8a89c5ca1d2daca622407994785169f3467a24c9511f10bb02b7e32b8684157648d8975b6c559b642490056ac9912759a6bc90e5b89a28e45efb50a27af3778adfd5ce113c51dd6a15f55763bab42e756ca8aa9a8f1a2e836c5962b5a7baeac2c39b3d2daa7cd5eeb255bf264e5b0e2a42d2ad59a14751a45cf0c300510325241a92aa93a40314ca3840c1e1e7bdcbae82b49a6602d575667aed49809ea441b258642cd6b31133f15f50245b3b230255d46afdd96f8809d442cac9c336119692e07f639cfb7c9f739f7e58ce480010606869832690e4b1118594ab490d326cd6638b303fc56da5075a786a1df55ade2a96f51db56591f39cac2e80022a60309d6092cb01d32d888edc01315448c0794a0580f2427c47ca089fde07aec96840985b1b6234ca8dc903375cab0a0b3074e16d9568b8ab6e74f951b5913144a48b2064548ec344983a058ced966a97dced94ee5bc5920f1199773aec065c24f4b3e73a865496833843ebb2fe79ccd321a9ca9273d933e03138a2473a4cb208b54970bec8d14d163205289a2c3208b4e0ff65afb18e8b5b7a007f0da5f9045ac5e180dbf373c07362fcad8a079ecbe364a1ebbb7780ce666cd63b035148fdd052614d6d9f102d3021126540e8a2da48d69f1a304cf192b59570123a6c04e172b24435014e19362748720d16da9488c45169850e20a4c282de7737615985019fb6123e74a0dd5179917914a99061115488d1b2e30dc9891280ba2a7c08412bd20bd7614581d664b199ab72651d87c4937d38f81918d3f182748b4a9d922064e9a73ce270801a626e4b5761019d7b0a01b98979e3d7cd0a49b09638cb13fe1b3c7fa31e6baba21c40d4d1d1d6eb96d022b2f7c065b93f6d957c8598f17167168402912634eba99acd29c73ce619f73ce27a4a4201b02a44d589434a33974dfadfac4e467cd5e02132a934e02db7bacb4c1a2f82d02878a7f5733b4c76c8f2b9e0dbfebdb638cb7adb2578fad8fba2d17143379c6d3e740a63e8ffda9430911484bf1d83fa8c0e4b1afc0c2d7636fe1cc966016a9209589c76eadb0d2de64a589b2d5759b2a981a358f7d045e1a89da993389eebb258224af3d6b0f41ae7efc94f50023e52cc51bb017649832b8da1263c896176dd468b48200cc4c8bcfd93ff09445e86143cfd58e2839dc52fc5f4562e04e25609e78454985d1532f10ab3d7615b28895749d72996fc03913c679e5f1b8c7e170d9accccb59521b0d2ac268a0855985d540f1d83dc0e41480b6147b0738f0849d2e1599644790fe5dab0ba4d29a4c014cd28aa630195e6133647cf60d903a071b953f2a5e4c49b950bdb87ce00d683662e420b2e6cd8f146312bd56e8f8566b20ac4a4d064ca8ecc34e2296c5184996c7187f10c3d2e573961b9f1d03be179e185df113e602e70886a8d971a2238c0b6309d89273b4801964578660b153c44425b3a247cc152d9fdd0248f0fc2ac0e1774996e6b3e76cc5c967a7c039622b8b161c66666e55fc2080ab4a51d592e78b0c1c5fe484c9b2f83cb18f1338c9b20cf0d9259064c850d6bd11a88286c208023668c0dcb8b81a1373002db49c01d0ac21028645064b100255907cf0001fda973624c054bc7d39e160a44e4f843752625ced414b5124c538eb5e0754915a3ae1cb6c009534a00945b24a20e1776f6c00547e7c760f3e9183972a1f3c9c2041a3858a04ae33a7549a17b724686cbc60e766518954a2881970b7c6767cf602457e20e48b0b26c4ec08f3123542913610f0b0c2f5250f1a2d6c528cc91393be7d38d175b92c87ee1187ee935c402ebb674961770ef0d9c7536cebb3fbc6547c7605b81673912d1b2ea694e5186300b75d99c4c6db9e321a675b699890c7571efb78fa1cf84c28d02983450ac8991c5e4f49b210d5400d172737f46c1dd1ea6042e55e5569bb18560192c48d123956acd0d9c213f4c4e84afd4236268d8e94337ab4d2b0cc68d9ab6724d28065a5e913d55605898fc778ec2ceb31efb195c7580817173379dc54809548319ad1de751a7bbd9fef2e5927fa3a7616e3770fa3192155e72d0999163ec4bc4056f4b6e5c5901e6059c0a6acf931b3e306d71a5b05881340593aaccca090fa1143cf98303133e9f6edb0f27a87161d1528553548ace0f2478815d2d72a51263efc5a654798125cad4d39e34bc2bd27d80761d1bc02fbd6566b7d67d7f9376e382fd635d75ad16cadd75bbf75ac54af2518bbd3e5f3d7b13b6b62d6e1e8e2584dd1da36bf1144851b33f311da04544942e5b1678cfd0b9f3fbf8e7d792386bb3514cfbdb1678c81a3bbd63a0cc333c478c44b392807a175092ee86549204ffc534540d6e56daa4df902ad36b1df7b315aed8c6a86b50e3467c5163f365e88a9b204c9d80949c0dab0b15ab3baa1fb4a2550a0dff9bc59a36f0e5fcfbe7e7eca69d5da479dd1f302c35faf090e8b05698da24ff45ec55e5b82415aa3755c68b95e7b1eb597b7497f4eb5339d3ad4b9ca985ad46ee0e3ad2b746b473d7fbdbb64bdfc3a26e6cce3be7e6dc118c1ea5a105b901742d4b530e3938fee4fa3bb579acf9f7c1c9d2c6df4349f8f3e7ad9d3e86bc37a7a7a7a7a1af398c7343b5a3bdad1da318f76b476b476b4a31df398473bfae967069e6ec733fb4ea62c7bc7313f017d199875476b473b629b7df7bc773cb3753b8ec0fc74da71ccf68e99c99781be6c476b3330dbeccb3e9b8139cb3e9d633eb34d1bb3b55ed6eb1ccf31333df9385adf799ee3e8cbbeeceed632019fb2b53e0bcc4cd6979980379765e369732d1b9ff238663bdaffe08b272a09b9ac8660bd7a49f1d5667d758b05682d45141b2d3abcd26dbdbebe2d11f2e62b50922f2b73dc70a999132505ad3a0b125d76cc68c1a32dddb64cecb74d0bab5eb71476ea20f6c5cb8c9139744aa495c49b5b1d3824b8c0a865c160b04505ab3e56af55ed0d9818655c74793b4b47749d39a951e5a5041a206965aa695a5b5642dc9889494bc04e754d1e2e585a846c013426ad2ce2b0bdf1f8b302cb9d74d7b5bb6448941b1b6edadca4d56d541d21789b50f0f4204cc779f519b4f0f5d5ebab77b053befa59ddae6d05834117aa57ac0f751e7ad9bb4d461ebaefbad7872170c38bb09f3ef40e621f8a55b22cbb9a85aec29e35b68ac706f77c588652760ac9b7adb212f3215198a595e4db72792df9d08a7d68c9b27c88217c31e4435c68d72c1eb70ffd06ff7c78a3867c5fa9a90f7ddf2aab0ffd62d1f8f0fad8374b8beb7a957d2896e543b30fd13eac61765ef8b017de35b60f2f9eebf6a1e3e0181cc5f38da5f0d487b80a5b7de85e40be2cfdee31a14a28419ec7e3f11c58e43c9e3fd9785ec993c2f30f29f02a8fc72392040d47203a3fdaf04a70664b0f332a2f64baf076ef8d58597add227ce95526ca8d2fdd87e24b2974be7460d894245ffad5f3e40b8302e57d3e9fcf6f1e13ca57e475277d9157ab2f0afba2222765bee849952ff28bc7842abad356e7edddfdda31a11cade758a7cd13113d51942772bf4da513b91211913361a216249400910283ab888a94a88e123f5f565ee470c34b7a5edbd9f378bcb640cfab03e5797eeb9465d946e709d06badb52f8d93d744fa430aaeb526aafa699e2e72ed36cb45b5d65a0dd5a3a8df3926148ad6732c2a2a2a2af22bc7842a42ebe969cafef7f3cb6642fdd07a8e44447ee388a569f1ee7ee198505e966559966559967edf9850659ad6fb7c7ed74c281f5acf9169089a1e3968bc419283c7e3f107caf378970a0e1d47e844492992f2fcba31a1786d4c288d26cce7fce4b3bbd206119ed23eefb2139e674f216767a1cee75c565df9104b8bfa6cb52c99cd727346fb3ce5c69833566cbce0080283881b3166b0b0b4d214a4eeac283b13d2e6cb00f498d0d2f27102ca5bbaab57ce44444444447ed9985044683d7dcc0bd79765a9c6e3f1783c1e8fc7e3f95d6342f1bcf053d9ebd7eed368bebcf651fb556342e934663e4306bf696356d90f0d0d0d0d0d0d0df990676131a1f192e3b367df78c68c093584d6f3e9eb05d56fb0815f34136a03b49ea38ba8dfed76eeb789e73b57ca3b7ffaf3bb5d93ddce53b8bbdd6eb763c99a0b291d5c6af0ecbc62270e02b920cb6143ad86989dd3ef9e0bac0e5c5079edb74cf9e5a2c69765e963e9970c986e431561cac5e7ece397cf7ecaf8ec3ef7f1d9812dcac63c852183840d11b33651b27c4dadc85d239cd8b121762648c78c8d333126d40ec763c0e0378c0985e10b878beff5dcd7ebb9d2edf57cec9ddff38a76c19850daeccb5395a84ff29ce4d7cb48a5ed857a2fc4e485dc6f937621571212722615a9908fd8690238c674d1222586b6271552c144aa8b98af324037d27dbe90e72ef94bce90ab5898d7511899cf62493e8f457d1e13f3794c0f952a9ffd7631a13299d26baffbe97593d21b26304c68a12993476b035f7b059b23f55a2f0993f27a0c94d729b86c9d506186c89c54fb2d33a13497a71c371ec9f36dba5b46188fb19276f23887b93076154aace3310f27c13ca1b01c538fed0b597a6931e8f8e16304cc98d42b4813b11a5a4c80a4fbac64bd3a765c38abf1830b9755d989a9225559ae64a4db0677385280c501abe1a60c52963b6e2c88904de9c2c1e47b3dbf5a468b24e79ce5aaec8584fc6241024325cbc5151e6d54d27d3ecfc99ec743f2bc2230fcf8d1f1f5244ccaf37b25ec0aebcbd2af952d493764dcd87aed3e40affd92b179bbba4af2c5868d8bb01b53bf0bfaddd6eff660e9f2e39663cd54baf35bc5a99850580e930ff21ce4776c8cf3a4e7234f92e4ce4992cdc9933cd208e91fb0981c203b4b859dc694744be61d37c42881a3058999584a4e915291654995386cd21153fc10e9cada2186e6a74f9aab13612eba7aa4bb9231b16961d3f3d9af1886736729ce551c338ffd869950586bf78d174c0c0ed9ef767ebfc6b71fa79850235acf310c9417995e1445dfc0f4a4e4c50f29b09ddb4adda6aa9d28fa289e22d8ef767ea59850bb166f7e68c4a161852c7fb110f239fc5c040268fe80bdc538f1e32acd7ea388bdb9327ad22f14125c6b5178a66481a5385e78ec59eb7117992e386af8b9d2c6478afd3e115b737badfd3ab94d72b95c999c99cbe5c4e40090f33af539cf391fd9c67cce4f1f8fcfc909f4b939643e979be3e67374a67cae6dc6e7fc769950b93880fe3c4f3f5de93c9d099fe77962339cc3f80c9fe19a652dc696b5b43745c2de4479ec4038301e3bd3930e387b1e87c5e1f2d82f13130a97297d7efabc819f993efb1a89cf39afb9f8ec63f6bb44c9939d3732f2cb6542192d91f23a1d91d7b9ebbeaec85e87d3d9213aff809dc654f7baacfb40cd192f72c86e1c0972825a183f5eba48f0b91aa14a8a091a6225d05ce9e4f859d1040789213e741eb604cbe7ec370956d24549499ec77e5ff021a96d5bf8871d5782fd994e426dfbd9747b86246a8f50104b6444e15143c60b272b7af884c80048113d64f854b9d27124d4ba3383c490b41a6554b0e1b22ea0a544850b3c5a2fc4181193e6458e39468488095ba1850cf2a133853a70b01012a649091f42d2d0bd888fe0173e623fcc66ec910104ca0f112754b4d8a86aa345e4cc4dab48202e31e50fa50c044a5222c81b173229d2d09d489dd36643878a2f26ccf6ac4891f3f1e5c685b0305e0271093224d49b29ff7ed9b3d99e3a49d8c4a1ca9344abd8f3a1ed817e1816c40e922e7ddc3cb99286ee57880915662026b10ecd671768dd447359d6592d8fcfa1dbf7e18ec7a19be9c3196d637aaed078f9f84a3990644a09b32b6b28a6d230501a2d25b468a133d625d5e8f60f65a8a971e18aebca559abf563cf930f49b55769b46114b48c412fa4325d4f657c86d00bf8544aa9d48b513833b31b81bd122089b1d64f80ca9624bb710049c0c412b9312766548ba854a1095870790395bb65e48b79089386361ba6429d1822bdd4215cc94b23e81f62cd9d1966ea1375c677e38311362e44cba8584d0feba90d9dd42424265b74963fd16d2f15b28c76f21abbfbf85a2feba5070f7266e9de2d6d976b6b95d24626ce48051848a9374ef70b0a17892e72c6b2cdd3baa9c0fb022526a6326c8a47b8785c20b202e44facc29ab4af72eabcb485515272ff4c448f7aeeb6fd7151e4129192db2d2bdf3fa1dda5fdf99eddddaefd4fefa0ec7ef1dd9d5efdd8ddf3babdfbba8bfbe0b2efd3e75816e50b7756c7f5d87e7af9fc1a8b7f1fbb4aaf1fbb4fa7d92fdf5f354dbe7dac9f6d74fb313ed0a581b33254a9ce1c327dde70bc07029b3e70b903d52e93e37f8ca62c76dc89a3d4ed27d1eb13a63844ad612376dd27dea39e1c28b1c6d7dd802a5fbec9a009d16806c0c59d3842ddda717f0b7ce4cce4c2e2db7736e696ece5e7023c36a4f8974eb5c50a28c0b687474d8b9926e5d087450f4d1a14248151fe9d6b990472d0f9c1d47cabca45b97f5b7889b32359e4cb1a55bf78615052dad0a188921e9d679e9d45e87f6d775bab2dbb4731abf7564337eeb64fcd659e9a2feba2e8803fd9d7bfbebb96054d5ef9c950bbf73317ee7c8fe7aae2c6776736839b59d5bfbbb737d8e58a909616b934196ee9c14e9640a8a2b30b2604991ee1c9506d85c70c5d8f3c50b9774e7d4861cf9322595254f8a74e768d8f192d6040eda0b70d29deb0243e6c50a204066d84877ce8b8c49c6f4dfe636d9ae8967ac1c2bff909564a5b965c2f86d52fd36b7c8ccb5bf6e9a661a00c8dc30a3a4851a371ae936a5a0c06022c54b541a8b749b30d093c58799193781baa4db247123ca1ab5215c88b848b79995e177f9a6249012dc9f2edcc6b9fdf5b1a6a5cb93155b27d25d4ad50193d2d366861a2ce92ea9fe6e59f3c2ac4c931945d25d0aa08b6bc78c333cdc82e92e655049f111a5ccea899674975d7f85f829a2a2c7141a28e92ebdbe4cfbeb65c956aebdf85d92b9f85db6f85d5afd2da3fe7a19dce037eeedafe38253bf712c7ee356fcc695e1d0706a63bf716b3817584973c585226e5132d28d33c1eb0b0c40447268214b37ee4e178f306041dedcd1926e1cd6df2672687411f2168626ddb8ac1159686626daaedce12a926e1c17b43253522ea280b5a51be7f583fc41fa7e9359e4268351565b2449a66d728d94112423a8e8779055d00e0a46596d0505050581f91db4f63788cd9ea821fc3911e8ef1edfacd4e8f6d7c7a08adfa3d4ef31c5ef711cd3f6b8f6774c23650c1d2625dcde7ca47b94fafb9626450a3e33eeb849f748f5378e891c48b014011296ee114b88c8d6169a1e6360b849f798a5420b35324ac0e4f9f396eef1dae9a2e7049133c137e91e5b20e611b7d8822806a3fe8a277e8b51bf455114d3b6b8f657641343e122108a36527286a45b94fabb25ce9539507ab06549b748a5d4428d1a163ff2b49d48b7b8023564309ec048935a916e514c9d2f657ec480bcf1936eb1eb2f9085c5c7d78a185d71d22d7a8d20fcc326ecfd0e570877e806465b407fd06d3a18651592d5f91daefd0db77eab63192a9790dbfeba41112366c52503ec496aa58d060b3029f00049b7ce0aa9f4a8548b17ea4335c9105444240004008315003028100c870583c1681c675916e70314800e80ac5a66489888d328c7711832081963883144400444004666d3002a723fdeb659db35e7caf883c3ec87641ca47b88737992f84aba08bfa31a496044025c1499bdf1d1eb90f00f4679060583aa92c87016546e452cd0c296b248a51345fcaf807c890e1c28fc9edc7135110e0b5442d2c634cba9177c6642cec9032651007b0c351818c48bbb7c66619f56b8644597435ac0b5093bc5df65720553b17ba4069b682114a19c654ce2c7ff86c0aff52fd2c81ce6f6c9e19f8b90d6f866fb569bdd05f60aebf57633eac03d82903a4d8f9d7e5efbc42f772797480e052ca0383607a3483e3ac7474c57108be490d5a84d16360498c34fd93da0faec94453498e970f725c6aa627dcc39b8d2b3c1635868aa4f68cbdb23051fb2ebca85fb2c079e41209e30ce85022f173b6c4fe83cef66523978fdf46712d1ee11362ca9eb3670149482a77d339efa4623c769983c92f5a2b2ec349a71b9680742995b4db691e2dd0b9c524655b4afbf03e3664aac9541f437582e5d22cd6f5d2eade6a299b2870425545fb93bdfd3c6eb20ac6bee4caf2efd8b4563056b7eeb523b093fffa4a8fcca001175beb74e8bc7bc16498f87460fbc1b3ba87340c70627188a38e046e33d5d0a8d10f0debd0bc0129f56643a9ad07b3526965416da7eb40ac2b354f3680a55b1016928bc11f77050881ac45e90dc71b5f752c322e44f6e94fde13e80aeff5563b9f7ae4e777740a95092c12337f70183fddd44bf141a4d00b3c9886373288eba0a33f00e203e37b2d88fab30a9440386638ec7b3792bd8921c85040d0ecae07453e013fe7e401889d084a5ace5da5c6811d5c918e5254718beee20c96c72944e04220e474354cfdc850fc48bb79989e383b72341ba3296438bff46df9c1dcb8218c53fc8e97b0df892172ef63dc347e019e71601ce5172e78bbd9fd3a335546f44fc0d8980de43a6dd5bc547da297d2e6dcf41beba4842867a95e84b40e2963c85156b05eaa0296344393c4c5c13283c81517ee29c25bf5ecc2faf2d5c33ed1b089239ca6e21c4548876aa4baf3724b61f0bd0a33dd12a341713e03e33b841ea8a35106a6da77821808e1a4da16eca0481e452ff9a6430d14a6bd84f34bcadd0f552f34dafd05e995103f74fd70a9c02e78e6260125fa753857d39095e4838ca8a1832372927bce98d09c7b513e3bee1d6d1914d1ed5fc85b74e8ef36a20008d36bf3c16f58d02e439164f31eb6636f0ba92f25dbf0cee6ff1340c2a4114a330a141c98d1f90388bc59e490bc67a6bb4605192575a1651c6d9d3dd3999ab568cd8df054ed5c9174901bc634c07611c0064f87e8df8e8397c215af3db8483e0201b4d0bf99ea3d6628c886b01ba87c28b9d5538e13e08d3d7572c2d2270a13bcd34c36c3dc0c67e3726696c6ce91ae2a3ac79eefb73df3deffc77d75ff7dcbd792aad2b42531e0bc4b4573557190a4d914d732acbb8e1d488bce4f404a461a020392e8384d24a695dfa558cfd3da7bff8739638abc6bcf4d1ca3968eda2aa694e95b656dada9660aefc36d96bd3bdffa8fcb8f9f4477e6cbb04cebf546e611e70a6ba639c6e731d47bed33a5840d22965852d2e144233415e7f2464bc738e5fee5ddcb7eebbeb9e3ff3d81f00a6d3361887f414ed9dadce268005baac19546c5455059fe752d90dcc3a6241a72c7a34c95b70cdee62d90818aed8e8ff1d73aaa4a4108e9a16cfbd275bc0945a68938edeb71b31558a1bf77529d1c434871c40b1de36631903e648fffe64fdd328766f5821a2a7bfefe8d0c3d46fc23aad98b8a481f64d7190523e28e4313b3b02ed112bed89ff372270838dc184ff509566a20a40a7023911025668725885bccd322926df997a5aad6e44776679c6ddc33e8af3bfde4f23b5c2ba760ace76d5d78c634ebb181d14d942fcc80942456beecc5f99af682487568bee347237f932637f217b880c58d75da46d9196d76e0a8377cc8189e2ed09f07d65c899009d44798d264f903284c59e18fa6190dd8e1c0f9ddae0a311a4fe489db28a2f48e5b69ac77b1fb0e5459796ae505ad2cbbb38d4f0f94f443ff6168bb21ac84bbd533db11f6fd6f0ed413df9a1aaa1febedb2bec9163e3ec4ed1036f47bd9f4a610f7a0c17d6b582e8a83b335e35a7ab4042513b0a1853baa639904095991c530dcb32052deeaeead796a7453cd2dbb37d4cd44abb74d14eaa21e0059bd02632c36e736bbf16ed1ab14889baaaba3f580d539c1b759d2c42d58acb12320867b8767112a7010b04b6142f5f592ac1a1e055d57e6e63014d763475be83015fb8850c51c827de6e042ec0ce2104f00352798bdecceeb8f0a372206c2fc3fea6895cad90e29feaba69b7353104605c53f842c666988a479c5ead56662f2949056d54c5b86139e8f65feda5227dcdb7ba9f46f4fb82b52514388ef781a2182e8056066f799370e826f22982b35f08145ad52be10ef186543de2583a5d4c4aaee699dec1381aee156e5ce1b46ca46b1c911e4813eecfa65b591c51d8ee0985ff2ed36f8efef85b09f77fa9e57c3617835ab3502e06c472b0c3491d505788a300bccd92659aa6504f8e77a3d54bb62608b43d38c5e608657563c081154ba1853def99bc8d6610cfb5d8bb1b9824fcb3a61b64e9e874ad1f3647eb928354547f9770008ace858b627012c632a32264bb8ec8f79e1f194c77d642645a00301ee8a5e9d9c0d7adbb5a7884e809a1d77ddbab994e273f3bcce6e179a925e911826c2f12d5c5ed6cce01627062226f882dbd5d8e57de8cc1de57b5deaa91c89a7c543c8c161ab8c016e25b2cdb83d33a0abb3a8152424d85a351c27314ca504449d2e87613a9b045f9a4ecd186365bc9bcb5a40b469b6e5b0e0cfdc634a46267c722e53f5d7688afe4a24136a62ddfd2c637300d53d523517726409b8b1b263cb014e71529244ccd6889494044835ab2767289e09fd2792e700ad9a3f0d25cafe73b91d1028e6c966ef84f9ae905dda634fa8a39e4c9bb2d69d044fcb239fb75200cde174d7d47a63336ad698e69c0bbcf1827e34f6460ca948976696141137ccedb82d1b73bd4978a27e342297b2284724b072c61dee38d3ac9508e1641fbbd23c539f28c6f77c47c88417a6334645fd4737682df2dd624a331f4d562c71a9b849a62546ffc2e4320c44ce2adfa638f504f58bf1f3a9b869e0d548da7d2bd0c038931c1672cc8ca29359d07d05ca769d40b32c1501e0807b9026d1a415d854ceb06163dd4396fb0ec0c472df26204d90064bf8eb1fd22da38a38f9266e8f5c1cf719fa38964e4f5a96eb9557ac29a2d75d4daccb7cce9b5fffc151097c6c67083980de6a4c0dc6145e5d0aefa19619ff6586994d44d072472411a9f3ab21d8ee0586e5e16694f96ca921ec880608ef1746e479a72c6b41519e08b6b6fcf3d30e8af9715bf8e283ff68f8bf63d7012c3e595f1bf595b05f5767acac40a7ed9c1609cb5487612005248fa612904090f703e0577a79317db4098ba4949a6b7a4be5eafe5be8daaa67f95ffd0a8751572896aaa5b704eb949dad431ba35441a81c89840404a934b968e81c8b0e36616582ccacf24232f8983ce1d55b1f6acb253455f87be656dc72a57adca03daab283fb93d224728e40d4a335abbedeeabe3a1cf33ed731e2f68304eab9564dea7578b0d84d0d945ca320542e7570ddfee649702ed97852edf30c8de869b8ca5bf1377e09a6870aa3c346c5666c58087e36827066001881cecdd7643fa00b0773f8345da707c9a1a1a4ea679363285dea001ff648d24af941fe764042af149da6bac2020236dd2c8064374f296c692d871faf87bbdf164746a0d426b633f4320492dad8ed2593a4f58d85019b480b082c7109f083ab8e96967c21994e7fc2a7192473e3003beb53c48c328e5aaf1958031645a7eae9e06fc7d4be1651e73ee90da996d1681c1564f782b413747943a0b03858052620734167abc0d87c5fe198e044670c6cf2872594c7bd0d2187ff30bc733f9223e121374bed7a97063cd908f90147bf3cc3dad5c980a06b933e23bad745df83b760e70b8c4a8cb9f12ac8b6fcc7280e595a01a4d4316e2b53829203c5cc8e97ec0b267940c364bac800f91b3ccb4c1edde31ada848865a1407faa349bb3b50ce59e9669cadfc2813fc33a126c78183ba28069f4809fcb392339e41d1129121a6b92c007ec562a5c60245c54b51dc1b2629a59f0b293d7c7d7c1d161e53bace79a997e2a23d049338111c6faec33bc6831a831d15fe1abf4c1a2b789e137731e71d058c74721c132b1badd335b3a8bf833d6cef0034107c64ba6247500affdb128a1f7b632de90e5631d803a08c6cbdca9c471eb06403d44fe4dd04b96882a20c9128b7e00b3e62af75aeeaebbe29a8f5a8b5beca29e8d78dabcc54bba85536b80535b291c3655fab1d69af9bf10f2d7623ca5e3432880a76a0a8126343a2c8fbeaacb055948a8ca8db1ea50befcc54cd4dcd57ec1606743ad948f4f519983975717b61e92d78514f3dba7e57c29457ae5a6c32e48f272fa508f041f99fb93c120337abe67dc6224b390b1e9034c794a190c440e1f2071a411b73eab4e82ef8b61bb3f7023f59bc19ccb1a1d458f275d6fb944ec8a20927b97f3a4ab0fc417d00c03c62d3de2b2b4dd82f12ab05c2aa00ac88d533419cab30f571951b0006cfb44a4217e4a3a600b57c6d35f77678f7a1aa500c16fe444bd226a34af65cc790126df56baf35ecc898d49efcf2d8d1fe783921f2f455d6d63bf553796a8df9bf6dc832b352c948cdee48d5f21755b091b45f9b8d217d89969944b475defc3ea2c3e6dce6f1f943e45455ec354a9c72b5c89fee56f63e7471419a185912fe189ac58e2ddfec4494c84359f28a46bf331201d1e5e9825a9bfd7e08cf4694da61249643613c5926bfacbcef3ad208e3a91f6a202e1575c4e0277a05f3ad7c1dda8b904d5e2ca849349cc4aafeeca1f22a9dbf4cedf219b5cf75a7a4a533c82d01d2a19938579e9c85240f4a077d5a90031598b3a6c5d2a0e9345a17fbf5121e20ea006ba34470ca4709fdecb4e2d1735ac7ce49e1a4ee4fe7c2579155d4ed718f78a5cb9e13041cbe129c4f1f86e04829b87094947ef9a4ce003ca64158beb84a0ea20ec5307985b13b7f1be74cf0629e18bab1eedcf55799f735934742fe52aff509365dde743536dd6ee5eae6fcf74a52106ec49a53ee756ab6185fbeb98792daac0611f8d5ac014f5c9a35874fb4d7f4987996721b95b5dcbe2070c5ce4d8edea6526ff163a4ff49a21cda370172aa0a0a5ce8ad2cbc38b365447efc76b718c5b7b2a62df4f9c2d380ebb3849dd08eeb6381063e291d835913afc9bcee4198f48ce51c5f442c455756ef2b1255376c80d32b4e722be4967a6589748be610bd704d81791ba77d7aeeafef6c526c564e775cb974232de8af21f26696259d9d5fbf567bd16da0bb11c0b6c71a1ecf227f2964246a660a2a8d67fb7b9454b999dd2c74a74200c7d797025f1c2bb9cdb0346f90af6fb622dd5fb1e384cab91f6cd0b5543b019f570214649817ab86ea9199feb230f47d0085984a0c01a686ab3797397a8eccef724b86fdba004327d122b3febf815e96aec414cb3bd2ede141e2d15bab7dd05d0fb88ee71496591461bef94ac1c07bef83894ee866aefdef8db5b70467e983bba5096062504fc573c451adebe1a5cadc4634095829c54ad7330150370ef17a388bf9ea3a4acf453b685c548766a0e09cdc89b407ca4adcbf2be55dfe21407333e817b7af958f4695f36ba8d177baab9de92b0d07b06abe4bdf23a30a26434bc9982bedc9ce69ecabfabd3048996cdbb11a2528fe575c7f4dccaecc4c96404761968dd5ec062e75ff5bd2f18afcb295d26129461098a82e90a7462393979aa8b0b9d0d463fa14934b17a4f86f3fda01af5456126cce80292458d0bd4a75bcc4666fe7f49f4ead1e917decf046d157129b7823948fa16df4336467229121c2e61dbc9c631341a8c97afec4e06e0894e86b61458abbca9a0789432110fc9f921be3ee7505cc4dbe584f82e40ffce21f447eead11df882bac5c92266b519f3c47d439a9cad4ffa6ee5932bdf69afc204e3cfb6108000d5b7aa13a2affb9855c73e652a79f30b578da8cb583dacefb7f6e1f8b9a77694c243e582f9cc12dd3c987ff1ecc656e254fcd16086a82c253cf327125bae561ddf2e4b678b2532afb92053d1a4f44f56a69e66b2beb96fc7040756fba2618dde68a241d78504b43148ebcfd01fdeaa6fb44d7f2a6c9236bd61eb7f8c18c2dd7757f89e3870e73b2a1665b515e66a69ea4c9dc2ae63552cb5e4ec3a16a56539bfefccda30f6ccaf4b08360223ede8cfd34ee1872e8766429415724a4a9fee56070bd5955f496c7726517e08c08571c80c4bc238a59f522f53f0d08ef306bbed484d69d03d9e46be12279a6cacd805a3eb8b6a21f92ad51d7656242d68863f3287526f630b66d0e7ec487e9ff2063b0ae1667973b34a19e870266870dd0f83f2f5c5366ff47673f704233b2b64514b425a0b3e6827dbf9c77d307c87a5028ac0f42329ae899255bc0393186dde79a11f5107db8a6cf7dea40373998cd50a10fc776dbffd1b80075cd57b81eecd9ab0cadb1060d71cbfc5c75de1e50db6c7aabe38a8e139a161dfe238b10648fcc07c4606614d437c11601fc5b08a8ebcd65d48812cbdb2c5765e25965934dc6dd01517593b902e8176c9207bae692c9351ffc08b597be56df64af2cbe94d476b09e27027c440be0220157e172141e362f69ebb75cab5d5a5f5c1b470b3eefc6d66f3a54d96a496d207c532b534f063a17c283b743b0aadfe6414b4b83b0fe8d20a48fa8234d0ff4c93f8cf49401fc7eb28a906f2e695ee75703482f64934dded45d2037633c2b13250ef82220ac2f1104ef8544bdf573d6761f6e76cf0f205b4e098459252d2f52910db70c2794d7bac3e49641ef40f280061c121a9443e14061dd87abe1dce50033524ca766c46cd409648b73053d4205232a32cd4adbefe056801b21ecabaaa775508c027bb377b278907987fb89969e9c0492df0621205fb2c05013ff8721b0becfe57480cc54234ac2bd347116902537e1efbe5f0fbcc17ad9ea3b446b980a3e78e8bd0b0f9956664985441da8e6d8c50b3f467d948c57c7c754149fc71775d6b83264375a429d8fd63f11ca4e10638195360e5bc7c1fd7dd92b7c91bc741193cf292b19f747c9c1be46784148dfc7dc5133ea59b44d59c988bc85de28be2f9ba7d99ba32f45aa0e092241adf43995e9fe0526eaee44666a1374442ba44653a61e673d8e4ccc0d6b91cb76b2aaf5cb9533317e3a14376337c85cd62adfe473089526d3e96e5a7f750d34e510ba808ff2faffbeabb70175c3f21ad09f50a929839acb326293972e0651091569276060fd046bc40a3fcafc25bc0f7993121cfb14afa37dc66edafd4d5b1c975263436cd9e3959c108873945c1c0b163933bc0b0b1954436d1622933d137a6cb0f13063ff6f0354fdbce2ab444fd2d9fee7107f32a9597448df8b093e61f874618a4cc8f73e35684aa08f06e9173c86b6fcb2603dfb8f0111e46556313655b9251a345c68fa825b018f41554c2f2d3c8199bfb46c249135e306a58fc82c502061b4e3e5acb74cfb6948750a948f9a4dbaa010f056493a61b5684cd301e600dd613e1d5bb25ef51e430bed74d362e1dba917b4f6b0da71788d3c0325321e575f81fda10fcd6c1a79dc849879077f0897d07496f346f6184ac386ee0a1d1a4bb8a64acfc2caa52c48aa4bc346296881c94e303d30157f598ac6d56a878504a5058ada4500d847fa3f0d70ad934e9c088130fc40e79cb83fcbfeb887480630d9addf047688788793797956afbbb36de237a19e4b99e054c1c40bd345817b17f71eb5a791e9447bddcc6911d15dc48454f4fe8c12850a2eb0a9535453f9615ff4e7578d601225afd66fe053c76b3b05ed8cc8f129dbe83674cc32769d0aef167a332776cd7b250971255194c518bf984248d80c1a3c81a45aabaf06e539f4a2098ea252f188c6a2bbd559f9195b8236b88d38f05d0b545189223f91ccbc80ec29941286c8b9729776ec6b2015c393dfa746e97fa364e727e6257d3814ff420a0d555db45e5d955c5ca213666125c482a5b9c296fc2a0f3b82b0c6a8895f5972dc7358426c2075d4282980c1075a4441a23ec229e2c53ee42c421931e1dffe196abc3caf8fdde60ff9aa0f528091d2b3b780184f97705850c26b4cb553fa239203673512050036744d4ab14d6c0897b46792ef7a960140919f81a5a8a3226da27aec89acbbf2b666322aa880ee52f640abcd312412e0d156c9484c20fb4975d2ebbb1e6f1accec35dc0950f9cb361a0ff32ce89b60a2c5f33459e60c448feadceb7310fcfa1236bbc5110113286a3c672ffe784d53d29471fd320dd2de808b176ec797acf4f859e2b83fedf03c625ccf6a295c5ca73e017cd79583f026aad3206c0e6c7f71e29d29ba2d9ac481cc29794ef1664db7d170eabe758ddc8c08323a6b4ab4d2d92342dfabe494cf0a5b780870834329e0cc535fd5a739e457c3440d24b2d7cf7dd321137f0c55bf8f2a2275db90cd52a85df6c2de43ec880b11ee8dc2879ceb4dae01b21a7d38632f6c56c380fe2fef27406dd84d7d2ddc35497367083910ca82b53df859178f91d64d0084218768558593f7608c52e58b133b30cf472663c6e1153196d9391ac55e017411cac25a4978f9d291a10f64a22edc9f4ee02fdf2f61601f70951a056cb33c080fe9b2903e2619e45e4a96568f172164783e266a11121fe1b1673c07510fefd7b2a4e00e8dbb75968988e254fde46f31b64a0eaf9474e3ba7bf7309100038f75411d26632b4377a03d7caf802d5c033955b5b7e3c6997102d1ec0e37e1600e2ab685ff1459d5192e2779ac60941b8854b55ec146a05e29962ad67c2724738dc808181fd5710d7934f7d6199f0dea5b51b0422f05696f7aa62ac3962747b02fa00694b4ff391819dc2d6229950111f83c7a8e77077212154873f29b5dd4d053568845a81320b3e80d0a22d8953d66e98cc2237f45fe1679273976811c0f5c05097c5659f303cbf3ba5bfbfe27d8cc0cd468942fa6163093f68f56bfe6ee131f5893358b131120bf680fd21ff2193c117cc8312c948def9d243053e4341a11a12ea9e5b3589923f9efa6b056771e3ea1a0e12ee0a152bcc2eedc9a1d774f754d675963909c75bd6e297badc7328f84edab8315deec4bec3e3583ffbc34a700112d00beaa4875cdd127a16141d2fdfdc6e817b6b69e2a8c1a5491ac667bff864ea3a9cf87e985b85fd0f846f10002ce1120fd698db4d07804e0f13960da040a7adf9c28938fb40b726df4200271de122080fbaca751b51d77c0c2db03213381c4a0a21f2ae79912b47b5c32b8bc204ef23f30b3033cbee882dbf6310a352ae447e579bbe3366e15e98bbd8b4a183219a0ce3abdc6c4c2e553cf43400870161c2b7d4370ab13f0ff1ce1af7127e7eae9c8a23fc7997197c969552a1a11088ed451ad2033f4ae02cdde76f8df0ee3cb0826539f2f82f5f54f4a0b63e92372c22cade265aeb80f0e5f3f0bd4944d0ff1d11ea4028c4308a5ad0d64743bccfe80d296c912d0f7f577ed566d19722e602c174190ace531496c06c738dc7dab5d50fc08792a4437d185e8cc5572e001f8b5e7f01b9124597415d1c4b53683e474e4829a0e18ff93a32e8a1df5836ca008b0eb65d1ae35e65c14832f5478fd40e5a654f12726e639b15a070fb12807cd13eb4d19541c7c92920b60aa08c11d1ad79bb3058562a27716949b35ae5b16d14a42ba80e28c2c8a2697295d4de42b6e00cac955a432812a31a0695c7cf5c644d864f5fe058e506e9a520b81d15951b0175af88f967a4b97c8794055339553cd75a410389d77fa6a7ea70d8af0f5e0872c9f1c9139a1eee21c6562d16758f6d4cda442d98c99a38c8dad958c78d0ee3dabbd5ff90def86e8e07e3f21352abaa743de6564be181232f63f2c194e154fb65b01eea9c996e57821143d5f155c3c7265fff1e27063f7bed8913574f8082224f60b9c7e16f096c5631cc24f722b85aa60df7343c2b89e3c80db1859efe25846d76b8d59cd19e8e8640d9f049ada227338d82d057c045b401578ee92d9c8bfe54e495038bb25b0a13f818144eaee77c41d78aa10f247b40762aa56c9e29e8336e958e1a5cb746d1dcfcb8c917bcd9d46a9b83679513bc178edf8f2b62c9b60acc349cbb27e489a3631d4d43d4e5307c8dc6c0f0bc1e22e700e4c7ffd6a9c183a085b8e4a2d712a270a0878b6ae3f45c51a355cf19d8ca243c0341b5617dbce8bcceb06b8d91f1b3c276a289adc6a092f2492aa7ebc9d977dd96b2fa15c9c8ca4d9922921706680d19d2a82ca2fed1c6a4d6d3a8f768209a03c577db2a23ce6e2f18ac952be634542497aee458796c962f4e153b6bc8f046acb3588131c5aa444eea7d6fd42f6631aa96ac4587a58e67ff8aff4d9035d21971f9d6867a0f94e343d00fdc52e2316d849ba0eac16dbe386cf5f3f3b829891cefe2f06dda4cf96d3d916368ecb8535c06c61cf0405391caad68f0e098b106447bcff4e05fdc11de04129cc07a4eb4353b0db8d28e5916dde8465b5440d29a811cbf307bdb60a797756975b99c2990ffd9738040457db38ddbe3bbb1dfefedc2c7fc39c943ab4e0c13f81aced1c43e59caed37071ee646e1530f7d355eb74799247eb894683b5d0df15fab8bdbda84abb91b169ba9266b5b18cdb2759ed86a0c88ad5c1623d1df4f730d253db7a45134c336a706f130370a193d28c74f06fd4c65b305bed16b111d27d14b6318de6074752c43f6fd13afbe39bc22f3676083948cb912d4b66cfe957e6632ee5b8dd3c8dc3600468fed88b03b0e6febf73c5b54d3f99f75a0e1e11560f7c18f585ec251190b9850b320f5bbf8095bc572f37aff539de3b2c57d9a5186d9224a5d89f7793ea4ec9be5dc2286149d56894ca0a8c8d8c6da1c0b384d8790aad347c90f29426f9b9442a0a644d010215e1fc9c8dd2e2480e6b19425269dde23a5303dda72e26a30395d3fa59d6aca75b972e4912bc9aa8c7465b9c41ba234ae4d07880f1bae79bdd5367543b658ee365ae625278d1d2089280a8b9406d9752a349507986fdea8b54bc05c0ee0aa7385431603e36a09972675241508021d46d25fd52730fd561aff4b83234e6f2e8279e54d0a1f65a6c63ae01446108215e9023eeb33b211d8cc601fa889e75e0be3aff01f7832bbd4ec07726f8a78257f60e88195e50916d8056edcaa919c911ed062de1eee536a9a303188e8701a0ea4db59fcca0c9096cc80ecab07da8f16dd775ae54a3ad34606ff6bdda8d02c2141df524eaf2cbbd694236c2af66c66bc219c86a54572b8a3c6678e2a8c8fbca0069f3370f9e4362c85b593720fdeb795453232b843643d3422b35fec6339a322043a0ec4de99ea97b24a435727ce296dc1d8da816f2d9fa8d0a9a4244352f188428f413adf3cab7cc659ba30bd9c0bf1cfbb4b31dbf936982da55e43e5bb52c1b1716b11ee2e9ae922f29d8dcd81115977b127e38efd11d75f7cbb8a9e2ace61c43e41b9c11569593c3a64f72d52e737e2be0120b789472a089ca19e0a81d56e68797c08f51e00e8061f930eace4215f0391b945ab92fce57416184d23bb6b2d3a8fb169c56779fb0fa172e50a72efdd72379aa3133fd740d54b85252bc8c1ccbd9712046be154bfa335a6702d1cfd9edad8aab141388b7491c08185b5f18e8a380c0365ab1f9e9ebefbc4c6bab6f6f0bcf59f99c96cfb1395ade7665acdd9c7b885c887a361492b6900e5944f44c3e86b74bf6ba0f2b00d1a8037cac477aee10c346adb6a6cb346305bcb22f84407f2316af1706629d4f763474d8d2676e01ed69a141112ccab9263e7c6725ff3b04c95a1385be367d32e8ad70ee09360af0b6b35f8a8b094f974eeae7cb38d64db3c5f49fc0998ba2e0e340e435efdce750fdd829099005ced9f40088c903d0857af2b4b76830b94e68e9e6f0da8e384230f63acc49f87754c6c6aa8fe87ee9ced83f99e1c0b70fba0e72feefb10d63d6a681320c8de50954187e3e2d6f874ef4a15e665e91604a94811766ff9e286954923e9011b999e9ab7f2c8cd8a2fee062a206d1c84b3a1cf84f1078b393636c8bcaa9e34d1a1f00e86bb5418bd0d962f427b8fb1861493478baa80d18fe8cf2cd15e1c1622570f7feba29c9e327ee753290d72d26e433fe1399e5a1865b8098ec2f2f7a4cdf270b7a68e29741a8f2f740b6b55d85fad12dd0b4263adee2c2fe5ffd0f5e131e819c5807db8ae091e4bd2604571bf5440f9f4ee7f5d1be812ce28902d233789a5d777efdd3022249e7ea96494cc7728379e41fe0fc684aa5c6253561050130381bd1caf209e09db6f96020629b5c7decee7582b9e844de0456a2ee7d78c96cd2768ce79cb4bf0ac1122418e7dc2d259273704cc7b2ab65399024c895843a49857071f11c50dcfb55ba8b2f6c3f88042b07b5bd518542d5dcc782a95b4d569d687cdf8575c64d40b74bd07327146ef5417194da504888e058bedc2596b9f54685ac6fbcda1ab78166ca1e7e315b28f9565456d98332729f92530962f66ea53d6826484f4b80c4d13628f88fe81e9e9bc890ab502840b396d0b6d1de8918d1997f0cd31624ebccbec3138425315452997e8f79f8ea839a7dde6f9ef4d1bce40a1166fff04a1aaa0b500b03f7ac6770260b66c9d06aa7ff238d0e25cf8d33fce436f99620eb8c48ef319748b1d0489f9c21614de8d825bcf452a372690b82d8f4ea27a5dfe6f4f69f4efa0f0cfde3977550f24b62062d1299b93a8b2d20eb423b38e97f560a7528ac192a73d725c830b2c82f535bd4957b9341248f3809ebaf1e5b0601512fd326933ccf0fd625d322dbfce920045a54f5181160804a762d51c4ec18cb54529d610b48ca6b07d749cc027e5a2a7d9feb59b9aa6fa9effa7231cd503c8aaa88f5ee1208b7b6652cc47a5c9323ed9952ec62ce85b8502cc97713d86418db5929b066a08e9a6806dc30b902d9f003671528f072651ab9250bbcb64f3da4bf4a1ee3f5021e600451ed7e5667d874a535bab058aa503c7e9387eb9df11161cb363ab0febd0b21dcfd84ad8ddd0b5e4fc7fe0dd29ba880f529f9f01a20eb6effe282582ed52f5f4d82512814fd4c85a704246cdbd05d26f7504d1c9de309f3ad05c8411795b50fee852cb13e6dadc990049b135e234960e49f5edcaa69fec1874b93e34208330fe388a60dcd18b2015a8c24d93011c4fc2f77209cac6b5afd9d3d00b6fb992da48967ff9c9e21f75818918511b1b4cb84fdc35204700ffd297054ac9019d1de7ac449e74856b2503c626bc31acb7bf6534acd0ade072036841662627f3587580a85d704875f7688adfdad0a41adb603203175da96764e41f772825482501f9ce59663c6a4a756443f09e0f773b3c99f930e2b4b2f695228b31f21aeeb8aedca9884ecc8d0df6736f749a064eb77e27504da1c66fb993e9690a48b9280d368e182374ec479903a5948e8060c18f10f6fdc3b6ea045a0e2ee5ce825ad31954593ebc39c4c22c60d125509742ca949f1553674b3e057a99e6b587e6dfb7e4cf1d96c2ff54ffc7153647adbb074f23d0cb1aef5e0539ab552d930017c92c852e0af28b3a151feae2bacb2e054e73c1c508711fa2e7604274efc5e63c19d0b489063d8fd8452e89aa81847dc4ca8152a9766c6bc2d3e72163439a9df419979944023ed8214474d98fe6d05ff5cc057b665542fc4376ab4fb2186af43366babe025948be8d520755896adf6795b0fd679d2e10e97a297c3f8c7f704be07a05bcd7cb59ab5af5e485ee2c6c6a9f74bfb92ba1f1acfba2304c36116d0523dce223c9802135cb901fd12b01c180e9b27cfac79730edd450fcd890d2d3e7333c8fda5248b7fe2ede4dcd10b4ad4a5bfef8133b8a7b23e6a21c897b03984903a4ce39d31865d10d23f6a009f29bf3a8c5383fb6060d965250343ce94ad09ff2f351bd3e7b71e668605028557c8e4cc7406a4d7c4f044c8afc700a67436ed1c65166e3e209f7c73d1930663a7c56cf35fc82ff5b622af945fe2ac4157ac1c33c3c8db186a44c5409fe878101ab10147ff0d2980c68b5a0027b7d1329c9c74414847f5c7b743b1aa92039c457fb356ba10d6998ae8101fcbcec15b00dc0e9303893250af0a07f3d21e4851ea7374fd7e3f32a6a032829feb2edfcb72fde519a6c94df2fa8f3f423d07805a79b6ddec5a471b90840418905c6d202bfe430373ce7beb543d2dc8e8341db572b3f891d9a044f777d686a156fe85ca6a938b09aa446666674e44cda61563dc0622e6751ab1c6fb52cfd83a278e4e832e2b4e126a03760aef25325bbe0f0a61dd1bf20cfe252169cdc48f675401f35169e1153514e96d228e32c43c7da03751b9259225bd943bb92b6c460a892991931116e08698c9471f8b86b897ec4fbc56786718d084f14cf0b1a0c1abb2220115ba83be4ee88ac7d6e2e41cf0bae78129f434c86b60d04dbd62855b30b2211b435e223301c04b77b3e0d04ed78d0ed7f82ced0a4c0637c348b7dac7119b2c5c73eb9533844ee3776c94fc820318b971834f60542991a274bb3e6d3ec614fc90ac23f66a939322a6b6147ae19d340d7d748cc83eccff7fdfd7c4c231da6ddbbdec35824aea2b7a13d80cae87132a6081060b18e2aad0d3fda0fa71e88f956b0f80362033465cd9fa3dc05c7051e0bd1a9abaadcf3d20169e3546d83c13684192f1d78bab3cd4ed539ec1ad12dba8226a9521076ebec692fcf1e2b2d9180eb18b90a1b9ad2082e5f1cdd9806bb347ec7127f866a148d85f1766aa0e3557a385d5c9b6e91e5814bc01d872b6fbfd58f98c32e2840c94de169035ad44f9f5a19fc12e4a60cdba960dddeb0f9266b54903c78d10ad42008214c20271b32a6c801a1a738eba301db01fe026e601f07bdbdaa14aeba9a64957d1f04dca539ea7543f97156465efb518d6bab78f19db1c17caae8c88c3e55a237fc0c68d64955f6041332cde92d8f511d055954dc2e0438711244deda2b134a43d68231894a833bc87717ff166963470cc0f73c96d49a974881501f2c4aa4fc671924d056967a417a023d229ef830531e2de057e5b72b13ea87e98b355dd4aa59a9f0942a0b200b90f641f82c60134a81f9a9670e2a720f7822f3e83f3827e5aaccffb07c7526f773fe2a023220030ba8a61a2948e24d02d62922e628e2c6f95dca0aff54619a96b51279bd68ba68bd6701ba822c7891cbcb4aab3e9151edaf5a0bb974f5ed8af9a9f02b452e6910cca5403c2e0fe57e4cbf7fda18cb9c909b912c34024982982436d1e588bb24cd79c6bb753a1105c6a5268180325ade83f8285ad2ebe9570423de1a464e944b532c008c027f5d511fc40538635e3716f59d1820b1d0b4b64617fd8374095e89c201a8a8d038a84c8cb135e88ab3417f50fb14fc801b19f9544fec7f9d8ccbde5a8f7f28033c805480c287916ae4111011443420816a0c5414e7e8f3a738fc74bfa46500bf7b39a441f7fd637c5b40140abc06ee2166f49a646346122bf0a62db89ec7a5d119754d3605db7d69e0a6e0443bc4c5dd8e4127499528698ed43e14a49e1bb0ec966f7d580a949af193cd4141bebd42b5e21581ad04e7d3690736b9c5e442c29d34d8a567f82c50012173cafe9382eeabe8f8335aa1a1b9314c7524badf9c1cce6ce49d57d81f5124e55226366077bf71192625b47f769d8459838743fb4e8b8dd0d79f84a765189a71a4d2256cb6f82603ea20a386c9b763cb0c2035094508ecfe158910e7d06e3117cf843805167680e8e09c745126d2c53a43d2583f7d2650b1788ca5c10ae471ef23764d3b0928b3823817ac18f7f12983ee460a616b2e13ecdb2420f14626e3445e357a05e8a8db0d1fc37f1945ecec9d8716098a6ee4c4558581ca181d2f8be602eb242dc6e63fbe314c45b3d01054c8cbf63a8fac3de0b81abc2b303aef0c6b020db33d20acab32c633b89aad4783a01756c6079dd5ed31e0acbd76ea191fab9401153cb2182e3373e208cc211dc393a9724c622d79fb414d929176dec0a730ca4d262585fa6046faa7896987f15cee19a67411de90fbbb0e7e0a1311643e62257676d70869e4119ccb2d638c46e30e3186ce0670bc98712515358a7d672d3f6b4f749ad24bb26b0ae9c7418673a38d947e8434fd9f3f6ad717867516bb8fdad814ccf2d8679aa7df87394ce05f8d50f383053118acd407713d28c7e261819c2bfe2bbc3facc7bda9a4c8ea711a62952717866910ac6a041a37082cacb332c834235f044c68b79d66669c10360c29ed2258cdebd023c966f0e156dec8eacadb1300dfbd9e0cc33969645319af5e7a0e45b582f04aeda5a146e869030022075c2e8b780ebce6d779640cc43cc21d7187ac6dcef9c34d3832dead98a268147b7ec15e913de82ac8a0440ffc370e0f7078c1e266480fb48ac754467f89641787fe0b1a158a942759664057983b322a28b9092d826671ff7211dd2e64fcd1e59e08c26be81ab0ab1b26720719c4ca2f52f444e2da44e8fbd6d50a3a0e45832fe835d625edcec256249a4d161c4d106108f31f00013aecff71628ac43d2808b25d176e568285348c51373f9d70de676e6a2ab18b849e099f908529d311915e9f8f24b1e58800372c8b614434fd312f4e785e36fcc54528d9e3435c04a17ae430b1f677fa0004596102c13738ae824043470aed74d6f90fd939e16d8726c42536867f88b75914ca2eadc8406079f8cfb0e58e326ee83a98a6b6e99ab2d8928831e267fe882e361d90996026020abb1793affac70fd5041c922efd3ad0763890790d30b73a9d908c628995912580e618ab9bcc093d3cba583f5e8ec763cc4ca8afc7917ed566a4e4a3461687ead8e701db2f98e0f752413349e4bf2e7a2a847af5fab87bcb66b7e38e4834fdd2de4d2db4dfbefc17d266d9e27da3885bc2bfc24290d0b2890eeeff07daca95a0e71bcb34263f26e8052ddfdca5a27691e53390d30a78d1c11415e596deda5b80d883caa774327b89b82eb70312d6160d81162721ec4c0e24aeebe74dab050e3f32111c5f576fb28b6ee3d3e5f2c6964e0f15ea9d1cde5ef49af5b15ddfb5cb75e8e1981254faa8771fa26f99ae38305aff1e4c4a0c2a5eaf1b51b29a18f7713517768763d252187c0c6c91ccceac0adc6e459a160d328a081fcdce31ecf3d4589a91d39f18c4560468af254ebb4f5191690ddc6dcbd3062ebd6555e0666b92d6f7f424ab21f76d52da5d9aaa4c4be87e5b4e2b68dae589d8876901dcb5cc68f76854843ef9151fde6a4bd10a81064d24f6615a00772d335a4b569248aab4b312687f0b8bb64707aa109a36e0667b82761293a4840f12316586d4d2546e75aaaf28301fad1995311399fbdc7921ef876d09d6e85ba5e52fe5200b095085a0a40baf054369ad4d402f4c8a0bddb55549fc226c339c2d6937f92ed12c976ce3b311ea4eee52419bb325cb6ccb11e08ee6d5ab0e225e0a31337759d3f78f80ec93742442e987218772094a7e80b07794e025b963ace3977263d8e7dd8fba37c527392571aca155979307485bb0b125295e59ec1e19b7233cd994a0e55d67777bb837827b6b7d36b62457cf14d9d8129eca29934e1c580a4cd2bdd2055eb3d00c917f1ba21fe0a4a7de40834243c5118187a48c624cabc91fdf9a040b4c9c807b29b20350477a9bcc27aec9a1584c99eb607f9e5b5e974330e9b584ad2609154d4593e4a4a54fe05fda0e6ec6f05067baf47d54e4cbc638a8105b1223b45ea1ab07c25085b82319a3910daf3fec41c1a18f935367af60be6ff52e62440cc3f7c10730899cc229a94d38f874b2fa6b11e049b87c488d004c2e037c81646879de618c9200407c111fb1acb0f2a5c1ce1b80902f17c0c6383afa1a10290720b08de15444b07d02d3790310bcc3c2367886a14010c78b00e2259b589bb7350d3fd07960cd44c2a09361ecd9d70c7e4f4bb34bb2bace9221538cff2dba5eb71bb7809149c96378b3cfa3ce167cfbf814c1b307326f58d43fc85086b869d4329d61ac9e91c4d6198819b2c3c24a4ae9c80d58b5a2780314b9462fc7d8141cffecdc6857d388321f12642bded289dbd900a179e60f05e6cfb0bd31474fca4c7fb3529bbfbf084712af8c2aa2240173236127bc480a1dca70656c61c8df4fb8e917b4861fc651ea206061fee2273690429fd92784daa297195df7ff19f8526556e8dccabbc2faf09b1170dd6c451b628a7521f7a9408dba44f1112aea216c867282f694510a475a62d4785097d2e1bf07c0715fab5043a4e253eb48f8f27a60c8ba3259744b00e8cd4680a60600f6d1c4a5281b6a7b74b45820e7e59598971b292780c7f3af665540e1da6147253d90c4192d972d44ae1d13b888d5b1d0a1198d6004106569a2fd8fa95db17a281869115340058aeed756f5b68a3561181d93c57d60879b28eb22ccce4fa2b249c11480e241b0ac62b0226811634846fbe30117a26abeee0c5a77eb70d1d18e178d7d01328e1c1d9daf3439262697ec1313ed4f37e91c40e599cb2bcf098315a3850d9b7101ec68597b67b0f796b4364044d82b688a9b001bd12c4d527b2e865c5dca8f72c9bc7ec407e8a85747b7e16ff284c73b01b549bc1f84fb86166b20a3ab9be58efdc7a843070b9365fc007f4de77a2cd394357750a1e79011441398ec042ddf4609aa7f0ad1fd266bae72f54f36725fce0ad9c08a745ee5408bfdbee051247ec2841987005dc20a0524905a34baa9cd680656cb2229381ccbc21bd456dbe918f04e27da5f11174233d0010b61fd1f3e1e2574832be010bc4f6448ce4884bce41d13b2c0628f592618c1663020a49bd2e21c00bd920d161eae5db40cc3f54120d75343453b52f9f38b7628855a9493a02956b6ef04f7734a642ba57c0a6aa131991839d6f09cb9c709238c08328e0d23089b82fd48e484e64a675d7e069d4c7aaa3d8b1c1d288fd05c0230f6e15c023087f01432c1a803f2dad6d2626651fc97aa1d6d70baf86544f1c97da86938e0174d72003a997727d1ecf44a1949af2ef65f299cd9dcfad08d56ec8d9bfc10fba6633a03bf2bebb90cabac844fb8c59dbfe822695b0495e813a6400aafdcbacb9f93aed65d5ed1c7c226ef7989557b709f11f4be4e04c898ceaea0f0e3b926e2204f6a36a05cace99608be296494cf4c994f961c430c55de17e857fa7d104578c3e6d58aef482e68be2623560bc49a211d728e67ada398445f9a6f3ceb9ee977d3055282cb408e4a000d049b6c73411e5fd74ac835175b2a9af8e5e24c2259887656b4a22da1b1fabea095b8e239b22cf0a837359b70100f83494f764419608778416fefbfd6770926c19f4925558ab25c532510c53cc69f326057ac873d962ad8cac2b640e7f2e903b6b73f616e54fe80049c10a102f7689a901d782397dcb203871bb9c11d6932da015bb4f5e0529c83138f2cb3056b5e44c9174ad27b4c89800ba98d1945cd399bba28217104b8b5a26db038d51e36b0af3dad70621df2a40a77846d2e6866685a09b28078c7a64354e1b95becab810222549f226c31dc05dee384c54b8ba2cce95653a82d20a23ac48b0cbfce177c8a4b0ef32a34ecdb2dce2f12601101a5d17323c78d5e7d373ec20cbe4247a2ac21bfe298202280cccddcab16fe188affbefbe0a9db87263341b4efbc584f7e8b4b4f67df0ce8231b6e5fd30f2d60cbe984e3a3d00f03ed41e71a469b54a8964b45bcfb7ed85e06924ad154b86007358ef90fdfa0cf524074326399914a99c758ee2464e4b9ec2e65ff272236031a9a00838c184070cf6f1988c86da8e99f3155d37058ba91e18a384618e0211bf5bb6fe90f431b3ac89dac970975e38d32d2bbe71e6e78cfde9c415caa2a043598909ad21f2c07ace2b53a9141530801a55876cb2d3cec40b6ca1b12f164ac0f6052e81e9da98f2f676224d86824401875693507722db7f407b4c69370fcf648eb3a8a1b6d938fffee174eff4eafc0de5d9f2aab15f235699505dc5b12fc0574c82e06e8eb2fa03f92f94b7f10f08db87920c4eae1d46fd348880ba53e21aeb0a53ff4f269e22a4baa47779c25af504d904723a927630d39447d1ee90f96504728135403b2f2a00a925993b6e93840499efa2bbd8fff5aa53f8ccc1c32430f0498e0e4d9eb773b7899eeaff81f86071d9c0192f9afbe8ce45a3ee0a405dd0104ef1fbb5367eabc4297534d32215e532becfcb0fe31ac766c6a432a74a4dba6e3b3650936e375792c6215025665ea8cc8365bd4a3a25ece4f10a484eaf50f525d1c934fae5cbbfe210838f90f439ed42bc2918d50885d2c031f755f88fa4fac779cdf5c828cf9fa6585df9e91123ef0272d12657febb40fc8238b72d3123a4974ac839027287614898b68a281b8da24c07bf028ed10114947a571aad1ef19c213fc4a30f38f8fb8e24874ef0e4b4eabeac6e938bae464fedc4ba87744ddbb7bbad725f97e4077e37f50a97906ae75287938098b3c40952c017140a05d28cbe07eb89a0cf744bda711da9959d2ef09f17d24d030e2f10195fabcaaf34cbcec5cf989d6c25d44351c9147eb68cfa61085a64db5f753640ecf6140a4700c43fe473a28bc4142f705d45c545584c2421ee7f94e26a9690d7a5e88b4bcef1c47d47c5500e6603f39f457e01064b9435205262ca211f6f0a850d6f20f865e76e1dedfb19e8895cc7070aa014da944176db210efd1638478ac7c71de268b0a38ee7bd22259c5db6200df8221b331cd2b0527aef3e0f0412ba47c1204648152d345e9e570201115e16d76a1ac3409edaec2b39d87f9072462174877b639d345e84fe8b77dd210041255ba4a85b8cea6270a8149e8af269e6c38e72d353d20109c7dfcd66b3c38b4528bc43ee73f7518cca227684c2fc017dfc4c0ce799ce9a0737975da2798950cf31063c94b4ba9658f03ef487b30f17640106b951e660e38833faee62e7bcf23db07cd905f1104653738ca0dce01bd5834c1464c927c4943be7c906a5e405c2e850bfb643625cccec838b653308d3cd4f7ddb38d3145d797118fb062f65b66416d83a8ac1e58c8fa310bfec8c6701a21fbd61c2621f7a4ec8ac8728f3da00c7820c4d239383ba2d0001b9da23e786d7a106c562194ad94951988b188f052e3f00b509e469652a17a55b9ae175afed3aa4ed59c80e04794bf8703a241b36b304b3b76814a911732fdafc68dc92bd44406f1d5199cf0ad86056e208931a272b3a70ab383251b8c877544f4706d9ed511f7551d947ea26d18949280fe68f67923f54ae1f03fe2d786d1eec1e12f1b974aa948de1d8674fca9945ca38ac2b931df6cebc31af5f3a58674498e2e67953e377da2f16a16b1929b5dac80e8ba422152784e68a396c4edd7db68dfd405e1a747d80c47005eed405ab934ecfe0e366fbd3f8a16b3d8385d2a918e30ba62ff1475392e651553cf40d6ce483a33a4989782e3adc4987e176d2dd913709c5361764ec5c20ab310d3f56c00fd4aacf16f03fbe0e8931e9d4b2797c061be405ec00a5f6f5aada1a2ac0b8ef1350208e3e873cc94b52662e2147898864934623a14b31efdd717848838335215d87191ea35e386272373890c81e58913b6e62bbf18a3306dc547c3127d3f39968b32dfe476313249b4ac390c9693d2067e43836c4d2121eb0b87cbc5ce93d386788f766953cf93c3805eaa0fc7f71628dfd70bfed6e3da21daf8b8e7e1f6813fcae27ec8af9dd1689954be4bd740d61ca50c3503f6f639017dc4db17845ee0bd5a1008093f8f1c6d89ea610b760fc95d45aa2df31e82a48814882e2ca137975bc49ea3689db357352b85b7563324385e42a0f9df58143d9004656fa3512f94a2dc102b767e193dfebe0e234a41a5a3c97a88c4d603856d4282a33bb0eff399871c8215a252619ff62a83f1e9b56dc9249fdd9c2129046e5b0699a0f34cd401f26d9cff00d5285f302268b969f6cbb6a443aa0c40c5c07af280f03e2c3000ac049ab72e797a5b17d181690939055370b1f78a2759555e10798683bfef63e46755f40a80ff42cc945ef63cbd6d9733b76fcb6bcfa2844edbe024bfd3c13c28c9a6e976a3a3df69c7778ad8ac7398dc3f91e7f6e72e60cdfbee245a770a08716e7dfdea283c4fd68e42231bf66ddd70890a5cc7a3712c9d6ca26df833e11bfdc0cbe47a3c96ce2ffafc9679161774e5ef48dc6398255eba4a3c16c6d8c6e5e2d43d49b0c922189bba8ac4b0714dbb9acaf15313d2d7ebab540460d93091775980c221577edcc4adfa9b38b80b6ac107fef39eeb7df6694e61f8feea8cb9d24b037505d32385b3d6b157d02df0752b5488f2a1f1a511048213d20cc799d8fe81e068fe29d85141e1ab159e4cedb52dac3a846ae280327f1f4f5d7245aeea4d725a72a5aa84f817abc92084b374f28097150988b4518dc66c0fa928c91cdab1b25629a8999377c129469c7c8f651098c040f0578e2ceb3366430c0241c17629ff4bd2837fd7fd125c830faf06326ce09a309bcbb2ed51acb54238610e1f1e4d8755282c40b3e4f067d4a4bd24d3faccbf5e750993501959cb7240ea439881ed82a5b8a0020e398accde9ec31fbc38c7bbdfef308aebc0d9ce893317e9f19b54eef1280dab5c9f52773ce995fafa09bc20c23843fff5b66e8965cf04a3142ecb2906668f497c99802e35ffc68bb93d307fb8abf5b48d1f45a8ccd2a612be62bace2150b6237414f155dae9079432230030aa8722299bd0b2dd138878ddd3704eaae4b76f84d90191882364eb2d1e5d7bf78a9a3e0537e8ef11c07dd55718baeae0699fc80c7bda88654b7b7bd1bf440c210d23a739bf9f736af014e9cce54c7ee380ff006c7f54f0ec791d0e5111e07b5634fa5f8f1ea10fd53c5971703d42ff711c4a7aa5bbc9e4a0f8b64135aaf06185f44cbb83337d09636ba4c071b2279bf1878b99b13107b0d29bb277733e0c9063d6618aa5a43ce82df072159c7279e9611d18434c677f8f48de3eb69f164eee5ccf93875b9831b609855276bb97b3cecae8e27a4e1493e136e55df25fe5fe9a981f7e2b7df4262eb82da3ca128dc4db0c48e24e7921e8692ae14070d80b73d299729390076051489c421583934a3310436039f90f35c28803433815e70f843006472a5a08b5a2787d5918b950ae016fc2d076ed7dc14fcbfac2880a2837058b660092e884e179e2cae28b020a36d897d6a1d924c826c76cd2d8889ceab347cbf678b92e3bc46752116f3c33002a18698b920535abd0aaabbde222e4c3645ad57d4d117f6b1380072e7fa89ca77cdfdba7eef3deb67e7918555d8ad67f3ebd71a181407e84619be97c0cde9f851129a5141994a29713866dcfc0a49e2b9a89030df0036493f4eac80ba8e6f2400181eeb7ad097e1e1089f5aff844b6b7bb93201f3143dc076ecf02c4a42f5e04c787c8a0d24279ddf2af158cb12a3bc31c4971328516bd01a0ab7922b359199fa494c461c53c74ae2701798652d4851cf99dd09ce410753d4d94a4af755cb010e39517d0aa7bb2efd68f267f64d2c08bbdb230f474a9ea5109426c62d2b670879ca8bcc30f2746805079a079310a3af5f62690c80b3248aa62c1af44ffc5f4ead75ad306e7f5c6c1e136b6ad9bde7600e6f7c02071eb117353c613205ca2e52626d9a73b6a417f5e193dec469606fd8615a71e1e9c7cadd25f99ff503e20a105182560530da003040818faab78438074d802cbc72d403848c53545b926313039f24fcf92e6813e7940ece15ea1e2240e1d31323a2d719446a7ac276fa63bb90878d7b3123aca4861025d0f875389352eac8080cddf45601b1ea2f0fd64ebc5727c57d56385de3c43519410119c8cbb88ff0b5bfbfc19969b3f22f002151cea4a756b81efb4bda8b5d128f7f8b6a8d57fa8add5754e6eb262b80007876d67ceec342b968596a7699e49bdbda308245cb48551bcf7cf0c06106911953b346f19d0fede97c006bf7f594dcb4a7fe5ce414636fb105c4d3658dd1955a3d7f4e96dd2152209f62e5ae1e5536df46de2b8d8ce983892440dc36d98c6f97e2ff5261c49c642f4ef560461eebe6fc4811d61d94c62bf53f2698cf1b4b50a0d832fda8288b8f6a67ef9aa693cdadd7243f363c6a00d5d9d7f442c90872320000728cae9ec679679383df335f4796929e7ba24c5fe6e72bbc661fd801cfeb3ab2b7ba42ed0cc16b46e83e18982ca9896f13fb94de97180b14196c42f22df526c36e28e34f0c9532e46e7ce865f665796cfcc77c9e70802556fcf947ce4e7f76933de63032c8fd75460ab47c4072234d1f9f45b941e20c8805db0eff51783b21eebc799cd78896d99673bb3aa4169c8a236f6dcaf5b716c8496175791291f31fb184ff6260c33533b00b230062c7a2c9aa8b33deff7c8439b757b7cbf182277c193a1122b45ff3fe8efa8057d7df51ead1a6b1e1a0edada2cae95a58199b49a2eaf583b67c165904e316dca46cd3fca34528cefa92c4c8fff2f93d64995a74701c2709dab228a79916f194af667ac4b33a75df4178aa2b2663ebe78cfe93430e1a523549e493354d9917bf660117a2a52a899dec026088312ffc2886c5d513e8b91a3b39d5426849defba5bd681420eec0305e5d5b2215520cd40db2e73f829504084074dd1e985aec089581a6e36df55d27c22950d3feb616eec987002963801911f36da6e94ad2c17b5346c57a9f8b2c8518f8556c7a34726887018b7579e6c32030f2a3823182e6f78ea388940b6c66d435b12b1ee1330b7da0807b28886586fe02c3d8bc80316f2e430c111f907702ca275ed3c7eaabc87174d642eaf5234b1d91c5604c9652e82b7fa314523954c669bc95ae7dbda20ebdde1b76a775f85601c562c446c2f188c2d011715d6119b158bafc2e4c097354b496e58b1efbc6bb5fb052394fd6a66311043430505afe6d55eed50fff14b59409f70a53410de351b09c51170a037c0f81c75f4d1ca7a62c1896cbe38368870ea6400137b7ef0459a97877de9558902661f003b84e73550173ae57f21066107e54f94fad1ba8d54c1c67040a5963a638d6bf0b5ce3d3b7f1d004f72f02e9b331257419c7c0245b171cbd1911b8ab297251d66b41ea15b3c5b4f113327a523d09cf5a1e639a1e1f103ad612f92170a48541121fb5ab03206122a5dc9185d4c22e075126dd8b1423c3c2a737d2f983938972f3a0a3b43323848db7c6cd1b5566f8a0ab5fcde6559d6969c62531e491a9c780d2facb9649d0663dce6bf6cd328582a6ca6a8faec9e45ba1674e2c01a52ce72eec63af810b492239f11fabcd48752085b625773f98d0f7a6397254ccc26c958e9836a80cdc1c6a74d39603bee18ca0a18ab139a43d1b224fc1a293c42c5af0b0eb925ee185226262f4191c497c314f32faa83b187daba0f836f3b1460480c87579db0f8382931c01d1ffec5fa7b5992af10148e192688eda9b082f19b4fc7e047ee54eb4ccff0223920591f9e20c7d990956171093c927702a7124168f24920bdb03f76a964f4823a727fa00d48cd6ff47b1072ebc80032666e6acaa1a6543a8eb8cd1ff0214e918990f5bbd85e75f4602009f3d4df88debfdc90e94c854d133ddfa4a4f982a86f0ed2860f5ae3953a618e23f72e188ff5a93fac305cd31890023a7d604b41ee7ece85b8196c33f6aec81bb4c020f6cb79c91d8550bce42533818500c629acd10247ad64cab16fe056ac00805e00e62b51ba0c6d58309057feac21d8c47d517429c2c0cd83dc114a38cde071e3c9f190455379bea7326437f148284471964067577a836bfa7d25ee070c235d63832019364c385db1a850f0c01a6f10ddacf577b858b4fa074a260e0d47598410c3352e8445fc5b15ee1b30a3c38ba33f70f8187df0c0f3b097faf7ce4051ec00c37f35f6d5a06b8b9020bbb4af247fd3b8f11feadf19447082dbeab7216329177c6acefa80a447bab4a78ca9f838f9e6c0425c0611f1482c6381c251b7deb0db95062cb970419a85a60d3ff5e3580bc0caea99e5816f4cabc2ea27a47018724ca3302ee5bf34e071a0de973964d399403b6a871b84169fea5bf78c346e7872787f6b25dfc95b3e02e8c8648e3c92d84513952bcc226364f14a95027ec24aa67d3f9dd4b4dfb24f1b7b373f6ea98d66fe683c4a07add0bea7d4cf0fca37246c177cee271e1c99ccc29d8cfd5ea6e912d134a350b73bc9dbf93b24b2b7f25df5b26ae1a0817276eca2cbea146c8f12d22340d574205b751f404f7b6f78eb78c6b054dfeb33c12e14d79c95bd974348cb79e11a09115d884f03a36be636468fa387e1b0832861749ce6b3e88754742031fbb24feafe92fecca33ce3f53769648a2804a19f90b9950cf9f7f3cdc2bc317a80ea559919893cd2a0156153d03a8bba120bd03f42a2439dc02c5fc4988aa6622d2967ac62f0a9a934c22260c5cb9a5fe5e1ab9a01ef89e1d7308315249335a888b7e0adfd7204f93fcadbfc81323cbc2ad9d671ab2bed6c9eeed856cf81489e9a440b5957563bf14ad648364fa3104c75ca14328a1539a586d47551daa2f57fa5480dc89deb0b8a3266d733f472d15160118d8985da533a322e013d130b0e8db3a77cb59f67ed3bb1371ea3aacc2c6360a6932b670f5bd9884a019f8d43275927e06324dbdb07bd0cbb62be82485d6655407dea0b6092b159efd395591afe30fa025ebf8d2e6c06dc462679803478f6a9da32bb38ddf15051d73ac615e55d8167a75dda3012f31f7bbb884c13c10334566eb1b0fba09a3c80eabbb4c36d5cb6b3b4efec11327f2f5e7c67ab576e27f845a79d7cd68865e279cb7689d35717daa627306923a50932a8835916d4a2a177f604536527b840f6d1306d32032055c73b7b41106e5ffdafeccea633b41eb603e440210141b5d8c94d3778e6e883166bb22cba14d0a6b63d10a4b38fb48bce6663e312d8814040a2b3e34cfc26b53454b4c657cc5110c26d8d4dc08bd68f674605342040366a573ccff805d5fb34294ae660dda256c0b3ea9f4cd77386327f8201c5d7b7ac2f03b5eaf6482f5a4f01f8363606ce10e09a28217fde74bc4cc79f361dba93f84412e3487ad058ae99652b04aa08035b406d27d396f802b9b25e2ea951e9e55e31cf92d52eb2b14a1eadff5d60bded95002f58ba010bd01ec0160784f62616e7370dc3ec913ea86948faa865b46ac099623f0802681f82855bb2490cac2f3bb42b6165ee597d0882228e6caa737c13240fba65ac9cf6f23318cb7b52872606b374279f88e851249168239d3d726ea91fd0d944916dc41df9fb39fb761af75d8ee01046a8cad351b82d314ad9e5b21f1f6cc85c95a7cafb6bce663fd39cad34336787c6053757e66c2a0358c2f64ddc672a67779f49393bee173a6cb582880719eff02ee81c33b432a8002fc8329fdb6eb3c4a3455092532d5e43a0200030d07b16d98f18e52a87cbee86606a22af83b7fe3a4d583bedfbfcc8a500f4350e589dba40e8c281bdc3b2a5a5158817c7b30b3a631494f49abcf13876d0917bd97e5b245c6435e9d4b7543559948bf52d344b89d5d9c77feeb6c99d31b210605ad280e3e4dec1a5128476988a4639fae98814496b738dbf3512e409b9a0ff3f46f9c46ff6af012779f499ca6db77dbdb772576ef4c7c8b1816da71843de05bad964b716e9077ccabf34f7b3ebb6df834577ad421e5b38a0cebccd52de59422fb72625ef168b3200814016ab9f4b27296e3d600fe390f28bc1c20640e8b820689053d91d29593adc882c6f93348bb8c51d8a0b8eb79f6a5fe07c26e019b0c4b9f0a41eaaff4a153d4971421733c3bb56ec8d114495aa90f3aa0fe71ed093a4b7a063c2cee70bc4acddbcc8122fd9cff0b412a0b8d8418ed7bcaae31a7699cf5bd074e8e27c43453549a05c97400c7fb1eea7045daec069ed293898a188ba3ce178ed811c850c2f67d018e07fe0b9a92b9b5414744fae249186fc8375a694aa02774d1a55f853517f778270cbc6f3a6dd658714b554761aac1077f8e9f0f6a97e22b2d4e2bd2ee98ea11c8138fd217571fc4261676ce98e05901be640dac162d0b32e7f92a23c72a001f83779af23d2526eb36818a406effd2a52effc356ac7339bfa824ac13cf87f3b54986bbc2e7bf7da812ae17d66c5b64851a540db956731d454f8089886450d083053b7559787549e798abe1a652616b850d701b67305aa5630d14e78eb9654163655f088ac0e61808795008d3f69f800e576d787d0a1acde5808947b1fb43c2d0d94b0840e0f6e7c72d0de0c129d3fd7f089698b24607a9b007f7e012a0cf83868b40b41012faa4c2590ea8f33a02d94876a0075a4b36282da6615ba04f2cfcbb536b78f6fac10a1fdbb42a532049a24d1ee0a41621931b94b0a2c6b709a30126f3a7435e59fc4e4a566e7f2289dd0719cb2e19d918503a40749e4015457efa9a81b4d29b707148aba64e12424ad270f817c26c31a4c1a89e0b77a2030974a4e52783f8689fd39a9357d4c4f821064ad33843fc71ac124c49f14fa3ccf6950108aad2cf5c689dea907e3dde58b0918ce79833e72f9cb1318e208972c7c8770dc035538979459f7a72e97203a7654d09b8374255d752ae9249c30f2e3f9878353c888585841d167ee7980382ef0e03c0b364e8d5f6b058450424e2650cde441fdc17f0ef974cd99c242cb1f47b7326e60ec4bfa67859f077990fe4b50ceb7009e5b6a17276664a81b0adc297af269fb09d481d2200ef56560125ddeece0933689e89e2d94aa1f3eeb1648a5c66ed41680f5134d51dfe3fdc297533a66059d134f19fa9dc9d4d5bd47ead967aca67c8e61eba248d69f269fdd190b5404552aa4d1a91117cffedcc49b0753e9b8883f30c5f8299c38a37aa32e620bdc92fb031ef3d4de4721fc65c2bfa9e9382af4a3697790182c43c5bd9e2ad255c14365c95e1f02857a6f1fec6bc61414cb2dd31dfefa1f8e16491dc601da5e3628eec76e9e29a623a8ad2e659a3b9351dc95228a0481cb25592aa3fb332da12f87e1143775d2d4029c9006850a8d49a62cccf7fa70f0b34cb14d6a71323484d0765ba80d4e64bee5967bf2c5168663f9475e78c06ab4f8a8fd7d779218fd8b83236af72827950c427d122206c5683ce75cd8f176552e9d61c1c9a706974cbd3c0189ac1b00c6662f56594bba3686541158b9f92568de832c8bf29ecd3efa77bfa30b4c12ad69d66209f43d6d64201d9f477f816594832d1b1a62a53009f7a55ffb3d1c321757895be40c09941cee5f412a8de1b80b7af7c2fb4a5e33535d156a048a97a52e7a0aadc4d687b2b7b80d9f07bb63d0f08acfc2971dd64a29cb0bc703688241c5041b16c5455c707d47c2b4813bf8caa24fe50946ad406f3939c553514fd00315cc796138f8c50a8ed4390ddb48cf1334f89cfdf1454a4faf8477cb3b39aa1037d536a89f5451e6bc5cf5cc7c8b6f83a4bf06a25d43e451a52f2c792c2ac7057fb2c63c007dfc594edd62c1307d136991381676b8eed4c9e722e5f3554671ec433074c15b5fffec730d40740c23a465e4703d3ad180370d3c2725432e65567820aa62dc65f00f0f4c724067456b24308c2f92fd0b749bae007e7b6a253e124eea403a9e954a821a7058d4ae3284ac6bd3aba9690b5a32bdcc1ff64dcb1775350139ba3a8204e80800589c16cfea3a01301d979cf4f912f956618193b659ef9ffc11c8f2f385ab7fb029698f14c815c858fe5d0c00ed20a380774c3498a504f30595eea80ea06be2aaad0c21d066288e4034890466cbe2dd35d234ddbc2b056fc7db54a19fdbc2c35382cefe5026a647cc6400941e8c7bc56fca7f50d58e5004fb6721cf3b84d956be2416385492ffa444d0259821b60123afa6d43e7244d4eae81b3ba8e168f28cfa93b426dfac9d1e334c05db14328c57a1f24cbb1df303126fa6eec8be19679ae13c38a8c63f03d2de2eddfe0cfe9479a7042b413a8332976200d30646745fb770607ef1ce5ccd393ddc5fe3e2b80a94155bc04861d32a0f791bb4344df8d101c760d97864ff2a02ab10bdb36a667a7941c95408380036895434106d222528fdad5a9882c57bca9a1ed0165d823ed541253d6d562f370d0234a7fb515f6c8d2a9b648077011430ad36d38a350f45008b564675d9a9b7251cfb4940a1f4c8350dd4876d854e292af5af10ed174388c3cfd9733e204aaa0ecd418b05df3b1ef92d5fd770e28f4943ba04d2f78e3ebaa6e1402192d58bd80f621dd9c74e9641c82d16a430052d2f0759eb54cbbdbb7341115422b761248eea14132812af46caf167d3a0611759034824e3d17242403ca66d9beb5e7095308e03ab8cb927f16fd70cae104e597554b65ea06068177285287559ea80daf66c99cfa149afb4cd6a5488a526a1bd00a0e87128c8bdd120a2c4ee7caeb51e05c989b0c88853c567252feb800c00556aa57617e59db4fa6c4823c1e265a75ec898fde09a5009c0b05315cdbc85a5cd2778a610dc0c69fb6b74c10fdc606b9c8d14a4005fb90d5da83ba4779d95f225f8d7159d40e60ba44a5f662998f0cf611a0558b10d209f43d1905306af0a2ccadaf6d475dadb253cee60f42b06540447724e5ea0232a9d40c184dcb485f82377a450f9e191d1593dd638c116d720ea4c4988766b73e096941e643fabce970c354b3981f399d60f55f888997eabde3e6faf86cf89319b5565c611cf05a7341014bb90c1520cf173539ae368cd922b71168d24a5fd4b84cf6115149db78df78d676506ee7eaf932361a7dfa85cb4af534cff2a510409941a1e56f741fcb10882b6965818d01e5411f93a767f24a2dee7403679de8ab91fcd98cfeb63386707f410810d95d853d993ffe3ee6a2cf1e4e8c32b440a637ac993a6048aede66454768e2681812fcf4d4045a4b0b6f6f1b07a2964d36b95ec808ca6d9410946a445029ef4545b4f4c969341d2327a701f6ff6a85f0c1a8738c1691b8697beb2ccbdb9940c76bb974156925ac4ece4850fc0d7d67721fc0813392cf42b09d73c78d4e43ff9331aa3a3695901a523d404dd934d9ec5c2b6af5ee16a7823285e94447b392c4e2d6c7983fc5069a66859d75e0afbbc4eab3d75eb70302fd89eef00749ff2c5468f23bd697e63fe126dea33cfa1ee51f2c5e568bb34559d71095630320a7c09d1b945011cbacc6622889aa08cda709d687f0f8cac908368801cc02e4827535e5cab5dcbf2c77c01393644e3a066b8c00d82788dc54d8f0cd441afcd2099e871b1de797b8f8b6aad7d70537c880afd6880c6930b190d907137c920e3d79406edbc75554cc04d5431cc7a7dc179666095990c23c164e61328ec33aefd85fa0d49f3c8bcc19adab3d18cf59092f5370bf59313f9d626a5e51880b4a1bd291b4544c0e5b44712f6c250d0111190665ec85c3dcaaa789e12292a4098602c711c823c6af0bc5ccbbb090655d7d19c115c7090c70410505d3397f8382123cbc5faef6442d32e505fcd198cfe987abea8084b938237d35e9fe0daf7ec6e68b5222aa03be95fbe3985ea7de6410b51ef02df74825b6e2301449d15e1b419b2ed8944ec2d85116f2b3f52df35537dbf7ff2dc9bf6a4c25b53c9acae666e30cf75bc885da203bd881da42cae2f01c6d541d34766591e0fd4418ef90c14fe7763c6adfa7034684433624b65f9b28829963ee7d95e0c9acde93fc51c77e282893a3367193155bb1780cce42b0ce19acff3d00fba4816caaeda5287e9ea44b43e3b323ddf63e91b125053c17569e79a2e898cf2fb3c570a77944b9e6ffc4c2641daf6f3947ff210e7710a7bdfb86d8d14b534200155ae695cdbd19f421ca199e3cc361c771ceba3e0fa38d4320fb6603a3671a85297e7871eaca8e3766921565046f194b44aae06ce63b67287f6cc870f40e16ae765c3eac5cbb412440b8125b9c85800a457630e85d40a123dabdab88d84ea07a76ba6a1f62508a7ffcdf5253bbca5c343f3819a5e74563712f38003b216429e38deb4906184efbc6d4278b13acfe9c0629b1fb71bf791d5d9c4eec75bf9bec287390a7e0d69aa5d12a1c4ab230a64182e80468cb60420569e752c45e518a697d5c5a15a87865da4ee7c474eb3313947b3296ba6eae8bfc448afba57f307a40a7fa3bdf583316efce249249ff8f44840050837bc2cf785a7e40da4c28eef3090a7db3af09a2e0bdec8935e54bc5a4a26d2ee05ce229f059771b31fde6efbe9983ff4495af72f5e40729cbcb8636cbd1b6ad23c8683e0ac2832b1870602090fc1deae5854062d2fe92c8e34090e5bfdc3772381cb7b6a92ce12b30bcbf79a6a07915e75fac410c7e8258ba7c76878a769917021c34c862d3a4f7cb0fc4750a5e33eb3a8d66029511b1a439f6848ef268201a94a0daefa6704c7202e82eee46da06ca88f314b7ad1af5c6a6932b3ba02eea380dad8b0ba13f1baed3eddac12174e16e93ccdaff3af4b06e627b5a01c8f0533111167c5c5868e9a40d5c3c53e7d6407faa9e0e71a0863f3d4db4b5fb0201459f2c364525cfb6c877692aa473613067f0083129a3179b0f5941c1d7a39069dc49ebb8b4200e77e85e8e5a13da3051c9b09add813392cb2b5541685ae2cf6cff7fa52f3755c4add95f8d59f806d5a961563eba8a41626fa384df7c457ccbc87fd0bab76f4675a648ecf160aa0c02039b09f8f1e5bc05301d5a060b08e2453eab47ff09b88a74039d0f120813db66e2870ba2320a4c09b95c63861a4efdfab9450a895d9ee973af47e841f2c41f15b850519905fb9d1730c9868d9a79303a3f95c357ad48c43c0dee5a4ce277719ff48ea967579f211541c937c5bfd2deaef196134183168175d99c6dc341a880ac66726741a4b7740f7e40735a682c5528519010399222c450f25591848a91194138f5696d3235d2a133dee0dbfc98597de4cad7da24e880c14c517d73944ef80853ed6a4f1bbaa30bae398c851ac499d8e04c27a15a3b8331ec494b8d7da03492a9f7213e08ada55983d5c0a455264b04b1c27014882f0c80fc45619867d6e9a17a495f3807e6a9c6c83f1dd0369ddbff318ea2e25b725d35a309b249ac381e82901f014a4e18256b676e21ca602628a3fbb207dfd5c8b7f81c8d8c5a798aad3c6be6408c4e62ffb1fc7732f64c9bd8283c16406e9e1a3f19636b84929e53603ad2d1323f6bcb3988eae0b1bf1f104a85203da7a94925b1ec078fb7738cea110aa39dabf0585536580cf53a6f050d2fedda4d868b88613188696fa1f1b80d32dc161da3f56c7860bf3be37cdd117da1677d677b17665d144063619e07d88ccf11f9a9c96d83a2b684d003a42422cc9805f440f3bdf61eee9c5645c35385e07b49d06a847ba6209d7136efab29b38caa3ed7620912e9d3a413555e8c00b9c41203957ec5a65de259812a8fbbf1c39a98caf1c8a42e9e9f1272ecc3b9e0a3e89733214fd8fd9dbf61c3951109466ab08d64484af059ef0ea342eccf703a044cb8216a41257f5d98d35a753688445058216e6e96ed0df497b6546150c300952c236fe8264a7ec8103459c2e8e9c227227e942be7a511cc363b1df85e2df318074c20b92a661d1ea5c83027854c11a91677525686c9ee961db91d082867c8b74ab654cc82123b30fd2fdd347e20af0730add21dc01c8597b0be2efc0813c2ea6001f4f160b725441687b87c851cd57b120d79923c7f61e90187ad57257e540c32d6766075cc7a336c62b339ecae83c84265e35723b7b90dbce0f1758bdf48d4d244686fa516625ade27f52d08f306f607438543660eca54c83e908a5359818004273aa821cf799431ba5e04bdb10f74050c564f47470acdeeb730440c1c6d55cfab8b9fc829f750dce89a45378aca6de6cd806755afbfed705d5cd9ee22f89de096eb354540539163863ed7bd1b407da221a19aa626064d5304dc794bd74341246ee61c2c8a6270ccac16388f0b208011a32f4421ebc71d4984208552e6301626c608d1d0505e37d83bd2a96a6ee599af870d70b9a60040894265320b96fcdb8a50986794f5e38ccae6b698241eabe96382876bd464d5e7151aaa860c025e6fbc276d0599a76a90fe22558b821a048646fa4441fa4dca42d9e464e4cf052e78320b7d5419cbbebcbf4a36c5782f13ea7c9d049bba7a4d80d01e88327b386b02cb5e9323040cf0a7afe22380aec1e75ec8b58436449975aefcbf13d3a41b8868528c9e72b3d09001fa81499cca5d196753b5a62da92850a856515568e72dc51ec0c2e85ff449069080d7d8fde1ee5f2bd3433e06412bd405537b5b130ef19cca1c315d14f02be2430102cfa48fb8e27a8a87b0fa2f37866e9f23d50445944a69c6ef9a8b2ee6ad8cadd570a35c3246dd5fbad61778a4ad40652279ceaf04e3ee42f42956c6bf36cde4f42ebfab1fde5dd4ce6f1b68278c31c288c31386c1bd03583d443cb17c87d75e7d69b456ccaf94bcc08f8194b53ce34b2634d80fc73c9c861e1bcdb3e8303c86f09bfb970c2dfea3a935e8495bb8d4edae38540bf73468ab587bbd05d1ddfac242de1ac4289d2a18a5f97eb3af590bef2ac5ac49d68102bef87219c2e50402ed982c73a6251f519ce44d06495424c9ac4f916e49f8707b947e11e4f0a3d1550b087bb7c403303b5309a7ceba8a31f6da7e4d35a57db8e1253f5348c293e460cd4f4988b7ce322c017df6c1df4172b060ab25b23bc50133b4a128494450683d42a501df22f1e730fa471f4a43a4c3bc843c6da8a7536b166b033310d39c50d8cd02f90ba07d0e64f1db07b570ad173932b55715b83bc87bfd575e83d6b5532c6aec9b690f76b6279303b8ddb42ba5f171d8f3faff327fe1937f576abff0c761f52c8be4e8e0e5b005f275c602b8eee3bbd4657a5281c937a5b50ee101417c4417c3028828f719a3e0cb7b0927b194141b5ca47ca94dc19294b8e0f55df10593404df0fea103ec86a86cd6c18414d0df4dab9410903e14b56556d3f829235eb93c83fdd3dbbdd01667fa698d1c695d6c51eab4080d8d9b14750d9c1f0a54a12545903eba04c1257703272aa5f372987f2164849503c84b0425685f1b19a6d4fe85163e2e20880d4378363f2afdcab7fedbac58eaeb9a1f81424c663185433f00d05b3b7f107a63dc1348c4fa2e65c241d110d83ea3d01a139fad1f9224ab480f141b32b5f637ba224181f8d5a83cab6b19df7b12a6ee423eb0ab6dc0a0af8601a4edc5d791c1f0b48ef0639373aa3832acf7cdda3696a9db73f6282a82c5464a5f91fc0e8ec304f28e0a21fe483443efdc78362f1262dcbb229f7cfe597e4711d444a02aab7896156508e58cf01c2c08ad80ba7c05116cec30e6e42ba3091a2e096156155f844f536ad1dcbabbaa4383dc2c8e911ff1e7308e278e690e3d9675c02ce0ac54cad6b3a099461501109b834417531e60d9244a694524a524a191d060c06e3051a8c5a3821a96afaf24943472ae3842ee96b4d8974591b0e87d8379ca08aa45e89a6f77d1f454e11fd93e1dfe8d2e8aa947a71a3f236a2647448a188025b13a61e4d3d4ffdbb82024d6c36302dcd0b536b4896111aa6aa56d8d1e448c9c8145d282ab22bf2c5b8c9d014c563b7a49b2ac04793c998cff1d164538da39034f53cf5af8a9c3d3efa7487f5f1479feeaa52112d970d0a133968567ba947d57e8a4cdb6973026d4096a4796b4c174e412c372a25a97f53ef0e53a510d4a324400016d65d870c33cee8d2d0b227101e682cf562e48158e045180dd1d305ac0e685d2c3a8c81105bfb8180e4b00287a54ead0d860278dca0e4be3ac85c40a7408e40d08e8e8c8aa0090079d2e952f9f5d7755dd760d418dd5fd7750d4661fe51e5988b62080d27c2540cd1399de5659b991207230f4018c827a74d86f9d466a681b1942ba920669cdb4706154b24d2824a689595b4d040161485464cb2b0428bcec84c0ce709888c830e47c70b4618ac5658a0a911422c86c5a8e314110403ea68ea02d805059835652589c12159c65af08c3b8e5de879712bba2a5aea8d33066977c846d916538e0f87102f8ae2b4d80ccbb28967e755d702548512d0147800c3416aba6a7ba661457019e084105106c7610808f82e8bea4e1cff09704521816207e4978fd51d1551e9b5f333fb33d807c09eea9624a25cc4357dade8adf7de9bab85bf5e793fefac33c66daff2c51e903edbc859e4a3ca35135ffda8720d0d448b753ea1c2aab9a91d7d7dad2889f278fac502b2bd9b24969b0f2f0f3eba244a33e2f9e2e0ea7a92ae2bba8a90a85a6bbe811cb2aa6af2e8e967df02e0a34f757bbf7ff4c94e890025c03251b6410f0d2e6fcc0b9d5af1ec4083cb54135c09ead113f8d002b82892bf1ab8400928d63ad33857aaee88647a2fbed63a430755754a6e403d5810f8272327c221cace5f3dcf5f3d57f9479728361cc5e6a757603ff79f73ce04f8a8b2e9f23b3eaabc9212913508a46c883a6b2b9c21e282806f478f2e0b228e94e62eb0f07098898379d13250c6a1f89c427e824a389708730fc4204c79289f2d7e187c54f904f1f3795ae1c82086a808860ed0d051966bf6b16fb9303056b31c91c226d542eb16e86c39511ddf7ca6461840e9a43280ad2b12425a19728a36402db3aa9c69953a1ffbd675810ef8a8d2298493dd3f7131a0662b2ff450a4407d7138b2608fcc8e9f5da075772fde7696d29a9c207c747914faed4797c79d222d17e061889121940337a385d2c52c8b317ea8485c687a9232fa27ef4f7d9af5d327a9a01ffca94ff15cd573a49f5523f0b774f66ceed9a7fec529160ef1afdf4a5211a6e8ab7280dfb5064d662c055a144e8af5579a2a2d2ce38e86b592956fb9faab2ef2a743a4c6dbe9678f57bcb519064d69b0f991aa0cd053d10143de50565b559e722dc4950a9c8e66a038de75d5a521ebea93cf99aaa17fe2eea010bd877c789706b0c1de4b2d6d2290502574829454796e3ffb9f9b1cd0a1998143024947436b0998d81b3b83217b56959cbcc79b9f3d5626877ece563fe76c0167ae83a10b681e32a494e4ac33c6caaa26de808f2a9bdafec6479d8eceecc2044fb899bb9aa6124a55167e6830ab5e5260cc5af0bc6aaf9fd3c7bef5cb0f0b4419aa508a6c4c1f3c22254c844ca9263871c94821a6f5288f412dc618a3b9e6e38fb16f31c65867ad895e72ee47bd8f7d8b31c638e3d57581c7b5bff1d1e511ec9fb8acdc46751eca38e38cdfe58910f828c58a22d98f2e4fc87c8e8f2e4f18c30ef0e616e20dc5db1d73cbc47ae2c154bf9211c6d6c665c7b78a27f4bae7b2e1040d0d2a64709948fad8b7521f634ce2c2a8eaa52ac4998912acfdaab3ce1a44c718e3eccb3973edb0463c1ffb16633cb2e4c08f2ab7748affc4c56c3eb4006ec6dc5d27a009d0eb5015b63f638d57bed714b419b8302e30c8bdabb63887485037c03973cdb5cf396b1464dff293f6bf2ef72af0ca4d7d8b414232b8c009b6f0778c0f39c2315c45502ff4afcbd155a469414dd7acbc89bfe5872b7c00bcb3ce3a13c57cec3127e2f0b16fbd701de28c31f6fcfd28d3516d434f57dea522a362bf62ecd3105cf73551fb56e50095e05108a49f7b97f3b5af3d6e5dfcd1a01ae56afde1ebf56badb50e795561fa5317983faae47af14fdc34254bc0174111d657e85f097e299477b82a7c87420d8650450c84df5566237d85fe95e09fead60d15f5f7de7befad85c257f8d4449268d1482a08108109a99f1001e190c4ca3861047f74d961ef9f4c0840b2ffdafeaba0da75b03e9f75db79b3e9e37befbdd98ec271ae7bce28c7fccad8f7ca8abf3ddec1ddbbeeba7730d3bbefbdcf7ed87d5de07ba5a6572f76f5aed007854da1dcb33f0c572bab0cc128ac963e5c3970572407d79ef569efbd37b36773efbaeb2e02971c95acbda1a595e2c612e8e8d78213b6d441cd3148aead640f7bc866b23afebd3d6ffbf65e15a6ec157315a9d039c8045598fa34a3550d27322289a08d45f4f7f65ce86fdf62f87bef13776d52355c8410a154b2434686aa105b090d27289d301088fc7533ab6aa59db3bf0a6a1110ccee395b117b5191463f79910a4c8e3aee193319e70c7c5b56115e56a3f32ad55c3377953caafb5239a9d4a89eef504eeab5ae62563557a6133b7fcf94eced81ea065bd85445d0ffa7ba5411f49f700e3ed47315413f66914ac69f3fba34f2f04f5cdf26c160017503e5e5b24c2e9186b6ca82660c0a23caa2b3fa7d5499a5954556d36ebdf56edb03ba9570b3ced885f051a6b6187959a7b7d2502845bdbc1115c3befe1a56f6d775a51906a3caea0ac959136635b6cfb2c61963cc3db0502c40014d5454cb3126930955c502d20a0b891fb023a70f97cb51de574f13849ab2810c95231633b532a6ce410c4b7b2c56a45043da80bdc2f8850ddcc6a09a3338c4358d31c618639c33c6ae0bfc8adbd80d0b83ac59e70ec2dba48ec15a6c5d71c61983b5ac2b589557defa6e4492f10d6b0c6d8c69c2555130dcc4f060c55223369475d6b92d0381c08f32b509a9780363130064d5662c9343127aa3e1e6c3a1127d21a6400075d8eb60c564e19ebf37b49c73ce6f586cdffb89cc59b725f70fee87f5f9f6c64799dcb6369c98367a071fe31e86e3eaacb5d66075ca30978f31c638673037160c66014ab0b2ed6341c555da0aac1e993c117b3f59329ed896ca3e78802026e2c5880c039133add16ab96d2d7d50b82d35352d316f5c18d7daf43cb0210ddd90c0697e48d138a43830a04c9b80648d379b310c3e284a1f72561d792a5459682d4aa8a570bbb041e788d403936109f1e0c94e0c2f036f1ec4725ca49a70e472bef6badedaedece7db7aefbde39eae8f498eb811e2fa98e2a6beaa7efb51a638641b73870249250689a2d8cf4d041266613c1be430e8d891987b010ae32026b322823d18463560c0c83b5b02f9a947794adc7a002c30080d99187a4389d1e3d028103d6629284f0e2ba4b2ce3a47f50ea2b3d69a98cc3a67b5f794e0c1dae1b19952828911b33e86f071ddc7186350e3acc6c571ae064609c619073b7a36449b3e92a6bffa1120f18f26893f1b5e16c2d4a3a9e7a97f952c9070c36b021361c7c602899d0c40d7809fab98115d68cca627ce52703eec24638339f77308671a61bf7a8e3f9a641e3b11dba7bab6daa3b0706aecaf410dde292c96d7bf12de9583e0d20ba9127c83c1a0501549fdd48aa90fff24b8b31c13c37aebada97ed69962f122459a9a595ec9c90b55e37af819e4671a18c099f194480be24b2e1399c9cd6a557edd413925a158feda3f9a64ea7523514eceac4a498537830421b28ada5c248996167062e8edadc4e89015e75029a632bbae1d172b764720a99c08d2beb8aab05ed2b2d41722559b94b32982a378a7462cf47442c4d461e8552e13e252a09e3d2eb8f43cbc485641e50e19a8d64b3fe396aacc03886aeeaf00f828928ac932c43dd569577f5dd71ff4c260c6e8d25f3de67edd7e5d57d49f08d7750509cae048e142845e9806e246f8fab4991bbc7a101f544552ffe0a34a34b57fe25fa686b666e811b78a35fa89ca29adb0f0883038d9d460886a2c1f462c6bde3cbc982da5f0d0c6a12969022723a9e7a97f533f447f698c13e10ff9a94779ea5f5fca62acccbbaa3d8ba37008b073a9ea09900b861f25ad14b929275786b9310026eac96384a5a2469ae4c039474da9e59c73c6313ae3ec2ae59cf3d40b9f57856970fd9241e28dc5531b916d0aae454ee9b96d69c9231171ce2546658f0c270c570efc5a43a64cdbe90088a86887ca04066cc3a5171d3a1d0c2d575e18f42b0743a71464d15239896ec45a8c129a083c17751ae9a20650a5d1c0979587343aa2219fdee57c4bab1f4c72755caf76c85c709651707b2bc403b538a5c3b5747921146383b7ae20a833af04ccf8bea02142cfdc6d79ebaa18359bbbde03fc72ff4af06a99c37857febabc7593561110dc577e6593559e425c45388ad286fca6c1e085665083a030e8a3e14454e3a08022d4ae186d6589ccf60a6a948c4a2caa289aec394750203a391cf318e73ebef111d2cf39e885c128df34ae18796482b3190b7149d34a45ced97d812e6e6a32ad5a1ff4c3cdfad2ae37a0c546b06c885b3582571833e2ef98d20faa950094c05d1215f802f1851d15e7827fd858b0eac6627e4aae9a4a306e0916d27d4b9a75621cb84fe734c4dc7be73b4f1ffb414bb37b862f73ddf7eb025f9d96eeb453e72bfbd0de15faa050c7c975ceae7f5de0bb83dc4f309882ce7148b4c1afc391e18491e32a8256c8bee8e3a1b9ea853e98e3cc3c29b86ba6a20b8474a7b8ae33751d39c435028dfb6b756b230700cefa320727050e6a6ce636655c676e4ceac391615ebbaf8308fbaab50d96bb5da10f0a8d5d5d67940550a39e637ef3e4fbb8e1feecbdf7eebaebbefbdefbc7c5de15faa07043533bedbd6d6080ebcd4f16f2b0fb50bd2bf441e10d13ab75a47be3105711d4094705abb3534d17ea3d850d4249b3e3de7befadb350007799ed1f2c584537cf303d9a3860981d256c36688e2e4b4ff117f3c3c1b282d31a37ea627c5f3c146a9a481d111c28c820a398371466ea7466d49c565a6abae66c281485d460347415812f8518a60ad30d8d9a93ca914683517d413eca74b314c1c71de60cc29d3e7879e4dca2609a028833ed551eaeb50dfaa07702c1c6aa64b5ae70e9578fdb908f32dd880d370ae7fad7b218caa06bad65387d326c0ab2e89066e4c4cc55b5dd75101faacc0e92da114bf3a14ab2c8e9e06c4e1ec457248b17577b57e8834219427b75abc939e371f0ad7b06be47add7b716a31c73b6963c22e79c33d8c70a7cdb8ab86a436d53d35823975400db9022eaf45aa88c5656f0dc52b21af382180c2956e4e272d4f81615662a73025b7825eebafad7be736bf9c1cf5a6b4de78b10b7b238f94c035d3d2284658819fa03cff8008c7be4b500b73a806f7315413f325577bd2bf441210da687bbd41cae7f5de09be7d4bbfbb916bcf3ad37bcd00785479d73ce39ef3e87c47f7e069343caa7b77bc40d229fde6f48b3c077efd8ce05ed8ee7f4ed703a23bbe63cb761ef639f4bf1d02ef0b53bb363eb18580ba1f50269459632e3678f5b181e565c99f96932ae18e2bdedf25dddd65878bae3921a45bdbeb12be64fccb496b4a6719d73c98ca2d67a383261d89bf69eea70b983c738cf75cc5e52d77475935c57ce6ec99e1a31a66d6a7bb27aebad73ce39e70ef8f0cc76aee2e283fbc1d5b0705dad994c8f7bfab860b85b1d9b4cceecb8629fcaa0e3901c0cc54d16da423158ee476b5891192ca54605be6fd86d43c953cd295322d79441fc4c33283a7632aaf2007c9489a64645f1be964d914ac8d517e27255c84d72ea5ee2df1ef394bff7de5b0250154ae02ef07d3f8a6c01038849b89cd7394fc8507001c74321eb872b87c2d611899c61d16a518bdc4ddae814e59853d07aae4e44c71a0a58cc5504e5245dc50cc3bcf9af828aa283f5e536aae9db2c0a6240e5c95861d41281726cbd9c5feb0ce8d698990e0a201ea29bccd11d0cb8d65a7b3533c8af42effa5a6badb57681c930a3f6adce5a2fb976e252e1fa7581af5731ff2a64adf5bafb1a43476bad99d85d9b5f6bcf5badb3d739e7dc656441824e5e6f0f541e089db6928cdabf5e5378515c45502face064faa0e7e0d238386b54c8b0599771e76e1daab263261c949753b83a6efd6ca7aba41f93d1ed834213a90ac9763854b5782b33c34aabb9072f79e9082b065594b168808f320905fd6ef40f59c2e7e5aceff5125e09fea9a5fd55c82cee7ccfb34ca4cfada3bf42ff4af04a36ac6333897d732c1fd73d6bdeba4f479edc7b0b871a08359860d43deb04fed466ce54db48780597c00a1f1e0a35182e9b2f68c85445c9ccb8c082fa90a144b878a006c6f2a9b777422b262f4f2b1a93a21072c644c6994439165d1318a3fb22593c7d28b9bb6b10ce39f740ceb7ea561114b7986377bd19e6d6b792f1b43cfba2f85993e51d244877018d04531c9d0a3bddd4e1e38d8f814252c25aac6e3610c1f226ab69310e792b9c1df306d19c93b1c4e415632c74ba19bdeabe2ef0352baece8fb16f31c6416197faabc09d4dec5b17b8012e2b961931ce3aebbce28c31cafd70a3c8b53af87aef1de9db9bbdf161ad3aad05e35bb59ab98408ba9faa32aba48d52573ef8f15a436d73734320824d5a295d2dd92aea4ce3c7754f5da8755c36e7b35f2f61f9f62c95170cc2e5f7e56f890b23afc03186c69216565272cb989bb67804d0a3826b28850611451ea6cede490304d3bf16b7c8d25abb265942beb56577ef47ac5b44f58e86004db0ea78168b9c81125a221f72cff9afed1f5e562cebdb2dff5945ba3ce4ce967575a83fabc89247e7ec56899b034ce89725b677ce5908e65c45d0bffd4696510f1143fe5aed5b9f5167fbe6aec9d70f677f15b818131f407b97ed644455046d291ac97e3c999070a8c1d08f8c988475f1ad935e412ef0d52c580ed6c8b169a278cd58e52c98af3fbee6d11bd4c8f6809e846694e8e1c884b29db2a0b2112665d86bed71d6d4d7be25e308311123ae5a6bad87c38d1093b0176d5509275ecf7d524435dcc882c8b031ef625345d03993aebcfe26a5648c6fce5b235411d448c964cb89fb3c0d471a2c262e8c6845132e67988bc98b23178b899633193595c1cbc66bc79530f5bb735db727ad70599dd5debb5bcc46ccb3d90e3c324f5374759314ce64d2ceafc544455175f7e611100e278c3cd94c60cb5cd7cd20697c5fa09bd60280e44c84175d18243ff440287b9319721e90fd4498bb019a7541785bf908ab7b6006a353e02b865c4550be44ea7480257d34356b5c183f1e4d4e301c61c68e26152f1b6346b72988c3cfecc8d15443d33abb369a56647ccc1fd35d0616f87a31bd9aedf385048659dd564c579329434256975c2101730e199d381a48ce8a342d24683f4826960c5f60245f6778199cc44ce26c7141a6b8cbdd77c47ddfd77d5df7d500588b79391b21aa0b835f85cc76be4684e03127a921f4c6a8e33d3f00be175a56113402f742d1ce17c8315769f6afd205c18d1105e183467115411f705f8c23a047ca3105e88b21b4d1f1bac017afa88aa0c64c82f7f3f1ab908580ab981ba3e641ef9d639e47cc6bc92be619f37ef284f28e1e3a677d8701078ad0473976f0bdd5d0801b98af10551174a585bb2e8a9593456745cfb283922737f90e082aa221123e4fa431beb79a55841f5d93ae8b6373adb99a8a073db77a6059ef2cebb16dbc435a2b302aee56e08e3958494fab3a165a20a9e444158f4ac009bff2ac6befbdb74f6b35123f1ff04d79ae22e84f3f5dfdbd73fede5b4e6deffdf36349e6d45c7eef9e03d50db6effe557b7fdd9caa08aac69fae5bdd4bf42daac87e2b0e47ba1d27c2a822a8cd27eea8542179089293b2a281a1c3e8e27cd033e3ea7ad22bc195e6b181af9d9d1dd2edafd6879e715445d019499cbb45b6a7757273cfc057ee4c8e4d6eceddef8adb078bd2de7bef919ff6229b7bceb9a7edb92bf1dc31e63284ba8ca35b6473d659e79ebdb536f15b812fdc13ae2e73d408e13ded10b121e170d5a83b188dd1e0b5105bf278a828c7fce95445503592e7d35d12e34b681a0773dd73fabac09724af2982ed5d77dd7b44248d289a818243da2c50377fef1d021497bc21b267918a929d7bce392f9bd27c5dbf78e11cb446a615bb27a1c19c60610547c9c3d1d30ceea8c57e02aa1b1ef07367e7dc29811736e2852b70728e2b99b6c54af26dc8f9d89cf7387ccfdf9bcb068544ddfe2ae8ad1abb7745e8a8e7986b1d7d7b375308a06b0e7c85748952158b151a19289a69ed5252b5f93967be41c68ca3598f89a392dcfbeebbaf5438ebbc7713c76fef0a7d50a8d5f102a05dffbac017ebc9b9551906f94a4da983cac3eaaa03ff282573ce23cb179c154c28b9e51017063ef6536b6892a4ba748ab0b47c728edaab0b665e6acb39e7ec8424a4e6449a384bf9d948ae9904a81a865a8e7a66b075b89055144175816f5613cbf9a8f0de56411cbaa72458c5bea521079984a8b44c5c499542003b80048318000000002049b238cee39a92031480072fdc5884a45c6858248d43227120200ca22808c23006c2208061200682310c195a0513aedee090e7bed561a3efe6926fa125530bcd83c7dd3ba762518279e76edb9ee518e63b9339426c5f7385de71f6117d3b3c5566f87df3b4123f0885760cd41a73fd0102906708e796af051900d719a38ec54f95c737a8105ec9d2f9b52216607f0715ffadbd0adf3fc927c3ce451309bc536d78f82a21563f094a3901cda60699a06d7e693b97e6b7aca586b9c75cce4c10ec9cc95c1b3bce25df54e2e9eba0e7e1b365622687f3535bf762aea430496c7ac6cb324e113a68789002286a68f16721df1d239c86b9124e1ebd7258be7d30007608e6cff5a90b2e3b1648c2bde919868370e4b07a1b93f899e56e1f285073660ec49e14039e0079aa0263ca3f13713932ec1293db7c48468f67717a25e5688ba11496e7f8de104452ff1b25ec58b082788e160089b0bffab616f837c8c0190dc7eb16bd25a99e17880d33d2485540c402a7937240a3e06a433eea412a1269743d3bc8d526261621096c128745a38dd908c6d4ee0736a90ca164a7b42d3c683fe2229ba2172ba24001962230843b2f726285310bb04fd3548c7fcb8d896886e12aa61bc2f4d460204c14ef52b79d113c5670bb8915bcb5671c0dd35efd427346c73601da85392569dfa0a82ca4e5dd0e64457ec30a5dc0cd9728b292006f84a691aca548d0248af0724e45ab50084f217e2cd2c38e89012566429ef909f373518bd74f3f4ecec21a4e6a8608b50693654962d55103b85106735e0739b6002e431bbed6062140ab5dc11c29ac521af203015053574ede2d05c496cd5988da385cee1b0dc732f55ca2c0a504022066cb84b56c656e0c9c59f96341bfa1560d481032a19d4a6eb9682eed4f9a7546fc01901dff00a1710c080e76d0f520441cca1f459db0a800a1490cda0ef165732e80fc7c3d798483da09a1b49e1d2b580e83034b6ac73f899d9448c12416a87dbeec4ce61b945122a44f1c05f11db145e1071a79f2614376459053b9437e5bdaa915808b361f4d81c0a17a2489d2b81e2c9600935f394f50e82baa2f6dc50fe9d38c8af93cbf90ee50d6ec70a81e9ea3e7c4e3962d5d3d4fa305183f7ca0f14eceb7160d6c49bad5f930320a8c447814b6ef5593d9e29da46fb36e30caaea4a7c2aa233c5ac72e8f572a702daca9754ec23edb0bb4c256d3a67fcd760a385e0109cbba89d915e3d8b10cbd93e736c3a7a11b13f652284f6bee016e7c2f158298565da58b5fbc7a9a672a256c609bdb94530c8aa46f46501cba9d3647b6cc5e07e306377f5ea26e9165ccc4b21bf756eee39014624fce1b3545e1cc8cc57afa8708e4bb749b37f719a406a8bed994a9f38475d7f6a090982bdd30fdefef0d2c3845f4618c505c49f5c759227a514b1f5c52008412a61f95f0f104ec25e19ba8418a90ecd0a7ff2c06f77393dba29a540a76032397e121cd205243a88fbba1f77f1d0c6dd64f691881199b8160b3e544cd779ac9b5607e0778c5bad619000df067805764366f8686084ac58241c68e1932d35db7f593beed4a89f8e207352b47db97d5b6d2cb5de000187de7d47f506798aa998341b8c923fa950f968686f146370833c52fa37c2deabfc6a90b1f528eeaba0d4dff9c773d443b0c2e5f936016180788e1ae3a052878c6040c7de4dcac714b5100abd3b2a6066f661b2d4e4841cf93ab7a2d7b444038933e9761d7b89dfc9e50bcdd9180aa1c65bfc55153601e126ec4c01d7dfe268ff1e54acb329370d4abd9bc1d822a431b8d1b8c11682f1a5c8abc7e9965c87d274f41066c52a86b35750570a184c3326579251de991e1f7d15a110e46c393bfe822969cbd3a76945e85c7c3d0b39182967047189a070dc7b160bbdba7b6f1334fa9476cb4c682458a94eab31f8cb7ec1126d8c316e24b560580cbb7c040fceacd9239f33e9f128078abbac97cf0ff7b31fe886c5c65d137e07654676e15c1817387ef970cabbe2ac45db806d7deeb0954c8cf42b713e525da595c5499f8e6268a321632638e802d656091f3a06733872fafef8ee996038919c86a03c9b12e015d56d3b5f3df8cd74b398c61069ecd52dc9e01631ba69c6e422537002238ee8a6e4c703ae8e81c8d96b75822f80a811ed64edde116a4d817d23a9b4ab30df2c77033cb8e0c97a7e6b33e0ae37ced61fd8e4d6be4e6846e7117b6c73c7a0b0f5eb73bebb1119b6e9b93da9f8e278695d8e8b921c51fc812c564c382035708b859ada6d22f1d7e2dfbd04925ea826c920873cb33ec5a6854ce2b394d6f022d81857b71fb43aa0405b7d9c45c4ed3de30c682c548b0e9bafd26f3bfaeb7e7c60750b00921ad3004ced912152cd614203dc8b9e51e6a51c1acf2bda3613ca07a76160e67ad5971acb76686e45ae7a999ba911c49496bc51c5f44c0efef8cfe7d43624c8f04475ebf67c4c7aa2da6f2d8e69d9302f674766600474a7ae46de7b6b58d05f05e142c9692a72226977aaf60da58d8aa3a32a67d0c576e8b7dba46268393e79d997d5d43504f387e8785eccdeaef368ceac4b1770925a4517244daedd07a9acb0df07dadaa5fe2a89656347398c84f5630d685e6a679c06edab2629336f8fcb5598ae0335f7cd3969b9fb8621398f0793673892f9bd1fa78cbad367908f6f76b539a0402b1ccdba3282a0880e2e55af7782f8f89fecd31dba257bc1771ece20898e2f6bc9469de3c5ffea3139067f4e7f408b2f29c109d584069f288c1f9d44cdcc56510a2b2069460cf01efd869d43386f417696dcd1786d6d073f93416531fe64694d06b8dfb0d8bab02f313d03e4c047615a4069f6d3b566eeb1e833d27b11198a10b073dc1f1e805a8463b44cc87698fd0e81ed4897079216824628ce5ef890f0bdefc8c4a6e07e3570b3cec79de587dd90901e5e4e61f548210c8ee48d023ae438e4545d0f5e20a2ee57e93da2e25a2bbf18b4e5eec4df371af50271ee0f89408aa318e729212a4360a1210e08317b444429406857b643df361ce7272eec712f0a6b3773612dd4fd7ce34f6ba9af40ab0b2e0c0de46483130d670c2a5a5dcad93388aa90a1a46bcc64543af505989a8e51492587896ba4319719c7f4816f4c944c87b2f00e14eefb52579a0358be22fc562ff6ee134e42fef8a9b467ce20991411707eb334e0a0a141b2232ba70284b5fc7a6a006cceca947b935d3eb36b59d5964fe447c099386f6a28f039ed8edaa682fb3d7459f4893fb9b9325296422eb4e197d062a98bd2bce676aaec5fbf588db79d449af45f69c635a71c3e0460ec4a9e85c5155eef1adafa952b240828111868740c7058aba2af6dd0d2726346a2fc0127a0a8bd5409d427f526a78ffc1b7df270d503cc606410ca015869eb90626814258ccc0da8458d72a8b4c00c5f69042d0ceedc51773d2c98041e3176e1a77d1d1863ee936333b4ed3740694536834ef9083935f184eea5eb4396456bde1355a18dd2d8ec3dd7363420d869554c4cf9e64700b2eea3ed1557766c1751b8c59ac00e2adb945b6a667f2545e50bce620141ba249fb04fb1e640fc62b7fe935f62b12553e0ab25a37faafd313f6d8c4c952b1c1b1ce10db54e924ce20f46be474826e0477af3b82ab8a9b2b1fbe662952b25e27649ebf56fcac611d1c3775f084c4894da0bc3e3378de73df5e85b49ca07d008f107479b0be5cb047b203527f9d142a99be9420d6747c50a4878a2d2f5a0e447047966a212ad8326dc8bce7a66ae352dccf79c68cd72a0dce3b1aa98805c22208ae50aeb487026c97a72709198112718c3c67528610f781620c21c07ce5439c8bf0d5c1297a3bbb7c00762e0e85f1c9535cf8d37f66fdd2ad65d1d20098c41af4f1508d54f3f6717dc6a173ee7fb62804e64ea30e9edc896304ca8e80dd87a2d482536d387882eec09bf6a385faa319ed435c733614273601a2d75cdf9c6bae98ecfb2ccbbb95d3be42a6bc57d8a6da86fae6bcb1abe3f46c6f04bb57d2625b480275de0bba748ccef6097bee50d9690096cb567659d8df02266f4644a1e4d160fd4a4159f4f348e9cff0e58c601c2292dfd929f2d67c9329e7558c97a925eadd239bcc0ad477f7078ccc779165927e46b9e5239258d9782be9d8fee7b4a5c48de7a6216e384a68a14bb5470a8276ef380fd5c96d04619934c2794dc563db2b1f3ac6a48d7a781680b47bc841cd82453d08f3c7e03c9979fe52857b376be9ed27230bfe4e5747cdf1e951123d70a9820b27ce5fa6793e860e69ff9c51219f4a5e337f0ea2f7a0c0d1fd09ef99ccf88813eb447783d7b5dabd88bbf68d0fb78c5cd34e65035e4900c68be48db5e4789a1926c7148309f86efdd74c47fc792972f71d023c0828c9d43a6c4c5cfbd61a9350f10bd591d4ae9079201bb201493d958cdadd4197c5d892528c37b9a0cdee1f2f27da90a4e38a8659124626a439f21c4624a99f92c84b00d5043f81ae5476b9f9a86dca503fe4abe68a5839740fd674ff35d1e1dab7187ad39e365bad63a85e8918fdd0d2e4fd6290acb7f77f5a7d4d6edd102a181da45e0e102c559de6dc38d6af2e35a98dffa17ca6363c6b4e57b6a2d437133818b616e48fe3d1367354808ce712e0b8222b833b4efdd53d00638ff8061d93cb071d0ea7633f0e6792960b173c328341d18af76d92b798f63197d461d9fb3285bdf8b5fc83a7333c3d684af8b3cb1d8d2034383364d8be0c302e9b7ca3026360d1f3cd34cbc0e741c02103c442b0a7a2de066ce3c438cfec9a8de8a1409bf42a90ab919af1d95d0345f7a331ede60a74894df74e80d0ecfd476ec8e9e441827aef39e562ab9f136b1f17b82cc6f74a6c4d55b0fbd5724e5ee08ef37bae3ff0169c60663807935ff889f6dac747cbc3e40af2345f29040f061763211fd9968dc6f24847526f5c0679d69d5483529196f234bafda523ea507e863432530bc99d7a0e268244c7de9f48a439df4d2ba2fde47586412e4103eb0beaf441435bd71e4673060ed8d86701c84d83559ad7d558433e6cb7ad4993d9b1e44800800c3808c6a4a20ddc142a8a2c58c2c5a754062e1e067c53cee7a2908b4a49f9ace663e2ac9c83a3dab6a09a14e944836fd47b0b8f8bbbaa8d9d4a62ca64e638c220035d1b665d332def587d4d9f461624788e86acd2f45ee1b0be39484fa87c31d28192bb1e9319821a4c400d93420994f11e6016f85e30e23e669b1d36de2ed7980191c62c4d61441c58f20e72a9b90433efbd2f81e46e800d8e7aef513b3991a3dd413d3ab664193e81c1e970a66a83cbe381f21b2ab2789d9bcdfe1d377134ff379e7dc2ea0d884d1cf1085fa73033b1e6e4c6da98a3ac61591c53595eadf67fd7422a39d7e5602bfdb44a8157547193e40744af258e748500d95966b7a7973d8361b75a2a7e043dc3b1aa6d6ce58d06bbaf30c679dbae8cc8ebb8a1983d704a0928493b20b5afd835e3c62cb96801b438a6944ff80df519d9ec80589eabd2f8401e4323562d130fd8c4d30da344d6187d458c0c568e3bba31fbe174a05ed4fb9de0f65c4355a0118efcc638574d68c64bc120b3dccbeaf04bf481ee9c53a762590076e42386dd0e64654ff3a8805740fe02a75fcf438444f80c0cfdbbc1e1149233700a43a3b30d7135510565ea622162e247b76a4372efba07b053e15a8adfc862583e8adf6b07ca7a2cff6990c0c7715d69df67b2c8d7fb7f1fbc199cc44d10a138a7cda2f5da28a292b38d76155f1cff41592d352f06d8111b87dab83579afa47fdd6d1cc7a3d1ec44f96fe6bcdc72882054a08e73f92525e0437c8642baba14b7e98a8f67b18a94d6aa30d5339395ac96d946962e3c93ea7a0e163c73ba34e0b0861ce295a5528bf0bf2bdde6f79b267d19545cc02ca86d8895d25283d5501805aa88e13401fcba56b8a7d70279cb6de72faa9d4cec2204e143c27249b33813eaa4ee9e396989f3e012f3a764c9a5428c62dfeca95b4bdd9db0560a499e0b7a3a8e66682f13901c7a30c9221121c41d8d54a9544fb90c2930284f1da4ba45a1a47848c9331df99aeceefd0f252f23284b84550d314b53247a5369ff830c4ad81314b1f1ff418e8dc07064a26c18afcfb29af8481478f9e6a93db7287bf998c6ebc4b2c03b480b8caf7468d0a2395516073a64026ef01175ca4f1c6492094930443e008d170c0c2ed5b52ba2c41a7acf302cc9da75311213a0b42147ad5d912a250b616dd816b8e776f1b5e84d5bda5520d862e0b31b0073eca19edb03ea7ef6bb939e5f19988f902d9ebbd1dc46f04215da49cbc5537ffec1a02f9e8fe52ef5f345d9f9c27b5a703f75b480f81429d61d194917c0aac124bc362c8c2193f851df13fd8b1884c0dd42837af964c6912c946e23ab8763fa5b5174aa50af01b52896c12ce47ca5fe46da385dcd75c6769e9c4169529b301b6bc28feccb4e3664b2966a57ed90144445a342a9930182a5beb3c281e2bbdccd8af3ec4ec8f9002359bb5090b575474915444863b4238d786a586765fd2b5946f466171f0b4a988574a37747840f88606efcb40edb8e47d8504f025f4f50c15346e9797a5aa170b5f15b32a973c0f472970dbaa59b441928747cf2b6a0be37c716aa7461b9a8f956f3e6faa53559fa6f46b0ab40cbf55561bef943299eef8a75fccd0a8ea35254e5620e16b03bc74f97d03861378bf7c70c4a936e2c66ebbeeedd28c4cae49bcde69c191dadfbf0e51298870f0fedb00d43a6cc58663e9c0315e04d02696dc66aeeaca4dee420177f9b9196ba812d01ee46d6d700c837375749bf3121343b77d36dd62f7f2aa8e923503621ecd1c3f9d121e7d33598722a87b3c4313c38b07437f2a1a6a9689dc2dbb50d1c6baa0c87ef4a658084e8bade1fde8922307ec5ad5423b5846180e8fa8aa0350244d0b55befe369906572055bf935d21ac80d2ce1b5837ff35e6672a15c2bfbefff24e60c28b8a07cc169b09d50d60c05c01edcca7cb012499e4f5f28b0865055863eae8b6a7a92c40222cb05a6fed6f480d03f6252bc1bc91abf29085e414f532544d2f17c4d96acb7ab33de8b5018ab5502ec9702780dbb17a64751544acf9db3e7711ebe2b5bc8505e4cba67ef31f114de63d410a26d5a081b08a90567b487cd8662143a03f53a5075631948b1d70d0df14eeb55a25a3e74d99db86f35d16ba80aaf064bf2f185e64f8dde9e98d9e1edacaeec0b78ffee62f0fd7c08748f5c1d169d74deabf8f655fc69b28722e6d4ad0af56d02c161399a089ab09ec190204eabf6efa13b702d6f2c2ae003e634d13ab40660494ed8d7a79400629a220354b282934caaf93a565201cd0a2045d1baf493cd604533b2d4526a1605411f52046b6ef65b39c22845113b956ff827e66da23636dada41e78800d04bb0505191994438c1202d55f828adaf74e9d9bb5841653fcbe7e76204a7cf7d5d26aa12a2565d0951b5e43723fa889f27550ffd221b1c9da2a40869123f924577260e786a493953ad4d3a66c239f1eddcb3b4f92d4d77f6f80185e635eff35eec6fc2cd6b28738dca7a8273d83293dfa6c3e824b890ed4c6e7624c95da7b133f9bf29164ad94be2ef8b85da452e8058cddd30350161518eb43f0090d1353c65c35b64327155dc9b46b7934c64de6e5373f32ec8a66ef9d2dc28e9765cf26404203d9dd3c428ee081e51f73e3f796196c6ccb2a688497df2243f634a4a11ea8e01e25719f67a7593a94d288d43981a867882789bcdc92326826a4f21a6362c9df0a70ed83b93f5bb6211f55faec96e9f3ed1dea90130e76de615be75c28dde25c2e4ffa61844b9f3f6e6c897feac2f1655b3572efa469a0403b974a27d36c1c68174ef6dae91650b2d556590d4d358bd1a913afe71a871286f3a99367b736a15b282ec272dc688877ceff07b12410f5f7a01cec383c313d456ffd9174031adc426e503107de5e61b300dbd12d11d4115282a75e8ed5d7042fb9e21f19aa86b9dee09774e3a722b88687807af08d7c14cfb768529e3a3b55778f3fbc15b9a9a9e9a1ed99abcc11ce0ada558348fd07fdd323ea892924c50d534105030686b5e38ac7c1f827d271c453256b38813af54008367e3485a35156921c9f84cdedfc2eb8ec3a542de5e8d0dcf9c7a816e8ce0b18f0539cb57aff61763864998129e2708815c97e41c5884b081c7cfb9de6880797fff44260fc0aa27cf8779467a609e5e9fa2d4a21ac99bf2a46040c2e7a7227932cad4b767a3d00390626b97e5b3d6bafd3d2363dc6e41026130ec2fefe53327a9dbc23fe443353193692a63e2ea10cf4170939fe1255bb4412f1d839f1605f891a9553114847b8ea9b4b6761f3fcdb9060bc7586169d149fab876de227e3f0a408da4e75e3c460571b5d131083204cfc57686e2f223942256847cfccf0e0e514f4c2d05675e81319b9cab4d992e2108c1e669c081bae9eb92029f79f31218ee46ae6b4286b717b084d8e4c51bda25dca71add8f5e72019e92962673e143f2de6d9f09913cc867e524b2ca65f08dbe618e913d1dd3cf42692f061a9fe0e60525eb0155532353d9e9253efafc5395946459a83b4666753061d8f2e3ff49b9c0ff65d015a27e66e00075be1f08a8797bc7ea42abb67cd01af16311647929a99b930fa108025c170386c9b83dfa911875a0efc7dc1d617a6d94195b0e2c89e7754ed8655638120f78adec48e67e973cb2ab2db3dae776653ca00e54cf8fee54afef0e0c6d3af1503b11c8e6f180d83c96ba9ae90d0cf13cbf640b1da6e826aae174b40994cec94e25869132554bacc6437d5360bb636f80a00c19297ee7269da82e242cf077367276b5539e253c676789eddf897fee74673bad7221d1deb523ee3930e0368ba37b6b700f83c44282c6f9a63a4103be5d0dab85e1ba78c0ee6fcccf42ec01c3dc6c6c5b1c6d87f1ebb69f74f0f30cc3bb7122aa2ece869ef350825d372b35abac63fdd6931ba6b933267beb6f743f65b12ba1240c43351066bc97a8873bfcd540c6414dfb27fd396caea8fc76d243b62746c79c7836007571d31b69958204ccd517ec652a07bfa8ddf24fbedf0101362a8a44d6e4761e2b16cdfaeee1baf84db448cb4ad4b5ff7f92b97c5971b40b5d91469e396816749b7f5610c1f4b75ce569a5d96f515e160e17bb40e76f99bf39727681630e71230f2c8e7df0cdb0a2640f4598431be3987545a94927f863f9b806ab04fa36205c6683df6025cb08d5467bb90220795d0b28a031922109bd6418e3c88e999828ba921a81f18f2b3665288d5515812cbbdcdbef16adaea49c2315088b8dd725cb651ca6efa75624f3959b4a140764ed820a8132bc1ec0ee2d9e2f84a0a5b10af94f51b4752ddaf39cb11a9954ea35a9de712695cf7c3a7cc94a6d262c231b2763ca845879b2f858cb728e65dc05b79289e966372e2c4f4ba27350a8dd56da29438d44f5413193dee90e2c28846175cee9ee643d18a4630edcd496f7b5020273664138a280790b40ed6d74ca84b973ffa8942137d26e85da3f8804bb9008b1725abcb462b16524dea4c8005aaef965d4999a4955f5513e9964f10009b96086b8e0ec18281c226dc82390e124c08ad6ce99b1d45e994bea5d946a6899f9901cddab8de2c6e5eb0e216491d9ef671179341168ac8d118683f2ef4d566b5e8882626f20dd60821bee9d6957e255c23945dff046e4374a17d6a9eda1e5d70047e95307d6e1b087fd1e3da7fb1d9e2dca2705899bfd43ab7a588039c8313cfe619eea11dc5bdad34e3140659bd94551af83ba081ce162355d75e34749ed136a33179d364eb5802ee7c1615c504a914b20279303b7ea355ecdc291412542f113c8067852e3796215bd0f6be3e06ff22d18f5a6245eedf0799d302775a8052d0bf37f618b7fa4836d1989e89b4e5eb72860d0710bfb547a38d296e8e36b18ce6a143fb094abd51cb29d28183ed1ed17edf20bf80635c3160229ac10636de6bac25621a58764193b13f62648782244f5973b5fa11f7655ef90701f8e9adb850720b0111e46e9eba477474ac3deaabfaecedf8e661c801a41a4b96debb21f2e05c4701ce36a2cdb9690ea21a300cc937e3fcc852dfd66a47474f33a03158401e17f460545d10eac9f7726a76d929b78ea6d0de1873fc2c4b02f7ab517a4e0c43ac837ad6359317bc6035633e0a8e865d25a5090b0f3f543ec2115ff9947687c9de7bb9b37a42282fed9212cfe14ba35fa4fb61d21d1f79f09f0f3ad92c5430b2c2d3987b355238254f1c6039b5f95fd12f755b36e9e4840f83b6d62e2936996e072b064f178ddd1d1c1ceb4f42246be7a5a41e76638fad47e6f23c5ce69613a8db36343919ee93a060f18a8f4d0a5c0595a4558a0ca1f92dfc389f9cbef164abce98cd3240ddf04b6fca3b9a1f1b5ecb35a7e4eb6f47573a80e99b158998460cd2d1fdd921f8c9b82b5ba1799ae6e7a65fd9c95deca54b15ac0db8b842f8efa870d2b925e8370be69ce9468668c411e1946638d394f2980873989f81dbe38b465cdf8680e1a16ab6b8747cc6338a200213b2cf501a2723380f7376805f8db23ec6b1e87032202c16e3575e3974a37910f1c049d00204c8eb01a1a9b58d60e0ad8cd8688c7b609095eb9fd4ca690b400b271dbecfb6707f01ce7adf70ccbd0b42815889620b31a4850da60b270ac74edd0dc635ea319c8a6cf02ea391f58efc43acee72d7a40959437aeb5462bf5c3344652a84594d3c1eaa70854cbca8e1af484a303e7ec98cf9d468965d772bca5a201ec2de982a74cc140f52a95450ef10d47f05c686ef0d4909c7dcc4b03d849eb3f14d9eed3d4158866e806ae2475986a48d232017839daa18b40e0624664b3b11099438f2dda9afdddfe87e0e2129a1b2be67f60ef8bc0cd4fd9d21454b3789edf8a4d70eef4b7d26ec1bd19efc6c9b1f451b610590afb42187509e48f87c24923f34052b1ded9f178360927ba94abb7bad546c044d3e3df48270f792da9da02893d552267c147e052aec4237fe2e64b82bbca2e7106081e2a64cc1c4fe2a6e4ceb18301e19ce038a6637f40a8c47c8586e92ba60c04de431150f167479b987eda53e5e4c6235df3ca13447f3c425d1042010bd4b64abcc8a0fac254241260326eded7d41ef90311f7139bfd075ded55aabe9247fadc587f8212ca2ff7a1c4d72cbd5025856cfe6973993edf0ded19eedc22c8ab6f27a3da5f602984eccf37977a7e288eb5042105abf543e4a1331696d1046f89fb855876747406a10a2c58619440edd0d91ae47c2f33039f977f095b0a7e0889c6be489d74e66ebec563b328b344a589179ba26c6f4cf6b422a37e2c496faefebe673deb4d97aedf71e79315f6f0d41a536b12c9aea6bfc3767ef3961149966f4ef8a2b508f97bf855affbb4dff77ee8068dadcce3aca106c90e020ecab6fe203c38e7f1da4461a511e4c3a68b1e10f481c359b7f5f697ed6e1a477e7689c706a21bb5fe98c11c4d7b792418003d0bf5d7412a44ce2ba4cab0f8ddcaa9c5e2c928ef8fcb143caa4605124fa360f396bb87ef50cdec4ecb4370d9d273d1a02c278d44cf05644e374783294f8ac995253ef26c3aff36d5dc56fbcc18dff1d5132e3bcada201336e1b36a144b8aadc3a1bf251938e0ea20006106dadb3ef290aa595747076a0067ff07d3be49b09f9129c0bad076c39fec37bd6cd2db3d9b705252cc0324848d278025116436eaac3d6bb6bb24694cad1bbb212360e4a6adc4c5bddccd9c291d9ce45bd879d800b113fd5600d1d1650742619b1346876107e391236687ff50d1b4336305f0bb227900aa040844e170691e7c10b51e281a9ab5f4582eeda5b8b6bcff810743617bd6188e48fa684cdb511f52f3de656efc7c412989af19fbfd57d8bfa39b04260d12a38d2227acb9ae85167e8d7332fe9ceecc7d73527da9710de547e442613b5cdb37f1ddb1c60e541fb836a11e39e6d82d65da279e4e3c13bce3e50967196ff166dd82a43aee3b20c07250e302c53362ace34bdf18035b1c7a8005e4198d2f5f3629aaf8ff552bb9cbda37aa9025e81455ff5c58e4e52eb968a36a5887948b8009993b0baf43ab7df8b2bb368d5656b742259d9622dc640dd0c3bf682a9974af63f1de5108c2dcb206cf5731e7948430fab6ef9f4084622fcbab38639d8cdaf14b7f3872988f2bd38d3515949a6dfff1095a60c1312bec075cae174dc0e959ab865166d4c03f7a933d4420cfad062f4846c280b3df7ef01ee47b8ca6c09138e19d4a6e79571c7f0c4122d5f78329d7f1af723e538118bace8301991f068b35a35cda2b13c5580bab4a9fb0fda5bbdf582f982cbac97d7588a09da81e2bc0bc768de54fd8f2be268a4457a30713035fa6e27a23c7c40a41b83f63bd801ea444566fdf99dbd748f9a3e628dd90ed9a48416eef1b2e1212e6217af23ed81c290d117f9d2158be2266ba647bd832bc10a38876c7d81962e677399bbe6f9643fb64661144359e818c0416162b3dd216ea570ba3bf9cb5c9ae181163127e64fb41610222dd6b7409d71e60f25c8b492c6161fac57d22adde46d179257169612e9ba60ba20ae78d11143b9f5726b79721fae3c64675f5ffcc1a7522e1313ef584abdb8df579d0e842a3515d31e53a132c0f3332e6bb0ebec69c00833383c4fac7da636fa2a5df38bb8441d10732d9191cb59d6179bb1d4b6c56d74808ad4b78fdd3361c3f5d37054becbaeb537a2840d8f59480aa607d5789dd4bdaec527695e3f456062284b9e7754faa3c1312ec6080af9b9257e42fd2336fdaa6c49cd69bba8728dd9e8812470e6ad6299eba6d7c0644e36ca2cd5c6fc2813568acef19310cd9b4819ffaf6c69a08011b67018ccf3424400421be75200c760b668ebe1e16458311415e1f31c744b9dd22d11b7ec359b819ae2021aa7a3e414bae595f1d7276c1acea30d0c55f17c693ba8c998504af172b722f25cc8012abe2322c852f3f28ab647366ad37186fe6fd487773ac419c7396f1c2ae8bbf3db72ca0d6d08eb1b9c8180e12fe74f49aaca087f70c636900dede0226ba3b9ed0383559920fb01352b8200cc2e2c449822774e742d65ec7f0e9c0e98f9cfcf45008c9e791a3685ee5b275efc2de64fafc246f9f8a5887b40e99b071b6da2176a86f66855d990dfc40b3281e921e39645d68433b7b2e43c121916c5770570a484abf4a4cbd4be6b5ae19259f3712278df93e8ce87fc31ca97ad7d75e2e80484f2e9e7dbed56999cd7f2601190d88ce3f49963e66fa4b5031ba54318e713905d247b283309ce6ae2a80597cd24beaf6e93a7d06a563df3cca83267619c8f6b077853e048b3c0481f0dcbd0590e2dd6ae1f1a4ce51d94eb9f2ad2a8449b7338ea32caba07465c0fd4b877ccfede28836998ad65a06dd33ff03485740ee9badb2bb6a9c584fed892bfbcc1a5f517d029ca2882b3a912806e4d3ef63400c6a2e8b26ea4159c9b2b6f2573d0ce07fba613dee846e5c6f6f10f9e864b0fd9f8f4ac0a33714e9ca83689cc9a6249bb158068fbcc4b25ceebc83242d929659c18bde68a3b2013760436d5a7abb865610082394e700bb213bdca5e0d5d95014aff1e25483033e648021d0b442cbaf736a2489e31d98eb58e57b6d9b4caccfd35dc2bcb0455fc10e6e7186afcb62f6aa2a64d5d9dca5e5dbe92325fcdb4d7f82bbb6c7cb5b83d3d2de4f485cb6e5b9c92f5d6530f159880c3e0498f3a95eb3e03a45d44831bbf9b41fd9d7c4e94a8c0aab8601037376d1211bf1a7d2313172bee7b0242c69787baaae4de6e8ffcea6b87659bd3e59f2be6485113d8eeeecca3d4a4327952127b2fad0a0bc85a3de07251b40b3fd6cff7cf24d58553a2e695f59aee8e08dac71f7fc4b3aae0ea4b88d1ff026858e7cafe76c939031482c7ddbe39c609b7fe42649e63ca59f38b3cf398f457ab2cb5d49d4664745a05fd65ec9f85b1e2d7b7e1e3549ad960e768ea80fe7cc8e2616506ac6a5393a79888aa67a6842e784c2cc2944aa542fd6c13a29aadf49bd393dc8c979ae68fcd1c28ea48d9fa2d475ff30f6485437e820ca350ac252fae0ca8096023e66fddc4f5160ef73189e115c2a993de5c121350248b12a90ad23e0e23c6647c1b76b7909774f82dc9a4b92a9d651a8066c4a73cb5ddaed790c775290be9fcbf6d31dd0baf8bc1b0d54e8e2a0a5826b573cfdc540ed5f606984da15ed9b66c196f390cd6c975078787110e2e989a7f1b1488b5790fe9265805e3128d24e69dfc7414959bfd1ef99aa3152d2f8319ba3f7c2e092ec85de675ae0a0d649838784de38d281c1b23bb5e3a897877af1092f331bbff8bb0500335f69432c77a5671132e927460f5ceab3d8fe4a4ccd22814ca5183ab2417078242aa6265247dc9eecde8141fcfb74f85aa5919b9753c249e27e7e96387f0a6ac8d08fc5532b046e22537c322ff63acac00cc1e79a462f044db3bd2a75eb833c90d84fb0e60a2497d7c452cb3332c2e00468846a2dbd74d85795bd83d19d13a6f93ed588005b4f679fb452f75ad782974b74a12526423ec6653672d97f0363beb54bfa32c86df35393b8637d0fbb8d291791bdcfb8f21b289d757fe8e42257a4aef5e91a3b7165b1bce730911ebdbf6a4877e6431f5d20b934c8df7c9c6efe0d567295139ea2708ca2734598d18cd46bea8eceb3ac0587744c43fdf2a387db8075174958003c5e0fc23bc7ab029964f8b8438fa4155a530fa70607b1d5246dece3adf06e9bd2b3f80ea208a6177c5e750f89706194a63ad4470ad05e907882414d98d06c8b908e2d82661d291e50b71304efa787c6f493e49103b3a3c71f46af032953a52ce311b40e649db378bef730668087e9c2772f2eb175be46eafa001d4ce0f5b077b2c6ab7888afd4c37f15c42c5e31eb80a848824e3df4a4904ee1cf8f473556ed5384adc766936ddf37d2b1b7a22d0c9309021f3ba2cdaeb2ff20eb11e16308562c2323b9e134b503913a1be1b732720fca8e758b914d125bb978315620613d17c33b195d41d3db63e2417abf4bb9eecae708b62efdd0f42fc0251241264c99affd9c0441f5b091a30ecc390aa3177c1771b8cf2642322dcf5b7a96d9656c946890a1957b9fc0141bf4467a58084053a2c8f90c41a0e840c832ca57e01e926d038591cba8c30874bef7208907dfe3a563d6643745e15937a40f0e6c3ca9dcc0b095b771531ea97da5c310d7072975e3900e9d26dc65c44cbebd3aab4ad9a231a4e660bf70f73809c81d144acc0843649123d226aade4afa199492804a0b624043088622f4334420def3a70516869bdb8039a52c55a43c27b50d09c6b8e106c58952c6b788f1c0562a1c631ee80622e2c403b698617a2b8f5b71530d059086f4dc27633ce5a9c2667aa664541885adbaf1bee0c41cbc51da786345e3f52ad00bc4e1ded9561b5a063a59311d038a29e1e78a4be9ba6ccd1536c3e4ad242945cf216e2b8993a184b57580967ea85dea1876f88688145c8f571840d4c01c965801014fc0ac1abcb3f8b5ce96341dad89b0dc9a673522caffd1d6841205cbab24733dc809d1497b2e0a3678356dd411200fd67be27d0ab0f8ee8739bf25fab8e86f1fd6585a3428b734bab2fac37f612d17845f536171d17dbc86427d6c4173ecbf4a31c622c19e34d67f8a55f64c40de275831f208bb091fc5e11ad75b3259af58f78b5d40a5a03c1a56960392670a914e6a2967c04c1c6fc48661d8c52207a7bf86830b6bf615e071b9ba1cb0319ddb33a1b42ffd172176310cf83a74e0459ff0b48338a3c8757970e4e04829a68b5b5d270a5326b0bb1437485637f39ee99dd1e0bc2bd5c4d5e696de5f8e070896c57211cca5598c3dba1cf2bd2e01661cc65d98b225ee473aea0a757d5d0227b0b644bdc0eab41c153a569ae881709c7b128532208b1082454ec6403507de63d6819f2950d411650de42cf94e0d80478f423270011dec33c4e791413b07c2e2af72593b4e84c15096a3f08d1d4e3c2d796cca98dc25f2495cd864e2cde75cd78bd5a72a617aa58b617445a01ed4749d4b9df54a77bd4220a1fa10687442e4526e69b3c5dab6dcf5ba3ed31aa5efd420b2cad7eb510234290f644fe017de33e539e8b74ac85997301df3691dd23279264015656f61160ead427774900060d6fa02a1694a4004c89695a80a260a762014168bdeeca59e0c8deb00e9e50113320fe0033f000a802d5f243451729359188cff8a5880d8f31c8550e12631b52b0403ce37adc5a7842b9810408f4aa975b0d8dd1881099026803cb3013a687556a6c8a4a7ec097e8a55060a82fe9e02b1724a0cb10e060fbc004fd249aa2009f4b019fededad445574203141c5443a50469e16fe85d83270031ca36253a6bfde2041d6ef4fd4d28efd9d025de70375c4ba785d3c4b678109fb76154686cecf0378adf7662e87a7b3cd76035c275c170b66fc4ebf280265423b412a978424a62570c8e3ae43407f730c17412872e965e076191af0db33406fd1120f020a4eed0c42a94e8ce99d94df62cbe3458090f997f4ef84cb94d05874f1175d286cc0b986226d641b2849da1b161c30f29d24436ad3199f80bebcb1ddc0dc6b21f572ae96a5ed8e3451154c23234bda0eb4fa1cee250837ffe6bea4b08a33109be5239753545d285013c6cba3a32e9d82d10520f3a92741fc71c7a164ea4982eb5bc16b677209508f0277730491cf7d62a3b5fadbd551e9ecc6cb719bf0e6be6f238ef60fd912d2b7ff2eb43843efe04b334409625adf490269bdff1093531a616800a1a7846d342515e9d613a58a10bb315bd3bea32fae6ce7d2cd8ccee2584d119591ed0872d938855bbf392a5a7c032426afc1cbadba5cb5a849bde9751af2eadfc7aa36c4629d19ef299caa362a4a09037334c3f8f5b04b3ced8b38da1148ba56653323b93843bef90ee3fc767ebe24ba07bce58b25513efe95d8d0229b1268f3bc8aee462f674e4547a3f6715ebfc45cf1b3650d00fdcb6eabd57c28dff929b1da9f5a775112c3b77bbffe550d4fddcefe43ee1e0ed1b2ebe8c3dcaef3441d16823c7abf3a8495748d419bd82a46276017603c8ef62e4a03813c56a201ef2251e430a9f0d0587ffa502f7dbd3310154d5e2eea8a673de4963af1dbda22594e4be1e514d295ef469823291982a28e131409723949e77be5608f2744a5cdfb074f7ee3aea9f25d4161a29edd41fc195899012270ac56d39559b3e6b33548bb07f26460ead59eadc00d97ce125d7f1741d224bffd16f7cbf2b2cc7616efd9a3e759a512e67c1885a9170dfe0ccf71c1ab2f52c871d0017b48c3ac7b3e4b04c5b02c67bd4541157676077ef7c6d209c745f91d456a450e84ed139fa7af36ed5803186af6aad7911dee7ed23d8710bf5d41975de188659657127e292fadbaeb044732026f0053b503c1fa84ebdd480c08da518173668c582568697ebfc4c364cb6001788ea36fea7fb1207a0e9e310cbe7bf74796af5bc0c91bb6580a97211fdb722fe6dd1ee428e50da11b300b7b5e0b408dccf7c8654cd3caa1fe7ecb79ae5560d5a4b5b463cc6a9d8abc60f31131103db68971d440830c3d5e5ca1e85477f1450dba054fc01fa6825525520d218d7014e042c90023f298d0ceae00d18169ce5b10f5b95e8d880e658871d08b878127758087c40440420027044695559555555555535eb6bbdbb9b333796a62fc7c654ff859a5c07a51f4a2332a59452925206cd04170516054cd32e64aa0a6f605e115f7c4c9ba92bb49c0845023729bc101d66047a277e3f5120d05b1c1f30d777aeff3d1e0b79be037a27ff4ac555f26aa80171bb9d5d4964808d9ac8bb4244cfcf70cc05f44e3c1c94450443882802b21ca1809d0bd51242bb1200bbbdeedb3104b1e7c64400b489ca735a1ea0270781f20f38b739551899dfd2825f3e9e2fc6f93240d2b100523702d85c89ec7c5238320ea0d5cb250a364df0dfb92e1cc3be78695265040265f83b17fe3210d893e60aa077e2d9762af4206600e49e2efbfd552801f0eb5ceee55fefc43b8927d8e0fcee8b758e25dbd97d5044886008114b137a27be7725778dd240d8ccecf8fe49e607eee5127a4955129b11bc8d22cdc306bc944edc1cd9d4f1fc2c43a03f51bef667cd4a2d050caf31172a19f893b9f0a7daa177e293ac7a516e24c8f13aff393c9ecbc09ffc030a8dd03bf1dae8f6ae646a9395f7bee189c707e7bb2f4e61d41014112228249a7e3908947f40a6959213de5428221adae4f94db790a5654f98e47c73b831effb0b717878bdc37916693bce83b28860081151aad664d51246bb623908947f40a8eaefbdbb2ab4b0f2501354b7ef56f44e3c54e97439e742a2aa36593d54445ffadabdf7de838cbdcbfb352128c4e6dce81c92ae46fe4e83eb1ab5c9baa177c2776c3bf73365c8f0035af9d87642efef2e1f49a16ad8def53eb8f3c23c19b62b332202cb31ec8b51a82372d20a8fffee86c840f9073cc271223db92ac21bd14343c7d17b7df1086748489d5bb6396f7f678f77de391febdcddf962146db2bebfc54ac584180f1f37353cbfeab73ed0a41f714a2e3c3f5bdbd97bef72ddbfbf8a92e77dd64721ee7078d77b3ff53d8cb274b58a2edc7f8be23d867d711df513f7d2e773103fc28ad7b9106faff2df7fc5adbb5fd9f31ee90a539831bcce75ddee76375a83668b39bdf7418fe3b6320c947fc0e956d39dc348349effcec22a6eda641d61e3d3a8fa70be732752d195852b471625284b7364cd01743e4d09d3764f192a2f9e733414d7c74b9f7e22183ea34d3d5b711b7b993efbe25d62ed8cc3b86733a656cb7c46e40181fd336de5ddae9b0385d777723bed8bd394da64e5df7befbdf7bee9eaf8727b77735b78d6b1e4dc7befbdf79e7b7fc6637398cd39d4745079efbdf7de7bce3953bb6eabe386f74f1c5f3d5986e5398deabdf7409298d7b94c1171671b69feffcfa6e193ed3817d3d0bdfffb5399eee69ceb77df63d8177f79ef9ab99b732cbe3f8a17d35b3b3ae7bc6ce9a578db1793293bf7df7f1f349a39ef3a28022b8488a536f179776edc52a97fe7ba2a5cd777fef79f6f10b50dc78272f1283a0a0ae242ee926f9bdcf1a2c5ce4d74fac385e23b8b4ef0994af43943713e6a57d5af3226f859265d4102321c594663344f31bf25b78782c86655c4bbffb754dd5d9a2f6ed9ae77bdeb7d93fa5916883c3bd7bbdef580524949ae44d68a2e1c223d66fe9b3972c4520ff247ced75b91ebbaaecb39e79c77b7139b38e7dcd9d4f27ddfdd96a9eb72ce3951c9b95befbd6e378a71ce39e7bdf75ec2c9e3bb18bb2cd8fdde17d32cfbe69c73df84ddef591a14df3b114acc9a39c9cce5effe3f655cf2dcef7b09a30e9786c939e7fefbef9ddf4fd15871dee1ecff0faba0c5f438577acdc07c51d5b82dc9b030c3147a61eea063a198f6ece2221e6baa2a2b362cc428df685878a1b601724cb27d9f4183b33cef3d1a0f993229b49d65d66b84e4c6a30608e707d298d077ae032dfe6e4f218edf9ea06b42316bd6f2ff019f4516f33bafcfa2ce3cfc055f382cb687c59a91b95f757f81dc5b4b8184bc70893befbdf71b1e78e7d29d230d254b8a8a8d0b210d51ed12015c46c52baf382222e1eebcf7de63cc68a8891fc0b9169c888b94bdb7d6d96f0aea1debeecebf3fc0dc6592614ca23511500c3a9b73147e0cffb705948e14df24fe724c32345d4391e3813f86ff2b64a666937c4be22fc7243bde4c2c77328b116d259c7820e22fc7244126dc62a2ee871fc3ff55feb0c180790ef19763122027b5e2c8861fc3fffda1ea4122e6efe22fc7243e5e6bac8a4d6fff18fe6ff20cae0ee9eab8448e49b40fb6205b64ffde812b56e2e6faeef12ff1c8e3dce5b7ffe87cc73973f3f017946ff81de5f917b6c2609c6e567eaeb69cf8564a910c15c69b1a2e7c5e38ef12e812f0d0240df34aa573c4bd568a62c2da79918be6e028a125fa753d53a40099022bfaa87296e6ddbc52e50c31db161caa37365c8282486fda1630a03497cd33123a604400f8434180911a8b8a5bc9a91b12812aa618fbe94ad22a769d9441fc6125a72c3face455cb0f6b236d2499f3109e73be32ecf25dd4dd7b770bfdfe525b5aefdf12ef3b5fc07e5b21d60c8a8e46dbb4c64b180428aa66052579a349380cb26d0f958496db2815c5bff8ddd5a7023027a2c376be6acbac6371cea52f6ebc979777beb14aa6cf97a2b9cfebf34505b994bb5f350f92a2f31a75de79dfc193a6b46ddfbc4a53c4e6212cb3519bcc1e6e442794d39db23473f96d59cc9c7303544d602d5929bbb084fcdd2c52749260bfd927d6c9d9a7d6daed8a8d959222eba42842d02b1eb3967f100c9c57e855d59c615ea15749f370c3597e5ea529459439a0a2a25953f17e14bccaabe7bec42e450812efbcf33849bfa8f4a417e2ac9f2e69339fd7a74b59dd6bf6f6dee315654f9ba099a70673df4df84fa2a4de7be79b7d12cdccbb797dbab830db410c33a062d0cc90a172d3a6830ae0a28b2b068da956d793a8cc068ee8697ebd5098d767118c4b4b0a4b333cafcfa28ffd0d30afcf223297a66ed9affd33f0e10fc31f7a18c5782861854c0722898d0c09440f3d5668e269871fc5118c24b8b9709821c6344c6c28565d5046b8aae1c29a2a87a68c06192797b1827910656859fa78a4a8192931d5c0c3f8021b33f020124548b88dccc584109d70dc9b4b8f9826a2e3d28abdf7de63983cc609df68e191e0e9a978d9b1545f2f17b7e58b376df92ecbdd73c61b938433694245210dd5eb6ca1895e22460b8d4bfe8c638169852fd44d64853047ddbac570d6f712446db2fe0d530008faf0877ffc61f8c79ff75e7778026a8387cfa381df4559cdc01552be70c2a8038f0b27488dd650726090a5f0d945554f507a9fa428e353f4882442caa965d03bf1d027e50628941810f7930983133f3c1290d51734d984f8a62f172cdd7a46ce167a277c68d98213c79078a7cb0b7768b000f632f027ff804ed415f44e7c95950a4eb8848cf0535053003d4af3483c28a873a19c27b8a966e070e43141efe4c370504488a0970e49934a3032568485405312f44e3812750437671a36f85445e0564370f3d5f3e55041f081de89779d4c0f5c8968f0c528783ae089941ce89df8de352c1137f0a3d4c07ad304bb7f9761fdfbabc8000f64ac1dd9905231b5b344dd4b663090994e091fb213cf20b6a08810c1102298ac30d03bf14d2817d07c996681207804c95381de89ef436914681e4f8e2370326d023421c229250bbd131f3ec919145c97b8f33a956283a4e51bf4abd60aece6a7063286b02baad66aad0259630272c6a42116c7caeb67e5782aee0c69f5b3c4a6d54a5f1014044608c98dc5edc5c40e1559cb8b68b3ad22018bb206994ccd10d5777fc987dfffba30304313baaa833aa1884e79d128391346a8a5962f15cd8d7406a8d68c159d1a90b7288f0a87528da3b524b36e06acc4976dacbc7eadab48f4de6dd480d58d813179a23fde29b72b8623b824b3aba55de3e85a60cce054fd54a36c2f946ac618b624a2800945c794da271ab2ca19d4b605f36c9f27248fe66658e860536af923b53b9649629268d4a8d567d0144b483f508830929c4031b11d6fc76689a5b0f3dd6e8f0237078d09caaab2aa5a2135f7ded7b117512356d8b88660849def989d57a952dccc9b57a9925915cd52dd4eaba0dfb40a663d12526f5f393b9c3170287896320a085c5e38666cd0f1a0e9592f9223ce5a6c81f1d03a6ba1547016d4bca1335363b2728ba316477a0b06240a31e9b249b516c43fe5b8d0619a71d6349194a2c804ad30cebceecd2b150e8c4d57e642cb536ebcd03675f868b24ae91115c6d6366bb043866dcb8ac454dc17b2d1db11123eb1a8919604d298108682f430aa28a3228addf82858d53bb12b7cfc90232a752175df8ae58440c55eb2d6bd9bd768980adef7decc79efbdb7968add3ea33070b48af3d0f78323a196ac14c4e356dbd4c7c2a62952156d3b2eecb06ad931c5f2c3da3680d798dd41d4f2c3da333a3859d79e0e5ab0f3005b3264d795007a2dd952738719869d59cb3d0aac36e6b564a87b89055618e6098cc1ad3c5ca9e656ee01dcce6b5516d5ccca439e2ed12d70a8e5555e41afbd0eec9221113c506095e7155ab6a703208c50494199d715b8ca1c0330cceb9a02976bb0caba44074498877a5ef514e79c73ceffbc467500019594f40f2e7288b5d018aba8535dbda91b27305920818a782c21837454648aa9a784bae77befbdf7dedbe380aa0963c58822f48442b59471995a406dcae0be84d48062cef7de7befbdf7e6fbcf2b555195c3d80ed801db3bab17b0fb50eef270d7a0b3fcedfeed26e83db7ba97f4efbb1eee99dd5f254db2ffebee3e5b54a61b3c3e50644bf28c0ef54a6be954f4637ceacb0b6c009c77be61f637e5c29854028f1c93201d4972bec98fe1ffca8138e678a0d88713c9b7e488e947e3c403117f392639cae93013753ffc18fe6f9c890b98e7107f3926319af1a16564c38fe1ffb6301961248322c27ef8bf7f69836e39555d327520ea07f8f0fb5f2662093b1c05588d44c53771010227c70397981b6e926fc98fe1ff2e99f8d52c7772fce59804aec4e8c403f163f8bf5f1d64a2ee87f8cb314991c90b98e7f063f8bf4a283610a9231be22fc7246f262c7319783f86ff2b4561e5ef623926d1494a106c8a889c0180f428d2d8dce590627c78f2b4f6f31a65f2695b3647e46d15708378ae01cb5c2a798eac9125b240d026ad2ce7a005b2f20ac7f2c475d4d1f4234bd8ca2c2dc4ccc861ac229183857097b4a04d5813862b759d5768d915f310385c9dc3f56bb8ba01cd4376c8f204e992e13a9d59b92d19ae69332bc32c2b7f568e5939c8ca1660e516581908accc1a599955b2f2da3b613b0f9f39de56f160c9aa491259924a73ef1d0618268b5a4c0b14a23a61df3e719efd3fa5a6c7d80d98175434490ca8a39322c508b964f9ac791ac010bda03042d19143fa8332f71649df709625b5bd9013f329f391e199c1cddbf16299ebb7bcdb7cafeebfa11342320625bd9efed106926c5e2e34521473bc87b9fa6fefbdf7452fddc6016febdb9bd81a8b18d94b5511e0da5c2069cc60a145f7711cbd891dbfa0e4943dc2cec2c67a32d91263528c5b7ff8fd6f0e5c6a8832dec4b8748a704cd114a024aa69e162c19a2e77b21c9368211dd4148e0c59138f8b0e6730a0b9c1c273063613c403b1618645988a8c98a456338359019e6c314154cea49a6fcb5135542deb91822cd229a12d5ba927ae7a6454ab6f3d8a68dc27ef57b5ec930b5c3058365674a7615f0cc740732f2d165754cb8f6ba5088398d728d70e178c0ffe75776e951080e63b6a0230f3a65a0b00d6665886dffab7d67b4b6b4e80a9644a9c5c4c2082917d8a2052b87c70da9028c1d922432205e4c5032cc7b04f2acd440729193524c0720cfba4ae6062a9a6cc085242460ecda9bd413799607c411a9a38c60ccd1799913a1898878b885a3164c64def69f316d1f09c7866764e2f366e9098dfd436e38b5deac686cb31ec937281d94d481c0dfb5c8e4cba18268fbdf7e6db59260781325e206381a6404bd26a9b22eec84298e45882aca2d48c50b827baef775590b9cb6fef5dc5b2c713cc8d182ad6da446e4c976f2d754a653a6408c8819b53e65825c1a08ab45416d01595e1a89b624989c4b8b999b5fc831c8a0ce95a6b97c4b371a1656dd94035819e682136cca8532c715054c729a1e61d7a82e7bb9661301681e150adc062d102ba0c408d0920df982d94479d2b1aafe32fc7244a21502b22ed8f6117c69a322f293a2ebca07a7c630c00b3fa311d63e60411ea4ea7b5f65a6bad53f83dc98df861fdfe3cfc0567989c2da75e00693a169f2b901c68544085eb479b8fafa397ba2d8d22673dafd2273632186cd05482e6de5c4ca981e17c2953cd6dc5623002033a0639d10646a3b508e99752e598ffbc4ac15c6a04f78ef59a77afb5dffc69486f56ee49afccb7de7aff7e3f8ad37bef5d1a5579ca9987bfe00f7977282fcfb5d67bc75d02502f8a583e5ffc44424d2579ae89f69fe0a906069a8d16423f61118883225155b386a57303695d8d26b220472a600d78fa9211e3c6915af38701cde8718a81428aeaab07675d5e74302c544aa8f1dc63ab83c2d75bfd5d9f51cb544a8b399b2c125eb3f79e057352248e28a42c5684bef396ffbf02100a1cb23917432f7488662fbf3366effd5cb54cca6cfaa243e83b9fe3fd80efbc3e73dae6e16f8df763d8f231e284798d6e756d49c39ec4b026e20f6b87fd7436ca46b9ee413fc07c742499c9131a62204d64b8557f6c5ded90c9ec400015ca4a581cb3455916e7a16bcd7a9b69031a3194a294f629d4c8f4c586054c895e088d1062c33c843b89a0cb0201c9fcb05e5e201a171e50b1b8fb01d2d3dfbbbeddb90f8e6c5366d21791f8e395a1e5623932ba344939e7845bb3d8fd15fedbc38b2a0fd6092ba8314a640b08fdb1d592e2e3a86745fa70eefb0e8b891f40564eacd9209376314a6899312606d53425e5481b632f81912e2fbcfb7ae44a70ce77f4bef78661dfe63fada72f41d51536cc76f6eea131ef767a02b11e732bccb89c80746f422bee92dee11e1c3070bc4728edbd37dfbd7995f62ccd433983dac6897194a6a8c5a0dc92fa31e85a183000250d1d1115514d9875de79df7befbdf7deef3c84f79a891e6b4834b31e2d65fba285142c5b294c412e45ed8a0b2e4ec53034a318e45c76622c21ad8b1c53681752dbd973858dd65a6b1a384fc9cf6a4e43caf7de7b2fe247419c7df3cd37d75b6b9f2f1e0b02b6caeb0b2aa85025179dfdbc56c9d5e80010ab34b5a3949b4dab45b6b236a305851a5d960e6a84516db9b0b424b36660a347c60e5792546908324c3e586421b36060b5b0ac9ab93136db7a60ac5585b074385f685ca934b9966a0296c0a8642d1caaca0c8c0e280063190000000018477224c89214ca1514000720ce606488506c585c2288452262481c0a45511c09310c04210c04411c096229d9d9006f708ba316ceb3cd74f3ea5df2674bc7965f7a64cefeaf0aee9f40a631fad306085523783420e88da51e45cd852dea1a4ac94d240b494bbc61c8d204b2b65023d1ad705d8f92353a37593055663e248275378a7ae07ce36a6cc0ce3776632eb84e0e6f8eaae7da267a8bced59abc83152d9da10b598905f3e49d3a2ce20d42d2cab69d5d941cd587f28a02603f3e93215a9afd71e689f28ad82eaa44ea701497aff478b1b71c97b470b962995609734f9753e3e5a0a2dfae483f43a2290a398050063885e41e9d5937d33058e89793ca5f8eed1f839e849ca283d452879b528b62e82659f2c055edcfc8c138a430ee44e988bb570ee28b947eabd8aea6506169eb81a184f113db726b57a9d7714f9ce57849e3eda0cc29ce7ece56041b0d4dce1ed988088c84e3e1aaf5be57e0e49b356db0f4f19bf7a7dde8accd15871a788b612e99246067b0965aed29607994f2da15d9f77bf064d2a1d1b8aa2a946f9089820392bbf01515d398b459b6a369b259ccac3311da44f5d4043d58b7ff3849cd238595769d254cd13b8dcc936dfb3e49c3f9fb88224a665633691ad2df7b5a16438764b147349e3279429463f526bc0079a722ec6e5e50de18a48b3ac971ce297bc1efa5ecaac9fbf29d543acfc7238b448336e1cebc250d6be10c34cb8d494f4bc0abf42aa99d8f033a2641263f4febeec4ab73e48d57fc7cbcca2e547d85b540c49ad8dce2b6aedc2629898e25c559804de40c4e337666121b9b08def65b0f01181eed691b9aebd0ab0f9d86da894b6f09f0ba5679d70eafc6ebd0d3de2e26b52ac04b6a5fd24d83d7c7fbea69a6bcd8f40deb9c369e4d51919eb38fcf9ca8ce28b61e8c470c9e3f0fa0ca7c2ffe31691c781da66429ae26edf6c5b7854854b0ceaa2f5916666420ea14cf462649c9d86fbb4e5509d117fd8abe702dddf7dadc08d849b3687bc0b72c47035cf21a686284afd02cdc62e4b12a0c1e6cdab3f82c22db4f8f791a45dd72d63f23f353731530f437d3b40b12ccac50e12a884d7ba2d05df093e950845e30848e1dfe0512531020b94a52c7a399801af0ed560dd9911e5cdc3d6ae3288ee3d8308479cd7aaadb222812e8548c704d090049f8626401b93b6703644e56d1373cfad0eabcb6de9d65c6f92b79da830437acf3e60cac854a160b7eeebc1c8da52a3d643758b08f478ae62f1cb11c434ccdd763d82d073774bd59fe529a1ada731b05703542238bc0273907f80837a3a26a468de47373b29f3c6ee43c68cca2b3320762c026cb02a8042d5a9dc0264a86a8cf88d613eea434ddeb47077ee733e061b1559f724ba78d4b3be8d584f00d09fc112a44b49e3b970e6cc3508833c9f606b4e424590e4a0fc42cad477c75ce020f7fc03d5388c81f43889fbce9d1d76d815df66911132157698998be238c469ed466ca92b97ee621a44d1f175053da83b8571aea58825f3f3a19259bd1a67a085f47a9f618d05f86b21986d11a2e5e024d169828f66d56be71ce59f516fc4231546a66640c3aa9fe39b986f41d7116314c52a9020b52eca237550080de985d822959d1b5a79f3eadd287fdd6f7fc3d94861f09d8f300b68d3c799ce2318109f3a36392aefe3d0fc56cce9358f03a12eca5071d4dc4b9816e762c70fe0cf438b710b2aeba9626e46a42f7081444ecb6e17ad674977195a8bb0662e599c52aa9d908835b5f5aeab40cf6807959f11ecf65d8799a3374119b7fe3475c5d91d0abad9bf9c1a97f9d34b6e2ca7fb7c10db715e57d4b6b16e0e963a12a971520c54cfa0a587125745fc787d5c6f730bb1bd4bb12c7bea156a6fe7a132ce20f90bdff74248b9f8e8a24865b8bf2a1e23b29e4418279a974be90df6b1de1e4280370e8b79061dd22ee468ecbb1857e2beb17c25ea6cbf1fce3d8296dfa2b0f7f4622bc9d4a1c2fc62c089040538c8bb96994b814f32bbf9d390d91e08599eba7b61a4906c3b299a8f1dc8a991f1897df3594855547626fa45980da89491745ce2a66a9873563968d58fa5add0b9dc80231bbd1f0dc2ffae2ca9618ece000237a624b7d10020375e4d76b24214d175f8c116eb5caa911e91c86a72abf0a1c27f18497a459658fc947fa3433ab84cd33a735dbe42c20920fb181c8c87fc20673eca86320c63ba37844896b277ce55d8140d9e949e50ef2a410605caedef8199d8b353338018a1472608bb373211603399cefe3f441c3ed21f8a51912b1c7da1923a4e45f72ede38af4a1fe73686b4c0ae7bbcbc74ddd1d3900f0758e1b38133cefa89a9d118d33a15fde503fc18ecc6d9b1ab57e1275e99279ff54faf649474e98efe8fd6d87afac6c7c97791e5bdb67cc0305e22f4c4401327b15acb13aeed2b982fac1934b7aaa54ba0c7c91fe0b80a7d521a20babded148f7aa25119aff9ba639cd6b37d4fead5a9675e8e0d470d94b592332c36010f5fa246e837af782932307f2c021e7b94a25f292c0e0ba6ffb617e0052491dc1aa24c6bbdfbf808ac5d7ec121ff989d0232ff32d6aaeff4ef90c94ec259f1922e8f455712487117b4d3587b60bfa7f627c524b8fc3ec875c4905efb48ff82dafe8b890bc83b6b27455a6a2a8b049e0a30d9ce019a6108deb2983dc6a186a766f0c188855546a54e46cc0bf001ec22ebef9d31e762c1689ccc85aae2b4c1b0081de78693be49bac8e00085b432432486d955e7a4018e60b607d447dc6abf67ae87448c080979d6d492b22c8456bef81b69ea25ee09cef9a69d59ed5047350c3d6b54582e483f7a98aa61e56421890e5b475e4f55f51f7fc5a9e33e6da58ffcc8e73504d6aaf897063550d045928064f6f6ba020b04165bac60658fec773301dcd503b9d17297d3fe6303ba02342855c708dc855d196907ef7c1d7187632101ca0fda528c9ab557cb5484f2f9e7b01878b50d1c9262631003ce3f38e6d907a464b810751550b67b07374bb407d3cbc26be9ad6f0cdd152f5da4aa4dbc06cf70461445aeeb391e5889aaecba323e60df23a3c40cfeead1090d302de43a3a9e4ab794d6d48ff717f1a60ed4cb4bbf76d0612d47140b1b1359c570714a2ef8ae2336229f786f07ecce8a6499af91100e82b51c390e95c44074f3390e0f29f49ba1341af43a14d502350bcc687ce15cdfa2750a4cfbaab34a2db4da825799559939272f9ff3874a960581826678440d96d8132771401e3f0853b55fa621a8f70a10c1c047a656c23ff3750e877785f1e98c36696883732b13e4c94abb535d4b012450b50bf404fb800c2dfcc732d332dbe291912edc1fa740ca39aae1ac5c6a30b83f07ff098dd4b065f793a04b7363c49b3e86e582f8a75efd4f740b9972db45c488bedf0750108feff7149225eb0d225f92b467dbb4ab8347a793822ca74365259ee024d02225ed392e80eff189002fefc23192b8b0eb454f2425e087a328fab18fb0c9ab0e257536a8aae83c13d7d9ab03759835d8251b665ff2a966f47018af845c6a03f4aa78d4ce12edbf68b27dac7548d5a92d0478175a74c97ef2094c622f1cc1f8eb01d3cc5f8e73a2138f4b90be248fd7b73c79184899d3e7978ef6bca5c8c87252818586400e724496bbfcd221d0789c8245f335528e85260df438460b93dfcd522f4c0fdf86eaf4993c02967ae8c5410d277ca805da5ab3027edd0dca11ce65275e3e1499026f39ab0ac6ed040d13199b9545dfcc30d5b7eb1a6bb6ec55c5b538a6162ada4e955130883afda30b98d2cd6494b825eabcab0092a23d3e9cc3b93863ca831a6a03b581ff9c712a761d39b47373e549c9cd769bd90d4af88cf2ba4ad885a4dda76cc271fc3fb9ec094a28fbcfbe261eb8bc36a48789c9b823007442357284e9fc5632ad9cdc6d2fbab6266624f83e99858390e0ce90cb537012686ec39d3a3462b7922beb51fabaf4e80ccf9aa81d4006fcf1a2c09f19863ce362bee093ea96539b31c6e4e7352d107647b91082bb0dfe62db203e83a41f26e5f69a2ab63b0e51c26229f864b97b767b91632698d71d25acca142a008cbb4a6354f6f5bc777ccc3a171566b858e8bec83878045ecc7aff5cc89e74403ac6a27a7b43558ec495359bdd6936e1c1a3fddc943f42d021e2793fc64cb1b9c90c026846b4f18df55a6e1b105eb8c403bd1244a29ef1fb699b3a482e133f5f464c3b0e451058ff61506f96bf9ce74219b2337b89e878ebc1bc13d0462b0afe3c5da5a5785685a444e1983ae3377f89da3176a32c869ffca7458ffe41921a761c5838d655209cc4fdc47c46cc748afc9669764c326ef4345c07a6d1c14d24e38b8abfc6291a4c26f210eb763335e08b6bbbadd432cedfd0a3cbbae8925f75ece3e96b41f1a316ab498a41ee7363bf912a3e1b652468c91a3f50a8b9e94695824d7002f78919c6c9dd79e4b4b198803d0020f297245632ed8a17f2fcd1a492b3c7788021bd1f86c5a193ae8c3d8c1b34698b31bc74f962216f871ca7b2c3802d6d75eea7cb366450a368cfbcbe8c9c8d2fcadddc9b58c0c77a60e8394262ec40407d6c563d7870eb105df4ac616eb9a14bf9e0b80e7720a20a0e2adc63a28450c9780593642d79e8b82215c61e12a6ac72a482a97ba687850c85da7b99c278e0978f2f2493b4952b3729084759141a3ebb7ddb50f31bdbe8cea51513b9bbf492bdfab99cc2c293e06a4dd83dee324018ca9ec374af583d60d92d830baff9b1c681cdde1ebc829403b50a289ecd72d491a770a7fbc0762d6a633750d20639a228b1f33c349c30e644b79c75e23753510728926f4457814990ecc0f17ba656b5aa8161e84bec5a36841d0ad4886f44fa8b5ff415afd1f886463802d4dadb4d5716d5f2a2b41ff75433987dc622df0c6254bd9815c7dbce79181915c2ce3fc5cd8a0fbfef417facd4ad5d5fa6817402038912b537a6834c71ce694db28fa5a9b45ff37b4e849701640fa5dbbb8d235d96ee174d5882b9752e316223ae6668946ed1591943c4fb4125f497aa79767c590445968d812858f901fd17ae9ff14a587c845df66bfd87dd45e75299702abe622df71bcec35448972600f5644e18c411180898124eac382147d5f6dd8c18b6668fe2d441f0f25345a5c85deb1cf51e8d243859e87a242dbc235ccde84e1c4643f79e1bd8fbe6c6ca4c24be028644a5a125dc2ee4d5b8842f27013bd003176a060d9ba68845b81c5109bc5016caa69e903e0de2615f16ea248735f3b732b6212799fea1d51e8528ef2db8c11a31b17e291ad21725c7df4ea9e91bf6de5d48091dfb67f8a5a300557f08ea43ffee20b2930ea634c3433678679fa8755f9000269f76fbe4ee7219a53142efae588c122cfcb5766f3831f0fdf2afaa37d3db0a030c3d46571e6bcad221e8e6417696408fb17074220914defa1eff2560ddd939494d0015b7278576e33d56365f4fbd2ef741fd254d30b7da46880c0303a222b4ca541d5271a9b559de8678424ca89c4bd2a9b41067a7e1f8eb147255c91e8edff4d7ac98be0877fc36725a2eb25cae843fdc4447f8e91e89e9912811c19666888176868f3b85fea4c3b24b40d0309ede82a232769f1564649f7837eb2fbf613a59f1a89cdf6748b35629b8e3ca923cc17c84c67dec237956205dd79c92fcb28ba44920de9fd152abebeafd0050790ea7dc1b08afdea022a67718c78df77efba6c2f20ac6a1028633e26ac32fddb34457913ebd4cd3d9e8965531ae5c84037dddbef515666bbff9dd9f074ccae5ce43e4658d16b85a84f496ce83695b50ae3a78d4237c4b614ef9b5415b866c5416356d9129a086c702998406760522cabae48d755868b61c27e8ca2c654c0e9117ec9926345193766c1694d46a183cdb6c2acb277fc2224dd337524cc71a0e110ae416f06c7cdd920d3a0fe39c74ec74f56958b106427393eacc974de6ce4b2182e84d032d3e31c807898e23b961625a3d3511f3cde13b1ec84ace3338dbb9e4e7ceb31f0aa168b6df0b8b2fc304986f676b24c626e16e4929107b8881e02c8d9891db47820f3b0e75b6b4423bb905742043d2198cd204f65a1c6cd4814c6b619cc250feab8495e981277860dc9b8ce70cfdc7127d0dc2d9b4be3684a5eae042243286924f93c2fd120e55b9d15fc17cae57a46074b61317a6bad0603aff07c702c0f64d2be9757b63da7a383c269d9c8fae0d592e53c0fc1d1e8ef4aad4a4c136481eb8850ae7144426056f28a6643c05ac0c26a98fcaa943063f4273e0c6d14780522bd95e5014bc5eaadd2007afd787d6040cbc9fd080d1cab424edf59870dac1ba4af8a5c81ab8e1d66cdd4ec479ea014421d0582cb020fcf1b1b1863e5e0d0ed0d3090743b85e85a26f813be11fb402342f0319083060fa53df25c6b8ef8811d85fbb90f774b034b8c1d1c659f1982543ef1e6125c3e419e4c0882a54768cb9f254a6bbf592a552782f0e2987a174443efe01138f4f26783c6ba5b864bd9d921bc54444992e8833147fbf3358ccd7048c4696f6ac272111adf8748818489f4ac087a3321088745cdd6c56e4bcc11ce641486c456409c50af98702e4ece54207bd46fe66c784239545edfab6738608bcedc5becc9e630afd4c760cb3c715c967ae6865f741c4522b2fab433b54805e66080f7458bf14991984d2b94548482ca5041730040bad8547c2dd177424c112aaf40b99a96de7a8194bb169a6eaa6b61f2efba5f0d7541f14a5d2fb69f3baefd95b56f2c36a60b12d2fe377972d97b561a32c285e04d8e3a2e197a6ab1cce8e246b745aef4df501e1a7af55b22d84bc898bc70e4251ce819464bc9431c960282cc76429f38d77a7cde37b52ccc77df661911d84aa0dd0fc496b3ed9e69d69637b5b27d336c459bc9b31ff0af963d13392df61ed172a9d08500adb3ae565e15989865bdffcb01775b3543f7b654f57c5b59c3cfd6ef655e2b3be554ebdad9d24aacefa0751d10ce0a3ab82eeb65dd17328b7dea2ebc6fcbf5a50b5184e8b5fe0850f03da90c80218222fe5fae3ea3e424bc07a83670b27db39302a1049d1095118d5bd6d32fbd3c8f14f879a38e7a2bf45fa4ced8d858e4b01a0600406e357527d7f3b09c32be03dc141a74a66e40786db334b9f51611bde010268cffbd35a418caf0436563c5de3b53b2ac64b522baa274c2d7bf1e4a4c9a5d0e874c9b05c8412651ccba85e8b3f9c36c14c0168a691fda84893fdc207d440b885f885600ea110d470024e6836e39464a75db4707ce7526dd0318268d8be53c1855528cf4c10750a4e24efb6699d1835d5538faa5ec656829d8fc8a369fd01fa49699062e18e132dffae312c7f684a0b755dc8bb77dcef860675560d73731163c7c0b3a09148141161f545bb6f0d918aa887eff47c5a118aea2d26ba03706b2e5c0e4f72659ae1ca88f411278b277e07d2dd381cf2358a6f4c9e4afb8fb81d32ef4c971ea9544a4ed2136709abc11f5acb5490063bc3e8c9ed47f2153224af510951195b27db3e1d1162f9fdb6c8237ee120503b4c718223b87d56227da17b2304db86748e403d26ffa64a44b39eba6da9a1eff377d24245c93aa56caa0901b56d0d20a8e0e903bb618536052c76652bf7d3d4f6688d991d20d0cf41fabca23c47fba9a2fc7288919038c674a3e4a9e5a516427ac94fa4fcf4ff63750b1a0ec177454f67b36334f297281b8f400e83e8da072cb584f8d2ad548a355fe49a618806ef310e80541d44e5b2a8d57ee64a273054548abc1b5a79052795d79e62ec6e2b9f2d2248ca538f196150806aba38821b796dfc2f9bc77b6720acb7c90acb7e63a5b00869ad936441c12792b160e09d410bd735b33d60f8e1538aeb141d2b3d7b44ebce3ea00694371043711aee7a23950316a27d1e516b610c335d757f7dc8862eead19410fac7d43011905d16629e45a0ed1951371280c5708493109cd3b3957f729f6d500c975e9d8e13c4c8cad6199849c775c0b00c4e840041ee14a62f450a5a88d5c5443c84236d7bc5e1d7221880bb99eb81f2870542b13ca1572e9e815af47fb9d8843395e25520fac8d145f05811af41444db15d76b09236e7211be635e93133dec7148e293f7c85608079f609f926a49f14b605bbb1f5a3420e3eb635a243606bbbaa7796e449138b0392e064a8cea0029a28fcfe37fb68d2a6f070bacc8c421211a2658dd1916064df3f5456147ff89178321b200a52381700cb032d2c88da6f4f70ef2bacb55867daaa79955508ea671c096c630ffd06f43fceb2a902291ca883a14ec704b09c0b00c9d008c79fdcbede938f1d3b7f01005cbddef6133527074e724594cd2eaf7eab2a1c0b280c36d2b1c7234afd442c026a91199cd3b0f1c288f580c825a5f30715f885834689870e23b928e8a728e6187adba36c07c421e9c8c1f41106b0b1f22416520ec049bff4089132dec4ffa217cbca830d31922d39ae8146850d2b166e323e9d956550e9416670fdeb54953580527535560dfbcefcac9865fe1a16a1f37b3bac60adf1ebe602c1cbe9c2cc23e525d2fd4b4dc3901cae28e94f10a40146baed80f61bd4ef45a02dcf76b96cb846cb5a8e94d63bef21970b1f5f1b89c51dbbceb56561fd4218d94c9c676efee015e13bf078f5c4f65317a22bcbd063316a1865823927e9e7c120a92c9a68865c362e7eb5c6f494db0f49eb10d7315cb6ed31576a2c672896713a0bd9205e8463e44d358685dd154418268b8f5587a322feb6469990d83261c406da6194292c4a169a73c484bfdc6d259115acab1c87b0fca5d0acc2bfdf91c5a110fed79802ddc836dc9a0c752016de43934aead5fd105787dc9120b10e5a47dfe65780628eaec66f90e0762aa832c2b3fa14b1b43575c378f6100aefac3c829833f01ba6371fb981a3b1c60ec646628f67f1f1332543a5ed0751fa92e2859a1299c8638262bbe8744667e8157f65e5fec3f13f5ba5fee9008efa41ca9a6194435c832f4ffc8d48bc9e695e03fe10fa6d76374b19cfdb139ff4065360d4a78ed80268b0c7020d46d77052dfaef38838eb29d2ecfb9683a40a4d32c7090770c9c168088d3ea00df8f49c0bbc3e7af98a79ebcef6cb2e0de4728e2712a43a1ac594becd95cd6c94622a64300a24890baa14fc9302c45a869c0c03fd3aef9264be03217f4efa51ef49e9103efa91893f574771311134be1c57730bd2170e85e0bcad9b68201ceeb2cb10355f323d6cc50b0357303c073d8cdf530c7f3c3c9e00034d591d4bf56753d2fca4ccf9c13b3b35e64d89b80f56c6cbb048e7a24027924179838f29e6dd934294bbf843fde91b567db6a0bfee7f150c4d1efca61d601cf36811953fdc95471bdfd1822c69e7fc396750fc76ca36e8b27e1fad2ca09f1899c9fa694d470610e643a7d30d9b5799a134625e5e6158e72516c3ccb1d43accbaef95aaffc50264cf2c84bf2ab367535935c576a2421dc05a4c5cca58bc9a81625c7f57cb1d98843f49a4d1dba4e45411c97af8ba852abd93c9092f9d3c749d33b0185fc0b31290272e4988c2f4e40aa9280688f08487b0d36a8ea94053f518662e5ca46e6d55edaad6c9eab3a65b99678457e07a69584a0e55659693a88386a3c62993892c74b7769d5909aca47f87c5297c53561bf7ccdc893aacf0b939f3fc582b8667bc2f40afdf2714630ea8671b5f0727e5136fa14aef121ca3dbbd9917becac879dd83d3ca133daec2e35b168ca39532553379d71662a355fc6638cc84f2eefacc5233e0a807f6cfc8df502ea0f63042411abc244df8a91405fb2a81d811a43b06473d2bf70e4c428d2f465abdcca1b96b89cde0f062fe80ca0f351cc756042ba836ef584b402b824f380e0dc8f072ca41e0832fd501383f3b22cc919bcb40b5b43243cb28a8858f417926bdd6626c60a3b8922f029349c007ad386394eebfb729eb7a698aca15cc2071b29491fa005f1ac1cec38b9d35fb1ef6b8a6df8e0448ee034032d363683d4de4eac3d577251456a30ff86ea5b147e80b6d283bb942db4c5aa2677a0c0fb34e3f616800c2956ecbdd6a3abfc33828b21da5b8fa1d59478a9bc27bb477779a4dc507baaa34785c206fb4dada0f1f21027621aaca281ba4ad768357636a656a75c4b2bb4617baa17c5a909f57395890a92ed704ebe2dcc4cc07c5ed492eb084201ec421de4a0a7be49ca79609ea8bcf9726d147a989daf5481bc3e6f9c48522557ec2aded369b328c27dd699a0ba9cd3e85b9a878a9fce61c2b02d9b6c85cc116e0c0908a0413cdfc362814d67c9257a02559dbb8c726dbaecd81b28dd34a4b97d0d8f8e80de59d5527c0a75a663f09417d84e0ca9557c210d8bd31f401b5b316aa6508589135700dd031e2bb381538a33806699a8fb5fd8989ec66d958dacd70cc013bf01e38fd72daeb55a7cb1394c18ee7b80ea78d203660ac161338c2bf9fbc297e028c741a47646f3b7beb3d54c274bfeef611d2c32182627c3f4c6868593b3017f3177989300227d434f97245ccaee11d6f1625cbd57f7e12d9d01ed456ac3d193a8255d751f0d225e9b1c0ec7e67e439f6c9f3e77ce799a5c1389045d14e738b1c70c90b7700bf7cf7c75dd76bbab0f41d6faa2a1c3a6810577f708b28f7ef0b6c63a038dad9f693028d3c20fa95032ccaa1992957a9816bc4135505ba11ca7240bde68688ba3e1b733677f50c87a1a52e1f9337a69faf231159abd90468e23b6e800f0ebc5fc11c8a2b4835d31a858215a4283cee8a205b53bc51242afc9d933da8b2c187e51ad47dc308d097c4015dc7e1d99673586698e791444f85b7998eb048d5b4aa694416b080a7c80fd74c226e69acf2e6b8f561efac3af87d4377a9d85ea118c9919a646283e6771718d245749b3217c08a55f4f005c77da44e0c3a334ceb69223c9f9b0e6756be3a11bca8f477e278c313a13e933d32c4daa05aa418dfb44ca987e1489a3402bad8f63403a684df9009bca0518d1debc60aba68d30e499820183a6c380967218b3a3dde7f48f7f2e73a7ff1da6d010683d318e7157649f2288eb0c28f855348828b28ce4ea07d7734144ff49cea89d4fecb84a3c03fcbacc880c2130c05b5d413b24676f2431013e202533be887f4a513e3376131094ac5e74c900e27de882094420b213756d3e30f250b3e53176a8d212d387fd92d8d1c732252db324c8925056e5ed74762dbb78dfae9d3efae3123af955d787882c4d7a1245254ef013a9dc13a83083f36b75dadd05fc1e750aeee7f0a385a68cf5e89d7401555ee6d7f00fe1ffe65adff6b67a961471bd6468b608fb0adff0105ea3c5ecc4839299c772d3b70501f6dba90f5d3d946e43361b707983696005ad866ce9a2f624bdbf8099c187d2fddd1a0b91cfbc48381fa3dec0e3269dd0376afaf6b87e010b4b490a2c8a4ff8227403111caad5720199e72c6044ba4cd58902f9bc4fd4a5bcbf2e16e95e13dbd16ca24539584f7c82c09aa9abe50f7729cd6934f26c117305ca2e07b143da54c9fdc7a6211ad3f1ac95e42f4904f8acea4602e4e7fba1d507eced5a4abd28b498c09203a922b06132515249b6700abdd40ba28b1d8067dc87608ef9e226d84139dde310ecbd7a5cee8f41fe3cd58dfaae03412ca0439d202ae341714295879e58291003ecbb1242b9fc549fb78095acc5cb721657cb7bf9ce076beae578648e88cf97823842a344db69c266ddecf3bdd9e913a45d125c15294f2eda1f63a6b2543051d49cf6aa966da3b0987ec13680f5f91805cb04228b1d2b49175a37c8b4f7a900c3a04dd473e3fa7a19ae86fae6dc558e0996168ffedc2ee1de70719fa707298702fae49fcdebf1fd422d080a9828f82d3e2bae25ef892288fdbf8cbfd46b8957703143b3e4c12c1d7a80ac8d29a342227fee2c8a7ae3f90b8283c3033387a08194f310ab13384d4d67af72ca420414a07c7e54ba9d61307df53f7b5fd07ff2a0319fb55a73c0900649e90ee66fb9a7014e8b7570661abc40c9cba2d8109e254177989e09f426f66987df86992ccc8da879d71b6bc253dc3ebca5ffe13a31130154e150fa173de54fad47d6295308e693cdfa6ea9b7478d915f976929a216d73011c248b1650fa927bfce433c9681585c520eb01384320a9ae953a81f531b34fbfd916e3f0631f1db75c85a1313b03f25b3cac7ad6c28491414657b11efc222ae0614d791a228bac5f4b8a41a963916b16a5f582f225b4babdf0d7a266cf59605f9c606871b6c207fa173cc1e868263cfeb2d3f8c1d189e489d8c039099ca6ec40cbbe280675e37fdd5efd3208b73636bfaa777debdf1f97e03f643887a5eb56811805ea8ec2064e59dcd860f193b56be3a28e8fb1363b4561ac34f5aaffeac1de5a649c88fcc18d15293f8ac3c50673f60c86a46ce555026b60af65ec710c9836a2c6a2b8ea20f162060285e108859a1364ab5933a093f9ad4ddb36026dff547fc699b2e4ede23690427a6f09fbf7e0eb41a0475613e378ce8117a0c0098dbf640b9b8f8f0470ba9fa30341283a35755af1b93f10fb15b7c9bd255130bd89fff8287668203ff2f88c6e5a18fef60a5298d9b85239a4f1dfb513ace4d3d423442c1e6acb412f4b58fc65362044ab1ba164222b7d477855b30d0705d26cbdb820429d9c83af6cd74eaf0a98b238e4d22ce0a182a3c0477d715903da97c69f34bc911129adbac953c0de3477881cb41fed82f5f3de2e804dc4014d03715378f29c3b476a2ceac7dbea5e676f4badae7b9afad511bb3bd10320fc315be2ec89f36eef6807aab9614b28d13561658c765e8629651d88f7aa5469dcc5a47a7e2842b4767ce848a1825095e4e52bcced12d031db11310c9ce2785039a2a3c0a671f2cd89bd1498ecdbe50bb56aca78697ee00d6d5d0e68a0277794ec0d4f4bff47b9bb539a725c04364f28a1419d410bf2a48dbd3b4519ff43a6551f42b6f64be36811dfb8ecfa7bcca163c0645cd5a5cb2a7a001abbc0e03e2b8e721e02fb803fffc06991ca0625b0bd020c19f4229dd19da3c8a896f87de0f5b82aed82533d772c6b242a9af1c131fd1f3f120e6aee51c8996e0ca0809a392e0c616838cda6a4853f252110fc43b2ee344d180b2a022d61695ee2ba28d1f0fdadd553db860f6f763176f270afa93286452af86f7c4e844e4161ae1a146622636e227539a6a24d5c058dc88fffec332af33822bb6c88911a2f09ba5244a445fd0b8ae2de59e3cf6af3827f15b47862d5aad7fbaca6be03d3076ce7d51f646c619130f015e07e2b23e99232764daa6c7686943de3f6e2a6fe5b3a6c06b7d9e37afa69fe3f1c3c80143f51c18c3426dd5973dd4de9ae57ff9ff215dc1c95871ac24e7cc78c2a0e27600d5eff1545f4a110c3220f4eb62cf299d65cda591dc7ca0dadd958e4af3c2812a616d5a8473a299b52bd9df503ea736ca063cc1b5d1d214ec155657396e04055edad144e9f03e5928065429e7013fc9d5a27b3429c39ed0c6dbd5a41f8a1a078f3cecad9018b61083001d1c196063e3a52d94a718d6544ebf260c36f53e63d873b20b015d48eca5ab217e711fd230ce4f08740df033cd6bb28c10e4fcb15654d53e630e30deb0fcc4a4e302d5a47763ee013b230ec28009edee849b8e8d18f87c3981ff752380f1e8fdcd6b0da28437cbb789395a47c259f12fd3d0144930508215e5e9852f51cd230ce56a5694166f6a584ad179c9d496d86eb96f926a9fbb1384051ff482e6e3fa51b8d77aa5c857cc0c8e221c464d4871d87972e60c48821696401828f25e3af32b376ba6a4f3dacfc3cd53e5ec18074c93f095b78adca212fb8c321f10b5f4510f5e44e81d092b5801537028305db8dd56f78ca2fd25381dfa64dd541bd950300b158712d254340c9514d2cf3cc6a5752d11c18b09e76fb48ccf0140d26adabb58422b9bcc877d883d7a837d3d613955fcd50d355389b6e0e561ed19381641610eaf19b1ed4a2281d08872cd1d31883c556cb31cda8d040c946d91f84de97f799a35e728af108281eabbe547df6849563ffc337e6831cea674271553d259564ab4d994064bac6e1c0d0e85c004d54eb02000a642cb30b3749ede871eb088b05690e736a398ba6292b15d3ef02b4633ee1220f55427121041e5ba32e715c752970250bf6f852563f8b4be21e9cd6d303601c7d296d0e65305b43b9e78670cf903874f27c728a63c5e4980efdd03d2751bcca4478a013c293cbea61af2a59d6586b8253606f0ae41a12fed9cf58c684c8bd62c532fa25ff9d40e43db7fa870968ce0275f1105dbcdcd8a9cc2e818d311bf42e9be40e4ac95806e1f313eac14dfdc8f04614c863ed751b90f206b9c2e58194cd2220cb4b0f693caa40507adafeb154cacc42cab61d3beda4c24c2a1162b12fcf30799d084228f557437e301690a7f8b2fefcbeebe8d0c383e875a53362c1eb8a5dd1c93a759f27682015f3a18eeb28785bf88238542b8f8516a087345428235ffeb5c825061dce781a0e79c34163c5079e48ce4b82ed10911bd2648ec899e1bed78ded3288119892ae2182dd488ebac25d8c715d154f9a7032d381fa633b09bc6385a8a8cc1ae72f6cc1bd9743250cd170a4f5d45c20d204762f9843c1497952095c65d066f0d6a384fe99f30bac6801f27fec0f47db318834cd920830ee8950516269924759035dcbc4feab53b8992927b7969e68b6e8048ae86bab6f19a1a7f62cdd4dc6afaffd8bb34a929f4b81a22b4bbea8c19731d4bd14eee19ed224b93921a9ad4dfccea6abdf1ccae7aeab5f5c373a3b347181012ebdcd31306664c7f98b9085ac32cb50c6980fb2326ce6c4c4419e2420f5efb544057640d00914b671f7c371a49af2644bd2658f73ad553a0dda1007947d560c2a7b8b18e8a8bd82a23d823f987b67b3de4c2fc357336fd61bead472170480e622fd3f64ebcdce93e5fb62ada61114b29dfff0b28662d4f280e6ea051dafc0c5c00bc6a6da15d9bd012d52de2499c189716eafca92265f83c0681af81300c7856a44574c46e49f1545e95fdf0d498bd6b4ac95f4f72f7258a1b98b18d356efc261331f4b55ce33149306ed172590f9c62fb67ffe9ca1e09491bdfa46255045baf29c5a3f92ea5abeb749b9fed138d8193c98bc1510781b325a13275c1a2459bd370f2d41458ad416f23247a0b6a5739809a8c3e3d5a3617569572da8511252b04e4b4785c4d93bbba0a57eb55c215bb14d1be3647aae996beb267a868b00faa6eac5b5c46e275f783f1ad17bc0907843920f604692b3385675c2fbf7b150b75128840187103c493f9214bcde1321463f8779cf34398421000ce1cca755d43396d128e1200f1c99d59246970b6048aab3893d8fc2d9618542df5e5b1692d796b6ae49f2fb9a9748542ddf4d16b930c53d2ac306c819b4c6c702b5f2d7f497d129321eed8c1826fbcb8c305eed3c0378c9842cd6698426ffad7c3a9ded90c58a59bb064177cdc80dfbce9001badc827b10263026402ed02602eefde4df82235e021ec011198a08518cc805349f0dcef9a202244101ccfabf4066ed6f330c48cc67daf9bdbaf7ddf9bdf8c0591bbe8b28040e79a7e2ce580aa3a3e6c7adcc0f0b85989fbb1e30d2eedcd86db8c36176c546b4db5a3188274f0e43891662383c386050dc8d90e331d6537c8be6ec0a056d980aa913426440329861366c20866a2e52b88178f196a32cabac2b8626c59c5909a2ec168f122e92285164d564d11ab06e5ca87159bf4ac8a46948b0a6bea09653e8b9c3f52395126a0685e9e68549a724e6e4d38983598642c69294d253921191d298d769637452562884a8c683137042794830535c84bf90228faf3e4839464b1a20779ec31cef01849ecd0e9c4e5c4a0822c05188a298ef4187542e966c86685091435332568668825ea8c3d66d664cc62c460b65eae5c9c452622518b0f09152c3523645c56645254aa6c4a1b8b82563716a48b2e0b0874aee9c7520ea8aae3c3a6470c0c8f9895b81f3bdee0d2de6cb8cd6873c146b5d6543b8a2148074f8e13693032386058d0809ced70cd62282b2313bbc145cdb23155a339864443486c45580ab09aaf9717af97951973327674c5c055b62516836b9a0563ea45d305929650d60aac145735562e2f529795aab9e80eaa18a6caa062cf22d75f9d5912988a401302480f1072c08a06a460408d88e2cb028a2b0a984bc08e103120a0ec00622a7005b30c30558026019052101ac00a145298d400892f0220ae04600e003b7e319c5056226602979c0562ea43b3042412210f2b3aa420a1266e7919a16585c3dc861dbe18349465101be182b344a6429a3da45788b7e2ef54b8365fc69368e92450b8dc06c641600a703a06ca31490c2db005068129f0cd62d6dbf6fbd604b89587ff6ddbb66ddb07847840889685c6dcb6f22bfbe2560ed1b621768b8c31a11d4a195b2b499eb64dcbc14b5d0d94c5450c586b1bc786b179a21a42f8f69ea7e9ed8d80fa8242c69b09a789a914bc370d24c5f0155747822d878788b77f7f63d8d78220461b270dac1e25e88c11b71394c8727b4bae003bb1797a7a9b27731828ff78881fb3d9cb6f90e7c6fba02c22c83322c3ef6e90bbbff7b22e6266736cfea661fffe7f3e4477f71709dfffacb7ef0d7706efbdf79efecdbbf73b301134e2a7040db4af1f2c0d6d4727aebc6430c5ce9efadec8260e411834355274c1d0f4ac5c3d2dcd9e4d06316c452dc170dbea7af2f5edbdf7de4b95da7450440869d0c52edaebdfdf7bbf77903dbeb58f0fbfb7f7defb2d421a0c11f4defb92a10d4474a054fef9ddfb730786432b03e5dfd6f1b1018e615f081d1d3d19cb7befbdbc79f3fad4b1310f83ec4cd987b127204a3232d68cdab5a29823133b8a3b441bec4e315621c19d47ab88587cbe18e76bcea67bef29fce23eaf511c3fe6e12f58b463b77444ef9eaf6bc8ee3956e7bedf7bac33028677eebc3ed76c62107bda7e3bfbee62cc1131ff7b27fda26235622c29587965e5cfca319b06809995d7ff64d420e457fc775ea97446cc43986bf9fa6ed5d83520453312692c985ab51394e2e894295ecc20ed14b74cbc60c990f8ed1436a9ce0e197528aa533168d8ba2a71c336c36594bb5fb995eb23e4fa24f956f810bf5103e76bf34ef2d0901c5b9134f2acde52c1e366e645c6cb8a351d73effd5fb5902a7558d5400abb4eb2f03f5b46492d6e9e6488902e7200600aadcdec4cc556553cafd2244732436147b0d4afdfd6042d771364b66dbb09ecdc76bf4d20422b0f8930fb92e1e6810dd8033bf5c076b5402eb3731b570120b440ce8ad480f93bf30008014ce8ef3d9e4ac193f6de7befbef7de7bef2d42baf7de5b84f44367846db5ffc3ef7fe79c5c4b6d405a2f3e5e4056883baea25a5b44bc4fbd1c93a89042612654156adaa08ace8140e133f622ce4545e54577001c0c13b12a84f3a442fa9180132f335539542fd6b4b8964af2c78d39479683aa47ee072e3138d1e041daa081b57f0cffb7771fb0bdc8d924a150bc48a96632b4d5252337b12a1b3f7884ac74fc6559eeeca659c4120389cec7a621a30509ae331e3154b53f86ffeb831d297c6254eabaac62e8c181b8678b8d8ab01a9430aa968dbf1c93c4d9cce0b4cdd02051630a2c43cbe3032b3464509e86c074fca45352b33b0f7fc10c41b8ef9df530afcf9caeb937afcf1ce93cdc70ab2673dfd956b45e9fce8abf2ec3f804e3b79f9c4f4bdd4749847beff7eebbeffd13f559fc5e80eec3e34200d8e7f8538063d867e413c3db7d00b0f789e1e51bf641e9f18d020c1762b23fc7c103c2beb8af35dcceb700d6bfffcfd2f7a1e2de2763f40200438f5ccf54e50ac74629a374e3985ae860caec4899bea022fb7700c8365745122b7cbcd0a8591af177ac6d3bce8486de7e60fd248b6a7eb29c4ce1e327047d889d9c79fbe625eb2f9175446a787c07e1ed1f9bf79e1cc13321889b4ff6fe0c84f760ef071906cabf17bc126039867d2ba22e494f9bf741d906cc3bf8e2140d7e93207baf7b64ec76ec4df4df7bf7db7bdf93e57d10ee71f2bafb390463d8e7febd7b8f91c806a0fcebfda785db938cf1ad3dc7b7f3af610deeffbdf7de7bef51f04263549d36d51ced194e0ec77c5ace0dad98be085bc1cce08b7dc2bc07028ff4b31160df579eaf5edf5c64fdfbff8c79df77325ecfa90a18418a90c90d1a268c8d2ccce7c828acc6d737e73077b1bdf7deef18de7ba8220c91118eb01f2aef1364837e19418d34450eb11523ae3cd38ea717af7f0e7030867deedf221b641828ff7af7de7b1fc4e202c74fd60ed19086b612bc74942cae8ed0a83726d0a302c6069014351d2e3ac8a13a51a36d692aa944ce164d0c2c62a84ab6ba98267653f7c5336783f803172e5a70b411511569e2034a38a590bef5c4a96c75f570c1447513c30e07ddc282688646b3f9a36b296a4605848282475a9d111907122b008bc1893a5990e05ad76a705479d53d4da9b18cfdb8b1022e2a069d3202b43de16230724271c16184d657d80c124fa74bcfd6004e56965610a38f900eb48495af30258c97184ed4b0f05a15c1edb25cc718773c4ce505f6f1f271fcef7d5d83b5fdcd6f90e8ba448c77b56cf805090d6bad3558151128ff6430169d6bcfcafbfba7ddd65b6fb0e52bc3603d2edcf986dd7928c32b785f73222ed6f6bd6fcee67e5fbce56e288d9091aa4861f3b1e4f6b50adb3309aac318170794b4744667a2e8884c6b75749dd216a6a3d8034886d407fe3a2bf6dee1af183bcf7beffdefffb7efbdf7dea32f8f61df6682bbfff92ebfbdf7aebf94afdebe38a9779b90def6fdd5d47befbdf7ceb58e2c19255ecc95f9108a326a949024154a0d96b5ac6ab0ff7065af8321a67e964678407b7e85b4fb7bce59060439b61053c12633236ed6bab56a818243a66749e519a3e51732afd2275a376aeb50d8218302b9b1d8f154376ba3ad151bb41a4b492376ef015659b48c0753893343aa996af0821441d5d0b1c643c748cfc09ab5d65a8b90fe194e26d69e0109a7a0185e4e49a9291a972e085310e28c969918ba8a8fa8e4cab869402000070d831a040000301885811c8619546d011400081db240587c3844403c48181288848171200c0884416130200c0400028120481c6acb611486ae0000141480067e851ecd32983ea8b4f9a1f2bf2048521bebc67b8ef7069cc41082fcacb580dce4708302a25ee5865a066c01c6a15f023284247f78be58aa06530f943e03227a802461baea176cd93985488b01e5565baf8ad8d1185240a149888424f1c8bfe01010068748134936db7d31cdf1f6a4c9a174cc89d690f3928e2169e91e4e28686a44e657e1534892a33e33e2f74da0b79a480e545f53fdec73a2e6fc38681e36ec04ae6b0a44e563e05e00288a1b8fd107dffdf104206edba969f074d1760462c5fdb70e07b87a7aaf279083060b4b9523e77b2945638ec81390e33abb142ae862fe7a027a5d291346c4b452c36701df6ec847e61ea2369b1c8156116f3d10cc601a6d341a6721022b0a9bb9676d691b016d73342b21dd3e1a81489c4d3d0c18b573a5afd5c89b8df760c8f60c3ac7243b36ac619cc2dd74d7747e99edb8088d89c1e40bbe2ee6abd8e60d4bfb05ddaefdb94a2222c0d78b89d53052e982908a278e004db76d4902d0545862d25ebd23a600fc3fdca04f1427a8ba7e345bc4c158199485d3d16967a185571132de4e63cfa1e02e8c741bb62855ce7666583d4a4930e5a7d3b219cf6ff1ec53810324722ce54999f2a0ae653e6b80d0e03bbe3c374add08b0b90a8ddce96fb8018dcaa981ab9d74c7763be5e65c49b268e7dc32cc8259aaf581b14eaf64bfe9b74e4b6c20b4d30e18b112dea481aa791d4f75fc2de2739e90db3326874ca5ab7c04b0df72c56799b645732a60cc4b7b15ef0e81c345727ba54be77ec3087f26d5b535cd84edd41ed21d15a097209797f81d8304e5191dd57bd9045cf99a916a699464fc66a1bf1b3f6a8b173a9952613d99ce8330f1d6e66a9edb888efa75554cf353d474064ad78e21ae2686f7f99710a92ba5e779b93e470b7548ab953c18cb55be8f1710f05eedfeb895b54a3d4004b714f07d259ea77cd5c6a739d5cf4ca6ec4e558086602343661f7e1a367bd8104e0789b11122ff56aab49958a2dd754aee9ca0352a2bcaf4a6ef6fa2e8f0c8e80c17dd2298e81166182d8885d1ec65d8c5f7d8855c8d1ef9422b6f33466db41a84dd3060654001763aeb3ecd9b69ea11c2377d2c064416443fa3ca76690a2a4e9dade571505e1581181eada53ed379de91cd0b8adc8ca3bb56a9d87aecb88550e233f2db031cd8e65fcbfa6ca46d73d7c6b0f26f39514de808b980361bd07b8ededca69bf98ef76c6cb4e167a88bf758bd05293667e27263b20d40ca3ddb1e36f9fc6d0fc3afd76565d432d9b135bfd7daa59d8d1ff7e29b7130c1d062cb9cf92a1d57218f39ffb26407f81a91926d60911a5aa35fefaf913a826fa763efd008682e0b4a1f5bd6e5ad7afc37dafa4f2c28d01941d6d2b175c5c75562e0b5de82499f4b656a20095185ee2edccd09f5abcfaf7585fbf5014c05368ab58da2162763875aea90cc13580b7fed1f317062738d6407d5c29ff9d0ced2431f187010747041f4a038fe0926e3826b509d465deb88e89656337e08b23403c9eb992132168c731d5797742f8e924d47c14c3474be35cbb1f25777f5ab8472d151147d06c6716d9c98909b3d64c5d176981e422feabfaed14dfa6b343a3d6c802e6191aa0014d2a970f4df6d0547a308c10ccdd5a453b2a151c3c32b2b150f8496dd5e84178c5efcfe34c08f8d185b73e1ff2c578504a77254b4deb0c94ef008d51489ecd249b231527f0cea13adfbe66ee4e79636d2d6235cecd1b1948f9c11e328af5adaaecbd74d49f92fc10cb03d5ac9ca9e6a27797512f51c7e79aee208ee49b363a43988fe1c81c85751016ba8baae830381c7419bb4e5fca67c58b453587c58bb9bbdad8283a980c34c7c36784b887379586b1a7fd09e306c161ec43f4c5f11c9f6a486e7629ec4b51c0c960e2a11d1519466050dc37067a10745886e02ba8acc0d15e9f7bf7b3d6b5f2127ddafbfbf069ba8d3816253baf1400172102646d10b095f694e258b20d37b9e80fa1ee74e0558ee375dec3fd8bc83d2852e4210fecd22f58bcb7259ebb868740995c6a4e8beb22a193df18e77a26e0906078057cc74a508d2cd2648253c2baa9ad2117d36a1a60f29623d077f8347616791cca952a40ac9e0e77dd34a398c5aa1737431c61b1a2e8e680a8d2b9bbc843abc4a40791c745f3d5c793202e743b1f961887b496a12fc9f07e00bf21ed77d90f4344c1abf30100779a5c2dc257da1d003b613f6ba523953660aa3f57ee0253b6624e12f17fe2ea7344b8157475e44410aa362c5618905e7a3279ec349d9c96548c92793f2949d833292a01488a0b0d432be53157a0342496bfc2ce2570850aaab16b493e6fbb73199459b35907efcada8f8438a8c6186a14ddb4a76b64778f06d5800c96d3541dba38c23cd148f1f35f96daa6f0995aef52637ca1c812c8ca275823279636788a9bf706457807637655cdd037cb47136a1e9c7b0c917dc184cdfd071f7b1fc963157b8758c40781182bbc6aa24116c234b94bf1084491c7f764942e897f584ef0a6704d3fb752bd0cc30cd0fd1a2635814a238f764c0842c8a60a645930680bad14864afbcb5a48da975078e654a739c9433770b3e9e317169c6909ff986c85c8c3a5489ba28f232132b9cca6bfc7f12f38922a359f302adb9c3de3a7a36aa81f75a55870a7424a7ca3e774931a89dc523745f08b3433e3f43d8eba553e023e70dd5fa857ec64441d19ef254cd2705ccafe570e5b4660566ab2e359a4c16e67e5b8fd35516669acc21e7e7ae88b007230d10548cd2cf05a0dcf1727c02bace665ade8a12098054de5491d95e9753fb3ea2225dee8b4c71031639e5e65669b6cdb09d19250a3149994daa8325896eb801c7bb9a29de5b5a85224580ee88460bef9d37970eb00cf902f248ad51433d5cfcd6c23111368f4779b8c1a08dd96a27397f898981dffd0950cd8801e9e768c2e9f52b1db737ce5d1fbb2414ccd51271caea5065efa9f9a15c28b22f4812fbf07541277b506e8b6c0344aba853540acb029a2c5b58735bcae2b409c6d928ff3b225aefaf2b76fdabeade0ad49f80089b2063c96cc9c34d0754f1ada551c4d1df4cdca208ff5a7f8f2b9c62c8a7871cae2bb953b7f03067ca4e114dfb874e9206d6f26ba92c04106a665211a03c84b755e0064034903c188b6943c22bd155becb1fedb189344344b5021ce8b03fe84d462777970f26d2d3adde229968402d7926a6d8bb0c7297eddf7815f2dc9ff86f45ec86711af504944df4c35c4a365a1f88c34242c04b4c3c89f65cf85d9026d5a5ec8576b8751decc38a9e08d8d06bf25cee6e1d662a169b00d7a4e93cceca4999b5f0952a7b0a02f9afcd6cc952f4113ddabb24b50e6dc2e874916eab402b3fe6910deb2028441b70c41ab584398058701f178a895292018cf935ed30b41922855b22cd75e4dfdd5e4c6f28413461326a1d777da18f55b99ad7fff0fdb151442731de23c1fb7b9d5294080f7eb7ceb6e94c1cc6cc5fa892e52ef8b1a7b5c22c18501a92fe2eb459d29721c7c07271002a0891ff1629e2bbed5696d37ce9477c8dc9a6a41ff656adbbdd16a6ead409efad8fcad83a08752e088ae4d4e97b61bbda06e70f13b23a0ccd29721738a32108ff12339a45b3a37761e1c4aa74c8e3ac9295dd8a4bb0abe0a40b42313b9d39611d3be4d6bc5b4cc2a34144cd52f16d9d4466fbec17e7a4a08eb9bade556957d2898539e29342dc7cef57b0c2f6ec2b725ab9e74f63462b726c1785fc7466878a94784315d9f32e4fadd70fb9b3357a0385709718e1290702f6d2a92ae071c16c221ba9d3a0c98607a521ff78c6200aed6d1390d0b32786d09b35729d291a5c51b1ca33a110bd6ae2df643dbda9f8bdb9d69b4932c2b975cc9553b0ea653a334b98e6a24fe2276285107e45adbfb86059a19652522662b5030e2226f6528e6ca0ebbe82001c6c02fb295772ea5e2f7a4298994e813b2a4e41162bacd8b9df0313f34d7b6b41d6148599a5192da24b3a34b02f260fc721967be13e86e8a400e776f3beb6637ac9342f45ac6205f5c0154343725d80253011ad7e7869d6fe75a22b53195cd39b4d90e2346ac2a452aca0c60f1a877b7f7481736d0d760a7dd973a88e6b90f3eb84220b2c3465c14297694c40145cc245a76a80d565dec8fb1184880bdbdb57657da355ab8545ff78e5cc449cd99cfaf7696e4545b02576e0ce8dbed33457c1df398158175ee161506e1d10ef104e3dc1f1f4b73ea7988f572f5eb72b8c280c8b0b38be863980e9125318b502dc8fd1059c223185b4716d5282e14d5e9c81946ca8eba58ab2455179b843b3da6710e45a7505a84544a212b3a6cd88e0481c9f21f7172be6b95f743f8f058204cae9341456747fa5e5213a144c75d840565e21e4438ca9b2a0e57b8455b0446be1475a3cd61d8b3ea59991a03890dd1a69b17462d4f0a235cf1cc81a2fc6a28765e8836c66530a48cd47adc3cb17b52a7b5c41b927dbd379092842b246892628702c7de4bc6cf4555f21abb12f3748bd00a4c053aa388fa0c7888c8187ad4091f2c6d5a244fc39e061106460f4c54c4c24ae67cc27fdf395f6472b09dbd06895379d28843013c8d062878476b24c990610414529731ccc66056868c6bffb9c32dbb268dfdb9280faad892ab9df3c207a00ac0f51d3ae4e5c8ed39898d21a1ce850ae737e5d3782280ecf5ce0c70b4259c7baaea2cae7aa005fd372820252727b44f05989c0874a50e3cc3841bdca5b09e3cfcd3ab2cbcb99e6c414b836475fe5b2bcbfa2b0cd6bf5286fefc62e8a44f5ab873802ab3d4a149f585cac4739767b14c8c29a43e411cf1787ed271fbc5273e80cf963967253387c9a581978d31b6ef4e9193a44f4deb950988dcb67807260dafccd94ea3793419f969b7919d84810f0c66648004d46076078a4f2623840289a15b418723520d097a2529b0a6af84ce6bc636f62a3d0f916bcb8f1dbcf15e87b35a6597ad2aea0c4573c20e0257a9bb5a1d6bc27dcc2d0ab95657da3dcaa30dcc6ba5d361dbca47a35dab2dc2beaa7974308d963c8438774ebbf9892d8eba3c34e62ea40392a7b3d54f0b77d4552ce9144e4db3e237a7bc8d9c2d24c1d4a0bd943dfb5940171ddfae7e8e250c2ab439bb7fd0e3aedc88d2d16ed9c73072a6b3924db5b26a0a8790dcb632fe96014eee5231b8ea157b61bf914899837349241489037f2e1fdd4318428c6c97005743929d425b732e479ed7049a81c58607f6a7d693aaebe34a148a4f5a601c9f3eb09851d5adcd7b31e7d33c3fdd1ae14a6bfbf92f3390a90e51117bb9832c8bebcdfe0ae70cfb791763aa33546185ff856038e54b4e0c79835b067e2638f5e909c1bdad522e2faf549d208ad35dd94c861fbad470f3322b223c51f41de0f5de2edbda0e773434b3520a0ee1b2347fb3245b56c942b8bb6ac28ba590db258190dc538f95deedd4b27d18eee113d8aa89122e9072013b1a947f469ecf76385ffce551b7d5cde96a812622ffd249adeb8cf733eb062881b7dc36201d906edbaa6a5c506de3532eb592216918ad7fb23fc8cf19289a5e34581b70b3a588beea177d485f4469b475e738a1ae985e4f8c4aeceb2ab79c7ea26564d87de36cdabbfe6ff7ca2e500588143fbb27614373475143d9c9217519c488a23e10440213c0a696bb73e506a57a9da7fb9605f7d130d0118a6420599cffd731babec0edec74006e97d4f4fd9ff8a118a333d272b758ea7b37d27e83a8fc4b9846966eb9bf43b19d5791ccead3b81c739a64e2d9cb3ea4c3aa7b138e7e1d49e3374de3ca26bb6e1cc1627f69c8dea3c0d67f99dc0e3b4927389ce59e224bfd32c4eeb70737b68065ae79a9c65744aaa337bce2671aea7b3fc4ee03aafd4b904ce6439c9ef641534afb3cda57782d7b9264e253827e54c7aa7b13ac7d3a99e33709d47c4d9863359ddc49e9a8dea3c1acefa9dd0e33412e716ce49ea24bfd35a9ce6706edf19689d3375b30d6e4aaa3379ce46728ea7b37d4ed0759ed4b905ce6471b2ef6454e7713ab78e4de06573a64e253a27c59975a7b138c7d3a9bd33749d47c45906675a9cd873b6ca9b4773cdf69dd0e3b412e7129d53e224bfd3589cd6712edf196a9c63eaacc1292bceecbfd94ad91c8fb3dc77826d9d57eadc02675a9dec7732aaf31ccead77428f734c4e25ba39a96d26bdd3589cf3746acf1938ce2b7296d199ac4eec399be2bc9acef23bc1eba695b8b9c4c2a9e6b172363a72bac1b9664e263aa3e2ccaacef339b3e544beb3519d57c359bf137adf349234b7e09c2527fb9dd6e2b48e73f9ce50eb1c13670d4e597566cfd94acef174b6cf09b86f1e299b2b7426ab937c4ed645850b26cd3cf04a786a55607a706c212e77984964c1bf3b51d569abce179c55d9c931e7af3ab3eaf4dd9b53854dca3b6de53c4da7ea9d61c7b91067179d53eac4ded9569d93e1acde19b44e1b71eea29b39fa26fbce26759a8673f74e90714ea97307a79c3a53cf6922ce753877e7041be72d392bd066aab6997a279338afd3d93927e8386fe454a173aa3a39e7b48af33609f55092ef1c0474d636a7279dbad366e6dfe4254898e062baa819cb283595c3851e7ad4b12161a9660371d2a90d8ad2c01b1561b92016337295409c7e988def331a6a4727ad610742b0ee47f6c36b98561a43ef50766682f784de13eb20e88265bb70673389afb6514e64006512499576ef5191096bfab781f4b6ae26d5a325d4b3930bd2169b154d882d8f00ce7d792779ca5fa061f5849781f5d0f59895a2ec1db695415ed4c521fb7e8fb61be023328f80c2508415694047411d8d8b4152a0f4e2adeb0c7c16022aadc9575b308cca4a079b9510f81a9314ffcaffa0575e1cc41cd3d8185cb761d889b95702c38cacf2ba6316306634b867611fbb35208e1d1d3e7a1e99c55bdd98854229c709ad1a0020574a68cac3df008d8c3d4412b2f7de5bee2da54c3205df0525055805de77e858c7cc5e48e4cdeee9541e7778ee7ee6fc6875a266374310dc7f6a0b89a88b74c87de73d91e5512e45d1ecbc4f390dfa3bef21d10e12ea683ccf73ec68e48cf951e0bbf008d3c1e3c5f91cfcbdfcefc5716f9fdbf1707e5a71fc6c77defbeeadc42fec02ffd0b40ffbd6f77cd7f7e41e146586e11106d3c139b8c3dd5c0d0763171eaf1cbdf6d96517daf8de43fb3d2567317d560645cf9c38ca17b2fcf0e84f637b7fe93df38c466ed0d9a73294bbbdd349279df4a7cb72f7d5d698aa94a8904cc92151514d535f9eaa642f146b928d42994e3a29a59e8ee99f7574b649c5fa53cc21cbdb7d20f91f1d3f8ff573c8b2632a0289d476cf83c7141180fe07f3f87920cc03c8c3630a54997e9152083e4313486c9a8b9d7fc4a671a20e1e797b2a8240f3a663e64d6cda8fd8b40eb72a0a79aca97c394462d0831430564410441a2868f2a938018ff50b31647929cdf46f6e272153b99b88c6c4cc405505081dda2c19600b1f3d88407162a60859e4c39a223b5439d2e30889abc499258c3cd18205938ecd3d801123af4184e4c47d3a132149f158e7cf72c8acb1011caa48e950831810b440930c18220b21aa60c0e2280b4dbeacc9974746fe137647cb8509114c646e38d202171aa5b5aadb799435af4532974a2cf4f4c06637f83083c4c8cc111ff7beca545949b92821810193e5b7edef0cc86ff9563e4c0b07468a56fa9a6f5f302f371060cce4f1457b00a381afb375abf4764e8c406ab941428828ce36dd3ecc754fb4a7d65aebbdb4e7c3b23c9f3a316a890ce6762aa2083259388e0ad1c2ce0da2e9eb7464b0ce52bae5d0a276cbf9ed721c07c3a3a1879414427058f383c907b06073a5872c2aa459fa2d09ae4a0ae3e67c32802dac5cf1040318252bcc2562ac420024092e4a423c80859012fc30aa62f5c42979c08a2cbc20b1c40688d31911aa70a1694b10255344b16aa8b202a5258a36565bd8b06ddbb66ddbb4dc1357eb986da3b586a9db1604a574d249e7a4934ea529485b14e16408285a2869365b6a80b2c409b298200d9b39e7953144b8f93160d472b5e5d7821298c2021253cd488a1d5e93062aa870d861c9072e5736f9b01873ce392d96225ba00861d4e3cd961c5a3349d4192b7890a207125498acfc8842b7da23130a0a4276b76a6108d9cd6e9b6f4c8cb83fc088f1f144e59b4925b8d004c607244fa2923c487a3205c48f1f5576f066985182373e94d8f2849a1e386e091258a90b4ae7dcb8eba276dbb6277668bdb5725061ab2db54d92388ec3a9944529a595562a86d6da2300375ac3be567c3370dc065b8238d1a20d9826a33b65a0a00d0f41927481224dd5074e8ee36848bf3fd2a2248488a9129091220749085f9e1449eaa189157c345101860e932ab6ad87579d5cadb4563134a41cc7c57abc3ce53826e1acb5d24a2bc7713ad5b9d8f7d01c7961f7d5711c4701216d0498374dd46005cc93971846a4226c5042c48a2a8c506edbb66dfbe8f68251212f10a8f2821227b66091428d0b8635607c0c21a6471b2e3c90400b29caf556a1304114269650a1818529be7984061025569a20412105b11205e5967c81d281c819264420e64a129611d9102e3708e1041a2735db06bb52a5564a9da627bbad08aece69b927aed6315bad61eab605415f3629ddb6edcba493d249277dd9acb3d6dae5d65a6bad73d249e7a4ef5badb5d64a39aed65a6bad95db6aadb556992c48cb120d8e2833a7172d6bac10d134df4a718589d20b5da8488306835924081a1f4e446da1c29399399d9230e2040d3eae704802d2c4ca9bd624e267a660b166cc91102b78d192c58a151fb51b017eab82e553eb177bc1b65ea2db2a0d405b6a6d0d3160c28d9526901041981698ba17ac5112552220a28722ae5a1730e0890b912c9c8c8182690e6902091359929e20f1a50c5801a5767bf11c778ff0ec4661dc16fb9e1a04e4f58d04ac386da9dd6acd32c5d4144512154794a051784286c810a1c5062e55fca072f182ed5c8ee2b0c090e3386eabb5cc0d34e04025248d9b18ae54b9338805a20802071c5648a3c64d073fb8410302325ba07899406e992356b0880122b52607af833d863bca282759be8c9a18bf9e8a383f4517ef4854e62dbf7e0b3f685d5d5de5d73bf872f5a4f425ba4051e6a16945d7d38f5217d45a1745aa723b15999a3f23b753912bd208294f96288d5ceeb3a3aec5ddac39943ff9176f92525641d5fe282613baef72e998f9e2beae1912b99ebb46e1533b19e9217778b1acb5b9a3a478ec282c773e2bcb5acbf0e14e0f65ad65cc9f4c77eca811a2e6c4120af674ad1582c9629db59dec26af29e7e8a8ec72e1ee39bfefa55c21658decb6d31423b99da618d5c8ed14c52abf88b2268ad48b175ed017f47d40323983be03057d41dff77121117d79b9ffb82dfce67bff23586bdfeea8f985f49ad378f19286445e02cd9d105aa24882cd932a8eb0b3a748a364052c4de4807444fe84725ff41379e2f083577ed175d6addbf930def1389f7befc5cf6f86449cccdd7cf1dd8b97e18d17af33eb17ba6566f7ec784e99e7c441d5f5dd3bcefb8ff51d8f4196fb1d1f5befbf23ba9a5c0e8f2ebcc3b3ebbd1def69e6300e57ce733878e7c78a77f04873cd13477dee3b8cc3fb9a390c2467742dbcc3f358943b8fc36350762039c3bf77910eb9bce107f98741a05dd75131e73bec6c50fe092437b0207c1dd4b554153f3cca9c6f59500d897272443abf13650724677cdf73ef62f5c476f77e687a3776befe48b9d0c6ced7ff2c2843ef391d32bb8bf2ebdc403b41b9dbe2cafcfaf097a42c39a1dbcbdb6a00cfc360df5117f7c177b1fce7774f45fbc2f1f2456a7e278e3cb80fec539e051465f7694251e670072cc88ee7cfef7e6876e2c87d8cff36908a76e7291e75d07c0205b93e754c7938bc80a25ced7ba2d81e73b1fb1d71e43efc1a3220e7bdaf610732e7fc1447ff0ebbe8752e7a39ef6157933b310839df611c39ef611c1cb6780c9f25cef083d7cff7d0031c4c5b3ff1e87aea315703741aa0f39f8e38a690bfffbecfbe776f3ffbaef37debed473b3cb67ec7ccdf48a78b0fbbf8968b9fa20b3ccaafd57ada7afa15d00aba2d1cbfc43c1ebcdefff58e472f7738ba877dc0f3b087c1c4b173b0c8ddfbef3d24d2d11080c1be73a190ed4ee5bccf799defe7bef762bc4bd491f31eda9039e73db1b38e886387e71c7c82cc94fef7f5f5b087e1b15b40d1a4e0ebfe2562d8ec5c81783305628cf05d8444adedf5a107afccf3df4bf4e7119fbe3e7c1747fbafef253e8f38dacc53cbf46993ed28b076955e4d31fc4318ef3a66871e7079be157570d97520e0eaea2a8f45f9c5f38845b9f10ecf2f6088ed3119bec00df4f338828c49b26209ab333e4c600a354c503c91e2841340626cfaf4ffc8e694991365673964d6683359aa5c4042081424548a96fc7005d40e522c51d1830643cd1444d2f848c2e4c335ba1204d4510e6494a049fa53a42f6fd4a43f87dc7dcadda738359d4545101c8d9c214e2bba94a39133e8db6945d67f12749f62f994c7a80e6e8a2c6bab94f298e4fca8f6dd4b2d77475e99355a0318adbf9f35a495b2367da487e554545496b73372dd782375246b1e231376df61083f3fe43f62274aafe85adc1e4be162b9f5eb6b2002899fb8238ef64b0ed98dedc3b7a2572b5a35af702a992d5e93a7b5d8a75c4dee8eb53feee01d9ebfb7d3b32e2c8e6dfd7c5d9defb6af81b8f34062b7cf8fb8b3f3dccbdacb051eedc5e3bd3a3a6fe78e9a67ce73efddd33c318e1c3ccabcf373dc51f3f735fb0ec6f1fd7cee65e8c18771745ff3e474b8ce7df4a96cad27b2de8a94f5ef73db89c9483b312149a49027849f9f31843cdfc51ff1a7cfd754dc7917ed5f319591e4af82a108caff4489f4f3a305faf16aa0810824fe883d7d72e84fd1a3013f7d365148e63159074b4d11983e1e93a364caf22593d3985826f19814a7e17889be3c3a924f827c14e48fa081e9f3cd0830347029d851f3ac55e6167bcb275ff65452c4c7d30f662ef3346e2f50a2c8ed050a163f52aed0d8b24686d3863c520bdcc994476b81fbca23987bc9197cd5df5e969696922c1159fa4129edbca530b71728561eb86ddbe67d5098dc60adb51ff884c993f99aa217262db05c6c5a60188661eb3af1b2c48a970b9ce212285c802e97cbe502673631e2a14316ab5b46ffc7e5fbe4657ddd83240996bf74472b8d640782080f5dc2308104123bd01c86312678618a2053cc5045f327c11f057fa139346bd86b47a1ec9f7f8ce551e8c7c63c22601efd984704cc637a4877b45ec40899db51b357396570ff1efb9f8342f2723f4322218ff93842de9e03f082df0d620e3c86e4da1f836e08b9f57c0b721a9ce4a92ff109356f1b10a55cb16740710c59f8eed2062adbfc1dd78f390d4a6badbf51fa96ced8f7c4b6ecdf960d96336860002229aa6bc2c295305b5451e2084d7e5b19dce79cd2dd5d12910495dd9d929eb283d9dfeb71e9cfa424b99d9290b2bf01723bcd6044aef27b3ce6b13103f940966439c398c7bebbbafed71fe6dffe56c6e4724896efa97079fc08a1f148e1158536657e0a3849d05acfa3aff0c11445e391c20662aa34d15a9fc206831a10d05a780acf07939331501c650643c89ebb7bbfbd8facdfc431841cbe27e690c5c47f72bd07893cffee1d77d0fd0dbf27f6ed3deb6568c39f82df74964b075f82ff499005e2a1d9e47ef256d84c023a38935cc93acae10fb98b33e976f8fd902bc045507431dd7f4f1c47f8b0c7c2431e93df81c76437f17cb0bdbfe3ce1a10bb639facfdf716c44b24b448c871018fc99f33dcb19b9a403c5afbe1ce9c446a51aa70abf89a32dcf195653371c7ef91b5d1861081a10e58ee354129e5be250fcac3c7a2ec328c7f963f85e6fbcf9f381ccbe87cff21f73965beb346510e62882002c9cb920c6c6828c420c3133308893202259afcb6ee0408833dec1f160376c105185c7001be3da2f518ec258bf9bf8638954088cc092a3620b16108066e3b1991927b723b1939ca45988a285122678890f1a62cbfa390aae87e42226b40d494686872d24a5424152c14e7bb673def6a7df7ac6701f89cef9ec5fef311c0ef7cf76c005fbf7b96c173df3d93f1de77cf08f0dd77cf66bcfdee99ec5d36830032321880007c6201c0e0821e000ce1225faad0b3d7cb973d7a06be7ce9a367ac9e853fdb5ebe5ca16730167ac6d3b3172f5ffee8598c972f5be859bf7ce942cf2a78f912a967305ebe04d2330a5ebe0cd2330b5ebe14d2b3175f5e3cca17eee3e05112c9f25d7894455a7894465aaf83477944e773f02861c889e17bfadd3300fc0e1ea50c59ce509fc3a34ce29278dfe151d290a5c5a35462dff1286bc8d2761e577700f0e5e8b45c38177f2bcfb7808230b78c0abe3cbfc53c3f86985bc67c9ef9214b94d12d634c371dd15465e490284945bb529036b206e4e9480f61e20508fa7979e79c517296ff7283ce12e8835e3ec50508fac1462e454d03d1b60fa5d8bf97df353adfda2bd008284f6b9618212d41c10a4d94a1412a8d550ff99d5508d745f7e6cad7cbdbd1f91d1dc1bd9b73de9f2ed7a42e57009c64b0018c923623389a3b546199028aa92c2700130514526a5335b830a64889872a42f0060458485dd124fdceeaced7792a4a2929511c87b2fdeeebf79ccaf1cf77dcf1d8bd4e949beb3f16e5ecbc8b345b712caae51d5b7ee1bcac4d1c1caa8cf31cce7bd8eacaacf37aa7a1f3f2a594d7b85467eab88eced79048e7db07e71d8fb04929a59676b4d2f163b21612aaf6f35a0d8974983c263fc7d6befb56eeba0f2ffdb891c79cca0f961f9301920a1621ca45886a4cd311425d4646492a12e024450d165046a0c51134b98497305ab8b93a12c5a5650dc8d31116ab755daedb627d72f2880086228f08e1b7be8579b43efc225a8bd56239ab755daedb627d720a7da1f86141d585e20662aa343994dca02705edcb3bade862bab74af42b9cca63b24a26d434506c9a0cbdcf0499895c4cb79579bee6d24255eef0462b2f1d3d0dcc43b25d027f3e07763ed5d5eebba679d0e1186b60f999901c0e5a03be7cd9ace150208672a8e955d347524d9f5873ae1b6fa63cd6b9284bf0c367bd6cb1a884e0eca72451aab2f091030e567c3a9557d51c7913721a8e39a7721ff91c1e73bcb290ece8fa8fb2208fc99df269f657f64ab34ca82a7d3e44459924658c4ca52cffe57d9d7bd779d779d7798e579eef79fdd44f505150503fdf5e235af3e7ae918c6a21b74c96c79b7f2873268f6e5586cc3c1a72e42db9e334e229dd1276dcec572d43bebbb15e0d5ed53f24b143369a475ea369f295bbffb66de338ce5a6a3fbc61bf5b86bff7f2bf297d4ecf22b946532c9e463c36937801dcca7e4fb0db43fb9fcf1a35721a96ded0c869d49cc628ed0dbba66e2beb86ff79a01567ae150c6fcc0fb4a2674aa99579862ea66bbf3b36ca1818de90d97a94d52d63e2b1fbed3f236ff2120392dc5d59f31895475ee5342886794a2e0d177c2fc9fde4a55279723f450ec8aa8cc39ffb6fe23185a35676ab9621df4bbaf2e9f3e4979a03262dc4f2cbf4d9c4f17678f4a77f50e46087c79a2af7ff60e64c76ab2c7f304346ba95d3b05f954b3041e60e97e0bd8d2f7f6ffff3441bb27380d33a3c6ebee11cb22a574c3109335c4f86db5329c704fdb19e797f14ec496b5aff85c5f8fe9894b80439ef83600b7704db5d52d65894bf2786c7fa2571a067b244216fcdfd904b298ff526d54454135252ddb5697fed373c7c538691524e3aa7e4def284164ca594fdb25bccc09d52b63c218512f9da65151df2c30f59b56d9fd72a8adbc6a396a738d2a62e3077972bab2c6bd965ff7cb73e32c5b4cbec644c0a75ad56ab35d1fa69762885ea538de5513e3d79d8874c9ff9424232596c8c51993e1306bb79768b683ea17ad639e9e2902f6bb9f328df6bd96bf098329fe45386c17dfd5af69ae4216bb4a1e9337feee0f2266bd9b9bc611c448e759cc065c763110bd95fe2b1d964f9b3dbb48a658d36d9e491cbde437cd06cb277e0346c5c75e958671b57603ad6796c21f2fc517ec953fec89dc76e326213e6ea881644bed0b2e8a0e6090aca0d63b2d038b0d2c30942708511545168454f96dc2c3da9ba420a2a6833a98799177e28c306aa06da7cd9ac618153163cf86066852dd4d0a612543a347921a9ea0736348a1bc24a4a926fc62ba8cb1599ecd9a36477a78d20e821038a7cc8b633e0fe6b0edcee72b526dbdcb96deedc9f69ae978bd1c50d52ee2e5656d97f00b9bd2c6195bfef1aaef7ff1cace103de8705542e4cddc72b70fb136374cfc01f4d28cafd0f766dd67fe068420ab9dffb10fceed99571f1f835f789a188c3c327c85cff7e871e78ae61da9cc9b3fcfdd75f7f77b94292e10706c8201efbb9eac6aacd9adc5150b638cadc7586dd32e87fad2e6dacbe06e176172ba4dcfdfd0ffcf66096fbeb873930cbf5b9fb436e431bf53b9eeeeb7fffe1d1c107f128f3377e571ceb27b2be7b8623c72c37e6c02cf7372ea17f87cddd3238f013b9afdf12294b1cbda73f4322efbf0ffc6fecff9e6bdc19cc3d7ef861fd9d47d8e8fd091236b7af453166c50c3cf78fb17e8b33a898034fc8eda778ecee8a653826732c83ee2b7337814de60d96cbc77d7f7ffff4b117f6b1dc2d91784c8ed249964b3d7dee0d91f7a874ad56543d0c2a24d14004000000a315000020140a870402a150308b52204ffd14000b78ac404c542410c843711407312044210c03310cc23004186408328829a74629000a970be6102be5fac692ba2b261058a3b4d35e8e1c90abd043ec5c0fdc5cb83b40aace515fa310c87ec1a01162e53fc05c43f30c1a425a5815177d3c8158b02a2655100358e35bd867de9c902be864c5cf26392d2ea5e3b052f230b4635102b244356698f203a96a6b83041b7a07897c82ccaae640a8a378f973fee285f022640d01a5f2a59df0cb1785d30a701085b4ebccf6401fda74df48994899a5243402078ae404a1f08cfe032e239a978b56b3e5cb66ee4c3968d6517cfe4e84465a688a62bf794f91b22cf543d059e0eb1f4338f785a1935688645242a4c63d47d4a506d6cfc27b4ab28e67e8bc4e98339597877998b6031da851cb28ef86e961992335b63bfcfec48e6763f4a72d4696c0a0458b230901a44e35423ea8dfc6f65c5803660f4fe44293848c6fd8c0f200a4155b89d03bac328ae0e43bb34ca7a216bc7b0f2831f9d6294a147146a2f5c21ad2f96c52b88f51ce728ab05ec801888f9ce1e50b67b9cf50311b3f0671ef9540bf666b5e6d8c0e15c26006a2e4278977687120d1d817970ae29bb3bb119cce30a9ed7d0b738389441407755c9773090c95626d09403d4bb3f5deaa2fc6ea47e4b8a850d3cb37670d428cc8417c9765aee509893a3928ea9acb6f4ea4486f8ec6b3ba1bfd6977924957cd5714d6ecc9501a0190402b037793056ef43f5c985dbc7c8361eb7d6babe76b5d41702513ac848d797208b8883fee4ad736e291dfc2606e8dbfe5d6632201d4fea3648d214e669a32722e1b323180da547e1e413cadb479496a405a64f29b3670ddb1145870d3123187d17a41420886920cc7c2e1b3e2bb2021522f02243be59c0a715e18b2359e0d92f227e08758f38ee2f4da111ad00ff1ce6097788ec327235e074b20e3eb2fc00699fdc1be6fe4b6e9060305729ce1d4280af9313f601b0f6ec70fda573ed074dc189370eeb5fac077d80d475c3de1716f3180dc8e7b9a8639a50607a58ddabb89ecb9e6550c5820380fe4fefb6db618158912b2c16cc0c8bb733c90c3721ec89edec3e6b00a08badffe0b79f83aaea08038671432ec2a3b503d66f019c29eff9efb18bc12952c44d22cc1d3cc07c67c7312f435a8901ba3b5fd121e27956ba6d2d61ca4d7bd4c9148d806d6256b8c82b6a2e5d4aa91c045b8828a49ed1b03c47261e65d3eb4a2da916ae03bf6780305e7e374dc2da92b416f116f0776b178b82be5513f59c7a9e8c42f8dc265b1b81bae8a1424961e9b8fd04566f5332fca2eb01c55ea2e5671f056bbe01351165d96a3d99e85c4dd3c39bf1d8a2e9eebb24d9dadf4fba92601c47158f7716167f041fc242244cc707a87f82aea3989ebeb93958b2690f1262cf3f86ac82d3e711289e4f256c7c0a0d737e86fe8ac2c620205c4baeb83d4f5429ed7dc9ed26f7c7f50c68a774d2c3c66460ad94950abdab83d47df830950ab3a3ec2097262cc8759f7718980db77e727777b64fa1f231aee852dcb560033a3bca174f595900f7526081c099a3a5f972675dca94c594b56ebc25feef001153e221b41a08be6f9f9a8f36ee689b47e13fc2f20721ebe99709b20f69e0c08c3a11f8c9d84ebe690cc308d5ad4edaaf6b1f4b694630f5772e628a703d0e66ede4d07f2d5e9bf1c5203888692506863e575665a7d62e2585c4eddee712c3c828958c09ec7fc40113e3776fb30929e97637e2d828f7b8ca721571a72fd1e5eeacf739226ee537092eaf35ca021b0a692d1b5d5247b8b841a5282c21ebbd8b0424577cdd97307cd20289ac516ca8e89fe7c8c850f4f6edf35cefa6ee6e767ccf53593dbeec981726c7e831e8ccb515aa38484447f88feae8f2ad7352f1224377dfc63c21ac8e012c5c0f51f1fa12a04ee062403218efeda7f75351740f4d18297d11a900f3c6d1678bda37232ca4e5553025e376d4a01d34a15a34c25285d09dffc7042fad2484a668c5171fae4f2b8cb66b0b8d2cd4d2c542fa087318fba2ec8cd8e80522f68e8bbaed6723afdb638cd55dc508aeab5b88dca7562ca6b768933924b0bd63ad29ed393a6354f5eb59e7603ad18aa8e5672021a2c109b20ed7530435feb08a776859fd66f2c65563c0cf3e29746292093cf5b0799c43e45a6afd8b1c28f65925d7e58873589d36c1dc9102452db7520969944493440474d14f28b7e67a7c1c9dbf5ad43b451146376f196280609eaca2e7a25c8c4b200da768a3b60595e1b3e02ecd7194f8a4f442ce4c198c9be8b40f88e369b61d4825b427f86c33030752390bdd991ae4f054cfefe618c4512d0fa43dacd6581428f975825e30bc229c80c582b36760555dbfd484d0ec0cfb4d6437fe7c8d63f89c6204e9293f4c3c6e0cc9f257dd58a540b8c4cd9b2bac3328f4610152f60ba8308775d935a01f7fc157cf72463f353b041d2001aa2ac27de9949203864bd6f3613f1b3b9ded6f8cbb76172080773ba28cbdaf718b5978244a0af25ea810abba91a10c79bd6cd914e8d343a2718f1130264c0796e2ea71a38d1a20a72fe7ede9ed21a2d1910498b1a41e25d00ba477f87dd4a2c0a89285c20164777a66c0e67ced8f613c60241db66a2ace381029f254149cbcba763dfca5d579cc165cedbaa33ad8a734646b9fd9cd2dca528f6b395c07fa1ab3c5017a6dd1e783e0743c32006922944ed0c5fabbaa1f3cbe057b3b130cbbb6ca2ffd57a35e3129cf61aecf416ea16817a324ff9327413dda1c7b0418bb9fab23f3aaf6d6c2792a2ac69ead6e712080c6cdccb3bd33ff34e454f01b7f3767aabcb9c1a0ce05931ea7fcca45a3ac41cbc2eaca5ca58ae4ee5867406ad9b50cb4ae2699c2e22a7d22e546b8a0c1c693120292eee7c5faee438b850c3c989dca76ef711f4073e0f894116515a62b09d7a298523cb449850189cc43172508e4c56206c037c5a4998448e7543d5b1b787b837640ea2899f524461b0e14ffd2a9fc5b667779a80408abd1d9dab2a302271da69b8b526185604aef08458048d454da51a26240ef1a82a2fda7a5db51a94a0393919c826074340ab880733a40806037a3eeeb2d48a15fa5a6741b7b0e05abfba480d92a919373ce4e9f73d66734257bf07f0b89c59f647b82ab6566998a8cc2d0bd93fc9b17ad17eedf24a816fcb16b5e0d20886cb1e3ef4eeaf9cf8a73b7b76530f574dc7552c13ef4785d46515b8809a7c6274cdc2c5234090fec5f2389da16ecc409792e01c1b38b8894b29ca0b9e3d2412157b16bdf0d3e610913d7edd960c080688b56497f7505ad93b7e2ccd884376e8babaa83c7b21833d9ceada4d737bda76d896b9b6dd179d50268c29272b34330f1e25f7b2998296a4065f7f89bbe5676fb67dae765599708db5b3dbba8f5d1d85598b4dea064d8d37ef790295320680def466f04a7b7af7347d7a3c7e7abebacee3a87e3c0cc4e708608d463af84d5e8d631afe3a6df7d63c203388b6e841ace09796aa0600ef0ba9221b129a28f595668be52503c507966baeaccb6518982367308c0d2322e544a159476c2070e997420e500c3e4874716e7bac7807252f2c4cd7c47a215e060ccc91bc4be6fc9513fdb785c6b18fa1512d39c75706ae5e50247b6cff44910c0886649d057acbb31991b468ed76758cf67d197ec18ae8d2e3702e2d29aef852f7eb9570e22325f7a5559bc248e3857b06dc0cc14b2e795ca8f27b9b57b9703c810df4753c784700cdb41caa09a7cc73831685ce83746a1349f146232cadea67a5dc567c8e57cb6e52cd4da634674e113f10ceeb817c610d2bb14696bd296c8d01d607d6adefe224e025c672b48603a3c4075b52cec447056c132ccf063853984892423bb812db3cd57f2d3f2592c4135e803abd033b8a6a5593096fd5f183cb8ef5f1923c8d4ccb4db391b427400ffa05d884bf57214957173b717a0148f489cd081a0c8823c961e5544a7881d2922bb15fc6a2dfd03a6c7d22eec2b00ebe7ef74679a3879fe46fb28534a4e2e8e86b5cf0fa9016f22612236f23250290fc4d2ab7a81cc5076e7777cae843ee79990241ba21cb46c8f365e828b3463d1db9c546e58a07f614fe27539289d111d539f0d74054db387f9263d0637476bb0e6abc3cc932991e568cc89db5a70b82a4ec7cd1115d7e926225e07214467e368be89a627400c8f5456cfb0dac4563bae382948ecac42643b182074216c2d32fa01911861df72aa085f6595500f03be6ced07f047c443f592389e541b988b3112d6d147d989d839ad73557da48c1f2f08e3d8164bce3b71166ec695a9338e07336d955370c3b83b179f383ecf91a1824c2a778fdb4a57563564ef5727a2648026932a0b7c40fc8d3fe72db76b29ff69bab403aa004b93d13161cebb1487b2a672b7fc14d67b976aaa76825c886a15adb13c69a7060f55ba291cbb817b8d75a5901925be219ebd4928d5825c1d542870efae5229e8788b2311f466c7018673f2b08cbd849dc54473bccb987198d9be5f6965896699159446cd087b3b04f2a6900a88588a08077fa8876fbb5d8487d33b6bafcf02cf6eba9e97a5803bc1d509cfe46e6a1d91c088da37f0a65369bf4c725e44b56f2e7786278eb72e91fa17ec21f5b4b3d465d24428538a2261609a06d0774aad0ba85b50bf940efda7f6cc8cb9d41a6836c608ccfc0cf8000217423b2bed8f2eb8da16aa4862286c70715d2580d075f2819459a6e46634c520a38ac80a987ba48ffdafabf66483a7760ae39b00bb8f738e29638c4ae8195af44d55222d19a3f4c0904db48a382c4401449b5014d881c2f38dd83916cc5c3001eb80dc07229c1d622505855c42cb2a0297bce4b74976d0ea2d95c14e8c290b960d1edae621c99b650268c0e6d1284a9a02033517c8ac88bf6408f4a342016e62db6556b437d30878c34a4344f011585e544afc2c87fcdd5a8a42ec82b1232210d916752c0a81c25ab306b526ae59a87625421afc237c2d430bd5f71c15f3ccf47b8a97f9367c42d61f7b4b9b44d94d36e023b1b77448b10f898d752699e2950deb0782da90d849d1b877206c9900c4dd20520ee263bdc818a342939110756a129567f00a68ff3388aa664f78eab546ad39326c71a28fdcec13ac39a3d1be68fdb9eef4113f5f9ee07a7178deb2f6fad0f11e92f49b9f3e4cdab50f95b0c564c52e5c1066d15201adb8e84e84ebc5c77d83ebb83bcbb435be6d9ad0a835963afec3598d968ea2323260505b2dadfa99a7e4367f79fef57a8a17e1e992b32470a1050a1317e79fbb98ec7141ec5da85b8530aebbf4ea39e7a03cdb45e610489247b92b2f4579d7ede938314fbc6279ba2c825d0f261bb538aa840515ff4a7b6726ca6af8f5f25c0f33c32812027b65f10da2d9b410b01f0522c8fb6853758f0031faa5a992b0c9aed4fe1451758a88092415c7277a8823926220bea61d101db2b41553a9474bddb0d7c54572eb4eebb11cf0a71b4061ce252128d96bb9e7d58bdf65077fcaabb9f96cbdfaf82d7cba35d23c46b536d0ad4f555129a7cbb5fd6fc5640dcd059d5ce402af31e07a1a45696808973fa01268e6aed45106f04f8f834f14dbf8339f9e1c18ead87a0054dd683c521cde1a284d1fc17a7c3324373efdcc4c99097025ffb1c19b76e5459de2c0c7272961452700957143f624324c4309f3dc9502e6a68aab3883f3d2d7543f97137262627314c5f8e847a859bbb0818ccf6a4ef431dd030fc8a400ce46ca56a94609f95cbe2086bc3e1e0abe95b5d76825c2bf926552f9b118c15a6b7ab2d2377e590d865a65ac8d225e0cb27cbd7811ae02f070965ab0173044af82082aa7ddc118c1acc61755659d085204ce6bc54164e2a61a06a256354e8ee90948c42d190d2aafa524c0550da409732fed83b42e9ca4e31df2eea7be341907a093accb80ac4207929dce2773d337049f2a81cdbe634a1663dbe445626d452fd5c230cf16a82ea254236503a97dd9b87a50b18d74146818a3cfbeb63e2e5cbc36290f0bbbde29c28eccb59449553e2e9d94c298cb146c4bdff98fd1ffd98ae401e6978c536b0df2cec1703393ffdacc87daa3cee32df4d2c32255cf2e3cf32484dd92e860205409c883d8336c2083a70174bc7dcc9c0d9ff9e5320ee6c02c66e876393b7af9339489b7732e2d78ace9db321148b75f80785995a1f22ecdf0ff8e32e7bc12e7457343fa01240700acbe0b61ad17da04325ef041a95478cd8734d0a1efaa32e2188a03b41121af137ed826a54bad7f4ee13ea43fbe9848eb03f69c223b69ee684e349a6b52a4473890705cd56e4fac769cdb3b40a7a468cf109184217769d308db24511230a3de7e2b9b5176dd50cd0f5eedd6271ecb3c53abdf9445d13643caaea0e5d66a7afb1935b869567bf66204bb0fb1b74a860b14f377d068026e44a0f5c067eec21b473613add719acd2d5060264bc22105cc4501e6145b0b151ddad47efcc78d6b325ef45e981045696d5f9ffbed13f57517a23b46f1da26fd0b2a9df360b0dc5a62b5eaa3f43008004a210ee7c72cae11d8684efdf557ca9af50eec619ec8a0ba7a51d10eed0cef5a8cf9c21ef4c4a996d519dc01e64c2794c325ce841a7f7b98242553300b69cd34b11c16183d4e687922a327cae8ba0e2f680d44992ed5afaa46cb81921c2adcb7a4362fbdfd6c84744f1025f2329ee783b843a773bc4cff79ddb81f11a9541d9cd449d56119113c480be335a1fa7724916286bd65f32c2a7aa19b62a531ab8e00f8cbc6737bd60a621487b313bdeffe8183c57992ddf9068b7a31745c3217d081bb5c1228a1fa48c873ad721027800621c9a8a7494c1db2790baf99b1020b169f0319e0cf5b948fd193d1610cb4ce7234c2bf112c596ee63e6b33361a9d660ea5035f9c602268a00d8d4c84b01649e8236af54ae8cd1c76570e86d728105b1bf950da6d6003988af28467200a37897359772c65497294f42a917924bb1af2be96e80b96176456b46c03bc0952251612856eb2562910ab6cea192b86cc228c06975f4428a6e8a9e321cb44f2d22b5ce9f06ebc240bcd147bbf34a8e18994749695f9b955e80e1177cb859df4efcabad6a32da86d717f06b0c2ad6198462cc216bacdef72c52b51fd8fca4f1c1dc8da14e3c446319bb338176bc7ca8c60ad5db2770a004b84b533f08eb05d827480b8aa53ceafc78a08c6667668a4f4b6293a6a0fad3e0f2f9412df7220ff2aa4b0c9a19a20ec9e463941313e052e281b7b7a5c692bd5b160fd7860d7ad2b9e07076a9cdb3d625e1b0159d3732d15c729c4a8cce89b12e4f1c172a290c38196d8dfd0f3a689fce9208600871670ccbad71232db2dbfc857f5f2327b5099f54d053f77e08c1a9411e2200850442b96b10f2c1955d4604888caea29904147448ac1f0b223e662e57fea048806fa0be2f67babe3191fbf93937c727e4a42ceba5c8141aaa38d64a257c6332c0cca07cd21e7cf5e64914955b2a14d148bc7ab33a41328630309470220afd355a2609dbcda016b78478eea75db46c40620067d78755f8947700010e2c9fca0da6b8b38ab61fd45dfd0f16fd0d9529d55e0e102a8e36bee8ff9c2139426db440c82e423083180ac61d0a5419fe5104994ee46e27259349c403692fc2fddc2543c762dfb6f674ef4a7febe41347ef3923fbed631d8362dcfe948a83d4d36263e0faaa68af0a7632174d89ed494be754e5a10d0c2203cd626233dc2c8572444153e30d7d7fb9862960735f0aa26a44b59e2fd540410b8cc354f7c24bd50c99e984ac38206733453411617b1e1dd8f7858f95eec046696721c3756a7e4beb118845ac4b0eb5c1b5c3c312089c80dc13ee75320266c619bb0f744fea26f6ba11f7ee8fd6d7073227c7d9a7293f8bf07851251fb99f259b2e8fda388ce8bcc2fe20e25722a8f58b8470601063f2ce4da5f9a0086607b4739e50417687f0f5b1ea13c3b87bd113f6727cc19516a98f6770f813e5248b7be55189a857710fd67a522e828f2c318c222a31b9eac5f85ebd18a7a74360791efa08cc0c1f070d78ac8b6a542790756564a11233208c8b2a768a8b29adef9ada91e1db690721713d7029f4b7ee8b4324ced6edddbbbfa911cb40e129e00f7daaccbd1aa6639fb08cc8bca87a4172324f1532f7b41692fadc36b185f1af9725cf32b6c30c72f9c373087399f44ec3d8c8a44eb28cadabe546e85fc0bec1a4475a6b33961d92c49eac203b33571529cb795fbafa2e503045a770e00d1ff2224a6c38c33911f4671296755ec51e86113e682238c20da05a1e921aa1e6d810f3e4412670e6904ab253491300c55530b492f6042bd22371028c7bb1380b8f4ac1a841ba9f473b6b4fa891e583570856ff925f4496922429f1450ce2253ef9ca049f7537c20c6fa0e5d1f95a05a0e388999890f2a75d924222de39b85e238e4061107a4bf58f798d7a1526b7bd92b163c12d66c5b277b40be2353c53c9b84c3f3d61940a28ece5739846c5d19e21d694f59e69f9f233968e20f67a6ba725f5785c8dcc53a56068b5490db9c3488c9d12f56b29b672036d192dd63d209647fd82ebb2216b7e42ab29d11114a3f6cff669adc6b8a2558a4c29cc04a4067b38df0286e305ec240f6a1ef827f5b086676cf2706002338def28a16865798117d45820f0a190bb13e90c010690652cc1b42612832e8da8443ed09876ef590fb21654d2bd5a4cdcb894c025607f26bd70b72e708e2cf099a51095545b00f64628cfc546f77c3d7c438c3b33ab6b26fcf98e3d005d2957486a0019483794b992f0f21af981bd24a454201842dc164f2670a6a1734330d01f18fe9644572dac4bfa3c2e033064adfb762df1618d6df0faaa61e9acbec42c70eb47807487f081a599e408146cb61dd190c07506f80d6f53fa3e85cace9f540a3444ac9830bb68435f8f3755e836684ae62c839f550dcf1e3c3af3eeb0f8d2131798e6e8a8ddc350582cfd43cd5e0839353335832009f6ef2259ef6fd75aa8b13509133c3af5a873c07d0a2702c7f7e806134db2250f1e4d5f46ed1905dfe058061845b462c1845520086d132677ff985b1c27ee279fd5f45a23e355b85f5cdda0c2b209522d62d3bf5c808014abcd71fdbebd6b8ee0ffd40f7054dded04339a6d5424614cf41553ce427b7ee26105fb1788f204a90af9bef0ec368f9a6164a3ab3ad47236ec63589b195972e971bd1b38676b8f2cbc562939cc5c28e82c463b0a2f3307814124629a514c334544c7a982ff318702124ecb23924c92bba6cfef8c6869fc330e85d2640db11a96f9e1706746dc91c0ec3880c40b82a3649f0461d18ba41080fbbdde29220f708665ae2494a2388c1b8a4d3e5f8410b64a3c33092b350290acc7cf26c8bc3308697a8f038e47bee0b2ed6870c83537939132c09c02160b309fb41be1784dbc0a97a61b0e8bb14171a7dcae68b5365ae81d59ad1dd5af72d805d18a758a8279ba460a061f85e46f094e5aca83bdaa5da297a4d3aa4627647e4e5260bb64b3c28ac39083496052b8c2978730074586b0d57619418050ac4eed3e310488541529604c5339964626c7036e59f2693dce45305f52ca0298ccb349eb5f70a29e7b899952785a1928f05c0bb0660c5bb9638620df44541e5ad64d304437f04803f3217b2b5c773900ac8ab30c2f01b1cbb746b041e9e12eca04b848c08b9d646869c37d6594327635a48e62a5f8bff3e62dbf4b7dd2b1ef0cadf95208cbc280c9d29775112e512712a8122b71f01ba3b1fb0b3fff5a0d0634c06dc20a703ff7755decc9ce4a60d608fcb133d27a4c92068b5caccecb13566827c5388ed79e1f18b0c98725ad00310d5c84a29bffabbe6e9ecb82d086f516008a27290669b110e96947b1508c949acbc288579935ec137733b1029c06b157c392a6089682d18717942df1ee74aefa8998fb5022693e4c4636d34c4d128d332c8beeb11967e7b4e3ec63855291678a7590c409a8f132f2ba6a5e3afa2abe240be65b61d062eea91d8a4dba2777d9e6a5b530b2f65be1f1be70306a902e7b2e263e2b2bb2b503b032157ce9ca83ff10f84718712522043c6851f5e153cd17a2a2beed6345ef96287d8a19e386937bf7cc78515e950633c2819815a9ad85c5b12d593d31eb3b367dc1c49248b70778c01239294e466d5da86fd716dcac071a57a51a7f79a4ef07bc3ec21dd48e55e2b1b688f1522a3540183f131b62a858b5f22db98ecea838acfe42eb7016504dbb623fa72ae3667ee1f3db29e8c2b64bee35a4b4a306165a4515f90291264e51f3c538ca3037634a747830dceb2beb06a41b83881318a0962cb618c23939ec3d63fc5ecaddb155af449ef15a89e5baaf04e714239e03792b9e3ee17b4cf3328d441d203a5effca12b7251117905b569b16db63ad58a415ce871c6315e34a601f7e332379b6ef4576f7769d072d8042a4c538d8ecde2c6a2c91920362b085bc4e99bf8b66c622328fbe5f7bc4cd4ce0c9488631392314e039af2f96a5e31f6911ea6099ad4891de9f789c009366a65609872943fdd015c9b6caf25a351d5c37f9232752740ec69d9fa409adb371be6700f04285d8672ab4d3debcb9c19ce079faa126f6b7f47bac7d02351789a640b240e8ac6e2ebba9bbf592640c652c0a47ef54296bc9ea26c05a56faf4ee1cbe28e3ccc54738c00208605e0cf6ab0a0af8cdb1299f97550b71dd020f631108c07ddcda14b4e0a26c703cddb06eeb9c1c29bdf050ca035658f1f4685ff9e682450988a5841731c57581797f837ecaa04944ed0a121f02a17a4c2fe35fe64fabfa16ec8e3ff208bb354ee1090a3af5a6ca32ff8cc381acc981d56e22ebf1b270929135f6903b0f197c0c0dc76a0c0abc424ce8625d8824b9c959a17fe94c684124785b17f4b745a73ccf5ec05313576e326743431a1d438d21d75b9e9ccaf59d06e7a38ea3b5171efa1a53b240b2eca7749686cb66ced636592c19a84c546ae1c83e6b8914abd2ee64cd3c23983c33a50467184292d19e88b289aea8a8e7553e2f46320513f9a9341667146ceaaef03c1b03dfef28f1182546c314f9a68e3fde95c99ab3468c036b4041b0fb1e66cee4fd2303fe09813b75f0034258176506d7ab918f92b4374533d82ab60cc93aa1ce63a4f928bb192b9186b5f517c0633984a82c2d7125dd23f7c2103bb45d87b5d99f66ae334b5419b7b131f1ae46d9991fa988b5632fe1e39454a3b6694d2999218c37f0b1d622c370e7a7411fa8d2461431ad90f579cbd3a7e1541837841c880519fc7d0d482c6e9fe68699397c47524c3593f43f0169ca3ea1024bd12d2f9055d1b2c7185918ca6d0d41bdc7618cd8f288f35564011dedeaff528f90441e82b3535fad983585b9166c611f88699fb4234f84a7af7a76f189aac0be2e5464a6e6de580046262051cad6f5cf2d10cb40ab1402a2ea53d2a57aa2a03534850d8c4cf94320c679d898176f41f65d3551d0a12f324a8813d021b91019f1fb7d2bfbcaa167a623d1fb796b4c4ee73e7b994dfe3a0ff4c0a2f9a493b8073625a31183c515df827e033eaec71cd3c5c8b0b863ca7561f337dfc6626ee06dbc204b93d77cf86b1e5b80b6365d9d3c1a3f1c1bce13cf1a8be2e11ba5966d8f3d7049020a92006caace0eb198f0d893ae3f1725e4bce789495368ef738f20e59a85f6ab3e4aea69d20392e0c19115578dfdbc89fb41db5817e0e98102e5792abe9a6c23fe9ce0346e6e47ee581292c3b317c59bc2338bd875fac60b75447f0e797fcbdd3f0c067a4a8fd17a576a917d44284a016e0ef870fcb30283916fd8b9637d2afe088df2c120cb082e304e78c29ee5758608b0564abeb716bacb47dd9e147ba3f829db1f0ef9a50c181517b3bee47c201bc72e1bbc86b64c4338a237cb35c5954ee208e0d8366d0c1cbf6b376f0a78cdd4219d65b5f59a1993c48a3b66081be2f190258c9f55393ba34ace7c2fd7b48387d5c8a64216f039f8b760da25dadab1efbd0f89858b8005c8a5486a80ed68f70066a9cf9ac80dd1ad826f4e78b5134991a8cc89a7b106f0fc6371498bc1c4efdab740c4225964557e63f45dc0e4062d36e4547586b3073747a94476dfe7f9facb0c836ff3e006c21d7e6829704d54acad3e79ff76f389cb7a59e2786089c05b163437c4274fc867c1252ac14269688e0e66d296a6a2f848a54f0d6381b2baecba38c7d68dde03fe52beed6e3b9b4a7cd697d68558ed372621740349c576fddcf7d5f1b4c6cd100cc3e70eeef1d58b6a513dcef814bb2f2f2b76393c999f8e7010147d8cd0fcf2023e0c200d659014ee1778fc91e1f4c78cfdaaf1bd44849a9ea1e8955c4fa7b229ed434381ed202483279340bcbdb0cac760d8a8ea36680d61755fb2ddf27450ce089d672c9badd73c904ec7ae759f7cb61a2db84990063d7e065079e769fa33485adb421abe96bbd75a6dc00035766888b7d79c36e6afbbaa88f5c627842966c1b644bdbeb223a90370cf646c28a25d63bc66bed1dd4a9410c68b802343df55694f8557ede545ae8aada2d06ee1de808adff59e616568149a404b8a4915a0e8543518b14680c945b7cba01e32c2450e946172b71f24782ec6670d92c30878dec5a08f1a3cb989dcbc74eec8aa2f7e2f7ba4c20285b17ae26ea1aa71fbcb3878edbad0c0f532d99dddc5befbf2cc568f5425a0684f535d126470f0ed341806f4a0852ea22ecebce7e1093af6a4849898901497a8492a006e9f336c4e8356a2cb15aa3ec7163763ddd4ab160e0c1c050a32cad87f0adf3f9b6fb584eff736fe1f03bfe8d3426ff0e7ff81646d887f1043eb0766fd90f5784e9686d20479f04ca272d85cac4aa9512f2652734bd720103e619f7ff30cf5115edde481b44b0b5efbe4a784ebfeabe79cffbcaa1139172e18b25bb5625ca7dd928ff739a8a0f194a4601b74ed52b29bf9591585c59c394c623c255f9d3ad4c6ca27a76ba40b4ebeba9e1330a42cb95b58c25bb1c4545a9857e92151a06c7d84f7921f7a412187d82b6ccd96ec4a30c3d1bdc05e85e4613b0ee795689f30563661fae1c32404ad448fb06602a95c5366d7566262fc135718bbe498f06c8852f92618c9658462cf2878f925927ea5aaa1bd76d83b4b447a523bb8ee6754414eb2cd97bd150db6423839564a89d59073de43cf21c4c18742019017a21e5873b489da750db7f25cc18974c671e333bdd1ff32d0c32b8a194a9852c32a920ac67873b0e117950ab6596ecd0a0f6ca31fc226130d72f67cc4062414d915d2e8b331580430dacc7b70c2c8d4c77c2198fa0d6c7fc0cdac4a1e4f52749148014d4b6c0efba512cf659b9699e43a5f83919a20f5bc345a6475ddeec73917395d257de472c74f240d54fab1bf5de7b8ecb7402d1a903a47bec58564a24019fc0f9f3e0a8ab03bfb6dae3ce58588ec3f29c882ceea3669ba9e4c22af003ae32d5b8accc7325ce0a81638de5d836f1f25c55c17b41d8563ab75c2e745e495ccf22c60366c56d4fbc5abf9efb57645a3ebf59b1695bfdf79bf832281c08cd9ecd53ab6fd2308b2bbd0949865f217f9f70701d5f9948cab48500c7239638f497cd96f2a70849d676a707087bf259edbf2a9af738484ccb3553abcef954ac3813925132395c3e1ac9e7194c73e6d0f339b6120f196b9b7d996b135785a3d4fe3ad64cccc4979cd5b193f7cac76d86550e5140189d77d01cc80e0ff85262ff5d60430cde9e1a15a6f4797980ac1c618e6a8d1c21b8ddde56fa674c73d0efa3c155a66d25bce720e551c6a7ee84d4f897aa03c969f6e861221384cca13ae660cf4e9fec07389ef007997197846247f8e4e16b72114de361a5bf82f081702a0016fab50f574f38d2ccf32a1c6123e09f481c37335e1d3fc0d9af2ae04086a637aa69043585b1c2a357b93c5c5b4ff388d923c59032e6399dc8f862d86fec76c4947837049ef82388f2680ebf783ff9fffff0a6de1b33e0541ca410734dbe1f9db0a8d34da585d2fa9587b0fa7171fcb72635a394c76f8374669d921c673d018d52b92555af5437f5b6bce634d1c1074addc47aa6934d8054058404cebf9e2806aa9b7d51b84695bd5c9b273ec6b93eac8e26b50174cc45e2ef39ee25ce6ef3c2dac6179a18d54d4a3f04c3f5355145f3a31e7ef01f034354d73ce276e2d0e1b16a4153fc5403e7d057cc45c97c96e1c564a6214b020104d9e72cc9fcc8977f4bc409df7bf82212afdb026770fdba7117e9b2d08833afa41fbf59d02d166921bc2ee2fc6b665f3b1089935959e6c4b3df51ab1eb48d77c4b96e2bf9cab985bee1b2429ab41437527d452025715e12b5c4328d291355aff016d55de28cd5e2c7f2ccb1452390b8c409ef87f2fa7a45983d7d50e3e1bf7ce924ccc45a1d1f0761f05fe9382aeb5ffea816fae129aee6ff393d5b8e8a02f16f7ff4ca4939f0d683536729dc1dec101d20bfe7601d09294044091f8efe95de993fe455f1f56823bc0d2af9a376371580572e5122539e326beaeef86e2a22b9742b90ef99616819e89075dec4ba456978abe327c0a95e9c738a53082bbc6384b784abf38a556880026aa4b8a0131aee113cc60d3308d50a253ea0b67c28f32bfa1b2f5c6eb88baa688ebf71217f83b29b0bed3af40a50e48629f0b8a9adca0a79a9ed626926d3264f423ae1ba73f2e49fa3234f84ec6e9bdff6dcf08bcc363a5925874af95f0a648672c358298e670361e39321878584ba0dd37997d1e258881bde803f1396a0d6dae5e6f9d97959c6b9e1336be383896d289ffab2f34551be8411e28a889d638d110cac94e608ccc250b8b10944231c63be0365c3e09cb4e825418481928c9599f5b7691441b9ae6ffcc54b3bfcd3ebe816b2e944ae3daf5d86a4a5892469b99584c6e5c6d5a0b5c307c8a4d3be56ca45fa76c1199ae3d2915d47f9ea53483343627124bcf95102421ff20a527d60cd02ebaeece410562d568182278f187ce6647aace2ff61862549044c03a424623ad6e558bf293d6dd25ce0db98e998746f45b134b0526cdd648b0358b3eac137c7c83275500d42de5a04d3e144e019e01de79359605d035b82dce6739b93e2cf7c335d0ed7cea523c09547cc8656bfca571a236a825b3655bd333900524af17b6c47ad484e5874635eb34b8146cf15690018fc7d42b7785f244ee4a56de4a316745a8bc38b3c5506c7a24e309b13482c20bea3f32776f55cfea647c01cac1d8b9efb5c77880006636b9e711deaaab9995bf8d97b1c0118ac1308b1d4ecd8c24e1bee06f6b419b558e3cab31332c8dee3d65d7478951edfd4e5f0becb377390a7fdce55f37a2b85de2bc91cc52fe969c93de79ca933ef4d9deba2725b5d5192d51b2d7afe216e5c6866b599f9e908ef8dc3eebc305c89af86f363d922884f41c40b83942677b0f323252e269c1ac3aa94532c9d7370d18bc8282a5b45b25a2c13c9486d911c40d6addc72e08dda0b31d4cea546e786cd4c316f982e465a24ef7d266127e8390a7ae757248ba074e42d3d8e9a188be4e1902fca27eb17d33456247df02c7d09ba68e596c124b1056b39c6f09112d30101e89fdef5e5d4b122f9a5d7d008cd8d7e457212caa5a41a1f8be42c1b2fc050423f1bd867464e67679771d38b6448e0bfa932c3b477d1c54872002a30b91f47d919c9d1091ed1e9530e424a7aff935c854d094539c3aef11218ff89824645043f728a0d1d621ac9bd426f9740ab9f0ae5d943d198173212a5524cc4561ef8b4918363484eec32cd4652c1f719e97861bed76f1e822ed6115b1e754011de2a714a14ced6679e6adf5b61d848e8e4fdd98d791ac9c52337b2ba9265df6f426f1e4b9a7afae0bdc5f80101b3f5e2bec6774c0ab8b2f8d6919c511f6422588bb2757346505838c8045215187d3d6610c7987cc963fd7c148c7af84fe348564697ab3df4418d77cd9e8ea44d2613117aac474350382760b5bb614da6a12476321502e525765d550bd38a153b1cc9947f45800d9b1c0f712431e8303381b2f5347b5730d94a473c1cc99bd8791a9871423a9e15de351bc99743b0c897ae13fde3bb558025249975cd226277cdf4894eef7bb463b8cd0e8ea4756846e4f61164df54a9e74f98ca3e3280019c7b05eefcc4a40f57205c554d3ada98c419d2386c38c5c219d2b45139918c1aee30d293a51b53d44e037cef8bf302683a128de4408010200073358c21d089f7cbdeb5e0342d4ad9ac86d16454f7f2614d8523fd5b23db08516bd2c8de5bee1d3410fc0e510fdf6e417a7b480933aa72adf7268c87b4f810b1fa5c26be7371a5ecde9a5d5c1f1dbbd6850bf9dd9c8e00ba7c3c11fd17af8f8eb5fd76bc43051bb648587e25c5a7a213d10c7479f8f144e4327a79b442aeab4312e5f0f6bb69e1f00458821140a10d64b094196a3753ae9cac9133f6f4a6bc5d2b6487428bc30bd8d8acc561de30bd0d1cd60dfb9062ad957b3d4fe6383c44fc2626a2c5ae2700c38f128967e508248ee020c5e0840c76da06b022cd1736bcfc1210f6406f0149947ba068b14fd500763bb88f5209b6422b00476b245b233dc3611fbde121e2fb3b44a1ca3389ca90444df63aecf2c41891c1deb154c41365bad2e27d5b34f31174514d004ed95d7c146f483fe352e6e28614870970719ae7103f03ff6871f134f847119d1617ff63e62e2e65dd06c019a799719ad3c85d93b13ecd392359c3498b6487684c68064b1a6b81411aebab80c0907ee63db290e21e3a2d3e8379249634761aeb4b99d82d70117a2973f19eb952d6a227dbf40cd2a28f02a4acc577509a16188f2ad367d220600775adc53a02b01e07101717c31bf5f4145b40e6f9e168f109d67aa12b654930b27977cae89d52ac17af95b17a17b77efb7250b27d5792b38788afd72269b16b22961dabed90343d43684a5e700327189d400db23e1192a6a708486883124a726003216990f53bd88d8141f6ba3c930b4040624856c40b9907e89225b222f55668d23039316954898449a3f2a04b9664da7197f285bdfc389cd379a36d89ea1b264dd368ac278dfabe81a55911d80ee499a4817c5f8dce7607a5b14ecc587f0951c86de711195b5c9360b78505b2d79d406c302292352d25258f4d43a2d1aa9191446204234b1882421b8e1c21ebf750bf6bfd0eea53378001b82de3daa118b7a7c3a9c248bd16a78a7a7b72fd70aa30d2a2ccb55227c0d7610feb793650454df6ba94c16e58710f1d6b0491ec759daa44153cf091c1cec3012a18d1842419ec52362915fdf5506b1535ae8a23145751ab62892a96a882488bb28a5a154bec903533c36030d86177f19778172f11cf5e1f6d11ec15f3e2ce68021c63bc5c7f39435f2b111122fd06bc0ebbfc12f03a0c77108de1e85a195eb0dbb40cf6dad146bad6ef3a93876408106d08898522f73bcf9bdf4d0f034c2e481ebacf03c095493842123399fc6c48a41d32c9eb1588021238340107553c218606bcbe1d8107000cb8711cc7711cc76d5bdf6c16db212658dc1abbb5226b648f369f8db6d5b6a04d6823da8a6834810742324888d2c8d29014b24836a9ad50a9a8542b1199e5d4a54d7f2aa7cebbdcbb097aabf9added10f8056a8674a29a0821346e4be1d6a9aae8d16c9766da5369bcc394d6eda4c30fd569fa0ca74e9e5776323810c361200e56ebe9b37ddb19eabb1616b71e8437b99ed67b65fddd0e2aee536d2a269c9c93bd5ad4a54b7b72a19853cd3c42776666257d66eaf49a63880f6634dfad893a9091eb9151e41157ea6355ba1d43b750fa76ec2a94f3ccba99fa87050df9ed4331cb783d2bcdec7277fddcb582a758b6352aa2b339de0c97772af3b9d5ebf9b13962097fac94f6ebf9b931fa025c09435ac9baa9826db3663861592f205bbe8e2148fdbe78c18f17771c50bbbafbbdd8472ee9a7c1b3beebb99a793c9cc2a7756eb1913134b37cad1493daaa22b4a4d8ef20ee55a2242a0c9474bc42e61b2528de2c4e3591bb698c5c2427bb7f2e795af8669e5a2cec2417d85d5344cf166836a1287ab518b7dc2d529aa11a53911191dc1d648234d24159e481369ce7c72c74a45eeb3dcf1f3ceac8272b2696a89d8259ae34010e51945cc28283332caa54479ed59de41699a469348148f31336a127d4d4a7de57eabafdc54eaf2f3380e04f1c8a2f53485169bc59a482dde99ad90b556c85a212b34f190d744a234d5a81add9c8af089a8c53e6d1a51555d53bd3832afde9d900ca95c0bd4620d5a6c2bc40ac929b8cf63e6edb576a426bda04ad4c743cf8db924877b0f74c9121d1c494416f71da2085550420ed410052358f80e5e70c4121ff8e9c0083aaeeb20cbe1aeb9f061b3d7b50e6acfbb910e6a6aad14da0ebe6e4f755ccf39e7cc87f62387529ce77d7a9e779b46797888cf652d5e4fe1707ee6d43f49ef4cd2b19e495aec77dc4cf254cf75c64669d29d484600ed93746d060a1e67a0f01863f1287e8547d6b66db5fed9c36310791a8dcf26a4243d93d4335345eb55b5de84811862cb1cae53b4d83f18f5cc87ab92141ef2fa9d39756746dd99bfdca269b3fef4e9efe813d15d1e35a63d8ecc79880cb0600517d8200e334002022dd84112a33348e104497452cc7d24c90f28b030859a115da0220d1300020b8e64506bc20d4a76a07cf23c8b2b65b12b65ddc90830c6886cae61056d20927513acb46a85ec508b5d933a9a02b0b3cf94bd0ee48802c85ef79932f13c3d329e223ab08b7f5d669d9689986707098c900319ecf20b71bc7058ffba94c9ac934a83101564301c568c433cec52265e0bbb76e8f680fdd3342bd4359a504d9a20479b6881912c802c9b680151aeb5db6addb6ba6d75db2af79ac4628160d788d8d1a28fb16b4895e6b27e7f486a74eb61c3433a50a4fe753b742a0238831825d28e9e196b920f1d3dfb35491e29795d29635c8b5cae2350c218ba90eb47b9d33beac83a4efa87bb9d945493be83d23452d76a920552a31c078274c8eb4a5aeca6d1fab9674a38bc5443113448a1088905485ee811851728a1010a72000313d06b855a9c61007b6a80c4089127dcc0094ab0424f1124212892041120d5600429490c09020ea8b0c2cc09520a2df898210a54f84c410a21ac508324841c89420da69080a4a323a070031a82d088880310848ac0852688a10a0e60c20d889024a40a4667d828dd90c0da791b1ab6229857ae2e3ba2e4fa131b3332b542b66b6700c7aedd3a44f311927533875b7f8290202493df4dad1da17f7dc7eb66478b6d852c912db24276e8a467454f1d18f18aa3fe0703587a6dae8d16ebd893a5c57804bb8a836e148f27b97bc9d433d6f4d17ec39dadb6ba68b15629a3934015a26766534f082b018ac7eefd4ec749a6f6c6503108b167bad7ae5a6a3b1d27991e07cc0d92d0011624b1e00d498ea32ed14414828083283c51240559bd4dbd8dfa771cada693015aac9fa0ddba52d7d9b069b1b246ce5a0314016d20254d66020692956d4e3700eb3b4ba40e0abac96f58d6519e6eddddf336fd862bd757b69cb2a26ab78d5b969d6ba6679834f76c6a2bed496b6fbfaa24c0b9cdcdd25a233fd20cd6d87fecf9ade69e6dda235464566bbebecc8f32094aa6c87da44ecc63e6494b421c8672631f9d31c0ca3ede33e7019c28021222840925590a0521e5711a21cfbbc8b209269a9085f28b7c611d819226460e5529c7171cd48527692a0ea21d4444b43855384b802035de91048e0f5892e973de814ce5572a79997b5f13d88fa11c874da0cc408a6c3b88e8138e974b27a277b448c42bf6d1e26c2c914cefeec8bdb404c8dd0711a53a7a79e6d22fb39d4becf041448bf3271e80b386279149a49a4ca79a29a69c49f69d9348fd388de4996bcdb6ce9f1f22f367fe9c98004f35d008d024cb2698f0415e198285239468820ab240449e0149122df88192206a50c19cb31d4408791f4032648a5c8b900c89a246519a81632522a24494663611d31223a12b8821081cbaf0012cf080015c888209543802179448e2618e1aa529bda7b1cef613e6017924ed09bbcff3e974debbf7c84630875dbaa573cfb1fd847fe01f45744e58d21f530ab0f4ed619fbb94858dc30498ce3d87e91cfef1ddf41c5d034eb31be2283d548094951ee660020a3bf8001544a614a0f7ef4034366926da0e40290b8db2b044123600cd1a9094a98e98c20b66309ac9c6599bde95a2c361bf4726694c368be6134c9f32d37f14d1f1de5dca7e785c87c31ca773218ed3152065272c692cc796b40232c0000643b3998cc7a765df8b389dc361bfbbf771ce0094b2981f19810f9ce08429663399947df84711273c33e1b0718e5018e20067b33cc4848338f73186fb9471388438930a0894b230c7949d3e65a74b7a550c641d0e754e37fd7413ae4434763ad158d8b8817ef25889bade6e6f25dab2ed766edc44da4896434a2fcd4a98bb2919cd57a2930ec0ee6404c8bdf450a774d423e36ea8c3f14ca41e99fc54610d89840b44618e13f7d3a52cccb1fd28c98ff3288f5fff7d77280e734c72df64c7e230a76fdfb77888ce3bf47dd3f59a647a25122e0029ed30c9f2db0d736c2fbd847f98be71f2fb0128d4e17efa89c33d2b7d3f987e429dd2b97398a77de84ca2b1b9cda412cd36ab08f2a71b80f253fef332db1e2394000308a4f8401b8c20824c5ea4342b224b4260548612100941260fcab3e43bb045f99694620fd96ed37d412ae7a7c43b311d52ee7753d2006767c8bd1de5de8c4e3700e765b6363de716f4031cb71f5923802e489a1a24632d6becb9e0535432a212b921371a72739b18e47cb192334dbb0a9435f4f73ef1383fd6a0ab928fc83a04595367189890db0849b6a5bcf5084bf637f5940d1a9bff467b34655314bd41c07133da924ab3924f8948a956222a15958c4a4725a452d2cc87d248cec8e4d3e78efa1c522988c611d98c4a52669a25110d0905e5aee5121014244c77a87f47e1701e3ceaaa7b57e170a29ebafc7084dbbb8318480f1fe0112cf02aa13ba330c57ecf2a2091bb31d1a5b44b7d28fda1b3f9a23f6f07a8076400fae09512c698ca6327d11610c9fd3195c759446790bb08485f8fe49700474ad49468e2b0c9008e94a84f93f44c1426258282acb1678d21f7e5a45ec8cd512ce42e6d5b69dbfabba973ce5c7f28cd44e2369616ea1af8ee21522069686d22f5e913343089dc7fc1098f5ca9f3248d1e3eb85c06702cd5aecc41902ffaf6ab5183366f8bc256286af588720fb568246158008e252360add55a3bd6205b6b500949ee1fe94adc4ce50ce452cb3e0085078c325833bd7cd3260d8a6b50a340d64c5c8520616c0df056221a2bc2828479d15d446b94a6b320637d10c4f40932802d456e5af366694915b35cc31ba56fef4c7367f2660f1f60ae42089a2f5a96c275280720fd38858abe8f3508a72b3e29015220d6d6a0d9ad3e2d26f58c929ee1deb7330b8412d5234a933ac78120250ada6e7ad8d74a6bb13920d62748ae4849b92b488b58e0599488a3459922e54eca5d837ac08a4411e00806f912206528966904d84d70de53aed5a5c5d50a5956582a292827262b1598427d5e773271a5cd56da12667e491e92ba6461b051b7e4f393fb1f90a4b1224a03722088fb1d2ecdba09e0dca6985d00b7a30d07607db7c9bc196d54dca05b7758766cab412d3657fbac51147310e54090d6a0a62580ca3a5c8b68ac4f242877929137a44332750eb38e7212942cf9cf8f2eacc560524cb3a0932fa305aaddb675254a4b255a2ad15289d2d2f67a0350e69311a0a4310f873adebf7f982775af69104aa33f34880a51237a449168529d559f4aab3ff5a822d91f4ab32262c114333a54816a10a5911488d24cd994329af5312a221aaa8134368f3ad900dc4e35d8de99dc007e18a9939c9200c7468a3111f4c41252a8610750ec98e940091b20e10116da3083e8074504214347318802053f2ba04086300861568416ac614a2d98c10641c081174e7094240e47624002148c2064160406135881102f9c810a233802156a34d101282011628323d0846a20816a31a2b8810dce0007246ee819011b86c070c40c960044061d734976a5a41ca79fe2e2c263fd1033a7bc857527be3d4b795d4ec2b47eaf49c2b44e6f9d2f5a87dd6dbe68dd86aeb832e77047efe58e3a3c8a0478217a66f5af6afeeb77e3efa6b73aa6261053212dcacf2868b7f45b3ece1a5292f732050db6807404118a44d0f20e0c71c8c83ccc7129731977068dc9cb5c49632825aca0481c98a8c16c269371997754e64a2a234326737d5c80248a368821480d4cd0df0dd7eb6dcb757839c5758798b97b0a1e6b4eb92b661cc70a441e85c8f4d47579f0b8c82d3e54217aa6c5e5f23b7aa6df725b489400cafd98fd6e74b4fac64e6f6bd4e1e5d85b6ff98e9e895db6b4503abd965b33bdf2c389bdbf137bfd289660ad2797dbbafc5cb08e16658c069d7a00c6defa386b192949bcf4fddde8c75270ec5ad75db525b4efc9b1d89db9f5588bcbe977c4aecca2102dca24b6d2969217739117afcc520c60b721b9526ed33bf0f3386b3a3625e0288f7608a14376f53db927d782ea9d494052ee4ce2ba5389bd3d1392a20e82e0811790e0082400c3d7782211993fb889e860a3e5cae953d7291e658b2dd77bd8b116873816ebd021a7e091bea55d5a57a74589a305e054d2a20b9652f625923934a198443d135299e54442ea983cc78123c84a434db2ded44504ddf1e0ae932da63c8507cd29e3cc2737b9b76790fcfafa5af10fb58374bd6d53ba3be5b2b09cde7b6f6272afc9efbdd7242585d294a6f80e91394be69debb65aeeeb5d6bad15d35a29ecb7af2faf1f61aff8fb6acc2ce3a3ebf4e3ebadfa5a5b8eef72191f34b7dc9e75658b2e23ebd5857dd0ecd2baaa24c017f6d1d9e5e3b17d8bbe6617bce3c22ef4fd825b1f61d84767d75bdd82775c7771e11d7a9b5d30f6d1f9ba6863171e67905ca708e68bfa94cbd2993c16169477ddc9b833efe457a3e52eefebc2a357efcc95b98c2bf396eb227367662e7365b0665a2fd9f58e7a3357c6bbd775b9ebb6de725d66cb656e00bc2b3b36829915803eecceecba7d19370097b932b0cb6d3a00ddb52773655c7e382dd895d9e5b6bc73ddd1cbaecbb8b5639f5f8dd65db0db343539ec76765d94b35c994f504c4c4c5647591d48e51364ad1e3e7c8bfe7dfff29715c7afe760bf7af75f41f2d388bce1ba7d5fd753eee823a7708d43975b3c863eb4bc43179cd3d2f429b7a129774cf90a75396dd753de2d1fb9161cbae01c17eeb7ee987214d85db037ae5771b50b769bb62e4fa5f10eec2ebcf37a5f070ccb165f5e5f47790e78f57ebddcb3de785c8131ebdee4dee49a98f4354931795f93b34cde29786499acba6f827f56df77ab63b1faacd7b374b3bc85987ce2306775fa536eedb41edad5c3d5c387e11d5b29ab87e15b77f4d17297cba691b90b1eb9962b5b74e19193b93634fcca53ec8dd5c387786cdd146bf138e975e5d0bbc6fa1393539314bcd3faea63c53abcdcc2e151640ec17c7257505ebf1b96ca6af5ced321d3937cc3ee54d917e5f4829714ebf0f26a851b488bf233c99d4a6ecf5a9447dd26d2a2fc777b8916dbc313890ab03bddaf74f985a172474a9a4a669216e591e0008a2c85b2448283209936856439915a9414892c8fc4e98fcca510f2729442f273a816d4cd4b6bdcaeb5285fdf1fe7912cbbc6ccd5dece32b7697a69ee3b8db4283f6b9466d23a2665b06c7939692d78206456031f94a10d6990ef997cfbc84fa499244f6b323d717004a45cdf05a1c3f7fa77f3870a6038754ef7b87bf7de58e70777ef3adc3d1c4e1dd34f9e5742a9aec23f4a3dabcb069c1ce5395447c13f8ae88057fde4729600ac579d5c308338c4c152992c161e1aa43f00d1623dc53a370a82d24cd94afd577376822265a194a56262ea8cc6386cd4205aac2fc2c854d52068acd6727db7d719a95eba8eeaa5cf97c0a3304fe9e0795057bd4756bf8388208400ef6778555fb9e06991f0b2be7255de558f5e995970c8d36fe258c93112860896a572964f7e618347e520244c95463d70cc2080a5dca3e610074be5fd858d71a8ae0029533d07f81f2011944606216b4ab9defec81a1ab924c749432940ca563010202837399093af4ebf3001aab3aea33a0b2565aa37d601af82794aa7a39ee37414fe51e447f7d373781f08e403a9a7987ca5fa0455777572516eca95b47a33625a2c0294b2fbe93f7c97b2128ed26d7afed058fd771e496bf7ddee86f3a8f7c87824adef70f7ef3addbfcf7fdf5198e7c342d058eda4ec0b82c6ea3c8ecc3d5812669e3bfd66bfd33d2c6fa8d3fdf40e73dda731f912a66d722425c862fd5c0efb83de622ec7b6499914737f64cd2b6fef8fed47fd1250bfdd863a76c3dc0d75a6c5f552ccd1989cb3a911d8b32c659bf7f91cfd0ffff8de9ff847119deffd1ff3dea5cc4bdda6bd944769e6254869bccbeff2ddf66d88ea43c08f272a0c3e75c3da37ac386c40eafd1ce055cfd15fe11fa9f755f847119dd4fbe0a5ec04a47888ea360d5e29abd76b51c6519a776cfba692b2de8e63fb0fdb6db6db48e1d0749df033e368ddbb53d6fd00650e594af5a5c5ed75dbb649e3a60feba34c5af94ffe136eb3b81aa0c5ed366c5adc5e0412f3abb7d96e5db7df02fec4e4a73b73eb1651809401f9c07cff03dfbda3fce42dfa498e08203d6579cb0d3fbfee2d1ea623207d0d54b61902483fbf1ef638b2ab360820cd3db69b1edc4313fe015a940349f9c97fa03452d6ed3628cdf7cd46d67079db7050f91266fb0c02d82c6ffd87f0aecb0f47cbed8c96eb6af5803a582c43c617e26009fbde6d3abc3fbe7b67b93f8ad8ff081330dfd799ffee1d3573ad28ee8638babdca7128ae545125207deff64d5df0aaaec976d45d5d296bd4ed9981986b712b02a42c3308a41387f5fbec1fe62182c6b6cff7c86edfa3b0fe7b8f0c29ac18f314a958676e9fd8068d6de731cadb1b6f52366dbc2b652722802a0953391aab97f465c33b9628cb154598f46ccd1ad2f5f0c18d1b50de5a0890c4f387caa359bff629124d92f87404949f77cb42f4e947702b9dc645ee0d8f2fac16153a6921cff4973ccae0b09014c211437f381a925f0e6a147698871251211aeb1c3607274da79f30cfe91ce63e1dee26cc633a87a911258aa131db61168dd9214aa33f1329d431493ace9f508733dd69f41e19bda4311a93548822f9545afda94155a81ad5a38a5493ecccfad07e288db4b33a04144469a4ac12a1345246db7c8c8a722d27b9140d340df345239d8600ce530c52a4bc016ded4d81c889126c1cd1114d08fa49a3b1a499449b73d2e69c2dc4e5d1119d65f9cf76b7448a9c84f0839e658b6ded5a2243d9a8886803e7cf555bb3fd52adda1a15b5994a8f9400474b640601c7a651b3b5252cea5386c23e9e0cf52632e75379a23012e0ac355923fba78b406a676a3fb3cef99d21681e122a400ac93480ba065257d5d9ac5e66d4e78671a4b0a4b1ef32eb482119ca6edbed86bbd65600e9e911a51900123459bf7f401ae47e034d1a160f413141d250a44a1b9a34ba37cd42a652c84d6b230d1ae9126a2db78a48272109e0c392a1deb7344aa3c29bcf3f3cb6d03d3c76900e3e336428ec63896c48e48bfea9d228cd06849484dc678120104d7ec00a14e90914298fdb1172b7376b4b246f48c8fd4d855305528b326f546c53b448f1905027b564c9922532d5c76d8acba3fa8f0ea0aec2610ed5575fe11fe055b8c8bc9481a71f0e94ea06476a1a016e4094664322637d28b829e406daa238b9009479dc906c3e94a6e7e6e393fbed0149a343c6e6a40101f9020e72899ca177439211e496e20d5d0690ca9cc8e304f2832024cc9da99621799de2336752ee9356cf8cf4b3f583136f67e256e54e58adda23fd9c60cf4cecb5d84a80633dca5e677afab1d2733d7cd43c6416e698b2d2a7ac847d3c59e9f361fdac4fe5211b2861496394b369fa0dd7fb50bf43cfb5d8f30379de6ba2e79442b97a74029130f35b00c76a4469094fae934a2788e9ec6f695f5e172f621e5f72bb90f656ca4951d266b0cfea4bee48275fc693516e1dd85f7f619e57582ff300c41c0087611687619e6a841b965024e3c9e1451429e988871d86796061c538625cc6618877711798e7c5451ceac4601e7b8f4cbea349e058bd26862a153d33fa60014954a9e0364b4d35d3f6f9d0ba0b1e6776f9eb863aaf2e62021e14c95eef91c16e28629e170f64b0f7c83a16231d9b13093889a6d0b2fa1f268d2d57a028663257914c49ae9f47006b99badcf5be9d42cfc8e959ebe55a3f5fd49bbc5b93c9e49d7ad51e31c151bde2ce1ed9260deef6a749c3b347ae35622468d218b973f385bd9daf2ddaedd634b9ebddd37cb1adba19d3671d757896488b46b6edbb96c8b54bb478e4840470e6ef2a1feb604a27bf1c217afa89759483dba9fd767a4d9933556e7e3bdd9938eca1faf61c395fcc172397bbedaa8bb3e5cc7b575d9c79cfcb1b7747ee2bbe947dd7cd2fc77bc595cecc9d861c0e7b98ce3d87ebb89b33cfdd7471660ef779d3c5e13eb949efdd91bbcaa45895448ae99652936f37611d5e0ac53b269f7827755abd7cba4d5de520ca97c2d507cd2747d5a3eac90ab5dd722f51d44b1b8747d457bbeea8ae7a28d4ed5f5e4e4800c31b336f9f3bdec461cef7faef158fa7eced785fd9beaf7c5ff9cabd6fdf57de492056eee56ab256884ecca27a5df98a73db8d2f67fb0a1e3d53ee6d863d56afcf31b1af37b93ce892253926af5f5d1c13bbba38f53d8fdf5bd863bb7d0e375fa8ce61395f8c2759759bc3e170b8b6a8ba55e55c1caf45d5e597e3fd1b275eb9ca5f2e98f11d9f55bee28e3eb2ca51df0d2ac5fbbe77b6d6331fee49e3bb0ab644be6b6bdf3f9c9d79d9cc1269913a31cb56e81bb98c3a79c5e335dd0e11c193b7cb4943f50d8f379ca79dc913e038b3054eb24908c92a078f3ce812a4ac5281299484f9bcee2461ea470a98244c3d05e6a777c71fb2bd2799fbc91dbf7376c8e4dca431b10e4b94b769fa4801d5ea04e52305785080c75c924f37b9090bebf0b2bd41b33dcd165be024f3a04b94e45147feb08e93dc22f7d3e5240c07c31de59e240cf793db4918eeabeb4918eeaafb49180e86bbe9a6240cf7794109c3c170a8d74b9d98654b84dada87437335029444199f13725de04e59f1fad5a4d1b5f9a25f2bca6b7de77db2e67b3d4ad6b05e9f9235a0caeb55b2e6e5158f3a4e32fedffd5a21272420fe6885e04963355fe0acfce4f59efc94e5135850420d0f93a3567742d6f0501d41d6f0f08e44d6f030d927640d8fc99df5be4d82ace1b11d7c0d0f7b15fa17ac9230f57d950b4a987af0a6244c3deb7ef79330a7dba5ee09e59a505f716bcafd4afd7571147e9b702b93eaf6a857ddbb3d4ca6cfdb8343a5720df333ee488da0996181d45308c01d4d539071476a04eaa37147ae86071b770703c418519a90c5e2b6cf1b8161901627380456eac57827730065dea53c7a1b46fd746afc467e0dc0f90e38d4d9612601640c49b21dde23b3e99b1beadc9c87f38079a4184a20bb0165ec65523e4f4427229a675ee131023935ae40d6e577b342458b530589d565300b247b5924a956b7dfb15761d5eda7eaac8fd6aa6e7d507dc75ee636cd2209e5b305002e2f1e7365e000ac9879a15989bd66e42000580d0b0b9146e8a285ab05f3937728f7e4b2409232323f39ca95b9caa4645820b14892c118c60f5e4162dd9523183429e67d30cf02a96746183416493d33c6d05824e919d3e759c0a0610be67c3e8646a34600336866022023e60500605cb46011b321c27278bdacc0f7f62dd7de755b21cbad12c65adce08d13914bed940470b44329fb971d5a9d45751648525cd5ef46a69b29185920f950b3cc5f00c91a2b64d4bf5acb356eb6d8a5d62800612031ee380c5acf843960b67827c6698cf757aa0be332b73f7d7555498032b757bd9b329f8c4a060fe1e12c9078c037efaf46cd206872f9ddc4b84dc378d731de39314e71e813020967316e7255498031c0dbc530c5e818309284b31b02a187f1b17bfe000c67df097d643e53725081b1c495180b8bb045cb85eac200c0e61e5172bfca9ad5f1c7937fa4b94793dc6f5963f21e55b9c715cafb53d69cfcf5c6a3cc63bc93b9618c1bce42202dce18f63231b0046d386b9ac922a945189705920f663d33be8a7c7a66fc432061909ee95e4507f8fc6b312f0000e3a2058b9808cbe1f5b2025f1bd848be4b8bab15b2acb05452504e4c562adce00d6c43f30e57ca6eae94a5ec509e4785b3b132914716dd6ba3974d3068791e20e7c670934a8ab2dfe14a998d2b6538777692c1d4b8b3938c0552f813028544c2a19028440a935ab3964f8bd6fa6901b588b4925c331711978f8b1616d55a43612d0c9ae1ccf583746454d422caa1509ebfb952566281c4028985923c69eeda33c0bd910dbf368d401d4e8c6a334e8c246da39ec92753ccda5594c552c2f4901dce22498bf32c9028cdab6807fc6281946751f8a2853fe12cf49939f5c8dac7b68141007124c410fb791b946686c522c842ea41275fc61251b694a65e4e5953944b91d2985cc67029efa7701c5010cd2773b3cc716fdab3cc9d48e6502e8bc6382293feea86db7b64f4b23b7dbb628bdcfbc6d0188d71733e0194b2d54dc4cca9be6db4557808bd4d2b6991c3d131ee1c1d39ee327a6d2d88bb25c2dde4dad018f7d5ad5180a10e4e0a7556efafb0a5d118f7b64099fbd84999bb0d3a2589431ba098c9b889648f2c12a591b41f20225b2d88fb26b40dfd702f019586b89788702fd56c12d17604442d770b62a0141e4b4125da87c7928f87c7d2acc3e39694b94bba2165ee263c5a23295f38bc53223af53782ae8737cbf4610e8ec6fa3e66fe01ccb9eb2b8df20425ccecda501375d10c8888d0a443948816511a49a446696450f531a2495d336aa221a01f9a4f9eb38c44276582cc53d2f066592641091239ec6a8982f42c7ac9d19a5763e60eb431e595dfc1712358412095962369441aab35dbabec42aef20ab9f69559a4343668ac9e05b638e403cddb4b57e639abde9430f236e4598c56598e279c8333dd70d8f53c3d1336e631b37c8f59efa367241ec2dd1d3e88e839ab1c3e8193d2a653f6ac25241d486b3dd99ac35bcfd9d69e3afbd2e23c6de286b916b9cf6f62f7b436ddd86ef82216bdd19ed62a56709e35dfb39bdb1928a5b44a18ce61fa009cf132a382e3679cf4cc18d39a514302031094723d78539f2761eaed0bcd619a94289de338af9402d06bd11e75ef5dd3cf5e950dc051471e4fb20d024769644bdcbf1ee8123864148e71d1a287c516ab044e3c00bd1310c0ef9e34aa12c6071531d7a2e5e8105ae20cd0b1fa8ebbada592b5dc04755aac1567b3d133f5a3492e5d2569208026256b50dc2db6e1ae8dea03721fa590015aace7317377044c1a09902fea2b143a8fd209b93ef55d2050e75e65cdf7ce5e205a2709683fca29e0fcd0b984ab84e1cea1ae94228767748d9a4b3a783a3df3cdc8efe6c3122c95b00f7a432e59b264c9e7dddec3de1034ebd0e2ac3374a8253ca3c59a6bb6cd95de5687162bd862ad9fd1342e3a565fbbab9020595ff9b15aac2f89e048054948822004234f02178a3c20042c108942561f84ad428264f4ed75039a8a214b08c9661f09ec911a9450d8daaf364f7593c9f4fa6db8e298debdbb6953b754e0e521979ebaa879faaf74c7492bd1ca9d7c70f2642eddb1668ec6e4f5db35b9b263d3be74b75ac1b64bba397bc6e8402528cf92979c149a525829df713d33f6edb78fd6628eca797a8fb37d821277568b747c299d45f502b0542a955cb428d2d3bbe04e71e56274d0c91c40fb9ea9a8cb1d2dceeb6871d66aadb5d66edb367d3a86e50cf7f90229da1f4fd2a06eed0c0264facc9f9e99b417c899990229cecb148abed0ef2f994e5ee7a53e1e7a66ae5f8ec52dd6c954aab2664381ac319d40d69cbacf77a87f1fe6b197993beabbe1c08f879e6c51f6169f78f6033bfb93bd494a181e6bf3f68ea22e9022dc3db02305b2e3e999917b692b611eabe27238ec6d1fd7e27c2dd19ea552499a50b2669e9ee199b3fe6e360ca4676a90ed7492fba7ef864c0ba000838b933cc516a754c2d3343a84a0343f746ccedbccdb988f9901f4f50783ee6e8a87d457239d7c395d2e91c7f983842428b29dd9ce1af014d131a150a86f58e7fb09f37c37ddbb0a08aca7ed26a8a7eef7be4536dcb1dabba679d475e6761ed3e737ac93fa877966d0987dea26e729a2d337c13c45745037611e91c6ec5158f214d13179631e937b206b25aa2e6556ca4c523c4570a830cf94a19e3a787fd8a031fb7a8ac23fd098bd0ae8074f110548996ce21fb208e5cdf707a6ec16d1996fcc53244c40bfbb4ebfc33c45b08f4eff847984a031fbc6d387c6ec274e3aeaab62209b1fa78f94c917dbf5d4b654e8e4cb486b592251829625122570964870104576c5c088b9a8ff40556e5542dcba32b7ded9f9b5acb5d68e4564aba2f2561d5b97debe7569ebb6455badda6aa9b45a554545a5d5babd2a311775f9b56ed39d14c12c4c81baf7f4b6c8278ef86419593e2104a26c7fa43e48ae82cfcaeb5b0fe352d4d7037de5f0d77b7267e2c1b8f5ae1e1a87397875fc7d372929ae3bf66497c438a8ee7a5d2e3f9bb62e294fb90d755d96a75c93a32ebeab17ec395cd61d7b32eb5fe872bf77addbabd5aa5172e89506531f8ee92aad56eb7dd477d31583d9b6cbe5c2ae7a9785dd9dd78bc8d55ebaf0d8935d3098eaedb2697b170c8f9d5f193fc84cbd5c7807fff5fab19b3dbc3056e1bb70f8baeb2e39f5fdfa76c12e33ecb6ea2e2e1cfb46b95c2aec4241717d9eab3b825faf5103b3bb1bbb7a78ec0fe38ff9e3ba3bb01791bbe24f97bbee1a272d8faebb58d8ab0b6cf5f175eb72d7f12dee15dee9c36e3fbe307e37bdd4ad84bd5d18778d6fff05c3d5e5de5d3d7573f8bc28e7eeca6da8e98716bfeffbf8559815c1a4e1728b778e5fae1b29af9ffd70087bbdcb5d5cbe7aadbe72658bafa3dc1c6e6d11bbbcfb70ea772c1ee7e9f341049346c5e3057a727f65fa6e567d6d865d99334c038ddff7955233ec4e7c9bf660b7d53a103de37aab75952bf314c1a43173ebe14d0b4b7006717139ec8e3d19f6fe6e6038aedbf7e47a53eec89372f1e5f77279caedc97d7d74c6788a60be70691d76d37a8bc7f42d2d2d2defb6638fcc2df7f4767d14eabb69fc03eab53b79a6afd4f707dac3f2da6d7282c79e1b1322ec6dbabbd6ca328364131316934beb4d4c4ca889890d65313161b94d5396be26af97e5f2bb39f9f6dd98b0b84daf5801ba48493112245370bd9db57e055dcc1aed9916474aa248f8ccaef3fc5ebc27f7e429540b7a71f9b641df60d29825982fe4e5fb039266d2644c3e26c25c7e2ae919005cbe81c81a99250c40159080fed0eea4c91a9d27141246e230271c22e3335b6f884ccf646021684c9ece1c0344d674973b7a06c6e57df44c8c8797df90408a47d07af3f381cba8cf205d6fbf1bd4e9ad7fb9b3f4bdd0db34eb0078bd30a73832c39c754398cbfce21df560dc18ae4bb3fc7af81e03f77bb20b751838d6b5aeca0def4cf201285f6faafca4cc89390caca3452ee6de756dee2ebf1a2723e08b2b8116e501708368511ee602d1019130f24270dc91104076501a2993389d730906a0bccae58acb1542c0dce2531cc92bb24422450db28b3b331012b02dcf5b39ac054ba560b015b09195556e3a7d3738b4b94513e516efa60a08e6149087ca9975b44acae52157bcefd8cae0fc6e54567cfb6e6c800a4a500128b778cb4f77e4b123b738f81577889a5be01df02def5a2e7d57eb10358f3bf24edf35768d11b4e9aeb7d5d6943e781beac23ebea3459957809885ecf602488548d9fafc6e60ef3ad8ef1df1ef5977c467bd5e2d2e2f2e18df97cbfc7a69b5f00eecadb3eed872d6ef1d5b7edf554b297edff18e8d77ea5d4eef08669a82472f7b5c0aa5b6e5f7751bcaba630bd6e123c37678f0e4d765c69707cd2f1cde98997e668a75d05b1be07bc39cfbfe7de3dcb38e5d4e61adeec6b0bbc8603c7299c5c263cbccb745e6f61d616fbdeb5db239193c692cd8ef859d75471d3e72ebf72e77d2e865c594bede8f13a907d85ba7adcb7cdf9f0f5d0e29ce81bd75d85b975f0e2b8fadc36ed3b77518de699d5e7e3dd8770b8737dae21d7af08d7750213d43f18eabd3e123bb4eb75af1c8e5b1e5f6d6f523530ef4187b4693ebca4c29124f8033af583141bcc265f5661d769fc35f2f4759f182948494440952125212253baca9aadc1b5e1f35bcf7c547bd7f5539ca6bc5cb59c739bc5e987518eb30160c0683b160c7300c5bb182e1d5f1ea7d572e1dc6f8f5a7937d62e52d97afe03067c5e957b8b87c65c50a1797152ee08e4c5b5a3e6a5eb969c55756f0e8027aa0d772f98ad61d2bf651b3cbe982b93d93ca4bdf0d0e7350f28adbb44a0b8f5e6ebd939306add4cacf078b4117d6e9875baf93c67debdba4017bebf5568b22c990f130c765e0cb5c8ec6642ee35dcaed737827e3ca58193229354fc69599b58ae98cc20d94db1f210d432d144b996f58adc90556986373ca6d4e49799d34899474516e389166b3591e62e699e4430bbecf02b863e615a7acd3155fbd5b7157570827c0151fe511ce8a1b8c7b48b91d2273d80deb6197f9deb0e21af75d7b8d4493ec3744e6d2a65c74dfcd1099d7ef86c5f5ce2ce3f2b73c877732f79efab428af7a01782fb3cb39f0dee4e3a1275f2973b93917cb68519437313135a45a4502f6c749bb115b94930be0487d640b9e4982f48c6bd664ed076f01a46fefeb0176ef75bf792bee2f3f9c7fc56d1adfa653aecbeb7569d1e5e3cc2ef5f62977a7defe7002207ddd711265fb72814ca30e407fc505e273d90bcf293a263b00e3a422dfb8562b5775ad5c2b1707eb32d44a33eab6e53a2a3aa36e93c144e70e0f2a4da6efdfc9eb4c3799c21cd38723b590bbd33db5019447080a92e51334a0e5d9f9542bc76ddb56eb66edbb52fdacd7992c773a7da7532977ddfaf3a1f2a09b95a3778eebe84d3b76ecef3b79a7fa6dab37b475abb572dcb5964a6b37a9054a297db779a79277b269fcc3c2e7708fb8ac48cbe74fd00f8a0de3cc1348eaf2bbc0ccf5f975a52c0152e6811e179899fbcdea36edf2efd24f10fcb7f281b769ef5d176edeb6759ec956cf9bdbc66d5b51775a035052e68e7ca8dbc7792993a79a99f3baaf66d3b91b95cb0d48ef2949d779af7bef8c62c8a44bf16610a599431deb0f057960c7ebb3ab49ba9a044ca21af2ba2d0dc1495227495292489b5eb9337f05a733eaa40693cfa3f794869394f73b8d6ec00f0ddfa752b36c02052f005d2e7dcb9d462aa48f15856a756547afebdbb7c2938a59740649f19db2973b8de4378bccc03209ef34ba49e159540655c865e9c418cc90576e52f4b2fce4bbb933b35001b29c9061e6f09ec6008e928a995b1fc52731802a1f8f9951deb57463307d353aa3ced28da1cb9d8b8a0937ab872a26a872f7159c9987e0b7564158e5ee7e4be0ccac72d7a722027e593e01b4c4973bbc72c3e3934f00c12095bb15dcb671dcc6711cb76d1c4adeb64c5f1ebda7a314ebf793a294bf2c9f008a82bb35a7e8bb151e77b9ec7d09906ae0415119c03002269cf082ac7b29712ff6657b31bdbcc8a62f33851a793287e757a3f32c9a5184012cf990af8de3b68d3b799da9d6cad5aaba320e3570b6ef7c74a2bdc974c7eda670b32c1c6732dd6ed672a8d7a35e5f39ae72288e1b6be875a6ba6d274bf369dbceb2613b37d367debe1b2ad9844fab8f9ed9b84f1f1dcb5743c621db77301e77b92ae90b6acc40b63aa86aebccba32a360992fb38f99b773e742bbd5cb83666b39eedbc693c31ceef5dceb667950bb15a12ea5f6fbbefbe8990fb75c7202c3b6dd86d58676dde9a3f7b1fb680a4fb8c629871eae71caf461876b9c7268c2354eb9f3cc325b1e3cf9744f5f00e5134724e5712e9170a821b3904df7d1331ce743e541737d9d453d63b38ffe6e78d4d92c05d9c7a692373c66209b6ce8289366d6d133f420102559f6ec3d55e043f1387327a17b01ce4b245ea0a2674689b993145fea9b4679082fcff751b2a6c79c651e05c8f37536cb33079ce599e7bba893f9d405b0eb64e67a46524ae7bc3961620b390252302d01cb16cd5073d31d20414912242809c3e8e531744850726482554a18ebf9939bf74e5af375ce3941cebbc209891448e4f185fc4c260fc9d1511e59ac8d063481b8c5da7098b3bdf491e57537997a4ea3691b8bc8a76953a6a3eed9d4787a89a27eba634fde4c3b289cdab86f2713dee62c8fa7d31b02c81d1e4d2f6d5c7bf3a71a9b9430a6dbd09f3a148afbc63dd5dd744fef6e4e4d369d3e6e2f3d55633b17deb829751a4da79fc6ed7e26d34db887a984da5ebf3bdad7994fddbbd1f4d34ba69f3088b991b31ca599b24d7a9c18e83bf7a90aa0c4dec5531138c66424541124f763e4eb59acd6cbd7c3cc14bfe4fecf62e5a6975d450866b96bc2c7e8942b2df787835790bbfec91d7541eeaa90dc6d5ebde3968d68620c5164fa2a6b4ca7b7b2863bc55bae97d93444cda673378acc23954def360f89dc840f52d3533d9d4ef674da4ea7d3e45850634f0d72132140412edd8eeb5e2ff1cef6ee3ba8eef3c3e977dd519f0d9b2ee5f5b0bdc3233d15d984a584e1ba14576bcf54b97d474a17630fdb7b2bd974e9cefec4f207e0cc94f698e62604231b2d6e2c3f746f33c702d1e2e4ba621eb6cf6f73829f17e74156146a00475904459eff41072044709e352f392316f4a96716a2c549292844c766a7c3deebee648328993010dde99463710da28100a2c5c9d3121042479786a8795e3caadc0672aded2f3d335b9c2fb3ea38c9d6b604e5d6bdab17bc5cad464738eaf306725d9bb8f9520c0d028edc04bb3767c263f7ed5d7741ae9e70ad3c39ecc9d8bc8b3cdf1ef8915ec749b6b4d6536e4957ff92a9fdc8da2e694abf2cc9d8cb4b965fa5b49b60925c6badb5caa416655b6badb573f6d8d94884b27d17936dfb509a12f70d286606f591211c8dd198bd7d0b01dc46ce1ee9192e1bc99abeb5424cb6b6b1e948c2d8d106e5f046f769363542be589f9e09d233a55b2cdf7d3b672b0b87c70d20656b83b468378b471d968601a33ccaebb0344bcb72454f69360b4431168b89a228c644b166719a3ad0c92e257b66f6a474266bda1a019b0d20eaf4bbf9ba947cf988e41a54526dff8efa4ee9dd0deaa6db9d5eef6d8ffa6eaa1ffd3e3c24e5b5685396bb79e7812714ecbcd2bb9cd2abd7628fdca9e575e31d2b44935e3ac8f2f492b672b839bca339bcbceebcac164f5b680a3670593801dd2cdf4d1a7bf95c3be681d9cdeb550b44273611cd8f16682661e6c927049c51396905fac12c75a746bd9eee23e7d877475d1c8bb7777814226f78e450f4df9d79bba38fbcd51c4e885c5fda91eb4fb777bba4a5be95e3e68b7a714cdbb98bb3bdd479bb8f5cf1a84387d7e3cdea824929a5548757bb67cefcbc15a69022620b02794acaa4316b82092f74f501519c4a5ce5b839279d9ca4342328dfdd2b690ce7e756f3c3b15fbd6b6ffbef89752fc6a1f6a7cb7d7569ae3a004fdfe4676232d9c0d16247e301870d1fc8219cd33d9cad06cd26cca1001cb993139413247e7a2614b2f275e1b56fb5eefc11326b34dbf8a80d4a236515e5e425938e1d42985e8b80282caf9f4682e6919e610da13a945b7aeb9e9c75e71195943b8db0dc59a3d94655919985e6ae6bad6013777b3ab7ddd6b36e62fdc574931be6989cbbc97bb2e9aebc9ba08d16eb0c0a0e6fa0bcf492ccb53469920773ea843c66a593a24ab9846d103d13e694ce72163cb65ec2610ecb6833cb7b724f06a2c5ba80d25d8ea084a3ecf2d0e6ae76d5fb61a7f512fe21bc517af810ebd4968778d25eba13891ba5bbbcbf9c96bbe0317c0b9e3f2dce8904585baf2daf9f48348d95d54fcba3454ad175fb5d0067e6d65bf04d0b5709e3c263781b5f8d9a5b6fe19d10873941e09839e64711965f1c93e31e1f639e1ed9c5e2bb92eb9c9ccd5554984373eb34b7c622b2eb292bafd7c1c600a5b3409046081a9b604bfdac4d23f5ad3b8fb4582f44052b38b2565068968d67103c81d440caf2938f36b7ce7243949fdce5c293f6d26b117064addc1d2d1ee5d4991199e527373cb98e93cb8252f1a4bdf43a0421ee8e2558b09462ab4a98161e591e621b2d56161ce6bc74168ce3860470102ddecfdb2f070b73b6c80b8a8656aee956c70645bdbbfccec223885330ade6e0627c571c639efa0221c856e05fcc43801104214886514c4c27580793ba03f0f4cdb22aa762b15833a84dfe706a9e341c36e4d08a1cac393f9d97afc03c72095790bdcc99040e52f8c82e963446b3ea823d6a1e5923f75dda289358d6a4956e3ad0243269f367fc81df4d90abb4f953ba538812e039cc9ab4d376fc0d832f9f972f975f0e90c6e6f1e5a7b3e22f982724826c85fc74ee31e6914bc8021166b28b4dd64e6b6bdd4ce7b6d246aba226e46a581233b48c73f9167ed75116491d04ecb7289560c82befba966d70c1176638620e674300c757d1101efe2aa29f3394425448c2cca27e45d1332acf624e0a7156a83291e96358ba22254cafd0185208061d5bd7616979e5dd090a70e695b7562678b2f29696ab287893d359c2182b29a1cf7c08648641f294b93dbd3257dd710348a51b31de2b18a77685736010b101a4dc57dd86aaeea8bacb8df1ae61bca90faacb9c8630708e8a5e06c758dd51f5d6e932a75b1ce3ae77a52973fa7c389de29dd365f04ecae975d83b5a95c7c0296f3d5c49c1b54515fc93533cb2e0930641103ca1316e65a8054f683f860c1e4f569af5938ac7099ebc4fde7f1f8afe5c7de23067e5f62bb7783c65d58eea2dbdf216d55b5aee78655a5aaeeac93296661fc3d264fac64a4ebf058f2a99c632b717c663c4380c2c5b8cd139c61d63d4e82cb3ba3dfde4950cde517de5630cacc3d2b20ab7bc751b0ae67bc71491710348b9753a6712d461697988995756300f9845928ecdcf152ee3dc1d5a3804ddcd95b21dfaa724400310c0e732037c6ea7f9888aeeb5d71a501b0a64908290188eb0625118ad90864269626834366960d0c2bbf2d665f9eabec834c6a863f33060c058b92c922e8b24f4a9dc4d0fc66ddd98296ecc2a45e5f3306828292a3060fcc0c0306845479486074a63e3f3af1752cfd4dc82d6220b241653bc8c5e453db3fafc2b8a9ea11faae485973d23638e6ecc1453b038a2364e6f9c52ba795406197e60f4031c5920550105433436bf2571440c88a609c016b048b23e00c718a32107788c51cf4cd13347b226c6c9a5a411439b2fe64f2ebf1a2d168c70f593166fb8c2354c9962188f71189fe04f14074048c2cc8bafa257142f2309331f43535df5b1f32b88d2d8e001046f701c96747c05e5f9031cc3994b90ac9991e7fbc3a9d96425c94a1288b372b472c47120180a913533cf9f8640139b3619ad4f1ec3d9c8e5b1e611cc230ba416b4d1451e59208d261006ad3261a206b84078380ece3de2321e78b8459a7e4b922715dd7cc3132330faf1c28993bf20226b5682a0bc850fa501c2c35bccb740a267543edfe2a76752a8ca8488c6e64dc2cb5c16952b73d68b6c7978476f4bf6f29753ce82ca5da5b56795359591f859b93099875b65af224a23cf42444116a23c637c7e00c604c131408cf2fc8909e0c8022906088cbf00824163dd18245a9c31428c28cd8dcfb31c519a037c9e25890589d2f0f019538ba119011c5990b0489235aa8e9b9ea97a9ef5becd437d3ca4ac95b9cc599034cbd0b49687db1bb707b8b5f652e6c62011d3de0463a8d86290628c5a9c3153d46e7a5a7e673f1c536efb21361e43a33436f0ab88c6262def702591101a11254b88a1f58c29bfbc3fff0249d6c87cae0ee3b5c62f46128606e0f82a128b244c0cad676290e819d5e7637e648d8c8b57118b2209332765e1b304f037ee0f306fef815a8cf171e5c8a5266194008e314631314079dee48e2c948c2e4eeef80207636522068c3b562686c02a13c393b181431d1b930655c8e047666387ef8082185c8c1d4e8c4e8c5668293792124325860ba605002e2f1e7375c00358410096f85280974d0e79250693b1b460d10a5dc4881123861723c68360fca85c18b494fb1a0c1a8d9ad764d9a6000418800e312f0000e3a2058b98780396c3eb6505be776971b5429615d601524502f8894faa68e5289ced70a58cc50867e12cc65d6a9fc91a4ec65b66b2a67ede45d43329f167b1baa689310ac0098aac51fd19e5ca88f9814a9542f3191f61d0609024cc7ceac2883f087216bf009230f3ed03d5bbf65229b7b725c71851cff3bc18a3192fc66806e5b24892a4826184da0838c600498901d233e32ac6e7e42a5046952dde9139b5b763c4380dd96107ebed706d9c7e383232323232329b8ccc86fa78b851740001a48a72ac6ea854ac3316b2a0754cd1c800000000c313003030140e888462f16840242b22447e14800d99b44c6e5416e8490e43c818440c00000000000000002000180005759bd20b52719c0bc031aa37fd50e3716742ab084498bb5263a05fba855530724f717ed0caa59cded7c021fadea32df8601aa5f21d93fb57222d828fd3c4505dc8941e4097ef919713cbf2b30749afdb5734fdd84cca45c9275e0b49d62dd47fc4c5f571fa4a9530a57772abe12687fb54652d90ae201baefa6b9ed7db23aa02c5705964d96ea0543a468d232f58d74cf50fc5d91be939c52c5208e9464899c2324516f46fbb4c21ca4e2f0ee0840c2cd95749ce41ec6adc10bb3161a0ec4e24fcc62a5ab8ab7480ba69cf2f2a921d15d6eec220cf51e6184100fb0a0633149100abb223864d960491ba6014c797c4b179d5ad3be10a219af198ae0cb2cd544c4996b287452e2ba6430cb4f52e698143a64b3b02574ce670d43a27d8e2df1788d99093c8cdd677d20971ed9ef5c2a644f2bef89b3381900fe9044896b9b0723e7f922954bcb04c31d76e4c22283964f2fcd304b5e22f861c8be8bf68aeed168b07cae8b2090007d1a4cfb58f1763f0880e9247c92f842a6be17677b03677ff05897f43b5efcf426242607b2144baebcf2113a0dbb33ac9143abd0a9895a532415502608cb0e0c7c2807799f8cb0947300e34a88b48b8d14598a56995dfe67721d743982945cf339b76476282412d5d1bb04d65114788d8a831042855ac9dd56021337940233c4c4d8dd74f8e4dcbc2a919e5bfebc23e31a828c4e89951189708a4e7a33c52cd8bca958fda145dceca588661540e719ed80ea2b1d5b3e7561f5ba36f82b2f18091e2a05203639d24f98a3e8274e64864e35ff013b8805b7026fbd1e6747339618b6454928be61ec10b39271fc62f7fbf8e15b22d8b832fae7b0d1bee5233a5a326e60db4ae07d365dadaccad30cbcac8e05f7ee4070f4d5961931289e9836aedc8011b8113af03ef299a61dfc55691f44eaf8cd866a794136d17c9d8ff20f8ca8e56c0a5d48d9b88052fb30a43d62cd14467f44e8630532f2f5cf1843bce6d81fb285fd14737379f251671d9f0b2b6945ae072b2441abbf61c0d88f58fa87026008b84d54c546300c7dd5e9daa3405f25e8a9254b376ef5b23dbca108b7e8f87c509b63d6c62ecf9064295c667b6505c7f29f3d4193535c7c21d360a616ac938a4b9043fb72fa060869af7806952950e3e54bd69af5f746350687bb692024bc1f8a52c3f9558359a075f8b04756c07203e926147005d3c1760402e5006c54c01caaf31a78468e43ffb67db831bc6add04dbc1009b0fc173403e560c83931e9bc83ac0254e1d7f0492e7d9a5f49569daac77d80dfaf5cfa028f5405cec53bb218b58c9252b1e4b2a2117f13af7f47c625b340374d9cd7464106b6db6a7ce1ce6fd4da202099e71df7089dc5fb33b0d2029d0e2bf5ce95dd93f4fc174793bd3ddf7997c9ba941bd1e19ef96085b327bf9a89c20ceaac37fd0afec48ded1d40615a248636ae12512d06670e38e87894224b9afa430d39d32cf7c92c5510cc13db8358e2e47b82e3dda7ad65ec64c4f03f2e90016eb337aac77b30513cda988a68f7bc6b285dc993a0090755dfe75458811e46e2711e62238e2238f375dbe7912e76a0dbbdf345532b9853b28fed2f32d1a9dac7ea6e558eb2b72f2838129385c06602c0956582f323930f34b93afa988a6a9b99e0ad12e62ca526e804f58092c4796c0865fcd2db1b57ae097b0979f1540ba2f62208ab8578d40f86e64ade1e870e4e4bc9e0f0d5911b0a5f9514c178298e93cb94ed8ff7db591c96aeb66c748457169cf7da10921bfc71c2c4e60679f89ba9b100798c1e53fe97a0b81de89eab9934415ccf1a10536bad3ba42f747dc2d396e65f12c151e60b7d7aa08734c3f328d53a2267bfaf28253d7338a69000e9aa5e140e7cefaa175428e00d83a49d3b1ce6ea2238d85570971c5cd9d5c7745a491a910196bce2981aa2889bb9f816c9c0422ac98e939169680c47aa9f5d0524e3c0a49196ab56a926d4ca1b28fd31a19cda388cd2617af7b65a48342eaf7eb8a691536c6490d68b17e63b2e5ae43aa37a6d501abb9512ff73e26d4c935b744abb02c3dbb4f91daf91c95f978900d357a54ea05f157af4de4b5accfce7a1cf281210cb03d310db6df51dba23db47c667f7d0eb890b0485ae7d7af1ff247f74000d8b3bc533f025292cc7611e10586a826e05cf4d7f7049e30ecca78d950575b609b96a4b9e958f961394dbfeb3fedb736014c46cc7160d75c39407d4dc79caca8233a1cade3d3e661aba5f50f63b43b59b6c1ef8cf7ca1e127dfb1a8de7c0e61b20fa392cea66f869e0673120a2ad31fb3db8a8f75e11ce2ee5ab6098c949d684cc364b56abe3586146a3a73dc80c445e55bf9b1bab5a32ca8365048b655043bd25b485cd39f05aee5bd3e5dd5dcde3483b8b81b682942a76300c439309d6d69ed13dfdafaf7251a9d4abf60f6e604919abab4fcc481e6e8bc081210ea23cde179509a5c3f1cc38b2f7fe8f0a4fa02d5f76ea0db730c540ba0b6794bc980f26e3df2d10a41b3cc6440dd9e93816b1c407c2102f03ac3141ebb81ae3b11550c07f45c72725048ae5219416a807aa43d4c306256fec7f1fa4cda0bc96a7cb816a98c4bfd53bd74eb25da8b24914be7797cfbc6fd0c346d650e1a710c53727b252739e3d9660b531e1f43c6ab04a8f5daba1f17a55a04dea4397cfbbc7ae7c9910bd787bfe02791700f7cbb7f7010357e1eeae7853038b3eb7d58f03b002a739fc32852f0fbad23d00cb06cb007689b147c105b069ae8c98868bd9d8d2f439f3df554be8824053f9eea66186a6d69ceb7919b5c7ba1854ec11fd27c37585f51ae4c7bc6d3ad16eb14fc9480debf0e99d3559523181cef3cdb9fedade5c9c0c0b95c6b07bd53c16207ff4706092554cc566ad0bc9556e1b11c9ec69010864a293e226c6fc45dd6deedc13ab260e8a6928a72f0a5ce667c4f7c776096ab2ab866715c5b39f24ecefe46e1e2444e502128665bf8d28c393910b666cb1a7e4fca724be6106e846213aeccc1c71cefe1e57b51ae11343ecf0191860e459261f2b39e67470dde846066f21dc49817f35e8bcbced35c5e1bc337e658cbaf25bb7c57e5b02f295062ac80b5b03e04eb0efe4f3711dbb8fa4276407c49189a6ccbbfe650f9f2256d71005da185a4d74f8191f47ba405bd414e7221aeffdb2c5072a2dc80cd7a4586311007a2a0fd64e95af01c5ea28cc06fd0b294f3bd8610e3e84d3b17e17f45e64859f1fe875d205c641ad26b8914664d15ac59bac5a18fe47df04b62683048de8f3dc08a6f58541336b3c8a1b570c104199358d0c9a9a8bc781208718c7c57f6fea6261c918d334f37a507314aa250418fe2460c7007fa9843696887758133b7572385309d810848feb69dc48bd10f7324a59bf96a8caece3672807844de09b94ff95853ed2ac53c4e33f66814a35b725f83f200e99c4e7cc0361059d68feb8ef68df92e59387cec460dc9291f309736ea43290c96aa8f33fd9dfee46e8e3fcfa01fa8bdf256ac146773b002c851d9304cc68d31dd22bbb2e56dd9a65fc0952b8b660e580004142cdfaf25d281ca235d088012d773055f01311369fecd6fbf1f68862c7137b11eccc499a3384721ea835c0bf06142c481d2864a2ff0b10e87814f867c185c9b2ad4343a80412a6b2e3734229b3d03e4819117d9a8b7fa0558508ac87336a7abd4027e12bd8f663eb59259bde164f6565f031d45711f68247bee65050f7b597783946cc71c83c0ed11e7d6e0000e20b901ecbee932bb4f5d247300353216575b5813b1d7c390c41e33798549bbd72c989b7f79d6dd319e74756db96d5cfb98262641106f7c14c4f9b25fbc6d124fbfda7355fd3db79ccc6827c1923fae3b980f711e01ef98af7e5d51ffe3ab9af2229326da7e44e5479fad6ec07fd4265041cc0acf79fce690c35971a3a810241ec80b2212b20a91dfa04a62464cd126522fa15cd597deedaa77fa5359358a7e937bbd8f04ad5738bd0df02087d4ceaa5e44c0328255b2df0b3f04b1990b056ae9fbbd0da569528787a997574d307015657079b79a2ece98fa5a7d5dd34d74a51dd6cacdee0b5dc89dfff6517d45a132fab6053425e1ead06ac67f42adee455d8dd86dd2c888b779e6bcb4a4f3eae6a5abe1cff34252e27d8e7e54073c86e61236eccf63d43a760dea504677010e17c1891c30bbc288b1a31a0536d0da1d7463fad555d4197d13424ae002b8fc6e7760be0022eda7b040aebd2e0b3b3ffb7e94fc28ac11cad9d2cb981301e14e5f3e952ce4c9360c94ab0c21d1c0cde4a5ac002da2d0b567025061e630739485a72628b3c5618f241f33478f94aab9e5425a3d18a9052a1513c077cf00f946ab9d00d95a6bd3cd4894860d90d9e6d1123fe2a4a4929b6509c12a5b99f234d2977d8eb82092f5208db158b53dedee11861602ed9194215cdf9874d339b3c91997969833398ba1b662d31a1b4b8522f6e579cd48aeecd58e642fb1c999a0dac064ae5321a29dbdaadb2fef29f9820e31dc031392bd8fb77278c346137b9a1de80f63e98d36a625bd183525ab462862d1f26a374563a0e68358ad1368cfbe369e339320eee86b12e95a1b7585a85fec59feb9535dae9e37ecb3d821b1da95f039925c56b3864e51c33dcaf3097de3788f1775a4628abeebae1b926b3bec6e6c188ddb0e95e55384f8eae37679841a69d2f497c1272de27fb76378c98824f608f6a440734ee380a93d5046adbe103453a246426ad39a0b017d20ec8763b7f360d0eb2f6507d955ed09e6131b2d1368dbbe1fc07d27885d18d84383b186dafdf81268792d6db03cbf70c24dd622ba19e4de2c6f55c29a6ed70a3af4b01630d67aadb5837c4edd67dd47a6f0e2e94db0ae1ccc0eb746c83985428514321ef68dffb9ce326305fba4aaecfe1fb9b2feb65148406c60e788507c1a083ee941837465a5e36a7712ca0cc6658c42537c9f3de1de393c4b35063174a9c539b6e19e302907291946d17ce786e6fbedc820b3ad125787dcb6d515ae623b91037a2ceed4298035489ffe980bf8aa2656e7d6784034a8217c14dbe598015cbcb16d37e2a52cfe6eed3ca16e7d0388bafaf67a94052f3ac829ae0ae3569977e9ea3c9c8a857b6264ce14997be158844bed3132e6e4ffc83d315024ca594ffe3e9f6766d93ab8537f69bf98786e97f43c93ae9d825a5a61b772d59142af6e6d4a7a52368f3b0f71df0ad26708cbe69ce66d53651385b99ec7beb285f484f452519d4e8d0a13721a2131e58a26f76439e8484ff5343d114ff29bc449d8e1d255da587d76d17b13e189f3b6dff6148f5f51bf671992193ac78a4db52efdfe570bde037f568a4f871faa3f48fecffdcc005f9939e5a04d33a0204831ea54be3569b3c37e37f3a08860f5e031b7925ae46ce8510d61d9f263f50c1b8307a362461eb41641cfdce886d98b176955b7623aa541af721b7088d6241eed0c24f704a74f4fc2b9ebffec24c6b62d9e2abf7eba7aca822d1954d4502b987a6dc9072df0d1e8b2591b9423d79824ad9d7d6f16e46c1120de8b93d68d3758796a505777abdb4308f12b09f595d2e011ee0b4c0b1b26b055f52e9121d049baeb221f0053204ce6b304495a7dbb1754924fdb2d6f33ace0ade8a81ad0831a6b6383bcfd8ef41a7d4f9fcce8abee0c3a22ac789fd084a8a9437aa8c8f6b583845e87d62d70ccd116bc73e84aa711a7e403db24ff3cf1581cbb44787919f44e4a9bdd1f653932b589c394b870511c18b92f7d088a1f2fc1d5d2006e7a1820f0087b96d46a4ac47459f7afbc99926f81d72768c490455230aba60880156d6e4c77fd592a66502144b5aa8a21628653cf60a5283116ffd708628d62410cc248c193eba17b921950980e3d5b57d28ad434683fd3d367d2d0b3c2ec59daa0abb81f545eeccd9ab09b606ef718d5eb8d88009af0553a5a0509f004522a60bc22bf94862bbc8883ba2189edee156a7a4930c71f6eefb9e00492651e083a6b81ac6804463e066aa9b3c06240c8abf269c48af7120b951e1a1d4c9a2043f4c5bab55b280f33b1a90a4ff3cbdf5b19aff7f1b7beb90cffdd2fbd1b2e8393ce4bb2c25e2421f0ed1924ad8d5d75cf80fa43a6fc4509694154b0242ed49b5a4a6e87f4a49b81b1234ecbcaccacde91956eef9244bf146f7746b9c36a553ed53a6b35568a40a47a812405352c7d18df8c7b742806057350a95212e43c5915547ccf56dd512f240385681e240a4f7b9f372ad7ba4f933f9e780a0c50bc11386fba66d218632bbc298458799b601e85e3c1b373c4c8e0ec1e658dd9fec554b221fea41287552e77f5e8d43ffefe66549fb8fc04c3ba1a1b8e30d1241bc1f80c582d804d0a01f74d13589d73e66c1f2c2ec418d13bd18b1aa38230f4942c698c105a7868f6f9512266dc468d16cb829c387acd0d34665220c2ad10e165cb8a7382b611354e40af5ec54f93e46bb016c8dda19728e1ece40c9a22ddf73162b03351ab7b6e6af92bfb5673fafd789b00186b2174e552ddf64a42ea5c449d29e16040a00eee62b3bd570aa5925d7dd3c2d21c464422bb2d76c00bc0d0221f7d5b05f8c2179ac5799749d9c7be6a404890d83c88a91fb2b272aa048ea4e6169cce77b9cc6ddb0157fad9168c9ed9df0b6a2ac803e9340ac3b3100d6fcf77556cfe98a52c95de4cd4d043538c0ac06cebb52aed11d6ba0958b9cf5be8ca924b160829fbb0d1f0f5d987ae3016a013b749b11f5d70c0a6fd16ba10b6e1dff871e02080e4886b16583bcf226b2d5a2184883922fd156f305ef9b43449a7d27c048596ca5a02569cc905eabccbf71acbeab07b0e59e8ae7ee4128abfe5b6a91fc6d007738c139ad654c30e0569a9ff99caff9ee37f9e2e1af84205a7482c4a0fdcf8f5db7ef03eeec971efecbc5e8494466e4c5e04b7b3fe2b89eebf720089768768b96d78e5b0b907d5e3dc0d5d87f919a8216b5ba12ad66cb01a915414d40875e06f3d73f3d4790eb6b6fc0e2968ae65615682eec66a9ef7bce002bd329405486e13e4490f0b768d4badb9fe7b12ce2c756189a97a41df8ed2c6c62222599b7413fb3179fe571ee5390942a4973a21b4c400027d5ba48c70774ec0e1aa7e6fe42994d75a457d0a091e1aa4f9997d88def6fbdc3b53bd72818e23945c8e1c92f84fef7563ccb75b674145c55d2c5a7f6847c959c7fb6c7885f536027b41b1be4d98d4f148b28579e067183c36a317e2f2dde1f48240e422cb7107add2d982ef039d658f6e1d1c077d85be50b29eabe87da3d454300d12b55d5d301e40b7d9282cbcc44e7412b30495d96f548adab3ed005c24e8f16ad4c0b93f104121a33bece3ce3536ab7f804226042d83e545a6e0c57c9a9312b0fc518cfd1a8752b7d007680660784448bbc9addb7ea43a8efa2510eb67e8537f51e14bb5b3fb725aee5ba4c87db90007c4d79083b120e9257fcd8e484c2d023c008456b1c9f646271d38c719a3dda575feb4384efcca9b4206ae39ef0f5ef83f4e368113b4e18d59a1146a75673f9146d8ca69b3bdf97787b8ab0a92a3af23b6f42824399331e03f928066977c8c56fe831c7d615ac1ef6a90eda873e07e7755f55d5d1796d7437698637c290c5853558843c10837af1c7b43c182638682659f8582c147a1609814387d68456b923ea82095b96a51158a64e319e371a24e67b0aa8e6b4665bbcb26ab5b66b437b9c68f33185aaa0684328eeb80b68d4ed816607ebd4a48baccd964971ab5ebf82aa703c28e5a51bc5f64d7a167507eddebf8a8294d1860d26bb35a1539a66f810611abbf0c760b0255aef524cf40f6151a3455eb403b9a86cc670c9d378246abce81be45ff505c8202fa2cf4a4e56cc9faf2ac1071875d878b41a5fada3ea1191547315accd0abb92362ceba7d7ad6c1bde9b8dcd39a020d894ad27abee2c18760bb3f8ce59a4971841adf462ec9cff1d5a60e2af9b84fcb37f593bdc556affb3f54770a44b40c513ca907708f90605c47280b37d2160e2fb46db69fec7704da1b6ecb56a17e2f456e619c24674100c3ded775b727036d172c4ed7e792b37cddf5811250ffd1f005fc7716aae1d02c4c344c8f30398691b528c6435d4d25864b96053c702dfb9b71eea8e99f98a4c65a02e32fb8d90bae65267ef304d728a7620a4a20993bd9ab37cd931ba124008db81ee9721da6b590efe09b43bdd089ed71c3a60b4460e4d02f3df5996ea29296a2976c98b07520823d1944ae02d55bf63219c3206dbcdb04d25ebc7ba886d1b2244f21ff8c9bd07336490d7bfca2c2a45ed03c2069587bb59c2bda0025775b9b88c35b8872eaeb1c68a15c156ed817f928ce77f726c0a943efcb3d02f401e267123b091f896d26a6b06d2867bf9b55fe341e860b508d2fedb1a6a1d3102f070eeb850efbedd622f0aabd1b30db4e843972ab2b6dc748ca47a641524455d1c1d8308a5903adf72f50bb9878ce13a8bb2d404894b3e7bb486ce834ed556b258d3ae5f3f368f5f891c086c163900594ba7b729d10bcf7c8648d0d236ccb78cb70dc4394bf4dae35444b539e960d3a36cd9a7b08bd7addd4c097225cd16114bbb76d75bd0fa02e482e20770d2442b03068644c3493d1ce6155723b2c8b827d382a23f6ada1b4b4497e1cb4d677ad2d8bf9a962bd61e8035dc7d1b9dd01ebbeab5cf982e6f9bb89a2e8b0bca1b358d33d94ac46ae4293af1d76510d5aed017078adfb98e2d37eb9b812cbe08cd537419ce9eaafe329f6b9a0cb81eeedb846aec2127b41ebc244bd3129314f8da7fe03f7de9ed6a41dee780c0f488ba031611f0762ddafa6c19c3d32ec972e95a0ba162b352032bbcc4408c21a602dc3dc148110c2bd5517fcfb262e2cbfcff4ecd7e05e6cd735017ee22ec1eb5ef08a46a5142be8487170d17a1cad6306d7117c5f68590a5dd1a34066bf43cacc2e36fc0202c19775147766320f11dc3300ddfa9703650f9944b3c6be3de02cbefc5fc69f5edfcb4b3c5cae22c964ca69331bd870b9319a8ba897dfd1908926f049879eaa615b9757ba876d210b8f915a5c9d44dbd18633846d73c93d6c64bda97fe25e7cea5f8e2f370d8132c4e96c21839e4d455aa89b06cddf8f7a4cbb228d6f992bd6beec31c2c1b6f8478dcb3be67cb19c468ceb66107a3820548fef94392cdaf528aa17bb28f5010a85952dbd0d1764cc20829cb5668b8e972308802cc7b064584666e5194b89ffb9247739f26a47106467b6471a0e3ccdc080b9cc86c6c4c3d30eb109006212a1314f232542759695dfb8389430162c344819bac618a230b8dcc5b8c108528d186b9811ff07bc903f3e80ab708cadec7cfb764c5d53000e18d687952c66705b3f120db7173d82a7654065f0202602baf1a7a1b244ea735a8b8717580020d2d7df53a6c7c6fb009215e8cfbdd84096e5a2df7709f4f5375260b504f356665e3bf0c7167061e3006b47830ea68526e8272fdc6e6ebe0305f72873763acabaffcd5e95f18d6d802ae57a86cd58d0f8b8bcc838daa9d57a81208f25a86a44c996aebcca72847c71fadfd51ad71b2c3ec397bd06ec94f55a4da443a5d94b57b8f4770ded4d70f8f43405984f97bcbec0e8066d875c2e0096bcee61d478afc2f8a2651b7184b115cd184d3b018d4067887156bcf0535ad1c7d78581c2783f4e565eb9443500d9bc11c36628d1e677c510dc95ddc952775dc83e44412343f8713a98cc063e9e90a65f77ac3f77957469f0b3c32c83ad49f65fd895c3bbb68e8a23f00d7b063e1a2149275514adc490bd650529a2dd9c949c86c6b811bbb5d9d2723d807cb6b5ee7f21cf33d6e2b4cd2c54d2812cba41b3ae0f41aa241d8c6eec2ff351b7d9c397f6d08f9ea55f263daf4eecb2c1fbd6705dffbdcfa42f2634aed5193a6e6f5312c2603db63902e7ddac55dd88468ee21232adec121b30a60bb6a6a461a15039a5d75af0484502800d17172d45f12a594d2e60f3737d74c7c2927f670e39e8901c0e774de01ec06df236d99eb2906ef9b152711c1ecd18c5a2b42d1d490ebdbdbfa0eeded49d73a00a3edf861843b4eae5cb8ea24847a5677af6e075dc3d4db462553a89175463d8e6d001c206f49552f9d9f5976f3409dcd14ec841c68216bec2a5526fd1eb2f55045f16ad629debb595b3e4603cf1ba42dcc7b1d18dc73dd989dfd9b3215dc32119a6033830c2748cc4f6ff9c0801f0cb8f251ddb268eef8ac6b4efa9aabddbbfc2a2e0c86a6b2cbefde72af893a33b45e2af6e016abbbf6cd79327fbf27b9922e6d8a56348fb282c8e5d796ad3d0d5334b7d143b4a3d68f132756e61ff649b36a291ea840e04e6d7a20ba60adcf207b41d8f7fed65dc6ad334a3aab591ab6b942cee1e7a15852e5da154cf5a1ac0d808b92419e54bc877a1d2935532d8b6e2dba8c107fb9f847a2e4c02d1fdcb7df37b91b04bf3c7d37ec0d05fb3642d38a3310a3024887250aa5aece984d71931b2f036f4e4fef56325526a5a335f107930e9ef0584cd86276412cc0ad34cb5be3d77663951df7a779c382baefcb0de007918302d4082af3fc3bc6ef358f961f3b68d496328bd63cb2240b80f66b4824b83334fe06cc0a5fd4dc68e361121375ebb05cef12586b7efba6eaa61f3d9a46e6ed7d60127f0b27356b2c4a58147159cf7b28ee8900af983e257157ca83301c561def3eef7ff5fd7f6176bc36054c3d29269da04f829fc6d5a3196ff8d2ba39356a55ea3f21412364b4637f338f1b4308fe943da9f94f63dff29c781ff1a14fdeb472b65adcdd9373deee22c66fe498f2895d75b49e10a39fd8353a7a55931731e0b25e2b4e00cfa850e50b8ab43d1e66c934998b2e714c7c5b580d2cf29046b1140fb5a957f3f603cdf39a160d167892fb1b1ad4deb15508f906d012affb3db17cf285d62d304f347393118a63648350a7727bef8971887a3eaec8002cf84b530667b2481d1ff6554afea74255ab1ec4529e99595afa243b20c9b62072ffbb3845111599aa8b2c1fbfe62f06ecc703287269211bc257b7a0e7c88c2b3b4f8efbfd7bac2a088ae731dee023b7278da907e1d560e21d0299b78a550834ebd485aaf9030e0e4413731a595c1a537dd88f48485cc4f2f2b52fb8a0ac6b8f814fad478a1958c68e1f5e4c4d87429e080ad939fcd78789ceb440ee7b41cedf340322675cba4dfe000e9424466b629729f471471746dbac19f93c8e7db94e87abd2de4502beb48f23f6b88bafa2653df24e570fbb2831c7177f2a98c02bdf50e7865458a54862b974ab5c583f1e419112decbba5cd30ad34c73a09e2b7cd13dc859f9372643649d75bf3263de351fb83ff689143835852f7269f685d10a92b0819490813b2b41e705aa0b70d4ab5c36b590115ef4dc797d7006e945266ebde185f92dd8786742dec80be0b60692759828ea9c312833c6f445ec946e5dd8131a5a2507f6e78632922e2b3d6bf774c0bb315e862408bc50776eaeb32538809faa134e86131ee2d9d7a46102199b84af5123095a0e3d0122fc03722b4a78f63f0f1bb5732eabd427d879520f49abab2c728491bde5b84ccb8735b3b706c054a6d76ff876f9ced1896dbd2a01969a939ddd95d20d38e8836ff28976e905da587f25b246e7345bc08fd9602409aa2a9d668f047523da5a4d0a56f94c84186541859f4f4af2f4609bf2a8c627317507d71e9aebedd30c5d8bd79b08b3620cf20778226709d6d85559a43d5e962be5431375b160d2a5ea613d7b9e6060a8e08dc3e5579f185d8316c109dfdbe0c48c56e08a1a1e824564f68f12412f73aaf9cb7ccd3b6daf2795fdf5d598cdc7a8309ff84e2725da90355e2f6aa3313239f82fac3a1134be95552af5e94a02fe5943a3c4cb09f9040c485ac1b7aba8f30898219ed0a83bc056209f82245f4e1dab568da06b2303e359621face38a3d3554a4aaa3eb15892fc4bb2a04daadf5936fed30f2d639c0c102c21ad140b9b1d68cde643b18772fb882c1d1a05827de8714220727e14254bab43321126a983b3612c4e85337297fb62ab1fd43ce93c753c87503cd44abd66fa15d1cd1a7b2e3b63a8c477c93cc0387694980312e9014655072247314ea36e7871c457c1502d2f2c4d100369a391166e1722c9ee7c9c7c98b82e624de9779ed120ebabf327a4b833d23242d0da163ac42c762b2bf268d46aaf0ceabb2d5945a0b4bd0af3dfc412d921d04e828940ad9974fbeae358a203692517fb793610837bd0a537f5bd386adf8b200392b839a2430ea136da63e2dd174a79408a7ae6b7fce312e817e51bc1707abef7b43d703b1d7dd2534c04dcdb60f8ed6edce33816fe6bf8c86b4285c291203db8241f6e85d8b94a86572271415787dbdf8922150c62e840301085dc1d09ba294582c14cb8c52d1fa44ae2afb2c9a5eb2f5ac5ccfdb203d2858002740bd5ecd7baf51b175274cf79294f9f21e893f656d95dd4208434797a9a9f7680b573c993c606f3f05e667663f014d67c352588d0a6b8674b44d264784026b8250c9a9931a1369f653d1a7a5b833c3853b062ae50fcb0b33d99d2cc693c9706d1b5c2dc6d109583866ba9ef68998245978c2ab24896974f773f308a7e72a47c3ed8a18600095394f9076168b76a2edcdf118a0ed689d3c9b9b1337a848c0665696128c9d308823d57cbd4b5588b08cccb9d0028cea8450a74e679279e11bed8c64364a0168a2fa5cd31373efccdb173ea8883ffbdeccb1506156f5103c166781477d4048e020cc0967d95263a3bec821c9c1d6cfc46aebf9ca9aab71f206f3ac0b57876ddb881dd78c17ac81b66b3e93cf4be9b263b8590d987bce137b89996988a07e24d1e9402b6a9c501c17e2ae98560eedb2ee17735f4fa61a1336f2200c1ea900f139087ad75560ac08f2139e3126fc62d0df9173fa9ab579c099b5cafb1ce1576e88e6bddb057b25e85fb58b2ccb5edd9e532dc1727c5871b68fef40dbfd89543894d4ba4f277894003caa6666a8620cf518ba263e28690ac52a9213c639552d1ec4c006ed6fef533878a286ecb0a5c4136a103cf5227f712a4e52a0082a2810d6c62eca7857971aa719db4aec15fc4db90c331651dc24703aa6a43e7378f36a09a87182558a145aaf5d0f8a438ec7ab4e55ee46f26cd7eec50321a6ad42e2c7973ee36b5eadb839ea22a9d87c187510b9152011a9352d4f435be31245db9104554b83e310beca68a205fccd3c9e9880b761cdf7b7fb1a95263335f1fafa771318e28c9a5d8fb8545e6a5a881d2aae9bef52af9bf6a82035d63f35b4a897e75c8f487fc42fd0c76ce79a712e652ca8cff004ba9e266430c7af5b25a799fe1ccfa0d2ea5a670eebb19f1410a55c3bf1e7320c10af100782116ef548400e8f3349081f927020991c660281c4654d9129cf785b965a538635a38c0e83275d111ab27ccbdf6da9a41ab4abe045ceb571892ea7e6bc824f0ca48d02eab618de1c65032b8e4e6798f83989770262b9c3331cf0f9c46911e8d9a1105a4f9dfd602f7e006556a895fe0f1f0ac07d689fc6779455bcf3c181fe2112c17cb8c0c04d9b3d911aa0dc0b44ef3140a3ea34c83c09101e315e335f5005d99a571c7e1fb0ab9aa637e78e5f460a417b50691c5edce23b33d849fb267c1875893878c3f043859f6d7bfa00613f665035029c54738ba6e8185259c623e022bbd5316cc15482d63bb14128ad97c6eccb05d58141348b0acd2119e5c29ebcbecbf58d9d2bd7b6f2a7c644ae5c630387c2cb1c79d1a38e966791b5c505aca539e518d8feb4790877515fc185aa06437773ebaf133c826ca0553483defad32bd164ff1fc7c6727c162f530d28a13b35f31452b89fe52f57accbf94ebbfbc102b2b77dbcd16e6e252c832ee41b790e862d6904d858c59125d1a880c89a22f8cc8404a740d3491e17a856ae9b18a871695b37c8bb7691333b95e79623a8a43ccd84c433dc89708eab7e8195762ee1402d3b0c708ef94d6cbb03b778cab2664f8d703fb65354fdb2ce0c490d3568ea535ae744f59c850a1d753472cef9bd9e4cb961acb094216a653f81865309b2a9d067608ea6c2a73ba0264c42918d208c4e40405162ce1b215fcbf5db621dd1bdcc10e4a31a78a6608772d878af01b1fee6db51ead92b8c87becd080eb6c446d444e9783a04e67510718516b3c3dde924ffcddb4938fdf6b97616d0fb3ed576a5bfe7a7fa8e63b866b182a1d291ab63bdedf2a1f6245a8f6e386d60d8fefc134ceb2c14298da6276ddfc2e1fc8f96449945cd30c1eda0c9ce1b2b838ebe1b35d113305cdacabeb0eb8255f67e26b4aa5a6a6e36903c128b4eba4e4c9cf1e4e6c9aa513e7aa1115d3d958c3f73455b0a51078ebfe8485093aeff32eb38d6c57ec86c5f7697487cf525dfa02e613903c359539da6920307d5a052de46cefe1270071e1e4a0b1eae7586f8369b59e320b3e45ac284f936e580bd70e5635461fe85433a46dffc8d3eb03a7ebc6e5624f1dc901b885b1854ac6fc12a31af673f2a7a076d4d53137d58d39a5e2c18f9aaba437f2e0bbd7c0223dda46062430666f3198e55bc510a503854c4abe0d338449e6fba93521b74c2e165ee52f6f9a533ab38b50a8d985f4d9e08d6fe4faf7da242910079672556a5acf11fab413f02bfd4b395c9b3fd5f4b459811b05bff097fadcd6178921b51a11732af2a07629701c4a9591cedf720f1f2aedc510e8ca26fe7ca2c3f68bd085009f3c9b6a9cd52cfdc6c6815ff529e0629b6baef6731de845e1af5bdc1cfa4ffbde359a510923c27c772811c1c82e6067f8d522e294c1b537105ee22588357f11e353e84f9ebdb8a7465777865fbe346470ba5917a8beaf0c6b33e44ddf3eef370e7cc00140cc3c12ea85cb46dac8c76558635459fa528fe394cef4e2150add2744ed52d4c4665aa8357e969a1219f0f63ced49f5efaedae4b4af7e65590511e8b9aaf788c3ef2d00e014f5cb583684de0d44d103eb9e7d506c524b9b0f41e5985d9059a1268c6ddc3391cd3de3fc06701adf862583ac35d20616fcc495a7134398169949d543f3468c633932d09866bb2b52abc5c55b65e05c4c2caaca98def471a75119e101e6fc953cf12f0788e9b0381c5636a5810c7b6b5bef7353698df14df892cbe3c739fbdd503c3e0ab38179e1a5c4175955b7c675b164ec76d3d04c96a4269ecfa1766ab2c6596e2dd19110a4a76ed02668acb0ea96ac4ff97eeda34c3fc4a8df5a711fdbb8d26b59e9c152a1414db86302ff6eead7347f7646ca0cbf8f8042777a886d8bf4889e63e1ee331631148fed1130ca25221631571c4c0227693e8e6a6d9ea44d80471047ab1f1c9afb9d3e7e12aef9f40d2e2e6781d781a577940d3684753319846dc33e37376dbcaa0b4f48db8c1746edaea02365696d97568c8a1094f091d31b199c28c09a69b37551fd4f875be1a2f4e9619ba30e0ddc418226c337628901f8400850704a0d9c819fae5ede11db0f7222a18932e76ea52e14c91c6430b324e6ac270b99032aad18e69f1b11ed6d23daf5b4739fd6b4615649de99f6df7b5817a3f535230357854e9f1b9531174f87f4d026ba8719503e838e3a8d8b165fb4ab4fd3e7a195f151d71c5b0e6df29343c76f58acae6e2d3b65d044477dc6fc1602bc01bdbcdf8bd8c79857334f4ed523362fb9b41bdbb649ef0ca3cd0c99161dabb70794b1da20c4a32c7e616e4e18e00d47b59d9941d2dfe64dae612f2974593c25c356037e76bc89650dea6a5f1bf5d49dbe69ef3affd3deae55e07ab732c25eff3d1fad7a79b8e1b58688d78a83abbffad98cc3f16fbf8230ef8f69c83f4d94de99cd752a2ae82ba6caf3420fa7c093b8f929297ef589cf7903de075e6f3dcc6c9993b1ca99a3490d1e63ca5a5d67cbeed5379f097cf869a99ccc890352e6472c5c3e67fda81583ab62b62b7b2d9722a6fa5061f212932e13e538a4dbc4d85f58e34c78b23b116af0a125ced11a5cc432c3f4b0775510f7b15b2f0f35d4eea20d73afafcb206312e71c6e828ace55aadad38b6228520322dc9196df603bd021d50f297f081bf9de4339895355390fee47f810b3f37b5d1c6ae0d9f9bc3d9d249fb0ac8e1f6ad793985c6edfcef57e52198d02a73911fa6c0af475d86ed32bfa1510cc909beaa92651da5872b682794e2dfa480ef813c4ddf59441c12228bf997c27a2e328f9b22b715cafc89af60e3c59dcf8de359bdf4bad3b535a236bde1e8a02dbf01c55baba0c885a39653ba68372e678cb20676f17312a990332a969d0e1b403c94aefeea8b87d6b9e195138cb58ae4594ea6cda98b088495a2f423eed8a459c8d8e4a4aef7d921b938b20644e6b4a8a97e21687d438d2023fe56e825075c8a44582f266ee4a520b3004a0341ad2ed0e54b4740434b9a3d4b9ee6afeecb55c4333da8b35f791cb6448448cd4813eca655a88845859f636a4e68831b025cd522b7094d46043ee8f26cfa967baaa868fc4ad184c194437008fc7134f3c4baed36389265b769d08fd1c268e4939bd4ed3b3036eb3a6805401fb51c2c2428a900d09acea8db9c26ed7426660158069d23203649a0bc6e65e1d85a66f692bcb360f2a3df728dbdde2f1792a925514bb71c2cd4a4a3a439d829625f1989a080fe4227b941d9aa928910f6af4699486b2e3af8ee8fdec3dfb30fc9720a1b0e4c6066d87e8b54c7469c6864a0aa60d350b29b62eb13886f7adddccaf92139399778424f95ba67d60c8d74ecdcf57bf806802ff9e2e6e40ad3d16a97806a7301cbf297d230541db06cbaff6e38208cc0d715b43ec5fb6413dbe75e19f828993d00702586606545c9af8f4cebc78937a85120e1f4ef60b64d5cb669b70fbed388b671da875aeb783e421d30daa80882df8520ff22d2ed856385044051b7c42851b067437398fa809d43b733fc5804c056b97212747f78d9fca5bfca0c0a1443ea37e33a08fa596ec61116fc310281a55afe482e61efac3173cd1e0cecda73af9addaaabddac455672ca077f6d0257505847421b0ef1a44d092b7c04dc718e15f10b12e89c17a31f3d4f5eaee4938ffce6ba7d2ad21a65af459c6cd7bab37aada38e9c0eaeeb369885fc286e096a1067b058463c9eff075d83247065e80d754ab375045cbf553b789c6b97e004109832e812fbd608d9c6a314447d1401588567a1b52b0ddb7cc49cfc7d0338064cc8ca6ea793df299a172c7c20297ea214c05d94ae06f58b87660196327f8ef56412e14bc80ac153c15acc22961814324de4d52bf0ceef53d3a1ecc181322c51f5fb2fdd75e4c0e0ea7201862a12c6e27f2c1ab67787efc55887b702ad7178f3c83025cf10be9a76edf8293c7853c51b6585f1be9edb42cebdfd728528694cc09900a894b1c27fa1861f9abf11f455607fe19dd8b35c69b86c082e9f46380cdc414109e33901193e106abfca785c47bd9b5a35ca2529eda52be86d6524b95f424b92ef1752df3410e169ee650de89fc62f4b4c3fceb9a0487a129bf68848287df8909b518a344909a1d18b39b746a66758b0a6676268c826e7ef7b9335ac54287b7f9c8c1990d7ebbb6bcb8ce41ce4186f92f858ab74cc93905d2f876781750206c4448871bf3aaea493129fa011bde17bbd34fba12ee96ddae25ab48fe6608a882c642ff089340166fa6b5ef7e537e7918cc2a0946bd53b1c564ad6d99595e37b2c28f91d90e8b02176e4c163ebbcfd4a934c55e72baebaf8c5bc790c2ae7e7cdbd50bcec040f676204092180a3d8bf58cdf8778003436adaf081a196a15b2acbcc9fdacc63a3a3306b36a46a6b2a7668bcc581ba5495c3c603edb43fec8fd6ca1eb7bf7532a971036f9e3cfd1c9cee1e2cabfe815a1a3e3011ea649022c629731495f542987c5a95d06b4c912591d487ac765d6bca9c67790c57cd01480739155cf619bd3bfa397e08309c40687cf5efeef6b1bd83ddb36213e5c367973c34e791e79ab552f718ce070fb2e26a9d4b86e4010951a63d29278cb45a6d64756a8fa74091e43d975c16bd23b62abe359a3f21e504ea54410934a478ad8626420d3deab47769a8529adb01123f891c2f8d5abf45fdc98b0e4b2d1db18be238888f362ba846ca961e4371c60d1044d1a97c846500115fa17f669640fdbb87258261ecce9b7f4cd2191c13f6b726524d2a44e61648b928fc205aca05342b46d45c0f7e85dde4ba72e82c5386a7bf511ec31aad2e091c920f9e2521ddf712ba11c97a6ca666774680b7e1fbdf2da48a224dab17718ef3cd39d4e7726c7a5a0381348dd3b6d05442780ae407167ef7dff9477c6b2a3134f86706c59bfc025488e5ea7805e799d021a1b86ad5b16a4b4cd9a7c57e077d102467afdfbe85a142a4c99aeb2415821c514acea374c184bca2c0bd7a32249f3c52484507b611b13ffbd8438b6b9753b5680f37ca4798683516144f89114113ad38219904edffffbf410b7ad6e1fcb3eed273efbed421d7b6e1777ad5665d3fce4f040b41660cc95d93a417076bf8ee8c0ff48108bf45c6290b09259ea881cee1f05a6251e0704fc6a4067f28febb703ac8f402dab82851d8a1604191563f11adad1ec514cc0c7b33f45fbe89e26a832a72aab594de1263ea287effe12aa76be9c3e88c7662750cd364b2ed208f3e06e8eabea5d576a9f263a7f4d454225402606bc7c2c310b9887d73e9f6c4cb0dcbf436c3207d7367843346d7c69adacfe62f57ea9727dbfe1a9be8dea869eb15f15a6778d74fcf4971f471b15f531dc81c6793ff5688cec1bedf5ed1b7d487ae1c36c1c5f58f2427f1ef9e835df20606d2378dc887488fa9a1827eee99031f0d5875248a8880833070ee53fb05beea5e9c006f13f98225ee748dfec0f7baeb7b07978446c9fc546cd62449d4e00ae553abb343a1f2a288392e12c23cb28da5df5a62fe79ceef8c8c3d2018730beb18196049afa673c03270c9437feb7c46de718cb78c254beb8bcfa64b9e0adfacdaa99723131940e115297a7f49f4cfc83817298fc76ac0aac0dd5d43d863b6a6d3d4a8c8544b07bf9479789bbd2b86b372aec3d7b3fe14b070061373b37a7d8bb832543cb8ddd20f4528a89b4d9a037c13fbe627ec2fa9a2930b380e7bc51ff3516213d70362fec3ed60f830d98e37db5b93926a0926421a559db0c25fd0ace1f6680ca191d1a8437865abb723ea0b08feff235ea06c3496f684ce5953b216de95c49429ec999ca2b19c8218957474ec09f1d3a36d918718b6d36bb2f60eb0cc5449f05bd4a3ab43f7ad2d0c8bfddbec84bfe47986512da47df8e19a3f7a06beab028cae04c482c93a015d32106a3da4ab4565558706b857631e169b2829a3f514adb95f84d7d95803677008d9040fe9f24aaea68c7db77fcc28d43a1eece39ab411b97fb32750f274cfb4585b8502ca7c012bdb588bdc78ccc6cdef0353f1fe03779bba1d4d26783fa49a476ad9e3c0e35532ea20e78ee707ca9e579a10d2f1f7817e36698dd32ae088d9499140bd05c1f060fe6f529b66440744fb804263a7eb1c6e6406cf74a14d31ecd39a3bf4925d9a5fe52c5f2c28d6a9ad21e8c637e712df11c9ee47350579633efac03e755b644c375c76945e7a91cc0458eabd7d1ee7599bbe789349417b782c77370ba4c6f77d846837bafe815ce2426476f25995c0862110da81c51b7a1b0a553d74eb279cd47fd4eb65b7107a02b4823db024b25c2e8053d655b8f90b272b1f33a97f91131a2a81aedc82aab3230b7ce8daca725d2a17455026ad6c3e310e2fce5a64a0189a653c74dd23b4389eb70ffded55aa580d5baca8bcc0463262ef559575723afa6a8716d07007d1b0c7d1308e9319d12a2f0ef2e62a6c2b2c4547c109e37613c660b6c01f9d10fbc121f34a0a76c4b2d9305b76bbe4cc65ab4b620106b82a9233a6fa46ade6f9afd6c148894f693bf959ff1b6608e0fb4f98b0da0589bb82d901d65515f5a892f6feacb8b78ebb68dc15845a0653eaf553d4fb1e280de4b0c14ef341c987a808c1d15935501f2df879edca6a73adbb86a188ca835d043d366055dba9c698aad7d2baa53d26b929c9ed0608adacd7a26d4259776cb6c800d710a0f48b0940943424f557944795c558fb2d6d12a499592719073f4b64c141b4802041c3739a6d4ef369a541162b901e6146133284a3100a74a874671e40b1261e3bf6cb0bc4f25789135aa80bae71eadc03f14bc263beafe8936377bad99bc6ff9229152be1375a9745a178b0deef6c59f01daeead651a784b38f50371ccf407383df9632f7066a01a297618b6270ef7c59fe6a954fec8f76193531a1a7720302b4fe4429ab7b0a2f02f98da7624eba87e87bc02bd73f96b1488aa9312380f100e4921e45579b316eeb39f127be6d05dffab2542451b7586c2b38c8040169020efc5142302721cc06a52d4eedfb5c4a56dc266dd81c5f3b11c40c8c765245638068952553ad96122a734171efaf45c985432b9fd10ffe25fd4773c184bf3e0f3292b8991eb2c88209c635ee5ef66934d42c9216895e881af4821d6f25faa1131cc187c7f96e5fd1f6a4cde22a03cda38a7d32c0b428933e705cf20b65319838b993c35525a507dc3ba68af8aa4b7a011e17f70a67b0bdb48ab8fd8cb796e32a9cf5a1f5626bd127d78d7b38b5fa71ee621be14cd460b2a45c5ede0dadec5880bb2aa709fe4c94f3a13c5ea03147663cc1273214289bc82f865839daf9284b8e344220200e34c2688e31456b928ff045397a83c000639ba4539ee56779235b7ef4bfd1c0ff60d624dfe16b925efe6bde3d0a8c9c3893a7a7649a636247889bb9e05e008ceab442b03a622f84351a61c9930367563d205ed7680f47a054187eb5dd40beb65978752facbc41b14955c7a3629601282380d2a489b389f561864827ea8c87e920608be31b3fac9e3cef2075df8f84b608db354ab5ae67e1a6e03b1bcec1d07bf147980830901cc3c9ecb544bb9ab1d0340c65280dcbfd9dfdae2c362831a863351298c9b5d4bcdbb73201e73bb7cc120eae4953f11850ef84bf8dbd9085f64d052ab7b58df7cebccb29d8413f26f04946978629782d701357959f78e598ae23a1d131ab92525a3f2eb2d1b929c4140439ad7c0221a59c503b9ed7ec471f580c6c3eb2496ca2e6fdb059c192148c68f886b86e8a5b6755681076f4830e42a0af2e1ec7d4836e13ce6c9bb20e525dd2123e4a53b7fc900745b43206a5970fe314351f81e43e882a7d2177f169852f360c72699e622391729e18744aa8025105c2090bb956394956ac9a8262e9baf4756611cc0815f20092b477d7abca9d27491488e4d762a85106c2328eb794586d913dd0e03cff9cee5830523c00eb34c1ac7782fe721cc56143a7575d151cfde3536faf491cb4d326e3843a9b31245867367435cfad6868c88bbb77aa3c7f278c16d364bbc88ab613ba3438c02040e9421fb4e52adca70212493f16971cee32acc38423599dd6f2aa647a222481e0cdf8ac78944313a23ea15fa5ff799c1d1698c2529497445ce53d00b790520ea41b58015242a299e5458c8b91aa1cac039e190f7c9ee1fa644793a0954de497265b2082f34c484a6e89607128d8ad313d7673ba62b124f413edf686b7aaa27d388c073321b01cde34a42ff593f238828dace0807d44623401cd43a44822d2b45a10651f150d0802fe6045490affe4f7675f14fbf4b270951cc09bd2c70522fb45947245891fa48912e2435d1503a907903eb4ee1efb5c2d1ca96f8703740b862b639bda761d0ebe2ad6e2ac8146ba78c2d74e1fe5fb6dce64af3cea7daa23e4b0835c58f1dc69ff57558546461deed3437875f6bca132b730edf3e5b275268c14eb7ab0c2bf251b315ceff5ae0d2ce5826a8f4ff4bce82df803cd2c8b14c10199b43b2e5d73e5bfb5154103056650d90ffa933dc90c32ff9dc9602a016424418031883ab6a53b8bf5cdf07a0a0cb22d87584030e29885a7feb6d8699a18a01bafc36281ed26627d463750e835514e200850851188c32968a3b946225092ca8c2e521785fd489e2edd942ae08e72ecf4da9a64a5ca40ca1c75a9e95e73f8c5d4cc1766e6a2da88d9609f234afed0ab597888a9f91feef94c8d4e44eb1452303e745a03541a5eb81ba55882cccef94d6044904065b66fe03d542eee04f05ffcd9bb77b2a700166b2a372adedbe79a6e3472d6fd34d293a4863614e3a5a13441f8fdb2e24230b1eb7d95137d39e8ac7a955abc578849932133d88cfa8b786da8f742602aaf573d904d5532daffe0687ec68a68c78acf88f09c526a3237c12e30e6f7a5240ddcbf5c96f53e538a3ce95261779e4d70439759c1b8fb57a9b8d8a791d773cf0f02e79b1b0e02772bb8e61712d27548fc904a2ca7b4c138600e2ebe9f1f46e10d1c7bea98a435fccf02fdc8db7af8868c93d18abd661090248827fa13e54ae5801c52688f2a70beb3acce8cf1522f1df3a4bb7c6653b33464778c5d574d45be3222fba67e6c4956c7a5b362460e3f118ddf1b4cdf3f38f8350c1d15960feba90041b39de8fed8750cb4d87a4dd4d252f91245788f8b6b9a44e54277ff27f3ef4c05916ba2616dbf0f32546ed00fb102b7653accb4e551c9711f55f70583cc49e73d3c49da326d7292e6cd81adac677d62a193252c5c557d5fa5b22546280c2d9785bc1b722020fbc8bc18a4841bc3eebef5c6f940703fc69b0b2404e2efc56c340e982f6d661b91c9523ed8d06d99dfb7a9b82deb69954fe08ff79b3172e2337d7d81221371543466d812cd73e134b37e39373d8d0f7ae21d4529b040f2889a295b06171dff55f8e554458c2507943ea8ad1868e1c947970f63612d18060369adea8bc0d101b1d00ba15b24f9483efbf0d79d95063e9fa28ca35bf10b2233dd488527b4cbcc6007063c5c4b5e69d6893ce61119c45350bec4315628b6f11a9e59738458ad37ceb27b9c26d5e247c10b0f310adf6d205fa9adfa9da9fe177e18c59a46ed71c501a4fa19bfec9aaabc041aeb2464b495bf9d9325de7792c6dc3d15dbd3e06453d7e032f29abb06045d2f027fb10bfdc677209f205b2be266826c454feeb93cc84b522a85fc7209a9358783e859dae4eb14fbe0b34717a404987372b5793c29d06745693125cac0bd0c0b3da0c7f055d71ea8464d0eb219634f37e67a762fd5f9715d894f4da559b539e4a57c8922cd0761e71a4501b8a380d765d318c45583092024038451b4ce6219c1d7eebef2b826478339b2f4986b30ceb69288501cf84b5340212472b53ba3ca2ec8859f5aeacdccf5e3ab3880d9ae98f444cea33e6cc696702c885019f0e56248609d81c4402db562ebd0c62970e7a849592889c39bb8fbff851d402abe6c039d15fb832298f2412e18a7e90e20c34941af724dca0b7bbe7e9c14d29b53b03f07d089794b4b839af2554e0e4b374875b32fcf6231d44d350169fb1f706d6e85e8029bc25eb2a37520e2e2dc2e3d7568b2b3efa87e6a57cb2b452531c30ab22f8d7b0551eebbac9115059990bc55de8bf9bb2e64773b59a357b4b370d7dbfe51ac5adfb1090033e049351019d3121c47012e628fc5c9163f25d0ec865aeb3181453a40de499670d03e81b004e5d25c2df81fbaaac6cf3514c513625d3ec4e9e93c36ba41aa117a85544918db07256b9bf4ce6d41d0aa50f612187ccc828aea1b0562a81bf432064cbf21f820b3629a46a9a3ed79c99f9acc898ec1b12bc7d2015e014b5849e220582b3da472bf39247c97b4343bca3dca64400d93fdcdcc5739fc89bfb1a31c6a6f41483dbe5e06b4d1fdc5aeb36c5311f93e72b6ecbd1f037699ae6845859e3e8dd073e19e76228ea6f34c10402bdd7fbde633b36d00472e3fc364b665ad4407a90d363560763638ef4279aeb7ca5a7d07f0ed814bf574ca20060e0f663d0f29b61e9805dfe81783e43eec0860732b34819e3eec504c0267e3d4c75cf5b4b0f3eb533035553fefbe0939f6764be2ec419c932847e9d26ed917499f644dd5be5d15ceb505a7410e89ce84ba0a252d3e68eca96d108f6b9547e3e0e30502a03d58af609d4a34662f495fc3a0a3e728949750f8e96c89ce8b8342a5cca5623239a70103d70731e61cbce09b2dad602771238fbaa08649081adc52338b766c54efe54ed05711e51e71d0535ca77692a652fda90c8073ddbbc106a6677c3d5961916d510b8a69749ba93931681070d587c0fca229a2fa3e8324442ddd0750be2a517b6df5dc19113e0534f87592d8b911dd506866ce95f8459d1744908fe8d6cac410282c04ada0542b64c323288a5c59a9d878c56447cce7e0e51cd8b572e890c881476ede2224499736c12523152874103bb302db7205928132e045008fdedddfccd2a4a0972fea9a1cb6c5a9b23ff3798bfa63381d1b4b6ae1d8c7e26aac1dd3c9c55cfe2a035cca841be81523b77410739495ef227fe20deebaeaae9b96f02dd5e94a9c2c970948c3d1f33cf054dc24b220e97bfb95a5cda2c1b673c322928b9025894b43823cd60771c4419c59ddc6a8e7f532cd63dfc59a00a36b0acfb1be57edccf85492f9866e2f5c70bc9875b46e5c63f7e00e9dc7be344561b159fab51cfb694e35c69ac7f58ef721e996a37bd60f8a15ebfde67cf3289dbfb61da234358a6b03cbc0404a8ad3d6519383d67cda9418d54f50bed82a2416481d9a176f30c7529c12839305e8d67f179b9d7ca0ef1b5e8709ddc30df620c4c251a1a5261c6f36079f056c05097ce02aac75cfdfa0888f4b14e34d7b43df068d978d00d437383e22f48ebc31f0224e3062765e98c6d6fecc75f3fa99453921f9846efa8a2176a1418d6acd6cd74a6965b883664ad2f6da2cec4191219b83669aa77347abda4546c200552d6f9644d9a840bf71302a19b7a2a3e3ff34f68e006e9a98e890c8ee5e7ad17b5413f03444177850a4e0f499a2a061cf34a800b353938bd1f5113761d0c2e2c520269659db220826b07642450c1a3e1382cf616ac27f8a4ac63386e93f9354d2d3975eb12e3ee2dbc4e74ddb371c31c4483c399b6f2cc1263d084317dc0420b914038fa1e9833dde30b21260d5f25eb46aa982cfaacff790c53ccb9e8d35e4cffca3e1e1d4a2991b43d01b7e78137bb59a7df910072e3948f9cab8c01214d7329ebe2200fcac099e0e56d8d0703faa38184b3aff578d6a8ba8dfacb53a54b286ac1e0c7f040430b7664b13483d3d41eb54bf2488ffc996f11fed5d0dcf0072a5ef6ec8162313755ec7e4b5998d4dbf3033ff8b51163ec5ccfbb6f189975900c2725d8a794675fe411e72502de6c05c12d2569b53d2dcc433b8fc3cd019f7db80f7c1514a9ecd27927d043891683569d6f11c9591a91d6ad73b85092e7428b4ebeb264ad3909ec185ac515fa0b05e8c1c3b5bfbef9bc0585d2aec7c2b687a5a95da5c47d354909f0d07d1e2a48d96589c3df2f6b40c095472af0118010d8d9d50d7954d85aea25fc4327ee65d75fde57218baedd5bc0ef13f39e5f67e1f3dc1a226ead32e2b387bfe6ea61071773e7a764edd640665de8b2ea6f89a2e5aca8ab28083cdb81fc04121e6fb1c006ff1ea2396cfa913ee8e2114b122b5d3392da0c334b70715d3c175749f6c71494f55542252e31ef36462367e72536268b93b50b0b1e60bb6cc50d4395b1332a10f4bd846f4e85e3e463c7d3c2ec58f7785ffa1f87b40ddf37a86ea48ae3605cde84d9b35a4dbed4f61078e05a2316887e587041f4d821713099f14d3ae41980e3c415a4308989751dfa63c0f6abf9d2a8804d8445d5e226422c09abf3e3d29bcce7d2815aab082400904bfccbd13b6e6afbe8d8e2785b984b025f4ea4784cf8769a05ab820ef54c11ae0d3c40ffbf163859c1c240e134fffb6b29cbfed6dce27b24510f00b3cc0f9f06fe6661c677f6eb29a8cc815b1d969e986974d015ffa73709890d87611dc22492b6ac8ecde8e0300137bdcc500d39f4df87822965eb50a3432906a435591a49cd0e6e1e291074ac9e3f3aa4369edbeb4c815f1c6e6d9d065ce5da26a0765f477c922ab7ccd47c4e571bb4bf6e9a5e24bb2e80cafdec4686aa51b14ffef6e2260ba72e4d614000799bbee44396f115440197f80e27c68e59e02fef4b9b74df48094a4c3eb9fbcb263644d3b475a4945228b35f4b20148cef0b52ba34fe451f3ca4b48a8850d9c6ddc2f27f64147060a59900de88e290a9e2216b5b9c9ff8577d8981d984e1995ca0ca2dc23987a62bebd2215f59efc4b18b36a5529d4868e1637d231cbbad9b9b1ee34675c5f626cd55de675e168135a6b922fe58493acc480624e940550ff962fe0cf4ab5c15a89c74ce7e52524c0ac016574e5bd84df6aa4dfd821d0acfe43237cd8fc253b13184e5a566a5a3b2400d41e9029fe331f383dc6d02647bf85f50ac3509b96306fe79da4da821883ce212c6d304442eac053050f86922f68d98c200319585a2c055710cc1af11dd3a7a3ae5b3f5c3b215d1449c3c131061223de3cad3655d682733733a2daf4c62adc3cff0fad2798034c80ee5f17f034120e810a0ac33ac1e444b8a14852dc10cb9b76e101793a1ae12bce1f6aeb2c3ff7b7ffe86c303e08e7d164e7842368c86467d7c81a56369929a2cd86bd831be5b35925b78280ac26059249de95ae392d37f969ab05cc520586fab562c9bd4c33cd869fee324a7fb6c8d5a68d4a08a7ae841c4f44374ab7ec03cc5b758f36230e8c01a1ce4c5434e07deb104e7e0edfe42728ffeef9642b62714b655401bb33148dbb5f873febe80835f6031d7b25f56ea29f09a8a28ecc86615d45e1ac66e5744e3e100aefe7705507b55f093ee140ca03c4cf67025e5831f76565c7e79b1ebe658a4a8d67dd836ba5f2d6cfea69b801a21e433a2d4e3ce306934d8e783309ec1620dc427840ab56da9572aca4f7b26471716b6953bd05e8250b9dc9a47c1c4a8f249d969a63045086a7c63f4f4182c72577360fce5713e0ddbeda16e87f56c8355c9e878bacc1b7b136b3212e2650ed6def5d0c8e51dcb014a062bba8a79fd6e8a09bee8b3f7cb22b30937d984bd36728e5384ac68206e7c91a229eccc797f1959ec57fa0b2edfcbbbe86bd1388074617470024f747ae5078e45c0790f126cf452b9ea1edfa26d5f4325015fbc4ab009b0d9d7cb9d2e22e1992d973d8300abcd99fac93e42c4e31b6b0465467c7b675c5e39fa538c1d8256c7298a369bc70b8fe3133bf6376aaa231bf79b47b9f14fb590afc8fa87411d8b3d75e67db5ebd851d1c8f52dd1e5243e15dbcf26b216f2440cd6ec1fe64bc2b96b26806c956062da9c7e74e074dd07146b4153268f537f3b3727d86ec74474fed45ad68e661ba4d6c0aca8745ffa2d8b7290a4bce1083cc918f0330817969205c70fb28bfa466451a2390f1321b3d11e9a60b6c1c79ccc28e696898a70401c18dcc7fa17fe1f331f0a0898653fc756d5de02df3bc3988a63cb8cc6052db01e037fe71f98aa1e03ed521eab50d7afb3880683095a4c925e4a0a3c3cd166a21747699082a37e1088dd2463181b2ba90b77bf33eb5b959e8489e75b2aba6c93fdbd7bb57de34c15dd3cd604660c48241ae62b4e23d9af1d34809d6d36a0a76c44dc63bd599c352f6da1bcaadb5101c5412494b954b8b98ac40d90ff7f2500aed0b7c3428fdff55a52e4b5584625c3c9e53abc336f59c06fd05b6a245cdb335c7c5c81722e070b798fd9b30c2d28e483e31fa0e31f83c67b40d9e9279f50f9c9263717ab33fc14e9cc996f890a948805f53b2fa6604cc48745048507fd3768d3c3aa8bcd1d7a1318574cdbb238fdbac1d67b95f86bc5d26cb83cd5e3e1e3173215b9817131648c8e6ed3ea3dbe2023646ed33e6efa8ed537a7d33d01faf128c2aaa99f05a5bebdf8ddcf60b8b0fe3be104794138144a39929a09d284918fb22c9ca94862f6cdb9f0f799b82b0bc19be537912e80ff93bf04ee8fcb0cfca69674d709635e882bb0a72c555d242cb87e26ddc9805884887c6699e3dbc8f130586b53b245d9fb2855144772f95acc4eeb70042405997634a2eb91eb28a8172ae37656a8c194888aaa2c64ddd37c180db45162053b3d0fb4a2d592eb9a20408b7f78c44dfda5aa0f51a972016f54498a8951768388ed98e6c0feadf02b60ff0d56cdc52377209e923a3d5f007d74c621e704ac839506494e199541c9a6c1825bb0180bf5c34531d169e79401b62b9d28ecd917642008f579f5d6f930b094c759023c95c207a836c363a1591845733094b5a971d737113afdb8c9cff0355b963b0bcd7415ddcac7b9994d0deab55ca9bfc885005a460b4d7758d61650076c89d76b34de10478764b25d49aaabb9749e53b2735e38511c8c97918dede03a8b1ae25a37bd523842f35976eeffa6bf31481a07a1b575ca90d3d4b9be231e69cc2e2f1560597d0e0f6939a006885248318e10a3500e6d0f0126eed30e7a6ee37d1b4d90369773bb113ab4211e80725812ab31e326a8178fb584f0abf507d521d1fb9bd293b021fc185d177e6a336ed2e537341983b8d37265c1cf309a3334b8d47c0c496b0b4a2828a5dd71453eeff2a7d34aee31a4b6dc47676033c9c6ac0a7e95e572b44afbe51e83fae328e39d4d336ee2744b3b210004df74370de331d69c2601ee0466830083f16afc1094eb0fa45ab8c955803bfd21f247439e76c6104cb580d091d11e4486db91c8116fcd9644e1120b566d7daf5353337398710cce1af227a0af051cf8f0a3c4ac62f7415c01933efd76740a7e28c40df903d586caecde6d36edb8532885e44d4edfb3744d829e4a5bddcfd9458a99efaac2e44fdbb9d109b670d650d8d1a41cb13a16ffda7922ae28cc4be5404078654844a372053e9b46d13a575d99f5dca31d8f81089ea7665013235060fe8ccffb615d1d60b58b0889ae5a29306f7b78b64093e8c2825c2b4db189887b28b94c99ec6c2a4fac9aac9c88d591331b15fbb92a5b39103b84547d72ca49ca3a146b2aa50b5de77114074f3fda100d2f0eb68819f940cc70b15b878ba83a268edd3a19747000716b834c5aa2916655fb7cd008591fd92b3a4c028f0a5412b329f0bda739d08314f27fcdebf8061de5bcb7d7ddb10c39488b279796c2eafefae948ae5224461c361ed1bfcdea011d33da7df42036540a78258dfa3061b7c8f7a4a0d54808243953aede4a98fb2c95259a5b461c61adfdcb682bc64c64ea31f1d35ac3bd9311ee908904f97f31466e942921c08f2381af0b6dd8a29fbf388c3664c49120a31d57eece2ea6e06f344ccd7e66cf4ad6a26c45e4fa844e8759c1414379d21803b90ef7d6cc4b1ddc98e4e3cef6a5cb86f127b7accc0628eb88bf13e753b82cf90089e1ada0bd1d7f66f58ee76b7e11d7e7ec0ac54574202104702535fc83c0b7ee948e5e59b530ebfcfb69d1443f8ba8e60da3eea20121138f9fe57cc5011d8cf959823c85832d7603422b8b413cbd73798f04d3114e703592a4417153aa5d06240216f57655bf7172579bca3437ec215147dc4a331ffcb5597f26d03d6392721a776366f7d608f81294869c514fb7d70898b07bd8c5f47800e1d2f66682a74b902fd706a70712a4c1ba461bb7c85bfb8551a622c6ab751eea24e1ff4ea8124f5bdfa2aab32cffb7a0a0955bd0e92def2cdd4c367286c7733fadc4a06b584f28836e0102c94f1334657fb50a687bf8064bdd10510dba22c00a3301f6e0be123a7833baabfd129dc109dd8133d0853e65f6b0c4e2a2cf9f1d0051712f1ed5a4053350a9146f850245565f3b62b84ceee680c4ebd279b65d0c8e67aeb566f7b3503d0426620c1f3638556b9fac92dd294902e94e06e8b611d65977dc913dcc39be55e495eea6e3fd2a91d90c9d596b47981ff641909bf23e73f09a6c09ba34729d5040e6052d2f70acb6add8c88568118d2adf7a2a01c52c5e5537d26b9fedab51302a62bf0d3eb45a2c39fe138546ea9e0f170068d8b884b1904fbc642c57045b2e63916693c788b8a27017b1d51e5e948cd2cf6453d4c17b7f9946d24173c4fea967eb8beffba6a1981c2aafeae1fb81b6f1feeea3c14940b45eda947a234022e1305ab258171761ffdcfaec4a41f6cb3368af089daf19c777577ea91d63cd3ac92fed29a3552c247f3b12dcec2b7388011975adf70fac379a6415c42f1305bb52af264fdbbe621ff5199ee7e2a66b4d20f067d54748a9bd96955314e200d1ce52d8774bf427e87b289d03062f68018f176300cab8074c2bfb5df4523da291e4390d044c7921341e43069faa32d300513df9f23f7f5583ba5f55f29f6a32e4c7c6e5e04a2be6462850a3b54aae0f3758b0569a55118b05cd712b0331298742dcda54d2a112fd3da43d430717bd50e5b1b5cdf37b95bfe0e9f3e080457b9ea20cd5ee88529884369541a0d9bec7ee5616d64ac1b6b5589d1f88b3b87a40a808a2739371f49adc2917373c2e2cc71d0e1a01dbbba0f4c8599e3d2791480c6c25e1dc0b9a169716edf1d98a7c609a81141a3fd288033443fe6a4bed45046cc7cc8005c57f1de263288b8321f117a8a43638bd5ac3c67f1d0dc8f6f701f899abf3f6489696bf47a4c857bbc78f9ecb5e115e9ae938d101010567c5c6ad84a722cd760adfa431ff559f45b3e5b9dfb875f2688e2dcaeaecd10eaec5a2f58751532889339997206e10b33ca9c0ed93f9d9d001b749a5d5eea01dd2d3f656c5ead5e5a83c325162352853de97d5501fc2fe1109aba899dfa71dba3bddff2b182e49d073ae188426e66dde3cc89cf2519587e7737b544ab0eb73f361e3c347b7091cb6f211fba85cd75fdb233bbc93ba62b485ec2c5e2457a6045f84c4e7c4e186bd835fa9baeeed247a5559428348548825b8b6986f3f510f1dbf5fa4ceeac8e461c386a7dceeb87f8be0e30c82e6726d768a555f796a6b3d70c1eb0f2bcba02f79d3d450f47b3872303ab4087b2c6ded981d1f010cb74a69fd5a49f069c8966aa80f6747ab7e0bbd91121395dfbadbb0c2bf7f554a6715faa40e23e8b3ad3d9d06269d1dd9c02b274690ecf533807e5c5836ad634fb662a911cccc202555918794b4b65551448fcc294fac7a794926c7843d49c8b419e5e6e87d9108c4d8aafa0e61e467083412cce2112df9d2e8a5a41441a5b21b4f94ba4ff54a94463484f08792480b6b23772916c955b762707f3969febc273d7da006c0754b1ab25b1f7175ffa51312c746803bab4f3601557f23c1f5b786360941647131c4ea6a196ebe4ec6cd5393a300b61c26f5e6c36ac49227b660d2ac512090b8e59929c13c6b7b544da93d4690f3a775b64c8bafbb49f2fd40726ba759cb4f40104511415724d762178b35f9b52194fef2d9b4c08224b428004908ea1257d0b10864e1ebf756eac82ab408a2910af09f9976eb01f271847c290daa3641e61e807d0e33805778d7aafe10421dfdff54a893a0d5333c6a2043d3f2f2796cf61b7cffc2d1fbfab1215b8e405682237171580e55c75e219940f7bfa32c005de9fd44fd72070d678688acf1a4dcc578d8748b2742b8a56962884531e025e7e0b97c1c5b4a8a9cb34b5c25766c3aa39d0038d81ede2c1d20b245f7d914019d1aedc67c6d913b0f2055596d4c9f1d328eafbee2b4b541ecd794736b31df29eb5ef00c9dd6e171f2688cb7768491742089e61658ec9f1c29a0bad6a6214a777a9e21896af35854887a41290a2bf35f853aa2b53f9c5575a0e51f0a7d047ff86f83c4d5cc22a14efbb1697f75de06a1fd8eb16c98f3ad44592f096e2698078935bc7d71c8860aac5074f331a5e48b950effed8bc127f627ab1d0acd1c537a8ae4a2c25b8646b1a8949b2f2cc8d5a44254d3410e45c001a877fc36782b74002a863ed1b2341489eda99bf8aeb79eac2f7c97939d4c5ad9245bc5d54c00cc2a3a486eb61947e8a34692eb89c11881cdb562cc0118fe563fcc82e95aa5ec96e8216ffd592cb7c62afbace345af173ea044dcc45d908dcff6eca52dac4d35d77d796e912b18c246a15a9f869012987edc6f28f0675efbae443ec90fce3f0e10e517005ee47f4c0ccfc81eaccbe160f46073f3c08414eb5901b01a4c5a90109ea1b8c3f21e2de287d593f16f02a80138c1e98e6cddb02dfb51de979ec9aca2d79e3d30bb873a492383b612fb048c79e3c93fdbb46544fc3c6f9d6d08c278c4b9c4b70d6c4038eae9b0815787bbf348ede402592f95637b8deb6759d0b348cc63cd71d2840086114acc9d081903afd48516dc82443ac2742b26e6ace5742b97f0be72ba351fd80af97bce9d94824c66f42cf48d91f243ef10a354c1144d716c725bfbc442315ee1549903c6db3a35f34f325038489f1b55218ab5951e286a14c5d54fa85677442647c5f028bef67f6612c1d4444138695c48d8b1025bfc25026274f10f318cf297d1248164b33e464a334bdba16c16b33c53dd210f9f68dda8fd215cd8685589ca3cea17795ac024ed7272aa181d86929568dc909f47e6a1693f64afb9a0a252a5b62c5ce88a14e19f153639f09a18f346d67ae8cfb3010e27483d43058486075afac7c40f41419fbdc737e8575d37daf3bbd8eb48b742cefff37d10564064e9a4f825406100d4114507e7f9f3a1ec11fe1aceccff9f29d4c87c5650342aab19cd1a1a852037e516d73132d16e3313e251b742f7cbee741e4772b8370352abb66bacb04066d7ec521c605dae2cef77842c841cd4c2f8f4553bc2149fc63dd6bfdacadad3eead2fdda7868f36d914fe86d7152dd97f3e44fbc2b73a39b889146bc2e10313104e5d6f9574b12ad6eedd88068777a1c154ce3ab112fcded75216fc5652810464244d7ac58a193a33077e6d9add3eba6eaed5c730de76b7e9561b64fa72905474efce56d7215acb750f2285c6a130f656b8139029c9bbbb610447b3144f587c70f3e38a5884659934252427b07b7e9e43b1d3489ca53aeb3b62579e5a9a97b18551be38c4f447034ee1b35fbcec9d4f6e3fc313d7b33c5f5ba98be0ad07b4b67592bdf28b8c3cba8ceccb253b7f673fc52144b93c4334f88444b931261c6f25df19ba3c8ce68182ab0832cfa1823266c5eb6624e1637fa896315e9ea2d23f3239bfe2b8ed2b7a94161311980b5c7a666d04c075efa227c21a3a0d4e7f79739a138e7ae7871649ae53f36c76e2ac254f02e4bc57d2c9bc635fcc90a09a182286600e25dc6385a51430c356e93eadc89bc03510a7587b1ec06cbed03756b94627439f4251e595be28b88b23a5ed044b4d6a8cf6acbf3e12bb89acdaf4c2fcd2b4b74dc7e49967f65d349fd71ef1b0ae8b1bd46691377678d67c25d045a835c359a7cbd1e078d211731d88510636d327e43a8b92f754da4c9d40c808c9cb28b0c9ef79c11d0966ddd8fd385a1365aac313f173ca441a409a8b82fe711ce87e4e96475ce9af10a01030b9b39ab9870f2745b45719080e1e5dda79ebff5d5702e4ffcaf3b2ca12205721dee7b3543edd6e3503d778ec31be7f090513f182d2ba3e50983fe21462fc08263452107e8ee0c235a8a3db5378ce895492cd6c64d17c45168af245a3a38998f3996cb4e775c8a7be5fb2191c475a62e7b8b432699aa06f06d214c8829261a31b9bfc0b1bfffbfaf0f109f760dc1c850688e456967bae5cc6bb71359c876f8f95eb536d59b67e30a3626ef091a7465b81415b65dfa993e35d2a74f2024af2e2aabf5690375cc23808096d4dc25c846e43a135b38d84d638b5a49c3604579a3a1d62113a83499a438bab97beff7696a53114e9861ed3a175d2a4b43512de5e4a7cd4001108188baf4e50526366224a7cdb7486845671127dfe4bc33e8a8d58e01ca55f876625b94a6db4377d8c11e3dc4583abc46a7d904698139e5739179483b4c099a8e7f7345a794594f419097d7ea6d4668abe41221817f31c7e072c94718458eb9221530880ea08220a902be61c7fa9e85d62d321093d74362fae7779ecbde03e5bdc33de65958a4f06bf6dfaba0fdc65d80e63952cf968efa340514b6352a0fbbd30f7fc82dc8c616e16ff3d0fc9b3e126a9bf6b3f21799ac4b426eec9dd6598a67a56cc6c59c64ee1b6b0be2f7ba380652e6e8399526a99f4e1e091e1d97fb61cf104d9b523a3e1f0d55bcd98122c35814ce0337f0ff9b7447647e5c22ac5f77fb488540586a7070a2057447a7c67f784f399f8630f072ada12aed1ca9d1c548c2b7f18542262bcdac9efe6ea75fe3eee6ca5060c5fab166e746e1b970e8c9bfbe43bc93f8916c0cc5f1c6e0484a5e8868673fe6196cf20823b37dbad41dbf5ac50d14aeedcc76cd065b1102a312c44f7738310ec9787051a22c2147eb92f026de6f148207c2bfb13d9636b68c60ac87dc5834d15c40ac3f69f9917538ba4e9ec9fc86761c2481d37199a6d545e25985051e1f280c747aaf66428c3f806db4f59bc46bb10a6e1a004cfef29b8a28751c7e71a47825af98680024b34451b7117a219d9fa087098c63dedc4aecfdaf83323f3b75b1161db70d7686edac5cef437de90b3864d6888a7a4931d6546b5c18d9050a1af1f9307cfde966b7c7ea62720f757e9983c41f7e31eab11443fd8e562557ba127a3893c34b11320554908e696c11fad30b72939c313cef7c28cd5ceffc46b0df0d54c4c46f3572b2565b52b1e1309a247b4d928a8278796304847926a8eac11200e8c24c7301b3ae6d18266ca4f478340fa18c7ee9f13553207023b36dd716ac08792b0604288e758d05a2cced28a1f7d6fe9276cfd25deacbf08ee7f4c60003d2aef5e5800248a4407279ca93b60d2336409be5f9e57dbde390ef74a2d995da98b5bd1f5c7a415b848a91a77d6b19571b216c948ec336a59f3463b0cdd78a7c8f602e5136a5d55ebfcce66465ed7dce3456d2d66ab48cbed1563d4a31c24cc37b930f89104f21185822386060748b2802de10e5a4032e277fc3891045f560bc70fd480a67875980b68e378d823ae320689d5d7bf037e6e25fca9a47b0c7d9880137478775d579428333dfbb514e2d345fe41725c21e71c5e9fe550f88a4ea090e564801a37562c53ba7dfed1e3f8ca9fdbf1e43e86bc999b2bf85c5e5cf9e3587b1ecce5910ce47961c76d8a69ad5f1162a1192f9eadc2b8aad17bac0d655c788f3ea4a8c2ce74fec4abef045dfad01ad647a5a1c1dc1b970961787c1aa3b9886962c43b5299fa6ebe8dc0606ce556d822b8b37c3fbaefef6640a05fa1c0c73e26156c70da35213ebd886eab0d5b327ce8a7a9410ffddc4d436b13a30cce801e973e551434d5197f362c080806461415ba061ebbd98dfe0d9cc582e488aa6f2afd681f3ae923945d717862309bfc302b6bf2a34f7d8c623706d57ffd582e54731d51388f83dd173068568a524a4b771b47ec9d33b526b3845d13312fa31fefea2e51100f4d3bc6061c4d418dd041c150dc4093655ef28d5977429b85671ca5ccaac549c1a2d9feb93f340b9fcea5cf00ee8418fdb80e0269ecbd98a431a14184b1c0b5a26e7ff771e66a804a28f88ead4690d3d2c6385fcb00367843a8cda37aa8cda511f747b6bfb883aa107ea2727eb429716785d6e6db8c24db02d2a1713a5c0c2ec8c7cae460084cb311f97428a5091e91d07c6ef8bf874a2a04d6777321b2b744f2ae0c59dff0e0e90dbc74cd261c0b0cbfdb37e8a5d146476202965b4a8261ca03f1accc51fc59600e7d94e2ae7957e2df02508255e6362f1514b908a1b98e59dabc7c1155d4e55f16db88b50d5bffcb269023c798db148d431a8a005e8694b967dd905890216fd01937dbeac0d1d9cd3d598926158707e3c63bec418413e7b06762152fba0092c02614073b6c176bbadf67875c2722430ef8e5df73a29de26cec0c08cc8009ddf1e3a41585f0c6fb4987adf051380fdc3254b86812503c13987e0fc87c5bb22d4287937be484448ddb9cc8e0f46dc8d95243418285d34ece437aaa70847528bf0b52b1ccaaab38c5597614309ee3d85bf5f70239616589be24efc615c88d7130db8202251b483f74eca84a12e3040a32486e87cfab8c34704fcd90bae53cf972808eb1e28f4ff2bef817e8d254f7e9c678f6590d9ebb98bfc2adde866a5e7687efb91d38e4933571500d0364769cbbf31dee020587777706a8ea07a1f870b886dc156f50ba9d325f47ef463fb5de81e3ec7a569cdf015ff47025d5e23a7aa175713177ff5c0a9fb226fc317f236a570147531fca9b3d0051a12eefa3d54ee72dd6ff02056f6fc354a7a487c5176461cdc72ec27ae65f4a17014e4904d7cea00a80bea618cb8f7b3af3fe21052d9b1c7093234ff760a12960dd7605a60e00baa21b97f884d6a87afb2fd6f03200995767aa5867217a08b66740716c1d92914cef66809d9859782a5014884730bbadee32238159c36b4563e2651b874106278ebdb78f24a5af6cc93473c1c375003640d0761659081185e4c2929af421c6e6f10b8498e34770e05677c0556ec50f122332231022e8a29cba446279ef839aea980abdb3e6fe59df685ae019cb3e2750765a74a00d6ad1708c41da780360eb0a345b51b32aecee84f0e531e17a5134fe9505550a3a329208692b736a6e4f81ff18b0ef84c55e0aa2ee81baf2b6b7e412502fe881feb68b6460413f76be8e74af2e94e489d739a5dddd66a14afa291bf49ba6584e6d07cb9ec4329bf61d3ee2453ab7ad12b6493c6205e4149ea84483655e9d0cfc09b42e1396003c2116438163352ee57d8bdd83890b1d6ae74617ab4e678a4158e06a5595ba0483df9ae168af96a3d1f9301609fe8868af7b44ca3d73372a075b1ac25193a76d5ff4561665b48d4dd9d1879eee1c04cde24f429aabb16d046738acacd51b8f2b87688e68b2a30550285c514d7bff6a1798971c79bd10dff5a16859776222b4096c2cf663d31e3d199fad391675ee2c7bf16e0c1099588c82cf305dd139ab906778fbf66fdd0b5a71ffb59f93da9e75389f463b37d8795024b47c3ac66db414731f71f823b3733ad56e34d518d8094651c98018e6077fec02909a3d3a9e598df7f5bffa6d1c8d49b737f58f06d3ac24d742009801aa50076f7474c3fda6ab0b4d3f2ea9ec47f318d43516d6492e632d69a57bbdb7f0b0b7c72f55fcfb41d9284d729618e6fb5cfba96873def08c52c4242be60cb6fbe3308dd025d0ae1d59c1ac28214e05b0674cc283b8fbe956c476bad6b86eef7031e2e18164766c2b2e551a671177020f89e9bc43467823456bbfb0b550353f36777d1ea1b12931fc2a340cbbba36bdbfabac686788bffb6b935aa80aa7d4fd4c4bbd714e394b39cc73aa9c889fdff0494b4a32cbd1faee7489f70358eee51bc4cddcc4f90cabca2f36230e08044de072c7670ef8d852edf3f3704d9debb77a5e4375c990cd1d1a9390bc23a3db201d4e450936681885b2fc46fc9858e5de52e532749045f8d5f0929c9b1a150971d297ea3d1840157b64b3eefe996ba31c71ef87b89228c8bb041a0bfaf307b546178400b3d7ccfaada1a84a1885173a79b3a0e0cd8700d122fc58d102f1bf4bff76573277115c0882021fd7ab40fede00bc4faf692a6e80c32f3d4b8661e011a8ff875e7bfeab2a4fd34a6a33eb0278eb504146190db3889dae5d39827a6b9fa0f356e281813e1af868c8752d7bcd359f9af52fe2b8a0c0033e7c06afa9a012a5bc9dd1db4caf70c23528959c6ecb0e49fbf6565f42beec94c68af302178e84153101613dab762af989f131eea44f81d22bd49d37e4a65f9e087022269373a1614b4816cf5a2217842bc93d729ae603509e5617ab8fc7204f119ef5f499bcdb9e5ae103efc8fa92028fe4636e077b0cd879dde93aabf28a98d84dcdd8c7def7609eb1fa33521f53a7767ceddb174d682c22004572a9dd3bba3e6ff06a1c9921ffd997f6d9492c634447e475126b040a99c044f115e00909c4d739a5acce4f6c6e4144378d0a27193cd1ee1df8dd86d9648ed94b7ce48b5934c2c4817e00c1da5d8a5eaf3c5ed3a7db36981d5663305b3061e791aa61107fb17d981d280c11e139b1b3bb080f8bdd9e29b31161e6458b2650cc812b95f1d38d0cbbc620321d9275aaa2014c4b5426b64ae08db4dfca534ad0923c83b4a60a49d9ba9ae931f79de063f62b3c7e1d21f048c38502a65a4497b5c959391005e1a1131e957666b682f0ddf31a8a8f5c53cbc30df6e729e22e4107d97539178689f5cafdaef4f237cd1fe6680a314cdaca05dda83279dc444a74b6d63de956b758e46074ca02a0b53066bbca30fa078e78721873aa263150f1a5d4b4733f91836994ffaf24c5dd5664bcf4caa7a6296f278be74ea38d61a55e2ec0010a81ce29b92e1e2e94fb070ff77b47bec5b5cc841be4a41f436890c47f3d1227097014d896ab0a5a82d1405aa18a8990e6564f103245644c50f69b0d0c6a69fe8d4ce07bfd08d50ae5765c6a84d89904195c3fcabffdbc189cc6990d8bb0e5b84d3c6a5613699b88904c7f10b27c47061c05d4444b3c966e2e8337cc2555be2eaa3272715502d8f83c2cc7845d2e3d9b3648da4c03c92b15f90ca42a20a01989272ee654757e504886a9eccd2400e226be4c7c6198a6c9d87232287d047778943cc67d2d9bdc7298dc70e4d1c18ba0bf1b23ebd9675e3c8ae7778ee2bc58c547409ab39e2213a5037087f94c95d28bfb2ad13f7659ca4f4ae837124ca3d6e7220a6a38abfc786c9045d924d137813d8fbc015e6b270b315e7abe1883e853cf7c1e80537301c297464891e0dd2f9d9703a0cf1d3742b81dca79efde1d3b190f4f146d61e79553ced1fc6e7bd2f6ed4ee18e8983390782cb6207e8b97081eb9f444c5115a48962c0183d8d24a8d864861fde1cb440e3dd166f22eb5d20e90ec6f85d86e13686305e9601b6ffb56ab953e86244aca9beccc499ef882768023e15db999c35a8741906209f5b719d4b8e0de4b9e437fa45ba9effb183cb51f1218387139f1d5cba870e699a30d7c7d6b0c3429432d14a1f93b9542c2c9429197e32eb27b80af527a4f68c6b405c9189353787165aaa5a5af789418a01a4440dcd76c393ee92967596c08c08a12876f1eea59d1e63352bea24cf86f0af1bb95c2e071366e7b39e2af30393f88d32829edaee75fe55b0a2912cdae0dd1b226196ec0c9321f190e77ad9702fe2731796092455cf8293405ca2b7f9714c19b919d817cb1569279bea091c8cabf081c682015aa9fc2e5e2e0d7fc94545109965de9a950392e7282a31d7b9d2bd800dbca2fc2e10c776fc90bbeabde1799919e88dcd0a6d2cfc016f6db0681921a1d283afbd662f16cd792528232cef2c0a4d68ec886b20e3d23d1ddb0abf345aeec2b1cf132ea7275cebfd6c7400fc8737439c6c86290e2177c22a778bdaaf46064de868d594cd29bc1ea3e689757818146c62ec001d8b5ac437a96d4e8e207cb0038754004e3caad1ed862a72280ee229fcafdbc77838a309bf9899b088a0f046ba6532817cc55dab216394ae4eab923cf85769d02dd510bedc1f36d73fbf7d4ec2057fa13ca99359ed97e6868ae43ed9f309cd5f970c77856553482fa31696059aa61d61d74f799c19159848e0f0abf2941708b8f370233afcc4c5fa3c83d0e10ee075fb75c9194b93dba81b234f3df30470d34e7f631a3ee9fc94f9d00210779ce6118bdc32a07760acb6705a808398b252087205c44b77aee372ae8f5a2a7cdcf7456f08bffab99a07714abe51631fb699fa3866f0c6dae5baf589c650cf09c2d388842cf219820e5c133acd258cc8f3eab4e14d7bdad014eece4e05d7d4da83bb93e2948484a87c78719ca6bd9b9e6bf444fced5e41e3ff9a3a633679d56778ac6d2f1d652f472feba256da8959b89375412368b2eb14c22fa1d5302b8300139c74640890e6e7d1e91f8401c6e26c506b94962e4011bc7f1865603eb6c3648af95df92a03b5bcf5171685a1e1cf0eca46a8c00a2f35628f98db9f84253cef0fc219185a8f2ee0241c30dc9913bb608f3c1b08912c52f38750eaf7b7330bdb78e54e5b8ee586d883d3b139a05b07f57d4f22c53e59884d14912dcce4968b9dfd085b939e55a2baa1fd47c332c59bae7f82f2d53e1a4b4e14aae61c46577d7e0fe4404d975cb81a105a83f65d8bcf190671c0cb038760ad5e3d84be1e3c1503dbd86f907953573b668b9edee75355fe4039fe853e58fa95567cc4afd598b7bb62289621a172d1d8cabad3515b6cec915ce8e37c4e207ad322207272883df1c9e5352ec76f706298e3ceb469bfae6f33847df37ec9a4d74d00377d6e66f7cabf93d24800e304964b83cef7e6d813a44a006e2a084b77f7cee8f0aee435759e2e7167826d8c35a80525fab4e172de7fa8fffa9db071a68c2338562ee051e86f9d6d47eb428b703d5babeaff73072544bfc92cc6487961462a3b5da836d1a159e98a0e171b15cf291c8179d65e592adc82152eca84e85e80e2152943544ccc7e2b3107724e3380a5e29c83fe37e01748253b900f8111331517c2492b8342e10ba041ee978c08838aeee17989b0650e06c2dba2b21282129c8d8b6174017c46a40b8a7f004b8b3f70256e910b1e71be13769211f7785354265d9813b2bdb144070d52859e346f7d03262f7637d293a43231d5c1ed97ad63226f8c97dcee5e1623ea0d1e194a52dd3ea8aa7e497bb021577711574bec8b2da2f6ac9bf9af2555abccababdbfd2ffdd47c04ea7f87a854305c15a539998192636baaae90c84ab6da3f47cbd96d76fad80b4b8ce15cae5cc5eaa66670ff3bd702c0e0dd390b00d05219a45cb7987fb4e173bc6d1686243808df8b12ddbe0ce80da125d67623dd44448484ec480ab70a8d0a8df68008c3d1480c87835710e9c1b99101f7db7b31426855f3c527a594ef4939aa75ce7949693debcd292f4a519725db8e045513539bdb137cc04b9a29cfda8e94ef49cb6a3b7d22c9f89e73ee456a3a091f843b5793b4a0fd7ac45e501b6ea730a8f9059559a1821fdc6ae0f81863841535618c31c60affd6c06ea90b6a7e7db2fa8e31c6ee0f95312988a1a7b7a02c8aac36bdb31175ceb99cd95a08ed3b11767feeb35b06b60a8cdad321e0dd11809d32265a4e736d0bd49d2ac13b5c7325702598c033c53c133d8317b0daad3b1d8c8b576c8fbea58e86657cc52dc2c8e42d1353b43751d1d05b16bb6a929080757a99a0b72e014643ef142d075b570454b0001aeb921c8cfb1d8cbb75f5a070bb9908152c80869ebe729447a5570da5d6ebd313228783ae1d284f0074d5c8bfabffec8e36b94b4b449bdea542a899f53476068cc4319c71cf6aed5cb3374f449f7086dfd12622bcb019e212d126f769f30316189ec1cb627c0fbef6248cb2eaa2c27bf9e8317de0f9b68811c21621eccbb77eadb51f4ef68887551845747bd5459d97883e35ecf08e3ebd4ae3ce2a664c7e2863332686b92464b106250f8a12740fc2a6a68ccdb5ebd7ddeebe3b5b06949d7424603530c1ed1a8d5093daac77577dd1cdb6075babaa12d55e9aed25d99c7bcebdfb66b357aaf5161042082384cfbd67b50a6e67edeac1224723318c7af680f6a9096a4ccc0d2a7063470576aebd38212a53c6e728aaa2a895474d19df7bee3de7a2f401757fa779a61d1a88e48adf1170b6de7bef8b27f8bd9717862f785ac22726475bd0dc4b6b97b2b516253563abaaead54078d990bdb449b6a0464a5bf9508ebab324854ef86077c9409859e1c4122c9d6b72245fe4a1841525e78c8f8ff2c9f808a37c941232495149a184315ef2d0962e07217c314a171f3b4639b17cb1ae4b5a2f9042277c707ee9b66207277a58c0022ba0d802bf3b76d9502ba0b0a1f00fee9061052b988212b6a083e1dd29bc74bc1c9c810a6bc08c99de113150f60202ed1851058cea519e62d5b82752a058967a37a6cea2768836ed786f542b7cf96114c29a52085643b690de0eeaa08437479b5a0a95b38b024da37277389826a208cb1a082aa4668662876898a6ae134258d40c43c00c5b364248411535e98e3e9130b5ee5d578dab945a4729106887c3ec0a2fb8c0ef96659513cba2d72965517a4a596e87e8efa2ce09bba440798e76145e353b8640b18d4664a540f968f494d115721a1415384bc45573dd1d43385129bb6a407dd95c97880a224c450fe53474bddab5d6e6840bc3abe60a2f444f24123108ca4910b16308cbb2dc8e5941a06aed68d38e1a195b42635d73525b7d5159cf053aa8a2e615ad1d39227d8233eb19eda83d4309958d565494723a19d173c5f5b50649f9e4b20c0799e2a15c8472da282ab28cc6d1d096922245bdc80a398de828368813a7115dc869ea2983d3a1889e224241b977a2cb44852497d22e05da6c8a147dfd5a0b82a36b9645b2aa8b5a57cd8f781b8691b86eddfa93d6415b39b91113035b1019af04ccccb409cda063d1cab26cc343ece851b1a97ce0a5431eca90102d888c16a31a45b53661a4d2d21454026096c5932d449689298a10bd8a2e110ea6ef44afaf6c4de90229af2f02e52294cb5b44caeb65620af994fb0107d37d2151443dca65a25ee6608c703014963713519fd94f45c368447f31b32716d39c9327d035f4b6203448ed0bde2a0df5baaef0c249ac2a4c299d5585db25a43dd18280ac2052be17924fbe50c39765599f97552d99021f9c5b901624880c38d0aba2e6d5d0b57387b67ae25e50c020a4efc56bc648219dd65503a1bc6ae021b528f50761493a4acad255cd48515252124af9eea3112d14b8cbbab3950fbb6a687c96597f360a6a788229bc20d0ae085c3613d3b89574f1b48a31ce19e5e3454978d0e17c8fe13867cd8f462d69613fc9035e7e4e675dbf2a6ad2c3538bd1cf499754d46ca0c682064aab3a5429e194925651ca294faf1f148410d253365ec2bb57d6fdbde63d5a1b861f059b75c54e10cc708b4d3e96646baeb5b777bdc7f04b9f483f90b07efd8a97cf35682b278f895a740fc2f9492b0a427819d9e5ac55c9a136ccaee82182dd5f6c21bdbccb86e101c75369590dc7ca87b2ae06695bf08a3a2e6b546d1e75d9c478d7557d51ab306a9bb8f1d09a73ef7a319da05ef15669a8edd45d3557f438819fc412dbc8c34f2adda58352dc2ef7674df0be5073545d3631de1bee11033f69e1264f3d47cb577d5165fc8b1282e669252588c5d7d1b9ebba3efb74bdbdba6a7eb430a4754942708bf112be495b82f241489fab675a5151caf76e6e58bef40962783a5bc607190b1b8ab8c7189d631663ce96a684cf394639caa228d7ccb966ce59ce8dfa44c2cdc5b7abe65073736154116e782039e7dedd1442e7a829db557faf1c1d41d8a636c2cdbdcb26468e76578f18d5ab579fad7ad593cade165e1e92188e79492a10f206cf207b7c1ec5c858649045f6dc7ba33ec1ee5b73a04dbb2be7f29b323e47511545c599df196ce86ca69e733ca34ab35f92a5d88f3df71eb30d3ff7d87b8c1900d4cfb10a8dd0f666a9096aaeb84d3492a06109eeeec01b94d02865636a8d783086e372d136dc7c16ace2252dc670503857b73efb74a356ef2c9c20b15e5596550f8f54e4dd59e8dd691d8de4291d5995b5547ae45401833070cea942470727e190e8e077f66e7e3a3a585e247a74303d904a897ba28333e3d1c1f4ae341bcd861be480654babc26a90423fb53daf58950dbda1b26077e6b0ca68c5361ea9bc571dfc2e1e39550cd1c149e44001890eb5e829bd3c7d3ce47d77922c4a2b2aaddb9255bd04ab97a8eaa556514a7f38fc5e8f6ad4a7918ddbd1c114890ea6f7877ba283dfad9a0dd76cb887dc505bc5a432516fa05215b6def083410f8222080492a00902812810055520ab0850ce00a66f59c04107d32cdec08357ac2f6af5f7f7aaaa5f555596e167550da3fb066af5189fbc6aaa3b6d56b172c394728f073cf5d9a7ea66aafaace86faa3b79902cc65e3d8f5865f39493da1f0ed39b99c0b4b219b6e7f80ace97a8529b2fc559d986e9a33f3eb2b8c0d6696e72523820c1d63d555986a9cb72e3f79c0c3950f6ca2e77591de9a0eff4b136aab55f7e889d106d72a78f35ccfe45edcb78f91acaf9fc4ab3d45e378439fa543d3bd3260786102d430f6f5468a8d9c237f2a0e3e11c78a80c338a552d88d6a1d2a2cf5675a8ec1518b5df72301c1576a7201a26d319268cc3bc5613ab0b1a6a2191ce009203080e57b55e7587ca9ea34f970ed604bff7d804bb7ae990b7d4235e5e0e1dba7cc4cb57b58a555d390bca393f60ad2d50ce0096f0f13ea68442e15aa7cd396fdb71403ef043cd6d496e3d5af4c91901f7db923e312bd640456bb89901f79ca517a19bef33c6f8d28bf3071318044120e7e08aab4375fa2c77bd363546d1a176e5728bf2fe5f66fa14ba10dfd1a719ef0fd1a73ed5f78ba880c9c9bcbc9d0fcf31b835e0649a9029803beadc9c378700479c36b9dbfaaddf84389956c4c1f48b74775b47de62a510c0674871ff84d266552e77b1ee5200408a00543aadaa270e0e0472eed4458aa2fa72d781400f2441d5adf70dae56275d75d505e0c7d5eaa2ab8e894d605c0c01f717d8159660052cb02f88610c76603d3a26c040dc08bb9b73983006049001012c805082320f2c78c0ac70051b5730c1c1e6966106104c6fe821055710d960c60f98153a26c0407a84fb660f6cf16240f9035010d5e03406dc36b4898ed905d7ae02651028915ee04803dc1007b8771a10894c2ee07e8eb671513cf7de7bcebde79c7baf5d0194718807370edc97e5b8267fd013b2dcabd3d6e6a97973736f02cfd0aff6f7ab5df3c7bc79570977e94ea0f9ea36ed8cd588cfe19af5694b3de841f3a1536781d8c5a3726209aeeefe7073adc4c4d4a9cbe3dd3c8f8303872e4ca27302ccae07301a1728dee9b01ab0baf3edb56bbdfcb05525119c7b4ee483fa5e93016df799424be2b384243e447857ec40d192f8f0a0d9243e32883146b704126649d060879e6f6849d0e0c39a0df61950f6d282e8bbc1089e6f4c5f0b22be05d1780038d238c325af645094cf8d5f531dd4d84ccc06b3c15a66a8b80bf7cd92d99867cc46eeb79b3e9c97460583da178963f9f6838591071cdf36f96287841211cf0399f8c702f0bc8dd5c0f445c6d3eebd40515fb08353d0e3762dc20c4e07c35810266c25db8231c1dd5fa24fcd9e30a18146443bfdd04c33d3c05ad0b081fb79009786111a685377c03dd3700e42e8200d1a349e7ca681db39e79ca3a16359a1eaf4633fd7fa654a2b6a76f773743fe7a3c23e9cab53501a833621ec41491961ce6b23900828f57170fd3a9b7dead27cb1e56735ada817e36c2ff67873d4271007727e6e70dd1e34c4d007a05f8e009965a1859f1e4d4553e1839c2eb488430ad6d0634488eb7d3560038c09712101c77b139f44bc2098811f13dcd90b64a27366bf1938cca490841ff4fbdddd3fb8bbbb55f0b3034a8784280deafb3c8d417d8f2e9eb19b78e88078670e6c8d8a8afab4418d27820655eec8f4ef1456d5b4ae46db6565d9527c939255d56665c91ed4e74b49ec78976f80bc37345ac7a9303d95570fc9be38c20db418827d71841b54615a958f0ad33b3fdf4da680c2d378655bba26bd2ed02368527a5df4ba3e2f0931ac01a541cdefd5bcbbde4445e34eed9c0d7a57a0080d8d010deafc9bf37a7e185eb62423ed39b3557a0d14af120f79eaf2d4ec39a9cf0b43d0753311d89ad4de506f2cef6c137b81910beee17e73adbb15101d9d418d118c19d52100be3ffbb039d75ad026391899022730815a80d158b704f48cc68a971602488e00eeec32a8f4143231670f1801761511438b2f8e70032dbe38c20d68e88b01a4978d61f103a62aca87cd44e0f92625944dc6185f0ff8485d948c41f53eaf9a3aa432cc68fa4d4a29e58c2d5f6af912255f7ab2b529a92df59dc442c70f58fec9ebe3b558d9400b5bc8c777f66251ef53a9f62914d89de5ee5d056639bd7bb40d6b81ad83b49004c76096851688e07631be6b897a03baf50c7abb5b0d04028140b79ea329eab2a99be5e79582e42e1b869ba868a6a0ee2afcb410044727989eda02d387b260061c5feaf10e3a7c7c02bbcfbbe71c4c5936376c65c18621b8f76543ad6a35abba6a1ebd6caeea1464514a79d0b33c74f170b76ea60edbba7b7bf57dd9c8c350e83ad0cd13b3bce2276df6807545e04ac80111bae08513b23042c3188ce8d6c56362ead1deb0dc9d5aa2d3cb6a970e961e2c777717d9dc67a96ee4ddfbbdca547e77f99de670efc69dde4c51f6063e043ce2af5314bb72d99b14c66a54972c8f978ff7d02dd0592c5bea017a75d0abd379bd953f4b7f03fa55835e3ee2a99be11f3d75f3cad59183472ff14039e828071d441dc552ea95a5bf6ca64e437d4580d1c4786551a410c25801de498796ba37f4b0be5e3ee233a431549ea35140ba138c1520d3e4702ad626078fa635ddd0335ced0dfdbc215bea410f3a3de8ce5c3ee2bda1b73520070a4d34202707bf1bba86c881c265e36089c76302970033eacf3681a91c4ca9f7550189983aa52c123f1680ad0389f887c48cd5085925f831035367b4093c1b9083ab0b02120642c2147cbc76e4c08cd1c8f0edb6472f10540ab32cd4a0056669d115f45d610818845916568002a67db7c0fd96d768de9865718538609897c0401c76eeb25133098e7a07f715aac0ddec89e4b5da146f16576882e11d75730ee44ce0dce80ea3d11d28290fbb49a4368d4e501b8fc7da80e35b6c0e07458a4823b29fa3bafb72af7ad29c3c71ceb91d9ce50e1a183d38e605ec6c5810a3bbd3301c287767003bc5bbe705602763033b016037033b1692643241d0bb37c351efeed8099e4973d2a606c60faaec27b799b41127e3747ab8995463dc5c577426e9e6592be9265375734c6e23b2aaaaaa7ab5f7d4da3713e7749c8c23d5cad34ce6ac554747c731d1714c741cbc1113732dcbad25dd3171320038e937996266707e332fcfb3beeb8c952abece980c7330319e49f8faf3713200b8ef887bb9200793a2e2789c0c84543543aaa120ab71a7ac0dc33f3f3f3f73a045b4a94f0453e25a109d30741a8a2245dc108e1ca962e70e3b56637a59557bd2a6e6f1a88b6d380e713251495472ed690e6a8e3f388241a44f393609d2a72c89e0227d724ac07d29248221756293767a6a68a67ebf34b035b01afddbd7a499fa5109e8a45a95e07e3ef4065506b96adc8d6004a9f2398281fbd57f9c4c1cc2581cf2c3e2909f087f9e8b75594f8bd6432b062ae0838263848f4a0734c0c401f980cf12ec8983cf00a01c02fc1ebc6c6c98b44b473b2b3153811295278408b9037eeffe6861504cad7cc6477d5a91b7ae9a15f7a385614119a7cf72968b6268f942d9f837c35a6d925fb1d6a2645cefd228aa3c7d44860ca970cbb00c3bead98e92d0f21b77476d92af6d9216f5415d49c2c31365c4e13d368928970ed88588850a2448e4a5839d612487111c52a23072876664c243197f9f6ee5d21165c8b8b9552e1ff031b258d565e30edfcdc178caa684b2c926656b000031fcaccb077cb74a4395f779efa74d3e2da12176f4bc2d9428e97e8c67323ab25c2c2cef2a082deb5a39b436acc6c1234e0652b2c134b0d3fb6bd226980666ea63e813913898663822843d0ff68c50ec6bf2c36a340b8e60248711c9df6511890fab51a4e6a8242a895b849ec8aa6c55872a5f8471b16449c337dc90aa344c261805c3c19af8f840e75e14343045b1aabf28a01998c8e7c6444629efeb29bd9e1e6ee8316e4f7b6a6836fa2cf635b18f0dccd47f4756aecacda4947704a35cd1cdb3be343c9f6704f78dbc28525490700467b983e7e353ab4f0f967b3e55a9ad67730c9c9f8f9306c6f3793ecf47b6f6e083f0f94823b685e8623a8683c178684bf13929258477cf39e92094ad5d7a4aafb4343075d69beefd689c73523ae7fad43646da2837845aa50968137d31c2f85e6c0968535fb7ae3baf5bafa15b2f02f40b74798b08dd0a5d9383e947db9a75d0658264cdb7bedac5444a734e73f41dad9d6953d5458dcf3310be0723a43de01f151f63499a7a38c79b83de99ca8bca709e899969b1b547dfa34e4d095f55d1aa02b5245108f7001095540d820265afa5a007e716dc4fb2f7e4e8a4e71a0a81aeea6c588d7ebb5a724b6e710dd39667bd47490c876c69e1a13ddf409b0b6a374c67a144096649bc0882fb329865818522b59de59a0086c3e17c03f72b4908f4b536f59b16cbefbd18218c32c625978e18319e1b1a93efbdf725dfae9a47e1941052734238a184b0a5258fdc078d6e113d8f64509c4b41793198c6cb196af5fc62222246498c8492aa71a797059d08273367958da74df0b186ec07e6a343e8b61d07d34298d04ccd180c7dad886c45dca5036b4b60353af9d8c5c5ca780f3693b04adc19f2424309886f649c5ec669581927007c426a17c6e68661ce2c93ecb1d07324f2aa6c8e358aa8ddf5706607f0149b49d884c4ab71a73480cb6a2b0dc03e18cbb0a909c0529eca9e2311ca531d001ecfe489110269ab1868538cb1b5d65a7b2cfa482caf848bcb5deedeacfb6d6ef8679669217f1c4cffc60ddca085dba8b5e07633bbfd652514561269983e8b9554b01a53a7a50eee9f906d18e5e547eadce74844c7362c322d09519e3a8df4a9cd223b376ce471301d95cc21720704923bb2a7ba258db0141bab68530403e7871df562737c82fb3e58249e8c02f72dd9735d66d8cb6abb7098126b1fae883414f1482482fbb70c47214f9c0c10bff13ee431b253a4e708131e8864891288c4f92821b1f597a204c437294f395539cb2bca45af1fb54cdca9f5b34f28aff554645d8c47cc6078d173f49580f846d2e853e8ec46c8d2886936740d60c62e1088d94df2be4d6e06bbfbde0edc9660948b506a9b2aca9d6daa07d9d7a6facb5a6daa8f3b4e66d430f5adf276d5d47a539ec3e5e8142be32a36471e19d4cab840d8f6c4c1f45dac90ee8143603862bce58378ff2d713238de7f3f5088939929f5f0517e46de7b664b6014e7793c37d4abd3917ddf3183476f3ddc1eba8718b6396135fa41e0b00d0176c636250e6609a92ff3d38c4f65db9d73cfe1183bbdb3ec54f5b81395f469f4144905c3b1d3a72aa491c8e36410f07e5ce264640ec487cc21b2c7c1f4fb29eedc883b8fe769d1a78c33e35e4f9f1c4432c465d8a7c81a247b1c1798e52c2b57f6a028d92222c0ca58e6606eb446811e0fee5f7127ee64d604e7b8831b88c4ed54bbbda4c51de85c6bad359b6398730f76fb3469537381aba88d094602371e5436790cd015c0c39f10e7dc8470c89f75f2cd482349933d1df52a48af1a774a415673aec6b9a657cd357946240bc2761a6d8218bebc60e79c73242ce1e143496a9ec1f05e51f39396e59c73b33d61c5780333907865bc19c81258beea3da47a3d64be7e413fd16c3821fd02dc43a6b33de487c4734e371bd55b28a1371fd3167abdbaf90557a750ce39638c31c6f79e8455f5b7a90282e57befbdf7dc7c8c2d95142dca2a31032791e32e90c6c39d8ad7b96e13c7c2efceb9f65c775bcfb9571dc618638cafab8cf382dd2b3adb44fb340399614a30750a63bfd373dd48b407a4add1bb83907a9ba83a04ab419d3a7729f7288b51ee598f72cf51a770282a64b9db9e98d10171ce35eaeffda377a3e02c46db1b8daca8d9c2ee2368c1d782dd3b471c9604bb100fa82f673d0aab48496bf4ac36b5f5eec8ba8d635aa3fa70079ecbd1401e7e4c32fccbc114c2f82763e4019f1610c3439873f0fb9c33263f1ef1491a584a99719812fc07e11f74b6c4c32101e4e11cd3c399c16149700ea6ed1e8cd2624be00938993c22945354ad76b689b22e62180cdc0e07dccf0408e203cc463fc360f6f83c1a9d3db71ce717ec42b3a873d6981932e6ad96c5e68aadb3e487592666e1a92a2896f2d41591354778ce97281a7892e6adcb669cc58e5eb2312cc9e6184cdd149b7166de68c6adb74c29bab9615165627e004f200ee5f5391ac512d1a67a1a857a45a7304bb147b027f886fafbb4140bcb59cbe4193c27e3c9263c7d1c4c9fe69c785a788ef0249d4acf2d78deccd298b01add421aa6db13d7727df0e8aad88663309e233b56d4ea8d49a636c4c1b4112ab20da758ca53731f615aecdc251c4cf791f624146a50a89969f1a6f44e0b206daa4eb0a5a67c0f483c25158e6449d223a4822bbac0f1e1218ad0403ece1133736d13d28ae0f64aa2c170b8bc7f8f98c13733fe6229cb366bc6299be7c599c1f3339a8e6567dc25645817eb8365b48a3a9fc3b1582524ce393af8863afdb44d07cf57d4cd34b3d394186738502e7ae9fda6c5124e4600ed8893f1e16d1d3973320130dde79f275c1ff589e5fdc9f2218e74b7bc9be0f91073126ab9b3d426d23c8b656d5ab1f32a4be653502c18785e0096750000f0e2c30c9ebf96354ca61ee54336bfccb4604a98582012c357360391f8aa918d3dc170e2d8ee6cf3e159c1020d32056c773ab54ded2d040b1a7081fb2dc86d3a4d48ebe8087918be3ba24ca899c4449f620bb2400536e03e690935371d1ed4dc749c8e1020638cc5c862643132169d7b2d3e5bf3b5116dea409bfab96d61862dda12266018e1dcc2684ef093d113dc275d07b763adb5d61abb732ddd9460551d3640a0692ea7810e1861bd297132f50df4e6e36442a226d352d060d4c00bcc8ed31b60413422cd469f957adc9b1d245a176135fad008b5bdc9e0fe122d884645b3d1af958adc458ab816841382fb54838173a342645b0a588697df0bd4836e13f5421e4d10d09d9834a15fb6d1b4ab884753af132808d180de34b989906dac00a01780de0a4c3d0a4f6051685dc4cdccc4c4984c3f2b42312b72a080abe7879915d629a7e3823418ac46bf7b9aa65d43cc1f2c0ccca633b589b63584b297760fc6f75a73ce39e7daa57ca3d869f4299ee453992c21f5d425337326bf2c11c3642ae0607ac6896c7b45a6913e5d4560a61e429b5a8433c2efd2489b8abcdb0ca14f2d8a6e4560a726053359e65e7ed7af85447a2db26da761fa4d0a8683bedf80c070583f6038400c47e87d78d55ca30a491002599607c4334893825db6ed54d140f463a3a21fafd9567e6c5ed6a61a6a4269044e79d5c848e388d14d4bccf9643e994f726078eabe022452ad0ede6853cccccb338cc13f066ad014287ba981f11445ab18ab2a5655acaa182beaee35266da2288aa2a87f7ee0405a2604d913260dd3efab66be9d9a81521445bd29a142a7eec3694f68e4a28a418dcf8d0b268e899301ddea5757b71c137a7b9e1008389ad075489090c3c5c970df47bd5d3dde9028086157b4ee11ed09cecd097bd2a44ddda8a8ed4a241b68a3612fb987e07e55a4e62604f7e0ded9aa4d080feeb7271a912b54f704b32b245b4d489b8e5073070922a465ae33f340e409274ee3fe5e03d140f471b74e82aa018a20b5e11ccd2c8fc6ae0808dcc033f65ee24f6df0cd269183d91790ef9a801b8b191cc1dd3b5a9ec92a38331832131b6a7e736730ed96dadb8f25dae35071bf2a0327b83f6a9962b2971c738231c659476d6aca0281a4927bc3ee6dde92bbd80aa3de54490e0c9405a04e8c850c82602c620006ee763130a1698d0425ccb0e041cf0b41c86c6edd586befbdd77f6fa566b29bc1d618ebf6fadd7a505517755a3b5b0d9b772701f07ced3d47575dd4e7a21222548c30bb420956b8020936c062054e42cebde7ce4aae5f4f19595be7c3bd3bca75b3c698e302930b8731e1517121085dd8028df1a240a8ecd449d6ddedc3e607dc7dd6cd1873dd2e3af75863d8c1f7f0d57f570ff70bbfb7cb01b32f1e3edc5fdf431805380c7910c60863842cc6e89c6b9fafd968dd458072061a363c83af21a4a68c8cd986dbbd183b4658821142f79ed2750f57af8ed9a7be7d6fffb9fb5a25032a9acfaed94b869b498898243b4c378298ef47a005415b7d15f54c269335750c003b1dd4570168a76dcc0633c19b9c8c6430f00d0f431852f345b4a9a98b8136f5bc481c4e4739eab6e9dc6b77884a8836751115c0c033d130cd39e79c7386b040af20b2248b2ab0c1bdd96807684cc0f9312ba65024491e76b8a03c5c1879c891e2883280000c1e8db3124de8ee6eadb5eed6dd0600e59c235412a605167067f1839bc1210db8bfa802f7c9b08331dce18b328cc1e4189c59cf02fe869934c47461fa4216baa83906679c1b99f56408e129ad4ea1cdf149e46048a955556d6a43b3312fe1a3951152d0c6f7d326f8697fc8abd2565440ad6b04b628f86b1ebe54bda23e6f04890852d5ce0869005c08421748ae0b455e91578347e40d79438abc22eed76acb0e9b38e79c73ae4e1ef494dd15d436b32555e8e6191c7ac1540b6e19969ed75d154b79aa451262479f52ee3e449f46770f376864fb2253f7cd21108984338333d3ddf12d5ecef7d8a85f1ea87b058d547f3f5ed43c754c3cdf985551211b83f3643c2eb31ea6a4ba8cc9c4b7dee8298aa2288ac22dcf38376e6e17bd75d9a0bc87b7f4899dc5f86b12e3a49f3ec5383dbd6ae8c8b63cda395aa9a893ced8a9f496d6ad2e650367e6232dcbb280b4b43791892c4bce782512552ea7d7e5e67e3fb8bad90613d317586e7e16566e264d6164845e4ae9ad6e651a83abdf1bf9689d368b56a7665c208de5ad9b1fae6e29be7d2e79570882feda2c6be5f3f9fd58b4d5ffceb82eb7744997e5d24f96954b512db6ba6caa9553d42b751075483d44fda258ee5b99131a9151ca1c265e930706ce53245f93e7644ad1fb796d98ef2706c6c610cdeaad7ac6b9f12e9016b58605263d5fe0c9c2ce1490302b7085005c192900ae9e6370453f2bcae696e395328ae6a5b1e52956068a0d9ce7719e160a6b46ba924acf37cd78b6315b6ec48c9b6d985ebaf92452e8fa58970a51a1aaa26ea9f425ce860d9cdb92934875528f383770f58c730387ee427a7ea4b75878d954bf09b5fc4d27d3588c0c4c8c35b91877228abacbcd31b85b5a4db3202e455c1281f5dad0828847792e00a667d900f406a537e3dc6037d643a7ae87f5d0499675ca3e5c0a1d64b13ed1194c1380290ba5f4515a2917f4a4c770a09cbe000c87e8f4ecb5a1d9e8d3f7fb89f1cde61c4cd92df570af6ee35e3d878910e9e69783a905d238745f1b9a8d18e3cdf670d925b589bd02b0317df52e82a9fb842c4ae999c46d8993a94be692b604c54691a520a6234bc52251d5b4f1949d57c2e1bc04b6521e9f72d5ccc6297f78641f6e96f2a05887a7edc69332b1d4b25c3a4215899aa8ca7a5bb974b4531fd9235ef0cd3c7dc81ef142dd4cfa7cc1f494d11816bb6c7c50807d3b630910721adb34448128d129944bcd90bdb905d378f308d3399a6f765e0be7058feec8b6232d0a235f34231465564f56a31f9a1415290f7b63e27c66c3d037a94df43434df43bfe845b16e0ecbdaa43284a85ef6f0b4f30cd5fd399adeeb0259d6cd405e2b43bd7c504c852e9b7af8fade98f8f4e99d1e74d5508aa2d42d4add8af626f42630655943c224c5aa9ea32915a232459f7269c89ad57ce8940342d505724ba15b970ea04e6fe6419dfaa04ead789a479756e8b2a94e419535ba2956655929577573b32cda456668524ae9cd0fd35c710e134d50552e01a6af2ed59ce02c0fa46fe29bc0947a98ca5b6f4c5a10d4ad9b5b931f0ee796296b3ebffb60f9ebd56f75f375abe7772bfaf84a349d0c005e55a796a57a5a4a1f8a976a4c9a0d79147b05c0fa7000d897e770b552b721a13403698a52d4b44e455a86f94cabcf53aaa2a8f7d5a3ba454fd90ce495e24397f492b23e4397b22e7ffdc53217ba19c803352ab0bc75d950bfb16e6e970f0b53d4cd49e460faeb7a75d55c15c4d1462c02cb5d3daacf87abcbaa3ab58f07cd15d35b8d8a3eb532b4201aa6f4d007379feaf2115e35d4baa51204ec5f4e817b1ffe725370efc37330b5b9628a3f80294ce92b9b83290be4e1795b199a0d78d9991d32a37578a1c56047c9085b158da751815b13fc432f28e714c1ecd2611d04fa358329cb8aca280545143a2940c64b31ede618a5d2670899566db125cbda74cb7a460c6e3d5cc69d388d8b8c182119d6c5b2062286b52cb667948222aa1102fd81980f0ef369b6cdf93035637ae848073a9f94ae8f98c16cb6cf99ce33985af99d2a10ac2c4bad938f878f77f66de2e550ed5a40599fe4e78badb5d65acd6c47301f7cd3ee6e76d609390d35c29351b76f9ed886e1d6d1b81ff3c17ddb40196bac7b6609f3c1ee5b2ce969ddba0841a668bf71f692270fee331b77e2d9b37b73770920ece7f12cb1c407641a4de4b1376c6ded4bbc97218e374626d4dc3f3dfcbc2a5e0c581073087b44fa24e3ddf2a6d1a7973709c9a3e2ed3c237d22c0fbcea74ff67dd7c4fdf4e9ef3b277d1ac0fbee8903a34f300fd2a700bcff84f44900efbf27fa647aff0d613862bca70c6680fb348b1ae7ac95c88e93219431c69c638d892be50f8725bbe2590f91b98172e71a152ba31ba1638c87d530d147ef275e201a9db217341b4db21a18c533e2a0e8220dbbfb440b8261777b489b9873cd544471277481381c3af5ebca401c16dd852ecf72adc80775e5027998d5cb37959b2919ff30bb3795bda1342410b7d0bd8167976f170f88d9ed1788646c6c0876ce8e4e2b0b047a8e6e47907076f90d3b65afa7ce7ab63e5bfd64657e2abf62ad53961dc58a7ec3ca9c5d50e56201e259ec2c567420ac8c75e1ed759165b98c05c246e5a1932ecb806012c5badfb0a78aa26243a1cbc387208b7507c29ebe2255ec33b19f6c6d18c6ea576c3d6321fb50ec0d5b1be69dd9fa07c451ae87acca997da3339a8243ead1fb052d08867b08ced1344201f7b1a80111dc1a08b743c17e6215b87f4629abd5eadebfb77286f2aa22faf51175107b3c6396bd59c7d8a9c81377fab18a8e49701b8165ab58de520392c8c1ef82600666b714facd3b7be88a8ed477dbe3a5bc0f2ef4a6c40c0cdfce6ec691f296de6d400e86b7047ff32effeedd4336cb21447f87d78e2bf241c52c6417c12bf2418d1787243abb37a2bf7b439d1d8784d9c52161d17537e39030753ababb7ab0f0a06ecad9cdd7689482f28af28a522bb335dec97ae650ea53ea599437a754b652efca5356ceec0a6b8fa6a4b0a7dcbd07c6d8b1a8a51e78f47655dedecdfb1d9d5d3e587e2fcbeffd231981e308e54675f5acefcae343a14b491fbe62330e098f4e1d8e7ab0fcde9bdf47d7e697bb01398ef6ad9736f4267fd31e2fdb6fa6fec3abbd79b7441fed60b8147fe34447aacadb55b9bc2a58746f9e8acdd4c521e177efe973b81e6cc58ce11fac0f361b81e9abab260587849568925aa31a6f17cb6b58e9c4c5661276b965e513eb1d1994cf45fe24a91349963fb89dc42dda34a990375fb61d7a45cd7388dcb148d8b239780e7173ca9e21b26788ecf9914ee4933e351c0a7db6cc0c85fefa141f0a5d56d96b1846c1b97a0c800b41e002cec1cd4767c61d26d3e766d212dc978eb5da6ec631e1c8f3de6953bfdd7945cdb2670e6942c4a74f0c339a49c2338644c22f48685897394f83c673348dcfbbd81a77f9ebd301eef2d9a77b975b7d22dde5b54f2977f9a84f05b8cb497d8ab9cb5bfa64a3fe506badb55aa3fbe0c3476f76f4149b1b4e79b57906d75b36efc0d6d914915afef21c89e0bce0945f941529ad372711e71c8a44b9bc6a288e85457f588a2a2a72d1a71551f4894dfa047aaba8a8b4802e1b23b2a697b7e987a75886adfac37d20fd87c3abe6a6bc60d253ae1e2d3b6ff002931e4e21ddda2697bf36b9dc00d66a93cb0b60476d72798c25b5c9e5366c4b9b5cfe839d3535a60da8dfa8b44cf7a4492d199a1100000010005314402020100a078582b16840aaa9ba883d14000f9ea0506a4a96a8610e530a19648c21000200000020009120690040398da8027e9ab6d25b93c4e5c2b4e13377065ca055b0963ccba58fff1eab12ba2fd4006d8da8739c6df029fddf7aa43968568e73bef063a273046e6f3bef258815f8e5c0d171a4314b59d1a16b256f274e7f5af38619419c94c484ab2e23b5ed4262f7b0e176b283fb682be23d9959689e54c7db20c9d69a33f9d8a6e8607da24cc08a3694b71fb4c59fd800f94df5cbb471fc6f52b2341fa4bc65b410a1beaa880a79bcc743767ee40a5e57d0e24279944731eb6d9349329fcd8d485cfaa2163efa375ada021585d19352fe0da405d42f7e12ec7b6915a573413c5227ffef1ac09c57a1d5427cda35492b0e6ced8b2508b51e020d8c7edadf34e8744844dddcc223104462619d30e22a01d614ce2df99aa0497d9d7327954ceb00589a949626ef1897262c0dbd1afd6be2066a2efc55ff51ebf131d55c40e07a5a5098b49b328c8b073a5d820325379ec69e29963eef759a0746a512fc58dbd4730387c329fccdf83fa5eb27c8affbbe8dceb666de1e38f19eb52bc4b3584e987b73de5539404d32a2d60d342b4b34ab1116f2d4acb17449d66a29e60ccee9cc953ab3fb4f35f6845a777a257731ec0d35c57b32bd17bd44c291d73daca351b4c27113ab3d33b2448b98a38c9b171d96e42c4c1096de735d6f6c92592fa204a80dee25390c1f54f7e462698e9ea9a7c05e19560d813014c837c1a2e4de3e1abab3a56fd18bcadc6249c12687397bf60ba56dd58ed9d72a2bcce5d0847e3f372d3f6f39b197642c3b580531738d5a4aa3c17622ab2a605dc62b25c3a54b008721a44b2d30bb1221f234d0c3b8f64d3c991a31541c99810d1e7bc5e0da5252b9225223d639aab862d98e265adc403aec9641872f6395658efde5ce013253200753eeb536ab8cab81c465442482c9c93c7ffd027a10bd4c69569dd56fec86cca4cdb07e93d14c3f6eee4177fc40eda55090ae20084b4330b28aa0691d0187d7f313762acbdc5d524c7b57d7f68f66671b7c5c5d524b05c23b77dd5efc75853c54249bdd9dc72fea005ca1b8f64a9d969079d7d4e8d78e0ec0b1fb7e8ac90400064725f65346ff87ced283884db05ca6b4a5d5315a48edd6365bd4cd1a30f37a059c43ed4c52c630c11fe0bde2bfef001c025bd74ec31d4ee131f837632a9eed527a2f783012d495e3f1f0d155bfa7fe1c8dc482ac65ddd0c22388dd3c6457f5d446b3e7cdd122e387cb2094a7f743719d897c990f3954cc71c18f2c96884b2b18e511d6d57fa2b67a2e6bed27d57d3d0d798c8381f86d91d8dc99d9baa6dda1b67a5cc08ee67c6c5c1369f53f42234df3c7136bc7fe90394019228d2da1399cf48e01295269d1bf054f6409332c023b8636863d52367b6a05aa5c0bc574beb05ad877ec41a208135dadac39928bacec167e46622a43026d318266e995e08875a9d52cc5ec288e4e85de996fb705fa82091c7ba667c54ae175f531cebfcde9a3ce431a44b66909e3c55b3d1314b5acf8ed2d03dd33ecc577db4e3301ab3ef416b387775b568ec8fc0a141db7665d3b1133209650658c31ffe4627435f4924a8dfd709c1e2142c410581f44885a74e33a110c4d9818948693017a04027f5402927c0e0aa333f270c183564f44fb90a3953da53dd6b4ce520c917c8e0a3b7ef6d581da464ed38c13e4a0d0b3d34b243ab7135b7147dc587a278574de42fbd9f5987063cd90a8f09486ff3224bf4c82c6f78bfa8f2773f5d016dbd9e50e4635067ae2ed38c7931822f18c11ed4c71ea6afca6476e8a84ed80158038b65ccb19ad617276aed19183631f48c08f62b8e510d378ec4881c474697e8b4631bfe592e504dc47e5d0e1218bc795159a4fac063849ac028c6cdfbbd185c8a534a61abcee5cc3c39acc1a3d9d5d0fab25916a3106884403a5444de54e3701635ee9839df12328ab765baba43743d02bf4fc37607ffd3d409a158071dfde5e610cf4c39ceaf965bc4bd179a2657104d765f10017f987f66c14ebe4f846e7fcffa6bae18e8a9187e701d968ce1324938b206718672ab93bdac95899c5bcc579f2ee625fc4db63bd2fad71dcc81ed8e0ce14ca4084dc201a2ec47cf677128c6d9d325d5d0d4a1fe24bfacc41413a537f15dfece54d25f36e29dc12b29a51845fc804b62e419635f60b68cafb85a4131ba92d048c6085bbd32ec9dbd9585b058a4190ab9432d40af558845ff061e1fa944ff0f277572ff56e94c165e8071a010c153e31a38690892b38a6a8767b43f89bd562b78e47b6d480e454844aa84d3bdb895699c18bd6fb19f31b47a48339d1696d5f1a8b6be502e7de3b103b834bc800df5c2803a506615f3ad4b1fd73625432fb8f77682bf54288c0ee7eb7ca8244a179d57ed7bf630a3ea1ca08c76244944340b15d2ca8536576a17f78e292ec6463ab32dd581deb7b9c271d921102b8eaa3ca49b0407e403a7810a59101edee2c9865bbcc46a501e0a5424d2d3f1003970bfb957207ce3e3348dc186057effa498bd71ebb5ac3d3f6bd80d10eb9240f3cd7c452c4aaff2a79d282ef4c75508a533fa868a014f619bb496c3676cdb2f1449705b3cfeb6999aecc9645575ec4213b5a1287d933c910fded31fe3e244335237fa770ca17bbee11549e12c8aabb6433ad0a349c32278da2cd83f5fc0b6792a9d111ff38af76942f69db64e1b66d25829354879a5a175121c9d5133ff78a7f62af24d25fb5c478a33decdb45d38c71b19f079d915d4deebda6215e2ab9a26915a6b720e4830c7430ef63182050f61e1e3fd85a085136b01ec9291c604c9f57fcf23bbd9a1e1fd7b48e08a0521e3be37c4b2ec1b8ce90397e8db0968c29a4fbf6d3e07d958b50aa7be6599bb392f617353a4e2a3c388fd0997cc205db5ded23c71b72ee322db385e0eba25b75078a77a13df314baac7c975f8aeea5fdd0f5ffe7fcda4bf1ad8543157531efb69530d69e73f729bc82d139a6fa9652e7fde0015f3ac549b450f86b252addf8a3665ead975248ad7cd8dd7a227aeb6f5b056c57be5f1215a2a83903d1cf722a4eed5aac39adb638971190a9e9da3e59857804aadf387140502c991158ba640bb40edfb9181b183dbd9d57a7a763764c2adfb25209859375be7cb813ab8514d390ad476820fde81123f412dd9355f80ceef4889a493c7a2d358d68220124410c32c6214775566f591d088ed316af1b002c2233302b56fbab96a3b3143c29db91d73d86cf0c05d64a7a0026cee621d32e37eb8d82723aa0fc07631bffbef8188bd1972818263a8868f335024882ddb716f752a9058b22c2d57b3ccfbe03304324b7f128fe07be99422422db4bc36e90ad33f6c23e2b686562a1493394fe083230c2d3dcf51cefca474635318a4b002b650800cfadc590cc0b08831661e2cbf9f5a14f392cb6515aaf9973de27c3e791f8bd56284a3945b88dc9d3ecd401a9fb49479ccf53d93bbe854fd4aa206a3232440b799addabc98c62d0a57c2bf14d31827db8a75ed4aa4c85c50dd4acb9b6f32d96dcd62966353547f3c4d1066dda535635427d7f81347d47185e8a029034e5d9d9c07fcc6b3663a0397aacd61b6cc9f4a6ec540a51e1cc3522b53c09cc5c82bb2530465a1200706ab9f7a71cbb6482b45ceb47402862456fcd868e3d533469629ee27f56612e119f8bc93d0cd9a81b467d288c014d191bac37273228f721001a10a6eb4793ea6d23603974f6276e11d3affbc6d72d62c901575dc92841b775cde42bbce0fc847a6ee2483350f19c3440178f0ddaaf34e5722d4ee0fbe06151e64bfc470c2a93f79d25a0086388331970ecf81ce13a57e460be681ab3218c8cd2f6d81a09834e4dea100336de9c5c598966d96005840539ea642ea5188cdbd8ec4cc476ec9b51484d51e5625e2d3fa8d981f24cff86266231c8f451ae724ca007ff19dac8f48e6c009b340294f7954bd2f6fce0cfd1ef87a80ba7a4ea6c636aef732a5d17556576a0ea23db77f6af40ff45a1e03ff4187e6c3575df52e236046f13151f88069aa9a7c9300f6762f4c96af34aff404edb0a7e88c9e841550aa43ff954d6d2690da8e2e90b537142de8210a0f95963c3e543e6cbea5aa815858879569713cb13bf7e103ad74825bb00d0622354d57113ffc4f37a3888d9eabf4cf72a6ae724cfee7304bdb63fa4773a56df3b9a38f5623ea5b352a8374cdb8475b0aa40528acc13f02cc5a90b0c971ae0c9a9f42d525204e3784439dfb3f3acfdde58139ffb78313f60b4e3ebbe3374cf4f97f00b098a0b9b0c3a9555c59c772e4051e50595aeec19fd9da2b0ccce2e925ca452b021618053f50d6ee58bc802e6ebc0951ebeb410063cc8b91e7d36d051d6dfff6e0920b235aa41fbb1b7406b55154e4f988e82139f1715afc7c9c0494b0199b3fc25d4674a6da4de600eeafc1d054ab7ed8cb5f7a8b23ec0641d354f29cea5f35eeda55994282b041ef6e3451b0bf7b1b312bf26f2fc44aa5c020c11f797411f339cc75b2c81813465bced9c4ab4ad6c5425c9351bd036a508ffbf9c5b6518d49f5ab9af2406b51b8e4162b148a7afa4fb22327a08d98058023e4eb58614e15a8acc17530f10d7286a3681adc9f28fe1c21cb3a9da024f2e56cddfa5cde6e79d97a66bcf23e1416053c856e93efff8a8f55fc78553c3ad685391495baddfe7685997c36c5d0b2faa8aeefaeda3dd3bb4071dbdb19e4944c0dd1acaa79b1d49ee0b2f8d4339f64507c995a39b67bb021fb7765fe65db2ac851cc274217947077ccf26dfa663e13ac3564f87e7cb0919d10be131b1157ad1fb41f50eb533ff2593a2020e62e7ecee774600d3cebc9533578519295741af8b7dae6196aca88abbd43a19684f6b66a227af7a090b0396ec92ebb226c2ffe7b62197ef16c19eb20d31b942eb3088a924305b56e746b82f2cf200feafe1c0a3767a55c6b2e5aac8e21734926c42503a2be45e478c394a75c64808b5656fe71f221ddceaa74d886e73b1ad62d0ad00dbe4180ca1a66cbf72b72330cf1518810b4756fc0fbd2c79315693839f3ef16eaaaaa8635826ec3e70df3ccd9cade14a1b6c6c7075322784f9a6cb07bc8ce0fefa9da16b5ce4b3035ba4803452809ebab38fac932ee7364617ff32143b7510160c22cb23407fa1b4644455971f4c7b486a8fdb81ed19b6af71aa1b7645759e4ff6cb508acf8ce52809b768b1ad2697e504d31afe57592e5a82433219ebdd4882450f978f207665c40f2dc9bc66317b0780466014bd658de3b52ccac5bb0c425b56bf931b962a4516e63dedfaefe54282f35333464b4120f6537fcb78734d2b9b922450dc6efbe82d691849c76c03f62775f256db7284cc622a04c618914f7fb68ac5fe5ccfb5555248cfd4c4947f083b56eefe041fae58e569813303d52fa45be92e9e89b108f3334a531dd984659c81b57c85de55f3706bfccc8ccfc8165d29cf52df4a3d8891dffa2ba37401f1613f23a02453d62aaa33ac0f9b3545ad1c4641c571df4cd228f8d395f07cc994c54f57de916cc31b11d955ab5d759f366395546f3416056d25775f0e585a0da9ac4fd46bf24321b06d2d470e20b2f207683454900443594aba49260471e3b4c7611d661737c63d30835ea0c9b135026a97f5dd16383204ee65379ce83626588b2dbb8f3f81bdf3587886ff496cb399d075a3c25d3a26e6f4bd2bf14717915e241a2f6cd7f5250b634a75d06733649676a5caba47bd216ec1fd629c1573439b284aa17f9a7da36992b1a5da60659d674c899bf020c595e8e0b5d546f466fb33cd1ad583b2de9f7dfd8261738793207b09581a10c5001a46b1c7a7a4cff0e474b1dc9005aa895ac1f8ec983b7632076ab693c0b29444dddf7631150064b4a25a6ff19faa7bd242c4c71d2fc3ea693dd90533840ebc39338a1fb791747a9862156de571735055b0e53c454fe29878578f035f6f11d86dd471d445eac90663f2c6af448829ae5856efa93a17fd35c0c0a6a23c0dad9b210e1633c944babd34bef44dba70dab3c930c377442931b26ee10352ffc09d80a7ed1aeb160bc3d9927c7dc157d696d1356727bd4b0dcfb54698d3a1e6be41401d5e3e2afb9612ab679dade095dd00d96fac1a345d5d252850996bea26623be2a71662e62cefd5afce779f8e620998857ad9cd5b2a3250d8029d9dc2be2f97c3dd646a7a758fe4d16a1a482ff8cd3e9554b537f8a4c0561ade77d7e0c4f16ef315d6a1162b9fc7a72178066169df2e27a9e445cc1fe63bdb2fa00869c4445f2e26758ced27a1c2b107012a913791dca99db33a053c6c5b796d2982efdd21ff48926c7bc076e460972a66b4fb3fa04d8889ef7254808c054927b9b01df3394dba06de6d06683e1d8f4178d6a4e6e84ce4544f36d94a31f606fc3e447f4063095661f3a0ae04550e5272e5ea99977bb48b2ab501334206808582226b2a6a1867cd267ea21256cc7ba3fb2715ad66fe1cc507f320a605458c3a7d77a2e58a99bfc3331d9595a43ea2bd82ffe924fcd6a19038873fb5752efa3a8414dd7967c7163f4131568ea417e30d7bd7921d658f6b242c53a94556f248c90ecd78e2b496cb8926ec06abe1a76c5b83a0441f9a7db75313369ddddec0807d8359f39aa624a843f22e98612b9ea26f186f00cbe8f9cfc7bdcb33f708740b7bd0c31002851db00b117407c60974a607416e72dc5bf85d65ebbf5df451e202f115ae0c1ad63644e684593471fe5c8075902576f770c9c341481e5bb84041522bd444a1ca8bf0a76a97bc149b2a2b87f8cea6d43929900c5c9f8a9f2587b1b80cbca9a3ac7cf9cb6e664b70d8562fa32aff48d712c428d352c4edcc1aa6e290e10ad751ebaa0aa32a77a66bfefd3d05f8adcf8f2ca0e86834b171b7c0c985c88a32a7a801d5fae166e41248a008a32a27ad46c7c1d2148622764376b6e9a2d465bb25fb5b94c178df3ad16a0e1228121b6c1ff6caf2a2c081bc738b46ede4e83b6661d4e82e96342c95363b32b7a02c46b85b4651913a16d85be1c9520f1f59799a73d5c9e044518f4ee5b6342828d72eb1aa83d0120d7cd1ab420eb2a58691b8cea9a249c65cf930c69d3c01a0ccc7b4454bf8fb901696e7fe4c4a2c1e7070974603340446b3690ad1fb39f62fcb12f09f4c9fc34c59fbc6e888664f301e844f9868fd048d18dce7a6de6156744928347f8d4a9d9e589462738e322fe312d055873d5040e5c10007035488fc380932c72746c5acbc596045cb7d38bbf2a60c121b64496a63b62b90bc269a6b717057bea478880dd1b98c7f1596ea1dccc0806b9b210af08005ddb48d979c4905c4f3a55d3f85612bf5eb159246e68172d7398d72c37badf6350c3d04f62d01dba8cde2bbf8c2d33f262a165f8686a200cb70ebe13ea3d9a9810be35c05422632d91285810da7f46826d3e5fa82597138cfe16e9328cf30527f78615161e590328481b1e5ff7a87a1d4aec250bf3fbae846f4a9fd4f5e6ef92c2c40db4145cced427894526c0a28da8a5914920d73d4bc4c9d7603b73922a0ea5fab0f7d488d16971143ae19d7267883990928a6b075afff17b7847ef2163498f018614f3bd35fda7428771beee0c4064a306f0653f70d86939f93289bab71579819e7500edba5422dcda15c97dbd163e2ad16d51cbce958914c21a1164eb9095de2cb3193391a46c8581726095decb2200b359c4314441062ed2170eab601d6faa8977d6385f6cf36fd605356a01aafdbff5d0528d8a202f7fb9115a8d84c44c4ce29a226fd8486c91be0ea97e1b9b354202bef11700bb1974bb12e6e2d900dfd2251c7d78cc454641efa3ac8473d940b2de6a64ba8ea28d58b175e1b3b77520b97ce1f8c83ec17bcfb58ffab462964d41ca786ad5c5b8c5629624fb9ca662781fa562d54f0d631920395621fc800245b9bdb06276adba5441baeee9d7f6bc925fa5e5ccb49df1d2317e02bc3056d19782385d3d8635ca428297064d1121d71e73d355dcc9f70c725ef7ecb903d07d0685baaa9a955f2c2fb13fd072cfca7f3bd7350ff38e1992f4f458692fa7779b7ac92b3a65f1e4ba61c765ec1f61048a2a47cb8fc7e5f256f78800437984aebb892173103bcf682aa4a0e18e46d30202c8267f53550efec16a7a38c1271d2bbc1bbe426469439e5090c1b40555ecbb3e490a085a9836a391fce1817d40daf23a342e2befd4ff50195715978c0726fb8708e11078c9156a8001900a56bac5fe2f73c3a3ab40c19c1b296edab05826776c835ca625951329d920f3dc103275b6d38379c0e40cc9f238dbc09243fd9cf10b37a1d360f1ebf7ce96c076eceec06c30e467f02d75cd2be1743c4a647dfc27fd01fece71b173879fb4931ebe46f04aad84bd9f64bdc364683081196c34fdb6a4fa8af39f8e9f9c1ab21117a3575c41472c4b0cc5ccd98a810b3ecfef8b3dee8c057b4ccfa7f6ebfc01209bf3f91fa19d3eeabbc37f8ee25f83170bdd35770275428c2311cedc79afbbc3067e6a7938e0e070da9ad6770508d87d16d94e70440e5b32f275f802ad33f0934444146f9bfad26c1a2805700583ef49db2aff012af8b0d716b461ad99b7561bfd3f39214404845708b4d81e0bdfe5b310586f65b31aeb597b38e827d812697be4c3073ae1384b6f158a660aa6545a07cb13485f0394bcbb32a5b1990e47db00819ddebccea2b769ec2094be0088a5bb31c1f893501493cb63e699e76c4d70b6b94b586d015b50c11ad0e55d60e219711bb7b956c8c0445ae4db568236467aca4f84758480a36d9d1a4de32cff03fe382cb1e40ffba1f6a770bff630d3eda5b85a5fa0422bddc9ab6750ef993a895ebd790d295f2f91d78762578136689e025465027deb61a2f9693f93c83ff175109efa8556a1c7034f54cd8abbf86d9948001a739f8e61d9ab442256d3961b6427c22a71a57cc3c6fa2fd2f32df477fc2e2bc140fec43ae0b7ba9d09c0890f09916b1c01056a60a7422be9ee8b988712a171ef26d0f65a5822d850b250879608f2d4917ee1684c5104649fc8c7790e27ad2f957a7cace368fed98afc282e2340a11794c67a7e2d441c886d1b69ce516bd95c1c9bfdb54d2eadcbb09dcdc5a25d81dfc31b0245517e55cd3c4194a3851968c04dabd15eae42b58d136d8f84eaeaa571e0ebd14a57312ef674e6ed0663b614d1fafca210e69190d03e4a1ff5339229ed749ab186977301453fa702767bc6e8daf95b7898058bfb971387e9570824cdf42fde304615ddbeaccb770f04d8fee00b9ff7d1223053c464bb02acedf57d0911a96b75a52b2a6090aa51ee378f7ee4705ef309e21640b5e45e02b8bd7e650412e34b572a4a9ab304f395f5e66c247f7defbe9755a683f61eda0468e1a22b7ab7f1acad3988ee50d64bee0b038ea766b51185e554a17ccbb43ef0d7b8f2ca8681187fcd78b5ca6fc84300e39fd4ae73387680ef888f972f39a5491e7497467aeef20a1ef21487a45b38fc5bcb217bc3462d2719703ff5051404893fd1cc1ff050cad7345b660ed84b2ee7fe81b6758f907aded61a4c94aaed96a6528d2c4cfebc1020820d396e7911b66e1316dd8e863df019930a422a3233486d7650a0c339e3f385365225dd3a1ed958dae09f953513e93bb922b9a155de1a688b86669d0d9033327948a59c25c3bbe5b1e5ee8a32fffc55497b085c1132f82f496f4a9aa246c7189b0b9e3318dd6558a21c3d6f2d3ef401ecc35920a8730e74a3c5f3de89b3666134a88e78ea6c76e03ac8478012250bf26f0ff89ac23d195e1a03005c64da247e5f9f0b2e122b635c4eb5b3b6d204640f0fe0ae807ab4bb0ee3f199c21262b28eba50ce0269b10a2f3834cb483b56a95805729dc660815c14f2221ff117904f4bafcc943205072a2142a619f7ab1d2688bb001af1fa98a29f3a5f7383bd0d4b39464c404f85871373fcca692e248507d24419e99bb7c285c63929a98b878d32cba2eb4396abf7a61ec75f38fd29b24b667eaf7a4c2f28e0ddf42b47fd450f85c226fe70648a746f83c4a5909a0f0ba5230f42cb067c482497574b0d6285f5f3d52c32ae963ba91d24edb07868688a9157f72dd2c205f8f6bbbe2e94f0e91ee98b083d4f476eee75c28e5b4749ff15bd5d358ac23ca39e2679d1d5840ebb62022df0c57f6ff6ecdfa6116d3dffa7e5b881b5092898bfd1245b9220da2dc83ab8c1946cff11e3b71eafac74d9a5d303d565ab94047303d7ce76ee1943fe3e6ef31a2823e4f830fac956e8bdda0309b952dbe12bdee0178e8b2d9d101dd72c91235499d0ad3c06f31576708647a11968fdb2633e627120cd1c49e1ad76388db40efad58446f94559001ac3c06cde89f18a03391b7de0ea85113215d140c1116f1cdef1582ca093673a66b88acb93b3587f1c4b68c5c3ed6fb09e5548f18c13ba9971e0944b74d4a387a19c098eacae83811a3e7c45f9d26f5a22a28bb56298a76d44860e4613c47bc90bf8a9dba225a4c86e91b15f65610453e5f7aaf161e549fd44fafe860125800d02d6897e2b0fc2e025214146d4f13257241e4b7520046cc1ef1658156931ec23855fdf5ed2773fbf0c6429a8f3855d036c718895c71c6cd9309d15f8fe2d6c82790aef3726f13794e4cffae376e49a8883c6fc1ed9bdba2528e433243d661168f0dc39d1b6e864307373a449c4e30a655df51c991a87f5ccab8f45d83846c24f9a8d6c214a21b3cb372e4aa87774690f3ea9ddced8ba72d388c493696737b8213e5573b2c3fa9686708e4dfa546f9a59e7cb27f4bc1b73238b18e78f8389b91b052f3ef154f2c573c510dba0a7c50a3b7c8dadf2b92c1560ea4267b7c206a90f1966641e224adacb71eb368010eac406afaa1e970c9a595a293ff5d355b87fa5fa446af549183de962d6d57b300b10966555b063d4f35014ef4c1481af4c1cf99148f2c05d932561af098098b102cd8c023b5a3752ccddb7efffe1dc54140958dc4f4bf06c0106a0a2ca93f221b6f585555405e3d879e82bdb9e3a342aaac4a49902feabd766540bf32bb2fe78ee5aa4bc4e476d6fc49fcf2c381b38068c221ff988d26945bb49a2e2efff7f71ba4ff241552bdf27d1cedf4073455270278ce7198a7ca74d3ec3b328b04ff19078b6ea13e3f3874accb0e11557d141405d393dd012edd99628fe42914c44d9a4bdb53e79b7dfbe520201b052a62f9d5a40bc7c68258421156817c6137006e101a024dda4a347783ad786abf12fc237540802e8cb33e8a9a2d346c1111fdb49b230bc217e67d00125828137cd6f29972cd21334204e1d6adcf8e02076ffd6e67ba27824b0088be3014d8283718a5b651884e5aca23a67550f36ea0dd0adc21a0656a7ac2f059a51483bc62624cd5bd56525d2613df4e8c12dc2943da7c77d925908f7c742bbf2fe75ca3a12fc9d6165c20dc60130f63f451b30bc313bbfe103b803109594e92c62e44004e7b3b83c0b98f2321a9872b3cdf48d55e87a15e251e9cef5f452564b977528b0d20a3de9b46cd15420b8027b4b61eb3620ae4221e82c27eb8aca81cb6c7a6fce3456f2d60b20b1636f4d7871f6065c83d0ff00095b893dd468a3f70751afacf8d1cbdd70d0dbdd70d14fde78d1cfd876fac24082e1370de0740d4c7eaf0d7f9b5d0337f9911ffe926ea28067fd6c922fe4c20edf91abff0896a012b60582370c87782efb3a1e0e92d9e230e46e1935ef5c3b19c08f1313fe89c3e3ebb1d22341a038f46e99ef83356ad3d60786781f33273207e552b099415af7cb8cf828326c32e39d53782069d4e921b43ad7e081e53b8ba79c3380edc9c5f3fb134a292cd4460aa4fac48ce909f17f1edce849b1a9cce3b48afbb1dd811e4e1adfff8fa110797e2f082474dbc48cd420d7d11596446477f7ad69601b518149018690e990ef950825b4345d5cc7d9e3977eef9d8340b031e9d0bf7fd5a8269c216a9e2aff7d53427d00665e399a3e04b02bf4a5f41b66fb1d61cc00419a73732f7d65139a0a88a7cd6d81258f460d94b0775ecd446dab711853d64e1ec90a9bf90aed4548ac27a4e7905d234e54e58b42361e130dff3f5bd09422e6b57779f3da3aed72a960d885e65412a4d78b4f9cd8722105ef22ba339d6db293e738da2bcabbc68c571f09edd2a231c158ff7ccb263c7960eb478aacb51baa26a9e4da58cb84e0337c8da197662dbbaf93cc2a68c8367804730feac252e030c6e1389b3ad84508ad704e94f6d92153df3bbf33610867fa948c3ac57fe53049939b0a624b83183b558bfcc5a747bfdbf40f6ff170173f9580c1085d4868743eaa1a8b05c20fd2a4c7d57f110540e02800575c06c7b7baf8c62a6a4c937c163d249bfccf072262f7ea7c08d03e4115fdc17c548aede7833a2bdd1426efcf645780a40927a7f2a566a5763fc3c2bf34b016381132e58b362baae69d1996003cc17eb61dd2fe7294906279d27e920eb38bf81c9b9676b52af164f9a70d3c17688ab5472250b8d08c4508acae54cb68c9a2e01e7de111acab98a1053172685e31163b9a016b2f47e96d44ad499c32d1e374e9223cfc927b770e63c73e825cf184445ade2cd7a8396d43f7c59426edf428eee4e5dd518e432de57a64deb4a39e23054985da9b011f217a979a8e80ffbaf5e85b1537166574a913a705ce4763d3763a36b02fc94db4df1a885279560cd5a1e31459fba62fc5a6f5480ad6a18fa7eb23425874c6d53bd8252c91a3f048bf47c9dbf9bfb1149fd8cc7d134e152bffd28d0984fc775d4d28e5d0ad905957a3db1b24d93529108851c39d6558f3ef395622c2cdbfdb526da4fd408cb85f371948fa5533c480117e640e024bd6fce128a5a583b6bc0fa4c0ce0807ee80deca2f38511f989fe3ee22c59b34060b6182bc3705e6ed6fbd9d45ec48f07dd25be94292564092b3850e8ae1c62acb48777a44f837c2ae5978d7708afd6e8cb823b609dfc2cb252a54c302e79707cdd90be156ff8e452fa1d5ac676e878c48571f63cd1984029a69ed152923c67a7b57bbebbecb29242bee40ea54344404315142c47f00fbf70f026a457ba483ae91a5a2020a683917d247389c5204154a198718c946ab4c37fe430198e2d6a8debb527a8c9056ddc94981d013c12da7ab1bd63c4ee7f63157e1f16e052c706751d8cbe48dc8869c37d6cc23cac7b972388e8a3eec871788338fb76c9acc21661bfee53a6b0680ae14064aa8b9d55652bb85660f227300deaab4e45a29bc45214bac274e6a6b3085f0fd6c4fe9bd2b8465f05d738db75dc8c257e08897f27e6b9fa251e2264dc2caed419bc225fecf608f080b02cf7a47c145603acc50723b4f8e9ef834478a5818a304f7c02208f505626edd87c87fa3f045c14fadf58de674d364df7bfc9acc0393ec8680aac8e3747c3638ecd1e86a4541ee59865c85c826f34c6654a94c189099bb86563626d75b7a41fd6bf51d9b734aab9b974c0e8bdd577e0bf1e9a400602e07720fa0d2cb90a2c11d1be9dd1cfeb9bb09e9ccdecc8bbd050d523737852fe3e79b43a7f20e601be78731a7688edc9cfdb1bd33870cb7fb3eee79a91a65c0b1cd3d920c3b8d4d124a4461f1c1a1357c0cb0499d7ba5a6a62a2922cf3806263c8a684594f89a80a9401bb629e3b0f56bd938711e5137fd80866167119d7990c25f8232433cf696411de15cc6246795e2aacd8dcc08f60106439775cdda05641daf71c7503dea9e4f28a4cc50f0ffb413a1689da2b751dc74d483c6eccd082d868691997a57ef9113c97362cdf214caab72bfb8bb49f5e71ea8196ebb85a7873a608b39729a1cee80a1514d64e46344d8b39db9c7b451f7ec9450de582c1e6c281c0bcd04912c7eeab4f48593d6060c6b0c97761871251f13474ee46ad9ea38e423322e0cadc22fb276e76e92cf05be641ec3904fd4f3e8dd547859f001572f124f572337b7746189f59f711d384a322298c315aeeef949853bf00836bb82f9184cb39e4dd7350e9973cc9bc2d1daad8c06dbebfb3a3799f3d26d65612704995221ae92ea45f937f6f65e37d91edf8e39c725efa64b6e73752b23d760df05453241e00b451dcf4f8ceb3d2f0474f7b0923e221269b08afb7fdb655e7eec243b3393b5157cf33c1f5f7f8fb70b37daeaf1d08c7a9b98580255100443b34cc2ccd0e02b83af2478dbc2b3500a54f6cfee3f99bbaca3203f2cd3b367e24889315c15bc0e63cf103e79d6e72acd40695da13206f1eb30d98b806086194d771ee037069e7cbf4b891e0d9ffcfc15efb6c2276c81a813bbab1bbbf1c364b12857e1f11039f48ba8b5660fc8ba9c96efd3bce92d7a25c2b0f2ebf71422573af4aa141f2c366e2be55ff171e5da9326b6c7dc0a0f410bde14b44992e2173719de9f2d32fa07da864313d456f3c712e5b6789f97a217cbd3085408349ae2981dd7ac2c13a1c012fe3d717408026fe8f3cdf70606f2d74fc1d58f5e6760412d1c9ddea06bab3e0ed50b5710465d5ecc0da1907ae36a947d49aeb2daf97ad23b0cc19073c9f59ee7b69c4568a2d9759466ea7eb8f5639bb7ae17e8a3d437ebb345f3556c07778f41fd4fc13b7f8951c4dca8b18ff47d9a16b1efe480fe84b930f76b67035c2ddb75da8cf54d61712514a74b82e694e1d263d61be4000b6d05d94938d4d9838ef1f2122257fba1e697d8c5be138322c032e385516a72f59ea2c7999b22b40cbb6107f5876b4272dc39153e80d4a1b926b1214a57f6451a8e3c765bc7b218b0101000f4d3e5e8021eecd57fbd5ce4f44d3ac9d067ca278a47c58f6bbc50cc24a2912f2eda27a5e9e48e9441df1fa1ac9d4864e45cd59f4b501e159342769b25c671f253dbab871149773ce14caa04cee2865ead40d3370f7232c7405f5c9c5834b7adcb031322d246f0d40fc98e22192bd80f62d811e73f85ac2b9722cf512d2dbdf216cfc847d67c3639c178ff1fb4fca0f443e413d6b818dbb34e9126f1588003a1f5bd8bfef42108ec7d3c8e2d146b77bca9469ce0cc8844672005617768d0c44a36f13750717b78acc030878c611c5b80c4731246c7cbb4e9867edda22c116e1794918fcb11ce2573d4def175738f86ad61450fa5632eced3e8a2886dfef6326a851fccd2766ae819cdc3c5c976aa114c5e59519f8f131bde7be99a1b58cbaf4e134c71313eb74493c4b381fb46a82df2236a682635f4bdf6377bcfc53f11981dc2d09c94e07c4fb93484a4bd1d1dbebfc082e5175a68ce9569c94ec93a58990a9b4590545cda36082c68296bcae11797a8d95ecebcb8e82f84f65905514db85760564b2c7a144c1b78dd95072b79b9c2da104d985ca2b35f774e2b9f3b806e74f67043d64604e8db41f9cccd031656ee2e21f8d48483b22ac76ad227d266314cbe76bf843c915d9f4e20477304c0e2ee522795ffc8f65c81da830ff1172ca2a6f08f9a6a7c6aac09532555364724082b8eef94fe7c9d04c9f39c47839908eec2e2c9a3c6d76bd4e82596f3b307f0dce75d17addef2cc719632eededed4f34a5d5f060cd81c08e9112677d2ef270b76213c4e2832e795cc0c57d274f16a9b7c48d205f1b619203b7c0621c22e7241d1bbec0a842826e8131b39f9e3786fa6d12a3760142d401727edb5b89cd91f1833b777ae2c044484e547341d2bb33b2043ab74c6afde3a248db4c6d87bdc1a862448aecff2b2bad400f0228d42c97eb5db5efa6a9fc6be2460ba81fcdd3669ad1e8b685c5aced90fd40678851339371635bd378936866adc7b98ee2e2bb5520e845510a1c2bf4201e0a28129379a05532a054248abbb6c92d3fbc86ad1b51050617bb45f3947f6203f791b5862fe86419f1d8ab8d563816a241604231b47dd69d284fba59431e8650179e7ece642d292489edc1a8e1d41b1e3077b26c6ffb47c03131cab3503aac764ba3c7a480e92cad0f006aa30307c70a6af6e8d6695b2a4c4f6291bac31ef6ea87ce954cf86a79d0fb62ca468e96f5e0025cc86682193b4034b8c3913870709fad36ba9a531c6baa3ef7d6086974963bc85fbed62993fb9399c302737c27537da6496acd0e09aea1da22df4a964860a014e5c47180ea17362670ea00f0abb33d8ecbedb0aa85a0b31bcf6cdfa0f1b65e589839767255fbf8fcb52b3948d0fd9c66dd75abeb41e00ab57252fedb8a00576d8ec05577a878a5e35f3c42808612d1ac5b11fab778442f6b13ebcfdd8f80eb46d3807e2a44429498becafda0fcfa37ec9e15c7a53b320f5879967c927092fb321762c68940e5b85270c1fd2f5a634c27fe6971cac90db458d58c6446b19a52d5373eedca250e2a45fcb9b4bd9168b9eae817969874e41d4566187665ef643ea8117d53bf8841a8fcb8fd208f8a319ac08220ef142c79a4a02ace2af8dc1fa062e0bf3e57ce9257f7d0e1596d80dc9b6467b897393c871f8fa040c3f237817bfc9321f8b8cc85c1989f4055d69501b7b6c844fa7345d31238e2344b42c7818745a89cbc2ba1aaa7401d9ecb7dd281dd2bcf67cf135db7511cc6d7241ae645acad8f46afdcb7c447d32921acf24c4baf1f240f709eaea8b2c8f88106a306eae4e4a55847be7c920677193672e63e1234edb0b43afb1df96d0723aa07f7f34cccf03e22c9d6278153ef09ec4b22e1873f800d6576aa2fc6f447caecfbb9006bb1e6c24b9d74e63a09c2aaeb830f0c2c20f752159222d64b67a3eb44b13fe8043797f1db5f8e3030b914a8aa1725bc8a05e205ce08cfcca998aadcf70814359054cddafe39eedd1dc03dfd1bcb6b553507fc60455ef3137d961639fe9c8b8e323f04dede35ef6c12efa460c0dc09a5cfe5e2543c3c5c3d9a203cf587d893db0978d3f060b3d9beec6089ce62e05f514742035ff6c0a234cb296b5fb49f8a359bab8e7ffa498be6019e7033315360156c464e733cdd802e4f8e48bab18078cbaad2be7093bc89033b71b910c712900258beb09c9fbecc24dbaa0a8d51d36a4683b9ba71c21d249c0981add0a4979d31615316fa863871b83031897498a7b56e74413dbf8c66c7b6883ad791ee0bb6c81f9096b1d1963b7d118fa3bc9bc49dd986b4a5a1a998bab89dcdfbd4f151be8057c193263a85d033fa8b02f4830cc89507a07447f0126da69c1aef2104098fcfb394c02107e7457b29f9c9503689080c7248964f8c5eb4dff40a865b1746e70a691608608405c3ca19643cd5b833f092ccaa9de596229bb0b3651ece554512044eb9b38477da0e1879aaef4caf6ffcabd19b749ebc7b72de042ebd24318723989905c48842a27702462ff0d80f8f0a5e526ace117c2dae4e8983ecca13f5efb5ef841e020a7da872a4d40c5903f15489be5d26e09de1d77382eaf073444880adacb7d4e478efa1d0f1103a4cc8928726120f21f46024d2620fd524dce0b254cef23ca758b44baa8c537273217c182180260b9a1d5c56f6655ae201dc38ddaa36efa0d4e89d937da0f6ee543c6347bad123e6835a28c2baa8a81f449ed6dab207596f8e07b664c6c484265620c122ec208ae4d95cd604d6798017e7660a49f9f6ae55724f70fd308d288a1ed5845bf7079b96edc1171370ea5ee00630906e05b4dbe3608cc8fb7d004ddd9101a97f1b390adce686ba99c3b404b868dd4a430e0bda9a85047663d002640e93b51a01a3bb6990a2d2d8c00c715d9c318c22370ed30539e0da28ab55dba19e59b735d502917e5150bf4e8ec9dd92bc928ed520005e0558d8b46aa69ce2e4e3b4bb0df8275125cb93340cfb8ea8766a8949aa36384fd29136c5db8f783ead93ac19a7f3bcded0ba579a04cec97a988d27599272c873804d0a5ad45641224f8ed9003e5629d86a9087fbde59c177075a4db4f4429e3b4f6264d07c8c6c23df0e63a8a7d7f1a06df3f8080046629e46afbaf6f71fab177433c5f227e844e22bc6e9a5f77df13cf15799d223c84d7eab36e1e5e762a081b99eaa96b155fd2dd2adb92426d6cd863f997c580dae35b83bffd0151278aadb928ffccecde1e82fa1bd5ea2171ef95ad4663f67ca9d8a76a618b49d3157e15046dd12b6b028abf232fc524fd57fc7e94baa8d69b2eed522acdc987c67675d64dee114fde13c4bd78a6eb7f0f07a78db088546491abdcd17dd611e92f37d4c076bf01556ba4efc40207094619504b4a18459955fda9f7d45d86a18cde7a763704cb4d37ef0d1de7cb31ce574a9cbb588e1c23c0f7eccff2e370b17e493fbbe794cbdfe2413ca90e6f669471c46568ff0832348e70dbd42ad840b7beb6fe4c3b37098412def636281d653f46648ee03083fa570785f496a1c20f001ff15fe2f7b1f2be8417c4abcd53b015c503b03306e94fbdf6153ccbb2fdedd57982a13d61a147ca0b49253037cb3eb5123e85ce0ba2d1202c4979352a496e19bcd69c24666d1ccb9e39bf95f1cf32da0e5ef65c5173e8f8ba6723db12b8b58757ea5556f46a6546c7679c45c59c382bace05771d676d6bbb35a37bc7782520f429668c6d7fcf4a60ce4cc19c637d9b81a71dc48c398a18b6af312c9f8032d40afe4431229977e152c583b0b47104fee362c761cdd5bffa3ef018eb5a99ddd0874d84dbc63e472ab143827c8376f71ccf6d64ac9b9ab7fdff4e08e4381a10841998c6145365d0d90ced34ce4dabadc2bf2d64bbb422c1184aafb29f7153f474ab9183e476d889d02a10345e8473c9991ba86425f3a7b1e3386b37b37191dfcccf91807a3fe146feed67f39b79b333f56d1dbd2b66ba4251d4d223f142626112babefd1cae82c1ce63ac169db7190e885e4d64898e039e1be0f5ba71a77fd52ebc093722852da17a84a76accc4da707976219bc10bf887278f505a9d3dd3b8b6a6895029eccd6c78d87c5a5535a855bb6ece5697421481e86696f347f935eb08a10d1f2be64fbcc119d2b4f4f52b6ce17b00a5c250b767d56a0944583966cb006fd8a5d515d8a073621462d3a0dada075385c91bdfcfbf7b6487f10e24e98fb38a7919de0b04452b67a3a90696ac5c8dbf9f09d61d0473906035180879bed4739ec9720d325041c63d58e1360982774a9af7b1f10f3e6b43946838c914cf8fd250959849919de118e98f003eae5c99fa1f70ea8f491d0297869c3bcecc16a01325c8ad25bf1ebeea29d2efa6c6dad8357bd334dedd64167eaabdaae609ec50a3b49fab4d483e2af589ad08c0e18f0a7573a8780ecba666ed99f0df0472ad8c47103b047b2004af67d2e8276344552f6a95fa5068e4a312f64a34d8440ce919c070126481b868a1a9e97620eb347176c8b1de664db10ccf86858784a6f3d1dbbc6e249136af3da919947327055d012949c82cdea8dfa2fb22bfcbc48d018d3441cd4f57ef2643d41eb098437fea58d0c70f6a217a5dac148bace970082fe88414eb7225e8d5b0a8606bc9dc378ca21bf0ed521d3ba0fe8d0a6c69e50b88bd59be664e7e81ede57c3340adea2dbda49d12a634e812ed015a6e33d3074bbfc2efe5c9e2feac8a08a200dd7fd4eeebc2caee993edc562a2c70606e54fc371a8cbec9949458bb21d16049a35ab14772b22ccd4f490b6fc787d93b4931dc2f1acf6020f44f6798d2328094d59b433425e57eb2f085c8343159a0baaa167d20dff14ee64210c69aceeff3c092d903f4dbff94a33b14d47f8a6595e67d6cfaec52e7b76258717ae9f348ea8cc0056250c72bc3feca2395b34041801c31ffc6c831513a5d9167a6201f92a0c5835b7c3a65de42a7ea04055ce11b46557f5b0c758b2d5a51994368d79038f8c248e1bffe8cae12095254f075a1a42d8d3002dda8e90743a53d8133729f24bddd85f9d3374cad95db2e4ba4b1629aaf29b309f7f5b30385c18218744fd807e2f31d87e4f6334855aecf157c172da53e718e0f1ed3f4dcc313060e76a223a93bc689ba4bbf179c48c6ba2650c8fa808986efa84b8fded5493f206ffaa1d63aee6356900135bb05eb231905fddd334b7d06a0216750c88086ec307d6e9e40c9667d6fca231e6077136ecd023a6db2916e58f9c81c51edfb936e9d0b6b018001e3db9fa4cda4e1e355376cd2f5676c1908bb9cdd14b5a2d4a7ad483eefe709f3ae5897ff038ef36e797091386a6987978a63206b8b8148e56ae31c2b46f71d6b470974b0979b910d19a4b8e974be583ac191504e8ac102a4e696c8ab11623addc043b5666313fd87110077bfefda7a46ce9f14053c70ea7c79c6336993b8054a0399ebca38ec40ae7132d3ddb8f1681b5d731856c78c270dee34f506d48b1dfedb7e31621aaf1a4128ec8e154cf58d898b153165f66e97357a1c058036e0b9f13760371a1132bff8777687eceb24eda9fdb1ee11653a3d5017bb515989c0efa03f1addb12689bb9614320c28bb10d98907f95353d357145e25dc6239ec4f38931c9da5db99f2dc6715939695d8567ce5451501ca24164b2f44075b561a8f301d2bb84b6bfa3c5e520170a1cd38c2f192b915b6199877f23c079c4156149e6fc8d55728a0d58927ef3b72b43a45e1f96e16764601fd7980e2303eceedc9a50bddda317474299889401f473dbe0158da3263242cecdd7fb207c0f0fee6ff6781e9308dcca07147607ca4566a4f9a9977fc148f3460c5a77833e48b13401603adfde93e669d20b494816b4839b19de663b884b7adcba8e43b103985d570f0c2f459632aaee41ba753563b8463fa419c7c5aff10d72b780ca0d073d2022bd24f0a59690e8a52005cc13edad7ec6860093ef42a2a8d3e4ea28ce315b4e718b195714fef922d6bd97692c90c64a239339891f5110786e943b59f4db8aed5d152485a0e2238bbf8d903f51ca642741fd942da4a1b118b49884e68ebd06c220d86212b84d35b1be5e1ee7360c1cc53a1250822cde4d915e098735c499ebe9e5dd7cb38a12d51d9e97118087c1006de1fe98297cfc298a4140409f112a142dfa45c890db7ace87fe20a6ff9059617bfb97d39593a15408d0bcad7fd65356e3ccce4a9680696e0707facb451f394e83a25019c5b75eff65ddbefa49fc867d747183fd37da30c5d53de35b9bf243c10325e6ff2dc49876984b693520c5c4abfb5af6ac4332b4decd7db66fc0e8a273fa60ddcb51a403dffdf0aa88edc11ba306654e3a70f79524ac092a5929f0630ea12cc417b22b3840ca0dd1d3e817b3d5d3b8800a88b4e3f4b331d794d2a5c54ee3adfcb233cacea740ede77b44e26215f249f0b8d38f6e3d8d12f7605e7f984927a5366793874d74506fa412c4e30b32c7256aec3acc68faa1fc378954d9f8d80256122e7e32fdf719e056c43c4a9946a3251983bb20c7f5a8f9db97783ded8c1c9e3a2bcea40d0d858e2b5a3441e41e722b33d54b91a7c1fcfa4dca4df7f88876cdc383d2ab32d86bcb2354279a5a46e6644ccafad18dc3d4de0643ca439415693bdfe387e567b7d907982efe5acb6bc4a53db0ec453c7b22239dc84d5625a99458a9356732778215cb0b13dbaa6836a143fdd9d85f4cb8716e1c02cc209371ca6c30531dfd58bff1d27c519be725b6f0f971da6c94fc7d08206abe6db3f01436e71a96bca23145c4d83d1d1a83de37238e8aadf2270610343dbaeb3ea3b06ef2dfd4077ddeb5bb82e642b3d10c72b1d61b514e11b24df4577d218c5e6fdee43fcb6f87ad6451649973dd72f483607b08facb682e3c8c64247b5c7c13c74fbf2fc52d25adc747faea79c2f13cf6191f5e773a397094cdc510281427d3b420875391e9cd712bab646e883d4f704b292173dad8f5354e6627c3a9065971ad28bd3212d184b7f9890ebd3ca71bfcae5021efa6914f15fed3d441eba1b78d211c97f763dee07578edea8ec1b6403cea4f0251548fe88e93639aac48f1a49363512cc4bbb116f33751d91dd7a923e46b5a12e56859ce10292e780de87e5f55d3c18e4f877fa12e807ced626a171ef32593d5910fb8d0da8dc6a9552622fd9fc57e49f9cef603ad8d99b54d5cced790357105ce027be123496aec38dfffa838a4b939e2475e983f2c7719a5a502fdd22d78558a4d2fafcd4fa76ef12dd95259065ddaf0c765a85692b39406512d4704f1c717a65e5d6ead9ef49be6c92d34e095cb365b58da0bc6ab2ff4f5a3eee951aa281364727a66f34a9766cef45997063c7f0f07d0a30ab813a4b82091f8e551fb9c683b821e3704dc71fd699337f43e9025f019b8903cb89a339325ea5d9db68ad9d3f71a202a9b30dc4bc106fe4759402d027ea4fa2bd9cdebdbbf8a36fc142fdedf18f92e2afe193c6ec6a02d873d12e0b471b7dd3acaf2b83fa2158f4be21fd3de9bc09cd9ca06a1697d88c78435693b0bcd3976eb8a18a854df6c8b167435250e69525322d930c3c01afae830c554193a0ece2eb8bfd70f7603c961991eab28293ef7565ef05ca2d6c61fc8c313ff22cc2692ccffb840d4a74928111e4ee22ba5ad8ea60a967c3c9be51d8be29b2b47215d8276d2038058edccb199b8bbf3f57859cc8af1b179d9597f25d30550721d8f5bb7235aad23e192833abb72cebd321026a9da00e358545905a54fa365c51a8a528b6f174eba907f5ef197180e6bdcc6517c3ef507c9c3fd0180cea88176ea004381fea08b7f525bc22fd3a8b1d74dff320b41f67be0244c19b7793d7a0b9c67b7f080726f754c79bb2bf3a07df660e9900928d1812749503a852620cda0e40ba12da519632931cf16cb072c805f0069213949772566eba807c112e4c62184398ae063c97fa9ac29a8fec08b3bac49c840c4cc48161750574619bd05a4c97d561e3a090aa0e70937d5d2576dbda5795259bc89c27d680bb3199e6134ba5981b98298b7db0166b5a8e77f4b21363e5b9320fd7c97b3bb8d3d6926da8c7c6ccdf22f98bff72426151115b9ca78a85b6db4bd2358de408a06eb22cafd15e04f9d7dddece882d1186106bbb817dc692f0b11e1237d8d9a4dd455e5e359c7b4c2c0470b69642e97e4ed517b9fdd2e5b4aeb1b73d8aa5eba9dab9c0396f523c909f684134964b561be2f61c4b52d4e9e629856b89bf6821813bed03120ea86f97248e9bb7052f065ad8a7afcbee743db1d1ba24bf7101442ef803982a8cdf0287d3087e30a67653e8ff22884e8b50ef3ce65336cc4960e164282dd5e9b5db03d29d47a01ce69c6196e2e154e55762f25284587bdfe3a02030f47b99db21c9cc1fb285f803580596c79fc3aecfb956a037985e67c061d0fecea7854af7d40d888abe143a85fa959aa9d31c479e32570353c7ee462ec7983af8c6286c24d27691515aee32e50aaa6c0b28c20aababee1909344254995898cb31cd95b082fbe54eb0a87316426ad5bf139fc20960172477ed8fd66f867ee59d5929321f88942b0bbdbc527eac19c8bafb0213e4008392797e61b1c1f4b6b01cc94d2e2ba91f79843d79495f565880f0710d22159df30414d72a09f512bd49a95ffeb2ecfbff774a4c7a5125a92586d9ca142b2e9c163b5b332b26fef941cefaf15ba96a21bf70bae889f59a662dc7d7f4fd380450a8d842e5f557ddd0c703d405dbb943b54f0dd11d794923b0d97b03424f1c3c758c88bb00e8361b7be67a78301a5ede7f8cf218277e295c1ab0b6526210ceebba3e6c572e45a074c920918c21f6f6aa4036d6c8ad7263bba7a268abc62da35551fe2d3830636279bd3fc18ae2157b8b027265c5ac7b8c296b84a100acda316b5cf8989b36b984049bf52e0b58de6a790f88102d2e0240bebf4d0b67a0a4551073925c4f199330cfcf0a96a2886380dd1cc492889004b5c8ef38c9ec58095856b116977ccc1565b3566d6f12bd2ab40c42124788b0c901995c112f3981b56659302777bf2d45c12a68330d9ebee6b47efe99e6904eaa84f94e83268bd7dbefe599ffdc4505dd353d191be5d49ca9c0deb05328d7ea00f37390bc418b1a06e6ce7aa72705ff0eed84b32b96f59cdae38a8624c62f6827bc7cf337ff0ce032212ee46e2486295cccf205ad2dab5c05cd926d9569909b10f7b3ec5c218cb2efa38c76b1f45e08f603bc17c1d361336dfc86776529dfde4468fafd7e6c39675dc773168876864eddcf951811f35f0e24d6e3ae97df47b62aec6426683ae0b9a8d296489401b1954f20e25524b84755fd1ac906bfe26925964c50b87077d054c9208e9cc52e3b0fe63f3a6ded6959d32f76aa250dbccd8b8023e1ea7fa7c47aab1438d94c937aadfea1e238c314f4f0c79338d6dbba07214a411a53d75e4198107c2c400a1484fa56aa9fbbea5c46985c32971924468a50cf2f60211d3bbc6239846dc1a94dc42e33d0318b78b5c303b052feaa0b05b4fb9ab2e13f058282b184a5424800e56edc6ee54a202c4190d7a996d7a5f611d210770b479a411fcce1a290f3b4873f19327062e5230b40d748192c3834098f060996c29f6c16b36c53c010cf9de3bb4353bf1087626cd48c2918c2d9e0b797c9868f89e08084a503fa500281b2ebb9f0596220658db6734fd8b692f7203b6550197a66e5ffb7430f148646e43b6e7a77e409ccf803c6c44265c6289efb9f857d62d852c1be1b03a0e3fb368626b74c6822de63ea1e875987321af157051d8e40baf8428eb45b27fb4e0b90a83ac4df03c438e8903970d755561f8a37e8d0925aac9e6624518d1850188d203ad92a0043de911ce8444dd91dd1c026529ab198bde7d2cbcd3c389ad66c8db583c0f87742fb620d99496cefda0134081a92fe3ae2be72dee2e4e3f80439123a7093cc32946d45fe769be10a812f20cd99e2342a5714702b46b6da02b4ad8125abbd7cd35753a4f1fdcf1f3f7f169220ccd1cfd2220b85e165aa5a3b2acce9b48a3cd109b6232ae8e9194db5ce30e65def044bb04c3f69af081bbda46c1f15b9a3c71d470595cc94cc36bfa817f7c4ef12a5197c5101365d506508683aa5630e69043183256eed21370e08b6a8591e3ada7afa3848496e81ad5e2f5627bd14fb6adf3007b5d56d3cca68578f3dfd1c3e15d889edb828b737ca9c339ae2757578d0c9e6b994c6c4379bb700aab8a9cb525a004fc027d07e1c3d28419f3dbdad4f470174c05bebf7cd1aadf6e5602d91ca1490332477fdcb702f2ab04d0188e3982b1640e0ff463b01427d84dc1128935580ec945c71b3a7ca38fc0aa1ab96273169e085a74346ed0f81f7dac24654ca389081b9af67eaf7c12a44bb472d2765739371cb66a1017296d64626964e0767fadabfc5804f8b7d990fd210b4f9e8039113e5c671bbacfc5c4266ccae6cf9766488181bc4ec3885dc46291e37781974a42918372e406e29d27e0251a36d26c0fb104ee43ad0eeed0c61e4fb4a030b4f7ef2112a7e43c96731de9f98f85cd6d40cafc6924db7d22e44ce61348a42ed8e3f20babd2729f55fcb2586a5ac3b669b17856c6a74856dd145bfa4e4ef7fd9442aff3ecf0a851903e2aeab116a417c28f58ff88489e1d4a51b88815aa4cbf20fea95196a3e95c75817a4d997a10471a3d75e7d16b78eba3b648acad96130830ea45693b7504f1639f23b001d9a5b937dc3643008784f7421bf060dd9f8323d63373d8a5fb243cf8caee062eddfa13626f21b52a841cce5ebf56bb9a0c508656287be9fb620ef8ad66633d004af8901bde2b6242d272e78df37f2edf0feb27087a6a3c4c815f95f62bab5a5e7aae02d6b2731057b3e3b23dc448cfe967ecc6b09d8430ed58a1ede5204f2c8bff5d978bcd3344242b020ef03fe92cc488ed11ce218cc9c9dd2ad20a24052f518eee5d318c6098d917cd877f0441689da50145a4c125019e383782cc95f8973118f682fe69511a023511ec6e0ef7b7f68402258d6a1d228cdba51741b7874f47f7940e0e18f9d70c7b5a110d7e22c94dcf9b3cea42c1228567d77534d52216d836340332440b84ecfd353601d934631245684540fa25c1db16f1f6867e60b76428e07a82d2c2b44c1b3e0b29a696dd0e724f246fc89f7107bf612ea22fc2f2215f1aae705f7781117a791da01e1370f73c311c471569dac9b679e6e627f2774b3b87fa06ee0fc1a911f2d200ed4a52272a30f3b799e824dbc37934e87375edd9d3cf767b5aeefbfe2ed3ff4f51b166a1864354e149703b72475ef42e06294bb158014a5e44769547e9a739dadb384af77c9e8392cf3d8d387b6d36bb972f5d8edd39b988b32f060f1e67d046e3873a9f9806147d6949b3f94389c75ec5e1e66ea0af26e62d485b1c5c0ece01f05869a49fcf77a2d5b58587ab4c10468a98009ccabdc299876ac665143f29bff6682fca3525e0740e9a88b6bfc5bc6afa6af2b31e5810a8978490eccc9f785c80126c7598e88a11f38ca07b4c6b10e84c69aa93af39ad7e3c2b0233255688db2ed7af128ceab56e0c7d33e7ac31af7551b0d346402faef1975ebe3c6ab2dd1890e9493d4f1cb5264ee4fe818e23e89d42aa39bbeace09a3649b80fd24d90d8807280b079d5f093e4d8ca0c34fb27cbe65ea79b9e6a8a45bb6dac7fb0dd17ca91b2dff94c0bff8c6d8d40bb9cce874154c90a152da3dc59cd33e9d0841c9ddff5a87223db1b027e1aeb39e019f3929384e504fef367bc285699a6624aa29f82469e907dd721fda6e2a2a806e2b24309d2e0ed140de39a83d5b7cd05af306005ba520309a0901444a4e1781475af15f954fcf2d238896e403ac7201f4fafdb8f616f1b16a1ca6c64560e080b6c7f02d4caa586a49894a7988773bf63c8934876a906b56b71411da782e8eba022bcadbb53a0f0b7644236216c4b93874a84370a40c6aa738a3573f0719140ca35e47aa8e444e4501b7ae954c9c40ea63a8f5e14635682d0ff118f2582e2b31986c72afaf0bca1e8dd173e92b45c0c5dc471be4bd154ccb8250ce89627039ae413a21a594edceb183650984dfd9e970986b8d1c28a53c765d89224b1d588160b8e8870dad5510e73042382127cacc95a3570cf499e85369e1849890c8986fff77ab413e4fbc7b22da6f4a5aef2dcea8875efeecc55a40ab2ab8bb1a990b4a962eefbbc1f261c5fcc9e395144dfde2786b5c4643ac206741f8874a2acea3bd27ea9c22d78044c61ab87a676cdfb6d072df756ebdea73e08aeb6cd93485461111017aa30ce6e1d93116a5438a4aef2b71283f4f38374fdb2e7498b6f55924b8939cfde310a10b81dd9496d8f1775554acc16b87a5c00513f2c3b04ab24ae645c0dd1d20c026fc4b8ff4cd556ef629567b42a6780667339bd28d57fe6a74a3eb1183b1fa6af9111f6a1f6a3aad6fe091307d584fe9211305dbe2bb1b2741947c15a9daf9b1a5a81ac54a541d0f43b76f49980625d718971bb9fe847f4326fe360496ba4e25ee9841ef1513dc11c160af03513f0ec067626a4ec4ed189169ef3c8a585f8f3c71d7b5951ed2e096e8bb59b0d3a1e986b404b53431d80fa7261095163967ea5c34298e11f11e9d00dbe15548c5925a991079ab5aff5e17132a8c813a65d51050d7b52f67e08c6e14245c77d44ea66c3502d547c42e4b74751554f5a12227befc95c97d5a55c31f66e020f4ecc58a0ac98325f80411e98fe370b672ff789f7e87edb52c3f7a97c93f2ac9d68d509e40878291a54f593b8be840685c98629652f98e8b958bd225e890f4ec510c7a5db0f74ce38351c9257c50421e9c58f0ee422b9752c85169668ce958b518cc3fdc91f0c1460317ff0f630a1831792c2983d919b3680522b960298964d81c766ef980ca9240334b9381fca590dd7952f7494c95256331b2bef410ba606a96b3a609de2aac6f9b91a433eac24639459c2c23c6e3dcfc2bd90ac95cda7a327115089505d701cbb22eca446780e1d3668ef1f7be7bb0b2defa7e6de2f52043e7991cc74d3241cab81b02056b84c96dc22afc5e065bb497eb7f0d9608656fbba07c90d068302b582ceefdcea41fa97cf4bf9ae2127a4047b3f2b7e5611ae07fd3cbaf64f0dccf92248e042c130004775409edd40606c47bb1377c7bb8783e02b0cedbde00e7d8a4a288131bb2d3b23533511d6928769778c0d81fe9d0eb57bc0df2fe6b88ce9ea322061a084925d0483e916e1f38bb5c7afe1408aea6e86c0ddd946fc97457eb92978e6eb1a048a0ce0acba8258117258b76c6dfa80a4e0a9a7f55dced9a730f217ff546971e2ecacfba5fb2f2831eb86c122da4a7d389ad6ab021d3e42c8a8a434f5236ca517ce8dd084e6dea5a14c1eaf1060a92c322f1711ac3c1a91dbfa55921e076a6f27f0baef7c932911d4913ce860a95fa2e50e6c56e7e2a968d52b045fec9b57dd7656f554f55dadaa58eb3dab4e2b2d688ce1e85983432030688b7ad399df53c990f03ccf9a3131008358f22051c2d66cb1f796b04706e593c80ca91320a289e1685a16fd31c32256ec77465bf7b858ec8034cbb552294744facb2202cb888d224641a6d026843c100febd657acf1c455c3efd7662c7704c7a1f6a358f2abb4d23fce15e1b278284e34414b6678722c20b310b8ee733f9f6d99f1fcdc683fbf6674f787907729cc9e6bee4c1a876e1b586630de150653f87b4bcc0edbf72dbce0a8ba36de1fb3b39506f5edb7c5bb2481b567e1607cb8159c7d0baf2af6def9b22926b89bce8c6abf39efb8b5d7ca56d032890716e302121257c7265f3a7b2c8a9f1651db151949cdb0cfb6b01200c42e7d317438d0e1b8118bfa8565115e41db03abb8088d72347d9ead785ad989cffdd9ba00ba7675a27bd412fdd8d19c89d3657369e9bb10595cf017055843ae98f0ab2f303664e031e833eb9d04038b9566372b85318ee773da87b820ff3af85effe5e58850604a21522e6080b2ba6287e0df4e1d7b96b2f005f63615e68f3ee1e6798fcc260ae163500c73fcfb0d177db6d80392fb270e3f32e71586e2ef8d1c5022f4b9d7d779c1c7f9db0c71967c9cd8e7202e2f25bf869f00554cda1fdc077e0f832ef6d43343d37a9e1b425ceafdad85b5380c8eb6f6abd1f56d3cf075d43c644832e4a6cd0c5eb485612d98f0aa2400a85e796f42c190c5a4df8e5b6f61d91ba1efae9a2808799a0b2a7402c9c81eb0bea785499f5600e4f6e2b8bbfdbde58bbf42a210391838f959e5665632638e7153bec0352bc6c8f3dd3f0f16b0f8549a20f6171a9b246152d7db666bc17c4cd0ffcb3f2ae1844d5b75f67e18274f7f6b5cfc5e6a8cf21db00ee7255aff9670a5f20f1be1e31497f8ddbdcee3f5190a6d0e277fb1ed9ac0bab212da9bf55b4c01b7d4b1137b0365bef9df63004da3bcd1eee2557b6f2845ad51ee4698e15676600efdc89251870cdc3402bd71c55b4dba4efe21a1bbf0e9a0d52da32c2bd0cb58e49d960114b6e8be9cfac5ea2501fb40217158c8104b07319ac6fdf3371b3948d9a30f0073366765808dd39615f977377221a1075282a5ce8ccac11f89993d9a43df26044af4b61dcadb8b19f93eabd43c30c09d986f6bc621737a80ac6bae49942fc54a09adc7e5d827719d3f7f65dcf8413ba0f8fd68ea989140111dc4b7c059e0aaff59ce21f422b778f7322bb186cda9549f683fc814fbabfaa699b2dd0133a34907a10ff48c272841628a153d8970582deb2cf794284535f99effaab5d78e581199886c3544d84b19f8194f4046ef6543cca61e88275f99965cf01c71285e58b7c5cc4e13ca29db3466e942e97689849497121f06cb27d57ebcbd259c3398436f4080568c96d2a2135cdc8b45dac1d0f7e4e944b0e02cac262d1fdb7a17b53a087017833dcb224bb254ebb5acbec479d0c5ace0645097746d9a31a23a2d4e7742000b75472226a00518a2212875949b6259e7994809cab31bac453fa40cba4dab6a72ea26d0f3b7c370636d5228ddfe065502214aff7c9ef538061d029c30822be1847709d7f5ed0457a3c17f5a2d51151ea57bcf0d433b08ff605645fed6ca3f8ef8497d16ac51fe3a248b7c9eb92bac8f1fdb4ab382a4d8730e5d5557113126608cb7224f31f0738aaffcd6c87f1cf191fa2c48e836287b5019ca6aab75bdecdb342dab24a6e57d228311f883536691c8d01bd412a1d8102d1ac486a8b7610c2628a721bde4e2aa8898f3442cda349b3efc8357d6d5cf16790241992684cd95c845f86021334690752ad527de4620b84724e6979564595945d5898a76ad316da3df4e8cc1d3c6784098ccc09bc8f8464d3f6e9888251d3ff01493d6e607002936c256db30984042b8e2921d47496e45917373dc1eef8c42ebb16fad88fd84f3042912d60e37e90c383e80ce56d7cc0838a6f50b6271e76117303e6a84dab142acd83a69fba138377c65668f42d7dd59ae5b8e519c04f7f99d21c49d425d35828b72780408c01f98466f0e1d161159f1b51e4907529f9504217ed6b4d09795f7d9bf0715a049c847eb4c6e6cf977ec31ffa6973ec3d9ba54fcddd90f9b19933b9b9b1b41a060469dd8360b23046d9be5ffdf14e45ff78cc17bdc987b54519e92c5a0b1a074de5cdb2e0321e405adea03f99f60c67b51859b1a21e8832cb0d551d2e5495670bad4203fea45b34a0aa6d87b68c18270b511c4062a84e474338357443bbd9a91337238519fbf0908af928f0728549f4eaea303c0ac7b362957b0855c9442d6bc057cbfd8ac38030e6149ab8f22204199288e2321ac78f0e9bbb550e0ac71ed37edda957462b19ae591e12d1c766defdc33b870296ff116b145cf71527378d544c48e29c360a73f241fb3eaf205333893b65cac113d1b8141e129933f4c7f889d888ea2f342703aa7ad8588cf32aef0c2d1b148e0c36571eb3729981d2e4d136e22186963edfa50d46494cd055c37fbbbe292950f05a0b3aa6eef5816e0be2cb98247fa9089cb6017a202abe7d11f5c4d7308f521254b35024b83903491e277d0d976f6b5956701494b6df7fe056a1ad75851db37d672028c1c7ea429c2ad956fc4621debe94b5ab0c785d902766de7be566e6f6cb362c1daf9345eabd363fa4275038f1032c6acacad41f18cc7d65eb290f1664057777f80c8aa6ce4bf36d9d76feb62cb276b738cf0f5e6b550610f4fe99ceed2db70dcc23a744f413cff24bf9af71c4d2d8b38dc0d1bead76bf760fce7ce477da14f80539533196ce860556a0b1265355eb7e73b1200966f950f399130d8d828b9d5e06378ef6317d1ad09c00b342c1e02f45a89e77c7fb7bd384820e510a0bd24d50b4db1705d6e4b239f4d358153595a017082c1e218245069b3b6f534eb025c1b1bf188fd0d95e04613ebc6dd62cd37697735e371e19ff225fc0e0661087fceb26f534a1fdab6b07e1bbd58835810d09b649263e8e821a37bff9729e5b7ef79936a7aee85539994f808d298bba2149aba8c0237d002dc95e071af9b383b93d971ceecd3d9ba0499e053f4317505402ff09fecca2dc03195304880f0fd61cd2f1b9594054d9ca4ed4c2974e83b552599fcb3dfa805f0edb3de12ef9906f23fdb4a53e9e1c4c9518c4c5414edc592a505e609f849e1647f386d7b30c63b6fed9edd2c7c204939e4f680c8aa5f64297b4d2c23bb7663878abb8713fb1b49ca71b8a47598ec6c35030456bf7c22a846c1accc1aa6c408cdd8ebdef70a5a5fe2933b21f6a93a8523e3abf1a61dc22842ca1269be6735175ee884bf04e17b20e60c73b5ec1530760399154449a636d086dece0c65685c9a3fc9794d8db92caeda5c6c359e8281baefae5a6d123b9cdac1ca4e6c6e96cc61db90906fed0bc9704ba17459a460e10a276c5de9e617c51042ad43660245f13912c40d435fa598a2bb1ab82addab5fa7283e560b3784f70f385cc15bd1bf5b947f7ce15f8aa86f765072bf3fc0165304eff7f86786da3690354c164b298c1c091dbdc05243220bcf4ad098830c954ac7a1e0bea0fcaefb6d6b5c1a1b7b1e21987dbf545058c595604dde0fc1b09fc2d6c63801c14fe88bbfcf14ea420121bc8f69a1e02a40b404cbcfbd33868c69807077dc90c0a48ca078ee39c392f94f048094ffe70063fd5556559eb49d4bb9c170eaff42a3089bde4d7f040781fe2d6f71225a44f8253c738d72e3e76f01177b8a887c8685c4ab8931199261488ba0cc4e284c35a0742c3eab4e132245cccbdbbbf5d83043a5141a164b57bf41ea8c2167e4274237188f390f49c587a842eca5df08d2333ca2896789259216929b65abc792eeff6f5d132c1a02bbbd4b9aa7522e90b1a386c9545c22523221281bd5401fd2bb4ef89c9a57761abc4c81b728c805e93647c650eced8c24670243c17ae97ca6308859a51f28dcdc6a7d6fcf91e8999695d8e9e556b24438d1d229a66ae489c2702850013b49a0728b0f04ee1e973f463487a2016b0f8dade9943f592920350ab2dd345e6e6363ee2d74ddc6a6ff5be5da115da10a11418a0fdaf507091b7a97abfc2fad84125ee284de9d0838c9ba48f5bd5e6260fad6675de0ebdfad0fad0afd4087f422c096711afc0e3ffabe6e146ca0b7811b890f74c038b017be64dcdf1d53994bbbaf54942d736e48aaa8a2cc71135107f088ca0e384bbc4e564474b9d5340c2664573a3a003485c63017ebbe4b267cc2372800f3be097ca5e7b31873f14b30e8256556443551647f703e7ecea0e18762dd675f66a522b6889f3f0d33d9c9344eb943a52436348e5f630500d78fc8e6173fc8df5ea6f23233cf13759f7d11a83628b7da969a3f67e1be8e9ce199fc689d006a7eb6479c1b3e82c4982823a3be097c25598b6098ffc85eda23efa999c0b184e84163999f64f7865feccadebd114bc97203ea18a1821a1e611f4128a5832208f5201b46f28df9311641e709ac41da795a5d8206575fa3f75e6a714e2670b7ae3dad61373ec5057f2c2f03ef4229178daef921508b9f3449e6a9324c4e3d536034c945cccdb76d2ccac72a561bf5dea13fbd9331ecbe11066722f953d60fb49616b68aa5a612d577d6f96e1cef2459e4205e2e1e38210508e679683281b46f124f7e1e6111a507a9546a387f6cac08240c935eab5ab289771049a9513d4ecfdc55f96d1ee454d27f45f689b50baad0fd6cfd25a047e4f2496fca8398831890dd200962efdfc535cf5421062912ef5ff9e3fbcfc7d1420f40fec4cec0d862375aec17fc6a8a5e5f24682007addfdc29c8995e635e4811da1cad917eddd70084ba915f70d8e70f7877dd1f787f0137a6eef21b503502d7996a9ba215d2fb66c290e6e1061ff4ad7dd28a320f75c62efe54bc25b4200ea74611d85d45879eee63a2ddd3c92607b1956d637ce7bb5564ad01252bc3dd0c2d9ef49fdeebb8ddb0e37834f9852732b08619f588bb7d3d6296c22708c1e845205630a45a620f5c6a3903a7b50feac2baa2083f488dc99adf91383530b1ee7d6ad34d1b63ab1b53f2103918d49525488dcf2effbe5a9aebdf584356c43238cfa805527d6d812bc2d73c73c0d964ccabef7ec7a209ad371b7f503e5011a08fa7ae68bdb9b4d3b395ea7919d95dd097f59ebd3c37bb449a8eda37512ebe99bf4ae14ee19da7ca66a94cefb6e022d78f9a4e483fd38ecacdf4c97661dee3abb2593324b769f9bd737784074446538c5531f840e33a146199ffa74fab22cd7c840850b8e0f5863efc184a1f2156d1e7821227c16b8557ec02d156a798a1c1db0f03b037958a2600dae7bc11c72226abdf749a366604c4e0d4caa7c6e1cd3a775b67e78e873976a3bfb8f9c40fef1450a34607667da8edca295cceb656e2c45a648b681713298e8f2edc79f811eed9a4f7c412ebf8069c0a5adb5c33866848b627f7112e425e2fa40f3186d87d8ee2652e124188bcde87440d669d3102fd860522a0c757feb5095f13e3dd57101c705c6bb44712ea3d29ff06c9c3d8f116e1fff9c37caa5fd9e7bfe048e85a03fe0bbe9b336cb44c5ac344aa6f4912591217304cf268453ea8f8370a789bcc106216e8f2593f358853dc00dfe7468a9d5e3c8334c703e69e49e35b223940e3d8b9f3cc738f267d23603c18b39f9193f2f70664dfde4cc7ea001a5d7d04241da32e3a2ec353d5b485b3320c763264e15b88f8fd50d79e254b274021ce21532aaa7c1ff9a2edaa7cf50112407fd22088af0a94f624404074f6d51b06b176b1426f6f2229e710cd8de66cdee5cbb08c53be3d759531b40e60930e603a9f1a4d4bb54cf308d64865d8a01f816b245d2c43af11bdd0054a4dd3347d1e22e115416298cc281f323ce2c79eff401dc789310508dab76a43a833948973d40b540a7a7f81cd6de5b989171663e24567cd1477173b2dfc0f09fea11897d9278761f6f5eb9f1e9c84ac2be016f4dcfac3aa312626be454547b7896dd1b353ba1025f8eafc4cfb376024fcbe34a9b2275288f9de4e79f1dc62d935464bf41b4578be02af255a3801452edb4b4e1bed4c64de3b434168b1ae6bbcb18c0e26e933c3cc6e7eb23791c1ddc23ad4ee5042846c7cbfc0a451f2d16fafe886dae7c7b76570ffcb6af19fb05b7b11f1550a31bb1de9c00566a6d7b909f31642f64005505b1dcac936d7a59880203b78e69b5225e8bbc862d18ffb88792be44352c78d708b78dd4b9dc32e0a0a332e425e2ebebbb1f56d5bffdd566fb5f55dc65698ef1805d6f0514830297551e7506568f7f0c90fa9f9fec174793b7b440224de931c5263c7d00a16ee3e168330c993b471c943a04ef1e9cd896f1da30e2428ecdd6b298f85bccc2463bbdaadc882e2b6c00d82d8b33b33571affa56a6e16371f92cf34dcd7eb459258d573a028739e18ca6de62175e3a0eda061b7b610bacd9ea977d88f061dbc4a9ca450f88c6e8ac5289b9cc3895eabca906e0f6e1d27988d33acaf4955c3978802e3c6565c1ec782b50346b400af7f50ea4b7bf72993674513090764088da3b06917fc93194c6645125d14e4b821f446b07d47d2d1ad5d096cb73d3c87781a9caae142c4cc7145fc7b86435190ba0937df9e16b5af3534f354803083fdfdf1f9631f74d90f9697a4348f10daa72775014320bcb16a76c2c47c4fc46c8dd9cdcec3a10648c124d65a143df72cc02b5114a4b47def0c8d92eb2766b0a2b3ee10f5d348cb4895206c03162e3df39172bf4d06549758081e3dd14fc60b62c3a980914176bae0424f30ba3125d8f9b33bc40429fc006a991c61e907f26689085c9d151d2536430599d17012ecb42de15212524243416c40e695f880a84ebf3479efec03eba0e1b20fb60d1c2b1282895027e67af9bacbc3bda5af8a0cee8d05b902d2f26eaa4240ffdb262bf32c4d3597284146a14067cda21eaf2e6616018161d525a7bc8141069a59debe29a721a93d8380f7869c2fb6aa999e63c3dea83c67ed7c610d7f6560584aff2b083854cf68cea37c6f9a20fbfe053c3a5f38cd5902c35896656dbcd453f4db24a670aea5c34948bafb8642e39bc3ddd8cec20947eacc07bb6817d96a25a31f0d21cbcb4a9f99eeac7fd7284300d2bcf8addcf44f4ae6b54f2c8b3574e09537a5aef0a85ffe6ed001462cbffd83fd14467a21d528e4a749d6aeef6991072a2b7d91bafd0e9fa5ef817843accfde33015ef7409bced8ff5a1a3525d8f95c7843478824479d9ccf5be48428f95c23833cb78fcc947ea01efd0664c5c7f60e72a1be27e50e2c7a0808898163c09fd2732b24bfddd6ff1f8231731406f2469245cda04f6b9d39bc53358b6c17f7ba88829bb7560dfbd2d5168c162d5f5a3adea0e83968307cbfc59a2c79d6aff3387c879794761220a128fc7d4801c864e8be80e4b0afc1d93e23ffc4968a3f992bffd5ee26bb543abd976e8122dd20a5652e0865f4380ef19b19b40ea8dc6382b8eb8e736365786a3e3a2fa707e649daa03418aef1bf40f6cc85130e369dc6665d092e0df56e4dca00b13c2052419157aefecaca58e04ec208b33ed2ce6d9253f508c784e9d52c98c0c82643bfac85a57dee5a4310499aa1e72e6a4c3813975f5ce35459e197215b3e9c6c5790d0bb253962f19d306ae2be41fceafb342f1cf6bae1176e0773d9d85d01b6673361c7cb755ca1c18ddec44b75b25bc22ef21f7ad05f9f47833925e69745c6e36c6cefba9db27864231ea8be7fc51bc17b692022d2c9851d7dc8420fa69ea272ae2af31c581856ae02600d20afd68a8bcc271d4cf8745a3cce38230f2ea60b0cebc020227ca77f52b89b90078e4c8c888cc65ed4aff2d62f483415e0d6780bc0b2172845616188e2ea9516997f3a2fea8d1faa2dce4cbc4d9c753ffe2102654e3f0c54b80758034ad4efd0880b822ab30bdd63e53c3d9aa1f46ae5534bd4fd9840eb7874a0b33ae1c39c100f617007c46cbbd49b308e588bed3b12e4f40c65c25cb5c63cbf9678759514bad580b9888eef6545e406399f9f121315e93da6cf88e9c30702c9b67188000b4b8a868a6122dd67831125fa77c2d43168945e525448da698d5e31ca12d7ca69e88a2e204339e3c491a201d508ba772564eb77a763c731380970a83be293a5fe0c966fa4e9cc4d4e49b67319b65b0e6a41ab97ca167bcb6b95c502b9ae37c0e1e68b0d42ef3ee7c4323c9e425874e38cdec992a72ef4d894d49a72b620ef5a172cf4c743b215d387e85e3899ce7d09b5e5955ec4bd84286fe6f5523a1a97ff34a09b623fda37e332ffc682a8b73a37973513bd8a7bf9489e4d7ad39545a2eea0bf5b29e5a99b5bc1754e6e7eb121f4dae7e2b466465f61efb65e46a602dc46050e3cc4200d55301e554d07bf5130b403a4c035c730de981ad8d70ce662cf34382218fb1f8833808d6fe38456b5f833fb8ab2e001422b9df32897e68b7cf030a339fe641eb13fa0231751d34a1d6e232da4c9bdf7de7b4b29539201f50c5f0d740d31865ee93c278f4798d9135be44bf64ebbf04bb2745cb021387db82717a6cfc0c7b7afbc883e28237cf0e8f1a70f9fc718ddf680139d7bf090dd416797299e9c8a0ee5a9d4152216a316d6a909e92bdd121eb013d34a7642d9b414f0f3669e0e4abe69308747a73874305e696fa66ac6c82b3cdccf5bb058a18252917242393119f2319594487624aa5ec76d5a86d1a859fb72a5b92118e0248321eebe1bdb0338f5003a52affb3aef629dd362de7d40a2f3f53e9e3a15efe6a1746ab227adc1e9bcc3ba9cd825bb0c167f09fa38e6cf2844839ebc610c971f1bbabc9ddd4d6f941098aaf8a3f39eb226c026861a1d22f31184e854e822440c2b839e6f377937f2ba2cd898793c595e4286bbe836da6aa3b3e661f439448c21baae1b42888f31840bcf8a009b8f1ebabc0cf5ed938917459ddfa553adc948676fabec1de77195918e7d3f3cef3c76ad53e1ad619f6e837d0696294b1b7ca717b945d7475301b386e4db3d5396937952ce39e79c7366998c3c6bc8c4b36b1ae6d9e98509c9628491642fccb34e61585d2162316a619df4956e090fdac9b462d2c3890f9bb3fca1230ce74c5211613a955645ce327e75ab62bb886055dc3897da233ff8d0c30a0ff7f3162c56a8a054a49c38070c2827dfb39b4a4adc28b6785f8c2d5f6b8c0446c2ce04cbcbaf065bd503680f4f1abfa4879a100db6671913cee1c086ecb4d260c7a4b39c2ca5bc4c8cb0d06dce79a744fb4c7c30b6b047957e899d739ddbc4445f59d95456565454d86d835c143673cce78d0dd660b7b372a7bb012247917562641e3b62c461e6bad3a9185d5e1f31fabc5c5775270a36ac2b8ede83d69dbaaa3bb2ee3408f60c6f781f9d395e9c9dbaaa3b75e5dcc78464e1f8d59dbaaa2b7eafae3a257d32f181d934e8f1291f9d208515c7bdb6e78bb2c11e9d2fca4638ffe67cf7f8deeabc34fab1cbabd8d2de714ed8906331c1324aaa77c2561cd4555d45981b4418f657b6ca56ab08f3ea6e1053350a925557dc8b7b71afbae25e75c5a2b7ae58752559ac5b5930b075255fa25015527d629c734eee25aa5526722f2333dd7b591d624b7bf66218917371463821ae0817c401bde81065306353b648094ef2281ba39f1f33568489f2858b424c6937e06ef6921eba97adb41761b6aa9ae659db9deed556b1a5aeb2d7b7cbc8dc8b53459b2016ebc56a0105b986220c3b61c3baa2defe812823d221b6b4c78fab03c3a03adfde834783dd8e6f9e5dce7787d3200ead6543c97aa18ce0dc26a693403248ba220c735fe74770deb97775a0d8c1ce75785ebdba4d8cc7e0bb0403628ce8eaa8d786c6a0313166e4287624244bbb4dcc120c8831465c1d35ae4d8ce7d56d624835b09c8b9cbb28236e4a9c73d4119d7bdeb9074403ecd1630c8a5e236e445e8da85707dbc48491f52ace49aa122f79ac46945cd411252ff1d2ad3925e798d2cd70244bdbc4749f4d0cf7a18e2039e724ee75b39c2ac3281b432ad5b78f6a87e5eaaa43a21c918e6825da11f1887a443e2296ce6835628d76da473cf5d512b95ab202755df5e4e08c542fd1d0bb7c4145f73a957c41c58b5a00e7247f40472239e7b1bdaeba2f0392a59905368caeda4372aeae240bbd95873dcc70805a9cce73dc8adbe178b81ecea72f27c486190ef65cb957122cfb74b9865e1b121577c3e1482e27c2f03f67051bdafce65e95d932ce0a1673ea5c95a1f1a262955922f3cd638dcedc902346d4557571adcbb11aa43994b5f56c3ef205f5801ef912592da0a008c33a3c17010938f72eea013a38f72ecdaa11dca53d9205088fc06e381bce96b3e96cab6d8707e8db81825c43af4da5ed683b3c5a8f0fabd5b261f6ca5e9a8afb6c62341c2d47d3d156ab08d3dfce04cb30a9be1d041186d218638c31c618638c31c618638c31c618638c31724e2d77690ef5afab1df96213d35e79e4cb8c69af3dd5475616e5912c994e6c692a5879431a24599285739a437340c9e25e92255997d5d515d755835d7dd49d9079381f36fe1c81ed977ce1766e388a8186637374be454375158ec450773a1572af475257ac6faf3eea13dfded595e8468423528d74442ef9c279fb2806f185d3110dc9178e350ac28807e1e806cf4075c5b1ea4ab2ea8abb1837e4ae201bd21cd637cd61c997d3897578b2c735d823940e45c9e2cf7773bd3ee45e9e4fb8b95edf2f2fef742ae47657a742ded98c5c7e6214a435015e2bacbac8e30af3f40006d0dec59e18b9a753ccd320f73077d77533a412d9671f7eec32fae48b84cf90646018d1979089de017ee9ccd3c3197643ec6faca24a84c9bc7d4584893ed692846812fdc23c92a5a323115dca441e538a7b9640a2bac8d95f60431b359775666673e7fa803a72d1a72300433122e7e9bc13d920221ef922ade411499e0675701a7862446ea583f6242222fb2ccbb62a834929e59cd29b1e57c31c1f5f0ce8181ef6d1206b18cf3ad37d8c6113387f835f1f79d5a0f4d1600c3b48ef38f374904e4def2031d8f1ed2615ae0a373f77fa4506699696425474902ad8b0837cf38aa783f0aa83ac7c68d2a7eb9110cffa466cce354ccbaea42cd80d6f3c45e286c9877846cdc259dc172d5f74dc0b84e0c142cfe3bb8e29a594f26532503a553e92c71a14345f7c6a77523a9d52ea4c0694cb8f447215e72024980c2cd429151e2a64d8b68db6f8dca9d3ef078bcd7be1d2491a44838e3ca541434f699091a734885e166a90b2d00cbb3ba9cb18281ee30b0b0f4f4e491efbc58818724621d1dd5c858a3bdd08152a44aec2eb4db9a18acd51fc7471c84f71df5c6a3e3fe5d69cb817def06291972e43fa52b4694e9f6e9b26f4a89169fa89d34f03a6afe1fcc4bbe99dbe4ec5f703e77e1f0bffc142c48016ee3eab4cd7823af54edf74944fe42cbe8fa24c5f400b779fd194fbf1790b15d76b16ce698779dd899f664e9cfbc1c2bf8ec5e7551a27ceb570915471eaf94975cf915051f128f4339a0a96bf7aa5995e36fae6536b9d2da9bac94d7e22553845711557397194a7789c2e5d569fd34f43c4f9c96dbb2804d8fcd43a60f35d78e3a587375e73cd372f4999a3c57745683e39378576bb28ee22c0e6bb4bdab19af4e9de8973273e2f290776ce79a269b78813e76ecdc9e70d9366fa937bbe22a5fa3c917cde109592424271118a8b5044f4134d91530d45e424915392a852aa427455384985537ae29344f239dd844e6ae254b0289ad75cde9373b571e2a68bb2515d7a757943ee4fbce6c44d5a75d3c989cfea26ef621227a6e77eb32fa54cf1cd316781e2254ff94214ef34cde4a63bb52b4d2ffbe517a2d088270f4d7f3af11aa2dc1ba63fb926f7acc9f49e97bef0c67bee55199235551b2631be211aec548843c716a38a64c7b9ac321cc71ec7bd7fd643b0e89716eeb5901e39faa25371e3ae3635bb6d54a5c1934af3a00327561f9ff0118a1770e19985c7958c999951cee203d2044e1231dc350f6344977827e04220f1c36e28e72fc68d4b8c1ec0741122460c19c9c717d8506be12cbcc5d51180a19816cee286f1a23e95ef84dd53c721b7f86264e1fbc37f1a6c6ff1c518f6f1163ca3864b0c165f8c2c3e46683df8d1a70872f82ebad8e86384a08f3e46e069f9e8538428bc0b10f1c5a547e70750980111b07024a65f484ae994529f224031e594d1db6bc4174f691dc39e444c9d383b12f188983a399b382c3d939ee31cbe3d14a2c5f6f0acad0845a3e72162cae4ec3362cac4d90f105329ce6e125f9080e1e74a9cbd469812ea9a1a5489a7d349c53b33a81ee5da16745ac535a79546acdb666795d17c7e359aa35ce36a43739477dab7c239f0d3aed8bed07bbeb14115540c952f74d93ca262f439513d1fe2c8b6e89bf3177dfb3808c3e0580486c1beb9a644f6996f5f76f288e22abe1377d15c5c80a6c9354ff9e2db2dfb4cf3abd9baed9b3498b39b38e457226a70b0a78f7d3cc1e36353121108c3b718be45950c527c7bc73a6d81c8e213f9c60a7788c3b7afe11b8919d89079a2d04fdeb6cd67e26f6ef39109d28e85e20556f868f3fce1909f4d7abd067fb078d162e2b3b8ec233b15ba088104d0b727d1712fb0217712d10789213674892a9de2c4119d95c6cccccc1e8e4f470fa09d6bb57335b034b03c02cbf5b0b1b2f7143a8fcddce64d8e58b6799af4b8aed2689792a71730cfbc71beeeba28d8b0719ce09f117d4e1cbdc4e91d33fa0bfb51a4d8d2cedf8f2a3dff4a5ecbcdc0868d235b54da79f36d6a9c20dfde3b9ac71a2c8e069b03b1a5319fd1dc98b76420a079430e0a2dbb6cbc210f7d681b07bbb245041bce9b79f3e2decca15378ff305085dacb79a7773d6d7adf2a16f4abd338ceb54fcaf82329a84ba9cd214ecb384dd33ccba4742aa56b1afdb8a8a2b1e5d1348e73ce6734a679d7611e6b947a3ea3d98535f11997719452ab39a669ae0635a734d31cfb385965bacb5daf41ae55e4de89534a29added56f92c1fa899ff88c167da1cd8b4e3c6a218c3771938997944876b47157d36c685f0de798cf2125b2f7b2d7b4b0bfa354734c86761fe6332467f3b1dad8fce4e337f99660e608c325b4d5fd23558fd1de91adcef1c5c2645e2b769b5e14cd53d19cdf719dd13ebb35624bbb952f36224b07940811463b35c2b74f201a24b6b46f1fe5b14394b1797bbdc3b7673a2c63bbd92ac341a653557c06e59af3c043b5de9570224c0b27752492c7f85262d595124e29053145bd4f4178685d3cd4fefbbcbae40b103773d1eeb52d0c73aae2b5d68387f674ea3ccc12f1b42f3e89d56277f7d06a9a691b62492c124bf4c25fb4bcf87c6879f183fbf0c25b5ec078f10286a35ec080e12db6cac068b921eac50b1f7e701f5ebc78f1e20586522a61dad632dd8d456275dcc6e22a11d431dfaa0d0cc31cc3304bc412b14302e0a11d12004b24009f6ddf449506eabe3061588ba699bc45c34c32260cc35e4cd0dbc11e3c760f3df4a0395db1ad70e12cdeb1077aec978d85dd8d85b26d2cedd664be39bd251edb132fa93296ab8cbda1f79ed36fa381720f004e3f156fbe1dd22f3326653f15b79f0680cf7e288f7573adc4922f40b838c73a9558df0ec4e7f2491e5cb0ac00516e381a42e2ef0be987251f422b57be8c85136122d71afc337102dbc8e647773a41577898adba0e896566661d1f630b5f1e3ede466ef3221f9d9cb8c9c98989db3cc94dfc88cac79f1e58e17f7c20546ac3b7977cfce9811ade073d867e7cc0e30708ae6ff9f803849eef62670789b384237508bb201e3ad8b0ba62144c305287ea11e9543add2e602314d0f0f3f72314d0b0fa9fa123bf398d12b0f1270eadef220e1b7fe490869b234f9d4f7a3c753e7900aa4c65b618866d1bbda1f628238f2d7796da2ac3ce7dfe1ddb5336a4e3669d07efec970df9b21feb61f693b11aecea3a9d9c74f2ac519ebaac3650de93382a29a4678e2f954fdfe69d69e43192bc064d1e5657758976e488788874443d3ac51b90f62decb7f0d8c24d2a3ff2d267f323b7d5d4e068e433ba7eb6880d62977cd980fc7ab65d0b2449de763234f2ed1bf906245f628cbe01d96e9bf19fce5ebfd9d969f2cde7c76d9b6b9bdb08f3b974274ebde3aa0cb5d15ff2ef5382032744b0537a512728eaa1c4b1c17e7251f44a9e1ddd9541ee88a759fa47103e3f5b9aa69393924fd3896996463d417c2321cd326ff7b2e106b415e95458da823a555372a0ad0b1146c5db3b954f89d19f78e90b8ba00ab0110a67d8f1d4995de58b5ff2af1a79552422d59783bf74eb9192377aa2a463094f5168f346ec0b17e82e9c3958d474d4bc34e0d30b565786a441996c480e76e4d2a5fde2f3f0f1b7f08af2c5c1a27c8402901d1f7641b5f37088c784780c5b794ce5b14de260ae459fcfbe6a44e2c8973ad42c2d5a7d3be9862e2e20e8277a650edfea3a62c32ec853752aa43c1e4ea7c26c15d42faea17e89315d501b783ef46ebe3dfbc986742a92762c0bcf56998f7e21b1244b7beb896f125010124bc8b7ff504f886cdb56e44f2c50832c4f528d7e7c8e580dee68b084d3606947b3b4977c04f500fa128f6f0f495d133bbee4a3c14e6dbd35cbe61c5f4a1bf8d4a56fb588ed8e868c5a70b035f5087f07075bb3f9c94fdcd7c2330e959d3e549639f827e7b2d3f729c143a41b9bd3e7a8937f9773d167813ed4e9d2804fbaa943f54883318a7cf32eb34045de60511b6a73156fb139f8998b42d47669c0cfae123c44bae994a3323fb9c8e967811a3cddd8a088067c92eab7965444a56803aaae2012d0874de4fce641f2861ca04decd85cf46d37c4fcc4876c56bad9aac12ee13c119b53afd506f58d52a774a36eb0d9aadbf8637ce982224b8fe6901d0135d83cb6da80021a845e3a951745039254451aec1cfcf2926e1aec6d44a4c17e5169a05cf30c888f7c1950d6eada60af8759eb3a1b2ca720b6b4c459830dabeb7e19911b7ce4d94fd44ef0a94bb2b4a77da894a7a4a7e1f6f4a973ec2a33223202ead44603e5279fd1271fb5aa575735d2a99f116b34048752fb22719aa59d4aefe8f6f98cfed80ac1df7cbbb4e4dfa7042bd1c4cb926f5b097ce9f2dbbe38bf8bcc1d2315897c23f2230fb3a14ea8c1a6375a97af2ef7f6fa922f31c6b51b824e5f74bb202396e2481c148f8de279d9cadd639da12f57269363b75383a5b72673ba79585dde37c35a8af37cfb79d565fa50e24cef824cd535254e381a12ced025a43c269ee2dd0fdec93749aa7e891950a762bf30657537e56920a1cbb695786cb0c4bb4adab125be5db9a3c15be23f82f0ae069292bb6d5e2b033a86bd7e254de0dc301180d74adab1d5257754577555d7bc1247e6b46c185f5da485be9d622fafae0625ce8eae0c367e17d405499c0444d6a8ca4c27b148acf8ddb6699aa6699ab66d742471aa916649e9d2f02308df82b8a521cdd29d4b104098380bc08560ca33f21bfd52c2912c4d62a74094b1b1bc021998408429f906f4eda55689b5795862958674411b503654c2912f4c481616cbc85a275109e7491b4b1bc2ccbc8012ab4193775c17d0312ecea52ec83a8a866b482da01aee82220ca973d2adaed882862e68c80249169691ad18c6edda057dbb05aade16a80ae073214e252e4b4a3f4e2e1b9258262e4138104038c7001104100270972080f08e11c01723102b58541a364dc3050807e28b1188d0c4519c45a521f989b730397114f7afd2d82ca1096f0205f3b0d2ae138f11c3c50504dd4fa7d09edcf0c47da8342437f11f2a8d0d13fec44dbe3042f1262e6b4e9c3472a09189a35cd2906ae3c449ee439539b921bf89c74ac3e45e52abc12ea15fba6ce40c2497af63484e02ea143b69080f9546e4235fa932a34b02baa4568cfa2dc1ef55d712fc611754629586748a3dcec97c00ae2101cd68d00c3624b1ea119c6aa40e555783ed65b021c9f5ed242024e4cb4a0d3984102e128bbd446d02d00cc40e1db3cf88061e9ff2ae9d6fd7523ef4e6745a435d8b3794a4d8606c90c3d9299f5acb4a8474ea76764ab3316f8c604839044c1b20bdae36a68da952cd1c95081586d18ed551176c7fa8a2c232e26fdf9ea33f6b3a431af35a6d8a067012d1691436f0e163143620f2d3767c43a9ed688cf3464f8f2b245e16c201c931733e3d3e2c44e2984f7d9eb054c55d6c73eedba647e71e1f1fc67cb84788d4b8c7877bd84748f4907b32c0d247628e495476f986f172a0c1195d42ae95eec90ae7fb70b9f3b9868c1ca9c1e21e1603bdc817ea439e7b689846022b1f6ba8b373909d6a83d284e0634dbc1cc49581666997c286ec8383f8e0233fbf25d8a30f0a54df177d4ee05291784429c48b15fe7025867df1de4aa784a467f2867cbb3dfdc0bcb115700564305c992f80c2c8d04728d460e4617c84420d429e8b746a6e5d162cbbe4f1b1a343a5d3837f98d5e01d86641c630a9322086960c3cfcf3ce49f4c4ee0ab408377b04326859452cac8524a6666669e1bfacb2fc4a0e9180bf1e5225c176cf4798c9919c3be0006396307661f599679c6b7463af73519db3073286fd8c4c74a13a5f88939d3c0e00214499e357a6b6ec42ae454e186f2ab90934929a52449414a29a5741ad21af61fbe86764522cc122effa3ba7cc860709b267470e7b15eefde9ca025c6739c9298cedbe58b98bee48db8f1bc83095db01b4a295dde1f6113cf518a97f707c76d087b47eff8f6286ca023e5f700185c802249cce6fc853a9e6b6e44a190f4328c4f8002cfe3e0c7ae06a2d0cffb43044dc42ae4c4705715ab9013337a794376d36f1e2b0462157262b6ab83f38f430f23d8c0083c419d8736c6749f6afa80053920010e94107373829698cd714a62b89b13744ce7380588d9dcfb700a10d3e930c2751cd1f97675b8c6e2e3b379185b510e2888c28f3578a10763c082dbbc6088126a500328808400879818c31de12a1555c267e003034f60028f83725cb05fb8d1d120690a0c74b9d5601369b0bd2b0c1b72916f67a11b2924a8d52f1c533ac21d86fcf00f83e1a7411a52de2f482064c4209e9757d6d4275edcc10e3ce44376fe19c23fed3cc40ecfce3f9d6267154f40be441ff6918128a4c9177e82837cafb28e4142ab8eb4aa6f6ab0633d7a897a5524b21ed7792aec8dcdec4ca8549072105a8f9755317a8cb1e3789950c5172539abec28c6d11755ce844a87e7f1237d38e68b461e6fe8d6491e5a67a24155185ff6b28e069b34fac2cd1bc77cd10def3b9bd7dce63bb6236b49de914824128944228d4676f4690d0e3568c4fbd8f5da3e3ed2385dabe40b139e8ad3822d7d3a9aa59d2362c3f8e2b260392cd890af602b141d959487dcc0ae20237188839446e83407b2bd06cc230ccff0905fa8e89b0b2afae63631315091fa119a5f1d40e23d82fa7675d0abe36a1a5f56f108b2cb846469c72e0764a8c5189f08b3047f50fbf40f0d78e2104f2e8289b48f4f6ca142689f964d8fa06280151524dfeea0c6110a572aa436183a80abc78f9123ad92ce6e7f7eda277dba8c8e3a82ba747a1bc82571648e7ce1219ec843af97d8c2c989f3257da6cee46997d4912baafaeeee9e973b3e448327201bc670913f400a64630c4157f404daf4187d02f15f7c891eb27c98125f34e98c32826f84e249b2096ebe42386df08dd363c70e1e2b2fd8507b9c36d243ed52829d392e98382a6d460b47a5d2705aeda13657dced84d07e4f8f376c979666f435ed364a8fd9f33cb6446718d8eeeed6e69cf346c9c2df2c5bcaa18b2b61262bd0a09c406c91bef98c563db3e4cbe6b225659452deed52964abed0a15eb974823a67aa54a8a60e70aaa6d07451d69547e86baa321f79e4f53c346710ce9d9e4e4d9e1910092264fa74409647835247e6a0d8339a011d18f601a1d833b789d181f9f423309fce3ea767971543b23486c918e1c229c1c63b7b8e10135f443bd6454e711e9d1d966592c5d33ad3e2b3ab448b9f4eabf7a241897d2a0d4a97f5d4a074ef08365c91b339ce961886794bc6923c27c96864de8ecd9059015eab3306f8ecd2db8196be02f2d09094278fd3fba402364b6b525293063c6b5d2410b29ca6121369d55bc10a7226cf1025e4f8c02f73357b863c4685885101d30226d4369bdc75b5ab9ea6712e64434ce83129a814422493979438a9a4b31d8c833395105fe81de21cc23228b32686f885088259b8831458a0ee9a3c3827e7db59583e5ee9d01289a99c2c9d0b004c24d01736347b727e348e8b524aa763d96b6808933de144c2f774adceb4d5eaf46dd5b3c5b36d753a27835c40405c9dde6d1e7dcd15d66218d86b87bf7e171fb300e0e333b330af00542468c7b5d38a2dabceab3293ba700e00de7d39b4cfee0f0038362459c65c318c06c0c73c3f7847b2b876269129d42ccd328cec6461ae6886d56a32a12cee22064ec4543d78d11dfa6d6f9b4e16176d3f9bd8cf6f6621825c88623843a43b2c63b618c66cc3f7c402edc1b753ef28cbe7e2cbb2a9692ebe18b3f558e9d2e464b2501edac3726a1fabd5bb747943cdb69afefcd99a938a421319c44af7560cb98280a80f5a1a2667b6b9600100dde93aedabaf7143b0947ac7dece6ad5c3c353bbc7e84b72124725555227a7c19cd1a473fbcec5c73100f8daf5a383825eb2871a1cea978b2fc6445b65a8f6a42ffbd246bfe9b5485efa8a2dd897749ef6d197b359ba088dede76d202300d19767e2f51b6c880d69dfa4df0f16df6ef7c4faa379244bf3344bb60f3634a54995a14538a9329408ad160d629b48b75a2726d98e2379da274f8060a3d7d139a767ce416ce65dc9d3be7ee90dc1b2cc9cd1285586a27829292c4e5908b683d02c92c776efec508e30518602c1b27729a2ae8aa8b397fcf41f2e9c593ec9f2f981f49140b2e5fda0c53ca99c939fbf9ead5e83a5547ae48cc5b1e78ce50b62408c992d20961e19ca9eb05233a255e9727dcbd0ebf9c0b2cbfefa29673db05248060575ad1717765e42429dc29e073b3f764085b4acf5ca02ddf17440777c7839f0707083d54e84999e0dbc1aec7834b0e15cad9a55e8eb455fd24fe01203a4f39be927b031d1b5086361585b823a0ef74e7155f49e0bf1a293d2b39f894ecf7e25af61f62b655a46d23cfbd9dfb66df4f772dcf4ec277afac51611a006a790779d67bf9a619ef4a6673fafd6550daab5daaf7bd19d2d11b6c94c344554643feef99bad6f5e21c2e04284d185d8d29e850836c68db2d168e4d96ffb0cb3d24e3b5b93c8049a451aec20ed49d886059e5b60b09d84dd4922d92ffb92673f6c7e3f585cb860617171715c6258ee6cd98f7ef6fd60f1e9612e5c7e3f6e4e6063581cc725c6859be86c99ec047afbcd3b5bd3b39ffc3b5b95ed5cc94c1f0df6fc7eb0d8181697ddf703c72586c547df6cb57c344bfba9cad0d50ee7e10bdd697035573ee40bc6751bf66143b353f16243b18565731f6243d8d0aa53743a9d26944a135b9fdd7953a76aa278b695c3fef4eecb6173d8cf2412e9f568318cf69466192a22b788ded93a7184c132394f2991b2f0d89a38db93124f41cdcfb31e405f711e7cf01f32b79e65cedfa8c4b3cc7d9840b33589ac58e1fe851c7877f619ed28b7374415d1c2338bba365a6496dd7d86f42f744719b170bea1f5ec8638e617b1c2ddb3507b14eada58c1a3cc597ca13b09f415a067d6476e927d2bb21560687dc525e5c0da8ba308d0b35b03fa8a5be38367fee1989f5d1cf3c1910f4ef21f7828f1cc871eae9f7876c3151e783851b9ae725554b24fc5fac8553c1b5d153f51f1ccfa0d4f544ab2ec53b99f9f7c9e7ddf0d79e4a31b7627dfc8d99ef8e8c447d928cb9e85f3ad415d948d12672f41a13c854589a7a03ca5c453521c351ab5687157f86cc91537d47ee4aee28ce2f6cbc1cfc29b2b4d89a7784c0951a194b508c9e25bd1c2f9731f7da1fd9177b5c1ee374a3bf293b7f86a505e5ae12c78c58a5b83f292d14d71524ae84f7294ef872a7332a4526d987c09c95b541993976438d98e4e85f24b9e7976437f6c8987d94d89b7fa4bf64b9fcdd3977cc186b0a1ec26c369354b3bc9bd2a439148d9c2c3848c4c2233b0213684a4532126c56347a48830f108237eb870cd858b8f22c1549a3672ad0936092480662b53699ac83317dd0ab0a81308c2863eec08f66ab0e3557d55862f7db580be18fbc9d2a3914ec98b1d696c88426187b854378b742af4b119124fc7578ffde2c2eb0d35a72f8ac40557efc667bf631afeee4591702e9ce35c7c93c8d04b6be16871a04565624a2dc4172c0eb1255fb02129bdaf4e30c496190666e938c497c986d734c3b7c7d98aae6ffd60899348b3b47f5586ded9e29b16ab58754a5111a7887acbef87f91a9aadd99a2d49b30c05d90dddd9c1cc40773021300160adc1b27df661288825884922488150c75410312196415f0c23c4ccf0ed2e5c456f88e5682f2900aacc3c0000ea8ceec58b2a43b39f1f7dbdb21755460ef1a2c68881b5a4c1b2d37f354b07a0cacc9ee9637ac15a9245de70facc1eba84d93385602df932573d571d10405499797aee69b0eb5ccd1576047b61432fe8ece9d4741f2aa24ea5734268e0f43501a82e3060481717fa6a100910d59381d53ea41489aacacc4b5f020882dbb4202a4de643a5017a31c2c4ea8946d62379a512936772e2a1789ee779a714af390851e6b7fba1190654e8e24ae840348f4032d7be25dcc66cd66e8cf62d7104ab542a2db274a5a1f1c0f653fb1aea9df61dc1deddc053fb36df795b95412da0bae70fa8f7019144831a1caeb789b18969ef94e024ff4defbe9bceed77e339a9875522be3ec660185769d0184313c467de791e901c6d63aa5419909a390eed1d939ceca4945e156d37477fe634a36a437e0d119586cd53b74038fad6191a24cdb26c933526a64e729b67124ff14573edae344bf3ca8a26f262e4183baed248e0fb29e977232f46186ea369e862a7b4b6f92ef3b42f9b4e69daa5cfe9527a365dfb6ccc2f472f01831dc7e96ecc7709cc7168df71188d0eaedaa844b44bcf2a0d9bfefe0ceb8c251ab22492e836ced3e6a494524aa9b7d5fa718f66e94dd3a4f4e24b7529b76dc5a5ca695649b30853653853908f89105b8a105b8ce0c9c0ce0f39c877adee496fe73ce9c580cd60636ce9f9b653942673ea1e0d79edb669739b35166426ba8efaf4acd248403a752480806e383d9b42504d36d348e027d7a31591213c2c0f863c0f1fa1e0c1cef740f5df47287850e4a18841909e1d2d5c0108d0c71f202c2a7cfc79e2e6bba01ebc7a30d48321ab9f9d4ea5b8074224910fbd2f0d693a28dd36cd375631e1c1c086b3e789069be781784ed850e2084598f8f1e303fdc0f0167fe1eed75941f1e3c78f1f3f7efc151e7f26898ab7f0cfab7bde39e7393a4178ace2c73f398a5b3f7193928bfce3473a7211c2027924678f3ea3af748ac46a9014825d50e7ea84b460c32e880b622dd076652d825523f86dbbdc059570e4cb0624b5ab7ae6b0c09c8ef55a16c8b37cb3b0c4ca6827546295582516bd5d50e7b240a9edfe200110f6204aac12ab53a66c95f990a9e1128ed4346b4f27f7124e09c70675aa4663be71e335679e0fbba02e68e7db3ba1ce486bdac622b142120b73a69349ac18315c5c40d05d5ead411bd460b7e44b09a7bdac25814a385dd050f7ea823a17c7b240d95017d40975ae06b321ca6387cc56cbc3fecdf9fe00e7a3139e10f21f7f80b87e03dadce40429564e9042a785d7020a35e47c1451e8f1ddf55a3e0fdbfdec10dbb24490782fb0a1cdcc14adcde659c6264b810d37a0ce08cbe06fc7f9b00b6a51cbb001b177419202a5c196f8e62d823ad51db1ad223f3305910667a628e2f1b01bd07667a62892f1cf0f749e7d8529653333454bc5cc14ac4e310ba83bd7b7faa50bfa992986fccc14400dc6b7899d9a45880c61a5d49929583f0dc6210dc69fd128ecd950a74289333345f6621951851377f844983832d2a988d3476c8f15d23c563f12fa1eb9be7d2649904ec92c7c7c18df4c92204227b5864aa8a753120b1fbfe59b49d2e332a93554ae55a7e4153efe8b6f26c9aa65aa3554ad9d4ec9d6c7f76f26c90e5049ada102e2d12969858f7fbf99243c7e4ab586ea47a753b20a1f7fc53793448745aa35542c9e4e492a7c7cd437938427c8d61aaaa09c4ec9211f5fe59b4992e333aa35543e499ee8949cc2c76ff1cd2479a24884e11aaa223e3a25a5f0f1bf6f26890f22b5d65011e9d12919858f5fbf99243d8678b5866a88914e49d6cc14467a4418aea1ea9144d52909858fdf7d3349543c11866ba87892ece8947cc2c7e7be99243b846cb5864ac814af4ec9283efee99b99e2b5a3d51aaa9da04ec99f8f8ff2cd4c119493d51aaa1c57a7a4133ebefd66a670e94418aea1d24972d329d9848f7ff2cd24b909426b0d5510a14e49283ebec9373385108f596ba8780c754afa7c7cd33733c5d02ac2700dd56a8a239d924cf8f8a56f668a233e220cd750f94882d329b9848f2ffa6692e0f44418aea1ea892df167a640d229a9848f9f7d33532069307e0dd5131f6b0dd513b125fea440fea50b12ea979e3dbe278fefb9a32592ef23dfd2486c5717bee7208774aa913428831065c81b861144f6748ae4ed5248a77c3af5d32956a7b4273ab54518eafc2f31e66608b247d0c965d365e1a5cbc2459785cf14019898708ac469249dea82fa86656ca39144f253defce61247962e8b44540b91a52918342a344ad1568344684f8342a80ffda12c3a048865048d3545c39cd376369d590a4dac59e3a694b6e64d4aa91b322dcb382ed3328f2d886459966d1cb7695b966599a66959092247d728ed48276ba7e631539e51e076b19a464f0dd2171ea94f7e3a79d644699239a7c934e7a473625986516cce39d9270ebae883a51e596b108b314a52120d62a176ca5662e4cf6cccb22c8b4c9955b02cdbb62dd330c6dcb331cb981d3b43a7cde8cccb186bcfbc9d9bf3ba6ed7d4a0c61fb3a6695566dbb64dd3b8aee3364ed3346ddb36edd6382684e6ee2873b7f48c72d36edb2c34d3b40ccba67ddaedf1c7ee1a7a173f477c82fc8b8f51f8e0fc9452466d487664344c8ecc24669e52ca399939c6a6b465478e57901846c2a89403dbac9b49196890f36992d2b76ddbdabbe79c526aad4d4d4e2a870da31b866954532191e24f9714c336d6b46dc3308c6618c7655a8651279c0635c695523b6012c326c5300ca35fd3d9340998c4bca58d9c24975262f4528a6152caee99c96fd2d9b227d06753c64eb5679e656fec5b823febf64181908f9dcabc39e7a4d8c5b02c9b734a496da6cd348d62544e6b038d4ead6a9aa631098906310fa7945c95c94c27954eb1e6ddc694d22a93dd4cd328a57366d8a48ea9ba8871ee3987b231fdd6709e79c8dd2d8a25b07ee563144ad0792c72e1e438d27c8cf3f8d94bee6632cba69dcf6d8d45ecd6d82574f16324b6d9ca3827c72bb261e6162c018991223ddf431c6063144c787d47d183e4354b00a1972e893ce6f4e7e3536f3d8b8f501803cf7788612866073f738c331cf3435662f439e67b8e63bee61dfd36cf9cf38d7a165bb01b320d7609b3448ef9913a8a067ca7281af0690d8712455114fb32ac318f32a81c18b0f9f8931da539f8185f9476e3f685b353147366ea28be8c7df30d363a0af3e8fca1300f31075f737ab14b03be7639c6d1b3ec58cb81d44c1fdd3f9a4ccd82519f9fe904061b9a3e3481d235a7d3c1ef1cbbdd1de2274783db308cf3507eed1d6f5263f989027fde211a9492ab452ce7a14986e55bbb21f8a1e94de0d315b9f14c421757c26ebdcc5e6067ad37ce97909743d09c03cfdbd75ce455e475e455e4da26f2bab926724d85d7c1c186fc284ff3503445d5331f55075175d3448e9aec2291a3a6673e0a51534595114d5495a937860a0efe9accbbdb4205a54285b5a7aa7db66bb657f3cdfaa9cad8cd316ddb6cc96de992aa125ce221c9ad77db47dd9250d6332f5907dfe4a48bb297067cd32d216d1b931cb579e6a5eb913c446d295506b55d1a3086a7d54a337aecbb152f762a8b95ebd7cfa3d14834aaa22ad23c91c6719c7b532412cd4c91ab563755991af6cfcbf6d0a382e8a753a28b1a0d29a9445417892e6ad43f9d42893cf3e8cdead490d245892e0df822175d91e8c610d22959e3ddc322d744ae79dd5cab5bd5912fde8a9fdec34fefbce36164ddabd647b508915791d7ea9b481bd591c87add8a573fad41914f9f9de8ebaf5fc89546f4dae8b5500415d53f72f9fcf2475f0c91b3775e9541d180dfa0e813b948f3ea9de8a35e3fed7b83cd5023cfb291835f5d438d5e24848ed73a9df7b29975924b3775aac6fae6d2bdda95684e725bfaf8bdad84662be5e0b7b7fa46fac2cd47ce559a6a63abfe7ae2a31a3efeccc1e73b175eec14ca8b2decf1c3facc36e4874d3cbf0f1db7f9e00315b5b6b5c8de5004bf5d6d4a8c4eadc1ea9d148daa8bead5bc2fd4bad679e9fa1b36ef75eb230f3625be62e8e24a88053df52ecb7c240be69856b24ec26ee6d6bb49234c8a361a7977f2d270e4a7a378878a450c11f2f30c4ffc746ce475e4b5a2a0f849736637d161f5f10a1f7f5e439e07ef401eee0d55b8b768a1b2929282e22a5506e5e4282827140a8a83afe2271415540a4a65c50a143f6a854a4a4a4a8a4b4f4959e97cf0bc1f3b7acf5b6a6c940a15fc27a39163b5d2308679fde2a3541b239451ad1c7774caa41fe5c6d3631e23064af55addf3939baacce9a2eaa501bf7abdb1c1adaaf09377f5dbfcf4a97883f55027f73c36e89d1c7c94abb8b1c17a51373688633e4a0c948bca311fc595183d8ad7ea28282e516e0e7e13072b0d132ff1ce8587f998fc74b2d6e73351e6a58c09369c443ecb1c0c4426d0cc9c74e2395845f5ceb39a3a59a34ac39a8f7c546d541f79ac18e6a31d99752e1e4718cf0936ec9c9d2cf391772feb85274ff19a93a344189467de3488302a9e79a7523dc54f1feae3b7b50814af285e4f5f45f1ea331a75aa5f0efe93f78e4e99dc50859b78c641744278d583a8343a181e4798e8da862259af09b3e6e438f8515cc5f59a60c3cef9cc5ba753a79b72c393779ea1dc9a93a378e6b6d2682794178f230c8d1a13c7c1b109d28322cbbc7d74aa7b742a3479e799f7aa53352667cf7c5469341b26db1c474945986bd8d5aa7718e65e841939d6c3632b1ef3184d1ef31a33c76e58ef0dcfc776ddd5a2a669d3049fcde999f74da7764c134496cc57f0d90b3e73d20deda4c1676e6f78ca7cf4cd9bd8925dd1ed51bf5e3548ddeb6ef708ea1e0f364863341b13f49433e7fced6799c61a96c2d7083c245558eb25eb85cf0ac6f31d5f30f962a30bd12f3126f2d0efc81776354bbbd69a559d76be9d276b041f6adf397c7b87c7041ba30022d23b3e7ea84d9da923558fb57ad040e4e34bef46dd0bd4041b8c3146182578e851ed5166ce8bea4b03fef4e998bfe85496d564ce9da2015d663561072e3b2bc135ec1dbdef0b1b8d250bbaf8ab31048d61478c2419b4e7c040684373419d2e2631bd06bd3fe641cffda2d29a6f9ea4f559e6d345f0b57ad75f0eed959053a89e3a12cf39fd96f870f0f7f410f32ccc320c4b40a7b0ef315086fe5ae6e1095bf1d7348f5214b9ef06f8dd0ae7d98f1b7a7ee5e38f1b787c113d327715a41c58cedbc32cfbb80896f3ac08ce6bb21b82ef83551a45aa8cb7041bcef79460430dfc4e7137a51469bed2a9cc29aaddf357a12b7273296cf550e5e5f58458140d1afcda45b56bcedf3f9f1f9b9fe8d33ccca55b5384d9aa2b317aee9bb36edc22f20cf4ecf32709cf87e04b95972e7f92ecbc14e2a5a58e83b9179daae17cbe7421228ce6d20710613697de6ddc568b988e4dc7b4898d3c2dcac6385291f4b8c260c811149d2c9def628cb76653a7674bb2ccdb6d44df9047b5886e0685fae4119f7a631e8f04bb1313928b3cca92c49a7ad659387dfc69622e3defec741be5f486fd9e4f9d6feaf4863866d645139add1acf353f312142bbd389be28cd33e619719b9b4aba3bc364937260319dcf1ce5ab7506e57d6b5019ab3af68b5d715de586569bd925e5c0863868a55e83a1a8f374566114a522e5ca3bda589ee665363a9a983993473b367d7cd8496fe2db631e2c837a367b7c8803a39977379c3adf398ec61c87776b1cc3b0ac3d4d5efa4d1e0ca3f3d3577d8644099d76ac922cd34f6ea859bbddf044bae1c94537f4d20d412738ce8a38b7b786fac8db9d60199d76431c336cfad5db431cd467c471172572eb9db34abeb0f0c9e21a11f2cee7a187d6fd72906b5a8bcbe246c9d239b0247b390f71d01f79e7d5b9ad16e13de71c34471df4dd7423e4e46c6def660e15893ef031be4cb7f165866499314622aa73f4a977948aba93905bcedbbd0e728265e44ccd9b3abf7dfead7ce0f7e2c5c535f0994fd163ab792dbdf8d43be83bcce32a3b6ae39dc430cc67e26397b463e9f785fedd55cfdce61b07fd7aa7130ca3f319d2fb32cfe5e4ae26299d1348fb8c74adab0ce5a11e707064c600062a38127bc6227ae43ccc4728b8887c37bd49b39849cf289d94ce97f59e8e79e8c9223097ad65f2458459427a888a98cb78694010ebde6051d2a54bf0e7e37821a37719c7ee8c8a5a8a51647d7c57a7f8d9bb390dec62182dc33eedccfaf671b10c8e30628b84c2b794524a9fc8d22ed909f165f214be5b9260316f5a65e46354b2abc1f6a65376894e563e95d5a38cdec1ef6e00facca7bb34b75213ddf0f4f5e39f1d9ccb96de655e1b407f4a5d9145bac6ac86c87078e9dd659fd822dd4b82c5bca3b145a1cdfbb00f7603fcc93f2fbb38ca2d059ae6ac79c6a2614df3ec63d7fcd3fa31cc1973ce32d7e65326f2d343cbec18d36a8339eeb296619853cce98e1d0d909e09492273ad0714a4e8f1d431528944f21595924a837d3ebba1376f987d374042ea5d632b0d63d8a8daa89b53ee8fde69c565881a474ce0061337393d76fa4dba7a6440e26d5a0de674f3d85d69588a275e7a9669d586e6994ba73eab0deccecbb1a9a8a6a18b2b212301093ccff9f44e6673f35eaa4797973fe3af810dcaebcdaa7d0eef7a881a474ce0061337393d7682f80c01eabf01c2c94a8379dff03ef70d4d9cacb6bf238c707abb087e361381cd3b571fed2bc18f655aa5f14931969508ed862f22126cb8f292d2b47396455a6dd8aebfa8346d34c6512e9d9a110400000314002028140c870483d1784024eba2ea1e14000d92b45272569b88390e53c618838c210022000000000034494000cb39646c351c34ba7268206b62d2221e995e6c6348d69060d32389f457349f44a3cc59e91a5736131e9eddd65050a5061943401f151f8f2d8b2cbebe39582792352e43fc3526a048d32698c5779a49be6b824959cefbc64b1f59d5198f154e4cf4ad3ab4ffb91e35f4fb6ae55148c9ecffef8b084ba22bedc64bb809378602d5c83b4ed3ada1a3b016d405814815a52eeb3eb7ae4c9842cbfbd0d5b9810a14c5809e780029460afc9f33cba8e68104f48fdd356c6fdba6f51f56148bc9ac3c364c569fa1b7c4cd6d4a0867c61961200927049429d529958820edbed2515a5415ffb4db1326e252e336ceddcb2387d77ff3e506374ef632cc87e732316034b04d723d76d17387c509ab705c4120ce2c145dd12743c262e434be909a85dbe7f653b6927b1666484fe4e6fb6d0311530b55f14b7491a05c097d5138d97065b93408a1965d44fe2ed404d8d32e6a4fcc2a2f883026d06cbec971794995522ceed4a67393a6a32528e0706f4c0d495144af5e30532df51efe8566a5f3d4ac9c6f6ca3ab8dd633e2b689865a9d785f9e373ec25d12325e6b8638151f1a866f230e746d3f9419c5e1f87fde2ecbcc83b08bdedc3b901c0703c27520d440c2140762891eca35d9869aa047d98f2640fae3291073af186413c3cc65a17e81846d68adbd4f369727b047b530f6f277f660b9ac6b3a03e6d91c1acb89e1def095344c139ca1187bfd4d7bfa9b6dd542de824d4a6262263469d31ea19d049cc95ef10d73254683a3699eeab77bfcea0b10c876ced0be00002e95a07ebf755c7a7e8a08c7c9c6b23a65917a87dfe8442462f101ffd058f0df71d1ff6217eb8503f84da66fc534cfb08bac147a12c3a1632fec8f05e58a284e91c75967e41ea50048c1323cc3238f9f3f59239ca71cc676f1d6992913d8c25c783437a106a318a0270e484249095cbc84ac4f54a5a8e464e82c1d93dbb3b3eccc33f6e0bb3b4d9c820181698160fb4ad7c5a71f44a3a053166c7c982ec7180bfedd41c55c1c6f67d335959e60c2fc67668b8895c93f3388856f3497603659907633e27c7e5027ebb2d1adfcd6ee0a868dfeb63c46c6a05f5abbeb07cf9c700b1bc90b6de764d558be65a9568be53837fd1f9ac776f010d81d1f1edb8dffd34dc2d55f155af23234c1159f9a5eea9e7f6e9610d45c905bf0cad1022b8db8d9949b6019e60b9fe536263434b7d8e8cfca9d2c25b96e78807602ba3b5cf463180ef7fa08a0fb0d8a744017936bf157f9d7c20efbf3cfdb559bb124154ba128a30888e910e65562e76e648612a44965ee2a74ef98494d40b5beb676fb844bdd630496d24fad9317befba568088e4bd71140afa8d33fc613fd84fd5aa04f3fb15a572a1eb25e8315b504a240ccb7b83002607cc127907997b88c72af805c20402fce09c635560326b1558f56db7f64eeb4e8ff93e594beaa5a31b64a682b7c9ec2bf9b3842ca1d3526ae2afcd25df0f6ea5a404636a7f5339c4095c200c0663608296e111834cac5512e112283d499f151e209949ee1ab2c74ee6aab673ae34d5d49fd7436873d021f3f3098d6f9e2900095ee8832589a32d9c813f0b0c0ff5aaee7703d373f3dd55fd00d536daa311addf0af6fb0d65960802030c1a04774cb42fd82022f662b64522acfb30ac2cef44a3a8caa7440addf446db11c26d637116d10c0ab6a0e45466aca6a8e0338e7e4c0d6a190ca2f54326ab742092e336d671923bd92472731a42f74ebc6e89caff2712dc3f2b2251821375802a54c684a79fa610f899e020cc7d6d41591102b3bd3d12fe39b407501ade5e9dc194d091f2a71f18a409ac832c193dbc54021e6edcb056e8f55d158aed35e1ec5faae143d10bf10386af0fb3a7c3542acb2f6f441904071b1c0c198a2922161a0594a2f5ce720b88be66abb1b1bf80784412bc6e3b48e5f85ce8d36a807041613768fe3538d051299e4bd88ef7ea06e86516f640031a6d067fdc7d8c12c4cb086ecb8cc7351401e05917155b97def93a3057647d8c6f0c34d08cb528572b10e11f8a14989b22709bb57b37fc8659e6f7a71dd378b0c8a3d56e168d9ae3f1b66d5419e1136f979d817cdc8412bb257d0acecb8a3f551daed87c8f68d47d2e0ff338e2e1d5bf59deee0328c03e3785cfccd3dcf260ac039cab485b6c62042629f99b755f77297497c4d5748c048d5a5639205a6fd38b23850e05ab63149f2c0271d93677536011b130f0b83781402080cf7bee3e6b0c3341ec3c011458fc17658e153b59e04f54169889dbee9c80b870af1d7d1914a236c2c57b061123aacfe1cb2262576b12856a4b31ac5819778ec4f91810f59d49c713c7322a0ed0e219b55b5538ab2d43e7fbbcb0cf87862ecd517b408545800916c02ead96281465d5e8ca65d4ec2b49b5557086b6eceee6288ed1063b9ba369ba86a0bbc77a869fc80f1e35d78bf7cff04076a248c54f0c1366f3e3ae38489ce255b37aa17da94c1b1d90353168b2f3e20dee2ee0c4657833bf0999ad9d6971366ac710971ec7267423811106383b9eeb1d7a8a06fb97e3dca564ee95312cf20148e0f953e3a08b4c14b6565ba7f9c7adbfc3130e1540ec91dca413f3ff9069ccd093acd4333486d3149e72374aaa5100b1e4427642281abcdfe198a7a39d126c82e3358611fc2946d9edddbb6106af500fd312881409d5ebe3fcf9acdbbad72a7508957798ea9438414f8616dc30bc4a38e3519a2e763ccef5d8a8f5365835c1ffaa4b52a2c99a9b1f30566b0ed778fd33fd19059c29c47bdc581cd79fa275515454d49cb73681cbe0a4fd95742d8a634d50bd4964b97c1ca8e74e860535dd4136ff6ee62590efcd698dad13469032cb3261895c0b4372186664635598c5daf4df5023a55588959f06322ade93d180676c9f27febff13561fb14c89c0776db9b4a6ef5e4d69c389c44ac54d9a3d48d5b009af1adbaab04fb8086fa1c063ef5529fe04d56bde2e5438d6fc268a19fd01b5b20184397391e9ab1856486b645edb7d51f69ca873af902423bd38d2e086b180ea12d9f5ffa0669ad1ae51136d308c51312d942c78bfd23116b7edccb6a766ce9456edf451e3590f24203d734724418ebe03b6c97d3e26ecfcfef44dc924974f8e26f5f0ff0ca6cd33e7c4db2dc9e4db2bf4f46efe19bf7a6de632798be34ecd9e9bf449e2201297d7beb3729ddf90e0a38bc71a3c96387826e75a7cebe94dda59dba042e793bef780ed8c5dc4f2f1528328acbf7f1684e33b1e7d94f6b4a0ed0a544729a908c88168453f661ec7c832ceb3ffa41b956107e0719c702277e2581817bdba1a557274b0c12e06864a2deda5393c77d2805a896d0354716eeb450ca5b7935646e6eafc36db2a2691cb6155e87ec33323e1a21079b3a805a13eac8173c327a38bcfc7f0311a54e07248a909461bd2971424b13125f6cd6849092969c41cd67b108cbab967b90c0346495348d19ab6fd185c660d884e77b92dc866a5be9d85c4f31fba9b7451c5e64c8b8741af4ad2cac68da1781a8b820c0200a7955e69648e7b5b3d2860aaf37e11e83cf517e73f4b5705afdfb9902daaaa3a88354e119389682c7aacc04d27ed41d61f49476878f874ee2198fca8d4b72e4f033c03133c5aebc0c5e0a90993e2915dff1b107274b3970fdd7c17f813e2077a09a9ce7c315fdf2e74330e45141356c6a91d2ee99c1495fae24c7515f7ca7140bef1866bfa8e2bb1860cd342c6f1323bc088d5357f9619b0dfcc8ed1ddac52a6530b1c84ececf9efbeee527584c34e5abbedca6057e082a07b936ca72753eeb2c0a72a0cb43c4a0b65ab2cbf68d219deef7c236cc03035d3aa46b67ae63ff2adb531d1dac9d485a39757a55f84594b59900e9b92776506eb9e5047f85209b63bc19f2eb4f5f79c7110e5de7e20f5f7ce8329c6979868c1326602991a54f7a787544331c86a3fa66a2398ee0f61b50f03a5ad176178d1cb2460b8d89188dc46f9310db7c60372eb60f2fbc7b156c797547c561ab4d40d65fb115a5a59dc912472cfc22bc84dad78e6c204524a494a31ab0437aeb1a4e7ec7f175602263e57bcc75f5bbe96c898adcc88c8ac31253314544b2c31e3234a3f9c2d6d387162a9f6f58d226e3a6a5e338b3bd62c236aef11b7f1419b828744fdf260193b130bc17923e13d75ba45eddd84da653e24038954d22e9b30d3ae40b5844a53fc683f012a4b055f176383004d5e6ee81f8b1435db517d72734d5a83fd108c7411a17b3214547896822bd2e375dc449942a64de5c8ed7ebb6be8a02eb8da5cbf34b6a6d259c0a05c44669247b27943e6b94b20a3768a184315ef46bad2038a182efc90cc9ea5f36d0b0469de4cd04984ab98428eca53468295bf1894dc3579c1a51ee0f5f668e9f3850c8b81eb98494563db9c96150adab44e79e8de808a6395d9b7a4edb081aca4abd0fc01080f9d3ee41eeb81f8485f3a6305b5268199f9244b1fe2da8a0d98a6f72a85dfe4856e39698be9a2183704675562fc7fa7e07d8bb0cf3e284879672195f25c6d26c0c6a2760a2b11ec73fe9533ceda4446d57b219df817f3c718f74e160936dcd15a8280f8d78ce5c6e58a36a2a44880b2a4893468fdfdad585f457531a9499c1084a4d5dd9a1cb91bce4f8d75c56a87eba32e39620467fc002c696e3e9709448b132784b2367ec41fdd4092fb464527a08cf1c51b5f34d211ab23f25cdf02ddfb2004d799bacd550f577c210a5f08e84cff9dbf3af3278787981a515758387d0dd474fbcf19a0456b2c17e5fd2157a5cb95f94af1b10701e51e40c42cad91083d1a7d50978aa18952c82597a4981185e4f8316d0f0c4535f18f6b5dded58d2cf5ca3379fb6b415352c39f9ed7f974e07569c575de5a4a57e05307d5decae8dc731a0156c1e6ae4222bf020275c90898660b5f0b4aad7761a0bd9ed8d3e8d4869b15877b99468c5abf110ef131361e175820711f816c1ae755c35730433f3877586cc61051e10c33951b0f66313202286ab8c8e16971260c7d311fdbff01c664f828267c8063938c21349aa062e9e7f54d0595789fbbaeac85b2e1c9c81b6371496c02ba8aab586377f1c22e938d9f221eac21615d8d88801d1ea0c625e30172411cb4246fe08329ad7549f6837cd32a2ffced5954d34642d25ea7cfb2b2ecf13589c553d9b8698db8ab48776f6600da9aff951fbdf26809fe52c463f630b19179dcee64229dc9622f841289221a564b2c8a6fdc7ce0f901084e5fdd3805fabdb41fe510a243f1f0e5e2f773d5aab744201c4706974202129f67dd58fdb828a4ebd1b9ec757a96bfba1d858fb0dfed76e588482de644389f8ccb7299196525f088de8cc048a3623f5c343d42e26caee4e60b526c791b5209d650683a9c95d89c9e83244293d69827989989e4a5a76c1e304061916663a7a6dec9b57d7dbd3819e5dd1432c01bdc65c1a1b13995f14e6d3a9bc4659c53326ddcc6e4c368cbe68ce843b9fe88d5a381609e4ab1d2afa3205ce7721d16790dbf4f56c3e3efdfb8b6155e45df9017626f4d9d2c3305708beca836545781181751a6108ea1505c5fcb02ab44bad8d54804309c77db22d4dc78931f9b837d51238de240802fab338123f5c68a0b2e55b4030363c02c92b9a683e8976027d5da7ddfec29e37b3266fe1bc0cfc79e863e1570279c24fbbda821a47d1dd60aa0180290fbb57a7da6ee49182995fcc2e8e53423c39b1102b7750df25d40c00846b5432aafd81e510dcd4c3791fcb8b2cc241ef43e945aa9c01dcbcaead8ead7297b54279c16597d2cb2ad015bb80ef7845a341ed15cc596fa91312ca652114bd744956a8df47e29afee5d8981672282fccb9b3cc03a3fdf52eeb833037c874a37209c1177c2000ebc24b429397bfb0151792ea26726a27da58e10ad47a35c200ecd48e08fb576310118de18cd10d7430006fa5f0260a3e4a536485a210529f87c02e6e60ce1d76d583713cac989c52370bae770218b44082246f5250a492ac2ad46fce4f7bcb7db27f722dc336a6929694dc23ac4d68dd2d96a3cddd8aa139a1cc763f1a54b79119c584fe1779da52b5b81a7b78ad96ae5448144c5cd67bc4dbf28d38faa057cc3fd299aebb798782a0d40dde0105237011e8432df191c364156b861b6be90286826bf610225aacc51adecf871478d21ff474d279fc51748818260d61a18353eec4632c593c30b232cc0f9e479e0c631ad6b56ae0618ee063ee8d98e6d99e9b767bbe485be451050800ccf74b083dd36b431eefaf278aa6ccdaf461cb31d338e1d13d126a06e46939f3685bef49292daa16f4a93ea4f51393acd14437a1b127c83da830b58d3013b9c974a7ec519c93796b6249b50bbdc06f8d2a3052d2774bd68ef0fde08c503d33acf2c4faa9ed6f598647bfe7a867f503ab90e3dc100c40a270bf9d2fe06c4d906e7eede3f8f0c4c31c19df4de24610fa56d863636141996c7ce358f70105ec708250c96c7585a22fee89a27a9255f70da35868efc7b70e80a508fd816746a3a21b138df2dac8782eb77cec1eefce7436287dce7b5513b3c0b3feaa54b09da9333d8eaa14b331027f4ef996561017541a598733370e5df1a7574a5dd6c6542d0e8202cd8f8bb1244d83706f01d45e7785c5c139c1e2ef81a65c624d75ad052b207f241870201b3b211b9bc5830ff21b071bc0eb1aa30b3cbbc15cd4a36bcc1b281572d3aead9127bebef17a9604fe731430bfb01c680c09e380b399092c022cff7b6b3644240f36a83eaa2787c8d658aeafd791db68cb6b7244f53330506876291b2b9feb5fda4168975b4fa466ffa626b87bb38d302c2c2cba4c13f789f713726e9338ed699abbde048374df6f6ed1f2f0f2982b5256076a810bfd02ac1a510be2fe3b5f72c7880b2b3dd8f746237c1cfde9c6ee8bd877b48544b1b70eec14621967d249a0fa234ef021ec314932311888ab6bbb1d48ce36714fb51692b9f7f6ebd0ce3008023eeac60f1e7ead6274449aac9d08e7e7b61d71961902a7a73ca05d9fc18e935b57e8374b219f16f09eb9a7883c00be2d0dee4a1fc0131e2a3ce12a82169733e702963689c9da6eaaf0ee478aa830c871c6324cebaa691c9ae2ab582064282d4da5966d650a30602481ce4ac06f21782392a6c8df1619e71da5461c38615c535f4dacb8ca3caedd41ab90e28f7d7888652668d7ba0265ca929fed74b31b686a60d41bec89e51d158d66b42f1a64546b15b77f9848bdde8b7f7ca60008275c72774e85a8b30cf94f0b2e245035ce4a5a3f7ae8df6a84075427b81e7540e5e2b28a7e262bdc32082e0ff9ff4850a33ad981c040b6fdb7bcda6893fd77bdb8502aac4396ea0e8ef410da45edbeca84c90f3d20530d37464c34c1dd5ce8372cf34b1f711f0884346032a29896318362267fe10e254160d3a4923ac73814caa476ca5b026afa903dc866943d64a7c3986aca621ab1f818e52813893d5ac69011b691704f7c4808bb95141006371f518a8981f0d922c402f78b3c46554c8435acd477e5fe4ab72b82d856b2f401df3813864db67bd225aceb3b2c4dfd5e6db472a41270e2c15773deed4676466f8afb3da68ae91f8f42732550d161f818b88fb69685004ce67ec4eb87d6f92af89301702a14c8997c7a47e695018ce1a7e83a524096ffbc4e5d6b5db53ff2689ed65d1cc67dd31357156d9af9b87bdd580cb191d9d8a9a56191c8ceb8047ec0f76766621546297e88eed8b86fdba73ba432c3e4d7762b6e0c10f09323c3abe91be6e42ab52c749c8fd84a494246a0ee95b13adc649e39bf2760d0efe9dc337c0f078a1a65b0b86d94708897c31e61170b45ab819ff130a3ceda08492392a37d1b039965b7ba78589bb849666d46ebec9c919a7b496746bc904abaf9ed2daf7f8ac6a40d7382162a0480d2b76908188555761bc3e77e994e72ae33e08a70fc3549c8657dc464af2b4e5ba2d6c26e00399070dcd62c7614e97d700ac255df03dac6f214c4503deccc8bd6f4f3bc90b65a04a9a3adc1a8a954a277eef97dbad9058308f3f8e4729346318a14bea022a6421dfe40de9e6d5c6db77770c9b42470fb9dc8d85f3188cb97024b6336a5c6ab1f02d48232be069ed7ee04b5802cbb65a6c5f2fd3cad6eec204a440c46f1c5bd4eab18ed6b0c190730d0347bf07d32804c647dbc8ce9597abe9a266a39e2d2e51d0b5dd4e4d2e75909ce8b916673b31e28a75c4d14a959ad76aa16f626192f04361ab72592016359dc4e40a422d6800ee63e8175715a356e87a27ee71b593b986f5e2845ed66bd96ce5a3dd318179de81201faec785b15a148be2fd1c9d3866d951034197e8555bc25db3be4e2885f307a67fc5d479d39153d0ef2fba518cc74f7a62fd142d1aca93d41c41a2da723ae022395375b228c68200bb7f07c09aa7e8f824c0fb0b3774149469290a6da0c2c2c4aff9b945382b4be62187ecbeef8a2b146d3f004d8ff908499505c3c3c66a01bd23a01470a4bcc33a20b841e55ab9c82121b1b6e6d5b9a92713f28f1108b2f15f6327efd9de9457f97a2275e153b104774185521ec1c260728e08ca07630804270c58e1bad19a10c288e949e7526deda91777bed547c74e69d58b0bcc22c42cc8a0a5e1a1ab62b4d77e1b857c7fc1265de27190757a0fd82805d8f2c5f9d29836c0be67d2468902a3e079aab6a95620c01124adead914b9b16272fe50801898cbc0be3821ba9da25a15095109fcf9f8f28af9f15729c76e7db34c5d428b7f93e863595b780ba84a7e5cd39a4b46c117d50c368a6ba409755a0fddf0db260dbe1bdaf1ac835dfe4b1835fc3fafaebb26e4d147a2065dab6dc8e1102d062d910068991ada155b725d7ff5d0aad0eb5e9f7307c5d2d9b25e87e2492d4e4e003ef4af232e2a34c8b4e702d465b9c5d92217162818cbcc43b5a08cb365e56d2d219ee816b4be5ff3fde3ebe2c1541aaa8fd42a54dc49592a3e0b29e48698f15b93e630919823159a9538897e946e700e2cf31a788ee36cff14d4bd17196bd01f6486a36cadb3e7179ef944bedc1a004638299b4fb8bfbb3d4ca33004d33a87cfde094f99484c934334d1f42f7fcd87099e0bb9fc43fd5e248673f02f5365de86c39379f24c4279f653e39e466ecd9b0e747ae79b88a534057af79b95349e13bb986cb80ae3ca2fa15be547cfbc53fb7e7634b4bb3ef049a5f7c8b68b3066ad744d88d045da16b963e4030455611facd12f1fcc298c7a27d168b89c548b6d80bc00af55e3b07ed23a6465f8bf6bc1f31922b28d0c7364ab31dc2ee49e16d77a5650330afdf69996bbeec707a96b2695a4049aa94fda1410c99391b97ed03f00d35de186873769370741e98b38882b27e3ca699ac4d7af53e691b51d4d2498db177180a0c414d783ad9a228b83cdcfcd9faa8f6778650b52f26c5de9faa208ed1eee3548dd2f36c74b578dbe09f4508b9af3d60052ba3a867f27c94c371a49ce3000da865769f3c2d197754301cd64ffaa92e5c0407fcb26852c885cc5ee682374d86bbbb4916a8f2b2b2e6b7df09a21e816d172ec18fcea42732b4ae3e9370c40940bca1c78d8bb8f7c71af42f305988eb9ac66df96e9188467602d9f5d11daae49159103ba53208ef345c5e7940efac9fe9c3c5c4b8c5daec9df26b5d7e6a1cd9b8749274e11e301d1baa161c1f71b31da8ce4a09311b811f55838db63972c0b2653c483e9507d61ee76ba79e3cdc3b1946cbb50ada60325f1af76ecec0f2bb82b730be4ae52aef568a98fa1748a5900da8502322b6671bd5eeee7278fffdd3b318815cc7020f26d237ede53a02e673d95360a12699543134f7cc9c05e32478c81745798edfe8f205db4bc8243d3b38838c943266d14b5bc50f25421b1c8beca9bb76753e3a82e538d4099545f20cd88593c086415929adf8bde77356b123d0e4d761e544e7bcc0cdd7808bb59d7b2967d83367c086ed165bc661db72306106ce881b5b00683fc3599e6ee3d5ea1748523783395d7ad94ed3ea95aa2c6fca4b21d68685118438a282838cc649ab28f5d32a98964afc369c0e68e396bb5da642dcf59d8245f4a6d3668f388a316ecfaf403a1ca5f1c2e2cd3ff3d306a0b11cffc6d20bcb43cc52b35dba63dccc86e7677a67c97ab6d4980817e9aaa3386f80c5034ec9ee3aad9d87ef106f92c8ed277acc48b19e2e846c6daf7c740c918bd26a336038c454b4df2e0430f9788d5d5094f9bad85dac413e0ed8482a7ae72c70972aa27281508290b9e1448157c69712134262837ed788297e3135a989c09d1f92220777c125131e42214a8c208fb23dfeef5aeeb5f520a2ba2962dc85ee05424bbfe8996bac3a876e2f2c084b7c9566a2f0127c26ffb54ccd7009ee2d3690cf67d03682a232a8973fdbf258a79fb01d21af956c283134f985077c6da41fcd3ca29511942569a65f00f785af44bb81f51473f035f5abb0aa6e571e1ef62bbab7de5e4a91ceeeb084179c1d7f544851df20f3c09f9358fd5c47bd5f6e23a8b9600ab40b029caf8f51b143de2a22e8da1d6345df026c292cc49d12b0e18a95179c74a1795abdabc022c3332311d7d5c55791a36691aa8b32d119cebe176553838aaa526f10fb22368543d64a837ac20d991a566ec12f33edf8d3b3f93c712b69b4514aa998d720af491c8117070664ff777fef880f71fe7d12f4e8497ada8e9d3cec8fdb856711436f13abd3d7aa924b56b6f1f58f01a1738d7491dcec0a36c04dd4f5e2a9c00782dc5fae4bec6cee7b64ad9a2e291baaa8d2d2801001845cfe15b23a86eab8381f33466c15639dfb699de2bcb512d6bd4cb1a195913eecf8790a9d4b3cc5242978f3ff7e1210d3d57f561defd2ec1dd4af40b62f5ea2ab151c7e20799dd057886e87768c4c9a85bb9179599f36a8cdb6316217d569a81a8ee3d6d6dc7ffe6ff278e708e2276c143cbba79813876962f1006783cdd2e220b2d70a08b8d770b7387b9d4fefa65f2b047bfae122d61191cbee1d8d5618f79d6bf14a4a8267785f4feaaf4cb968555d2f1f359661293c46f21540255daaaf43c5666e59ceb1b352e8abeb73b00aa4c1a2faf12d1d4e1816f4522645ccf894409084180483cf81413f16ffd09a83a2883287f099776adc927d576b29953d4de02c168f2562d094e1246787b2476932533bcc884113aeb731838baa385d5b86115d52beb8cbb7f0fd41af31375ba91f281b153848d279c795c224f6fe5ac081be738f217c3c6597d2fd3db292d461d17778ab7b287e40f4d9c5a7f31b5067cbc05c245ebe7268c1f71f4d5785dc0cf0abc0f0fbf06d6dcfe6ac510ee366edeafc473a712575859383a2977d5a8725cd601c0e6198bc2df29fa48d059a8d96f25e9c9e0b3bbeaef06f020a08c8eeabee2514880a8f653d272fc4a917f8b6543403928b8c58564792b3352ed121e74358311ff8b465baaafed7e00378924118bc03dd13706f69d370b9d5adaaf1670a1396c8d90eece2ec6d0fedf2882a969f764ebe97410d6509476d7d8ff892eee2516204a92f8cecc44aa2a052599118ff968c21e4db5a5cc53c870b44eab04b1fcf39ada88b8aa0b6af6186792c7cd0487ff54342ec052688304bf1cd404b8cf42db07ee9502ef85a2dee3db31880fa884aee9acf73b6634ab19e0748f81ebdb988089eed4a79f2f35b0d0b87ee57b4e5822a1cce90c45bf7fed005e1f7027b381f26a31e36346b624b26d3acfbd6b77850bd7eb08ecf1f6e00a4d3b0c3ce1641f051ba8aec619f5930dd639fd970da762afdf0c509b4d8fb2e84dda28524f6984a934171f24f9f7772826da7d7735234d14f60b926c20d80c139bdf5caa729f6dce727c555621f2b0ab5d472cc9a099e01b77bbe079e435bee7c707fb2e0733643ee34f5117fa37e942475013ab65c83600bc288df222d141a1bfeb9fd119d71596f7f46b437caa9295000e0dc8465a4152b63c46a3f56df63fb8e232aba660aa76c880381cc5a7fd8b6c530e38ead029eb8db7b070b307075d4225c09a5e675e1a2354f9aea1da24ff42a076e4411737f35684bf49966d4ab8626f58f99692db0d94f3177750a0502a2ab63acdb685577428717f6e02bf04b7676f0d564b9c074e83bd7e7889058b36033db02cb02721109c8033802b6f65ac43ea81b306bb9a5c83a9a3497cd19b143ec582a1bcdb476df9d350f2c469438f84fe2379063dccebb7c18cd66081f890fa6b58edd120815952b3ac7d4e367ae1ef86d165a4437de3363c594d1cef9331e4727f64ad266bf1f3a02e7638cff41119d27fecb40b4a822d71661f07771ac877f1541b101bf018837b37a9505c577013b7bbd6b3e6ffb3baef1ba84953f3fd3b3e86fedd34d0413e85e5049bb0122b5b47910e4225aed96d9ad7bff4a277d47fc3c9ddc77630512846ad16fc11999717fc82292179df983fdc4c55f97ee61e4255aa52429d87cd470014c4a200bed80e00f449716d7b44d8fe892ddce97b891a648ce7154c5e3bc573b1b4c541bd8a041db7887ff13a8841fb3c3f12485575430fd308e434e7a7ab872808cf5d9d7f1dd047b8029c4a03495b4276fb1ece2fc97c3bd4e362823108bdab07c721b461d3d9bd2cde4de57ecdb8e32a0028b6118a69aff5a7b33de901f78dba4335a518e1ab8ff79ae25c6b48b269d1a979ff986f6c7828fa61156af426a7f9779b54962d14dd4c72db34636d923b758442c4e2eda208498e9aa4b63879ffb49c1bc49a08860c2f170c20f345af48fded016d38e2bb65ddbdf8d894d286e9f2f3b9896585674d7d9a10aa2a12d39e08f2601245a8cef3031ccd49b243449852238a020f4467a6bf0cbb027de7be25078f11b2c7d1c2e673c53828187c4753d6af8b5c98b9be21d109ed823ef3f5fcb690ef512337c36f1dee8a98f6ce0129e1234532d8c84eb313082490886338aec5eed2ca79a50d997cb4680810b17311fc533dcd5102ce87b3cb977c7fd320a47ce47e578421c37f9c0d5c85202a483496c4582cf2355457fb29d3fea9528a0c5e9755f6d5d2aa6069511829bebbf66ddff68b91eb07bdfa7dd5d47bb917e82d83233a3fcaf86a66b52703ade7f512f9d7ba94f54774939d199f54d12557ac04921c474d6500b7f549830ee1f4d841697986915cc7bb0aa1ff868192fa87423ee2bc2ec28c877c11bbe22f02f5f379737b35c5601d784809b1cbe633d3cc1cccf42e6902c697834cc91e0d9a58040471f00c658e0e892bd01d128c2d8183dfe73201fd3df794a6f29f10dd58e969f542076e34c1eec31f040bce2da7ef209268668d05379db530197e2145779d2a19ac0aad717d1b5895903b69f186a8be1d6a0e921e88b0c06703470939b6dd7436298618b9ff8adce73f8cdb275f1f26de537b3ba27e73aed42849d73cf350cb60659f545b11ac73bcaf15a03ce7cd605c70b6f324a1377409ca0cf4e74a5c2e336d85e195b5e4cbb8c5b861c24aedf6fc636b06e03755b62209290a0e377d14cf49f0dd49073dd600212856895cd1861494dd1a28a1e3fb997d9807aae17a5418115351d8e45c2121b00e3915c4045d9c671f014425436e3df306b1281725210f4343d3b6ca7f38d89dfc857203c3c380243aa95d1c9ef98089b8c7ed9b2622a09c3720fa4a94c6898729b848bfccc8971784400b62697fddffc1f5fb7c9a8e702d8004ca63da78c10be836e143566ac45d521c38a43b99814135d2d01aa142cb727ca00c6988fcff549e46938dfe67cdb23f8e1d5a7cc358f9026c23029928403e4c16b79e50a638ac48d6a5ba7ca9e040d24cfb1e0e926647dce49286838252aafd07406353f48620a951bb5eb47274fe977d9a0867bc84e01dbc642b4324b8f7ce388c77984d8c3c93b3c3641a7a9bb6aee62e506fcdad7d1ad47f90c38533a06669ed9000c67d1ab72086ad0545e58563dfcbb3b47910a6be9797d4766d398882b22219f137c0dace141fa0a82bbcd6d65d128d624c3a241cd14a39835b267dc808d6fd2fd15866c495db3feadf3b46fb3461245da099d2097ce145f2704672b8997e6f63b50cc90cd653e509ff20b034a6f2afcc285c319f66c915c18198e3ba23e05d06d7cf9758b3850c7dc6de0d3414606009cdc103626e3eca909572205028f6005bd40b71e74a47920ee89f4c45f7c830b7450ed1be09e58e421bc79cbf8bbc59f20e60425ec0058d76e19e6f60b84688419d3bb4a65df0f6e192c792814cf265fde8a92ccd5fdff2d7c8ec228bd206db1985eaa142478cd572ce6cac0b04b8c9cb77fe6a3789c3926ace972838baeb69e4449483668d50885b2eae10a48db088edbffed238574cc646dd44bea75f003c9f39484a63e68e7ca5cc5d0cb84c3fd3c7e1ffc9e1a23e85a2588bca8a1e6cb14ae4a2a19f7d57c98cce51b5672183a2539c7f90e866d55d2038aca97684c9f014d0e18803d7b2387fae3673308a82c29ca9ea6f88cd91e287ab1cf788eb1cfe549ed0b7f74da37b815ea36935c6e2b9da537502602256155231743fcebceff721071e814e1f9999d6f1efc2b1b7b1d1330b9576618b9d9ad7fae6b55f4a54fcd3460c29a39e28f2a60ed3a5746659374b0e0cbee0893b95c6e07cec42420a1230edb0ece32766a17343bc82d3998d4928d58f90e6f9f7cc68f3ab5054bdcfda76b8a620ffdda45263dbc125b8787dd79976c2885aebfdce570605056e08caa9110e783d949510dce83bdb444e064e371d99daa34ec7fa0e0797189ba04dbbdec4dc9df61c3a7c5a06d162c88048ab54ba1e6494ba708db1224df501105003208714df0bec026754a29282715cdd102133412a3061198108e7dfd79bccfdf8a8797eebbb61ac6840d34c5b4b9706f4f14eda0f78289842d979e25d431e345ab766c8bfcf0000d010557d5319095f6580c2d3b1a78360c7f0590c6a907df2bd333a1612678ccf52419b246ae281268baf6ce8bca158daaa7066d616f6a32254021fad221630c18095d39f65751383db40300d8ba3daea62c08abecd7c5c4d1ae812d9de9baa89d3c6e81406909388a950e6ea1c3042c7e67c5663eae2e82c9f819923dba2a5ec200f15d1045d1c5bf8707b4a8b5cb2326c4a08c44b73451ef24495b960c1cea7bb56b4a789083e31165a2e7e2c3f088c76ea749fff75f3e40bf0ad66c1fa826940dd8c5642dc346709f47d43b6792c21f056ca8595041723238fc3a36c21ada0037e3fdbfb524675ad3b19ec5fbc36859f5912a238e9c27ee35648be8c59316238e6a8cd080bf0d4e8c46db42e82cd29d17ffc8df92b6292228024677153b8105dea236ea9461ce2a48bc5ac3c5e6b14acb23ddcd6ed33fdc674214e7426aac17a700783991961016a1edefcff2567d5e771b44e76716013bf0309577e531f61388e217c44e06008f511681714f5507d4eef73b199dfea8290f017cbf2cc338f00d9060c682d790426006a07ef1d52ca5d59bf910b511cc9d943a40897cf8e488b3c70bdf81da6a79b120009c01a176b4cd483a7c31e9c19e6358a3b5b446566b54f62358a2ef20147107c480020c2bd49a0f33892bb8e8704561e4babf7fd19f370180ade5fc5e31a2afb253c907cdfe4dcf066d6afcbff4cf4050c1cf9f8e1212750d3dacd909130b13e57bddc7eaa060e438004930004c514ab21499fc791d1bc0485e93faa16e113fcfe4e3369ea3eeb3c2eea45ea2ff13b404883153030ac18303ac8871822018eda5804561f7282b60f88abdfcf0786016b557631f850fc66002ec6e362967086e0aa8b5dd3df41e12699676a1cf0ccf244980ae08c9d09077441b9dc3d7852e97fdf1a0ac9915367c3713a4fab4dcdae31155bec3ab1c7cf3ba013b3614029ca3d944c25bcc341ff7ccf15e5e47d9e6fff9edbf8a4a88f829242e09d711770c761b39591922228bf7d5a43dc80ec52eda4ca2edbb4129da7535369b076a495b05acd4e9a024caa8f10d19752c8009b20f027cccf3a96fb5188db182f920bfb62e02ddf64b5e320b5f5b53d266844dfbc1e17881d6d04dadbb3bbf0965bb2b079ee845276ab4ea064aada4eb20abfc7993eeee219cd5527567045456d3805b4a06baf8b7affd870f7bd8c1a7f1f5809de4da94b4dab5c9b57ffcacd71380aeda2553304e5dd5e72c5df598d80b133723df239819a0e80d464dc189ddae7810cc5a3d831d7974e14a69a61f307320f81b63bb4b44dfd6d193240608398749bf4cc41173f0b6abacbc3d1de829af34222a7194ffcbbe7395a3631cbe5714682096b1cdd67b70235b041f00a645e1f4b378971a0ef350d5ca0491d9a4193b486386f12f6b0881db3a6f86f8871b847a627ea76954bbf6a055b8812d2e78aa4ea54878310142cfcd7b21b70449d5b67cf702b5bf4c154d00c6f588f29c59430a0953e74c3b8bf8ee25219e123130f700f7c1e4d119d708c328c6f203ae19c84661f46aab28810e00d619af623a357f65bb15322aa79b6be02bffc73a71e9e440190ad04dbc888cac614d7333102849ae0ff7e6555869533f03473f81f469fe36a703a871776860a161a0d08fcf6a079f13ef413267bece133c68b2d2a7329c56dea9632d799d41e1f5fd903e20139f832a8e41f40ab0093532e85e4b14296fd033ce218aa65cf86df63b9162232ac38c80d026565e270ee5d93d7956f28980afcf0588e87af17916411f4cdb0401b738dfc740bc240ea82ee6b37e0c61a800c02d13bee413e3ecd7734f68845ebff125ecc700d3755da1aedf77f781b62dd8c06c701b0573bcb3c0f8907dee5a2fbd2d6fbf7ac62c6e18f7ff6dc6b78a787d5d1a18c2795422f703d8b9d752c7af65b2ad8c50c8d3afbae417bfa11ea239852cb7eb090d2bc6ae01e3144bf7826c97f01782426133d230f72f4e28065ba2fa3383c371366982376010b1cd3dfa89273a9b9142e88b91b5d09fab914ce0abe89720de4bab08885593a9d9939a9b5f81e9207146ef563eaab5d3b3753c1a5216024542eac05b7e4e6d70c6f6716657fbd2f613f5bba8267dc2baf87fadbd731bbaa2570856f0710a1534534ab0b7630d8adf893081b0c4bfc6fa0684df48bed768b864657d2957cc5f58b9ac04d594118b8d8c6276a34f6f6c2c224f851a7ec97f88ce9d7fe5d2299cda8bbe57568bf4629668a78793eb114315ab7e3389ea768d1f0b2add1790d8257f3187e3ccd39c7fda41d73fd3fd1a261ed6b3d4ed9e46929ef43d8945a8070773eb3313a2a9c86663c2d1dd6da7ae85a86ed5aff052e1aa2d5fa151d13cfbf1c2ac8a6cf64d0214e5594ac5c56cf1cf3f4bac7c3075f8e3981bb2514a6b4e1aec80a5ea355cc929aeb2c793cfe52dfde03c8c706c8c1cf6fa2a1ffe2d506625002624745eff68a414bde5d34831ace73dd54d3ae4ffcee0fc45ba6180898741d831a25b8e898c8c6c0f585f8b10b39fb73a06d40d61b65a8c3f9d9489307b15907f00381ed1ee6aaf390120d4e0cddec3868762991f54443ed5a08605c448e10021dc2091a2f242c21f824db482aad436d30ffa4fbc1230229cecef37233945a9845a68309eac5551eda352bddfbce5926aa4c3ef54a643aec02dcb1c66e7b5c40b23c6ee532eb4e07d6c59d7a7c1974024ae523387ec4e673d110fb4dc8e46885596eb82833265a4ada93ca9d2309d5971a6d68c6ff48714657c901b27ccc2769b7b99b9072506f1812d6a62db00139eedc07ed7a02258b2172ef7d407977b4f88da2658f22b07bc088a716f28cc58e115b23a1e81980a2e4328f5104800588908779f6e017bd2efad6b3645a45d414af74e3af65064a0d500ae53b6aa1044215e4c940e0a7753d17a819de5506e52afeb9756803a7176a5fd3b198d66344cffa3d07b005777e4b7472517e6cdd4b5645ca886a65b4d0e9e90804778e37a5233888124075e94b29298671ab039b324d1e0b2e16d832eb06520efd65e07bdf4d92793674304f298a565d265ee78d5038948eb75c182f2a273f83fa714c59c0906d0a2c35e92350092dcd04af9bf9a0f7adb890761243dd79958493e3e3639945f3917f5bdb9a239c6d9fc8ae58b7d5ef62d107652ce66986866312cef6c0e05dbd49428f45281808cb3515d09cbf9c4186b838bd85cf51f3123d5a99e96003356d0c8729f9583b20b585cfabd4cf487aefaa5275ebdd624e5aa35ad025f816ab0a4728180a5e0b54c5d8b5c33c56cde5f3d24da89d960458789be29773c5ddfad04e04981533c2078daa81253b86034fb430026c3bb98dbe4d3a337ba25dddd98ef32dfcd2224fb43d52effb3eb3022cc96d7e73c82d5afed447ddaf98c2d1938c21f58cf6691ef7fd775ee8a0e68c36df445d6e125bfe2bec3010aa1b6ba8e76d9866b3b1918fb446eddaa17edb9538313bfc783947cbd5a411723b5a89f9d2cf8740d6b0b21c207539728acb6e1715163464a3364f3a2a7fa16607a49d3bf36fde3affd2a8b3d8bfd8651fed0e6ed3182cd27e0a564384097bf95b2caa80b6868178c2d7d37366bf8a2cbe3e8461529a94b4b8d03c7db7735a840c6d462e9b60c63cf8af08a83f0b3ff455acf40b3490189bbc69e16ccae8dfcba5cd7257d94e962aa4aa309798525295f5cc664128e0d03edd95f3a87d70f586c709da573aa87be1f5270d0e4524225350b228f5856ccb4063e03d42bb8f94e29f2f49249b71962bd3887c68a491cfd8d80cf475e9158599de10aea3feb29c1a2b2648e6d713202cd29373a5d7f167b872ece24948cbc6adcaefaa0d1392a386ccc1390944095638686454aad1dee8676d2284494e4b72e7f78d3b1099c24c412b904f046ff6e73435afc2dae0e9b9f233caa254166a22a248e30de12e2e50452cb521b96520d34eb449060b40f223f9d141bd2566189900dd575ce765a85ad8486eef00384fc471dce09c42535d4b06a29ad01856aeaf4fe68f490fa8af15cced23446a0c3be00f59298bd361819d6e3adde9d5ae730c8f3fa2a75bbe9794f621b8fda55ea95db7b2824f86c0147934944332b4f2a9cafcb210404cf2c03ee920ff3d9a59d65492c3dd71c45c1511e06f94e82eb07cdd0c5716de038d490b060d44884a3a48d1efe09e81dc1a000b0249084b101358d93cd79dcb95190c49a07da48a242069dec23c3e8f400fad3fa9d79cb3470a42ecfd0e52eba455059d9e461ce6094d9c58c3097bde545c8e41473ec9a70408e91518929e7b61221ff53f3db3515e67836c234f006f8711b65c3afd850fef12267004a3e50fb040728d62ed1fdfd2bab5af6554e6e40e4c6b866474d463b6b812f778e69b318d16981a57d5c7b4529cd025e52041b4e724197f0bb854daf948f6fed661e56c581084872138d9e920c88ea651205821d82ee3be02387501ff5283afea96f564cd7693e74983a3bfc44fb557bae8996adcc993c25627d81f2352d4c6b5cbf1516e4f4c2b6a62ca7fdc887e7b48cdda581aa8087ea2d5543b6f2e3de49c3dea51cc28dbdb6efae6a993be2e3a717871546a40f554284cb0462cd9aecb18680ddf627d4ff501fce67f3a0ca673f4c8f6b5bc16f63a5536f2df7408d48720a24657981846b4b45a0703817fe0fe5a9cca0a27c932c2fd05c1bf13681724fa87ad8cedfddc6b695f7e02bdcb1e86d4a086f514b7a5a2deb724048d2f17a89d20b1b747bfa1ad19e8b23fea383be3ccc5bf0f27722de05d3ff7001027ff44ed3afc0f4fac39635927f2ff9b74fd2cd355de24e86f1cbf99a30c587cdb2d7c19fc317dfed4a9db329e50211785d5daffb2b4c848bf1d38cd942722e42bde4fc5d27b2005f245209fef99736149b4a93404730d0bc9b215879a23188b5b3fa53035d75ea3b952156e44af7160076351bc7c1adcb4145891166cf73181ad4525b05d6fe88e8f502cbacb3d67569169c484be23336fc46de95f2e832265b439b48b1b587bee1d722c8950c10858d82993bd621ee640dd10d04389aa6a55c154e7cc8afe66c1cc41e7d2c5ce8d9ad50a6c833a483823277a115ea84c230ed154b00241da58083671fa962def5ebdd823547de73ceff9e99cf944ea6dedd4305c4b8428b029befcbe37463273203b23e6d9d4260c8a43908f59625d8c041f0091a03214bebc32d0f949f0accc0a3947d5cedfc99272142dfe7ba11f26aff5af4c9cd5fa1124906d7df21a8240367f89196d819bff0c34d32273718e8a53edac1cd71adfe05b4d6e5d66d176e654c99bed01a68d804e848287c4e8429809141814cc0b4316796046e11ab8aed249ad083ecfee0d1be85845ad8e46d55cf5e87a8e6ecf14350f81153e1d8e5ce0545205656ef967b0fdbe5ed21b58892bf6d0c09001b2d1bc2c3adf0634be2d360567dd16099e925ca775b66a8b4245f628eb3e233903a2223f877330142bc35414beced574af549b48cd257fb7e36b61ede78b637e52410ed7cc5f9adeb4eee42f2089be5771283a03725ac613be4ecb1581d1766a7a0df13bd2557626f7f008622f4bbe43aab4579ed41b900fcd01b36a094ac89ed50d6805596b854da4a7fc53014301060a429f5905bda9c8af5657b4883fd25a401e4ef1e13a0d0f6445e103ac6078302b0a1e66c5e2835971f8302b1c1f6485c7cb3e0e6dad2c8fa593ac6a7962998c06fd9ee482e48812915a9ec75fce8805915e9e6da2de8755e4fb5a9eca2ada65acfa948f11c55691ef6b792aabcc8eaa5aa58aa2307954f0b72c94c7ee51c51ae428761ff69d4d2afa5a0c185d2030bb6f14dc685cc9db277a1ba0a8d790669e52cad7e4bb15614099e3823c08d8c4004bfb410ec8ce27c7f692535da3798e1f076129cd68c92c23161bc93f10e9737b654d38fbd8c4ae5df0d4bec4c89ab05b2bdd874ab3b3bc8f27ea840622f524c2c1da162fa3f979375af46afe3b2e0848be78444c64f103a3d9e59958c3a288459bdd15d7480b7d88e6ce8e7ec1a011791867e254c9b17b3f71282188df3e591a2180df66d2a687ee0c777d21f59b8b837a7b1ee2209bc65a9b1a32b434f297a30870b9c082a3b1ee097fee48150c2ecf291698e11a208c1b7093522fba1adf1302567a189c67cd38ce46ed071da72d9e4a7304bc8aa0a50abee8f68c812d52e952ecfc74be74524ea69f1f9490b34c3fdb130fa8f544780e4cb15bfe962e5c6018a332ddf84de8341ad3ad2d0b76376dbb5f4ef171c9b3b7a5280226a555e954cf235ebada44d508b2c3b59d065219b7d72f8c426b04700da606cf6cd1abc4c0f89608126d80b930843f6e01750143e586933b5fdca08963a70a7003006ded367efde510b6f9f31a19d8e5e57162384288e9fcb31956ec9f418b8c51b4803988c75337653c6896fb3a44ba4fa7c37700e33056077eac0f7fc2a73e6a1fcf43dd131dcd364578c96e47697ce710c5393fd7eef4956b10b4d5655d8a5bce3b35b01d7083fafb8038d2454da1e412a40c372faa8efa9d76150b1865a66c73fb96d12e0408b1ff6baf1c45c46314adbba3d02dae86d284a1b22ba77afae8f8b2032e65938666767f0aaa8ede779c7f729dffbeecda3ee269973ffce7660f63acfce9d8cd3e9ff19f5607f0443ad11b281d9f90087aa374c8b2c603c06707c83f4f7f8ac9cbf24f5a1533e023e64fcd65a86cec2c857deb56500b42e929a839e44864839aa3f1cd6116145d0489209b111b24f1cfec7644f45ec79e91fcf2b3dfdf16907edbb85fc9422645f85360f16e677d4e0980ce0a738176c2c077c32a27ccb946931b39d5f1bfdab4cc63b1e67e4ffec8d51afd48594d9539471a0c826d4c7ed295088b20769aad2860bbc5f1725e335eff5dbaa63917d4d753711bec124c60081fe8fbeb9712f77ae1127094acc265c4f0dc23ab131f78fc654d79ca3e681b596672afd34ea98d602189307794b53e7a52c10784aed42a410fb1ed8d0182da67ba8cea0a76910db98cbf855effd234bcdd26653711f805dc7692915e988a4d66819a019609797f46a0bb79e1e5db556f8da635a2d97d2afd40160f37470daed1dea082c3f324ac413fc3c9939d388013e7e7166dc694a23cc9bc9bec3c9fb9a1663c6d19ba1d7670ea672fe1bbd188864dad08df9e554c95c090f84d2a173b5e0b8a76a46ce7d406226fe3d6297052a9609f784b43997c9fb28b951e22e7af778d9c98385f086b93e2d8c6ef7eec681b0209c2a78f92695197fb3d48d58671aa929f45b5df1e17b92b092716396912b6307fe8575cd10848eb528940d23da8929698fa3f99688dbdcd5c97ff39fc812a41859af3a36ae586b96f7d8c9b46a3f1548064bf54777cd068a87c0e987ee6a9e4dc490cf473ab805a1bf62003adebb1cc7d4e15e0144602538b6cdb564c490d29145a2fda0c1dc31f69c71b20a29651e9afc7f00b2ad15cc19e9b2c1a0b36ec20aef995bc86e467b8380123e38ecfbc292d3a10ba0016bcb5486efac2c3337c0d457ede7c14ab394fd55f6db6c02756188b7ad830c1cb77b97a785ed6312194973b546f1b04e02e8b0be33f66648343a28c01cc7bd467cf3bb3af96e8d219f6b9cc02bfe0a5fbb589f00a2f6ac70b63f4da37a1b6b0bdeb7932f58033e578d6ff05e5b06ac3c04ae279be81be7061a34390dfd9d449e5ca0180434b8cecbf5193aba80d89849061fecd86b2428677d1c96cc68b4ca6d97235d3dd9a166e9f47ebb19e22ba9b2b336bbc01e92d33b85d4026e93c39554c51ef04aed60471ef1d725b8517d83c8999a553b0dd0ed583bf8b9c657810f1f228bbb1ab05f5ad1f5580410b3dd580a661a6efcb1c1507f55bd1d0354f4d5ee1b7eef0804256bc002fe5735225903e5450c7762817d8efbb848fa07bfed0cf2f6394717ca6b26d49db279353d17a5a857fd9fa7ca0145e87ce2303335afb760f683951ef30d2dfa5801718404cb9b8866cd71380aac65193cd0b7b34774643e9da87ea630f3bb3f4ec06061fe8a47fa240f7138e442908f5b438cde093d9f4d8708a11207e4a22c42fcb90651d93e39dc846d3682809b65fe787b267a407d3527bb92283865c367e6d6d9f3709fd98e1de5c88819d38c65b84ac1262db3f61ddd8075867a7f5b954ac96fa55d950cf07461868daf60d5c1dcedcaf5f420c777de035afe22981a55db9f898dd92b56b07d0bed55c7ecef15e6951275a2e4eb35b039323de2eaf77e7f2543723c29e5c7d1bcd497ec821ad2b27491402afcfaec07e50cb17ebef07a09b81045c027ad925c8a880583b0f0db1fbb451049ca208137d17113c6a47003f5e55a83d2761bdab32b987e2743007b55d7f4b3b098e02ebcf05d30c9e62f4f463c2d8cda82feec9ea1458c0686d6387d1bda592cd4744cce142a19e0af4301e604eb992371659eb1743c21817c6ba6dd21354b9b1705214e846aeb75b3e65e418aa538873306de2dbc5da62bae8cc98cd5ba50b8d73e3051d2f1c4953eff55d26caa4ecf403025302e92fb2917154912d60d2f55668df6a9cf0b51615d42db840792c14385a254408c127c2b67c64298da5b4289cc13fb16fd8c5e671e9263c6c634a6c5a34816f941f93dc8a997463d8f5e91fa8167d05a40c1631701a099a0ee93d240c7dee70294748cdc10998438bd19c7788c006a8669687cdc577477a839264179fd28fba3b6013c6a8e294133f076164b74143aab6afaa5a5ff510a29ddee392fd212410164dc0aca9adcc02045cb81731cae17ccf8b6a0190cf4ac78052648c0cce87406dd23a467c7396b79403743a8f1ed78cd0355ca4a18001c4ebf263d70a3eaa193f73ef30e4b635a3521b959fe09c0de1b8c1ffe1ae74a1ab89078977513ff2c22a57e412a54bc856a944a2f501fdb1d43c9d825faaeefae3235cc2270ce4a11727ebca5013d0782005d0d79108376b96e31b333e8165136ea056f5dc6ef03a61c858079e465e9665e48d52bcf22693ff23048d301cc0fbf29d452c0d884f58212e706061b05fe2d49c444666a7d94ca4c20a46efccef8b96f23e2faf517e45c7d51f5a327fd51559ff8cf2f5ead2d774a89d2af2e3b7267f6d83f0fd03061adfde81cbbe547ebba0181f926cc43142a230c9b00d2ef77315f3a3d54f22d480a86839c1f2cd0d502c5e4a4d00cb7242eba11c5585741d03813c00d00b32f14311dfc2f1fc0b392680df81360e5963dcd56acdfa51d18c1da3559afe2e618e72b43b9f19c76858b8b90838b759ccebfdf5c1f168d44ae2e3605aba29b290705d8b26360a72355542555bb625047980c968ef3ff744410508ca274767575a0e9042ba6ea59bc03128795a27bfce2d19b82a227b07685569fe9d348a1afee185fe4824b65582bc8f7bf053c8a032341da8c508b40e145efbe5ddb94cc89b29d4441db5414783f6a5178a36dfad128d8d7d4cded516cdb4e650eca356d6e7d905edeb7a93e9737d35d025d17e9c20fb5461446b73a164c61fbf55945d256104b609115c167ab00ca017645154b2b179194cc3abdb824aa7ec997e0bece6abb95cda6a45834b7547673353173ce06756877db720f1373882946e3055d826e30db73f4282ae51a2a7571e1e4b7be5e8fac53d2acec2ebdab9f459f4c7286bcbae295e8dc4f3e300ae3dc05e3986e3f4dab7b1e5b0787a6248081cc46f9f1c45c99a4e4754d752e1b420c735eb9f815b7626578c9e0d773384e30b794155ba7e69798fff2fc37030ae4c2dccb465617db2fe122500a30ce10106b8d16a5b1685c2597c23e6fbd648b06dcff02087d0eea5e566b2cc82304c5b87384bb3dbbe02e208d5dc0cfe7bc3188795048881c480ce0848c24610e83bb518eafa0c7f811787170eceb94fe1f619435192c8076b709ab89c09502273bd935e984f8fbcc055b0be8a1903828c7bc728da876512589d75b56d91703bf387cc915b3c9055c2d4863a2019a5cc7a5d2978f864472182ee440a3828b2fd834766b246cc6bc752c24762f38b9849097492ed26ff799fe368b7a73c7461063e505956809856ce9a9baef3be8f9bae961d010db5a3f56f7aa4487950475f2eadc4d7a31e7ae6fbcdca5ffabc5ad6b0384ab4a35a8e9d7880747986724171c0929e10b666a23c5d10c00ae36b59f8b5d9e21217dc118e28cd28771ed21661d549efeb4adb1e15e9a28b67ad42b5152c2dc990651bf67cfa5ce7badd78d213196b07729d8204bebd5b0261f2603d7df45ff6f40c66cf07f99ba2a337b4fbb885defe7dd647d6e05b40eeaf8c1357b60ff19c25cb1e8d953a21fc4a822f2f9947536f7fe6818010af95683b4bb2bc06016532a358c54a8c69fa150b5a06f1d5d5a4b973fe9241223f6145989b18bf6dd006319a5a949132d0cc0fe4af537212ceab2019581dcb0ea0037344b56affc45df40501a9bf9ad4241dad28a46a480c55e09a53d807ed6ec561e6fb898597b49e64ebe845143761ca22c7be22de47aeb66f82a8cd886c2f0ea79e4b85e7d3d3af1c7e52d964826a1d89fe548d0f831c5f395f25e186d655e3bb01b8d45922080537bd5aa34b54a053f92a882c0e34879671e2f86ae5baed44e540cdabaa129035867cd5c7848382952a6ed79dafea5e0a44aff2afaf8c116b9852b813db5d0be15ffc146cf94034ce29f85a674e0dc7b8c309c1dda81819d8253d7ef52f26004f7123c173059af2ddf70ecf4f7c55f5a0df157ad3c30823c7a90af129a85b79385fdd5d03111194d29937f04c43d990eb9e45c368b728d2d0bc4c6752acaf3d2c6dc21cec8aa8f549d1aace6388c80902ab98bcf1f64aa8d22d7e302a7dffa1378a772b528f2ac04e248fb9f678c07659c44178199d17e70c1d76c1f41848422eccbdc21ff7af7b7cbb0007add1f5d330d00cbe607ccf00bd4ad04745184045e1a4c531a9e59711c1c84c4324dc78f3d65e7581f93f720002a8cc55eae4390a16508fce0fa1fd3c66d60f03c0a7b20e0a5009c45a1069de39518caa3544783c59463861eaa171f2b000397d3dd85d00cec87dcd0e1b28be8b81afc634089f07990ca0df59cf5416237ee4d9faf145c6fccaaca71823a16e01c23db5174a5d7d16f9c305005006ce714e3bfddc45ae69e0c029e4338bab096837fe6f184c4c99982706af60277586340d760732ad98bd48ff63175b8c2bef308364efd55e0556ccc47c4b488e9b15cf94bbc585ed18806af5c4fd43cf8c6c5ee60427be1366c77415c5d067cce709c6e9622df8528a56c093b4193fc61141f224b1bb91a99cb53626dddb7d4eb8d31c92a04de28aad3d8fd5b650fb4b80d28b6aac46244f7374936304dca02720db9509773abe8ab9e09b7c2ebaaddab4861dd0b846d05cbc9ae9ffcf1b14b9d463b007d1a920ee857b1396cb00679449e9ef8e997bb2a5ba4e957bb6639a1878c37ea74a6c4fcdecf3a99379527affe77ebed7bfff1ed537601a4c6aa3128d75f40d5f86ae6d8238dd24369c82b8a3ee6a1728e939ad9a9a824905e6e39fe26b83f071923d5f6835335cd9d62e439511015ca43522516161e000b3dcb2c35932e47e4ce0f9391ff06d9a92fc1647b9125a34d342cd1d6940a78a25ed16cf9a5c53e42f472b1cfa6284a1f142cafee9ac9b22674214062870caf5eb9a4805b0aff17e7066dad10902047e3e7786e8101a5bd2d3be2e8bcd12caf2eb891459b9d1cbfc1ea6b535471e5ba778a1450bbe600ad217ebd32f7ac423442f68a634d2c60d150443667e8d59b3c601179903a90d4c62e15a61d5300d437afc51bc079ed20173ebeb9befddb8724da90ca8c88667cca6fde30ad32271a547de49e0ca6895a5e44d054163402f2acb03055c71e1d6d8fc1e5ca11c3197fad4b3d54eb9524be794343bb4b06a2e5e2620c35f8d4a290205a5d8a8136381a24a8014f0c57d73b619344136b6c7103a913d406ae801507f9480c5b2ecc435928c3cbad5851a0851a519612e93ee2e9c9a68edad16a09ae66b2349332004dd93480b6bcee4226bd2f76d80fc6fe7800cf05740546e5b739b6b71d92d27ac2980d25336566d790e6044572f01cb7405758269f064e3f7c7839a9bfe52dbcc0ba2ae8f55e4b68b4920ae2ceedc5415cc7402a129d86e1497094392d3e138491a69aeb176dbf64b540c99146bb7d8e0bad552e1d073deb613e9a9ca31ebafc3f2a2acfe9a01abdc586e5f0fe7b11b0638aabced2ae5e5b939e9d3af2ee99eac360beba6939483a59d5729413229f87a11761550d67a71386369507c8c6ae490c8122a466b78374a602ec809334c9e064ba5196a1849fb279a84aa88b16e194cfb8a74747ee2330b07fbf098c2032f6f3e5e529dc9a9ad51b14aea54ee1fc430fa75065a8f5c0ce33e9879b0feba6abb72ddee4289780a3166cb365ba0d9d6aa5ca7e65134dc2269960450d1147322a6ce4c352c9c0d70a2c94decdec4b99207e837f067150864c593dc67be4e0227d858e67e32404d48e7afdb05eeb94883080137004c125bd6847c6838b38a7e02d4d019d003996014d8da0e565a77f2d54b91cbaab3a238be6e386fca505c171a55cd5191496f8ff1693a36958be4ae4d7328427c8d2d506d469cdf138c631cb28a0cece0c0c96af0fd0537ff7928b1cb72cd3ac86fe3bf652345263a21154f7174735d5f500c985ed0eb5f5638d28e204e3793b5b71610b6ca120a683621ce43145a6024484c294f8fd73ff4b8526c4274583529fe302dfeb23043eb2179b5d4c40cc556698308c09873542abe1f516705781773ad7ff0379d30e94ff31d3606f0d24ef52611959000064ee9ee60b09c9631e4714b4aea1f01dae2783c4016e7616f4bd42a31fbbdcb887624251e08d1aa950f6c8b993b87a1b4d43d8837b537a76f3f2250bf777f2c05f13eab37a9a797092aae84b3c4839daeac2d0cc2f8973af936f5cea1dc14ab43a9ec7e1b04e95ed5c0ebb5ff146967ffb7010e6b25b237795647e57b799d2a7d562c538e64c1031de50f0647b0711f28d77c63d7e78aec65a3fe3a94a8f64aceeb568178d84aa715516157b9dc725f610f7d83fc2cd199e71dcc57e170ec8571f1829eb8e818ecb06a6069ca32c4c5f0a61257c1f13cecbb569e7c971c2014db186db4ee4aeb95dd276728d8f175a9bb207684a6ebd07445bc15b9dea2856b959ae6b7a381b73d8b989021fdef785e7e1f409584d440dd869427a1a7dbd285d7317406159ad550208b4eddcffabd6a90f7a5e3f046c3ba4cc39f435f113ed3e54b6a59a5d4da43baa96b2320511d3e7b5739586ce4b9b4d5061aa5ee5e17a463c9a9db3921e4fe708d947d4983b43ea7e85ae58e4ffd899224fb83f904bce19ce386cd4c8493da86ac0f0923e7958c17dc2b34f0822c07561b8e73a4c7d7d29d43415514095e402a47180ab1b0dc808e72c43b303ebc301dc3abb72821c063336ea003b75d46190856370f09e985a0cc988e79efe16dd73391531540b79d67f37f157e24b2f402b6e1d45088fe88574c2d077419d1602c87e727dbda5726c5cec2f76c3e8d68dc04f2ac0fc84f2f4c580710cbb0ae04945ad3b5526b2dac344b15b0f0e878ac0056cad88b52abadf65940345c2966607f065c307f4259a596d217e879d325e6aad73d22fa5b96a7e6c0b61f9764ca3f88748e5ab51f2ea50b5d45c0281dc40de3474ed9a2c12b4ddee5fa8177fbb1e92f076d19681a7ef7f50dfc65bb29593334de6524e05be59d192fd7e190b1209845944d99701295a6e61776faf080ef1e95dfdb4bfe1b45109d32b0da18ec1e3d678362d78f95ec6d6e11d1de96202010f39581100e5e99b9f0d7215e5c2710034596ff40ddc22f3b95f427e8bae4f56f52ea7f16fdd54b2aa3d3cf9ac2c4365b5618701039cd6be4c2bbdb2e26db2980781538708ce2a97260ff4e28fd0bd2191e0d5f0a4f8e53d559171ff3856008e83b734005251741fb871f52d38434feda02b7f76f540fe5240e7081279944e1069884fe5b61906dd5cb550410eccf64529d1c38178a83c697d2e457cbe329cd5a55ca0cbd6804045e27e3f9ea787a0a1e736b54e343e24e345d7b52fe2400188a8a25233e104480f9372c90631b4bc23d088e8ffda4998b85e62bc1db74818a26ba832be4a4cc230136435baadfc749594dfdffeebfb886bc7d65109b7d8f22d793c4182dc595e29d3d782e848da09d3b9884f579e3d0e2514ea9ff20c0ab07fb29044e6118c032e74c57e34b005f655fb9ea44a7632facd735ddd019b77019c22ceec4020f38f2099805fce50e824291139699df9bdce3648d2c62303c385473082b1f7beac877c3440cdd1ff5fb56a2171bcf1cff5a3a2dc2ceb81ead6370064757f2f723d4367d74cfb844bc70a30a0257117921e1111539a9be4723567109da9835782a9f20bbb806b9170756af646177f4f03dea0df36b690460d08af997d0e9444485bc455dd903f319cf5662de26260cc4c72acb8ce324b2da208172429a495db93770a700c29f2b4f0987622b3e2d9f38ff5d1c772faa0ca58564269bd738bd86084de7bca50cec88e40a48b59a6958a775d1f44276405fceeb1a01ead68d1669f0cf8a00a549cb15c822f0abb440a1d3c6c7fec76bad23c3378bd828350a4004d5b36ef71c3fb69a6a3474f7d634fbe4b0f6e9d37e79e19d8a68da8fabb7058a9789c328b49d69a16340ed8945f6616591e772dd6b7ba7966e000e541156d1e0414b210d0585a5f00e02d5df36c52a0e4695964d2e1de622a1c512ac79d46b6268913cda3940bfd871f242a44958c49a21172ce5d4b4e4c867e7e5baf292ce38fb3de3a9656d235fbd4e8ef7286a18c48886756a61488d57aacf620939e2d7eb9020c987711ddb4d5a5d49cda39c7950f87a51370afc44be4afe17974d0cc398258b249e77de998242612684d80560295086a0bc019d4bce5ff4f79ad27ba158b0794e4c4ea955662b7cb191b8d5c3664172ced66904900c4a3da49175eecc477f0ad48e1defc5b86e32419d9627572d11b600e6e8372dcff9b5bb782c75ad76ffda84a4c98a80fdd53a260b7d64180bcece3e2ac3a0ab5d33fdf194450c2570dc11212063ab69c4125d2fe491a1d9ba7e6205e9be5fcf033581f800621a1003b7e2022585925f6fe8315fe9b518ccf2c2430c570020afa228322b66d9c8e439b3889b7537b08d3a96a92ecf2defbab41de674d2bcad0f1213949b572fb0262a93192150660cd2a20a1620b3d4f964c5a05cf875628ec36a321b4cc922f40db21c5a4460545dc1491e63138f6bc0488e2b3a905ea35b79d929f973c80133f9ab4c56b39173925668399984271c3fa5b91dddb061284d13d6f93916807c7c5274679aa560f7a3bd7af7211b67589998736c1589905d4e9a168b0b8195efe5b62ca4cb3d7adf4cbbed0f1fcd73d49659fb2ca40e1b531503690274c7a4d12f692ef2804d0fc4dad4fe5e325518dbc6e4b2b0330c5a4af457b8ab6b7500e8426ea4e598189fdac0fe21f5394316170d4f0c0330e2b6e9fd910550d89c5b5f4207592f9f8a00ee289e726b2d29f83064677b9ce1c1741ec4767967f4977824f0fb62a95f0c396c5085bd1aa307b4afda449f432224ba5796eff092c5adc3abe8d58c630d552b8116eb0c4f1e03a666a2e128280a433d64549a38933acc6c8b3f7a84018378e4b9499cfe308224c0c0d38062f604bcef9d569403cdbbaddfa2e22d1d54534adf595d892d69db0a32e64ab79bc9b41c872159e8a1dd147154f920c4e22dfd9fde17ae53d451e26121634d893992e26349ea94414078451c8ed65bdd651d4b406d73d5ef57bf0f1356d058eecf599dd1ee0b0f1b099de643b9408b509e5d237fde778846a8eb059d5f1644182e7562864037543ab4a9e62391435601f2cad7def6cd941ae629f22704bf0d6359d6ce1e02b457905fca60ae27831c9a8797d37820fda9ea32104ff18d04f0390b27675b9fe111ea65389d1365f5e42d354b777ec056cedcc7f2e2bf19aee120474bbd00c6e90fc55e509aed6fabc5be1342b12ae9b94e16b1702a295bb1db8a34b3161e3cafea8301f55e5fa87e999cc78ce56258d33bb27612a4721bf97f839cfee17d9908dc4c837b158979fa36ba1d77246b545cd820401f2e765e3751e0095217d1d60497bf7892253a3e4330c024dac4ef537df0daa830c79e0a5ddd8da7593d05bbd826dd6f834e90e2231b3568083c52981ece22ccf2cfd04ebce6a22ff3c72d96d82c227029c7ee78e1f8994f021a886477ce086866946d12ccb94edff8d6f44261dde5558c6bb7cc26122f3c7adecde4d7dc645a151a8ab37fe08ca05c842aab2c0b5e8e7eebed6f3b77d21f06573308fa96e46946163bc9a26a130d4b5b6f58aa6437982479dcbb15460bed2a7a8dfec467a91607da1764c929730a09ae1847be508ba8befd296322664ebaf225bd6819a34fb03fc969908f094646d80067d71056750552bf82ceac6fb88b1b1bb55c24eb335a423941eee558dc617e5112756f75aa469863b2644afaccb273bea436795af8e20f0ce0e86d61c5fa80823efe1b7a29220756f8c60f59008f3b1f6d36e8f88781496348b12197b8053c1609052d2bfd908a155f9b4cf4307791d3a78b371ac421eaac69ff7981682f2157c82fdb82291b0a5500add78e0b24f282e84e22bf9c35ed5ead2a7b66cabb2312b977ef764e071c1798a9971d97b94656e0bfd365e0c18bb89b70f4f6e08a015c057c1dbc728426295b06538a011498308809e5d7eb5ee034e8c4af5e54d121f9778f50bb40e27d899570d7962a4c2b2af2586ba907f4e312348396334b5b669d52ee03bd6316742883174e712640272283b633fadb1171a7750b0089c0f59c9c4945bfbc108aad47b8914e74b647508d3354585e4c12983a86646b0fb7b962e605ce10b6950049eee364c816121fba2b6ba1fabdda18502c6357bb314b1d45b677fc6593ed214b21906c1148891ba831e117bedd00a608209d8e30f50bdbf7dd8de1ae8d4304a83cb083fe1a55ce9c1c2665af0930a159fc8c7c884aa4c6ab8b3c3484daa5f1969cb039ef231b50b922fe04e7c8a950e2f58c0a73985fd249ae4034b188a4a55b03bc8557b797fd8a92fb03ac11f7ae23b3e0b25a31a85814fb4dcb1c4f4709fca56348df66419cba2ac174dd4699817e83de845781ea14bf064e66d2649e02c81be63e9cc07d9a99050ceb05281157d948330481886fa0fe5180bbb31aab1b7614e62513c27303ed46f10a8932d78d9f10db569c6fe10d015892f0198bb18dd0649dd74b5b26a4530d308ce30966128b2cdcbac5f2374ffbec8d4b1022fa64466a1bf7f2723ca1ff63dd9702ac3ad5b12c935ce3929d3085c57320828dcc84437a993052ac557a44f6972ff6b3fb863a650528853392765d1f511288e0447e6e868129d22c17154a2d4133653196f0b89690a644d80b1ca27500c7ba6a4377eb31590e0974cf3d2411f9f591f585884ec3316c8616b9f753021bde65539eace988c9886a10b868af88554cf11574ab61672d35e4bbf930a91db9229dd09c4924b5147685c9507d71e5e932083491dc704ef46841300005720d61aaeba714d47bb22a46bc317133aebfe3202dd53e6e8e42c429a90d0e15bb4fa7115b97dad808d0c9548ca09aee47ca553a036be8d3e78fcf05519c1ae66526ba4f9b47721c5a51a5c482236ad43440707523810039fa21267ddcd38004a8817cd4f8287f1f01e20888c7348fbbafc31d352e33aeddbc6f17bcbf609be74f4b9f65cba30d629067edc8165c2581c83066b21c45a7abc93665fd204c00e728bc36e781a85ac913b34075168d17f11cc50d12051406071009a3467ebd281765cd232b2ba31d968cb3f875a3254acaa16fe29000ec465b5d428398c8e07c4cd65e581376515cff57081fe28d0627132144a056197fa34796959ffc413461c8c526e1aace32b7d40a2d55ca7181442e88295b43caea10169cb60bb495645382fd9ad6466fd0d382908bc91ad89510dfd3430f931fe71ccfa19a8c8b1a9afd6d61e9338eb133c20436a106b8f2ca0c442e1964782a119a5899a2a60aecc2180429ad76c4459a1c8df09cda686e7fad0423f50e9ec2be6eadf039babc5e0d9480d3f5bbeb24311dc2e28a0a89efd657bf57bbc84ed7c2cd9d447e18d5366114d4e7e74cccd71ce4767dff46f062bd705a020be2921f0df3e5cdcba882569ed39660307fa1ef9600853100a2f8a91c543ceb720194e7df62d505789cd811108815431cb8afb1faca01e732e0c81f923901bcb24737f7cf337306c0145718cd5e9a87c7837aebca63057eb86f6d8688c01af5ae3b50c58cd26e3793051e2e24f38f49e5038bebf429203ac0696d196973ef94ae22c2fc3cd409b7a1af410b6a75399255a01cbe82ecc38282fae88aea51e21e5cf5b5024730865e07f43b7d392a248587403fcdddef280c7d52c26737465282f0466470ca1853d42f1b09d4e0971f314bbdc42c246407d148572f6bad0a2a99b8aae3947ae32c1620a77b6f814833f09781bf092fa7decf5d0e1c5e0557e61ccf280f19e7c1d407475342cb980cdf27e6a48789cc940ca21942c4417531ae6ce97dd792cb33e4c0869c30a190a8063cfeb3201d89472075269a5873c21708069101a2df33c1dd8724ee8093ad5db20ac195bcfa3cddad855f7e72bc20b7685593c40768d1f9ec18a8788c8940f419b980bd3baf2f6582ad62e1bf5e158395fb9f7e72120c0ea7c598ee31bbe967a450d118416b0844e84725cb5919898fc234da8fdd01328ff0d8f2a4a688f38c017cf17a29e52df8e56efeaac180b79140dadfa22d07efe457ac2e5362aee6435184cdf0967c716dc426c2f2a266b8180d26185176cab95ad9d47de8b8d6360146cf5171d08c2fb644c385cd1617df0f25aa39054166dd91d01955aff02af59c213a30e864e8d9ed91e5bc034045b126f289f62f19d2c8b75550eb0877c6160b968e6ad2b406a7c9f6d196de1effae5701eb1c19cd6910d67f893a520cb2bbc6b49b039be282744d0d072870872d8ae36ac20570f819c0ad844faaf3efb1975914d331dbf90046396c4fd9a18bc65656b93f5f115f18da87668ff5a6274dac9fb71cb28adeeb70e8592e5b0aff17828c6f6fc280e6e2bdafc13b40a4c49432e6f70c6d72358b0c99dc5452cf869101315a352252cd3f388b24ddb2606bede44ae71f17e69eb19a8ee57175664a237891533f744d8b801298493fd7acc70003cb01154c62f9ebc30e15a6f15c968740659c50b29378fbadbd2c70345970aef4dc089f60060d141140ce24b00ee91b214d75a341930ec2e8b264c9f986d064c3df2cc6bff99244d03d26188be8013c3a82d3c07358da9675fa7223237cdec4901f56057cba593c1ab9980b739f4cd9b0c000a637391357b2ae84dcbd6a500973fa69de41dcb00ea5b2b04993a5bbf82ce0544d74e19b3a364ac644ebf9214751aeebe771b639bb04e1f2b0ec740ad11da56cd1fc3a403ecad342d77900c67eb2ba9bf9353000c2184c5709c2c0a6e06b91c708825ee241479ddfcda511a80d3e06a6c0347ee795d34591b1cf3a4a87ceefc7b53f69e1c88bcb5c7b2ccd06cae88efd826769175b98dcc45b5e024cd25869391a6f4d927514c162ee83c9867397155c9bb1d6395d154a389c389020b3f1261eb239d26ef9baaa0e5e08dd877d4227af215dcdba9e7509de84d80eeac94f3d32c8b1c186e1dfa51a30b0b593c53403b7054889cda74f8c6ea2a4738a39be530016c312809be4916ff70a6144b12061c8e60a4f747a2ef25661b41536df1acfd16250ac297304638503e085d43cb090c1d6d7ea889098548d078152578ae4981aaa027cc43e161ca764de55aff6115c602e8dbb2957efb918be09a6bc090f547ea2a5077ef2645ddff671cbf5352cee8817ca51ab3e8eaec63e7ab9b4f4fe0738a3340dc6c50e8029da3a59549f7606b20c30ca2e3a41580277083ffb3b3b0c2776e447356dd5852fae2bef399a8354ce4066a219114fe26d1fa177c59ece637dac5b6b5a9dfe83a5d614cf8a3d28792f82ae5e4bf70b5b495a69c0dcc55677e2c5835d70578a92c5689690ae98c760d26e6a36163bc906d0d358bc7cc6e23e6007f9803dd2023be12922246aecfd2624f2808349ffbb8cdb547e70798658fbeb00202f5c611be276cfd0bdeeef482217b1e68b23a9954e1cd91847c88d00237ed8d89a33ccb432f930d2c30796d595c98a04a9dbae88127d784dcaf92edaed414961471307216d4173124988793c1ff29b04a7b2c6fc82473f96c13621e9b9f9f5d6fab7dd671abbb86646d709bc3a62ba467dfafe321cf2b59ffe540fdf5bb9f7996f25ae1615740386c02c885f8d6086c01c73e7f1e46a09f0c10163c579d80b150557bee3ec4169780716d001cf25d587fcdadb15c7c1238ab18b5d732bebbd728486e8c449bb5958dcde6068c229fa4a5f1d0b37cfc8e93892c861a93a16b67f4b6d629c253cfc12116912a7528af695f15f0630dcd22dd5aeadaaa55ab55db534abb669bb66e93665d12cdd154e2e8c907aa6f2a5ccb2008a3a05a8ec893bc70e950aa265ec070ea7231fb8511d3c179222652b2602b00be6365565fe137537ec676ffc1b60f2417830c16a414f57dc2fcc9a5c22ac88649b3997645eb3f846eb852d45480ba131efe360c1ee63b8d7b62f262bc24a22dfd3110d408537d00e7742a11eef2288c35e5887de6d9453f1dc4abe3c257fae8afc5f2715067ff6e6226c11ebfc1801d609f13608380bd1b8f871481a2f7d752cf2e36f70daa81fbaa8d9e9c3aafaa5dc21c711215cb2ae583fd5ee254251854dd3169d5accedc2dc7606e51b9102d99677733afcd824a9c046d195de13547cfdee18d494a8bf5402e2c95ee1bf0faa8777fc7a7d81f33ff43cccaec1455fb2b0b9c64d20447cbe852811d3b54a1d1b6c3a18f35ef52dbf0cfab66a96db78b67f1b01174a0154dfa3c5526b376ba05e0b33de9e70735da16c1a67dbe0f55b655aff146843936fb12713e7d6529acb6649efaf2625c0987d242fb8401b5202c790c7e9f030705cc48a07566d6e3a4d10b578da4dde64b75c6ae1a11bc4a71e5cdf31136db81ece6b91a3530eb3249a78003edd090bcee91102ea4ee20020e73ac92a7af10a348c9161e6ce2a6cb848e560f7b2a36d8820329b916c87e27d456c04aa38794014c7e0c75f25f0eaca91b8e4ba23074c0a461a9b7ea090a7daba4344c0a4e714db56859c6f18c8efcda4250626ba3587fd601dc65d140a31a8addd42513aaaedbeb4b394d827d1e4c23911d04a646e37125b4c9da9f14f84422006b241cfa89c94bda674ac2e79597ec0002d8e5a0a8ec5c7d4df42bf1b8dcb70815beb1a5b7238833864d7b3f9a9d242a5690b72909ff7eeebf0b224595a4de046d72b227216019d590348261bd3b8c101e6d3321384c01b74154997f4a189fc6b89f05c47b7895869eca6ed9c07ea2fe4f745b07eea9cc8a21de7ed59a2297d56801edcd2a5d4b42d053f94b0898f2f91a4ceab0e2748756356c3023d9b9abf66011f1f86e40907ed6955ca1e46107c59d250ee957969a3bb2bdad0d9c88bc88730abe86ed200483e25619224251c2feba259ee36d4c41bbaee398d4112525eb4690385c61a06925486880d324b59936a14334933fd466e597842d4bacd14695d121480a8ac5481d9df785b5b745e1d5be9277e0adcebf6e892c064e84c43e7682c952f16832fe02d3d04100e03b2c7c30072411cf36760c4600609f700f23a98761408ae64d0fd6cf815f825c991e9a408b03771b6dafaf14501280abf999eb97fe92284eba46f61f0050556ab0b0f0b00ee19def9c384f251d19fae21365943c8d5760303da6687bcc79ed76425a600a7a4d47b6bfa053c0ee1df28808f8058984be1171e603a551d0327c4d4f900d4d194222354de5c9740f916e0af29bef08b4991d1355bdef8eab4e56e11d8009fb6989c34dfc26f54b5bfc4c6fed3a818172ee6fe4b3f43cce1f1460e48dacf8c168011d23926ac62a233cf22ccac05846883eab611c481808d738110c3bcd33fa009ca4b9e139320fac914faa2662163814b742830c2a4f6624fb293eaa2512e3d44e184a28268138fefc97969e8ac9e1ca263316d0bfaef8dcf16431be1e2611867e5f4c2859a99d4d21c4d245aaccaa80ef5f3f8e03b7e03712f3df87e09d051fa2e8cd23b3d7bf290170d84fd91ccf2d95a2f32a0266046acb2a4f8e0c9bf55bd5e61cea116aca07d348e9b3c25b221cb96212c43b2482e4837c0cb821b81b8c43a4252a0b85d6aa966d0b5a63a338bfc41a1cf2a26f002795fa356f4b192466d64114082d169d90253c1bc0749e15c8394f8313052a44f22430f0813a7850f1635f2bd5fcfa382bbbeb39b690bd3eea64bca28ab7e73eab9bc5f39587cb0c054b8e2e3a0ac2afadda565b8661c45fde8cd5d10927897a67369b99bdbfbaf56404afb408c7c9d37774f2a4ecaaab2e9d19bfa2ed2e1e0a78486cab242d8a3bb3675c80cdc820e293862c7689c1429e98b1ee6244aea099588123c48f989839dba2ec3cff82dcf4e7f2eaa2e9d15ce2d8ab4dca4c7bc311acbc40579b4669c0c58d5773746104e1c40019fd559e55314092e44ea34a314514069db5a891e30d834d8f6d17951b4eaac7ada193c18463bb6ddc81243adf9fa6594162639a4985b4966ea64f84a9ff8735f20e9bd2284ba0481814eefcdd99ac832f3bbe26684e50f5a1b7c798bc321bea86bcb797e5df7c6ec237224f81266603b938bdebaad59fe74665daad944e63cbb35d36f26fe4b98a8bfc388231e8a5f68c73108cf0e2cec646aa23fa8e9a618459e66fb26099636dfb7e77e3de972d276922c67f6ceab3dda434c58591f9e9cdad48641a5dc79fbd237f1f77508b4f7ed34d883229f2b1b5dbf992cc0276542f599efe53ee119a281c061561c135efaa8437b4a646a6bfebcd30df0faabcbcd7616049d4498aa02658ba389defa5c29a7d068f51277e9e3cc8b3488efe26649682da6bf9f4e3aae1173ec1da63994f03af378434bdf5dd19028039cf250a16ffa433903d39344c502661a94f4f316b631660444dd281314d9e4b9b26a88fad1f910b5411abd79ee89a258f25c711ca209139e5d630777b9f3995c1ee6d853f180dea723300306b0fcd4c687db76b90876125d81d4d20d61f45e73130d1f52d80619389f254318641ff4eccf557bf7a84c52f9c63222b41b850ba3546b8a8966f2e35058c830f86c86c202713c652a4d128f8f7361b4002d4a0b43d058c2ba33639d2ba783b87c35b6b98de4f30ad948b94c19cb30f578867fec6ce7f6b7d943f33f0b850568f85ecb322e1c4f549b02983e4efc37abb01e6b8e22bfd9ae682ebf1714b534661bb3cf6dd43bb8833ce340da85c2e31ba44cd03ce98d920b18d2625360ed3ae1416fd4705d5818053d26314e00706816f063aaffac81c2a840e6f29c4c047ab879e6cbdc7ada01552da5d686f3d55784558b4e93cc436c19aa4bf1fcc20dfb3e809f12de99dd048b9753d216fa53f2facddf6e9c781413041e1492d09c4ef03ba364d5437ef185af634ae9caa1264d7d54fda254ba87d15d24b6df8a1095fa02d62d2f89ecf39f127e861f4182c426b36aec5f29e6b5f99bf7efd5058a53994993753761c8ce800fc1c1a5b655ce2447f03b3f2792578c8476787a816d49c2c4e19c8cece6ea827b1bed4fc85102d5c422ca20554fa46dad3f0547811a0f2f82e6baa38b71849b959e9879a106d02dc320052f884d395f243a26c49b4cfaf0b21d8d34c51fc86951d9b47b9216741b41014e9bcf27cc05c2b591e41b9d5d97b5f9f3885f9d13243a48b9285694f8730426990bb19c7f901ea8effdfafe5e9b7279e22244dd3e207d5b0e3ac109c1802541522509e5b9fd371d4af0ec962494472e6535718971efe16e4659c6fa42f78da6dc61e60aaf66f211007f8504e4c49da82b10cbd0b3cc0e0865d83331f60232deeda4608a3b48f11d8baef4897327e2c016e13680cf3b1d0483db380d5eb9688a8edc0716c5a8c92d819bd3cbb59a68fce9e4d20dd85001a9e21069a87d7b0f0184a19d0b7293e0a055c447dd5b1d2bfb6986476d9fb56ed25bba7d5332a26a30e78567aba061fd0bd2cc6a2687fb819286739e9341fef4f08d3cc32db0d8be6130b7bcfa9d1ceee2438c61576c794635c57bdb8132053e7c6567c20e4471164286a0d989b390e72f4f08654582d98f48bdf620abb8f3b05df9ef470f48b47a07a8f230a24562ca5fbaf9b228056ccc1fedce1be56171e873220b751c8611366ca8e3a1f93c33b467034c9074044ce3c300a28fb594ae44cf003fc3a01e1fd953f1fdf3eea679896a4da75c75cad2dd7827922b19f72a68a6e376f6cda897e060aa6b6d41d11563a39a90512abcb1be24518853d6d2819dc63e5d76b2c7991b4286a60352639304ad2c80d6e88ec2717e108d9e5179bcbcb8915ea5acb137f6345f435c8c0a003c45b345d8b2c88c2ac2e804034ee5f3e80d5e2cf5ac9c3cf4f30d8e7de97ee1651373a9081fbc13f0a6ea98b77aeda56bc7f9345aa7ee16b36c2a0af27bba418b25a1267d66adda69802f7c7ae51e247faa6e0ec8567303afc6f2b9ccf1b63534733f65bd8da31a995f42018de28972976268177298232bc02208c92c2edb0487b4fdd9a04b83291bc55b6704e4ad89d669d72b72e087cac6f22dfb171021635ff34cd7b6a0b72d971d3920a0aa23ebb545acfcdf03075f809e192af0090852d0bbe3bff22416a4f25d0bdb6cd51e9901b7d2936b651d93e9c08b509abfe5d7226c45ed77514dff066b5c3cb7d77aa949c7ce50f1f960ab5f3df69cb51fb9059a344289fbfd82b34c7e36ac1d06c6706e6c325b1f965d4dd395247416f834cea05f4438e9536cc403ddabf86086eb7f4440e7ca480f109695b4f1cbc9b0d2abc04b825157836e25a7f34b4646208d56486027fd444a0186deb5fd791c155c6b01754215d882daf4f73cca77e4b015ca6d8b3f18d9657421b81636c91813f7b355972842bd04df74361dd9dc913e0a20e9eb2c482c88c97c315ea9713723caeb2cc1274b4754ecb3ee2dab3ba23d8108231f656e4f1b538b25225398fe82a73a614a36e43c8e4fc5c4bc9ee3af621430f1765368d026e93ec0f4c9c358ab27e8718163c11a38ca72585e0a00278962b3671b2e5ce71b37200e9faf463b1ae6a9fed3e2e1db55930627f1d289244ed74539a1b88f39b11358adfd2e35d0f17e590f0850eda6b22cb7561c9e49aec1c5b9585150528b5e3d594d9bb52f62223a77cf61261b01b90288ff3c05a0a87b56228c741dec86a3b7fa44cff4b8755b3a3415cd742b1b17a0c1224fb2faa9529556d191f92560729a93586a0f73a5afcbd0607cd013fdc6440fd231df6b62d234594834282f54a2d65e8095cff8a7825acfec098bd8c78112336288ab63f3011ce758374cd252e089ac4c69a7ec285dcd4d228fe530e0302f03ddaeee20a085122b746292574baf34afd1ad3b5ea14483177f2c876910499055b18487730d5b7276910a2ccf94d7422ab18493e7302450c3e4a69ea59c0310037c03f205ca191a2f22c7f47632fdb32180f6ecab5f8fe0a2a4a33239e9da11a811fa617c402ec207eeb8b267569ed4ca92c717d5759b20f314b60ab7c47156744e1395175bdd545be579fcbf841a0e76d8de5215b672d85ed2ede8afaab9ce6832ff6675151421c3c4d293f326191718c306514916c6c1f8e2fd72387b4a18809adce8d5b0fb65aa041edd322002c222dcb62e60b87513e13250099cdb342ca3ecf005488e7b8f24f309d2f111c0da192817549de3a8acabbbc6e2641c1c78ca42337408b6e3bf15e2e65f5d0a458134d317e25e1a9a3198e13567a7749dbfb952d5c1db7221ca6fded8be18f6cbe3110b70c9fa01ee78f74b74fa0d1fa0e9967bf1919f3ab8e2f8a5be225bcee9cd0df5a6eb9bdc5448539afed8458f944d55ce20be40909ea5d4a4a6155127976cbe16692bc305d3c3fd1e73c80096692ae64e00fe660657f729cee370f1bfd9aac0ab642ce3fb789fabef5f069a3cb9cf4929e67a7e2a7f9a4f3036c74428c1de9eef867d87a09e8c1fb8c20be004d9444ae03e2fbf9281d702735d658b5525c1afe4a20f083bc9be2f0d2e175bf22e070d3627951fc5b335bc4d34a46e7f8f6da193e8dd6219c04d946d788de1b65394dd4a5a04648809d0b746c2b5aae8a6ae87b4778f6933f77e1931dd8f241eac7429d2bb05d252cef7dca4c452670aa617558ded6b8d4c6c5aae0c1151130e09c2c3040bb52040c58d5f1aff96847189b7863084aaa95497b058cb9c20678f2f66d9ceb8e573c086c7f9abde1ea6689ff76186113dbff09f621124075a5b8e0b9878c6ba8b24c2c16886755a1768aceed1034f6d455b04294a874af654f3073bd32d7920750d15a0dc0f16da2bf73628b0e9dce9c8000077bc36cb661385c2d7a040ad7b8f9a709e8a227c35aa44fbfaff078722c802bb1a1f90c9405754978d24cd0bfa563d09d7a8577f6b781b94239e658574bea6ba0c1ff5049304666ba1c19385a0f4dd3555d7b42522e72bb0020a7196c936c8502163a9eab288153e96abbb8737a17aaebcf94e0bbaf3dc077bb5726d159de5bf276fa003cb70fd8d408752399b4cbac7cd58084673e1935291b8cc8b73c07c3dddd8663c53d037e685fd7fba9b44d796a169c8fc444b34e70732c7d397f82ccdbb5e3bcd9594f6be5b63ec7951778f34e8c6c5d2cc1ce0cd6ad86e0743a96af89a81421dd57ee02050eb880f230fd434b71edbf2ce9daf5bf7ae209a9fc48871989410311428de71d6203b10ff443533e6cf4fbf16ed777f642fb4fa1533af78e8f28a03c51b6047ab42837cf443aeb8aea0f900e27298bb90da6ffe375c9406b870e75551035d4663f55c54531ea53fdfab38a5f5d86d1d8d2b7b4f2154dc7c7f6cba2e67249f580193be9d0e5f4d6c1a050acf4bb856305e15251db9592203b7d8bc5740b9a19465d468472c3995e0623b350cdc0120ac6104a8dc2cbafc7e11a5f767450a98c909253d3e0163003b8f7b567507636feb377338e8ffa24f486b6d93b6c9266413b2f7967b07850b4d0b590bafa24a8246d945db036559e8d8b5bd1cb92bcd631c334f9fe46d4e74ec55445dc5f2c857128b0a8140f75eac4d202b13babd6c9777fdba92b4cbf5e9d6c64cd96bcd44d7eed5eefcd50e13b5e9a26da6466deb60d6e47491769192e9a688ae1da6a7a972438455ae24b7de77739a735e3c679d5eaabf598de97622d1a41dbb202ba3f209cfd8ad83f9f64ef64c255bb9575dc91e8964b784bbab8233cbf2a8759a269a26344dbb98e40e7b8e9e11dd893c656d73f9c019f3b7bb94e40ed3b2f9ee4a82dd631aeeae2419bb767a0d6bef348a67a68baecd8bf4ae776094beae21faa46d77ca4cb7697a15e1f9cb07bec09eb281481bcad691b210164fb4130dcf8c3e3f61d88447c77090f2c433ef48a3cf93135cba171d833ce24b8c31f64e9e8ebd26795e7b26c221286e878304d2b0687a86bbde91b1a73dcee92290a64dc7de51d02b1b031acd7cb797a77c439047aff20a7dc246a34f9bccf7a28b6e5defc8938e3cfdc9479daad6a75f57c01932c90dd58f6c8c452bbc30eca0cdc6805e475b0773a6bd6a176d77eb48f98eb68e94a7576d93794558d6357c7f35ed322f6bb824fa8c16d2b9a51adaa96b983a3d4d1e6da13f3b458789d847dbdb709072085f57c017d8efd65d19c3b6eba0cd6259b72a5a92a2e68b2a50081d8aaa5c8b76918f93940fd2d82fe65d5fb8539e2b793ecac8f3de7341000fa878dccb5d6e1df9b1cc88855ac9d0ab550be9247410b8d349803b425ac87b17dc0177c015401bb84307d5a75a5191542baa4ff54903acf83d21c7c5051c1714ae24ae0fb2c20b63840f6802d4ab0af735071f2c4244c7878e1a1f244282e0f0c082494f911f3a363a92f8f008e981f38385911e184b260f08694c4f911f3ad246ea48e2c32324f688383f5818e9d9f9a124c9101ed8a3c98f91fc8adcc642bc5f45ee7b2eb8194388fc2e8568eebd6deba44c631965941104e3b978af707ab1a9092ad598725fe6c6d71378e8215706d902846ea8b56de2ec9b394fcd29a594d463a434863a916994336ef1ee902fc78d9a53a4a9e0dca9f58aef750c849889e6de895c49ae2b2e9fb6b9ae689b2bc995a4fa514951e9d09c4a0a9a53fda87e18b9d7c8ed77f76a0edae40ec76ba205da5c096a8b765902be2b75e36bce127ccb4fd950497d32e6230c427d0c58c28026997a23314391e975c6f9256adcdc81be7c0e98a3ac6ffc9e0bd8cdc3535bddbafa17f14ced539f708d3e05a71258ee80b437a8b7fc00cc18bdccabaf4e5997f6c6f48a3f00f3c3dd8d49e12efec5537846ce34114ac02c315502e69634987f5da297a12e4f23f370e90332bf2b81e5876f1de2921230c77f40667825309afcf007e08d3eb428ae415de68079ceb4056113189a145b00020c966ef6e47953e1e4e4f92e45e6485d1879daa44faef1824adecbf55ae6df0f4b9eaf459eef4f4224ed1261929a6521fa797a59d3f3517933e769c30c4e31f46d3375e4f9ae8a3fdd327bb6cbe348b96bdafdee7b795364328f4bf4f28d4573f36d63c9cc5c7164d29ccdf3550d76ca909f1208599327eeb43c3fdb06b6cc9348f73e2679be8a2118733e6eb781335cf05e409f6f163c97eab3af77180ad536f171d4411bf55aa8c7cd6ed42f8c6a1bf1bb3032658da0799e26aa9ae834c5e9cf524cc5387ba8be8e44979927e3c9987f9f1dfb8de9847008f5b1c4aeff5a62ca49fce41fa4c39472bed26dfec6d4a7f832c2b332f2b9984a6099c6d76e1244129c0199dc15d293d179bafc8533cb1c5a9152227cf36569e3b92f94d11d85d112f10884b8517ca3893773ac216b6a9a6a8a1ac17c1541e8d1568626cbd305641aed023005fb0e587cb0e7abd2c4589658092c431a0ac22822cf746863229d2fb6f45cc9486f36758a29757acadab84067a4151b3e64914516f09a79864a9b5993a3129f4ce42727bf0754b98ee8ac19d9182977e4107cc6109a35192577443288cf1864d4269f909278135f20b1e87332e3cd6d273069434491cd833511266d90b6794831c31be3650edcc1c524a5618e853a4760214f2c6349beca30c31be3159780322719e207b2e2c277a902c54d3ede2a672f0843189020894144224d0ba164d99c55761494d3644d4b49219148a1d1898692611886a16428d989360202040c5ff002292545b3d65a6bb58ca43dcbb450d5b24cd3484cd490bbecbd97108f15e22169dac948cb0ec4910b47279a966559968db4d1899661188661d8cd50b2a3a06427da6874a269599665d9485321a58c4e545246271a2914229142211229142291b4ec279a9665170359f89363173421c03668dd83125017405c004de1bef87e03680b20232023dcc546a318a54814f2793256721469a3d169720585b2cc429e7ba5e4a8f30398135be26b2834ca34d1dc4859135dec8a4e507aa058880371461ae9dab9240b6fb20ba405ed0265e1e4026101e502f59048292aa5140cbbe6059a19e80a176405950b5485520fa339c2d94d8847a4591ba38b9ed918d1c908530b6b78b8660fd7c42a1011108f0f55558198010c608b440f3fd82336d188464c000c4b35036ed293f5744b3ce840d898ace7aac17d73f16483115be281b05c7311086b23e6d19f0b92b511fa3c8a2502084bc4e8a1d7ed0215c17834128944225168044468249a1d29db5b7b15501661941c22daa50dd1b5a3d8184d84e99110ce7aa6f0c30fa391482412755c0efd104468141a81a8608108e29a5b070127774d0ca3267532415368d18272a2b564a39696f991e8190e7d848910e14b2112291bc7b493674e8fceb433071bab86764fac7932769e8ce9fd59d3ddddddbd3d5350465ab3513b58e824c1417233e10a24056a554d6191e1544186ef1a09194e1dd3e661aa87c87def664daee8b4c9560dbda92fbe4c41bdfa7badd406f336c5746a7a0d991bbe19f90abfd702822c2b5a81d894cb344354a76a4c5742eaa88e822994889173c4015430b193999e5a1ba33cbdd63a5d5757dd6d4d10c5d6d688204b847c9fa2a6806f4a8184436cc0a756ebf68d2d55c2c87679af1b243bdb8b8879492aa1dc6086a91bccd526af23dc0703af2ae355b99bad0d6608c8c1c78d08a800c880e7029e8b2f375e0b3c14c3eb429e0e131fcf7c8f9125533e150d150d29a8d7f519a9531b43dfa26381d7adbf5755086a6dc4eb7abc0e3fad57ebba713d9e5edb24698c943ca01d6b8dd575590c34ab7a591830605897b541a594f430ca085bd218c9025fcf041f234551aa5ed6aee1c68bc6170c2467fd3b0bd722e6776ca3b1e58136d2a51ea90d665b6fddb236a8c757f571ebaa7aeaf7b24e6d8d7aea147ded5b587235680c852ccd49fcf922f6cc3557cf2454394d1aedd2f93d9f0cd357901b7da0146aac955a20f96450eb8fd12f59afc8c7036f756a63ac532a6140075da7ac8d7af949ce577beac2b2b9faf9685d1a44cc4c318c1104acc03c17fd4907157d67e16200e01d06103146fa686d5c20a767cec9a2d4558d20768c6e21c2437ac1b568917b4850df03ba1bc36ec3e96f9ad6c6083a2ac719ea4dbdeca2e10e62541952a739e764514a5f1e09be9833f453b63ec1193cbc17fd18fd5cf45772ac024e34b9be07505a298aa2a88a06cac650b5fa646d4c7fb0f36d175a61fab631d4192eb4a0fc011623eebe3c94333005d38c2ba495fa9eaa454975a2d676ebd32b6b4304d3aae86463e89cd5e32b9cc5fce24510f175b970ea7bc054efabd19748544062b25faaa44237b8fd97e70df9eecf4c088bd8f75cb47c904e2dc8c95bc895a42c6d875ae1fd9218cd3d1a319a838fe54ea8dddd2d65655100c23824c618615733d75cbb48ccd25cb7c8f3709a302d8750949443a28cf209928702f20972489443628c924a087127c9b23b2e91b2e392aaab9886a824a601be809f8f4baab8a43958bdfadcaa572b52ca29af22b7eb24b9c33169f4a0d183860d68e0b40f0d1bd0e841a3c7bd682c883de19a024c73ef3a3946fb63be5f52b8b87934f7a470676e7c11b95defc81d8e186315bda37540a0b97e50b88de39bfac852274b8c5b347745e1c2772c195ed8b8477e87fdc610e782c2ede04e7e134e17183992b50b842dbba6a6a62647cb928d17710e981b431886fababeae01fdd12bb44448192bbaf679a56c3a528e820f9182a7d0b49fbc35a9bd42c86533c343ccc44528289b75d1565f29cac6a09cb231a2de4250f479a08d41b12af8ebf4d4a7fa0b4f6d6f305aa4df0d664bf4be0f1d07295b9f2eb631f3fdc54cfc2addeab7ba2eaaf57a76cb6e33b9eee10dd57ab8357c35c25779e1ef363adcfaa193c34d7b68cbae68abd6d5dcac3fd93498ddebca422125a87c399143a351adf7bdc1df6e1b13c2400f6d718bb1873666097becf5baa0959132f6d9ec9919c86ee79a9b571bba2ccf48297de8d469723784dd1076ee2ecbae375c49f193198c9430d4ebe59b55db7dd9daeb82bf3678086d8d8ae52b8beac1a597dbdd2eeae37653cc8c4a74a023d738a9e6d136cde55457a97264fd55b7cc0897fa93bf53d63a6db07734d7364b8821e34dcc5e610b9e0c7873d1e0529fb6be037c21e1006fda0e422e7ccc69971f70c64dbbbc9bee7a699bd82277b4e0c9a02e0f9f8033e8e5a18d8ed66942c2e2e5e4d88b76f92320d02ef7f21420f54bbcb9fccdda65742ec2c79bf89348b5527a73b3c58474441fe169833d48ee16daa08f0eee642cf2687b194a98e34dc4c932e664294f8cf8c0175dfb60eaba07f07127d4161595ba31de0bd64a5fb2f6b656dc1dfb5922aa5f7f95bade25b531a2531b037a080a48821a263ec488e8759bb39f6fd0f67265a998112e51a0c30e0729539389e6eaa52de2cdc44fefa9da2d766512af2165f089b606cdf5d56e33f6f5d42a41658acad5c6481ba97a98686932b435aa15af10bbd731bb85e8451b759858ad8d811784e978ecaf39ec3848b9631a9722b631737cc44c34875d36d7313291ede1067af5b1152b4165db39912b8c15097c015fb70ec644f8beb5314b80acc38d367737521bf0db6473f24c6e94cdfdc29b830a25097624e8b9b8e2c629f3f21b0384d1f32247d07321860e94a3cccbb2b90b098c9a78a5e17659961de38cf2092517369412ca28e6414ab8345e71b8d348a6625f70b84db0f7316bd6cf5febd1c6cc67a4ebbadd3a9a6cfbde7b99972feefec54d93a90dabb6d0b6d5a6c915e83a75d9db2eefc210a76e1dc4c9efd6466d0c4551d5df10a28be42b4993a70de6b7809857dea4a35e69b8f110a4842b3f77e0922632d3e690dc9b9f135ca0243fdb479e8bf7264af26f08ea0fc398301e7e015250e55382bd2aa680223f0bd09a76c9321f5eebadcf95eb296787c4dd5bf8badcfb420fa9c47b5dd8865b5f7d2020dc7a5db2ce0b74499718bacd55d6eb55857b6fd55a65ea4397ed5292549c76f05e62cd3484947a37a8d39c843f8664f914dc91a08ff6116db2843ea4b8d7a9ea34c693f15ee06b4979d58f4e793701e9944aad1d047139a44fa3b843c8f241bc9b9090bb89489653913c19a1ec1235b67c31d75cca595edf16c23011f5a18770ad416c1dcc298796089a6c6196e652da055eb0af94d73be94c39938f286e75fa145c3d9e657b59866eb36c30c39a287d6412a9440a69903472937f54ab866aeda11ebe97298793ef567ab50b0dbdbefa7068637e580367b05c1e96009ae0b90471d922037b47a25e4b8d8fab67d9deab6fa9e76a85a10aa10de177ad6a5916f66aebaab358df5e5f41d805404b104184ce823b98ef0b02b32cebc6760c77a199d0310b10af9411ea080a101bcb26771a8be664b748d95c65a25d42f8429d1fd007f41144907ee1788a4823ed02bae4e192489647b27c10876909440291413a6335f40fc85caf04962bfee1dd94b385fe2c11a1e32e62979f76daa50269172bbe481d978b0996872e5f4333403c07cc419c055f4fb8416cf247e892419a135d4224901890cee5e1f620ccea203c139176e1e13b5902c942b29c8664794b44e8d7136e27756442782674fc19b9d39cfcd19cfc9b934e962c6f25cdc9735b2fe9169210180402d101027754de62c1d087f52a81b40bcba54aad179d6e628b3c65c153ce74736fb27c55830fff614b62cb01f386736cf57a37e54c394f868f49a75d7cb8fcf4a35dac4b9a576e5e21e595bfb772794b56fc2e8c9c135f60cd9453e30396409a93b707bd9340a2c869978639be5ee64c3eda45a7befa00cc550fdbcb3c6cdd5392e557b6ee66b99b72b21420599e421f599eb4a16cdd75b2e52c41652311ac691172a92e8f040e987ea1b185c66f0b1842c88b3b7a3b9225e7b98e656243cd3437d91cad616900cca0f2c83d7890b2c7122a78e8c8d6c6c095f6894aac8d4b6e624b4fa49b63c634883e9da4247b597612f1e58e4e4239017d54b53c6d1a7faa6da6de892c5564bf9a5e3555a95a455aaf973c5c563cc425b9e525eed30ec7d5e1b824c5331445c634588d4bf53489dbc3b14bcbe854557109e5e15d79a04f22bec094ded19cf2d72f29f7a107bc823b4a276be2e115ccc4c34a095f58fbd01e966549a924fee46e3e47cf547722b794ed1395c019f23432e9cf292ec9937e5a322ec9d3fa64e1997ef5e95d8e39c54a5a75621995c017f32a9b4dd9bacfc3c496f88b3b4a2f0aee2eee48240d77c71d37c21d17aa42af169da12edf732e49d23593dcb8c371493c43fdd5a2d465a8741d7bf9e393882fc737b6c4c7eea4b89dfe8061ce318dfd29ab83301c82c2cac8cf54541ee6c4df18d30067488be3ea2419e6904837c7aa7d281b63a98baa16ada84f8a7a758b4e365d27c9fd47ea34c4169f494d72b67c961808e95434b92b1cd3409764681bbf1b97e4b925d11c134d34173fbb63fcdd4a40850f98e4fe61228cec1f507f145b99670abf6e69d1dc1586db3d222dba97058e249664f922124083043482d4f0f4842dad7c9d46345784eceeeec6483437e50491609281e6e6a439e699688208ac99873afae50d316ff2a44005da65a25b115c9e454c4e521e982798f314e31c5792dbb23b43cc447373e67858c09c095252c09d3c4d46343715313d0c792a439e2638e42902af6582c07331411fed32e968179907e18e97bb3704de4c873c9ae40eeae4e94c343125a05e65b89d1c9280767927d13fbec013bc96e92dc8d32ddc5119e409e2209332863a9e8be94a72a7c31d2174a220ebd6046d14972c6951eb94526859b728b5dd1d638cf3515e578dd99aece9d6c96c6573168e375114755dd7655ebe70c97ee68ab7945691265b1b8e2b57b89202bea03ea81e10673621c1cd9cb3e7e79c73ce1963f6ecd93de7fc9c73ce391bc7782ee6af2bae9c308ce6e61c43bfc732230e5a702ccd09d19cbc01f2001e0cd013ee330223cb438002156897d23c063290a30978c9e46f286b50b343a3b81dcd92c69718b1459ec6a0f0bd07697c31c06b9177c29542963286186e8c2c5bb4f0892cd0c11e4be59a9332e68ed19cbc1059bec4e81629c465863b3f25a05d645e8411ed5262394227032e727b7948ee9ecf0f6a72f794cc1ecfc55506967679f575055e0b7c927cdf73c1445ea1089222b9be0bdc57c50f244030925f93fcaa880249ae5847f3ccf23a854314a0a3904ef4d3a14d9e8e8354a2d8c6ccf414d7e4e9b262d6655eb670a97ec67abc85234d9eb6eea2c974ab56c017f2d3d6c589490c776870029bfca050939361e437240b26b2374ac3703b1af25d21cbcbf7258dfcb2846f092384bdc1c795e6a43c921bdf2cb295003f3d52d434e10e89dc95261ca43ca95f7208eaf49edaae0f2e9da7d73efa343f33f53bdf4f9699be34611b3353a730131513cdd16bdba85ebf5e5bf4de3151b883237ba35a99da3b1e153af5908da15e7ce91dd0d5344db35ea569f3f74eadc233a35b775229372e4ec15de751d73779620a539466dd86655d7bf69df802714011ab319d3a75a875f730f152cf34919581a742f686f614d034af95993e337107b16962184b3c51d7403646344714455158a36962cef70eeab37be42ebbb6cddc3b91a9adcbae69cd2377d99caa4c7b36ca9ea33315638c233c43c518638d7bead9b56da228ead6c553f6aa66539bdac4a5fbf9ec300d71e24b83709e7d6ea257ab775aebe81398e86df3049c9155b5ce8c0eb20b181d7498065dc2aaf613f4a64a98615b4793b1471b83051d4cd293e3911c63f77a60cd9351a45dde903bf4e4173944ec20099e0a72842fa8418e3c310a6183919c8076e96811f388f8e2c357de511ea20f383e1e30c542b4981846732c99e5176c9f941e401964c78831a7534a062b23659e280a279ca8eee9c6076d9a83375d00f81d448831462343803a601158243661823be1520dfa89620804439d1a5864e776d0a64896a14d7ca141a91b49a49fe360348d2628b4e91618636c5cb2214b35e2a93c43612432901b57a0658637cdc1439b215868b3733b1af0341260040426869101243a896761863637383007ea080183468873c0dcb742b8fae50dc1d202fa5c3ef14179e1c883dee0b5bcdc613253ec782d2f4fb8ce49a2640ee48edb0b1c0225f73b073c599e8ae276241d1d1d1d12e4c0ab6debc8934814e2c8431c263810073261c2041a8981add3405aa77ff4cf93f1ee146e4723cbb78e8e655d4a6ed73f13ec9f5e021ae0bdf4cf6b918fe90b81090c347063b8174858b852e8e7843abc1788d3290f061038287e03520c2e0b4c90e5f65ab21cc0cf91f8d23a47748e407c44477e073b5104e1814c7ebafba2147791e67a9a33d247e24bac411459de0e21cb373ed23f4d244bd9d12ed22e90c239e77cf3689779299f1cb2bcec600fe8a7a675b48b4def803db007f6c09e2c3f872c7fbaf7037f32067dc01f3008e4690933083285b975e20b29b6c89348f7ea64f94a8a2ffd135be429bdf7a704b723492066717fe2cbe8928afef393e547a2ade61ea637d80307e240264de427b457a113b4d3c65415a594d2377d9fe23e06edd6e5c8f6d8f6ae4893ed86e3ca17dc608f6dda986ac22bcd21b910dfc6544eb724b8cd7335c906f5b174924996ffa46f9a8ee4ae9b487ca1b27b28bd9744fa394e421eaecead23e579e56915214fb90b8314e33c1c111d3d768adb45253ba34651495939175f9ae26e54d2372bb88351c2ddeb49c11df788a8e0eeb87b3c19ee6234ee2e8c1156c251d3ec41c2111f791b041de983f6503d534f4f7c8994dedb33491f5247feb8892f3d84d7228f0427b414b2fc8467106e277372da454e1d691b4280024a2a605dde08ae050c21625c97a7615d4ad7a72558349135ddd246de481c224f86e5c3a642f9dc86b40b0877f0d2d1d6367b823638648342987041efa0902c799a93541457d43aac296e078964083437e52191d17b7807838777dccabba7bc23a99c083d912cfb06460fb883c17d05773f790aee4879d42ab8bb79444737dd223f8a4a9a49dfc41749efa5f8262727e7e522cde5c41729e54bc12a52f64892a432b3366b82db491e2559be6b1e394412a1c9a187ba2f7774f1a66b36c81eeda264496412b1883fb10975492f532291f8671179169167599bd637cf85fc95e4bee64ab87b4848b87b466e1e79c41e3eaef59393935b585e1f7e42baca96b295a8bffc2ca904f2cd862703cfd7c9c6cc4fd50f4a51eae509e5f3f328372a29e08b69ba354f4dd3aa7e4cd42dfdecfaa6eb2164f9d1d60920cb8be4435b2765c62c21fd22879013bc91efd13a9acb1dd4d13e601dd706779aa310673e9b9b2c9994fa079b4a45f1e2b5c4d3f8228bfb2247ecd575fddab8e6aa5715fdb5bdebb11ee55a76721d05a55239e8292fa9a01ce52c28a3d153b6dbdce8275b088a7b5d7494873699974f5ea38d41c1ef5e284d9c9c5cd32e4dc3a513edda75458982f2f8686b4814edd7c9c9310cc37e7282728242da5ec64828b56abf36ecda751414ecbaae1d05c37e5da45f97125426910ed31a7614d2cb996c6e74d0d6dd3ca2cd8d603adbae38dcaac22aacba3a62176655a32adab09f6ca1437b6ff5eb625575f24a24fa6834424141b9cccb28b844fa0c0ee9dc520d946347c1af39946327fd9e265f5b77e5eb275b0749dbd6d17c657f563b4dd632d12fd1c8126118b27eb71014173b08c36873fdec4663afeaaaba5bb1aceae271ddacd283b6aebe7ad44fefcfe85db67527af150d1d45a397f4a30d0a81439ab38e623ddbb48f7e323a1c8d328c8394315ccab06355256d48e78ef047d5efd6d1e40b026920d0481b8d40a2572311063a86551f55d5b11108f4aa128d5e5507814418e823d013590f5970a739eb34f9aa2e6817103386d43add5eae96d5219d1b3b3e04a915d5a22e1adc2afe0074bbd5e97a360d730c73ce59d1061da669608f7a9adcf852621dbe777cb44ebf806ef568cec269cefa81cd8700bd6ff523ed96c6948d012de136e4e91d7bcb525bb4d65b064f86bdf59e019c516fbdda9e2d6b6b18c01756f76cbd71bfe0b9b00e1272ad1ed9b2ac5b5696556a8d35dec233cd43b1810a287ed4d72e724ea9853b5f5324de831333d14864139484fb4ad3f49e799e7a3f132e3566221ae13a86d9674a6db416b6376ab62e2bf3decb56c6d8ebb562b5d699f9aa5a312c56ec730570467db4a1db79618b2bf6f90ec7d5590c5700d336e2d2fcb56e7157c3babdbd057535c31df114742b73dd560bf41b5f7e23ee6065c5882f85ad8b0ac12666edadc537d334611fb4b18f102777f4206b61b7a0431b38c33a08c3449b235a7007e814b3e00e1b313c635f1f8fc5f85b50dc3099b1cddacf8a6db5810e13e15d81adb562558551308de11275d0e96fc4d79e5eef64067d5a19ec331057d81f2fb8023803b30781e69429b80238835a3b537f658baf5aa96a59a05bb77654107e769ebe42100874999741a0c763a0c783224db616db40969e6e7484857c1512ea3f72c5e21f4b177b32f67a5df13dd05f84363f3294f8615686ba746ffad12eef51764ff5d1067adcaad747f5c316f54ed19c4ae79daa82584fda5769c95b3b91b278c6b28fcf8e5e7cef51959a39f516502d2ae2923d7cd53cef117735dee38df7083b2a6e5df523439095918fd6de80ef9e185fbd4bb332ef3354aca2014f45e2b823ff70d7012dc371c74232b39dac1863c45d8c91e6543ab10a92bbea303eeab0d28133de21ae767257490acfc4f74a9efe00c16be937e0bd24118f783246973804218e8ac29ab65b3cac628cb7b43a4cebc017f19595a1afafb607ba68b360cdc3342789f8d23c1104efa541e7e92ade4bac02fa60d8c39894ddf52e4f61182ed15b4872d73d3eb02656f15e600aa0cfd53df12589eec92d43505c1c17683be2b9b03ead0cf5990a7750da1b57a60e5360bd1bf05aacc72462254507e22fcbe239655a490167d40ec7f3b1aacaf2514921e5dfe6a39202cec8a97e641933a8e2a31af1239e8c239e0bf8f748d9573816182d62f0bc2117cae7783d30f1080c2431d914dceee6ee6ede4a91eb99a7d8ddda36663ac571759e9fb9e1c31484841bfb12976ccc3cf158ea97f516b736ae39ead43507f972dfda5ebe7e6e7df5d1b5df5778b30ec07cc9817494637f246c63e6d15946dbd51ce8a22d6b0e746cbbcd819e8d2efab5c9bc9c89a27535916dd9354df4696344b89465cf34cdcab25b2bb2f65926da3a27b2f66763b293ed657b72cbfa89fde8d6663fb2ae6d938db1966559349f5816954f0ed3f6c45edbac8fb693db1ce828dbdd5e86e99b84a52c4559f15a6b594abdc3f17ceaddecb30d3bb4d42545fd9ea2b25337fb7d28143af98cbd667f72d069b2b57557b6dee5c8a39f6c9a956da23f3bca369a3c12dd5b37440fda42505816b4687334b9aa16655114a5e829a5f00cac5820c910686e9aeaa3d7a6638ad893a74b9d523136e4d15c84dd9718122902633ca80957be09a70912696eaa70c0b92c32dcf8f98602678337cd4d8f1be461844b935fe010d321ce4dbbf0b8148d4c0991a9161d4ba656a653971d6384524222d05275ba892fb048b74c9f3a3884e34e1a32e1c021cd4dc7e276cfc07424a6e3783d49e478496a78e40eda1c71447c8143865c65b8f088044c2fc288768912420156214f5b98c290a7090e792ea60fe91ad014bdbda4fcfdc1d0efbd30147ae8de946edb53d3a6b42b6c1f26f4a2db0842781ca41c7a0c4188fb18167aad189561e744ee6872c4fa7d1006bd370c746ceb8330cbc660d50a508cd2c6d8d777df8d20262c5b83e6198aba42dbbd8fb9b51b51ba5524a153db3d4c0c6f88ae815c575c3eb36d5ae7ea5054efc85424b54e8c91745dc1c3a46ffa89def1c44d8eb6b120ee4a2f20c04a1de29bfdb8398a3b433febe9619aaaaed709b70b7734d4b32133c530716298e303eae4401f3aed323d3981f0b29cd50af862d624568a3b1d429d76b151e440eaf447bb543b4172077357ad802f2a7c85225dfc91e3af308492335b57eb9071ea9c0875762a2baefc862801034f902ab0c8c733591cdc3e063280c42996798e9a762941d92d7d7919b9d465e7344e0f1fb98d5c493f0412d94a1416690e1ae917bc190d782f6eb490e1bba7854b083c0e7e6e14781c8ccfe708882f1f59f6797aa7488f868fc20c478e49e4584db388e6fab2b75b55104eb02f2ddc8e7b3e2d321721bcda85e6269128bd9459ca1849a4dcb345b774243d688304069ad3c285d0873261895cd81123ed9df84271e7c47e793b3927be4420dd024f2f7189c23b3acd4108ed3cbc91fd6207a9e2421e39ec18f151e16d2965c3d72f728877870079211d4ae48f941d8ee74323865dd18270bdddae785d8f52d6573fae2b6ef4d606a5b5e22653a230673a155124913686d281c189048b1969e555e0d124f191defb083d12236dda5c5715ee90682e624027528a816e8953ce908803319083dbf5cff381a4dc3ff10536a15437f9899f624f4dea1ecd45082145e10ec70561146e079bd81cdc0e3681d5d6471e8d53aa7f1907b7d28dea668910420871d79dd3e3d6c8cc9f1bdcde583206e229ed78c4c7c747ebd00977f73eff744b6c96bc12a40d64f8696ed2ed65081bff547183dbc1233f4794c012129f25edc2a45da0b5c18d36cd451b5cea5db4c93153fdd34db658a3a37b47f718691d16ce0a2f23777ae5a326234105143f39c668e43635c448ac692ec8bcf57e9a8b3ded62e16e52fd94a8a8a3b9b823c79d76794d720777722491ee8d3487cbe141935c80fca8e04115b942c8a35be2df90dc3d1fd8a3737e744bfc1092901c630492e3e395c585f9074e2c37189658614a0d14f28302097c3214741ca1f941a104445870fb2508826364073a4ec88f8a9c2446b44bc9c6cceff188e722c7487e54e8a048eea891dc50c7b4d971c303e2f48039a5f8a090214df27b2eae29dcae45862c2ba4eb4eb0a239bb6694573681c19515a498c808a59432ce08a18f1f3f9a7b3e9a0642086447c80f128a502896935352cecbf91989837432595ebf00f109c4167d624b9f481ca47c72908d39c1a588a34f64d964b74494975e7a25cd93a294fd4494b89fb032db79b86c1750fcca7b47e96d73336b8ebdd6138aa2541ea6a8939389f14cca554e663c518911aba8a448159553d72e314c479f6c2425354f4ea2b66d1dccdb4156e68747fb43bcf64e931965329eb278525454b6975352289a26e2a736bb07b5cd9cdc891c53a4764a9ed266fcc9c9b14649edd88cda658aca898665d48e37d261e2b669c7189e939ad4c9e7b5c3b40fb8bb3d6079ed73d34e3a4561954f7184af3dc32aa437e92425454bf9e829291f1da653524e460781a4e86630cb6863bccaa58c564b9130a5081289441aa56ca47e62e5d9c6032e6d2594bfbc825f73a02ba350944fdb9c9ce02bc968c4d39c90e6668dcf4eefa8892f2ca7e4ac9970582e9fb6f9b9aec0a249f4e9963e4dc11dc5f161c4e7c8758591ecbaa2b4f251d47cf8f8b48b9624255bd93a98575e7a0549345fe9621e9db2a54b96e4557ef2d72e2a5449aaa8dce8ac72d99ccaa145c125d9f58e946b9a06514e4e489bdc3ad226f3320a0330ece4e4d994a7e090ce9559654bb9f6948d269350b49f6cdd057ab68db00c6dd7056197f4b150f844253e160a1f9f5993f9e00e400a2a5593fb3f84d81fa0a03c5af90352bcca880797a270907296a333e9d3c664299f295bec892d8d511845c989634f7cb9ba65ce9eecd496e1d28ca51e446eefbc823f7e80fe5c6ecc15c273419b7b35d97a177b8034b72395c4887b32892d9bbc94cc192325b13cd25c37d5e4fe64125f624f0f2152ad18127a0768b28c528b33a25f988e3bb85d0b017339d22ea3770be1c97850fb044f4e8e6d206deb62be97b6d4dc68ced27c7c863b9a6c8499f8c94cd8984b0eb7271ae9179409f74049865bc88f0a1f37395214759997295cca3e239fdde6c87134471b4d9e18c636d0250a8e525268a30b6e4763d722df1871a6cd95e2a75317c60518d1dc7b29e6885823a2436d1edc3c1bb303222fdac6d827eea319d22b4efc927c0fbaa1f6a1ca1587db43daa51e16e99e36d247da0549bb608787479a4302856be4b980f0f9e48e25c308936cd3afcd3ab4f5393ae091a9e0c14e7e54ec20488e911f153b3892eb74416b9fb83057960c2b2eddcfe090ce9dbf588e52c6d722c77b2f0d782df1544fdd7e5c50b811cf89e311cf459c182e815148926147650a770f0e10875e1896e29f9c18a7396c5b70616e1f2a49b52cb816acc2a7497e43ee70240b20bf2aac68922395451659d821bf1fbc2b6ef2f3ab620c4c727d1af0b931e59e769efad46f6a9a72ff35c914fe01fdb34e5c434c212d11f2539613db9012c72b10e19973cece893c5fee38c94a6793393d4f41d98499fb062ab8f2af5df0665370e7fc24ffae2b67ddedb2fc3eb18cdd37b9719a47e3e4b636d7cd4832ef87e71e8638793ab529b85b090ac97d2824c32179486e4c41c963e57543ef932bf6de419b5ad157af9310db1bef9895b94e2fdff779b4e9bb5e298aa2ea36333d8ba26aa5aa157006755a3f3d3b6d5df5c9b4aa847a40bd47dfa3b5c6abaa4f577d64ec9fadb0374e7c89394f8e2eba28b6af721473a87cb7a2508e75ddd469caafa269e221a17549eee273f4cc25294aab57243549ee22ad3ed56337eeaa4f8ef4f494be5fa7ef115278fa5e95afacccf55b315f6a059c01c2a04aa3154d3a1c0f534a312e4daf6c6eaec6c1c9f5f62a21283a99e9672aee20a5b11e52dc7580a65a5161f5a689d247bb004aca3c49fc2e2f59ad803360f5c91d77f2fb816604519450e3cd7ee76fcd36238ec0f7374233f7463417b96e89a377a2d061e88aee10a2c31b458f2caf22e20b8b111dcb686b713f9a09fd7e6674aeb918baa88574b1ef46a39e61df8d463daa7d8d469d7419bdab67a9f51dcb4c3dd7a25d6a673796c8d22e236be30079c4b5b8f5305d73541185903c4317855e1fc58f7c17701f3a4c5716386309b875aecdf2644898597a66962723e678209ecba854710d38b2352e686f3c9e3c7a689b59e6502874686b744d56226691850bd1855c2bf381cea12542f0bd103d072967d1bd11c2f071a27b6a6dc41c8a1dc2efb910e1229a8bd711f1dd7d11db11303f6b447337bb4f84b3ed75cbec17782f2ecd7a37267eae75fad03b963c75649fe25ef439ab59e3539adf4a139386e85872d63d311811cff2643c11be9a2b8d4a237cab504874c893a9e3b8b2904c9db227b8f1dcf5f8cac2752d728421448e3168440b02814422d1655e16e1d2e833a2cf8fde16daeed6e5c8f7a34d849d26dfed8184b09505b3f5628cd43b961ca96a9be6a44e294afa845a93c18e9452ca9601e47703e4f7ed09f15ce4df0a0fef488f079c1303bfd8d2c1c071f861e51df7b2823b27b6c4edcd680cb1802fe2df031e179f849c042404e9de99aece892f13782d58c01947b021c81972bc187274401c72bc7572a16884375be1c6692e36687a9eb07832a60ab70f7b842bb7f6f18c7047ef39293dee9ce722de16e1569d33c2545aa7db1250b461b104dc724e36b8a4b9f86ceb72480be4e6daf34d21c7daa012c8e45ef7376aef2ce58f74945255e99c1cdf3aed12df39eda37fe438bd93684a0134b9e5d4019a4cb1077cc88d4ba3fea893c83209d0eb5425ee94b8f903a55c5de20a97aacfd09697fdd1d651b744a7a2beaac36ed11bcf884ef18ccafb52661156b9f5d2666dd4f7dbd650c1b2b9147c8b8262b32c935936a9ec3d4fb2db53d95bdae78839eb646b19d66eb5f7a649dbb79f0f7587de1688e810976a5c5677aabff5f76e5d35aabff755129987af7c84690bc51d5dd95eb74c11e854fdfdc55df5910268a6e9a3d32dbbdc8a78b94469d6191b7d9ae665165d62d15f73a2119ea95e297c6fdddc20eb958db1570d2d570c994025422e7c124dc43311af09a884ad55c54d2b158d08000004001314000028140c07c462a150342a9786bd3d14800d9aae54724c9a66499043c818430c0120300000020000c06010008c78502f586b75588bbc10d822f450c62711065e684fbfd3bd016c22b6f55d8ea64413026fc1c58bb8fb9ed66553c9f342454a2cc188084a8928c0278711eb55c55bc1b98937d7f2b22a1c2de9859b402c3767a25772a3108349a8ad1b1dec131cf4da8993ebdd94f2745b7fe97f406dd14bb84e8068fdfa0af60064b924cf0ba91efb859cd5addd1199b3abf09ebefe554afdf698a3405f3e98cdc9b4ace2ddc01427e6c754fabb2a9bc089fc4095f8f0aaaf0e36b930b4655177da3af365bd4842c6dd85aa31f3337e0efdc18c3a4a8c1e3cf6918a11709cace16e4bf95e2b9760b82c07fb648c6830c38198f3849e7a7c0110ef8264ce4ac489ac66e9cf45af714785a4807b33093934aad58d7e894093e15d8def1cc93c46c18f8ea2185e9a0115f514a442b832e5ec611b9b829757bcb9dda25ab34002e7d22d5267a774a5eae61e71860b9d2eec967d7b1e411d4cfbf9011069f6f4ae61f33d82fa4aa43632dc3dbb05e2f5f76616fb24ae947a2a5e4be11f40dfec6e00bd41611da7f5f4e3b4a157301141f9bc1d7b9439561144c953eac27b5da620f4c96bc8a9dbea2261a294ad1aab24dd05d971439c47abceaa9e688a80a95ef009d5b966f2e494585044b5e40aabe54c99e825a1e34fc7f9d17da37ecf49be47f9ab170f26c1205ced2a980a1f50731d3b8b5439eec82e5822e30582ba448cc5fe19f88f30513acfe2b20ed156f1735607d92ff9306114a8ae7a0fd4d580a28ed6a103416168db1808d61d173ead28d82bbee65094ca6f1d08b4801b35f37d9bc3a7325fbb8f9476f86381e6492aff2de288c0896eebb561296ce3c3e5fab76b293dadea3b558983c93b3b1b9cf0c26faba5a5bb5dfef69dcbc7c0b1370ed43d35eb2c9909dc4976466eb66a62c05b9d54661554ae6c144167aaa93e1072eda86d4bafdcdc3223655dc944c2e69602b676dcbbcae77022cf364d7685884a395073f6a65100c0d229bb8689f895ca8164055c5f7e7dc42e33b036a249655bf80b0adab0b5f92e599b21a8af68f99451d01299100bab27be9a07b249359d6baf376cef9786dc2cdb58bf2806022d9e56d9cbc0e688192bc8e786295525470f4e588347506da1cb7802d008c422a2818ed8183c02300960e259c18c36d125870deb3c6a9fc0a14f7b8e92959a62c3e3fc96f1db362a834774c90bc91162fefdf241dfaa026cfd9c6270c462b81996002b2084eb5cbf4d1a88f0440bf6a13b924f444b7913f85402f4574b42516e044c17ade12d8e83556a3e2a0e0ff9445e6f094066e26d83305800e231124dfdb49962e1d33c5a17d668466a3d9dfd520bc9a31c9dae6724e39e76aa7011c34fb63c59064bf1009199ae3eb283bb50569d69a845e6ad54056318a35ca84a10fbe9e58a51f57499df14ba5a9eee0489963e757c408dea6ca025c12125af18490067e074bf756b3dca978d0cc00798a25add13d067d613dfb305d0ecb167782e0eab3b58294591527854f2b1abe21a2da0f081a01d29679aac1c41d03fa883144481d032aee0eb7cc5589fb84adfdcfd02c19e071ec0617afd56cce2d585083d319335966200420b385ee57d52c24c1677db16f370b6a6d3d17da1ae03848cc75d25a19a086ae41f3c14a3ee4440979d8f2a45350de0b61a6b1c95df411ab759c3a185c1c52097b7d77797ea895626c1aa9ec21760aea838e85b1434b5b9966af56ddcb4a4a18df921130e502f717df3b6550179e18e65852ad11ba5c0273b8fe3bc153920cf2c4cf35261ee292dfaa70f524d6246a1df54bcf7317c3f5830abe6d36bac593d4fa22ee651eb9db72174845b880e45e4433a27f2a6a98128b2a613f0239ec5f6ab006274e7e53ed27421ae0463439fc881b5792e669f27b857bd02685b1e89b6085e1b418f3573216a502c1d2c5e33ac813c6f092c02016c8a8e92697b4c1639bfb8e7fdc80f5667181da170da77f089ba0ed63e1d394f444b30460e4187db6c225c0291779a6a4091ffed24f9bcd233e52fbc502cf38c7780482e789fc2150ad3bf85542ce8762286223dc14678acfdea6bf3c5e65504e7c3c1ed0a3b8096cca74d440818b68b800e819689fa670d38d36aa404c4cb253ce5d15d3bb7fb29e88a54de72bb086276e500ca881df6260a18a74a3ea6e0d637e41035ab14a903ff172694868617a5368f6a61ecc317482f7ef3c4e5738df73026597e27d6bd01d1c73ea034d8dc7c4b6f3146415821cef8713ecebe81d16091b35a47d59c583ab9a4c132f004318d433810bd6241d86d238dc62ddcc85cc0bb9abd5d94bdf1c70b650c49ad99fc045a9489ab005979e799baccaf78fe970010f3bfa04ad05810319513d22483c3f6e3cf5d2f9c8a946a9b89de3a65710b538b46632468fb6deeb310181c16b085d7a00e52efcdc6848b6c0c7fad3cf9f1943a9a439f27906d2906a5773934128612d035c2a4167184f9d947f9a823d805ef62cc53478b31c3f6963d97b58d840d1b3a6c7ced57348f124f6d0c4af13a5799d4d041655e5f412536279040c09fd4b525ba948d1c3dc4382ebc80784a8208a158338385ebda69f58fdf7c895e10b2b0a0f5b641e7651d16e53f918e727db58ba17f0d42929891e4e97136140f03d434f1060c7e9896a4322328e317ee81d5f56a63e64d11708ceb1c196a44001fc6b2996944c40e3aef66185870b8d3e63c6908ba21746cb9433ab0188cc3d0644e0e56c26095b7ed208a9efe646eca53f525645344c547a90d9725e6f4b6b5803a8f6ff29576e04aa010b32f47f2ea5f102ef94cc3c7fde2b35cb1e8927db9b87e07700772104a0a1cccae0cf4b883cc34c437f38b021f44aef1e0ef51a9d6e7acfe64be6c56d8352cf38b96ba5922bac1fe232a362bb4819da6f6b276920565491137f060aebd71242595e66785097c61cb4e782a136a4038a720342342782c131faf374498cdff41b87194bf839b2d6021a1ecbe9dc20c5364c3ebee6e685545484b8b282ef762028b23ad52dc22a65a191c2821c629489cc1346c5e33a95f045c5ed7a8dd2e477fc3b0c109fdb901cb87e4d4e686fbd6e3dff32730ccdfc113d3c88c8631137bfb4dbc84c31fca25d059ee1f7b1474863ff575e6f36a870b4d6874515b83402c52e3ee5d237f0b2229f6ad31d9e6058e455f5eaf318ef416ec9dd47a1f745224c50191285a457a10c035f9399e1ecfa1763256e695dd067cbfc6902473d2a77ac5da22f111577f0aac86b90d8f608638c552a6b0a957046ab1fe2146b40b664c3d5a625569efb12914536dbbebf561e34066ba12cecfbe34b40481dbf2c0141d851b3459aa84d71e60ba151da05eb51d48e42d14cea6dc530c29cfc010eebcdd7c46303d8313edd6966a0503a886b91bfc53c61e34062ef0a17948e058b55cb6470222df8ebcf403d87526c9b03fa67c20b8112482cc7d8172336609c46920a5cccf7d06d0a0bff363d02093901514ee301c6c3a9e3a7c74b9ce2125434a0b92f1b8b6cefad5c9fcd6fd7077a25f90bcc89f89e8f6043674ec3ab2f0fa880fad20825ba8e4e43a0207126d38ce03670aebc15618adc19944038e2ee9c6949f2b9346c3c30db6c391bc838bd101b939765c61995c22356f301a0585be13fa414190e27af22db59f984724f1e5c5059297949563a43121f408f57514a662cfd9638ba25df0a0311784a05e9c156688179b9747193f68dd333f26ac68dc7d152d875c9f50b4232ea3d302f45652eefd8202471632d4ef3a1339f789d7e80f46e1ad4888007629138f3668d26ff401914ce52eb7182174241af43b8282f0efd035e148ed218bd90571758e89703cd26e2029b6765ff7adbdbfa020548b7d92096e7f434c47ea16c59bf6dc263063731bfe1cc7f318eae0df61644b8331991192f9265cc74e29601169d7dec00e31cb84c49eff766b2358ae9bd5df80e438786d823130c92e570650b28f66ac2a8db7d362e8e0d984887b022519538824fe118ef546d043428cac3c2aa9c0ed94695d247ebc1ca65d82e2d38479769137b4ebde4299d1fe0a544ded112c5173bf1e168d87a0a4f2dc6934dd566b145b82f6169eaea8f94148f0b4680ecdcebb7414a3f43ed40bdba7b8e5d49f41ceb79b31995845ea6b52b39b81e04c47717f4d1751a77ba6e2aee8c2cc082930f3c88836eb7a1b2ae37411a374dfb92149dc9f882fa3c24871cf06f8381c87f2fca1da3e52882aa25fe5a2badec40e900687c8ec8c86278f615468acabbb01c8bb48f01c536813057b339ab238f1c68950b078e29d49dfe352421e52fa89df339a934c0406d1379eac1c7fa9e4784c4403065e0730da702ff5b917a64a8a2713cda3ba2024fea92605a036038bf0d32b0db0ad80dc968cc116941551b16a12c4b0b468b0381aa96969468debf36ccca614afd6c7d5b5b71a3c14ab3fea828a508ca4186db50bc0c412ad6e7230d628011c5c95a10ef4d9a3c981f86f9e44e4c80009e483fd8815cf382132a4cbe569f39ee0fc0322ea17e8e9530a287904edd8c6b93ea8b20b0d023065c8521891366a483480c19d40609afb4c1fb65fa465bb984400b9e1bd28278b759442862a74ae69b65f31f927a5d60e8afd8afce82b4ec2d7ada7052ef84af2e1c7c871bf2f4ae848f152bf21901a74543424630cfff35f777552bebbfd96a21983a2c1d11f27e4b233b080dba94cc4aff8ccc3a264447433ca9af3a7a37bf6e539404fd599545bbd3def7219372cec0a61e13c6588ce3bbf9336af57beca1364e9f0603187ebbd0302c5ffdd9d8b14f2524dc876d369e9c8015d4fbfbfa88fe209bf092ba0aa05cf9fbafbb5736930fb09ba2699380fb974ba55ae965107dd7cbc8b28771388dac8d75cdc26f1908725c02956bf96bc078e6fa4f169410f154a1e8b23c6ff82f20a8349b0fec99c923cf0106d349905005da5a4e165091bf86b1c0c48775a8656799239c8f1d2cfdca344a292abac19343023c0e766a7d1eb8206b08940061cd94d7cb84d601a01d3dc0f89de60c8ab6f7064ebc0305c11ff46db744cc11d822876731b5304b8ad92338859fd410100844dfdd578ebbc1599717364b83ad95d6b9b496c47d2a4f919b7931b34afec3171f3267fe6512a897597b184c90c4455e5bb564175e8daf20f8e4f0d74f1ad4163782ad6a2313d8b0745ecb8fc27e28dde439f53c9fad660d1be684b94d86f3f04c20e86326d2d83e7c986db37d5ac339cd38c22847229f82c9fd00d8d3b9d981197deb591087f510d5dab01c5aa0787091244b0710912cfb6468806a25fb47455653b6b4d21bf1ac406b2b75ba63869ecca448977aaa5aec34da54f6f57520d954c50aa310561561932d45644a0fd5b715a8bd4884e2290662f0107af7fe16f4c73029bd269ac886afd2f23747e97b30ebaa8457123a22c1345b4169e20dfdad91158b98a0306df49f1d21a174b194c08ca7968b1b4558f517fc8eb9076d32beeebb42babd522ac7912cd46c148533e2d65a5f1555b3815950a04fc11f732fe30e9a76f5c81db28130d366ef44034638916cca9dd5870182b85c7beac0387a5f28d33c9578491fbf6300776a7bc29b46d907dc39038b6975761512b88631c2d34c6dbf95cf8bcc9df50e3bdc376d71cfe97e5fd5d744ab31b85613ee0a85d168b8df51e4c30c292fab86e012e847f14bf7bc87bb72888121a9ac136ce7074e38c1fe466f21080b2b6129ce5f94c77b12322068e62c05e3bbeb0c562107e59117825e772eeb85ad38968442d663e934374d3f0f38eee44979c025a15fc1dee61a309084280bc5e206bb5e829b3d43eac7b31461230211f5b21de9c90857fa8ea66bc9873990ab8d5cb80c1530b5503987a0bd4241bc322523ecb0a60da45a0433f6c1b543639332093ba2644bf07ccb3acf5dab317bdb702a6accb2c5a28942387f71d567b84889aa9e158ff69e541f42ad0509e369081938e79fd5dd95754e10f09da63f7f8d78035d7a5a6ad74b4c9802cc84cdb2a76bd3a20313c9fd4011451c9709a927e6add04246073b033354708dfc01439f8e38fce45bdf6e9eb979327758b766308f140c1a1b9e80bbc8e31b29cd805de6ea69f87c28c0b7e1340aa94134e4ef4286c14a9c47550d1e539550f28225bdfeda8f7a07243f820933c9350d9e9cc2e4e05e04b41e596db86255d961a5001ead7cb95f242205f07820ff43c0721669281adc7e0224812a9c75a03a4b02d445b60641f020dcdc8113999450928f277062f604c9682748909e16fd7edd20ad6e3749608f81b3c4e7653f07a6536c0bef9b3da174958245332fe56271b91b6d2eb83f27c1fc615ea276b532711011575cc7342e99c41b0a73e7900195a1395a32a681f857f50017dabdecac1c76867000539d07d9a1e56181600de8463512a90e2d90b4ab3d00caf35fdb7ac2c20fa5a466a6c10c24acd51e89797c9d1e37e335b329fb3e09725148ec42ffd9d5efc81fa6321d330bd27144e2d113434ec9487899f8fadca778dbfd2d0894801a0341f85b4d1eb28d6049a6a4ba47b0b099ffdee5949a400f0d7804228a8ecef4d6383102859b7dffc440227de56c58640ec89e8c5b3e6ee23bacce8a9b22ec45d60b320ac4fa2f4073899f71ca70a48645ad4ca1998cf063c768b0c28e5c673f14de2ca2f1278c8630bb7b3414029572431bd4ed97d7ea46aad2feca544dffb423b3d9ea107fca6376d4e3fb8934bc027ad1f2830273f9ae2da9322e943db7e1fe0b44889bca4f4aa8026f8e75799784b2addea4b265dcf4cf83900566dc320b1058e7381038be2c4b2db64295ea79a615388ee9113c387be38c8079b54c33defa6aea5d3e4835d5dbc9559888839395e2979108c9773d68ec38b5cc243bb58f7dc117fa4e96f58aae2ade07aaf851bae801e390916303d85bcc5eacad3ef203e1fd4c7889c7c43fab2d52fa561c895a257767fbfb60d42eea2ded46dabc9a915b0d17c35500158635f5e094570b69c87ac0d62b5c9588a0d2e981e6883d72c35b75ea8fdfd6f29fcb21df3c952a017e570d4e4d7dd9614019d64a1c4433566123fcab8912324837d769dcdfb61044f90882d751e0fbdefde6ee555580768c4c8766f68f0b94b775fce3955618a33575ae63a1d97b99efa3a4f6b1ac465bb0b00425292e4424120d432ee70d47d9eb77537331c16ece3775fff236c7274e2ceb673c1756432fe2422bbe69fa34513aeeac10a7e431387d25b3817a7d4628601b022d729fd36afe417345795d5fddc3075ec6533dd82e9bdf62237e4951fd545a5701dfc121ce1fdd962247dc9561967025a04d9aa7d53d41a22ee6c7ff1ad8d5182f99d458539f0ae67f2ea7475d181f238ebc5567e394745b68511b9b1d503208e6b5c4127142a7328a20e5768bc04342e6bc3d0a2700ae62a8edc53b73aaadfbb8c208c0cb40181e9cef4233314bcf80100a91400d51919ad278106622b5b67acf7ab0195450d573969fd210e8eb67afe461bf8f55c286a9bec1fcea6e5094aa5018b5740492fa79c232cce5190a81e32c8309b3e0bd44fc90fe631a47031ada91534d37dc39075d2d9292768d04eab9d2be89afb0050d5618d1dca3ad05b06770986d2e62b99f7e45141e4b9a6e26340b96c97bff9e328836204e5bb353f0c76d2bde7a33aa55a913fdf380ea7d8a0ff025360ba84a59df10cc9f02f4e31bbfe57593339415a6ca68505759de3185fb981292d3604e7949626c2c9f0b54736d70b466b57f291cc610e63796214b01a9dd2d9242eed738cd62b3d82a51addc2fa56885d107aa6607baf8629c40a7216e071f2b5a9e90a4c68b431bc140836f6b83cda9e51c518eddaecb81bed3b16818b164b9c890f4e8bcc81c8e007d05511df3792a51174a3facdd47d3f7abb9ed41af80d8d8fab7af25e0f5ff5c446339b0882ac44ab467667267777c84840d71500410f587f3bfe1fc1928821e821a97a5cdcbe9576236d7f55d8f05e15acda7c92c3a499dd7a5ca10c53ce7a4e019f245089eb0f420d26dbcc103494c63b322b3cb12fbde062e19050606efc7329714736f5beb964627b93e5789304c419514f4e605ad58907700992726e772ec33f2a7d530b15f05cce04ed96438e0fd7898054c68ce5c115b4ae1f0eb4be48e6a8f99d7acfb828aa88a1ea97c00cf3da3c7ba50782045b3e9f31d46e0db0b49597050edae820e5e3de0e6cc1ce9ec464414c3d99d482ad2aa40a79f2982934f797ea331f712d75c3229b6a01dce4eabd72bdf5b7c2f3eec2989100aa1315e54b442ad698c17ba6911d24213a30e5d226fdc41185f4979c58d68c0691ebd195518f9717e097ab5e935d8a31eeddaf99c29678563d4ac4ee44bb992dacf1402b5145998167c42a957552b488c6ad5e448e0b66cc201488c3a927ff3e893ccf57e8e8937bca2058c83aca9114caabf4fa91122b93026fd2d53e446a3504dbb70a137665131e19246d7dc9f342b2d9233b814d4c19b1dd81d2647821b6721fa8b199bfa24a9c38ec63c7925884e565e07c2adc1e74b8b3a568dbc0fe758050d40c08f2a32458e1c693c35261b27ff5ca375267e36fa08d786120e242c8f3c54631537b884f5231e772a2656f63797cd4a0bb3dfc2f4a808eb55c14374092cdea009c4017eed64c01d9ab93f44046fc3be6a6b0fad1207469cf23a26cdde0939a76d86b0c04bbb6d5ad7482146bec528956470bbe1dc28fbe8dd01e14c2744cc8f64551c7cc38c17b09b6058ecccfc16ec55d1130750c0c2a2588dba9c6a5a9924027758733d8e0aa66cdce8cfdf67b7208129d82f86252d12d89bd57842fa075ba7413196abc3fd4ec8dd74cf4aa0b279ab38f0c7b979c29ec0609c16d2cf00b648d13616c39d07670e0ad288c0f1cb3214d65302c40fa5dc731ace0886b754ee8a5fd28e08f51d0d67a45191f9b3d633bf209bfc020127c7f0c24f691b25fc5c2842b9c4b516b004fa535eb13125c9e5d5744bcd707457c04f7a6b93cf105df9ffd21aca4838588b8144c7715f56a0811ce5b7ddbd877dacb4e150bf20f801f2e2811eaa70678e3b511e173abd2ead91f636dc12044986d328a4d256bb4bcfbefb8a00e0c5634cbc0d7a63b8a10dc929b29595e9dcb3d7873d6a0e19be2c418722b42b71236654c301a0269c0a1079a4fe6adba5f7da50a223e3686b49ef133db0f025b4b01a8cc609a47c6891b7b32ce23e88606338188c8411a50675945223597f83142a9df21a92023e0e113e9a8892ac228878a8f6b592f924307438c7baa23fec9f7284a713504c65c870c6b248741c143d9d0f86cb82a72f15e3fcbbe98a4e2fb69dc7f083707e950662ad0f4827a9e66edafa6204d747968b214f8d3626b9936c72459b79e496bc9f84aad6257d42387dc19faf1d6f7fd0b0ea9a027d88836b42bdee1a5e8248913a5ace55c85e7bc35ceb46d2b2777a6c4c6fd63988d7d1d2e049c302656dd33f76c60c2cfd8d048df90fb9e17aa08b49518746667a5cfacc15e85ed9a55232cf55fb91839f9d25fedf9345ac80b722a75f8daaffb3df455e2f5aab359f9381311a531521ec0be4a52a9530a3dc4c37b213663d447e19ff1f8eba7d0c58005204f78bb0def85a45a1518e018de7a2b4e1700c96be053a1216c4428cc5bf6e5cb129ead0a5746ebfc6b0cff67b7aa8e1c8e8ee6c2088e0201bc0bcca19a878af3e84d24520a4602efea3e28744cd337d634712a3576a18acc675585adf8e3c20437ccbb52ac17203ba283f702515e00db0f7f0bc7a8eea37ff3fee7a914e8eb3b22c3e50e0f5f846659d178b0b754d48ccf82125801bab0da54def24b12c50a2ce299e2e977278cdc2136ad6dad987a034e3d917fd0d636fa89dd303925cf9877cd3af2e44bc5731d1209627cbf999f5529d59e5fa5bcce41404e08e23432c0b0b50b370ed221ae254a80388db65fddebae27cf56dbd514979ae14494a298b1c9a5e1baf5235c7a024284d65f1d0481e439e8421f57f69240d43bddacaca68ff7965e602e1c268c144cede6c67ac3c3ca5780628cefe3a0ff751bbf709d7aaeb327bd165ac23bfd543df6a7fb149def14c2a3c1301c87f816ebc6fa00c25113264c160a024e919a14e4be895ea19711728f63054e906b627c0e2b9a8886ced010829d7bb0faf4468376e02c34d8702391926899003a7375ab98bffc040239084d754e3e00efe4066bd8df635751922cfeed80b1122a2328d755ea83f884d1023836082fc293dc16318a0f13b801216eaae2a78ddf53f05ed46f08bfcc2df83714f7a7d91214872d73dd08e1cd6bbe89bdd15a8f15cc520402824b082d6197167440bb03e1ca8ecbc448feb531d18a66a92681fe03eeb6968a514071298f9328bd8223c962fdfde752a9ab0f4021a8bde3ae8a5ab8db844b2113bccc512d567eadc83d45da70aebaaf98036f64b7f5ce880fd5fa0b19f290d138c2c9d3b14e9ded4098c086efd4b001e17c212df4432711f12df86f44a4e740929287b01f45ba10b91ab0bc6f477662539d7e1ed298b92d728f089e9d0a5b1f911c3d2e6b501fe0e857ea6c76e2b2dd7ef442e69e1ecda5254bbd1d556aabb3b79c3b8555ed8d3a4fec44ce07acb6205fc5b3f3357d7b8289db91841dfe14f16b298c3700111072c6019d66612006d1928b05e57dd71af42ae898855f07f4196c9161c220cdefb616fd169fd105b68b37017c498e496d9fff209b7d03fd7e5ef1e6c58754b51c6b43faab1906ab80bb1bf2b7da39a020db809e70470a7f2050c28374fbe2859d9c65892ba5fbd7d81f0ba81b471a42eb668b916c842284afd93431a7e60d10085d2af2b66b961903e31f6a70d5903a467776fb779d832cd8f4d6679d7dc2870a36bddc36866648d583837e475af775f8475c46222bc4a1a8476556df8c57e3b057f9c53bb8c991cccc0d1011e6fbd7ae3f8d65562fd6b0235b3453c270eba41c928c3f03e3ead7473a8d5516cc770cbb4bd7ef9827046cdfcc50c8d70c44e38356c1832669401c62d34bb085e1518e7f0e745e375220a45f79e25cba865e88e08f5b1382d3565806a44bd73f3b0c539a2a41016a3ce74a858eb745028777c8c265788db0eef462fc6fea2771ca17906f4e2f1b79961cb3ebc8c42d49374b30dbf4971a38b3c241395dc13b601ce3447d0f971a62cc1cc2438c70c4eeba4320289a789afaf77508f7aa8ceb5d4558aed4a68d6b3b709896269f05d1e253006c47883a3da824f9d67c0779862bc270a2e6a3d36be755b7a475475ed2fdbcbdb52d0394f40432c0c623aac3656330d878af9e7f97f9c12e8f8c0ff25060fad6760dbe47a2d835dd6177d53789673c1a6026fd17725995765bf87e068fde3d9992865f08df14b640a3770680c4b6230e2316ca27eea0f335ed130180b73402ac597e0289ef25cad75646d43dcdbfd9e1c359e55f0414b435bf06f1c135ca2df4367e743a06667b48de376f5e48d167c630fab546482a1d73e1fb600d3b5f87ce1e5f6ed62677cf253bcf25e84da739c0a1cb247be0ceb043c18f3264e60ecad18a7b1c06a2c0996532a6cfcbb08408907829f0a11b4315f084c314df65261e2959c645ded1bfdf07ba2398e3aec9598977e8b752da50d39a9754f2bbff0352d064ee266446fabcd95e5e9c7f8374a67d9c0d280c95256adc034459f59b1a3229c1e32599fff304a1202f5c5862ec225a9c34f306b23e2fa74c14069b926d8c03c489ecb09a0703e5d0256a27cdd26ef209c18ee1ef8d0fef84c757a4cca45515191725b156d170909bb7e2353a6ec779f78ed379d6ff24e88e916c33fd6cbfdaf36c0fbd7229a9d7b62e34f642673601c3303c3a331d8284949fb6814143e0493d46d424098aab238185d78e77672e9d1be116b3017881e2bd894039572cd1b51c91a10e6e55456e9008568e8e9599906250b741a60f5976e6ea60ab00abe439931fdd3ac9a5d18833b22f5bfbd73287127a551c2e53c7dfd888b470dc4573e892c179fc6f43725fe5fdd772c18ba28d3c4abc0a03734bda33c24b83e8709be6d8f79ef5e4bd4d33b961505953f9641a69a92bdea844f7fa421fb018571301ef87d6d866917f20af5f9312bb83e67cca4caf1e74c351615459c420ea7653ab943b05d8b1f9a1473c165cb9fb27f7c8b8c0c0703fd07eda8ca4e0f34f8f8f5678c29b6d09a71a3f27ea2365f3f250e08bfa02d0443f8ae882370d974f4e2c9b924b623ef7bf020bf9c725c993bc47940049577050ee057f400e136f6825a30f68cb7b5703269b40533dd46736176b1836f62dfb0e916c27d823acf37645a6c95727a3b5630f0df6b0f4d272547b607ac66bf6e73594f00d3e251288e5237e819cb06a9585fd063224741f2b0832a921c072d0e6b286cb90b691a472e304cc179f0a9ca1ab7a3610ae41618897f80631749624485897c427040b10813161dc12f7c6f7284328049ff1ee714f9f0473f4ddcffe2bf4ec50ce4838fd55dc82ed7237e00f7e91835f542f2211ce196a0ed0b40a39e40d1f7885c9e095c8dcafbc48ee62900ed8e97a5bf12306280ab7f13b9827563605398c54c00b3b85a537aa9973b001fc27dc521314104f1c2b5c8fa947eeed5fec2ba45f9278c28cc8df5f4767afb1d7962802d1598ca14fa903a4b43d76dcb5a7925b95138bad078e5398e12ddc00b4e3ab8f9e1960969c901820e132a02c7c8a03eef5b37ce1a2a49c00de5de4ee4d167103e5a9f6d73a9b2def844075b82dc0ae0cacedf332b4f61b59d7e03e8b092287b67570f9dc41b14ffaeb64a90864a03d241816c1179c894c0693a379cd4326b6bd80b80640ed29ccc78d9a9f632a35f1b13667b76e22f300c3c918eb2fe74dfcbf404ece845ea95b1e9c62b56a86ea4c5caa8f5213974c6920c3b3a321f574d0e011e4792e1a96a45cd10c4525dc8b72cd1c930c4770f35a73b07f99cb6f86507679e3f9d0c5425140c09b734490e01b746860041fe5a3afad71332e2c5d5f1122551c78f2d45ab458e5ad45237ef680c88c5fb9fcded3dfb22ea37c0b9c33981780b42dd60aaeac2b15ee99be2617c45861a0674a6d6b3d888cd0aaaffc380aff1228b825d2f15c94deb6b663865ecb2278e5c87b0a4dd29f523bc020ac7c364f8d74a41b06c3032c57202175b6eae8245f47acd5e63b4cb0bdc23aa9ff8d826248a8140b249a4adf077086620838b36b5463f8c146e654458802aaed4fc3af9946919fb4a6e86904a45f0a02c0e48a94568b05f80770cd234a950f2a4b2cf03d922a9f33452acfa6b5a1d6fd0408da321135a1c45bc7667ad9c37970a55683cb8ab0931455f2df740aa3112dbdbc807d1adfa8ae360704612329cfc87daaac90db5ca768f03fe876169c5c23562eda05731903ae0e98ecc1eb00b995e2c6f41d48d6b24c15413605e9d5ac4a58f734b8849060780adac3f2a1b48cd56bdbf1912967f03c44bed8e5a00fda1f8458551f2ea55023477a621643b10265e3ada54911749e91967aa39e82898a20202a445332a5c6ddf6d1c31dfebf41f5c07d96fd81d9a1918cd112a6c18615b3ad200a6ff3880a9a3277d49879d10d839d25a26411f2604115b46fb7d9d55344e4e23537200db84732ddf4c27c7beb275a0a37980c8233c2ca76820aa1ccf126d2479f7c4c470bacb90779a80280c0605dee5bb024b6a6ba2979f87c8823ac5f47daee138458079b520607dad693b0cb3a3d5de707fc34b62c1507b0d4a63277c05843a7bb438aba35069b158ef73ac465a644484c670d934e80ae866b71f2a1f1bbb594cfd58d4a0f7b65a9671818df4718630e2334a5837157e416208b2b403326af09551e5650fc7acad7c6f3754288f6060c5df7c59fea1a46da23e1a945db54dc7746785d5d0014e47be6c9f110b11bf995146719577b55d816dfed0c28f4302b9e1f0f96094bb6592566f2933cf956305fad3220f50678dcd4297bfd60f40e7716a71cd9728a34a3c3303d694e64517d4945f72d7a4fcf1d3db116bd3c3daf9a798015d414f19d23f16d4da8931880db42214774de575549e2e6f2182a5e1cd366d93bda92e5d586ca76120e0f3b64127828b362912ace91d3abd84739dfd4a63b3e91b0ac5461411657e2b4e476539a05b7f30dcccef323f54038e8d69a760b88873288dbc245af5844abfc3459c9356c4529f10a77d3b7a5e0fa6c7e22751162e81ce3b8b04cb9db4fc4ca998e85707facb345e3a9ec776c7ef34649b709e62022a17ad8aa6122e73da3601c959c20f4de6ac5b8a667c603846ec976d014b4a11d44776eba818c6f6be16eec0bcb4bf63c0ebdb904651614765dc0fce051bd5020aceeb32ff71b49b1662c5bf8e499cc9752b6fd76446d3465ffa641bf72743588ce449199715d40cd64d145e526485f4b52025a9e1d03aed1d8b62353599b855be49480dd241a9e9116cefd5c224d6955c1bb548590e68870a3e5fe3b099802e04b8f761cc9c9429e8f16b6221104157eb614ba65aa158f47f0fa55ecaf730142feeca65ee2b179306a659dac57440fda91379a95b621faaa68c04071c2bec7fe512319b80f6ec9ecb420fb51a1e40a7af201385b25a41a37e5a4ea2872f4aa90033b404ef4aa5d60cba7b836c61250518ebaa251704ed6159cfcb82d7eb8f344207bf48ef710947ca562c37aa9b4b2576c395b8e7412f91f73685a09c99faefbe3f8a82fbb326d1413db38eea29b65024a3253ed7d100ec16b32a366b0b8183cd187c32df1dc52121bc776e48c50b1279d3bd7bd21ac89d799a00729abcd9ea6c41c29e1fab0b3ea5f709aa6e3a35eb0bb3baef71fab069c35b4cf0e15409bc04c973adc3b906b290cbabcb25650982f852cb223cce88e3a4867e688154e7c22675056b61e07de8b5fd1276ea3bc2a110b12e1a3ff70460f9281dc5e0689472b32dfd1c80425f4bf2d477666532442407cef827d4f577fa8ad8fa7379a524bda4f27f5733a6a970ed27cbb3e54cade90c83aee353472f623653a4c3e615517ac0d5314abb19ad1763876d77aa6c064ec1b83582f1d7dae260b318bc0c970ad4ea18f8264104a73e4b0fa249c582a030bc06dcfa703e56a39f5a212eacb66979e177b6d26a868213cee6e364837860dfdefb4d80010b3b19471c7f6b892f040b23590ea1aa57dbf5afa5319a58a2f662b3bfcff4f0eab2fead8ab1bcdc1441861d8e6c714bbfc840c5bcb293ffd2dfa6d7d8122056bf1a2317c929bcfbfe12d6cd6dd96b6253d67751675786243e4fc66b95e18c24ec88c6fd9a925e14e546684dbb91ce57480703b128891f17f033f14fefceb0aac8a994233f27f553587f916df3d138bb2557caa0299a973e8155f008830fec15dff1cd6ce8a9183bb40bec7386809df95980eafa3f7a5e8e8815e508511b0e2d245a598a04a352c88cbb3a3e4ab170aaa5a9dc9d6f8f242d765d20e9b958f3d859e7318779129863f1adb90b8eeed2da920686a11865802239e9197ef3b6030282f955cb3bcd6cd2a229402d7752b8cf13bd847d64f8976a5d73efc044c4c44f8cb342062408e09c553120f67425097a38d583588fb5ec2c3cab945ae35dc63ab90c9b726599e46382a6ac0f4760c25dfe835ffc84b1739a9acbbbfcd88fa04d395ba15c47fe8c51513027d5ac53869a9524bd50c9483ede4911892d3bd5d4e4622922512f17a301c134824b885e8d8062d5560941e5ba9d88b0798906944d8039365a8d80e5302739953076b13e2bfb454801bae8464204087b56e469b977b0b5b4c49be4ac04f5fa60432de8f98e0e620df616b1a4258f9c1e7812ea63b0ae7b0be852091657701030bfa667dd2144c29ab8ed561bc8be203b19caec45ee1caee9a10fc1ac8e79874c992498c7d49867eaafe4a7d220d183039b188c88f82b91fec87c8698b472e1c3baac17f74040cccf01da923afb49b7602e5eb25adfc5081cceb7e1ac061afc57424601175fbb5d587e98468504c8b7ed5f91d6f981342922f7b815184fccb2f17f3aba19f112127c050b2241337da1c967e2e9e64a43f648c1413d94dd14011c077beb10308e04291f484f66b40915d5da0075a940143021449d96fd650040386303149ac348322f5f3a03876ec031844332238e96ce68f516660c20874cdfd31d802309805d930db4d02a53740689ec1f9ff138d3a07b1c6e8783aaf3ce4896131c8dbb335870a8afca820bc9dfc1eb9266589ba51ac16080fc40ac31ca1e2b97d465026e8b2c648ddf8e4e3268cbf3140689825c87c1004aed4968809a20dd462a90712d5bed6169f587076257d88d7b1740c73dda51b5c31f2183b4e6dbd693438a662755f43cc7ca138b7ea4df3d9694964ba00362408fcf93fad2f6bbed5cdabe29005e6ff2c1dea7bb89d4d3427392eba232acb939889af86253ae25aec24e18a1223904e15a59a05ac32a486ab8778d442707e5f0dd0dc24a0cad5069c7091a7c1375830956c5f7e31920e5e56580e07c29d463408318144d70861655a8fb58045eb847ecf88086012ac59b18da75de7a803ca941b9ebe981d957473ed9b4154d7ea5cef125c7b36e7f24a0c8063d29d30035337a50e740ac94a3295dd725ece9844926b5c82050445adcf58e5791a750848b2e13867f50cca64d9b41109ded800fac38f1c890e5a06afb8e38771bf1a53177cf9e2bf799fe26a5088e31708bc548233b591260a93294e02edaf3a4ebc54b629100092fd1db22e1c84044ed241b45a983cd21ae594b8ca7ef47d45f1319214412f69b875609026c0a1f89f2af6d0ac0420eefd7765895bdf268099193073c9da83ade4b780a90d602bd030b5a888f19f889f6467be7824542b7b6e98ff084d26b3ba37fd9a13e4b31196b02a5a1988365a757c9884dff196c02b4dd306f75e48dec99058b689f00964178eb6914c28c732a5be4333401c0378d0a15224c3af9eb351f2d414ee82e222dfa7c1ece24b3804a4186c7e680be4fe5ab6582ed3591a9bf65213263eb20087042351c1995be5d00d3fd41b6ac5cd01e359b0e8bfcbbd93daab40a3dfd0ea10e83ac8520e49e74161eeff678360f0449cb010bc26097cd610f5330c065f311e2c74ec2b1c9012a089a191eb238321e1f51bc4e9afb490ac3d6673a40e08bce76d5ec96024fc0387e101e53f509fe3b08342c508fd62550f1bb9baa76a6893b64fe12a06c1d6ccb85a223a5c0d19a6f4e1a25881eb83e491ef0c97957f834175f89aa08f0b144abd836ae92b1407ada4b6f97a13a0a977069b2fa8ead770b91ef22c54ab5d17ac0c2bf698c179a1f37d13d748ed7cc25913a178e51a977e4d8b32623a0df8e3b199f8d413e487c12d1ea720842d17cbdf144e1f2fae34d4f571bcc50e8401c55e739460919d9a808d962956a4beca7e0e630e927d162253582ee89efe9c0b822c70f99297e457904167ac440a0c381de2adcbc0f8ae40d9064e4cd1a69be1f9170f5c26ba22668f2a24288b89b21a35d03b80498a4adb9fd01c5ab33c0e265a88bec7356b75b476c43582c18dd957a101098b2f9f2d5c94dd6e195fb2896070cea6c5aaeb34fe55605a09614e98397934475c097e51ac0c0c74572760169044eb04c02a083d351a2f80935a054efd3914ef1ae6ff67a3360250c69957e9e63ff54d52e38416a293b3c813a6dd7199a56dfd517f1817a92459ec20627e0ed234c2c6a47ad50bf5c5e702d3efd7ede020f314c14e7290dfff9f08da6d4b58946a9510ecb7a9b00c8a3f52d8dfcf08fd7116f721b435049044c3fe5edb7b7621e4db0bc240012a20d2f10f3ebd9c21280924227cc2f022545cfb423ffb97bfe8f4723f9f45fc4e1c7f1b58d872baa35bcac12a85030036bc0fa6ce0600361858cc69c1d4effe55abf1a0f24f87a5560467f9f2387e4b757a271afddd4f34c5e2be9910f1a07c57cd0fc23bb12ee13eba4f8f2df9075b88c1298a473c5723456222e0eeb5ba229dc454b73e9a05726e606ccb26f7a7f0c5e1312e375a0ee7453cbb228f36d3c69b3bd780d7a11e6f9015b3839d2c89fa049fc245bd4c834ebeafac27479e5f9148734709f25cb7ececcf3feeb72f917a2d5e828f9f59f523454d43713dd35731893d69458a8ad263188eb08cbd1f946a244c3200259ecbd9201ad8ecd76c1c1bb871495fa9159865355e4985291bb27b2f8a907a78506a1d8b4fdf300b4c3b523673b14f8caaaf7d18504a8f3f3753437af5640bf7d711c241938152da3070db12815a2c8152a4f2685f6287fb47b20293d51f78309e469874f9b9d80423359936dc94702bba5be171b154e0589994202020c414beadd752c8c8c6a449cef3c3d018af7e1e75403e21bbcbddf071ec5365677d2733f7dc2bc495d726ab31d35d88f42e6ca0571ffc21b08384fe81ca3270ecb8b4328ae559749174528d46ef9e6f13b2486de286269f6e2d624cc53bca6eb2bc6238014df7b29b940cca60360d6b0bc336c3279f8a15bcc98915566705940252508ab0e43a4fc1b779a2038d53846d4b82265b8a07d5408168fa32f444d58ca693376efb8b0109b58f206d1e10ea6549d0eab1ffb5be2c0907c30d036146fdb224d843364ecdf29d501d084e20c3d215b960a04e5d4aa8ea8461db411d28509a02bb1ff06c163c1d533d6f7ae76b9c83b843eaf181c39fb9d3c5411bc8a07901b5da5edce573d82b961278a089fb70f6c58891cfe98f6d1ac2383b3f51202d5f8d216ad209a706a2101d653c8884a2db21ca9474b955f116479bfe195b76cb58695430c15229d2cdf07b9b216123b8cbee92e61f9ec1f202460858f2b77d3d8c61a5267244a43332c8f649bff66e0760beb7ca00be6e2172523cba26a96bab074e1af6aa1326b21735b8c1a4eaf3299d700cc2833868a70a5e315ae0f68f39ff90061cba18f7305422cf20cfb9267e3a8235dbc34192a47ddd81b5d872036a48bbfbe78b0d3900142f369d8c612c457e344e432beebe0d90cb211b48ef65493e495350f6c2936e79b98f665ca0e5bcec563a62c0de91e4aeb2a28b8bb8d51ea36b6a12ea799b20953b92c6a5e5a94a413cc6b51072bf5be92962d013c8c60bec2a445a02d6fcbee9297170f74e6bcd43688d57b309d504883cbb45a42ddc9dabcd7a4838f51ec30883f5d2bc6b2ce6df160022efb3be4e44578c9238f0d793851e2b4a5cd21b014504b2b8fc79ae33953aa4ac8d06361ef7ba92fc68b91d9579032c050004a7b7a2821c067792eb22ef165c64ae083720e6d62e694ea41f8404992993dddb5d3bf8f034dc7d8fdc0b3a35740a2e499178ec52e6d6feb01def4cf7432263dd88046b7f79dd068e4e9da33c33f2f333da7c53c4e5522d309cf3f806434ac3102d8f3e663b1de6306038e58dd3152cb247fda1ec2e2eda9c45565711d66cf33b7e7b076709e5e45e3d8c9f9b8554ce2c43bb8a1edc59d185a7056af5257d0047da14b7098bf10ce1d1c37c3cdcf4513389504a2e4c3d84f29e689b4cbb63ab3c1994695a3c0991280ef2a0e6332c4d694befe72edd0818bc5911f5f9bf27b331c252af6c8d004228a46cbc8221d93ba07e92c0f4719d4d4b111ca81e2971e34aefe05ba3cb53f1bf010422ba6cf42b69185fb62e113c0c6f6e6ec05589386a9fb957fba44634d1e4c0c34970f5989c9f926799736b6f7a3340da3788a439abcecbf505c1670ad482d35cf9cb4b74c2e7b0280af57c8cf27efcffa49c3794a778667afcadb670bbeafee4ab65141dbd51c97a719761eb1565d7facc2cb995d653cc0d24fe6aa0697a3b96498f96f0c3ee249f9949e327cba6a83b6338285d8bfdeb6e9f34677fc71e81b075167858d14c5b340a4eca55a6758e3f2ea7da34024091866ecded37d6d56c3340016c1b56be6dbe02670da7d8fccf50405d0b77f36626f0c234f19fca1ccae53d54647d27472ab01943338abd1a8b4d54940e417b0ca55a00ce84254e8045ec70a08fa194e93426c9c090b35c6fd7b964e457468b44eadf4b13607aa666f3272883a8e2525a87c609e89f53dc7ef64b80537f9001565b9c4fd4a48d3b23c04fee8f8bcb3adf7dac1ba8433ac06da523e98e36bc78a3eb9157e2b17c7cec29e3f44bcb9775f502dad365b04ec4efc6f5033f04b6698592b18a644a75118ff0942074882d8380363a2d03abc925cdafc0fb329ba8b3f31f70e6ee75fa0d615b168aa58e9c50a240a294084f6bc45b67abe193566a7f28b040c200856925c2b1ae97c485d2414edccecc5f9e879ce42f2dc3923d7a0c4177e0c27999a72224cbedee6b72ed088ee48cf4516cedf942f29d45cb17f4f4ab1bd4c31d135211266423dcee2619baa8d02b4501f3371b134dd24754877088a6ed6c61dc2edbf47672692ae6540ae4b36a218a6a2450ffb42817e5d67b329c84584dc1d00793f33205ff769f8a212618a64ddb122718354af3d4cf6e5fa8461902befb1fd6d6bd5f45d5f19e2229176a963679232a8a1cd0b4d1cae5c19ca9297dc81814cf2184b0901aae8b745f435a01ed8bfe0af8bcfe86291c17fcc024efdda21bc6a24ed4273fb110a129f62c0fa517fc7652e79cb486c9a5a59dff7026557b0e1b7ce4fade0eded34360c39ef62e196d0dc37a02c4fbcf0e170028086bc0b1692f2ad879079e7a606fc87da1c89a9ce808460b7ec5f5419c07b79a74d93e4a3d0ba9227d5e8cdacf2b77ea03d01079c9e75b72cd8c4cb7d1444b0f21def3ff0cce7b0485b5871f3ade5e2b9fe48ec74cf91b28f1c2f84675933a9fd43d3f2b69e221cf5fbdacb5ba7888ada3a8c75ff4818aebcf98fd17eaf24162d9d28442a22e1262931e3e82fb458331d3a3345affd2f0df1dc031ed0b7276c93d49e9298dfcaace0cc384865db77b5b0cab37967ac21d7a4d99923b3f6bf5390b44fd974d35a2ce88513268e4bcb3ec15a623309d10f79ba317db494eaf8b18df4b7cabf0fbc8d11cce74f9d974cb2d02257c992b3e516039af0db8745f3090975575b8ae0189392fead53bbc365115e80ed83d7ab8c8bd2ba3805d934c2a5f9b161016fe301ce37b38aa9dd7ed40f749b19a51ade875d0ab34cd0f4487062127a56b1fedae843a11d121b668347e67ba5a89630090516b939ed161414dd6313fecb2e97a05991a0dbd1b0d0ed95a06d441f6b45a4d016b2c6a31d619d9becacaa061c569b3ab987c5d9a84f30b1a510c0e312c960bf92f264464e03dde0758f0a42531fd5e94e8bab95ceb918560e48a6d2b8d00815d301cfd88282a3bd9b858e21922199b5d94f1541025aa68c65baea21a33f597f5bbf0b31a60e647647be5d8d02204be612bc0b8d221083e684ee75933232e3148331168a5e9c715429af30f342406511b74bdb3f7a30c00d6d6a46ffdbcd8d6e860fd44e0f3c2b24f38d93870f914de08be1696e24f5bf0d8c79cfcd5a393f53025fdaf862aae71d9537670f9648ce79408e212a0db24e716e2ec8589becaad42c123c11a550485d253d10f41a5ae80c98ef0aa6558cbf6afea6aa20b837476cf3660e8cdea7938b7dcea850c79849c28e3ec4c17ff35ff57db7f25a07c2869c778a4b7e8ff2662dd0bd60ea2d9ac231d71510cee84802ca8c31aedb8a3999e0267f201869410cb3758b3c425a2825eb5462da240ed7c08cb7603c2da1d76fba363f8c54b3d5df89383e438044056ad869b0c0d991ec2a73756611a3a96b9b9abe3acbab9d23aaa25e5aa1b3b5659fb245c07775d388be2d896eca26713505084c668c72b79703c9736d8907aab43cf6527f0b6ac7f38239352c06b00095a5ecf6421ac7da4aea201970924a06a85c1891c9c8a417ba803d397537b83002c2a7de8e1928344873c08f7e810007bdd342f83a58828f3c88d4d42e378a142b3088acf688907efd68bdc36416e9555aad306f58a4fbce4a320440bdee7a36dce16b060c05e63d1b5e16e14ac1d2a05a5cbfed655ad35b30657751d7803d6bf5dbc46d023e138d05f143a3dd6e4965857a4d9226f9fe7fd8c64dad6ae10e53c7f8908bebbc460677f287a307f1cb69bf9a863adf60fbee11d9f04ca11f4955f4b64ab9483c1ebfd9a39f4acd3c6bf821b8aac3e01dd0a99ac0d2ac46ab5910b7f0e4149a64d4172b8a2f80da2236815392f439ccb6f09ed9babe6300e00db970a0a8f3f7d4abf146b7b815af800b5f461626164304a2359bc5af105f4b59435f02b32a2a8435f4311d9e14db454020fcbe180076034816b285d01ce63f0c0292a8962a3024f01428874a1b073b9f19cf9b5ecd413962739525d0eca735447d68b58b9ca6c7695cb3e9e04b94969908a5e046a434cb64d8510588eaffba46d5127c87d95252f36700c51121d5c74aba0fec544da902abdb9e8045db451f82eafdc942bcfa1484d2a0dd634f7636d27e15bcb16247863eeddf5e6d9621393782a833f474dd02ce37db930680c0996f14e80f7b708831c1ac4ad1187084b065827c7e761a297108e459c046db5381c60b18d9807e2e9ae8a75783c138d477cc4c1418ae3d270bac2980511a259c495086246ae8d54fc3853eb963e43c3cae83e01fb93ab4f70a00deabb295ae583399a4abbf080d5dba5835c76839d39064710115dd30dea07117c6368aee51bbbb70c46161b6e185eec65cd03057510d0c51e94d38716ac94acc740689226381b3151a0741232b2ca1a240cbb7c3744ed15684ce26953dccd31a377186dfba679dda9871faae503984ee4a846d54e7dd46109111556043b7581ea547f4bbd7d67fde37a440ca598d8eb08884082f1e739b44b1316f43e895eff360d6f05e29c7c0845dbbead5a7c3b76815c280ed186ed3825c5c844d128f6707563a4e2003dde3307005933b25ddf934c5a7573982754512a15ef3bae532e851e7899278dc86b6614b829ace6a667c44ab6e6de2f281916ec0e159b5aebfe8b4a6ca5cac782199df2bdf1516a10ffefb46afdfdcda97e14a1f8ee590f015d0e02c647ef2d6e787899863deca9dfe21912060cbedc733891d85e3be26a0486b0a2fae54abc97305e3c280648fe3ea002c4feffaf2fc1feef8285e99adb9b98e81df12b93331b48d590428589eccc51fcaf40c36edf12dcf8e70e22fc9d48b2e83b9f2a6493b9a49c6f1361742674728b82300ab4fc4c63f837039d1bc0328e058d2c97aefcae919d35741edb59efa8688006db1c5fdc502a8e24f06e21de81dd948a38b19ae4933e52a3537d3ac6e281e7b1066039883c2a15f21ebb0f8f982ae095df8ca9642cbec428bfddd3f58f324caccb5ad2c9b15e34c15f52833221e20fcddfa73234bce83180a3fa8e9fc8d35fd8101e1aaaf80fc164aa5285abb8f4f37343479aea0a64fc3f143c6e8bae2bc6abfe4cab5eaa52b6a0de6e455e9459b0e165c98852f817fb44aeff7c1842ce0a47fda7d1702a5cd648ce64266b030f739afe6193b30c1cc5fa60f026418d8e01e32400b911b422afa403fe4ba99b5e35191dd91aec12029a6c8b2615f04f46c4b55b4cb3c5b07fef638734a8753afdcc5276f7b547b6a3ec16bc1658499a7c00870a7f3938ca6b8893011c0042fd0ba21282b86c089484be52aa5778066f079b5720bc55d890c15f9a821428031d4beb85691b62507e4ce0787514f7346138e35bc257ad3d09f4473c8205467be0ca285528a3c97b9326c1a4269851f6003b55c652abea66020fe22de3d9a3405600c0813b94663a6eed127c07df30a7b6f6e004e0185878bb5b61aeafd657b3c5cb07db29c0cd24cc9355304ebdc9959292cb568ee4a81e508989e779098a707088ac1c67fc22acd8b9147e8c18fb8db230dec8894f4bf680818e9549b599dc2e155508100d478c52a5a9300ef8a9e8d1d9dc6fdf4b935f2adbbdaa7981540db896ac0d43d7e07de6f899228d4418cbce8fc83d8f9edaef58e96ad838c993771b134373ba51cc91bf38177eb89cda48d51fae07929b1da7c19c8b0d4f3d93dbabbd86478e87389426f21fab86512284f9801a9848b6fd927d918da249f737213852975f21ac9d55ed01381ed3d0276e78b49c88aae9f6e4310b039520a07807ce3430d50b1a2233aac6b0c2c9606bb405f66814b3d57d41216e323dc60a8397267f3bf8f908c5f9ad7247eb6dca1edd9a10cd49f2a60a3a801e8fc426e583e53752a53af7e0c148e2ae8ff7a5131a837659b091239aa18629b6f409c601ea5a2e7a915a99dcbb7025f8ac0a39f3797cb7b56071903d40eea4e8638ccdb758045e86b88e6cf5416e1c644938f48db8b135cc23e94d630491b9196a3839d1956b91946f862ddefeee7ba966bf9f10bcf7e46fc852a9d298cf7c081c0ea1bbae405e28d18aaf422794143fa50a1a80432de62751875ef0a2292ab79d002cd94abdf4d6803bdcadc3100717249adcadf25dbf9a6d2ad15f6e21c7d003913920085cc3f7af22629c605902839062bbd78591d3bb54ceaf4b526d04e7dc689a539ff624d0142d4c7966d74a1368888e10f35972a34921fa98856d188a3a2cdccc1d5bd630b67963304f6cc73075a4757dd45ed54327545a954930d5c027932a12d259b788443fe1e147ac6657fdddb297286914e1292609d5e5800ea418fb9c44305b76810828c2052769c28ee2d150d24fd6aea3371c80ce0340c27a861107e8e50a17d4a11bcea9d9aef03bef6b71852ab7e83915038d3a229fb2cb6517b9d8c3f63957d03ef526e8e63a9ef9f7becf0d9f4a655302d235d9b2463d6a388045811a0f4eaea28b56ddd4e028d80e2aab81e482634119813250fa5a3586b8efac402aa794a5aa38211b079428438b4fcd1c63c94970cb1cae303686f51e7dfa1ffc6058d1dbd132022984fb5184b7d5ce8b0f3f232ddbb88dd86fd468f5c7386f0305d65fc192400c03aa6aad8b3737da202aad7d585de5f4ffce006bd3d3e9f1f0d3f9f241411653af616429891ab1af55acc0f65f8e4617ba2873da760820eb4111e29f2812276a2d8fac0acbbfb8c49c6aa202e487a4ef9e8ac22f4f5b21503cac299b70510ad8b1f4639187a7e6ff093c3a88c9c54f3c059a8ae78ce474e54090d3d0c61ef55f5224685c26d0d74846be5409093cd0e2623e823da70052c8f3f2ef69470440f64a6f9a48a694d04d5df94c55043d5394af69c4e32b2fe1ddf7d6133bf75da003ba6f854188f25f06020c7c72321eeef047d9fd2ab54bd036810686415e02e659391e1313008c18180d1885984e035ac3de90ebe70de20a1e7b60a8e69c33b307bb0af9d833240101fa0a98a155399c8dbfd6723b09c273ee57113a74eebed3b5fcd0791e1bf58469e0bfc4a445d601bc22d4e3cedbc0a5c428eb0cd3f17cb659b219424f1d5135ed821ba65bf3f52194ef25934f5077d1368a2337d1865962e40ce6bb082f738490c850b73213c0a8c342e52e56a2a5103c64c2f1df42ec329eb76ead27d1e0650cf93346990c9e0ada07a3e198880eec687ac46b63985411478e80ceb375dcd1caac6a73169fcfe0d8a83dd4e10fffb250f5134d79345584e4f964659209cd2ca1e099b407a6816189476e240a1d4df0f9e6508cc6b95e13472e6c74a6223d4bdad01abdaf8bfea39911c5de835fa54612b250ea9b99305a0f1e6414f7aae678594041aef626559c5bd530e31cadecbe3645775bc2e8f0dcf16809f1edc6e50ecb754b8381389daec088150442b12f4a3098329198e0f6e2020011587bd952ec6aebbfed1494ebe966e9736897e9873889b8a32507a2c0602a665c31bbca0d6f66073ffabdf96db4cb441c9c4f4fca15f6838567677941d5eba585f34aca928a84f8197a692e8c76322d397f2fc065af3298cf43ae9703576d4bbb7bd67a2f31988067183cfdc7b05d752154243cb09a8a44c55b049ee8bc9069a42a37521ca7b4a613d324930fb49c70092bed6bda525ebab8881c8aaf216b9cc80c99737ef9fd6091037402a843780df4493297e8d398b022585d6357748e1462393a98c581ce2d6b8f2e4f404d5bc93c3c72af8705985b523f4d2ca24648e5c452716b99a1a2f8c7baa995b8c245499b8bd9d520f030daea9e5380a1c1b9557e81255e0b3a4272036754fa056846bc019b0d6f38d62761c1b0ab3b56206a022060786bc6ec75ce60d59930410c35213c66aa2125e3d80c57d12a925995eccb001fea5134735c606d4084a7588a387888a7d4e06a724e876f6006b7b16cce2fcddb1861d735b3a589a714cf4e9214451b06ef47ea276afe58cb0f25bd7c9db2d47dfb1fe716c8ca841724aef6afe6e75f335104b7ca92c846c1cac077232228d4d2ca3650234ded05595d672b04d2cec9520d4c599d9a27460be142324a4bdc80d6b273f860e17597950ab569781dfef5031253999f672e4f804cb076355c0b3cd6420fedd53f0cff0fc28c729c490cf8cdf1be8e56170ba4786b020c9895c01ca970bf290557c5e2180e810558cb2a1b8edb43fed33c7e203d05add7d1d2b053f9e062c5a8c8da4a32332a40226e2a6445e3be67c8ac886aeb0359d0649ab6f20e360eb125b6b70baf1083ea62afd2aee93bf4d35c7d58bed2a5c873a0a8a4a75d07cdf7d17cc564c8ec3417585d247d6556a7a79c570c672a2c604238e2380ee20cb3f0c287431e2d710f413ed173c0a359575fd81e99274836a2492236a443a1cac73a8f8847f0a36349e4ca784ab788f0caba46f3c1ded72874b3f3054de4dd72cbacbc38f5a3e21e8d2cc03509569d3b1715edb0b5c7b4322b85ebe05e1ceb120f70259ddb7156f81f7394c713c0849942986b391d4632d7a2c0c7304e25132473359808f8a86fce9377551e5752475ae813fb26364212a3a2126544352d01dbb898aa5367747e60fc2999a2d2b3c5d0bfd583697b421f470d981939f369a4bf0518810ba936572c5bdbb5d16338811ce62823eb3e134c964c491ce24bd1a786c357ac66c5146e77d1105856cd6a336c283d1a14258dd76e6e3b94112ed10a4aa487b6bd5ad48927a0600da790a566a505e940bb36432caf253e02876c57b4f93ab805bac86022e111d4acc419af7e0b48cd2a20ab3c296c1f3c53c60f903e4b3012a289d9cd3d316bb3aa49eddf1281ab042d663e3fea979086a59adc652136a27a45901879d5396fb49a167056c0b196774e883c9695a880b352e0c8ee76387770565c9473518756e876555adf948c3024016e0054dacb6ab4c1e21d75c2db08cd4b975dbfe7259f956a6e78e74ebdcc4ee66cc0328314f71d749852203d80873938a7117572401163ba3a5b7b5c685bac9b2e9aab3ce08cd2ec0fc67d0cac56f83a311349d4680ea999ea0463d853980bdda24bdf58e244f76fdaaaaed51843f810f48cf04994446c25f0e79ba5e90ad9729dee6f58ecc6b6c25bef2e58bfafba4fffd780f06a8db3be01b32dcea447abf4f47712bc7cad68758cd913126d3cfa7c8d083d8b046b0f352c132be7c0f66eecc6438336fe5a69e3f19839dc4a6c563a85d2049f5605fa8647b180c438c98005337b5f57819f4efb19bf133b6add27ac7de0708bb0d5989d141cdbc5bee35518a047627bc81a2c882a6cfe282e225b99e04f440b0037eda89e49030c6c9f98508bb7085342b6504add97c653d27dc68ae87a4eb5df6e0019fe62f5cf5abf74828e7f138fbbadd54213e6ba1b3af2fc6b8d6984ec6486685ef90194618be32db295757d0a22f9aab23ae48e1f49c9015311c879e20542da6faa67f91bb52197622906fa787d7784af2716e6124dd2f785c52ea8a2ed90a071434b2d1bd33c902e35664ee2e8091a5fd42f91b1f38ac55f80be264ce827db401ee0490a509033806dc7e53e6b9bd235067cf6fcd4262c0230f998ad37a23f40d0fb870b842ce7a2d129d4240ca7facb3e01d4f75fc2d055dd5f9faa9ae48fdba1648550c4cc10130e358806d7554c41e8e7ec60ad5c6a92da28290c675c465ef805e2423825657b3a241a0408a5a5091e3e05d898db2ea3d1991ad0a5db2b330adcc239a4b8a80abdb84fefa788ea644948609b4b16fab1d56d493efbe9456c2b160dee6b22f820fef7a4a15359e23f38e6769a5092da894b036072ec9deaffa6840ca32f42b91f8fd7f15846ab4c24f95b1135ff3aa467d9c6e101a16e2e9ae800bacd4d7b387be07583cca27439d5bc44cbb5c7ec17763431263030e35c51c6ec14d09a310c4e441397ef9e9d94f729cd780b4d561af649d9688d5363996b306036e179aef10105eb85f79df248ad40b78203ce36002e7016699b1493b3a0f5cb29a2e356a712f35d8081eca3d4c63d6863bfbf35296dc6589d7c3b2902b358ddb7b00eca8371b9dd090b1d7f8fe017b7aa7d27976e540c57468ddd94506f6590520e63ff253477766bfb1a72adf943c8cc4af5142af75e739e1dcc492098a6c4bfd265cb0b2a0ca5ce45e1f30e20d7ee75a87e5667fbba72b9023a7acd690cffcb34988c8e5600ea4ad77046a39a699f5522974bcde8ddaf69a705293cd325b1a432e74fa7972f4c7a3d1eafdf9fffc917dd853cf25bc5257129f63c045219ad58f511ddf89419fbfee981a5801a4d8a5875284bf1d2ca61c4fc2a60ed0007ca7152eacae2d387bbbe19ed6c3a4096ce6a05cfa7ff321009ed9710052cdcba2902aa12b4660b9e27418257e084bf28711f59ae08b942dd95287aa525667a9d11d40461743d6f2e69e98b92e014a455add172865fea974606cc1361065c269bfe4c8595755b8bc21b9895add571d6d693e0c629254a8157572aeb1a9295561e30a09852bcd3782e772a1bf0bb8246b7d14340887c408c995250f15f5880b12174bf508ee3cf9d9e1a3c6403f852d199ecd7bc0280def4d0b287a50f567bd25922597cced48656303c4f21370cc50a74292c3018dc089d132c2dd91fc60b8794500caeacd0742e8fc04fefb6aeb93679cfe08a24f0b500dbe09301b5e941e0e5a30115a433001dc401dcf073da28779c83e5093f96500f2b83f4f88ca1d47081d5fed166e728ad4ddc331f3620fa469da97a37acce094668652a0bae0252201898f490e4014480941d1aa837ed637a21b742ac75baf4f4e5dea0fe82056e3f4cb87280b0e60b9254515cec5286bca36f197d15c9aa743508419fe8a5ce01a6b472a6f6cb21edc8d773528ee29a593eb40e37502539bc9e1ab35e8fc407da69d75fec39670a8a46ddfa8a029801c7502bf5fea26d3465f1d72e8e9ffe06b3e52b007b86bccc9c6a4a8a2ab861a63e66fde8cd52e5b15611aa7e58ef273a85099ef097458fbf76c6843e91a46e8ec8d1f1e1d39b225aa8b58ab579d670ffd1af7d4e59480d3b4cf838c78b2f0ee626f79433b8e94b020d0b198394a1d3a704b8a04b3ac676af420ef6e584aa8747421c6aba6b68d280c2075da7246860caf17a6855e396335e3650a761d82982e7ed9fe45e0f13719c0ac9bbbe4ff48985bc369e5931b2ba795ec1e4036787dc50174285116bf5f8a29c95ccbb775052f30597620a27c3d03ea34ecee8db42c07abf4a7f52519ec07436a9be906092c89c40fade5585e513d6bdc3ee26ac6a0805869fa2dcc6edb088cf0e0eba1a85c8a059660f679561a2d3f5502be42fbc746c2d71c0ac6a8d7dd6b1dc68ad8707ff300fad381f04da9a3999ca69bc415a6b7c1a51e4eb5ad12a6ddc61643a056bb602488ebe7af557420ba9bc3fb168b69dd743db0a4185fc55a4e3a69ea2d1affe7b6ae90a964a2f1d447d4b9c8b5223d87151a1c6c16ee7969b960e0973e16110db85ed91a4419661d1898e36739fcd885fda528dc9189ae377cb2299b2172d98701f1bda1e2019903abd2d684a862e5ebfcf3dd8646fb6f5da7ac0d5693c80b2c5a3fed335e41a8ab21d450349aebfc342aa6d3d6df278fdf23ca1f734b6516a235f4df0e7c344eda60b0f7ff0089353a22d60f58d09090e5d7b0fee245e421507a189f49c43eee8a05124877ca879b28e9968179c88b5124015220a810ff28718c85a181ec0194e97167b90930130109a6c7f375d72e490cf925b517d05b0c228b9bb4ff62e0be906a41597ef3930869378b87ba682504198b2ff25304a82bccf20f39570dac18f7d6790bd32f8f857f0d9a61a6ac002130a4d9ebe5e7b78d53f9b9261a94c14ffbf4a04176a7c70e3c58291b80bfc83918078bff3ae221e4c6ca110a969a52a94af1b4b312ecef5beeebaaec971c6cf2a526c84536915a16b89a6360ffb66fe942c2e3396ea7fdf2099742421fb6af2b05c9a47954478c7dcead7003aa76e9a2be4e1a6c0de8567e6a58fa06e763fdcd8ed7b0cb5586f24eb9f5b867e535b79381d3123a5619a83eb63f0e51fa1c7a8afad5ac6005da311691c4b28f6e5a9918de28e1fc3f0bb341c60aa5742c6ce51ffacb429765aea6e6660396c3500cad30e606dbc226bfb267883f57be9c5dea2494e3f61cc8c2e1e229a1959829b1b372572510e7db8b8fb0088fedf259ee39fd0eca9c13f368d1b42fff7a163d2c4c9a0a0b8d51ac77032e8a1c7c440af3cd4e17c88f11e3de8c8e32f29bf79c44f49cc4c077ea9ed5ef4543d632952c2df88bd495902163c543016686d43fb86d3d3526ef1e33ab285332101162e8cf9c09f2c5ce631c61a733a86b5f2d9718a8627232a635891d3ab8e6a099b883e6f42b36f316b6f54a8a0548e67cb03ad612388f51e380f73cdb11ca798aecdc530e63cf58816d4f972254626732cc8c4c1a4a3de0d8a7acba89d37646bf386b9972ae9f2ae26dc0e941f913ec1c0e20325868e14796de53dc30d5e37160017cbd2036def19c93a940cfddc417a78063b7909b0d22d924e52654320028805fcedf4fe3b17a70772eb38a2561c5176193c074d38da5f8c4b52e080ad423563ba4547630351fcfcdb20c11af46e2f625c3b4dc385a439c2a442cf52740a5abb86f27fd295c9ae8e224e984cd33f0edbd34096efc85928268de869aa92344ce13f21e310afdba549b5a20ae02f21e8e5bb8de06763669c30de0ba22cb8956ba85441a95c9b859975a629bd101e90ab056842a53fa09ad7e0c290a750b54f85b93bda61a9dd6813831d229596da5a0af43f9ea72226bc2280229a7598e4ad811713e04df51e6eb8eb8b9b990ac9484d26aa5faf2ff3169fc992c9d4856d97d82788bc59899d92a60c1e2c3673a790e28071d7a5ef4dc3f9b9f938fb3adfd2cddbc71c29c797758e95a78159c93e4d7f824752cd552b9c95b1d8041ad7292da8b5112309de7f65df1b59fcaf4652f8919f494b39533a802ab59cce26377d2520529c8b2ca056afb46640c6bc230bf305a1b9b069406d98db237683a3370301f18611f2fe0630aaa8cfc1d0ddf9fcf14ff22ab9c11dd9270adf1188c415b72113aa7c3ea77d6c0efb093621c811b4331d3745189efc45222f1ac5dd9c8ceee1f60f413a165f24274ebd402c29e512c30f65e67855ed37ea76172ca07e7b5f5d36404edf3c3832ed7d45036c9bbaf72a45a1a6ba1a2749c4551fae4fe3b5a86317741a9ab4803d1b9dda5ec73f05b07caa5db11c5af64533fc91cc460df8677563f648420d5334c9d1113ee289c68ace4cb5cd23403e6b08132c4cd04a29028b232e76bc7259051ce5692531fc866e7a2283a8c50021812e5721422f64292721849fe3384b0160ee6ab2911f81defbed0c9b94ad9cc38438490627387e53b5412a637aa73079ac5fc81ab01242faf7950ecc77d90dd612ff254b3ea8f4d924ae278e764fd12c243ee6c7c0924dd2cde3700e3f239244361010bb277092b2492c01df6259457a18a924d7f4f0f0005db5b2f839d29f813c6450d92491086ec7767ddc2d5cbf179bd5b9c60710f085363f13093844dc1b8d7cb9b4742dcd8124083e862f6ae78b6b9d9653ad23f9f40d20c33caa490e302621236d7a57756d77da07fd9ba681600b96aa131b961ae52e752921e272aa34ed1691a3f18ced14614f67967c52f23f34571fb212c425bc18812cbc44953c1863056cc3e9a5a51ce04c014637ba7a8abe2430aeae4768085e5e10ada70b43202a4747dd760e9dc7cbc88001d33624173f3610e74d118adca2e0f12f62d6a84c253d2afd810749dab6b765eeabd2b554ca80c6f4da820e79e9320c9b6d10ef05884cb68b06a9a6f8587ef8ec1dbf961f6aa85673ed5f41e1a98485b70d2675dc69c2668d7f9532bc0a4cc8761f66279cc8a36a5cff0584fb69e669396598d5c66943b498561ad6eb5eb00e64b1deed8c6e1083c0ced716c8d98358af08c1455b48cb1c12701634587deed815087c31d4426356d37f6b93c96c1bbb1c3f8f22a06cf9d54643d6eaa05ce1928e75348ebf9a34e41c325a3ac3026145b1742a0116ac860a8bf89b753c7eecc705bf817cc2877bd93b91fff3c6b90ec7dd7179123fc0c068bb4f06efa10931547e82beff0690a0280e193263186397442ea3640c4af412da6838148962b6db1fa3a65f24a844018db88ea3e409c947a0373d46f1186ff30c68744d85a2b89b8e1d7bfb6066603bf674312c753c01d9540c2656c97ce32d3c048e49d935113c3a3c4aa6cee3b5e6cb5e17aa5bf28eb61065bc27132da9a1372e17222c405d8573a011cca025880aa5eec5c2ddb06cd5b353130e9db35a314e2c07e25a4e71bafb8e12f163fe1e8480d90fea1025462fdc28e3af7e26067c30e47bf43045efb39beb01f2fc84072742d1d829584dea9841d3b39b92b3d0ec487fc98d20c5397040608fe0e9edcdef68a0fbfcef4a1924577aad0bea2feb04ddcd60696b06ec827aa242d3b1f6cd1862ffd3e9ffe80ab129ac9fcab0622b901be2095b3cedff8f64ea8728555f867a0b7a7413d54acdcdf49cdf78c506fa42fbf49e7a73d890f3f77ad0fbe8c34b11cda2ec750afc2e55d2b4d14a5be49f31204d2f5f0ff27d063727e55908dd0f4ff849fbd4412ca1a0f406627752cee09e7f4c01c5cf4e0b18795f1dfcd340758eda34c766606c8271dc463ce082e89a716cdc96b9bea0453969c4d8a1e5f6b8c1bc73956b2bbe68d72f031c409f13e87101150ea0c10168b8010537a0e0025438800a0750e1021a9c808613d07032e0eb4ed498aec64642c71d1156e8648302996319ac7e604586509ae9d705985a2b2a9f82a394a165a9ded4b87d1ad76522077d37aeefc66119e6709fc6e9dbf87d3456511421f158e787cb97e3fb6abcd23442e62cef1b18a9c2ee6337c67205277b3c149b54aa7d412eac946d86b87690656b4e2e65364476145f985e02fc639f858657cc409a352bff98b0cbc73af8b993c1fc3fe625800451b65b5d003f416099701b83751aedf75f073fb0f6b2c58006fafb8c55bdddcf5820e211b3ac3f49f506bc8dde4069ae5903f732250f0698c6968aaf7e71ca344ef2e37f99602f47a0884905338dc22fc1591ab3e4bb18de3625699d58d1b565154c3201d1e2355e97066046c4b281a13ccc49fa20e824ce75877929247ca56ad4496c8fa1e21c7f2c5d06238d69a717e7da7b61a7865ba7eddea228b18ed479fb3ced1af958dd082720e4d0bc8327ab4db26285eb1475f7a63ff81a8b922a51a7f2d6458286dbb92e933a8f7c1a7b60413ec24fade41e1f6e916ff0edd95d4de1a68d05c81e3c3d5b4ad6fd0a2bd9c4bc07b981872699ef6c63b9fd03415f39260135213db7d14857e89a1854014530151b0c2c6ae04f7b3b7d028719b0db4225d6e265f2127a79cd7bdd16a86a38c702bc26db34e7212571aede48196430f116603dce6ddef97060c3de085c265e1fa2999be0f0b8634dd31b37b0596ec644bfe48623c0f93820b69fe0e9fde67769a0f3e8dd9532e2d54bd32b37aa596eee40bffc4627d8b93860c63ec1d7bb4def0140efd1b7973a961ca9290cb29739e834a16f9a032ab139f035e7405e71d0c105b24f4939823021015dc8bf1712a6369160d6586d6ada48c85f115ab02b3c4e6f5eea1113c70d51f960dc84960bf7f2e82bc8771b2cd935b46eb1eef01239bf3f642fe83818d6ef4a0799b9da43f0206e10e74d89e139c8efae2080cb260a8625624bb21d83b0cfb813fc0767af522323d8aa6eaf256eb54cad042f3823a384ff65d14cbfe023b747da43302dda88f3ffa40cbd034c1ed1bb71782d9e6c58702bafd3a43b36848511175823c93346d7e99f5220b2a06d3e9cd2f0d1894e61a174c671e10485847cde4b644892b5f27e2c0420f75912673bc54cf318585fd58b8a18ebbe52949ccc567d29ba46b3f995dc1c1cf234944149797a8423db5caf76f04c3879381cec0569b00097e53ed86ff389f1fbd663d382bb31344a6784013e6033768141b02ef06ae85da57d146892d58f1e80e804ab72eb609103013a1f66f6ae8bec2efa514b405434fecaafccfe00d82d0f7316b105e875e6c6dd0075f25e04148927aeb3e04be7ccd4adb39203c057ff2489926e934d995f140c03dd625faa6048f629c9003cbae779cb0dbd766f42c7534f1ca787df84efccf0f74e9dccfd0ce67c369eec2cd8c1c27778006fbad871ddc03d76325a61566eaa305a358e6875cd254d1e459316fbc2253376af7ca9b6ac145b06a86ae1431bbfad7f2fc1bbda566e2ba55c4add1ea00b80a80309249a410ba4fb8c0a1255224627bfa48893bb5dc5873876fb4a3a3e13bbcc311ab731ef79f2887cb61a3b4cec3765e1af7c4ed4b90a85512602341058392b76c299541c7255a199af923a3d75305feb2c00674a6d276b9b84fd2ebaa58a503162a95addddfb8f3bdc469503e1182fb4448c1b76530d2a6199b0546d516a290d759bb8ec618b407a897a21c035cb3b41ba16b6040c7918288634fc524efb7a66b0c4e530b0a6dbdba85454d39a1f95b44dd03ae6b4a4d9b3df4aaa0a720a55b4a51f0a76557b63f22ca879e2207641da5ba797908eb092b37499cb114302a0d5dcb5a950f6001c0dd3f70cd945e7238fce42802b158bce04cedcc3012185e9a41512dbee14a01f92fd16def871baf038253be7d105acd2134cc9bf010a8c42688c8ec39ec9514877a0d60e87e99a235a8d97f840f3a5d760412d3f8c161b7f5b2d8b4efd600d6873ff41a9b3742472a6690739f2eb69505ee2084e54d2850039e77ab89bb8fb938fc318e8e21d56612fa79112487f8aa7c39ce7601b8f047e71cd9276214fa4e2636a958183bd710a96c596e45cc05a4996548b340ace47036aaba9f2e41756e2d9e71af1d22eb0ca49dbfbb6ca29d5b0e5bff515c0db7fbb3e345d8fb2a8d3bbb8d5209fa8966df02f2c7d559f98b3ad14863015f07e1d6e49e2d24e67fa390072396456fffce06416ff53c7c8b57a94c30761bf0e90d8b43b7ca616be174368b1cbd52719cc9cc346df855efa9cb551ab9dc3080383508e207003c927e32d30b99220cfaea4dafc39a89399bcee380efe716d88a3e3f34573bd5c907675211cf096888e0b8d2b1729f69c85c2807b520e7d8fbcff35cfc09c8a05ae76482c87be3e04b8cfbe31a83d09dacc1688b4f33030ac7ca9b3d720410b88cbaee6d46775979a7ee0dabd062009c95f8b9ad73ced1a8dd88796ad1644fd58c8f4a0765c7dbd240de28836a67ef156da1e96e105b3629b799e9533ada2ef04be23eec0283a30668b4b9a693e01f2dc3de5811d337f8608c97dc9602fd3e002b92c30c00cfb72d3d05e7373f039c70b30b0dbf15b2cb6d0e59328908fcf6d735aeab47dea7f5337670ab1da6fcf9f651b4ad09019dc04336cee67cf0c43b94550957a7de4f3cadad98093c1d4cf8d7b9d27a240468c900d481fccb7b51b5dfb978dc23112a8aab2dfbbc2eba3aa1f9df8a4a8b3b1f77a0fca4cca1aa4d5ca05ed2ac2066fc72c01f289061f9066feff8a291b5d9ab0e726f2a85256c76c742d91f009ce6aa1ea1db803531a0512e3beac04a5ac91a59734aabe60321faa235114370f6e9c924811a8fb956d78966aadb9e17daec763d7a7e1d1cf304cf85a9f7ea183abf0ab345a918099fc9eb537078a842021e97a36eae81b5f78415319222cf1ca5231f143cb55f01e03acd05ba11864a621f0480385c6ec3abdd7a337bd06ec1431ccaba330cfd10def2907e6b84e0cc0833225f303e171e276db6931d293bfad305feb3d54c36261c9e8beaea89d66dc93e1661bd2153b6f21dd5a09a826a254bbe5a09f57e09b29bd5863c58346d41bc92fba0fb4cb839b1c1ca293bbe77ab887403b741e06dad7a87a7412447283b2a20b3678c5835ebac4efd655447d06557ba8984f85671c8293572f5d6a467c070aaaa0da51f8d1f726ca1c972e135579ccc45b008a6423c6e35866715c8b60d067e3f6d08c91f9911609f2548f39801fd12210d5b7984abfe80b0a70e8824afe080526c97ab597478c705fd24c4a686fc0e99188559d00e9d9bad809d0b8357c874c045a50884286ce74467c6800c4865765a3bd79dc85f4e11ad11213e320c4cfbf9b92c1688c714250df352111abae7cbcd5249e893ec8afa32d38103d476ca6832d5dbf52e72aaaa718e11aa5dedee11310c7aa84cb4b02c3aa77a9ad274aa4b23e885c51925393deb494980436e2746d0463b7fa4abf921dc5b62205a8d27c82fe17e4dc355807dd567e47372c3ccf4d1b376feb0bdda747b654174fba1688a9a0920d0d15786a0d229fad9e009bc9747bb689a17456046d1ffa846908ce221dc61b9088f9e1466191d634f9b8e6570ff118e13dd9905be3d3099cadba85aae1e2d1a711d89414031859ba6473bac0664eea7a6356308193c90a6e0d5df930c029c324252a874b959294f7fe00747257f0f48afc28e022d26b2280826f22c23d73de43437b38bcbf1fee143a3060f1fed08be127337eb9796715476cf8950708ea0a785e0e052b61f2ca1ee48cd5eeccc8967de0fb830350434df77a45c5a3407c33203d669631417a7e8cafffe3f385df2cf80453c7d7d6fbf38ec072e125fdd9f51e991fc3ca137937761892809501cf3e1fa0fe7a61cfdc6820b1aafd94b99ad092a94ea249e3db505583104affbf50af64f9791f124eac4845a5755e89f359c46f6b36f7f510643aa2e38b9ca43c818457aba155b61d0fe32554d19dca8ee77d8079e378bb723697cca4a39dbfd0698012a0c814c442a4831ae8b0908639234063004aa602e3990987e3a88810190ce64041639402415010fc032003e4b824d767b7121b31748e7e1265508dc019301a0cf0a101a1c1001f377845a0fc26e77d53f09aa7cd0d5cda28b940137d8de1f79beb140e71c312e4afcdf968418ae7de8f7d973ab2b7c8e8030f436300a2dfb4363b0600fd8654d0a7857aff5d68201f265a3212b66e25d13dfdf9d175deec0f0d7f0fd461987f048eda6fe3dfff923ec8d56dca2d858e161a71a031960c7e2001ac6719e76646985632a49bf3410eb522cf5afa462eb54fc2646449de74c26e95505838721115dd18358e37a528b75c5011d8e09b30387d2017bdc8fe6342c16a955ef6b6c5011a473a4135914133196d0c345d83bdf1aa47215984cd17d1c79763db4fc58ac17ca0554d504b34bd34daa2370b5d8026b1704ed0b8538897fb6df612f1cbd0380e6a29dc7ff1fe18f33bfda143e1c3d04243d019f3fd8107a53bdd74a7199ba527122ff23c9687ce8e97235bdb78832690d38b732118d0abd8e3f9f65b7b64819ca991a78fd4b54b75f233250527706307c1aa9e9deb5b00807da8095edaf7662c0679616093a280fc4af87d7ad72d83ed724120a719122382634f5deed60512b2a7c0f73c97ed0bcc07cc0e02b9efedb00936a5e56202ffa47387c07fb6529fc5e59831efcac754855caad1f12f46aab12842af3c95ecf9c208ed333aa1214059809c5742a397953ed5197ba1d2382583932b4436625063ad714190a31901a93a94851416a4fa820bfc1569798298a7416311b503645844c2f84ab91c3a054438a7d1e357e166a0f949cb606c07724e658a41931ea04eb3fddec9d34c63e1133c66e1cb818a35d881dc553a46a9df9aaeb98ecf142cd2e8275393070b4bc9618a8026b82c3b90ebc3e103e5bb4a23d8d6a7e95d69843c4efa3e7e7bfa90718630e4f3b8eae917d249b9438e312175df09668ce2aae7a2742af079e104d07b3682e0b3e637448aa5fdcec2414c6b38f294c002390a5acf4505b1ea21926a3399542077edab17e66e7aad9da3025bff36a53ab0efd7b8e71bd6f45526acce3e68acff14d0bfb849f7713fe72f9dc21afd3e8db8046421deb83aa8f4aa7f0fc240508419e204c227c438a8057b8e067668077bdfc7e75eda41924d24b2754015ecb90aa658699178294a860644c9740c45a91412b2d3c30b82874eb13419e519793eec6d5e2ad8ee8a0eec7172b21e17d785a0946e03175c8fbd5f3d673e1b9a83890689446e058eed923679599adcb41a3817a4200a6ab1e2fa26b134aad190713561ea7aa356bf6c5cb84e8f240cd2c69784b7f1775aad81a894955a20be1b728c3241b3222abf432cb42f472ad11f6d0d0784807a90adf74c3e6aaa686b58bdf870a4b2ad6edab0c3f39a58a53412d4d3110acb7580b26ec8a2d2c114a034f2800894b524880391284942cc412c1ea0ddad3fc1c8fa11367321d7e3e7f96fda54b9716466099b8e22ea20c833334e2085ed2060078120060415b3797bae471f08509250fb4626b402415c1415dd09aee6a244c744ff8ac345e95f5f9af2d99701ca89c4c3e14199ebd9be3aeb25fe60661fd105639b7065d76d4e9ecde6e3ceb141f95dc2f445a4794ca5243bec95acc8de9bf4c55d9d15784d8833482e1798ad4640306db51e469dfad354fe30b414de1d7242c73f45ea05794e2e65f20740138e59003ba27ddb866e71a1887188e15601fb819f3013e3178ef1005810cb08fee4ba971d07492bf768df252f0331e4210f396d81ac5b8c9f86b1d3e4b0e49054226f0727e5177838885cdc9a3688a4794ca8f3d0136de371ce8fd7b40a41f1e4637cf4d04fe6ad5737535e6a72f89e844c7d81ad1ffebf7481d3b38549523c5f3c75eff250601aef71d2bccc559569ce17b7a7f7595dde27e24cce91c26050d5817f30622d761a59ca531f5d42e55a405b81639a1ee00092de3d3cf72c315fb8431627c5fbf285a66e45b967927c0581e2f9f964cfa7197c08ab40ee9e7148651a98370dc50a654c6ea5fe8f40645e1512aeda115e08e136058aa6f597a44411e32c5e8a8fe6f338e6381cf6810151526a09122d27642edd409685f8875fb2655322e9429f23a92be579d17070e6590a702cda997aa90a3db13e484a74da91c25c4b9c8468c10d25aa59b7603900e92ddb633c93f6669a5ad59d571b7b6c62d97341a9418a2a22a0d6091ac21bacdba28724f820646b72531d0056efae619485ab67293deef026cef386f4a5fcff4ab77698db53a06703a7ecee306b74b886db217ed9810d1e8633a8f172c7ddd4c4058bd5e5bf7b9683faede26546e2cad5938153761b1c51e47307d78e497c208e12b2b9782b2e55800f6783c4d89ae188b2cc378220ca2113387e69672b24329cb6922371e97a76358cac5d779c90f5ffb3f75ea405e6bd97f4da2b10b5c675ea9bc2ce6f8f85c5168762e9903167d1f98b0e1a2d5d488b0634b3a1df0e4f3bf4f5a3e8d1271b2fbaab5a87cd6c86782aa795c9d07bdf9971a87487371179f8438ae5a3cf677aff1b3446d0f27f079a85e130eebc247ed54fed88619defdf3d6141abf535ec0daed1d7e9dea3ee813a1559e74c182a885e040c522e988e7866b62140abf665a94108a7c65769c75a5182c3de5cf80e692c7eb62aa435387bf90ca424bd4774ce356da1925d731f118cb4c616285817af631625d92fe659f011986e165fd8562cb8e6b4d5d2bada6e31ada0514ad0d5255a5fbf9de57049834090158caaf7a9f5edd3015cf5fa5c0d2dbf7041cba89c65a0dd9ebde9a10c4e74341ff2a6c052127405bdc34116e159b8cd8ecc26f9ada96a85b1146b41f5503d6b2561f39ebddd3868e0c4fb70f55862d0a032e5b247f8edc9178dc7f70401e2e7931ab576bc1b5aa5c8cbc5e5ede9772c524fb19a14612677abcc749cbafdd6f7480d810883f76399a27a56df21177ebb017da5b2af363e1e3966a9af7c1b41dc3e6473ce8beaa1683fc09477bdc8d04bd5752253ff22b75d5489eab114b1df93b88f579a6e9281c22521043bf0e6528f5ab61b58a346726e0e1ae00d086252a7cc801676e9b0bb17f17eff2ba7bddc077631c47069b4cad7471bc690207bcc1b253f3aa0bb5fbaa6096375e261829043d4980ebeadc1e712143f562fc23bdc6064f49e67ba1523ea594e4ff648cddaab8d772946d0359f8f824fe62d7d381125bbe5e801510f4755d5514dcfd3681a54f8894687158266008bb5af85844e6d125d6b4b25ea81fa5db28a3328612b9810cec27bac377cd6623e144f6db0b080b04275a227656341c9021144577e453a6d4162c4aa203d7c2ca7aed708ed2a78acb14e95fc4407aa2a303658272b03cb594948a82471efe369f8812b9276c9587c6291abff3c79fddbe93d138b9191cf68ac4ecc546aab98952303b37850d7300ff1a62f9d2ae42ec1a72b9a01eccc72c8c95d453c314ca14379739043c67783fa29061220b3433f04108990d1af381931473b91da73625f8c6845b4a4a2714dcfb21c5af73e40b7e70df323c9e5b4fd8dd4485a452aee40814ce4ba66c3215a625de45600915dd96803f41945ddb3589674b991aba2d314a0ae1cf8a1add4a574c88ae1d5c935ae82fe7e828c5d8acb7e22e397f3372d7f7f8299839440728f989545a812ff91372a29d7896cec37a54ca9197bcaaddbb40151567d2ae2be6c3cdf2a104435c62e10f224d14a7827ecd1ef0784c000f8536cc6f4f896a352873790b61b6b373c413943cf3be076973c9b0d00f81cf58bf7cf683d733a7a33c7769cd279eb300010945a9c14a20ab0bb60eb0688ed3ec8bef82aa3d818775ab47d185af3a5af7dc4b45b394fb18e67457ada7a792558d148a6b6b7e677a2b4586b6741c9941fa95b9c13ff1e13b4ba60eef39bd481131caeb86518607058aa52961f40364c523fc7581c93e65d16c0f769dc24202049002a79ee616f96d04247ed0c4affd93222012e9c38219fbc8f625ce17d5ea8366968770340611c9e6ba7338de5ec4ceac5fa58b03a66451e1b78ff38f23853868d21e637dd7887d50747f94011f7a7678358ce51f07a5f1606cfe800f4af5c701c20fa9385c3156b41ed3ed70ea11af0e2695d28b9f98bd3c70b7d241e105ddd85ad5821cd2c89077b857c0f6f0c46a4b12ecbea8bec0a0d7d644ba3ec4e5d84d9bda44a226e8e9538e8af7b62dc5ea7ca7346c6dcad7fde1fde468c0b994115430fe35e6fad7870d874adb2928a99e79a28854f230d74454fcfef8b36a1f540a36768725450c6faa9d0bc3ed9cf2eb40fdd48facb8722e512aed25b9297e396da84aee80f8e9fb038d95f5e9d409715f354e18bbe2efc338089c6f9759a8288227b81f273ec852490a18ddde0aeb920cc06530ccffc50727c33277293be09d34c0ebea8ff651ecc2edd0836e37a06a50bbfad55b14d349f81c3fd9d8597fa9c01382eebb81901242055ae24d3ed18cf659756dc0619d461d699041c819a012e83a8aa4bc797cf97ce4128b9daebb4887a763fec0b45cc3262871d353045e63149ec096f719ea8b9f357a46b976a4a52a94c46438f8186b2d77fbd17075b0e04a75bf826c068b1d4237345eaa16d9e0daba712e3834db89f6ad87f6c8084ba2a7c1b14868a2d84d66a8bfa7037b617dd285b1da66d29026426f9c5b3fd64f7037fede8944f77c9419c3980207d2b6cff9f5c06ff30b640854fee3c9bf111c02afea591ca7be5d081bc06e23ebebd5df60837e0c14daee885ed4920c4ac51867a9eb502051451bd60a0b17e93d928a0ba579d9b2f4d2b1f622bf51b394ee4c5b8f2476f9666efd24558745138510aa6fdce61609727eb9624967f9bbbf41fdc46b9dc3f06046ad286f433169001a831559fe2cdc1982136203f88b78886abc65e2504e48b78ad738f31ba7331a52a786368d4b1a2e705fdc080ff316d598246181010976c72a65a5500180351396c4d69c1709d05e33b468461d6a2af3980c3cbea2548667f46c69da8965246d3d05d32b4807ac933373a818aeacade32b51b34fc2036748cd826f985679194b0adb1a5990f365b92f63db11ecaa960a69a040f07efc7c8c0694f5f531cfca5da81a466c70da0c0c247c641ebb43ff25c30e15794993bd180b9865764bfb956ecaa47111d3c401965d8b4ee49913630b9f980c7834a9d5c97f9c3b939f47ece0aefae346e042ab367ba54201e95493a751cd1ec48d4ff45b323d795eab0d1c55428f66747876876245a9f5757a7e68058fe5696e0626991bca8e6b7657ef3ad70449b86b03c367c1e8b632fa647190b865a6b8d34420869846cb2f7967b073e0b340b570c4f988214e64fdbb7d30f298644219820d06c4e6d5e0cafae3629a54b4ca0c17825301bdd145f2b47962716a37cc9a306a54dcacdb3459e212acfb3b85d15be50d2e483e0ecd12e4df44080685a9865b327a6c86b38890627a61675d2a0f60cd79b5ad3200ea221a230bb3e26a6b10b67d24ca23559bee59c7822d59ae9a23ca73a7990209f4edf24fd6d2288cc5976eab3d58aa36dd77e68473d6edee82b7baeaa8731b26692b553d66c74d1d7676cd9ae3dc6176a2457e4357cec8822bd8cb84b150e599f51ada93fd145a34274c12e5f6bbc96d6f60d4fa3d74db76819aa85fd66d6e6b1eedf0d63648b9b90dc6d429aae8fc42ec5eaa35d14be79d32e131625267803388906314c1b64e1069c12acb3c257e431e44127ac3ed82b4fcc64aca75294f060d487e7ce9ed343ca437b1a94f39e30f56950b672489a65ce1ed21c9e2c4f75bae534871ee9961d4a84e862b7db0d8792def4c8327ad3a09c3138d448bd35a753e84d96383b5b9c5220e9bec2b367f668339fde7838c311c3b3a741195dd810e3ac16a83c7bc289445fb9ea744b4873b294af39dd228f64f98e0adf7ccc217d65195de22bec409975d9c1667526bfe963d4a06c826699d360ad3f0dca8a1355e499f0fdc01e4466ede144ca52fe98136926519a7530999eddd06213a6af06a53667cc349ca72f0dfbc1300502fa429ae9ab093a7de88ffc2950b7cc9efa53812ace74c938c414797987ec894f05591e0706f2b367c6f97d3db387ab35d566d296d1a88b92a6ab931053e4b50cf585dd1323cba376459896eef58593ce1bf651d3d60e9ab1d38ce11879450e9dc8da9968903628bb27aa482dbad02b7228a3cad45ea3c189e11fad1dd881c050de238a704286b539316d01b159489d80124bb840d9e0bb22f72751280d726f992e695a26cc03cc2659a4c1d77c42749147882ad24783dbb90d539ee862ea9ee9ca7e16eb5996c599f504e597d92357e4edc3ce36286bf2253eb2864bae13446056dde1a0a62756778208cceaf4863d918aac5d62a163d04e0e8144a12c82d5639e3e567875ed62ab3b6f380219054498d58f90e557f70922322f9c1a9a1913944006060a2230188d75c64f600242aa5611da22ca2631968cbd59e28c5c54c1c09fc5fab0094415ec49047d219749ecb248068632e6b231532e105f18a04474b1c7feb16c3000c3308cd6d74c4e8eaf199b31f4e4388531e8e4301665ccbebb6c3a91c32d5710c8c8c8982087209091915141ae8f2eb30683628b285b8d4e899225e3cdf2d8123385fe8b2e32cb25ead1b498daa8388988c9f664976366896b449521590351852a61852fac71c444bbb299f2a3070ec41714b9428fd1d4882e33d30dbb32a34761c912cc52aab27cd843fe6a30346c5b57d7366fba18135409da4033fe14318364090227b27c114df8b6c84483da83e83062b31b76b3ac6241ba0504417cd45a332e8b42d949f6315dacec630981a026a936b559802baeb8a2b5437e7ee2d003acfc631ec7bcbc361aeccc6a908806b39b35383922706c5012b1b1baa5735329afa5b8df31e10b59b9a5307dba4cb8595fb35821a84db1d17f2dd68964160e656eb1a56ee7161b867538b0635dfd1617209f329253b7f4a6bec9ef437d0f518fa8d3519f3f50f1b49d4e271c9e4ecf4e3f2d3dd3cbef74e2b6d3773aea8419d020fd11ddf551842f8c41a7874056d93efe88764998c8433ef5ee769c9ec2a1f564eeb4543f4ca552a9d60ed65bbc050e599848de52b773ea346b71432152e34e97653b1ca7a36ec9b78d43dd92a7727cf77459a93bb30977baacc72e47eace8c3a3d08cddefd910a5367e1389d763a664ebdfbdcf093638e79a332b697c2ad1dd93ba72561ea70c4c8acfad655ac837bf7185f4e0fbd14eeec7de61f4de88839935c7f734559f504bb45c9408d868965abc1d9e888f0b28e986f34481fe49475c45c44835eac717a9d51b5beabe976fe587ca6d46536fd48c50c09b79bcee2b676d49fde44ea2537461593fc6e0c2fd77b5edee4eb8aec3eafeeb3ecfaaa8ba33bc7e88ae248965344e1532473ef36cb7957cae4ef4a27e4543d0172ad5d6bf7a9246e74121f4e61edaa2b331d9c774ae110484ead72f7daf54075bf314fa1f7c3c3d889873ccec1bd7b365d11866607596c64faca3ffadd4d376c1edcbb296896b2f7c68e65f73ebd530f7b5bfc1ea666ea13f578439951a69fa6bde77d7ed7bebb4db9d345ddcbf1dd266454f11e84e6d34d77a39e5763eefc5d794596371c52822c65a630049cee749cdef974adc371ba46bbd4b7ed1b8dd34bfd467fb79e8b9157648efbf13d75ef863766486b47eaa737f11df5ee9bb73d77b7003072ea3060c457ee6ebc227fb7b58300397502e4d44f97003976588ccc29fca3efdd7bc6beec39bbcf9ff76c7a31f3b4eca70c631be7bd0c9f775abbbbd7dad1fd7b17a3cae931aaa45237f442efa8cb2e87f7cf6bed389d7b086465af0756390492310c6495e5ab3c0bd952ea11946596798b0bd0a24092b30ffb8868504edae5901905d46af2dce4878486334bc351227cf20b3421cd21102edaec5023a409d048a5a4921464d28f2a2585576d4c264d97c98f7cf956687cc8f331a4524a0aafaa529d1e7177d5cdaec2f248f5135d541d96495e552689df53a954ca43a5bca354582675573d8c2f99f4752ad46d427a32491e613e3e157bc5ba462a7b5ef6dbf6eea44a61524926c92472a9bbea7dbb7b5e97f250a757a1befed747a1505ee85d4b7d9dea8d5d2d0f1f8048ee70abf3de79477929eff574d4e9aa1baa544fdd76dde9aa772a7b3a1de5a94ea98a6559ea5b2a533de5a99eca541e0e332c4ba552d953e7529cea3bba6fdd8f4ef5d885dd877deb52a9ef43a152a99f50ef0a915975ba7dc36177d53f950a7f47794fa550de511895ea9cbaa177d37715a54f9d4e47e1d3877f743477787bfd72dfa8d5cc62588f113ef91b461c216be44db7845fdef1612448bb280c8f0e4e189766f29c47399436311ec62cc09833a6815583621a2c3b2c4f744bf86e14d12da6f78d38a25b324b83a55b253b1ca6538abbef7bec3c140a8542bd1e85eb53b7df97427df7f4b512e44ac7e35d2aab111663236e70e16baebbbbbb7b9553125b4197d5ba21692931ad4d449c30715e737dee467b19c77533e3eebdbb9dc7795dc4dc56c556850ee6b4119b119b119b11d334ab59ab6956d3ac66b50dc95a6b4f354dc3ae691a0f32eee459d35d9c3cefe4791e3ea95017954ae1907e38336d18485cdaaa5871d9d247c489ba21d5cd682bdaaa381171624372426d484e9b116a3b9d70b815499aaf6e27d4e9439df047b9ad8aad8aad8aad8aad0a9b440b433892cecb8f88137443da8aa2c441b22cb33765ddb5e67038eca5b8fcd1fce130c3f1ba08331a0d6b9b8966ab62abe26b4bc399342cabb5d61fa13dfd902ca3edce26eda9996eea2ccb3253cc32cb4cf73c53e6fd46775b7b5967268b754f2f7b77aecbb0d9655c167ee0d9bbebcc740e875ffefc66c2916638b4d8eca46dc2168ab6536cce491fb199a9cd2ca5449c681aae2876c825c5964dfbf4286686f6167bc819596b5927efd8c31fadddc5697b7798dbb66f716ee7b68de3ba731b4a957a5fb59251fdf4d58ddd57ddc6a18781b0b276acc3198e260c84489645b81ff2f6d88a3bb5f6ca1e2f3fedcb449c18929b862bb232e4927e84a65b29abe58e307a17a81d98b4daa18838b19d2b92dfb8a41fde6396f4a347d90dc7cc4ff6f050d216c9da2b6afb36eca27edb5651f25e639cd1edf5decd1b0e4d78d5a0b49c1572a5318cb906a527b31acb19695c91c62571469c51175d74f76e668a7db67dca703864356e7b72a1be6b29a96718f5ec294d3beade148dc319ce3cd339edf3a276f06d38fc9c53725660ae6b2b85978db546b2c59fc5914a61b76a71c6e97c61eb64960755dba4acaf5c915cb19c6c1a9d233b3a47767aa0f39282da1767855cb1dc91ed81ce0e4f8fcf6b87079f947587a7c7e7c559a1b3e3a373c41538cc3a1c3e4e2061be7f387ca0f013a83b41042647fd56b1b74ef770e8237badd3e9a75a3d1ca33dec2e6466294480f281c24f3831e40a278cc10d74b8031eae80411d0a2230280c85ea5f8763e6b94845968ff447910275d51d22619e8857c0a4304d0b18148e02752886404104e643a15028140af513d880417d080acfccccd0d880f94e03c27c9fa161c17ca7c960becfcc9c208379e2a42423c38279c22ec9c8c07c9f390108f3c4cc830cccf713d880f9308be89b2e141c80210b344128e2822dc0a88a583145910d9e70861f182239335798d141d052198460b21934610b2cb022095f8802a6efb5890e1b1c5035c06cb48b3553ecadb54184922768c44ce936ee446be44c3fcd596bb78c44b57b98d164fba869a7d3bb5d60867641bba05dd02e689bcce73cd93ec63e92ad668d84dcb7d34988cc590fd34fd86bd3dbf46a7ab51cb779576e5a585f617d85f515d617689475393a5fa15f9d345df5d52948ddd2cf5ae97bb1802ef49ae0cf62757777777777777777d7d7566db7a3dfd1a21f242c3a0ddab72ae601e689675077aaa6d76a7af7132522da4e4d977e812e85b4a8857e8927ff90e3cf124ddebecfbb31cf9c0653b2f6d6de2c389bbbf0851307d3f141cf1eda7be2b4565f9428aad8ad3e8156a37ad4d73cecde3cdddb6eda6eda6eda7ef2bebdce6004e4e8fd2e2ffd16b17777769d9f3132e95897a4e2fa6afc8285ef47e5f00e0d0b395dbeafea7af43d2c04084e7e40743b52729d69d0765ef8fad3e36ec5b8067ba57fe69c2653e795743b325ab14f70e34cc7a1e9b2238ae69898539ec74023b76115f9b0996c6796b29da9f1f3d5a16c310cc3300cc3300cc3300cc35ed2e1c0565d8fedd3bb9cf13ebf3d9ce71e4a9a1d1387a7af6ffd77ebb74bdf75e10beb0b6b22c897b3a36ebadc4f5b05b2950af9a66ef9a940a98ec776137785c8cc61d49d39882b3b882ad6064b50783a753b4e5888ccdf372e7c3d71a24b8773105d629e39dd42e74fe5681ca5bb1bfa6647258f3c82c924794c92c724794c6d327561d660d6f538610e0b91b9c3a1e95fb7c3bbe907f7e37b10d39ba014c986ebcca75d1a442c36a812b8fdb0e5e818f18dfe81ebaecddba544f40b140c45546949a6412392646bed37ad86352a15826c4d7a55caf6a66e4763aac2e58a061a9fc17af195e4d8e5f81a5df555a3d0dd826b78195861f8b6d03dac56c8b9e98c4517882e1953b4db2b115dbcbf450b142a869ad584d0ec3de694bd9bbc9b753dbc6f58488e20327b980b69956131e1e8a5485a701b2da24888a851a7d813859488fe745bf8b467b929919c4bdeeda7d2bb8b658ad32d28ac93550ea752d3191af6180eb59bded51f179ce9d62435a922d5a35b81a28a3d772b15a28afde9d62ac895a02a748564b9c3f5c788e9aa439d622f93d17c35d91ebbc1706c7785e862b37da5e9166de67facb05df535a98c2f9448aed8371094dc1242f3f79853d645e17b45979fe882cd242396183e2e6421db87958a6cb310a7c8f67328c6c8bc3dac484958489f51b68f712249caf6767b4d4a2459dfc4f5952d0e6bee13658b6204901a1e22b984f3d347457686a6527431125de8ebbb31aad0ae4777add5e568715bf62e8e79edd61fd3ad40a6a04eb1b7918d58900c857d4e6b81eb4f54b1a7b7beba20efd5126acf1a9c3a3449d45d12750b875bda3b3c83b2bd14a95b13964275fbec745518dc79f5bc845e70275d8ec63fbc07911c143e0db7b47313075b0f4f9c062d97ad3e160dcb6223f7eb0362e1e064fb8d06e7d577cd9ccc3c1e23b376d674d59f4eb10ffa108824db872cd9be22e51ffdb0fe68f86bd07e622ed2a965187b6dcd23055b44093b7651f86451f75152d3fe6274a133f1459620ae4417f9449e58ca44152d7c618d2c29cd323a337a39d3384d339b858f9332b90451ca544a250d383a44bb456ed9b9977e726b60890669cbcc392b656525560dcecbe388a1580d32d1555aa2ee0a1d151d1a3a2a8c3a37746da0c2a3bda98993b76e2f8bb8b8bdb4e99616b7ac5b935b16b7973952471ee916d56deaf69247f6481ff9923fdced65d0902492486451bb7e7b792491dad53433c5be4626b959b2b6f518adc7c8de59965191bd7384f1ed6aeffbe29462d8c97ceb36cdccb28fc6c5856172593fb9f17f271491d87e1565db3d44f6ad9be55993ed7441b6efb0f0c5f8c9c3fe37932b732bc64fae753d5a8ff1acf51826adc730897185c86c02e34e9e1e9f1797ced0748abddc341053a24b661fa78dd6b64c6ea6712737e6d6cdf27461dfc29e656f62cfc2bec47e65afb24fdd39348926923b8bee346ad0bebbf3c81eb3af7726994a0d2e3528d3a0fd2f9de914fbedd2223a64966faf043f3367da4f1d1ad95ecbb2c79ce130cb324dcbecdbf64fb64782c2a6226718eb7a64efa0e8d2f1c8b20c6796d6b4e85317589fac1e413e197b638f2ef37651f89a983fe9969a6e69ddc56b8bd7b7916e61bdbe7158bcbe758ea85e53afa8d7b74fb77cafef57ff748bf7faaeefa016eaa1266a245df43eea96ecf58dd4ae599324d779b394274eaef5db8661309eddbebd2fae69dcddde7df774d4fd9ebaa8ab6eeaabab7ac95d9dc52db989c969cc10994933b3afb6dee2ba38ebb6f8bc31c69d09c28b9fe03031de097d456aadb5d61aa30bad940bb9bec3c2377f529fc560dd18264ede753d589fe7589fac08e3ce233b3c2fee5ca23234d1056b42e6931b2fcd649fdc0c6bdd79a4c17a1777ee34c8d3603debce9e06eb4deef469b09ec59daf06eb4beefc69b07e75275083f5aa3b831aac4fdd29d4603deacea149d460fde94e24b3681acda33b9166528349a6d25cea94991c147cf321a5c9d408a95b8e66ced8537ca044831a884b4fd22d7355e91a1d123367eac87c21a5a199393595ba20633db0374d115a135d220fac254d953537b9b694527675d1a9216cb25b7e2cf2934311ccb13d1a55382a3e941c1ba5c1f8d89252afb523a2e0b0971dfd464d3436184f23a68dbb1cf4de27bd6723531dde447d4241da953af618e3f7184f345297a553b6c6dc447d37fc32f7d30d59997b77c31899c34dc8ac81d8bdabe1d51bc48c681083c39de896231aa4c3d79aa7adc951eea45bb0a3192fc292f64edf61cf6ce4894f1ac4be6a10bb5dc1e79dc87675d04ffaf989693e82086df5c3538ee3501ac4fe06b192632b4c85a5b0925596a9be2f851121b3cf8f667556cc6bd14cb3d763f58486e6a23018d62101e6fa6559966559a6d9b36851ab1f3b28e5300ac5631c86c3bde0e6d4cfbc27be7eec30889d0dfe68d13c7128a318b6cfed73db52f0c9cf47eea1b63d44c5387cd8e5bd28bef0d9b6666b621e60966d38fcb23561b0413abf81d145bac4c8a4946cb3da2131bfb5b2cb471470c3adec1906b30bf17169eed8f0617f7c5123d86188e5c70e4199e62a879c5cc31ab9bed2dee873dfd094652a4b1759ce141955ea6bad36707d0785af9e060a0b78848fe8125b4e4fe6467b967d1f8b154350939718343ddc6e2f6feceed6be811d84664d7bcc49eb41afe11b53521e32d763af4164a6e0fcc2b6b988a7ac5b6690c63f70ec9098f8c70f247e4ccc7d0b9fc4f40527dd1284c617a5bd21895b1549a044105144d5304bc4120d12916f34d81856319011404044dc2862da67cf6816a98d06bbd2241e98d446f2899a16b6cf50ee23ba4a9f18bd4e478755b9e3d37538a274c5ce43fd644fc4891a6b03dd1fdc87e4ba9256de466a2336699f1c5f2ba60f83504f9a4e236e71a79f7ff6451cee8834c6184eda753a4c1e4ddaf5c76e61516565b1496c72d3af8409cd58e050f2e0d0904c261395524a2965030dc9b1ca2b77ea69bf64571fb60f0edb27c7cbeeb24a19a58c554a1e13d73dddea6aaf77aae2ab933b99876946bb53d395a03d0c424d268edea4c48f68fac961d3e735ee9b768df39ebdaf84a995c0b3633b1c9acd326bb35556825c99973e92a7be95205f76da27a905127ea0f084274021d9b16e071623eb7f548c688b28e1a928d76fb227ad98cd34d3c675dee943a554ab121626ac162e5aaf9ea26cffbcbde0a6942d2526e537185c3c8d2d27efdde30bc987584139de00b1425bc3358166ca8cdf2690d14948aed41fd93861ada24abde97e51e5252721f9828a2bf52cdf7712b247f6c822b56be562a75e0f9e0f1ee8a5dcf3667828f7b6239a23efdee3683c19f736202020200fdfdb8c3623cfdb74747474bc17f7b69f1f2fc6bd8dc6f33c0fc6bd2d27c7f34c474747475e8b7bdb8ce7b5ee99808080803c17f74c46469e67d2d1d1d1f14aee997e7e3c937b261acff33c16f74c39399ea71d1d1d257997484c339ea7baa70101010179a97b9a915ca9469ea7e9e8e8e878da7f3cedc7d3683ccff372bc7720be6839f6de99e81679ef40a2cb090808c8bb8f76654033a51a79df115f32231d1d2274bcd36857a673c4bcf7e37d467cc97ee44a8d4de365edca686696f125cbf1e83dcf4b0171c8f2a187191d4a6786ef74378e86ab39ba47471c4dae8721c3c34046401708a8fec5bb179bcef6e36d3a2f361d9d9f5c7f128383b1d16c39de46f362a3d96872727deb646b613ada663cd3510bd3d1d13693eb5db44c2e4c402623cf04d4c204046494eb5bb0b412938ee9c733e9949874747e723dcb246361a231e578269a12138d892627d79bac2c4a3b32cd78da114a3b3a32cde47a162a2ca50169469e0684d280808c727dc957354d47fbf1341d4d47d3d17e72fdca9ae1a31a8d96a3d168341a8d9673bd4b2cbd69036404040464d49993b3eafce8e8e8fce4fa793b6fab69f3049aae6fdaef9b5fb67997ebe178ee375d9c117b7424d71cab865cdf197d6176749421b52b88e7b4cb1efd00c48c8ec6bb6c26a503df9dcab4cbca40e9a1f3e19d25c21d9276d99b1ba3ae769de5e9ded32e4c49e955bbda75d6a6eb3022a269a476b5ebb024dd4952bbb09e9e56aa5ded3a6ca80b6a1776733384a4eb301e9e29fc4417964ebbaa92d28e524fd761365df79e6957252a42d4365d579374aba276d59e9ea39ea4aeab439d4fbbeacdcdcf4d50778458bbefdde54dbba89292c451d2e9ecbb6a433453ea52f70ec4179aa43b13dd727a7720d1451e7d45dd7dd4ee3be20b1dfab921a246ee4ea35df4e60823a20b7d77b05bb6d087dc7d467ca13cddb3764da59952dfe50e25ba78efba777856e1a399be320d7b94cdccc0216bc681c0e1f7c3510ace66727d04735786efe483b5443de01928d8f6c8c018d7abae07c35a0bc35a9b7a1703b3180c0cb3a8179c0b0cc35c6018f69d6c2d0cc35c6018766a61628161f51e4b3351c26c945828d57725598a2809518a88a89e5b5955ed194ad56f282cab3795e7a6def455ab345ddc4db561b13eacc4d11325a249b89d5c591f517d56866fe6d022a13d433d3d3d439f99ac1e0dbde1a99b77e9b7244bbb2519dd8e94ec19e16c3853a7d425e16e389ba54ea946fa26ec926e3c9b5c3d23b956ec464fa4993493748be566a7a373b74493e56434194d4693b1e829e7a4d3ae20ba25da29758b952b571a754afd36b9ec882bc26265474af3a87245727de76e89b369b03e3b9a2eeea68bc817ce0571a5beeeb058dfe46a8e38184495fa906341ae37713551a5beb3e2e34e425ffca250fd4928578ba45bc22ec91ad5675b24756a97d4256997caebbb254fc69bd9ecbc995ccd9c46f2e5932bf5df37818cb2ecfb58ac77d88c36827dae66bab6f8357703d54daeade3d9d68e0c9fedb0f049a1f2ec12875d925cbf652d67ccaa372f871aac0fe24aa24ea9cfeeaac17a95cbea947a7a8f623d9999545f59e06597f4217136ed9a3793abe1565c4dae9f3773baba241dc32e29d72fd74c7197d460fd1abe2e09ec1f35d8e2769a6f6ee5b2453365be0653274f7b2357e66dd17445dbd37323b7788aa0ec69498c6639c6a8041b7b627cec91f59ea22a82d224a6d0cf15508c5d8cbbc9194db7d4e4799ac9cc6733332b923b8aa4810c6000e5023294b040053005262081081c023192788003603480010b50c049025a3e7a20c0051247f038006b8789113a72b0c051840160565975a30004400d2045c48bcb2780930d574b370400025043088fdb58568250f901081a9a294b017de86106663590010c5c40090b548002139040042090c4031cd000062c400109f0d10301481cc1e3003b8cd0910347110680c9370a40800110f1e222001bae96216a04000042b0ac04a14203881f52401f7a9821e3c68c1224e3ca8c12244485a322222bcc98018475b0ce111efcf8f0488182922323c68df93331aecc9fa12901ce4dcd133264c8c0288251642486b99404690c3f9218ad1bf3894f3ef1792581480868093162f4b8b871716324063c477266707262d332b931b392c8cc4aa2f4861a1a9938b45a492c8458080d51816484040b2c5690c9eac8eac88e0f805e3d403031d1a141d1148122c7880d0a56ab99d4edacca9f91cc9fd11119649492caa05215f1dcdcdcf0bc72f7fa6182443214e484cea79839239c111c1af4ece8d8e074ba51d294e2921c6c8accd081e3926443d9105116928e8ab6b06d422c184b0d95a01a2268d89ce862c9c0437a04030f29cf051e529f1bc497239478487190fbef5399e8f261818794a6020f690d051ed29b2ce3fd5987f80264020fe71d72dff72792e86242020fa751041e4e24083c9c49607021bec822493c9c5e188a2e273dd1256b1ef070be1cf0700235e0e1148a2119f0e2fd69135d7267010fa711053c9c3909e8cf9ab982f822837c3c9c2dc8fd5924bab092a24b0af578d84a0878386590e8561ae28b443ae261afe128bab4088a2e99c4e3610f1de06123d9f1b08d72b39822be7411231ef6147ea2cb4a27baba46c7c3dec9f1b07b703cec9cce417ce923453cec1d449792e8ea1d033cec22300fdb26770a0ff1a5836e3c94572c4597af28ba5aa8000fe511011ecaa4015cf585f8d248443c9461208a2e289fe8eaa49787f2c7e5a10c12c0654fb71c21becc227265da78289190fb26ba668deba1c46979287586f8e9351e4a18e4be74417c99478244d7dc9929f3423c8c4b007828677200581e4637e47e07e2cb0c9235d1a57b9f0920d1255b79188f8278188b54ee23baa6d04c99341e462be4fe8ef832531ec69f1f1e1201c469cccd457b830f7dc8edc3630c5933501ece9967c4175a83125d2ab5912b3366004f0ce0f0cbdd72011cb2f211f2c52251c2c774d9220b085540880238646520f2c5124d00879d99982e2b011c819804015c44bed8a1248ad44c97bd79000e3307d434a0e6887cb13c0c38b2335d98d2027614b093809d20f9626d7ce0b0e7a5d07461443d709821400a11e5792424927cc1921c81c39e58cf4c99cf78e0303b00de814356c6868cc06e74d4e4a8c1517344be603c451cc9b32a19008719ccce7cde09922f98cd8da03cdf42d35589664a0184082034001cb27223c9974a4423e5398bc8975ae711f9525f3ac9a59304d049368a642e1c662d38fc86c03570d8992acd20f9526d28d144922f34003b00d811628725680587ac2f081c7e2a3470d893f6d4c8173a94c94c17bda13c72651e08fc034e4a016bb20f3864f5806760146c8344becca42424bf31632199b1d0504ea25450248a040b593e9c704041092a222a2a2a22ba3766194764967164c70740af1e2060ac736fe7f70cf5f4f40ce59861c80c83d2d022148a2c9f438d501b8a821fdb1bcb636fec8dbdb13c2f6ecc318c5e5c9963181d91414629a90c306014bdb89d4f94ac8d929292b561dd985dbc5cbc7e9890e591cca119349d7072327d300cc330acc58db925736b1a99389306b367ee4c9d6903172d3a6f580f3684f5cc19330b25164a4b729845e60c1d58ac2459de603cd80d76336f3224b3c9105116928e8ab6c0820516cab2f3aa62b556cc26c79cda49dde6e92004f54ffbf41056ab3e429484888828498e59a5ea225dd351e8344edfb40a52298ceabcd59ea19e9e9ea13cef1dc9ec1d2199616629091abe0fd71b9e7a536fea0d4f9ea79f1fa02714110945c1f370773b734ad5464949a9dae469923839f2063e3c47240e380e13252122224ab2b4540779236b24cd1d3a673d433d3d3d43797eab441149e4421224232fdc4c572633298f7c89acef9bf426ec99698d1a4264f92944936700a6c52c9d37132773323319ceda7809752693c97459f8fa332d13d62c3f516e4e6af20cad15dd19be10cc926381df63b556d8ccc6f762013d93892fb648aecc8735cb74ca7c89a07cbd0588a07c9c2e03c414593f3b2bd42289a33bc31752997a9a2b0e87648a35991c6510c180943078c316512cbde931da39ce7b8663e215598ad4c3faaeebba6e5ec3d445f7852fc61899bd8befe1186984157bdabd9b5e6f9885f55e96634c093d1c336fb4ec141061bcfad3a9d6572e37c6b5bbd16bba008eb10c1928283366f4d0830f3e80604aca0f3f0001040d1a2a2a4104b1b2c2c222040002506388215ebc754fcebaadd535e9dbe2a95b72efa68e5deff73677b30be072b7f7bee2d857fb9d5c7b30a6af1c193272745050748ecc987164a7871e76787cf081a707047b7c52527c5e3ffcf0fa0102881f201a34808254548284820842686865e51811cb591e368644882200bc1e330ac0510da4212e04120014e50018d5381a0229d763492d495c4a3604d092e44a624349002d0470c39aed6d5cd70dbb6cdf7287b86149b6af710370c317d91e0037bcd95e881bcec8f62c77e5862ad93e881b0a91ed556e3844b6a7714301647b206e38806cffc30de313b27dca0de314d91ebc61a442b6f7e186918a6cdfc30d6316b2fd8c1ba2dc307e21dbcbb8611443b6c7378c64c8f631aa4415fb7bb3a862ffcb4515fb18f78b2af630ee2aaad8bfb8aca8627f724fa28a7deb3eaad8b32e4a54b137b96054b15f5d1a51c5bee4b24415fbd4ad1155ecbd6b23aad8639788a8629fdd1b45181155ec4df788a862af5d1f51c57ebb0c882af62c6e1251c5dabbb84a449538c537f366ca71c14c20ab4596fde0e128afe4f8b394246fb4d21f1ad44a2abd30775aa0ecab9e360ac0df88b24531a57265882e698498522f4346aba552e550166d399445ae29d329f531b4f1bda60c7d3568445f2052ae8fef90be5016b584985256924515cf22a997d46993abcc74cdef63b15e3f79a0891da36ceda0f65366be64be39e9949932260f67d0a4427b6132343235a8c12ad429350731a55e094c3a0e4e58717c40842f094f78ac383527aad479b4c3835cbf94e448ac5a83bc30c599c03a42ae3508b1e24495ba86cf3eac91b7b8001f253c10e18127636fec8df530d2b73e4b4639362b75f999acd7e1a0af067fa64c0d7d75cbcca4892e514497194818c81af9822dc9214829240e6ab2b5967b0d24e6bc2d7a931676ad8549810412b8e2f8ecfcf4d497c9b56f9a8976ecb4c54db4164d78da293635cca3b7f4d6de3e521bfe287990d45357bd6becebb1255b5363ed12ed72a4505cc96d748b2a75d6d0f62d12d1a912ef9eb2f4aee7ddcebb9c7737ef9abcab7937f3aef52e4654bd4b65cdccde6d8f05a6d160bfa491682c38f9995e23bad0d7b344170c9432576225d98703404d41857d3844aedfa83db5db4d9296743a3e533754734a66e4e843d61ed2882fd9585ce4b8db5d0e8a0204e57e79bba72c8d4415d34f79bb9e9297b7db0d7579bbdc0e97b7bbcd225bdeaee9c894b7abfd6879bb59e3d8259bb78b116179bb95e752591355660612554cbfd1464415d3ed8c12554ce7e4278d8a34d83c3b0d56aed5e1987346a6e6549de8f2bdbefa20baa0a19621b670f2a58fd43a9b0ed90d7da4da737fd1f1e06eb9d05adb6db5567f3746b6faf6b678b29e1b36cf9499295527579c211ca006e9f0f5b38753a68fea90e8631fa5f8e7155d9e105dbc57a0985326b3d77dfb1e0ffaceb2a8d5f4d6a0a006a9d7e1c82a0ea5ae04bccadc487c3ceca11e0f3b080148d44f99e94a00ae3838823efe1e2c1602be0f091c3ba576c5a93962f85ab43dea35411fc344c6363a7cf6a6871567b31c0d42338dadec15e7b6b287606e651bae400dd68a131423937276acc341bf297df5f4457fbac5645f616298c831aaa8ba1e298a6d8fa01dcda36ffbd6d21b73c2de0495464264f8012215bbad9a75ec1a2b845c2f8bfac52aca9505d3ee66b128718b66dbb7958811edc414b688b2c922bd4483b57e462c69229db9e9d634b6177fa3e7125165fb46bd7f33a5d64f080cb7bc7afc6ecc94aafa4909b952b99294bc32d7daa9e19bdfb0afbe6cf4ac562b95ea29d553aaa7ec4b56a7abd3d5e957efbcf0612beec64cf5d93dab155e3dd53bd125f258ad5658d513a8a7504fa29e453d8fba14c75d1cdce9672ac5aa6046a3caa457a5faf671a74e07e569900524815edddd5d1abea4d466c2c9249f6e41cdd70467cdcc803ea1c9229a2f9ae09149d157e3cafc8d39e794b912f3a92f65b1e6245092a442744597d3bf7a095792a492402a09a47a8852015d2028aac79cb20a3f1ed5f5b057adaefa4a857f9c545f9d54b8a5fa4a95c2a82b6b1a8c9d924aa552a994b4e16eb4d13274e6fa9a7993baeae1a441ae57e1d860d743f5548dcdbc892e91870a67ac66e99ddee99d68f3ea96d58d7c2bece149386b7c4aaecddcc531cf2a798b78a3721c7765c9b59d8e9997882ad2266f9dcdf6c22179e2691355ea69cb7409e6ebed595c19534a9eb56cf62d4a1ea24a1e6a98514949c9634eb9a4e4114b9b064f48b9feab47d5a41ef625dd8e94ba99c8af67fac866c2a5ae902cab9092d4e6296a243daef65142be34116a501b215a91b35c827be7e88bd105eb6957cbcc94faecf501b18426d1ac611de99c4aa7cdacb182045a3d85696d999e691a2cdf28c23a394ac9518f5d8e59336fa64db7a4706bf5d4ace996d6aa8fe4fa2628584b502d53c4a6658cb44c4ecb1c69199ead447eb1eb9192a74f83dd3495bee46147914b56a732334d135d3a1eab53da46481121be7c443bd145f57a12fa58257775290baee4d67ca39ef57d5dd2255dd2e177674d83d839287cf5a104ca15ffc0aefdc7ea41644ecda7ce5d996550b7582c058b57ae5e7597882af5f3ae210db91e45e3034f2658dab0c046b29cef088be73e9bc96c194daae761ef347b1dd64054a9e764963fd1c58473683888cc2e28866712aa0970832d76531a34a337a3ad797b2ca311062102e6ecda0d93c8f560a7c3872c83d02cafdd7aaad1e82284e21605431a6960614a160a84d7fcb3cc3a9ee7bb9ed6cac93ae71b0975d8c95feed820c7715c9e51c58a872c79b2e0d97dea178d3032ed13b9421f51e8fb45505e6e5ca10f25145986444196f8f3f592c6b84d56cb28b39e11c41ea7cbc613ec3158d831ec2477bf6395a2d6539ef44d2b6d23be9e950fcc5f22bebf90fb15854deedc58064439a4b9c76045c6c0d72257312746e485298ce18a298c810e79d5a09cc218d090575f970025cad9623f27f66d727d9b9d7eb396abb43b00915c11106997a3bb55411e4de567af618a2f1ce56f0aa2a51ccfc5557e01b6d8c3171fed8612be0bc3b7c50e0c1fd62d3ffa5bd7bdce3abfd4b76c666c36c7e1509ab27bc761f6ee37667689ec5cb169db63a88685b4c8da63e83ff023fbdce8468f7dcb9e7dcb708c869252a6ee762044764e323946950f8715cf6f73fb69abdf1e4aae7e7bddb09998872b60547f82c6c24041044685e34cc166cc8c91a18e98636caec768376f0e7a13677a76204476f2c4b28985b4c8dec3994d4cf54cfb9d5385e1180f4b1185eaabd56ab55aad562b954aa552a9543f810d18d587a8f03753e46ab55aad56ab9fc006cc0ab33aa24fdef4983b29a511d174ce1412d9c9dcb7badd1ffdd60e2dcf29afc812ab43c670a8e10c4ba17aab7096a9076cc6ee650ccf1e8d5b1689d68e2cd303b119c34266e354a39ed8bee99a73ce1885082315391eb3d6da1885b0df361c32914d16c3300cc3304cd3281339d486d45aabb5d65a6b2d7d8c292108e69cb31f638af645610203c59c73ce39677737f6211543d1af94523ac410a11339d46e8a01d03e89e450e331718c4268979d0e994d9387cca66cd2b0eb04762886a838c10c3e80821bb2a00322983a8488145e30811d8060831f94400b3073ce89a1c070104c38ce5a6badb5fe043660eaa170227b142630500cc1acb5d65afb13d880b187c209130e7270041ac4c00956c0817122c3ac99223f2412e9e0018a21232ee4210830df4c915996655996659642f135866118866158c550c44ec1d94c9173ce39e7fc096cc04c0c05263287d85e0561db6208a494524a8982d2097df46144e263a6c8974caebc58363e968d0e5feddc32aad496730e5bccdb0947444191605491510587c481d2f9fa61d6208e54b69452887e3b4dfa7e4885c8de21e9ad4fb6c7e8198ee4ec186561616161d9628c99065f8ccc356268a69143960fb182bed879d28794521a14d322c5ba1edd0eec9623a2218402f49a2c7dc11cf3d849748b44ede0fb7c4a96f807f6cc763ce803a8d2a8d4eb174c83a053866604000000048315000030100c864342d15014c8c266db0114800d8ca44c5a581d49c4248581c8186390410040060000000000a00100a2434aa49803dec163596551263f045bd048b77b22bbc8f18c7274931f022d34a4db3d114317369b41bc687dec439ffbec14ad6dfa14c16077b447eb66dc0adcbc3f34fe876ad68b5671bc417f81d2fdc8ca697e4a677e6b3a67b5c8c132aa784d6799402f6036e441af6b2bfd20c9ed7632c86cfdf906f7650874883bf627a9a3a3bace0588151354467ac3dfc97b9121c7374147c5c26f1a957984f69c84d4cc63908fd93f0c43b0aa856bf483fc79e0497f6d0700b77a67bf8380110f801fec7f7e382c5964ea5cb90dc141116c391fcea54f9cd3c26d5a591d6b8c4af38306b71265569868e2e613717ec710c79b3ec5f9d2899e1abf6a03c49a4e16887c29bca660ec90b7e393a76097b4667c0d479bd6ac9dfc5d7a17e7af1de3d4e7974c10739e32b7fff4251cd75a339a3fe6d3de77c69e54c26c482810c2b4854f2012953cc8bb10b980f382ecc4beb6c0fb767bbde86ff37e228b4d7b048cc66032273b9c0e901c35d2ca72358bb64f8d2f8c0300249e5f643d4f57f0f8be165c02bf39a917e8e2a5785368fb25074aba3b7eb887297fa9d043dff25a3256d885ab8744e7e4c39fa9cc21011478bef46d6412dadcb85a80c6c3946004580daf2ff4d5070c779bde7bb1bd3cc5ac7b3eedbb96c18e90de048104153ea294a9adfe4784a6db38663b0bf744bbaf2cf464f36c61f7aa423971356ca466dd6f1058140f28b657573bb028757e2acd5823ec12f5e7d689b3a9d0010451224a7a2b5b393a5b6c17a47a0571d000c05594d234ba5eed45d24357d53824c13738764e6882ae91ca058cb2b6cb7220bcfbd0c093be86dfd52815730318b1f0181ef185211e2d908eef68e865465031a256ac7293e20e9b69c27d7ef59325ce057e821730f844c4b804acbfce71ae4388aa289b43b1ab8bb9872c24fe735dbd19cbf032ea1fa6f306c7fa1d9952441f2360624732ca2140120c81a9cc6c59a2001bb3748e43c02fc2c768b35f49ee1f3d9b233fa22e8206e1caa7bb4e50caaf748406e3925fa9086d2b303dce8028e3d6063993f5f5ee1de12d3d4e85506ebfb7c16fad406633fcfec473a25df1adc425582fd8c1e633243c70a52d864067eff303e089887a0d1524d6ee145cebf717fd0d05a9060253853ac3d798dad34a0bb8d94b27bdd6de58903acf0b6359c01d0bf4771ca400c42689c4adb9d2a15d6cbdcc540fe3a11540e9d701f60a22bd047be2e2d2b49de4023e34941d4d57cf908a5ad3205b32f3307906fb195f0902edccc7b54412347f11051ff230a1876f1f84653cf0ad9665ec6680687bca895609b0bc2bebecafd2095b9b6ef6a48e01423f0f0b866e692c6a63c55bd18a1fd26781290ddcc8733b237a240f4aa6dd0339cb347a71a95387db2c3414944c118f98a792e61fb1a883a8bfa82161705befd2d2e775ae544283e8b90d5d8f8504173440cda451935e72581ea3d8e4db6762f8b3cea852cbbc0b0e391aa6edc9c559c2cc843ecc91c4aeb8d48440dba0ea0920d3d2d21d646d035c9b1450312a1ce4dc46ef256e854762432393c544c2ad9487d506956cff1db2eb43bc70c6fb1912dcc5d97836e02e169e2ee71bd677ebc9b2646561bc320008527852a3dc9e77e97f32ccbc2c3db393e9b4de3bf0d3be7a1c54b8ce167363b5b1a71174af17b8c6ad35a38bd509b376a977d0d9d3485f13a5d5d2ede8e551bbd0375c70c61f4ffb76e61a5df4aaa7e6642002627422f31b6e5f16d545af3cad678a38fec1f9fe942e0ffba7a3df930083d35f58a4e2847ecb2e6e8ea573ba5ceca76667113fbf9e46a17ad84406ee79ba84150b2108ada97f5e6467e5f0e77b6af0620b4d94148720859109dbc6a1ec465ad5b3de3848efcf35ea5d31293fa5b236a6187b3592a95f86b8817a4f35a6397117a0a3535581deba78e9fc70f54e0209846ffedca64f79aa6eeed426d70bbff91cffe11537b9834ca1dcfa4b0e9ed85017d61ebaaad64a8fd003b4adf50a813039bad931567cbe5c8559854afff8f781f621086de07c4eb05152923764693a4d264ac8f9612cdda9f4cd708d456a46181f07842f424c33bf9c7b817f4fbde0ee4fbb519b4e78135828211caef909315a51406407f9ceadd3e970d1534a8e12db747eb047aa3de756fc68fa9793ead196ff0e1264f02c0a531a43a2949fcc3f1e8ec7f908ea74efb05e9b65410af9127a92ee89696043a6ba4c06f00d1a7dd2209dd410b9dcd234608314b79e2398825937f99c86aa550b82989036c099c4a576a164ffdd534fd1bc7dd16cc7fec7f2448060ce07fe2539893a557cd8bc08c319067b16c10403fdb97344249e66317c46132192e6713072449f34281ff8e2d099a2f9bc46be95a430bdf3cc49afd1436a01d9a827df9e4e2d9a00b7c1483b067f2bf3dd0ef2711f4279f07de0096765381c6684b7aca9f91301c5901c5c0f085a97c5b042c604a7922bc02f0391f74142bf016d96b375a3dfe6259fe390f17a282691f4a61b340e3c6ec96a6685e9b90783efbe253416503a63e35b103c4a066d7d9db95884de4bfc1befabbdc7987d4ca28078a9a8b5e36f77b266977dae393eaef23a45d6463bcbf98d7242c13fb3d853f497a3ebdb7858c65c934c8893a6395ca10e619b6a7d7b07303d4bf96102924b9b55221102bc18d0ce5664c6834f9881256177d2f5aa66617cc5709235681f33fdcf4b3f3ffa73e85748283bf02f4b1e5c70807dfc99173de97cc90e0a0c4621f0c37867c158c8a1e21ca9c31f188203814fcda3250e1ab8c6794a751de0d0d6a2c138ca5ea085b2ee2dee3c050c5096b7e0c2e0753e650df27b961e8c278fb8aab9db01653c951698c3a0a346d7b019e22cf35e71d6b045fa90dd469ef0f6648c5653092b13752be879b9ab17168d00b7b557483d2439821c0b7ace12667901ee62509cf8052b606d39c88f2cbaf25bf91824ea1e718c2e37e86481ce68183118c7b35fda17a98c07a2d6e8f5908a8de990d42aecbd87ea3b1b8a5608cc1f7ed049a4da593df9bbd7664b7e525fdd6b969c649faacbc978f7675c1604709752b9ce927f9ee2b058eede7ec391b7a75edee860ebeafc1bf988633caeba694ebfffd1c9eca4bd093ae2dd8424ea8b3a1f518fc50225dc0c263e6c17227d1f0e3e643a6d36d24de0ddc9b0859db26b8a72a1df9c96da8e027c770c61648ae187b950b33ea1bf25ba7c2177c58c69923c6f2d079f4e81364922d0697e0b2b3323cf5172e740b056f2fdc0029aa4df2e323a854a13d49068b2434ad293cc51a58974b0ced84f734624680a9685df905c3eafb459c6dde38fba7b0a0f5020741b4d9cc2a566c94596bf26d6ce4fa66ec8e99c936fb0116a3d48f747af56a64e093f82cef823d5a2930a92da2e485a4dd753adc6adb2783038177e18af2289a7eeb67c3ce19ee63dbec8a5c75b823d8e2a3f45533f6cf0d4c08318fe4cc89e82d6aa3ee87bc7f85caffa787d53aa0e0eee7964c59a35113705eccd94a69002e8f9b3b742300e9ad9e4be81d04083dd398560e261c5a045b4572652b893ca1a844917f3c6d27f12b6067867e318b88f890c2149280365eddcd4175b31a4c8c7373ee1b05331428633ae83deeb8dedc4f4053690b0a4be03a2f34b5639455aa26d5f0cf7d38291dbe1e2ebf128741a9863fe8bbc656c86c2f68ceb3d8c0fdfd86019b73a94dacc76631a7b1708ab3a81256e1dd188c23956070d03d3fcb761ed6125ea0e72e003fd784d0bf26fc63d13475f4368afad69ba08102ed6ffb1ff2c3226680db78a076e0c49e3de587865ef1d1f0a9579944282f8a56fa66e232774b0d2c79b688461bdc5c1090717a0209f250b4445b5135319a3e2281cf697b7e028b2c16b3cd5afadccf133ec0e8615ea3c2437e5d8c825543eb248055bbb7a0dc1dcf296a36d8d83bd46a7e3af6e7d66d7bd185f74631b97055ea4a7e0c29a4615ec008bf6e235721ab7c1ac34137861892fa4a1efe82004621fee7520c5d2c0c5595d98a6b08f05722f0bce39cf087a3d9943b8e5b7177581bea72173c52c3746aa4049aaea0df0ea4e3e23e706044adc179aa568d026c6662bbf862044086d6cc709ffda8c0b456852e237df10309d401261696ebbbdbf0a17b102f3584a013d6bf2b85c6003b364818999057f41270bd36d7051e653bb319c94998f47f7d76bb0b0d8ff9591e2e72f8d06911d1b0895b93e48d210690c2ca50578f353479513e87eb36e1c978476df74e91137b5c40b089cdb4a0fde110a35c081ac11e16438c2735862f71a472aba5102796bf8ab7411e1c2123ebb73a40e55fba155d857f0b2339450a374fee7111b48a27f9868b81bfa1ac3f16b045a880e3d7762d05559c901869fb65b9c54dbcf28d0d2dee531502115baac4fbd95b00bb4bbf109380c034ea9949f8478d8f8bcd5c37b9807b0be6db74767442a7fec36f2551312fea90dd71f9bf238608614cd6815552cf9f032ad8376c70429987a9ba03c4152c5d16a7b9c05912c04743141a93417015738c186822605c0e1d32c70fd944d057f2aa44313461fbec939bb6f81011ba6f12d254fdd520b1fb217832ac5fe1d7db1c97edd488836f7af9327820f83a7150473470bafa6817fa4235a308052ca0bd9e1c3d42b1d0ebde34605832b9181693c138493e291c7ceba34a9a232d4d3821d2eac18588284d27d4979f6daa68a9eb04c21f0685784f9305512a4b159d09ff572f707fd0442e74faf9aea3a2e623f35d4567d63e0cbec08490312216b067298e6c71b475ad3307b5e21e59f11e1c1218709065345ada578a2332ee90f786d8ad37f56c7049cd337bcabd00d3772ebc8ceef87ae42b043cad6f52688de3cbc1c80b4dacfd75035fd1b67ca22d195192a61c19d31f0f513c28857efdb4c5e0b1434832c610b7cdce35d74a9b48ef1e7bccb0ef272f2c99e3b82097454054e8e885de84e96986291a7cb27e2f588d1890823c09c0dd0bb1a1498a74136d58e3c173317b7d47bef584a570d3876397b10856403bad7c8676b134212c8dd3e2dbef017f399c6c21b2c8f75e28cf81afa7386a9596766c67c560262adaf010524c85739f3a12b0ab824a0b57c3d4c6cdd83d94e091ff98629fd2ba8a0635549728ffa7ffe666a8d948cf927fab28596a9b9bd3705cea6dfd7d1566f35ab23466032755aa2ef737b9ed372641ee6cfff9bb26cd5394b602c8c1877628cb7ba7a10cd653b26d9fd7510541efd1fa79ab17ffdb098e7598b6a444b4ffe1c3042a61f270ee32b2a941bb75d9dd64d0a6fafff0043a5db8c174da261c86f47ba2d35e0a2d9df17ecc0496f03e8a1b971ef220653ee8dbb09a3f529335b888f208d5eb54e167643d403948ee8f9fccdf87ca9de93ad43ec4098d5797ad2b19d3ea76d8b27cb0c825fd6ddb1f9aef29c16cda3e472848eac447d164e744437a2b463c5e8aefadab6a42a3a8cc5715cd11e02f92ff08fe9fae5fabb9f54b7c4f72b31e4e89300f86c7251126d050500e56ca9635a2086c52974d9503d72052d9958d7e3af56ce1161646c1685658a32928ea99684f3ea43d7260d5ed28dbe4a4a6afe1ce156a01c0e09c210945a07a3fa2a47e27c57729b9b97f158c578b9013c680e69726422e0a09800d1b5f1cc76b791aa4e1276dc639b27ffa1d0cc6b6175507c5144d0d765c31532c656c40de0a1341b5e3bcca274e23647d6a4c2cb0f0bfb238534fe3f0ee462ed9b89a5bd07149e10bf3264d5247c0e31a26cb84923d79b1f8564a7d39251009dce68732dc26b64b3563f0060d9764d0ac31204fcd777abc3b5b141020f70cdf15c36f305d76c7975c807a9b0f163b92cabd8689a819fd0a1ec83f2b99d3e8d1fe2de2dc81649b7298285f678b7cf16ec219c230181d2a905c1441826a31ee57801130b1a04c30a39c73a333b4c470f1e2702c9234fa35935a80b4ac88a8d8efee4f1811d4383191a787659868a6132dcf47f95830774922612ce354b56e934837bec7553b50d5120c9ce0c1232dc1e08ee208c87ddcca3363988512fcf0326c9fdf530d0de1ef0531974e6e0f54c6e10ed8b9fc558fd78023b8a8a11417057f2a08ced6d365fa474751e7144bed1f26f58126b670c8da594c3b3794ea8d25d211e4199074b9da034708b737e509d1ed06d2fbc2b2154410c04ab7aa1d4b91085401f20cf289be4d7f6ecb3db9cce68c939d9f110e2a9ed3605f696b4ad96ece7d2094398ce3dd6e7f90b2ad695293e1b679ca274d1a49214fa910684b8b39651dd5e9ea51a5aa5911730f94b31d236858a4cf615430ae9b729b90bc27dc279713d302144fe59e516999e9d543e664db437e5919b02d7ea5fd4ef6b87cb41b01e09dce6d3cead246cc53b5089d01415ef90646c37cbed0e2e10ce9c5f888454b7912bfb6b75e45ddf4ff0d98563156f101740f8ac1e36f0344aa8767497c2846a166b371f6d43fdc23ca1eaae6f1239c228af4f587835079e89afd5ead581b79fe6fea80e70c176d5fe3a9a92a822c3cf152fc0f6e5b609ab0f6c2588daf64777fa619a83e0f187916a9fa8a184096b2d8873b99fc62b37c0d6b3c0d8cbf774ab5ab99c7045c820dfc2ed7b528f1e1f9edeb3055c4842f1e680305529ceb364527c8eba1e3057102a0c5e47d74e5ca892d3e09d400c410cfc89cc8f2ec8413a6bb1de1e219677af0d24b1ff5c7f4e55f7f56bfe99076a303612fdd26fca31ffbf8fe811f1fb64d19eb289f5c000f8d86297460b3971a33f1c2c71ad4adc8a9c1c6a1428549c593a9925937fa0887bcca5d558019a663c9c897d505e294ad156f3ad1ddd757fa9ce1869e547d7035c25b85beea5c4e6576fe2b3834a388ce612fec9a56599344dd8f0cb144ca05be173f7d8becf3619c4a60670652dc654008a640d3a366b90e868ac72cdbac1b4b53568f305421e84ca171b8237cdad36340c8cf33018a0e55dccfdf3069a5be7e8bf81c29280f1c8e7117d55a098372b4d11e62f0482c457f3361042bed6f24883e9f2a9fbb5152fe61498d981d3cece5771214791484de006172e8e043d459062bd6f979afdaa3cf6b734b8a71dd30f7fa31c05a8a247ee34f63867d0fcc23b4dcb33fc39e5462061c3a1f8730227faf446545e2b08dd63efa755701ebf99c2502aca0738721a789f7dfb899e959c7f7d7401fc20cc6bbe1b0a258e3e99a1964e52b2a004cb988cb059f1250acc08314e8c7dc83c872c7cbaaadb6559a147d04f405bceec2ff10c65b270c50c97c71de66852f819ee0e403164c13c52464130f786d28f4b6adabd80f3424f5112fca35d42854698fb7c9b8bc0b7ab3ae6a9b66b6f42c5e6563994d6af8c2efcb73a3843c01647d178a1c8556830b5ebb572c6eb193fb689e60b4d32290c7815905d14b97b81694ca67d50654def3c035406ae780b3dcaeb6f5fd1390219bf74e933057d0febd4e6f7c29c2a5e1baf156062bf8fb95ba68eef3c1f162020afa335cb7f486f746e193e1e448c7f26203b9b418979943e088a50dcfbf00895581e7fbb27d6d2a05b53a08e98584da3dab988c9eff49733032fc74b5a7093416844e4196ff45c0fa672412b7d0896b682956116152cd09c6cb959f327447326851ddb0123a9c49096c499a0b01997f6199e55d29ed6698751c799dcdc0b0e05e55ee801e2029921321a7fcddb767ea9cd884801e571c7241a0067e5bba362cb1ce78ecea535295e1fcd12a8a0f24fedfd18886ebd0e27e5d69c260dce4378ead69ecc621af02c1f3b92bc0118a3758142d70a75ce3afc5b8ef64128e882e7cb768a3433d64853498702e1ab16d950a7e71d63bde52e9279141c68f08f6e9ff758c6ec8801a0b6dce87b120c21449a92d36eef8977316a7518825c8506537bbdb6511864291cec4a87c335c20a7ee19be9f0c612c4c4f6aec611f3354e61922dee936e9665325e6d8a36dc502dcc86c00b1b9748c61ab79e082513e41406da9d279a134e0c0a33506811a1208c78088cdf51149e6f7ecd5c0058dfa0e4a3a6f0ac2e25362094a42d0c0c97a650222bfd55467da601eb32888a99a5b9ac1dccec799c4f82737a613796f8abe98202819cf39266be364d0258d553dcdc1b4167d330d8249651dbc5b6d21a1b902b03ad054d26973d070b606641e2efe4ac33bb1fbc219b145d6c46e8987204080ddb83c0f227ac3bc79e0bf0b16434a963d37b49bc0e9ef3e75d5afdf9eb85d5b26c4306845d40b4c74fd645419e0f50c3335697c05ddc05491079316848ca9cecd77629cdbb0229757f07f4c0bd594ed4086e38c6165905fc2a4caeffa88ae27680dd01bb46a7d80be5a839961a56e1e3d26992501b4202af761cc41686d133cc9efbbde7e35affc37a92c5fdd3d5f7a22571a78c8e52a63e2c97e957732235f066247d29313fa2ece8eee775c3b4596f4dac091873f69866b1af4c0ee97a1803c807c3025c54d0c367203702ef613f861a9380719c72d236197bf072a81f36fae0d40b2bb627469f943d622311d54328f2aa1c244e4320cd4fb871bdfbff5cab747d905bfec623a977ad3706ef66cb74c57d56e48469d8d52110a9d02d91ab3a48eb9af3813fd252322bf1725f9c966cfa04d17f4316cfa8b20023f303d5c445a29c239f7f4d09e7230de9d60c2230d083c880f8dac76a029e8df5ae1debabd8874d3cd195fdf585a1e770cb8c18c52a5631c5544cb115536cc514abd8c52846318a2986628ba998622aa618c538627889d12d0292473defb72664856f484dfa4958a0fc65b02d937f998969a59bd1b4eeb294bbd34191343bf36d28cf68b1627ab01aedc07967b441874b6fc2460277eee6a4222b146a8b0291bb18c0e571a8118eff0d6f95994b05eb4951222476dfd221144f1fa64109c294c11749729d061527f0e5f8c1bdf7a754641cfb7261a34eb4b4c55cbae41db16a23095f050523c7deac1628f8c9b0dba8a96f18edc4ee2485384fe2a7b5fc6cad4fa6356c7379a0ed27b516af2d9a2e1005180335cc724db98e7d34336a6fd484b3f5934bce143903383afc5d8bedfd3089c949b8c5939aba6f42175d47064481bf73bc429377e4b197cf1e21917acc6f1d5fda792388d4c85ff6c0ffec61ff7e392c88a631a42bd520826d3f585e7ea254fed86a5c41d45eff00aef49d021903e2218906b314af00a0289241a476ffdbfea2203a14bf4204fe160efdb5b730ba067c01f04bc62052df7fd8affeb22bfef9ebae203adebf1084cf20e2ea7f3ab4fed949ff70ebae203ae8bf9c1d31f0cebea2534602220e211385f41b1b41c4a3ffa27c471095fa75a34f48e8a6190ea95514c52fe88a8e497fdfc35bd0b7205251feb31ffcb973ffffe50982e808999d48dc41c44dd8fbb0dae11eb74f9b04112fbb87e640215510ae219d02111c71049959241944fc1c92f0f8c520ca34784fa24dec581b3b47fb777436d525888e19a0723b88a6a5f17627870b22d8e3d3e5a9a0340e27114447f34d26e04afcb1cfd32ee02062851aaaa642b8b7d452c4612cdae503fd2b4904e4965aaeef74065f390cb41096e5f50c5f7b9714cea3f540d0434751d58444b754ec58b709921ed247403fba2934dedb90eda09329005ca8d9321da78153cbc9733a72db4fc5a0d6baa82f9d2a76e735dba47704841cfdf0c1d075c45161ac9414dbe41739ed4408759b533178a63548f064e4a0d9caa3abd30b8367648385dce5e6e7232834720086748cea3ca640423a6dfc6393be302c4b167c8eaf325ffec9c1f6140cde744d08fd98396f76ef28e9f5cae08dd068219739f96904228c1e882189aa86a72198800ecdc30950471a71364133a41ff837b1d07385b814fba9e2ddd8891c7433d3212f7701b916cbd4dde8f2a45c13946fc76a189794d7e931316af28b9a6dcdd54d230194c41399f43123d33b33b4eae9c17f7016f3d7eca6f52184c2a8269fd2e1b28b668b01332fb92bed7e8a8595c315c8183b1ea99056c718d6b7c82d60569f6b0479c50660c629994faaee8885a2313ae4da7d0a510bac1d789f8bd23c0b7fec60d22148994b322ba76d7575711e64e189e5476473ccc19a521f164f83742b103968ef48f64b1b651f5f0b2543a6e40f890126c67138a361007e7c51107eb3b0ae1ce0daaca20d0ce896ce84e07d0195aaabc6d752acfca3371c21a708ac240ef2819d0418db3f82fcda24041c2a2411f0ef20e2d06800d1b438d8018416c004fea10b08294c8070a771cc61a7d3fe50551c0e0ca0ea358e1f938b00e4f70f0e033145013847b2ff4e89bd914ac6e1c1ffbdd6e330900cf5dfbd7be6c7208dbb7ff50e3208b0c0939e59c019fc2d66102325b2ffa614781fd4a2a6aa03fe4e3a8800827bff17fb8daee07b66b0fda927436b0f84f0e7cc42367112fa29fbcf8f0c75aef937d11f4c07fafe7380219b38167ecaf6e7ef4339f7fb2fa080701a90e4e81484b4f70fed1f6a3aeddf2c656868798686ce008ae8b22bb13f8a694bee34bb8f212a614d9fdaddf45704538cfea7ad075b4a57ccbc43ff8977df4615e7239563e40acf313f4e83efdb788954bed0ff93bffd3dc8cddbe77e112c6f36331f89c12da6520d880b78221eefa7c317e21f18a120614f0bb91528063f2f8676ec1cfee4b394069829b03f7f3a59319bc8d32d647b14654ff32741bb0d1a94fdfb0086a1b50d76db16e8dee2d9903edb28090f645ab8a832481b81223d98a465bcfaadac9e369d36aaa8980cbf3668dfa9599ac80ef90e72e7e90f66f159dbfcd399aed240ee88483d19ef76553ffb81dc1a1ead13e25fd5f4258b5d7909677acc61e9e01a34fb9a0d4627c479add94916baf224c8f59cd3b2d35568fe373bc1fc901f5efccd204779f97b8b5e461edef4f2691ac68323954bf748b91c5a3c86c339b5710e966f6bea5d55486393c1bc178fe0dd7a1fb2df1b3790fc4edcec4c4fe366b75a8d382b4d3224d4381471a141ca9386188fba5cdafffc787318bc6b9f043353c792224919291aa66f969d9912651b0a517580a6fe01c1eeb6d834b0d3e9dd5603d3b0d7f56f436b7d3b1171b5786f7d487701dc20c8203699cf3f82d39a3ae6c7b1fbd0ee4c7fe6cc7a91b8af57d9345b31443cae2a870fe8e0be2db45adc5645fc175b9eea0220ed39149afe87781a9360c3c452f4c31a11252e209c72151a43e09479289531ea3545d89412877d5f18ad4c0876eb50266898db2aeae38d31cc96b50ec43ab265a196ac7c7c2cc20f9c89062d37ed5b4503197fd18c4565b8d772151063bdc604c7e835171b5a3e2d1428eb5f42a0814284d2ea5faf28b8f0a8bf59db3fa34d370d01687a21dac04b007ceffa1c20ec34f948d74d4fdc40c7406459298101f2a4bd8880f74e417ef22455a10428fe03f0fb02b8444cd04c3f806b02b61c509c22bca476722f3d07502ed959ee4e51aebd31d0aa896e8beee66cbac4739d82ffa083903530f3c1878c8affaf97f60fe44b42326a3160a6313bb844a18c7436fe872fd5b02872baafbf486c2dc62f04790a65b6e11424c25be826d8d480782949d01bd9e10601c2443dacd9f3cf5bd87d40f95e73e4278b35ea970dffe457c0c5d93f2279e329464ed6242e3a91a994dfa431b22237ee50764fc61acc3d61e0bed28ea370efca89dcba62ed42f0c8dcb1adb23e4f7dd54afda553b0eebaf112bebdebc2a06088162d758328941d24b2b9382e9c90495bd171fe43811ea5b89ae79294c0cee892f71b508b80f072305ad47a16cb169678a1ffe019a7d771d055bcb2808c516d381cb16a353a094d241aa7509d3e13bddf1623d0e6732cf4aef3924ce7f6dd0b259269404a49f9a4a5ddb4b6adfb85365553d7ac3bc024469e8ca0cd09489cd4149d32dca622f504301ea46819e1c64933c722c69de298ac42f4b2a2147a2e08d43d4006ed080f141eea1013290f8744d9ce3b3c5344cb7b3984c92f9066c640c3b52ccd7e636806a718c455600e91acfeb9952a5e1a2535263bd9ba641a0690ec942aac39d5b8dec5c9d9670172ac8041fb0f836986d7b2302a81a506d026bbc20ef15f1110f98f5812be0f740c570a6a0ef64435d727c09a227777f7192ff93d8f0b5607ca1a3d204c6a91870c6cb2997d875872db304119843b6f702da10bc9dbf92ca3ae247631a0bf622e1c183cbc1850fe54fb42ca81010a1bba624d5b9ddb195b1c54de1865bdc60ea72ee13d23e34343fad4cf258ca26dd475b31ef2cf01c609ec19a162e53d30ef9d1609ec1cb5e1520749da3e467e127539060c940f234cd91e19420f36445b1ac9de1fbcbfb53a4720a65b8138c16622cff30f95cb65c55229d2c02b2f9756536507d9e5623a90cb852ae159ef08d92c2d809216d5acf67c4f4e87da13544b03e781ef935a36a7124215093e8faa943aa5579b5509a1b2e497472aa54ea9c566aa215491ecf36895aa577ab1998a102a487e7aa4520815123e1e5115c20a894fcf3715576a7542d116dd4b7e5c314524af71bba7eefd2f70c827fca87b98f87a11f300f15b7c4b89def817dfa5a2cffb79df52d1f7febcb784e87b1fef5d2a7abc9ff72f153defc77b4b8a9ef7e1bda5a2c7fb78ff52d1f37e26bca545bf94e89688ce524d7896887e49d12d2dbaa536e12d15fd25a2b344744b616aafd41b034ef37d686227a3f29571ef25dd928a221343d0a6b6c8fbe4eab55e46dc6dd5f49654365da0ac96deea3d461172f9c05b109af6e2e7cbe5aa7a47da17879d6b7c37e951f31d995fdbd2b657ba2a4d5456cca09aed62dfcff5aa7a0fbd1639195fb6c0490f32eb98f9d92cedbd4fc7a5a265c708a2c916f15fb9d0ebc0214f88d9c9e6dd6fb36b27a404d11a0443dee7ac3b05a3d2472db441ad1edf1a4f569a5ef23e3ccf8b48c049e2d5dd93608a01133f60b293f1b7da84026466e99efb99851422800666522c869bd97871ef5d33d735ac21404929c26d6b0dc148b56ba0089e4cf065ef1532ac249e062a5b0c0e795dd80b04a5f9e46dd34cc183ea26a704d91a447f09b1b19beb450c3d6cd5a3cd91e512a9b6cb7b2cf8269e9c41b0d1945a1aa16e160a7159713d6a1bbe09e4d8e9f5bf9605401a0e85adaa205f58d7686ed473a961b234fdd9dcdd0b0b3f8540e63b43b9c996dac31c1adf2d4eb885e82791f95718c45f6388189fe249fd4d116d2e33bdf411fc0f1a8a225cc21683d7fa25cee46d97b8a27c1932e6fe6c36d51cc9acd0ff7f60b28f75c4d9b2f876e2fd7d9209eb38df6f7474c7f45eed5a80c64943d87518267d0ce07a3f3dc99623f88cd05ef823e45d2a69c525708d2689c65d91c26880cf7de31833f6898c0df93f90113f351e06d003efb3b6c3c8d856fb3e5a74bb7e78e98208a28ac7b17a70c12e9dacc5d44cd6a9b25b524960fed1001725b25cb24037fd4666bfb3f7ff0f3a0006db690432222e19cc2aad9e925264be69256e104bf9c27a2b8888906b175b11b5dccb04325298bb3b2fbabae789c7482c7f2cf0def2d2a9e399b8b68a7526bbf8690fa5cd4a5cdab5528aa9c057effccc35e33cb42bd97779f6f5a3c310f32cc66be32fb394990abb08aa650eb23c8b5f9aaeea7e229d849bf9cec9c323980106cf22c0ae73c4328cb4de2ff888adf8c2c394fa0139753cb946c60f00b3155f66330c7eac946f614c5cd9cf819694b21639162b3eae17d153feb44afef7a5a163f7db1ed2f962435c455740936bab787c7c3c4030d4c25bec6deb6bf416314693db80035b48cb6a65d907efdc70ef7d3b745b5172ce04932e25cd642aa60525233a608ca53813ec4613c175c407af81f86907b774220cf22738a5b88c0665b6a5cc4e812dc041f21cc581ec763f0731ad69ea42ebec6199d355a2b3b5b0f615cbc1ab0a5203833439db5e3de13390715bec6dcca6a19197dfd301dd163a9510c60d2140c501e82a9d4bb9f2116e5006b7767ad6c51ec06b35b064a9d4ef9bb0d4eb52ce8c037d8c4199d74d2da57cf6118d4179cf74f6dc67b6219903fa2a5343b71dd87c413a980a38cb413d08c906aaaf497c5260ca8c8634aab3033c41c3ce668fe3d4201420f54d4013f5aed8cd24d33347e6605def5437c7b9d12f21b71fac407c051178b4f1be8e706fba46ebe3568f9ab08394ebd8a3529c9fe995521545aec3eba1b40d55ce504af6c600119586b23813422fa99ca1e21121998a5ec4468b924f3d91533d5b3d79568940503811e7fd3fedd2c7f06ad6be33d7e083fd8b8e777e2f78b38c1cbacd7526820806e26ad82dde202a7b0c50cd3791a7b73d5bc346c57eeb36f7cd9c9aadb9482e5c32b5afd0f42d2194ae27bb46e119cd5c87e6897e08dd363392f5f0846c3f08add0b79a058cbeb5a9ebff8f18771468a64db87b7c7f73292aea2ef79955bd82c55b69a670be58366b8835d7c0756a30e164c4558fc85d2e331bec925e6b2d5ff42150a912cd1d27a396229deb6cd2066c965b3847663df1ca7d5a0217e47e93b155b9069a5a99f6cf33759aa914df42602a13d7beded9375067453170458d137aefd568c516e353d5dc9f93b585341454852db7d1082ee5bb2ca54eef2a6b8cc2180344e6da8078234610e74afb361ac1d41d979b79db78716fa85cacf1f1cdbf682e0dffd545de1056dfcb3488c2fc8992f89b8b6bef6e2e93593d97c82fbb70ea9a1aeb83f71d059cbd5ad148b15e27f66cd0280aa5eeba42151d88b88f3b64fe9a5dd237716960c91a55570294b80e0307d981fd604c35c743128d45c4b12030f52bb46b68edd984c0f6dbb4645e3d0bf0dc498cb28f2b0ed39ebb05a28daa6f20fb2f77739b4c5b73e2cd91d6966d44e90b99c6f1cc9b302de815ddaf593a7028f437adcaa13bee67164a9c2d3770aa50a55f349323c6553d464c7afd5a2cf750a0dd049ec4b438f885348c4883cd79b7f20eb9cfad335bcd96a583e0725adbd64d34c4d11cf01f56789e51cf654661827d66cc39ec3186f1e1f9a2159bc4e4724277a22315c92ce9d2f783c14b49679d724182ae08c8cd47c209ba0866e023485cfede23b335d4836e8f72a00e1051c9fdb5ce86aa291b87828604311af57386071a26e8e2797c15b31a9676361af73966780f53f945013a2a1d78e1390fb7152c604cf4352ab610471daf0fa1f1e53f010795d03089985a4b009aca9a5489c913a9d749fbac410ad7fbc86a1dce9cfa4c12a713c79f536c297521620136a835f142b362515cc1fccea1b3f2c324e4b5e56371b058ac6159e68d78b1f1859e02d247e09dd362cd875d9f5a48784ca1959e74c3ad498e51edc77b196f7030cd1193a40ff3088e85e6b85a958c1b052a47882ec676349b38fee0166ed5a6350ff21b221f630f886291b661af483909df9b8f75b651f36cbec279bc7b1b3eed1ca8f394e9b459cdbed9fe94be2a40e3ca36587eefde80f080bbf8ccc9134c24dbd11d7756c5d88b823c92bf4aa71c58055ff0661e827a880f91e584ce5300d481d337857805c6268548d684518f533290168a2f34913860edb99b1b5072a96099b7fe61f7f04f5abc49cc0b8974e9b4ae6596ceda0b552d30e83401784ce4dd3b9f2402f93edc0955bcaf96f5f5c3cef9974b452fb5a513e479fe87217278d92f66b20ced9b053df77375e1a2f505859b379d1f19f80152bbd961d5f1908dcb5e105af2350764977135e211518eded76f30cae95162e0dd3fd2e37aa619210a3d1b5e59aa8557f1446314560d3586cca9d7cfcf20e5ab0bd4f09fc900b983f7a15054fa6cb885274c6d97db97c40a92cfc87db081f453ae31017f72441a4657b19bffd4bb0e3e8075154678b83d4dbeca72afbe0d5e16abe407572c243c8b321fe4dcff44880b6061cd30dc7a6bd9893e3d87de90a95c79efd790f0abf887be57c2ba8b649bae574e9e3ba96a50e8e892922fa628522f57c461896cb60191541bed5dce58759c408cccaee6ca4af46a8907dc73b360c302367b6bb46086f72236d3171d5b5ad251a6573ebd0505f8406d976b0aab006e536b9c725dcb44b642cc8bc47ea4904cc98465ac4c71460857eecef7546862d37dbcdd8b44da28b450eef6b6e6e4e4255ca8864cc952a9b8130921ef6356d1ef62d76c5e3bc4e8ed21c2a02baa3216acc7db07aa60e61698cc43130b352c5c42bacb519374301a8a071483a0235067e0ca99e02b3a6811b24b4aabdb950a4852e02461b45763d769d483376c40d243b91fd0bef716893c9369efd6e574f02d6260e258d839b4d61c4b4cfe439c54dbd7d19e9007213178473ac5430b4c12e0d6810541b0e5dd9e0c1ba6066ee710d02e659b1b0e61da2987919f2b8d6c04722c699d444201c516a0ee3fcede3739e4ed524cc014849fd3e9cb374d1d4588b22b884da1983763376467aa287d0a5a5a5402c836fdbf52976c78e596f52d3a36cf5897f232923011364c8da9291c3618d0d20759f86d10529b799163b37fb0b22385b9ba075105371446bc64781deba25920782bdfe63a5a3ba780863ab6dc564fdfb7cc4f682dd723fdc39fac9907a73c57b0a22a1093320a367cd846dac106955b0502f8896068583c48d5df298404c4157265b9f789d79e217dfa3bdbf4e74404cf671ed5d478dc6678d31444f0f8805d01dee2e8913af18803953a63c0d861ac8642118c7db9991ac3ce4b981e382dc9520c1040d2fd46aec28797422253c496fb3bf540e8be92de4ea16a0185a78993590e02e06d39eb47323e261e09ae8bf549232800106a0bfebef7c8080280d868ac343b8015fd084a13067085c682e4c3dfff8b06f891d864f948a39744e1fa3c87d84c404cf533a9067d489a4180c5d1404d6ebdb51c675a2fe110ed8ff35406c079442b5cd7b46c8dd3a922730a9e1c1776371b84969f201ec4dd16a7bba214cee8493c7c15bea7219fd25ef00dc47e75332d748ba0d0990c9fa9b9f0d945b1c2189a012aa7ea35f8ec117e2d795c049a5adb9216f7d814609062655e72232e5d6b89b8ef21934e1b9b96fd4e0efdd70279baaef945b32507cac834db8364548a34e05b399d9c0e3106292bc2e411d7393a9d3c3af2d4dd54dabaeab1421332c0311bc7d13b53da30ef59e42ea4b14fd2d69259a5dbef4c6ec805ade2451d9c18aa51e316b34dd4a80f2ca3a1980fac77b521dd7e5fa69f90616d1d052ce4fd4f25c7714dbf42b29ee64d265f5858d8b24d37a1cecd98da7ebd6765824dee29900b63ada57bde6b8c3e7c80358d4ecea4b6d07bf94a7faae847f58409d97ab85d90cdad53cb487a76cbccd41403089df89c7ad457435ffcc4e20640814a546c6cdbd92873090bee8a3948c7a03d412220d8c1ecf28f20b05eefc14bc6610132494d30659d8ceb0174652d33e626d5d2562551d6796e5792f78963381cabe8e48aae68e2cc48a0218c3936885798a169fe1bf3ed0ba9bb5f5bd460727b0c92c3fb7053380d17725191a76c3172b809d01b03c04140a04970f0649a5c77193a865f74ea89ab570545b239abd91b8c8ff0c260f4005ab1f304f2100227e6b5902e684f52380d25ec1c7513cd8f80987ffe334d9d69ed55c0977ea22bf015251bb92ee9fdaf3fa2cf150dac0ea4941840e528e40be814ec76fb27879542d64659e0fc293b928446710afce356464628a216ee92837ab891b106437b7219de732f71be89f3db0305f5932842affe6fa68bfb228e840df9e8d49306716d214566f5b716d400d2795c11719dab8934bd40b7f98d8e09f223ba9935e23859e32758695b687c56c4c1de927bc39aa9bfdadb8fdc88ccc95a7b7bca97087914ee358d0b869c2d08d6720654e01ec8e6b8b919cb36e65292bdddf754377884c469d0057fa7fb297ef0f2c557f1b278d6128a0efbf490fd26bd7ff3f38b86eba90ee79ac28381101be5da385ea60fcc0bbdec545bd16230dd8c37ec3c2f0cdf96e84471d5155bb4de080c4fe1e1c389f8da1d3cd70faf22f0b35bf37a0b0460ee0321191811deb6507c85ce0d7432d154e3ddd966d0d614be0596b59827e0e4e2151b302712723d31e8dc9db8ffe90ae1514684188fabab5c8f6ee51a4df7d600ef417bebfa4e3b2811539ec27e90e74c39d5eaae13d01951a803b730c4cedfcda67c0b21f869ac565e90107102849210ea1112f412277d1885dd83e1b07b38c16b23118c036e7d7da26ff478ca273d1d71a302d529d938958e6d7a556ea3326bd5935c8ec6894e660867f022e8cce38b4f03d204e06bec6e4d10e28d020c775b06a0fdb9f379424acf11b94e84f5a2d279331cc55a775138a1abf3c313b58f1d7cc3ec93160995047ce65292698bda33c73818807cec39d26ff07ca90167c4ad9d78ad510fe713c5e308140d9a1bb0f027c401b74cccd6618e1e330cddd9986749775f4015df7c9eca684c9728a4590fc5c3052d4250b7accaae23fe9d2a76394cd62b8462d6f813544a86211e9c99c9a035b732d1bae5787eece24a2bcd3ac87175c85e458a8ead1e0ef482806f747765a9601d2e841b543c8062d050acb8023439c636c329bd853521894a6cfced1db16af1498e8da410cb10a55837c5a5be3da318070d52939adffc85ea007e5a9560bc23074c92f4c0b5266f4b3ec57f9acf9740169b68195066cd8b1c54fe9d9021036fcf07292b49fe3936597b683ae9cfdd80219835c5a07d4b1a2ed5f7e92eed6ef981cd1c966180cf129d68f9103e60198331c5d7c1f6c46c0588c1b731d6c3a28fb763843bf84a5e0f867a50312ed748cb964e7c0c7d30b992a7c8064e1dab2b5268aba9e37470af533ec870c31a000cd0a9c9dae11ecc18e495501d56bffdeafda22f0189a0af7cb149252af3b4d20fc8980a8be53263c4a4a981423c7e076363a9520eed69b470dec1752b6adecad4ae140b8f5e3d0f158a605076984e653c4ef59d1d53551d3e5e034bf0d12d8a4a1336156a076fa0bceb85493ab14389e393593720b1f3f400f1634000ee2b1cec97e08d0d178a93003081ccd49d5ee3361a3411bd9640b15bf84d39f2d9a2ef8b0b6c49aaea5ff22f49ea0efe4a14680dd76e510112a15425dde8d647f40273c237f71f9f694595c31b167fc3e720ecfd48e2e9229a5ba88276a87a6814305f0305fb3efdc33f562ffa94cc703d123e8b4106afc5e150f3a9a84cf04be65926f4deae716e95a91cf1ce0091fa4a87cf9a3b8382f44e5896c1c1428b546f29b5f3ad3e0d0b52ba69b947ab70a5c68f3d22cecf3442bc48720d928b0434ddf813a9fbc81726430e49bbc576fc3087b6e7460835b1c0f3f0222232e879b8627686b25f3418fa904a14f64a90eeb0e45f5155d8a61dc98a3b68820632e8b501e674be7e822154ca52aa48e1c4ecc8e96338998d828d6d786a251b214bea39872c2460d7500770853adbfb03f56c3ae3173e50e71ee2dc8aef5dcdb0d939ff7cb5a16dbab2276645abd3e4b7ca7a7e4ce83a9081310322879c1d0c0bf65dfd008a9d92de97b40d30bccfc0b61a980040307742dbf54a32253072ac6ce8896f76b552377687d8e1f6b28cdc6e0e9d34c5776c751780b03d2834e2b981d9ce388d122c0a5f9e9776fa51fc7e74df0b26f92dc8b3d94c1c1da206f274c83cef6e1bd7fd1072afc1c006f3efa074ef5fc93dc777c5bdc051f69b98c39791cf0b7e6da33d32da2a165dce784cd8bf12729ae84ac9fae29342225fc1e1ce10c088ba89d1669e82c0fe260990ab1116f21f26aad363e9a2dd642458ca02e57e0754366f2a4b02facd6919392549db39dac5f1a1faf1209960ca8b29174f7af6d2d454dbe377de274002896420ae03023f922aa77fe1f6e388ef528f43ad4af2d6fadd25228f7c9d5352a4220a7ede0e5ec6fbb89860f5549d3d5d929c4e5599ec8bee9bdfa3250a72a0bcc99b82e7347c036324591e8a14fd11bb90510c20e4ca8a0f3e53fbb036c508bf6bc38a62582e2c5309ce59a81524dac0939998d785d6920cbd0c4d97471b689a8f5ab5caf4cd82949394e3f42d39b219a53cf1d6395445a1273c3f2ebc210b09307c90a042e9722284d7ab00c8fd983881da5cfccd3ba69e618c3c89cdce5baf7d46af19ff20c44886f3f8037b096f673c0f384195bccb29b3173a17f2f8da8c786a1619ade4fcadd9f7ca615c15868487125f1d2521e3cfa99c1fbd6a94c3b2d5a9652866f0af57d2bff027d8a47ec15af608a16bac9da77c440d993ca82fcd5425005583ba428a15730b88a85ad21d0e630e3e29770b6fa092715a14d50d4dc7fb87c1794afea34af12c0a7a34356942a50859c856588559847f10cc5885ec2e830467e66b01e489104ada99592066d0303e7e2041fbfca26a532fda09ab9f59bc7d6de717aca6007d9ec1fb4602461c664ceec32e1fbb0c3419c2affc203a40cc19bcdd5a1f28311cd660eade575801b37c10308f1dd5b3a9fb35a6cf23167dc6a3c16a4042e0dba94856b563b7fb86cb01b28b553f6a6a513928f28fd1e80b1cbd26a0cd26af1921b2fcd38093bbc9c87108f85013c03315afd7db709de7ef7a4294f0c44b0544027c0b8156e7f32a1f2125bada5978b3ee1181ab5941d5e16578845187d99ee69b02f316aa6be3ab6409bc6eafa29ca6389a8fce6d7c850b357681e80a54920c01d50a7709f0212c4f3a08be473449607213ea126e4578c20f89fb551b6f1b3bd2de10e13f0838cd49c6e7e52b42b630e2ce4239e0624c74602cb17a5aa04f7c4fc838813eec5abaa0639115a7f9f3589e7f9703c9d0f483c42170eac0c3c372fcc69913ac171b0679dacd27fdc6f9e24233e004321e66674f2f6e008c37f94559b79de215bff96142802c7f13b30dd54e208595018e110238544d84852e851309f11f94ecb5f4f5a342349ef2623c151d3f9ad5623135128031737cc03a92aa082291a88e545733ab63c9c506df9932e3c0c0a5a979efa9d655e128cebd10a13b32461ed11354da6b64652ac0c143c8bb03db12da979521f62a5ac94825a6fbc6b70bed73cee032075aff4faa7b4d84451c886d946ef9d350e1c28b22de5ce5a083c2fcfa2fbed47ad4a5a31b1c06007048f48b927a7adb5d30dbe6f9bbce55dde5793f143fb351f7571536b19074d61dfba26c6912c1e97c86cabbd4c7d018c9997e88794cbe69083b97a1c37cd454fc952044d6e0204c522251eff04cc50c9c5f501e0c5950ef45a5be5da4721c4e37e2a2dd03945249408de5f9edf699251d30850f1ccf47219ccc61556f034de01db0bcf0e6991115549c3f204d5d6778e2a27bae688e4e61c8887f81f88151e417f308f0eea449a1a5d56555e46ee73ee3131f46e53b2669b49181a84dd9426fa5019ed729c3cc6cba919ab6f74c14c350940a43ec445007cf45b6473aefc3df19649cb36835e3150289724cf7785a27e0a2c32118a55cf33f607d10d56196344a85f37ed4d4816daa4dd0e5c7f8f5094c19cb0737c496bb18af553532828252da06a0314fa2da9509a34995538cae00761b0d9b85dd03b270970e90f8e8068a1fd41faa4a807b8d0004ea78ea31f102fe97664d08680922e0d559a168456478f2c5aaa0c55375bb7a0e867dc8519a26f907c4622902b2c3b6597c527ac6952b17ae33c73fa586b8cae55b4f9b1a7fe197be9d8a1a8b160ff08210f2226e7719979a6bfd46e1996b3c3855624250e7492be9e71c1a263ad70a519812ac64f33c2f475ee4508fe81b036db15e1eec6248eb086010add1b3b0e6ee75db0b27f5ea109bbb2dc7ce345fc2a9fe0adf95cd9c1655b18828d56679f1d390702c21a7be2c1c875e435df5ec2c2e1b66d1fea1d8f387685650ea047e035502a3dfc5359701e2099123982615370200d34c76387d79cfa950f00770e2a64a18eac34c9061f72730211b4854b124b6ecf5475729735cfe067cfecf273cadc51a4b25dde35ef109052fd7fc7e1065afbda7ff33a4354876071ed187899e1ba2506809ba8443742ae15b074e32d8832e5b69afcc004b41a2245eaa2e27f2ddddc760665ffdc4603f1e1f1fc5127e7ce87c01ae5ad60e17e70126757f7c3723f27a62653451e6ef6eb446bc1ea551d6433328bd9a88281e36dd193f5bc42d648e938405496b530b03bf5af1e1315131c7469609fd02943cb18cf418db6d0a41d0b35f89cd82d449fc8d42cfa9e2776333e02e0ff58a185c8fbd53f18a0630d650a74e85e2a19103dd835cf19a59fdb2cadd49e8609ba23cc57f6cee6493a85afd9971af06c124881ee34e12182f22acaaecc7480c9fa6a8b1f0253a42b73959877d19b7d2541fe46a0269b7c1de06eb4267b2e19de85be44b33b31faec81b3f34f8c7a31bdb45baacd721c63f3051268e9d7ada7e0926760dd3ff369b78156d5081593f8f6e12c26f3c3eeac2f164477bfe768fb380a0b80149d526bfd33c29cc833c9b34da019b93b70a1cada8d79b41d6c572baf492d53e704b23c28c3cfdd5f4ec6ff8bb746c113093f8191f0b706bc580ed5fc422874e3524ffa59dd9d0bef85ea209f6f7a2ebb8b9113b13f03232e1fb042809719be51c7cfb3a192cd5bdd9da8e652b0cb5c04999fd6a47eca11b13b4c440e69d23700e1c2d4f673211c411bc8991d28109abafb60c029f18a65ca67602ede15e2e2fea15121b9373cf14894a41fcb85fbc98d609261a5ee0333a7556daae9e186af513e99674c60b0b9223e0088585cdb36f7af97569615907131d0bec5370eb29e47126c98ec04836fe123808fdcc87a5bd4b9783a2b661de2cf0b8e184b838caef03d77ae7ce0bfb5a549f6bf8d68e71d7584072708c23b129e38962aef7e4eea1c48a5b44cf09fe286c62932e21a3f3e42a6ddb597283bfe2e03ae9efeb08e87a3d5d260aa18b364490121abbdb2533c037b27d35bbd24b2a5741cc00e017cfcd69d264b5bb1fb85f34558ede8045f8790b88e3be633ab6f5c27792b905a191a07a6792cc92af13b771bef01e05fccb2da9ff80448361be85c20a8d7116f842da6b4e6215c768b64b443d8b00da09121edcd7f1602d107c0b77ef0bf0893bac567dbcf46489856d473fdb3efdabccde6b310891182f3156eee2d25926d4bf2981e83a4bbc86a45d459fed38fca8d0f6c57c457c31fd72d5c52e41e36dffbe4aa452bcb777ec926bb7dd3a88fbebf68d4dd9e569509ec114f7b0153017a1931f5946d1bd70ebdbcc6aac6f19835ac5894193092a3b1beb788691feee2f516224247d970fe6f399986b888417ac597f0df562f8e1cb3f1c1c9175810873a08015ab4d51c7385babcceb70385b5082077d11fb0f30801bc09f49f39147400b7a527232e6b1a56200c85a12eb6abea890114b1a471f4b5365dfff7b346f8910ce3164438174f0341571fcf0bed9fdf75bd41c97be43725adad504cd5b6f92f39892bf8290b454751b146605300effb54e72ba46c6efcaf9ed162817c60505edaaace7c1f56f3612cf6e92cce91bd45e84f51ab26c1708a47815a338e2697f631dfd3a6097a7d12b2f59dbbbec0e3b02aeb11b226e751919233409b8ae88a44097f66330275a31300491f3e09163374a5f3697df114fbf1068d1f177972dc2a9d17b5044b658ef6c71854bce3d445decf0175c94219eb9ea17d0b34080ab2c8e0c268337eaa83f037dd7dd57bd409b6a74d4cb5726f610ddf08d87e52cd353bd3478e852d2efb588f1b7aeb5b6e2be1f53d4385166e885c165f7dfbaafb6852e5044b82b9ba17a6d9616523f986bcbd8c0438561b0ae6e20446a8f29ff8b1eb05fc90f1e6fdceaadbbae7b6f18f0b9bf37b89b3c2f84fdf82fe09c267ee82200c1bd866e4edfec763540836ff60458d8e595232cb32cdd8b10291f637d9c60a6cd919e18b12218ef252cec626f923ac0a1a274dcb0179d66abfeba33238608f9ffc5904a23618ce173cf2e6091754041ea8dca5a2e1348cdb22abcca4e63d7d10f58a4fdb8fce01ee1b7816d18b8cfac743ba197f5ffb8b63e33d14a2807934d7b1881aaebb4dab307c5a582d6fb5a8b6ab16767a5672821e3ddfe2d34c31c3a7ae1c2e332d6d9499b92bb6c8f0d5d9dea6dbf233b77cc81416d5f12a2b6bb569a262ce6c0feec892703bfb950b03d501f27fc35042b1140878caba32aab42eb6f227b233c9583f8c9c692c610d82f24ba7f5b30b87b83f26f3f2098be528fc00f77ec74c73a76bc0c172927933116f70a04d41fcdad8e1d9e93f25c4b5224555d9a25effb4b96e98ffa43abd2cd6231b068fb06f79bad3a21d6bbc64bc09da44cf0aab268cb0291ee62ddeaa9fffd3fe20df15f770dee4b0098e81d0ed240eed6d6c2caa08fcb8cc5a0296fbf32af5be09d18d05d470e2f20bc302b6d644c710d600d07535b913b95f85d7d22a416f0842e7182407b8ab22c72898060711110d3e970fe600610f9ecdd32a73b075444c37017300af9e751d5df17ea621a551dba0d5f1b5565c581daebac7b4db61f5ecc36cde1651316a72685bb053e2173d9b65024adbc79a42416c1e691b9922442e590cc8263b54fc5fb5c086b3d03024c225b26d7d8dcd25d7af3d57a76f21f150e09189f58b89cfb1f089a9d8e23cc875496a5dbdbdb4e0c0a6c5e61949dc6023c7dcc134378f8cd3589a433fbe218ebd264dfc65b49278e91efbe0fd827c4ec9b1b21d87e4bdba383eb59e0d8072aea9db17b19e0266bf64f398979ccafc54dc8df81e096435327054590c533b1a8d05563e288839a90d5205bfd6c13adacac61ad04458427e741bfed549044cecd4820b6fd310e2136a1d1bf2b767217e4189a3e9b722997c63a760b44b8ab58616404a55c9149b50ffb6b5f7a9e971f0d385186fe287bbc47273fc59bae9c665127eb8d09e1aeb32d4b84682c224a80252143968b6fda723f635f3d0afac9e563d34008371fba8e3600259b803bd4e64323011626f8e3d8fb56401eac6c710d748ec1f0455e699b70b00a4a3ea92032ffd4d000fc88e669f2184e05c6c3ee6fbc19f1a7fb0e315f05527476cd454c6b4379646503597a550270320d646854190b19585eb7dc54d816935be0187e2f8122413006b5eec57a3e675764e5b7b019d76f37340a6ab9156ae2f7ecd7593a2903b104ac056d75ff2eb985de376257a1a94da50e3404d4dc634118f9b59991f848901f9048a65ae9ded637347017b04eb441bb79e13f7c25dada0c9e9209a543f0113966096dcf67c1bf8ad084163518c36eab2e08d3548970cd4a0db4eda15bda5d95b9f7088e76d26cd387d9d5ef6a2d51a948905102820e168078e3d9c701692137eeba057b08dc6dc96c21209165aa6328a641b3c483676101b93dde974e028c64f618a9d4615382ed4d93b7baba296339af3a9ea7e9d4abd78ec692d7b038204a443f4612a5542c96a4bed87cb281d1a633751b6168c09c5d6568150a8b2e2e372ffd37b637687c88dd452cf992f92a08a6a165c6f0e1f6107aa3390696dcf55d3a447bcfe7efa2957eda19dc1e97ed026a279331f1b34ca45e1c648a1ef06d011ea627ceb4a56fad956efc8e2d3c890679e3e800697cac86801724ed85703e62025257f27120d726d1f11dfedb2ab8e168b62c3b75dfe6ed8f51adac488db2858730d8a9ce32572c74422942aa7dc977b8f777fad5ea97a56eaff65fac73a9c128564aa0acb8359c6fe2e5a40525a370b804e8396c9b2b42e29246475923501707211d424884c7245f38fb6d7047e59101b830dd2980e7b475dda9c1cab781a3a9995b4d8f95c4a42185bc8eb505f3d359938f5fd3a57944d305ad56b95a62d15b600bf5109a04359d475d22d1d38ad1110b6f5b908f9711a38e42a41e5132746ad93528360f851a931038869de6d962c32d9052bdb217d2e406cab5883df7480c7fc712add142705746bb93a5c1e7236154d89b6289395c9c4098941b2a9601f714e530ceb9199455b6e231a0f682302f771fe11e8700d407c1df420d292c2d443cc178901618ad2cebb9aed7e44faa67101cf2a1205abc43f767bc5e17914215187712802a15657077546c7155404a4b49232936aa8f5b5b88fea09282ab11a46602dbc6eb6b9cc9acd507af9dbc8b9efcfb18f370a4bd117f07ced7707d21fbeea1b2302de16ff8532234135f47af9ae44a2b40c5fc6b7cc3c0709854be7ecd7a5acb0822ad650add102144ddc836afaf9a4dd84bc7ed1d7159526739d70ce24612bad21d4d2865fa49d26552010190063c84303a86828206b2c23bd1c9d1750babdfd42fb67831592ef6cd56a3a826e24e0cc31da304aca5ce702f378cefdd349be597161145aac32a6034920bc3c4420137c2a4e30338745969d2a7570788e4ff5867213aa6592a4c1f3b8489a336f58f3d80bb3001cf0dec71efdaa91e642e622d4bdacaa8364d5a4970cf5df29c4b6465702dc5d45b00a1a11c44138ec104146488fd9a179a4106aab1d07bf7120e0f1a14d987d5e4b59e0d417d9c63035cf09bc90c87941a6c466573c1fc7d5d5777c1234bd94ece96daa4fabac67290902d1c2e801318125fa57a299f7c7b0b31c5e2a41f33768782cc9ac84f354957202d50b00f9ef0de636508c4feccad1f3bb8cee3bdd6d7dc37655246d360ffdba842f1f6cacad6ccc5eea7aa0554338ec94f400636bd9c872b9a6ef145f8c1b9c168f4c6c5ab7b58cbf92bb73f07a62226bcd7d675d477ea3bfd3d290f538b9c813cbe1489c3866866dfa534a80c675ada95b802bfe2feb735043b6f8f6e168ee0dce1a8e65b3b2381fc544b3a2dd92c1b41bcb43433cd5f701f2a02bfdc353a43754c8da886ac14805b0d886254c2c10b96ad270ec12b789f339d1df4e1344bb853ab781c81ce3d9fc6a61796278603b6e78f49d3d15062742f549de960d8e06dd1132560b5beff221aa82bf62989aabb74104330c2cf95bf7241e243871e5c7e3a35ff722d149a361bd45a0d507ae5f0a2bb2132b9a859cf2f6135cfa2651499f365d8ef1d3b54f3299652b8569e1fbc724fe3ea8323d4b0a30ee3b00e5c7e7af739c93d88d4c24dbe8fc39ce2e0554d9cdb821d517b872ffc5da438c03f307fae71821a3ea303844a4839389070115d04a43c2ce07b639ca3f1d2de35779f90eedfdd1175a8efd92069a68333068e5da13e82ae02442390b3eb72e2082986bf7096af7aa6c645219bf4fc9769b8a6f9b38b0eb7f52c54f764a440d20a4f2789a1d88ad7d6bc90210e2fb904a4099795ea20f3478ffc22947b1ee2cb3f8aa64067e05696e8b39f57d265c1867fa4d79f4f7475b496c3270fae6f7ce4b146205d027e7b11e80106396f9e66d1621a9012a86b0fd043a10e6038f2d11aa0e249d4e25340ab2181a2a4ce4d6a02219d43c05fec6be600db02bc5e5f929533e2b186bf63991230815f670dd14dcc7e12d954bb17ea8dec7616f2ac8490c9f982c77c7c86d60d28af5c608751a0b00d6c5df752908a4e16919cec225fb61b3086ada35606e259faeb9f3e9817960872eb87515afceefb07603b7cb8acd56e62427e6f4f8844bc199f69d4f6e7f4d111ad5063657a0ccb25100d7f73536d5fb871702cdbf583a6b06a4bec09750aa12999a8189b8a095fbdae22bfa0e0127f6d72d0908ede1be447ef4ce0d136fd082d2898da415dae54c4cfba5558395f0509603828f9b762957033eedfd01c8b5e1fe098d4c9b6ff60405583213d8f2dbcb13f2294534cd213a1c645bb286eadb737fd3021412ed0a8cfd8f4069e9ef98e5b28364cd12dad9fc95417e0d2f6e8222f5c30f070b00af40dc7ab1926f2170bc6f2014ea8ac7ebf3285e824a654bdc9b54db7ecdf0e61f30f1cdfb162ddf1743d9eb8428cfea67a2ded9e68daabc92f64dc466b4389ed7adcd56ede143b4b5039520a3ab1c0e8c64c1cffc88c3809195d93645ece2fb72ac074695ba962a9458cab0ba8c623388e0e124fb92d2af217ed11bcaf1327c4933fea7e5c363692e79c01022394585e295fe33994d3fe8beb0c071a8d5432aae5b87b144d7e798bae3d2c5e91ce5b43f5a0758b65bc7b2a2ca70a39f1512a66583278c565097999f77de3e2efe5316e02d5d91c0230304bf672499351665b965f9c92587bc51921ffdd10791e0a3a6d11fc6f9c9df92b99ca8c1a0b21f32d32da59d0f51664835a3a152fe5584575a8a4f7521600d625c7be3a77e56d6a6eaa7179d56363c2e452453bcf826657091c76af32f3b5553bbcc846c6dd968ed3614ec61bf130e29e7e0524736086f85dee36cbb2b524e9d4d534b79305649ce17640699bc47b9e594f15724c15ea366d33c5c980256a9999203cec725fe02c31d73ca5e7ac62669016b76be96f9baf09b3511bac1f80378b988c332188c1a05a231aff50ee5b0199eb1c681a9235a07ab398d77cd202db37a5b8e8a3542cdcd7e7c9ff9a99c8918c88b9ae2b086971ca665c4ccd3ec3de4c1c5201ad627bf0f962819114c2809e6319fe5e1e13d3c9a956d832e9642dd2723d940dd064f4e9025317376937a0bdfb29633520513db8be5a0b2a54926849802f80f7a090cfea20cfb1af522781d401a2fec0d216e7a34975fba0c52843ca62dd27ee78b60b548f2f4684009a66488d03098540bdf419eac576a9ca8335156bc86e5afd93726dcf52879a660f4e332ba4a2ecbd56463ce347b81ec8af768b1eaa4a82748cd44e67c3e0be69dc65f85fa44c08155ebcd24790df09dc5960f0f8aaa4f190b51746128fb7f3f4667c12e202c277a2bca531e59f143f74d44067b6ed2cb26eb04ec539e71278b02b30b6cc9de4a39fb079118c18e93815723838cd53d9cd9f9cd3d401124479af0319d3f5967142859fb45cc6861db0d1b5ea20003982dce4b645933082c6a3d0ac22135d16e11ccfc69a162d5aa02abf580b9fab84d44f68afab0bb2ef854746448efe40c1ed8e432e971f50e9015a1810f79a94000ab6b1d48780514ad29f5fd6dd8cc66a48328d5fe61a699f873ee7df0447b754b1318501f88e6eb5e3330ea797d55f6416d4ba2029f924a7f3ec113a97bb24722e3ab6279cc4d2b640858661df830b6a0c9826231312dc5c7c91bcb28add179953d2cb396979e5d6b6c3d60c02c820439dc49d02ea3da8b83838a1fa576670d61678928fd9772ca8296aa06267ad637dd7611360d13c977ee8b7405d5a0bb8d8598715aa1e352eb6bb4c0fe47b353da2b0e21ceea6350d0b8c73fc2899464e3adf54230f7246a9d45ef8056a7fe777cd4c034e29e7ac6519668036b5880c61944a8fb2a7a017bbfebb39e039e0b9de67046c49d872180404e8b2367627ba124d64cbbebd57078a61abbb4f86aba1d1af885603c44363719525d76a5ef2e34383ce2cb7def69a2bb56373699b47740dc5760a8bf6bf2f34cd827cd37417740018a9233ed463a4e55a921242a022ee6e0d59bcbbb970b363d9c3ff84367f1890877e7c76c4e4c43ba7b568c9ae7c80e7ac55a107a72846b24ddb531a0b42f1ba1721ad80cad0e0c9464a369016b62a7a96b6a202bd5dc0952b7d9ab1de8e4b2260ee48397c361ab8c916d6b2991c02fb3fa8fa3d5491b9058c1a31687f3c1f16271910c1d3b80f14c25f56293065ad055954360b2cd629ce578f44b9b27d8f87173040f1b64bec47b876bc34884d484c9625ddcb9ddf2218928d4804b3ccb06735a71f63484065b569dd00d9bf3640709a3347a40525c544d769563c99714b4f8855eb2ed94364aae6c1b06590373821a089efe42618282b2b74c353501d4ebccbc22bab809c06344bbc7208fc8f96848c0a6e10558818356ce986bc4141165b4d3c615aff38ff01d6920d205ef45d20aabc9d596d4951c31391143ebea3ed709c529a9e1a20ce12d76e49a0b933e2d7707699257beaf5b00bc2d01c6840e56ae91c0ffd43b710aabd2154100399d1d98496190fb8b99fdee113a9f7535ef1e0974ab955bb5940941f827e6fa639724f25c542d735a0fc3212b8edc0b3fd340e4586bf837b33bafd68a3a287c1d8a27c260275cb5ee47aee2abe37537798230320b87bc11871ee75d633cac7cb46943695f16a2775dbccb80dc74ff7dc84e62bbc4d91e1657b451345916c7982f11ed43fc46edc4cd9da2fa3da4967e986f3f3c8055b1f7d46c79718350184606d9846d067843089b271440d5e048f8ef74904f14fa4a0c06f898a948dd31f178a494832be265ad1eaf1f173f8e7bbccd37ea215141b3aebd0aad88ea313353ec9e313342c30ad1caf985e4466f5cc5d9fb7d08aef35ed449a348bcd817f4fd1883e8716fe0ea504cbce8d8d5356f084fb8b5616192de7d020a7b46a61b47db9bda07d91db3737a4d5d55592da7c3e7096e94323ad427ffa98f95c3fb616698505e66767c2706997b44709845e22f8405a8d2e459b38a4d8e22a71ea5e918c523d9b3523ad2e1f805c00a284198b68bfb7a8f80ecf4a445a01cc8ce9c38531b7a13080b1fe7ee59d5a6ba41520e3deeaec6d141ebce22f23040f19e4f1f6ac505d25018761c8999f58c1fac1500182d4f330d2b519c61bfcd84617cb2d7dcd79713bed4aeac254b4b83d1fd17a985d81f1c972a4a6869b5df11a809f590460d136bb826b0588edd65051a5506cacef7c21bf0c587bb3e31991496f1a4419aceef60d41428f6671e9ecaa8f55b08ff1bf7f14cb405ac8d662a0d0f9d28908c6f9246e44faf79afafecdae78780a1277431059ce1e18441ee56a04c7d7d915103e62c09efc61a28b1da56c47045df5da6ab7cb12c9c1423d036757888349840b0fcd4a0b2efe7028659e6aba1ae3238a1d1831a61454e5d9d5dd6ec38d403596db6deec1eae6366b726513548f076ac7c47bfda98612a5a6c8b78376665706abf76e2e967243cfaec05b53e61158566657a87bf17e8a987d3a3b292c767675d7f2823f8b05d344e0b29fbc37c12188edff0e1f82bba40f0ac2b501a09db1cdae321c29f26003582571c262bda07f7605309874c7ba9aaaf6b19c5d85aa564aff1cda2b4c0857cbc7fed64bde5771d57725efb51aef56956d5d615b09bc6f37f7ad7a9a02f0de7629a77243132c60df60592a5803350feb0b9631392a813d584ed98d96099d61b38b7d2685b5d89e7cc2d29ff3a1f124cd15a5d18640b270d18ebf3eb063a2543da568e14bc2851cb2cc80909b5dc9fe5a397c50318d90d66f6d8893835bc466d23635f8b96922af460d3aae720c1a74fb737f66a6e1463e05d79cdeb10ab4c83006a34d1c448cfd151e5a9650ba3c96e530f0d7fc55ecfc91903d8061828bb58ee2b0c96c8c023cb39a4683b4d6860bd9c74094e75ccb92bdc96de070f3d961e9e9e35f90fe19c8f871b096799133359e3611d3226407fccc3a24fe11ffb5d8723b1078756b06ae4209fd4ea5677c9cc92eb8a1ad1d762d66d9d867f450b216d40ddd0f30bc3960bdb4b61eb8bd874b3570ac6cacd8bd1dc1b393ac3c4ed3dde9a38887befe0403d98149ecd2af79b1bdfc473894dc837b9168245feb27e140eabbb8407c5a82a0b3d1bf919c3008ee50f589b93521acb10267f65da09ef093d8e06569d56ed1fab591a7283b650dd8f1aebf4842df16f18c2620918e7742a3c88ed79f692c8986d777acf83521b915841a38417b3d3425712432fbd4493beb032ed56328783b3d5bd07e6c21325de81043b2d0a667fd2644c543f160b095ff9d866f26140a7ecc44b60c885d587f82dca16d06b9c20f7ed0dff567a8fa46d53333fccd637e87439e1e29e3a7aabdad5fc2d5716278b6cafe377ddbcce2f487d8ad60a5b596b5aba47c9ce90071bd86451273df66d0b7115853fae563e7c6519b1932967778b715b8ce40bc65521e3c40e113159876e60ad9b778c6f33a6029d5e1434892cc07d5e1f0e132ddfce35946f7573fe2081d9d4ad45ed2abead9da1ae6c53139614d7309a6ea27d657b82e1654661f8b19f887fd01b339df6894ce1d93f854d5c39110d38a18ac8e9c6b0d2e911b4a4e483d48bed59a481500bf76ffa3254e3838150f88804feb6301d8a5f11603d841e3402f3a04301e50ca3e85a07302281b6330530fec2f7353352cf4d46c50a9008ac6f886213efb48df0508608ae1466e80272da173136c142879df011811b60cb98d41581c397deb44ab0c73eaf801f8178c6b439c7fd560ed65e6f301da45b05d6f67b9c1ad33800a13f115def7491bf18595f9c7fd99026e1b61b2134d8670cbe7cb09a77e2a3c832fc4409d42855fc6eaea2e049e50ba69d1c277208798e69dab0616ff0c32fd8f64e776604c8b60c002ec37805bcc48bd4edfca12881c589cfd782913cbe418e9354edc386aecac3248e5ccbb6f02d3e74ae4a0d8dfb3e30bbce178add24cc84a979a90562b0c946e691e43d8d3ca2ceedf1a74b429bb0516cc312bfd5bf3370fdb48eec9080e29d26b14e962e5e61d0be879ba52555a2c11676c2333debaa3f681ddd7a70efb6f2c9609036d7236336858738c127d74970880c9049d2cc80c2a615f3ee8980d0ee6cd018fa9afbc9d0e7431989d2cb9172db0041d37d5e41a56df8086aa1cc9202f73f15f268d5e70824ad0d7183f0d1d41d9b6362cc60bd569d6172c7149121c4e3091650689f244d0ebe0c7ae9690c3f8a5885d1f14e1f3c71557cef7d5605186713a344b5830ce4ef2431344723bf9cc18203c8be0297ff199e99e4e12386fa60294d48c6a851d8111824f157e6628f3e524c489c73a26e4e4957bd393636e45c274ffcfe5d38ab64f0cfaa587eeae968995449c90ba19127fd0a9564c9e25aa451abd23d08af444988465a007610ffb6fcbcc56a41d87a3d384654ed86a05131c987cc04d7387175833588aae61633feb391d04a8da71ec03e33f3013b3153c9c975ee731fb716eb76ebd19e4dd8201d43fb76c18eb646ab543d035dec92dc005d00400ef073cd9fb42bf465225da852b691f75a92dac00c638913e90ab371d439eff768d2280353fcf3b8d2f106ee36b506bb232d9430b2ef5ce9b2529cd8f8220b8460c030cdd681eb7398f2544bc63a039cd63d9a852b956983a2048f66f21b95b2d4bfbe8135c51a8da5fd77365880820bd0a1ccb531d221539e5dd4f417db3a1417e082e6263a29f30f98553166ee23e35ce30421d1575881307ef4abe612670b4ec16869e7195058634ac3256480084897234918e39e4e754df4b9214f28e846774568da26518ceae0f3009b7bbd1380c5e363a6b31a02d2b1a0d3654640612600d766b0463046d774899cbda44e14b9df02a4654c08434d3d052826194ca8c258e55f3d127aa1945463e2ecd6e0260ab60c2511b72e8ce236519b4f4e766aaa38e377e5f0bfd01392174d83dcddf723ed2c369869bd505094c6a0c9b7ba50ff8b37b43f352bae694f53e094801cbbb302c0e3e5f3175a9638a474dec192e6c5751c92c26963d33cf004234dc46e490cce790312798c9d3ecd7708d8fd9773fe2945ff92694369ae8aa047aa3c06f15ff07d4a385e1c7cdc36c4209875d249ed54b8c0d13461a177f8cf326c4c6111c311d67adaff6a51cb57381976fcdba9fec91cb9139062e5bd57ccb0afd124c55c85be53869e064e5facc6e0c15ed84ef3acfbee03d0337d31c979a0a9ed44095e1e23b28824e0c7db4201c38628902442c0e5e7c3f6267b9c0acb294c492c261d662c40d0bb03027a7eb8616cdefe85791efa10776205ce79bea7a25c4c26aa6e368ee2050289fbd5b7390aa50f62dc60f83d080b8418e5d45f0cfb7f3b619a0c0092fbe30b72fdea5a379594918af2d5032857e4138847c1775e435b1f37e3309a58b8d95ac93c95b5ab601c03a25cb1b2efa070feab3f3dc490c41d8e979df35fa55c7e165d98540eec945904fad2aeaff06b4026fb258741b9655676c4837228cdebcea26b0f3709b3f4c0696a0a6bf4ca4ae9633606da196d053625e2d1222943d6f9503865e54ea10ad7666234c19c9fd45ebe35aab53c8f938c4dc040a8c4e8ade147d4e977f8fb959ea0ab90185840608591d57311d612675944c86db5acd09da6eb4350e1441481adcdfcebefd253f96457a8b5a6c662655f5a92c82bc1b41f5b12cb6e00b847223dfb58f681558c4b909bcab29916a58ed1e6d79fe6cbd3bc58d8f658d7c5973b86d270e2ebd229c51f384f2bcf216a9c5719c981798bfb7bce305ca809047bf1802379fc63394e072c262fe2a8242a23c38d54dd25abf784aa39d590558de9db7b037b481bc6a7cc05fd4417963a67e2141321e15bdc18424caf2c5dab2e75552100db44c44f6d26e76ccd31498383960bcce557f2bdf6f7157fa445767a6cef7d495ebdd6e2fd2b27feb6694d96958e6df1197202629dbeec8735e9402b591bd440703ca2aee6958405e15a503b9414b80c2f1ac0bea71e42f71edcd403d38e3ea4634da699a27714b61fc4ce331ad3355193f870eee19571fd45243effb96c56e96602a34b57de954af1eadc9c57414811cec3722c9de52ee2db79432259902c1064b064e0636fc310bdb52c92f6de295e76332b5a0de70ff4aad39eb3beae570da4bad3dbf49622654324449e85d36db6aab2d9784f5fe5556fd6ff0fd9da5c2777f36d5454476e19f6e106d7f4b44a0eb94f3e8bddb67c331decde9f1307991dd44cee299fc0afb4acf06a28161fa1f68874f9baaabaebaeafe645be2c2eb1eba769b0eb7da24dc35b17925d69794fc56f2de5392f911ff9212eb477c36ef793cec584995794fd3f023afb2ded3da3be23e5aa821f769ed7de867b4cb42d68f5021d5117143c48d45f9a77a0f895e7954487d16a5426a5ff7ef275baeb10dc78550b4786ff12eab8cd4c7b0afb2ad62d6775a7b7267480b9e9cd9a61c3d32f94b0b6b6a539b6ef4cf10813dba51b991e726cf02c360557611e1deddbbbbf76f07d9213d721605429e1eddb80bb87a1d5ed4c226e1fcc6fe2bd2a3cd89dcf7defb8b0df53d5f2a84baf9e95a433d32ba7c725459b1cbc6ca4de23922ada92069ed3d1e8ef16ef87bf0dd87d78061acc71eb39bb3fcd4da7b24fe93e4bd7fef2713b7d6487af4d3a3ebbb05bcf2fe097983ba83fb8070bba75fb8dbb4f98efb3a49239920fa4a4fe7b9af2e19f72e731e363d2a3921ad0569ad86633c13f0ca7b1d5a8842d5d5503a5e4f8efb5ec7fb9fcc77b4f678eedba86018ebdff7b4b2b69470b067e9be9a1d3d9296a5bd1f85446bd2c5dd6a75f0d91d4277906645f73004248af1c4b9cb037a54bd943470dc1869c487557c2e006603546aa85fbdac36f815843e5ce883b7a398aaac6c8d520392bb69bfc9ed84c5c5a5dc5c4e4455e57229f97d5596abac249b98a0dc3f9784c78f32946d142afa37e5efc6fca9db7b90612aea376a7d655976b72f22a88f54a49470ee9f139950fee659fcf688d2fddaadde51fa5fcc6076837b4a972fecc9b97cf9ce6eedbd4c3fb428cff97ab63d0ee9fa0aee9cdd66a8e62b1275a516473bd70309210ef851bd833888762e67b2ca464d51371cd7693846bc7c1501e6f9630e1977f0b8f023134c8237b103177ea4816b60d8860b1f26816860a8860bab6078860b1f2281636058860b1f9e2018188ae1c28747a017187ee1c2873e700b0cbb70e1c31e9805860f4dd00a0cb170e14323700a0c1f1681506028850b1f128154307cc80397c0a448845b206cc2850f874024302916e116f85009700a264523dc021f1ee1c2873a90084c8a266e810f8b70a1f6f0611098147bb805c2215cf85008c3f0f0f0a10f98147db8053e04c2850f8330cc0e0f1ff28049f108b7c0873db8f021108681f1f0610e98144fdc021feee0c287390ca3f2f061144c8a4818e2e092e20fb7fc6098948737b8f0e10c981493700bb40fa1b8f0e1133edcc230fdf0a54ba975b4a05ab80be4a0ec6b5675f8900ea11c1e871c70407912ca6f7d49cffce2635efcd637e6990f7080674600029e39010978e619339ef9de67fee1876756800216f0cc0b90796619209e198867a641a3860d060421c433d778661bcfcc80670ee29985f869809719c5b2f82519f62bb2923f39d132d1f39069bf43c6c3c3c87678950cc6a7642a6fb394efccfe67fd42649bfb24f941723ae2d36332528408cf901d9d92902040727ef8883d6e9cbb9c92df5c58fd486b2bf7f2a9eefa6f1027be926f5007fa5c088f549f58591f1c6772a6577aa557b2b1b1b1f1f171f94ae0eec32bf0d9bfc02fefa4a1e0c22702d1eb403d9501e27089e2a054b284035f4acbe2b8333d652f9eba411c980a21182e7c58ea27b87063005d3cf47953fbf008a94024fcf14efea87f22d13bbd9394b596da6e9e23441644c680cc465623a39101916db1e7c297c916906dd1c885af80ec876c8b44666409c810906d51678b2552b6c5205b041273b6f823fad8628f0ddec8dbe26de6395c07c780af92f98ecc77c878c8dc8663c0d732bfc992703d649b3771e10320db1c04173e4bb6f9083637c1851f806cf3145cf82dd9e62cd8dc0517be00b2cd6370e10f20db7c06173e01b2cd6bb07914177e01b2cd7370e18fb2cd79b0b90f2e0cc2e644d87c8acd91b0f91236a7627328f8142eb4c2e643f6ef66fd704438d5713e93d77b1ce9955c0b7cb70293628f1e5830c23026536052f4e1a30a17be176118160fe38f1f7052c1a49893f3041e86a996c0a40804481386308c850426c5204194b0c3306f0a264521428ea0c3300620029362a9548412c3d0203029eae80c4108c3481f3029eeec00e1c2f720ce0326c521ae05fe901e5cf80e24f2f0c09228981489d48049b1c80c98148dc48049d1e45a20c3acf0c130273d701846f4447060040af8ee0226c51e163029fab816980226c523aec5044c8a27d7026f1806e5450eaf430f0c8eace08402ef007c52fc712db00926c524ae05324cf6f09d0926b90f84493e70e1cf1c321c5e872c8737c95c3c0b16ff015b7b77ffd6fd7c0d81d9278545c1debd5544152908ea7ec7d5726f62c28e871c2c0ed6f4c2a2587f6b43b1a127aad55657cb0dea7f525816921016c2b1017f86408f4afecc7337eb675eb7fb5772a47ef7762cae7d83f516dbede95c4bcb5a84d8c531cbabfc961478d6b053858cfb1ebba8c533671dc22cfb4a2eb2926f71f237642c4019cc6a4c20c02ef7f170379792677f29a2b21b0fffa290dd44d56eb539c421e7982d0aa8081efe45a2caa6c78fb15cf7db112cd639f6251975d1707f2364ddf720cbb19b09f676bb008ecb5f723d04e0257355d0a6815ba5702416233aec8dfaa0f767d507cd787de7ec5d50a5617e1078523892a39100478061a8771dfe76df0c048eccd9f6cab98aeb0c86ebbc85eb6c85eb763b82e5d6c730cc39e75cbf73a1877d05613fc3b16cfe9551fb5a93167777df6dd2701b25c74c05be70296c985455559e6df2665b062e67337ea37d52b8169f397964e404477a32abb813d7ec012c04180830136024c04a809500230136026e1dac0633015663c274603a301a23603a8c80e930426986923434343314e601cc0358135813580e2c47472addbcaeea6b6c372f6951496b95989452caebabdfae5a7ffebb6c5cd55a4fa1f74563bb794929a59492565f795f34beeb8e5dbd5b94a9b72a35792c6895c18fd97b47dd594929a5a48e446545a994524ea794bec4beeb4b57555f2395b2aaa4dde8cbcaa39b177659164629c564fd79c57961b69dacd83563adb5d65a6badb5d65a6bbda4bc2896c177d9c31e342f29ad97d27a392d394198947f49ea48f40894528c524a2946e9152a29095532a3ae9b57472ae5064b15adaaaaaaaa4aca23482aa594544a4a29959256efc7c56949392dcbb268dd62bb79498c0989552f31ebb22ccba2d5b2aabfa494524a29a594524a2965a52fabeaaf786926d3b1f2af7d046b567ffd9c5736e32e7d57a447d5a2c8a7a192a71e849584e85b52fe55492a29e42b8968d20616300ebca0ae63be18d04dd077f41d7d37c550fb395e143e87a16e7f238a7bd72f9dfbbfec2665ad33d358be1657eec36b08f7f4fbf9557ae43ebec6307c23b5d34d5765af2f3054f84f254661728f50faddb3bcf7efbdf7de73777ffedebff7fcbdf7de7bef3d154cd77409b57b06ed9337d06cfa98fb67b443790f6fd8e0b74a5880bafdae0d978d30a7abcc0fe7dd24f9294204488ed7f88e233e3b3a3d1aa769921829120488e3e16a4e470ca9a1c231f8e9900784c92a1b4673fb6f6e0fbc3790c7dd2445737bee3343dd280f23ae5dfc857fe87726dfa4f678509b761eb7ff3ab9d3be4e749d7beceeec987aefc5f538fbb01f3349fd1e5219ba8888641d494fde8efb2023da683e20ce6d6823e9dbd9b1d9b1793b3b3b3f3fb4ff95ee262592fa92bc9d1c7007e471f9df917e793bf7fdf80fb4798f75c6e0036d28680373a00f22456445a408883ed30ebc68fc75458cc6e8fc2f34d44dde394ba8ab25978d95ebd25aff739121a38ae8c5db5102c768fa90c02dedd74fddea35a134fabaa7eacbf8be8b46e9d1cd49d0886bf1dfdefd488754ecd9f80b0c62c4912011d7d297b5ac4d658ddc7e908823c1222217df0ec7e87f3fb0887ccb6e2277dbb2c8bd7e6aec19fe32be7287a5013336429c29878f217de211c48dd0bc1e73058dacf9bf1d7f79bce2df2f9a5f91dbf4baad2e1a0f6d585cf1061a5f56728841130ef274fb19dadced5d35f05c96e2b28e1a76dc799da13aeb44cc5037d7e3e4462f0d789d955ef295a627fd5e7297d48b3891dbfd4e9eda0c9355ae2aea466ff7b34a6b73f603b9f1638fcb97794c776855ef7a7a513ff3ee73b71ebe8cfe8b4958c09dae12ef3d5bee59251cca56c1af647ce8a443f7ac5b16ea201526d351ec1b2065adbe699779c58b8b3f9367e6150f9969f053fcd453f0297e964f321406fd7c6de2e2253664b75aadc31cc5be2f19eaa9cc2f191f5aa338db28e476e8607695a1f23bf68e603fdf738ffb2d71a9d65a6b961e31f514f5eed453568359f5fcc8501d85357eeb2b7eed52ecfe335a094959168ab21ae6d78c868f427d44a1ac055c1b92e8cb364ba2af0596a0b9949f6649b819b69bca65cac687b2def8f546af2270a98de5f2e672d9bd76fc9ea33171d30547b802911719b97cf90a3d97ff0d31696ebbd26dbfff6ebdd250ef63ce646beed94a863a70771f7ab3ba3aa94e6bd731bc92504b5256d677c837f5b80ed19fdabed2d6ede3853b843f666aa7aed55bfd2890b28f6796805001a3c1b7dbdf0c27e3d8f966ce3de05c92eb3ef028e7d3ef5512c2528ebfb8230e733a07fab88eeff40bc491ae0373208ebb6c4139ff7721ccf195fe23fd02815416e6f890d63ac7775aeb9ae3ae035d27486fd007f7e5f408080751fde3d6686bce66af660a3eb9ed5ea894be63277e478fd0995ffc857aa7301cd4ed5fa55f446eb9badcf717e6674fba4b30e74b0662c65de7d5b726df7a8a9fbeb3801b425a25bead12ce2d4af5f2a9b732944a5236624fe1a373ada7ef29cf66e4f5970d42a31a102817bd320bb821dc7bca6d10f119453ef5558622a9c812ed0d485d1339c22a93a7a353f2fc233260835f44be327f3eb3880a6d0a777e16ee7c96f3374672671257061d978f5cd621c38d5f32f27d70d790a1fc77e5fcf94c854e74c8a0e36e313b313ddaea9da3f90be851fffc1a2e723fa93c992fae9b4ba8d4cbefb7d2faea6bcc17624eaa9eb0ca8c47e24f8784bfdce02f2c7ede90395ef16791adc8e0bfc93fcae4a9aceff54e614f65eeb18c06f58e7af7ce6e0e52af99887f12db0437360b6e64175f89d15da89f4ec576f24f74bca85181b2357f2799e59ed47722ae13bb517f837a8a7a475ccd94b2754e4c25264d03b29bac2776abf6ca286bee3a341a5a55ee08954b5522ae77560977a9c7dcd57c7c23ec57551475d3e2bbf88b2bf54afc7741a20bd25a7ccc065583fff13717e465c5c76f1d3b9a478f6ea80a453a35dadcf89b0f36be12a38f1b7f45d6005f898f658f92c19a3f911c1b1d9c214c243acb5726c387d6dcc27ed4ed75153fa20e92d37d377ed3c41dd4a918dffd5d5a731b0176f079f3b6c46d9aa6e91e3d72d03b97d69c8d406b51d2d0b34e196ceed6342e8811213d8a312251f2f14b4ea058f1a0a69971f7b214682dbeab41c25fa46f357e11feb2c2c68f4003a2e4e101750e3a9377a8d5143fa8b9d53f4ee55c8f5cfe1672321ae175baab9cab5c7c23186687b3a900bfc8f015f9727335576e8ec77537a5315cf91ba3e14af99b63222ba235f92ea3406b52860c29453268fcada8ea277388b28f110ce357fe11f2290a0afa27fdf25f7391cf3d922a57b25cf90e470acedda3469473b235c7d43d469951ee23b44f05ae45c6650099df7b197dd781fa7b7d9b3e17f137eae9f309dcf712c22dbbcf573027a5ce5d64f40b123427a217ee1d66d4a173563d5f54f73b66e798257c0799b6f6dc7940b9c46650b7775d52f87cc864951e3907847a225fbc8ac63265baa918e35fddce753bd7525296d67e173f3297a478a2fa8b2a8f0aec89baa95ce8fcfd8330fa7335badb57a378349ef32c542fbfb2663416832a2d6b553f5d70f595a43a421e1a7cf925bbf3da5b94f129ead95112f68b61f20645ed07670d77e9cc73ff86d45f4af9d7c7c771a167db0c5bcf977b7604bd96ed1fb81607e44278c95096b64603d17b2267c7954fbdac15f682ba3d49a385ef42c651f63926f0b3c99cdc1afc9ea0986d7f6311f1ddeb87f03e1cd13920ac78fa436e7fcccd4599f14f7eb629c6a68476b7dd1c8df4636c9c88b969ec9271d4ac3e94953cd50f3251b70464a2402607325d48ada46f51ee2dfad64c4b9a31156363b9351ccbc4de90efd4cfe818271cc97ab785ec66636eae7b4aad7b8b3a4a29b52ca5d4dd53f9cea2b8e80261f49ddd6cd077ffae292be626e6e6b6bb56340bcb5351bfc2869ea8db0ca47f839a945ae1e244d1fe4759092f6b0d912e9d7b489d738e7e9b626cdc53f46738cdb6181f77ab3ebb61fd12d7d17f72eb8fb17124fa1d8373b78ada62aaaf28ca6e3137b77a964fd1a72acabdf5d4539594d6bbcab977abb2f467748c4d282b7993cce4dbb4c2c65f5cf0f80a7cb9c2e642f82e78fcc585a856f82727dd73f21fc4fc3e39b128d89b3c250a72e1bb38f94ba5f115f822918b938bd3851fe3c4bb083dd1261d2f1afd374016ba0f551af8314e3852571be3847bea4d305e2cc6094772ced9ed0878036f2e683b02deccef7754e517e92b7054fd48fe88be9b81f35dac7beb9e3be3cff6e98971a24df39f9c1f73e3442f5a732f5a833004352b931965adce1b3add536e06decac638e15aa89fe132a2d4643d40c2cf8fc4bdce95725edddd25cf7a37f65ece69bd8bace4b1cc722f6af12e504276936c37d175bbf170dfcf19aafdb5fe2bf5e3096537b05fe236b3e0fed0877642ef9585bd117a4c0a47aaef8dc3638f83ddba5f5814bbfd1a5cd84d54450b2bb2dd6dfd6b36b7fefec2beb2696d53dae129622a954aa552a9a6a6a6a6a6c64d393939393939ed23a78374a97744a7d3e974baa1542a954a2c6a6a6a6a6a569ce4e4e4e4e498b0bc9894dc0ed535a5524d4d4d4d4d8d9b4ea69fa6691d5d6352522a954aa5504d4d4d4d4d75939bdc0412808c1257236d2a8ec8c7e714512a954aa5528daf744d4d4d4d8ddb713c454c3e202ac2939fb052a9542a5db400060815e12f10877d7e1ccd3b9d6a4aa552c9d9381ce7c3e5b820f49ddee99d66a9542a9564c0541729a396443b8ff34e4568dabf4854abf4a927d1d3f0e8c0b1fcc1d00e5249a01b7aa236cff51788e3f244b7a78cdbcce3ce1246bb3d8e05e2ba90070cd5f54f12c6405c97c15063ae03d0e6e9d10aa79186061be67b8e9dc839616250d4fe19238c9657006d2696835a513c273afc04c90a4f30d288b49720cbba91e8b786f15ba47eb3527ec3507e2bb9fcec46d66f2c567e7301339f8df01700fcdff02e5a3c00e6f7307f653e2aca54deca5afc84148e814722ab626158caa65816c5e688a2c57be07f48113d6852a6a84bc62d0b9ee01878a4f2ef238cdf6015f7a121e537b80694df2213a316bfc5266e0441b4b9cf721747ad96f51608f415c83d28ba0ce8ff85e8a452a9325f4a19d083e2a45252521ea5ba88107d8af520d0fc1bd657e8a7536bef678c2a3f9f129d54aa6913342dcacfb72e22440fb24a00617dfd99f9a9479b9f2cbb81ec5bd445df75c9cc0b0887c39a735ad32d2b7369cdd25032e6f92919b3a66d31773e8c8c79fe146532589b5f80f9a01765325a9bef436b53caf943e0e9c124745a737e75c95813f4ef82ecb6048c6c73170628e5e129f2e8d1fca772838a8aca83b214ebd21ac8ca68edf1a3cf3a5508d9e9d1631f9e1e6d2c44ba488f64852618195f9a9db456bd4a96848362e56b36e3aec80a6184bfc81b5cf8b8a8c58ab5b627ca1c6ba0f95426294a564f589bbf92897865fee4079201f5f5f12307880e9a1c3834346138512089039cb34883727877c9e8f0351c29e5df3320081ec15839e9e1449e9c3c8c14d9c30a0804650a0fd60efff77ffecfb5feefac214dd3341e78786d0718307e468f52686872e89030a46dcb827ecee81982292a3fa91e3d82f1ef291ffdb2f2efa54aca4ad639bdf27e87ac83082981fe7d4ae6ee2c81af0346bc0f3c18ace0d13c0e3c9a9497b2d694df447787b7c3a7380dc3e40059fb443c08f459efdc243d9234397a64b94ae7b4f67e8719290ffaf7d324c552292a0ceee1650500bf55235806d6dea3f117005878065e79ff6c096c7a881fa859b16db8ef9d5ccbfbad211938c6fb0d9ef8aff5a887c041324e207b03f4d9dff01f47724219a63c8c77c36fbde36836d0da7b9965e024528137c51af152fe552ebec54f8b8aa0e8532c3c41130a8a49c68cbb6f635a7b8f433699e90922813f30499b744987faa5860ed9cba1c3af7902d99d1ceca38127dea18168f879109e2012f84355c7e1dd0d9e5abc4773c37b16d94657649be8fd49960425c35f58402c35fc45d6ba13061305a34956e0a75ea8b626e99346288a4a2a4c9ecc0de56563e5ce68cd7bf4e8a5f1bfa1bb480cf1bea3a8356ffb82b20b90ffa3b22aab6a9b9fba758fd83d1866060ce3de7fbc86ffe0bf2844031ed03b28e60eeb876d386e8d23f5c87dcfd2daaba1895ad42dba8fb21a35c30ccfc1c2745ffdf9f3a7a55afd25fe73ee1597b2569148632bdd25c7e87e439cbbfc660cd0803ec3330cc3a61b81d6de3fc071bc26e4e36f1c0fbf64aac7865037ee714f0385892031d32e47ff7b4f3a1d936ee1117900bbc87e96f71acbb3331cc3bdcb91c1748c65060331afd22fa0f7c93c3e337280de03ff03c8468161ef180618a66f9cfe22c301c75f6af88abfac55f4afe15c8f31c619edd6a747fbe81fd3005304f131678cb4868ba6b977f7d871aec89dfd031342f7e891fc487d0f1fadc59719f5d37a6a3bc2e5c2fee17a50f2abec5d8cc2ec0df8548f59d5235c6efc7a05b1c20650b041fb68cddf65035e43549bdb66dcbd71e3414cb67651be288afea0d13f665c8fd6bc0db7b3c031bc6715f53da494aff7def78fac7fb4e6f0bdfb4a5a1bef1da4715651dd4f8fee69cd5fda47860c17174dfbefd1e3fab70949958dd323ef97a1340dbe499a86fd3b878eb671cde3fa7b2e02143c7c2e77e37cfca54d740bd5875d11d7e3ef8ec65fca5adddbe42d1d039ac655c68c23661cc95de6e70b761678c5df0bd7c750d1709d6d9b684ffde7b471e8c26415fa53df3b25a5fbcb6ef55e57137552d5fb25b3d10b452fac69b21a040281404f51a0ea715c296b0692d6cff013abca625314c56f04935532d0a32712b148a46355dca37e17a127de75d7a3ae20aa680d017f46bbb7e19ea9fb26452d192874fc0ff36106c5ec871710fd019c67a8e4cd557549ebd8cc08000050008314000030100807c482a1602c1424ecb21d14000d8da44e6c549c674990e328c390410618000c0000000000800191290101fb8b3414fdaed73ee3d4d4ab288eb2cefbe362bdc168a89e3de3a2c265cb32c6cca6a8185511ca7a52961d256c4a9c4558410e7a20c79a4dd9126135ffc9c6c63c8b98386594b25dada14efaae54f99fe809ec84c7e20ce69103368cb022628a39320ab1cbf7892778626e3d6010340b4cbd094f9ae029f0b5d58d350b3982a552e4fb84266422e099f1f7a72c67ac32ca7b83246d5e6e339d6a4f89ef9dff6c013130f44c9f6477722bc96fbb1d93b90443983d0466280d6d9bd459d0c412dcd765cfa9e70c6195c61e05847602caf5eaec772be2cc2258f08f97fa67c8d1543d8cddf06011098d2b91570af94dcc844f02f6128f3c48f3082b22a0c895239733184861d77b0a399efff67fec3f3e2d059efaa0a7405cf6dd02da839f16cc145c31104b8c3781bc343a8da024692146904754c882234e826e7fd1661977ebe5fe20ac47f50f699f6461a50999e38f8cefc2dda1b880ba656be84e19549034d078686dec5d3404ce8df8286615de70ce523fd01f1ce1297597bccccf10648607a002e2358fb08a9013a24083c1bb1ac49a2457a018958d5149cc080349fc85fecc4679e14278c66c0f828bf0b725a994febd487a1a209ecc28473d79143d94a21ed78aa220f767aca75746f4491616ca3e9379b930d66d60b58a517d772232e7e92a5f702ad9720f9b62aec822302795b56bc211df49104b7e4c78e22672af6f7f14655804c42c37fdc750fdecf10362a220ae8c983d3dd9b36e1308783af04e84a40d51933f3c346e38e1ac4ee1c6c423cb1600d9198c133182a2e3a62f0599bcf2117fba3ecd6102498c3b00b8b816031e60423c7d2d212bf425618c60289ac1adc34a312aaf40c0784d0fbba01da4bb6aed387b2d1ebf8a8e8dd2ea1abd911a7f79eb18e72c63258b348ee573ef43cf1581995817e828f5953a10e5978e45208bc096d1d9530096c51e030e5392780b24317492cbc2035ea2982372c2b4dad6f0815a80125649d07072efbe5fd83b3cb032c8e5b7536905c15cfe1dfea6f66711531241bb93c8d7f7b7b3a5e5d16a799cf8e24e644059e11c0ea121659e28dd5dd0ec3a7e6def96bc6f25c09135942eef52e6e1990579626f2ca77f478f08971aabc4205647e676479e196167b24997e7d231c43499b429c9192b8e1c938b3dce5c629f7011a7a3d9019f76e0942f933f400ce75813465dc1b1002b2e60420a849fafc260822f27a3d8b1d414c6a7c056bb1d129faeeab8af03f891793ff219d69f40c95438370b20ffc3eea109f82eef05ffe6f74a2417cc12f66dc05502840e3e4de94c4141194bf049ed9d60c8f65afdd0c0b25abb04245f0e9bafa674a6e68b0c3fb0ef4e3132d0b0825a9a9046a2fa1488bf5d28cde0343cca735593674b002d7a7c97c6bafb4a9f3a1849689a40b4388dcacb14a9f1adb38939f370758e5a42d278ff90090a5e5e867217fc8d1e49904dc3a14274e207b8fdb658e21aca4abbb0cf9cc76574b58c69a3a5ab0e7ca2e88f29955e97b84f7ea669362015ef06da82cbf1936287e7d3568eaa22e870a19cf68feaf0b911353e561293ed6bf95c8cf8d5dd5e1f2052a47c21212c7b2efcc6e5a06d82921729d8bb29e7dd22a515cedbd010f539afd9f4a4cad90a0eba7e79b5cf50cf94491315dc78c91ae6586d8ae21d013c43fa5bdb2b191497fab811ca0a045f8a5ab1099e184c7871446a6a383d843f2a2cbe52b4338443da1c99af845c40bfed35b24c50e166ec236d3a275f385ffcb14f266dd6eec7c0b4df0f063e186bb66290e1d2273392ffc4f433064066336c9a2a523858b9883870e66568b2bc34797d1335b69d6fb3e6a6a3cb65db094c277dc7e54e0197b4fc866d5af673622f5b49fbfb49c38854063320e7a1e2f65d028e2bac295edc766c280527d4e45f867da45d4e784859a7b401007fa9d018b9388c5a8faef88f4ccbf50ffaabdb08ee39cefa73eeb950367c90a3942b118c0c070acd513742ce8028a33b6c50b0063f72bae6545de03fba5e4c5f47eb56a6ae590b625401387ef8bf619ce327abb3d629dc7cf6bfb578fc08b9fcd1a80130a99137143b963f4ddbdc331d9ea6ad549e89e44a38e5f86120de0ba5fd07b8df07a50821732cdcb94640dfa9bdc06a8fa91447e25800c7ccb919865fa01f5d4aea03e88f4eb573ce6ed4aa51be84037c8f7120db7fdf7f7e5ff5af5a9e382652bd1d8c9bce33de4f62204c5c1b91838dc9396da9247e04f8fb1be919a3090a8deca2d881ef1956af63e2427e361eb6f591a71f0cefad9cc4a78be36e217c802bc60d39811b9ec0aae73265fc12cf5ce02d9f344ae4d485f591503ea278cd25e747ad395288b2ffa3149cf0a8a0f2b20a4ed3832d0182b529fd055397ff7be1c242a9e54606ca6a9221cb06070e6a585baa110511f69f4089f0f40a9b4fbdcad30529be0fec76abc1e1909c4e1e9cd676cb6a0dcecd63559f98fe9bcacfed424524e9b907c8a6307a773040658343125caadc0e49f5f614b50b35d94104a3003f45fcf84d97bdc5df7e10a500e09ecb280e2f65c299c77e95bedf588a7e3b665cabe4190007588a8d07a20f6a12b2aef07e05c55c7ddbc6e61237c03c0960c035d8c4b670fc70b23f0c0604b60641d5241ba29817c849cefe4d85f2beda33fd374fd958332d5dfb91575be540b7f8695c38fbbf87ff8cfd5057e8b3be8398c0b34975f58c218178f66eb101bcfe3d639dabb171136feeb08e15986a03f9b5c281e890f2b278c632180ddd81d1f8a3073507a8a6736ab2004a32345aa33fb1e7f2f6a1a7148d0f84df038189f66880da0cebb4b33266cd85d692d3046fd137e41c07e07627f8e33c35c3d50bc6ce2016194e45e4dafe31e780dc8611fbc9b7cf0e89e114df0c72e3207746a60669bbf29e7fe4d4389ebe2384ffd15f83f6d1a0255378ad0f8adac38f21c8acd0c6b9eabad798f07d70bf7a3b774266ecceaaff11dd0244547132a6eee4ecae90a3fcc90aa187147116725274ca05bd02330d2448243f45c394982e5e1780969c5804ee531e16982fb7186b8f0bc0b414e22097942688274191f78e598da97bb5b20763b74d3ffe9a187df446d1a44fa1fa0c2bb1b1d60c84e4440267715ccce6fef1bfb2f4e59dc7d964ac78cb4c537a230d0706131f8cad9a253b317f4302b1be4323c5f3815a78181a5ebdf4234073f3678f46fc8828fb76697225a537d0c9cb9b6f9b8699acbbde888cf8efb8dfc8cc7e1e2613cb126a00346b078c235f7d7faaddc86e4a6f6623335b2abd997d4da389414698c79dcc0c89ed95852b41cc666ad0515cec8ef1a3c235a178379e4c8d2e53d75e26732d40d046754971095677e4d8802cbd593033143d7db3bba0830321b17f1ad8069d7a8333f711e9cd9ee1cc45e4d41b8b30c468c7ca2ec0ba6bed98980b68322bc8ba654037a8603150439f6fdcdbcecf7874d9dc673beb2a303ca883b44c5d29d412bd53e01bd74571e1c9d03dbd42c80f96826dfa8ffc343ad98a3f5666d54db6c0c560f30612cf80f8d4e1e6534879eb2631357e70f2e5c82e86f81e71d08e09455401863eb2bc9885d1d3e542ff9d8323626c1c6747cbef584a86120e14f45efcc859bb30301236b5f9e887a86e4899208f20f918591cece122ed16f203cf5915a2c9169745205d15f60cd17a2c1830ce3b8c6bad50de34e596e6d1488a66a4b35586f94b9824316451565b2e7d60b27a3b8848f3bf12828b46ea54dcf06ef8f48173d6cdba9967356d725730597cc6e0ccc88457c5fa5537b260de3c5999ef648c081500e06a699cf639caaf721f0d38c7898fb09537b4e03979ebbc8284c89cede42d5dc2ae62aefcf2b75418683679d421ed800e0d62d2a68ea4a46fe0a1e95380624ba0202028af7f44a58f07b68f377f7bd4698e06f6ed604180b789a82e5461a6df3d823230f984353672ebb821892835805f5950631464102904aaa016519148eb4b08c7ef997e700a4bcf8d5b55dc82e3653f6a35c4ae18b19d9cc452fd1b4d0ab8eddd3c657956afe2e70c258a28a336fefe7ae9fbff449703e22039910837aa574c0e5281875d06011fefa491c9fbc3f9df6dbc8c6eae5e696439d8bc7f643652706767cea3fbf733cad7d283bcba4091d3f70a1deb9dd0f0741bbcb6187672a5b4bf8ce982addf5099c6dc6854da6ff661f53edbb55cc7b3d94282f8592d2dfd65c37c3bc09b2d761e850e6ef4135b34af9f97baad521d89d224c0f30ef7b0b6f1a5eeb0982f200d0bce743f08cbb84acd04d28189769eb9ee9fd39ae42640b33fd57757e11e38ba8982d4a72282c5aba4c3881dc8b6b680438ad67d0015d5f49014953f903858e786d85175a7487665c5e53439fb07b9500e30d8016d7bb02a67a866ac1eb380557909d5c34b204832211a65e1fe58c37d154b3bc24735ccbf4f8506eea0c4ab02d6f0528c3850b82ba92b8077c431c412e1a027b3896d359cf823fab83b9661b78a1697991152223de42c1bfec1a1563f23d7b966dc3fd4a0547f1e6f656b13f01d7446868a8dee811deb0e836ad5dc532fb2888729741a10ef98eb40b1161c49c392db62e099ab7f6d95eb15e0e250844559278f05d48e387aefd8124c232cba1ff8aaf1a83d152651fb747bf6808e130b5b2ef21b0de4ca0d66e06419f59b4a83f8094ad2d2a3350b99873c6d7aed76bbbd8428c10441bf1b070a0821991125eee994a744a385cb6160173646282e647f5f6ce713b6731ae000f067a8497752866051bc700058df9c910fbb95eec35290c873b79fc08d47be3217d27b7aeca9f197851d14d0ac35f4df1d1ba2cb0e8459d7f0c68ee6fd19966903d4a16ae3c0d8156fb95a089d0b71572fbb5405a9465e6e298dbb05f00f591ea2eeed434cad09573d189df6a532aff85d9f42ac654531dc661af83031dd17bffb6cd3d1c5af79ccbfd318be20adb9b9968a86c24083367ca6b0294eb6f8d097de353401e08a361a12e56e286ccb56a76c1d26f136d97e398486cfed53ce42edd3bf2b8be810117014b0c61f7a5bed1f7625c28ce982dbef0d8b98dbd91ef5452b1808c3eb6a7ae39203183a4ef1424d2c21089151d093685bfd1332bff02ed653a8d4a65bb944638e43a8d03508c47d0583f2bf1d3c38bbb896f19a0903030f9b0de779c32182f86e37419e148d278a3bafe4fd980c127923397f2edd7951ce3e9cd911ffaf35d038eb2871fb6e2a9946fee4dc4db1659ffadcdef4db0265304ffc78334be5d9c16f89184026142d6cef2c507920f2d014798688d627e918749628616a2850122c63f0780267580e7f880a6145f60317471219cba1daadd8f614a678055fd3d4ecb88e37eee1ce52ec14264bf4b4f9e64a7adf14fd92be919c85cb219f42c6b23f8e5644794e80e7b0f3186f1f42a0c81388d7afa760b70a4b80621e49ee38f8226c89494fd5474b93799053c3c5970ad2ab056d524081ebce887f5ce9f946da1b084ddf7da17603efb0ee7407c12461dad18131837d23f590ff12a2c006ab4c44746851b956c7ec67252d61306d224d6010251eb7968cd8d90c4b1d7dce7af10adeb19638f5d466ecccabc6261b71c97a31d55036c01c6537e4a1056662b05ddb4d0e8b9a73c78a014ae8aa7ad253664fdbf1d2fb66086d9109ae75ff42d2d782be3b3703c6d99fe63120b909f120401a6ba80c1782e2360419b93e550e3cc0e9d2b541605f0dd2cc6d092fe7a7f093e0919269b25b7b40860dd7f432882eb05bc2302727ea2823c1455dd50fb8a350bec8b30edfc5f4632272bf5d070e5972bbf89b835fd0a2769e72778e02929b31ecfd680dbe671c3a502c5c538a19fdc2caf244c5f5e11f6982d84612fed32d20a99208c9d184236dfb34aeb7b0c56d1cf2047ebcb51167bd0f5ddd68968bc37b645322d68f4ccad610a9e7289d8d6f4ef3ec8840a8bace447f7f2b484718c20303d14102ad2b621c77b4f1db4b8503ff9e308f3e2cfa7c90aa5fccab7d5131d78280cf022430dca2a74d71e8f4223e8f01f17a49b05a658b266315389663d31d406676c37858d1b21f6314e8f94e9879053dafd17da070d20330116a21daf8c733cc4b229fa3520f9e99d9b07ac59c96dc5fe46704a437336c6dabe1f4040bda6785eaf935fc88ad300f2053fc89b06c2cb436ced8c7e00256535e422243dc63998acdd34392f037d2ee6a00cb42277a40b605d0b95dc1573289f8e0f26ad2013ad772064856a38139ce068a289b57058df023b0687515f2496286bbcdf8aaec7d174d3c0aec8295cb28dffbbbaff681e0246d542e2a92c026a75de723c0b61782407d0d4b81912c0eac787d8941d858cd12fbd37ef8128278980ca9b71282d0ff42109d95e150bfa1959145beab980b56803f6a276ad578cefdee7686cc9d53b4b507680be13046ed42312a8cf1dbf4a56aab6aebeecf3a2a6c7ffc6120e21b772fde7d8aa0300aadfaee075f9357b908a36804bc1fde7dfa3be0b02bcc8df83e0a197a88b510edc12d9edf06f6ad51d5948146cebdbf0934cb23d5711b85455b7e1246be7b52071f2c338264a82e684856423d91ec8a8f96124187fcb4114863e1f52f86aae077e2a3079309eab74d011681266b0940d5664aa6ef3f22147ed46ea5c9dd580934b6ec7ea0e935a6ef7b7fbfa8585fca47bc2872f99becf0894507592a800499e229cd1acc3a6dd136c92d8b1f351a7f3af6578bae4fafe7f7f2d4ee63bb0fd6dcfce32ac8eee1376f0dc70983fdc6ca84af775b38e46b7416b72c38a8d68896cd0753a55eaf697d9cba3b2a99022205925d80fb6389f339d2bb862362ddbfa42b46b92aa86013d84f481f761b3e365bc784a010fbe5ff8237a485343c6c022aa7c64a12dc1e47a0f399a5356661e8286616ea2e838137ede10691c9916ba8501e32654cfe5b7aa0d80063402858fb3141d994bb9c09f8d4b3c65d81d805521d64817d8847dfc58368d26512f6c31cddfe1781b82147156286128e57166162189b06a5afd01f2d0583798ea6a70813437e4ce9df167955e0451e50c9b230b30aac300e32954a183cf881045fe83a62447573d622ce0e2bd511a429b239a4ecec577fba107565a5845f4479bf50193cf5bd404884d28af9a0cd5f533fc436c89440743a3360003b84b519c22df01841eb434f28f1ec1e499407e16a328769d992cdd3c53feba9e419340023d8f938c3fea19cf27bb40079b00b0f0986f02fc29f93296b480f11aa8166f85ffd9cbcd9060f9725a52aa920be4512f8eb4f69c8dde1b32e86bbc11181242831ab59fb34a0d74f87cecbbcdaf4b5caef5889be90dfdc9acaa543b6bf74d1d852fe7f9cedb043a1428c73480e5314f2bf3eeb50c1ce597905a72d81340fa25f92eaaade5e63ba5f08aa433b2bfeb64cb96216a910aeca7a0e65aeb0d24d5f40fbb1e18431942b89be90207a8cfbf8df66277b5867cb3b2f9f5682002c580b3ad2d87e23f4f5473006dea537ce47e099a6c93ba5aca667ae30ee773472f2e3c35684b9e47457f32a3122effd2bf848bf5b13eb337d80ba154c1653c606c41db6a49f250156d2e8a5f9951434c59ed4e2d52538eece61e0511509542f1198b93acd6297978dca0440ff1838e4819173a128a91e86500a8e036841597b768149e42f99c750709907bb09b11deae7eccaa2ca082c2926c87b3de44ac9a26dbce94b0e52f398b228f0b0cb0029bd3eec30809112e376f4abb47ff14ebeabbafd2cdb67c0354a3041ca22a0c9bbc555ee46bbec1b4d7109c9e19a8bcb4cdf7a5910118035a3188f062fbb4335f21e8565a64655f0ef15c784de6231ff45e0c57f11a7470fae57ea42539194cb1749690e492d43e975a7238d2d5cbacafea271e50617e8e0b1868ec3278595d93e0a5efd22502f33820db4665153cfebcb9201618bb95c7131e6b6300f98cc377e74978d24d1cf0f3b0ce7d7040bdc65a39c84d90a4bac5a6116d4d66b53f5378a16ef20c5388014660e64950e6e4aba43fd32ea476f84f285126c3d8a26d8055678bc8aae3b9c5d135ed7f2a45ccb02c7d552a8fef985db579230a7113325266e3db83b86d03f38f50caa21e5573c37af046b94d001176fc378451c22d8853d73036e2d0a747143dd8f3c57d1955daf38da5c0056b8ccb774aa154d2f546d403f4bafa8bcbe4254b93de239e76380683f70e54f28f3a4235bfd9f448ae970595341af789aed15bf756345f648dfbce6317b30c8996c7e76b317ac0b6d25426f6ed5dab573bd0c6c0abdf8d58ed3c8b810808264d0087833a46b7d5b4b5f1b76a445f7d2d7d2deb6f122f532e2df5fc7ebcc935c298033a16d660e271f3f46a1591386165849e866b290057c061a1fd7d629bb6adfaacc80f7f2e19e5567ef517ea36e39d61a3e0d95582d92afd3c878be421180b1a03844edb892100a26f876fc96464ae32126f59098fe3f9af5d4c0a0a3c3be47b340572755bdb0de949145a1d151aeb630d75f134513164f9a7d8da19bf102a3bfd9c27eea243a3c1cec4abd0aa5b8b5a7c6c66020def89aafdf893536b65f5d3754bb3d6a348b16735d647e8c13d3f739ead6acf16d5636e853cdb757b9ccff580770ccff18f428497d27d10effe3040e4e40c50ba49ac8fc468b9c7bae171a6b1e03002abe301f94285ec0b8382af6153939b08d548c141f993c6920313b26b0ed03affb9ffc9fe3bf46eed056dd94afb15f40a3810b7c2f7da13df2c7cc392e68c2d3dee9ec3d80e01d91051e7b5da520db95b5e03aef41078463dd8100b5308ab980b95789e9acd2faafee6db485aef61c3e9c7b7d18b8e0c37024147aca4f29552a3c57191179ec95d19cdee973d994b8cc3305b89ef3c655db3f5082d6299cd283d074d88821ad7307d7345aa37bb95fa7d003acd9b2c2df5689eb66b8bff2e91cf321910d0892f91fe17cef170369293c331f17e9e11c6a999fa04a2158d0ee608b243294a24291323fcb7a6db4d61c683fbf579c2e75db61470235282d05dfdd92a7500312c62c5590e20ccacb568c57330db1b80f25ca67062bf4eebd0383d7a8baeab20550024bc566f61f8364e0867c0807cc0b3f45b9cc56cb8781860f637e26285fc258e94a801c8945675bb88cceb463c4ee571a9646f0cacc2ade02f56798265525a5fa08640637a8ecbdd33154c812311e0e88fae501c1147d5edf17513204b4267bb76a8517ea15de32b26e0275e9ad14ab9fced5120966c631a7612962d2da42d09f503820a6d7f933da5b28496c097c999cf2c4e182b56652e5fb51b927f422370b2cd2656ec77345e936f28724897d7f027672ba8ce852a3e92b6458d3e5d96a3a308cbe4a381770a0f3270bdfc247bdab4d19239641b6789cf974a43f4bf64dcba248f67e25fa36b3850ca8d1244bd8283a99722cbbaa4b488a97de7cea7b75cf946d7259e8e81ba195668cae584e4df643e62a3151a9ffa7f322d92cd66a426214e0cdf148a37b89ffeab52956d089ec6725ddd6932eb3129ec885a3344c0ff0121ae2ab3aa54b796a7dff551e10cb1d57ba43804d74c412db52f7d6124d372797b854a6908dd12046b79a12414f4bed1aad9611c09e07515349c9f5f5d53a7fb71dfe0738841e72f1b79a32850016f2df3462ca1a80e65d71ac72ceca554b2913807273352748b9904356419299234068ad2f8b55df4e4f9ccb13c0a36a6fb47166757bd0a76d6c616ef802d1d6a58e19e6871fa2894d726ffc37323d968bf0321e73c3f08b1d450c14260950fea701515daeb0d3725f336d80e63abc886e723eb989776a4204e562a31948828916428a5aa344a9ca5bebc6064889c152f25c1033ce4c645ef3d99b0448994a68d539a5b4c5d29947684e1b02b557a6cdb0171d13703ccd4f0bf66455a54ca1ea776a0d0f693098789e820cca7570b8dde09091231bf9e17385541656adad0695597197125ddcf4927063af66a17835639978fe5863846c8f170b0a29a8c43f45b433ff3aba39d496607439f595a2457bc711d655d76edeb58f53dc3fc58813c3d08808a506506abe0d042a74455d76630f8ab6adf067bf36ee8b568264c08c6d400b194c3484083c0cfc847840b5df4b0fcaee671408315bd696a0acb302d50ecb78709569490f2783eb1e549345a5f79a665ac0f608b66fa792bad37b5936cf813134aa27ecea8bac8076acf28a98dc602c476ce40f4055ebf67131c1008e6fb867d35d70bcc8c63cefda53d742aab3b5878af104f8bff6c67615dd26044f706780e6bb9866cfa48cf9c1364933ed0622a42938594e651054a0199b6acd3e3964ef2fc07e2a7b0a1a9dd33a83e3d84463e817e0f5a4535e1374cd963eac3a5c2b3eda88057b8a6c484c3dcb3165fc069703046f8f5c80560e0e2aae75fff75d24606748f280a84fc1e3d3d951c2548f6248cb22353ba6cd69e1efc891812821f4cbf26c5bd94c07b0ab565e8a26aed8f57e40b4bf49ad4b2b4c2cc9666ee565011b733f04f7f4f561f4c3e523955861c47a71681a9ac5fb527d385fb432a99c53991fa9b57b24ba6e1068d5d4a92e20cb116d21e79d03cfd9ea645fc08251eb994f1a65d647748b0c0b7fa13b6ca01611528741702d0134645904cbc81f74db06fe871b5c4b3873d6b510e60af9f5c5e79b3c9d552f202eee5d98b1a71fd39e58d40d48d190307d12e000578f8109e1b5002076744bd003f0cc12e4430e29e71e4d0206a8b3a79e3100f05367d448f026b45358d8452335b0f9e84f816c0a302d2c08282b644ea9846a06b89b8861269c9de56add7cd99ff55e43662a750f830b16008053f4ea3453a574ba16f661d18a2a33542ff150aa4328a92680e680e7a905536380ee8a050dae9f9f26352cb9c80557c9afdff534cbc1933bbb6bf3688f098b91c3152268afdb26a254fa331c29f06f9ae3923070c2b472e04c889cd8348b577615646b9544b82aece47319c1300f41c5c77807ed1104402eb4eec2ad2c6b55bd5c8b5968d57a8ac95086471ec551f216b41c2bf950562167ed3e199db956891130528a5272514360c25ab752d582737780caebcf6d0d0d3036b05921772c3261c83ad20fdccd2515df2fb52ab908a78f473d9ad307c03d67998774e9f756da8c4c3be4777825e4611a41670abe1a80507a908ca36642fca977929dab0ccfa3ebad4e58d62045752a9584d2b7efadd9a9eac533bcff360e929583deebeb89745c7697003ac6f02db76bd995c87f18e27b9a505f918cc3dc80c63328f6aecaef03fc218141e287868f3e2e6b64d15a330cff83a5834ec144a01d07bb8143b3baa772bdc66323e0f1fc2db7dd51690ff7304133d78ef7b7514436560d7e14f462e7143a39af450f6fb3aae1ab6f5d9b15cdc2bd46c4fe1573b47590a9a9f7141589c50b9a83676fb1b3615d211eea9888c8869d6a3f9537876ae0c57deb72b0206ca154808f6c8fb7540e297558f146925e42948b0e06905928baf7ea1faa38793e6a69324872c172b14bc7698746eb196ed354e6fe2d8fae6763f6888e6e360a062a95b7e5bd7c2f45a2b91220301c14b6862035e93392ca1a4961c7edf0ad2c329ece25d40efddd77a54bcd28fe4592676080b22050265d046e602e5979404d9a7667a1540b0293358d58e72e3a5b3c859f1f46f16904286abc54b91d0077ffe17e99b8b68ad0b91621933a91d9cbaa67996d83578ca3909d6eff90f86a98a4d8c235cbbaaa03390b6b1e2158028c1774ac2b48668da2d73c8e4df1d3ce31b537602806090a38be2fa20e62853ab73b47720433230243c943802025b62829857e523eda3f4ab550dd5ef522facd70a784faf693c51abc4dfbb05887593fa2f37711919110d2e9d54d80cc1f04abf77c788e145b20d361f6c7f3fc8ed92adf726c8051533680cafc7ce13917b034b775fe4a7ef8564543e44e2923cd5a3ac212e003f5bc57b56904b7e248ea3f9a01c70d84cd7fc28f5ec9f9818e9a3cc0bbdf621a24e0812c706dd5b4aa25de91929f94ebc1c4d1a04a9b49a4fbcdde1b7a21281e951bdf3c7744b0180255ceb2efd1ec34af6ca9c3dead4569fa58ad06e4d9a6f1a2a348fb332c18cae3c45df170f805f68e981317fc3e1ee52cf4fa150bea17e9ef15d95e8e3c69cf5c069d38b0e0dfdabad7a897d3d6e20b7553abef72039bd0a38fa30bf003248f012643cc36805d84f00b83d8967adc28ee04695a811c7d223057ee7756acb9ab597e518e099cbdb5f28656334036ea79485311293bd013efe2c17951b2ada4007a8c81d94cdd7df5c0e5570b7a5a6a1b18856f9dfb94e97411fb609f1f4c1264ab85a4180af3d9d48366c8282142f2ca16f1f88f615a89d98be40ea9ec4a1b86ce86b1221fadb20d55299fa534013595e8350b48d41816012b51339699d728511f88cd12814680a9bf4e825af34f9c3e48a0f7893c5f933e840cb69a329e9d7174f8711d4d42dd905b1688368661cdc7d937d715f60b659872786913fe5def0d7f7577702e6c35caac8227bea70efa1b940a5be5504504387aa3afd304b65b6a81e6a3b08784a56ea2aabb529bb108482f4c8a6708de903f1361c65df4b17b711d8cc2bc3d73f9f77861b03ddfc4c86c0a03fef65ccb214be7f63f4ed34b76b19ff735c51e85e9940e5bc8727997dcce70326522182547bd7992547bdcbcf4460b1f64951c9b1597d5823c7ba377026367b3be69d9313fcbaeca5c2c8fa6c903809ca62d49c9edc6a81d1cf2afa95e4312ae90bbb00637a17161d12a0d0a06ffaeb1c6fd8a816438901105403f0b8d780cd060d7e2382a8145858134adeaed83e8469fc396b5ae1b9feb43ad6139fe41f40107e57d4c6f50b0791c5428a4d00e084e279f067d14d90eaa20ff2926fc0a8f3a2274dc538da51b391c437dd9352a5b40535224903d0fa54e7e8e087bb7780da1986962c79b4bd4a8eb959c5546ae540e8f8aa45424d089888b473e1cd17c7b9c208c5d44f31f5716176f83c9083598e2da3ba0a711b07dbafc14a5265dbe1a08fda0d82710a06033f78bef2f5d9fa168bd906085ba67d5be4ef6a24a7fe6b6934d7b7d4e222869b9a811720078eea98608fd1e6c3e17a96ef0126ecb777c5cbaed4cc24ded9df411feeac49cb76c5f171546cb2f73ded21405c4fa889243db7e9cd243b144381c86d09ce36b8f7f74971757f89d47d7fb3b6e0007b726015ffeb7ea9ac2b5fc77bcfb37a314d4c4707723594a68a1e5800ee0d438fa68554d24656d20642b5b2abf7349f76e116303a15d58b227972568fbc4102dc4057bdbdd3a7d6da706035a369525e7aa606317782baaf23b2b8f70ae524c78b9bab14a676ff152672ba2843c2d392496076b2de9caf3c69c9502f2261fb66493907a61604bc221a8959cac30b9327910382b6b3e42fc5d1120329d7e06578c2e3ad51b3607e7cc708e3a62b63a30cf94a18eaf9a7186a14b88bd25a118a1d5bc0977a3237a24ff2f29164db9e68c8320a6d94f11532fbab86e9495576a9deb164a6360ac6f1cb7a6e00bbe72779a26dcaf054578cdd0e8d3e3bdd6b9980e76c25522fdbeb1c8f01d28230c943d833928b072b5a14201550f4a8228bfe158e32616c25ddb8753eec876fe8bea58dad6ad61088bc8eac534a6d8c1fea1c8fc4480a5d1501b212b71107cbaeb47e6279369cb0e26184aba6ef399cda65618c1cc94072a6b5234eb1304e7078e02ee04ff5fb6c6f5906f6b939353d1272a9600d4b1c106eac41accd8b239a50e8ea826bc0ccd8cea6c7650604003352b614453ed4fb8cc5613a5395448fbb0533aca30110f3c3157b1918c842d4dd01335d46d6608acf77215d18d3df2e0b4186cc85601001686d718bc9080decc3b472c5a7020fce7d9c4e8844e1953a29bbb32ff65c2b89fd98721026464c0c1f10733a1840dda4f5a980f993cbb565e8040656c8bad76194116417ea3b047854550c1ef9c3b695113408bda79e7ff876bcb8c97bb1f2cd4f5a61862b5a67eaa1b2c59abd66a7ae8a716b1701f420c0090e0cecaa6e68b6242ca3f687ab0a91afd66413210da70dbf55d480547680b435e1a56aa8c042f4b82b0b00180cb7ad89a05130c24ffba3abde7851a453b992f8c09e3d39bc8fa2a519caa37bb3d6285b05434a9cc3e28b453e43b47a75860ac0918fbdd1950f23f0da221b1824163c21946264e5b45cda81030058c756b55354eedcd2fa53a46bc3c093bedaafd8672086c23cdcb9a60c4660b6e5c009753ab50d06e6aa1c1eda7bbf2dd548479a1258cdddebe01967f853dba6c7d8a53cec898f296c4fbb0d8637fa0bf094b67f3fc973cea53bcd27000d928481dc39230309d5b73b965175e316a8c9e0b3c04ac31e56f9c597c581f8adaa91c8d8a7966acb02c566a6350c23f8a10ceb8c64fbe5fbf850ad0e0399d865400697a9d8890e3a3db8202900672d218eb92baff9638273dc6b04f62edb60e29e5ce16c118c5865edfdaa802a2386be3a9e18de19a4dcccb74085a12b533d7cb390384881d2b29ad749c0f9a17691b0d51fca61de2c611a140bb2d51bdd225d8f8fa9942c3e2a3ea07ea4a77f2545f80ca24e50ccdbc965f3e6ebfaed95c3d288992879e18156e03676e6c984a69680dcaa1c2367ae403a89ea1aefc123a49cc8297b8aab4712dbabb38452b7c3b26f1dd9686e6ba6750ef3a4d0ff794a39af30965524f72980fe601b9fe7e31b7416e5e5e0c2828343c56ad260dbf8ca11e04e1f0e9108640afb9f2a682b6b89a580761e0a248af147047e92047e1772cb6385185ca192363fe911952bca70cf89832e7d2e309b9b11e05448f8f30da46e3214e11ec81557347e1b9ad4039fcf8bdc35e6f5d809e43fb57ee5e5486cb3329f266f6ac3b4e2d32a474bc7110a2788c03ad1a331470a37e35f4f4a1261e7c4971509e4abef0f634a45dee99f616c0bc640f1506f22852a3dc0aca94611406795c4aa109e27d5e62210de3bda1b9c15ffdd798ab698139fe7bbd4225d5c88fcfe4b615ecefe20f0b62cf8acc59ceecc0e8649b62c3e2d9738b07c614c6a6552659ab0885e76dadf6e82fa833515114908ea846551162f3717b81b186036f0ee8992d4dd6aa5d25bea555bc77a1609815a6f8e7dfd50536ef9b944d2827fb3d4909e2115a29e17dd2ecc143d537dfc9ea1acda2a6959b94e632465d7c713542f8a813614ee140363f84d57b0992749b969290ac83b7aef08b79a63374613099db8f4ab65ead4dbee3266ba4bafb11bbf104b780bb541a7f8471034ee8d113b060244f8e75e3953dc7c663df6bbdfe6566e90084646455b6d844eb124953093faebcdf457d071b342b170f8bc9f5b1d8c98fe146b367f8a48dbeefadfc5ef2d27b0572f96e34f51b0042da7f8fa4e79eb3eb3590831e73f37e3e7ccf2ebb1748dccf2b163b6c4e8fee7028c2d0d261c2e81589f755c7fbd8857b1f8300f6e2516aef8408f4a11c06d1ddb762effd76b6978f95afc6fcfe0241ec7cd1b389517afffb3d45fcbe09d4d8c3c1f723ef45c3be2768bd582858903bb00a45d17fa928a487f0268e8f2cfb6a7ae7a036d111f4bae8864e44e412cd21f82ae5db004ec46c950034a3249d3a06d9c40a0caded8f61964980c0c85aa70e836c624586d6fbe398652740d064b5047ac9983679867fa6e779c88fd6bf05191219da457a6464ad53c3209b582143ebfd31cc3209101959dba9619049acc0d05a7f3c669904088cac77ea18642756d06895647a0080f6780680b8f524038fee2510f428187219f07d33844e745f1a96fb8dc3677bb38161b29407150351a15f258335f1208867e6017d9491e3f8b9301e3cdcb08e48d1023a6b9b1d2f60e4c629ff78cd7628440084cc4321df4fd8f18c16f6689ced975be442082d54fe341841cd585475806564ce2dbf8591fb1752e22d1a8aebfd59365136d614e842cb8ff701f9b9019bf669f560b5509d301c6d6a64886718f2dadf050d5411fa5efd440e83bad9523df30a972c9c21cf5be22b00bf5bcec7cf1dbd4fe70ee3164d0c79de4379279ac89122c49da071284f2699ffdb77dc19a63eff4d988c3b0105e7433befaf72144f885754738c5fb5cd3f7975fd79b2a0d4c47dca4b064ad7cf712f3be44148f18877acc5ab32a8a0c5058cf126141707f470e7a7b179bb78a37d9dbd1e1e7acaf396ec3777423de551d381b05923adc4a81ddfbf9dbe319567dd7cd07ba511210d84609e9d27cb7b6a538128b18e24bfc6b484c074f1a302dcc1f23ed84a59f7fa1d20bd1e7505d172f9a65deff22e55558886b8006f149e53413acb061e2084a1933e0fbace9fd4f2a8dd91f10a46f44bd05a68607f8ddc2cefa9c2191c86e808876a40f58c9586a4adb6599ebdff416ff4fa54888bf7c1d845917e9e5cc3ff1c3fc4d7de9ec5397d8a16905ca3fbd98a0f76796c37b2ce1533c6c197375494356f0831a3fa1dd04f73f18f0b0a4ed00c7ad05cac4f9765ee302f605d841dcc5d570746ae2d8f58c0951c84014a1ce67df02f9f26f115389d77bc63fa6a4f2da1dabf94c38b22a665c35eefac98f7fdef7eb76e524d52c197d9d5ceb4cdd8658fe15a31cf92e08edfd72c64beef567327971a14b2fed7e28277c8a751cceb717fb32646904ad74ba37b2c563fe5279ad1fea5e9cad40ca302d8298a71b1733a68fe3ea2e6e69931d8bf5aa862ded2575bc6f83386f0a3ddd0d3f97a14f33e505f7c3a69b03951c2ed99763ce89380b0b69eea877fa19817942f66679ed555cc331a7c602a5a360bc4c615f39e0d1339963c767c7b2b0a59a87299e03d5e22496d20bf6b1ad75d4545e259d1005885c9e0a577dc65defedde4bae64394e80edab4bc6c33a9fdd57f6aebb2b52e8189e8511570a85ab2a836bb2daaf759a65b8bc7b149dc4c5df30e8ae6d68bd05528929b78e80b91bd8153b37100e25691288ca231cfc7f3baa81eea68cd0dcb2daee3ab59c74aacadca5c18d07951b26cee592fc6eb164a06d4bdc91dcdec705b4e2501ce7f501490574a9bddd40419567606cd966a768556b27355f7074c35184ca477684cfda3152f311d48ff7b1c09e6bb5fc96af6c5e93345fb28faf92c0a1e80645b09c507161a8267d606985f5f679d05e7a10f301368233f3dbf78cf428392c1022bb8816547be27f91cdb3fff42c9449531b7302da7d9afee22bbfe21f5b5d26881fe0de7a93de5fbd139ae556d003d4adead5320c4f62dabee9c6c84ca47828b189820eb8982546fbdfc3158dca81110a87b9a1e54ab3e1790d27b2d609a2e563632054ee54ef4f74f8ff2210832a7813688576e11f564d5c9b8fcb0c4d52f4a01b457ee03b78789091312f792467bcf0109cf2143cbbdeb5bbbc3e3c878036d078db3d338fb955333d49d6ac94e0bffada4f6d077de1e65f51c3a7642ad095385445a7dc2fc1a598e6cf22892be17add76410bba34019f02fbb7a333703b181e248b72fc2bee20aa3f5273062462214629e14a03d60adc73c918f2c19940a3d944242e5c4669c3f001776ecec726b462a7352fd2e66c93e8e871f824d8ffcb47ded67e44b6c50d8764a28381664c7fe1cad9c5695b5df951b342704132cd7f02a86c67295dac704c0064c42240d3da9da50f9f78a0673716b1173a798107aff1929475a65f7496cedb7d50f13fca1e5f8f25da4cbe50ec23bf6fcf899f1c765dc6bbe77c7309c1f198a42c3ba715781835db911ca8ca618b6c866f91bcedde59d218efc8c1c0b97149f6254067563c20c1dc56dee47c553e293004b154f6415e70a2b17a9bea10515e1d25ddbde9aee00ef19188e37d34940f2dd33c719b0ad7c38c3bc3f789856083bd70d42deea475805d52df1782e42691b224296646be968ca690f0542bf8a409b72412b818a3ee9514dd3bfc3ba7cce6c4b4348114d59df5dc534f77a389e29a076204260cf518a4c56a2741b192ea366868d45c5f9b206a0c789318f420ca6593cf2cc6d54b6919c2969c90c92509bb6c16fc2b9b6fa51a2fa9ecdfcbe1b2454963a840166890878dd839a9b98ee1897413fb916024e9048e524c2edf17e7cf2a6a6d145a9ba3c56f76156a9e3b9ea0441f69e40bcb27aa93691438c5eb4b666047e353ec87603c2f64088f54ac349abd382fadc467bb10a295841e4bfe9ef11d01205ca2c3c046582a75d3c64ca868a2e9ceae5dc14b4569df2cc1304b73ef554c00a4e9ceeeb9faf2aea3195fbea179c26ed6202ec655c5c0c96e280a2e56445172c8d92441928d8f8dfb379843e4970edc17abb03360392de7660931ff61907f19699219e6fdd86d21a306f1bebfa858ab5aeae1ad241f3499c0cd366ae7ca2b5c773ffca0cbf182a87d516d4fe22e51ff813657cfeff2010ed4f40a4891d25e02a76c38c8038b32060e32c69b4e13572e631867e5872b2ce60d7f64074eacf4d51e076e3640e721b8633dde19a4dc4090e13fd056ee97117db67b4fc3beacacb5b986feb520c5e2513f4ad80063ef87c7c739eb56bc7a9b49eda50213fe532b77f83a8388f30c25576e8dad744b347da82fc2d504732d233268448f4ea0d99dd351ae56c9e66b59c37c9ea6eaf860a20d05f4ea4c7e7e867721006f550a02f7d16831b5914663c1770d3a2a155e448b30cbbcee7b04b04f35d63b0dccac87c7125736fde87e497657ea5849575c227e08d51ea015be533332c2081cea25c069165020451147e81c65bc4d5e3b35450fa01001d48d934e380e7daa661c37cb987ececcd4d660c867407677e97488497e7480f2511cf39ffd1299c9584532dc49f143279c64b31717b5f6ed419592871ae5aa7ee107b9c0f1b500ee2d9fb1e99eb65b49e073ca40bae222787f58cf971d45d4eeff4d63343151d38c7bccc2540983c4574f78891f186a9fef5a3a04429c4038ce7a09c97ae2ca3d274cb3c8a0080cff7f71ecda8a827b84662f97f100395ba7d228b5a342df390fd9cce646f869b868a0e8f7210873a39801524a73ce6405bc5258c9eb09bdac352424b52330722b1a5a415a6464b1bb17e014a7fb0d54060e7cc89510ed50533b515562af1900bdd56e6937358861e5a7c6384162f05bed75e2d49814894500f807c098421154b102a29737bd9536f09a68de6c3d428844c9496cb1cefd1188e6d5653368bdcbc4caaf83e474f95ae2cd056d27b37f1c406d56c5ee1bb9bf3743718d6809867bb8dbd61ca65d31b2238383a5f3a1ffb3b373b9ff4ae3ebe6110ce55f0490a6b191fc6937d688010f47aa2d1477e4a64bc7ce5ba4d6cbc01f151f65391ff1f3c37c63f85b5a3a82b86daaffe4ee9c0d58303ef0513c93ac2d50324c1db1affedd15a7e89e72d1ae9314084083d8870be2e4fcb13419e5da7db4109e70f22f23164ffeb05061c22875173d663d5c3973c7184ed9c85819d6eaa3c81446ff77e0d303934914cd5f6768aee911584217ab0f9e17c2fc910469f11bbddf738f2906f78ea78f4ea0b428b53d980a08efaa80cf445ffcfbfd626263896084f74c0563df20679ae596b665ba2bf68414a9b382f8abc07e656a2a5505b2155cb94c8fb50814bc19548e1575c6e9c3684f9cbe7582e94eb58c0c4aeb7b74e26dd2578c833e6120577706ea13799e4304979b7a112f70d5a3d194afcb80ad88653783d58cd489b3b2eb42935d28e54ce76e3af4cc58e0406729681a0faeaca012f3e9b8c18d6cf59e1e13591ddcf2ff9f97025d0c0cd3e5380f7c32ae8ce5b8692e0bf5861fde4a40b30c3ec8a682edc9bde4fdcdb842395d0a7769b048da1f680cedfd0809e615215bb89caeebd781590b3ba44adf0db2ed09c7f3dc4df67f937bb571867258309f01542f23c637543e819a05c13ce029d81302b587e38cf1a87d010f9e219a97fa1658fc23662be7eea54bdc3d28d7faf22d8c37844f9e7be8a4877f0ec11694abb83397f549579dc5ef6d4667174597047040cee72ca784960c18590f57855bda325afff2c73b43b8a13c16a950f60b7afd75e515e853af0d758c1226077f39554f3338c37b4a37f40bbcca1946400d2ec3fc181dc8cdce1ddbe725c1f9e9f04369fba69efd5b0c43471900287aba283a0d3373a104deea273ce79cb92e3df987f752f91c773de8f20839bdd31d1d7de41bbcc5697715b7708d06a0ea1a16ee14786e83b1f81aed3bcf883d5156a288480e1e5b84ec5fc8b446b823a7dd822cc3a3c7af137ce84ce565f8c020e9f950965af119ce304e07adef4e63e2d1c133d2cb0510a4dde3df2804b9645a2672a1f61b763bf74b8ffa581272674d255e0c673b3ffce940020ae2d14d11871c06fa2ed199744591ef8033fc4f7f2705ea7f1bd2cdd34fbfb6037317db74323f365ff1d43b81218784b1b3cc551dc7a8e6c2585df13344a603c4444d4dc46b5871cd47d93afdf3f39e41a168504104ae0371df8aef6d042027f40f7a1ad36dc3b180c196f7bd08238a68f3646803124a832079b4559b8603044ccdb639ff2e4e715682f435486b19b4358af3015cae379b530ea714e40cebe966fb1e450603ccc6b6f44836fb81db3516396a3002b73236e38cd843792b1c4bb65aeae8d8d5f05103400485254997e0be9871672617a33c10c19f2e3d2303c4e53c5a684e40b4f27b735259ea6e210285a447700f62f06d8d307f72ee03b387b028598e70b9df2cf2a568a006460e8f23b166c4c64d2bb5da71f96f35c3c7e1ef88173ac81e33a7316b733ab9b7a4f5a68cadde74fdaf8a8ff90f58b81af2586c36df91e82211a807aef1f78d4e8c2d2e252dff129cb743dc2657c0fccb4b4dd7d025fc6bf9b485504387841d0b1ee2e5a1d5a13f8eef6ddebca88bfd969561a913b61853e1be028ace6ae687c31d647fcb97f7b2e663617251174d817e2117e4cdbed66ab8a104513264fa8a327ffd253d6adde0d9c323256f52a9b05fe6c53945c9d2b3b7d53a40f75fe2cfa4c0dad66f6f520158630f61155bef42d81af5f83fa49c572616134f573f5faa741635a8600fe095086663ba96b1d02355ac595d0cace55b8fc6eb9b73bec202cfbc81eed298ff8b928ebe7769da7387f39ce26b6d336c744b16e3d60be0d772c4cac4f6c4865d6835d403cb718b604df00ad2dded8b0cc199d7cf0f50f42ca1a221da4a715755e9c56ba9d62141f6dadb5b218b558880fcafb2a4198ea9bd2258f26d60b5c117728ed07fc889106653edaa9c5b3263dda8bf4aca99f9f3a228eba064c4dbf166a53b4e02189017285f347968ae46a4a55c6427edcaeba4542f7a367f932960f1b54132b4d8156e917b58f296e91580a5bd3c4ba8b9518ff083b45cee14f50406cf969b0cb9f015b9ec8fd5aa85253c1848443ee45694212f20a785efd0ccf8358342fe545f1ed6d39f76003c9967eb63f5eb003e0b762b6025be87f3a0f8ea42ea1b942a3339cc1cbe3de4bfce11579935c7485992abcd4c0225b449c9f35f4a1b5eac735456c417cd6e629f42f9c9a469808eabfd204fbbd6aea65918f610bafbdc296b7de1a9f16c08a14d431419a37c4f5120110ff6ca4bedf73090537510c2b8cb837864693fd9edbebbb5afceb227784ebec2d8f2d892a4dd6194980676e6e7b845c2dbe1f0c1319b0f46cca2a887cfa5004fc8a4115888df6a2e8505b2fed495e53d265f42b041945e0c44f2ba5b6b1ea693e1d93672f681ebff61eef2225bdaf983f49179a558ae6c1a474bd84d27c363e25ea4fdaa64256932ea33190b6265a38a46a2ba6991f99508c11bb568e4c6878de10482213a6d20f18763088a98189270d07d1d6ab279b6acf9e1ba444b59447991e259d31de65afddc8c543b5f09d5233c62a5048d95b21acecb3a28241954427495482a0eba08dc9dc65663b5530aeb920f78a9fd9890b0c02d6e8f0eda9a05b75b12eefedc963ce5091c28be783cd8e42364881fb8f35bb5f191bca232d02654a7d698610eb66b6679017d7698630a4e78a685b00bb7080ef68fcfb62232980b29886a44d57f3076b3534e45e3c265ad8ab143e985e9abd91045e2c8dfde25cd817936c53771fc7f983a17c67947f594760d38450867339980c0ec8277ed5218d3ba32b0170ee5900cf5e238a09088482c0e7a4c2fe8fc5d2904e086792cf785e44a6ceaaf1d146efe925123b44bd143da543c5f64351c4f7373ce36c61caf4fa14d59c9bb69efe04431d47dbfae6f34255bde24fe88076f1821bf7c7eb13e6bc3c90afccf5c1dbd2437eae4ef7d32b58cebb4ff77b17d36ba6634adb6b02660ab22d035f3a57206ee66eedef3d4ac341a0a921a27c38d091feb948a5b35cff18ec15561587c129ecfe39a0dd18f22376d2c5ffcca46a32024ad6d3ddd2bf4f61b018e026abab3709eadc295ec1d398ccf2061bb659479f0d301ee2e17c4318d14574b7969bf54a51bbe287d97fd24596edf23ef6459f8e442c18ae07c50a56e6baaad191a539c440b403f8432261d3d3ec05f3f0bbf6f3f85f2d646f9dc37dc8a6a7c9faa787ba5a8b6d15da2ce016010af62a6e3b7005c26c86235572aa22c41fee10e925da32554f624da5a4c4f17d827aa7b29c9a583eff6da77ccdd7f41b97f46d1e13bcae4680916d7cd3b74cec25bfe3ff6d18e33476edbb9b1107a93f165224a249ae1654f668dae1d5eaca922c6c01e440bdec1f9efeb0510ac120d3b87c0537afe0ac64803a013abca7e7ed4783e0ce94338199d7103d705a94d70dce6f138fc548a3b20e4137d8bc6b2a93913668ba4f8c5fdc7b13fd56586a06417eb932ca760dc6ec6f90a566efe26658be6054cc83807c57b974e8c73905eb9ea8d0564de6cc54e8ff385b4e164bba513ee2f7969ad4c16b41e3bb71e62a02ce732057e38097ffe2b3c5a1a5e65a7eb30b65fc17240dbf3eba5628d916eb4bda2e67de56e39506738b00b19b4230feed1da75950f370dc616eb9626e11690b1c962dd2324ca18b05815bd7e0f0db67d3fcd9bb04c1eb66aaecf5c0ba656e251021a97129134797230a94e0828b49d6555b0c1070d2b9f9af65f5d9d4040d49b3727a5df078f83fb837eba6a860454dd15af8053ece9d86fa132b31bd4333b8797af5095c722162b7e50c3893e706603ce2508a109ba6e8cc10563f09c2119971f09a9866b72364ee1a804b07722eb9a240446eb3ff637e4717e3ab42cab5b413eca4498f010878af082db0d5e80bd024ad27777e560823e7b6fbf028fb80bf6248885a3e188309c4153ee328ef8ff1f0a55303afe505ecc5ee10dab338d99d306430842941bf1fb06a1baf3ef98fd524e183909e1240f6768da60c888e9f597b859f6e1ddf387c37f14ae5b76d246e822761c12b7654cf5eb757ec8fa585e19b13a1feb10589666bda4f249b5bb8ee0856157f90c127db8255690c1851f51f815df39b7a26220c2411d8783e92c99e1e76f98c087b7559eebaa5885eae80799f581bc189a36f8287b04c49959b9e13c165be2163c0659401d0be24e03fd612b5d3d463791f1081a14eff24fa579df1d5f0f00f63d67d8ccd9d5ee3662f888703b9d5d1712df60b386624ec62b3d8abef855dd4f0e90fcbc9ce32eeff6fe13c410fd8d9851fdea21138bb50063332c2ce2efcf0168dc0d985329891117676e167de6129e67f4444ecd2e27942bf15bbf48d7758caf41d1125bbb47a26696fc22e3de33d2c45f78d881cf6252de907c3fbd01670f479996ce2d379ae4897fe5b2a4a31255ddf65610e842d20f5ff60ae0cfef332a0f87fcb03c56f591434678c49c28b4a4f886e072e18d0de896b7e8917038c4ae8b4a4b551c0fca922f0b55d913b87956fbf5e15cdd7e890f5e861cdaa0a1d019fa0906abb34e3aa42dc9e223a40819b0ee2764705222174ea42091614fe146e5dc7b38f8bd57d3431db6c40446f0611fc1efa4eb947f60c639d7009e1553c5be29e8f635e19c0257b3328b4c73d4da30c6686abd28437fb52e58a250533188b7c01e54cd76838c99e1b4a84f9ec03a88f63e061c66ba585ce41274c126708f25c548552a48f9060163e80e5fbd16efe91a180b50fe40e59f12e9e53ba67e927c07efd8f66b63e12a23a314fbe81973d5d6622d0db0fa569ae4bc090538fdd44d3dbacc268969e929e3979f1b6a68cd1001097c18b2e9a7f230d50cdb9c15d2681ab086ec48cebe47540a7f524e9e52da8825ce591d01a71e52787841a4fce7869e6f9b5432370e10d2f8de39bbc8b7582ea325a8416269dbd0039b974542d7b8b0a073825355a68474574421ea8f0903f541fca49368eb28f8ea80119d82436cb7c1dd668c7eb45024a0192ce27ba34d0a2a4d19d97ee261f239e62bdb83b4ec45f6d841950e86a1bb8a814a0ee470ac37b97052f1812974a3dff1bac9b96677d89e47ebf98b4c74f0b3b92dc3d005f6255799b5c07c976609288641bf46d32e4e5b5410d13da6957a2b94bb169d91871e49b6d38342f49ff4a26ace00f7deaa50c280bd3446b5872ae6ec692114e1f83241c6e579588be08e9e8b468e8ce4e07409a0d3db6eaaebde925acf5873dc9c6465bd51a13545d7c19cb661bab788ae106fa8cc8e7438f65653b5cdd2d5923530c371336d68b9225709d6a0b838c16b3bc1751f5b7df5d4d4cb720242f7f76794033afc696a3ab4c6c1d24994b371f24607a2fb588c73df475ba8ccf5da35f42b38060a58aa015c02c1c60f6046c20721679d100c4d3f96929b694230600dc6813de669991ed5575a1164c71bc447715143d705c72ab8bcaae611da8f38f420495b1746dade0ac582d2f5f81a0012eb26fc7cb9ffe4b9ab16bac052a6c4b3fbb2e5284a4d01d91b19fd8948f90eb2d767e1746e5a29ab839e67c1b51d7ef896877cc8dca9f64e6e42bf84494834f2c7f2d210a5f10776f9d20f984696cb86dbc1888b7fbe09880973875859b167b1a15d0e5e70178c14780fcc92a4d6941c638ff464f2ceaffca13f4f7bfb8c2a5e7b702753f54aca8266d02d40584ff045d2062195231000cfa2aea500eff23d7c3e3622b1cb7260274927390ce898d1886efcd0429a001186ec7bed0de0a4022cb7c70ab5bf390ce7b6bcd7c6c0c60ae752ed6bf1373aa402e09e307d456c45d07dda12932831ce159fb592c9ec5f05385242f12877f95bd1fd718128c1f554ec22e31fc5719f9b0f3c49721cb905c62e04228b261e827c6d30b580e7c8107f793f8613b17a8902a88e82df93b09b6cb701d2149be4170f4b02d7e5c2d92bc77dbd435a24b84c00b6078f60fb1ac243f640da5cb5921968c1c49faad86f7911311d2cb050a6ee269a17147ac18e89f642b48e02355bf47b13d35c8df8dc1e14d21a242f3531a5969cb13a9080c9c14d3d0b088b6c1677f5dd202ccf502fa54ea7a59209c5151074d55b3849c9c7414de8a78004526e6f9a6228a26b63c00b91d279ae1f13c263ca17629be2992b8a2693b9b26b13cd433a136a05565235bdaf15eff2490d01c9eaf776246b8be916858b29b6cd964efbda59452caa707b90772074440b27d8b8a54aeb3dc1e74f7b6c587ec8280ce942a2959e1e35449413931df7dc07ca852253e50243e7c745ec3e64d96c6b16402ed7ba9b035435d670e4189360e8ba003116c9c3125b20103a05b22d0a9f069fa721beff21bdf922963726cdcd0d961fd4c0683e1f2d2e2e285bf604c182c2e7f41d3f27226c7c60d9d1dd6ce6c7b1e8656dbb05dc8ea4edafb5966a9b4f73396dfd064f901b8cb0bc05bfe067ff900b88bb7c169fe71f0d913c0659e6e87315faed60d5f12b1e14b1f007ce9842c26e56487b7b81f0b64838252666656aa131306658a18550a45dc397131637c0d0f7b9727a1e7f59757d1f37acb97f4bceee261f4e58ef4bce68e1e7e779e22eaf02d048a5ef99ea64a565258fe5f25b64dd35c39f7c9c9c9a9655f7accb35676389aa1942c94dbdd807028e28e27859886fd0c97fd0d8ec7bc0cefe113e032dff9ccdf1fdc87f7e1deabe8b0830e2fcabbc310ab33e366099bcba865f432ca469f9151aa2785d5f1b0438ab8136a41b6b8cb4b8b8b978be5033a4ff7d5eade177127b5aff0fe44079897e94ab2b84cd4716971e1a1ecf57688b53ca2b5b9a069216259ac133e30eb32a2bdcdccc8c09831351d4cefb93198113923eac0ea8c587335e7254f597bc20ccc2c9d1077629bc52c6d59b03c0f77f919bce565f097dfe12e5e87d3c43c0effefe1337fb95a5ffa944ed8c870d8dcc8feb5bd7fed7b62d6bcd8c0dcd0bc78cbcbc5c5f2a21ad9d3c8647f55e8a706d5201824bdda2b2a3064b4f7a91833dafb121d98753782a16f7a78205ce665d0fc75175ffacbc3f0967fe12e9d1fe07d9074d773027c4ae039709c6d0903bc021c88af3908f87afba90af80a43ac405506adb6d4fa1bee7a1bfefa1c209ee6ac3890df6e8cf56eabdde0c20e84f1a2bc2b2529c8dec6677fe3ffd7631ec7655e86cf7ce934dfb98b7fe12f0f7a0bcb61cc978be5add2d57add94aed6eb4b1b4f0f91175ffa38013362f442df883a2f6698bc17e24ede2f441d1c1a1af6db653f8386c77c0d57ebe56abd70c49dbc7374255d3c47d479f11c1107de2c9e03d3a299717dde5d17714776cf5bf211dce633ef3558ae04293e423837f21ca42c916273233772a3afcb1177f2663163c4d81af6355cf6327cf62cff9fe131307f7de63b18fef235def2a0bbbc8db3b8f972b54a57ebe56abd6c6abeb4c1f8b287c805e2071f09e02186b89377598b422565fc86a803e337441c78cf7868c3fc1f1ddc7378dbb783e7571633b455de9581f9d2c673802f7df8b2872f816eccba01be44c09737c49dbc67ccb216051b30ffc3839bffb383cbbcf3bcd77830bde73563bacde7c65229c791a050a18e11a31ceeef1f6684be589f3d2c88bed8908484848484a4c4099b0e5fd66eccbacb0b119f1dd97e7d1d52796cb68a43ac3dde7fb04f2287684468e3f53e7c281a02a6437c003da279ea620719449d17b3acdddce4f8a9218358830ce28ebb63788c92b5f334bb3b9741dcb9cef210070e1d1af6d7655fe3b3b7f17f96c7fc8d9bdfb9cce3f8ccbf709a2fddc583cee2302f57ab74b55e2e2f9a06ae96493b5f26cd579f69b4ad67822565755426eadc19f40c65ccc372f4c5d2b867849779449f08be9e6f05df8d26233d22d223223d22d223223da213cd9744ca97163a9b79fd4c26ea78f7763ec30eede2513c96c3ebe031bf02e32f2f9716174beb24163b575452ca5a39c49ed65bc49dd77e1336458dbe586f296b658de2505a6de9febf36696b3caf3c3cb9a373cf5f441dcf6411772ecb0eef2ce20a57d670db3a0f7147b64b1b1472f8d98d59e7219ee70dedbda541e7eb81c3fbd1c15f3a98e5101bb35e83a80333cbda11c8eab412002f2e3d5a4e7a982f57ab6499ac7aa852253d50243d7acc4a9ebf72789af33ddda4adb99d9726b6276ba73349f3abe20808daca5a59a3c208e9de7b71e7dda16d6f2ca78a9f3d3fec39d75eaf767354a89170760b2145a181377ba7f7dd982d1101e71e21bf79654fbb1ac216f7c044abb5b6e8de2cee3ab2830277388cefadc3dd5b87bbb77beb70f706d63a1cce18df4c45adb5d65a6bbe5ee7e3e393da9f91157c2efd529becb2aaf3f121ad36b55e878590a2d0340e8a1b74715dad66229bd62a6d8a03abc8e090ceb81302873a2170a81302873a217068db6bea1b38d43d0ae37b45b213027b88d0096dab87ba9e90a2644bd60f903472638c31beb7c3175f5acd7cb1fdecbdedac763e2a11a108adafb36ddaf5e99ec0dd8d6a417a379f9bcfcde7e673f3b9f974e677543272fb3aff7c7cc05bbe79538f8767c16be399acb62aa776d869fc25fb7bf2bb9df7811abf6987248d9fdc61a8c5d20e458d5fdc7a87a3c61fee90d4f8499be6e007f7e77519df1dae74b962b14ad824e98bf54a5a17d6aba84940e2ed1d6b93c2ed99640da93f5b536eeab04d3dc49df879b6dd15252a08410291aabd3877de0792422d9646d274224195a4542b1356f982b9ae15dd6a2f57ab6499f8bb6ecf2d0f15ad54a91214c99b2d2b74bb3d242713699e94b5a73b1a4ba23e4161d51e4fe8487b282926d5cd9e1495d536ad80c4b85db4415c516a8338fa62bd74058853edd44a6a531cc579916a2535a85ddd69a1a351d770b7a887b4b8fb48a5389a484a7ec56abd54fe2485e5647991cdf49dd13017ba666f16c8e2ac91a3cfc810d1c5d5ec50ad56abd52c5191d151eee56a952c1c0e87c399d46ab55a6da552833afa72356ba3015f12b19dbd150811a567222b89be79cf61ec14e468c51d94ceef7282f23f3f64e0e12b95cd3c890c0d334645cf6b92f7fa2d752843cbced72c3dcff5742ce5168b8989892bb6592cd68b74eeb22cc51d6f4bc1c5e71cf113a8b595d95110191aad96ca6929dbed7c6e40b894a7a1e536afc36f9e871ff1403e9ff15ece041c892fc2f3ab0409e2b01c87bd4e5c3a34f0d07173d8ebc4359a703c6b8b1d1d57eb7644b858b996ce9f52d6ec69cadd92dc2dc9dd92dc2dc9dd92dc4eed2b4e4e6468d068af95e3a18af7b9ccb79cc6e7b8cc5db7a859db16ac9c6845eb532aa9fc960123c8cd8f1f3362c4cc6c6a5ccc62666468d078272350f1edfaf1e309e675586923af59d6621e079f7902f8ec07e0322f00a7f101d8c1afd3fc0d282738f8939eebf030a11c1e86ab1478160e04389d4868b5252fff6b9bac4c28ae534a8b243f4be60790a16a7463d651622d7231d9ae1f3f70a9148c0928154ba958744a89c9dae2de804cd96c0d4de3280ea53b94699a6fe138e2957018cf43078dcf7199b7e1b31b1ef39e07f92248bcdb7d6ee453d0b831e47036a0a7959da7fb6a459246bc1057e26b4eadfd4cfca95a0642beda5b8ceb5ff8eb71dc06259ee6c0fce63e37f6754478d7464e0b26ee785b0a349f53f3386e3e87c368b98c4fe66fccbc8ec79c5c4080b8d9b9c34c9ecb01ce680a0e7b9db88cb64959963db5bc59b92878cf8d398fdb7c88d760b9256c38a01c89e439582e7762e65c662e9b9e4bd95839db0d1b392f463218181913cc4ce79f6d996c46a73c0068e8e1375f030f1d39cc7f9d00a0861e34f0d091c37c72bf4e642e97a8e3b94bc4816d7858a351de86c7ccde7399d7711a7f8387c7f81c87f134b874b8cde7f09ac7e12e7ec769dee529ffb90cdfc3738ef7f2dcc32c61309395b3c1cad1f03ec46bf6dca2f5b0dc148c72e07818d0cec36ee3184839920d481c398ee338ea571e62e389898971a153be06a7f91beee27978cde7b8cdd3e037dfc38ff822dc8807e2b5f644b8ec3d87717dc6b768bc8efbcce3f098b7e1415e0947e227e0f94b1be57f82f84910376df8bbbf3ca017f8158c526c294be8c861feebc473db120579580d262bd7a3e4d6697858108f87ddae60a4c373b8e9ef2f3f71cff997b61b447b953f97adc707c8973722be048a89020c26ea780e1371e0197f5dc6771ee33d87f19fd7da037123be083fe227e037df72179fe3415e8823f14a787e910822609e4d8dbb3ce7b45cb9f33e22842831812280d8e41fce93849ffc90993f4998de33c3f45a0cd3634c2b30dd6a5c905c88e5e2b7ebc78f1f3234fec589e999d70c5f3aff977202c3fc19dcdb27cf030e1eca104118fdef70ff2d43b7674f81d0a46c33205fe3e7e6c66e6ab83952c41d777bb7e52c31712745dcf1fcf31007e767fbeb5e2ee373f88c77398d566ecd5caf1b3093957bb9b2a971a28d9395151afedb677ce7b0af51f39f9ba05064d282e98894c9ced37db522491390c969a6dcb63efb9295636d4183877e1d8b95636d51a3e1ba99080f82c411461001a4082045785acb64e7e9be5aad3c2ba7f2ac2d4ea093c58ad16a4bacd75e61e558b9225680fc6a452489701836c6caa5fc76c9d0aefce3c70d96980d1b3654a9121b28121b3632ddafdc32aba8e3ddfb0d55f17d35568e952b92821212015b4df084490a2996205272420dc619dface0bb8efd669c0b4c9ee2b983a1a852af9275b6acc45c2d979754cae4ccab142f954aa58c71a92b753774b874a32b99fd46d4b94336dad4a5f20945a2e2f776559ed21817341777dd685fdf9317f773812ed015bae20dba41f8f59ac960523319167760b86cd853fa4265d4a327f6d78ff4c45e3e092de9897df530fa82437a62153d49ec79f41ca3657bf9a9f7d16021d2d32383f9c01a311e9b0de60524edf30eb9b517971c6dfa13eff28904954bb9b4e413892985d2f6e8559ab0ce969598163674f729355b0f118b7d5e1edf5226a52b6ee8ee4fb018459dd2dc960a7b5e3fe5ebaa21cb3a62ff16e9bcb228c1a1bb7be466718f8c6eec624192a24e892d62cfeba468857474f7be73f713c87c2231a550598cbafb178ca7603c84391d6583eef9a4cb883b4a8e3d46dc11821277b2973c2cc158064322eee4d0ddbb503a74f7ad7bc49e2556cca049de74968a697b7eacedc6accdde7cec69814c76fe393d65326d4d25fed45c6eb59a4177bfaa5ba84747262b1ebafb140dbafb929d4da9125d03cf431b74074514438f896e4ce8c660e0f2d5e8c68aaccb45335372c20dbafbd38eadb4b054afd224556a02162eed618551d8eb25001315468cd0ccb85ea187d5a9c36003208b0809e11999178cf4ee94007adcafc74038c84b8c4b56c0dca4e67f6582a4e12c4abb8555be5429935597718d229b352808c7ccbe5a3314f6bc0e037bde8d4d8c8346997e7af7fcefdd8bbbc494aab8d54c26ea648c3b6b5fdc11f7256a028983ee5edfa36b1a99e20eb8ef1116a4e9e90e5504d05d4ad5fdb7730eba4ba90aa04fddce4f4d4ef240bebd3257441d13f3128d80cca105c9b222eeb81b06237d4694591177b0974a52a992543e91dc227bbecc4b64cf1a60205bc3f2eb1897ff06cbac41a34278464695b242954a951440778fb7971fe3c6442646d4c918a78ab078b9e2f9f4d3ffd8ce9cd3510fe4db26e6cf8a93842cb11c90d56f4c8cb8a3f3ec337147c8c69e9d45dc69a1d59646707c4a5fce8bfd2526eee498f8f3adbcdfd8f598b8b2e7c540f71205b4ba71577b36ad2b914f53c2a9d8437492d7b0eea3d34e4e9ab4cab33b6781fe7928a7fd2891bc7392343b7a841e212991c6ce3750659d4931aa6e206353892a84b4de0ac69cbdcab369365f2149549b773d9c3d9c4193d33ab74e0bfd8b515b5372f2a98dd17edcf1e911ffb27fb7ba05cd1f76d3237b03d92ff592cd3608290aeda63ab2d376a84671b0d7239b4692249931beb7070b357fa1264da653f5eadd9ff5ecf52ec88305cd5a290ec55f77981ffcb6d7ed10ebfc798759e72f57272c2eeb8d48d93271c9d6a0f41301a8810e9590c01aa49b9b9294c638951223a0d3b53c140a87a299cd4ac612a9528911d0a97e513be3f71bfb219d5cce9344d4a5d5eaba49eece7aabb7ff21d19c0a54719e495bd9bbc31a5e5d9fb031ebe48d3485246d82595df759d20761ce5d87bd0ff43eb0cb7545d7e65a416f37868b5de80e5da2dcb5b94632798d7447b7fbba235b73bd7bbb6e0c9d173e307b5e973d7cad15c86a9908294aee5664761cc5e9e13dd76835310e56bb53600ffc40ef0b97a03561480ac330ecb93638664023f410e8dadc5cf226bc5d9bd96c369bcdc230831feef22c0be12984425e1370dbe68a73f1e37cbd9c73c68f7528e8bd062d096807b6c1a12990b6d210e76bc1b0d6fa992b920db6adabdbea08dac377c445a1663cc5a6b5f651f2bca28345389c1647f842904402c34f5f9b8f528ad3518a9329c5b9f614929c4e7eb19329a6c3db5104b8bfb114ee101596c40c05b6d86685c2b5b6b189a9edaeadb764a90835796d86804ef26f756d42d2d39c10ff8a4a0a8a874f92ba936dee77d8cbd5daa1d6f84bd60e4b23199a4a36f8162099e78731c618638c318669fcdf0e5de3d0d418638c3ba739e0d39cec9ddfec39f66ccd79ebb53a94c0423adb5d21a437e03c620f04ddc30e7ea0f781d70a3a034a846ddd32615bb77e2bd125736ef8a339f5666baa903d858440af33a036a05baf3f37d6893f2b0f9b1de96607dff6e57c26bd56fca136fbc538df9b71b6df1594e27c315a62cef87aeedec68f0269b67dd2063f863dbfd3cb6edd034ff03c290eb595665c023d1226e19215a4aef33a28e0d5ecc672dc9881e2e06bedc5d6f620947530359e407ab6e665fbb05e1078f4ec9a44d99a1f9be7909eb3b71cc5d694ce207c2841910f4d22893a3e30ceefc3079244fd43927ec61b668decd5b379d2cc7cf01104cef9dc4278e20e2ab4af190394915c36f53ad9a535623b47166475991e59f668d6b031eb36f6d91a99d74d7131a699cd62dcdce07c51dc5d4e7b5ac7a8d66ae57d61bef7f3aa082f7835c623bea812daec8cf9af4c4c1bc4416db4db4ba1b02d65c2e8346ac5269d4689409adf68922513c83cc36d047dd1a224955269d2446bae53296ad8a0361a536d1a4185b0b7112526e020b4069b313ca5f2bab2d6524b2a65134552426262024f9bfa97a03cd3f3ebe9f0fc7a262c4daf8dfeaef8e78d59d7ffe32c8a436eea24a792529cf10645024f24e4686ab9b4c9e463da3f50ff90a4a9248eaeafbba1e0cc3f23724039a01cd005caad6c5a05ba369bc6ac4f512b820d09db62418d2a0ac28dcd1a63a843f105a3142715829fd791447d4956d5031ca80da645d4881e3d1e612825aad4ab34b1ce98ca8aab45faa5c29eb78a0b90e41d3abb939bb0ed3b31691f492357a6495bf99b341f7178f5388ee3388ee338be78916d37fa54ba788ad59d291ebab8b890e3488ee39872be663298dda566322ceedce87c328da46719fa94bba7355888f4f4c8603e70c7786c369817909473dad0a73ff1fc2b37205c5014f6f4b9b1944b4ba8d23a87888ab4482942055191d1d116581ee7720d07e53f31f76985a3c04238080be5d0f97fbf1e0745a1828ddcd38eceef4f8061a12c5ebb7bf1d48b6924472c832171a164d0f95ba7929ce2724a7149a1e1c443e75fed93c92a7fcaa487ce5fb23b96c6c10d3a675b0f117b3a61cf0b840bcab753e6c93e2d2c2e9a99a06c0bcab6a2a000e8fca7bdf219e8967d2e0f8ea288919e1bb3e1a06c135faffca6dc69182c3f592474a75f9e48ff454a3bf6d9888d1129738f3d6ff62931522453913b30db724f269279b22d87eedf73b6659e4c24fb9c720f0e6a427ebd558f83ec898570113c74c251602378080b1d50e1eef283fba4830134eadd4db2ca490507ddf374bf41947e361bbbfef98aa8936dd9a60233f98cb863f4ec32a4af883be75992cab603948fa3c83c560807659e6ccb3d7846e68ce998014e263231388ad87dfd4f8ac7b24fbee527ec79cb1467752a2b1e9ee7494292242b2ad9766d7050b605651b0eca362c9492dfb61ca0734980c6519cb0100ec2413ffcf0832a55f2038ae4871f48378d9824c77cdbd7451d92b20d13655cb5793fc0e2a8daf290696fa081a5c29eba5e00031948e2870516f0030d0821866040037890c0902022a000083cc0013bb3ddb9043ec523f0330e8197f1073c0d77c0d37803de8533e06b7c88b77121fec6692fc317f030bc66e08ff08a8137c2eb05bed6927824fcc707f13ac402ae201400c40fd96d70b942acb31675fed947eafcb3afd382a4f94ac73c027ce60fe0b3f7c165be07a7f106707fba67bce736efc36b3e0105701915a880c3f82102013ec8f6cd77ee2301157856ae76001f78ecd953803534c7385f931cf1fd3eefd2933af62a04b6d7ac1fc6b42b5dc718d38052eaed6b8e5090d56928f69341185651c7052c18814824a4806253114af1c40eb51892bef1c78ab105630b5840525baba8c2c62e4dc826a2a72621f9be13ae16e74eb3f6ad413f3513e18c8855c89e1f8b5502410ff569cffb4829d289ea138eb6f109518f2b50c1980293a988c924b4494092a07aec598b28ceb8af97844a42a3533a9a845445379baa22d49049dc596dd5ed66d2230a5043b6a68e2720d1a313644a6bbd8fca37e20137d510c54195c252580a4b612944f554d6571b6922d65a49eaa4c71294845420c8030e443e7cb859d89afc05a025d660e27d316e6ae49f41ccc1fa9cb505c54179586677957bd94d3ca532571ebaaee4cac4a4f64cd5b02b94ab7c9a837a5dfc12dd9e97f512cf0ff5a15ea3092a89fa3ecff3462748cf437d2e945faf46950a58e888e298f8fd3e92a4b47393aa5b09486acf94674a5f52a687aa0245843251437a240149f252d451798b75f7f56a746d4abfa8211135245e470d5d9b1898f8751491ad49f975d4115bb3f2eba8a26bc34a7dddaf1ca4d2d3f395a823efd49becf0ead4afb6aacc3af5a95d32d220c072893abed4a376f8e9d493ec10d4a93fed90a4536fda61a8534fee50ebd48f3b2c957658d2a9177738ead4eb1d923af5e10e4d3af5a41d9268d6d39c54ea3f6f87253af5dd0e533af579872a9d7abcc3954efddda1894ebddd618c49c92aa5dc3b627f1dca3b944943c2e42d3d3d371175e05de2218b625b42790dbbfad4b32c7df1dc44d429f1106b556bb3de54c4c6aeb3449d95691a47602a51ae7aba535f6e2a0445573776bd042592aed70b06f3d389e520c81a4790f2aa54c9a348fe51fe094199d423a1fb6422c792a8c323fb6251e7ab557574b2811a5652565b324b17f3ce6f0cc10a09d4f82429a5faf3d5392361a6d3c985a246b4ae1182d36737ab13ec657218f619cd47712157a3cfbdf7c4c1f3130244893240895a28b9e5de7bef4a0464f5ab415fd15c1a1c821b4b9d7cb1b21c3721b891d1811ade7c6acf8dd12bdbb47bef6d02c6be6c1aa594ae562449fbaa49bbb4ea42ddbfd29796ccd2c5bc9e9ef3eb592181a20e75da040854f448244553944da394527db269f7de5b792a8ff54073e540e489f1d716601f3d00337db653d08be4745d9b76efbd2824724f26b9ad4dbbf75e4a6989bef7de9b52e9b1898c44eec92b9649c92a29a5d4a575ee2171e913ec6572980fe9fa3a7df9c068bec63da4cf2e99b6f1033de2891e39e069143d3691a202822b2708c69cd45a6badb5ee5a88102209618024b4a9b3340182b9458f4d6424724fc6d8458f4d90d56f55ebd71eda1ce0400bc8ea383c9356795a2810c40e7a053d6f8873df9bb1bda307b4c61863330a283675ad33ee4aa58e8e001bb7a967a07d615e64303324724f96e97bef4c06f3e2d2c2123b57602fd72cc617425a6e1aa5945e16a5d6e4c377b569f7de4b559b4629a55d4e795d89871a3950af900d34e706dd180f09d875a79064d2a1c6b7db26454d8e2591fc3aa04d8156a56e6442c43e7aec4048e909bc1f0ddfea99863ffd55ead72be6004984acaa23ba0b74a915694feaf866a7dd7b6fbe7956e9b10364f51b524a7b36f58b31c678155e9649b96aa95ca9d7674b602827f993693a2151c694928ab8a2cf304662015b3e17efa583c9323cbb3156668655c25e8990b8a42c5bb3572264ddb4efa3d7a4fdb0b149edc901b23abef96399d89255ef6d692a529396c4d0c5edeb230f59fd0e7171d42b8fbd356cc5a408298af5b0fa1037df8fbb759c9e98e203fb3afe216e7e5417cab7d382ed0382167af41503890be013c8b3a2e8b5a27493bd62216cac37c618637c23c5e73d0a08474c642168d3c82f07459b76ee31c8800a42225082084c7044fb3021851447a8420e2ea0ba422d0c576461892664c184910218e0411559d881179ec8a14e81283285529123e3c9a6402832848ab55626b4b0000f186c30842ae4d0c8bdb235f78a4dbd866b8373708e1028be808422b62d8e88c00515920a25010a3f4dcc8088065eb0841cda6a7777092c4842ee7681dc1886723a7355738f6cdacdbe45380214527c210550a4c09d8002161839c1a8033eb04ebf4d0122bbeeda55ecf3835b786bf57ab920050e58b0efddf7de6bda14083e38b2692847021d7aa27bb7d021c97a9550472237099b3261fbb0eb0e3db2aba863b3e92cea1c197531ac0dcd29ea72cd99da7c4f4ad56bd891e2c848dacc44dd18a14219a0625ba7c15f770cdc0da1b5b405724658da42490b6458ea0213dfe7ee7d5dd775b5d65a6bbeefeb6e288edd9ef310c40b6af3dd98e79e53e17ad72b4237b3a7079a2e5b20691fcd657bfeddef2349f0dbdef755bf89d1612faba062cf6d687e39eab5b57a35bc4b897675eb41b0356025738831b6b8f3eb4a741887d8c352fe4007b57b38545bf51182e48961e89e07bad6a04822b9478e2e66ecd6148a6e124bf488489a3f2cc93d330ceb067aecd17645b036bbb55714b38bd6452b661ab98524a1040ed526569faee27bed15b3288a261690b41f3787a6e8acec344bfb3a935637e9764e769f772553047d7cf3c7dda149134202bfce338540690f88e2b0242489ce4938545be7249fda55b0e2ae23794eab3cdabb5a852451bd44721caaad23919c069d84a894eb1b8a7a52a1991100001000006317000020100a868382599824511805ef011400126592684a449e88a3b14892c22808a23006820c21c6100294318019848aea0495716458d7ecb8bb41ac18496ae668830a5c566ce3ce36face3dc21df0770159bedefb328408df92d8e3e67c2f1c70b8c6f83204b6f402abe67a020d9a8ccaed4c08c61b6cff73d0fb242a503b0e6e42cc711966b5341d92ab8a25c1c9d167aa97bb9dc6f595f9d0550dba777b42235ffaaffb080e567405a6ef4a7be16547aafbb3fa91a1f5480e68f7be2d7d9c179a8d376d29af85bd49a0de3cdad72ef2b7d4a8a8e4bd7c8b86284d2fa6ab4937b5eb11c3efcdb844df8a8136012abe908c492b101045b1dd11009b6d5cdddc561462c9a6db43df759706a7053a2def411c8e7576f40b9a6a13ff9d54f64f3dfb3e51ff06a5da2a8dd6940b66bfed425bc96debc4d322aa2782d9dbb47e1bbc61d4aab3a3d82c71fad788c95d7b4b97f039889270bd95c4a6e13ad5380c281414819d6483a125e3f71d1288e67038fd40cb6ee757800c093d00649b5f2b9963f9e238950b9070d739c01792fd967b2802061eb55f33a2ad84704b0ce81ad5350af45ca9c6d16417ba5419d2f85ab8b73953c3f5140895bf703dbcce5c7e6e02e9d372e1fa8df1ac78de1730715dfa1c82e5a9cb3227c18c2aa38c1f5f81352805bbc702d2d0d9cbd34b2253d62646a5af9328eed7f2af941a5ab8d45679dd21a9cbc5a9afab35648b4f7f5163fb808201b3cd42d67ec5a6899ceadb53736d196567d54301c1586043c9c8de0e377a2758e6ee6f187bcd0679578a19e4a82ad0549a39ee822c0fc9ff5369c035bbd2deb4d0e959461709cf3b3a989a1789cbc6ff2ec1c25d67aed18521cc03db3b5db949c7918ead367000f218ff5a47e9e9add2a8b6cb28bb695140f693c4c2100cdcc5c1e55047438e57ad3eeeef8e2bed754ade34e17a1c19f09b43cb21f5f64a3aee9f9e17c548ce7ecd12510d29c1de638533ab0ff4dc475683004584c0f56cb8ad46f0e825039299be13eb5fed6b3e9d98118092a25ebc3d6e32cc7280fee2d3209a83985edf5ec51c548210fa92558171f3a7e72468e76ea786ef76cc90f964e18db7d99c8c4b5a5ff5b5d72093ef815fa39255ca3ed91cfe72e464b7db066b945d26cebed2a1b005359fbb27fba7be31c454753c78678dca23b39118b4be72c61b1136a65ea0e06f9a0888533fd81cb66b045ef981546475cd1b5fedf94405ed015770f6cab32f193e50c9d526ffef341555450b31d82af7d14034e71ad9ce39ef22125e484140fad04dd694e9acc8bbda6e31ce867e6d1ab219e93bf5de2e41af0dc423f37b3393fa4daca45883eb200548b576e484d96c3aa8ea1936e2eac519129f39b63ac85c1c0366d2c58840fce5dc16520a359a0ad4b75adbb1bc591af5f26d765449bfd27ef707925e2a4ba80bd99ca7635cfaded2385617ddcbd9b864f057cc4c23ccfea197d28b691a646219ca94d0578bbe2e02e546c03b783a04fee2318b9802cc5ad42ded7281b27cc779e4d1d844c54f02f5414cb3c530fe423285ccba7995d8d0182c72bbfa73fefbc4ad143b5ad3b956a616b9768b1e9835852b54c26a132df8c57a4c7b6f223885faccab6f0448a2040c331ab95b5cf83c498a6272c3fa01afdeda350561e407cd5b5f60026f3a7543f4ee78abd7d5f7d72ea85cb13e92670ea78c025c2c4c3a6bc9c04c49485e92d86979c47fac63b9533ace19c66cf71c01d1bf16b8d7c22cd2757c34997e213d1103b37e8e143c36febf06e70ff7fc49f8e629ed9836b1f317c98680e5d16af8ca8900dd4922818e9ee0862017cbd2f3452f3f57807ea69e0dcd288573bb45eff9b54bb28804e678cbd13c7fe0884846646d209bcf407f7e3d70c39439aa20786a37232204435f5f40e80c6b762381057fbe26b897239a1301d0552b447bf45a376e40ea054cba6302e89e7abb51b66465366164ed050d28bfaf9aaa84880d375d1cf359f9c47a8e3f68ee422e290543c9ef40efa1b12c8ea00c152946dc16f6bdc899b8b6e777413c08310f2771b9008b2210f4e47960eba5fa57c576894ade0fea50057eb5716d54fabb93daf9c902bbcbc85b864aa542e3514ddd3c1c22f5c5f0c4360372b7a3f9852094376099765f6c5a8ab652cd8fcfa73af63fdcdc227c287b66dd696dd5dc96a99e8f0b0d9b839d216dbee76f565efa8ed23f79f302eebdda0771b7909c9bd79e30563255ad1d207d1be8bc958626681d7dc34f8a4460b1f337436c1949560ac377f87cce950438064ed149f0fa3f4f53c49d1a42e5358cb789015411df76fd9a4178bae1cccd28f48d7978239f60d2fd29a4dde0844a9fc8fedb6a19a52a1f1eba0a45dcc98819abaf88e089402eec6bc4aa94e38e6b049c37e01bf39b88f23aa96b3cd371f0c3eef24e73306af0f637b349d85822abb394a6c7173e2d6b2a65c14e1fcba83670756ad4698eab9740dff650b2cad0ff75b0d2f1002a3ef79bd5b9e36865a260dcd5fd2b4efa4af77fe858564884fbae83b6211f0186c3d53e9807cd4010b19546a0ca1057c95677254212e6a03185819c4061a66f006686e16b23a4f4028dbe0be4e09621ec18d8097260c22cc8245ac3540d37d10256009d3854ad92dc702c8e2c6ed3738128e16d12807d7164f051aa6076e48cdf1d0cb0056504974858dc984788c05be8f76bf76493d85104a566151e2e49ec42a8f9c22b07aa8515d51738763c6794dfb9eecda4d09eb724c33986fa21576e88fb914fa98cabd05425a85c3cddc7e5860256434def589c0823e4d0d2b2c5f206333cdc3a3166a85397a6976f1821e69f30f262eb7ba417bb68851e07aea7d9edfad5653b7bfae67ddd261382b8907334f642a9c9cb52642a717cb43d57969f25be8098b48ed080317c57e4da1b6861da034eb64de353e28176d3f8ae3182a5c90316654a14f1d0ee6f3e9fe26e942c987424ae647c9ab7cc7b612d3ca02a268754728a970f1715fbd0420fb10da9d644e6a2457a53273adcafd9de2e159af5b6c715c739a1c02719aa1a10a2101661ad01e210701fdc5a75e96236d94fe07588e4a386e1852766a063c63d688a6d60211e93311dae64db1434daff7e0887059f0d810a5608780f8f9e4bf7173123f67e8a2fab7c00c8d748e634e9dc44a37300566e40e8579ca812234232ec0989040224fa4d81fbec3c84fba57a63920832934734510d4685fe0db4653ec44907e03d0cce8bcc2a6fa694a763b455ef3499e3383c8c6953695e94c7842e4a6257b6f93f37c36a130388defafe20609d36dfd14fce2f854e51bd01d494b56167a3137f9671f087b942cf3353c441f9b72bfc03b849c5e884f9c5d2744c5ccc43006baa50709263fef4f687021b456733cfbae4b5652dd39d47d8e9b47a0101bc1bbc0d5ec01da33fc337a86a6c8b54d036bfec94bdbf2e4f1003a70f7d3ad25f15428a0382061387ddd43dbea4eaae77b5f2935a2f65b00d6074a4094080e5c0122fa9e0a8c073ed092e9f314b3be6b7da8565c22023616e171edc13bec4cb20fc47adf14b6983fe506134429013d9c6936e6219bc36cb6bc50254dd6231e2eeaaef5125e2418c1a0c3d1e2d2dba4c3fa042c4f59831a23e65242fcd4be3534ed1df9ee6248e24c848e9c9127b457ced872c5c1a2de140af660e1a5cc11a4b653f0acc40d442fef94a84ff9bde1976dc719277a42a99939ea2412198ca7fd3461135f895caaa5f4ea6a996f273415b15df993549d459b67e6178eee298d9cc5461de8d32b17e042bbe643c341d95766e3793abca21f92c1a37b1e7820b0c23488a176a477f4ab8e27d3f93fadc0a3e1a7f52ac97c822b794789860f9f3fbe50097d4c88c9aacf7373a3eb262656c012e28518b5311037ccbc1b52b62d4cd7fea692ecf320a722455024a47152f187e98e04cfae8ed958ab01d680698a77c5c19b6dd60fb7a7314af952ed9641e0765826b0397ceb0a25c38886a94a5423b71bbcf24411e5c5c0ea7126d0c945dc13da3b3942f424eeaadd2de1e5c2b748a56dc425627c2854cd4cb43748111f5f32c5e60a27e3c4817d9c80f2fe11243d4cb53bc8489fa3c1614dc13882114ae0f497ba694844c1fe50e23ce5b819070bf1445c1cabc4e461146e9274d0806605ee052c1e50e86cc9b4a88abd19b8f6300b137e7d240ba6e3f31754473b0b230c5dc60d009d40c84599b0b0487a16d1fb1771fae76ba87c0da8daae9bd0d4051031407d5e8bfc529b9e6f7a3ca4b119b610411af1bd292b8959e256f4f1de16d051bf6128be7233e9a48f8a687fbddbc50d684d44e49ef218be2bff9b21099a4dd29679c0cb3206dc33ef2db17bab6d538c80f8384d7decb61641734f2e110eaeb0118519fe644003183fc44ce440e25033dce91fa627aeb3449c4501379403b7bb3608c10dac682f96adc2577bb616fa917f8a4e7bb63ba563e9ba95d244b91517ea5d0dcd814235a3a73848dfa05444d0f1ba9e50dce6cb04355c7288aa90d3a0d53467c582376351e0c0094695480dec02361f16231f8050d8e3c0cb60bdf800c80a0e6db734ff40598c342004d72d46aa004714f5b8d51c0f2ed0614c25bc4a56d014bee393a2457698018052d069281ba44e9d811d81a7b1a8d208881ca4dd0a1a1c0490249afea71564eeb513cd860921f7508c8ccb020a871ce97671af001053409388a09568403a2c9e31cdb437a11ffcd6caefd04037b79aa6e344d8e3b86e803f61feb8da21bd2e7d2ef66f80eb6bb9edf6be239af6a00d412282de5ca1e8bb1788b8eae5ba589f65824686ac88cea9e9b206730356e88e6bfc502736e528a44c8aab60976fe375950e0f9bc9cb4158ef8ae41368d09fcc52f9cf566c9128619af5dce5d7ce8eafc8ad36060cb73b3e6b283b9ae27b4cb351bdc702b54c14db51dd8f41c0309dedcf67886857bc32a5cb3d91d71219388c25a31c3a2326c2f47a0cc0b2549d8d94f25946cb8267abad911cf929e1ec6d1208f0ab933c4f37beee774745557e5873022f4aee53ceadce754478027f72120f4cf2a95ad53da8f3aea5db0e911db52a4d0621bb73944d0690a1875d440fe6692ed8f2a5207de4cab755f79a65cc0a8026091e07411e98bae30896db2a903f9e053ae9555a8e9b5841dd740e20f40442a7814b07fa29c46a6487bacdc30aca6c65a0c5c5bd1338186f0b960f112850ce62262789bf49b1b965a6d6e2d712dab185c80a5cefe3cb76d7e3ad15ee70794b35dd828abdc2a853bf332f672730ee58613dddf5ed472609c61f0dd2b396bd907c0a55c1187abfa207fb9615a1193bfc4abfa7f903c57d57580f81b937c08e925780e6b010d8879c5727e96cb23dde3aa9f11d5cd8f297100466f7a3b64c9a05802d32b961068b8699e645dd717a9156f33ab8ca4f592223b30a513fe4e319e522a564a3c16ee6299709d88c0eace33e78738b3b376e0f712c4277655ae091d7d730b3ed78ab11eabc614b72c5c4f7074d03e9e9184bd11e4ea02cbf3a42e1da26ad3f1f69cc466cbe2631d0de70d24749f88d51c4fcc1bdc2f9d9f2ecb11ddf6435fdf3063c370b9db87ee9d4a75059122f7084043d390d7b2936ec1841bf7799dcf66f33400e3930b402a8f23cd777df6aed19d11736ad8bf0cedeb143e6eed34edcb8551271f6db4bd3ec57aef999f8d00048ad6fa9cb034a6b2ff4006282235b57fe89d2e08a37b611e78d994714552c364f6f3f8e5258a675fa4fa52cfae794fa6acd971e8ba8f488a0df4acf87c02764eca4b5a96f003c592083f8971ace06de5e6f0161e004d074d36ac56da7c88f12f3732bae92062effbbb736d7b8a266da30cdef3f07080269c2c7465e55d99a646e0dec9146e9577f572af467085af014af8119c0092edc77828e78075748d44f946967775bfe30a43b2592940b9ec427375e31e44860bd78fdad159805146996b8005d47e9014f199477e92c104cdf0b26601d263467aed865707037a8d881c4430f1a80d7e38943f96690a2fa669748e3fcebfae9d39e972fdedb96473edd827b90d6b9babd03021a1d61fe1553911717829fbc2e43f8e90fa5a2f078782d7355b432d8b95d47719d8dcd6317e7f22a7f50f5d0b90b604b43f63a416dbd3d19d8bd328c70122e69ed800b3ec0524c3dc59a5cdf8bd46a7e4fd468f78561bf6ef9646570099472f4a14650ee64dd2ab92c8c2ca5652c57589c46dde4ac62be1482cd720665e6c5946f336e12b00cc6756811d4df9b914495f6cc69d73e95ab9378b55fbe015f00b2e7ea1cdb879aeb939ad30a34a3ff7b19bb0e98da82dab5ab7088261d637cb0d01d603afb7a5e42efcf220c64fe0372bb0c8248f953c24915932690e303d5f5b04bfcb324f9b0441193b9fcf5d52b9f22272235bba35abb65fb31a16cbc488b21ac0a56cfd1b99c4e6fd4e03f29c58b5be158a4ddbb2b059c41a5731c353c44ff8660fcc91553b6b015d4c67f000d95c48ae12c65c508447c993a948a4afa4d6f365393694f767434d6124a93b9787581bba1a08bcf87441a7d7a1558f7e8b09e2c4a7cbb170dfbab6ff350025267c8d8e41bfc516cf3830af14b4b405dda3b62333e9d6239a62886f2b3ba0fa2dae4f8ba614f1aa4939ea11d11509445178b82e85b2c3e2b8383d6feedcde10262ce4f8bac8198b25cb5e8305cca32a57c07ca646b35b05cc3516af79cc63651242ebae8ceb5d9449e530d5e1abe6b5420d152c714c9f807e7640aacfc3d862cfbd569f21c318c26e08e603d9a581e3ac97726378d2fc2b4f95b7c155e597f80da18d79e597c47ff47772b84a1d8c03a2af3dd0b657a44ac531d02ee9e3805bd71ea0d7284024205880e90fcacf370330b218c8e12a7c23aefa4ea7831171ebab8a6da8437147a6564cae823fa1da0e16840c3181f5eafa8ba1d2c99452717c5f12d2476cb7a890e755bd33dee8092bdf9191df09b998d30d66d0a214ad13df6b82131f349004afaed66949c76ef2ea4098e4e4f113968fcc712e87646dcdbc30e343ee18382f480bb6a065928cb1ca71516ca79cdea1d3977076cfd495d22224214ee4932fa7516dac89303a9da5382f82b9cef6713dcde915048f904bfc0304380da8657ef8e117b6a7cf09e44a286e6922eb57a6f05267a294029d78ad4c040543a721c6443fb21cd2214c64d534910434264afc02f884a593f22ee33f779348586e518de776c915cce9a56c353ff0d40f23b6ee5cdf886336755a317a9c66abe3a27446d82cf7ebdcce0ee871c9705a3fc57e532052d62fc43404a5e7e5c5295cf93151fb84e92c0bab38e5543f7a295090ea53ceef0b944178328b1ee5365917f82126244391701d7641b22d0481f51c42546d3bd7e73d7c46eecea1414d3f0063821ef3c54766706e9eab0d67577703f50c97ac1cca1146845cf22455b295fe74014211f97ba1f08dc51f0fdabdef50b39603ebacc47f1761635600d1dbde0566d93ee8300e284f654a95483463bb5219ecdc3a55967ba8b8504dd8e254c9efdfb07e313963255a586c21c53fd5852d04a2f4ac9008d7ef87988a512a3c0594602c85ffd252946f3067a895424d362650a02b5f7018b63293d01a914eb50217a382818c9af0234403d03781886fc00ba5f73ebf9a8ebb7d8c9754eb7650f60ebbbe65fff426c05ca24b504aa18934d2b408113b1b6856c807443c38505f9c0748eab8e43d8428a6038c01d65077e0987a6b097346b9da1684b4e0aafa28f7b96a2d3ce9a2d6d502ce2c6b32f3a96d3ace008b3eeca23d34fb2a3791a8b2c4d691efe6ece608546848a407e113300b0a8c9daa8170cf06102d0bc90abbad75cb2e45c2ded4cce00fc11e7426e4df7f089166effc855fe50063c9dadf0515c502dbc1c6e41feb1c999e62d1c440f293ac1fc2a0daed842f114e0d1b69e05dbde038d93c0fbe38979cf560a0b2f752471633a0acff2181a0da3cbb8508b88b4d8275a2de6f4be5191a69e76cd51df7b49b00d15d71fb47b28380c9011649a4225e8cbc7a84bc97eeff499e2f30db11e47784e835cc1da3968f1a2889eb9e709c5c8b672b549233c93ccf9ab254e7b95e12a2f42b89a0eaeb838d86d60d2bbf1e2cdd68fb906a35317d10dc71450a24c27cd00c01c36cdaf47537b7be2c64b1787f72c90044bf7e54e5f70806500dc1aa424d06ef26a26100af5a99c9347172dafe468a167ebf971deab491385fb86724f40e255c91d42f115182cc45818ed8e400f0e52433f63be7df496de5c6e633b8bfa7f251813e09b523c03ca13427744bd92ff450833dcd212c4a7e18b0a1a8186d4f3f2522a874b146fd7f0383cc085e258bc9b01a5e792b550e98d586acc68d1c446e11b452ecae2702626873a13769761014890fe13ef799d4544f54f281ca9e70f1697137f08f6f36374462a80943b956b9eeb4d368ca8c50412ed4cbe91f02d5182f4e5834d9e99d26e6f5ae4760219f5f919ec754f52f54aa554dabb80a2d05dc802553eff44bd2b066920c9702f68073e317ebf404491d441f4773c51f086a7c74c71c238628ed22f9b244506d56c5a7cc1900ee48d3ad7422ff6325b8aa356fa3b4bd0dc770bdfe1ad2f043f4d22c314da0631328389079aa7a6bdf1434807cd2ff27e45a84c9103e05a313ed01a782916df129ac0cdc09d6afb1b68f1da0934a60807c2f7e3490e9a280b2f84320fe0f9019a14ceb6e89f70a5b2e7cff6b0a8230ad2000d277f7fb009b4a389092d67571fc7a643154df3eb72e9ed8546acf34ebbf66e2595200a1391c9f4533110713ab1dc636d5fd0fdebadf70580d48d81e0846cae2e815c2ce417caed2a98eb2c7ce579f2dbb12a8657348cce6c03fe0535bda1cdeb5398885c333b53b9328e0b7a15762e3930729b6cc504ad5861145af2407fd3da84005e81d2edbce1bf740471eaafd031f20fd98207330fb11dd2cb39781ae545ad07c856f0ca7f72fab5e01d3e845155318f5b0f5232a0c241f80b37b5a0f2f2a88e83d6aeae3c3b59d9c35029ab42a01e0e06ff6b19c4d231ca1891b8aaf9c26f83cf875d773f33127b68144df20a3485e82575716b9b9c9132c8e6e1cc65040526345c8e462c028af53e60bf7e7e2d94129e0ce0ee5cbd48d6e1eaa0b7627f9fea32004da3244bd8c18bd36db99b3f130c897d951be44a29a7e17e8325ea6b7877eaaca3388d10eb80c922cc414b2e00c46ad9875bbdd6cac315e783e3e733ff3709013758507f72db5d5ebb2207d9f983c4defaa8f97fc9f51e3c9954312068c1b0c97592c2832680ad8b1da2f525e96794b83831f7f2cb513541e8f73d2a29bcf8e9a96cb0c324add24cc5c3d68f46f5a8e95e475623409398ad07c34149dd2930f46107ee04afbebe6021f0eb132ee26b25ea3f007519ceb3bfade4aacf05613a4ee4deb5445601cffa08c343a81c40781333bd625ae83d02a526f7c707df990989d8ea58dcbb1804be485401603135673fc0995cb9ea17952e7fbae8009beeebbbc6ca8a8f883d4cb4fa7b15dd7bb591eaba97ab68101c500f286f18268f0f89d5da41c3d1b740cec48901a53485d0d5ec1cd2e1a22143ed5ff53fe64aec677e04ad6c46ec790cf1e833d5b2aba184eefb91d908e9e26c16e760c829a6fba0f54b903ba26f36824d74201694cedd93777393a14080ded9499126f4c4e68445f516e851d3fdbb5f75a21803d0db840b08e8381f8be0994c4e8c48bbb41d822ea176a943283b81b744495edc6640a7621e4679314b5478cbfb7276a126c02e6a7edcda1e649c3f81cd828c86023a7da2cdd5d1f29a0f66bef9fee8691b490cf607c5d43e62a8d22009651cbe17f7a37b9f22514eefaa204e5b8cbad54a6dad9b0f0ad7fb8cbe67fea0cd7ba89783947f80141d8190b8a29d0f5d125ee998243d13f8a05f4fd0e159248d3b67043305ab060a2487f3c14b1cf83461085225b0391d6e8dea8cd354bef35750574993712e4934668e073eabb41203568e414c6ba84125d3fea368db985647b847ccc7f2bd7b03ce33ecefd74aa14a9ecb040d8f73fb41f8450c6b1fd6a20e6e1075ea54a4ac6a514af768f15bfb8468fcb2a51e6d68500913dfee0e9614036590290c987ef36cdf57246c143d326725b9af2dc5f971e86d40400169a09e71c9fdcbc171de7676898952855eb288ad5087507f24106bcf236bbeeb0b02826dff5421f65f68a65efd0952a49168080b502c199a8ad8b1faf10d54dda229cc221bf4c86bacd072f21368443c7526343a0cb3e60aaf8f95c60d752f093b546107cacaa8953954d3d4e2d238ecc4237aae3be2c39c87176b6399011a9283b11704353ac8fe74c4415be016391d5ca0f57548bbaea9f1b61490d89fc01ef87efeeeef93b4e869a7afb43fee892ab1b182ed9652f6ef777cfff09536e62030796330eb50c10b1242d26624f651d5e1f9202094ef09cffabb5f69f4e518449817c35109ef33e5d82359cdd4fd1325cbaad8f924007601ebcccda32d82b1d7b15ae62428dd20a70433740c2e07407d8293134ee904823bc0b1c8528109b28eb9fb9a2d5099e2abdeaacac73181bce7da09c3c4d78358e9afca648695168a25aacd695225db9d99eebce08649807920b6f6769a0fccbbeb658b1961604d18003acdb746f967d701fe3b660a66d7fba63471477a5a447c64b419182a5fe0292a5c3a5304a2418ddc1cfae8cf2a00790afcbbb2a421d3559006fbf4582ebe5a61213da07313cfac361efa8bd80e3e7b002fb0cec3dc57e4b75cc4b9c889222bfab6eb00a3def1c83ece3c73f0a2c0f6437b59c411a9550eb1e370bc11c92650041b1e48fbdaf180e583accf205edf8c9ae2533cdeae1c97e5a181deef5332764669c1bdfd37214363f49e0e34a29209b4206fe69e628d42a24d66ce3133b4148ff83f10471860e9a88e6a34364dcbc69b6d43477ec5681ab1a373bc369094814b6ef6073da023c18ba63e60595b6f1835c5e0159ee4801e69739c0b497e44337168ae2fdcff46278e04e19eba9ae9134c457a7483f159b404a10bf7881bef02321bb2dd139ee6dfc769172faa45de0c0eb9c5304fa2865c1dfd85e2752d9e93043fdc3f9c2709083fdfb920453e56f3e0e2b5c404caa427f6b62bf252ab2389e71c1f002e962c5d6593dc5850c232e452f082e34729a6112f62d4b3e327bd0cdf3433096119689136677b0ad1df65214f8b5cb411eece6510823c4be5c8ea5feb06faa3f5b7dc9745bc495aea2d989032637ea5902f07cbcd4754a9571330ab4e9763b544506ddb03141f5611599604aaa68758e05116a957c3fd81fbc9d099a32a59c0baf28c2ca6415230156b17bfcb461afec0720ea20bfc40ee46e24cf7545120866052954d307035089138d6db5a3ea0983309aeaa059610b2e48fcf0ba7f75b3c21dc966cfb52e310ea93dfde17d15e30a4c36fe21fe80427d5624b7cdfec10b890f8986400ff5123ca894c695af5e606d16ecf80877ba1301bd5c007cfb55482b2e041eef0105e11aef203c056b5cd9f2af6456bc7983c805d5e25aecd7ff37127c66228131eed1926d19f3fb567ba9f101f51de0de6eeced46ef1e3a1b667dcfc51f0e2fca48fffa592fae0705fa38c37a3dd12fc4d494124bb61d17745162d04355a6165e1ccaf98876504d91503f52d69837aa01141b07ef1f5b8f3ef64385e880f8314e2707db03d7b5bfeeafc25e1444cd80b272082172ec1d538766a776563aeb353fa0c304ba868e50c89a7fc0430c5a434750c87e2e1d28eb0b7861b562860e3589fca5e28276c256e5c031c4b63c869b1467c2a583500b01b5b1f224d6152ffb93cb136b17a18842fd22794fcdbc3d4f9ac74e87f25c0a3553071f0f3941183a2be429e596eca01cbbdbd4017baac12e5d574ec1d18cb43e0a3f481c14dcd4c148a07336782dac1771bd7558cf503581366904eeaa35db40fea0e2b2ce4fd0b14318f399289318d40ea2d497c5c155408002395c034ad51a1ca8dc3e6036b583ff250b3f04ea88f8e582e1c5913e76cadb784453857a30f95500b903f6d69384e5b3badbaa31abc81df0f100078d2d97535d72870086125c881a1c56f58090acbb2cbd83047adc7f228cb906f50e38c675772e7ec05564bd03afec600a8760f59b4df1f2e202466f5f9d6e94f3c84a747002812c2af180a3e121f71c95dcb4b4e316c1bde2a1f6e39e810ea9ba17c840003e281c9eb33433c325c70db23bb5feafa72c9d7aaee261cfbb24696dae8224083f301e36d83ab3e2254b09b7e4c19934cbb5932f2c9c41ea6746684e2b6f9dbc1d8451929bb4b5b231a27d88637f030a9fa6a58ace2b8ffd5e45691e60d12f5b7add56ec42c2dcb077ee54951e6f08749948cdc304c865a8bead045eb83d7d41686fa3a1b728ec781e6c9e1b4323093a3e00d5d11f2fa7c32ae5440f369fb551016ffd13d03f9e7cb19f01e3f403cb0410b68921eb91a829982dfb644197b6d7f490189432beb0654a323d3cd5e00d062cadba4ba8a04ee50bae965a5daed582917f61c945f7eecfc5391fcd0e85ebe651dd63db72332604db17e1cc794dce1200cfff72d559f5f05000d38a572a48e64ed04e1731f3c4f5c06ed523792d88a979025303c1a9afae0f5bd08f071c23b804df846e637b48b75ed768920486ce22645ce92dc204cd0d0bb939954acc21375d1bfcba07a91af317991576d09c6c740f8f42f78720a351323fd8bcf1a25d1a6c0a444752431d3b70e2b450703a7e7782c7c223eb7f71bdcfac4e94a9d16aa837bae2b5e51083e161dea16a2cb2de22fec84248b79e0c0860a1179734d992ec9a475d1bb368796e6a09849ac3681a4c14fe523196959af8d7f1c787b9dbdc73cd6161b1ea4a7906cca2735bf5e02b8529b60ec7fc4dd776300dcf9886c7c05fbbbc395b0e9f7feec5836570189082c359a738a751c6ae4820e85b85786be2eee19050ef3984f9b943d45c3d2353696307c74e768156d110f84b001bfb3d07efee2ecd496168cb7e0cf101d69ad9acaab25a8c961d74a018d226ad860172327deeef45ff13624da953c5c89e63cff1429a344ba2cf0d387236303c6e0e613d45dfe2dcad4d23d437a431e8f0b4006d93d6a5af9c0098f4114935035bd9dec8508f38c19eb5042a0cec666d5c07f8968f8548b67cd273b28da08a6e62db260dbdbcdd00bbd9f3ed82abfbef828f252b26c3d6badad0831f0461e59a6bb7b8c92506c697650ee2a5e03584547221afb1653c2b1a1f2924706c8267d72b2735f63b2a317ed9dde1ad04504cf43caca40aee9fc449db7484eef3b186fb71df238f7e180720ac096ec3ff3540ac4778bb29ef15826d5c599c048683ab2618a26f144562c4fc86438a6415566067859d81fdbd3fdca0a47db487c68ab60da0c074d41e08c89137c84e2aa9645077ba37dff0d233a8296dfd7516958a583b9d5b78206b334372af74f7f9e00973e89b97e2eac055eb8ed1e025b4faaafecad7833daea6b851502e5e40de1d420698c38d923e82b2f804728fc36604a18cf0d0dcd6b0d139724511fbfae5b2474c34a99ca5b73ac26974728cc869f61ca1249633bdc474cb696dce6a45a986719427dbc77c47a77431d0f943e858b254c4f454a8d2a00b19414a47c488b5881f177382f4d07277769ecd7a168d51ae7c5137b257f9881dc6c907fe14bee0fa581a3ac99744a049ae907a8eb8e0e1e2245e1cf6418e01a75dc871de2d01c3bfaffd3ccf7cca60b7806e9e1e7a11299c942179d208e78ce38313f27346d2f82c38993f096e3e9c860763938d4608e50c8b7e0cb316dc881f6e2790591a71839ebf56a3e16d93a06b4e87c2bbdb741642b1d3230d051ce23b28098a4c992ba945329753b5cded9dabb01834389df448c45732d59d24b68358375bf536029af414cf5b68590e8a43c52a38ff27b7a8a4f0000c772f753fc2e73ed6cd5ed2c44891a1aa152d385d6d4c741c0033444777f8cd73dab8fefcee4c737e16a59ed703af789f0e98f101dc7b48fd6190c0d94afc1b3218e8aa551e5afa3ec479fd0ef3127290cfdc924e0495601590d7120c4d4086938107d535109dc5b52cae3f1583fe2cfb74acde6698b86edeb25e31b95d6c386063081249a271617399808c78e3db4f9a6d0c107e6cb20e6645d74d07af95c5dd02d9fbd2f71b75dbd4c9d70d53a260fbde87c99f74679b11d3fc07d63c1430b51555cfe7ab1c805161f852dbb92ddec54bb4b4382dc550dc7818d9757148b540707e8a64eb07d3ecaabafeb458c4ea6e8f27a84a1272f69b37edd8f33b8d631ea57acf15504932415a734262003705435016770952b73f1129beb1d69d55bc63e0959aaf9b8718711f2e0c541a10222b35f485908dff2c75fae8a02a5ac1511a8479e2bcaaa2ac54d77b77b055f3d9e67932ad4edbb01d9ee672132b44565f025cd65ec30512b790abe7f0414d2f10cbcfe8b55bd115d4f1a04c8c930d2a4028a17df601e225d728f3f81bda15b605b97cadb4bf6aeb8629b850eded85c0820977a3a2e3a1f72e2a0749de74cfd42dab711a2a049adfc9cca3d3d1bd5e7db0fdb070e21cc45c2f9c974c94dd74f7865d736b9490932ee34a62ffd7b8b9444248a92e7a4bd9795bcfa7992a47219cc74971c2fba82e1e4cb96c07e2aa6b09ed4b2d8daff695d8686850ad4281ba5e6c36280090262d3553e9c3ad51db066aa818d67276c97fd8b75826e46cd9c83cb54fc81cb23dd2ce744d72a92ff982b80ef90ab58ceaa3d0e954a2ebc8cc61d320b5870b9d33771668388b5920e14465815c4066861133b076210bb07052ff836278455104220749b2f92ea4c50a370b557ff74f51ce4e3b0387b67305e628acacd9d8d8cdc19071d72b3e012d715c735e976bc49dee39dce08da5c37311a2b758c8bf318c58bd37b0bbe896e5fba8ddec696046a676dfa7bef69bbaff738e05db620599299c9c21f88ba75405db8f376f0d035b934d31184eff2502862872d5ad285122ad1096e387efb134ec6aa3fdadc41e0cfaadcad96c623d220a2f076bb9ea9029663949a7b7e39e16e35e383098bcb92c300993242b2b2b2764842d6bef4e4720ada31eb1e991c6b9ade9b479074d29b69b7101ab7c72f68988c528b974a4d7358da3fed4d22de1e1df9dcc5c9cac097c533c618c0faefb2beeee61824455cf44ef41b1f2177f0b03e89cd5bc2c7a0091dc8ce88ee68e49b0c50c7475d72833bb5d8094a7a53eec078517a921a29161a4960b9502f1026004c09e4b7ccecaba7eb89b0e8d2003dba8ef4764a42bc4e1e88368c516b0b71e57d0b11ffb98f3ed287c00f7f6b4eaa791f75d8717255cde4d67ea2cd798e4389e39323506af4b71370141f78d0f0aad78a7d3d728bea44e3e0e9b179abb298c7c75de56c2046f7e0bcffba590e346e2dbde592215bf9118b0e8164440ecd7988ba40479085b5cc528dc35c2a65e9d11f34101b8c1855e2d08bed510d225da6971ce754680d307af32620c05af398ace2ac5bfdd823883c17c33bf337afea7593b8cf76292b976155d42441948114b5ab4b007736f186330745cc0ee667755ccfde6dcb970475c78e329ce4bc0c16d9016572015becc0daaf0241f6df4860745db500d0b09d51171ea0009dc6369ca93c5d157d8dd447a01e77603511d3fc51613ad37f2d891db778dc9ddec17a8c73f1134619c37f71d18cbb4ca400cefe66d67e54e1a19ababeef09872329cfa893fe7ac0187d1688325f04773d560b121482e98d515b799e93879e998a1b8051ec081a543c8622d82326607076e77ca2990b0ca1cfa6c090059c4058087dd24e24c6abf0f83d453ad77d315020980b3785d825d5e54a5899572dcb85d62759faa5142659072ebe28d1212d0d646dc6ac91eaca8313cd2bd1aa6454f34e3a2eaf021dbd8bd7f8a0618c23ceae335cc6b222251828c411fd320619ac27e37e37af456d6f131660b66641fd923190c0874c8dc60d5081f4917d33d81be350b0edc3af9bb191bb77cf8d6f082436dfa7eba3213551e6067c6f2e5d29f2f212d8e32a59cb4cbb9ed785089b57eb708b893bfc835f535a56f947612f8fdd45f130bd3cb2433bd6f85445d20a48368c571202a56cd3d2c5eaf5008e2502c12567ace1ad28fad3156decf5ecea12e428e1032b282471acc1ea45fe5e6660a9872d2575902d82cb9ee810fec0895c2a1ee9af35c6a9b94ec262f809264c78c4d1fac6d1bea960cf20963f136d4c1a0085c26a3e1c39f6a90104f639908b27b8392501238201e4ba7db50e7c21861e0f7f56a750155a69b33718fe079221c4e5b8944b61890b91943a26ba66f0898c03050946448b649ef51d02e07408eee971fb6c0abbf968ff6f1a8be7287c9bccc7f1c972ea8fddb94a1ee74097875263a0bb5bd9f30c01d714161cf850101fc736c34c069a0dd33055308c68a1b1b80befec350bc3b586774a55b01a9f1ad48158bcfce4c6097d1c2f49355ebe8c4faf50f395d0772c5148bdd910a999c72586262e678f29a89c085f16ee6d98d6cbfbf500f7ab318eb5958c33cec318e5bf308b178d64e434dd450822a9209da4f7dbc4a13f6b561c768f70b7280416be8d04a19f70b3a44406be851a50cdb0f53f0ff2db854c17ad0a6db38721107650c38d8d4d0f21dc706319c0f634337380ba526063604129d5b8819d66b0c824dc40917bc01a4ea761c5951a7aa2e0e124ac65d4e216632d39bce6d59318b5a38c4158e91975913564a9cc6990beda0c3c0f4a6ab6c2ac26de1c343db92784284e600389860ff3944c500e3205a264d0a36c3df74d10e0288770ddc88b2a42224177990fbea0c9666337048e2eaf4d6c34ee969d200fd81393c4e4fee76bd3ab2b14208db0e0ec0b1d5e9509694203454961c835680534059af08f6ed9b9379da5bddb9b734e67a9f9b6397b59a062660f3a399ff673a02a4c76bca47b4c6dd8c787d2988bde85988a41e562db79ebb8b5895720c59b13140cecbd38bc4d3a175f8d1c17fe74edff9f633d68d4c94d0de4a5552c5876330e83423432de085a2035001e25f8123a721af0bb84624971cd6878243b32e7811696ec35bba5911da016d7e995c3083b364bdb293a431a9578d18191058a1a16afc708e77cf2e9c6ba43e4caaa9e77400e4e1803d3fee1abde5e875902a2e485ae6ae261a97925b0b3aa51c8bb27e6d8a467aaf24da52ad38c712ebbd84d383d862ab45f772a494a39b2e63f29c69ca04cc12bd08887dafc06d6c34e62fff858ef2e93c04baa8eaa5c553804b20c7013060e2379cba53dce956d5c70f075a0aa1812094808ee67ac42148dc6c04baff2cc406422801dc81b8a95e9c3a4f3e66337038c79bb7815002b74b3d4e61016d4073f3ab22d2ca298f9c721bc228bf41f8799c95c4efe3d007b9f1dd58b01c37808a092abb11f0f67c4ef87a5937184a5c1bd5799b294cc50eece8a12c5c54fc67d5d7e99c751822eb138fb38403064e896e8c43394339d2540827c7d79110c61345096b49750105fe9162425e60990b119c3394632996ee74b9802377e607acdf2be9da5b48dce185f8d64bf046bb5e6834eee2e0b814fe44525c881029b020431234f6599280f73025c0f5a51806d07d9ddabec71a654adc3df3213c70f2d4319ed8a64e473b665ce98ac99b8328ed7c1d5ffa62929d3402d15b4dfa58e392043df5950d9caad1ad1d948e2a1d89162330cbefe198bc827fba714c965694d000884afefef8c66b471965e4557889ffe69b1605ad607c57c7cd9458663946d71bd69dcd90a17a2172ebe6fa0eeada3c3d44d22bd909f77e4e8370a95a7184f85d485de99d8ee433e35d68e6f1c6e462e5ae4345f14ea81d16ac8b6aec723f4a30c5f133f3d305a71e0a96771dd1d0c40e9f43b2588ed135f5d9162a8ba0d811aa3587f1461ca4d2138319c5926b8dc99ee2ed9fb81003f016ca23e07e7dd81fa15b42359cc2e1c8d4267d6ba0b3e05324d195965885f2b301c1450c6a1939bee983fdf9dd5deff0f284833a2452c9b55d29326cb76ecd8edbf71ecfbccb1b9275ec4117b491074364065f8cb444310189ea790d5dd0ee13565e10d8d1b312d8f35dc072dcbdd6b6682c31005e2a656455ae82e98630be9e2804d832f7100549ca10947946406148c93e573b733abdab517bdc18a23d191a524a865e0daa67a2eb60c676267752b9114c2c35ded09386548b2e09fe767dca91b20e5858b8f36806836f68b4eb5a4ecc91bd30ac14df097ca3fc112a77d10b82724af65794bc19e67448d1961909d6fe62eaaf27b250055555de02a7483296d6a69cf60c8aaab0ca03e51f86b4c19b0deeed071652fe050a13f2c88053a1e29d72138507ab32a9acd88d164445a37033f2a6bbb4a67cc26a8ad2898ee3ee1508d2df8879138212ec6a191653ed6452ad82360bd83df9a97245fee1374fe625ab77c015d2f26b080a9ec3f4cc52c4f47c2f75b67275b832ad7a9ee3051270023cae901644339fc4c9fdaf19df0436aa86f20b90553189fe4dddd7da69821f2455cce0cbb13e760141cf4290048608d497e9999309bff73e08c7bca6f958562a527b7810fa787ce0d034b3e2a9c52923e28da6bb8bb11fe8ce716aba729b29874bc84d2693e464bb411657296f26a08a09a054050505a2e0a25cd18f82deef6231af5318c48abdd633850526e5d87eaa4587b0f0c000c3838d8d6ea9ec1ebe42751c20fdad78a9f202b3987303724c523e12efc5a4f1af75b1101acacd07dc158294e4967194764a073f2402fcd23b0344d7fe0e084accb17fbdf5dcf572979b2906d78324b4dc2ffa1a31b49caa3dddf5a1e5027a838556ca0fc201b4fcd7abf1d7dc15d6b9e0a6f6753c5b65b0c63084bdf76014f9397cc002219175e73086e896ddc07f9d1f545fe60aa0449543de152e32b515150cd8bc805679a7005e4ef0d90db345631571a7b44b9c02cd751b50294cef367463de6a6c7f31eb1503f6a543e4a3ffaeb058b1f2b8e84d36a41619b8676d0806d9fb91d8526d60212ec7e1823a180aac703f5b31a9dc14d63ea3dbdfea70210ab47b0490f943c68722ea3a96ab3bbf29aff05610a776ca2b84f7fe10de2ab465147ff1ed94e1b109df49b6e425ab429ae22db7294efb327c3a059e18974376d7a12601d2df4cb2b10251fe0ac5dfc1327b5a7078ab162bd4d5d9656d46183d37178f2f2eeb8f8186c92008f6f40b70be9d67bcf914d4362fd7f6e8155653dca1776b69f8e505fb3d31798a61dded9cdcc9670056951b7689e97488cddf4100d13dc98b7433050b8950319d2eea2e804fb317e6741f7b85f7e449b90f6ef3ddfee00461cfe514bb20657264f78761f334a6bf901e05ff31286b019cc61907257207af3122319f02dc8a490a1d2e8c76afd3447abf06f90951ee0ea69d8c9bbd421a78d2f081678f2b81a21457d85cb2add816e7e2776bc586ad6b02c35364aa6fbc9eacc768f4ad3a3c0b7deaa7cedffa4239e6a3b93ebab488ec0ddb3ba89332384fa15ab0aeaf84a4f60a297d3942c829a02895af43b5487d9048141ae03754b4e016e130598dce4ec9cf76fdf72bc46b2ece8d038ac94fb08a826c682d5cbdfd0cb6fb33cbf1d915b20d734fe780130454761a23fa2cc8c808d7b08b63d1887a7469525c86be429726b59f8116bb68252521218db8227ee5ace596833efe1bfb64e06a14850c7d2b50b8515acebfc1e969192e9466e984d0558f9df617efb784bb9c5c3815aaddb79e423575ba25d8dfce4efd6e44a45b23a27acb882072bdcc2dc73a5dd1487eadb228b84be564c0642936e884140886e07a335f05ce2e2cca3ece60cd69c4782018a5122e7c2967a7966b90b1a3ac16d11b0f13e5bb53518307add32c60eb1e94b6f29039997ed14afe3731073109fd52a7435e2a4327ceb8bc22e1007739796a9b811293f548d3e3277f851bb4b2c70ead7309c9fe465cfa797883022c7411883175217fbc5555b4c1e26190719f1ea1cbad6ef9be7928fa372cca18cf6416f90e6678ca3f677bcc8dc549c74ba4e2d180436a5d73e567fca92beba4505b8381072c9c1dd0678b5b1f9d4ffac3b1da07c69dfd8316053d6c5141ca604f6c29d5a2cbb76d328efcb85640835e6ec94cab9d19d23c442a91f9a9a156a37cc2bc6bbc281710ce041efb9bfe9daf9fcff88032bd317f57e6997c054fbe90195a3ad98810294254c019417c78958050fc23819a7cca88a1a244ae1c16c4e435a875cc3a7ae3c45ecc4ea1f65a258fb83e48c6bbee7354e58e6159d1e4e1a30755b0c8f851174e7eb3cddf961a6b43536350f83b8f147513c765ea4dfecaa206dc77bab0dda50b38f75a7e5857977edbd1d9e9175493f0a00512a2d363d0f82d5226c3417f3c1dc28826e1fb526d318ff6b12660269e9d5cd00db251c744b792f915b5a5426c7f5935350d28f5a6b1e816415838860bd01fc0b3bc8c76e8906767a670bafb421776bf39f21df012db0c94df7371edae82dd9281599dba1837ef97f0c506aa5d48a242a406abdca169d61af8715511e5e81e4dde43d422bc852dbf574f74f3e54de727cfc0e742311ea5d5ce6bbcadfd3622c60f06e0d6e6180e874b27d62770a5731b2fb7a41f5ede4154009a44924c58180f7551cf4aa33e00ceec9ca38bec782d4261e1c5c5c7e8640b147b185c7261a0aa82c1420d460a1fa3b94a7f850b0f3c3ed64a4ee4d33851653376093b17fe983d710d8771e001b08a60510407313d566121b587cfba256c4e6f2c837b5e683f6ee9282104c3d3581701192ca537e03a5debd470911d9a956d82383f626736f6a4c0129eae513dc538e5691b4834a7381d1bc5aeca0dfe27bd2d0bd5c3aa7e1d4225d8e7f679c7aab359d5b9821803b7d3ad8c1be0964626f56ff0325bad5325ba1ed06675b40eae6ec48b6a8cf4d37993f7fcbd2daf47edba7f82985ce7455888578b6f1d82d36bbd43cc8872e16451e13a0956d3ad4ce8ba370c40a096acbfaa280e6581bb5fa885b35c6a4ecc54ecc3f6fc45fabcf331a973871865b67d2983fd419f0644085014a0297cff83f8a904d2e9d00ab931bce92efbd1946d00e96535effdebe9841a146d05082735af0e08db8a5122e8f6d7d34265c25454d7a694487d5ed63892d0c6f243340bd0abd868dd2e7032dba243240b7eb0d63cea814339e6bd41d47f93912c4d755f3fd4c083fc5a58f94977e3ab01e064e376fe96e4d827bb0706ad968555aabd10ef7402b9b3365a44f2a832be7e9518143e5e1d0a04797e0b561eb7050e3e2e75b56ff594972f5b5e86e2fc4da20e3d2ec989c185f3c8d924865efddea4130250920d346a1562973087684eea441367e287c21a25241abf0ed3160cb4fa0d7dca7a1b468fa97bf865a902277a438cb4d7ab11afb65e310c730d6b02a6ef50a69a714a3779f9d11a853b6e9bbd566ae19e1c4efdb2df4101e085d1ab4ae08c28a0ef9aa62f1ad2ad8c09bd890a3483a29d156f1e7fa009c15f6d62bcf3503279ddaf9f8d92c731d833e34f9e2fbe65d3a01355b02d27ca9a4a962a1a9254140063f2ec3887cfefb78ee9c267b2098fc8e9cffa7cea5c23d17dde64449108bb0d0364c1f84e0e39384969567a6d828c4775c773106a0e00e79e8c020d4ec1f88d190e54f1405f9a62c10e542daad58363265d7da7bce4f8ab1b1e4ea0c2dbbfbae68c1219d82bd793458b9f8ca89c8245c0d8bc9b5ce5513129b56a156b83b9f37ec5494b4216d1ef9b50f1013ea1824d63e13915361ca92f1a2ebef8b59428b13d5ef248973f65a16d0f43779367a1b2b705f46f9485023e2853dac693a5c0351d450429c81712e56037e0e7881ad66ec4c3ee6847cd86129f229625d375938f04152f05a7c2a17451d85377931e0d1dc6436a704fa5200f912b3824910fdc0dccba2f5537e97e998c21fdfff7fad8a7d4e86e13a11ee95d32323b2a302b4449e8859799f370a10deae7a0825971e17df283898d14c1edc988ea1628a84ccaf040946aa736a238052343a68d5f23e6b46523d717ae3116370daeb33ba406678356316e6b0c93623856ffb6127e8350444b5c8f4b0613a3e7a65cdd92d4921e92e9737f2117a8f96ab5d1de6040989856e6f84cee3122b299e9a3af465f6609fee78050f22a3e1cbe7a45ff3bd3f8c906e341dded5c879bbc275ba2fe2aac70070e4fa3ed797b8c827fceccd71caf3bfd155c487e6e45d09e3b6dd9698e3b25d95edc0dc0dda86b44eff2eae89cf68880d1d1bd8d94787f97237c95566d528778198a436e954527f4a90194ee827cf51e30446923483fe97ca48330b413e4f91542c9c19eaf490c3ac8c1f3cbb496c1968ffd7fae61427f995c0f6bdf40c3605207edd7e5c400ab75aab687ea61f1e3f65cb7ec37a92ee95ad7b84b6c5d1e0b058d547e96bb6ac9b9d4ebb086b2bfdafb810ee802544ea0392f678ace10a721c4a7e7c4dec8e13c68a237a9aed7aec176e946eb34aa109f6fb0ace901d4db68b00c1775e05d9a13a84980f67f8d6e88d7dce3fbe11c86664829ca471b273b7393a7fdfd80d9c34856ed10c114437de23779cdb50375897ff1690e35aff441d243b53bbe55e08f0983e95fcc29a8103d60dc37e9b5e48c9a67480abf759b4417ccce7657c71aa679e0537238824201d6437db49fdcd7e1439d3df81294553d40da5094fd056e129e54f6284a6d03843b66a1d471fe51e8a8af11db848ab1acada1fc7561f635eaf8a9b20d0f26605115e67a8a00ed7c5be37e6026d50c7250c31f8e5793b41ce27bdae4a0c01cdedcd1fef5b9c179a044d51b1cee9ca8d33eb5536081e4632a5127423a958120d3b041a912fe283499d7cc4918d2db21234ed63b3991be307e8c43040ada146ba38e323c8293dc1c7ff44feae2fbea02ca11ab8883ec39d33bef0fe0daf320204bb67bc7e30ad29beffb47189f7752e79c9fe8dec69f3a4dce3871e200921769b81aecedf401a19bb674a0d6fa9f699e0590d2f8c4f73a223b6c21ef5aec1037794b229b552d9d7ad9f1894d3d8e84c007c6f3c83c9207d6b39b266a355474032aa43e8b592014ba9a0e1513ee3467f573f2658018692543cf827d8b5b8b544986a71f036a6f1467be164722eab3c71c4f800b67b067e9623cde393adfc2ac694d565bdb8fcdf5a5b27ec4b6e29832d02163516c6b7befbde59652262965bd08cf083808b77cbbc1a6569de3198aac42a10f1bc970aa241414141414d4766d97ed08e2ac24a763e85091e76584341cff51b1e76748ebf19f0d78758c219a088eae54989896a8d2c3a9c74ab5d9683c4e4e5dead3934c16a3a16b44603e23ccc965d5460476240b6939554a25ebd7a52562efda52c3655b0223c7c6637479e1e1d103781c5a00dfa381bc093a00df4303e079e81f3eba859fa15df81d3ac8041e670203f8e182861d05d137535113188076390940bbb60440bb9e80685717006817d40fedf2b2a3a3054de70efe9d9086f3df8dab03672c896ecdceeb06a76fb609ba56e4c75ae4329eb046a75c56918e946a52d248a5a270e008690f84c304d854f529f54ddf6404fd68a107d22c3c0fddc19e011a02bf001d81e7340bd6b10095002d817f80a6b30668fae424014d6f5050502b0cd1443eebf1af8ef131adf330b48cc7d1fa1fa0e76c8508685814ece6b22d9574b21dcd1d98cb8bcbd6830e9dc2efd03e82fe47aff0401af63c34fe1e277c8fde8f43a3f03c0e789cdc7dec3a00460ce7669bd313d46d748086413d69d8169853256d3ea458add6f7b1582c168b55a443e1840d55492fa38f212d0629132314ba3b4648d3197a1d9a8515827c0c09d1585821c807cedd381e28a499f0403c36c0219ac8737ab573e8da101e403c24f9ff7a8922d42c16bb13f6a3615660362d4e5262e6196714f919e1902d01cc59e17768ff199a85f7d1b497413fe013a01df00dd03300e96ebf091a85efd127f068159e013a02bf000d011a445480a202e985f051da496b09f2012386034544e8a884190166049a8655993b4573274a085141a38f5105edb2a1b0656bd793dfeee2ec04810738608619a1d0dd3fdf23a4e5f81e40ffedd028f2384378c0a69ea428721febc0f1c1a9c1dc6162f2d4ffd12e2b39b4cb29137141b96eae2897724d018d2e1b0fe24e0e5d9be169e85a917f5d23b2c536c29e5c0634c29c8ef2acc8088372d90e7d337502ec08ef706386861db15aad8fc562b1582c1a2f4e44b4cbe6b22d4f5da050d051021526a625aa54b19242486d362ac54748979676a8934a9f24254509a992128f9e1e4582429a0912a8648dc2408d06970dd1f428a445950c0a81f89ee1595048e36a437280391abf0e8dc2efd029fc0cedefa37d3c0dddfd8f0e7a20adc2f3d0b0efa14f781ebd7f480e5d2b5264abe0a4e54602a48ffa1fe4a37c948ff2d1de412c35d4ae5fea235d45c3a8f8d0e29482beb9a1a06fa0f44d934023e99bbee99bbee9db0d36b55d369715cf5d1e229bcd7c34ac0acfc7f21258910e7d13958fb0d864e62465787848f25f1433948b47bb6c2e2b2ea71eeddae27a9a3b5c18c8e5e4b2b202b85a81587e540f2d7b1e9a7c207de37ff4ce0fd144de47dbf81dba84d7a16be4d03505d466f8ac001cba47c328f2b17b0336c500fd512f55547df4515e327d740ff9c87f3452c6327ff413d9e63fda293f551f0d95a5983e9a0a1e92fccf4747faa6614c542a596549f7a08f4ad037b71afa064a23e927b493a6424369248da491349246d24832edb2b9ac541267cf186fa4b0106725391a7986c6d996287333e8ec325c2b72a13eeac3549ffbf55feac5541f2cc3d7d745fe9380bfb165d02e2b754bdde11b8f2edb929d2d83d65ff4d3ff7454f5e1b8d8679ccf453e8f9fbbcf337cfe57f581f1f963d527c6e797f1792c7554252bf7a5be6dfd45a705d087f42d863376af43eae89961861147d78a14d12e2b55e6b24d115d79642108460b7709b1065516f44d7fa93edcd7d7517a278f47c8cdfd7d0a90db6eda1d6158c2c68ee17c69e924632f14feb81be75d369715d716d793cbea2740bba05c567f2814926d6e743975409c95acb165d02d8434fc03c6cb76ecfd27ce730f2336442bc065f5570869382b843140dd60818786830891d16545c865bb615cb6a11d1b3c78f0a871d1f068b178f018a2e7cc9f9bdb4697ae28d7544d118c09d7eda60bd80e2ea89b2c601c80bdc0e57493839b2a6e86004b411802c94d6cd7b99c5c3697ed8b29a9182a3541121fa6b456daaeefe3ed862631dc70642fe62ec6b72f5e30c085a91295f397a89b9820a98e863dbf0421123129b97952df6d4f308cd49e4f449592a83d7ff5c59ebf0a87627b4a9451e265862523b2582c164b09d49e3ff5672a5646f82a88cbe595127624db5b2832965a57aa96e36ac553dcdddddd29bdbe7a42a95d31896eab8afeae250e5bd3b973bf5efcc2941b2f15a732e79c7306f9a44f5c5412c5ac9eac94564f56472b21325e0161bdf8bea9f5d453d7a7aa2465a348f326459ccfe5ac82fdd8b4f6a088c96f48b695946a71f660e14a8645a35f37319c193a868c1a648d1d9e1e1c2b2939fc1625351583d96c369bed0609090909c9e6c5c4c4c4c454e35a49d1e19292929292a269b1fc36e34c325276784d92116d369bcdb6b2aeb22ec5e716155a07ad7fd6a5fc38ad2225d559f701575280ac67eb2b293cdc5ae75647f0e8b13aa2c709f7a7db2edfe7d65a6b292dc1ca8817e7cee5b8b9e31c37ba5beaa2bd4e31bed7dd2fb0ef576bed1d27c6e25b39112bfd1cb5e973f85aafb3d6fa73ce59e9d7cfcf1df1d5d7eb3fe752f7afd633e7ee5e47ead3dd8eeeee5e7bb82c9fd7cd39e7e42abe76ce39e79cf373fccb5a6bcd2eabb5d65a6badb5524a3fae8aaf3b821ae1eeee73ce5ab59e3b135fdb6ab18068751f449ae7cefc0ab4a7bbbbcf9508e8fc3612777777dac4f39238055be0b449b5d587babb5fbff7e8d2795f0317e94eeb81e05b39a9b5d6cab4e7cfe7f0fc6be7bb1327e5b64c7327091a744695b1eb7fee838e8d7147acb9cf391d8e07e38b81b0f04665b37a893532ae993c411b5015825e97397cadd79c69e44caaee7398bb63ee8cf0fde75c716533e7d6ebac6fadc5bb8eb65a6bc7d2e659496badb52e04b5ab26729ab9703f9a3bf3272e7dbaf6c563b5d6d29036df0ed5ec3b3af1ad9498b5d65aebd34a89f9dc7c3cffceb75e574ad45a6b9d13f663d7b1b4c0ae4f959ccfd5a68fb55e4fc04fb7115cc358e75afe6fae92102b98560d61a845b3fcdd789467f92baee50f73b6fb20c74079ff5e2336f8ae65203f6bd710065b5414c240f388ab7761adb5f8f5aa0198a333ab3e1a36f7d54b69ad97524adffabd77a4948e25fd8bbfbcf7de7befbdf7de7befbdf7de7befbdf7de7befbdf726b19bc6be3be6cce55c5a1feb95d6136afe9c73def43f07f3d7fc35e79c3f8f99523abeaed6b1815a35c45821032c5055d82aad191d30124e4fa0b6740105156022c0e5c9c90f983031b584510c7ab003265cc08227a45c31c760518413276410e6ca1066f3a7042e940ffc892bb65d6dcb8165069f4082fbaeb558f2acb5e9161cf846d79e579ed8428568492a0b971d8610c4960e7c993e501a62ca0b9200831f766005910e441881c40e5f78c0e2685692dbadd0c0c909cc121045182208220e88008826c24851020637f0410576e0059208b4f430c517b3f9330222f6fbda178b0b60c0c9b8760447235146ff8a16476cd59e57b480daa5ad35afe20347589cac28ca61d6b4fd6d15db7b80030f1081081dbc6822c4ccf19e585860c3130b0b6c3e78d3db84a5f86a31c10e74eb64b972d3c1b7ffabfe4c9d2c36dcf38a9625244bbddada84ce393b9a2be7b889e8446c759973776b5b2d56cbba0f49d4174dc2dde9ae619839e7cc95a496decf5e3477e6cf3a832a9b3a7d0166090530499b5eb14193fd57ae7042a1077fe9eeee187fe9eeeed8dd1db3402c5fafd8ebc05cc83f370cb568f6fd37433cea1af8d97fbcd12807a0597e703ccab3efeb8b9cf63eebaee6759a868d1d638caf1dbb57326db30ce4cf40f7397685f9e84237e26aa350a998544ce08d3dcff37c709f52afcbf7c71513ae5c145e6bdf47c519d2dc2b696957c41663af146715ec47a764d37136550dd22abe8feaea5e026dfaf407d1715581959c18537c55b01f782c0fb07ff06cd4d6770f2fc65c48cb39779d149ab7f48160f81255aaf13e4972424bb25b9c627d99d638675877a9d5a2a1a9a1a9a9a969b1666a6a64c49a9a9a558d2aaca9a9a1a19a7387f3e2b3d52d10c6d3f662eb9b14ac2a5bc950a8db201886e26a258ab6355b2c16fde163b15a2d1a9a90e6726550a725be622df107f1e63aabab603fb0a5201eedebbf9b1b182ca4bd62a50803c64a056249e2e4e4fc036dfcf40711fb0fa29e3f8e630e0e8c186c1c6f6c5e35a38ba6358e236b9c9119c5711c478e67e6326d5f2d89f9af6d629bd417471dddfa19daf53134cd6bcd59272fa3e6256393338323ab5102b9736342edfcb609e52266477292676e3e49deae97692323fc3990b3291c8ce6bfaf03afb64d9c58a4a54abaf48cff416ce5d0f86cc3c67f34b4d114ff42e3bd50c8db35efdd6e34bcef62abe9966997aa79549117fa944f7d36365d48bb37dccb070585bf90765773dbd82f43d7c933f335da4e72e65f3a4f72e66db438c999cfd1ad49ce3c8e8e4d72e661fae7ce0c38c999d724675ecf00863ff496f94f2c61abee8c8c6ac5aad1e5e96925b6645b9c9c44191ad28acd2633e3025b5ac746dba830628a8e90929e4cb96c09af926766cc30514e85e54c4a3832a62aaca4b9e38f8dae9651c5e6b2a72ed542697b6bd9a4ab632cd18c116dde45451cd8b86d9036bcc90cfde8c89d38920d241c9ce94f3c296709f1be6c6c6236ae284a4a5b4ae84b4b353521edf51fcc4647a924d368975ca634ef18516653f3ac905603a3a6c68d6a422fb279d5e4d8d824f17ce6f98f471b4da95fc0ead4940c16bb37210dc380e1988dc7b14163ac4fb5ea546f55ca6bb2b1da6ab54a959c9c57a5529998f0cdb9daf5a31ebbff66444989f9e21e91fa26b9ec16b92c4c25a76ee89a54ab482e43aa4b2ef3a7a1120cb2a7c7c60152dfa3304fa22c5552ca655142e1ae19936c54928d4a8aa1a3fa8fce983364c890c934393aca3a32684c1a3366d410ab512d9231839c240d1ad346dba83095fc11762f77395c73813083866cca48320aa7da35f45daa323139ae1b3b5593bfc0239d9aca3492c81ab346944c16d2ac9498303170b86bb48daa6418315352951443a5a46051fe63936c52146993926cbcb44dcad1368a942a2e6372d912d3981d1aa692fe356854d4d55d97a7272f50505fe8ed46b750a7254aa0549c2ee135fe3bce698d6b36fea56b32188d8dcf2dd767c3ded08cf8b9d1ee2b23c4cdcb42da8d0e1b7ace6e34dd33b43fec489bd0231afe3764eefbff4648bb9687272a4726938d364c95d9241e448bc351a3228e47acf99e90f6cab986a795a395d88c18c0f65afbc42a85b41a1ce04a056269a376bc74cdc6dbe81a8d282be532ff9c83834b78ae84778db51a4f33d64a7818ba26fb980d6d3405a4d986a613c7e5ba6d6f09fa6545f216f98fecfd6d94d494ff90efff5d7d234adde16f422894b4642787cdd3ffa4b868643233e4eba606f6f9bbfa4aa9a45b21c4fbe58db27d4947257d406b2dfe1d21ed3e76d1c8ccf454d2fd6b260b4135929409404d26b34953c4fc16061764a8a409374af5c1ef52dc265f9b831b1da0804aba5fd75b1aeb7a1d3436c93ec14c2ef35b6393da3ea9327f9f90867f5eb26d7fd2fcfd170d2ef3c711d268c659493b4e0940e53041470e1ff0a5ed13aba423a4d58c36e90221694709322020a01a170d508b0504c4b566de8e25d196793b33ce4aca8cfeaa10fcac7ff73604922bd9c4664c2f934e3d800aa4fc572910b11b79133faa64d55f66473fd5cd58d27df35ae3bc0c0de37574ec63e8fba3ce4f440f796f12450554031220c3021840a4c88f0a3e302d4327c6789b31c14cd2cc0a669666ecd0c1347b61061c26f4f4d86ee44ddcc88fbcc90c45b4d1941c44680ce1d93c5400fa24795f478ada351755928ae993974c321fb909e64fc63293fc27db5cb6547df2d3cfac60fa642926596163c943eab1245fc658bece2873cbb7f106c5a4fa2ae8200c2d037320a73f90471fe0716821dfa361e8a10bf03c340166c4f03fe5e7a0517e3ec0c708c0b31110437900d716d793ab8b0bcae5e54687cf0d4c07878be87aab5528974155a91a55a360401c78e3c6e726367b210787093d3a3649fc3df4cf1d9ca70c8b93c4afcb1960e10fbdbbff543066305635542a4e94edd52acb1491c2627b9242143b1db0974143e013a01ff00de81e48e3678096000d5c448a888cd372a75d50b728a9292f14e27ac8d12cbc0eede377e86e8597413be07f7c06912244548079111a0b2bac56453e60dc62379cdb0d350ff4ba5769ef41f0af4642bb48848cd4543ff7111b76cd1b57cf3df89e37537d371679ae6bf07f61f5dd7fae81581b76adfb6f8642c6b0c89b81631843381679b3d57b639137f380e0d8650dfc23444f76ad0341212bd57b63d1fc320bc3c0eefb86cdb7dbb76bd81d5df07e3639f1c586cd71363931b567931344d81f065dd78e54980939793177e616729a9a3c73cfb1b45f56a71ff867d7755a49f74c8866e20d5382e09f1fc24065e6792e7c1f5483cc30861c406c9975230e0100c30220b6806101105c66dd13ed190e19a9753ff7910dec5ad19d75415c1b7fa815307bc207dfa624a86777733e893f67e097a24a1ca7f87f0abbb481b58fcc2c453cb1f11b998f7ff5d3654a6818e7ede70c9cda5e39af7021b5af1120bee7db30b38fd828268a2e1217bef70ff50ddf874f73610913a2590e53ee13cdbabf21101ffb869a4a698a446d2ef33e7c52429fbc9bad7bba5125aa84f4255552c2846836c5ff4b3a84384b14b6111b58fb488e12394042c91418c0577d91925a344afd9c8550bbac45e0685467ddcf999139cebfa39121a23ddf86d63e52002298ecf9b3a9044f758eb0f917d8b2cb0b68d973099d79dfe91ceacc1b8d72515191eb1a7ed43ddf2701e6ccd3485663f6fccf69f6d83100d1acdb53d78e74ccba9fe10b4be698a925dc9859376697cdffb89cb92031b944f1c0c945041f971dc0d9c485896ee2d20155f662a50a23eed9b4e526034edda48508bb3543a580a23fb6ca5854d86c255b5ad06411256b1eb1ac4e2da5ea539576d4ae4d5b8ebaecfad5367b5071e26ba7573aa3f29ff4aaca1bb68ff5c6559c293e18444bf3e57cb52485340580b611ea4ebffb7dadca874c09b6aaa83f9be8321d40fe23f360f6acd2362a69295949b192e2f78d49eec64f4320378c1933c609bfa7eda600d0bea3115b57d50641dd6badb54e9ba537287f63b003ed67edcf951d4bbcd22a6bc5508364be49ae4d6255b46ef1cd39e7c518e4387c9fda3ca748ab61803890bbab9f4f670f99eff6ec19f3bc2f75c4e79e73ecf7f1bd3d9b23bf4fa539bc55fa6e194deff7df0693d41d3e1802a163c68c1933b387baee4f5b10a4db75a9b3bde5d32ac5cd71a5dd9cffd08ca20c1451f5acd7f95548e35e6694c9dccf9dfb2cddaae4ade49dd173f5412eeaf0fd884e48fbc62972daeeab2d17fe2afc4295a85bf5f5459c1cbe368b343ed2e85c65dca793d8edd9d8f51ed33c9ab51d7108046fabed762d56b2b26ac7844a0b983965f66cd272032d4d4b9c16b93672dfde3188854a62ab59a824fe317bc4aacff7f47b1810fa1fcd7f561bb94195c4e2fd4aa23de35feb59cfb9a7554fbdfca5d77a9046ab7e863faca755df0a83c4aa0f4df5b40b838c9468b7c6f2fed52a1796d019f823b3546fedeb7cb97afb6fb9f7c63048fe3b9644fb7e4bf59ff7f72dcd7bbab4cfd18c3020ad577deb552d3d7756d97186f5ae30c8374befb977b5b4f82c5dce8c25d14e427736120a116dd1b5d24654e30e35a881bc30c8d7655ba95757d91d88f84bbbedf7ccf0c7dca1b3b6aae7836af6a09b3e5d59badd6eb7efbaeeb929123a46d780644a1515ed2433bb7b4f02ee8e861a90a8b0ebdcb99f046fae06ee93e0ddfd44928344858d848ed9d68e73dab8af8dd4b7abd85be7feb37aee925aee6718001c0ad55af57dbab22e5d5fc7e9c9b60f0352df9b6c107ecf794fab89d5673dadf9ab575fb5ccc7aacf4ac8430f42e43a41f567fefb4a3a34e74ef7370c62bfacf7ef08ab01e2fa9977fdcccffc123a8b551f979e35045fa7fa4c2474d78e5eafd2aef7c2a1fb577b36af0a7217fff5b1eae31160ce6c5e45675f38743f976ebd9119ee455dded25f156a50d7300601aae4631d141067930da46cfbf5cb2100886850ff864321901cd2ead86301ba7d04e7dc2955aeea41f98876ddf4691d4b1cdc29109e299818b3e9fd7a470acc2ffb08111252db470a4c274a25638dfb70d8146b6053eb4a36bd230d3ed694ccc761f5b43483a21937166160ff107ffaa87e41345272605ee1e2894d37b545d3ce9f53ec9ed1bfce317bea1108e1082d2144b166ec7945084d0881c9cab0727b81d8fad7c81d453bbacf1ed3ce9daa839ddcf832c03881819a4f1b638cf111627d6a8498abb5d6dad7eb3f0757bd2d5e4971f3ced5e72bddd6e25a71abc502e2eee59ca35188f5afc53f2b0984311e4bfc25fe8a6b4f7dfb9cc518e36aadb5d8ce777d643e6d104c1453e020678ec3f85e6bdd6bbd81489fe6b973a1f8565da4e812459728ba4811858ecbe36244093ed0c40d3e300515b3f9930242741cd277a54b148cc5bdf85ad1c70b172f9a4841530fba60b13d0749d4b8cce0c90e888032c5511ed37d098730bfcc7081859625a0488182848b031ca8a80c81556061044e5954a0658b294bac28b67020c45eed790507587629621dc66b65b56793173b4011d50128ae58224517dbee79050a24d4ea61ae75be62d567ba7deb5506ef799dd7755ed7799de761fc1ec6393667cd18638c31d560929b8dbe241b036eab1095b4716dd77d9fce95f4ba2e731ca76fb576eed88f55d2be7dfa515781c8e1ec63bdd27a02c6d87b8cb18731fe4f4f1c54bdffc659c99ac7ccc5c48c31c678b4af03621ef2fb787dacd7cece3929b5737a99c4c6f09c18f76cfcdfe3bb3f07abbda0ada19015b2e3ce632d7536fe397e25f15b1d7307cf39313e62b17677773beff7820f68f79095fa1d33c7658ecb1c97b94f52b375950d2f883fcecb5d973deec3e00dadca57b5d23a55e1ea5a1083b489c8d15a873e30df88429c75f0c569ba5bd5677e8ce3f2a60fa4a36312bae953fa1cc7658ecb1c97bfa494d29c33bef9b9a71c57392e7fce39ffdcf1defb5c49efe69c339733f765ce397339e79cb99c73ce39e79c73b6de07f947df7b1cd2e8535aeb15b182d5ed0df3b6eb73f8e62f7bee7c607605a36a028acc3077ea5b7d1335028610993bf5432dc3dca1794fd78e806634df659ae7ec636d8368c36bdbb14633ce1ce504c204e68efadfa5dca6d10ad09bfe91ff7c5f182431bb1e7d5f28192ded26253edad5c9ae5fe22a48df4d9c2296e42e6787b4ebc7307bdc23764969ae3e20c83453554d7cf5bf557d4aa9382be9b33e6d1ff2aa4516885e34772c2044e3637dd25c16d5ad5f6bb1cd76efbd18638cc523c45c562529299b4d3c420c05c06dfb5f37b30af663db4be5b33f27a535e7ea74ccaed6c7396b940fffb7129318fab182b53089360d693ec230f696288246e6d349b46938e4cd991193fcdc3381bd909f7b18f2088337e66ecc351cea86c21f749c23cead7bdd5a6bc3218e00f9b9bf210c797cb9cc651f0e316e4dfb1ee4864378dfff5644fbe3427fc7e1d0fd3d447f8c56d3319bfb4a77de5dee26ed54f6e99ea1107e3b003cde71d65b39a86fd21c0e09a94aa2275ffd4fc8c30a823e845f78bd2c087aab35945bbb95b31587ac15fa562e183191315971e1d0b81299c42e1c0aab2d89760d87c451ec663774a95d8266f00556e7aeded7623c8a2b2a03855629edecec61e70e8d953aadca89d9da1775cfadea948a6fbf5a3bff6f65ab8f7d254498e6125ca9f9b58699757eede2f3eb53f5a1566836bda311ffa7d9f7bf74d3eaf6622e77de0786aa952833c36ad1b86a5e3637b05849bb238cb9431f67eed09ce93f77cbacd5ca2eeb17bb7e69a34a55524c9db255a65b3477a895aae19ff41fd57f5e433d67a0cee16753e87f184ff1ffdc0b4b1c36fe36be3d402aedb43d3d6d1adca036f23e6a34054ff19fc2fd67bf061b5ebb9b93a7a4d9f493bc6a6688767f4ea7bb8a23cb1b36378a73477fa09eb3d00b690efbf1f4bb2cb3b59e3bf4bb1dfae77d5de7a94a1c361d813efd75b9e3b03777e803b9cc22c1a168fb68b9197cadd74c3b15123a666f3c7ef8089f6dbec618c46a3488028b1f72b0b2450f3af8620b264820210a240c0116c5a88a0bb6d8a00825ba70394116b6272168e07b6261ca8133e5c0a1f8e60cf153e0d1032b56d084920eb4144d49225377024b0ab6bc9def5e7a1e47836ad6449b3372c723e0f6f7e2ab3fffad3a8c6dc7716f3dbf17cc1c25da58db23e0b6ee392882083a1491858e2d620aa4e7f095218aa0b23dc6767707c2e2eed6bdd57a7d7b623981975db678d063bdeebad72e0b67dddddddd6de8bcc684e0957f28f6f21f1d2c27c0a289bf8e8e8ea7492840d8a5ce1019ca971d3cbf178a1074f8628cf19526f9e27b2f0db6c5dcb4ad97b5526df0c2a3286628467c608432c407a088e0080a1213283ce40065890e58881863a493c5e6993db110c10544e2728e97a0e860ad4e96a511f890977240e28ed00326420eb79645136b75b2d476d06442d144a776a509969a124828b082082abb14bd282420624c952e6e70051731906ae21602a51584c0083d08813bce61b02f10b39bb74e0f908e2c3d3a7afce7fd1a2971fd7bf008d43377d9b3a98884bdf7ee3bb65e9cfb5dc27fefb5fbde2c9cfb9760df3cd22ca48e4e4f359242a6878e76467b745419fd2e05a2d192255decb267da544b6875b73744fa9322f1cdb79574c188c90d3c60f284c4040b0fbecc986c289208c196a82e8cc0c46c4e994a92f473ee6169db6c49db839193286c705a193c8295bca3ad8727dbcee91df86410e9c418b56834c5de1f6dad767cd157c838833c883922f74653ee0bc1e17a106188303e21ba6330ce5e2ebf068d449808c3e36b7c97714fba8ce3b8175b53870be2bbb111a7fd5ed5477dfaadea5823d20faa3850cae373d1f0c7e5386eac81d6e857a56f6291079146bcaf8303f0713d882dd604b78395b4ff7dd37f747c7c2bc4128cc1acff0bbf4f7db015ab7864895eebed13a27b46e69311a77d59cf7fef8b7e65b2d3d2e9632db51356ef63d1481445981d5fe3bbec3ee9b2fb4653681597884f91be95a8fa3a205541ad128da6e4baa3bed19479e36b0e9bfea49f97d00012104734d5a2b28081107c7490022e989ce860cb1520b2f0410f628a1044105004610a285b8a80022d9808411519bbe600c40f6c25145a8670c54a1460aeb0220301015f387182289290028a0e44296cb067054430451544cc008b0bac80a0884a4e1822229cd8a2052fb89283168c510db1bb15a4c04e77ff194eeadf121b0b0eaaec96d2bdf75e714f2c453fd8784f2c452458c2f41ec1038e2f26c2b647336badb563792467b14d5d6cb1ed0e336bad8e28b6c23d9bbab862aff6c442c40c76291ec1bfd2724eeb3e270c4fafb57a60c4b9a98fd5074be7fdd2ee4a29c55797dec33afab04c1fc6517b9128b14e6ba641d53ad1b6beb750daf72b3da1ec3e89dd25f74932edbe6ab5739ef7d36aefe7e78ddceebaef46233ba87e4e4fa01e98fbdd637cf1bd5f7a5f725fdaefde352c7b9cc55d18c4ee8bc42fb5991bd324c6b63920b76230df11f155494ace1e71363d3dedd9f4c4d32e5fb5a7e9074e76fdc1aedfe3d446cf2a8ca88000c02001198e04d51f3aabdf42f5994d7c5a5089edd9a44592164cb23082ce9e4d5948b1675316351d7b364571d1dab329aa073ef66c8a3a41940e2c31605450e09619a8988660edd984050f60126caeb8d102dbb3090c531398a4dd24f5f4aa71d1b45833329887a6278aaad252952a36a5304ea2d8d71fadd3a94f5ad63d3397c75943dd36e4ecfbf36dc8e9f604c067c49f6eee3f0e745dda9f250e1b06807dbf679775736ec4bfee394f985e9836379636fb97b75c7911cb3996f3bb793362977e130ec0df8bc88d65697f7676aca1ee5af7576cee2f5756a75d7fdc3b96442dc86c8709e966ddd35dadf03d43211c16763af1c3dd3314827d30c1acfb292405231a70d60752f29ea1109e2998e8f60c85b8971f84c0db33142243e9082c9f981a50f104b8672804860f28706282b04231e2220b0d547b86425c3c406249d46acf5008b5e2082d8a0062cc9859f7538b7b864264aae041114958a2648a7f27b32f10bbeffbc384ee4642612e2ca1b30ec90bde775f83058836f70498b34fc848ee1ed42a4f836117d6c00ff2f003a005a884ecd8c97ad429542300000000000316000018140e884442a12809b34892740714800f74964e58489f0983b1248c6114454108196388218600421031686868a80362c38cf62dfeec04d62ee8ae287b1cdbc2f81cd923d940061804abb7f1c1b1cf24906d237bf60ba5c55c3e83ce4a3f02bb6bc86ee24c7eae5d968b16c837faedcdd339865271366525defc5e92aa367290b9bfefd05127db89c9920ad5a61d4529dec40b8b770628a0c560b0f0d27d3c310221ff1f8d7edcbd7a9532c5d39a7e633ba53424a751852c7387c611827dde102f1d085d422d9e10a5118ee51c719f915e5a41f07148c853268f486f7e1750b5bed7967af9d1b65d874c6727249fdd8be65e7092e32382921307d6a58e957e0211583638ddf8f0f2e80ae111c7f734f0a2c6dcbbb5851144ebb1297722809a22887ce6da9c9407a03c8d8964acb6e89c5021cc27dac8aed7ec51a7d78da4ae0fdd0916d8fb15e0f44013606a65facfda0ca02741c81461456a7e2df002723a5a459e9dcd5e3ca05676587493837abfcce19d1daa7b1173fdd4bdc468bb4cdf891022d70f2d8b8a380e862a071a8157db8b687a4f3b7332bfc352d27d801ef45be0dca2a2aa7711977c5a749991fd38a6af65115be52770cd80048c04be011180f6ebf3d8cdfc3588828cfbc7e44165a0bf4614c5d3567e60f4a9603daa72c03c230fe1093ab4fac6f0ee9393f039e7db881989a85cace016e353787bbe06a3b6e9cf3f7d8d36c2953e9571e4d6da536ebc4531b9723eac97577636e2707d5e0457476b1d2b87736c8773533b979be19b07cb78e501de2a0166e7fde671d2109fb0e6820501bab84e212a5f82cdec0f0c8bdc86157efaa3fa9b8840dc8762b0331a06f1bca4e4f274c3fe1a98329af2b5766e43efaa03f01133fb7a981ad67cca52f89ba0690c41f92473f477e8839c046b0c3f81d709135abb6835f5a54ac54ab749d0044d4262085da65e435336732b857cc2ecac069caabeb11064e910a896b82ee71db72f4fa71007371690be6ffa4bc1d8d2b866fea997a66e4dc0ee2944462c6806fe1d8f726165bd874e3121ed58563c36d4bff601d1df98481ec79c70a5acca35aabab37d3a81fdafb3e6ceb68b5d70e7541cf626a1128e43da2631a335913b8799abc08842da4b7d3bb2e5efa595a92877cf7dc96cc993ba2948c886f2292199038e93ca68b3a09c4561b022d9555185b991a18de2f960a9602d2aee08f9620e5f227a257112dfd8e625eddd855d5f3bd199f47cd953d56017449241d734f70c267261f2ad581374de94f673af7a3dfa20e1bd2e74ed5c58df216083fad72114fd5a4b4719dd1032ed2550dc1b62207d596aa60a0dbb72a8d9f8b39c79fa5d900916c603e9b195e459e329affb05b4bc0d5294d30ff61b3164b35f3d3201d604d1d48c0024211002be333c086f27f658b77400261f7aea9f9917d422b31ef0dc7c3bf36a61d1a4b33e66383b8ac1a80dd96002fdd9256afe2c632b09a10cb0bcf44cb019215c5a73d7e408232e94e08c87987d18fbabc476e9a0914c708cf7a00f9580de2cd88423540d6f0d99f30e4a7617b03a2752c84ea4d80c15c3a9dbdc780fd385d5ac2533a8e482ac81aade70eaa31b6c1de33e9558211866872862ea1a7876b0ef243047b16d9f99843fc26d215e0c4976169e5b50737dbe5f26e05ecac4a031fc9fe73d029a7d831e863517cfc848e22644b050450d9c1eecbaa475ddabf1399668966a2ec8859dbaba78b33ac0c40ec08547dfdd3ad367d48afbc2fbb5f5a58a40afc1000d56354f52f651aa200f4a1c7a0bdd1d1eb7199289244dacf981e07c43411b513c2c52bd586a961d6e8f261ea8382a6312639993febfd80595720b8bf1664987250f771a68d713143d728ce9253438193a76f6d34f8af22adf3f531b943c9d0cddc889e71dcc3f74f1455e7d608c0d794f1d7a7bb2bf429a5ffb730470a8b3502cf211620606b5037d1b6a0bda16f21dd42ec8ed101ba8f69077a0b620ee43d8f4908a20d63c98145687db512a5ea06822084c5387f6e379d407e3f04b8ebf5e7c043ef367ae7d92aba9fc5dd2ca792641376d65e0d33a9dfef451cfbe572c56c2d47269c0ab2a745cb682c653ee450936c354bcfda1cd38371c81beebd8d6dc439800c2287b4dbf86ad0ce58a9ff0532699610ab5f4af65674893a4e515215a1468f26170738a049f98cc367697a15e7b6fde11a46de8c7212a3e4de12ec8192b445cf9bf6802eda55cce25a870ae9cc14b4afc23ca6d84535a29fb41cfa99ac87eb0482f054457ffd28f6a55014a5d2980205b8854df006ec9050ae91dd1d7aa697d1ae513d4e2c4bffbb55ae526c4d50560b67139c69f409988c637e2ff7f83234e3d1c6103a615e97d25d014f8d4de0d663442206ae893a6be9af551643719633095d81822b32b009f49c759880112f151dec780922bb59d2ce1ee246639e35fcff225defbe0e6e9fb82752759e38f7dd84da748607ff0d55b7af66ae8929fc66bd00282904f77855c681d87bde2f6b6d7922e6af1f3513b483c7eb1f61e34d9b8496edf3b00d8bb49b21cc32cb183a46335a41dc26ab7009ef4c8c7d52aa91a08ab8c387b921ab19ac4dd6bdb149b2c8bc6475ce6933863deb316ae5cd42471794690d3ebab46189e933c1d11c9ab8e622197bff48e8a911885095829b183a63547742ca7975653a745bd6c2cc67b36c59c406d74a725a2c5eea33c2dbcf9a1b7a4b665ea868797c46c0c0eb1bdaf96bc1022f6eeeba8d36bc8bfae085ee9c7d1f6a022560e9336298c97ccc5f0b5301690d57d03a3b7343bbd32d083858ecb6342022ab2c4906486a632e679529f34655640301b79963124300adc688b9df7b87f1024513df16dfa42e37c7a51549b512e7ccfcfeb0fec8dc6fbc11dcd7249640ed060852987c74be062d09e52a565fb8476740bf2a32623cdf83849df3f6ca4abbc532eb056f71a06711d8125e00b8ee1ac8318e1c8d9e81629af08a039551d0856d5b026bd449f9c0af48f89853192b691211ed0b0e86fbfecacf92b296626fa57ebfbe2f74c8f17b08b07c4d4b6ae8f6fc5d06b863b5d479cf54026c6623bd208c2d7b92c076514d44a651c272dde0ddd3b05fea70bef4647edbbc96c3600b7dd755f73ce8f406b44b81ed7a1b0ad41e9a0800292858dc00efb53fd8e9a9ef138deafaaba659f6aac9c50d34c142f64fde3455bf96d7e9b5aae01f68f10739451bac338453c2f214150c9ac7affbd5cf215f37f4b6fabfd7b5ce9caf62112f47aff56d7204a903b8ec3e275bf59a54191b5fd049ea21a92787b1ae40289f04448b600211fa930122aa91367ec8f9c1cb93d0ecf54dad9f89593112c8b68d371d59e8c1181166f144a052b174b107a81baabf024e25357d4aef5822b7af6067b7a04ab4facd49878b649993bf6ad6d1ee1971d1a4ac6408bf84a84276ce3b45f16265b6298bf4e8358e9266d593e868c5e5ae314b9c01b0a91f181665c3c1dcde73dd258e0a6606a38620006a874312ea06f58a3f5a664e698442773f1d6ca8769beff242dc706692cd77a2b60f10a22c025c2fd474dd617e70210b1c50b9c4742ce24590d68264ea059e4c30ff0229c0390628c1bf02ecaf5135f36da007992ab68633baa8b965fb8287d6aff254827bcd23785c6e0d017fa5b8db81bf62e3170e9e10abd6e799ea3b76979ebfeebff738582bbfc0b6e73c3392aca85fc7f195158579f4e786645c9fd51e8ac5fb7a4142d77701ab5a80d6da026846efe14e78c19bb4a8abfe8615ca9ae88713d1a13afe3a787d18530db8048b897e51e883525ad3c2b757f963f0c08c7a8c5ab07f1d9d93a10e061432b3f6e209beae18328d2ab9b6202d4861225939792626ae670673a827371a19a3ca9f566d695b2bac512cc49335e3255a5c3ee6d40c9ef93fb0d007a5cbb53f3bf3305a22b8a5249b18b6989ae30bda5310886d8e054c3c5c6807f41fbbea75af30190877fe5f91a8a8e3be2c91f47a4cf06af2441cf0a2edc70ce19ae2cf1ecdd57631d04b48781a4ec5e2a3692f60d593e57e5b168a6dbd673bd289604dba9045b7260e8fb2038caa9e072877059940b26f238ad9a4b5cb6441617bca8dab1518d63c3bff6092c5764c6c9ca648db91d7198734a57573c09461c93ccfeae01afa525b8aa18da4e445a0e53ede97da179d5a6acfd09add130b7d4901d4b1edb2b0e4972eedf85657de743ecf974409efa5f6d67ac657437270f87d403ed81352aae8135bc1e022c6740644c3b4d0f386a5278925ebf80feeef5d42345de430ee847f8f9cb94ff27172ff32cb6479e8df784047b4401238b5fe102324561cfd874884a405df77e5ad847d36cdfb4f73342859ab9dbf4fdf10db988d7ab5f20c06f347c05e6bd98689b6ee98a6bb435d20848dea14dbc7db2c76f5a95ccdca1e48fa3c62120c1334a9d932ee881056e42a97a04f649722940cb9de3b6d993d11498934ca4da12aef8fbb4d2f871a2e8e8e59ce0ad81c0af160e81fbe3ec0134299f076d7b29dcced8869c548054f09cd10084c3f2de9ba34ffbc3ffa33c091a74be55a3a8f81f8dad07afbebe1bf3c83fcb61efbb13987facc88387dc1167941f42b181fdc03e0b923a48b3874ebfd4c7321b6c78a7e7dcf4c70beaaf87e8202206af4b92efb858416f9830a6d8da5f5a8d9e6463866391de5124f8abafed98f32c9f9230d9a13ac82d4af5a7104235a1064ed30d65d100324b1b47ad0954e5431d697f8d2586720e4bcbd816a4ede8844e7aaac43368fdd96c2083e0f1672fa201a606936d866346ccaf9246f900d95b0a3cc74f3918d0e04fe629b3ee75d07872f9d28753ee3d0c71fdb20924c6f5c3d61990c5c85ce18a8824bf76cfd00ebdf8bb616510282289a326ae54de8b4e470478b0c3481eaa16e94c458d99ebde8bfbff7914752891544abd9095065828a23e7bb8f984f571a32e52717ea69596521e3a35445a7fa56e04152eed3ea2386675b21f81194f4563cc7c42868daabe74f0c647ed7f344c32d4840a3ad1b45cc36282183a647745a37fc0a23943ac77c85115397acf5aa33d20688286c3a8fd540c845a17dd7091da272ae6d743f46a519e6d5e48678d5dc93ead0fdfd3fadb911c64e0f9994456a4d1d8728218d3d4db29b727caf7d27bea67178a0143eb6266d19e77891fe411e3ff8aeb566513317c6a30ca1922fad81985e5a7d6e4b9cc6dc824715b8a9217aaa83520af156efbbf0f9491b8fe81aa35d041a0c7e09247c3997be31716b8b3f1d0d8ef593492660a59306ee7f02c1cc560edb0dd437c25cf1529f4c8faef0165e076beb84a017331380bd01313f228b0f7f88b696ee06666cbdbc29ffab4ede910bdc2dc8c86c77b4aa45357362de101eaa86feb72cbb5ae19a4563e647bcd75f4023f93990799b6c9fce225d18887cf5485e550ffb94c1573828690736832e488ed0a5ba7323f4c5453f40d10995f355b430a4901e59a53696331765e45c89e7f6bfaef6e4686bf2ff3d6aeba710b0a5568716c158ef6609f9c07a18565d83306956cb368bcccf3c3c248766e91194cf9f13e2fc8fc79556bef1e388ec78bfa43774efd91b58108597a59f282ce2584728176df95f3e406f124d3cae3abe9ab62f66374c4bed08f3d74b33fca6b45468853ac51b1447726f26ae7028866a9877b9be0897904045bc6a67db952fd0aaa600c9809678468c70080e2cb80d72091bd9fe6fda969f257d41139e0160ba0de178a68f270b68c5ced59d6182d65848e4107c1c854da7d450c5ed416027ae1d7f99edd9e4bd0aa62d552259cdd51528f3a3d2ed75fa9510eeaa8a694782f0dbd1592cae7ba127812070dbc1e2ba2cd48fe2a453598b4f272f3c5fdc887f86ae821c8f7ea7ab8743cbcca28194741fb55062be199ec676678745ceb5409f6df647f493af38f53996227ceb25a9588472fc4ba815220d0bfc8ae68fb39b500848547e14bde8d2bea772bc2a39a8f8e2cd1315f0a7689c530fe944455f9d0be539da22ca44641732b05149cd2804851bd7ee9deeb51274cb72e49f41d6a3e739f4c6686ce672a63547433e59c4c3318ddaaa51cf5df2723bdc33d56186f76dc784304c6b5621dc81da56c21664495b47088bc4bcb59c5dca8c2ef9ec64c9dd3474d023166272f194e76ea9940aa2a165aaa584c147ce7a71e36d37e3bce3f90365b648c6b213d7d49aa8c7ebe91ab3a7d528d2c4c38f4b38a54228dd5a7137dd484038d9e917721de8c425c7d9e1675fa5e58d5679babe66f6a8e54dc8a86c89a3df135439016d39a8c4f6e2a1bbd7ec83d43f43bfafeb221f8a400ee8540ad9176d9211ffffdbf4884a45870be897e6442081493f50d01d286502ca432c21045c554863821234235cd109f025f1e076deaf9ff873cb6522390c8b0c87b9b90e6ec29a5e1f5b8c5352f859907923e457528bc899d2e22a4140b765517ad393aea4983f88b948642792652cb14f4d0d6b8e4ca4902d04405861b4ccd012de4cb95054c6b905125e8459c947a1d6679cb2a5ef8eeae13a4de2164a1cd003c46d28d16b83cc3490144cc676f5de2df75f0e133439a6f2720b88aca82a2fd0ab1d55446b43eaf080d97619aac2ff124595b447e37c487b148170a84cf71db6b04a192dcab81027a8a1d0199e77442042186cf2ddb361e27e8966bef577bae34144184fe610fca8403f38930168035abc0db052f5780c38fb5e8025c65c7679e8b86c173232c6910cc8f4714782c100040baf1ad57d9602b34f87d9166af450112e5430f4a5f6a462cf7205238576083ba70a42cd3c9de8966b7fd3e4c1fc5d505cd1f3935f08849ade84b2ce056620761c35411f1c255039a40a2b702dbfcb2a177240f51507cb9346f9b3a8257f7ade0891118406efb705e6ad07d2d05b154b8f1e1dbb0b36c1f129629d5ac91ee2e11570aec509d3f091d5d68aba187cec3592e6b2fd02b2d40538505bd441bc664df822bc629f85f1d5f0b964850429a0fc90a34d40c5c7a1e17b8d3c2dc7a32029ea162087dcae00d3a077f0bfab547fa6f69f3e0b691e2322bedb61dad989da00c6ded4b620039b338beaf31cecaa1ad44773e6589b94d8e8a6f62c1997857028af74a63d46935f0b86779b3e421448ab8ae3262ecbf53d74a34f781e897e355e929fc532c1154f4133839ab6a8c8cd3601612e6495e60923022b9172d3efd1c4d7b44ff35ee63a46c6702004075c99ba5964fdd74993dd71a94604246c0c3a98e2131ed41240bf1c11d12fe8047593bcd12180a581195dd20b8c4c5b02f2d8161f72fbcf395b38e94da9c46f7fe9f69913992809aa3a745d881f67035a2c9098ee33a888d0f473b19f3f0ed970385fd2e1c83726dda2654fff7ef5252700c9254533666fa626d74732193f51e1449f27caade82b0520766808f290f1e67b4f4e222229f07fecd4cfccdbdaa04a8980c9b4f5751077c6269869ed077264e0cff72bbdcdca6dc7fbffcc4e2c18a25bb29fc74920be0d4be317a6e13c66c344eea2c97ebe11ee5a0ff0056e7d19b9631c3373f82c9911d38761effaee3839e70e4b55962a4d55ed8be5b444c06983aa4be71a5900ebb2bc826cb222f345d29f7b1763759f15b8fb29a7e6f78f3480469e154a7b28cef1c2f95cf84b7dc864b6016a514320b941953f7005654a48b3e13126f0ad07516d744691875363379b3b82fc8103ff2d0cce3e73070b345fa2937411f0c3aebd4941e635f27049d5a88b9e3f6329f7400eb26a99bd8135bafad6345b15fae1359f3af6048468cc151a6e89a1ab3a42429b3720960feebc85ffec0996362acbca3b60eacfca262379b808c26a94a7885785a3e436500a3136c7df8d37c8cae719c53ea5eddb8737b49a6deba1c2d9e0a12763d6247e798ee72475c031b33edbe34c849c15e3aca8b038710d71a429de362a3bedef0318c5e26e3ae9ac898d441e35c01be4fa20c120d748d91f15406ad3f9affe90b38455d384b70a01329d80daac29ee7e38dbd798b07b4667c7e916e1a10225d087100a599177f04dd220fe979a0457fce738d251f84e8f46e3f49b26a0258959029b14136c8a23bc57c36a5851081632aa184ca51e6088f07e5fad92ac9062daec7b5259f7cfcd9b1c25f40fad3545b3c22dd0c877ce914a8b5c3fd38cb1842edb149ea89df6da64112df2038d1d6ccd01d759a357ae0a80bd2c48787d07d85f030fd581f8f69aa8ff9e1cfef03a71e6e2f3b3ac947e96bfa925bc3b5874891f05be9d5d255f1d9e889aa440d9c6ff2ea484b39c83f44d34b996cde512db6e1d8cedfd32d12a086d7419fbd755cee5ae046f8968cc21fe2b87f542ae1859d8f8d22bae5407497e7c224f90b727fbef344f1ea76b53025dbb3701aa2a4dd5c2edd12fc55b4ec3dc16ea30818407c9d3179f7ea7b1603f5918e02fa99b8663be73736d91ef56621140c81f4e3c79611d87a054410eafd30cb8ad2eec45d46c371fee3cf2712860db891646d30ee57504cc70dd3a139ca57b1980813fab68d275a6df41c3064a31ec82bf26f1d6920724f8dc53cb1dcf6642d00d89208009aa89b6461b314417771cb65be52a0cd79646b85eb8904bfc85610f05dcedead7b836a443b856da36d9a0c3a4290936da301d72ad28fb0700b31c766d8d674fd5d2bd03f963021f55e170373e8081778169d8b43b150601028aab6853048f3d71f888aa7f0b632490e1fbe5168d6214c8900ea252b00ae92802608d949d81691fd0b6020c296b4c3057ccecce2fc7666b6d7c4a2850d4f0155f98e47c17557232951338ca8f5252d11b1afded11259c24ea8feb847e94d269222854830447d33a3a9a8e13f34b5bd4e9e608a81d2579650b2f8f5ed42a0f78d4f02fb0bc05334aeffe695c6d1e56af617ec22ec2ec30bc07cac2d25b8943a7521ac3370ab044a735b124a9314ded92f08721fe98120e714eab17fcc832a5b080ed54d68de776df2224298de6800aa62332fc0e4eacb220f04a9fc010418dce02a38bb32fda9e54c137d0fdfd8c5caee9dbea687649dad2a59f7c2f6a7aef82029d183320e6ebadd1fd3b071a391cd75451991bda52fdb5ba8beafb7df7239cc11d95b9e687c425f079944286e4ac377b7e6e9525656c4274b8349421ea3dd9b41b84f2651b866b1b985195000b2f8906a67a3a2790d8727f51316cecfd55ce3531ba89980c9f07270bb2d42c8274584c7f186d1b072d04d586769e0af5533d101aba263593d9ce85287dbfe34e5ec67614d01ae092ebed5f46ff88ebafa131d12aeab7faf20e2838590398fe3c7cd4f5545ccd928d7458ea429d5e0329de387a3c1167b217a16cf49010029c5a313b8d95bd9635621e6f8bf7d78be89606413ed4b01f3967b35cd514cc585e81586f232afc328ebca1487f71ca2698672992bca766e29c4e5d586433381ad9987083b69b1d5948c90c1e6be07b64249ff1b90f55b62dfbb1cff0d7239e98b36843ba8b906b2479762e54d20ad2050363c5b62237a825b1669689496d77a6ea14c196f9d3cdb530a73adb430cb122c9c5dd8931d7a55b16d308b3a6288e715cb1900827ad4658512ef7d07d73a360c68161f98b3d79049f96473c06be5b9096bcea358e636663462bb0d6f427ccec28557c2b5e67f91f11f3f41466f8c42b30d2299ef03fb6b77fbe88dc22c379c4f29e360d43cfa70be8f87bf6e46662fc281efe4cdfaba3f7864c387c479c583a5e3b3211662e88d8a6fab0b3b20017f7558a3a3629095c437cf63a1c455d7e5d0fae5ad6a0ad388f8b6b054044f43269625c330bfb6896f7e35f797c5927b38638527dc4e3b3c7739714bbfac572f4601df68ae3449bbe9a42172a4f436c2690d5db508b7bf67285ff2d178f8ae073ba3574c685fc0a09654f287854003eba4a518b905f374e7c322b4f14ca81e6384f120f0d569ca68d2ca1752e3753d30ca9885b716c01b7a0768b12555441ac78fad7f989fbd8f192de24a8e6058d4447080dea1ca878fbe7922beb78f0bab4daf5afe57dd0142487ca85b93ead51e9cb46f7586c3d623fbf9f63713ad19c006458c0fdababc56a191b42a7f49941048d49bee24d5b78af8ed701f775947b19112bb1bc412afb341e20ecd4790ecb714201d7f1086564a2f608aa3426572457f53b4eb7e4d6120a86e8fdf574749ac5c02d9dce6bcce3a8e4c57ced6bc1fd05458b0b8de479063d330d2d5d149c71fd420168b8227d501715aeda669427ed8e09ba2b2792ccdc14faaa220b8a48b1cb0310109a4126829b56de65a9d3e3654d8206e2f6089c7ba8a2dda76a1e1d0b2f749ba889c584775d5306e98a9083840f3d410806d80c09de758b1790a96548395b79e0b02ebd15d5e383ee83e1070d1cc72390c1550ac4913428bf31e63623391a75a1396eb628e60ce59ae2dcd6e8eb1feee9bd7ea10ca2f1f1e6ccd9617a40bec31710d7196a4ddd8df209dc1328d1280c6bd7f1050cb55303d5f8b318124f3f33981d642b90082bb77b3cda3abbf91916b0413e1e4823d02f7268fa264790a8053140cc259e681c98836bcff75e903501852b822c09db56dff84aa58f579efdf335d58f62d269fda21501c63b74eafcf0b1212086bbc738b9f2dfb05d8240b4935471ce1bc45c50c628133e0afb63afa013bd65b433ec0c8ec594f5b6c5955b83f00c655dc28bf0e9dbc05976a7f2266deac1eb81dd9b5cf7f2e28ae6083122b22715710fa67f1e43d92de2e12895c11f0841910e9b99e19670473e663fdaad5f37899dae5a1332ba15227cc1f277b9a9ab70fc0515cb0fcea742b88384aaa7db371347d8aa814e48a8d97515dd219e45c5205b64eda0a65824366481a983d2645932e16f0a23f3bbd5a89cfbff89396e6cce086a28d816a3cc90ae7b0fc3d9ced11fbe1e51f0bfc5d5622a6f8a68200b72a691bcbd216ec919d79caca09518e00153819ae2900e2a034b74b63106c6ab583598bdafe95209082835f3f753f139a18595f40c10d141c711193127669535d2092478ec8769d54c2e3135e95f46be0fbe8e4a30c1c3923041e9528d491f32ce28f130a8f8641ac1ef91d7ffc5d3693b0f0e58704dd435a9e48947b429eaa4aa4515fd8d96860b224ed6233a8213830a7ef9bf9354ad366b132e4c50f3a1a92c207b0e4407b880b57a0af5fca2189b24193f764a73614cfc8587ad52c08b455fa8a0d3a1dccf35b7ff03dd5cff3448c44e96097d4da6ac4620d6315ace47f844aff0191dde447ca03fc56b8f172de48bfadc42287bfa1b7157d0d4331bb60ca6b03df8fea3f54ef43f577d4f71a3510f13fcd69e41cb493770b78e16c937110e8e51819f57e38c7e8f3e863a749bd350571fb01eb9c4371decc4ed2f379d0664cde91d78c0aca37d916b265f74a420fb073014d1878bd42d13ff5da5eff68afd7d1be50cfa25eeebacd216447a8854d709393f55740d231612df2746ee1afc93661eda0233c636e20257b12a07baf09aa784535e283999907c83a63c211b589e941cd3d302cd0bdb7d8ccab63b7de30d68caf1a129e9421ce892019a4fb863791a433261ce011c99a953771b461d4886eefe2dd7d87ad0cd77d468960f71dadd3e9d31dcc20d83bcc0b02e0c8b9d38db7ed8d9a1aeead5c8811025d91bd3ca418f803ec9c553c06dedea192f1bc8f0ab1af21b12ac32d1ab93cdcd1ebe341b97871be3256190773429134812e0eea4f688e24ce1edb7d22135f3e7ac9e8fdd4e989e553a23fd292f4769397d09eac5907428fea74533ca6d964364ed6ab75198cd05302b2cbd010b60df2b0ac0a941b55a81a05d2458350093369a0d6b0ed5ec9d109751aeb48cf05cc56de57cbcc1fd42fbada819771e1c98864e8f54754e35d33f59372eba328717307b845e61fbd472fe5dc96629c5e44c5a3a36c8bffcef13de450c0fb330a65d9c063223282aa65d331fbf1067c01e020bb861e6552b5086395e214251176cf0d55e6b84ce1979902c0110a9fb2089015abd733b1f8b587071b29176a0fcb87f466bbbae32fb868f6025c8e9c2fd82454ee61885708104b51597546634530074066583d7f337f37b59ff2ec05783b3b9484ab1d626704361dcedcb982160f6a3b978789b48d9a9d7151b1609847d21fc9ef898d53e75eef3f6a3cd6192d101596abb5a4a1b7f2e1a9ded4544f10a73fc034d233e19e039ccbc62f294caeeb7efab74b474f8d55181c36fcfe73aa53502971a0ab4c9599626e088ac63d6abb0eb33f5de106b8becab07927642c5d648057c20884aa054078e9161048c3d99e0167de907677da295a678ea2e7fbcb8f9a75a9587b4b8aadbecc4177ef31f9bb88e9c173bc11214b3ce30bd445bafb91a2e5a0d94eec46e88e8ef6049de6802af043cf975b751db92f9e3945092d60b4386c1b2109ad18b271674f1ef70da95dda50ac597423a3e652d83d69340dc378f148e9220c71c7218c66e941c92f01641227d6bd9ad9b3bcc3b8eb2ab07d4f2bf2e682a71d14b5c9beed475081977d8e88ec9d472e5604c0883e289fe96cab097301bfa00c9e8074264a965dfb1e17e5043700dbf2662e0df8b902aff0b1d029257d9924e0777210a35cd79496482f84f03002094e0e1c28ebe0fe0dab6fcc9943cc9d760c8b5232f09d416a01a11b14d0e43f88aeb84d20471eeeee0f55ed3d5ec3690669cdf95bb21d3143a0ef55892d0e4bf50ada37beffd68c78567c2fd2d03d9904221870502dd5d2ee21a18a2b2d1de3b16704d26aae5b2968602c6747c0a579a2b4e3a35b29f7e6adb90ec4fd88d2a5613c9eb14da1aaf3136e4c9bd3d9cf97a08f9f017f29c35425da4f7db30be9a5bd3e9efcd2f6686ae224190553d7c2b785eefa1e539317c4cbc79e4509cca6be09eff7e9b46c91be6f2acbe70571a944d6b539baae871e53c080024fe186a4c611fcbbd2d0a12e3660ddaaf1ccb2a8c0e029529fac5bd25c0905aa2b0ac12482022d12188615016247800377c403550bde4ea870077258979e0a6a12c950f391555ce2e2bc10241ffbb7bb1668e0d65d270d4d70cc970d4be202d3e9dfd461a64b2fc3577c7866e4d2213b35d252909616f929c84a8774cac8a5405a2ad2a7219516f2a91d59996dc5a26b646307f8ec5a20fb7b55ad955780bb4bfe70331e8cda0adc57d49fb803cc0f08226ed042c90780700f20efb916c4e990fa4ebac10b528b38c0373bc5f81f9cb3548b290f6cb75b7d3235de8e1506033759ef032843e7aca700536268bc31464aed4303c5ffa148f16c61fc77f89612687f5183b92efb422f76023eff7e41daa26b69d61387aff2918bc9aadce26acb1a59da4dfdb3ba353c97d4e5dd3632d68f25b27f5920554e2adcee6dd5c273f2577df9857750d9b714cfc5a26c4ed1e19bb963ee385a9b09552a09983b54e452a8216ee8ff2ea83e07f7516b28703bf3f19400ad4b85f98ee01b83c111469ff42f4e18a42e40801bcef1c9255ccfea23300c0b37fd1e892ca2186b526188f98a53e2cc39cc3ec4892adfbcf31f619adadff1da4e839e4b9c378ed88cfe0d69f19bf969685429676f2e3dbef30612e5b9745822a8533214b1231712a40270710d99b08b83fbf645b29b53592c08edddffb278c89fe80391151116d91fdbff08fa5ce2a768ae7b3bc1b5920a543d65b6f8d02c2695ffb978ba9256a78c92377c8ed9ec70dd1fd6e92b0125a1955729f7462ef303e8bd79f829699c9f25eb0d4fcae83a1a0ed4de4d7ef6dede2a82f6b931c5da9d09c34b5592f03e4a662d107ce27911e4430baeef1d909845d659d4281f3ba26eabc043951f97c478bcea7131998f51be4bd54c4e743e0b1294bf363bdced9d389cdd7bede86bd8e515601a70ab8c72ff3aa5725c7b7dde4906168c4851cc0e27511e6f70278edc1b9197210b944a38c4aca5bda9c60a39def30b6a167148662e04ba5b73cb7381fbcb3b259a85df96f835364f15c91a85b0fa3784c72c27e59496408974f76d6b0df109f3a27fc77fa09ec776244df3aa1b98d33f4aaacaf8a8620869b6b797e43af65ca523bdc649c008d8ff4abf83883b60388a41cf0dacf70ce9e74201e03352a94c1b9d510b213e56c24cc1acd987242ef153a3abaa849165abbb2c469b97bcc9603fe630f0652636566ae4763576ecc053eaa25601975fbce0aeec538647839d5a3bf6cd78ea5ec37cbdd55957440f69bc2edf6ff523b3b9858f9905617d15de61e0a3232a060bc6027c8cd504498da7424ef5d393771f3c75043474ecea4bf5b56ceb8d73ec3242aa130fb54a973e905b555c6a88aeda7faa2619c7425fa39a64f06fbd72d7999abc58b1d1906545740dba912c6fcab9b40d7cf764303ff4309f13d2c7f938d41760cdaa08c0c473f4dd1b5d1abcb047f1100b658d9efc5a8d635af96ab329a03d5a7c0fd185c926f2a1a19461c432dfaebb010a47c753a3d67a374361288d8fe97e061c8066368bdb562f1af686344fa39b9071d9844d624de9ff93e293c0fb3b2ef64a1cb1c8423064a69b6c38a589625a2161a72c4bbd1cbe87d2a8a9ae02913cba600160db18ec286e4bdb15d0a8e19a50150719469f0c8da5276f3ab7e1e83156bc79add8347a99b5d2dc9c7dc1092b35bb8c912351086e28f4cf040373e2228cd6a85580479225ca12f7efbf225dd1a068afb8684b37bb84906a3fb0799666311b01213c3e8bbd17ad4ff719adec5026463ea3d63ef32e78d3378401ea5f210291e5d8e73f2b5e1a411e1a6da6afc9ed994c2d96f6c12b14cb5b4c973249c5529f1049f2040b23a6073fa55820325c6015d77f2751ddaa259d18cb7477c72d8e5b4925ba1832130d503585233c638b3fd5c4c89a770914ed21dccea5273199798adc8163c7eddb02596028d7f68dc19bbce0c1f7d94d61e7959373f853f0b8f84fec5173d9e32ec7ac54054165a445e1341e1f86947cb7f003245743bc77310f85c4218b6bc6ba2a24365b33c6c6c9a9a6f31cf4c15841c8e15a4e1f8415382d78626d9466b804dd787a5d1dafd33cf4d00338fa1fd278f3cd396ceeda161883001cd739ccfa07308453fc2816a1ae14474b42dd8ee9bdd7abf9ae445076d605cae8474335adcc1089d3b5bde5e9d546b456cece76edcb11e202e47d07a63cad38427e7f37c7573f8c1009f61c4b32528b7b7f2b9bde72477fd31f0daaf22da5481270f877aaea41859a09fc8f4bcf59043f39ae6ace91e9178ae03ab25c0dc58970c7f7711fc525c58c08109f0743cd696e04fe9074a7f48393e05c423f219ca3864c536fa2c1819ca0b5a12b970e2b2a30abef9f139ef18fa6338d50a7f25c54fa425b1a7b1be65ff3eb7f5b2d4ec3cce1926a3cb5871a53911323a2dfb00aeb17a46bed06f3bc90d32011c8b6e946824aea87ece2ae471cdc2940941494e5d939dc9fee80789f193f331e4cda9a8a7c0fcd9df4c7615f56746cb7dabc39d7bf609e9285ba0843ef14f170432e9fa87932680639cf98869046d213fd345fda5cc425773a17c02bf8a866fb85361c3ac5a0b32fe70e541faaa97de9431865bf4a8323ff70a2d5ea554dc50c96ae58e4009662718c206eff223046f4b3a586909110288f17f968b0fe6df5aff22d937a06e49694a4adcc041da614f8a65a0f3f60c34a914a6ceb9b55cae040dc09afebf80eb95760e579aff0c646c37b07723ef3eadcfbe64a240850d34e5ef037b84c40aaf51051d4f1650753212fbec42b96692a76c1233194e0bed1fd5447b01121aef92cfa4e20511ceacbee4321ee7df2095323b4b2a43684a25b94aa2441c90247705c749fe9dc849a5c76d35a42839a75a8dadf169cc0ede7230acf54422d28b429b2496d1923cf3d4bbc0fd54da3ac70c3520471ef92dbda7d3c2ef7725c244a3707af58419ce5e3e5e899b49944c5d0f92988607b2c1450c40b2814a0a8c327f875a6275100c30523e4f71f4df06c6132ee32f139e150ce3881409a60bcdc57a9604efda03c84084e007cbdc31262a916d6ce9bfe19d0e2203285d6871614f28e905265c1ca1d4eae62472c9f0f3e97168091143f6dd41d217aca4dbf3753b9110a831137ed2ad00d3706cc0090bd785e43fa6c2ac5bb7723f5befd3d00e9796c4e3665f06e088d8887ece6ab7be3c3cd9cbccf6e3193910c6c6f808dd2ffcbc5aacff7b67b305e2f30bcbc67bb7d8e3cbf43229248b52245b4f0366a01d285a0d92a96a5e599ca29d2cf0c6677a46d9baf950ff29068b9f3aee0614261929ee367ada836a7b89303b8c2f4710d0ade5e0ebdf91626ddb070ffdab17c5cacc528e8702653d52c4d1be96180475e55bd2571ab52fd9501e89eadbb35ff12068e0c60de145b863eca4d231ec1c05065634b6d7bb234c591be57996d414cf3a2dc6e5c2f0b8dc234ce2f197ade6e9d6f9e2d5c9125a9be5fcb59447358a0b005f36168e2557f064f8ae63f1b2f0ec6872e9f5f26ecbf9c81b092b080083eab678250dc734b64d0ae5d0b8d57c0221dbbb5b6bdef9f3c898a841cba8a09148fe833332f7807ff928dde30bc9ae178d69b4a09cf0cd4c187724fd8d733a80d0db613d3e27abe6fccb5ad06e2b037a90f894956169176051409d6965f2316816ed057f69fe2d51e5028aa445b2357c4fa05982dd538bdf8a3061c0383df88c8bb06b50c1f955272df4ce785cde8bf266d7aabfe06d7bdb4a2d26e4cae874035f820126ad91196c4a8ed413edc1907b8b1f7b0dc7ac65e7a679ac60ce8d2033781b34cb98025dbc7985f648265dc432a4baf9025e5a300f64e9c6ef10d6be2a73bf617cc00176299ad461c1e43be22673ef750fb8bcaa2a539539bb107e0307edb98002df8fc87aef1df1c1ded41b849d6b9852f47ff4b4d545bd9d808237200804ea4662c37dd5bff5c5c37ae83d60b401377719c92b32629b3f9a65044d9599b94b1492f439e93caaa4102093f8ca5a92cad3e200309a709e3c4d6020c52e2dc8a32b333fee1ad10b11aa9e5d8b726901b2fe2051a8f0ee1436f65b48111b74ffcf50b55198d139278ba9523be3b4c228c94894c5a22fe994a31148e7a85a43bfca06dabe3073e28db2620702660750d554de5581c8b70fd381896731ae16267ddfc09b628da179ea1d670a7659f0927f75c6fad0a67e21af8aa072958b10c8f9e9e4362dff7f547fcd1699594c5a94254336aed05b6afe24e5058a0e2bd1b252f171fef37236e0aae53deb2ac0bb4b4012f0785e8d8ee9e93a655a539bd7b82ce6719b35977d3f01c02be9080158fe59964f93e5dace4a54becbf22d5ae8de272189f43f85e0817b217023ed20c741a612f09a6b30fccb5a1dac16ec6ca8ad809cfa554cccc75948e54d077e6010585cbbd698ecf1607079a1b8825e8747486a8558632382e019e6f101a8ea8c0006adac6b81d2e609b621bc4b07cb50a71eb4923bf36d830fdc9713481a917af5d8d7f25365b32a8d6c4a1c14d1f6e5f88c3ca94d12b3c44dee3e34f0e0473c468a0475588f692541e2159ec25daad2df3246fe334dbdcb01f47d6476178b18c98bbd9814cc9ea21274b847bf6c175db0ed29176d0671f1821102aa2d58ac01b61e3323c39b7a3d95f081a228ca22ddb0c7602a1380182438cf1997f2050b52c15102c90673ebc4f9281d809e4119914d36930517867f707f38b9d968d980092dd153bdaff9c3b4bd8746a37563b0c340b6872ad40b232128937249284a097a49877cc542f3d2030f6c538986009197da440019d3567b222ee94c72d2942d023f07a45dc497ab8cc22fb3c1f42826cda7b241bd35648a895859b7a9090e792e04ea890ae6214117de01644eceb91087c836c896bf4973c2d8178c4a30018af586f50a03a9e5a1613de64e4b36fde2471c847f95f09d0778253a44dc9545f6125b2ad80c5546fc9263fdefcb482ada2d2cf22f0500b4b53238f2a5b24aeb3d30986897cb554bbecfcaf50207dd3860b5e99cc6265d6803e364961892c040271d38b5949608c35452450256a8a2eedd636c3ef84e982e05155a0782e135c31eba651ab3aa6d6b7ee94a2e2360181e3d8beaa94315c7c65183c48c89209662134730c684323b94727a728b1f575a5da40be1d4681af0d3330f10f45dde1a2acd0f9fb120fb636007fdb2b3b2034c7044e59e82a25bd664004164981d738816b0eef530308c7bcd4ef85cd5c57b4828143581b8939613318816f3a151126362cb99c29fd61e924211b8a80256d19806c2989da632c795a813c08ac7199b0e3e1ae96f23233bf2e335cc704862fb6c2fcfa02449a1e630efc87c12eeaef349a0244b98db62510b4dfb169fa8a3a5fd5952f7de6870bec39e07239eaa4bb82958870fb1198818a730fa9560708b5b05c555f5c9f59657e7843a556dd0328fcd5358af513a3034e66f969edfd5c33717417e195265be52983517d38f9ed022c6bdf3dc4ca93d510fcd8af1db4dbabbe0e0da255224baf887b09b123d8dc8e8afd95f52b9390b531f3b361fba16881205b4c775cf8d20c092fa084ecdca0091fd622eaa659234dfa680aefe6122d8ee448386c31fa22efaf16c1c9854596277965fc4f1612ac0ab950271854cc7f0335ddeacf3e10f7ebbdb52a1f0256896c7508127ed687c72e1e5c8e54d5fb9da63a96039623191aaadda9404d3481bfafafd11700ef91de30f9c65227b2db2b3d96bc71403d859346da0beeda9e8a231021b5e887e1ff6788949546712cbf9918682659166ace627c30ec9edf7adc8e5fb9df42d80960a9fb8b8461d2daa134782a94b4bc7b01afda1b949b655e449ae66052eb3b0237f1ec585f4d65f0ddfcdc35af695e061ff78cb40d4af326107338c190b7fcaebc255795a90a3f3c02476a94a66106209edcd06f543162ae40aab72b89dbf78a8a1d322e3c4f28cdd7f523eccb412d5177065f790cfcd1154a738bca1a2733fbae6bc5a1c52c9881a7931f7657cdd56ca978a24308595891b46a51ba2eb1ab7a2de09bd129cb9900f6cd9c5e1765ce9b12e9d3419fd779589a8a15829599b1eeb159c0880693e6f5a1659b0ddf2c3eac49834e7f0fbbac08789e836422e9249a34e73b4e192d0c2ffb55bb57b2ead2a4a99ea7865f2ec85cdbdc90a7c742322285c70f7e3e515a90696b17b5d53169c85e30a42b6043360c1620a8647ada1f914871c2631a2a4818a071368ce07bbd9bd79708dc72d861f2638da1ce5c578b7564bfbc02844f2699bb798dce4dfc2227932496967923dc8e591473cd10fadf67eca862cfc818f2df8689905da649a17fab023ea4b367f15b46caa24c62bbd3f0c20a28aeddbe2fcaeef2bdec528065b4136a2f45f5995744e03f7e8bf2ba1e86e4d32622834fe1be5977aba105793d2781e832bbf819dc26cf2c2b880cace60f77aa06a49c8c7255bc3b10e19d7d551c4d0f37830869588220e976879b2ea4470794eb3d23ac4f1a6aee94aaffa9e839519d36c5b615d179804cca7692e815cbfc6043463fb3d823091121ab62195cd303d3495523816408eaeb74c6f9bed99404e1ee6555b048169542530aa18e56e5778764cf637621ecd6dab41eac6414dc28a0ba950911695d630ac033403b0282c18f1265284444984d8844fe9ed881fda4d6e0882113b0d678f095b79c7d95c90fda637b3142cded6e306331a52713ee5e240dfbcfed4f90d43af6fbd1ab881c02234d05fbb0ba4fc8a435f1b89a489421b1bccd8c7cc5bc2404b53edaa59a948e6e113401114f1ee3b4e6b8203e1ddcae163e997465b8291fb933bda52eade31556f3a92a19a75efbcff66bcc4477e0ea0ac531120aca5311741ae27c7b308b7ec0fca03e3d9546003d9dda5bd0083128629d4373259dd32422df8142c6508ef50f8c95312746a8292510e79cc9224a3c28c1fe1b464d8f2a7d4fea8b3e0e518a5ca178fb8dcc443372a1def353df5a8e9e92c122c41de821f373cbed9048add243b78f1d9131e40f6fded28ff0c96a8f7cd9133ac3d1330ad52adf2bc710aceadfa4345682dd0c217fe191cb11e59391b7c339909eec2535a30b1894fd788c8ab6498a63f9e60f2ea9f96eb89fc55ca081dbbf97c51a3bae91a6762378c75f30b709ffe53caf2694b26ac225f32ae805681de17dc64cfe32e5e336ba7ef03538e798f48ce5be2a3d6e642f0f7377668d8fc13a57177722df92bde806a96075d9c8202420d29f1266658c5dbd0bbd0b742236dc75a812837084292792559988501ae79033f2e176398fd4214ee4761a033e268db64217f8e51e80974688d967f2c599278334cb9a48eb80eb744d178dcbefce69222261913061859439975ff3b4dca61d7998c5f8ebd49e9f6c72769b0a5b8f936e0041a9024fc6a9d7912927eaedd91ca0947cb8a349caa8084363482341d224f7ac32446cdba8c8761025948998721697f2580c52d73b9ac6d4453b756adb319153b78f89f9d0dae5418624fcfa9d9848a3fa10646da88e9aabdf86d3f78fcfa9467de7d5946fc89dbe0d3f77453bb9537539bd21dc614559571e7fdd9a1719a7aa81e2c04420ba31c7583446ba75dddcd4c177ff6a77d85f61125e226ddb606742d45d0a8a94416ddaace01d65afdabe38c5db2d49853d9b3bbf7d241a7355b20877e819c035d66b8526de9c59226565559d432c3ca459872347e4b386ac7747bbb11af0da648b06cef1a2d84f7fe6856f3420c89f03b674c64744b88c8c53ef9e0ed9a1eea1ac3b3bf3e9d93ad5e506664466fa7a2c9c8170d95eab0309d9ad8d8e316cc97224875aab604e95cbcd00f91e19a71ad7a830da44c31381e229107a75103aeb33ec0435049520361e095df30d562642e3c09c10d4db89da5df78b4d6eb1ad975c0b0e7195acd3c110123b587583a245a75980e37521a071e923e354e6f2401a8364c191dbf351f14f7cccce93716ab75728d4c7621853c9e099e6ec76f7aaea16cb6706ac754aab577855c28143159d7df7236f5447a824dd2265495b094509abe423493025354fd0bccaa500d2d9ac21d1447d277a743fd9d427ea492aa9ac62a5ddaab730f1c21971fb040cd9b51731e97811cde6f668f03c8146f9c40f0ed7dd1133370d7164fd5435ff9ee255f9aeeb2af4051bed2baa541d78566ec1909270b3fdc0092a30957dcc6aa54a8392e9ff56370a24527d99dd54f3737722f7de20c256d258ba138a21e44624d3570617d1c287aecdc4446ddb50bb4704cef8b19de2ec6c0c278b4dbb52dd88e45c2fcfa85acd32c1c0859fb57d9e6574c1611b516990f000575fb9f10bb11e32687c25e6a404f9b97cc2839c9d52c057768d515635bba34de96dd1b276d63b22d23a0365ad112edb7a16f65b13448ceb847e9da6719e013f1ded7c7bc771de235fc1ee2f604db305aa74146a500dbcd10d1b8d56cfc9a6d74182bc8e889d8c50cae717186601d2ea1f33998a024fa4d9489aada9398a043f44f14c36e16c992f52c1120a044fc90193cd5b7edc2fad087d3010542bac273ea0e73dd5092c270c12a0b85b270a6d87a0a2d427ee0e241fea0f514e2f0c36c50917577cf7970e6b2d0e3d0454721a4f55d82b9a48382e699cac80c9827b45be9141b4ca831e89df1415b10af77afe6494a24178a31459c9bae807387af0a27152348b1199a69d91a139ac377b20b83e88bce6f51b5a17cf643827855b0c82c57c7a8599496244d0a728b42a690eb29f889c3a7f562bcd0583bedabe50a8941c5d82e547c8cf59d5cdd3431a5bb94364d2aca72a2fef89888d535410ef69bcb41dd9805cfe817aa4cbd9115e9d84f05c5a9de85c4a7824632a01f625a0110a1e347072750d9654181b2622b0a3ea4f983b8f4e146f283e898c2839dfcbe4235a629c7b66d4c519e10da8ab2e9d74641b9984687289d24b2444bd052d79329ac393889446d8f45203ca80909d8693c1bf96241788c87de883d429618708b200d8912bb2fa3a083b0486a61591c91d527dbe49406aa2232fb838559142c800c20a036b4705d0e2496830f2c4af5c1cb1cbd3a31c28d0cb3244c96040ea3230c87696a6d0bed842482ca42f4fbf99374676d26eb06fb341c46984395e63289e81f3871cd29146213ea65d0c82477a86c3cb178a2a33d26e172b826aa26f69818b65b0d3567eaee0ed907055ff522e29241f015b8fda57c8a8b24c9c1ef281c01097b27196f13a51a03fdc28198139ddbf0be0c732b2f1dfb041c496565e43508ee919a2d826e22cc82b21a9b27b91296a746b157a1c81c82b172eec04ff681d16061d19942a06c708442051ca825001e2e3f8ee40002f254d4500df0c44e9eb65dc1fd9163a8e46a622865eb95c2cad81ed623a1cd833da7bb7ec12db3b8e1dc901e884e997cf495cdec21a156baadd4f1ac7f9dac5ca984461aa5ebe333e56224d4802d597e360e8471e4e1bd39272b3a963a2733aef0444fd4d053ae9bd731c9f8e53857e0dc3189e67afccda9e6316ed98a9fa26f260e2a0d46861a0273cd37b42f11a0b6c22d4eb5663988819ceb1f0af5eb2cca374cc9eeb3f1feaf11e9f45fa983ecec0ac1c070df30e0924fbebe558abc6911131873d385803d7c42d8dd5a5c4a9babbb40581177238fb220a8963d6aa9e006eca23f23a7847523598122d60099c5737be8574ac48c21aa2bb964fe0ed7dbfe9664435398ddfb64f662819258c8956c89a0b6ec2d2f7d2e0fbd3aaacf7f488e233e736e0863cddcc036178f1e801e96935bc9e02c76eeefb3d3851b256eff648869dcf1959071c40e43be7db4649740ca43c977d6f248d756a2dfdb8746c12448b1753597f9ce0ff2250459996a0124ac3429f7f6b87a64c11e6e7b580ab7be78431725888b4cea81ead80c2f96005f7debde973ecb033ec2bb683928e95aaba3d06a8db8a0da2c98a88d1036d198fda248a84a70d50e7fd0703b338d9e26c595540c7a0e70eaac92b830f13ea428478f0916c83577588f9cf5ee8e5f3b1b0bdf951710038be2dfa9a7b0242f20a831566200b79bac1511d2aaea200124a43ea0118fe9b84d7782c1bd505617c6d26743f9a71819ed224028e071dbe103281626fa19272a48cf42e079639044c0749060cd2f1e5b32892916c633fa0825074d4a403e773817d01a7d6f0be6324930c8883fad705160b10bfaa054468b10fe9898090889cf9394a9d1e7a9a331a1c1bf27e7491444b6657447fc5561b116d160ddd388e71f146d8acc235dea8f47264abecb461110814e8719ba349909546cc1e35bfd2a1989d080ab77bd67c0048f03678f348585eab157dbaa1e2ae7214bc157a839e931ae9119864bf0c63405497047c511b215fbefaa74273c7dac395e8b627e8d1efdb9fef0d39202854f66bf7e58d473289cf4b27e040bc2a830b5597254afe07f072859756e15430eaadc1c55ff2cdc826163907925532b9f1db00b4b205c115524dcc20e127c8d640bd5f355b53431003351063df1aac7ff49f1932109deceae0989295c28fdc0decae5c301288ebcc52ac9584d01b508875f7eb04b7d423760c8b640d03ece154de6b8c64a687caa63707d8befcf7c6d5defe968c49d249594078204a0c855cdf8bd0685d701c17ab96e44d078391805df8e63dba3de784c7b859394f9ec34c2471094dfa5309e2314d540e520d95488ca6445356b9f1e1d1d39be0a712c105f3568125116e539022595dd9d12b2329e9ba877808a90c945a7ce416ab2c7b76a995477816668b2d7902311e8226b776343ab2e687107c3777f3cbf1f1c82b650ce3e41f50e5f1182fb23ace1dc4fecf61252ed0f6fe9a00b1fc9a3126bddb1c14ec46cc449441a46c208f491052c21bfa5d6b794cbdfd11bf5f816a604a8998df19d9802b5045202a8f62f27b25e3d800dd0a88e0ba98e7c3ccc5f2e09983fbbcf0c831411dc88a20d222283e39b29af692a107052f40441a0a557a2814eacbc391f08bed2850941efc3e97a61ff07d13342bff85c787b6eb52f6335f2404e434aa53e3220b6648b7ec38bad5c14866a6cb9149e35f5ccd5bf3387760f45a2c795311769ded696e8a5bb02801d32255be65050cfa1739bad5277033ad77031bddfe100826badaefeea906da54a3c734df1548219ae0b4a1610c534099bd4aa47f751a990ffa0f519a24296137c27b718a0b344f01af0a2dddbfe2774476855b3c9cc46b39494fff999fd68a9aff30b457df39637f94c6de9b6ce32127b903839b116dd3f7507703760ca4dc3341d679255eaa9abc4a98a4689e0bb35e61567b711202fa9e2d8fa9ac67567b89dc2eb3cbdcf411307e8c8a052da249df1394b608c3ece6abf507a2b05d09f95df0854f7c7fa0b949deb642de419b86cd6ed8fd1516d1248812d26c2f64ab1168b6d7444361fff5d82434f59a8a68f2b5432ecdbe7c288f809a114d96bf5cb6257877577cc207df3f196cd47612d104331646558b7374aba217a48968b2147a08cda08e48928826b9150f032f72f1c37444939f041ec16c91b0a3c72cf0fdd2ac22fc0f428868c2dfcf61e4e6c1f2832857ae8474d7f8c0a7f1e1e2c74baf41b77db1f28a683277a7e1e64ae5d39e2ffcd75b652847878868a27fe3d958de5a96a7db992c5f83d4642c8e1607784b7df895f3d46b90099c7a344b8b4fbe3ae7974e13b753dd7f388968a2cbdb3e5d95310e949cd6f739114d5a2366627aab649b7bbaaff6403c27248d15e696ed417010606a584493d29b0f8dc51dea4a07024e78344a153ea2c9f131fe9c3025aa4cd11e1dd51f9cd48897971d9e5d4416d04890229a1cda9b64c71d04c42f839ecd8d1c0002269a1a859026f6f3c80c413f38afeb20b6799930d5034a59c8e371655723d60092b4ace37b355f30d9f9d6436cd6a6079a64b5d421283682583686a1443082f2a2253ddf0bd501cb915e62acc4322bc6697361492c3a9f88bb61ada2a19720e6d14b56f29b4204da9f0e5ae41591bd9e7e81a2527918c2bda5b0d6ec98bc3eb359a9e5e844acd221f1241e5b8e59791420d6001f9ad465ddaa8da8e2d72dfd8af31199f6793cbdbcec38780e53b296fa2545db920168617cf60868b2f9b9cfa9a5a15733d128c6a6dd3d99eb090f5e68a0091f81846a7ca101e0a63be810a1fa9f7dc6b645c69e1ad0056efc1b7000ab1e10454a5c8bdf1dfbed9c617efccb09b4d28b322d0449eb21501f788c961e9727c2f6ab2fb6f16d7351f3ec86bb1cace0f047ecba8a1616f5d2657d49f4abff41033ef530e615ebbf1cb258abd3d3205b564969d73e84736792e0a5a6f44e15cba5fa8e2d5c8a70dd436c7e10c61119666035cacc1582732d3383fe388f0bbec682519d0038580f5ca7cf2f78fb96b7a4ca525707a631a02b2a20f408116e8f53f603b499e7e021a18f71bd2569a40cdf80a47370836b1b0dc8e02791145c6dab58caf763a3236d0b04537f410905052525113d5e52118a8a3914e6dc505b08a47256b5751b6da974f28b3b7f4b7525be0fa19ba69aca909147d335bd27dca396f1e24506e767644b6259b3143075805ea779e6bd4444a3a045bc23065d581e41b85e2f0e11e8fcb3d697a8cc70557f313f882c177d521c0ce4f283d723af1a5c53345cdcbe47658f6d619fe8722ee1095138ead5df9bad1b3cd00196a65ed03e663118ee7b64c1100805836301517608602c0263a471bf0612e612f7242c1332a8eab38882068e2ca69c0ccc6c0d58104c5a85b87e069b8cf6cd9520df8716672b322082745eadaca75be8483eb61bda765580e277a584c61b15a795f75aba210aaee217ffe7138428edb189028841540c778e07d3e9fbaee1617db04dc009f1d2fe2d7a04d9f4309bff3fe7d37479f3f17eea1ce754742dc378bb4d881a6ca93b2e7b8f5db2ea427e1693937c3a92e434f299f548ecd758188698c3ac2f43c501ee0db0843864973214bb036b8ac5afeb046010138c9d18e820eb3d6c23a2a271dd08c7bb9c4db4eaf20cc14a1856d6712b11a2fd342728de1eb4b2efbed2526c7bc2e62288ccd328cee7b71c559a1e2574ad02fc309fa377bfa5905e8cd32992757deb0dbc62fe46297eb04e54f3de95c9efa10c7fbd80852982b5b050990661e80b1abb6a2819f9d6bbcdc011fe6a41b1d08df1908d6e3f9056fee0419a792f1dd0a4fb83d1332a3752a9b0a5fecb061387df7d038898d04397783534ada24e34c9bcaef81269f8f1beeae702689b88703711e0dc55d5a8db42e590c84fc5481f8334bc068558e6975474467ccc8cfcfd6a146f66e2481b09375fb0783bce1ebe7caada3e2315919a23b2d4b2437a9f8f57e271f56e0f4aa144f696192f657fee8d47ef321a81ef06873772fef8f6212791823bdf32b04ed987dcb46cd252c36cd256bfcf9e7349438236cd319c36f68151dbd309559bd391585be83cae2d7dfad7d67eced8c63bb9d9a6b1481f446e64508166d7b8d97852080b1bdcec4d2f6dc339ffe528c9ef627acca716ba2d1dd8dbcf374f9c9fc69068635279e476055680872785fcaab94392d9c450f0750692dd6599b747ff8f11eff510f9b673769091cb86d5875ab21d72786f520e26cd2315c85cdf66a9e26f5ded05b2606929a414ec2f368f10e6cc95716619732c662ca52a0bc27155c98fe031dd991578a3df3f589e2c9a875ac4aa145ea4a24b05087fcb5626fdc24517864fbd64e9e2b80a74eb575a89e69d1f5143262ed14897e946d460b124810a55f878fdb46a97e3d8d116477a49030d117bf40704b903b474988c3475a64233b66d3f5e4adfae62072047cdd26fab2608c548fdf86892253e500cf29b760c2acc9c98eded37cf24c66908376845401ed451842c350f2dff9cb6aefdaef992701939516e805696683ed7a8eeef4b7f9b91beb339d60e428361830c2643f8525b9902213b538682ab0ce83a297f926ccc9580f7e08a155dc0131d96d3252160a253aa67c62a2afb23f3eebcf95b523257b8ad4b7c4f1b9388a0ffba7b5c0ff1ac07403eee617e89a95386e48505628428e96026ef19cdc78ce089ba8ce8cbb5a1dea8f86dcc32d96e585b52b455467280c3756f33b85306ec39a79366e951af5c256afc992707d458c0e4cc24a6701b04eecb0d6b662627464ab81343ffcc49b5a3ece95bd4546eb92b20e558cc36ae88bf2109fc7bf0dbcd9bff510545b338265638afa2a0f31086af9716cb8c38a71a94c7107972f53928a30c46f9a9e079cbef87da3073604e6f4e4c47c7a064f018ab43af7b992fe09f9582e7565790ea0a75219009df86eaae283a154daf79cac64c89585b17ce84e075a631924061611c9a672be4b2af85cf7677a2c95bbbe773d7e377e831576e54830f10fca9043e8644410f561048cbb83902203361621233899982558d0078a3bc5dbc01fff27d3968842b3da19d4052bcdb236aa265266b8bc88e2ddc21bac91288879047a0b7e46b7ca2e865098ba4d76ea015a5ef577e9e186d64bdb4b48994294c10d40ff50d6f7a2476c712f94e29254d502a232cdf7b0a55dffbaa6965c378ab1f37393f2c110ecc7123c23a1aed709e0d63c328e2478e25f280b08e463b637dd3e9b5376289a05ee3401ba60241ad4e279e0eec0c095381540bc604d62b401bc6f4ad6654364c15136a5ea0423703b4a62040ffe14646174384e643d524e1d5a4421d4a8446be868f54844734cfd53c4d2accf135b526c7ca084baac60b6bcadb469ad53646abde6a884a95212a552c11eb9c9744c879db980ac45b79354884ddd7d1c8d7204195b0b64a4b24f534affd19db4a96c8cc36a60209373234349a03a1e5299ad5e64605c2a5386f1b83856734e25e6319bb37e2b141ad8c768c6e4c36dfca28f4beb09ae0004110959a41c3076e0a13b081d9401b13d0bad82eb68c38dcddcbc0a07ef100a8698e05e85e6b7d859b11a311aa3201d66ab5cd3dd4e77d4588a0d6fa99883043d334d389cb07388e3b814374c0f33c0f4409b10193c96442a582280304c1d40c1063a452a9d40c8dffa04618751333e382042860240a758c46dfe8262882662685024fa6cfebb84db3aa6dd3b41a80fe55e3362ee4a2d6ca753e7814d034adf3348d0a2a388ee3bccf468d072cf1bc2f65d25060c950c3091316b6da2de0e864a061835aad16021a3170d7d15ad0c3c6c3383a1967903112851b0246a39b33c4d800acd5dd5df5fdf8a6858c14607103b00e119eea1061d0902df26938d6ddf037bed7b63636326ea3b88eadaaa02e5a91212d3b26378c424dc7dbafdf79a01682e6a56ec69d51b3afb9d1a9bcad0d7b03c4aa6e59552e5db422415f68935a19fd832ba39b9b9d711b5357b8b2f2b6311548ad5a0d97d0c84110c57b1c4918467c1056234b3c873d89015694456956d3ea157505d7d1aacd68147aa10583b4223445665e33bd6ba94fc3f94e0fae8caa17e3e9dd823fa3728b03ae8c2a16e3c97b5baf005381d8556b15a4e168a69591a7316a1d8f2d7225b6b4b4b4e4c3c3fbd8307505fbda0fb9b2fac25420f6ad689dfd1a2242a315c410f1ecafe03d3e6aaf1511ae9c8cc97669189da8cd8ab160ea15368c182be68bd0863972d8d7aa166edb97834b35f13147cd6fa81c3c3e844740ca870c3c3e841fe2b1aaf9107e68c7aae675fcf7bdfd1eac391efcbeea79b6eb348edbb68dd3b4ceda91cb91e3ebc8755fd3bdb53735df3dcdca5d47fb1aaa524ff348349f519d3c636ab58da9402a1315136dfcfea46252c7ef4daad075b4f75421a83eed73d8b0d058ae07454538200b2322f0041a60a6e87630e1036cb060872c44906185ca053c80400f2e40060562b0e980258a2e3cb0e4050db87859d2c2071e3840a412e4e08c2f46b00232b4cc5a004607c618e38305a61023031a9625e26001103de420881a2c6d59d050820728c8e2800c1ce1830c14f1a5861f8a98401933b8308202f60d2c50f4000a3374d0800290f862dfc0b24515330023c413646c9146189fd7719b666d0e46e7388ee3b80d023c285102279608a2054de8605bb26308c106983252588102387a76b0012eb088a3054790a0023888030e295cf00302c8b8020540b82560a30a2338e0c41309d0e0a85a9a5040067858c0103df868ef2ea6ab4008c6e73cd7ba0b18c1438610dd057c20030eb0eb3a2c4970918006f460812c50a002313ed82e3081af3c088a03cc0f4c3082207440089fade3b80b7411c3fb620dd4a7f9b7bdf7de7f71c669d3e1fde03c8d2c2cc0c01716f8400b996ddbb66de3b42a38ce3f4d4c17361ce0c50721de084110ea124558c1003576e0a287d04647a863dbb6d7c8f81db66dfbfff10fe8a28d2f6264c0c40d903881a7755dd775a90a70d1be0dac9ff6d950c6160fa081820e84890110524058b2c1113288a20c0bc008c2dbb6cfe3b8ee8b2e5027208288534ac3518527088db66ee4346e749daa1ab9ed67dcd78cdbb66d1ba7a3d6d5576be5b1aa0a8eb51bb7d754db58b7144650b3d656d7c019fb2bfb7d268f89aa699aa62551022fb40975fc20f3832b4664e08c2e6ae4a00c0f3e20059cc08b133071c40d2c1046f341b6428d2ab8b031051c4b3ef82101111c18e30499312820c6d4450e8c10a1ebdce8c1468d1cdae7f5f0b82eb4e9820c23787491816d87b60037c608820f4300b1c5082e3431392858a2880544c005327040175b00a1a38b298408814b8e2e7e10a2260e20421d2480c60d1f66c29c91442acc05904085b1a208308c97214e617e40c2c4051c417c5cd86008afe3b880810f1d171d5882e3a20b22362e18a0008d8b0474b15d1082d8d28387911b9d0c2c1ae0838be9035305b76ddb6642853fd8a2013518a0003014500232c004a1f560dcb6cde3c081112ef08103501c61019f8d041b6ddbb66dfb6143c60f3010d8e1c70f304d80e0872d3f36b0810902880907b491011f7ca000161f1a360093d8020a06b411831f5e500608a9323e27c8c2075facb1021d24008d18745dd7755db7850ab4d3b76da181cfe4adbe1065d2baaeeb3a8ddbe2029f876509073fc040105370608c32baaeebba8edb6cbcd1c93863031508b528b375db0d1726005cc785c7691a05bcedb3093f940ab270400b40f0441438f882029fc60311bc48408c0a6c80012e9e50838a4ef37850e3019dfd6cc20fb545145ec7d96824dc8c316a5ace8f1c359cf0c1c7e8646ce1c39802c268f42306689420c7a669ff7961d4689f4df8a1c2211a37040d2cbe6ed3ac0dc76960701cc7713c373b395ace102fb421da0d1a5f3c8ebbb1d9b137393c9e8786151cc7719c9121466eb42243d068c0c87143b89b214378bed168c8cc0b76b68f4383094dd3b4bff9f1680421c487060f3d78706ce972f00317ce607b1668377f060a38ceebfcdb344dd3344d0b354e5b693ab41f5da7699aa6699ad6dd9c11022daffdff8f6e34fa1d1b685968a66efb000f75ab261863cba66ddbb679f146c771dcc6719b0ecfe3388ee3388ef33832bcb8c1c8ede0c3711cc7e9308d4661a7c31893d675ddb66d5f10b494b9001b3ad8020409d2e0c14646db010076f0828d194c400d0a40e101c1c1152ed0800e48c0a1c40c3a1dccf0c6195f2891041a548ce0b58ffb6de7e67f0cf9c1174b64e982030ac081c406fe8d1ca408021633f800125f80b16962a0c6ee3f54e72131d37576ecbaedd4c69836b438c109102046d771a19d60b3200e25c0f0a0840312d0fdcecae84b6387b1ebfeebbaaed361b39d2186ddb44ddba2d801056a5440076584e884183b2dbe9872e08037c2a8c005596230050ab8ed8788303a195a00317ea393a185169b0a8046751c8dc06a6db50fbadbcd47df34edab5ab5a356ab8f208dd151c7fdacfb9a6d69697b1fb5940f5f0575e18eba321261d442ad568efbcaad6c7c30518d3e808cb8d18d0230ba511ddd1bbdd5a6aae3575575ccc162d9ac0706e83d08facf09e8b4faac67b4c3d5caa13ce7f93ecf034f2088f2543f1e9007a6521b6a66c6fbfef43429a0ef04943a791e8da79d52decac7e951284f3593f27e3c8fc6c686e6a77e6f643a3d48636968686868aa7f33a79fd4f79980527f7a4ff5935a9dc0d3e9bdd3077a1e2af5f38d566a1c5e78fac21450ea7b552af5d3d1fccc23a0e6c3f7940f19687ee687866ac299d40f575337cfa4e374dab1034455140a854285a023857a5398fad1c0d492d383a91d6138737a7086878d0d8f991518d6300cc3d0ed3773fa1fd39f4e3b52a84fa552a9936965a5c6815a3101c7d3ca5de7c7d6a068524b503c524339523fde88fa1f1f4fdf23d5c4c7935158e3187ba4a4d0fccc833435d07c3f75443da8a3ead0a143870eb7df0c6a47eae7f4a8f75475e4914a7d4dea8432a1de3bad988023ea533f750477a03cd5cfe94fde2aa5e3f374a456a895bb0eb832addc75be9551f7d6c7f63f1ab7adfe647338a1756fdad19a745aa7753c39befbaf43753ff38563c8ad8c7e657433723be38e96433546c861e1c2b305e1c612318dfe5a911d3dfe8dc251cc68390e7060b832ec0d0f15b7821e2a0e0d8e034e841b016706b7024e055c0abc07c59d8053833381f7a4e13d68780ff79623c39dc19580230137024e045c083833c8706c18713018ed736bd8233cde3e58a3329d40546a8686fb3832dcaad6e40861070fd30944a566686a54a61388ead1a3c77f9e0a895b49d16315f22841041e5b13a10db2c6f87d3200b90739d5879f366eefbe69bf79dc36c39ddef40848f9183a99863eef97e89f9f6edcbaeefbaae7d9aed3386edb364ed33a3b1a7d461f8a537151847534fa4c4639f5e6c6def86bdf8d566a1c9daa1b3b26b4325fc46ce37682cfeb6a1bdc56b7d7bc8c5b2d53c7d15575acf594c609c5bd11ea9ba96f3731333ef8b8256e8bb781e9d668a30d4eebb25931b60c4b66ac61190f6b991189f501e4cffd8fbbbbbba66926ee41ce56ffacfd3ea0ed755826dbcfb7712b95eb58a971fc705846cffd339d4e27d0643a7da91f1e1e0dc774e2401b1b70c8eb3894c9c4712720fb1cc86ddbc6d98d33a57eac3b784ad9b72a295e4585212a25c5fb0e951af2569f86a3e1a4524d7ce4fc9bd980b8df524c4026a0fe01c70d1cb995f6a99f3afe8029ff52dc6a8fdb2afc01f41f4660e5f13b4c303ad8450c04636fac8706150dc75a222fb00b27729486a6f2c63ac568df2e51d18a8060341c0b9671e444400e8060d2d8a1eac0e0a1eab6701cfb20079c485701bf29c312e9aeb037160ceff9a2b340e745d785f784e9b8f01e30dd16de03462be25a745974587415e8283001ef09df7e7785f7d43c08260ca36e8cd17e27c61ed9f1964ccd32daf7bae5eb810f7e30da379d5070c4a1e950c9425021e5502595a95159711dfba12ad51bc5e3411e7f32f1f8cfeb78ac942a026a0f4a1ab78a75231aa3d18905535c319ed6b00f088d6a97d116c9b1b1214334cd6a9a75323ca0192158d00d6e7b7053b9fd2d0cbbe77eebb65aed6ff6df6afa071cb5ff01479b83c5a259db0468ddc8464a35996cf56fe6731dd7713bdab7355fc26d34aab1a1ebb88eebb040db4a657368353f29a0baaaaee33a5bea27b49667fca1e97878349ccee8fb99b116e5a39762b2c3da9d1d53ca4ad84558b555fd4ef664b7d55ba9718cddaafe2a8ef105a05686ca7b3cf04fe1674a81cfc3e7a3a58a34dd21f7db66f43e7dd4d7d0db7c4c3ade732aeb3ade579545fa3cb5e5183fd5ab00e0287811c78161b4de73deffe8af1a3d4d158e9f6aeb3c93cfe7037a2850e5f9801f0a54753e9c0f784281aacd070451a04af301511eea34a3634ca95cc3a9a119add5617148186b2ad47cac0f0856b7e0363333a654a00f4ae53e27958d8663356d04adb6cd6c1fdaa0c68e03bdad0b61fcac0704d047132cb55a8b426ddcca7e95c9c6fd70d56219391ff58f3a1f3278dffd90e9bff756a6d5f7ad3e2df5c369dba869da1686dfb7a57e341f43de772f45c3e1b4df34ed37cd81b41fed392df563474dd3ba94a6d2543f3e722b1fdb1f6940f6b7d7543ff699f8f8f12fa531f9fc34725fc76dc3b2d91312d65a6badbd41b52bc623bb5aa1ec4dfda25d81baa28c25c2637420d8229d18d780187dc6dd48a3a2cce723a48162c26fecdb104175b137df89d18a7c3956465f082b31dfd789d9198d3a3144822c134e44482bd26dd170ec7f5f18dad8fc4e972f424e041501bfb12ad3138e637f87caa484e3d84745c089988cf09b2f9688898bbd79c2b400ef3939d184f730e13d4b9814e03d5d1725505db4225f122624bc27c7db371de13d21bc7d9311de937afba622bc67e6ed9b88f01e9ab76fe2e23d21aa4b7d61cb476164cb8e8f8e37323d60b46ff2628fe878fb200b462e83d1fea71529530395ab33457c58200f34d94af4a13c5b65a85fad9aad5b6d524bb02d58122c683dcb55adda6a6b4f2dc182d6dbaac669b516a95abda9a68aaab5ba504db027cdabdf566dad3db5763cac8ebad9ca6db5050b56cd9a5035cddacd6eb5056beb08f6544df5db6cadb5a796604f9e56b76fabb516f96a93c267445381ab5a35d5cda69a4c3d60017c985001b0556b3bebe11aeed8019bd46aabadb5eab8e731af014b25438031fe0480a20d3308a062c30d1a6e0b243085056bf8904a0d1782220458e882c0a540e185135254398a0c50189109ba43903881c2841c34b924ecb400850d9016ee4c048ab020f5a388ea5489b0a00681482b8e051079385c6cfdc0049dd6179bb3c60372ceefa4a082971c1b9cd07ad409df23877b09c1066f7144f86f3bb86beeee007077a29a32ee079055d1a9886397d4d8bd8a07b93b0e1ed650b9fb96ac148de643fb62690b626973d2a5f0d5d34196f0014b1c87f204a046960d8a205b0f541411e812b0b43931f1389160b3c39289005b0d9a09e0ee501f938fa73b692ed89c380e2c7d60967454c9622aa2398103d40a96b8389638d408672ca1f6ea8b2593cd8cf55ce08070476cd9018aa0840e1b104b342a1a95a65303e4b3a98943074e858fc733a2d16846be2896b427418074a78e8a250dec46d872c0205add505bce8909a78247806e84eed419a174a074986c4c3c3c026841d0a11b41bb4207ae8ca500186db06705a084ad0745d3d56c55d3d1926c41a81e9df568f07c7850b81d33b503356e43699a66354ffb34d389844df3a6783968824e355ee755cddb866c40b6fa89a0f9c8623a818bc0d20c15596abacdc7a744876d053aac58ef71c0110313a4110233345086ac4888082e4b7c6078a148466d3006080a21cde715a0862850e2f800094470c2103b5d9440b2c40ad0000119606c6185144044012421db43e85407372083821290408c2cb0e460802a35508902e587c90926f4e0e1451758ac90400e38b04a2021a327ccac400556604b71c0c1831d5429400f1e35689031c605c0d8428b090c21840f2c0310808628508040f081313c60812e4d4ea00608c810038c2f1e10c50f08d8e10664d02801185f7841012d4bb8045a529322f3023656a00131ba0883c5144404814b9601aa148006a0252ef4e0d4a440f0010d38c104115a70698001003159e282bf800d107c6003637411068b094c5184105a6c1800d00b2ef4141912042747cde671bc800d156c40036388d14598094c5104114204a1a5052c1baac0004404c20f9cc44033930212b800f103151a761810c40f33a52a4c716870d820703fb03ef822b041c04e61a5a8426c106da78aa08ea682f63c4eb024541fde089a08d566eb51799842c891430b371ad44c981a01250248c2a9c6e47d9d67bb8ee3b4ea9d96530038b0e4993cd336f311f14c5a09a8a12c5056df4d77fa7836144ddd501d6b4bd2525acd96c60e4b2c7533d6336d39a9127824b0749a01556e393359ec101fdc94ad764630b0f4821325353bd8edb439c1e1c1120c7448c18c2c95eba939014916bb8da0e9c4aaea08a7420996baee84202d3b687c10a0fd64e9614904130d281d281d3730d911fbf469074b46b6e9a75544e899b41477b4f90044966f9be94aa8342b648901034c299ca1e52ba3c48c053924355e0b5b0cb80057e8100277736272124057654bc16b41072ea0f8d1010243f00877b4a448270908630994b998d8212584a6ce4082e6822702912c27af85eef4cd6845807eb4124e4c76b074f28052425f131f4b989c4c4d5042a5112e967a6c39444e5d4f08a9ee042e5919e0014ba7af8909443f2c715ac8d54e86eec4b9d0a570c407949950f89a74274f849412d38f0d8aa9870e120430028f143e15629022802ca74ff45648ad500428c8436dde085c8f46c484da5078249ec93b6d40b818361e2495f3a1a9381e3ba68fd45a58e282cd77e2612a9225091470c877b3fdd87e7410584a616653c2a9c09960fab1914013442b4187251148d55c9acea671075819c0882f326a8504cc1073851510882201587050d2472e4cb60c50a5062a334c110a723280263d3c2bdc08200000f86d0c31e2b0811b3180e14800562388e079f14007a478800c4b60e82961070aecc2f0224c155fa488a20150787162ca0d0a4044269618128a03086f10d560833160b0724d114398ae232e9cbc2f4470296232411a537ce96981480f1de0e9f348f0b1851655701905ca0080982ce91912042747cd4c6a5b80103ef490630d162c60850420808586198a10b1d1b185c08c1ccc70e4052226af9b000f6128c080248cf8e1004f2c600143448172c4051450f5079a0f6c998dcc8fb16d6c31b02ce0d6a86a5834ec19a612a0486043604160bdb013d0acb0479b51fd514ff84ae0484889607bd81d55474d085c0e5b53c36dc682dcc99abecf7a1e67b7aad5dab9fbc989f80d1e82484ea2bb51338d01c165264d5496e35e4d2731e9d6272edafccec3d375f7cfc31301dc5d001e9e56084f37de7a577e9cbff9c7a5f9db7c1766e94def8bfc6bfe9e1169119a7850b355ee3ee3a14906defa22d4c4afa4c7b979c1c8a3661126b24114c502bc8abc6be1c63926eebebde64bcb37cd7a55c1c34f86cf086a6e8dcb7f91fbc27e67f435cee5e3dc60329565fd99f07d5ea278dfd75e1b258a434f0b2f8a7fed22149fefca8f49f3d49f66577ab77e5c84ded424ba89858d0a77c7b274637d5e579d410b41fec8a7a98c4ce17bdc4d778f79d8690026436d38e59c6e6e70781c4e39a703fc1fe0ffffdd6d0aee16c7dddea0d06df99e2a4efc7bc20ea7cbe1eea1879d75ff9ed3f76c173eff4fadfd2a32d3ffedc2674bdf175e4041c879e1fedadc32a27f6de2d7fe1e5da2b24cf4aefc5b96dfdd0ae0d4f3fb7e898f4813bd316ec90bd0e3ee2378c855f193e86e198c1bfd7b4a4cf4b3f2e2f4bc5bf624cd69ba2429a769f6e1487017459d8a658601d930174e33e979b8015133a60c7f23463ec8cdbbbbc9ddb5bb53f1705339917906d1d178cf769a896ee8aeb46dee3b55cab87b95269650d225d448e0ee2b77b71e6a65b8af88dc6d00dced0f770b00770772df6a36ad66f3d8957d777b82bb35c1dd96e06e4970b73edced0835e6a07bd5e2ee357868ddc0652671b923b220eee8f0b0a08980b882ececb010e412110911521609e222a2934d51e37d53529ca55b9b453805928bd24b5a2f7c9b674c7f6bdf160f0fed1077cfe1a1e5e27e5ea40cc3694d165cdcbd8787d600eeaec3433b00777f410997a899628d9aafcd9b47f1f9461e137d79caf24b3f8ebb0b71afd9dd51af19c386bb15c1fddd6de9ee300feb111be6aa55b87bb5369ee634c58fde2f319aca364e378a61f88cc1ccdfe64df717a1e6de179666d75faf0c70f7eca137e1ee290febbbfb0e0f2be8ee253ecdeb7a8df78ce8df951fcde6be3f4b330cc3742a3ae76e55ee6ec543b771779d8a244662255d329fe705324b6f4a649e40c8540321324f22f30422438b749464a879eaa049193d42653a4388b088f028e9ec882c14118300d1a8795fe499f30612936d2d4b81a4b83c4d1911100ccb2f20eeb687bbe5e16e77b8fbe6ee2877abc3830308d0c52c2d8dae7d597800c11a29b407b5d512abd51840b7a271e7a745872cd5beddaab66d5a16604d14b5d6a3fadeb66ddedbcd37edbfefab66a4d5fa9ba6d92b46f5bbdfae20d9adfdf79ff65df1bed54e35a9dea63aea4caba36efb1ecb6864bf3bea5656ecfb5f01d630c01a7def0eb4a51b695359b1198fbaf7b1aaacca8acdd8adb6369abea69ad4f1dbbe7e2b2b57466f75f4409cb6b2e2fe9e8a1262c0267cff8fab7922dcfe399bd1532af701512afb3e3ad8ea63bf3ea82d6928944559ef563e9878df1d792b2966f6bb951433ed61187550b9cfa7d2b2fd92f6f5ad35bd4d05997e5369c101fc6a4261595a02553cc0e0a3fd49a5654bf5d19e07187cb6d750281db4af9f526949fda7d2b2a47d5d69d141fbd3f3f03ee06a49fbd34acb96f741a996b4b78f52e99092417bed83ec3beaa4da52b7541fd3832a2d3cc0e073fa2dd507fc0d855ae1006af984dc07b5c2a18a21f0ebe3707aebc399baaf3e718cddea488a997d2966db8741f66bca870cdbdb1fd2befe970adade5341da6bb6db01fcb42257aee4605ffb1cea6f7fa58a21ef4f7f45cb96f7e186bae73e07d37fab2b3cbc0fb7ba928369c57db7caa1fb6fb5e57db4f7563974f5b995f6fe397415f5a92ad5964dcb966dc5c3a715b1ef3c546105061e362d5baab002c378f43c6cab2aacc050534b5c0c0d60cd03c858830b0db49060f4af618cfedc11a3bf87c5c891418328460e74ef41f2c12df1c1ad54ee1f431dab7ba927f509b732c2e2a3d37c6fa3f7c47b57e56c5dea497dd2b98fedb5af39a37fce68f445a96fdf7e57b920c0930a54d1d0a07e6685c3cca3c2771f1cc04ffd0ca70f5738d0fce9532b1caa18a2f9d3e3e0e33ea0ca475dcdacae545157338f5af9a89f7a2c3e57504f033ecd0f814ff3f5694e9f5a5da1f9d35fa9797087eb7cefa3fe6b38da63f141a97cd4553a84faf0b3497db8ba7225c4e243b3ba52859114343f431d93c50668689e6695030e483efc9a9586fa6f15ae42cbc2f7334ff3463b0b9859056938355edc0c15161f940a8b4f0c9aaa2ea13eb5ba7225a6e168dfd270b447ad94341ced5329ee63458afbccbc14f749d525544ab363f552b978e9e2c5ce3c4a4563fa4d5557485654554c2a1da2f999d5952b333fb3aa342b29eea3a582a1d168de7d66dea86a342ab0a252d5c75375a5c3753ecfc7f6f57d4edbb8fdb66a5533be29726c6ee4e0b81cdce7e872e4d8dac8f19b1b3972e4d8dc40e5c881ca81fa5027ad269c497d39500fda1a1b5a1a3b638d6e50df36661bb38da9a9de981e3d5ed3b4f74eebf1a0a6696e60b9e246e79ebf8f3d7cdbdc7befa1b9e1f5f8ad0d37bcf71e8f44eba132da80d0c3ebd1a3478f37dcbd95d1466623d3c3f33c1e1e1edff578adc78ed0f3bc9d517bef5d2b22c2eb78d78a8cf0393efc19548f3f7d092ad7704850f5781faa1e3f82aac78b60a3720da7c7ca88c7eae419777c5e686d46cfc67a6f4dab6dcc36661bb38de9b0f0b0a6283eceb423954a713b4ea914e77d9ff236321b996dcca7bc1d3b76fce6c68e0d08a351caf33c2ff534bfb9515df0b63746a314cd8e1d34de8effd5ca682333a64e9e93e7fbb1763b56461acb7f3a56465f08ab1c466f745369562914e86d63b631ab4f8cfd2c9819ffbe9999cfeb4ca73f7d2aa310cb956f66e6b31d3802bfd4f79d1ef53d6ae69b419d3c8de651e1a366be0f77c5e24b7dda0cf87d2af5bd4559950d53819c4cd5f3402bc6ebc00eecc00e046d073cd0f340d003410f043dd076c0f36c1820085a3156cc12f07d6f0e00bbd740cff352a919edc3d487a0722d95fa1d2ad770663c1bbe178635af43e516a726a49949a156276a34751f428ed36a6fa3c986a92e70afd9303ab4d5f7458df72068c180b6033520c8d5d830402bc686f1b05cc901ac31c201b41d188dbcdf7604dfc1b05e013e8d0da36666e6c11a1af0695623989ea3799a1a3004af6201862b23101582bfd930368c0d63c3ac5033d6f301e83f8cdc8c8ec6e45b8d1115f5d5d5873a2234daf91e101e999e1b8d764654455b67186b5f569acd146f14482b5dd8c647a4b9952e6c8a9259a238161b37164af159a2b70916d2b23396ca844a54e6c25266329f22d42ccfdc046fa52552504c6aac24bdf84c52849a3a9f494abc639824c7182c6d82e25894240c25064b9ba4d8854d9d635849d24dcbd7366938224bb746818c9078062143908e188191547a7a564082915458e5127c12c9b2123336d210453463f7537c94e62496cb95c53fd277bf8ecb951f4a13d7d8145b2c34b71e357f63ed2d089f50a12af10da6e96c5820eebeb9454163738f4af7494fcfd0a31a9f8f89b0fed906baa9ecb2aa9727a6d6cea75092d6ef7cea9ce21bb23691ccf2efa7b8dcf79491e7253fefffe15e35095cdc7d9317c5657a936232568962cdcaa54cb336d63a31168ba51383914a3118a9c462b9e600774fbda6b5e46e849aaf6737e9bc8fd3fb1a76d31b2bb2c20a414c3dd33d3d7a2b617163fd79632dfb9c568a8b2e7a9fb47e46746628ee3ec4bdb240a567f8489bb00f3243b5801575e833ce20200847f040087482bbeab5a951f37736d637955d1e7147672b611d2d3b653019995da8c9bae98db18a50b3e86ebdf3a95978df32262bcbbb51bc519385912e3ef56595682662cdc87d4bb3442fc93a896e8ad15386849aac8d750f4beb198e41346357e8451c9bed9fe1a357e1936e6a9e2cbcaf489a27912cb6c4c99844e84bbc2f8af725d14c4a79b10835d3adbfc5e3dab2d6df1263749b4af8af89f425d639cdfbb5cda4adb1de79868f1eef9f2f31d62f7d5fac8de2f4c6b62cf6d2b7c9ce39656d8d8bccf2a56f1328af2346483c835e92e2f2e22647643e897a7a48d3479b1aa3f80793292e512c94535c039aa1a01836bb41b828bdaf24b36d9e77a7f989d2d01189491c13a2614788901592ae14255ca225d0ede961c5b4d6382dcbd1dca7ecc9ae925641abb8aa1055a9526555c5dd91b87faa15dc3fb103dd9de5a192146b1ddfb8f8b684bb1bc0c324b12041c41d31880e9ab5110b9729d649a8b863d7d53092ca79659bbc45a83963b1942e4c63ec8ad2d3d3d3032395302c935b965ffabe5efa368191544a93a533c93acf4bfab47cc6b18c8b5ac7f2163d1cc5b88ba36b0cf53661e6286ef34b9c6634bf92f47d210183d38291544a140b6919deae7c93e2a4d71833417203921f2e26613427e5d737e97e795f230c5ac0d0f27d61d871fd78e40d7777f496189685dc9dc7c323508447a8b8cb4e12074d33d1cd6f5367111d8ff0b8b851acc717beb8fb0bfa85138c94e12ea23926fb126ff27e895ea2bc3fe773d21b000f8d24c0c81017d670b185f33925500ba7b27dd12253fffd22d444baaf4765ae97952eb4cef32669fdfdbc51f351990b0b7077281eba10e42ec2fe7e9a9f34f785e52dbbe8fd57912ca7affd2a324bfc1a72c1c61dbdefcaefee513cec11e3a2d6b2a7a127881e9ed736936e0b4070bf52dcbd050f5bf8d28294164e992ef1c645a50cbdaffd69d16b9307043c4a2e9ee72533aacdc7698b858fee6e15a1e6d1ddb3f296e825c1439e24ee3ec5c32263bab8b865f9cb347f4ef9d7dce6e7a41809a3b317b92fec62a29f5dd88bb7089522d60a222c17f29008cadd873c64018c8b252e314689721a7b8d62a4146ff4a22946ca457f5e197a9fbc58e2582ca7e76926cd4e2253eb1c7bfcda5a96535c84de1227ef2f2f4e8b501335ffdebc365f43226c766a593691701afb19d193f78cfd2f61e100ee3e83872c04c0ddc5d979ca5c5a97fabebec4481986d312c9c4244e7f865fda444d9879cf24e60dd2183341a748b95b4886d3bc4c9e0c09251942f1d11dc25a4a894ff33251126556ceca4be2981246a76c140b8dee7e82872bbc5c341fcda6bb17f170851b174b6cb65a8f828742cab8e86ae2a1902f6289374e638f894e22a46fb59c7828246886de4fb34b9b8f0ab1293189531d0f83ace1eee26b147c7818040ca983663448cbddb38e0c1e06f15c3ef170e78bbb8b6976e1f49e242e75709ac4dd8d78b8d3728c9ab0146f5c3e26ca7177251eee84b2d72f123535101eb83b0d1e02f1627edeaefcb39bf419fdfbda4c318a8b3e47dfa421204d4434ef9736937e865f1be73cefcda34939c568d20b1e022951597615a1267eed51f47244e6f3cfd3dcbbc4982465fa88cc272a7bfc1a125f627e7d44e673ff4b4422ce760c86378af5003cd471c35ddc18c3d2bcafb9cdd2bc318db14b6625c5b1fcf83514ea7cd1a1e29e62974b4684c91bd3efca7f44def3efebd87da5384844cdc72942cd2dcb692e3f6f118be6cd63997eedfc1896f5eb9bf438c5af219d9d30670d11e749122aefcaa9a971697e89b5c6694c096ff3b1965d1213bd5824e29b271fc54866d1e3d790bb4bf13067c9e532cb7f6d33c9040f73a8b88b3ac766865ed8e73ca4821b30198abf95e6345dd27afc1a32a2947d8e1c39729e37494fcf9124afef0f19310223a994b89ca5d7244d174631116b6f8d4b1849e5c8119c1b2330920a0c6f9385b1eb8852f649c10cd186968d87295c21dad0daf13005a5201ea6c093c227dad0527988938687385f441b5a384a403cc441e2a20dad123cc4b1b92123dad04ac1c31b3036b46e9670d186568962ddd313d42ac0632cc42af13661e659b260a49266ed12c5dadd937888021451dfd793a646cd742be17d63da2c3fc5b1dfe8bdaf51f36e342749319a94d38dca32ec1ef91c1c1e2141649f736384c43394b84465d947935ae93e4171099462984ca339499966124b7122e5c80c292bc5e5111c1ed9e7f0c86e8cc4a2cc589868766118c9dce46569136b34c7344eb72c6398b9f79d95174b49b1e932778652849a258a83b46cdf2d344bb14c0631cdafbdefd6288e6999fef312e5f3e7f1ce309cfe7d347f898fc87c3e4eafc627915984ca98bc3843efbbcccfc14577ebd728a445262c95913798db4cb399c6febebe5f62fd22cd57d2e79478c76078ef5ba258fffd7d53fc2d212bc85a8fdecf29f1bea479c6644a5eccfbf19179263d4e7ad1951f865ffb4b0c4bb30b351f27bd463189d3df3ac3ee9f274e7a7d3f47e322f4bec854963fefd78fd3bb71517a372ca72eb3c48f91eeeb3cc7175fbf966533bd489f94d1a3c749bfef6bbf76529a1acde4e3f4beceafa4d7287eedcf6961344369bd0be8c5d7a62bff9324543eefdfa7ecbab0921771cef36ef35de607f9ad65463f3bcf2bd3b29b2f710cc598e8f57dbd365ffbdf953fc54430198a65e79de1c5d4bcb1c769e9d69718e973f2cdbbf2bff47d3d111684bc107c744f226dfe0cc7f0a28edd74ffc65a5f6d2a618dcd22d4cc4568166729965939cd8b747f6bbceff9f835f49b0c1c6f7cc660994481d06c2e392f999de812ef34c762328d4e913265e3944473929da1603d05052a515966b2339423323b418b4c9c62a42cb43394511f91d9894f5276b2d31cc3271edab22847247e252931119acd1d33535213c984321427e5f541b3a9533c43797d50b3c84ca394e679915020bdb1d6e30cbd4f721e4af38b442f969264b663b025f82432778a9150a09da12879824fa28b4e394d2638959de66552a258684a89adbc0bf80653c3643053e9c2f2fef3caace0c7449ff797f80653e3f4b5f9b506ee6e83873ec8388c546215993e390f9d1845ef2b4986729e322658866532bc8a4c9c9462a4ccc25b4662259cee04d1c127d63a69def73c33c9c2247a655a9bacf3eebc595bcb8ccacbda586bf2b2cef36224f3bcac18c6472c1626d3ec7aed8b4b56523ecfcbdae6696e99eee9616d146ba251892be734e8c4247a491646ca692c7683b0ca33bf344e5f9bc5a271f720b83be9610934b81799dadca70c2664051d2cc3322b3ab8e86a8d6137955d2bdc6b1524b87b91bb5fafb94107dcd16c6ef26af4a643288e45c95086883b228f0e8c5442e1e6059be3eed5aa508fb87be9a14d15f7129726524e635a062b71994914ffecdc244ed34cfecee8df7dcbdf284ef10b357f682776b786991b17a5b2989ee123d6c61acda6d65807d19844ef79a5a040e3cc65ee8c6e549649164e33c9da1acbace0f4bcb3346f6dbeb68cc84c379a49349b453865c5725a6eb3c429c9c2321423e1940533ef499e39c7d02253eb8bc97ba2d9dce64e6f2cc52e8dde74276114a758df1799ca621a9f57b3b0bef8646dac5119464ab1c6294e6545a60bcd6411714727c547392582e99bc482101d4c5e970e86991b95a53a31cd23442706bb5b6398b9470f6d4277c769468b80ca4d62239c6e14c33089ca328a5e9cca62a92cc6c2fbe294d4d8c4acb2bc33a59cc674363ecf1b2b59b33316bbb8bc69514cc6c23798697e6dd9dd2846c22c25d385d3d8799a47b8e8a679eb2312bf48d696e5d7369358b8cc246b63ad71d18db16217bf581beba3f4c270ba23b620440786b79e691d0cbba9ebc7c31d68b88b25d6b2c744bf338a5ef2617803c1f246ef2b88c5fa1e5c66f2f149745fe4c5292afb12a778a3f87bce8ba678a3a693596ab907f37cf3ed85ea9e975a7235d5739acaf1a833f513b21571ed88cd04cf7e1fb769b57a0f2bbaf52ac3064375cf05ce69baeab5568e1b6241ebb556cd36a9d5abb656adbbc1565b3dcb434aad5df5dcd694a8d9aebb397dddacddb8d4ad567baa3ab0d5e45cddac866b35b2b5da6f8af561abed365b69606bed6c95a1f6a855b35f0638cd9ba93c6aadd5b660777c5a75a2dadad95aadc6aa763b998658543df255ee87f642f5acdd8268276b2b0e0d917a802d08c8440bb2beb97540ddb49b8db355730e89da82ead6c330f4ea75abb68ea99f4da156cb59abd5ba420552bf8ab2d6da2e4945c1dacdd61d4d0445f80450533946b04a54ce8a50b7aa55b741f64f75736b76fead1a84e6aa0c54473286d56a5737afa6aad6c5daaf47ab3c5ab5767b8b32dd54ae566f670b72c24eb5a7eeb35ead3dd5da13685d35d94d43aa2b2bab55d3a926d0d6cfab168935c19a604bd05cf34a533b6b6b6a0bb5cd8a60adad5ddd5cd5f4a3829c0d62947131cd2fe431911857b867540c2531907c12767dce3b0c322ece6e528a4b5496f3194a184bb8e7d7ec44a31cd9ac30dc3d03698836b432f025033728dd27a2de262a13714aa09c9c1b5756e187b45e3ccf4b5e9d949de43c4483d27d3225434181525ca6515c51b62c0a36d32c948499e43c04254329f1d0130b1cb9478c6cd4cc310c3387d2accf3b2add274f6039759567c63875b192309a371860dc4530b6c0c0e049f1be271836e21769883825c6a90bcc175b88be7889fb8b10352dd08605bc8838a936611658122dc093f7cd976f7811012fa8b8fb46314c56945e266226b1f602852ed2707751eb7cfe96e59c4fca2726fa2d23eac24b117a9e3257ab8b201771c29421c2654eab15c68c9cd3305dc2e040a699498993ee6ba8c4252e5193d4580a5089a5f89478a3e69312bff43d85d27d6358ca948d85b6ce4eb696292971522ed1255c7c29325f9ff3e642c93c02c2451377b1c5858d0f9835dcc516982ea2894d975966181830e74db72083f4e31665b88b5b2cb9e7fd49f9dc82c891f2cc4d868cb8a2ccd0faf2cc2f8c53971112cf70f789cbd42c7b7a86b428c3451b5a5a74d1e2a5058f1661166d64914516a02c5077ad749f88e87965a5896496a8899a5be377e594bf3394175518cddb4c6519e9ba3e2bf91e8c9ae7c3f2ded9e7c59ce21b4cf353593691ee0b136d5c34bb302dcb33a01785b292fffb31d9a338967b8eb499a6b23cd39fcb1423e1a4dca455629cca48ac51b3851fbd644e4ef10de6a790a6f0b23c7b17d0aba2485952c343199b0cbd942543e312293fbfc4e78784a63c7911c5b18c9ab0c7af210cbb505e3cc2a9ebcb1c22a1f367e8f8a2acd5fafb1a6b99cefb67e92d42f379bfd57a8d73b4cb957179d30df369b5649900df6ab51e87ff23775f259f93067dce11d789858cc0cc9750ec3ec145f785ffff03fc3f3ecd182c93196db55a4b1e009ff719835d25fc3ee5dfadb7a8b789ca728a6bb8fbc44aca4d5eac0448e31b304e9994676e72b11221a25ba238a6b464090aa4d16c6229b36d96a6cc8a5934c30e58ca58021d91d9894e8fc8ec04c537e4d4a58beee9c23875f9acaa7877bf9fe611a870e3092aa870255250111389ccd40154ece45448890878e118c98cc092bb58ea08d4704429fbe84be2192040060265787187c0121508e8bcb69974cff3b23092894b96be2c519fe725f7253acf9bc49b3081ca2592e9b0dc628a26dacc50a6b811f39734dc4598f91a856d7ed69f8391ccf3378ee1cb175702f4f733942f4bf848ca972157ce694fcf97976207eee20c1fa9f0ad1208c7d09ae1a3bfb7855fe9c527394b2f6a1269f3efbf9292f4ef183e2231d24974b55992668902bda851c05ad3a0bfd4d87ca5f93536491396d14ce22f42cdd999e272bfa833143dc3316428331c43590295785f93cc5a8f198a550515a1e649640a95a7f94ac29295784a14404471a40165dc459c8ccd33bd3aae13ebf33493b4d9800634d18020b101360c4081bb8b0c8800036a60c027120d3d86c13209c515eeee2414555e647ab18662c68b181cf1cc681411effbd8cb16773127f182c4319197f08932dcc527987011a739c9119c9d1d2245587045d13bbd419fb3510c7b22e809175b287e25b51650c602b62ce0051737895d2eac4d27ca38f1e5719a87ca333bf172776dbe133c621334706fa2012e3611e44dccce248cbe3699388389ed2eca5073a3792b1d51c228133c4c84e21265f478b8c4520ba7996cb55a4b4c29cfbcc42ba00d773129a30af8a280ac15d0854c9732bae0808feedeaedc0596bba0940881124b1945cdc7422fcececf394facd19bf43849092a527694f85c2c93304344ef79511396d124bc24114b82c745f3937024d270175324ae70246248f0b83b7ac9f3ca36127e84981417a1f9fca123ba1c1173df473471b13c42047717a59467fef2cc4618b154e2d969841417316c9b4918e746b392306a84bb58c417772f22e65e04127711951515a126798958639be93d65efca9924e20b114b317848c40d1732af910b98248c728979116a7209811ce9bbd3fc18cde3106cb8fb10460c81e4c27e1ebff6102f9628feac4d21da108ff415e28bef5b0a114baff9d242ecb88ba5796338a87913441b41741183888d41dc9c2946ca39697fde23106b00f14524ef1802114bef110f81b871d484c1ce5be6f407119c9734719a93e852099acda224a57983607803a1b222ec53e225f84c82cbfba43c730e2a710954e2a012a7254ec2685002dc45ccc4431fae7017cf9c834a1f5ee6198bddeb4388232bf18bd4a8ac3433d29634b4beb1596ac694f0162eee5b5a2ecef6161e34971ff6404644cd22dc0317f78d3769a63bdffc6b580f41e8d8c3096568d96ba3381bcf6e7e67f4653c58c103157c5ebd95306ac23279c3c343410002ba9428def7cd1cfb9d914c04f0783649bc11f015a16646432d34d0d2c545d22ccae72d373e5f4b4c7cfc1ad2d244cbcee8d00e6bb8bba7bf03185209bf363fdc41c977b871378bb4197b7c5ebdf1ec77b838d5a104ee1965256114355d9aa57461a509c3dbdc19c98ce9f065b29891c58b52162a3b59bea5365cb4a1b52466a9cb6b896729742c6d602903cb9733e71896252c54441b5a58765ce93e11759252e93e11f58b650e9add13a7254e333954a63709a78fcfc767ce411bd537f63a69e3a2f2e6f328cd49b9fc1779f1a3f78c3d4efaa33427e1941895dda45fe217cd22d4ccc1e7d55b13c9307acf1393da84bd2bbf9e91b7089f381a35ef2bc9851de9bb6f5eef5cdea33307a5664c694986529ae79de13ccd2db4510c1b755692874a74cace5030cc1c2a42734ac3964529cf2c54a618298ac6e715ca50d07bc68ed24cc38ec9d2344969e6199496cccef42ec1fb3ac9796867243328c56852949da1a0d92c7a221401e7084e7312568ee534c63a3a654431988c88755e1293e8452a2f2e65276b764f2cc5dd59f050290840a094590902eea55902c1e7fd9385cfab959ce0f3ead7e699f5e3d77efc1a52d2dc45d7c5694ef247a7cce75d7988b565f93cb1669d1797667966cdd238cd6489625692152f424d9d74f36536531cf44e346abe8658a8595e7c66170a84cf2b549a3756a2580ade17c94c6347b62ccf6e8ca59b9c3907ddad51208c67379604cd2626cd3426652c315a640aed9ca5245d293d2c16942840425296ccc05af2334a893224c462f5a8421910742aa63876e2178b2544c70577df6c8f8b25b6f2e2519a933eef37fabcffbc661a8287322ffe3d44f9247a28518406e0b21a3289bb6dc1ddf2b8db22ee9688bb65c1dd0e71b72b7cee3895c5d2ccc2f995b4dfc0a96ccb5c7783b1b7b858a2f7ca8a4c22d8d566f9dae68c2895c57edc2ff7bde362cea619a594e5589649702a0b2ab1eee239ef1c97f9399a8ab9c443fdb9bba871113e4d24338dbddee625353ecf9b245d63a674df7562fd65799f8b46e18e2992347f8987521b2b377077d7e34bdf26e779936c257c24c568d28de99e9ea12123ae2831d951ce4eacec58f9d68881f1181733f68a21896532b90cd186965724302c0bbd66159946387d1776fec8bb50e29796c57e6bd9007888b45efa36697d4eabf5e81571880421cdd86cdf7cebefbf2e1aa4749f8867116aeabbef0d8a4f11e7467c155ec80aad3fbafb5b69dee46592a365afa11775701afbdb6abd2b6f8dcaced80b59a12ccbfb298e617d7dc4193e6ae1dcb832bec1d4ad1b4c7ddeb2bc8f6a33cdae19e9ca337c74f3e585c14efcfa1c9cded7b1fb4429a731d789853294129d824fa28b4ed9198afdd1a388572277473d34bd1022eee8e812b3582c20b3d85966188ecd36deb7089fb89cdd139738361b42b30b2b9929e534e8bc387dbdf47d8d5866c54465d9859a654fcf509ad314b3c8b45a2f336237697c79f19792bb3b9a1f8df2a2e23beeae6f123abe4efefa268d252eb1147c9e660c49184a89f72db5c62429132ada22165129f1de268c48e62a834d17132e78e86ab9bb98e66fe1342739cf4b9a4b5c4670193109a3248e69d8c569b88b250c1e622e2e92afefabc4a5499a3221cc5394ca6039cd29be41070dcb32eef85582c08596685c744424d34766f8e8c80cc700c3dbc465266738067717c1c332e66593f223d3b8825c126d6891545cb4a145f2b868438b0c713c244a83488a201e168484c47d74619f376a125d7db19417491cd33fdb298ee534f62b263c2c68bdc2e9f3b02024f425c6a546013537fe791a889488f82823a1e6a397bcfb962f7d9b88385ba7a62c8dfdd6b83cf3cdc7303e82fd9317f525fa1e2d807fb1856159a8f5620ba7afbd33fa2ef3716e1eebf33279519bdf6a65fda52c45712c765fbff575e56f61d8455b2d9ce62df4e2d6f9d4b2d72e2a32d39d95309a4997d942f327bdcb6ce1e41c193292662637adc7b1d97e69ecca2f7263972b6b13bd2f12c3c89b6e6ca6fb75d14d31123ecd93d4d9af22f37c4d9a5b9be7391ad1789318e92f8a354e6338bdf9bf8f629cb431d117a1662c769fbcb8b5797eebc8909116acbc384533d6977cd474659d2dcb9f8b7e675429fbbc886f30b50e6a3e2e4aeff977861ca4cd24a0172f4eb30b86b7d9b364280a9417f5677ddecf51f26293175b1b0bbd48e634f645a889891e47a380c26e5ebfa863f7494e8a5f1b17e5fd5b163b2f0e6aea3fefce432f2a014aef2923ff3c65aed8c5af1e744a898b50f3b53394f3bc49302c27413779d3adb4240fe98b531205ca43bac4180a865d28248e096925782703776f79c8e3e605bb5acbca0c059799ec99c572ba51ccbae946cd9e97be4d7a7a865efabec629b8cc493469c6f2c6fabe621bc5484b74aa378a4dd274b9641a936812179672f755925d294ef10d2c34a3248e69a50dc3249aa1f4f40c6112cda84e459d62334d2f51906aad90aacdb0824ea28132ec717afd0727d8104e11e34b4cd9a2f119fb0a8453aab8fb79b1762ba6a43025fc9effa212c1dd1ba0faf3628d9aae99bb1b79d86402eeeee3e1500cee0e434b95c9149769fe2234a749ff397fa5c8c61a776b12f2c2ddc512c55b9bfae2f3f77d4c347b6ddb630423212deea2bb0de2ee9fdd396f8a61249534a3260b35616936ba30d691a49b96db34dae84d2a51f3a8346f0c9da2af798ea419cba419cb431b0be1323fd11833d958089f44174f3922b3939de6f3ea142399e894f43c2f8963b3cdca1a239901a420a8f40ed0754d4d3ac69499111901000000d31300203020140cc72322a12a6a29937c14000876c05a6c549ac9c328865118a40c3284100408800130003042439800f30e5225329cd904683a294b9c9fb94783644d4126292cccc23d4672b66d193a768d57145c6b17e5d00a96e24d3c197a67896b198d7eca3802bf878b013a076aa0bc671b098c165da6095ed807b6c8619420e926c3308bda7be82c2c10ddfb4f3a2692c66b759e4b569ac2d50b05f88aa542f64f01182046284726499b255031995c6780d3d6d265b9ab115fe2cd27eab15ab5bdf4597249bcdeef16516b7ab454a45a2222527478b8f0c89df34abe3259d57825c722748559981768454abaf6f13affaebfe039c90b09dca420111541e4b5a769b8d87b63470bf054edca96d59f1295d159217866ecfeef482a1c96cf52090e35fcef42c813380d1ffd9c61d36a66a49285515900a18ec80761f8a75bc0841d4c6f05a26e73e012076efdb9f61a6d8cbfa1ea003a46bd1f1ad3b9ae56a4686bc9874ba57c6a6240ea400b2dca45951f664ceb5c84fe8200542ba6f022b6cc1f2576f787e3704518859ea94ab450aef9c24f136b903c64e17b06b78574303463820865db1804ac5ecb66eb39bb4f65a9cf91c1030d88273f5ca8b864d7116301070fc8640d046f6bbc6a6c4e354f08373322ca0f5387fef28a0199474ef385be61ac6f54622765a2566fba649c71502506f95baa01c6b47ec280d306bcac33c4ec0847e6941cda281b13133b335695cf7a2117dab93ef6f94a9c9c73813e5b988c634efb00716a25e15d31c7411bef00c5d8076fcad667c88663760e0e32e5176779e72b148cd347870e645e15e1ac86acb769f4058939ead2c62eadb3dd917fe63a2aeed8e810a7a39dd640940bc16080d61ab400c51ac3f04ea024e06bb8e1e102e94b8ca8111d60af60eb3693e5cca8b43bf061614a6811f1e88260aef56639e8bf92de7d0cccd56e895270d77cd0427a88e739c8f051e09c62cf5021ed385b4adb5ad02455d11ea056e883cfefe20af8be06fbad7a88327e1120e3b7d19801fbd9fc35d2d28eadf1a43b75170a70923a4e742373342f1784f9d3cc37a1a519944a476eee005a0d20735d721df6593f172779601d6b9224d5895a09c0b8c7d514e3fbb11831b929617ecc1848ac0a8f09729ffeb9267b4f1952aca316fdf2e83b119234d3fa1b5f769b149b95c08bfdd4820a804249e509eeac4bef54ecda4af9e467bc6a64300f6a63e85b88f900f56c0f020395ad4db70ab1e50f670eb09e388988994b1b96c9fab75cc6cfb6213615a94fda6473c3bf8d7bb95652234d4e7192c08402f915926b69cdb52657c7f5a946c1f8b778bdc54d090d94085e1a96645fe38425ea66b2f1b5635e38124e32b3d00b34e5c12b2d2173621ebd7c11a1aa1aa35de45b59a0f80fe7f39b6ee46e80c0225b9481747d831cfb315200b16746ffbf449edc145cc0044049d3d2208262e0fd1265a6e65bc6bb35e5ce4b32836879ba72b2fbc0978bb764d77a1ba6e7088eba7cb5f0bbbf04cf0f52f061f29b90c8654b0bf27175216553ab8168e1104a79776015a208d9e16793c74c187194a0c17f5894b8089b8a5cc9ab2a597093d7229ede55a6f98f4794e3ba0f7b6633c00ea2a48febdb6151484846421d0d32ccdcc01d221de452d8f6e5e6e84e888377352a050a047a7c08c63dec4c509338687c5b925624b84b22b0beae2786c343ff1fe61c13b90de0cb106fab62149ed719288415ac9257612da566600d6218a69fb50d089251b460ec022f5fc62df07834d9aa9d3614916064ceeddd9f58f4fbad85077656456bdd46e089511a5642f1a5e3da6964b8b2ff6f5407dc56c84794e18a5f8b53c72f2938c98a23a049778e818f47475f49d876084b5b13192f401a79fa055c31a86a8d208e9f0129c93c1374374e8cafe3a0907496e6a522f8c12583863d4067b5490ce29605da8ce6d3406b5526fa0249f191ab30cc03b35262311f2b02c2189360687231588cd784ada2cde7c514e15c1c3a3cd8e56277dc91fe472fb5f6fb92c4a591a6bae042a1a0075422348f356f31ceca990623a9397912f0851a97bf83bc583b65c275c86f0a7e46e78867594dd088880c5ab9a03ec6c7408bf9b72b226995e8cae6d5e809e3866f2dacc96ecd98029daeb860a9c08f5224189cca7bdbd26ef120b259b76ebbc903a9a5289926a3494910a0b6471398bb072240b6b4ea115d60f3c854dc19c53a699c66c05c5db503c6b6ff50823015c8c777c06f248996bec50c3c57c3816268fa6d0f568ccf4ff1bf99b707bbc5085756a1ac73bb556412a1e7ccb6458e786749d8ca3c3e830ed03c917716d87a9652db29136f895bcbce002262dc3fdd52ba8b977be2d1322329fe7d303359d2e1620ed810fdf02d0141ffd9bbe672956a62cce509b23f1a38d381dc7dcf722ac2a07ca5fc00d8ee41867fc03628b45fa9e5db1daee7fd018166fedae6b387e3ee5914f41a41c4976ce9b13359eda98295bd9c80cee56edffa29068b0fa0ef9781f95fddd811fe76434bd713e1c4077eaa36be0e48a8cdca3147694b4392cee385d855ca15231d10bdcc709548a7c60eea7b4281481b20c8443a46a2f5bd1ad8ac37b043a5bfcf12b95d420f1a651f73176170211dc61502fd5253107eff5f5f01bc7d75f18aa4ef1fdfe424f02e1807664169c8c8ad39d2e00d61af855850b79b9961f58f13dd7f4875df85f302cf332ac1aabc8edc2a50edfd406f0362415e457bbc8666fd70a964d70e3c5aa1394b9bc7be650799ef8d2d5502e5f1f11007a39d6090bf15c59255a0218a264fab908832cfa119cc8014c3490d62369e0d9dfcad6b01cbe2851d0432a8c2b7d8ef59e53612c3eeb0f6db2bfd939accd7427e635360074932038abf28d3cd9219655bd18304f4a93a48feb29e952663aa92029c0754d6d1b6760ac1f70d38ba7737a3a6845a86e5d410cf21f4a9719221ca05b916f68fe58e7323004f9019c8f8f65dedd505c60155b63cfdf646de8d9c5648844238c4b5d3660ca4b6ad7cc6ddd883fb001e092d2689e9fa5a8392dceec70b9c7c5ce2ca07aa1e96d7c6ede76bf6e029c856c31922bda6447edaa07f0e936284d9797aab09ed20d2ef23d38e7c128bcfd2a4945d5d0a1d40b08b38728ab36a7c030074ca1c06f04721fcad4eea5e3b6cf062f5336732fd5c81c2bab0a87454d077c52ec7424bd84413f71171a887190c4eb7e10608f8334e9d3f77cd136ec242985d2c5e088acf8c008ff7330833b1857942934bc76e3db938ec17ad573333cabb792e9bc4fdd6583d132399931046fc698a6cc39bb735adcafe3b7c194905a7183c737b7dfb7df674bc825e24ccf252e4587a8601509ea100059d3ec3c68f20a33941134ba1075a1c51318a25f9c1bb6b5bea5076db5ff6e08a81c742535e9ca9ab7209c1df582690efbce808bffe04abbf92be8e488ef32ebab249f20dc4df8fa4ee397b241c501b424dee90de4f8cb403c83caa8421c15f0e92cc3fe01fc39b4a0ec67c0c3bbea847be7f9bdba667f533c29ef3552a28c3a3373a218130cb0b1054bcfe70bacf5e2bc40acd8bdd3d5ed956fc7962d670a8f6cfee35b948112c2a90bcc526928a27a84eba45e87bd3c7a05a9318b11930b0688b8984c976b611b9ad44d4c90988716005a2884dece078f15d21a85665d91efdb178099129dd96d03789cce2f40d6f17896a623af6e943c159ef089d9aba2206e758d2333a908a87c171e5cb4ee543886c9c4513940f8129261275b8f8ddbcbd5d88e2cd05e641fc2614653ea990f844ef5f275950007aaa96167a38af44673f4931eb6a0a6bb532309e5c631a97557134dc8f9ed5106e135a322ad5472f644a40539f9fadabb5d2447636172f469b24e3feb4bc71dd46ac134364fb4c884fe8f179a8cabab3015da0beae2509aa1a3988612a00523e058575ad04d8472206cf2072fe7faf74cfce789ae293754e14fad0026bd638794b09db8a45c7a1d528f4a1020bbb5e5c4f0cc182da3c59384c804861f41a8acbfde500876c8f5cc3daa9a7043c4c0a83d9d8bdf1c43966f62d21bc309a6dd82b18d56345d63585007bc953462bc491d778b0d17b85d5578856cb42ac59871ad866c86267fb39f55c39bb5906de2bb0020e73fe748455a9960a2856de5c0475111ae32079ac9af7b006cdd3e7148d9a99ecd865e75f2c337301ef5de2590d5aba5205a79104c3821258868ff11dc8fe7f2ebcfd6c6698811d4edea9b601778486eefe93eb30da27a05d2eb5ec7e43de9ac3bd9dd5e99d7ac8e639bea35498bdcb6e4d88c30fb15e029c5e8e954cb775ec216c46e7c7835ac9c6a7e9f382c01fc3c4d3d8e5b7617189aea1761b14304e90a2d83e44861ce1b4f5f63971812c1191cd30e89b9d4d66cdc9f523640527c903843e4a2195c615d0df332859694b91ec59c5d18881899d68a8b35bd35a0bb5bd5a8f9af7c29c581635e924466689b9ae86271b53f292bb8d4fc45e1cb67278ed09511fb4e3f2052bdbc15a916505ae08f7e22c97caeadc19252340851b3900c67dccb53cec701cfef58d3eb4668f12a1e56149601e7ecf4b9f3a18f65636056b951617ac2a212971bc108fc2670d6101eae39e9ea72bda360b70b4151bb7437618b0d9487247347702c698fc01b0fc974c723d183e59a4d9f86bc5aea66fa5a05aa2037b0557f86854b622d63b8bac640715ba6f92749d6b6518414a6f414d91e0e0e0e62df23c10c4b09bca1dd20a59db118c79ff9067fb5e093c1c70ed50ed5372597b5e41a2e1da4349ab10daee52eb976202f5aa546f6eb32b915d7a7940ffd5696e0f2b62a20016f652a0812695fd6c554152d6f3a4cf7d31b63434b89eacc120ebbefced7af35a24a0ad29db75d8d4e181bff56d6a98824843d5a5960a712795ba89a5a4dddb19f8ec5ddd64f4b6156420d9db182e173f50af4bae674e912dbc1c6ea48c3a9dba4f7261a250819ffe2eed2e9feea36277f5bcbfcb73b6c440ce141315a10a450c62e5bc050e38d5e4014a9dbf1979f0a6717f95e5aa629b9d921caff30f951bd9011346b1c411c341574d162153f910d059e73b3649686ba619f2f461d8d1d9043a532d2c4b9dcf738eeef7aebcdfe842104c7bdf934e974ce2f3c0e5b475bbd04984f09990289e8332fc85ad8dca93c268f2a176d2401fd779831cd6bf9db1c05b3dad5b58f0f39867219f220696e2232c1c32177430801e0af8431fcc241983704e998121622cb38dadeedb1dce1bc17a01e5c8c4cdae05501b016241789f69687a3402780f4cee0c520d274c81e305b83fe97734798dfac7aa99c291eb063304a22fd40f1619683100e460931068f654a190decdc52809ff91db55b25538cce6f91ff5d595252e7ff01c831d13a6fe9f44729febdea63d576390ae4923cf02945bce07c205225635c404d6347666e65cb8b3b5ec3205e1cf115ae9eb0677751e967eec6f456d4fbf2f4cc2bcb0c306d6b6fa9bee1db85b61ff8f2eb203400a84f5c2b1bf9b3c2cee025aa47394ff255770a0c946f469f5c138f11c5499d3af6b9a3a12f04e7fd8e9ac6d5ed2552ffd4dff1307b0e96d43d2f9d1fe1ba70fc23f22767d96494a9f1a6218b8813a06e83c83a5ab21cd31049d1b89b0b52aa7adb43f8041b0b23241c778f141525716761d24e7a698f93cab0314331c22b0b145eff62d8f3cafad98bc391e1cbca27df63afe3068789beeb45da554d7ee4a26b1bfa42d41a8db1ffb5f2b1cea691e70cc101ce199e27168cbb0909285b4da1948b07f7c98cc218d8c27e083828c890fadcd9a4b1294716b9210169a18b980c5aed5f74a6247fa1da42339ef5e9407744aaec9074a525d101fcfac2776ec7933a1e9aef7df1d10485eca276db2c5e9aa17d34ae909bf9cf46e7ab3a153a345e6a865ffbf605bf280540ea79916f121ed4a0a8af4f9da664e349f10719c6d3bd46f220c024dbcc1dec3652889feb193f5175c93459e2820e19912d7cdf68c2c486fde0881bf985c31fdf53af333b5d7ec4c9c52da0408a23670da9c85755e214084a9288c384314f00244c1cd61799fc7996101b1392607dc1d002c1c22fd0c5ec25587d809ff27506e362112a5b0c20713d8740dc9e63712192432d12196c176e88834fc2e678918ea132428eea2fc7ec74452460619d0202682eb69c529c6592b2e68908f8b86eae7cf9e1e31e1cd50782f1a1eb2098d87e4550e53f6bc6f02f64c3a09adb235781862c216c6419997a7c104570e270663567e919159d7eaa20ba08ad8bbabf076f2106ec83d4285bde40a29e8588f385880d9d4b895837fd7a75bb0d95042854082cbaa016ada2f03eb2c4f1bf47fa3ec9f2fdba914f44e4e15cfd2d8c71870d54a2a21ce074b0a9008a845cdad8bcef9aed9069641eb3a74d5b1666a8e9c335a0bd5c1b9ef719c880b635eab634c9b8ae68e89f0368e95f2854fc68cc167c27bba9843d9f611135bafe268e2220f861f1bfae735855c89352b33d7274faa2b49b36c847bfe92f2e9a6d29c29079bd836d7118f7f186610c981f9ff31c4ca278a59def774ae81b3b24c4435e9b9b63f164b6265f79dd928a0de9219d23773d3d86a1277489749c2c480279fab0c689ee849b971084b998c94a209cdc8acfe8aa23d3a3256834eeab420c75cdb0b7139be9fcb997f029b4f6a0564a7f3bde998dcd6e17b928b1634618521e077fb085f29c0e538730abfb182d1cd475ee5091962363d338e187f8d638726cf4a6617bf181949b26178cd20136080f84c1d68d3155973c97b62555caf0c3d56329bfe58baf226659e44e62cbb1e5d31a0ef48c09ca9f3573cf2688e0e9912340a23de2ade1d4095cd5a6dfe38bfc33563db8dc8cde29a3c6ca5f2529df3f0a218390ce04923ab16c1fdde53c98f0e8acfeac86a07fb16b873684d682b38ea533ad7462dfe010dd01942e6fe314b020032a6b14125e74e22fca92d539d33d2b731fa03a18c9a36aac3ad16cfc1ff80f92d28cd35c621d2c5a3d16b08338e13c585090e673d4d611ab21d378b44ab5e017993b4333331d017a0a68bfff4f7917891ea4980cbf65893420bb3285683dfaca34e9d8d4424ba8e8438bc686812310ea603436669c798cd8ba3da7dca6df265186f75baccff0a0c76460f57ee4470d5efe5b9d470b2d92addece0c9ba444b073ad95809df5615188b3bcc1d24d6f72aaed8e3c3d267c8b816257253f968e9c3a86eee2081dde068609a307cab6bad3a8215fa5251f15a9846b03309f954413833f2f2d23c9cb66502c74cad3edd5c52b3727be06db59b1503d97360c502915f274473470b9f11e62ed2c361a11075e60404b92c231bdc07d8c7be73c10ff866e5c23daebf677ff2a9614ca11928e5bbfcc7e5ef814bb4c4cfa20349c82087e687837d04c297e4beea5783f80483ab7d10763a84313fa9e7c8ae0707f008734151542ae738573826262aa164277c42530e833aaec494549f5ccfc97d48932de35114dc5007fa86993241f3519a171b3b36845b78f9c7b4db38060fd6c3909472ee5e56d0c7ab3ab8ae4839ae3fe12d3dc2e0666d635aa324388607346a5015df19b047515aff366a862449a1dd876bcf273b3db445c4ccd4e0b46720cc5928ee37f366b2828b48e32d6ed6633f4425d7b0aef8ea1b8634fa1a50c257e818d93dff1b413c3520f38230dc46551266fe563d983d4a4fbe0c538dd7fc646efed7a36895d6f6daf514a92dead81d19d143e0ddb047db67fb8228b06acf3efd941bd3bd3fd2253d950d11f533187d029cfa9e72ab59645d17aa5c32f5819d2c92d58c097d007cbb4815cc627331518d183133792afbd9b73af326ba568647d8fd64852799a8278896e83569f85e90eaedf43f3a0d760ce2fc8bd88d45bd2bc704568515d3447f6ea2859a8b1156cb49e632f20570e20bdd60dbb86bec2ba46c8e1bfed2dabf66aa71f981033125a3196d8a4571a8911855934c604e4c1ca65abbd073617e85e30354f496da6a53b6d4176b8ca311326190a4d819c39e29a4236685d8de30258575a729a5268aa4a4d28a1433f257cb1d424975a499da7b0702b1eadfbf47f46f216239444d9267f03c84572af54026fd4a9e0391d578028f6acfa9ec3097113f1276dc0548341bcaf9c6b180c715e2bbd521197f7146ac22502bb01671c9a10f00ed7ccce87bf0163bcdf414f0d000c26818b630705f754b05828d5c445b129640b30de7a068426dc51deca87dff33314c0ee7fcd5c594f93425fa9831e9912a4111ccefafd62647a9fd5940aee8a5a047c7488b1fe06d34712f9e236bcd18b6412aec61c2ca6ec47b28ec99584e6035de9e20bbeb22af35518e2fc85d8371b3eaa1c4fe6ef4117ad8584257348ec8f18251b6c8c7c538511dd957e7c515108863f2a43de2f6c974d1a43e94f08c6891aab6dc55c377449811e96026661a0adae678cc234d7708a6d46d29d6c71400126b99fcb73bf0e9f8481a1d5f861eddd0a1e02bdd46f19aa506051681f248c173c28263b2ab3877f2e5d8ac8e9d8a200f60620199f74da8585a7c3ef3d9fdeeeb808bcc1767432e0bb49ad728914950e26d851a3d629de444fec288eb6102b4bae071ee5d1a2aa18341266bc86f191a833c892da29722a30c371f5eed21b68d9ad1bf4f9db66bb727bcf8fea87158cd8d0cbf1ee53aed7ce346df3d05d3cf2e1e786111827ae5a3f72d7c04d90765ec8fd5a56f4cc6890fd0c32f28faba36397c0da147c4f6b4694b244ea6b1b33121280b2bd5f3f0f8cc41cab50d5470b2e2f818dbfb151c18e06005ac6f31de4e2020490dc802c336e71784d6168b2db1c9a1adf498636995eccf0d92f1912be2ce778b3469a08b888c4685887f1125dc466e49dbbabc34f9eb953aabe14233d3045663748cfefe953fe211725da207c8bf307ee2b0937331f748b01b3c6e631e649b61fdaab0910521069fd40a60f480425395083284c4e3c478e72572dd8d556c667fb8af271b63633af7a9bb4ea2884a063319823cc300df4a86c6bc4a47c41a34d8197b39d776a6893048b05ec23ca8749b09f7210503c5341b9320cae261758b934f1e5bcc8c04c87649a8bca84e3399fa186e935cf454843e69bcb8cd8b119d06fc3fe7803b2ddd110466a5b78efd0a75bc820e95a1dee998a88451c772f055af9a855e798a842745ca8205e1f9d61c0022037bdb4d7cd789f557c0602a48f38ccb84fcda371fc5612658e06bafb791a414ce15103ae2d7e8a2792d0e52e3908c6b2deab20ad9b2dc4fc2e16bde57be5b5238b74b00074c659122d8a8b438209e44d15395d1ed0b959abfba0edfb60d4c0382faf8fbc3aa09603c85d895eb929b81da1f34a6bc1c433bb12aaab7d95ad837eb9ba66652667f1788ac98fdf8f5cf591fd338136555d3e458614beac60205ae49c53600eb479f23ee57a815e760d36b0da4f66dd9c0ab39a89c57645d4d9edbd0fda7a119b6475cc18d8e36490f5c9d5e28868dd06ddb13caaf6d2e3cccfb9f7988be9f86a29a0c6886d927164e403af2e775c4e5af23e80128b4beebb9addff5a7a9abfaf57c7aecf754d1be912ac6e2807dceef5fa271cc0ef3624fe791a74702baf9471475d4119c9b3ed32bcd25718e639878ce30b1f3dbdfd437d9818c93718a04fb8d360e6ebd32a76a91ce167c9be76898f283ae3bfc6459713b83274729badd6dcf5308677e6c88330db460327a581f4c6d2abee26a2a2406e6601ce2cd21e9629adeafd669768862ec55d493fd3aba0bf5c7dc82b599c0544adda288f677a52269205a9a83ee6fdea3a63ac8558a5714ee7818af879c0b134ca32c89ce422f01bc887c45c7e511216d53db1b88d30417951e0806f5074c0f62b1ff892e8fd14de3f0849fd0a5691c35e5252a54b39f28035ca45c6f4c53322728a24ada65bf6d9b2ae96a32340129753aa0d4d698d9ed5d83f33f4853da0b040e23ea1259420638429e00ee0149375c68a4fa061d23aac7409c070a1efa4434f431e394d83814a49be4b3678dfc48e89ba44a695599169321bec3ed7ec7164d57fb77a6ff2e02df3e600163c3f3e4e9ab96802c7bf74820390535a3be47447477a9280a24da30482efe5df0cc79f134ad7d69ccbd2f7e348d069534291be22022fbde7c9be5d3d7cd31d46ca2cd2bac5980981de4c695349e78608d706d35e26aa79587894ec59fbc1264d7b079a073502f0cbbc7d6506c1bfd1e8ff1173fde0eb820a8483da662c95d803ba284f529c4e6862988242aba357f80e91f3c3717b3fc5a0be6dc062784ea625ce0a51657497c82b503e3b6f5adf9d9f1a3a878e556e7081f6c8d323b4900ae4671a9f09197f7e995ac798b9769f999140688accac352a4b68b6eea0d86ec5115910acc83bba08a45aca6cdf916dde3c83ae72e866920c296aa58cbc1cdd641b0afe44f61351587b1a2765d73f3952c5fcefb2c15af1ecda1b56737833a3ea679484630d752a1c16ceab7d40f6325d14b042fd2723f005d8b7b4523c588387cbf07a951579720ec58b504ce13338e9876a712f4f47e6a6599b2cb593da4341e6f16918e6d74587b9b8b35cf9eca499a643f5582c196607b4fcb0b204582f4a8aa43c7c3c9d471e2faecb4c0801b8dffcbd9c6c0452153814029eef5dda4e669d07f30182e3808b6f642a3b5c2222d9291c6827944529f99d05d81ddd4b8f0cf437eeefba6f4fe3fbc2a70f85e033eddb01c6d31e84e6b6fc31325a28a85866b2afff6c2956246391f399758dd9b82de78d978b4b7647d9e80de626758edf7a6aa8281ce00407053a23e0d465d612a41d54ee696ff36e7e84b3527c1b6e48db4f19707f268cee3f262febd03fc6bdaeb69e0d8307ee96b6dc50cea221285818faac57739fbdd6a38b7215963083fe934c3c58e9a147473c7a73bf348de87da595bceef2d1b7772b2acd4986e080fc0d83b91633af808a2796778fb1fe08b7bf4e1d882279b3167fb936f8c73d45c0c98590e94e8c42da24873ec793b0c9cc0f364bc3804c5098d71eee992a9eea8de7096f101c5d4de889a416d160f1c8423077efd835138c27b5a5fa5a913062cabbf7ecf4ede3a5e19ce93d3d92d5cf6a7d4195895caa7cdbf18c18cd91cc2c8c5085b29bd3c97f63e0a62c1f6fc0084109fe7b99c7d771fa1d9417b918a3c9f59d25228792590f80c5c79e266c0355332cb74f954e2740b5a7c2279c2c9ba5528e20629d95194b0ce74b1169333611721bf61e6640223e533d97e1a40de1200d7402b145c3767c4e3521d48e93e72e20f8f5e0750970f64d5774be2bef95c3af3987d3680a247302c6c349b517d21d60355326761c16782a227aa62cb2c5b7267ced9cbfc069182c1d47eacccbbae59ba245c1b54323a928407d7292eb8f8884ac7f8bebfeda994b60296885a4b9f4341b3cebae4ee71d389d769f35c072732cd9b8a67c490c7e2fcf26136e4e8569fd9dc8c8ddde8b617bfd45f764cac2c6138f068329127662f56c07b45015fb155241b1df178a2bb4be22715564808af2fe54f8736536f479a15246fce52c9a98323051388c4fbc9ecb076efb64d20b8e3e5e6927c335a22a6d1221a7f4dcc88e940952110e49a32c90a53c4c76c329ce65a760617b7b8adb5a51ea97bf718db251b598246f3af42384c56b786c5637921ad82660a49b96ee4bf5ad50d1eb80618b94799fb348888477977137a97b9639fd68734475eac7bb99819a0f7f7f722401e2d3c25f71be5f1271a6af13c47f75e0cbc5d541c2378d4ebedbee9b775bae817cd0666fd63b4a1508485984639fe8f573898e2a18ab99abbf20aea58c38f0ebc62dbb8509a4b7a0d7d765318727753ff742540b40e4e92e330de79f1cc04968783671fda5c6816ace29a0df4954246fa5f0028910455f7dbe6396aab4a3296ee4d17f9c34df15863fc6b53d3f62624d79a6167db787b3b0bec90ada2f5e4329e8371d9f05b5970d4f3ff44447de6cad468f1d42041710fe6671f7d4f6f76c0bf9450b038fc0c8832078a8880553494ff3c76a1735779186993bad5248da22132de3576ab5a0eb84817d15eceebd296ada906cdcdf5259b775eb65292024658e0bb9fb3b24fa26ff959331948cf7485018e8801a45c74b29713f876492212d5481504820b7d2e70acad983937aa72a69ea41fd5b17136e6df7a79b6af6bea47c1d5a5439f269cc544c4c5f6e2e3195ff4351ab732bda33598c5402d115674b4ca2ed069e2aa3e8bafa966fa1014df7a29ba7c3733c7d8489d970dad0d16cc143208fec60aff0a8d2a5ee62eb9f44bbe8a0f0fb52e48e6d92623d3562d7d6964609733f883e7799ee4a778329067699b4d5241b0fa04e1e652306fc773204a754f94d3da40803c5255b9bba38cb11901700b7423385f621c87c59ce92b342034f476ad9c347a7a7d07764fa4b76622a381e360be44862684c2383dc3eb5d978f004ce441f4f0d4c06a653c16b8e36e5f0f83f24c9b030fe517eb102ac310afdf8a2c47bd871516abdd141e998728ea92743a1ddd7a677c0d0d704f7be8ac18aecdc6a7ae14548e1d57db2cff81f073a091315ed8f44d4e3777b3130e6e48a8b9cf95764802775fae0046ed7a61f6006c82b14decb703e35e4660fca9dbf6f84c77cee12c1e0f2bb52ae4f1ee908332252c7949c505e75ab7f0d1cbf6d0821d849b1752988b8ebc3faa45af6a59a891ad478a28462b7c4502454e5e342b418d18d4fd1be07d081ed3f8bf1cb2636e40a38338d369505f86e360577b2cedf39d3c23401cf859a6efc5a15f7499e87f7b4e2d7111620f0f342a0cc585751e5963d291eb3f0d18bfc8dc3de7c98100eaea6cf676882ee202a0cc093f221e04159dcdef10e2e993759be1792398cc507d85abc68f8937e200de67580b482dc5c960fe29721c66fb2f99b0ddc54b94c4950d86a7e62eb89e5a4404f24aa669e9cf88c7a9a670f909e791405d4bee9195da40dce32876653ff133d46faad8961944a0624a8ecbb077a15917134a30bc785851c2749dbfbb4c7d9339df461b4da4971b6e87a2056001dc018e7b47936a56e9a2cce4c7243b0515cf9c8b844861b95c38b131e8edd2f8986bd336ec6e18b2c239bb97d8efcdc48cff6fdb720f6345951da1da361d2fa0b1a84b04335bfb74af0a1c17d351f36e423cf09cecada32d573bae9609bb80856a1458e1509d627ef206bc7b3f0848d5e29ce33e8e56f65d00ccaaac594339fcc7a81855a01ff6d1bd8b4a452ea090c5864f12a613fe3b545fafd11875221268e7f4e8a260abc5f1a84870c196600bb3ccc5a29bf483bad6804a305ec660063d30a0730e4445b16e65f1f87e01ced3a43b607c39c9c0be59e0e1040ee87d3d42c7b13a12611e5f11265a3bb14013a62ea3a033a2a8b2126486a5f9beac2aff771021afe1546cabf1096cbe6614a490813903460a27cbda55a3923c057055f06adc3f15c8b9ee9737e00e52fc75f004e19e8ad3b52c32147617555cec66ad5c17b2aa1a54fadb482905f4edebd9c038600e751741db6f6b5e340a59641eda8fd674bfba45df41d6aa06010103b9236c49216a4671e594ab5a8d6ef1052c8409e18bdb04dcf1e165d81ed99fafc12ed022e4b48a1e3a22657a4a10f55c57ca75c4f214eb21e99ee31e4642aea7e81280889741e09a373f62a8c916e259e54519ff37c69d24e427fb9f2ce7d78b8785aa8e80c19f789fe1fa7180150352f632eebdb81ee0daba2fadd83c61c228fbf238fb826599302d1783e9c16c167e7ec8fc6d0c3cbd841f0d5d763f7ebe7f708b0c36d2c5a522a736cb311b4a2cfc31324824f41f6f1700550ff48cf0a171be0149e90bef9e58d555c7d593c1c3a66c3661bfff45758823824cc31d92bf3e014d2ed5fd2037f087d385a9caa33415fe4a81eb01ea383b0b90b7fe19ea74b804dfa61bb1381e859610d38b54acd39a7e121bf3b3c60ac0421b5e0aea8e2a615540f1688441b7b8964474593501644af264ef8c6ce9398220e3a2dac7a5ff54d9b14465cc34525eef606db3373354ffe09f0189598eec67b6db93906b7bd7f97668c4c5d8e2cfcb5ee34302d2971b837046e57dcd0d928778cb6e0fa320856c581cb63c14573959c11c71049a6df510692591aa97562033ec9ff51463cb8a65bf03b01db10206e0f66dc8cf8c496d960b898aac42eb5ed4c78653b259a885bda316dc797ed790617ce9b98bb337ac17966a24c6a822e7fb89dc6fe0ffab7fd750dcfede224b3ef52a98d99829826c0bafe60d9bff0134fd1c5c5cecf819d8629f0615d56b30f9e0e53d3e6f6207540430022784206d14e1019754c1dd34da0ed1971ee5e783643b3e206874ff5f904d8590d7acd8c0fe5dfe8868c58477e26d78bf1593ab10638f12fb62a4f8b4acd4536d5b122306ace40c213d82b51123a5b34a7907ef04cc6867fad2351e3a8239d801d877075357e8605594671af50a145f6b04201353d6d1a371445febd323d6e41ed50880ed719b0e549dae515106095178b942636f1669d56a91f1cbe9f339e049af6ad004a63b9a884ced1c8e2e9064d84f2e9e7fc830f7c1d5d0feeb411ee4607bc797b2dc1fb33c3311ed1ac143ad901d9ebe9c10c383701f3074381b61767f8a7be2d2c95545f39939ad3a23b1728e08f5b0d61ce505a974573d1301c631e97d80e97b1d5cfda964ef35c3a7c490b01e530cd4593161ddfa0a9306700aced82bcc1d6da0d48b09bac18d7c241e67ae5612d623a693f405e66ae9415fdb5331ca814c3add79c78a237165a134db4c86244127896d9a7aea5a113ba80ea77f104c139b51e52f2146919fc9cf6c60060b3f6534e01f5624fe5ac7fc09f35ed60dc5fb309cfc9d1fff3de3d21f277dedbd847c3146f63c7ad139aa3738f04fc1f6a8db508d28f08f4df5f6efcabbeb54cbe44ccb0d58077798bc5496fe3e155f3e1ff5422436f45b3db17148fb1020ccaab9ede04adb719dff373ec5fdaee802a4351f60c5f7ab088536df68849cf741d47bd27638e0b4314ae523fe59d751154e5716810156b8834db032e7facc75b525b87a0efed5693f13fdd8ff5acf60860c3a2cd2d2ee0f9b075fa330c70d80d04c3df6a91c6ab7a7f04794ec98fc5cd500c90555510fc5b7c63e9fa18c5b9bb080631462d86129ca0161b74f6fb993040bb7f3ae4c3eb65ff3ff15ec8c3b5cc9195b1c5bdd4c7b126bb70d4faff57c1e633aa72df3dab4cb3abd6684a51db5b7bd90e7e896a63ebf01b3546f5221711d02131f36bac35610f992ee7638e5f99a3a2896b80d30cb31cd0538c33ea70fec95e8e815c4d1faae363f05fc5c650f6cae03b7872fe9bcb3af06fd6cd4184903b4a73d8f0d11a915b752f717c0534043249b139f5cfaa0de1b18d6cef05ba5dc5ddd75e0eb9f2cd3bd34e3cc9eef00f786f9ffc1bcf8d300e545378290d23507fefeda71ec34566de689256ad96ad3e23688ea83567d99c7c1b7fec31663463eaa0e9b6d5b6eae52b659ac47765e2f769cd1d09d190c96233e0f00e0635ffe1e2e5ad0a9dcba27c3013a23711c4403b9bb6dca9878c30b0f53c1d8c16abbe1a00017d4f122727e19a7cdf4dd1277ae1c7068d6053849f6a9074a5477cc6f436511d331d150460ad6562b6d3355187f84221b6793694e9cf8584fd5c76a54e8463847c8c847e87ad246ed0f0ea4f3c21cc8f870afc9789f43c29556c745ae005672206d903eea64f901b0cc37c59bde3ba8cc5bb1a095458e112988a82e258f8363c171704b242f7216219c7cee80e3f99223f9cc3fc75f84947764f719e99cb6a2f6de4db37158ae624c5c0dab494e51b0180aa1fb8568d48d6ad875761e89c6f7046efbcac6b3611b61e47b131e156ed775489f04fe54ef9624fbfc41a655195a51edb2136fe151b4d41d2582da2a286521c52edb0053fc54439441ab18d858845a3d152bea2247cead5a3dbcf81c996b5bfe56b07ae0f8dd9848d8135ba99c4e985364c49f28fe8b8ed3729df39f933b71e3e65e4f8097b40dcafc0a0138ef1eaefd26d108895abb7e9692b0668f00cd56257d98328ef8f205da530a3b7c00f718a8a74950ee16048ff0da2c3ab92c5852de07608cd760082cef04194977fd4c5fb6cc99e055f5241af87f4a6460745fb110429d3c2eac368950ad380146f9963c38068a4317ced9be65ca63b66c88d64d2219839e08c2752ff9c95d8f301708ffe93b70fe90e0a7fae412343dd2d434812941e35926150698505512c57736b72225204770bf569215db25031dc244217ad27c68b0209fe4f077a4698532d0138494b10344d876b21ed87d06d23b3143860f2aee6edb4db9aac731ce76836d662dde52986eda249be1062821e508d8f6aef5819e6e054872ca7d3df92d18b51949195953961b177e5a479a6bdf73ffbc4db55b7000512a15d471970223257886cd31781338d5fdd71068f4396175250a7392bc73d62648c6aa493a10cb7d2f004d3d485fd370079dfa435baafd073c1474c262b432a307107a9bfa8461d877c4cc1b95b5e6b94dac0284c88b4113ddbba7960429371e96fbf337871663a370d37a497ec0ece0356b2b11909afc50d0a601d5225a7a0ecf0bfc49ebb975982157837e65e89e53e3aafb5b38c979e69aad0da13e4f7b1a1d75c91681da6d7586f9f42588a92f31fecd9850d792910858b0410791089175f69f85ba6aca1b1461a7a00306eac03884d9c5f2e92e14bd4630024b9a5a5c20bc0adefb4bba95032ba27d02d317d9e0c2fa053c768300f927ff81532d22a9e60f21f6c623c0ba1ad03588ca7588c4f0e143cee0a40694eeed1147b8bcda10c6ba269c261d836677e1dcf49f52ed5e16e6befc40c949d8be8aa05a28a86a3e4ec0087705422f16dc112367775df422ef8246065bfaf8f4bb0266f06c477bda2429ae0502d54cbe072454961ce7f03bbb35274b20678e50d2ff42177900ec27107a8197bde3a1390c46c76f4d4cc116f254f455ca64d9513a483f69a368b3493b209d92cc47031230619f30196b514dc4f9b9b7170f6453ae83c6b518803b038b58a5b4e9e2afcb1eb632e4a831e0b0e6ace621e5f7a14c97780ecd24824b5034207535cd0d490d5b0c038c215f85587a7134a6f7c7759786b6cc2304041a5c9606472566a3cbab51b2a28c7de13ed07a76f4e06fc04b7816275b17a85160d4fac03fb30d66b6728eb6b962fe591c9b07c7fe2949d6ff967a04276789a38c361b8f12a644fb7c25ecc509d942a56009482a6c63c1a879e81fdff87612c2b0ace4a20a104a0a9e4f5b613708b7c79695c16234f4b579da5001a0bc188cafa198c998abd684fd46100c7654040216c641c370e2a1ac9506f19098acc1c84c7a47bf717204a25d321a50d8e853edc144c9acbefbd2b68e60573238f391d595dfaca501225cc0d65431be17fac03c86c85bef467b4fe2dd48dd3b597caa931cef3f5e79a9b77192ebeed808e068c618434ae20266b24c3e2949244f7dd4f2d88a00c7848219078fef9fd410f558e02d1d2172b33e6bdb2383c211285c2999e783c8291b5d1f01351b69133a3a84738f267777ae3012adefdffcbf2f25a1439f95e7446a3d258378cb1926d20eb6295c0a3f4fcc3a59e8366f3d30f6e32f424897266bd8d559ee491e15deaa3155934713919dc1504a5369c827920a57ca2217e66ab24c7b9c2263669a83489a4868a1b8b1a6422b0166a54007c34b366f4007ee11db828a2797291ec717850786ad9f1e67dd733ed9f834c3136317174ab9fad6c5b1390b29ea356028d154a8b2fc84b2164f5e38c7fd2bd05b0f95ce3a458313c46532d53287421d62017bc3d4ca18224493aa74229506c1491a4391bb1b512a879896e4a4d0b247a3c115ce3aade1d228446fc49a06c72b6fea9aef3d5cd8bff735e602762170d2fb0682806ca4519f1297f531021503e18f8c24103317222a0e4c3413de796a67d1d6d51bccf5826237ce53c84f090cd7369be2204a15edf5f22f1c191f872728648f59108bc33374b340a4123a71bc2ba40284bf8b10057241eaf8f03088d8f7464247d31a31ad29d40f88613dd5a8d95c1f026517158e96af2b6d6b2c6c9c34d38a1718d62f9b74b65591d41d2f4b148c72e90dadfaa1efe135199d9f052db89f7baca5e10621e17fd998670121fc75089bd55906d09bc92bc55a583a4d1537c8fc67c373924b0a0d10b12905017cc50d22366b571df4a06fd20aecbb1d0dedf3d39820d4f8bead73d7278b51d7c3415051813f0076df9afc2de8cf97b697699918b57bde13665305e21c397183acb835057c9be59474355c53811c1b450e63ab44e480a181c2a4c883242a9079bc0cf48dc74b7e7c75097eee617c30ec738f42052e3cd8f0e80c04abc0ea12df2079a945164dc2c14989d6ee902cf4f6c03d4a2e43842bdee8dd822810bca2359f5e760b4ae3b1157a432c75a3492d9b0da5950400612880cd82bf9de3f3ca0bc34421dbd7deb7430cffd902aa14df209c7c114718d5d616a564e4922d854d668a55fd3b6312ba87a599c8ee73d7a5d01bc6bf73f33d87ee01bf2c406dfa6b07b91ee61ed13a6adfd466ebb2c17f19dffeea66b5e5ea8007cc1a0e425b255db8c7f15c91be41f0bee3e2e784de46e61ee135fb06296c2e4fae003fbd1f229c495a3691a6793fac8a2773fd01888a8fcfffe90e745b4ad155d1b31e038d6951a59fb939750ae38fb8c2779716e38027c528baf3ba7b88c06c90679b0884e2c03b30de6b770ff069da96bd3fe83df2d95c190d15afbf5d653d18a6d52279c5a0f770b4975cac7790b248592a38ebad4749351c12990ebcd37a12ba11b71e1d96f37c0fa8b830e94e9825e9ee114c347c1ac0f0354f10dddb546e2c73f718631f5b163ed882de51f869b1839d1618ad0c0c73a0689de792e766e45753e1e89c6a78404fa62c6434ee1be67d009ea7d4969c910a8937f946578bd3380e1d7ef74eef2099892b1cb4b8d0fea0ac9501bc65eaa16855110381a108ee0648f1d52b07975eb3c6c191576da32660fa1e12db22f2c375d6daf2398263a3edee514e8cb82439d5227ed40195e1414055d3dd83c86d091f001725670b74507fb97b080c586421c8570a6694f3e4da3f02c41e565a3f7ce80e7a12e131e3440252527799840e4e0aa6b9f02762d876b0116821165f8121e65a2d775518cf6e128c74e42ba92832609325c3d696048d376e62006202fea1087c3bcc2c01e840075d1fe899792d3790f921f5e6df7c366e350fcf0ca151cc878ccb361d84ce0d6680fb724cdf38330e1f27db87c1b1e6cc1310f2d109d3871595b2fcccfa78579b07228088a656bab6469255770f3848343be7cc6e58cae18a75a916f974f1a2a39a29353ed105b99a7904fb3610624dfff3d3cd9f126fa2281a951416cbb91c6e0f1f1a774d349529aa03ddd362fa6c70c601a34a9b9b4848492c6f5c660a03abdf8c1a52de622db95118458a6d56a0860a85780c0f0ae2c025b89f395e29ce4911e268126a9518bb256ddaf74f67bb52bc0a6d36dcc55121e6861e620df8964dcc8a25f82a7c0604f45a03c79dfd19641a9c61c5fb26c6f5473c2e4c49a177372372f00b070de2a0f0622d1b308f86bb8ffe77f92374d53476bf6caa1dd336c89c2874a61a0bf8d1bddb68a1a5f1c2433f87ef5cfc47fb75e708bf432bbc53c5286dc5a9fb56d92b889674c7022dc7fcbcf83ac39815ab4ab2109c5a690ecea8e6973f3bf1bb7c7769dfda0ac12748a95d0a94b0f5904271d061006303116720eb9ab1494b7de670547ce1b7e8f013214a398f72218a96249a7a734d20786bc01ae478dd3901b587481b70b2e38af9b4546c0fa1161629e1b9559a8bfb91d3707a041b20d5029d8f84ed21ae99fb9879ebfdadb35cce060a1f106db28f46a4a8e856078a3ea01a6a7fcb05a3e7c0837915efc051700ed71cbf663d0256c3b0c2949cbe2abb61ffca16f5d09f9c4332ff6a6cebfd31decd7785ffab439b2f58e24edf1d1a4fdd8097337cf0e67da834b39d6f7db229a455f0420afb26fa641fe96fd7c0fffd42564f08254fcfb2b0e94e607b483c3bba53467a220e82efe0ba9761b3b2459562ed742df7926a4a31c8cee3b1c85196923c3dd853ed61205346d80320de7280644604094eb51ef8d96c26729e5462509e557594d4559dc608883ad25cf301f23ffe2fff83f0fee23305b59c03ca852b982177c03b38f6784769aa98107ce8b988df9665900a10f482a0411f4af72612ac0bf08b17fbb2a1879fb56b89038c6a500a11f222428b3ee47dc221efda4e09f8d7aca045df3294e0906f6587c4fc6b5ed0a3cf6ac46db0a94129a4b017012dea33e44ff3ae7c6a9eda801301af1458493f62590ad1ede19239fdc4736148842959d7984e6714206378bcf240d3f786e355119fcf7bd35740cc765c1facf1b552374d1e9fad46ec5cdb46322bb36a4863d3b336ed4dcbbab4330d6bd2c63459875481c606959f8f1197fff4bd0da9756645389e30a9dd8c518439d81a6836a9c3c0a92fd4037cecbc1c0dfd6d2eded5c1514d1c5cb88ebbd28429e8bee887e16234dbf12ac785bf56c0306b4c37f2b677968eebe48ed1389540107fcb262f188e5d4938316331c45fe6fd6611d25a38faf8c1ee5f4a8de24cf888e20cb0784ae95c5ef8cdf40d7eee269b3332b1529efe7e91cc09a76f7cdf2c9585c88c82751b24cc9ef5d6967299f836f1cd3bf5f5dcccd89f6e6867d0c73f14d21368f95410262cfa804c9f66d68a4d250b19ab47d6b5c8e9479647e3b43b4d728ddeef9541b6dbfcf637654c6d5670376a7be2fce9f51937fcfae255b3a88eeaa9f76c1fd2239f8f0371b1ebde98d8058280c4ed161269ebd2d3c3a62271d1e7992d8b219756bbf399e0c186b99e8cb245c7b78c763e22f4ba32772db5e3a2af20a74e2b2f4cacb871b9a9b365787e36e6bf870d5b8655764e1c8bac9990fa6be2e0ae9cef4e5537126af2de8df9d45be11b5614b6a080326d4f9d21ad95890d7da51f2ead52d091fcfbe2dda40fa15720a302cf58c878170b22ef4b1642183189314a10bd2b7400b27adaf96815fb5c4c7ab7e093ab28a1b8018dc64129ea444e1046d19d7e35d8482dc15113dca6dd9b9712e7287a2c6c52e8d8cc11d3d24d611b17991fd92324695fc836170a5c81fc697e232b297c08d49e4491b74c7a571ce97ce3f09759d36e2d7156134ea35ee5d6ec8a8a32dbd88f75273a75013b203108594f56738f43404c3b6cba97456be2d0982b8647796126dd9969b4d21f0d242a16f7516e551335d3c041c08b45c0d8c486dce28dc0956793ebc4699e288f402b01ee2e0096bc97a079701f7abd3f65c88b426c98b27f292cf1d3cc5af202962db7e5dcc31a6a99ffb5b2e25240747be45c82bdb5c3e0a621bf3b63e0a6505e735b638dcb049a5a86cad92f640ce268b67211f11fabae30134f6d6f3e2c5ac19c724f4d97b05a6f63e7db00f5cac04aef8fe1d47144630be1b0a6300fba0650ac988b1e0f2125b7fc2b7a001978627d51fc57d33ff81f5393827c94c0cad9fdb26a814fec8ce440e5982677c90f75b13ae1c2e30270c35ad8ec23ee44b24b9461c819c3db9e6e645d9745aa50826cbd2dffd371c5c308f7eb8c38e50468c8cc8bbe7b41a74348b4f986f2234297bb94c7904e53f005a2f6cae1c1d9c3dfd3ec542990ba717ef2658e5a5f8ad2751830ac1a291cbcfc61f4b3b2029352ba788c5b61d2934d4167fb0a2dca383458aeb578bc75d95eaf9707128325de4f9a47ab460e613134de44e744cfee83ee002bf377558f05e0bf42972280a3a6f98594d535be3e51bad64b59eda31f719bf80b7b01b056ca4ca601ca5792d7168f0d7ee4ec58d79ad99db65b526e888e36fc865e4ed1b0cd1351044d4b0acb997d0b6042ac53855eacce524fc17139a2b193adfc4e204fc41cb396a8a8e274f3cca9c43af7596fab104e33a1dbf944f0fb03b0c4b994c615862a2c12e47d3a95a4bf2ead7f8067df9acc19c42e5944a41d567311a42f351468a5bb6525b0ec99b436467f3a2da24f10d310026986302895880a630e374a8f573120a6c38cb3528fd3d5ec5713478ed242eae62620761195170b486face382721504c23dfc6a1c7010829927d53bd9dae466fb1a2a71c6e57b95dd758362f0244c93f5a4973d45601dba15803bf5769f27757405044c398e9c8e2ba7f3e8ed38723bef1d2fbe71a9cc395011fa0fd48ab78f3058cf8f029309acb719d84285a0154228e4aeb8d9f6e24509faa1195809524931599cce511cf02d7001c4810aaeaa65dd8efea21a0fa33e40453ff80360a4b1f691cd3d8ea7bde28124b45a12de95ced59b9599878b5c92f68cede40d9578f8f71b3126c3e18954570a7e539748d07bedc10f3f1900efdf72786f3ff2411d61e6f1537071bb453900fab0e79ec91a6952776bcaf8e93c21b6d61d686c58bc0eb712d1f5426820388bf6407d10cff61932efdfb81f627c43f0c36ba711080c592d7ed6e31059b9579af9e8e0f425432055d3007478ebe97e50b60a9c9f71f00e6fdcc307a644927471ec6c6e8787e2b99cb162275f9acb0e7f16c1fa2b52d77b8d2c062f9c80e75de8764a3ff366d6cdac9b1937336e66f4a679263e4481bec86c0e785b1eda29d1c98f7f329babcb43f7a7ff23febe7a612f4eacf9e6fe4d0bc52045113ef7687a85891438002e2d3d73da0f2aef7356cbc3a07ba93d2eaffbc0674e2f325fdcf0705d0ddb0f26fc1909a12fc0995f1fa53850d09591851927d7d894c5db1de2ef0db5ab5c26d919fdd16b8728dbc8a00dc2cdbb076f052d8e5b663e46b1b7f43cbdf541a0125663710da7aa685770a605bff7dffe36cb3ace3fd9c2b0e146fc0f0cf06e19bb610fd9807e0309e83c1769c1898c8251a9fbe0a45b42c2090254d0a5c6c97d78d13564c537b79e14075fec41195e339643e6807c9698edab307504df2171b9d5bef0bb4dc79a7d06cc5ab91faae4ee2e6427a5d4908e2d621591f474e73eb3eeb18a4bc23b061fa8b0763ed9b05448e19c398ea5241e9c89e7e4b171cbe2ea9ea114bd6a7ac3394e75acee8df602199c818614a2b596aeff180d92bc22fd19960e938cceaa749f33270bc7831e99858a363972e7d529f01ac14edb3abb4ef4fb08ca9b75fa35b2ef8f69fd6a01f44229c477bb843738bcedc1e358e9d7c1df809fc0dbfa5117f885b465eba31c9ab658c5bc04db2277d5335c2f86e90b0c3f7f66ad94cca51e02953a13e62eb9b51458f453aa99dc4d90dca8daedd17cbebb09c6223324b9cb4356fd6c05c7b96e0067484ab3d603354424586b95badb57c4f59702d91286a89c629fdce31c5b4af1ee26481602c8be4228dabdd77f969de835b3ee2e739539ce94fa74ba55a276f7670774afb08b4b178b9e6c461a3ca5d4b41bcb9c51ba08d9ad009ca5750671b8389cfa54ee2f3430253877e35314f004bd46ec03b3f9fba51c6871e8581450629163fd433681477df3be5de2f4eda6844c5dc080f021f57698de3b2e6f72ebd305dae103f5da7c656d3a55fb8715b9dc3dee2559915e003d9addc1082a301a586189d9794b7faf22081bbfd2350e6ce53ea3a74a1ec16a5d6fafe436ebc73156e629c0ce696350c7624538cec6ad799ce221eb26eb549aaeeee78ea2affe251508808e1c5878d53b9a96e2a08459988c802027761a951c0c42b2f5e14f0e67a1f18c2add4a7f1ec0453917d1927622c291508cdf8ad2c652945a26676b6d29111f3c812d999cfae06fb3e815759cb278482a58ee64ba96bb9412e64b4668c96554304205a6bdcc42ef805e0729d7c7278673e28dfbd21d8222e9b924db0b2c30cf6c2893c0f42eaacc05a5195996f697b53b286d06c68c378ac96c59c187d376da4389eb18a823e12ebea94988ee9f69bd6c16d269bd87fd83ce03fc3d9caf4456f0449a3d2ef2f254c5e4f2ea11fd73c979183b3c0309be4af82d0f40cbdf454a732c51464df5c433972380fb3b370fdfa871c51a9881e5b550a2771a874412db47d662233c3bbdb7f3381e0894d30e310a65299112d087876abcaecb50b6070253aa770fcb87f971c4ba44164e6f2ec051cf87b5e9417c44ba1e3f78aaea84a5f87f4fd62eb51d9daaaf1f1015427df054552787473e8891baba02a5672f86b83bb68dfac4a9462c50ccc9488891aeee2bd9800f0f3a234760ef925b5375e4c49cf16cc8370795c804eee86e04c4bd62d9940f17ad4815f0ac8e3c5afa81266de5820aa24aa3d4191171af6836e6cb452f428173391b5dc449887a0564f929138222e28da2a07aaf297f6af455f0d90ca4618fdb88b75190712397cab616256864918142f0e29065d63e2b484e264f77a62b48f0b4796f43300bdc923866e09d6444da6a534ad3ac3cc5d63e241caaead402a9f2f4214b745d303b33ef21ebeea3edde8c9eb485a5267c0aaf09b0e8b968c99cf4bc549ca90e2f63c569aac4527ab023db8512c4de58b3cb4abbc5be08b318d9ecce522c8e19c6367f392f0cd692660aef98ca8cbb2929381197f8ffd86ec5c34c115381557ee376cc8149f0ed1687fa1643033f5141a5d2aa405cbdef35da4ecb5865710ed4fd203d7f8bfb560548399c975aa23974f7a99f600a2ed82556448169ba0f9323aca45c9f2f2de6b46bcc6a9491129de294c6ab547a474575b6793e1bc4e4b88a278d39cb65790603d28ea0c38f3a4dfc414ed49d5979f7de0873b0c69ea7a9e0690263ff338470d337e1d2dbf33edf934143e4d649ae0948a555d6f0433444beacdf5a3f54e795c9412daa0c4e84416418a682e37f348dc2ef39582030ae6622ae716f793bc4f1510642681ca7cf2b77d66fde5b290d826b0858500b9fe762e5516ef0cd8b2cf2903f9a166d3e889fc329e466e406f27abdca23748047914883e1bf3452a41936fb4ec6eea749f687c8bbc5f158531d37328dc15f106fd4358326bfc8eae62fd28d1847e6c2c651d76c6542011999a48d0e8b4df4a70e7cc08883309cdced62567b0a4f255544c5751064b8272e60eebcae3ce5c434516fe84a38ced3ee3c92b01a618c20b600d27e988eec8f79173e006f89bd54805675286f9845a958bcd84155a8b9b240ed7ddd908414dc60d6b043e5c5fb5fe67a08cf2326955044af6d686425386ec4afb997d79090e5607eb7eec10570a41ac419d8c599196061ec360e277fc5d146d1568682e009f440f50a44dfd90387c4dbd2a4d6efb3f19647725dc3a2f1491c653148bdc2b53668f43d3f8c54c5992d75a1bb043e6cfe47e26c18ab33e9f357a82ebb921d55699d72bac81d223b3919f2a07cb8b18272c186652e021f8842ab78697c4065c92873c6a85f63244457c6b2119f1bb58805ba391b59c43ace977aab99099d0a246223c96a5aa104e9785f337090fadc790faaebb86332133546da973eff4bc741d78e9a4a0ac4857a5db6d3b13f26a1401ebe4ebc91235b680c230eed27d9a61967eee999d85d1a4c7290076e3c46e46836c5b06f484d7a1032d70f94039d8943262ad10b0278eb5a46ce060e71c800cd3d86efe3950ee6c7fc28afa48af8fa65239c602822d11e58245efc3d8ac1705605a778187123d9518c902de68b004175801123ac9a2bc12b53f7643c43c7a948f9d61c4e6d250cd47d701eece7cf6da870971010689a109a39b1c070b2d0408c2e3e7608ecab871fb090cf1c58e8294efac5f897131772188bea9205ce07a40bf8b63a0e5d452f26927ac57b84dd1cfb37f52173dbf127db8254a9592c0400ce9be77d7cb95faf4bb88b1b31abe7a7073fbe9348d217cb8661fc60278e246bc5d369c0ef44ff4cf1a662868f1d46814d0175216a3b6139520fecafb8f6e54eba23b50db7a70d0a86468bf739a91b5f1e902a1a5d1da7c695f600e2c4b2aadb79d74263ddb0dcd099365c0df6caf28b3bf5a252d5d72202d56dca986012174093fbe264906917f239d9b87a664faadf8f2c027d5201b308eb7ffdd9c28cbc53d6f9b392d60c1b169435c8cd7f7455539c7854bfb4f69b02977866cf372d521c60a4b3fb07b28c43c24f08c33b8a865c3a21ca82e19efdf9db5423ed0610108d30bf35a191b5131fca233b45e996ee7deb58459500bb7f828bdb4711132aad8e404728520eccb18be7231978fc178fb63ef7c9578c6a330acb2ce9549760e575c319bc8de910a002984862ec1afc7f4431b0a727184d14eb8dbf1bb0a85ca023b4f84aa66c94c30332dff9ff1b3600424338e04d41810a3d1a00b277005428edad919eb0349d2c0d7597dffec7922156abe9a9a2e9523ff22eaa582a48e697a1c811d5c03e92eec621ba7a6ac46b74dba4eb0c466c8f95624b75fee651fac38cf705f1f55d9ffff9d6ad39d194a5b0e853d4e045215c303a0fbabd35b0e3c8026287c7e66b5034f8c224303960d55f43741c6a0184a435289d9b67f4f99db946792d50f432371d57c6d32a2f3e2bd25439061f0d89f5cec1f36a3ad69908e03f1f860f7b5ee63e11d8eeca6db500db4853a922dcf9a11af0785c58bd9893c68c630a040d23c48f89c428939ac7b40b0d2716ba1cfa4db881c22c5669aefef09c149076ccd49b6f9eef060aa8c48743984459e336a9447d3249c2a488041950736f5ea3959068d6d8d7696d4d6d6b109476daa295eb62d937161623e1b9db2289b5f5214e051dc72a04c10436a0fdb90b406784a620546dc1a06337fdf3bf7c317abe25574a6a3fe26c15d520635d5e506abecf32b16d529a418c698f54064411d066c5f3ae95d1938c928b204fb096889f18918003266192afa7fef00a008134815c75be2f095c1a608e804b49f2e1b84b14008895c02646839f24a84eac55530bc494b40dd7f17c354d36036fe10955788b9b318cc20022242fdd9f5da5ca869398e3d7813ae928ae900d943c7c72efe6e0a2f998497065997fb17406c1004f6fdde26112e45bd5492256dd7e1aabebc2a7b1732b82abd8c02d041451dcb7470d96639c2ee2ec9ff9193395a00a6bf91bc1de8c616f26e6f9d547c31991b960dc57971ec0e4bc7d2816c42ca023dbbb440223d9a8c3470fc07dd5af1e1a0cb6a0ca91509c5c78f43a872801922fd267f09240d51290dce782217de6f84f5583c8a63f08c7b22904d6b180c187527c7ab8f4f36abd67f9071a1d89c366074f49b56c79ebf756088b9a92a12878b01616c229f2b287a592847106a94511e4ce003c9b287974e91328275c1950ebe6ce047c4668f77e4fe0d46e9af98189b5b8c5d8739a8f1ff3d5f2208d76184a0fc1c061dc1f8b7fb32f30d1bd7d29b798412fa8bf6102f955c04c8b6c63f6dd6ad11694943486b0f708860bd6c2f083825c294a12e15d1890e70d92ee8006e994517398288a424e5ed4fbb9af96f1793291ee329d2de042607c46ecdcdcc955062127adad5317306324f602ab66bc0aa4aaf228264e3bf56082be977ff311ef41bdc90cc743b4f4cbc3b708d618c34a991a06094e7b634bc6d287f4744c0913535fa749dcb41fca2e61ab21bd2505972f4cc0647a04ae5b9a303273171512bb28f13684d6479f445f398b57d9ab58f5263ad28950021590cea4529a818c27072291b6ee251390e456bb86f1602b804da2820d9e1d158a2713d7774a55b1370a2e4871667fbad731889b5c0e57a94541430f8f44dfc85c4b7eef0882a691b9845726999333bad52a019fd40ad9c4b660b40332cdd8cfc5cec5d0513166040fe64e4b8845c8e32d844cb9e8548bcd853d2bbcd68a9d20b18e66934f0c64e71c79f99981407399d0acc664bf50dc726b34079326e9d23457ee856b7bd20df6a32d71bd8ec93a7b35650f8eddefd2190dd67c4be41d3631b4196d081471b22da94ddfc2a9294738a9d067bc616c11976d425cd58e708bf6bfb2a81a190ed3bf551489b68b98d468c2454e18d415085bb042a8049904b01a219e6b27ea9c6f47503eba49f3f163397a838e24ce3f89fb84726ac95c8e1787b31e488f42c89a7e6583bed5661299b7879abd52b3a10599062c83fa912298841fdfaf404cd02732b9822dbae0d7ed8e78d9757e5ea5517fd09e692f7274455fe578a7417bddc19ea72f6d4b95bc2bceb29412fc742ec3e268f2b1817cf56eddd810452439bbd83033cd060b54829096160d373d3f2935e89ed7e2d154a9ca6e0aff7eb068000fcf9cc2b10e04f18a187b4b6fbad1c0f3c2e5c9c5ad740b8bebb730d4a444f4b8d4b44539410cdd306c5491c416c2bad99b18f584bbcbf2f48bf947d36c1cc3f128f28eaf286fd01e85ade7ae3783d4211efd420841bd61ebb80568f609784f9c3c1a81577981e0bbcdb6436f656376d67fd55ce225353cea5875a00deb2b9e4f5eb5562cb2cdc1fcb168e44f4e2d1729515fa9fa0a59473e03ec49637eb7b0d79a2d3f37e088fb1f65404aafae2f0298c2406314674251e795bc9086d343b706576ec9bb49d0e373931ed6bcae51e79b600a4db24d533918a8a6b43f455b5fc24ff7601864779d37488a0586b0a1511e806d02ba84bbaa69328858ba0b161d7b73097b8ac71d505d2d581d6660724c8550ee08f038ba02912b0adf2bee42a6aff9ee7b79d7dfc17c43393c3e2d52899523644df394fc63ee8eaf8c6fd0d509e4d1a0a10ec240b638b74d5af5100d7ca4088243368e5b0bc8fe59580a4cebe7cb864f9dc353d52e6c38d59d85e92ffba188187b481b888743a8c0002c66aa7ba2346db9ec61acd804bebf9fcd46253b75dbf0798e6195ca5a42b6c1f7cb5664729edcfcd90ebecbaf0526bac9b064c7d2b5fe8ea0c6679214d3787800f7ab48b129a01035128185b7b2c3e52d06cc6248b6c915e54804b5ca35f6cb1204573e7d5e3835a16777560b24c4a667f6cbe7ce12cf9f11d0a0419d8c097906c1b529cb30cea1b8326c9e0a3ad597be700a494029d1ed597b1637013099c95de2046c2f73a7473d1e1c19888992c08786c43ec8ddb536467231f589cf82cdfd0b77a24e9f07a6b5e0703525cd80c85079188b03bc296e701037e81c767d0c00e7769ef41036b80a8f4466b8344c64e6381a951e02167e63fa9ae032ece67c1f90ae5a69d13f958e148df60afec06617f61285c10f06140468444461e1c5c9eaf0b3390698780c7c30ca13a591ab53638897ebf564917c6b7b7236a3896b7fa248910d1721bae300bf9f1fa0b36303d1c3a07084386a967bfc7a863b481594fe8048330e417d72fb684bc13f3bd1a4d9a0c8875ecf53d4079b55c148f44a8af3d6544bedfd7b91699de0f2b351022809a31375c758a6fd46f67927c0c6ef6176aa08abc85cd3028ae1636865bf0827435b7357c8f5e5e3db69da81408d3e4fdc9fc93bc7b97a9d8f131b62b35609798083d64886b018f7caab6e73c0bf2b8a4d45b5d72286af2df642cc97bf1af2032d256d8f1ab4701000eb5881c3ca6e0a303a99977fc79d4247cbaf7feafbb6cb032ee5ee3669b5da897cd6db93e67d9bfc4a87d559352286bec7c7c7bd153e75b510fa0029867c27ec6d4e1c59ca5eaea24dd0172e28728f81be6db3b83b52e4e34d730af0e59b6c8d93c201ea657ec0b23cbea2d1c4f17ee83ebf2e3ebe87dc3472a72b054d2a0f4880b689d8e655fd0ad838b7687b762f4c05e9db279485cbdaeb4ad900d7610d2461c2b754c2562f3843c36fcfd1f7524b64a75f3334555b0fcd690ea5e992eec9436976ac7852ac8ff84c5feec5dc675abda0259b2a7a0696fb6384db12c995f0de06f3bf754b1cacd041f99b9b5b799dde1ae052aef6725582397e6105ca82ea7c59b72815b4fd518267d7cdd33c0786a169f8d482f99358e8cf15b93507643d9a2158ca38df0c7328a8f8780f5beebdbea7df3df6020808125b93baf8f9839359aaa132171938c0cd2499f9a1c3ecfb63d4d8484737a546ab98650bb32ac369f9a4d544c2dd5a1043704b502b2fb546a82d574b0509551a2020aab0a73a5e36265f8b49a5948585bd6272164962cbde85fb8ea8ecdde8b43bf850fea080e67bbab64baebc954fedefcb3c0db124053caff01a7db99a7a84361dbee3e87cdd16be7fe8b09e6acd15a6626110ed5695f56e3a339d33c0fe2166ce39e4b5ee9bd2dbd56bf26acc9ed36593b16d67a4d9d7b706492579563c1ee9747ebdff9ba2283ebcf1f4848f259cb341fcc1b11542b1cf05d61d99af29217f09200ffc42d0efa6decee76c4d5250598fdd8d40f4a259efc49c8c5d72f47cab066c666ea72d5da793a203b16206d4280d580cd38b9806cdcf68c5983b5a29cb003d51e49577217f2ed5c0b63c568ced3d500c173cfd48851ed197435c569afe5c59d8f4ea367f6a2d37c3c23c79c3ddd912de050c32208f4f11b9ce4e4c1bac06340289c7356252c85acaee09afc6b6a8cff6411f34490c3ce5ae03159b9fb29414b19a39f15f1456af023b3f3d087ceb975e08a0f00112b62c0164bac4305986b40e93a8ee8fd8c7fc0ce8dc44d63f1a95cdafd1bd860ca420dd9e1a75ebda7a845ea35c6dff655d39ca02b46ed01023ee8234cb57d6ac6e05cd7fbd5f72faab96d872b8b7dfdc2f11f3d4cb4a9b606033ac615aa700ac2f0be695a5bfeafa3ef15eba57c1833fbd8a7a697bb6b02bca0f92f79bf0031417a939d974c392ac0160665ea3171a1912c30acc2132faf0f5e872be48181730c01e4f3693acb0ce5c26da65436da31193872e0bc394fa9ef17289d592871d7737a38b7f37eaa24891c470e523982640a6c0a9a70bbdaced20cd7e31272b716b91b37fac40a0dc912816d414620e281ff37967340051cd6be7537155326f51443429429fdad9593145129a0fc3c5361e62b7bb141557a232aa89c4b83b2066929f8373e22364646d10ffeb7718f6927f48a2174761c6ffa2e4025491c3530a08b80f57b0b554d7a05b4a48c1b5c0487a8649c085cdef2dcd28af01cea5d8dc00e781bced838a7603e1d42520f28adbc92908b7003285db944d53fbd8f1415d4222da184cb1cfa91a24c8bfae8c383c56304147a550b878f15782ce5a175108d01abde47020e4010bb6285d9e3a4d1bc70256675ebe0fced0e83439c2ff1194a224c20f16c34fa2587288b2121788605cd9f8551842565850c8b27a0c5ce2aad4d718e44b9eebd825f7188ea9900dfed56e03183d6f93982db1482643840bd1795e19d16131c79df07ea022e3424719854502d7d5a97c7f683838ba3d336f6f6cf0d31b4852c082c6009417efb319afc5b9e8712687360e5a0c1d9097b60cc9956ec9b2c102a0e81151e9eef00655a23501f6c870f71e049b12da20217c2dbe6104868cc661dd6ad3f1f6217d7390f8554803f75a662adb0c51822f238f920a1f404161ff0ead898e18fce23bb44a554ab72c3603d8ba6bf6cc9b23263ca8f0cbbeeb48eef6921816d625ba4f4dc8ca2d66bc7b64988313c6741e377b231a5876498d421bc7713a253832335d683a3240905ae556b535606a12f985c5800baaef05250023a77fc2e0d5298496cbaf77b365e63f3ed57e6064e699c0bc1b53fc384f399a82b03b36cac6544dc464f57c04249cd73628934f410200008ca8ed5d137de4957669c7034b4d29dcc90682897e5b774083e700b77656af8206930f1b6d2daa519da20d7d1569c2c4c9afbb3ef44939b26ee1f71ce98fa58a6ece66d89ce665b69014e0515a9665dedc011665cbcc2ebaa31bf8aa52452facceee361b468a9bda0c927d50b36c34be36e9f9edc93dbd7eaeb170dda31c3d1ea201e8e8967255f252140992134ed3aa6ac466c30e941806feba473c1c3d1020b6b601f1039089480308a21c18c219393abe544166e07d7cafbd166a683b4aae5caef6405cb36d16dc829aeceeeede9b3ab0b4cfeeb76772909602f01be420f61b743a829411ca91a2a50bdb922c1c5c878483568575f23f9265afededc2281d2efc545097f4ee2148c21e270836a8397da7f06081b3d3644c8d0c0bcc98dfa7573108a8c1c246a3542514a19199cd17fe1e0e2d7c4459d3c494bd408715068a687805d42485410a486a525858a0ae7b62e94744c85aa43f2c38116a359c24f7648e212e4b3bc4484145214e481e05dac68a32110d7068a1f38daf4e1714a9e64582f478f95d28d2e3559b3436ac221957c6810e09d78e926e4f01357c6284e0eab86972f4e505a7c415bac8a737b4201198113a0001cc77c0aa1d0bb8b172b311b5d584f764813c5b9354c151b581ceaf81a19634bc08ea507865a502832a93a6473314e05b47848e52f9643490444b059a41294945262c32a2c46bab47a24d7bda220432d2287d0c1ee01497810e89a514230248a26d126e39c8119cc083a3af471490322171e9e12703045395045a9ab234d8f1a8c3923e78dc196512288082ae4a7902a19260a6447dc2c19829c0b13a1eb850ac2a55610a0252e2388952af623442aba822c86a4086445a4c065405a214e246d7d9131d666e716544844840da690406ec90638d292e61fb16dcb1e65602862a376b823518d47c88148f1637a75681519004c31c481c4a3b44dea7221c4c5576ae080e64a26812760ad4fbe59710d5060c63d6924815fa50a1e489a417108dd5085506430929593f5269252df1361859a4460ed106536fb254a86fdcb0d12716f3e2c2589f2c0c6d5c0d1dd4b16bebc03b7708820c17ba149000165a0d065881b81e01ea130737bcbc62120d695e98d5999466f7230ffb53536aaaabc498fb74ca89854230b8c45ce08280c314b54b834d6ee6dc12e89a2441c396583e85b5e0eccb862525d87cf91dfa8d75f080e1014c6ce21f8d1a2022992bb9aa7c339524e9b89167ed2c512032af27af547b7c58d84c0141f94958760280837d0d64f1c1a32d0b0f370e2530b94d60c30b97855666a8ceb048cf68b2bd3c49407cbddc2a18a02f9a606451a5290f8c491dd8f0dd422a59027166518813c9081af024036c55e952c306281a0bcca5ea12c22852064f86390bd2ac3133620564aac7111c71894ef87e7e3ea9e90409d30a3820bf3a4a46806c5d40cbd878e090a442451c0c30d0284c031934f091b2a680311a43cedcc89071f6648607d80d02707c1695a92489528f0e5e6b3269756943d34542e2200d9a417718295a53a14b899784372963066169abc0049324907e1dccc4493181401a1e0acee0412198273cd22251c10d4916e85441d030c07f5812d400432956b44f0019a626358ae0420adc1d071c44ddc57054a7c3282b810c297a13011a27597226181538a555034f9e4b3d3a756203033ce3095d8a48284eace9c292c053a3868358a6a2161e446a2ab80e5887fc5cc0926586e80bac46dc03766cd47ee2b4ac75b8f088c786f561c78bc41a0bf5047bc294d900e5489792572eee4d16ad1973463da9f083d467b8c988e3627445fc31aa3107ed425aab31253ab47f9e24e0e0c20b50212669b8c4428229118050158b4d26452a138ad18f3882441d1c971b0ac84827727271b0b802a57853230c893195102ba0fa8c8559a0a165d5258d9da61808505265e68d1508ef0fab0bd9132852da1c40c84b1090d55b88cb2c890061c03a878e3c61eec4ee6068e185a50c9d09ee2a9032a56650a441c22e147c5d985861958666238b9a1e24843c0097d8520082ba3b1e74ac613180fa86078e3b08649020040368ce9c59d258fde110c78d89a0cf7df49d088978a1c20187292aa2324cda3a93e10a949f2f4bd22f37b46a024c5b861c3d5c99810343ae4f182528bdfb819c07371224c0169761ec4dd28dcd9f5f84225a880a584dadb030a8022847695a3e99a1d2e5c785026d0a69e169333328c8e7b3a51d4c294a254948a43424d880d0713384cc98169c1f2d68a49cf171c38a5a1ba219230ce80a83e3220b011a66a2e65c3a63041329b70e6ee9c3d063d30027640216c13ad608b332c5895061cb0c219286583a522929a30f062e612658210bc18346872cf115485ede70403268c61c466bd232338b15771496f0c8aa792c6254a6064ca720a7d7d0994d01860aa95ebc703480930fac254800e4a0b26a032304b244729207c55009a44316baca66611de0a5930dae2d1f4e99b96462489fb20b49b62c0983620befd3910a01a8033f04d820c28f108dce889f3f214e022e1e5198e097458b91b04fbf0c44489092c093124178b85a1179202963093a502a8254cc19b14f1a82586a00929e3b741eb5111a29440302991f5082a7118fae20c0298c47c3439619075c492998cc28aea52f75c6cacc906634f18264aa803c079cc13131d356814f00217cf800a90223278200d638814ea1b53756105b13c8699249482a895f454ac31263991aaf1513a80d656065eeec882084101c0de083d51895328055272294322c461a7c39b075f7008c365c19b46829a05cd5f3ec974c14b433ef9a86c7d85a086d6f178d75b44ca4e93868e78bf53f068b4863d0ce17bf4c1b3f3198acefa0f03e7e3968e78b72c6616c4cda5e4c6ca5b38bbef66c64b131698ff96060c1a79314211d28e463ef051e20a61a71b1882bf4a8d2dd16169d52b9e073c5cba61552d6d4113cede9b2409a070a8c22a23641d2a8044eb568b3a9506251131045555cf2013b0e42f2aa659ece44c51b45a9331c660e16b0f930f801f6c64daa0c2c07163c44052c60860b1c00c627475ea5c5cd09029ba2c22046d3e6d1d2526607180a3ec45a78081680645dd5c79107485e13dc220a04100156e1b8e533976ca294088b4899ea0f9d99039b58cc7825259289422944acd07025ccddd8084395dab0d400f598127e1c92e0c691f01ff2f86ffb1b83f5bf87c1225dcfc1f81fed14f1a7231545461313fb325dc6e67793e989b839e7bc64b1a22cc5e2e2cadbf6c732261ac76cbbfec37fbb3de9f1ab7bd48ae8fadf118d44fb1ec2e53c14dab10b5c8168585858f21ed6fe58b7b6ffe1e90701f727967eec878d847f94f2d1d5d100db976068a5fded31f917ff8d56fc379a7d0fe1e47f1f91b530be3dd99104e7f53b37e3bd89487b181bc7ba8ddf4627f9d12b07def6979343da606b757fed260e6f23b2f86fb43f2423d2f417d6c9686c65c57fa3cdd9bef86b3ab6877474cd96bc65b439dbbfcdd9fe8d48d36c9f28a3057f7178f3307ba9a245ea98b37d31f86b3a16139bb3bddaafe9b257afcccc6ee32fde36d2873c66cb79e28bd81eaafdff22073109aff335da816698b18eae61a1ed85c4b83a9a3897a5d0f6679c73ee262646cf4634db0bd95a04eb7f9c8b6922d1df740b3b5fb46d4f6c71a2c81576be68c7f1b1820f55c4056b3aae06daf7b08800cf5824fafab3c96832f10f71c89eecfffa456c0f8b6262b6f1cfd1b798982d26f6ff1cb493fe48cf46b4644ddf5e367a35dbf6c4323be9d9c4889fee13c5e835fbe310dafeac458b600b31b13facefe0d1f6b797e5eca29858fce9c4c4e4db0e1eeddb076fe3b783413afa18b4f3c5b5b360b0c597e93219ada61bdec3e2b0be8d7f781cc6bf5e3b32687f3338198294eeb6fb713cfe7d08c1bb66fe8b35716ed7441fd366b81a29563ab087fddfc2849c3cace1b1122be26f2318ff28067f1465b77f37b483bfacad450926a31dbdda8da483c7622d0c1e8b4839bb183c169164f2b76b04c5c482dccc2fced407db48dfb4912eb6f166f06200e7620fd335bdd62028a8178cc2fb056f70ce85f1ed8bdcb46b600ae0fd6dba1ed219df08ca685162000031106c1a84a681153ab81a10792027c24f4ea22a259ebb9ef1d49c0d4a32d5116141499a960f54289c58bac4891366aa6b802e440c18603684d1db13160e34181527c7d92492f56dfc5a8261c7622decc2eff88f1744379cf70ee09c2fe0bd360e0ae09c13e1bf08de38ef1961b3a602af72c7ae819f361a3fdd6dfc7474493bba3eca43da8698583018414cacfe44a22f73a367235a0bb015354df465626211c4c48276d0f86579280c0e8f3e78b46db64cdc36dbd87cc43e340d3fb61d6c32d85c3630360e9cf306fc679c80737ebcedb054cd00f39b61a2e2a5d85a1d5e8aad2529c5d24ab1b5ad524c8d12e7a598da1a5e8aa9d9715e8aa9b928c5d416705e2a2ac57e6957d2e24ab1b412a5988c3c9c73194d4a3199ff646c88a1a914d3c17f318afc629c71ce4bb1185b9c9762686ed082f0520c6d8b73cee32bf8ef4cc79916ce39d0aefffd8bde2856d2b7ecc962b11476580adbee077d8df4c8d938e6e66be4d86df7fa1a39762cc6378af18d627ca3ac464f8d016a38efa5e1bc67001ace7b67cc70de2b43660ce73d31616ad9e88bdfcc38a3fef59fa36b3223bdf67b9b701ec3c739e7bd768f46c18064a76e01569cf31e3c644197ca24c027ce39168e639b1a06b65e9de29c2f4023c600362d3c82780058d131838a932e79a080f260a266b0420de7bc97f602b0090a0928aa38e7585c531489ca42401e469cf30605609980e748cc950bce794f53aa2a412ac89289e59c2fd812e7408bb0900f4b9c73dea740a81613490f24ce39cf117c2eb023801f95789898580bb6e3718c7e1313fb2a6dbfc217bd8d9c0bc66f039efc3292b55ddf2992471e868781e37849152638e73cf8cfac03ef4033eca6e95af6ffccd79eed3d16eb33bb2f1bd1cad08ec5fa8ce8db92f56d7c65ffdbd46e9a6ef302c6cb172f5d7a5cb89b9e3ce4bd1ac06fd3c4b8b4bb91726579a46938081180f22f5f408800b48dff782c16e9782e891e078f37e2062fce4ff1c0ca388f15af4125ce09358ac4796fcbcb5b2081014a8fee0020e49caff50a78f58a73de33f67c832a3d6e343087f3b0241a1b9400ca19e9baae04da30d22e85b1d1d764bcc1992cac0e0b50992811b487c0e49f0b7ee869e1bc47c003076c32cd792f0be7bd01b070debbf2854509e390681cdae0dd59a108b8638c6719fafa5641f4c3fa2ebf902ee122b28e8536f218a46fe33078e48e5ddac5da979f8e86d1be4caf9199fd61fd56ca462f26061791751919e2d0cf7137b218bc6d4f8cbbfffce948fc3a3152760dace9dbd7ff1ec631d453f413b3e3fc0fffb96b78d2e8fd47ca9e26027d122e7dcc794f00ce7b56b692f7ed65a14c1bc5c4e46fac9bf1657aad5785f31e15de981d6e98fc4a959cf7793740fcfa988479627a157ead4fa6e3e014ce7b527a0170de8bc2790f0ae7bd279cf79c70de6bc2798f09e7307e905670de5bc2794f09e77c412f09e7b148808ba953fc12e70f70ce7bf0dffa4afec3fa3e8166182c87fd617daba9c5c519bd7d7bfa2e79c4d9713a4ab0611cd0df1f58df368c748bfb355d062c819cf7901ce1724dd7d9b66713de1ed9aab69becc95af5db9e4cf6643f5401ceb904fe93e3870c2f7f6893122cee8706d938e7366dac5193c73d383288e001ef47b7807336ae26e1bf4c7638973fd1dffe857ddbc30a467a45b4f8af47840405640fc459ac28e561b13784c74608e7bd209cf780dc71ce87c73122d197a5016fe4918efbff451cf27823e9f20befff67e09fc16cdb13e3b21c1ec7fe9f83f41d0cfe3f276be26d874cf6ecd09828314707ed21d0845d0631112cc1ec122382946025927f2e988483c1a071b8a0130b16658d8c1744e9e06b7f6470c216fa3a062a7e619a38e7b491c12f4c0be7fca68d45a431d84268fbb31f45f917d605fc812902ca1fae7f603fb01bf4fd032b3907a200c481be347e37b3b117bf139e7e27e8b5df09bb21bdf63bd175fc9958f53381066844d6257d0febec61697be1cf041bb246fe4c70cec77e2516e0bc4889b3121b803c7a107e241471b39e89b1de9febd1c6618f6d04155e82cdf41a5a49cb01e3fcede5e05dfeef1657ceb41d976366e517de741dd00b91756c6a358e357e0dac6b1f97f6a7f376291bbdec69a26cfb3a9b16faba2c127f2db48fdee84bda8efb4039e02fc1c0de88be04dedf16de43613cac7ff10b8f1f28671c0e8ba5e71117a7a3948dde1edac631004ab812f887f56d93b879c4d943bbfe461fdba0e3ba6f241289431eafd98c3231313bf9e7824122f1d7898989891d6d1d3c74945f085686d172a5fde98672469ab64b7bac04cab27d1b873efe47fbd775df58a304d6d9c7ffe778c4cdd1f459f21ec6fee8633b0ca6e9e48c724dd79546b412e8bd6cfcf24daf8dddf49abfbd59924cfef7101e0ae99acd9eb1c8e69c1be13f1e49386f3117fbfaad85ecbf708c86212616f4415a2e280b6f7958271b3d1c94bf8d6c71e6bf30e86b7f8c8d63aae2e27a759cf7e838ef2139efdd9cf76cce7b35e7bd1f9cf78e9cf768ce7b46ce7b45ce7b44ce7b739cf77c70de1b72de1372de93e3bc3773defbbd98f31ecc79cf73de8be3bc17e4bcd783f31e0fce7b3b38efe9e0bc9783f31e0ece7b3738efc171deb3c179af06e7bd37ce7b6e08701ea88d06e7857a6c33384f1b7b5b9b9103ad6dc6d96da4ef86352d8c53abb1167c618cb9b9bd6a41b3b63138b61ac11b636a71655ccc391dd71a0e9c1970ce859cf328fcd723cf8f6b08e75c68fbdbf8c338e7d9f0e241fe103e24eb4ff74be3b01c1ec77e6c047ee11b70a6cb193f2d54bc93961b1e57e1507e5a746e5a64bfac50b4b02eae4cc260ffcfa5301e82c595ffcf63f2d0b3fdff0268d3b77d1cdec7e290782cfab838f95844c265128c762b8171c7e14ddb441ba9c2048a524579a2445196285994c7e11dbc3f518589e3f02e11137d1c645126ef4f4c91a204bb6d641d171757028fc31b2ec14c1c8777491b4b94614962ed89c3a2115987dd46ba8e5b8b2bbd6da48746fa38bc4bef6f38eeff3918171757d6439a06711cdef5900e44f96fe4b148c771443f236eacfc7f0e123d3d1bd13ef1ff39f86d0fff3f07ff7f81f6e7e07178dbff98bccdfe7fc17bafd238e7b29186ebbeb1c2d9af4217e7143c71208fb81f853afc4781ca8f82f047a1a5f0e03781525036d2b03c0c0639e718f86f42130e94bf7148fbf84d88ebe2bf092ec6244ce0cb24ac8826fb4940c339e763128e9cdf3f09619cf31afc1721922fce28ede49f1bcab61bfe8b1000f0fef6f1389c7333d264757fadeeafc9f297e531bbeeaf4100c37f108e10ce7e104a52bf0775d27e0f1e98c6df03ae88037f0eec8e9f3814d6953f07673f075df74f9aa195bf068a68b84cc6757fedd7000d07fa18fcd780cd2661f66b600f39968435cef903de333907cec51e1ecabf581c96c9b8d236d6b4fced862f4a208f381d49dba795c0ba243cf4a571680fe9ec3eb21867c7d97125d02e4dc81f2c790f8dc862918e4b7cd848d7ff58820d631b4d36d26445ba7e71dbc334fa0deda6d76cdcf49a5dd343e2cb3bf1e39102f288e3f3e335e1fcc7bbf1e399e0401e7141a1ed853f5ec78176e9d9d4dace4ae3d86dfc6e3fdec5edf9fe6eaf3cd5aff400893eb679c4c5e9288dc32fcf331df66515493f479ba6d94bd0c2b212787f399b38f4735923e72491882c0eed245cfe3f97327dcfb65ad98d52ce388c87456f4ccab47d0f7ddd0d973f4c283714965ec537d2f5aca2aabad2c6b28eaee54abb88842b81717165dcdc8c3823d1237fd075374dc71f2e67fa1389be6883fdb0fad3d1b52f0a63e3874b1b71257d979e2626fdd1ff635ddcd1abfd38db267e239b5ad98d7228ff22d2fe6db227b3a049858f39e76f9c63e1e09c13b94f060dcee9d98856460783c09a9ecbb8b8d29795c3e398af9163f0ed6be4ed6d399a38177bb8f425d85dd3427b1682810051d6c35fcadff670988dc63666444b1289f4b134d24764d0e863e04cfcf63d2c3fd1f6bfae9c8be93aeef6250b16659c5d22ed8fb4eda127da377188848f65d213c36c5f7e239d240e8b48dbf625982cf789c01a25d097437f8cb341b3c944ba8e1ed6d9e5af33fefb1ed6bff6c66159dabeb43f5dfddd4adbfe729ecd8e6f987a60a3be52a8382f9622a4a7941b2ecb469a8c734e81f321f775f12915c739fff0eb522b38e79c9420526e38b77d2d17f68dc3b9fc35ad56023ff2873fd265f2be7f7d9463fa0bdf48c5a47ca3fe8cfa316a06e71c68fb5f7ed848c7bfbe69a89d48123f91b64f2489bfe86d7b5489510f445de29c8b1ac391c5b28e3e93bf8d0c8a1272cee356f50cc6895239077e397f2c8a7ac023401357d37172ed637b2847d024021c6d5fceb3bd6c1144085587730e94897439ac4325e172a810a03c857d5ff4f13d948d25283040e3d0cb814ab387f6afe5e8fa58d2c63150e527429fc024ebfbd7b7fde988df2ed2116930f9ffdbe86b8facbd3046bad9c34f427b58be7d6ae57ff46c3e083671fee9dbf8ef7f37741313fb72fef8e5fc1182221c821c70c02431ce1613b3e390743249fc43b94f948dbf3451a2943fb24c7e30e35078c7c61925d0e863646cc22e67dafe72feb679c4cd338cdfceabc5e92893f0fce5b28e269649a25dda43a22f0effddd03e7eb9fc489a962bc7ca21f1581c7e394fdffe68d7952692f7b1f8c38cb4b104ddd0ae91f16f93bf8df46c9f081387b5afe963f1bfc9f4da97f36cf4da27c2fee87fdb4dafa125e1f22379c139af08e7e5d8308aeed74739cfd6a2c58a35bb46d2b0506ef88dc1a4ec7f7ddb9ed8a2c5bf1bba95602b4eb4067d1bd14ab01679f45ff8ef866e47ffcffeddd0edcb79364d0d38e7329afced32e0477ee48ffadfb39c9c7f03268d7ef88b473b2eeeb68d432fe74bfb1beff8d7c979587fba1a691b6bff89347d2c655a78ffd2ee6ef1b6e2fe76f0fffa86c5c482f2ff6effd76f6435fd628ea6c96c9b46b38ffef666c92fe3b6fb6bc92f43feb7edd3e088f61d7bda5882d932f10f3d4c13619936b29540a45ccadfaee9bafe3411cc260efd5cd674897623bf7c278d1ef8e35ab4c815f1b71177a3d9bf948d7e58c695943c01d5ca6e504a44090ce7b1a3a41484920cce398f1d25983c2c75ec00f6d4263d40fc65b787b6dd81738e88733ec77d36c8f0e171ccd7c831a0af91bea66dfbc7df58a2b18d95c0e04d136de0ede9122c49ace9b9e4bc9786de367d66fbb4ff5f24eb4f37247e33dbac8e5efbc4e3b07ea3dfe49f66138963b61d0d1bd1feed6f3739e3f0367aba4ffc6d35e4a1997d1b3fdd5bffbabf76dbc334b3a427fefab31d8bf5d937a2f9db9bc9fe9f15e9db4696f9db9bd9665f1ed6f5a79b712cc6378c686ec5f8c66dfc45b9ef56cbc98db9d1b311eda6896eb64ffbf277938766dff642b663b13e3b16e31b377246b2fe74746c0fcdfed98f8774f577b34fb406fde6ff59fc43ed47d1ecb67d9a6ca4c9cabe4c97cdd5be58ffdbc31d8bf599b18e366393d1d8ea3f241eff7f71dbfdb5e49721db3538db93018301549cf39b26daf27f1910248c6f5fb487452ec6808be02fe9d93894fdaf672f646eb6e39c0bb9cfd10abb06de763f06e73db433ce7b3038efbde0bcf79a71de2be3bc47e6eb8d71de730186f31e009c730d9cf3c2f8184dc063e3b7ed1f948d7f2ef630e77d22d1c7601020408010c1e8c94ae0fd93773d94cb3fa334fa7b58d795635a8b0c016de13dac1bfadaec0d9e391f82f01f03377a623ee2162814a952afc527fe6b993814c6bc519c733aee4b4489f3a0fc932b0a34c3be71288c7d312cecc842fe3f4a15c77fdb7347fa8df76278f4651cd95c4c13c982a59dac3d1db004deb4b1ace9d2fe48629c241e8f63e56dfc455a4d4cecad8e361e8afbb683435df48779100c1dc039b75bac48c240bb34d2be468e81bd2889f0d0b691b6f11bbf4d0be3b246d2384aa06d236f5ffbe3d197325d1fcb1327ea7cf9c94aa03d47d3c232eedf058db4f1cb49f88efbc8fa8e2be9bbb487c263d1df375c0944fef876e939efad38cb7f3744dea5e75c8ef31d9c73139c37e1be4141ec1af885b18f837f58df29e6629ad8c30c60f3d38187cb198772c6e1a0071c284810e7bf48db8208181344acfb6b82380796267e4d174b9449a3bf4918ed4fcb81f870602021e781cc401ce8062e6f12c6d20614a702504913eb02c42441586c480345a8bb4b7b82225105225b0ec28017a87c516145100b1536006861c8c7404f025914d252a001635660f6ea1f272c9209d880498bc88d1a11200c0162d21e98e12007060d64867648c023ebc4666d4ca79a789615443dc6e82127b403576fb053c206180e02348193c62c73ebd8b381823e92be500c068899783b45870ada772368cb16047fb22210f4c1e767950b313a7cc004f1e1e97540739176f2a2438baa287272609daa74e912d3f227d49003da04c728091522d43d440bdee2a2e71c2122c30c2f369084a0227bc07a0b6385e4a842070203905ac4a84898ae4474505270c131e842093b3e672615e0a5d5000a3151846c8171604920be04ed8ccb431f4b3eeefc9d025a91f951c011e9024406b94da204ad0131c948a4708d50005ddb72eb70034c0b289ed8862deadad6293f7c6443d8a4b97ae46633f960630b0020c50bab15a62d42a49428296364b33ef86eb612b95aab7bc0c7c7221a22e07a143b8cf099f912ac14673c92ced0c87a434a1328af318e2cb11d1001d089326b49667472b4866b462522f61e158bf0d0a9b16c0f956cfc26bc39fdbc8a2ba4580055a229696fb234c030f26911015e846458716713025b6b48b81821aa71df75c95b26962452e8caac3fe48f4a1208d2425296e3b746eaf1a98a86511b068033a3c40b231372be0290d31cb97023939a64db0222159828c081c52710bddfa5392002dd8a7e1977e8c6d59b27de8602f42ca8df8a8809930ad9a9d59b99e1054ca6221d7487d63aa9aab2442eabf396b516801d2418a1cc92e0192f73b80840c72106105014f434628e5a26f4afb03a7a30180739b982aa8991536cc6e4400207c855d61e0761ca2468b4c5049c1c4cbd355f3a0757f5962fa5daaa4cdae364d8e592ab39185cf9b9902180496730bd0af34186d7efa175a60edc41c2144a8e16b5382bb8386cea30e74eab2a38e6b66af8e18a004cd4002abaaca4e8635b350c702075000e4e8459055a6844f4e1957e6f6ffe6cca5ac341d1200f36bd25bde289c991460f385c4a11872e8389115c7fd2b87dd942a9c19034531228b0558232e3d2848cd305342f858e7e82583eaf1a8a84b8893ad8896da20310a66165f893a788a01d43b28c50404c1a97bd66d11697010e152f145ae3014b0e84347e489df109797f7c65ad7082c09047981a423e4bbce007721a20b96201c9a4413d106369042e0d6227e6b8d0d5893239483da526c2f8305d119547088a2913e47ce1b184ca87350d0b3e08a1c05b9201a389ab0a221451d1b8b874cac2ca08119a58246090187e22cc2f469ba50ae4b4882005c7c6a801ada1a6214d0734ac9632c64b0426b4053a88ca74e1c31b3f4ffc4890d326891c078a3641f1f48b234555818856004a171e5f24d1587167c3db053c56327172f00ac262888a110afe5c3040cd20b219a0dc0560ea1e49e26119667db021b6c50671050b8e0059673cb3370ebd105426a8c3bab91e68cc69600b98251852085c005ab500a53004ce2c70878913a32c2a770a68032d0a524a871d1f82e428417288c3e38f940947fc11301d0e5018a54214863f4356092c542f444e3275491031088a56af500f5a3e01249271c60b9a861142071f0eb422d2204d908f9b2190ba8ea0a1e9aa41a49f7378881cc2f12aeb8ee76889561d01a84ad848a1e5c796a10a8278748c3c88e8b3c40ca9b412714469c568604b29b62e50bc56490010ee9cb86181de0ad28782d6a8348c25e340d0874b136e54320b387ad8549ee168503790c8d02529c03827d63224c9d0e86e6eca961916457e24204193165bc33664826c4cf02571c573bc4201e6f4bd411182317b647721809f1902c1498a576989c2213152752a18314bbac4428ab1d5a90b12243847d8004a3c7015015ba3c257e7d29a356b6d9e38a068531a43a49c0cf2ea2377c726861b07fada0a33205e7415b8e494b0d2c3400e1939c8b4c2c2d24681483f0f5e605766672bce90b4e252b707eb92864f886d254621cc45a314717b08688072817a0046e80a2438390b38bcce4b0b24f8356904f7a02e6b4d5bcda6cd940c5daa6ca8d0a1d499af4f6cd8e8048931640a7ce4c20f047284e2d0e4899955a60a026a39ea0f95940342c46824c643189f146c4a5051b5e18e904d0ccc9428ea980e65e0a21067cf0556593ef9e8c236d0e7080b36697ef0f859b0255178dcac02c24b5d7d35c9f1a603071faf34058d4c41a17e18008ca413715a616862680e02882680a0d2490d9c07f0fc6995d5e8d1045324acf0648772b223ce00abdcc143023986d8793b141b3457de423c11ebcaf0b9faaa4e53483d89a08cee8823565a3092f850050a658f60e009971e897c833a446ab4f6666b81fa51238d0084347542d3c50619a96c4a19883ebf1a650fe878b8a3a547d5a575822a476eecd72b06d3ae781800c79ce7528d5112b6acf93823e08e498677abcd8453678a3ee087283049565fb6d8b2fb941f403aa244d121420d0873f281a9aa4c08bd1c30664c100e906ecce890e1928d1b642e5a6d62f405ac02287c8664d98263f7628b5c4f8286089c491f3ab37c5304983b40499f358273cd883d9074907911697b37894194c0190dad1fa729145db84e34ec274f657e8333647c52497112c397ca2d38aa4cc2c6c883b0801e12c23cd000a2c3ab4dbc511c24ff3e61666d71c11567939624dc001eeaa73f6fa7c8b80efd7824b953c4990851004fa23a133c351134086aa40a4e2aa182e22a19a526a90ed45d102b039bb2e3510c25ec910e2e05deacfa0952f50020c46e8618283f4c758aa4c46db09d000bb13a854017353314ed89838177c18f231174057e52c5186553984dace165a974497064e9f16020ca8e08753ed890e300024eac44a92ef0a817abd2f051e12460585b036442e28d06535f8020501e96566495b101e54b1baa0b3a1080b23665489ac98101b8b7109d50a4acd079631031939d3054b2340721488a0f32e823cc2b1cac3c6861d8344a0c0e09ce6393a84eaf80a448eb10654c170f503f0a48f148c6844213c860d3753c92d49427c7037b1c10731c1306014e2b0015c836c0015eaf36adf139f2a468c9c3598d0b9de08654d162d424c796617a95a1411a3b3b5985ceb031c5d666858b1c02b618d4088b9bf4c843023a6c24d905556c7c0bccbed482a8492300cdc4892daf955219c0141b60f2595b2326217d13d0348c6c15816be578dd9440615280820051c652dfbc268c479b3f994679e202c900165c95178b4b67583411bf7072418129347ecbd7962bb5060eb0d9e044e310162911786142e22b746424c3b6ab33f6c3ac863b93b37a59f2fa94d596838f508e181b94334d6c701139c3333609c8a1920a2b5b4ca862d6ef048305115a0a486a2e06999811e209524392144426346950da20aa8066c897325117b076789a53b258012592043bae36252af5e312c34d014e59e2315a2bae140235a1cf86b0323b2a224061e44549d81d4b0edc25baf084cb95142ac654d8c4c20982d3050390f54048d98d0a8ed46cabb41aa462a3e16f900433d011d605499c3e75248068636505062e0d6c90af213d55bcb8079ea0a031b3eace56991cfa96090e712a2e79548ee000e54caa0c82660451051983e9870d2d90308809a5c016180088484068831c127640b4b23ce919a6c960680e3eb8a0aa0d90204a1dc65258a09bc2e648c0845250e890b905e84a459499a02e35e252841c8fc09050416aedf8042aac041f509c8c07fcf4ac14507460f5b33b1b4bd78cd1246306961067665d82240102939e0831876d0500698e8061b51a616a8b98c03363810915bcc2b3054ed0839d212a4eb6409a1108f04fb0aa83ab0cfe0315aefa1803054b02742888db44c0965a1c1be5210a8215758500f94e1db47c2d4ca4f2f3064a048356d18b3a85eab290a19585515d3c59c244c94f1a92096b4ea56d11b2476088808827375b8ec247a4fc8cf185495547eb6b76e313044704767cb6ccf1e29207471d31166d8704f8c32585af0ac115c38401e84aab49900c103a2001a5e0c8efc1882f8c7c852ebcf850be113385d5160d2e581842b2f6d3c3827708820519ac58e132e48a851aa982d96a8b8452d11692ec772c24a3d06a114096035678b9f0f140a4a1939a46761d080511b1094c02439c2a1072a16d14a5b8ae301580e2a0c70a0b250310fa4d3a7501ce8b4ead9a68ca82a6b36a18d820408727757ed829c68a7b6c23a6d634b940a9cbb80ad50e11874a7d0978524815b3d0d888b8f2270828092492288048c2a9271cc8da8861f20568e640993062995eb4d561104291e3a689c0da44434d909c4593ac64dd81c023d09103173a770b311415d0c83848808423c181afdcb0d3ca840342c8b0304cc0c3139b1d6b95b402b5c2d325a789b4c2304400274482260b8d3a9c84e04f031dda446963caaf01938186a72e532811a7744119b3a7c45a083830ee3b18cca091aab5c440f0ed44da3085c8c3af51e2e094140f73162098c01148c6252cc3ad0713ea68ca00a22ede69e3422852c7a4cc1d1388c396062909004b05123b04465403cd6935f92e482874a30f31450427a4503440113727431e4b6afaa8494d950c2862f648cd21525b5932d8484f04fa14431467b3424820e1b37be0f7a706110ffd65688249335678f0d2c19bc3a0c6dd0243c2c04065a52beee4e22a60820566304b8091063cc6d864e8e373804b80b58b86209b940106393d6d52af0a46d120c5aac72b204b8c501a4821a4e4ca226212891444ce41ed0dfa922942457e2f1d4c4af61090aa0888cd08b5290f660d62f62862e0950e10682c1e788469880de9820643677e5ab8e43890e3a8f1f44d247f073c0a5561ebc7e30b923f79ec7c627265431a142d343b72600218310a34a552993b17c688413aba5245031b24926863a023286b83115595cacea0c15539a1a7842540ee060a8651b0b812d044d15087a5c2f9c80f06e09d479502ad58f2284830cd0f3faf300b8a20359abec45f7ead32d42081a84b041cd6dc2fc408f822437025558d09420601c1a0c7c422417719383049c3a3d2982c8ee0ac56782ab8ac60c46024eacd900d493a391d6005324d99a0fed110e26950a0127a4675cdc082008055a8249dc91281b18d40dea3550f99cc9e4a9b50c9270908508ac3f7c00159e6c8c5ebcddd8e9f192a0eab475d9a7a7038e5862b8720b433396ca84ae18016049a34f939657606462cd4d96b250a021e2885312ea8531ce33d5e487af0e96e4e06216aa5bac4c1c9a143be6c351225c8ca96dc228726b5ac3aa95c6d4a5326a238e663eb98d858a01140d5ab0e1f12d1f84abd3240e02343052e42ed71350097219edc08b61e60d2646bd0a127e89975a15028565fbe38446225638b0725504d7a6952823e79dd81b185458849a1c29b950770bc26f9b83c23ba4aadf844f851690ccc94b3035cfc3454586088ac250caa373c35008a38b8861e431e10129b326462644b9b42984a70ae4d1d4c1841f51d46882e88a03d95fc9784049c386074084243c68124389614e11b1a9409f58602a220298cdc201519ce2fccd12155b6c3cb0f2071d8185461e3fc370a108e44426404500115170b6e179c6f40e091045d82ec3285c1d102e64e2a3b052e818993938009187004f1a080f5cac04955a137770798d844a93f3bc8ec516327953fc2041597181c6610ac4ec441d4e8c485306f3a1c819b50e980a14e19dc50838ca5485291aeac55899225a639431b1399af03a91d41c1648a27455b3e450a82651789930bde652613881783b8c4b151c2b9561d397218182fc0496001e71e0218d5e4819bafb6416038cfd002870b260a04931c15e15bfd12059c207d089286731f894e293c6419319b709ea1811f9a5c25e17572c1b7d8a0a27362a57638f741390156a247e50ae75e7665c906bac42939e70aeb057a20860445b88f54a2066a0c58e15c8397a6479846b171ce7500073b39515cf0df0d4d71555870aea14f516e4d10e71752382591c070fefb93642f15e11be6528d4839bf9047810e5438cf32b96c72c139785d11c33986333a4f9c678109969cc3a1cf3906484938d7ca52c47987244578970fceb59a70eec105cfb0c539e79c73ce39e73c4bcd85287f886bf640b8b14a469a848030186a504a810a062451850e60bdf0ca244088030a3715a5701cfa34640b0325472c008364a9d8624017a944604a99c9fe8126a4c285410d347024a584a513820d6c6a5b28d1d81064c6999337702ebc1a13cbbed7e8ff0ebd09c086050ba282803a74c81346010f17c638905263a51104aae8943133474825a161d1273eaa6ba20959668aaf411e3f3f7eb025b941043952063149fa58a0ae62c285270b0b0701c0a6804000a78092b23a4f1a4e08998076c4738057263672cc5ca981c9478114126c3821d58e88d2aa34d920a70d97dbdf6889cb0273886749cea7109932783119c2e1551d0c689c0c6e8cbc669225df95368cf634aa1000181374803a848230b7654712133a10a3fe00755467e68c0440193cd13021c30e203d315c0cc242850d511d5f3fed247adbb0ae0985b4ba3b8da05b2c8808cb4c8428c3d4eb1224d29e0f4532a45922733b45dc9284c48c5205511058f200064396275230bc7e5f17b4b2d29081d352a0c2dca201c08e31e6045008541a3374bae464355880159d283ce4de82131636b903261b4deaeecad0b71e1652c0889111a2a546c71563cd998f468217c9af2f3388baca460574815b0480161a0943314cd1910e261e183163b38094481c1187b3a49998ac06cab0110ab52509831761a4268310270c542a906975c60f1c017cc234b8e445cf170e77d61a8b1f02110c2135e88c0040c506594228474e282c38a26d0839140cb2e00b43af8d9a07398d064101e3e0828e0e06611bfee0b82437e60c4f04aabea86cea80ec7e147481b900440179dfa1933405800d122ed87961d9545161b40882ad2a68854c15365c586001112ad2c19218871c228cb62cfa4951b1851d1b7ec171d5f5a3338589b94a113ac2e0f7a778a99517ae42949ce4d160640162898d140d070b065b5a345a83e2f7c5491520d5253690008530e2c04cc6162ea3073f139cbad1801a9d351e8dab8711af4167e0d03153580823224b724b8e39207c093c50d43684c350013a43d6f0bade30b015019405721cc828a06eea01c7ebe1400caf12112c5064138554653de484ea33074b251f8e2b5b8e534ad889a1a1c35995c521cd16bdca4f1a02a63a7109e3aa5465a30c570628139c962c1d100609212106a8606b393c889200802c90b638d1a48783d6913a4f4a2b158e4e0970eab3022538c1fa932e6b972937be0d981f48eec049800e8b08cc907848b1e3ceeb2c004d06c4b5f9148458c86809d16288ad78a30d049488af4a781e4cba787000e4266d2491716bd2c254328ea70eb78b192cd248aaa226f4b176401708105a0fd0f4254f0415a0c893fd08a3b96c6020c48885a7b0bb3e49920250b02324490d073d4b0ec16d033f366551a5e851ab2a36b206b85df08899744a3184024c4b7adc3dc2b0e2c776e7195e62d5c3ce1612126480c2410217992aa092e0105b85bc52a7be88ca1a11c19249e849470198c763dbb25417dca0f154e5d5ab2fe7cec89892066fa636ec6804620e9157008068e043154e303e017f77b0522160e1151364a038ac528432c5e3428924a73a08f06ae8e68a71597902a2d2808099149cda5765681e4410748749eccd6fc6994aa3327d7982c6a0819eb443f2015c63aa303047890971d28b332218ae479286097431003532e02c0b832426827804347c9d0689ca63867648c29aa72b95f81537ae0f797cccd5d8e1620d84983b5b2eecc879f940a1a4c109386c5e8d0ca116b64e7d7c4774a02124b9c96221c1c28720232a0d6c8929f52ad4a21d170ca93182804e20d54286426d887862006703110f838c083bbd369f07350ba5b0a6944ac4c510a02c0284b9b748946e1198d9a2ca90bc9a80859d9345194c4f424f58a840e0487e2541daa335af0721209080b893ea0b6d0800a72e4d80b3a1d546ad922a4e032b1b519d26203a98334097163f12d8202c24c1e1238c044c209051d1810f1ac7c227013ebd408cbb84210a31b4da92cd89292e1efea4b5265a883459eb6a50425e43979100a00dc4893d967cc01d1c2020041214ad521646a491434332a3204b814452cccc09456780dd89379f13940d18e8b06a36f9cc15b7472a8f3d71619938b82559d32464515258c88f9c14adbb23ebed7cb386480ca80788e078c3024908491720008087982332cc3460c9e410255328451bc64c51258070800a151b157c91dae069c18f936b6444aa425e39561e592e64fdb02e04033d7084c3e212a93fa82a98340096320daaec3460e812051c60a84cadc80a2276e577e7a84439e1015c9e0c183e9400c874e16ac0c959c24284a21a0f3c5a88fa4141010d33400d4120eb1004ae4ea994341468a4bfdfa9142964f011c1c64d91064e9cb5f5e1b24153c0aa839b14193684b1704b92fbe1b546c22a3b9c7688598a07b9b5fd786a3e354c826ca55845a690171e8eb4628051b4f568a823838a0928b852920aad8b03da02af09586f2c3d91e0378444bda5c7d796d707e3c80c14731a20242ad299305e8f1e98b08503c62401192a2cd24859e4c447d1b29681c6b3258e5a1c35ae5309283ba3f688f15028cd9130fe435c0e2224663473073cd1b214a30a194a7128b553ecc09828539bd30589c35a410b93d60b383604a1573e7c7998a0094915022411d0150776e72269a2a825acc048ec55932f1656683024946147531759d692417b7c006a2401c49e233dd0f0e8d096a5449014af1d9343a0685882b63beb9497a45a1728736f97e088e8d2c0292718dc2cc1106681a81727ba2c8d62c0769ce3c0e54c17272f4c408af305c3274064a22cc932e2c90fb290a4118a32194de51901c9110610f029ad168adc28d910e380393300411b3eb13a2052852494ccc43c74bc15bc11cbcaaaa4d6098216844eaebc7048d0236a810b59ae84892b0467c8b702336a8d8d0fba0d2c9283eab80adb732704020a103716d0fa992176d0f24229cb1a2922eea4aa030276c1e74004014b04d093e5cd0126106000872a0d571e887285a65dd3ca8b172a0f4fdc207f2b9460099a0841ec7044512401e6b441e38262868239a7883046845052a10e191c93bc4451b123bb817163d49ab96d3e746cf331e0653b200a2c0b96427b4e157131a35c11bcef910174f400697100a93836227cbcd256d598f026628da40a3a42d9c95fdcf88e1a182011274b940767abec422d3221da8a0282d08f307ae8083a58450954e0e227c301288454880046c89029060a4460a5cc948f02106009403a5cf1c150b6650b888fba2d5f03ab105065cad591c39691060a78b93270f9ec3cc81995c0842f1c62d8f8a31c1e72bc0d4062cc1c9b2961c7089a78124a691170578a0428445a32c8dc00519133755d43ac70ada95ae321cb24224d8e948bde3a78590b1023270b09218c823ec418c0c0002d1098ca326f86d8b51903444c1903c63cc100aa00348938387041525a0e2833b62610397032e2d6db54830b154b3f80201ab0c024cb8dafd103896a189104c54c1e0602192007c30eae0792ca4e60a201a44294e05e01c101f592e16b94aa804d7729930a0e569dc8028094f15392649144c43847420558ddb99028d4933222b23c80052309e1880462066c40d289cd9ab155036619e064648233c8edc7e8688806831e67084d7934c5c8c6c3d10518135efd177368e8410da1689a90681a222902a005013127b0227b5c6ce06165cb4fee0809261e5ad09314d535f9dd011286ab0ffc46d8a98204460a60f171c18497130d1d0f8f3fe5222981907714d802c7a3f0bde2f2d282eac8aa15065cb9f300db063c5c2d2479173fc6d081d26815045ac884f8e42585ca2a2a522694310a9a40e614c034f9b4786da1e046a04e9fc59616451eacb0b0b5c7934d206ad5032d02e8552823c8d0ca30ca1580ce893a38a4986455d04ca804c9a722a9a0ed0e0e3b810326b6407810e1cc169926567219e218a8e28ac32b1483025b06372f622e2cd571704ffad06bb1810a190f6894085a84c10c84b61f046487c6c439a435c8adcb913681166824a30fe2b38406efc2832649a61c493a671c5cad30cf6c72d1e19315331b7a97082f11420aad58e40015adb62d6716793900830967fcd2000b85571709b22a801ae4a0544131c68b4048523dd0a16bad2c9352575434e11229299fc291e5c01a1ea63812545046851dc8b0d4d5856100b89e0e38c583e8c81d271d1e39c0810390507e4c89f5f9e427c410c51c054b99aca2bd0a926ce7b463e3039e12432526181e289a408d452722726ad298f0c4c111041b0a3158e302f0c1b101aec48145c408f1739569ac821b3b263571b581941eb8351b178670c90262bcb3e65890010bc5e603a80d1dca3078c5f861684081424b22928ff96705025147638c36b1a012655d9dc88a70a922e36382934a382ab873ba59faa0556a40069064ca9a3737403c25e0e91104709e7e26ecea060ac511a5f6a38ec6121a8f4a71d98fa6506921c6c4a5430c88e8c4298d8d972243e8bd16230e0e5e0cda5bb214c9e7870898126e44b9a1030691922e284075da3ae5a1c959e9c48e4d4e7a2416d0717ac02b45271f005cb951750045e666812b60b4f87890122397675097006e10da0009a2296e0b492cc453c3aa471d1286bcbc7670b0cb6025502b3f172858e7bea70473eaeb910755c95627973a7f5e2500f434288528095a14ac690140985377441e55a221440faa405dabe0d4123d39e2f060e84a994a613f567960d97c282b4ea0e5f6d849f46687a84eeb88a194d0178905c04072f4e14a212311ba62226315b0e9742050186462952bafd62148300b48a4215f8568a8b8ed84ac02a34501cf5c00726b8f5e652d50a2d05a9e0518169d7871ec03224a0290e86a5720e6187058e08e34a1d45c0a5101bc59d0a38601a0ac2d43070f2e606a95aaebcdc9a32799b860202b3b23b4618b9ebac7704d5a1817241cb21c795530c6cf1a44122cc01074b1c664a150804a254e38d6f070f891b20589981717e6c891c315248581e7063dc9e4279136c831881c74426df0b30100578c5ab191f24b404f2a3b044e555945e3ccab3207a2242f008bf5234b6ee8eaccfc5e6d3d4a9145c39d0789a264e172856bca00432449c013e4f7f61aa1e3401f4a012413b07006a30690cb001b98443caadddc440a13c00bc789a406ad35051c9056c153970aadaa4ba390187ca1645c6233c5090db844a602426131200517891e91229d9a2b7307ce062367f068dd79fd58a758305f4c3111cc24e66740241cbe257e320c878065484e12f5ca8840a2dd42537ff953898e87486d103cea62e84d830c8ca6c088c3c05727447264d25e002ac1f085d012651103d6f7000774801a189fd2b6c0889062f0220903195c4ca063800c9a2c6560bf846a40c08808c12a6b0d044c0f0c1e9430e9f4a0458a28aa90492c78354176d1827393fa232ad5f132a07672c48276a40b4c1bd8902396111fdc12a13074674ba60e82663a5e26dca10d40e347823d10904dd262e1e2f41308951242109292d8528306754da002809d2c75660594486c0b885aa1a283853833d86e187f12da2092550d0bc5c81aa4e88d15d68cd0193517afbcc478a880218859250916e06a45a3acd2e28118661871d06183eb0ee83cb3ff77d63c5dec784d7976bfccfef974d7df53d5dca1033d816feaa6e73fcd75fd3f76d1b8f539deeffd67d7b845d33ebb729cfebba15d0308a4eb7f67a48d40601169c4f1b6e7efec1977b93de13eabad3de6deb8f1a2ada9a6a98ac61d3dd56e9a690af7fe347555df76158dddd634e5176d5f306cbc671bc7bfc3bdedf05f53d9bb2a6abce90a77ef9ee9e9e7d8fcee2964bbec8f28f0ed753bdac2e6caa2ec197ff3c7b2f1a7646e6fff5f9ed1d88d4f996555f514b2fd7cd1f69a2babb6ebc9b2acabf6748d856c27fa5aeefbe3d9eb7fbb7771465b1aaf57d3584ed9139dd593755d54c8f6744506efe2ccb2bd3d9653d65459d6f778f6ae2a64bb3de34dd9d83dd9156e5d349edbb315b2ddf889c1f55455b3b5d74cd7159dbf477d8755765e856c9787c17f4cde49e318109834fab7155dcb117cd582c1db46d6bfb49785fd29c7aa899eee8c9aeb2c64fb8f8db4fb63e30ce38bb5b58f342ae3f5308aa2a70caf7037d5b385bb19e33563b7c36ceffefff66453183dd15e36463bdbf6783653f5abfe8c87b7bfedb3f7b3d79fa99cb2ea9f5b989dd738755b18efac9a72db7dcbfaf3c3b1290bd92ed3622f5e9645ddde9aaebb76758ed756a6df37ed5e6ee10ecfa8e9ce1f3ebb69f67a369de3565dd5d43c63d57721dbd1b3ecfd5e46bfc9c6ae7b9adeb7eed93bd9dbbaa6da5b3395d1f844515315b25d051b7bbbeb7ad4bbbf95d773f56917b2fd48d7b2e9ba78bb89fed4cbe839c7ecfc5357c876e2b1380ccabff642bbed2c00ef3ac37e86cd58555d164e6198becf53458bd785cf74f5ab4f7d2ab729dc0ad97ed734ec43b0787d6f5bf7c7a76f61f8fcf32aaca389442fb4d9beae783f7b9a73ca9a669fd1f89f5dc8f66fa48971d0f8e9fc4d17e9fad84f752d47504cc5bbc2f2f9bd8b9af329abdfa742b6b7de064c96f6752d4790157b65d6c7ae39afae7cb6ffa37e9ee9a09be6bea69767954d61d9654d143e55b4f6455776f63feea7db9ea96cce685fd71e7f3a148d7de1b665d1755dd71676cd160602dd752d47105e5f333e67d89f728b9e1d565b58bd8b33aabeed0aab3e3dd359f632cac6a690ed421b790cd6f4bcf6b4f4ed262cfb368dd3d8354fd5cb42b6d75e189b3d88be671aa7706baa3d757bef1e15b2bdbeeda0fbef610d07040281adba9623c8e37c5dd6c72e6aba2a1ac332ac7a3924fc6d8faa6b39826dfd9dbbf9ff7ca21e364fb89fb090ed41b4afa7f9fa595d579975e3d545d539f642b6ab2352bc736b9eed575b739de1f8eca990edc1b3af77714657e0fb65d9554f55864d5796dbb60bd95e47d772c17e86bd701aab6e5fdbb8b76c57ff2a64bb6cf4b4dc4ff6eb0dc6d7d857d9d7dbd75bda57fc6dd4f9361707d8aba27d956113763f6ac271cccac6619d11491b836d1743f17a345d65965d59d5f4303c77f4eb0dc6d789226b7a0602efe20cfc324fe417f1581c7ebda57d054ff5581ca245a411bd8b330a9f78e5d9b7ab3f5b37354d74954d21dbefe21c94330ee7dc5fd371ba9623689a78d1f4cf716a7eb63ddd7fa6b290ed41b6c79f2e58e76b565dcb116c4b14693a4894eb601002893a18b4917530e835a20769a21c4dcc20a2fc0211020d9a20487c285196f000d6810487131b4c0d26bc4864b033747961988b3d4c24d2f5890bb2ffb517d79f0bde76dfd861ab07bf5c06ad6e6795f89d4710beda7f62acc142051114ce093d190c21a148c7c15f07837d6e55cf63fced201be1947f3078dbfd1310badd176e7830dfc8a083d81e16413448570e0c56f55c5062b5670fdad1757750ce3814da5ed8a1b781d783c5604ddf3ebeed7e07fe33e0172602de2f7ae3829f98313924704145a88cf19e21ce7b8538ef11e2bc3788f39e20ce7b8138ef01e2bcb700e73d0538effde1bce787f35e1fce7b7c38efede1bc9700e73d3d9cf7f270dec3c379ef0ee73d3b9cf7ea70dea3c3796f4eef4d2f89041ec8559431dec003e763fc770814ff1d4ac37f87862f3c8ce018dcdfa136fe3b3481ff0c2de23f4308f09fa126fc6708e63f4365fc67088cff0c31e0bf4286f8afd01acef98d076c9c73b69fa310fce7e802ff396ac07f8d58f15fa354fcd70802fe6b5489ff1a2de2bf460bf05f2339141a4cf8e561c57f9490fc97c7d4035f872ceeeb3081fb3a3860b0d5558affba20715f6981ffbafef05f979b1f561bff6191f11f1690ffb03af01f1603feeb4dc07fbd49fcd7e3c37fbd34dc57e68cff7a5bf8afd784ff7a37fff584fcd7bbc17fbd31feeb993e1f050d1826fccad4dc5786c87d65823edf2a42dcb7ea0ef7ad5ac3e3f136bde1be4d66b86f9314eedb1484fb36d171dfa699fb36f1e0be4d70dcb729cdd7a00f1cf7f531e3be3e2bf7f541c17dc9567dbab8af0f16f7f129c57d7c2e711f9f44dcc7870ff7f171c339b7906541c204090f7c3e8e709f8f3afebb04e43e1f46eef311739f0f1ddce7c38dfb7ca4711f90ce7d4042701f102eee0382c57d771470df1d29eebba3c47d7783b8ef0e0ff7ddb5e1bebb2ddc774785fbee9a70df1d10eebbfbc17d7742eebbf3fcd7880bf7ddc171df1d1bf7dd8d71df5dca7d7728b8efae03f7ddfdb8ef8e01f7255b715f925405085b122238b0006102859f96970f4718eec34185fb7024e13e1c48eec301731f8e97fb70a0e03e1c1b9a30f07d60f4a10cf77d80c27d1f6eeefb4073df8798ff2e69e0be0f6cdcf7c18cfb3e8871df872feefba0c57d1f18705f4901f795a4b8afccc47de523ee2b05715ff987fb4a35dc576ae1beb20af7954bb8af0462c18b418409172a44a0c0204b42a256fc978813ff2542c431246ae3bf4424f80f5129fe434488ff10b9e13f4454f80f511dff2172c17f883cf01fa2082848942c1703179c6399dcd72609f7b5f9c17d6d62ee6b03c77d1ffe705f9b34ee6ba3725f9b12dcd7e602f7b5c1e23e36a238e7102a700b18b2b85a9e1b24bc4c9cf304e09c57c6393fe586b5e001560fcb41af8103099c7ff87de89c771abc9b31813184086f82668aed8b17ceb93039e34aceee7aa846e68dc352c5598a288d9f68fc44f514253a1612a062c30fe89c6ba1c2a7d8e06c009842c0ae8144181e3e307b60862c8ae24520490f2f8f5d6b69511e7d1cacfb46440d44d97dd938c6396f2355a21dd8c3e24f4724fa22b1aedf982612c78c7243a2ff77433b6d8d831e75fdc695c608954e1893f64f94a0fac7f518959f281a11e7fcc1212e671c0689bec32abb061e7db1bdc1de586fa837d21be88df346bff1eb7f76a26b6fd3a4afeb31f91b87f3978d358cc3fb138948b25fd365c6211ddf433279182c225f383aa663ba4d36fedbfe70bee86da40ca1ed85f587e76afa453249661fefda1f6b24912d4934cef0b797935f46f2cf9967f2a7abdd978dc6135d337ae1dbaf6935b67bac481bbf5ca48df50bbbfe70f1abfd7848db48d648dbfffacd382cca63df36fef99b11fd301ecac818447b28f7d384f17f7beb3f3734d26af7d058434643cef2f01769b76fa4d7c4f41e061cbcbfc6608b900860602c5ab0284dd8c9c312f7fcd3c4daea19f7fcd3cab22c230029ede461f0cbc93f586ce04268f080c12a422c5acc9f3888c50a14a5f113834199486355a2c4c5c186db964b162ccab8b661b36cc1a0ab5312ce39182ebd0c63510a815f4efebc08ff712283e30dad6c8c6dacac5c51dac943ce3bfe3685e2298ebe4882731e68cb8811a559b2f850dedf9e67da04e70c5a30081b31a264d1a2948d9f2ff0c317c4592065418c05680bce16a8f86922d6b49de2c743a22636dee6f672433a6f4c9122ce4489a3afeb8c4831b1381bb5c5c452942e45c5c44ebad3462a2686d2c968a90dd4c697bf8d14134b79b4ecaaa6e8d982472f55e85811d7636262293d1bd15ad0b311cd6e61fc695fa6e1a4579391f59b5b0be34ffb45bf66e7d5e8d988f68bde3817fbdbed13614fafc9df58838d5e9b8be9b4fbabddf49afdff0ba2ff66f49add2b139134dc2ffab56f13fd8b974844be903f913866b740d186f297bfb1869858fd8f48bb8509b013b58944e45ad238568c6fd4df46d6ff887473fb74c3dbaf198732ec7be8ebfb58acc964a1b1c6d1d76f9f6e68d3f49bfdff0b39e370edcb74fccd8a434f44d2b5b1c65dd347b37f3774b35f99489f7d22ece937d993118936b2be8d35e46fac3143260ee1bed98b7906913846248ec9c4215c8b3b1ee3b1f696470ad344b2bbf66c49992693d192324dd6a2c589ae38d11ab76da4cbdab3235b240ff34c57248f1395d1e66abaeefe6b278af4212676d28989c5e09c63f19fa4519234715e8ced8c4822baadcd407b2b5bab112378634c6d187fbae09cff752ddce24ff786400333b85d036fcf36e73fdcbf87759dec7f3dfffaa40b8a05e36fc31e1ec7ece1d1cb1989c7e2f068d7d12bec2fd3c6a0cd9b00921baee67f7ddb305ac8b4d144c5c4c48a18011284014d9cfbdbe65eec1a488410c148cb466fa4c738ef15d072a412ce39cd7f8e4ef0e027d26b32913e33fe3bba7ef16fffebb23a9af8c99244e38c1a652fd1277d1abdd6760f8bc334b319656b6fb06d465bdb1b7cd36a98cd500bde18531313f3b61cbf6e2f4dc3fff672fe48d7c734ba1672fe8d8de88d686ec97b58835eab654f267b32db7e85773d249b69ba66933dd9af9137f2c53d1c33fe39facdb6e935b5167234f1a6e9b6ffdbea9ff4c492e88d63753471368ed935bdf68948992e969eec889ca3eda12f1a69248cb4ffdb3c94bdf03622cb5ffb1746a4971bdab68a21b02c6dff614f447aa1dd17def5102e7d69844b13259246b49b36fafafbfa5555555555354dd3344dd3344d51144551144551f43ccff33ccff33c7befbdf7de7b374ff3344ff3344ff3344ff3344ff3745dd7755dd775ddb66ddbb66ddbb665599665599665d9755dd7755dd77555555555555555d5344dd3344dd33445511445511445d1f33ccff33ccff3ecbdf7de7b374dd3344dd334cdeebaaeebbaaeebba6ddbb66ddbb66dcbb22ccbb22ccbb2ebbaaeebbaaeebaaaaaaaaaaaaaaaa699aa6699aa6698aa2288aa2288aa2e7799ee7799ee7d97befbdf7decdeeb6ecaaa6e8d9d588feaee962118de3f023d73f05da370ee58c2fd17fb75fb315ff8dc67f7d1670ce6343fc75d1f675257d26c7ae81493868dbfe48f4b79f937e8eb64bb01547db860c7948db9891ae328f37079a5bd0eccd81963686d6f6ba05dfb61a6f636b30d0dcdcbc2dc71f0804f2de8d3d89f61c320104024b946f1b5babbab9dd25edeae890b75dff38d2c6e29c8fa1502e078e1b70366abcb9b5d1605b534b9311e30cc68bd7ac8c6cecd52bae2dadacdf2bde4cdfc7641dd7741c76b405e0bc48d72f8c9f18a4efe011196ce7bb0691e88b6e34fd46c6a237c40fe7d931b488a7e8a7e76876d344b79b26ba058f472f26e676553d6b5b4cccd748dfa2be6db1a2edeb56d0f5cf91241b9ac9c61a44e210ae3f9b1dacffb13d7b0d300f02c0e382732e26163cda6559d3731e309ee701c7e388f3607158fef018c0f9d1ae8141f9db0de7f40c8b87f72f0aef61edc38e101e60a1e1f55cf44af02071dea2433c4163eac4d93550f6bfe6597442d5749c821ef21dc87a461a6f18397f3986bddbb2ab9aa267377b167a127a3d1e2b9eaa39258844a4f1378773cee3e2e45ce23f397138e7c7e4fd93b364881c3bceb989520c0cacc44f4e0d3969a5b18824d271597ee3d048d7b62f1669bb2f94a3eb1a697f234d34311b8761295094355daef9b5f2a6e54a94ff1e1a8773797b9a38dbffa6913f4ae330f9e7927fcec48b6e9ac81d61a6699ac81d25ca3810427880c589c595f1f701d3a5d1d7fef862c64b640d100f2bd6dc28113a419b0885a062820899180de39106ee10a1704283a60553a80c81f4966983a25ad210316966c470a103d39062251969b8005843584d2b9a70249721581b5ab95a54b91182e88aa01d26a2a40921a0ae819b0f2c220889adccf1f1caa242480ab63533955213045945c1461d1b55a0200a445003e8cf89360895074ee612bd511004c719b2175d4c2408f2a5049197bb064120a4e624bc61d5a601b9636609098a005e005182c5a9e7840523206c8940a962592601f1e2f47e5085a3c7dd26250b3480c12072f7865d838420fe3b20509ec4b56ce8bb1710541409838b72f70353c1fc64cd3149290d14a1ee4e2d6986ca17155604b148d614d252a001d3932b306911b9d12349071ac80ced908067c728887a8cd143ceae8b9d5c1dbb3302411f7c7e56d5b942739176f2b2a34e9098963fa186b8a91300dee2a2e71c5117c47a0b6385e4585722111d94145c72d09d6a0085982842b8e8f6f4b1e4e3cee3a17322b74994a0b514746f6e1d6e80691185ae241bc226cdd523e427ac5698b6089542c649e46aadee011f6411335f8295a21c32c6184796d80e9080e49a518988bd67c5fdc08437a79f57f1ad0686914f8b08f072231921aa71df75dd63c81f952410b4754b18b5610038334bec473732a949b62db0c35c9a0322d0adc82616a06741fd66c45e31998a74d01db27b6b01d8418212ea436aea2cc6414eaea07252c37b1c842993c0511de6aadef2a594db0f55aefc5cc81000a51f7fced4813b48997e489973a755151c733f6e5849d1c7b66cfc088146441f5ee9771c65d35bd22b101ced9818c1f527cddb314909ca8c4b93b223db31c39f3c4504ed20426be232c0a1e20543b41b16f41dfc404e032457e85783d889392e74349871d2820f4228f0968c65b874cac2ca0811e30fa38a341dd0b07a8ab1c187377e9ef899505c742c7279bb80c74a264ec5d9003583c866802a9e1f6c886db143105bf5425099a00e4b0c04886885ca9d02da408b883c8824fe0c5925b050e74ef50af5a0e5137309f870a015910669e69ad420d2cf393c736e7504a02a61c39cf320a2cf1233a4d27c7802c56b950410c1079c5169184be6810f22b60fb424191addcd4df131bcf4064508c6ecd1304d6989c221b152c3bb53172448708ea18b3a97d6ac593b6018a18fdc1d9b186f840cc82961a587811cc2301ebcc0aeccce84739f10db4a8c825005f5008cd01548425e9346700feab4e40c55e850eacc1728b9017e209023140727721e95940342c47024077647c82606664b66095865f9e4a34b3bfb812d89c2e366d51c808f579a8246a6cc703388468f26982281c517e521811c43ecfcaf93e173f5559e3e1218497ca80285fa6b911aadbdd95bbf8b0d3252d9943239931e5597d609ab7cc00038e63c976cc8493bd98c2dbb4ff90124fbc0545526845fe2062ed9b841e6c2554c068edd8b2d72677c8cc588b4bd9bc4248a19c08ae02d203abcdac41dc11fee9e95a046aae0a4133c205fc5efb09d000bb142e547f8712482aee04f9ca9383d714ce2dae2383000f716a21341b053254b731082a58270306c1a25068744704894315d3c40d5c1331d41ad005420db0007f4b07456e3422738223d0c6890c6ce4e96a11e37831a6171931ef570b1c0ec4b2d889a1e10c0141b60f2593c1c21798099d784f168a3000f1f2c2e9d61d154e491ba526be0001b1c0f5ee8c848869ddc41c892d7a7ac361d3bb004d9e14f305810a1993b502449416442a3a643021d7db8c470538053161d51c2caeca8881045870d1d201e0829bb51c1911ca124c10c748479c94127c791bab355268733871a9433a932089a910307264f7a86693218c2d1662c8505ba296c70d8e128eb83a302ab9fddd9987a2392204980c0a4276e8c6984a92d6202cf0ddace1015275be0863b7763815a1c1be5310a4e510b13a9fcbc8902a7a59585515d3c5d829309d92330445004ceb44101973c38ea88b1b0b1400c1306a02bae6c547930e20b235f211b3a5cb03084642dcb86881aa58e8564145a00d4c0536349db284a715d626ad09874ea029c179e6abc717a43008d8d882b7f84bc097983f1967507028f40c70e6e952440c291e0c46e6726e0e189cd8e196e76188608e0844c706bd1264a1b539e8ddb032863f69458fb6a6b2406826f271287b62f6dc3b65483940480a502b5711a83ee685cc992c1467a42108d38bb077e7f6a14699c00c2968aab80091698c16c7cd89e04d96a64113189440a226c1f5e3a9894ecd13203d48c391a0c9df969b930c3c88cb4196b98d6d650308c82c59db05607bcf3a85220166b645004a9d1f4455ea3a006494d8c9a51ad9d81050100ab52a961d54326b3af92968803b2cc918b863402d2e2b4143256c950404b06150364e41893f1852806a9187762288941a38018689b6cb4373bd082a0bd404b3ba3943c33e3cfea4e672cca9c3980c108861718c24c30d017ae5e087a21008617c117263ebda85e3eaf93defba6be6515b34f6672cc8a98c9302b7ba04c4d195dd958d904b2476462c88a642c596fecd0a13f96055292b1780c98a4888b097c70177f9a7017535cb8c0c15d7c7100a630b84d183f3158f78d2592b50fd65e1807ed2170267ebbd76b50a14105bb061aeb7fdffe98a2be6d1e01e59c1ff9efcc25bb062689494f3cda43b3386b7e6d360ec366e3b004fb9d498b7bb0c9cca12fb36e079ac01ef6e5fadbf7301e128f769fae441affd117ebbed10c1b2fcda477ec6b2f8ccd7471cee3cafacbfddb38fc957915571afd27d2349cf475ededd2ab85a8a9944952f31c65b8f0f6c714c9bb03cf307a360ee1b495c2db1f4b22714c4c6c810a359c011d06744ca0e9baadcbbaababbaa98bbaa7db5dd375dbb665dbb555dbb445dbb3edadd9ba6ccbb2eccaaa6ccaa2ecc976d664ddb55dd9755dd5355dd1f55cfb6aaeaedaaaacbaaaaa9aaaa87aaa5d3555376d53365d53354d53343dd39e9aa98bb6288baea88aa6288a9e68474dd43ddb933dd7533dd3133dcfb39fe6e9f6b6b37ded6a4f3bdacfdebbd95db33559733555333551f334bb699a5d7122ac852a0bd266f74037c69141e2d3faa3a2b6c1254686154175438d4d28c983970590e809c4a0c91922373e40e0489220838c456b272e283a9040870e6002c8045b2bcef4088014d6132204143bec3ea4a0c0672ad9d4020717631e4720dcc479451194a1d38a30ad768409a12082056a3395075c6cd569b526a3e97105c3ad64da2818e13e015a45621373f535d84d80e48654c0ecb5043e05a74a96072850f161f416e5040bae7686891db75d231b3ce42aa4818047f6ad8a1441262a7106fc34b5d51fc2c0733498d071a1edc4ab80a4c1273635d10238ae3b079851d026d722518bc7ee01c0bae6078b5024682cd409401c96549a5ef520a541d10a232e8649085ef151a31c152ae475c1852937df0924ea1780234a9a156280fc0c9d52024ad097529f1e7880c55babb5411b807858b1e64637a8c1e2b1c203d4745f10b48950082a2532e5e9c95580650f87135962348c471ab83363d09625719a57319a7038a141d382295488a09900120307be19050c6f993628aa1b7875276ecd82379fb840ca4a3323860b1d0f68f19c4861f5692224c9a1928c345c80de142c0919be70a180450a064d2b9a70e496325c1e3c901604529a485a1b5ab95a541d40c78d03af3159b2466975b82268878928693832905145fc02d5e5a1abae819b0f2c205c7a806d01521c9a5ccaa065658e8f5716155e6a92d853311a71baf3c0b666a6526a8213174c9ceae0800748273250b051c74605a8c90f4f894d4388587adb8aa006d09f132d515205251d02e6b432df03277389de56913ac0f4024b823aae19ce90bde8622281daa60c7fee76a8e1a4674b09222f770d7a90a1032311960ba34011f2cd4978c3aa953167550300d2d8ed19c580979925242802784b4939fe4a01bce204820b8b53cf098b45522404d02106a457a0d67c8940a96259244582c0e20d03492d4e2478717a3fa8c2d1630432c591512552a1c9e252b24003188c214a4e4411ee71536507cd8f5d8384207eb6068b528b8555de4d039427712d1b6302a204a525324ce979b800414591303828854cb97fdc6094d992f60353c1fc640dfd48871f5a0806bcb08af6f8c36aec61f73483a95a63a179d3f3abad67d1f8745954f6718a75e6f5a6dcaa30aaa6261bc3b2bb0ad9e097ab7fd1ec774ddb2996997786cd133d7b2ab35d86d1382ef3b2ddcb5e465d773ed5b4f526f248e69de1985d579585db3575e1d68f797bef33eae7983d3f1b9b3d02b0c4bc72975befcd763ed7f85cd9142bcc2bb3b2fcd595fd3d8dd353c502f39ede557b8bca6c9aaee9dcbfbc731c9b32bcb61ef6aef9e7d4cb1bcb2cacca290bcf6957d5d8ecf2c21e55d31656d1f974e5f98cc3e2f2ca6dfb63f8fc317aa29f8d5b21dbeddff6c0daf29a5ded6c1bcb1ffd2bcaaa70012f1ba72ddbb2addcce287bce6b152c2defbaca3d4661d63ce1f89b70c722e0457d6caa69dccaace94d35ee58595ef4ffefc6ecff7d4dcfffd17301ac015e188d3dfb65154edd198ddfd30d0bcbdb5dd6cf2c1aaf739cb22d1b0bd98e74cbdafa998c0bc0baf2ca6647d3d4bbe7bcaef1da4d21dbdb7ffb1ba9b6d6c012e065e1146ee7559e7b9aa26657b1acbc261a9bf21aa7b3ca9a6aea63639537955b3435bb799e5e766177c6a2f2feb66dd1d97463f56461d5c59af2ae7367511555d7f5bb707761b7ab48b0a4bcbff7563dd5739e65d76c652f64bb796305f0c29d8553f78c7b576338edb390ed6977fb4a032bca1bcb316bcaae79b6ee1af7f40bd91ea4e5f5bcc382f2b69f4dff7a9eb3774d38353b4b0f8347bb633d79bfdbd396f5ed7caae9aca23dc572f2a6ea39bbaa4f65f3fbbffeb4fd7a8321d365f777c36af2f6b6ff96457d2c9f660bc3a690ed41a38fcf4ec462f2aae6ccc2deff386ed9f9afea91aecd80c0235dcbb547c22882b5e465e1bfc66a1af795fdffa3339692575ed77ffad5fcbf6d67b6f542b6df345df77e622579dbb89be80ac7ee1a9f9e75bda9070bc92bc7735fd358365bf99b2a8aba81b08ebcf037571646639795cdeeba2eda07cbc8dbe3d4c7de956313ededead7d40f5691f734e7f38c63d85de5735dd5386947d7c7572fda6113f5ac0cbbf3baaa9f4fcfd59bca6bec65f944dbafc2710cb77abfdbbd2acfea19c32b1a7fb457f0ce5fede6ef70bcaa28ec51363d0df558bd5e8de3d934655595e5d94c7bdb29785dafca7197cfd884e7335e7f5ff5b2b2da7ad5f4b16aba6cbcba26da9be04dfdeae3d874e37faef18cc6c6a45cf625afa8aaf7ec5eee267ac26a47d1344525783d3bcbe937e77f7e3766e135d5dbb668dca2a9db76b98ddd98eda17ae7b48d5733ed6cecd5b39b6ddd3bf5a6f02ab36b575d6f76b69ba690edbd9b7a5d379d65f36ce5d3f4a739a342b6afc65ea9774d53f49cd3d5b3b22cbb6a6a47930181f2b7a3e19425f648bdec573f8bf67435cdaeaeb22b64fdedcd7c5bdf47bb37ea85d1d685db5655fd3f5177fe4938789ef237d600026551af2cb329ea5b596d6156955d57c8f6085eefcef27cbaea77db533dcfd30df5b2333aafadca9ee88cb2a7290bd94f847dbb962308a407ea6d3d9bc62acb7ed45cdbbece69fae99d61d64ccdf8747bef41f0ca691ba7a96fd7ee6558eda7a7f7fc6c9a9abd3dcd336ecd15fd2a0302d11eec2afaa7d7e9953f3c7f7356d919fd299ca22ea737fea679fe18eeebfff30ccf9bde955dffaaaaa61aa3b1dcdbfff596f605046a7ae5734e5db4fd6b1aabee87cf4c6fef710ab3fe8ccf133de1b3c5f4aaabfb5dd9ab1feef377bffbc06bae6a5f51d53461b355ddd5ec5d7a5d5365d93ec3ff6ce5af9e5f7a965e556ee5569ed5f57ff46c61bb2f1bcbd01eec6707d473e03dd735fd70675d148e7f3cbb291078f4c5b6d21ba35d6d4d2fc76b8ba6de85814020104a8fd2dbd1b59f73bcfe3376bfdac26b5f655f675f6f695f40e04a070406fb4a77ba1d4f6fd2eb63d644599675e37ea2a86f7b925ed66c4f78f6fd777665d38ea27468955e036febceee29fb9ea6b26fdbee23bd28aca6e88f59349d512fcf2aa4b79b68bbb2ae37bf1bcb265b0777aee93d7abf79c25f3e3dfa61578dffcac0ebdb133de1396d51996de5a05a77a6e9397a63d8c3a7baaa279aba6e3aa3307a8dde786d673776d3d34ccf335d4f253d466f1acbec09afe73a9b2b0bbb7e7a8b5e559ebd79b2a6fb59975d5755c8f6b5efe9297adb546657f6344dd6bbb0da4f057a895e7fb6f23ccfa6e9e1efce2e2b647bdbbfde60d875690fd19bc6eda99eae9ca2a6f9cfd30dde5f8eedf78771e83d61d7cf27acce6c87cf565e856c3fbba1b7cb306aaae9da3dfcd1f3444f0a7a85defe5d2ffb76f66eecaea64ce85d6198654df7443dbb9ea63755017a83de96853faab2b0fbe1aec6b00a0402814060efacaf919eed07f404bd2c2babb21cf7738563ffbd19e84dbf7ac65efdeeea7a0fcbb090edbfaefbc6b50b6fcf960a6f7f4c93f749d603f4ae2c8cb61f75e51595d31eb3eed71b8c2fe03f26df80c020db62e92df0c65d6e5db8ffd4ec1e46db5581775e7d375134663d1caba86bfe1a69d3c438d89e445f76d6e9fd79bdd97676754f148dbb1c7f64b1bd916ac6176acfcfeb7d7b76d7a7fd84db35edaa90ed5f328bfc2a0e853690ee0b66915f66dae74dd7d48c59b475e5343dcdb93efbd0d76f668fcfdbe19565e36fa6e7c9a22bca0ad96e9f7d357b7bde15fee74f3f9bb22e6ac27e5dcb111cf612783bfbdb9e7635464fd654e7146df5bce69cf6189ebd399bb3caf69fe73dbb3ab7309aaa9d65bff965263d3cefe9677746e7debbfacf794e7b77deb585e355555358fdae0ac32a8ada7953d4fbf8ab69ef6ccaa26e2b647b9d5736e779f528abf63986fb69d27955d9bb5d6dddb9b76d6b7a384de7bcf2bac6df644df4cf6b4f3f2ba627e7557f9caeebbaa2abf9633fc36a7a715e353e4f389d5db6fb59ee2e1cb93dfb8cc2abe9db183d1178d17866531865d5399d537535d137ef8fd5f5c3e7a976198edb943dddbc282cb3a7999a6777d58fa6ed79c0ebd5d48ddb55fee7dcaa5eee357a6dded5446514354db7a3732c9b1f65f3aeaaeaca6e0bafabecaa6eba0ad9bee6e8ad79fbe9d19eb66aef5ff5ae89aa793d7c76f77459b6fbefd5cfa6695e555e61796ddd3ebb2b3cb306bcbdbbb377cdd365e37fa6a667551d3d34ef2c9bf347e3b38ddbf3b3739ca267deb335e5753effc9c630bca22710989a79bf9fd114657bca76f9779f96794ff6cf2deabf875997edbf75d323f3c62c6aaaeb0cc7b39fe3d49ccbd8d2bed4047a63de19565d9fa2728ab27ded272ae65dcf164561f374653986cd763ec3bc2e6c7e8fce6caab63f5dd7f444c1bc301aabb269c2b0f94d53f55f5e5956ff3fe5355e7bda51d6f5f2a2a96cfeb665fd0ca3ec1c9b4d7a5d5eb555571885e3d564bbec3f7b82e97179fbfce1d87567d477538dbfb74f2ebd2daf0bcb699c9adefd73bcaaa85ac0ebd5d8bb7e9ed713fd29daa66e2fa0a7e585cfd9b769dab673eb7ffc3d01af8c76f7cbf277ddde57f3a3595ef46ce79ea2bdfb768ebd37077867b8f7b835e395fd6e6cba698af6b0bcaa9cc6de8c638fcae78c9e72efcaebb6e6b9aeeb09fbef4ff88c856c978934f0c557d9171a1078f44520d0f64060fdefe1693ae909f07aff7d1c9b67aa9e306baa67003d2bef39bb332ba767cacaaaaba6b090edeb6dffdba719e9557959bffaef53d377d5cfbdcf684ae535cf793ddb796d61156e3f9c9e535e8f9aa9fc6357553ffbdbb44d51b50fd093f2aaabe9cd189ee71346e734f542b6d7778b26ebb7934c2f80f7a7301b9beeec5d1445db15ed4579d1b68dd37945dd59765b554e7b50ccf5ec409bee3d79bfdc5515fd302bc36aaa9abfe7e485fddaae696fbd0ac773dbcf5e93775e55dfa270ebaae88ffd3fc7f498bc3d6e57f44cff6f5bd8779fa6617a4b5ed4ece69fcd0eafe6f71ef54060bb962348d753f2b62a0ca76adacee939bb319cba5e7a49ded49c4d9fa2b1d9ffe963dfa6597a48def8a771fcdd544e5d19f5a9dc3bf2aa6a87bf09b3dd847f6763b667e43dd52fc7a67755758e6339fe2801bd222fea3f7aa2de8cd735fde60927659a2cbdc37bf5b6731a9b5d6d6197fdaecb9afe4dfdc373f5b6733761d865d7d4fb8e7ad72ca83ec06bf5b2aac9f6f35c4dd985d1df5921db7bb75ddb4d2bf872051eab17563f3c9bad1b9fe7f94fef297861effa13fea9ebc25ffe72c66152363b7d1bd1d4f3e88ba8dabb0edeaad7cbe91acf676acea91aa3a88c4ef0b66bfc4db96555afcae80a1791368cb459b5afe6b99623a8c653f59a6aaca232ebe5ff59788d5d9e046f37d7b69fb1777f3ac366ff42b607efb57fbda57ddd40609ca2a7d95ee2a57a5558fd68ebd753f56a3cc731aad7a3e6d95d0fb76c3b7b16664fbd312bc7aedacdb68d7dfa4f18454dbdae2ba7704fe1f94cd1798667142df5aa2dccf6965d7f6cba07f048bdf1cc7e1fab3e85d9df9ae8799e74e7a83745e59fa6ab9b9ae7daa6b3a8d7b370cb76d39561776dbd7cb611bc2d7bb26ecab2ff8cd93446cd50efecd57eba6cefe777cdd3a3280aea8dcf738d4fb445d37535bfcb06fbf9e99565774d555585e356edf247217855148e639fbaabd9e3f67f58c8f6d5d3dbbf6755b59557f85c3feccf4eaf1bc3acbab272efa6eae1f84439bd1f357d37533f9feecca6678a6e7ae73636d1dfb6bf9be9eacd7f6a7a4fafbaaa2cab68dca2306ab242b61391c560ea060402813d092fd30bc7271c9fa68bbabfede83f31bde9ccce7f45e1f6b72bda6f3cf0aa319cb26667cdb9ab66bbca42b61b3f31fe7441b7bfe05d7ad72fa3f2ea6538fd73abae5ec8f62faf4b78965ed76dd1d5afeb3cbbea1cbb737b1ebddada8fbe68f69be7c09b9a675f51bfb6a70977d3ec95de3696cd936555f7bb6c7bb232a5d76ccd1465fb4765168653d80bd94ecfc661f0fe722b3ddf1f0610588837e97557589ddd14f6b0fbbdcb7654d2db5377ee6ada59d37f9ffa7e86d7c06bb2acead5f5c370abaa66ab0ad9feff1c149a9d112fd23bbbb139c3a8ab9a69ac7ad614b24634db5eebfb08e93567754ed3d45d7f3fdd2ec742b6a71dd8cbbeccf78b2dedebd12bbb33ecfb99c2ddf41eed75417b08041683ffcfc1b3ff5f7c957dd974430ff7f596f665ffffa218df0002e58cc3ffe79355c463e0edf0997ab4cbece9c2b2cba2aa91269601812ccfd1ebbb29afe6099b2b7aa6f18c1663bba0791ed5732d47f08cd7e86d55944dd32e7f533559f8e4317a4fd58553cfcaee99c6683c9f660ff6456f8caae79ca2a68fbd29a7ec2a64fbd98fbe8653f4b6663ccbb1b9b6dd4ce5f98c652392ae83493898a2f7106ecf1eb4d39e8397e8854f7575d5558ee5997555b7237adbdf63b7af688ca6a63fd59677e83de7d975e3d3cbf279b2706a9e3c432f1ab75f6dfdbcfad6afeeef2bbb962328e4157a4fd6f4720aabdd5de19eae6c31be41e84d7d9bb2b08f65d34c7b1c9f42b6b3835edfb2dd4555d9a7b1e9b6f6ff7330ee5d8e27e87559584d53136ee3d874d1f6eb0dc657fd8dc61ac27b0807040281f5ef9d678517e88de7b9fde7875bd9b727fa4f40af5fd1f9645bf3a3f1ea9e3ffe8f17083c1663762d47d0076f817786e75465e73e9b737aaa662b647b31b66bcdaec0ebcab19aa2ea1cafbeb7279cfe7967f844d9d8744ff67717954f21db5bb431f554c3f3f37ed6fdae3b9fa7dace2b8a9a7dde3ecf1d9eddaeaead5f4fd7ecc1e3f37a993d4dd6abac3aafdd65e53def8ac6ea19a39e3d4db5355d2f64fbbaaa6d5fcb11048097c0dbcef0ac9a70cace698cb2702c643babe7fdfec371f7aed9aa323bbb6d9e37763f3aa7adbac2aa9f4fb40d26ebdbec5a78785e77edf22ab7739f531366d953c8f67ffb1b595c6d7c957dc9f87a4bfb3a7a35f6ceebc6683cc3dded322aff154e856c2fd2f59c9e3c393c3baf8ca671bcb26daa9a29ebaaac90ed728db48d5fed6e5f6bf0eabcea87e3d46cddf37f7fceab4b84873152fe356b62e1d1795bdf9eb2e9b2fd8cd938564dde9cf7a773bbaeeceaaee6dae1b515b21dadae5fc4ffe80604beade508f294f0e4bc7e46d1998ddbd95de1ee7e53c8f6b4be8f282fce7ba66a6cfaeec2ae476713654d333c38afd97ffbddd5c7739755145d4f37d8cf293c04deb3cb6a6cb26d8bca665f4f94f7e6f52edbbae899a6283b7b5966ddbc663cab327a9a2e0aa36ceb4d143de0ed723f4d565dd5d9a76b6baeec175e9b575e7f7bca7e354f739de5fecf93cd3bc728db671946d5f3ecf3e9a2e89a375dd5f8fbd58ce3389551b40d76b49f6d786a5e5635cdf4ec6aeb5338f5a67a76d50c8097e6557b7cb6ae8c9e321c9fa98f51d4807796dd0fafa70c9b737ccaeeda83ddeca7013c34af775b7576cd734e531636dbd3ec675e1955fb7a76195e65b6a3310b04a26eb0a3577866ded36c5b2f9b6b87dd3eafaee99679d7b8ab2cdb5d549e4fb4c71e7583bd45e9ce303c326f3fd1b3aba9cca2ecdcc27d15b21de58d79e7183dd11335e1155e511585d7b51c419927e69de1794ed7cfc26c3cbb2edcdd804020f0ecc11e7fbadedd3ebc30affa65d78cd3ceb2a9faffaa1e936f49bbd605c303f376183e5d98fd720bfbd394ff9757367ddaca1f4dddffff47552faf3bcbab5f55b69f666a76b50381f7b76daf767961f764d7f4fbd975655346bd1bec5cde56edff84d53575e5366ed576cbabce69daa6eefabf3a7f349d89445f16ec5e7805bc72ea9e3df6322bcf29cccaab5b86a7e58de13335dbb37fd8abac9a76025eefceeedc7fdb5d556e3dfab3bc68bc9e262cb767bcaa68aaae03bc262c9baec9a6f3da9a270a637957588dd7dfae71dbfd37bf39c365d772048dbc2bef373b9c9a3e455514f5ebbc9e6b1c4f80173efdfa51d9fd7367d7d83d81c013088c3f1d1088b6489e9517fdb33ca3eb9ccedec37d4dd978555eb3f5f0dcbabdc7b0ebfa7816b2fd8badedeb8b4d5d631e95b7b72babba6aeae78efaf5446d20b05577f0a6bcadbb9e299b9eaddcfed3954f296f8aceacea5797f5aab976d97581f0027861d8643f3bb3f179a668eccfb7b4aff9b701a3f0a2bcadeae1dfaeeb99c232cbb2adfbf506033dc9f0a0bc33bbf68fcaeae9b6ecf9e50f04f61eecad1dde93b78d61975561589dd3563ee5930acfc9bb76f89cd7158dfd399faed9a2295a00afc9db65d7a7ae797eb3cf296aa252784c5e36867b8f677956db2ebb309cd20181ab1bec29ddd9b9f096bc2b7ace663b7f3fa32eeb65190804026d37d85d02784ade933ddb338d67afca1d7555b30d76f3092fc9abae6abaa6eb39b7e80cafb071280cfebba1ed7ebdc1f8a2672010180c76b3077b3b8687e46dd5f8c32d2babb3373fda6521dbbfde601463bba071b8b6f57db4e31d795b53ed6bdae3b48557ef4f13c647123d10c8b22aaf0acfc8fbe7d5ed7d365b788dddb6a728da579979a25ded6b3982bd2bbc22ef7aa2beafedff71acba6677856cbfbf1c2a1b91ad0a22efaac21d4e517996e31535937f2e78f4c57e9afde88b684dbb6c70c8cbce28cac62d7c9e6eead51f94bbaa9e7d2d471029e49d51198d67156d7b9fd7aec642b6afddec6cbbae685fcb118c83bcaa87dd7535cf336ebfeafe53c87639e3f00ec2489b3d653421405e3765dbaf9eb10ccfa75f5b54c8f6a091eee7d71b8caf1bfe6633cabee42410380feb6f030834a20181402010687fbda5a17de2fc96f655c338036844068d3410581c0281c61a4906040281bdafe50842c873f7ba1f565bb7fb8ec6de6c5973987c57d4345157eee669fab3a7bd752bd2f50b201008fc35bd1691467468f7aa9e65bdbcc2ab0bdbfdb3fad7d1693dea5ed8cb7137d78f7695657faca62b4cf7ce1e965dd645d7f9af7eadfb46b4fe6ef5edd63b5bdf36f2355516fef1eab63df6eb19c341e327b23d79a463f54b56915f6f5fb08afc72cf7fbff0ac7a14eea9ebc6ee975df4cc7ed9df7d6cb2271ccbb10af7d90b5fd46f0bab5ef5f399b669ebb669fbf506e3cb4e46fb7a4bfbfa7246df06047e39a3af8140fb4877762d4750fef1ce2bbaba6b67e5de9eea2cab41b7d7b7ad1edf133d4f539ecf555ed9d6754fd565e9d74cfb3aa36d1cb72aeccf18eef56da3c67756e78ebae869a66cdbc22a2a64fb6df7837248f8cbc1b57fbdc1f8aabdf0b4d9da0be3d4adf8a22becc2b37ac6693ac768da6f3b5dcb117c89af2bc3b2f965d9f59f855dd424d2347c36f7b25dfdbea7329a9ef09ad2b771184c5764f0dbb53fa63df5f1ce27eb67163e617645fd6cc6edd98b48231a1cbe333cab1efe67dcdd1396dd2e64bb7adbc33457f8baf09753bfa66d8f7daaf6ff8947e49b29f7a62eab9ef357d9536dcf356ed13ebf72aaf675fe6b1b77384dd9ff7e94fd283bcf310bffbea2f1507edbeea6701a7f73feebdc7af3df472f8fc99e0d086cd7b51c41b9f865d9f384bf2cbb7f96ddef6121db55b7deedfab777715e01bf6a0c9fb26cfe767561b5455121dbdbf946ba765bdf368afab7453dba7acfcee9dcc2b20b0bd91e34d1b1b8174e65565ebbeaa2b0aca6a72a647bf03c89c41fa76ef045d5fe3bfadb1856d7746ed5752d4770478f779dd5194d65d4ec6d8757d4050289c41f9beb5a8e200e1eef6fd7dfe51f9fd5a834f18995919ac428848c2104180c89040024a31100303828188e470312c95c40b8051400035f9674a04e1b4aa44918e4304c21638801c600400801100119a21a070ccf197fda13dca1cfe05367f856a9b4a40edb4dfd00e3dda5f6968130c61524ae65a9907dd40e400cb0dd6164256e6533f35d54d5423dfe9a8177e7289e313ccc891b01044e009c9b4ad12ded6e8f5b136e8d968bf1a17f136c653a653354203f4109b99dc742e152c9b31b0304060098d56b04f0a5a4da365b1bcda7695b2cba5d7518d91a183f78f3e6979ec66a758ef9be4eeaa367088b2c636e8cdfdaa700289331e64258b9e512d93aad5911a2e5c88455f43f2678e675caa03b0d332b2f401b7cdf6673da27072b79c771fa24c7be92f35cb7e212afd5c76b46aaa0db49fcc4e7495ce6857616df8004265ebaa9bef57216b7c94b6cfbadb2e33e5a0d1168263519ad0d84711aed68b0723d0570a3a9bf1568749d8855a14fb9dfff5d2878c9af1af6089d6777649b6fc44a0714c0536b32f7cacaae4d88f7af2bc32f53c4e61a7c8f00e0bd9fd2d56148958e73dc86025c6ead0201782d60806dfa4ecda7a2e09816e68a402a06f6d065b9da7a69baae3ba6e7448904d967b54c0aede38d190da1d9a0dfd0caca21a5d356a3281445c5293c3112f911dae7c07324168828f6be8c200948ea16724a2a0eced8fdf12f517008236b5c496274587e699c9b9031412c714dbfe1ce6285232606258b7b464a8ab3faae67f6ab40b14041ae6465e5a8c6b3379464485174f228355da118afd3b949f5419c1c554f60dc09ddd1e64c9956abfd22ffcf7178cc14ac82aceef8a1179529ba771e513ab7b7aa0a9b5f86e6a4430bf742dd94baadf9e3956ef2e967a950a5a407e597a90a4fa3e5cb322664278ef802e352884a5c539f478dcbc398e62a5b8e100038936451b1b8d17042fb5cfe1ec2cd0fbcf800079bc5e0ab7c05f4580cb353f91b89a105708a54a5c55aa15bf9cd701f14be5bb680f8e2032f70dabc84865577fb01aa9924d47524cf60568def4f2c8780194f125507b22900dd97bce1386824071af7ea5116118fbb8bc8da3007b355a32aee1e5999816c53052fe26daa715aac1d3545fef8a36f8ecd6381997533e9f6148674f07326329d4549910ec94b1b5b927c8049457e5a59a8b4bd3d2d384d11074dba413f2082d4841ad26c2b83f0ec333d3069a170cf0112a0d5d0b693d3f8cf37d97fa441b39c62c6b7c1ed3f94b7f94b58f3476907b33c931bc4c7fba98f5f2f6e7479e95ef5518e73c67b3fd0e1d89fad4e0e88060be40834a06ead7506851e6261cd718516036302e6350614a118b3307b1f3faadbcfe020b6c5a36574a722247ddb53ac9f81e201c2dc0b9d18b77580f1812cd83e7d5a64a9228e15d00744e2dccc200f387081de40b49f70e73c8fa9f7b9e7a830d74b91dbe836db94d1483b15f674e7e2521dc4be7917527147a2512b217433c552d6bf116a845494765c75192b1f1f8443adbc80d6c258090840497640a311625a44af00612038bb04c65bb346e974f73a0c528f0064b87d3d87002cb834aea1dd0cc53f61f449c200d98867a802cf338ddd4e586b6eb570ead15dde894752991362554dcef0613f06d57ae2f955656eb761da6de9e6b8078ecb27258d5d6fdab82142792a0b8659ca649ffe14e8040c4bceca14f12e63768e7ebafc98c822564cebcd0c9c10f9a769c3c44e38f97ce9c563ea73dd76272e27f5c259bddd6348b7a39efb6e99eaede2617cf3040f0bae13638cfabe1b9a3174598a7ce759bf3944cbb81724f5562143d132c66cf8ae29886049bbe1092c8efd3f164b32101f765c69e9730e230542e9ec7ab48fccfb6b4befc6e4e0de8757208a9303e912858cc7ec407a336753323382110d500d314aeb0fcfdda3c4ed47f2dbfa837a67b1f57cd806ed56fc8c6a68e750972ca234a963977fc064f19819dc8f7dc9de38c90e97d04eeb290a3eb8c61d47a95df479d73fe98e861b693fdda1617d5e6c7a4841d1a0b178e5d1ca3295fc154c74835aa461dde6b2a722da5994d50bf4cfbe0c1be9b624497a8dc272d590a2b4d95f45b0518ceb1ca900e3877e2af43f5673bf7c3c418f893d90b8b28421db09ae24a1b12e3b36b5c09c8855f568064305607903b118481148d8b157cf5ebdce1eec2d796e20c229020c11ec29a7678e77b3e299e69d44df361ef58f2e8f78ddcc36b750d38909ff581546723e39144137d8db9a6c3860076e525e3eee2d9b5a28aeaeb4ec8cd7406dcc04db0dc29e1393413ee0149ad1d2a4703a2b55e79d6beefb9a8fe7e194fab047d380252ca1ba5cdda23b24d0af8d1123c9f299c1a0816b62e405520f33313bdf78d0053fc8568602c9e1392616dafdbbc4376b42d3f7dc4c14da36cd72d0b4af6565643e156f8095d6f6c6470e22c3ca02b8672c13eed133dcdb4762a5ea3b0610e951f9a13d3b1692097a286cca75efa42ecb2bd1af8d55478a917928a3a5842f460fd9aaa72b6c9347d7e65ab87703f4d81913403df96ecf73231b73648dd8f9e4972e1b951813c9706ad0282f1fab85d05e94ef452871a5a5407d5ac0e34b3744ce10903f8d656f8060ca074440843ed5ff1697cc156dc07568ccd6470fed8a5c37965c5d321afbcd8c865271d644f318fa9ca18b46b6b72a4900d3c892d65c135bab9f21c30f1722825592cab74fc0fc6431349efd87f6eba010b99667f60717c7b4f957f1c5e744c09e6f592bd0f16584b6d198dc07506e6b5938fcd7d584c4aacea42d90e11fdece1edc4f9e311512e9ec37d9b52d23a1ded7276a76421345c6739059f73769b534db649b1c65c0b7434ca85bf207144fe754ce4cf8599f143f52aac61e6fff67c076ca6504d6f582694101f8127b7bd41772e384d202943af1e84b7bd7696688735157fdfe79f13a502d09f353091f0d2a0abfb1307102e1f2bd2f0dfcff4891be42af8b4a6ae017229f69275097648090d68e52d04a0b60529a02034ca601b897fcc99f245c84211d5b61f9ba052ea13f82171906a715f2b8b1f60605e05b1f0cfb8d9ecdef923e2a6578309eee093a5a6db1b1d76bc32ecc6a6d2c5d4acaba384d9382306ed1c91b9d32e7c4dd54abcdcc39acd82d44c448d19065ad15a8ddb6111b89d4c1309514a2022aa35b9321b26fe9474465d27d8c2f57079844f2c10452412a979668b2220003fc221c75a222620465f8a9fa48d59414547d472603764410c40e54f5903f179323872395a05c211c91430c8a5297dce05a1dbea84325264a88d0b062171b0cb37f6ae4d470f9478d7e0fe28d6fca4e79a663e9399f0d7ad885a6c32280f629831992836a8cb24f116bf50295bd0bb6dd9f23425e181f361d225d808f79b57bdd9f98e96006aad990b59da01b7fc26fb3ff73fc38fbb67bb8cde52a86c7966063db5f650c99c993cae5b76525bb8ef8f3ad512faa3bf66f7a7235a8cef40c01dd07568e3733d419d019ad9b2cb38c72f683245d65ad60cefa7b58344bdfab0e08fd917d96fe37d44393e1a2214f7f2b695c01f672f321c3832d5df9b52f66ce3917ff9ff2144c146bffd9873ce4fac7b46c90acf43feefc24336423ec3371f1b00c52777148f44617b3d5fa12147d630aa74e3350119082ed83d1812590f3961f977625d444267c8580b13a683028830c09e6c13ec014ba77c74ded363e188abbc932ccd256c911126666689065735d00d0b2097a07c86dbf68b5a7965fea9a9570b2e9bf56aacaa203c3f6e13c064386f25ae5008c57ef8e7e0ef4dbbdd501620a9f9c46a45a9fed230809a7f074f9088079a5c26256b66cba5170a70e6c007c408f5744086378c0b08f2275a5ad7d4bec2f29cea91b1d698fa9e5ad359abec83c0ce66696dc4d0f9214f1f6ecad754ab5ef3a3810a71c412f88b90e4f262d87eb4a40d0cd1a1171809f1ea5393ebe908432fc8b19f2c23c36de5f79f45f0e358060bf58e3bc28e99f4025f3b69f3c7519508c10125f4f78a070fce8536c9d95bad03d90092da0325d5dff929aaa1a59abc9e4eb21ee0d38fee7e60def782244576719a89a6450c0e13ed039b7d6fb93aac208785d5999d9dbca4d8089694f71a9cf33b485cc601bc8ea9fb764d97ab1c12e2092bdf718abc50204f5bb9faa9e81aa42b07057c92c40260bfc71ddfaa88c60cf714ed0e83e45efd9a3e679414b07e9566598c0f2aa006a7cdc83347fbef3e9fc074a822436e1e50064d85bf37d3a0b19c9345258d020b4713b1354b2b9048114b3d795386b3041147dcfe75d20ff7ad3a2d5c00c345d94f8fba2679f039dc18dd516f8c8f549b230785e096619cddf55c8a31ad1c61f251690577a18451aeef3f8779f3429f5a1c194069461348051bba7b7342e372044ca487fa141adfb547d810845d2cf597078bbb4a03efdc724058c8d70662cfff4b09d48c6ce2e4947cdeb3d1a229320937cd3f5dbddb87aea94a61c7ab386a067a708cbecd511363d023c8fc0a089cd542eefba9ae7a33086fbdb1dfcd0b826afe80678459e6fbcda93aaf361a0758e41de87024325f59b5c9da01610b085e2c2238465fe1e5b44cca2e6da8dc2173f2b35f4e851e9f1cedef76640774848bf9052f7917825baad73c0ee661a2e823d944214a107256acf1fcfbd7c1626aa77624d6242b29cbdd59aecb1b62ae301af08bae8df8356a984c9b70b0e64bf162e0fa356b62c6cc22ef2cdfab1623fc04adc804908024615149a7cbfb9d96b8fc68b3f552fd0231cd833bc802fc2c3ab678093b25f71e1a38ee8a41a435012753ae9d4c2e0100638ac0728c82dbc1bcf1db03f63ec3139a0c6b27e262436c7f9408abdbe4e66aeafd9eff9178a27d5531a21d63a47d8f494f8f30b22a5bbbb1944261aa5aebbb8b0d7e7b1e826fc2ea9984ed777734510a0c854f9bbb826affb9d24ca0b2b9d290f3e3126a9cbb125c6e42b87c8e08a1acda51290fafd0c8fd581313b61ac7df7b2d8222cdcdf216779009551b59e49ccb2b630ac14e8fb2fd9ef885512faa012396872386a44487ffd09e228ad171295fb5aca4524b37591b54eb8a2f323cb70253ea1748b9efb323910262b83b595831f14806c1555e269413e74cdda13bb0e890c14e476ac9c940c1f711a35624909bdf75c517da15a6160e4c2f96957a6acf997c46c4e4b1ce89b012bc5094600a752b76a26c615084be5a6cc0817577aec6094ba367b9c0c767ecbedffdd931fd8b6ece7792520ba55ec33f17e00424224528efad54d028dfc8fbb98c16843b5ed3d11e227d9c284317aec2d6ffb8beba29cbcdc588f65399b6f3a4a9df66614f5ae1356a9013148e3d7440fe330aa402a3362a75028b0a4028c76da75913b3737aa350b11e065179619c1a49ffbaff40866eca3f220e9658c066eed50d6c8437d76451aaabf2748d2ca90965e24e5c38c33d97920122a9703b7bc238e4ba9d212fbb034534e1381245a42b6dee5e5ba0a953fb2a237e03106330c613afc1e35c6e3c5b2b024727d66a9af8f19dc8e39a8c84ff84f3845f40263230d5eb13878ce401aec5063c353e0fe40c22f0364ec92e47d965ad0c5a591ba04a1f071a80c969d218b6f7f8070687356f1f4de8cc64a5fb88af38165cc20eafeaa916872dc54b706313132a23876afb0486cbdcad4edfe9cc4aed272ad0cc54c5a2592e3c828c0eeddb35599053e8eb4c134544b9b380db7841d241d1f64fc3d3ab53e85076e0c2061e42e50ec618b99e54958f9dd90f3544e6cd76d7b864b4ee26c4b67091a807afc09b8391e76f3dd0f17cf82b3bcfbd335ee1b9319d4183eb9f673b1c67a71fff44f19b0374204cbe7c29a65a30957690b0a4cce3851f1931d2dd618144683a4e4f426a1638c4857a4dd94d76dec88e762588b7c02a46ac7868fa7eba68ebada105df3ba1d7c9f644428c38d16e26a13abdf792289e74cffc76255eb43da71a59aeadae16f9398b27c735ae469fd1acab97cab924314e383431d980efc9c383eb48eb4d2de03821179c26716631d38bf49094e72b07d4a333fa7a6a819bb2ba612677ae49da74be29e5c10770b0a55ab3f1882e797641bc23e02ec2dea27771d2caf5d3dae3476fae1754456917c93253439ef2da6ea87b08ce32abb1c34cc8b02a6b00d4beded3d0ab2ff8c4cdee56ada61c0cb9bb02b3128c50550006aa2f3f17adf0e74379aadba760c277ae048f9a1dfd18a0fc1acfd94dc6c23b57261137844f2e45603a8b320e8e7a7dae269e9c15e4360fbc353cc7cf22020883e7bf8f4f0069829aaa2e12aef3f72c18838e96b498248dd0c5de450b26ca054291d9f57e167c5c3871eb63e6db91d8b213224ad1f263f4aa5ba094705cec0d81a1b3e30c5c02b453cdd1972459f22ec2a743697ff8c15b8cc5ca0286c401f84510e311edd14ee3fb9872009c5e48547afaef122098f586bd71bf86fccf85843d7ef17c6ce59a83633131fc042973db618b17ffa1b92c57cc7c61dd756f654b48d093c71c7844c5f2d986fcb488e2e701a29c74756900dd79610504e5123cd005d0d140fea7af65143f483e699e0479de1e120505a71f8b3dcb00a83d68b501b0381ece6704b81ed1199bb62fa221de8c61fdc8bc55b1dbbf8d4e27eb460d15e3d00fa14472a757898e60e1a4a4035d0637a59113d916e394fbb00c941131a9403259d0a534288b8f664da43248ac62ce61e1bd96534460316bfe6bef210d1e54c468f011388d7e358e2c18bb818269bb7863d90013b3818a8ccb00528778041ab74b5caac791bc7418ddbb00654006bc49b9e0393ecd1b0bc1c361ff00406f107b4a59c295e9c306ac9ed08f82b832334f63e94b2294d5e614c54e38b69dc6aa915466c4013b79764aced1a6bf1a47a0c1dd705d7a40c2a5e64f4a0161595e1f1bc8107ad350edab3152d3b97d520cccb6b07ad798d7a41c791156610e04307edd4c406207ff236f6ee6f15feb1a6dc558c0e6e0535f397fa2403d8f00fe87fb2e8be05b0e502b66d0e93c15d9b14c2e36d5c4b1825aca44bef3201f8288a4418540eb492c24496a14aad30c0af00336880aae24935e644653b170c53f4c84100ce18316fcb4896bd07fd66c4bc732c444bde8368a4ec77b2d7959e3d7539a60999d0dbd129853353dcf321df5e5ce55de10cde1ff2577e87bc8d08e20a142208475b8a43b2a60ae9a10f663d84d92e7dddbfd1b943e8f57e8054f8176357d2d7725c7d2d6b069116da2eec7d02bcf2fc136962e08b688ea57160d29ffc853a9584a64805d82b2b1c36a7362d969dbb412ed94a0595b11981a3191ccfaa25631e19cd73a8db4d078cfcfc966084e3404407613476db459449beaed9cbfee81e282ffab32be467344765e968a25611f35f0c12fab8881c748deb9d558b5fc261154ebffbe746467b988d3a06b8512f66d8347366e8145738b9a340b7037a24c9b4804b377bcc6430806ea9905656bf88311d2e8d0a9773d5fe986f89a4486e1e491b86b85b3b8e2b30260b233fc5652bb5b53b90fda25d1862c51a6eba56df9405a925e150a2af9a855eb77b5fa1e6623300eb16cc174e24fd66ed7308ace581a2582899cd6da7d39b52291f8ed0a3dda490320ef47d384faaadd62049f95e75c039809e75035defe8a09bddf6efb518cda9b9842af0df6100ab85b35a6f90c6a106c0ee9383b22773d1b74e935c5ce115e94118514a7fbd93e218bacf64a2e59a520d5c8ba95b75ca44666d16770d632c12b24c9435a02fa57ea07402de6c702d8a2670b10ebac9d68c7d94e6353fe725acbc001887fc32d22d9aa2edd3929680f912d80297041431be067c74491eb831ac4ebe6b06d7652066815fa549fe3090263566bb05f15c995395d539f5f24ce021e4d2c1dbc98043d0520464ef71aa1af43476269af7af19464c637bb421ef8be7e36c2f9cbab6bd2ac98bb3ab650708f4665f669586ac7c0291364d2088625adf0851a212679a07b1e7faf8f3aaa611f413fb9c6b4d32ca9c9e6e2930e6de1025855122e300b939e6050a7ecc80810542bb18e6d187079df968274fba8098be3441147b6fa6fd0234f603b1cc56d41f823f0fe91204e5b9cc23f17cffe3dfd7ac4de7a9495fb6a02c477f557f076971ed2487600b1f5a33d0e7cf38fc79a65c4290fee7e4456baf7dcfa7c7d003161bbf518c8db453e930dbd64685acb5573abe6fab8d8c7a5c42b3a596b7b46d243ebd2b9cb982e918caa6bd86752377bef785027e75510dbd7dbcb304831f7febca81aaf9bc4052ea83f6af872dc2023fbc92992361bbddb37164f27fdae34a4e43f6996fd4136c076e2ca07bcf6c120704ddfc41e7cbac7b7a5ceb3b9e7f656e127814a47b64c6be664d0dca92834fef9035881e7b20ff73d8abd3ccd017b531f99ba86c3be00b8ae009ba06d4de4b5d1e82e4a07de073a9ef25f4bee462f1a89b379e68cdcb6b658f7c86e8fee7859f17d4860419ff862abb070f716cf10ce0980e1cf160d9ea2f3c1a1e20013f754e13f79c3167b31998cbb392dfc2627a03c677a4a42ed48434fdf53f5e9dc59031be637ff1b9e447aeb45c83a64cc1c861ca84e5362667abddc58a0710c4702dc487a429cf80309ee399ea1cc2983976918dcd254f3fdaab71d921c0e0e0dd466501df26ce5fd2da0f0679db172119d3fe250df2e05e7f81f1e2a4a5cf2717972c930710476309390ba4a72301e34594a9a4e296989af4c525ed2b2956bd2b0fad981ccc84ca99dfd038df7900c98297798cf9f6a376f36495043d138fd553e86137827c926b6079ea035e7699693e0e3a1a670f549185d8d33ccb891697379f994ee1c50f37582b2ccc708eaa0fadd3ba17cac1ae3d2ed46e9e64358dd59e702e19f84c35ef301097b8863a2a9cc8bd990f98fe0c024dec5041f0a5211960e0dc624a3a339b0f966af522713bdf90107ebf89f4f2168c876cf55335870a7d86e65d98a2e5bfa1cca0c6fdaf32cb8d50c8ae2e39603f1a5ea4ec653be3edc30e7959d865c5f8e93725c852fb343198d7619633ed0928e922c5f6c1eeaddeccdcfd75048dc03316e5787fd7c6758be8074df2845ecde87f615ec2b548a93e0fc3607612aff76c4714fbb080a6c65b5d27ff4d047e33ac81e419bdb37a5652ecad88d5690b2e2c45d47bcace8a69f893ba9e652a61b3b5a73067ddee7ba22e76d6be0cf96f6f9cdf449a1832b9096bc80047945a318a6e79c6fa33a3e3e6c81d71258b6bf1dd5fa8e1fb8edc5fa0817f8539114e568ce7b4f4449f5b3210e804822ade0e16c5b6cf0b201c7211b88f09672bfc26698165a1cb634b9662fb4a510ef64385ff30293dd93c6acfc7bac310f3bd0d71998691b2f18fa2dcb34e50dac2f5eb3c314bdb7f62d382de660621b8d1e22d02ddc4be9d5a869da37f2ecda4f9b4fbe338d767a014e768f97061a2be877f2a0eac7d7f3e8006fc67d4067e9b55bdf25fc2eb2ae6549b2d8e3030e8d7d4e8fffe5047886ec018476f262f3c2b60042c8f299dffdd54f1d0ebc17f0efe32ce7934ffc57bcb02f0cc99ad63fa1d43ae001c8ddc4a3e33d2d8aa7a4beb5a2d17ff3bc6d763043f50a43dcf5b991d144a49376b204066d89ec2c176e455103e5eeeb913fe177487addc147fde91f63a14a23b30156207908da1e98fedef323e33d0a90698883f8180357b480e728785c53ffe30ce335391d711acde6c69efd1da473fd62ecfafd6b857f3ab1d33d612d76412196d829be4883e06ee3a1bb2fd034f63d5d6f0b4d38de26ca3dfecd475ad63b167d3ce502a14d04249be4c6e4d30d76e142a2a1791d06eed68e27bd548449f3684e75046313f7b275700105316041b8d4ff8a4402fbfdb228e03db2fc6c69c3b084ddaf7e2f2cbdfee260a3279f2909c1820b20e116e3646c03edc59daf276931ef3761fd2adefb9758a755124b09e2c7e7b25673d010e771d624989852ff23c6d9fb61a752114bf8d44b026545437ade46f87e2f54f05976a5360e4377494014cde35fb9f49525b7a1adc4dcd82a25d844ff007177b3392d6a801d17295ff8fde011f0c62e8f7a1484c14a1b2695c89ec237cb97d24c14d078d787e0517fd785805b3fc88e44f5be56635b1241c886031bfbb4649226704b33db289efebbdb884147ae983bea44db721c3a7b533563a56ac8dcbefc3e9f7ea7e5074b701a6f1e2e28c3855b603046e3d82eacc58761ba3717d35229ee06a874ff56eda1afc18445299f96b130ba7ce01b4ef55e573fd1bd4d9a9315a67eb3c9b36e367d7c08a251f6f2ed9a36dd78f9e8880dbd19da60061a2f1de25cd2239b10de82be2f090c164ae585e61c4e2b9906939a65a5403a9aecf1d00fdd24415790d851107309766a477ac64568e68228531533ac5e4d1344d789764a4ddb61053aa303ab4c73189680fdaba355ceacd7f24c0da1e34791a64ef8e47007c693640057c10d79ad6ca28a7b8a0a53a6afe455d8057285b3ff78c38c06a1a07e926baba927f13725c39359ca67f22807743081de97b867f9c37dc77cde8e04464070b00bf63a6c6faa3c5af75f9517e9b6074779ab0b8d245b2337dfccbb076500091e87543917f9381bd2e09ab7edb34642d95835fd8dcfdd75077ce1586888b203cc20730c2a30c7e8c16c1b1e9eecd621f7c97de9d6329bad16001ca6d404d4191f743f3f44bc7bb6b1e019496f87d3935d8a3da38b85b41c2b336908f7697394f52b790bf3219e18e6c79cecf1e8dde93e73487753ec9530aa691ad67c6a916783490c9084bf4df789477bf3491df69fe89fd98692039ee35976fabcca126bc86abbf3fbb91062deced8b560abd0de233546e54f5771ee1568f335a5185f5588e6443813a985265e1f08dcbbfde490c5630f243fe05fc833ce577d37dfb748383afeb3ad53e6a224bb7e5ae5291eb014a2606a8ff5750a7c704925672f012bb027e42c7f1295097a3253df3e90217560cc62d04dc41401e8503d7c2b4f49d202c4062100b2086b3aff23dcc16fb81e213e6255a4b57366cd9b053e2a7fe203904b4f81b0bfa92d2b14576932c1b2defb6bb4cf94438c18157029b50c820e4d2f5d91482b375e1646b88cc7c2930664e338f25e832a6fee260666a39ac0902062325522fc09169752a46984b13a5bc3bc42e2bebc74605314f3d09d0455c2c8536400f216edc5390d10e983d01b677521f5cd124b3ecc53b4bf3e8611582fb1de8115ce9954140c2382fc03cc2685ec86d12b7c28aaab5c77b3a09f7a20571989bee34cc8247da2b14c0e0f48964595d8765237c40e50996dcf52834f5d250518b84f92475fe0e528897bb7b7a31d49e875fa7771567b84d1e3cddc1857ebbf4b95be0006988d721a5a258c32888a52d0c157bf9df9f39c8bad1e76015b85995c82324652bc1a91e09d18b9d7c346a9d63720aba563b0a469bfa39de5829f94a481df13de00d3be8f22d23117238c041164354511102683ea2449632337affe38c80523919171589c43547d12cbc438509dd2e8f36bf20112305301f29ce47fc5190faf10a9f7c8e164288d1685cca2d7bd94458a90d945a254ced0ec601daa5ff9feaaf3b73a8ac53ae7534c62ef1881860710104336461b0a4a11b326e6a22a1f868754c6d222079b60e8a1b4e93e77169983e73f0dfe5c483e847130828c21387a5204f07f14aa80d4c4e08e680693d658152e71a07abd1d6f4c032f9eade85c03ea8a83ae3902df1065744a41b767f2fc902355a24762da6a623a21ab741582cb4e8811a949c535b8a9e97de440e3a801b4ddcf5990622e86d688bcda7654a5ab3ffe34e8a49e40697a5f1ea0c7a6bd87cc4aac1cb52a1a7bf647d0f523aaa19b98f6731b9d1a01ebe411eac7aa29ab3235523cdf2f4473bc88055ef188a7882414328ab8b201a6f78c56b5abec00ab97092e05e50307b2b45cf4be48aecad2fabb38e229fed9244b35790cdb84eb7db5601c299ea89e6d9a3c353bd2059ae2b46b3d548b50f3425462caed7122da376fdfeca08cb69512397778b5a87bbd225b52c93c463599d6f752982992eca67b5abc7b79638c13cab24b054d7e453b1d86cb655839829d47fa54f7e06b7b283fcda6abc5027298b59991916ad149f29923bd2afde4c973a0afedb48166d51b29bed72512d7f7063b02d5ada7c6713069b55d7166ced693566a8c50fde8960c13eca0beda998a6b735840be7a4b0803e3594fa5c44a2d8b6c585eb5844919ff5c264665c413cdb65ca7b5a28403ebb623233d8a0c6ad72e124325c309fdd529d1c69283e8eb9e213182bacef5e591903382b17c75c992a4c0190088af287c87932e5d0b8c990a16cc9ae81d5a2a8ce2f6d44067b1739de651b036430e88d4a7cd8225804dc4aadb1bee8c36a7e740701ee32ebb8b4af44fab7494344b51673b6480b72577cd87fb9d20f55511de64effb66b21206018f96098a33b2439263b411458a7d6e54ef5167cd9606ee331cc200bbec7f8112afd6799dd1835c33c7e6565870e92af98718a9c19c35d0992f1d274cff80648b1b6d65f3b72b83101097de2c6f91716400a0c7289d78ce94a66c0eca085c04c9a170e46aac6477a48092f6943f36c6e97f2fe8b6900dcc9e18f325a19dae04d0aee75382aff251c9567621a023eebf803cfd5762134732f10ab5db1e7ebb079668edcb62578f42f63efaae8d1125f28f6ed4919034904f08d0080e8d998bb0759a6b9ba07f1cd2dedafe481cf052ea574b7701fde67a7728d90990c2b5d3e0318ee50177dfd0cfb6cfd91d374b4e75dcbbebfb92b2c70f4ce1bab5053db286b7ee3c9fa8ce2d4317f921f8d4ff0c41bbf664797ac247d9658d37e0901302c1ff31c55e4e15c28bfe64e718c9a5cbf2f78c8be9d30cbd18bc19080fb15c0e0919582b8327f6b258ab3ecb80ca29e043ec53c06422ba3752a363b38adbd29fae1ea3f9ce9251803fba76556065f45d3d239d6c5c6dec333f0eddea711da9e71fb8e891962d9aff22ebe3ca2a19401807ccf0e637d92254b7c128fe1fe17d11ba801fc4c7ca808c1189d355fbfc3f5534d93cac964a01ddf2d1ff7acd07f33d40350be7c644086919cf797aab1f0fdecdd0da9165be634615309ddb1257a576e5b97bcfe5ff4bf8aa206536dae95e33adf3f824438350ff12188d21f64b685ea8f4d94e664f6c90aa8f649153b16419d525d00257cb136ed9273f467f37b4e60213a3e0a347e503367f8bc1598ef7a911656dbd185636023cd391dee6b14c5a8d820b6103c38d32bbab38129adc9481a291d37ed97cc81cade7aa8e009606422361ba4c76f7f65dbdee7d2ecd1e64ca25a08ca47acc0202ad1a8af41b330d4da0da0305188415dbbf6701083908967fe3bf3eeb3a70dd5d637d705893a282cdd5a6a38a9bc95f809216d4ad844bf9d92a1dc4d35e3aa7f931365272d1f415dd65360823b8da1072633a9bfd6d0a005b5d1f765e74449213cb27e418abefdd3a4d15f988294265a599b32d589a02c4f1a05eaa850289944ea974a0d2d53311cd229e27fc42ae53fcd22facaa513c4eb74e897ba5fc2de32151b2c6451d52919f53f390bfd4bd328fec2a65196b69ba89b1c96b7b70adc4ea20a1761a5a3dc52179ed8d156b5d30f04efaae4e97bcd7bd7656fabf085533e02a42f7aaa7d04d53f0902785d05945625f0af32b84007632b84b429614e29a4500ba52a8687a8a16a72f8891eae2c88c115915e49cc4c13092e8aaa54f144591459173f268c33943168a4918a36662f8ea4a8a344f278a03eca2f903f28e44a1219a246122692f15492e6322942278f29949a2ae57ba5729856064d2c69a865ae5c12925eca08e6a514538c643e493327443330aa49816c26d14d6209a78cca797802a3ed279e6d8b0c950d5bbc3846432e71402e5e9414046a57291bb8f92c172af76f8217d8fac31ad22b3ab6d626dfc24eb283b7914edce079b96229f36471f48d0b3d99926a1a74a65e241c43ee030ee4193f6c85435df4c1532bc4038bfc98530fffcdb968478d09449f39de8fdf89b547c5fe23694ff6191d6bd8859d3043030ec0a3345c803c801d98ebcb95e91b7abb935b841ae14e5e2b6f51cb1658fa9866e99ead14912a7bd760856e87a1cd7ad48cfcf1fb16c5d8ca4ad2dc43a451034f574fc8826b3450756be50a753058f3ac96faf5d1ed565ded45e1e43c3e36d8cfe3bf58d00db2ba4d43939fedb8ed29bb538e75149f5dddfaf711c7372db7ef1d99035a16b429eeb0e3257c805c59364d73549d4f78b2abd90bbfc9716598dcaeb64b96ae244dcc6e4d63182bd024c7cd30298349e8b25d7557a3f128fdb5809246998eea3211f888f2a7fcfeb9d64cce079246b28a642536b5586bdc93538e84c3cc1fd0eeec75a12f4b4fd9ee3c0f8fcdf965f5c59b9393e7ba580358d186ecd9611ae02cccc580c1b0fcd0b330d4c1377d76f72f9ef768dfb441954868dba59f93f0c1b0540a8b57ecf68f3bd3f5b6c02bd372647be040ccf6bbd080a52a36305f8e0794b435d9532e5aef2121403bc90883e147a59f8f348a16c7c4f68d23ad3d03fa48e5141949a02bce8f1e116cc6f6b3864d2209fd8c302a4bd510bf197172333e9109ebbbf9a5f13d0633f11f00a164395b03f50fa11ed0a5f47a80cfc39da82d484bded8aa330eb30ef7d92163990030d15cbf6ff62cdf8f56c92cdb8993291a78f34b95ba55ac734e9e0548421db5b20a5f87bb77ae9bb36ac0a13bef3e8fa8911a7bd4625ec551d4ef6524a0b7c65030b42e3df472612f6a00c5c1dd9f3017048036ef3e9a740230941ecb0283fa4df3da59635ac19cb0542f9f1be4d9431cc686b5370d58ca7b0196d7a6f66c12fa71cc3172efc48b5f3644beb226527cdc2eedc9001129b894871ca20734980feedd35b718db4dfbe8ba42f309365afd37301dbb75b5e92666678d181051906ce93fcc4224ea6554d1a4c123faae8d83b35985c27ed54a688c070946088802b9221db3fc75ce2b13959e6910dc345b0a1cecab152bd39f6ae7ee19cd43d7861978d95cb3a494d9499548e3432d8a6ef3a8f3496c608668fd3e7507cc91594379ee3d2034f64537374c2e97f5a779581f2251346d7239ded19e9bf018ea4312c55e24e46c10f14b1d8e4609241a5fdc1da5e1205c0a4f8f2fc43c630216e3dea0885b12bd742fd669e733e14a869360654bd74411da81697ee0560bcdebf06befd8b62db33f02dbd22af7a42b0be029fe0fe18de44454ff3e846cacadcbfbeb2d61f76c32a515a4c68fc53a8684327e29409e7fcda3842154bc6e78b3c4c67c37fe614abf77e34e9b6af75c3f7ece73a1ba9c4307067a4fd29142512a5aed258f00151430f38f205acd0ea5ba4ba40d5c7066a396020c34610c5c0fe184cf912dfe275405393648a682ec833cb7692a51206b198c02bc9ff7abe7dcc5433b75395162ffde830ad787d114506dc1dc99dd3f6289680a06ef187c8f6e68b58b91b953a140f39279414274ab7dec09ea053b1f81579e7ee4528a1d0b1725d1c1f870775190a6e298881e4f381f552ec0a321e9635b4afae37bfb1c336c38014922a458faf1c4e4cfdd49b72587e4baf857b87676fa99632c9f6cd4e1db2d070513322944239704f6de9b6b6d99946de4af94361389ad44b9906262b9a0c23fe5b18c4bfe9ce8aa64a5f43f79488b67b166c8d45d3d8f03a68f183790b9c83f00df841ee147c7d9af20590e8e77ff513ce0d62188daf8c133c145a4885929f511b65e7278fc65814d38524a55d6f3f462f0605fcbd7a03e8bcd7e7dc41760e09f79801071622dafbd9184cf8bb4da42487b7818c787b270f6fd63af367814b49bef9051bb243a27aacad0cb33bbfa605f7cf52e82b274ec09d167645752996b1bd01729d00c9295a22a7a9e4806ef78db6d61306103da3cbc7d726d0ea0c2742c96a3508b31af540449865609f5b019db360ea1934e3979563a517cf17f848cea42d069cd0dbd54ea199ff9d21e8e7270c3833e1c0557a2db32beddff1bd72f1adbfde474b47ba7cca0931451b5a33ea46b7f8ab9b0ca216f4a44d4c85d913ab19522bb971e5eca813806b847e6b122d1b2e4f5768c19b02bffcd20bca4ea2966322007f7901c1686d0ae72e1b92f8fccc97667dc06659ba40e3f3517a5f71209ca25482624c78d73e399aeba71930fd66680e139a9d81a310586842641673ce17b9428e7f3a149f4b56403fb41775cb8097cb28e4a0a1ecbbf31c80a6c323e624bf9fc2f47480cae63a312cc7b0929168000d2d947230d96d1e045dc1569895642c1f74b15c391b307f668a222be216a29adbefa9322e04389a44afafde9752841306f6a77593fd35289156f2819725a2ec7001e5f49156705dbb3ee7cca998e499d1c8f98cd2ea14304ae7a0f3f87651e1bb6221cd5b7e3c336608100c5ce964a14526963392fe57dd026e7be30a0e05cd4e3b749c7c8cd5844508996ed7127a3c73f2176e84fd235bac00ba30dc50154e990e7433ca990bf662452e0495f6a59d4d13f20ff32ecbae6b0660b52f20bacd3cba03a043ba8df3cccfb3799662b8ad321a4261812b562a0470df0095f51da31153318131876b104349cb1f16bec1562bd5bb0757433cbd199791e9d03af61c2972d62db14a2bc5764d61336ba1b6a2f5014f7d5aaf0084191a7258418538c91b89bd0d7bb11ae69bfbd5fa552206e84863307b8e6c825560eb59815727626f89f44f0b9360ac11a25e9130b76aacb1b14c19d18e11b4f4a294f745b7e2515c688e6153ca0cc007a2c164a8b2f748099343e670fae20d775328d891193c00e3c0ceab56358e78eac81028ab0afc9634fc798835b8762ef56b3397889a170232630a4dc97e8acb4db1d79074de7757905dd8e0b027f35087508620805ebc818a067d9b9b2486c936c8dcaaa93cd71dcc04e0c5a071421900326cd0aa86cb01144b4636068f251978ea9226cb7b23c45613a42c9bf8703818d017347e33df3dabecdf8513aa5a9375af35369ec5a206ef211e67cdc70223c6cd16aae60ee04ac08220fa078fb4acee105adb4d5f927648f65ec70c53c146e0550c4177eda36807753113e6491fb5d884e5ac013a813802fea73e5ca25e2bc52ffb9c49dd74608c5e8d244593514a17efffd059204e4840e3351f2cbe7eb598e847a21841b9368a887a68fd3f09405f5310161e0d70b3ae8d73b0aef67bec751dd32ab6aa24b1b1b2b3f72f47c52cb349396a58397ab3beb8ea821644b404c09bfd4c4f21b14de8ef715f320f27d3f299e303520ec32416144653e4ed4c1e7a42fc27a0db29f9d73fdb6e1247e02bbaffd2cd65f1f6bf0bab9cee101b19cc6f027bc49dcf489fb03cd9c73a6ebb62037eced9ff21bdad1f078f4b9dce35f45df677572d6bb5146ecdb86ed871730dfb934d381262a923a97284b6759317318987f96eadd88636bfa4f898e55834e0dbb90dbefe5fac5211c799ff601ad9019bc4c6fa55b55d06672d61f8cd51c95e9dd5155f6fbf59d5cbfa2d828094ff4f191a58e8c4ce7dc79aaafa9b1c0d38177719caae5d0abc3f43eb5cfbfee2bc30fdc9c91a8faa6bb3a73cd5de473959e739ac1d7619f5aaacf7ffa591473f9a33519b1e730c9cb625c010c241b8ec50597661997da3cec949ecc6bfbcd51d2ca65cdf2ba7f7f3b107e842efc87e1573675a98290f4cd8a9859167c6c1b78764ff6c4691b24b63e5d895f5a5b1a28d5bbc92a8a2b1f880e38886215dd3094894b751920bbc4a94734887b4b8ccc5d0cdaf455e6b9175e027c3eb104859d4b7a1cc85fd1540e9b1bee3f14fba129fe9de2f516572efb34d5bfdc18717fda1b49e9fdd04ed49b89d851877603f5d39e1d23aa4d0a3af0892b5f203d136977da0880bce32652d6a5c4540ca247d77e0d1d74f69a170e0a9d35f06f0d63cfa72abbc8c861cf719ea50702f718936bdd8a3049f59bf575e149abb6befca4ae0cde761d7365ab23b79fa33a25463edfef1e99523ca5873b39c1c424e5a7806252243dcb4629294ba03e4b14e3ac74cc5548a43d321bd0ed161a0a5bd7f3bf1a5fe49ce3373874c98ba0723db452c4e2399e6c47364e58b86867d867e1e3482432245c0d45fb4597edfa0582d53e367455146d77432dc5473f4a8f48aa03523a5bbbc72731f112916109f7b1c241a97c3de26390fbb96f2b5b8a5c017e5130e2888c3479995ff2c803674d2fc7c973d80b70abee22c6f91d839397a54d0a9a6c013396cf6f173e288fcc75bfeed9b7184fa4aff38583641c710916d82fd057b5268defa7bf4eddd76c6633260ca3d8a9b5a6b5094f6c95479fb5e434545c1e016dec582577e5e7f457593fdb0f757c8a9ed3ad6fbb7c73b316e7fec50c74976cfe6cf394ecd3d88913195762aba93a2bcbd94ee136f68cca36e5e02207031f11bc71a8ecd1129a2bf17a05792f78408d5ffbabe523919895ac3c504e2f77e2f0f7bd74b7fddc72ef3eba3f5cf568ee64cb7ee602d7c7c513719f71d68b48af875fd8bc44e53f6b412ec77be3ee6a5886f9e7a7361769a5349c21bba4c69ce1a4527857ae85293c4af13ff83731507197100af3dd9db9f2b8cfe7b0db8201404cb58524b112aeea6f01bf82919c1c097a007fd4893605e27e065ffa392738f0a5da8f1db57535874ed5306651784034780c00de7538cd3f4edf7fff32713926f0158c08a205f9aacd1854fed6bacdcc78ada3f967780db20b3f26e94e1151a833486b18a58c363a2742809f6ab887f06c0115b34c701f2e1263a1cfd6ca0bfaef25ee58f9c67765c53961ea312d2625c943a48831d726d5db06c4efa0894f90f57f1aab0644d8ced06377698505f153b8bf06224f59ae5a9dfe6351a301cf71b1be4f124752f6b8b2790ca144000bfd8e8d9ee84eeaa67b6a3d2010c2423af45bd46ca098077dd1d43d297ab97246fa5675f84458c9fc47c162c09b2777b8ddd8f673c6b25877a8fb3ceda26f763431a8d6e90b7c1cf7e2e507ba4e84c1616bc0948e6d386e46cfbb5e6cbcaf71c9892129d40db243d62fee42e217fcfb5762c47718ff2b5cf8ca327474d10cc4e9b45b76dfe9c7ad209cf67319162fe40e69bcc0a5b953d4fd23abd43c427a84ec7c87972813536aea1a30c846c8471a35fa5b833f1f9619d8df453a1636f76363c3d23ed925a1a690ab328fb869d0ecef22e421a3275f304f01c3ccb2cf36532301d602138c1e648ecd36e5ef0c93bdadb92e3ee52d23b8fa43d29936353acb60d29224f1df189be72a570aeeede0be083c920a919e910b84afea7af9be65e4e565df02c8ab13c7ee612991ae50e2faa394ee28ab2c1b090e339c1b65582c7d35580013bfe6c653cd8c39a86650d2f2b554cb0a283ab7dc7018e08ad101d57e71d6e190e390ecd71a341e323aaedb5b6c74e37a77f799957b084c099fbdb4bd6a1dd58c4cfab4b4c8a7b627c6eef12928f2ee0002c1652c8a4090afa4e0d04c38681928d25b3241f8f00b33cce553dd725f81d70d48e0e6ad9af6d217ac3d808aed666161d075efcf0e868774bc2f99ef3ed675d549d3748c67b6b52eb14c5c3da4ad7342a53c5ab02a72021da195aa7d38ba43f9ef1b9c1f18ee722d9faa487916724a39376be501228586575d757ef3f56bfbc7b467b5360e28ae247f6104213a38f9a7dbf88ee34e7de9861e42446cf3f20d165e4569ba8043c960b86ba96422f700432d14af3e08d41c778a75ef5b4cac95494eda0dea75fbdcb65ee0481bf406eaf85f7b867da377758aae8044209a49aa7cab8786f2150e871fbcb5852ec32b3819cab779927739caf5668243e9799f079dd4350dacedb261c173060bc8cf0bb4dc125b1a89718919f611405d78028f809cdac8653499f88dc0c5954e060c838632e209e6e734d7ec382a1a036f74e6f88980c3001c79912ecbe1cc49cb412c1decb02aca2b1f0d8ba3e131a2e8300aacb695d14fde5906f80a640cc6346041d4f037af7f7eaa5e9338ecda5f288d93221f443cdda83eecb295197aa21d5556379f7593ce6fd0036daa3ca2b8a92dbac78e7c9ad29149fc168bdd988cd3cadbee4826c265cc5c97577490e7874172c2366be660f90338e5dce549fc006f8cf352ec1653649a100450d89ea7cbd6cc5a907e2efd74109c7b16ccca70eb659fe069b185caadbd70a0c23f30196db298f612362f1959840bf9990627e50883edcf9a03a5da430cd7e935ffd0f224d379927a19a528c1e56261502ce523b4301e505b8bde4c61a34d682d667e165fd7c6b68a448a5a73934d6f8322e960626f2abbbba98a31fd449eb95d20c7f8beb69f4387bcc98da5e6fa5f6577c1b065931f0320bfda67eab306db883a73202f6819f0fbe3bd1e32a7569de10a75f12f286148033a35c590df2cc6d80acf8cf277ad85e00e28c3e6ff8e0647e02d416a4ceff083d0ef48fd6ad11f767734823fec016bdfe6c101a818f8d801d182d4920fad9d146c76749eceb332e7e44a50d38195e3bbc1038f60d968a426a6e5b1081dcffc00077b580b66e3d5189fc27e718b58889f33ed38dd0ecd13d1cd074a2ba264b16127131779fff15a016f9989c872bd5bd737b31f0c45cb0708532cce1ec1e12b61df6eadd4404fa15e417f852428bf4e95187729e3483cc68506a23d488b20fe226bf3dc0065fbd212ed8b8c539a01d8c83d327f9833f46a087a6c265281b294590589b6e574c82b66e657fcfdb482ed867d020ac7af0b724d93e64e917c2db8a1d8525d73f29a543d822e8fb40bee55f1826a897bf0fd87d3acb480a3463f6fa40eade7feecb41f3de0f30c1bef7f5d89c194497a8762a056cd2f84035be275fe7c980067340edd848b1480911ca790588223207428d943499378758719f9916784f551e108eed6e32752588ec4d66a0fc0315fcb8d9f40783a73b9a0b9417906870316ff65d7f282028c22a7eba149ec32cbe8a76e1f52eb7838ea4c9a7364b9028f065a691fe322b290c0553c1cd3831ae5b1d162583c00bf70bf75a638b56be22a6222a87931104ac7ed7bf99780c8541f38b5531486b4804620ac76219a24a2f59c8b91ea413d46dfdd2d36b3f93bfe308c94d9cf9a4438e2225d9b68fa9085b4a8173d45bad656050ad657dd0da262c247fb61aa2be1c413caa10ae7a2d9db50450d6807e900dc7b5d61eef912c7a25dfa5d3ae02dc6413e1d9da68f0e044cbf45cab1b3db87a52bb20d4b0ab8005e58edd1aed2fa9153f14c1ef0feae3d781ec3c2563b9f2e1e32025b5dc9d10459f1dbf7811f8b9f6793f9bc7001fca3c91239b623910c16b4bcaa61ded4fb37119c150ffba42b4c5b39e8312b6886cd1842b5a2b7fb5cddfaac07a13e834e6222640ae26929e8352884916c32f8b120e844b09e231fb63c5125a89bc01913ea491b952efcdde8b8811b8c1f939ac7e9fc36bbdd539d9e4214e1f19f5f629dba646db90734c14b59ff037f79a2f243915e22c827f4cc91461d1569f7dcf8f8289f4c2c6e19a6a0e3d4850da2721acec6a5d05149b2aba8a4d56adc6cf5c2c5a9963fa43748bf7bdbdfbd100387631bc69c1f6d9df8bf7f96f145133b1988a420e848635a23dfe31d444179b3054f7a458dc44c7844455557f7ecc4e3616f16c78fbcf4b2f7557dc3016dafe0a957348a7d00e99956d7485a8f13a6cae7a4f0a1aa01d215d661baa30f9b2eda2d39031bf102a74619ada0551652c4b4c91cd89343e359da2a6da5a317ae94e08cfa3fb2533a9681388d46518581043caa6fbb2d191d23e4447aaba44263a9d362b3a0708cd3dbb5d14de54be71a0377857084a0051ebd178573b9c77869cf55f4c8cb157af504a8a47b67d9766d3b35735eb16276c4aa613d1c68b59020547c1e430d58b0dbfdde834d9ddc1e64b6887b36b1075beb8bcbffaa7f536afcc2f1346102f8e805d04f5c5dcab254dd90f0c6c294fe749ba63440f20f89296bdce5008381c6333f0d13439259940daffb85af0a9edf800f2ea44c1c51d5c08026e66bda5a194f7e41c281fc47122872645b6fc06339e6cda2c6c56189510088da94ebd802c0e815246a0c933f7fb921879ffd986b78412d96938dd733c2e6a9b3035ec5ac1a34326bf3c09e36fe893b23de38effe0f77a3c873dbe873191413ea87e0d085f3e723c57c726ebd05cfe79685f39dd177d5a14dfb9ae4b9e6e3bdd6af195980ca8b1584201f60e6d702ff1de070a7751fca6064c9fcf5a8c40ab269127afcc54b8062f250b6fb0018f3a93cb0321e16322af37d50c5c262cc4b8315ee65ebdc2a7edc819b865ef7c1c1dcfd9b00da2de6e83e59b04a8d99f17e782cc75efdd7b2e06f91d1e0ab88a92897f63641c014cd5ec0684e3b23c364cee75993a8e4a7e981cbebf46d70480fb6776f1889309f001b57813f938ad91ee661e85be5b2503fbc3c1bc067a6b1c1f45841ecdc1df583845d8f363d5c2c1d90ed52cd9335253cd5de56341b5a3f08ee94c8d7257753ffedb71d5e57f67a4b3a81d63c10628dcd2c31d9261bd88bec7a1e2bf52ad1b167ce73c59b3f6ac251241d1f501443b8fcd6e9d0198928594942f04860fe6c2dc56e4df69ad8d9e106f27f07e848b225c3afbf1f1d6d0a020ba18abefacd63130e38aa4027d6867a66ed704deec680654c7a229759d137bb63d1268523160adfd2f12303bf428fa592ec9a75771c875c8000586c5b8163a168a72b8499117f8f2a0b7bf08da809321fe980979080c0b685b8619428d0ab3ce6488b2296db278efb714fa58978566d76d170b389e50953bb2ede70982c6254f5842f8a82563b83e5afb362e1b37ae53c408e4c309ac05a121423c1cd45a575e454295e4bc7f73b7d40277ab66363cc8d3d584f0cece1726d9a3c1c2b0abe7f299c6ee3b43cf69afb413c61695c7c61f0ddd73dc7f5702f425989b812c467c8083890d245fe7aa4a6d51267fb6b5662f070a62e843d2bd953d5f4540c36dd301a9c68b68b70dce6745a59eac3eee60b8c395c8b4c610a1a9046c6044078931436925622bba7c8f114b6f4f302859d768e2c73bc503a21fb53c732bfc834d65c9e149a9338c14f502499b83ea82722f3ffa9ab0a351e4a046849bce4d0e4feb85f4acbdbc614f3e13211207403e49569525380b60819f7dbf3d4e5dd001189ff8f793fac60eda888bbb8fb2af372ad84098ae6f50f1737bf322dcd71619d5f7aebc5fbfa2771a006c45b4e53a8c342edce5d0c5cc5724eb7137796807f5373fc61f8d24e8abcc7c6e62a1bec248b8e11921bb09f934b17f6482b699742532f26facd775811b1acd0d965d2c1840be8f0ad889db4f2843c88b70d2916cbe5c9020a9388c490bf80a5639225d3da42419351d9fd57ecfa3ece3027aca2e8bc3810b27ffa3a4478920c291dc6c295161540ea24fb1093ecbd97edea63744bc83da76626d8b1c03666079f5b03f6733df2229739fb76f63dd85360ead47f54021e9794e3c75c0d53ba5c964342499ea620aaa9cacaaf9799eca42ea385133e325690ece7881a08e6a73b8fc0e7190568f2fac98d6ed373e3f4e4f784d149e1b68fe89492f148199ed69d1a79be96a3140a26b7f361f283c4a8b341dee05d497c126fac83873bd45ef780580d7415c4ce103116b04c32ccdde010f4abab014a43386241d5a96e280bc111c2a6ae05d8068202bf5b988a5313a5aff24b8e061ad14d9771c1fbf4ff1a6513a147fd7e73497151a41a70f4c9066977754ee35da4ae06acad69b9117ed969a513ba7c6dc232cecbe3ca6d3b13b1cefc58c29c73c8b5546dc08a8846ef2f76ee2ced3a9f2c2c6f890645d7bfe33498ac1dff53ad8e0073e60180418ea6f73ea3f7584ff4f096571d8386f92ffa825092cbdd5d298b444e46c4c8e51e644140ff59a4458c7c5c09ec12764e6f21531cbcd16239a22abacc7a3211086ba41504c34ab2fbb409f3851240d77a81e15bc93cebd74ecbe4e02fe02f7465385d8b99b6d7bcbcc32990df545075d7e97251603f60156a3aa12837d83d6a802d5afef482fde171de583a5d9b6ab7d5ad5900ddd60a7872f01809bdd0f1af2021a8de2e3e5b1066ac805df4dbfb5193bd9978a6dfc7bc7d9af3899214c66e76972b81b0fdcbc0491a424ecf9d2d1cbec8735bec2fff80f21a82f988fb84bcd067019bb3006e2cd3d5879a581847af746455569b1d9f1a888ecd49d489432a3a051cd974cacf936fe5cb907a33300861e2200501d6943f5893cdf1fe473bb067f00f8747718334352037454423c84058177b2737971625051e27ba0d57acec8e33b7b2c0ba146ff85039da983347571d30f91b9f176e3c6c1cb4e5a0e4cb9c6c898a11dc400f82d5e4967650d033efd44bd24276836c3f5fe22ec638ae0c5630866259a2933df887cba47558258fca6b2918eaabb94ac6e9dc7fc6da5843d95135f5c3ba59d80a4212b75e1f9e64b907d93c6b8bb50b85d4f24891400615d6069e700268759989c7a55cbb770e68fdf54272d27fe58aa8fb167b096522dcafa00bd3a89568edeaf3d4877d276e159cbf81754c4e35b80b06c8a23e993b26eced1d0d4d47bbfd8d3909fd1311ea48cd72cb340b31ff49635a842e80339a6b0e582520c7eb26355a040e2a623838b1100dbf682b6fa778f84685f75270e7979a243ef011890df77df8e176e442642a20767884b355bdf1e6fd915498eab7761063fd9582892c321cc2d4441a16344ec8e6b1aa5888a301683f2f9007b02fe43df2a8663b5058b0403d9a7ec14d17a134f38893127426b8daaf0d70fe332bf263a28716efbb0be69f5098d7080976f097aa4737f59643cd8c160467830da5bd185a3950c9574fca98aaa765adaa0cfc18d95cc7f61575fd41080d75eaec4b030448b1af2f2221c45727a14af5af54497b1e07a2a9bbfc56393bc0da22ff93a41f1180a783f5e5f1f5880a0c52f73ff59825b16d0906c26ebec0e338f8b2310fb76320c45eaac7e6ec823b056074468d8de0de546c1f37c24acb30d34065315dbd4a5d6f110669dd9637f4b9e85950342895a18bf80fd38774400a168cd37bcf868596dbf82ff4a889aba279444bf98f3e9120b22f2cf8b0deb95189aed713bbce401f431f188268b6e4a2744302ca4e5a55b7b7f2805fce11383be20afac1fe53e424ee9ca0303352f0c4981d1c53d871d23b4c4454386577b6670ed2ef6217fa4cdc7cd631cd4e29f0953eae4526c3e672c4c3bdb6492dfffdb6c32cafb15045f19e10d1e1cba15358d97be367ae3ea49948fbd7f7a3f7542bc04d15f40cd3f07fb6a34b98389661098de076a995aaa79d43d5f7987b262d602196b61f19f641b3288ed49a56dafd6e2facfd534b9bc66e66714a56d2fcb282c9b59b47460b6b3556688c42113f2b1ca7249b0904dbc41ebf8040cfd5b581b4035f101732cb637c054f17e33fd61cdc6a0a1ab110494c499e268b85978ea6a8ad3247771d792a69af794249c3577360f50ab5c7602200325526951969bd10bd1798477ce64da818ae16777dbdadfe55bda01bb49a4e5f77795067ca5879dd4c6223aec263b86f51b7ccfa7aaccbecaf3d9cf160729e83fc397788bc61007479fca177d6a773df95aad34f2834dbf22824a68a09dd262a99b9abe7eed66df0cc125f5d49467fb7f5f779d5cd8c6894bc6c46e7bda4e2f41ef145375b5b98f18de1a0ffcf7a6f1c5ec8f8a911d409b4f9e70c3542a67ea4c3f1c2b5a18ca8183180dbc341539edd043207a126579d5c9cc74d010f1058a5ede316ae7d6054fe31412ba61413f05a94a888b4cd240886d1ae9860ce42f6a10a7610af4cdc6d6d5fb15a7554f801cdcf20ef7151aa83a9d959a276c3aa0f3a3082184c48174cf4efcbea781991b7a5cd1c0ef5309d54833a9d82e3fda649b2bfb77483ae7c7d41d95f0659e2a150dd90906192d86ce4be677f0c1f6fa12e402265e3280d68fb931d6b0f7442c40cbb6941ce4c27daa8e3df2e4745f91bad70ca158307d13939a5509d87af4a131b41fd43b955fc37c50134805ed1ff19a91385f795bb620cc29c43196a3ac799b43f6315393a6e7a2c406822d72faaeff6ee4f717edc420000bc2d7145be745c8b7e7d8f72af476573614a710c8b4614e44a093c063b3bde697be3c8e5f40695906312dc921ac4ee7d5585fd4636ac178909c3120b268d5534d8eed0cbb5844c03e5947f51628a45ee6f59e80f840cf1a56042cec1d498a918ed34fca138c73d94ed6b0aff5ab450f1ddb78ddfc578bc87337530f7af959e0056cb6ca4895c059e798c87cde3906997e405d821082316fa3006f6ccd4496f7f6cce07d5d7cdf9fd2bc0e622576ec763a044bc2b4dbaf8a3d1637315858b53489c1655ca2d6f6339a897f1f3e5558242933b85f9186a39d5d84a9085f49f3d25fe0320d01c160211fb1aaf914f9911175f7b89f2d7b062c387a13a6612da24cbc2a3cf79acfd3f18128067d0ab6e8fb306bf3064d625c968396791120a3fdbd28c5700689a3c5305064557a9ba5812aa20141267043f824c8d06b2ca1a49bc0cdcc0cea2fb2d5093ada0261e29fa4c81fbb8f98e8e76c621a9a4c992ba11b9a482976f5b40487c55e71679c644b190b4c84c83af29d812df3cede2901e6b04986cb5fec1fee8d9b1968de88f9102db0286b0c957b0f3f13ce288de49b277d812ca114f346f3127c27b023e0b1f9a2e54414eaf1d8a78449106bf40e2099573b11f5639ebc3ebde19b421c7466e71f600e83f83af018910e308263650e1dc6c6710f06c42a2cfa60e9ed828c28772765a111fcf77bfbd1d227b384006ddd6e10420ae232ab4cc9d00c7b1974dea27c3e809370806467b710377cea4746222e25bbc6a09cb3d1228211860e1b79202dcecb895b847b53e3f7d4566c7543d844d7194f7e32ac39543e05106ba97cb81a47018081b87dafd84e4e257c5d77815048a1d7d2bd2ef8028619192d948d5c0c3c5244a73706a2c759280922fed9b005b2c47019dc1c08caf2684c8588a6258bcc0ac6009a18eedcef51c292d576fa84ef6f6e6ac8864bdcb80798c6bc1e74c169473fe9eb9a0784d209d8f6ceb365811f347269c61097b87e081c4f1647b2c3658b6357d885fb6b597ff52832fb796e7d5e1de36a3351860d4a6d48b65dac2fc309a7dacc130bf89a681aa2079a39d18aaf174af855427383e338a59f4fcf907f04a0402205a5347dcea164982e34c9d8dca05534ab1583319ad02afe138ff461166c17424aff0a2e5b6819f136c7fac71c1b35fb5a92eb622c4891b02df7571a9a9dc40e2afde1321c0c6deaca738dae1bd3fd5096a90e12d95ed915b50f0373fc048fa8c450a61e18ac8200854bd15411c73b0469ccd1a11a846232c170836ad37851a3e8551c8d4f3baa8dd77bd0e8efeaf7b14624cab1c73c92eee6a41aede1d285e2ecd997e11efe0edcab01c88e7b9f0846808c23ce14dbc42a0c000260d20cf90bc532d58d1871ef726e2845427a08bc534353d7acf47f429f2b8440e0d36537e928dd35b8aaa8d44602cd71232e700ea09cdf1010140ca69ef99f5518740dcf6120afdf5e72d46d39409ab5510986d16a3eff94a485899ac6706ad7b415b048b6b725deb4bb005031c3329e98cab89f476c2e2c242d9da1142e3bd641d165f91ad8d12c7d4509e0a53b97220923f2f5b213ab1dee02ece19a4c919c4b6c6b62daa2cb23ea923f8efe9d213dd15ffeea45313cedde812e84746a27500222632acc91b839ff3b415fb1bbac18dfbd1d49e668d2eb697c8675fc62186868b73e9a36751d523cf5a2a217a4451ad3ea6679be552cb88f36ac6f0aa217fb4bfe250ca483302caadc9df61af51cf28643ecd6306c341061d820e2dcdc53aacc072ddd2294ee730172d839e5d9ad0028ca71cc961040f278a1e4f233611d9d4c69301b23c3784752ae760eb58a77dc3f9f75105dd1c0f3407f820ead14725fafda428124958d2cac262e18436a3b2add1ad31685567ee5cbbb455a043872207654d40270a1b20a656d075e18308e868ac0fd64684693c748254b268f7d5da94bd3baac58f54b3dcc0331a5ac6b8dbc53ee966c198e24a76b036fb55162432f1cdd30731427723d4e89905b1b0a35ed36522aedc344c558ca216860e8adef8fecf433aa62ece0ed2a47623bd1921d8aa5f8a467141514336ade6885a3ee1fabb3d2d5d98a13cec00073006f74a58a3a49d0f9251a6473051bfe1f7c2d8b8bb74ee3b07ce167220aca813033ccb19437ef4696b088078616c8f583b9fb6e34b49459259a0072c746d5924ecb76a9e611c1806b8639f250274c90e50eaa19a2225190a3f1eac7d497807464feed2a75b84fa32d952d6e0500a1cd07aacc5cfa53b553f2ed38c2a13973eb55b086b3c257bb1d89198b1de5dbebba3c677a02ca7dda39ebd7832d6fb024edf1d77d4f688211688f03165fc2f750f28413c65fe5cb5d3d0e1df01e53359d721c41544e14a551fe3bd6e1446bcf017c14f21de0e1df05c5cac36616a8557c8b8fabb1351a620100fab0fb2f992e1799e186ad532417734df06c7e3c13f35581186d55c4dc1f1e22848a293b861fe97751d7aaccf5a8b5ee1b1d4c956efd8d06e8567d89c5dd4e4308a74cb1b1aad5a8b65f3c840d79d4387006f090bb5c85eb6e6161e5e4c73c9bf8f75fa04b76ea19c254a448738be358c72e85452a0eba3787c2f5ec81908dde00e07711a4f5df964f7036aabea9a5d5de88af767ae401faece2b648d780cbc8c5747905f6540e4995697bc5a91dd4cb432569f19c9e51865a94a31dc0e4f92b00c7bd1452707594298000094f6470641ea8513c9b2ede4f9dd0ebcbd133348364f03fe55d62244ff48200ae6beccc1d029683d960e325c6b125f0a4cbe6c5a2fc5d8ef7e0f85f79257b46d869be498c28212c6d0e384e9da0c1eb610bd3374b7a822d2fb5853bbc21de951775e0cb6646b9eb6f9ed820570b4e3ed65362c9baf9cdc899182dbb5b5ddf2f1f54ac6ea967fde6e3213b708b8f5344dd755eabf0c6f125fbf1198aa94db6cbf10691b3a7b150423c3b44c6781714d1d5ec6d3dd2d197770e404fa6821188b2cf790d3086591a20ec2f6ae40d2095875b19723dfb52140a608c284e76f922d012b87471f013f682a23d6d42680ab6ce711138fb491fdba4882cdb5f2af4285185253502b26af69b96e86f56172553d7c862edb775fa442beaf1406cc5129aaf24db61aa37fd11325dce9a212848b3112a3b1d93600cadf1d065de1685a04988ec90d696628727552ea5c5046ba659040cb16749d9175fdcb248fe3eb560b25bc8096cc55601aff1d7767cdd71980f80f77a7b2036f9cf8665b47a2f190973e197c7599ca82b69daa2b0cebd80468a60203531f32d32a9b285b9386b2b9899ff971ead9586cba319717b1fe60775c7994cb10d52dbf2daa1db03d9cbade6e8240ca76cafc26e56803919335ade96a5082ac56c0a2abd1cf70da8a92916ab2a9838f17ec3088a317cbd81a57deb516fb3c1c0cb2a1be3bbf0ac60a75a7697da99461798b461d6028af95ca27a2d42fd118d5e479397e1593f38ab30eae7f4d2b5c0686b6e52ea5228a20c6059621fbcb5ebd6662b62dacc1c5d5b4e7cb3e80317d19e2f75f6d6c2636693d26b9931906e4ed023ea9841f0c3a60b0a6d0013033333333333333333333ab6a1abfb54744564a32452e6d8c1185abc42453923ba529ce4c7cf845daf01769c35fcc662d919ee102400cd90b150c666b3491021e0871518517363849b32eee796ee2c08b1a9cc6f22f3449115fa3794183b368952849b4b9d955225acc25f06206474d2a43c8d3681f3e7a2183d34961ec549d7823d789a889200421f02206e7aad3e6612a5a52d2106fc00e5ec0e0b4356f428e527f71aa3243010f84b0a0e31507a1b4cde8b778494b82be91c591a06f4880043e32825c71d224a5ead478195faf15873b314929cf5caab4d2b1e2f81deac62b4b3f0501295bc53156d4850c27bb6913a38ac38cccf053ad5944978a93c997bfd5adf86a7259648168304024470d0e5876a0e2946abfa7642fa9959244d4b69ce2a8c14bfb562ead0515253a4c71f493fd2ecd4b492a742be828c571633a51547ba438c893597e4f33059f53c7288e954bb49bb2365db213c579663b66cff48d8916117d4147288ea77a1634ea66a799141427add679f9ca64ee1309508eb2818e4f9cb24f2c3badf45fab79a2adaa0a42c54a3012e2366e64d198dbd189b3dd2561de2a8805d58ba8a9053a3871d6984da6f94dfd5106ded0b189e3e8ced0ad8baf723abb4b347192344466b80a25db2311b564c347928e4c1cd7bf3b53c59d86be44d470a8a00313c72449921283865a58371d23173a2e7136cd97337fc24b8b96748725cef5172ae893ccb4e88d889a8d0a8080d8b8a1858e4a9cf2b64ec6dbfb693751e2a44eb3d246cb3b6deb4de29826e58c897e5d49b288e408493690e990c461944a4205f3cfd00c89a8b916080703ac231227a949b76d5027bcbe17511bf186c429b4c84df5265ee955a2818e471c4f8f0afa2fd929d15b448d4b301292dcac60a0c31187bf2f3b39e38efc0d1b712c299ac949b93f080808c8480e1b68197192428e8fa5b065d1ab2c46702420ad6da460243140c7224e5256722b3158fcd3a42451c451dda2969874bf7164c4449c6aabc41893c78d976a071d8838bf9b54b18ff5d19672888392f242c9ac747257107618e270194b8935c913d133b41d4147218e4989676292f1222fae88da4848b25182771c8911e22ca64a651adf7427c806710a16842ea5f39725e95a4e1067d1a64c8cb944ff9316382a10a245a320f1d01188d37ec8144c12a2554d36dc98c404c7800e409cfb67fe456d3829762971e4d8a2e30fc74b269aca29a926f9e687a38c7c570e0f2d56f7e1a4043929c8eeb5942be7c3f14ae64eb7b1630f2729b6324c2ee3688bc90e3d9c57545773ec32fd29f008a82d3aa0230f2761f5bb8409311e0eb3f9296f31ca7d2137920141c71d0e1a374c123332c4eb49442ded3bec703c316b52aa3358509708928bc0468d7275389f795e506adb4aa5121dce27d7644aaa2455ab267338862f159f57fa649a12391c4fbc4cd94288fc8b8b889a094810f2c8b30849361081472e011a33729460023890169e6e5000a45c00fad01187535693b2f72d7eff9788a899d5a0030e870f6dd17e2c55bb6544140424b12274bce1183559ebcef8dcc69605f21c23c56ed010818d1a7b9e6ed848bcc30d07a1a74a66ec37d1d67b162139be86c84848b98e369cee04b358df4da631dec186a378b696858ab163e51a4e625232497ed152b25d2a821a6fe346bb6144871a4e637a83a8641627ae2ca28623c7888d1a7888373ad27010da9fd5e3e2d61632a1030d077da7c47819de15468ac3739400033368cc90c002be02c9198e99945c6174091b9e273683c68c19584860c648020ed3263acc70b41275d49458b3a034653857981284dd9ff81963c870ded1bfd9abbdacd2348693244951998426f9737d311cf6548432e5fe362637b608c9813ac70d1b3368cc7015d4c800b2801eea08c349507bf5314918cbf78aa86d8137e800c3c147688bbb6ea95f7fa404688b90911a0bb295e8f8c2d96212936991f34c5a23021b37d2928d0adcc0e2060e1c88022020366e68a1c58d0e19e9f0c279847e6db9987032425d3845afac1517f35c386cbe4dd25c088d7576c7164e195ead3548bd2052a385b3cb9552f22554ea4dc9c239eb34868d3deb14190bc713257dafd2a6a4d55f415382a6d3f4d2808098223aac70126a5285ae3476212c0ce8a8c229cbeb684b666549dc3aa870b62acd55259ce7858c88dadae898c2299718c35f37455a3691c269de42c624f3529512c70b4147148e36a2ba2a7e3b4428b1d0018563d26edf9753c5843889a865c7130e42891353265d32fd9bda4287134e9ae48f4bf944b365aca309e7eedc205312635f31165103010101010149098180180620111d4c387c9f986e34863e135ac261c489b39d7aaaebf71a8c820e259ce44b3f91c1b2891f2f0987fdadca1546a8996591705e93b2c9b793d42513b45103e5e840c711cef91733e512ac7e531a0d1d46385c74fd983f2fcd5d01a1a308e73c31378911b9f7a1abc00c2c243023c78d1b18c80e221c4597bcb989ca971c0ee1b4e94dc91fa1f269b184703a4986f6be332997a406e1bcb1191b7b5fb632d70184f3a5bd4cba2c8844e8f8c131c9fe8a31cea25acad8b8115266f674f8e05c17bc522ebf0ead931e9ced6b764c26419a383d0f4ed2447e9a96c5ba0fede0fca22ec874aae94453e0d0a183933093927cc2fae5ec7370902585929a34fedac975e0e03416662e9dcc74dce07c326a10adf1f32315289ea0c306a72a259778eed9b97beaa8c141dd6bc8baa6d5999e06073532be491a53c89e7cc70c8e7f627ccffeca73b364704ca16664d388f13669470cce3a5a7499b6b44cd93b60704a53f2492749f21a7bc5e9e46f51445d719e115aff2d4d4aae5d2b0e6a2a8845bbd2547792ac38eb6f36531f5a92c622e06215c72f2d79720875131daae2602a3bd6465f12e42ca9389ee456cace4c66fe101527e9b372d5735b629d051a0971b3324282ae91a32c052e4e712ccb4cca52e83cedb3290e1a64f0f5d3d5d4574b71122efcd62a0899f32c521c67b4250d61a5bdc4378a93564a39b522cd54d44571ec53c25a52b94d29af43719817a554ccbb73cd04c5592ff98d6ccc0d9fab083e7150bae354bf9da0521aebbae0c21387d79372d94cfcd01b75e214f4cd4a94cab21faf0b4e9c5f5634e8535517d6e46213c711b6652276f28de645d4fe4688c8087240a289e3fbc92409e2dab72fcdc429c46f54760d97e49163e220eeed7531378961c64b9ca48b316a92df997194963866d6d2a3ea23fce2384ab0c5d955e270394c85f35313252a2e28714a32d67f55e998249cc4b9b22925b79aa323e51bc99c085c48e2a4aa4a6a13e533d7c573118993560c6a4bea86b06c042e20710a939b4fb8f0a969541781193466d856c1c5234edf6562da5eaeb9a28e389f361393a73b76c281c343b6405aa88b461ccdc4c5e9bd6513f616d1b32e1871122a467c968957bd5a5a59c4d95426319e262d13de89a8790e1c37922b451107dd8ad7d4922419ed2f0c2e1271ca96a926c6b4f8f89968e0460e1b0fa08007422ce00211c7a4d132af2873bdd2b37071885352536d26ac04fd176388a3582a95bcc289db5ab935b828c4498a307da6c2055d13218e5a25833699a74e261d059ea3045a8488e4a87102633788f3997bd556bba8724b444d057150d2fcc95d056b934b11b5828138097772a2c474ff975844cd05208e1d6a739a8ac92bde1df9c3f92a9624c7c64a7da62fe6042efc704ae9336f0ebfa04f8e036de138b658d3a23be0651570d1879324bbdb296d5eb7c9e2820fa7103234c786c9d5a113514b1a13a031830337dec603f670fe4b164adf4e52a54911352d4250e0c58a1e8eb184f14b5994e8d868115ce4e1943d3e2d98586781fa4616862b708187935b694a6a418bbc688d9011f7bfc351ac2f4668cb8b41dc24706187d3883021bb663137001775385db57fad49b941efc6e1bf7438cfebbb98e0266e1af14fd0052ee670165de29820b233699ada851cce3222e324d50a198465e40a2ee270b476930415df3a7a747038a7a6ddaf14c49a7825eae20de70c97cf4c3a19a52daf00379cf532e39f4a3749b4442289c80872006a1b37682489821b27c002044464048998369cae844ddae2e574f5323103b860c3e9d4f7492af86fccea226a77b586b356d6f5afbeacae4b0d07b1492affef6c7b51c2349c464d5d361d4a8ac9d8a1e15c92b86023532c9394a488e2bec0c5194e49526d0b3a6e2a292d262ecc704ac24e895767b857d019c145194e5146b52965597de393e124a537415bde18446590095c8ce1dca2444db443759b24226a213792b1e1420c27f1c4e83dfb1159d1ba08c3c92da8c7ff7c885591175c80e12ce7bba74caed8324227b8f8c2498cd1a29f12cc3face485d3bb9baca557e5f761178ee322738b95a01a4ec985f3bcec462faf68fad52d9c729460999733e82c152d9cfdaea489fd19fe3b15419f9689ed8a93da4b176fee458ca515a724e3f4c8a4c64c880b0424c434e1c18a83721d95bdf49bd0513d5671d8b3d323c35d0c42095571124a56486d6b8f71640b2d7088a0950a78a4e27861d9b2749e146f44651ef040c5f9cc8232e97ab62fe514a7d3d2aea4b4881373f430c5f182b6ddd924a6d251271662c62ee1518a9305ebb7a05fab72ad07298e75bb5a52b2d1ccadf118c5e95ded84d913e3218a83e95845ef4ba24b5285e268165bda4f0a5293a01451d3000888718407280e972dceda5af213773f719ef1b70cbfa33b5f0f4f1c936852c80d354ae59276e230f2f4c97c0e0001611a3466241b4e82460af01a38b000010101390f4e1c46a49a36dda4b2c9aeae4ec46313e74df917f4bdaee48b3d3471ca7dba31fe82e5f13113a78a1a43c69ccfc9c53c3071924de9117264b6d6fd66d098e1038f4b1cd49d689525f94b38358d1987e9016743f0b0c4315c1431934f9b7ccaabc429994a2b72c9eef2c8831227b9f7be6257ef3189e3e9baebb4a0bc5a5611b51c23288b901c35b2d862a43c247112469a64722dc3b7684a4063c60c0b60c002129841c302129831c3022539247844e2ec795aa54edae09dbf889a086cd41871678007244e2553b29421c4892c298f479c426c08e95de1cc4cccc311e74b91db159f5fddf810b4112dba036aefd188a38e7cb86fcc4b9b37234e493a5b4d624528bb7d11c7b8f771ad9b1571d60a15dc432fe610fa441caf34558a322b228e2637a3f4bc7488d3e8aa0c26e3c6932e6588ac3390635853a769423bf349529047218ead31c8be94efc5434688639dec35a6a74da8d406714c29b5e55c2e2f5dd1f610c4417e74655c562ba67a930f7804e2246eb6399997c4125e01e294a167a3088b299a9b7f38ac8ef80ef3d1c30fc7f2ccafcdaf2d4af4e8c359fdf5459870af1a631e7c3829d5ab376f3e053c10e21e7b38a5133bd94325e92e9c20eae19c596d36c85fdca09220e6e168ba7253e3fce55bc5c331e5fd51a1ad153399dce17c9e4967123e5acf7a3b9ccc2b6b984c21fee292247538ef95e58a86662df1eee870503d152c7508ad1b4e10e7706cedbfd1d34b5ebec9e1783f5fe9d2ac94ca0c621c8e6752f3c59dccd491c1e124aa46d54dcb74af718f379cdc2ab97bbba8cbeaa11bcee27d3e76628511226ac3a9f2e93dcb1a76418ed870ae0ce6735f4a6b38ed8c5237a9645c91aa1a0eca4c0cb30e5521b3958683fc080d7ff964461bd170dea441976e32214adbbb331cec7ef42fbcc9275b6b86738d09e23586d18da995e1f01b84093d6ef3173d32a8a1c4bc6272abc718ceadaec1f485fa8bb1cd8187184e6321f4c6976138e54d27a355f5463379309cba4d2a154e2bdd64fbc249aa132b44c678277e79e11c16e62f9f8951b3fe5d385fa5d44c31fd574c31170e27f8c6d9f426c9d77f0b07959f757a71599450f1d0c2a94cf68c792b5488c51e593825bdd87762525bd6241e58385e0a95375dd03fd2f21e5738b8c9d7743529b849620f2b9c4d924276f35e3a39496ff0a8c27954868ca6f392664d7b50e1a48489999b5cd453725338986cf924b9945e0a878db1de10be89c249d070a57992f08d690f289cabc4da67c693abede2f184d32653fd917bf170c231b76c97c956f726f64d3889778fcd244eb38bc5830907199a4dd6d9588829dac16309a7fb17f17dd192699087120ea67409ef0d4af68d3c09070d6a9394829e9da04a9070fcd7607b95498f231cd48dcc74cd242669818387114e2daa33986077f93bde15e16ce1bd92ba2c9632d69d133c88703eb9b6acfecc338fec8670ae132709625f9bce7242389c5de83dd1435c38fb2e0887936f540e4b3196c9f200c249cbbcf26e379c124c8f1f1c4cb788f9c9964ead2d041e3e386912372132dfc512d51e9c3289d97479598c49361e1c33d5de4f9811b7d8a2153c76700e712f72192c58890da2870ece2675ef66460d12c1230727fd35d14653fed4d9207ae0e0ec6da192502a49274ac9e306a738b22f8d306969734f21c90632379218f0b0c129eae8492127931e5379d4e060aa65524cfb9bea1e343868499fe954a808dba4885af198c139d4c32a65d497596cc4430647cbbe924e0a7372c80c16c12306279574f742882e61b52578c0e0b8297f9b0c9331e9682f5e714af221dd4d4513a22c49e28a83ec8a056dea4fdc986ac5495b55a87cc99455095971d6501b6bf3a4ab8bf32a4e3135f69d7c7739a3a78ab3bf97084d42d544ff527192eb5a67a75228ed3f2ace37fb97ab2479529de4298e71639f29459ac8209be274b95acec2f5a538f87909b1af30f59991e2a0276ab4e0ee280eae156337c38593a4e54471ec73cdf1ebe2553587e2a0a6e473cb5d1b2da4a038f79a6082ca275c4555e0f0e21387ef12cd84679a17edee5e78e2e0a226a992a4cb74e294548fca5192b4e94f1239710c1b7dbc940669c9fca58007425cf0621347d13197629acf4d41a589530a1bca7e834ad598c9c431ef9ac5af8e32b97b4c1c2b754d8ec612e456ecc5258edb1b2b29395a9409fb0b4b1c47262db1da66f482b012c751492a9d1647a70802929845bca0c439f54b5f360d6e72749338d89e9874a6552d45f34212674ba17de369b7781a338717913826a9f29bda0d53317e0189d36c52aa73922066ec2285178f388b4c796bfaf20993ef0b479cf2f24cfc5692dc42f6a211e7f88b6994c688539292a08449626788b52ce2e8a5c5d7675cf47e7ba18863fc89729574938863d0aba4a25993596e1071da3bad6cd167115e1ce214dedafe44dbae5116439c94fe2fa94d105fda094212db620b8483032f0a71aece20b3578a51512f429cf54fa9ed33a9b54a1ec439bc7f3709afd1a276419c3747bfa437d9e22d1588e35adca668cd57b763c81b5e00e2949b4b12d524e93f9cc4d8f6cc69273f9cb4cb6f8590a7cba4ac0f871761c233475bc4457c38ed66330d9d3e62d9dec331e68f0915b33e177c3d1cef52bbdba8601ece9b1d1b3457dad00de1e198f46dc9969420e64647c38b3b1cac3d65638a675953ee851d4ea3a4ffc99982129312abc371ad4ec54c526636494c8793d279a26df9a93fcbcde1248e900b22a39ee86bc9e198dd5e93984f84a5c53542f4b27811877326bb3749b6941bbbf2020e2755932a59e89e0b6279c341575a859c54f2c20da7f0a1c76c4d890ab7bf68c379d64c949c2b9bbec7176c3885babb202a7cb1869360ea176715d3a98abe50437268ac245f5763c4a4e178ba43b926d5f49bc268388f4cd1e1ae3fca1452e30c27b94fda26c1ceb62fc90ce7cd6f172caafda20c27d1f95adb342645860c190e7a7fad6153c812372a8a1763389d2ca1c4f47955beff85180e3286d0eb332553ac0a0d1c3590057c64e454f1220cc7b0f94ed4944b1026a96038e8cac95842888c31e72f9c4c9c52174e2ca3f0c20bc7b2d257962ab388a65d386979cb5fc209e2c259df2c63bcd25a6513b391175b386653929a60a675d43c2d9c5470cdfb4d514cc6f94516ce619fd9e4e24e185362e16c71ac3ee49bb4ecf60a2775a124dda5e765ff0b2b1cb6ecd4c2a560361605ccc0420209500a782044e445154ef9e4b6786197bdc471a8778d2c32d035b2184940428583daa57a99eac93ffe8b291c544d9049bfdfafc9165a34e2a8c003520ae75bafafebdc2bb14ea2708ad39ae4b24927d5e443404084f0020a873139a637865793f26f2ef0e2092769334549532944b6c809a7984e5242fe8413adac098715ad14fb3e79cf9209c72f91c9748f8c2749ea174b3808cbd2a1d7a43a21b7e485124e3b5a8248117acfdc0fb181da092f92707e773335fad5c48725b811b24978818483c595c78ededd243e928587e0b8a1e5c5118e9915764c584d93c7712344ad181c9ea34642e385118e7d99e42a5e899cee8bb09abc20c2412f75349f5c23b6c4396ca0461b30b705d202435e0ce1989b16e626ebba7a498819b281a30223098042bc10c269d34c8ab72ab27bb7201c749b4c19197d54cc8fa4c023608070b2dc54992aae173f389c9bfa931b4c46e66ce4b8f0c207071574a9b52b25595c5744ad78e1450f4ea92e636b92d0b754e71849b00b2f7870b87c9edd5dfe5ff9bed8c1799309b9d27bf2ee9988a8ddc85158bcd0c1a95b354979bf84d73211f0220727a975e93257959cb75ee0e0a095928c9654b052da3fc046094432d0352a072f6e701613d39990eee12eb2b7512301c6cccc2cfe563251a1f286dd89b36b2c0d4a0caa3693cf89a349db79d79a266f2d13623380b189d358f64e8d7a6ba9945580a189938c35f3b6a56a36279938dc660d9b92b6fd265701100318983867df65ccbef5250ed2b26fd3bb59688a25cebe4932ab9bbb0c318d4a9c72747e695162e5939450e260a19254c1aae35cbb49b02633b229752a8983b4935c3b84a9a04784118983a9ec7c8c3441e2b03944c8b71ab7138d19603ce220d2ce4ed413541825c81127157ee156eefb2ec368c441995ffef42e61a6368c38653f493c13f4476ba42020c9224e724ada8712de4fea36024311479353fd5e479e88c3c865b659af0ba3160c449c82d5a953dd3b5f671fe29ce5262821defa4b8c226a35466a181bc9a2468e12140086214e292a1bd452ef45a485b8449fbcde5012e2143474d6d86b79891b40c018c429979a5e865222040c411c764fcc7d5599620c3ba4c008c471c46dc91772b6322e188038c639cb98719a5ba9ca00c61fce5623f3c539d95452d80fa75367a62e09e2b75268fa701247a6d6246b3e214c091f4e6f9b4b12cb7b3973df801934663080c68c05cca0b18753de91a244f90c1f3a82a18783fa6ddffb5989f4330d30f2703c95c62c6d107516e478389728db9433b88abee60e878d9b9fe9942cba6187618753b509422625fc92ea7f068dcb038c3a9c4fb46b0af667ba2e498763daeb8b6d294749959bc3d92433156ab252107f228753eba9a6b1ccc6e194c468dcfc172edb9ceae070d61c7b23cc432f3420203980f186a35da9585a4cf525992232821c3083c60c0accc04202202022e986835ad23d9af6a15a646d38696e0da1eaddeb6ae300061b4e42e6d59d8da7316f726b38ec2955abefaa7519cda04163061612d0000808266380a18663d68c8fda9a143f3427809186a35fd298f274ac010c349c724d454d739226e9ba1630ce7054b54bcf9cb1a2c9d0994163060e4fc88b19cef66652e77e58bc744d190e3f1b84b6f7d020fa2a0c6090e17426a56a92f48bd8288901c6188e61b3525bcf0479133c6b030c319cc26bff68c83cf22cdd364c0d30c2703e792c84264bb9e5570a72d428768001869318a55a82e7092ffa041262233546dc868b00e100e30b87939a5ee2eb1a6239120f30bc70d0fe4cd125c55ad4ce42cc981f6074e11844cc5899a0452c6d40404040ec46ca0c01830bc7ca57b198f7fe90a12d606ce1209324c5b2545c0acf68e1a435458e8a88f413d1e0106064e134fba62c6fd60b8bbb0a010616ce39bab4faa5778553ee59fc4dd1b5c2495bd692f2ca86b074a9c2e1b36492b3aef2769f4680418583a6b18af14ff41a534ee198d456f48c1e236b7339020c299cf352578941c44f8e1885936caa4a058d278b7a1d0a67911151cdd7b436499e70beeb36317ecb68c56c0205184e38aa4511dd4b29cf5f4d389750ab6e4a93250a3098d0b78ec58f09309670521572ddd374abd243634d80a18453950c966413da6bc329092731493245cb7bfa5ad60318483887d234b3f5d35dafeb0807d165a533a5b52433698463beac2f9a79a2e5138b70eccae4a1c45758d312e1aca57ffe94f8a12a6b4c42041843387cc9d95e8d9937c95a3c802184931ad73649f80dde9d29028c209cfa37a5be24fd4634a4051840385c900b336be94bd6f507273f0fd3cc97732df55c80e18353364de9d582b957c97b01460f4ef2a6bc56b99a47890c95008307c72db92944e46c6a6b07c73afdcaf533a5a9c49325c0d0c1419e14ca2c496f165fca1b6fa3c61d1560e4e070693e356d0c7a2fe60c0930707034490e256e75e95b966e7010db73278ba8cd1b64120d306c70f65eed0df5559f553a038c1a1cd6fb7f4b4dce50974b20c0a0c149b0249ede767506475dab71b55426c9570701860c4e792c63f210af545386980b60c4e0bcb984abd0b716646d2a0b306070f8b7d210616e955bbee218a4ef9bd6c5654915579cba47fe46fac9dbbead38a8ae14d3c26e4cee222b0e4a995232a52406d1d4db2a8ea6fb2666f454b124dfc2872ace956ef7f9b77e154a5271128b2327c8cc702a48aff0818a53988da72491263a1b44e30b1fa738bbed9ea469a66469dc1407954be6ae4befd3da4b71b293562cdcc8ac9d901487ed1a25d37a53fde533c3c7288e494a59e3afd7d5565a1407eb0d377e275f5a3e14279bff90662b325616288eb6265e9292d45be28987d81a3e3e71ca2647d659ce096ea6278ee9b4ccec63aed2cc9d389850f99149888c3f160808274ea9de84d266a62aade9386ef4c7264e7929377f9a2e8b7a061612980102a28983bef92539a29289b3a9af4e79b9b7f20f1327315c95789717bcc478068d190f3038878f4b9c2c63374c344144f8b0c4d1840dabaf259b52f25d89936d34497989277949529212c7b694b6a2f94c3ea54de2d8736695dc2cfc7669923897c86a2a338d259e94267c44e2e4a13395246f897e7241e29c1a6646491a3ee23897d3b5cde424b35188691d3e1c714a929856bf152e33798d38ab88d80d35fbaf5dca22032020216668f0c18853080f69f19220c39abb88d328319a9adfd7ef162960068d190998610109ccc8127c28e23ca756c62cec64e82d1147d16ca76241b4a79d883825999214632a25a368778883e9d125c6c5dfb4d810474de12ecd49e9429cbe4e4f7a886c163f11e2248bfa2dc132ebe4ab38828f419c64d060d962456f9283801c123e0471f84d67e1eaca6ba34920ce779b41fa657f4b620b88d3550ade7f2246da5fc8f0f18763c69f95a59261c9f4190001010109b194c3871f8e6eb9c9af5f9329c9c3420252f8e8c3f1c48eba569b8b354a4ac087c3788ede9b8e9217fcb29103c3c71e4e17e629a357ce4328f570de39339d49164fbf983c9c94bcb2986ead3342838763fe4bf2c8653ae9c265420c93f07187932055932ccd1a6452e9910f3b1cff52e65279529c4d973a9c7545dbda7c263994183a9c947892a4f3843641e58b161a3ee6705226bb6fd07ba76564391cb48eba57ecf5d0a1bf389c4a8bcdc5942a8766ee6fdcc06101341dc2071c4e1fa2b5f9de4cc6d7df7010cd962a8956a1d3a44c0d3edc702e7ddabda277f6d18693f40c26fc5d529992cf86c37fdbdbc971620a155ec331989a923abe4953c371f4f5627d89d1d33521566938885a65ddf90a6d7ea221f6820f349c946ef9cc5ef147c6dbf8e0e30ca79425083b3929733ff830c3f9448febf451e2b7e8ca7054d354269b9651d7350808143ec870166923e564b9a079d445f818c349beeca37d835c454d6a88a5e0430c27994a99f81b42f49b6c09c3417358d2906fa2a3651d7c80e1b0b16e1e5baa2f8ffb85f35dca11f7b2621a745e3889dd78a6eef28dff8658760d35c247174e42e48da86c3df96309b1e15984e4683b077c70e1a0b4491b17637a0819db40d12d9cc3f7926c2bf1cb1294e51c0002a221c5b4703449bcd4a77f6366d4b370342996be1432569a287d60e124e858537ec2096575b9c2b96b936ba99d5a2a6d5248f06185a3463d65256a49d229c9037c54e194c7d372c67419767321968e63061f54389794ca84ac6c563b95b78d1b1458c2c7144eff39ba7159a6e59e144e62512fd9bf8611b94688999e8f281c43a624fc6cec5753b2c6830f289c36a9333d9aceea7c7ec2514c9689bb92ec4a962ef870c2492cf115150d7e6be21f4d3865db2a91ed9209a7d25557cd6c19ffd512ce6de24dfec922251c4e4b0c9536b9838f241cbfd652541831275ff58184839b2cf576fbf3934a0a043e8e7092e554eef9d99896ca8711ce65fe7e964ff35184c375bb99afa92432459111e4001a33b2dc8d1360e12440592840010b48018e1b5af80440403885a4e9e18308e77151eebba1a4cb91171a15984163c6d102c78d6fc3c7100ed2e4adadd3ed87104e7665622ac5ec9235ff08c2e17d73a56eb4be5c52ef1800014920205d0304061f4038c795c894d371d15da9467cfce07862f30595bbeee29f2491f8f0c1f1a4c5ed9764e2fe941f3d38e92a9b2bd5733a540515f1c183a3e9ca65793bd4bd4909b2402608a9f11f6233b068c0165a3c20050a181941160071c2c70e4e627c4daa379f5ac96f051f3a38f6c8c6b592cbcae023072765e2db75cd28a984930f1c9c2b8c66889213370e888f1b1c73689272defff25cd006c7246490bd932a35389ffc669543a9b4f7ea070d8e264c69cb6d72ad3df4318393b696d6930f09a9010252563ddcf02183838f5413ebaf579155033950160c0001b1e13972a02c82f01183f3d76e30a54de8b313fa80c149cb7f78cd49319b6e11354f00c8c0e315e7ccd91ae31bdd8cbce9cd356723ce334ac8bc39212b0911230e9a596f37c996e43731101053467811c7bcbc17ead76a7e7610900ac850c4c9ad33adf777e346544646426ee428d79e6ed0306524031b01198938956e5f1b3741834cbf889ad9b93365846520e26c3fbfbb317765d24806404070241c2ee310474d259ce9122b5d5f4ebe05ea110f7963387c044b86218e49be54f724a5f3e4b81067358d49949153d2a509218ef1fc4fcc7c4ac9e9d3208ee297b726f9a668b120cefb9f7f9d1706e2242a2a435aefd7890b20ce964b570a1f292696f41f4cb1272ca21690c08c09d02881e1c8b105c618830c3f1cc4871ce131a74605918c3e1c948fa524e5e3ab74c7878398c6f82a1af4c9a1b28753106ee2749f2cf7af530fa7b0bca6b1fab24949c6808d0ac8c8c3f1946db8adb878f7c9ccb3e035830c3c1c2be6ba2af35b8ca7dfc861e3014a010f84e090718763d021bb416957861d0eef268ea5efabb815acc3e1774f05ed1926bb48e970129a4649d28f5e1231cee178322dcfbce413f43e1972385aea9b2bb9fa4fede6d220230e87f96cb71c3b27ebbd0c389cc692b4f297f10dc7a441498275f96f6fe78653780b6a845cd5f94e807084e428c1165aec40461b4e7d92ccbbab28725321776c389abab832f2eee2978c885a48ade1585dafa9bdc49860bb886642861ace6f72c34e9e20fd3aa36390918653f5c9ca3342a4a706a1e1a42db4fb48f598355dc619ced526edb674944a4b926a84d8b8a1e901362a7014f0404800e420c30c87cb97ecc43bd1a42c2732ca7092d1547fba659bfc36194e49ed9224ecca848c9a8c311c946b3c3158d8e02baa840032c4701293605249e9c7b64c18869374a2fc887f8fb9a632c070ceeecc6ad2cae95097889a096a2413d458401632be70d813dd196fb252ce464870e3860302c007195e38870cdfaf999496b99876e134b3267be336b23423a23672638b934d90c185c3e7a74513dff4862bcf10938c2d9c6684b4ebdf1042e9c5ee6568e1342aabade8fa6d5b46168e25fed56de1dfb45f26030b27b9a4e94b16a5de576f838c2b1cefede4aa9ab04169df0a47fdcb95de4d28499ab0881a7a055ca4414615ce97a14e9cb45d9a4416512b1b810c2a9ccb64861255593fb993318583c5982461b45c2691c249b4f6935464acda84a42c6eb4086cd4d8c29d042124b8718343123721230a675f930471e41899c1000ccc60830c289cf264af53a2ea785b58c6138ed17dc5af4e2ba2664420c309e712b446ff5556674870e3868867916adc952dc868c2f132c65862d9f49b993c292890c184933ca34a5031ca4965a1828c251c4ec986cdf8b260d2af8473c6494ad44b2ae84c56414612ce792755da755ed8341151c30ad010c95183032359649180193466cca03183c68c19584860465256a420030907bdc14f941275a3792da206023292a306ca38c2b9cb4e939c7b622b3e1135c591630b194638f8cf87f8a82e59d369ea9620a3082793ee5c4d8950ef2123c2d94c53994a292cae960a053c10a20119433869d816ad273256d989885a020119423808a9fa558252b14e52cb08c239df24b1f246bfb72045813b000424a1c0456400e164c25b89b96264ac45a68c8c1801c8f8c1a94ac789716137988565f8e074ad799258ab6c5237193dd83fe334e789b68b800707211b4fd2569562bdb583e3cf5594f1d3bca1611d1ccb2e493f2767decda1c563a600e1c0818ae3b8d15ac8c8c1497bcd87feaab7522b0ece7a2ac534cc9a3062bfc1412fb6966cded8e098c29da0cefcfa5449528383bcb2e83d6a2e9420cba0c1714b54fdec85934ea949010f847c40c60c8ead7f31975f16119b89a885545595cdc04202336894f641860cce6ec265caa5444b5c2f230647ebfa50dba07a322703062741575f8a777f21478bf18ad3452f35e1f45e5cf55c716d9b24a93bfd62b4e278a24ee9db662c8b9388dadd0c2c1a50108e12a0108bc18a93a50be799afda6e6b11b513b80db3195834202dc62a0eead24acab929a60e550c551c76b57594b8e637e918a93865bc693171f52b6a490c549c648bac983abd54c90c2c1a00023242821b3744629ce224469e94cb64a6385b8830d124614e7b2ca538052d6d1a94b0d5393f294e6fc2896e324659a81e03e78318a338cc9d9d94c2e829134f44718c934ff7ae4ae7ef1b8a73678a50f2fb59e80ec500c5d99289dd3e62b75c2f9f389bead59fc99864f7ec89c38c50befea9232e8977e2a8d1ec4accec54374909278e9bbdf1643a258495691327f9a4696ba5d555137e2186268ef12dc655d634c9843213a7785212ebd8ca3e2719625788818953a9946942df05d5695fe2e8afaa6169c4c532dd12a7d2959dbd6d55e2b4ad6d319a899546bca3c4612d5cfa6e1265c82ab1f4ffe64e12c738d9aed48eac1d153f28c488c449664dce672a29a8a6ee2071deac739a84aec8eb7ef788e39d05216e77ba73c4493ab9e3224eb72c095f234e315cf80b42451b0f25461c5493fb65d5c6dced2ee224bfe92609d69b255c10157172cbb79b7ea39dbe869888b37a699cd013ee041dd6126220e264eadf97513d445ccc28c438c4517e4bc574b726c82a211a82554d52978a4a825888931eb5361ac48e2638429c0493ca44e8957c96db208ed1f7948a21323a2e9d8238b928b14d1e37e5f61926c408c4496f4a13eb4f056d1e2302e2645be1cf527a3339eb3f9c7f748d5227b64831d50fc750319a9216f564bcd687b3464d7f797345dd6cf1e114fb62dcfd4b269fda93640f277135caf23ed3c351636a290fa7cc50a7a48626956412443c1ccf33680d1a3344acbcc3c194ec57b2624f7017ed70feb73071f3dde226d43a9cedde2e479d0a5a464f87c39c50eae797de24b19910c31bc498c3497cae9fda50829ebae4703465caae1871389f76195db24fded92e8310030ea7b0a27666f4ce5598450731de7052828929ffc88e13743d420c379c52b6cb2f57e2a9254b1662b4e11c2ac3f6c5f82b3b411b3522703783186c38d7553659adddec7bdd104b8010630de76e2d4d33c94e79996a38c68dea12b5e2426759e3c606424c8b1869386b9e6b892e27f3448d86a3cbe5910d3fd2c53fc3f94daeda24fa82127da1420c339cb2a55d934aa8c625b1b1321ce4b9fa7f7889be3f22c3c1e72d9412a37a731bc3298c0adbbf92c208d9300d31c4705eaf4d9b2bb4a5e5cd0531c270ba9ca25263cf64f01f0cc7f0bea943dee9cc178ed135e7a878e1fc7b66f9d737edd63c82b2a0b14688d18593e993bfe2f7a486bdb9701236c6cd2735dbcda8b770304198bcbac992da64da32c4d0c2b9d692d41b53bcd5f19318593826d53369446cbaec86701c101084c36bc4c0c249be8ddf2689caf9f75ee15c1a43ead749b71e7a2b1c7554aee9305153291ea30aa77427fe29b9ebec664f418e1ab683185438c6e54e99d717efd2838090600469113285a39df42253caec27bd278563d674425fd07ad205a1289c6ccfc4a44abded26998318503849a2c917d4a4cc355b79c269f3456fd73426c9a0e284c35f12c34273e5f4cc36e1f839c24d05a997d562c2d93289eb16c4f72413e6428c259c45e9e768592f21a3e9410c259cd2786d961126cbeac783184938293196d83a19128eab72ea7ef7cc33fe231c4b50923e492ddb6c0e6310c308a7b7b89de6e56e629b8883184538e688129745fa8d6c4884184438cbae8e922f4f50e2343186703e0ffd27456b897a199ae068104308c79e516f39414138989cfd96fa5a77a68070cae62d626ed64e92f51f1cd336679498ec0cb30f0ea3fdaa2c553a398bc5e8c16934499f1b83921ea9a10508488fd4d022e9420c1e1cd62c9be613993d8450093176702c25e554dfe5849b500727f924f9c43caddfcf33460ece79994cffa51cb335c2c151e3d77de953fe1ac486183738bac8d1d6a0e49262e3d9821836389fedbffefa8cda932c428c1a9c94ca57d2932c67f00b0d8e5627dd9df598daf262cce0d82683ee0c9b35c514951fc490c14914bd162bb216448b1b2306e7bcbc235aba5d628c890183d365bbf79eb05f712e3ba9e669192cc66c5c717e93a6a499941a74a9b4e2ac57924adb6b65e2172b8ee9629fa60f6162ce985ac5e92ccd5c2c19454765aa405b3a4d2a4e9ba559268608d323a2e22449492ef1ab7f0ae8290e7aece4e7babf4488a638c97b9b269a05dd3b2ac5a935af6ff6aff279498a93e816c7c3ba519cca82bed8341fba440618a238dcdf9518c4a7286d9b0ac5e1ebd2eef3fce54d0b8a5338513abd927293d2fdc4292669f29ab83167578a274e82028fc4a81452c6a2501c0c0302411083000424bfaf0253120000000c120f860332a1542e90f3001480044838284a32361c2c221a188ec9229150180a8583c15018100ac431104541180d9440a63e9abcca0b01f330bdda343407612c2a34ca67d3c698ca6589624288b64e6bfe540dc138937c4498d2f2dfc1ccbd401ecff1eb31ffea839ffc2cf4a44e3e0cb71f76b83668988f0f2fc04007aaaa29ab6f81a29bf2625465e5d7cc7b82c6c5fd4d7223f3ff87a696cbba9adb245a5b8fafb0c7ab687880b902a0970140690023aab3cae83700a4c4ba556c33b569ec0d1c00693719809e0a2b2f033388875c6ad8cbbf4c27dc05ba75863e2353a1b6d2e953b5a136a0d1ad0d516b0935dc9fa825c49aafb9a8e562b74baa7c54c748143e8d00ba3e8fcb8e4a325254925075059bd90314dc75660d5616386c61c7552b72cbe0c36e2a14b3f5102a8281c41cd8809bbd773fe1443b845fbe878fdfa139c08b7b1396e72ce30162f1ab59bc36ebf30f6b0620fc673748321cabd6a75cc505e04e1188857903fc29c632e0db9cb3522216a1cc41adf8cbf1087c32b58ccf26b985714e36b6460ec7e90adfd1d4263bb1d8ce23d7e21c159bc70da5880eed5f59ac989dc31182bd97525ef034b1dfa706da468ff2fe98a76179033c82b1182c8c4e3bf39d87e5e8bfe124107c669ec57ad43603c7377e844288fb30c88141349d7c7ac913ddd718e33e3cd0fdee8186349e644c7434a18c1b66496f4bda821e4c9f20223afec4670c06956ba6e8bbe97d560d9da8ddd120c57af4b9298b869d30f85e14a507cd521a33965659b69810754c5e544a20469258613a5a9d67f89cf012d5c2f6562a189917330e9ac2aa2355d4fd82b9a7cf896d28573879d0e20d671eb92b04a7fd37d074e4e7c8a7a9fd173ec00e1eb0cde3d815392c45001a9b6b0e501b408678820e7695e56165ca89024270091c00988f152893b49cf4ba865fe99cc4e521104473faf31dde8f4d3e5d504dadc9bb70c7f77e960ac1d33e58cfb8b8fa5f57bc9e3c5aadd51d0aa09d8ea034410ec0c92992073d91375d05caddb99cb3c6dcb5687a44958817cd8500eb3c153f59b8845594d07a9fd8fff1808dd82376b435610113a271d75fd2d6b480ae6c9dc05c50b8ca1b3b746a57459a8848e3a0ba362fa9acfc88e888b48b1a985bfd9fdf42850fcfb5d261e0c76230a54934c0447b41d0d102beee85a5941c697eb0061bdea5f0ba15b062a0a84097c0ec2066fc0f82b65ab493581c4ba04899a31405275fa4898013960ac7b55d1094df7ed48b2fccc2eba2afb8472dbfcfb52345ad60c5dd464be730d8d2e22c66c4a838a1e7b6a2ccc14c997356658e12be1cb5d55f909a20e016d577f4aa1b07a2d54df8ba706ecfe013c2aee5a7607c324a09fbe00878fbd84e7bd10bc2b3ebf99c043b5d93d1e37e363bc720fffb05fb3742b2ec376d9ca345463421ebbe6f5e868fd816a5f7286374cb425d57e232ddee33852a2fbe4e69f278fa42a29b30a6ce4ffdf9d5964598169c45550539af9fa72ac2b39621a2c26aea6ac163ee05c9993da52ef56dc75c3973112e6475b2892d5101628694be17b76ba9790d1fc443d2224634a1c27e16a217dfb81cd43bea53e37926d5df1a01818603fb1084eb0514ee818dc79432b1997fc7a0476393740d1b2b5dc9cbb048e4803f33cba331e51eceea84bdef384bd49dcc0d54e86e1068c566d3c5a97b5e7274e34bd983504146858537b26dde025e00e71062fe296370bd92b4a3753894ef0efa95a2afa7e7db83db2f35d72aa7d9d44d331a99c5c689791aab619ed23e5cfd709bfb66ce81db5484a809f287e39f30166f0235f5f67ef89c9d5fada36fa22691b1f16a46c353b3501afd0b0545748c8ab39804a1ab91acb25fea414f151ca67301c2af2fc2bb70427fecb8c568a24afbf5c260434f416ad0d086b9b9022e8e77cdd83b4ac05b614fd2f5ce78b9dbd27e4c569de3a24895d1058e4039e0194b615d106a45b5418bb0cc0d49436727bc0bd7a05d2f26d6140ab8da6f11134d1300a100b8419184c7e0aee15df07cd1086cf47e5781b94ce00d1e65200e912fc84969a23739f4600cdafce0e4bac2ceb76105aa3500083082554b657abd7116acaf074646f41ae86dcc3379563453d2473dd82af353b37ecabca0485082520478ed44ffbf858fb5bf20857cc15d73088fb8be153401bf54b029e09b7b6abc2d1f7928380cbacd3c6d8cb2da025cd8bd4b9f4e7dac227b04c5044ac852862da0ce8d579fff60ffcc819adc5114c4533461fc7fc5f3764f46626b14bf84433fba298262f8458561fc8927d074d43c4799f11a03a6e001bf89658c34448636d9e91529b1cf06e21f443dba888db6f427165855faa86f849624d548faafff37f8453cbbe1ab1b62084422df7c4def4f0d097fe2cee0432142589a11034c55fe9ca26cf73a71c051cdf33885652f21a9d096ccf3d52bf56aecd9f843c8583ea8cdcc8cea03160142aaf4a36ae4a85e08958c075356f81b795ca464342817c3f80fb3947782373064a7b05a14a03808ab7d2a6243c2671c54475395f1747d738ee08dcd153e1fcec3706e291ee1dcd9a2f1d419cefb7d434224f735bffe5569c3235abe3e97ea69226b76f968985cbff0225a692ca1d00bb63632370fc01548e991e762935f4c02d005702a4a76f73d74c1157f6566f2cee01d32c51bd189a3dc560ced83c93ea0f42b92592c4f870de17be24502cdda624bac85b94c35998fa4fd704ae08d6296bf81832bf56c863128e61236884406fdbeeece937927c7a2a83fdb0810c699f80122ae64e7491255a4e997ce1bed4e23892fab79f0364cc6aace385dbddb286dcdc5537376c2a4aac0c25a7f97683a95a22f0da3606014c6998766f1cb96cac58194adda436bed5939f8cdcf125957cd880fd2867bc7731c21fe0834a4a70ebb4052e15d375c8892129bf87a74c29fd758924191c1edabe8f1a7e62aa315d4cc162f582dcf160f0c81fc32e15dd01ed5c81049a8d8a31e3839160b63244e9d2b049b05aef92f6775ea59b825346e75e1ac18c911c35e41921c6eb176e598ab022499c3244c555bf78a1de8677133ecaca5acf5590451d9549b433371cbc9f5141344ceb163d94e43f5ec6358bfbe4a12b6ac94fdd8fd862c3ef238da69bb53b4c4da719fd69d3e8b7b4095014728244cd3087387425973900c6f27586ae7890b7487270e9a7871397487ad9eb87c4f5f5f315a8e5184d21e25626851a4224d5ef2f2084f1d1003abe48c2487649d99eb259e76ac65d5cadf4d73ea34f5c11fbdf4733a0dc016097172ecacea1e731a16b0271f19d161905aac412493c488230fc1c5f9422657ca51ceef5baf71f8dd42a50e79049aa1545c43984226d111b69a56340330b07d77f766682685ca31beb81b1885d06d70b58e2fd26f5431867a30e62a04a81a046fc262f85004b51983c453035c527a0564c4b62c410b9531b2d7bdfc19e3f05c1e8878b7b50664dd92da7c18dd2d15d7a6db8008e3a06fd8c9620384da2f49ed41f758ea6589bc8a9927f92c0354d98138fd362e0d0c62af2fc697c8040310a2c18b9a2059ed1bcbcea617f56c963098b5d0bf229f7e7ff372a985faf3b6ee70178cd1806e4960d40f289850f6bfa00d79ab582a47262413ee2c141eca24641f1e9a2f668ded9967c7c9962d0f6d80f80784864997e7922b4642600d1502b227b75094abbb95ac5cd85ab85fc1950015e3081cb19a23894a4c54b204bc457a38c32677c59c17e5f4123a0cb5bd18d55951c6aaba34afd6f81e1e008da60957c172403033258e0e8143feee5b6130d730d0e7f369dbdb635e48d2abd2620d327b071176e9ebe808f6d62082bf46cd440dc2fca74c04796b0a41642a9ff2511afb199eec57d30631af4346d88e7bde561b2c8449ae849d54ea6dd28257d731a068b8e17977fba000f8dc0208c122062a16b7be5de8f5631aedccbf689bc3e8d32490ac7b90a9eb144cab10324e6eaaa2c61ff681ed42eee35595e4f58ea92415fdf30d4fbd5b430650e3d1a69ee011903da84974c8be1eb8560d5cd7447af4f4888af12198c733eca56884aa3ebac86b1ad14b08131967c8e79e1938112527af4219e9443bfb21b168c6f00110339042b21e7b834602792d18ab3bf22851a999cd413cb2710d85106e2914e521ab9ffac41412785467c6c92d2e2f5e2f06d1e161103f92a98779d048d1ea1a7af86289f08157812834fb7d8ecd7e9a8a4254007db341ca51ae17446a1413fdb0bd4837790134dd9d917831f60258cf1e758ce79d59f1ffe24111f71699479514440cf082a8819505559ed0899005e12f267c591cc330e33042a286e76b02ca11bed550d283b97f89c3291fa5ea7d79b8a0f539f7faa28111c3dbbf81b2a3124bee52dc71011c63a05bd20543001b49aa252ab3b66504a2f167b3f2092c5b942b902fff2878f3dbdea2d65963b1de357d3c9e2f6f90d0fd93ee8a11bbee35daff187a9cccd4075c0260cac1ea8b4b09aecb8d13934046f051eb4118865531addf14f8f0c7af148f34e084d2c3bd859a4e8e29a7a903f405801854f56a750dfaee570555bfca5476626295b39aa987af79f88ce90f5d3ebd8b35b255baa347c72df6658d934ff5c76cda034cafb5a92c72e3cb8c410785bebd7ea03a45230b588afaf84481ad2718cf13d4d10a415408ebea7801c3ca8940d9e8d261c8708e4890bb60c71beaf720ece41838634cf9e9a93df964379475ed4e7829bb8ee66c86467fe64670c7b4aa394980cc1a433e6ea0aa160cd2f1b459c37bc803701dbefa52f1537937167c4c28059e23169e9b5a9998ddcdd80a1d792a3cf8437dd80b21ddf0824aac28280cb056a4cb11b169918ad38a727b14387752a903b7ac1e8f023581b50f59d0db4ed6597e417c319a54eca8345a1e77de7fb9684395aa76dc5b8e4e320ffca30cd79a697318227dcd002c7477ad981d15cbe2d4247cc93f423dd5d8a8b76efe1d78303ee65660d83a40ece1c720c94eee504d0035b5c6c16b37090ee290487b34ca161b434a6ea76308c86f121657abc0c17394d18d0e9c37d075ca60e91aa37f8184a6cd83848023838b57a5440162fe8f8fec701fd0db2b264e7dbe9f5e197c2e3d2d705f04c8925b0ca020f9952fa690db79aa9bd815f8bee8b56e4891e850ac883fccd0370c25fc46a0841de67992a2a46c7c054945422d73ca806960dbcb40708d58da37321984ffec96d5594bc72274c0e8288e5c694c1e3dabc3280e149fa16d8dc99990744e5680002f26f387150d8d9fbde504b629552d112834ae9f0c881872fd89a03df03b840870648dfc70ddc82441b62db3b7dd20a1cec24bf8724db000ed55ea316882a58f079f6d7664fd7adcc28db2f5952f957d0e68b43de07353d3faf56a9799838143d2214b264fa19b65e8748fac1ef531dc7aed7c7d058e1917a6497b88a542cd12acbd3eea19c7fcc969cdfa3551c543f19ecaf653c0e5f3364545cb40ffc3496054276fadeee8baea2856b5220c676d6621c03a5ff71e53d7e538db8b4758aca4de0083d469c58bcd6127da38134401b482935604f087afcdd64141d5852dfe0aa53b9914bebb3d164dc72f836818b458f5e36706420999e7428561318d8117b5db56a5b0e915657ec9c1d03a8aeccc2830da969f2a97c10c24bcc2501822bb2409dc38d2aad08755e8d8cec625bdac13aae49794015d1d38b9400d79ae04e411505087651cd12948acd8ede567311b0e973400154f78d476266c880f816de4285944688c4c420103e7904845143705f11a6be1ffb4ff5e84c4246a6a4543d35d7a3348fa4b0c8f2ff9a3b8cae88092f3d05654611bcf06493326c3c54702cb0ad68ca892e7cccb25b70b823d5bcfe2a2019c3214011b43cb4abd9315e26df00af33994c69d5ba385647b0c7449ce12cf5a0be2fdee3b002e20f85a0165fcf5a6ee9dc097284b5f6dc252ae7b629a2f8b4c7111a96c88694402b36824e3ab59f6660467dcf71a8b10a1921cb63ac1fda7a5a447477d6ba2b5a1d7c80031f48e9d17d3b4b60685fdd650673ae5b5616f59bf3e93ae42d89821fd74a54041b2d355ea1cf294fea3ae8a84302468a8586151ccabbbe2e04bbdc775e3f762c3d0a34be65814709ea9f66c0c244afc25b4ffae14ec93c54eae8ff19ab4b5a574ae4353c692579f3abd1f50ed52806477d3639d8a66862fe0d8b897026a1099fc88463b3a2daf1394b675754015f0587b3c0078387b895f5939b0d43252f18ecf59f4a1db45b54b288e627e0c63be7781edd191454fbfcc0af2f00d0ca8969bbfa3166adb95094c31f86eb9f751a638565cb23dd1c5e306f659a53d695c9f5f498d01c5cde5b1e3a36255f3427b739921e0595365ef308c938e2012c3a10c19073c3a5c813430b5a15f9474b1973a729c206236de8dcda3ac5120980dd230867929b93d6a6f6e24e93bb76e3bc179758333d4220a12aa600c0dc61a17cf568ca0ead154a85624792137ff17ea051c0647d51f34b291c3433b3228a5511619a93695f21061935e5040aeef44be121125196e0b6cc917ad8f4336628151194b22e8b56f4e34562c60380be22aeb805c84d768f76546d32e6a42576c9c828166589104c25543821d603c907b1cc086ec21d11836c29c777e333fc848d4d7a99e8b85665614ea4aa7dc781713cca8c656b0fc1faa20e6721cdddd6335625cd6fedf9ac596ce42e8cb3b5ad54ab5729f0a2fb3f24e28856c2f7de342c59111b8605d7d1b18c2e8b2a029eafd5943672fe21c43545baa89de4936d49a613275d26c4357a651963896c6840d2bb5f0ddf3c7f7244609a17c87c1854c06e04c8c5570b36e3a6c46852c764ae2ef7a961694043e4f5547a92fa4c858208c927b1be83a9033dbb408109ea088a2dae51d18be1ac8eb1081a5f027ad5dea1d3f647b1dcd1dd98caed332aef110340d01cf3ec0708eb8a7e6127810f2a5b7f86e432b3be2f834200672a52fb2911f1e01e6bb96847f4dd29f59abe8ae1a731327814eaa2d6d9b9bb4c1f720d1863db43676c5a7943f071289b47567f25514c7176baca765f48bfebc84fe335dc1a83bfec45c0febb99c7780967e4bba1389b48bbb3d3e0c235f6e2581010acabb92a38af2e6637d8836a76020b120318d1a119922f7a650f9870611a011581aeda2e0862994aacc74adb4a2aae391d911aa6ac4749514e2674b05ac0f47811806e7171ad5852e283662e52384dd0b9c35dba924621cdbd73684c342ce987a9b41377af7530338f2d5def2d2c13630341559066c14cc699e5341251cc41f6e785a2a0e429edb8a72ddaf73784827c6db1b5f0295f28bcf2bc6973bf4e5a36b7b07733095422ae3bc3ab6cd813608937cb353c538062a2aa2a19fc2290a1d1675fc612b5ca9a7e364c5f729a13cf8ff5660c0b66715cddd3355f10422efef0b93ff886d94c3578d2be236d4ef9fbd8951ff726dd1481c2ec2b9e340aa26f017c67b1b983653c8157e3e43c1fb902b22dab1d9f2ef74a74d95f5769fd732afbe9324d7304bf8577ea51325ff105b248f49462680a16e121bfa1f11d223ca60f0b8c53512cd3ca207b6ea07df0b850b720f5a8d0712753269440fdd23e2c617bc5822f08845f861214b83acd4bbccd5a13c2df678d9484e5ef12abc0df7f7f74903730d731344301642b382798a170bfd7df8aa2b4afb984639c9bf780c33a69f3e05331cc04d52807350311db7dee182e3ad82b4fd8c20581aa90fb4231e1f4175fc4d15fc7b68c4d9226ee03c29ae1f696525c7cf86bbb216e143135d328305afed0d58dd0605b0fa89c720017094965465d2e16dc883a66ee2878f54b788219976fe50a50425088141fd415a5cf98018b673a270333153049cad1c87cab46cd41833eb8307822095a73ae50f79f0d5bdf5b00d2431236bc0c834e363a2ef00316f0a4df1d4b1630e1213fc2b356840a22c2ea701eb467eecf8c60b500912d26eb1a6342aaa3c1431f0c90cd741c29b537c71b671c3ab82d375cb57a4eab2843d26ab5439258bf8d4b561cab8836fbf45163d1decc2149ad2ac5516cfb4b1003498397c7b2eed075bdfd1cf3868d1c4e520c197ba63da6f83004427416fb5ebaa0b93469dfc0ecc760ea6928831807565b526f84c42adcdc0a0758e48208f088b8f780efd58251f50ca7e15d17c6958ccf199604078baba925e743044338dee427ea1c6314a1a962d1534bd815f31eb55987b119230ad063426f58ea7c846594073c435b7f13e0f4ba6265554ad7d716f4e94fea27f886f190e1ead51de35722f95470866d962180717cacf08995407574769b65bc7b11b9711f9a38d8602ec9f53255c06b17ca1e1b4139ad5a8864bf9364954861c319050b765c89af93ee9e9f26da55339f3b9abd51ca4a66bf7571941182a63db4caf89884e9a6b5e8838a37bbc47a1e4e6490bde21ffc058e607b108a330a87d0200621fca0c5c82878e5fcb0ae440afb8bc3e1975440f0deb1ef52a548dcb9a08ad8c1f872c3fd53c6ac636d737463014e894cde523753629b5a00b233d9b418cbcd689d197951be09c9e951af2d922c585204144e48f32617bc9c60c6e48281bfcbfd174e5e930168bf508f7774e84e925871138a8955c192f0d1d4dcc71b909a102d598d8cd2415d5c73c3cc706de2d8c31b72cf4458839391f16c626104dc14ee3de00d17ebbdab45ddb9d07ad6869dbac3bb834447cc0ca03225e51bd8c4b14a4d6e484cdc638d2a61e3b30d876dda4ae0f4188769e374e72aea06c9c0e199bb9d43d020282c50dbc3d2551e9b18e39b6ba5d743aa3e39c1d08a3f8045c5764e7c0409323cefb77aad02d40c6ce72adef3eefa2246b86177f31d2862f29c64daa02d2b2d6a5a2ee5d3e7c2b001cefa6647de502f4e088f6b86ce5aa0996ff5b08e4050ff830d257010bec67c84a59f55748c05c651878d3115f8870dbec82453b6eaf1267cd404a33e7dba65c67ddb065e58533c99e84691947f4bf9186c04219403ea175826d1751f1b7f4c290dee5146faef7b1f5137ef9b5c8e247c39baabdf1c45eb682e49d4ce5abf2caeb8b8f85ddd71d2a634a86a48e79bfc3a97eec767ab7c30fe261c52a2b7e8f34a2b15aeb3581ea3e8ca80a1db1a4fe674cfac82380f1f4ad369f1cb955c30a1aaf4fb880903fa43a161b6440211ac4687ece29608737d8d755f834c2f5feea0f0ea6cf3124f4c0777b2a1d7ce36bbcd9b511cc489febc88fcc9d1d835390b2add086d8529f896b1c92c1bf95714bf32903832974def9a3f84065ea65a824168c841a4fc5dd1c50b6292c1a24816874497308fa282e3e2986597a7dc094056314927e58261baa857b9a93648aa390ffe29192ba7a91de02ca526a381fc81153b8955ff4caa500559c90713ebd4a763c1511d00a2bf3ac90fdde9f6288957a36690db670c276116141319ab543285cc557a369c898d8ecf047a143186750d5a50393ab002d6b5249171372dfaf28a2d5329a13a68976382b9ca6347f5518f0a4115ac471d076bfb3c128d56b44d1c0cd03a0aef9443312e041ea3db9c694c2ebe2e075ccd0f0bf9bced7d1fff4949cd3abdc796b3b65ab35e1c5cc002c2ab6951a75407dabe8522acee624f70526c7b9d440739b941d830738929b8b712c89b4f0579b2336e3352f8e23ab4ab79e649053d53c11ea1320672bd56227ce80662cee6678aafdb23f1bb62e49173d658c9bd84d73835e10a6480a007845d04e6ba29853e6c0f3175ae115460b02205fa5b2a0541884ebfc7b0211aa0e3edd4598d1b5929a4a834b7b808b2632cc99b8850f9fe66f36986b419fa91401affe78a595d7319779dd494f9501ef2a0656415e8bf8f3629b577fa4787a220abc06d56099b669f22aab05684d71faa7d36d9d2a7322a5d3459d0c9dd32f974de7d45437ebdb1ae59685b612fd88777d250f40cf121820fd603e1daf7351ec25ac085399d430ae8f83f5c4acf82992ced041dd8f3575e76c97ba1318e799fb3876140c0fda4992958d5cb5d11d7591b41c8b1247f49f94747a0bc689fc5be02fea7d79303e7c84e20abc2685fb3a5693d9f4c0053df4aa2366618ccf04ba5e7640a4fe45e5c4543553db892955d65e96fd97c1893008c66ea1c817f1ba7337db7db40905662b91119fb0f00d053d333a739845f98fa852921e48c2a4141713208514589a555cba79480dc1813c4ffd74471c5ffceede0f5c89d8dcbe3be9277309cd793fd6dd882d762cfc7d6a65d92982be75bc92803efc8cc07176cc458b332ba45e03a27bc2d81ef866aa304369b98d7aab699b8e72cb6a81bce2bb3d769aa8c608ec06ca07502447301d129f6e02f40170a489bdc0d43d1f9c00324ad6d81e0c5e288835413a8e6dc4a50331020192a62287b73320642556a2956c944140f4c0169267bf5fc4936ef60736344f7291d3c706bf164f32023848afe570afa32f446f5a1cb01db486507d6ee106cd4cde36e0374d8b3247bcfec7eb08d6a54e1af3e03c2897a0066d88a6f04acb85764994ceb6577f1930e1e88f38da66bf58e233d5056a4368c18b8906611e41dea716ea5e8b73c7454bbfa2a8a6ef0816811e27088689ab10a098e9daea26b035b69171b34ccfe26f2fc9f4fba305f00b31ca2fda28ab40bcdb387a32b7a1fc8ab4703240467f33a51d5cae19553e76926cb535f6310780209dcdfe76c30ff6a1457ffb0f2b6268f78336491f101cdc9aab8f5863c00a23c017cca0b9e2a328ec9f31fad930bce91aa5fda08b35c4bdbd2554de9287520617ccd501c8dcf2d4cec8bc6c2e063adbc4ffe125b2d41d0496f17b0474d04ad760040e04cb97197f66449ebe1717eeb8c485cb381d986a717007dff857e92478026d1a8389a36f2ebf1537b55e689f5e47637265a04ee97692de89024e17ed3ced79082d338713bd74fad595306996870cd8321c95f06ee6eda1ce2039aa71cac164dbe2cb11755dc81fc1dc1cc28e8af6d29465fc3e3d21ae4a7adf7fb9a1c6605e7c7e9a4095a53a04030af2716ef4ce7cbac71b938a3b584cdf4f3e0f9967c9c07bb8147a7b8dc57c744d0d4ab79185387589b1862b9a89abe57c4deb591f630337cae9a3cd009f46a679dd6cc62704e994da150bdc496c4e1f47c0ccba13c312f2131b7a041e1832f77c65fa7d00346f0ce08e4987b0c85cd498376c32b7e23e487e00a22ec008455a59c9f95a90656fa32bb067c8c38617372fff1550fb24f3d16510dac8fb186a4a6cb0ed1626ef35a7013ffbf11b51f7333ce6606d05a00fd676257269c358414828063288289c2630aea4159043a6473b02805781b7930a9473d3730491b3a6b0b9dfa1d22ba0f28f7b7fc0efd12276ebfa40c3d41ab3be9932fb2a9cc1c7407aaed20b5b706026cedc3e68ba79a459123370ca9d9bce72e5365c07861d2d1c1599c38fdf152ea41abdaf0e7b7a8421f902a62fc65c675d46d96ff538a6aa7b7f5d3d871b6072e304ab301ad41c6d01cf087f2d3e8e693651dcb6d1695906101fe0469e356ed148315ce78cfc3f1f8662c98829c8a3c612ea02cd36c8255edf17eec88e5b5ac10d35cf502d967a730d9b12803e4ae56e6e7dcfaefebf95644d6745fc83f7b1dff4024a23ddee4c0af28db4ae2da5a24a2f42c212214b61953b536dd210e11cbef9aeeac58f3b447a6f1e79121135776b200e5e2f966bcaf68f9e2c23b8e32a7b832187b3b61c5f63fb48d5a6d4f3c9e5325ded985f489c0f606e204e86b6ed25975fc92976d3f31271dc21f3f2042e474f0023b2724f5929b2ac288b9ca09ec3376839ee4891830959d0905624ef9490aae75002260233ca2002b68d5c883074e1c77f58c308bb22124c522504bf7ee2856e8a2b2feb1721f5b8d632a65c7fd09dbe5caf4d42c1e4fa4968ff21eb3ddfd68c727b3132c3bf6aed1a1ac82c2ea729819a599f6794b8aaa291e7e25ea777ee15c9240a411dc47fda8177da5b5968328a11497cfc8f00df3b5138bbdff3e7576786069448e7d5c99700871228bae813e265080f8353047a0162614c7315b8a96c6faa233d30b056ceece4008d1b30d05aafc59ef325ba695ef166441207d2e7fdb8d05584e6339c9f1403ad66e5281eea51c49c9a9288118e9a33c71b868c131d1ee382edf1ec22d5ffde4a50f58939774a1519e47402dd3b8bcc0922e75d47d703c28d6db5881c3da5fdb7d6b672b3181b29f44ff271a65ce76b75544175e1749b4e4ba0ec33a4a7dfcac9a32abd2a082a559fb52c6ab2ae93f38067cc3b459942f48e4d88bb5c358e7b5f41c377f7126a16cc34530eb0b26708711631e1b3c50afca81c358bbadad0654a237c95380b14a1f7be42be9e8c5113f00b385ddbe253980c6cfb4b0024aca15168007d2e651e4ded54b67bc8c42e9eb1cccaafa79fbefbbebf22f8339ffe81b2f9d29212a3d33f749058c4085df803c7cff0186bc7159284a7955395f3734783c297d2ab097fc5cc78c0258902004b592da798642928488a118d698879fa1da22661e07266f35e7e6c832696ee25c348a729a8a915e013a9bc1a6fa44d81c3cfcb4f89fd565a6ccdb91033227f8f693126c01e89b0a7070e7ba5e309b333b0cfb6aec8a5bd1fe2e001e3f44af9e285848707e747845f721e02f463ce5c88416b4eeeb20ca5e1c74e565d990c94fa8afa689992bd86a5a4f710922e99ba5d7d7d29d211cd5106abf46df3cc697bf36d1a1135a8d4b53bd84b8210b785fb50f8a9d52cdf741b1464354d87f0aa704883437b63118e7e3064768e83b43d08a4df522d3f1d83d41b299be61f6912c075e74493a1e5496502f1a7efd80959447287a72daf1fbcf29d71c9040a8d3e46d3aa642f879fbaa138737567eb5a6453c70ecf8c31e74763633e1315297a4b8698000fdf7af8fc5efaea5c609b71ee1af0ab131d45cac6b45400a52c8209a1fbd8621dc68afc9fcbeaa312cd9ca2110652e5e74489ffb3ed8b28ceb33a7803521ff1742ebe7daceea32fb1eb3b192e6f332213f2304a18a1f494f3854c502402bbc41ca0221bd37ded405a8628ad30f4e79971a120dde190eb375de48b483d016b4529af711c607a5e1fe3bea766f3b829e4db580a60ea4d50b350f7621c2415298fa82bf6ccca08b8d5b05d3e5ace0926276d2212e0146a703f7f1d645f54883268af380922abfb3af9b46713cfeeea9820daaafd60bc6eb82ddce5bf6037f750c9dc8c0060a845e2af5a7920a198109e9a5f98b1d068f99f3d393f1b1c5830cdda236eb07f914bf75396e9bff48963373ad4cff7b30d997849ddf6e7e241a1e07382cece108f3b167b2ebd61fb4199344d95d2591d37664bd1aa32e1aafc322aed4d8593965752bfee1ce709c7b683764c4242c34b25d3d68a601be852832b36683068b3eeaaa300754174d8098a3f515f8549efc8dbff356e5e40017100492b302c37485cb9f4198a5003d60c432c7cf8c236a60ca52246edc45c13625e2ee4f6f1f2af8548825a36bfa3c9c0ac1264cfb7cbb75c37b9aec5952b9326ea01f728015837a5795be7004738b32c0a3a39c12532226eed4cd230c7b1d2a0d39cd8453ac68bbdc0623d0b41abed2126ffa74b3e43ca0a10f37fa1e880907c9cc3001b3703cd5c467b734c98fe28f8aa561f34d28b76621e906bd9718b81cc0274af54d481156ab2ddb075b68a8c6876388a4e433d9d9e634114251768f4533394ef12778194687c635aa184bb33ad21781f129d32699a585998a5b626429faca4a89b642c874c30a212fe70a19371871a8e82f3ea61157b025efe7059660acdeec78e5de073599356a850d000f49b9ac4c9230ebadbc828bdc95721029cfb4f8822f2ccfa81b9a541becefe2fa7441ae7e7b00c62fb321651c907efc9156db4a3571a05c47b4b1591df0835b5e38b223d026dab60ae0ca830b655736384b5feaa5e1eae9345773a460fcbb0f3defc1dbe9e7eefdf2c096f8ea05b05c345555af53112e537e19c31534d0af19707554d8764b72d4f6bdedf5c26aa0939d10829fa76af57bee4328e3ddf14a0e1de94b15404db623a90aa5bad456c34891899c88f99474535f04cc9cb60731e0996db70bc90cf2f08f145e306901208f8c6b9051653ee76cc0c317970d95dff6cd821b100166996106fd18e1139cd530a6fe74432d6d836ecb2c70eba46e501a9e5c384704ca71a642d60ceee19b1b151b7e62503f503af548db3323b69d43b5598afe06dd2eed239c2e385d95eb0a9aaa2e7362c08c163c1762347aaac3a1797dc64edd119b17f38cbb89561f1d7902381129c86b6232b21ec30d293b341abe9d949d4aba410cde8616b7a0ae84c6c6d0d7101fcb0b768e83995f53f1931eccc2159c07fac3d0f78123e9f5b03cc408278c42a646dd034bdf97abe84010784bbfabfc056331666d4bb1036ea764978cc5ccbfb5fe1505c9659357dc35e2cd7714d3924251d508ce93d885c2e5ffb35afffed87a746973d0891b975417d9c6d34a0394ee16e7bfb022394ed41bfb046d0bfc38d7e062140c6e45a6da5d6406e0a937a64b3c6709c8c7119af43faa34088ac5c016f66e2ff83149de2480a60733cd83b21dd808a0837525eda44bc5a0a1482e2af3a22d59add130ef4c3db5615bfad6ae695b5d3024739c656024fff4b4a64c490b7dbd92b1b066a89b4e0e88c6f89c19be0808948cc0ad2f5e408b72020d0da2fdcd46977f5e1919d5e993336bcb839bc9b5bccf1c89b451e01b70a959d6835a2a2f08abc699b50f3224387d3912f57f548bdd3c9f9a8538a6c9fcbf3e4ed895eae9f1e94a959c103ac0a97c559c1e8da4fa4c839e26f891db671217d9f7d89afdf7130aba1e7aafcaa8f45cb9897ed51bfd89af0d76bcace30860d40241bb88c80690c933d9d618f202fe61b5960bb04b897a21ae0871ce704b47ab4d91c13ef6f04bb0f9bcff56b27c0b5975924d173285b16e5378e8816c760f9458cb049778a4d7819d40e89012a089048fe39574d512ca4d1d20176592b94b009c92e0aea208b125d0e4998051860ca5d4a91c74568410e80cd32face166ba431db10f19dd298c6bea361db13b8222ee572b43a33d9f4121c05ec39f5378c7003cd21d469f7ac8b690dd9b7aa1705373161540f6f2297d2543f71d1e4d9c3aff01af8760d4aeb5c411f2dc4e891e3f48721399ef0c7283bf510186131dbf06d777a9002eddf36ae573e66f09ae7efd4f2ced9f04f661d85dfe367835cc6311797cd43ef2a513d8d42a751c62522ec478add9e8966065be21031c90551df1c5198c38f0eb3f2c792d9ff43f6ec85e145150aa3d654a927db41019088a358486e70b3fad7b9481b98b3ea88c7f913f48300b522aa934380bf748f1344b42dfc68b945711c66dfa74b6fa46f2bc07c9a33618b959b55a60071ed0b3722693bf10589342ae92deb553c163ae0597fb72ef457f0e87b94f17f3b0a84b6243dd7768fa5930cdbdd9b28e9679695a8cd5c19331bfe8db202233a3278150fccbeeff1e94844ec47f57ef3c08b8edc23c2af7c01591c5ac3a53a8c716e4490da12f10d70ccc3280252a0786b17f2ac5ed9a32dbc35ff3fd37ac71afae8a48a093ac27a71f757b552b162549052717d5244aaadb07d01ecffd31ee5c7ebefa5f35ae73cf4a4eb04ce35c9e37afc6018df7d48a76d0dab3aa94585afff0e0b2cda89ccff11386ed169688b72b5f5705d41a10f986e03157927e709487fce535a09a6fd6ed610dbafb2cffb1b79d90d70f2bb3515fdc15eb990e7f1e0ee94f92ac4ecd2617362eb3baac1b8111dc2330c33f3a76414c9aa103fa781a440fb42a893582970db927d4dd55ebd6240a2af78ddd04d6cd4e3160aee36d1de51140a2dff915cb2ac0c5768410722fc84e202017f6af4124739f1825bd2a81e119d0cd80fc2a777b207a41c90aaaecbdf7be3c53424d4dfb22275b0024e9159150f5c01c5e07acaf7613c5f33e1873ac36774081cffc1082d2ec8357edc802e6c1f629f94c0044aca0fe62af2f19edcef49a7d82f16272c59ed850612972e2c8778dce2f1622242e81203c40a755190789d3115da7ff081904b2374082b846994c865b40582a2b11215204cb70dfc1331d598fe649240133c18621b030687f6790344a52350efeff67fa22baa95c894191a8ab0182ba1b03248f44e31bfc0100fa0868071e900977d132a5410f56f787066893e8511446bbd9af1671a8f200af8b215bc7c0e20cc62bb603968e2723d086ff3c1f30961212e4c04f8bc51a249b7270e196a03a56c026af43fa63830ec34e903300cc3300cc3300cb34c2076fc56bed91faf2999e49609012f1c23b29e0a9494529232a51473eb0220d8068084b046d6b43e019c0a500a080a68ef87e93cecd0e7fc1a4fc3cbf14fe560f0a8431f85d62ef520d364cad0a155423d9e9b72398ae77368a507194c939766395b1e7268a308cd7b2a2e2ae3ea1187366a9f7069f2a355b33ce0d0a8e6ff8c4976677d79bca155fac14fb57612fd1f37744a8955fe1e444e79cea30d8d98cbbaad2537be2ce8c1863e35c9d5af5b905a84a6e0b1865e78b652beabc3e39c6ae8376b7c0be39e73f692471a3aed66324625f59aae88864ebd5566e1e5d25a76f90cadd8a0b59c548b199acfabc3f8860b21b3aa0c8dd42e5ebb705a501f3cc8d0a8f6868ebd61be933a865e94500fd142954e0d8aa119edbf2d2e83879a1e86fe7c46a88cc945d52c058646c6e41a5b94d02d3ef785569aba4cad94c8c30b9de61c7f51babc5227198f2ef4820857a9c2c5dfce7b70a117a4baa03bcbdca8bf7a6ca1957ea619b2529a6ac9430b9d94b1dea9e3e68fcaf3c842ef22c4cc9a6a3958e8b4efeac60ed9e30abdef494fd9fd34538f157a9de99bb4ccf2e7ce12d201f0c2a30aadd8dc92362d52bfa8639e64713144444444fa10e0081e5468db74e6eccd8c627226491111419382c7147a41462d49f1a2ec2185467e43bcfecd2562a4a2d02af1e269ce3cb19d22bc1b7840a133253727a1e595f35a0bf2c0e309bd14a1c53cc5c513ab77c22bf56bade59b37a1f1182db7fed166a2954ce8b7539788f274d9a62451b361a3e40cfc81c7127a713242db434d85c72f071e4a688494e13bc8fc2f87075392d0af16155a7e519f569791d0a7d662739450da3b9647e8c5cd72f64fdff4c5d6f030423ba734b84e42fb945c91a8a10e3c8ad0e61c750b2e1f3e9e0caae141847e44c7ac5c469ad4d89d780ca14dd5d15c3b4b0aa1dd2437a7d477d1a57804a16fd157c49e8fc72c2b7900a11d25a59659f75c0793bf8d656d78fca051291e4c8cd4927841896f78f8a0dd53da79a5945ad462961af4a25fd94f93f974143a3729c98b36afced2a46e511294941312dd45bfab6387ae56193e289168186698a0a443176d0c9e2511a651b445975cb4efca94a70b325cf4a22ce9f1fd1bc637abe316bd7c6b0d5f1745a2766cd17e7e5daed4e7d4a32f2232860ac210110143472dda28d5fb37cf78a8ba246a69380ada0a3a68d18feccbf036a92b5e25513be33fe5cca2f370aa6557d3d72ca7f1262608c30c13a4e12af80008be04c58cbc95451fe275d4b22cbc9c63fa14b761df023244440ebf8d944a4cd2061db16883d012f15a6cff98913739b1f3800d1b7e2365c980c108093a60d168f71d17b2752623f68a56aeaf8a8f195d3e3f1190a4b80848529c448c30c6284118628421820e57f4720bcaa3e716635d295bd1e8e688cc527f7acba3931c232ee86045f3f24757b6fc19a71aaf4c4ad850f28cc5a06315fdbfd2ae59c3c6975d68e236ca787542c6be3a31394a060c46b04315bd4739d2d467c3fa8649d44cdc068ea444e0838e54742e0b225308f59c91ab49072a3a0ff7f477f57f9d321da76863962d1d640891d9e93045e7497bbf4a5706a2a314cd0bb16baa323dcaa811a18314add4dd2ef6ea959de519452ffb1b3f9fa648f4d8b10e51b4e6df6f62b5b0590a3fc71a49cf64042928688891f239d6f8003fa12314950e503ca0e313617478420c0c7474c27470e26499948c6c421317e8c844af834bb2bc656f51478b890a745c822fe5d13bf7e796e8dbf5ef88bb8af824abc448090e0f9431810e4a44a0631212e890447f52ae97a8a779eb7fc4648ddc48f134461e3112296bfc19296b7c0928d00109943f03e5240d0a743ca29562b338971142c69779939274e364394b478c60a0a3118c68e5bfa8324ad91efde145f433a7d9fedb3af8788a984047221ed08188b65c35863d21aab33803a2e3102310e83084033a0ad12b997596165a3061c245444444240a1d84e84d66cd4c3a89b77069c7209a3fa54a7c3d66d134d4218856e64875f99d3b02d1eb76195d298fa6251b03a20dbdadfc472a828e3f74a644f33783bb2c6913caa3a960fdd0e910d3112a2f76120eb41c28276574f4a11f3d2575d2f8f18239965743071f5a2d7370d15d0697c5e6f20ca2630ffd49fdbe2f9efeddd293a899d48343a0230f6d66d2929767ff73860e3c343a85b94857a144b3ccb1161cc38188c808504a468ee100514a4670a49c8e3b8c80d16187c6d3c46a162efb68492751b3e1237a385ea9d151070674d0a1914907d52974552bf7eca1630eadfce822cb4b7e736374e89043bbaf4fc8d0d60f7d793b74c441011d70f0e87843af6495663dad41a3ff1d6e18a940471b16d0c186110674aca1ef286474d3b1ef8228a9a117f13a6e18f1725ed199f892928646689d97420a215acc2634b4a1e1caf547072f1d3b432fe99ca986cf182953666873d2524cdef44bbab465e8e514df767163d442647490a1179e4b09df0faba7aa8e31f4224b75b3bf9259f1c4d07acea05b520b5a33f9c6cee80843efadd24cb46c90fe2a30b4fd9b5ae9d5ae4746ef0b8deb95d925ad4934e693179afd9cb5e8e8bf7b3277a1d5fdf8b27cf92c779c3ab8d07f74771967ca84d28b888ca4a43cca8e2c4a49c18e2d747e5a56cb46b27720e8d042f3592ef72793fb9d62165a99d917f76f41aad43bb0d04bdaa56b39658ee9cc92a875a0e30aadfe9847acee9339af153a19452bf1b2b4ac6396055bd0518566e43b5f8f4b97bae5ef58d041855eccd244aa8be2c5f72c14c771724da1d90dbe5148655a3c29d521853e697f2b0feff2893cd1be230abd66164c7f94cb1e75550393131b9b820e28b4529856a93fc70e538d3f27e878423f2f8bf6d16d8d7abd1b25cb2b2734ebe287c6243ebe5c494a090e90063a9ad0b8eb9ce6094dd0c184b695f6fdd3a82e5abe90a89de1378ca18e25f4aa77b5d6b2a0353dcb8282374181191d4a68d5c3cbcab3b8c245e125a10d3e32684cfab3183b0a09cde7ecfca79427df4c8fd046d3dff1928e2eb5f290a89ddde057c0db6184d65c94ed2f655d7bde8bd09aaccb6242cb9dd37d22f42bd67c74b91e57253384ce75d442c76cc105915a247408a1ffb82bf342cb603e6b47109a4d75b1fb5c92dd6492a81da231822c071a37c218430561740081d7a6dca51c1d23514b1974fca033f34ef997a2e5f0b1c3078d7099b40ed94aaf16a468265ff4a215237f5bf2f9d4d2a25250bc8c335eb4f153dc8316f4246a26236b9878eea251a17410b2b9a48e56cf74d1ee8b9ac40539dbda8596e48b5cf4a942c913cf5254b5d817b8684c8ee7a875164e6946d42859671cf8e2166d9f0c9f3d0759255f27c516adeca85f482de467793ca716ad7019b685bb98f78d91a83279ed2f68d197c8acb1a48e5adcc5b368fcc7e528f5b96ea02cdadff032b9acc594f65c2c7a793529fda9aa32430e8b665db5522e67654a48a557f4275a8f10bf7aa3271957345274458590b956f4332335fab6ca8a3646ebce3288cd51afb78a66753eb9a69ba13bb3a8a23121656a4e21b63cbc52d1ead94cfda051a3ca7e052222af4444c880c1481a5fa0a295cd24b5887297a577123593131b27cbc8a6e08b53f4493c275126a31164afee0b53b4e3b95a84c6d0bca6a0380e15f8ab4044a4149d78dd314bbe5ad3a386e73059232511ca2f48d1e8d9245565c76771e5246a252367fce3501580c0eed595f1c528dacf9945e1313f288d7112b5b316d8585e8de048e10e2d7c218a3ecb629e965992d318e750b41ae36beb76bf201afb0214084da4dfa4a58cad65af0baf7532bff8c44113f104a289f8179de845c69b16a3c9139de7e1441fde3e68c54de8203e6b597ea9d38b7e5d4ee6524bba0f5e34eac9c4bfa851e395c90844444444523cf0b18b76b4c8d09b3367b1598b2edaf0e2ea52367bf6ac76bcf8c845e7399acf894da9f426ef40f0818b7666f563d0aad2659c246a6938868f5bb4f9e26f3419cd7c356e1ef8b0459fad62b51ce219ba5bc4f81214330c9e008ef0518b4e64653cf5cb597e919ee4407b7542c6d90f5ab41de465efa02d65376666d147cf8236977ff794d3872cfafdec92d62dfc3dfa1e8bbebd25ad5cca9571b935b0e8646c8c9975f3ee4b3a26699ca8e0e315fdc7985dc5cbd1a530992bdad82b37c6172e57828f5634ebb21c545dc78c3f58d1cc7a299d0f79faa12251b3e187ab683b33cba7318b1a6744b3fc5045a353cb578788f3788d13941c29af34157dcc79dfa4b86cba3ee10315bdd0d49f754c7ab34c5a87e4e314bdd6fae921a3ee7e2ed52859a6e855a6ca2f2dbb7b95598a566e962535d931af564a73c41843056140e28314bdbe1c8396e5184eb9e41a85415fec52dd363f44d1f7ce8b06ed8cfa08451b22b4fc3185584d6d4139193922f800452f274f5ade54a541658b868d8f4f74e69b252d661429e3c713edc93df553f9a23ecf7c74a27733adb5bb373487538c0f4ef4a2ccae5df628b489369b679975b38c870f69a2effcad1ed7b3ce2c74996864347ed0923d3325c56be428b151924a6cd8f031ccd270940d7c60a29352a994a92f328e8c3dca3133d27015d8a5e12826f8b844df29b39478586f490991a4384992a438890d3e2cd1c78c2f4773348b6bf8a844af450819474a97db2ec7c6c98852a2175e546acda8f5ca8d88480e346ed4e06312edb92057c62bdd512a44a2c692e8e5f8154aa8bc097d2989da488e8f48f4323288cd318bda59deee0312adbad43ca7cf3c680f9aa47182f0117d0e1e46e9ec596290a4b808d6118dd4654297127f42b72c1f8de8c5ff76fb66f9f566583282820f4674c23febe4ede5b25b8e16d1bcb62ca1397a5875a5227a51cde41d724f44af75345b27172df98f88e8bb35c9921df92d76f4108dd232e88f2366f2f46688dee3cb9e8c14edac55883e4c472daf99dce4324c88deff65b72856293f1937c6069196b5342153576fec43106d68e9a7b53ca63a640ea91332ccf547203a153ae91d99dbfd736ed307201ae92a47c7ecf9bb399ae01887e0e30fcd9cce8bab336a5a74f9f043a3f93d3acb761dd3d6b9c18360f916d83d1a377835b23c0eb88c8f3ef4b205a93a6309712d567ce8dc4d6f68ee2cbba8d93df462871663903959b25f3df431c8536d1e5e3ec77ce4a15f1f2df8490d6a6a5a0c1e1a577285682df90e7d36d1f4a8753ecba6b543dfae2b5ed0903fead0be8b318a93f9cf9246d1a1131ddf92f897f325286698e0630e9d165d14fe594572e87496f1c5e059bccc2943a2baf91187be57e6d2f82e46eb5a8292c364e0030ecdb676b61c352de92cbda1d75a6f3e13ae514f6b6e6843cd3d987ccdee1393f0d1865e664fadfbff94a7bb52f8604323f5becb39aae71fdd9da4989c2c6679bc865e5c525a4da3c878945243bf5a102933a3965c943a6968dee499362d5c79ea090dad9b482d4a937c8656673cef91e17d98a1d5ec282fb9d092d86f3fcad0c8a85d4913fee235683ec8d09bd0d3f2c71cdbbfe17f8ca1d10f3d7fe14ad6e51743ab4264bb96c53ec2d0e8a09da12e6860e86352d94a9c3c654ae87c7ca117b5cfe6d8f3f795621a7c78a113a5ddd9336659e8f074a117f39d577eb3fbcbc25c685c1619dec447a4b8cec7169af1d24a974b625bfefe430beda99812dea9794c8c43f8c842b36e424bc2e76379e63fb0d0c7963db7a051a97cf549d43e8789d7e00a6dd2faa4f470d94f6a7cf0618536ec6ffc8db194528546a616a99fccb529f34b6c7c8e1212b4207c50a1d3a5ae51bcd6fcdce6c7141a59aea5921d3ae49b4cd0381951fe281f52685d50da7b5ef856f59f442d75f011856673c91c5a16bcc465ac018ab20f28b442b3e09ed977b48ba3248df3f1844666d59d4d6f38f9424de34d1ec5700a1f4e68468e891784878f5d5a4de8959cd7231edae473644227fbf12d9bcca174f46309ed079da37b76a6ce82f29cf0a1847ea59ce937d919afbab91b1f49e84ddd4cb7382f6736b750f840429b3fa54ca2e5f0ea4a3e429b5fd2a0b46f39d03801133e8cd0e80f339774d0516ef87c14a1d3552e29d9f2c713fda26bc207115af73ddd4ae613d7827262ec66f031845eeb4d25a26389d328fa10422fcde5a58ed995cb5bca71728282858f20f4823e7dde1e4774c90c62326030721f40e8b5a45cccb275ac5c293777b24c46c0468c8f1ff4e1c28e66c94789f5f0c307bd164b868db2a414df722f7ae135737e3ef395bbf1a2152d6869e926336578176d96c58a5dcf9266d5cd2f6e03872e7a615e10d9a54a29f1d15c34bab3e479ffc9a03dc545afad74cee2aa284daa43a23672e30465e528b95162035d5a0e351e61e0718bc6f33f5f8ba3399ae8a02dfaf821338ea7d07ccf7ad4a2d351d5528ccb1e7d9e072dfacfc29ccca5e13c66368b46cbcc7d615d48d46cd828394316bde4aaf478fc50d172160e1eb168b4696b1da5b95382072c5a9d4c6a292ba47099cde52368666c0f1eafe8e5489562fe3335844a0d1eae685c636849a185a8d21a7f8649b6a253114a9846d72e67fcac685fc6fc8c13f7aca211dea27f5ce5c227f05045a3517c64c754325a96c354744a8ecaa48389d4061ea8e8b3fe90c2450d234c8b6b093c4ed166e12237b869cc723e290f53b4d93bc346a945ebf0a798a1b54729da20dcccb318cbe37727c7d7e04b50cc204523bf350be37234544b25258251f4524fee6b7136338b19cbe1218adef489d79acd25081ea1e84de95caa852ced61446cf00045eb71b7a3ebbc0bdaf2f8441ffd536370d73f22bc35237878a2132f3fc90c6d8d9ba34e74a2b7d5dc84ba244ccb19103c38d1095525c5aa9241e8ce42a286f223c7686e139d16175b367d97b4d23a231e9ae8fb555c79969b3bdb814726facf2fe8a072747a5019a263b5f7c044ff3a8c5c7122f529e6be244709123c2ed10817758cd541849031f9ca129d099d265a5734eb0cc2307854a215aeb3be0c5aafd6fa43a2a64a46d648232338523e90438d1611c9a1c65bc183128dba68e1196314ef529b44a76b529e0ba61e93040f4934e225730fad842eade49168e7339bd419db5a6ce185c003127d76b94fcbbc5ade109b47b452c69bd4620e71d6c0c311bd7231782e31f3928cda8836534f89114275a76cdee0c188de25d7d96d7af258449b2fe4b5aa6cd9e52052449f1e4e27d15a7aa5983c12d178965da3976c17f3b48cf04044af5dc81229548609c26883c7215a316df2c289b7965f45a2268266f03044a35eda5349f790a94485e845fcc5115ace93105a3c08d10857f12ca7e2e37986443d06d178522e55cbe6e45a5c3c04d1e8d0f02db6a0a2128f40b44afe5d18b15a1c7d5a88e20188c65fd0976590235d634301143cfed0ef7a6657d9ec496cce0fadca10d3a36599992d49d446504e46d270146424f0e843ab434a193a8ef6f54d518c191f5a4fde4a875c1923bbf11e7a5955eae0ba4a47d5d708ca490edf3323f0d0433fba95f0cd3287d14945810a443cf2d087687751a550265226f1d0cbd562fedc79e40ad9ccd8e30e9d760236464e4c26d1cb4ba9c57d75495ceb25d127d35e26e342ebd2e291e84fa4aa122ec92f1d3548b441870f524e8b9e21741ed1f7e6e4d2536917740ad111ed7e9c923a75d688464a156f79478bd1f9614427264cec0bfa5402b2887ea3ccb1a7330ca2883ebb646a2a756ea14527116d0b7a5ec9585ddd302d144010d106f32caf85d33b2345904334635ab590a742121043b4f95564ce332fb916d3cbc04234d284f894e9caf4750c84109d9cceb95cee9c41f43a6b3ff170dd403919e306cac9e2130388203aa58410e59a1a45992e039040344ab99c93d49e63b82806441b4e7974735f7d2d757fe825692ae5851c97739001f143afe3bbc96ff9a7956f7de84b0699abb7f4e80e1e3880f0a1973f876c154d1aa48e5240f6d06a97782d2e3eddb3540f8d4ba273d6b2deac01c9431f45887a8e6302c143ff9236616eee32c808efd0c99754667eecf6d4b23d80d8a153a54469d68d1e36e640ead0e60ea385c89ecccc591640e8d0a6b6ece2cb713c43447773e8b4cce6d4beb245b941460e9d3829b596fa052daec8e3d087d4427c9b74018143f3f35fde92cc535a902e01e40dbd1c4ce8585a89188f0fc40dad8ef2b26f9ed372fe541bfa4c17b4b81957e9d2fa1d081b1a51d76e55e6b39eba35f42f9fcea8b620446e49a2866000a286568bcc5ac797b5cc173c98865ec6cba25e19b63240d0d0afc6f19cdab15f10269ea137ffec97ff5a90fbe163865ef78b6f8c32b44eae2c43a7737233297d103274a262e489f81e2d4c7b03640cadced9556b793f65ccb2187a713c5da5cacf6bfa14863606ad7546171a64b4090cbd54e2b49bbcacc385ee0b8dd6916a5e2ebea0b4a506102f344a955ecffd5a167d65bad09acecf46b12dcbad74b8d00b4ac828a3a5d7c3847e00d942a771b390a9b5687ae4d5421b7b3c9ae7161e64aed20092857e35c80c2b426ab640b0d0fba80bdbf9c26b516b815ca1f90e2f572984521a47b642739a84b6e9301ef3a973aad0beac5a7566a9b9c5d3b2020815da97795ad2297c3dca17069029f4f15bc98fb9e849b6e50b2052e8c4055f53beba1a540a310aadf77616aadd2f7ae840a1d372fe79984df9a94f204fe85446ddba635c6c9d7c4427f4a93decb9928dadbcbf036942ef626c61ce3d856c006142eb2e6611dfd3f1a13d4a005942e35aabeee0d9f4838ef10c204ae893925afcab740149429f346ad642f3282575048284be65c86b2d9f944abb0be408adec4fe1a5fa6456520562844e83cc2befa29663e7fc9c22f4e9aab32008111a9d75eb98e530212f7a9021f49fa7cbf39e0879cd8008a1119af57c6878d54a7390164082d0b7f629ef7f190408fdab46f98ce1bda566417ed0798cfd306f1dd5640a15203ee885f51d5f9d2d6acfb2547ad129213dc8ef4e8517bdf05dee792265336b5576d1e80aa5dfc388cace4b4517cd6a96f3aa47eb9215e7a27379263d7c952ab8683ea4a8ce42b4f8d1dda291d94bbb7b7ceccb6a8bbe83fe092da54bb2757806708b4a2d3a337577555a09dd2854a145df3256c751d9dd3832b36833cbc153fca80b9d3f880e1559b4e6728610e1a7a243afc4a215db416921b4f8d2b2ac028bf6a516575be8bae913565ed1ffca3c5adb431557f432aa65cf6639e6a6a9d28a5ec9fb686b31e9efffdcb1a2fdccdf1a3ab5bad0f46e156dcbade639a6b41c3b7aa78a3634a8e8f3173d68b84c182aa9e85dc91f0d2ec8ac9f16c9504145a705ad95fa46cd11f3413c457f1e5be6597d219aa2d5a9a25fc99645a9f5432c45af4accb398434f77a9428a36e89c94a9ead03126af328a56659b9807779da3ceaa88a20f59f239471f2d4e59094563425b8ed4a547c4f70a28fa5511263ae39e8b33aa7ca2cfc9bba3d6aeb5d0912b9ee8e794abd6a43d4e3da8138db896c578d472963486112b9c684e8a4eee528716f5c56ca297e518a596a38bd144af51e7ba5c224a6837136d0c26cdb414d5d9b962a2cd2c2d7db17b73d2b14b342a576a59c89b0b57254bf492aed2ca65398c5495a954a2ed2cbc52a9e54fa972a444e342f4e5542fdd2dc3ca24fa4d993529efa85995ab2289fef385e6cb64241acf2cb2a9a3d4aade02895e4cc72c45a968ddb93da27ff9c57e7fd72d8a3c39a2d7b9a59c4d33bd71d5bb4a239426baa4bf7cb2c2885e7d8516640bb3f1bd5516d18b7459741d9458f141e5878a225a8daea673a9eb9f5d93504944e77268b159f49e15a35510d1e7cc9a63f4cc51b764aa1ca217648a78551aea19d28a21da2457c6e8f0b22a791deba052883674925ab7d862ceae7508d1bccb72965b16a7575e3888466791aafa2563e43d4134ae49946aa6502db94b20dad4e1524a7f6d97a1ad00a24f328f76598472a9b5963f344aca8bf243736ef252c3ca0dee5adb875654e874515f6cf5a84a3e74a62946a3121b1aba2751d3bd3db45167d3615a75d42994bd41450f6d7f8fd614e9e24999a9e4a1174573501173bdd183153cb4f2c59c7a37c568a1f5ca1d1a35b1328b2dbfaca4ec8250b1439b3f3ffe726f5ed741e80c953a34a27a4a693f117b3a4a874eae08d7d62e79e25099431f7fa556d56526937a14ad2287d6a4d48ea9b1fa615b2a71e8bc5d16472aad4a85bf77a8c0a1d7a2cbb965eb7f4126d3869ba0e8bda1158fda55bbd849cbd1191537f4ab95dc1d131d7c778546a50d8dce2bbada7f9490afc486f6c4ca4f1d2fcf62d09254d6d0b72ceb9c5cc968dde0ef068d868a1a1a315a5b968496ff0513eb19fe2ed034f4ef49dfc36897656aacfcc4469ea08286beb5e626a96bc27470e14063e48c93131b6b2908430cb6ca197acd151f5f8ec91867153334524d5d32dd723de457865e7e595b5c91498bea520cc38c108cb1c6970047850c7dee29ad5a5adfbbbf31f449b3d631e55162e8c50d975bd0d385a1ef951f261b32ebe7c66b1a1530b4dda28c1d4fb3bc32b998a1f2855ebb205a5e63634bb68a171a8f51d159d14d2694952ef4bbaea1e4e6396d970d47f91b4f82a3d1b8d0790b5ac5c86b97d4a654b6d06c6c6e8d71b468396ace56b4d0cb29b7bb745b9451498da4b8b1140f8811c60740a07e711c2b58e34bc0834a165ad1c26619b33d152cb4e52df47f66b9ac65874447504e2251b94227d48416a48b2e771eb1a1344954acd0f89eefc78e41eb721d33894a153af7d2826867cd42c79d446d0c152ab41fe447359654325b4ba5bc3a31394b54a6d097683eedd1ddd2a48a442d73a08102117c098a191529b4dbb2a4da73907ac5aa246a765aa844a12d1de31d37831528b43a675966c165ce6b722ba93ca193f3951bc4fc09993b4e688452d3e1a16ba509ad7f9febcaa8c1cfe70a13dad82fce739bce41b6ab2ca153d1a9afc947b4ec5a51425ba2646ba9f8d33a65246a222208f1a19284be55489d23b33cb2735441422375ec1452ef7fd0f892a072845ec7ea99121754dd57152334fab25c1efd6496c7e7af14a1d75298d63842b66b9b44e885edf2511a26d364a83284de536a17a9456ecee85684d0ce86cc5992512e5b96952034db51c9134246355d88446d8c0a105a19c46541c7ea102e3a0a2a3f6844491512a31217b0cbc05906f0cc4d60a935697f6b81091811a422168125470a1a280508c01a29031e014841f9050d75828223011c4829c1e11e013803000200800c6c0007201f00404a4a122180003c872b910204c073b83a411139000006d08004a0fc198be7481919010140001470001c37ccd026f1a0abb5a8747d1c379632b427bc3dff66cba32e92e100608ca1cfac1bb54793def81b9a6088610d1c4b18da132deb5ea9239b3d22515b03c772e36fe48dbf81c0000396e4502737be8025397050a2d018194900185ee883afce9d2d7fd41d4312dd3334ce6e3cca080e4ad4885a1e470a5b0e93124c3129c961a3048c2ee00802c0e00296e4402149b13132920030b68025396c90a4f8c84802c0d0428e4fb9f1370c004616da4ce9db27d685e91f0c2cf42f5b1675bf9c3805c7c988d9001857e825d562ca4f422b212be3e04fc98d1393356c9c94f13fc65eca186058a1fd1c57a36f6aa5a2f555683fc36af414a29e9da442ab2be379d45916bbc33585d66484dcb032ea89098121855ee6a454a7761e8c28b4a2849a67bd331850683d68d32ee678e59afb13fa8e528a4b3a7bf4d825184ee83dce63891727839bdc844ef8c993b31ab3d28c097dbb206596436f0e9fcf25b473a23fbf1c33fadfa58436b6ff64a92909bd122926d385979e5a0b129a934d13af5f95762a8fd07e799beea82b23f43af87a6752faaa6f16a1552ecbc8902f4b3a0939115a2d96d0a2698daaa58e0fa18d177590101aede7a74346f92fcc29088d96279b49537b4f0b0161f79848f32a56e77e739dc5e82c307ed0ea4f9d34cba0328c6a81e1834e6a19d13a2615d9ff662fda74edd41e735d7c252251fb33dc8c105ef4fa4a85792bd58fc2905df42d7f16a3590ea51dafb3105df4d95f54fa5f87a76769482e5aadd3b4a40ce579b5741221b868b465f428326bf1516cb7684bb6187d7eaa5f6e1d5b3423376bffd231b769c1736ad17ee78eaf64c7efe6d56942082d3affd5f93bcbac59b46232e4cb496368a94ab2e825195208393b32b3cb8a45df63e27b56e9a628132c3a8dfe1b64c3854aa17a452f688ba67a43e68acef574ce598d193fcfade8a30b993b56e82c8b4acb8a5eb7ea345dd9ace9e62a9a0d25e693988dd95bcb640d55f41db5d49d95596827532adaf8d94cfa768648cfa610828a46778c8c51b6cacdcde613424ed178872993555a37b31885105334524bcbcacfed21d52b459f4fcdfba4929d2d5e4248d1c9c7e99b6e595dd522868ca2d5a2de5f4d17a4ee9c88a2e844cb3a4bdda3158a3e68d916ba59102228da1894870821425e920ff1139d7639e64931c24dcc86e889ce85cbe2472da46a7e87d8893ebc4c32eba3943e9de3447f5aebecb2ac235d4cc24df42dfe37557787a889e65373e8ccbe0c324b2266a2cf973b67c163d6979e43210413bd52ba263d44483d9b74894e6941ae88d559e55f36c4127d940f95adc346d7f32d21a412adbbb0eaadc4c3ffb94e174228d17f9eb91c56b618a7e4c8844ca24d623acb48e1e185fb9268de05f9820b1d5b5be8dc8544a259a95bbe56d959c33b2b8440a26db95f12fb265e265a218f307816fd5745378ee837ca876d49e61f8434a2198d9ba4d0d2d4b1c41e8430a295a3cb34e7f032b3700111b2085c77e6b0bffa3d1c5c88229a13af673fe308edfd862422b92d3a534b9d8720a2f1d7172e731ea3538a3ce0218768b56949312ae61043741a84123717a485e89472f945dd6a2a36ea09d1eb90ef628ce7ddd32893139435a264840ca2d54169cabf6c390a755941342e54cc88d19b5cd67a0d4423ca05d12eebd7ce4f25205affffac1d73b88a77e80f7d668f09253a2eac9b8e1f3a2d0b7f79a51b6e42847d68339a9a9059cc1e373fc887e605f9653edfae5fb9f6d0cb319fb532b9b9f3327a6853648be54ae67c41694e481efa9871543f690de2a1d17e931926c5cb399bc33bf441e918ce4477d693fa103bf49a39bca8d45f463d87d4a115dff372f2a815428746c5446ae1e5f124c2143287c684e789c6cc3a86ca246a2925c84c19217268e5889e9551e3978a9049481c1af12b8347a97154b82b040e8d77ce209f84e816f1b284bca1cd115a68d6b9f3851965baa18d7933b43c732ea40d7df6c6c80d7b1e5a9486b0a19d17de6263d2fe395c43a332a79462b6d3c5f9500b216ae837666cc1b7f40977244de0810fa0c00421484c43ab59d2feda3bccc6900a41432fb666f1b339f907d9869ca14f2252a94e2e7533f6344ec4101149e3040525082166e8359b16224de458082943e3e1da394dbcd872a42164685c778775315ad070791c38d01843ef7ab3a30bdd9c5576232347b2a0f8a7a41a42c4d06ff6fb08ddfdba3c64c3811012865e3e4f725e561ae61dd34108185a79e23a62655d3eefbfd08f0b72f5bee7cffa8222226d08f142a3de829716cf8e580e42bad06f26f92cdd64d456a5102eb4d14c698e5ce15d5a2c25640b9de6299121ba3cb77848d402215ae83dc669544acb92f6a025240b7dcca022dcf565f0fcc406167a9f9d7d93f19469872708b942bf9fd3e37dbe94d2a463566883dc7d2d0bf1dafa9f2af492fe78729430fd8d5d0a15fa98a4ebf391621ada4da12d313ae683ce98a2742934ca25e5a2f14aa7c69c178444a12f69a2b53c14dad88296b37916b1fa3f4fe8f59ae8865697b2abcd20c409cd6ad920a56bd4ae05214de8f4ba0ba1e5312d8cfed4cc086142dbfdba7fa374792eaf294b68b4b590fb26647849cb4ae8c524b57efc53ba202409ad472dab8596b4b859c94868b7633fcaab708c9023b4da7368066da2d58488042146e865ea152edec9fdef9022345a9658139b255fcc3184088d10d3f0a24bcafea4afb1206408cdeb9c938cfdfd4a731742e3fd7e22b2e4cacf5a4282d00a21a370c9c5380a4280d06accd1f7930ea6c5fc412108f981a2153914e28346cabb309df5c7dd2c5d2379bde8b4164d9856edf3a2dd329da3651d36bb9477d168d9a1cf5fe975d1c8d62e8f901da9b318ca45df316717b34bf2275c8b8bbe579b9a9411f275cfab3e0820b768fe5777092965ab7cc6169d3ed961fa596b7d524a44c453d4f2a80720b5e8bb77830ed25b8bd1315a34427a4ba132e2a5c818c82c7ab94fcb9a56fe51c7670520b26893965bee1c5bf34c9cb1685746c7184f653e552622028b5ec7f653e22f27e52d4ea22220af683ca8f857993fcb410b22515b273f82726220ae685bcea2e3de3a478d2741016945ab73922d5de716a49bec021056b4396b73159dd492122d966ae6a03f882a7af1272fb9f89d5c450b928a763f8fd69d592a8f31064145ab3d3cbf2464ffafa64c4e524800728ac654366ea81462da3b88297acf264c6750223da5685c906632c575bce008c8880208297a15f11a3ec88ca2cf4ae74f55528b32d9021145ebc9ff052de31b8084a2ef3d25cae7a567cf16285a1da5d6627468b195de7701f944ab275a6c996849ffbb487278192222243972388827fae05143feaad2faf7ec44a3bb0553327f57a48c4a4038d1caefb8427faece26a32226209be865c943fe8c78eb1017899a794a4a490e13bfb189c61a2848060c463a00a289ce4db830adbabd93f64032d19afc3cffb9a576932211111191c4018260a2dfd48ce1fa856fd172705ca293dd70d9fafc57356c89f6c3876999ce2ad1e6a8fb9b59a7de75414af449738ede38718c5ca8d43006f3601c0c868281400cc2301cd6bb400073120800202c1c8e064402a15054a61f14000452422a48422a2c3020160ac623a1382c10060261602010c3401443410c06623c48c464039f4c69829a3886742b11a5dc5ce8e2335e93f88f556a290615b07e2566e54f5ec9eddc6f0be29645b1ed82cf82ca70704fb020c104ac903840aac14b1cc43fadbcff3ded33fcfffbc38f7782313377b1f69c11cd8c300ed0ad986986e3d763d609583fb0c91b539685ba70f59a85e38261f95089f3cd9490bc930cf45fde6c17963b3bd6f991186b1feab83b8b64913c16f2e2c8371a7b381e7e4861a5d82c675920be1c140f95fff30e895cbf774dc517544153c37406a9991f94bcfa8beb0a16baa20b0c576829285adc592f259a1d3f0daa2368a068735cf0da8a8f9188fea0c1bfeb7e0abe873766d99971b869e0ac3efdc79e734dcac54cc32b4802a24cbec9adeb1510816055769479ac7a05686d8b64000763a5986e08aaed2cb7b7fc03ffed796038e8929cb0218bd77d23a03be15c4390e743c52b4fed45b128c9f793bb2136a163788ebb2d6a4778829dc102cbf00252aa3e103e2826902de0d581083578f993a38906461bb598de5558238a3f1c442558dcef3008b7966dc996730aec782c5b8d846d74bfd1ae98fed1f361cdf3e96a84b84648898f67a28d3211be72ea3e9d723e24f301280a2f8db78b60de1f4d863ebedd24b3b513989e6c30c5b66a59ff40324084b565de384aef5a5b30e95bcd1006e39b2f584b9d8f8b274cebc0333a7e0a067d8180814f28df581d5fcfad71814ca6f9c1736f936d4b9e37294ca2af72c69e7ca4f2244edbe72440fe9974544c699e003c9f0000f31b3b68c4679f42acbeba595f36418174b70bd077d8508a7034ef01ed7c3ebcaab138e9eb81d2a1b022f527a3681305193e759cc0379c2956946d56d1ca4be0306f5b83228234d3dbdd70d62e7cb9dadbc22516c79249490cb096ec017ed6875e71765d2af481b6dde3aed0d086dee0f3a623aac08829c1766af5e7f3fab815b28fbab098d297a22eadcf19c8260264cf25e6a6544691f0f32937ab3dbd29b766cb9f849e5249ae5f5cf72a1b9f72238546d7bc85d009fdc86b2c3fab0e5ad485381596ec04db80a83380a6cf6e382eead11f093aa0315a066cd89ecb0130cc8daeb14bddfdf9252ed7088aa59eb99af4c3d77d7778ce0e9e635d8fdb9743fecc98a4ddd28a99b036aa087e442c485eb391a8463c15aef75e0aea506f05ebcc4f617ad85b61769de823fe3f9dc65c5691ab5b321b5f431ea9d78a0d7f9166312bc81a0c6eadaa1c31e42b80c1a1c8337164c2f165a409b472ae278e7672496b3f4cd913c100d3e30b8ab3de3106c5f166879ddc4ae360b95d11317e1e73b8a7c880c3ca6c111778adaae8c18b17ee0c87e34a96111b267257b72b95e761028a1f15797ba1cbe6f38c817f7ca0bf8e8d3ed2975b839762d55d549705bdb54ff9f695728b98549953075449e7b65f5c66a7441ca0d9bc1ab5a005ecf70aa64e368340972ca156be1e95bf1d389971329dadb25ecd4fdfd3b19556d9f9367a257d9a591920e0917aa57e01c7d902fd5cfa7412bc93b924e74bdf191d83e419b4a585395578c551a685c678df282ed42c7156755b7cea3ebf486ce46df105757da0eada021211f3081ef26cf844d3f9e971217e6b452e794ed635ddd644327d1e718e500dabf7a280358ccf3061d99ab82dddbe5519501d98c3ac05cc1592826b158d864edbd3f4f753accb956ae46e583d1f5ba52f37f34c833147812e1ff106fa7cf206c8134347fa028501cb25713a2f3790f73f214e4f324c1a39bc5082b683369402215bbb2cdb5f516b207aeba211c38d7cdbd7ddee180af6be3002bdc3342bc2958880685c938660a36ae0c185b912bd83516c17e778b2f1b1bd0a00865be8f8c908d6cfcab9337c6511029d6a9cd294c506101d425ef63b65022d638e2606015d955aaadbcab202e4b75eb4a0a10542cb08a004f9c096e211fe2aa2592a1991826ec70c180f6c2ceea51bf7673888b6f49afa1c0f4c764567efb93996bd74f4d0dabfb1cc82672d9c3135ffd55551947691fceeafe889c8346ea040a6df112e130aa5858da0890495d42de5a070cfb4f1ebc68609aa30a1a383e62a92d0103ef51372b9fbae33133461b1efb72ef1959026ecf81d8e3fec517274f1523391084365eccd24d4928ca9f9e2411f00459a9e2f95c766aa4127fe7d8272ede5cda022efcfbd30d48f2b36cc16cde570feb6ed9020773585574e7ba0a01d369e626061ecafa916629972d84646691aefbdd8dd6643c73e225decd41d0c1a16766dbcd66163acadba48cc80f7632c5f99a2564410880f794e6c53915fecc290c5f46227f9e56fc715f12b3b79ade94c49fbdb35d2b53b72962b483d1f651b805df0c7e50b4bd870e54217361917aec66a948529b08159172e0f8e03ac5477a8113d8165d2624410007b6dedc1274f9e6133913e84e9c6f3f8a6da997046816172f064f959db56f0e66e30c45fa823c9b5d5c4b5a68970d59c4a6d3f253a58024d99300751dd267c0893c472bc06730cb9cd54971b1428f6f7f74dafdce04e83d4dc06e6fb938549c250cdcbb61e7388c443beea464b5db874e3d67581ad6a92a69d877c3a1fa4f35da4bb97d585b0ebdeb00d3f8c202d95968d0c85319811bde5421bd09ec2d4731d19b2635163190ef527ea00cad950fb126b2478c8b49199bb14e0b3f7136ac1b27a61023b05bea31570e80223437155c92804c3207312e4dc12bf42fe32d330de866a93144c4428e7b0b42b3de1ceb4d4be62c9e66645206930e23558ff7092707f8f29eb5ee7e209a14cdcf1bd27e553790c8936d6fbecf6fd7a64d7206aff581912a1734ab6ea8f53b5f30b2a5a419eee6753417c5511395e1fcd6378f428ca4629beb9553e3fac21d92d0030b9c96ae5aa65da07c3deb35c9ee1c94e2b50b563d4ad341c78317136dc617769e397520f14ae52f56a6d13a8bf45be2f75a66a790bc501dfbc50b618c50d33b89823c7bfe3a56d40a3f93082ea762d673255d7a026daeb914428145da2f4fa7490da3aa7ab4db4c8dccfd40999a9b704834aa27af22a4934c52440789b048549d581a044958f0329652dedfc1041159102462e6b4545370f82443386c8f66ddf36f0300233b21c368b42b557406583993296f7ce13b4221829f1d56cb0198ccd8423a1a15418be0591b805eb5b11cda015df2744609cf3c44d9f80bd42acd8b4e7176f0800588b4526bac0be629c72d955eed0a56f934bc839c280192e68b53eb07526a3a3776584e82c898c3514e830dc044266bf184704085ba2211036b5e571b69f9ecaa2a0608b67f2c66d030f8f0f16123e9e7f6c5d0036306b6a1ed64c8b9446e039b12a834c6ca927f66974c6fac02e9d6779024a636cc01c4861834fb10425d02ef4e5c081ecebcfe7b89a797cdc3ae60059a5c61d3cbb89b6f653f8a47baa92a99a0491a04978409a7a7d4a56477930eff60bbc8768fb8ddbc7274cfcc18271552bd3b4a412e048ac58cb749271eebdbb10dde4d54346f305a36026bba9991ae7371f8baaa05ce700a0d8aed159b05499871a48122a46284c17f1d0ddf0a120329a7ffd82e99390333e4c613cbbba305f6a8ee48cd56b777a2daacfcb5c79ed405e6c73c7e696760c04942bf65ee5dbebd8def43a8e00a4061055b8c5dd7158791fad1797297c371668aabb4270cc02d6a8f888d928e554d374aa5eff1685dcb325853fa3953e7899c038ea98ba5d49828946620e9483c909142bae8e2269c44084f16013fde094e1d4899951c6095036f42b450d607fdc7815cad156570025efa3b3de87ee7a908c77d288fc0a6c14ace72ba829ce050a3d46f95866d8a7b3fea09223d7e94a8356aac80365631d380a785026e2ec556ad92014a479dfb4ad1aeeaec29244b6eb30d3445b63526d486af2aab6aed7c36c8139224fca4342094801e438c44ab10d6d19e59e8dacdf8de0654a5bd5afa5b262dae965fb02668c84c1262b7c665460eeb0a7c9a344cfb28890ec5ce7d51e09b81129c17dabfe5ac7c665ffd2e9bd6fa32684c83cdde3e2bd27cf35b8176ad58227e93fde476cd4f247607b61ec0e307cd630c2d38e3bffea64c926478f711fe10cc745bb673a4b9f6fce39a5941632e864a67dc7604165556a34be39b5700417f935784351d8bf785c053199051d8b790983868eaa32bed2bd06f95ba15e414292566b6db47a12c0a7780bdd05d7b84349255d9f0c7b27935b7bde34d1512a2428c0235850850b2f66528817d26cd869fee02f6fa1244e486ae0268735932139aaad08b5b093b73f9e6b58bc6a21fcf250ec1709213d186883cd33db48d9b8dc7c525612d631f358bda7f3a5737a4a02a828c039d42ef6934b1ce09ce92a484b1582b8ed153c73a86437530edce1d534cbf1d8b588743e3bc05fb31b8ec8fa7e148d63005c8ed5a4ed792ffea19e2e58ffd911b4fe23483f38400324d87da2f505fbcf7c7f23a209b7f477b0383aa5173868cc921d57c7b0e45c0fd8c95fb027edf75ab757dd7aa130bc2eacf23b00d1260009544a7adbcf58b6f20161930380819e38e6912d30a7211c665aac83978bbc4ea7d751efbceec2291f81e8ea6f863bb06f1cda35fa2ea334f82a5692fc282c1a1607e8ae2731cb0b6c0fe6bcbac7b0d7b905f9849c6f864e0845b89414bcb03f50866be1d94e4f9ad2931c9942c2049e10cc41304b78debfea3ea264dc4d2adf04858441adda471f26b2e73e599f8fb3619f8795d28ed8d600fadc761cdc37b448c9b422525d84c2b9b3fa77708fe2a11e165bad45f0c7918ec4698b6c14a27b32956f72a689a32d76e021e008185b415631424bf188bdd0e5470c85becc6332c9ad39b99910c486c2cf73158440dbc722159f64a04a05127c1b5a3bcc1197dadc47be0de374ce653815b63e64cf5bbe4545103eb93112466a2bb20e31c99527b22b4fdb25c0d29bd9916a79466b295101cc7b066bf8442ea1b0337bc8a4188cc7cd71503f4fa7cb681592c9b90ca64e1710f905d32a01fd7470aafc254ffb9163e361fad39caef81e03908ba228f4f2d042dbfc7710711619e5de6f63a74ed0be8246421bcca5b2499865551bf356dfb6a73dd25647da8d7039167f85d835755d078aa438a7a2cb4d63c7650b31c192a234836f65d63d9a8d6fac9500923dc381efbee111c66e5cb39fbf469bbc97cff7e7e1e4d5effbf094284185355bc5cac1a9dfa682528b2a3965c7420900a0cfaf1f1c2707119f5c2a4d11a538e266b25f2d5d078776e9152bd14aa585fae5203b4129603fcd8509509c8cf7edcbc7017e928944df15c7de46088130c0d1e75f6dda02741e5be4853ba432196c74884658bf7a0db061b044288c6828c116482d7143e78c44119109fae84f80a2f113eb3f9976dcc7dd5ddcfe7b45a1bbaa4e83418900cd492baece00b1f29a13ae8d6169df5a83b3c8120fc6427553cf0ee055dd74a58cee3fd65032cacb628af757b5069f946c2e3b8be058c00eda3dd9f8bee00203d1b7cac4ad2e3d982b0fd7d1702504d85fdd1e14f79aa5346c04fb1d5c3a586361a558888926f1a3fd2cdbd686268663382f6191ed74e22b73dec5425e6fce917032b83d9c426b323fe61ea32d2e4fa46118839c800a3989443d3b46ce5e4a225d2ae294e0839ad045b997d05218b596f169e49a37890496e56418a80e1477174122bd4afbd56df7ff7739753472cf3395255c561c2ccd3fee1c5c6124176c1bb40251526a77779e0baf7b1edc614f31a2a2df682acd71257ae8c332f9cbb71b015c59bf0f8efcaa3e5311fc1bddf40531e645d6fc2a908edf1c3193d10c147d06c293d698a8331ad05c0bf33d90a7598dcfd44baa5aa8234dd736d73c67892cc4c71a7a82c191742a4216c205e48e64f9fa1cb72e39678e1bacadb8751d9b5aaa879381df08e97498fb7ed61e55d9708ecf77c2b80dc7ac0c9c0833780b9f0398901bf4152bbe06ce9b4863acd7970e49fecc8be8c5fa52d8cfa87f9d7ec794425cfee5896cc6fd3a72be8808909d653bac7249d7da8195894b7ae926736e096837ec95e319144a2d25eac5d7cb80f35e359faf505411e9cd9a3c700eb33ca7c80d4366e047c3a9eacca96f86a28aea443b4e88a9a2f3971b469fc433d49b75fb58584b5c8676dc621b496506a5072955071a5cd97b8e8192eff150528ad53c22878bcbda4ba15b83addf6389929c552c6fa5f28b68e53bbdb8de8f3b2e22c15d9a1abf684db8e17c06524efbc5b50690d9cdb7786d2af9fa1c5b8341d145b62cafa7b0a9c63be9f002099510d582ebb4065d88a44fcdfa35658513289091d6bdd1faadaebdfb0ce0f215636c9239840a818456763c793180468d475090b64b6d985834a55124e5378c87afb611674b9bf9d04260fe58a534ee87fcaea7a1a1120d262851565bfe5c7f75b94e1d7fa160eee8c2de801c2b2b58c8d082b71fda721f2b778171eb57c4ac56e439c06888d9c6b01e4eab67e54406955cbfb6bf7009400af526ea56fc50ce1cb058210c7359ab26c4351c4bdd1d3afcf194e758464f5874ee63dcc34b3a435dbed6034a6af0b0f653e4e6f8d222e0e574e894cec1d0c04b4a8251f116a69b793a5c1816681f140b1ba0923c2b17c7224780a25147b504097e8ad4e00b5a6c9200244454f2d9b7348272f9bfe234cfe95f0525db4e8717cde89f349b44d4db80d8ce0eb9491a2767c334e9d4f5e70842e55d7dbe45ec637308350cc9f79b4b969ea644e208dc999f6a18ec838e22c0013a97a85d02721b74889224e2d5a2876053eb5ef8cda1e9a5dff3e384ae63a8fda3309291eaf03dac7c02a99585c5a055764ee7a0d3c70729e5dff657f5f3e6072a7b28f9610c3d61b0859b4f93468ec9a786a11d8b3cd235ad763654b2ff97eebd0932a46cfd868eb16d25a5c0b5d7d54c4f8f2b8a969f81306f02fe1a0ec64e4990eca9c93921e123993c119211ba89ae8141e4a630f56be9ca468aaf89dbf4fbd9473eb13d66c468cfed75ca77b7ce7ca33b2832f666b2aace5bf2215ec2a4bb96b814e42cb8e2de141eda116730c7ebabc986e64826c96620c38ed55d976728058c3a4b5f63cce541ee34ce9e0fbf5876754d33ad0ba51a4b8c3b174a809deff86c8c78be547cff2a0be9474e90b50b2c397db4519c631acb87edaed9f4ec75d63d6c937ed0c04fb25c2ba9e100d02862f42c58ff2c92b83fb63583edbd216128a23141a554454956ea6b43271c777382c99cc0e4900f6687763af39866fd19eba9a4399608785b29aa46555673c9f4f04edd78a3f1a43c9501f185645211b7f5de086831af0c15eefd12c508ba4199e50c3acea181a9e45ce5a4f42043e39c2f671926010da9721e118e51a84221fcc1052f251ad3f0991bb6acac5744d0c66ce7061520908b0a30c72902305062a05210639a154bbcbd27ea0412fcb45afcc69828a2723194bd109466d6a6a36d2dfb181cd345c56dd8bda6ead431e72ac9d83227f96a41081fefe7f338d0d3318466cdb0d5cdaba01241e65a2367effc2541ff98104834423312b9b67570bbe80cbfea8d5aea3add245a38e1a599590fa2ef25b35539348e4de76c2a57b6ad92f8bba71ce11a67d16c3474f35fb087d619404b9af9fbf45b2d3342ab4b18358585739ea937cdff15e79bbec3f2394f28c4f2e62abfd4dbd4f3dd9914898b515f708681fde76401b91443adc28f742be55fa81127a987351c3b0b9fee761f9d5f321aaccc3904e875bc8cce4b9ec54baa009036db710b48921441932825182913bad2ab284b61cd08181768a4edcacbc116d138d7b82c3a8a827022af537313732ac6f4cc227837fca198992f5658d399c741dcd9bb7c683f66c41b7e8000e7270473b9d247567716fc4c72f7050cbb2e0f7d909d5619a8369086435545b46482598e4e131058be54478405201e6ed9aaaa1c2773617ed95839965c2d9a3d03459948cae8dacd0a337f6b4111f4d3798d2be97da084e9f264c8c7c481887b7685a5fbed7ed4276c8d4d6140a16459934dec3d6673b6bf791229c06a3368afb48f827d8bf5917dca66e55d6285860290d2d06f298220d456735a14f2f52b1f3219dc70427dbe4dc73a94debeef6f238d81107824867b110788beea1c361095668fc30855c03ebc09bd725f18dd5eac0e5de9a9a21ee59032af0d57b60f8ddaa98d5e63a248809b8b862702813f56519f12c8a1a22f6865dcdfeef5eaaf5d76984cf082ee1b2cfed9cfc4d259b460b6600a991a01f1db88f43b775fb10b4d2e32385fe81a0481ae0c85f4e736ff58731101f9c3e9749a9b5b83cc64799d7f98f56691e0be715b01ddc947abf05f09233c84681b13cc2a66a8c015467eb90f431923c1513d96a61123337cba3b8285e66ea5e341deb57fa60b256e8337c44f1e14d80829307b5cffc9ebab66822584dbf930d0f70c06d0b456df61055c8aef183550daba8b6fd505d9df60bee970f39d6fa036eb9fc7632a665e6d4f8556872d86f2fc1b8cd2d110c282459e3498e786660f86ad02a9d03a62ad1bd30c550f878f15dc7125ab6149a391eb247d5eab002e8c2c71b8bed33cbdf3cbca9b2fcc371e815a5163c01195dce28eb5b3fab2110c67599c9e7d72c9872f4d6b60b37694cd9d194dff330a1c0dd5a6d2635660ee993ff6345efcd5ab0d1d3c64b8c322d586542d846d0a4993c8d9f0d8a3492c4c8607297ba0fe85c46a0bf6043812cd1ddc921378513b583fcca5982a68b84aefb2eb11193f904f9383cf2f990503317f1cdce10178ba8620e41da0203fe188525dacf3a7cfcd2b08eafc88fa328339efd4ce07804f3872dc3d91d99f81cbd2cf15e9735299ea96ce4d7bc9892d34c230884d270c30762a255a8c99c92a4018f3cb1fe680546504271b755ab63514d77f16fdf2c48ab41ec26799d0ef5014f2aba4f3a52673925f5402f5cd1dd871e3869baa596d0946baa9bfd2f7816ae69c9a36c478dc33584fe7b17284375b932d35993710442466f477ebb485bf00cc7051e2e081298fda29d7e380040a39dbc2e083dcc82841ffc5dd9b7d1b7e44b1df68799016882eeb763cf291dde048ddbc25e6bcbea26d0a07def13454d6cdb1741f6557aec0bbe4803c285f4c03eefa64a84d63c5f6646d1e1273fb2d0068a3ccfad697eb23d7b02e5f876e8040de674995753b56619d462ebd595045451c745465aefd6eb28a9eebe6177a24c62dcbeec2709640634fab793069f59df3299aca8abc1e7a728a6518e09cfe6dd124ac1625af32b585e3d20a3250e9a80542d81034f43ad1aa15227173ff220667a557417a6408b2e3a74677baebccd0acf23088cd4ea83c02df6ba866ee42ebc9a7d020569644fb0d691b463a48e53300f36da9d01c2bb8b02efa369901f346bedb54e92971a9b25a71450a0aed698caf1c14cccb09d0762666b0b418cf0bf75ae4d904dcf928a9503329dde3a86067f9beac240a2c759a64bd650d769719e1dd05dbabaff57151fb28557ca31518e3f3da30744604f618735f9792120ca302757c68f2e0412e94b118e9f8c74dde4c2447a8741442e2358ecb781f27251c81425e25839b0bc195d09c9c15f1b639cd95e83e18a0742fe7e52ee38363487dfb25a1199308ac739fe320a9064726782e80c5c1945947d460ddad35a3030173a8fd16acd64ed0ebc4a553f99c3c2e4ebf9001605e7b13454cd3f3c4bba6732d48c7c6d2753854293274f5445491d0c6d516a65fa965922f2fde2ddfa97c3443ab53aec6331505d28cbe0fa20754fc60c280ce129f0eb859e0fe7d2082b9a310e0d881639f1a33b1ac299628ac36f3fe0093693352ac14802c52b254ac275e2313db96cf4453071c5293f69d494b43bdad1dae92078534e6f9f93596298d1d7eafc6ecb62ace74c4bf368a30c07f74488f07586456d50e601c77f82482d3c03931c369261134fba567563433b3c71c3737ee20a3b7d31def9d3c573e2ce1520b5feb753f39a888eac38e82f0efbf6e3f5e1ddd22a1050a068c3f35dd03cad8d2b8d86b031e1ea53748149ee355ef0bb64f4ba41249c9b0b003facadd83ad6fdba89e0326cf64083af807a533c5dbccb39070826b74da550252130f9c1ed811bfdf3ae290b9404b733fa21e4cc23f2f0644b95e18632679fc83a458c5181063a6ba62c6e1ffd522ce08706a009421252a2009c34940ea246069cc5e2b407c42b27c1258a1c755172aff1846c3fed5768f8fcd8b526e8a7f92f4e9d05dc2036b400b389d367ca9036cc07f73c69c47b69eea984af28e11e52484617eefba6f074788cb5d171ca950ad0eff6e9f01366d8feb5275408ddb6030556c8db3dc6bae953ddb186311123a31750527e8843f5982d9878e97a21bad484db62e36b51f57afa9264a0b8a489ca067263a1d66190458e4e60658952b1b55f25a0045511b3b0821e7e748bd80abc96b55b9ff9930d0c62e24b7446d57a887a4e479552db476de8c5196911a388e40eb7038f338847930c453a865cb3889f009ddf23443d57563d8bb4aee6c1db11756a154a1b233ab8ed69c8e597cf093ecd48e933e86b89ad84c48c4c1a8c35910f93418d141bec026ac878b3d6939a62050748611bc10e6c8552b27ae16f36f46a67fb0d19c676f11ac28da210eed135b6bb7c62909ff852479bb44bb34321651782950bdba0c758f826ad680cc0af308a0ee517d6b25aa2a623cc926c921362601dc13d0ce6c21a746c33a5b85f5207a3ecb3d52c865f08013a47024de3d8a5ae6c8cc12f5d196635cc38714a4cad2a837b6644fa5a8c6267a6508988dd38220f8bf0dcb6147c984819e49420a194fdbcca406a56a79423e7d079fee3d4dcca90aaa910115ef2f429b633773c6ffc4bd2011c00400cca2e09f0e9c1ebab29f1e54555ceef36a2c1a7f6ae3d34183da08c2e42163719c5ed669bedd922b9e11a078a1b996b0bc53bc1711091329b38bf50a169970bc7981bfa1aab346881ddb7ad70607fc7dbcd3235ca99a69f3ba2a435f4e732a6117943d5e25a01f91e6b9eb51b32b85a3d9f1de264b90e94e01aedba996e7af52076a584c7a050302ea94af8e7691e0075b00eb51e808fef554e046d0aa205b0f86b577b4b3136fce526bd6e977194bb61c241941494dba55a0abf9c55cbeac889e49eadcb0c2405cd34b8c08d711e49539641ea7bbd8e42a20d3c9d28f48e848f9c478533e1ac71ad9a85fd025a05ceb1499d680651c228259e2bed134da1295a92d8cdecc3b77485ca86e49fb03e344ff70ca0631d9e7443891089462514590a1497eba6e4f1f498d946b959e41ef792a532223d86bfd8eb09a981bf3f906959bf37c4d429e5e00a0396be66b532e90d4cc7208d684c54183dd5037d01310bca4ded207d237c6c12b374648b2c25abb4b31a75801616b97fae8848cddbe38b27479716abf03f932090ced973017340f431ae37953d9e302320995b6a6bb6e1bc55bf6f1fe9df93674b224688c0f4c63f840877ca699d45b026070babd2806ea4ee4db179511f6fca964ca02ae31741c6ebfb2680ce4fe6ac1d434e5c11a29dcd6010e17ad6f523ea7b2931a2ecbf5bcf3316ea38d1453a2b34c55b0c29dcb1043ccbb4444924aa4b2252224ee719a5fb7b8837fc2f54e897ddfafba0700c09a022b6b0e296c641c7ef16474ad793322e003141cec5d961ef24eac8d02c080bbd18e2f1e2ef90117a259d444a3e13100b77ff478574c3ca55e873080b5bb180f8dbce337a4468ff032a1fa7ae740065b58f1015802a1b632e4686b414d0473a669e4ce030b06ef3736582725ae15d83cf768e12dc0550494ec761523f14d5418272a32e1b2b31cd852ac289a217a492b8ad463b994ac5dcfcf02c06c8e7082e6744d2f4cd6356eeb227b814f6930ca4b4c44e6a0e17974a5cd7162e6c23b4bd83c9194cfccf5e206d7e374e8e592848a70ef2f49e156f83b75f20d297e34818a6a450bf4b64333bb8b9a5d3b8223113c8a4396666fa1fd1cc2b88e7bbd28f8b412c4413249fd264e793152aabac48bb16c8170d601789066d62dd93b1b77f7a98d11263d4c716f50618c4acad10db14a687fbeff004ad386449285a1bf2e96e52944349740977387e0fd194235da6549a944618db99c8366a0504264f8cd7667f0b8451e0ce5a765ef99a460c84685c9d5f9ef667731b5566e186f6dfa9898fb07043d4c3a64b81dcee50db2140d77bcedb0578058e91bab05d7966c6e72366badaaa4ea4040ca16945ecfca9ac0dab57fde546db179050483dc246641fe3209e2b7d76a42bb16d0edabfd1242b63b0fc05613acabd8dcf98c340f20c2a2f074d17d5bd511c67ccb11256cc01c644ba2a6a4511389de57babefc5561010165832b8665c9165fde836f744a0ae2f93ae41573016c592faacd834d53933fc3cc1fb6f7f2f0fb216ff61d1e4899b80918176c82e920db4902855366beb596de1d8bce3d22744407c7a72bad5de7c97a041e7e7c3b16b31dc158901afa8dae260fb99a2adf372e6ba9ea12b8b35c85ed4aab15b0cdd2b7ee2261175a59ff48e002764a2dca2a1466054a3f272cfcec9abf1be5c4a5c67d2fd68cf80e3edf5ca6934b6708f0b45f6aba47d34bdbbb317b11b759e38c5a3c01b68d5503998b27d5b82cbc4f5138f558c202baaf76003c5f2a9081a4420c2d5f8ef38548f62336c48a9b931557746d295ea6778cc9851a0a6416a216446bc02eda11d0455459d85038f799d01b64f8e0be2b8c773dbe68bdefc2abc6de2b7681ec07a5c4b1ac9157ca334f8f42135ebcb90859adf3d12fb207fbb2e02ae2f6218f82c821300c9d539c6a71da17abd7696228754c8bd579e15e162a2eb45179e41acfb4ec5eb507c757ff05717182ba17d0fdd62901d7c8079f80f19abd605a8d47d2a0b4822003dec2e4", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x20de05506c73f35cf0bd50652b719369c2e20be9bf2c8522bd6cb61059a0cb003304e3a3ecadbd493eb64ab2c19d215ccbc9eebea686dc3cea4833194674a8285e064842b69c1e8dc6e2263dedd129d96488cae3f6953631da4ebba097c241eb23786b7889aecde64fc8942c1d52e2d7220da83636275edfd467624a06ffc3c935cade3f02e0acf9e85d9a4f919abeaeda12b55202c74f78d506ccd1ea2e16a2714491cfc3ef17b4e02c66a7161f34fcacabf86ad64a783c1dbbe74e4ef82a79667e126fa970a75ae2cd371d01ee32e9387f0b256832e408ca8ea7b254e6bcde7d0a2cee67864d1d4c9433bfd45324b8f72425f096e01041546be48c5d3bc9a746", + "0x3f1467a096bcd71a5b6a0c8155e20810308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0x3f1467a096bcd71a5b6a0c8155e208103f2edf3bdf381debe331ab7446addfdc": "0x000064a7b3b6e00d0000000000000000", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0x4dcb50595177a3177648411a42aca0f54e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x20de05506c73f35cf0bd50652b719369c2e20be9bf2c8522bd6cb61059a0cb003304e3a3ecadbd493eb64ab2c19d215ccbc9eebea686dc3cea4833194674a8285e064842b69c1e8dc6e2263dedd129d96488cae3f6953631da4ebba097c241eb23786b7889aecde64fc8942c1d52e2d7220da83636275edfd467624a06ffc3c935cade3f02e0acf9e85d9a4f919abeaeda12b55202c74f78d506ccd1ea2e16a2714491cfc3ef17b4e02c66a7161f34fcacabf86ad64a783c1dbbe74e4ef82a79667e126fa970a75ae2cd371d01ee32e9387f0b256832e408ca8ea7b254e6bcde7d0a2cee67864d1d4c9433bfd45324b8f72425f096e01041546be48c5d3bc9a746", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xb8753e9383841da95f7b8871e5de32694e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb334bd1b4448aed1acf00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212": "0x0a2cee67864d1d4c9433bfd45324b8f72425f096e01041546be48c5d3bc9a746", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3558b17e2d0b3f3f1026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216": "0xde05506c73f35cf0bd50652b719369c2e20be9bf2c8522bd6cb61059a0cb0033", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36823ed8df7d5f458c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51": "0x786b7889aecde64fc8942c1d52e2d7220da83636275edfd467624a06ffc3c935", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36a0c0593a5aea5de3a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04": "0x064842b69c1e8dc6e2263dedd129d96488cae3f6953631da4ebba097c241eb23", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3753bb535f9a5c087d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460": "0xcade3f02e0acf9e85d9a4f919abeaeda12b55202c74f78d506ccd1ea2e16a271", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb37e2ee72825a39eaed6a941f3a15918925170cc4e703c0beacc8915e2a04b3e86985915d2d84d2d52": "0x4491cfc3ef17b4e02c66a7161f34fcacabf86ad64a783c1dbbe74e4ef82a7966", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3895beaa2b05beaa210a59d610a39fc102624c8e8aa1096f0188f3fdd24b226c6a27eeed5b4774e12": "0x04e3a3ecadbd493eb64ab2c19d215ccbc9eebea686dc3cea4833194674a8285e", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e71f9b191f1e16b3e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099": "0x7e126fa970a75ae2cd371d01ee32e9387f0b256832e408ca8ea7b254e6bcde7d", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19500056f33349d9e27d61757261807e126fa970a75ae2cd371d01ee32e9387f0b256832e408ca8ea7b254e6bcde7d": "0xe5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19501e0cc33672d676b66175726180064842b69c1e8dc6e2263dedd129d96488cae3f6953631da4ebba097c241eb23": "0x3a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950282569fa857682ef6175726180cade3f02e0acf9e85d9a4f919abeaeda12b55202c74f78d506ccd1ea2e16a271": "0xd4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950b666a2ee6f1209d3617572618004e3a3ecadbd493eb64ab2c19d215ccbc9eebea686dc3cea4833194674a8285e": "0x10a59d610a39fc102624c8e8aa1096f0188f3fdd24b226c6a27eeed5b4774e12", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c9c26586b5e6d00661757261800a2cee67864d1d4c9433bfd45324b8f72425f096e01041546be48c5d3bc9a746": "0xf00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950d1c26d664a1c2d476175726180786b7889aecde64fc8942c1d52e2d7220da83636275edfd467624a06ffc3c935": "0xc46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950dff72361bff547ff6175726180de05506c73f35cf0bd50652b719369c2e20be9bf2c8522bd6cb61059a0cb0033": "0x026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950e7388a37187835bc61757261804491cfc3ef17b4e02c66a7161f34fcacabf86ad64a783c1dbbe74e4ef82a7966": "0xd6a941f3a15918925170cc4e703c0beacc8915e2a04b3e86985915d2d84d2d52", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x20026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee2821610a59d610a39fc102624c8e8aa1096f0188f3fdd24b226c6a27eeed5b4774e123a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460d6a941f3a15918925170cc4e703c0beacc8915e2a04b3e86985915d2d84d2d52e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099f00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x20026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216de05506c73f35cf0bd50652b719369c2e20be9bf2c8522bd6cb61059a0cb003310a59d610a39fc102624c8e8aa1096f0188f3fdd24b226c6a27eeed5b4774e1204e3a3ecadbd493eb64ab2c19d215ccbc9eebea686dc3cea4833194674a8285e3a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04064842b69c1e8dc6e2263dedd129d96488cae3f6953631da4ebba097c241eb23c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51786b7889aecde64fc8942c1d52e2d7220da83636275edfd467624a06ffc3c935d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460cade3f02e0acf9e85d9a4f919abeaeda12b55202c74f78d506ccd1ea2e16a271d6a941f3a15918925170cc4e703c0beacc8915e2a04b3e86985915d2d84d2d524491cfc3ef17b4e02c66a7161f34fcacabf86ad64a783c1dbbe74e4ef82a7966e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b600997e126fa970a75ae2cd371d01ee32e9387f0b256832e408ca8ea7b254e6bcde7df00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be72120a2cee67864d1d4c9433bfd45324b8f72425f096e01041546be48c5d3bc9a746", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x03000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} } } -} +} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/people-kusama-genesis.json b/cumulus/parachains/chain-specs/people-kusama-genesis.json new file mode 100644 index 0000000000000000000000000000000000000000..f93d622a37b98168671ddb4bb04e5af962c12f3a --- /dev/null +++ b/cumulus/parachains/chain-specs/people-kusama-genesis.json @@ -0,0 +1,119 @@ +{ + "name": "Kusama People", + "id": "people-kusama", + "chainType": "Live", + "bootNodes": [ + "/dns/kusama-people-connect-0.kusama.io/tcp/30334/p2p/12D3KooWQaqG5TNmDfRWrtH7tMsN7YeqwVkSfoZT4GkemSzezNi1", + "/dns/kusama-people-connect-1.kusama.io/tcp/30334/p2p/12D3KooWKhYoQH9LdSyvY3SVZY9gFf6ZV1bFh6317TRehUP3r5fm", + "/dns/kusama-people-connect-0.kusama.io/tcp/443/wss/p2p/12D3KooWQaqG5TNmDfRWrtH7tMsN7YeqwVkSfoZT4GkemSzezNi1", + "/dns/kusama-people-connect-1.kusama.io/tcp/443/wss/p2p/12D3KooWKhYoQH9LdSyvY3SVZY9gFf6ZV1bFh6317TRehUP3r5fm" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 2, + "tokenDecimals": 12, + "tokenSymbol": "KSM" + }, + "relay_chain": "kusama", + "para_id": 1004, + "codeSubstitutes": {}, + "genesis": { + "runtimeGenesis": { + "code": "0x52bc537646db8e0528b52ffd005874bf04ce0e06b71250106878940e68e5085853077037f7e0ac00e39f3ce5d32e68cd9920c41d6c0ef827f2d41f397370f8585ab3819e905b19509709f6cc0c0dc5faff31c72dca4555fb9fa2d2f837217befbde59652ca94522e14a311af113edc879f1e0f12254a64c3b592d338129b6bbebe8f07891a4ac439e9e448e470ccd7e7e341025222a851a2f71c5222e896e6441a257a740976a2e7394e7224682891c9e43628118d976adc8613d9a044a6ce4d4e64c3332ff90d5fe71e0f121725babcdb311325d2e196bb8eb7e526276a375122291d52a2cba113991c7324a29f28518d1ace51226c52a2e9359813d538468934cd8930b7f119083da34452fa4589344a84e39743cda113650e29919c7122e93c9c3a11744a896ad4701a4a44e396e53994a8468ed358344e9dc8724a8972a696e344b3a34ba06628d18cd3d0b8cd0c0d8d0ef7ebf21c9cebc2ae594363b241d2a0d5f3b2a13d8c46966a64d6cf442af5abb1a0062f8b0693990d938d575322c96b4e0d83160d29833666662259fdfa2ad5481a4dd298b4a7d303625daac11c45a2978ece8c09d3260f1e4ed4ce83c7b4614387d3009fd390f5e8e14497f7e851635925d7e13cb2cb79481a6870a21aa741878657a281aec37b9848dec3514e64c3513c783811e63c280f4739d1943a3a588deb701a248dd3d03a3a3a3d9cc8f21e94484787a4398a521c27ca1c67ba0ee791e3386e03e53c9cc8e43c68a06187534a44833b751e4e74b93b11d4d1f9cc4c9b5c87ebe0e0b8e7e4b88de3b8e33811c9719eebf88e13957c8783dc38ca894a8ee2ce1de53b4e64c3dd899ef3a0e1e64687dff0f01b27aaf11b7622cc6f9cdad8b8e750221c4a84e3ee36396ee34499dbb01349a74e831341a78177e83891e53a9468878eeba0443b3c27c7697022cd7538d1f41d4ad4a3877794c88612d9f8cc8cdf50a2d3c96d28d18dcfccb88d13d1b80d253ad9f8c98932dab33bec9da33ce31c87129d28d1c9713ccb5c87135dae831271ee3a9c08a343ec0e3be72827ba6811bbc38ea2443de812cc03734a89aecb6b50a21a8e51c79c68d21f304a74617e43892ecfa6674e54431bb03bec374e444315b03bec3450221d1adf41897450221d4e3b4ae4385c0725da2c4821c317655e0006144cf1a94982124f8451862eb4008924f82051e33d6f676dd0cd41f7edace3a0fe76d64d74ee0e7b0e4e8ddf50221b1b7ea244aa2058a1852e5e6a70033082e053a372c1114e38c1164d208397287c6a9ca8861295287783ceb7b36e83eedbf1412bead749f4e4441a156277d84d9488862ec13e48685e8312957c862e11c4070992739448d3bc44895434b892c6151a9039630b5ef021ed13c658318313b880cc1664f021391189125934c8464f6f675da3fb766ca035875f873487a64976873da344185d02e58304f48b12ede0832cb850c5194a1883039f4997701f24746821061e10c1094994410b3e48b45b4e645122497d77d88922e5dece3aa4fb766aa035c8af3f8ada1df675d52bead10040420a24c6d8e1faf97bfede43428a7fefbdf724db1d6eb580e189f74ea13a5521d7a9769d2985ccb76b9d7adfecdfd3bb3d0811d9ef162184617db7eef71ebf4e6b54fb0f8ebbdb731eb3cf678a63841d3abfcadf8fb98b6c3fe366eed5b64266a72aff731c382290ceac35eee06b2be4098f7921eba3d428654fe3eefd16456a613e8a465a214fd8e8850ef0ecedbb1d8146bc15e18c9e5d337af6f692edcf4ed5f6e7dbce5e5ff63a1f5cfb3bd21ef4e86cd47a02b2f8bb05054ebc2927db1d0e7a904ed59943a72ae79d8a8e43a7e0c71250f9e8399dead4fbaa7d0df2d1b779daa76a5f4f1f9deb547b7453f4e85aa7d8a3af4ea441bbfadda162662919fbead420ff3ce36e3f638d7f60a318ba6f47a05b7436ad43efd92f37752a9399c4305a31bf1c935aa7a43fe73a85f9f34c76fc19d66da3b6519af346a41f364aa355f3cb65b7af7543ef31cf48b2dbcfba7dac439d9e7df747cd7976a6d5f2e8cfb3c76c75fb57370fc03ebba1f8cca66fcf366b6d3722d299d6f9ecdbbd6de50c7bd5fe7906b785335aa3741af5dc726f94057fbda77bde76dba876d8557e212e53a64c99afaa5f975d1d7abfce7436aa9db79fa591728d6aef69cde49d5a7f8eead47e4ea7fc9ffb5821ef9f579d7fbe3a0fe32845b63a956bafb377dad7b3e5c105e1762545caef6a0452be96be5d00bfab23ba7c6f3f4038f6f6ed94e5edb053cfdb67a7f6dbb3de7e2cbadcf3d7ed5b1d7fc6dbf3ec75432cf4031b05bd08f7cf7953c06ea3aaf61c69557d9ccfea2afc0a7de8bdf4dd7ea2f77496ed4644d20a5ffa74ababfe96bfaed65a9f1043d422def26d94e53d6f764244ffdcea6ace43cf5893ddfeebf6773b023f7642ef9fc36e1bc5bedbcfa3b051ec4d83b8df1d2a8b5f12d9768a977f3d2b6da7f6d7b753ed75fe3accb85bae3dcb5a63eef9cd4c150efa73f6de7e982ed7feba6dd4f3acb51b2250f0627fecef06e936aaa777fb818d7a3dcd1b0faa6fdfed47c5cc6164ab53fd9f678be2b2e5c16da32af7c3cedb90228c8c8c8c78f6acb5ed14fb3aec54fbfa6eb351cf7b9a3bad51cf7f70d5f4cfdba1d7f9cf3353a7b651ebcf4f9de27f9ed329f6e7196ba74eed3fdf0d7651743c14d5fcf6f94d718cb4436f8774889f296cd4fa6e45d89bd676f69eeee9d579cdcc854930c5eeea88d5b3e7b00efb9f358063e7df1ec0fa6ed9f2c055eddbb54eed962060f1ed5ca776458229beddd4a9f5f653a7d8db735807fef6d5691ae4bf3b54cc06c87687db951154bece5fe73ab55b8280c5afcf4e2d1746a8f2eb5aa7f8d7b779d6a79a7e7d759606f9ef0e15f301b2b581abdcb3a33a55b567673f75aaa29e9ddd47a7f8d9b94eedea882ccf6eea543ffb360ffbd49c67d73ab5cebe3a4c8382fcee50313f20db1edcfa5a1c19e6c11963601c18b82f7024e098e096e0a6704a704970487052b811704770467046a532a53394d22899a1548612194a644a63289d510243c90ba52f94a2501ae3e1e0dde0d9e0617957a6131305f304138ae902ab05160b660b341f6859683fd0b2683a201d411a02090cc90b2433485a20298124464906a518949a2895a024456906a511948c2095219d818406c90ca432946a50a2c1b44296850c0bd38ca9452626fb423626eb42c6856c4b7684cd0c5b1936326c64b6316c62d8c2b08161fbc2e6858d0b9b199b98cd0adb14b6305b1436286c60b62f1b13b631b6246c5db630363036246c47d8bcd8b8d8b6d8569b10b6206c40d87eb061b159b1ed60d3c1966512a1f4040d8b39867406090c243290c890c6401203290ca5284a30289da074b4254132a2a4020d08590c4a52c8aec0455192524a41c9a8f404298d9213251464514c25e610b2176429d0a4c8a46830b219f01137c12698623805bc02a020802065a1870420c087c8909f1e03e8b080220a4891be30000104a004859911cc1c3163c48c1157863b03970687066706ae0c1c196e0c1c1938317061e0cee0b6c069818302f7857b02e7851b8313833302f705c785d3c21581db82d3825b7130e05e4001ae89d29852174a6694b2509ac207a204712d201161bb62a3629bb28d603b82a7601cf00dd8068c85af700d98062c05cf8065c031602b1c05c3805fc050b00bb805cc02aeb2e4c540ab42cb41e98b768312985218ed4883426322db426646a685ac093764342889c9ac6450642ec85a90b120ab92ad2053016606ac0c9818b82e382e382f38227047e0b660676060c0be80790133834b02a7048e0cae091c13b02c6058c0c46057c0ac805501a30216052c0cb6050c0a1818ec0ba6052c0c5c181c1238319c1338305c16b82b7056e0aac095c151819b0227052e0cc6046c0998185812b02e18181812b02fb02d1817ee09ce09cc084c84e702cc0b0e0b9814302e60637066604ac08e803d017302d604cc0b460636068c0c468627059606860656063b4366941d9119c145815b023605ac0bd908b032b03199940c897e42964436a58485d2164a5ac0bac0b8c0b46045c0b6287101d3025b6144c0868009e1f100cb020b020604ec0718167d04cc07580f301e60576056603bc0748065c1aac0728051814d81e1a0a180dda0bdc0b0340db02bbd05ab0146034c0a6c06980cb0186056b0283018602fc05c804181b500630156055b01a6022c055d057b02730243017602ec086b02330156028c0a46028c096c096c4a7fc192288181218149c146c03bc08ee0a0c08cae32dc09ae335c695c685c66b8ca7091e122d32fb8c67089e10ac375c60586eb0b9717ae3157172e2e5c5bb8ccb8b47065e1c2c225e6bac26585ab0a57191715ae295c52b8c25c51b8a07081b99e7039e16ac2e5e522e362c2b5846b8c4b0997185712ae2e6fca15c605c68584eb8beb0897112e2f2e2ed796ab8b8b8b4bcb558487c4b5c5a5c5b5ba88700de112c295c515840b08d70f2e2c2e1f5c3db878705d715971ede0d2c195e5aae2cac145c535c58583eb06970d2e2cd795ab060dc545834b8a6b06970c1e0bae185c56ae282e18b40bae175c505c2eb85a70b1e0aa72ade05971a9e04ac1f5c4e5c48582a7c47574357199e02ac145e522c1b5c435a5b35c4a3010ae242e242e29d708ae232e233a8c56c23c432fa19930d398684c334c32330cf30ca6627a616ea114c6c4c28c9479349b98269825985426092613afca5c624ee1274a5778573c1ab4142c8085f1a0782db8be702a28598143019782c7c45be219f18cba4c9fa1d36834da0c5d86264393e931b4183a0c7d4683a1bfd05ee831dd85e6426fa1cd682d74161a0b2da6afd056e82a74194d859e4283692f4d4627a1c76831ba0b6683d6d25c349727a573d054f4148d83be01e782b64163e92b5d839601a64457d131682b1d45c3a05bd02ce815644af0105808ef08ce827fc041602cd807dc03ce01f380ad601d40f100abe089100632f00357820948c0480d910a19ff7276e5ea0704458906900ca10448082448327e41340142a264484910489060cb404c34a064a809111b40320404d09325413459820489cd8f1f9a16485a1670342c2c07966ca08913a02125404f8080b2040a501320223a9a18209038d94093224c983841c01010404c983841800dda1582685660c24409104c98284140158418e240132026652c10d006903819423224040796007960479bc24261b244c910501048808036d0438bc23ad9409325483ef0048808a10f2869806b505820209a38698244099225433c10104d9c3060a809114e8000e27168608270020450103ab4272c940f0005218102e50340469a385902050a10043acd09eb812543fc13a0a0274e2670a4d3bc2cd09092209630511205091011404438c087208038c001253ed8a091b150828000120208252c94a126404f808468b2c435319a2cd9008ed665815802a5c9922743450021f9009321865082e40950104c9610e113048413263e395a180be546f3629520c9d1b66c079028195212849221a01e66342e40b084899225434b9a2cb1a169b141403861a2012440434400015404500d6db5404f9c2040d388b04d9c0c41049220982c214203489a280102c992217ea809500738000481208082208209104d963489809227447c0f6d080b0568c9d092274e84182242098d26846de264c990922744048164c809132848960cf14a9e10f136bad904abcb162818e15795edcac8e859f56c642c2396c143b00567666666dc216fce63e67d3d67c62b5fef3ee65e69bdb5aec75956a6bdf8369a2e66194d6bed63b9cbcd2b795787ec850fbedd071f678fad66f9e02e7cf10017c7ccfc9e65c1f776a5f560c3edbdded32c8bf9ada5bdbdf6f58bfbb46cb9d7b29697dfdc7e72d9e265ed69d6a5599ad597d4acedebf5f526ef3e299f25e59cb3b77b3237e3e00c6049b9da6559ef65f0b1f5981f3febbaacf7de7b6c6d05d876574ad92bd7daf798e7e465f97a9b9f0d66b3186318ef62d86218b6d862bb8b6118864938574a29e74ec96bd5d448b9434dcdf294bbbb532e64b8524e3833b9732543b82b57c296dd4db27877b775e0ad79371273f74c7c2b44beed8ebb52f64a295b6ea97b7bbbb77ba55c967257cade96cdfb5e33491240f6f2ebe57d9b83e47d8f59cae6e6b74fca96bb7399e7cec9bbcb524ade65c97277b38ce53e9ad5c1fbb21b6f27cc78f6f15ecc248b997b9b9bf7edaebce65a37fb52ccf0c696765f9b7679003870b65b0ede1c33cd52000190cddccbfc76776f30377397b6be817737e3e5c9cb162fefe320cc8ffb35d7db4078e5f6b398a5b5bb26de9d6b69bbcc9c6d2f899744da98b4bdbbf5e47d00789377b9e76eeff20f9e73ce655e669ebb4d9252ca4dc285737b77e75a1bbbb767b7157997b97b59f27277eff2dcdede5d5edeed65def97a6577afd6d27a5a66bd8bb3628cccd6aee47749292533c3d7d6aed59a7ccbaffbedbe65962ca5c5524acb87c599b44142c852c21bee9692e505f9a6861de66df91ef37bf17a39cb2be54a282db88f5b6eece6c870657835b63ff0c44907803a206fec0d1c70c20409079a2ce100079c30b129394d114041345982a4c912254200b1810d38a10260c264495010548f1e281e281b3e6cf4a0a1069d20a520982c11020824434c8850b201a020769e281982d2a304c5c6e6260808251a60c2c4c9931a7628017a7273020a4232540450931c401cb0a9016508ca92228072e210104aa03451f26408c9d0920e74c009cac60660c906809e0c41699e28016202044e29882640430ca104091007943c71320485ee0d434a9e003501e2000ddd0660c88993274882007a0214c41327404b9e0cd55004901039341b182202c95093254f8638ed0d1d5832d4848827488080b2a40334004fa0e0ec0d1fd8c0922740519010e086010c20004100edc036004100418102f464880e380102c913a0284e80007a82440994208000427243506a00011802082028489c0c0df1812740f0e4c8210037380e29244538f1c0108e1aa9010400490080829430d100120e345922041425427803013dd9404e9426406fee0d489a385902e5095014241d40f2c4c99012209c3061a204c950114039a234017a3d3422f4aa54aa2cc9aa5458925549956a1615a9649222de242abe8a8a8aac22d5ae4aa52a7a49b68b601215171575d14b52c4aaa2a29744c545aa4ea2e2a24eb2aaa222952a2659d595648b5445aa57c42a4e52a42a52a954f12529e2a2a24eb245aa4eb2459c44c5459c648b8a8a8a547126d9a2a24ea2e24db245452a15545949545ca4924954ac62554ca26295aa93ec2651b14a0593ac8a93ac4aa57a4956a5ea243d0f0abcbbdc01284a36657c1563bc007eb75461e5b3cde057a6156e57b95711156dbb5545f0ec16fdf59ec7ddfbd7050911bde5fbdb55aef2ed702bf21e3a5bb4f2c30afff2f5ca74a9dc7eac1fcb77db19afd24b5e339fbecdc3b9b5636dae0df55b8e3969a70ebdb73c9268dd2f9b26698dde3ebb992a5c462b167d7a6f44aa2ae851c9de171dea7f3ed927adfbe5a1b74583d8a547e7ad08bba45aa3f6615352472ba818f3ddef162abef8d514584a24af9cf46a9abe6991366cdfcdf22c6b8d37a60bbb88b3cb39aab8eaffa0f6b67deef689b820cbe357ffcc3b7561251c72e84ab4aa3ef3cb2fdf2de39f8bfed02876f8d68b24d9e5984e39592f8c45fb3032130c24d26d940838e9d594d3a9cb9f1371fcaed3290bcbfc791092bfca5f990906923195af43fdd8162ab2f8ea3b381557fc731d1fbb6194a730106875959ff443a3e09148ea60a338becfbc0e3ddfba6d5474ad838d8ab442bf99690137d49fd18a495af9a547b75016ad431d295d9db7f145832d3fd0327b87eb54f4e754ca18e383fc6e99420a2a9f2d0f8eb3f82d533cf1febbe506677cb6d96ad6768414bbca5fa3d7985d9d3fa5774bd77c3b35e397c34e95fca21777f926a1c70b6e447e6026e0f6d3a7463d6a6ad4abd1e57835fdf3996e1b359de3e12d2f3d92c76eebea7ee1a367d7baca547eb40cfaf31f3a05bd9da7b00efbededd0398bcfbab9fd808043b1d7a94d5a550fdf72eeeaa4f13af4be1d7a95d0af8ea6dbde617fdb91ec1b46b7ba2abbba5f1e52668281b0f7f40f9dda87ce4cb00efbd0e5f603e9724ce5b98e694440e5d32e82e7483caac4017cda9b1635ebc8b869555526d83f87dedb91e88f56e8915e910e3722fb57a6b88fa445980f15cfdf66e47a486b037ef7c7f5cd5ad3aafade47aa11f8d2f20a5956bdee2732d8031b3ddc8e702fe983ef41fa1e3b91ed36c643d7b43c8400f4cb9d90e22f083cf1d03727ae78e8d32b0ebf5e77f82df9e6bb7eead4f4f51cd7e994e6eba84e5dbe1e24874e5d1d8cf1450bc3ba7d6b4ed7f64bd37b1ac748e6127a96917cb71eb20c23656e791635df8f1a1d6279f488b9d5f147e99156fe4cd3aeed08748d0649afd0a1a8fef2b91d81a27acc832e879ed17a3946a3ecf652bdec36d73a158e91e89b47df1ca355f558a99b8e056d0ea3973a2952a448297912bb3730fb24b17b437d7fd1ead3f38488bed4adcf543d147a3f332fe0367f9b11e897bfadc8f48bd6cd27c5b93c73e9bd15d928ce458d686eb9e69643cfb42c48eba1358d3fd27af9c41c27fafef4abc3897488f4e993ee637e3d16af20ab5e73faf34885b84cf47704faa4d5f2cb31e68f1d7f11abb0ce9e3842e3b1cb19ce076ee16f516a94367e6d85ec2ea9b723d0c8e8d7797dfde7c9dcaefb0ad7e361effe900e9d3bcbdbdf3684dda2d5278e118bb263cf31db76ee60a35ab6cbed08f6ebd80aa90cb723d9fe685f8aed8f66a397ddee8f6e23bec7436a6a2db2e7afab00c70e8170757e734c58e9f84d15e0d8b79f3874156479e96f6a3f2499f20c1bf0430ab03cf8e5a13a85233d7a033a55757ee854452511a253f5b45c78e814efea09311fb1e7727ddd2f657cfcba66f0449f0aff71fd91a53fe9bbec43f2975fa753425ce6c9fa907ce9bc1941f2edb27db9e9ae0f7edb0f7bc65d90dc7870de86bce76c85e0a51389400445b3e8a56f57150fed4193d6e7eb550e91fe8cb43f2a02ee9e67dc6de4394b6a844f9db23c7ace36e1a0731abf5b82800567da951365bcece2739d5ae9d1b3de7848238d339ce1772bb33ed665c7657e37a3f5d146463c7bbf31d7964c88bf358fde1d14fe8b06b15fbe822cde86df2d529ce16b7f74ee9ef0fe883e345f68cb7ce6bb0dd11cc332a618bfd655e9d1af6e3d5b0840d73cdb0b70bb5ac117fffcbabaa8f56e5d2f7fde9b11239a5f9e418d372256e657a739dc8ccc21d399eefe60ef69adab4d797fb05f9e75b59f7dfd8a325fe89dc1e8d7adae0eb14a726321db21dac57c24e3a19113aeabf85d59b1c17714bf2b1830f1a8dfd50b80f0ec4eb8b7c5ef8a05649eb5fcaeaa5cf13e7e572bf8f22ba48560bf0c447a69856c1a3c92779eaf2fbb943d5260617f48dfe0f748718505b22f696d5a8b3e4a3f079ef0b35f268ccb346d857481042a2f54fa28f3d99f4bd6617fbff657f9cfb3a7c5ad4886c6d15722681c15915f893841174808f342499ec7c0e0858a485f87a6008553145f87b044914de1eb1009a610bf4269020f6c004297af50b0e8f2ecbc1599464645de5664cb3c7bdc8af80bf14bcf6467f166247ad35a03a397de6e6d43a443ef795d556f91f1158aeaa55b9dd0962953a6551dc5060d8c1ecec0cb77df7dd69ad54532be3b1dcf1b11ff76d945b101e9501b71e9b10b6a979e75d71b112e13dd8a14a708f4e844a0473a94ed4a0a347ea8dfa2b53d0a7f74d5771fbbee7b28fbf605a38d56cb8f10347a1b066211bfc832967560315f7ebd99677dd631d6011afd7a66696f1bb25fac39e7943de7e339238ac49ead40cab35bced0b3d8d16fce98089a5b1dbbd60559cefe36229611cbd9da26dcae9a78e231b79c8f70bb92c28cc75ef32c7b1a6f4466bd3cc8ea2ae69667568753041a19fde6f0dfefe656d7bf794f5b5adcfd51f276ab2379a9ab16dc86584ea2dedb10cb39ef795c8763c472925b4ea21d8e11ec2dc7dea237fb034ab7bc3de31ecffa40b73a53a3a0979cd4edef8faab9b51dc15ef39b15023d6e4770f607748dde90481d1bfd6e44d8e8ca8cf734f7786628ec1de8b044ebfcca05598e79b57c79501101c330cc7b3a831a6f43d8adb715b11c0b22ed0fe8a5fd018d1eee0fd8010e1a19f19b6757b6d192effeb84a4ebabafa3e735246ba32dfba27a492e63d5dd29c946d9a5f9946777d64f47afb57b76e55f695946bd473faed5b5b54321f38f8bb32411a3e70f177650232bb3f768709c47cceefca045f3cf4fa283f6fe8107a2cfa17cb7848855e99323088096db2601cd547d9e56e47168ca397f44a56f43576b1c98271f4d12b085e46d9a40052561fe91511144dba45fc73f6ac61f77cb70a5c1141d196e173f95e31c251021a3c61e5090d56aae0623434c496f1578c8090b1855194024859155141f0f1882dc3e7a2465b860ffbf32b4637a0a0831160c1c8c867a9088a2635820e691de29fcf48010a3538831423239fdd7aa0f9d8f206d9d1b7aff7f8badbed03ad902741fe0a74d55ac19f2fa4914a49e2874ff429343e543a65faf69b9923ae32f9f5205f4d5fb70a0d90123ba6d2a8f6ca55a6f2ed75abf0ed44d0b9b71306287c10850fb2843132f289febc72df3eaf33823830c10c8e9081107ca424f1c3e7f9141a1f282589f6913ec5003ecf6337c5003e4454f8f09ca8016fa7fd75f9f6e84454f8203d52a29eb7d32e2911153e447f94c8df4e7ba441eaae56cfeb76593128e1c5952d38e106521063c6096e7d5429f84208308081165e7600069ff5815e837cfb6e3eb89191cf732a9deaf1edb07bddbe9da3df1d4550c50da9781076d199ad18ad1823ccd9f87755822d3f1d1dfe087199872e694ea322840f7687f17c5748f4f52c3e7ed39ff427fd59fe7ccae74ffa7b2f935a60ec56ceb44b67e938d0f9fb716011a4c78ee58c1d3fec76f545e5fef983ffde7b3e35201cbb9c611f823df3eff6d36f5f371fc9a467196f3f98670eddea34df15b279f46ceb545f336b0bb27c3debb2df5509ae78b83f626fd7ae75965f1d7ffb76d3b56efa45847dbda727adebd3b3ed6ae6ebd9d366d79bf376fb5b17343d28f376accbdee5590f9a6799f3ae1014d56f5e3d608634ca3c94ed82e509267ea33573cc7b5e96456d767d39cca436bbf6dd8818d1682de22fcf3cdb8dc8d2ea711b8239e6cfdb4f4683b021982fc57cb722f32f1a34bdbd4e23edd3af6ebf5b55c63009d9ae10e9eb31931d0e8d8a3e840fd2a8e8bbd59c8ffe760342d3729a07f3e83bac10df1fd3a3fbe814d7a8797974acdbde99aed33c13e7238fa977a6475f28bee2f0d17156087fccae2ea751d3dfefaa0441e0327206faf4e7bfab124cf9136fd3712c7fdf8f6351212ef396efaa0458fc76918319bca9e38be6346a5a5ddc1febbb41d9f1bf2bd923f268effad8ed48bfaef24b1e29984ba1e2f9e5eb597675bbeace5a7bdad56d18a3b8f100b723ef9f63ddfa7416b7fff902544dfc3c1264c730a0e7a7bfcd4897def28c548b8e58eb4d013ddadb14d0f3d37b23d2e4858adef2dd8a685547f6b4de16a08ae2a7674f83db109595174af2d3b36612a91659591f99a5c9cd9a1a36af6e7db24bc3baf5b9baf5e9ad48bba4959bf7916ad1effea8bb3ac1132f1debb8ab7323232323239f22d01f7d9b5011528e30c2e89f6ca3a44b5a5f6f47a0bf0f7a1e7d3705ec5b9488d30f9d5ed2dd1ff539bf17c40e3b1c23f503dfbebfdb4f7b4f17b54a762433c9f4e03a9daa409ebdea3cbbb562823bf540b262c50496a329b6fbc13280db9509b27836fae759697d752a1b7d7bc6c3da760ee082d8888fdebf5c8851e6f9d97b33c2462f7dbb28b008f7ebcf778554e83845b08754a8f4eb4bc607f948eba3d07bcb7cd6da760de0d8f9a958e74dc885b87f34878d7e77a822b70db20a705906845b37d1643e7090cb56ce688d82be26574003c440390674e873eee3d9dea9dc577fe9d9ee70d14f3d9daa53019daa5c924e49dfa153f0a5ff70c54bbf40a7decbb75e5ee6f072bf78e9d07b9a8ad14b29a594be3a9206ed9836232b6239f40c76adc1ce826ef5349c97f734ecf8a74bbfbcaa2e3933ab8bc20fbb28fc96670c3bcbb36edf1f30c8eac1f20cba500ecc367b1aecaccead9eb4c29f2eddea5e435aa7b35bdef366b72f44f4ed6fb5d573d2d915366a7a6f43f837871d9cb40ef50b311abfdbcfe656572d8fc23d136864c4d7e942161a4694f928f3a7c3ae6afe3c76419847cf324827842e34a51c61c43f8922fff228d64351fd45e1f329648d79cde163ded3b31ff3ad137a8f519c22bcfae870fb89fe3ae83d0ff3d845e97f9e75f3fab886f047c73a68d1ca6ff9d555beba2ab5ebbafca2d37b9e94ef2b14d5b343d7e810e81f69b56810a442445fdfb317e1bebda7b30e96d6f470a0b343ef0e077abbe519ecd833de14d063393becb621ed96c322ed96e52cc4659e0c69bb1519a248929f3ed783a05b9ecdaec287fe2efa4468c71819fd508d9ffede90f6f3c81058f744e800dffb03fa907ccc6b3ff4ab7b82f990fce9bb1941f297f7f4ec8474fce558277480e7fd7175425ce62f9f5de58717ddf5017b1b121d3a6f3f9256d54b87dd9c1dbbd5edafc7ae6e3ff0c9cb58f34206cef88b9ec56e9f378e43568b4f562a9279e69986f96a8e697e398675a646ad5f1dd7adb367591785bff267ce5d14fe2ccb3cebe56d4862dad3591724fde23a95b9e5ebbc6525fe6cb79f95335ca3300ff29af3f6c3b4e7f53477953f48fae52b84dfea7c7fac739d0af2eb59c7356ae75b46a45fb4847974e89af3f600ce317a6ad4ba464ddba895ce9e65bb5db4aafe72ade34eeb2ae617462b7ccc33e7ee75e5d7bc2e404584dff5a1d18af9c3ba7dacdbe7eb794fb7107ccb7bbaa733d9d5e8ecb3c3612ac46fd11c2d46466fc38fb7ba9c46f14795c5110b19849d03b820e83dbefe6e090216bb426a908faa5804fb98c5e815d25af4d0ebd5c352e123bd327dbbe9b193001032b428e3b30ebb4af43088c996f1964baf451f7d57875d2075bba841981fe2b768932de3855e99322fe91511142d18473e931a2d184795e823add0ebf5cf7b1eec7a7cc6daecd677abc08271e4b33dbe8855b15b0c128ce9274d78e9c7b3238c559632786006349cf009c09626565ab444410a61f82c4785d31ac56efd7621052ecfcf99a0c2b8258b3138485096ada67a37dba87e10c28e7f370b644988e9a6c8180ade16e00204209982a1f734a493aecee34076806d5429e30270bb2d40f51052157302eae9dffa7c0e7daaf64e640a281eb7cedcb6b7c6dc7a6f3ca8beb6072d152afaf5e56aa0c414bf2b25a87c2d3d741b7eb76461c69720cc9863670e6e3ca85ef5ecddcd54c9def613fb69323a73ecb1eb20117ee93d3d3b8533845fbaa4f3d963c7bf3a9006717d447600f6f5ac14c4dd4c0b98e9ee906c9fdbd514343efeaea640f13b936d01b4cf4acc496ffa1c46dff64ee10c697ffea4b3c34ed5e841cfa14b973e3bd5922ea77d4ff7b48a997b906d01b8acb49dda951259fc73c8830a3af4acb403f7bc5da8e8a1103f6b20b34c5ef27d3b35780dee8f0709cd9158821d876f3b1235be6fc706b781e4482cc1be6f27314af9deeb86155a1246d8afa1170bbeed545b5342df8d56c83c3bf6335e764f66c746dfddae9210f3bbf14a892c5eca977e6943269dbbf041684929a5654108df8b7346191f8ce2f98ca50ae79cbe3cf343a3a49be0d4e6f663993a351dfa29675edbcf9c31c68fdb8f6559d69c3146eda18c5d85dce517adf09a741b15a5252b7c18a16469942d0ac63841e689299f6d126eb778a2ca6725e90baf688e75fc373355389c22d031878ed120cc2daf58744ba31be07695832b5ee7779583a35f24dc6e8182302f5d85751562d8b47cdf8ce55de1abdeda7eae465975a8ff22f2254ba7f6314ae44b9646ed57ce9e3f912f586491be4fe4cb149de227f2058b46ed5f57e619ad30c3e824f2258bd911f97245a3887cc1d229d5eff7b63d43e48b148ddaff32c56e46ac3265ca9ce12d4ae40b9646edf734273b0e21835d94f092a11184cba153bdf1f60384abdca9bd8374aabf3d87e6f1f69ee6719f7605748a8715f2be94c33df1eda353da6f14f6cbf39429508b63e4f6236687e6599f309263dc8ef1ed20b1975608104ed21c8228f1c5b7e30077f8f6ede8769146ec0d5b641076cbe54d8d5a1abbb93fdab3ddee46082e7bade7b55f2b64bf3d764c02239ee36255c6f71455aa90e25bcc4680db550ec47cfbaea698f2555be180ccd749808cc83e3b37eaf11b2063297c045777f5eb9b5959211a8e4ac36ffdf1dbe3a3571ca270df5edfafcf0bf375ce6423ea301f4f90b7135df33a33abea600ff2787e783bd1a746ebe4325ab920af43d2aae36b908f1b5cd30a69d8619dd628e857371b05a143efeec910b740e0a3a6fd01bda7e7e3b1b13bd0a3efa676511587875e7bfc88343c8c38b2a7bd2eeb2eca7ccb7f783c6cf476a2cfc971191bc56ae3a5d1477f5b11ff1af4ed195c6e52464dfb43728b928e75daa2a45fdd5c94f4d9c14549b7badd21264e1b32e143daf4ca14f7d9687c5dff051a15fd87f5c256665b58780bae9a624ea786fa1ffca1fe226d6434d4f0d921645e42b69d7af041ca8b8a21f8f6f8dd45e92740e27bd80ebf3d6be943f3797fc4fec83dbc97d0b3a8bd280d258d7461a7e06b55e4de41f48ce7f2f5f7b61fb8429e2fdc2b976752bb3ad83b742d6b6b00ec013ce6ae4cf6c9989b8d8a8dba3aad7762a67ab432d73115ee799d44b445597eea54856fd153a3a25722fab86bfbe949e76684cb942953e62df8bb5914a708fb73a6b051d11f8dd29fc324e0eae9a301a6b8cff4e8a7c97dd41a159d47c03d7f0d71906dc74b70eb59f75b08777f2cbff748db44b63cb839c4ad9632647ebaef98bf6477fdc8b7f1a07a9be799e7eb99d97785c4679741b439ab70d3afe972e341f5d333a849ce6185f45b960b4180e5996fc7726bc3bcb565bc199c16272fdef2ba498841706894e5bdfd5cd48714aeceeae32d9f97cfc971d77ccbe546c4797ab63ba3354a7acde12d67cf6185bcb77c874e3db72c29e1ea583468c744197cf9c70033def2fee29f675ab278cb5b7ae6d16bf42745b887d2fe60e65daad187f81f65b7baacb33a9c22cf2d7f34286bb75c6e45326fb7a250e9a1f81e79143adc8e58de1146e16f879e95a6679bf9e516e6703b223da351de91e8fc7c4bfbbb4d8a53c4f2e7160d921406b50ff1c721428f0af1379d18c31564ab5379f5704ee7f7b474cae2027f3e9f6f4ee7b715e138b54861bf94ced2d9a222b5ed54171ee3172e677233f25c46286211c69819a3cf9b91e79625a547e9118d151a53647b8129def209c55bcfa316543eba9ca93133e33a3934db105ebd45abc69379851f7d69cd3a2954d4e81d145d7ac66d46584adf8a4497bedb155dc68b465a2defef79da4927c80e0af021099322a41c418185afe854ff66367ad3566668d7bca16da782a4c76b7a074db7bc9ea4376f46580bcb729e5ca3d8ea3623cf2585f0f17624f1caea2d0b9d1919fda4bba80a8f106dfce745a09151947e02847de8f44c2b147a65d068a367fac4f2a1095d16816f15118191e85ba850f9e7aaef8d88ca9fd4ba5ff34292d07b4bd2657f5b0f91c2c9afb2b8cf90ad43ab5ba859decf1dc76c761805f09b61f9e39be9fc16532ecf3d8d627f0ebbaa82734e27b23f5df5ecd3926c75cf65a77a8eafcbb3cbede7d12f9e7dbdf84b7e5d64ab532fa387bef3577b7e5e82939e31c34649efe6f7204988cb3c4e91c8fe9e69257af68eb71fcb33e668324b769696a7d57496168b8bb56ad429c7c95738f0a28512be7ce9570b31a2f0d942600a2eb2581427b994f1cf39c3343e62293ca5797438743e6228580a9e829fe02a6c85b13c746d1bd26fe39986726ee74b879db298391ae7edc7e41a58216fc3a103b1a9b7281b0e3d09ebb00bc486435f1da71aaef436bccec77c97c7da1d1b8e0579deac6ea68a74de245d8eaf8d07d510bff11a5dade1d2337ece21c73173a451f839dfb6219ccfecc686a7f8f1c029389cd364c7531a0569b49a8ea7304b99c2953c3a94e2a11459201670d5a99243c752e1140fdd7a5ee1150f7d2bcce2a1cf28c1d51dc346071b653977b35196732e69e51adb90fe1bba8db27084f82d8f025fba50a97d3bf25cd228fc16ad9cb3c76d087b10e7d36b6c448224c72f6297e6c9e1da8d0d76d9c1a31ea351d07574eda577a0674fbb40a7385aa5730e9d66231264e3439495e0ea8ef1d06d3a78d4db9020ce250d1ae287541a053d336956c70fabc8d3cb1baffed2865754950b568158dec906ad28ce2d48e2299dbae1d0339b68c1671349d6a96b2e8d829ea3eb2f7a0762f9cd6b8761286c745ca5e327a690488e036e43e25b94a524c1b1db703845f348a1e2463a740845a79ed4383c397468054ad1291c870eb174cac6613cc3a6bbe1a70efe4d772587cbeeca14f7c9e1abaff18c87dcdf50d955eda56756169db24911f13fd578852fe74b7f36b49ea856f3b609a3dc380ed9556bf5d05a7de1a58c31161a539eb03205165aba7c1133cfe8548e4e0a15f2e6c621174d4c79e9393db0dfd04a7bb0b0a8269959da8d8edbedc67bbab71f1bbfd1f5671207dd055273dc46d1e7e4f88d1ef86b3aa122a3b73c839b117649ab7f8ee7b84ddc8c5858340abaa415360afa0db5b26814749b6e3f6e8b0457ad2b1e3af4dd6cfc6d46d873688dc27fa3e3df42058a26aa60920bcbb34cbbd1edcfad0867b90db734c6b4de70a84d4764dfc66fbafdaca35623c7c78d888e975448c74bb7e9f89b44437ab81129955efa0dd7d888702fc46386f80b711829fdc6b38cb7a76bf4a379b2b3fca6ab5ce66fdcda88709997d26d78b60d91ce6eda8cf0dfe8f86f3a03bcb51139c04b2a74809736fbb821c98642e98f225f7a8d0defe92c3ac50f9ddfbaa253361cba8545a7d8a15b59746a6d74346eea20148db2d228e8335de59ff16c462363336666c548df15c21467c6e1c797cecb93e4ed40976e05a1a1b00a4be1ea86a9706e472e2ea0f8e7ecbcf5f084f86bd4f09eb73fd3ed7375bf78e8a4aec28da53c74adabda5758a59eb0ee89f575c3d49cafb0ca439f49a2b3d729bd72d68679e83f74ea39741f2ea0d33cd013c0c36a0a2c4e1f73be9ebee63c645ae747afdce7742ad2ca539e1dba11b58d9efd32ba698f2263eea8517037a610c6c85d3bec58c8fae60ef3dc653cc7b8fd70116f41e89635f721fb6eb221540103811e9d3b0819aa8081b04709692da29d3b58a513b260d711baecdf4e9b1cabaccc56a7c2a3879ef1122d8575d8325466e277c9d4fe6a8087feb0407d7d55827c7d55eaebf2d05f9576e8cfcbe381bd03fd74e2b82a33ccc30ac59cde189d470665f441bec2290f8fe0b6915821bd2d60bf0ec1df588b9b47cfc9f1de7e723ce36d4bf2b68ec6779bd1b74ef53431d653fbec5ea7994c9af734971b94c1e5b5777fcee521c0ed961c60f1d9770eab5821c6086ef32c9bd1789bcf37efe98c66fbd968687cce9e369968684c3426addb9f9a6fbef96e26cfb66e3e676ef3b7cd6d9bd3b74ddb369f5d555953db9f6eea367f3fd3b79fccb9ed67f39ce6612ca0cfe6e18c8c8c8cf0810eddd4a91c877eea14c92daf385c5e7d3cc4bcfa57f8d006adaab7e1b3ab715377c369b81b1b936b9d9a3e3b65e3d3b3d769dc366a9a16b0ffda8c7f9dc56ee2a0711cbe9dc2e11556a981eb6e5a8722ad9cd355fe1cafb11dc9fecd6c4474784edc8f737f3aacd2a9e8d3b9ed6796aa3c1a668038003ccb1eb5715357b937cde734269ae73426ef79269b2ee8c68bfe997298bacaf0df741b93dbbc87e3932607b57193f7345401eb40e3f3f9111b5afb6fdc69edc7a9b0cacfe78fde7886e36fbef71e8edff87bef864215d0ca8fe3383e29ce8dd3bc2a3bdef93e9e1dbe8f8787fff0e793d622cfa73f9f34366ed3cd54e14c7ef20aab3c8debe82abf0ee73622eeb3e434feaad8e06387d6f94cbe43f34ca48dc8f32093fbf6681c7a7b313da7d9f1e561f21d26da695c706e6eba7d9cae7ee0a767cb8dd34dcf368bdaa434febacabd8a68bae9991c3e31ddf42a9482a60bb2f1a27f38265a556ff2d7cd93d3387c8275784e5321145f4f269c9e86db91da6fe339dcc64f9ed1b8c9442bacf2271fea9f269f6f721a37996868d0741b37f9a9674c3e63a27508eed659b97a7a93ef9a7cb722363e4ddd848fd34de7ed48fce93736f4c12718c8c9737438bce7e9d041e151a34eded3581e4f7be99cee701d1e4e03ca677e38105a513bee1e048807d90142dd33a891a00a70f8694edf4eddcc49eb10bc9969015787e08cbf83063dc7e1d3ebc9b367e4f98e3bc571dff193b797c7d358de0e7400d08afa412b8a7314ad7e83f3a0f5e43b68e5a8775e02a0e33e68e56ea0fb7668701b683d4d3fbd9d1e5e03adf3b9296f073ae73710fe0e4779ed30bf4367aa7043f13baf43f177f8c971b8b611e93c6807adfcd37978b61dd1bef337658737fce9285a3bcc9fbcc79bf2d01bcb0e87dd741e3876380d8d6587ebd0caeda07528fef493535a270ec7b61f1c2fcaf7fa815d9e7d3b39bc9e7e3ab73c5de5edc0940e9f0e3785e3d3e7a6687cbab629934f7f5b0f38bca34331e37e4daa21f8f7b62211be17c9b679eaa90c1baf2da6cd88de613a75e3d1a10a5807fee8a48e1f1e756a3f7a4eb7bf9dd2e1d161a770684c1e235d0e5639794febe8984ca3a0e3748c46a3a0d3746dd428e8a6aea5340a7a57a9e1d077d23abf86e7e82a0ffd54e5ebc971baaa7a1ce7ed07c7b367f2cc447114b06f7222fb263af302cedfe4aa7f5de5ea3fddd4d5e9271c4ee33dad7a9a6e283e0e0a55c0404edef34e5d749c2e2792793cece5ed408773d6783bf594dddc78c6da4dc7efc58b171b32361eb71b2aa627e13e54d8649636b721d377854cbafb63fa8df3f673f33a7ee69eb397e7737a79d3bd3cf46b1b62721a67ee394db7fbe3b9a9dbfd216d66aa70363efd713636feb61f9b472b13ed4d3ebda6c6fa534dcdf39e3e75b5e8697cb79f77a3dbafe9b65137bca69bbe1bcd8daef27393cfeeb9a9e3290c643a4d57f969bcb79f47d74d4eb36f763dcf4443abea697c764ca551d3df0f0d15b2dee43dfd3a93eff663a2f152c75baea8c25bc933de7ea6eff653721b5de6b3db2775fba64e739a6ef3d8edd7e82af795c93cf499c6f2d0b9aefad757e5a1973a22fb1be97907bbd9a8c7584cc7689ddc73bb534f3f697352a8d82d5430e52d5a4f5f198b87fcb15bd8aa1f1d001d5c336610c2ac0baad29f173d43e930839ef5b348b1e7e559a6b9956534cb2ed7ba20ccda32cbba5cb35cbbb2cc7b7ac330b7b8cd35af25dfae9eb97cdbe845a16fa4adb90cf35ab232df9cb4d1aa6597e5edd8352d5a9f4b2d93a0832e927647cfba75b0d241151d4cf900fc6ec9324677fbd6be45dfb6dea2e5fd7e8bdb10d55bf0ebd2e7727d5bdfe4b6be49ef79b2fd7541f0bd64df3697f2bda38d0abd67ae9bafef16b7edf46246eb506f9a47af4df22d48d2ca59bf924be7e47449a2439797343af43ea3d1b16bd269d2b6b6b05831c5d7f0bbc58a1d8c7936c1ef161d84f9ac343b559fe3b4ef5bbe9ef93a73d3b34c52927357b9670cc318938e415217542f8f5ef4922fc730f812f6bca3fe4885de57e6ceaaf067a657a6f2cd4cb8f42c2b394622612412e63d0fabd24b5dd0e6fbdcbde748b4aa9ee41877153e4b2f615ea2fbb84a12157a4ff29ee6ba5af441ec9bef766473cc7bdabde4b5867343cfe231459257e99c9bbaed1d8eca195af7cb4fe7a2733474a89f4437af35e8503f4649ce71b496e8503f9324e6d037a975b03ba23d46eb35a98916792e990906626a14476acd208b962c507c5682ed43fdcc5d0eb03cea774b0e8cb250f91ebf5baa0836a72c59b264c952636464646464f4ed377470308d21d3463d8557930bd7e5e465b55aad56aba3a3a3a3a3a317264b5bc992254b962c8da5b33416bdba3166cc9831636cac56abd5ca74747474744453234b962c59b264f9f6991a0640b3e22eec250c1fad56abd5eae8e8e8e8e8e8851943a68d7a4a1f7595196eb55aad56a5a3a3a3a323d20bf3c2bc302fcc0bb30149d5e0a35985ad60c99264b55aad56aba3d5d1d1d1d11173e12eec258c986d0cd556abd56a951d1d1d1d1d1d7d3b26009e99242b66c9b0111c3366c547abd56ac555d80a63e12c8c0576ad56abd56af5ed3395031764e6c0ad4e5ce098970485723f9d386e8ae1c69c968c1bf194c99d7cc231161c23e19808c74038e6c13139680c068e00a56f8f56de4e4545af7ecd1cbe7ddfaebc2e17afdba57da395c713bbbc9d768dd65927462b37693d495a3dd2ea9056d43f5a515fa395df3e76a14200d29c1c773ab957d4776fbf543821dbaf673a68dda553367e3dbb48d1173e69943191311e841042ee1632c320dbc74385742aa0cbeec95b5491e8c3f5cf033bcf792b72f5f6c3142a8472f8a0a1f7d151aff2b15c766b75522c4f820aa11c7ee875b263bea1aa5ef5d27bde5b9fee64578b7a3342134991b23ff888208c2f76bc3f221551faa1cb08e9d2d8308a6c75aa75f4ed99849af6ad69dd3ca8de696fcfdedb7e508d6a29df637efcf8794fa3fed12a3dcee8a35393f69be249f1a0d8bcbe27485e1f957f5ef2faa4fcf346a3795e982643db2b9397259b9d0f1d26b8e95507d5a87e615e89d649a295db683d69b4baf48c56549030df64bec22a37fea20f4b2f31c56ff4de975252262fcbbfaee20a14fc8bef39a48f3679597e1bd5d3cb5cb847b751d6d1ef0e1589e518ceed8f757642b4acfdf12c8bc2f7203f0ec6c752c6f8de7b48ab073e760e4dc841fb48f70a19c4e2d9a79867b75e956797cde5d9233b642ccffed87bbbbb77773de3666fee5eb7aac8fa7472d7119bbee70ddfb4de7b4df9bdf71ea4efbdf7da3242865dbbbb6bb58c70777777775dc7fc7e5ebbbbe7dbe1eeeeee7e2c23715b52c82e14b413efbdf776b7bdebf6c7ca084d269a1cb8e1cbe1f7bdf75e905ff6c29bf5e4f71e86f990d68307e17b5a1af27befc517e394c82088624418e9ee0f0c05199301b3fcfaba2557bf1ee1fa2383c9a80fb3ec8f1dbcf7de7befbdf75eef73a207f3681ac0d0813b22959de553c79503c391e56838db0dc9a674e26a666ed4984ba399341bda0dad463b69361a69d3b06b5a32c2d773f69813458abe29cba7b4501fe9bcc690b9eb881c5782d37af0f5b64308e5f7eeeeb64308217c43bc7c77aac7130c6fcafe80fd04c7bed2b3b7373ec246c986103adc88d47ca4fdc0c83a05dbdddddde5d7dbcaaf5b637e5daec775b8feba53d0dddd1709a74885f2dda551ebd695ac7b3705e1ebd5217a95524a19af48bf323ddb3ee2a0d08533bdcd8736f2999eed16f7f15c74caf499de525e995ea55b9ec96e364aca6bdf4e11ffa25b746631c6a0a1fe47a3bcbff281e934df9b0fd0c888371fd8c8c867fa6e3eecca67d27d64801042c9a79343f828f7b0f441d01f7c938777675a2fc58b5a8f10f6a3dd04cfd9a9f50c76b35116097aa410c2267677d7fa47fb096ee620cb98fbe94216980bdc36aa490b82aeaa4cbef71e6f44c068e9c84509c87c017eb9a0d2844cdb324c2302468b962ef2492702868bec8880e922b97c418980e9a275aaeaf8f6e7cfe7dc7e5e4af5dba9e5d171de0227bdddda84b621fd289bc1496a6a543b6f5ca3ba8b16305980c9024c1660be4081d1d23c0e6605e60b305dc07059659105182c1ccc0a8c8e15b26f91b1d2620629dc77a9aaccb220941b1130583a85e50a2260a6b03a2260aea0c259be5bc04cf1bb112102c6a244c05c31a147ee2d2260ac0d6a8163df2b1e1630568e940163058c153059c060012305982c60ae0033051829c0580163050c140f8c1460acbcb845b63ab566cc3fce02075d7ab63c46efbc46c98ec7801adc86b4d350fe52f9e7a49589ccf2d0e5171e030b1c7c5ea0f7f4cd4c154e56f135bcce136c437262c761f6c7f38c1b46a9dddce0748cc515cef276b270d978d5a8d5d4588c0d63793bcf49db15b6f2769e67d7a59dfeb915bbd35b13bbc141c155b854c96cfc73d31833db4fa4a62e5e70fc44a39ecf6c7c74a4692c66d3f80a5628695c054e638edb7e66b4340a0a5c9d592d4d3f520d7ad3d14ce99f9356a4554d98b7f3bcd4a8d2ccaa26cce3317589b4268ca9cbd1cc36e4f43556ca98d1980a35349e02c761384d7b16f3786ec6bc29385d1143bc1d3063fe798d959a2e2bc49491325246ca481929e34c477cd3f194b7f36c363662231b37b4d865afc4d7d08c7ee6a8515120ad6aaeeb023f780922491826389b1062fe797643e332a60f395b039e199615e70e39cc2e013d2b1e1af51cc7a6801b299fa5b042261a2b64ff398f39a3339cae888ae85be356741bbf11bde6e4996bcc9dfc06adf0ad99232efabe69b9e838361e5438ddfa98726c4522d569548ecdb9dc7441decef31c1baa51cf736c46de4fd334e5d87eaccc46632970a62e9dbad19833798c1e8bc8b7e8ee8fc86d0cc359dba8da643e7a45bd89c3ac10f8cf6574cae4cf590c9bd1a9e9cfe10a8e592136fe329f93e332afa7e77c33af9ecabca29eebf233bedb101b1f698d952870dba81b1e777fdc308dd199bc34ca444d5d4c5d3486028739cef653e31c6685e4fc1bc36158cce3c1f167eab23d5397cdf7f198babc9de79bdf74f3ed3cdfedcabe9de73dfddcd4e5f15061e3cf4d5e3a75c39f9bbe74eae4cf4d611ecfcd8d8e3f470c016f45e28dcee6b3a7dde84e5f8313b51bdd8db751aa42379db53b96e3307d36b51b1dcd679776a3abf119a6dde8669efb4cd36e74a5cf48a4cf48da8d6efbaca4dde8b4cf38ed46977d36a3dde8b0cf68b49b6e7d6e74d76734da8d6e5a9fd9d06e74f2b31bda8d2e7e56a3dde8e06727ed46f73eb3d16e74fdd90d363837a41b6e7de046274d2e4db482c0a6eb45596eb315816fc3b39b854d32dde86eba88f787e536db8f0dcfa05693f337dd8c96de797eb3fd9ce8ccaa51cf67709a374292c96bbafd1b1dceaf8d68519ceef4769edbd87e26dd8dc170cbe1c8a1c5ae73b00e2d76399ff9ae55ad3775d99de7357c97e7c62fdf4d459f593d9e1b4a5af5cef3475aadbe70ec190d5dcd0d1b9d89a6eba2c34e4d13ddedc7a2e9f6e113feca612a8ff9e75c57a1967f5e22adfe39696645e69f6b5d3591f16f8cafa62ed5f4e59f5753979ff6b819998d1a83bdf017d8a94921cb2c46d84a172cf3778b14a7481399e56bc6d4f40e26a484b2e34541192184d28256c7fb0346296374d94060e680b00db106b963a12637a107766910c5edae36fd840ac2e998a951038769bb2c171c3d4d4079901c4e3574e498711df00925dae9f8e0fcc44f78efedf0eb42693a281596f5b265bde4e8441b50fbde7b2fcb9cc0b13fed7a3fe1f0226c420e3be01004c5fd68200ac8a1093914c0049c59a9c2476f671f90afefbdb70400fc8fd389e3d699d6e746747c50651febbc3f6c8835c81d4b8c23d414a3077679e181694c060d99ced7dd5d8d3b5999be63d3580ba74527a751d3a227c7c2a19ec3e79757089f437f1e04af0e36aa2b693c06744e6325e89899536a6091830604518c5803878926c78463437befbd77a346e32544104431e2e9c606e7066777352e71f58b43d3a2183438b41a3a72ccb88e2a9c6bcf797f30a1443bf82eafefbd775579129dc24ce0d86b3cda76680c8665d5f9a8a6a3f11268e0715d3d50d7b5e39ca6699aa6699ab4818815b6eaa286255c57b441e3254410443122843e345ec25a614dcb01bb3c18608cc1b147d45b2e75fc734cd3eb75f9e5ec4157cfb398a05e844f099a0621fc81906611aff8754d8b5092708ac809c42cbf1eb1fc03c00f2000080282284604a2bdf7820001c00f1f36d4b083eac183069d1db4731d397004d9a10cd9e27cdddd7d37bb6d33e1096a5bf3757757c61b96b4f1de9abeeeee4e8dc1e0b7faf5ecd21eb03e0f8bb7b3ded38c049a4bca1a1936a3651ab462e5b94de34aa48d9b12cbc37222913459a5ca6f12365845e35ef6f5bdf766b4c5beeeeed6b868b4375f66d21e8cd6af363b551dfafa73f6200806f734de1febf26b3e20b990371e7cd1eb7bef452b1e6b34eec2b1bf855e77778f7efd4108213c65efc606e7945383e3468ef9782c6f1b3a4c4ed3d5a0333b389d120d241e5b0f0d95ed60355c364c1fd60f09800804067937740004704382be6f87c3e0e09f706efabb7d6c8e169dc3e0f8eb7c9c22f09ff73f5a811ed275303876f86257b95fd8d5f937368d73c39be568bb2dad445d7eb3fc734602c7fe98bc2cbf8eb3fdacb316aee9ebe0ebe673ce72706e6c4e35376c98686acc7025d2a665d8352d19e16bde1c12b7b325db4d41f85a876efea027fc4266a7b2d26e6abdb6c3ef0f6a6f5adb3b1f1c7fd3d94646abefc79d46f638c8714f43de5f91a7c723a90f1f0ff90baefaf87e3cb2eb77048ea111b8ba5f3c0f9daa7b04232b649f737a873d6e3f8f9ebce0b41d9e7d72696e55bd03f3b011fb763e82e090a9b0ac972debe59f2f6c2256d8aa0b6cf5cff9bd0f7491597e9db9582632cb3b6be1aa8f67afa77fceddee831d87489fc4870e2993b7c58b31e8366ab78b2441a7d6df7b1da3bf17a1f6ba99c3f0f66b66e676e6addfa33846fed121fe5e31d1c9c1c20b65e8408c2f27fe399c568ece43bfe44a3bad781006c93d9a63caf1d51526e06123232323247c9e6bcdb33ecf4d9d823cab03e90a9ab0ee74f3abc50ebcf0f277e5c594af26bf1acac089962084318223231c6481c51463a5e16c91022a7cc10b0eccb89203ec4a81184a90b8488219208410729ca9e6978b3088f034bf5c2441cc576ef6e0e62beacbe4c08cd50a9eb082177cd1aa34b1650b13b6e003246aba60940614be408229946153322289218cf185208c410aa0ad42192e300186195ad0041931982723566c61852a541153c505a55f2e9460c4c35f2e9450e58a474b5a51e6e19440075654c10531c0410fac40026705185ab3802838b1658a1198710422c8282e6082162464e942145fd4a007172be862c78d4d021558c620410bac488117cb850faec000092b3001136058d1024dcb15baccd828410c9ea045155b5c49e30811729ce9c6efca0a295f3929a508608821ed200ca501fcae76b0fa1dbf5caca00bd4b3c3e79e7dd927fb693720644cb853a3d84f379ab0c208a898c10a246cc1c7341f8fea8a323441cb1434c68411069ff5dd00271fc718638cac0557a1ece6ce2f175e7cf9fee5c2084e7c855c0db2183ba19f752984046bc0477f1dd308bdb2ec88f037aa28fe6d14fe5128aa7ffea8021ad5acfa0434aabd9404aebdae966fbfc119cff0f9c2477186ac7f4fefa2d66317bbfd6cd747ac3fbc9e411ab4fef615215b1edcae3edb1d6ebbb84119289a2e6ed06c04d7ce7013d0a977844f5d2ea646b113ae700505553cb1040ec0f8ecacf1524a8b064e206305093265baf8487aa25ca358e7dfd71c7098410bc400450c840003323e95fba745129870c59632c4e08a18f8ece3712a44410331541063822d7cb6caa953dc3f7716fcf3f978381e2c21082b29539820069f5dcddf4ecde7e6771185a319e409f97220010b4f500205475d84d9c1d10b76945454dc400657aa08430f6460031f28fd514e762793f4ca99f6edc088528c333a3f1e0e9ef1707b08218410728d628ee34cdbaf962c5cf095835ac8ea7a61a3d5e3f2ebcb3a6048fc7a0372783cd0677d0dc02487f9be480d29bc7082490e63747103297ebbb0819500fc7681850bcf53a8f867adf198b77c42ed75d2af2e12990ff90a8efdeab8e565c4523ab590d6a1975d1d9112381c0e83c3657cbff4ba68bce58db2780a532989c145b7ea7c31cf53de72a24e5d6e391b49f1b1aecb79fbb9e872de3d5a87f8c7b52f7c9d656a94d6284b0c6e7a9d6f5996ff70814e41b73c09ebc0fc9633198208ae7fbbc062c6433fbdc565b06b96d71d56be63fcca1c12d03cd367b79cc0cacffc6e39cac14a0758c8a04b3a3bae510cbd4e22d1d43b3c3459e4800aab2e53a488f1a9a77f5c8841836bcb1329f847fae7a8c7037d9e07e11e8f019eb08230b468e2085e90e1f3686592c33fcec2ed5713cff4615f93e9d43bec5c05b72f805f2d4198f233bf2b1d78f96a7a4d28fd76e10589968d8512f4756bfb617e653c289b27778cb1351863f482352d0bc3ac69f9e218c3b2e69cd3b2ae3931ec9a976559d69cd31a018431769bcd3c9c1a47865e7007e1e6cc6954f4a1cdbce6a793c699622c0321b4bcea98208411426959324a08218c313a9441b63cb8e8cbd2e5ee9bb940a3a6579d977eb9e9d4a9e8323a8c5107e56377e972eff9ecd6b22c6b3f6ecc79392debbaa6354d2f99eb94e5193b079157c85667b6a5592c9d0631c569cb2f8f7e5153a32677ccf3baae6b4e2ccbb00b9b73ceebba260d72b983e666292dd4b3945246eed81db9de89969cd39216e43e76c3ee96318af9f235fcaeb26439238b952ace786b83efbd39e6f53216205708219bf1cc0c9fef7b1032f36ec7d8af9737099625e56a814f0c583e83ddcfebebf2e519211a85798550335dd7c58f75dd0d61774308df9bdd3de17cb28bdde428864bc6fd4bcad9a898c3cdec437f754a79f19cd725a5b4649731775dd6b46454410cd370938f3733c827a5554ddf2ba594b223ec1804f9e4f3dde816bda755b25bb8c3fb7b4fc618a3cba8c48957aa53450d828e29433334234d4002b3154030381c148dc643822869ba0314800f91ae504e9c0d83499005218aa220a40c22c01000080043008c6ab609820f066add6b28cdba8be815ccd6ef959445d8275b5675c6028a89310e3187c708fec4e9fcf41329bee07292d3cdaadde2d9374cc5dcf7a38c7d7866582d164be8a3ccaceb16933e07dcf0c0f05b25b3e402071cb4a9c865cc7288332ab02f3ded698b52a29f4cf0d5426bb72e9116dacd56db726d3ef9e03a72af78f332d53b06f467e2b10d833e47f46a46ba125c7294bc65d43b366826e8fd93419471641a8375920710811a40bb2547cc717496a9fe31a06c7ac640308cabac71fbaa2c697945c692243651ba1f3cafc62cfac7c005fc755b2bf24b9d0b9c8443b922c20a61cfbf3e3a951dbbd99457c7f4d9ba16ac063087f2f9803e95d49845ccbb52a720c9d48379af070bf409ae4e6699ea1b073437c185ba977c82f8950ca72b424916ae4e0281577f682c1a4e9321fc6280650385d4cbed5b909123197496617bb621f428ee7d37e923877f5142edde47cd244f624f161fc9d1a24ffdc256d0da0cb9c1a30381967e9c78f289d34243d400b95972ccae37df9a6033c82a486b0ed8b3e29c8727b971a6218c10bfee18403799c643e8e15a403e607f0a4a663020a1ff38a170c4ee856056525abf4c0d68df71474607613e5f7bf551208a3a0cd6cf98ca670b2d9d3ecf01a749ac18c18adbc4efc458d7f9d3555bb3566934600805ebf344da292a09de69e4e5f0056219eb1d071aa66e1c84068eeb2c41064f8edca07b050e5cdc39aee4aed6656c6e955b19828058f46572c5cf70188ce5efa809c2a9bc777715f6d1fd0fad03f0591d1a433e169e989266ba71548033ea9c2442c9948c5de82c8c460001cd1319c19ffb33124e104a67989f3131c4c2995928a2e4da23e38413bff541292596b924fb169c4368d4aaebf2812af053329162a13196dd00cfa9f3400fdaee9d48d6c3877625a8a74b8ca58ac4597816ff248ac3586d47cd07152f8ab695a1724cc3d3ef605b08a5fd00fca21ec823a0cfbb38cfd93228fac2e02af2d3dd760c08f5d628c5873c26b43b49ca192e8e7387239f43d633ea8a23f3baa2a46e6c01fffca4923f54e33c63782fd79b57ba7c69d6df8ee34c276c9215d881e811b40109262b81b57efa011f31e80ac18627913beef70daf0998e85351b9b6c2d26026a04df52b25d516a1c390c8ddaf99d19102a0782823b5fa3413f8169309ee79d425a71d63f1599027b5868b7f17c3e6286eaeaac60148ca4e27831a08dbddd3d7a4a811b91d4c0b4fb9a0a07a5e9ab2a2bfa623a26ea107cc8eaca6893b32232ba8189fc19501d4103a3d9a31e187965c20cf7624c71742c221a02dc82beedfd015f5cc5d4c22f8887a944cca0ead74ae680aad7eb53975b193c74e011e2e56508fb6092587225f9c9d8e669c163988a38b30b8ca32e7f99450b642196071ab88a03cbd05395c213e6c214cc2011c2a02b7dfe580488995cbb7514a21e66ce54f1f601874225c5bbd778ca0654c2a42e30f89314880ad841694fd0e98d69c66a1ad5542b05fa265cf16dfa318bf20e653f9e776e68fd7f46f9ff7d13fb7b138c4d9e1d63004212d235f4fa6d71cf47884f48eeacac798d31cbd298f471241e191a90ec727d0ef5ec34657df515d7323cc2bd6742004bacfc9b9dafd08a0bbf46af3d27f4ffe6568267859233f51e7cebd567f4072dcb8219239cd975e4430ee8704c509830ef51c541a87a0f21b25fd080a2d3ef6d2f187aeaa382b05a398162da094f99d169ed00b832c2a9c3221b4fccaf993972bcb4ad3f791822f868a2f9bea16659017c01dde70e53e63156390b7c96345c01bf0190b1468784275593db2ca286f4f27a4380b51278502a33727768873b8714b28a5a205828e6a8e81ba474b224e6a7fe99349bf39635e6dd765b2d43f9047380755b0f42f1e38eb5bbd171a706716534890796165ed6f15927b3c9fd42866e8e9547d52cb94fe5d2be17e49a4577429a38387f6fb90414b6943942cfffaf3f5160e37d111c55303f2b6c5206b72b2b4fe9d9e996d1ce75b9ec8835e56cda0a06c80d0e0df0486e535b32c6d2cf541398b511b87eea58cd2bec28045592e0d128f53b920316992d6d11ede5d219068348beeecf9638444c30e4653dd217e621a71b74c14217cf7d8a8ac9bdecfc1364b0241674e93fe628b62f478b9ac6604e8991b93540511bcd2cb800da0661acc9f07154cc8ac62fa5224cdad5f443558682886f4f4c672ad29736de832ca1f672dc3b4cd471133b9d316ad7f76fa093d5f35ee263825139345063d6ef1b233f8f86337a9e89fc32c4ce24fe844627560a3463c40f284de989ec6ddc8dcb507cccf5549846fe6db98d06c84946cbf9a12f49d14a050b4ff88af29a72fdd730fc795efeef169ddfc6c1d664f20d86d5ee71d946c9771680dbe230241ed71c888befb370e68926454941218994ec2bed35ea670c8f6f3f6f402baf79030715b51073b0ad0f84e315ac9bacbc6d23d248b0a192c1f47f1a92fe9724a13f0ed9427f1b9d20255ee203f7afc2fec3160e655ac8a4a494970b60d1efdb3239f4077026ffec798be36ca2d5493ca20a4b518cc3b7007e849fe6c23468ab312055e4ace0a75e4e0f29bb268d2da42723296c56bc48e58001ce177221403f923da65bf0a862b553c7e6258236a1e1d51e2484ae68ff411a26a45239f49c750b91ce3e98c3c9751467318b29b01cffd8c48dc34a7354dfc5ec89d18b089c6fee4be38372882081b70f6b1325ca646c010b6cf0e307f7431dbfdb867ffa3f689879e0bcb523f74d44c01f1a42e03c06aa147d95b62a4b2096311d05e63319d4bb6bc126153807ba11d69adcad6e132df9343a36fe8bdc644dc12b6c008a1e740733daeaee7dcfc4ce2dbe250f52a02ba1d05c1401573d8ae9a0516d58267fc681301613340dc2c4e8acbad3b8d6a9f12ed92e1d93b5e04e9cc4ba0450d512f3fb4d558427599fe3f41d7005c4946cf6210a0949fd9b6ffe01a4c7dad4a15b4b99cb21230b0fab502af39792500eaef5eda1712119c7bf5b80f47d75fa0048628a79d64bdb10b8cee4d1fb67d2aa35fed7fc699405498c563d5ff695ef6f0afb1b870f7d2ced0894d1a2c2a5a66e529f49e0aa4161caae69cd55500cd320230f348e2bb53c175a6570534630464e621c5e2a2cef4c8a4ee47f28946256778c7e4843b4edef0fce40f6fa33ce0de9407874bdf8f3965df647be07706a4e59b4edb104c001eaeb481fb9115c15123a4e085fa30b841c21bdc47ac0f1eb5a1083794c3844b22a91fa8f652f40150157ae76744bcda58788e9a209400dbb9c5511c1c9aee9285a6c7673df7c33121c5aa06bd18021351080211592102dc23c33f24c3f2eefe10828a3ae6f565f6f983f1fae6274c6a59c5df295289308adae83927a66623c8b4985bdf9ecaeb2ec693c7a6ec9efaeb5c7bc8a6890b3ad164489709fdbd9b12e1c40005a112a983785ee5b2bf83c09ea4e902c96c8e308a9a966665381f135202f8683125a84b04951055be4b8b818438445eb7a20e8215302bd198c69fc6668481187aed83ee496fa7f662f19368a9728d8191a6e1c437df07691c0a3a4298e8ea7e625a754fcb9031a3ab5cb0c4f76f74797b292aabdc0e2c797f9ea5515ad8c2b42ea3dc8fe1c258d1d15292fd9ad7a12d62181d8796f8f2fd3995603fba961dce3069dfd6e621128e050ec15a3cb401a7b7ca16fa632bfc5b59d243c874a7a491792013410a596de384c30fa599511a8f94c8a450ab1b0542a0f3701811cdaa1365cb1939634b34ab09f4aeb46285a4aea091f7dc03dd07bc2579012e0ad743b8211d2435aee5e7277317cdd4f5fdd1f18d3f31259b5dc4135eedd895e924e910e622cfd7afcac13b03d9ba40319ba453c9d5296fe62b99b187b730acb7481b15b32bb241c73e65b420bccc95606cc32cb9a11384ec589218a16145d97f6d13b61e18b670633945d258ab6134cd006ae598cb2e445135a2dde37e8fdccd93d39fc9c09fad3a36bc36445efab63dd65f481f0858328c3fd602f30ec43ad1e386746d3b6edeb3e2c87bd5d1841b4e07b4453f6992ba6422dc885eeb8dd90c6442086298f26bc8b4ed290b80dffa53ae2054c33552b6b7cb6a5f82a4378939f524948ef9b2f5c9bce724dd88a50d70de61438d3e65081d210fd24b1ae92e03381c338e5ff5d2a9bf839beef034f0fc0a41519cdcc8900295fde4471a94752cb998e619bab7737c8172f5598c941ab8129d38979c88e06f6e851f0ad438d8572c5475434513fdcdd99f8e0849f472d51aa20259ecd64a45125d4b37781456152dea2c174d760981c470587e76a0be59063e405ed73b6722ec9961c7a6266bf125641b8f96e35157834e593a5e4e457f50efbaea4c767079e883080694e2f79432867558caee3ae685b14c011bf2f59f9d43d0cb1ef0c4245ef26c8b90fd69a9c78094398283e9fd220bf8a16d76b96466a63a9d4d3f92ddf0601dc24f775078331fc3669d64adf6849b6a253be66563365e4b5ae2612a9a5c77ea24e51aec80f0da1ccaee81aa820921376ed90871ea1bd80ac69232bf461b4800b8a0c42f1445e9c06e613242647456fdc3cd2141283ad6624e9da6739b3febb6a26a5b7284c3c7bc5a84c73ac12a7045eedf91c608783236845c6d68bc510c2e986871fc9fd21a3a579d759b39b1d002030fd6ab799a3e5955dc6c5291767a4900d18709b98e9a569712ea4a2e69143b7725041c0e0157a16ad269edd06a406176c19068d8201900387bb4bd8c89b152bfa3d47eaf8374f1a46a36f650705453e46e4a32c20e04e7fc090a4fcc8d3823acb539f943cf4dead779b25cdb8e16a2be4929bf18c6393219c952090dba2d6c35b87149312a54d9949e0cbd023e105d57683aabb62337351a70f572e3cca716fbb40fe7b05876332ce8236b30a49ff073c21524f05adb89e42a7a1fc471de3a0ef6aa80e94a0e58958c0dfab688361b43aa3490413d4cbe2cd874495811ecf0b8c3acc345a714d51f92a73fc8507babd77eb80dc1fb9b4d840a950feb6e6a61796dc666090eac2bcf771b3e4ed25b7e88ce254aca73813c60920589cb74b91722e0ed7170c0b28b27c505c4b4f8f2f52c5858fcd5dbd4e6b3f61543076edfcb3c72e2a7f1fd05c853acb16a3b83485f8cde6cb36415001446a6546480731ae6ca314526c0804c6276b0ec842965636854f4344e80d2207bcbce18a00142020057a27057258bfc5170cc5f094a15968531098f232e1d9a90ea2c6453bda88b91218e2abd10722c1350ca188624197041877106dcd46bc86ae305b995943e931006483a1e02a204585cc6746a480ca2d2e5b2950952e4264276cd24a02c618bb9b53e2bf6c7ac5327bd03fc6186e4712313cce77db5df66c821730555591339e12ca949ea0a3b88a16b6cc534d3f913323a07dd2b87a47695e6b56d1675d78561d99913a951bd5da9b6ae54a532cc2f8cc3e59de18f4684b907d00f23606789ad30014c1bcf13022726c9cc8f902a73758795214a973c23e956df5009eaa339d580e691902ce0a522f92b8721bc093f5514a071413f4faa5da03f42b6edde89b68891a646f9634f2f92040b0e51d01995b78273925683ced5bb47051437b03f6a224eb8c644deb42a50924545de7ca06e7ec980432ae0b9f5edcad6fd7948477f0389af4890a67fddaa7d1bf4cba3f5ad2063e4047491852c60ee626cfb6eb0ab206b1db520023cbabbc2c902d9016c574e6fdf340a22bc0152c43e4d17c974dfaacbc6ea7427ba24a2c80953b1ff77b260c1648c6bd06491f0afec7ee945c6f6bfceb8af2aff7fc5ad5c2f696bdfb7955435777b1eaf5a32fae51d0e60bbc89123fb5a7ddb6ea825331b27aa83f7025a26751c21deb585beeee49d369afc141fbaaa4e3539430473aef7f555a2b18c7d4090d9b4373e73a1f6d3a867c35679f6e129ad0453ee71e25381f937b53d8c43cf5afd77dfe05e80e87805b2042a2ac04f518997cdc54412af888dc274e16b27d3c3eec54e0e7591e38550f8efeda758103a994ff3eda27ee57c8c27d26549e55c64b1a243ae44f6a94f5e0773a4c46c8971d0b8ee0449795cab0eb4f2274b145f3ce3cecd8a0e99dc4672743a1b324c744d3e67ea67b3717a4082b665f47e70a91ebdc14b46ff031ef39f8b1ee705488ca3acd1e3ab7c863c33d16b53864f539265a4eae865b312c0cbebde885e0602bc2bb0f3c1a4a35c023d4c1953af230db47c528052c70653ba01aff0e66ee6e478698157181bf0726016e9e3a039b0541f1aa5b734259f333e8109feffb2f3873f3d091b3c0d2bbb89df7e0ac886e0024ba40a063640bf6247025d83f708728a6259eb4577f9f9e838dac3b3817de87865d58fde73fd73a144851ec7977fcdf3e8c58f2d4ae00ca4fd0ff4e7880f6e48b1a70afe7aa21708f805d07b5fceffcd9f5bccedaa3b7081495b00a0bb5b48677b20430bf5982cd780a11313716bbf69a9db63f560dc97cfe60dace7794373cf75c9d1e46d7d87216b1ce28a53fb850a9b527663e3587290c2f63c1331798d697712ce04c04020ba94e78fec53e03315438b1c364725cae7c5def7d26c23092c8799695b14c584b42b8a0e8045aabebe4c5f5d375f0b51dfeb7f69968e345bc126a03ed056bc23e419f70192a1084ff74a55191e6ebeb40a5393adfb734a350fd54c21e3ddd95cab096973f091c4b33247f2e62ffd7d1d607197b89cc375b0b73de76493e8fc57d5793842ab9dbb68fe6cd505be10fe0e9f43bad2362c305c550484ff73a1353e4ccd35d7ed295d137370ab123cf3a259ff74bbcc1d9e372eafb27ff0099fb0717fe4683b78ba51e0ed6a66875d789183870ec5c3b1662d3c1a66cac50ec25c3cad1443082c3addf32a3aaa9fc4753237914075b17bc31afc28cbe90eaf2781710f1b1f6fa0f4a0076f8c35f9b2ef007030a37a1fdcb907a60612710f53d7f45ad3c1aabc3f939d5d88c31c131d26d4a1cc724d231b8b87b3f1f962c685ba4dcb008410285efa1926de0583628722a3f4039885467dc8810424104ab9ddfc2d24c88f6e1386d37858c3c106572e71b82b69cd9b9bef17084c7e9bb617359e300e1e784800560c8445c140177830f12be2356630d025d50818c47f62dfc553c4fa857b05c544782c01b91d839dc985bd2d0894e74065ac606eed06b86943a5702b1a86b5bb350013df3e224deed381b2c70934d7dcc5cc25edc52545b2c1c44460634dabbe5a7ef369c45c074be0b307d2bcc536a12b880b7d5929bd7069327a8c9db8b7efd17ebe5d425872631a041cdb07e5da2a5918a48079d8b5949e661c42cd0bd984bfbda7308457f45f8d051820211ae5a8b94644910a6d1fcfd79c0500bae1c2f6a71c653817bad82c53f18292c7e17bdb48464cd645332c24407a627cc9732bc7c48c4f71d38c71e9171135210c4f32b5814b9495164992ae13a3f33b5d94b8e562a6d24f604321d287edaf8fa3abf6b5dc1eb32acb845ceeefe731e04d1203b68801dd6ea1d881c314af6dfa10568a5c0543df037cd5a4bcee39b9ac54d7ef6b703d04b637c1e31c13958bde453a734a5a9eb689325a35944152a964de386e2041c365e72f536a3c032339cf558277f3d1c874663a7ca908942f342147afaa43e7749cdb1dfb87630ad65c4daf7fc57ce091375a1a8bd4c717d9eaeb64bb7356ee2cd3edec0a7c2aeb9e13f0a183eaca3afb90f4b9ac6a8bc3ff06a11d6250003e8759ef50ff9279e293a8509d3b7c87f7f91358a39d8d77a74bae68d63eb85d34dde707fb2e221add5d9db68aa2780b977b83c2fae8fbc6da5b562d4fb56298ebab32099bfdeb28784b2e89605f0b60070e372d13656a5d04f86de8776e7ae4aab0e4ef7e2555a02613dd7b82eeee68fa05099aaa37f380e91ef7817837de077cfb3668377172ae4cf19502f19dd9294c67eb3dbcb1a3868dbcd61acb11ffa584615a5a218fabd152acc8931f685e6b2f660c7d8f5b24d3abb9950c975b0a878bb95c25785b79a087bbbd8655ce0119b9f8f0fd94243772cdb13943eb36eaa1535e74eb77b0cce0ea7e5f05a96c212719cb945233a552a68df1e3aca0fb5e9e334de3e081359148e6c78216eb549b208a7c161e782e2731b55986cbc640b2cdebb21aaa85683d73b9703424f5ce80a4c9b1befb96197a07a6874c312822936481592a66077c150b76000b24fac99251b4fc072233414053a2d87a96fc16bfd281ce0a8b1bc86254fb53ccd50c12c04a4fff99961fae7e647bcfa4ed76b4fcdf914617d8feb0fda84c95a3435905bbdde9b0ba71160bbb95a57b942d799223fbf2a05239c68be8050fa514f285e71470b1d0e92600f80cf780477d7482cc7ba4b4416a93c026cd06926d345b4836916c90d9a0b245678bca06992d920d349b4836d06ca18d09f21dc6832175053ea43247a95afaf2f6739bf9df32e249ea6e2d58c3a631df0f5d7db2f34a38c99920b3fa39b8f907c4b9c537356053554cc6c60dc965c1953352373dc75e385169f9a62a3341bb2f4ca183061770b8abc581c2cd6781404429cb3f2ed64b1af327699f9814e14e6323eae1a64109235b2b058f2e19b65be3f09d475d4ae5945179e37b89693df2b9897b70052323145e158f4b8e23804910436b7e3b0d545d233c6dbc98c1f1d411354b409972aefc184803e442d89479ceea67ccc568297031f41441bb97ea5691dcff490fe35449920afc14a3833769cb24e3ed292ae4e266b9744aebc552dfac971c3d985b205e12d0e9bb4a35afd2c46c8790de9a34a1451f07a553244bc286e222bae82f7e2d064408b3aee853f54a45c056d68fa5e132fdf96448f687e5aba5e9543fed3ddd680fee02eeac3a2d721b5e3836bb742b0bc72eb9ac6f5583bdc08599452704cd6fe630a4a46edaaadb8be6682af6999a2a3cb7f37ec39def416514b2f7a8b3f53a29c37f8168bd2e9ce8061e36c2183609041ccc8b0fa562dbb40f6726d8daea31e2fc9ccc969a7ebe1a731c6fe9af545005432c6a62a524e3c865a32990a7f04098432330c2ea262c2c2546e87236ce2b90f398d0fe4d960d7508d92ffa10f95e1f1bcdf77a3445fb83b8e5e61d1b64d20e90e504ef120b6cefb912134165bd8915f223dc56c1953f57374a01f5f5a89cdc33b47d3fe2e56e41b11b37606c90a398ee12bcd2077256c5d478d81c8bee0ecc91f2b7ea1f74c200eb429e8cb7d91e494df9a4f18430e7d5a2008d2844247795d185ab332a10e261744a1d80d2c42cf3ed6218e7c36332b9494c374d5ff8c838136272906c5b5b6d1b1a6cb2b1d6133b8d88f48c0913219dbcd33b33d4f474b2707a4c33c3ec31449ad634bc904207024986e4e61b7eb1bb1bb3eb43e46c8721c5e3a78a8aacada3f7411403624645271e455c60a5376ebff5b449fdc7548fb52eb0dfa88664a58ac037c477803857e05fce009f10fb4e5c0e7abe5c1da63cc8d49176dcea9db4d3cb1771dae2a6a9c175a157220df36c0eefd320d2fd1345d1be9542b224a33bdb476d42bc1e6adb49e85d284507c294a968e9dc6b221ba4da186bbb03504d9a87ca044b28665ed402178db2cd98becb8811a6089d793b336af3e20b20e9e6f12cf42cb06446518c93771754f3debd34224e0d7febad821a50129c75cb7bb30e5b8fea59e845ec578c1ba8f096151124229c32e1d7a1dd879b7c8f0731ab04493cb2a02786d31864c52c8d9e488d5f42ea0f0b5e02285ddab35979d6f0ba9a8b56ba2ae1b510dea7b00c6040b7f92bd3bd72b6a7f6cf52bf114a70f14758dd56dc98212b3f745a7bae4cb119d49d3031eb4bb6859019bccfaa4976aa800e2294df8ba0843df7b4f25e39529e283a9e2b7b3ae669ea5b9e01c17db2d59dfe5167e6bea5312302260fe44601b5ec3a562722be64810613305abf8b1b27ed818d75de815f021acce3ac09d70ec91e4ae22a083d5d04dfaef74c0f0e95a43cc3412738c96db90feee22c639f7808d5315e7fb8c6c5a5751d195eb8257590e52dae22ed09f4d5f5434220a816c0ae41e5edc237070bffa9a4bbf82e0bfc0c61775400849ee00a7aaffadec4a96c163e7e912503ecaf27d434fac56382fc72b845054de72b1b60310eaf67b0874461e8e0f0e3a067b311421e636c9fd137d16118d68871cad085b8c7223bb18ab838f8d145061616f679e1c4f631c4d6446233d0a38a88d21d0efebf27d269409044c869aea0a03041575c135badab12ae651adfa583affbd1a99af43cb1c0f574a003407ab93c6d542a196b4993de7645c794112d098dfbe1d639ee8ac6fa311464c50740d1fc89a6fc8270d182bc3100cd5b392b727e6747829033f479d015aa039a372a04cacba802ee82146093bbd4ea07001d01ea785948e568939d0067a1edb4db684062d0df3eef53686660d21a82d976bcd9ab9f6406b87d950e19313980feb25f667949495cd70904451bbf29dd90d7cbc5b252bdda4c61e0b81a3ba5721652863348acb30d1a1cb3ed68b63642bb308bbf2092cdabae919806a7451042546a528d9a5ff524a13341755a98ed47e881f2265d791ff6292b1a231dc2640b74776631633133ae4161eb657a96c7d37d6358d644b74c0789c483ac5284f7d6eefca2fd0b09a2d954810a470ee5acd8f0bec619f0c1aae436e33c01694fa39be3e666d864f1c4b2b1ddf73ca0c904f507f480a0cebeaeb5f56d1b0ad304920ed27475896404176e3f38a9029f4fbee2b0ba3f31013385d6a639e8ccebf65b8b6963b4a415d60a8b7b51a0b7bdb14192597c2337d0d8070b62b225230747f65b94814c5fa57b12d3ec9cc4b23683a9e807a8c82ec7968d15b78ce039bc9ebf2641c472086f02e183fb3606dd8e9e6072be189409428f904ed53581047f35f24719b3ec0146047833c6a3382a9d4190c80a453087f18b94cc8e365e4aec98c83765c800c377f6918ccd9d94b82ebac7ea917cba912a9c2c16559dede7502522809c7ded28fc8afdbdb109ffb14dc38d8294227e212b1d62d2389de45be17e1d69b2ad3c45b868293e139c7a914bac05b1673624c2478c80454cfc784e0a42e79133d87f000941f13743238971c2bfcb195ed3c4b81f851d4b185b4c620fb51024797bd44b8feffcc64d404bb8e96322699bf090b3d79341e506ebe495f1f8f0a80ec41aa3799c64acd878c49dcf8557b87b0f7067a6f362a5d54c2729bff285d874b87b3623e0744393ed8a549eec810c00d1ad4ab5974bb31872252e9a3d897285467faa5b4b8696b1eb62a929a6c8802510d501cd6ef8e27dd3201aadc6d40e8363c11b0d0af6714cc90d49fc40a363a94dd4de2d39ba6aa4b1e5521beb9394dee7cb37fcddfa6ef79e8389bc9edd47d1ca317c2fefebc6ed5c5aa5248e1747e02cd6718f06d7654b2f8700f6884bb9e8a981e87a748fbc6d5ea2efb63de532317202032cf0980aced40850d8d17a712ad654e2b8a15fc68e1f3d1ade04f2ea5f0dcae5f2404467f3ad161da42af60d0f38e37a328d471a4a75f26ce2674a748b396a75473ca07d21a2cdc0a494f8f7c72883f979c6e4b8303f4448ac159b14a121c6c217b31bccefc30d1b0b76d1bc3c6303e405d98827621723982cfbc02cf9a584207e674af1a7fec755c6c88748e1e0d9dd7811951014850cb8e4f3221c06ec067edfcd6028762af1103dde0a5fce9f597351ef4bb28d60406e5a120b99e2453c6623c41bc53312ecc5a48e0d8d1a24b312dfbbff515bfcccc8ff0970eac768562bdc86fa41ba71588f66cd0463e0a210bc39e2786b361153c914cc036698fee73ec5763c9a791bc9f00c45d17271caeba7639ed96c1f2240ad35db6c345db130d2fcb3c158cbec99a8d85746e2f1ea486de69efb20111e17fe7c372742030c9f95ea317335e77d0e4a072e0c45a5cd7af9e90640fefadecf2343efbc587a5a0870ab291784b84e5a2daa49b040ac36c1224e8c29a13b030d03a2442c755969ac660ad40595c57d2829315d84a901513ff6870722115d80e35315aa7432c4ab120155b84f00d350ebd556e1230ca61860ff792d2eba2aa8e57e284cb2885d66754de91b3aff24fd7a8cda9a0006eda18cadf44fb0fc12bc55dc957f23514ca7770a4f7613c6c1e47afa3e38b0cc5e820d208624b08c007cc64fd6da1002c1e8041e59d0661f73ae7f49cf056a93dfc9007b3c66137575f74b809830f73c06c66d2001c5ac255f112a8454c7027c7bef9cb8705170a1e56e3614fa1c06217c6f309492d0bcc32b9f679c2a0fd7bf0d50cd7a9d0903edab6f7b255a4cbb12453d912cffa395d18a2e42428f32c8a4cc7e73084e5ee9e91e13bad923a4fabcbde69820656463630e957e82b5a26e8eb94e01a7f1057a74daa4f7dc188fdf23a4a2870418413a36950b8aedc290289441aabb1b0ddd77704521bba94997b69a61294f8e52422fee256db2e3bb172f104af144fec3a9b9e0dc01b1ee91f4db390eaace8fabd9d98f9ddf893e8c40b73d68ae7b7e6ecde869be70cc5c5d83c9d1b28f79a0cf994708133e94908db032d02b0d99b806aa2ea7b99eacc17dac02953d32741138c2f8f9a2bd1abd26add412840b39ae394a92cd00c226705ce183c0c8f04004901248f285d6d5311599d1a707e2bf38601c0dfba157fdfb4e649cfd79b21f0c3a61ac993a20b2c468eb1cb3b5279f1c3396de6ed334a5370f4d3a47b43e3dd1b7aabd8d761f16788ca488f222b53e6685dc1e50a62c5860a665df9343bb0b1dc60c1d3f5c1ca4530928ab3a354f4d9aec524ca5c77c6b8ed20699b35ba13d5e24db4048faed988a08963e60eb1b9a747964f9725cd047a8e07ab1b58b1485f1bdf859801ff33fcda6caf0b38bbe588d3c2730bd110a9e277bb5925c24672f14ba3a22195d259296b455742934a1f526458114c330ae4c03f9264fb88ca19c961284bfd1ebe2b9f9bb601299f8fb825e8b458a4bece6a6ffef7491cfa8c40484b887a32f479a1655cd5f2b23027a0507fe8282aec18f1659d2f5f42556a52944e01d9850ff526d5cd3e94ebbe8d0487377364eab1fba21aa2238f4e495794d66064588b4605ef306215ece798ad358d126bc6651b69d735bbabe01427487a266f85eac3cc266c4bfe02ba9ab69cc45c5c8ed1b6b4d448fcd32d69a61b444c7f7db98e0757351ca40d882076a5605ed1d56771b2f1027ea31277a12b961af0e24d51299b2261a7bacc41a288099ce838c6febeafeb8476c1591a63de62d007b924fd2f6f827b057f2814c564bd4ec61f63c602905e9abc9059a204a4761c0cc88c66d584bdad5cba0d38a685e0518c01b2c584d7fe6366ed51ce7814e893a06213f5e130e4e45b950762bf745d15e3ec15fc48be6f92f0ba670345b0baaba62f1981d2fbcc2f02dd899eed969c65b65049cf5f8d3f1a8fdab83e68aef33d72fdd0ab7ed005cdf2e519550432cd62ad3a06f55561007781aae10b8ef2738dd319ff1cc3f12de3a28218d181ebefb55018c92a0500ad60d3a28c194dc25c141d3c5d13b3ef63616a8c60e8762571c4864c9600d9a44f241110516efbf060b43ad98677ed524f03b548022fb4b49234c2924ae7c47e8356da5b1fc8238161d24c2caed187386697c74bb0659f0beaa48ed161111f7667c532560191c0aec3e8f4489b0c350f04390854f80d0499c3c9a76acfff7e520edf21cf4f1826e2124985336450a75e14e91925c1b107c02209fa7b152123c4fe0c8bcfd30df1743da4212fabaa9bf66dd8b94a2c280b893464bd676bc2bcfc9b1c63b0b532dd5722c15af9304c8d85fa5e61cad3616b9377cd51ed4003fddead3ce3190905ff70e23003c587a63ef07efcbee2814c60b19bfc3c12a903b464d2c1eee02a77778ea69e7e80915804630dc6f5e51abfda299e006367595df0e980d37676e9460388ef463c8491fda0bc945356e8453663aed6df123103ecc85d4f14488c1d3c6be682632787c080025008e5368e200d40cb302c8649124418108be52c11d4258a32126bdb480d7cc4a18f9c690c5bc871fa782e9dd3f0bf095dad946c7d4f9e6428a5007c6af03484b4d8c59350084544d760888bddaca441b14198dc2bce66a084900c2e68d34f323ff233c061dd46d3a274c02b48f2d9ad17cbe964337d94cd6241c456d0b83ec3ea5805bb55b0737b7aec3d16b63ebab120ffd58339c63254c0ca3305bd57c68dee3c5ff079c431c244f0f96c5c377ea606910a37ab576274a91532f5626bd8426d4cbb649d7f8b9285dcd2a7a69fdbc2735bd26f720b927732832f541e3759cb33760896ad61435bb372c2471ed038dcdb9718a21bbf47ff3d7e09322b312f28af2accc1c050c1d70730209f0776ad9646396988de022e68a751d19d36f4e9862c3c77942714a9f1578ed108d5e87b9b909819280e239e4986fe408e82538bfc61e62ee425e430e3e6e935eba05eed13a70b0ab4270e8b828cfc9c3657e75ee35266c8467866f23ac8ca6b25409f8f6f0ab59a1053897021e3d6b8b077948fcfd9e4b0126c566456aa176f1bb9296974bf9f2e139ee05690c603394251c0b7262221559bff51e7c1f4b7738776db31f6cf29ddf55ed0f6f1f018c4ef0e4dbe67e9c09b5667e30ee03b37fd9dd9462faa21e35709d00823747a3b4511122580b50b4bfd297a1c8eb0cb754530ec28c52e6981298c6cb28d82eeb0e346607c635630fd265664f18627dd09dd161ff4bab5e5ccf121c3bc6feeea85ddf641dae30c0131115174a659ea20e9a900d3f4a696f2e51b1218d1b574818c7151caf1042d3a9d301a8f99b8dfaec12ca8d3ae1c62630c9ffe09946597709d03d5290e80e23a4af5880b0b9037e0976ecf6ceda171ede91d88fe6dff4f64f3f97ed996f380168ef58d9e1c78f9c1c3bd17eb753518138c51b6838dcf3f1bb44a965990ddafc6daab0b29f39396b4c6923c909a547191bc2d6be40a171b87dd2409434dfab1b1c5830f3e26ae4fba365835d1a7dc412dc429bc708ceb855baef9def2aad63e23cc568ede236810e4f2e62d04ec84c6fe8d79de81a25c9bde9bedb4b399bd24e00f8d998c89e3fcb4f8034d11bfcaac0180684e16b6bc5eb09c6087692dd1b55376a0a4639a7d9929ce40b830eb90996d8c7be097c5e2821b3d4e4f0881aeac9f00ba52d1d09c436c309d418a0b119840fa62dd969566fc83bb23079df588d8790116faa18b09b857276d9656ccfc197d41a2b0ed2a961e0aed6f4222e4261cb2eda4a9e5f820bd94ab8e3f26eca73f218e83fde47511f55f6d2abbcae3622f025ad163620d7964b8510617e7bc8e3378419c4bf25282a6210923d22b3f4ed8912a4fd5e86d1d045729361c59ff13cef3f286d149a6db04b16902dbc2a00cce9ab76c7c20bb79ace3666978216354cd931ebf54641ef1ddb59384f84c32236ae71c60f12c2eb553cd7d6b87fc7fce1fd76dbfd0e28cb3bfedeb1e5ec51c02ec85b991c250adf0eb3ed5a6afb1e8546560ea0709168231cb2e682aef6829e27e426769a15ce709dccfdcf363af410fd5218ab81e9bb696962f39c121311fa64e0fd112aacf38f9d69fd1fd0b371686aae98e838081fbcde79d2446d5b4852f28b9559368d2a6663d6643c1fce6347c53040db0ae18139459655e53f8df6a895c59059aae14724b36c90dc61c4bacac15c11e3012f8c4c477b2f1bb9d4004ce230d22aa4e13301d40391f7a10042459345bf80ece98f6ba88437982dd044df82508747bc20518c0b048d2194c922fd9b08106c55acf0100e56a10045a24bf0df7dc84c62de3ace584055e0d2b68ecb6d51a52fd96269da94bb122723d2c358354e79585de9189ad6b26ed101cd5a468902f9fb70d810ec6986a95b4f0fd33141502822d048b41725199096d096f0a2ac35ec0d8079a90360c56ca07f84fbac4aa0748f0ea2a70fbd547462fa924d414480551012c7983cec08da5c3da2282ec75fc61d99120e8343ac1966ec72d4d0386c738465f765a1cfc40df5787af7583ac3bd64cbb7ede9c99f475d3e9701fee864133c80cddd60836dfa441a96981b9da19e4301dc4d0e14b109aa4c0cf9581b49427561c3c3997f29014448634cc738582caa3c52a4741f3f4657e8215e4cc9817aeb6612577d2a955fabf27c4c6bde3bdbff20369f25f7ec82be0cae0459e5c28d946e85620c1ccd939a62248a85efa3215ac372719ed1caf4ef9939281000ed0a36c10d13cea99f82eb024d8b4db3847a577835d053016307f2860acf730217b7d35c88170763e8da89722d57e7da9c64776d991e6b4c096c9cc4911b841c2a230a8e7c84e591a1b898eaf1e951cddccd1d43db28264ecadb9735afdfe747a79750e96a9f7ad264a0b65020daf06dde4ec72edfc032ca347dee9a24a39cc37c58d738bcc2e3f277c5753b118a2e597c14dca4cf60c42ca03507e973dd62346d0c516420de8a52191aa6b22936d70de89afbf40c31d999118f80073e402dc457744ac6f546bdbde6dd09b377c3d7fac1dd6638191ae7256c8754781351558a94ee20237ab0d1082e526f83acf18e83326fa58f6d8b074db0f44d7ea467fbbf3a25ed0710623434d7449814d7af3d14bff68c6948ef3a0390ad094709f5c274d767b9d919306619d8235eaa1280bbb7decb937b0a86df32d59d2223cca045a8e9b30062db72fbcb89c040cf0574732002747526e9152e268162a5263f5b2b84653759fc72b61a4eb756da8dfda1e4570e753b73538c561f9b8850215cf06853096e8ec4207b533c7683d63a4b0cbca23afea585ceae2358123c49e5010e810194dc536b03b9047325a613aecec54355846e808c2f4e770479e4cee8c142cc0d57c6496ef354c14ac6946422c34d2cc5aed9c7eb33dfd2702d1b957700f56beb3fe8e97cf379817042f0b5d2ad3d87aa0f86f6ab063953515f6ad45e14e455e49be57d255c7f1c02e62402f3c2f3512e95b953116ca21145441e12afdd6b31513fa4a8d12f04b58bb7a6b031567f99a165668a95580936e132fd478b6ab8cf124ec2f556508506cd6c2e8def50db963a4f5251d1088df02c2f378c690ed4683ee77030059839e403a9057acf2c1c4b503d5fd69f8e9b7f0a42cf5744d287d8bfe55fef35b7d1dd7f47cf9a4fdc417ce1ea649164d1296a7941d7c577bb62da4d163ebdf23b138e5782eed79402ab571eb3b7b87bf7b94e107fb15618ac7bbebc18b525ab98dd7e8cf212d28cf43bcef9377aec74c9c5cb6dea82fc6d079f11b40002a9fb4750506dfde021262523bede54f188994a1e1c2dd69185759933f70d70a9e9591dd3b57544a3780e94c39016801e690d60858cbf98becfd3669e9d029537bafa66f886474b5cbadb0f5a4117cad7e8c80eb190408fe89e6cdb44da4e773b4233070f49560af4f4580f941c1449d60843abf8f4d82ee20c8083582a0fde9852f70fbb45ad122de71207192fe9407e3bef28e2a74ca4b2838662fedebe7094aa798e4c84f2ec6e35d1e4ecdea8dbd12b0646f36a4db41751fa6fb64db45de4a4e19e20634c8911f9b6219f2d8e237f7f879b41b403aedf954c68318b2c7a28ce9b58c4cc7bb0b3c5263185a5336360e6063961d9b871812cf43ab44628d5025dccb0b6632acbacc84e0bd015807bed39b57093318b4b842f3366c1b31e6df20f7bbca88f07afc66702c56c39be5bc453b8f0b7253780a45069c0e0102d04a615e9cab183398931a489e481a73387bca41498fd1aa9cedeb41cd19804a43a76d219fbdf7ea6712cbf5a94465f73455bf02a3f47ab88dc31b3ce0294142f51ccf1545d9ddf5611b50301c4f760214738cf3e49e58d1f66a6dbc1482a63495b9bd56d73f45985f6eb94250ec8efc30c76aede199747fa9890781111c34447f6c85dacc4f3333f4fa8142671b63edb2fc5055b3248dd334060ae3764891e63dcaa9c7e5b714990a22f2c3bc2c3bd042b50052d90782953114f8c4113144372afe7de8cefbf30b38ee5700218c0c4a2655efe912e8770910c4349f2e16bfcb94ee133ddb746b23c320edbe71a2794d2fb1db59d83663166b61e2ad4ed99b50b8f801590bbaa534390e507c3cb79bcd1fa1c2ab5bc1c7d92ac95ba5ae7d17cb57b9e0e509ccb531b7d967a4bb41b21b337340c0efcee314ac6ce65d7c9e12f15464d1d8721ee604ce1cc662844462234e19358674e58c14dc37e6d44533051013b5b910589e2af1b77c331715e9b6dce4589205d824ee159e104e14683aa947651b162be5afa0193a0ea0056741b716a5e2519d935b1f2eb0318549f6eeb890a00b39e343869d9c06d7b3c5cc81147f186aaf1943cb0adc23d5f92557b11cfb8f3a34da213c5a9f6788ad203fe8909bd0637175133034ac503a39f374c07ef0e70e7f390fdbc80a53e045cfd55a062c71d31bf043cfa72ee9159da989bb1ccd23fc2d70b5981289a576f4545b03c57f20bfc12d5395ba282693b4fb75b138312830cf10666302385b4a23b950e99e1e04974c5573ab656138e50565e3b9e23a6693163d3513072d8b50656de1575e624c21982f1c843f2ec2748eee62f32c6375af6f7227a2b7ad604a03583d799605a810e0056e5cb0ee11a8879422131e4640574f89013f23376f4f891a37787290286a47d97de7a15e126356dfb6d8f4d90f4c7209eb8cd740ec6ed58f3edd1e488047dc0d1a53e845c33ef98b8b4ad0236886e38ea45ac604935dc1b8801c9234a9a2dff9e558e7952998f1336ef646812af82b8d246f658b04c25c7997b1818f6f6063dfd7f40dc5ac6c3ba610f69079fc06aaaf292bd6e982f1e5e9e6e4d6f9760d9bd8cea777fc7a0f037556013d3ab2fcc727615f27c74640844df6158d364f566412869fad5d46bdb7eb377b7e6d2885d2685408aa61cb1962fd00e081011443b1d2d26fe087b077298193b8118c84e69ff8e0989175bc37465aa01751a8a6a763422dd3d121a357d6d7812f3b0f509b5fef30a22af0cfa7077fea0deb6ed8ad8ac0e8f8bddb64a80fec23058b5436692ff95bd98c89ff7e2ad1567264a131b765e0574395b80bbea65bdf51fbb0c5a219b4c0b32e2a1f6216b32cc631411248b2d3dd94ad64e73d2f204b64a0300e0a6cf152ac83385b19e73eadf7a10f568a451f26bf68b23f9260e4d16109d03e49da0835a0dd5fe31162807368265f8be93ec9ee134167c15e58a51b6bf7ea3cc35ff854ce9199df78d1ebcf7089ca6716ffedff3bc70a37d00956e13d61843f9ee88c232c5711825880088cd06f68a324ddbc9f5e09abac2e9b5f05fb02ae39b4a4dcfd1ede6a95fe8aba153e4e13be760a124a0aecadeac43a1ec88055d659f57a8fd4185fee6b8b4f3d2a5b6b6bf470bcadfeb49bd4086cc1abdb50b6fe0cdbd9963598fd8899a544e0eaf561aa6fc57efe29bfbf792498dfdc820b299a0acfe6f73eaf3abf8521745d82cc19d86824916091bc4712629ab42c556371d084bb88bff921a86a5a4641254c230ac46ae09bd09a93e3fd65524cc0d139a9f4f055e36cecce5f19ec4b1e6123c053fa3c18a1b01048529238013e754a9bd5d8c6749dfa972ecbcc490c737ab2c1629f02a7ca31a9be0e78520266412d8c2975a48336848cf2ce57575b86c99e8a184fc9129a22e516a10800003fa7a7e3c5f055fb466ad754673b7caaa7d77b67586a587973e7ac26f8a052ea7bcd63405f072a576ea2aed2b9c7020cf228eb1e318eee4848866716563255d243415a993e06e0ae39a614baf41fc46ffc664a93cdd35ad860254e6b3f5fd7865d3609360511f0aea219460b62f63c0234954d066e26f311d80c21550310406e1e388b40a95673b23a9a2940eb9f9d6d9a01266c947d8ac8892781c29dba3986bd70110e1eda8334aaf5bcfcead3237f80cc836f50432ce9219af286b65cb143aa5c7ccb68c472347da911600bed06345db94f92206395eaa89f9b78f40f35f2a4423f9e1719dd00cec493b6da6c4aca74cdb840730d1c3b7da33b6ddb0b4e7e40bb28677aeca671391f7ace5583a386f19958c2de27baf8c62a5df7f930e326c6390f9a97ed6f86858d58030c74efcfe7888abd849474897832991608a3bd2cde18b0744b00fc56a807bc3955f7e1c54bbd520a28f718524f544c243626427ba98b518630db09048c41b3faa6335418e8c97bfc9cd2525729125dca32871c110ddc3e773cc1ba5246977399a572cc591e3a772de94845e869aa35d9498325f329c8ca3058a42e8f296196202333804df4a2b51bc75c9decb0bd95b5efad4091596eaeb532a5dceac286366584b49fb99775bffc5bb2dd4cb5a528e68a59602d6eeede65ae09d203f856b2afc100a2c563ca55b094440ffa66b3323715788611b2cfc64338bfaf3f2b4d86420bb8fbcba3eddb555d39b65ecfdc2d62c8df6bbeffa8adc889485ed054d9359e2451c33b0a7c9e96432fa9b42c1327385ac6072d37a195e0add065f3d19c268807db8f2f2fdf052314bc3927c6d82eb1b0e42bd14a06e4b5194932c3ccb409a2f1efeb392b1e01cd8d2c9eca6e25c6bf340f5d04163c1d88b8388c7075760f1a748996e782ba2f00869a3a2207c14229a0c344bebbc7d46cca60b608968aee68c846e7156baad9809cab789b5284bca024ce67e10874340bab6c60b311566724b0d7104aeef5a90a77a793760b91266861200302a6bd8f3daa81bdb99f8b75ab88c205ee196123ebdc7f69c945f8b1411a16767ec008458ff5aca2e01143614c3a965746bb5b26168924a76be1e6b7a75ca49283be06089d93a6f0efd81e5450502ce69f1ed906483503e6e6c5c0c02ff2d507419a73eeae9e0a8af465442c09c7df4f867ecd169a8e8a1d7dfeb74ac89dfd70c0cbca1f592bc85ebfc3c32a4f7eb5d9495282244a31d4b627ad0d694499cd70069d698c470e75adbc8bb2ca25e722f47956ca21a4fe25663abc8fc946bde366a683e3195b8254f7100c814e30f1a4a283d01816c8916be67621808d87538d1c94b4f55ddb2c97f9e5f4965d48706780fa485cdd4464dda50f3d08a5f8abd73b691d27a5c9417ccbb922cf71734a025ff0af5d591b4695922d9c3af0f50dc535e10e595d1397c992063872d24ee24e12940c999f7b96603daec6d97ebe2e15f3d9f15ba62ade8c2bd3a3a87ccb7b01c6ba07073c69bedad64c608ee6daf4ea355ce7cfbb92d91d8c63425bbddc40c62964e9fdf9977440eeb26d741ead758f299c07df8afe15cb59cc4673c75da916d45b53e0ffb4526f52b4e060bbd227fd32cc454a1ed2183d97d796bdaf0d031b3d08302017ede20b85440fac0e08cba1b6cdc4a7a663d8ebbfb2fd05c238d7ad4ec8457ca815469e15a72771ca745a0aba9c72943aeef46d1b6d07ed3f2938508c68e875d44d7283edd31370540f1c2c7a652d782409787988eb7d653a2800f3851428e9c4d5d02fb936baeb80249b9dd2490926a4055221ca2ee4f2cb990f1521c8c45709449f0980030577948796806fe4fe8d985a7df95daedf2f9a6ceec4dfd9531539acca4cb6d3690d53925bb270a7da17480f933619c6f51d5dda54696854ee2c0dfa1aeea077d573d6c39485cadabbbb32d7965ea58d0ae1e933c428de80a19a0c5ec9321f29b47d4002e8a2f42fff07a3117db71023230a9c061314edd4325190304899ff428814c8724ca32c05c24d3a75f0ade2da029eac88ad6c24af68f382bfc14bb2bbafdc6062d1a89c009c8ac123dd0220a37637a411fa239446cfd88e84ec5d19ed97460035a023c844aca07e399847142e76fc1728259a90fd6fe79e79ab631e9016e0c8736fd1834b00e2b5aadf69f98597b7d3532277887319bf407023f072e4d67025bc0a9cd780d71aea2dfc094832012955c89d313d818947ddc6117eac0d48663c8497d4e101a6b4a8e8f56c64405ca242e95bc98e34dd5b2725bb909b72e2a04d25ae712c01cb94d7a6fd1949ba7411634068a62aedb773db5aa0e19390ad87d5040939f94554da78e5a6a8d6ac80d1184a1aa0441840e1df68638ca5b8934210811b5a6501c9ebcf8b3c70476caf228f5a9c24c38689f48b2509c9deb0d1e2989b0153a7c29ab250c5e6dd308bb2314db2303d3835512688592c18e310822e98902fe079219cda5833c9e74a4859d886c2928d89a4550650dcf131722ab7bd5de95c8202704eb89f95ed389e9a58f8a120b6dc2d0e1f9889dd18e06d6744e2beb6ec89cf611a10d3b600c7244e61da0ff4c893df344de0a4129de2edaf7fc311c0a3a1f83893c0348758ade5798946b591609941900cd0bbb5cccb4883dca7b084e8fd63e82c8550c631484967b705ad1f2b0f410b1cb88e39b399d420233f5bf767b5b32ec24021f4cb03fbcc01236d63ca2a7a3b080375298e90b4087086a3109a4d3ea581f2aebcd0fda092e261c894582a8b2402d612847f09c7bbb6596bcec1b2e4075011d1cea59376708a07152591e1190027338d13e78b3f141f1bfb040b563642e59961ffc89081d9ebb7bc1f22bacef114023e1d69afb070fc956360e6a445cfab8a6a8084ed1998a200de719334abe1e0ffb2286a8b1a86af138dd4f7cd7f97bc011f802b6000b07c83a7549e16c8a2019a7e5f6e3d4bf62c5452d3c14fbc0d9c0469fe1f524732b716859f70722c603eabab46f4fc9e43d63d8499f76c293ab128b8b1b9c861d7a3094eaa1ea243766de5895a1f7c672ea8497f8d3b31737e506996513f47826bc1da0f12bf5f818337d973179c65c9b36365cfc898f820a66358dad386a335e9b16f2943318816d9afdfed2144fc5c4bf453cf0068fa9bbcdb3c47c48921d9ca5fce62fd54093377efb18c389f7ec5b6c389b3a34d9bc049d78d2e5d177aad3e6cf2463022386ce4873d9a36aa730fbbe711bf27616394fa78b50d7b0140dd5af6ceb2cc852d5e1800c5d442b3f7c7c4864cb5d2dfd4bb9d6aae8c80c0dc40ea95ba6b1ebd851732d07d9b24420d633902159e47023de97f0d0ee4523f0e80978f695ad0a0074ab83596d3fe9d73ff960ec75f4b3b53d65acd12b1ba51c1f1ecb4818eca3b224c6425ba84c953b6cc275bf1877df05eb03fff06043d3daea3706009030eefb0fcf077c5c3af9d7580dd7a3728ad3f884d881eff0872358a59ed428ef9d16192ad8c78a7c1b16ed93e32054c7758e5c2b6176e92f6ecfa7badb7a43f17d0ee41a2fca201b55860059ec2d14f0fbf96a170a3899f2b5ba69852ed9817e625579e9c4837989581eadbb0980178890eb7c20c22202bea07369f1b790e2b862b2d99c3c10985242c14065b8ce3226bce13390ffc2ffd5a77830d19a0dc36b804aa527cbb00d7cb9f152b7cda2a211374affb6624b9241f25d955c55f4d7b2b4f0d151aeffdf5221b9b9c940eca4a5ed343d9ddd2538a59057f0d263e1fee0721626828959a62894c37043e3e605f8d1fc54610e9ad2bb876bb21a038fd6fea25472c5367b9126e7070c2b982468cc36a170bb50611f8d821aaf45372712c7396ec7093cf082fe5e9743602f4d409af6629424027c8dbae051105d3e9a61955a1925397d83611cb08b79fd40945a0f82bf5c858257750e20d29f5d3e7758376c15f4aab1d55529ba9ebfbc6f16d26ca84999160a48d3c74eda7d9e649724330c9bb0bba29edfc57347928c8145ce83028b696d305f07fa5892a4b0a7cae4b5a800740b6c796f738e922c61da3b8ea5a7072656cde49d27ed311fc9b5e53bbb3a9b6723f4a8e132e01e549163efac48e88b7184280087c0f34d66e807b49ed18f4bda5354194a061086f75e3d9690f31e278ddf237b70851dff2cbf97bd146e18a237ea4d711fefe86b66132fa730878c4806270f964071c9a7a000dc7c7653f7f467edec78c8e67a7817230f90db1ad4a88ffd7d6788a4d1dac930ba80d51b99faaf30de9ee4c4b06a13f580583547f931e3c56aaaeb4aab3ee0c6f0a5859b1ef3686e5b0c30b6dc5dbb5c97d120303a078b423792c67c7c3b3d56e41254c95b031574efa593a32131e5307e88dc602b5d0ad723e3133c7910dab490a5cda24d16742a71b2d6b07db17cf4996deb1b39b7b0420764c063d73951c4a3e334f548a58ce0c41cce721a5b61b5cdc5493017782579923b2e5574aa5c1bf15c50370f8931ca7fc64a489568b5f6866d61e1cb0681070b6374fed2e14732a1b1ea0db02e82d9a77e35850129c04ce155195cf49412e0db24a86d5ac334d9aca7311e8dd54e534ee05a87346cbc32207a05502e7e12292a598eefe052cd62bcaeca3a8c3954ad94beb37cd1cbff292dfe10ed140db0b4de4c48f44655b15da52e6fec1d59b32ea2340ff9668fa9891c8802f4b3f0f2da2cb54ed8a706c4c4fa1dc55c6c1ddef64ac84b7ffeaed8ef8f1389116ee85c2ac88ca048ac265cc6960667aa9e0964c26fce428a69753822e684ade5c3e3f561d6d95d14c35a46f91049869b1414ccc6f89c5a8dcf413f61bd342e6f3e4266c6fc57e8af900328961e0e7784f7388e89b44b9603cd5c2966da57ad8e7dc8898e695b7da273563494ad783b09161fbec2dccbc5c269914b85de7ef74e19b9eeb0523219a3a16711a1509c87cefed00fd6f2a4f1417863d005721a5265dd6568e29f61e5494a4c44ec8fd49be089b585f1cd8f45111359b438680d1eaed5728232496676dc3067f78ef4f60caee231580b73ab7345bdfd10ee9300faf491ac0fc53e8a7294b38e97901d07ea5874f5891270440ae59df7037e796884adc02885659b27aa0de815e740f43a026001555a77a2ba454046edf145236cbaab5870aef0b044425fd4f9a210fb694e05f11436d322b04c01d3e08240a3ade47ef395337328b648cc08c1f790722317113b9c92bf6034ddaaf95711ad3b116fec5ac883eeceef8ed7acd070043d1edd5fafba2d25d6791e3edfe4e604a7a8f39ff86f595f934b55980544690c033d54bc22fd10d62befca97ddf3049c381cf3a9dba5a4f01b682823175a98c0cdfa60b6a5da000b067f1bb31e678ae18382ec113cf1814ca5fd586bffebb904d3ecdc6ac1d6d92c25909b51901186d40791d7ee3c6aa269a29cbc9c1fef6beacfeda7d4dac60484d383704a354283aed83006236057c4a670c91bb9623e19708089f53c356d87fc1129b3c9e0a2279a97e9b1e42238cd66b6bcb229c80886b003c7467ff07bc866e1220de8600262308f5d46016d55c02131c82da69d43e21b1d5f74d08403fefff8fbca3f4c01029420ec267beb873755d00cb8662a84b4583e243aa8aea09599a4147e11b312deba159647c1bb2e24cf71c0c58003d944a3a9aea50b67cfc6d6062685a2c35b1a1453dd1b2681d09d89b8524246d4dfc83c794a44c28b258aea12f24ba7e8ab3c0e6aee32f06352624fe5fa1ea0c4be8ab9fdd8e3059796407517a0cc3c058a2cdd0aee9ed3979371fb0ea320f0efbb1c7b610f0f8d59243bb69f2c3b98de3e0706e87cd0bd1441f1d59cc8c951aa9e4a53327b13e3177570d6c80de3e2b303f1a2f901227f4dfb0e84a99f55bc0b84cec52241ccb708f485b2ec1268383e8e73665c686dc2a218997a88641f14cce6c309eee29c332e1a36b12845e61e22d8170ab3f070829b38e78c83964d7d9491498f08f683d22c2c9cc12d8633e3a061531f4564d62b32fba160960c0d4f1f70391347349a6a285346dc61369f4489102173394a53a77ed3dee2c81028f15d8a602e1f746133c449dcec6a97f8a520dd354c976dc46301f65335e50b3905495ccb77d8609c403385483901715df306b873f475a86a9e7170a039acc849870345083453889413697180898d9b726d6621ba4e63c9799407fbe38fcf78482616afab82dfb408eeddd89c5662ba420b7ed084fd98bdae125fa6eee8d11a4ea56b9a2be8f85a3654aa7594ac12b6f46fb4000ec59806a22e63d91b710975d36bd28cade89ab48303f89f5e0be85d372da94462ff5e7b0b73541f6593c1ed299557a5173c64da676f2bf7227abd8acee2c52e653f782fa2cce8739422cddefe133bde9df2bc3c4cf0b83e78ddb84362b7f4deee248683ace4a3d8e350eb410f71982de596e97e2c5254e86f3a3e72a8d39434803cceb7b735b8528bca7ee13e70e96094940ff00df4be6cd49b371d5325589760d905fae18f5e0ce0a391e67cf0ea3163406134127ad1da80a0980159303b319e1c30503a0920aad00e2c842e3ba9d2a2407d8432124efe7770dc5fd639a675b61346878acf9b95a71340b673c2bdb16ef22fae43e4cb1880e6130cacd07ab01921ceb402d361e98ad60a68aded2b5d490169649604c5d464a904932740b5580a928a1d2371c601f2a537517e07d907d696b224be0bdc301cb7a04e055747aa72f8f0c5205a6ee071c8df6e8a46fc3a9f06a42c296cc7c88c2847d0afe41893aec771491d8261377c62333678e2381e0222acbc89f0be7106475842169ab77c2838ec2094110821ebb510c65362ff32a62819446f1f45ddfaa45c92a8ff091c12138571019379dc371262e1112eccd82e26dee8e2fe1563e1f563154be40813da54c85d7c81f2a997f7259213ef3977cbd3d26a83a5ac2fe931e279327f204e5943c46464f4c853a9bf9fb47869bff1866182ad34be070eae8d918be31582f9990037edc164ab7588feaf402043214a0d4a919522796ad99a5539a239e4f563a949286f18250921b29aa3f715172135ed444db0c13c23af434b1a267f2bf7dead0efbe91f9da1b39431c05aa612289418ed741a5d90c1dba6fad5bdb23c5e91b413dfe420b4accfdc342fdadb450659410ba60e7901eca151be4d33e33a8264478a0d834167e747e9a88b242f7fb9bbe24b8b171da7aee56f7f466126a50592e3466561414cc93f2d1fd0e98aaee0a54e2f283137867827608b9b8b2cdec71ccb36a1b751e3879e0fb74d9634f690770b675f5549e8062d80cba41572fad0df2964c4c275278aaedb42618847898f602d112c7516c43aadf0616546e801a32ac539e10487e8acdb8559d2b7f549c71c4200824756a6624cd7376e4bfc9239d413fce3a51db700f189f068fb993d90f0f0931d6588de24143b5c2d2b5c0d6560f4822dc02f4dcc6b0564db585a4778b7ecac89105afc5b6e5c77b78f349c903579e34560c9cbf0342a9704d640981f7be3375c93548bf3df73774c71ff68cade815f1a74c1201a0a00a140541f0695d7ae1d94a9c3c651b6dc827b44d5adecd31d35d00e6b45efb3ec1734e7d14ca8b9caffe55a63d044e9bc539757dbdb5c63cb232a05cd41b8100e09b64ca7fd3875e02a7f25e19c183a518598b31cbd038ce292b18d1474fb5a48ac66ec8906c6d6d4bb2e1951b525d90d70f83243c1aebb68b8f7258b77fb30be4acb28f5710c43c723bada758685d9a3f95d4458da37e9cfb2483e0bd90722ed9cb435c37a9fe6d2486c4f267d403518006539ce5aff4c1a8fb90fdfdac34a55fedfbc5ab2e5876f261a76071a65603ad12b8a42c6708450063800bfe40f87bf19af4ce7456d1070114ea2af90ccf373d4544067f21e4b8b113019dc65974633b58904f93caf5f5d68980fac5dc6e6a7010fa8a0ea3d0a11a75d140967c279a0286a4f44c91916618ffe81ddaea9d102f38e19e83fce77a18176648e432843f339891b03df3c3a72d8088a9547114da775d18b9a420c8c3f2355f7029e912623e5da03de10ad8ae6341ce30205382551482c5c99c222ab28fb8e96fab7c7caf3771a7a9babedc4c4ef466f5c37041e0d44eb0c54205a52a50395e2d88bf9cf76cf1643d790ebf3aff01f4ebba5c8b1f53009cb9bdf0d171317362d010f628f90a9079a1a705658993926232cbc23ba5a1ddcd850948a6bcb1662625a4436217bcbbde59652a62465430d8a0c0d0d19ea60224322d30ac0c1ce1a5bacb145f7bc3ecc39e1cfee398b66b793ee8e3ea74b8f1dd7d8a19485ceef7dd2decb7bbad55c4e161f7b6bba17e677dc9797b92eafe3cec7b73e1177887725bd251965541a330ae8421dcd22f88ac0fb4f22f86ac0fbcf26f0c580f79f43f0f580f79f42f00581f79f40f045c4fbcf1ff822f2fe730974bdde7ffa40970eef3f7b6010d7b3fe9b3c9ff4826c23bba4c2279d905d2ea10cf84221bd5262005bfd9f2ccafeb20bf84af9f156bb527200bdfe4f6e91fd6516d09522f4d20806e10183d4f0feb2090c02e43d6528080c82f3fe0d6f28c0fb4be88a79ff0a5f45bc7f075d37bc7f0aba7ebcff0aba66787f17e8b279ff87ae20ef2f035df91d7f4634a24c3fc39e845e57f24447bb07bb92226e122b1ee689dc2456d0509f889bc48918078e153dfe898a33c4df50f3f2d9863f52b3cbeb70934022c6916fb6a4dc8f3a6a57e5e934a0ab3a013d1492bf6a8fc700be6a18f0c75f95c85b42edaa469f9203e8aa6640af59f8abf12efebcdf81bf5fc9e06fa503a39030ea4b19e2746c32f6d6f6e6dbcbddd1b1b374c336ecdaade62ae07fdc20dee622e067b809f820f7006fc335008fbb80afe10af1afef69e8f17d55c0bb18a0262f40884f014124000107b8aa23035c951a2d405c2d2c201825721b29a88fbc75d42d5c27ad9174739363db6478225a28c66d2e17e6199c02dc8635f4637edc14f4e8cf7057d0a36f735da0473fc87d48432b6cd10e7af46f112c6ec8cdd95bd30673618e21bf64ef8fbd9c7c984c58d7caa753451151aac1cb5d9701613d032e05be0177021f81ec6f2e7d085c237a50224a44a09c555932232a40810948408bb93c3c909bc3d770b31d9e015702fff2093c7679104184081d584e2487871d78727841724182419a48150989b574ca9c1641e4c4e9d830ec286aaf1eb9af1cf9ca91afac1ce9e07454594504860eb6875d1d32b1abf91d5cce8fb7b1b379c8e504799b639b57c7d78b2d767186b9cd64a8877a8b6e12a4c8c6491311e5d41475519fc1b59151abc5e5fccd3d6e101110c0ac226f351111ac1e48e344f730315d457bfd2dae858a845ee523e6e5c21c8363a8a9b904f81f77006f737df819ae003ec80dc0db7087b86e0fcfe302f135dc1fde021620c010202eabe787dbb26401020c40003e04e0aa8e865c951a3440dabf871b210d7d1a1926900b93b10b9361f08724cf70399565c3ee0b0d765d729501bb2d79861b44e471f378ab860b8a4bde8a4bedd3d3d340355cfffc6c3972bd30da704131c95b9df443db5699623fb0ab9ae165c3ee0a0d5c4e0c6b89b5d4aeef225d24bb43c8ebeafccde5e16db819eb217029f00fb81578ecaab0321eba065c237e0237e244e046a3a018d730e246246ff5efe0e2d11a473b0c7189f87af1cfabe35daeccbfdc1d0f73ef4fe0429c1d2a7059492c246fe9f07059459725c3e55021accc85d3c1b28a2804402e00be869b83907fdd1dfee6b2de864b3fc8d5e167b837bccdcdffe3e2f035377beca6e4bf41445e020f53b377b91a904052ce41546474848459472ca3cb22835524e4b28872b82d4b00b82d4a2aa994b52a2a2a2a2a2ad9551591617486eaa83d35b0632e478787ca4272787181c1747278d841480e2f2e30980e1d5c8e4c6b8bb93b0fe4f290f3aeabb383901c5e5c6076747278d841480e2f2ed8ed328c0ca73373f7e36fb89c19fe86db91b9e62d9cd986b8443c764f99861b34c4571b6e6a3cef7fb57aa94f71300bc35c30970959afcb727259446314f128d51b4e67e61acc8303c289531c71c411070e91e7c1ed48fa36862de6ea3c90bbc3d770fd795c1ede75739e017702df802b818fc02de269b8f46f6e967f868bc3dbdc1bfec705c0d75c1d1e02b702ff804b81c7ae0986081d8ed2f0f92c7cd22dba6308c9e1c505e688089d9e8fd50556176010987378d8e1b320045f9f1cf0f579c1d7c705c3600ceb00001cf25519f9cce6515e113929f2567f052830010914c183d3993976af0fc2e5d0f041b81d996fb8dce30611f14f84081b8c88cca740605c304699e50b48d305ace97f5d95131aaeaaa812a13a5221792b290257b5e4adfe209ccecc37584594a4db320d37a888ef718388fcebb25c97457431cbc85b379835c4eda9384430ebc85b2ad5dfc0ea7162da5c795c560fa4e9afe1b62c419a5649a5ac8a8a8a8a8aca8a1a45445c1591b7c8303ae3080720d8cd32cc8d4c8686b668d2c40900b84884dd1a7363153970514808bb5886b971898f4feeff1ba7f889b9910a2e02d16cc3104e8808e1726630d29e9056a2bf7f881b7bb8c8d35e733e78c6c111f2638b1dfd1f5c4ed0108f5d9b6c69d8622e7d201787afe102e0795c7fd7cde17bdcec5f57c8df5c1dde86cbfa20f786afb9f987b81007bb33d3708388542299a543d118482bf0f9a4b7c2cb7f352eff793019dfa3dcffdd9edc4484e890c3184500c00169053e6f854f7ac1482e180906234d8c5431128691584bb9ff86ab22625d9513af591da2c5e5509c2d76318fc3e5fc5bd6865d995d97d504d2b40d5f9d387d7fe5397d3f8fcbe201725b926a4f6751a8aef674b5a7ab3d5dede9ba141baeea8cf6fa6b7ecc6073556404b92a2358838adec05cec7176d8a216baef9382dcd6db70bdbfb932fcebd2fc10978877dd99afe1c6f040ae8fc7ae671a6e9003fe6fd0103fc30d2ae2ab031e6688ff716deecbd540cd353888c8bb5c0dd4ecfdbc1aa85986974af9632d41e07e92b7fa1f70bff2b4ebf6b413d0754700bd1e7f5d1f0f03beee112091bf6e91b78cda758faa19d075d3805ed778deff6ad5f5d49eef221d5dd6507bfd3497e580cb6ae2adfe99cb121a81d6a37d7f0cb70509d2f4fbb82d4790a6fffad8efbf4728dabeffa6e199fbfe7bd42e083daea6c6f3fe572b7be1777d72fb6453eb7a57e5a43d98cc03b728419afe064107dbc37a442e67561e17c65f56ac885bbdd541710d2277e5adfefe87f24a1fe597fcc580efbf3cfe6ac0f75becca901970554e9a8caea19f074ec733c52aa2259acc807b9fdc8f6f6f52bb30ec02f3f52b91af5fbf6b57f6f553ed0aea799c22befeaa5d2f5fdfa55d3abefeb74be6ebcbb46bc757fc19f12c766f527b1dbbd061ff5da4fba4bdde617bd83cfa3b5c0ef6f45ea4f65c1e7239306f63879dcb79993be3b5d73a2e109bf63aa8888f4545601c6e606e1011225845c485aebedbe48a7910f27205d043f37091ee937661df7f93eaa5a9d88897b1670d997f014fe61cce0748942746407bfd391c10edf5cf6498ff24f45c5e871b32338c8a48e54445467bfd0cb8aa065cd591b7fa77389d56c6b0aa680b1d6c0fbb3e32036e0f5c0e1d32a9e9e55b19b6cb1fc23cf62f2e435c0778ab7f072e0706c3f676e0845803bbcd43cedf20221e8608ac72d2ad7e1d2e2706ab889ae8e27faa1d9a191b62b001c3bcd8c0a25ab121a562830dd8c35c985f2ecc2e770816979379cba74acafdabfba996723fcbfd58eec7ea22f7afdc4f8594fb53f76bf142ee57b91f2b8adc9f723fd551ee47ddaf850ab9bfbb1fab89dc7fba1f2b8bdc6fbadcfd5a9690fbb7fbb538a1a58d8f75831cf91ce7437d4fd2aeecfbbd4709c52a8661231a910fd0095f3c91bde30b68443fc0286424621c406b0061d6901847c6f087448c83067b0ccf9d35843c9883616b54d11bf691a3700d21090434a42acaad22ea56530134b99d3580a65011e56e38b8eea51d4a19ea60028544888e31e081b53176e7e86043686e8cf4012542e4ef033d72520c69528af4440d25a03449aaf549125214214ad911192ef1a49bd02119caf05b024953b24819765bd7cf71395094327ca4ceb44452867f8223c33f713b2e79a9432da1468a0aaa5351515151314148f32d7194e13bbc350d3a14818c6e408794a0f919d18d204d7f3c5a6aaf1d8eec4bb96951f6264ee4affa83fce5c810be1b59ec469c08639be8e30ce50fe3596aafbfa3c078b4a1362333b2ed4d98f5bd7a3b6f75f556d7189f74bde442d912228fc8f3883c22cf7dd8e8eefb6a6594a10e1aa0321853b13b0ca8a34c9a0ef554a2403008fdfe19a55f59123ae44074c881e89003d12107a2430e44871c28e3a14f8086a6156de43d30887cff3ea35fd55bfd9d1aab270fc5fb6cfc26378644b963f5d77cb2e446898d07c747995072fbb84f7bbdc491da6bcc8a0f334b27c7187fdca72691a07387b24daadc1f13f9464833bf274b864f7fe80ffd69afe9cfaa639b1cd339996c46434cda6b261042082184d29bf890531ef7b9247f2e29d38caffab04728d79b9de199d196653e19110c827d7fb6a45f1b15991125ca8c285166448932234a94196546b91d6f4099514ba7444399cf134ab4194519cafdb6ebbacbfdde10babbbbc4ab968df4d3e59e138e2849261c4a9264489728c9904e91fb3fba244387114f770cc396b1a81d486795a7527c0294fb87862c94f932a01c638c104618a1976344ea5c9464970c5da6faa53df41fed522aba4581c4e8607b3d93da45bf9ffec020d9f74f28fdaa51bad5af861a4f9e4081d251a2e4cf7f1a8e8623535c95da6b0a949b564c31f4291ca8bdf69ff6b0ff64f20d6ba31b1d6ca0a874effddaa8819488a20f448a6e74f0b15a4dac21cd8685321fe52152e21972241f22373adb92568dc59d502a2b77d5e202c3e3ead8e1c3f3415363f3637ba161e369a016eaa16ed2445da454647484e4433c6dc4c3c3c3c3d34748494a4b2eac961c5e1ad0a5b9a115e5c6300dc95fda92b794da657b3437a0cb6a9ab5da92bfaced6997b523802e6b356bb1c8fd76a86be8b73efefac15a0bd1b03737d65a6b6d107c7936ffabaede4c229964897e708a41e4af74acecd9dd5cceed3c6bb5f1464d48ca2bb3a55be4268e57e61e4d482726674658113aff6f027584549a249783cd2cb51d68423007f055bfe295ffa7f520fbaa892e4e7a1a1a2a2a2a8241609c3e7c59347f7e889161e4a970d57991fb2f7342eeff7ee4fe966f0e39ce9086720fc9ee26b15d4e8ad54cb31b673a75a81495d48a8a6595a385e5f28204c423875c582d39562c30312fee03348d90542b29951454ccbb00b90faa3b99feb2a20f55e2364b9572bf76714bf4c18894b40cc33a72c487df121ffbe4feae3e3a6456b9226538f4654348b91fcb86b221968cfae920843460d8a1924330084c869f693c2b3d96a77b52ab6f969165f8333287b27b43d1f90e72fd6f9681658abffe1c9a4396c7d1882d81d8d8e07073d3ee32ff339ee735c7ae7359c9198b66866f27910bc1235b86163ff04809366a9d7995153695de9ab5deb7149079963d534ae92de2667f21bd59ab59d3944f4495ab542b365eebefeabbc9fddd643a681ff107a760ff836c6cff413432f71f3c42eeff6018b971e570b7e195c5d8b3f9084813c3306987822eec75b88137c09796caf057e00df4e97f2c193e3ee23ff8c5cc47b4c7d3c52332005d8e81b4d74518c60d91b9bead5a9d5c0e854154e097634ef897c8cc36fbf0ef2aafecb6c1aff5c6a67573642923a9ad95e57f3619fe8dbfb4af9956313aa5dbdc9c69836ff37937072acbf0237c45207740f6cf40feaab5abf8eb5658048a403df207957ae42f02dd23fc65036cf57721064f197009b921d20a6c96f8c666d82ecf4ca7ed4a08611095d54cf38d2692daa93490824cedbfee85437f363d78ab5d42b4075d4440afbf077f39c05b42b4eb882602ba32008b320eb93304228946f37c2dfb272a8ef60ef097127e44bb624f6700bae208a0d71ff1573b08c61dc01ffd4af82bf6b42b02b53702e88a34805e7f2fc148c31799e4fe276c70b0c8fd71a86b8868c056ef009e84b08e6c44a2dc9848f68f581cf2990ab996a5bf1ab664ca059c1bd2650ae42fed5bd380765b0279f22737446edac71dc057107cbdb73a68f5adb0f9cd448cdaeda93819ae1e044be011b6292291d1230e3c00b18948b4b1305828c36575eb6010bb5d971596c97886ffabcdd84d75407276b5bc75b6316adf0f040718846e13c3d53fd05c4e7d4be967d9a973d9c64df68b7bb86dd9f31787814420b9bd0c244601c2d99e65acda9539c959cd5e3c64f57d855d1b2fe21e280eedb5e39bf61a3a92d9ed020b652cbd598647d0285b8fd0081e2511a1911050b6b2818480008a4b5129dbe951292e01c9202a755113654b65137551546aa21f9f6cb1e9f3d3443e9ee448d956ea489ee4238523c9267228db0c9343b28923c9a19ec993adb6d1cb929fe59a2d4fa6ff55efc943525e9125b783e404f771299aa8bb508a6d0045190051063d42c67012914a0c214d3f18264f96b8c2d82e27c5b2cc445f15d42d67cfec421c79638eafcc1f567fece9578cd179513e9d63120772fefeb17a4737d129bd934d7839c89002134fbe3dc97eb5ab1ffbf8f2a27cba7ee81d63d0d6f92b49fd0cdb566eedbc3db28d3b64b45be38aebd6b0d3528bd96a33ab596bb76d5e56b6dc366f4bb6a66dde1cd99e6cb7cdcb922dcaaad4ebc411a624f2a5b0257f851ba2b2cd9bca369582ca5d3e6553b62ddbbc5cb62ceba2e52c578c666c755819bbc3f2b03e5a9e693e0ea5f8eb40f60969a607b2d720bd6e79f7cf9e70c4ff6ef5434c8ceeab75ebd7aa9bcb719f37255d3e202f21bcd56ffaaf3bfdb7eafe7bd47ba8db5de8adec4f177a4b7bd385deb20ffd6584b7faa653abf65a08ef37c25fcdc1a3fadd4ac3df2a834959aeb807383a214e3f48466ae512f1bcc93ea472ffd6b38c1b6b6e6feb76644e2a87db89b9a39252ef48ab893524cbfd31378643b85b7482b5f1768c31c69b1c3f2a757db794d3366dedc1a634d2195f01b9b607df0416c676394fd4a7c3b89d58ab091ad91a633bc7e544daa63929c5726aad59d65591a309d96de36a6ad5994c768a0c1ffe9cb6d82dc9f991b9835d3f2a856d4a8aca144aa556565856585858522a292c2ca88e8585e5c462e25858587a98b037acb55d65bbbca114629d4b7bfe9d522733ce723916c6ad4d5227cbdbc66d9c69eb4ea7aeab2998922a2a5b5795bacf4625955a59e17252ddca25d5a9545c8ecba4ba954baa63592975f3adb7d3f74cf1b781b875144bbbfa158bc5e5b84bf7f212dbe83e0f2626e69fcb894a1dfdbcacd4ddc718c7c0bcb8b0306ec9b162c1aa9514c65805a7a0708731c6352608693c250716ca7c73287bc442577f4a255209754ea75fe6a69ec755bd8ebbf2f7628f2f7db9e4e54718e45f7ec31b76bc7c095d2c2fbfc20dba502fbf8329e88a79f92be84a79f92ed005f3f21fbe5a2fdf832f1f2fdf06be6278f937f0e5bd7c21d0f5f2f279803dc017cdcb0702be6478893f23f028d7974aea954be2e8ea7f5249761fb9047593385273ea536e12481ca959f5ad9b24c9138f43ff090fc70aec59ff44c571028b238e3870ac58796bb36d5ea96489bcd247486eaacbe3ab52777a6bb7544d8ee9f17566e66d8f9bc40a7fd2e3354e47cb2caf399223f5d0eca4f2c6dcbaae14e4499e247934ce977cc9e6c841332e67cae06ad8233fa296cb99279867f2efb80d6b529ee54ae8a5fcea56e8a57c8edb412fe5636e0a7a290f735da097f2acfb902665835eca0a7a297f8bd8b82137a3de7676de18b229e525ea65ca9bb81c95b727151f6718199dba548b8ca2a20eb5e2392122cafe1505478a6a4b5d999fb747ce71651294289367f64c9ff933a758f2d616dea449f6af292a1b0f20169797f777b9cea43d7f9517ec432d5702c1b4869aa8703a360cf3ee6842e4ada22b8dae3ce3caa32b91bc95923f90c657dbbc3a8456dee872bc8acb89791b3b1816ce2d34a8c79b71250f39eff11e5fe23eed79d08ccf4ce486c0bc8acb818181813e85ffc41475739523874b0e15152ace815cc5b990100b0b6b9bf7e61c57fe4c41851cc252c85b1edfe85a39585e85cb6179695d88c3c2e2495838e7e1c9fe2b96189d56ce8125d016e685a9f95af3b6e626b1a2e1683dab97965a2c97d9c2e550976dde17d6bc2e2e517e9b7998991eb88d82bac85bfe33b7918edaf37ef11c412ddc4441dd242666d54c7a6888ce98bbcdabfa795732bd5cce184a5da6925d2e4c528a028777e78fb7268fb7a0b4b7f4726396e1f64f50fb78cbfd696e0b7903b5e72f2fff9e67638389e09837257b77f64c1e6f2d399429a8106a4fc95b493a5c66c1f2e70bb576dd6af559c71b32a6b79107e4b163470ba5a4a7a7caece0dec61eb0070f1e3eba4ed23ccdb383c7f6367ad0ebd1039e720c7ccc9a139b186589c2a3476cc196e74d2a4cd947941820b9c43285aa80412a1c14c7a5a5dac3dba252a7bd8d3ea00f97b2c5e548a5f63cc619a53d9712eb78ecdea75c66b932a93dffd59550a22c29c5282d382a29b1e89449fe923f491ea7c365f9f385996dde2dafaefcc911732515b28a2b9b786bc85b422d4e27cb72e80d9a2d7561b6994628edf9fb884949ad6ddeec0c2323358e8e9eb4e71f0317912acb8d64c4227f1bc3362f9623138f5b7874e2d8bd3f2f85b94133bfba412dd6caccd7d4db995ff9fa2b9462289f4e3ecc2ddf920f84130092990b715a64e086481c95c8c0c59e22ff1e37fe04451f6ff9c7355a327011a83d19381f3cffcb50531395ba4f26cd1cd36ab5b084d2ad57b5e41843c2609f0406471eacc6668b1dcbdb70392ba54e7e5e66b135dbbc327fcc5d220756c2650b9553ca296cb81c9636ba4f266df37a5edda099cf71837abc8f2b9362b852c95bfe75e6637a3c8c8fa7313c76837a3c9c185e753550730b0ef2f12b3828867fb941ad77b976e626b1e289c799f9c8e9649905572f7471be9cb911fe9818cbcdb28c4176def2713dfff67cf2f8abf5fe32094abb94da15452ef9cb93818aaec17f064ec733c5f26789267b770a75cb9f861c1fdf56d1ae89552b2d548ab76a6161d9796715ed7917baf9dfa422bb507bceba40a0756d524a29e5a55f0397339fde49457bae5a41a5d8e0d09e3b0f42526e90e7a104d0c3ca0d6ab55412ae2e035a88f6dc619e6152d12e3aabf01c73fe9434609886a97ab922550f6445fec8292415edf97b57b6ae1cf2967f0d9c4e2bcfeb237b574ed12d7f1797435faba99abfba10d2a8708f7b84b7fc7f70392b18ca2c7f7046d0b0cddb3300d9e68d99d2e0dae8ca3f75355073c512a83d7f205c0e0b9651bae86f6b88a175e3ddc4dcb0a8566e522a3737f3615e8129a8972918b687657b127717e6d335719bd592a64fee9752c9127894a52d438b156439253cca73283f6010d4db87120b33c41b68ace9b7df5249297fb4a5a661960ffedaeff86b8f24dbfb2d91ed6bd7f6b6ddd343cebe905ee14f66fadb4592ed9558883534c7c7db728598fd36e5c66c5ffb9f9c7d52b6a7cd5a95db3de8ecc3afb77bd061391ef9abababa3fa9f97bf78947229ea6690a63fe5ce6c53dbca66f1b7ca36d3b44b3fd380e74f897cc4b3ca2aab3c7d152ea762a892ba3247952ee57aae5ecaed5ced757b9b85d339fd8663976a4fd37eb342dacb425a8359c5e9c4cf3e55dffee95e402617899fe16f753f999c6393c99a8e1c2e0e3d8f731fa63cecce9e325386fa2c0567d59eee7549e50d6b5f61bef5e3ad7833229353f8ab2951e5462a221013ba2f1ec523352252bbecf7c727edfa8cdc64edaded4e167f2fb5ffeaf6df96e35146f2d7fdfe98148ffc55fbc2c6abf6ecdb8f5c8e76faec72f24fcf597c44a66cbd61120b69af5fb5028d04d0a8ae3dcc5d99eb6909fed672dceb7899dfb086bfd89db89deee777f223d206b3956fdfc4e5589b616a912cb1d9ec377a8b9c9e899cdd0d7f48f22673669f6a4fb110cf5436fada0b699b15a97f42fd707a14fe3ad78f49d9be0ab67fdaaa56fff471cbb287dc004e1a16d24730ebf4db63d95bfc0dc9de7ef676a3f64b3db67d774fdc8ef6d6946d29acb269dba6c269f88bdb66fba79e4e17e66aed5f6bf1866409249b21d92f46c91ff647ba087d26b2cd5ed6b87d448a3764bf61216eef17a168d9f6d86bf88b49197beeb56f41b5a0abf8487358fb4f62cd3e7ded3f0c55fdb5e3b587fee2f1dadbdfee776d6fd67ee47e98d9fe89e22c22c51aec532ef7a86b7a1e57c7efb8322fc4bbdb65380eb587d99afd97d92cabdb67d43e21de8031b1ffd90d17c9f017b39665df9c0fda6ff6b3fb1dc12cfaa7c7ec63df927dfd2f32c9278cfac9b6c79e7b99d3c93ef6a61b9964ec376e27fb221bae59669fe35ee372386d5eaadd8f03597b2b37e77cd0bebebddf114d7b7b65a6f5bb2edfb7bf316997bffd38d42e98edc727c41b62c66f7f723916c32e26c524edb19e5c8edd308b5580fb321f047e1d6f0088932404f7657008f0eb7824d9deafcb36bbdf1139fbedeaa8d86b1749ceee11992b8e4f8835d80b716ce27b2ff456532431ad83c6c96b46e516447128c7c8244728178049f943f2938b989e7bc8e97c3029c7df4cf88349d9f4dc67d7deef26dbf8d595ffb6d47f9dca7fa99447fde792e3bb5afe93c901e63f8ff5dd7f40f2ea23fe72b06ef7a073d6bffffb2be6dd5ddebff33f5d971b9f75617b7f61b7626c72cc2db77bd07dabf75792271ee7e5fd570e93e3d4027361b75e2eec1a72dcd58dcf72e3abeeca4da9dcf82917b687ea2e924ee713fe4c2fb9bbddcf084cca55c3b08b171bb9c9f523e7430a15629c40e6ec529b96a65d38a3f317d2357627833032990516389863582105192020c115a46053041dc0400a2f9220051a69cc00210c2cca905f7cc18c544a0fe81545531c91e18532d2a8a940118c965821045d2c6d81240910d858a38b1ff4e00855c810c7146cb0c408418002c6c4e8133c0a599eb2945262f3076060d6941aaab22be38aecfeabfaa9d52ac32fbe00841f9091bf141324424a442842146db4800c10d0644ae913805e60451661d0c2046bcc208162063ab8228a272298420f742284a2222908b1800b2f5001922652c0022fa054e1032d92100306d678c32705638c000d38280085102c010c3e70428c3454a0833c4bd004e563e98d2564618a204cc10b27aa0cc328c14fde320ca3044a7870aaffe190b790e77449318ad12235723021ae4c8c62188629c933528cd229461379ce39e79c73d229bbfcdd64ffbcec364c58c9fe9f46f6affeb04b752bb2e4afc36880e4066f2ca10655a0a209152b7843250b12b45a4a4b6f20418c183ca1046ed0e084c70926446902859011d8607963b461822c0425a9a209a103a42184285c117484262d6822846a92c54a8f0e80a00a1e1af014410449ad4412d07842d1154a50a468c282d317455fb0f0f0800ac200062d1801080a2c766448f48328792543274d7841b6a7c6648c3146ec73e6ab8abfac7ef6125720393e9d32bdb52bebcf1e7b9bddacb3ff2ec35947b386137fabec2f89d30f2512ec8c5d3fee2e8915f39f781c2bbe7e59fbe5530c6f4822cadb1906911942576ff27ed2d5ff49efa457f72d7f1287ce4d4a77344c1982418410a40007988e9a2118629cf1ed922b1799a8655564f9f2a594f3b58c28db2131fcab95642294a594524ebcea9794388637a4e809a3080a3c4fe07c9d1458ecc8ce86124ab0851940f18612173ccd300c2986a81443390a012261074f480118a4d0061c6cc8900104a51b9c200a32bc6803073eacc0038e60052b7e94602145131d108c104c710537a4001a9ac2a43380418b194001470eccb8c20f70908121c619151fe1048b2df860e88da325275b606122fac1095658748195460c7ed4100a4113204801165d9ca1e3d260c61551888146141de8400d33a4d0841751c0d185164dde50b9c1ea8150818b134cd10535a0b002025160c38b2994600a30d0c0a2e74484c50a52626c60030a39f002880963f07ce10736d30758c068cf393de98e67b0ccd0cccabf68410b9ef0e2c4f5feca65e52f99309a0c25f12294e9979491f1887c804617f993b1992ed0029327262666a04e1912317152853a0140a1ff40cb79e204651c299d91021b00592fa230729836788aa068030c5564714406231862820c4c90e407075c184e74215f7a00c71b58346185132dc280e40921b471f402378848a0051f8060fa000ace450933d0988209d800c3164ed05d0c010b52765d4ab5247f1d36038c4e2fbe088a4286a80b1c0481408648e6c8f08b2f4c21731912f9000a1f87b0a31b327acb8e328bb531a75b2ac37884ce259555089b4a994aa9a4a41ba155b0fa5641173fc2983928367e104218a55137bf4e77e7813470361736ab189dd21b9f20a4995e58e9de10b634390c96a8a0220987261ce548c484496e424fc6c186fee7eeee94fee7eeeef47377772a45b77279191610f5614640f3e0507c83b6affed27092276e70ea6fb8a7e2d8efef3078b5af370bd2b27b4496ef94523a25cb001027fb2520110e07ea73207b1a72b3fc6166390622c336b42512acc01e7e16376bc57cec263144e6393de0c94d4b02019187878707cb309c611a86b0f56559a23090fd232a3bab00f6b50fc262ed8380a81314814919090e129cfe29f1179364df25d1de2f4a8a0e09b89471ec47f8e313e2f44aa7213a67aa38eb29a574b7c229752e875a91b19e66c89652ca295dbaaa8d9c070639a35ffd24c62e76b18b9dc48d14db62aa16c4d89dffe492c8a12fb79c61a9958b96eb8d497894c41ecff51e39426909253ad72b01071831820142cc69ca3ec6cfa29d37cb35dbb6becd4bb3959356bf718af8f3e37149f4d14cf3a9cd90d3a2504400105b9609b9b9c938a86932a90ecbf065dd524652406c6cecc62591135fa65639de204dfa8ce7c92472b0e77ed31ebe0b734090f6d6469f320a75ab7fe372248e54a42215b97f2be23a42192b6792a658dbd485c79350f7d57cd42e556ef9014092b760927d87d2ad7f67e6aedb917593b5723b9ebbb7d936b91ea05f91fdb99dcedd5bed77b4ef1e7243b4ef10a082a123007aebf326d977b0ac3dea6da761ed23a7f356bb3b306baf6156ad986663f616fb81cbdadbeeeeee76777797524a39e79c94520cd37057830efbcaed6c1b8759356f18b793f25c0ac77119e0de6e0f75302ca7bce96239e52211e340e11d2c7710d29cb0e93b56f7454e6ffa0ea35ed0b1869cdef4278ce4df5efdc8edac64cdf4367bbb549494d4a449ec8171297b8c31c6d845d9fdbbbbdbe74f76777729a59c4db2cf499d9ab0c974bb2a3aecabe9d461d6909abbafb9c35f06f2f6ac21359fbee613fe3290b56f6ee7f4a6776ec8091f657f1316d259e1b0ce4ade306ccf622ae4f991fc9630ca467cc8b3e8e23b769f0c753cf1de011314387683c34dcf52bb5437d428374d83d223da051a07fcd14f8bfc4591bc75d42eaad45e1ad045dd805e11ed828791db89a07f015fd89207cad8923132b60408b624f73b96047b22f7633c14c95f4ee3a04b4e91dce512559abe5125aa84511a07ed42d02ac34c9813511f12604348b0f614bbf8cda1ec9c9bb8c86df369876d12aba6b7759b950b00928c7a4127f337af68d3db6c9a3e243bd99bbeb921d99bded2cdb91c2428c72a40ea557e881426cafd2a43406f7db3c90ecdd96f54879eb8ec23a713e3c859c718638cb1b91f54b97bdbddddddeeeeee524a29e79c93528a6119ee74c0bdad5b763b1d706f35ee85340a85b9afdc4ecaa3525018f55c06746072f728ac63b90e2311b9b712e374684622c64133e436bc43b369881bb23dd603ccd96b1fb99d9d1887b55f218410421bb326b9fb638c31c6bc257993a4fe598a452db91d9ab7b7be61b7fe24b9fbe476a6c48aa49494db9173694e8cdb71fa5121242ab7d379fb8e075df6da67dc4eccdb5b6dc3381fb0ccbd357d483286b1af19c39efb9ab91deeb7776e08a71df5fbb4f8d37abcdc479f3cca8d3f3a5f88538961078cb2918a832baa5360985c7421841c5f23824ef8020a8d880c4b34893423ad483bd2d2d08afca52179eba85d9a52075c64610d99552e9c9069097028a5943a96557291844c95e0504a29addfaddaabff75b9d230327d497fa394d2879576f1e96f94523a65b665d84512bc9067865d28818ce904181946318a9d61293502bde95c6a14e10d2f6e300436ceb8c9be041e0415818b29d698010d8ae88c22053ce0c209b4b0021a5cbc20e3c206f72524094c8c200223043dd9019d74d225191722d0a670c58f1fd9bf06613af542a80a958b2632b8060d7ab20004161441698a2048810b821b26578a1b5318630b1a5441033004e128086260128c4c6267582f5460043ae9945dec32f4420530984e7c64010b4159f04116de28726203339c28084c566ac8cab0c21a50ae808617521912050128db0cbb98c214aef057e3c0af50e6e5c37f7ff9c3f7fca5e978fcba0fbf077ffdc307c25f310f5f087fc1bc3c7c23fce5f2f08f70253cf2f8abc75fac872d0f3ffef82bc7c3d5c38f42fe6279f871c85faa871f9bf8ab47ebe1c7a268b43d547998827af871c95fddc36f9eeef197e9e1b78ff78fbfb299ec372482a8a7e78458a27bd3cacaa3e2a9d5f568f5f81915cda73c129c5327c36332fcf64870682e102a1feda42c2b96550e1697d58bcb0b4c4b1233299615cd4f9ab7ac9fb949c44f028920b2d77ee6934022887eff19bc037390fc24845822e6b9cf5e8825fe4d49c45f59f99abf8f04c7c69bc4cc23914410ac20bc4f7d0a7f20e6bd8738321f042b88d4fb781ff803383bde0010c7c7dbc80121f391036207e480f0819d38f158b9ac9ac78f04c7ce5c03409c24dea7de462e8898f77e4688ffd4434e08eebd879c10a64f61d6ccfb23c111d242dabbac99d71e094ecd0542c7dbd64d7d8fbb12717a5c56105ef71e660581bdf71ed6baa72d86df1ee2a8546f5bd7c5e55df00758ac7d59cd0973230ee47282e8bbdcd6bfdc1e0f73210ecc0b69dbba32981544eb655e067f20e65b98158416c36b3dee0ecc0aa2c7b7be853ff0df03b382f0eff13df007bcf787381087c78d38366e3c82640e103c5e487bbd841541442cf880083c383ebef54b30e17d8ff7d1c24c7818760d5f5791e37f80891e98c7d5b0c2121e9cec33211e3b6ef5567c99abe3da782b3ebe3742bc15ff6f0fde8a1f7381f0567c982b84b7e2bf5c07782bbecb35827563cb8d3e396e5cdd08e4adf82cf155370e792bfeca8d4dbc153f752391b7e2abc44fb931c95bf151372a792b7e77e392b7e29f6e9b6ef7782b3e77dbe7b264d8703ca2c1918735f3ac20b2c79eb7e267b8812e4b060c44c5b108c3d188060341f111132bc19ac14048cc0aa21fbfb7e237ee1f6fc5472299f02191726ca1fcd51cb700ca9008083cf9eba11c9f26432220b8917b0806e9204d3440e3546f15a1fb7a481ef96bbeb104c4c3c3c3d30451137f452d626005d190d011528eef4042fe1af217129cf8de04a3c10d6ad053e46eb4e433e42f5864e4af152a7c210b3f3c38118910e240f257c489df4bfebae106464338f19da7e847f27827f90be2788f1190ecc9b195249257312bd5e20b21908ebb558aa89b6d689ee1634ec3088115462033b1165580c28b28a67422e931191269314656c9f08b2708e5afa35db0b11ac071200cbcf0c2093d5a7091444786445ab8408b1244d1b4242c246191461a2100230c1340a9370072c40971aca0c9132ba8810856320cc30468649a61182720816441193f613401c50a425a3c51b34892340431a982073ad801d29227154002139468a102276c2086d015d3891016dc0c4998c247054d28420d4630011c3cd182163150020ac0f0828a13d0139080fee041054544c0c1185ab0c2892dc32e965ef075fe62acde82b7887f96a17f3b131149777c823a18a2905286886a61043259407942460a61e15f300304591839e1850a74906586445924c1d77cd117f6b5622e3f76b0d53fef6442c6222c9471d48e1a49edc12c73d7ae0f096a470d2736c26e9343e8c547d5f6baf61a07758e61b76044eda871467b30ab6448944512327c28032313fc6127ebd6bd572901198431a86830c810cadf0a0c22fce47e979691996e5ddaf8b27ac445fcebfba7c59fee5f679ab30c7ff1e5db17e2118925327d1b3f0345e447b911755936b921f333fccdf9f18bf8d7b8b517313aa9a4dc90223e8b78e4fce72d225f6efd8a38fd91b3b191b2d142e8e06aeb52f1572eb17749ac88dd80d7b44ccb322dcbb44cd328a5af515a5d56353ea59452ba1d993589b5b1ebbe914ac82d95658c2eb03676b0dff117bdf6a49432cbaca536cbb08b61987c2b5b4a4823df45769d90761c743219a3f5932ee91dfb064aa94631a554a39452ade28a39a594522cb365918ac052ec78560b638430c28f30460961062184f57e479cce643a7f66eb5bcbb9c9c9e9481d8973c5eec54f26d387f8fd25104843e9f73bad9fbb3b9c360b0bf17793a3cdbc5e7bf06d47b7be2d91e76358c5b08a61159b55ba497273a316d36a96550db3749b9c34f9a9bbd8f0648a9006fea4b13b3ae9b0d8bd63b748ff8b31628f61ee2becc69c6a1774c1307c24c6ffa17e91f8186e0cab185631acd65ae7c4a27449efc6b05a6bc5f2218df6b53d6d62188661988c31da98137fd36e0c42d75b8c31c27a84cbce19e3fc2fc6d83dbf678cf1e3cbe972ce19638d3fe79c73ce39e79c73ce39e79c73ce39e79c73ce39e7acf588ccb1b66036abb8ca2cf60d59fdac1ee9af5f5fb6576b7d586fad5f718d314eecf08ddce4e8ef238a8532b2c77dcefaf256af9b1b9d7112b1ae9e496ddacbe5f85b6bda22e672debd2d97c355a2d46aebea9169e3a7289d696f4e19249f4cf625fc886f95b1f9edcdef2dbaef264f4cbf6640e8b06d9b73ce59dba31ba5f4e71769a798ce774d4aaa517a7db2bfed12f8953f6f2b8935fe14774f9720d6f8cff75bdba73dafb5baffbcb57ed6671891b15917cb7d86d55adfbf564a29a5544a39a7f6a96f4ffb6fef48f62d4f29a59452e2af72394af0f0f0349169bb28a5e9fc338f6e3359cdfe357bffece96bdc10ffcc9f62f78ed5c896a5fc285dd2bbdb9dfa26ff73770e4af993524a29d5b417e2dcd56a7b765a7b04876c629a922ee99d63df50dbeb1f69e9d1df81ccb49775028034d95b779cb9ccfedbcbb6eaee9eb9bcc9d967abf632235976c2de717452293dd2ee1e9d74df16a19396ffd953126be19b93ce5b7eaa5d2d535d1633d93fd5aec6fe9b734e6a043af16ed2999af34ddaa9d10cdb52edfa5c3ae96472bf4cbb646feda5daeb4ee6944ba0bdf82ea41db3867c31cf23324ba46fbe4492ed9cf42546e99029bf2333cf9f1fa514c87cecfdb2e8d75a6d3ef9f3e91d2265c430ec33028de8cb09b921ac21f393382233123bb3cc901b12e7ed4c718cd9e57f8e9390d9c88d11e82423c9b65d4e8a6d4ae42d2620ca1659860cc3b88192aef02de4768cc87362f3b18fde5cc9df6ecc5cf6106bcde93f9fa57d91eceb6bd9d7cfb0afd8883c8dac3210f9836f6495fb3bbe6bed4016b66bca0dc3b0ee0ca317e69ef32127ff0664dcd9ef8dbfbf5db55f1027be77dff93de777fbcb9ff690e4e912238165dfdaabdf5e84d215ebeebec95f0fb9c8e9edf7d54ef8bbc9a7b78f5d999cb9e47eb134fe3216fcd5bc72bb07ddf6f151d7a5bdf7bff1178b0bf5fe3cb42be5fd7b6897cafb0ba05d9b296572317daa3fe5f6a33afc9d5ebe10cfa72424b7d26ecd2e362293e947ce0797266d4021d3c7aa8ca75a86c1fa43990994b557ca76db4e68745fd5a9b97ea470d3b2d30943c7906805f1078b7ec31f34d23044fa6c2cb41fb78ff6b32ccbb22c833088cb7f3639c39f1120f88b1cf783cd9afd8ddb49f9967769177c98e325941cbfcaf1f62d976353d7e5e9ad2a2915cbea21647d63f8eb561afe3ec39f67f157933f98846ddbb61d69ec16a110b56d1816f31a0af5d90b69ede507147ec15f67eca552d658f8ab415ae1cf5b020bfebe0c15fe5662a480ac0ab6d6e2efb336597b5c047bbaa90c806a9fc5fc863f9935ccaa2c2fb9d38c79d37f17b74df5357e4aca6f3676fff8ab89c12f98b5c22cd87e6551e1cce56adc8ea6fa2ccbbecbde94fdccfe943d97b14855ad1308c330244b682fa14838f25751d8f6128a8c523114ea33a9545f62a14aa55c9fbe4debe640016559fba83df636b9aac822f651311e01a9680944653411a38b6883f69f4dd6ec57d4db2dbb5ffc28ae1845550925d6509757b930bf72e3a77c9fbf9ad24674ab677931ffd554973722067f35de0bfebcff15fe56f9834927fc7547d9293b695a26738659ac8f4fbdd535b9e6bfab99112059fbcf08907cfa97ff6c72d44ebffa4f7aab77f9c9ed685fe4e4f292fb61cb9acdab6573b3fdcfcb81b2f87bc19f4da62fb1e0b2cdccba30d3cce280c442bc81fe7f3fb27df8cd600448cefeb3c9d6e2cf0890bcd90c17d9fef4f63fe9c3f6a7df64669d1e48b637d9e290adb5169221adfda01af657d206064979fb01a53ba8348b180ba39a748a21910100000000d315003020140e8904e3e1384d43d10f14800e84a8544e481ec9c2308851144429660c31840000081063666868260e9508ba105d5b444b511b30e76e69b6b60c4aba29bddb069816740e87e2b6d666fbf09bbc3e512a3e617b35f85c424980e76f56574341f1817986610a2129875f0e782cf4715a41e18c202ad9c5aaface8c912cff8af99a4be08a2457f4de02dee98736f7a98bc33f6a7dbbbcca75e5a70922a3b544af81b28be3a41ba797450a3dc58dffe5866a449f069ebf8aafdffa2506bb8e8f391c063eb86093dff15088fedc24ea87a4a9bf6cb869d0c3cb8529d89ae4463e8f51916d4ad5c3bf2f288338327b69a3e2288352d7d132cb1a81db96dfed08adf8b5a06b739e2910c0c02f7f3b5a3549e0a13275d6e99220d754618479912d76ff7dc166bdc22f6353a722db7cd3592ff5b1d1e93c9ad325b6e5f732eca0f5d241f02a94daad816a0a0fba28536c7c356be3ce1d90c7c7beaee5c83deed1c91646892c2542e7194f1837e8e199c2791ff257f23f3b474c6c22310ebc8fb0ca91549df388568bff86151808656215056c1afeca2ffc455c88885537b4cdb84ca8cc3e55f03c091996c388f94c130ede3212dc7f24b05a0d5871095cd3ccb4dd9049b3b73b03dc3ed3f874c9243014e567326b25b7dac6f1df0dfd69dcaeddb6341f6ce0921a3ddf11f2e66fdd9400cd9d63e03e8cd6a1ff0e00a69366c442e35b9c4a648248a4d3ebe1e29b33d9671f5f5a3d8aa23425192269e5497591d8bbf71f02ae40b74c626d9e0f6a0134ba5432e9ccb10161ef224a053c7c5230a8febd860b849a2817567d6c466d71c40ac7313e1220842bd2b09546f8b7faf1b10534a214efaaa555eba56ba7ae29ac6ebbeefeb6a5c7e857083b11c65b9eb07d54c51fb0c881055997f8e0f1d3ad5ff512a71e1ff040527d25f7df4e9c1e5948b18b83b13f9497a67beb40c63af1161485fe92b570cfa8a54b65b64b9884274e589fe111666bdb4089f126809eb1a547b0de9fc49c4ac23b95d34d4410ae3cd7d8bc87f0d7a05795c7a883596ad6235afe6836e5f0775f073f3c8d363ed4f37b5845eb41e28df1f358f610c004d5bffe8130a8c5bdb55ec5a1352fa4ce9535b7deead8f8c67d2027d20cbe8bf612a28794e1abf25137cee01c6b35491cbb6af806720c83f537c02683ab2e652aa5fe81326af15c7507653566a4ee0151522059a4ba95b59c7ebb3cd8b5ca9b713980c161dfc754ccbebc191a902d8f3c81dfda2a94f793517bd8ae4232d5baa87b59fce61f381ba77aa50c84d96cc20412289af4b9d0048fe40104e102f50057de63f9dd8964a764c0f70126c59e44de43a0d9fc17798a5ae2fa451806f10bc4fbe98c4bd916ea0610d25fd7e78840b8abbb29a3feeda5041c594506e2e7758999d0c10a6587d972fa0e34f1033b1887785268d6355265eadcf6e822533ca1ccbe1f8ba3ad92185e4b9c5784ee56c4c5c0519b5ec5cc95911b1ef65fee57bfa8ba520d37392d10c3f065b62d352d81bf8040bc05d4e44ef07b483a3ee815e362ff3dd7aa65ca4ad0407fdfc82e0f30fdb09b71b94d98bd3df2f5b598055a620a159ad7a21a03e3fee4863cb3dc0952c698fc94d75a00cc03260b651435fe44f6d78c2a5b9fefe0c9e177ebccf420e82c00c2da993d5ca3fdff083fca128f1b2106b8abf081ded1c4e5f30ce92bcb7ae2026b671ac8bd775841dc10bf28fa2a02d065f6a6908e15afa95abcc09873808900843762343094e0c0601ee82ec33406bbad75c0c5f3b909023e8c5faac3b2ab55b883587ae43118f419162d596c6f087f208ecb403942fba9d224982dae763bd1577b10ee0cd825224652a751a133d4586144500ec3eed30d312ca22e620c02892e606117d15876d7153644962fb0f998b0af5efb5640b4d9adc25efffca46cb9b08f8be767d481e4365dfbc97e319a67e15f7133be9312d9c9e055c0939f8a2ec13cdc00787193764add653411445553cb202ad8ba928d8eff4fd1dd45ea00d3bca50dc843f05a8874a2a34fb627875101481cecffc41e201c25336455e7f8812e20c6ba75a7f26bb465d73b1febbc03a00bb4c41e2bc1f358891d04f0d46705dcf318d6049088f60cadcb32032ac870b93ea23786d701f3337a0dcd7af079d451d7474c4a9ddc2a18834be662b224377258b0e99ad92df71630199384b60f727e0360e243c936849ddb1061a3b81cae9bbd545177a18aab38fa6c65dc70f71e74042de4b2f3ad3e0b7cee50637fc8e44a08b112d1088872e2fae115deb44ed3d31ecae688580f49f8a84f3729135319ebe03b4038b2e367c3f252b6e2588cf318a11785409fc6191dab054f2b52dba7314c27fd6777ce3752077c06c46c58cf65e933589323a390b000d6ff926db87c3f90197e902aa44f19b31e8b55b330b1be7a34a1dc59fe16cad36249fcea235b3e3a88f1949b396854055a1e2805b1cc0c83b33c951c9417b326960a2d3a2c4403f5f2f3c8a4a37a05956a789ac7dd6099ce43463ba0973ac151dcb7f50fabce96a96d7d534d3b4cadeaf8d570f61b681a17beba232895218f9751387b250789b58480960f9bd88eefa86fd5db97b4656887fe401ceec1912aa6e4dce56e4be179d655c21dfce2ca9064231d605f112152b5bc032f1714804980e531544b33a6b8cc0fefd9fdf58db5a24dacf4c49dbbefdb3086fc8dbbe7b78a52468292619cc5c30d9eba048cfbc6a634980d8d0b5ccd08e59a0bc3b7436efb253d221842580d5be499d1e29b0a1bc5b06a9463f1c0595cf3fa2b0d46994628187917f5911b9762cd3b58de7b69c072c938f3b1385d8be6fb069a2de93a2f490da6547d0350351c8023c5274f5e3b560951b85133e8f8a930ca11f860b9f04ecc6a8225c3db0cfc9807ed005c724b4a08f90c178ac9097d1cc004d6267ea654e1038ccc45b3f1f0a1d08120c549f9e6204ff62f89035233aefe4312b5a5ed5d17c3a838ac73fe01b33af941cb423230697880f82b48777fc45a697a0810053475d5ecb408c8412436e4087469417edf32894c7f8b796bbd9f5e92c8a94bb0c99f886c3b2323b2c394d7499d4846d2fe3920704989aaec86d7780b2cb0e2ab42eddcb5d1f1bb1e83f93b6a40d58eb7f9bcd1690b6ef1ea5fa30f272390debbbdfbe938a6cc9aca7c5787fe47095f0ab2b15dd9a1e5f2fc2b1cdc119885b7dfe9a9a58615c2434f60ab26341f0cfa7cb6f4bc9a4f9114ba7fbd58469728150a3a33239949038c927de048015c5a9c3a2f8fc1600630783fa9c952d5678479c6fb5eb4ac4a8bf6ac4a0a989e8c03e7c131604eec70723965df30dab3969d3f6951e35ed0ba0fc33ff2115cb4cadab2fbb4c17640cd5179e15190ea635e2634f1ba9d57e396c3c9a5532175124ab1d024e49b8e1bf0565f5ef17f5a297a27c1ef13bc3d02dd41307b09bc9bc0f711685702ed43f05d82be4bc0f608769f23304fe2731a5e529b597f92574ed3b8ae805e29daf5357738d71e10ccdd22b5306592ea2a287cdc45fe6e154109b83711da721c7d853f60734be34edc01648b89db78f1c94e5dd50b4c2e8890dc2d11690926acabf8322f5202e5e4c21c3813f705946f87b6e038f0cfc8ec84bc1530f9f49b8e3a02ca0e2cce22e316270808b4ccf8695a655fb3538d236aa05ae7ff9a32f36f0aecdb85dbaba51ff7621f43ef448a2fe9f220b41f41480421cbcb6d91005a53278aeee5c877d2bec72082c5a0f4189393a0f6e0ae768e2d1958584de3c19dc2284eb446307ed5c47b84a328fd452b571e7e81a213f928b27628f4c084cfa7945b24658a7a8768ca949b85e0a261804bed03f85e956d7c50b10061a80888e3cbb51ee3c1dba943871fda668675426d78b17682ffd88ff9b0db44e4f082605857f0103dbaee2104d85b5ff13fdd8719b04867b9c17e1f215e6de60cc80830ee76bdebf20119c5400100d22b26e748323d99923feebd7031cfbd061ca2b9b74325a9da394f8d4cd2bc387b75fa46d05b322fef2bea0fc968a61d5241ccd3df269ba1dc579f8f2b4a244283f9a69e5d0b643392f35e7d9e9e35bf71f7d15a79897d87c734a46cd6bae38e0c57c42a1116c10d67c5ba5069644da9b468d046666f6e221a9739b43b9060071bff2aa6e80f8cd3c08f913d9c5972a5fa628f17fab01bf925347439a4522c8340a36ff12c21e837b59f0c6d761719df830856a67689f0e2c546c6edcdfdda0e0ee4249deebbd9957a148b615b6429385025f97860d738dfeb792583d34d871cc949269312a1f325c700326f7981676ea4568d3b67e249c310d026bd487ba3d2a8e1b9f6ce9ffdc5bd7621203dfa1ee835088479569f1e183bbd4ecd463c46e469194d6cff96711de2d3748a4a2310f14d006b1cf71a14b8515faafad92f321d5cc686128a4445172f8db1624e522d20563faa6cc0f5e640862e84e171139caa22000199c886b65a951c7a0eebd3a9c8c93d92eeb29147b6d705f6e540c88bc6c847465d8059da590e0dbdf6acd171787a7800a0e13f73df78540898c7561479a0e363ee692a623cfa1f0ba3b1bd046d97bbab28f120a67f27282e21ead4fcabacb84df934b6e2733fb6b50e56936a285cef6b7c617d90ef5ccaa312141d0d8dfc2cb04af483491e875e6f5ebcf7c69257db1f8fae398519807c856cfc3efc5a5a4081187249bf9b7dc3004c6c447e14e1f0209d297ba732b93c053c3085ddd9e8cea7d00ec9612fbb157bf158786732c3c8e3222a202678d0667c96a1e3777278004330b1230536c69e5106d681f349399db18eb9b1a7b8e9ff7ca00287a7c3349ee0d0c779457f63afcdda87557af9e27c7a9a7ed06a362980be999da3c752ff5fb58c22164f607a11d8df7d930190f7c1170d38b3235bfb7c0d9b0e37b3eef0ec5760fbbb80063b50b9a28adf0e5d73130177ecc7507c89ab5b9817dc77e51c57d1743dbb1b2f025eed59e09b190b65bd5ff6aa086e1ca6ea573fd532fe33778ded4a182b2b0aca8b1e3e4dac6aeba0fc56a97154968d0e46ae8c8c015817ca9414bac38bf588cc7221255b6800004ca58a6d2daee6b1856062e7fe426b3f81da51dc34d08e8be33171da4fdeb656cff88fdbd4e1837ebbae4fdc62f032ded2624c44ae98d51e0b445a6164968daabf745796db2d101a9c7f2bd5094a97223fb3200eb09d8432b1c9e1628bcb86f537d9cd953e6a7a8c93917a08e121116ef6bfea23eb495b6a81fa9d53445aab4ffd88ba5be205d9aeadc2de57062797a5211b556f83b0a7ff6af1dd93a77106870ddaaeb0918716fa95f457b2f605e5edca05366babad6232d122b58688d27802df0488ec4dd5cbbdd93147f25a030f9edb2ebee7f72b21e28407e09719c0ab65ca00204782a00f6dfa118a06cf35bed338a6fc7bad734db69d4e8b5cab7a5b627483eb4d0627d8c95dc3384f34f613bd03f8efeb230d3e5aac1461070801372e8d5174f4029340b6425986b312a3c5a9279070588329a888e0cef1fb7fd45915b8f87a06b8a22a22e9f4997d50698d352ad2bad9368650ee7e2fcccae464dc146e9efcc02a2293be575f4024fb2f31a5af8036e7b03d9c99c22564f50bedb3ffe796983e80aa8a69f1808dd858e8941387867d9c61a6db7ecdb28886bdefd02ce6da312647ae82ec5d14a93e0ec47b267b77b4326cc8e25e6947470822d13e7710b2fb429cc9c3a40d91439995d0052a82c0ddfc5259765d43f916f48da4a878c13cc385002410148b71cb781a23c19137926f814e718592fa3174b79d9acb9220ca501626460bf9b7e0c1247fb71a53c6bf2e6113c1adc10127c2f75748b3e1f0d586e648575543a8908e3f1c50a967a888b18b0c81f8c5273379f9a5c34cbfe85c0fcb72f379443621b1595daa34ac490902492d6e9194a23db040c46a945875dfbdc1fc435fb998ec497b88d7c7655261dc0b38e80d80cc16afc79a1deb1d8da07f63d57a0881dcc9b496e18c473ec7a3e1b7f20937c26f9eb7bc78f869d95697d03356589185f87cfcb1f86191c627166d7c624bc337961bbf63b9e1855888240a807d9ad811314aad1a4be2c4f4e00a973e5fe9819a1145d34e351c97931b74aa48b04de58f8bfdf496c0fd8dc87bf3f6c5f24071d189cc88e35148c1fb63f88522ebf8dc8f8f52da880decb6b1533579f04a179964ee9f4c16f8d9073abbc48ff409395ff38a912d0f1895fae4930dd3379d00d479ac751fa489e4566e3f8e8c41e8255f10f5e15854a1a95e45f087f13250926d5e3fbdff8bb75128f391dda108a9e60bc5ef39a38a35dc06e948a915222b3b9e6875998ae54771658a3270f5212c7c0542d6e09d55c277316a4aea5d2b2adf6c0cdd3eccbec41966af3acfdee276db12c00e5bfdfce86b02f6a956a5181387c286589e32a016140e8d0b8bbcbf089e0f09f541b90c7918c819e98f8c6c034a3203b2d5b5610a03736095de9ab2e2e2506c570e007468927cde88f1a8f78adf51bcad7e009ed9d0dc2c3f361f8c046dfa4356761d00bff319e1a41847c92ab81de5c20e21932107b3e679eb2144756cc6f24737748a643a39dd150cd4f1a727ed749a7119ff0a993ac45bed090fb18f5d2aa2bb7ad610cc73502aedd77d7b6c9afc32ad990956531f96cf0a906c0b4af9baaf8f7acc019df8c1acfff89944553b2cc41f0495e2356b1217c7acabae2c4a7724e539d30c0ae6a2957516bbc3f60c7c17d0ce122605c0f43468714102985acf84812f1f8a20029ea7a8a0ff5a9da1478da8cda99d54b5404dc0dee8a0f17005aca3c7825d6a73bb226855d4a9ca245bd2f5cb61e0ac011a54e42764ca600fd1ff20090f2770e9e02d1ef39f757407688c0a7c9a49007854d15282fdb756f4c2f29e37a919242b5735281f57492a0d6cb746389b6e5d261c594f044fb01965b74a11b9aed63d2dd8bc02f47fbae03354bed7b305ffc178853082a9080e6f56167b12ee780b6aa267ff26b94b0bb5387262c1f95eaa0fb284982d4e577b45bcd6085a07d830cced2cd73b6ccb030b0350f0971049e6d3fb916a43bb1ad761ce409df64d54ca591499aef62a79950284991febc6e7f5d386f02c2c81b3e00371e5491a226dfc77c502f5215cadba7ef70ada961a5ddc64080535a03db85fd7eb581f4939076a8756be6fcd3e19697ccb8bf1c9533acf9d487aeae009d1984327176d63edbd5d518cd34011a6b02cbc1170544e2a40d894738d2911d8e6ceb0c6681bab60ccf11043dffa61ad3ea9a11e6ac9556b0d62e0e79388cf89ed70bf98fec949fecc169fead8abc693e5dce6c88e13fb24907ef7ef8197f18301128490680897481138d11164f2bae3f6f53b7683040ccaabbfec3f56a4b439aa2be8ab1f87ce7ab2fbb39d19900138567db5a5ea0de8e7ada9cf6d18e923974783314b51e53347e2c9ca207f78577ab430e2d1038f3c0a205a54625d3bbd17c493d00d4c78dda67c56828da33ae8a0b4836b27bbc31dd9ce49bcf545cc9820baec479a6ec848102c47240e7f1201e4064743533fe44ea68edbf8d1c59b1fc2a9da1809f468ef060a313ed94585d4b1a5cbdf232bee78d6f3b594637b5369cd76eacc7f0dd38cd20ced90819c37736c6c8484af89fca0b330ede4263e365034d25e3fdb37d2fcb5a3a52643116ea43197400c930586ff5ae071a1312b64082433f619d75657bdc372d62ee768aa951b56fe8b3213074e595b3e51944cf9f1eb118b0d99649b36341ba83043adeb65966a1b79960bce3afbd64cfeac47298e4d03655f15e7d11552e39036e71b75ade24b5525fa216fb936a3d074edefad0af62c4edad0b05ab08ebbb7b0f620a7e5814c28cc39032627e3daf911f4db4026ac5331e4e5e4ba4c933ce0b806d97ae09fd99084ba5d34aa4c171f9abc96f832029283680c917154ee08313efbcea05b17a237f46845a774bea6bd91221003e1871d414d502fdf1a65d5a1766c8972c24e831959dd4e67d200d37de99d12ed5633140a100a787a06f10f23bc603b8478f2e3a70e4ae505bae7b0533c3d57a21a17d59d51e93aaa01a49aa492b47c20bf5195938a5b72afc1501b231fa44b4a2baa40206ff5902d7a0ad0ddfab3663e7c99a9e4a63a67214248f79bc827cf6c40286ee16b8807feccd869883488a939840cb5a171cb8b390f234a021f0c69fd6403b1452db3d3c0b381b82261c91c25bd10903f11184af1afb86ee4dd5f4524db05943acc836ef458ceb8c7a34992ea616c106783fdf0bc9da4d1a531b55cc7aa34ea5cfe086c90d10b2340c993574406f9b9ff0f9091c6a64c95a536c5793d9c411dbb4aee6aed04c3e76f4bdb1757ffa9aafb524c10b42fa994b974bb6c008524a1ecf05765fab6285b6d33c92c4fb5584a46d655a5bbac0f7bb03d9cd3ecbe1b4bc5c2496dd54c83daa7d846bbdad26c8d1580b80e6b6b3d6c8e5aab3a4d025fcb5b8be58e955c08991b04c34f610686018b95219e31a2cd0f76aef313fc3ae9391c75c93ef2104d9725940578b4ddf8afbc1ec81804615bd3d2d1122199d409214bed1e4216531b1ceb69f17ef3b15d11108d808f25e0b9721da4cb0a37e2d64d76d995f0a69ecda9047f365381c892c68b52d39c3ff1231fe39cd9be1c08a7d15ca2f79ff9553c8c3c8acaf8a9c58cfec3aa5458c6786faae3905d7689b4c37f2285dbc9e05d06f31ed4f556c541e72ecbe2c34594960517c9781d0e228a32f0e8aa9e0681fb0e1f0d2c19fec2577d5a6a84a5228043bd0e57d5628fbb571203180b587e90998f6f38bdbee3f62f7126d260bf671d8613ac7f9a0db80c7a21430b890d8104c86fc6826d99c7e539cefd9457276221e82d2f25edc371851280d2242fa2d35d28f24858f9bd4af63fbbe179144ec1939be53830d58e99c450f8b4f1322edd9b836c3bcdebca157a74c1b3fb0f06fc51307e80ea4534189e485faf07e9c0dd3485beaeda9ca6d93e5d4e7ff1f2169246fa8ff22c5ead1ba6584f5be392234d66bd186e9f590b80ad0e03b90b3e7136d0302810b895a491ca00e3c94102142408143154de301d362a29e06cd38e09de61fe3ca7d5e121681fea7e43190232f105f739091165b23ae7dec42d373704bd61516e1e9ba173a61b222adbad50c5889ce9c865a51efdffebd06827213aea5e3c5668a4a2f7721d2b34e3dd688e20edd0cf4b48b7e51e7491a1bda9c4d15b4d1aef3b9534c876efeab7a08b9ec22897f691cad2349cd541599a203ad45dfa8ad4a834a41a35876876159ceb1a7c7cac390fa908fec44d86c7864064518211f9971eb0c124a69d96c967840ccc1c61eb2b7e39a95947ec40813ca995a601c3ae7fc1875c72fdcea1e99ae1e6e81799f6d56793f58201e0d895c42b6148477eb89f1f2177dd1951208be963bc308db5e6ecc5462ca68442c40df9e54d6610cab2352e8f987a1962e00e851c4f8b90ad9ec7e834dbafc123bccb56341e4702f20e6aa6d4d189f60520cf020a88a6844d50782cb20f5fea7be0024e004b991b6a564ad6d36961c4080842e607043b8dcf8e7f2e4a9de434a2cf85b8cbd655660adffaa0ca1888ed4c07baf99d163ca27b83f814112a2a2da6e85be7b737bd3448dafae2873176c730ee863169e5e2045d6a60d6d7a7b9bc65ff79b535bd09122f893e2de938d6afd0f9348a9abd08b42ad904b5d55487831ce68c6f471af11490930f7d4d52e53b19c4c4c6864a47533d34ed34b846676ae43d0cf1132a2e97c0212f3dc07857ad972a84dc404dd35cc55e1692fd6c55f5fc469c1c909169124085e063b98d09d997aa0bb93a8edb62f140a2678a230e490b3611d09096a8adbc01fc48c83918d2f5dd6a7dd38101fd19111be9dea5514004a80336541950232d1c02221e935dd79b207d44deea3b40b86b5be430304cfab580fd5c3d921f74d17a6f7c964b4e8d55189f45fd3c5700c5237b90981e9f6902efa6a31981fda143af62f8dccce30e638c094d76898db93d5769e7a49a03d9dd4b97cfde2975c6463e9a63218d117573cec9e58ca8a265e34370f6ecd6278118068a88317aba89277e66e0b98f337448b69c19f3241d359925d39716252536c1a7d40cd9d9cd7ec907e8abf4e66cd74a3770c2a7f0f5a276e7de29c8e16e987b13e4fdcb46bc28290e9c1db52da19b720a8ac0a1b9ee3696a4e9ba19b8be793a64da80b25c898d6397fb658b279181351f27855a4d71504e65d1e04b2a28b1ba8435cad4ac11fe44af55ade14dbdf855cc2d79c165995a7f3bce9a4cab96a38759dd72244100c38d14906fb8702fa399724167f627b979931c8e26d96a4be094656e9fc9c44d9f7cf9583bd7712ad55fdabab735290096e4dd93e47abb0c0efee592a4776306043b81b42d417c659a68479196c8e2d65899aa371a43e65bf6328578ee9e470f55fea5ce8f3900c65cb4d3b3de071fc64b44384aa82445b3a1115150086b1c254dd5e9d52705cd965dc7cfd16cbd7bd34012358efbd2ccf8efc7b5d8fa164fa46a7c1e5a0af4ee447fdc7ff0f6ca83283ce1d891bb820fa4c1ebd9f6b6339b36cbf328567b3459c3f65675e55d8ca3e08560d7aedd34928eb9eb7b4426fd57f7f8b6ee8b6aab3b0faeb25e24795b079cb1e77c2d1b1136891329f4e9bda4f1a26dc2c981870d2827e4369c56609d9580c05a9df2ad88e018d245e9e0510e1ed06b4344b71196b53a34a9e2f82424294f5ae4e95b72f3edfe6452b3769073ccbbcce0ec61e160a49eaf0c547d5ddef166755ef8258dc8d3b98a6cf5ebb5baee886e079a00d16382d99e152a86a874da750ab32bed00cb8506620afaed7411eb8ccea895c875a7dc7db40635cb68e532e8a1a305f706ca86249752251429a7cc174f19ab52a36475bd3435fdeb4c31eb432475a541c7f1d9c354dd0a5ae81ef04ee3d34db782c9d3a18e1ac957925be17fbfc030e40dd7a6d0fedae701621a0801749a074e0c4046739b83bd10ea14d6a8d30b61ff3d4a1c7393d4dc17fe600293881908e5441f8422f4e09e8af763e2cd9e3d8349cf8064de08f009a06e4fffe8212f9adc175beede54bbb1f28e99f13f04ff60ac1a4c447381ac068c018a60159ba57614c357b62b2b8ef1cb9b84e056ffa18bc461a8ce52352f8014d5e63032fad3f43d0cc114acb8d62c242f5a6635da1bb71eb792bf2a0ba957b609274c1d283a6efcb9b9adddd826287dceb589d39b4c8cc41b4cc667a8f18986b96c210895f4bfb80486a67c7e3f80d109a8f6fc5730b418d1cc64caf04a4a988c234edb0fd0b56cad3265e57c2d2b68c482810087d78802681d88c5868b9f2768c13307945933a7b652000b23f2deca0a8fe762f64b266fed6a7e15cf1ba1719e4ec95949cf85d46665c2ad3296ea7b702d260ae491490f6c728e1bc73d8b43b98e41a239d76ed9dd2a31cf61a5aa8e260043a8f2c7acc18d65204b5a40bdf4207c9fb068647b563cfc23c5e2365586227f21b0b34a8223b41d3d0e20130b8529de01ca6f3aa66b07e91f48df14dd50f5fa65feae455d38a65ff490ca764fb6ddaf55f212f5526368247242446e41ddedb27268a30d6363645423e8709383ea4a8fee3b0b3914423ebdd295cd1394a0dcc744ad15116935b1524fc79b89f628a70015717417be5d57ab90fec58d5bd50a90e4fefe261ed75023928087980a603318ac1f5ff6891be900505e194e23da27a32e81188077b1b18662a56649f0647534d9a938fa062cf83a407bae595ed517fe8a5df2378680425a702007226927916ad26651fa88a51f0d76959c93b659b554c25c25715996342838b580d4a262a184b713db29fbc4097e0810f46345b829d550660505c9431c66efc60b718a9ea6ce88225ac311caa43b3a8f81c2b65c68296bfc06fbdc846470a62ed89ef1c177f4e1ca3251f0d208ec880dd8d687afa3d7e6fc7b987c8559902c8195eae1e564a5825bb037592ea9084e798f1f07c0b1b3b702b8a6843b1f2fc7b4edce7b11208fe11d4a146a0e19ee0ce98127bb92282f108ec2dfc77299665c01216d29ab8843c130f42f92bf1b0abc529e419bbc01f5fe0a0b1d0ce60480abcde2d929a4a366346b92880358404a02b85094400c1296361849b67eb4acc4effac0540d621632b53a457340724f7025a3018cf28deb72662f13cd1a9eb977e570fb0a93055e8230c700efeeae40022179cf825eeb5dc03d78fe56ee77107cbfd26675d621cfb41f55e0d35160a12a84eac5823fb1eda80a0e37c4586f1ef65ed876e7924aba0877663182fbf6f9038fcd7d82eaef7fa2035bdddf83839af987fbba676b628938fb5159e219800bb050370b3bf2afc8f2c258235b1dc4d99e60428ac62facc987b6a412766d4f3c5edcbe6ad67e0bc8528511fc504172293d75269cf84435fef814e85e2d93215a01eae9af0cec2d409e336845126482bffffa4451188882fc75a08c59cddcc1cfb15019d34d0d76a76cbe5c02905f391799432b610a7e6259a373acd20a6e36eb85f4db9f8c526bd3645a988a8025a856fec51ead03fe40638d44ea134c0a5dbf57b8332215ba20008585344d81047e4ca0b1d3b132b996e8fec44a55ba8c28b9f412436d63b73d99b8b5c167efd6000edf1a58cb4258ef3f1de22e6a30da3c0d7c7a5841a5ec4e240474b8808dd3f51c00c567dbfccaeacce29147bd1ff433a3e40472bfcf9c1cf8574148f3bffd4386e62fdae7f86c1913c481686784d88ac9107ffe228e7af71e63bfff2730c74389faa81d6d7e1308a5fd7f88b432a6f9508808ac799dfd2390d1a785b0791ce737b6b5c1ad4137b0acdd39f5f9e224583199efa1d37ff1b69da75e2b36b943c160aec6a4794207bf8ac8b44be8146b7048aee2f884c40567162e6144c9d7604593730385a803179f8324398b1f4c3837a535ff9afd16a69ee490f1becb66d1d045fa992d0ffcfe5451fecbff4527c89ed25531b94df33c1a297f0c314e467e02e8cc1c08dbbccb394b17eebc4c40b0e07b670f38ecf59ccdab43efec73d674b0cce9dcd614168980c610a6d33b924f029c027427bd8fe5df703bbecefbc875bc49aa24110fef0b90adf863ccded091d0bd929f314378d3bbc6fbd05589ae7f472b6333b337fcf0dc83de819c32d14f6bc9b8aa048f79d019b232013522bd2f49ad6d67e56b7148239db1bf8896c675bd1f12256b70cde5804ae9f60d13d217a8d717a56da5d00f97616942047719aa98b1bb94bad9d7fa8b980a3bd574dfcc94fef0f804b63a0aae64c4c6f74b504985ceefd5f374fbc29a7b3bc0b7048b40d4e8fd2b52de68a91f73ca0daade64de49361f9bac093a42ffca83398aa3d6c8b2eb5c3e33ff70dccc65ae6f90424874d54a89794b644e11c64a9e07df7b446e2e919efd3d4a185807425763d93f7f416d54748e2c56b42dc5efc035d300cf965ada12dc62e6ce1f3e38f0a413ac8d0a6219695c3b554e243c1a2152a2aa59aa38c7d0067a890ab2632802d8d234d6dba718f38bbd29d3d9a67a7c9c5ace806c2a3541725762f5ef60753d34c7fc407528622bd61dcc16042838dc03fdb6f691df14755b75c6f744f84c54a7f1daf7975a1c45ce397444dfa7b9d4a2ededd5d2d2c4f8ac1e35dfc1ffa25aea129aa61295d9e11325422f6e0aa463ca4a62ddde689ca6d2ae4f1c92e51032b42d6ad499be78436d00b4502b0931e91d421903357f624b8b35652eeb3bec9904094b3f184095b242bf10965d598584fd73168a8b130ef480052763e7572167aa834ce80d8e11f9807ed2cf23b6ab266b1e3aa6746656ba7b4b56eaa8f1ad15969801bcc6b35ffd86d95a0688ecd611cea08a95cc98cf04cd5f0c87d366964346b303d1eb68f4cae75043930172119abd89a5c985ca2ce9d70d08c44e7abaef422f0529c171191d185f0d7321cda7bdf8120cf520544f10cf8f4719ddd68cb1292caedc14f69e4ee9c17f6946d119290c19156e9e057153e4e0caa4d0eb2564694cec93584c097f9d6764334948c8ced4171f7c2c63ee55eb0a605d8d5cabd6c9cfb6a8e80a594076baaca69a061a41051cc1595b2d6c6b7bb031b250208160791738a9b47dac1e7b7d2bb79f3109c0b99e04399320f718290825c43df78b58343fc2ee278069fec5693e6b09c02a4e0aa2dcd77ce9e818ebef8942cd881da6e8f190e6323684236900665d6ae1ab377f67a576f5ee0758e380a5a6512614fc16f63d7833e9681163752d4fcf27aa6abe0ae4152af252875e3042a65ef8e52d44b4fd19f219f3ee29757dc9a15212f7c39ea27a6c9ab3482889f1eb259941274fb22f8eba45d463640674edfdc739192c50734b5e4d132249548eace347a2c406041a25097a73d1d49b3eadb952b9eebd63705997c47f6c306568e19d6d6388eb06534a40da18f2eeb7b9c7ab3ea6c045e79353a84cea4cc65d8a6829526f9db390fae0666badb4ca1ec81fe85bcc4b8a8eaf7c3859d35571346b5eefc8531f559463fc68f0d97f12e117ffc4588153d0f7a9ad069d5d74dd9ddf82891c9f9e39025346270fdaa81310f6bb936c964005532f873feca6130246451c2346c377848652d95249e3329c000ed3b6f2dd3adc6d980eb3c849a9fdfc222b63a4e619cc83240a32cf90d87c2ec2f911e00a2038a5a4c7e426fac4e94c713bb3653a3ae6e35344078b4e62a35166532ab4fd5617e90f8f85240ae23fa7f722765dc665585b85a4120beee51956a116b7bb178dafc7cf46b39fb76fcabacb7534a3ad0e05bbf134db383cfb202a4088e8784fc9745e8874719357d9c14b94ea1f4a8c6748e007747eca808bdc69c48cd3905436a92d032ecce9863dfc8bc90aff3a4368adc203a981da864aba7ac830a68b83bb14317c3281e631c7c713d9600e7cd54de728cef31214912bc2e28f3846f999457cca441c004d850842067e8c1d0878fcbec2e41b56416f45898a922fa9abf4b0f8142ae2ee69d717e6c6a22490628cfe535488928b3651151b6e7fc37cc16c1c02e9bb22771503728ff6760a0c3486c157d339518126194ed31054288245c99608e412f85fd6328e82e82a30d8798dd17a04cba9ac3f2043f5a7fc250a8b09d9e8fc946b6058faed4e64577212b87bc555268fad7d1cca3cc94b00f5df09b8306a19750c6097963d9cbe2a2f8d2dc2cb00614cab48d3ff2a3d4a0058a01ee949e63193b86662c7c642a2e61545fa7d39ba92b306202624529bedfd38f292a2d2abdb117ca0397624f172f49a70a8f6f9280c6182461d9a01d48eb99d30a898a29d0a5c8818eaae1aec4b58607c37133b495750b1480e77d15533f99768306d5961940b2237dda5ca6d73f8a46a5807b5dba817dfcddc79336710c5ca0879119f967cb84b6cb399c01db1815170fb00be2dfea844bca0ce23d7bceb876d343f622e6b1bf929b949b719de1782780f32fca8b1a49953cb04ccb3c73898de20203599fb47c6e9b873d32dd3a58b6173df24d1e8683a4f2ee346184ce95cae5aa99d67ea87b84f21ff86bace154862b975a4e495eba98149b55f31268fdaf65de0a7fe490920d465a3defb33b643b48c4debffdff838290d6c337e20fae8bf202687259e75b365900962052ef404c22ef1d34af8fb119bc1b25c601321def3fe43ba807509c5fd1e3acbce952c7737ecfe9acdf4ee0699c75152ef6d8cc4e5bd8bc8cb42dca8647469cfa5d72f01b62173e7c354af5d350b66665c82c19dd29ff743143e7c724ce31d5c6f6d127c0965a6e52bfca53a5a037c731684969f4dfd8395f739922535cc05114e4db285dbd1f5f14e7290b5e4335cbef5b7c86124317970a9d1635675e0736e6edbc913c297059ac88c0393770cb1b84743ffc178c2a7af37a64fee208518186c0b2ebdb62b26cc42204638110aab27c8447c5a8fb1ccf9a151d4514d6ee0b857db11e51708260f8ae84f8827e7d88bf487366e6cd310a82882a53a84f2018733403c9771993302eb3c1ccaf6363932348152142702967238c85d36b4eab09ca2284ec4156f6710876c36cfcaddb86f5f100ea42242c3266cd8cdbc95538b7c1c1a6e13dc24448add992ed8dde8493e31a432f5a80e226f0b63b364c34e34f82f044414e1b381c21c914718e14d69c7b9f52ab1d3b1908c85c265aa80edef45d005923b5042f9b95b281cc036f7d972d12a04b7197ba12da828a25af6835341f491cb4117e876a21c155434c889aee98b5a3533f1693071d9ce895792f7af21987987d6a8097fec47d91d6f130ec552b8478ea34ceb6eda96c93564a27b4d3813ae8b47fc588a43ccdd32aaa48f5aa2cd3383c6d4c00918fce703467f6f4825334c68ba74ae604566365840b483978049090034ce41134c89e324fb646a80dc30b57ace856ba2b8f6c15a071533ba3a584fbef62b0f7f6459fc3685ff7ec55a2d511347a9f43c5cef678eac4583e865831bb819d5ee9029e628ed2ac988e58f22d2fece9bc67c7b000cdc1598d9b592622bb86e4e78d10e637e1a06f6300cfef8850179f2cbf96a61150cebba8525d98886f1dbfe2674e86f84fa5d5fc2902e481f86f93eb01ac2e830fa28076a2e250c245361b063e4e503b511663c99942a77c8bf5c182d1e2207220cb4aa88638c42d659d9727a02bc88778735003b3a1a96fcb0f1fd71a91ffd48fc8b376eb3eba4572d866497545e1190c23c6c8ca322d3efb051b4ee4af4518cadac5dcbec091c64de6da0284fd5c14571a9dcee7cd8272a564d0bcc92ac55c1bfe763f1fdac117a47d8007c15e01f9e2b2f2e6cc8de76e1bed95dac25459d69da0359dd0b366dcdb16ae9825ff88678f4b4d5ead5f6f4259efe493962219018ae29d0748d092d3b2822e0ce353e56b153bc158a10ab20996b986ce07cf5a2da3f02db5fefe1dd468129c742d303461b6c35d4fe06ed5445e779df6bd681bf3f83a19e75da77ed19e107166b4cbfd71ba648a44693316f421fc730a473f3c080518e8ff9edcc589a01714a91bee251956d7acef265c883c1e560989bc33c4666498c44bf46d5ae229385fd66de5a14c318cf64d070d705578bae3c38c388395b592f57d993fa87cc25e41aab8f7ca88fdc67ec3eadc000ab832be4a28fcdae75f1ca884ab9a7b6d01628813d81730ebcfe0c39215546232d2e7af110381798bd9cfaa57dfa1bdda7cb67b03ecea6cc51c359217fc3bbd6cf1869a3660177ad9af53df44de0240311c95ac1a163afc831ef1b83cc2ca04793f847444fa1797d26d9bba440a0f33b8eba8b680fae0135e6b6b6c5f75641fd3f49d003f106827b02a70d01d0b0ae1dd597e8f0bb1097596edca783e24130a72141e33310ccaf3f7092c68a86c8601ffe0e1f9234697bc1a6e8d59f406adc187a5b5cff18c6070f8a449f4b3df755107021408401d57715d51c5242938f22b1876722d9b127d3d3cead6c850036f11770b4ad0564e8ff829b85a6a31f05961e82a3d57af4ab5a93ff540b2620e0e75868e205eaf2bc9af647c645d905c7972bdb5b9badecc83d088fe625eb1169d3b92d93900f92537fb7c038f1cf1b85124e99123eecd2ea1a16ee7c1ba8713c72655cb50de4b1547a1fb396e6ef57973af2edbe8cb1f635003d7b375a0213f87ca5910adfaa709561bde8af809fcbc95407a8cc0a22df3422e8392e5ea9f14d38ff3dd1e80fb6387356e8d75f894575074985b0295f63960ed61ea908ba8ca4af139cd5cf1623523737b14bf384045f1771dd46d00520bf6c2ee053e4809c59b2fd66eb5a7124264bf1cfe09902607a75be0c346a1d1cb3b91ec4bbc853366fbeb6c43b53d2dce198c6674e880087e836515256146be82d3b8cd8e2717431bd3fa9523092b3423eb89317b437fe145b158f49b7fbdd2079db55081776561363ae446b9e85d02554f19161081c4157fa39fdaf901e99ac7ef4733fed5651523a7a3115a92c7ab3de422fb3ca3ffc4d954f7c04d02b14a191df5448f4915d2b76c3138c54ede8decda9f4d6f9d444759e4485847b602ea3ed5467103a4cc86cd923413ea37f5a5d98386d7e9b83fc8dbad4562db3a4b9b6a823be89e0d39a14a4c706b204d14f215a53236a9d43e48b70203c61a26adf6a7223d6c7b683e214bfc6f865d1006836a229a2fd7f3ad4399cd9845b3cd0317ed86858b54197efad92550ffed3801e98b3558f69d48a7f6b9bafa6b0ca4c343cbd3efbafb25917414481cae973f77be92fcff46faea09834bf12e597096a6bb533f1027a5de8822eb02ebf6a93e80350ca4aa18aa11b5f1544002377f2fc4d02d76bfad43609a96e5f160c2701f0350969d4d63b54a0fc4c46de6c150c5453333d6cbfdcceb7894e3dfeab04a179717b59ecbe29c1926dde869cc592b59689104adb5c275c742094cda372741ee7de156bb4038197499fe44f8ea32a03d78edb6aab0a3e0223883a7a80b9b66c036070f85ba60c233c6cc61e649ae13cb37bfce256266fca18734c482ec9ce931ae5dac988d82360ec3a966a53216bfa5a9bb2fff54103501f92337111edb838af7dabdaf9e545fde8e829d36c4106e07987ec0ddad039b48824d5071578196c0845c5bc223dfb5dcb2c2101caf8435812b420bec73ca0270d8f9b8c0a1540392a6a47bb5ded2687524787501a52b8813b41f267413dc05b1d6e91c3de5678448dbfe0a53e751e0507e7859eedb95945f1ec9a93130a326075c48ddc683268b0c0b301748df4987c9a62d4d32dac517c4ee5ca0d21769d2d996fa70605569b84d07ed235871686a7b0005fa950985597356f3df95373348b8dd42c3de40c363c7bb1f3a5e93688dd8da604709c7a761db935940e8cca99dee0d2cebefe2a477416dd71344f46f15381915c406099b63b7e87520b5eaadc1392e8cbfa55b0952bcde31fe278df9001116faad5082a667736c2c7987f09b02571c80a07c83d0de79b7f7327252f11bd0c8e1aad2cf6561b8bc0f3dc226b9cb285f31df0e27f435a03bd054c9468de0e285571736e3abcd43ccf0935dd9723ac192a5340fa32cf358116b58dd698319aa62d6c689b4172f58fbf7250a86bd4d28a722f5e47fded680d3bd93446a8611d66a228433f2a84d193eec946a2b61abc8b7f2ffee6014ef1e36ab8d300f1f03b668a06bf3b36304fe187202b9629acedc0aab57159ca4ac1044d189ee109b22d05e53b50713f1879ba22a9467ebbc0adca3c9c83a380a76120f83e29e0acbc366fd5e6fe9538dd46707f98ef13f9112c067656938f8d233a2582640a0dd73a0fd727607cae3e058d05ecdf3ba9c0655e084a580efe60166efddef4dfba01644760b21984cd922dd9f9f8bfa8468ad11244731ab770e44d18c75ea4ce32f8e9be5a88dee24288d0f3f37c12e6e5580f79a1214878ecfdd44d72de35626acbac158f08026af40269a605eae34c9d2b5279e736c462bdfc5b9f747968d8835f620e967b2f8fc8f01b690920cd22fa5f2f4c9162b87db3732b12bbd7c5a281c6e45a451c051f44d0c208c856703efd00976ca68e824ea73a42b79f2660c93d8f1f7bc9079723eece362aa26bc99898800704371b2db32738c83acbb0c612ff5c0de39a3d3bd7faa0355f98f7879310415e388961f0fc5e0d414086e934dc84f6ef2b2c72d7125370e0a00929c64b9cdd3459001e0a706b28a492a9db44f8a98e9efdc20871443c9c7b6276841f8bb430fb3a08b6de7797550f6a018fb56d60a3b6e2808090ac3e27583f773e802a5bfab854706b29d151e69885a1c29708ceccd5e37c0852dcb322f1cb1cfdbab45138f680ec6b83e08358b1eddd0b8bc202d2628c1912b40de274ab98d802de870042d103fa8c4d7ab32cf1ba04acc8fcf385abb7000b8715808049743416f66a8601166c4fa64e4174712913a655f8d23d0b3086711eb192c0ae4cd437bf560cf9acc39a0c35cc148446a217ce0bc241ffa8547e323ebf4232d08d6638946a2287b69abe598b5fa17ded452a8fe72528a915bbc2bdceb4b74495161f831e2cd3c18603a1c214cc585447795164261b685070371c211ed0e6db53d6b723c064a93493099ae20b321953a804d80c803ff4f42096c9485ecf58ed0bac831e1ec69a65427b140fcef03ac33175852ec213110aae3e8817a230af42aef8319b3ccd9e4759d57302ce27c16a373de9e0ea637cc363621739870c3b1003494ab02d692b5ed101a4674e46f4a2fa43312dc155e6dd037842a51b4258d1d3282ebf33a1448a94b536ed30166979540b6194eaa60ed5feab43479d7240ea233e755dea98c0488f7c28c2e80594cb1a35478c1010514cbbe810768c4669f9a699bf21ee229cce1823d0d080ac4b25a0341416ae5631be9ef3da91b62bf21d2fb60a9a5f1c988633aee74cb614c4ddd1fb69801bc641c8579b724854f72417739a365d8d4a2c6abd516bc7a29af443b2bbcbed8178666de69c7f24b1bfca939d9f6051322ad9405c79639977096bec8c4a01242c07267cf127d132c8321437f64af53a2f542156facbe284c2f481aff9089f2a3e82e109ddb94e354aecd7ddf0d33c697e6276e6a108db7a5b7aaac1c43c87acbf92543dd56a9ac113828538559ab3df17f8eabdf33800e6b9e2bf1ce84a2df838c6281e5610795f059d67ab41c111aeffe373509743010eea07696becfd26460f42e9e2da9343e8b6a380488f0150922990bc831c34442e2dbf214b3a31d587a6bea41d37f253eaa84eea3cea8866a22d476b20253302027ae986f0ace9cb15fb50c915e2f01e0851e3f42569490da0adbe6f72b434bedea86d3970f28ab85682592a066e750d4fc6ff5542e10749952abd66e10efecf42d8eccc24759685bd6dc5354a00c90852554bba59cae05fa4b6d7dea32edd57d03ad9c2b61e090dfe4090159d21df2d03fabdf7d6d6e4d5c322621f305fe36a2cdeb01f55957025b1040868005e2e9345d12740b50c5b93d77d19f159a4570450fe2cc09032a97e65bfc00fbfa439c1b08695c7fd8205eba6e300888e400f8e6aa0536b7aba8857c467783fef891d8dfbf591693bd0108d118899574ec6997a69e1597e72db349161b4ea59b2969b16317c5f0e991bb0e3f641234652455e79a94d33e900dc62be124f6595c0cf135aef43bfb683b5b2086aca602ec082adb2eea7e027c483f19e139f3c8c68556a47e86071e2a04a4d97a70f4619a92e214f34995eaca3a03c97d0f2f79348c18f22ce59d92a49e7850c90e4d5b2d88a21e9cf685e4ab30f90c2066d420165cd8ec320237c3cf753c85e9d23daa7a89eac386f0180d1f4c959c8ac4b35941032aad8f882319ff4922cfa9351739ea35f62211db0e4b88c993303804fd818319050e8378258b88fdf6a15fdfb62ca490500f8f8af3f823c5628ebfabc27c3137f8c963093adc60ab406e850bb61dfae32638de7666deb7b66742f1206b03cdf2c21b7546092363c7cfb7c78101ac8f9ae172fbf36e889faf0cbbd7839fa903b44a9bd74fbdf9d9d0db2275589ffa6029f52409b29af38795650462379c668ff0b9824067c0d0cfb087831effc9a5c329821844d9a2ad09f510822d8898ce67752ed152a884099189d33d4174fd3d567076d3ffcd24b37a9a6e9e2f29ee31b37fdff5ef593967b346b8e550bdb1a283bd2ed13d8d7dda7b9bb5286ea376e015b317b1cf74b3fb08c6691e9dfcbb7dc1321593eabbff44c0eb1040c227bff9ac3d0336a74960f6fc601a6d27bb74ecf7bd63bcb6299ecbc202838df700548b00dfb0153273e218ae3c2950cfc58730b32c53ed00470b6ce07188ccab335eaefe4ba152b729cf6a7050a0463d1c90ebfa2538066abc97ac40071331052c88364130659b884508df371380adedc4d8e5124e6a42ba65253af0644cfa517acb2b9470ea8cfa131410d57dd722d5a8c887ee08a557e4308217c182a36a1e43a31f600e6991812b28396b905b92b79cb1aeb7c8b73da211b8f99f03554d3f6acec3dfd8af1dfab6993977432bea976c182f8b9bb16b09ca41f57904d4a1d13ba567ae79f0981e89a78d629421a2d07bf4fca5537ea1a6df773618f894349585764cb0f845a9564c509390e2524a0b34ca91d90bdfc963e0f69e7de8a6920caf0abb05c0d9af6f2cbbeeb668eace0a9f358ca0418be0532029c284ad0310a85b0e7b8e4e006621b5b6a0f0d9ece44128fb4229f2f3f9d4c4b2ef291963ec81d2522bbedf0599da691ffb3c1fb6090d845a921806752ea80cc7d4a8fd41b95c68dd20aaa464b9a51d9d2e1892400ac86f2250b65f8db81c1e719602deeb239f1360d47b25c3e8f4d35e963a45f2d1d6e0d36fb6b0eae9aec17c254967cb81ae1152cf85fb0e2c856adfdd5c03380577788132f832df60aae1b31825af8b02101ec2c33125fed6d2db157ce1612de86aa9bb92b268eb0acc2df1cb0ae965930bed610693bf3707c12d41a2d04188f280a71292b78724f01f4fd06e77c4ccf66869ccab42b8130ac0121d4c690477fe0021bdb0a181fde0dc7701c65d31b4c8a0109aebe128d73a052776cbb3159a1152bbf51986c755b6afda974d1008a8d8e426e12cc14f260e1303084025567537d417a45eaf83111660d382bcc91e61b41eb07f9a43a583fb97a12fe95225e38e73af7b2886c55de1f3efc45762bf5a365239be6337c77dcb94086885abdad7362494edaf4b0eab553ebf4401016c1ba86f3b16e8a3af012b777003d8b7bcf6b28f1745a516c413ca8824f9bbdff5d26685243870573eb05aeea8d3a187d82a3da46ad6e789351636e4d6e34adb1202a5b52b86fb48609da1980bf621045f33610883659914a1653dc12b3c70e6cd302bcf52e127b9b3599a8645447a24d1955b87561e82e4c410bb6c522b2bdbe756fd48ca15ca0aa938a1389282de6426d4c77f581bed84c387221e5f055141e744389c72eaac24aedc37eaf6e66156d924c02d2298e585bb9d134ad77933614be395154ae9835f2ff90a47a601014164ee29db285ea6aeea90c18cf56d998f165447d0b5c34e798042de784ccb1f411f8f2376caf19bf4fb111ea79e978cac40a5cf58449e22270ac226660a3804b4c988229512ef412939c338836949271d6c2c5f2c267dd355e5a40d9d416b9ca8409e56ff92244200e44a6bcf238f340dc4fa6bccc31d9478c67693205f48df64408070a8b4ea9faa097ae07878b7b025fcbbf02655938e59e31563ff466d0db889cf2625413b602940e47768d161d5130cbef7a98f37a4200691188557ff17a40192d1057f5e421b7e5894cdb8b3495bf2d81ac8b86bdac0bf8bfe9b8a9680451d635a9a0ca9893d616a09b9dd51d97e7d26d3aa2577918085af0b9d007360aec434411e562c29744a55bda82253d4a29030de460cdb7111c47884585f9d219857c2a2b0fa20d36a59d9e5f81a0ecbb5c6e30c4ac358ed15f32e0a5018def5886b4b2408f0fe39faf08d6ddb9cef2fd81eda374f27a9ebeab53d9454e43322fb3df87f5988a4f5c92cf34c723fd3603800d4d2a9b5148a8f8681793cd15feef7cf824e8f5c27cf1515c578927dd1e3481401b79ac7e67ab99cc53cdfedb0736e8e1e3eec069de6fc98014751c7ad952c0e4fcf1e1e3aab481b1ee67b2bb7bc9a5f38e3ad908071a3c49f6d9ebb926d6d192017ca3c367889cf6f54193bdc2f07de98f01e19f70080b2ab96589a65e1d01e65a24459b79483daf6a3bb9a66324a141e163f6d37f9f477551fd7615d4a6b01ccfd41f1265e4fe72de882042153e29a48f5ecb4418c56c854f1f36579eb8bb0a1ffc94bb5c62c1adbb42df4c854f52d59d81645ac5b95d5a950ba30011dc22a61d4c66d4769b646154f85099f115282ce721362c995a6bfe6d7d45b14060e15f213d967548d668ce7206da093986c9bd746574d0969a6915b1490f3afd7bc685b8debd5f84af02350cf2e83dcd23c28b59bf9fe549543af91173fd1bda7242af2e073265e6b300f4197f157b3dc634f14afe40b8925c0619e19ad32ba0fc98cfcb717908e7b7026e20136142c651c6146abdc5387e6a46f9e4e2bab6772f4f970a0a3ea10be2f911946e1eb30a007885932b72018dac7b9cbdb50b115af7f481974956882c334bd1e22d2872de287609ea9e38b1c979ffb256ef097dd3e419fe142357118a61e491d2cc5711e7eb12bf85168c619816b3e6b3fde23b67da186ef283b09e6cbf8de394a5c564225e1753d1ab633a0fbeba8008c77af937bd393b2f253f0cdb880176331983e72ee2e43ec0e3de3522e57d75aebb30c9ebe48e8a9576dc5597e56322596e6071c41894f2208982f4783f883895a502b8a8825bad08f4a9405bdbb1609326260f6a1268276da28986199a55bd331351b1cbbe657fbeb868dc2e73980c3f5fa217811cd0bf76b1789808f6ae78555417c17bf4a00e022031d03cd543f188385eaaff8e2679044b6913d0a9cf3ae2870f32a540c602fd46672543c803753538dfea1e9b569856774e2dcd1dc38a8a0f2e802f7c9dcc3e23b1615fdca45358320543015a7f4b9975c6be2e0003416505f29aa9908080efa3841f1e8519ed31638b66ebcc7c1c53e792b7c035bfe287b3af524d17edc59b8a90cfd90dd6cb53827c423749a40effcf22d07f31b78221c1915bb852f783b3891a8f1f13c91f32bcad91f728fddd8cfa624960e87748a6a6c70701041fe62f6775517115211c21fd5eadbe7c2c66eddb40b6a79562106c2cb28eb9906b0a7d76c96b795ade983bdf834e3ae4f23dcb5073884a292048322b82faf4e4e569eeb2f73168845e143d3773e346ec1289541f40217ba5d87b998c3796ae8c98fd29392bb176110d6b4b950e93c37832435933366b434e5693ecf84aca9e9fc9c80d2380c111fab4b5f67425c32384137a48e08ac8684874c3f62c6eee8dc8547a484e68b1469dd215811e905c33caad34e44d0c21eeec26ab94f3e65d5c469dc4c6a293ef97b710082dfb0ba3e902a583ec4b0ccb49545b02414acd68b90026b71b94c56aa510b7b4d9041a0c3077a5d693841cfeffc1ccaf39f24e7a4166278df813dddf5fc28b64ad1fec3b3f37df795810adf4f6db5e3a1fee12004133791b1ba38a7c8eb47ac8e271c4ce40b39252fe72eeca65659a7cf7f290da196240dc9b12d93f8c5d0f5c477187d6214843d25c9c68a30394f30655ff2835550ab149251e0950a3574916da5d1873e49be21785014f88d05d2602e23942aae9a40b71055f56999f2410eda0ce080b5c246258e19d00ef773a621f3bc25ac8f856b5e7c3981c5933c7adc7517a034173eb580e864d3e25a54b5bab2ecbc2443efc3593f2b02554c44cd3865fad6d04b6b3ee903024a60a682e91ab282367d63b2607121fffff2e86621a8d810f2779d09ada14860cf5c7e29ebff28ab9490a3a791dbd67121df86e4dda36396dd332259d3b4d1e7e3e362ef05a4ae44e19a959030fde889512e00a97ebceefc1ce519737210dc31673201bb3d759f97cf7a9bb269e7f95b0bf5bca11a268f55c51466d1e2938893baa4d169202e3ee232ab06b4646345d0302570fb9b11a68b9c0225b8ba683c21581a31898b153dfb465606869ac06a0794c6152a2c15ade1fd9d280ca1cb0378f49a8d70c25fa4c3aa46afc1c51f02225045edce0bcd6df3c10a345bffa69a33ec46876ab936c75ad65ea939e85acd901f3a800e8d75294df785b134b4807eb79f115c40d8d543c74790a34e80f427136c3c1a021a7237e88a35e119e3a3d4e90691169a4e8f7125e2fe5ab07dcee4deb7caf759fb6ea675afe6de164256018f35b3fcbc05b51f691f6b1e75bb3c782f09954f212196df7578d6d91bff70a58cfb755c135dfabdd025e48773e6c6915f74d92e851cd80f715e316ac51e73cff86308be14b7fb76f3f7b31556fc27809455c3e7585917cebdfe172daa97936a22ced0f9c41c323708c055c9200e2c84afedb3b741f38f8c158baac84c980ade4b79d76cbe278a48430f792dc871506192c97d84df9e0a13b78f083071a0c4aa5957018f0d57fb7db2ed8d6eaa824783855d8dfa8cd0b7156a673220ae56259c6b6ffd0056b3179135a86d9c46a71ae7e1d5e3445dfcc7077d1b47d3fabb03669fa00a1e60ee80cf781a7137481ce3606d7a0d371c8ab1c6ac0d24a409b9843277bf80d475085a7d1ef53085e5971a96d614438abe7ecb462ab586b4e405bf771bc55df645cf97b46372dcc0a386049b4d915d9a8c94c80f4675b86b5df9c78c46d4cd6f204990d03b88507fc64a390fdc8031e3c280caca9a4a9f8f940383337d0bb839740f02c0d26b9100b0501b6f39dd0239bd02cdae1368a6f86129c48a80741e692910365cb17063aae02145899e91b008108565cff0cb8df621448c01a8d8f078b814a5cbac08b492a21c2bd4802cc1e9227c7430713216dd0b9811008ca1a745ce8008751b54a05fb4bf408c9dd2ad0d6077a01aeff6ae5fcf01546776fccc3ca1198d98b3011585b6d985820fae62f24c9813dadf305a53f1746714c80a120de4fbae4eb4d04db7493d64d8ae6149108c1cc2bdde10eb809208e9105f492c7eb6968e8a61b81ea7c879174e7f3c28b5252b9972f178c5c033c2ab5602b57e8072cee15c9fe92a8eaa35afc4a18b1c6b587c9b072fb5f0c72be93920919f221929b2d60b25680fa3b5140fb44d6ef4bcccb532ecde144ae719a41591020ae4152808294eaf134444d93af4546d161e7766b85f10593b80bbf2aab6959342f2f31aa3a49405a2376d66ff00874585669878096783ebec16a29a481f3affb5e642cf0dd0d7c7d2e4018401781bc9d5959895801ea33544e157d924938fa803008a93095518681a4f151ab898aa80be7f80b19b6f8544c2721cd9c8b58cb16ad2e42edc28c76b1390a76005eb458123bf3f00bdca7d449fca167f77fd1b3c9d5cd68c3a8dd368fb7e3343ecdf510c264e38a3099280b8da39f683808fe7ca3b85237955e6d334a7336d9b7f59abc48425bc6591efabb74deee630c1b4a36b5eb2e019a5ac090a96b4c38dbd1c90fcf8eea7430ed3256055d479340a05813b6cd6249dd8b0347af1263902bac43ad9108e6e0f327906f3c6f75443894ff24e7113554b29baacd4fe4319e0e3f61666b7b7e2428b91e7f672650a255a21e357f4f66817ece1defcdb7a04fe00ed05f264cc6edf428e3c7f65b86d93398efe41c14dc45b35675940d59ebb14c04152ebfffa193d5ed95c961965d49d61bd083cecaff3b3c3165a959704b7ed90792a8fa7f278a48e4dcafa81f2f6759f698899b841a94a3a899e3503adf7b903221d5f6ee0901523971d7b962b860f41eacca25cad025aa4e50addfab7537879671fa6d7b8c646184fe81a0dacf4c291336e3ca5804436a009fa472e999ba8798dfee64e6f9ae29597300161903c8043446338523cb80a212a05a0d435e33e04084fd5d7d0ad882de7b90f2050a9d5b7e994011476abc1680a1cd41197fe0a1aec03f80ae08889a9736d9024d694e977a79bb8eb28847e6eb37f10c07932d788a6f38323d10ae4a3a2935090a85522a13a3439db5f0ecf86eae0110dc064faed1bc8ddd6b984798fbca2e48187f8b07970ebc4b52d4f420b33d5cf80a91fb526ca2571e3648ab41a8c8145099cef99e64c4e739b123a8ce62eb202a9d804574045af38a382161de4c45aa71bbbc40ffc32c89d3286227fa654f214112d5390231cf346a331c28ce7231b3a000f0d58e78c5c07cdb5f9cf1b41c9fba3518db8f4d2ee4abe126c6d276b90f89a383cb392603b9dacbb3ccd9b6c27f1af912e125759922ad0f342a98950565992222b58e3b1f58c87557ab7e1ec91b96482f42f22213d2c0cbc089864c38d0c33fb036767a03a4d662dd42403f3f96ee0ec81d03d4898f158a6936a1d24960d08e1cc88fe93926eae19ce5b512184acc26b512ab52f10bc0dd69c42a8dec248ada0c57bb71aa368cc0a37316aaee69da617f12d572cedc53b722defc09ba91cf9faaffcd538d4675f73387c6b2f79987bb31f6573da9f094decd376e205799ed5f4462e8be09f0da3fa19094857c9b1f37f63f7726cffdf59228f11ef9aafe775b66f1fd7be33a323b8bd5f941d8f7f9505eaee7e178db4556c215675400e3f1a9fddf5f074027cbc3d82dc4c3900c65337304a162212e7240526552603e174ecd54e025ce172ff9a6cb3c5ce48204b27e3f6c2bff0d56c8549e37b8e44d5c49bc7c95056b94cc57a5e431a4a032a0314213657ec3b5ee75961168c29a03ae884d7f47454a5c1540da39f9ad8f930042fee2a3eed80773a02cb58424770ac5356d7c2088a09ac9bff3949eea89120590a791db23a6c578338920bf5f9f6309dae02e5aca91b9154582992fbbd917ecf49d78e2cbc51bf6a1cbb69a7b6fbba1840deab557633df00afa3c6664307125f610c26a13335649e06cd5dfdbe7f692fd3b0f75cbd5f7d4ff6755da2250cdaadd731b38074c8abe02e46ff5f8d57fa5d880b22826402653e2bec162fcaa61df39d6c487af5083c142463a5deb4c553e676df935516085a7dfadc97c05df6fffa3a8ff6a2d7b2fe2372e362f0c6a4052043329a153fa61b44b6f2d6dd3b7075fe2e382e0b5d5b00bf564690ad76d5de314992387471b792a7d1d5e1fb6ca961e5f1744b5932f64379f01fbf7e53badd7625e517ac38d4a58a7666f19f9bb57565976855ed07e416868e45afac2b2d527b664a1a15b6ee98f06855ee8a091e54f3105f64b360ce8f40b9f0803a1007ab56d39f07263ccf82a341fc16cbc9f943408b74c13b29408566710d9ea459b0ffee7ca98b577d9df6bf5e812a94f585515fed466a49aec5e8416464efa66528c95c9a21b9ea0f1f134158b188dd70d1740a4d47d20d783dd43e02e5d04921aadc05e8bc54e52533b653779d374084412f42979b95338d5d08290eadb04c8fe9293de7234dabf3ed32873860f0dbc4649355572e63673d65447771de4e3810b267c64545184c76c0d04c429a05c90bb1ec9a8c43bf86fa8fa5f1018bc6075250b188180bf8b6a0a8e53c50ef5067539e0e2b1d2cb4d1ccb52683e6abfb1319febbcf4623101565a8fb0552dc5076b78d341812dae1ce4cc0f27a5ca48c59683ffe3add4e6a2cd23f1578049bf3ef40b8ed35ce9e107a95732f26e81b14f36c925dfa59c65e401da388f606503c651b332ce43230834ee7418d6fc82d87e3f291210dc98c6219ae31bf8873c28cad26133eb90fd217bd24c4919ca5afe346452ff2be02444e776ec86b19cc38d80962eab9270922b6c0ab1d01c6977352856aebae76e443abfe65edffb82c5100bf429d41d583e4670f64e41dfdc603ff4bb0051227f5566e13ed0335c04e94f125fadf4d6c10101a64181e4398cc14b8169c6cb5170a244536c89beb888b0bb8f447f543dfb48378ebe50f0cb3db3c9f5ce3ee7c1bc15e5de6897d94c4a0e848e591e11a8b647df2e9046f4e7e8f876dcecb71008795d6bb6aa373bb842b9de7832571bc3111c6cce931f03575faa8f1cbc0812e5adfb470ffb483b8950cc4406ace851c2b9c000b813c93da86d76f3c6e6c00d9bad09eeb14ada9e040ff59888b4467bc114e50b636b0e82f56f6affa631890b0031100c2070b5f065fa2428b74765991e0484b8591fb0fa3e5498c61b3cd353749b60723a0981b8ef4c88ac6d9140ed739a0a50ad8ffc67e3a6b1acd28d33333252c8a9107371d32d92bec81b7ff190ed1376727c3d8668d763400fc192d38778e39c57af49f15190ee0e4b45784f8fe3dca9c10ca30f6a3fbe4b48fd570998f4037a9b25e836d66802e47cada3939158104ae21dbca078444080b37b78479a891c902f02f95b555ba54c1ef65b598b500ce1358b77e559a209c3947fe04e3bdfa6809865f4b1d742ac393aa4b2202273b9a1ca8c0f0d861521d97baf901eaeea287650247378842e53de396d36e2efb19da8ff8c80ccd20fba3dbcaf7c8bfe306cbdc9dd5b8d221a2bf97e4690c64785ef3ce12cbacbb814fd6bf242226f0812d9be6e7e09abf7ec0648ef96328d1bd46f025ae379665a30ccd1930e1760d41a9dea165ebca8856b9d3bf1cb8774236ffe887f57c059c423e831345335c05bcf5b15ee28eef4c0fd749df4b4a91a6d8ae06dd2d42de4ee9d50db298e7b32cbf7a42a330880901a227b93bdf796322599021e0706067e06953c43908b38b654501de44eabdb298bf3d3dc912707a62c950f15e1ea20c76e1fc7c555aede00e36cab5074112fcee78782b60ef9aee6795ead62de8745cfc3d5873ccff3b0e825fdb0e761a1eb7596a88a2d56850799981d3024890283508bc98f7190fc61bc647879a18162c5ca0629a94c71f5700881349e986c386e88381936c236356a33ccd8fef3c01f4f0450427c314912b6b4b435638b44981c347268b2b1c393dc1bfb1d55fbfaab3d54d2a4a23c715d35dda033565eb9b9c2820a6c72f8c1c35aef7633d070720347e9e90c8fa4a91a18142c68f1d2c5c90e585b762b89465347bab96131eede8270a1626bc77417df7efe5ff8ba31240d0818b219a6845f30d0a5883740c8b03411523e69a981bb0e6fc141b5c4d440035ffce34014d7726f2961c9b6dc5a71829030f3095931f42c22a207d6f067c3dcb735561b6d2c3eb0d9c82863c42a0d9b266dac8638755b523a72bc904a5e96aa3cf14812b35e79b37e7c1dae17776fb8addc0375b6d6c6c27a235992d8cb32cba9058b6b2dd11ea82f1c28ec17776f382da97f2c2198282ef14f59f6409d3fec1f7ea276ac2f59acb5925e42918242a5811a5133b0c421e284069016b4e2041143eae1c5c9901d55536ace588b773cb6b5e20fffc88085729ab6804891810556232bc899fce5ce6179fd5c70bf9a8a295905b00bc1af80d4beae735723c96f857b7e994e3950e71558451ca8f3f9b1f8705e7658497297c3b2126da5f8661b550fd4f9ff36e21c88e21c98251b4b5546e764937c6846a863bfc79d87a9bb87bb9166f748e0a5c55e1d8d7ce84fa34cc7185eda2f2f6d96ecf9f1d9449080923a57aec5621ecb3148e044d776b8bb51f4d2d6f3668b4310c1e2112c2ec1e20e58fcc2deb1ba02b60000287c7a2a3881a3c044891b0f899dab936313c31af8799dadeff43f103e48bb0a8e0e70204a7ae0a5d23591fbaa4a935c735f0901c41554683f4f00b968850aaae23fefdfe6007f4aa1324557ffaa46f7b606a05c51a4c2d65a1f67754448e2bcc7381f9c551b3be2dc9d085c54ae28524182121718845c9191c1d22503271d6c901cd141e5031a0bca22a13205ae062a385992aae030fb0189062fa517a6aaac39e38219008aca15452a7c509283529a219a8a28e392002e4959c868ddf01203191426f09291f4c40633322e6140b6a608013bb3826535e613822b3668d5e0c44d171f5b38f801268d15580f30585d7a58900136841492334268d042a6f9910363650b48105a2a1840171bc218098286386760512b78d95216430d60aaac9cf0244f42665471f151240b093a0c79a10c91ae315553704ee25c2909c205ca161fb060c02a2d07e56b0995285b149011b9c1cc6ceb4985a62b1b6cd94156c64c5754d795099d2439ca5c21311b228395dc1b314590f16afab2e4a444592454a6d8e005238820691a32b5e56b4a882d36746c45bd61721bc1865298d4139c208ea812012c6b78247d89b2c20e243c5d5b47ae5899a98036844a5fc182b6c385b11e6580b8814451b9a248050f0f4772c86066d5420d5e686e507541e5e801063664a72c122a537c515283982a334ca5f161ca09a91b725fd05ced30c3d48d03844bd78c16645819919281315031b4f0e3a9096d061dd10b9623549824c1398b622343e543871168c8be44d91ca41a4f528cc8305345cb4b9706494d88f4d001864b101eb6b248a84c419968d05033a38735655c0330020cca08244a6c38b16ab262d8560d626280f0b271646b0246824499c1e14c0d1f56376c7894068d170d625a6c98a295c3105da0c29cb4a12a82855a51b9a248051141ac783942f575230a8a892438f4e82149080e5a564a60592454a620e343d753d70f35b6b0b22e50066acacb112c6caac4f9ac7618d321cd8d1f92c860810102366406115770c8bcf1ca22a1324550950b5d6e2083a56ac8959219a8194762d0d221049baea85c51a4c2485999233b96700411c7aaa11459218c8f1b58e8414b8d152a5320d110d565ab8a87ac3347780c5e32e8a0850c0f4e5368ea8a221557ba647893a50d0c5d593a387184694d0b5e6ac0a9519e7d592454a6a8c0492aeb8a882366aa1890002d30cce0238d1522ca272a02c2bd6845918a114059b29444cc531394056477cf31b6428d194f4bb69c01a1e889be31d971fdc4ebfe913e5e77406fc92ae2858d920ea529f35391ddfd035eb9afa535b9372f980e82072078e0ee58c439f6c03d00a10c04c15aadb57eb58f821da53915af700a76508bcef5eba0b635d01ceafcfc942928071d85e2703e9872d05c2af8d83dc52cde1be5a0b554c83e761d37ee4a39e82c15f2fff7b8c84fd2a6b93b88ba8fc975c96159e2c97dd543989c5b3b6bdfbcf90202e643180b4138550e4c0003151d3650c951464c2df71595d8d60b514ab92a33725394aea892642ff7d5901917dcc6ede5723de4fb951b8b7deba07639b5db0a8204082567babad0309181502736682c5c5cc6d0f8f0a58822612a84b9a20ae366069a93f884068f02908624a9e2654d5a8d2b190196143dc4b2e5d0455bf67c7eb98592a70eeaa1164a76b4d921861b96dce04196c5b4e5158ecb5f0751b2dabe0ea2fd64d32a4c32d537d674ddfbb1cae471d734565696fdf15bcf3dd4e3af14cd73cef5f8a9145a5ada3b957a4fec6a15edb00eabe4277ab60f32f851fc8d894d0a506fb7db915b15c6a68fb844ea5b02f558277fd4db438f16a000a65b7c0620538bcf9e4c2d3e7932c5a1c554899b2e3b9f5e0b256a1aa800d96b8cb076f59cdae110148970372f6fb78e831653701a83ce2da6d2ba6c16b5c745e7bc5cc16cb14fa5b5b8f94381c6691ac7a2855d69574a7d6786918a954e384f640fbbc6c4569e4ce2ea30a17f4318d1871d9fd01bf48b07eabc0fac85a2677b400bdce5d013ad8d85102fec050c07aaf8cb862a0e735f3d51c92f688735f1041631bc743c650412aa8465c71df0a1f184aceb9856b9621e8184127ca8736c2020d193f694c8b7dc2472c5997e18860fd5be7abacaeeb8be98220208fe389c5d767748f0dc4a98b0943c7572f548180ee42f6eb867879540820f5d7187e756c204053610906c166cea393d15b7b5d65a6b714842a439902b537cee64da441e3877da036dc9133c7728e9979a953c4f8896fe8339e7096c2d280440f28c913bf2eba07e9bc5a189176f5fbc254f9ad46935aea8c914d7d6b1b1a075b4b61662a6b616b4dfbd4cc19d8e5eea408ebdebb20b024ad4e6d9651c743ee90a4764c74d8b187ab20151515d76a66403a264680c3ad32e7710a539133742da5dba9097ade2492135032f31596e1bc6b961d8ca0ab3b184ca0cb3032f5c662d18d1611566369c1c96c4e460849816cc0b7a28d2a5c392286640989d3ba3b92b0a2d7232c52e6ea61ec87d42e7c7877ce79ffcf1f27e5064c892e945aa94fef8fa9e60ebf57765de5789e9ba785aac0530b4c932c62acd0a960e3a5ab70c88354ab93032472ccdc8c116e9867c37658baa6c4d437c114249cb143750a262f0ae840002885c6b5531b643141b1f2f6cc962d66aebdf7b43911b4a545216735f7d05c9e7b5517df729c6659cc289daec9292a78ada8d71e1cb99fc626edb9f85b5c44542424d666277bc8267ba05e8e3153cf33192496d2c421f210407acc8d52f129cf0a284b16ca4c74593658a9b2c5352f4b2d19afa5bfcd9e2ee8f3d1468f37ba08a914cdce6e3da91ed1ab4e9b89226d024f7df2285aa9270d24cb1adb931f5a1b78e2d769b0bc72658f256f2bf37e8da41ce42d824a551a4b263f7c9eeb9ae24d9cbe453aca735c16207f24a9e1fc5b56d1f58dc59132a7651f1936477795adce15bf1db2060826c73cd2658fcd8baa8b676b608f8500c1c77b697ba9e4f9fec8e69062dfe15fe41adc0e32e27054ac776b5c3d58563132a795f841f88b975ba7a0ea97fb59d27d2e60157af3b8bc4a38c8c216f86f0c23253e37b412cff93393bc24508d4114f68b67490e12571a12d1ab8e42ff7d61237425ffbaa8f1ab9c3f5ebaef8895ff936056e2beacbe3c83ebf5c7a367af0c0d5a5668b889bdc7564482e309112e603c9952c33a4f8f94981c32100b81b80fcf81302b9c0443d2e7ff00fe69272ebb3fcfef1aa961f8e902192a58c9329cfd526ff8f6992262aeb4b121a2f51e657ae244fb7d6cf71c590ffc9fcfffffa5a66e412b9735c4b9d8d6ea2ae4bd5ecb01d45b866d742ba4a9e4dfe77633f50d656d956da5278f6577ea70f741dd7f18eebf813bd5abff331d76e87fdf2e743f576e329eaacf71ed5711ddba25c6bedba0e7787bb5a71d839aed8ebba0eecf0576bed6a31b2254f8a1b531848968a65fee95fa0f48a768548b9cbf0fb3cafebacadf5df9dc7f9e5a75e363e1f5bb2bf0eb256c277fa1dafe39d5ec73bfd8ed771d2b15651ff6acffb75efd76dfc45714f63a4dce4f9455dcad13e576993ed318a698f0bf2bc3e5c1229879ee8e3f5e1360e3f30c7490e644a8268bebf167fd705132cce4bc774f4c9f1b892297886d15fd7872cd9a2f3a56aaec5bf642915135f0aa35469ade69e38b0f69db86a6dd779def78160adf64dd7c7d682f4f1d2c52f07e7a5634bdd92270772e5b2530ee4762a4765622a63aa5c654cde335dc74c654c1d933395315926a6322626ca84a98c89a98c89097cdb75a79779b5b3b6abde7ffe2d5c6a8bf850c55f0e626e2fc54a7b5c3452862156918e29d40c03676f74fc72f889e007828d3be7e4274f0f8c63368096af2260e0c1f1517f51b9329d4ce1535d421cb1c48a0b074d4f54461a1c514ca32321aa29263b5247945f606c9c9946471c78e590331d1f511ed6bc313d032cf3e8164302a8121a19444ca3a39c1f229a1a584e5f5570a098ba761081328d8e6a63a611c747df8f1ea611aa810fb3715fe09852fa56e87bddc636bc22751a2efbf74f2af6d1622761e072c520e8b46c02c552dc49052453cca31d22a628152e5d889846473b4952cc8a8f4a50214203012880ce10a6898d79747367a61f0d994e6919f61319b59422c6922a36323a7a7ce4498c2063567ce4545658321f1b1d20876974e4d1302b69c4f19147c37cd208c58d8f9c4a20fcbad6b133f88167da41140f60488db42626dd5ae2052d03ac9f7225b544ab2871fa72373b7ca9b2410acaac8d23fdb24549ae032f255c666dec718280275bb83c1d39b031e2e3f142113c805f30d4685313c1913a919501316b630658661836414969b252268d1b9b088e1dd89096668639223876b044881e66a823826307467a6499e1dd5263666a07ac86ab1d244470a4497429ca6db27ccb274dbaa00a489392099227648065822409ba2e383614245a4cccda385631c3122672725942beccda78bb32c34abf78d08224c595dd72e149a714c54c088fea1853234d8aab4f8cec0c788499a69a1122e284508e6822236ab1d08211668b319f884a0f205f7ec498358c647e60cd6ae0c3a446dde554439a79e45ddd7035f02144415c7b22438979f4edb061825c34b46e98479fd50f13ec9c7f0f4457845042addf013d1618e1c50371fdd67dadfbe443b9e048a548a3beaa5a6a631e552ed3c843b9142399ffe452f296f392947ba0523ed4b9afaaec984ed122d9718f8bdab9580f6343d4ccf079103b7c5db0c79a702939e2c8027c00a332418c64d2aa0e722af5e4eed029168fc3ee205cbef9457e4c3b5c4718b8ec613f02d6c63402f1111d62c68669c4622433ac8de0587117d2d373ad91357014016c8c6422992bbe36b649c70ea3708402cd1eae1e49a9a4b2ee09a3d3b22549f77a44208d68940d696566ad2e6183a336d870a199e05897b031bfafa57881c2c4ac8d3d634c00655219f3f52238d2ab277172666deca962ba8e3317c2ccda8862c9a7a8094313fa62210c015c34d0ccdad8a60820aee11a696402281324fb8190ccd0b3a08d02c97549326b630f0e6608d2053889536582a3d8c30c29065bae926a623f510fc58db6468725b3e3ccd8e2eaa1248a1f260a246608d66a637f58b7c9b27ff1e16988a6a2c4062b2fd646a1a2abdb649927d326ae215226381e2087195ab136e2d2ea36593e716dbc0ff4b9db64b9c9f279c129f388e74d02ae8e789934eb879509925f8307d8a24399287e4f54c38d7bcce922a3326b63e8c5ecac2761989846de17f3e846c4ac617034f292e0e46a357cd459914a326b585b33a8cc2f1c9892cc9ef27425cda438cad4e4ccda2894c40cbdef6b8a1834b336fad430435b941d69632698d9f8520e72c49ddea089443166e3fb4444539a487599d926cd5ff61329d70ea2b5f18368d16001cd0447510cd1942652a18e581b8d9cc70f68e6514e1073470447a3f6328f5acb887629313a0ad7a0e54c101fb5942a6826481ae9a1182953f2a499441835520190f2c504491e11346a303f249946203e32409a3013243f8a86539a25131cc5296678136ba3518f1521651efd0eb35d83f3464d74987322e5afcd6419f2658263e865861dd2ee777a736ecec9953c3d909fec1f2b3e25b2d326b23590534a29a594d2dbb808c59df8c09f5b6dadb5fe9bc9a798ddf1e74e43bb09c2f07bb8dfc337a157a71675777d6c2cc29a8d45b7ed03308bb6ab736f7deb6f9e5b097713dfcfede27c6eb7fbf1e7af54147157d0737b1d703e1405937b96190016508cdda977f35c85edd4bf36b90e52c7b57b13ebef70cf6afbd0ce32db6c1f80f9c6e4a2ddfbf8da58b40e97a2ddc6e14efd9d9d9d1da76d22e744ca389dece4b9814cc9caa4831a7b5c2cfd4e69e92797c6859a335bfac981811243961b5161947e7215cc6dd5062a0b120e15c6ba9eccb06e7cd10ae341c70c0130d0e0e406315e57d00c20b7569853ee726b7dd941658fc8b852a2c29a264e564bc6648bab0fab6c0f906d1048525b9c94e01055a64a1c283e8ae45026898f0fc5a831aa55ad95be57bf51b18a14a49f7bdf555bbf2afa50edbe7e9566ddb366b763f889a20f9de8926277a7a028d6af665c075197e2c297ab5cfbacf952b93974dafe27c8014e6ad408e082019440506cd2a4a9b469290f79b1dff25b7ecb1ff1622ff6623fc4bfb156e85ab04302003c2450dcc470603fc41b61ed1b2196e2e2de08b1f269f98989f9fc888905611c1c3005e4f8b307fbb33f7bb47ff36bbace769ef53afb605d67adfdff7f379f28ee88e279ffecc1feecc11eeddb749dfd3667d6fed9b77930b03feb3afb67d65a0bf667d6fed99fa515a579b0077bb0377b30517c340ff66cdeccecd93c9b377b360ff6666ff660a2288aa2288a6ff6665fbf56fc45e0ecff5f3c15fe9a5ff36bd67c9c8ff3713e4e569aa6ac21beacf25be5c6e7bf55fece6513be7eadb5d2efbb1787fbb33c8572b976ae83cf428561f7069dadefb8c35f1339f6bee27f4beafcffff0b695c6774dd9d4b51386149f2cdd67a3a94dc98769ed5418d699399e6aaefd6e2c7d5e26a49b1d6c6200f1d7a9d3aa6feb82bc4ffb6be5314681c2be18fb9b445e7942e859d5b570aaded1e6afbd6bdbda9845c718f1fce945afbc5b05961d8b4b11875ffaff576505be04e2be98d9df6bbe327ddddfb21fca54cd31c378c4ecb7402e1aff935bfe6688c4a1141a5d494a04bd325f9212a9aad7aa347f3474221bafa9ff93783ff93842f76bf7a66dfcc7175af6ea97badeaa0af12c4bddd782a7d6badb5d65a6b9fd66acfcef667bb1f653ee4b562a17cbee8d65a6b29131b7e128a8163bb8462e0b8561f29134b9978e96fb1b5d6d6a755071feabaae13bbc11e298eef287bf844ca5edbae7187ebd8b81bbdd1c6a26bc55db514c77822e5c62b1e052f37f6c68a3b16b693e08e0addafc31e0e3bfa752d7313dd066a5cab872dedba7f526bf5f0a3ed94a67925be1bc853038252ea8197fdb5a3e5da6e3a39d576efce8e8d85e8a5b783b95ac2d7c2c393a2cca53884076a0c7efebd16cf0405b69ee8b17df0933b12ccedc813e7dadddd59fe642a0a04b49008d6bed023bb149759d776f5afef7c635ecca5988700359f0ff3e15856aee8fe18ce29983267ac64adb5d65aad5c6ac52f977e8e530cce1af57229ae653e6bad95d65a1f8b1daede915fadb57ed80f628e4ea853bb3be08ed0f7f5039df87e24bc0feb6e3d96b025c46a0755d2c1fe76119f82dbf5ff0177a3cfe5521c7629fe3e31ac59906375ee7badb556f1f3215a6badf5ffff9b45576badf8dbf148505bdf443b05f404ee036badb5fe96efa3df0792282177b88edd6d4136e1ed4deceedf7e205bc2ab89ff2dd77f8b16f1c4576badf5c1b2f3dcef6fd4bf5aefbe1fb5b1e8c8f384dce1c6d53e1daadf1eae5d69e3a7fd5fbf63d4dc4f411611932d3ae3fe13b2ed3c7c765dd7d50e7f316a7efc58fe0a05b4d61a962851b1091b0b17bdc4f9fcae8d450529a0551e77bb0ac4133616fd7d2d705db58d2baec0c6a26bcffb380a4a2da8819fd7853a392f01b1b0a7e62e873a29d49e0f68f64ce60e6a0684ee1e42438527a5ad1452ffe07363927650e3c6ca7d9569c634840eeabc0fa498524c6fde07de5af84ec3b639f5036ba1f84e45b0166620dadea9ad6d4e590b455bce3bcd097b2640cd10f24eb665318bb52c8e600e6dffb7ff688e8e48c79ac34be9adeee14e67653af6785607e51239e4b995b8262878a714b4cda91d74bb5192fa57eb5f6df74ebb17abcda0f3dea957bb9b14bd7c77c74e9eef73bd1c769ecd147f62cf075df64c33059d76cd5330406e3286cd3785ee824cc91462f4fcf7d3e51462d85c82192923f5b8a8f9492fea75bfde7393ef753badf149f1d75a7b1cdb3298c30773db5cb8e75aee32b55cd8ebe1ab02abdca9ff1a8edb43b3cda12d852e87ca3d6f0a36c380ca315c07c76d4c71935192300ec7bdeda460330c22720c271fc7b56d7589e5189e49a4ea658f07c821580b453aeee45014e9687368b339b6fee7e4386d102481a31ec3e65b456abb1efb57f1de8f26d88a4b60f1cef7d0ef6932044bf60375ee072a91478b1b736d9b137e5f4dacb8966b36d72aa6e3e75aa5a3e7306cdc62316aa662a61746973aa8c4ad972431e990492400000000531640002014108b856251926579ae7c14800c66943c504a36924702a1501890e34008e21006421888011086818c81cc31a9900354c13f840fe23e407181ff6075ad623fe9745c2fd3f647daf80fd40da5a656f4719933075cab2f700fc3a8418e75a85acd35fd25d0bf40de882969b5f47334f9839e01332c8171d9b598f723025c6dec10ee44e8b3dadf0fe7b9ce5d5cd730af7df9909d7a5618007e4db814d15387702588839ef301de6073fc83ea4d235b7b2e3084f94d7b79ccbeb89fef4d4f3c2b9db86725ce09e0fd3f3110ffa2e7f6c20bb64df704d9344f34e96fd195472b07fbe3fa5b0202f895a05fa2e05f6bdff0317a04d81594e9f824f925300fbd10e5cc0375901020d7ae2c06291e597fed4a4fd183e031d40ff7c53dea00f25f413dada77e20d274b708b9c004121d3d0bee9bd9d69cdc3d4571ef3d9ecef266044c72bb2a31377f8859ce71e90aee3011dc78634a807b9b3848617c8c65ed5d0a9493408d0022bcb1b9dde9102792e3e6f6938ad68fddd1c076a14fa10ab5adb06d4217c37cc7667d0edf1a52ed1f3669fdf3c609fa732df964b54555e38db9a5344d69eac720b68f378e7b7e1d7d815e3fe1cfb573f9eca6145ba610a466f52d886cb75ecfc027c120b8e3ba23cc62cd6fc837fb48be279a827d7102603f34a60cf7614441f8954ff675d7afe36eeb154de2cd3c52d69c68338a2c0938900f4463b5861b2c5ebc641ee487be13f471d36e56552889b3c1beff9396ec2d9a01f71339f465d30224cd92914ed75b4d1d4544e264192010f08e02b70865f74add1d721acd8104fb6045b9540225ea2548c5926add21ca5a2a2b180fa721e67d4d727a9022f97151f75fbf5ee42b079294cc2dfac98514a5edf2a6fc9f6fae39e2719ae422499909e16d78560dfa433fd8a1e1ff8761ec07c1e2d78be3e34837d7a18f8de15f05b9814bdd0a2db2a776de8187785bc575b95e9a9f90ecd82ac29ca033dfa13fb81272cf762bfeb246cb1171adad0da25a07aac1a75014f1ca9f150c117801bb4468a443a34dbc950d1971c80f4e89bbda9e7ff5106f6b87602130abb854434042cf8fc9496232a1bde643e39abb89edc8486e7dab0742a2b82aa9bff510f076eb8a7f733274b428f59e4427139e617f663e2cebb10e308fee40e7308d125928baeb341da089cc7d0b8214ec9d619f2d11e1094e8bba308594809282792dd4b05aeb9102dd13c91075fb659ac5476a3453b2abb08a120151c71a0fae8ee0fd9f88773fcd29214e623f00017c262e5c701d737b1c768e8845b2e1d02ffa217d1771bc33ff6e87a2861555b3a18597d48b329f7aed52614043fc48ae25d45c561160d5a7a1eca141f0344ca9a600b13ea5518e58fc8dadb13a9093e7b4366b913372158ab2dcc134136c9a152aed47cac1ecdae9efcea4c3eaa3ec0f4a8088116c82bfcd34df46b94a03233a3b309a3ea388fd5f3435d587883feb8d00331a6d1a3e217880ca7bb53c12fe134514c60eeb6b0efb80e5b59ecf0661b739f753dedaa0c8a168fd975859e3503ea739892232e4df7d82095e58974b8ddd3f81f4e7a66e893d3d6db9502ae693d3ddffc561d768f9549004c5e1c705e552ba5cce9430c4a2ef25ab7902119cfd5191a0221db9f9dad1b6d2e86c0252cbe64480de8692306baa70ace83e87668124b08395d3b86fa9fd3eca38005ad8e1c29696961e7eeb36d69f14821a1fbb1682028db0a2e05e6eddb34293650e56a61c16a3607486e77b40557c22e80abad1918414fedda809049375bb0a535342e67006c3f00dda8ce368eb260798444af8c6a991f09bb1aa8f2a7ea675943274b668d5a56c305ad75e426341cd81677cfdb97011e44f1945da5740cea9c204273963ad7234c09af88f7cf08bf151c055ac41ac261638c521ad30172308a38e49a677de392ee09e9df53ca3565ec6aa2b8c236ceb2d7467b7d37ca4f214b4a356c5f1f31a29e94736c13253e09e75b0677183946b6cbfab701c45d529aaa32d7293988bbfb4032dcf79c0c13b9e9c5fb8a09692d6064f73873ec7c29a43daa856435aaa5f23fd918b832877005570d72fd608990dcfe294776c1252b9cf3fcd4e8503f4b12c069cd3ec422f608bf732ff2f44b645343b2a7268f2ea9ec25d3009baea3aa8dbff53851aeff0d6d4a933dba777bdc1ee8364aca06ae0aed88ac8874a26eaf051be33f7523eb59e237047c39ef294f6f4d7e97c55bdb0a341b3d1a133c0e7286ff69af946f68c33ec64d477fc32ccb1bc5e6c1c2d233387af6dd9a34f966d5010d24dc20aacb81f957a6dff1f328b492b1925d9d6c751a73d0a9aebe1896abc051a7575d0d06d951879e708fb555df57ee57ba4629cd766536d71ffac304f871e90412cf6e313ba2cc5bc31f45e5a1e616270dbf82cd1616c25b8dc1946d16a52367d8683181d07abad3e3720d96659900a99d6f76ed7ac61b50e0c9da5d352d83d86f8c50af936ccfc5689e30231959f56505f34474604833d642f6a615a4cbf1304f85ea0056b497f56fccd1fbc84cfd439dcc08b4a33f1046eddc609df7ef6eff607f1f35c0d3735df51e61f1c2570275dd307f997b4f8879b75837697981111c0ebafa2646c372556c49ca89adf0a8dc1715b06a234400efe287c4718c6d578e5234eb584d09608e79a3164e6b2713c22b847ae0cde351d59ba5e884ab02209810c4574833d01e3adae2bfc941b6ff9f8d804176f705153dc1cc82f4e426270880608192513e39c0f6c7f8e732de084974d3dc306f659cccdc438da7c7d385a9275884387a1837016e40d0c121846ac0b650c6bd0e5c6fec840763038d8dd317f6fbd8a8b62ce57375ac0a0167acded643a8802d785e112167bdb466fee68986ded3fec81fa23b7e309af20abfcef73f8d2207ec9b47197f367563ff208b40d6efe600eb2227bc66b00155b4b90d05e16cfb9d89a7211bd09a073f7308490c390e5c5c61bd1ed23d3796b8eb194427c2d9051e1b844a1df755d9e112c7c7b3f4ddc4141601a7e49dad11faf099e586a46f0be15fa1924c0d7e7b101f054280f88b804264ee1c73987a6637118a8811ebae920e2386ec4fac6335ccef3cf014de609f8a171094be6e15335fede024b6a2e7a0581aa82a4f65f41433fe6a18b185e56e1f104052210daccf802837e6687ea9d0033f35af737bdf823fb7fc45047de5ae003f72ee6ed19f290c83353065e720c031cf9b708be3e497e03ccbf33a8029406813b323c4ea8e91eeba291777a1140099eb2369917bdc63bdec43a8488f07967c31cb721bb2cf180032b1ae0c7047d09f549ceddd2711649d9e578ad5ba80cfaa7d44513c6dd6ba187fb12535bd860120acc6096d4fdd35bc20f260c1797427bf2b8c4a426c09bb7e530c95d487c54135dfa30318b83f51f9453752951647dd4b96ea0a2b9f2c28d2cc65b566857b696ca659b3baf7737bc7807195838c1a1b88bcefc9161044ebadff97a1b83e1c3b3c7e3a7ba81d1ef80081cf9bf383af080af35cbcf4b6f4aeec1bace55384ad1d1ce5d23a37fe550b82ed6d98cfe3a601f82ea12a595af984737740440b66efc8a0c1d03d28c55998607da6a9891e1f661d80c2ab5579258cb9a4ae7d5ecfbdfd679086c8b7a2415bfe63ba8c8f47f8aa7ca3fe8ee7b71ba8a0218ece725d7af8b5bcc338f067c1f1331575e6c3256540e80b3585e7d8ddd2801a7fdf2fc62c87f44f6595d7dd573559a70e3fc7bcfc6ec7d781e74f405fde2b9aa70ee9bb1f56cfc01181df6aabb673e332f869b04baa9cdee6eb850b3963ce4004dbe828f0a7bf72da231b767d22b79b9fc93552f11b2c0092b3ad9d1150c1618301898ffe2845619aca1224908134fc704121124ecb766e111460761385c360914ed1a5c62c608a040affced5a4fbfa761fe5365885dae27f88dd757a79b97dc9016f3c2741f7d7718e610a6610b331a161a16d5ea3825b196017b78b0376d191298cd1b0e62d5862990aaa436c9ff427eade34ab35eafa54f675467537eccc14bedc90b6e9f66bdcf42c8ed1a8b062122153c7288f048852e350e14d4ae6d520abd0783de3b136f64c205237581e81f9308cca0f24185fd0cabe3de96de115072af2c10c13b5bb7ff85137c234a05461c111b0206c245b826d700bf30ed9d2d12890748119a34a072bee1aaa225eda445f218210606a80f0e9fbb4ab18d9b3bb2e902d55689a501940f14a60b8da3e9706683ef63f77bd86e46fa75c821cf2c0aac787a5c37094b63c4a914c3118befc3108647fb2616178c7227309db2eeb533648018bd16f3939059033b78fefe5e28ed802edc94b22dc19f61a823a2e5450f5f104247a18ee68f418833dfbcecfae38b2aec42e0045dd286574a796d9df7314fe43cd40518feca4cfcd3b0ba681447742a6a85ff2c3c004ecfab77c26238fffd1462fc5578879f29e271b09c6182ac9ce715cd068fe4a31cf4465691988d47f16f8a7f2117b5d1b1b0b14e76ce191d41e433e0aa548cd1fc3eb91233714414b0064b255f81cde2970d6775ca4cb09ee77a434c11b574a9fc04b742cff8c063ca5146a5c9d7e257c2d2bdfcbfcab4d41cb9ddd389cdf9d408c39fb6ff66798bfba5da5a5b0b6726f5881c383045d39bcabf39a3860277e4946340c135d58c6262585844f2197ab82f95d503fdfcaa066ce0d7ac77a2cd20bd1cba7bf2e2bb0bf8fb4e991a3008c9805926feba3fd44b0710277a7107e16b1ba0096fae7a06696396de606027de91a2ee4bc08d551b3fd088be1fba0668bf8f3aafe750149e01d98056024c40cfb304c0a408b3c9d32f1b680fa149cb1cc1b9ae80505d81240990958ba48186c3b0be2c43e4a03d6001c4f667b3de65540d1f00ecd39be286acdbbc15e48a80b69db4378b743a8a373788e0186b415c09e659d43b990f3c51919c3bbb1fd0c3a9b762b9878cb8922f31d97c05fdf715569b9158ab51e598f7e5ab8ad80a0d6f03ff94978baf97afb8e4114abf6d610b24eaba83ba07b2331712c86dc652d059f8e6022ce1d2b419b34d556c3faba78a45eeab9f812efcdb9ae2d7bbbac581717520aab41625a9ab876088a2e9eba68ac6e22e17536b31765751eb820e48d9e936b3f5323ae4634d8d0cfe6f6a21fd64c4564f8e0937d4fe712c2256b37c4cfe9cc77b9d4ad68d55a9f2b649c162d6640382134c15699d516dd7f24369aa1e8eea2dc0a3b25fa9e216b70e8c904e542bbc113b9dfade8ef09efc914dd0090e87830bfe6410062b929fceebabbded55bee1a36d2813ef149c07b38981893ee7e14fde64b18d5e9f44bc4b583ea21ee856aae520e0c85ab8541586a8518ba2b41d7fb3e0ede484e8754111e17626c36ba6a66025558f53a870797cc59ea296f438282bf6f9f3024e75ef787a0185b51b8aacdedb76684ed5a73510f313e71b0d43622882d87e65a4becaeee900b08b551059f2afea19d42ae231f69ac172bde033a3895d2af0527d18bbdd09dda4699ff41b251080b73611924e7642c4d5c91f48eabeb2f32a7ee5411a009ec50776c8fba93f98fddf524301f5fa15763c746c74aee52823fcc6ca69fa12cf19e5101c418cd623eb6fc01da31327883c387df523dd3f601a9f1eca44588b403873571c0c2f5c91e316d29ebdcad85279ff6b768fefca6970b07da6b008ecc4920298fdf5c61bb01bbda14a6c5d1d5565aadc1a9b40f947633e0766843f3f86fc8700ae38ecadb113357a050184d06d9410e9f44d03341f6ad316fcf06c192311340b77e10a7df6bd71722f055e0430fc681963935e1ffcd17a311f0a42a656649a314744afba9ffff6021bb53a9705d052240bc34e307b04b83a7f43fca1cd5142c77074dbb1f248015b345a19a3b2677253ef80dbd66081ad41826f122d9b5c51bc46f2d3786edf2ec6f44dc1cbbfbf6f5599bc98e0fe0493e7cde17878001ce9ddcfaca5ea7fc1406922416defef86ca7821edfaf0b81683898557282c4895f479aec3a358b5be3bead4b8daa14d5ddc6a5269c7bf9445b84ddfc5962962457bb5aa50acd634084a07edb32513890cab74c13d9ba1957e0f8072ee373a677cb8c4a60e336eb3c75e971a18ae8968671e1315da11a8102dfd8377a9248fdb5d93f5c58287cd3e3d90fe934f2d6801fa59c4344bb421f2d0cfa2089805ea0597d062bc9017e5e553f767df52f81e40230d8ee18a2133a7b6c576dcef9c1d58bdee9328eacaa663c82f865208ba650aef1a82f36440b614766e461199db490106a30b483469239230ba48e0f81fe311224889d5261ebda6b48e01b79522aa93571e2ed09841e141f9179e27cdc2dce2489db674ffe970028b0a8f579af7a1395bf084f81e6020ac161b149b41a185a4fa964dcbcabe9cd160e7d7d5b4342837875763530fe9b473cef967fb6c30918607a869b0a1f24d3b5814a1c5eeb760ace511089322659e1d3bb28bec8653d53d34ff7832636bdf86b94c65d4e1f749ec9e729318716a76e7dd964a8b4964cefbd3b212f0497c07878a5d2bca0bbb5c3526e1dc95f46951138d70be8794457cb3424f1704fdca125debd942d315720532efbbdb02fa6e8c49834a166b5e0cb88cdf89ec9933b867bf35707daa5be9a99830512404a1501c720ecea77306f2e827adccc1eb519aa53be78a54fe2ee4c457b101ba03d1b3ae654303cde2e3605a8c9668eeb322868c35711c387fbdcf432ada6bfd57160d2f1742bb8b5c1e81cd55e34675cc8152e0a1a77d914838d3ce88a2a59121f8162cc576f72cfcef7dc5102d51aa6685f5e95a8f75ccb924f54d850e2bfd110b2d3a7e0df48aeea61a3f9025a15885c225fa76c26e180103a6157172215ccde24a5200772aa2c7cff255e72b2a7c4b6042c0470e2c02dfa74d9a4d705c7af18756345da8aa0e43274ba8b71de50e7d0e2c057c7584e03c65e37e1b28425514d2550f8fda4fa70bff56c801f8767fd19b11ac5a507a0b00cc472c63b4ffc826864f797e6cd5b207716da38ad82acfe2d6f8843ea68867d011bca08f95f8b668bbb86a25027688702d8d43454c7bdfd34cb92a14462e27181cbff678a31dff7a76b37d6229f25da5dd5a107a27ed4f15b33445e05a6a960753c6292f9628b2924b5f0d9f2733b197f2be5f9840e56f4488d7a14a2aea49ab6c604bfec932e998291fa25290ac883ea0c313b8373d68acc6c4787b5c3246be061969ca4f182d4f01c487c80b16414911b9ff3a45444b17fba077dbf96629aee584be9fe8dfba131fc7f0b08d9930f201fa31c7851353da2f7a2af68b750529e70118ee0d39f5577b31a01ac421d89d21696890390afdc3c35ca958464977f82539abc2aa391a32cc11d743000ebad6186cada0472af6d47f67b7c00b2de43afaf64789c31f56a9b009b4bc589cb550a5cc4f24f5ea10209aae601b6e237c0a54ba38107c7d3ca505a2c3a9b09f4e00832187ef119c54553d86a22dad593a5958042c736ac344f8e140a966ef8960978268f2383ea10c714b6a3cf3a251047dbefb4dec77f2c30d1ddb594939fa9719cff248741d82d362c026fd377749d16dcc94a2e1f6ed51d00fa10bb1be2ee584a5424d36362d187f79096eceac551796f2a3bcd78514f42e55c2a291a4b05178d0cc17e1ae95f5b407aacb6cb2f9f31c12c0ebdbd0392e7e8b8e768a732921ff6c2cb28a3cd5a6c9c728a5403b63054316b7897c7cf4968a13805e5b84c4d7d74fc3d5ab486fc7a860839bb64df0c07e533a61488727e02931e5670dfc55f53dc2d99ca4f6534917f134500b5d9ce0db186e96ee7bb1ccb457e123d063da449de0bb62f090f430ac3f7268d9d4ccaf0ae97b311ee817bd12cff9b35ca5df207c4d0a6cfd4a6bb4e6567b79740a53a06882aef88d1ba4fcb76fcdb11da1c3141ec5bd718c0d55925a9325e61b2e491ca4e61d50e43bc3cdb4fb7ed9d1d90d3915617cc9e781df1d7d19b327aff406a413f7ab4a0ff361aeb7734a2032e2c03d21370df5f163215697bbccc12f488c6ec7dbc8bfff529052296ca0979aa322c824a8fe5561ba80864306f8f10eb756244c7091f074574c9dd247345d724c59e0dab2f83e088ab29fbf0654e6d55994640f1caf3307de84a1f05504dcb26a33ce9e4609939a45cdbe4ef016e5ffa53948b88316859bda1000f592c4be967eeaa7df50d1ddf5700d45814091d0ebd2e3888263f80abd63e4f41dc10ca87a460f8df0ea773701b3adf69f831ba915eb1e057b488ec73aef1068728aa4e4e0a1088fb64c3e3a5ef65dc9c67c38e3efd6fbaef16224ae9f42ce79df28e874ca59661d6f6bad5ff570ee2a8a6603ff3b106c6145816b91428c6fde2339eadd69937d7200144310a97ffd2506420557d65ad9a4e50061f6efbbb75d4c0f9a7405b98ecdd681bbe4d85557394194b6bf863126fc39868f32a863a344c13b08a8c6cfa2da4ba05c9c4a6310df6b54943b626d0a0747858bc30351e3edb0720f0a3044a5d428cb0fa5d5dec12082e6370076ff105992ba59485ac502c57d02ce9fa8738102d3702ddcc3df91fb0c5ab56441e918d97d9e274f68d4e20ef791507f249e4e32ab51e41a570da798e5d500a1a5e4a5ec0cf7cd6bfe08193a2dc642f0e859d72a5ada3ace12cd5741d7d0734ac463b0786b26b6e4a1ee51ba7ab6c742c29465267ce7979ae67bd7680a2cde15289f8f38a265a0f48313e0b28155fe619469322162c39cacf242b08256de3e21373746fbd714b874914e40da86d26927d9b1b6a6efd7b1cd0c1c834f048556d0aa1c208e30768811928894a308b44f2df6af50b9927c0f10637948ba2df5434278d306c54115e79833278a317029178eca246de0549e669fd2a8a4079e8894e67244ff8c0159771f3c7dc78b9cca0223b3791e1cf89f405fa490b1aed98d5c8ca1f875fa7b6f846de3d980d64887a1899dc686a72943592b66698ff36180485d83eff5bfe244fec19738387d2663710f101bc4f712e8917b43fd90971d3cc7e62f77fdd605e9d7196c48222c5202fe0e9014de201db19ccf88de4402e25df478eb21e858879899230bf8584ac12968a35cd3233a2f205abc34af5651831f0086cadac7625401fe292b279b9dd730c61446130c05195c77008ab01753099156143b93c0d667bae9964f079454c6caac1800fb48009dc49ea336fb6a0d32b5938c2ce5d19915eb8600801dba143c5ce9aeb7834d44821ea0375cebe9be7483a92ac42825dfc0bcaa234921ae0a5f6bf1c2d313bab3daa1c24410a91f1b83574e963a9755a9adfca807e3f553c607ec20b2d897c3cd57256cea35885fb6e90bed760b4363ddf2b745a6b4261624ea9040525a7be455ccb61a121774922919195c21f07490148737b4b34798d25a9d0694aea62f402902dc05d1ee19d5009554f2a9f42d38d74263175b09f75b84060f7599576c1c161e912da3212aece720655ae34d4bde39c637ba7128b6cdb4c1d821a1915793e5c207ad6fc615d89627e8bab240348be67d6ee275609c0d0cb105cab03e04a2a29c2c498b211f36d3880772f1f9ca10c059b3ef3348aa8c464c428bd247ddc46a878f275436ad30641206465afc26b46e50ad972f615cce2a5ffdf7945c0e900b11975a4e04274c2e67e44dfb65546a61c1d2425cb976817aa6c1c4e260c48c407093003afeadf045be415132670426b68999da575b0065025b75ad3e79ec8ee50124f681f3abb6839112d20a84725a214b4a17275a88525b75d3303e600af45649dceae0cb5f1a44693933dc4694fdda6642ac879cc019a9c90e43b2621597f7ca45250acd99bc6221ea7345ff8928f9e81314c5815e7627a8611f6a3b299024ea26ad9252e7368fc20bb905f64d06e7b25be40bb69bafd433a155b15a18498b708e3008a9168276d8dcdca7c10ac55c79370530087d12e3cee626974eee7f4eb14b29960ffdcd80866e80534245795fb48c7ee8f9b441ea063470466cc009b28184157edd45f805c062a7ee8a39e6cff6946802c105c68c6c63e6584c8b8a1292c40c022dabd48a94863f2d6d5245b8a3228ea9dde8bd3cc97087b1df75851808264bc79fde69f33be39c010126b1d2641b1a1b214d9787f5e0726f9aae53e3fd1484a8ee2b737de089e278fa6b403d4700da19d3f2635929e2c6c4b260b1e16d4ea389b7842b4d980ef0e6f4943626cac4d80255593926ca62561136eea9a9872216bc4417e9a641aebbcfaf1de9b9c4c859546434fae7310906c19e9f3e573810b0ee45f01a2a6e9cb30d84ba81dc325f51e4b829e6a77e9832941a508daf123a6b068002c593ab869d5e6ca7ec003c81ac2fe47ccce1961f78d9671afc38243c4ec331cdd4e365a7532a330c0dc27487ae88ca0a6db396cacd913d19e7239fdeb91d481aeb9189ed82fc4d7868a224b2e2330e5a3cf92caef001b9e6d278a84252f8dadd0e7153a9e1bbbd4f012ddceee9a9dbd22cdcf430eee981fa9607bcfc73ed4a1c1abe9d4a5f0662121cbc46f7f891640c9a624489cfb85ddb05ed4d9fb1c3075cfd803edcb76dc4a0e2be895e18616eafd8c25cf8bdb6c1b6fef33749cd709ba2ecc7850608bd444bdd037c7494b63e6daf48b986286671216f46597c36fd5045fe146778a3f3ccc5e6160106c91531a2e7825d1995ffa69e329123d20bd79b43e069e504af3a5e40e83a93663f014f18026c22fe6f81a97f1c3b3f751bb0a5d0cfa5f2d5969849100ebb10baef0013f6b75fd7217e96e6190ddd0b521302f0ed12bf3cc84a216e00b5337e2e90d200282a818574e7b682dd7efbdcc28e80b57675d95f1f70fc6164741b5bf3538770985bb735b4937e6e0638daadfcfa1042218e59dbd899ee41cad2cc02b8ce6c6d6918093a67664d08124eb32cb5106ae896cc537cb5b559c97f8f44c9376ef4d3ec00fb27b08c2b36f9603cac389a5bd4fb4e91fbc361c1de8b747e30eba3b619fee8e5330ce64bbb9be594298d0c8678a91e58533006f2db0b715adb13aef329ecfd93acbf77dc5e5d40e7e11a5bbb5104b4df6a32d67ad74fe4d2394a5a81a5e3eaea4c8f4a7b11a6b9854250c4ca908bbf01759165f7c42436e68de98936b3a5f36cd2e545b96946440947634d9c8baa37c0d3c161f5095efae9c10c8aa55beb6d7bdde2cf262a5df2b9428763c6e061178fc45401616d1269a985965d1e6780c6e0aea2906760c03efa56632f7354ede700120e0f811a4506be1a0b8a6ee54d22029e7d0afe4aedf9ae5e29e04a0097986d6d29d88c8ca989a5e3b34cc6621bc9e94a3e0a54c9e7da13673a21beb75faa533bffa921367420fbd77c10973cfdcc8bf7f39d9f9be1e080f978c360babcc92949b4f6786518d1f6fa23fbb42194c86cc2cc815964fff2073adc9f34434a5d53cfb2f9cc49bb2a047d30a8d36217bad310e4fef9cc81ea89e750c7e0acdc9e87c81300d09d44541c49449e8775513c087a6d474ebd1a1105d4038d27665a30138f08605b2742ca95d59229592e9c048ac37033e68254f6808a7030300bebfa1254497d2e68d7e3c70aaf990265b6ce2667933346584fa32c966ddba8813c131a7974b06754c64f8e35475d907782e9ecd0c1d0dd2fe1d3f6517c58a1d16ac7a841daf595cc35c6da2ddc52f25dc66225cd6356120b47d99f27a201ff363ed9745edd4857a5b2a98699f680949fe0267578b94241c765527fc76d868874d9eb049683b7978658d780aeab81f593d9295d7ae665f9c2b51c01c0c58206cecec74332301ecc68b9193bed4d3dcbd2a9907266bd25662496f2227ce8ca2f078f6b5eff424c8f975a21d820465ea2da6f0cf612ea7719df0580e9b7bfe445ebdca5e320bb87adabee6f9ad1c9a6f8f5dc5c55ca22d6038b242047844335be682fe25e60c0dd921919242fc620ba5b0a10a25182ff680c62b3d821befe9bda7778931ca0fd5141b8dedb8b25738ec6c7991df71562c08911e4ae89f82f5831e01d236fb9eade10f009994dc2c655e2104bce4d4d503173e00d17a7c9bc5b05e384523bad6c77c5dd8ae5d15560e68bfc34c37979272382111aa2f6227b5119262865afdfbac2737b69eebf00c446b8746b29d5801ea36e9d020e452cce76a7211d9b8112feeca7b6c3c91f8d011a5238d3d862cdbd7118e547c6dec1497fc237bf15f293bff00dbc7c0f0ef18d932535ebd9015c02f2145e4d08b91baa902ac35014284e6e843329c605fc59323c5118bdbad744c289dd2d4f13d5a1384a987462e24af458be445c4401e59594e5e7bc251500c2366b5b0fd50965841ad7d180ce024ce35a178bb147ede76a1ad791e3b6a84c38f7a247d0e7102ed7e1eafb4c1e71d5582576bf8fa10703c925c3ddd040553acf562c2afc6d0df5db197e80c8a4a05b491048ce6abe6583ed5d551553fa5bc3f02633a0b5b4d880649fffb2c7ba1dde4ecf267c0057fc0fb5ecb09ddbdf6ae157294a6e698b84bd1edc89b7608f6aed7b7165212061be0e582e343a2e1d112643584b5c8353e811e97f208c83210acf5e830f283c695a829f4dfbe9d0660ff31724c60232c1de8483e4e08c194a4ff46ec1468f9e9814754c5de6c4bde9e47964da060b2e36e71e282b269cf99f9becf36c24985cf1ced93c5d69713331e903103d30d051b8143d884e3a1bf6a2b8fca18cae644daedaa94a297b9e096655f4b3f6a1f26533c28ec6fef5f2e5981e6e5980ca8311ad6a620988e0f6e20c0b925885baf62c546c27d7d6e9b6d8ecc444a3c9b68c19b050663b0a8f44f38240955f2c8b7795c9b81cece8be9251d0e87e11898ed1e129062375fcf91fb52d1a3a410dcae334cd70f27d81318396611a43ba507a23ec4db0134be080b63360f4f90c6cae5b76c0b3e888d9f9b0052d3c81f5dc07c91815f55679fec375f67248fb1a1666f6528832b1bc7d320c6661e321a397dce728710790a790fee04cd1b4ceb15796628a5d6a6097596f9035ac0485a7586d453f449fd4966be12cfd35f1e058458ccef64120bd4017f607f7a406fd06e3ce84d468a9a273bf854c5aa3041ae50182614adb71e7934b781d8466bab04aa617393f0664c48ecb20465911903fde2d8a0ee5899e27f6fba24c544cab1b03b7d6be7fff468b0c78385b52fdb5cd23f53aed46656cf2b2992fcde2e16272cbee85b5119c91518447292e42fc6422a833caf29a3c8b017ec5ff2384f690df1e5ee383a631e868d7da16c30a4f09ad055cb20d515aa306eaf10b025ffba39eff9cd0089cc234ffd3d7b147caa3dc2bc770b494d3c47a1b8ca07d9b00c296526a66d08d5a5d8fbd498418f8497706866d39e241dc1623e167f84d39d73a62de3f8b6c5c01e0c8296032a301a7525039d281deeca04bce89c1507c01a4f45100316061706c54e54db34f0efd642ffa8b1df7ca9d9d485fee7639a491b35002227783499f727de22450d7479c4a42d8a92ff756004206993ed1d12aaa031934fb3269b075edd82c59fefd459f90db546888768df2ee5acd3bae957174e984c9409f1f8b1c8c81e4e1b3b0828e2347965992777554d697a1f75b8117bbe3e034f437b2c249c30d7d919c792ee116aa59b5fc791e2f2e553c4e4aa571c0deec798e503cd5c58c538c842e95789490b640c36fa8be39ec769412623ecb04b7fca8186101449f0fdf518f7d4950c8d01e6596c529353dc8a88095cb5c3364fa0d1fb6cbea53993457204f00e3c8eca4094b863ecdd74b6c2b122e03fd0531d4685b391bce4b7ce8dfbbe46e5bf087d9a851a77efa97ea9d2f67e92e691fe5fa33199434afe14510b71d45cfb395af0c1039b743306c317c65a7d6323db7d69b93683c6bb1451df9ef9868d076748b197d7ddb745b0934e2f568b6738dcd680e159ab52fed9618383aefa45c33868081fd529584d59733ba74b090785362393ec6ce080ee87f00eb4dbba0e9c7c041828e78906aaca0480711f4ae6710189f1036108ad0cadaf867d7845dbfe627dd4d3ae794a259a37cef68b8f8775cd0808242689632e5dfd9248b617b8c895a5cb2481fdecdc30d26502b08b3507743462288affbfe24684b04614be4da9c32f3a0c30e1812af4f5047d281466fb6e6652a3a2d8c06a2c8836756c53c96080aba7f25ad12bff403276ec069962dc53dae28808988072128503b140125f89da967093f3c035cfae75895499cbd8e12375e05c06a8fb9ff35d7eb05c3db5b4af19602a58ef65fb709284a49777f1486971a645a2814bc94b1a239525181faffcce531ae214dfa237a1ad1aebdb7200ff5c9832d4b4caba4a08adf772e8048cfe61244738d5f9cfc1988080d4352b95f1b2758585f75c4d041c1dbd47ed88f543bf13d07c8872fed70f8698af46775abcdbd45ba020a6b672dec4912ec4897386361501c0391f9a98014a786d06ab240a3f8853e313c81b2aec28fdb0edbbac9f0f4a32b58a41f6efa0bf1c97e993a49aa1e9a6621ab3e5e3d59461bf48dc3c57f8a920c23071ad305ec773e3d785bc597e3b4f4472d6fc819a9ed9db663653849933a76c588a6e6ed867fb3791dd6d8bd9fae18e7ca4e2a3d5617b2d759693ed9374131ecb4047a1e1aeb15363a90a037c74edb7583a507821f0f4720b0948a7fc9d04214a04583c3cefa72cd008450ab4b75cd27be74d120aadc568a9f3be674103e5eeb613866048cc6206129a0c915e26fc4540a63ef8d013d153cd06f28ebf56e02d023d4cc4abdcb9eff9f410f1ed99d8c665f7272f60dd32523ddff895d500d947f39ea20578e97305a7f49983028406809596055c0ddfb77e051a5779057dc82aa9ddaed95274fa51f020fe1e354a2c53d2b7664419bca25aa7bde8d7c9a700cb60baa224c3c8048714b6e8a572a597a184921d11cf0725b8d4ab72f36b1edc449b6314033bc779cd3d6a3396d1b6fbebb067a90883c1956e569bf513dac51bac5e2ba7fe8b1d0e9dea9b0b088296a630351083753bb3c1f12e8dab2a66afecfa7b2ceefe45405e93c97776c61f8a1d577ff94583d96c20bebedf0cb496b11ac4331421dc2529968415472235b69c2d8dc12b9ca5787a9c3a6992fa7722d781a63e5a3c224dc222bccebc21acb227a0b84bb1f5a6e28e47ae8e7c5d0f1421cd6e6afe326cc521eb500c384dc07e423ffe2e5ca6463b85a2ff642c99a28a1c0982571111a8c367e428d5b2caf527ddfb69ace2ff0986b9a1a736b2669ac5c5cf0dc901218e50fe24ec27854e707278767476577f026386fd490caac333bfa90aeb25f6d8bc7065a2601a34c62720368e00d90729e72c36cf6fbfd20390804ac4bd84e8ff9fc78671304d89fea637cc8483b0951083c7f18916f9a01c1ee2261df34fc714f6594b7167ac926861da83737bd682e80ff6ab6036a674c5cba8dcff52f1744e5d901979006bf858ac19f67fc0ac1c78e9b7a049751629d0d45eb4611b906be439f1af44f3bfb10b96318fa633fc09181c7a8ca956763eb8e748d275103871ba4b55b090c8efe11089907540ef2db146634996a695aadd0144564c02e8ca82ea28ec0ca7558869b68ca3a364bf024dee8289b06df76534efd204b42c8427091667a903848d87d693f17be16e4659cedcce271191cb14f90c474d114105b36b5b263d55a93bf1db19f15872cabcdc4557bd529a6f844cb2afe295eb04b62113cbc847841fc8d0a9a874ec2e2a05e0cb8d9e1bfcee0b14f001e56a094f1ce69c1db660244e1014f67954d11e49460a13f1957e31bf38ceb7336fbaad8b2b13b0734581fc3928ac8291a431988aabf51ec1fd24cd49150392674a801e99fcfc89b73e195691e27c0df48828ccd1c4525cc96858b0bcc1affddac86cd903c73df46afd70a5b175705bac486e44392075c6e8e824d4c70de287f962c4d03d23ccfe37d19c30543a043bc69c893c5c12b1e4f5ed387da5f7fb473fd555d2feeb628e104f5b1ab3dc221cde761617eb269c6de587f97efc7e19df6d476e0c99e433a691fe983f203b1b7f195cfc40491f54c90e39db7e997493bf19e19f073f4774ebffc0981754b1388b2fe23d226105217680881c8169fb15f1006a1966c7199915f50f07b93a3eefa5c44bf6aa97c2414ab9b972e36a2f8d36a10de95e9ae361b1171971f1cd486d90a2ed794a10b3b8dc01f951a9cf65228223e46dd0421c260f82dbed4fb81506486813d9d715363629c5bd5066f0b65a68be8ed0ba2940a0cb76ef96275157fa8bbb121655d3ed73a07a65d2bb726c1ab438bbf0dcdd0e39c64d9dc8cd4e05e5a905b92fcc7c97391dfe17c1ac65c858ddc1d78a64fd847f618b0624e2afe79caf5b26bcf9580fd1a9e947e9b23e15dc20acd4540f1d71a42809fd5fdd9c5d20f105833ba270307502649eead1c8c690919f4a8176a74c2c514906a1412cfa014595008853b9d15c3079370f7693159cdbef82a0abfb6d3a8c5a5d8d3a19e97ce0a338e1272b6c5f88cd0d95900882daacc287330c5c327b4916ddec2d7992f23692c70ea644a1e88e9b761c717134058c6c4d69e88ae9daf65ecef41b11ae6da3c4483f0e59c2081627d9b6316e909575068a08dc10a901f403b0ac951d8dd25dbe3113d693d9eebcb91c6bb04ea61e1d79f8fe6a8c909f6d3161c70521547c5f31de58c2330ca4d524195efd9c875d92642ab457437328999c994a249f71e64c91499ba051e5e4b6b9496b24a4fb4a8b77ad6f6ef834b0655c9513c2c480c064ab3e6ba244145882c6ef48547d583519cd7cb770341c402bbc81edf4468c2c66b41872d138989b3678a201945b1cb1b32a5813fd2d0791fd4652dcb39398827cefe023a6640258479d58db88998d55a71c43f9451e2c6fc165bc4bc0bf1d716c57276587b01a12eb2c86bb2c2ff9a6c09440c8b467fa0384c02583281c33693306a9848deb229b79fda5cca47d59dd7a7d2f213ef6d053dcd354cbe83ef69b277c38c667e8e28c262693df13c70093f93770214768231d084a7f894f83f6a711eb3dcbb540c802a40b8da5f80fe8d3aee33266f0a4b15dd6c54f686195d3ea0366b54d8c05685564347ec75c8a89e00ddb2fc87d2a6a8652843e1525e38407ec2bd4a96568a8c7430d53df9bb140830b2b7b3a4a32e9e459d16fdfd5be8d0439595ac2d9a683a6620d5c1c9c85e26ff46a0d9fcffb7445f932c6704d632c670c21753a8c6fed988ffeb5e2a3a2f204cac74a880d7bdb7c8c884f800ee37b4006e7fe21bef1071c3418a8e341c2824cd27e5a5f3835538064c4aad456789708b93296072620532013a631d721359e355c6e0dd16bfa58ea7d0687e24257ba3bca014d59120b907dcc24afd31f21fd98182fcbd5fdb95539ce139aaeeaab2c2a5ae1422058df255bba9259543b952c55474e55775574b4a6e75ad8a2ad1d48feaaa2cab1cea4a29a2a2ab9f4a975a56815b719bb9e20886966c9bb20ec12c156a022ea1e77bfc9bc4fadc952b561d2cbb02c416125adf68c08e68342595afc6a2ddc2dc6b2e08fec918e230a06c9ff09e72ae00b225572ae281e90250b1c00dc3ed23f730bc0081f096da6e3c9c5dc16c29fcae5e4e0705ce389ba8a6698430115601de1fa11040312127d1f4d452d8625b42aa04a6e3773ab5e186168ce2fc1d5f1ba6890edf3d7f139281884015c8757679fe624ca70061bdac42d1d5c7b958e2175dec8281e754062c0c72bb343a8d11b888f4104e840b028ffa22cc6e04a8701cc232f156cb2b4cea5c602078d417c26857843003846b24d342bd412f43f48526932dc908e58b93731370516f2046a950a84f8d8b609d76fc9200eb82840446314d285f98949b402e054606252ac76d247383d19f9608a40af5209e08754ccd81179175d2f10b82569070192d02a365b29a09bd13f8cf82c0820b2da46529100170a2b95d27c67c51800948609ce91b1456123831b7001bf53ec20b03a1ab4945f865b22add0245cb10cf8f5260b48c6c73e3ef7aff4f00088e0346aca344ad5b16c01a212ac1e331e98fd61f2d410dad89810b2c42378d3ebbdf8f81205c018f84c07867426b801f965f80f1439a02a3903ea3fce20093c88508bc2c06200c4e24a7eb069817058d892948805353a09b6bf0d489d88eb425469cca0098a857101f9814682f7a0d8c80b046f3ab3c8c8253a35e4494c06948ff97c7612675e406c0080444cbce363f7e8ffe2790a0700f3433d9026e82e86871f6563d04ad06fe2df24c7c9f725dc31b382890674928476d4983641da7bf43d497482a527cf490aef23e432b3f6c750cfa002ce3e3d546a9fdd884ad38561ed7e6f26056ede8dd23b150857a61cb21ccda3d382fede11b90fe8ca9589daf71a7ca69b07fe5a4ebeb3771b546b240bac914dc6c6e98838119dbe5636fc9a8e9881f2c6517ab69c6f41391a9edd60ece905bfcaf34797de59611db9ca7be451d9d0310d53e17fd15e42f0631af5ec87ca038f0d836bcd390e553824fe6693dd68f7c80827984ddbb8195add28490cef413ef9e2bb5dbbbb6e5792473bfcb5703af353dee817cd1efe6f44d50a35a9e14d9e204611e391501497ca361f61ed16ae5858e8a993459768f6214d8c114c34b0fc9c2285abe11025ca622c4bb2a7e5ff2e15324d9b6be075d78a040b823830d49795189c70203211d368a3025c1c809c8a367c0cae38dbd6d3671c8f805578a9c2171c31abf74662610dbb08546a8854101184d08576839b667dd25254e8f0ce0a20dadac9602b0b58491091d77fcfad9387338fdf85b6662dd26e99f13ff0c379b520ced8ce903c8af77e070b329c560b6c1dbf2c1e3518fbe61f03b521585e3b70d67f07119a8c78c10010b86a18ce3b7c945ecca215ee919a912a25d92a63d0f54725096b5e3e8ca75c1351014df031a0ce79b57201ad6a803ea2ff58753f34b3c1c4f61950fa7c6995bda52c00d19d95cc3489e17025c33c3ee522a8b15098c052c7540c075748060799d9aca94adaa58c1c00f8723285b87db07caa51e0eb5269fbbedbdb7945ba69464a809b009c8091e8553e1473c89afe48c573c8459bef295afbc880ff1d58a6918276774532251af9ad52d161b5858586c980d80700039509e84f5c32f46fbf0d3d152fa0dee559b31ce160650b526f4fb3b0cd96248d2f470f49ab161341cfd8be66dfabb6ff3896ce9afa0e7b408a5459c99cae1134d9764e7dce0d8c86a3ab664f44dc07353c06598dc3bd7612b6951e3ee04975c7f4df7e9eeee23ffd1a7a3fb7a397c3d638595577a0ee3c066d80cc621a5cbe42e4892ff77391cbd068ddbfec5edc7c16182ee9e8679899dc851bf17607c86ac8db80dc3912d51587ff912588b38dce7686f18d7b06e983f69d2d83934c859e77889fbfe9ec998f38a082f49f799cf66db56e347ed10088182060a2529d2249230f2a54d5ddcce2145293d202e6d3ceaf73a07bbcd2aacdc428bd9165ae448137dcdd3ea102d9aaa8904376534a184159e547184099e40830613a84803094eb2a0842236f0411a66e488a1830e8c30c28c18385105244cfd3a78898627390599895ffb1d3d0c9063a2af855dac82dc51baba5801b9fd12904b32204d14052db61cf18744864081978000428601326254d88225e40850fc28421a3d583161085e6c0144870dac072fb5008b298ec8aca490a208a6fe0e784962a1a5ca01c2148e30061a98bca0051e2489d2440f689063eaa780972480040c08ab3038c182164cfdfd4d2aecb86928d07264cecbf76fdb76a58f4ede1e8e73d78d7b297c55b90b76cdee79684f9f5ddc8524351aeeee1d28a7af648b8bd5f9537f0d746eabfc92028cdbae98a6d1b40ab20dc7f8c5303424290252eccfd16204b8e63689c160174f50bafbd4660e97e7706d1acb1c39a404648fbeba2b09e36a6ef62f2e7fbb6a10720432c717339dd8366b452297c8cccc342df6ac47fdae9ee5b01d295ded6a57bbbc5d21fb7cdafce247bc885cea3478d4cf5dcfeb683fde40dac22b3f645becf709330b49120e526cb1455efac217ef28ece2236666e79726a26406c95c5d772bd362333b2bf415103bb6ab5d3099b796d83489e6d5a49a58c765b3709edcbe79b9644b7f276c978ffa27d863c81619d831d9d26d05c6616c57339162bfbc73fc88327ad6ae39851da5cbe57231bbe6129e342e2ff9ca572ef695af4e7794ae27fc39bcf4ef6a46d2333e5d7e96090287872820a701724673923597dbe6cae9e1149e44b528a59c53ca293f3cbf18a6a19460a728fd1c5d25b7fc0976107691ccdc29293539e56b20ff94524b82753489d2a47e92f4549aa4a34994e9523e0ff2fde54b9e02f8d37dba6b3da534f1caedce0d57bec8250f87bc7989610e6318bd218a117f73054c1d3caffb6f125309d3bde7fd3d29f68f24696bb1ff46cf2049df4b1edaf3985fbf574d02a25b0a491281f4b6cddb3696609b18f4dcd1fec0b28ffab7cd5a0785d824ed07ce99b9c43617560353d0a38229f0344e1a48a4f31d38d36ad686d3472e5b56c5b04c8b3d418e82ada467dac1168124b116a4d8df382d6aa191dcfeee23526c1fdaf4853dc48eacea956bf4dda9b3b6751d509a1e04b9cb7d3140c880903215ff0136065895a8871d2d6add697f06b9203938b2a5a714b6573426611870fba70f6c0f2d767f47214bbc841cf573dce7234756a9a2b023e3ac524d1a250c87717ac8410130b0b3757248c06a9abbc65dd924972d6a1ddf18a9c9fad16103c4f5900239985dbda4495a8ed6c1f5f97c4039dca8fff976f0fa7e670d5f52e03133d401f4f2f2a2423b2a9ff6dcadc12c52999dab859f0256f962b4506cb17fc9ed806df26a742828bdb091b983d28627f29869d040e96ab1695889aa85dc7eafa38079a97dc0b2b1e0d1d855cc95d57eec95e77238a1b032663a61717cdbacc591891ce2f4aa57acb986c32a2f7dbe7fdc58f5f209ed7f4a285bca5aca3a876bc383220923fbca5a949763762dd4b4a669b11bec482fb56c2eec9227ecc838576ec164892b6509081f4d27ecd8da47870de3f0c0695c661ced478672fb3ded6548a459c52a79fbd5a451ca6ee7fb7bb56dd68a44cebdf26ce8701700df05388dab7daf5aecef225712e9f4901619a73ba1ec114eaf34c669b147c6b99d83285bf8bbd611f386b07ad5a70612c546169b518244b64821379503a5044b6014c8e146d3786ca5942c33063112e0ce85056edaba01795ec18aa17341d1cc90794c04cb9773786c3d897da60128a5d4e1e54a29894829431550f28c83700d240729a3a78c6b32936ba20910134cb02cb1c40d95aac5e53de8eff9f57767f680fd7acc6108502a20542868398007566bc00378603518985a2b034a290d5c2284259823478e1cb30a54a00215983b76ecd831030210800004acb79bc80611441041b452333c3a3c787c313a9ae4f0f8743481c261e95f24e214bf38d682d20e483aec40010a48c001883880901704083180015a70b8a999dd51a9c105382851801c941045020c2047e6bce970c78d5f30001ddcb841076108064085da60e00a4012367c1235d46037966d0625ae1956d2ae17a752a954cbeb31434a44436a65a546a88530106b6daee7a33373607534c96992d364763dee1f13ecd0a7a3c9ac493320fc3a9a4401270eac0e9b53d80131d84a54be79032b81b4289bcc9ae4d826393a9ae4e8b039bdeeac4bedea913781a2d99c98351d36409a446902a5494ecaa7a3494e9327edba4da07c632bb9aea3494e8bf27a2b69d2d8dfad9ef9172ffd8b44bd79c344e08425d0a2ec61cea9896a50912d92d25aebb67d3a588ab245fe36bbaeb3313afa6eb265a321a265102bc32d26455a3badb5d69b6b7898bb3b8718f18bd1348d525a3705e82065a5dae4d8dea8614aabd1e9f119031b588d766a60c7ce16032b434da334b06cc389841d3bde3c42a43251568634b09d49033b8fb05d0ab7559a4229adb5762cc7715dd7790a88d1d1d793d2aae8e8bb75e60caceb06901c2d6da7862639b7c7b05babe279feb64576ce0976becfe349e9c8cfe7c35dd769ddf4ee3a96292f365a770b316657bac41872e512ae745d61c855114998ca729b86dbb3e63a94ebe1107d5720ba2311a7d3e90e21bafcdb8f29578e9fdb3f863c383ed2a5bf2ba597a10c97078f21b6cb633e7dd9e2df7160cb16ff0df4bbc92d1cb5dfdeb550057ef9cabe7c73f40cfdf9762804df7985e03b2b3835d9d2af8114acb245ba8f3f2ef3cc420633069635f9e9ce114d232cbde34bfa5169510b6fb4d865b83c58b6f4f389c3e0623814bc0cb7711b8d8ab4e7d4dc0b4a0870c300babb5b0021f801b0010035b0d03083c84677b74a08f4b1299eafe375dc56a936bda594524a29a50ce1d468736e73ca3943ad04e29db3fa9cd335fa3f27f5cfd1744eed055a8e3639b01dc1d3a03e438b7cb33157b4ad4608f4b1299eafe36d956ad39bbdd65aeb6b359c4c354dd3dcbb60f9a7b74a67ce39e79cf349703db49d169ea321061a5040030a6878012091cf9fbc34537d9a7d9aac169b90a4698514fbe73686156d735933355bfdf2129bb670ce94cfd6e6a3f67cff94a2be36d8d61aeddd44b2d858676ed79a620feafaa75a54a566126c55d59406d3727c8404aba580f468dc44df711b8fe570477a6a8fddb8233db5c76ab8233db5c754ee484fedb1ce1de9e92507f1c6d7201a6bca7634f4457fd2d894ef9ee6d01995511c3ad3a24a755d2a59bc5acadf4ba1e7f784a0d941eb4a9a1dac70b89246881997cabca4a5bc9ebc14fa94466554565125ebcf0345d2059299c9f1206f6ecacb665a6c970d719c22394866558958696612ebf9e1f3a01f543e145225292fbe8ff8a98bba5eaef71d755dc0fb94f7429d0f1c7fdc6f54c18f3bfffbf13d1b1ab092c60c2097fef4ae5d1d933032894db93c66e7dffb0ec8b23ddfce7b1cc842430fd89fef01e923aefef4cb63fa77ef2578b9295fc1713eb929215542912001e5bdf1398862cbb8b0a3d6d25a12464bc99623b2a489449f8fd4521e161f40fff91da0d0473b5e7cd49fa3e716f6eb34bd13fc38c11ed6d410daad2a2da5a9b495c6ea6e9108499764bf5c09cc697cc9079c2e1fc5648b6cba3a779c312c3ea8fce777a8fc27dcf17950a8b57cd463bb3ea0a669d1d42e2f69b01ef5f708046a2dad85f2569346ada5b5b4192f81502847ad784cb6786c0607a52cd193ed78a926e135455197e6e0f6b37c13f0d46e9bdbb6d1707e9f16eb801aac450d76016666817989cabc1f3db75b9d8514dbcf4875169224a58f8147ad26b917e44479ee486533065aeaf67f3a1f2fe2298ff92847b6cc64cbe8b1bf1ef31c0973862c692d1f27eaf634e276a6d6f212dd428e9a7e717b8686a37684db0f7e13f05c0ea94bb668975e4f001dfe78085dfa35358a786021a60e0ac83b5f87bc33fc38615fbb5b38f2b380effcceffb8f499867366b65c769cad71e2dc7ed18d7177f4d97524cc4c5dd4455d335a8bba8860a9114eae8499da49754612777a819ee8a94940bcd9a7b37cddc6c9d9660abc9a121ae8e54c35a99590242d0b996a92d66a1114d2939f68d8a5857c1968d3e7bda67c74a4b62a4bb660c1a3feaaaaae26dc4a841af2837f3d07fb720eee915693a8abc52c24897621c5937bccbba8455c4daa5448f17bf00c7820031a53111e2538c164848587f9fe7e801c98c63a807a44ca9ae4f684b9ee112cdfd151d3c5435a5c69b0268d7dd26a8af4e9f6774fd874cd57aab6e69d5ad81ced282fcd2de4a8ff8b1418b7271394e8f6375d38743669baa1e3e05f06fbc6248cbcd3359358bee394ddfe1bdf0ef2e67a210be1148a53285910f66454d62479fb8e54569390a3fe256a14b04a45aca6d87dfbe9739bae395d3acc391170808fbe8780cecbfdbefbed13f04d603efdb791c58c60c79aba47ece741bf6dd68a44a0301cc5d10b4bf072e76f1f28c47cfadcb743e77bb8fe2f2c3e7c1ef41ef83c28f480ca4b9f14454f4aac4ae713f0b1f8f07995f700e843df0147d0620788986ca4279b12b4023af4444f1488c740dfef9ec7fc26a452e373b48adb4893c7bc444f35e829464f233ddd1f54c4800738489828430b31342e6646c821c3c917370081f403c6623654766514c74b20d08701d37dba37c08534891f35822e38b1c20d1358a0821729d842155f7882939a23c8cc2679697a1e8ecebc99afe9220171b76770fc97f46aca47da7590bea8ab08d67fa4ae4b5353df09df0b6b4a0a3bd6d44bc238e076e747eb75f3ab017908c09d44405f8580428fc562f70b359813c18e8e7294d370dcb64e385aeb85a8ca83ef585363951942e39c2fc6455f0ce8cc2456bb63bb76a871e7e76898ce4c62fb7e3cf8b501896507edf26b97430a48eea3c3c646bba3c76a2a6673fbebca4b320c3970c24c15418270c488a9bfb2bc24a53084295c410b479882164a30c92e94f1c41144b0c291203b30f55795977e00c14110a02c418b9a5912a6e6598beda809705caa422e87353563c759533555533555653e55484d79c9511f544da11c357172a66bbaa66bba7236aeb34a69a662635a3b1fc80b69cf83baf333659087e70eb15dca208f2136114b477e9378d0e7a17d3f80fb3187cba259eabeb9b05a43e9114721c20131429f0b811c614ddc737f84359d9ac4ef9e95f763c7779dffc21e3ebef77ce77bf830c2fd0f1d7498f95e9abaee7fe8fcd7f92ef4e1f9ef3bdfa3878feebd37b2c3f35f07a4808f5afc3bbaf77ec7f79e971f0b873e749e970de3513f90f9408ed8fc8fb0a61a3ee662d80bf562aae18fb02600d4f81ced415a7495cb842ea4c59e43b0e326e432f7393de323951f3de6326fb90bf43f3a8cdb667ac64bd2d42e1a7a0a453f7ef9f5207a4b7d05d20ed8790000a5c9d449fad544e8243417b7bfd333b24508766cd80764790bd2f02170860781a24fe18f7f82443c9bc9f3000051d6e47d0d70066caaf13580408e7831798fb226cfcb2f05f39985822c34f46610ecd8308f42b670a077a0e78ebe5ac0e8555c1afa0a891d1b16808ef412c7bd4898f909b8f20f207168259f8247fd44300e2d7421ece25370e904a10b418388297cc5a3fecf921370ce6dc6c1674897fe2e8347fd3cb83d932d9eeb21e3c81627594c2c2c8c3b6267669c4e9f52f8aac6240c8edbefac19ebf9fe5ebe566438230d29c44889f1e334c50f9c6081c40848b8991f8b0fdf7bff83e73bcfa077616d034a39f29088fd1cedd534cc4b3d6367667ca54494d50f50476882091953bfcf78690347fca00c57e8c29022f8c0d4ef2b2ffd98410eb290c48bd68b095c98dae58a225724e109408082cad4ef792fb9f7fc0fdd7ba18fefbbf7843e8cecf8be7b1f9ee75e9a58f83dffc3f4812c1cb2f8c0fdf73bb8ff9eff0b7b18e17047f79eb0c7f7ddf7f0f47f60e7cc961db70e105ef190268d8ebafd8e92306e6d07725e87bb1ac77d31fe1c9d1f0bbfbc3bb8f758f86a33bce86900a5c9739027c8d243f71990a6ee7f48f982abc6f4ad80d23403284da21fa72fa6072033f8714a7995e7d0837e4a93373b9fa701b43f03187a11087a1b60caaf802a5f03645305e5fd7c9026209fb740baffbe874e0b145291a980d21402a509044ad30794260b4a539702fe38310d1308766c5810dd646ab0be0247e169ce722671824081c8711df8803be5a6bb833cb81125c028c3f5b8233f0fd89311ff228c3c3fcb0482f5e767a1ffe3d20eb4e840681c77342642b6f84acee48c08221808111c8ec77ce5ab0e70290c36df59dde34f67665c2a367808b37835dda7bbcc89081515151bd3ad70299c88243917c982a3f0d50ad8b7035926077a9efb1fbeef421fdd7fcf853e8cece842961eb867f9e153bee08282a90b59e67b2f4ddffbe0429619b2f8d07de77fe0de0b7d78cf7d27f4616487f7dcfbe87cf7d2e479696a25a07b66aebbaebf601e509a3e509a3aa03479a034c5f4e02b1f5d11f64c8bd38815f96816b1f2caf526a603a3a2bcd43da1b382aa93c2003a18e847faba01f435de478d15d0af7ce87f580943610f5b23ac305028b45bf8a4ca9a74d324c6817909f45c98aa3715e6b12096c3b13eb9fd38f5b9ef22aee6dadcdd7d7c7777f7508821b45b997ac61f570385e009f873ef699ba609519f9f32f3160ac1ef31585b522ec4b9fddfab45956f49070b6d97416993fa5a352dd618ac45ed093bd25707861cf533817563c4bc7322eb60b07b83e32aacc26a85354e9366777777f72c4007024c98d0988ad0aa206202a970213b585793829230320997e6d50be8f73a180e1daf51b6539d552835560bd0614bdfc3e18bd11e874f47dffa2d1db695f5c5d4222d6e215bb8009b06d4cfbdf6c56c740985d197e6849dcffd485fb77f2c11462b0a4a78810c694061eaef70bc1443c40857503dc9029299e9c70d6ea2004516b430430a5598fabb98975cb08a410fa040820a638099fabd2fa65db2a5a3c37db9fcf5c74e9af84392449f3f4592b4e7df240e295deab389c371085a592d360d585b459ab0f3c73ac35aa49e711bc8ed19d6568bcd841d2bcb73912eec9e4a469dd528dba9c50ed6c13a586703ea6a3a98971ad41dac7b499d694fb5a7da53ed2977a9d458b1219a8106961a006043001e0c59aec8ae144011db0fdb4d061c78f2c6e8b14b66d504198b12338142239d2f2204c40b93114e015d988ca0486874896fd206b2f1e3cb95b2970195812469a0493d684092b80cb2872671948ed2a49e8114cb4059decd4818e9c58a97549ab69aceb48d3ffd659550e8516f5279693f293347dfe0c8fef31a10ec484f97a268aa49429a64659aa4bdcab7b59f12a24178749ec710dba5464897fe214497caa013d2530d1f355e45e56bbc8f1aefdff91d35583aa10fa00ffd0fa00ffd50e355422b32c30a2ac860922623fca305a99016552dcab4d85f0364aa4153291f67153b29108aa2a7169dc8cadb00516fb2f12010c8116fb2f1a837adbcfcecb436caed6db6c93e9f1332ce5b909f28b123e3c8fbb11ff309a5b5361c59764879fb361c596c4ac843e50ea1dd1f97659b71a76b6d7caf7cbf36bb3ce61d351c8efb68369f508b05b19ff7d8764e8b3db6ccef0aa8e5684fc02712c67ebfb60559a246488a041854eea8d9909e7c80dec6fb08fdcac97dd878d0fb58f9108bfd1da15f79f9b1d8f0075068e38750b812f6106da10950903081c2978f12569a548aecc0244d46b495fd84ec82c2f2741b7d41a03439d137e4e7d0a48ffd09b293325240282d768b34ac956ce927507468329606b15daac5ea7d8e9e472c0bbf8dff6162611bbf03f436c21e46f87ba83c28ec616407e857be478db7f11cee58f9d04ad8634573df3e4fca33385f9a7af430b2c3868d90e5f3d2d4c3c6b37c3a60439619fac044a4a088fbbd074c015fa7a9165b9a401e52d50a58034401717ddee0c8aab0ece010daed684fc0f91ed8505a9cb50a285d5e953bc3ced18c580fb51c0da745ad08567b1ab495edc291ca50d526933063c8928683b339d1c4b0e5c4b6282dce70bcb48de124e7768e18aa7079f01de9899e64cb7ce77093c91628ec0cbb6b5ad48860b5706c24b7c6c9b0a38c75107aa2277aa241409fa35bd6b296c95807f8e43216ebd886e294483581f652b6c12dc81148182e01145ec872cc50c28c3270102389923492a0055512afa9f642e2560d2f242edd5043ab4d59dc6e915e3a76dbf8d4a346d5c038640dd2df433e318a4f23903723706d042d7610b343b5cd138ad8a53d5cba41321046f1a9457e82cdc1260b222811860fb8e0041305944421238a3190f42088e9c791321c818819496c6ed030f5f38c97a4168ea8f1020b2fd4c089124c7c4b23e8513fe12222c60104bbf4a3e0062eb180a54c24e32c00425a210863803f88f7b00460d851de5cf9d281268d35689d3b6b743ee3a0219ffeb20005ce27c6b1b14b3faf9c055ce229b6137779870e2fb2a55f660a21b7d909e9d28c032882dc0066fb8e1c24663ac172100e526224dc6a821d5f5aad961246d2f21207a9415a415aece7202f2f2f2f22169ea3d117d9e0358c83862aeca2798d8be1353688da733daf9535eab35d9d8419aab04b12b864038f5cc5065f718cbf9802c644bab0129a542258ec76f96b0976de915fd37dbadfbc82d0439ad52b2658204d1ae5ec3689dae08b32c6b87ff9899030f3fb5d204b7df246b111b73b8544f720b56dde2b1b363ced99e5884543b83d3214ea3259e8365e231347b2e447446f89de12b7d00572d6727112edaaa2286e9b0ae3701976713278e4322ab7a9a651aa691678119d9021c365301a4fdcfec938343deaafe92548ecc8afdb5bcc2556b6642b1c79c85c82d5eec8389fcbc2ef48523db4eb0aeb33ad16f9251b60842cf117f54711bffac4af90833179b54b142b11754684eca149e326b6d8e2ddd1e2e5ad47b14771c9153d47d4d15a2976a1476859682d16fb47f03294d7528cc351ec428fe052e5416f9ebb551e704932e36830a40b173cea0fa306b7bf61bd454bad49324df2e76db37614ddfab3e3cf9d7008edced75482f5af5fbfbf18ea94a641fff91ea00f283432bf883a03d32734d2f976a1a4c733dd632005d2627714c974ade55124bd9a9ad393d6a21aa533b4e38d119b9d2d2c693c9d8ce1e46ab19cab55e13691cffbcf2ca4a8cde91e1b658ed62ed06f2db775a64e215335539d99622a93d1312adf8e84f1dcd9ae39c7973b3f47f7c783bcc2ed6ccf3f535bbbbc5da05f4f7e1f27ec7b276c149fe61653c645bb640b12b2d45bc8513b8a9bb3bd1a29a632ef2608e924acf8e439897c1cf46de3968f78c647fe342e97763de425af17d7b408a32e17a5b1e198d6d290704bd0c2891867fce00b5030755f20b2032da860832fb2c032452712ea9a33dbe6fe9e10fcf49d7ee7bd2f2c5fda48bc197cf68935984685a9d56851e051bf334942f6b6848d42562a3af365bfef3c7b2fa98b7178a1d662974d6b51993b0e1332648cc39d481729b016b0b061b2d8a796cac16590279b3419860fb430622ac2638489e923a297a56dadd88b56d30b98ddedfdfcb15d0d04a6d534aa495ef5eab582fc3bcf9df7eff4a9f3639f807c8eb61d4e161d0245c23e27ab4954d643a0489ad4abd652940bf4a60825837da027d918dab4b9d30a938914e74bcb399571f2e6cdc49963481cad62979973c77985db0fa4c5d66a5ad4623d52310e0d0ce9d2afc9ee4c18b2a599b81ed8d1603389edeea8c12e206faef735e5dbf6ee2a2aa0973eeae196e0e57a311d9884613064a9561812ac0f233b420f7a1f2aff791fa107fd11ebc3c8f63e3eaff23e401ffad1639f1dbc67d9c19fbdb0fe3fee4c62edfff07995ff01f47995dff17995dfc21da00f3daa491d2fa4d2ddfed3fb99c44e6f7b0747befec57861a34e3d004739cf5eddb0cd2ea64d4dd9a7d985247513dd380881b08b07398247fdf9e031e859a0b05fdeadd8d5c1ca2dc6307353de7bcf3b1f998419434a270177ac309f5558855598e70136363253110ea50926239ce2dc7cf9375eb256f953164babb5d65aab06d6202dd65a6b65c160158c27b08be7bed4cacc18a8a156514cb631bc3aa9b05a6b0d7d4d8b9e0aa5aaa74e4d02cd40ec62e6020dcb26e7f4e6520ae3e606521cee8e142788f564f5a6f3e7a20a45aec8d9c54be097e498d909d7b504496234e4ab497c6217a6e150e62596d114a3419dc896171d438ab40c1ecdb419fd420f098322450d4c456853586232c20f3ac1a4ddcd6adfdd07ab309c169959f661803ef71e052b8e7f1dec73b52b6c457158719ac4e1ca87ea7bda8ca53f56996c9172cef1b0fd7c1ddca4425ad52bd6eda7d607d6bb1a2c587f0e59b8037edaecee4871bc3bd2af07e923f7670c7431212d361376ec603eb0a9553ee2260e37dd65a312726f9a3452d6ab42ef2fa50deb86b5c2a07e715d962fd80525e370eee54f699226691a037025176a290f25bb88b2b64a9b719795b86664cb9c60074617eb517ff7042ad3c93a980dbeb981c3cba65003403f8a1e80da4c2007a04413e847003400a58309f46300aed486604320edbda62ffe991582953ed28260411f7a2476a4acbbd510c8c27d8dff6102812c5c07eb42a11595ef61e343cfe18e1aaf12f65079d077c00ff62df95ea15028d4f96a28140a854296eda5a947e859362e54bdce7f5ec87b2f04ab0db025612a4cc21c914e9cdcb1c260ac65d1c96877b3026e58d88da349c2bd472565f7f8b3cfb812578bd3a7cfe94b523933477dc2805115c8995286cdd88565f4092e311933c641533c6b56ab98f3b6e7dea6c566cd0eb63df70a698cb2a46449182a58ac5a512bdeca53bdfd3cddd357e87f98583c20fa199e7f0650280aa589431ba16456582364ad8495c5a32134998d6673fb8fd8b18379a95d6dc3d1435d4f387aa7b19b75425418d2b0838d15552bb76d5bdd6aad95f9bb63abf88e94b583bca12f9128a42f0af3eb5bd8a83edd34a9b790e1b839517f4a98526571dbd4884ecdea19770ecb39e7b270966685246d409024ce595e048dd52a0e8552a5b62115dc569b8c6c39b9cd8c477128fee4c68593f344ab2a12a156f5132c93a99cad5051b285d38e784bc270d378387a2c57f2a367118e9e13472e2be5ac94cf782b6f8827d379dd4cb67450ba58cbf6ddee6c675a954573c776a55a465fd485b8ab3c5559340cedfb370f88168edd19a86d7a12be844791aab05917c53b819e4c05bd9537a4c594a73ce5322e2455613058856d325d67be2941d280ad486f437c3bc936946f2a9e3a3c94b68b568dfbf975b0c6d9b69ead3a58076b6de1646e646edb9ee3669df36b976f56f4bfe9703b235455298bb27418e94bdc2c57914259ac0ba5c59eb5d8952561a86075b0ca627530d9127639b2c52a516d2049399024af4d5494aa55acd60cabf48961b093edd4994a453fc1386a12e952aba8457882a865d0a74a45b33cd7764bbcef5e0382bde9709a24c4d63d6952c747e8413e561e87bb1eca4b9e92a3fe5097d3cdbc936865559b97baf60a2b4da190a5879567d9017af76ae539b78fef37818dfb38a1fde46cba9b16719e743050fa485e6eac3577f4d4ade952ec09ecc6e67627f3420aeb42fa2a62474fa53c09982fe11ec5ad02f3cdcb4b9e4af98bbea60e8ada843048aff7b48e36bcb083c996ab59612bcc61fe34ac5b480454835096fc288b7158d6a28cddb99f3eb9e9353434b419b75554c5c18c716c2155b10babe2804bf50a4a99d0645edb73772f6e99c9d28858558bab163b28481cb5b36912cb5aecedbb1a09b381ee485fb4c3b63e83a02bbf1db6dbf51dd4b8e91c7d55589d4569f154574336592ce52f330d183de5a91a9b15f6b97194a5629756b1ea15954563f50a2e49a64ca40b55026dc204a52ffa7277ef782e1e319386f1d886b0773e17c3354857d34141baf4cf4e8ccb33aca98a6a572fa10b49f222b601e930ea19ede2b8d936a81234a50da12f7696311934c538b6905decc26470494b2375bb59b26589341847532199b0828bdbdf2ad9e275cf1f0f3e01b9c1deb83eb70ef7c574cf79dc46a9a02ccaf26ee6a5963961f64e9739ca6a910329cf78d6242770a51b262e94f6c65db5d81eb2ecc0bd2321bbdcffb82f1ef56f9b27c17ab663fbd3c1922d2d636bdc91f23f2009932bbc50028a0a4a4c23bf87544557dbe5e7e7b85771bfaa97fb96c24d4e58498f03e94a4565ea95f432bff61dae54d5ab266954d891bee68f1d8c03298b1669b1d562b32e651569711c27b7e86012e6fbfee8122475822485c138f8c52efdb4c97db5266345b73d6759fef939e75a1433903858b05d9fcc02110d248cef007af8db1332ac458e759ebff342f0733bc39872ac493e632dc2b697b786df53542dd3244f0f6912ab494de0e813bb78bebf18fbad92304bc8520746abd886c7b9f3969202b2ecb03dfff63fae0ce8b99d9f76936971755b25613aa5488b355f2362b9254d4a81d534c975a8dc4ed6d9745dcd89717460c82e0cd912830974b0d01d3b98e763b7dfe37907c7fac5783eee6cba9aae9bc27642ba52fdc0aaaaab8b3b6e546cac6dc84aa6c5de82a092d8c13dd5282fc651cf902e68b08ca89b8b3b8e2ecf6e4e2e14a706c03096356d428aadcd665c23a34db054422000c35a0677865e328b326842150ab519c3589bd5d98575362628d4108b6a1257d3c538af3912a6fde3ea67811f773ea7c9581bb7abf10abd6a155caa1176353dea5f79c245e886089d0d16578a8aaa61079b77f4990aa370bb093cea31bc0f4a3589beac60a196b04b37928af28d9b56d01765d55814b69a63b30404b6c9245bc2a486db386e0b733488cba1e18e358707fe9904cbe0cded7649617bc653334d6a1180afc032b1e3cc6d256da6a5b1857d62176de6a556f9280d2ef5135c78fbc438a88a5dfa29cb47fd0497e815dc8f2d5b2a0a892b387519475d42baf4d7a036d11325617aac28ed8bf17c45a5f8a8e58b498cca341fd8efc8f7eaaf2561b8eebd6fc9edff60639dcfb3f359e0c79d1ef05bf21d91a3fe2f1cbf24b759f273a5dcb1b268c883efd8c134b083c9968fe364ec0cdcd68953084baee0514f16d722e7a8388cfa058635a93a61598d6da7315459cd9941a24ac958eec79a03ce703d03307dd530ee265f4da2ac16c39024aa8414bb49344555b408bbd025b7b910a77a41b654148f9408e336c3a4d8d2c495b22a8ac5a10a4a37eba234697660c8127dc951bf1dc36e4c6e3be96ab62e1676b0163b09f3852cd51605a3ce30a92c1b577edc06f311acb23a586575300e941526cac2edb1935d8e6b15f7630fe1b419485371daac51614761674e8b4f5ac46991e74c79c9c6d7f8715bf9d18ade53a91ebda8e420d6d8b6156b43e10c62b7f7d856598b1da2f7a844cdf357492e15cd000000000073140020200c0a0644e241a95c16d4e20714800c809e4c6e5c1d49b32488619032c618640c21800010100118289859250060ee32c856da863d5f561dbde373353f2146e8c4974213df572fadd0a3ea9d9f75d40d2fe38a94e9a79201f93c3e258e898902c3c95c96116dba9a7fb8e65298b641677c7fd6d2d1d0899e0aa6dcee10c020b76446681b5850453afe37b478964744e5cb2cb3100cc75ac6abca6068336f680732b081b1326a61371ef0587f5d088e01a79ee30f81247f86676f04eb3fe189d09cb8c555ad71f0b00c2df8c23f0cb40b14c38616f2c096b0cb64ad06e32d01217b295b03e701d54b66b7c9c6167920fd6a0853af5bcc4c51b0ebf7ab870ad0e8d2bdb8f53df15582ad90c8efa31a08dc7548ce1faefdec55c67ca9bab28287b4ffc8201da83c9d8e6d52a6bea508a77447a19a871ef49b3728bf5e1826804eeb3aca2d9829316e908abf801a6e8d64bff30af99ff6f960840058593d0a8f1085f4de94ce212892be8d8e6b526d14ae8179263e33ed740dcccc927490d3f436ad751ac8a2d70325b29717d66cbee6a729b90b2e04c41599a8b7a36414392af43ab5b5671456d806d47e1dd2a5744ecfad06802a555543a9f7f9476bb975f922bf6d759bc62aa3fde6f00e992f55f7839cc8e5a3621ba63aa56ef0ee4be106865d126146fbd44d3c9ec6b95db7bc0e26f69b298960d854db8abcdde4a3a1464803a7f85623c2e09a2266ac8ba3435d364c0ed45d4cc6838abf3d81d9d3be7be8c5a7a761f323d66846f4f9d820344cd71a24379c2aa08cf4a278c54d317fa7edae9eaabbd3497b9baf347f36c59bc1a2007f5092b77106238f3b7f76338246724afc3c3e7ab8c5ca30e4dc115392217ac235b498ae24845b162350dbd93c5b0040c532b14ddb5ec7b711849c4159b578edf4a4eaaf3416bc6cc03a9c3a8bd61ea96f3561cd89e8bdc5c1614c9c1bf7b47aaaf2124f8eb6cbaf7896ee0a0d49c500bdf8b5ce52f175a62a37731a2f5e18bd4689d8339e05c0e4e81aaf9a6b2305a0b243fa1edd15e1a0179ce5db03541c3bbe4a55f001b2471ef768846018201dd37a94c9631691dd239d0c98c8c8936201a180360aaa2b47c31899eef5db5d9ec645769cfca210048e293f113c32112f7c0942a3dd25c36df833bfa761c4e664588a67ff6c704df5d1244bd7250fbb613eff831d75584585b94f31250166c61d32014e89a6862e43ddad4225ee124236ff7edff0b877f0c7f1962db1d4921e697c3926230eb0f3d53ce1bc691fb4a4f768c1c30e14a162649254d85a0d5ccec64fc2238be906592933a20e34e7ee4052583cd0d62a2c421b6bf15129a2ca5d27ca2c3aae33473b68b6abb5d0076f3a9a128f25fd3861ac16b689152c0cd46bd32dc29d902b349284af11183e1b0a93cd27ee5184558ae3d9aeb6ce242f88b0c02dcaf0e64c5ea33fe1ad72e1a77035a85cadf52a5faace5015931dc0f3737ea88cf30d374e16ca0f23e119e9af8d30db29f54a18f43d51f1c943ebb60792c78e8c254b2ae21eb3548f18ed4a7114e6dd393134774614301848c3cc64513952db3310c5ec5016330183459729b8f4d76c4a4dabde8a9d664455e4cac86859b6ad34bec4a124ae744a20a7713ba161d7c1a0ba6cd790f1caacb83c1c3c53c9622e4961e104cf982a14c734a9a6ba91943b23155216745331b2f832c6203692f66a1a002a5cbb23e65ec20b045bd0a78071777f0f1edb3da11debd3a4ed4458bb3071641db6e427a2622c080777ef1a833b7d4a0c48dbe809d610f1527a56c5c9ec14b6c0b87d2cee4896a765bdce8b95017470def73a673df49cea4b9680bc150213370dd3891c90f1accd55115169d751b98377eb08bb216b739d5b925e75b278b63cc17a348b3a94242a868d26ad09c8c326c19b0f424052e48c2e5519c4a05e53d42b4b1f5ed0b5371258889d608cec56aad25f144cd5df930b6911aa1230be4144c14086ec7639daf844125b0a02b46f1f9e3176c3fa40a41eca32cef6002d83847d1c99d689292767e0b39ad5b5a4b80af013281132ef0f25df31c1b104c643734de641f6f855ebd44493a80f611dc9897e20051a3165244e9609b09ecec20723967d0c06013882027668fc21f86102c8fa2e8111f6aafc809a7e3e5715fd856f5730568592c9a6fd013bfec2a7cebc10c8a3bcb39f0ce968d9c878e7316b3b62f5daca08ad7d58b473d809d4e13729e72601a8a078745a0361605dce4d277824335787c68adab1e068bd82d2a9f5a76d30cea4f2e238a29362e20829e69a0a7fc6e8c813581360171abf8cd10d1a47c6a0ad17bc1ca0f0258eddc5c2b9237cf217a04c5b58e61f64a7490aa248f984d9bd20af3c9d4baaa1ddf2f7573f8d47e36cdfa4ad73fb7ccd469936e4861ba44bcf7b64a8ee28af27fd417c7f6c5bcf9f8f7b4d863a793dfab414ef4d76544d49dc9ec53bca4a0517aae120aa98757a455d2a66cbeeb033cfcc4bdeed2c69b470484bd1c18c4d0581c10e3e54314407596e145758026d2ef19ca2b8fdf491f3f2a72dbb976d0a4f23d8c9d491e059039a89b33f3ef81c716773f2cd2894031034dbcdcdd292d3677378ecbe23023cf34affe0c282a02727fc352b1c96047058075a49a4c3bbdd3807d5e70d250253c7c42205cbe3224728d13ba76d4a74d1a5132706f16de07d0a69339d03a11352a5ffcf74cab15da3876710c9b1e4ce9ab11186d9e06b827367a3d1d9efbe9ad743e465746e540590e755920117392d1a6124f02afb864896ee6eea8ad3b54becef1df86ade7bfd7fc719a3d145d619b9ad114dc3334a0bf5d63b866881bb7c75085382019416bd2d86b53512d2727c08279de4e1f27d3b56da5ca2ec91f796d284f6014adc635096a334f426ad34d69eda15f1f991aef84279aea1ea50ea21fce95c2fcd903c37df5ac15c4305baf6de5bdd69ddcb72a65f2516efc7595fee603bbc60b11ce8a8203872b47282c2df00e55ae6a881598d852cca9593e3a197bf4ce97a501e0df89ac572dda1615bce63e61529e5825cae983c90cc719771184565434593564489425970b05398cadee275507da078ad2cef60eb25a59dedc18d3af2ab12f5761bff1a708b70e7b6a8d33dc24d140b750ae234f7e841cf9f8433906e7779bb89c4b37a197413ed87770aac0db77fe70b56467c99c2f0dbdecb07755ea6480a49b23ba8c36d94e8ac3486a10dc228090515c967e7e42deeecd53cf86e1b0172c4379f5372bcd607cd031473c26d148e08106c0bd028fbc1df602302844a40e968d9397291dc9acf701d8ca6ee9bde1d8d348ae3291aaff8863f74fa74121cf357a82f436f8795ca23876862a283d3649f4c9337fc664b24aee63d3f0dd0a871b913138f011780470da8db0312f7101e3a00a8f9960bf496aca62e690c03f0e77e0f87d28a26cc13a2dd629af0a35966a467c386ccc169ebe9347cc9010f788222fac05c07b9aa28245ac304a2c417b561f91b1c640294fe23c8d3de434bc5a26f995a2e441c40414ae7750067fa21eb9b9548573e3851e7b36e20ea26c0db4e0c9596c7f1e0ebacc092513495a12a353c9fea004521d6beca6da76c1980a37173b43d5243467b2e2e5c3c7f728b0a4073223439c472b8d03c95b865b0337ffa43862e798d8ee2da29c8c312efd193bca9419beeacfd44b7cf529ca7218bf84a0456b1a1da4b923bdfefcec102bd446af6754a5194b9214cdcd769c01085d6754a89f7b81327f5cc0b015132bf01021d1e1a3f785a3200accce51ba08232c1f6b8f423ad42fd21813475ae56e2b91e25d208930e568125dd8894c7c35d5855a0005531ad79e420fe71175205b85af417e17c67069c9c5f1933c822e3034d6816a37db5f637251438bc61874112f1b313c969a1437c8b8c7d2569def8e2d0f701b6965bb57a8fee3a4a7a908fb2adb80818562fd6f5cb27ea319fce15fe9e00348e228e12b22fe59da24e61e8cd47997cb857e36d613d6edd89932a0b2a511d6aaf4a3cb749871a8bc5cfcdf471c0036b1b8aea7288b5e2d86505c30337c4fedd8ff61bd6ecc36b780afb2205f3e764e93ca33b7ffb8caee4cdde7b096bd48b47af2c16d3dabd41820a63fa4592995cafa810dd5faf3c4ceb42aabe6c2e86a5b126aaca8a3d8ff3db8cd0c8f4e53af4c55e4d1fd65cb9f67dc33f88102d3fcea6d7d076222666489ac0574dcc46f70b32c9ce22bf4a7131e8315e3ff1b2f6c2ee0e8ee27d563eaee5f92aab92092038c7b05f9770207c00d8179d03280427ff3ca69f9df15727181ea0fa81e497e3b785ac3131e030cbca748b09f6882bad2db2cf1243e2f60dba8190efda70c5e2cc1356769fcc3332af93577abfe1d95045003387c711e23b147c8fb984d80abe3e0edd6dafa08dcd99301b5b12ba444026332cd1f27793e4f5b316995a68dd1db3590fa749c1d1636ca80bb0cea50d534c7c2da694a210826db0f748f6abd807bb4bd08bcef400a388a67b52b0960b5caf9d6cc26344ba0aba7e71a29535715c425b2d7b6f84fef710b2b97dc9c9ba4e48f5d982f2e265a0bf029038cef413dffc7abd0d3ec895b172970cdea534d8573683b75d5b631e83f58465632d9b522322ecdee848406d2d3f70a091dc8ed41f322eb86c4239040f893ef5648bc32f624d4165b36009738871a7de66d1e6883687576057ec6d93b8d6d876883406c8de220eb1b7d5d83a1c41dbba68de72eea8debe2c387645fb31d58b618b85b68a21ecac4f007441cb7763dd9190342a42cf822cb2ca71782dab88a21515ad89c7baab79898188568dd7c8ab1187bd28d8622ed6978cdc27c50a0d1844ba98fbf5e6760d84aac04e765db084ee9cf05a48719ba1e6206279ebb2c71c3a6486ce0a9ab2dd842ea6e3580726b7a5ef1c268a06d698a6ae0109c254bc67b3624fa6d58da0016564bb13367b79e169a443ba62e8bde19733479938e9a9e4f40c549c0cdc3c0b34472e89876ecadb8042d9e353040160d4a06b39ba76b2e98a47815e21db0ed71b8ab4e88e8c68bcb3834b7c5d2238a72f5d9e54f1745e9dec8dee6024ea2ec928dd41eb726850339df1cf99ea98f0f863acc95e75f26269496e9f72a32af29b0831ff4463c21a152839197cfcd274a65c47cf86a9a24b81edc57566c2ad0970d39c146c5d1529c278525e62480f38a24af4e6c0f921a78e8f9201b3f65d4d80bbc68e4c08572ae15f560ba1557a5b5a2119ed99e01ef624e266ee54574e20a100a360909571f78fe07d98111019c3c5ad6d8f8716b6ffc44004bd8e670305e1aac3d261314d73bdf16a2d90b1cc73c3f3edefefb7186427429b647f09b929c1923ccad057301a081c7169bda35c27968962ccb3093e183a11e649b15e9f4de556a16d483d4539f33998b96450f88424464f8f28d1a7acddbc0cb697e9d818ed06dcba2e7efd73cefb2cd6ef365245f4c69ffa6859afc48adcf0aceb50560ecb0344a600b00aedb102cd1f90955c4a262107dd334e762dc61e3f2b52afcdd44eea3f6c4faf8d46bff56e64d5b8568698aab7c008e9b5bf6d233df2d4a4e9e858d2c22c222f895d39d78d82b07d57293ffaeb4670894df13b091d81fd774ad4648a711aad4db0213a6d73c61b32d159b22e92268df50066ef2e027dbf14194a9604984ca56da4df355e0c3c8888bb261127e99c94ba05ee7b858b9f0a6a65c87f610e228a49cf61d057c1052cef1b9b9ae5b3ae2ba75cbf0972ce20838cb4bf623e470f941f01d282ce088bf23d28d464e38fd2a0b3d4031d1b7bea3ff2696143f1166e50024a4255330e2de957466249ac56882c401ddbbf74ad9afa18ec1788c182034a467a9bffd901a780913ea80dce8f2b209591b9abe5b048a4071b4f4124bae55d921d1c4e6f1148008f8b8bfb58f0be5f5bd50531b99259f77aabcf380fc962d212d59ad5335bd1a6f4b078078fb6151eba1d56cfb13795db966a939494ceb7ad30f0aafa8032480e4b0973833b82fa9e7732f3d6c63b49ddb5844c29ca42800ad089cb0f1b3c31d0a93135f181d26962ce6c56864c3df64c468a24f91e38b6fa263e710c975cdc9977231f27bbb1cbef141d7b3e73daf4426ea2e6e6bd8c5af42165bd7ca3584ff208504dca4a4c203e8850545b62510cba86941fda0e305553326772655f817658be2c90972f40f4ddde6d046242bd54eb154a34c6b6a9580dea88d5603829d20567101471d59c6f58ea88172a9d2b859c046794cea94d827706e1bf673384f3ade03b713978778be241a082ca81501c16c3cf4498333caf3c8d77e57c5c092fc4a7d8ce856d8c212190e2b8b68564a87dce8698cd56b571797aa64c4afd20397a8814c238f634de6f82c99e1fa433296571bba2ec67d18e15457bea93fce3a54840cd23d5be0b241e7292c55f41409a89e3057f22f563066ab4f4aee31f3f985412de83f824c96a30236cc8187d01109c3cd33ab2e18244424784c58612791f9dfcbe63066a8914fd9c0af26119168e9a98c4f570831e63e6fdc5c7758ee7aed6744883570efd4ad64103c6328a69508bb58c75416757601efaa505ca659963e720bf2f26badd76412cd3383ad0f7818aa3aed89ab635927bd846395052161b63d9012c8f263998a3f22196cdd145d41325e7ecf1b50d400c4769985cd4cac760b4da53b91d2828089352aa5d4ae9a051afceb9bb8c22af081a65d6c4d885aa2975ceac6b728d6b37dde4cbfeb6320d96e98cb97c1cc9832615d3c61ab0d8cabc1651af8b7907144bb9b6dba7b962c647bceebb07597eacffd1303208556d34613d67ad084de06578801afae435ee804d2d966a6c2d55a6256ae1ca59d9cfc2a431cf3ddc4aa079d282ec6dc98cd77d3e044cd2b2bb78b42706d36f4cc066f17b4d13a86a2e6de6534392fd80161f4f577dcc87f23f0ff69d291a4c0f8e5f56f965e31c1d1841cf1ba750a30ed1274e7913722e0ce8730ecd0a9d3f71c0b45c9907f35dad99532027642e5ebf7313a9c43cd3768f56518bd46df64d567e82c34374900e9f74d0b33ea5843f409a133aa899f5a6ce4074f94e7d9dd0534e21cdd338029a519d9410de71286670059ed82039e138028609c00dfc363933754befdf9e5057396d5a2b5a2e515ffc61ac25c94488398a6d121f7dcd181584dddd5aef16843383520a8e920e4b75019131959184b195215d31d8a5ce53bd4da2756d086cc7e81ae341266e481d9827edb8cfd2f6f6248bf745ca17c3db2dcdeff1089b50a8ea062745b81494c454595c6fa8c030e304fcd48974247661cb6a9b869d8d6aca92681d959a229bbdebe91a331a2fe7917d64f72dc55950b9f5e6055805e31f85ea6b4ed8cb102617b564a0ac3127ac60a76bb681270128a1a0ec5030717c750167ce83173dacd3e3da27501837cc2730c320bff75cb6a6d6174f29fbac92df9d61a14de6791754345b49398cedb46c9fce9c90877a03c4f3baa6495286e4651b2c3c82fb2eb224b8ed4883598e15b512c92d9312d74ffe169c0760b1417b8b6a7b847381c751ce5a10183ea5e92ab3bdcff355058c35fc2b86973874051d875e1435111db723c03a42c79798467b0973902bc0c86a697e0584bad0f420fa2ac8a37613af0d0fc29bd9689e6d5e82dd3c828d1f7b9b5e1dd42c390fb89c722a114a919aee18a235c492e6d98a4e681fc40dd50fd646b9c63c9cc80ad696bef2148d58ade69a71e23548c7fa262b140180d81a3c38b52f65a846ff2da3d74498f51771f932b5dae908b1710c0f271714399a142716e603d5eeb7e9da5340b42e1628b730cc36317f36044d609b8a7ce8a91a254351323dd5d7b83a451e45370645a6e241607b51a87277662d467940e18029a5c9e06bbf4cf8189373c0c0446d85b2caba01493969e49f568fd887fce130991baed3203d94150b997f9299accded5168fb42e3feaaf4d381e77895b798526380a675f3006de16838d368fa42c3e8105e8bbe4a85de188c5ea7a00b9d1b127e077f78fec713c1c23b2824ca9d28f61955765180858c33d3e410d6bde54bde6979cbfb0fd0ba2936865da9f22d18141695d384b78c5b1900351ec4482c8cc1bdbdb72d8c27b885107b6f814e18b933eced00adb2303b7d11a67b4ae59894bce79a1fd6d44fab7eb417b45783ffdb8a3067132466c4cc4b3807df55515b291f36952b709845a877a31ee8eba127a6f658d8c1cd1cf081e93034f04c6badde75d816c905f03d71533a94de0e6eb8451e8f5896fcff7944d92b398b90b392b229265e82402305e4b8acbd78f24cbf53ca3c5946397f8d58be956d7b90f49dc6a3b11f208ca5f73e43c5ccd382a4a1104a52847f32f4b6b98b8fde5ee40bf563a60c0533ef669ae9a7264c65bff4793800a500d9a841fb10c2cb24673bdade9c28148d43b61b59336b60b81b550b820d22eab9a932637795199d2f41d8982a65fdcc98acb902c8da955c9089cccedd8001b5e42430d37cf0ff5efd2b117a799a394b81106a75ed295f073552bac57c5bef788e13180a725394559136092bba47947c1c3d5429c184ff7aee1eb18d8556ff748453c060a4f7992188674068cfa051fa877ad33d2a9dc9785ce83a9339d4985640d826ad32078832e7d02aa0adc045f52859929b20f964176a74ae00e50733e214a4057bf1bfc50ceea1c00a5762c2ff890d1d6dac90652e488384a3770bb989c526a5d4c242c1b7b33f47ec950cd3cd991e5508ed02b9be0b04c335c2635a4d412f186325bf493cd18dce5809ae0cdc7464d6387c9c9f0eb704bf51ad4a253815a57299b4f8e0c7bb275a1f4c3a76e8b6540170d797f702b8daf38c486880375945bff0cc104488a9e625962ebc2fcba6e732b09887ecf62047c7466aac241da2f70217c6ab5249fbb7437a1501efe8dfa9d238eb5a50d000a79cf86b9d0c7c6059b3b0ee4db2d05b9ce44d2a36890155c75fb322465e6d15520d44a18524e9329663de0b3be87a8104a47c686ba655912c9adc7ec8515de094758ef566d3333d108292a53052317eca5c2d0230a45219c95a7a75d155e3d4f6cbf013b3a69e78387f7b90ce375836bbbee0e00b761fd3f98e19d683c8118910e22ea06900b1870431d17dacd54d2ee7a8a7823fc96d66bd00d8dee704d8b66afed8154eb8647def347a46a8b6ab00522431ec84e47eac4d4921440d26d602b7ba49553a2a98378a4d890fdb2a42cc6ff82b587ceb659a51993f78124994822881e0a00574a24807c009067220af9533ba1547728a3b07536aaa2732802924938324cb9c3fe0ef3f4fc79832b442fbc1b9556877dff4f0c0ff250d3d14ea2a9d7096db9086c00bc51b70080997094ee410f23edc601f42144ca73172ce29b1ff657bb14a9a1da3ef4538adad59c087eaf512a60b581ea0b5ebd8ab4db25952e6663368083e9afbb3ae0fc29b297a1e84477451f39f728d42cfdd9fe3941fa963ec9c76d481ad289ee41551f77338c91d0995be44941e0f48f2fa48f252380bce111db40f4566a7d2900b2c26873bf93d6f9c6f96e42216cca4e6c40314891caa54053f9b174d4d60d851ec835486d9620ad8c2ef78f7b9f16ae292d190ab9b05ba2a9fc35a2b17dbace6585d3a3e81ff6d08c98cadd42c34605f8d0c0848faa71af3ff1024d6f6c5ff5fd70c41c377deffa76982576ac3151541ccd1be8c7106b77b8187d0466c312500bcabc1ededabd92576e2ba2708070a6c94fbdf0e88988894de79973c123f69b35a6a91dd6854f50471479162de34e5711b698639b43e0a783085f10de7b8b3269951960d9b62463d6fc18cc42a172450898a0032d7e1de9c25d92ccc08054fcf49b2c3887a5e1dad0ea1de57bf9aa88b2741e0278b73c0005780b74117c34fc2821de75b66439cfad2447dd824716a302667665e08e237fda7dc16491045fd32f37fdf3a0ad27b747727f8dee2eb130c0101f5f2b5aaea18c42e2b4b2dda94b6120821128245521f511a68b06744a64d6d973d4f2dbd69f21dd364bc890d11f009d97101273f773f1d157b1582430d631ef0015e6066968e8c1eb30a90e03438124695b64ec5e4dd259b20af03080f1b6b82c38563e1f0302ce0dc94332ad4f040919d74e2622f85d898db3bd16e22fdefa924fbf1d2bdbf3cb755506d0b172869bc7c831ad1b89bd512e59a23118202890bedd0925511976d4cf635f10b64e15592adbb10316e1101318cce7d9475522c53efcb557a7f8aab27c19318e1df624c332f4d9acc684516d92bee8a38e034ad0ac41ff84c597015938d47febf2245a013e1f77c41b47a9e320ff10600c23c66f346a0ff38910c0d8988f9d2086fa0b586be2d323c08ba3d90ddeefe8b6d90791825f3aa56b804a18ea7fca82de958c61ceaa61afda38348c55c501c6acb44697cfefa8d5acdca6571a8844e3bc1c9f694922ca23a7e004e4b60e897ab35718419b44f521dcfefe247e6f10bd6383454d4cf64fb95d548b828e483b82892c38c9c12039689fbe3699cbb0c545ce90d62ab792c7d16c258b893fce3b86e1fe3edaa41fe8338ef63aaa13f7263c8c8f44c440b9554f41046462c7cc488c99773dd6bb1974c8d46c64c29387b960cf07ad022dcb2b66b32ade9a3a87837d3c3b6515efb9af1698000715c03b87be8c05fc2ca6b68b02808497868ddd491e1bb4e39e4bdb7ad65710aafc167d7b5d8b4ff3a0ec9de80d656cf5fa9c27fc22f2dea93a08fd786ec50d6709137d15e46eb312338e8fbf180a901d4f86727c5ea7890f8ecc632bf95af7553bd4c097d0026fb283a531bc1b3d0c7bf8d31c2f6d62d9f16fb88d8fbd17985e68b67e753fcc42793ad3a89fb0b8fef6a4a6fbd000358b501e62c4edfc04efac512fd153f8ff06b344139b6e003d9d06f5de52ea7325631568a21634880f2fa150d0d2810cd316d836fe6ba8a323895bd788f1370efe3062c6a4d4631dd5b50303002595db7bab8a90633f8155547ad0012289a4733208bcd0342b9291dc81d11e53cd3a232433b8215c7dfe3f9ac533f284325ee13a3cc0caceb25f1c033046c93967696232ef9adbc81fc5ebfd5c1a9d13c5cadb57ab430e7da248066de804373a7e1d9a448d8821d39e9b6d237487b83e336e40d6d74159282c1676dd096f762cf1eadfd8cc4adb8778ac7edf68b9b0f2c606daebd3cac82bf8a635d4daa968ef9e0612a36697f33e01642e0bd843d489dd791b62d252cb7be04b0efb9265b565d172533fa9200cea6e20022810de1e2c51455094d5d1e1b6563630be0735f4dfbad82b677c066a36c073a74305001314ad8478261c6d6b088a86fc93cc683eb7bba9447af076abde590f9dc707de803b4b7fedf89b13fa86f0e5b26777dae955ea13937fc7e44585a94ca8b17b4ffc8cd2e185669407c95b6b5ab41c60d1aeaffee86914d521c78d1c3678412926d5c92fd0211081e72355d3aebdd7b70d2f98a1bac383cb9c28316154e11184f5f46149fe1c1978d9f63f2fc3c85cf4117bb016660889fad71542a5c8750eae01d7d9c8f4112ea049d778847f0a0aeef79e887f1f6fc80f778f84805078206783e38ef47a38985e02e09bd2c9f1a0edd4e369db0289ae9c1631f1e980f08b8e9c78dbf3e600ef6e80b026e815d08e42754f1602fd1c7a12ca14046a0bce7724d324bc0c6d46e818abfdbb680a327a046f6ed5234c1f406ed9fcea4690e3a4bb2c926c5f00fc818bb9cd3992f5a539967c976ae3e01077f6d6d318c841eaf1ce98577655dbd29cb516f08f24475b3dd9cf72519d41113ce296ba3791ef77072ed4a55571db30c6185a83e9dba4c34749d737f728482b86bdbcd4a5c53d8c6fcd07eb033bf952a24637a185fdc0cb5073b31b56e1322e8b54aac11f973c947555d4143ca97bdd9970d2fc03378aff04a9832d0529880afa13d198ca17af3317f3eac0695b48b1e9aca7b5b30287d90c53429dfbef2e9866523073af009101f0ec37e1b0da2b8cfeb3a75ed29ce0495f4d9523e152571f2820103eace9f34e0a6a18c4dc0571ba1e0c6bc81438c4f346c11e27c3a064cf49259020b6b0e497d2aebe23690b57f969e34dc95561e35c7959be3ab9b401c85380bb334b7b2a21b7fd77dfcede63ca90c7c3449360cc78d8930f47e91feaab51a18725c83921016c02a43a3d843b9ec101ccaca606da84eafd4ae8568a3bfe1bd340e63ab197c9b2cac0e351c5ff0365804076533a5542e62abc2cbaf427d63590c1fe93ff81236d48bedafe24b98e818b6fdb7b66baac18df7a82a88c16c5f26760bc33650420c1dcfa93c4d0c5b11f0c84d454284a2e1f0910855d3f945d6b7e25420846ab70189566cb3cd5585cc23e985a22e91787d2a295aee791704df4f16f98c18d6ba90f818ffbb481b80e4bbe736346a026fc5982a22afeb89ae75869b0f389ae0ce606d97d1f516bfb1b042a970a448b3b33f3dde6363795f7d94fb8f0828d44b764ea5d3462a012a08c3b97e57ba5e1cd2ea51c3b254e3a03aeb0649bb347d072a4d32c6bc3343dfe082e0cf50459aa334d1d148e3fd9508984335607e29f37305257248a599ca1a0a248d55d6b40d1ed67b000ba0d999ae57fa47581c08a087a291a250924f52cce27f8a1915a50ea40a5133ccfcb5d00ed5523c44f26509459f51c5a88672566e8629667063ce7a0a8d649a33fd3406bf9a843ee8d77f61e660b0e80f98bf688f102c3d15b47e0fb93b31107019ae41942bd453763129239c59bd61ca38b65754f77dc8ee31daf48aa60f915bee18f1d108a2a0803114aaa977d14e1fa59ac0f9b7aba4a1e4c61af3493ea2b4cf31937a02178702ba2bedb86e64e0a6842895cca8e6f9367c71a1874ff2f315aef612da6fcd0bbae2a89b76c5aa3afd76a62ce6e441a996790969953d1ffee1b666459d80c0f139d1605758e346a7acf013a3915aaca3649623aa7750ab0c5f0be4ecf8b52fa56f630c8795027646cf4dd27e93a09caf4f113a8746d9fd996cb751cd1c90fd486adf3b926b0bbeda845a3f6644b9170c54ab288d1d6db3bb0383e6de2ea1eb1727b786300db869e69db05999b286d0d2a742c6526a40e3f9c90220d2b68332ab99d1d7cb2e63b505fa6e00eaffc129d87a44887a83db6806910442f9b810c60b8e4168595ac9cc0fb47810922f3d7e3006f6c1cf29fefdd90d51b807114d02b29c1556f32839610dac92cacb2c693a62bf47ceab91dc5489c423c9c85b9425d84076150941692b992b70ac45a8ba74a8eec119989185037685c063cab4f20c82eadbfb57ff1cf6cd1d86a87ce9158405615acc7d6b04932b520cf1da29e7a8f53c9341a1717a312066a522932e07576439b03a210f5a8b1fe5c0a60e35b85c38200879a33be03a49dcea17cb734e0d6674ad7dd035e8728c78345541cf09034075675a0a687eff89d77bffd6ba38b5f63c51da062601bfc1659c21c14619dce6ee2e032ee7e78a96403494956abf0f589d2d3e6c6f573b2594d15e431b79b7f85b2f4cacfe1cafe284030e384887e03a7e275142a4e104db229c4cc99d44c10401d4230549143320e30957ce9a7711933d655ce99c206b9a8c2b782071b02cfe465582b8ae8285d8d5b2d706ff29c8a83674e3e9e6008bdc5c988b3b68c2d448b808a163d9e230672f9a01f9cd7fded254e1f345286db11f35fc821bfab91e49631f74079fd021ecd7c09fe3dc43b2f32cc1915fcd238f68e52b8d28a56461714984d9c1507f147e5e5360f16d532a9cf57cea12d565f52e951cd8fe45f5292759e436e5c17e810a3daf4cb24ea6cf2b51db633116e67d20e91c02d651180eb83afcfa73a0de99a94267eefea275345a9dba86e9a9cfae31b83b06e9a87cebe99c27ff064e1cb592ce8d26c85307152f3b312e503116d84fdad44084b7af7d84bd77962110ee4293662aa067a209d3fa6f5e461e77b25ea19185df75f9fe35f1e1fb66f267fe253860b9d2af7a5a8dfaf4fe32af36a70e9701db5b6931e2d279f3622c83fa120e8a9c271ea836db95b9692300c66c5829179c6e4cc77cc5277bc1f9d85942f3c23a35ef9d8c6384d2bb5a74927dc8215de2a3dcda5eda2e68e18e0f70355cf62412e07771499c7b15f440358f4802758c9673d0d78234fffbf5a80cd7a81d2365ef567395ec2f8b44c84e4e8933a7f5750766b4c339b3eca6276e7b3cac2d9182ece19edcdd2b09ac26d0eb82f7150059d89d98d9a02a8d24cedb71be0fba1efa75994d3925b668a57f1f73818f2af45c6a2f0bcc2bbb462914b0159018be921d8d7e2b3ff8f4dde49302dc7c534060f0f2a880dfb5dadace83fceff65d4741e234df5f8d42fb2b868e862c3d5719caf88debb2c29e417baaeda27762fc41a5e2b3c395a279d338c8ff492dbf590437a4b181d81a41077d414c74819c9f852bba37683725cb90107e5f90ca5e6d5fc6cb3847678aac80c2ab8ff0d9853c52364888127c2a8e86bdb29405d6f0ae3c6a1794cf040b34e07beab878fc0d221f53e697168b64f22b7967cea874a9ab26b9bd05f41a320c858d9e58783e8c4a7b9a78c44c942d0d97ee6c8007279c912ae403b30a6f0ecd21f927000f64085c37aa8c0afa7b1b3ac8deea4529c28ac68b25c938fa097402eea4a96d5d3cbb2dcf2bcb9ebaab83900e0b394ff1a2db67174a582a47a8bbf0848e99bd56012d9f84099aa67e113493ce33b83d2a8c8f5b76f1d9c2c59273b0dfb691603a2a804060b915af97b1e1f8bc7cba72b3bd70104d120f650d17d2ef32bd74c06208bb1881a98b0620b140ab409569214bd578d24eef1fdbfd3cac566dc4d3c5c713789b8ca2c24b944af86a9cc1a8592e613404409450ff32a83af6170a7f26203b140e04b3e4abcea92827b130416338680f4c2c41460c81ee3a56c7dc7178c043e44c034355c48bc19e88ca170ac3a2bffe3a7d076b112a8279538e00ae75f9670d0a8f4b69d398cfe3097a699948c470509fb5bc8a5eb041879ccc718dc4398728598f6d23e75ac950d6ca40777a4fd47052822860351f15aea7f39671ac0eb09555f4349f7df10b406e1df7ebe2830a5f242fafa42aa8b1451cb7cb1dbbac261a1ce44a392aed4e10fcdb4e860028215fd342ca79f72c9c2c4074c787732f3c97108d3dea8290d914dfbb14de122f75c8f8d8b855fd7de51767d1e73f278510f8e17ac9d76b50754a7530a1cfc82c0e5aabcfb44e1282c10cc89801eaf357f9c97b1576b91b218c209e980b4118db6b9f68ab3ab127d7a4c8e14eb81596d314a4da7722b688299d6f2a7309e2cecf0689f6484faec5a21a1a84e68656a26cc099526baffbd83597f84e6adb66c7dabc838f2902849c2ef3aa8a5550700b644b7725005bdc74a0a6060c5020c1df58a07b300c138262af9987d5d7268b3233d92571341f2ca96fe4baaff3b17d17ff3e23cf6ad70a9a54d141b31b2df54dc848d19638265da4ebc4752e28c84a41275d8a5a2ee3018847c9a88b5919ea5c09f512088c488dcea6cbbcfe192c04d61491daacb245177ca8894f5555b302e0230053b5d7dc50f4ba4876dd90ecaa5eb52faf00bc7e96e970e39230b8c3f9a65ef21008b3e64c977aa438754cb705b84447fbdfbf1eefa89bb3057ead53a8abdd54008e7f390aa371d877e29b668ff50dc115ead64b7f7da803556f8cab2a2570f9f73700e38aefb8ca6886e0dfe59ba31021043824d4f97d93e0c8e836b5b6da0437b43a28f6fbcb39dd34377b8ab1e5798996e99ea0496edd0c749c944af0719136c6845b450c79d68060ebe75afb5b7c311e6ae3584a95e7790bec5487f407676fd95609864f00e9ab0f54c0be276a7529cdb3df28fba81ceae7d1a767e3dcea9a3c05d87ed3d7ea0ba2f06cb9c29920df7ce94c4a333e0d15fd1d20b291c5e58d7adeb4ad354648f63fdd149e909f7d5558adf1a4d18d54cf95a0ebc71aa116ccfcc4c9fb2131cdb80b2ff83426a31ec4b82e6792e7c502cd672c1195adaa64532183fd76d6aa45c9642a7b102335319db1544d285967d1f32a96d68516e62957c04f1be8244b830c8f4f976debd707c2a0d36b75ed295eff1f62ed78c2b8e8a9e6a61b46e8ca6f6c4d7b254aa66d075c26ed9ee7310aaae13d82f9ce0e26d103c6de5b2cd67ee66d0361597bdee7a9a3abf4aed43fb913b849ae447de0e28bdd1d8acbeff08e41d11e98430b7d47a56a609356c6a8ad69b42f78c27b57dc6152e907ce846a006c2635d0a1e629f64908863cbcda38af805869d1e23970460790a2bf596e29492bae384cc67a2223d5e3e1b815af04443c9ad3f951d34452f1ab169c89333e80ae7d9405d8faf89f144858b3b2d25e9ea1809921f1f948cc3ed2f25ccf6dabdcb7242daa94a8a334e73639fa335e55080e50ca8f56c98018095b9ea726c8b3bc39adf29e14c0b4af81d70fb4bbbf888920d05a84d7cad1853a6d8f07b9233ba18406b51e8ac2875e11e14006d035c58b99eecd0cb2f6e37165f911fe81246d0fcba45d394b5691bc0b349157a31a6076705b8e978747998676fee8dbf5b951b33cea9550cc0766f515aa05e30c871c4820b6c0beb193bc8948fc748086727811468845b9c464af277145b3a0fea6e75443549287b729a20ddc3ac9235718b5fcef3f04fb1d6ce518a581e8f7cef0715edb5ea18d5c2e91affd224801927ee0f36eb8c748e640ec5e4691c98d9157d99674d1fd12af5fabd9158aa91817fc66075b5437ba5e7a59c22348b1c70f40fd5374abc0115a609e63936936e59eda24ba6e416581060513a1dd25b2dba4ad77e608afd18c1b470a639322c1e36163a66317f5a35fc1855abe6ce08876360a82590ee04e53ee64ecd0843510080df20a519b3a27f599443b5210cdf4ad11fde31c225f8e83a243d7fb2b9cd697ee02786a573ddd96f6ecb29801af8718d407f646cb4d5d886c9918677f6498e7ff3a00708d796410c94f89310ddded41b8ce074a81ab71a1ec04b90c873036440ddf9a579be6dc22c8793350f201b25cb75b7cead4e2af28803f38f7d0e350b088e4eae6a4e451affec0680084915181bae45ac310e86b038cbfc207009bd01ec4c761aafac1b608e30d2c7c7ed1e77fd52410fd5ab73b52a0c5149164a6d79825c34e04d882cd3ca0c43e4a2b07cd049aef947d4c0afa412c1750438009b598ad550f5093cc3d2539315ba93121a02f500918b0b923fbcffde026270ef74e53be04dc6d8721bcf8c5407b0450bd9b0d22a0bb2bf7f2f0545b40f4e38557f75dea24157e86335283f3996abe1b93f8e12b25cf30b28499018051d1fd95157d4bfd0a2186b0e423a0be50b3e64ab890dded129a5a9c14f7d073ec85165eecaf2dbaa020f62d1027863322aeb71cc00af143a60c2f5b830fab70d199efe1424b1dddbf079705182c8f73c1beb6d2e37bd7139aa8310e54e6e2e8b856f5fe517b311223ac51897a20873480769096c140946503c1050f10feb43bbdb0960ab63b6e931d269acd960b660b5d1e3a220298672f26f05e63c04e329e1a9547a5b4ff90a069175bb688083d73422e8224dff06e02d9e718b8f8985b946aa79dea4c02e5a731c56bf5f05017e8bea812f8ca8564197057c0c96cb8540a00a77762a4fafa9b260a0744fa17cb49e06b4840f6fb746c6f814510952abf769497277ef2e7e1673685fca7190dab13846e210270434bb8201829cb8edb2b14cbd3e0c4a31746b6a2bc54b213577d0a93f671e5c0f55071601ce2f2b7d7ad44e26a2a62e077a4cd954a605e38301cb1c88f2b43aead528e4a68f4a3e45bc84d510b879819f86d25d1b6215be3c24da06b8fcd61816ff5dbcfd8613785ff03198d392282e2361b512e9f8106eb22ea588ea14494ee0aa7e85bdf16f2cca9eb60f62a6e22ac3d19cb6630bc31ea5421a73b2e6b7c72ba483d38584e7dd13e360347026a8dbd940cf6aab82227996ceea3096800313f5debb262396172b31b2a23ac171001a5bba04ae5fe66c1e454327240691a2fe35e2072778da37daaa9b140208e1db0d8974b54687383caf7536a19be342244b3f2080d1459f71057b5bb0cfa1a381c10febf81a073ca08ad4df57dcbdd237561e8b667143f2a085c30121ad48746564dd95dfdf5baca3f9ef12f623d91f81fc24f0f17ac3b6ac903ed4fd225767369344b8a3ba834ac5cbe57c6a6164a0122686e5e5f6803eb53b99b49e0d4eda1bbd2897078c6aa2448c8be206e132b90cb25f0baf9e66795e07110c66b48c0f52a763f9a583b3788eae30f1e9fb4e9000b51471518430af46878e484f6c4b3f416f0f87ec8ba231268819b030e76eee55ae58d3b1caa129c2f8b7a3f78c149ed1f050fad9bb8afa2aa9461ead513fd1bf691ce1235fcae3a4c1a09967dd905130e89acdbbec96e8c84d9c02357ec52bcefe4c234288fd13035414717e28fde4c58ca702a3c54846fb00695c570fe99113e30cc7e54cdc7428e43ee1aba7505ab97e54b7313b39fca2346ef41a865a61d2126bbd14442529e9bf020c653102625cc36514241a0817c7fbcc00c11490aa5553362f31ee7bf26efd38d6a390669579bff44326eae4d4d90af487352fa85c31e8c7af5b47e5ce53e10d2daaf3a20d0cd2db2e7b96f4562fa7f270c724a700f55603ee0d8a5474674572453f9493e19f930818629ffa11f387dcd4b4085a3b47a3d5abb9e408e3465b2a9e047c245e8959605300661109a321afcb3e87200d220a4c9abf864d850e7609c11119a481d0b4086a398190c5dac94c9923e60803dd9d809648ec55f3029978c120980f38d4a3e53ee0301a3f88eef31415e5aac81b021fa3b57409246b844b0cfae549dcb72d5b16f28d2344b52ee35d0cec8f3709678b71440bb33db600c2b925ed50e311200f0b6c20c8b6cc3e8f9e22a1ef16e4e3c9b8075500295b684a0c6964a0c37d851e26e8e4f3e1a37debf81186ecfdf7687c38e9f4258eed6028b993e2cf9b158c14387f602c02aa6354b02de422d597c16f5c0157bc29722575808ed7c83c7b2171a7183599e0aa9fdfb9eca7ee83ca977e63e14f7d1417c6761670ffe568d5f3e8028011442be018742dfc07312fd227351cee2315644a80b86fb94b0d1c25b03a6312377a7bf064d036d2e3c320e80b7b1a67507118c5cd050b3383120d7a0c119b491852e36558794e2c2a1019a210fd5ad22b801e0d82637b22dd92fd38c378f9d7abd364e0ed5f9c36ad26ffe616bf38ab030917575327b1c78b7428a0b197283104126fe219f8041814a204a721444b6d3cd769423d358076fc801ed405550a602f2eb114262ae9d0a26ba143879ac361d94bc2001919c3cd59ab525dbd00360495f2bb01cfdd74c7a0634edd4e82a0eb5e81300352dc07d514f1c078066cd639daf605dd08a6951201c1a8129885740fe90d4f21efdba4c3d96205a4b47d555fcbe88348cdc99a6ae015241cf292acb9f54cdc54885ec4a43ace0d3784e4594114410ef946f402cf08bf16e303ddc7c905e335a37a8359389232bae37dae733b37e2284df96949177f87e3ab237ff7164aae8218eca58715c2aa64d67ef8d612ce27f793c2f3023b9cef8326d2bf2169c7cf1d82e1aa636b76cdd679e9431cfb1ee8b1499d3aca3fa87faa3ec9b187245753f1078dd4a82444e261724d949bb34b1e0d928bd1257f2c972d0993d00153ba0846411cf1a910b2a84820dc2d8b998e3ce2f9d9791d0261d4d584e8a4653a78e4a2ae366d03f3f109f6fb86ee2ee12058a4386a227ccae8771d5787a93ea78706de19030251d72241a48d64fa64b2ec6401f0b766c9d7fe4125cd7ab8a5f35a95cfc8bb38793c1a60ac123c7c7682266a66bed81f08e621af9c364ef20fd3e888e7a48998bac4a3a827c4e883eb52a6ae2af047e9f306da6967107512c002a48cab250aeb375487d977128b790185c1b99e7b7ec5ef7de153c2e242838039e6efdc5d962d962055cd187ddf74c36cd22a032029170b161b57488e07028827293e8055c0612f72a3f2c623c6e58ee6068431e4104a6ff336062e3e592f7e226110764712a01d110f53e2de85d856dc5af21e6bbf80f863f5b3c737beeeb80ea8be69cb706063e922ea48e90b8b81a829ef7b767684d32da1a53b3cd918d76fb4eb85eedc53690039810435371a244409f3e47bdcc2252acd67c8ac971bef26038174586e82b4faabf01df433813365924e459e11bc3a35cb088d933109d4d5f1013124581315979ff53a16b4be478090fe10864245b1f6848c84da341350739bb2e79bdfb2dd7a104f0ffd54f21605cb05f28c9f0519f4ac28598839a990f6e3c8e076bbfe976a3053a5575f4764c16e39aaf8428c8aab41f6a004c9a85afd62dc944226af4a9e0b476cfc305420d74e40c81cb2aef03570bceededeacd421bd4a70515459413c3d3369fc5906b880b41e469fda42f0311efb5438424761c4ed2230f6518e6b9df91b31afca05b1ee2c0b7642f5a0d70975b4b962303bf476d9bc75e886267c3ca8c60d20831e85f05f904ca08b93a27a52e09def31f2dcf18f1ac32d2b7640f207d6284073f2e3d4f8d29144bd2292652c3bcc74cc3ca47cc5e4b26535ba0e807fee6e6e844d0ad1d25b010567c2de8401d460e32ae800d568a5ef5c4a04bf3c907d2b578877b11d5f97e157d435f2096e0e5ad69fb4eb272d68559c472540dbbd3ef0f184ce476a182097800709c8ffc6fbb4cb3c7c185507fa18f97da77811e26ed97ff4dcfef995af5eca676ebe4cc7726fad973d468fefa94b4ef459ce3b1433c576e492e00853f8c8f4f0691b2343cdf35540a510334021e7480831b20e1a377c1c2ba7a16bed0fa3ecec51515bbcfa7c1206efab0e5c94a84922eabc892b383b9b52ffb58f2a2025d1eddabd80b086536603e7adfe1dbdcd2ea1dac86d32b18507a573e010b643ee0830879a50836d8f03b8825fcfa0ca4936a30e4dabce21e0402325f0f96bae344f08d8d5cfbb6b29d54d4b67d2b20e745e5a13789c776e205c23b6d2649a43bddf671668a4916e755b9c0d2ec64c42874a9d373d6477e833f19ba701f4570565595eda243da52b1950aa787a97002bc4e0f4990b61838ff01ef86a89406667a5a9bcf9f920543718df9fedf80aae665cc1121220a31ea1cec8e0126abf1134abee13c0b713c859fc1cea1f8723138537a3b740e7a525b278a4b4ff8f7cf55a371e3b0517a58d42b1bc0686ae5ac4643a7d85ec587de7c1c52f1122e57d1aaa71b22194672932a245adf39ab78925a9ca5a2bc274c8d25d06ba5037a29f73cdc5df9fc0530b51018d4fd29e72ee9b5a4e71d587a4be948e19ca1058d3bc1ef771f264b2909ca49045fd3fc0d985330c57c8e898d1192006910536624dd48eebcf295f28289e1e1747fdb2b22ac2e0b797b41698e1256ca7d9eb1a2abc2cab16ea1fc82e00f0e018ac8c8ff2ae4291fa306db6162b067882a8abf929292ef90cf3c1d5df02680b67b5546c7682518b5f82a430723e57110762b3454d885b7d86802850cc532381af2a86f4ef2697a6810c9f13b54a324f32449ed0b22924277bbd9384933df5b9df5051646f678d5546d1cf2f7cdccfb6720a98afe293405d9e77494e4c04645757a009286ea9e1ddf1b49f913d03d89bf0170950b2b137a22f24d59d9c627aad19cf108ffdb749f5cab44a78d71addc455ca7f27a8931d40c268e88e8acd8672693db89e9d9e72a7c220981bf442496d1d3216ff714e68bf79d251e31be1604fe076ef20149e3491c29c183155db4d111902749633fccbde3b451ba950604a4fb38b1924df296e3a7ef597a8806ad79236ff50c73a83e8cfeaae7d7ab74385cc0485df05dc1f17d07af027320df82ff2ef79f53b98f425d4a17a64361b262c2c33ae01321bff8b44a205655a32dca3eace48053e0aa8981e871dcb413747b28cfc740fe16bf65c8ff2ae4484bc2ff3b83ea780328a983be1ee19e83fd9785a641a9719b2205aadab54a44d6da57c4e6cc12a10d0c0438ea0231f7e2d36138aae18ce55e010ed131b912bd62961a81067b12621c7b2762ee3906ab03c8fefbe83da0d6bbb23bad4f67bf7187390937d99bad1ecaa88146ad97308e01ef4708279593342db000ed3ad7cc6bb1080b921645ad9848966423e56c457b08a0f7551ae7a2bf8e058c152e5b2b37dcc6b3b9a63091af4da3c408aee5b19dfdaae3e4920ac3cd253520904059e46fd8cab9ba51b59faea4fe29c6e25165d1a69efd6c4fd41e86070684e8cf9b2bdcda2bcf59de9e7390b9e02c70cdf801f979654bd300c72439f2c0a5c1d1a34b30c4a6691ef209905e9c005db380be2b3cc9764206eef65b0ea46d5011d83f0ecee4e88bd6a750121e63d7230cecb917b4b58693557e079d0a25bf528f30db753bb2b58f2423613e5f9d8c46a5a95e0c836cfadc4b0f16a35ea0490b90a89eeb00c1740a8005e7330155a53037a67f7b0de41377fa6bacbd60ec07c0f955f74a24915159384d4144c460a57a1809fe1661ff54f4675708bc9c04495255d377a6c760b1b1ea176fcaa5574454364885f8320d17a7cff1dec0dca0a37faa2bf642bce9c7d0212a171fcb2db1ea7a023886369f6a25da84639e84c19e7b82b85a01a6dee90ff38c80945a352b0e4ca75119c11418a68eda3f6d0781ebbb6c91a62d1f34139626fa4a0e63124fc546f5d34e62daa191a79304889dd7b3354d145822f606d1031c6fca142d603a5230b99d26bc34afbe98e21c364bcc9c7d39066655af2c44327a81b9ef26cb0a4c659b880a3cbb659e13fa1c8164a3a373681eee040490cb00fd3a1735e56e87bd0d686eac6827d962e558a9c16b28081c12a5352c53d3cdcf5442d4b01faa381a7fd401a7619de65141f0e16750540849a6a13dc3d155a6d2331c94511e0d07ace054d8388f0149c75e628153269a01402c4f34204e4ad337f41c195270bdd086e7774c37f0f2f91cf1400cf0c72de5b37be53134e631c34bad7ae6c377deb58949ede498b6babcaceb751553ad98f4725c8332777a19cbcad47c6c18d2f216259be39871be5a994036f125b2f0eb123fa9ce56c7b665fc028f940eaf5e5a88544f912fb58189fca52ef4b2722a68b0ce88b45fee6441c4a344e98349595166a07cbe29ec8f13c8c831135e704c359a3d307f79ec84061fdee6704f24bbd50cb0aafc1f2f1ea6c7d3edcef10482bbdfaa0ef4eebf659aff6097155559bc7166b39e058687b186bb392484a51ae7dd990d196f96319b7220ca96e28afbcc2925617815fca8aa62970c73eae1ce62d687a2ae303c77b4de4a8ee54695af02f072c5048b49b685acd24835ac02f54017240e6cbb80ec3e1144561ccb095849a9323922a31ab29a41036bf046b98ffd8d6058a040ae49d896cf7436b034de0bdfd013628d026b08ca8fa22ca7041cc8f9e6d931158346db85a39188da08ab3ab50e34cc86eb393d615f0621cc3c45bd01c2d2f620c21c9fa2f2b5ffba63552862ae260cdc2c5e9d420f07ac4efd7b99b53807589db506d3ba770aa46d0430620ac969cbbbf53d1ad52a9f4dbf6c5eabcdcacf659e88298996441f28804110a72792d226930e607a0c161ff6dc13839f18466e51e62faa600fbe5bc192b1a37788f987a640c5816b4c213cdbd8bafadba340a502353cddee611684831f4133f451f764daa58b22272947b80d4d51e1e32b59258dbb13cf95cf890a486d9c8a8eea1b0ffe923b7213ee70d660c4c763bd84df480ef022279d28a4e4f839cb1145fda5b43722138ae98d92fb1b78d4137f99fcca6fd8394743c874b32a5e995752f60bc147e468cd3221c4523fd7e918c68e705ec3764582dddb47b34feca1b767856f51a2c2d0f18a2290a6da796f8ac425cab3d83f9ef78be25207e402a5f608363ae7c3a7fe233d85c88458a16e1553783ff257fa05de590c2407b0aa8e651a5ee8804f67510bc68505253a7a3304a616a52ad5eba641b62a00ccd7cf74ea16805ccf94ea236747bcfae9d00c82215fe90deadfc15f4266d4175ff43e84b25ce834482902d43f5174a79b7325b250cc932051a75d959d6966d186705b240ee05df503e5a1d5549dbd05719236719b24681b95d5a595693fdd6ea3d93cc5b949de511d9621fcb86e67a91db5483edda6d821f1f3c08fc5757a1d75db70c210dea47948ee428857a7db3ae2c3a12e8007f11fc411521dcfc2dd70a5844b8ffe15b4c7a446977eb7c28dea38d37653148c2e4eb9791239bffc51fcc332b6d6c3284795b9f17c24b2672ad4a3c4f806a78379640b9da08bf841e88f3f2888f1d1e8c21fb9df48033bd219c8c9728a2eac73bbc776b2f9c0b4a173f549ecdab40ec1b62f9828273418f3a303ce1d8cf3dd4a9e2659625127c51b8841c526849a5059f2ab69d2e39978b73db2405fc15f7b5cdae128cbc88d8dc641ea737684f8e528709b8a0d29b3c9af8e6aa4bf691e1aec36b6883c245fcb9fc4b1dbef31427ece9fe0544b4b01c8060d16f701079f1a327e7329478dacb6cc79284ad518ec4b2a17a733615cd9247df12895095d1fccdd3c60141173a625265c7e1a49c40a2c3ddb9bdc00831103b4155a52659813c6b9e7f7514efad8c0825ba51809c4792a5a3ef9ae3bd1d735c22467b463666efac594812e132e804898074e676b3b5871ef2656fe79c8a0dd0ae9ba344c791792612ae9f5e7f0769c792cbc15b310ac3457c62c51ac733b84adef0d4e07a7cbcb35ee595d027771679f3ee486768ecc98f59655b9e42add93c5fc878deacdd98618e7eecb93507b761ccaaa4f848de1816b451b2143a3e50bd1ef3600ae231eada2b665b0a50c956329c28bb16a7b9b0cefaa4628c53c0dc00380ac1175271e1beb01af60e42274903dabcab43aec535ce06733899ff211d0637fd0b8ef96cea3c76571b1e4792f5fbf63f4806defc473e906ce325d608c2f0057507d11917d0c65fc6df4738a996b4c33d9d5488ef734c092c3cc06730febd9475af5753b7417643320ebfc2d8d28050db88a5e04a26b0f0908fd9027a87d173711526ab48a9861242d4eabc21d0506afb45d1519ed439366eba1c3028229acf2f341ca5088d276ecebcaafdd10b81dcb10dbdbe7470b9358b26349f74c7e2cec2e98d974161e926748d90edbb16ada569851b6f806121afcee38ea33c123de3c2abe699ffadc410cc3dd796e53b88bda7124fd824a08004b9c6c84a862231bda0e039335e3d6d5736271a9d09b7ede9636ff4a59335e3e425681253a0f5e7577a23bc8e0ff4bf38d3e2456baeff59c6a7c30d3cdf09aaf3bba992d7acb25fab355f3506233dcc10aae997f629fa5dcd58a11deb613cac0d484b8575984b54deb12557dccbfad1ccff4f8b4ae1a2e920ec0c506c17af3728dbb138679ba7305be9231642325ad27a443b572d452f3b4200a4f73b993340695a74db67deeef2ae838844e73ab7bb9857b565cc906ee957025d9f381671e205fa6503540fec54a1a2d6a310e1333e3734a8686d9b0e379cfc1951a98006e0a883b526fcd4c0ced31b33bac77f539e32be22ae1aeff3f26c098f723b47fef4875c8ea9dbdbade79a814131edd78bd763995ccb89b4d4b290c16c48d04120867441179e1887d0d66aa1702840ebd86c7f10880784727c058938ba8fe9630d1bbaea290ad78dc3097d3c618131df3c0b7c5274c58c2f6ca595510bdacd459e5a1a3fb2f81ade7e8649b46942a1fca2f190a162f6f47ac0f4cb5da2bd6039619e2d5d58c02408923357d209706dc901a1dca9f679ab10976f594a57177c8b2460e3bc2730155c9580bf622f5eb48b13dd1aca124e3f6166e2bf701dc43b3710bbfdead6b4596f8edfd07c7fdf0c387b4cfbb7e24983cedae27954f3fa899ece3be8cd38500f4715705f5ee59b2333e82eb59a6efab51ba561b13693d8820cc1241c34fecc78e2d9dcf1fb7c8bc8ab1bc841d061729866812b394b8d820f5556c3c3f415dd5cd4056f971b4fabef98fe36428122447f45eb3b73c4e283a57180f951a4b3570fdea1e067c08a5b00f627c2e202d84d8dd65db5ad8fda5668f444ab3cf3643b33f1195f682b5804177cba78a569e8601b6dbd17b0a306b9416bc52ed11afe882536d4260ce75fc4d88c0eb5f552522b4909ac3015253a016fbdd2b8969b21a50a724610e2d4cfd632aa7c3a1315c69a8c899830653f012c11d990c5ccc890a8153675a7245538d02a01eed0010c9bf86d4dde15eaa34052e813dcf875770b3a9b614dd91b1b3036bfae2a56b79a98d1c0899fa03b460df5ed6573bba9ce4338306d05a2ec3b08e5943da2d72ccda16c4b8c2d8d9c5ec514da28996b8096efa7174f9bc1e8f8713283dc46967f4286feea7e2e967214fd90959a0ff350bbcfe924fad8702857fc1b920119e9524df53b80605ef73bf226408cd2ffaf2ab9f627db9e1bdc7f6da2c264e4d3e2c2ac6c6e3e46d1c47bed00567e494ae4379e44af5ed88f342a3a7109d13872cc556642cd0d2a52fe1406107c0f52886927e2fd60519e7d08f2e17d73b3a98bc7a97bf916f05967ed549bc04470e0105938462c58fbffab42010b8739c6a4809a44b67864c79096411503b045878c5a9c45d08cc001d43ea4426f3931d0a4b14b1a531296091f07e6c20468bf9ab8b1349a0adfbe855cfc3103c73671ebd044746ba3586064b63d0d72b86fe2f96baa0f1181c727ed4512a3f4a6dfb063751d45d700d0a295b0408cb13f26dc6140d0c110b6fb3d29ba46a1220ee8c965405e836dc9644aace019e93f29a3ce32c2889c8b6a7651ad0f605d97e387f657910e5c7523a13d4d04aff718f7d244b8ed30fb54f4729228fb7a5ae0fb73e5e83eb7da1600b84117078671f706cae13d0788cf4fdffab10d31b0acf3f5cf53314590c089273727a3caf9c14e3088beef5d8d53d1e28e1cd22592caa1661c2ca0814a2279a78f395cd49eee71fca41b0933c1308c985389187bb4ae83de22e6802c337a9e8e3f83820e22fc745a409ec9544736b0527c707fd6149f3adcead32df6c4901faa1e997a2cfa41b9a5e29ba0c7443d32f4597492f34fd52a1cfb8473403f906c5191c460f83940a96799be87278e3f437421f0e230b17ca3beb2fb1df706bc1415cbe2dc50a616c9cdf90a86c5aa3df700d8c53f7e87ef2c100ebf733d36d889a7d9a5e48bc7def45a8992326977fb46848c55c904aa06e18d5e927fee90e348951a0a382fe3757cf810abd04eddb4537d2f577fca8ae5afc20e6391a0fbf1a80a7e6da0a3278a8186e85ad6a5ce99e5bd4ba4af3df19cbadb086c1ff9a6afe86e5466825164d2c45dd038f0dcc5424ecd2eb393642e4c87a82546d85d971421b136ba5986826a24515f7d9b5ee66be4c0e09d6c84e76b59e7013a647dcb93586901663b3737db222a9f9e80354c5bc4835e3a093e5fd9cb9d622b7a88fc90d16c6bbadc9ecadbe70b019024615534a7285ce26f98609fd63c6174663da8cae49f80b66839093e174b8062ea5d754070591c10316e083c6d3418dc256e64373460865e98ff13df792ee5b8b9b26127b1c0742163bfc41dba1bb8a2755df45920cec6e442106e312a03cf63aa1bee9ca8a0dfe4c4b24de5de0e08b83aecd34c455e8481c406c9ab9067904e3c29f42dbcae9c56e5c022a8f8d6eeac684c04f467572d735cf954f4af83def5393708e34dd9b4bceeeeaca638f3f79e47574993283cd0d9088358e03288b1de7d4647287d3bc50191587acf4d6e24628621e67057e925229d92a8bc45e1264be906cb9c6cbe6ccbd158d8aa5c45fc903a434f990964f774e948aeddd1dc4c8789ce9c6a5c9d3b7bb0040262ec6576a7323b9188d4320e5b1d16518e638ad1c796ec730050f9106849fa959b679a5e67c85e415fbc09b29dcc12653696237542053f7264d6212ed947f66277546f7aae47f0f47b710fdb905fe71bffd7d9454d6a5537e278c81619bfd5079aae573adc50e86a6f9e1a21ba7bf16feee074ee904b83d5c2466f31c6fb500dc8235e8dac94f2e47c5d650bdfa56ce59de33743b422cef7b302447836a0a76a83fd9b460708b9e2c9d30f7a0b9c6ef0760e1ae8d0597778fd6ad48a74161900f62b75b181404f7ade13d70bc0561ad6787065aa13da3db51d0048fbe4ffa026736c1589b8029b5e54362a2f37ab9acdb5e866be812861a62daa4370741b1091b07b229e9fffa75db9e66fc2b5c234cc97138b00f6fd6f78a9bc6ddfa16f063cd2d1551212a03fa4edc87419c0c8b5abf837fe623b876addb34a3b0d592b9beec9a7e00b7b46f01a004099f99af656f5731a8c16f65dd3d132459fc578b293637ba80525c9c9f54e050038bed4f2927317c25cf874c425e4a8b61ec0ae1b92419e68a21ee6e9b9058ba2ca5081102c8f37b94230ba9fd2ba1a33e308ec8c725049e4e402188ef37e485d099a56f698a082f05119ea5ff662fb123507de514ec87913ce8d970ec9fc2cfbef6be274a8a58ab0e7e2377ae148edfd162448a429b628107c5e31175e5349c84a986133ac1493d13908f3ca07f0a4ce16e6de564c20ca80f18001add244781598966bdcba2ee1c248091ebab2c45fade1dff388f64524dc2174835a266beeaa7f793b1e10304b5504ba237363c13335078678e2f58e8ced1a98be091699a4b14b6c56d2a8812a86245ce76460a3e5afa8c82dd0dc2490cc5345cf236a47234643664d8d9848aa05f26d8eb192cc5d0a1d8d1cc2a71ba92001c1f843fdf1d01b51a3184c7ff3821f288e0131c8589483cdd9bbd46852091e0a8150a5fbf701fc61acd42df6af14b992aefb051a42c69738c655c58b57a85c20ad07cab86f4a873401926cb404e3387a2e3b9815b0ee54ec0bd93a5d42dc81406d5ccdb01404003a56c9cc1e69d93546973a501896ae87f99d43c4d5d6f7895503875aedd4ea9d03d4a63c3a315f0407b82d56446ebc7c997cfdfa2a49c965492015221279e0ae201e1926b9c9b316ed04e69a32b0cddd00225d18f2445303abb9d02a022f049d9a9e025ef17c3aa144bfb0db06b912fe59c0a61eab86062fdcb5fdb1a43065c5c6e8a683adc633b0a7d475c8582b66c36a1362b28909f48d25df918a2e891901be68a37ccbc6b6e16db6839019656306b76b1c975d8b666906f7c5b06a5e70576a072b2b2bb3cb103878f6600f866a24990a77814165bfc58cc674c333a0980311393068c092dd274902b8cf5cc56837a61fa429fc5468afbf7dd22959299171c15c60c7e5624867ecfd069104479f909da66d3723f3f1522da396ec0446a455ef1d32015c83c4736e64f0ac74fc34235dca8d3a507b481ea46c48f15feb61a9567a6418ad65dee585d74247dd9f0f511cb07aebdf7042b3a3b8a66fb7eca17bc826dc4e3dca3201f044c7dc0767bcf2b158c859546ef6eb79961fcbfb8217123a982dcd634eb084af047d83385d9d036f707dca3d15fb449dc0022ab40aba114126699d02548b5e19c76902304462a6c675d30907aaf1dc5338488490a523ce9810be3e262f9cd6ef86b6c0b52c86506dd5da822822401bc1265f48c988c23e08a20c6567725c38f62ddabf91243bf0b92894010d2eb5da3bb15b4109ac12402952909684f3b4eda7f54903857f3aa7444841f495ed0662062efbeceeea5127547aabf486c59b185aa971eb4073e2c314eb128bdd744ee8be2eddb4a8f47c184e4eb365efdb16f75a9a045d192fb06906f6e3e1b01d37c0bb721bac9fe09114121d2098c093b210d452845bef466e76bac792bcedaad786bceda58f7d69c55b7f6d65c5620485a2641c20f1e927e21bb8f40357c38b3225bc3bc4f1c2789822a18d8a036d57be47d9d1563c55b75d66ec55b7756c68ab7e2acddbab7eaac1a6b6fcd59712b4fadaad7f04a1341700cf32d2ec154e831dc34d83c5e339addaf9c7a3ff3393adb27b23414037a8fd09d22a5b2e8f732ff281a345838cde605cd508f4752b5829ebf8d9f5abcd858239d6501d629668226addf808fd63245470a0ed01243f4ea885af9ecc0c541a7ecba8a0e27480ba318f8e30860c93bc02e6d05032d871c0cf437e41b56f5d5d119c0bd823e653722138413e044db47c92aca92a56fd4b59fb74a2d86e542bbf90b2d1fd8c213289e0ed5abe0a086fcf44534b41859ef26a0d5b434763d17838e7e761e7c1cc888d4cb8b99b8bc3c0b1443df4a5ddbd99f52e36d23c274d55b8a1b705cfcc7c0303d6e157f33245f2bf17a54d89596eaa1c7af16aa624c9c97f4daf6ac1026721e636e8f691ba2fdc73944835fa61c5ddeffe6f6f887eae49edb8c14b0603060c503b0ad7e6ed2ab673d9ee5dbce47891b81fe1064eec1fb16784ee6b81cdb707241351673e96e511623698ecfe5689fadcb53827db5dd38e97fbbec3d6a4df05390f18174b53cd275afe5baaf75edebe706ae008e4a1d0d846f720fd8bd49329e7043a3266fd19618cd69ca809d8265dc1b84200358e889885c3c1b88fc636c48cfeaec9b7f92743a5523d48cd1a249a3267349193bd9090b86b6a4d459e8a873bb2806cd635bec63682d17562e35f89f0e73ddd9dff2453c684babb68103fb043e34bedf6c31f1e15c8b3fe6fd5b40965e93d40bcc3623c3ff00f62ad44c49af99645f1a41c438055e75c44d0e5720da554d07d997c169be8d986dd3958f17845141f42f062f553fbebe51e6357452c31c0a13f51fda0a4f900a51f500404b808128c97126c36497327e88d096910dca4dfb432a8d988663b3b6ac6d7befbdf7de52a69464420e860e3c0e9e8c4f823a86e8dccd8e4374c0d7eae8bb8239f357aa907e828b3154a59f2a0839043276b7f71ea7e712e1d82f21a591266d583c598fd2affc8a15c2a2524d3d547ee587a84615f4582a0f55966fb13c644dd973ec57aaa947cbaf7c8b65983565cf627ba5e327536623d0aa955fb15c14f3a610e1d82f099bab706c1f9fce91108e1226c570bf3aca18d5246c1ca2e323db1f3276bd5f5a489a7e0678aa87ba9bc062c39c70fb898463bfb8f0c1adf306e1d84284dc4f1e0811727674e9ceb2ee4cdbb452e632e2c0f13574a4c1527a072399d31972f8b0551492e647d27ca6f21e19b8c0d68af988b5a8e3b8a99919e3ac5abd828dc8303a82f4c0daaa8e420fb18355aa9c670f13437c93d90bf0fba9c6943d7401bee1184e0e964c2e6b2569829034fd3958e7f24d1b216ff4ab0089f9f54ada38912282b0f125bc10c74d0d4e8fbe91a80c48716be17081455bab687ba56cb12df6438ce43d32708116fb43eed1282eea0c5cc04fd9bb15ba21aaa6c57efe800f29f28d7e1cf7c1d34460b1bf9f006df7f8a9dd8e5b8d3b364fcde55979e51a2868256ddaf3e810e1b6e33df2d42f813a057ecfc0e51245f884dc78701da853db4b9efa5db625a1d0f672262890a92de6a7fe4d88d0053286c4ed4c65e49e7642b8ef7ea4947bcabd0ffa425a6c9a793f66ff438b2b19c3695e352afb7ab2ccc57be4e9fbecbdaff2ea8716c11c645cfa427e685446eb0fbca29c4b8b1df6144c29af7e08856caf1f8470572a09a3e86e572a19228b3b7a0f8c0e11663ff6aa8bee95a08ed9a2f6cda4c5161af2e87b8fa4e92e64ca73208170e0389d6a7d794949e1865c108e32767f701993316f4a4498c58056de4b6eb3e41b6cb7d816db62316e5ddeb6307471f917451c389c5bde04c8435b6bac196d68b55a357cd3f2949440db92adc56444dda9fb885bc57ee4560e64ea073fc9ec03747ac05a14ead3a9bbd349dd63f20ab018b7f200587f70d945294ec475fa49c3e84f14b305e136f4f2134f98e178a245722f42a745223c3c3c8d1a439e468d3888744af6d04ea37c686868c331aaa29ff8412015a5940afdb454fa47da74ff481bfe941be953ca9be85314f2c673e04b14a1768b277416509d9057a111c2718bb15711fa532242beb28db4b8c57cbc6705e1b8b55eb785b6217ac7fe69428708e7d6da7e36d7160463264ca93701ba91167bc8bb875afe1ab7366e71dca2dcc2b1c9988c4d3be2a036e6ce15f1253cb9fd6ec49ba0d48efc5c8fd7391e3b3349c2044be1f67bed3f5270ded3233c6ec8bdebc6e085303625844d50e96e6e28881b0a1a92365d7043cc40b0fcca03e1f22aef6a957779205654dee5472ed62bdfc3e555569e0716bb6291f4b09dca8a45f2832af184102e834f43de7042f2463fdd522b3f862c2ed3457f142f05ff8778990621f83ae41df2d833e656d64a02ca2cae07b19c465a6c46f9d1d3239a3aca6490bf734d4aa4519e16e617a5ef9f569860481437c7f0e304c36d0253425113ba586ffff263d7929e4ae7f220bed1c1fcd45dc1833a1f494383ee0a3d1d0f6ae0035602cb5c62f67052e086ba295cec4bb80917718c328c5a7f79900765d32937c449a1876fa89d49664ff7923453489a2ee826e9a8d8028a9f2370421c74044e71165ef5214993842cbc0be94af0282441a666cff4d1e2b613b76938c2e51f4e425f1a84a434a0466c94059dcb658cb00bee02634b829c5ac82ee8fca9a30b1434793a1f4fadbc4ac7d36257a445ae0b79eaa70247e4448d8ea7e3d159ad6ac8826612ce825393092637e6106612ce82835a2f45ed74b83124cdea762c9063e0ce0540185deee773df36ba40412eca138ebcbdbf0b73b14601a15da744d2704f3ad50135914e75d4762e16971f1de69a13ccc980801f64bb2cac9557791e5c9e65e57960799715cb3dfc2b55aa5c2cddbefb1f43a4b8d90f8dbe67804fbea7525bd55bf46b529a4dd7b4e2c537999d49f8c6ec9956706a3291c4837c32c129cf82993b18674fa91802e826e04a2a8650c1f5648d50bc06e07a8c14f19829f8cd3a5fae29b208fa8171313ef56f1b4f9f5a6b9ee6f11984438e1a3bd70c9aaf468ddcd05df2d38ab09f2611fa8f9d4bdad040da501f692385b4c978206f3a18dfa8017746905d135dda6c743c39b29bd9d984ce0e96fdc80d0911238344756790282ee613f31b70efa14814f691f65c15b828705390a839c40df536a9c38c784f8b4528a5746a93ba80a44d569435d129d9237713264c8456c230a5e3091dc6b2b2d222c329e56299e963f660be0caccc52b9c80af24678190b92a69f61dce4e12cc03298c35e868ccac3c3d3c160b0d88a49132727ea4edd3b30c772437c476e881b6a14109e534c25928649a726509ffabf3bc3553ce17a5304585ee5796079152b443a0f2ebf6285b878a10a2c76542ab687ee085f84a1922a242a9d8f8aa5eba9a9c18143141df54302753c3208fd75e420e3ba3da2b26d2e2edf4e98d9294592169108935c2bc2b9ea5c784296ceb6892f08fd8e1e5481eb3f2369f88778f9679316dbc4414e046bb1cb02ac0a58807da1c780010000000840e7ea5c2f9753e7625c8cd311623169c24d2794d6e0ca04d0c118262469f872cb064af04c313a1f4c306868c01cfa3402f8983a33181b33d174d262518b3086318c9d701386d122e84ea3464ee8f2704259c7fca5c312e2c9e14bf0a0dad16000a00e1e4943efd8f1d8f0d9d0d1608990a90ab698b49155dcfef9054f2a38c53079ea771943e805f7303625844db82e130af43926dc931517a34784316e28ab1c8c1b9a40f3e5a9e90a031537c8816a7418ec67a48d3f853d285eae13643a8166d074b5c8b06b44384e97c3e4fd81111531cd68ac51a8d78b4abe3102e0f2bba783d23967033a259deb0a303ef5afbccab750c39ac89fbfab5d11e68ea7c5aee769d7d3286ab72d0c5ff294753d2df2b4f857deb1e3e9e1f208cca160c7d329fecbb623eafa0861d7c3032bd2a8229d7a557fa724d4ae546205102ebdb20a25766e6b219b0a5c0446bffaf5126a91612a3066ef86cf00060073b837c001be1a1048ca07d96ef8d335859c9dab06089567792056dee55d07e8e1f22b0f04cbab3c102ebff263073b009863f2efa1f22cdf63c5e436022acff23ca83ccb8b1582a407cbb788ef624dfc52d56285b87441075970a262b14f95784208e21d4930447befe60561dfb1a3d4a9ebf0debd77d30ef0fd7580efeeeedf737db0fa17a5eff72c904a76ec316e4b2c4814477a921d9d48f7d5aec727ec94b881bcd13c5bed78282b44b1d3a783f5f04feae38e83c1bce3e8bb53ffc97e1ae59ee9a0eed45dc727f97e0bf83e30071917fcf92eb08ce9d4d1754fedb7a8fdf6f4756c4fed8ca4d17ec89520a5af435e6a1df643a4cf65157c067f538139a03da2f25c3db2f22b76ba9c67ba78a6023eaece3b578df2e7e97a3a9f8e87157e965d967f5aa43108472ed66dd4bad8eef8e80bc2ed76aed8e5d6125c4ae4151245dfd56d315d9cd11817eb74b8d8744d57ac9f70f6946946999dd6d0005e0207c99407c1201ca76b0e216fb8c52d1b77f455a388481b4d8c4ecd9e2ec89b99846ff47fc1a9cee5a7a642cc173a2bf8d4ef3920a33e65ca833c8b69998907798a1bf22c38c549a1bd334a334ac5187a31e11b4e886f0c798a8bf9490a9ce238f42428e430e784e68b13e2cc1074b998a7e6dcc209b79fbe20d46049f8867f3a2b3a578b6fa615e48d1e4fcd39935c1b779c2e578f9d4d244dbba698af1fbe995ac81b57e04945e9d222c2f96307e3e996901d4f67834e0989e2ba56e98e1d4f773c1bc849e70ee629a7823cf583b175211c03e6b0e9baab169fc4244d77774f972b9baeb944054865ba1ce613c6308631eca4e329d9cdb06658338c612b523312247872664471deb814e9477b2590104160a24ac186051fa84895096e351f96d72518dda7547e049710b501fab5214f9566e6d3a869b526b22634e738cda78870beb771d074cf49f54809a73fe731f5203da9c7d4a3f42ccf6285887eead17db64872bb97143d09e1fcf16b702c09475d970939e12bdfdfc1545a87e83298230412e8fa40798e8a2b105d49c5157c6e5c49c5157eee8bd26f9d26fdb86d2f6510ca522b496735739055a04f14499bcdc5ab4b7bb9bfc6d033bbd99734601d655cb763d705fadfaa75e6dcb62efcd1e374109381631ccb7849d6da8fa38d7320380f9c47db388df39fb39d30f328dea2d6d4541e08951f351f176f71f3815829fda8f9703cac3ce979004d6c23b0f2a49fb687ca97a4b81308dcbe2bdab4227eee6745e121fd479952bb2644ddab1b4a9137ac7c4ba10f652b5cef3b7a8b27cf2cc835aecb8236d139676edbb85783dc3bd73d2d32639ef93cd9966c960a2d044f910e4ecf22c231e608e9b98e5b1876500f1f7051c22861bcb9cb28420ffc91c742b36c2544f9c247f9be2f9c9a4f17c51d82cb59ee8151802e6d08ddcb7140d4bd56aa5475dc844f6e7ac7c5264c4b42941c9b8e046b3a45f00d7e727b076e2b95b68d82deac7d49ce4d7f424a8f62f32784f029326e5b9ce1a5842a05db0eba5021f13cc8a5e8034759967d9ae779deeeee9d79deb3e7bda7c30373285defe79671d47bae7aa3793d0e12fda43da98e2af8023f677a476f959ef43d4a567b9295de43fbe6c97a321ef6e91ce484a727c8e37ae536e092cd7cb85ed98067e3d17c5a6cae8214fba1d09ae01b44b41f90fe096f95de81c0a792751e3fb50b0a2742a98799709fa88244513248b169acc5d67428199ab8ce03295e6103a1972a0533c9132a24935f414141de07969ee5c72c88e42c3ff9787216117a9f97b18af459dd6e773f3ea9b2d4d04ff44b95c539c759530edccfd7c1d9ad7bae763f2bbfc0578b9fd7f545bdbc0f0a49f0a8523091704285c4d963ccacf9644de8e8b8f65c47577b499afe321f12a98b356a6c577737e94b25307b6541419ea2b1cd0b89be10852a05ee85986bdfdb7bebf050ad09ad45ade693fdf6a3e6e33ece721ead664d6c2c2324cd11d5775acc9ce53c7deaf71e9f393d94cb2f339bb51896f96ceedd2b26699eb4b8f28a2c71770f03d96f5e654933bfab5d336a472d1be94f1bbaf01dc3a9b252596a4bf86f739b1685cc011f34618511566350c288129a70f285156a50a42383b7618ba18b5569b17f0c6f86c3534386d0023390e189222044d102181447e0220b434c1185113c07f0c3108eef3a28b14227064aae58824500269860a207448841185640f9fa532b8f8032004028b23222042d88c10b618431c50d969881929d2880397f7178aa035b4082158e70814815422a89852d60b1133b02d00e78a0f25aa0c5184c88428c2655a84a5a5081051443d08145a1eaf79ec00511fa9520f81d44d8ef600ef80ee6706f3342c08e11b703afacc2065eb8267eedc1ee1ae1b769f4a347589856be36d43083394758de9b20f8f36ba80187900bbeeff03b06b99e047718628356105f48c20a245c4c4125fb043ead601de9733fc11cf4bdc771fae3bb47745ec5626bfae4ffd5230ce670efdde03f6a97fe98d9843fa50de9a95ffaf4e9b3b45179fa2d6d4a4fedf8e3fbea0d2dfa73d5862d84df8f36dc9a161dac9b142905df7fa5aa9448754a1afa2935acf451eaa53faa97da1a726cb7c11ddb052d8e46713778daf7d91f5f0e928b1e70d1834be7f59ebe67bf107c17478bdfe5c620974a91db7c1072a98fede9f6dc3bb7fd7bb6fd665568181e61798f45fb1a1a356a4f5d7b6a6b68d13f85156a2f2fb3c7acbdcd2c0e9716f9b20bc2b18616679df9cd8b902b35d7044fce6cdced23578bf27e11e268940d8d9a5f0db70d358dda64dbed8a307eaa70062c3081062a7e174fd13071850a66109bc118c450318f0cbc30d2852b0831a13201169238e2658528584f54fcae243c203aa40e4a6b6891af3d923d4edb6d0b4317174ed2f0cbeadd52362753fc1c97227f7cb9e336561c304fce8ca32f0adf100f3c98070fdf10df50fbb9187cf1c029d009f31bfa5c7cf32de11b313f398153a019be27f787166effb764946530038b715b6ee1ca33783fa44dbb463bdcc88bd09415b9247f20fc1387110e3aaf1aa1a03e243ed6f66dc163d2cc8e8ad022af5111be19b5e8a8086b256982d802df6846a08405c081434d8a6793d6e080836fa87500dfe8e7e138708a872997f0c0e300bef9be2396c8e27e2c4933e774973ed7658670fc866e53d676cb00b6865c497c6e0a7481434814286db24ff205297277d4f2d1c807526cc58c468c04b3b4d5289bda4a5bc1b4a316dfd056c0a9108c5a7c53b33d878ef224a44fc2f91fcb8bf047f86d95eff422ec583297b4793288610b229698026b09aa26e8e08b241cd1c50f112254438a50c5113d60607da14415545d812e9c00c56a0c31a860a2b2f1c205002403180bc19321bc8163d4bafd73ce8cd28c6619a519a5a52284fe5e098cadb4d517fb883e30be31bea2fb91e1e58e1fd11c034bd2489a20248d6684bca17335156848dcfed1861bd421de0acc31c2d13ff89ab1b02f6b3ada4a0c21378f36c2e5974c046b42c81418eb534b1bd0bb231b4131b314217b6108b7dbae3bc1206d522e122b01899292871349a381b1463d2983b4d46e4efc73e24e29cd5c2c67b158f6e325cc32c408c76fc9763f960c8dc847f439617dc1e52970a75f9e02570ef3d427469f8a1af569418afd601117a8f311c15ec6bf28d62292262b22021f2936bb41b603a2ac0929868ce70be1a8adc058a7c2d5185e17232e59fdd1f214780679f28144816490a24fe390e2a9140b0279ea6cd402c3ed7f724744dcfe96e98570cc78584417c90e52157a0a6554a453d288b4e1ef470a4933e291365d08c1e71fb7199acfccd76ab9e3c79a5e84d91d3f56d3e9537bbf9a1d4d70b99f45a1f6e3377424e5bb9467700777c19667271742b0e5a94c0979027da44df7200f240ea46f231a9121e4a9ff05da2a3bf25dce6aab2d84da73effdd442e8d96fa8456dc853df12ce7e4339f4fd967c2f69f339f9b490a84f0b44df122227ae46694055b8aea549be1f69f33991345148d4a705ce26b9fd281917f39be8cfa751fc39e9537fca47040b757eae2bac2823268d1a851a453b808346286d3422640ae55b742d06b79f4e9b69216fa0d8ccd535b82e49938570d456da1297a7466ce9c6695e37ff592ebea56a6abe243e9626c5d57a349e1abee1c137fabf243815829a1430078fa4e1c137190fe48dac063c1f11e94314560a2bcc98c5bc7dc6d9967d441fd1a72d71010535ca5d5ed456d967c79a3b662e1ca28bcb95e1a073d2393357006ad05601d056d38bf0bba3b67a692b6933ba338c10e5991a20499ffab5d5a8f5b09126b424b78bb491cb43c11c303e56a388982e3f8947dacca7a92cabc9b20364994d96dd64d90d5986802cc3c182e090a4116af1c8e8e7a822c941bb591155ca93ddb1ddec1b318b35f049c6edf00e338b9fd2e7a13f7dcce769d4b4bd6d61b892a7e66991d5e20e3fef348a7f8e98c53cf6e31981b18fd5220fab45774138d6f41142256178a59230a4b8de9555280105087221512c83d78ea46156e69a7466ae8c283b40363f10026a79f08d10b83b0fbe015ff295056d216dda0b2f42530eedf27317bc63e6923623b6da8a281c3f96b6e24f06da4a00df68ba4f77143067c53e9dd98788e86634e290e99c948735aaad4209e0f66b2bd6887c448da2bfd2c142e8bac2a4933396a251dddd04f89a8a90ab0f42562b1fdc0c2b1890eb43e263b9bf80cc0280f459d0ddb9ace09eb59af89c1348daf4e59e2ad08cc748a328f8ea130f240a2c8314fb339f26c02792a61f8c7d110299e01760eca6be9d8f458510c8bc314f65401d038a4238668ee227f1a7800e1872d9fe58c2ce0dd2e0ab51429dca60a1bbd38c7a131f18410d0878bdc017df801fd1b7057e65283e85a4c9b49037b6c029c91f91a7322a32d714421c32fa01bea1168c4d30268970c0e351f89cd39d524ac339e7fc2dcbb62c33a2b3aa5f4cd28031bef9c69037be30c031dc7e948f48d280218570cc5c44577e2c6739cb85e5595624dbb6cce5ca5ce3c7ba3edd84d66a946b2b6da5ad3c047c3e3f7477b088afc83bc03775c2e932e2e2eecde73272fbbd08bb3b4a2737e5b3226d249c4b849a1169f3236dec88c5eab93428a25320ac41d80ee8ca9e90a20742b83a4072b31af0a97fd47670fb6f00331e4903b66e77946e08f8a64e880030875f06ca8a342a63128e992b0ae1f8b5eeb7f3f1348a7ef6af46f1f76a5188a638266666a6861a6cb0e1868ff559eea969b1b72184d46641130a3545fad43537e0481beffbbd9191468d3c1a2519fd683f7fc8a10bbea68d8a7411f2057f1c15e919196931013857a58005e4e4e0ec47ad4671738bb05f822d3049a386c271c42a72fb3d1c128073550a5880a67d39a003865ced35fa2091a469c2ead18eb4f976463290a84f06df88753fd67cc2f78470cc5cacbba5b22236e371420864661fcb53bcd3a7223cb2d9472c4f8d6c8330b089b4c980248d15242aab428afd1b08bb4d6de6e2221c9905fa348a8d342ab31950e69a42e1c82c1ebed9f8bb414340e61f0e747e0998f4c3f1eba9a87dae7cf941a04e115981a842429f0892ed3510a85348b6ef075d8d929914389d655913b0f24d40021200266196b4d9e169541169a3b111dfcf48f00de40de516087a1f08da0f04ed38e47a366b92058139648b573638b708658bae4c4a1a20204074703685cd6820698e8c3e73796a645dcc72654c8423b3f84626f1bcffbc470173bccc061d0de48d94373a0b843323d246e3321efa23cacd76206f68663f22275f9118408284281f18e40d6da5ad98b59556048f34222babadf8230259e04ea3e67f441fd147f4c9cfebc091eb6b7e42079e9c19b9e3388e7bf7902debf0bb651e3a357656a3343b7aa869c37b5ba7c80849c3d347b0d8df934411211b91a3691a9d539b73f21326531530cce5a8ec6143a04cc10fae8332dda7bbabc6fbbc22b3874911a00e26ac69397e82b4f991a2519313fdd4efa7f02fcfa94d8d6ab387468d2e1de813fb67ef12bb26a8c5173da64567ed87148c806ff4b3cb53c029b6a2c88a11f00d83216f301486a41788bc2149d345102177471e1a7266e540b9cc625204931d66db813a98ec30d9e971f6d7c184c7ab0e263d74157a11b73a98f4701ec86708e9cfb4d8bfd362119ef66c991451a479ee4ea798d5a7661599d3bd87a7451d4c8a68d4101d4c8a60a2c38435d9ea60520465dd998370c4c162b18aecb438c40db178e8ef778ae3afec96b5a64153d14aa592562a955428a5d413527a3ab31a0219f3e80a0b474ba552cbb370b4542aad6859a665d9e6a91eb808b6525bd55259c555794b556753a9acacd8d1f7b910b2f43d78dfabd4af15ba79bd8fa3f48d72d9346dd3b405882f69bc526d95d723a5575159b1fe435428a31b3e4ecf2ccbc1df7dd64de7324db31bdff08da5c0370ce01b2c852015a863c42c49d3357418c0376c84641520a184eca35946b3ccbfc11d5ad5831052a354a334cbb26c3a6754a359c64300155f51f9d1e5aaa8a8b8644b327b3df0d9aa5493f62c3f4455aa26fa7c536ea35c940bfac8533fc8715cd64385d61ea5d20a8bcfd78307a2340becd7f763be37faa63729f56fdbbce999bc9246a946e9763dcc7eaa20ccdef34f86194948dad06f2e64aa7dda8bdb3f040e429e9a350416dc8e40ab7af0538f6ea9b66a0a11be8f8f8fb6699aa6514ab3eff7cc8552aa6d1a951ecb47bd96d1e3b47377452391c09cd17b5c5b65c4aa96daf2a54a64e559c0aca50a296dcf0014c9628812b2248d11928605d200fd2b52162085f49e07f331083ed76c6bd54a0b4bd6c2d2d2f22e2d2dcf524d2e2c2df4338ecbb8a755e0c0c8a5ef85dfbc2098c3e3fbcceebd9792f6dbd831e817a8ba3e02d43e8da39399523a25dfd0972b2a9f955e55c2a12abd4b8bd90ec7b888011570a952d537cb6896d12c5bd262a9ea6caa1ffcb49234ad02169b7556e05c390849d32bcff22c2b3f44e5ada89858ecf37fe055aaa907cbab3c8b154dfc2b966d045a55fa92ed41f6cb7ffcecdb5acc5e823d601fbee9d56d26a202d6441802c2ed56fb486d6bf185ae04c19c8cc11cee816adb87d9f730b263683b2492f520e107adb59b4b9ea4aa27489ee4c5216fb2e70f65aa5f7e6a02dcac667ca3ffe5290dc8533f185b175e63f4d03edb16862e7674f1d19e528d360fdf64fcdfab22e71bfc1e0d9f5779653ecfb8ab52a58a06d8568116fb657b323b443b5bb461ffe5d98e33ac6cf1f4b3c5937db1234bf0012d2ff32d754cc195b932ef6d0c3e60a43f7bb8a4dfc007f89561f0016310bf2d7604e2cafccb6fe003faca8ce092ecf8f241fccabc0473ccfce856cab0e3902b6365fc0bb8a3af8ce72ac38eec0ff3d38ede4b9dcfe1cbcf3abfab41f8729079f99d109a72e0dbf27c5bdeadf86c4d3b66de7fe6dd8edd85f101f3f63d0677743accbc8579fb1298797be475edc33ca98e2a97f4b48e3f2e753bdf54658bd36b3e26c68edb9d763c3d7d93c9ca3ce9719c546b3cad297faae30f95dbf2325faa25e0dbf20deee8dbf20ce630f3f625b8a3e5ad1d61be85c4974475b880a37c09a75b6c1d61bee5bd963af68df124a823c69e7e56faa54afa96961da52751b963bec754795b6a5fafa3cc7b7faa3e60be9abe05dc215b14bff4b245f119dc21bef812d4a1afc9fa80f919b18e32f687ca85b1f66b3c8e7735b4a3786b3c4a1d6b6e8d4fa9e38f5be33f30e7c5ca9057f7ad0c7fa8dc12f09d799cdeb172671eac9dd056ebc8b7bed76ea8a66abc57a3762f2ec2d1347578b2765c0c7fb2ea8472ba275b84a3bffad6c7f15beb90fbaac1b7468d1a35ac0c7d5e56b905a0c1122b98382245b06ebf89bb2598d7876cd1c8ccbc9b50386e30a16d8b70dc60f2a278a52db63d6994b76a94e9fb39221c0f5016c4b852e84aa02cf45c8fc11cd173ff4922e5409f5f07fd71030d2e4fab8bc5118efef2178ad7a892d5212f0a8a67b22694972b35c8a8fba10c43701d610a5880e1040c2c810923c48a3801c6852684f235823bb508f9e55c02018f0316aa9fab77ab83d09463be5af4180ec21b30b8c3cff0e4f26804777e1bf197f36fdbab97084762bc5ca8bb474015c25cb84117825429f09220410515928ea8e8b68c968c8213551ce10635104308469cc00760c07ad002229e329421d68d216f687c7f4706695343dabcb7e3f25eb07943dc1aaecf481490520d5f0001bcff2651f6fd3f89aa3770bcbf4bcc4b940d34efef0ef3d457854e511053145145154a8420d209fa7142c409cea4c576980b6db027af55ecc9e7433f6eb8b2c521772bf29407b618030b2d4c01831ea8c41f4421840d5ea0e4055750f56fb08d68ea346ae5fb86f16342e8f234fce82f6933e3fb0a225e86dbfee360f096166e68fce860d4f8d1b370ff4777727b23da6040484fbf5481943e00ef71dd5e087c940632ad40e893be5401602a994a5b1005d94835487849efb5977e7c771b424448892476900511822084d4c2144bac4882958591262b50fb52c96eb0ad4913c2718395be7f2b95be348216fb875c876d2d37a4c17aab7a2d4178b996920a8ad5eda8a05c3a9eace3e9581dabdb89c562b1582c539121e3fb3b56c7333b3555ec39ee2ee35dc64b304786ca83600ecae3d0008fd3f26b30c7644721d7f4fed3a8696dfc58330ee074fdebf57f39bdff1776aac626e6fde59436f4fda9b41149ef76fc71c39d3ff3a53ace5bf29f99ea2d4a066f79127f79aa7bc958183b862d2d6fc3c5ba5161fb826ff49fead66423da9cf449f2b7d851c61d3b182b639d061b633731240dec05297d5b3f59842eb654c3e73a6e60f099eff79fd64ff82330c700dfa17ca46e47d2ccccd47929e8802177da1f37e490a203a483eb28192acc734e1851516c7606a8dd4e8b3c2d86dc8230e5c78e959aaa9f165b2dc6bc85854b9e241658bcb0185aa9a61cac0f7ffb39541ff3eb93ba24351019600bd9bdd942dac890f42330a74b3241cace3f99525aea7e48b66bb5dc932019bde5ad25434b60a525444b8a38f4aacd78cf3f9e2b55b2581f74f0e7e097532feb42355cff94cf59129327b9da7442963cc99b838528b51a986b79aa63712dae6375ac961955d6a8f27677ec8ec8dbc36a017bfcab6b852db6358346ad515dd2f87f9d92c6a93cf9c760e19b6181b94ae1b40bfdb4ba5697a493a251408d1a39a2ced5285650a346ce09cb5348468e8868a533593c1e00aabc5188d92b81a0b0a464437d29ce2f4015a5381f00357c006ab033529c4f801a23c5f903a82e529c8fa3aa4871fe8d1a4a717ead9f14e7dbba4971be00ea94e27c9a09e6102fd750e50d4095d7c11c3300c8f1312e2ae1c7dfadf3feba2958d0d6108ab8e08223c040346407442431c30db6d0738620b6261bd106db96846317eb62b47b42afc7a00f24e06b7a1e50984d55872c51cfc2954510298b5716439e8dd7f0dbdc25369d8983973fbd728a2740716baa5479b246488282145048e23027b79ff4a4ef482f2fe94952e52492bda1c5fe9c1a76410db5f648cd7717abb1b02e86dc09e7f6d1d401ea6208d75fd2460b1dd47f7498935712422798f4b30221592039f09ddf23ccc17796de2b9724d82324c9762190c7aee5ee3ded436ac993bc3464617aafdc838370dc60b40653180922d5c5ba09779cb48b957e7489f931947998a730b68b91ecb8c9d871a3c1c6d8313459f7e961187a51a3c2d71802816104088c222eaff238eddd5039062bb062a5f2b62bc2712bbafd3c3b4b08c78e25e70ee8802139fa6e4f244d9ba65bd38eefbafdf1015911050d6ef0842caa2084902082b0859f2484884dc11ea9f90de6a91adbc5ba18ac8b6db06e65e519cc61f91baadc220a245c2a3062574e71251018492e12d7c571a50b09eb7a9ecc7b2d3df531a76cb1e583b8f4f8339998f4fc3a48cf3fe47a1d855c7fa681d621d76b90be34586e01df30fdaca364724d8fe331557c533d3da9ca165b2a4c1d879c1ea74ba5c7712e9564aabc2599f7f7fa2b5599aa5359477d1bffdb15e18cf7e4a68450021981e88e1dab63356ab6a4cd0e47246da6f576244d7fbb9d43489aafa95d4f9ffabd8ed5a898efef761a25f3347c7f57a4513d9d111289345fa6366af23beb63aa64d2ede8c04faad48eeccf156871b2ed8cb4d8d4763d2dda949011ace055dc022e80bf10ebb4434158fad15bad4679921f96c7aaa92b7815123a793e4e9378b2cb1683f8a5cf2de01bd356a045af3952f3385e53a5bcf69dc4cc24d27ba5d62bc27a3a2d823a6c978b98ef75822f2f307faa9e583dfa30d534432c3d9146f9702122bd6a948f2335efad5aacb15ccb4f357e9471675c6666669466de931efd64d4b1e6caf8ed8a5046cdfd9f600e1b5f5fe2b48d3ad65c1bbfc16c7c3fd7f254cddb78921db76be36bd8781a2f3d65a3a6ca3ed978af2a92c6868d673b6e367e722d1b75e56bd451068d0a1bdd0ab68e61ada3ffca7f1d19705d5ec64a174b423876b1ebf2a52d28941788090ff700fd14dd9e4061005d9b2b81c2d0b94442444b943cd1848992278a287962e7a2380a21d71341ae96e75250c85b9316f95fbef49e07e6687996f72438e776c516829a5bfa594350737d909e823a5a9e65ac21d9b1e6921ee65deac8d7e5a5a4b9f3471beefc51a5e6c795d48f34d8fc48e3ce4eddfcb8917ee56faa4cb5a171fd471aae7f4d75ff187fd33398a32f0dd6ede8a63a3a17ee85a92f75f42f3d571f2dcff21b98b3f2a3e6b6e8e0bf11b17c0bb5e3ca9dcf8d2ab7f4f447cd6561b15ba96eb079372bba57ab45553e95bac1c62eb635994fef0cea9e5ce9c5900a981003085ecc20881a452072a2066008420b84d0b53ce5a5ae45ea5aec2f2fd97123f9cb27d77005f2dd20db3d52f30cf291d4e3b457e3c9fb28a003865ce71d6e7bd45456b10b42a1d4f7fb2b25d4627babd88f5e45386eb0268dda9c346aec36d846d4a8d18b6e51a31a3576495ed275008b64ec5ab7d5a8f9394b7ee449bae449de207992394b5ef2242fa803b843ea6b7e83792a654d3bc80a78a14409229c7481072a0114a9a42a556379f80b2854020422572a79428c2be34a254e3471fda585b4f13f92fa06799035476a1ea7bd5495b207af6a7ce85656b50bf95fe942527453ecc8465e1b17ab70e41ef797fb4b49a83d08beb6264209eed8a810fb516a10b07e40b68c897de2770511359118e175be408becceec2ff657a3dc1b359d899346b91542117de0f24b9bbef2993419f257a324101326424cae13f9cb87260f427eafc700cd5568d293120e6006759fee6827e7769352ca174317da43d453a6323b63bddbb65f664ffba7bac2f1ef26850c80a270062b9ae0c403980004215e4c7802851854fddf2ffeec09c16712f6cbbbc3d073f9e58c8b738a72c6d3bcb520573a1432cb38cb64371a855ced4e3beab8948ab08843f91d51a3b6d67a1265734af9b2764d1ec79ddf63354adaeed5055d1166df1179d28659caef601d518b7cc70ed635e9881ac57c93b4c8b4d535e988e4ebf24bf943ee927ae514334dd84522f9ba9ee66d9fd799eb719f571cd7eb3c3a27b34c19492bae3781ae977d5449d8df9ee6745249249584fe128ceb699fac920ad7db66dfb6a30fd7fb02dd2bb228e2d2da2cb76deb6c64da41470672a9c542e84ad9dca5a61ddde4f2d3dcd3f59a29acc895108e94e8f29b72e0cb0fa4813bfa8e13d8b8e5f904d214488fdf1dc71ff2c5042986362f221ca98b7b512bc2ec8164b7e62ec9eec70423374803f590ed7a23174a164f6e905e72f9c7ee8e9e4538ba641166efa56c575a5a4598fd90eb913e598174a54f566bda21878680cc3bfe90af1ff275e94f8b2a9fac1428ccde932b2b73c59ba5cb887e773daefb64ad5a5ceffb64ad03b8dee89335e57a289facf47ae1276bbd5eca272b107a83d00b44d2323a6557e514d7fb4c515c7ebef56631afe7cdd2a5677fdb0a7eaa2494e2725b118e747a774f96da88fe481afed1f40659a2a068b7eda8e3d2a2cb5f6f5647fa73f98a2545ad95a7a4158230850eac5044061eac544c81264ca8d0f1c10a5820858abf2bea623eb7a851f22915a11df956798b9e5cceec11eec568913b183fac457e981cfa628c2d96208630b45a205f457c100b83104ffc6008f37ba8cfbdac2bbffde97b52ec6fd0a95fbf12f422ae2b926057f4cc4f5d9e6269c2d0164368a1051f9c41c54f833c051304286a5084222d2802122a7edaa23f56845e8c193c077872869925898391f6b64c759ca4b194994e4ea698b9b9b9f948c6bd6d17c76402c808ffe28cb4e1de468ddb346ed3a13b5f5e31e4e44eda49febc09245a740144667547aba14bf82e63a8b988b76ba46afe209cf69b48288c2a6176bff70341c33ba541e6e7fc9fbf792ae58fa0fc91d1cfef8e4cf4c397aa946aa2d66401f0539e87d1a33c0f291f5a20c04f79149b2253ea886af608caaba4a768ab4ff3274a2b05c7fc9af93f5f9cd6e4bda907833cea12618dcf9bebefd2e1367f2c6d3d9daaf9a2a7eccff9a31c8a1971fcffcbff8c2a55b64a958c2a552f3d355fceedcef7d3d46c8ccaa4332d4ef19188a169de8c3a7a5b4b2fa3aefc57955a91ec205544c24779099ab8e7c13fe579e807bf4e2184fc0d5209c58c1abead28d587cf9a3ccb2344790d0899075f460502490f99071f081a3ee5bd2984f025cdfc990408f5817e6775c8bb3d10427ee61186282f41cd071e4460fee54ddc57c03fe52bd00f3e4a35d19721e387a8c26aa28f327a94ef317a94a78f628520a1b647e965582132d6f4a517428335516be26c04fc53be473f38fa212a8fef5677607087acf2d5aa89c7e87790aa51e9bd3655a982a952f5a2f1203204e95d1ea765cbb33c4e677c632ae94dd5e5616acbbf54964fa92b0f5695cf565e65f4a591ca0acbfc96f92e52c552a56a65f47e9a30d3899089a03cf844c21fbd0479a47c15fd341f6504ce9f3f08b78944d544fcbb6508d725233c3983e306dad9ab5499543187fc2efc92bde04d60888abe9c59221cc04f2269736333ba7c801a4f75ef277e1e65918bfb51beb21f25cc53ec2eecf69b93c890d56ab5b2a145fe1a1c2de220e21d14ca1f7154130fcffb09845082a0e370edb9df242055b46b8d9ff83d27520d59e1f013b70d5be49f4842f963485db335317872667cff584af9f2c48fa3c65338f2c4807740f36854f6da87f2c49fa439a40b4778a7f56104df95526efea16f567608cafe95276b8434de9362f8332f677ef4ff16457f1a8fd362a36a7ca35c7ff951c6f5d1f51f65ae83d74d3fd2703d06fcd1bb6ebadd95f911e63a7765fcf872fd55b4eb2dd7b3fa230be9477aed8f2b77e547955bfad167fc58bafe2d6db2f71f53aeff48da341b97773bd6787faf461569d499ff49a346a521d2b0df4c9d2df673188ee16ff2c4768644e6cabfb76d86ad2f4386861813cc8b4b0bcb8a4a91122b7c70fd4929fea176fd5146ddf507bdebff79dd48d26c95250d9d7593346e694844c264153d505c1abc11c19bfed94b95c9ad2902de6bcf43f7990522fbee350b04921ed9770f8426dfcbaa8987f6a61da44a33f190bdc7a00f39f0e5df41aab6e7e68e8054e5601edb7fc099079196eca3dfb46af237516b8a80a665bf5920b6cfb6cf1e08eeb5972aa9fa408bf3bdea27ade6dba42adbfc347f74a0c5298bba2775ddac51bc8da14a8bd9cf9ac9cb004fc9176f6ef62eb07028cb6426b355c8b7cb10d29736fd7434b2dc904fd98f59d56ea334ad6e446c97c19c6eb33dbc17a2fde8a5ca41138fee7b096e2f64bef79bedd1fd678598b477f153a659d5d65a0d89b89ef6cd46754434aa7566a3b24c1b69b589b8de56b5ffde7b0b7cef59136701f04d9c3545c0fbee7b78df592148b81782f2de733fb24246dffd109556690e7cb9df41aa421ee16f35dbc21afa29e36af61b0fef77902acf0281847b20e67b9d05c2bffb1b7e8ff9a195dec35ffa895efeec33ce6a5af65ecd50b207abf4d3275d28557e55aac0d04f19fd69317bcd4e242d5304e67bdfc3bf7bda6a31fb4d8a9bbdd769da668f7c2a2da32d4fd19e3e659f7d1eed6931fbf066d97ff662f661f62ed94b900791f9fe541b32dbbb81272710fab704ea42d11d7f66a23c203a1aa507bee9216e3fe5d9007318ec051ec36d1cd7e6a2eecabc307c53f6a41fa23265d66481f053be074af6289fd91ee1a77c8a15324a421248caf08491d54a15fe10d5e8c1cf7a3e93f294fda80671e5a84a15833a84b7b347523eab99911633564ac61a33d6ad91c51152e8810ab8f0c4125443746a00c4440c6014612406aa7e5a446321f54228555c0527c260a206ab954aaa9094a0038b903881084560ad56aa093ee0fbeeebfe7f7cd7fb6a09c699d511c7388edd671fb8d9e3f858c3d5dedbbe0fccc9d8abf2763accbb3d577df0bbfd06e66cf6061b6221154338d222947b2098937d7c63393c91b02c1be275b7839f1f289240f1f3d34a5a4597e64a254e2c6188005702456189bbc11a05044890f0925c3ef3b86e3d1f68f14714421a6cbee66bac909ab7f921a9bff91b2b04072c54a91fa21a5d2e87356caa1004fc0d3f33a35263eb229c2bcf535882881430254fa2b0002b943851c517432481c47cafb37accc73c4ecff73ced63f064c721f7f4733ea54328d371c8f5c931ef1cce39275779e78c79dff198989898d367323230d649efad4adf2fdee2a59779af54bd55172bfdd8c57c94de8e1be9a524919e8239242bc32f7d7fe947d2cbd82ed6a2b79a9764bd6ec22cc3fca592cc6513934cd48ff0cae21b9e81396c1be6475479774cee83764d384d9f54fd69ce7c538d79987a7a8f3f99dac5bc558ba7eef4fdcccc33f7f4a798dab1eee94aa0309a5ccfeb8f411da737d9f1866b7ab9c9f42f2f4ddf6272b9a6a72f2d302f2d3024ca4f5f073f2591a80c49c6c697aa2852ca325486d95469d842181be20dd7e569a8a9379faa36f3b924365fdabe3b9260c8e41bf44b243b06b9a4d2538f3f93c976435a600673681742d3934aa00416b8d8c20c34c8c2147438020b24a090842788844168a8517da7e949ef996a37b485d064da82dc713e69d6f1bbf349cf608ed9bd7e7cd764bb212d8435d5669248964b551cfee61de4e1006ff30ef648fd8d15f249a14abd833d6adec60a414012ae2155cde378833914d4f1f2ce2549959ef4a612c9b46911927e3e3fbda9356f5353cfe0034a6fca312fcc9b4c3fe49a5a9ec098bc558bed625dcc855ae401874fbd047938c0d758217c854e1845aa9a97600f9b4f59212623a86c5e823d6e5e08032141044b75a3138e5dec4a92f521a12ee687d323d262ff92dbc53e26e62798c3efb4fe7222ecc7e16d2a7080bf799cf6b22f556d5e8216a8f91b2ba4c1500598aac6a6a67e92240d9d355ea68eb38e3335f307a8ae85501380562a1caa7cad562aaf06870354173f75318fc8edd04f400847aec5b51a356df7844bd2287f6d2f2ea28042c8c80fca90c5189e206206621c6102135e7cf162fa36225dfcaee9678ba697617a996a827999e7bb524d30bff2a7f74a5008477f7936a8e82969437c8fc152a985c697ea8c27493067864744a7e43b2509e6c43c4e93de93d6b483f4f475909e32935a5e82dcd24d6ee9713ca69a9e34ca54b25d0bc88e93e9573e47e671dc546bbc4c95d7461db76e46ed588fd32f75fca1d2b57e3a22ac46491e8ea8c5e6c4e8221c3b22b7bb221a55bfdfeb88342ae5fb3b1d0fc25010a4b89e7fd4671af19e2e72f9b2e5b9f385e5e9f3dbe71f7d27075f120d98524ccb8fe2cbbc9429d3e95fcab734ecb89d2c8cc9c23c7fe9f4a56fa9b2c5d2d8f2334a92be8d181b84de18999ac2138a3648df981f594ef465be411d3ee6cf1b637d983e6696dead95f9f145c68edd845e93f551fa98a7cfe08e92f5319fde18da6283f485790775a0253bface3d8254bbe79a627780eece7d4d9ea4599a738eecb1c5f152e9536acc4bd0597c43fa39fa0ee9bd1b371bd6bb09c98e4c411dbccb96c4757ec3f87736a071c89c73a7543beb3526e653de59313129393156860e74bf989af29e0475f06ec35a9cd68fe01b5e636bbe644797d4f3cb66c6cbb0e396b236fc64e3655a349e56f1bfcadbb1582c96f8d48e33b7633d3f49e5d292a5213b960d1933be411da687f9af7c3b16c9b29dd62467d8717b7919d6c68b9ee8bfd06f79982ac11ce2d3f7b68fc17f986a7ad6767a69f94ff9af7d69b5df9dea4b15ebf863a653de8fe01b7953de77ee3614f2a5f1d1a87c6930eb7a4da3f2e5eabc61ca7378a2f1dd77ffe2335e1e46c6cb68f97fd1c657faa4a794868d225856c70b5ca64c9932b5a69827d9d1a483e9e9bdc0f5373dcb0e99f7181d484f75307de9e9b64d538cdd61b225eb2f635b5a52682d3dd31696a00e2dcfd647cb97ac0f1b3333b7c5da78fb55a46143c6cb9f5e144f2f0ff3127cc0cbc3fc0b0c0c8c06f302f3a7d7604e303466c0d8197fea19cf75c68b773a9d7efe683444dfca78b6a61d34de9fc6cbcb77f425a8038def9ec107d0f8ae7b9ca6f15df72f263b0eb9a62fd571e60297f4311e13030363635ea6ca1663ece872e7a872bda5c5ca3c4c952dcad8982a2363e3491ff335552c55fba4caf236aaf8a65a02ded139d0d8f142d241f6cd419a759cd9e15fb27d671dc55721c978b7332dca789c26591f2f4fe365d451b43f66ee8bedde3e8e8f6a78abbc2a759441d73e4b1d2f70eda78039a71f33b704bc63e5d278ae76349ed66ea84d3f6e2de4ba1de9dbf7ec13c249e2978919372945d2dfd2e374b76a54c98e422e932c47a3cecbb69be2d5fad2789cee5e8db2dfdf09f5cb8e51b9f6657fd7feec5417f353bf7d2b4366dd2ee6a9294ff3c7993bc70b5cff8ef1582a9ecefdae67b9272d1269941c65b7caa16167e4addc13946739272dae1a85628fd4788a1be288b821aec5b93c25b9a8820a927881175cb06304553f17e4a91a863082188a2c39c2041ca8fab916f7b33921e43bf335eeccfbb0fe19dc31f3d6c9ade1ca2b7c5cd7e7894f4b860d989ff1a7978d129fc6c3a4f0843ef8495f7ad2732dd512534a4dcf9564e525bdfb30591f76c81f97f43962def4f27a8cfd71fd4d96f4a64f794f4a60e6d96775f9c5a22b8ec0ae604228f33c0677c4bc979ef44c82c7e9e95faaec03df1da6d20e137f4c1d4d5fe329e800982f3d0519c017e6d9a6f084ef691484005f2ebd0421c01766a45fb2293c21b53f54fe25a803ccb3f501f325eb437cfea13252fb43e5daf869c71f2a57fc1a4fa38ef39edec11c6602ac15a8344db3864d903aa56844000100001314000020100a0744a211a150a4ca6afa14800c899e527a5c9aa85992c31452c61863880c008008080098240900d3c4a0190bc5f8811bd27057cc12c1e23d3b8932872504bd8c1be85aab93a8e94192cd753f76fdd23ed920deb5404c58354a8d688e8eb01322e2c8daa12bbf94096ca649b334780548f9f193fc4449a0d4252c9b0a1901c4670084f28c283bf465c1b688d64d81420a527242ca8a66711617f0b20a74f68bd2d5ac0debfbf8424ece81a1f5fe37629344b496702da8c79e96652514d611d09433d62b104c303a1fdf9b7ac069006f7a2dc4586668e6360c39995e48b901f97f2cd613744625821e4a92ef5e386d3086974f816b284aefa8e341354170e41e89bcab44dd82b433888fa4cc4583265f5afe5c702c87d57bc9efcad6515da0d76e666a54d0c2b45480dec056d2ad180df932fe44add35d275f88424378bdac82bec7f68dc28d6d80200ab508e44024e8575b75a8b183bb595d4d4f651d69070b9950a7fce124d247c4be970f6bd2d03dbd51e63504f580268f56397bcf54e1a13ec443552b2a99d3c55d6f2588a13373174710a95340f58eb9f61a6074139fc1f4a5e43352309528b500589617749187d430b56ee794e7b62be49f017c0033dd423614ff1ed4e5aa3c6c6af20c3653b5ff338ff63aa5bd1d5445f3d10a251703a65c24b20a66793450dc4f5d1ca15abc32f63278c3028a45618f610204e857bcd3b9300d248fc67390d6b16eef25d5b01ac7923ba179de121b02b3a02a7ccc1846da085641cb34147d981b3d7debcf1c98580f2f3706ca6ca777caedb2092421df8e4d12a48cfec7921c6ee5ca04b46282e300cc0a1c005cd61ff86d7875d2d12b6ea2994bd5bfcf8e357b23294ebc279748e9db741013d32516f1b4dbbf62061c55a67ca8c09af75227024cff112f42782fad2ed8b27ee799f76f52447e43cb4bf90f2900ab7add106671525470e89b7953a64d2135ee226156ba3c4d4f50d65505bd8407f339db0fddda432f8ff7633ec7101f144c4d6a55ebdd1647878baea3ac76f8a337eb231122eb28faa28b158302d4e1a1921b160f2516a7575d2452476054b566317ce2d244a84053efe40d5242d7f7b1136bc038d5bc6d785b74daea1b89f06573d4d435861e20a6801f4cadda1428956d588448d6152be60eaa9f82e904b2a030af13d35c2f41154d894a01e6a8a86bcb9d94fda14d8e000200d9e730c73a5df40cf8bee0d9a798823fb99d88a86213d14c2072acf489aa010b8dcf62022438e1e80aeecd5894a984975453d992ab993edcc6683759b95029c60eb4b3346dfea42d5a0b743553c93ac274ec41355dc0f506ca67b54361409e9276a6af1aa575826626245177467aae05a5c6e91b9ea0456b417d217f1bba5cfd0e7768a53b662603ca8fa494e492b0197a7137988cda43656927d00132d4bf24985c62c8cfc387810b008aec84b0885b6516b50a4a78d5cfb89a19170c74dafd87ec13a9f8b287418744137914f91e38fa1d33f4a172ba663e59798da4771e195357b0b467d6fa008d20f85e818a1aa15b77903a8361fd545b180bc1103976fe48b54b2aa7918062ea53225a049feb2ec305378a3fd10bc6f167ef8dd7416768635c647278a9faa8328cb74c5305a7119afe6113fe6cf56fe5982607daa765db4a8b566a3296d8a70cf22e84744aa57097a43a6884c4f41e9119b6f35047f5e7baf2443f9c5d8b868f20ce593b3dc236214efdc3fa2216b4d6113de6687d532fc69963a01b6bcb1fa7ce01c485e675ba1a6b3e917a7250468c4deb31cafb938993f618f555d73f06468c0847120130121436507f88cc0b65e1e78c076fe1b3b62f6e0026c6954a00bf5bc1920f302a60eff32e66282b3e609b3b657821177e0ef0a563bbabd287503bc3e03867abac8e4824a28d4cd1db21a9eb6bc8305d402ebc717445c79a87e38c69562671b72b38f87d269a59f357f483469d64ffda0ecd4b7e60e3e00cb98b5207a84a6af5a544b40933c3196156281bca747326a8364245fc584ab532939559c694d008f979a82a0e4efc767606c958059cbdfae3066568857af4fa0615ba55910d366984bffbda7208fd1d43bc606ca49d00b5126b3fd4763d78f5d310d4f2035cf2dd533b489d32f88b9f521dbba449cb18b7d8a5db472b328f8c6d05b87411e5ed6741931e0a078257b752e96cb7e516e6cdb38da1263955446c38926254425e10eda9564424ea351c00206ae16ea4aa39e382b39b501b4ed60b5514ae347118a6625ac3d3a8f2994189c039099f8a94f4aaefab65c3e4a525669f83796d45eaeec4c92fd4c801d3c09befcc2601a6c54695526bf35f42bc02aa790878ba86d47b9dd3e294c499aedf1905e5c82be87df504bd1aca3c5e5489831010bd025f19eb3998d451fada7a24e0dc3109088f52d7e7b12dac12e6b8e758e668b03de8b9f698c1aa566e0cac7085412ced27b490f586d6153851a3b3c0a918f2770d2a4a7b062b8edc23d8289f99669701ef89a2405dd2cadc10a3cb004bb2b6477b71567d2875da378c4d6e350d6168c50fe4bee44fa4f470a3d6867d6f06f456d080ed11d7130b07e0c6d31cf1f4c496d4419e2789f1f38df66622723ec335876f857c8d7fec1ba3fff4df417f95370996b46532fadba7030d2d85a0aea55648ef52f2e5507432b0ec9b044272a20bedbeca1245a881152dbfaec391f552a3f5d1708553a5a697c2a040ce6186ce23d4f31537a900da219dd06d8e437283b21cdb1e8b380b356f68cc6cb5a71db16f31a8b28c45d52c20e970ae0bccd8f301709eb174b031e535bf6eb68ad65e1720a8ec169321c94db8ea14479f9825bfa4cbce7c762803694defc65205cdf791c4e7fb8445677efd21b4cdd3d6adddb8a03436cbb7becfb0076505ce54d12b1ce7c15ee2f5a37b6def7156c5f1c52057faa6ce020738683af291420102accc1b4f5787759e227f6e49526508a456e044ad02f138376567249f73a025bcd0fced45caf97365c3357f3967fad03c981fd988270b1e1d2eef7ce5cdc5b7e2a9c676a3e424194910f7c4d5edda9077dc3782c56f6c28316c2bd12793819841d47f616f11da6bcf1bcaf787b69b0944df49694b374adbe7aafd885264a0fd6591d5c39bb0d0a3c114f18c32e9b8c159cb22b2cf02dbe04d24f1ed2e55778310f8d69b36d8d3ea664a147a2d32aa2e9ed93c89e493f2562efdd504d5fde20a7b105fa2e6a62f7475e0f59f398247a01c6458d6c688c2fa69606747db84e0605d77d191278804b8ddd09326d5e6c32cbf97237d49982835a5c1370a8d5e709da063d65e79a68642fc8ea5f763fa522b3ba0a215c6c520bc67092cc6b5d0e657026259df38b08e3f12ec78597db084e5d4ccbc36a30d04a7a9d1d49d84c66051fc03668b11bc191ab6e83965d3aad96fff1a1cab60c082a7516eab2879ba625bb9d43e2462a3dc6422f81feb8f77f7e7368bec2bd6c4d2ea831191351aa69adf2698c57f1ec7646b76896e2d713b88a1f80960e7261bebc3f8cea7e7756a905623ebedb64b6f66caad0513d29c7b2fba583252d275aaf2277d154a74f7341b0a1a630dd50ce2029237cf7318ea7604de57a694e01c4217d52c1d6a0e9b19f4317a15a7ae1062a5656fce1518f12d7fab5454d0a03494f596b79106308681c51ef8c2179c71a9950f5f480e785091abad7579f3b56939a02b9ead4941e0f5559e7c5709f8aaf24675af84b171a2e49fa22fd588b761a13e007533dc415431e700ac090d57ed0a2aeae677f441b0f8e02a0d9a1bf8d6b2c59fa48080a5251e4577d78a444dfaac4b07a9b86cd3f0e867ab24816bb505d44ce1cc601e84f5fe0bedb53b984a5f3500536c7c4dbb0bb564a912f512a337126d0cb1fde46e84fbd81520082e1c4826a5cde8750fcf8f37f93dc7837d542744c9b5e661e88360aee0a1020d5be7a8209362ba61e6d4c7a9817fb9a2bc9dc49655310e674b6482f2754d7573b5fd6f2f30608f487aa189c654d04d2636f376f81429896af147afed3f6149bdea363c79db0369d43243f2a57f9177d5b1decef33ac914b365c29256931e499c9f0d864ebb5eceb6b144bdd854bf30753e246a7cb336ccdf83c429abf0a409fc333c1f92a3b8a95b7393abb61acc152f71ead427f90643df8998db83b2c9f280b120d2eaedca8a56ed394ab6c57343ca348604aa9b9b53720e423b2578a100399295235780b817a4c133a7431343a82796d8c3c05e07ee78f6b61051e5970bfe6ae44d53795669a3fac06dc5130386d0a96c2492fde52d072a7b8b2668a1182a32833ade80b4b8ca7202f148ce5a40ea87e28d8a9675b11ec8e5087c0198b49c4455cd92ac3a1e7a457047f247b293775293c63eafad527249221a13c14841d14981dbccd574699247634f464ba58d13f14aadd177aa979ae846c76f214b97eac6506ca0fbe8690ae81d9ba7b109614dcc1580e41670c3e141ca8b7cf5687755af94be8acc791cc3a66a654c371918134acde18d3578851adbae5ce4f0a23b644bf995bd104fff1ac507a27b07fc9a7943cf09f82678aa52a3e6a3d6f0cea46ed3d0a9eb5e184bda5628fba4109727a3d28afe9d810dcc79e7048187405288d04eb79152d9d481107d0a618612ab042f4d2659adfd12766d5a66f04908b9211404a0f17f739a82adb7a18eff9861e5908588760e376cf184bb963dbaab7caed503118da2da8ab7b5ed53c8caa952139f5a059130048805804ec5f5dcd082a441dc0dc9b4602c465bf5358247c694c8cf31952dc6e0fe2f5c7ad7b0ddaa10bd7789788530ad656548e26d436295a0d91931fa0ef45da7fac5b86162d2de8a985dec2858bd47f4e1f6548fb43537aeaddd15e46f4e92a105547c018963eaa249d289f678a8809da09604a538d7461c58c4afcc9cfb9e4e3fb9b8ec4c0a6e29cb0b18f784071cfaafa1b097d71f368f7d9a6e854d778e26b8daa12627d5c7d92049cc7e105dfda31ca2f5bd4cc88e235709032638f448fc4d2b390f35570184e5150196bbd59ff9e8d49468ea5346ce1e1a38f177f9058813e9328da39f2c8abe73a01e20fde7d6938b70a36a5a05fa1aa0174209ea0a18045a57e2cd0d8733812272048fa29086fe85ec26536dd11b5d7f7819ca11b4143649c7ba89ba2e9d05034ca6c4bf5286e8e86d036c6e2b8d01036faf17c3512ae092d4bdf723b7f8f749b6b7413c6aa1c45e7d0d942c2da4c382a8eed145decc1318d1e9362ae979337930e9e9c0ae4425c887ae67e35e7f695d0d27883508efa719eb705af17424948a4067ca68c329bc2280613a3b27d3c5fcdc5cf3dbf5820c0976248fbf6be64c80be8c3b8583a37d6904d39992e08aa2dd45eec9ed00b2c6481c44f4a0e402941b46ac8b9c45e78fe56956c6b203df7cb3de45b59de49f1e8d9313c234ef274d8984674889a386eaa4151bdb2131224d38f81d354fd3c8f9b2d6b7a31e7d3251e5682015fb43858024b1166b7fbb7edff57489c9bf4b59f0ea2692b98579e9769fd678a35172ed98d2024b07f4e8cf4b08804810c07bd56d848a1ac180544a21b0489abab9543a88e1132a9b3c4e8047a23a1c4708f354c7f932a694aafb0264cda749cdc379201e652c2c5dbb9107f227cf44c709afb44417cc87100547d623d23b9120a52591b23e44e6868e89a97ac21a0f4b27a531003a26d6de57d790d624e7495edac913af3f93850983c45a8e8db9d43412539d0c6426268724961a95e56ac01838f3da36f6459823d387c8e29f60d4ed040c6b3844168d177c207bd1f0044d173e732e7172307a4f8cf8ddb6e906ad29212147ebb5739852b97128e5bc32e42ffd16c33359fa03ff42148cddd5b69781dac910517a397de05fab7f52e9034cb73d112a9dcbddff8e65f1f8405210e6a184fa3db4d44b87975a45cdc944ef0d5c2f79714151b25b4d3e199686f925e9b0cf529b89ecaf014755935a377ce021ece521f78cca68a5193f3b95fa81f48f440d0dec37c31f59548637d9a79f92950729c47e386ec9af12e699454d733ad453a21e4547042b18998ca662e4a271aa7e6f093154cd1ffb204ac0a599d77188a72ffcebc5947083f62d86e13e9ea223ad77fcad97ce809a19160bd6eed3a21a8dab9f9f13b0abc316bd3235990baaea94452e37d8406fd4b34cabb020f43e6448f3f663aa73e96548643d8865773235aac4b82654ca88adc06b2bb8941c2a3e2250345dbdb141d58d310d335f5f820624bacd0d05fb13f1c1a125f788c23e09a0cd0a5165dd47598371ef2115af9b6d75edb644f233213348e3e6f80ed38590672a25a89ec111aaacc8a1151deb4e9fe28d33a32095dda42c00ac65617bdabf0cfeead7dab328e5e40222001b5d27d8c41b46b2f9096b301c2eb56bcd9b1148822b9156c8072cea8536e86a643ac7d263026c2844afa47b4c16fc228406df729b001a905e9cff22df19fbf4d2aecd6d0dca9d8627e8df88e47eb54685ae3d957486fe6c2cd70ad5e7e975c23a871e88f613d3828007875308d5534a0801b15171540276134a1b0c40192567e268480ed35488832a1ba6c0599e4e859e9e51a977d84e284c0aea57b7d23f2a643d39b04ddea63d4411e2efa4fa14ef2bf75c68504e34935fa77c3a27dd032c8d14d6c5ff9eff246636a457f8a90b9722cf77ce5049ff234ec7d265b37651c061f3f1b0d4c2eefe594f824a4b22414fec830163470b951b1d96e394149ef67e57c4356fbb630f576f9ad280943deaa6253afc17c299006da5cdec371bf0bbc2958d106f51c9936acd63d1f67b51c912d4972e160b2c83cedfdd2a98c70aa5fe769873bb80b8b6ec0ac66aee0a511d153e4da2f5042d82f1ab03bd229d06109f2865d09daf540c8ec6d3308d706aaa02718b4847073c9c71f44819ead690bcd214190c62507ce7957e4d660fe462231864a6dbbab0cdac3c83549726b78e7e95050cc20e5089f08cef76181cd06ef3d62577873158e0d41d35316447c9e7f9a91bee804811452ff004e84b5ed3051f0248bc8a080582eea2543beb96fbff3402415987c42e06e2108453cd4910ae53df153fe60ad595e919134b6fa88b3c60b85f1a716043db524ac35343c8169c0833e09a6b2b7ffb427402703679e7246b3d92c8dd5d1724b9bd4ecf92ba8ae8a608f8b767280b27956a0a49f2786928d1edfc7e9ff390c3a2b36ff94a6b2490376e09dd5ac1d4b265174aa73b66e593b898d4ecb7f55ba03aad67cddaedc34330c4cf663979d6c7ea4713d120018d1393602de3e7ee7edfab31a63f583f492ad092bd628c06f0fe653bf5041bc3f14c4a9da076ee6f29d602b4ed24c330a63caa027ab04e9875b3b1f4b1bb8a456ec6504e7fbcb169c75a17051c21f02f030fdc0259a91cce06109c1ccc6f3fcd0cb699f6c87981cbed598c58ddd044d7fa0ddd2f6f8a8c19f9527413b996751f6e4f031d47ed28ad99170b8eebee03a306ff22457a49ca239f37763068d91d399e88e4a2e15b02d082130685ddee2d4d69e8004fbcb0ef3af841b04855f43f54b9dcc07e502422b98c46a117d124be78055d6635ce79d7b341c16c60cefec2142c58fb6f80ce09936cfc65794fa61d3b246e0c309f1d7e439f3a40228607121566ca08d37fa2946c02bb252de4110b9d7984e55f1d288aa70462b5d6547a04364e97ea87ae36c006d50b9c7235d5622a7c102af345d1e597baa597341f86e3e65b0345d8207128d826fd2b32ad1d7024ca232cbd9539b8d8db4033dd9877630ea0dc4115290af78bb1065d3a2ba0ca0606889ec970586c6778c7cc506ce2c65f2358863d4d86139e5f451ffd1f385077e801e865396006b817b0f6ed9cf3c5d59cc165431db143e106c1192e8bf936223d347cb4357e301a6e6113d653cf200608c68026a6b371e6f9fe037e5c502185d016049688030022145e4b425e639c095518d07f5d0dd74da5d6154bb1fddcc0bd2024606474a67f70a391e5a37aa2a59fb711b560870d1c9117145258b0b2ae9e29ba232672e95a4a4a8b27765ea453d3f820925cbe532dc098d8995cd39e122fa76dae182269bcbb25dd8e24b1ecd7af33937953e4f34c3b2c3696a55ed0c0838571cf487eeb42a4bae3e5b27bf1b4cc89d62062417e15d4c8b50941c044d43a456cfe9417aad4fade9573a5fd432d4668703b24883e9f3c2ebe8d7636e8329ca10ebc91df57756378cc64097fab75050a9e9f73fb083f7005b69d329b7b3e8ee1c3f48cc54a3109b074a96c16d18fd58ce1e7f9d365bc46b5eb1a7942fb5b8df442ab7666e81c0b16a7fb09b8ba0dfdbcb5d8e533d8308cb206d83701c6128c9b1c5c62ea59c3491693b67555eebb826bbc0295c3e8e5f130cc348bc21433b5b74e46d34da912524520bdfd7724036bced1b8322cbb7faa833e73a28e8a701f60e5ca5c41bf3738ed89ead393063d6664d3dea3b75d60b51dca39615161d2faa9fbc455c38ae373cf6afc7fea12e502fe13120795c256beb8004cf644f80831ea0be0d55016c252aaa1a2cc7c2a712cbaa80da5586867fb3bd0eae76754ab03c455c6d798fadf9120db4953db30438c5e0dea4f03f1d0d5704fd8c655f29d1b2632e4e2147ca413f47775c52ea142cfd4beb990d063eaa18d2be9aa9296580e1b6a214c7a9f868356a4bbaf6f062da082b04745f3fb64ecf930647877215c7a5a4b9055d57eb4208fb96841ee2e09e5e3ba483a4e0e77f8667250d00090fd74cbcb00ba43370e11026f7459593e439739a9fc7359bc4ff719cc7a864d7dda93e7009af7c3e26d09b033aa40477c950a8eb2882f388de12084a4e77613e80ef282d89481da15b43211443742f4cda038ddc28298709ee90505ef3e68e31669b54f6293c53fdedae3732837a980b4484206f6a4172b7323c538c1a0f734abd8186a003c4e5f8a47defba96f7615ca0812c676a5777bec99e249956f860826690c39265b4740f45ce8dba98b983f2291a3c9eceba5cd218fb11193d55f6ab3ea7c6173852fe6eaa9f27b6ec5412876732cfa531646fe19014ef5acce33fb7a336557acf2129acfb43c5b715e5e615a3a8402dd08b04a9d727389f4259fea59a4aec3024a3bf04d133e1df94c836e66102c80337aa7a90981877eb936391b264d770d730e9583166289ce36a6cd5eceb87c76561a2b96702dfa7915b92e0034ce30bab8ea52702b82e6fff86b9ecc1052cf5c41f29ffe348923a3bb0fff2abaca1e997b177da8ff87324342d87ee31a87e70d7dc531b0784ef74099aff1b3998b4c2186a1d783b39d0703ba20b0076ef0091fc087f50ebd1eca6f94a3ffce876ef7508bde21312c3afd0259a82291a6e10fd1eca550aa4159529337c09b5e4abf15eb32f962b87a245fd3e26335b18a15969af4c263d16af7c3305108445a408d0e3eda8806e9f141e49c364b2783db677ebc2b50c9325c2ffe6763033ec9a4435929105c645e09f3367744d90fa1e38a9787346dc1311fbbcb061598e935b3da5cc164d7443067549c5af4d6e76d014775c011510f0055b13ff2e22addc26ace0c9209852d0af4047ec8ccf64720dc2c5c5404d9ffb388fa8ee3b879c870d33ffc440f5d067a1416a4cfc009bac76a7b1a165d4745871640ade788dc79166a1ad496e8d961c3f581c77282d56532ed6924082675291c1c613ee5f6df9694cfe5c3bca477eeb3edd9285b34f8a7c014664d13b80169904119d10c33065c3af64d4760740e2a47212b8c351991aa812122e5ad7007ca8d39c094a80b1232eb9b851204f792a79c9a5e19ebc35cdd3b488bf2240f09d254137af83f6ea23e937effc663b4ff368705217b6ce54ede3d0f46a955549ef03007f05a032e3582ae4f2e49c90224821d8024c397a2dd940a50786e982810205680021c1654f294860a252425e87d8bed810c731ae8794f151418118685782098c21b3cd3634aa9b8712e27dae49b6ab8886301885126dd7ce8a2b40373193b835c1020deb4300da592336aa94918f0c2997e57b147db655d2fd0d8291947a5e1c4bc221d662a80a4841aedd1229da51fdad533ae4aeaeec7681cc67f4df85b20e8812813df7a3ad42783c721dcab8a53079820468ddd553a46ec8bb204cbb5e9fbf5273c4cb03c8e398f5767f87d13c61e0edb7e8f95c9740633ba58937a1eeb9028d8db462015ac530217405695998a84b33b29776dc7515fe897e240dcdf1b593ad582d00718abdd33c74cb2429b3eec4b99250a45ff9704e40a71c9e8a28b534c82726ac361f4029166c3c918323736cfe541b068361ce351cb497221892444e40ddf23a7a72a2ea058cabd967e14372063e19c0a2130974b6b403bebac61dac2309fb135c18d98b3c1d302a1b82375d784b83fb13406cb04ffb5a9a39dd602de0564fef30e4ecc957aecdb80013d6dffa1cbe64e4871baafb96c7fc5df4af4954918be099fdd42dfa689fb61a1d8f0fba0115bdceddb487e3c7667014c79230823b95ca45212bae70b934668e60001142818e63801f56a4d9a527ff7e9d57c0f13788b45fe7a0c4d85c0b29fd0f4444487a2d886f213d986fc4605ddfd26caf5651193aa51c51aa171e09d137faa5647f7b8100b8085a31b98521fb34ab89e260cc61d7c169a5b5d809ce77bad2342aecdae6bfc3edf289fae40e75c53063a8f614272a6ba02cbbbc01f547abfc8d15473825b4cf81ac835af482177d5154911ca3f884dab9093379cd802df5341d1dc8a9462d55cf1de6a3e9e1ecf51035d6843f6bec1183aecd4273a8e197aabb69a64d8cf78b82fee7a0314ffc2b0e0da4bee99bb216c17d8342c8d97b17641c11a0fe90e0a54f0f02dec92def6d7100f4fed5499104b35971318b2d08b0ead45c2c01e480a54ecdc3384d6da1577072418b85bfa82c17797585ab4ab43444b158866d16881d2e87d1b05305302099972816f41c60487c837ce1a4f20703705049a71084e599707044119b7fa420800b535fa12eb278ec10a22dcb93e010fa8f8d973013c0163d9bb1cea9bba2991310a6378289018f18118e103f2ff31a3e76a7cbf347c50450910002c310dc3fcdb4c7654061987b41dfda858491acfab64861e3301e95fc159d9e0dd694d98b33b8247ee567e0785a64988c5900a5e8675d965f07e00796011e42997ca4c4b69227ca6a5c0ad730eb469aa87544c9d88f1f347943a7e4ee4a24c5b8932b3255f4413964ea37b2c87c8144855d44ab5db3ce71f51705e2e4d85724f780f8822fbf4bc3a3e4700aeb80d5062b36513c119dca646c4f0453b96df127e7be203e56251e304c86f6f272ccdb185dbd912ca031d3f76710977f4a2bcbdada6018c120b38b80005143174e02dc9df80e8d1d7c31230332a3882f10d583b317f00418d9dd787f34e68ff6a5fcd2bed1810366c2af4d84ddac57b8a33583080acfe8cb474b7ba201287c395eb06a311d8c367aedcaecb9870bfb7a172cdb037cd5daef2b4bcb9ed89b9437d64d08280041b7e41c34959ef22f5a9591c086c3b8e07a50a8a6aa218124492c897e361e1ccf6d340491c4933f8fc10e4c8994da5875a9c4b6711fd634d933fc3f4109ac5c5fef4b4689b319ecdb3162087e4868af91d1163b316ea50fe8f746647f781636cd11ba36cf8ac202a86c74e8cdad1ebe60836012382255cd290b8cb5f0719d3834c26e47469e235b919a031ce81935b0ae551d21dd6c45b755be86651d590861a43070f3d6a414f0d2ed7223c704eedc0c8cf36b8abfbffa930a3ea70e3ac82c3f91a3096b1cb41e634eb96dae0913b38c6cd8289db68854b79350412ad26002427165aa190900aded563a55cf6a657bfe2d4f0ba3989d7494fc17dcb2926e01400fbf539a0573b122f1f3af2f686f199bb83329c0cdf6029cb9c48d7cb0d5eeb15bdf08089e730288aaeb469985ea395cc06992486894e944635e7001f1833ee01d9312eed3d79d86da7597e6b82c97fd4ba6a87f85ccbf130097842479802839e268f89c1167fd51907e37b3f5a0dc7da6d2cf08065a68d75ed23b4c18d39edb222cd19912c8c181e501ce52fd439043ef428e13875cc1b2d5a5295601e57e1463b9147d8490d1670a22598f001825624eee2809da0b5e02fcdffe127e06e003a8bb089dea9cf0e0fa7c7c31b6fbc0f0fe9d49d68d868146cad910c1e9dfbdefef9aeb9878a62acb0e494e80dacf939b1e7193b042bb7d92c63f61f06e03728ad02517a1b0e37900939d8a1fdfcb553162175e52d4981812d67567f2e1952418953fc217b0f4541bd904b4c2447285aa26df9dd7ed09cfe498f85f8c2b570a560ec69a1c6d1905a4554bb7c70dbf984e34c580608266a9542ca5d73ce70eced3124b29a3ce52ab432568258dfdee926aca5fe94b5ef0c36e21aa9fa842adb5036b3db22ce2a2ababf1294da0bd3d164e325d7f3f21ab01e2be3200e465599aee8733108edd70a00a4c97a3af50280acc8c596d1dac25b70a7ec174147400ef303e5ac3f1e51bbbec467ff7a46daec1d9a8874074013f4b4159032647007ffb8900f92ed7a88c6cb87e1b358cbda798505e9820236b991edb7a1577c1fb93d7536e059a06e534b25a821b285396df34b73b73a47bca2609ddfbaec4da0ffbc81be59c38b0eae29dc699871ba19257123e6d409df3a93ebe487277feb0e362f232754431038b85cafaac8a36fcce05f0e0f3f44642682f85f27b2d1d4e8372266e6f7f7e746129f96d1085b922e68b93376aa1a8b3f3900f3fe70ae276175efa53f36fe8f20ee1ff183541139c0bccdc9ed5d6bf8b704457227b5388f65381df3581fbf1e8de9bd6b48cbbce3d332a2c45b8253fc7c3cc1c620f4675d24faae42d0e54a166df6d44a3b437da0f0b5c1533865b83dc1a92d7c181cafcd4f8f9fc5ab36da18f81124fb506576e29dc5ff317dcb57824496d3df9f70c2703fac289564e0425cbb1d8e4a69714da912ba5a1167ee13c5c597b0fa6587b47ab93297f8dbd34c11d9248a2e5e82fc9244e26899c2d9781f99f63edc7d4837ad0a2b07a2bc00251b6d73434896a7d282f89958bc0622e3f9ed10dc6fd209a6a9188ec8bab674f3c7ebb066df7323fc5c73ff9537abb08391e7560285c691d30a81f734ed32d034d3a64f8c385dd6043a5d709385c6d116c91f9a683b0f6128af9d0af482cae83f11d8de017a9408af6b9bdfe40895673feda7e15974b8b1f11c1f5bb3c60b6d085440bed380e36ec298ba396986ea6b5c34b8c7b68fc90ec54d2bd9e311296ccfd53edf1b57ad4272e44ae19a55485a3ce05a2c1ff7529382ba3261b1e5b2bb990640264dcefacb15870883b0bfa2e636cec0223080fece002e14df7a8b2c1ae448918bc691e383bbffdf4dc9ba2138019f27c2be0afbe339aaa0c1f84ce1289056f5eead9975398f23cd11fa763dad0f44f1d24361a28d03d7cc16e23855e94d7dafe46006481372a650ac139ce046864e7e1a19a9c52e58e37a343673c40697a6f4035ffdae03f54ae00a0d942e83edb891543a7fa8adda5fff4d54a54ccf02526174db511169911ad2172ea41922e429bd2804ac93b90d0b517abe110ac12f21ca409755be746312f4a9c9b81201519a29107a433c0229ac35b7fcb390ae49586165480b48a0157ac8ef4598381dc1aaf5e393021a070723f24db214bb53a0570d83dbe91226d672977c31f064b971781dd7f106db7013e2767237a27154ea537b41966e31cb046b8ccb787632b47318ec4408f5e30a32f3aeebb215ee72d210714db807bc40d2cbc236c800d99ad0370dd40c8dcf5018b5f81e93e001aafdc816cbf15a9f8ccf2a4caba2e9aaa80d4268d3a2fc218fa22f13544b8f2a37243aa9536d3102ad3a7a9acfa39539919d5d3fc32893b6e01aca940bba98a4e7e12718f6c755d73bec071bdfe8e7232c1eb625b85c17bad47a736d50ed3efa1e0c9ed16f1bd26cf9553d65cede6e640547866ac5a46a3eaab499097e3e91f2ea6692951076b175db849c0dcce3508bf31b79f9dcead1de0b1d49f939770820e7775f4e08860cf801060f483bc2573a006074bfe9b25a9cd4f0991e10cb032754a8b60978007c13a9210bca03f9748c85051581f299d34fd1d303e396065fdb539083be7c798924285a68a5e0c33510848db4272b39898ac49190cc60a732dcb68629627d424813648826c999c550149843af62487211d5036b9f145a79edbc1f06bb9e05ebc664f4a4f476124e830b6fb19b67e2818a7e76d792bb8f99a397f1aae58c49c1345681ac4eb683ef703bb3dde85c0608be3ec9cb59409628fe2da025e03d6313ef5d97e5eeaac99fe9ab4344a9b6e0158a0a59e9c607a54b84b8e91a5fbe4003f89da405bac357193a97d349fcd9110928604c742d283019e18aaefdf435619f8018bae112ae9e09b196a711908b75f6adcf0c65b27793da6ac17aa0588fcc435007546841b08dc1fd04fcc8c3513e3a8e95c2a091859d8aa16c92852ece7f62fa315c35366106a9ea5beefc8402b762e2f17c0d64866799ccd3280d931ecd097505b0d87959787722d65f86606b497273fce0d486c3f0115d84648b960eae52d51038f039202661093dc0e0eebce65fbdac8c8d3a203e366a808bf79736e148fc06983e2756f30aa302dadd8cfd7f82177262c2d6555279f8ad6dc95df0be7bf9126b6bda2530aae0b8fcfb96555f10442d3fb166ef50fb44f80f15abbcad582efd0b466d725181507ea2656fc3b1a7cb311adcce9c5814647b2bb5112ee969b13a222b0b2c1a37319e01244d3b6c3146b1a901cdeb0954d1d07563f94c503091deb5130ac0c274d99422a13eecffe738d6ea982aaa5b56f40af822cf978a1f75b4ecaba97d00f882cd2047b1bea7fe9a96661a2696b502691a587d12b07dd8674043fd21e26af7cb42ff304d213a32de0b68c24e5444bc8c30902656f172a70d564da0717ba1fce59008c4f5c425907e8a7c5e30aff583966769cb9c7703f09f8228f6bfaa975e329334f8f6e8cb4a65b28267ecfe1ffd4e3057a5acd8cc1b4853c2123b81f6c473b802842338729aca96693bd31d4b3d2281fe69992ca89a5f87973803359016bc8cf5994c02d1a467728527336ce7da7686cf679fbdbd1f9678bd4cf23b44b88ad0ad7d564a2e89b50c0244cf6fe909fa311aceb5d1255572119818a0e1d00d895a3305d7d081b6c842a25f1d38d62e18cb0f77a1cca6c6768217c12e9e0322ac31784a10ef8b16215bffd6b66040c4b27c8408ed853d5bf17fd8a2340f0a9a62b9b4ad917c85478dc9f542dc511a900537fa4ddec34b6242ecc4f46880c5dd9f918fb4aa371e392687bfc94cbbc732915f865317e522574de45f0154bb12b7ee8b0364a2016a00dfc8bda2a501e1b63f904b4a0069cbf29a34a613fea782e3897f24909de41d2435e2247796726016bd5c41c37b0e05cb05e7593f05a5bdc5aad071be3caa62c8074bf917189711f1f5ebd8c70ee23d3a5dac68ab2b42347de35a04e0f8013e19245594d2a6b2ab0caa35646bcc389ebd925c282323670de26c35a93e3f0c11817ab06e10a3d541ecbb1a4269ba39493a4698c86343f9c41a353d3b098b93c6cf011e2b61b8c10d62847e86556cb527813c6e1065b2cc231c77e5e89c18d93588149cd578cc5783809ba6bc7705e93cbaf1e8525c83c8a4842a72e437e66883389f7fe437f67987cfa08e6abbb98902610f7f06c45414fff4ecae5683e7342c57c637723f40c6a567dc30b192fd412318b815ea56493f3c7cca00620723ffb9208dce861426fb2db74d64e2a30276e4daffa80aef16577424129c187a85349f02b6f5ff112f25f9aa08e3db4929111d868e5bb8794ad27c71074a37f76333417f6c6db3a0f2888e088ef6f3df00b62d8020ed310b0a8c8ab96d9536f325bc7da838ac02f901dc4bf12f99823c0af292bb7635a0cba5e86a8280e526df1c145ddb5554d61d4e6221fe1f583a81234e0da93d976ecc0d72da360d3a5db9cbe46a4e49a6259091beab84ff2db8bb1d8b3aa11770277c19fedf2f1cbb8d7b6e4e45b38bf154bf2ce8ec6b7ee54a1114f58f56eae278e646d8c48d358c0f4e6893faada8cf82769e50f4632dc5096ef2709d0680c4c65ab743486516251c7c3c6e4d6ed1824e4b707cfa66cabef6a607bcf53ea87e9b10cfa1338254f719aae4ff67a1d0cb6788f6cc599b711d37e718fab41685b8312e98c2dc3fabf74a72d7dcdf4fab7a2f165b0088080be83b770eebaea48e2ce8688aa27988e011c13ea473f53e3219bfbc367a2eeb488ef2c2a18f5047c8fa1d19cad331a8973c087aaee676a0db010c4a797bbd28a5934279b954b3cc4537136138f93e7f28958b31f8611c92e7c92c04281e280c9b898224fb435a810d84ecc99036a036713bc42f97c18b9e85488ce42b090e32b61f7b65cd47b22fd6377d21edcb121e9880950c50741f25cf82681c4d6e31c8d54d7ad0285f88c1c233b4714e2ebba5d04ba78cc4cce5078df80a1ea5d265aa5ec3252556a23eb2a37209a0e5d5993266b46a8fec8420ce0854f5d1e4c71eddcdab17ae3b448830bee342f279f98c41812d8441335c9491f09e4eeaa00540e2e55beb5e1d2ea590f18f4a8d41f31934f246913e96151beb599b7c4f1e1f2e5cc90f3c9eff476e75cf0d378ebd371e40bb63fa5109c60fd90b1e605991efe3a15216e3023a9550437c009608fdde2c0005d70b886062115a9f1c0d886795f987cfb5a3f3b6d8edb7ba72aa1089995cc7678619cf67ce06f0e40ca55ceb896b13ae69a1e9f39dfd60e526164193c15b40705a662a36316e7e73c46cadfb1059475bb00778742651f4a0e7660f0eeafe5cf0103f93f45ebc5ffe30893526104651306489df9a7fea563a5c7ad86e979e09a8ce9c841e886262fc14d711b2cb9bf836e8a1a83bcf23dbbc7f96f97954759ee4898fa59f5b839e5db6b8a10075fe8f1e8f2ab26974aa0d5253a3df21695589e20983d92f5d80a263510e16c83140ab733e44c356235e32143512dec0e8eba0992e275dc4de60754e318b5a9a7b4f60a7f8adbaead2a500a5a7499b3b979d84fc32acf27a007e9eb89c407540cc3d01b71f79e0d9f12094c211febb89815878e682e12c212437acc05ad0baff8d5ac35e8dfa829898e8beeb071b0c0bfdaefe4bafe1bacb5fa282593e5c73e9836c4db0880839991b00222589252ce942ae8048e4abea3935696a21179795f00799dce098a513f824c125990428b2e08cc261d69cd36a52655c87b531b35dabff8be8d253924536d6beb98c69e630ea78187b0821a88b2d90c8d8e552c5fcfc97c83a0afa62a4a98f8e4738fbd343fab4580c91ab85897c03da4754532874f88bd5911410aecab4a59bc24908cdb029f85509e8aaaf1e05d38fb73f75ea1b94f212ea3ce8bab6ac2ad35be1d11dbb78d6252485b0fc3764bca78738b02cc791c13b4ec038d489db4b881f078db9767aa33faa1a262f002071640fa5e4f307ef6240284348fa1b1fdb09a3ab5e08ed21f46cdf985eed92d82a4d02a17c0712f8799552dd3acd0b6e6a4f8569d306fb1c5fad404b5be5d577851d9ac60b70a4383cf7e182c710d3b09ff150e22fe379402ea7db3333d1bf236ddf625e4c23e870961dd642c758ce54899581af4e39e269ff481c10aca82175aa6d2c368ba1fcfc2b27d9c9fb4a30a1a2de16a178db90f2297ed9116dbb529e9a75a5008f09e66cee2dbee323879fd78949f2aa0dda0a87dc18bb0d122956da2979035daa362cb8f5c2b3dbf4f35a5a4e25c367d7cf59027b58e6ad2087c6975890c0374e05a928129c2b0a46a002b1414b42a3363ae82a4f772a098341ae1d3ccb2ce5998294e69e8e45d4889da5a13d2920f56a5378112f674f3cd448a42b96810ec898e71d55c13f84bcd1a5a48092edf22046e20000c7d3c1b6a33859662483796b87499a5e38132a43d5f183f21c893a3e16e4033d8ccd6344573f2d8fe71638989fb67233a6980fb8f2d1eed211dffd9b9a6d2e76783659b79b80adeda3646164e82d4b7de0a8c138a31c932076a8c7da7a8daa9a0a5f6cc787f5fe08045d61072cbfb8a8662c9529830eb623735d5cf2098a950c4d4706eabe7053ae03a574157ef15caf7d5b1841135576a12e4da0015e22802f3a102ada8f69051f22326b2283fb61fbf24c71441610dce018eaf861e7398621f55a5ee03719a1ea56cb39a69f4482e0faaae51fe577b08c8bc1b50393d13a47130548e2bc74a46833e339f4450990e4735bc0c3734870e182f9b14fb5ca64e340e423d648cc828c541e4e18567eb5ff6084797add97929871ff06caca2333214860e98445b946fd5910e179a07d2b4f13140c287df1d064f1fcd4a58b333152886a8fdd2063c057cccc310b5881c52be58107aa02a32e1441d67ceaf617d7eaac322bd2e8b1d763417e5d7f92243121eaf753f9ebb682f41abdcce530c64855bfb1eeec7de51d84898d2908647cc4359574268ad600e87792f41874e9827dc90cf8dcbb8f8884e37d8658269d1c4c65db74e9f0fa4573f78cd5cd0d9bab3eb4e5ceb6a3350a4ce33b45af8410ca02050e2dee930b4cf341b497b3aaf9f76d4ccbbc70a0d8ede70a81f13d8720d24dffd8e687cc088647256e9790f5424b34321579c18eb5d211b6eefe90dc4df1877f71f1ce88d1669a6e210d4c9be60d1b911c5f54f47088a55017372abb6dce80cfc42ad63927d93c3bb8d5dd46fa6b8829685f03156cc89bde2f96e42511d7a5a937038802c31763fdaa4e11a0d4661423398b7e77b9c127c615a5e027b62e5ef54a48bd3e82d5dc099f40b3fab8404e2875375f05c604e4a489f31b0de829ee3023c1ceb7cd907d066cb505d1d4fed358e59e4c8d966657f28660c9e2739c6197424dd0cd637db2d5d54eda2d629ec2bcb6d945eb4373ec6661f4e7750e1efb99dbbafcb5ddd8b325c7caa8ebd4752364d1a3e296073c921b876c749a0ca6dd4d8b6ff482a6356a78a58654bee4865a8dca2431cc2c2a6e300508cc43953eb3fd800c7187014009e6f68c77d59812e9b827523e06df7080d89b130f28f8c7dc7801b84b803259e5b384abe7419b688da913cdd93041129c18e844b7752c519528cac13ee30bed5fe6c3b2aed0b21f2e24233e5eab1c7069a63bfd70db91676257b5bcb61ea46aa7e014926b4dded7816643750c48b21895bc92020bfcbd082a9041bf20a3d75730563fa84cfdfbf044bc2e101c4d0ce4e1b389770c384f24320ad4c94924081b1644d0929c8a2a2a9d9c840f5063d882cfec7fec3a80e3174470fbd45e59dee0dec0462c9e73be4f37b00a85e0a4c1745943ed69815a5980d4745db895365f063f92c166576391f91c7c31bad8af9764c2d633cf87b2fd166c8f264ec750c2af810894199c31a96a20e9ebbe159336795caf92a4341d17acb1c0c9f145ccfce0ccd4af05e073bab95b779c3b1203b48715a88c18048ca99cc90c9dc188e2835e6381c3f877a016066885b438c8fed7d76723c444eccc0190484e3df6a4162b29692923634fbdc14558fa3dc803f85906f2d4fbb2563d43e18029a6499c2907eae50bad9fef7237f589742377c4858019a425e280a2aba0622ba0fa31c7dd8fa667b0ecccd0da0665f3c2850d5e8fce05abce66413eebdf953dee519130c409a81d9c5e5eacee94debf64b4fc3a2c2ba40b3a9199826380900f9fd42417a95cf3cde33ee005e8b7226e00b9f0fcd79e9c262eef38003d09a6988c9038e360bcdf16a1c9964d464a047fb7b744b2544a4ff5e7ffcba8efea5b99a2a696cf36053ca8436756309e748b9525d8f3ecc3c908c8d1ba31dbf066961eb46dcae95c132fb054c9567ea1244ef26b9be4241cedc0db24fadb96b603132a8bd780c535e9521e9ca637c6a6816d9bcabc98b6f94a642d62d5a30b2292ad1e0b4f0020d3899600010381f202797100f861045350e7e0a0e5718b4a0c498df2841f48a19d2c4cdfc06b8eb2497f3176e4301548fb3a9269fdda30df143d7441545fc3e26670504a417a183e89ecd500abdfc26a9d5f6583074b5b264d41426fcdafb0972cda46e9f80f67992920126add91b7431e65c58d4ac81e729c8b03bc8babf5138f61b1d476e0662b85732dfee3c56673c54df250a02caafb0eca875f090f85ed7a3d32cf462fe57d484583fa0dbf4c1ecb53d60b3a2e6832a6c2a9f46be32cc9f8b339d9058aae7354924413ecf9f51ea3a987c55d0c30971cab3e23dc4a3d96c07225f501d784647c2909805234fe9d455e91abeee455b0090c6a6321712460233708fa6ba311dbaf4386eec8600cf1a26ef715dc037bee4ff65b231823f8c8e61eddc3a3e6b0161f34be4b7c49fecdb3101b5818c084c8203269fb2600ba41e0154c533cf330453ecc3d10845c04b6a1d5d1539b905f34112b5b5a08faf29a1bf610932dd6b7591a059de8d135e1e06ff683f565be9ef6c7a9b2b287d62bb898f4a21832453b9e7c00a40d2995f0fec9d143b83258ee944db1aefbe02e018acd9a139d42328448bd8e12a4cd82db0aeccda7dfa654f0cf3aa6fd505413e754fb2a3ec7fef7a04ec5a334024c207adb04ec79d404664c679e10fad8984e5a9961eb30e754055ee7dba4b105305d3d82720837078bc1f05eb8ae3119a71f25aa2d600c7340e186b09b9efb1a1e5581565c1a732d49c4b3965e3abc5728ffb4d791c7f9e27141b657409f1da3500ccf423763d305a712422fc92bbfe4e920023ac9b213f51713d201dea3ba620847d8f3ab3110f8c5f011f726cbf30b1755bcfd875e2e56223f21ac51a943507ac3683b0f9fd79dc67cc2d6cb23a25da2a57c8ae7a4e765963ab6dff89c241da0a4b3825ca08b0516c84475727c264da45d2fbdd45146777d2d4ab909bc753d45f63f76b6170ffe3e8e91450af043691a82fda7b42b3104707c6f1bb50bbce6c2e62e34108062d416422014d46ee4ffc0671968584fc9b76863a507d5222f124259e87fd2b49e8493e98989fa58e17bf25a82b2c81b583c27cefa8b8c275e87efa0c718cf2824a0bc768ea57db43290724682ef23b396ad78d4f44938dc82269022b73b28d73b9b757c841e52c4f2a4490cd18ff2abd3b096c32947ba36e464235fb76c94bf2bd909d17abc44819b48afd7c06c998821fb16ae8bcac71c789829b16d4d4c2486f6aea18fc6adf328f4d318f78984982228d25b8ddeab6506150f1a3918537ca0619502ba1830b6a8f70fabbe003361852b358fd66a433cf3f1b103eee4b4484b042d126f3502f27dcae467e884628dfb84189ee3e76c4e9e4f7ce0e11528fea882d0a71657b1b3e7d63f49213dc98a8bb2416d1898f4a06c816808295ba5f556c77cf48ee74b02b385860758405cbe63abaa1781270991d02054186fd261c24f93301e2b41fd93ffa56a536be71b3671729525c9b121abdfc161691192960478c03a1c5e62e9e73620d443d5844432cae4fa4caa346bd05452b9e7bc3e0e8e645c9390bfc870a4dc69aa1c25293bec5761a1341990388641fd30973fcc5a338077dd8ae8686cb5f03a37a81b11cb43d0b909708a3c0266baee4021279acabbc1a736ea20b30b26b73e458db4838ecaad0d485a59c1093fde98a1443eb9a1d1289f0f58162c26b8ee0f66e7659984e2627dbc4f10bf444319ebfb59574aaf362306550e7b48dbd351c2552b40248fa5fe7532a7f1520ca1b0b032c7421a72c02849752c5429fe0b3c41b40c0471ecfe1694bd128d19b73378ded9039e68e429ab121278cef67495a86d4a53b7bcae90bd6d692c182948936aaf64354e5ede46a3bcb26f3f7d7d7c1326c78e4dc0041ce7139ba942bf9a4edae22fb35575a6d46da0df761c69dba99136b709e85cfc259f730eb665cfcbd7e37a46ed8a06fdf4de816c2d2cc7b3abba8ae1cb3e7892dfccacc5db132ce86c8891bf9ee8fe1b8c54979c75b0d858d6ec58628d4ae32b5fb81175e56766e77405d3bad11473c2c737287ddf5e3793e5dc2eb5632d5b166e48ff8f2a50d8664a474b669a5fe2e2877858c6846bd1603696dffa51ef8249407fb69914ae6dda57ad84eca0cba00e63b512ede09036b703ea760cc7ec171d44b41383a78c90aa9fe0b396aee04f4f5bdece127eefa3cedc9d2570d01468ed4e5b117df9a24759c0536d88bddfe134fe6e820e49178842738eb62c81ef9b1a08e9c4478960a6b11aeceadcc98f73d259f8052612ee762ed3e00087886af51a8ab35f2b18c9f53a03225fe82989206559f2858aad52120191404a223c0e95eb81f3cfac84cb9e75adac62c96efbd826d41866533bf89a86e7ece3aaf232d6703022ea7bad7bc7a354d0ea29490a5ae5916a5e99a695591214784b7bec0dd8a8a008a3b7637fddd4fa544ba48bb890c928856c8e2c4b492a2f3f01f331e8eb248661276c2cc636ecadea654d27cfd2ee4d416abe03677a524d4966847d6742e2af3975455f92b158ae30f800710e064611b93814a327f3433809657c28522418a1b1f12c0d30ecb1a5f2b47d406e11469496314042fdb98005109153a0181c1921de515001b8a1690a25b0d62971a2f499ab9307a29ba73aaea04e4049cb0c323001ebb9d0a64907752c2c556387210f49f25151a7de4bc8f1ef87f3e937b5913fa1a86c5924ff16888ceaf6d99b73cb0fd66078e2dca0d6d8dabee74dc1fa9d12cbb9e145fee216959792bb4e36b5781db844a8ccdbe95a9b03fb886c0f3fbb5696180bdab4a0dcfd1d04b8cd6c5709136500c63d1eee6365a2c9445e619958a08967708ec6acf4165e0b14d31e21fa2b53b4a43f5ec8d8291320e69b12cdeb622bec66133a34c66e42aab736725f75c4303cf219544e43cd89f10c683b8ce10f106d319725479d23cb2610d615732d323643a55cbdb49695fd38cf63da13e72e9731c529963d9b0633663e406115239f2b889bd31093aa64e672d3e7a902f18e586d930fb3b1900c35c03f4fe6d7cef92a70f0e4bb833b60d1f1e7eaf8b9d887a4d947ce5ad280dd1ef376795ee8a36faba506d2474dd3b7d493be58ec9a802242a08dc6ee3afbb0c88974c6a96c150ac2d046dd24e5540e926ff79d0ea77ce2124143032c808786a61a04888c6be47e322b5e732ccba44fe670bb8b4fff249fcc630868cfc2f6b6b3f1a57b75f2cd8e4e980a8830472e88aa5763668f85570510d00af6eb63221c73701e0d753f44c8103470fe6907373137d9b0a4bdc3e1f51702245cf48ce547d4953cac76fff310861fc1a8d080d38d88c3d61af09f2ae694e1e2de5ab8a5e8fd57d77dac79b7cf388ca2685dfea1c8f0afb7046b6ada5cbfa7c23a093559f0d701c9ef61fb07ae13201cd3edf01c686c7fb543e06440c1f84785500cbe146a1cf3254dda5842a96620a9b2688798f0189d17cec274ac5cd352be6222873103c80715433573c0e59f052f45f7e154ed5cb5de2dde678f67f2f4fa111803400242c1dbc237023fec1a647a619a01c8c437a5181166886ea6126befcfd3a469764e44dd9f88bc971fe5c4a36fe3b81a2a81ac0a41574c7cb685888f589b3c5c525c8efeb3f485a9713430ce8a5906d4d153c3b2ede75fe159400e9b9c56c541ca6982080b65412559b0f2ba70c644fe2ff900aae64978b3a05a1c891a2b55c7a1dcef02aeef374aca70371e597dafd3c22d79a2227ab42dd7f78b9e2b40f38d11174f8b9b991ac5cfbd38408bf4349470655eaa2cfd69773da11861acdc2d8c2ea2ce36ef45de5650a975a2bc90b311dcd156e0e600af2955f581a1bb1ec90a4abadc6d6742b5ee275feaefd7449596e1564422de0baa8c1a854e05b8454f01f464cd001dd8ce36c2ab70676877fb6e28bc700dba0fa3eb94fb01c558ff358204a6d9a813baf724b215d6bf0c7244f5e4f9f2dc151de7b81e9a48e978a099d3814da8bdc89fcaafafeb1afc031ea8e850ad44afd7d047bf9dfabc62e7139653b97845ac278ecc44f2f0a7d7c59485471b7d4c6818a06e9c715ef7265a12025b30b97450af55d570882b1352c1a23b8ab25fbf3446b1b7258a401ad8a789afbdd4246bc0503d629dcdffb61d36a87e2b56d20a44dfe0717926dc922c4547b00dfdf222c824169db78c7bad2174da03b567e86700b8790302d110fd27228105e7bc98ce76441bf67c45151bc35344d2ae89a321eaaaeb0d0975bf517c667894f29919c17171d98ee4ae293d2fc08a93edc8b2ce562fab901126c13771ed2ad6687c91bc6322316f485abbaa7d06572b22f8590b56298b65ae545274296b17e4d76cf52f4c2c68ca28a141c53e82bd3570cb9cf6ba0b9cfe770b5de63374535d1ce12618e0d4fdbb2067078d33c45684d43209d066defb44cdcb6dde89f4d9676808d95a6a01e7969796ae5fd6c68d26a156a0e415e5029b2bfd77250189b7b84183069a1d42fdbcb1759baa49700d9a8c9462a595e34315ebf03458910b7c3be09452bb4972375af9d50eb4be886598b15a38a84eecc52a7407a3908089475960f37144dcd8f02bd377c38037930e8005947d4431e0e747ee91aa0760d465c17c7163ea94e77c3fef35fd8ac6a099c0d1dab712c69798c55c39e5a66eacb62546fb60dcda0a6f6ea113153bc127d186e03edb0623d12be3fcb50b7d861daeee39fb498dbd179225b451b9ebea99f9aaa649d59e816710fb7ad86ad8064cc61976a711ecaeedc97c65c05200c1835d2ee7ec1479f4a265caad280f7304bc20e7d89073ec4bfc1f789ad4bdc138a12c0959169c1698119b357bd030094194bdccef303061026e833f01655437087bd4accdb8fcb7580a3951ee052d11ece56c3e245f8780ed22ac7fc9a82b837b37c113a6bb3c316bd8fb49ed24aa326e3a8f9c3b93b61aeec6e2aa51a7bd65f482c8cd349b4e3ab387ed684f16d873b2ba39424f5e22f99e736fb64487000cac56da9415c9edd5091befc624dee00fc197f7bc9efeddeab4e7100ef0cb73df42f97f954689053366dd8e070992d15856a16ee4727bb515cf5148e485236cb111b77311b5404aa206231ca4d8e6b8733cd44e464a4eed9e16a5d9a3c51ecab29fc1e0e33000ca6782a0417278e2b3653fbe16c491242f32be3f77822501e396a428474ed1a3f29afb8a94b644bc4f64b7b4a81ccae38857caa949aae2c116c50e29039289950cc4bb7f9cfec3ed47403b6b822cf04119162810959fd856855c80a9e1f6bc195ba4e4ea5a2794ede2d68be36e9e4418ce37b472ba8f944e61ee2f7f3c80607b55915d1ea856665f3bbfa124ebb78d9d5315e843df34c6b482a290984420b532068bea8bb2294388886f7fe1229ad9a14739858f0bb147d95233b2217bebbba1fb02760f428b6a851fd725a8a4864402e2229105fb8224995a8a3ba90851bb00d78017f049da915363258be204d8e4bad5fab960562c69d488e4f2d3b42fd510916f2773fbfd81e6e2030e14379913f3e5e63422f7faec9c639a7e510d53a987126445f740a22716e84aaa1a40ab6b59ab7e82857bb4116cc906e63219f4c49e165e7084900890a3f7498264d1bc10236ec8a0f5f5018591ab3dfc79d840d2285c355c8e30dba08b683f56b8412cc08bbc7f45ce5288b99766d20fd90f0ff04fa83b5282af1ef91b7b9010a606e604623a4e07c109b671bc4a09cb48d6676a55e068080f8193d1d4746cc20b388fe7306491c0188e9b0181c801e62a408f599c11b402758a1f708f2e34f8a4a2987f89b8f9691a90f104ca95f55db87441d53ba2741afe616fee6096ff288339868d09700db087142c69c563966d625b5e5f1f0d432c0ae134983404ff2469bdb119034e8f38c46a00c560e8f1ce47d80b3d0ae3927798afca10c9156e7211facacee0aa6060195e0dbf38243b85cf0dd07eac10f4ac897b04cab51503d616bdd75fe4e9468aed87c9d5786edce899a218c7e869e4969e11cdd0f63a7fc27db8e3b5c72e51da6bab16e46dbb60408216d9b6395aa189354fb52d5ea63933bdbddf7d99edfe7cab599866105798c4f3a9cf4faad54afa8475620722ef02119a9f5839522889f16ca743fc26e18c4ad956eb9b1d4816167df889fd6f61523e1c9a9018b208b6523816ab19e6dc39d73042c9f613baa3292a323cbd4eb055f0a6750a9e32445bc06499f32637fbfea2c31083a083aefcdfb983c9baa09cf98a36fbdcb341d82b0b1560d343598a471852c592721976cffa629a548f3daada23a610162c43f68b96211a333c1033c0607d99c762b550e773a94fb59ce94883b628fefdbab0c1f868f185d8524d5b1995e5ede248ff99d92b29d56c5cf94a4f48033e1588b5159e2286cb7c07cdacb0bc4fb712b213d68aa91cc182b45bfa57d96c7c494de11f7182ab5cd69f61d1ea6156a13c10c6a57cb5ec033db421c5e2037745f1f971c23592d02e1d1c39749dd6747d391211fe9bb11df5962e4ca47cb8802b0ca0408d5f8fc521df9770638c0ecfdd1cb918d25865e3363110f15dee3cf5d5556dba1144467a90f63adc58ddc47a6738931e336b04c13b9ba7e9653cba7771a31a43490e6e5aba42f2cc947c62585be548e106a2a3b60fa42cdfee59e261affa5312edec1a7f23788dc1ddf4880ca510ba9ff7d7a6a2a8a9505401c08799a6f0d1cab916bd865ae03f7898a4258f37a601a3e58e8e8726b96c1c0d30fe61e425b14ecdd899d62af6f08ff9a7f2b8c7a1969d6aea837bafcaa3e504967df9a317c888f38f1d8a5d85709ad78788b3929671a1c37239d579828a19e49a4291b175f59d64677ace0485049747fb00b2e88795e87009c395432492f400d1d7c57b7d984e13c9871bf67e4c1e9924509614c3f21aafcb0d0513d45c2371e4610d2a8411db94d1f07da3ae2102cd7ac99aa06fc047f84c1779fab726fdefa9e1803d26e3c5f390ae610182dc954b21b9229bd4d3625de3b7954808ed3a2bfe9b893c4d18a040f413bd6a331b5116f2683c1a3b985e28d82a26809aecd0667d8357811fdedfd22a341580c2687e2d9cf5522c8921e4ddfad00942d638f6da17a1f4f51e0091a4292b619a49fc20d83fa9cdbfc33c8d18e0b5df3a19f4ccb4182095dabe890f3aaf6f95463997bce607f9abde62162ab867a26a9226eae05e5dbd8329cb05949cfba9bb03f30918ee3bcb4d7d75d601c4652952ee71951ff5b508f2f979044d645631f7c953976fec0319e944a60521f4abc82ab5aa8771e8146a8a400dfbe66d0a949ead5581853b244be70a4ebb21b286c13476a39e546f1f8177deb020170ea81b44e1e54972c7e02e80eb819fd3f6332873c6edc9202147f7a448507a05f0cf7a05062c9744d4c0b3a985a797e9337466dec557a7fcbe52c2228644dd23a6a33cfaa3d07ef9d785109223936ab82aa7d689828bb679793428a0ea897ec8ca22771d95dd6f27266df286f97052b872705bf8dab4ae32967896c4d10f1a9e9d6527b1202a8ccf3fb0ad61c241fe4c388fc5c397952ed5a2717bd1e69b2df37b91f7cbaa9c614eeb953f83c04033a2ff1ff5586ba583616b7ef1300c06eed66b1ddcdac19bc7952eb86828e75b5c31546957a1889fd0dfaef4b179ad810541ad9c3604bdf0b736d850ceb8e25762f9d8f9653a1fde15a60302cefba103e6faddcd92633038623ed9f97b200612c4b2d14cab1e9c40f89c62af1ea6987e63f185270ee51d8f1798ad7bf8e0a9abc486f72af41e3c0a6b15c374a7b180f81f0dd2af9f83c0279256003e407b3094045f44bb35ff1a4118206e046f111abe76c8e97eb374e61d2b1fae022d18fbe80ea0f7aea986c4dea49243c2814c2ac2bda77547335973525e4d87ade040b85647c260c4141b6d151d2698d2b32403da0f3d8db9d37a5a0149ba630e579dfa175087c871760f21b63e3d175c503bccdd7931a8506d3e8bfc7aef4455d616ab43eb4ca5af95ddce9ab990d91181d12dc921c4bfe3b97a97ebc0e86a9b639559ef449b612480548b7a94b648be6fe82b7ac9aebf175292143729a7182549817371b6006ca390e15c16d98c334807fd9462862c5a4b47e2d73b4443c60c901bb0db09cfddc409619269a41d5fec037aaeea43d6cf434ad40fe088175d3f1c58d8ed07324e0499810bafb82780ea67fae113a221b601e3f6bc1ca68fcc1c8806139603902c96d302f132e0b0ef6cdd5ec42f1318a439816c607bae4dde873ea3b6db1d5bb9fe0df3b7f19d9a8b7370f74f614aabc418c12edbebd85347c76eba211407e211e5f54a1fb01e7a1dca37a0bbcbcffee4ab82513bcee48e0500060ede555c10577754043498680a0afa6a7baba66b12fa09f2bf712002882bbc05da551c981b839e9de3a57bba2d4f031e661ae81ac921430fb310abc438d0f0b1b101c667150870a4eae1124248ff78eed633278be4551b2815c42a11969061ade5633b8e18ba49bfa195df06047fa583674020457d0811303d529f400685684d7b9d7a4b7d102fd75b1d1ac98bd6fb0acf7ab4c852382aa2c05f03ac2b7747963c102de0ad2c31d97aba132ac049c6a1cd2c258e8db14947c47c787f840c77917ab3c4f20e11c2d4283ba749a28854db2e6a33d822aca7c5fdda7f6cb3ed1b4b0cba2332ad34e9de71159620b0c569639374b00fe76b39473539b0870ddd2448c3ffd10621c85dd064f439005f31bf2da45d064d432211cb7ef529c58b246a3c179d3f624c9b197283ce74342c069bf51c9fe9f315b8954cdce18f672066585cbb4d44322e343b3b48b030267cc4e0ac536d14481ab19fb16f547a479e3032cf23b72d80e68b30438ae2fedc83630a5e425184e1646c6885d88976cb264179d06f1235cee0c1b3cbe76d8cb57d0efedc14009b0b736f66f127e1e46b8d64ddc5b57999d9ab0a290a9c004f66f3d7bb91503c51d620c1b4618a1623d83a930a11e28081f93b57dcc8c7446ea81750b0f2e6a4b0bb950700bf1b163b295c4e5b172e49ae00e547263d91718fea1bd9b841377db75ecdbc372bbd3fa7818b26f7a0c0fad82d2045aed879d3ce0f4b0d8df110b9b98d6abcecbda223bb0baef38df5baabc048b4c771fd54589635c01edc757574afef8245e1ca111cc09f13d45d175c819527ab2fe0b53cc6483bbc297ec23a63d2f27ae97c0551b403fb0c3545e35e5ed8eb3bece5398382d3e3390add717941d23bc0ea3b2958bf8de7bf2a8b12f8f831b5ea531cf17e4980a86292aa93b7c590bffbddcdbce33f0e050e50da0d7bc28fcb63fe3e21d43f7a02f5eba9514f13fd1cc8f43e08236f987df191203f82f448c647f9bbee8b199655d5d12f51e145cad353cf4d50b9da010cce4279bb34e6c14f7781e039aca5794f22f5a480124461db7d0804d11b1dbbda14a3f348267757bc7a8c821a7e6c143191e2c730d34218bb540201b751a8758a07ff00361d431286cff7e6f78dc9955badd24e24e3b4908aa691f39e2b40a61b407877044825b916db7b2021946bff2f4a1f4f150e5c8da8d4f20457a0d381c2466a9bd8e7718c48a6a2f3efd3ce92e5922834353c7b660d1da002bc21bfad11f97835f882a5adf49bdd2a1289b09f182281b2ac03fc98bcda6dadfb4c548f3aa52f22118794c178e554470405d89b2799a4c58310a704f7ceb18302d47cd8361f28488c74b0e36e134131b72a2e7a574d1e8c7ebb4ce7c09297547db0af92ccbd33e43649ea59ef6743adc8b6a5cf1f53f9d15c7c375638c08a37681ba650fdbd4a025d238d1f338b1fb7aad6a70eb0a309c9ca5aedc015e613a1d50f89a1cdb41c26af43e68f68fbc7f34a9e3fb74fe7aa670e19367e39b56ab173bfd867126b158822d94c8af8336d63faf19c8d03663db66808b54e0322f9a84ad93cc48b6f85ce2391af10f22de32b6efefe120b1813e6a96a1e06ea78c9105d58e3bac38a40717c0dab099c0afc2039a27798b4cf6779a777c01ca94c947744f09ae76b2eb3458287d8d2b8122e706a0b9372b4f3ac0b043a49614e3d42ca04bf281adeacd85b055e8d8266b48389eb5fed5d4c4e31ce89bbf63c8abc2d9d1f094a554980eaaaf7cefadfc9b15b0caa60736f6593196b3b1e30942410d9a17935dbd9dda3dacee72f5c0c70352bd0877fbbe7fd691c501e8c9a1a09474539ae93fe1cc2266f0cab40c8f801c644e2981e6da01b2cb8348bff2cdd658d4395e8af07a2716010929bb719c5eaeb18796f1c3c0c6aa01fc7a7f19b0f5fe5ba19fe34b3563ce4b11feea83c033dc8bc10560ba270781d02ea1f4a9068402b266368ce2303208ec95437c7045fe8a5a3bcc3f902657adee91c019d1967962ad5643da33d8e31972774d9900ba29c8c6191fab38942e7858b7e690829acae1a1e89bc11cc7172cdc04fe44574bd0c459686d49bfe83afcec01fc6388ff16910a282daf7879d0a84f9e01c564c55f9520e188897b0e9ca57c815f253b958bffd4ed9788feebc55f27556e048161f05fa843d087f1a0024d34ad42e494207dcf661b900b944923802f2e9f019b3e2bb807e36f8b690f9831ebddbc04c3b2e58c0dc3ead864f38e8fa745a70466634967b27498284dc141f95df9cafe08017d63cc3ee11fdf0500f72f057b0902b907232396c83c17a7b1fecb3981162b97b8cee2febd33345f76c2b96c846fffe1f76a7a7944022eb0fed70422e33bcf13ff01ebe5da899d2cf9b41753d69e5d0cad17f4c53100027a4afa2440f149ae908c76cc39b956d083987e0f2f2d6c1fb50631a06bf4c1f7492a0643b536e1856301013ae0ddbd8ee597dc14c73992d6c1d06f0fc74c3ff9d730df46278ced893e3418547e477c3edd1c7c738cc2704da1b647b72af8d040a353c625ba5aaa94427ba705c100ebca704408a5318054c3172f00bc14302a54d6c35a07ca49e8791c6f81518c92ae3edf6c9735e940b638c6c2eb0fc56ad642a3d518f7fcf690ab9b42b98bcdec90abc58531474b082c53cc16405009d7c2d68816546e48b97dfa062b85ff33f4d55d89f13ccb1e25b47da70021362a9444767513c4c31629945306311d7774949a602e0cf4355e90c9ec480695db0502b115f6f32d955ba38f4bd46ba411055c5e9351bf66088f353b045147cc066baf3e06555585dc563951101a06ffb5a2efd952ab9329c10861c6a20963b80585a5565d40360da8320c92868324e344e030271780d25279d26a25de688645f971c5a2da944c5a599e5d26c009af012c4d71642e30e2e773835a2a61b74a742548a7b225a3e1d3ab09cb58c0698c1c10e05912b04dd14f46430f2640c9b883679aeda8f04a33f2182692dd7b4dfedf1f2c1a76256404e44acff190888e350e5fca61e77debc4458db6aa7074e7cde92ef4a826dc0fa169b08c4d92154ba6f2f12e7ad51a9c48cfb29493ae586b639ffdda2586acbeccbf015f7a28c992d59737b94c2600313a84ed166fa88ae58250e1d8fbd87a8de4af5f57c01aff6835ecb0a3bd3db0cf8049ea8302c778916ae06a95f1e7c7433fb4233758b944550ec417828470e6784711a484c58b67f251cb5abae41ca58504f45d231f8f0f5ae2b9887338c7a58c246e3fba78b4687c26d222a63732f15e824c73e8aad8044213da0562696d1f217cd0092bf5caf100a452880284aac8922dbaf0166d6bf4dec2b9008ace2f5acf6662b16edabb39fbb02590102f51dc79c06c71e9a3f6b2a26cc2a7cc53fe8f534147240b9355d5aaae6065d0c5c02c2b91dd080ee01b0aeb16fcd5ba8b64c85da1910f06fdb867813461195409635b36d3d3c168bcc65e2d8f9e0f7f7a47131eee64a894bcaf4d36b6310e3c5770b307f51e6b4d82ecd2c03407bf2e51461451a89bb5b9ead142f2e608be3607d317c325207003be3e30ba0c0ee8c3f4ad9ae359c4bd6fc161c73e3d8b69ba785a7c39cdb0e2ea93b018806541de7a0d50b9645003170210833cb56355fbaf4283a866681f2162a749a03173245ce8e7a25ed938b1b4d5cf9009beeb0e4f9d869a8682fb7fba4f5831041bc2c3cea9ecdef396c61e9736cde8fb1fc00805c2140b2ea5bf3411a5633428bda219181c3cb974fc782ea4a2f1486d8ac2b287c0bbb83e74d513276489c8fbc29cbe3b15f928b6474baccc8b711079c3a28cbdd8a53e9fc86449ca68e914e78a616402e98137ddf191265ce4e26b958546925c36c9d8b2a6c2c1727e47ac7842cda8c978e7b0039136772db8da7f1cc9db4943a3f7240293ac3c9433eba90aaf7bec8030396408b858c43a9768bd97262ddcb520bf48fb421d27b1353e0112065a41953ebc46e1505629d61ca024317679a0e7f9c1c741656290e149a3e9248d89030dc147d30f146af2565600f47bf3144cab660166768865cec72a3fd354bc76db4ed32f192656323d3573214e84cdf9a4737d406149448c85062a1243d0458ae21ba3600ed466b21e79907caeb26145cae5e3feb43755925a92eab39c1d5609325b6f3d0b6abc4e84056e8a1b2afc674911e3e5e65d58b7f60394841e511d76cb47544cef8879c1fd7d324a6bf6ff73d827d9f04b135a4f0bb408abcd1d752bfe8eb9947f48b16e01794e3a0ef999a4ea53b24934af4ee6609129ca3087e61a45e9d82a8b4ca182330f328d7241598a2c6b076f8af679bcc8d524901d43c0c8a38dcd3e2b385c0561cb14d8f4b5ef473fc086bc996900f36a279548adf0012174b7d04d27b217b121693e8717e950174f8d0fd2887e50dcb03779343805c071b87966b3372ddc266edffd988cb5f07eb97d486ca0eb9539f84397406083512fb20013e8a241cf7a087b228b0251405bfb71cfcbae32811d1e366a4f512336d627020b5bff6a82e87122a2fd3e3025c4c0e8e414d5a527267a330af649cf2475822064032c6483978a24f8518ec3e7feca64d740ea8a9fe359044f2d86247994d49e652eef690be2bc9f58b8953be3b0c904a2d98c3df30e2a7a88de62673c67f494ca35560e02ea5ce3679b83715488acd06d200601e78247356e56babb3c33ff865f180e34dea1b1ceba972cd8f3cd0858b22c58a7c55b6b4935117690f43c9c5a8f820079a8252d70b0d4fead1a67cd0ac00884c2e204b52664c8fa183f493ba81e2cdd14776c847425d59e57b5bdeb7ac5bc4241a79ffd7d8d677cb6004a641492717da4bdf707e8bb320231413dcc3c3d6b7df6b08c53d86b2a88cea65d039f7d565b4a89697b8225a623437e5f8da8c105ead1603d65e9c669fa09357a97dbe4f6809d3c9a70671f3e72372d8fc91431d55751620da4c8dcde34c05fa6c8a03061ce7718d4682b87518c77104ba5f7c95a9d5141c563e04983697e69f768f97505bc924a6001ee0dcfe6c3e1b736547b27faf0f2e9a858e0b4e7b9a8110372246b0c2304081ef56606110b27f2b063c96c6bd9d4879dc80c67abc0f0d8a3d0c03a0afa478a6f2703b0f80f864c48b47d7f2653e92407741bbb28783158554357ba3e5a28bde4d555a178d62da553587d610fea7221086f69c6f3da50f99f9ce3a0afb96ff7c7d027fbac51952364ea740f1622ffc94530526754b9ec970a5318987dc41ad6416c91973de2b2ed8e899d933aa34667982b342f59b3d8227007c449e00c72001ae38ca1c62fc417b6c34eb5317dcb0f1bf19fdfd07c3e64db040b81b2b12ee863f059e6d1b59c887b322d802ac5bca23a42a7d037c3c0bf4b46d100cfa187cca49ee2dcba97af1de532cce7b05642735317cc52013b517d5a50d5d7cc90045394c8af2ed7c8c492c6ca5a31dfe43614eb10bcb98a3568e7b2ba0c6e6cb36d1a1c940587273033ecf2d251e0e5441e5c3471948f21cbdd8d8a88e33479654f731523a22125ccede6eea38bd97e9ca618940a0a403459aaddb8fbc3a5a2618e7d09310a30218edad7050050add6076d661d982628699701c99988b27f8ab18b951a75c93b9a32eb82a5ce5d82f7769968d7a51c3981f71b7907820504d81785306dc8b4b9e694920ef425129ae710cbeb3aecd549e56cbe16d883fe44b3bf9845c253d91d8fd20280ad9215ceb4651004fb136163243319e9d842291c8439265ba9fdd3b7a610a7142b3e6a46312075d73b73c57269807ba2512a81477b4e8380459239dbac92696be5c7610ac8b8aa4773b94bb26782a2677a012acdbae4904b954bc2ec03a4d81fc68eaf91d8cad2c3af82b4391c203b2d1b628bed45cbe2298e2cf2af835a1f54321a6255b3604ee748826998883c4c76ec63f04b18d73529449e1a9b2f479f090275a7226d9310553dad6f4f5781bbcff713a0ce64999bb3da13df581919c0830edadf5f47e985c3145e22c8257a01582253f3e380848db00dc13116df0aa2178915e0a015f868230d3fff388f45ab35ef1e6a34497fdddc97107bfad7ee0567369d73456d8592b152899ee24f7362506d8be1fe8465f0c26c90cb42c403062aa181a924db9d10060aa7ae9c13fc5d4091ebd6fd38e78d0bdc0fd4a76eb6182a3ea8e6b9c72ce0af8dbc5a08dafbd3664990774d478f027b226dc53c1fc824a80d469d348a1f95d27502d31c96088087f804d379ef25aa9c609d7fe7301e00af8b2b3ce8c20de77dd81012fed4f2649bf33dd4798871f8e2f5ea11f05cb6ca1dec73ef316b43ba75173feba84c37208ea4567ed0fa9f50675a8f4626a745c5fb0ba2aa8f577a542bf398330971733a3bf88e15f7a83e016a81c9f529ddeef04bcc138490d3bca54aecdca2fddab7d78939c6a8818b2c6579dd635bc91c4d62b792d4cfdd95e253f51ff3f5cb775f7ad6e56cdcffc746a385d49865e9d6ecec5afc8e6a8895292c6541fb74a409fa4baca3032dc08f731001c41e281a34a34685c52367ae1099d90dc0837fa42cce2699981430f559c3716f09a1ac549c6f562a0d05cfc1762e68ef769cc6927563f25134999d57074205a039520a9b0b11033581e3da2e6ab70a50dc7bf747e6fa2ba2f4114edb62399827cce00f0304b24ef2a3dbab2f7d1086d14365a599b2325c9e08bf7d5561d9ee55a15c85bf40d8fc4ff8d68fb427a25b3fc4a5af4068339d6ae49c34b4efdf0c0374c82a12130b61edf4bc4356ffbe79c52491e67576f41c6e1212dcf1d4ef488dbd3270ede944f2b14e1951cee2dbb83161584fcbfd661aaba8f7dc18882d0600a00267428d2669b987ee9e416fbd87ac4f417ca0482f1170773d895d496c230ac70512b3b4e771193972f5bbe4cc3d7c9d7af9a174f093d91d8027c13a6ae0dcb174b75dbf334fe0927926dd42e5b99d7bba47b60324bc9b4ef85e71eb0014a407f04a1610a24043b1b97c4aa18180f3d0b50787c9812b9dff0f5efd364cea3a2722658024d22e49b9c521d16abb992931d1f6b0eaab15c318deb41ea9d84f1e0d6d0dac7e0e2fa9dafaf3cb617240efd277416e9038cedd686bdb55dee3f4c22d4c2c6ce2260efc1dbefd6d386d49a2f486fc91020b60f8110e46a5a9602651aaf9207e161c9591e1a1293c0eb9f7e60c7d695a8c04e24ca037620e091aca6f648498e9fcaa68e77aef0c10316910a5f88517c86e134718ff09f5bab2e89a1dd921b86d6ee465f225615ef0e58b36864a9f32a7fd2a343cf1d27822c3f0e9492f9007bde305acdab67ea9c02ff2089fad445bd0fa4719e9d8e4e9b4572c97da5ace29dc03c8b874f9ceb148bd6cb066e0c3c8994d5ed103ec34c5ff9b9a5a8927e746705337af56890369cd286433c059fff834a042417950d82510330f0f8f9468803937dc5c5241a6e1035d5067bc492aa53fb50ba3df43689b0151b099f87153d6333dd0010b148060917f92efa4b7d95a48303a4aee51390d1399191233ba51f54497005ba8a49dedcc36c95115e89e7aec21a40c8216d313fb445d4033e193cfd0f75075d06812a1b2597e2186a7965a4408ec01aeff02d9693092da3da352c53133ca891954a55940f23dc07bcaa13117bb8d13b67545ceadbfca1e2970e9ee6057274f908bb30c668baf6f9e40c83d13cbad5a1012998e6d3f9e0131bb6264f2b31af24c58047c9f299887e06078fcf9f9e84ce6fa2bd9ecc5d985ae0a11bab9dade94ac2e40438c366097a7e801a5b9f1a2b62a07680bd7aebd6df89e90f417cdbdea71352c8d4001f51732bd425cba7f4db38a9324c1cf4ed65a7679f48cc07dbf457aa6713965e1ada4a14ab55a6c87e4be48121af1a05cae342219c49e8af6bc2d101e11f8c63fec76b392d4a06c3f09406701f23e8428b8e3ba2cdc32fc7b434c191bf11cf641c096729047a781eec2dc17a3dd242d493f104181933e090b38b8e8c409834b935ea2b64eab671f050c914c28e8626d55b3d9f294c09d2a8a93518bfba3d0dd3b2c817e22e0c31d34db08d2142fa6501ba5f8993aa47c9eb0ac8aa4e6f1fcf7332853aad878ab5d80af44b73483638a56bf49ee4dd220512cc6a270c90274407f939ff64aaed26e1e55628821b1ea2746f2bee8ab534ba40c30273488d38890765ceb4fb10b1905dec42f457eb2d0282cb6184200c05a3c2ad25818741e8c3681d6797612a00f3e93d96d194b025f5900d4f388b028850e470582e41fdcfb08ca5f4d4a84d4fef70e49fe42e88c9f4ef735fc37bf0fb46288b8ac92fbd991eda3fb3b1f15dd127b63a98b2d671bc93742dc074e08b7e650bd489c09c1c2eb73aacc73b88fbd335cc371b321ee699a811c35e0512b9bd41eeb0e080d4ffa424597f904f21264f71461dacd9f79c88ade17958c7b4a6599c3942ebe1576bd653547284614e67af69390aaf18e36985812897aec8e48555e4e27ccc3462d1c7af4461a4328cf18e178799def3b89bba69aa25d120ed5dcf52efa8bc7ee9d21eebf7a52a9c90762a9b976a61f6cebcf26edb707802a060cdba74162fc318bb1eb0e82a62bbde0d6e54daa00ce598d643b396a1bb3788c2db258ad30834b4b624050a115152389fc01e536c5e47d6e77b8f0e2005239217bf945a895ef233a804ec09493bda3f86435a9e88d4728e82a0539c240326934d1622ac638e5dffc98875dcab7770c0278eae40f9ad22501ab854e373a2a2540bbc4359565b8b78e6598497d3e4969c0b3429cb38f7175a94dea64ef18a30632b918841fef3268d6cfb6d3512aadb7d3bb08ba9b0a912fbfc40e322290b4a5b7745e206790373157a1d0d863b07e599388444831e98054a4f651ddc8db93671f80efa2c06cd2317330243b9a8454fbe3a08520a42f69387609e3d853cc23aece8a03d2a65131feea5624ff980f7932f2cc439212146c06151bb2e78956697f8670e877627212ef712d0b10727ba69904ce9ed1776dd8df44223526e3b82750299e2fc6bace203029b217337851676b313d4db1e6fefc2f86a2e1797ae42bfecaa8651aaebc5ba9b17477bf8cdec5faf8556ead0c2d12d5f3ca9ea95ac2eb04fc7998d3f75ff7a952e6d5456a45ad914f94aeb617145f83055f79a144675c860ae51859e0426d8cab38bc8fabbdc4b3f574c3215f1cbcfff827147390056dab8fc0054b48a6380155bbed65debeb0505b8f00266c0324efb58740ff0d84616d10bc344ee7aeef68ddc00ab24796454df90fb61f0b5c8fc980434c47a5009979651828f66378e30c94df7217db6e4fedf851c99f4206f741d53b27d873a1b5b512cf1c7167a6c52e0dc99d1f6c95bf104a8f6eb85b0a4437574ba9a33a9b618a063f0e8e91f1384af78f945472caf6b413f16500c2ce5303ff827fda480ae567a2ab6f68ee543fea1c40e31b85dc46f4262a937912b5d28b0e01f68c8496a08605345c1672130ff7a9c89b3a7ab074ffbab3966280cdfae557285f784f5fcf37dac71f0f1a0e022694a80beb70abfe76c0879d18135e798740b9fde014126a86eeedea16f81cd42aed944346c81c505cb0483540f1e9a8eb8ce4dbe409f9fb4968d73858b9d78938484595513ea0faee3d764b6f7032d77eed948e33703944bd7cb6334501704443b1f541b97db8aaa3589a4649ed4b23f15d638e56114c0854593af2b49880209a2f3f24833ff4e902b0518b9ae0c519e282c108500a194e412e94533ce39f25263c48a288df007ea991c66808bef2d26bb18838d777eee05b9973f0bb62f427032c443ec48720a939b3571a8b4c14e89b05db9302021a0fda0a620024dd6eb88555f52f75bfa129939f27d2c3011e12055f3ca74481de5a64f0a9cedf0a9ef13d7d076286a7208a33baa36cbc8193639bac73cb892cd562f51aa0f597d576b38cb5fd3a51947159897828b0f07ff862a60a0b17a738c00aed3ed139ffcc9d448fffd37153a7d86ff3b76cc069b073b6cff477fe064df39994ad30ebe5acf5740594a41380bb811c91d6360f0f84b45714c3e69ea8ea1189e032e0400fad57ecdde22dc84a4ebdfc7d00128a83c22c2ee5abad031c5f39b78bf5d00a46585b4e60611132925711a7764adcccf976d6aa3c436746e8136bc87a7bab00a7784d1b3bcb089361770e00c9cc9df8bb14ccd52d1684dac4c7e9f0543ccb05255bd44da6c7a78d7c0c03974f50bd0e856456cb0b23703e72b293207d0deeefe1fdf654408a611693c1105d74cd8adeb23ce44c3338316ba24c782cf1690b47d966f130ad2c03715255663bfe23b95a13398c297a6458c79a5c1ed5898989f4fe5ccf6cd58e3b82cdcf940523fb87f3f0fa342e456bbbb463b5592e2c69c4a961650a629a1f404a11e6175edfdb56221fff6ff6f4251e8d99e66abfcccadd5b6220ee203128d80f963175ce0cb601597310c4199e3f43fa35725703401d31e68150bb1ad837f2588db791c6602c4f8b7dde4b1dfe9cc3dacdb1544bd0df9f8175a6d2962407a169482abeda8cefaa1ae55de6da713953d025f832eff9f2a8ea70f1a89320ad3872b4e6eab2d4afb377ed3824947b0115cde6c30246cdeb11a458091855f771b696572179ed45c0ccfdb5c8d7db6900b784df9abfb6fb2860be875023dfea178966a6e40fbbf98a7e1c1a4a6c2159c789475d1d4caa54ef0fbb3d263390d82b329ecee52a9db295860192aa2db9c7eb1c4d49d2d6fbf0bc463e284af0ccf7a5d30ec0325446d8caf91964b723d8113914c536af082c07566095d3b91203714d7278e8fa4ac0799acd5cbfddc41d4327ef8f735c0f3c1ddde3735412c45d2b9f43db50d425faf9e6c49ae6da27d3d609589705b83e91b077a4dff8e2705311417535dee3910962414692273652e6defea41a0a30a7dd9b961f24f19df773f8d27b3f9a5980c259d34e2689d5629e3eb47bced17997fd9660b91c2cc301d834daa83a2f67999ca14455b21174211a403dfee86d9ea15d650e21b0cebb45d838d8182a5e5a2a99a54ae58e66f47af7529a6b8c558df13cab30af106068d5eb1883e024505440a06a4c5b9786de61153aec3b4ec6dcbeb153bbc42abed9391ec90bffa64d887caae74d6aace6454713914152910627526e282252f869688187a5ce199483e493c2aa2112c430b21b0bc28cd86666694a88e7faadaf6094e74034a550f89c3cda54936bd6cefc0c44e2f6c6bfbf6f8a6895520a5ca7ef3eeae282158242a278dd39b512f749116466a82a5db0e67fa4b7491ea2e0261ae7745d0e2cf38799f231a949d45781036de19d53b97a6e292ec9e81d2ed2efe3302c9412bbee74012da81a65ee2a9c72346c53de3735961bd1870b1d73b53989f05601354c5045e1e04be0c56205e19251df96c99e913e9b43bd2b81a4e883e746567aeb1fb29afb624fa19093b926230f84be1ca723525909145d73410e585449a5f77b68c5aef38824056d6a2bc37d8b0a227b26dbfb5dd1a21a4914dc8de7b6f19e00c920c8f0cdae1bb52eaf037a10e3f73ea0eefb9c01c9ec6cb8fd4fce2f03591656408b84576f12335cb1ccef88793213cec9b96c34788b3e3105ad25958aa98c3df882c1d58310e8f23b2641c7e876ced1c1ede87c699f1ebba9d6b647b7f14f0edfe24e04224401342886b1b472a59d3894508216eeb28e02680c74dd70067b940bc747b9c740f707a65b4548fa30cc0e35a10b7cad5f503f400c2003c66bcfc82b46da56db3db66dab6d3b6b16c1b6adb52dba6c9bcdd9f20aeba9b6d9a781d2e4ac68d995143c6451037886ba5161ac4ede68106d1992eed82fd3c7bad36377a77c85a89524ba989d213a52c94a2284d51da4229d5ae8d5e1a3b6e778d2fb6876ad3bb5b87acd54d75751ee3ead07117b7007fb938ee72739c747f989173e028c035961f72e028804e6641a55a5cba17986c535d9cc7b8393977716ffce50ae02e7700275d02ac6e0620801bd750041880006ee0dca0522d2edd0b8c6ab4a9ae8dc7b83ef87017b787bf5cd65d6eeba46be305a0c5eae15aaac5a57b81517106b069b17ab01180944bf702a38a71a16daa4bf3181700d848fd101ee0c900b88bbbc35f6e8dbbdc9a932e0f9f21239fbafbd3e3e90471969f206e690851f317329acb8c19dd8c192f3366c0cc98a19a312366c60c173366bc9831a36936216e1057e3e176d7d4d8e1d2d060315997b8bdc80d666e2abac55c9b8b1794ea701d626c6a8c19f433ae75707b919b6a6e317473716d2fb04d46460c1c3d961817351ab7ddaac3bd1ee35e9781652e1135cfc0f1215f9fc95a2907558c8b1732bfd86ea76b7a7751b88433c9747a966b3026d34c0cbdb5b82de985eb9124936066b9905ecdb46d777498dbdd09cf8c3417719391dbe776e986af2d879997bfb86017b79be6a51bc1703d927023ac9d367bbd6f77f5d1f54eefb3a66970f5172ec70ab7f562b81e49b2772d7aa78779e5510ecfe8d1eba2c6a8324cde6eb52fb99b81114386b79a816d3a703de8edb24bd660367a5be84da1b2e6629371ef92c34d77e6a30be3322c39c6cd11e22c41dcde1f2170cbd5ce7504dc96ab9f2070f76b308e9a7997c361f0bd06e3767b333960ef35be2c5f99e2da34ab193ad0a0d9a146cd8b4de6a48d5e5c226a7e79b934a277fd74674ab773b9a6eb10371a72a399db0e74ab716d353ca85ce098ebaa7b5d9331e9408366871a353c00a0bb4d63db68b66d876dabb16d35dbc6c3b60160db02b06d77a3b74463c35b773b6fa49ef168b8cc7c693bc0ad46dc6ae4c6c3dc0040b7005c9b8d1e5c4e332f34f275172f95edddac56a3266e3cc80d00730b00dd6c5c5b0f2c966e1a964bb960515bde6e65b931dd25a2e6d3b51ab8f1103700c82d0073b341b71eae8dd53a99eee2e54b83b1d1ab658d07b801206e01985b0f7463b5b0cd86ebb171f8ca646cf4567ab1ccdd19bd6db5992ecb4f574e35b12ca72fb15cdb81cb51c26d5900c0f5489259606e8e05b75cd834d7b75b63f4ae932e2a7ad7ededa8cdb0b72711359770355916dc5a71b3919b0f73bba11bceb5ddc0360150d34d2c31a7eba65f6b0da056d2491677d390ae8f6ea417eea05d226a1ee16a85dd61c6ca9341434305f3d2b9b4d4a83a5ccf90fb01fb7578eb736476e5292672c9da2342a089f4894452083c4a4640598c80600f4422063006f00c31c805162e096a2b64ec421e9e48f4c1336431026a2b62103c430c72c10848fa9c40eb996f06d00828b6209da75958c9e5c0eea337c262ce393ff1a8288b19ed881c4f933c86898e472f6a47d4e489fd4b45c1439ef83c2db0a32bd11b4591b1f3d45a6356397e0494bf541439fe5be53a274dc3052e287908c4165593e1e808d908cc5f2a0a1e32c4e76981fd309e1cdfc5c749e48292e1e7e3b1be9933804c906d155e7e3a319dc85f077126d43450b05488f2340dbc4fee1c5a2bc12c27c6f5c0701b418b2518659453ca3927bd28a5f4baaeebc24a946846c9f0d54a96b2896c128362d0952bd00974d2434394c8723f640db1be8ef8a670d062cc79764bca6d9300f5e2aa75f1f0f0f0f8d45cf39c335e7af80ec22492a045155630f179013f843cec77fdee57f8fea1cf895eb4dd599d5b07165ec6e8f3991833338f31330361c08001672084331815bdb8450fc67362cd8cfc4c133330fec1cfe0ee12e27739c280f108e331aec18871bb99c744d64c8ccb1918b7739c99c15fcd53bc21c382bc56338b6529ff5dac57f20de12107e75574751dbc6e9122a227e33c52441127d8cff33e719c4db0327f33771179af0888273d693f4f9ebe5ebb28a534c33fa333093282496419e4013ea2279d20bf43bec7046ab78a48ac6fe67ba4173d6923cb22b2d518fe19d1889ef446427090e84de8334ac10bac58f1c48a28425a7c342916667898e112281c02e0e8f5ab19e6305fcbb57727d2ad46baf5a5cbd5fa97225b37943de9b268d84602827be93991544995544958658024df116a3390249bb00664320907c9a5dbcf745aba1cea25fc0df14c044c36bd74c821c09e8449e7388ee3542cd80049b209935e3ac9f46e6979c592e5b0925a3e1209b7bce2212d67c1435e5e4df708cdf5a5fb91f0119a61cebdbc7feae0eb0bcc7cc59fd675a5cf522af554e9dc35eea66e8a748ea65e4b279d4b7d9ea65e4b2759fccd14e44678f459b9cfc81a9dab1c573fcf3dab5cad52488799f4121e328a58c503be74f812fe46793464748c343af69ca8912e078f611f99f097249bce72edfd8264cb71f893c9dc4b4795f027f3e2850b1731312a150ccccb4bd7b9b8b4b4a45228140bcbe96432595b2a91481cb76d9a361a65594b0b463df5d55cc232074373c905067f57e6de75f8bb72e9a9d2db057f33979e7acbeda649e16f66eea8cb429de3f077ba7de9a8dbed95f0a7f5eda53f91aedd4422c163a463f81b9d44ba1ce40c90a4732289843f9849f6b2748bbfe752cca5fbfd1063ee8dc343469f868fd03cc2d8fb167b0e927b086c8b2db620ca47268f54867f81a824a49452c238853e3dc45d67ad073f133def5ef4e094292584efba6ad1efbafb56b61a0a424da46107281001138ed049f2240a29409103292861680a3afdf642f74d5522821a1dd27bac8e7c7f8bad4804c43f123e5e545ccd5bd2e78c45f2277d3e88901d20a9cfd028e13a49a4ff48bdf41fa45b5cc2a9b78e901d20af3448a99a22ddd6b96cd59a0a226407c8287528142364a76f7a80c856eaf32daf4895d08de8cd4f1c750708f4396cd2fd833d704913b55ceb6eebb8b8adf302e6e5d0c7fbac38c7c6c607909de80931e19d3443f2f1eee292fec21ee696b40b738ceaa9a30ef398db3ab706c3d5bcb60310a0ea2f6eea91ab8fa95835ca4234cd3cbd41120057f32dd457c87327bb8e1e22bb8ece3eb0d0886a847754a963cfee8e12252e475d49cb61aec98d449a91e7fb3fb055f5980349ddc5ebce8ba72e9278eeaa8b44f5d48e177747aee65dc4f4c031afba4d644f5d24f2a49a7da48e924fbd621fa8c36023e251cf89a4a72e77d44d1de6a2849027dd873ce9199659bb128022bd6c6739dd84a2dbbbcb72977b7acb353d75ed51b7c4cd701748e9347be60e4b921a532a90b226fb7ced568d3166b7d2b0f15ef72322236b1ece4ca426c7dbf806223555661e291d506107446aaa6821ef2577cb9cae95e29f0b47ab26ae6a687c3543b05007f05d278533569185c4d504a2b0f3b84790c88af887c27b45514a5fab97248400b2fc4edf60597661c8f28a2cabdcd1237af218c6113df9e739c506911722bf230f44be5e2f7a551ec84e116cfd74c2b65c5daeea3ccc3e6bef454ff2d02b79296b2aae81c2ca9d7cbddeaf26d7388f11a9a13123c57e3394684ea1a978c0d833b3698e78abb56fd3286b02bb23b2de23a69f7322ab6bfa36fdf73d211b4c91445c426546ebba237af03bd1831712579012892c0c57aebbae5fd8e94bb70877b77935ec1289132882c58444efbe57b308ec09b91f9e872892e5e104228b1e5e0891c8ea5c93250e12bd089bca0362ab87cde13d780bdf2dc9220dc2119ae511cae33c3c3c3046c176ddbbbf8be9ba9877476d9f690979ae28aa0115a04c3901d1508f15538a4869a59e19e5be84504208930841e3e028a26fe4a5a41ec35f6ce9d0ab88f300d881bef9700290e371c4557d00c4814074ab46afe27b4ad3c47fad051d38e2e71161d1fdac7170c01af19d71409c1c58237e3e07e2e0f8010823e27460f1b0c8521df00811217d536b36d2368e847106e0891e76c95d871fb858b46faa928f9b91311553ca9f97e3dd9a8616c1c2fb8c9a683d336b6c551e1e1e1e219d68d3da9193d3ad9a9a6e59b982ad96cdc99c082f9e2ca1ec1b52d6a29545444f3ee222493a8d2e6187e8567791be99f9c687367c204b798d462e0791e8490933c5423a399bb878e214a064780b9d3c891e13d1dbb1235b9d0dea82baa00c99647a082f554074b2b52357f010daaecb504726e1d1e9bc1d720569c428bc456f8350661520d9ed841c73f4aa619421f8448e07126468686808c627704913ec0910a57c6126b295ad204343434319081790900320a12550a8526444949b0aa655d02a32d4b1d2da068ab0271f9b4bd8dc57fac6872504dceb35edc4f5a84d13cfdda96da49235713d4ed986ef28bbcc19fe36b015d92880299a8d4623c7df084f9c204ad00da248d1051d1c2a00c2104ef044080727d089ef0a978043abd066da63cc2ed8ad67e499dc5758ecd725acb7b245cab4d1eb9bfb417fcca869b797f4d2e5be6d8f9c0f7b1236a293ab7afbc8f9289dc34658b9aa2f3dd6532dd88f46aedf72e476b36ba3d1878cde55727ba1e221353206b2566b71d7d8837c5f7a8028479985958744a04f8e4d06ad67a48f798a8da0bfb011560b37421daa05cb85431c681dc3f6b552bc5661b43dd4e307adb3434b3fe7bc91b93d1a35d7e8fca6a9e67bbe9b9a97bdf155b18b7e0a691dfb068350aec322ab1d1659fa9e3dfb5f5f61c3d09de1dd06ef03f005ddba04d2372c59d61ad89fae071742a6df8f703845a6df64f1b263d83bd912229b05ab6042640b2e8142110c9484bfeac915bd06a78061d808ccd486d2f7881e3d94ecd337317934faa0933c822f181d760b2ee915fd6874c8829641a6a7565898b1cb0824a5c43089d9c014d95944e9bb6f96bc6fb6d3ef882cd802226fb784c8afabc8f277d23f1e3e1fb60b2f7a20a774bb69a82dfe643a12c5462087e9e9152c2cb250c80af68355323d7c156825b6601550284aa6a743961e3a61d22c08865641b36095e8d1be199d66a72ca74350327de30f4aa1f7f3c02004abd0d1354dd3344dd3344dd3344dd31e3395191e48df6cdae1a17c623749af7b346afaa6fe3ac925ac1cdaa3ef9a75162d87662d91a7bf3c95b4258dbcdc38ba952cd7c3347ae30c7b9884455c6c618294524a29258c03d017884a95884dbcfcaca9f1bc3f1e203e498410085abc16ef9c829daf4dd38f078879aa541477e724145a40eb86dd1659f206775234752a778c4b6e6c43de07ee367d833be5fe0920d377dfe8b1d1e1f01657f41f01327d175992bb922646daacd845a7bcb611d72349ae9a36ba84c7ae6d1a4aafe5d1ac97b9e26f0319feb0c9bbc1ae434096479f7dd34d2ec785bf1df9b2f1faa6a3317a4dd3d09fdb381d2a4db5611e326b9759a3b4468fcebe51a5720bd6e9d872863b2e073d8dbec94edf9fcc1866237af4d9b5691a7a3a053b4f95d46e9a8f66cc236293e395bbab9918644bd54da306ab5df4a20755b13df8cbbb52d03aa22096c2365b28d8066d76cf9e3bbabb714ef46077376c1a88a3ea29a85091b18b6a9a1851f0f2337771051f3d9b1e393876440f7a9e67436234a287c25028a18b0931806c0d0c183536306a60c4784eb4912143c6b5a9b1510323c6e36d62c888516313037fcf3030eaefbe06fa5e6323f1b44ae0e3af207b26c6805891fc15636465a05b15d737c018679caf15cff899777f55c3b465c5938afde0929de8c9cf89092972797becc0113dd91591ad79c3860d1a34666662cc17933fb824cb2bd8af898476a490d0d504ad539a1c42645d97a4cc652d6ed7ddf28baccd9e304e3931d2fc2d650de66679b98ff1d86f34341a8238b01e288852115943f4894889324681fac6468e7409a555723c85429744ca247a4d28109d92a5bccd89a82b7d5384ca22b22426b73ad2b06da34b644bb5933dc346409dfa243a1a5d4293c8cdf1a819c33f1965a24397c816aa28431571a8222054d18b136a50020c54a42871844e4c72032c085d41a8044980030e74e229100d6a0ea3532e1a8429d010ec578172fc25718ae78a5a1633312c8c981c196f19872143c687c0e3d891430e8ff10f3e67470e8747400e1f02774496f752f74f2643f82243e822431893a196e12843980cb30c2196a14b8657862d19d20c53197e4289a329c353c66e5c0ef1e71d5ef3ee8e1c1c0d34731c393ba097b343063e4675d183f108b6c6864d0e8733cf9979fc8e193cad9226600e3836d0573383a3c74c8e35706606dfcbbc7011a38279e95c5a52281618c540c509de046fe14bf0240e7e83d746f0d9456f849710420942ae91954406cc9ea0e990b9a59c524e18adedbabe501c34ad042d8c32c7a41756bd9079c149d3f4b58d43759694056dd2344b9ac62e61d299b2385135d88f3a41a5648040d34a16568917942ab2368db5d1af89c1e8557d5044164554b91c9b93182b2d2514560ee57e57b71e242c678760bf67398499dc2f713a6272c684d2ecc23cc2cac330c9dd51a13cb30b41540855017d201768162ccc900bf203d3070a0b878294c8d80d0a0afae407600da68ffcc0f4a9504c1f0a34bd30abd428354adfc4a6e9ce39d1a314a314a3f448f4a21004bad531e56226eff8e81b4f0142f46a267f312ed97e3118562bae465cc05a5f0586e5c0248de8a263fed9ae2ffcc1be09fa01d638c61047b65a721d04ac11ebe123a53f401c0330418a1c65a6af5bd3c01b00e2701d04c489b09421135a087b4becb57239b0245d4790610af017338cb469600dc89d801ec6be20ad428764cbc31fb592a93744b1c894525ab15a6ba573ced9dd17a594d64a29a594527a8cd24a2ba5b4564ae96844693ddd4129a4c7d137f05a94adb76e3556d883526aa39edea01427d3dbf44d3d3dfc8cd0694729a5d829a554524a8f51fa7a7d507a4a29a5f7e8e97b86e22125225289286387760836c66b2d619c50381d59aed71a0ef6fabc8c651a6b3bf69195c82283d5b803d09905ab1a026e91ed53b9253787bf1dd92667d75a08889a479f59b032b7cc167f1bc8a3e7c41d1f7d638f95fec94c2a9d74c8fdb0e591bd94ca1432ed253af4d1fcb510111b1ba3dbe4cfcb5accf46a18e36834b34d4261b5d16876d7ae1316d96d66c18eb86f444414595562cbc78e14e0c53ea2577039344ca9442f7239b46bd9f5d134d8e105b280ae81e1285823f3c7f421d9326135e7e4181d3b8fc6e9b1a36fb22734d0e85f4f91b1e3e89b9145595ab71ae1a8870d1f1a87882a80c6c98137b07f5afe6c640c2763b7f9cce9ed62a2879d0ad9510ff6d150df64c7646949d360a750b0d8b32b859a06db891e76787d440f7b7681401c06740decd8b190b17f8d848c4920539ea6c11eb17b34628b52892bec58c574287ad8898632f69ec1f09012d1285a2680bac0240a3e42528a90b98a3ab28c6cb93b2833e5d4439b61e7b984ed74508755a0007aae831a008a00391e9aa1c1d02cdab3458e6cc8f15a8fcd0199c85dbe55aeb2c33c898e2ac3aa067430a967b8a57b129d97bbdc3e73b92f99cb8bc53f2d6fa9180641a0ee7a29aff346ffbad6713900e95f7622dc55405c49f285af77beee10d3af5945f4e290101174e2038be015222b255864a1157b6a066bba13d6b832fc8d9edd62080483a6c0fc41a02f492e61086461903d84f982381fbc70c8e7bd608dcb4228a65b2da66400e44e82164bae6b6330431a72fc8468a8a15dcff295e9555d6fa02e1c9167cf664fcf3eab648c68fbc7f249f48dce82a195d1598e80d187b0fc7400ee19fe58b21cdd7fbac32ab155644db7ef0c3324b252e22651e9704a0301d91bd1b381514a38c33fdda1502704854c183e81e193e85133d82fc9079f1c60c21ad727be608d3963addf72e9d9b5d2854ea257fa074bbfee77247fd7b37afd70dd3e47421f225b2e61e804fa1001a1152522a8d169790a671fcca30b0b5bf10feadb854455a0955a6112d18b49e42331ff741deeb89a30300936eb00b45cf9eae13abd98d6def52264abd4abeb515e385a254d645804d78156620f552091914954c58a119a97e423314fe041640b85b7b882873145d78d95889ae935ecce5ff7b6216b11ca8e9304afb81a880b4599cb015befa09a1eba8a4e3175456b1a597926cb5f9452bcc19a65f5f48397e94872d775bbe8c951111dc38e8c9d8a4152283272360c768ef03432337689d86cd48aa54c64799be5132b6c866bcf28af0de37a6c186700dc34930a557839117db2fc623eaf8683c7461fbd8f8a2dd844ae5a3b1a62d124bbcc9a6439b7ebba606cf5582d72d8a1152c8ab288ac7a78256bdcbfc893e5c82663db3bf735bac5db19de1f6e3bf69961122cd43007717c121d2ee29f129631ec357d63934ba46be54a9ebb140cb675482f9d8b4da2278d20dd06454f5e335dee767308b01942274e36d3e5a0137b9bf0417a091b21a98c81055be890f0e54a3e09fa055b7f5d977a21aa78c099639657c43fdc2f0d6a9195c52c92e2b3f8f8d81357f2b066c8e588d7364ce6d91314afb48285411a078bec757fb6d30b396c84e698fd484149864e9e4416a4024a6c913014ba64a655ec1799f464f926b1b57d26c08240a6887b73f148c41677f9d8c3d17cc1b843b660afaeeb5f5f397125bf43e228fd7b31655d2761b7362c24621c37e8bf1b3a3221b205833af9a0a018242f1824afaeb336432b72251f310cfad9a8b82e0c852015d1bbca307f4126593e32892c2aa5d0ab66e52b5768af5bf90a1382a2273b7f300808961cb12bfe7650645101856ca01369e52cb9a3b062099d8abf6a2ffc759246eea6b9bef91b9145f14fcf5bdbe52afab4b0414a2989f4d090d65a9b48238f85be6ea32cd92df1755d57cf8aca1313e929a3484da001691a79655c0ed816482c123df9231613b1c9f2822c7bf91db295ba349201892c23dc8d1ca9d9025d43fe489731d034b2556402b155048789348d125a38207d43caf2d748d6c29de53f5247712a2158def21f2c6f49fd07aa05777225edbfae74d27322772db49884bd5a5b3a34fdf493e90e81279d64310966fb120f1510a5211ae40eed752d6ea5db19e29cbadd1b3bae00ba863c768fd84c80a69136145316581b6b8fb4b2b7d843ac5198503ac1c29e521a4112b890e11418ab60adfd574dff2ccbbf672ff5afa6e5392d37755197e59eaee9da8cb600f264230c748fc39f57b3e1af264bad8172da8b873c3d2589948cf1c4581f873022638f4132f658d3537a4aad405cc4a6008568402bf6694b56aeba6bb2e429aed1935db0f14de9e7253fa758fba132112f4b2c89a0750c8b9329edc668d309270d4abb60e9630be3e1e1e121820e7db76da05e751be66d340b635dc7c939f1c2eae73ffc93d1aca3f88111f294c236573377a0f54ccc8cec06d0731d8d068c971c10a55cf3a3619b1bda67b8bbdd96abecda6db9cab937ae0d785bc2c89f03f27519b39abf08e4eb910382660cbf69e23569c444bc1c69c42a1e8ff8025eae99f234622b2676f25d6da21a290fa4f0410b31b145597e2e1164024de429d0ad1d64c8354d23bf03c88a2c7db0b4892400e1111087046b2889ac79c9d3b9a1d190e51bcaabfbeafe9492e7e74cd3cc39af6b5e17a59316e5ce210985f40751b821880a4c5061ca8c1aef979e9f0c188db3c11ad7a67e869e40d39abb2e8803a36bc0f76a7ec27fa43c3f54230ade12f284f2ba44bc7c01c998690636b5dae46913679a868837c2970a7eaae07bde50416c93b3c47629b0f09f25ba7650e3c9e71bb1a51d63414d7e5de589b2248a2bf91a85adaf784213d8ae57f4d2e601915573c52bca6de5cef628fd84e4eb2b225f57f61ed1db215b369c8d0d1ad19315069606cf8c024aae93be6f67edf1eae8cc7d1ea175a9c9768ccba17d04731cb5aeebc9aabefbe65aa269eabf1c702e25ba467d1f616b4b51ca577414dd0af25d3968271a8a369c210c9d156c14ba2ea1fe1a82b966a1715a0ac9a049255f5bc8f5b589fd2c9e6bb0303f6b583c945cffd5b42e257a8561239af081fdba11dd9534fc808a0e86bb9b58605b879a20043e3aad0302b9c5163a4dc47fdd96bf4f8b4a227af5823ad855f9b88c50c9636ff9856d5257e52365844abe055328497464904db65dfd753db9aa975358fbec9f97312591758a2c96e9d3abfa79845cefd341619dc8f539c8f557159b2f2dae2cae29950a5b45ae5472fd5ca2e70e7afea02711727d7d81ad39aa0b2c6cd23a90fb518d3e97b0f5a3fa6ba88a4b896e5121b9852722e4a1123b269647c995c5776171f95429d7948b8a4ba3344da550046d21d32884465888a87361da44ae2a294f1efb51a126b95e16c17e748b5cebe9167d035b417a553ff157e916444da68f8d56e4aabeb6e008cbe5ef1c10ec9713b9ba7ef9c855954e3ee9443ae99b110d818d908bd7e611f6bb7c1050fa374fbaae07dc2174740612bd7a1e253c84ac4c2cfcac4761d9247a9505d72ad1abbf381d273c4b57cb1ab695ee2837d74d72ad42d1ab873cf98b4d8cc091742257f5b58e3a4b27f4953a3145c995fe9340d7f4914e646bfad49274922b69f4e92359f057472353b5783a895e25ddc94414ec377d723d13d38946b91ca449924eb0f423b0f17a92eb377c3111bd7aadf1e5d334f522d0e2bb4ace9e136b082c8cd7a0c040415bd978c9349decaa7c60cf8e61dd92d12b7959a25242fcb9d878e915fcad147f2e39bbf5dadb9530dc72058734d08cf2081a6cd8b061c32ef5f56184c4465c5ca80214f14974121075a207248464a0355362f5c213c698af4bfc751947febb1ef1dde245edec3a6b639ddfa237259c6269e4791af6c2465aa24c83d6dd90d4eaebb305e175e712a2276908be2087d7ae2b9bab41c0ab62f708cdf3fac9ec1122a0a20915aaac90e02384ca10851dbeeb9beb12a6618576e372bf91e04314e7254f1f9f5d18e5cc18c6f03725f688fb4a15d878986184935e58d3a03a9873223c81d6a51c59ad96ab899355ec901b8df007b5eeb4ecce4e76b2de19bd9a29c5f2755d19c368ae35cb641e8d3619ebb66d19e93accf5c2b0eb5eb56ed7a5d975e7486ad78ddb75c90b398ecb48d72f659c92043358a1d07a265e8f524a2a25a5d7bcaeee96f06a8853452942d60ef4e25bbe6ba217e3553e6ce916efc85554f9b01603a936b0b23ab14c48a085255e649d9e622fbefe78a43b83c0069d8a03fbd5e478a343d2843c0977aa1fd888243a246ce52ad61b583a04c4b2161bc6383d9021ae4cd8243a4974f2a55d39886c95dacaa66177e6895dd5c44610b0e33ab2639f99e6e680c88ee1f7d7812c21eed63a0244d7865d49e41d22553ce887e124994a3cf1d70120609e4d731de37e9859ca9c23afeb6e6fae3e27da44d6f6781b7de3a3876e2da057b1a6fbabc95cfe6a72c43b35b0d9d7427509ab7d74ecd6dcb1561ba3bd176d6aa2576760353c714de936b618a5d825a57c86d94b62d78575506122a59431d219634bc8b345531584a454a1a80a54602a4d92a0d224895290a2d6ae4d071524b4b845acc626139bb576b784758babf98e1d01a26a24dbfa8694e7777c4496fc3c90c882efe99b46429eaf36b023ad2a61bfe70d153dd50feea4eb1cae51fd209d3b87917027611bb99a6f9d897df81c405e0504fde8233c4455f3085fe02b228fde4023ac0262fb8687d06b18c708efc80f98e76e90d8c33c36bf80ae31f14e0d2cfd0010f214e7d8e8cdf95aaded84bcd7e4ec983b950616b5d519d878a87139b077d6b05ba90e2a4c2e2e4796516992719b0e2a4c72867550f1895e63b8b326af830a12913577e26a62b1859a66b1a483ad6866c1d2f78742e27462d99a446f4e6c629a945c8ee744c9e5e867f376fe79794e942fcf895a9661212fb9af8db6606716ec9c5c8eec73e2984fb9b3c0b81cd9e7121663d2374efa06e7fa4b8b583125b9fe2aaa9b505cd51755a069ea079eb8e106b9361a72fd87cde083abfa0f6b8190a6a9f4cac482fd36a22b4a6cd50b689ea1e6295822d1abef3cfaf6d65e24d32b7d33b35f55e2aa96feddb0ff6cd098896943b72ad0ab7a23e2aa1e3ec9f5df65e546097f1791c5df35d4562ea1b67205e5cae1af0a699afac8fd3073868b88de46b41145af5e8be8d52cbb1482cdb85f3c57a2574faf10e512e9f573c8924ad6746241a5aa88ad97d76fd5cbd9b5b9448faccf7044afbe08203fddeb677478095b84e4f1727d11d9da417dfae6e6ba248889159040091294d0f9604fae2de7619ef80392339c13bd7a98ab0e73d5bfe7eb46e8e9daa6d56ca46d1c09db4a5c8f5fb1d9ebb5ec9e548fb930cfb298c360238a88e9aec24614e9845cef6eebc4dcd699a70c73fa95c81a723a3dfbd4845c7763a269ea4f7773225fee0625aeeae7dd6e707f72bd9c54e143c57bcab524d77f3772662367ef99d8a257bab7ae2871559fa17276d8381b51d7a8cfb8907d469696b3d7c83a7179de3b3728f5fb21db9e48655876a3e59f9733d4bf9bb3979cdd94b3db88ad8d48d644d67cf64cb2e4ecb56f4ecf700a6f4f3cd9c2c6fc6d4f646b1392ab9abaa2c8568e5cd55717fc59148e827a0bfe64f2e9d22b4d53cf93eba1cd3ebb907d76e1742984d3a510ece9b0c806e5ea23345bb40dbdaaf8bb98c8f5292c94ebd524cbbc9828fe6a3dbd82dda444895edd9e8850f2e9777be26e4fa2573fadf06d4f727d4bf6cd49647d31cf57a09cfd23027df2e6e46e3e59b031cf7f9b4fae4e226bb25267d99e882cfafacd27b250af3446d988be2b0ad15625b62e295794e8d5c7fc5d4154cc39e71f1059d72f9f5ce5137b31115b34e212d9aabf7c22cb844abdfee2b9944416cbebaf9ec86a79fd854464d9b071d3512dd76ea98bba5b14d942d547c9f5db93c83a41391d9e9800e99b513ec57c3af96c4c54fc61d9bb5bf44a2b91b3d337746beb89597645e9557d964dfc691711ba45afc855ed2b4a3ecb3f7a856eb4466fcebe7665238c6341a15028140a8542a15028140a8562e14698a75dd948db3852c966236de348258b6d948abdea73222cb2d93c12bd7a219185bd9e4891bea1afad45aea373acd3ebb5110b0b0b0b0b0b0b0b0b0b0b0b0b4b3d9d4ea7d3e9743a9d4ea7d3e974c26836e706e9893ec345f59db367f533eb5cb38f88cde4729c2e24b298f44de7fa23b1d53aad85925c91c8f5140b761e756dded4b5e628a557b05df4eab32221d1abf44aaecf683dd522b688c4557d9d5848f4eaed87f2ea379eb6823abd446c72a4f09644f4ea7322ea6e4ca2574fadb027bc2d895e3d0bde7a3626b99e56c17edfd693eb85c856f7fa2291655fbff14456ccf59b922ccbb23f20b24ecf4e573eb15ef4aed388ad6e7bfd8cd737da2dae8fe91b522932aeb5676736548c1887818a89818a21e33931c6f3bc1b8392713b540c198f8f9121031523234674829dc156604fe869cbd8f410edc9730c163e81c18c7d56ccc29abe817d793967d7bed1b2fc8435e8964dc7186343215cd7f375d993e575c9272c615b0930b8923f9b3c44afe2bf1a957c3f3bfc8ffac648faf5102369c247bf1e09ccb2512dd2344dd86f436ddbfb3372e29f984eb68040dc710504f6142902be753428cc99e529bffd478cdfe291942ecf7d6eff41fd8774fa049582c2249f97b7ce867a416d54ca86da509b67bb1d0edaaeb91d19152d5d15f56c5037ebb38fb04999a04e7c8e958682845efcf35cbcc068a8cbbd7449aa520c942128b2d53a344a9e53c3db9c285b45c39edd7a8590b72f4da28ac4148fe47479cdc545fdc52dd10bb3cc6d426ea6db3a261a25daff9037c9dbcb23393dbe75e0bc2623c53f56075efa848e9c73fe9eed2697c3c8b5514e55ff43defe47fc76991caa1d8e747a2d37e2766446774706ebe8513d10797b20f1db55d95fbc755c5c7b17ffb1fd054662fa76171849133e4c58957d7bfc762427accab0aa6221ece57d6c8fb797dac671246a3117ac85b25c755d0e735bfe7253b717f5ed965eeab0128e2ba1522d2e2cad83e22cccecc18e1225a46f3fedd89b6827571b8512bd894a5263cb19b49e693c291405b0325e9118b5458f06166200da983c13571d5950a74efc0de269915082166bccfbb0d3f7edb03f7f1d8db766ec6cd3fb3cef163d1d6c9109424064743ef0b0aaa9b93545b4b8f26b9ae8557c4f0d106a1194903f1915c32713f648c8a324b21af6744f5674e5e682f8681d5828944590dc75d6ca2aadcdf1b5a97c7711cd3880f9a63ee28a62217265a588edad33cffd87fc26cfc923e13edf6880ad6e28050871aed844b6b677b1046eb802e442a66f28864cafcbfe319e55d94f6f1d5a3ae93fec8974d349f490881e5aa1874235397245a1d8af81764a58b5d3451831c618ff6cbef00ecc89141172f1f0a4585e4ad6844addd67941b1f0f4f0f4408917095342bab08b8429215d90e7e592fe7b8289711897899c466fe0079a86b6e01170454f4fa751fe20cf28beb79d1ff204e1c6f82f0c99c39c322115e8168c42afe86996d92c3e1bc97e3d3ec68801e3cda9307cda91c1d74d40eb4097efac94c82c6145f64d678a93e9e190e530d4ed7f95985e824e281553a247a7102c9c92a10e3d1c92ad9fd2c79e19fa4122ef32fe2873bbffbac8b8ade3ddd699b950e8a150f824c3900926323d3d14a2afd99bdb79fdcd2e7d948a21141917e6de7d59bdb80639adb36d24fc804aee2ce446820fb6c8dadcb6d2f6124652fae6a384b72369399db0dc91d85a2284486ccd2ba19f3fb058363257b77526102ce48ca846ffc1fdffb15de6f5abdb3a9453ed742ebf7e5a122b69e29a71d20f32c9340a4d431f2f248a9e14e08a7ec22b640a859a867e3e6139ed90bbae496e6775edeeacb012fc7b6d8485e0fe03d92e73cf7bebc8f865fc87cc3d8c64bbcc6560244df8d82e7324dcffd6d1e006498f711fa4c730823be917f6713a0c6cc4f6d35b270132986aa77b025aa7fb0f97cef7b6ce676acb5dd498ab9e13314dcedc96e7705d1cdf98dfabfa2fcc65eecb61fef2022be9eef2844bf702a38a71d1e2429584270a9410b098dea79f48256b42a56e4b7a96cb7293f0c4eba4edf33e485875c96fb8f4ed3f48e7b0ea3a12d58555427037fdc7768b91d86f3761244df8b0df8ec4543a5d7448aee84d44999e6425d38d9e8b3c999a6eeb581e58d883214ff4e8e7e5f522091673688116ad45c5c6ae4d5c491bd193346ccc4baf2d92e10f8d891ec51628c6e80229ced0372f72b4dd62d5985adf43208ffab9c4d63a04c4229573cadc59bd5b7b34e63131d3d6e8158384e16e1a3af1b125a65882145744c92dc5154ef20eb9a520ba92eb0f30637687ec1ca619d87e11592b8e56c95cd2413cbae5c91db3ad90e7f4646b875ccd779db571368700992fc833b91f608efd1d7d18a253ee77ff6b219ce729c703e778ed821d49b0691a480459e4061a014fdfc8e78f4456e39ffaf922222bfe6b2df27c91c89282088b7c24b2e6fbf6144488928b889027b21a5f3677ad75c225d8141e295030591886c5f989ebbc6a920bc616683df3d5ccfafee65d3166fa787feab51a4faf8761d8bb1e2f1e314e1c13bdfa5a3314a14c1184cb896ed55ec597de1de631970afae689c8c2a25c52224bf64d4be1823bfc5d3078c130f8bb94e818fc5d39c88fc1b0ab1ed3181673af25f76a123d0a85fd6ac6ae84926648e0ac277a9189ef7a92e3f65d4baed3e393bea9427d9345df688fc79af4cdf6784c0a46d437a4c757257de3a46fece32b157d637a7c2dea9b9e1797798644b6e40cdd924bdad035c8789cd02de9c409159c64c189179c6091836e4921212784a010aa5104e5f81a826ec97a02db821cafd419c82b573456846e4d9f30f89cc1a70d3e95274809414e08a242c660d0ad59a4866ed1289d1345580e8a94a8171c9a60213841bea2d02d0a743551d485c15e0164850a045b841c9520ad7501e5e8ee7071a512d9b30485fa5751ff4a4e52a9544cc9c49b6e9c22d4d222d422d422d4f2e823afb8b8c82b2ef28a8bbce2f24f468ba689ddbb77efa64ff74f66a8696ab5b67b09824f6897c82c8269a282994530b3086616c1cca22cd375d6aaee8ea691e93a6b63806ab5b693c9f49f4cfea8951c254ff46217f399a6897f7165ee07a39700733fa8820f0221472be408872f2af145256419f9c9ddfae2b60e0c764dd67831b99a5c4b6ac7441922ad6766c3771b2ac6cad585f9b66dceff83e168d560354035d193d2899d426fd060bc123d082115b6f13ca5010760444fb6503d61fc9b47cd181359b394a74c9e2ff2e4f27491674c9e5a9eaa3c4779c2e499e5f992e76bdfd04f2c4f973caf3c5bf2a479a6f2f589caa87f72e61f4b9e8f7d837d9af23ce599d5cfdbbe89f1792dc68d41a1b28c878f81928f9111c3b8d5097626077c2ff3c2458c0ae6a57369994fcd25535891a19d47cdb39ce64df376be34cf358d76b38addd834f3d79d7306622dd0befe37fa97fdabff5430a7f2f7cd7ff1b6a3cf488b6ca83e11a7344d5f7009c5626e615a9944c6732d6ef18a6e453064f948d4372d91055b328f98fb41e696d316da72af9ea6a1125712090b2fef1723257ab80e015978288764cbfbea9027219e8ff82b4522f90831fc2e126419454a892ca0c8fae9b98ecce5e594be819797415444d6bc1c5d5e62218b26127d935d7e2e892ceef2934964912e3fa1f44de9f2f3891925b2b6cbcf2afac674f9391459a7cb4f2a91c572a95d7e6a4179222b75799a04f589aceed2e506e6f2744a64c55c9e0645968bcb5f3d7dd37279e944b672b8bc97bf48d0adcbe75241963d7802e25c45e8ab085710a888ad1a254a1551a864791a45e3d42a54ff68129cc8566dd2048a8c92e5e90c1aa73ef104ad4196a74a620bbb7285227185326943e354266fc8f2978f6c614444b2850149202b12a8880a8d8351a1628594d8c27ca2cf94e84385138d8349919f4d640be3912b79f97982c6c192484194af520b2225595e86a1712e2d600d792dc62095d038171548abc4561d8a72888a9ca26241b3c8b2488b2b59febb94443a61c5461c29b35be9c46242a5b4cee5e51ab42e605e391d57761153a3d42a54b80a1897ae3679a236a94d9ec8f205a750572a93ee8acb95ca24cbb746245b354a8d4294e5b51a45b6ea50771d8a12eb90cb3b772c19a53da51da53dd5b10cd18ed2b08a072aa38ecaa8d41d7139aa14096324b560c9b5a4ee82c24352d7527769c13c52584767ed9a86594e18968550c62208d342969fa6cdfa48f1c1a464795a2271180f96c4a6613c581259fecab04aa405119116591e1b11552a40b255ab5c54204eb542d790aff8ab5958fc552cb2945890af5c1d3ac2bdf1fec8c45bc884ccad52e24abe02e17f5dcee1117f15a846318285558acc5572996bdabd978e06b77ba98e16b77ba78e26b77ba58e36b77ba38e766df7429d1c6e1d922b795cfae290781a4d4bac0a88d290789b3b77fe2256f1b099de663abab77522c743fafcaa43b30ec51e86d0cfdcf9a3f3c21ffd15f1107a158f99e7679e5832217da227bf4a94e56b942a05284795a9d835ec1211af63f111c6b4c46640e6f8a687179611ab781881f9ab4359be0ef5cd5064b56c092769089923ae434d232f7da06422b2a8ac4310ebc03f321f92c17d13339e9888a9f08162066298b273f2f5d51ce329add8b4c15ebb95d5601886b59414b78c3226a0ce23578e47ae490512a21044454f137c0070e4b23c3c3c472e28339b7602d1834288d8c8d6f64cde932dedb274e112ee5e994e2a034b297cad453adbd5eeed95fce8421fb2d491afcf8691f480c8c2f003601039e5912b4b22ae1c247a1005efc15bf8aec60b0a50a01777fadaadedba2e6ec34ee925af4bf906ba5eb57f7534bf2e5fb5c6af5ef4aa31a974a8644c75159a1e650ad10c000000009314002028100c084462a1583ca46b93f70114800e8da2566c5299874990a328841c51c00101000000000000800d0105b3b5d9835a4972a5c3b71d3dd93de6065294e6ce6f0ad6fa916b062d212fb3c4799170a032d150a0803d5195896d60415018d4b30facf00945050b7fd700f772e0d98e762129405aff7c5908b717154577f7dee431c49b99eda5408f87688f96583ccc42848bd74a6582ec150a9b158b1c2b98c20f6ce3031033d1f12dcb9e997df8891e05481302731e01f045c7a10fbbf2f076b4f123ca654701e3c097a2ad95433dba8b45f256e8ebe26eae6febae3663b28bee707e02678d453dcff3781aecd79362913dca0a8a4cdf5d71116a57378f3f8658d6491be025a5d9afaf6cf1867266d32be3adf50c88d90da4bde781cc9e0e65364a4fcbeaf286f2b865cbd52602b672c1965dd38f30c8b8318f81d1d47236d8a60efcd4436191f1b298d109154f7672c982c54d37678b3505af5f7407c1ec1983e3e34266074689271d82f1dc94ca66a4d8a6b5153a5d4b5424688e3f7ee5cc3118ba4a409937c819dd0d2766d61cf1be37f5390cfbad6c0dee430c2af7a03178f43a1e1588e7471f7bdf8ff1bc9ca2ca27f087f0f64fb739e144b5f4f9d4dd161d0db28ac230454fb435440809946df1c21220b2a560fc97a0730cef104867413762d53bbc271009d9e0e70dc326fca782c91ba138d3100ad470080ab90479825be079b1fd2422f8695434dba27a2e52b97fc757d4dd53e38f98d584d9932060e06cffcde5f7553691642a37247e74ba0720ee2227daf5956e7ddafe361ba750d52a492d8073c28280ec278e13c317497d9b3f282d8e0a24e992d40f78b08da39ed7e956521084f0ee73731e845522f58d92ca4a16459a5064a5e6e255208571d4efd109405858677a01670cae2241d8379242caec75aaac99a8bfa6c77c5c8fb89b6ca8dd61e15c857a8161303e609bf823889fe3e01a64ef19dde381bd1ac3f79428f892c6e3249d4b95662927001b6d845be7197742cd9e3f85b1b720a2d5fef6e38217b4a62658980ffbdff6a7df4810464130beddc552a7b70d12e869ba9fb44ef2e06f7ab08a6637388c381494a74fe035ae3d177ca18fd79170b320302d6465883d039fac301dbefae55e088f7043b6334de237825bd298cd1fdae0fef757fe0a30bae2f4ee5c27aff0c61f3c1349073bf93c0275e10aa6bc0b1a619f05ae5a4ac2e67932d98b95f35c5aeba612270dd1c67c17af0ea9e752b5c7fb9d060fd8786ba634c3b27644a2cddbfe37e9b96b3a0974a8d1c1a0fd99b3a7d62f94d249f080dfcd9b83418568ddefef42b71f2c1bc8d749c008fc14a07fcf65660aae3dbd0224e36f23a2eec0143c3db7cdf81c0eea2be4d9f8b5e8b012f482575509e28126cc8b335960f8b194b6452b8be3cc0fb5a4bf4dcf0f553502e37a6d8c957ad4c5390b17305aa8530f5cb05d5fa700f182936edcb7646c1d3f0399fd2e53e1b67ebbf97e2c44a278ebfb4b3616a9666eb8654a59326e048fefebaf698832ba595fb2ce57af7c7c43589906c24acb23aa496b83af79f4af444dde5d718187a0e98e8653372fae44a09b852dcc6af32b9257b6603ee9f8f663641c69dbe641b97b82df1391a54efcf7c9bfa90908959191c9a62652571addcec63f70caf75965d97c4aac7dd3158ac004b38a515a9fa58581524c9a78e7295eaab4b79d729c3cc10fddb65edf1b7a60a60e3b25a6c729f8f8c717fcb8f0aafe8bc6e30b9d8efd8c86c394f91ce3165880d40cb2948b639761dad527911c53f79d8e52e325f28b6c21e0d94f9297c3abbd0e6cf82d4677fca03ce0ee77c7e3393b4d268cfd022b8e1c3f4adae0bb201efd18e530aab636241d1e4272372b8f23912c09fa1b7dcefa4f0162da054ac56d112b5b46afd07248fe03d962a975fe640d07ec96d83077c356f4a9f8e744ac9cd8734b79e2aadb99ae4d6f16821dbcb399ab724a80a01dcc242ccc9440f51f4e14617848fd16c0cd94dbf8672b16cb044a4c8b7457728f4d075e3f3d91a92c29f2398049d72267f2285dc84635bda9b929ff7325cae547ad6026edef062325111e79c30a5b260115fc7063efb175c61b72e4b20c88243cc7e090071e17262ba936b7c66edd1292263a83afb4664ad91e1cc14a338d2d49c45fa21e75da8fd1b7bf6936834ffb75abdfbd13b0de53070e641585bff4abab9758650b897cd5cb4445cdf42b38da5ba9871021719ff7b62dcc95fe43bf1bb6966233da4a89980cec943327b7d048810a67877b697f5a1e05b0e9249d5046777b26040aa3daf1dac64b1180e6882429454cb2166bc301017e2b32723a10c284529a81aed31ea35402b864438261a8e9fe93d85873154986065ef03818274807583a1609c1ca4ed0a90d8cf5d4cbdcdba213f56d65696259a56d4b98819346da164bf68b2e28140b000091b5f0fdc89add87cd7e5193a4506a82c2abdc34dd683379909ecde7bf4e51ec997e6c3af8fb1ae54583173371e929209405c51ef77d2250c21b8f54fdf396a5ab548b3953839d88303af5f725b7c89bce1001208de16e3242b025de680975188bc4dbccb40e628d8847ca74fc0de51c3f8758c6c3f9286b4bfcc24d2a16c7dfa525d70e5ea42a68fad72b52b89b757082218371fe218e1441659269b0ba4cab97230e41b18ef437d968d055c6cd0e80837a3df8a43d1c613a20fcd199550a4754a7ae9a4f55255252785170bb5c2065e952d7b8ada3f4e51cee626387aac6da53663b4459d6f3084a40366429cc75730ae04bc78b8b9d39b84027432ed8cebbe7702a1677821a6d47bf0de208494afc065aa4624307a988b304d1a697ccfb5b780356cecc0925d7d3c326651521c74ae857c32a232e0409616fd78db4f1fcb4b5a89cc4c7d3d1311f068db9cd529f11a4373c8c8d9cddfbbb306e5dbaa35d98907cab158cf719cf4e49ade221f822f4e55d6c0ee28969a80f307d95f840008d936b2164f7be81b0e230e5b97667c4f9e8062d86bd3564b146eee7816ca7daaee95f4c6c478b97446b43448566751d5f82897628c9dbad4b97613f8125fbc4899f4aacfe35c3173eb8a51cfc823d9e0675ba21ef9ee98c077f29bfe8090627dc5ede41c22876bd7e8221b12ea386f508192236ffabb14690548ccb36c0898fce90778a7fa06cb669304d06751c246bbb94528272786b6d4112b9961daad62dfa106e609f6065d57519a90edb7d329a3ad100003413e64ca2794801b14d59ac31c8e744927441498a15cb20938854e96963b42de11f6378ce4e8592f5cf3e8a7dd0569f9be5583b22de972d176f3fdf9aba0c4fa802c32b99eaa3a068bc9ca42259db009ac627c5a244b6cfe9ad72cb4c08794f24d482964bb1642c52e819e826690686fe3dc06bbda589114005bb5641f4401b88a9bc518194340352d04600b4fde551d90648db7aec90f9f1d111a55d32fd6b092beb0c77cffb581d4ea9536cfcafc86a53f1391d763bb6d16f7704432180e908e351fd6e27e03a40311ede59b5b2bffe0449f2f4cce9fc3ca2db985dbafd3d0adace005a21a5c5514a28a2083fbab3138d768d5405ee620a2edddab4b5b13c90ae061e8d67e08d672bee3225ba092982f3c49e4c8b4040125006b236361414dd8d4d8e7e8f2f3910b2d65d90ee443e989082a5534f6e8a7c965ac015ee298011e2e687144547d9be749254d25ff28f73943066b81f0883289deda80b8ff208b776da1bf42bac844edf68bf7feaff9e24c028d804ec400be0ebc1f1c5d6709cc83c2856070242595df52da278aa09417f4e0441d382abc64d77d97c7cac9974ff4a9bd4a4f8337b73e24f2f2a014961310bb6eee1d3b626e93f9be330411675c65adb409de5da4a62cf8156a6f2d31e082ddde7aa6176a5868d7e76e37a88a63ed255f8b5d61a301075c500eb92d7901b93efc3fff219ad6e623b29c59670a9733723eb78d83afc9557cb4c7c55084e38325b6b5ce1c8e4c81879411b76fbb4ebbf5124ecce71d6e62af5d62a4459326f4de408474804680eda40e598db1a0cb1547738b68caa03f79cc6da3e7c67044588d349410202673c424bf5e8ef13eac9d912b588f522db73812a2cfec34e91be6faf51ef2567da6670183da4c3b5a55c7584253c7a63499d43a3b16422be35100d8fc5d949b5d29deb095c5640f2231b8e5d256b00241a9e5c29555d16fc5955286a6587a82c84483610f3f21d7ee0c0e3a827db479c4a1ee82722b6f868a937d8b1ac61c9c5fd0cbaf81e1e2c4402cdb4cfc265134e61f0eb9148cfdc708a35b6b2decf3f97fe3fc87ef706dc9c9d2ae6c61589a67ea38c13e1355c8f9196f4dc463e31ec4e66140ed938e4b23f26fb7507dc5937d628ef33eecfed0c61a9b44cbca23b4fb74c003a9927f119fb51944578217fbb37796f1e1bb55fcd359512fceaa718c12ba48ff18ec1c308936bd2353949250c09398c74470adfec2934d12a181f2894f3e0d3f09927aaf136cd0d58b13efbd26dc73dd71bc2f38ce78c3dd0a6be8dc8e0452a3bbf1edd29458ad090833d5e0eebd8be166eab114682b974087f13b480de9a6b3404cff5d742da74406a6897c8a20362d76c62f15e54ad8dab59f585f7aae8250afc12477028db1e90ec58d1f2df223f674d57496d79355860065ee73dec9d7c9cdb52d5d82d2f62167c3fe36477763aafe5b8b1926033684c23d3a2a73564b178d696d6945c2ea880eff5c3ee283aff0a6d679c0e40e31227ee01ffa098eb62d466e1a81ed4fdf0b85202966fda35eafcc80154d648190ac91f06ee9c7cb510e68f9c1b7f00a87c7c7668361e1355c7c57d58a07aaec5715884d80d3b6e6aa5758a7420e44dcad0c2716021c7573091448c40069dc1e5b881cb7c3c9344b7bd6cf47c644ca4957fca5606c59f5750d564e5657757d27dcb2e7b198b64dc19ac56f13fc65ab9b33f7288f2da060a88a7605f619c474fdddd1b14f73c108d68bd9b170816d488b6b0dc4763615a5e17c108e7fc46fe713deedf63a8d8e905592e1d0ed37c2a1c1f0c963264457f6b8c3fc6e68160d4d69cba3929b8f663f9c9510de2cb162c62bf4ea9060cb6ebdf5112e1280f31f7ef98aef681428fe29e6b889b6cbedb96620a7d214f55ff59ebd5089f1f53d55054fa2dc4d9a2759926624186cd83b135f61575385285d729711c8d8e3c93f9969dcf268933295da67407bb7964dc1ea26a9190b7ceea3940a4ca196000c9af5c00af776f83794c09b84b1c91c00b7a3e754aa97dcefed20acb1db447a2da758e4526dd3c584d4846c06d6419725a5e1524e06cc3d1f3121db951f4160cabe93122440b86a1cad33a66cb907d2d8e9ab0e24b684ef5bd65b3ef12c9172173d51927ae36d1097db0247c64bc5fbbc156af0be240fb9ed8105be2d4b716e0243c87181cb9a37fa78b96dfcaa1d6736e1b8cd821aa1e5a7687b76a0f160c950df380ec72124dc7840dc2e716ed66653fce9d96cae6083e74673470127df28458be0b6f530eb26b8f11583d2a0498bd50017b0325c81b5083791345b03739a4953a6669daf20128813fb456c7fb1f0997d04ad99f35520382727b1e39e821e88c1eaecf93368f053c7dd9110bbda0c0e96ad837c060ce5a39d73810a9ea8f3facdb903564f8040474c8b02c7dcbb62565215778133f860effdd6283606dc52e8dc8dcad1f9448bd637c6b9b3958b0803543047bae4c0716d15b706b9839659509924baeeadb3531e06d1cd7d96b0e0460bc168a6637070f24bd9ed2aed36ffc4975913a4be18309dbec2c8d8423608280cd7b401910d77fbd873da1a15f7434f707dd4dec9600ae1ba656349d0dcd9e23d63e777e6264c486928c89fbc013b8361d441d3e033efc5ab0ef6484512194919cae7b6b2ab8e11e598868a0e903be5fefc9b5edf077bd6c9d229a05fee07cd97954e6e4dcf1bd2ab12338de31cbe909b4555b032efaeb4ba1b13c9f65cf7e07695f58fb56743d8901f36a76788c46afdee6e91df30fc8254a865bbb092c9ecfe1273f423be12c8c4ba1c6c8582d1add7d4f3e1d46315b818b05fa81a24d5ee6cb6713c7e05a990a0efb386c423c6e29ece386e877b971c20b85a660db7c50662d446468e824348c75b59a693b925d3c6c0d009e089b4d3986371287c386f0b95f0db906e46f479fbe03861512385f2c2ffc718625e8a510854823a8caa1dc83c926ebd79d29ec067702601025ece790075146a11791ae34f043454525b993014df1fa6991eb7b9e184b1a6c8ddad55ff8d9c7a61901ff506936c5b73081fd810ccccb70ba4bfa040f4c38d29a470d568f4c72c56f96c0ae6f932536caa25a1fab0dc0c25165d7b41d7824d73effd2fb45c5312d660035cc9ca8cb259a6d09b2115d6b6db1ec6ed38a9bedd869f33fc65c128252a69f5c6ed3fac99becb4d37240eb4df4e29bf0594efcc84404f7d252c1d71c03f1079d76d8e53af70d6bdec0af38ffadc42c92639d0d35b315c178f45008817f2bd5e425ae6c0e966d34d386cc6d834af8540409d641b9c62da3be74db84a63fc10e77e0f22789441935926a55a2bacd1bdf00d04df0d006ed3c5215d8cc732feac351e9edc4d988ae2ce121f7207e3c35719f445de3f27e7b8f1268d18d6d8663b0731251d58193645353915649d2c754ce1d04cbb3523519b2e73ea2a480b321f368d45448df9e8c8008a6f01ba85445e2ccecd4c347270b48664cea300e0125157dd72e2362808121f66df061a5eeae246508a68d36bb205e1ab701916836879ab9d5c050b518f619d17ecb031b0c53f26da2d27865377fcbd8e9fc48672b1ac5a76f1207f28fedd26869c70ec3ca91be8f6f0aac3a6dd8ea295610ec88cd3b8bde55f49a3e5d52505b6eb5531fe652c39a89151fd31a9eb13bef527677c85b3c0092ac8ee0814ab533e126c10a422e3209d06e91b26b57f417c49c60fc9f04168dfab9b73fedbffb5f5336b03440d76edd802e7c8de4d68de82a39ec6304d0e9c88c9dee6bc3885ea40772fe25e364f62235368175cb53bdc75eaa126919514eaf6de7171d244c85684fe943d298e3b0187c02d758c9c4bd2356c4de455f70ed86d1c27344240185e7bb58f822893aef765e0334ebd435627d1f4e9a1175e3f6459128065ee2a540a1492b527e41744f6e396b701633e900b9c9a7404a36453bd1ac3dd0d76f12b73c4d08ed996b6bdae13df3bd6b0f0eec1813b9ee3ff389c8d06fc7f23fc743190d8e5313f3b3dfd3d3a2063742681eecd925ac3ff7b2d63fa50013a7a503b1b641b60ed0b8409994e0460fc4da8544c894364e4bd95f34a275172550dcad8f11cb64b066d06d0025c02d87a9a657dca522fe7dce6883daf4c34448f219f74b6ced5322e5ce1c3941f7ca280a1fdc70905f2b6bc195b574aa71ac796ec1ce2f9fe5624236e9bcd35897222bae12c3ff1f4e5a4a433744a019520a84d4da7c2024b3ab40d867eef52b23413d0aebd8cc59a86bd0a0e0b1150986274d457d8542f86ae024ae9b46cb7ddb74b5776705b311049408dfe2e7ad880d98daef3f078a96a1042ff41dc60c34053b970d8657ba61fdeb23b6fa2131a0ecdef46e962950971e80367a58603995b62cc4e9f41d4197ec3bb31fbab53b39064c5014476e26f0836c97a74b1c3e69c39a66607ee123c96d1d20621cb32a04e34eeb40ca83f1959b31995ff4a8d119e4152d152e918c0734b9e7fe522c83054a28b4bb4af374b20abd956a4caa48d857c5ff950fa7b400cb7aab67589f711c0086018837f21b2f55a4f0cd0cc990be88113ecaf2fd93228a969d3a08da5bf9408ed7274db84fdb72794e88298965cb07200e03906950c1855418d71548a1069a41690deae3a500dcff9e7fd31a331ec2640cdb469f72f06b2a0cae00917054fa2a567b1426def8a68df4db9506a54342cb37941764b5f7dd1b8531001fef57d2f708cf04eae38eee13ca98728c9403f7272a57c751488d88471a2f07dbd6ca7666364ae8082df05b1fdf2cc64b03379b9bd36640e405a6c582ed2f987fc3cda58c5938da6d269c6d27180e4d8c309d238a24453bf361486acc07bc02e3e9bd92d663545a3109d69c4e68a29c8d5face1b54e4ea07c442afe06ee0dee9b0d37d20fb11359a89213ab8e1590d4748afef5074341bd14271976d86186102ec23ad15ba21f8c9273d0096ba23b589e3b88a877244659203c07fb68cd82716e29d1e0395824042a80b09794eddb1e30babe73b080249bd9a076c488c67c0520bf00237d72711dbdb72c8540b12296cad8dfeb6ca1158d1c6b60a949172182d720114c5409fb3b1323d84afec10eb0c2c23a5e6fd0c00441bfa1683ac1ca9b26a3839eb40d20f656b69776744c335eeaa1dc75f98e43fb7f6a9a769915bbe465720f6bb19460c39f15af9192b91b6850c6c71b86b6a21b34fa2a22038ca071ca571cae6c331a7d624d362df51835083f16b269e717a72f928139499ac70248d534ff02e820fd0dcf29a8ee5d9ccd7e156b1743d14fd2ab77c79f0e9b38e9c18af9c63ad630983f9b60f190e2ce01536f8219343f47db1600cfa4e1829c48c055f8471ab44a83a07cb389dab5c5138f0bd808f9067aaa64fc4da4aaf60ac3cc61333ecde9331f7093489bdc4bc83b8ccc61b55e03d15944ec40933e77ce9c44fbe3557391f61b80bc7e8f7e00d0037f0020be7f005cda6170d17e1e206fa7e06235d5cb0e521cb2316630c8e00191d660c1d6621e2a63218df58e53c011126f382bc281040b6b4266f6d512468f32166d862181e66bfc2726921cc15ba643d2760818b56a37f0f9d458a20181815486b04d151ca0c5c92b9676757c7cfdd92a914b773700c823d31ed4261eab0e6d589e69fc8dc39c400f3e3b192a10a67a2116e956d91b37b204803735bc2b81161ebec6a2603145e4e8fca2f06b898711a1332cbae1b4a553d206f9aa63fe33e626ff2c43890d78f62b1e8bd9d01b44920b1608bf644e9345bfff55520097e2ca700dbb83ababdac625c3029a781febb133b0ac8f807f5c092da51e758cd40b1c162a6c4fa60d987c8304a79c80632de599d7d8868cb0c244dc2a5ceb4d43d5f7e623645e024a890af8e3e7caa4e7a11e801afaa7450378fe1696605b1b0c3a907230cab4844b4f63027a208b0bb0db50a5c872fc82d187953edc9f5e5abaa8daa396781bc9e2da142a74118c117d1880b02a45cf9c460d9825d541593c70a16502ea622ffaaedafc4f3138b4bcfe8b80dc8248c2d7422a55b204c4eb926a5ba5900ddf024880214f30cd0053f5f70996b4e633667198ea2cbfbc61382af41f312aa7d1b926306e8965b9ba77a2111a7697f183b3d8152594fe510e824069f40ddd8653c763b1010aecc4e27eefdabbb6db13e8bd8504e66d62521969cbc068d66b28cd028ff9ba74873a3375fff8fd61453cf260f653556cb3e2ce3b5a1760fa72633cc9a6ad42fe19b63c81bd536a73423f91e6398a15e2a8a29f39fa1388c90a989fab5c4d7588a81a0c4a6474458133878b6ff2debe5ed3ef79a37b4bbaeb533d3cbdf4b4d244e67d696468b4bd0e57d9bfbd135d4474d328781dc533f1ee55fd76451b897b371fda2e0254ab471a05ce3829ef7faebd9412388c93852238226341b65c13050de9a6bf557fac971e411c1384051f82edd30ec42ef5c398a4072e0ad861c100fa6711715ade39721175704d098f1b5cdf0c90232bba76ee584561f919c35f56eae25f76138aa7df0267c494cbea5c0d7bb00b90ebbed12af1015af73e3e0b35f4b72a5d132209a85bdf4a43045d13f06f5fa6a1d8b3aa9b3b8af9cb010f0ab6b1905ed59a47caaf1dd6f8b4f20571f8dd4ec90855f7e1a5557e8ab768d8cac2c0fe34f967767f50e18b8485bc526c1671919fe217791127203ba3dbe7bae2207b752503d82e2934eff74e3ac4ed421dda267206b60d47739e70612b7635fe919fa6a94d57d1d8b4f8e56676a34ffd6cb08369261c1ae94695ed18b9b2c10582cd714345702b7531ef4af9f36132ee497c7bb71357abff431224464c9c929eaa545db3d745e406e047f7bc1bca5655741187c22487d2b2327ca0ae85c4f4c6e18c873b240380a22521098886ba691d9419e21e9b855c0d594c30376418d3b29729dd1722adc8d7e882f2b70e45b966d05521c529d9fde1932d9828b6bc317be58a7c144687298c7737c420faab79a5730905242eb5a77fec0a889eda79d4c85aa4298b13b727e0dbbaf8c6e2060c1ff91aab1ab04e0923ba25edce2c5ab8ba7803456c8487d76cd05776c6a028792d85429d67422fd7f5de5acfcfba1dc12542c7bbda42f9809af836cecf03c994529800282af4c3d0fd012b1fc45f6d01b21a785bb52e1b6576a6c81bfedd4c4977ed3ca7ecc44cd0eb5cd3da0e781bfe76bdc55dee121e810dfde06ef74581c11bf38affcd01001ef054b3232fccbb9b03c5df0bccc29168ec5695adb26818b0bbc16c80fd6e06df839727e85f910bc30fdcad0d8425474b1400f7010bb606e3111205b09295f017bde58d0064ccad0362811bae6b0d10231582196cde6f64567f8b25276e4744202e0aecfa686f32fbb56ca9581c91e526aa3b25d7254d1613c029a5d115a4ab399b89f08586d244b4c18dda41d2c06bb4fc43cd4f4353edbe9a525b5a5bba219cafa61b98bf4c354b99052d7d26fd47c7e933e46027ef8b4c6ea74d9e86eca16b0d8375f29bb6301f626a3b34f505f5a13283edc02f745dc9a7ac3a94e9852385400f7ea32f76e800a947790cd08cc19661c0c2a522bb143644da7e0609a8c85b9b9c485fdcaf183226310994a264d08d39a5f42756aa6828659a43c10101c5e5ec4e8d6a3859ecaa6fbfb4d316e5f01a9538648b417055f74fb6456fb62f1c294ac6e757951cce8baa4f8de93872132c4f0be372fbd97b6de91aa95266fd4e6badd9ad97cfc7e3709e2b07558abe067515c4f26d221248e4658d812fcef609e8a181bca165aae03f9eb580f35f150d63dc7c91f31b9357d1bdb1b1697e825336953c0ee0cc6a842ee949d262865388129f2bdc994ae8d86c0bf2e89a6f8de9009aceea3b7a3d635673b445501b32cd528e8e0cb06e9e744d073bcd151209a6cf6d96f0ffe03d221d9e2ad941bd57f2a73c281ad64297938153db167f53d3cd0c3eb8b9d9a102d76081ee1c2dbea37e671ca92a4a98c113686f098e56198719f129b9d476a4993b823edea10001545dcef644eb79982765afb9209413311ba28c88d5475fa304a992d2a29c07ef1c1ae60440656ef0a6faced862f0fe290e67acb18c9177008d2f8d5ce84da1deaf638019ea34211688da0f8ecef5f916856b3c831c0635b45dce2368c43a18fb62da2ef093204e4ccd5e5c251416cc2dda95e72a4225a8a8d050780c8b69f0344bf24767517518832e5909254e0ddeaf786b2283c2744b1d445866f30272bbd6356d17961305aaa84bf85768285b62136e41981379ee5171c675aaf42a52be71e28a864388881099f790a0b090c370921b4a44c5efb8f29ad571b1507fed47049045ecd5dbfecf497841daff47c361bc0d5499b3a80b5a299ae3a19ed2ff06c9e4aacc4a0035df7986932cc418b715fa9932425ecad6345fcd63995f6a8f4a959d3fffb37b316023ee241dfa56cb5f901eb9611b2ed7aaaf4ce6519dc1100cce586916f31c33fec4ce7049eb0af9778df8c63bb9f9179051a3a9f158f83a7236471e7d42785e9a3836c905d8c829528e203dab82c0d7d2ad1a95996a2289b40bc44c8e1b00493285b8461e5250044310b764a9df757f732322956dcfd29c6446bbcc8dea6bdfd250d0b82d9e1232947a01cc8674e9c70e17ee28c90e85eda31eebde7186c271c36248eb631ffa895f507807a7f4cdef1987e114f8f7623b4c84719d988ce588aba6b12f1347d526fd288d5f65f27bb71e4189bd98984ef3905e10d66c9895939ef98053fb6e3b0c46292fd8abb9c79a0508049176b29ed694a0e9535b4a25c42bf4a5d88afa89508aa482a2ba16336e44e96b34b2e3d91cf987849ed3671ce2c87c3857eed3a8bbad51cedbabf2f8dad9adf670858058d5bdc37c1021ebedc63952337e18e5a33b09d21b6ea4b836502f8522207a3593f4c269659394880f5d453a50158330a401eb6b4e0f371f7e447a1c9bbf608b34e8574486c8fdf3ed0838fe0aea7fc2901c2f91205988cd446972cc053b15100125532014f1f4c40d31381508a91778690d760635dc267c74a2584906157b4dee696ef4e44beb932949bfc4910085e0aaff97d009db0142e14e4eb7b07ccdda88d8840d358f8cd6f07d1e4ddaa469b5398c8845b40c00cc57b05b2998e49e7b47fd84c5fa120885171f3e2a0415078deee75ff9056241ffd417030834e1a5bebf2e6b8aacf0c612e5d90d53716cf3b2645ba8c250e5d4e403b160b63ec14587c57a5b55108dc4ca0ba1e32d7b526e23ffd50e1f60c4d817ed8ebd4dfa722f692eda8a3541084bc758fc6bfad34eefffc4f65f9fe455b79656fa21d3c254b1b2efb50acf067cde5f83f5c295d8b53f21dca3cdb4b4090141144c9ba95eda3b92f6d2b8d7f0d941748643cb2d76a42d81835f6877058385114856b265f314bad529ccec6c8d480eb4a4a27ba4d63ed7722579912c95db6c09d8ce74a283f6a001ca23211cae3e031e4299cc2e77cfd0a9cb138bdbae9744b279ffe514cdcdf7405a26075f8daf3258cf01bc07688dcf79ee130bea62ae75b621683d18ea665409051530c60745c15bb6fd0c1ec3c64d56cc538b2d0182e21be53c2aa6e76002935463d2951df6c00db316caf061c81058206e1e9f8a9206091880c9eb2038ea01fe85f2e69b7e8d6bf41793e155505d100bcb3a415f0ef4aab81bc2c209b651d71b2b4c72ea8a73a608a0ba759863544e90a2046c19f40e7a2cc44b8d44773ecad4fb675d646ed15ff1fb404f7442d04a0c94f90a8543b9dd2f5e6cf6a58fea908e94a5073119609098ab29278d3e0c6c342c7be803422d245cdc60968bd0b2b52a557123c3db9b915bf17a2300f46f7a8e9c975456537a5472ddb233d5ba0330a39113150d470dc930917802630c8b386e14a46daaa606c6bd908a71dac445fa10e530e869013839d68eaba99bc373a1c68f8ceb781a18eb4c717df20d6ad203cde3321e4402179251a18f9b094e89542378429cbf819d18724b095b09eb19f94a37b49409648d51939af69c1d13b22efe3dcb34a387e232ba82f784235a71279270a5ead07e6202979f277a5b9a433119853c75fb09d0a42267ea6501ecd28940c47ad506d607d6078e5e69bdb3b8fa8d7c5b0b78ffb59a99fae287db44ef88a8bf1b007bb5200b12a1e766d8d346b37c46fe53d02da63d840c31cc1cec5a03469bf71ae6f675a6c82663d0c90bfed794f1529069a0009c6454fe9bc1650c8168a9e10b626d93181a1514e325f28fe3d0b4c07400136bb66eb513ae5a3a39a56d6c695a31eadce7e9f809e72818422b713a1b968eaa704eb939d0740fd8d810b2270dd46182b0c37d27508fc2a7ed30fec8eac2f1f0f8da0b9706f4dbbf93c97f0df6bff8f125dc1f3923a0f2a9bd13871113c829d23530404e7b9b45da5170f28db56302c551023c33fd4e94aa6de0f7e3ad0c0634c1d7899116d5c1ee2e52e0c2ebdb8f3f2c1348666cba7fdaa7881a5abc3b3dd2cfd36b8ecbb86712b5a57f2b2698613eb07afe7bc24d8108349981b7323f860945928aa4f0d3890572d677973b2e9b47d31e0d0d11f203d1257ba9fd02fa0bf5dfcd70f1e54d31e1600640f62eca3782ddac1df7eb3ad8e7bf8322ee4e76dc99c57dd06985bb52b09304aa4232683d035fb997e9b8b5d1bce738f57c469ee1b67547e3b1cbe739d02d86830eebb6f44f28bbe2267543fdb1121011a6e4bbc25e859a504a1ccf73c1f83ac9f174d1de405661c4b75610b7ff6d89618cecb9cd467de98991c7feb7fe7154f940f74b85c96d032bbc5ffd6bb38ebf6c5436a2f67b8d6272e0a69da0d774a7c8df7d6e4aae5a15d27c63719459b32a7eedd5d83cf6a757cfa841c6f70d1cb9347032292c7004d088ab7199f39ac34b2affabc84b37c7818b3196fd4401a38bb35fce5a6eb23d45f53ee292a6f1fa4ea54791ddcfa536fda46aee7442ed8a298930af67b68810cbcc692ee96340f9f565231d8088612fe6a0ef30600342e50caf82e4af23b960e25deb3a7c77535dbe926b2b254eda26a7aebcd5e831ba2030652d416c9493962cf2f34568b436b949675a9c766b5e90ff39544d77d94be59ed01ac18349c5bf4410a68f5b91d36dc8ba2def2ad0fc94be0f1611c5f635d867fb760c38ea3aa0f2bf866a18150c51f348fcdb25462265d6b26de6e183eada69beab6c715d67f348b6b4a89ba75c3dbbc6e12582bd5e10a9533a55a5056ad1072cc1376893cb09273809ee761416b8c34a3b6dc840cf296069c54edf1e0e9989bdf64b2b1432b8f0be1a186f0de2a96550981fadf7976c92cfd231368880edc2ef11ae155f8997bb071b49f1047c71b688e9d469cfcbdf6b1d095dadadc3a8e3b58b458c46a2d79c8a91dc4c412186756162125b7ca1d5a0c9a40e882367d3174568bebe1cb0ccdaa3722fbefda24160791578a582d1b1ce0f4037949354a7b49bb79d19f864dd62e96522f3ece53a78dc7b9325c66fca224d24939800d048126949d63a58353faed178e85df8c567d39ef84625111f04cbfb401628a50b0ac43eebb5a207dde5fbdd7dd5c7a9ddb1a55191670f8d968188df5caf304306a7fa1fcf5c4f42f8218b1ff985df43ec0e32dbb14505931d036cc186f73cf998852e53ee34eb7c76ca87b74069d43c48a46f4ea580805d4347ac22fd05a5280d49c4063237676992155448c1ea3296f7951e8a74bf2eb4b0227502a940957d34674eeb394268331feed2c3c94024944ae22789794b244f836559e6072dbac936419eaceddb85be91003b851702884232e82ae1b86fa07bc2710259759bd302202a0e4480b028a0e900ddd1b1d4251f4118218fab416d8a44a198da682f638862f93c417e4b1c18eb68eba01b1e933094eb02f6170d7941be03ce7fb9f65a680b9f02dc073c9e5eb3b1427710cfe5176ba9664000626b8ff901aa70ceba50f84b8c3378dd013751aac39e09f33976642f498cd902804d0a1a056db7883541f7dfc7046fae6010fe938c988b164c58cc94e97b43f0c785085df5ef2285fdc7b670c1b312c0db8e29fd1fa8108043aa5dc8f4679a0d6b49bdc5f7a9221fc99d80b75f8041208d062117fef46c66bb0cd454063224095affd02172a155683532f1e6855cd0281a859d84a4538b21f45ba684ee8866fba18ba2e4d5d79c08c92256447e33fcd742483a31faf61276c030abcb226436b308b9feccb82e79a6712d1247f5c6e31588caa489844d7f1c241bfa71001b771a1786610d9a57657eeb10bc728f406eac48cf40abfa339979d2a65979deda37f403f72aa27bc1e56f92c35915e9733d854f58ce06b1c210dbced00dc2cc098e3a9fabe5b95890e56fc7e346d7794ab1c915906061c90fc09d053d44979134c67796493432f7b6defac53d07ae33b4a0b926df59897943af8238a88e273ab2d57295cdcace3710150b18b8b434d2a9cfbfe594856fa8cf6008c930ae54f9b4ffd302c808ac6511835fd3566bb9d6cf13e7d30241e30adba399344d19301e5986a448c9bb0e94890c106008918199e7042b400fccd009cb30bb31d07c0ae46397ea26a7de117196aafa22984488cc7c9b565108212e8c87640551374853e6c9b7f8eac97d9d30227c0ba35049fe12693120408969d2975fa1ad687cc6400431e325cf183003cf58525dbbd67e5e9ebcdc264ad9de4689b3e47a0df71fd30b5821932cc122d59ae795d1cad625a492f26a1a09efd8076a34034cc0b4ae226ba566651573af560e40cae4f39d512f972a8e4faed028b762d3b8d5e578c011d0dd193a701f07d1f6dd966076afb8816ae51a930c0f0ecfe4fc9bf1d12450e8788cb5c84b4a0cb15a0312db8a3c89fb45bc29300b6c35b58072269e60223ebaca178b27fc93710c147d4edeb5871f1f76c04b56a27ef3038670739a5797ed82c6697fa688fbc0e5687dab7ec0154d65c40864ae59794f04632e1136e17f9dda4fb88a907522be60543c2590ed863c30882552209036a3ba9f7ff315036afd086a58403c600402cff2c102e5fb837dc912895bdd1dfc6bd70f394f7200e8731e38575d0c1b231e16dd5e4845b6c1558790f13ea503c5c8e50de90b756c2fe92f55837501ba504ef4bd5e0423ca9ac04778b7ee904673f03c3f943679ff147df1efe3540f490c6fb79220a2fb6b7b8fda7ef08e6fdaddbd35fe1f52a1d4b8968fcca96a3e7e99b56aa6504e28570b13e0aa8bc5e7ff98c5b3e2788ea5239113399cc3a81339e4e67e75359086c6493cc7bba654f82872db22c7a4b7827d51eba461e320e01b4f2b00d808fea301094f52f1092f7451c7c6c1d24600af5982d7670f62b61031e813e32371c0e4b79a7ca00c3a80bfa93c5f11f5dcf7ed9c4d81624d47f834f7c92daf77de0bb52866c9393899309e56de131898eeea26c7f0551bb8157c7b818ac1034490bc383512a40c14eef6b0f01f192633d940d8e20b8b6d724def5f24d80e1507b65392842ff76a63b9633a1df7e7377eb1213d029c6e6433d132093d61b5338e0461a5d787fb527d4afb94feb2140d0f2d589b8189fb58a22dcb98f8bd3850c055d17d1dcb053b682502fa069dd87db7dd35f45b7f3e5c138d945169ec65101bca7dc8df2d86808f9673bb7586873369d4ce8b8bb45c20e3153a4d0c2383e32715bb1fa419196cbc0425e32c92d4567fad9c8563f8b7816fab32592f643034f17e73d40915935013a13db9a0cce19765ecf196f9010f28da935bb9257a2feecc396dbe7b8615eeadd1e33986d47eec251ece7d2f766a65614e2666e9fbd4f6707f7571024e9f520aa08095ce192c3622ad994fe31139225563a670da99cb9eff5bba867aec82b2c8548b5f06d7c288fd783c0fc276225475191651cd5978b9ea2ee122565f03b1bbf43471ae3a1f8e7c5f6c72d97d8af78903fa4a15ef8343076d258af585039a56fa6b553c611430b3963e0aa0d22824b8dbf081fb27890121e761d49919346d603ba2f4db73adde50cd045f0d3ed4f23fd2625b1f2e67863068168117571ae516277a62134fbc9cf36e7a16647f902dba7eb3dd063f2b05028bbdb354a2192e5beebe0ce3547c24f7220b20945ec5291c6495af86ba82c4ebedff158448a687e7eb8a0c8aa6be669c80e0d8938cda04f1154ac5cf6980d00b305373f592127e453f8efc0a564a86a1e1ea82cb2c8649b7be2a8cc5059cd59ee9ca03788d79bd67906d9e5faac2ba1752f8d71fc00ac85b4d4362640ed03ef4ede7bd3d8d48056dc7b884970a0322747cc89b271f4002e8e8d5e3606f3e202722b210dcd200de6e76bd18f4bd8aa3b0fdce775a4aeadc49ab8fa33263814f3213cf06b3c94cf28165c4714cbe36267340455a7d10c89e28cee99b3e73f03b1b475cb7368ee2f9b7ca29375ad5c0149af5857b0edc6505a20613b70639a0a0bde9ac81c346e80a8896f0366aeded9ad0091258269bbb3b7b257bf701b07f77e37a3e7823879d788e3808d87401f42d5cd3ebe8a1ae2e559ef2ed23ca100760d23bd924c05cba08be7ee8837088f529c321848e3934a2d5ca7c0d495d0d9ce24f3d3aacd7e7b0fab7b6402a6e966b4b75b6020184b2d0fe47ad01bd0dc5498ae2a47707d876c8f77aceda7e64f8e51822571a2adfe655fe25abb46dbdb95384ccc20f5141ea4a949993840bde1ac259b0becd7463219b5256cec370803cd3c9370eb34da0c5f4596b569614805e420cdb739368e324862b98b21c914b063372116f17e6392e0b316cc664f624062244ecd4c422b8819e626bd8fef92d3e2b043182b8cf764cf0c9d70a082c89f49342a8e08c5006db0216ae82ba62fcdf780a9c5d23c629cc7945c41a19934ac57668ce8f47e6c0d94e85d9219553591f9822c6d85c2d9cd8b134fe26a3327b3f7266a07f896f358fc33f3a6950f6822b4837d3c42e638c184803a1cbcedcce6acc9a6053693b5f8f32fd58858816269346dd9a2423fa34a31611346c3e557b10c946577b4e923390b1052b071f2b963ef0ffe025e9151b318c16729dd8e3ff039dd2b7897031b3367cdd96461ddfaead33741161fbb62f620a92f286e2c0e443d1f5427c452d5a04d61bd6669052cb3543a8ded247a83eb770170c387e88416b616d9add434bee60a2a105c8f42df583db51b4980e72ab40ae70f8d14903aea075574ef49e0226a3a90bd28c09dd559e2ae794f1e6b3e548eb991badae70edaa6d627460f27478526905d1e188d2fcbc8263716171a7131c8fe97e82e00a659ff182ec45c95e989eea2695faceab435cfb611a58e9fc6f772b0dad7518c053f782579a12e4e15bd9544dde97852dc380c8c903f6057a02371a77cd075a900630b63c72039ef386ed2110ed41702a84b841eb94afad1c3c449e5f3ca229cf24ae3b6f51d5f46bd687810ed49146307950bd3de225456125990adb44e36ced2a039413e003ea65698d647bd247d374659e7341a0a347b4302c11e39c2f6d0e4e0299619bbdf98eb5d1dea6d36378b93533e9842ab250ce8e8d7c14f39a633c7bc50f07815a3b4cdb6fb2d2002a50dd1527edc84c34b0d366a85b362326ef00e93cf873f67cf25a8abc272385c806354c343b111ef55974174b90625b08421c295c381d9ca307572fae626252f47cab69e2ac3ade7c8e3510cc3edcf4411bbc4833a67832f4a497a8ec8af67d3f27399feadd583ccae2cb7eb2f168d5f815089de864c938e5c4dba3e002196934a43494e9b966af1cf1f946f616adefc0897157c2e6cf3889545eaf56bb20db8a713c4045519b88668e21f323e70cd4a2b0b501c5024dff373440560d38c38fcee2df5b6ee0c1b0a2d43b36c28db99dbbcd4b6a2331820d0a01f0e73238ed8e5510729a96432da704f221cce18cffdc4280c0de75c3d459dda9828ebaaab97e7f38e4b9f1fbfdfd56d6c8fa2d389736bbc093ec0d15225bb383974aee7e8d29a8aecf77ecd7b36b8613665f785fe2b97b6683e8fd9f0b0fd621be24cad6820c124569146e3ff9058cdb02cab5c514af0d74854ead8844124e557511563a551547089728c129e7ec40fff3d855e058fa006b71e4c03c80c093bd1c9375ead66fc1164fec71ae91991e2448c60b18b0321b4d6639209d0646fdfe25a6be2cdf57329235518b626142d79efa791ea79b43f0b0e198edd64f61eb8051750fda64a46634b0a0d45383638e503e0489f6710480b9550d2c1acf506fb48057525b506a465dd2ce840c86f71d9e8cdd6be9d1011d670d8c13603f5ebad5a375079163d497462c92f4012aaebc20aeda3cd5af9445235f945ddd4f9f0d4fc496627a0318cf8e1b1406540f526cdda97d82f9a1008b16bd83d6b4228a8b7270fe37144f6d1316faa9bb39ecf2724efee1e8929508b6077abb3971b9c0a1144d9f4be10d3a4ee4bfaeb35e8c90bc0e23f19c242c3fc3880beaa632c6ac29622a269fb95e9e7b56c8718b459663cc3b2474968eda766749221dfae1b3ee1528ad95d8355af51f8d8de8483203ad86b7f600d03238a9795800e2820cb741dcf4bdf6bbc6bd84cc92e83ecf3f921e4dfb95746fd8f81b8842369050f8b14a42611f8b60180b17a73615a5bc62b0cb9cbf6701a859d44800debdab5089a24b173ad01dfabc2e37077137bcb2007f025ac0c97f280899a9e88302bcd86b821d1b80c5f4974e183f3382aa00a8979803b3d95adbbe1cfa1ac45615949dc639d743ae7682ce69b9775d17a88fc0a026403c61bb22814001c8af663e3aacd415f7cf03a531d2381b2a39dd180d158d168f483dd90d7057b604107033eb0e3f8ed0e12514ece89d8cd196b0308c4bc78c4cbda566ae3dd975aae6be68ec89990291ea54ded919045ddac4ef22389ed1aa0f12b1ee4c03b8efc5d25684326efaac11f2bec9d40162992063731ac2e7e0bcf6d844cea221803346aaf489dd3532694d1a81b6845807b7a8d0b5fb1452838e9a6161c2d3a1ba47594c214f12f3cd7495de71fbad8db84b54eef2eb757ddfddf6d9a280d1b4377e77312f4969247e6976069e8e02fea2739327082db20684d1efbeebd739b6af2143bb7442ffeb37c872e19716058c9d2e150c9b31dce56e9f0db566d0694492e79c33403f9d17d02113cfdbbb589ace91f0a02720f1aaae8c1c434489030218c68a08cb737dff34a31fe903d6ef7dbdc3b325e03e3c3a7825f4df1964c3572e3d296157a0fee32841ce718d1585684b997bf38bcaaf6220770eb2efc531266d7c80f143db1dc73a92bfafa1fbefff5bbd57fe731f08f58a52d1522d2fcce013f9356df15eb14a32f384d27974cf38a77056ae11462c462f93164f1714463dbe79f912a349b6a017275c47eea4241a60d3c030f97241aee7d7d96d99d4e179afb3040a8050012e3f4abf8ba7a1bd90d6353d8828cb747cc539ab171f929722c38fc1baa9e5c8840a7eb2f34668a998b6b62e03391ebac3ef730e5348178ca482343e7833360672349b64ef9822556e71da7f6381ca18fa9254c36fccff12232446be6d0274f40d23ffeaf15ee014eb2f115f02c95a95d818922217a23a85857fb87064edc1a96c5888c1641773954c74dd6b16fc06979756dc5e2f250ab44bf4954ba0f6d290e6db1f431e0c159e5026e0fe8090f747c7015552e7de9f88a8e5d2668210b62731e65b55d00f543ff28d9e0b925db89b9bba4d2476b14d27923997080c0ca5adb1cedf1df7723ac8487f6a4b25d537713a9c3c49e6aaa4b51269f092fa00d4553e00536783d416248fed70d961f065c60d2530da0af9aef37a41186988a58af099750147506cdeafabb345b871ddd41a0c1411138cb84ecc19875e1cfd7c6eb4c8a7f0e39f943d00b469420b8c782ebf95b88de173d1ca00979a20695d9e2f51574a9a7d2b88c5534002acb1ffcc5f0b7ed8a752d4614489110a554edf570976438c0f566c13f205cdebb2239a3a92f38ab88c0c41f510e7312257ec7f9c28513a37443624b932dc42b1f612068700c9f8c655476486604d8422a4623fb9c84ea531b895166d7ed551ffef163bf5eadb9393548b884ba53880d8272d3c1baa3c19a75a530416095dc0796d175db8b54602c3f24cf34d5750b34351310ce66504662aeadca2ca8ac8d1dbeb3b3cb6c3a435d1f7e5a83974b205a19e418cc5cb709bc553c6dbd9532b4e883991b902067a633fe4a7c55e310054d5a85eaeeb7d105dd35f7baa17c9910fb283b74936feb59ce007c1c016633ec81c6c445e6e01a581418f700841f41b286753267ae3cc94b3271bade223325a59a55ec79bf09e9015ca931808f41379a310de0683b8b517e7270821b048aa85aaabc11a0cf6d6eaef3ba92a53f45494a3d8ce9699b1a8755e4433f2400eafd891a4b9004d422e9f7f69a45aab220026896d2e4e25c1f19620e4e080c83246e1dc063dfd43abc33f8ea94ca4a9cc3ad91637a1b1af47074d12789102376c60ac84634ccfaef71b2e48f67fe4a9b7ea3435a2d7200555801d723440188998470289a9d4aaff19f2bead2437e2dc976518e971084d2c2daa0e36594e338f8bfe6c04e9cd1128c4b9ac8937582040b83b7a320d4351eded8aa724430eebcd0d88e992b4cc2216d42e59bf894acebb4f307052f0bc3ba0ee9b709971ebbdb4d5f546baf36e869a811cb6414e4e176078bd699183cc0515773fe58a2a52cdbb85615d37db68c8b6b8db0318a23acf36bc0db18878dff881b4a2720610db3508b046118b02d2717f3c3e8a93e59c97c488873f7ed5239551a2f0576ec0290c78ae0d4c267245d0bd3c9323db6de57994b90bc50ab1bdf30fa3cca6f83a41333e7e14e96e87174e36e80019d036f750ccbaa8df9fe7ae8ae3a0a09314023be2a140914bf070bd3e2b64bf918d9499690054502f133320af031467e1988159f34acc0281621605407444f9e31366d3654b5c83d5b02854a6318add6ac1d8fd4a942d4e813e222dbf32b002a1e2042eba9401b2888e621571192dd3748670d87d5d737793ba21d6d6e12c94b034c732c1b2aea973d135770016d40630bf12e085f07a1a05d369acfe3fe2267ea9c6e6d2c3438f602af08de5b3e88cda6d3840df2fdb794a30d165715a3c3409ec0a94ff4c416dd8571e7f82cde1cdae90dcb000eb21ac8b44c88349fa67b05d0e07d80236ed17ae6058c4fcca56ebae528e367c1594c0e8b78477b72d084b375c0bcb5febb640a7203125377befc73b2b88c9607ffcac20e68488c456f72fe6d15a1bf7097123027f626b4251bcef06a85eb00da5f80b58978faa1e5e0364050213d7b4defe34d533c60062420a04e8c80d5b684bef193f7aa2a590c42ade9bc9b1184d958b199c4d4b6e0eb487c82029410d3411cccde79b47429a04931717298115149818cb0cc06189be8d5b2cca2b0f1aba7a5945766a740f3092d31eb679794ac532862e6122f3a3dc077a6fc20c214cf4ec93f53a50649f8cfb592a41227c38fef6e0858dc57d08fd2d93515dfd12fd8a05095eae91a2f97fc65de0a14adb5f89465f4ebf8a4ac132afc217ec12d58c2a93443ba48f8199d01457c47b9e7ac9582026b10145deeeef2ea565e4039e37b6961e71b3c032e3eb1d1bca617363b64528222a5c8f48d3915f40575bfad01f94faea11ec40c68446be5909ab11d7545a13d000017f88761e29b07083215f2c2bd74a2bb2fc8dbc54718bcb0007d8d3aff7084c3a41d2123ca7fc70bdfde176dea5ae5f040f311ae6f142a991a4ee7b1edb5400d61561f98242bcf4f9e93f11c09c2d3b6c362f24b97220b22a04236551e84a5e2c2abd35b1ad552f5f77ba6c83f0a55e86e75c1ba73a87fdc2705ef1029143c4620bbd014cdcc71aabd8262fa7de2c879232dade70fb5047a8ad4fbb05ea0f0e89e9cbbb6555ab82235870782fae57365ee987b8de86cc7f6edb015545ce30951ca585aafeaa44cd56198742c5d1108634e1eae12e80be5fe6facedb65fb0a559e8586961724819c63f94241262eefab0e017fc2a8f8d78508d2f8a63b33c444644a8c9f45e7eff2320d84bbc20d2a0724a176db257217ce8358e18ec74f05f77b6a734b1f31f641cb6a4a032c144322ff919b9c2649088a82ce02812214fe0c5f68ecbe065e0425025f5587214386cf8fbef30c55248392f548af6543a167b15d256fd04a55a22b76b1671cf8b769c998be6b33d6fbb63dcb1ed06f2faf6b96b7f841658be2ca67041e1098f3002542f6f5c64b07ded705c3cda01ad68622a9e68472a308ea2a1d5139d16976b0c23ab97f6fb495779f16b403f0d1657b53b4787b35e618a0781b0cb8cc93ba727a588b3aefeb90ce3d2af886d76b3ccd7d984347d69387be000774bb9ed5c33ef58fe8a4cda572f551b825f8d02c5915c406d1ce65d56fc3b75e04107da63a69f272cf37a52e1b2fe341c5b6d600c787a506506f71cf42f093a1a2ab68092d7da83a39d6f1e5379657794c990fbf11506542c3820e52ee370f46e92a4f746af0abf0a634f02ddae2f447da1bb95de7f12f03a986f0d1d597d3313c13b89f5ef58e8eb3aa752d496dc09deab8c67106fcd335236eb421238b5f4bb21f5511cd3a60933f1243c5dbf96c31a16db74e0b545b32ee775e13994eb09aa71423fb0e6abf94a31c400471d469dd0b97f3a45c39aa9c6cf72770fde55972e9ceec0402094c13ebd9f404c11673f7c685ab42d58cb7421998205fb82a13b20f5fd1a5ad08249fe027d03b615a3483b85a90f0ec1e1fa4808d773ac1c2ebcdf64eb076d29cf30b11f3e4dd5f3205691f85b8459e7970dac3484b6cb122ef92e6f32d30ae862f05914f45aa7fee94553b3163cd424d2805dcaba4dc0585f6b5610137e24a9b8659197a7c0b19a887cbd44c588ab6dff6036dc530e18ecd2385fa3901c5ac669dd51c7a8f32b3c508cbf19cab173204b6714884d6d763509791107cf8f77319d9723378f95d1e088f69fc611a2d77313932c14f13453efef2309553af9d7f0a410948f32490e1d604c5cab80b6852144083b60ab3c3f923d6ee4ffe5dd715c1bd7743c097531ad26b4eba14312e00303cf4f97f15135c249a6405a9d303e3b2f61adddf18a0fde0f73606d51b32be437020ceeedbe36f1c417b4913508ebfd9e4e09ebfe8fae66d132eaeb8a5e014dcf25dd569648f8538d7698bef655891e184e0c630ecc541743435b1f59ed537448a5c22ada021d142ddc8f9baa10724491fde9eae5f81f98aa3c2fce9e82df59a5d3f4ed946911fb29e44ab7c7bfc9806563e0e34afc1743aa31273343db5eda8f7529da9dc7082f1e82c6167e1f6ee8bc44521727af5bcf1917e8e4d6181cd0c35f6d0cc7ddee80b9ce6c61dbd6f821b09e77f2cb76a654009f8de18f1f216f712372b411cabab8e39c8266c58b3e790e0d05456eaadb4d017114a604bb4e52aaf25eaa26069a8692d25ea2fcc056929d60ee2de1f7825fb8d2e60b5a106de00e1245df3ed3f3c4041127943b001e532463202b9fae89870f84224a4dbdd2cb53ececa95d0c336b392b249cf782604f4093aaf1982c5ef9c3f52f43afedfd84a528cf6480d22fc0e68815a1e863309064372d8e05585f184d88986054cdcd21aa3475aea56570195855e7aebb9352d6fc5a19b88535313fc02b09fce447a72ca7122d1539ae47e1cc7175d7676d87dd04300af82894c92a5f00c929cd9eeb52c5cc2f25cc2b7a71888764e7e6bf599f52aff77b817f431b23077156146646d57ea04ffd676e0dc7d614607e62f543b1c420c577712a75983dea30d74613925e87b81d68a890b8b5abec28880004eac63ee2f281fac5c6900b893f3cd8f063526d156af821a91d4cde015fddd92d29e1436d781554c6ec68d04906c6897bb06eb4e2b444321bdc61ccfd1def3ea7655aa46888e42f34a18cd6160c80000823284ecaa73d40e2025340d47a3af2562512e3b6e486857f0e845e40635400e940c1d132455296a239294b4a31805f6d0c005cac12f6cbe9a7e5bdc68d36f84b549602107d7aa54118b94319ac1edcbf79280706cdefe33db01c98225c9bc4390da58d0610c5dc68f310acd19bc63464b4089fe195ea51b2ea37b03f7ef1777eab9ff7a168bfa9cd5119459733e4c1a988fe638b64f5b86bb2050d885584e8eb2649362a7a8d4277d7820911f31a261873bbfa6183d50699aeef1e6331da71b1986a3524d055d918cb17cd8ec47719565719064bb171d370bd7b2bfb886997a53505efcfe85ca0d650bb3436eb63b5452143904e76084e04f84dc61bb08fc7a326b970c63183a28650299f52e5e9ad9d188269bd09dec555307d571e6a27c3510c9a043eafc5a3462bd14121588260ec11cc512a8cd46b7849e429be31ca09ab6fe588d37c9849cd9597dde9d51a2a1bf400680595bcf81b9db492999f2768f9a138763693c8a689850814a13ce408f7e3211fc7136c45e46eea9adbcb8588df86642e02bdd8f7703a582bb94cb1455c7011d8c97b90ba798ecb096acb299898bbe6aed725a717592b5b93cc84c2d19f7952387a610e0a11e74366781a2898ee5a0e04e59fb428d14984a6afa5e11b18f0c10a7726424727885542f945221a73f490172472b87986d187154fceb3af0a11730fd344ded9ba60ae90149be21c6a0ae274002f4344d0e1b66879375c54fc71df42947c0746b3700fb3af5545f09b9d4895e7a0faab188fd01a3da4d38ef85a8bfb4fe57fe2a0544cdef3629d88abaf8aeaf3ccc6f1793c9f5fe22076482974a4dd66fe461d8d09cca8413dd5b840c50f9ad22815f473f6fa8b26032c16ccd13a1e9036d3eb7798ad3d180269af9a769887bbebd85e5b0fc7b59c0ffc42659c91a9437451780fea7b5bca036e77deb01bd466fcc19021aa12832ebac2804e48faf67265863da82d3f7d366a0668d9f51863c8cbd467720eba0b69b8c0dd2cb1045c8cb2c015cb61295fd1bb09fae636b250955a028318692372995b23dfc83521c11c4a6b4f2bdc20511f0fa76b2ee93d89c820750babe164274cf8d4147afde4d0da23ab02e18786261edbb6aa2e5a7a2ec8d9d79f72fb001bbd6009e68b8ee7c63088618a392eb424af6ab84331ddea1be805b3726aa64487ea8607ff94819ae8ba073b80cb542fa9a5332dd65c17db7e00cb71aa02fe525112b6e7d8601495be96786b2042d5f45ff719966f886b1574b50183127b6097850fffb81c512205114d70f47f18a12f46071c7e92c8ed9756581437633ba622002b9573a239f4937450f52112edf2796e7c9ef7799b5e3f892c428763023d99e191aee4ed52769af65fd7c48e3a99b43bf74446b767c24ff239699866a3c229a8b0b30a191171941773cbc9bc55f91333f9bb729dffe17789963f1398fba4cc4c591f24c546b7521b455cbe206a43984b956614f64813c3d31b7d9e51fc1667ae687f0b5f6f551a702430fae83eb192f348690a26911881be512a727bc03794b52aa8718c3cba37f0af45ac16e17254a7994c8bb44ba1c1e09533748f493d7360f8966531ef42d4146debe8c5ac59a667fb8601c6406cad4ed7f4e9d83b38feba087ca9055e7b9cc6852819c93e5a408b62276b42c9dcaf455a27b6413494b1523791ee8ea479eafe258506cebed1336647c16b49ad0e5239cca303fd588ae718714952b1109f09dcd27cd0e4c903b3a10e87dd8bf8fb54ca1444f1b480e48fb38777d8e3396aac53386933873cfb3524894318c39d8770e224b4b02376ab3791eb640d9430795f3e2243dd4747804ef11a76a0a3f01712c91e04405478b5a0e75ae8a067aee598a9b2bbaad0637a998ac8e21622f29561d95dba8533c4b1b182989dc1539462e274c1b544bf7668cc21c01ce7051dbc6ee46d389ba26f78856393779de814b744d30f10cfa048fe5b7a523251d74dd1ba7756fa7023a3d482d37b208403fa2f5209d147368026904fd0c9e2492688ab24a995cacb8611d42f95576fd837aa6516f6169c1b0c001a27656c9f9755b8ae549f58c570aaa8b8f7c15addc75613bcd5a968b69ad539df789328803bd51b07dfcc28186234f0b46f33ee7cd8ac35ae162dc146a9d7c8ee4ea10e528befaa57bf91481ec155d3f038539ba025a551fc4d14e81bafd11194f4ec902fd0dd7c7692b7e68396a9c48d15e2185ccf8b1a650fdf40a855b75c613f54da380891c1a0ca83afe56229b410ae013a52c00e07602f8a6a1fca80f2b39cc877b40b1567e9e3157be457ac03ea3f9a598abe1416739a81bc300f45c234f5d6be7a879ae5fbadf333322082c8cf586ab23eacb6ebaaae67697908a675d55671a43ccb2e01ca2bad0317377a21bba15d92583378a9bf66326dcb086e456bed3fa482ee927e3ca86e3bca2682a314539a72d43f61d83836b322933b805dc321a5c1b7530bbb67b81bb902670755abaff43f45f0d2e2f633fb8759192a69baf9d9371ad770cbff10e46575b4a2a88f2bad2c3b8888aa36c5a81a773e6aa23d08d2bf37c4460f16104465cdf2321fe148a7c816fe8079a0ede8f2407867bddc27095315bf6dc50db69278d07958d0f06f1b9a3639e9ac3a3f6b457b7b72b7cc91d9d72e2f9c0ec7bf94dbf39428eeabe26dfad716b07121ff345634e0ba7908700b3e377eaf88ec33d8069ec1ea44fa0805f94e6c29509ef2ed75141a72220c45620811d549d1723f729a43bd06d971c1da2f8227b47fcdce2b6a0329e654cf5e1e3835bb1b67a1e24c9f53bfcc786ac182f87215f4b2b22662f29d2872da7cd48751354c4bd9d38f5279833226fb523f40a4460d292ac8ee39ec2bab44288a6295492662e593d4f1eb8d9ff7e9c830bcd266c46369dc51443dc2dab359016b7c46a5ae5ab3629bfa2eec5802e76052c91d57c4850a8c11f8751eaf7e3e35f22578dcc73c8906a21cfaca576d72c46ea4ce206024379669987fb1a373d8683e27f0111b1e45577ca697724690615e9ee255a9ac2b9028aa95749717d7083aeb262079196ca80118af70544c49257dd29a7dd91a41954e4755c738ada4dc16c198ad5ab84383f73435719b183504bddc008c5f3045a64555fb8457389f856612e60b4e25677362b80b2752e13db375cd15fd662b919ec52b3bd01fb29ff1f191909af4e982598f2c23fca4bb60467b735c16739896a8d44a546565520d02a255215c8a9d60834652321e3f4278285a2bf1e0f38632f1ab720248c9bf90e4a995901c0d9e6df7d9f12f527e26dbfcec8ebc7f8c881722803e5a0ec4131de9f43477b9abd8d4ccdafc7acefd75541c763831e1005ecf4f9566164ee56a9250531a9d524544ece3129d9325a204c9047ffc49185ea5005aa1e549940101cd3c6c4879d63a15fd8b727a4248e517b1a13cf44ef4400eb2b1833fea117ad34514346dfb3bceeb6b43b0a740c1d8470279481e70960702bdd5ec609f9ae8c0843b18d12fc6eecfc7d6602e74778b70554aafddadb514d3de2df1b7b68ff629f956d487d3359da48178b5725067cfd5d613ae82d25c607aed0fa521cc801bfea4dc5541f851635d51005bfcd462bfefd9bcb3e61cc13bcbe68c7c65032b616e531a38dc61e63bd2a0f898cf73473095a19cf56fdc048292d5aa01052287b1c74b0e4ae8143345e2b6845d6c7fa8d35bfa0e26ab82f81149e993ee4784d170b8c4170b5c764c9ef439a85387843c5bf6709c85c2f489213f3c596b8f40945043a53ac53027565b93b4ed61cc17b898edc262fc4b68a1f72dcbd3a436a9a852db776b0eea1c28e2dcc21d22f44f6c0668e1516609f537ef39d74176ceff84c35e44d0b84dcc224da4d8371cc7e5bd3a0babba2d52e1be8ab7cc5217a25c40564ae59fe8d0dc7c7d7f4bf5754e46e3d792611369e48a200f81b14a5a63e46e5c1eb7b60547c20dedf3761d0e0e110f9230a5b18a5ef5e1e737889ae0719358537e9b2fe0d366b081bd6d9c1b9a3ead81d601429ddf688e1f07983ae80bf480384af75da292dd466bb2cbb9cd12a45dccf39357a80e52a90cdcc37703e43f42ed43438b0b2d1f5fa8c4ef696573a3c12aa410d24bcdc9e800e32eb637dacaff50f6b664fc5297788d109e6258b6e8c7c4475405bc5c116bf430e9a78d2ef718f4629f17ce43ce80fec2d4f1d41543503193f49bd9bc216ec482a83c53244db21ab6d9215a0a988878669e2ec0d011f9bbe20d47bb7f5a23029fbde5a9c3cc3b1b703c0f43cd66e678372447b6a48701c8375b83e26de3186526af8525bc12f6d6348e86068b112566aa5ac84956c0bb3a6e487d518bf8d2e48d80ed17e1b9ceb241cfa5072544bb0c5e939da5d03c17d30b746d6d81a5983b0b27d2ae21aa83f99c10a0bcfd34ff30f391aa2a689091c12be396162ea7d80177344bec430a6a297e42417c9b535b3e6d6cc9aac0958b925aa3116a83302a97da0f109fd88b01035629912da5dd351e3b582d6498f70b7e2c69ec886cb7f1252b7fde8632f4f5d7dae636437b45d93bd9fa9f24aea08b4953610017c0eef52e9011799bf115731805c139272f4187176d64c9debaa5011408fad316edb04d5335223b0416031ea1ddd55e118ea013e82fc62e3d31fd866c02caed6c66a594dab6535c26aec55e81e30893792a76315436274c6363a4df5a251c04b423c498e241aa002dd3dc3d89130c6c88901002f549714ba653baeb35f83b9cfcf59763b5239cb6c22d6745ba8f2389fce932853bc59c14db2b423126a93b4390f215196bc7847901a2a35031268a99e2573b10422c2ec322018126d71fb635a63bad79ea489801f23a6e705c4328655e1a5cd0752f5470af790e6b86d0eea77f6985e11ac0e19b1c57ac3b71058cf86097f28f0f2e97552116d2970b3b2ecf90f0d4d8fd29144ccf4176477252e04cbac54d4ed87377a975afa17b1543e2f90860562fa02fcac0c6ec3a4ecfeea013ac45bea2bd19490887de4b3434573d7a32cce478d8f512d80291ac6b32ce21ae7d33a18889e7f44b2d874b2eeebf582b2a3374cb960e2199f672e4f7c5af89584a78a234f5b0e1084298bcb9db15554dd88d028a2e60f0cf8027328aca228311e7d184d5431c16144aa88504fbd501ba3da84ed23d51a0192f35ae12c8454d00be2c3d63e56ac5c4cdadb729e04e7b204258d2e9b21dcfc1bc8a7444436a2bbfd526d628bad472821f31052e8505b0f653c39883b4b42db2117746efaa999b5bbfc8e36db50c5a1292d34246460b343885d8836c2e85352dd2245fef35e2d53e66c3b9be469011520be2fb12ca2509386c1587ed3ec8aea69f0702f726349eede6ce164d24a4b1a462c228fe1728870f7fbeb70957648f92a5c5ae1741afe9d48121ab5b7ab873f0c73f6f9fb5d924367e9739bacef9d97fb2a43ba6de1a54311dd262c7497ba97aa277bfbd07033d77ac5bf550fe96ee2f0a54115f1534b370125ecc85c785b4b40e015d44aa1b1c1784a77fbfa34da643b3081a38df2912aca0e42715b3987b646f5b7c9ea47f9e59ad746da826990458686078912dbcf258eaf629f624b8b8d3c91349c82088a20607fa0f502db2adc1136a7b666b351a831c90a4e511de1424e0c0ee19d4f8883b3769f471691cd709dae926e3d82585bf98ecb32d116c7cfcb285c52c10192b0a076691fa49a6c745d594e9a37cf77b779298db3830c1a9627fe9698d23f48cd6bd0d47602d16c3ec2e7e3ce707a7bfce38d79ac5f372f0bd16942240930fde6c9c4b55416b702916aea8c9829974b53b8f054172c0a5a019a0e71272368b116c015d3a1807d339e41103958fc569df3d77d3bad543996b3c124442a5de5bae99ed1431092808e7f2452f38f782b0ad349d0d200cc8d03c3151c9c6308880b82af8140fee2261d27168a839e15026a908c2a07bce3ccae076185ea7149ac6bdeeccea6e571e3a9416ebce3f907c5b441eea2aa8c081557deb06c3bbda9e17a500101ce4ecc240ebb14a1b9cf892b93d08f0d2037962749a5c760d094520555a54186dc529c215728a6ba632844b02b31687841de09af0d35fddd67b9877b2ee6eca764aa07f97c98c48f8047572dae223901316b57c985c6376f83b80743653fffc73855ee869251fe0e8310baa5f49f2be915ee50afe3530a3ce9f94c5c3c8ccb87630423402acacb4cf02a913b65bfa45aee7e541951457d0f9a0911273580d78d6cba646975e5f29cac2aa592a613d444bf0a5d396ec28c46a8859fe33f2037299ae3d551d66f0673e19298c3eeb9ecddbfc876764c0b039c9171e213625f0b2ab5ad0bb5af0d1ca6a1eedc913061f629a8741353ce6ad3019c7b25b43fd76b5ea81536a0be456680dc66de76821889412f53e2244b22389b949cffe81861f6fcce2c5a549ca9e0ba085ffcc43c804fbb8c36705f9f0ed9d9f2209a618a5a8a32174840373d8b490d7a52bb7567f3b1bfce57b6be4f9b7c4f28e50b0d4a25bc8c0f0565679afa343f9492a74c44564129a79df166c1dfbe078edf259f1cabac9f9abf1ba1af2c9500dba66562d1457e6da5c22337182c318bb1562550cda440f843e2bca185adb4e0222f97bda09f7aebea95125aa7207e497cfdb746bab1fac353966c6002a88f9e8ee9ad710e04b756ebabf182a38677739525ae5b75926c398ceaf6a6f693c75810ecc99270ad8fc5d7ba6056aaaf4c920346707a8078ee1376e22b0e9ca94eb09d6935811087d0b1114d4c4c67544b35cccef54afaa24b459982bdc5c7f4e6f7ea7654732d3193bf9b457833c72fd1881dd29c5f1b5d1325a61ed0662cf39308d27695c9fb847caa5cc7369e1a2f684cb768a3a6980fa6e87a26ef370c8607e74ba9851254e8ee919c42f4a469fb79437027bbfef99f8ae0be0e2cc42f9a1873402df2e0c7c9344bf83906e1c92cf3e164c274e2418c90328294dce926b23f72e4d10ad31dcb83d4f84a6af509dace1c0fa24915d65ff3d95832d575dd87317958bb2b9309b10401e9d8efcf521d5da29caeec81623fd0313801979eb79314fba8583ca50742c6f82c9d16a0b08590674f66370e13992f3b505bd866c4b392704a3c8ad46b8e3cbf3302d2ce4ad2a71463caf680df3877964588ff75ccfa2fd88d8d4f6b5031a8323bcb8632ca2ea824c1bd95a48994282d06c3f6100f306cf466fb8cf8d9e428d8b4560c8ca0d14a72afbbb9f05c19b428a384aaab755abaea552bfc9f67efb379694516d60d1882b3459476af2cbd62e54e13da83109470d04b43f3ee1d9c65680f67510ce3f5b807bab11651940b4c83f60f2e63a06505700f7c948958285b4e9644f5d7ca454e8610d6ce8cbc10a9c96c5921aa8759f943aa8d293243be8659f284b466663285a456e6cb855c1d66ca1c524dccc818d235cc921392f583172d9c483fc0d11496f013deceac9cd8931b755372812b3191d0e513bd79e7bf99cfe16bd22bdd8b4333b4304c3c1dbbd72654133d668b3e53cd986e95c424c02fe6a3da049468fe3441a7d891829f37bd7196fe58a14c968968e97d894d80650368173a4ee02d3a9bef804cef5a7aae1a8a8873666e2a7c1414b83bb10984c1afc5f407e04b5e09d07001a46dc5e38854111e092f5967cfb017e5e71d47073b424d7b32a451ac7dc83edf90bb06339243d3f16c0e621107ca01c7bc719e7958d171f3b8f7b384c387b6f30dfde6737de103b168d7b045e987839fae6dcdc5c152f88ae3ec3c3e5a59a223e54160aab9de3028f41965a3fd00a24d4aa13c9a131553ad5c829d76f8003dc699a47d4556da47f34bfb0881cc1df125b14898b4a8abdb744d35a6ae792c7fc29f6eab9158740a2bb9218132b5535890d2fece04a2c2a03bfb7bfd2b0ab64a87006bb2085061889bd08a049c78ba0e5e4534b552fdc7520dd44e9495f2004da8d019b29e012ab0b2d0286b2850546168ead2fdc4e14099ff5fbfbe03917bf08e3617333fa22aa8e565c92a2a808a8cc5dc961d4be155b14013327e89dc10bfb3240b3f1a4f2de6d2dd3fb7c4fb67659ee6fc0b7e05be51e351212f5accd8d43f19136c975ccc9dcf8e3cc7b82c2ebdfe23c5199bb65ef34e1f3185080f82ec2d26ec0b0b09fe7be63a5422f91e713e17f327307b45af73c4fc8e853f10737153f762be01b121a0f700e4fe44801c2a326303370d44f4610adac4c87ca6537a18121332a31e071c46ccbceff333473277ecabc3b4fc9e71a6cdc93d1a2d73bc36f1d6505cbd18e267f2122910a7e299dd599b4295563377f7ea9c0dcd57d708334c65fa5b36c279aa543a25565b8f70cc5baa5f983c19c3a4077efc747ee3e7c1755fa9223577b4d3430e12bbb1744db121b5210b4d32b7a68fa599223017e555d59ddfa8fcec41e5e8bf2697a7d850acd79fffbe2f620d93070b16457744d20014d57226a00bc5f23d76d2f2ebd580b4c72d7749550fc0a9bf95e5b21ebe37c32777d1e095045fb4bf5db960c2763d11feb8545b63eec00f93779575f848e4687de2e5d821c9fabc61d3a7d511ca2ade6862101bf0d8b8c212c32a67106e31759d8f19529d44e902e129c9865bc440860ee31d08de5727f30d01cbc46a6648f7ef73c13f65b41c9044611fa27a9db794e22c4bdef7c63d40065c83876019ec02e4b11b50a3f657d34608cce2b610ebe48214209b872ed1e576c5e92335e8275b803c2248b6dd79377225631fa9411c950c1daf7521440d6070e700bab38b2ea669439b3f4825e924573e18f246edb7fe2351e56df20d871fe29c154ea9fd981127e5293f933fbe9ed3272dddaae4a5e29510f0e2b893228093ccfa0aad3a73ad02ecadd07f8e41ec4c69c97975c46a606d6358aadfe3815931447d76e7c013c90f3cf7fe24ef6f97bb44c3fd59d09d396203c1959ceee173a7fc3a69ba1b06b36e7b834aa71a6a5821c449a8b7e5c4f9efe37f7f38fb1c768eff02b5d5803781f646765b4a14bd5159cf1cbf0687d307e16e9b2c7c67415638de503f8e400cd69f3a9928655555a9e61cde2c90532efef09871ff26a6218e437472f1e3bec066340f24c4b2804492884c8271639298935c6b5ce63a53d168f0e5e945f08c456e03ecce6f628c7380811121b2495d00cc146ef051625f631c45d3331699447777d4aec2e9f2228868e8ced34f5c43a6a5621d2c2b06da0e7737da276e986b8512b2a08f3621232e57461ef77c84b9a2608e4e0f43da18aaadc2b5b0b72e63eb37533ce6fbd29638082c576d193b7c625f8159084ba181228e518571ecc996920381350bc5eedd74cb407cc1f8d47b1fc7921ec80f500fbf37efcaa80c55c6ecfce5a8b1581a4cd2df597d50ec3c1bb0bd32a54c348b19751df0f3866857d66667574df254e58ad552a9ceb864f3bd06a7780ee2a96606214c6dc841afcbab81daf3f37a6c30ae26eed1301d3f82f308f7f4b1c758a52ee15e63ef7135518e338819c370656a340b490989c4cde0b7550ee5e498980c1f8ed3b5c6d02af62332b86b80e68187dd149d34ed88877e99df3216ecead0a58ef0a1663047518339fa9df8f055a172ef653843048b0a8b5e385334f859d7df51b99ecaac2fd6c8b3306058d22faaa072a1cb52d789cad2b5d547ab44488424eb0235c43549b22f20a9d9b3868add1159344005f8531232eba5e6df546c83ac960dc1822941d56e94e1eda2c1f5e15ea300a38461f6e04d648afc541ae07e38b7bf8ebdc1a702937b2462b1883e0ce0b904f29601127c98dac41799826fc4cf237b623ab04e76fa21310e2dc6e081d8aef0f25020c090533a1ff2278bdfcdab66620d99b1202e37d2c76f2a608547cbca13af47034966c00a23e26f2307f9a6669875243d78c00b63cc9f6afb0b4dd7c6693caeac3db1c29f5c77ce33eb812cc1ef1aee470febd4712aadb7fd174d38a71d94394a43d3c338f762bda7ba7716a5a79802e149a3a79d2638425d8b4c041642b9960d988f5705cd3ca850e663561622ca7a0e533f758fcb1eb9a8e47eb2b198d0f8f1e949f3839ee27be73cb896afc8562867062a48b2e6b4308557a16aa9dd478fd0e446efb23e710dac8b9d9126489c2c02dc3b6a4f980105cb9a507c3c9079b1e19a7b072de7d6d0e954e1528f160acfe72260797bf48b25c62e6b465eecaaae02979e4a27bcdefc0cd1e9897708cc7da2f3de1146701252e6f3e69d5fdc0ccc5d6ac2c36e87dd091ce30bf8cda8030d58c557e261022f84b78497400b03cd06a2b6751371e878e8f9145a2e3a494a0be4a3ef3b2584aee67c75188f78e33e663a52151f55885f3173e67fb0064381b0a5e29e83ad8e08922b91db17e85999336a2bdc7103c5b295d01a2b34bba552eaf6fa79dbdc6f671c4afddb650fb6d2db47a7d958cd2e8ba96404f0f35cf62fbf669b443fb7625f99cd3812dcdb8eb04680918901566c25f8f845c2ad6b1610cb2c4389d573a7947baedc54477f42a4ef31f78e005ca6b9fe66e1e79e5daf02a9427b1cddd2c5f91d5521872500f38f20a0893108a78259ea590491be8bac7eac81f34da90a2f1094e533bb923392166595a56efbfc2aa7061c580902347215c4ec470e289de0735747e7a0038acc41185a40011cc1171de7933e78687d5b407c6af9b05f5282bcf55a47bb7c0c384745bf3558a0bbd3389bec1ee29b15ff594acbd7faf267b4359b77bddb216b58f80f7f3e6cc5294a5489af467d719c2c8a7565bfcbe737ea6bd159144d5964d11cc734af237e89d0fa88a58fb867723edd095343c6c976de9d51b5d41064e61e50966c9cf557a6e0aebcc4435edd2616af3756a8e2e5e9a37dd6a79047d1d106c255605b33325754af4a6d06f5047a9e7542d77155262c656b676d65fb109404ca02f4189cac34546f9af23446ef5397132d34795b68b520607b5d6bfca61be88b155d754b535fc4798cffe625b24a69f81607476a28ee70154f819588450a5481744ae0bda6c30b62758147c2722af1c310824f190b0bfa19df0b4824ed2f6d45634fbb07a861ce013a7156c1add2b6861559dbe85a3f0993aa8a7796f8555146c0afced74fea79abc4abbe47ab16b22e919f170ace403e88ad3494b4efbbef00ac249060780cef1222057726aefc75010a477b2ab503ca20621b270f99d4dfa1bf4a4a06f60b6843a87738dfd57769f4d23eda634c8d74c27a67c1490d455a9d09893ea140346691bf5d1412dfb2c2808cb08cddb30c8fe58e8429133f2840372864e4de1809d34b49ffa15b3b48352d554f50305869a872b3e204863b61fe1299d1529548d7c6d885e65058bea4b72db1a5fe9220b0635764c05246e793498c813374d0512f808b2cfaa3ada49300354182f08731987472dd7532f0550d77b960901765791bca85d2b1a5550797c0333f24e8cb2349ea3f2ca372534968a0d134252f44652e46346146d914b634d0b577bc915fcd8526a7a59973a13750227f78a352b2cf9200091074e68c44ab3338be73edd8dcd48229eb8bd303959eab6afa7b3d1d2fc8edc3aafb46284ff7603483d2b52a3113c78af08c0080c183b42282c18303c49104aae2d7c65930d89549077dcdfecce3dbe933b2d837b04ede8a9a8aaa946b35b0e926dd60d8aec41d350e72d4e7fc6474a0e89d3ed83fc001f85fe724ac6bcaa039cb1ac46cdcd1628f9a964ad100fa124b409024646fb9f7de5bca94a40cdb0b0f0cef0bb60271a76a285932491cf4100d349f66c1e35b0e1b88079927a594524a29a59452daaf99831a6983218d4c6f32fd0f25822e33fdf9b9c51625e2d044d0df69e8a334c761f6d2c394528cd28c528dd28d528ed24a694729d8e0f6f2b5dbfe59766d6a841a635a32d9ac67e3c87077b7eead49c9594027ebe0cfbd7d19f6725f1d873a99c7590cd8d131fee5fed7fbdb45c9a102195b914fa373605e76df8beca616eaf0f4cf0f31dee57ff87ff14ebc9316589b51d45b806c22b2fa77882cccc321778860b748b9c217cb2f77253fc60b69b95c1e2e7fbfc7e5efcbbf2f1f0303f97f792031dee585b42493f5be3d1b980f96e551fec3b1830c23abc89416cc7289ee7f9708e655eecb242d51547f922ecff9d4cb243a0766abdf2f8be24e8adb8f9e033aabdffe0538e0392ffea8938f1147c7e6c0821bafe00aa8e820efa5d12c7fd5ad7163a0e0501a9d4426d944288f42999479d6e964df2fc3add160f6309746b3b29f2f577356f62e377bf76e6c79c36083d96b7726c1fa532cfe70f96a690f065a50f6cffa0809636a6aa2b2a865bab2912a9f098beee64025e5d920fdd852b64f8a855af65b832ecfb8236912eb9fdd3fe6d960d72ceffb3548b3b0f39d76d285b872f82326c518e3766a55dca15d977908001b944f23898d4cf38b1a63c218d309199b7294ab77d4091b52a5ec3bb5fdbcdb6b3726e49458247047e094f2e422883ce79c2f6721592182294c140af0436a34f338d45c5c96a509cb054b932bf7a7bc3c07a6c8594c8d0363d429568838305244b08b525eb73e11593052449cba4404dba871ea50834fc49d3a834a24eec47c7f1d529d883bf7fbab0ce20efefeda44dcf9ef18df5f89608a3c07e6c85931883b30df5f6110775ebebf3211775cbebf2e117758bebfbea02a11775abebf0ec59d150c4c51ee8f331faae20c4037ad990f5572585d5d8019fcf303c4b7661e889b16f834bebfce78e1632e11d04d8be6652e11904e8be6655c4c04f42d9a8fa1019be7e3ab812f4f4c444304f4b57e58ef7d0f5f6659fdf46c10d13ccc9196511f6aeede9e9d9cc6c57c3a867e5065e6462980ef69ee0f105aebe7050cc4b76430edc20c4cc388c1940bb1a65f06a618532d5c4cb7f0987e116bfa63600aa4d3626120be4584071e7ab01906532cc49a896916624d7f0f5a7ec1f40ab1a6df05d326ab4b5b2ef522d6f4b35c6a055a05095e9a85c8ea9fb9348cc8ea94261a46a44d30474dd40a932993e7d4a1c8ead7b4b00e51a63aa4327453c06830cb81e589539a624daba80c35a8c2c4ab71b6bf79629522fb21cc51ee0ea392624d3f25823df9b00eb10cc51aa6c6719aa2a22821982996b245d742550e2993dd0295b994262db4e1875f13ba1482394c69425d91d29461ba8468e6799a2acde0d3f73f4b669b7294799a9531204959ba8743cbf309269be589eb50ac71810d599a98c0f8c9f34f43e4f99e11797e97449e5f9d893c9ffbd838f3b7a6a6dcefb29bdcbba1cdda7737fcb80d872e4d789099d21841331a250ae9235f9352ead4062ad6340d29a5f44c084b6fdce8e41bffbecf487e93e52b4f3b551768d04a61438b84b2aacf85a2e24ecced43ab5871e5feb9e53c6f0d239517119aedc186b2028a895316272038152e727f9c2e4c44ca657b90fb230a75ca22f7c71310b93fba7783dc1f67e737cbf3d2b037b061caa5121477e4d2d61d81d52ab82d7043b62d5488c8fdf295727547e47e59abc8fd92db42ee97dcb645ee97589e37c606364cb9528ee28e7c13601a0fb28c2953426b0fd23613e4fe4eb9341ee4fece98727f375684dcdf735e971ad830e55231c51df93e64b4c86c8217b9dffbe843cc87dcef29172d92fb7d3621f7fb5441eef749e75515b141f06ec2544a306173b6db286c987225c51d898410e47e141f215c28579cbce4d0c9ab9f52c7746639cce0b2e804f397cfd4c92bf7fb0d952c71ca8544cab56ddbc9b1bf965dfe8a4ba50b1689c2d4736e5c4f23364cf9045d4f3b75a8e9c9af98b7cddcd1a3122e72acd2092722c7f7a0b8c3492de4f87d1477b6a6c20ba6b8a309e58e993f21c7df1177b08f36c81f142b4c582942e548ca155262a0d2c2f3293f287263dd36b755473d1c2ab9ae30e1065e2922f791dcaf712957e89418682a2d727fa669d67e1f0e3be9082949e9b594f249f9a47c523e291f9f9437bfa63c8972b4bd11eb46ac7c398122b765822d0275e47485530ca292fae1091413a6c3a19239a66a9990fba77cdf6c11b9bf27ea486e7abac229063dd445ed6aa3a346924cb2c9a7818264d26b09250825082508250825082528f7a75ea957ea957aa55ea957ee4fb952ae942be54ab952ae2b3997ac8507d4e1a046a122219de038e969b16d1e50eef73419343b1ce4fe2eabe14d96150999995443f285b4215bf4b95443aaa1dc8fc2247f898989a98949fa3031e57e9423cfb9d18e2cd297f44a2847dfe7466cf66ec46a2b0e49ee8d0bdb0cb4256c1c124d6e5cc8fd35db3edc6690fbe3b6041acaa0239696162d289b02ab02159ac459f6218bcf14b99fd3f0266f7813c6970c6a7123764e968c2d913b4936b125b224f195e51bb1f23ffac313b089e90f5ae777251381c58762169f58c3e2935bbe4a66497a218a2a3f76df8f83f7120791ef7de320447ae47b1fa4bffbe8759de7ade2af5e48cb235ef1f0befbf81d064224e29eee571808cb770fa4e5bd17d2eabcd5f3b4d7ad82b0bcfcbe4188f4b0bcfc202ddfdfde8a47cbf7e7c0f2f2eb7befa7275a7da83ae1557cd4c796775711af7c74ef3d0e2b94f727ef571f5baec50f5577154fb1156fd7604bf31c7ae42b1eff1afc6ffc753abcd25612e679bac6954be6fed3ffc67364ebc52786e68e611a31d3dda73ff6986331aef72fb7fbedca0c73892c00a6bd2c6a3688715dfee5ae5e7adcc3ecc0e195166f8af0903d8eb843f638629e330a3b330fd3b3c1c34ac33b5c568f7d7677fcfca8fcf73f29bff2d5e5c2fceabe7ccbed67b9f2e712b606ff1b7f1dcf9151c93db4dec37c8ff730180891ec81f47b9fe19eee5f3010f9ddf3b4cbf57e75bbff6e6cad76b47cd4afdc13caadafbaa99f3f278fc2ba1d3f3f3f7cea7f7e4e5e88cfd5397952aaba5bed2646ad55ae306748a5edb7fef5c4e17495b75bd537fd084a8dd870e6d52b47baeaa690665984ea5ad05a0bffc96e54770e19a8c61865d7d5b91937da988c32747747a1b2d349f3bcadebb85a2bc775dbe69db22cee48548861317477cf302d8c31c62d8c314697d2638c31c6184fdd12272d6577b7d64ad27dced57c2159f5285ecd527f72fad8382a9f62577028857283295875824339149d65f10963fbd90d870fe6302ab90472972a3d897caf599f2ea58c4d91468c6d899227b0c1e8c90eab92d3beedd3b82fab5847bd93e6a8b632751280c63d7dfa9c9d6c29434bdac858d3d9a42fb8cf9392196a3418431d55d3231368304a2c4e71b3ce9335279d554c2c76a455a8e60467a7611d187343a3c1f8592767d06919bd763732821dd3607c79c2989421e89dc9d80dc8b1c139e75cd1bcfee8c5f84327c78f299caaa2745fca8b014faf6a309e9c2c4a490bdfa96bd04bb9d49075bcd0f91aec1c093e5d562ab74d1739b54d8bd98779165a6481749b0ec66bb9bb18e33e05fb232a398e605409e1fb322a4f1c3e20fbcf39278cd638a1c7d8c9ad7e32f3b013454d1b65949452558a94f846c71dcf77567cec6adaf7c5fa9fb3e2a778aa130a2a654f4e6c0a254f2a2fa553f9ea0af76d2c5a8b4b0db83117fa32613c467cd9ffddfe708a0a257562512a9cd7929e4e9e8df8337e2713e51d2336e73c7537d6f894f3519e8d3b7be67cabdf3eb5537aa3d02a26159acc1d25eae43d3b0722b55b6b54b71c420d65ee70369827166218eb245f5e1e66fea19369e3550eac479656a8a1b4b2d6d8e0a9ffbf9e734e9fd363cb9843ee0c0229c4db97d42414c93da8d42a2d156a902691e38d94372edf6d603d2dd6b81fe57827a6cdce690ec5d894c2ce0f67d6ec67334c7bf640330d238c303440f3bcf12650a8d939fe92f6f79424a0b95d68b4e9776cca993d86ad323c5f66e9398e76ce3ab3e77969e24c9411c17ecfb189ac7e69d3e1e7e058d33accc7ab1c9fb3ff9cbdf695ce9691529ac99ce87c0ce38879fee590b4a438f9a18c8c3532a7254b3e96a0fcf8b5a4baddad531a6be6102f65f430dc4dde048fee2f5d466745c7ee042b7f4a297d5621063df21b03912e9f130321d2335f663ff11110223df28110e9f19718880c7256f68eb30feaa199c9974739fb7a632bc6645807995485ccc6aad07ddf7fff9fcbf7b9bcf7f756e381557da0abe46721c80553645d54f9d50f511f721f761f7a1fd20feb635f4f34cf8ab29da395f9c49d4ecf9df0f4bcef3c555769ad4f2bc73dc6653cee600edddb3d1b137be737c4b2cf394b106bd6659e0dfa9252f974861a999c21866d5ced3a8c04d1974eeca4982aa553f154add2cd1b769eb75f284c8c1b678cb171cb9031dd9dd1b5cc0c68592ddd0b2b9716ec04567e0d4d8799a0a6c384008087ee18a5d4a6c38470a73730741fce8f6e3bd700cc062386a1c34a10800e0bc2ba0ba08b8d336bd488a18b5e8c3a31b01ca4d441071d74967b8c0c1c69b8471a9146a4116b62c4f73567451964f019bae8c54867c04860e51300081b0213e28ba1a3012727a7e3d119c000ba1dcf46dc9121ca19ba16010a004e6b800e0b021b621ea0c384b05810373a4929ad21c698e3e70cddb50623bde17cc732f5196dd41bddbc21cd73d66024b0acc6d1d9e0d988357439ba3bb120b0203a5377fa126545f18d16900e4adfa42eca9fdc14ca05025b275f6de84e2ed0d73a01fad6c9d71bbae839405aeb44070d7826eac0c9f33400bc9ee9e35373f2344eb075d654800276ece08101551e9e8dd8e12a875c619966cffe323a0f1b00d4d0a041750c4635a25cd9bf7a4f2da616731a01353439309a6bc246d06404cbc34431d12c7fead9901835841af21c6a441240d8906be29a38303a8763027323b03ccca1ec40581ea6f74140ab99b5cffe5de778ef0d76534d4a4ce4bdf4261a945d660d8712908f4989b58cfd40ef575491cc921b82224bc984a35c90fdb72803aa05d1c65f6ea822d4d08f9d1fa286328a090ad438400d4a1a94b5c73c075e23f56edc2cf176146bfc39212f01b18b3c9f0665194a0ff301a44f5dd86b2f69509e1e460d65d7b2d6597fd490e7682d7f54918bc08634880e790e8b6b0831c84108861ca9a21501a125b6c8a20a284c3083963f0df2a742fed5a594524a29a594524a4ecacab9a6809933d7b406bdfa704d4fb0f243ae09e54a5181f3ff5ca40320c7c76c603b5a93e3771aea4f9c9f6e8c4bcfefbe6a96e33aee672673bd5f8352fb8cbef603cc36301cedec7e80993ef56c6041e2842866e3d0e83a477ba1a3348b1a2b2a6a1fb76b33dc4d8a65dac639266bd6b8bc5d4bdd31f7cc5d73dfdc39f7eadeb97714fb6f9d133baa859d948bd450c6b26d76613b7bf73426d2fb0406f5696a902937c9d83765ec63931705dbdfa1b64dea49197b1bdbd3bbc2612508fd958fad795738a80499aff2b15569146cd090ceb12f67618fa57c9a85fd772463218d0d29eed060ca98877d58ad59ad5aad5bad5cadb5d6ae56cf3b3d4fa3869c7cb58f7db53746d05af9f6439ac4f73c6d69d07782512e8c2a6a10db81b527f5ed0bb32fdcf68788c534a8412ad431601f7e27971a8104576257f5c3066349c6fe84a950e3c855c5e197b13f3d0d6a9cd3634f8da042ee7998872caf6c964df9874e6a888c7dca07d381ed0f533fb9a941cce3c1c1c8d83b53c69ea77d69087bcc8865596dfffd0f425af459ee6a7b96ff41486bbe7dadec92e7acb696ef99dff21beea1bfc240bea70f8405b3afed43cb646e8d895a9ea7a75dd220665f9e833a6a411dc516451d3588d1215a4483a810cb8dadc92294b1ff709014361e15e52abb8ce585ac7a5a5ab06c7216f6df0b69b1dc1e7216f6dd169216a9bb629eb6b1bdb435bb9dd420f6daed244a4a0d62288f62637bedaa9ae87f5836f978ceaae77b9667c140e67fb87d9c85bd9016f68da471622369f036521f6910437d0d6dec9c540df21c5491d793dfee09675ba86be78d2d5451f798d6a18a369cf201338e2d946a9576db361b1b8e2d5e38b678bd706cf162d2382f87b0fd31085b2cc9d1c3c124e5828cfdb66d8f7936b697e66d39b098ab97b660d2200ef6fa986bdf10875b282d69afcea141cdc23e661c5b28691c99e3d69d7e76614f16d0bc1b27b30b1bda575ef5502167614f5f486bde55cffcef3f0c840ebd101ae42c25d8d0be82e6f46ce0d8a23d2fe5716cc124e5e2d86249835b286db17dccd3c3b185922d941aa77bc338b6506a3066fb4ab9007594b1f7b7afb8d38fa18e6e729f6cd95b30cb1b6e0f8257def08f53f63c1eb650d845197bb7af8c7dea867248c6be4bbde24e912b63df49de42473a476bb5d18ec6f17ea891040165cc2763399445181819eba33692b13026f16985ad94b19747316c1f2c39f9238bc9264c7a89128994b12419fb88c36d8a302ac9b48dcbbaca71f32d0ebfec2738b4df9f70a8ddd50d1ab97b6bbf665d4bdea100a7d3bdd1792f73e7f950f9fe765867d9e4186b54d97e7b37502dde028b03f59cf7f565fba4d80db57c3a5d5bbbab5f83e7acbccac7a46c3f7a3d2bbf83c759f6a387034501f54f5fed0da94fee97d427d6f4f497bfdc73959dbd611f75ae7f3a5d99ede5b287e590d6a0f7d1cbd1b97e957dc3e92d23cbc946c5ab1c349f3ccd275807d473a8cfbea2b06fa6b8a383f79db1efa5c6be62614ccaa7f7274e7ff2d2b34166efa4b67ba1d619fb03344e3fd6360707348ef7fd45d78758ead9a81b0d6a107b0c07b67effe679b875d8e8032346997bd44f2f01dca3bedea8b97e7b3766e46a3fb3cfd35a6ea6b8531ffb5e6a1cefb16f2695c6136e4f663bc8307256df7b263ba3bb8dac9703eb7d9558ecf66edcd34f2c6c336910fb93634d8598620df65aac9127dc4b0d624219fb99850db9a1a58c7d6f4832f6a9310d8a35d86337b0d65919f6f5ce06b36f0f87f472a0afb2f23cdd3794439e8de8757fc7b4c7ee147e20c77ab9ef9b7ddd3c1bf5b95b3ff6a6f9098ddce19a6dbf72636ac8b60e0c6a7f9de0cd8dcb6f6c623c749c255fc759f1eb74aacaa14ece84ec8d9a71d4acdd90b146bedcf1f3c30fce8a12c78d35da86e38636f1d43c1c607892230e0f47e7692d8fed177065aea8709b5fbbeebaaeeb64d44e9a8743c35c945cfba458a67127fa188e3d64c754625bd43a81ace7d0d6e0b84debc97ec340b69eaebb2088544c1183249720641446afd6aa895677513f2471b5aa4b1224b1820b042d05d00a965add67170437455a1deeae2b19416a55ec0853ab665d77a3118010d4aa9aeb8b1af8b4ead67577d5f31dd62210a070a2a815ceee7eef12444b6a018ba0a4af76dd056f68e084161cb5429ba58eb3fcb3cbf302bb22424bbaaa8044502b8a156491d4aaa7aebb71085330b52aaac9154aad6a870cb5ea49121440ad9a7219b52a4a97dd5517adeec6a31370f16a55951349ad9ad26577f544abbb72094dbc78b5aa4ad75d188aa082ab5557b83082d48a1d43d8751704b1085eb85a95850945addad27537561185a0565d75dd8d47d84252abbad020091647adfad275573ae187a25685e9b2bb2242abbb120a11b0c0a7556358e1d5aadf753712c188a556bd5d772312205cad8a8d865a5546d75d21adec0a69d598aebb510853686ad51849b14cdbb8da7927943d49a1c89695cb0b8c9432c65f2c6346cccd697eadd1c3b07ab7a777f37aea6f18480ebf793ddd6b18c80e67f977bf790b88ad1a9ce54f95601b29b630eca99703d39cd5f2e4147a204f3c5b73420e61511c310439748321fbada03ccba7b470a7ea79af827aee4fb786cc867af24edec93b7927eff4e14df656f6391cae70c830f2897b0d87a7b086ac7d5843e63ee61ab2f6a1d56ecd71f29ae5fe844386516fa8a369d67edf3f088637b9ae2cbe21c3c8287c7aed4faf7df5fee48616e55128cf7915e5a150c2d3a3f089903d6105a0bc8775407914d641e5bd1f3a27fc4327a3e0d8e0ca57958fdf92a28267832bf8e77b3864c1b3c1142f0135a5fa942a5555a9548a4b55552a55b954fd52f8fbbe6a6b7df9b5a2debba14ef6bedeb0865c59563efaa77c7494938fee527fc5f2e5fa2b9feba780b93eca473ff1be05dbfc65ef5570f8a5e0f0b3f72a1c3e0a0ec1ec7d0a87e0090e6fb2f7168737debfdce82cef870e8e5a2feabd3e0a873ab9d61b320c9b03db7da8f34347a7861f3a590372d5d60435c6f4c4a190be9df684d5227df9180ea5d6bd9db2c780903c5f871f3f7ebea4524c108a38926310508004861c838002a1fc4576898443882bd3f9f18bec3bc31209cc1f4a24093a4f7728c428872d84ba68716795238c8ce150fb59af4c8a35fe340bed651839d4b08d35aebd8675a08f7dcc616603d501c31a26e23e66cfe1705323fdcab3c1ee6d5500f6d955d90671102e7ff26eccdcc27239243749e9851713eaf531c9fe2b2e4bb8e842e512cd909921a394c368450a50f6675d1d493a949ce52fe3ea7039cb1fbc3a56983c4787152b4c3d666e0f98dba388cbede1ea31c4ed11d4c388db43c88723d9a7717a4c114120cfe9d10408283bf80d657f99db73e42cff19b7c7c859fe31b707c959fe2fb72709c9737a92245192bd0529fb7bde8d2f7fb807900c6ca4a2a88710e21539c85444197818f540d238dffbf748ea91a4717a20c59dd5fbf3f0e1f1d3393c969e872beeb87cca87ade43fec25cda49b58e14a6264852bfbf358f21c1f4934cb5f490a0eb525a1651203875f935804a01c462d90c01cc62b96b27f8b514a7ec13e849ab0e18c17ea0c2f47e7d5cffbad5ab8a4ec1fce50ca4e7d72885aa2a208d5b224fbb3bcb2ff875292fd7918a18e90fd3d09d9e31546d9bfd250b95c12970400ddbc1c1218ba95cb51116bfc63b82522199f7289f0ab64602e09e85b18732f0274b2a96955800ee5caa5251a3aecca4caf8cd59bb80752910d5b9490b27f8b92e770489264ffb0852786cac1c4b06931ac5a58be950c4349c54027f5138b6a195d4ef279fa4466d48d9ecc5cccf7c61652f6e790649e926b5032e184c0f4048e50d938f4e3d327b476d168f13c9a814f4a71bf88c858d320c8fe7276d31577ee3c8542728c3534c885c548b14cc3289d199661dafc38e9f47aa47b3df1a86e5cedbc8ed55daec6f79e345872f998c632c7322c7b1ecfaea6dd2ccb1c9b596b92ab9d534abd936ca78d853e43ac765a6c6dd80e9f7713eb40314cd3b4cf30cd59a70ea572d750ee11155111156da7c59f716e5ae6e96027b0b2e613444fc5184f40153bc9c83a5113d41a1ba7f3bea1ec97ab76f7ee183bba741174776318a518866118866158f4667b0caaec2ca359dfb4a49492027d4bcaf7ada994f2865bd6613e7577779f5adfb4a2f6f16613086cc538813ec6f729e3c7f874051533016602db8f8a3f87c4d49112923ea673626bc7f631f7b44f8b7beb39d9f76b5907faf3e50369adedb5fb03844e6bc3d903692d0e6b98f6db05d26969cf690fa4d3da66d64d0de799e2360fab19563d7fadcbb0d76eb6c3e72920cb184065faf1ee9065c73a509c61df81ec6d8e137b996133082b5fcec6b0c0c471f45ae7382e7b553fa7c43d87c31fdcd77abbc92979273918b2f63c9d51ed05a11784e28ec6fdf6dcbb77e3267352e6ec0521fab2ce2b73ad9c05a252d6212a651832b77d987244bec91c8ea154840d39a5dccfc91983bb8e351c5f60c2b868f16139c29430254db823ec852dc1aa800297c7aae09267f6a1a7c44b9e182589088b2d29490c8a9c5d4c0953c294588e424f0917ec0994244f89972c314a121128492d3e13870265f9ae64fde50f2a699037a14132084ff8a1415c520e63e69c590d9dee9e8102451ced67cf9f2e1cfea04135b09f1a3ad887710a8a349f46e3d00092e77b0e6c489168ec934b20c35b53d084a2864e4f1a94b1056850eeef6e2e298b393f3ec8305a44e803a1b54e7e80d05afdb51a6cb5ccf90142a7e53d90d63a7d4873fc180b00a4b5bc0fbd7cf2214a8e337a4e7b243ac9971c7866530d9ed3af253fa2a133430d9e1a245093f4c9732ac5575caa2b18eb3973ce79038207a8a1c17964c4678fec898a27e8b34731eec9c35cfbe2df2f37b64e3e05d39267119b45eb0f73fb85fba739d6cc977747ab8faae039d276d0be621c31672b0eef70efc780904c9fa727d28e9f9f96fffe87e557bef2c49d539e27dfd7fe767744613dbf7c0edebfe095f62f1f5b399c7ea5e1158f937f791c4efaed07f13f79c1417a012bd86ac7c989cde80ed4ab7c5eb9b155dde5a27e7555bee5a63ccb5551944f9dbcfd6aef494a49b5a4e2b383c759730eb132c72c1f45c8d6a82e6a8c991fe76bfed9e3d0418804c9de2313fd0b70c073b6a7f589b8efa141ca41a0ebbe3e0edb733808f7db571c844890fa458d7edd6e772fe03910e820d020a5f68b5ac51c8eced29c45e377f6fe3f68df3bfc85b4f00ac31826a4351b28c73982d50eef2c9b0fc47bb46f0ca45ffb5f617785e11ddb671f5b1a072ec0e4d3ad8d60b210e98f59aab2942859ae5ade554f26b91b8ba0dc2f8d72cbbea92c57d80a7b55a6f262df97c678595225edb507ffe88fb8f7ee89ead323cfe97095f889540ca4fbed81d4e75e48cbf3741eec2ee82cf7dec7c6ecb997b8677b9e3e42b271f5799a3bb21d790e75551c9bb5f9dfe83c88b3ff00be00f80b1f6bfc5f7bf093ba19c4a87dcf161f88f61bd67a38ae870cfbc27e9ae78037bd05abfdf6a1d63f29cf3d8016ac3cc230d8e0a6c5240742752a65c8b6e8fe3870bfe120db73efdb731fc4eb53eda9f744dd7bb8bb408354bbb56a9af641bcaf1f5b349443481fcfb9406c691768903e68bf1f0feff89c456d08ace32044b20fe2dfbf49fffe1ec72becb7f76fbc9a19eea97885e1158f0d6b3ddbf76f383a875713efe086d8f8f673167d1be49d41f1b94b95caa5311c52d514ac7fa8fa2ef65bb6611f65c6f0c43362de75fec50c27404796982109f6ea1aec3a55e36499866df67356bfbb7ba777ff2fee9c7c76559d6db03fcfe171cdf2784ef4694ff017592c0e2990af2a825f054ed7aa7e78b7b317e8aee6d339c06d3f8164ec2596d359553631c77cceb7c00c79b6fc97959814be9ba83343cc2ae09e23996896fcef9392892cb32799286a507e76e510c984166c189b300e344e0802699c30876ee9e39a16e5c444dbff68507e053c2707f93cf26b907fa333c378ed68969c3a4726be010cf96144e278064c045250be84a6fc1ade3566086b64394383f2751a9435b2cf203dc62c7981129880d081120984b8941459e108114924e1095dc43e2ad33ebeaa7136ae7ef44efe312682fea80b46d0ff745d22e8efdd2f82fedd5545d0bfbaff76b53823e88ec564ec5d3e95ed289d351a3cb1f23ff951be66db8b80d2b6ad89f56c6850906d05dba06a73d518b3c25e48cb3fbeb6e3e707f9dcff207110222b1efdf27b3ee29efa2729b0b1b57df6f4e4fd69fb1ef9db966120d9fb9f4e270b0167d1f7bebbf539adbf677efbcfc7704ff7dd4bff1ef9ce84e10b388b6adacbefd1300d63f80637062231101ece3e3de2065458410c827c7c5ea9566cc556aa155b325661064d72c0440b6630c5135ab1259fc7b9a97d6bef4f370c441e398b3e919e7e8981348ece9a4e5fc3f4d59d55415b622d03d652dafc8ec466635a385fbabbffe8661026963d7dec3da49fdd3929d6e6cf39a5bbcf99f9310dfa94f970fe370812f17282e0053fa641071f0c67f0a735e833ae6dd05d273cc5e8fce92465e877eb33647f50271f45e18be9db123fba98850cb270e247970565aab3fe8853cab0c59dadcb1836058b616fd3ef80d60077b168d38de50cef00828dc69aa6997ee355f631af6ec89ce1196b1a3ba041d9de8d0954a0b3216621832c64e0df6f812e43803251630ca6c2e18f193c6a4336c3d0b4c7215fc3336840489eefb76b50d5607f61bb8da82e99b018b358a7f6340c1b4a9faed1deeed9cf4b431ab9bf6f1627d680dcc6230dab1db1a63fc789f4c00120aefdd0d122c6ae488e318295cfe3fdfed2fb880f86604566c9a19dd9aa4015860872edee0a19a50b4cc82bf9361927f75d492c3f02810b5cc811085d18922b6dc2e2a7a808491950c93dd82c6f6a48ae5a376f3794ebd6cd9be2820972e5ba0602185ac8f4e75dd15765ec6bede6e59872ede6c5bec6d309d7f072df080430bac8b552a566f9d32ed8f04649e25053dde4d038fef184b2272914ef0655977908a835f8d7d7b0c4dbfbd397e770de9f3045da628bc3617bef71e0fec4bdc77d908ee3b88e0b368676c583fbed7bea7759c9bf765b6f4a1a7425cfa14848d9bd4342baabe6eeaa3f7bee7964cf7d4ff61cf6efd17ec3190c2701c8d17b90fdc31bee64ff90e5e6de609d9bd9d604fef1862aca0e41103bfb18271636beccf331ac49196282b297039594a37f9c1e0ecc862d471c6e20c7e8b34fd84f8f7a3864ec1386b168c33a16b21d3ffe1d10223d15858ace423d877b4edf6120f1f4f5bd27d2a37a7f29bfbf477e774fca771848f729f8ad6a5e94772b064264c5633eea7b26f740eacfe730049c95bd7df912570c84e7513da8f7ec51386ef51ddf382b7b20da893d79949b56ea63cb865a46b94088ec486120b2857afb2737c805fea40814963ececab23f4981c59e7e10204416105bf47110fab1154a9fcedbf183fd0fb2458f2e91de97a28225213181c2122e94ae4042855d9d4e4e3c1b44f74f3abf37bf5ca2184f2fd17d974bb48af1ffa7ebf29f4aca4b8cfb374a0c315134c46509a1a5248e804250ee7fc1e14c8aca89bb364a48474bb8507284242a8e4c11c17e1a97ab82f9de54aa0392c228870f721ce520420e24254db3f6939f03488a88a30309a3c6d121e48388a36389081e358e8ea106891073743c11599ea3238752e3e848ca918488a3030bfb3d1026812c617202963ce7260857132b38fcec107420a14348c7123a86743ca1030b1dd89589561cc97d440752ca7d51b92e2bdf1ff17df9bb2a2360b92923b0e16c59b9dcd4cbdc1f9907426b810fc44d2be66164906484209334e3c38ccf8c103340332b98099a199a59c2ce14d9789142a34453832880fe984b738308031431867e952457f9141eb42503438a8a8c8c8c95499271194f069399999999999999999939ddcc90515d5e5e4ef27ddd2eee1246020be125f0107e021761232c056ae223ebb78bfbba4b33770985437b97301258082f8187f013b8084b818db0bfc0a8569ea761ba776972d9c28bcf4b142fae17295e8c5e82f072f492f4824504fb35ed4549d3346bbfef3f27d48466a0ec7b1f5d5c5e8a5e7cb2179f179fd58bcf4b142fae17295e8c5e82f072f482c54bd28b52ee47c9ed65b40228829a00ca374afccd117e1384f5626693948fe1edf001853f8687636695189d5f5486b94452de5e1e545a5ef5b329470eb74032f4060746461a6c2950ffbd94c0f8a289174b5c2839c2b7a8562997a64883271509031b5a2c061891fdceef69c617d45f119fd027840fe9c3e24bfa96f0297d4b9fa67d42421f934f0868b8d196a28022da14316ad0c891b3901a44d26092520c95151d4a3a9474ce8c87f16c60457c419fd0c7834fe8737d42dfd027840fe9c3e24bfa96f0297d52f896fe63ca3f58d9981878995ea2196f2f918c930c14174a17282f1429a02ca164018549e5a3f22182fd9a5501dd00194191fb4330879aa6d130e120da2cbd9ca5e42c9a24344934483447688e688c5c1aa35823456e1a28224d9108f6af68ee308d0b0616c535337178d344ee47e1f02d0e6f94c8edba39c29582c31b225c285da0bc50a480b28492051426958fca0750059467189de477fd76374d449bd34b192694b0f1428888109cb8f0ef95b91deefc56a020a88fcf3dc9d0b834252cf6027bfa98af91a7633abf14c39c904e423825a17c40f9a0844001a156800a420da1965049f93c4715c15c9a228dfab97a3b82893a09e184744af25392774a3a25a59c92544e4948281f98a07c1ac7060a282196a0801ac7860bd40a9450419e6373056a0924a8a1c6b1a1c2a28a72ff4a72f24fd8cff06c10c9fcb497e87e776f5cb1c627d634ccdc42917c03450c4111d111440461d3c4a464f345132f96f2a4a1f941b4313a3a8214840ddbbc62cd9095b9a1cd72c68c2ec6f6dabad896382438216e096e887b22b2b822e78c9aa33e28eee8e46fb7d7d6c5b6c421c109714b704f70469c1438d4301cda6f5b42e1702687db12107774d344b4298a35435c0d166927f250ac618a354c28e14538a382c30f628597929098406109174a5720a1228296e606b1a606d1c65584bb30d9afe7182f73695c97c648834748ce6a981bbd1b365905d31831614f46f604933919d7e27b9291e9fcf6cc4ce757c618776eaa0b96e9259279efe2fb394be2c791a648b3304ce35ac28613ec663c1c5b5e61edc2e496abba2cdd5d618936f24f397cc8e1d338271194df5f69747e6b72ade9fcd2909141cd179aec5d196bfcbe908f0471e455c3166a680283885628bd727f0d4d356c8175d3f965651a88a061e9003e1cc0678606226858cafd07f039800f200c3b47ec30d120040d402ea2dc0fe690c6e517cc323b47ec30e57e1a8068106226001dbd4432de5ea2193f2fd1eaf2b09a1183123134bd6e8062cd4e117127a86f8288ac7ed74cbe694209a123ec0d1140373e4d4b51fce49b10480146b6f92232651b28441b2ee2923ce3d218d10c21daf4cbb8342efc7269906890c49afe994b93e42c1a22e4fe19daea431a2d94108aa129f7ef04354e02967aa7888893002944b09f68e6572ed10cc6099042c4a18922828d43e3b2ee7d2e2f35636951ad70dad65d9a656e74d6cc9bc6ada85a584e597d7171f160e4f5bc69dc8aaa85e5743b6f1ab7a272fbb964f5e59b3173b12702d25af8595aeeca4724831fc316cb365cbc8472f8d1b89cd5ff97c688e6c859fd32de0d989c826d5ed890a5a9d1612fb03739fe0c0f074cde94b0a74ff990c6c5692ff3ad5ede705695ab43a9719210713a6c638de46950fecae5c21895558d183abf38e3747effe925c2d86f8c4c6566441bedc2e4180fc7964f78c2e43a80bad3f96dc9d45e22999f5873160cb6cef2cb92e9ac335402747e55b916a0f38b92ed2592f1f412fdc43c105a6bc6cf190f339b1a474752cf2d441c1d58441fcfc9f172560e214457e3e4406a508a88a3c389081a358e8ea220c49c045021262007508358449c1c4244b05fd3acfd3eea437df2cabd118a35fddfbd2972e3ba2972567fcbbd61e266e82689066f4e9707ecbbaf322ecd0d22ab1f5f1a1e4456ff8c1f20bef59d585a542a4fc3039a1dc49dd4f7d3e880c648dca1df4f23054d0e687040634473031a1bc49deffb696a405384268ab8a3fa7e1a1ad040117754be9fc6157756fe08fe900608b99fe6a80b107369cbe5c65833736384616513cec872fa496ad2942c1f25b59265ccf5d68a4a8aaa85e53bc5dc6eada8a4a862ae6ca15c22a09b96cca764fee4d28989fcf4f66ac0e6d3a3ae06be7cc24432f8277cc932c61842962cbde7e91937b6622ed6927183dd1e6c4622f7ebc0c2889cd438374444f0e539365c44563f14a858f2c2da7c91fba97879087c72038d20f7d76ba3746d926cb46b9343084a7220358ecd1122a8c389243a8a1ac7e68a08520129014b9e6333456409616324f7f7e7006a1c1b1c447002e5fe980cdbbc862c8d2b77a5a1f3bbf1747eb59a3bbf99d6ada81040005e003a182ab7d5d0d0328c86bec09ade6a19bf959b13978bc0e4d2b20a243057647294e3ceca8df9978fdf4a8df37d8cf171f5f13fb67c7c8fef3f8d03f3f15dc873647c043fbe1bf991e7e08fef4839be17c51c1a829ce56f2385087a7c2722e2d82c35c824e63840495bca1edf813c67e6593e6e3131a746530c696497cc83ecaeeef5eb9cd3b3d17da51d7d714ab1c66d785f312c2909ea156b3c1b27eed5a0ffea35cfc69cdc51139e5e21f16cd8afdb76f295ebe8156c8862cafe5c4d7ded3a94e790f060036b62e3c4a4c4060f386646a1beda2eda883ac593f6bacac913961387146bfc63ae37562959787ab562b932571a82dc460a364b0e50f29c1e238d86a0ac2951aad1e4393c966a34fdbcf0327fefcf8cbf5f69135b79f00a23f7d02f73f46cf872630ee9854b44e5652e10df22a2fa199748cadf0bc4b76e0ad0cae743043f9f063f2067f90fb52079adb5ebec8d7e240357db55996b455de9ddd8496b595a5abe8f9e8d96e76919e3ce4ba6f2841f4f788251912be553625d220b882d193e9690c0e42329d6201d114a628889222424f171858f214830a205530f2567bd9630c99ef26ea86417ece368880da31225ebd331f8e3eb52a294659e8dd5671e8ea9ad525432d022c9a76388b4f196e962c4f23160565e8c5470d84a5438ec254cbe6f30ae785db1d403c80148b1e627872830e64531c51aff5553f66f6992fd750cf1c20ad9ffc361b462069f430e496606b73a329463a8d210f4b1b40cd11094b550b94433c01eaf1e4bce72a4cf8721d98df82299195747111dae1ea31e233d478dd3f23c96623cccca8bcb54b22416c127057bdc0368078806a058d34a94f492252f386c26dd64629477e3cbab1a4d1f0bd00e10ead5944a7936e6a374598ea206730c49a1a24865f537b89c553494841053131bc0b8c1e7b2586e68e2869f66f9bb7cf821e5287296cb59398c7218a1e2089e452dd386261bc0e81c1f4a1a87cda449131cfacf103ec427031bda2ccd2441363356f8793a25c50a2b9eae307829e908a987518f2397e68a353d8a7a30d1630887261cc0f0f92902c5104908696144524ccf51cf9124485a700fa0149795ef5bde9fc712be3d46643c1b2b2fe3e198b9e53d07d65bf5406a1c96971830998a2ae5331cc62b98545429b108413262601f422fbcb2ffb579c51ab7dfa77836583ec5c331f3eaab4a6785eb59acff7c88383ca488200f231daebe61e806a11b8cb821c886251b98d8c064439306fd79488184896cd438372811417f244364ff959f1c45395c0de628428591ecde8d94dc826d6872005284814b5a752f1e8e94fc4526006939e4909810a393b6e5637836bed5aae576d98d396a1123e3fa38f2c1727d18c51ad790221f1f3f3e8086086a30e67e3ea87ce0c08711cdf24fc222f5409224fbbd3d469ae53d4640d81c453986e470f910f29144fb408a3b2cbf82c356c244855fde06309ae5af445b6299588114ad487ac161b44229c905dbd0f4493392fe885392fd57afa54fcafe7ff448f9e44ac7810de315313d46a1f571e4c3880f231f413e8cf091848f211d2eef31f21c1f8d8422160943342d7a20f548eaa1d4a0bf0e97e7f450b224fb0afb106ac2862ba3378a35fe3c967830e91cef815464c3559151f65f15b9b27fac33522e918c8fb93d909ce558460f2d62e417dc23c9091bae80645c4e6905e439282667f9030d65f711ca8e6a5a0165ff2a2366460f24cd5272964a92b33621a1a1ed4614206c189f004401a0f8840074274f011da82ba824cd745649cd32a64604000000e314002028180e098582c168344d84d97d14800d829e506a501f09b42489711452c6106400000000c888c088cc3001c78df9401ffa78fac760c56d42327a326cfb3b366ea55072b15c38c8291105b5aab19496cc0f8187582edbdcb332dede99a3ea81e96bed5219b9a0b8cc6abbd72e97b2edb3ccf18da49db564be31d222d9175793b82498369d6dd4a2c06f6088142a32992895ead3d6229632331141ddb9230efbc98cf8205fe268dcbd8b09de249f6df99682257c9ae7d79eeaee7389c56d4ca3110084334f5672c31b2dde9bb2e62d46111850069c5382112fc7839e59504356a9b25487db57673f682cef07c3d71d85fb4980f87106ced9ac3815a3209319d796a111183805cd5b10f4094563a18dfd115d1026859cbd1874b8e7c80862bb4368e5b047bb8539d5063045aea5e2de9f9cfa8cd7a8ac0f01fd44204e45747343c6d4643bbb9b584aa09896abda2fdf29d7da2e5bb9ba03e08295fb63512607ecfe8c772592af033147252e509b1c4a1ea19d0a340f86029e1cce98b44a45e61e658452704d8ad8bd5549187baecce0c785411311c2cfe3eb124b89857cdc0111fe06c31cbd08daefacbec33600a36ff1604425469ff4612e3ee62e265f985a006ea3ed35825450f81b27e584c43d090c879753c0f56228cac8e30e4607d6e2374a2002e7f2b7fd3f6016f9ae1f135cebd2981912f4bb8e848855fb0abe1860d8cd688aa23cd6864771fc2a58991d0d4865f5a25cf80b4d9fcdd9fed16500c41edbfaa39f95a2d69cee419e41d6d1d3dcf4bfe99d6b65643a22b6bead68982cbd754dd3a91ec35d1e9806bf32619b577611cc371fe4f87632acf179fcf40687916c28d4977d485dd1bce99d8c4705c1209e7dd3b17d5614c457fe541a3d72ec044b100b8db235eadec8c3de1e2757e968699e6ad6c3110227a8235a09160d89e6e4273c2b91fc182410aa3c080effec588fc4d6bb21a5b062885a66e2fb20b3c929f34eee957610e63c537bb843246db670336cbda360f289dedcde6121e1bd276a509727321e7b3223582a8511476a3633197c98367bc0471cca54960026206894c9951349f3814c1742a62e2218a3bf87550d2491fdbbc8eb04f8c0d50788007fb10e591eabcbf252024fc9c040717241624d6c132f6ba4bb28024e5063b2181b38550adfe3a8b4b4cf12465e79293e7588120b42e97715d69b8e622774afee269ea1cc3772deacbed5d593bbaea50e30b6e5ce71d7be466735d152ed9a9dbdad233354f4d0601299bfe8edb5dc0fbb5fc4029165283dabddb9968c763b8d8a4ff426de574329b370e8935786b6305a65eecf719cac641f34f8b894dac7199ecd72589048a0029ea55bfdf67314b3a85511251cdfa513573cd8a075d89122db0386d160b37cbbbe09b866ad2ad9abd530109cadbc1c923d282eab69420225a26c71a15cc796d926823947f276e3fc1aa1cf0a4123824b726a59e5aa04726c36b7a5ff2a35e783a60f80181d08f1414651a961ac39c50ecef4ffbf9da13b26ea752662316c06dd97a5453d091eea21061f0cbcf6d2b11d8bf8bc13cf6d909530d8ba2eb4db96bcd0b5873ac9f482763b690fbf6579d31963abfd62879d04268f41f1305cb2f501bf91c04312fd0c5870088e9af41bcca06bd7cf77974c1961214c007080619caf02d6ad986e311cdab3057757db8b2a886b07c294334a888e41ab8950d7f01416962420c2e659d2c497c74f8b8cb3c5ed4bccca16f540885f2992355fdd20ef6287d12173033a4682f64a2575e4b2a38dcec8c2bcacaa19a9bc11be35bfeeb93a376b15904f6207b14a75cc90c32609e8eec257a9b17f9867fd3e32c474032118225c4b9c13787965d6ae6e0933e52d5caa6ea1dd60bdc2038233a7869425917c8cc0e0a6293ba146b3f3f6739ec942a18acf522d36a333d64e6d612a2933bd42e2a86fdd04668e2700ba22318bbfc3f84d2a5ccd5c0e1186b41681c3991405bfc9767b5342e04e9a3f4620180166af04d4766f414019fe1937b56b4ef6076655887c8e6a0c443344be4fa7ab0b87e803465eb4c96008e8a1b95d9b8898fae29404c917b13775b7830fe62705d813d4c465cc620e6658a553cfde13b2cd76176e806b57ca650298cc413c9ae096f045041e2f4bb22f0459dbc7adf14ccd94536ad1d25d3011c88419c55a500ca1211bbab6602fff1195b7a119d9639726d0442f58019f6070621ac85b1d9acb7d3a9e41413de82afff67fa7ae6adb168f30d8d50a0e77de45b55aa6c3c696dab82db53487d4d4bf29305ee959318d233a431aaf878f75edcfcb2fde70e04128537d166fde3b5d29c0900576073ab19a2a9ce28a705b3f8b912a8a2c18b63035924ec3507d22978ca1c97948ba1ef9a0df245db99f401f255310dc115c288e2f16fabb33119e7fd4e81546d825e3eccd0e247fd60dd30328800e44a5696a18ff5cf7b6f8f363a2292f9a6e95e2bf891eef5152e39a0f3a687faba32f4c51a6a878dcb22e22a2525fbc415fae4566484ae5ee560eb80a4dcab5964f06ed124a56d593c01891432396e4a813b3109af1cfcdb065266c5f256ca75ba8bdd42bb99866e34715c26c19b31fb7b2067019601a07b839413d0527eae5b35c1a8f597880f20ea92c94965062e9a151be158c4eca73585aaa5ffcce0f902eb2640788648b2a4b10027d1167f12243651ea1ae07ff842cd8771de4b5c260a8ef5c48f556c805d57922b54314c45340b4a8fef670985570692ac03ccad636c75f258f14dd6f59882c7c4b8408134781c176d8d40b3acb8116aa06fe8ac1e81ccc157342a832483ac9b185eb49d99ae8bfc6b5464f2831232e86ea14198fd7c029813a0ec8660270fd24544712293bdd3a4cf834581fb42268a3d011e53289343fada5b9a0f1cf096fe5fcad244ea4e0b697264c7256a5f6adec7dc6786887b52934b52263dfaa9e6036ca12ad84211c3c9ada6c6a908dfd80d894b13e2e811576890625995070d2940032950a81743392bffcf5aa8a7b0feabf91fbbc715dd028706977e6ef3477ff66dac2d20e6ee194db483a45f6fa697d0c761cdbfcf92f262bc261533ad041ca9907a1cf4c8b287a390ac3833610ab2bfa679597a3e00b15297657443f04cccbe2e7a6f1a259c8c980b5e15a7d8a82db174a968656ba852cbcf9f40e59d29f1ad98a22bb7e672901361f247140934efa03201cb8f938228326c4169f2cc827812c56581729bd3d240e853499d7db25c481f387c61627be577c9f47c25c24e74d51a84e4eaff6923a11e23248ae953007321fca91851e09111ed775f6b45b95fc20d295152fb85ad32016fb0b12c83c02269f028d117e6c23abb989b5d5f837c50caa781bee408ae11d6d156ba4c0354f00d79198066d8e5667ea717f58146d30fa2b188a0e9e3d3abf89b58611b9e424096f394b6c7318a926195a1cbe04e8abe860aff88645f93f941bde85337f531a4fd3ab386e3eb2e6a03ca17d346237033e5f2e7029f6123273274febec1993f621652ca73e279d0295da3720d0617434ccec5575c1351460e289ac3cc540480877c6bda7a7e56b2d88279c0d90fb896c8dffbaecd4bcaafed9fddb3d5add53dde7f77767d5fa9f4856c3f73c8824588107c1eb574af5e0af295ef96401346028fb767c5d2ff01d54d311d95e32bc8a2b1e3da7db3dc0913156d30a359476d363b29d8afe70b931c140aeb8450664b189cd1d10c2391da0c906377460b269cbfd15bf2f28113b1cefe9190b2148d1c0f1a4ad1484c37a0b60255c7cb1b896cc0906a27130a6ae7510f26af0cf6f781f8ef7f452a1068fff0248c18175c674d2743f2aab6593821f743dfa604c68314a091e8b052493f75266ce750d13a044b605458828c1b41cebbf5b0e95e53de03e0c89d292c0c827f67757ca1f3f6db34f7c356af0678a8018fc8991c8f2da2510bd3202b809a7f44d50188c3a8836b0589f1bba937a096c8045aa9d7da547f8b104808d35a672370c5589ebfd656e8e7923ab4e2403abcd233154cce0bad4e646bbb4557bb02e124b4e2999d075342af1f32bb671e1a8fb90dc60059a6ad1c0db18d89a7580038a62bf88621ec128ddfc1005caa722e7b00bfefa4d4e09dce131e2fdfcbd3fca3287f4f9ef7ef0aa93feb9eb44baa188d165d789a09800073b49bdd8a40a285a85af4cb8f21077dafcfaa211672f80b76a8ce2d4e4d4fcaa51870f80bf5d35948693d27e97a279ea20aee2a4debfcf58cc1e5595b8a6b1f50b34f223d8b4a4cdf88bb5a9aa51b5be1a90c618b17d552f1aebdf29493d163adcc26a35c469e22f25a2b7d63bf472f89497e3d8e4ada236674a35cc5e773add9979bb7be1a219eb7b988a2e1c94edf39572850df18268a6a311d3c2ce381999103b3fe3b0b4ab004e767ba0236d8c587b2f16be3b426b940f3352fbde4c9f33dd3ad38c218eab75ca1e59c8ea30090cf73b4337396c0267a0fcb4dd24b5a6929930a89b8470eaba4bbba1a70407dd32a187efcc5a4e20654b6dbc322460510b39be260c4b8e7112f52fd8de27acb8a64dc1efa6ad62bcfbeba2f767e42c2b998cd66353e95320fe8aa37a40223f5dd2d760dfd06034d22dffa64ac550e4464f5a2c750463195cdd44afd311ee03c4f60eff94bbaf2e795fe1b1f251df67e5667955730bdb9716849001411e4b50eac086e84e9ed24f4fbd631ee5fb917b215feee7253b1150eec145a9acfa5d1b664b15c9bc595480d8233066fc2ada14ab38e72c422c6bb6dfe4fa73286b63f769b5aedd8617e3fe0c5464402592e07bb8a1dc8f9baf6985fcb673dff57dc0954da59b5265704397460ef09a98a838b23df415279f47f315030f8d90d2988ac5833bae66c05b06a34029402ac29b8785e06b662b1782c341e11d136b57081b5248c2229c22fc7a8bad1d24aace43a18086d7dd93826fa060977deb9489086287f2807fcd3c035b66d224f41c31c2d3af48d4e2fad497eaa68e698fb33a007f6062ed40a23e3b21bcff5fad035b5260b1b6adbe42e7ed2e6aec098b5ec18281a2ce21636d35014c1c25dc9c5709696d922e9f418c09c7159ff333e81020774ae2e9d5eaf5f5430bd30303c6ba61fc2b897468109f079edd02553b96896e040c681a7a86217e10318173d1b6b1fd24bc5e9435a8baf2c22c310aeab55bf255d3c200883174c267ec06c06f43ea443fca81ae3c43e8cb024b52500400ae08a915cf8c45c84d572239c8abad80f16ede7a267f29b651c163f2bd5e6168a79d56bb219e580142231518f8a432ba7f9e83dc7df7857c118e67edf6494a475299d68b04bd33b7141231e9f2565cf289296cf9ac3c4605a374ca5229cb0f5983967db6fc0dd06c4bcb983960c64cb1757cd3013e82f9c4c480982bec2a2835e7460486ea6fa0018c3dc5ca11099f1aaa7830de111650c85317e15cd7c645b1185ab725aae842beee48e792f5df54b2893cd61048cacfb235ca4ec3106492c38cc4442d24a6c80d4c43e8c461074023877688f72894f84a59b7107ea154a4282de1a2a9f37bf017783c7cec7d59c498e5345a6090b8d390099f210100e66f783bdab0674b5e3e3addc271ae0e06a9424e7207df2dbf6ead20da50be05eed2e7a1dde225c635a461a1265de2e57ab96991911e0845348f3e9ae77b6a5dfa18e7eb57bd3080ee92caff4af87cf972699536f2a8610263512f4c70aa19db479508f2777d280c3a4963a9010864e6542b96d851b7106e6db530aaf33b12a10e471f2927b81ac62b88f1ae88fe10437af3110b8825c2b7491c8d87fe0fe419d0322f26d32c38191190eafd3e44bc11c0ca1937854167324ab114f5aa303d66f1f23fdc4c6305b5e7cd17a9a27f6851df71774429834be1f6ce0cd8523543a9054c4845a1dc07cceb32964c48136d089c51232cd73c38dcb2de304d25270346e00cab624b9701e7c32b305f96eac3aa7705dda60d8839a7420b564383a410c028341ec82b8403a43dd67c3d1ebba63d52234a3087a969034d1876a323585f8a69e292bcf403ed4e4a3645e3b8ecbe2e68fbf7f99c7bed56620a51b0d184666b27bf59ff5f84e84dd8a7e8cda96285b38d4e9340560bafcd082ecb53cdfd9c297579dd35e19957a0b6be302eea24f4bb9afba9ae4ac36ad42428921331f05e1e6718afaa3d13843b4d59cc0ea5168eb00dd2deda168b135e29b518226d360773375c9c0ff6dfa8eda8f990972760092e8e02d05d3b093036c2666b0a4b49741917c1eb29580420eeff998242cad23b3995904c81c2c4c614012e23589e73dc1564aac4abb093f5d313d865e3a4f8934728e4a919599320f7f9faa6a4a4819985b62f8a82076d37d38966e3a67174269ced64d0158479ba672402923b0278037c9737bd2e6dee3e4da01fc4fa8ee61a2c1ecdba9b15234c6f45610049adae4f126277977f26045a935fcc6f8727b4507cbe2b597b88b2bac581cd53752b521faa4a8c6f1cd68a06cbc7d9ad5e7cd3a343f89a2d30d2d644d2ca34b1081c16d5a0e35ee1ee0eafa3a6d147c951592c733402128109e1f7ecbfc4b166ad51d0d669a54636991a176fe6c23b514e052b2a5a8405d307e40900b7fb7416b9934bcb030b1ad843c1ac5b428deb5dd8dfcf713b4807f1d8edae113da864c2975d0ee0ae210c4c9f25e999093ba5ca2b3cb89933dfb9fbd50c38c1c621ed40dfc78169439a61da783138392bd9bbd72c64cfa4c124b0b786567f6d053667f489377217db32feff4de6446541f2dd4ffb9ec4b9274f491fd9de145540649b83b0dbb8ecd3b0588b42aa1d57c03380b259b99093e699fd49a4c08e8d8e0ccc882814b6b51edccae3f90f2c318ca9512067c8a2ae9c20bb7f9101d365845667465e4d68bb7790f0c6d1a174f6e90d8b1c80903a1a6aed65c7a4c4f3191a6b5eb08894368ac11f5e94086970720c24d28780c833c2fb7011f6d0218cfa30b6956868140932be8179248c319249b4a71009eaeef096dac9017adc217c9a387e5d54fbdc5d6e470a9b9ae7ad6052ccef8e6b41fe5b73b9c58d33d4eeb2d86a0bbeacf52d6ae3bb1d8ece8b21094015034931b9e8f235b72d84aa61c5c4e0c5502addca6d542486c437c9e49e4e9c49c05cdae412b93466618091e81fa9d922e671a9e5381a2e47b673b04851c863679f5ba4bdf78c7df7f34db97357b849e55c556b21629705ca7c5ef0d8f4162f295a45b22cfad130612e746735bf4cf8cb86fa76a4c0d69bcf8f616570cf93cafe1c2d52ed3f73f99eb0f047607717386a24fb14e95b9c82e8f0e2289e65df237b8d3690b8d752e9ab2258f7cf97ee3b0cd319a8975f6339245cda0fd56c9b0ee13a0ac1d0567cd78657a71e61d2ea92aa147a9e65713eb878de7ae28b4a3036004d14b18135e8885043fe62007e837587d794fae876c57e5f8f9614e8008288dc4ea63d6f22b1f7ae07f0f82f9b6430104079e3c643aa82288a185b83a9385557d258bb3cf069fe8b076d53fe8bde85a19dff2d4e4282e7d11e64bf19029203fa868265809404f4521915ee31f2d8ddd8a23bb90d51fa813a0e4b77f522b00cc39ec76b4962245c4723dd2df8d7a43a1c7aedcbbf8ae5e5f84e0239cb3f159d398d487857bbbc432e97cda05a50d26298fa599939cf5368451e8d140fdc742041fcbbd2afadac98df6aeef9ad69b18402539d9166203fcf2a76781bac2e1f1edcc3b59fa3a3d398247859b9e4812cb8ce13b41fc185106480c21a3fe309b1786d8e437c77216e155aaca1b1eb3c7f228065283b3409c5df5cbe645a81557d1851df4d6b17ee409c159ce61f502b1db6adbddd9490b6a5cf046823a07b647d6589aef0eb9a2c344dc4b28a5edba808e3d604cd9750ebbea054ae8a01c4d60f8297ecf566fc6cda1827d4f7bc6e600fad179132a608b29fb12030ef926920cdfc67b303dd4a20f4b16397180f64b3a277c24d8ad130b828fe73c2dca2f78e36d57eeb8bb6dc791d91f9745b11c4fd057aea353c1a12c126ff5c1d11795d0e3f957baf21394879ba7bcae75236f94ad08454ba2723a4d31107ac770c56f25f8f051c986c95167583460393cad16afe6441f53821b42697a30019134019d7fc03604cb9f8259cb56243b1d5eabe4450427bff13675aa8fa7e27272e7144f5afcbd0befbcdd18e05a13de49bdcd968364b67a476abfe9af9c842b158b3e5e20002ba69999db00301755e2a43ef63b88a519a8df9894d086f43d72304dab839371eb54f47a569b2b8350fb6ccb3612420115d1ccc2e848398fdf75bec39c8f813a57603517fe9ef11c06c7f47fbe7c4da979ad4ebf8d4e28726b52684022fd5172f5a08cc24532ed734e83421eec8cb6568b39adec40c0563f28af554bef43224e1888f7846b41183f9edab86734a2236cb2d4c292b98bda6c5eb37907a4dfd1b227fdf4bae0be69d8b81bf15d3b0e0bae62a8917030849d508e5ab0bf6656ebb21ee82a987aee8a4f765825c88226003f3da5d317dc90f30e6e86cf9fc9b4006437753055d99ed9755e23aff7beca4e9e349d962c0bc9f54f93d2a8570075f48f07e93a7e7bb18a7fd1350ac2775389ab60fe193abb38343f8250030c3b22514e7f8e06a3da8edc0056ac32f4c74260d32f47a89f409960bd0ba46f21c74fb1d2e64a4c4fbe007019b7aa1e676fbe4f1de7ba629a009170efaee8451d7c8ed8760e9e42c996fb5f0a1c631ff6e6991c3f6a6890b2b23a5e8ef455aff351a5704375d2d56198faa3cb4e8f093403e3b420dee8030fab1b10d5d7e62d2461cd89f5e618b0d75dacb9b57791a971a3d7316c308d81d7a028226e0f5ad6183900d3badf3de98c0ff361a2167115a4281f054fec655bd48bbd1b40b8f23308885c43ebf9f179b0c0ed8e8cb2f8ce8e1b8d231e9aa695599715d0f1a29b016bc004b29cce9c54cf4e6c3bd0ad6cc9d9edc987c3f8c6106c460b33546e5582c7103be05effde56259e05e0af1cc827468f7f1b458e3bb3c84afa94090a017607582882857f3ef96f5c014028a0f4ce8b7089c2c1d5600300e5602ace28022cf711f4915dc6082978e8661aa7b0cd4f179509d555098f7c92bf14ea65d8abf440a3a62f3895b1ae47317cd0d6bb9b1eec9631c44ceb010bfff0f959582727300acfcad2cb05c06e8ecb9000a32bd56b6d001ecca63c05822ccea99db8da6fed843dc1f8fca71dee11cdff18ac6fdcd9115667c06f01118f7df723c9a0171e5eacc8bec627f2c80589408cc72147a20b6ee68fd4a1dc5251574f700d494ecd9de35f46ffce482e607747e862cb55f48ccfd0b59b6d41108d080fc0b64d5d9f55d9a9f9ff3207075d3dca52071b1280de802a340d842348a658a86c13386ca627ea946bf36b16a60407f70519f6f4d13a3ab333eaa65050aaae5d1f26d08edd0d5a3cc089260b7b16514eee4b495a54c9b6129d9519c86309daa500c37e0447316266c3bd0e08952ded88c3a3b3859436bf0bcee35ba4a2a2429dba77f4c47cce51ae6e1f15d35d232de4784f4697f581b44a2bfcaefebdbc7b10506fd3ab5a228e53ae314b9b06e657aebc01e144c876ee1c063828f25c6086d95bffdf11f088a3e78ba8f5a3d211c4d441a31fa1ee0ca52d20f9d1d0d1432ab353fed1c69dbff426af9b1982b8aaf358a4aebc2d32fc8bd450557d760a01ee3da32bbeba02f5a7e687fddea5703e239148578f0cec6b0cdce32f303a40a0bb13c4d5df73f20373ad6cb90ab1f5231ba63519bc0f08e5845109c876d209cc2ecc7c0f48572d43118fdc371c5e3c20fa72e3514fe804cbbbbd9ae87e1680ba3d13fb001be428c2da59518dc3546f76bfbb9b365ddba40d21b2043da0db62d8bae9800f6d7f9f7f4086ecf7d5b784d4c76f94fc63d53e01b99acc301db2900cbba02c87e1fd99ccedcf842e6f34f48e3cba2ec5080e1e7be361246f479998b983b3809822bea37e477e1ecdf58e2ca711eb224707b5b8978274299f78b379178b285fa5c24630d035961a09bfce58b11ca7e03fbca77ffd2dbb485a2144ba90040d64e67c0a7d49084110d29a34a6549b61e8d59be0278e9ec2fb22f2f99bc9bc4ddb1eaa4cebf7221fee8591b87fadec7a52d4b6201c3dc5993caa62c219e18bc10f901d106ecca1e7d5efa8b536c79929a36457f675837917b26b39063e04776c72d3d6f5881d6cb855c5e213077dc7adc175bbcec4ecbcfc89f61184cf49a46ddb625aa45381c50d30e75d23eb0c2058ab71e279f0a4f45773cce4e3f6fad42f2ab193bbbd369ecaaaa409032c35735ffeb16c6900e14a9fc3c62dd133de0383a8e4b84ddb296df6b8d941c6de9b478ac5c9f9fe3106b87f88eb3a04a9ece008fc75c29a518b0dcff5cc1ca265f53fe58fe83db1e69717e9e0e4f8188d000b7dc449828df3afe9d9ba5a279009fa8fde64c826e9a1c619c5b7edea24e29fa7343ed3ed9ac5bf20971dc840d7ee4a92967138d12576a6c41507d0cb917fe8d6baaca956d66e67f13b5b2cc862a97abebec156faeca326863728ef3c2632dd8c8c89ef9a2b85ac969d4b2b3e9bad24b72e9b1eb4d753b9557c1e6a6f2f54c78c4f427cb7e04a9d00b2a29feb7baa2d6d266ead65c0b8b7173a4f27c406814c9b0b1097e912ca1ed780fe88782ed6951db51b857dab5d33c43d461bc7675a352bca560f89672a41aa25e48ece888b2e30eb71070f97ac515cd1acc5b7524fe1720e3d59a4506ddc60803cf7b3b2c1d6202568bbf7178292a8d72c1c2dffda943fa5ef41682840e141981211e247a8a9d89553bce02ddf745b5d9482627b51da9df5a4e1f1ce6d7460baeb6230188aff5a5816f11ead7f46ddbf11da8c69e6db2047a3dfc60f2f32a62d26689bee1b47060dbf1651cbd113ddbafcebb671c87c9c8761c208a6e69134c6d1287707234e80e7b93edc8b614cfc689de086450516cd73d3d1602b40712d2ce33db9928a954bdbddab08b56bf3700960e2aebf2fb3157ce55b9aafa53790b38d009f89b40d630a5d3e60789cd2235997ce3ccf5cb99558fcfe9693999ed35571daa06233b9a1d58fddf6087df42a80b60ff299442f12505e49115814b09eaae24c40e2af52ba2903f8caecd27d055d57715801c62e6cab919ac29c55197aaaee2949201095d83813ce20f00aee61a89c3c4bbaaf7de46ee8a356c2eb18aca186f58df00e5baae220ff51b2beb2da37990d31c6998fcb2d12e7d033211280b50d468091954a739afe238e8004cfc7a620511cefeaeda4767dfae3308000f0faec96377657112d133bcb10fa199c7521a1085b6947a15d9f39fe9e51f87ebdd9ef9e16c569b45ce86639f024b1e3135256b9821091d99ab49514666da5eb7a10126c7a7b9734a5a57d4fc4f333704a27d9e2af36792a36fbd5234751607f90b004f6d964ca8bd8999ca9d3df153f957cf5ca649d9fc8fd8bc90cdff88717cfc0738d9f45aad1870cbee3005455c09a9855c6c7aa0c031609215a4504f976fcdde2e218772ba18b10450f58323b5d5645a7194e0731bbd71fb50ff356a875d391308ca02d003cb7e52c9a299df152c15f5745dad9b11edb1ecd902c8e99e05936b93968a233bc8ce695a87b0a1f8644f9a6cc87e1b481b835345efa854c9c4a69da3ed742579478507cbd16a29c4c44947c2ccc265a094f70f64999a8b879815a8e9431205692d5113dcf905c6c2a03bdab2ebd827eb192dc1d226650ec6174b099ad7b92cec5fbb4f40a95507cc38ae3658e43828f9f4fd886bad201c87b1a969384012dca2a6b529879d2a5009d8cf293dc815afa20eaba5857b58c40da02a72086da733844149717c4096d04742bcb6d0983f3c879dadf6b914149aec14dfc9f3397599eb8f9cfeea937ca2b18cd1e1d56da79e8f8d063cfee135577a7f2c479c0a26edc21efd9f2923d0e2afa643514341640bec278f028a646eb52b5274eae1c32754bf7aba447ed78dd3804edd989b7a677abef11d85557a64d066f0df50c2439a3a7bcd29de5118fc29cc6332aa30e39400613271ae703db1b15a836822b10d2e3de4762a564b65b6cab455dd3337ac6c8f4ae85ded7b5600220168cb9bd069e7d65804225b5b6dbf077ae8fc534f4b80e76769599f64126d63677f260e6521aece993e9c74abe9d4260bd7b7d1d46d8b198fd206c9638fa2d37c3a9a0467df4756e28f51be44052f3a420b16a68db90b0c4de0d6290611185625d99c24071c66d7748b4b2f264ccf7b2ff229f2f8626c938f56036ac923a52ec2b6da95e2f7aa5af250c5a851f963b22b568c69e42485dd4a937c95a23ccdc33239ffd180c9035535a229cbf05d34d9ac5ddd54bb41b08a5a96f0df0282035403bde4e6b7004e551091732f506fdb2a76b012d9e06d8515a8ec31f49a6ea52b9a0b8405628efb53d2bf1123a2cc7d7299bd90da87f908fa977bd8ec78a13a8f8eb81f53020e6d121c63e9e5149daf88fcf92a24e8ab4288424ae6e30a47a71230ae988b4e1f8a79da2f2ed5ae5ff79feb4162df2646e6f633361d14c6b049b9c6ba2b6e04681f594db9a40d10a8a68c50459035b55e876117760c4df119969d3a2ce32aab8b33b0250686926c65095565f09f49683520445c5bf9b2fa6037f94c8de2f237535f9af29156c15f09418737b22d2345377f9cfaf8783172cfd981bde3110578922cea1d22b0a427b1a8e891485bac7da90e52503645da690ff3fc54b9aeed33816c5cddc3bb1970ab992ef64d1e847ac2415d798a59dbf2709b4048ace1afbe62ed6e30811747cbb312586a658fb316253ef6264cdeec7d20b55cec34f5031d7bddb686d3abfbfa1d1ded6c070d37c2eb77389349e18ec8a3546742308536cb73f2f5ee3946392e905325ee24a00ccb4009da85827519aa522428116a9e59cd45bd57223ae181bf2eb1276d79f2901955abebc15caf2ace35c224016005ae49017028d1a74dd5485dd71c32faa7ab2774383126c26ad8590f7fcdb28e8b85e9802debb3d151dfc708a8896503edc71cf917e95ce4d7daaf2bdd931d7b3e0e283202d0fcd929e39cd1398e8867bf675ea9981a99ed6b082f1369fb2c8e29214839d2e3510f3a6a65deb67cc1723202f90f2ee0cc734c17b85e2daf33ffe2d9060e4c819d8252bf2efd667043bad6c933807cd32934c0ba3e54d96118d147f537c6e7d30ecdcc75c9320cdc867784fc5649f439f53a9aed9242578a18dc11c27d8e8e6b175694f4613ee5fc8992dcc5a0f4a7dc60f4405d042e1295f90dda507c2514322ad5223e3e354325ef9ec0b7e7b93723559b88cabe651275001887cb1d1d4afdbcf3bf4208063ad0051ab8db493a6855b507402b57a7b9d98025e49b28799432e9d6d62ba1b75058a4fbb0c16425058dc16be5a423910ab88d8e8d40d7456e94ed228333b20ee4a3567e26b14fa2325278474597e03d34243a9c38407451b8c5f36b5444597bab1fd4754926cf319922b99febffd407a57f0fbd875dfccc0a3d4ee4b83c3e2c4e6176367f1adac5c11da91075c5a43ff0731c80fe2142fa26a77ab9641cfe4369480df5d9b173d963767fd9b8f1f048047570c241bbc522d34172d6dcb89fb09f5193bc34523138766b086e449f094f32f3a9e29536683599024c44f49e6cd1ef313f22fa0a3c668f9208d51049273782436ba40312eaa2e5d62fc351fb18b8bff7d816c91717a0c99c80ae2e0d071bb32a9eba81793e11db418fa80da0319ce53f676c466cbc121221b195f65fcc6689d9ae904839456c3e9d9313119b2153c4260cb4d1fc1ac6d8241bc644dbcbdd8f564aa77ca062376ac88c83d9f284bdac41a048db56738e9e248839b8ce555f0299e0f6fdd4fdc40f9fb968f4bbf580622a91400bfca5db6747c0c85a078ae4baa88378724a71ecf09ff0f5996a4b5a3f7e38501049cf7a3f494c7c241cffb405b57c5450e27ad9c3fe71382d6b19b1373afa7c4b4af5f5f9a82c903424a0ed77a0692e9eead84ef0ad27371bdcfb5cfc1a200ca1e7b65ab40d219f7c3e0cf3396e1c322eb8cb05013c502bdab9271dee27d25e70c7964c847afa4ed49218c83a7748bef43e4681b586f7f8925fda488116e01b3129b7cf125605470c0328504f3f2c2a3c4f7f514c76425a39c87b9ec4e7183e9203d291d1ba4de075d6b19ffa91b6ff1f32d82a69f87bda0eab5dc7950f2fe9e3340802ca091fe96caf2fca80f8a5b55af2117f49e8c1e9a06173ff67e26d767a43e269975eefbc7bc06e6375ada682214ec342dffafbfdccf9c2fa4c612151f654a48d28386cda6a2e3c221f03bd0f5eadec29880eb9c108716f4161e1c9f8bcb138cebe61e72ddd98fcba025d46e7e8dd68b28168227ba5a0fbb5428fcfe8e86f6480cacf64df14ba6c88761af04a0ae405bfa4be3ee906b39067f4385b431b59b9039361c61ad30be54a1233e947ee395d94680c4aeaaa2bd9fbbdbb30b3fc122ddd8d3884ef3809713fb73b489a920b6bf3ea587333c056ec121dfb6dd5606bbf64ff481d745a76cadc0e968b291f8d00dd530d89cdf81982ab31adcea9748f3c45030d449b1a9ef8b72ee51c81aa7013a7f830d5f62ccae67b297460001310d1ad2d3f0a24faee226bef5a9c911be9f81ba742e43bd2818c6f09f8df1da3b08296555d6d4c50761631a56482f4426dac1b8874609174ac9a940b35ff4bde70c5acd7be7f78e8f3ab898874467b62a87b920e365975384acb82adc89320d16ab45b86e2f371d496512df2da0ca836350848a4e2edc079905def0c0c2b8a3a2e31112dd498c72c154ca344e2e927549f9bd6f599546d4c954add509ed3fc2172b30d2f160888528e911be7f3661a9d8afe01f7adca132289fff0742b7bd4e4dd24d8990ee022b7be2d619c7ef1463f87fa447eadeae27c8d174838fa08c16b60df9cb07040926f90c722ddd2a71f173bc34ee7d7bdd8db2a9736c066536f4e9e1e46ab674b882190753ec53457af659fc9173498987fc1446e20795be53ee21dcc22b4a907979a9f4000557b643c3a66b2ce52c9e7a32b4d188f94686e5187360e3c036c78bfe645b9eb04cc34d94398a49225661aaf0a7f1bad24b4da1369e0ed7815d574e11a9265aa327674a612bb7cf374d75021a7ec32b7b67f8d201a3102d34720e4a4304da13aadb9251655d275e6cf50ca9bc915786e6f8a453c083188c70841708a192644cb51083d32016d40401dfbe6a77f44d23d7c792a2c08c8c186d705dcb6c1e2e0ceedb0dbb236ff3eecf0d567494a2b568bb5b7a5fc9541d534ed3ec5fc4becf1038435edefeb70cd9964fb5da4b0c79c7749ed055e1ac907ec1b8dbb191b86677e64f07883ed504725c3d023c4a24de93dbe7d4e4b78f4aabe1dbe8dc921a3d57fe311bc3c5f5a7c266abf94ac431287629d82f86b5a683b085255be651726c00d42b110b75177b0528159f59b548cce501ea3aeaf5b11ce2f4a638bf434adba60953df1988be2b7097845e171502ce4503447ceaab3f4b21e1082cd68603c495573dcbbbb0c32daf7bc97e3dc496772f912b5f56bdb43671ac033ebb72cda0ab7c14057c7dad11338b8a6027d58e28e8bcc8e6a056855891be3856a56b1401c514e9faab2ffc3b6a4a676f04a478edb0fa725a1eccd5250c2f5e501de28874a21d0e65626e2cdf462102ba943e13966734d2f33808e81b093a37b640ecc855dc0a3a33d6e004df97a07eab547502de658ac9f8a663900fa6d0d2452ecc6027260728c0db2dfb9d1fcd04de912ca045a589ea78a5186c2a4afe9feece866f501e9ed752d0fca354e7eade514a0e91f8f10c55e3548b24753599d7df0d16103ffeb2b53916d868474cbd8008ba9373915cd6c4ede4c8da953413c864d2549edc4c2cb0e4970f29716b44c36bf5446139883111bd81e7ed46f89064f16fafe9a84274099fe99efa0aaedc10e8959a0feb0c88a39c7a69a86d8d8ee0195ecbf98ac5cba3a97c1f932bc2a2947919ec58cd78cb8be70f5cf75b1b6aed86a9f6bc2c067fdb5e509cfa51061c15b4206cd5c2c21561181806014ad40a898ce967d0f586e92a50d9198b14576eb133fe70a0bd4fbadaab7c628e5b3d1549892c7e0487456284d501eaf65f26304d021398c06efaec97218ccc4fdc8f1a1bbab8c0d9c640d00e61d72c826fe0dbe2964195ae9d1eb3685e9629509dccfe971fdb792d78f18f038e38f8b8b58c44691dcd9e500c8f4cd49157da20b0981dde7f516946645a77039b4281d76b839d9dbf9de0925dfdd792cb132b2f4fe80b7357d4c612778e39aa974d9733219e8e77a21e57dee79bb6f81e29f0e63c53c6ccca1c259720e1e1911aa4f308e293f193a697f81bd100172bba0f67b8232302d7b0b7c6af1fe02628aee8f3ab19d0771c34591002a9e08980b52d588c801632dc531c1731ac9a76678348ad7889703d84e04b8e962e49beebd5e39b19bde4ea68fd2f067f980887fc374b75406421080315fbd1a289620b9f4e494b8999512bf9ad266e88a2b687abbc7ab403d8e0b26d3c310a7dfe8118f699b97feae06dc10c344eda7a2297436e17a2f33634b66b1fd27d5871bb2139e9e3773cea1f143a09f47609d1f1b86944750a27a025e84761e031e1867794a2cdb9a01862cd56880b085d2d27329a5162866b150d0e54eb291e9dde793246b3deeafceeeed43d8c269b87fa1bb91b421c4e494094ab6b299b28fac2014b8bf08628d56f0325287ba5e3a563a30aeb06b36aca6760a1ce64bd2a2788e5f5eab407e98b0866d56a1135b6c85f4c4b48fce9fb109c0b8531a0c678811571539e81513345f1e63049da83e2e4b49c684aa287a5fb98668ced80e07f7994f7ef6c285d001112434fa380b2d469ba1f60f0458748f27ea18be355aa83cc5c652671a6480fed33c26ad5ca8f8719087dbd0599adddbe158f1a121bb87a69ac70e9fa0c6e4e110cb419fc8c305386dae0e5d1118d4c12e5cb118272544f294007196164492ea0e99960cccffde09179b2e05d4fd64e37e9df23f5bafd2ad930072c7f741537259ee63aa2a33a43827135104e41b9657188a524479bf92042e2908618bccefcf4de62525ea2b90603d7d2f6b69ff21b2746aff511446657bc571f16b20275fc0df5937bb63f904c5c95a1ac8003df3a4cc5c1694da96bdbcc273b7b1445ae16d2b16da8dcddad1347c925732025f1a72065e6c91c7ee4dc8e32f521c6f18f826381762c32711ad758245ef6781d702845bd11958c7a0b8c3c67365e33619d975aa7dc5f7a504f26f5502c846965ef1ad96e2e82f29fd3f2372110176c0934850db1e81542e1f1b566ad430d6437f7b2bf732fabfab4113b84d096c39f3193747447627862d178d1b8f1bdf6d2547e89237a110e44b6ff0a6b53a388b5fdbabb186ae693962a44a111096a15e09d468328c16895eb7490ca391a7e80ba0ec3937f71b2fc70ebc483f55d72aeb97c6d23e6866f074cd14fbcf45ac89f72ac4054f309a4fd962a8ae489aa12a34e48420282ba2d22c413d31c4834700493b65832073165215bc58a72dd3e716d5e8563ff7adc6bf0e0dd79131f69cb507806e693c679e22cc91596c32157ddde871a13d4330d88c230c2ea37d6a7a59f49123337965678b3619950d13c6a00d73604769cdd2ba74db6fe11ac44a3df14634134442db4e33ea9f0da7e6de802d5ac5d6027c015910e98ec2cb0a289023bf38e59136998071c95c52c04bdfb8aa96404a7febf2618609478980fc378c664155e9a7f5ce6ff357bb296df184c53a1b4e416c47191a871036ac4ba82cbd5acb6b92b87e0d382aa9760bc701b9644dcd3099b26d946ae13d9c79bb183bbb93222842770f1d8ebf1581e5f031f79ddcc6d81b1801979d92cfee3b49724085714f67a7f71903f9c3c4c589462a7c5c9353e13724d9741487665abb9249748d688d0776630fcce9c2d4a2811857cf5e7c30bfca1a96b8c2c008cced99970b8ddef0075bb01503aada8624b9e5a6b6a02c1d5a73cfc2dcc978be1aa7bfc8915fd12bf7e7174fc06f316d8db4d9508d7cf995239455dea479367fc92fba438b0390d1837bb41bfaa0fd72f4d8f111327fa853f42959ff73bea059742b4d538c85ed2ed19c92452d11724c8fc37be63ba4a84880db6f7f3dab8a05f68ba49e22d7c238a5b145b6f10ce2bed8f73f6211be868027bf123edf8d27bab6f25e8f1929048e7d7486c8e719f7616e046f5261b1ded9fe62a730f0e47598a083e616bb9add19e335eea0e46ec5fd2f1b609edbcaafa195ee69f1eccb7470b07d2e33bf1f44e1ba2a75a395654248ddf7652b42a5763e35bbc12eea7366c2d39a16d36d31fdffca3120f5cbe465698a1b211c9b9176fb5e8ce102dfe298350476c63d7a5ecb787c3f0ffbc5658dd91bfed078c360c5ac42ea74a0564b80a3972624315d08713edceda22efc788c02cd7839292993cd36f4977d073a57c0e26c1686d00bfbf78cc705794ef660e667bc407dc6b36ab8f48e617c8c0530d45e1612684f4702d1cb46351db61edb00997e6f21550e8200a554d45fd629c830f022a2251464d1dc796028b2903812daa585b4fb431cc42655c30be315daca437d8420edf91302effb473683f91fb68e5b4c89b658d131433ee4502d06d44872a757f3aa6bacb9d86ec2efa453d79b80ebda41d24e282109ebc2b097ba82f305fad5213d7bf291287873fef9884dab08638c7e48fe2a3a7f820dbceb5c726690850176aed8f503223f103aee8f2182e2ea7ae8c16a00c1b40162aa3a556323220e77f9055d1e96ed9355e974dba11a5f98c0c8df01240c20e478e39c059f0941de66982665ebb1afaa2c77e9bc224ad240f51285555b044bdd5689e8a24a447416fa7ba6f50d07f4ed1fd1d4bd0e2bfa109258bcee0dd3cad87081ee94fb5176300b46a53b7bd40017337b9f3d21c461f8cd668070e9ab66845807fb32bac6d00cdbe099da6d0e025d41f8cc1c67d58a3d177de87025c5330953ecafd0a90263d7fc1a8d80a24d3200f0f7e6442f243fbec516dad6d26f9c4f83b615057a784aec10ceeb212da0dc40fe78e6dcc51cdbd2529cc06015548b3bb158c90a28bc3d242f0b37e9990fb8fe8ff3c718ddf99cb39435431d15a5dd783184ee6c6d1871a9f6cf6d2e09b7e4dafb31b054cc057c1d513c019294fb92e89c902a09775e1ddb835029d884f7e88df4024500c940a884a4889cbb27d278e89aa6e347c9bbde7c3a459ca595de23ff753d4b1ea8f9ca23ce9cf8839bb4e03d60b0ea51f4a70633c2d1e0ab72cfce4ab654cd1834ddfb158b7a25e281017e26c2bf3e45ed59296de3d8c70226f5f37023610efcb1910914647ac5be8406490505a91209809da2e77a1da3de5cf4389f61e6e52836d84ceaee644bbc2a0b9a63b9106819d85c718e511cfc392209ec4770605f085341af78cf583bfeb445308aefbc4f388a9cb60dfafec121f667105d392a0989e8b42bfc12672d54f3a1b5a714dd954c0efb07b4e77bf7db4b7d2e0d50646e3a2e640849ae1c125dfe5fc855a64c716c97795293cb62efd5725d3f2e3b3fe00bc59974969b55d1fe99d1fb425c90b9a4530c3253925b425ade5aed0288cb934d1ae860a5719178d5346a3d4bce4ee67b45ecd4e06595d72bf9402548a199f92862b2646e4195ffa8ba244e0f8aad78e065d74b6ceb635099f6868b70155bf3ee39252a005d94271a4649ae3c84e1db013f749b783d0fdaecca5df72797fa4f16a4e6ad6b63bb92c275b411ae7ff4718a55bbe70829e6f7120ad64f396ee60e9b74f30de372200f2542201c96082af70c78e4ce5e381ab701a964c1baba7e7afd705eec3ae49ed68bc5db8d82ee8ea0f70b013ef4361479259467d0c0f2a0856556e1914c5b077999a4ce464f5b943b916c04039361f00a8e97003e23194fd4b93bd13eebc1dbb476b549fdbb2d230f1aacfc861137815a960c271ad3f0a35669b5c003f9d36ff2b1d0216394ca305f7a197b609cca170a8c3e068bcec01aeff257f54a326ee437a1f85df445f8e3e2361ac0ffcab2b034f5838afdeaad510dfd11a928e2e4aa78191adbbae0f2bfd6f5cabd1f45981acb1527c9cac77537c3be0a2984ac222c77958d1898d891ae2a4b1d84f4cc4693662f9d89c171114badcf6175034028be0feb284769b6322e88e3af8c8047cb9a98243d1d7a3d1eb69bc50f0d42e71e3fb5ee023ba238836a51e5bc94b7264396374f1fb0dd2c76ec0cbdbe1060c21707f3510ba9109d3d8c1c8fe127dd6717313dc13b3c786e16e9237377f0f61f4fee04cd8ad59950f946352a01f5180a3fe947190b6c995f02060b37f1df5e1ba05c822243e3831e3f7e5b6a59fa618ac874f6a2e6dbb46edca4d5a2adaa4cd14bcf6053bc025aefefe3d4e38d829691ef44343ea6d9eaa806808a66cc981b2cd16c34e6e729a2e2c2c1a90402004502bf74b701838519873c4566d18e957ba1d10588e5415cffa994b726b06fa05fe21079896094724b9d5aadd3a8620d88a68cf03e28370a235c18da796614cb126a0109b6f36bd073b18f2494b3a597102cfa5286302e7692692909f84a8b9f2218f57d4254f6024ee0c4b45c61b959b0a30f90d9bfa02477891ec5215d4e2125cda02f69399e192de7e78b96db5368397141dabe2fe7f89e4984dc379e937b92be278523ae43a39cd3637e0d86dd83b5f2e99ff3d1757f02e60e1a004573f6ca31a039a029e080424209640cdc9c15c00724b6a1118cc321b374497f726ee269ceca10eee2755340480a010f90abdacf1fb54980b600c465e6c0b5cc4180a2ab98be75a292cf4359b5485aac83b01b71609fae57b861d47a8a59ecc380d4e7acbbd433a4be0a4169d04330b2234865116b3dab9f85468e2e885a8a93b1655ff8a93dd5eeff35b112b06da25428283bdfde087f54a2d427833c1649c4d65f4284caafccff70aad78bc70b6af8d7606ee5705781eb99781886c20a905278519325870d07340b9dc7b5a79142785fc8c0d55254703fd73a2e025366ab6805f126014e0a99bc2517aa5992c52785a9c24dd5aa4086c1956d21440dbbcf4e1040e48f0d73e2012beef0aff19ea58e550ff6f6e4d43070699020d919e0b5d39c46838802ab0ff75ee35ea9d8ef85b42c952c89e6b0de6bed21bccb8adc811254682a01bf5e611742e3b58b1c002f27cdca7fbd9e03a76bc13f8c438d12700b38c09a05aa3c751fd7f928d5840af4c66f9b00a8828a1eca2e93093030ca0e2e1998b16eb7d10aac19ce91ae673d33e21299639fa81f101a1a32e58b0ca0ed109a95820be89e1d439844f965a4141711a9d4a5111d87de62c52d24803651b81d4c823f06594dc3ec04b0ff6b5a7f2230f1e0bc1b0e27134cdfe0a620651f49c4a2a35241d8ab46a901e57408266f7f4a0a57c7c3a1940e74934d18235b15b1a90619965ba4a81b87dd0df84f73d704acb80ac6c1300456887d2a2d6bdabe5d82e944338c980b6beffac5fa03517d063da8667d517074b160a22eac55c97d049cc2e74e0c8793de914d40589a6fcd1809ae876219e29c4540d93a990ff31520ec76f59d872a02f1437111fee64fa8676e5cc125bac59729af6df44c1a7fa6cda471c57f26cd17b12b16bcea983511f1a82dde2112410286f03e7874fb96ae093d9b3527ceba85ede7435981dd869fd074399f12a27b400572bffc84ea2f1ad2fee512f8e421433f8acc0b9ba87f820191347613c3db44bd0f40287cc196d1043ec2d936662b7e04d46950eabaa0fd1e0a5f989fc73fbcc6de8c4900731f11b6653e14330eddfaae8c4fb85ddaf8d6b532df1b1aa14207477b81027bbda10a16358be84504010957d3bfd3ec49f0519c1aaef4cc10a4276742bdfd0211c383d1a013be0ed0374c30419e2670a11f23dc44d4de40886ab47625a25ae8be69d22b8e52a158f204277097ee95a87ddb2256e448016c34fd9f204504d1b15ba82e896285bc6215aba7d53d3a04e0386c0621a60b830ee69a79ca5ca882fde3a7fde557c1b369e25155038a0dc2e7fb482404e6c045fc7ac137cbbcc51b0e89ef98fdfdc635f9d47a2649f2c56939f37fcd4a05e3390bc3b2256b0478845a95b3a42628b823231192cc48f1a400927192b2f29aa40a0bcb3523c797bd5b868bfe31190ee3a8f628a8c3fb410229d00910b5cc5b745a9b5d108384a9ae9e7114c5e3d2b3ee91792e78e0c55fee246d51513c7a35389692faf5e96aba2a6afcdbd820869267bd0f2b97b5a5a74951e122b969f16a2164fc07d4ab3be92de04d6e9f04f82ca2a13aad0995a985692be088bed9a62a69031204dd0cec4dc2429508777bae57cdc4a906ff4f223970ec1603aeee982b156fdaf9c57c395fe5c05dd38fac1c04b7e8e8fe6816d0a16a55fad53e97504166099abc5c188f40abeec5dfff9a4edceed7475330941aae58da83b55282a955c09110eeb527d0a8dfaa85b42354e11127fc70d1f65ff7fdacf780341e6adeb892000b31a0578415607b5d444712ada0f5882b07a09ab865b938989cd2d48ba4f51a988629dfc810ea4039d87a6fe22529ad33da97423a8848cdf17fba5ede2ff509c0bde574120d8d18056ebaeec101ba5449f76b99e4bc706ef9ab107dab1f3c66dd67b8dee91a8720a6f797e90f0296bd28d06c80b597d13d38b93dfe4f54e0caa5e50fb573672db669ed99b99a3a805107fe9d8da689c8dd395f6026b095528baed1dcfb8dd57a38e989de5635e574f69bcbe2e35a0bbfe9e85da6cda443f85634500dbf68d1bccf205483191295881f0fd86f9872d0d573fa35914692ef8bb91a7715c0616642dd8f510edebc5cb7189f902eacb6aa675cab536653a16b43508c36de6ebc30eaead1a932199eb09121af05d0fe3a56a61ef50647ae6eb0ae0b280651a0f4421cc3c5a86cd2c47d5a4c4e23b489edac086890b7163ea0abaaf4046f6db0a5fa3baa8d5d5192cbe2d11440c7de1262e695081d61f90a25959bc5b1dfaa842f456b2c8ab00c6723847723eba7bfceacdaad6570f255dcb702a9fe1a73e736a8952f01a7448862dbaeece0f5c14722d735df1d6752bab4b7e27ba7cbb96f535bff8dd3dde668b7f5433c724017a4ebb1f8d30df6bb69fca282ce16a2dae0c75f544c8a534d8f4edb6aa6ec73da118c1379218ab7cf1ff674e3c0ec982aeaf4a7b4d9bb9162cf991eff22b87b0562687c1cf259be243b89dcffc10106c061194d32f9dc6dcb16632de68af67f436108bbabd09a185120cc1bbaefcb39ee81ff273dfd109af529734958d8e749e474f2151b3c9b4331e83468f8767fa3299e53eceefc08855992f7e8d7ccc137a921fad062bac93e9d490d53434d2c80919e0d46d4922d98d4d43a983929868b42f989322635e91ee4af63b56076cd562962eeeedbacc724a85aefed00f5a96d371660b820737c0ba81ea47c6e7054e9662cbb535271861fa4b89e36a2f37cee85150233a3068c15554652ee508e9be790fae0a145e369722ce3518d15843a872d8bf70af561097d4584fb43fc738e638ea739e2beae1ae8b5f2ae4495548d5be91a25265fd8797ce71de64169dfec305f10e9d8a61cf4af2680060c08747a88cd5af4309ee6f48aca5095cf0ff6ad3d9a47dddb1323d22abb631bfd4b56e71a0e58d4ea54da6fdc7f18409b1f89b6569eeed6ad6235e1a261001c53f0f499780aad446b838bf2f3a8735eac4b7b4d4831019e844c5eb2f820d64b40bdda1b260242b5097a1b1dd24fed4e3afd1551a0636c7a5994557e70446a9238189bc49a51118c2e3649b332c00c667a0fd37f473b212d36d1efc5665f9738cc8fd7caf668e8584473cc12649e5635e243bc2ba10687975689b8f0a3aadf884112636bd7e0c08164a29e083f3eaa82c6052314f21dc4ed478940238a68860c3bb7d8bb1ce1ba64b80bb29d3167abb9b54699673ba7b06176cbcd9d0409c61a94f4e05f6be802ca12e5cd2b211037e558059d604584b0e9bb617421ac0b9015fc4b7070c736ca9e9e605ba0d5718793f08f48ac1077a527127492c18655b4574f6da0483daffd13ba60aef2804728bdfd5e670b589a92cb9aaa0af43b89ae31b5ad0354a5514de1333ecfdd147ed44158debb74fc4235f2e9506feed30fd4eb1f08a9d044e33360384288bd33358f9500a4a321956c1000ee2b86e68dfbba3c665acd8e19846f19ec395f85bca3026b7719b0d0216a63afc28f0a30099d4af6c144c81b86fb9d86af8ae78eda80e8243d3f1737bab5fab7bb486d41f9099986f680f81b21dab3bb593433e55aac4f80981a05ce50d26a658274b8e5a4d91ee3218a708d222a818ffbff57c92c6e2ea1bc90c2e4170cae52cf4f56e005d2f180c31cff6aba82b8aedde10a0250b0c057e9718a9f40f9898547dce74b71bd658add4894a6f3739c767bd60aa6c1e9a133875afb507028298da51c71736ebf7909e64176dc8b12b624ab81673cd25569183ae6314f05add4eb600f0dd9c54ba7a938ef74010f6b85c650322170ec1e5305ad85831470c074798ad45cca5467fdc94ad5779e429fcef1ded22bf074c03714446eba887cc3131562b25ec9aaf702ef8b3927bd2834f30a36c51ca8f26f178fbd19946769eaeb3231bc82375c37a4375075cead79f98f59610ef61c145c336a00af24268d97a4b9c8f8bd6a2b32c3a318a7cd2b97eda63d08967f46eadf8a01cf007377ccb2fea64e3a16169926b26f6eada7f6df11507a751a8eec652d2a6323d4a1b422327ac05bd4c043873b792baa1e9347741d74329b90c3e08c0c14e19785db4035bb825179149c806f091edfc8bd56c7ae9388ed46ed8bf97a8dd3394203589756d81560b299fecfebc460b3f9cfb0c2da5151b353ba477c71d649b85803b664a501a20c4bb3a1380937f5df33cbb406c888c745300011fd54124d360c061b03e7fc6773ef92ab7dfa9384db4e99ce88af4f548013d80edb9b566776f8f55961ac72867da2400e64d1921230c5880da320a9d66043b19ca0f2c4e1b63d28c00f96cc7433b80bd1b4084a0ebdf1e18e60e03848ee087645485fa09cdfc4b7cd710a19442a8f8e5f31f5137f65dee085818b8c42a871b4782a128cbc0aa05d5c386974d159b0fc27da46dd114dedcabf5086bc3c4c74a8b1752790e6dd7c0ca33ddd5fff098a53828f04174adbf880d5ea7a9a1aacd38ab0a7d0fb6ffa0f625a4a760c4ffac7f0514327e7ce876b567fc9838c30516ffbe771df08fa43ddc3f51a90beb1f57c0c6d6ebc0638cdf8b6c32828c2f057f6bb21b630d337719aa97e3653da552a505997e866816eca23a420811d13710cb064ffcc6d5f80afbc540d122d7cae1c27d06f470ba67666569029714e1e162f24209bd0fca6d4b87b738d38225e3fe2bc27cc54032e9aa93aaadcabef3d0946f113aa10eb392e60afcf748cb8051d230e7c15f3cb13e69df753cd49490b2847f8d2f05833f613e8e9b4343d7f1f229ab8c3f29bf399ab8d0c140f7ded5e838452c80df413990ff93bc868fc5b55ad48f0086bd9806e18910aa17eb2a4db6640d0686df67647a04eb10bf3891efab15e9ec674cefb4de9137d9fc4c32c942900bb19eb8da6dc4d43cffb44df4c123a41a0176e63f42033d574437ca21f05254ebf4e1fbde8a780093fc1bdfb44cf8afcb893d2a79df92c9f45cf9fc839d283366c8944143ed18b98bd15f7bcad992374434d5a51102df4109a49e7674820e089beb3d687accca1c8108dde5b8adfe9be3aa5623e317e07664306e3e4df344978c91eb8e206862eb31e5bcf34bb0df524bb9d262f31e0da023c6520461aa952ff94fe03a97a443f3e306bcc8ba8e945ad98e0dd2e35915b1f61a22a03360e4b57871126543447e20619f336cb346cba6718780c8a4a09fb87b296be77500f795ce03087011a1a7effbc5042ad1948e3f55c26e3ab077b7e7c9d9c505a0524883ef3e1be434d39dd540bb70aafb1a4b54cd251186d907ec4c36f3f2a00644778a7aac451d329998e2ee8d81706294d3c1c859acabd28143c6acfaae7ca13ed01861c35fd5f6e5a10d70df0c96353bd0fd0b5fb0953b74a62509193bd8cad15d362b3fe16d03fc397c213d50593724f0716dbcf6c1caed5614fad5ed3ad4ef59e52baa9497e0721b2a388709e83fe3062602c4f8e9baa60a94f12203fe5ed09496533c5b224029f502f140956ac952cc7ba40dccb9edc5c0f400e9145eaca21d626d9290eac36672d714a195122fdae726445db03c04185647cf67803f63f29c91e7cad63498f62125e596661f8301514b94aaa2aa48381f73f1d8cf2939ae238a58389b9e1518e93c8c6beed86775bf0d2c56f6fa4cbd1bb8f8ee6335f357bc6291f32f5f8b2df44ed38f63b01da54a37d062e9885e7ddebb0f481fc67f27d292376416d4c4699c69fe67fba1b1c787d17fdd1691a9edcf4097093a0ddf2c20a810178e3cc5dcddbf75cf19b40d9e6d173acf511868ba0d6137aef16bd2003fdab021037cc99f10ea00c16e7a8135e627af68e95c89abdb42d54151fa8b4d55e95d990514d898a18487ffc076d42099d84f3d9c4b56313ed64b046a09ccc9d1d87e3b725dcb583dd62cf22f01c6244304db65dab2571cb67f681a253c4424db602f719be7acb5b79bd7d0521d86fd8d2123ad1cf29be3b331b920b1227eeb4c45462a72801abc4b4259b609646125f8df9bc12c9474d9c850683a211237bedbf65d1447e98a10aee1e512caddd9f991f84712c64520a9774704068db976f6913fa7af71692f5cb40f9eb920849f8f40b914434985ace87a87e8fdf3d6099089a65296415d35472e59048962d1e4d7fa71a124b589513e29cab28f37ee8b074be564cc320814f5125ba75d847ed1a60f9f6f684ea53a306bc378dafc6ae9a2b6865d3ed478c45b6413d55848e4dea932ff93f0c92a4d733b4cb869b443cd4803cfc60d49fa29007f1627b96caad3c459b1df115ada00969235d604f6d02f93416c235769a6ab15362ea72d1788eb1e16fa7f597e9527cc910929b93036621a8c1c556ae804e0549fd89250fd38bc0455a0cd5d5f8134191a37df5973ced0658365110275151dc2056725cb98d8b1b7cc1977986eb10ddda4619b30f66566ed47cc2775b6da24e510a2c935ec6476c2ba87a1564a4d11bd42f06568014a69e6fcd7f15424ec5a7f45702fa7bf3906318c27716d2bab83e3f1f4d58d387986706a3c0e68d55012fbb62f44da2af2182c05266465df15a7b60ea962784dc9ae864bd62b1a82ac2097605ef2c9d50a7642a78455091a51c940a1fc638718bdcc7053f0c8b1578bfdb73394c4292cd11f66b12c6225cec86f28a1b03b20a4e4aa499efb977a4c45806cf5bda095839c2ebde1035ff8758abab0cb7ded5302109f1cb9d3632a53fd88aa720916fad3b83d2a3c44acfd15914fdff9b1e50fec5bc5b13e84971c9d7a97b10778140aee79e391851ef93d815d270cf62f53e3114f71f1de01b3fef02ae17e485085182d679cafa61e4ed6a55e77d780865f23de0475aa9502abd524d15b517cbfeaaa07e453f6ec057615f221e70bcef75e63e148bf20515c5437fb14e90e8264b95911423995904dd340fe22f1a5effeae9fc4aed2a2c3af0d187f93c9d88ca9600029506c5dfe65ea49617eca06f9f32ad40d9db474c02c1d9a261d252b4804db3f25bbbf4e2dfc0f59a67c432b9a0ef666d21d66f3d63c01e2f948bf5b41165fb7628d35fa3686278a693b322cc520d260716b90e4b0946298ecee138d2086d05d6067e71c8cfb396215ff3897542d62af1bb47f52449a93ac2ab6ddf918026702711d3e65cec1819486ed8a307e937dba7ed370870ad41fe87ca8cce8bf957a254535e7828a2d5f6e5f550904e361cc9cb3544333d15b706dda5e687fa3f4b67c56394f8020021f625076205e7ae74b198bbe484e1b341875a6686e4a4206b8aa7297d5e69368dcd5dcb710c56e4e93c3e10bc2050621b527b35e9ed5c3bf25b75b37a34e9f95e6339429fc430c0a342152caa75ee04162b8d6f0833a0cc53366dba60fe218ae299ef28b7f304b8c007e581abf58ec1bfa9ae7b692556c6effde247a209f61eb706134cd86082a317664b97d8d3f5e315ea4d90f7b2c7115f35bea02c829b326384d500f773509e6bacd037c6c52bc2211a26b34c8dbcd68279d2660f1f164dee0770090675e76147e39eda3bf0564639c42c01f0b8b1c55f007746fde94acf5b6094164e8f66fef42bdd0a18b110007dd6bc2ab3ffa8936f7db0d71abef105cd1cebfca4a748e48b3a13b534df1d6fc185fd70615060b1a801ee11045e20f59b41df6a3adcb9b461d0d1ab7a228689c2965e1bcdd69bb5b7d922a0d392de3f1d16e22bee6990d3dffa79a029589b3e3118c832d5d454e20c5415f0db501f111e7c5d34c7fec4219e7c5473cf82038d2a2d941ce6e0731f000c28dfdc2b66358cbda11cfa51c702a68ed0428159a7860f3d217b648ecc5d80e2d55272044e20ed74a6dd946803ad464d929d8b90ebc985c6009d450579d051f2071268beec218d4b506d2f042c741977c3e697cf21e798df862f7701944247227959616774969b589d25fbba883d9bf07ae547f955254d292c9d162d74b1fb6149effc464b26bd5ad95f27299596d7072542f4b9aea989de00ca885c06d1188b4c2728ab4e92eca5848544b9dd691adee53b62a15e1adce09c898ccc25299d63597655ab54fa4add731b06538b817007b341e08255ca512c54fd4cdc38da76d092f80195c79e9a45df27695ad1b231b2145ece4747cddbffeca2b10395ee521a0234bbf65815541ff438819aec0aa306582e41e280c132c950506dd3080c86fce369d58050157b0f96a66ab5fd12cc464b4736da6c8533c94c5cebc317eefc80fbf075532f9ae9850481e2ce6a3bc35a418dc3e7d051d5d6dab984d04d402e7747bca353a327941edaf7e766bc00cb6480b0e62b786263ce3a519d54d4c05aaa180b1e137e9dc8bbbd87a65d0831f6461a4e8926fbc09fc4f6eae50e3230cd6c3e2d0da679893fe359e544ab7cbdb1caf979bad2c2d7d6bae6e00de32f90c142b8605f5e96ed49d2827d2bc3c8aa2166be1963e79436fdf6726c447b9e9f10925a56d55d58d792c67314b6551d480595724eecdb5140941e8658c5b90cb49ddbb01783d8133063c06727aefdf361891a8d191cfa17027f6601255a3f66fd5eb9513635d86c7aefb452001885231b251d00dab2b386d00cc8b63bb9225de2c6c4385c8357a7d115c0acc05288f4a3d14bf619794d7984f5372ebfe702ebf49029270b19b611fc2a9c8870d725aedb7170b1993ea2db81a5637c08bededeeb87fa30170016f299558b89ad8fa6363cfa4040f77b14a1801b09833ddb0646d8fac24db338d733d354b36a04b370a305194a1120ff0f9da0ad435968bb4bdc25c2641200641ac28a4e4005b106c2f2711df758db221e3ac9d229bb166a58158842b764f2e51181386cf903f241cfbeb58030eda24d1048096d789f0d20dcb0e6edaa7b598fa08f188bad86a07f4be68dc4e0b934ec5996acca69ca634fb03bf7e7ec689415db3cebdf6778f2419edb8531cc8a24d3e9779abbf9094dc317546494bf2c36d8a211808008fe1104a2739140d0519d42f053c62e939b7043ec1c95cb40cbf61a02881373968c799a23d92e58468409736f30668bcc11bd6c2d63ec0d860f681d1a1a48283507f48ac9eb5fef2d7d0c2df3a03241f10c8608e74978ce0adefd68c7529d1541206ed201623664168ba27dbd9bbc73520434b33302024518b7c136e5aa49497e09e12c038d1115183a24dc7027df1cc1b9f96a209412ba23310c7604597eafec99645c5cd5d5a118907b31143f2cb9f205af6550211a014895fee3fc3fa97df2b70388baa9484051f5b698d3dacbec9eeb3bdd2c4ecfbd29e82206d5dba0fdeb3ddc543b1dc245a215d9527c5362bcc1b882f8768e11463254dcc80d039e7f716bf6fdcf147ecda59ceed818ad14482f8941596dbd84360180643f0651cbb71621fe1eafdf8864f114f714d090586a07a71bd7218c578d4efe3a177d479c594c39531bd7c6ead7b4145de4f096fe202eecc5e9a45c50e62cd59499c0655d892a87de9d2b845efefc1bd3468ec6357fbc67f2befbc68ad6512b1e8991c2216566714754ed31335e8ddbe1a6013c708f224cbc1218709bd5025caff91209667b86481cdeced74848fc5e537db0a7e7022e93bf2af604318fa4aa02d4000e7d67ea41b33ea363c6e5d09389f880bbf08873c4f729d58df28d7b3513f21d8ec8b3139c9e2a8e48515fb98fab72074ac057e5da0adf71f16b26136df96430b27991438396c11762c4efcac53f1c9181f2da0ea4718b2d7d722e0b9fd87c13adfffa5a3dc804644f5c54631db4caad83e6e1bc574feb205e8c693d46e3831e30661c9fc6339e5eeea9d930b1a16a75443c7421b121adeef74fe0470fc52cdac928436ca1b85ad84d0a8828fb852ec819b3a35501e8c57b90decef7aca84b138a0b605ed0fcf89d2130fac8deae128f37bf47f1aa3818253921160934c526d0f304618aa79300f4d2d98c0fda77416b444e307c4f1d17dbad7108c02924bc6cf4b16c79c0cd96848af351d49d10d12f237bb332839402126c1dbb480c18fc1e3ae6358c1d14bcb028bbe99e75e33efc323205bd6eb1f17dc2996b86a6b1f53927da426af8823b4c25313e08d0796b1a01a9cc93af796eb3dc1c006f74532e066ff3414b257f1024c893f335b2f9053e883c80d9e7bd068a0e80b7c1cb6fb4810637fb24e6dd5ad826e5a49cce4319969b64628f0161d31eab11ee6a08b1a17495440943dec17bdc9b9ffa3d5252e8ac20f71f973a7342caf89e8902ddb594facc1a8e0315fc57429f3d9a9c15ea03ccaf8a07e54fb0a1d1435d4f3d72fda546150670b70268fe8623e78b80bff64a8e0434d8f2073d8cd7ca15a95ae70264bbb66eebe9bfc91f508f75dd40111d403fdb4031c9845a7e6c3c64a4dee1c2bce054f026da7cd2f3f21fd43724b4700142fdf3e6433bf5b0daf9b9f001e908b8d45f0f087233bcec0e1a9a1b46a27b200b7c43c958014380e2733515184790cf4682c473b03af671a2fd5d5d944296b69ada972d8d0159b64ac2cf8eff54a31f5ed2b22add56e5145d640512de36057badcee7619140060c147b76c9539151aded6cf6c65142da5964717cb59f74641f7775483f877eb6ecd64044f0ed538aaede3bf3cf7474b9033a6f4260283764913cb5b23d529fdffb201781c71481b2876238341934c32e2f90e597aab1f1fc9a7738f94344c150a82c9d51527bf9fbb898b4df6eb7b578f26ad595b76ad87583647e6958cd553cd214cac36322d7e256595f727de225481f10f200c3f2041512e430e60322eafa80c427defd6789f905925e610514a08ecd80a60ded9f1420b66f5a85c8582f68c14c451b8072b9f32122469a7e08af135ba33516a92c0cfd490e17b70ee003d6ff28c86f9e2bcebf4ca37571403f8c82ed27f20dd1044987cbaccdb5e60ff58d222aa199098fda7d5ac61fb510ca7d66eb19ac7a7ed9a06878818a15fdbef9a62afe2e0b7077f173a4f19a3454a213ad9070dbc6f07c040171f5fa1dbdc3f636e50131fd40eb09ffc4b663ca816f29c499e23ca9350749522b6ca308d8389b818dbb469877052ec98d53bc7b52e1b70bfd29565b27c71bda20061c2500f1979df2e15011ba595bffac36aaf168b9a5716e347f5f325f07f073cc4fae1c83bc88fdc1bf0f6e67a983e89c7aea43c2b53887ee88afc22d0544e11027126c3098076c7aa3628c02eb16f3ce17a608e603e0de3a0b11c035308685d710c61c93e0741b06ba5203f69b97e1fb4bb7ec87cf2143613b5ac6bff02e6cc2d8931eb9b555c647bb314d2333bed22ceabf8f59845b24ceec3bbd5a9a9f6299d4c3bca6789bccab305ce4049f50f675ab79d055d62e1da3516b203a0265056aabed84553fb30f47810bf546ea5c7f04d7aaec5e98ddac484087ebf2d0d7831994d0f664bc5a88f115d19b750eaabe38901e75f49c1ab65dc6b8e725cec59fa9a230b9df560f3182aef143eb38a03be2d04aba606dbbd6a5fd0503089dbce9c438f3d7e8a198002c4d469ef060ec241dd88d8ca3f873eb7c00a12c98498b8c2484015091c1d45b29845d2126f62688002e94c5d02771c4400460543388ec629b5ff2750c5fe3525c782577655c52d0866d2113377edd5089cc929fa224fce1363325d7e44d0ed5beae842d87e34c316d90ae97f169d081bd9745301a8a36ba0130304a4298b73e1a50e4fb155552601118b55fe4f85fe21b697a8e8d8a151e1d3aace19611d3542e1ce6725f12cb56ca69be6d6a3c3bddd9edc36ee92b9aa976003dcd0c299095c5a20d72b30861839f192de2e56659e967604d030f2484c6adf32e182d2e1504811fca3ccebac6953c83eae631df69bc1481f95b95280611335ebf7c919b4083a38a2d6dc386a0aa2b6661801d2668e680929ffadddf9798813d5dec9431dfc95b5e97bb46bfa15b49cbabe3c226610d86710820500c02c4ac56fa058f4c2bc1424619e5d67312dc136bc8c31ef9df21179b12395ef6ae06388e4a9d61532c7c91c8119c12625ab221f1d656b25ff2218808efaf0194cefcb5811427c4392cc07c594c6fe24e01b6c00f0a46543120e46eb3e07eb8bc50efe05dac61179a181f29ef07e9d5cf5296fe8533e26083c0ecbe486792386dd8dac286b042b973a7cb72d66450be04ddbbc6f6dbb99367a9032713b7781ea75bae9afefef37f1ecfed52f63fe59e1c53e848080397b64d43c08c4fd84ec75610a60cecf513531cada1b0ec8054bbb657eff69597eda88cf2dc68b86ecdd14822bc2c2ad210b764aac97d72bde4e413cea5208449dc6bf722566c33901b4cbe0e506246775d3f7dc4ebab8f38abffe7fa55662f3b9aaae8965145ac924ca3891514e0ca56d722c34ac47d00a3f6b630c428f777749d0489bf34dea1f21ec44247761b2a0b485debb38c4bd75ab10dd59cda6cea7767e74b94c65031a3106047cfc292e9f33c01658b245e9f12f63d5074871c8b8ad6173e383dd4851749dc4e75c13b031c577c2251141a6321916034a6014e91b36ccf610e043b87ac479f6f3d60a6dfe3fa962b13fc6544a39a15b11c5d2c5967b1edad2287ed30daaebc44dff8402cb4bc62ddc1eb86d234d7819ec6716904c6a9c008a86a6bc182e376baabebc8d03a9a9e38fa3699cd85e2f0faa42110f48661c72e4ffd7f9e3b5deec81f32f515b3e978133085ae0c7003d8c240405553814fffcab4b18717560fc5f206bcb5867447da42757d249f2f324bd9f3163283d36307e1d23518cd8923c85d15869b5e8537fe20961651038d7f8af2d9c68695504e301c2e9ba868d3d4588252ee6ecb7b01c3c92637367f1480f6f90c74035273bc880533dcb41d1f36a79cde306585dadfe27b4d0b127322b21169fb99e814841b962215a23c90fac1250b20ec4d990a6bf630072fdcbaad413c50d0bcc1eb2a9e99577d3ebb39868a38ff8ff0afdd0fde1dbd9c972ec61bf417e313ed448e1bd851f62ddece269a058fd2b83102254a72be60ae916f4b65660f828df3098c592a3a5099e95a9b0add6b6b8e5184244d1e27f1ac8e571b96f239d6911690b67d085d7f25f65c47da3d1d0508a21e8dadb98645e23abb5c1f417daf51a6da77753b1cfbf1302c09ad435b677d9a1841979e58969ff301ddc25800a41b949f715b24cd0c01136ad53ff1a630bdbee863243941e3fc7ad742d0c8b9ba14d4322e7d35541b4a5272223c9e98d6379cbae07c07b2feab6c4b32b15990fb950076919b370de1df2b99486b66f06f6b9dcf805ae7000ea8cddfcbe1e233e5dc9ef319d3f7da20dc1c93ab6dd3ac27dfef960c03170cef8000a06407b8488c7cb617ba00a7ecadbf7336646f750f50a9ae1dca8f2a38e779ab7565b25d61eaa9b8a2267a046b5cc1817aba85d4f1da008cd395c2bfd15bf719db5ac0589a31051984543df3db3fb2721237d75b7697014dc3832c216875be0642883ea80131580490dbb54f91e6df2d6c4caeca0400b60344c761e5295939fc48c3cca8e3a6c9b0408785f5e10a33d74abedfeaba9b3b6e103c42de5cf1c843c61b8fd86dadc6d2e89afd6db58b443579b7abf12299ccc498e514ea27b279656d960566256050eaed6093e62f70a9d20a383ad09c6210e20dfe09d2ce3c04a566dcf55f1ff3139ebe0a1f37afb6059c28c6d97dd3eb73cb9c2a440910d2a7b0892aa9bedcb268418e8af082a232df3d2d5a8b781bfc08a00cf523e65730a4d5e8e94344452c5316af888acb73619ffb483e281451bb905eaea6366d87eab844d9bfd567a9386828162491b1b28acc3868d2482c7cfe010897e56c1a4f2111502314820de957724c7343891e696c21dff807a97f6bf4f821139e2e5e835da18acbf80c137bdc8b4a748240f692b8f76a01544428f37a0284d8cc2bc95557a0c83f985273b225bf86788b7250597ee5f380310c840a56054c1bca933e9f40b354269508dce4cdcb8c32705969422202ca899153099b06c6f59d467db1dafb377c209548de2b11b5b03391219f6c6a4bab61ac38776d501d747623cf2cae5d870e055300ce4a6a351895c6352e13c8b8d3d66ffb0cfa0cbfdabeb467edc9d7ff45af8da3e8c7087bbd64a17c3f0e2751498c780211c314f363d728dabb26a9ad97d9ab2b9ff8e555339e9d082b22ee2d0709e363dec9eae602cb1d2653959a191af20b76d77ce5d04fdf15144504ca659fb1592058e138073e96804cfb0af21fc428b285a9c1eaa3dad8314c4e29cc51339fdbb5b1e3f454fdcbc5a205a53b4d5db8bc07c011c0fe1ecf6a5837c211455fb955650443ab35c6212458d8c07f3722826fbbdb56766f99929401ad0b700b760a3335db935b14dc949f1c11d9bfe5a4ce101f3d6108ea9813061d0c31ac9bd4d993e43ef8325036d40e3458502e1a20140a8542a15034345a4aa5d28f8f6832d9bc894cc0dde1c176d9395f3cb562f98479e26dcc560c862018768dfa8913062e4de6981306dd07039d574b57b2ceb2f913ad282d5c6b4aeba755a5956b01390bd52a22fbb7a0b488f8b762bdbaefae7aa9dd98b5e6dc2f914aaeda7ab9675a2a954aa512901289a4e5a596fd5f6a2fb697db0bee4bf1226abca6e984f9624d9fd40b9297d90b1bc3d99c75de9c658373d6891db058215c9608506dc13caba65272a4c8102056081f3b4b448b8de1b2bf8de19c85e29a378f2b7130c15104470d870c8462050a152852a04081e2040a0dca9127baec3f83ce67d8f1b8785e343424cff82653c81664226d84997cd19631345a046bdec6ecd1f9d12927755e48942d5a6b49abd62bd39f387b92d8276b1af5d3283bd5541f7314f2027b89bdc84a2925931257d65e5e2f3b945b4a2d2596d24a49a5bc954e4659f61f65a39031d6ac9bb765cca34030e6f479fd0e0a7b627c8d3f6c4efff10596a0eb9a3e27505fd0e8129d8847449b381377a216118b6845a4224a11a1883551893fe8025f20ec0bfa763530e8f235c1b7a68fcd579d170c41cdea49029e3cd82e3b27de1f061d688e8d9e3057bc8df97f32efb33055a4cc16cd534d48b375eb165903469e395bb56f48997eb84f099f940ff74d197db9efca0724dae8bcb287728c872b537bfb6a9fedbb795b3c2bdececb7db4efc857e41bf201f97c7c3b783a0f0bd6f9c15fc787bde9bc747ee8c07484e8c47488e8c89c55f32fff279a34b199676b49f3c49c2d9a27a54c2d6d15f3fe76498b27c69a14f6a6c63c614e017a80ee013b08b81ea0e401431e407b408c0a10152b54a8509142050a152754985099512952a700657f1d403a743a760b70a958319e4c9f9a9ab345f354cdd6c2353aa5519fd479226b84b9758b95693de2a643870e1d3aaef4aa9ca2438702742860ca942953a64c9932450947dcb2bf0d36d8c0623c61a2f81bb2462a9f5e9c194fa40d9b1c6386594c892dc693e973f3d76cd15a4b1af5b7315bb6d6ad4563b6aab472ad5aebe705e50c379f0137c3cf0cb9da0abdff0c5766009a214baf44ef4f96c8fe3358a933c4f79fc14765d55a002d9555eb0caf2f80aeb6609e6553314195fc9153917248f6af4f8064776527624b48005bf62780cd5937ef4f801b0170ce5af1fe04f8115d8c36e68a67619a7fc244f1221aaa78815fa078017ede8beb289a17fd62e6c5c9f4c2be78f1e245455522ef59dcfcc9f4f937993e2bce93a7ee974c9ff3ade9a3e27cfdcecd99c28379eabe799264ccb630eec7a080316fade2dc7f312faee2dcb731bd13a627f3d4fdd2f490347a7f647a34d2f46a5e9346efd7981ecaf46e9eba2f7a37c8f7bd2315c6fd90e9cd2a0e9a5e26f94af1ec10a31ea7c680108c00cd15ef8d624423f975e67b45f352c2a021d1e66b0ac8c305c93941783f727dcf475de5c464bee620e1b9b6dcb4d8b0d4ace4d0a8b072669e72b44b4d39aaca35eaa88abac2bc7953c5af702cc4c2c0b146711015c532c74ad49463a046311560c040d1ffd32967a6235d1686585b3923b36655aeb5657bc81ef265bbc16a04921a90d0be96d520abc108e8693542480d426a8835cbfcd4357d522f9a34fca0e145832b07971cbb46837459802a4e0ec5dfac307b587c0f78077d15e6ebb4839e2bbe07d58ef9680e2c15461057720e2b545861a22993070801e00e0b1994691d028dc8109e64ff1d9aefd4766c9e47f2e4206152a6395800bb37cd5f61feab3053bc889a3de8f93da87654fc8a8fa1490cb6188888e126830f32b86480c91004fcb04c86d8ceac94a21e852a007f1526cf146a8e95aae31f024904783be8c993ab39fe5f0cca3467164393186c3110515735fca085cf189a64ff186ece427732f85059aa29c8e072962a2703ac5739311982d4554e1031dc6062b8c570fb62b8c5709321b633b333543f3b486aa89566218e2d361126b4b32d5a0cb48a9333eb95f72d5bebd6a2b5300e8542231d20e8d87488d00182ce6de5c3cab582ad82ac622d243a361d22746e2b1f56ae156c1544e7a673d3b9e9dc746e3ab755ac85a4854405908aa0ecaf024885ae575e5869f4e7738aa32896e7ccdff3b5f0bbf7c26bc1749942306be6cd2cc2540a31cac4a9b872fadd7bc1749942306be6cd2cc274a6304aa6cb74b95c28d365e2545c39a9b8423295420c9e3397e6442e2783c5fc5de5892cd9ff44ee8433295ffc17c5720493947fcd1caef8303b484e245329c4604895cb02742557717258a9475822fb9f643092c90998331361cad08d4199d2e05439d59566999fd254c9fe34389a9f5e792f8ae348daf032cd3773ef577ea5a13173a0b931494954126989949444761250c9a7242bd14a3b20994ae189528d264acdcf0a330749a73c2767f6cd9048a452a954229d290cd289930454aad144a94245e66b4e9a2838186819ca887e62a0c963a5c2b852c2a0219367d72897465daf14cdc9e363fe8ce973fe274499be70bd70c18001c55eb098ec8738ce3c49f2d03c49dab89934cd172e2ce4aa723932c889d550abe107a65288c12f67d6a510839fd931e8cec5aee2782d82ac46ac060bb3c6ab464fd77035ea8fc2983c413c59788078ae346a65894b9e3c4294698e598b510b3f4dcdb27f2ae62c14ef9f9239cbc61fe68abd3c056b92fdba5c59f59313cb0902e7ccd02ee84e95532d018a30a1af869a8511050a56e5ccd02eaa25c09c99983383c9998572665fceac73665e0d357f7284c19170de93f1e3604633c7ace2c42a8ee738526539c7909a034815927f8e9072c332273526b4d9dbacd0edb8f07ca14bf64fc913647f514c11b02c4518c9fe34c09c86180db25e8dd0dd17f2bc4bfa375fbf73f32ab0103b83ac42e6c8254820918f4826a289761062508441896a30512c8cd38b9e17ae469950f2e478aef000f5caab6267903f1646ae57aa9f46c925ea4ae504d397aa647f12c8a7b272645065ceca89798a26da4178a630f099a22f9ee9098604429d2490a896a34a8e9f1c533a07aee2dc60a2d8193b48c81f3b238794aa724294fcd3ab1c502aea4ffe09264a3e8212b2bfe9fcc9e1c2b1ab383278392bc70e3505850b8e2d15b5c1c8a92a17aa723807aa7245b2bfa8ca0dc9fe30aa1ce6c95da938fe3b48ec0c9e285418fe3c53388780642c3fcd99e528fecae589eea2e09a65faa4f0c10a1f9b5761dee058af6aa8351a445dd5f0838aca9c85ee3ca54465a9a6a0cae5c41ac554a8ab9c2060a0e9bf7c7a2ab14cc6cc41baec0cd58f8551c30faa647fcf41c595435671fc63cc1caf8ae38fee9c95a3484d4d219673ceca01a4a68238c28f9c58af72f8a8a89f290c28d99d3c93ecff72a62725d9bf3cd3f20847b2ef321172aefc260f90c9a36b9ea08ae3affab13378b4506154227021fb5fd54f76d1990356718e28d39c9919635671fc5798d5c625e34f739664ff9c99b3fefd7368a4ed09e985081159b3cc5761f25ce9943f0cc9f39d3c392f09654ac260a490164d37668a176768c615a6f92acc33c58fa64d7ef3ba5c3ba8c993134d9e2c8df2e87876640d183974f2001129537246845cf62791b43f39eb95573649c925d95f34d578976a4832353135b6c6ce60b07e9ea946647fc7e73f4568a67ecbf74f22199fa0692bce7db3344f5ef3d47d1bd36d9eba1fcd88b107aa2b8024644b02c6922be96b357d7d8f48af66bebe27eb95ccd7f78cacf8fa5e7d6f8957f36cdecd1b526788522f885cbd50d1aeef01a9abbb6bb4ff25f376886df15c5ab2f7aa2e0f565be3d7bfb9da02ab50a92b8fd6e80fa6e4fa574a5d79d53342f56cd55342fdcba4ae3c5cdf9f8bbbb6daaad516feeafdf42429bf87dfb179d4a72c323963f4670d8bafafa2ce407dad4169db849171b870f08071f93a91e4e9442ad56abd4235f10040b3f87e200e43a2ae443d69aec89ee99342e4834265536541a5537941b5cbf121c79503cb096222bdcc89fd3821853983426573966a8799ca56c446aa6c4054361f2a9b2a0b2a9dca0baa5d8e0f39ae9c2039b09c58ee47fd6834baa92297a68f797e0fd8c63cf5a0da5971ee763a2017b9dc5dda398328535c9a29b2599ec815b34690d896d89ae4fa126896c559caa013979e5cdfc276f4eafb2a3fe514a5ac4f0690eb8bbf39d59432cd6a59e35ca552a95c75f429167d5af65bbf3471242247174314b627369bcd6603130283c16027be1ada121a8d4643b97a5c2e976bc58e5c2e4753953259a552899e0bc9d1459a10cfd89ed86c36db0926040683c14ca1126d098d46a3bd88c9160683c1603698e776905e7362cdd55ce8304c8e2e923028637b62b3d96c31302130180c0693f39ce73ce739d7da6c369b0d0683c16030dc36d0c510bf805f697b62b3d96c239810180c0683e57e918e67753a9d4e776dd66613436bc3d6666da0d57d2e8658f48548db139bcd669321f396c9aeceea7456a70bb2bacfca423de6d46b999c7adde3d5dda0abbbbaabbbbaabf32665e37a45ca75941b87fe9f4e7d5b167e8a5b86e6b465a1d3c3352af364463a3cd3719491a9a9b9b9799153af71cef2a674aabfcacf95dcbadc5e9335c8ec9d1e4ee6e1c8fcb94456014edab2d89fcf57ed97dd87467fa7dc6d501e712771a3a359773c13d71a3de2d1744910adae04c1c8bddbf200cb1d829f879108739e7b153181e5422f51adac3839f4a3531d7a35da211b230c07604d77c8c1d0ac69d4499ed00343100cc11004cdeaa0d7d62ba8038f746fbbdf5315a351cf964aca14bda647cba8b3306aade95d2b8346c551a25b424997bdf6b552482790d941cc959816c014e1850bf7de1a490ae904323b88b912d382ecdf3045c8fefdc285ecdf35ec8959f6924a9982d10f445944425425880ef4322ba9942918fd40944524c4f56a8c18bb8c34d18ac8023b44c863a411639791265a1159e07d2822b28741210d3013ac96b06f2122c2a0900698091f48e30358fbb0b40ddb1df601ac7d583088673e1864f78af0158076f6c1c02ba2060e4f5cfc09d9bf7e6749f6c345246dd4964d0d7b4d53ee916d4996247b4956715c96dd7ea9a40bed2988eb794ab277def3d2ee7bedd7fb407cbeab0a62bd49655c33cfb443e895dd2bea21973599a315d494ffc91cf95057231e56300262a482da2adf7ff463f4436d91ef3f4a416d89de7fe4a3b6c6f71fbd463e845ccebac1473d8c50505bf8fd47fe231e6a2be6fd4727a82d99f71fed505ba4f71fb9702e63fab4e43f82b50ca6f3f435345fa21e06f523f2fc40f981530e4f1fd4cc27e171ca31a81bbe0fe1425242490829a1e2f8d798a15cebf89f4a26b35a01a432194573f6f03b3067e8092f674889f20c25313a43552a8ebfe80c35813c434e18cf109573267486985071c2338444c5717c86967086a6549c2f9fcc101235e56f32434ad49483f90b2951cb1ff70fe19c65bde2fc74e5fe10ce5923d7c835728d5cdfe75f83fe9d314a5c23578c7f3a72659f652be3227528c84947865e3ce7591fb93f7df1423b783e4238d1961d728f6e1ea31bdd9c15b39319dd72c7e870b99fc6fa7f4e63cc6beda988684bcc6e748bd19d649fbfaec70475aa63747e9e74570962bd496b727745fbfbca247b5feb8ff52118c83309040f81f141024949cfb4c9303fce32bd3cd56f8ae586f9c9fd9eabc77335eaf534ea9ddeab5194121fb39c9a5e303f2697a7bc1345fb4cecf25ede09e2609e0b344d3d9d6a932b09a5fdd4e4c26172588dcbab81f8d91b9a3d3c8cf0832f6293870df4aa45c6f57e9ff77ddfd7f7fa4589dc4433585bc7c35eaf0885e34ec0ebe1dd3910abd72fa1acaa72d64896666d850e6251fcc0107bdebd9e77ef773d917f0f7847fc90d9f392b1237e0f7827f4327cb4a368e217de195f347b7a90b13396a57b1545fe75a5f2d15479ca8a2b15ab2cb3e8e2153df173f7333dc3f2fb6ac85651749f46f7677ea2d993e47bf14b96f5d952e5a9067f7c5134eb8ef8651cfa1e543be293efd5aa6ad549c36c5f1c6501a4e4bdb7efbdf7da2a8a4653954f67b632f933af180a4db3e2bc68624f9539246d88f93b5333dbc7b65116c3119336445395ad0d315f317b665a6dd98ef9c3e04b8847be16a838dc6510c4d0ec4982bfb7a6e89962bee6f5da5daf280501aea18c4d7b6dcd7abd5714e63187e6a953f79479b03b08e5c94d9c1c327b925cd19d6407408691ebf798077c7c33806600cd16f8de7bd1c3f7726c1497a17971e4644c86a09ba159368abf923872726d14a7fedfa7e1f9d9ef1cbdd0acf7c3b13cd57c211377aaff4a29f12742e1f8b2f79dbd336d40be27763395cbcfc8a9a659de575baefa14cbf64bcb03daab309b4e5f4d1895454df5a3eaea1b0600705eb868515be0f7a76a0b7ff7b3a82d1537294ef36d0c698cd2a7abdcaf6a194adf2f7a5e2e914c342cce39c46048149163d924991830dbff30cc8b69fd666bb3e8f4e4e9473174faf003e5074ef93b7d4e27a9ea785f324befacd7fcb2c9ec4952424bde2cdbb72fd3588a1d22e79164621e55c5e8150d4a7efd196e38abe6ebdf20de983d494e2faa3269c4889d99a56761a6a8a9317b92582228b73154101f2cd012e4c5025d105b10264194043912a448902141800471b1600b10b66c73d6cdcd598f73d60a2bc47dd46016881d54800508970a8080a801a10488234014016208104080f0a1829d0ab4f8a8f9a8f9b0f9b8f9c0390bc5c53f5ed6b43e68b78bebb5e565e5b57be57cd07c1cf151c4c7101f407cf8f0b1c34bf7c2d243eba1f5d47a6c3db72eb6ecdfc3d5e3d503d623d683480f590f233d663d90f4a0f5a8750922fbf718e285b6c7bab6ec4cb0f3826e267062822326b09960d6c4ae092d4d6069c24a13549a90d20494266a4d28d9b2cbfe22d88dc03582d708605a78657f1e371e381e3f3c723caef000e29185878e47108f9d075c414b647f1e56be5009427005db8e87ed6302c6c34707b4f078754017640b6212a424e8485091a0214140825c59d872055bf6d7804d03370de034f0c3042c8da5b27496224969e992b49636496de98d891b64fff4489d21eac874668dea20d1a1e9d4749a34caa3d10d44e1a543d359d2ac56954eb9b35ab4181897e5e9f5e0ad4afc54404a0598540057811a13afac6262072c5bb068c182058b152c54b0dcb03889c22bfb4f6002139880ecea72b1ec8fc30f0e391c8070d0e11084c30e072e3b5c3b7a76bc76c09c8552220bd91f072d18932648638ade9a3e3a3fba270989e2c104ae9df35366e87bc4f2674cd43d6fa83947aff3027f854f0ae03004871d7088e1e05202a70414259c28c14409254a1c51a2881230257c34e127fb43e007023908008d3f8d56c9016569e9ccd6aea5a4b5838ae31fdeb345ab38de84170420f07208c09cf51040717f3bd9b2d726d4b27f6dc22b248a31efdb983d4924d0a8bf582dd9a21404f99e3b4ed81890176c89c15eb0b3b15bcc498c494c49ec48ac486c48ec15dbc106b9e59bb36e70cefa1f1b24e72c142569830d2fa22368341b968c463136c86c3062832c020ea84788fd8cea117ed810ab814a0d4e6af8a9c17604ec081f47ec60c41623b41881c5082b46e08c8092239643966396e3072ca63c822b872b478fcccb45a24c2b94201c386060489ed1c390366e8e1953187427cc9bb731577cca7cd46cc15a445a3223ad98ce6b072d257586f8b5152a474d7a25ea1539d6b46860d8b9abf5ead58c8e1b8086b80d811be267081f45b40cf12aa2bb4043301942c91047862832c49021800ce12ab24508217e9c8522264666c6003754ae5b0b9d8e2b8693184762d862cc62ec6268898125869518546248890125462d8612952bfbab5caa970ae66296fd5be85aec5cb85cf4b878b9f8e102e642888b980b990b1eb2bf8b1dea0cf1656c8479043df22d08921e098a31267e9dd888497386f1a40182ffd302a8c59116405acc5ac05ae45a506921a50594164e5a3069a1a485acc51015402a76262cfbff4fee813ecbeb3ea857a2e7d2abd17c3d15b2ff63a9334412a9345a5d99c3cda9ceeb544f6e4dd164227960d9da544748769d1ff69a3ea8b73175603ab1d641e9bcdc93d22bcb6a2d69d1ecd9a2a16e7f7bdcfb40a1e55f28746f7b26afe48f7c911ff240de85620b0a8542954a27be640382ef05953127104459983004b58ebf8d09c3aed13f61f6b45cad039e745e2d201f9b55675a9e38d313cc999efe46738267aa6a4cf2f8832b08491ecf7d7556b030aecc7f248f57d36974befccbcbcbcbcba7a57bcd53fd280c0c3d8ae650c8f33c2f4173f49e19e3e608f49aab50f4ff742acbc6358ccbf274fa475195ca7bd133cdff47418a3fbf491402ccffd7619ed5533a529cf73cefcb53d6fa3769c3eb5b3a69e3ba87ef47dea8d93b5f84286f267de93dd2c647da00c1f3d62a8e8b03a3afa6eb30c6188f4cae73dd9de95428fa5f869e90b22ccb2f3ffdf25334558d30c61863fce2c8f3de7bd1fbd17b18efc9d00391284d9f7a42542a148539d3ffd3293c63ce66dd9817afea057ae339cf11c97942c23c42a23c7dea09f97ec6ac5974cb92fb63f08b5972dd4b4eefec3afe710c1493451704726957f78017e8fbae6e1cc7514646c665bef6fbbf59c73157af6dad7bd3be3cf572a636bfc438c801ef9a9df1fd7dcff3c2d0bf33cddef996d6b5be9e79bff6b8bd82f9fa36fcaec5c4841ff34df2c49cb56c9df97f1f7f6dd6f9a9ad896325fded08fa282de0bd47dae0652ba457b05ebd25d2abebd9f27df90fef7ea892d7634c1bc4dc3eb0306c064f4bf3174fd37b1c66dde5ae46bdbfe729f4b5432f5a1201dee8ba5e85b913d03bf625fe35f1bf6977bcf1342f924edd5af594b31c63dd49848232bdb31ce2fbd875ae2befac51efaf775ea00f6f6e8671598efece90d4669ef781e0477e7a75fffdd7e52cf3bb7cf19af7ffdef7fe34bf7b5ea0afb946fbb119e68f09a5e8d39bcbfd34fcdfec9dd24c4f39751d2df7943b4bc79dbe4b6a4d6cbdba4fa258dce79d9da57d6067d41c82e6bd8efdebdb7f93c4276e94e4b1b5f3d83580282fca7bf37bece07ff375fc9b67099278f8f44e1dffe69b6709feac5ccac715c75fa6d12eaf509e6aae50a62f811b7ae57e5e2f02afa2d1ab5bf3576d5a8614945aca14dbfab88ab6d4951705df878f02f0f1eb90c47b1dbe0f5f07f0f1f7f7e1ebf83e3c75808fcfeaa91e1bfdba50deefeb7d5b20a63c6adbccb447b63674b6998e998788b105c1fe3ef7bc7bafe7fe3538864cd087d266d1ecfb4de2c067ff7dcf664be2c06705f1d3f0f6818551bfcd8a731bcd95c4d66720fad7effbed33e03bebd9f6ac9efa1715942f2ae8958d01174e20cbfe9688770f0f76fcedb8c41051b27f0c3bc3667febfa9d6e6b0416eecfd88f5d38f97bf173c00dfd1d61f1efcb94e0f8f7ffa657a2bf677a01343be0336fe042a943a4e35ef386463b74920793a64c39fa94a7721447fc219207d71d2cf6874c9fd1db1f1ebf0d1f5b12c77d4c832adff3050a7adf7b3dbff7330368be240d03f0481920bef705aef5861aa9ec802e218cd0a8c5e8bc01778396520c89e0776fe805dc2b149e4dae28da67f2299b6e2993326882230e7c240ef17b2947591c4599cc22298ac66b8a591c892f231866f165bc2606b31833ca90c4d2681a2f8a864674cfafe278ef8920fb5b1d0f85056bf22963654029e05ea13c6f7bdfdbd9b7b5406ccb2b3ec52a3e2d6f7e858a9b333d65772b2382d6835289679950ce9ca52302762604cfce9a9ca90e5829820f9ea93542f366773603bfc78603402b8426ed45e927d7f6ece855d76a6db7fbbd9ef77d0e2baf3bc6221ba5d1fe8f09655a734f76b4077ea78df26447a3fda9ed796b04f4c5c9593b9e589bad67edf7c8f6bca146bf681455a3b3ff0d63a3ad6af4cbd8df6bae29b0a3e666cec23b5d6f97a7b646d8619fa82e20a322517adbcea39f96c684321ddb9e36ea0bdca8f51ee55f733a001b357b99ca181bb5e5901a051efce08008414879026ec759f62b6edf7195b3bebefdf254f14e7ba1e68f08655a77f9bfeedecf3486bd85fffd17e29c85d2f191a2cde1ce6ae8c14fe2a70ed17f6709be177d09c0d4d246f1472b73164ac788fcd1f7d8b18fcd1274aa539967a24c6f081a7d52c676dfe9e48bdf21e854bf8d555bbd752773c3cfb4240fc0c3e626d2a8b5fff25657de8f88f29ed645811b8e1f44791ffaba233a43cf00d1874e1d92e8003ff43a6006e870da98b3c6d3de074d6c7e432847274a87a87aea9ee4896200f8f8f1a9c3379e281da1173f74dad8896200fed0874e1dc2b4241df031203cededb4354fa119b4d16ee39b5877e8ea0e9d93281a6afebed0436b6badd87e5f114a7b366a23895c5ea2fcea7968f64c8f45aee40142f9eb81569eef4be24af63c89dc8fbb9f3f409d449624ae54f96932892ad5656111acd47552c4939cc3cd17d62bfcf7c507cdbf69f47e75377328650e98c095c3ee91d1462fac74acaa65ef5eb9efa0a7bab1ec9fe702ba65bfa37b9ec5ddf72bbbeeb56e77dd668ccfeabddbaedbf4c23ccf7b11c9e34581e5fb6248d4ffe2660ed82e199fdee3afe401b099e20cde9a9b5e79173cd5fc2ddf27f47fbf9e4d8b918128ba0fcaeedaa87a9fd5da7e9b3bb4654f0ba59fd232d7c78d760b6c740ecbf52ff9f52f1a43f4b450822fda192e366a6676b94bd0c7be8cd0add1993f95a00dc7cda128299e019ad1392b849b01c2b9137b8261ab3b323977999ccbe450641920219469e8f6fdf566600ddeb2cd95e409e1bc10ee1bf94026973b34b34c0e15c71749d35618a11fcd5407cfa1b7240ecf183c7bd81c9a81d556f8232a33404a5aceb41932a20254d2cc1c9e660edd42b7461b9f1d8a320394bb86996d62a11bd02d14a557a08ffd178d9e2a796ab4df2f1365db8c76346284c72cba7d7f9b492b6a2a6903b27f4d85f9be3dbfcff33cef13c550288a6ac5b965133ffcf0c30f3ffcf083678d781f123dd366d1c75012f03d33071cd756d423410edff7def779e0f75dcffbbeee5cef7e201836f87d9fbb83dfe721f87dd98322566725b95f1f27f9feda8a7aefd1681d169fb6a63c0fc47fdd3b53db8373beb487f5ebe0077e37c9073a7f9ebfe0e301f8ddfb2df96e57f41b41f6b720bef7c5bbdeade3581f6355ca9c9121738150e65e0feba065f7b4329d8bd7cc55e59565653c286d8bc4fb4308875bc60988c39bc31ff00f9ec31ff00fa004765c800240d88c00e900f0047fb0b0d0fde1db817d32071ef06f64ca0b5c3ccac450a9eea783d25e7f81a236df1f5b86d7ef84be7ad7b3fd70da8a63b39ff7074b13e5e09a61fda9b82cbaedafb8992c8bb76537d49695b9ac88d5ddbed9182c8ba0078b59d8e739078201f11c786bf6d2ae8972b75749be6e73561c48dbda894e8b95d9223748e9eb9d39d87cabebfe8df9f9947c4a483ddec49b78136fe24dbc8937f9681fad6c91334251ad386e719f6dd7ab929b9a0bee69ffe14288d41afb62dfcc655053fd26d35f50531ea4a20e6b54061e0317c28978100e031fe2b1da7a416d7d1fcddd05de0217e2419c05b555b65e683137e235c8fd2ef33eda47f33ccf33994ca6fba6eb71f99eef072a4486972b8b94296a93e9d0143c2d94d6137bf4b450564bda689151f070c036e1852e99c77d9bb1593a0da47c6bb400459adca40d34dfc677d6b6fa45f54de43d289753969ee28d8b91bb3aab779e6a5c9e7e95f62e8db1731619a553fd535c555e576059c82092cbec494e454712da85b890b72265eae944ecd5afc89f4697b26847cf3465d0f43cddccd35d5110b1de34f126de0466d3b9689e83ddbe1f9e11c9d14b0c8ad289a6e6068599025d81bac001c088ba3a018c3da559b5af7496a036d22c1592bc44d544f5441525d76f990d6ad60ecb25d73dfda38510c9f52dcbc260360acc4e81d92ab02b59ac9066599b256203269805cc92fdbba798350ba8cbe56e3f98b3aeecd3d686b66dfb6d41fb35a92ceb4d6e5b053ccf50df98d1eacad08b6de27caf78b1775fb77ab528f9892bbb68bb73b6daf221b55beb0f9ac2f014863361481386a830ac09c313616813865fc5096a540467a0088226380365f73b83af4e795727d03e1df822fffb5e7e7ccffbba94e1a74dfb9a28c31679a3c8f3c6d33e913951dee963fa9a634e9fd2e823475ff8fa7c483027ea3b6d9497b3360ada4246ce14832008865ea5ce5f8cc6af06b5d62e95653a6fb83edc15d4a0bc517192d0e2366902ca4023e04c342a5f60626448a0ac5761febe50d65c22dd6bf612d297ae017a492d37adde0c70a357b73f0cc3300cc3300c49a550087e18e31992a421491449d690e40992b421491424f924f9e119024ffce1100c41b7259e7e32056b60ec4a6ed19fd67503dcc1aee401cd5028d6eec753da0b65e9499f621cc8328927137701f55ed228307e8c4d8c4f8c53607c83b10a8c57606c9b64f041901482df18ffbda36bb60d8fccd404390c9935df0e89e67d300ccd7aaf2863c3f82946f26dc138f4f5a6f8be9bef53f17d2bbe8fc5f7a1df97fa3e706cf17db8e2f0f4f9ed520c82a78d9a9f7414548bc010fc36c3272f49921f68daa8a8f0b4ae46bf7338c0f829788ace2a8e46af89f2e7f4a6f7c7fe7887b984aeda12dffb4421a0f4a4337cf1472373343a47a314a3d1cd68a462345a311ab1188d9a28ddc9f376a3deb8505ad80f03f40a74107c31258a2d44d18528be10451c51048028c21045952886a2f145d50b9ed0f911518e674fa3193449334565804d1aad619cb3702c86bbecdbde57d42f9ae9e8d56c1b4dc12739dc2bcafd9efb1c63bdaa604dc666b33fdf0fca97eef9f1d393fbb95d5801b3a0e96dffed4299362cdbaf24d397cc938ed29fce12e820bde92c01fec1b8a675cc2833dea0127cf069ca6f0b65f8e1f9ba25f64f0b25e94b6f7ad3e99a48f70b2ad3329f666a73c9f6edaed11f08c9d5083e886501e46a042657f23fc695b657e30cc903fe2de5fec94269cfd267a5bcff2244197e3f69237cafb645698f7c9a3535a2587bd5b64ba4af5f3271ce53f6966d099a240fd8a4517feb0fde2bbd026a1bdab7ca5d422d4fce3291befbac3ff9fe54d6c959a7134fb9b97bbb5828c12a9456d62b9cec8f8d340b4f199164d7b2ba2593d44beed3e8fad39324f4d0f740fab0bb9b88ac75fcad4932f1cc538e4f77f5ea9edddda0ef74e5fdd477cea569a08966e7e265193ac330b4a57d72851287eb550ad6f2945e757a815306bfd1ecdff746fd116b6af0099227341e8003b64bfe4039c301efd225973f7af147f14fb992ef3df81db67971f9650aa4a75c36da3cd6bcc0698a1546b346648e28c2d50540f617eb4f76b1c10ebbc3b719ecf09e35276c50bc79a6b8babbbbbaabcb658b63eec6ea76a3d12a949566ebd513afad3157b269b42329c133c534ab2b8728fbb14d162d9945678171597ade9ef540512f19e55b6bf20d5116d9b9d18de61b59cab469beeb947f37695ad3dcda9ad6a76d49a7fc2f15ca7e19d0b9348a7e4c94a81a613e6bb0941f50e91169d67b466a0bbca0effa552f0315cfd1da7c97eb7b4c94e08b36678535b94d16d9f6541dce36dca1b5216b456b476b496b45d68eac2dadbd7dbd0a43e2487a648e2c411f7ec2c25362c4700ce370ece626a738860b4da1b4df397c23bdb2e70b50f6e3f68993bafa4a59accee2ba76f314ae6968e7b2bfad82516b53d6b6b0d685b52facc5b11600d6c2b0167716a02cddb430c49fe22a210e61fca1b0a71ffbeda6e89996aa106e504c71339b21a1f9f53e1087a19ba6f97b4bbc9ad7e47a1f88c39048c3e172381ca8c2d9749648a84c278532c53896ca53de2c199e72d0884c0638ab382e03e9c70f5dc9fe98452a9d780a064f8cfba2e0bb66d1b8aedab2fed6667b9b779230974e39ceff3bd32f7de8c4675a7e78a6780069d330ae69271c3695e5c9eeae942928cb8e63b72d0862100c4130048222088e204882a0e8da2e1bb532590ccf62315bcb6a8bc51812e105097509d90e208d011d40b6a9d1eaca6e31baf8aa0b173863ed9585a1a2b941e5cd37a8a419bd56f60dc0589d65612e97ab879dfa5fae2f63fc96006b19c500930ea87ed3cfbce9eb0e494709c500920e28d29f9ef475a774f6d8e933b5b66c366dc66c13458375e5dbacd20a85c3953f2b58f641a1ec6f1ac6b769afb252dad6f19f316db932c531dff52ed6be8bb5ef62edbbdba74499fa0e26d7d293ceae3903486f3a6fbeabad58b3ba9b746a4b8d8ccccd69d3527f42097e6a6d5acafb2d00ab2b77ea8badb15696e9ab35426599ce527904e9b448647f71c6e83151c6e4fa188771599e4eff345485711e1365d33c753d26cadb495c1ccb96457a92d9344ffd345aa5aced8428cdc25f13cad4fef8a894f724d5015c1a3754e800621065b01fbe256d541c02d4b06baf6418bf9ff23e48d6d85103f5213dc6e11f2653648cd66c9ab3c09a97415dc3a0699f541c22541c7fb0e62c5b049bf277cb046b840de77db5b646bb94a9d3faa7ab34cbf4feeddf356795de7537a8a83f397bd164de2e2b4ecb7c3a67a177d6efba10860f89205cafda47528bb5adf775ef7e1ef899fda20dfb7c9efef0edd7b6303441b65f73f866d8f9b60f2c0cfb65d3da07b8ae42f258fb6dda3743008220ae827f1af529b74facc3386bcf7ed24c3d8f670e3628ed5b46f3145b25d7ab3e6dd46cdf71965edd1313d1f50a654f1c6b54d6288ab9647f558f8c34fc91bd8465ef131bc9a190ecff2da14cf1a738e638cbb28f71f68217b412e855eab81b11d881719df2a675ca1f3ca794d6fec0f5aa2aa1bc6f47573ed14882bde1388689f4ea8a0408431a6198c370270c0b10863384214f8d108cf52accfe7dfacc4bdaa99c7d1e2b0ecd1f93b2fff6925ef5ce58fb6b0166180930d65e7dae4f929f94f2c60d322c6beb945b5c76b7b7ecf596258770d4552ba906a8ab5e52517f7c360d07d67ad5a04d2c00c63360cc83710d8c6d607c03631c18e7c0b83f14914a620d16a5075fce2a9da08c04ca5e0f9a6106419b4fe9455b5a2bda18efe7c09aef9c453a710cacf9d7206ba0f95acb23814671156bb10fe941b36bd671ec46038e56718e28538cd3615caf42e0b7eb556affbe839f5ea0fee4fb3bf3d351f974123081ce2cd9ffd3f5aa1d89ec958571152ba17a3b81a73f23cafe9ed2ab3eafe33e24e06a8b94fdf14f6d79f60f65b535664752a6a191ec2f8af7de0effa2bacf10367d4a6f4d1fd2dff02f95dfe9f40f9ab5fb436fdb864e1fd3d3686beace595ba559a5b3ec54a7bac63e78ba39d9b041f278f77e386491453bc652b93f87661c7316c959a4f386c7329afbf4217d68f60d77d2897f80b28b3d36ad694ec3b82825fed0f77f6fcd1c40f0ac11e632fc32c6f50afcd00c738aab34094f69d49b74e6f6afff8a376e90f68b281f65cf1a61c6b846611ae34a9289e30832a41c1f11ca0f4a794f64ff4cd3d0307eb7326dda9266dd685aafdcfd3f2394b8ec6f43d290ded0a8d790356e9b678a1b152b58a029172f7000004395231a0540003174562c1930b466940388410602d0b009b50c9010eb8dc74469ffeaced466d157d06bb2cbf4ed6b9e7eaf875fc92c76c6f7aebb9fc6c8de8b9b1332d983c9b856f0481bfcbdbf5974d893b9df992f7b3573b38cbd020a4392272479eed3701ce2cd598de24cb14da7a3a8844c7449452b19a201000000008315000028100a870483e168228671aef714800d76a85268509e49a31cc8739842c61885803106000000000080c401382a2002da1f5388ae64ba89ac390c5bcc9a5000eecc8e8a504c9d1d5c55a32cd239b8d4f247d3566dbbec5e23f78780f0f9404ec2b3950068e604bc993141deb302784c8e3be976bfee21c94b4dcfd0a951402be863ee48022a4dd6a771d7e7a32b303bae737d4de993944aa157f36be9e0968de5237b05b266fa0839dc7788ac1ff5028bbb1cc5ae97081c83bfda3aac3ee70cdafd1c0f3003f844fc348c01a33dcb55cf44751601f0aedb5a18a2d91a012b08ae1c580b2b84838b2cb976eb208b417e81ec975cd464ff407b309ff6f16341343d93b304be8bec59ff4231fba457fad203cf89214bb57e5bdafdd21b6495dc804b232a55eae703fc124721392333f695142352ad3971e5028b6df91b574633d50b447b6bdda7d477f5e0976f14ccead18811bb49c42a16debdeb54909dbb0aa202f62e2d9ebb99513830aa9f9f327be65f43a6a15ca9c68b5a2d8278a4e4c9482c07a45153014c7ea5a4a4ad7fd3a653b366fec44b7f262517f6a5a5dd7bc7628e32ea99b5b2ee753f9d22c6acfcc283e66499e82c9bea1f791e5468391261dca2e4c7f306a570dc3e961ca6cc73580a29e66262d7e84dcbab35a872e551b17753868097971b03f02939db70d84b5cc36e15f0d161390c1be1c4dae2003f03f4bebf025946fc30cdebf92b6ba6779ce07164e569285b82e9c13ba75b3abaf70f81e77cf1a297c303877dced71dede0b7355d05be27a27b20aef51eb46a731640431444248aebdefcb4c1306787b8c46e55b585eac5bbb51968855c43260ba79ade4d80b5682cb967eb9fe5ea8e15fd84a77d6d57f2814e01e5a3693e80c469dfa610aa6635dc9552019d2f178a92bb27e307b6c58f7f6416326691dc928811f599ef405ff2a43950836e9e75e495eec33a74338b904971edb41a902dc130362aa80ac806f0053c4ae19bc0eb922da43e8f0040f9a2e9835656c62ed8c607ced9340996ca1e86e9069ea69ba3d464fa85c97fb535b57259130c70195c4dd3bcaf52b862446e9f7a7db1fc12bdbd839e819098e4f3dad8765040e8a11f7861211135d71a96a39103e9c1fa2542f3ab202a4bb6c262d3876d2837fd01b9fee36c431075b2ff54ee3788ab640eda5dc60888b1f109ce13c047e88ab8d0fe1037bc603c55f95c9bf03c824cdb3ee63d9e5a9947ee6bb3891084a6946214f7e5b2d485cd2f362182f082e6ffed560462081c347f7c1cc1b1b8da914cf8c4ac2e7b75e7036fca27e21b6950630d36be8d5c5d9b6075096e2c27f3a8d78ada566742f36dc0273411857adc93eb2ade0f143afe2d13fbe8bcde5af412a58c814c81493a91be3c4549f38ce22d110a731bbc87ae0d98078299f859815d5ef6c877ad231b41966601e4b3cca5a0aa48691742881695eee9481c05cf8e76a79123d76099b9c8ae9256f017682c53ee1bba5f1b1b419bf02a74b6ba3952ab21da23dbbe06799855df7230e3fff8993e9057999e42a910dafbf1672efc079975ac2b1a83ad39fb8fd27a983dd1bdd6bee2ac8b1bb2dd7e9502c5fc0c02b27f9e0eb013cf9bd9e76e72d91c7f2428493a9b7d0272de6f3c89b3d760f1f28f0ad0b3d621ed389703005fb06431df0522222ffec44daf384687fd1bc0582e1eed78690451063a6c6eecd02b91395c34da64316951d788d8f51132a1801045ae0606f90d9e080cad44068281d5c5a95c305019e33dba7174e71831cdabf1eec8758397fb08c7c81bfe526001990581bc049446f95b021a1ba1ded237908eaeb714c39c320fdd65bde9946018c0594efc9218c36f5a54b08ddcc7f654a9d54acbbf611b680b5cc34d0b27b5dead1afda7546bc88e1882a27b705a6771e258717315b469296d7ef467c1e898e4f6121944172ad1aca6320ea8148620e9d05593f8ea0b0660052d8f6fbd792b518f9b6fd2d780ead130b99951ce96f6dc35d6f9750f4e4b9786bed59e4f4192a823b6d20f01f76df393d93dc99c90bd5697c6cee5a2ac7982b177be053b090f42b594de75a31628958006152267c17b915d26eb11f2f15a915aa46cff3734a236c155f86c79b39274681df30d81300ce9904a49ddbe81a7d1af908cb6dca66af7465be34e88a81351b88ea5aa8bd2d5574e5afec6306927f91704d132ad39cf62bc8d11dad44741e886eda445ef247fb531ced65770f3b79980661367c3df87af8d75277a3640c85376d75e590c2c7f9b42a067cb7a26f87f0e5677aecacc8b8b56a567ca65b3c0bd3bfaaa93ad0c3d18e76e4c544044311a49fd523324cf579b050e11c2d1480b86252594298bab4d596d08df2a04c8acca123555ab5b57e3723c368e8ebbc8b303643f67d62086d182859d91ebb3b121b4095d42e7d653b55e0f295b1a1f89e0d770642f03acf5317900ddf8dd0b79b3bed95c575e4586e2670d025c699e91d33a51121b2d8c004dfba2a6cb1c2f84e1dc078c2284912e80c3a6e37496783eae82d1492b66ce57cecc475751a5d9a1281a644fd450a334dffb84e2cc828f19fbcc3dc33208f26022ac6398cc2e02a9040fa103fe82b6a4d62fa9ae8fcd86a82d78159e597c531a22378de8d69684776bf25fd375dc4922db1d1008300741a1cb9b57d388f8e1195d4994ec327be3895c93fa66c1b3f7bdd6371f018c01a9721d72d3ee67fc753b58412a8a85b9d03c061b0f52e90148513feaf4d017839d2093d12f96717bc1a2123e820787c9efc64c99645c5386c591d92e1446cbb2560e060e2efccb2cd7f7fa52270012f40cfa2d2e1a6158870ad8348014342ef7361756fff43162000155f0622838c1cd340bd2ac2530d1b80d39e59dad77a846d079ea68c0cec73cc52049b854c6b39d12fbeafa5b404dfbdbe26e2de8a3dca02180d86fd11880c11517ad282c61172580ce5d52732219890e6e0bb5e599b375b406eb64bafcfc29d63967065d692ed73143290eb164edb111fa6a9c0ea3afb9fa9519cd8544d9b29fa6a449610e35ec36659a4b5332fcd27d4991289a0013e39cf6bfec18572814c8f129f95ce9433521865e8ce940994edbc67410930d4ed83fb2a541f844af541fea416ca4c303237fd2df072d0fd214b7fe024b8c99333ff0972d2c1db332cfe5bebff91d80211278f12fdd7102a68e00df0172a388a94c4741b951e20f9f68c6f4461c450f052c87084530b199ea307a7b67cfc32ae29353865960badc648d9a50ac4d3a3a6728934ce6550087aa48e31f0d9697d5669f3b6a3561846f72b0fd80660010b6b9b1d54b3f313babd526eab334a994305962cdb33337fa77fc459309441de8a27a9e3f3ebc664743024e8308da7f1c3fa5f6e4a65b1a56458fea9faf6d1afed32a925307d04a234ea2467624b2440a8609ffe669a246ad4b65a880bb5441a1f0380562d677491d50e967d115bdfb526f314e3b2404dd339b8854bd27b6c388f7a45ed1e66877b7d3c4b5fc83eaa7adace192599be8b91bede3e7b12f1acd7680cdce9d5e4a77a4333baa640f68055b1330c628a2d0a2f86e041a14e99e813777f2eb41729bf40bbfe35a4355939a4278dba9ca1b04708c57bab9177e12f2d591f0d433098b18c42b8a003fd0b71a299f050485639242557cf34a7e7a76316fea844eaf6b720665aa125826ff08ab18360db4651249de20292ed61115268f55a95923c2bedfd36bb93e36b143f7a25ef042d095b9360839d3a3fb8f624ae3c33df6c461bcab4ca4e587d2a2a6e704b3cd3f6721bd27b0386871cfc9b83a653d6d4113a3f6b53f4670b06795cfaf4b85eb70d00fee6d146cf20367f2d7a7e7d9b407cc123c5414b80eb2be81d10001e3fcca3822b4193d3770a21838461e3d16d148cb40570397789e72c3cf6e9d7077b50800947fe2f38ca289b2241cace258dcebada2b50911ee671c7027883198839cd8793a40a1b3a0c413978546636f5e5b17b5b21f55865d7bfdf3dc020b5e20e3e16781c2f847ff8ff996b144361dd4719132014ced4d9fa8b7ffd51082ad649143769b2b80451b36e95fe2d51d45b8df51ecd192ce513e670dfebc80ed59b646dc0321a0b96d11a8f2c8c6228c620cce72cb30993a8986bc85f08554b74a7128151bc16d64c5ce6dfdde88102c668860a589474f7c68e790118db54e05213d12ca4df0b82bb79390abfc00ad2c5a4c6ee59670826edf484c8dbe7b08f329f92912cba6156cf7f1ed54d0743083c7a00e529fb4c757db4c9070266cd208b29378a155ed5bd571e5051e18f1c6ace9823c65da31334d278b0891e2ff63df5bc0bc1f9acccaabdec6d56b06270e5dab6fc346230898d4c4d958d6959c7773244719e03c5a6433c0f33b929ac12701d049d741e1521fa5438c689524472e9268e625617696edcab3c16b7489bb0f71686f18ff2a528980c0183eba8293843131bd68b18364d1a28313190426e9d401a02fb2ff4a23aaf1461ad458232262b3f1caf4963520755b7284d052f4838a4883661c8cb6a3e77f708477d359727fe324194516829b163c2bf8edd58e8f89e8476ecdae4f690e578e059d188f3a1e532737278f8a8a6872beb66deebcb94ae97d34c89c45a3edd2cd9f24eedc94599aa1aa793d345485b9146b25c9039d912d3cb57027e1e5187ad173278910efcb2a16bb32be0befa5308fa27ace0e09281015c9d3f3398a6cfe5c9d77b2d7fef347661bd9597d758a5a47d572892092aaa370f7aa611b48383f057ff76929bda9353ca12b488b7415ba1ed43e343b9e3d4f8932b4c0f3b850e8dbfa2ab12951c8d3307a9dbb0dfd4385cddaf720c182529950a56b60acd76277112a64e72bb010ffbf5bd102ad275db3bdb6e3349814e3ef71c6cd94d93581d225be776441d6fc9207b75cd25fbb9f671faa95d6d221be33ba34c166ed4dfd8092603b8f468733da2e3dff4b8b54e5927b4e744893e2b77ec9131791239c35c023f5dd8a4e3baf10ac4923c785c98cf3ee511e48a02465fd64b4743c025de6a749d86d23734e8fc167c812141e7ccf9f3a8b09285c9574a4416e5d2ff58851f383221954c051c3b63fb4fa31aed7e9836eff6f87a90a5315a214dc8a875bb63e9e22d0a71c7d44203954ee38dc7c1b9bb176d02d6cb274aaeadc844b623dff53edb6f471474994d100d768a31b34f6f49e2b1728b9c5fdc79f609e966ab656931955c9cf40df00726bdc70da16b2937242938834b7a8e4db5592773f43f127059091fb0119bbc1c2774f86448b5a2a54192bfa1f9c8e8bb8e149d12cd86c2d8e64e13c86c8e6c8e6b5519d53e3664015f0099d6e42c6a0d32ddbccd0867231b5530317340de033629f3b785b225f3acddfabb02389e0ee4e430fed330ec1c2172ac13677eac2a76bc3f72ec597aa42588ec8c0761438b21a29151c33147cf5dc4c0bbbad169a4f1d163b7ba072443ec53bca85e2995cfb15413a5519cbb3477f103544deb67186986f7cf9b46c05ad6177a8d9eaa4aa3bda891aded9f740693797343dea1777efd510a8943a8cd6b13ff47bc724b6329bf5a92c902901d1652691a92f3cd61e32b5e8d03adf638492a02023579de7d9d1e3bf1095d241f958ba6a76ad204e97aff6ea5391eaac2ad354fc6cafa0aa360dfd1866fd56620a91c128bc632dbdb2fe4fc5085a9cf0c1ed7b1f2faebe72ff18e7e9fb5d2d903e41a30b720179abd0b738e840871e7ed0417d101f601b1c44836706aa5c314eb94b9fa7d375076b7975ca23baf1861ad8708d70e1c036dc7ca37c2e01683e5cd034ce6814340d0755fd6ba5f33b316e88ea6d08c642060ae149d6cfc11956d8d29c5fbcfd3391e46e6992578e4e1dcfa3cd2b2c9ed1926260163f81c9fcc598eb87c10249544194408bb2911dd4e23333d3923eb06ca0957e569c8ab495341202143e1d1b72c776d1c86953809519b8fca1ebd58b3575084c7e13a734277724823cc14274cb7b1a5536de1996d39b21dd9a7baa8cc8b702d11dfd6e09f23fc442de329a6b6edffea5549800ebca8f15a2a6171c84e99b8a602a4e5b6037a9dff9284c5b7dabed443b1124106f378a1d3d3fb1d6dee5ccb7ffec609a22330e6efa3a138ec98b276b594b6a6e9d870ea6f14eeb59834b97a3e460410714c1bdaee50659be7f8b5b085912789d2f5d6a7124bf34c914113f68f64d378d02fd2bb56770e724bdb86907cd0afa5d0874193bf77382cbc84df0d31aa8add50d6122b159c579b7eb44e888de4457d5b56595fbb1b911b608ef0ab5a0573d54b382cf64707553b96eb951dab8c6125c8d0e302f4646b14b4095fe61e63192e8b1a512d48582b8bb6057239f18c1632772d042fdc5485855af188a92a2c8e9c54f8a0a2329e9ca37f26e098123054bbf345c97d8aa6bba737e83e9ac0e74c9f46ad0eaee2f4bbda2c63cce342a69c915125eda824d124c4780701a38d000bf2884bb0980c1816e2ab5f4088e31f46071a1d51c5cf8ea9fd4288ba39ece03ec53f1078876e4e867123ab3cebffd512900345d61c7a7ab726388bd99c528ee108cbe10eea1b2a07bb04257a9880a959428702f5e4b57a942e5084a0953e844c2085ff1a9ec640999b9825e0dd9caff7bed244af7b230b521ff2a5b96583c03f0793e0e2840242cedb538ecf6dbf874f9d9b13215d5ba2b20df9fa854237289592c5486fb55da6eaf36e943f7b4e5b8da98fad114fc48c9b87b7785668fb1035b715ae406b7326fa1c09cc39e8ef3b4eccabc29a00a5bea6d81c8015c40b22b42700b39995e31a0147705be35f81ab9749b7d733fde53e6a6787fc5923bd220db824b827bc3984bdab706667895007c170275071977ced7ba4d2d6a843736e0f3b8d6a136e8185b734545ddbda26f41a3ae60bea99852218a1d8598679f12418ab67ea36ca2d8b5c6c56da1b1247dcba9dc78f5771faef73f8ab1e2d9928ac2293be0cf25ffa7d06273daceeeccd1abc556c37a5ba3353a6ab478d4aaa7be9cf17bf88423d5f09e1c1dbb43e1969797101961022ba91264412af038cf0cb83232e169ad5a81ad8280dc4e8e3cd1c7783a363d22639e827e6136d467b4cdcdc703cc0f9891580ba177787c6c1a0502ba3b24006b98eb837b7fa6a4da0d426727896cb4263cff64f32147f36305c44bca25f2aa48b4653ea6b058eab63a755d536453f23d532434b8267150f7523b03dd27df3091a8e6fc2ca2ca0a2b777ecfc3ae76866daf5949589d313b3bcab65958eaa202a69a82ef308e1e4de3173a65acdfc881f4789d9c3a2b9cc087b10f9320368d52e01e019e2a6d591973ad4c1f5c1a6d92b2ad97dff3251293b5324c6069551919405eb7aab9b814e9b9c602873c1ff36a160e76690bc7b474164143adcb4c04492a650561d98e325cb7837f5260747428a54d00165291133443824249a1b3d6c5aa9ce6af035cb8138c17ffca1266dfebd75460b46c71209ee8aefec0ffb0d98dbdf9665e5353e97743eda612f2f9a93b54db8afe9996a038e7729b40c53fdcf89526386bd1128d23bcda07d5e70f5d8cc84579eb58933787d0971daada661188604cef7377de0048c3ac9c91ca5048be97a964bf7abed0405a56ea4d67b6bb6cbb0f976dc445bb679b46fafc2e303227ded01780aad98548d261dc5c4b0622ebec416919b00eea064c26f4895ddf1de28ae4c60edba0711957ad08a36d76b467f2469548cc80afb97e2d637c73fd8b4cf9cad57f8b1109051def98479a6904e1e19e786f7947f90237275a92f185c4b36ad4d4d7cea6917eed6121874c157d365ccea51bf9dbfdf81042b7cd60c9eba1c14c7dc4cd6c67c2f73f5594fb4b25eebfb6f132c9cceec0bd39809430791a9349aeeecc64c40fd0eb74ff191bca5068bc89ff64d4099b4ccf21cb39a2efb3af814cd152bf6d178fd4b66cfe2d79b383db14da666c5f9624894e8911087a493f75e186823aaafd635b363e621238d5ce418d1f4ff3ba3b17046d2ade0f1dc8dff5392c80fefd6b6e2b078df426f43a0a5f7fbdf636a739a23ca947e8e8a88875c5003153419effeb2bdf9b8a837aa94e0938a6412ae209910cf255ba4592827823d1d0b0a0e5536ed2ce284aa6374ce657808a9cbfc4d6498379896da575b63b1d5289f1015673ceb79f2916c6ca0fc1d261372df6bec751d879a0a8927cd2516a6b9b8668c6c33e4df7a568893259d3aa84c506d0d1ac0f4a4a7750cfe1fdbc5bc7013a0d65813313bcb10c4914a96340f7a3d01655b8105ae9c489a96c78d2a3d18723f72d3e5ae4b145fb834340b5837accd50712281214f019a48b43fa9a4fda635e60e044f135e75b5be995c9f3db4aaced2477f71af73fafa7d6adf88cfc9f31ff70df34145a3c152ecd5e8d96b1663c6ce0f385210adb30ec6a68a9777a31f79f003b82ff639a4118a3219769fea674803ca452fa553acf55786eb843b7d3a254539540101a8f2219afe882a8f5723f52efd1b732d8d7e5a70cac72475f9b3bc5b6a4bd0467eccc95c923b2d421c5bfa21497464d046276d01eca782677041ee44abda38bbf6133aaf572528128bba8c2d3ec60176f47a31e6eaf6c270e9646a08a28843e378c3ca3a34f316ab9d44d20d11512f16a4329e99c422681974cf9e720b33a931314696f62c55d3ae8d105638b72607129d6389b56cb58d9f54e350c0aaa8c80dec5cbc6a71606784bbad8ecb4f80b98b768c6ebd84eac481e15234d814e7ee654c0f08f13d1740c2c804ce56dbdb431e675c3e01ad3fb16407dcf190acacb32e1c07328172981bed16b2bb2a146b431780d0846238b543202fe8ec3f5abb1156b87dd42664ba7bace6927d2a4e66b144c2048e833e7b24d992bd4280dd14ebf8b7b3115594d7fe238f03d21746367c5b04a9ee57280bf9dd79d80c16af87cd0806c21011a2fa0086901d855a0eb6c2bfd6685ce0ba3abeb4fbca9ae1b65821319884dcb0f6e33dd939150b545684cc9e001a41859bea5e65579a8f55565c5856fff99de25006938df236a3a5ae58be81d3e0b7e314206b3ed4b53323865cc1ee7b3cf055f6f0042ad0bd3f313a4209fe06e6d0c6d6575899f496f891656ae1339f952d40ea817c9ca1f186c93f03ded0027f70f0ae816e44b7ccf7697cd743700cfc34c5377fc6643f7afad370d6f38436cb1552195dd493274cca9bf25d020e1f7c44ea57dcfa0e4755462a6542121621f823026d285dc3d70bdcb789c7599dfe31ab9c44ea1d8ee2188293e20c4feb0021423db9b6fbb471f0b0c567e8aa08e85cea6ef32f4a2c4f598d5d00ca3257f6f48b45ebcc96d3502bed81c8eb7d3e47ae4e29b87798cf1242f989b444380d9a4f5c3082a98589a34c6435c4e0bbf5f3789455241e6125471ef5b2cd3629d1492fcbd05d1893781be1d9fd73e05bc0fa08916d09742a6b1f76aafc20373f3ee1104a5dd4bdbe3a288be36af75382e8e92457955e0d75a9a26230487b0db1afe6ad640b91a4ddb12615d0a5673da20db94ceac39a67d99f177aea4ce03ce29377c9aea8094aa4a9a524105458bb5dfa476943c2261b97751d210695a819ec8add51a01683a458f145c367ff050f93605113ec11db7b34dd21e1ef2514e1316ad88f83987dbdc08c86ead4294b30cce32ad255acd1c0cca61aaa68c9187e52cc8127bf6e0c92ba3904d0549b97c3f2c6ebd2f0249118144cb1220291bb055cee5c3ea959fc32ce71480252d884af24055b8e5414c39591cc9b7132bbc3721cf243749b5366192362cb791d2ec1b755ed20517d159d3d62da1e145ef2356b0c3e730c2f2c8543c25e9f49ff87a3580679333da8d510d4168fba091df58fa5011bf3c4b14370c1df22f2bcc1f10a979cfefe82427ce691db487449357cd831118616d45c54bbfc379305e963601ca59382add0c225bf5ad85be77c1ee703a0925eb2757e4743683a7d133583330034bc43b2ed104ead06bb93176f0500981faa443f5ebff6ac5c8489a2e17d5cb9b142975493d6d4e75912ed0233c8a13f5113ce951c4733c40b849b792375209920a4da00df178e8e6c33f30b9ed953718aa0acd2588ae4d764ba6c167c19702805edb063f935a2fc0777dbb7c92da6a5e3d78f9c53dd59b32e4caaa458830ef1e4834a92f3f43025fad779c00e4c55af995672b7586a0b53260c266676c1643d42b6ea458981f84de79349df39e140dfa1f1cf56695c2e9f4cdd39d13d6954715142fab844ab020037b5ecb43c0f917e099e823e1f4ea9bf54cca63f2a0519be649eac3940782826ac1628cbadf9a868f9867e3a32a7eb631b7e85d4ad92948108d760f223135d4580c67db1b65db8f4cd6c5570b8c6a7d11053a63434d22118217f9509647465490ef7d3a9a548c9cb19ee563f51db68a9c1ce539b0073a8b8e90d9e3b2f578b34ee83b84707b269c77145ab7c9774d5838acd0774a547ea5c206ed5ba539ad04979674f96e7516d7db0d66e2869f034fd04f40e856f64c1e3ae9267fcfe27c8d2390b9bedb0498a6d10a4d84641abdc512b1c4ac96c916d0dce819de264044474459b8ad41f402682283e9ee5a14bc84830fa7b02e1247cad0f96e64c50e762f8811c20cf408c571e86d9562811e40ca116d7307a66ceef53706c854af92a6040eb03f61123ce500903695ef5c0de81eba22c6244de0fdc2f40841f4303810e978c95966d76146b37c56a7e3a2d772619d0dd4d9c26ebe231d008811c32ae4abcbe3710873039638882205163b8a2e1207f641869a9483bc70f95f17f4d6482be20ba2221c3a45dbb2719d7867be3c11638a4bde00d73a2666de9eee6ef12618542e9da414a31b49564d6bd09036dcc95b4305bd583dd6981ebdc5d8bee084403e3cd7f17a9ac418919d1d05d3d0a5ae142f0bd6e044a7f7392118077a53cf45add0214fb16d0f5ec2c372177a23e3d390620ba4eee8b2e0f4741a1c349a640f5a83faf949cafc9494eb85a23d18972eb6911b0db9971e4d305e40039e93c53f3f0187fe50f01aaa26ce263826070b2e020dc65786230243211549fa42b849b503b1a3b9e787592993cb9e733b0465706105270ecf721d28db1aa438dbbd58957153ad54794912b76188848d2f3f05c203f8605315c9e0717ede874bded459e28a6e10a9fc422d7b45fdfbf7416723da55f05ade50a5a2494b822048dc657f7da0a7b476d52dfd943f1ae166d56d3466aac2251f2ba5d8215df9644c94ae0a87cfc2e4ab2ac36a1193062e615fbd55e357402afca2b4617013d5944e4223297c5e6be42c94c1a8539a281991120648678720f28295c23f1470228760859a2cc8b7619416b2f77850d40f3bfe05a486a6e469f195c6c4a6f2ffe362e0f7599faa819a41ab5b36ddddf7e958c6830bee98e07ec5972dccaa89eba5c36edca3ba1f46b50a1efe5b5ecedcaebc88e95ad1203d29d428496558d2c695ab05364d9b150cf35e7e88bd889da56e3d4e2d4978b2d75e6ddd0ff8c8226e52cd02a77f65733738dc88b92aa20a038d32a3ed023eed2de4ec7b6bce35bed900170eee09119dacc11f8946f7663387c3fc7a604034ba8beb4a4addd67b19c4e3f7e967e34ae8504f1e8cdd03514f7a0ae5ae6db9e6b56642cad5029b3c2bfd16f38825d0127d5ac3e05c7985a75a7800a9ad9062d955a87ae9de66485aaf80001c6da491b5909fb765f26b08e61dde05a07369e291a7d8ee0848b2c29b10f36de71e98445496e4590c16b96bad2decd3451dc389a1ceee6431053520e2bd65c52a4ab9dc64a572ab78fbde4098ba9b9b064eb08768d201afe2eacd75e579f60fbfca1d23fdefd01208c30ed45eb108a80d201af8536ef30681dc34969b65dfc9781d4d22c4287baf414c2f0988ec353b54021c1004331ae832471e0d9f98a8f5d2e50dfe9f9e243004955953817450c1cec3ad92c0e3b0372a43c8600f0bd7a7861f44bade9498d4e7e042efef99169833780a336dc339b2f8de0d17415653a7a01f0dfd7e2487e9990faa61ecb8940847c7114f95c74e07c1272051242a4862e77164e9e4c2448d98ab94f6038c03580e79d5008e9e027819331d9ef3247e45fbdb49845789465294771bef51f8d004dcac53dd31305380cc6efe81c28f371cf0d2ed2a5106369c120df6fba8baf12788856d293f629d8f5055082bad348358aa2375ecc3feab691fb31ed10b2263f6215cdda7da1ac21bef0796c384a15a32210c9b0e65a07177b327aad96d8fdb3d8ace00f27a304ef1664ab535b7d68f40907e1899240f7133be79c0736176263873c5d3319664560ca66d3dc44587930d346a5f45fb4fcae6c7d6f81b09a7d8312e21ec0ae34ccc7f23d2132c1b1e1136268502d8917cb367e51fb5e1e5f181c44296396fc35edd3b365ef84c53af8ac44cb6c95274030a2c33da141b4f923d574b250a7de661ab8f09d0f74039dd777f2f4c9b6c2cceccff2bd44990400abc8564675e517996b721b2326dafd61028e5e9cb188a34d031aa9914aa774a88610e3f9b5a759b6a1cf38d98ae379d4fbc40ba9c43534b2e77765025c53f6feccf40dca40a2b6af38a773a2a5109ec96d119c84ccb4e540bb61abb33cc967941ec6f65ab0e4d8550d0c0f39842a7fac308934fed5586a9501549b405932cdc815213559215ac81bc9d99e459ad192169d06ca336b12314036142b2385fd8181a4195a64170d1d9284f87b988c678efeea588f0199c65ce3f19849909a90985878ca3bc1ca7b0afe75792e48900b6f9cb3b370128a20862e2e19e7f34c4d325bd544c528e0667f35c421e3db83556fb7561d65c0c57c487176c15a569e0b00436ab177a2d58dbbe722c84accdd66b7e678c83b9c000126c037052498f794ed5f1f8164bcf9124871aa3f06ce5ae9a6034d0072d6e6c2698caff2ff4a7a3b34ac28889f2abdc8210aaa843d866cca9f5ca8cfdd3d27b3a0f217dc041eb5c4ab081254deba207aa40594ca9e674627ea426b8be01555365ce585d7535c7616ec7eb08731d3e156c58a59da889de6a2ff3248ed3c087ce85ffd6390dc832479f52ec40b1ecef41d8a9a4bb9b4d9d886950ae8ad4827071dc58d8ea62536794d29adc28a333c954850a4e62986bf448cc988147a2b2c970c023c1c227fcf74389fb568f5a9c32cbe6ba5a003df0572254aff89ae024ab16d1c5541d155604934208c6245977530a7eff4b570d7ca6dcec686558c12f0a31fee8773140b7a2283c6cafb45f9c66f8382a386b5bd511433140778389e8f1c3a10267d6cd02130c5ea1d72b02620d95b6483e00b9fb19f52d9005d446c061eda90823a79069126c409f76bcd0c18bce3c68ce713b8e4c0bcc694d65d6848c11f149698b88a7e408ce2f26c155ec3513b2f07f61c836cca206bd49a95a8661f684bd879abd33af9f320a510e12d8969631a9bd4e53889d2e5416356e3966272b3921d5905e1422c35b940d8362e2b8c5d711284d5c549bc496cc392ae511a49683a44fa14cb3a8d738777aa413130316273555370580d7febda7f46e112ee231ed6f4a31c2de2f18e43c2ca299c4e282d733bc8743d3cfe84a317f02f0b301993002d12eff8a80ad3f41e5975166e08dc27a02f827b831c930fe70b680c2ef471c4b270105d609d25000a98cac8d11105bb5cb861998a632ae21a0bca9e8c8ea492f7c9391a0c2485061a69b8e59d5d9732d42de52085e17dec7389e5647cd08f357b828dd53ea9963ff108a6c209dc0adf7aacc13c9060b006cbeb78701a23dc1726701b89b29e6244dca64db006edec88a7d9b5139db8a46d4107d94cdbc684a97d514a9e729add6531ebaa73083033343d5c17895a188af53da5b3d452c2abdc1acf227e395f0a6294a637346c7c9b0635dbe8c056befd8871b7d02f099dde77b68983605f50b80eade7f069ba2ada62f8aebf4bf8bfa0f8d1ae4d3233859fda4c17bfb4fcb6e6f35429c11e6e650fd4c4067469c999f8a4ca94543f6ec3781406d6c792f515755492d11491321097057ce08f04747194bfe86712d2f9eaa991a01ebea00636373217215df046c416a3d008e5ea9a6a28174f2180eb8e1453b0d61a4b9f34f1ec46f72845838e97bae9a63441860d59644b0b6e0ed4cc69ea2b6eaed2590555ba7e20e74eacfad46b9eb4da8d99a2a3ae2ca9cae22692226a840368966a5ec1049ccf35c51e5a622abbb41608601cca19b8f310f459c822b35dd5df6c1b49b970298152568669fba3c3bf30e268568b4388a48da93d8205d155bda4c1147360a3eed78213dcfb800234c67756b107073f1c7145e490add12885a4b689d22b521a9f852f5d54acef918bc410439533504c227d14291610910445fdfbe027f3fbc5fa780c5154b3d536f2beec381364c47b29ad244a43e1edb926b9a18468af437895f5c61a2934019de616de5bc0493483f7966266e6a41346924494ea44c7d99afe2ba1af78ab92b648fab892afb83c8cd98f8d6ec875d7b40c2befbd9258a2350bc14d5bc5438c646a32b10c933ca197a4313a34442f0f51287280e7328fec50e0e54f487441ee1efbca93a5a11aea7548457954ca64f95e233f56b95cab03e2e48c50bff32350faf9b99e903ab183447cd25997c2945b591e23cbc3b920f586e3a202cd62797be7f46696e59fe0b4b733d7ddd6b21393bbd24976d40be8597247cab9d588e1f81417807840bc6280cc24f5563c398d49bf9d3a97b542e7fe2853ed818795ed994014ed0dd0fd3cba275279d8cfd0c9371003cb9116b99aa2190044de990c90c14d2d991334d921c4445f80b85585f1c5bcb17867cc6d382b34d1ffcc555b6c5bb0ba80e2810300557cd38e15c052070e7b045b4142454064602562a002cc1ffb754cbcd12f95f6614fbd16e203e4212585f7aec79262f17d49e647e04d79c22985b9f1b1c018dfa7f0005dcd3ba13e4a8cf6a5c0d85d881598fe62a07ec434015afd203467bc8dd6e21a462ac654323a8aa38d3e688bb75e4dd6fb809f77f455da9d352de0b2d7d433b0b9b483f6b0fc71a20c75af73a66a617ed2ceb814420b3379b78121118cd0528b997bbd58924875619888112d46ff88b4b21a2e2c017b4d792ea61fcaf0496a1bb545b813a45243309c541a35aaa95891853619289dfd59a91f41984572b8d77f3c9b63f66474387a97b080c6243086d020bb01f579d1fad0ace7ec98cc0a9d53e912896bb6f37b2465fde1aa6a1797d7b2a979fccf9e30af086422a0d2da14df00eb88a8f04526c3b75977fab71a0d658ad103075abe6b4efe45e44e345b8791dd454112b22d361f9c143022da5422be2330ef23577ddddc27ec14f0b54464e2514553a40d771e38b966ad2091db9a9c010214df6243151272c5700ef98e618dc181d5bab3781de7e50d7021e93ffea1986c0c0ec3124fc9d5485ef680872b98bc9e29640f31c7da2a7d3f0bcdb1911cd09ee2e093a5f5d9f69902cbe554e3a51b0c1c2874dde2b52f362bdfc535f00251a9ede275afefe7676bbb28dc8ac148c3ff36e807904f5d3b79e06d4181a5f856e8e81b84d8f7e0811085881034dad007c93d09d2a77c1a9c30d59f965e9a01b5920ccc17e4bad7bdfa4c316b7ce9a0fd7deb40504c06a6a01ca292fdac76dadfb9f46f0f32ff78b8fa070ddb65f253a49a9cf85b04a6d9619ed67fb7498f78d73b5d9d74de259add3790de452e5907f05f00c81f1b216a9da28bc698634908681b2a6b2116dcf9fb42c1f608bbb7c80493267a284a202b2db4942db0eccf7a4c86ea6c027e31d2b12d27626f46455e6dfb5675ce556b74b38757a555920790fb3dc3743150d73694441a1a529b09a7c958154ed4d61c3c77e2968e4018052607171843f753dc297774a58b47b6d805d04218544b9fb01a3c171ce3d0fa91b3e352d58cda2d89b521b6d8d403d802708cde711c6ad0916988c2cff24389b1602928da0e2731468f295051673f895a325f7995082eb2388efce7c1652419da2a6e4aa06d5c3d70fa2465bfb1282938f8f14092950380e822a9391d40f62e4ae9dff0814173b10d238b1a4f835780ff7a5ecaccf41391112a4773676f379ddaf9b6f9f12dcede9bdd6ee4aeb3eaa5227f01dd20429e10475776c741433070fa3a3c418c4372208eb3f970062a452505c8b27fa68c067d74c0f70e6b3a1475171be57f01f0867a70056a97bc40a5580a3d50cc258e2902adb403cb3911c026aa2ffd45168195f8aed3d5f69492942e588877e6f0675918cd47199bb743c3e2cfcbb5edd894bed56d80f0f98ca8c1b86e13b95d210f2593ec837ab80fc8fa10584448e999e68a1423dba89eb3f286beb0324fd3204e0a5fcfca4368d0da4503bf9c71bd496928ea7419b3f40ac85dcda38786b903d8f07550c18a4b9489b35b2a0bfcd0332a961799757f661906654ce005817200b190d33dacb40f6166a3f28f53a95eb1d794960dd7e2a928199b7d33df21527eb71d350806fdd59d29cb9b169c5dc0fa252210690f796e74c432f9ec171fee92713827759a7bbb0cd7826792025398210f6ee2a1a2c9ce7639f0a2c2bb0f7744fe1c041a477ad5af22734a2e2b76d121353d8745b89092fb025c7947181d55f42b2eee0b5a7b5053170a55b96803ad0363d6a2a3127ab9915456d0a7a4022fdca0aa5fc91349fb25b4645bca353192f43c4b1f5db4c3ac9d8c41696e6a0be7e2abef44c50d5307fb7608b402018a4e8801d256c962d2716460600575f7f5762a374095e4227a4a700294acbaba69baed01732943c15f758c69c21f4d804f56c5df503800063092be427fd34385e0c7b1df9fa99d6d429919fc7f7416c898ee8643c936cc38396958a9c8e544cb9aecd2161a309b0437899c11b7535b026772859583a2305a863553ab02e0d701e35e0cb97fb352e87520e75e17f4b895ef1b905cd3fa049712ca635eeb95a0ca0565a0c52095d52a06a50ffaab55b300f943a2a4214f21812a741d23702c16093e4ea9b6379c885114440fada79acdee53c79c0105938561686c0037980276343e0953ba271094050071aafe217a91fca3d009750994dac3483544d8a52c3e92feab6eff2553e9278928a5948e22da8af5b41ce0b55745b9cd35a065bcbba34fcc40b08c0e42ec15ed6fdbd8f3e24e1c417912fa24f473b9d4d83c549d7dde2a3298ca9194b0ddfa5416848f6ad02bbf8737493eddeb36d49b509e43cc59a46a8537ad972601343ca873228c39f2e0b55ad71d8b1e63f1568d8bab314d37b70c29d99c0e451deb8e837751360524d0507f93eae98418eafb74a930b07c0631762ed744b641b16b1726cc11e960f76739a08de532ef7ec6a13e7ebd5dc651e164b259ba635327f1c8ce0c2d2c34f7cd78d2a75d5038226d171e39c481c840a68aa6ef261da91cb570c0aaa3438d7de6f9ae9da9ae3662b6e8cedf853e08d6a25eaef2ee7bacbb7eef0189ea111e3727279788e90f69c2d628c62fa0afd4d4677a5ed0169602c2f0fe5884cab4b95eca827c8bb698cab4951765fbf74214c39c82c2df3cb322df69061ad0e963a8af4e3dee5aa6f3ab039345f725617ab1477b2ff4cc204ad6cd21d6ad6e1695a9c42eb2e0bdd6c6898d1c2566a607bf6f55355dd4592100278f2b6a29fc74a6e7e56e6ce3f5ec56073c491df3b1a08512dc5375d5eaf423dbbc08bc1a724eaffdea87310d6b148a127746f6dc3d3e5a4eb2f38b31bf4c88bc1e8f2822b534d51beb82d46dc23f1be349668056e04533bbfa55c12f5fcb0a227d74483e6c52025d3182482f7c485fa0b1091b19cc8e375a469b0098cc1eb1dab7d9e6b7133c18390dc07bc37176710da43b3e78844376054a8271eaa09170e742611143b486912d1ef7657b708f227a96951940b93e37c5e4034e927f58c221b8eef9c4faae5b8e835e3864eeb07d2f51f6efcd0faa4628fa6e1fc49edcb889f1b8e39f2e14faa228e7edfe4dd89043801cd433ca7689326185ddaf24edf7aded5e3e08873a4bea3c27b63bce91a7f52a9e54cc732d5a2862ab42dd69134f628742c9ffb3e3ca715996a767c47ca47d143eba9bf4d0bded68028ace5240e327114502acde512ece1493538d2f8112de48a33112f4c9f8c4f91c62ee8018995ed6407ab551bc6a7e818bfaa0374c821d0c9eefff229d293d85054a37b4307caa1d162d483f93354840fc751d1f9296a113d453d34928bc7293ec585ce6c0bb799bdf429762ae475bbcd7676d7535f2edba649c3bf4bc0873982561b2d04abf33114587b0d743dbda3b3264f99b39b986780dc95133f45fa0eacd897645d039f42c06e22ebd673607c941ae6ad9bc39181a51d454b3c55649cff3246d93deac2f7d8391cd30dc88dbdc11fd4a39eb22361044fa99f629ced97fd81c30757913a4f9844fde0e5d9cba88c215e5eea28229b0c5e15907397e695dc8f43ccc0a1d2942603040642fd143d6cdc4cc51c2ea9afbf5a5ca8f28740c986e4e475f953bcc61fb479ea93e607fb5db1506248cd0479e10bad80faf2d237beca53cc3aac860ebcf95f435f909712d69f8012266f9c0e5e63c8462431b806479178e523fa22d22463dcb837addb90e355666e488e5567101db83416844c1d3f6a6ead922fa7da77b50e897c9d5f4c61bc990931245ea1e8c0c367ebe781246bf8c3ce470422b90dc7b1e5e43f998132c4fd3054b4cc806b56c037583043a9add953d9392c23b323a85c419fa30767fccc8274201571fa80f64d03b7ad0fbc47a61430acdbf2c6979c88d183187d42d5be6a53d281689a7b809a23a85729b13031a8f6d7ae133c2fafc021490712d14637e5337f585a4e9d2ba72f85afa947e9c0a37f5f13834d7f66259572f6335544ff7d6775772830c2e8f61dd948d70d1c6601ff0e87de2fb305e365c0265353449b941aba5be360d363936cce5c4769360a581deb5279bcefbd98cb7add5d01324486f8b226994315cd1ece41a2405e1712d57e6784b8fcb5417fc558bb2afd25e89f2beeadfde1a4cf48e11e4cb48d0550c4ad2ee0eb1c1025adf98f553603808b2c52a827e7c42abeeb67acdfb150e06dd1d7f5e24cb68a06d584d92ac686fe83095f56b4990456c16387ff66d1ed2a1ec6b32838db78e02a3503448143ea0727007715d154af07a8bc9bd845948a75f02288a57f2bac03a7f9d0eec0fac0b17855cdaa0a4934c90af382ab6767c18e6dc31df4b83d3e253e2dc265d2c974c057bf112d1158d167a4412bfa8498fcf2cbdbe4fe3949bec45a613fde516427f1d896a5e047f4722ef8199adc4bfca451583960128723a4f438a7bc98df50e5bce0579472f592e5e7b09e6ee218bd603b50c66fb4722df47ba032e4fccc13ae2dee24a2804eae453f4728560e30a5c245ea3d7a14d1c919140c3fde6e7193122e95d70a6886bc9f05844b851132afee1b718e7a42ff7cef5c558e32ad8e542f603d612c343cda25d5d16aa1646e197a68b3c3d8234a347eb8126eedcb7fcc5edf0f3ad713c12b73a7f30395d769b0caded5f383f0e564f08874e357c39e510947c0cbc88c9dee58d97b3dbf08df4e06ab081d9d1f545ea7c14476f7b52aec2d4278b35ef6e3f53a3f50799d06afec5d3dbf08df27838b48976f75ec719170fd2d4766ec74c7cadee9f941f872327844ba3aab612f54c6096bd9c7ecf5fd46e73e116c64ba0729614f0ec7e5b314a1d8891d91d967ac1a7b6154385d962abd5170d94f1d64b521e2108018c156dc5cdad3d8bea055824536fb59ef30b3add12d7dd73a94b232584740f1052b6f1e72d9efbe46286b4d804e8187d6e92d58f064777d44ca41b9449983ed29ea5052b5217eee0baf527285c162f41e9095b477be97d76231c2fca9d1e56b6bf4cc57771f46401c46ee0d23920ce3dc0be32b0ae37a4e183defe6c2e4f92da505b6a10946e407c66904c6d70c189761deb1e500c2257f51442548c3a824b68e7ed152965fccefd57943f4457a3033d467592f66e51ee392719b3e907cb18dea2739843ae1df77de7af12b74b2ce0665465c4c99414c27f0bcf69ac4590f13861a5ea1633f5613795b5be04099faa15f7aec59b268cfd173aaa009888038c16c3df52bfe4c5715161c15e1f71668d08f2e6727fbd3a21019a37010bf65550d73a24869f5ab0982bbe317360d8bb5ff180189e106ca0234c68e06889f1edf3b597e228617e316c07449ee0c43d68f052a60f487eaeda9af6294c014bd710caac4df4f4c462e04e6b5743e4eac4545df818ded5e9b927ebd1cc160b0901f7201daff76c5f87c94f3627a5b7b878d2ca7c027deff4155fbae727da827db64cf2992d9b10bf47ecca23801ea607b4ace41f1c09ac31dea535581680f8dfcde88bc31976e73403e77cb4e15cf6a4d9e2355c7e7b306e065b41747804f08ddd3f63f76a18b1d4caa7b2411e046bf145bf4eab2d7ab64a11ed864f2aacb90ab719625af54796e8a0dc600d3ed12d9553835403444b39f3e68eac4e71e04fe3e0dd052b4fed5ee65aa28daaca9eb9a871999a4c7344f0ec332bc59447240bcc193252a07220d7d4ed2253d86fd05779e89570afba0e9657dba7d5eef0059b5b6e0654ce09423488e2e3c5ccc6abd75babd4c8888a9625e9e00dde99a7a99cdf4cfadf2c717ccb2d7a5c51f6201edc95ff25d206c6b5748812f59c3e48ff38ad2a1668f009dc1389561b40cb0c29e59a6605170ea4a9d2e740a2bd9623b3a17f20a612b756bebb04a3002d3507b9c39ad5a59ecd8de7ddbc516d2d72eb946b9e7b6701ef52e74fa44c05dc2e5a19e022e8fd0b122eaba0eef9f81d0c99dddf463d771a26ec1aaa6a3a773e0141e62eb7438822c2c86d7d23c66f3f37c010bb56adc0b1716583c890af517f05118204a1950871a385ba37bdea070e38065939edfd50d96616c4d437aa66177384013e522c9e40123cde09a385d5513f2a277f68e8f0967c62825f6e2a3c8a0f509d416b3dfa0c35091ff220146b76099f582b1b5d302f43d5be1f8ca11a007caafd5f3df9a8959b3367a98f8593d4055f6aa0df43c43f10b20abc1afac4250c4bc3702474fa29f950755655cda869e4744b1981f2b4d64d61ef78e39509eb88d08a6bd82a0e295fa24810bf6622384995bf32d146ee4b7c7b227853bd670ac4c4374d262f746ae195dd7aa198c857e3c9268e241deff9e1fddd416341ef6460f659c0fd9923f02f1b2a76a31c93e05d1cd4851e8d03ee43cf70f6131b5d2b81489bd27e1447db5b0d02d198bfcb76662d6ac551a065de04ae94eeae9ade7a95bbe601d3b9bebca2f612f492496f967cd04d71ac2b82554e8119bdc99d7d1241a6b008d080b86f60753c61d422ca9b1d137e7a560162c4330a3caddd10be1cbbebe5576ab603ab720ca0e6236d79b40eb37855fc2e950e3c4df7d22602d4c4e0c91a6646b879bcd799076c1456b43e16375feb236d156dc0116e63e2b0e54cbbcb4d11a0f48de3456b530fba69cbaf99e656fe5fb28a547c72f34de075e3ba603ab77e9ae7daece3cd7d9c97c49804e5ce0be0f6006e92730bf0f4da9f735eb7ecff08db6539c0df0cb26f288419a6ddd59452c67846edd2b10691d72b5188e961faf09beb1443e56075733463d9b5b4ef00051acf0db8a135a11271cd1ae70a428cdccdd774db75cd660b779605d831f40cefc6abb7dd78326b9e586a921df3053e5061a8f24ff55ab9bfc16d47b968f2c032b4e3c2b598e7cac3d3381b2068d2d16cfc5daff60e956fcf6bd716cb8b57c56c95f6b4f60b537bfdb5000a1b60cc1b5f260aaaa7af5095abc0170c7d8be86741958df145d1ed147b1adca79d807e9c15876ca02384db0c6c8ebc75ca28ca4d820ba86791c9bd2587f5e111e4c57dc608f648b1d25d8455bf6cf4f2c9907b039713b78bf2cbcb14f954dbc0d9dc6614d93d946d00698c56b9f51e7825b56b4977d87c10522a43f68b9e42ef9679b4efb23c3fa26be5917d03d5c48f27a6469e6992d3c3f3e2e3a4b5901fbab1cf870cadca233197cf8b8b1582211aa741b4c10387e89d423309e36d4237dd97ff25f89d7ae370d8142e91d2ecd834bc183239ef740afeecd6024b75552c473b03f745253c05ec2cecec9bb750436f69d93ab368bc1f724b128534a2c883dfa516cfd4b4fab2917ed06ab6a13c21a0aab4ba7eaa517374051a21525b91535a41c318885593ee51a17580e66859554b673da8ff34dc89e2484a5c4a2b0171692be5f5d204a0f2fed0cabb78f78c06e15ee7df9560e0fa5cf8a70219ea6c4b675d36aeecc5a40cf02526e747f7e51845d096a5a1f7f134e264c10fd0b8bacbc079c7fbfcb03c2eb0dd4685bdf7003555f8420f4586c5ad0220ea93b175954411749f11884b6627e8f19c57ead6ac607053d24bd8e8099a184618b88b737ccf43d901e42cae0fdffe2d46b998e7ea94e7ae144cd366a96ac02f60290d699bbb7e9d158cf9c4198ab5007b56bb63ab3a6af232d5bade6a8bc7b65135edb14296b9c4b79ce21e172dab3b1976a4404317eb77e52bc0438c6084a4a83146200957e76f3576ff92927a30e55ce092e1e6251dfd40d561d53815c0978d4c2274da4d04ff33fa430ad11533c0964a5c9e9d980028139e4b4950add940ee68d23c0ce76283973dfeaf0091ddafbf227ebd32094565b1b44061ef65b4ca9c45576b5bc9bba8c2e6100b35c0792d0ef203e34a7a308654be09a0cef50a4054c347ad0f50df5e75317eefe4bbce0d4a9e56e8aef11b595e281ddc71133804d1dc1d6c0f00a4742585dad1d71cca0274e2b178c094bbb111471e797040c21b42d97057186a2290928bfc584690743b45f27d601a964815f8348125a31efd5b425890e263b2193ba3ea9580c7fed787cb22212688ed95fd632b35bda28ca245110dbbfd164e0463708ac201fd41a032255383e1c3519c055783b1247b3cf50772868d7858302848bb6da5a4bc45d6b01e3d73a647e8a469a27f989e526c50b0a2f36c0e8d028c4b8cb7a89e1521cb35f95453b8768584dba78caef9046809411763f24c1809f20543c1a14097d7f4306255fcc37c894730f85c6c7807edb081448f139ebad37887586406cf449fb3ffddb3e465faf904e29dc031b04e4c63150e905cb9c3ca94d69d7672af8caf25e02d1ab1922d91ff1fb3122fb1f7da2c055a60007361191a3c87bcee9a547b78edccf137851fcde433c5d004c0744875c1303d86fe9d79de72f053b618218f2a4973eb3d1a1144629b7f006bce84048d2c2fe4f9fa1bcd9af3cb041e0036d24aae78757d14de71d225cac69e541e4d0ffaab25ea04474fc7cc6d43a21283c8d53a19c724af0b998446a0e861db63f95f9472576b8132376bb6d3298f46f5a67a97f33ab0dbf36bfcb6523e2ca441ff45a8d846d0775494b23b83830cfcac4ad8bbe18b9c98021b4fb2f42c6f7b14eb367a7ff6aa2bb8984a7062323f1e606d62b333e65e4cf83bb9ab27f804eaab939f8c1831f70d8c1b64f5b8e075d1d49fa9c8b5508a3f7adbc1111dcd61a7280c7af1e7a80f7a29b540c741e92574e5357690a53e0755a0095e4327b38d311fa2ee95495b4dcdf2f7e774088a7509febcd5de8bde1fa98b084fa11e941dacb147d71e7e86b667abe4725689d25ed6b6cb4a64cb3d137815d9b61040aaf0411e57cef804a2f0e7e298120c8c23e87a2c3bbb957962caa09513a7d4d1f4ba2b94e8d6c41ca4d139aa774f8353d07b1c225c8e60f7cbe87b55c5645fbec1e4bd33149900e328ee783dd82a3a244278e003495cdbe7a0322813170dba23407bb8d901b5d391a70388f67de09d01afba8de62969ae600833e2bc2bc9c9c5af2e3691f537659fd00a0856c382a6af33f05425f8aeec350f466700f241ec550abb0627585a216588a70461d568594f29a67902dc0249a9a836ef20907307978ba94756d0f3f2c30259bc08a0504d700a84d3b6e7316aadaf59785f958048eed585cfb94c00523cf54ca1c85d4f95f8608b099b36aa56514aac15033b33362aaf258972bc7909df804a09abbc6a3dbba7b71e5c741bb8acda056615927a81a12a5bb44b0c38aa5db1dc83d253a720d69f90daa27903ac6adde9381b9513e51c845785c618365571b2ba64b1944a520df7b37d073e1f48f416f2e41c5faa1768c8494823403bee8961bd5d6707becebfb7d9ebdec2f1bc24e323bc1b274d305cc186859d4538683b01f08a9d20b795add74a395d739a0f12065122c83fbbd4c63842d241db525d4cf8f9ab831abd62900e376f02c5cff334d0dd0c06da9f08529413a1eccbc27c6ca5265004e886b19bf599a2919a385ab3401c0447595cfd47296ea7399938ae61b4cc1ebcd5ce945c6de8f3d74c2f8c596bd9cd1f0b2a8b104171c30567eb13ee7a483c9e640b13a92eed35fec4412d5ad16185a6954645c24ee238979b47372dde3fa987d54c87f82cfd671d233171a73b406f927353a9ff9044bd1087a141eeb3d418c52e68e090239730bc9ebbd416e58d893367ff4f44588be4b9ec58314fe54bae474ea96ec176e8400f14af52f1e57bac6b680c67fa7a5b17424be0875f706f48351056351c6781ea0eccd869382428718edb24cd6b119dc608d0be4894896441a28ef7276ae815230a383fb36c1df8b3fc13da5e85defd71871c2312e8f88c1fd214f9d35c819dc052bba99238e236965ccb2a709cf7714102ba002cd90d523797981c25374e5d64cc6affb7659eed1e7c40282e04a642aee08dd717de0914431181a536e6eea3e4c25d15ab2250cf442cd99664960159c0dfa6de719cfb3aaa8f9388a73d1a5a95a55892d2fc677ea661004350511cdbf8d3ac6a611922b814a413c108be36ea31387836c252eb68aecddb9d809278e4600ecb3529f537d8e594f35c1569471eab176f3e5883c6440a4439dfdcd81519355c780246101d036a7e6d52279a4e4b30a412562dd8e3a44216eb44ec428f870bf8617ce024a97c2972efa6780e2055ece826431b909aff64529fb173fe5ff1fa1139d57ce926c87a285edd1056f8a5300ca63c3835b16419af7035e08d8d562c0cebf6f6a2051d03119d683e0c5a0acf4b306b6dcaf8ee9729d05f5b1957d038c2af7b6fac080ce4e98100f6b47cbe79aeb3a779a57446118e4ccd69e2ecb0640a58414ab7a1b5b2ae9adba6dafdfd6741480402ed9d80a0dbe9c34490f267ef2d498d7084af1fa00d63166453886bba0df5b26709fbc028205aa087ec2aaf16542addd45d9147de8241bc32896dfd7dcd7d923d8612a61216c9ed428f1b723a68350ba06b804a5f54e071a0ec889f2dd572f8b9f8ab54687287b9d557d3868a41b05af5ee1a30b9847f4afca9c3c646e4d7d645a9d1a6f4b6970db88ae81db823332f75e55562e0266faa87d03236348476fa0e229456ae3410a35f514eee9cd70399f776ad970091bdf1ef92a372e6cb632d8fbbf4e9b2fc4372c999e4e25eeb46acf36124da3294bc4a7e0b4adfe1b24eb8ea19a524cab86b99ee99ecfc989b8a1e4aa939476a0d8674293d8ebdb8177a67abd089d44a8a79b34b32f3a33d1b9fa49be859eb80882fcd62678d44dc5aee708f11069cde845b27c7b65bbf34b28512c286fd964e7e65d89e11b2027512d431ca35eff7999f7cfd3dcc63bb55d995cbdb94c06c23f62acea3735c45a5fb5195f1c2d614dcf54e6fd8a4fae99970dbccff0eb8a9762e551c5589df8aad314348f03afead27dd3e5356611a9912cef86c537f3123f91582328e4d9aaee7f9a7906acd654742277a7f05ca845c862d4109355f71b166f5e4a844d1f010b9309e9f3d7b1f296d1c27cbd0bed54bc9a398cd7e9a6ab0994c1570a22993314e2ee1e87780ab70a1c5e0c53714ca8b94e985d79cea3456af19fa48c39ec3125147b2c87a7e31a63fe25327ea0b2a0b303bc17c4bb4de1021f5a4e795abbb2f1a4f64733cf68686527a76065a3feb6fae9c897c2c09f2b42760e1cf17422f10c5a76f66376a6ac74d2593a09aa4590280c7b483fa6bacef0ce917cf5e32575787a84f8528f2904e21b63619491e36634c9b0575929a285764d263a196125eb0fa996f0d46162fd36cd7db16761281a5ebd6dfdbd8b8dbb5cbb7c847648c7e8369ac7dfca9a3ae63232f8a79ce54c69a98627fa443c4da4e16c5b498b783257c29e7434b93e42feee8f1bc79570ba15e6c6189aab53018585b6415ac8f95b07c7e9a501a3c6cbf7aa1695c4a7aa6c2e264c6df523260a1cf68f0f1402926a6a795c8b5e5bc2f7042d0305310e2d0a4373c3086451b727a5d9b54d4598889fb283fff65fda9b68b44521b195d7cbc1bb84cbfcd1ecc8f4ce21037877deaeaf20eb931dca0cffea454a3ab9869ce6bfd650b43397c4e3afe00bbeae268f0e55cda98eed7cd5986e9e74aae14f800bc0e96fd25a60dc2d6b6b59c7e8af754fae88e6395c5c180a8b8621a12fc953f533d9272bf8e72a13a58cbf039eec4086d2d1edd799f5a68e9d20832332a05f13a27cb000f9b6f5bce3413f7b64867a7c05a6f649fd3dae545455ddb8a66c506f4f585bfdc408dd7c7e6b96c2801b61a31decc9a183930419fa5493ee6fe820d85a996f2835ecd3d5329f5919b5bcfd9eaffb25eebaf7de492c59a228a45b2557b531636fb4f48e59360ec7f7c4aa4c37951fe0438d84573a3f6ccd653f1ae0ce9eb12bdab98e30876d0be46bff6c628167f9030ce54648c64cc4b51c02096ed20a49851aeeb3c680d3d8734435deb18adf3be6bea6edb935a2124fc5160cbb13eeb55e57f64231d8b18bed643fd90474e3e2a4311a86f269022585562fe0717ebba9f6725787d309b5596d2709a6545f50ac599727e2971bd43870759232972c7c49fadf906ee9dd411a3af87365dbb2d1ea39c41682632aa5014fc93acbbd2a8acd97720b860f25c9f09fbd2e2c1c3a28818ef6dd23820effc0326f93b46abdbbc4a5f38e6cc99fefb4f0c0177528aba2ad1815465e2e533f8ebbe4f8b328c45fddcb7ab7fda4827ea83e86b621d5a0e1fcc8cf02b758f1b472c5e35807974b1d7cc9f5de7169f0580d78a4f0c8fb0d8e766f938d7691fb7689bd225a9c824e82a912ba9a5898652ebbc37b90cb79899b30ba6bf90bdd32af65ca241d2885834c693ac8b3cae9a635ed0f74ff3ae29346e1e2cfd65f678e60643dd9ccd4552280c1480df6a755c5b277652389c3bb17dfca2265fa71258ccfe02c91a2363a22884d954b0ab71974cf3f3d958d7cfdc44677f219be61b09c894e0801fd8a5ba3ef585ccdd0bcd780f814c584fff874a21a310f1d1bbabb1325d74e771863c09690c8d40160465ecf98118a327c6b6e8b30fd744a613ed807132a6463f3439bf9e3f47e589e9a42f00a70473323201411b8c30eb3508720e4ca04cbaf08008633f188ae126810250c86cf28c636a5ce342b59e22c7ae4f494733ab03dd67593b8336476d18a6c917ef0dd7263b195a0748f16dd884d69213255317c27ae624ddb465f085b76f2ef71f631f56ca4e99d03de891c8fa6790beaecd089bddfa8b40e34f90bd03f05a5abd694cf25aaecaf75c1682ecb0d1db4ddc66e471c3693155e7279bba33de1a2baddddbe25d3d1f3949ca9c2a987a538d07f8e6dbb51c82f5e133e6b91b1158ede8aea996f5b033e2343e9029387cf0c5d74be48ac3d053ebbc0ae5c6bca90a0675bf5bfb4695544ab37d4e88d45bbe112bfc5c8e887815a2b896575cb50c446abed078d4e52735acaf5aae6522da74a014533465f1bc25d7eb44e5599bd0a37ec4e98f49ce33e8de332fb46198762711486c96fc44fcc3dad45f5e5183ab6fad8bba272f0159e7ab8d240be61fc24b7fbbe93e41b2a54aec57de6e8ed9e4d9c6bbf69e645007afecb06235f5c213e567843f053567ec97d706aa8c4df6054f40d9df8deadf5392a0928e25885eb6adb4e2cf4af1d4de89a219c70e6a33ed1e4b84f8fb4818dcacdcc3106836fa2975fe05892c54aff2b939aef2784a3aa609daa939fc4eea879fa3833a2c2f6d7fab5d2aee506b1cc4bc734b2f84c2a21972f3a5c3b2a9c526eba2036899f22e3d202479a9098b5ba00c3999de146752398d78caeada62bc36e49d0e7956644b23baa8bce82de168736941d94eb15db30f10f82724016b071b16372c1da0c4287004f68e7f457e17fd7a38ef41a327026f48d3a306c0dbc3e9c6c34a0213832619afd5582b48f548ba8b11142e06efbf801f1209c97b3b0e9cc87539eaa3ed938a0ecf9847203e3687165802c83c7656863066266cc4472a9cd06cfd93c82d2d47c5dac04ce6b1683cea98eb310a7261022ac502af7d17a66bbe213f2d1e0a08ae4217e3143906cc471445f761d524b47fc54552943551e3d356c3155af591997bcf3c2aa5d8f0be2b32a6ce825f07e14dd73c4f20b34eee5080da88dca3ec2ad6c517556a204750cd8df39895dd0232bb3bb51aaa1da6bf89c755a8dd34e47cbac8c5ba8169d9b25c60167599692324b835605c5c10cec6b3c07319a7f1e0b80787446333add4dea03c306fb110997a434a0187fbfbb4ca9858c8eb9b4133b8f89a49b9a0d106ab4c3ad3ec6a6ee4353462267b40eb10d6aecfa0e0c9af47d8d49c3a149f5f5ccc05c657dd2e563c76b8323ab327b46d9b802dfd5ac4c3a2f0226bf8769186b8a825325b649c5ea4e035ba1ac889b1759fdeb2d9bed480e4e5a1061759f07ef0e0140b86b60bc0870c646fbf013ddd2c8a37c9e20b5460650c110fc3f9291f6b2bb0704db09f9518570556fc2377242a3470535994102f41fe3d8f7640477f5fa5c119b0c48d30ff1d121bedbd9e75ed32e3fcf646749c9b74666a6a90ae94a5ac0e4bfedc12ceaa0b38e8e2b6e9787b93f19afe70a546a764651b08ff29d4ad9c1537e722a7b5be51b6565695ef9c3b16c822cfff61dc35d5243ae9d5ec9133d9875aa79f92c34f05d652ac4abcd6574f94a4f191493defce835c6d0d6b673808796b084f48ef003273f2dc4b3d328d0fb3b5de085c01d1a32d865fbcdf2394b3da8cd861883e729d29d51ff09a473bddf4e12423f551d435b2117887f767821d0e58bfad88c4f87ff164db2e67cee8c34d96787f36315c3495ffa46a0998bc6d52f7c60db61d8640105e65a34e742734f51b8a2b0805bc171a02bd0e8107ba96eb6d081a3fe19302f2db342df14cb43d628fd27693da4500d501baad387f27a58da2a32b8f10c0df9bdec76386fa600bf084f95e8ff35d11f9055b512126ce68445387a6ced4c99f03a76e3ce1405c55bd2c716af031e4d86e38054c54ec9af3f44300e4e693bf1004d2cd8af2fa45e7d65edbf5ebcf17473cad9b9ba3d8f4c9d3a4ad6845bea3c1c822a015725fef4dc58e6fe0286a73db9d4dc49558d3ec5097b7e49a8bde33b414d72558a28dda46a6c3d3dbd31d042f737b23ad1d60ae54cb95914b4c657670a5e6cb25989a52a41dec978d9bf4d0ac17be1b9f789ee8f84d2dd3effb6f9bb6dfcdbb6d494ed627d1ed2788fd7ecfa5dadeaf7c47dec460a50354f836570916735ccac08b7ff197963002fb0e3fe6a33326589b17abc28bc0e24e2341a600f4f32597e9d53d7bc33fcaf49c9ac8eab0e6aaaab703a078a85563d41c1f57160c722c21e9b5540af2424b836aa6ac1e805f75243e2f9fa4326af4063f04be178c9e3fb0ac1c08fd773551e2fdb0691d4600def252aa9044b6d66a5de95ebdd83f1d25290e3c82d2a5aed89918be3cde7548becaf729197c8bda0587e9516e47ba319965b8d75d3242db88aba6abfd72ca5718ce01ea52a781dcc7b1c1335f72d0e17c5a0e105e041175166115ecd801281cba7021902835724a6b200964b97971a4c5a4572ff85e665e87cedde753aa37d460f787fa3978f36e763b98c06d10cdaf102f567f08e6aa02fa9fb7fc41a47cdeae1fa78cce5f5453d57a22330131afe84de9cabd5236147ff4c181f4faa6692377348ac46c2f9dfdc8c919d3b11a43efa60850066cf8084157f3427ecfeb3b1c8cb13b3e526beec11a2670e9761b2ba10bdec6529bfabfd8d335d6312eab6c8bd94c565704e7cc7727120f899955ac066bf8d32b5ac573528f92aa463611af9a816abbafd7deba2dc178c42044ffbf73738c28c48fb4f0571e200727b4a0db2e9fe07e41802fa7582bd35bd99a2e9ff218506e2c94ab01f12097352a5d1a573cc552ea6ade041d83e27c474ab993b1b3408bfba160d06810197a8a7710e7ec238904399e916131129711082cbbfe4fd800cf28363613d0b33f8453d44b78bbc287de383673a8408078d9d477599cb050a7817088d170aab5b8816c0a61a56f27940e83520aa0d3bbc8512484256eb9453ed1d650d6a09f4811858ed6e8b477a4e6b39dde18ca2342b3aebf86aed979340498f2af002e6b4d85c17bbe0395f73e3c5e3e6d482bc07cad004203d9392a0b12c6aa5162244a94a2aace447c1f09fec81b0bd496700951f977068365c4cdcb3eb74c80fcab44aa30f45e0260a8fc3db9811bb23b0f1cbc040421a2ce28c3de4016356625e864b77efa761bac4846c6b7c74e2e97e9ff89a7f19a61d142ff0ea4a86f4f6814ffaeca33ebc9ffbce30a5878d006291d730c4ba079a33c5b968bc7b718eac9087996098e75c184b5018cac845bdf01b58c8b7c1a3ab00ab42ccd4022fad902f73047cd94d7c3ff27d93b791f444a958bfeb9a54e320acec100b1ea1b767ff8b859b9aac33e741c0b6af14b4f9f98ecde5ee8a55078431c7cea61ab7ade8c355306abac2b514d235918819946c1ac625123f6a2ba5b4f04a7d0621d25d953fde645c623653f43a04dd89de1dc84a200da3ae6c6b7238404a32c2c0e4cfbaf9718eeac4596fdb611f345d43b619446232f19f472de71e2ff220956c83a536e752161c18a80d2807cac0c6c23b8b82903f852d2f81a148bce8d3f69f86bbc2fef3a057db7342a6be647cae5d63b5b2fbeb8e1f0f05aead63c9d612b79b44acd4a1fe22aaae338fe1c219a7fa32cce0be0d1081da215555b11f4875483cbd0fb9f2186ec7b1323970a5824c63ca7b406e28f597f1c4e85dbcc3b6c5e024971f87c7e117723583f9bd86004941aa21a53bb3f13a75a01673f247970f0e14b924b318b291a20a762c147cb567a04191ff30c09146e1bc89ec7e46e40ea3c6ad63bd0ee1adc2f8efc91b7cdf06d0537dfefb86a515a7a676b1c3af107ebd9697084a504cb0d98343f596e23ad739de530f92a716e544c85f2aa01e226d4e15f359451d7baf5e5197950d242766c610bc0010a94e4ca5620ccc3d4df386392352064c68182b71b6984733a7402a8b2e15b2d488f416928201a141165e4c20419f52d26fb5ab386bb6413ed47bb3fc1f61c5623a5edc139ac1cdc0686ef2195cc2522413a4420700d81fd1486c5c97810b0279b761de14dc35742c11a5d29693665a7350dc98d00d7c3cc325a3d10ea385f4288359e541db4f08553c87f65d37c355d8ce38c9c806f7c8903cdba6ec426e2ad26084908290df2002b574605c10018a9d31f47912133d1b333d323cfd0af3f06c0bc60ddf39b20feadca4f7e4dfa32d2208e92b79b5d2fdcb1f2de7259159eb0f8cd758249fed36181e1b40797b0a2087b3c46c44550cc521c8b82534740be884d229e88ff9540df848556fce11c731d4651ce85f1036f5bba3fb17bbc396d00727e5cd2675e51dba6044d3db02ba554ceac99fd63139de61ffe501b9eb6501a0649eb49e3c83d73bc6bf2a8e712e6bb47804e69714f93bdcf4bb2727f1d15eea9968b58c977d37ee25a89eef96a34ada4304a72ab14fd40b117e42829083957b151c69c2e240ab90fce6958afd595c0cfbb15fd79db993b38fcc1c304b475adf1322866fda3283f3e47a2f589270478a4fea0d881b36106318735738eebc26f10a7aaff0dfa6d51ee25db3149cbf09216801ebba21de80c530240ae1d1d0f9a9adc8113ad50b06e181aa1cf699f0e4cdd035f5c5cb309d48b48893f1c15cbc20be701cc8e93d6edc16e4d21a160f64870d48859b5b000f5ea9363f692a00ceb677757579a6f825b0367fa005ee9b742056f46028954d56209d2b7a80e95c3c842f122135e502ecc75e54beef5ba524f19f8bfdcaaa70b7a431c60fac0ea183c3baa6464982cb8b988750a4f950f456efb367842826c3ba8677548a9457af2739307119d2fdd011f145c786673ae8a1f315dc7ee21f87d71118a9312d07ddc40813383293566e27d524ad5dd8d8e5bd36e9bd002644f9e0a1dc235e5bcad06090fd491cfa43477f0c5f27561b8d08fab49725866cea4268ee969fb5634eaae762c9e30012307ebe625153f32c908b827924822e5de8bbc0c0fd66e07afc4003baa74b724690197c4f4f378d8ae1674f33a873abcaf2a97829b7ef86f8b1ac43649d330865c9271db4c6c6f6adef84aeea3313475714ad021a80961c78bcd5ef047b85cdfb761e7937ee11862bcb1e053bb6a24fe0cae27078054e2877b523f895a10b599ea058b7926465cbbe53f5722283b308bb31b0d4fc22334e42d23a869c43533810c89b5f8a6962d44a1ecc7b3ca5cc5f93949dcf78c1919a9e70b2715cfb7b81891a4d359f118b47afb9e454dd432b4cf7d0e289eea195153fc1730b9b5ef89615b997f33289126fe9e6612dbd1d5431c70506f32398856df30e0b2fb39b4eaca965b2db8790416890ffc675074edf2adfe108d1cdc3b3fca34836ceddd840fb5c5d68abf02c6bbd906ace8569ffe0934c810966f9d7a8df876cd3531987822f9930d4006a9664d3651dc8fa0656cbf2181df23a73cb8ac07160bd6fb1b5ebb5e3200be69e6f945bdebb1304d6100812623cfc9a5f63b7fd77ade4c0daa699bd19449022387b5ddbe7fba8108b0df02454826648dd21cc60ac576f74bedb31b4133e2750f044b03070551ff2aefed6a4932b40fa0dc54b6129a8a5efaaac2de3f4224012d9e9001e2370f5061ddd48df5d35bc7e5a23d23065f566ab08c76d78ecfbbcb2c7a4aec5e9c64d04c5b65b9b7b5bc7d7ed25899006fd1e35fc09009b373db7c1add3309af695af4043885d4d619a7f2d705a01c30f756ffeb98a20c8adc23ddbe6548c0265e37e8ab7139e4ff7089b69e7f4763ce259db57fe1f7b7be3ec02d2062ca724c562b4a9a93646e95e84ce3470d0765fdf6ec8797be64aaf7a10708221295434a54404fdf6ff9ddb30cf69d4137b01d8d1925c684f88f3529bfe2cd81f54080095186941ae653e74394664373b9168b331714fed135fd27f4a4011e416c74e437acf70461140fd11b46305de4b84070d53205c154d73d97061298338c3955571a419aeac8a8387d8b0f8e00c499ce1c27264cd3bd5916764f5812a0054804807b8e463296df32d73d9c45feb243db301c0221b9052c7ebe3dbefb5bf1b69dd444448c80e2c0d8f0c050d351a05f37011778110c22215f67bef3dd8f71333f7909454b8788316424a2ebec3576fda2dffaa9b817423d12b0f33fa7a6196de49e5fccb7a08c0c74b55512aea51f024ae182fd31e02c8fd4ace3b4f6f755f2b7a379c00fad74d7102e857d52d5ccd54f2f46ea4fca21348241289448a558cf155355bb4a452a9140c8a5061733fc4855993033980a6b023879a542a55851532f7b5138c41d2c8a8c209ba6099c8940d3e5c7852934aa5aca8c172df2387984aa55231c822b369431127a9546a05459650731fabc21fe0a0934aa56cb08329d49a27b953a954aa065ab8a62085224e52a9140b58be6051a10665d049a5522e1003cdfd4a068d934aa56c7031d1729f66d136a9540a0675c8dd9f4b80508724a954ea063be00328f725145e4d2a957a412a95031570f1924aa55cf0540a06d00a3c30c353a9140d8b0ebaaa20e9ce6ff1d5122db2c87dac7750d5a4524726ee49ca126330b02e6f31bf2988a10f19d62c213796840c5246c52456c4505d570e47fd24a9f175cb770f20e36cf018431786c82fc608f10e13d823f34020cac19c1c20409c171108746dfa733f1a4984392de71cae2accb9cc870359c58839267dd7a7172386b71705cc421c4e6e13549ceb9112c8fdbc421afb79541293c45be5ecaf29a443fe1c36813a5109f686f3736804d23479af87513617f9f3be79bf1e657cb2e3c4ba9cf0f38764a7fa8434f6bd52ecdd8fe73b3a7a3e07d227cf3f9fcf3d0fc9839ebb1c0b4804629edf3097c9e8e4cde96c90e66e6d53a333ef8ac43252c00931c4d9f976ae9c0bcc9ea70df5bd0bb3b044fa2d519d4b75ce391723847ca8cf89752258ca79b3f239b110ab4eed4272c9f1a50885ea5c581ae608118bcb2d44d568d3ab30c5304f9ac1c61f65389029736c9652ca476047eba1d65802eb6c3829ba54925ac03a7948e710d4faec43d54f4c4959458e324736d4faec7bbfe788f4fb40d3db0434c1f7094897e0a77338e08f36c1376185ed6fa492bb0b49ca99c9f47b0fd68055652d09556a132c391b32b0fd0d93a7f817637c2f937f59bcbcb442cca54f7d52bf9888a277a9ecee044459b874bd98889f0bde0d781be38bf1c5d8dd8f994cc75286d5d20b4b524017bc1893bb81850c91d829391bf09008962663524559cac13e52e97a533b4fff639e569f24eb135b0751f413bb1ff5b3e20a9ae075a16853ff9d12f262cdac334f8b544d27c6aa2ed5c4863ba872c5a34fdf1d8e99633ccef879973541c5ca63bce6bc15d181a45ce540481f7d473b881201117ec4f8e82258c12bf62a32065eb178458417a0f294ff50c129ff31fae5e5f382c9cb91721403611f0da4f154241210688af7e4647b071bfa8e1e5df47828208af40851ec37983f248bb7071261e76cd4e80a3a682a750974b7e738e478149753cadb372cbfde2c395c294eaec831e5ef0ad2e343a9344dce7bf73169537cca7d4d9ce4689dd82b8a1997e9e753ee522ed6a6d7a6272acd0af497f3f877d444f68322fae8c63641cd7eb6a7647b369bc5aca84befee51a04f7144a2795cc43f58d24707128146a53c94cab9e852bcca7d386d8a377eb0b14befc68a46a5d08c1e512efaa84546ba14e3cb41b9db4392a36cb2e3c5a34394d8e5f724fdd6b8c2d05557d53e58d123cae39fce23f5a71f450ffacd76299ea54bf1d8b3a35cf4cdca8d59a03b88d26e15454fa74bf1e590c16ed6551245cc9f1ccfdd30272880679c903eb9962b7d975decba2e2fd6998c7536a275365ee7cc642a29ad977272bb1cda330f56deca81b72a195fec183df2d58d995ed75b949fd2d2c808448db9abca5af8e00b8cb3305b7431c360dd7b3c6abff65dc0021ac26c26c21863742c1ed75dc42f221d6293f8456c129d442796655531beac077c842fc94b42071818887210c2d24ba9ffeee4bdf7056631a50f49cfc708238c30c20850d42e2c6336539fbdba1c9fe8123c05ba042fe4ae4b56555555e6f9580d14ca960069d1be7fb62322185b7492e5296c29b35bc52e2c169dc4f8c5cb4da49beb9d8bd572a858eb2b8743084cfc227ef16e48479a151119d62fde8d17bf70e2b487656149db79b797b779d1e3dda2c532b5de1f29f136e4ba5e391ca05fd6c2db93f5319b91f7bc769344a2cb32aa5837a5df01b5ba24bfd34f3d855d6b7b2ed6255885c166b86daaca663a4291d8b1634ea89794899aab7cf57cac060a8950309a21a05fbdc7a7459652463a08ea0b0b95ca18efa169ded93cbd60e5dd0fa00484f1883cad47239cebeb3a5841537c75611caafa7c09a22a2c6ad33c9ed3621cc884ba81973de09e5d911dae9c8d5c3b63a2f316825cc9d48875d6a3ca554228a584b2e173504218adcd9edc78bb4026d2ef354d7e773996c06e36df5784c660ab724b01ef9a0610d5b94c1f169c94524afb9fbc04667a58b1648735d62fba483d5897e4adb32c4d255b525213d8f8470351454878392fb34b49830a5d56d655ef5a07e8d8330c6483c9f2a54a1a2ea294a5744d308b943f8012770927afa64b12c279a7e425e9927c496a962481ae9d8b9c44aca65da8f3ce65fb192cbd3bbd9b19e85fae5254064b65bdac5864557f4b6a8ca119b132d5d54f7ca87a57b112d0141fb185e56025cb8659f0eaebaac0852ee4ebaa24615944e8d78651ca381bb38b9b2ee80e16baa8c98d8774967136e26b655d15eb2bf243beb287338c8b1c3dcee33980b3115f2126af145d8a87778a977a54b429de9281b052bc54e3ed559163fc134a44ab5673471c82ed6cfd7afc8da4ed8744b0f09bcbce467cfceb8c3757861c1d1872dc9c1672fc66edb0b01986857f07106139beb31d7190538978b923caae54b0a9c9f3d52db15628b1da4d9ed76e204afbbc860351f6f35a0e44c54f21f2bcd64473a2ddc1e1c02ebf693eb0dbcdc9f337e7eadc350841e37094f274f4b91d6c2ab197920a834aac0f2c3dbde5beb1dc0c91596eb6142579dedd20728a9294544cd96d9493ca330aa39c3c4f04113bd5ddcc1a206f3fb306c46b98087b6ba4a4404b609fc5a991b13824b09badc1d9ac4d626b200a89c3917dde06c1e1c06e6bac8dc98a36cd2bf2cc3c1fab814222a8c4c203207b3e560385442832522546fad403c8288bd3a6f99c3cad6f35aec8d35674ca083ba7bcefcbddd7402111ca2845009a65812c2b645922cb42b1ac9165a55816c9b28878522305519d04113b44ecd43052a3265ec1461fd8218a1051e370b8c06f4234d9c0cbf5f1baf56cc65e617360459f2c237dba2c187690e72189e57ad79415d996575ba999ba261579be6791a982c9822b499ec7c9f3edb9f50d54ce46db32b8989494c5b15df4c9f3799be3707c524a70863c5faae1f9e75dbaf589a989a981164602c7f38fe5f9a4a4524af0b2e5eacd191ef23c96873c2fbccdd4ab5e43cf8926cf9f6870dc381c34f2fcc9c8e98a53cd05618510833083d003e107420ba106a156230031353135998827b508bd88d8b935525d9a313595a6ec46c40e113b2fa64900dfcfdb4b923c5f4528a314924a8c950dbc3062821053d327f8f9182c6290381c55cc10a012fb9cccd71a33703116e7dd9870ab51835c8326cf1a56e4f98a725da3eb4ab92ed275a95c578ceb5a61f101113b10f53e5fa38a3e5979fe2589c361caf3355235a8c873ab5124cfd71910b64078082f8418421a10ba4018047cc5b218067b9823fa1b8cdc99ef5b048e7d41e270c0cfbfec381cd6e78f108f90372276f27c7f94381bf3d20b76274f29ba34ad97caf316e79120cfcf670230e42991e4f99d26ee90a7fb95c9582f5b47eca17036e68413c2e99ce4f9251c8eeaee13010e3b9b1a0084519dcbf6fc622c2a5827355a5222bffa66e576b4931a39be94490e879d537661fb3be093b1317ede21b2659197837888504a7a19296dd9a4dcb8d4257937b7244a89034d509dcbe6a2b5736600066fd5a9f5ee392d9735de94c87d186b42082184eff3d1b710983c4bf074d2178f509d4b9c119246958e94d8bd1b12ab2a0c13bfd95730153e529dde075c20ce06049e09bec2524818c78657c40b25b274384d4028e21005147dca34012f1050bc7a979aa830c4a1b99440a8840b2595cb642a1c67c3bae912b4b8d8dc0dce8b29526ba5b1bebe478bd058034df0d62bdc49704ddf527737bd96bb7137b04b4ae0e0e0c80136a99c8d4de662880c9bcc26a61ca70d0a9e3a3a38d98bebf5badbc3717d6531de19b9428c62d6b57265b3246f01772a24b1ca2256496285a4c2e2a257655df3a29e7ebc9f6c31502b993a4b688d75e916d44607a2e8122e9a641831551286554249d70caf84159a16b1b151a2243e2f9a64a8648b880449d39af762bfd8fd30c5a20463bfd8340baa45cd755d530c4d776011d87407a2da499be077526dbdba175b8553a3937492d8969225ba04ff5ec4a174a0748861592b96c56259322c6b8665b558d62deb5a16be7136de92f9bc786e473f9be9c4493ffca44b905231c1e8d2dcc1916cb017de1e17d05a1209c608213412af8858442be04ec490090e0ec48931468aab9a67d35746ee22c3575dbca6dfb6ead697e813ac6a8a74e98a4ed234eed4c4587d1b65e73e1f2a2289454a998b6eecde0d5a139140d474f2b688c47242c1b81b963777f39ecb690ce528982a8126f86fb6c88bb1b07b3724ae6abaf4036703fedd0a08af5a4286b77055840cb3ca08dd813bb97128187ddade29181d99044929f02e2ef10e6f2f32f0560ae22d783b8637123e096ff6a31c1aff0cbc5518bb36cd1002db18c43b62d7261907c54fcaab9bf2da0d618c52ce4969555991cdbc3c229247aef2a4dc41d309a040024dd17ac115bf884e34fa2ccc843112331e2f8f0eb3199947d7ef23032ee04ca67899cdc03c9ab9802bc5370f5c297e8e5ee9e889ae7136e2abacaa5cdd2abb2296529aab4bf39b73e6aea4941946cc8a31e67841087375619613abdd9dabdb79663c46d8685e745fae3eade852fc28a5e2d14680f44934c4e556652937d2697c2b65393fc48d6d9aa771e7f19d13ab6eca81f4c9b2b208c74f9a3ea53ca2845642219550e8f57dde96f74df438c8e2608cbe69796cb9a7e5282d6769f94acb63b45c25e51981c92d3c486fc929d7aecbd9953d7dc372635c95bbbde4ad6f424db369796b9a4deb53cbafc7964712de84c0c416d897b1b7603a79c69f5dc15e55cfaa47e532ce82720bc23b95807fa9f4f2127a0ade94c85bca85c0e4d06190d05d863d44a15028147a4086df1e9053422117fcc3890cefa029140a8970ca4340320c85429b12197e5322a7e8a060979fa243c88137e79c73f4d047b7c7ed4c84d50cf4404b0e7dd3728feeca0282b8cb7f04811d34b9e01f58cc78c8e9acb311ba3c5e18a143518b8acafc0c95cf5051411102b385b01098ac825d973c9f286f619128380e81126f32705c9998948018273d06894422c5207d85b442c22a09d7afd4acaeacac1cbebb05da31e80faff4c03e8f65d92b0d7b95bdc25e55cf422118252a0acbe8152506e97864c9a81e1416bcfd5884b712047dde4d084c48c35e3dbba66dd9b5570d66323025f4ce6815763e843798ecf429d7681516f40d2683b49b92828364c74042607286abb77c076cdbf2cfdd94c82d8f99ccca0c180c6bc11ea530f473ce395b5e5b280b2c86d11574a630995e22b96920aa6fda14bbfba6696e685a482da216dcd2d2d2d2f2ce645afa660576eb1b2760dc7081d3450e131d2f9ad0a14f176fa2dcf2f78cd0d0ccc30c29d0a739e7ac0e13dd4745bd2b0f5d957b21b1108410ce29b0cc7ac42c9a532412fd25a987159fc665e833e531313c60738cd067c5338443585e086d9e13a08de8b6e0ede596cfbbb2f2fa56b2b222b3b272ebcca2bf2982436cf5dc90bce78654f07827fa749a6d0364b6cc4ca6e5533c27767a40e620f310bf548cb1aaaaecb9d59c94d2ecb994523ae7cc9e3babaa925266cf959665c518b3e7c6ebba2084d97361adb5bbb3e736a4b129c7523cf029a147a04b72c6096723be81f4490af1d15da35c8e72d7a820bed93c12e2c636c14bd726970b2906a272ad0c49342ebed2dd908f514357521ea2cb3b0abdbee5bad0bdf2e82c7723e5118e225e99fe7afc4b51d12751ad1505f665ebd44a21a1c9aa76eda128e312e52b2c9ff1fa20a1a73cf4f91abaf2f3421fa3a7fc6e4e64f95155b9d08ae829785b9949f9c45b2874979dc855f528ed39a194314609e1ec7ea43f9594932840bae8a1fb72e8be4c8a81452a787322a7bc30b2e81feb521e73e20490f8087891237cad2feb41fa147d86665e187924a55c11611e2f8c3cc21b786154d5a3b4e78452c6182584b35b8aaef25a8d54443776297497cd883e725d0a7dc443f4d145b87236421fbd30f20e18baf2a4bb894e2fb32558947899e5f250660a7839a4809772b7d04758336243f8d9250ec2f2110e825d0e91213c446616ecbad4225fad4bec9e4bbccdc07108cc1230f1ca5d960094af7c0479657e45de95d061cacae57ce810056f22c82bf7bcca12d079e53201f32128720ade3c1f02f3cab70865ac6019f7c8b8bc32f0360466e9398459822494a04b8a02bbe2e36594bf8cf289fff04a0f6be2edcaa1d035946b0f5db3ae690f1ddecd893ca78805aea8880e8424c2a3faa9fdf3141494bfcc87754dc35be828285be828af28776b98cdc0daa3cf9bf29e4fd901e1bcfde80609bd121da58aee32263a8b7090d0ad8987c81cc21ae8da2c3f7773c29359d75f66fdba8d83fbe6c2bb3dc3585596146f729458eb4cfa860abbb99c1b98ab4b240381a8a6a9a485a4f9482310687aa9ec0490198b0abbb5923e6df14dd3276985912b6ab0e81392ce6265de652d7e9ce63c108703939f535e988585a9199d019a1a8bd8aa7294be395b4a1863845076e7ade2f1a1452291f75a0542f0c2d27f3c1e293fa24b794f96cdb8d3c73e4de9daa64f998c9ccf642276f77aad125bd1c9d3e864fc0e18efd65c583708f61164193dee56bcb5c47930cb490bfb473a8cb96f436290ead8a56c27540eaf60a787f20e6f3d1cb5e2e92f2c9bb1773563823a19a9b58e5e116fcf92d29d56eeca9931e79cc3f4f26ed63dba6f22c82ecbe6226ff0433a88f5116427ab5f2a3718ad4b0f3dc4433abb5fba5b8f32c6a344b7eee4dd9c73ee98254fb319f7eb4f62f88ff67741ef1bbae7d6c718b147eb980f792b46bc529d1e5ecd08158265eca0eba0c9a3ddd8a60c6f42b0ed6931431fc4c2d861c60496298dc7ae2b65aeb60fc45c7d1b12618565ebd5ebc322bc849574f24f0bf9eae5e869d115aedaaf15c3bb61437275ebd66a55ab5ad5aa56b5aa55ad0a2dcbaad6557d475fd7b2b04c31bcdbdb025e12a91e8c82bcbc1168b211d961a10839f6f38ac963d7755dd775e1f73c593683f2f8f89a3ceb346ee817caf19d7f02a25eeeff192c3148a3f76d91b1a292f25a2b4a29ad6e90ea4494563007a95e9910fd8b17432f1f8d8bf0d6b99e06de3a8f1ee9c5782cefbdf770ad5e2b1f784554b95cbb831e7b07b3d23fa68312d0e3fafb7b933ecd881dd2f9d55bdf50322c6302cbd7e53ce826bcbd94f0561a4208bc9182b8cbbbf5f950cd66e48354bcbd8c092ccbbf9ceb7d1d74fd733db3d73d17d6e4fbb42c5953c92cba2ecf2c7aef3dbc452253c8cb92f149deac0fe920281f417e31eb0133bd2cbc59dbdbd1316362eb8c72fc2d3ac9d6bc45a5b46e6083bca35c5e3752044d8d2232c5b2f304a471945f37be8c099477bdca6650fe1d90c60d1d5fd151aecba0bbbd5c7b3d4700706393272edeaae3adb233f06659f0467ae9e52587fe526baddacb5f3e55adb5d6aa799e7d83c919de84c06409a8f7687825bba806bee49450725e8de7d74557336285c0640bfa75eca19bcdd80701e1cdfee5685da446a75c76726bd734cfaf5bbc718048f6fc836187990c5665ce66ceb60fe4ba15e1725d04210e528f0981c9990fac1e663d64aef7dc98b3fbae03e0f56145bc864b4c25e15e7e1735aa7a6c62659728df07806b2dacea52bfb6cfc9cbe952df7e6161c3525fc9d673d228fb3679771913558adcaf3ae912910ce15dec520cea169de48ff6aa618f8672d04f205ac1f6a0ff10e1107cec68e52b94d5cc642e4dd3362ddbc3d3aa9af1bc6cb3aa55396a34476de6a8c91cb598a30673d43a474dd3ac476a1eec9c8dbefbbcd8334f6ecc7d07ac9787ccf4d7b54eb10dddb869790491c8a72513abc6be6f6532f4ef8270ce3927adeecb4ea0b26dc246e7c546cad8032275dee3e76d024897e25f11f5bd26ba1437c7c407cc0e1f117d47cbfba34b6d82c12f5d9a51b09bcd714e29a594eef3c239e1dda39c16422b71135d02d246c41f5d8a8766880ea7be891f40e6adf784389c5c1f85cc42c460240fe95c1dfe889722601c8eebee9bb359e2aabc1b4cc6ecb71af9bd80e4f484421e2941337bf6d65ef9ec3be014026359cf7af26e32894cf2879d8fd481a814dc0434553b7db268fee04e960c9c4563c9c09d408f6f02a240b13fadd90b3f8548eb9257e6e345610a51e8cf47eabc8d9407174f95932efd3deb6ed140540aae76ac22551edcc96201ca957070a678d1957670a668d14053913e491d8b05ee24dbe04af131cb36380907779a833b5d7b4dfb6857668b26da1b9bc40bb3d479f9ddce52e73dde97251c1cca0e363b691d2f877304d8509c3ba24eead1ee6846b9220dbbda449fb4c7ffe893b58f289a116baf1df47a598fc5ae4bae4b10c7e1d01e4f6760ad86b7f979ec9f0b3f3709468e7b100293641977ab5c5fcdc732cfc76ad912208c6608a8ee88e849885e4517489be2cba25b449be211d15f204a84a54ed4115dcb8a3635b66890c478a923bd6854116d8a7ff8c507990c7dbf179be85377fed1a7a62738a365d777d56b18e5dcaa0c1f96b77236c860e1dbaac129d0c9f2efa2ef3d9aebdffde45a61b406f6248924c3cbcb2410152f2f6d7c6037529604c8f22496bbf409bbfc8be3e2069ae4b723b29417ad97b5d65a6badb5d65a6bed8f689374f9e04de2640fde8ab0128674591e07bb6159de353c3d7de9a54f3532fd948f7db2320458d5a427d140ea605d4d01eb52531ad88780240ee45e50a2c7eaf3ed524094f688b7aa12591b229140bf2d952abc9566aef0ba2456bdc2acc3813d5ed7758d30cb53f1b5b200fbcf7f58fcc10e9a7e388867152cc51b3cc4264c52dbc2f956e523f226896f458d82f615512a05a6ee9dce5bbd2c266fe52173cb45af214c882bcfb82e7faecbb45b39922bbdffb2b8d2c39ce9cd9d5933779c70f95cfb10593eb2e348dc224f0289e740023b672af22476e0e74cf49a0672d4dca39e0a89eb92c8715d12eec927b97036b8e06e78414ec1c92a381b7289bcd96991ac229345e4b57275254ad6a342c9642ab50407a4c3d4bfaed471366e6cf2c4e2c5c835b81b7dd90620e4fee8c9288b3b3b9936d149c98ec49c1c30b2e8c489bc3304555e198fe4c051253b1295b84049ec228b38382a198452381724608eeb92f82c72a5da84c58bb174dc8d22198bdc67c9646abd57cd850512019872fc75a8b9034dfd1c2824be913c8f47e2eab839ae83a6500aba2579ce6f570d16b0d65c78b3210c9a3bee33775a727b2efccd898ee2e58a2199d1a6643275942d4104fb28f3f1494115d690312c6a91636431268991c9ccc7889875659e0af4d166d890e9d7858615220f71966c66665c9fd8489b117e927b081a2e3575edd0a8a96b47e5a62be70283c695738191fbeeda54f2b2b9efbbbe47c90f92e56bb9787bf9f72dbf788b79c6755d49ba40724521f4015da92b75a5ae2b344fa6f3e4a3a3f3a4b2301b263636d266490d44492eac2d5e8c9c82bbd1974caceca20ace466f3173c43fb0f022267925f3514515ec488ed72b6de48deca24b3aae6492e32e39b0e4a23d50650ccb25190f99a50d16b6ca58e9e7461eebd951399dc321447639bec5d0f10d9491f87665f746e2eab839ae731360e2bedaee6117c44e9e7ff9fccfaa8ccec2f219f81f1a6f11e242981ec45d8678e973d03fa7571bfdf3f9104ee44d5f2e915cd883feb9f6a1bb4191432ef3a18556661c84b71526ee3fa053bcadccc03d2e765dfa80ee3214993ef41d3074b7d06368af95ce38fd30611ffae77eabf2ca0cdcc3e290f6b99fff6ea18b4cb7a67fae9df44a3105bcfcb1a6ef68d0dd40b758336241784824dd654c98fec1414cb738c810ff9cde0d8487c46cc2ae4b425c1be2a2975c46ff0c21048dabfc83b7205c5c288d04d078cb69b4d096cf6d015d0bb5fc430fba46a3e52a2dffd08342785369197d4e3fb805e3abe07f2ec6dbcb1f6dc6b58ff66755ae7dae72ed323eda47c63f3ef85ffe296ef9c32b3d46146f579ef12033cef2d159669c65741696cfa07783e26ad206865a4eef36246696c738e8ffcb7c8cce7216bccdf8ef36e37ffddd3a835e2113f0d7ded31bba76379bb587f00e08dab4affcde20338e627f8a6d975aacc541667cf496bb697848cc3330cb45df01655c9b3f2eaf881ee36e5064d187c86454484ef21098479f91f540c9a3d77b3399948fac255d6a944bef0dca3ff4964d0fece8a39cce28b719e512c9570e445d357d12bd6f2dd1b0b411d9b4a965443b9a0686338c593516923e39b9840776bb6aae2cfab455a97c6151a5687c2e8dcc89233a8ee9d0712f266dea0791c95c978ef6cfe7589f42ffe0edd2a9d1b0b411827d93364f808e69ff80348c7d07a4d9e73bfaa2d6d98f8587441f4884114618997ea54776fa0c0ff140cc187631df0c0a2257cd85c5854408ccea5c39d20647fe42d2a5ecf2ec42e630e993c41716f2aaa13bb07d6953df18f63ed581a5b5d65ff7d299227bee1aa5e31ebc5dc75e319a034bb30a4b9b29b26fd2468a1d1bf395733545e938f6f79275dc0b499fdca5546437d925f3513ddee792bd22d2069ec0a12e34b82b0551570eac4a1b10ebbab852fdbc9ab3515f87c084c8e2bcb48128d0850677e540947326eb8d737d85375b2390af534c1fa7c8d7e9258d5da23f9203cb25990cc4d2e65981a5cda3194225c68a8b1e49e5140200d8cdf622631b4e968e4bc9ae26c95d91644785dcdf6aadb15c8c65f36e7425220244644072ae1a598f3b6f74d5c55c69fe5deb4af3f507b506a244ce64233b6f964dee3b011b598f9b6315801f01c89ab87123938934c75ca7c8d669a9e2673db991c9c8256e644ad497974ce66232e7006a0e131debb151396ee14d08a69323bfc86192e3562adad4f808982ef561ae1c263ad5fa7c0e80bd64ce46e65a035173a74d5d65016432b3ce7ba5b0465d35d0d4f517295f45ee95bac2c65371d540544dd5542d028310c279026432f1f36635e55253bf1793eb5e3a574e8dd24be6c3fa95baa8b88a440bc76a4959de663e0020062188a1882e910490bdbcc401b00c20233524808800993d92e331477c8e22b21ed67cd2a55497fa46643213cf1d1c58acb7b993fb4664d58d7597559d300fbd34653211c74a44353f569ba01912a1cc51ca244d9518fd0820618d4462faa5410f2400884108632041f8de1f8410c2d71f0384f4433ac33b08894c4107f807f37cb47aee5b74e2308510dad21d1c89ee202ac60acb3dd5b195eba029c675d0a4721d349152ae10980a4514c21b097ff076bc9530bc0981b9b010984cadcf430bc62fe217ce8606a1aef478ff34146c55519ab78ace9cb76a4a192384339b819db3190b857ef95dbd05186a3dd84ba6b32dcbb22cebf39489d0ca02528e7208a4a0641f5d743b132b285280cb447890b3cb47110f297a9d0ef693d243a426678799e8220b6f446872f61d9de1ad3e7449ce061cdd631f9a7db409b278b3782391fe7ae10a6f2f2896aa6468036a5a537bc067f75959807cfc0f89a37baedb86e182ee56010c088b2cc800e64dd0371767effe9040140a165555c85a108984e48936f52b054a3f8954dd3514ce8b87849232a5503c2cfa448136f5df43f290f4857a595cf82181025696e4a4620a3cd128fbfe8bbd0fbfebc2ef7d7b48a28814c98679ba5ac2b6c50acee7aaf7ca5595aba4a8de4adeab1c2b28ff2a37a4f3c3b37a05512048b15bb755d383ae8399d28b3caff49f576f8bfc095dd726fbf1e08ade7ad0d52ebc9a119be1ebf3f018be5ef1f6b4e86c662312e4c2db3b147258e120eff4ef144788459f9e4bea065ee6c0cb92c75559d9e1c4bb778f97c505386892994ca5d9ac2c8c5a3cacf3b8269e71ae54650b98a115b36ac6000cbbaeac9fab3c349bc130e33167ecc416cbb06cc6c2b7664d50718213540f86653c6c6c32d4bab4abbe5a6bad9f8fc5ac8a5d990c5d0096cdd09c6532a08c0199e7793c1e8fc7da4ac3308ab1b391653274019f6c8666fa1ac26c2613ca18e020deb219ed699aa669ae2b0fbd96f1a899e20ac23e198f9aad89d98c477f8b15d55e86957bf3553ed44aa67aef7537c43018b31e9855e38a128e48b66ac3ec47673314461289019f7b2060ad65c5acbeca7eaef2d4efe87a481f7395afba2fbb4b67409f7b7e02edf673cfed0fcd92d98c3669d6e3bd99cd585a8932a5d9cca7c2aacb80cf3db7b21f1e98aabaee0cf6fa2beb8159d90c56653328346302c3ced9a8d98c28570cab6eb6bdbc3032965923d82c9b79b9f6cb1cbc3cd99f552f8cec3226b0972bde86581b78615c74257e06fe9d485e89f8238844aeae42b8735aa6b71caa3abdbb5e5d36f3c15d55d65ea7d9dd0b237b3c1e8fc7e3a9d80166400761d7a599d0414a64ed20bc39b1236b78b377f6c67feecb9e6f44a0c4f036bacecdebc25b6539d3bce8529a9221d45aaaa1760a6c55513aa7943142f8680aeccbcec1e3174696c1ab1333f5ab196cbceae711ec75de0874a9ff60ebaf22601a85bdbfe3007daa50d9ef8f0ba44d4d5477776953d7e8d366631751060bd3a67ecb6f45e4abbe2ffa59e1ed882e75115dea1d50278e41cae71e0aab581a8561282a76c9afc613b0aaac25919accc156704e12a98a4f588f22be95dc0ff3b0b2ebd2a49442c136d128123445d47166acbc83897542b2ea7d653ed127507ea24fda137db2198aead1925eca78ab2c6b5a16b5accab22ccbba2cab5a1666594ff4c9939fe853f6449fb0fc449f6a7ea24fd7137db2accab3d2e3caf47376cd1584ee280703c447c560ab7eb2c5586df1b38a96b311717c8ddfae2cad6021b6554825f6c5d3ea92b67892f049dc81700f7613517a4a5bca532cea524b8959bad4cfd9d844ef1ba574562cf49234b1c4972fe7517a51975844a41ccbd227791691cb9ba882a23ed1aaa2797b59667a22b9d22bad604b149728a5cf8fca1ae57440acaa83efb9e7a6670b92e5931326c92e5da278a547a478abc00a3d914cf18d2b2fc34cf14a0f22b90a7b25acc26e9226bfd7387165e5700f14aa9b27dd5ea794524a29a594524a299db0dad173ce7769bcf0114208e1eb6ef8e0ebceee611e9de1ecea09d5d58e57976445e79c73ce3aad0c0117b53cdd8f989ee05f5559104e6b7664e2f1b692d94cc44709dba64b704e182f91bb92dfa5c7a373639a4508a6b21c43479d48f37c106a9a5743692cfcf6ae9846244d5c71f965339d814c0147770922e5f33d1f609cbe9153008973ce39e79c73ce39e79ca1510a76730c70c2d95b98a51a8d12e2f32477ea9b203e43a1f998275e992792e74a8f39e38c31e5ce2c44e82e41cc091f0d445549382152e6839877e92d0081a8529be67ccc514e17a30c396cd6a844a4170b73c48ccbb5d6bb9c7d73382f2383c862a4fbaea8f5624fb9a2a7e460798af264c9b365d6c845e43927dea6c0a4d73a2f2985447a6c32fa1c1d1691536aa4b0e494142ca73c36ead5dcf5a97a4acae128e5708453ee4c497974323399997247dfd18d9d74639348070cabc7de9574b7174f274327a04c951833fb5665a49c7d2365194efe886842a2900a9da489824dadd2258cac1834c68c8132e70a2944f3f3a24f33748f8007d861b384125d82372a73e6b70687831efe3971389c2806e9a1948f48186584b79843a28b3219118bc8252123eb31435846f69b171959c907cc544445323299d0163aa239e70c85666886e656a22c1385ce94eb9feb737daecff5b93e76d2258c3ee7536668a2d090136a0c0c36c15a8f91cdb064eda64b50c6bc30bf2610a5023107519a4d8c5b1d81221c1c118e96f3041c52f6d0c022039bb765bc3935edcea1545e693610a5823d365b65d3258fcd53462817857e6b9ed24f1aa220cd7e3c19562f8d8b0c5f75c164c628e3a8670801bedf03e3759340242372827571ca8efdde79dd04fb1ac3304b2bb15b8d4c04110e878311439d85091663c97d18fbcd295f64509d105616b9520f07a61c0efaf89844a6f28b281a2646bc883176139e5b1e21bf6f577e46c85b4582fcbeb932e4d4a549e8504333b195a40457771188a25db4e99d098d1746e890df2918f9bd27f961216f52054d90a92210539c2558d8b15f74d173a5aec8f5131faf9b988ae6eecbf330baee1cfbe4a1d5ad55563476e9b93e58f77728822c7b529ac95425687abfed6edcca61ce3a1b9a33cdbfa9f2b004728f3ff7a0a71a419673baeba1dfd18f0895cfc5f32612523296c04a89d1ab820c4ff126c4ede42bd8f82dce545d82d5b7a7021a03fba2783e2ab8e3a35ad20318e458adf4e8c7bb9d4ecd07a50051f1ee303e3438977e6d81fab15c09ca10bcf8b49091e572f6f2313e41443af6fa0b534aa5cc8c92528a87f86809238c30e6e527c6b007a485b18a1d0ba37899c6c03ab7033b95833adffbcc1c4f44be0ed49e42a6421432fca34286af9f97610af02280529e73ce79e7a6200537059889c807a7605594d2bb2a487588a34663a9a354b68431c61823cc31c618adf82a9ec618a38c7408d5b96cd6e198772841229411368c314619238d305615c5dccbb59273c6b72c41c532a5af4c4061dd07e5afeb3226a0c8f2138abcb90f893608b14ff32852bda2ebc2b44f4ba4d920f39fd35b0f84b7aee8e3b9d8e9c4eeeb3171742e9b978feaa239df18aef4b80e7f61ac4b31cb8abe981f16ff69d90d21ecee6e9b542a3524bef7def6f29b0237063ff5ba2e7dfed900f4dc8365bbc56caba75a6cafb5efd96f61efdbd1ef73ad7a4377af887b2b78a1c3b74586af2bb85bfdbc1aafbdbcef596d0cfbb316c36e6740cf24b6619edb6bd7f38e812eba5a0e2ce8f6d877340fd02f7c0405c736c977917dd811948350506e6c53bd4fd6c42ba091b6e2e58aeb5f11fcaaf87c7b55e44dbedad76f1f5cb1ac78c32e3ae8f5a20b02c55cafe10dcb557b7d86b16f42b01cb39c09621f33868384f0f632e8987dbccc0f84837c8efd8383d8cb8c49cde2ed5591abe75aaf174ac9436600cb41de3bc3e4dff597c96077d9061efc7b2b7831ee55916da83d4878a14aa8aad02deca3a390ae625dbb655deb9f6b2d1289c5e5241697ebdaebdd86e4fa4a7d586b050144b2a5718048f6e00eb4640baf64d633eb1e6c0dc9dab5579bfde381969731a1ddb23c2b15238048bef0caf5209ed75f9ed77b3e9f5bb75bbdc3eec16edd1e5ed67561cd88d5b0100c5a3808760f0e42ba102c5bffdc4dc3967477158b64e16d645f2d48bbada05bdaada5d58f150a3d3e14b28f7db2d67abc3db5aca584aaaab4ea7a55ddedcafeae8a3722791b923f3140d8e3b97d8cef80f662ffdc4d0856a3a621808896dd7341ffdc7a7b372cdb434fbda7fef3ea39c876b69a122eaf680f62fff94a0ffbcf2dc6eec1f2852b673f0423b5e706a4feb87bb2ebe783da87b85fe56cf47dcf9321de2ee0a626ead27b93a0f6eb6701efe5ce207531c618fb551e1a28e3dd697e73c75c45ead2ab1c2f63aca049527a49b183a6e6820d131c1cd1fbd6352127201bcd3a9dcf8b27bbdb1ed8779c3e651dbb801828bb18638c3146189beae63dcbb38920cbc6db902c718c22426887faa494b2dbbd8644e2eb7a51d1f1354e9c8814c7ccb0eaa9aa9aaac6a54e01c8ce263b3738537f9381b252423c4b079a5c4c65f36e74a5e32a9deb04bd599bcaee7aafaa9efaea9561d8096c8a6a618952463eb02f8f2e1a757d462a373894b48233f56d2a9b1a9b9ed8452ab14cc6925610d1532ceb7129cc6e6a405895dd73dc97049a904013e8852a0af604bc4c70a55ce9418723ce177ae938ce4e4ee973e564f21ed1f19903c9913622a584d97ca45da453a938f39454c871ca5cdf2bbd5b3487c9e647f19ca73766683d8bce57d0c94e9326f3d64ecad279b7b38efb7220ce101c8cca2e2c1d26161b72df9abfae7a8f60d70348fccab141e23e1df7c853d22e5092a7a4105fb1d259a50805cb711d249852ed81b4a935d2060a8089869df5d02acdba34ce2c73dc4adaccfae7592fafcc55eab89a0672eca159b773acb21e52c77549483c772efa58298ac32123bb1c4f91ee7672dc8a459bfa7307eed85ad35a9048d6c2f8ebda23e32805730ec78cfcb21e51768e3b4e9c3469a2a393938383236faa0f60208e67d18a219143c76b4d4b76b7e23677e6934ce113acf52cbb4c46d224dd10834920121ba8042aa9ae5bb395f1e8d7afc6282f4853049a8ad418e99291192f29e707bbae952b12f725a1e3b6936e024d4d72a77aa74b3bb9a3b331a7c871c67add2a63d7a539fb60d67d73e6d8274fd623e6eaf5e36c7bac995d9f2acb735d5945e9c5eb438eeb9c002cec63b1a802bb5d39d78db9de233a2eef911cb873b49256d238d074d3bf72fa64dd7af54982b548b05b4de59aead376d56487c3e5f9a44d7d2d9339826d265d9a3b9d53411e6b51b0eb420dab58e6e4297d7df009f6ba9d2d9ac43e5a04502623adf50a9d60ad571427d6b273e7fd63333c0c653216a645b0ef5584d5cbf2c84f3931e770fca95847c1b1386b8e0b718ec01b780375604e4368d16ac9b668a4d5a26e8ace130439de95667ef20f3b1bb363b0c042870367f7eac5c4bb5f2f66de1dcb7197df9537b2617c02776026f33025827d87d3890ca4935259e593551616d20136915f9981bd40141544009d0a248e82276102e87e449fa2d8000c238c1cff6864f74a4462712941940eaa2dd1c48bb1647e47763cc7f5e8b854e44cef9d3e3febb4fe45892becca1b0b3b29e1b4b422714db02395c40e1ce35d7624a6d01053d10834d1a0c1c2434c5e9be38a9c69ce39a52bc92a2bde4290e7732599e775494d2ee912b5668c4772c41258cf617ef2a6b9e802870ec1a3e34a90b4e99210aceb520e99c9c8396594596d24642a4c91582c0896c27e2c9e3bec47ef384ae38ce4cee68bd1a218526550bdbbe874450bf39c2a548e3b67e39253960e4b76afd495937a2fc7954cda64d3a525d59537b5535709a49456965876ab3cb1d36ca673bcb4044fb5cf85aecefbb9570d44a5c0099d9038f06156ed22474e4cab2a93b95ecd28e48754198b9a9a984544d2af6ae70a21bc52a74b4c729c8d0ae755062eced0452565ee1c47a05de76ec4ce2f422bf321a9357f65338d6517e60bced76ca6737e8fd2b91206f23cbb636252cfc56485359bc7b2fb32c8d2793157cebba14391584c8f582775ae6472a5cd25d1e06ea801b3e4b31ba79c326a0b66a251a31852e52166cba940c189e0390a4a4910c1c582745c9f4cbb7757628926fa14c5065e18ee3f8040141544081d054f22c7a940c19340c215d988c8b30834b5c9c54c2c6a1ce2ba8c049a261225b9a715ea637597528dfa25fa94795e2fc4e1d05eeb87f4e9f3fa47e370845e67bcfe19e9937dfdd3c2e1b8afa6d7bf2dfaf4d7bf1c8743e5d5e595c6ebdf13876388d777aa4ff8f54d459f84787d2f71385a5edf5670a8a9034d7dc4b7e642ccb7eea2a65173676b24a5206a176914c551db08205c0cdda200df5e18b9521b986f8f0ea86f0f8c32b818cae4f4ed9d2157aa63c4b77753c4b787a30417439f10e0db6342ae9500be3d2cf24bfd83818ba9aeb8f1edc920d74bd1a82a0036ea31e062aa2d6a7c7376c8f53f1a55d940536f8e0900dec3c5544c36b7855c2b4cae7f6954a5034d31be0d91eb837031d5937aac5156fd7331d60d2acaa70e44cd01fc08bc559f1c83b74fdee664f262ac1cb81ca421f7690d8e9a51cd162fe67a327a01704dc1d8a0f0663365f262ae9d77c27daa6304b645e0272fe6028300f889cd00f04d2af592bae2c55c5b5c5be4fe8d2b725fa900d4d8a8d9e2c55c57d4d8c206a22c1d226c0060c3e4c5584f5298646b4527dbfce4c5584cde8d3e9327b96fa520caaa81377831d616ef46df5a9295ca28f80695086f952de1cd926c98e41ab12aefa8aab6a832a9444946b12c2d6412d1756591492448723f94eb61e6e3f9618945cd640d866532a1ea8272cb3db263c78e0b7187547916d9813bd523aed4af35a977a3a6aecc83b383a3510527b1e0b6e04afd1d577ac199c8e0cee0d4e0e0702410b9cf07674abd18d9440ed90404eba60b2d95df2b8c18914b725c24ae6b2336d945ce69934e4ae60a6b59c6436690c7e648ff5ea9b4e2461d26394b6eb8e8c2d9100319fc90fb1ecf277b6cc643664dd332ed735026931df4aa61f2627307d69aa7239974898b2eddc8251025713ab149a8148d35e54d2e999a11010008004314000028140c878462b1703c28aa8aac0f14000e93b452704e1888418cc31032ca1840400400000000000000060138d50e273debf883c241e499633a066dc70dccccb3f2240b1702a0f51cf21862644e535ee0f45ce1d3e848cd708c75aa82cdd1fb85bfb0fef2d19495625233e315ab40f5acbba50db520c6b0deb9d11ab5856c0b89d95586d378ff1bdb99a663d0b59da31d8f21480131faddc0ad5af5c0c0f4ed7b86aa34735048a0334a8f0986e7e8cb6fa79cd9870584f57e53d00d8d0254ca26310b488d80651524208d8e88b591dcc708f00722b78ce81476830e53a3dee5a5bc71e61f8f1f1f7cad33a8cb077b5b37f762511ec760d5d02877aad7a6820ec8948003ed336820d9e35309eff1096cf19ad5282f92a6a849dd2c8cb54ba8dfe31cd6cfb541beab0b143641b193e736308bb7c642e18eb7d6d0bf41d925d93148e7264da3f74eeb59c7a075a323bd2ed9734bb269624ca8a96a592614c7f584386e53d57df3257eb0c178d73e2b5601b43d3a68c265068932c8acc148fbad47eae4c81eedee89def3a30cfffd2cbe47f8689906ae863efe3a19d35606e13afa447a1974244ad45cb3b30b04e6925bba528f25eaa34706090ee3c28bff62eff24f1fbb92a0a4dfcea17b03f9b3d301c4598d5d148a36b7a4f2bf67066b567d4da69d0feb65d073a5ddc873b82403369932be44e1385b673e4e80d035367cbc9741fff71a9ba7bdda4f7b9979ad2750fe0b2435006cbae0b6bca68fc9244f8e7123e21d92171300e2df3aa63619038d4c0c1b58aed9775cec21a9a54b3d4cc0e3bf0b832d6ddb161196b8a8496769e10cf9dffd4147d5f7db6b0af98a389f08b1993e9020a8c73d9ce2e2d6e794d607add6278d0d23b08ee95de925305af78b9bc546b97bbab3193915afbe819b4486528a9f3256ecfcbf9a942b6edf78c0a442e197064ff345f8b01042e05fd993f74fce3fa814012cac0d4718909b9d88ce5cadbdd07511a906d31925409baffbe95f2208eb22b02d5f38222fe4249aa4a618db6ca7ca95d5556599e96c1bf92ce7e5a98602b99605df9756b2b39522bd20c1686e4b64f3820460ec84392a1de97db1cf98038c0595ae1e2d182e25bea5aaf2f3e160fe89081c5847d11dc39286d8df81555199b91b7fb2d9245bcc0f25633adf1b1cb3bfd3e3fcbcd76f176818d3294893267bbdbe7e714caf94ea75530a9ad786816c4a7ef0a1987031ecd6ffc1eb2b12ee8f4a2f29e8c5c5f563386a84ff80d0052000702c51d670095bae1a980e02162515d263120883555483c4c90374c361db9b2066c3ac85ce11678ee5309b146b5e5323b1039587598d0467f2faae4d727dd3524173558aba39aa83f363c47f5c9aaf8a945fd7c144209a6287fb24e3c82ca13a63920436d9112b3b9636e2754acd5cf503ace2398f3cde7adb38c0c4d221694e1b5f209c0e9de5b54587387e12c4b8448acc5e0e6c235fe1960dfd10809b2132739187c669650cd854536e21dd7b17bd13447fabbbe311851eebfaa90af490705099fea4fe792835f7d76ee2bd287d91fc353e4599370c82a6e42f599df76993d12b0eed800f430d06e1f70bfc1af464aa3fc852716b8851861775d18d40db747b48a4c8dec3676788a3132239e169eef60a5dbf48c28873240b456a0b8a8a6cfd58a185c2483fed74e9c714084fb922e0839397dd1357294b69b634b547e9354cba9d5ab185c93d6c19583698c65036db6bb6c26947767cdebd111afd1002afd3cb9c7da664070ca9069bec5bfa04d0769b5a1c57abd5e122a6069ad03109849e38742bdd23025cfdf72a6ac492238fe49ceaec05c87e3465a9dbe57e339494b7a6c93ac18c4ca5202d2fc936e336069c2eb19924d163a4bd41c203acdb714713c09305f389cbe37093bdbaf8852986b8416580ef24f4cb88a901aff3ebb816b942c4afc5437d5074fcfbfe1ca570c7494e9b9e1f6803d9d2ca7e28f96ccb48cb7d5094661e0c1d0274920d15865e432b8e64e1b086e4ae5e3064bf18d2c0bb2fe1c8b432bb0024dafb14cc5414de74830a9fefdc7762d77a255cb77a84ba8c10533587bb2dd5cea07111d4ddada416b638376e11d810f49072e81e79c3bd7f95e2fc03a88e2cc922ce2655ab5178a6d648ef0c7a69bd577206c89f5d056e06b82821d1127228d9edbdb051d1857e4da224ee7f614b906aa8bf49a0108b53ddc2fed4a2351419a92667fb9522dd5f8128f3c5c989af070951a8eb598a6233d30d83d5ff1c3985f6df4cad430865d1398d50f16c692721d3a512e9f946e2bf7add6bb162574f5c3a2d08f42f6b9b06307a52667eece4e2fb727173817178a7902470eeddf94619e20971dac549ece635ab3b963d44d9f23fc79ac4ed27ac4bec43c319b765f3eb7bc0c2e9d488a4c598388367b8a380bacb78cae1da70f5c4487bc875031472d296301a2e1739cdb5598113187f3c467a79741ab04a113cc2f86c6996318af42a776d6bcb5340726b8c9a2fdd0e71f3cf5ea4738ab874948dac19062734f922409d00f7c31461efc6695134425a3ef04d20921bb2a0ad06dfc47d0fc590fac921ca21e16241287049680570b5cd683cc25326b3d06628d20c29606adf14b27885bc982eae0d2422f9290974d30f69862c1a81591089eff178464f17d45ffb22ea5e5d961241dbbdd3479aa1f9d40ca723ba8a72e58bd3240b1c21852e84407d20234aaffe9bccf6e0fc7404c75416021cd44b1649a0c83fb88e3c052a26f8267ab3d4fc78182858fd44d0baa38c7372cdccecbd9ecce9b8001a981b5092d4d0f8373e12f1b03c5ad50f08e69f6d737fe44ac74560600df210d7238c01ccad891fbb693eff4906d7a8c3c22be2d9d76cb04eda19557e9dbdd92d4e159abb994f0e9b6624af9abfc0c956ffadcb7851a8adcf7de622836f1a52ca641d701a406fce6efd32db6cd1f87fdc961fabe152d9b893dcf1b0139b234c80ad332e738d50b924bf4d8e1c649d995a04207ab488b56dc182a43bb554864eaf2d52f06e44060320903e948f6a0cb05b57eb400812aaa7112220e59c60e05bc9292a6c09d90e53408917a9ac1b871c6fa10f91a89912cc814234b20e6c81b2824db49624bad3695b2380bf10005f53ae97a9bcbc9dc26e4dc15ce62c3802c2e9875b5378210604e112c2df9778e20f49c770892073ef53390307256d9ba79c9bf171335320ce131aa0becdd192ec8e29c8c898772a0c12faa763a8af6bbdbe734c520a4b41eb73128115be2df7793c1b5dd12062065bf168ccde14650de4af0a8e3455a235984c4e9f112ff6881451129535c0653dfc389531cb0a2ec1bad8a3a66689230a96243941e1cfe840c9e3df70b82fe53a6264c3ae622dc26b6d0ff0d40ad46f20cce70ce10073305aff8f1fbf497d301db97a1f2015acff4dc29476fd651d44a57e6ef65ca93c7f0f2e204bc3713cada245eea53a0100c5d8eea0eeff21ab13c8654820d56ec0d9be141e639e5a0abf7e1e2eda0bb8236eb5c22afbae084ee0d7551bcd79137e48995d02b6ead8682f5f78475968108987180945fdfe1af15c70e1e1a3fd6948886713085a2ce807cfe4cf04a1f55d1c92a8cc4755b709fe7d37521aa066fa337030ff04add2245ef9a38d431aa3d513763de5d628b277e6e7bd84afc10afcbc97ac6d2375e45511f61f71d8997efd5d08e89c18e54c4bb1b522eba1e4f8194d17fdb7fff509e5c13c90398eccbc7e124adc640a520ebb0261a01f8b40180e3e79d6113f6658349fd849313f6da061489f4c7cd3b1b23a55efa14a7c739f100aca7d6ed9bf674e37824cd4504755367d0c3fc351d0dc232a284ac293ec4833a085191ededac974a221ef2fc5ccbd11cb37e992cb4bae115452f41682268160200fb65e45479c1925da5c241ba69379f1702014a5cbdab17e1b0ab831e09a2485ff2c3ae9673babc89f676aff171fb06b9bc644f81e33dea8c30e461fa306b221038ed6de0fa1d63807783fdca4ae5d6bb6e6e7f5cd373710eb9943136458baf9a43a910fdb270fcc76ffd1fd22dd994d60d9a7ee297a40ad1f79dde05b9c297a476c326e740c993d8dc3a2ed823870e06d4298fa4ff2e5f411104317341f7518a0a9cc69482faecdd184f724fb53e65ef32c71ec4e101cb7c6b3c375c2904b8921271d39a2323297ddcbbbb2ff61e46cc6e59419f2a4f68f6f50c8498a9f8949bfad6b5ce4a40f02c36c805af40486dd9da3d8a2cfac3ed6229f7f1ef8b7bc9e5c5e2cbfbcd202cccbe6500fab6be7762c8d8b520b0c8911cc32ffac11b4e3d3a265236752b585f04f18b0ccd561d95b35ddf49c77bf22ef84c18b112136bd15bc5c2cbc83108803ca0ee96434362520915f2f922f1f4e087d67c7760b5150a386ddd7217ebb6ebca2a326c3fd76bda399c5591634743604309257ff815af3689b9bde4fcc68dc7f6bc0e02cd33670e6e2beaea5c8ba7315b988b83b892c53d26d6ca2bb8afc0bbf3b89ed2af22a3575f309a1b20bbf3b69fd10cef58238a6916889015633d4bbd32d91c5c83ab3042870c93c66f13a0b02da500294655ffadcf63b5cbd8afcb17a4dddcbaec681b5fbf59c942d6b8815c86bcec99c461eb4d8f019e4032503f65f58d0dbffb1fa9768b0d6da7f9f50a4760c15512453dab09efa87d229bb0581a8c22bd578efe852dea14005d1cdc5010c1a5b31848aaf021240ee2d2eeea094435362093ded4492128aca9dc88896bf3cf6a9b2b1eeb9feec0e8ac43f054af247fed758610ba357a71edc52f63ce6fde8189bfc1e71cd1ec0a21bd8e6217aa7b1e0d3c0b8805ae1dc24f93fa5083aa3775d9245a5838baa2fa9d48a7e6bea033c427702d6a7665dea01eebe5ff08279cff0f81da07268b1830d2bc10df085125f1ff5b898308b40d4e68af55e4dfffee7553cb099ef7d7b6cb540ce71418560e9c81331dc073fbfb5e4a86408a1c693b5becc54d7db4ec993b520ad90d99125aff0f0ed30fd34bf32b0c30728afe6e9f0c251923b791a58413f347183381cd5b2f87084ce92569027d96c680d21b19f26c4fbbea15f4a53fa2544ccd6445e990929a0e8a0ac5da6b65ab0a639a2d79a5ce3c4347f5dc02403facd06acd0339db1b903c89d84b3e7ca48972f28a2aaec1f0a6f136da70ea46d5b7aa3777a6cf7b614c1bebb5daa616ee5a48d22b0c21224102d0e08844e45d247999bb9955e33c2fc8aa35918be8d4d5816fa1eedfd562238cc3033bbef143ddce9f580af37feea591d335379229896f8851f075f0ce0b5d1b5d949319bf4e0e1ffb6f092d12638ece073ed415fa7a21c7a549408589a15a627ffb2ccd76bd6b4d0626138fb703771e96759d32c9818cd4768d01f1954065e0028b67d7f4170189f9dd52d1a145563f98c868c35d92091153ce36671841efc4771ebd95de470042c92fe6464912bf1793b7a9b262e7f58c1d925ace1520c2693449146cfcd0d12172be763ae7a7b5b9ad2fbdd22d9fc0a1a6eb1440297a55d97f340c9dc947e7cbc91422f68f332b93a7c60c719d6c9a26a3e7a40b2c1329e77d11a4024835a98aea1dfb240d2e3d8d5611bfb3d4ca02aa47d7885705e92db2dc8acfc49efb8f3268ab1f6a242e2c14676c2687fff871c983d02ca4cd16989a0de22df1f6aeb0460b78259868dea040862c7678476a9c8684a888ad36d6eae56a64589a165a94714067b52b226ff5013a2cf7291fb9db5e94293b73f529d86584c5f5800b3dcaf489869f793fb7f38aec596863fd0fc9a2629bb8130c82b04a5afd27939ebce98e37aef190c9de0bd418e748a6d3ab7ec150640ffbb8fb4728aae129e384a9b1ef61815c33740514f12964f47cba148b419fe86e2a0a30559c3d088f623115e8a5ae517542ceb217f006cc892fa5ada272fc9c3a992b5c095d4b5b8848da33bb04e28355a31c11b150be802a4dbc0818205ca5295aecba3dffb66898f4b801de1785591647e15e5b9e13d39020d721fd8a62339f2b52ca4af31485d656410f28c9f465dd88936c5753449fb264327e87e5324a003d0916008bce94493ee38fae4c2533507156e4c899556b4e2fb4dd4f0a3de450ee9436a16e9c78d6fd1e865b8c8a227b26a51bc65010a4dae1c71328fb9c839164000d8b5fd885bea5b3ef53bf9fad44c5eb17681c2f82ce2f2be5254dc36521a60500a08d8acc73f4739f6cfdad926b64fd6f67c02d5b061635ec60c921b0c12cf86c59f8f0086a6791f9885a0b0ff3ea943c4111dc2bf8706891e27dbdba24fd39f9d53ec5eef1bb0a7d524b28587bff68cb1191923e880ea75b7a54df8ea8e9c02298088008a18482c12c0a54bb25e800a8b0eca772cdf39aea4f5fe3a5c196f490e7613f22363517eecbb8d116cfd3842a7d83cb136d67d2a88c8c857dd8e8ab7592ddcbaf52b58e562259fc4955c1b6251b4605e126916c975cb7ff043b01c1d2a992c1d7ba9618ca9cfa38f558554c423488be28fbae395de74e3b42174a761c63c72a42d55a246113b4367b2f3e1d051351611c36b4df53cf9ecc8b73bd906acdc51bf1c91e42e6307396daa5a8cfb0ca10d3017c0b30da21aa211fb15bc87ef3d06624ebdc2a963dc22282281239ae82bd709f37e3c190a4574881ba54466e731cbb747a74fe33ab59d292cd8272480bf0a2e5948094aeee16c1f1b4f31f32cc5b9a98a050addf351bd548382ed2113c5fe44bcd862e6118d9d6a85b57af1cd7ae376695c0af274c82d8062e759b4c32c18e22cd6b671777fcbac8ea3f9df598ac00025555d3284bc80866f273709b66738ef3ef429c6994791e1b5994af2d643da718806e14c8ea2950f883dce766aec6addaf8c3b0ec7937be72cd425f61cd0a274c29f426dc98137b6815e914ec288c927e6d680a70447522840e10440db83e51e7c6c6b8fdc0fc86e97f65528877e9b27ba9b031842c55be285a01f561223cf2770102b52c99a1bc89cb7b6d51252361de271521272855dd7008698c6695283807a56269dcf6785ee923abde26e9a7a4a037402a8ebc337585cc84f7e55545967b6892017deae4913724ca18cc966fc376c196062d7853ef4e258f53e30e088c180178d79dfb429abb8ca8be38c13dfb1858134157d61c5a7874a7b0656a7ca02ace23a94cc4f9a8fd3fd23340e24da5d8523cb2b0f61bd774a99d743640333781e5af61c445c271960eb6984cb8aec4414d2beffe8d965867a852a0d3618c62f0e18180ab721bd1fe3b2539099743273a502d26883aeb1c948306bf85224b594f9b0b7cc9e8951ee7341e4e5e7c102c4c07174a011de9df5a1a21562832cb53cb32820c3ddb691fd4830c624b29a85322f267687889967372d632d82f5add045c5c2a36f53f4f087bd030910200ca099105f00a06b975de24be0dace7787cd57aa0e6bf4f4897e6b6bf4746b548ca9a02beae2999776a85d00b123529d100224e0bac23ea1222401b1d34fd419219dbed6ccda99d36153e4a3dda7ad1c844320486bc81c22cf4e3d88bfebdfd87549d89039511583aaf6183dc5db5ea2bf19145b0b89501b2b381d0442427786d41e42176b86f2ffdfbb197c0f7b1ae2024f1012af9967a45ab38df8d3851a9e66e51a4e61a1c1238164ca113362232e3eed30dad61be62bb22d71e6134ed4bd726905de91a09aacd62329e16749ef7a95e8c80c25ed2a44412591ea9c88602596930085a356a396dad0c87ec914d9a72a6ddda2b1496c56fe83d02e2c5eb3c737da9f56b6ab071a556cc81b8aea2171197ce681f14159a5f8b5461a0f584ae423624f7335cfcba819870f7ee0c81dfd72ae62bd32bb9d5c4157fbba9bbd763f2f717fd6c1b6a94c56ce712c4833ba3f4a8fa3bd88b7049dcbe9db1298a34c25cf5614aa47dcb4e4a848410fc56c8e6de95bb52cfc5b58a9ed8d84bc6f0ad3875c82af16084ef4e17d2104c90c8c1054b8da508e4afbe9ac9faa50a3c18c3f22d6ee0ccf555da940ae04501096a4edde6d718aa1896c0ed3e8afbd7780c01b6ee57aeb219a90ff0bf3a6911c052f2a8c2afd0f0871c340282e98db77fb298e9acaef389295386e847ef0baae76c69e702fd98e43c4271778bfecf2bf3d61d8be058f0c594eaf51e4d17169b864508355b7a805a1f207d7e9edd000e8d71b5c1a7edc6c462c01baef0fb4f9677e6867d3cb59a86d3f9311a4247f65b2bbfd84f15803163c7ebe98b243f75e62504800cff6ee1a285d0c0a008c7f622286ae614e4c0458cc4174077cedcc69d506165480937adc2fa949eef76de88d0cba905baedab76355c48acf01ac8f91744520f4e3c0f1ea7740a42a0bcda06116fb8cec5a7f5e2ac4f348759ab217147aa19a23579903daf96de0ee331a2053be4295a2c9d2e15aeb593f92beadf55b3a93e7b07ad71cdedd85309185950b973f1b35fc57570efe929032f9e9f36cc06bcd11b15e38ba8ecd73790faf6257616d39ec971692637eba91a83af1fd4c24a8bbfe083bdac7f1fed1681f3bb71e5c4d109d6d68aaf7ee431b8082c31b402760c148b8f471724ff7b67e7232c311d004c4123ed1140142447957d592e818a12585b25374a0e2021b0ad870e1655972c64ed0af5c0c8d5a2960fe24433bd497083baf999a3d87e8f6985ccfa8af2491fa1830e8c7d0d502ccca18692243455f2cab9886c8a7810e57ad36c6b3310eee7ee2f7c74ef657caa16389907c4cf46a23bba718a44731516ed7d38f236e97aaa82600e13a04c125895c8ccb82075be9bd457424efe46b2a9083885c4205a459a16fb2042f63201212f8252960794d7e21feade077514809fba043bfa6b6db4f0387186ae9cc91399a08609b69dc78e601b63d27006bb9b5e46d88b3df7258f05fe22203b2cdb153add5ef01a01339590128ab84df50ae39bd6af0d8922a576fba5c45ec2f9eafd9b9b85df023d9df3a0f190738df4abb04f25f0df2219d4204f75e4a44a2d2b0ade0e79f70840b72fc904c51235fc7952bf8225c9cb278192944346a2f13601b2eafd8250c4c319f85749dd9ba06a5a8234d6a48a941fbd8b342fcfdab3ce55e9a612ca8a07a09546a842d35a9a45368316582d1887238a162d801d36fca79cde1a64d945a2d840a351f68106ebec6c2c308e9a2f92447741062da4664a15a03dd29ea2fc9508b9511f282d82da1e40f029c44fcff44dfddd02e85e9ca0a88d32a2603ec80440954afbbcc58e43c74b99f36ce59e9290300975bd6af5e3731ac781ac938845653eacb6a1261f54f2a125cc1ae6c8c2469fafa2500aaaff7333cc9553dde495cf8d11a217922bfb9aa5bd778e35a825a202cfa9cb5cd5ed1a2ee2d3a8892024384d1b9bc40a36e8a0435d68d0f2da4dff4c1e0a87851dcc8ca375206452608827950948a8ac0846b52c0bb4005c545608effceb0646a408d4338107cf7d777ac0de2827bb76a9c0b285cf03226cdfe2bd3b87421a50a22fe281e87a3d8aa73c76309b0156ce2088f81994bca6a370bd746a462e439ec4ad1e34e384c513f6325ed8dd2400f8fbc3bdff75f9a120aa3f1ff97c1229284d16d0f4ef3424df3369d933ea84a9970aa34254d5902466d60edf30a7628d63a1d802873195e794d43fa36117d70a4c1a1e60083c318bb4004a18572115585acaadc980392f38d4c06e41d5070342413015dee054773ac9b65a99efc7aabd829716a73fd01c1e7d3c3e9631c25d5fdcb950c66aead2d9e1690ffcdd83baf16b8b55d5662a4fa64c2a8f8d1d0c050c508d28d3f0617e628d659653c1fe16588e577551398addfcad305940d2583dd736088ab814c94557ad2e2420c94b28c82c5668e4e5e29fcd9a1b8491544fa5b7ac522efdddf20bc47b760e51fc5bcb67daeb20509dcaa3b4d6ef15914eef6b7c30f8bbbbf8050e8fc0b9c439f091577d59352f34ae5d8a30c8d7c7b5090c3408f476ab6e4e858d3431c7d6a19a1b2384d0a9d75ab2036f26feb4638fd2ce2842a0eaa8a87c6ccd09173a50ecc5062cc44426312aefa4c62d0bc7a36b5af02c355c2a9259c118f4a48264df807430176cb9f1909dffaee7cdbaf8ab26fc0fd72f07f6b48fb672116ec5a109443574d27ed01f758152506a2011fc439201f7e21f05a77edaaab59291bde3a07cc6b7c2b501f190cf992ceebc23012abd09f35c831450332cda70beddf69fcdaedc4d00657e83c106b1c25bd90d66e47190140423fdc5d6cf78329ea9ebc7a2542712eb3214697c5f078df868e541564b7c28e4fc83e49eb979b0b31bffb6983f486d5bb349e85b304f0ba6fa970948b0d9278f0dab657ca46362706e6814eee239a8f9f17291ec4230eaed8fed3993839f78740d3670f2a31f12605240b13dbc5d63b19c91698c8af28dba2a9aad525cc5732399dc65c0bf267a73c6af2cc304167171600fec5a57dd81292936a8a126113d769b88e63012cd56b874e3f6e7a9a05d2aa7792ad73ac44cb10d504ee0ae68ae870e012375d39d4d4a0592409abd54f368ed3367acdf7239f778fdd391b90ba8edd9c1f909ad0ee6c9d5366e126706956a67b1a04117fbe052fd1dc52daf93fd5c39334cdecadf9eb065b4cc78d94fd8aadf36cbc0b95f50aed1e10a8c080dd35f8a783bc9909790b3f8bb431763cea0b3b1b9acc4611bedb6e7913cf47654ad470da96cd9fa4a5f7e7ccddaf5a956d5539d868a97b4adb55a3f51215d568a9c8af1de998b52ea8296aa040d39588c64b159f166c8431091217ab8ad571074fe9a9ac47b1afc4b3152873b61b94709c60ec9370f4e6777d5ab2336b03ad7ec2dfbf2f8376e232ae747a8f857ab04bddbbdddbd2f93bb58ccaa8c5e3662faf8625ef9485f5d4612c97ab0ddd123f499e3408834235f6143413d5adeb35b3743de15010036471d83162d1a4c773a9820780351d78498811513354252d6852dca09663cfa35488b0208683390dcdf28ae852ddb95870853602bcd7301835218529e7b9668a9f1d88db740e9ffb1247822f53f754e4d745fe20ddcaca38e53c460106651afac8d1af7a2abd972e8b11233cab3884d126f1c192239ea1016a2d7cc1c41d394fba8f3f2380323f5ab83c293406500f7c5240a089fc2a1ed792ef2a8fb23d2123430501a3a6897246f2debee4f751adf36d74e4dce5416f9c8e245ce853b48cd76e9ff08776f42a6774472cb3c159db879641ef3ba8f65621e6f013b5447ead2b2e5018f48e0c75272f59a0b2291d62f48c57807e661d55ac3670016de598417fc120616f340ce34c94f78c58a014b52ef7a060211a4717fc90dc8826b787d2b8c7ae986612dc08696497e8349a8b1a30bd16bb6568ed3727490438e2696c8c807db01d7a80468632bff0104ec337d28b60ba2606b8b247445f7366866312cf9f8619de93e16a59bcc1f100517d92a506a7f48b114ccd9c9b33ee914ca60c5675975a648ae6584a7fd08031815ee5e81a9968b071ac7f15d0a9c91a882ebcdf769c65f474b0c6ce53eb9f229b66d3c25ae9ab01db63012f133a06cd40536e8759ab420c4134c2015789b8cc75b006c758c6021ff25f93580710a2a26050fb0564a75b0be6b4fa500fb156dab25f2ce4668b66ac32644e5d64d9df7ce1e0a54565935bb05fee44b72caa82fd13401309b12949b3f36c007a273fc6091c8ee79cb74c40f709acc577a3fc6dfc69efac8f88831d3eea3927c1bbf4934379142f0e71e105f9676c64e8010a728637527e6ec8c2e7b8e9d91e21990b9f5d8cf084de384973175f604564ada603c30118427af3ae45ab9e2f8ce27a310001585981a4038e70858196cb80fa56aba626df9ee60a5389da75377b2ac3670d844462eb2c1faf6e8dad29815e2fcbd86d009206580b63bcd6516093ad7fd85318ced1863511e226a5d3eac7445d6def980355248d14080c81e6773432b0ea6e376350f13230a364a1112f39dc92ce03f08346d3399a046f55c32bdd76c47113dd9cd446aedbdf7eed01eb2810a91381ada7f179be045cf77c41c6108e380dccbbe8a90701bed76be3f833aa31bde878c13c4c07a262be8a600ce3082ec50a466c4616b509b5c2490062a7b2135f1636cf35375ac46fed211ee7351facb968665f72ee521106a2dc9047c968b421946b4281e6d5a5320a7697427f3ec24807f734f1470dfd591856d3dcc7c61cf0368338e494f9a9300d459718365d5b76172707b213bcf456263321a2ed3d7d46c1d17ac8d3c18a372476ded9d9521a9aa5eeb622aa2b3a7e4bdbccbc65663e58d4cd20120e888072be42d2b2dd43a05da2ed0225149c360342a14e640daa698e5629440d0e5932520fcb330a1153a4a5f1ed0b9b60f9d190ef18c49ff35f0c648e84d8b935e1822272981761e07d81c8c47e3dc9d9d780b34b815c71c8392ae99d4cc96baf5cf972bc7376c9249067d9fc4d09a0704e9b2f3ad97484f7d7520eb809211c9b3c720f2a8d2b5b5f4e136979adbc0234457c98a2f1ef4cbcbaa6dd253f2b3663fbd97c99944e8b8573bf21cb9ef31e56511bb831acb60b98d1c30227cb329438bb73d452dfef61e4fe971d1de33731c39e80882e0fe95fdfc23dfe9e73a0252667714e15b1d420690818512d2657d137709976b54320c1010cf33a8d849ca3d8ecf842c78e1f1dd8f19f7799ba0c4f238516a6e10094c292469a68ee54b899d864d2eb9819e0f6e8583e234c17c75fa9089d191413ecb7348b77d4d102beb0fedefd70354203ea75f77d06cd616b117b237fe835ee2ad8c62797dbddffc5c829f86550ad3f444391ed10960207f983d45f703de919f537190691e1a8a8bf8594bfe7287e04f7e771bb60f54949547a89d7a2603e4a02d6764d5aa00517e1f54ffdac49ed9e1eb945468ab46cdce4e38b7a9fc006a6160cd45db536c00dedc6fd623f857d776a411bc0da9faa94b2e79984a34ec85778ae4bcb707e4ebf7dc64c3b795592ae1f893f35b4011eb2adab320c4d6dbefe19aac861c8f7122b56b65d874b8adedb00216041280a539c6997b9a4acbae25d16baa8526ca9fe20a8df11645ec1e857889f4267d9c2bda2dd065824c0f89824b3a714343e0c3e540941b9e5d49909267c41938322d64b4307b8ebe99fc58acfc1d90a47813425f13ecafbade6ca125c8876153718e093d408eecc2dc959a36abd756d95d62fe6c9cd9ed50ea2c613814ec3562f18b6aa0340b5b8bac706f0b1b2116aed5241caa1e7bfbc75c9757ca0608766205074ad04f6a9647f60b37ab0fc9403d632952bfe4862db5a3c55fd8db34ef3d189d351263210b6db81df58c5cb91272590a847fd7777ba12ef5a37bc2bf28123638ea496750e855130ca6dd679ed10c876c300adcff11740f7a5c55fc9882c7a3b608ae9e5326dbbc0ff9b8472fa7136ad79a0247a300f711a235c2828f60d638882066848b137a4b53cf91e98b57c83f2173891704ec7762135e6cbd837638ae5c8ea1165d934560045e84100f2ee3520be2cec9fb18e2b7923f52517a466a2f46993c51df39f31765acce26d656a6918d783582ba6ffebfa3e52168218678b04a208fe341d49bec239e4cd19713b746417a858b5ed7d244241a982141f8e7af0d63dc13d2ed9f0acbe1016618ee80104a11b68ceb6e6a74ca2ee836d8eb7e965e1a10125502b7378946a09c9e38f0ac273ed22aa800e31d29cde41939ef081a4e258acfeef94bd24570b2375527ae706c1cfaeca94be73ae6bf148dd3ed483cde03133e44d42319d9483144ec2a3e622dc53d699d2b387b8adec6f8a4e9a716fe7d9faf378d70940af7e49b07ee19d2e6c175af1b44a4c3c3bd0f5fb12df1bd6ab0dc08e7bed02853836ebf714e20ec704f323e08f61a0dcbac4e2b88233d6009913c40d35dcc3872b0768a7ee3f3d6480ef3d4545167999f03a07ca5dd91b8d3b283a735348640b7c28bbc4ee3e98cea5d9c5fb1aeebabfef749a71df8cfe45c16094d337e2fa6500d3cb2f9c607e0f2da50dd8f2bd388d4fdf37e7cd173d5036465c708cffae088b88885d1c2242a309f6ea7aec41d61dba088f0a2e8dd4c0b20eaf9bf5a6adab41351c352197471823960dadd1aff9659129d9f88c31bce15836a0d6a1a44734ecc37831a34e360870c22322a83436bfed5abb2b1c422d26f7f142f552d1888afc2e9e7be8bd3150d4edd81d295374431ac7edcfb9f3ac47d23d8c997ea6263ebc6b204ef774029a88f99a3f5187ed70c5791d948012a97d91d7c127f36e331bb11f9010de96e45176092c85d183d83570cdd624388349fae564ab9196277986469b8b4bbd3ad3cc819282097764340a0e641dad93f5ca04a8eb3ddd9e88f97e1a4b6f5dcbba37d9951946d07531c039f23b4e86d3e6b688f1af20625fb9d8eea6a3205dd8850e24db354c716844c1a847368a0352f0186c474b8d744c1c1ec04e0fa2af5cdb00d4c5b1bc4e1381299843fb9dc3b7395cd11138597e062f4431c595d53299504b696b4fde937cf85f86ba639f5424f0cf322654dc8c4df4a578964b8ba81701e534e2d008be300d8886d5d611bca420d321552f9556c78c074446b8139a2d7e7b5119bc2dea23d3bc36edd21e0402e8e273216b5bf80959c2828d8f55edb62f45e86e2bb2e30f5b08a0bdf1b70599cbaacdffafcc7e6ab437a24e9ef68da47fb5a3cabcb69536eb76e703d83ba254f4e010e8b3708a91ffbb20f6f3441740170eb9ae46a87a42f2d5bc851ea7fb38ccc3444da8b475a2d240978358125aa5da59223b66e04a4898c096f23938565743d5681f2f7f0e4440870681240f8f73f8dd793a6e9dc1bb09f329bfe7af16b22c53cbf5a44761c086f9c9f4acff40a2d6cfd0568669f704c4eaece984afc204a8b866e9d9476d84b1181f9043a5d256045c1a62c4f890a66146cddc2cc98a3126935ffdb03a65079faae8f7dd3819fd330972c6f5e2b231ed4a56567b347edd20cf4e29621475fe8ee1a651c08a6e696bedea0e24be403ef20054c959fc70b7960a910e5aa2fb9274fab96beb8d909e00b5c09f55b1a189a200595debaffb2cb8a93f44c35fadff20415168497c7cb5ce199189eb78e0337411e80fff6b9d7220bca14960c3968c5200791c44709a84c3e0fc33b747d359ebc4a0d23e93e200a684de63dc2ad4ba18edd3ce91a244d74c67bbf07d9b66872cf4dbaa5d73d48c2afa52286bbc37a41eb1b04957fe7e368ff3f2b400f284286c6316d037803dfa38fd1d9e99098d7d31eaedc3be4efc9ac137b0c07ca2e8647f11650996692aaa13064a340055d4a442199bfbd30420e4fac470a676898e1bc5179da0e090df35f50d0e1105561feea1cd4e70b164fe578e5d3281d649bcad181ca488c57f52462c475846f9d0caf25fe8ebd0cdb75a7f80d59b32d9858f99d371ddab92929211227506d56467f8f80b1aef68306409d2b4df61dfd91a958b87251d159e3c64621dbbdf697e1ed5aa9217cba28b99d642b447027b6f39a4d5690759030d65807c32a579142e8ecfa88d3537bd77f102f2f8e8b4f579603608c9e18bbb6bfd96ad8f4c3c8a2c41f304bcf97652ac2522fdee9f639827f0f1b8b66bcd9be1138cd79ad09a88467697f73dce6a913fb7b6732b8768e97a448b59cda85c2b9a61b2d8864406208c59a87fc603dc0787b9310cc01750e9419aa857f2eb4331535995f3b602aeb7839a70781b7546fe69c96c68a41337aa38afeaf4b1103285e5a8b6a7c850f666a0054ad8e9f09e1b76eed856cd69612bad9e83597b8c686a38281d7f16de59e6fe9986c392eb0c7346078371906bf948120148432c09588b7104c094e3c93c0eac6598c1222804e271b77d61b48b2d578bd97f9a223c491fd22f09baa8a49fa1c172da453fba5c6c32aa2b104696e49b83f4a5355526d416253013679f40cdf156948d63b99cd46ff83cc1976f26d249c6ad970e2e84afb93723520c379fa801b1bd47280e861343b41e7bb945ebf1958cbe4cbe8d709cc06b5da414632ad78f30d5df6cc6735c1e88b6474cd60fa87922fbaf79003f0db09dd6aa9b95d1de947b7ccc8f0227ddc23a6d13eb5b621191d6f8347fe5c5416281790837b73b203a8be8c9dc8554707c5538e1685c25ede7b305b821889aa37f03429f6087621d4dd768e94a7b7e01fdef00d86261220a16a63c8a415870191afe9b5e83ef926efbe9f6ef5c24f999599beb76545342d0f2d58adf2b42b61a553574bcf15a4d9918bc612c69580c19f67d7dc72820ce01f129811408c5d188c2eeab1356fd1e215ad5441f7ee4c3c86ec91d74a246b9be1955042010f0643943cb052d8909bfa7b3ef556b0757ee6c54dace72fb7175769ca79dc32adb8c653fb3c68e4cd899cfec49a6ef8affbabde705ba6d43ce374ade9a95909510e85b487b0d2bc39e5d5226905cb7b7f30a81a7f22e40a758f00361a12b778f4965545118a3d9669f0c970f8815813ab54194070bbd03c83482544cd0bb2c4b70260654f5e9c3a00216724169bf40ca3fc4963d3e4de54d93546892ff4323be43c031907381e3ddcf46c2610bb05bf7e7a61460b83863fcfc3ea96ba920925c73156f67cf916e98b3c281962982edde930979d2b06c1331ae544fc16a715a0af3302e5267acc1a0c3be6d7f8dbe4edd3a64572ef85e0c879bcf4bab222606eaab0c3bc3ff2475257842c4d601e3dbf3ec45ff9b20b1e392111b3ccadb6ac20fe1f7424c6203340d9a08631f9a4ce463bd1adc94a4fea3c675fed051a2f8c7457e06e8fd787108f35fa1c1db8bc6a84dca1484f0cbaa07bd2dc7acf0005918561c40bdbf686843f4a74c067a7a432fbca61bca642119fbc9f03228205f25dc29df7787ff2e0881315aec457d00439e456791d98efecedff15692d83451abc8e7474a17a2f7e45992b2e8ddd6cb88f1c64f09ab0e9894e6e3954f7c88209984f4e8568cc9a4f50384c9604d03671282f57940217dc93920e7bb79520d0ed1bb63a3f300752ba8903b58bc5b04200059429a0de627383b5a091a0bf4993e5d08fbaa95d82833680813ba4dc68619160a7baed58fc1793fd2fdedb4fca73f2f983fe8a0bf6374012d35b07b7e8a08cca52e1aa8eaa44b019b38b5e81f4cda65c49e8824116e4670ae391cbbfba6d251c168bea0b79a2920ea2c3a99cd3b481a89752b36bf4ed837aef1819d0229e0f2429b5b780bc9cb506dc2f1d9ac3ee0852bc13ea6f0140677ee6063f66d8db18a645d5f7a8aba6381411e119cda48d700db73ee0a19f3e3cd857b15d7a5523d132cae293d3f248c1795db57b8a37dc9c078595546e2824884cf29c9939b859670399b3677d31046791c0516f91bbc639fd50a4846f8c90acde8ca204dc2f8801273ee82cfaa1b736ce46f80a9ff8a34b1cb1f7b4a62678ae375ddc26518d6072736a03bc3601077ab869441001a6eb5714b31edf7f6d235d5696b93bca11b3b3b094b716bcc5efe56222579c2480dcfd3325eb08305b20eed9fa01e596bfe1c8f74465b8bd798b3f0b0a3fed134e1a8715f6faa364725248bdd0843a37e0d0d1630488b60371968e34c03b67b9ceb2a8b84aa300028e1557c3b2d525029ebb4ec3a9df174e507f3b1f1c3fa637721c9a523d0fc51d45c5b42bff3f32b1a9c122fb239f17442f472805d3b4c15526fd58eb64b9b4c3f0e0cbcdbb42ec9f9f5691135cf2866e001d60f8c0ce2ca0b3e0eedde3f9bd2753d8343e70b2edec66c0bcb79a1af6678b1483244b56059d9b0bb000ce85c160d20babb10f1ba06e4c4d29e3f843d93067e972d127984c88ea3d94a7cfc7ba6a7cfeb5f6a718005198a0542426921014bcefc49aa521cc38106c05ec3f820bed5bd86af587a6a837d262f8585831fcd93b08089655f7feec0379c628401d4fc84cc323e1d51766596dd77754e1fef9e262bc85a7c1dbe188353431bf77a26a4f6878854f2c389a0d40eb0e6ce157761c180ddf8ecb95ab3cbedf862be60e4830634bec1fc2e549cf7d98066d01bcf7fdc7785402b49fac85771b01c09ff926be8a22ff8f134090d01933d0538f080f583df6505198a542915e2cea08d5784c6145499687c3c511bca17085454ce3763143c4320d3284047c4019c445b1b35f06d5d4ac1aaa8ddaf709cac176c5ff3f6a06b90df22e2b4fa9b0f3ee62dd45d3ce8f032df8aa025c7d696fc695ef091cbf9045692b71a056e47e58837e77e07af6dcf1986f0cec4815c048c0de291aa2125a9576648b6ed9a21606abc7faeeed9e3e805c8ba0f598ec486b4f6fa1195fda8134b0d836f18fce857de892380fe1923908a840eb73062fe5a4e660e5bca8f70e4ba6fd6beda158ab686b4e206ee24bb79075b797ffffccc44c7bef74980831aee490513a73515b0647bffc1c7829d4958328b418767bc4c6d4246b8e04117f04a261f179959b07e9718ca0bec72d6d7ae1fd60ecf653b53b1007bf4642b67aace194b4dea7eb3212a3e20200c65e417e784c21786426c5d7d0d25241d991018e7653330d2005c0ff237da49d216c0c3832791fa71c0276ba23edaaed66281edc6086452b403609e6510efb7f303aa5fe5eaf5578f51751aad09727839700678c5de19ba2373279bf200b830b260ac04ce30435125630af0cd19de56596994e55ea4d3f77570950928908ba94929c726fcefc431a33dcc349201771009c54e983cd2984c4cc09e3d3469133b35690e01f698b6d9567e2e8082d74fea838344717cf58951ae8003cb74849985dd0a7a53167db673fbd4d1404201173fe2fb0a01e88eb32f57ae28b01ad2fe954c6d6421aaae983f2bf09af296ef66661dc578648d83df9721758f16f147e96aaa115d70959b3bd32006805298aab2df99536df46bd830c6c414a2d517de0f0ea3bef7d336383fee8cbe8fa21d4b4e8ef89cdac3964ebd7e1a179855ec7c936c3e38b9120d74153348b53dcb45d1928ad356ed87b2de87937c83b180d9d908dad5688da5b8e636e746405e5b7d601a5bfe2fc3a8bf41bab97cebbabd4725c3a56c0dffd52727c02240d1f9bb330c85a939f0b6a0a9f704dd5cc271f0e7f57e0d92429737d1161cb6e6b9e5341d7695c47cfb3fa5e6f91f0f05371b81559b069c51089af04c3e89ec53d38b7ca241c8902df785cb54bcbcd1742f6a6f42073c49fc46558b991e25f803c3fc0c9e6c69d4155fb50d412dade9db97d4fe8fb1c198f4c718433cb0bdcdc1e0d7a557b9f04f0081e05c05dfabc2ab2775bd0e6bc23a561f22bfd6fa9e6af74416f7dad62f8e271fe9145f514dbf0a2a6efc22b4d6e21b232491e2e0d2facff4545fb9c4411b6d803eca32848ed64a98a08ed8547527647226b6492b5a23f63da87b910578125dcd095e7b94e94151f02049aa2b8f96f150950c5ad1576a762b70443d87b87fc784edcce361b6416b2d332172ec4ff19b6c30da432e611b7950f34043b6c664685a632c610e61f7aeb33714bdde7a09d5e33896fa1a5ac5feffa8e8b78dd472c0caae69af698679b84800e6eb0e3831fd7d224d8f60e24c5153c0ba8a38ed052c64d3db67ba983363ef774bc82ff6037559f53f30a0830f917b445dda1a8738bcabfcead133cdec5068a6891837c83a3a08afd8c7cb6bde4ded7a0d49ce5c32d1c8a585200b37c7187903f792698ae6126f9c9871de5e95a9bd20ca0f1e2ba3cf43021b0266314b87f951a1f7433a3ceca1b545f5d90d422045c3cb3550a8dbe77bdbd6d00a7f66eadde33a96af8c84874a66a6840a28a53b539951893ade1500d108343738add97004f069d80e26a86a7cf216deeaeccf651e690a4f03b437f2c25ba30ed7825a3a64ca0ca380f60ee311462a8b6d541014265f01a87f83d0caacc7e4a8072fed55290a98561440cf9c3e47e284feb623d09fdd1ecd66b7edf7537fdcbe4a5e66154fb03a7d5b0c423faf2f1b60eccb396814d6921cd9ad30d3d776e3f01480d68005e300b6f2aee1242319479136cf838104bb0a2a0db9f0e5c8c7252b9b0260651e0bbec32b73e7941dfb6f4a175c7f45baf8fa37881df1c63783874d81fbe4ba8cefaf749a6e65d426841e471a16df30be651e5c61b4d748816c0754f61c539b4408e219f4eaa2857261751e1e4d23efaee9e290230d5f590d9a9cbd69bd4b4973ac16a4bbd5daab4883c649d0d663ed56a756d9402bd0e867b3bac907adeae972694452dfdc39710bed96e7cfd7656d2f373b8e3515180b83e21db08a57646c85684a9797cf85fc07ad1f4ec949a33f22cfb8d910f406f5fad966928e9ff573fc7dbba68a23cc933ebb92fbb3e5734b70e8d58c6b9ea0ee696066135125590a30f60675d7b5c89123b73c670a36152d4fffc1afe853766c9326d38890a72c136f83c8efa3d17242982db8775c309d6bb9d946cba6720f9c5e287f44a9a46b8e553eb8284aa51faba95f13418811f50c803586523e9571c0707c1e21d16586263e5ad1abca02781ec2ed97a5464bc8f8c139743037458c65388b9dce6fb44af736e5074be93eb7835896b049874803efcaf94db06e45d7c1375a39486b11c5e9ade762c116c75e6836d0f8c3c1592cac62b09d12f7cc405e0a32cbca0826cace70a0c10eba046864e0199ff930403af56a4161eeebd776a3cbad1e14759337d030e563481a47c010f61c4d9dc970ff7eda4564673c577198cf4bede3fbda365918f43fc1cf58776d6ddf947670a406bd9421d8d067c98882550e5c7b2aaa5530ef6a7a8430c944ad6f2d604eb3cb1e5c40b67146684f8441e83fa4671eea8443b86edb8318d3032c81383d3de1b815b7a0277a536b53a909242501a6272094049c3a815025205d02841ed8f662eb104d4330b0f7134e33cfc0ac29ed01dbea4990300e527b50ec6f0715a1ce49982c8b5b114741f5fe1d1d7773bee92c3bb0ed185c36043738e50c8d32b91a7fa0f7fb0a089f5404d00863a6cc902dd61b9911c7edb7848df62d9ef459aa55e5a5b47c77c3b607681a7cb713b7336c261ef7da8a8b214537dff4be7eb9b0c796d8b2b3cdbcf15edb66a0dbb0b8adee102b0240f5367cad3498039e376e7645b8efc7c51243c0c0498b858d074e63dde1c062d189d0ac82745d54074e5e5fafadf2ffc3a3597598dfe1ae2cca5235378a37a9f4b63a955edb41afaae29de5bdf9a9dfe2894aa64adafb8e8735b8d81f8e13e1f759faa32657f6796521ea39ff125b133b4974a6e0e60e1fe6eab9f8bac7681bf1ac5bb06997c62b768d5d12380011d04480128bc955268f3f7a27eb21d334280a73fef25411bc84b58229e26ec95e00a6590b329253940bd0af00e8f541989c5778154bbd5e1bf3fb817b94f32927c1cdc5b74c289ef9735e63e063f5659900399e1b52e699352bbfc5d295dc1167307b56da082df3068ab56c2db7aef020fb5232f40e74251e66b4dc49282238efba0569f3fff509ce63c4b0221be7b17c106cbaf9d711d4304cd33b73827f4fbe73de65edafb9528a75fca330eca2cd28a230df671a13535113238832096f049d2d93c59f45344c3f9c0e477a81bdd7f550e6aab94ed4945708b1b54a0173d14ec50c73566e9e92f5e9c949a3816466a47b4cb23cfa9f0f957ac8c7462292823f833160e97f43da91f5df2d693443d6493b845e81cffd1b2335f0a6bd940c7139a3a507966a5b0ac91b40b64408bc2c72aa172c1735b58596469e9adab628957ea391c1d8a488ece31935f87b9cef9969f88c5011b23af2f73f1b07dea4ab44c9105e49eb116840f86ccdc1db5a2add1db04765b7f396258e300f2e3a0836f99f0110ced856f91e949f70cbc911f59b43fb204bf7fb0df18120c9e83fb5689c97f771f39dfd7f1bd899f4699c51c976ae2df39018c801a2577864b5c286eff350466809b53a86a0b275722b8311faa4b72f475457bdd26e5ed87f5ed88bc993765d330436eac5f28a9182605a8920c0a4ffaeed01f18882ded867836c57be74d3c1cf3933e4d1cf7990572b33af07cb9bdeeff22e3054566a3dc9499d3643ce18e846f881d086364f4dec799d2c94aff758c148f070f5c6b9de0ae3c9aec9950b0ae9a19ed7b612ea1d70c905df5f4ad7b61a2310f0029c060d96d30a3ff7587d961a237a18a0c2bd9740b9e0ce904cd00531658d12305081b27473254bcc73031ba9bba2aab97b758c0636edcd0dec2e28a3abc42c376324aeaf816f5bd2dbeeb7019c0171cc66e5ce6c91e3b1ac7a6ef170a9a7587b772b699785d1248689b03ad0b619f837b5926614cacd6bc83165a951310aa2372c88a2d5445ebfd0134ccedb904bd483932c10b6597cf0caacd78c3aae3a93f7f40c0ce2c203eb2234c7b402e1d1f4c09d8381b384355b427d1d6448604d86a96c822b1c2c508132d17aebe016de75e3cd29d8abd69e1893534deba5f645b00665713a976cf5d790f4d2a3073b914ef32971b362e66c6d2b468b39acc4f79c2a85a5b5da4065981356fdc506420fbbfc122f8103ad27d1b0386e7126de5fb299a0a8df5f725f016b8210bdb9ba6eff6a8d760b892d478d23399a9813b9dbd4b95e14afef41fa8be1262128eb4b176c602c9c036059c16a8d1f5f74cf28b2ec95f2fd7caf8e8a6bfbd6357615ac0aaf958a3d79773833d6ad61cb1c938de87ba18badb8456f6c4532a4b62888bce4039d2a4dda301101a69c6d2dddbfe7aecd83c3b193fce5b52f925a04bfbc68ea21513d98b8e9926ab4642dd4714d69ebb0839ee919036c4869eaeb6227dbcd28a75d695c6e74977a3dd415bf5f9ca87992b6f77e4e515e4a96c01bddf1bf0a37bbbcfa5d4d8559f6cc20e2e93aeb306b2b65d8024f725c5556f6f2d21a534a77aaee6cb214a01327364a10e271a5ef7f16b7fecb105c8fbd10c92ac642cd67981c8d2c83f5b6f8755a39bde893138a66c16d9e68129fedb70f17181cea252ad8747b81654c654b7f3252b599d1ca302c55acb1de005eb424504828cd16d052a5052f09bd658674f5e92ae75955717f5809a082da19338a8f90803f0665a7d5d855fc011dd9eda4c0e9494f36675e62026dd5f6099d91481ef86a4ef8cc15a84578583af5a4bbd29604f676631ad0bc5c0000c91bb49213416442624507c4d0a27c133ed05154b09a4b7b49675621c973c9a054bd5a6b29da527d3e66849aaa4d28e63baa887b55d65492ffe2653785dee793b0389380c6a7b25f9ca0691b315c8354f3dc2958d78478f2c341ae0cfadc8dd211fea5c3ae7aa8d7efb76f442a1586e99e1c3b22272d1dd41cca12d8f1756754952614a42be57d0820489e00bfa16edd028d78c58f1a79fd134060c056f0bf35cb48ecf00d058514d8dac617911b30e532d4c2f7b5caee6aee33111bab83858d0388000dff1e282dc2f2ff0ee473e16199c05d0690b910c5937a7f99d5dac70151aa21a5d66ced85cb50e9280a39a41fa82180738d2f593360a7b01bd724b9bd782bab1c1524e7e6878a4ed9380fb0e0e8f0a5f070aa3c9406b081caf347996cbc4be6062bbe762fc2673b399eb95942d29bf6719dde4b2ed3ebb189dcb22b47805fbf7859d5222719fb9d99463b8aedfb49ec12988a00d0d69e530d7c49ed6041a3212e96f6d2a0f6226478c4126ab9dead9ea4c5b61ba4cecdaa9bb0b4fca4e4ec6af9194afd3c986f8cc908d61d63d92021c45d55ef84c3ae8301a83c37d12ac008abaa0adf09067cb69a72d479da960503fd599cf9c425df3748d1d0c5901b75a96d50a03b42229758edd4bb1ee8b2c52c977ba13e2fa9ff25f79b59ce17c87909cc561b65650a085402d3c98af3577e5b6d35f3fbbf68ed9e33b4bf8c6afbd99bdfcc7a2d19fbdfb6bed6988e2a1cf3e4c2df91cd947f8ec8f0a0bdf4282c6ec86af29063282714a8e50efd15429d3713a8f88db928ecbc997658588f6d3aa01be3c2e34478b0ccf6d281cee6c41276126cb8254a11ff5009b3a7dd22e1f2a42f94820efe75f3ca4d6807ff977b1f898ab59b67d79fd8ba011932b9973a9414ec704b69fff4c868e5719c42eeec930f5f77895fb4c08231e0fa64f4c2bf4630547891a4be6633fea8cc610c880159244bd772ddcb6682b3b9e630c5817838dbfea7bd6232a24aeaec42319446b57ccf65c9c846907ee5e5007d68bb141c6f1454d41f1c5cdb141de3bcd66869e01e3578338d2f23f4dcaee31fab013f40b3f67ae23a616483cf6c78d6dad9b690fcfd518ba36bcd916777f3de4e43db6d98adcf89c0f106fa1596ad967f3d434ec220b900952040afce7e187b57f5806c23466494bc87e3f9a22f90e8ea5f7316f0437e150e76f509e18a9ca23e5fce71a72139ee5573a0283e79553a1116248721c9805d99fc262057f8b551f51a611c374a006039bc931ac5f10ec1d1c0bee600fbfd50c66657479f42cd0fa6c3391c27d82005afc5c99018bf690db041442e6414df1c13c7c56704759040d0533fb120676bc60079bdb56b8f2ad617bc3d2ff1043279fabff3a1c8fa1266dfc1ab309559b66ebf51912533d2d0c317f6a3eb9db371ca66518e1d13a65842ccf3fc3f0a7ace56bfeefaa24a8341126edb88b4d170d4e732afe81eab64346ffe9131706b93e908614d9f18cfd6595592d1cc8d70ce79e205ac5986772c6a227e63ba74114b860cf13fbe4cc284a88d6063c02e582f204bd619a33f6ac6e684a8b2c845cc9199951a0eeb064bf08ba82fe9b13d34194da04b48b8803b9e70b05e9e8b5ea016588592a41498a284736b0f84c5a11a2c4303891552374c4b8e50084d1d5387975fd3e5a863e7800b732df1f4019a99fb55e6e1443b68aea3a62ae599d7285f648755889bbb1d8f3e9a22a4166db5c92487623cee59caab7770b8816f7e2d0e968667ac0d408fa44fa67eaa67c15c3cc9c72b90555167d90689f7ece445dee70101a566313ae5e56cd3a1a62694a3a9cb99091b40475f42bf02d1a0f91ca35876ef5bcca40ed6d748326ea3460f44f1f8f024e689c527552f8f1ab9316b04f9020b733fc6c4af8fcc6e183e746398b0126b65de52abdf6246f114460778a7c7a746bc4f4fb37ef9335aaa73a734e83ab97dbb166bf794ba5b26fca086903a6e2b4a182bf85717ef7295682d0865b647cf9d50523cd432a54895340fa4cd7366d4e043885aced3151c83a152ebfddbae16531dc34315cc0933a290f2dca9410c993b4a55eb923927c904f330538090abbb0e61b296bbb0193b647c76a7c71cd5655ec351bbd36a0d88c4b559056d5e46e6eb8db3521286007923a037296876f060f8b11b4243215bcdc5b3237ccececa4e5ee55b9aab4bd182b7a778fc21bdef0476068ce6e010f8fe7e1c9ab3b95dc88f4270e7992b39b399d30fa155dcb3c4e2007df65f132a9e0bd2b0d294c1c954d2821e0c64f4979392d850f7978171bcf991ff3c2e8f13301d592a1cc0191adfed98018796f987f0bad5a479e91641f8eb78dbafa6cbb0f6f46aac78608cc83e66f60dc6980f535db290606fc698417015742d36331198d54f48440881f404f24a8f840aa17478983580cf47e4ded987868ccf75cdee293d2546df683ab1d3dfe7cb427ad310bb1631bcf4eaae2832ed7bc08149e9bdf9b445ddb9e60ed51a9fed4d7b174a47051de8da15a91d6fa6fa11a0dab57917aa2c5dda70bad8c6214192ac35a17f56e626409413f9d85373018b82d004d6f615740199a82cd0b5959130790a9faf310dfd40f7393604f4335f9dc83a779292354565123afe452f3452a430762b5be26817ba311087521337a18292df25920c51705fbf28d77717a55818a2568400264a439c7fef553cf8f8963b9cc2528ace84f48209a5e5227e189cd2e40e424c113e9bcb60b9c9f8cc5210df4c39172b1997936d2a71be4c893e277dbde57e17599ada580f17556d5c090c2bd743c89d875d2ec3710b43c4a76bdb0881e1cbf5206dc182c1302cf97765d72b0f3aea5eb9802094ad14b3ea6d65ca2e0848a145b6d5ed44996d92d9b865ff2aef6656c625c51a8c85b1abe88a7454578211bde51991116ada408a41edbfd4598a15fca8b9780b1db44d930c94a7d3ff8c98a1af9d221daa3fca5634ce645c8f5e68dcc51502cf00bebd7fe7a7fc4a9b8b43236aa0bd03f5745c3044792773e51990f393ee2baf6bc8faf22cfadc76492f39c20980d58de7e062fc7fadc18b2b5e60a560e24a69d1f3d8d0811e252ba6bbc45f6c6552f7682c95eaf1594cb1aa470c79296e55a3a2629d873409ae4629e097c24f7c7efb265d9e9108c2f508af20b1c3eca09dd09f1efb78d57ac03674a588088dbbbfab8ca2becf11af57bea562e37aacaba1bc2182d8b8fb9f601819f7a731c8059a541ad6c9f26794aeabe590fc551b426da1f822512cfc85100c9462a732e9b427aa2da09f7d377d06ab61766685cd6604909ea07b459033f403a5545123b4126b3b2ce127c67ad916b240b79d7549d4d4bb255f1ec944d7334db9bd7c391d3388bd56ab57d3bd82a3580fe544ef042a105d70e204471b5d51afc9371a2987421418c770c6148978fff1b07842a87f5dbbc751563fd48582bb1a5497f77777e776bf7ff96783f6d5826a98c89b9bb38ae489f31ca7e43bed43b02347275f209d9d558174779cc8ca7a2ad14ba9a2f266be9c2acbaba7893b47255e8746b5f85bfeb53dad9f2cc77c88253f0f7ea61e10dccbd04376021b9d2f6c3d7a91a52d5143439f9facc8c15b5c446eec27c7d48c952ebe733033ec0454ac0e8243811d08fb14a2409d4caa50dbed581468c52332a2ee667f8295c3751aaac8589afe2137c04a1dd5925bf209bab95bc41bd654bcc21b14a92c8b910053019b2ded8b7e4c8c62210c7821cb3c2848f1f8fc9018f41daa75fd6d24af657f759de7613cc0fcea483c39cf2fe719f314a2da4f74abac1d96c309efb9b06302c339b86fe5114f7f023ec18de84010cee0662a142c17a76e04da800aaede345ebdc06ba329cbd93fb6edc002d05f54aff2f98bbf2973288aedc5fe79c57efaeb3f580b391f7ab30370032400f320ab28a122d0ad82a54db988439d5a15697596a28f7d4ca441052de328ee638ac25c0b8048f7181b1813073dacdd7f8406a865c6dec299243a77e64d1a53d5f4503d0dc958b45dfbe7cc232a36f734ebfbd0a193eb556267c5fd13e1ef21f21c9975ad3d7e3917316b7aa4203ed0c61cbec8a1c081263bff7b57bde5cb1ed548088a52efd578f72ba26496047e6896459fa39ce04766a92ca2e19dc2b42c92934e4fc05e2e9b4a71faedc30300ba4e50c872a02fff31d9f5be901f1c7c4ae5190237c2cb29b1da62eff892ae0bcafb6078e3a3a4d340e2226d1a4262a1300a0373895a6738ee6e283103ac3479d6a83ba3aa454cae3f2834821aade458a259fdfa04034127dc8846d8a89ac85de7ae547571fb5806bd3e05ee24914157992e4cb069b29075c5451b15cddaa8a4ab2a5f4f622e6692e261de01621c48c3e61b74cec0a8df4870c0d101ce2b97a48d03e8fa256b16f906550b7397a7d0b11b10f703d44367d181d5cd5f5367793244778e8660c0bea399da6b329d2f9a3b4927ba4c4b7eaea94a14ad404c343dd66baa4ab734e034990a98abdcaeda1dc28cbbbe069c54cfad48606d3dab6f22004e8252ffae786f9db810daf3efaab83cc2355d4d790701b3056c8c0408ad94a62acc47d5675c19afeca84dff8224f4e9fc975041c74665aaf540e3e187aa4466d463afa5106431cfa681251fbc9c4bb419f00cca686ee386045c96ca1f17a8b6d4227cb1c25fd6908c2a5c70f8e3b20639c70510bb6436696b828d5e0c6d70a23af712680c145800e422cb3d3f7cb854d244040697e6b717d4a220be607ae8f3b09ab0e4c0845712a280f948d1c4a92e0e9b7d1c67bc632b9aa8663a04263671fee5cf2133696ee6b67929666f1d57bfeb687712dc67d60a6d8a54678e5913f987d8b500b8f39f5cbc20593794b0d16888431757da3712cac467eea7f8fbd90d03f0a030e9bc2b6db0688f85fcee9e710ad82ad54bc73886d16a865d46b6c2e341c7e1ae6eec2e98c5191ec356a6c9eee3d74263d946cd0069abb4d5776dc3a2de681c79ad132a363e93f5bd2e5d0af7c79340b6f304a3dc210158b1bb47e1e2b7dac620cdd98e5134e535055c5e8c3fb14f42b04db53c0bdb6502bef14438e56c49c536fcb528684ddac13b06e94945d67d88a2c038450f35a04187818baea4623d995cee7eba2353fe3efba57fa67e8bc2528eb72735abc5294c1439a3a4ef94f2f94b542412bad8c658785707b341173bc47551e0b29ad67d80ce0df46a5d536cc8b94d818e3a20e37395a372713f1ab91bb857510a1b227f1f10f60ee255bb71a73d873d9b17c56744397182c6e79adab7898c4e177b6be147790a48c6d34401c2b669882b6ae3cc33ab8be45313290824cde4220e141319a3399e0ed8fe763351dcd6aa2eddd167d568ba60d920a9f8337731fa54736c69109631d5043e750a530a59207981de7396d78efaeeaf7e883643c74de47f5153f9df6a1affb39ac4ff56b3d85fd44cf6a79acfc92326582bdaa93568bc0b5675aaf9e5d7f8d764cf68ae6762b1ee01c94cad9811931a643a8a53f1694e272408a00f49e40c8e1860a540750a8eeeb5f84a6f9e042109eb4094843c98fa8f45f58f97c07d86f150173c47ad52cf9fc80d30dda7008125d0b185c4e196249aeb88d738b61a47e11ca063f492337c95253414861e53b20e277e7ac6a0d1becf45c42cebba1cbb8db1b1bacd53161054be000bcbdc457d1f5d02c81635806556125eb66b4da4bb196645a321fcaf4212aadafb8beb229abeb9fcc57955f04ee17e067aeb352037e69c0b0805c705a002e7024041e315a2e4818888bf9e188a278c3bcdf29f4d9600721a038b451850870d122b810eb822ae661b7e66590bac71769c56f3ccb9055375799e8604f0077dad996a7c53d2ac00661e7b437a2fbdd34de97953c8a98bcea5b98569b0125fdf77bf32ca3642f0627b9a9d2d3e865eddc4da498df10eb89078be54b7d5fd243848fc74f01c30b910e2117db301224f1bff6340be6761260847b756326297c87f02b6d6527c5e4b6bc7008a62e65395beae6cc4301070e536cfac799641e164b072787eacca84471a010c956179e55e60a878969383f4b90434ef6777a7721f7ba5298a73e8eac6527c19d1e4fe2925a6ce24550f69e7c5ed5d164d7ca905e46a5952fe67d5a3b0a1f2b9e13137fe951d8c0183d4393576fafdb343e595ba379ad48dfb0dc8c6ed0664e3561bf865ded6627c8ddc215f130c744648d22a2ee49978ac748d5f992be1f29c243167b4c5c158245a04b15525003e0c0e80995a5d5688a6e35fbade661ced5b9658a946458f571016c111c4b040f1895308e5d96192df22561fc6ccff7a2529e72fe3114f251363a1b1c4f739345ce74266cb4e9466c65bfb11e3d4c6be3d3457c779405c782398c7711d028b8a71f4ca2662bc6198826477f406c20ac9a742342b8b8e87d73a63eaa7415a76829eee2e33a9704f62de1b8021ad724eb836d1474475a94b16d6f45311ccb645897b87753857f80e13622c7eca10bdc0f40f00b42e9709a239e3fec188cfe54f939df177b37583764eb0a3b260e77a2b3c56c3b0bf00b940ce6d1ea0250ea6ab59b79ba900f6b9f184b42b6cc1fc209993a53beffa5ff59dde4051c49077acd5915e6b7f27ff082a0b48c4f003584de6aa45c2fa60632373d4c6318ab463fb284d928f6a6f7146a0318882c9d72ccd815d805ec676a4aa56b1a6179b3af8f55242c3448b1fe85f1e345633cd5dd55770e19fb1417c25c21c0ab35ee111575a41f6ae411a4bf254fefc65ba64f9a5fb9de71477a471c64df2fdf0304eb6cbbd2f41c7bf27052370041188efa845b0fc10c2625920fc92e5caa9dc2c3b84305a1600dfaae5aa1c5932797dfe0f042c33302ab36ccb127a87cc3fcbdd90fa45c0459033a23414b950251773623dd72e6afdb818a31409d3916aaf3e2a88e5c3a5232df9580370796338cef6d1b80cb2697d71793e39e756d13d68d3e7bcb58d818623f6d93dca315f4400af50748a8daab983cbc0af1a17b0303e18d417b11ba39469344cf569b530e894f19da893357ca4d22a47ebdfe8f5d2aa0ea673a398704544fb259aa283a823bf1529df11e5f75ad4064b930c9f4180a12fe0ec279abedfddbae9d90011043aa8fcdeb7817568d77ccd8c128f2185b685bbb361efe5122487f6a8e9b0903e0ab784f085b9e2a1fb26d82924c87145f40b15dfa8f19911d3df14162cd3ee5ac1a8b96c67f4475e888e053f1ce3126b8a8d379c3ebf9864156b180f76fd66b09d7335dab5240b1f5c56fda050a5caed8141c37cb47be124297995a1f895365f353566805a3ceb695763bd969f3ecc4073adc718a4a42afa71f1792fbaa4c7e7e4e6a9442202aea00da540c1e1f748d49120bd6d2f57c1f31ed2255976332dcda08242817101a080b120703e5d889719afdfc93698fbd77275c01d59bd452947acf4e71c1349f225bfd0c813843b6e01a338fd7a75c8e8e7d0071a3713e91e4cfd9d185f0b66681597913fbd6a8cbfec6d8df981f2c62380bfbb08456664541ec0f6654a96528d606f56d791a0624801a1a6ce6b3c5751623d1e8d06170503d48a8ea05f499c7e5841f6bf972ee2fad19b4d30b5f4dc9c58cdf302ad7615f8f3ed0627b9b3d36a550784e614ee3a77149fac57ed4f572db901c80f4ed9342b60ff73ff21a3cdfe850140df71ae480b0e048b050f70e34810c365e89664c8e908d024546adc0d91f684243254fbc736d83b59db0f26a7ce81d6e93473671a339505643079de1bb1dc0605a4050782c5820341e289af9027bf55a73c6b7e3fb3d6bb7f2ad0b498a350920e336def2b7a41a4c95d1aca92cc2b57e7599235feb1aa73acab4f1dd0c7541a604169bff2efa6b1cc79cb78e2db90160461fdba08cd6bf6304501dd27c17a86ce38ce65b56721e22264fc0ad28c39d1479105633af5ac9301c446068fc12d98c7f2c2568255bf379a4100e74fefd23fc1ec86b47750ad67604eabc72f39e2581ab4091da4382954d7765046d9b299c3a2007b4b7195f526e0b8918c19c9b877368048114805390360a40ea9e0c6cfe869524856684d1901b71c42b6864c9ed84f9992bc6158bb8d0aea2cf278426305f0d1b7ed768d9aa8e6c3677dcaa6183d173a0296dc00190df15fc1b5c97b88128cf5e22fcaaa04da9bf3643e0516295da085d6bb1e7b5063ef5259a4046814e2425534abb04b630d6e0880831ba3c7d70383b65acb4b53888deef4b893b807966e81f36fe1178d59ff639eafe0d0cd7e014d151b831b004d6c3cb2fe763c9b16855367b3bd3f9f522a3d882b8d18f6ec2014177bada729633b03d5235562f7ea95d90016d273b9b26833267f79adcaa57fd695fd915a33c94050e9a31607c0314b54bb04fbc8faca55038f54947492da3c61f6794bab4589b9ad472b722b8bc161d3b481034385af3b767fcde2532138626b705c587402bc8e615b1f8363d895fa890da55bbe8c1bddaa01e8391f97a1733055bd63270d25b59c9c0c75fad1c3d7f5776b165e8a210488e9804bb9162ef35341aaa8a7eaeaeb7d70fd5451f5c82cd95a91f56d549ad4c19f3541f3d74cd595f6c294d45978a556601199138e314d1a5b4d47d9bb9abdf23d95c5ed6a47626d3ca5f8ce0bb5f84b7ab65016d64433fe7b9c58a7eed48736f6cdfa699dce7da90f72c3e1a78b458b1477430f98a9afe929d48c8f6aef29758a4107b2a69b9e2acbcf98d8c75b2cb0825a50c6e789e13db3be7a61f02e5b57d97c96526f8d7a1ab94aeee242a287a327a33da03b07c508c842d449d12977b0083e3caf626dda45574caaf4e79471218e85709d9b8e237759bdc4a9da15aeabd9847c2b92979a5e316e59f02d6b5add450f79bca119652edfb74e8916474945b7632206755d6982c38b17b77de8a6b137fb2302a382a100b1e080a0fce36121f3d47f7082721d1fced3dc42ec44d71c03edc6021bb52eab17fbec5bcef272df448f11d356f89c36c5ae35f0cba8e4d8b64263d8784e04066f6443afb464e0658a6b9013c5b1df591100382d878a939d1a940e7d4351552100a477d00a95400229efa42c4c2f3069448836dd9fbcbd81b9a198449f63e123c761a3821684989bd23d021307733e3bfb7b947612ac916c494ef2bf2107af8803394154f4ea8a2804513d5793b50d04773b0775334a03f248382e57b0f1b958e89c3fd638a310d029fb7744f4ae898381a5813f5d8dce759bcc66845cbf7e9921d705a6f2985c12a8c7196c7cd3a79b7fcdf8bdee646bb9cd97add2fd69ac15bc0c6e06bb65d5696a37b4e8d19aca4cbbb6da5adefa56313a92e9ad0ac85edf8480bdec19e2c8319d04ee5e0fa68c84e45063e881c6387a711375fdd1b7973aee94385a9e3e36b27974af1a8887ec7c164c92dc79c53011de99f74fc2b434cad4a7a4b3a49068c33f6fbb720be89c7847d34b79dcb92aaa49b37265c7709ff09d7ebc9966af8edaf5dae173b9c7e7d1438fc1a8bf197f51fd52bc53c1b8ec80b093c7ed5efe6c9efba60721118f576c5faeb306f688941dfbe038a3c4ff6ffa7a2a7bab99e597c2e941f80e2ce07f1ded918ffb803ca1f7e8b2ce162a418a3ad86cf674dced158d69cb799e0ae07e95a863594449c65dda69b981dfd3e78a4c55d20e8df178f7fa82864cfbeb6622f9331288f87deeafefc5177efcba63a299f6f7110c62affc80a7ab94176656c237d062da9c39dd533fe9e674c3110660efa187f018eb32e06179af3e3ce521fa39691f95fe643cee859190fc580cb3ba67e47f1cd450dee80c15257405c8a80c052efb466e2b4eb0ff49e0e9ecb2120a3cecb2cb3f99be6222509e66785f3e422d4e09efcc991b8abd45161bc4dbfca8a974608aca98a519b0708d251cf7d32c3675cf7c8a53c3a9e783c7c9f4a32f224109ea094d3620ccaf726c475ec74d8e828cf59962773a7251c0b924dc1dbf5568c9f147a596b375bb69991e5bb7e37d2f6dd3afcd131e42e1200998ad7ce441cfc7fc38ecf2109ddb379c91492b0a90bb6a6a2ac7387c388227b41b6efaf6877e57cfbbc91bd297834b5e536295eae56266b614a1b12a512e8e4a087f16c84fd297c8e0e5624b22103341ce38fd345f701c21d01d823c572be66896ab4c16d4dc4ae3d0eaa5fdce4e925fac7d29eaed4a035960bfee58fc7ed3354e81f86e7bd03484ac6bfe39afd7567418151a6c6ed6e72cb36eca8c7903f917953e704adfe9ca7841e23579a8210de671f41511ddd0f2f3fc857b3a1af974c868f5c89ac41d26ab0014896c1ddd8c0fdbcc53738c07afa21d5532439404c61c2385047f84d65d4fb2fa2519b1e7f83a17bfea474a8ea7fcafa54f3e22bf1d718c825520205b97cf90de11d4139cb12602651b3a7cc3f7248c7d35551036ec2d833c4a718991498e11b129dcd646727023c88db3d94dd06d417f55ceaf2caa645eefa29baa8dac33224ff9703010654a7bd7d82e7255d2d7e5a5f2e7d8d7b21ea84ca8cfcaacf69f4f97db54b18ccab973dc9dc9a567230748de75efdf9b36842153a194b2073ad38f25542855c3ff47f4faa58f6b75089590d875f688560fca8689ce6ab84bb90fc3211530e92dff18bc5bce8b25ac5ee1c41d4d3dd6075c9a2d45ecdf428370bf8048c045929b601856ed452090d350ac48fb5ab6974699869e0d1699d69e943cda3cf4378e2d1f577144300e98e5fc568f6a3f0d3de3d41a7ab7f34c23e57d5e44e31c38fb7a5a484a7f266f971ce093208f7db32ec6d74f12564ed1932da42211179952120246c584e82bc1ac48807e0abcd6d6be7081d7b8c208f2a20d8971cf9809d4356e08e42d5d36f9503e5acc857dec8660c3e1cb3736f30e1997e895c6b7b2b09a79a43c19bf7fe3830d51999fdcabdca557114a38feeb6c52ca5ebb11f9f3e24b166b82b10983a6869b2076a94c3cdf9072dbcb7302fb414d369ccd7ba10e20b3e5c41b606066099866a41b182568a6d56132f46e87e123f5e0d38ce4474365fbd044dedd0092734617004bd7961d754725b630efe0ec3bd646d39fb04ff70b72be589a9ea2beedac7729c0726ad9539ea29762b160090e01f069b7b4c98f486cf9d6835461c3c054604b19e2b56b365ab9291fa46560ad493b104dd2e4a18c655b9df4aec0f43ec9a7d61439406839646d00ccd83628c540cf0ddaba61daca59c51b0832b9cd6dc408e914d806a7002bd269768584edc0c2f408d92a5a889cb0e3c6115f8fabd021048ad847f768c09f1576a669f5dc0109a4fdb85ab9038c8558e9b22416a0af4d65096edd57dc8b58c6fc01709a2c771f09b1bce9ca6092f390152b5da766e4bac3d18397783f068438d485376ae648a751146760a49324fa1d5d1bab4c8be3213902ddd17e406ec7e4fbcb16c2c770514083ccccdc8bfb84992712277aeaed021e1a02c8035f0f972177cb6e8d3da13c4d271cb05193a2cf6d1b37a9dd3f5e548f917deaab00ae070c9c672dd647b8f8a1a6bb7ca8b64e98b7382a999815a5a3e499e95306a9073db2dbee51dfb6c01d7c77e8d741993de9f4aa9fa27177d905f244fb377a921dc46c5408d38160bf57cae99523d0da92d123eed7d8efcf9a0bc737fa08d539d6db4bda158904a8e3b50789dd4bbb9af309706120bd1d559c73a87223369bb34751ed05bf7ba17bb29c3925c91c5e25ccc2ea99dbe05004233a20a6af929acabc755b49c25faf5f3eb3d92e329c867ed1c6324e9fc140f7a0f0298f3a5779e20e227e29b67243d58af8bdbc8dac0b3dbb262132dcd041b425c2af431fdb05ad47414154b00667270e6713514ca5cd96dddac337045e3dec1f24f6a8ad675ff74113b8a8295178e390fc05195129af7707e19569898692f3d5bd15f89ffd257e88a493ef90820523405eb29f5a40809fcf1daa5789d08f931bc0d01dab493d0a6fa95713876ee1ea5c0ae85d41c38b547bb0e0df63e6c867f51aa1652da9a428337871a5b0380ba6f557607549608e3e53d7a4ee8c60cfee0fd6abba58a52c04a6c6253a7196d69354de7aed75aa5e03648fa69c2bc9df6fb2c91884ccbf04a44814076e2d110d60470f42150c2793ccdffd8afcb1f6b0308fb04e8c1599974599fb690a770c3d8a7ae9c2cb54b0aae4d6cbd08369143fbfa9e102d1b378708e78e911996f276b06449b343eb1792871dce959700cda88b219e3a6b4b958a1aea153b48eb6f2f580097ee16706bcc7419bfb4a857ce7041eb8e107c48901baf91390cef5a23316d063e377e6f5850387bcd5df07fa16e3bb3abc8df15bbe11df3204764817684c78de687ab027a31f84dbec207b8789d8e63fd685a91174dd16fbbc9b880fb6774ab685aa04a6ef41a5610d37d371876be261bbe071b93ec87ae2bb38a9f178a7ad769a63c5190a30648fbb0c0dbf9fc0aeecb977417099312264f17a33acbc993a3e1a0d4efcd88da7fc2dc2b353ca724513543bd0eadbf0578ba96e4bf9c5bdbbeca4ca7d9207e14deb6e9960f51a2fc442cad6957e62fce38bb4440ece194f66dd9e70caaee43b0fc56aa22835aa18a8e3771105e3be696399067c3a127b8e8fdf0847827ad04daa3ef5c2af177aea1259bd8db216c0a33c3206edc78852b118383ef9e5127f21515d1509f57f4f83fb862bd405aa1bc6afa826339f22ae2f150c9eec361f82f006bbb419e3b4276e544f42bbea09a5663d38d302530f2268c1864149071cff20bc975506c2869423e20d6ec3b4c173b279d3acbb51801da6314ccd97e4898557ab1b7fbd37fa1def6619488c78e05197f5c4df99b1cf4ebcc8e88037f85f0a90e2dbe59fc9493112ad5ff8bfa4167b4adb2984ad429cc14aa43ed76cc6173cf85d34849d977415f4f53795a0f15241fedf4725a95df69bdff4b5777aa59f13a12ce0c9f0073d4002c6489c3530310108f6ad17550013879add2755f73e34c71874a4ce3487cdfb04b0214a5e19800abd26a382f05d76bb51504a5710d04351f81ba9d63bb0ada3a8ee4db71a00632ab8e6379ccdd1da819f6a7b1c04434f4ae1de1e8f3a4bde615703845aeeb510402dc93e1d3629a2d18dafe2e2585224fb575abb0f4aeb6be84ab4d008266516fc62d69c43296d15fce0878ce5b7f338b29864cfdcfb8f3b8d03d4f5131cf7bb893d12f4fefebaf48d78acd7fcd794ee22189e1cc656e857906d1d90603e8e2c03766e17483fca3dafe430ad60357d7bb0db4bd02ecdc6c49def3e6ab68d4bc025137487687a646985683b5d8921d61886827f7d08fedd6373599dd99259bc48add0aa4e81c867fba37904cd9485f7636b60514a8705e93f066d6f12f3570b5f096ce8990f37f1ea33db5f1b441bfabf627d72b602924320047a044edbd990b20e2ced24d0857caa36d9d02f088240d63dd43b9ae0e1d51c5b114d868b2ce2fbc60e6ef2f820320c3f77916512ea819ee7402e99b4ba6aa72e622a7996e4c720466435bc0890bf7dbf86fdaa33fbfa7585f4778753569723e46303605dd66303d25784327decf53de5883deaff1c75ff3d70fe3c76f83bbafe1cfbff79e25aed78b1542d821db0b57f983989403c5ab579228183e2715bb9725c1dad7eb5ea2b90c7735966c730b050a3c5c147495807aed2876694897d12790cab7c39cf253f6f6887dc462ea6923c2c90925c604a9fa8cdce03613b93b3de372305bac20e08b24d3ad09e0af3139645a15a779b28c366091abfd3958b576d61fc48a44915950c0f2bef1ccf07fc678c8e24baf49d8cb5509a3a8fe13b867c77147a9d7d49594a383d4a6395d6836d7089d58b29e2b4f27227431e9e11ed276bcea79f28cf3b1d94e2dd4d43f166f908e7a7274a9f6af99be1d4163f815e166f4128a1b5529f112a6dcf4089a91f1c0455135cc2b51e2bd473b5df179e18dc2bd4e720f32658c1f429be85bc1506c7e12825380309c9dadcf8506bd959c03349780d59c6558894ebd4c95d15151c0b400a3e3a83ab0433cc4b8d6c8ff35ff949d86043eac180607c1cf0e04be463ab21cfe32058d901c1cff815ccc8e2f0f16c85887bc323ecb3e1ce968a1b04b0b66141a9ca32c3349373267a89e7ad825242feb5edf306c96d73e651df3a4fea2bb6db37331a6ac24071edf3a1e797c8c0e9ca5c1c7f3e5f2619844b3adf279465ce21a664aad8d26c244748d6be926fdb723f199d4fbdb82c4526b1ba7585ee5f69b7c0254a2a293f7775e85eb1338ca813eb35d96e3dc5402086bd97ef9b383c4c918b609c31530bdd5af317d1257ad578af42915d12e6e50825a58eda8a98436c09d41fe94f265a444d031e90dd1a13f5dbc6918680d0936daf76e4fa297ae46999f7a16ff466d8e472e70b50f5cf1a287d6ee336126eda157bf7d78364bcc4e31f128763e855ac0de2cf47353b059c336a0069deaa84cd9930da88b8ea3aef544628092de0cd874844537daa71d6ae5b8046ca14895631907138fd559f57914b702879c9699881be3b8a8abcc6b99c1ed068f691ec66482a131698959b8272c5d6025e35d5735b38047dc6edaa2938c97d5624cadea7d68abcf61c8cd8caf21fef61eeb3f74dfd3806bbe425d17c0ed5261370c97fdf3dd563ba871f4dba9ed4f5c0793e7b4c56c3340de252cf63e58f5809aeadcfa0905850c373cadd501f9a518f4f0efd3ebc84ef9a28813b9ac52919be5478d833bbd76fa367387248e2a91cff45664e689c5da1f60ea0f8c2229aa744bec767419dc0a86150c575ba416b3b0334b5ee2d4d0434a9bf5c71cd96bd20620d29259afaab65c4019de0c1e8b09a0b4eccaeed8d943ca1e2399d06e88e5b56d27cb9545c5145a688938f7c4b5941907edb32f62375a64c0c118473cfd692a369560ae147d66a2ec0a59fbea460735e276b9598711dafc7cc9df2c37600ddb10af1bbfe9e919a82a3725bf3cdcc7c29ce0c37fa588eff17a009fb771016acd3918dfc1b92bb6dd201008c08a59a4fb922e1b7db26f6138f433d61d6ddfd2c9254b8e7b75eccf49a494661c89997ab1220c68ec4fccb152d9d66849dc416368aa3914aee0bbc4b1c4f3ac6442e9b02ac77ea65b1ed770602df3b4e5df0006126068e9727b6ea4365f95e7246889eb0e2c6403ef857af642d13b8feeceff2f14523ae78b5ba6b31affb3a2f85709e818d6646046e87e0904b6dfc204f793fcd7f541487fd924de3bf293ffbee92360d269a27dbcea413a6ccac2b0c1ab4830564646c594853023bd3422ab3074fb20ec287842553a539554e0c30c455b71ca73ca7e657837b0432cfb79a1a4709a0865d7d3444ee9ceacea7bbcca6500afe77378ec89969893b7d3c7aa03376d512d93ae0941136d7c5c231d799d799c156071eae0750cdc07472d6db1499cac956c95ff8ab9c46d46fe6c39165466adce0359d1588e9d763e189dfef4cfafd664d72ab5015d5fda401af2230f28597f868c600fea6d85be5a72d9920e8ef975a449a6ade7eaf4e058e8e1b9b233508adeab766a86745a4bc5ffbf93f77bc72cf8e19a46c8f153695f72068e24b645ecad90def88ed8c0b395351c0fd2e2016d2ce1dd4fcf3867bc4a09227d86b5528282e381090169cc1bc994426c6ab67e10a7e7dbf695489d13ab1c1570600db9e698a14d0b19020a0e147c2e9ea55a7377e751488b0cdc915ed7c82488f3a2f799944768066c5556c67e5602234d96601d054ee2e98860e5c014eccdd57c464954df632e07c6b4c74f600eb04b2ae879c208315a0a88fa928edf73d2b8e75ca9535521d1f48b2d909dbe1a9cc7e052a6bde73776f4ead567681cd07f1c259622ad2393dd99da619604510e6a8a3c58cb891469e134790fc6e0aaecc1ea6d8536f5576d76bd26c776dc8a9f330f33d0d88840db09e5f5cbd9c02e042176e437c379be2866b1d3d73fdee0ecef3fca72a1011c989d05654e26c7e31af2bb6837018a12793676092e20eefca3d69f5323ae74a44f9c18914b62ab97464c4adb2be6ce560f673288b406a4be5b05ef4cda93ff84fab44ce5145f0b357f53c11ef05b7d0192ff727101f71877a7f882b622bd292956a5c8bb15077db3f199de2e63f18a607755a53f37d27ec3a829092be347bfbabeb50fd163372b809b7fc3b5a1b7ffa3a8f1ef41a18fddffd2b76cf4addbce2b8698a937d7f1d83eb1a389efe0abdf98fffdcbec26eaf889b2b7f379b02b1f709ed1996eaf14ac8acfe04506cddaac95e08aafd785ac380ab9071a264775789a55d6860edf15ce5ed32443251a4a41141049af7b0d66dd300a10cc2224ebca0aa1207b2fe0a6b587a052bcf060aac6d114bd5a2608842da2281c50c0787529b25b4b4e8dcbc7277afc09d2b0e379320587d52f08314f7414f2cdc07ef9b03305da333eee294cff0e890cc7c64c55aac56eb0ac6f27f6feb0bd2613444529484819afb853449107bdacdb42acbcb5d6c64131426b32495db8bbbbcbd6cbe69ab59eb32d7f58ab7ede6f1bab8dc617ddab73ffc890b7eab5e2733a1f0092f134a2e774c83084b1110cd92eb4b7cd5e17b846aadab5b1678b9c91e5c9f7e810e6a119ea6d3bc41c0bd2dc92b0c6f7558450262523b930663eb52fa8bb7823d2aa501e7094d7dd1cfdd179d663fa75c21dfafb54671c4a083c6e3b9e813feacd887db1d527acdeea73f839ccfa37bf1ddd71ad7f2c9af594efcd14dc6b815af6375d6a757fb36ca3e553f77c8d4169cb3289307ba55e17dcb1f5640ff5ea8d62672f8ff610a6b697e8f4dded192dfdb86d76f9be1a9d5aa1c8f7bcf4ee781078842523cc7c2b4cbf0abc95e01242875a72e056b6dbc51410e5d11d04e249acea0607b7a725f767afa84e544fe71d0dd1260eaad9eacb16b5450a325bb3e989b56e8e695776365b993e260f1cbca8ff4c1ad5c8a8e695792c251ba06d779204821316e56d8a247b55d2bfd94b1dc51d1460ac7f9d23e01869093e8a4561ff237c7825119a3b73583d796e9699def61cbee1d0b050c375d88f81c98126e792101e424ad976688cd9916c0d3fac6b8e0b870cee63c71393dbf3335bd3d91bb36f723243057a7634790a60457513e7c05221871d84ce78daf566a71ea1fa6c9608817996a6f306c33ef5b60aa4609b86a98ed129a403e82436828350dcb938fb7d1a1cbecc1d4b6730494811e63be96a898a21d3d0ad459d08bac975c222c26c92791ad0448fa4d9aae3d8fd9da8ae5be27a6827d20f70783d5a13e829ae210525a9b220a48b9fc32fb12f5158293ec2c5a652a4e32623503ecf0835b182de14133c40519c007e66987ed06ed9b801007958eac55b1a050605a9099b663c09b05178a8f8885058ee70d0678ba4ec81e13ac70e46bbdb7d4acb98aab240d44a5966ed1c31dad7a667c4969a0cc02b3386729bbd84c37236935db1e0b0749a8a20e1855aa32fbfbe1fc483d3039776086f0a479a998d2fe9bdce367d9b1ac6795f089059aeb39695d72ec8227920cef0c04eb1d90fa8b41363ed9048f16c86cd41576006ec389c8b66822f2bf9aa1d61284835b6c1b662c685c0bb520684a1ad56259ecfcccb7d85416ed36691a7ab497d0f50e00226b97c7d1c31031909b9346b3b4b5ed4ccbfd3f174defe4aac5a088999a206b8fd0737a426ef945532049cd3ccaad15be33ba0df3c089c380fb6843749cb80002fd752ab4168412d5fc51b96783294167f29a1f85101e42c93cf1b9c6bed214166cc836c04f70aa9ec9b9e27d46855ccdb6e58c4d05d24228309d9e5f4e6ef390d750e454d3e3030dc8026cfa4f1f972a7b3cf108224ea6225607d13ef7e62cca420fa523b166d03b51f12c9d9622571d6948089208c16dbc46c9101083e251ff7bbc4c76cbdfc7563a70f086011c158905dc5b334d1589a142ecf902ac60dbc2923d127b75aefbbefe1d827884dd7a721a4c1cb4088803710d553c442b1d4b5ac732f44b277a364d709b666a1a40f39007572e3fe44d9dc43e58d6424a3be07f62841e3d65d34b8eb331d86d6af43167a9c0652be245321109a8d60be0abc99351b5c8fa1bbd9d25805ca1d0f76633fe199a5d05fb2cc280ab340059941ff92088c60222bb243b6fa7906b922833f261d070ccf3f67fab450efcb42cc3074d82f23419eff74d7ee6d2a37686c1293d55a5eec9a0de8cbbfccbd3188d5042011b9511fcfc64baf3dcac7f98db070cf3983a7365141369c74b449822ae6a3e0b6fa186ad910b1bbcabe84e18372b8509d8eb3e86611373088d2d66cc051d15da040e34a3f63cc657e355ed37552060ddac9dc07193fd4b30d0eb49ce2f6bc2c7f6ac070e204c7a5011fc153bad34613aab3a7947124ecc8bc965ca3096556b584087ac26d04b753b3d940743a51c16caac635ef16b11e7c2e312fec248408635845e88f0e539c2acf387c7bdce51872fe7020daa1d86bce2db23d825e4684f059dbd435235908e0333c43c60d033d3238fb39666c3b712aa25b0c1bb2091421fd3c9453b6975461694552a520892afc9703756a6ab0de751164abaccaf0bcc5d68b1203325231a2f62c1f92135eed3077271a5b19f1b84125aa38a06f2805eaa2010f77a40d92e79b39fa17c03ae00e13b93c69da4ca204f5ac020683fd40ecdf3e93ec07c41ffbafef915c05f90fa017e1aab1ade28d866a4a99c9b8de6e52b2b608fb08b6c9e1cd025e920fad5706910d83b9449f2b8906e6e4bd3ea63b2a1916f03984f1ff8bd2c8ad8e1bb4cf1660e62210aa5d059a96610dd9fe03b5610d8484fadf07d1e1cfdd595cffdeb412bb011bf2a9c73d0abd5bfcbfd1dfb9fca7e9189d7bf77367c846a9c04b26417db7de136e9a1b1258b6563e7d76331f7286ebe53261eda52ad4c36c4aec7d8ea0e2481e6d1a0c079c3dcf8287aaaf8f4b6be981e953f713a26a24e103578efd813e2531d225366e09a6d67dededd2b65dcb3fc90c2787673be199dfa326756b1e812fb3af2f08389d86ab3d9b22e5b4e56211ec43207b5a252e61c68e3647dbfffb8b123649579ef43827f2c86e9b5140f9c7bcf531863c92b13e6b9940c26ecd494de41943ff4c3cbd8f241387d923c0286c23c08d98242cc250db681de56ec0a7cd0fed158ff6f6cebf958db2f283c9017875381b9913cc125fbcad9fefac3e666342f0ac440c7b62e688a16108b79804c14f5e12b55f5cfe1db84ce2e07e6f496bfbf67c1a66b9a0e83f2fd93f0a253795dd6d2016522e68508ea8b13f132712465d7ace5081c4c606eca92cdb87cf59df3fdbfd187af5ce1e423492a74f3f721a1826d193f48efdc22046c510b65612b70c04dd194203953af0defcb220abde505940b0f1d00f82bb5ebc32c6d6c0f64c535595c417cb0b04092057efe9cdcb2e01aa8b4b9721352f7e2abed6c123990718fe277725948a64b38f1373a1e20991dafb314d55cc457af41d4bffea656e9e953762f5b1b7f623313d6adf56f82cbf9b5db683986dfed960e4bff07021d09bc25aa554aa964c9e9203782e72a0d3bf4b625da5cc708a9b47c64bd41cd2d02cd700b78a19028e6384145c7fa2090ea60c591ee288d3e3c1daa4bbea54fd4de1354dd320d16284f3fc73a135c8c33fd171e9733b5d9a0c3a48fa91ea5eb808f6ef695826dbaa5fe3f206672c02bb539a5f15f550e7fd2eb5e325fd7d602bffba54ecac155feb578816efa57e5fd100319b9e7b718f118f337ffe8935950bacf73132f75f105b82bb247aa95351c8eba423d170b76f7b6e2907edc14efc175e27fcd434b9c72000dc94ff9ce9118319e62f39c672ff6e75ede825ebfbc8489b195ba87d8a798e067da6f683dab2c7f197b93c57b2db6a1ea3720bf71b02122df0135ac154f873ca8c2f971c3f39640c99d3ecdaf0892f0b475c555863638c0429e5b5930d103dd977286720acfbb330be6c820e572f135037b5aec9178469f0fd2a2554e0b6dd01df8ae6643dfdf30990637cfcef62b2fb1757b98dedfde0d40f5f262049fcd9242a1fd4398fc89ecf9598a8298f36996d02c641618ac838a99c97227ba74407c68f3a80074c6e586386f1278e5803a1d8dec2e03a8aff3061452cac13adb474d32c629b3c3614f411e3d07787ffda8f5bc74b8da69106f78cc6992d9d3386e3454d9a8914ef193f07fb25e05bd871fa6e368314505dbee3cde069a2a2b6b95a33e40f8308dc2c9451c799a6c622d688c8941f0febc5785ddd2db72737c46d0d39827f0d5882f56f12024a1239643a5a4cc69af60551c4d8cd9ea39955232a789166fb2bffe8a0057154f2dc35415c17bef67c0e961381fdb11b9b1b572ede0106bfa8848a35bb33130f97262cfc48c69ff240b2d83c3a904ba790ec7400bb3b9937166325710a05d1e1e4c6ae6cd2399aa69f1ddebc223049764a2700479ce1a682f73a4e53d83dbc3f5eb56232f2dd1087893033445033ad226945b305855550779c43cb39cfdcd3ed39e09d33ca685fd9f092c9c081c2801834a7f3811ee30fa080a9e403e742c8b70cce05978308a3744b6a669c2f99e6df734dd3b354dd3348dcf92d63b695b57f57ddfbefff7f6ff96526e29e50e2d0936094a09327f83df145184d7f06ee8808029823e265a569acfae800414a1430e08c0e1008fea6e7894c775ec3a07f1b7777bf0ace7fa40115a9a1f7d86050859cf08adf2828dbf61cbcb4d5e0cd597c77c2a545f2f6ff11eaebcc670f63a43f5d50ad5d76b743c3a6996e40b8f3de3d7f8f26cda604e9250ca722ccd56d3149d3475259146332f3cc7ebd801739b1ffde6731ce75f2a46a010f8857e8d30d2e467709987e1333fc3690ff3daeb38cdcbe0393e08aff9d16d5e8ef3da5bbccd613e86bb7c8ec7bc0c7ff917387cff891042b82c7de19f3345d0c7c40c32f8ccf05496c6d2562e9964bcab480c1b2c95f58c085e158f375cc137c15d35a8aaeeadd679aa5c411549699aa66d84b5ca12fd729887c97c4ed7f449de16b96af0ee5c1587e3b9399ca9d3dd1e77476afd7af3b222420081483d270be2aeead383692123fb09572e706a920502cbff707574c78c8183232f8f5d86e6662b4e51dc155ede001ef30570972780c3fc00bcc50bc069be86d79e86d3de069ff998cb7c00dce29cc4e20c40801a9f9dc6cb7e6c7899ef5d411487eea0399407d5a13c4eb151a3421bfbd8bac76c326d7a053b9936cc2a4d5e6bfe1065dab0ffeab277b1df0503446a81f0eca64c9efdc1b31f1bf4bbea2f655a21288446d6fca1cae459df6ae5fb5bab4da7b788135db15ea5aae55ae556b94bbb95bed217b228651e26a3e66b709b97c16f9e06c7791d6ff1390ef32fdce5478f7918fef22f17e275a0de755c26c314411f131478221cc7db9c1d6f5393672d1444bc858264c60ad9bbf88781e401e0383ecc9931c47b8feff0ac061968d09961b5faf1f550a9d4688442a150a8179ae3d1a13caeba570c9ce1556338ed65ccb07918cebf601e46ccdbfce5948308c2d3f105f3a013be2128b82c4682a2a86ec7a33bd7e1194feeaabee3b860b8b25af982234f6f2db2f4a6c6d29be7d4833bf5e02ae71a73305ee4c8debdc4e4fb5d567bbefc4d9bf6376588265f830c3338cdd3a0334346fa2435d030830c3a3364a4bf923c0c06cb71522d4b3ec75f1e7bcc8feef2da611e06cebffc06e6352fc30cafbd8c99b7b9ccc7dce4b3bff033b84c4f11f43191bacb3c9c2145ff67f09dfaf69f61a739ef2a92ba82572de294e17de71d77d52241280cc978994fb8d2eb29cbb22c4b9769182f62b0f3e524242a4a93a7c165fe85cfbc8ed37ef4dacbe0343f83e7781c4e810fc277fc0d6fb179ec380f6bf1301ce66deef2ee311fc35f86f00abc0edf4f5a4b9e27849308e1698ebf7b4cf794f0290c99e44c8e9821237d922021de2593798c86d257fa82c1195e0654c27b32e8b8cfa73023759f8cd47d69eabe4fdd4792ba6fa7eef3e01a8cf1ae2228ce06e3c54832928c2d59ec9587d08123881ec9e832d3a6711efbcd8f6ef3da6bfee53b3e08a7c0e3f01cafc3691ee6339fe3423c115e811fc2f79b376e688f398987393287c9f266f96d95736d215cb94ef2ae2cb88aa038f4c6a3443c3ac4a33a1ec5f168108fca5cc19d7356d6fee6bde69d4716b4404bcab340ea3a3cbb38a9e3ae7a6d52cf5d75d50b57aeff5ce00caf5a52ce906baebd8cf6325fb87251a9d4088542a15028d50b10ef0ae219bac3a3e3f1388524ddc1a5a6b5b172ffb8deb8ea759292d79e7e0cbe5792bf4197f830f40f83fbaf2fbcf6fd7a75f9308890c87a730557b953ee9a98b655ce248877c1a3a901cfae9b4061a24d4cdb56517159b5cb7c8ecfd41e3bcdcbf0968f79cdebb8cdbffce66738ce676ff12ffc65f4fd794d1fc7b8c2f2cb871c0a53047d4cc0f05b4bea37f561a92be8739a82977633f5569d971179d98c9749211b9211c3364590091f8c344d3ff5f4d64a5fbc2b98f3ae2231152a4cdbe8e44b59b23acebbcbde05edb19bfc4af33260b872fd4d4990fcbaa987e4d76b2ff391f5842ba3d15932f54aa65ec9d42b997a2553af64727914e70ac6bcabc8a32d1ecdc93cca1362277914e72a7255dde25538ceb3f8cdafb8cdab78cda778ec5978fe154ef3285efbecb49ff9ccab2ef327be1faf25cfbbe142bc57e03fc73f05fe496e784c100e83c3d3979417847fcac3e1fe38c69545c54d3d976692bb498434932342b5876ba50f3721acb913a110aeb90fcf8097e643262b84348742a8de1655756fb5ced3d45bafe9476779d9cacba4507919f065446442e1ca7593234c72f7faec65eacb743e77c27d43654b8baabab75a65e95be5d6eb2ade15741551732aebe9eda68dc4c959fed86a49d2db8e11c78fb6adc2e48541bc0a283c886bae209e5d1fc7f30cb6ac286eebe0c6abe64a69f238cf4c1ea3b4987cc9f38070122052579114d3865357d0154499cda83333ac956a26859a99118d7bfb4af2e12afb708dfd0be6fb35a27fdb538cb882a80ff59165c1d79beb6f3214dc6432b8a1422dd908642bb88959586faee058fe4dd6819b0c04379909d6eb84f5e60ada440f6f904b1bfdea714471aea02bb85ef1ef13f867bd6e92da21816b45a0c4de015ec18e01143f3109532fd43edc23c25ddcc32cd83f1684210e59d05a45ba189c53c02cd831c02cd84de09da8e70ad98a223dea1f59495bea6fad2cf157ab6ac5e20e67d96aadb5d65a6b3d7e98a3b5d65a6bad750556d1c315bb5debb61b8f236681f6ac8fd83bb8b4ec57db1102d8176e9d901ce42048906c05279c10f2031ff480089b079b07a1d64ede5845d1e8e5ba77f9a2f9c28e1525bd87918f4e8e461f78586fa1fb50ee18d92b039f219f216b9a66132b9f934f132bd5e9e4d3844ae5a17952ad3c3455406c4dcaad4fca59a2e9a4cbca4a6f64ca34d3546a9a6e81984d9843664ad5848feac7f466572b204dacdcfaac5643ab26542a55133eee530e2202e127eecfc90527b7404ea9f5c937968ffcb4f293dfb29face3b374bbb4939f38bdb9ac27bf293fb999aa6e2a3fddd251a5d487723d478e12a53796397293e9e27aa63d94487e9a8e42a53797d5aed21b7ecba6269ab035a4d347a6e7f51ca9d21b774d954c5b4a6fd6673d79d8846d39913ffa6914c9f4666d63292dbd78d51149e210d71e4ccf1e9a31486ecfd3ad694379e949a793ed5472522a5e95d7f2d28bd2f1ce4c1f7d765ecb4fefe292a4b3f5e39d8ddcfc6bc6c83e7ad368678952e4a1be21aee3559bf0595ddcd52545b16bb09fd84fe03c0316106bed6214a7107d3ae56c22ed158542162fa07ed7ea2a47ca3d32628ee32651fa5b2b6a8b4aa5914e533f149ca7a9db343885f60cb60c48e5fe299556703a4d2692269d9ad513031898cafd82d3fa2def72999ff1d9d7388dbcae3ccfc658e35ab143c29d705fee88969b7af3564d8ae24c70ebf55b49919222218b50c6e2654456bc0c88c4ae4673e288dc2b4553583af328cef5e80e8d47776834d425c6f70f4a2ffb61214993e93ccff33c4f3c501cba83e6501e5dd80203db58469379128ff9d4615ef59757e134be86bbfc89b7bc89b37cc9caf30ee0b2e7d17095e7dde03abce7f0eee33f38bc031dc061343cc586a3dce0afc731aeb39467c3d1c731aea9e7c731aeaaefdfa599e04c2e10846b3ef481b066c2011dae99e44c7649843413248286828282828256badecb802a5e4644163c79d990c9054c70262feb2979d9ce874c3860923341c26467923e44fa10e943a40f913e440ead97e4b7956ebde84e8a6ffff61495d1e61bfec428d7c675948be2509c0fc5f9505c6eeb80c6d72ecd0a5e0d87d548d11d16a62d96a2381457b3a2b22265a6aa383129215991ae60ad542b52a8152b60345c16edf9fc781168cf0a70b09399400659407332108c00054e107269a2a02122510ec5a1b82040263d6b484284698701aefdc01422d0e4552e5bb14a31f474a92933d82b0cb25394ce1195aba856ca49d587abea4dbc849d20893d117ae21b05e5e46475b28abd5d55143116bbac95f92e5bb162a8aba51a21c94c283c74ba51749af1e472a2114ac53b29978a59d0cb07cf58ab9355ef05c3427808cf7038c80497d3f11077620f0e221922c55057cb49d78846a1b050505cbe326dae974b556331576cb5623939127b1c34240a200ea254a47808cfb0aaae56a8fa61ce8ab54a7190ec144bb110c9a2aed4152cf552a53e75d78ae22e94131455f5e1ca535575c55ac5d098ce2d4b6435e2aebd829297d8137d2210d1053f3cfb71551fd885f57a620f67327b1128e5451ffc238a211f9ef57090d88bc554986432f57467ad66b1177b3fae2a43e9ff2850a435e5c5a13b03820a89beabfaac862e4d742df6449f0844fc21f6ae8a5347bdaf5e64bdf8430422fa883ed7480b076da15c598f638f857014588ac7413cc3409c0e61608a8ab59ab156ab14d6aaa544bd7b7eed7a1e8ab39ea7b65228be4f2a1265640406e5c39c911355265bb156620f7d3ce4aa38157fdc19c641e28f4b135d8e5df4b956ac550b1a1bc143b0100ceb79281e7bde89a7bcd8f3e199cfcf13a80ba5ba6a24d54259adc45eaf87855e6064f0102cb44a71100ea2d168ac958a9642d168eb59127fc49ef80b8344d10e924b4315c81d2e308ea1373665ecf446b38e3e92668c71dc576bfc591445acefdde57ed168efd14551aca36fcf43eb98deb463bfcd587da059af8b43b03de178b3b6c113eb3d6ad336ee9d73493a99251479ba6872515df39873c6d9c7afa1344b4e66d3369a4e1eaa85329da6d299964ad366a6e1699e4e25c7241f95d290949a6239d2a44e47b98601d8208ac4559b30843fd8025934b25738f188c4a71326cbadf179474261707c82041e0883f88783e020b69b92fcc9fd53ffdab10d614d0c85c2a110180645b73cc25a4a4893b9182b51ad4c602ed3888a17aae2a2d710d6566ccfba1d07d98f85009ddb6f38c88a7f291632d32c949bfc36fd046ee8700d8f24e96d3ccf569ade5afee9cd55150791179762c642b0cf79cbbb938bc7e27b449f38c9f23b4b601f2c8e7b58b098f5c9631fc63f5884c12e0bee21ee763aabacb192bf61cbe9aa1743f5f4d58fa17a3aeccf503dddf5a9503d7de45fa17a3aeb3d5c39cb503d5ba17a9e2e965c2c3959da599f2e965c3cc7130a0f9d6e14a1663cb99c689452f10ec661df2352559e9ec4f3abc8beec937f8052ad22aa4d9ea8d0976347ff1279a517d87af11784674243c0186417cef0aa2622500ce2763eaf7cd6992250b88259657e1212cc4ba62d5d5ba91bc4f50aff58cf3bf99da4467c259e7c9833120ec1bc995ba033fbed0699603014568a4248488a3b749e2ed88b406210518828240eed938a540cc2422ba0d409b555aa97eabc4f9ce6fd699954a908243bc152f107b4da2e485d9f942aa34c9b86a588e47fa9f2bb584e58d2abe3dddcedd9ed7ce6ed5d15f756fb84e3d960ab95bf65895820b04524ff6a44e5da4ca0256952e647ada88fabfeb82af6f901c2331f9ef5b86aeff5765d791bc4b33f95b74350bc5ee3789ead96bbaa8a19580478927c7cb9877b0809eac1b3ddda6ab9af2f2dc064a12c16cb6fb2412c9005dab098872e93e53f9ff8f9d93119f9ee214aa9ff619f773dae1a4bd19c5128adb244643e72d2a661fa2f0405fbc8671faedc73559c7baaa04b137269435c70556c7d7cb60301bdc8494b1292e45d9a9ab6dc937d5c15e71e629a77574d2953d7ff9edf5c559f579f7b641fb977d5dc638184add4fa7cac7bdf8c61ae2250b9ae5e04127f2f0a11870ce19928846741ae1a7455eca990164e1faef687ed892c0fdb03fb28316d4f8fe551b981b1af5e07b627402e65eadd5b3954719ab9eb79b99494670f51be5369a81da5653e336db298940f73642a4c1d318d21dbc0abe1c78399c355b10a1306bcc6625a85695355d3b6da5bb5f32ec6f56290599a7bdc19167f238e51305ca0d4d9ccb4ad7c6f95932e27d7dbc0521a51f496ceab1783cc56cf9b39ec79278ef259c5e71e9c7b78e6cb4066232a5c7f2be5a97094eae4ec779698a9d2300ba7f5198a69433999b255a8adfe89677a66f22c14ef33b32502e119f6713ccf5b0bc58cd1b28abf7d83131498941815a099d58b27f167da54a948e4b4244bcaac56abb156aa5a0a55ab655f512751f47c96c49b5992a35bdee59f153b16711021b64733018220b667b483e4d6a084892e1c79e446d25a710927760f85dc205715b26fd0d6c106b23b8e3dff84358b01c79e7dc29acd800580b046f408693cd076708063cfba90b600c79e73218bdb2de3d42c38154424ecdfc8013ce6f08804767105216ddcf5e0d807c70f706c43162f38f61bd6d870ec62489b80bd40486b404893008d018efd15d27e70ec1ed222e0d84b421a04c6f406b9423270eefbbb42ae7a5db64fe04d5c021fe33f3c8c47e05b38045ec61ff033eec3d3bc87aff9ed69dc017fe33c7c8ddb0c7c0eb718780ab8ddf91d16f80a38102f84db0bfcce1225246e8df89d9d168f79035e5267808bdf18d7f7053c8edf1857f71ddee6025d9aa967eb20a49992d83f5c33f5460e84355313c61cae9984c6dda59980231221cd6485fddbbffddbbffddb3fd376003c89c7f0a9c3f0efebbbbb7899b3f898af70594992cca58b8bcbcd832faf83c77c0eeef2087098c7c15bfc017014e0b44f80cfbc7be5bf4255e4e65b11054c9fb5054e6b5a6dea9e9c6a2c051eda22cf4634e2341f8b3fc2f2e6f58ef4ba27095a944deca468fe356da3741be1d43d463145c289e8e48ace22eef1f1010873f44ee854f3ec8999897f7e34ca114eeb3805ab983631dd4638ad8b2da2ab983ad79a36118a13035931b1cfc7624f5658466d438e368f7758a7ebf58cb71cebc62e72bbeeadb7d676d45ba4310b0a895b706a5f29c937c56c3dc5b4695285c5a524bf0c02813887713217334b493eb9ae8c38afb0b88c827ebf2121a1984c84b5bc8c46634c49e2bccdb9f9ebe3f301e1d9cf55713ecc29cd17c315932cc9d1f88289f9a5247fcc3025f95bd4168d29f5ef0aac18c7843297a4cb54c3c494f6cc3e53929fb188451bcff8ef8fdb0bc3179c8632a5a881f356f2912fe6e7d9a457876736b9db9302bd8b81d73d043d676ad8858e607b8e4edaf0b228c9bfaba8c5d12ec2386e9d8e806cdb476cb924cd9064ef999d5c916d3c5b22ecee10ce5bc9b7967c9776cbc11cb479dd23e8bc3bbb8b1b59a2631105eb4deff04def4a311d01ad684c149770bdf9c5158b79bfc06c9bdcb3cb365f127267d7f3ae9577272efd6c915fd0861a26666b9b1bddd33d7a57faed17ad39e70c33c33d5dd116b58de837e24838136d4d18b68c7ec5b1f4cb7925f30902a6ce2986aa287abbde7c9863f32222160814d7f0d2c65414539280a41f907ea4c63676bcc1c9bd600e9ae48f2b4eadcd0ff16c1013678cc643dc981813bb8c29e302dd9fbbb58c5e3db05e9fd13238ad0bae7a7dc6b43e3326765a5e47adb5fed16a25cdc45e33655c71fd897650ad6662a7316560dbf3adb7c7f6d0ac28694cec2bc6bcf39d77bd79ab3b4b9ecd95af91780d82b0a5c7e8b58fde9d5df7594f9fde852b3e92ef464ac17a7d057616e4db55f4bc1b1f8d38a51f9edd92cfb65cd7389fe3071bfde3ce6c8d068106a29160a17742a8d9baa6e645469ca1d9d83c0f9897039e5dd729386935129004b4ee03d22fff8c608182607f76607d6cd0c239699665344f5569cdbb5ac98767a468bbc18620bc6a8db52659c503ac380d5744d73b1d621c565c724204251faee95d38bb367e5d2311d66cd21cf43498c41a1c400d762df970adf40b4b3f086b19df5aa522acb7a484f5ead24f05e1cad54dd8d9d5bb3b93c28f094046c83e3b68d960bdae61b0cb59ef7250b5de7250ef82a0777ad7f4ce8a58939820f94a42a52092074a3f928ea48981c69c315a61eaf8aac5cfa12834435554452f01c155fae19a2a9ce93649b7de140716a68e8f35a64d845163baf8b1b1316dd85a1755511ae61e36a62ddbd8e89b22a7f5bc967eb89677e358faadd7714c9bf8230921055d1ac62312708bc62705917e2421405c2bf9ee88b4aea68d84718bf4bbea25af59f295947cabe7221a97832a4115937e2421a4207204cb601953bbe85ac4115bbc5ab848b9b0368e6d70d8fc0d67a2afa6ce68738fdc63dac434efcadd7a3dc71c8f385f8c44e38bec349ab0642299a589348d44a3696b533689f8da1852f61290c5b53548826909bb441886611886360644b420aee14806a3cf8d6368fd62adfbfdacbeed838c3bc350b4a50c63b7d9ade85b712a6a19b697943dccb80bd4230a1289824443ae909c87f98b7f398c47ddf6d963fce8359e86df21baf4312961ea25000704e4a0438d9a8d97152e2ebf655c8edfc42cbcf09b4805187e139d60f39b888418269f690aa621d3164c416f6139e1b64d0db11b66525450646aae10fd7788f6db151294de2137fcce123298dbf89d255646aff1ef19187368f8cccc6f8cebcb6b62505f01e337c635973eeb7553efd2f6ef2a11d2f60f42d5876b3bc83485b0367ec034846ba36eec316d21a48d49b4a839e94df517e9cd5b30d25bebb4a5265f8cd4e41b7b27dc25c95be2f2f52f6e49ea5d96a56ff605f0942780a3bc005ce50710f300f06c83b7bc01fcc501bef20ef0b1008e02a0a565b5c1000ec8f1e878ec00f0680f128b0ba9c4b2b58dbf3edeede1d9fd31afcf554b30bb6421b990509b1a62299f0a55ed2adf0a55ed28ff0a55ed32efe18a1ec3993e43556b91ceaf22274925b93f6535894ca6cde564098544dae76c2d9546930df23c452c2b1c01bf00c7e177f004b874f806a8b001ac61c22b802257031eddf5f47c3e1840638fe32c4fe32d2fba7104bc02fc05efe0fb4f6ad8a8b1c2856de0dcb0e89d2469329d2a6c280f8d43432b5d4984f50d36ba6032f6c6ded81b7b636fecad5614c785fd24ad998f98b61427ed89e2a16993b1d1f81ab0bf3b97e7aa3999189414c5dd1495d9eefab83db057b9ffd77f5e0d1dde53cfe1d9c5d5d001c160a60dbe4a477962660cbcc68230190e8d49d11eb2598ae6662f83a77c0c8ef22fb8cac3e032afe3313fc3e565b83f0ddef233380f0ee341861934f8e4501c1ac3a33c303caa7be1511e3a8feed01e46c8f8944567376d23abdc0ffb3075ad2acfb3e1f687672426cf02e11990150a0ab2403bf4fa308ff687677d4c4c4c9bcce424b6d25d5ac8220c57d284c5cbbb7098c7f19817b95c875f80e7f00cf0fd2897082777040edf00dfe16d4e02def6f0ec0ecfae37e0adcff6a0e8ddd0f81a3e7e0ccf6f73f461f8eb5f38ec737c870f736e18f0def31e3c73f1ce733de7b81216a4abc70bc59d942c5ff396a761e12f7fe330eff29815aef2338ef2359ef2349f2900cd0ac0e574bb9ed477ae731ecfb178c721b1f309577ce46b081d820de5a1710835a443718fe678743cd0dd557ba4d846a29a360989692b89fdea2c8fd3c25ddec50d0b9a170a5b5db4c0416277c382e685c24acc18794d7115d3a6e22aa60c719d3919aa9434bec6caf368c4c0e48e98c08d33b441d11cfacbfb8ee390d8f958868ec88d2a331b2e9ce56fbce5b1fbe3b8cbb77004fc0e8ec32bc013f037f88aa8c6559ee6283fe3295ff3d9afc8e11720fb1a2b6cf87648b0a079a1301f0adab9331725452eed56b285922dc882382ffbb9f1b1a079a1b073458d3653e3c25994471b0c58c00e0af0e11879b5e78bb398b615673165882b8cb9fef36ab8ec79361c562346d793848dd008980b0c6fac432f10ae1411b65c7f797407cda13cba1dda83f6505f021ef5618149515cb9ae3cef06ffe7d9f097779e771c4cea391abec3b39697f9b0b40091ebe82f030a57aeb7a05229128542a15028558f5c8d477178c6a3e3b17361d92f5a612fb217cbe3c2ec1516238bb971f7eb3586c68e0d19d3a692a2381b99193c1736e0d97519b386abca9830e0d5c646e6e5c5b4f168784c197bed2c4ff396afb93f7697a7f17f91bf3c0b87f9151e13a7ec27ad4b7e1b3bb0c6786596f5e1591f10b63f57dde588ed8d2753fed66adaa2558fdd680749210a5240a1542a7349ca4c78821386f28a3572d6e7f8219b481fc9911cc9911cc931a53b995679c4b4b894aa24d24b9c2214ef90c355b1100fe3005e660da67cb239e2f4305c64d8116746ad4e244b9552b929653a79cab49d60999563a64ec631ec123355945beba8b7e1cac963a60dd584915346a54e59e5d81cc7711c497a0993ca945342826c2826b84c5bca73ced964caa66cca281737b7b20deef8cd5d9e4b3b39f656ea971af229a1541431646b4e750c56af53f0ba309bf72a3321e75269ef1513dc744a43d3662a91cc921c89c6bf5d21a99fce2c20eac68ab8e29a73167bc059c499dc18bb769dcd1876843919a7e5113967ecd85ad2749ace92a92714b2d29c52a8b334e3b66e6881d0d8f3e424694f2e62e0bc5920eb650288aae597c57215cb4972c4ede962390ce6a4cc477793c449489efa97b8c968dd7e66f9387a0930c4e5d0f1c3aa358ad230f2d1a637944c75466978d5315c7f58addfb4a34e92d66e1f45ae7d44c9544794eaeca3977fd3aef26cc64072916773865d493ea6d9479cdcd69cc1aea388e43bf5110f4d1a483ea63d905c94f650e237c4db4e6f882b4989abdce46fe2fa8e4d18583efa35754a52f1aa24a9bb7c4c6fa98b577d195c0677d3fd6f44aca675d3dc9eb58fa68f6ebacb47d347eb5ba73797dfc031587e1bcd54e6aef16536bd91aecf6e4f97e7d15d9e3d36e631e6e35aba4d4db729aac372eb2cb7e96db492de03e9b012c67218e93096c3604efeb0da91c873606dba8539eabb2cdd9a30b0744a87a537d2cb5bc2fe46de2e0d58645f5bd7fb96fde5a3ef81f495c84b1d9b9e57354b1a4867f92da737c4954c61ae721738f627aa72d2b4b94658eee29a3aaa95e52a1f4d5bcb59eee2b6de06adfe66d7951db2f2714c6fd60a61f9cd0a596f90d0ca5d6017d7feb9ae7ec7fa637f547edd06e51c2ad52e2d10eb021d4b386ff6c732b15ebf4c948eb247e8b8b39393b84b1b53ed39e7f47672727c8beb39c727e2c4e1704594d94927914c9b8e711c738cc8ece1eaa319c30e33a7ce538b74c6638e4b3be12ce6d1c511d5d93efa4e5f638a435cc575647fec135705b2434242392ecde6561d9716aed6fe641a6e67341aadcb4f38fa1c3ab48bdee274ace398de449e43868eab5e92494a4b1a46376d24892cb9ea75d35d645731c7a58dfcba8eec23176fedc4478e5d4ec6711cc772cca38a7ad5abaea30e5cb3b8db5355a01b06c36014a7b53b4aaefb800c4b6e25fc03faf1f1f57a4a3fd891a3168d706c6e4a3f31ebcd425f7b6c6517395232dd88cc92943ac156a8d3c606276888480eca4399884864738383f3376ff33abe71d9fa70cd3d640f49be206cb94ebe60bb3896842cb4cf08598c7c7b0c355c1ae9db7d08599cbefd874b23f9f61b9766fa76ab0b59987cbbdd29df25dfa8ef93ef0df3fdf2ddf2ed77af7cbb7c9341bb66b3d879b77ffb966dbb49e05eb163bbe4d934bbd4eddaa6edf2c79ed9a56fcbec985d06d930bbfc6d97ddb24b2936cb2e817b65ab6c9367a76c53b751f66c9b3fb6ba4fb68a6dfab6c93683ec924db2cddf369fb0d3ed6410ae913f3564100b5288ad31a3109a5108c27a9d04e25ae9b78204c648208fad29fd88390dcf7abdd4e15a69aca5b751f7c3d6947abd315806b135251f30e40fae95743af2e7e7876b24a0cbaf450a5b53e229f1acd7594a29d6eb2510d748bf125802796c0d498a141e1dae917c28ba99ee87ad2105517f9054a4bef52488ad21fdb02dd74d82acd7cd1fae9940f309b686c4635b7625e96f254979d6ebe9137e67f36e148d38452749a65539f2c24eaa8899316cb02459bf2221e19175aa92129e9ccb39d6a74c4c72c6651ceb51ebf6932227a6180caa306da7ab489d5ab468e1abbf31ae530869252184eaf5d22f0777412184342d8250255bacda69b0ea17aca4c53b5ca30967faa6c7dce2cf6f852f0f67da45af862bdacd570955ede5bb8432a1aabde4d329abf65b2905ebd564f8b36622501666a5b71d2ed86bf294220204a270f48fd5a762c47a933a9b993693cf504ad69fabe87add3382b516c52171c8e7aa407c3d7a7cfc085796384108d6eb33522d595f5ac959c97a528cbcaaa8a8982a2b2ba6adf41553c65d454eae94ac2ff30e977eb6e53af6790dc4ec957e62ba225229594fb2b8bca5a55c995e9252df3ae52131ef80eb4e1c4939ca5ba693782d1c07c76d704acf794e8bd486b3d24d6b8947614eb952bef611aea05e97206cb99e7ade7a9d6462d72e0a514888f5a275cc3144677431c5a020d7f36c7af47ef8eecc275ce9b9b3ab773fae9988add12b085b5a8085f5fa8b10f1e752b27efff8c0983cd1e70b220201b15eaf3bc6d4115795933025eb7388679967938a3b51f7c3147bbd9919d3462262adb51928538e842b0eb6f930a79583701ec235d22f13b135245f501eca446c24208948cea5493af3cee6068774d171fee66d4c25df0e9280d96f242091bcc3b5704c53533a9269ab758af82760571290448414bc3418d3b65f467f19f728f2cc98624ecc6dd724c93c5129f45482bd4654ab96d39832f4faba47f5ba47e987add120d07a174b7fdcb505eb957a2327f4758f920f58f055f251ca4a9c3a5cd33b9d2e447b584b6e4b2ed4654b2994f6c1835b836b69032693f49382f4337f529c6449f205496f1ac899fa828c44e30f928ea4fba14d20894703394d2089272bd13284c5b3f1fd7a77d51efdc3a7c9119b54fb486b3435edac17553a451169d3c99277b9977dd9a734a64828d2dca392a666e33a920e58f2917c2460e947a41f26fdacb5790de4ce763d74cf4afaf92038daa2358f56bd47fb77c9b745273d269f147d295445371f15aaa29380b8c61245dd33bdf62196a3bcf7389a36d3474d9efa7191ab0683e28e9887b0614bc62bd63e404e128b4c14f860e2c7287e5ec5d4efb045cc2491a9838758f10d574e221fe1752472d294319677cd245409435e470f2f6d2c91085748321589cad2db1545f2d99a1cb42d409f11b6124eebf31a88de99af7d046d8d5641d872dd099f784a115948be8323ca221e47daa6bc214be669dad9e6c770b6bddcdbc92f09d5fd0a67db8adcbab5dbfac88a30110cc4c08cc9e7b570114e8b14ff7818084808075d158b7c14895491db7c2a9c893c9e7aa8046b190cb31a3234000000000000b3160000181008040483d1340de24852ed1480146ba4605650974a84590cc3300a43c8186208010410006008088cccd40d18862dc5f935fb7e7360353550c2f5ae1f5435fb845eff001653c7899afee19bdef63d9e3aea1e193328a402ab0518d701f0451e892fe53bf923ec9157b3f3045b09d7bd08469f7d515b992a7987164aed86ea1e3a722dfdb80080a8452ef73d2c02db412d10b29768c317464a53b09be44fe7103fb5ac4c9458416a5ca858ba15e2d15b6b45d96fb503103342662f9d01601ba2b387acaeec3795c457e9c72efba998e1a057e441baec9f8bc40932199c5442e99acef6125d3dd2fa6c882367bf9f62a78c1e641962df0965f2fced906efb9ef6440aed2377a987ad0386ced44514edaf847b83b9080e85e825193c1ee3164c1eb32ced37bca619f9f4715b6acad8b2d17a5acedfde7425793ec2e511628c0338c8e1e37a9ab08c732f11ed5b8c637a8d52a98721f892a93c336aae6818a3d573f46c43fc221894f0fa4ef812eec8f671a0f98a90477e75d2d5ff4415877bc8734df3866529c83b735bd0102400fb8215f7a67c3ba1f981e27c392d656c62d9f60bcb07f2cd643c9b16827ca19669fae34b1bc750435332b9b90fad4a83d1a14cd7372737dcaebf3266276cf65b91dce930e04028c41637789767c14bd5f515ca2fd7969727b7baf780ce1997f73aa05797fe2f863f17f64f6dc3051932fb133a9a55186f3dfbb782094988bc9803f61cf6c3f3930dc9d92f4beac76debb09f21307a30e982e8fd79194bf82dda05cb228db62290a9c53cc04ae364e8bbaf31a27ba15cb1bf190c5f3594c1e40a6303c8df5fb27fb620f06777ee11263d1b51121b84dca16c142621c0aada9b60117ae422614c1b45f008611fbfcc7d5b4290367fc34b2ea44e110864078e4f5523385dd92c93ef12d900833e88dcfa29bf7d963b4feea0d07b3d8d8bb6b19c75c1c71b1a0fcefaea788343eae57213f34cbf38c0b6100a9e9b19180cddf56cb17b2317c226eda212739a6fd0f233c6495f0a411c3dd847b4378b034b4e96ca7f05e07e400f7c512c3aa4f4f52ac62e8b2af517ef50d0f945801d7a80c26486452f8dd4e450d533396e4c0139e928ae8845a7f0839890feb7e31bcd1da17dcfeacc54dfeb2ffcef5729e5b9b496cbfbd8c11fbd905885eeded3eccc7f39e2f023878e131cd728bb390d909306f7b3053e8b187defb85c08ee2220f97e04746b1cf11e3a3116cd6b4536eaacd4155b64821a5f8e6c54ca5d7cc28b66f1600d9818b313c977d28255f45688a82a29022a22a5844a6b1aac4d0a05eadac025162013515051c0df4e7580b501870f03f4b7b951f3ab0d03cb5606189e72d83b7f83dbed5b9ec30876a52cf38a701b1cbcc624a44ea9a271167b819ea213a731ff355075b959b187dd42788c50d1aee8a40ffe4e1c872daf2957dfd25a712692bb185062852cca74d4401f2e7cef7285bae1c6483696496fc3501e83040376ecd330995586829c32a64dd135fc1a33e8e6b638152bc6bce5f963f99820b2f9b1d44472228d4d003780a81b4800794d3175862859374e775ddc060883baa146048c9d7b9d56042ada0b4f3f428f0400a6474993f910d1fddfe69b922f4245a09dfeef4531a4a0cb58d50edc15ca891c2c3b2118b6e88950d1c0e102418e5cdd0b5e6b850d92201c2ec0d54f4130a9fe177414555e057840114c51ef98b8319a29230c45264345e113751a2acbaf7746b9080769831c144d1ae7646810fe69c03312a895968e642b4769150f83df087e435e54e9b949ef7bd01bb055ecfa95e8ff0ef613b9e6ab0f2817892d669d89a3ea7d43b26ef44705bda9a1a2a8b906d9c2bd9584e6aed8a0fd824e87b9fc254188869b7fc53e70c2cbfc501110927251003491f24f6c2161cb6263a11529ebe023e7f84541508d044f1af5c5277bff100b52111501769e28d9f66ef8d890affc777b5b242a62910b512ad12532b168f6e764989858e90a0e6043c8b769126562c73d1c7254aa80439ec49eaee890917373e57aa2bc34ba7b3091cefb7807445aa08804e0d46ab008fd9f7fe800edd0344df52a1174485b6c88b3958834658906e5f3690460d91cb5846985c1a442e6952f80b0176a8928ed5e1261319b8c23726bbe2429182248ed505545051f3f03b83a4d3be2e0d7534b6616147f30603a63093b67e3b45d5d2a03fc16a222ce99a7863acd9570bc2a488a847691ea8ce48e099e113098fccc7526ae4b754b9e3c50c126e5c99e037c170e5188ffb1284029a849999143a38a70eac8f2cf23da590679956f83b365975390e47f202a216f6b7dd01df846b76bf12e17dd1bb110ae82862a42ca524f150d67eb3a7f144fa1d0324a8cf497829352150d2812aea989f0af544a49ed3dcd1be8a764e39304122067f2f0b22ac00a9f607dc781d4df02b0a6683fe855244d0f8d50166d930d3f6eea54f900364503e01425edcfe3db25c6d89b5a0bc4023c21e853725c0a204b2573e7a7cd7a52c25dcc2c71edb0bd9b322d6a036628124ff8dd0e244515bca1a22852e6a1f47189de5c5e2155ab1e138023cb4052e72b9c83f1f669d761a3aa563d2cfe876ba5a5ffee072a2221c929bd50662d000e53a47e3acc43ab63fbbb34cb5c841ea01e98883c080c716c02d713c404e8e32420929c044d2811ac1698abcdd23f0e5626102b87755d2f6737d6f59af3854476512a15400e5760dd6825968d6495523d7a321f52cd797258bf26583f4c85c58751b78e9444924c9b945b8d951e8613953abb3c5bf35183394ad547c2fa2caf5a7bf38c4094cf126cf610e27e21c94a9e4b6e4c4545de7062a00e6797bba308356acb318242b0922761754c8a0c685038f3e6efaf64cb1705120173a99a45fb290a04287d743cf29225547287d7ee6ad3d43cc8e396be975d777edddc990f69228d04e7309ec9644527e1c9f2f52e3150f0132607764cca35015883b18bad12b7531883ea932246004f69c893e57ee20fb6777dc61032452fed65bcabb0e1d4c04f5dce668de4afe97aeaf64a2a7fbcb586a55b22f169bbde1a5d914a4ffc0889a8d636496971e653cfd86e6fae38d2f8af401139328778e93f2b0ee8d0fe5f715fb58189c19345b10e23e9f330bb28fcc5798a3688d05acbc79c04ced0435a75e79c22e01542cdef70ccad17d2404bc616354cc4b2f411938bddc0d549c5fd85dfc2689545b75e8d281195eb8b65294873cde6bb41b4f2340cb550eadd1ecda8d0cbf2b839f2a997f3c3c339e37e60c5e118ea5c04c24ea1804d03faa394a5cc099e33ad14900e4339c80ddc7d68108fc968296c73b430a8c2ded3761aa8aa48b52e58ed136bdaf298425a16a361d5e764248db952b23264c5b29efe97dd2a1e4062d7ae008878d66105da48863eec8901536804895aa3c3b71aff5c0341821a133176ff4865be86ad25bcd21a14f641cc55399f27cb2d5b79a9621831c60bbed3eac2d7a15e0ace730e432e229b2ac1cf0f20c09b5bdbf9b79aa9bf4aff49a1ab91e113b956a8abd9742d8fba603377d967897fc7eb1bfa028ead453747d91f904f79eed52654236468d76a29be4b3acf4c19d847ae48b59949401d69f8b26f885d234fc0ee73bbda0d5d96ac7d90205a1f82d491dc3519275b999ed4ef4dc26c421ab87b4ad3530e46f640a6ffaf63a8e3f2a4ac7bc62ea20d27e0ff333b68b45bc36e85d0af10680ae36bd79ac55bcd7ab04028f858ea876f98e7f488fe0cf18aa113ae09116ab8a592c2539a94942aebcc2526fbefe7e1fa604703ac55b7cc441faecd6e506a26bced636c2dfc5b8d206b50155b72730c822aa8e18fb3c2e2092bdb6c73f616cec5d48f654e1e3512b3554c1284465bacd2077d4ee3642b6b0c52ab140b51945400916d8219d1bbc34454d63fccce62bfea09bf3dd6f3ca38f6d66646f2a6a27be26712d980a93888a1ca976553cf5638e234d0c6601f759e15f7069f001641de1ad15cff2191de6cf2fb020933eda496edcf01199786016c427b802003afcdd536cea6c23803354af3a264b921e782d423e4e827bb5c9a81236dc25225e7417833a357ad7ab2fc419660151fcba26076b380f25e5dcf34f4bfcb845b0011ed0b29caf21be80a1bd1b7843119eadb4ae74fd6ecc50c5ed69a00ee552ab693fc6a4f42369aed8b69caee8da83acfdce46ba43f2a985b99f910ce32b772c181f58a89223f1463ca4f3abebd22ac19bb2f487ef523ddcad0be89f3e13ead62e12885ddca80dd990a373d84255ba53cfd28d05e7d6a3858f4919549e42f65f400521da3be1b129d0c2e730767a0d49d2c08f8134095509a944f1a8dfd7b8ee20fbc7e2d2222f1275a760675d5f54c4035c6141d5a459805a15adfd8b2acac0bce6a1055f5b5250b1ced957e8c2e65e00c4a16a21c7b1bc5f323f709de538185a9bd4fb05837861b2c3fa9c6d8a2416876273f534dd8ccd80eac251366327e971ddda1cf1f414c0c0280647acf0660181acdaae87dcdf30e9e5d7cf527fcd8e42778104178b85214fc45179a487b0b0aba7a2ce3c9c42852e5693091229faac719e9e3eb7485af8f45a5cfdbe02c41d0678fedca2fef9065b36b151e2d2612138c31b161dd084bdfa9d6af8d70e8334a71252af3679c8c77f31fc51508b78f09e44043b7102aa2b8f28484210a8368cf6edea0c43102aa73252414cff2a9be73ead31cc93f5cf85e992a4ba16ce8d2ab03681b3e222dc1aaf0a173baa67c4cff5c72600e8809388be24a9db482b45eaeb7e7af6ea606ba72bb14e6fe56c2e82d29fcf66536f9583375bfbe4d572de1bef5a68e895aac6c81b6a1687a59ef7335b8c47c9e887305902876b2e046e68ac6762c145fa5215bb59f9e2f3cf871a6c69a52e06002c587761fa47909c281061e27b962e6e0c6478344d0c977f8af5e738552cd7fa26aae80e7f2ade661ac1ecc1715e2d57c92cbc0534b5123c2a1bcfd2ef9d0500221c9cf8ca7d0ad01f9a08d5b5a601bb48d4ac5de65d379dc13b62b5970581a0fe622e123c61b180037c5fbbf57835df65843c1b440e5232fa1f6f3e6da5de468cd15d6889dc2b9a2f631e953af0dd272bf85992b162244ce32293caac97cf049fa920309d5b0d554ced5af2a17eb2ae3d930e2ae467c8fe8a8d282d9db791e77bedeaaf7307e389da300378a01ccf384588c46a13cc9e588f09b97893582055b8a32c293b3dc2f4be67fa02ac078406330b95215f75cbde3155e64853aecb992c6d821f4028b0b2525d4f15893c32f71f188fe8f84ca5b7713916ba1b7a99ee5dfbcb75d385084b92b826775b2b074cf75aeaedc4a617f0d98d47aec440e9983c28643a4a9665ad46240221fc8a80933944a9b07a6d0867f3b7082b27ad4730b964f1b15d1a300d9939f63d17d2b405abf599a6405bbaf6699c014ccfa2b480b02b9400da1cb7f38f7476ff0fdb31cc881ea4dba12c8d1f330d31a871ac86932a4685e6b1f448142b6bfa60b80caefec77959bbc419a7400270fe024e30589120c2bc33988713f4c2115a0eea08a29c2ec18307d2160b2371441f93e974c41597a39724f551cfc38037dcf0955dcc938fdb79a294c7437c40254b1f51b596aa4562c9d2cc6529896324f0790c7c08aeb1007d3d0ca6aa399e2f93326204340b30eea28a3dd040a78cd14d9552842ce920328804b2062012c36db3012cb9fae1b5107020035583c94097056ac83d9486087d7f3d6382408deed0269e945c914a81f950f7dbd536f8f6e2a253c3c192d238c0a63d6bd434b06a0b308b14c20857d94551437583e9bf824058f585e780f7b4e13e400551a449ce2d93011c990ac3a363d37360063c042e40f97de5f1462451c187a0a1a276986a154e9539277ed5d4ef8d67f0afdf7d565d93580d4447f25abddc71ea9d3d976633034702a7ee779723147ae109d1d1689850e8a26099985f9eed8210469ac21e1015a70586b06b1162a8a526c50a3b173143ae1ec1b48426519914e36e3e75838089292457ae234cd1f8e1cba5aa8f802a2a0609107c94d22cfb2f175d2733fefc1c101053ec8bb416d7845bc09889f47b141da438037bb412fad3e591c2ae2e67e6b9b533681a1762138e10ec4dc9184df278d8185bf8cab821bc87503f1f205de61871acdaefb0d5790cdca602eba7fea8296667782af389f887cd8b22e035d1157a3fac9970937b6d2bf96ee0922940bdc3cfff01406a2af6e73f06fae7030145b75c0d317823d7ae6dd860f63f57fc50ea62fe0f67f49f5917dd4436fbbe0685c48d076a666221128fd5c14b359bc5194a9340beaeb8ca6d0061c4cf5b4208177d00df84d15b682792d5a11a50283b3799e1df9c00a2675945a0b1e56d8da2375d7fa1356895c31affa239c27e8f0ae561132624461efdd18ada99981826b78c77360c44e0147714169bb3e578cde281a0b889ea99396d1ba82942bf00d4605ef0b296d349ddae31e226cb2f05513b7fd11e701e1e2e6176a9462f36c062d9e8cc9bbc0cd309015796dddd46d85fccd305f412f27a51f14d3931360cf328908fa65a366b24222f8a35c007253cf0e3c8c9c86924b435cb8cbdd45616cd1a7cea2c488c07eb2f568f0fb53def90d7e0e7aa852a438ce9b6774bb104176bcae194573449c2664d438bd8257525658cbe1194bc111298d13e3ce53076f89a01fe8e623762a109779a523772cabcf6860ca3916a6d78acd053ba2d350c0dd64d90ded66724fb9a86262513474747670c11723fcce6251caa9db1968f9e7e5821046020c2bfe6870c7cc26f06a94c24ef8400a1979bd9a0bdbe447033c6a7e79d67df8ce8f06a62e8b7ebdc5b6f0d3c360f2ea98a068ae5a874bb79418031132e5981c50fdbcab0752b45c077b6899be332a8fb6a6059d1b617f985bf8e7d36b0acdc28d864103af30f84f31273a34a39063822576834466afd941c0dcd8f888d9653063376e5babe0da15657b62ae0b114091f40953cb908b032448f94fb1eda3124b6b95c272e2158ada2337ee6d590f8e132c4391dd54e52b6a33c4a49a4a5485aa80284592118505f7fbb0d206b874a27190d81a36eda21103a648cf39ad4652d1b0c4f3c09a48b47cda55680de03e63a05dda52547f0312ce04349ecaffd4aac020c8cc688266aae7fcb9432308c402c6c0f526e55742717ddc516c494b702f3c9b4243113aca359672a0faa2e36fce73fe9f2792c7b1bfb95597e7ab5c9850cad3a4aa4b2b91c4daa72c36339e4dfa18806267e8cc39b7374f8827a2164b8e3b7c6afd2f38cbc0bf60a7d88c5d714605cd7e6344dcc9284d0af4fbe134721d6de8a1739a7261aff5dd5a069c4b13eb8b7e344c05fb377e35313d7d098dc80cd1a5681f7653098c511ed186c98ec0bd5dafb62b05ad1297fddddce93bd50807027c412455a7856f50e3613e541ead7eedb25d9113bb382598edd198673b15c60c3c22efef17a12bf3f895a890d3a76ce86caaed275ce05842611202ed97ce0e4ad7d7844a03b49f4da024964ca2e7becc6820b01e9558e52ddd2faffbd11715af7e2177b921ad48513150e564a88373a4803cd74d321370144d087473c786132cfdbb9d0dc4b722f1b9add63bcf172d68bb183bf1c8d097df3c82168988861299505227da7d8632e159de0a0f64730ad5ffec5a9406e0d50a150871789f1fbda292630b9a0d50397dc262bcf74eee6ed71b4c4b25bc826c52c5f9f5c543dc9e64dc92b60522dda59f4e736f0910cfe7fa614957f4f81c11bf9d182875b7a8f879ee8ec5d1eca9c15e122bdd0570098b8a0d11b832ea5c0f67badbb407260d2eb27f514f508824fcdf3275e15ab8634da694f5967d4c390c761a5d807c7b0ec247279fa0580793a1e37495ab3214bc95942ba21957a62c54237f4b841df4baaf839776228898ec7ecf92986e97de7a1e586da04fe65f952dfb457ec27f6da7e1922f90424ba1a2dcc438506a403cf06c6d8fcd9ffda8dd333b15160e5f6181aacf5c770a02e09dc37c0a460b75e1996d1185fbaf31b41548c444148ff826e5148495726c2282c8e460032a9dc8997c9bcdd8109cc5e8ed3eff28c79c393f6e95391627ffcd46364a2cf7b7956ce2df05920579dd9c359e8c315b5a48a66798d19b93054cacc8ebe033796e14a28ba81e3cb3bda134229d3fe2f01e37701b9378584fb253e1837b89196f7c8a0f85b0f31e885b122ac5d238faf7960a6f08aead141c1d4e6b37ac084ea7d66e7e93792698c60df503aaaf1e30d0e59c1db888d3da2d10b8c25b80b9835abb87557d0c87cdc709ebb5f7472ab916dd13d92587c2e8f3707b7d58495fb483f44af02573a53a9f949dadc3b325606f10450febf41883157667b39b97d9d8d39ecdacce2d93d5ca8044ec3fb7bb1cd57fa9c9115143c9bd677a7fb498556cf856fbeb4e26d0483b9055e60f3898e4553c79070fb53a209bd8481464b16aa2653064d67f454b59192f56d4a33714de77f686d4de44de60576c910028c350228bc3a7c7cbdb5d49de1b7025126ac1c44d3c70c819caf9ada8a22885bbfd5349236e811145b81b92446b96c5b0348e8772295b41632ffe1472a17b768165e647f1c4483790f86e4c0c0afbaa9a9391248808202815021dc01f77efac00a3bae0bf6cf4bd8fbbf995a161c3715a9d95bb6f714193a3490ce1da04764f82659cb3e717eac4f27493c92e1516ac3c09f4f40cdd74f2077458c604ec0b32698e3a03ffeb0cc9b3de4675de7917a0f78652c25b14859ec5c3c358ec50f951171662240be7d84919fc0f6594f4598a4ee7cf8cea8c2081c026aa584caba9cc0351641effa5be6721eee2a541df87857c2ba0c413deefff0f3d5e3abe5d36df580d74dc35002adb2c9bc535d04e76c3e670df7692d0a0c224c394a558b345ad250345c8a0511919e6d6c12ff222b69a8ccc58dead166c8a085c62c458bff131b170ead59c610a2640f104506f87f6dedbe47603432a6ab4a8648b861081e9538ea6d8cfee9e4787a4510609ab7a838811b11197c07264972912f3a7aa9160c997e195180ec8276aa7f1de02f1f15d1f020418d4ea4e82611a809baf8c393aaf214d79cda3d8ba8af0daceba1e3324c410b31f13db2f759fabed4e4202e0d3fe47806986d6dfc15a4231864d32f9adcb2cc02e5e9087cff2ad6ba2c4aa43b1bba94422f692fd4bf14662fab117c36d3dcfc44a8a9133724a62147f815103a0c95bf9abe5d5caf46c96546e538d96c5f039585a70321e381ca5c1ac4719b2ce5692c93a13fe7a20eb00ad0d807c0564590520812e06fdf642c6222a4b432ca04952331c17d9210e6c8d05c403d4bad4edc927d3ab078245275f1c849ed5ce5d8402bc6bc5d0c006518cd4f18ee2046fdc81385539a2b7bf7c1e509fedc25c381f362e431da78bab872606e086d29461cffee1780b4f88b8484f806ed953d2c1d46c90cafb8f94153b5609e1988665dba652dd3be0dc0bf62f371b92d220e384e3c32a2f9516dbaa0b2c6b474f9951e2362c3bf240589c770eb3c97dd37ce0388ed23bb2bde1692546653e5ace03879020f90db633491ea75e47128ba28c623c81c296e914a018c688ba80e66a156d93c7bca84fb80171372c790807c3398f81c02824be898c266077758a7153fb0dae3068f9eb72d6a1737234b228153588797d73d17d315bddaa17ba378ff9b99127db874e156308d5ffc091138d9d6a929ea983e05ff8e95e50f01a0f3291af52abe465a426ec21deacc0217f8a21853fdc9894a5977170f3ad2d024f53975d6cef7ccfc496c238f41b3f6a1dd9029f28802b192715c755172c342037fea4e5088d1ce796210e4184b118ebc3719cbfed500528e6c4c35c973ff7cdd5443654df3be08b9c9cb93104178987307341579b444987d33c2a295dd477c4f8e4659feb4accb016b40c6b4e0b966eb82a9c1b2734aa688d438a23ab331fe775aa80067aaf56d7044af4298d83c8e7f5c8043a390d014eb142c72fc71a790bad660e69322ecd9c5c1c6e3ffd11e3c623e02ae6238288d5d0a01df64a413a00ed2955e3aae8093b46837738755fe8467662402ac3089744c9e61acefcbee8068509b02fd372f0ef9954e09ec3b61a84d1518893244d01e671c57b2a72d3edd802af7f341852fcb381ff5f330406395d2be5152ea077702ca3b1659c5faf62aac5d06a2560bd4ab91d1c2db5ba5578bd55d57dabaca3195ce5efbd101c90ae6a0c82a67a5889b858d5b0ad59293bcb9da37f998e361e0b568c548ee024f3df4855f84aba062bb4de2649be3e1f70f72cb315bcebb6ea98feec223b201ab86419551edbd28dbebbebc51156456d44b564147706297bc7810990e493a20d3ab3b6473e7bc4996f0424f0cad8e4dfad72b3b20202a8aa8b21c8a554aafa83947801ea21971a27af94f397e1cac4379a5fd21789294b3cfee0af0cc8e1557298d01e39294248cfbbb31ffc8f75921d654a9f12536720fb6f7065650584286a23b2d9ba4643909b7e0aed7320d8956f990ae5142e36a8d571ab2a134edeb5edf7d1e338c406a754645d40bcc5e6b4e6b42fe459a84101b85adad5c2a62e5d9799f2e6ae91fbcac73a5abd13c6438b62e657d93a2d9295996888a52b76ade1caee2c7fae234407534040cc1a7f9728e5efed979ee880a091ae14579eb2c12d688212a1004021bb28579e72839b649211f59912756014b7bb8802d63382c078d264f6aa1e4ab73f87c688596925d950ab49e3ba656aadb44ac408182a4748d3eb211ee6d61b48648121b105fc6e5b09916945cadfbcbc38c8651226e43632a3a429980cbf9b37bbf5a71a84109bf572f29e676af31412abdeb58083fb653fbf6c5d409664afd73935c4eafc404a4d87b980257fb5ff6a6125860271e3fc9b52e517d81995e5706272558af54898891bcedf422110bd408af8570f41fd7d91190ddb0ffe07b008553fa70c67e97a24d39b37599b7deae12e84941cff247b4f21ee5f99727de35c26fb8d937a5e7301606d53026c020b834d9c50d04dcdfa3862809ef009e38162a9a1bc1dc8db46e7460a1915698d3a16582104eed98cacde0199b4752c3b476071db1c417516cb2c7197057f33e8ee71ba08ff92c4b187ea4832f9208f30976c9c072441da0a6ba0f4d5d0f194d6886e3be357d53ed96de3382e10dc4ef18983646c03b1f457ea9868c8ca01df314d8e402c31090b3bf79ce7ab2710e931cbef36e0216db5ad3ba06a85310b4c58d96a03719d7aaf13987ac2e49527bde17e452c967146879cecc7a27e5ff3c49920c8af5e4703be9c1a507c6c454af964a8bcb8f3a7c1cf4349a71ca8de3d9ca26cb8f367f3255821c020282f5aa26b9e1d8b9d7fb20f6c49a49452005b6276d65826aee75ddf680f21f7c82763aeca4bc011ff8c0c6d50f9888cefee95b9415bb33f6d037d848b365e0efab724594982a233c2d434adafa1536f327b226635bbb608481658dddecc43044c74b57a094bde268d81a62a466590f30cac3b63d0c5a7295234eb278c079df04bce379d41f635cea671176bc8b7042e7a7a3a136abda65c69208ae27f3570b888b8d11a0825db510f8cf4a40378fad7f2943fb5824b03dd0e50a4d9d1d6dd806f69e5805286db275c1d33d372c18e7b5343aae22092742a26284591bf29d0ac715abfd4f00293a6de0b03e11e40ba7c1a72f7157be807f0e6df6b40b34c017109d82f9ba2b031685636a4a4d0bd88cfeadfbaf84ac278687c85048ea56729ec422d8f5e6f87ab510cee57fde724da8ba46f1cba0c360b74ab1830e5cf6e2101d84ad878aee2e9e01c2249cd2a3c67c1597ab2463dfdbefa8647846ccd916499b3532c874ca90bea57ba04cef248a2724a6be8509d9364568f48b7d093d3c5dd0c88dbb3651b41a30b35627cbc978225469f88028e107ea8d7b030882d5902cbbbce7442a0b6ddba572ad507de07c006323632616c64f28bbd245acdf18066de849ce98e7d819bffaaedcdd0694309414b08723f9cea59dd28c303dea54ee01278c9abc5dab7320617595cc71ac012abd2b16f36a6a2195221ea19c3a90e66f2c177a886d01ebdc29b4931c973c0daa8d6ca4455015544c46c1602bf94f9dbdab3f913130849a0a636e8d9cbcc0f118c00219308585f1788b5e79bac2fec20226a8f24d3f0cbf676bcb1ff1565dc7e08e3e13a618ac3314e4b8fa97c751f489d99f6d4c03ed1449da7cea151d6ea9f09051b123089a57967afdbe80fa35dea120dc2784660223d63b8f3b0a903120ed843aaf47126469518b2f2a9686ec46d4250089db3ba80c562553f93aace5153415164c0844397ad80f2e40fd037d447776811fd7feb8ff56f0e5b662d4ce4efd7c75d0bf58beade3b5000df62b070dfac75f74030000ca89891bf9830b4c7bedf7a268e9b9d711feb2ff186c29d2aa6520f4f716c6b1cd23db285337cf87044194c454f1866278c87fb97127251973a5cf9aa75d31032189512dbb2fccfa2fba5e8805439d71d1bb1663f1910f23db76cfbc1792374d9d0aaefa9c31780b5bd3452bfc87ba21e6b0ebbb865dc4bf98f2cdf8f86cdb04b9253b0b715dfcc988b66a65abc2f01338a711e154ac1a77aa29484f1406c12de8480906062a11e0856114390f2f8411ef8e40c1b6b4f4fef45ad5a69a9451bcc40903f36d35438c7548abf89a0656f6b0a26f25bb6885c4137cb21ed494b2bf97f191199c12ef9df790aafc5538c67db53be0ec4be4991172eb3c294eec119dd7c05931e70e124e003cddc68deab4a594f9776e7bb50cdb84667bf884601fdc9f564ff3b01619b473ab713cd2572645fb5ed69760d41ac0a3ef0a1c134722e5d3aaddc30a608089eaa648bf1ec4df569c7e1421e88d822a6748e8abe512b1e4d8565682d5aca5530ae6ce354c6451e6b6fa169c7ed49e50e31517df10b4d7199b8a4d81294455003fb214a14e30d8981c1054f42eb3545b248357bc7961490e926939af32b694630682a9c3ea6426a666c567b43a68ecc43ffea89ccea9ae33ec6c355d815a465254c1c52da5773cc84d4b3a04f198c0dc1ff68270dff42b3b88b89e503f9ed1cb54378cbca25ede066335fb0410e4eba014ab13dbf202424e5e7a7d982f6827e576be0297d71e281be17fd71445c02ce199978a042fdf2644102f7669230ed09c2a028c25a383c1d41a9c7c8438390c18057b4c6c60e284e856b2c657093d7c4480061b8e4191afacc5c3a9c9c00a22b6b0846e82b6d8ed874cd3b1e58b592c1939c4e1680aaca46606aeffe149968d720a0031cd5998aaf04dd448ac588a4d52a8fc975adf86accb940d944b7a15b09d77c0c0ae39643b01646b4673c2c7eb7a80513f0f2eb089ac73530799ed36af18c655ca1d03dcb7239cd52ace692824a7b1411a20866830d8ac3346b32171d1c3df23a1c54b04ee5c28c28dba469625489ddfefe46e5c03c534342694327118d72e65aee34ba24672dfe282786a4088f37c99c7ab89d447195275417803752f0794d95ed132b84f7ed3a3be7c25a33d508e2d6c638be023316cc2fa71e7a26b742689aab080d131444d70617ce5b74b944421d5d00245dbbf45fa50be9de6100799f40e6d40444254669b389a1aee473787a971cb23a69669fe20e193c30c26736df43160f684fca1e58bc238d806440b08684487d329b90f91cb90c7bb46c8c2d1339d01e4650e3a5822689b0718c608c6c5b62af0759147c93dc5805115e62267d307853b38fae2007bebace241e30768b437906a642ddcdc4d4ba58b031e92763e3e3b7b4498a38d3b12c3720c927f74a1ebb2c0e98c34dc94fd7eb088d1f4dd1a75e71e7e756dd7ccb587db2e50c7aaf74ebbc61e5803bd26ba3f1f39f774907439b5548b21de7913c9e0334a9ea571816c3480920e35acbb7386724bfc67b52d8ce7538fd59590f9fda7fa5b43a4e9e812dcd7b1a63166276459ef2f90175e0fde587e7d5893a3d1eee88024c57e4a905a55eda8a9d8d8525496c703ca11509ed7881aa6a23b2521e8519eca895d9b33124919728378a12be21adfeac26446aa50fe56f4136147a89d49219860e22e49c35e04f331dfd26687c7170091f937f1db00297e0f60058043121d5e2ed1938a63c217d6c629dfb6ce96b88024a5399ea1a09f063d3b3fff81155f5cdd32f482e738d38a64a8e7841b2a731b0726d31834d2137d9eb17f4177ab3c39ac8010db5af96f5e86459ca87eac280e4fa3079677cd0428a68cf17c0904786903e162d5244a2b93cc8a721379610d87d2b48627f1dfbdffbe833049db160936348604752ceca919ce7e3e9ce0706f7b97e800e846cbbc5ed0a69eebb00f3d1aa9924dbc85f397b20c6dc65f47c8492ec90f7cafd8f21a02b37ce25ab502dbeb5c74c80d047a2a64b47eb51db203f685d17a193c90450e0f6929e2220a50b872ef93d2e755a8f1fb91cf6cb017fcad2a02d254e53968714d27ab72a5fa7ddc7a3edc9aaf123910a779ba55a41f61a73968ee33162ea1ed200ccedcd0db56a9f9aacfe1d474cbd472cc1be7a71275699a7b6d46e4788d57f7f028be3c20f52a1ee819adb6edd5d472e13766063a441569a1ae43af69621d7ea0df2d7311f544ff257fbab5fc78857739ff59621deb8262acd67c87ec484fead08a781be753c3c5b6f60241f949acb55c6201b92566c1d362edcaa6e1b524e340251bf069f8e392addc3d0222e3dc7d373181fb59516697dd6920f8b8552506d916613cf112846908efb244fcd03383d79ec57fe549556b0a55c29f6479d924b322c6d8dec71b4afd988160eecff1ad83af3a1de9b0ec75c2f4cd5c3a4116b62e19a58068600a5473178c8db9fa9366fb203c904b70ee49184ed35ce117f9d031a611f17c484386282fd77d28c2f0b48b1ca39fe089f46d8ac48e428485ad1fbf749d23c38a75b0a3cab0e58b5ff9336f7a658bc5d17a03e8dd61b3f5310739ccf7c1624d59f30aebd3d8dae64e78963ba3386b42a873e63734bcaea275339f9fe9c7c4d963bd7edb7dd6b83298af7920c64d68d4dfee094c5b7c5febb1263266dd3c3d5e8fa8cfca55fff1e7c172767d96614e0f3cd7e525843af9bd3158fdc2e6a5d039c22cd79111c49374167ec713061efd6c2eba9cd62ecfdc56e30a6f030b4c6fe6ddc4e14846c533f85408c7243c49682269282e165623d0207142ac00c3a35584c45e9804c2e62a92aae454e634b84e55e3eee8ff96723a3193ff564b359b2364a9eeb81406b59cc467d79f492b56c542616cde0141f0c5dc0679d15feafd174960f0051428411d9920abcacd12215879f73505b85e84e20b2262d587b7830f78864b958226a054260601c61117a9437daf42e94c85ab290f6a0a45925044554d10e7665dc878af547e6863a07a77008852d5b93c38e5ea456f7b8f1a9cb648765582ecc00988da02031d89ff591e0a8167ed09d0396c84fc7271b9343a50012dcc38c61c93b3da50021f6ca358104272d1f4b5bae4ec0e661d465086b17f49b25277fe7920408517730b90f21defe2428afd40deda1025526f49e0fea20274226c1e6515aa5364fbd4a3ec5928fbd1a22487a796ee1ecdf85fb66b18047b0cc8708f0a2e83978fe23d38f2dffd710049a589d82e4292179a99887e867a09eddc3834a920aab6918bb3d9fedb2dedd6611bc06a228558a583143c1cc8e0bef0c42766fc3e365fa5e1f89dbaafa4c7fc0553885d6e0bcee04ef8b888b2fe8bd8223790e79dd6590e0806c0407a1b2edae037bcfeb3b9ec6a026812c0a2c491155e1c769676c8aff0323cfa9fb687eed859e3cbf215224931ae53db0409ac5ce4bc7f15219ebdada51729e6fc48ce8b4a9619a7f22b790beecbfac5d3dcd5135447338918aef8f66d22ca205ad072aaa4428af531f6cb9fc68be4aef95bbb5d53d3492b5011b639cc4ae3b4c6c0575fa94fcfa17be322d20a0e98a72602f1a7ca0e7de98f107548ab5f936ec0d390d413c36d50ef03debacdf0a5de88e0e1c20e08e4230f19c5283f4207579a0f6c64c74769798e97f1a450dee3e685ec972b6bdbd64deaa575016eb294548cfe6476220c63b32c1f5364a5e583c63489e9c9a133cd69e667fe0029dc4f83c03f3fe09a3af0b2170a319dc5d2bd906acbcd243d249268115d8cd90cd1e60498d73674b145c246a421f71fc75efafa7303e1f7114ba2779487a41eebc67d080886f2e9f94531a0104c824ba7cdf68e9b77c34b294325a64c236018c3f86825f05ab354b23ba8ed9cc533563fd03e46d8c68b3226c6abb531fa437a8ed220f8d3cc464d34a894fdcfcb45537dd18531f2e8ccf0f05750c43fb4799b35697049dbe2dc89427fdc481b0c6d570394aa1a0d05cf23a6f3c81b9144d35519ec2951c815079b55a75a98590e1e4844b8a6c165ddd6719019a78917e5bbcf0c3c94691e60161596767c40e1faea3e45f5dc8ff073275c01b70e6676dbcd6bd6a2d03632c0cceec23237ba6eea536fb23dab72db4b11b39bfd42d060f938e0e191678d1d4e3305944c3744eb23675c8590c93f3ce753ed01cb267ec9eaf14bf33105805f99bcb625a5c5bfcf76db700828301cd80c696c75b252891c50981d413e10abd05aef1cf3c20955184c8fc83ac9c9e17ab047f9b9f362a08ca1ba29207a370d19950394da688cd4cf417ee2cef0fc8e1d7006d05aa3af734c75375f5a5747e646d7d4b63a696b39e4f2ca69254d39ab63cef70096bdfcf49c3d10308ba71aca668acbd6910550514e57bdbe7bb2d349dae469f12f62f056b9809109c1399ed097f662400134e7fc6d431dc8c31b7c0acb7112319cce45d843ba6fc8c01303feb9df901d856cda64a7a3c69a0d508096c90a3f4e5d110969e0c1010c2637d4b0e3be1008b7526bfbdfc6d80e0708abd9c81bc0ee1f3543672295e81349c81c141061ee225a83018d8a802f3bd82913933939cdf8da1c948b8a33e51881d12c49c3d044718852f1f8808a2b5bba8351f7a53f41c635bc31f7d3e1b7433a1f65e9e20e89fbcc5cb2538d08069e2d62e8156035c10c02c9b7cba1c12a438726de1151530c592552bcc108616443a0af5d0f1ceca0a0b4f31e94c151b2038c1b010c05f0314b23623ec9536262c3992189ba64be4d4f3fc5d86b182b14311559db0cc9c1b320e63ec6933e8d94e11e82ede6f3edfd80701bfcd7b82ba144b59348d92b86b28abd25899a3317e12a31f048235ef017213542a80b8726987458db021b3dce00fafd0d8aacf6fbb4fe51e8ec7ec0b1f870404fa4456adc44859284a866eda9db73b882aae45095f3b61efc533b31b3895b1b2d1636259bffb96eba66eeb924c1b4e067a80aa70d7ec9a46e5985befb3b22d15235b0afeb3508c1f0e0d2ee8c6c308ee87cc1961b06958694686e75f3f6838308f794c40d0da767e8de0460571e895ef6298239f4d1d62524b499fc3454c0b3ed160ec1a65275978222c9124b5b81c4922ef06aead3283e03842441d854c080e72a40064cf027d930b291ba98a26fe48b3e77a7a267690e1256d8a4c2e2e20b8ac4a9c4867614c993048f908f0b3f12e2c88921cc21905fa981e2487d052c67a11e8e0209b8fd95c40d06d4aa1e25493b8aa36085a7c08c5c551c82b43793a8dd4bffc36579b05068c03d037d001ed8a5243f9f56a5101b1e857f6682066c4e47372a0bb88537a11dd8d2489dfbab2d11fbf0c60dabf3abb785cffad05027cb5b7ab5a76735ab5f7180ed0414cc44025aa07ea0b35d5804c9ab2c58be279a0cca81c2c2d21ac45418fbade0ab97331aaa1d172dac9ae25075142208f466d54267a40707b472e7895a33da69e029e2a9bcf45669f7c8bb597a20d79e4d6c30caaf96dedc2454cb510412e2de98fc7ba584684b34be8dfcb28e6735ac0ed6a37a156b63b6f674e55fbb74bdbd8594582e520b450b742007b4c083105808622eb72e750b1ac9c170045329e28ceb997804ea143520525c3c42204512fe670710c8bd7268348d6ab2d32227024b0dc1da07ddf61e647e6e4e6a299482038e27a9b9e16c7ca073eb8a0a807aece823eac0a6ea2a3acf1ea954b4eeb53fd5d853c98154479f36b6f43e598d9df9bfc924b4bbb9b6a98df0b602c86080e134711328530714199c0e1c47e68d91c2761195272ce889bdd1e1af97644b786ca6256f5250d2fec5ff100ff70f233466a4a1d3b4635eedf1b6638388318c7d9e0b01fea40a1ef89bdd211302e9848c01074340769c3c938dadc4673a8182fb029c9fa67b70bc661839cbcf2b6f218300f25d092a380ed0f99f2fb7c9c4f490fd16f996d2b710115cbe71b5326d58609008f0e7a39a61b7c105a0042586a458427477966466239e6838cb7fdf812225c65287806cd90cd03d6087c7db16f3582275427242435028a33bb24943e03a218f6e63c1647fe5420ffe8902c0c6cb0f9be988c884670a1ff6f7e1329ab970f55da10a555e90852de99838976f81079e9988c5cc811e2bee090e1846892fa04e7da1461b0b1e6bbf03fcd05cff95da2c980f55f43dd6b208fd6b802b78ac3455cb31a46c6e7c4efff4fec32358ac40fe3db3e28b1bb298429e2de55182eae2f0a9c859d9b27b3694d219999fb9cc566386f0db782e798b9ab60916c37f7738c671cbfc58890294c5ae20773a4cfeecb21591181251bc2dfa8d5591d331dc90e3e9d30700a2a04d74051481c3a0315f7cc72ba7a5132e1a5872cbb33e7dc1e71401891ab0378c4ef4de3b322b6dd16fff1998f92b69ecbd3305855a460ed4407cf49647c4206aa926440459838cf6b06e5d32ed23a9171cdca8c7c58550758cf09e62fe281d4cfec78f8662f56084ee5e783ebafef67b0e8c61e967abe6c626be8f0e74ed4de20337a88b95cba6e9675969821d90d5d75bdfc1ccdfcace6c6549c71d9bef94cdc3b3fff18f859bb472649dd498e44946a054f355fe83d0367940204f10f8110415639c7ad967511686b9908d6b50095c113ea4ce60d5ae1a6b8e294badc3813452a940794b28b72855376b84d26d48a12632d4e515ae7e1441375fa6ce8b1afe8bca030b7e604ac74a6a07f079cfdb0c29b0b3f5f504bdc402e452fe63181dc6339066311bc5b80a4062695178e5d8ca4cd8d8ed7a577626e0a1352666635ed29753a7a1681f267144cbe19821ce8ce20d2ebe64c44b409f4f98116e2751e1c6c984e5ac0a66139bc002126d53c181027c9fc4ae0d430c7d0a040748020e0600fa73db12bbf7bd1dc07269e7939f998379e2faf7f96881e9c564e5e79c55a4d8fd532023912c1eadb8c642c8e4540300b0ce9ea211753f29513ec5e7443a62afdd24feac431179f8848ac5a3982dd08126b79c989c54abe1b953695f4e0734aba343ef8fd604e8d04c52270450f2092ee01e1a20654b178101542c7d6d8c3f5a3e3e3ad162d253703141295ce00cff2c91df16a96523b4cd0da6a528e028e3155076db5a8c9d476a4985f05b94264a59b08d14919516fb78be0f523184d1f424d62bd169c3298c0dbb4a01d4eb138984858ed3bf68bce4a9152b53507533003c85792e321a7262184b7266dd4d72e206c492223b484605ac62485cdd4998848e48f6c4afa8360a0eee72286589adb67e2f25290800a4adf779fc0414e70588431c37474176627c0d4814580389881700c3220bf2acf3890308966af1bdbf6bcb8565c31450ba8998476a31b0e1489c9986dce41892d84e1262850f2026139ecbee8834bfcba3a399c85ad5e85175d7837a06c4acc2520f9653e0497ce23fb91b600cb65620682a21b58ea9d37c55ca4059ea0a3f95523df92b8e995bb07aa46d94a52bfb5201ae53421a58b5f051ba8373719fb4990d3effc5bc80772b131e1c8d0b99ce35775100b07b63cc148c72bdfc55e858307edb9b09a0622a9c29ee503402a0223e898f7f6a64d90a41e43a118cac298060678d94eb500e86c6a834df03e3238012e9e85ef5a12f08e4d506045c9513429906b986f78bf4e9584053d83b00439d56dd8ee4383c16c870c983c2ea4734fa593c6de5dea87d80d6af221dac346d2a9e2e0a44da6c996e3841d6e3f5e1aa5eb89e9abe563f4f80b0a61e80ddcaae1b67839fc6f2cf87d2ca864756e9f7d63f66d43961ff44090069022cf92ce2ded3ad30a7ec082a633a225c206f96cb3ccf0542e2a3d9474c20f24a230da7d330da09e3a233816d2c8b30a9f053ec5f45acd57496a634ab94ba805d3c94ac8443024938cdf73c18a5d04c900350efa05718608edd88486f90331d414c8d1bf02e771708841557299f14a04a4c67bbf095767ca323f92614989ea0fa7591a580a93dbdf8dbd79064f9a38605958d69faf03c7f9d0ef46aff6f499a9d8734e15ace75119defc988154cf178af4f486787ad0817ca5e83c52026633b8fa38ae1f2ce8690932ba3e21e2b49e0a245c88151e35fe5ab1a6f3b72cb923da546bf34c0b6b9c97646454e2014c881385184849dc040e2c4594cdc3336fa42b928e7723b7b074a9ac1a5438fdb71ad719066aefc1dbb075e86ccf1422d009754d85be2bdca4d9ab9f98d936113bf226cd95e998adc376f7caf934c934bd70fa5a639b35fd32cbb7eb539e6eed86d4121d543b34408ccd9440ee83fef7c16c6846408b0050bc62fa7c6ccb4fbef9fe28990ed091b605269f2388fe89c1471072dff3096baffe78c2c22aaa5864123cb56eded8b0b27df8f9053666e6ae829930e0368098acab324b400fc450e32613c20dfe14330292315159bf31e62bf13594d3778240627189584c4ce2080e27b22bfa35ca6c08f1af7ed433b7e4cc13d4c489a772ebf44e06d4b69d210bf73a97befbe9fccf99fdccfd51fdef2b9d4576be661406c6250a5bea23ee98bd519f862d8921c7712401d6179208248277897de1af001ded857f66763215fa0799a20d2f7e3d9c5dac1beab4531b76f700b298510eb6790922760a17d14e32371ea7c3c29170a5f459143aef8782901871298a3e55424550ec9d1e4c3a6333f255090f4c1487dcb1ca1088f67b02979b276ca6f717d649ccd66baa08e86d89870c772eae401d950fdf4c853c8d31da9fbffd57537e2593ec2c56805c78794246a5ec0af8105491ff0bc146638003a55a229ea0219d1e38021729d6fcd7b92cd38c99116225960ba6ed06dd8bbb3e9be7a2d62db4d6aa2dda623cf800fb70d3a5362769e50c1bee0786249f32bc01277accb0c27f34c4cb05820841995d7887aebc7035416701fbf78350c4098ce4bf3e04bd372141d8509ad237bf97f04824e3b08e2f4877ca002722c90ecd051081befe7381018b289402a22e87eac9e3a341e44c2f031dda23e89457c5ab7d2a63e797d34f21200b1fcab654e1ad74926b8a6afc884be439922ff88cc0721a29819b0a91fce5cc2a75d036596facdf63e60d6faabf42beb9c9910ce8cf372d00ba7954d4f483b7b423fdca1c527da547f2f245a2ac208f34a631634d4754d5aa9170b5948f721448929a4f7fd1b46bc597eea8fb8386764203ee148690c7a9a4135cc8420aa8db957923a6f116d62320c23c3b443f3004055ea1450267dc5fb2b06237cac2168a7784f5c20832f327f007725bef6041a3cb5e327f20fbe92297a9900b0a8f69be1f393768a6d28f2807fa2e50123f3cc320f963d66d16de0fd61a61743541800462029175551ca37c5ca07ca6c0c9c54ccb783da221f0dc9b3bc9cbb704c0f28a258165be898d4124b0f2d6328290a1ebf14d7150139df213e078f8883628c25435076733bb5ccdf2b96109a7f9f0fc06c99d46b9f5f3fe7dd51b7dcbe6ec04a4724760350699e62c09d0e9036ad6f1d1b8815278a552ded18f4b4015f092a3b43747c96ac373184784893f1be0d5c038053582130aa3b80f121833f120ee68ac3768ecd6c3405f31034426f94063bb5ff9b473dd6332544bc53ce4525f3e1e36eb85924f1261534fbd3b40fd4ef0df0b308b55997f7196ce2a581370534c3ba43b5bc7e17b752f0dd0d360e79fb8ce297c3c076f242a28322dd679c483a3a4f28e2d80d4a348235e25722166769a55e78619c67bed07233fe1b6daa3141c59d6d413accb5d1c7dc716deb455df275440507735b70e1f0e2844f4cf46a5dc7a574bf6b5ac6ef35763ef566dc051884126cf8739345653509e5ba5c5e2ec1b2ec2e9771189b7a44b31aaae807d73bc4d79db144fa91801f6b387631231acb57f81e00cd816443a50dcef30a9feeaf8bf13160e043c5be0ed87725feef83bc88fd63ac9a822e01dbf03827e3e15e0ae0ac0aaa7c24d0e6177ed931aefa2933e1a65bcf838c7a0698a7dc22f5c65796ab873a7bc38d523102839ba3540549f46a0230c16457502f01db922dd380120d4b104d49f5602609eba16fbff60ab893b6d0ce9ba5646219796ebd01b3d02c10c196874064a050e477b0948492f8ef63000c4b69790d12f4f7f61c7e9ebe445181f3f6f3ab6aaf7718c9725d956b067f94cfb4b5a82a9cbbbd27d2f410ab9b4f9199b015e16685230d683bd6b2c2c6da7d5693ac145cdc3dad356ada4c7a54a8f92d20e6aa8160256a246a54657a582ad574be2d4dfc5c4692696df514c18dcc87946f9ec8e8f4bce932f0125445f4b1a65d5307b59acdcddf1eef355eb028f0aa08aa498ec0f5c0fdf4cb51e5fa5517492768f95e94b40f15521ed636bd1b5b23933e661568d5a3ee9723dec615a0c76dd7a170d34163c1b01df3968d81b0b401e0ac9707edbbc2d6b443632c63bc49e99c410472e69684baba99a0117243a8150a4a14ba134ec657ff3612f1a9274e3e25ee5dd0f7b6370a26befaf27a5941b6dd6eaa4d4427b3c3e08f145d7eff09ba6f950676255f57f29ec39cd389b3015ab5e21b7df27e12167baecb264477e1587b1867a66c341c76597757737710a85d10c2d52f427c3c596fc85c3d3f9a3480763ad68c9e2f40910788f586da3912e36b99509c4062df0c0eeb4b239f768821291e4447bf6b15d039f939b65f54229fc6da0c99e00f4616f828a01eec09880de70b58b9f71eeaf049abe7e29d059545b12b8ff6573b7f6501fe9a51b8922ffe942e5a6f4c120b03849a9a8635d2714119c9a45eedd78405145bc021e8a0ece09a2a246e8d85044706a5eb96ffa2310f89d2c4514ddd74ccca4f0cd1ae2835ffa2310f89d2c54d4b40e1c8a144e53911b2b9f84d420defe86a2837382a8a8113a3614119c9a47ee5d1d40bca25e58d53e07a2c71605e2899988ba3d0804a0d2cb4f0d3aca93b4881a837189af99ad09e3c2594aea4a02ed463b0f039a8ec91eb92cfdfe6dc8cde331df7dfcfb054221713ba0d3a3fc22c521b1aed81d36f35c5464a3a0862c1b8313b7fd1412b64b33b13df753beb13f8e0edb7fa41090030ce8a3c129b7c8328e23261603bd80ea3bc20d9927402c5853e1078125055388583308e532755359987e222f073aaeb617a30fd9cfab25f23fd85bfc033fc66f5324592709508779dfca931c7e6b47d56079a250aa0e57f5fd4484647bb218ede3d10ab524668687f4b7ae01e1ce19b64ba831b575568ead23d3685ef0388b023b81743f29bd655045c2d4269d6d9ad76ca0b3996f0175b76c64ab5a1b5307819fb33d42dcb32a000ba65c93334cec368f92d97afa77035f3dd25857901294517c109ebb305506d878a0f0dfbc578d26808c03af347cd89b53c46f4830da66497b224a9440643699163b6149a4a00f2e1f8cd0ebaff801c5027bc4eac7e0431def6e1a264b52bfd50728613890d9573a36644db34d70e72101a3baaf0e473e6ed740bd5a6774e090a98e7bf4e282c4937461dc1c3c7dcc2b54cd75bbe9728f438e7173eed50a69deab21bb7498f01f1629fad01db383ece88d141860872165205d6f62433187cf0864132cce01a83c3ec6c2b2e0ab5747b48a1cc327cded9dc928a5cb500af0a0b3f60fd1785c3876a4a0d8e227a7959203c635baf04a00ae93de3526b2be9d9137d6fc933a2ddb259017a7ffe1a1e66f74003051abd5045b9cab528726aa863a70e0f809f7a40b4bda7af5e3acde8dd48cc7a670bbe2710caeb5f5a26c4231b84a4ded6109928791f56d128048305c63d65283e418900f4b8947e558b7667b34df0fa71c13a3e2a0e71418414a381b96f7efc6e0d029c5fabb10a02978f848f60779823ffc62ffce765a07f21e831e9113b905bc3086933fa34c761ecc626c379f076a293806655799289f0b2d950ee736b7b8e23f74caffb44635a9e0185c9fac9422beeb74916232e1ea9f9a7721b13032609dcce3d01b7463704d25ef6b1eb1b7e6dfedd7416201ece9fafd0f3f294afd3ad9aa9ac72ca43906d4702e844917dcdee36b054b4a6270e8e246f40f03ea5896795a309a516d0e019b507ca2d8838c3bc0a205906bb676da8f18f9ae64639c0acfad195a1b12be5d2cf782c63ff137faaf064b33b88c5a728005dd23fd4726a775688febf3fb2ed7ff52a96d646d64bdfe36b25edab6b2b794524a19c50785070707dc97749817182d726b27e478ab666e033ccc2ec0c73601fe65df78187b003fdb0778d9cee165368e165b009fb7d38be4c83f91bcba29e5ca2a32dfcdea262f192666aeb24da57e66c66431fd53dd247346f489d84d326744b7d8aed9be8166dbf89a3de35dec1aff62e3bcecfeb19b3749ba49d62e1bce0c1933ffda33fcb6c93b006f0119bada985103e7864b8b51c3cdd673584534ee671ba766068c7d13db1bf9779fba49d62ea42b27eb9b33c385238396f52563d470d34bccfe7f62ba17e53bd938dc50e367db8649ee33706464223370646492ebef959fc9ee6f6eee6136f9b26b78318366dfd062bffe64ebebcab9ff7cf3be5947584539335c383268314a2e59c38d898989ca77b26d7c8b7df3317bc60d3f73d9dbd370ff62bb60c4f8d8fe7e37a99be48e23235f22337064e45bf43739d9953509fb5e6cae666f4fb35d31bbdf0d76139d5dcc984c2666c2bcc068d15f39afac4917ab48f675131734339d5d5ed4c8ec121f20589888fe27c693c9643316335f606c4e86ae67ce591313aee7ad038e13eec4c686adc736ed2619c624371490e67a8f85c5ec9e4b8bdd3f66c790f12efbf5347b06cecd9b3be74df6f6372746ba6ab831981c22335c38a40c5a8c1a2eef9b75e4c56d267bfbdf36ff820699ad1ff7991993c5c4768b55d4da69b15b42d06fd536183b8566affc6bcff07acffc6cc35eb6b5cab7d8282619e6c58cb5c8e0b2b76f6191610556aa24e143c55011ca661d29352f01524bd8a63995e7f4c9e6de24739c55143bd99c49e6acb859d74bea7bf5123f430431b9c0055398220c61000318b0c0c2b4052d7ca1c80ba72e84d5f5c4c61521df6d43dd7b31c618638c6d67678861e31098e938e3199ecf661778356c77c2536b72b32108f113dd7ee66f655bf6e9f925907d3a0d54bf5e8d88cdb437c997ecd3ff3579924a8a0c2ca552e9b1e9492a27cfd26e9009e5310c05a5a2e0bcb95c25205c16a461f0a37ddbff26a552a9542a95de844ba5d257d257d27b248c31a74d2b28e0e1d1dd0926c4ce4e3722294762f0509f69f3cf5be5072848080a5b0ac13e45451bde8ab45cac71a5b292521e11a65cacd54a4a49b664603161d4b8e120645927825441dcfc8251285835086b22558aacaed085e24671894e29a8913ba27272a95c215d635d2128eed02d328696c72defb5a8dc92cab6f4a5f42811973009480b53264cb2f7b3562a30949d1e1f2aa84d572a2af865c22913169f70a178c2898bb55a49297f2ecc062c32909c18c03265659572b150a3098b5c16dfeba562720208c82b2929c3257e7e4654c418882de9ab944b292c7257742b78c8e2202c131eb19027948494f4fed32ef96d3f06826de012624beca3e2b248b958ab1513468ddc11d3a61d66c297eb3b7c38ed921fb04fed1f2a2a126cf260a5bcc140da1833a2a8bc4aa4af5f7a95b21431cb841f35ba9e9057b984318e99f078a1805d945fd91808f6c142f00f5e02af4e292ae566442d7169db547698b22981b292326191bbe2642a91f04fbfff79231cc4ed0d42709c5dc2f7c9d4cc5033830cb7cdcf1492b89824281790464282ba302713898b4972baf7de7befbda8ed3d9294e552a81512924f845d140a4c5d5124a93e97bdbdb965ee4d6d323a754b234ba693411141b1361d108002657847842c6e9bb8fef5f26a498b1c5cdb56d0fec8e16b105e0e1b5f7915485b41c961d39b956b517041cbf303015f830811700283a12060d31b18b743f8b03d2626fc00083800027e1ce000282990f64a39c0a6372f1330e7f27ac484dfae6ba149890c183786f044e56e00675bda725fa5d457a7b8545ee509ac0ed9b25c91418617672162d24264e6cd0d838687d92fbec5de5876cdafec195e86dd6d2f58b61c8415882d5b6868aa10b6dc5911e2753533c8701e0859643a164ba69461752510074a988b0c11eeae7c3090b6129321e2ba2b3030303037df8c370e06c602be6c57a69321d2a1e0b2c4c4c4b4d89e73c966deb8980e849f8ce6408c2773799995cc6660e5e1332d76e86106d0079995fd43871c3ec6d3416f2e2868e3fec6595e0690c6f2e2be573f1d36bd61b93460cee52e687ed85c180eb6a40169dceea2ce66337caf7d3796ccc7ec4e86482743b78dcbe1ba70416330352c37a8f5374bcba66fe5389661b4e58bede70558961a86a661c6d980b49715617769a181658506131a5429910614090d3470b7d2f05b7bb904463f1d3be1e3071b7783bc9b0a6a5beaecd34fae7683baa20f841688ecf44f9d7bfa3e2590507353e4b33ccb9f32c8763c17a7c0b46d36773e31f082ac6ca7d65a6badf8de3a04824b71aae7f7b26af321c5566d9e41ce1973dcdd5053489173c65b11768a5cf10cba4e48d7cab1145578f464bb9f0d223cc75969ef0569a52dedbdf76edbddee761fe3cc71ddc8fb4092e638eecf93f216b9456e915be434b10fcd2f900f84b46f31f0684a98b9cf82dc7b9cd6a4cfa3cf1c77c10fe474bcf7a2bccfeb46a44d6f3a4cbb5177f39637fdf7b5ceb97e1e0263ad4d2b3bf9907e9947dca643bf4f29ee1b8f1fa3f746bfd5add29b1c5e13d0e73ae595b6607a31ae13c8b4bc5889f0d3da66cb81adb6d6786f1f6babdf5afb263a0bbd91a565a6f41b0171eba76bcfa08c6e3322a49962bc591acb8fb7fe72ce66af946e1ca798f293afe62b6aedade598602b0534d67adbb8cc042edc70ce5bbe1cd8ea56b9b0d5ad1aa9158b5cb1bd41d8a727e75bfad652ee0aca5941a5a061b54c70444f545105c6b82e210c3fdd49016ecb5f29c4f432a19a281765fc11e3911cfbdda1db1f6f4a1def3fb5e50d83109e25691fffbd96a3340d42fbf57f88d00114c9c9149648e0e78d3acd6df9e7a4725ef0accd0f381787771ff51b4d73c68c993167cc991933c68c316732366748ae6b88af79729a258b79671a5b6bab797ebf2ef05f7ec31e186b3d8edf2b0f516d081f40c2e8c7b31755abdd980861d501755137ca6ffd8e87e377fa67d82f7d942daf0e475bdeaf4b8464c7335fffef4867a3a614003a9df256ce0fb8f2d345cf7c47eed812659dede3cfd97ede45d0ddb8b2b55ee1691658597efc769ff55ade9a41fbf638b46ff7cf1db95b7ee6b740edd6beadbd05664fa7a00db0fad47a056d943ae5a36e6574fd967072b79ece1a63dce17b2fe9acc01d598f74f2e87664bb4abd8d44bfd6fe81b4de52b5204dc706faa9d3290665541eb45b50067dcc4fbae598b6d0bf1bd396fa5e89768a41e0d1c7b5e25a4f70316d498167756c6d00118ffead6116f60aef0a94d62a857ee24e9df04413492c01048d04a5b4d6246cd07908691792e8e9ba4ba205f78eee8f46204ed5e0bd5a48a20423ef08af565a4f4c545bad2988bdf61ad17908a914fdb4c1d532d0175f0c7e54bca09ffae9113e3aca96f88813702ef0eebd470471495960ae0b596f61f3aac03da17b82e3b84b457602775da775d431dcca85204cdcbb95e8289abd507b50a2f667043ee8b586bfd6fa89dfd6f6a9d3a99d511b3beb66a7dfda9eeee81bfddd737b47df704ff70944a7b51bfddd06c1cc0d6701dcf3b7726a4fcf5c87133a10ad8de3c03ded37c21bbd7d2b67d437aea3d433ffa19f3aa19bfdd4a16f7371add55adf0f08ab8ed711f6bbb3c535c045f0eed3933304e2d496bae4e5225bacd5a84a89289293292c91c0cf1b759adb32beb687d0ebe7f71807c18113bb41a1d26ac4064180d821bcfad512c1083f1d654b4a2f3652a202679cb1b842e721a457f433ecb48b02124ce8286ee370a7439078a2f310522bfab9e910249a18753a0409252ac698d344df11dbb66dbaf37ed46ed48daae8f6af0c3e1f236fe46da1dbcf9d0e41e2049d074dea7408121f98e9b4feec91fe884089ea7d1d6db13c84540bddbeed744890233a0f21cdc29023c4d0511aea753ae4082c3a8a3eed470444e8285beac09da42df43d90a6a38ea18320ced61ef8d58d43bfed809052d1ed9f20367db6ec3a1d72c4147d149ac0a327e7c598cb16dfd4e5a90207b1156d44db18b82b852239e79c37fc6d44396f5ed01d47c2bc668c374735089618c37cb1cfc5788970a3e1461f1662ed9c2fe4c2ec038d9a107267a3a00b1b156982ca465510c281341c7a7c3f7afb7d3f0abab3d1d085d9515115a86c14065a8e82ba0d01ad2418ba33f35a59add9320c54563d404bfbd6fc768faa826ebff25819fbe69d792bd8e96a1d09bab72fe836779d57d33bb996b3aee5ac6b395712d0d917828fcb5dd6f5f3469c9977d0edce7ef55aabb55acb251c985ecd967cbc1a0e6bda764cf8f44c7331c518dfcdda9c6ddfbcbbeb0808ce36b682bda7a47741ba47c8d94a374cbabcd2968c6bad1cc7475bff1ce9a0d7b167b4c2888dcbf8725bc6bc2b72ad908b6dbef4e6efbdd7075b0e3c12ddf18dc230e9877ebff24c5bf0dfe84d6f2a95c1b89616762dc63ad966234ea0305b8de0aa14ba7d7cad056a8f95d9af3f468e57da52f3765dc488314d2c85a7f57641de8b39bc4f2ec7ffbd8eb93deaa3eda2bb33312e74c63777748376e6f5f2ce3c1e7363ae88d93a9b9118b91856ff85991736230600b2c5d696a0e4f45f0a79c9935e2e139448ae4ec616ab542a9552a74739519184bce449dbf34cab4dbb884712d529e582724191292429a2469f0b2592ab3145a22a7d26d76905053c3cba238109b1b3d38d50e5edc199362757638b754af588282ca258ac16b9528d4418686cb14e29129548aec653ca844954e46a4c892929e35832c248d245a25022b91ab1e99422511d81a19e04a4a15ea8713ca54c5888e43828167b2f0643c150a209bba4b8a4c0603094882a59912ad184515c104d18c5058eb56917c9d5784a0dd1dab5b7b0b45ae02892ab53ca078a63a0cf0920206f899f9fd13f2577f6614b579765b0526520b60c1252d224fbb7fd28915ce59e1aa4faf8a4c48d816c19349e52242a93885a115128161145b24b5eb5693f892436ad5e2f99970acce52a419a88c2ab538a4465c2e41372ee1971108a632094883257a44ac422e91364359e52fc470943c150a58a68c2a82b48d927ffdcc004c7551966dffefe0ffbe4756c98f761bffc04368c97c06ef111d8310f812df339b6eccf3dfb076c17dfc3a631c9dac58cbda8b91f809d6df63f0dbbe467d8af9fd9dacbf75e732fe061f60e1fdb0af8979d8087f162ffcb36035e66f3f0319bfc165b8777b16937c934bac6e5cef666494beabbff7ecddf6c6fef62390bd25c2c27302f30b239d29224b96d830c3ddf7b57be4f97601d04bbd04467978d33633219126914b3fbcf768e4a8c28032f305a644dd31cdfcdc59127bbc6b7d8357cccc699f1b3ed61d03eb6fbdd29dd446717eea6677d8908c1f9afe47b7df9d3dffd523bb418a51c1747de8d02f302a3453663ac22d1e42373c6cf6473fd4bffdf362df24dad932ecb71bbbba09969971735664c26131333615e60b4d01c08f3679307b45e522be7f213c714427a436fba3fe9cf8c3b337dd7fd0d2bfbbe7b1c9e6965b5771f233443696aef66280ded5df7de7bdc37dab76322c21d288ded9dfdeeeb8e95ddefbefbca6365f5bbcf3e280d1542ef7e01dd6b2c5841bf00e2e03e7c0f0051bb29fda800fa4db80ae108c7081620bcb0ed4f37c027e13c4c237e83f427cea3c47b943e7c52f8a62fedb0e7c6e94ddd9f42cea3871c8591f727598edc653e63cbee636cd999b6ecdec354a04278d222ddef6065a3efbe01761683dbd8b27b3c85cebcb3130bebbefb73a677a5bfb312dfa1bcb31e2eacfbee77b0650745d7bd4d0c2bcbdf3d6983bb86a3a75dd7617ad2f11c992809ef56a2f007dced87f46dadf5398f4a44a1e83ad8d2e2dc4e39bdb3cc7158987dadc35048c8b35d072a8483b6d87e52a02abb1f3f35bdbbdf2c7ac6ffbea48da03874a0fc86d6417886dee87de0ab6421c8cf1a8236bcfe95401cd677bf5a913ccf23c7711cc99dc3455b24f97a706cf11ce4bb5afffdf8e0d9e2a7edae980e9e2feee23035063ed972bdeac51bbe9cef2955515a5f64ed1288333efdc611acfcaca307d254a48b1cffdb67d87578007181fe816f82a7f8e3ce013e109deef3f6ef319873fb6a1cfffbc457bd596bbe57cd88e30a04ff7bd58be37b7fbabeebf819d3c527577c87ed39e8833ffee9e23b6cffc0a7671df749f2153f71174917c8bf376b4cfcdfaa6fedf06d2e6bb3606a0dfdc027c9af05beea5f7cd6c77ad787dbf51ac4f93e078b93cf8136befea95ef51b4853711ac68c2088810e536bc4f1c9a77fc3f8e4383e25bf769a33f96d175fbd6a771c654b51a5d3c9f72c75a954ab2737ca8a4fc11c6ea8a7f8a87d42da6bc79fce417886fd8628d7f3185baec6d1c3fdb4015363f4e3668dd187a931ca77f08b03a6b6e0c147d55340a77f1ff894becdfd74dc9eea5f0ef25d1f0ec2d3ec374695496968bfe43e6b275ff55de77a71f7d43e6f77bdf6096b8efd2c8e2fbe6a9f3a5da5aa1de42d1af5c1c7a90fbe4ea71b24753add3b6c27394c8d89e2db5cd57671d46a35c3c2ee87fd9e2e8c084f0a347a1cacacfbfb313d8aee79957eef591edce67a3a2a90ebb85df5a2596bc4a71f09536b44f03f10dc147c33869e3a303746b559df0ec537c38789b132f1c3b7348a1edaf0ba4af57d2aca616aec9b6165e2df078095b1fe7efa06e10e5606f253a7072b1bf91973a30156f6bdecfbcb616a8c7e9bf594c6f24619ab277fdcdefd52e48f20ce8afcd4ae7ddcaea79fdab593d4f5a93d927bf5748f9fbae2a7b6ede3f69e253e4cada15d7cd73e77581ac6741bab8b086954da35ee3c350cf5a3502fbefeebdef5ffa92f7956eb37f8df83e2d33d7edfb774b87fe33e8e5b64fbbe07b7eac57df2e8e27bdc07d2185be47ffc6cd9583df8b4f3b345f29cd5f7b4f3e8f4c573f526ba47f2e9cac6f7a00dd58b8f5b2b9ea37af1555ce4e3db5c1b0b9eabf752af4afdb74ff0456ef211823f7e4925825bf5bd8a531ba917798ed4ab788ed67fbfc3f6efe93e41bec3f614a7b6fc1f5beffdde274843fff373c7fdf859c2a92d598f777c056fa0dcd5bdcb451f7c0fdcae6fbbc60745d77ff4c7073bd787aeffe88f223f4397fe9e7e2f177f7df8fa6fbfc4a7fcdc71fb47bf0f9f3ec947bfff8a085b34ea833cf515fc511773888fa2a8171ff5a24a07fc11547dea2d48d361078042bd88a3fad6837bdce705faf8d4cac877f11377f0574f6e6acb153f77d87e52e0aabe7b163896636adca66f6d1d1694517bc7da3976d8de710bd44e3f45433fea51fc149ffe56d9a05cf5e05efdb84fdcc75fd9dcf14faaa7a90739b6652a477cfde70edb458e7a8ff6b09fb6699f3cbaf72b9016968ef41db56bfddebeb1718ce8e3febd0e15fcf37bef3d6fdfd03608e99f7409386c794110043fbd29c863d892e23ecab137acccfbfb383c5ad2b7e136278f19316ced6870435d732de3784c0c2bdbf80ffef7b5ce0d3a308418ec0cd1c2097e7073bfeedc190c1eec9c80094f04610556dcdcf7e1fe057c78222cb12d6ee0d19490e2ca5dfcd9ed7ed6d6eddeb7b29b7fa33d635c668cbbb6a5eddb3eb1657d5bd6bff9922d1ab545a3e64e69d746b0582585e2a739e53e8b2d717e953ff397b6c42508ebdbb7b1a695655ceab9a46752cfaf1374fde9eaf9f527d9b3d773abe751cfac9ebbbeff5cf59c3ab99ef99f2a12933f533de73fc59ef39f28f1cf8bf22749cf6fff34f5fc94d2849486f5999fe5e7f7ca6ddad2e6b7d69a56462d7f942db1cafec6f364e6f27bd2f1e3c7a5959d332c5666f9497fcc99d196f8514e4cf8fe92978b6cb156a32a95a91041af617e11457232e50f4bf94960cfefed9e7f945f73f9b7fcd3e9c0a327f91b95db0c0bc3317ec25babf5cb710d223c5d74ec62939d10e8dc37eac2ef5eae8347e77e781bc68f714f789f06dd1e1eee3ed21d4b5b53987e6d65a0ee3a2ed075c7ef81dbf6d1e37d6a2067f082badbb67f9b444f099c7af5ba8e83b4a5fe0fdd7e0128272a9b56e4e234a21fa225fcdcd90be8ce5c41417c7c626a29fbf526dbf57c3fcaee8162e244901238a115f0f410a14d423080f04de3026de105fa620595a9edf0a0701a91cf0b275ebc78e144bfff02c60ae8ccac0206cf9d9943307aaceca507061154f642847e21f442e88510e62f845e08c100623601944dce338d369a9f173f3e3e3f4177460add59ebe7478f462392cc11648264942073041921d90a643cb21e191132203241324a901192ad40c623eb9111212324232423242324232423240382427484e8ce5c45aa5789f7795e29f5f8b3d8b5ed81cf62efec21fb67076d25a03a9dc72d44776d7b60670fd93f3b682b01b577babda3f74ede3be3ded94222aad399c3628808888f9e1d234377e6221a2aa594f62ea2f478ff804d3f12519dce9c473474a4c808d190690516fdbee8d383ea745622348d4a4442444359b0b35714fd3e4b8855c4caf27b9e6a4b61bc9554aafd832a3fc74d442b88432215a21544a2941129202921a91e882856ea47e80279096261f7c5a709e1962a5af1b314353f47161789523fb11f3b4d028580709b66058d19a115d18eec581942d892c7c785f5a8388da8648768c7470f8f8f9d2ff52048533d08e2e00eba76cc223586cda1971f2f3d35806a34d1e9cc6df6c5a7d3f989edc5e704abb1d47c6400e9b9301f28e03195684768453423b6bc6f16a935342b688c8686052f42f4127267ae9f1f9f7e1fd603037267ad1d1e1f4bd4007ae97921827bf18185005633874c2a3cd368b3218a2cd400e2805e7c602130a9f05e7c4c2f3ea3179fedc5c7bef8e0171ff024240add1e5dff0ff8fe49c8ca4cdfb681e4da810f0d6020833e9484290011f9e92982cf7511a59cb80d3d3d44417aeeec05e4ce5c3eb05ade4c52b849144354a0a08344242348404842483de834e79946d2cfde2c42ec10ed1019298aa2d6804586accc2c42059599554045417467e6901174f6f203c89dbdf408b1b21a403da0b21a4da0888888884c442327a952246011b30a669122fd34f4a307355484212586868668600e7d313eb4e5cf179f4eb404a212acb604213b7bbd8fc97be2c7f776013501ab5531d443846914962cfe21da72bf461359e83580accc062cf89c60b53bb3010714560505620edd990d30a0b017228678e9b1321b5840cb5ba4df37f13346a45f582d84d54e58cdc26ab05abf21cb0e8d885674613d3e443e269b668408c80502398132c9400640ececc54d38cdc889c8870f70083b7bfd7d2fb5f77fcab8fa3c96c97e3ddf258f6b35961d268870f0401d038de8ce5c7f9fa5e8ce640c5d5a113d29132db57e8f74fd2765e248bfffffed574f41d9346fd34eb68c9a8c9db1c8872888cf123e20f155912991449196b4b5d394db46d7bfabe4f572912d2404813aa35d800a74f630c6d8c3ef91b2eebefb9ef33c4e6d494d0ee4b8ee3feebfd08be91d09632ff43aeeed8f3acdf193c3946ae6020e82acc55db639e76eeb9ef6cd765dd755b3eb9e3eedbaaed3bceb36ce77d83ed21beadb92e0e8d75093beeffb3069e700a2fb3e1269e6db62baf65ee70cbb0e8f8df4e6b76ddb56dabef4916ca498fef11db6776ffa909f9844b2e10da6c66adff8d971981ad31ca6c650b6acfc0beb4604fc5f7e59fec9ff49899282624b147e7eaf276168df7e66f8e5d78b0c19e251c29c4207451a3fee5a731cc7f5ca6dbb7ede668de10da4558c31de3195db3eef5a33e65ad0468495859ff4fa5a0721fdf3a4d70feb8ff5697d6dd6203c7a327aaa3b8c44fd662c58b9fe92d0370873749ffbf9bde33cf0bf53877b0ad6a7817bc761467434a23823413bce3035968f08b7af5ddfc0fb4623981afbb867638bf041f94504e9f74f5828e8717344471ba6d69c99c3d4187e0ae874dbc9d53cbd7345365436b315e1fd0d07fb386c66588b4fdbb9cfdc66460cfa9383e333788c9396b3edc6fedd42db5bf96b2bdb747f5227b2cddc73fcb3a59de996c7b0a5fd317afb3677568e343fe1a42d8384f44f92d61a5b1bb710a2ba1dff2104be7ef9a8851e784f77fd1ad2af94e60cd2ead3185bd28deea7dbacb1faf8734c0ca55bc53fc098d2edeb3e431d1ef5a9596fdfb6a7bd6e0c521db76f957631b40da46d4f414ab7d79ec7f536f908377e8ef8897b7ebdf11c97777c87edf7357efb30b586e3f92b4c8d65cccffa97c3781503e1136f278f8ebf6ebb764a411b1ce7b1c35ea09ff477d8da84adf8cffa54636bb7fc77c4dc73dce3f7b8ad69ce6f63b9d096faa3ad9c13637e8e3addde2b9cd474db82c22c00681495d634a0c6ec3bd1805ad3d101d0d98cc2ec973c2a45b741696976eb9d25fd81b4a6f6a831fb57e77bf567dda3d600a0066db120e8f6b75a8b286d0171505dd316fc3d721582d2504a533f638edb388ee338cd711dc78d38cee3b88fe3b60e2aa3b40708f84069f05b8e9fd4c83d45165b8aae99931da2688ba5f907a1b602dfcfcaaacc7eceb5e76a7bfddc6bafd75e547d0d83307441e88377edbd381e3db11f26690df40e7b42fbbac710826add0e6008413cdd2b79618efc958734eadbb7fcebf46b78f17d4c23033de74ecbece58d659c3447ad6fb9ced5cec01b7d4769fdd377375de9b4abbd296d10fc4d11df7bdf9db5467f7a9d9b0d3fc9ebdc6cb8d2e4ef5a05286d80f4259e3b6b15e0f4e1e9e94df7d5c7103cd43a45bda282a177afefecc45b37c03ffd89f3383df83a375beb068fd2935ee766fbd32eedd13e2951ef2e7061ddd7da0d9df4a8546cda887ad429221900000002e3160000180c08060302b124c9915815dd031400146c866a564c1889844910c5280a8330c818820c218410600c21644846e80a939c0af29c5f2725b2fab26dd2b96744762875aaffa2a369a49860a2a36aff4d2b2498aa2c5c24d31c7a141bf818ffe04cd7a0cb26466c66e496f18571c71ee513e302041a964473ffb3500092eb6e6c19afafe8a4aaa9c699413979007adfb9ef0ebf4ece24a930f3c8462a31014523cc7bc9788b8bf25ea875e7bf5037f45af0d8921d95af008d30c00684f31451c0b57c27f5d57ed7ca3b5231b7d7293b19bf01a5879515a5ccb87964586712c06f7c36384a805e26197e820f793cabef95292f485e8dafd397c25da945c3d0bcf221a2821259ac2356af74c61fec5a23ef108917127135f855de282a626b2b3f14acae375a3e6668b8c1fcf6a0cee54a408e073294832b3a6b521a1eb4c3371061c7edbd3e2d7828f2ad31812a675255ac78abb7805f0b4c26ac60ee5d6e70d2c8af2efb33ae1ce50d48c889c888e5c34794cd4203f9c8852cc08d8f227e8569f11105eccd85c3330c13db92c644cfd70a5798c99e99ed81991303d2cb5bd866c5e00c2683abe3db0473e3f598615c13cf1236bbc0c8e32bf1457097936bf4bc1c2a4011137d3691a692713d32462bf2ada1a8227ae3b551e68e5c8f67b31509a52711269e3a371cc15bd22062296a95851754f3dfaca806b3f16bb0f2fc33cd26c7d9ca73063d5860ebf466382d880d48c16689212b08d8c10a8bcebb4c46691c3f9e038dc0cb1b8861b78b65744ecce3c7db03d60abb16ed0948e6bc74c1159ee2a48f56547d95835f543ab9eb3bdc41064721ea365917d59aafdf77b06844f73268f62239d2c1fcf1b7c0de46f660e065f2391f232033b7504ca593ce215a969461bd490a26a2140120cf12b68743c492948c5377b47200761a7c5a47ca516d3ea71d031b0a1e1f4a1b3b7c1e88f4d82d6e1335e78893245bf39ae9ee727e1e7c96138b53928ca2fdaea462c0073f76adb194b9782e858b32d4e56265179e0d9a8285d4d358d95afaea445b4d02201e34d5547e487b1aa7bf0b251d8dae86ecfb15c375303615e0bda14440d1827191447c2ae4db3b299b32efa1405a291f1ab89385eb91ea4c853c7b07c18fd051127e0c0e8b500a38116c2dc84e64e0474265466b30371b2cbc19a234e390e0b670648f2317213890d0102513907ab4501960f0a6418c1603f9781414dc672995b91479d6150d3c0794b0b09585abaa5729f26608d7471f34228f206e03a8d6327d780addfd8672a5d31e4c916f8f20befe3f6d0b0a8e3045be532ee486c83dbaf9caa0ca658afc2ba0af7d075922607a105200aaf1640a292c0b1888a5296f0321a38e86232c2276d8a093070286e39efca707cb4d497757ffdf18ce5c10ade02d849698364a5b457fb946434f2a7d18d82268157ccb91520dc5d85513dd61b41c43993bf2ac35971aa19b4c427be4f7919b5838abe9533f8c3c338353c522605852e067ea020029bd49a4e75d90711113a85d8b577e8c110a89ea729786d94351a7fe0f852a497e849d0dc18aba79af6028a1b9fb5fcc2b4a499e2bf0debb7574c24d97eb8cd55b62f828c3549225a5230c0ac62986a478144bb515f404e3ca04bc1e20998898a81d5771354a7edcbb9790f313948ec04ba2b21464abd8a2ada44dbc0b28e585af1545f66fdb29c697b4a568c00d724c8140ee3ea88f404bc60abaedaf5e7461bf2cf9e0d8ca9257dc2bd4351ec660b4106a3a27d4a94e48cba218ad4e96e6b6cbf38bba6d4745784400ba9998914c4a339307a64c4abfd75ff2fc346728e85832e341c6445866f2a36dde6f9df505941ef7bbc7d63e095da15f835d6bd370e02f721dc227da39539ab7f1af2827822e5528a5ad353d4ce205651c728e269785e33d41e2461387a2ce849270bc338875ff8480f087c18e1576ce36afd5972e8d3ee2aff6a256c41ee8f436564f9e18a79332f77e390951ef9032638a8f79b78e74fa0ce935f9c191587114490eb8a9ae9efcb38bfdb972e4f0c15a2eaddd5148b94cc38b42e9dd1b117e8ba76d9c7b933b93308fe6c0af935d7e6c19930ef66143bd8124194ed7394c280a9e6b67739a85bc92d71b974ba06c50963ca07f189bd03bafe5bce92a1088dc9a53e4e76645b86159f2cfde83fc5bf28240c4bc504db3297d81896ec8274faf2c4b96e6ac41f966fe3e42c355b8172ab9ca4544e778a54c4159d8882f16d2f94235ad96b75d0ea84cb7a58c071dcd5c41dd262ad3ac86e449e8e005d17f0a169338113054b10e1c83a3ebabc049db1249504a8a38305437e446f6ca52a0a3a12abace10d2504de9b906ac505bbed35146b8b2db94114f9628d33454c26b599cc982007ab846780d4f8287f6a286ea527d13cdcdf12bfe17fa5984431295bd8315d037a0be74d5502d6334baf38194931556ae973de4c8486631a8975971265943d5db6c360b6061ca5e00e7ef013efb44646bf9e2ce1f7ae4ed7a992af36c0d957eb95df7c84cf4cbb50a73ed8e7c8d26cc46e59e82b9bd660e148cb43a7454b4474b11035574bbfa5fbc2c24e58b8a29b5ac1ec57f8c586df851397c5314ddd08deda9f46510ae2548d842fff54e8861e182dd9b043c541a4eb6d2d83f4a9b9f09ef8f4765b4e3432993d5cc073174b71549a2c8ba66a550e6e3dc5119790e3f680ebfdc8901ab63eab97f311e2acadcce12be82b0960037aa9ba6e974e8020fd2b7bafa581053a0742b62889595cd4375ed34eb3a0f158dd8ff5477ad94fcafd579a868d97fbf62f365693cf05707ba560a32850c4b117aa8fa5a4eadd967a345a92e2f54a849484e19d5babe5c41547ac3996605dfdab36e80c28c52b04593cea223ee11c0755b54de165cbbbfc3974dae0b6523631dde20c3f0a5cc522d895d1fdd7d0d40c12568601b07b9538eda4a0f1579203340c1121b817775bbd92204378bb03c91cfeb5fa347f5c1ace5d9f7b02d29975ace315d5c22c3edc1b348f04be4cecd22fce412931eb2e38c0ff4193247bec5f8e166c582ecba69e7a6e16ea25cccaec4560aee43763f790eeec11ddc9002878d7dffbee273991788e0894b6277316ded5cea272ee08ce5024762a6f194b6dfaf9b498a10b76c8b504f1bbb7f52161377c6fb04efd18750743291200269b4a60121422d69f7399eb2b8cd8ea3f2989771e99b9b55e9b0ac5eb1d268901298710080dc215418776f5be2087d2f8ac8c11bab6c13f0a596629733ec35a3b6e7a8a1cfa7d5d079e2845afd5133eab20b2e9b5bc1fcd7b710f3722642ff2580df10d02b30586c81d964469291503b13d6fd75b813eb0e02ba644825aa94172bc81ce048a2c3fb708746022ab7e2028a7f06df689c8da35418d2d2827857d60f968ed21586a0dba83c022a3d0c8cbab2e2b9f49c95f04f5d722e0bb8dd5f712c3342dd53673473a01928ff0d8fcdf0a9044ff5d4ec2620a9d0a136a49494242d0155c7543a921569b077632c212fe9c1e8e9b88d6115f005f1993faa5cfbccf3c72795009029ea32fe238ada43730a70270155b7f74108fbe1edadfa1a9e5edf7389d60fd6150172c6b07627a56b3fbe4ac3158e26a0eaacd31a4f4eba0069f360bac311dc7b6f084603e845e2f4e824a2a96ba03a0664bb9c6e38eab6174e421e1c62faa88158a3c4886a8d09776cc31cf710c50772ed4bff54a144c35bd8889e3d92854ba53e16c7eaf69b92c9aeaaaa6bc225472ba249eaf7936191faa67e05dfdae6e7b092d10ec73a436efdcdc31dded1868cea5e857475dd653757d89c9e5900779c284424dbdb4fd1edea2a9ff77158aa72286a5695992bab16de1c63f1170ebbc1b277cf6a4b2ef017c1b4028b825a77a228e8a8ba07da813ae7277b931055e5371287aaa1a9b2431b738d959f9a434109067da95b5b5b460068a053b79912223756933994e008a026c696651df497418d3caac42ce9e7ce8583246db2be4dccac9b7a37abb87ef3be2a906e0249ab767ec751f3d325b55e33e1beaaa5d65ff427db858ecc79c368b55146b7a760f6c2589308a84a23406b54a3396b6e0c0e415e07e8d50cd504febc3206510222cc8b37467fc6c323a422e0054a1961f9df7788f3155c2694a9ec42beb62759f437371cc8c36cc4e47b8848bc38d89c63728cb51a1da451c512f1f03fbe43375fac591ebfd18e86f831d7461db3915e8452f8f4644d614a04a163a3c8a08f6154e54a65f9d78f72226edf2e0c0ba33c9f2c8ffcfea78c761145d3f0238c30f2604747a28e1f5e82d30efc613fe51ededa9ecf6d26c1f980798d27db28900ea93c20b9363f68a6e92c9e49928fbb0beb8ccea61dd9b04edd698787ad75a6ae55e1d831d0543157c18cc08e23a633d62d71f285d116631dbf9f4198f3341cee41a70da9e8619265db6f595eac058be799eacd49e82111383392ebb84892156add6a290908111a9843e2528f94518cd84335a23a79a8e95c779c863a669941480f40d0942289b73fb9d2bc99ce9c1047ec3ffb9b336d94fc1c9e5b5eb48392bcf00bbeb1b6ea1f31e01f4ec3f065cb6bad5cbee5a6d3c0f63c7a63a42f0865d38ad0dec32c580e437178a2c464d13da0719b1033adba10915461fe093dd1bdad6fb308fbb6bc1122e0081f0cb2272082cb690cf47b0f6a71658fcd7235517be50cdb14a6caa3698dde8d0531b44b35822e6134beeb8f23ba329d83126d53edcba4ce2eeb6bfcd5303f28199ae5a4adced7883450a63ced636fe968a681e93f61d1b41132daa072b4c9acf424543d13c1a165562bc67da65745c14d8a952ef315ada00c880d4576f0454948d6926106bbb6bd6816fce99283770e65d38906d0a18e1dd3a597fbb87abcc10f9ecc081df3c91e956ce21fd3be5f4ae779dc292d115b723bb16c09b2fd655bd5614ca9a4efc1c95c283b654bb314c4e590685630e8c2384ceb2c8b5ffb70f17e252d45de16eaaa420fdd8e460d61eea59127ea774e13b774f93e8b7d42ae75bffa09ad7b30857d113d81eae3b905408477669e679e41690d7e0ba18535cced84a782d615412b13f4d3957ae848a80d97053c32a6f839e5a38e8b568f5351e4b1d171dbce6c15e5d0f02bf5de06eb290263265910ce8f01f71af1eca030c912b1bb353db2ace9dcdd137d9dd77708561459fa674d546aeb888eb1ac3be96e47e66c70242e782349791f385477664c2ab8e728760735150cbbc75255433c5559d45954f6b73bd5ee3a7b32447d2f17f7ba2cea54126c7a91d4d1bb987e9c1db74f9493b2e2bfb04706e90e4cdc38cec70fb7e5088b658b9c6284e3503f336081423c9b1a83860ae5880b4a3c7e86355ab079641a2b1ce8fe4df5587c51c4fec392f53bdc3b05c65ee38d367859dfb9e2052fd0ffd653e708c05bf21f94d3a6540193214704c84668c92d1716c198cfbdee4aba9b83603f14cd48fa3d3e71aced7415f3d48a9668f0f17a8ad56362da47607cf16125a778c852ac59e6c05225c11f58b49b5b373d629d4dc5903e0a413ec7608b8e06c8d73c14c36be2c1d58035c23ec0576b8cd59f7ebd9e0deb7715e5bc06e7435d5629b0414a2ad2ca1a9b804a11ba9b2e18533d60f208332409ab2a5c46270832e164c39d6ed5a8f18edba9389800701c3ec1dcf405c8ed7c8e68b8c0ec0f0962b23f0c27fcbce4f6f739860a49fb6801242512ac60cc13ce4a5fd28e1593d0f305e66de5bfa5476f704225c736a7239fd68b604e05e0a508c544e161a93c760e3f7839175c56f35cd8b1e7bf7aae1a74425395b42c817cede2f62fee022ea307b50dc8b0b89aa89d9f64409d514e97430d1186ee9cacd54dcc98eebeb5340cf7b7183acd086dce8238360489c4d695f1728cd9c892a6922d262591ec8e4ea82c11a6e47e83dd1aeb9059f5daad1c7156d59627b93b8a7ece9dd480694d8316251a6602d5e1866345d14324406afdd412f471af3dbb1737c2b650d88b91754c35f2a235ff84ce4cece409fb309c0172e35bafbe7ea3ab7640edff45e7cfa1c3e2a39d237c126e54110ae88b427074899e47ef6259856f6a90235506e10cbd6205b9dbcf2e2e8300bbc51df43a501b5596409fe8ebba8de56f7d3a69d80efbfee28f1bae76cbf3479476d90bbdac15c503e967fea76be7da85f7cc98001112630b0a07ea73e900a099eb2c465bf79a1a7b538b3250421876719fc7159fb332d7563106ecef0f9b77aa2f329762787614d748c13a7e7d3c8b048dcd8c24d297a0cc6e1d39f7f27cfc0b31067b5e496a24a1aa1e3f4f58616fcd5f03f87aab843fc5b1100b3d54702d997f83a555931054a88fbae60063d18d012cf254aed1ac17e14e0e01658ea846675a278b6c4ae1a1898875fe9805f97ebd6290965c64042fb6b1926d7a8b3b80525172f40554bf52005d8be5e08eb9060e9138eb8a33196c367d5b938395c6f241ad833c15d1189c984801c034a15c3b96167a4218bdb5232a579d65ffc545c8ca01881c4cc66e2a511df875ecac9346f31cf1458c59f382773e6837f665441258447e47e3cc582bfec1eb3b7601a305ef26d1196ce0f7e5a5183fc0261d8a1f36ff4934ae4482d9461253b316754008abde85d0d89b2c3ae05c6c1fe946e88d9499fdcfa3b4b18148a35d6c3c899f67f979d7a1eda52c16b49f0d1d45c0851366d5ff4000ca6381019fb7ae680623700a570083a7029a0b964100a594a723c20cb762509e0ca4bbd7770d7814d440f60ecda703bb58dcd625966635fcda746d354703d65210f38a7e11faf59743d1f9dca4407fda824d680728f7b2bba63a5dd06d2487a3e0e0421b6a97b2df1a15e59a1fcdc68dee18b4baaf1f51504a0b1888507b71e1d27b016ed0e8d1c83d531069ec305580f8ecd1f67ef8680c1d686a75f31f6bccf27f2dadfb4b5a10870aa4bf7c349fdb3de4643e9a17750ffc11b682327ed3cffeb9e732e27ea5fa4f4ee80bdc88ac115df0535118b685382a01a74a1ad3bcbb590fd3c73b04f959a852f6d4dc0b4ad2625844bfbe2db583072cf4934738b0fb7e28da1dfad7ea0c588120aa07fc88406734b727317df455f30cd028558352f3bea38bf38c4cd79bd0c9f1113d33d425e7fe7c653b9bc17da0009b0c44b17fc7cae01dc839dbca77827eae90d96c64b902ab6119358d59b7614b6f2debd9e2d57fb2514f2653931ef6c322425b14888837cbe6c8194ea845f61580e4e8388f582633035757e950e20e4339f5175cf04cc981fe3cbf5efd9cee297f24b736662e308a5427b3f52cee687a14ea49c0a68b5d3a9bb042b8ed443adf8ad89e74f2996ade88904e8e243a834665ae21286d26b898f4cdfeb823d9114de8c06ba14dce07eb4aa3eca4085e08499ad03464b6dd12645815d93ba6ab92c7819355bb39a1eb2e9a297a9acc019ffe32ac618bc23c46f68dc1dcf3168b902fd679226f1b9c331c0fd2dafb6910a14cc3565087fa26fe1fd69611c9fe1f4e7b20ca83729a0f75534e4b28025912502354e09500f3ccf16725930a314e2265e25c05fcd61cd50c88fa78f2d7da01ea6a8de169d82e418ab4d05b1debe0c1409010926cc4c2d83cdb28625c6f3e751f66667b50c261128cce44e3d39cbfb8b0d84400a8229807db711031d1a51a6381cb8266c27272d93e89968484004de7c06b08351b0d75149663410ec414dfe2c9322b00e854fbb60f9117c468b281a0c7b1b9253b3c9ec6823e72a449c089910fceb558684ed1061ec4ceb1eb09b71ce2a9f47f6c8b3c7598f5b46d21b61578b71e643141fb09be87ec42ece6648303d3ac38f0af52d1939ac718486424832e29ed4c4f072affab0e1fe7bb09a72daa7be51130d34455511628212fccc90b5ff8be95eccb6ea90ec389798748cc54bcad8604c93b44102fcc510334f5f191bdca70f4b3d8fc6b382a6210ce5d61f1fab720baf06790068e685f8b242b7f5a31bca3e32f8507452edf83fbe065d098fee801879d34c4166bc2f834a8d7560a2430028203e66df7d2c8901fafd16e5e9da9058ee9b3f81f7d30e630c401618b0d613bbc967c6dd1c714ef15fe0c4067c542a6cb1fc7dcee5b3862aa792cd90fbfa3137b023174bc0deb1d6cd4200f94b37dd88bc712c00ce33afeffa972647c035e888caa77e92c9de1ee53c147fbe2ba5198d24241205eeda0a9add5ba61a2ad5e3863521beffb59aabf3cd4025a3497831a27b09664521568513fb0f33df612714f7fa353a9cdd1bdea4bf623aa633caaaa61ad066459b4845e6dc2135fd294079f293d63a6c6b918fed75c369fb7df329606c8045aa1ab27f2ac756b22f2af30087bae2767bcddc0580fa3aa467481053722922bd2f84b958dabd6a8c8e0b34127a42184430996b3a8aafe296679274e23c87f202c7e99633844b3f57654d557dd602d9be932f81a4770083ae097560aa20201452dc64d2b79f824a8aad203927dea8c977a48ec257658d3b4568648fe10c2436029433480082400b0cfa9b5b1375ec678c527c45471326d411b7acc649f7fe5fbaff834637ada524bae2b18a87095a83a2c626903187c00a6b3f1cec8afb469f709f04b7184de0fdbe542c4d9a6ae77d46ab9be2597571d319f407e454fa68fed06e3735110ece1cf3ee5ecd8a8965bfc96d7322413ce1153fd262f767681728988d46fc0610fc5dab410a98b6c2baef24c39c9b53c4680b37a831215f59ad902d3fe16541492070ce845a302744a9a68d4fdbb7c8eea591c283ddc304606cfcf84bc88b3afd981145b5494ffa6283fccb70eee9e23bec60b384425cc03b6ccf999b2bc5e6e12830ab249da6ed4a104946ef93664a083da64b62615d26323606f91b814a5e026c28ba71e0947965cc9d98e6864d763580f81a2b22064cc14f70b36c3d75ecf3d0abfacd0694fa0ef07e17aa4712b9803dac9193fdf9e8f47806ef516593a6b837f0a297d3b37a15574df646d2a1d20bf0cbc63e9e0106cc90caf14045af04f286c35cac7329b7ac5a237862f99e16563f0eeef5a3791b7c85e60117ca6591a1c8865928f176a1041f50008144c14b30e76b69a837373c121470dab82c78da14a112047274c6c7b155de8f78ff8e15591e0e74749d21b70f3808c3ab4a6cb476f1c4adb472942059115386afaadb313cebefc4ee30cb9608e1d4ce9f251a7b4d172af6180475bbabe83d08daa374c4af969fe80401d05636fc3c6778102c9af96a56d0c6e2586fe2e336a3a0fc0cf3994f5ad38b0f09024b44ae32bab37e08ec963da798691e9f0fd5b2b8723016ebc7a9a55770d22362c8487c51dfc5d221c87e84c0960ace4b73c591f03a169552ae115a4a781fa100d81b068e6bed8f24231b08b5b1203641d7ecab99ecd1414e0e8431405c817f239cce371810f8cac14ed002505d445c9447992c747325ea74af4adc4c1424a0ea94c1eb5fef0e6acb4ae1db910bff512293cecfe65f4b4ea7210819c5552a3978d5c85748e2a4be4d50d2c45ac1fb381e0da04f4f990b3fe50f381157f0fd1db526f63b5c1b3a008fa6e4ebd524eafd60140e8ee3cfe0ed4c2f56f59e3fd67a0b1e3d77080c67b9d9d1926abc4a0a07d3e87b0ddb7c221d717435fe50c39cc679899e3060215b9602554d3ffe5fb86b31e956a0de2520b849dafcf62d93c81c5e5e0a8652933b095434edac60465c7824da604b6a80ab91aba555efe1d8e8700bfa11c90d8666c9c4f8b06a335f5692d73bd8aa2d6d23baaf532c145b229737e05d64a5528a5242f11094c5cc9ae197d82316bf7fbdc77eb98794fa722bb815c5830d49b5259b5a2a6366d77ee1fa526fc215c1233ef320f673d43e85681b4c6ea3046bb5f84a56e34d051c544fe04aa1b8b3984f37e317c6cec76f0162cc3894e11c7318a6c21f453b1f7964b6b0f2a721197cc971aa0a46a80a4f4f598a61be2a5aa63ed3681d6c12252b3612233d858958d3a3d5da6e5acedbe0acd342bdba90a834e50a8cf5b07acadeb879f0c2df9083cb5c0a885b55c9e274d867315a5f8b1d2bf92e56a63e40b798090914d503aa94638674255f46485546a536b40bf89df8bd98eea5c717872e62822a73fb465e8bce94ef112252521bdd185d48d1b0868bf69e088e05f4df66122508e87c9c671cb2d805a2c3e58aa29955b7a55bf5b1da2557ffa865d73e3c4e8291d81db582921e4b6af03b7eef6534e42fda2856a785f1aa8459d5cec9506e9c9f1c5e3dece63bcce2039ac2907b59607dc7d7185cb6a487ce144de123fa7f80eaa7c00262e88432db4442d21888ca8bc0c955e2d3f45b8b76d0b3ad8b18f491b307b29f7f91b6d9ead89c707853021a1960fb09309398cd77483ea6b2617641811d4307e6631d8ccdfdf6dcfee0fa18756f99150f122168d4728a78ef9fb1012cd930e2be3bc9adf7983ce229d9d9a2d85b6e4261cf44ea86dd51da2b6cb12945078cdcea4cd48095d11d801116c9bbef3363c17c6249be8873750883dde61ad43d592322dc8f3e9cb3e0e0a94aa206c163a7eed9341300f96ac199f025c2043c16f14b7c1ed93a1d607103fd21abd591f65e4c6a4f2b20a992b3dd917381be7f7b9a21b0e8ac4aee220458671a2572b1143d85d37385645b9848b93c1e2ce232cfc8c8db3f22940ed68d90236b0a4a01d44e878822d591544f5322c55b81a19aa7b6f5f04455e9a274a8bcf2bd04148bb0a544111f8c2582f2c0401d9e3e24c2d490115c822461ea936138ffdef9706910b7618243e9461a35782613b8cd16745116de52576c8c8d8ca32db76380c422acd76a9f9881d4b1e85c66c21c6053e6ee1a219e5b7421733594c525d1a80919520cc29a54b1d4998c785ad364e9867d4103be0810cbbb596cd8529ab7ba758f911974187fa5cf4db633e07e7b2d284389ab2b037ab81da6c80ead6ebb78d688b367bd12b6f80ac60d2ba0c42161852a3e9bb17e05db626ca45c53bfcf84da77e39a7a4c56e0889e755835e804bf987f671f96487fef48d4df057c91b5c6a998febae86e39cf36a01a41ac7b6e7a8a097cd3b5a2dc4c628741343104ebd2011728c9e2db2b0975267b5c49deacb0608e02f41b6369c71cba468bb75d186cdb10b4c61a948aa323ab1585e4cb37ea58ad12d7d981c7d3f4d2384549df6df3e996ad999f4b1aae8565767dd9f85fd230ab168cbd0af53b3361e39865ee283b82c2f9a8668d9a75ea6221af28f00da367f103eec98e9234fb31818f04b1bb12a5b968812460070224bede0afaa6b49f6a4602cddecb968595c040505c206f5d2f2117e2eae6a8f0f1d2df435d42bf179399ed4d09025613dc1700b73a2787bab42fd7f5d0fa5ec8c9f06be7a95185be38760405dd8bb6ed1c574b9f2ab866bfb9e7cb3cf6a579997bdc2a68bd216a08c1b8317ba51b421ac14b1110605122503a0314558f7d9ce69fa6a2ed7e555de9336d563a8f103fd28f5fa59561749941a1600cd4b75805dba295fccc65d966d40f6a22e8c3be1b432b0afe7c3709e05a427796053790166202286aae4a527148290638f76a5c326c5300f42800000f59b7b8a6c8b993e05cda80d864293af161c3afbaf5aff343dcd0e86d021ff57da52143ca596726c420d6a1456f8090a3c2e211b53519b3ccf29155f11aefe0eaab2e620fb5368a4e0c3cad8f9244492d0b438374f0cbd5a91134a6c342928e7f11ce3467b5ec98514dff18c8b701403d880d6fed4249a2528e2a4226e9f9d1267eb9701c7f8f8cd1385981e4b9254fbff9309d7fcd68b061e4d62153aa6dd3300a5731622d22ad74dc0515d45a66e44c2ff4b8218d86b32be01fabad359cc1254ef91295b1d48d4b9462e25af1d34df22a518c744af46f7453c5331047c3b0d1ac2096ff89518960d5808ee619b3413b436cd5ba57f5664566811879f3026b2ace18861f6fa3eca21f658c708ad62a8e41bcce2ba2ee74111ce0f822a4016bdd9a2dccfd7a0b888f61bd6286bce409148f4f608809ff0d4899bc5756962ff5742e18184a1ba8754ecb50af4b761011e292ba75bf9b9ddadcb01e0a68d5aaf5a7225b6d627f4869a674d4864a80d540ef918250c07422f342dc2c646929f316df90ddaf2493624af366079ecd38cff236c18c47dd6e6637bc6fe1052216272b53237d512ef5393460d2dd0ec2189464af70f6b9543d39e458efa9ce8030f10c4aae56a53597b3bbcf8328c4097c884a1919da8a62d543227d4b40f91ec941aad219239a1ae3d8424a7d4b50d91e4b44c51cde98808b5604d92e8e16a7b0c84e242f17154c05c0e7fe311fd300b5680357ac6256693344202c25c37bf30d1a49a1003bda0ed1f955eeaa28d9426b074d3c24253ce58cdff25755da02df1f9dbebc71a04c450ecb803872a9d730a27d17423f4992a4b936061c274bb3853647044e097101c79bb6870022eddf1821d9e93ba6b2f4cb001a31d0c29de38544b8c0d8c5ef89ff71878286b729f83841ee50f58d875af6dec9fe6b6aac2cf9a607b348a8e10a1cb756fb7f3ff0c48ebb2798eeb2244f04b404c608c10291188d2b72468bbfe9bece68d4d7e93aafe1985ce86f47a7e139b37c568b42158252904f0411b0dc85cfa53ad5a54cea72096577a7528e1c205e0bb3400a8c6c608b331670822a7c6b690ef037bc1ce4bb692472a091c8689106bb69b6906f592b653d39f8dd4f5e589537c2fee52758f6acc88546809046b440ac0bc9738089c3873afb98ed1a1c0f669eed0e75d5a3adf2b08febe65b3259321a06e20b084d91efcb808f5c7e36f4da319367eb4a0eeab0c2b0c43098e2926753e5264ddfada05e5613c2289d87348928efd1f84208a29b619fdb97eb167bc975ac58ef72caa29e3a7f5ce20b117c3f90f79ebb1a3580797c0dfdf055cd2d5613ca0d5d45932878c9a28a1db4bc3380d521599800195454b4442f37215edad215132618ac9af5f132514b94d724388c2734f946c4bd003992c230ac1615993689eff32c953a3fd921b70d2cb710157b6adfe3203f72f9e74bb61411ff92c07db67a9733d22a2a4270125faf0a46bdddeade908a3b679c2399a1f1878d20b174998acec471adc83e95537f2ad5596de65946c440bd0c6b52ad36928ba9add44c086e599363532e70d71b9564da0cba18409c62b5b69adaa8c17bd64f092cd7ffd6f49b73a50fd1501ada48c3115133e599f49e5021bee01f99915d11018650593e50f4e97b81cb751317a4c430f2d4df5867877e2837881a86d739ac0b1b903410809901911282d9b0e2568ef7d1e0d951c5566437de61eedc01e0ea942f9323085175e999983af668de588d56815ba162d556d85a95518861a0255b07bb0603f5eaafc90ea0f2759354ead24d350a9aad227bdcf5d0a599b9208fb921e74e128c32223933f1ec2caa08595e44ba7c1d854efc1a219090dc5b76bd0dabf17fef4a08ef0b7651316270ccbec50698b2eaf0f032b55695d69c7c0d8ee491fa17154aeb0dc30e3dd121cc1b5ce0b3380859e6407413681422b80a720206fad3f48ca45d2e928ae142d8394205a310b1e739d4413958d77c7ec341ed5345744fff1a43689c4140696d8f7e69b249548d35bba119238cf240df585da982e20dcbe4bcd77cfd75b172c2d7cef0ef80daccee7a6b7898a79e93d9709c5c2f584202f8325d934b6a44fa03e63358592557669b8fe49aa482a0e84b274ff49def87bbc77c2a462a85ae8a491ce33ac2875d61b409f104ad53334648f542b25b7a56b235bf24884b3b2d99b1afa4dde0eb87d91e958ba5e68720178278e3ec87ba9bb19977d05320703315de99035143ab508674efda468a1247c708ce076527da85f0edcef88e11830042c4deb28820695d7cfbba3de0b9722074814ad438a06a88e3ad459d413076c7db4a6b12971e082aac0ff48a924c50bcb0748cfe0dff228768c09a545a10f51c87a2ba4903e4aebe458b3506fc90a9916a56bc5eda7c8d071fbcaaeccb961037a6216e500dab1d8ec36a6c0d3d3db3b71a22ef5f611efe2aa970b0cafd272af8a7862995bf03c981b27ba0ce68b2ccce695dd51ade4302e2acf953395f14de5dc6d2d27a179a2de4ce11aa2b15344ad8effcb8d138a2e7ae845df6385adbd3bd4f4ed0e64dba516b7743f05c7094de1f691c6e50ca364edffbb17525d8325fcaa6c345d898d4ad078859750a4046e6bada45d1b7f96abb68ae450a49f829724a9cd9b0a93112963b496c9227ce963af24ef3d1e4f9103a8d667b0f129104c384d582ad415268e26f9190c210c178c64146920895b735a8a87e5c9224757efbde105ebf8698cd4159a78fdb59ad92c1dfaa998b821ec3869789468d3961ebb4cb5187f54714d624108f8d42aa05fde419164c4836b60b8daca3a8261c9f3b23a45eaa4434511031cce74c71003df83b808331684372b5be0bca6868420a24ba6047a41ce8c5c42604822a56361140fc29d433dbc40391e16e7de303ad9076283ec117b9cf4f2b90c1e2207d9b104a84f4e5c81ae03c679c9c02c9f806a319331f70b1a4ac239ecb0405f03361584c065a620ef6da893c1baa4687a5e2b1e949f7ee46251f6f4e2f1501256cbc2149ef9711695943a8bdb506f20135345a6874aa69a0bb782ec982743f18e2bd775aa7f2c5c5c60840e8a6472560ecf2caa82520a32ae180c3e3ea65968313f6288a87fff051c909871e5db703064892d206485ece64ab7860207862b568fc14c3aef52aa8126b314d8976115ae68f8ecc6c23e7c142734eb948371fc871e871ecc4725753679215234ba9230feb19b6bc2548440a3a85a02c9edb89219827a49a46ec74a7e29b4af328cc15a0f826b1e063e54dc926481f2ecf85c39c67db8d0926ec39493f061b828c8a30fcd983574e5abeb6cb0e84adcd70b882c4a1b66e1b3be9853f5a12bcd88e4ea3088195d69893e812f6877e8daa28077cc6374e5441f4651b54675190234837b7bde0459a783dc4957261d5ec17c2506a0db3ec0a4313813469a260632e054febd8e74c765129370cc2c435c02841084d7a16f2326aacdf402803740d80a51e95d597bf4f96d520b0c857a79096caeadf5a64446a12b31b0e84ada95a6d8069598971aaf90b671f65729227e7f6434a2f2591766263a0873af4107c11b4b194c894ea02cc8de4e8cc4841d1d739255b1ece4e0a43faf5849f31c8c34087498072170c1c86546712aa6e9a85724afa53ba6330d589006db5792568c9de01abc88f161eb1242c19b689d28400563556412290e7b459beabc67ca4bfa2e8d452d0660e85ce2f5d70b8fa9cc94ca9a4c4d333ee30b68c66eaad8ee95df2feab131ad60a05eccbc794451acda0cc2ee95ab800ee91b838cd6052cea4d4000bec205786d6c5d484e8d01db4bd80c0ab414ad610c31df27019cc9d064cc30a914f80817d9381521486fca2c1a072a3ac91873e7b1d15671a242f94a384c854a1f765dc7d38d5655304c116729cabb318486ca9b8070a9148fb819631a40bb280238933d5fc5fb7c65a7790348fcad9faf9c21fa02b10062d9c73ad072a31d942cad92c4fa90fa0a5dc68eeb0482764e9d6804953500a1be122973d2c679df22608598b46a6e37c625d5eb03999a4fbf9293d0ff8510f72bf2b2bfc05d87b6780ca4dd70bdfa139730b9f4cfa56e5417c0c2018be579f68e08c5f63ede8965065fde6290f744081bb2416dc5241f23c2da8df4a1754bf4ebb054e6c6c0a2c601a994840459f91816557426228382b36fd1d16f63ecfb1e7f47bd19dc0816fb129049f8576fce83927cd5d916b1bc32c1f239bc88c84b132ca19f3bf1bc4832166412125929787d1e418b410c84c318000816587fda40c64c801016b20dac2cda430a4b9fb715c3b2b0d81ddd3a5c61e10c04c3c2d1936109c5c0e66f99ddeadf99f1c32902efc51512840e79714207362386e59c49186749388405eabc6a04fbd3892b5a043e7c8521fa03312c6b8b7a360e885da65179382ce38055f3687d7c5e36a26121b79fce1a169569bcefc60dcbfda4868ce79bf1688928a58733cdb3c9a7715bbad09eb5d1b69ed2e65934ff04ba462c62cf6588131f1691dab87d4df65845dee8219752f0bde0a6c8b913606518d8d25a5f3762f11f0021b8243a45292b9dfa8a90631219003cb29c32163f4cb9516b97dcffd7a73bc16b027127808a0e54e82014f45849e2ff129ff6a72b16a83c05388467d0e519633ef130b6f61d70ba584c48f3d2b2bae817f581bd2b97c9c3a344f857302477775ab7b5c532cfeef107cfc562af3d835e2e1641a98692aeb361ea4e1a4762b158951da627938464a19c63590adc73b1080cb4394f0ed2ef0cd5bc757a0ee3983d68e0407582eb11f7105019d9414d291bf72634e195d1e7c532b70203b67fb1346c5c8df9eb00e3c555d15f2c0e69323035ff2bc4a4231cad2dc6820b0a7d58eabe31d53eec5ecd198c743aa776b11e9b2ec6e289eac61a47c6f22987c8146415b6410ac27a67f01339ffdd9e33164215b6c95391682cf354986c1629921a0b0c92bbf9f81a4b3e3062984fb4b1849421fda2cf8c419d9d791abe666cc90d92053b02a53eb4b1603aedc642f59edd907531e7557f05c7c2a13dc06d1c0b7253e2579a25a356ac9ee83896fc2da7f88eb1735bce50aabc91d67e400e5e5976979d7e92a552c4f6e031ea12c631a9b948c7e261be6d5387b789ef886ea9abc4413a96ea9abe44f9e32d1173d062898e27c52ffbc1cca0673278b8102243ba05a452413d496e05f06cece003f6b1180d998ed1711a13de6239cdd320fba5a2de8f7dee6359d905a83f16076001597eb4c449822c670078847be0313069e924bc2e0808b2a484dcbd6b1dd26ef0e1f0d7ca62d241b7c7a1d05f0a19800f3f0431c22782007007b81a37a630e27cc802c7bdb718922121dd1fb2ec49c73491dbaea23079c802f00b59f660d47b972f8022c4d9904485fce121cbfe7674159244168db3a13d2bb2b4299b98d005d5964a2ab2843287b14862e5e230791f81cad28a2c82cf1fef0e8714093b10216a1a59cc003f2100bc234bfb63c43a1959220345161d43bc69caa42cd19b8a2c0cec66a4a3da16682625c050f6c86ec556433b3074b8824dde9b6a7464c1d87f09812aa9b4ff9f510da6c49a9bd3ce8c02a8882f85e903d489950f2c5da73d348338112dfe6a5dd9b6e6d702a20dbc2633dc61559b40c9225a108b6431ddd2ab88fe0619089345271ef35edd1db3c9d0e6dc5da63af90c6f64a6479345b41fe22a5fc5be75472ee760b2ac5b26321652f9be8addcf64d5f82c46169e2f531cbf5471e2ae12007b02094b0138693559b664594e9ba1817d4c9610b19a2cb3bdef6439bf1e98c7454b9698edc0b71b7f4b0f04e29a902760136c62a161534d16ebf31a9adc8060a863050bfa11843dee651b613e8912f5401a1ddf7bb2c01de10f58c707932e01dd0c9174d735350d622091834a49c385ecc922218b19ffc953df9fd18d285ea8c25884e2b7280bcaea3e122d329c2bca420e35327a554c37035eb5280b7edc0acb180ce0b42ff4d963c19a31b12b0030a1283719690391b2604825cefb9560d1152ef045ca22fd00939bf16c5155ced86d3873dca86286d019fcd4bd0c995316a823cdd8735416d7446d6913b2ec2df9cb49571743d98b41c955968fc6362f5e24fca876a395e5e240a17772810b2c4bf3ed602756e1f25e7e26c0b20c469cade9581617803d5b1ab32c94aef6a765b197c2f8b16581b871f07922272248b5c87a7d94111563317e9785027674e8059c22f2b3c122c643064594f990f9a3b4998387ba454ff0216c56da5e9693197b3ce9f4cc35394186bc964032fd78ed6469308b607279311aa678ad752569c8c12c8b8bb3598286209d7191c30e9db973e31d7c8b41922d283237300fe5cd2c17d3b394245d2c82ac167c608b59263ec1f5c72c622dd353bbc73c0ce67d995da21ab1fc62161b138d90da4c04948f20c78f8a1e01a994942015ac20a412898654c68448a51f14a98426b36ca2f85aa58656e55f652ed647031b21ab3e597d1b549b2d03c72ca8765591ff87a3ae659660e32f3d5f661604e05ce8609e84af2c1d2c4cefe6699e338baf5e884964049c595ab72b0821aec05cfeeba3240c9c599ece4501b340a7677e0e726601dcf8bfb3c89fea61b34cd36816b1335c6ceb350b9101bb4551ac9670c8271867e907e5fc95e1420e999c258f7f570e8a72f3e7138f9c667ae6faead31795f3318f8ef23fd2513985a2f451fe9e3ee6247a9ba3379afe1c256056cf84f8dc44abf29fc0e631cc391951d81dc6916a5bf5b1e78bd8f86dc5e3e23fb855e5465cc4033f30a28dabe131fe70cb551b75d925588e8e62d691cd5dc1b2f63538abdd6873a5884a51297c2b8d3712b71dc5a481c788de8fec418adc7c596eb2b95575d22b3b088b25d73d2e428c266746e935134857dfc9222a414d312ab6e9e2bdee714f10a40969eded618bc0b8fd1d06744fe052e9e1ab5e2d8ef618061c56db991f84b4c01e5445d37880ebb6a75658e8847f58c2149e308e6182746ce2cfd48541c7617b41ebd322f13ab02893c56427bf927c973f7f9def876151806870da28bbebc0d42ad856587e4d3a68d961274308bc10cb327274047fadaa616b248dac273df15a6c0b9e182f1a2f278527254a9ca7a21114e99d042117236cf99bf0fd1391587dc41866c0bd5d6212c2426833fc0c25153cfd43c5dd7bc13c15773ff3d3286f63879e087f8c8a967c9b39903ed90124bf88e63bc23fc62f47e22bf7653f840fb01403e96edb2577ebbe612b8faee72188378590bc1c6380b7efba778982e345ac0cc7184a71fbc6716dc9b339104a9e3eb602e96f10fed4bed860fac041ad055f0b33adcb963266a876dc5dfb8e8f4cdb3778cd6334ff9cd37a4e5ddfe24565f4090af99eed223fe6be72a9f324e12a3b0973fa7957cd37d0cf2632fef8458ca6077664eb4cf775b344dd057995fbd6815b1279ac1274b82080c83114a58cc3830222c7a8683247b8ae7db9abaef1b37981d43fde814c021edeeae87f3802b9a1027f5e4ad58a53e02223376b42ed2b3c135c8e7e2d0d19cf07c8a1ced4e1a98cdcfb8123ba80fc980661dc09d9ac17edcbab6d231610246c104252193f528687f95808fc2af1202442a810b385ba232b2388e82faef695118f888a50995d9d47c091f65b8ee02987fbd8978b6535f6ba60691f751a3892b2cd1fe4bf5f5f37a24649d8d7aa916cbfdc61dd24530723507f4c1ab53cc798c3d997d183cd7d1b33da5ce0a3c40f491200ca2cee4b1b9c44f1f32bd6ee2bc9051438c1fb1664187d0b27a8e8b302f40ae34350eb16399facb2a6109c91bf4c79b24657481c8e215e89952676b5fbbef284adde3777f25f0fcfe8007d3d0fdc1683ef2b801afa589e7d5f69d4f3e14a332d7793536b8e61cf795f16a09fb5237e28d3def7e33f012e99df1b10ca81f3800dab912fadc9816dd6082088d0a039369b4b2ceb484e92cc82c6320b07b78773cb08d14dd7531501f4ed76beefeae7347e39ca7b429a7f5fe09389ecd058d0ae8a35aa7a23a3f043d5dfd740e48f2cdbead5da311943c0efa5a3358cc70b5d4d1c1490945295d3ca5934a24b60458a3811207c0b6ba43b7f1bfc3a47a5842b6ed1f8b99c2abdc6278de6c9c424fd7d51e67c0a01bfccd7549904bfaa37a126f15462adc1a11d8c5e0088283c3e92f021714efa7d61be4448235e0aedc94406487b539fc05d07d8543f4d1ad953a79d266400942ffa34b8eb0263ddad9ea0fa3ad79255ece34ae3984789f5efcb9ffde127441a68eb253bf6b0ea530ee99b71a7af72acdf918b9358b8d54b60c334725e23486b01fc061985fb1649d64da2c927682028a149d1031d415b6903fc7ff85700bfa41fec4601ea04edf955dc9a4647a32ed01ef05bdd35d3e23fc20b26e93ecf08f875776755878063b5a7e2b335344f1b541b9a9a909e523d05144f838912268c429d46a7f01d0a4e74b61055d4f7fd888ce0d77edf5a4e0e8c0fc0efd5ce483af09b61a079a56d9dddd40a1b3fe03b9cf02b392e0dc32f97c888a87d6a844403374f0a38111257bd5fb8dc88d8e376794ee2a229e94e03904ad3793deef4150b4606dc9a0ca3f439bc433ad02574ac9303f87ddd07144aa3640956af167e456150875f569e885f6f53fb8f4421ca86269e4ea2a7e6111ad348ba469aac3b3bec6b8a2764a44d7593285de30bd7c181508cdf5769e21debdb8043f61566e877be98d5aa96dd237f0befd73b7ec5f3be046cdcba087913c80fc66a41b5b74cdf6b689e50c3177b6ab2d6779389f9ebdb0c5488fcfe9c70dad8db4f78bd3e3cdb9100dd29ff916ac9f66b8d5f43d849a6a890bc500072077452350d54146fe48fdf0ef7a55ce417f88210fdc4c6b2d0d3b8296189033efe516d73a2926535dba62dcba44803181b59514fcb9a2c1b925fc3c0604a40f1771354d0e5c47c10aa69e35fbf1f81ec9a332e64b5d392811725b6afb24671b0ee47768bd60631bf7292186103406dec577adc46f50e18451f464d50a365776ee619c523ed3a333540b26c96ddc4ee3f3d3b66de1ce328aeee288049b4961af699ed7a8b11290a1cf3eb89660b1060fe0b88e96cb6d87c9b476ac2a2d0c7c308b7284043a475e04591e467518ee74e0a2cc4c558ae5144c37e93231e9e28ed5729271921658485823c186955595ef58179c2d34ef751f882d32d2a42c257a32813eb2d6b0cc425838206636d8a24c45294604a83cf904695fd9f498a344af4f86138dc1da72ba10d9e14907f93732521ff243c1fd1affce3277733abeaa7e8bacc82127b342641a747a8045d7d16900215563e80472ac5d28b59286a219838de582922ee4e526b5aa3d7c8819b43f6f14ab1012915490b3766e4db13b8892ede10b91e0303c6a2d9b29662309696023722cb183223cf92cc946d6a7349269292b5ea5d538a1acd75688b7d20a9ec301990e7551513dc6edcf0c38ce84170ed947aca9381bf4f9958220bc83589669a23335c9101054330477e750289fe559ed84ea0003e0ed8be038202284c82b593d480ff0fe2eefebc1af73fb9be1c3a550e866323ce168ceb84a65550caa45e211b3ba185862d37e0c56e88eac60302fa36d45acc16b4133c1ab27434d274b184c2df114d14ee32dc4e10617e08d38080ec77f9b34c42e30973293c2340470308d18c2798a7e409c3f5e3db54bd304f483a561e151ccb70f47902900327cf33557a8297d95cc148ec31d4df7d319d0b4532c9cd7ded09e75d98ea038e5eb63eed092cfdd14b16039bd530a73d01b24ee0dcf2ee89e8fe181e1b2570fcc32a5b6e0af0c127706bb74821fc44a3dce2893d215a35c69ae3e10ae0cb7d5bfcb2d9971ff4b46c648b9e1a501398c450ecd3a402df1f70fc84747a0458cbb24437f5850b1c1d080263c71aeabd36f489869be41324f6877f07ab2a16436cfbd28643dee800d627e8512f41716ec08a042f6808d87b31d669f2694eb3b095aa990041fee808e627be4a368153f4bda3d021166f78c64b34e329c2c6d89f88cb872ab17f50fb5407adcc412f385ff9ee9d689f1c043652d300000504a0b609335c8ef8e5848e7288abcf5870c800a02808d4a0ae1f1ff3e9f54407a0a06d7f3f13686dc240a230aef849d8d74e0814fea3f067e160831f68874330cc74080afa459a6cbbd51620b9081c0709c08b9452c20bf60629eb12212c28aec9e623fd19b53238280af794177d507c04f719f99a44284cc6560985ba2f16d15128b8e9f4caf30a05c43bdde726648ff68e1f4b5c919a647baba9225a4b08f06d3026d2805522c59ac384ca07f37839978aa1e0b7fbe6891a6f9f83c5404f30df52c75303a6edf4c40ead230935e81dbb280eacb8fc85cdd2c10b52e79793f0c00dba10f109f5cc16dd012e75d9dcc2283eb580c1c9de28ce670c9466c9488fd427b4a8d2ec04bd1394e8bc365b8c8f1f88238b16032c02b7348ad976eb1ab1e4272266151015005c334fe2e5275c22379adf6db7fe4f22072ee1c5ff24a13d7bcde41526d25c148e9580775c3f41a2d7e1e003b02ea595a87f82ff8cc39f35817528931f10800271e222cffad4efcdb17d846b4cf40fc2d39cc23fe417de4713d84bc4ce213de6bcd95b3701018a6199de7980c234ef352548940dc1de4f648b2c875efd24e09fa819c766542350dc2ba434ce7e3e836276addf8036ef611a68c207453fa3f60a330d651477f52d967daf67221497b301169e3942d25d3a483303190a7557c59574ed4dd966a7f24da7d8631747c2af733b616dcd8aecd1273c1b6e6351ba39059baab28f3c4215961a06162c0bd799a20e424da8b867a4c70bab8fa4686152ac6574c939b00f21361c140892c1254f584f4e8065f7ae4b1d845ed71aeb7c5b35089286c293edb4066a8409e45aa22442ad0963c0df0dc26f1efee3a273357ebd373f1353b5bf5011a785a42f45632d9c52fb1bcc20922dfcc046c6aef131fdd053f4287c03c97d0bbb85d35dc592b14a5cd8d4bbdcca85ddfece736dfc0509e20aa64b26f3d220847cef7c57641bfea17930e6a91641f521b12af3594155c201d0911459ba9211c60ef2b2bf4f2baea8563fda690ecbb4da0b76b2c80e7228b008566929a71609381b07b6fc801228a1b16beb8efc55f35727a7c182359d44b51c348903984fd7aa85439f0e96a246b5c80007201d06fee2e936f461c7910b43c8199f9e13ec283acf90d10beb67973d413575f98d84ac57afba17160ade6f100d2c1c7d8f6b3c741f4b25cec964105de11da5b4b802965f5a894a39bfff4ad89749bf307dc982aeb31b6ffdac96b0269004de658b35c8a390d42a0f6e25f14618d68db93b88deeefafa786b6198eac8e3ec91a00d842bf7913e0fd4e4b5a1bd89611704643d537318beb8c5696081deaf2c25763e1724df38a0fc347edbba245907f9e6a393fd51685ed1f57a76f88281f15343a67988cb60a43d9740f48291e50669bdea2abd05370963c31f46aa89391cd84ea64785f83c4551be48ec94c8a3f66d241ba5805a1e2df8c12e2d4e1b16653ed1e766f94d8d8ac4fc0fad1935d0128b1db10a7ab4caf13511a0e7328c88ec5bca68588c7be3289986639c2a23e1354d9171b9ade61448c6118a4112e0304b6235336dc3cf19ff00a38acfc4b9421c812fc75f957770d4691ebbcb8f8f3701393f3d1c237af75a5f2c5a60073ec78d10fbde0566a87ccade4d09ed20c03813d47cbb16eb0612fafef769fc0b5d6f6e5ff8bde4d635f26efc8f073b9065be9ced78e9a91480e1471c10de8244c588b0b5e99baf54364cbc77b8dec9298ecccda4bb23b5853000bf1e17d78f4d1acc8ebec81a547ffc1405efaa1e29ae2640842bc36fd546bb9848c7253cacbc2f3c6d57575dc03969c07103bb85d86623dd8a05f12f1b4ac613adc7bce2f41c54826fbdebaa919e321359fa5faba563ac2031c814ed0dc5f84c614ff54f735f1cd496e86c790e81e96ccc1d2353fd34fd15436cfdff5941189de3086efa3ea9f89253c86de8b58b1fca61022ca710dd1d3435f08368d654360c87eb3985b47d89e2364cefee992f11c0d5eaa899451202f725a04bff122bf0d434247de7737f01d5cbbec44ec044b78e76e32ef09dd357827702772c0ef71ec793104599476ffbd18e2d836bdf5fa3247e8d3e086ef6626bc1c799cf5ff4c6d5cbaae8fd6c754938ad8c8c1c48d68ffd382f9e5876f6e0d8f461dd4c8c51726ea940bb23aeed938ba60f813c2e28d2c9994df90ec0f94f94992f0d4ac512a9f581bf19c933d92ae694b6bb0d6c2fb4e53608a408e6b9f53327695b09102b9c091c0c6af541cb43ae0fdbb4812ac5ab44888449891070db2cae0f4ed1245fcc7b2687545385fb0fae0f4177ee3beb94b61108256eb6f6fab0486d257ecc1ad6de3e6ede77dd67f6689ca5db3912e760d8781766f5067a4b0149c8a83e3c8485e891d9c774f891b0062d6a96dbf11bd47282ede0035de69aa925c787ff9d8b197419d79f6e1b67cc812fbbdd45ed6672e5039478042b6c38f8eb77d8016b88886bb0e7aae4b1a6441fd6704051501f4028d71f99b9b30b9427223e5dd2482d43a970426094c2562ad4a5ba5b2f1941cdc2125371070e9cfb1e4e2744028c1d0f626374a1d1420caa2fe90cb1bd0df1d2693e2e129ceb96aa6f9a089283a07dfe8c684c985807836bdbefa487fdb52bf1b5a824d59b1e055da7977479865094f0413fa897d09dfcbc37f4086c9f2a96c3a5b62ef6514c35e1ce916b27f86b2a267d6b245e10c93109d7e70773cc89180651a7acb3031ca2048e4084fb0e551040b46e7314384e028dcf85d7e8c9c65b87627834c4c22de9ebc65d61161a434a60943c4a7ac61c2e5e8ce72e28b60ed176dfe5a01be333599cedb6efb363e8e7d6a3fca401e0b83fd2dfdb46cbc6eede528adc01c90e940e620fe6efb104d247b01f892a3076d0feae90a3b747b0e7bf5be717b66e33ab63c71246a221bd7b85481fd2443f450cf4ad7d05528fa4fe79b2fdf977dcfe65febdc35059483b066a22bca4d38eb9037049fb0bda65902a71a45fdfe17d12c8424531ec9885f0f95bd96b24e1cc4263c629c2b02fdefad145688cdd8c5a6b74a61be9e4ee4cd314af2f0c785501bb6d7d408f8fbef592e9794cbfd04cebdac3e34e5d7b649bf6f898c3dd762ffb226ab0f3d80671fa0d9e1cf7cea8a31d38f616e807a1028a491d3f7d1c6d7dda37bf8e6b261cd9eeed2fc6be5b103a7e3ae913385bfda283ddb61b4ed744aeba8e03dcbe28e03da2e8db816b7f35d36f742437fb76d0c2b0c74da4d3b56a4bb6ef0b74b4744e1d4fc794145183318fe925eca306feab1d06942449dfba498f28a9f7e96faa99c611254160eff1d1dfb44575d6b9d5e3267550ad73eef4d2fa801e475defb0ffec52f7d9ad4eee3e8fe5da97d5651b4992a4cd76ba8d1c9df45647bff8c956c7512f9d743485d2479b93b676c3e9a3eb1f77240943ce659ffabacb6f2e7bc0e820745ad5cf5505751cc99174750cdd8de49fe59f32f87202a4a32d0c399795bb57fdf1c956bfc023e871247359e68d9ec732ef0536c24f6aa6dfa38f71e0cb639a098f583369262e1e0464a629cb9acec29b5e3a499a28904e65e1492f83580811f42428d5d1f19d75c6b47db1b97b43bca9a3433e004551f0a89f6f880f8fb6afe963baba364995f475b7730715c62ca4f380146d5ff675da102178d0ac63f01cc0694b0c8fd6475a63ce99cc4e92635026c72cb4f3d067350bf160f1594a82ab649050e67918ca3cf3749dd6c35090c9e3e72e092759341e3dd67aab23e9d904dd8e59882c5a776bb6bacd83c599653da82cd992f4d24b375dafe490071df40a39e9261d33c08e5a64bc3e6ba501aeceaef081edb1dd4cf5a4817d45bc2981214d54a47dfb51e6e1d7bedd019968744f2f3d3d4bf25f1afc4afef67347bef6d345fca992786d3794ecaef4db2e75db4ef59edd4ab25968f3d0f95e31c0fa7c3e9fabd318f8b0822e62a8b15cd5d4b7bf208326e2c0754e13f58d0112a0a06d41fbf9837dd9d736cfbc0d2890da4911bf1d28f336902ee2c9f6c5bab6055de66d40816c5fedeccdb7f778caee7a762db08e02f259df381f49ef695b607728209ff5771c7b106c4b822c3462f25bd0443adfce6add8ed51d760febec06d6d916c4ade5a1f3edf3fdf82de40e3b77e8d9bd1cac6d5d5b0c55ee70d3f6f9615677688104280841e27e7c723c3bac8edd8d7edb79cf0e97fe3d44b4102371438cd39119d2dced3268221140be9c24819969e26388bbbd054d24a2070bb2a52aa7366584ee38c6e9885816251d6bbab8dbd39c7b5647b62de06071548ba17a9c0df2f0b4ac937eea60df71eca1a2b290dbfcc5509fc3bf153491eeeb04fdac9300053beccb1809ff32567a4177d8bec7afd7bf027b6b6ded9985cad8d33760800307a23bd86d5841e7bab606d8d5b90837c52cb97724d8a16017220b6dd7ed5e9001fb7e4a596874755fb62de8d831164bed6c51bfb0d8dfece7b9fd35fdf41397455968f4b22cfd2ccbb22447ddbe3a5d1661e2fc86f453c47b74f4a78f2311d921e7efeec953e5719d6b47bdd38e1ad7da76f8dd4f37fdd5d97665f69383c75eee421c7ddef808f7d3da61cb3bc5f6f0dac7536b131c00818cb3eff3cf37219f9aa83705387618836387f1a5c60ee3bfbade14e1d8611c8b6172fe14e39c333e21e728bdf3ab18e30dbb1df3b32dd273ebb1051a07907d6f8cbdd48e53bd3b737bee733cc9582c82c49a491adf18f462a02e038d2590e7878d5f38c735f24f13f20ebfce0ebf34f892cce7ee1581821059082be50e18333d76dfcfec31761464de6e59f01099a75b1ea863ffa08920f095b59c5439ddc8c2f5a5848bbd08bb0b6120119d21708ee110458f71765dce243e688cb11256c249f8f7012b8965df66f7264320602c41c7c90100e0ec19895e489d672c416597f2eec2e61734111e06d7f6d5ad6e6bf189822c84733e9fb0eff9fb7cc2be582abf37c0a3cecf0279c378a889f098ee80fd3cc7866f08768f3a1ed378c41aa322d096852c84dfb3c5632717f61df158c6658f33998b0290c44c080d3544928ab8d859ecbaecd3a121d56a6b82c66fa9d11455535507455da787ae6be92676157b398e2590bf55dc821a7ce9a60afadf14847a42eaaaab5968c8e21d88d5b16f0555281dabb87d41683fbd4c4b1440a0ae8351d7f134a3a5e355f57437fe5e51ac6a5f777a5c53546579f04b812249f224d95585d2c9f6253d2d5128492f77204ad7782541684f7d29b9dd72378e1d46a15c83d7e58e841263126335236529a0fc9a5cf0703ba8187679a1d4634b8edbc1cd1a2d4d846a5eac5c0f905ebc4043640a0b69673c27c54a4c195d55b8b5369be37cefdefd7bc43f6c649aaeb27e9e2be9e769ae0f383df5b42c7ded9527909765beedc6b7edd877ebec5e1527693fc911276125bd53d3f3cc6251ac74ae38e93cdbd724493f7767fe7327c3de8d8f93f00898245d072bfd78c3e538eacc6a2212ce68b8a93271a2cd0e114ad620ad05e3ac10b3e58e3ee2b2119f71f215452dd547b9e5b1f5e8e31e473dfac88eae1b7d1cfd1c7d0c1a75c655f250cf90973ef379a269fb9eaf49d2d5dd3876204bd2045227eb19f4cb02d12d9b85729b33cbf2e894582c06803388c743f0a010427010da838402e0da7300028085847090ceba1db463936c1648e70108b31a687ff691b11a3aa740018dd0303025cfced0967c4c5098a698884c52317c4c6d98d298c6309131813175310d99aa967c4bbea5dfd2d25253d25a8bab163d5a0c5b045bacb5486b31a605590bb0165d2da0b410b6984a5a4b5a53e153f153b164022d090dfb864955493a928449c024b4a43149644960495d495092ae92a4927a984033816662ed84efc40f8ff0fd5013b5444de441511371f81a4b40c5328f1dcbbc5b59e6d9cc326f3dcb3c154d1301ad615f18d81ba14f48aef98d1031c6e713e1f3f97c3e9f0bec4b31676d4eda1be16ba7819006431a1069505c437ced31fc62588aa12906600c50310463888a412a06aa1884310cd73cbdf6187494680d6448f3adc5e02bcb1461000506533020c2406a8d4f4d1b35696ac6a8215303a6a64bcd504d559aefb5b7c0d7825f0b965ad074b6f4da4114417c8118036106e20c041a0835106b20e084f085f869a20d65cabc76106346a39437c633e39df1d0786b9907270b69185e08434403c1e3a965a2231bb983d6444668249c2c8f6884666eb226102ede362096deb532c4325765aaca4c95e951464719a732bf3223c2105fbb098826289ae0cb0463645fafdd852617802e045d907281ca05a10b562e0c5dd07281e842918cc86b77618ab7658a35b500d6c2550b5f2d0cc996c852908d186b33963636668c6cac380645ace9b5b3d0c40290856053160206a38ea48e844630e8de4867b746686318d1cc03440f143df0e58131b125b19f982f6c2d8c18e3e7d4e554e5547412d2f8d118e1d4c629cd698c1399139813d1e92ac62fc62fc6528ca6184038702ae02ba2a1ada0b6c2d80a652b8c49f9da5ae16b85155658a1582c168bc562b128e5ebb5a7f095c2580a296c1573ec3085610a5a3c3829542950a5203492322a1a89198d19957d197df188463518a58d46a98f25a0ec0d4ee6d9326f557f9a08c868cb4868343422e66882fa412d41353d41799a7a223e493db5794a7b1af344f604f6d4f5347caacad194a3a900430f52bc216f0402c6f07c0830e3097953bc1e3c1d3c279e0b5e0a04ac2120ad00c3d75e8061018805287a307bed1ea43c083d0c3d6879207ad8f250f4e0e5e1cbc39887acd7eee18ab7f5c5fb0a2168b64d1e82228c11a14b0433118a1e801e9c3cb8f090c2c30811da889026c298086021045f7b08c110a44210b6c5d7de36b5c036d846b5522d552b6cadda614b6c7fbcf6b6078fc823f28a3c2fde16afc8fb32a2e211330f1319a9a9b83542e3f06b7fedd20eca6e6a47dc49b5be5d9b5dda6ecc8e6c07b6ebda0d77551c7eaf9dc38fc312872623aa8c00a1d1d0d4f18847411e1e70c0612c0145ca3c36f36eb6556dd2444047255efbd10823aa5c6b246594230ad2f938f880ae807a000d8182406b4069406380c880c080ba80a0000981a674bed7aef3e97eba25a32fa32f232a23a1919591119ad46b1ef148ca071ff98e7e474a474b474c474d47368e8047c12315affd28859198d1d7cedacfd54f8f9fe14ff067ed27ed67cc0fd90fd84fd70f941fe1cfd4ceda6bdf59cbf972bfdc128fb863b673b663466329872fc72fc7128e2b1c3d700c710471ace148c3310607190e301c5d38a0e010e298a2b14463c9895404da44802c026b1118931294a2438a9314175252481911052dca9813a44e109e303c81c8dbe2118d784423b5cc538da8cc8cd454b1af31339c136e04ae09e72b42c15de1aa7053b81e381db8255c0a3333b1b1a2579168a4665a11d51469ea0f4d1daa55ea94da43d5a13aa92e545f1b22b1f8655a994323291ed188ca48ca08cd08ce91efe877a464b4663699359ccca6b104f46606cd28538a47cc4bad07e555d9a31c96c1b5b43164605d50ca29ed3c293c28798947e46df18a3c2fde174f8c37c6212319a919a1adadc159d31df4d10f4bd003521e107a60d881b40e807500ad035f61c1301d614e612ec252848dd0d2468b9916322cc1d7ae81a006a43420d4c0d008cd68edc877b474c474f4d31dfdba7e1af8696049034d1a006a000acbd36bd7808e0c40c9c05406881990c2e2bbd2e64ada953157c8ae805de9ba32bc52d5f57bed15f85560a9024d4668466a47bea3dfd1d2918d23a0d1da51d30cf635427bed27fc4e583aa1e904e0095027044f88ca3c9b93a7d77e828eb107a537d523f6a49cf89ab46992d6644c13b226604dba9a0c9b545df95efbfbfef74bdf14c26ec72362a05100dc844ce4d3444744bf7f7147bed76e8466b436aebd8ebf38b4d750c0157c2972f020003b3e3fec0d07007248123551083eba188d2840c423681fb9a23c01733e16a00be9fb220e85521d5074f09995f160e71c5a10886753163a6b989d6546101272d7e94eb4142b29655ee9441ee45c8e5c5614b01a92598a025214a02a3519fb8e5c501480a24070ef7884e0e92e051b2934a5b09482520abf2c9402520abe2c04676d1c001a100b8c2e50080ec20e89839f38dd206f773f9d1bd47a10148136e30835d43e02696f5efb7bca781dfc65ef0b5c9e4c49922449c740d6a417c178f2e8c9e2934132e8e3c4ce93a48fe4487c92b4ca5a6350af4113ba7713ea34d864931796b046d69b3e8326d37419ac3d3343a944477228e088d86f9761c720f88505842322675ffa2eb1a8ac5e60152133c432f2e54b8f61ed95fb9666780506308cfd4c19c69a4c7953448d0b944dce7852345990a6ab69cac709206d4a47dbb444cbd27cc1da335db0f6c82dbfb7b760eded72005a24d2c8c92135c31653c6931fc921ca090d5147865b62bc603a0bd69e89b5e1495f0126b17015bbc0a95202c68afb0e7d0c2763ce9d0b1323d0bc706521e3eebdb70a42600d717a9274107bccf2ad610dd7b069d3c57d8750ccf4640d2982ca468d1e6b5dd272aca56f0aa0ecf88d3555fced2860d3bdd7545151668615901767dc7748fb7c3e5f93bbf7dea8efbd318cdf7b6f134b50107dd010264b89bb374edb972c8e45ee90b3e3399e60ed6dd44d80d1d583de4dfe1dbdc4be1ccbc6b32fd77284c3e15f8c8495be7c3113b681a14a1f5f4cf565f15f6cf5a583f9b2f493d5b9d010992fbdc80408ac0084cd97fea1051e5f3a0a5e98fad265885ae20b62f543fb120b480d5f3a6e0206010b0a0122f5fbd2b130f3462ca92a5f7a0986e446492117bb37dabe6491043f9e9ef44dfa0850d2a888d44a031b5c2f7c70b508e3856c471160f988f37bbb0b9b84271a6b6ce85082638d68bb255ba40c5be44a9221d20fcb9a310b957de92d6c32a83be0a0d0e64036f760f3216df371ec6dbe336f7d9bcd96adac54f902820221cbc6131a5937ceb270687de921182222009a5b3a083e50a48932b02a898ed92e03491265e10a10912727ab8695dfee0194c471e6244e8a164a3f182f86e8d01ec468bcc0f1e3cb981930dae6607b3e263b7066d1007260eded20192c8bacf9a0f5d5e3f7570dbf7d033a226938c862058b0670018680e960d449220016ae33cb0cbf3d03ec991d068eaa4e2c2f7efb0558a9ad2937bcbcd69ebc294b175f1a79f3e5cf9753d4588971c38a192c4132c8b2a59f1660aff812f0db2b5024a967052f2a153ea802da12d0e5cb0f2ca016293e0a78a51061023ad214b3126604560a3857487cc855594a60ac430a45a2ac11b0221442a14a8b03130246fff254916280df7eb255e2fcf607e8cca32a4c503b904c759992814b46a288f88d555923d285c690346e5982b12f49249bca13c862579bdf3d54841e566094c8a223ab0a520b2c22d80185ca8a9a2e53c0b86589b2a4796b4fa1ad7dcfb47d59b47d750ec8c24c845dec7908f4bb28e5b7027e77fd7ebbae8becb737c049730391a2c182491107188baa142a111a70d814677c49b95644288ef832ca977eb23a17fa2115d08449f9d1c005c77085f087cf0dbc504152638d94902813d6dee6010a12818a0c302a6818409a213cdd664022caf7e49b9264b6001e11a614406b8a12ae26ae325fba02867ae85082e6cd1ba5264f949a54016353fba1f6e557862a4e9329f9b1ca0314b47585e808ef0d48b0547cf912464b6cef8d553cd1797971ad2901e6c9d2d658c2d78630ddbf244031b2250a8c2f9d8d52e64bd7b994135fba90142f5ffad096922fdda888480a0ebef4736f5e09bb254ef9fd040ad36f4f00696e610a1e5c8489318a7e3bd1da0b40190d64c88993860b88c2086f4df14409f1f7db1160840c6eefed24acbdedc108f62fd097414da4b23841e164062d2772bef4039026086a7a4c03e85011c3c22ac39285442b2b4beb85d6992fbd00a419228a4a0e352a2f59ba60e04309b74cd2daf0250b3628bc5058d991028593c12c84a5487fc92019454a99ed4b1687a404fdcbf3fbaac66f2dbfafd4fcc61afef61174a494b96548a281e5a5081a938abdc7f6de297e53057f6f30402f6133d024c19ae16e6fc16c4929324866e026c0feca6db9692d49f365152d265a36b48642b4ae94bef4010c0549a9cc1bb799de6659abe8f3f94cb86fa6ca56afb3526e02bef637dbf0e0dffc66e0eb1c7c928884bdbe5e8f4f6a9030ffc565bf7ff1da2867a987da8c21968d32f7c5662cdc9421f65063668a97fb6234ad4c9481c0ad17dbc0c119afffc55128fec54318a02842f932b6c58612f7c55214981305498f35244b46dc170b5f3b56ca4464f0c54caf5f7832aad9fec5d8f7986c7a8388c85fee80bd48cceb7f8f5e9f781135780821110c4225ca0df71d872b38a3a695020d95b020eed46b13af9798c9a1e50b0d2f2e4c6e0e1c33bcc2b85cc15283fbb2afd75e956b0be8dfa02fc70cbf2cfd64c790f9d27564845fba9741fad23d08edb5fcf8f79a51decac431393edd7dea02587ba98f1d9bdcb0f1192a03cdae3c8af5a877587b28cb7e3a42162c9f5bba101bf592548f5d4c9a374d3400db4626a1c42879013ce90038d557dfdc239190cfe72331f4f95c8ce6f37de9414a9928037507fc0b13e73709bf1d84b5b7819a882496196876cec9429de2e3d3f5953d24b732af6ccb76030aa8e943fa7692a7c777bb0185bde39b55bd6c37a0507aea69fbae5eba8847db9703d7b988374d3388a22810dde1379b7eefde9bdbbcdcbda8a7cec14eb77b7d7c5ce7a98f8fcfd2fef9fcfcb8ced39f9f9fb5d7e9d01eff8f99ee807fef2271d82394c2cf83f39ca7381c4e0373b99c6ecaedf0e3f492ee70bb8d3ddeb1d96c5fcfa6b7db6d0d87c3a13dfe9b19bbc36f1bbbddbebea83b609b2d136fb75b1ede56c8421445f52f4d53ed4b77f851922475da777f99a659d41d705a96e5268200020820b47ba83b6037216ffc798bdd15cd3451069e9f1556048ac8d41232f765bf442a92033756818344e2cc8a245c36dc121c87a1f20106aaa8851d79e29bb3568208d1c634e2499293b03221353c080384c349c2c8101dd0da2b771e8c5696d71ea6c66bdfc07220b2a387081c37464600d1422207e30ed238008112152927a4a03892e6be6c5992f8924ac5973b5fd69822d3c52a0b1630c511e31274b8cc86f61f2dc247d3912548b4381d5972dfa124ec99d7f37a441336afdd01acd67ae2610584098c8c26576b9fb5a77b00307a7525607c8facfc3b6a0d4bef22e64b285263577a90b9f9d287aebc10f992e24b8740e68d575fc4be749eb5571e41c962ae4bd50e0aae88bcb1421b51430ef7654ba211cde7f3a170b5d6d8f7bacb6beda7261231834a092251acb6a810bada5b20356eed69f5e521e15fa02029ff7a7806fca824f4a59f2cd5d596375fba972e24e4cb2b2e6ebe74b66874c2a5224b991f41920899e3640e91b20339c6743102a6c4570b5cfae9861dffcdc29b58f1e8b5db76cf9139e8977e8a5101bdf695bc1272a2fcd24f5eab86a571814a19204d4a465c084170326525899a280b85588b258399376e173baa13f644e5b59f9bb4f53c01c28a58a123ec4a08168f3852dc36a49b7102f0dacb232c90d75b441293a42157aa28d52033ca191295eabcc1a221560c83b302b31196c2a21615ed6bdf39ab205f86c51f9299fbb259977936e10ddb977e0ae5e086cac1352c49dc4280d7ae8322f845ad157f4045a5b9afee4b28266a9ea0ac50d560e6be435f96fe21970e014d44127507ec65e9fb8cf3a51765de0887376639f9617ee9ac26124124ac4d590932272d2cee6826a8b58663e9cc8b19b76cdf10a3d9936d0e026b60c7df47d8370b1ffb4b12b350fbce7fb3f0cd429cc75e84cfe7f3a1e5077bfa125e6760263a5dec39c8e37b13adcd1bd826f58129fdd8c2c04bb5e3ac3759aae6a96a54d5aa4ed5264d3a30c6ea7a02767c93cad05aebd5e6f36393269f4d254992b4dd7ec698a669de58109cb0aa8e8e8e0e8b43ad706a9aa6296ea7c90c233beabaaeeb4e6e672ba7de6eb75b8ea74915303c2a0e87c3f1f4f4a8b95c2ed7e3839bc147ede9e9e9f1f971d364868d1f55ef9acc58f221a1aaaaaab626688c5f11375bdb02fdb717ef6057b3ab6ab6b9cdf1288673fbda72fe6053559babb69d9a3fa81f326fe743e6253956cabcec3b9e596c75fb9085f04d6dd91f4777aba7375384fac166fb60b37db0d93ed86c1f6cb60f369b4ece6f6eb3f9abe336d4b5efd8bc6737e60ebefaf69be3706e730c83d6aaefec704dac6e61c8ad37dfc1be7fb720d0ada2ae92ed8ebf3aed4efb8e62afaa690b02f54dfebee150aca2369b9b904db7edb2af3b14f5d4d5ddd9beeaabaaa33dbeee52dfe82ee5397d549d8fea3c3b1fef39016d531f95c777a8a7e7ee55ff749edd3eb54dc7b57fc837d82276f27a42f5bd49b3ec0043081586102a5a9b71003a4631ada494f4fb90a444b6aace26de454eb27d73cea39ba52635d63af3f24d44897393b488b1f64de467d01a1e81d56ddbc4ca12c9e3f9478a1def46605f96270be1a1ad8e4facbcf0b3517dac2788287b6ce6eea52d03ef76d36edabbdca4937b37a5e70e76c309fbb3e72f1a774238d8a3ecf9ec0ad221528ccb4d92eb6e7998a67eec3aec23f6731c6616e9f6b13dc9b0d97958f5f4726c5ff36ccff10d71f4d8c78d94e2f42cc733937abfdaf156dffda71b56bf1863fce2b625c2ae97d1f7e8a4de95dbc4671996e521db078c3f7af60d637b92588bc56359fac6f86cf70a9c7d3c11300e60f41d1936bb2802de787e7cd53f1d9f68589e4de70c8b5f47476748c7795ceb5c73e03e400ef4816fe0e01e68ade35a3b07b4a2a3acf559551dddbd303c8ad176c38feff6dda0c2ea7ac34f8b821e1f86c7fea28ec3dbb50aaaa3aed7b5ddf0d3a2a0b6633b6aefd9bde807ae7ee0bac535dd54adfab85200ff07ef76b5c535b1bb0df181eb16c407aeb62038b8f610eaeb3684fa40ee41073aae390071e0acebf6ddd04107ac8f0f073e1cf8f8f86cd44d1fd79b031f67ddf471bdd1f6657db0d6399bf54ed7bea42649edac939ad4e71956c7b1eb38c63acea383eac0f0f8c7c74ce48e551fc7bb37848aee62d83a7bef5015f6569ddc6935ef38ea1bb72aaa43b62154add309a17e0cf8758a8e4e1d1364785d83478b483fd2aed5dd96615531b9499e3f8b8e727a8e42a4fac2b0d1b5a7339e32eced41dea9f2c1671652d7194a697aed3a26f651f7eaec3505eda9eb386a8eae4ec7b5e3d5d42b0aa783d071ede959967fbe3750619f3e1f0cbadf9f5d0705bd8b217f0bf41c387ffafe6c5d703a0ce79b6f9e90b7ad05fa753a783da1d4b51bceccdb70b62dc0bfdd05f8b763cfceea5e9ed1c9d89993b1b357591db9231d83d6747cf83712bd30820d36b3cfafedec438c25308e582d4141745fdb8f069c2757487c0d8bb8af6dc9032a325654217265aa87fbdabe8064bad63401b3f6c47d6dc1cf6763ce586d714194e3be3621092b21616cdaa05081c47d6dc32d6b9c2d8ffd5de77c5edff52caf6a53d4296a9ca25a54d7a81529cbbf6b13967f57a995987d5dd7b129e0131e494dbaacdc77fd81a0861231be668ca989b9efba8404eb08d9d4308b86fbae45d43c81616669c70c33f75d839f5f158e92394ad238c3f44dd7fe2a8a95273c68480169b8afea9209620644f8e66c8afbaabe62941226488208bddc5705d261e60dd89a2b2aacdc57950015176ccab0789296e5be2a1a2a44b880635fc430b9afaaaaead9ab9a5df957257afdab5af9576dfaac227d76d5c8e77f533855fe4dbbfe4d8bffa6c5ccc379f634154bcbded42cf5800c234d23b8b8c12273df74441b1627be90886255c47dd3a5cf6748f4588224756586fba6469250658902e3a3ea8afba6c1f40dd1050b376a822bdc37155e00ce0f2f1d5e96c45972df7408040582eafe45a550d487a2288aa251fe45cdd01b3a37747efed501eabc3a3ea4261d1d9db157c7ecb3ce195e71e215e77b2e9d6b54fe3db9fe3da7fc7b9ee779e53c6b000b2b645c31da1039e3bee72fa844921b289646086bb8efb944a34c091c535280d090e5be2770e78794549727301762dcf784424364499517323426f73d850470412287991740886bdcf7b48119c7ec314ddfd6bfa6947fcd286f9ae698d8bfa6d967f3ecf398366861bea031a9b9aff9c24594b53044660051b8afb9c49615418283acc4d9cf7d4de027b95264ca92209034ee6b067f3069438314304cbab856b864d1c205cdcb54d17dcda10aca38664a9e7f4b382f945bc80f90715a204b1f529354497c4bb3cf65598e3d09e7a7cc99c08ef35977b000961725292b314f90b82f69e6cae7432d46d71c28ee4b06bfec6f9ea16412e9b393be7f379ccfbe7d48c47f77d3937fb793dfc5ccf3da62bb2cef331aace950b29586e9898cfbee9f8dad281b4b4cbce9f2c37df7d20d967cd912e58caa489a3c65e28d9ab3311beebb856059356a84a50073c47db7b048ca92124e5439d4c870df3d548056c09ccfaf866382eea07d4dfed54d529af8d9b51e73f1fa2c090bd18aaac758940bf7d526c8a4d198aa121699b8af5e1ac038429c01ccf90c67280fad71786cc4611c01fb8be37cf69c7d485affe6a6cf63b12c9f7df6ece5be59ac040c1ac3112faa646471dffc4b1206090d4fba24c9e285e1fc9ccf6e83d1681d47c09e650081028525ec8bca95018590a935412f6445f7c54b2cb446ecd8f242d504ca7d3110c650068da92f43d8fc5c112baa6698620226c9cf2acbe092da7aa2016688fbe2211efb71888b9ae874cf5e6c96f52f26623dbefa17377df6f1c0d96b309630ee2166f279c9679d9d854cb4ddec24404188cc2b7f015fd0789c2043830d2454542c11cd44f1a8e185eb9a88835f9107d50835234ab8aa47d814928f1e5cee2bd441c789af331e63b4c4b8673f86545352bf35306e5013e5a5545309bf740d9589b2906d75548fbf198ef67de9fa17468656d240bda49bbe2489254f49fcd2735148f632fb2a3d5301cbb22c5bf36596ca400c276d8365593a1e83c2656b666899886c2acbb2fcf2f4a5ad2ccbf257fe4ab6f4420557966b6ba50fe9a226a9513623da6669bef45d9665590a7fc02c791f1fcf3bd69e8fd0e747e8e359c7daf311fa8069f13d3d9e816baf47d8e3d30acdeff19c63edf5bc39aa6cea79783ce3587b3c3c3d3ac5d8f378beb1f678783ef857fd32f5aa6fb5cc840d962cf2bceab9c6da5349282f63bfb3e399c6dadb21aa3c44d5b3930a968e15c1c87a7ceaac17124dba74061c1249ceb3be59cf32d61ecb131523c63edb6a8fb1ba58fdba7a665a7b6b3bb2679afae919c60b3dcc4b136063a28c09e1982a5956acc4090b7604524a61c66ad8e89a725dacbd72f5bcb4f656b12c1b823c882509db22e3d32d693e751d17289fba0b71296b3134b2f18df81a86a91871e6be3ad6ea49161c952231b0820061f202e3962ea4aa2cc0b40469a911a6650d561815b11e2bd271ec2c8d52928921625adc77484d6224e741901840ac387153652a4dd354895401c6e555d573d299aa1598b126ec09963953e420a1ea82ae4129aaa9311c5f4bd45d0eaa2a9b0500f435e353dfa99f5f643e755607c6f4730c90501ca264c3861a9b2cee3bf46c555a49e549c789b42fa8b419ae103c4491020565d9f16996e2a7aef31342eace0a65709c883d5949912665854fa09845714c10a932f64bb2c4574fd555dd695fb2984db09e91f095355f58b83ef55c82dd614bf06438d505e6b7634c3aaa47aad0f12bcc942026e4a4e151636765db972c6612aae7116b4f2d4a87b0bca83ef59dfac9e253ac2b4e3ef5ecf369a26db6eebdb3d2f6dc34e6370719b8f7ded96350bf7ff6de1bb8819bdd7b84daefbdf7defb05a7dfe8de7befd4c7619194df3b7befede3b7efbdf7de7b8d675d817ef531c9afbe330f01bfae25d07e4572f2abe3396b6f5d79d0255ec8b8ebea58ceda5bf7da4a54795e057a55ceabaa4a22caab256cbcea38ceda53db9175756dd33499c2e4aaaa63386b4fcd518fb1463cfdce8ee3376b6fc7cdda53492adf966759c76d4e75f5571dafad3d559df22507c9975772c65ccd3182e563c186cc3155640d4b12d55fcaf3e9964f7da77ea6cea6646a5c4ddb51e64c8dad61eded354519346e9a468c11ca488d38c1b106914141dcc2e48a07107555cba6346b2fbd823304a7adbd5dae2888d92282468596101f4e8b381962f2a6a00181f185cb8d1377555fec118df8affac6e9b7effd860c1a164da33d465114dd289aa5047c144551948812511455f1f5e88a1aa140d48150218fa68fa23ea2a8555601e653a34f1d9f597b693055dbd4b199b597f22421f9ed7b67a96871b64929528509202e03dc954041feaf87df568a1d5f5ec5d19195222b2ba90519dd5a0d44c4c6b0666b0f6d52472f2be0745561c151d5c403f4a189b3c2c80f3923a62242064d67881a9f180d4090ec389bc10ca633493480d5c0e2aaa99830f9c7e3f7760c66eded9c0fe572392c1d323e97cbe5b255d6c2029e7d5976ee2b3ebe74fcc54bd1d8367d341d2b9966d9fbc29437cdf11dd7dec43e0c9826d9649aa617a579d3344d93abe94dd3f4d3b4ca1d0009e0df202c6ece28bf9dcd52f6fbebe9b76332a124f6cdc0e058ae01100de03345a2d400040740507b034c431a1e3ed70637687d5aac0c93cf05c141684d33168fad15c82e499c52d44418558bc366cb87e6fb053511b639a91265c9e7e23cf40db5266a22dde55545abe862d75f7a4c4a13194d193274b16fe19826ca71ac967cd8f75013ed146794f996b4d9f6a169a2d1fd2a06814d4bfb97a23c8ffaf87bd4379a75a5cba3588874d1edf4fced98cbdadb59aa10a9589961c58c97d616a1bd7d3eb1b0b5670639a42933c38b12387abc71331552668855e152c443a6ca90e3d06a45d28e186c4ee448e58015676821664b0b14d582826555a1e1cd2f56eac88bbdd32c6baf648365ed9922842819b1424606f0aa0c05374b92805c3394cdd926961242422571440d8c2ca41c236214d3c6ae845c3aaab470cb5407f16b341d5fc1595d5a07f0c24514498b1e2b6baf5c1b40955c074a6e8c80b22349131b34c89315b704bc100395038691b4146e172eae3df4ccb088ca9eb162499810152cba845e188173460d87922b268a81e0282b62cf4f0e94115d5e88a11213801cb0b01969a61479cac01c17ea792c214fd1c33348475b1b8d5a83a36cc916b51137cc1f46b4b0729a9861c3838d0a216129c652d65e69664b94cd8485061027572b7c1861d102cbcbabcd0c47a2c4714d338522c6736602ec8ccb6f67cd2021eacc9f1954c125675c2480b8ef500f311e11564945d0aab46ac05263344dd37ce2a40cd26fdfdbcb8c3561cde00b2bad2c32596f5e61a1228260553951920a626515b46db1696ed4b4b07e5451826ee9427bef6de22a93417134dc683a66e1912eaad9d83946c884cdf538c96285501345734b76ea58c9da4bbf80787470f5dbcce9b7632b74e7741120627912150624cd88fb0ea1297e8179687901ec0a9517ad20930fd3ccb52f594c82918879f1e8a38eabce9da24784262a3c8761d0da2378887138f780f3218df3d1cbe31e87c3e1ca2c25efdfa01343502069a108d3fa4519d96611aab5874b51ecc2091b1ccb1219b2f6d01323de9ce262db7b6f29ac6562ea4d21bb874619242c2b80a8c93169380244061e4ea68c70114b64d97b57397bd3b7e938c8da337166ca3e3163814461ad377fe0110d971b3482105183e3cc0c64daf0b8b121d625660d88d309b774a1bdf7c6953e8c50123db216528c1182072881a48286af1e547c4009d9ec78a02c480f30373c90d4521e2a162d9f30cb88165a23be90a82ad1a284151a86b0c6302945511305c5f4f4bb4896dfdba6a4e44994372c768cb97b9be89b852f509007dcbf477196be8c63458e903929b2e6707da9e5e3f1a5e319a4d2302d2d1e3d7c9cd528b36308d4c9ab3ad3f5e60c99912423c62540e197c70c105e9699a7bdf7de7befbd63ed6da07f83cabc004099236730b2cec8e800a61bd29662f0c032b5c602eb109e7d80e8a6048c32375ca070cb32059e00c8f22f39cc281f3482615ed0f8a801487543040e2d342c25c1aae1c40913c7d530f8fb065e42400b2b485840113266c97d75e688e21c719ebc39c72f42d2cc48197322c7855bba10ead8c6da43d1deacb1c71ca54419ad30af3452ee3bf429c6417686213bfb3a4b3286060c17d79640033bd9801242532ac21635c23940d254e1b2f78ddf47ccfcde33e87166e309a814f5e4ee6d9a7bc6dadb548268a4f11a2fb06a9061d99092619ae909411e69bf3844dcf4b031640e5a82994fcc101b6aac50a431769153192a349030b1203808bb5478b56218b843931a9713d60b769b5463d472efbd5d60f160699b585a421265294aaac6902ba39a14516dc8b828510a6b81d574e40316beb42ac85aa678055b84a186004c4f4a299123b832689aa90a9e176e3c80d1f4db7192ce3471a9cd060e8753a48e7ff805d89ba663146bcf1cb9a244b1b101c5c857138ddf4a7e6f235c6a8238a020414372f746cd749f587b9b674bd052182d2e862ebc5e4c7de9d884599215d1a2b683cd5ad7761ac2a4a7d868e262c3cb165f6a62a4adb5b4e3b7efedb8c40b631c1a6316d271918584c8c16fc7245ac0371fd231dcdb6df837df99a7fb9beb326fe86f4170b8c0bae2224b987b63ffe6d92af552c0bf411ec61b0b42cf7856807f47b5110ed28b99a0825c587a40f510e2a384968f218c2f5a3fd29098018956941c2d20424a6805d1a22564c8978e47acbd729358c4dabb6d1f5cd2c254a0614326d84455358ab189c3b446ac3a5104456f50b505b7511bb0bf1f264921292449b2ea0a470db19410071dfce824cb8fd7f9d14996afd2c598092e373eb23832be2c4b153db8d6accee8c05105b768c2ac93f67cfee8a4cbd2e9a4cbd2e318a42e3f4861f2d52093648c87174f13aeb19d18227c18b1522371e2868c1656bab44bc686265d53a95a5b0c2a56fd14a17a9a1459f8c0d9c94da8a0599b5061f21cfcd8840a963507d30cdea05851264823ad45667acd66c593a531c02940485ce960ecd6dbd3c53aaa205290d0d66918615874a90a13c529c378ed82cbab4a938d176478e510131e3a3a2d9ba48a4e2b091910944c53c9cf8c8f21942035a08c68f98b0ad470a1c609c890cd1a050899d3a54c890c8dcb7d75562b9ef4ad6555e349d2c5932429c249adc70f12619e54947049b224f7ce226a39591edb8f5a56c17f5912cb09d0d25ab8818115c46a4904700d912ba984d21726a42ea3ac547928258fe4444ca9e01ab17446ccf1266ab790ca2d48d0ca52a6844f0c8e26c09249dd7b6fb224778b12bf71bf63fcdea59b11b3e3131a88882962060a1434eeab6351a6c3c2cc5ac268850836866609973551eedee4d62ccbc342cbdb7e7cc262eb5f164573b3ac41969bdce47eb234e3b566eaf1fab5bbd63ec4ea96676b1e1e73a76b21e76f3f3e59fa6d49c700b0e4c96a12c601941aab9ad4a7a943a81b582df63d3ff3949bc79efbd4ece69d7bc792a77a964e9264098274f57cd53fbd34d9ed27cf0816bb4a7ab9ebf9dd8a1883b2b922d5578a6e43bac3e842ae1b7587a2888cb515d294b33e2971b5399cac4afa7baa3c58cefcc6c2e6cddf9be569a5cefd3c3add8f5758b0fccb1343c42f0d0e112d2ba0b20c61f10387ab858f27ac2d2c77f4f1045e983c65f9b2c4898bfbb2e38acd616dc657132462b8d828fd3d7ac7ad1fbd344974fe6678b1062c4b6b4bd55672cb4a22ac989c46245189d3a3696ff8d109590d5ffee8640e9122e938f2f6d6d928bb003f1ec7f4368e63d6e4b8c7716c37f6e1347393e5e9a697e41e578ce64d74bc522c195c252ec01317465efbd63f3f62c908f2ec8f58327068a56369b2faca4b6a6d423edd499234db575796255b6aad4fdd01ebe8f8d669472399cce4c8db24a93de7acdbd1842cc3c996379f79f8397eed2207aca089b63b92befd249f74275d48136d97f4219e1829f01c755007789a3a297688e64607786299224921cc66a273b7e35bf4fa157a8dc50496a4d7c3f4c7ab2b67fe65fdc432d339e3316434c38276ba179d7efa491c3b7d4ce7a79f5e2c3acf110d585454545454545474ee739f9bdd3af63cf51063218ccfed58086316bbb3ce6e21d6f1c96e1d3b14c4bb48c9d2d88f432ba9cfc0b104b2e8ba2d14cc27c6273e35debacce67cb21b3b3e4fa15dc4e2f3dc389f7b482774eaf6894fcc6276ebb60e6fa11dc445983df7b9c78dcf8dcf8dcf8dc7211eb2277beea1223f4fac6359f63c755bb7dd1de321a1a28db10e0bed21acdb434279abc593c57b2c9e45fb3c373ef1a76300581edf9b688f1d9b188df28804c58f38f8a363200dda04d98889329106c47df1f0031d39aa38ad41a1a136220902d7b40173c6c63804588c136c53a486fbe2a28a312795181dff34910c5555c4088770680c895edc2061a124cd1697d1e7f3ad705fbcf6a363b59c62f473f4712c1b73e545188b2e385fae08e1171227a62a24bad0e08e43e3589454530f315e595c0868a2f18b1a2ac0293db8e480b9a30a1c559eb2e658d1f1e502a90db921a746d6d50ceee818692c61ffb882a207b17aeaa3d7408617322fff7ef40f999751fc58e2c48fce8e4ca38f56525ffa2e5de5c93c0ebc745d260a79f89284b7880d518b387a7db979738e3abe960525e44b8c84999ab2a608bff4297110530dd7602d4cdce290c3a466f8eccb17ab655f1ba49fd207fe66a6a62f3d036b7c99a1de1c8ca2ca432fadad2fbdbe14fbd2f318922f79ca379b9d7d99d5b26f0c52ce5ffdcb5ae9cbb289915755cf69d69e7a75e473b95cce857e3c97f3221f9f5373d9444ee7b99c9af33197cb8d6d7e1011bb3107cd0c617227e0c2f5e4b554454b57aeccbf3c63b45431ff92f06af155dfaa8af5e3d52c19af66cd7955d5ca7ad5735a912eeb6aeb753a9dce339a9ffdcb33f62fd0ff3009fecfcf0f9332ff33ccf23f9ed1acbd9f3323da1ad2bb7b36b3f69ccd99f7f1799f8cf43eaafbf8e4dcc767c58822342c7141052485eb9356e4cd15941638c4e4783e07f4b935639fcbe5d8a0f81c1badcf793e535555f553f55c66eda9648a483c4992a407e9ce2c79d287fcc002e9244992a40fd38e24c91f271d6fb5244992248986e9dbd6f398b5d7b6237bfefcfcfcfc7836f3335ebfdb7916b3f676edc89e3e3e9ec3689d71f1ee9ec1ac3d5755555555555555cf656b4f3523f53adf3acf5fd69eae1dd93397eb008e1ac228526dc05ee4724f96e4129fcb79a076850cf1e78406939bf3ec65ede5c8d61e79a6e5f726f1db3dc84326daee76128aca7ee3f688dcdefe829adf5b65b201a565e6971b12b7b2d86f2635c0b83481a97283878b1f62b26c0102a35c167e352415bf7a84b1e2be23d1006b4a44454199b082b385bf7d7c7c7c7c3c8fad3d9f76641d0beac5abaada2597cbe572b95c2e97f3cc65ede5828abc9e7cd275e4599627fd243d6f597ba4d8dadb60ffc1079ec3d6de0743b6bea7a7a7a7a7a7a7c787d818d2b2d6e3b76fdd09f6553464eb3df0c07396b5e7413bb2e7d4f07138d779e6e51ce7411be745558fc3651f0ee72ce0481c0e87d361c48cc52f079517359c8f9a080073581071d02873ca8273b1005c0d21f1a4672cba2bafaaaa9faae72b370f230942a234916af1dbd9aedfae931afbed4257534a5e454ef61c1148d2d0d0e2e243b38586952a6b0fb7e53970f0dcb5f6385c713d0f8feb78783c28f3f0f8c963e349033ce9b9b8f6482a5c45601ec83790e729e756d7eff0fc8e9cdf71cf3cd2773c28efecf8500a77c74f4d64811b605d537e5a626cdc9d23bfae2c57453935dc97fd1ddf5ddbcafe608f5a50747400254914a628607ebb90f0b70f49c9b215fced796bed6de2f8163d497e8d638eb82811d5254c4dd42bf4a40f3de9e358b422c679124a8e27dd84cc23515091329162cb8f3352c6b128454f567e83ef0d9ea1acbd0dedc89e505e6b38afb50779284af3daa6df68ad66799dd3d88dceed643d69dddafc8b87afb778c65ea079d326c81530570f79546939451da1c105ee1043a3862e5e720871df71ed0541205f589c9599d8725fecc3dd40815506cb494cd886ad1ad654fc203211ee40f33c3c9e89e7dadedbfdc98edfefec7876726eb8e224c822ca0e3427eecb7e6e87ef73b9b5cff9e9e2cd9b1c5749b0b839cf4d5cc757075a24398574d6ec491d469ef49c9582ad212ba4d0403a51220ba8f5389dc7b1799c3038e4c90c31278eb838cf587eb5f6b49b24afe33bf3f2f044f3a8ef358fba0ba13ea48b963c7aa4e68346b5dcf87814bd8151c7e8d651234b113253a6bcb4e230f9a5d832f2a40c18266f7e08833ab4c4deb821b361228b85f0c97d47223a0eb5e9ead0c60d13ddd51636afb55e03be5e237bed790949927e929e95f8d6e3709eadd61e2ec9da43d9f8fef47d7a46b2f6ce611b12a66ba2d3f530a48baadefcc0021a6b6e371d33e14e931d9aeee47138cf556b0fd78eecb902ce9b1965664021ba2f1b048c1a05bac4c182f3c2c40c36dced59a8b506c8c1a39e8f0cdd48eac27ac2916344d60e32af750d2de8418c913667c7d218577b36e25a6ae03c497a2e92a96c365b986db5d96c596c02b0f9c8f436df363fd390bdcdd9ac1a7cbc4d0dc5dbd4bcbccda686e66d6a9ebc6d0d8eb77926b2f66c59694e3ccbba2ef3383ccb7a10cbfa90665956eb200faf47ad11fe1db7ced078adfd3c63f6da5934455ebb0e4d93d72ee4f4da878a78bcce429bf33a2b2dcb6bcf43d69e2e8e6fd1ef33297efb3e23e3b79fdbf3d4dadb524556249e030e3c0b597b1c24e1fadb2dcddfdc853c649ef69b0fddae7e7fbba5ddfc83263adddbdff64d042f5caa9821d610c22385322c6faa0847b4b15102d3921233b44874b17133f326a9eac6081f50ee3b12ffe663d8efed3988d63e9205bdd6494cbcf60c441735a2fd00ee2080d315f5de8b7faf8ed9126db355076d9a15d88c314b58c284f1d2a18d35d460660dd04b6a0e0e1f40ce4c5c4912a7449635299a0d708143439314736674f580c012a9af22699818413a43cf7801f104ea37a386125b68419e2469d2cc59ea925116b49991b16548361c22a7cd1b1e5aac66f0129b72da0262443dfbd2878471e0f8b881348608e596ee34000d99a03073660e570e17b632e395ab184cc69a88d4009c416bede43bb47aba77bbedd92a0b619f00152bb11e3fb2ac9e5cb37d5932c8882f7d93b1057971e34b8a176cceb8a57b862a772bf45adfda3c14aa60473ce66dedabfbd2cba7ed3bf4a5128f1f943655a8ac719b5049b3c2e6c9871827d76c4772b7af1010ac2f7de7a7f3c76fcac569cabdb9b3cffee6d4d6fecd91bf1df2b713870ceea07dde5943c3a60d8916692cdcb86fee9704e48b92215d5b61dc2152cca6b448537a72df1c308b8a91351b334859e3beb9602e97cb99fd9b13f36f8efd37974332c0bf3bb8397b0d1727e3326ead02647c98c1e052840b0bf7dd510a1e298ba1c4cd0c68dc770748d6540a618eaa2b25eebb430217130e31628074c570df9d1abc11d290648bda5a9afbee642f61865324a63c61b9efce8ed867dff1caefce4ed967df29665ee961fedd2182f977a7ecdf9da69d9d1b6404f02f0ece3663b7198bc6a2adf13063a50a894c8fb532f7c5957380534864a185c9e1be38a41d4d5b6ea224097be1be38e067364d9c20e9f0297172618031f6d5050c192171dc17277c01149326668d8d09f7c50d1f27f6d9715e678f337b5cd967c715336f7ff917e7e55f1cd9bf38f25f1c8ea9c3bf2c1cf2368714dededbd9677f6f6a9f9df521fdd8bf6c53977f592effb2c4cfceb265ffb266ecd9676759b1199009134486d209182cdc97656305d6f52587192443dc975d4a53c22486951d5c45f765819fb5d470066ccac7d5e5be6c10041464654b56556a0c715f5628d4710686050c34f7658742ffdef2922d2fd9c66caf6d8d832a3168ce4c01a3b1c47d6f5094e23481c282c61a37ee7b5b1a01cd09373952f47802e5be37a09a3235647408295671df9b4f95105e69a283ea8dfbdec65210bdd4e4247913e6beb7e1adec76bb6df9f74614fbf716f6efade986f4d96f3ea7cffedae07c769b0f49cbbfb626b07f6d5fffda889fdd56f4ca36315b19f0dfa7a6a894ca9670a3187408aa211200127316003020100c07c562c1340d032544f914000f6eb6565e4a9788a359142739ca18858c3186100119100018a14d13e058b7ac2e3b5ab64d37a6759387557e2900f571356adf37c600967c2c5af2848a14e78e205123805c5491ec1acf1edc7684200592b96d2abe04d21b163a45504d431e8f01feafdbb490b6dc21f288aab6dbaa531446a182cc72399c564a9b6cb0527852cbfc84c69809b30aa93b2ca29c9d2c2dfbeeeba8d7e8dfb895c72fdef950741cb9a9b7dba8c5b1d4f118c8b11d4df2dc618c512797c70df8abd7a57c7c6392e9f456d29343a88d4aeb751462974ecf71c45a18fd387c83c5d8869bab38af6e5f2cb4b5e1647bf5915c7f8879f50a929b4b5788c3b6fd380ec28576eb128a6a6bb99864aaaac1ca28b73e2858b9e69030e70a66b0160631a59d50823093510d84db33661461280692bcb41fae4eba828744e6388012c3592941cd4bf456cd02bd04e4e69206586a235ba5e8325eba9e55d0e9c497d09c87a837d74dc9d1920e407bd09cdeba51f50fbfcdb57665c823e57e5d1d41372ea5a928a1fb9632699b284df3f4231e2e4685ac1003403788c766210b806b9f8b528e5fcd5da49b4bf15731fac886c220428bb6b30178d57959488f1e79b8c345ba4d4b26bdd54a8edab69a8559a77896bcf93df3bee0bcd0cda3bce41413a82ee6f561ca79521c97fd0ccee54bdb99492515104ab08e9ffd2cd6316748cf4c659bd5f7c0983f67d29ad942d86d88327a3fc2e8dfc4a683d137de3bb1d42915b23b6e076b0733956d9ec8b3240b91aa335ae8b19d19693426474804e2650e5406ed958079a6a495b3ea9fd0454999465fe2fb03571edbd428e7c3a82ea4b24ce82b1170c210c26e900a11e503dd469c2a3a1ea8158b68fc8c06ed6723dc7099e16cfbf7c5b5895a0b9e382719068db01a1afd2d573beb9d06cd1a4769a87fe0ca285d9b5c599eca9fbe98a5511b7f95210e019339dae6f7a4031cd9769463098cf278dd0a49cdb5a8d17856693140deccc7d202005af34f84d08dd6ad4ff41a2aca878d0157274691c45a54da733b2d306a6c200e35ebc30db1837238ba03fab9f4a575991b8a32e3f0482b71eb3a682802ce748095eecdc049569936dd582179ccf3070b63db1a0a45dcb6acf8cf5994913f894cc582b626540516a0642d6d0c3e518ccf0fb42ce37260b1576d87a7bfd786c58cb9728539ac6d2913a0ce9948c33b19331d65000f3d1321066f1909b22a4b1f12a556ca5574f204336ae964271b11152e12d2dea5ba7c76e57408d3f23109ce31a7896f3d383aea1583f86920937644bc7a8c6db81e2f5fba711355eb2c91480d4afff44a59126006ca7a170e56068b838772e84ce669c5d2ebd411c8d848ca13a9a693736236c509269232fd68b2d4156b4d6e15ba22b4fae7704ba13035a0b5cad223f28d396fa7c3cf6c17733aeb7999afc8093d502b1aff7eb9306ea8c80e3b745d05b6c7fde2c6f3acdadc1ac7d47b651768b06826a2ab3f63dc16f5de64548eba9ff8a2fb5eb86abab8e429273034d302bfc5bd29cdd660cb7a6277b5937823501524805f6b063841911e1f615686ebaa6c74b8bd704ff4318353bd124e178ff83186b51291931ae95ce6613b51a275a5bb72d2b1ee5331dd564282e347729dfa9ff954e0494c36fa73dbff1e2f8ccc0c8d20efb30b8d28de4c163e02d40298398b3029be12c4e37642ee99632b2156f7245c5ff3777f3e1451b1ed0ee26a1c6189271c1027642bbe9a7feb8e0fc383adb37b42b75ce7d911b61bcac66dc9a05f2f8feec296eb1250dab1874f6ae61e419167c2faab8425cf3ac9be026f6d383aa5f00969a71220a244c5f7b7dcd440f56dcadaee104771bc1bc097b718f1d8df7221a9cdf25ca12ac86ee971cc4d57f8413c8cdd75fac3c4c83683d042988b6fd80255050ce351fbf9a717b76bcab5433f1183111662881c4d6147876d85678d95f9626dac0cc18049bd2e3e94bfd6907546901292381699ee8a79fda1b017a697295efe2908bb01b19d7ac9147f35397b7d8272fb4070ee3a3fb342f066227b2942401cfe6daddb04f0676d847177f000789d1e759997336c161df9c4d57cb2b7a049365e705e8a65b19428ce30b1564ccfc41b0cea5824e2a0979272c55b5753a6b8ac263d9050c43e64e51efd236a29bc7670ae0f3370d441067b6cf5bdb6f45bc97549ff347b64baa650efa98bd0eadb5d9ec1906bf1b64eb77c6d01b132c6117f1111135802500bd639a352835853bbea17a039b0b4b2aef6249af4d590745b6c027f2fbde7f8111c2429e5594754941c651a93a31a9d9b322552f080a21111e66ff9c19c54f6b6b09ca9c910af9d4ec0d3843e017a790ad1cb6cff80e6356bb442b8867126deb2c171008db94a27be9cc131d1807e33d8b422519b9747aba2b3f22b8a3cf1cfea9abb8e37a5851aa52dda8aa1ce37850b8424516ddd12c74adc147ca191bac0f8df56e4372c7849b463f0d9c1470fcee59473421a494598587d94df7ed4c173ffaadedda28dce512f83b0cf4ff3ab58631a75370a21a05fb1567dcd7b7890faa68ab4fccbdd7fe3875fd5a37a581c7a53f0d18d3dcc94fa829e0e6cb0b68e7c8946749cdea9f7dab92011c99cc39bbfe8ca3d9f1715b0d37ab0b245f7ff11124c09549223461e55e8d55bcc4bf2cbdec751b4a08a816c4d34a14d508d86f1f75018ed7f7649ae803f824662349caa832ec5fab4c46fb6a4914e305d97a017c00dad5b49481d18f3b167867ad6dcc358334caf9a356c18194085134735729d7944d189846b9d503992f189e895d8f6e4a3be4d8cb5ad5b2b5e3571714f675acf8813ece33dbdf0239a48e8cd838b3fecf6529a5d0f0fad1a088ed36a3ebaf51b37bda91bef31b5e17f64c23fa1a392565021f48be5a1cc070fca2c0a8b95d073d688be2ca50a2d391a14eedb7aaf874edab79a08694f8ce2b794c0054852b29e77f82454ba24e1262786663509ed756314018d1109710f3ac45412bc4b4fc7ffb857c0f0b219cdf4d954c49283c95ec369c97e321d9c6f1324ecafd7981f468004293527d311bb096593a22fed4cb5ade2660246961dafdcf8b634c42118760102a96105ff992556906bd769c9508a1d03040f0cc5fcfadfe1057f5d717119f3681ee2ee1f7ab886636b027685274e6e0bf1b788cacce3156cf59f6b89b3b614ae304015d1eb1446dfd4c7bac1f41d7ecba9060fadfebeb98c1eec2cb1cf6f7870c699325d29fef582ea989f6446778b23dc964835dfd8cc702288f244088e4adc1605bb41282bcacc0d9c4b5064f334642c0b1b69e770a281452cdad655ac58f16a9c6636b5d64b4843238bda78da311f7e566f0c91084eba1d40c41948878c5a07a9aa07eb6b95691a860be0f08522ce0336e20baba9e0fb5160e9ee816bf8e429d6a3eae69fe501b86f95b8bc81e1bb8393356d068e36cd291209aa49c06ddf5f1cb48b1c14416e2a00093392de93e1732d6fa7a8c70698bbc835436041c51a4cebbc28e9d899aef095abbaac3866e9441fbd7823317a103436aa6ad81d18f739da0f9f91d188efed1a8d49f1b73828ff9f53901281d9d47df7f216ca3e98a98c0702e14a84ba47d732d7f42a0f285ba28f7707f52bdf3763956262e8dcf67896d90b843842c5e74c00306b0606400d1246a9e60371d953dd95b41ab8381b02350b30e61dd3f0282abacb79f92887b804f1a9d57588f95582453283b26c8c4b61662e487b141f78712bda62531890316b800e07cff59456a9dba205b7e59d8f0f21e858cc1bc9e3479265c6a911cfa19d7b9afb074fb71d79466c92ab78ecd5b5b057f9af3346f81d84667f9122679e2d801757743b6e417610b6d2146ac89a04a3b383a0eb186f493a22273b456bffe2a30365a04b55718df5e99a5b81eeefb9acef2c113f63d30c71f690e80c32847dd99241abe73f7e631b43716e3f5ffed0a0e729dc48ae0758f80ad96222f8c571f12fe3a7536ddf306d81b769de0fe08c494b92d49e6fa9e6e28686403d4f25c25f9294c48b13b6101b2f2aa8a424f92e8ed7539ee15202ab33d66f18ea68463def5d16dfc578d6a71bb2558e0c3dc26c1f340b82a92d5945150514e42b2258b8f2e61ff3e4805d281f79124b4d939abd26e6c574761c80c992c50cc01863be2ba724442608d7927b4af1d1c5e580a77cd5135abb2acdc60d4d480f61bf1c3e30acfe39184fb3a1d03f4b0afc4e19533087dfdcbc97381cbd1a785f6406210a22db1c9c25da95cbd019d99e279251cd0957e11f8d110b85279e4e533612bc16d3855699fafcba2b03af1b495b3e9baa2a6f2c0bae48643c6e05f385292a5be8026b165a517a18d21dfa7a4ddb22e53f14e669a90df14a90310a24ab7ec590a98aac91831fe28e869ab4aa9fc2cb38b2326a46614444c3fe697cc932df7388331872e33554446ad6f8eb5d13c847f108e4d0c2e31a4a288923506bfa3542cd6ac395240391649796810b8af8232b1c3eda5b3913b67c61c3ffcfafcc86ff336630c26f13d08f870dd8b9b4c0c297e4d6a0beff83721f85354a73b5bb9846b2f91218395b313517c99f1959665626f9afe435a735266f2b992174eeaf327219715bd492dc48b92e83ccab9280c683778de9644945db3460b737447fe5e8066c14063c8432dd47f0ed59a2f2771bd75632fc38a499269280d214ee0c6a0b38e7cd4c54a8c823fc077ed6cfb93adc6ad1371a07c3657cd0f686c5f287d3471c9f35f4f9feb2094db9e082393121bcde55b1dae63b1dd142a4e61db470f3c218774239afbcfb3ad422ce92f12e921c85f22c5d840ef3a0fba4062199ef7c52ae911974402289891777e530c9b0f67f42964bb07e7912017de73a787ece4ed713a5418a516a0e12bd236dbd63650995f46976edd473ae2e212bf02287c9ba6c74bd0b23a79209fb13213e370093304687071a99720cc3240d6f4761536b6410710ab5dba3d9b31dfadb9e66cd146cac0a0224a3dccbe9ca5cacbc46b13e5e8e4b992ddc29a7aa92fc9fb4e3657fab2a944146d3cc483b08dcecad59823626b166c78a744db1b8af3b613a40bf88588bc90c230894b7799faf7b11b0e5e61e8f86858b8e3ee347928b68f4c532e65da730d67af5944cbbdf3d3e177d5a5c1c23317fa32b5e9b25266f2d17bdd4dc2c8fe71491548888d157ef57b665fc4bbaedc374215dbe3cd0045164fd4c5b0945a5a13b160a7a6cf8d62ad29e921c68e88466d85fd40d5876d20e8e42d32c2b492a296e92d7bf72a0bb2b013e0e840a6d17017a75e8b34e4e6a25277dd2e8e5f79628a8d0ab20fc3c14696c1c92849aa990c227be0c46066238546c780e53ca33afe50d537511efeb33e7033b0c179d9687373966516b6a0f06cb74c0a45c3063cd9da3c0d687a844a56568095998ee3adb3c9e5a075f7fbfced42da93e316b6121a7a036c2c3667af6dfc1bc2f837c62bcefa3f790a6db865789bc4b62857ce82651ca1a330701dd7562e2816e4ce812b2ad6749b6c9dc094d10a9545a34bdb31410c206ba82fec990bee067ae2329714e006f2af33d27704e09fea0255827cd5b913a15da1176e89d6849562c8d3d6261b65b862289f93dfaee2073a50497e0fa8bbe32648c43065a7f4778a9580dd4ad0963b52e10217c871a5562ebab2655fd57622b98c9582da97b30c00fe22d287b7305ac895facfa885cc327fc6227bde2e820313a085055b87f2dfbd557549e935939e4658c464197a7edb36f74c9fe935473a213c884313d602e3221cc211afee86292175fbd666ac9a32316eaa1fc3ac7e734549650f52752e72e0f629304c5c3f7257cd7bb10b0b6fd9bdba4bf0694ac09a01d18a868c328859ace097cb967cf4d63723410d48d2cb3736908ed2a202a5cc0eba8e58662730f0dfefa964f1e21c7efad735435ad70cb95d2624664b48780f82fefd693e7cba6a3a5020b0e8d841530ae027c9584d3c5b0749d3081dd5f045e0caf5240119b4d01a2aacffd9ccba4a4da5bda629a4cb67092fafc124005b050e71c32d8290a5516c04d8a17842c92a72c04f3fadbc3a9f0fabf78e09d7cd91e6423623e117ee577326d7ca1caed0a2745cc51a4bff5b896f5aed646cba753219a3dcb3259780d9dadd091558d84cf56b3b3b5b9d4524d9a94c5ad282d8b6c24f52bcc6d1c7d30c25eb03492236792946b5e3cf53612bd62939682a92550bcf58c482849ccbe86bc83250a9736dc84e030eb6c323b4601b6cbd9f6da4aaf2b30944fe476b54a18f74a0ad819592c4b48a17e1966b175141b684c2ebcd7262d3afe2c7dd83522e650976e06afeb9416359c6f7ffe6195966c3de379360010a6de782d945ab6059e6328e83e282ba67a39687a804899a3ed718a6e6284acd0aaca0a7992aeb9ad11dd3828071f253b03a6b6a75a90ecbe344fee0a241dd8e6aca6a09d295e13866f9a7274702c0134d7c233eb30c480a615723f3d848ba4b48d846ad192cc0821db83ced3f0121e719cfcc91997cf855c440de0dce896bd10e04a66a46d8ff8bbf5846e68d1658130b1c91670b742153765e70cdeb01990aee542236e48ba7be30f8f37da14f786614c87e2af3860d83d026e55e04a74cf95e98e7e05690145378209c82a05731ba9d0b0360939506a7bd4b8450af04d43061df1ef7076b480685a69e166aaec0f13dee4c3242470bae1f4fa1ff5e7d870133484e84e881ef5ebfd022a3b4edb596968f3e2b6f9ae83a09272e0810be8f6e4bbdc098b1f759d5a8a68588a1e063bbdbc8698d2bc73f2861b6212bb1d82b64e885d7edef0b1e819784bb1991ddf8a7739ea0209c809de31b9069496a77cdc30c7fe26a6e866dbf4965e095facdce8ebf8a5eb2d4e029c925fb878c42779aa4e3c70920774c5f93567ce562540b0646493b55e043a2d35c63cb0e4a38d1994f905ff9a78821e93ea9eae0409fe7fee4de456f2299a6cca6204634db67c20a924f309a6d01f0c7b67c13701b3b29231840aceb76ff03174ad8da2700ceac59409ed071be65fdde4e803ec4a51a8ffa763d399b8916d1068df48888edce8782fa0729cada46905cb2d035c59ddc995b5d0c4e148202b0618b2f1fcfd69e6cf754f8953144db7f409870280f4ea9267428f8a2da10c650037c0e6d1548d07362ff9e76310391ffe5b1f7f46dc0dffe5dfbd530b3a6c34bf198e5e3ce2264052245f1623aaf0543cda8367c8acdb51e10ada6cdb9e4b23822f7e7911228bfa66319622c27555d30d2e65ca76950be09a1bc4dd47716fe312d70b30957bfb0daf081ed02b3f87e345bc7464f8adb3791c0b0a381533548974302f07ad41b865681f27a429cc73a79f1f2b1428d5c4f4d0137e4bd1a19be7581a483762df2632dbf050f169f041dc96021eed50c4db120aadacd3e35a0e848eec69dfbd72c1928a67c5e568e6b5281f20d00dbd80a5188ee935ecf1c4fa22cbe1d90a8e3aa7303d788e45fa66b1bac49614337764bd5ffb272c223109a6f5ee7713ac8cec586722d41362ccd5f62d5456f15b26f5da4731fd10e4717a69942fcf2d3b456f624fbbf37ac92eb6a4457453be45ee170574b5d9e68258ecaaeed00614eb4faa51f745732ce794662daca668e6c7078da1083bc6148781845c491d9ee4ec9bf03fd8cddeb7b693f75f79cee2ca57cbe2b25e070b8413f5919d5252aa70121b1cfa22f08b83085dd3e40d00037a3c6e4f90d230cbdf436031608cdb500853cf2e4214ea9a048d041751e9d975898fe77f6ef669e937d020ec29272f5d6ac96d12c7a024c58e0dbc21568b8c68d8ae5d6e5558f54acef8cc418923e6018606ed3def9673d8f82df1a89741287e330a7a41390761a8a8b44a4eee54a98146215163688e88d5809ad8a6a99222ce9ac3858c5822fad737cf7f3cc982a171ae38b9a9fe20712d95b46e9dcb1e971dfe1a61b2d665258c74bc2e70e2ff62bfd94ebf55ee829178944e10619e79b01175a316edd5144a5dae1700a864a86fd4f6da2b9ad069b04a80c46acc196eee365c33568c6822cf7a231bd88ca4e82123e753a3af69e9f7e4962cd7b7b962034a4eb8f65b185743d094be8c20c56f2da5d1894d6e99779378f55f71add89e60499cfe1596935ab442a01ccdbba01f006e1e0a031351c8bd151cb00e40d2cc45160687c4aa84d97dc02dc93eaa3a5e7c59b92460c67664ab0918ca972010a300543fbc6b94e70d92bf517958f3b90421a2cb963bc96aa7e374516d8f271f44d6fcabfacc63aa402ad710597d842e4ea09523fe7a7261bb053c41562f6c238d1a1a4df57fb0012d36eeb803329135d24516b39756c54852a3d9cb164c852ebdfb1446acafc00811241605d34301a64b72f3f27593eaf3869e1de126f7fd1ed82ce1deb066519d268bea22656765da7ebd9632bdafd5683a9b9dbf829a36abd86bbc58d72e8b8a841f111aa809e0cc1fc60d3a1cd8a95a6635aa7623a94b96cc18df9415fbc73d7ce86308aff3cf96e437dcbf0f230df0d85b4329c8878f90b9b0982aa534cd1bd91d08e89fe7c659c68c218cfeb8508906c1c8de1dafda269e334c9ef1777cb51aa6e9bc052e1658fc7da8bdaf4b62cf9ef7116623a3cc27c6b43966fce0e76a41052b8e16d941483da8748674d97e62880cbff68af4c41540d168001a661768cd1aca6b1b910775233f66906669dc1c9c8c0b409a7231409f383c8f3494dc989f85ff630b2ce6ee7714352e85aacaf207de5e6885559269001a678c5ac8c46623223b389b2794e2be3e6f70cf30f5de4ad973e6061c451b1fecf7286bae8db78c096f4c7f62a0bd1e6f0005839697fa1527f989429f88e3d417568e8bb9bb2f26608c03188ef7159671e1e27989d53f0cf5f104987482fc55894f4cca51cc1bc3a109a573e0b3048ab0ceb5e05da9a39a65c52ed6df8af18a7052aac59210c0b6a81e191771c284b6655fea1343d196501cd821c3a9b57963f2d510d31fa948b0c011488785cbf823393b378ed6aae69063d970649ae56be6c63bc15d5873444cc82f1f2da06e3e53cd82c2f65e39520406312ffe0951ba1603805910c925cdd9fa7372d32759cf5082af7caac753c2b18bfd8e59b84938083112d0e127cea0c67ea3acb332c690d0f2ce42e7e9b108f4d4edc5555ff135b66e5e7ec771690e710fa2063150877a5c0f280c685a055164f5035a4acc8218040aa59726c216d6162b2de401b0d270963f81667fb4e59267f4227c4ac53aeb96daeac12b73a55c39e1e1642feed468e5b3f1d6c49675b0744c35d8c0967a5b90ec356480631f7ebac74d074048767d60259c42a6874c877313e41207e1c115a6214d0d30d3e145f4d11d146d0f72b85c68004c87213729341d5caf3a1dc62b959ed3c10bac97c6858d741ec7c4bf4030d999c217899f0eb7647b855c3a95ecf01a5e23f108f5903e793eb88d391dd4360820debbff4b2729a9cd66f9a78b4759fa731cce13a5420693ae588b8afe04d8b28907997d6d88327c9b40d4b5f8e2fd2e047b4069c7b88fd5e20fca02235a95b8fc73944d2716be50ea9c6609b490701b729e06c38a2fc4c5e13468e1c3d4ceea26214cb5416d6cce2dc2505df86bd367cafecbca789560717f95666c3e7b549e318c14ff2300e33b6edaaa3b47b25a6d62b6d9b10bbcb27778022ac695b3f89f95df4b0db2a78dfa59425d337d8fdb2c7a264d6090a9e6aa89ced22676f08b2d08ceb7b21d5bc79ce40a2a2b1f649534e5301fd0b43071a47596aacdc18d3dc6a4191d47b285bb5ddf6c541c1e57332bf8843bd4ffc2c6a9cd65fe6589f354105c5bb95b4d6a128eebdfea09e9983166c370f9426c589c5b4562e0d17251ae13384b2f1881ccf52c24b888c3f6578628406c0171ae54d413400c8d500eb2e4b600bef7dc68793a883e5cae3a9a556f096d9811586f77a6d104f3ffc744139862db40a0b927f59f0a5f10efc648e4505b3d408741a582800e9ac96cda7dfc390010ae8ae5c74591dd84cad3fc7ce100d0d2ff5a0cef3df26ae93358b4ae4ce7d09469b92a5a69bdfe428d0a0bb687ee766f2220d38edbcfb8cf5111ab085f2bac401b9e1976515084e8652cab0b0e3a70af1147844b6ad93c64f2485f7b6820c8e42cc0041919e90d580eb2b3ac693040c2477cf26ef3849c37d4706ff6e4047f7de44304cfdaf62b89e9d23058e8911fb28dc4268801e7224d5f37dd98700d2ecca29ec2bbbc3ea622353d1d179a297adde585c3efe04d50d8c8401d0b0a76820a9bb721841b24fbb1f01cafb16dadf8199bc30c45780806f842d41c6606ea0ed433e0f2e6074fa406dfe06c8b1df81e4ecc0c8085800f6f017f922714d23919d865a90a8f66a546fd1322ac09a19c363a88b6b439409aacd45092c2217c114e008ef37b0402bfa8662719b589f90419e838e0ff01f5ecc064b3e9768c3328c2e353a198b5677d1cbb7eaecbbe2c463c6a3e56c0d7ab58c12ad7e050923fcd8bc389987238956a2f603cfb24231c059338555fd9f866dcf41ae46a8636d0ceb0007e85ddd012d6b775c5c6b1146b17656e15db4fbe34a6ba2a67338a2b3d9b6da79b50c516e4d5284a0a4537b7a1e9f4ee44bfba2046e0eac5676e34fdb6adafdcc827bff7d0e8e6529741a0b7fcf5bad86f6008b484dd7dd4cdf26d4d11bc4cd1d4eb67b82bc57fa66db70c0c8c80bfb6a26ae116206ab44c8219d246bb22c86d98ea58f28267201d52a4dbe25f7556ae99c2f4f5ccaf43b7a42907b576f8583f1d045cb3b1be617f13b5551fea877e94258009445bc20558cd18838e6b8d541483bf39511e7e4f28aee68981c279d0c399f46b33996d41f2e8c0c6b206b5d5071f92ee3d4aa1ff259e11d6b9c2a687fd821ddf989057fc2e6705842dd95644968df079a71227ad13912300b6100b6860c6bec71cac1a6823cffe9fa0a2a712af55239495648d18d2a602c84009b0149ad316abc2bf5c704a805b4f9a831ef9f5edd002dd913a620280f8598849ec1507683a729d0a439f2ca047e4b1867206b8a420882ea89c747deb425273017a8060584ad126ea2f3b43573e03e268c68b50a3131ffea9f348a0941bd3065e9a0428a2d1a06200f2d2c33e81c4e06b1a63eca68230f010c90192f4c7d9cbcf88d6f194101b2211f40f0b08ccf0869ded40c8a6e22e27ea3a37d71774c442dab232acf15038b1256b0cf60692d25c44bd13f899c33ce81de01dd86c595e7bacb86315d49831fc138ffc3d8e76510b87b38d68416f1604bb515344894607b3ade0caf5b974140a57e3b71b372897ca2c49cced9a3647b68df098bcf0cc1300e7b509cb06928d6375f6f35cdf52dc0788416329958b561d8d8fbfbcadccd3c5d736ded674176c202552a2be9ac78c59d2e7fd6d0ca56506bf1036f07bba5f251256199da5639ac4e5bf4c1a77113fd145364f917e3a9442370b18d9ea0c5d7f1b19edb14a1d8f8bab47d8a95a5e9ece4841810e9d003e46e241d3fd48b5a584671069446c5de347bc452b1f53d34b0156e26bfa420a4e635889af144477bc618307f97cb536c06097f93426c204e296909eb9f652d51e91c93bcf30f9c724bf3e952243968bb274a0470837d55a8ef7c960d7998c6d64763f9c915b20b8214a0ade3ef80bc8cf4a86aad246b7b2f1d8483ed39b2120b431281eaa9b6bd70de08e0b1a6bc56004cc2f6a265aa8ce36050f06c0f3b123bd351a7eda5b20c6c0de448364a08e5786e56b03a2b36795bd9d7df938631161d2edc8ab3acda5aba1a3a117376c32dd5e52fa4a8b074f1be79aae58e20895cea2e89bf703c15b7e44715484a9c3ec94db7c21af42a10d2d7b4039e663a0735d10cd9b8ef6fdbc79e8246573d8a452351f386c136417ef838f535d49fe489d66ccaa3119414d99789572af89169db7c71ac901595ba3dadaaff1c21374cf134d52904b06ead24f6fdfdd360113e1bce0c4ae55a46f099e1598c7e4a9b573819e917c71cb4d622c9073aa6652925b99941405ad26bb69fbaff6708a22ab28d08dcb21e1b1486fc7e755be43319dc67bd3f8583445e31825b74afaf3e7ee6e372285fa8747d61bb15bac66a1b04337d26f73aecbdd1d1cb58763a54f30953dfe00406f959ec76ac95830f03132cc35e18a4a889a8e15d601cac5b918074e1d42145d5a1f9e0c0f7846a4949161b27929d77c3f57d248186213e554131aec0ad196174fad0ea63cca1d24e780ca99eb53508d8d2654118c79bf8de3cd1dc72763b41b98d34193b301e0ef0850f58de4dc45eb42e04cbc8efc31609e248c47aee6abfa71371d4c753cf81653993fe4670b70bcf97db59785b06ac9e87c2ea61a757375fb31f4059d4abbec56b9779dd7da54305dad4a360ddeebb6f8ad95ab5da8f66016fd688c949b9444c9071ccea2a9e40bb7182db0722f5bc00f8798cbdc56bb39a12456d9915cd4b9704e944d4e0dfe82c90e4201654d446c0ecca900cec0637448d1dde776f8bc1f0435eee820141c5b112b4cfd877407fb2cbbd77daeb3a5df7efbfc70c9ae4ef9b60da6caf42572a96fbb5c3705357a42907846c841ed800f5828edac0f32d64ff3f6f6dfe3ab5560f264e00fc38258a08c5f650a1eddb2dea1a6b46861ec1b715642f536aa1a261dafc06d318c1be32e2a32a8b11d11219a84b311c998b028c5fe9aa5f0a195520c6d8d71b9d331dc96214b3140c6b4d0780848419c87bc817bb56bf84744b7d9c220a55585b66a78116c33a533992afca7dccca2caeaaebc3892158110223f906a6069df0d63d2d0e348bb291789621b7668445c78f05044f842d27909756d85eae87e74f38d5822f1437334f224de521114a96debcd8651754a310704eabf2088185029c531e7086a8744d8ed119ffe355604a6a4c0ccb894c61f27133d524e60d62d2cfc78e16b950e567f0274ddb7465660d5e1bf07db6d9ff1a5b228d8b14aaab0092c89a3c3f5089a69a5a8ae65a244fb8d45e02fd6433db161e6adb01b285b2c8005900668b0cf6844dfd8ed206003e60e7895c3d302da723421e8ba9cfa4536094c096c1984e70fda2bb830c9832cc3b40ab6063078012331ab9f922168779c3bda2315c18d543e61b8ef823dab30b3c7cd34ed5109e1181feeab0453f32e0c99902bff305d3830c340b4e50427550fb73d92d2349ec0f9a2b80d073f994a2d7abc4529ddc3a733f0b84060f6e1de4a7e57c28f5cada5958e8a96d2afe03ea07c498ad284af0b5867d0a10a5aa4fd57c6c53a5f22a138e3999ba3950b425514acf03e0a0e78a2b12a455747684ba9e025cc804317f3d9c3c9a3d74fcf720d6dc1a8182016838c186986ff75485b7eae6ba297bc7ddb729f828bdd2c5eab5a2ed5ebb762f3b7022c1467260779654ee91f23b186114e43a47081c12ff57e979943940e59bfc3ffba05e7b56a8bb5be5af893f1492f2eaa86dd815b03b373b5048f38f610f61ae48b1a02b094ebdeb9451a58166e451c749ea83ba55a47031ee2428f8d536515e7b8db3d6d14bed51f4e8e113c2d58b55f3e7d1952ee1e0a0d8bda7dcad13f741ee9a107237cecde77585564d62ed6232c186e7099cf12082ce625731f6577a7c803c70eadf37e4afa9e48ffe3165170eb7020a94bbfd87063407fc31b520b72ae154846ca9a19b43e2ca8fd37e41c6cbb59c386a4f0895cce5ab8c487a6dac220a49a80de153db061614813d5747aa152f646e3ff3621eec385c941265ef7c3cbb3eb2c5519b9685bb12577e4421d6c4c460b463f794d725177b8958e60096ad33fc378fbb64c98d1aef639b9f90a6d5fce70959adb15f23c8daffbed7140534aff784f4e68cfe92914ab2fefe40a37fde503846893ffae4eb80c5a6a03096478961ba341974f83175e4a5f6724351bfb9c3fd2df59c2c7a8e192a20080f2df14cf88a7aba66ed344d6bb38fbec85c38104f6dd9bda48ba67b26f2f1a018ca97612e6a87bd6b919f29e4fb7344998045aef2047ba169b65f9033a7479d9800c58cc1a0061a617e9f4c42316f6c6399d81ad18183c09996a0155d0eb6a5e4546f53d41a7e12c51777439870d442396edd0208a0695cf3d0429d048cdad0eb3ae80aa0e3e56ec5ced00ae7445a4eb822ad1919324346f188e932a51bc9a933214b5138a570028d3ef221ce2c4ca05d3da2cabf2d83b9f06bd11a45beaea6ef158d4a3705409d22fc9b22c2c4e5000710b4ab15529b4c99f06520e8e9ac916c0a9b262d0d2c8d5f18139604a015fea214be20d8591412d343c63478a0969d859d2eed89b14733a1106700a3b14c0d7194f0e4c8958a72400f7ca3074048dc2dabd4e3004a4740456ecc684bcd884c5404338078304fce2f0d54307c1d178ef4ec46a2defa45be09df82fdecbaa6ec4b473eddad6ae30806e2398b4bb346cfd7445e6bc5a8437c3ccd7a331c01232c0716700fd060de01eca2dcc4b08b4b897b42b0e0cd977da3ec9b17d4daf2ec09d329220f03e78761c090e054ccbe8a3527167ce07eae8b2ddcfa944feb3a50aa8c91740228487e1307fa93f410c78e771cd0b4104d7a0ed907b2c3ec27384ebeb84ac84d291881f3d6610a127c3d2a60db2280631cafc7dc66133d904238033326066afe653b04f72467fd42d564198734e95d658a547cc700429b2af2ece3b2aea20b6cc7e184b9c43b9bc3047c39f53d0dd5ded8e2031a6f8480692c2c8f9709f5593863d3328cbb061c29298e348f42a2f4f9abe4ad398fe83b75afcaea8b8bb40837c5ee3d55cf4fd9a66f1aa94f99b81220cf91d48f4097459fab1749bd157099b700d1da625c90f20f76547ee88095a03d9a2e5e1099ec9dc62b14bc79d00867bb6d52c06f4e20bb7ae00590086a9c8cfd28f284d43910340b805039f3766eb140400341a79d54a0dd44a26e2c6686c54315d525544a94921c30584f90b4398ed9b75cee337d421d255afe3fe21aed90f0493c59c990e0b12d5916a347db1dc4ab7a513980270a7247787c8457f286a27389b5fffd1c4d46a4c168a8745ff9028de277a29975ebf695ad00d113b856fba12c3eba8a1e0ea6ebd9dedeb0e92236bf4dffdccf3f13b4683c03ef2351d0cc84ce0bb7a2ba448675956ee0c7d4b3706ce2776311393ab751c6894d1170a88828426592adec2245fa87480860458b97445ae2d6219406abdc93585687cc20e0974d4e8fd758b1357165cd666ee6f6cb6e9c8663b3734d4c51315416f34ab675c13d03f841b8c3cc0f55705883a371b13cb9e5e0b1a8f485f3e82ec81462058cb1fc5a3e3d472a9e90d3af8f5374edaa84c989f397c89547cbbcc6324b982e25714a2cb5e731aaaea80b2ff1cc034f425099831e960ce6ddbdf999195a7bf65d68d1fadae1d633ee077e9916ad023c2ddfa8d33a939f8e39203f2759b46145f94591f1abe79c6315ab46255cb9c168301e166f82e9a32d8f1892ce8e8821765eab1ae93d9f13f3f29098f01897a242abde295b605bce4e54f629d8fc2d1aabd7d0518ff27764c24285d1cb778b35fd913e8406ada62df3755b06d261394da951384824ae62a4a848a3428f4fd89644144e1fc48df3bc57e4c5f84e06457ecf281b4ef99129105b4872d824916c7e5d8aac46c9b798134997de93cfc07ebade243c8288a893e79bf85081c41a73f1e1275e23c58fe8e6314fe7d0fdbf1e8500f0b4947f494000b626e4ebbe88d21feb175164998ac7173dedb585dcad9ee17d9a3eccd1232062b685f313dd25a64644d023d9700fda9c262f9128b41dc238584e20efb25ac668afc6efa820808c7d01dd9e954024ef9f0e0ddc99b70b12ee1e11f8f6715670af12535e850a5d31ab30d743bd63a1177abdb3325e96c768e5c1b997655907659bc30da5804eb3212ce4eaf9fe92d094714da0e8f082e66351bbad5d3cf151ef78585c1df22b88f43306b7b3866cac302d1e12e539921bbc6657e0cc72aec9834b0e2f25be701a25290011109644d3aa27d709198920312a148133355aa94f168b2da62e29d20dbe5a61c240200ad38aac9ca6061f8569c9f9981c818cfd78e0148e50ad26a548a89064302c6456ecc38a9a389629d3353234ec9ba053816d04830353814a2ff2ba201f2bf83e047cfd9080c882debcc45319135af7411db1009838e42c32726b2fda4f43e4294025e2a0ab08d1eea47422cdc1bb661975427f2f88605d733a651c522441f252ed98bc86c85a2328cdaa57728b297a352d167384981eccd8714dd7560d99755537cbd0da7cebe9c87489549e508963767ec6a916b134247b781701d7589e7fef40b46c7088db2296fcdaac8f512409625d15aa647b43ca901f4674e2ff00bb7a7a3b4f8f472479e6125c92d466d2cecb82fb4c01e3467b9da4d2b37f1a0b3c706714af7dd1b728e852d4dd87560153bb233bd68d1ab5cf8491fc55778f053fae174c24a0108542b67145dd04c593705ee9bb08c80e4f5cccbcc96529f0678607a070f338573031240eb11909479a64cf2c650e4c785c1a9ba7381cea43bad24ae50b7a01f6796a4f5c1bf43e4709b2cdfe11f998510dc633cfa27e7c1ea190337988919670df2938853b5763aaf6bc4ee0dfa7cc3a587633106355775f0067ab0de53a5448342510fc3d5395868d254d7594c2a81862d35f608b3f737bb8690ea37e31812358a6b0913d9d8334570312d3d2ea7b50623a006fce1aca2f12165b60de51fa9d8c872c3bebd0363a1e38cf018c4ae50daa061b5fc13923f108a337b77404cccaa8aa1e6d6ea409c6797391c776d0061b22fac1d901bf95934bf4207d9c3f0359ad6af33568acc6a3d635ef9a50f7ab124c0a2d1388af54ab6f8500469935d2508dce7c30c6c57394590bb6e36643e4e6d67e48fd5184b41788ad1a29d9c04bc093aa060a745f820019dc4154984f6945f93bbf500308d060ef3ae102e814c37308d26f10983295f38dd639ace3ca37ee924e2c2387938fb29bbe040ac734e30caf53097b46dc894e9d59910cfa1cf442e956ba1fdaabc0bfbacc5afe7ea67a0db5cf78e26c6b9a88562663a10440cb68d07b4e3fe1883b889565966a13c96e45fd5400ec407336c977f7f53a4cf74eb1d4987cec92d28ddc28e9a196640af4d8d8d585f79dcec7d05e2c9013fbdb3ffc6bf380e4fbac74fe5ceb11d7746348fcf3f085c08426a99bf0f0681bb47725b8c96294a3c017e2b3e06ae27d4f3cdd18c3e5814ce71ac2b21af000b45ca616aec4ad719b90fdf8a7e0834efe9f0f79bd17d8e80f9670043cb896ef07b34d6241e2be12f3bcfc1e648ee44e30cd1b9fbe4164a57b6a1ecc712e74ef12141c785d8f0c132006b77be1d64df52da35df8368c08368d275296e73229bb08bce24c699a381966f8bdf70c378f254df7dfcd0b42682f868f164b0688b8a7d8b7cb485bf02b4067024d15bbcc985e4822e4091a5346ca7aafa91ddac4479e1ec4059c71532025f4e5d6be8af1e4e41bbe9405013dd9178ca6869a3e0787c706830fd541416c8c6bc8725c93472ab7806d0e9b9cbb17a8c290043ddd35fb1128dcfc067d8af67ee0307484a456330a12bc3bd85760e81479282f3c14bc38c6cc61048f7bc1b9a097574243358640fa381619367e3c142323a74872ee5c1c0d777c7f758b59275997f1d4ff0bf007d3c1c1a1829a7d219e33876c52a9af966e8ac7a47e64a095ed2a4f1ec8c948cf046201a96bcf1f5b24a5465f4804d9485b11e15102979e67b358d7f52f31e665e110611b14778de21c739bbd57333e17684553d88000ee1cb63a6ca1f4ff6ba71321e86efc936ecc8575a2fe86e2a6991c35b7ac8733623584ed850a9ed439d963288aee03b845a5b888770cec2c0e1dab03660393f6d4bc4508659ada9351c519158600f1481b1577575dc73871b4471613d86a67fd991f05ab9dac4e9ed0ca28de2f65c44cb3dae4df7f3d3c83b9ca5d5660c412e08687ea5e59f0f6e8c9f8bca48dff612465a2280f8e0b8712004f64c0c2ce37b092a637b88445229869ebdde0ec7d3003899e3415524b90e96d050b63f690a55b8f48b0fe852a7455801951a1de2c606914f8332118cc4fd31471b36f6e51dd66a57873da2faa574894fba6f162bf0cd4e0a772a7ee80957e3cc160fd1ef2753f58f409404b5521e683a5ebe8d1c7df608099c834d990bb2354029d652a15f9f97ecd709abc442150c36ec3c332e1e47457cf7c65738d4841326bda35974c6d53375ea46f6c18f3e60fc38c81aee3b859bacc1a880b0252b7542f26921cd5448465ef27a8000706c3c0f41f35186c6416ca22dcb5305ab2894f99c8c1f52097491a7378edda02559725863f4b26cc9c8235a491d3b431de398c43768eae2c9183bcfd79e8a9f8fcd781f6840ba2874b0efd000992e8e8b6e8bfc9e62ca98af07940ede2732cc0cc9ac5763ecda19268ec5ded06dc4f83ffd30fc050b9b462f802f5f3a4686f608f8be4e69b5e3d7aab235c2ef390dea1502f780aae573c47ddf13658febba5c4cc61f576f3d95fe70a5228de7e31d416e7f38d594d7839e656c941c014dee6a34ab0b523fb78454bf333ece45ae9014529f8dad254b0908457267ceb3b88c6b4640eeec8c583d6f0665b892a42bc70069dc386bce2d303c81aebb50f0a6304ab5f4809170fd39a16591f189aca31ea5962b4500f8c631ed8c91e19b8a0e83444ad695d80e70200eec071274c0420c46ab1ea80aa6048e8081f2fb72d59881c81da4581944501c400f7802ecf9e4ef8871fa3a39f9def4d9d0a811be514deb0b8fa5127ad83f79a474db54d8f8cf67485547fe20a08dbe9b8c0395e84d48eb7b2ea888e21a15af4e782769fbdc8b001d3ac99394f6f75c06d0d788bc09b422bad73569321d8796e899a2ed712f136875892f1adaa2bb2eea94acc7a142f642a5b54d10b7f60f190735d18346ebf7e28587415b4b7842d3868998b6ee479f4b6d4e1f3c985cff0a2efd923946f36674c8fdbe7d2f36dee96a437c42de15a0ac48016643812ca82ebac2bf4a918584eedc6b6d2b0e0f82db5bdc64637c60b5e9334714dff1f0d8e1667e862565eb8dc62a4a8d3e83a69ade2b6de30489546d20fb137442c7ad1365226b892aa84d0ef4702676e4d67b9183bfccfdde0c2089a7168d889f3f8d35543b04c604b0763ea2a26ac3603e1003343c55abc14ccd2a4a552843061c654b891ae014ed4519ac606efc6a24b773afc0ec05bac4f26567bf0d09e7b318aa06d945c848fcd159c92e6ce346b1b8b58cb10510873dbd2f8bb1c6d1b788bf0d54bfb4c148ec1ee026a84f82a281be1ce4e49a464cc5754aa75b1a245ce5c4f375b3ebe96c49ac1d2fbb35196adbb4a85a5a0c45abe2dc8322f3b2ab4c33d10952ddf1d1b6856d26508c62f239ac8f4117788157c64e117f956f630485e9592ba786a86bcd932f206d390b5ba2fd287b7c1b08ef876554a8d91a75bf4cfe251506b8a9a7567735b9f01ba903aadf424d5e0489cb5642ba52cc1c34e418d2ecb53610cf1a2068eaa5fdad5efb4293bd0152c258ec7b83f4bdaaf2f86037d598563be9b710bc3389911ae628166f5df04e43ed8326d236dbffc6d3b2fdcf256bb789d305479e6c165c14233dfb1914ac8b2124fe0f86bb627016afd87115a70125a7735cf50344fd8330699c5c31a52bdfcd0f521026f59cb7c5f85e889eedb7788c5337a9ab075e9324304cfab8d7b8d0d4c15e7035fe1378c69d3789d3641bdda4c4e0d05ef5f949101b6de12e068d12fc567e5af98fc95af452bf4ebe164f96a0dd1f07bafb2a56f4c6a186a4ebcfb0e37f703fca5a1c3e6676eee9c6e802a7852779701db37021dae3615b524d1b915f6c5617127fc5cc30970207ed145978aff565d7d5a2b90000cdefa8f9710f0b986160029fb46cb58701907af8ed126d3ff3d68897946dca61d8a419ee276eaf2e324993706677c72a0f1f8391f10e47e13b99c312491818641c042870645c74d62bd0dafb2005de035dc8d232556063cd438281c2cf0a743f1bdfad27af9108a80b3a97865b24015559f2ec0c32ec4ea494838c2196585c81f837785d8910ea12414c243ec5bcbb81e48f79a98572e9028200b2dbc8b2a83ad7a8c5544524fa7759ce87d073d4a6e2c9cc7d5c1d85e7641f4dca9eaafd5a8c1f1eebe3ba1226db01416bdfb4346d82a4455a0de642236352fcd5585ddd887c507217fafbf4ae896878cc2b8aedf523bcbe92f991a126d25191d79cbe54177251a121e0452d34c209b54d693d4a5224ec1f2e29ebd01badd1ad0e410ebb1f722d7948ca2d0008c07148e7e163f75cdbc611b236d93dd7f4aa30853e269f079865f410868ae0ab6b943ceee4ad043222f06a46055507adf098376d178ddc8504be65e5f2a04d5d104c4a4d0e844b36fcbe38057ec992a393e591054ca048db9a8f3b28f0c2c57e48a10b0cc5116298873df9597198e9435dac00a4e2fefb3041be4de6e083222a036f258b65f0ded28dbbd945feaf70629e2f54338d2792073433972cb129bac7b8403562853a34ce26896807dce55098cb54ad34079761279533ba0a6792d72b72ad36308372b37b7f8f38d59ccd347cd1e7b0f4f506b9869df8a3da59222c0a22c30f333f92bfde7c9c51d11bc456e93d8822b316535612a1a4b1b946e3663fdb756a949fffb32a6bc963127d60ea10407b60c767ff53d16fc9440ed617d86d485c6758182845c6339a8d335cbcba690fd2076cf5253f21b44233db1435dac04918c005fe01399773a039612ac92ff6e6d34b385ddbd1d4a11616e02d2629a41d9dfc30ada6ee33b5f24304432eeb1068fd078773c9a25366e11ae322b73c315ff738fdfa3f30f43c3d5b8e7a429d150a4e122a6ab41e7d02c0a01150b3594e0661bc525fbabf524aa46682b34509132ceb4e443f42e54e48b7560acb5eedb9bc8a0de121409e6d5576571619a37634bf4d2b57f9754fe20bd001a312bec456271f71e6845267b24491686e513e135ebc5811a00bc993868c5526def38e06e4cab9efffc25e3cfafedee6f28c9144ae0c42b9af0c77388e594531a1d818f5c686e68879932e7d3b9432dc23bd81752a46018419ac339501b80b9e8108c0f9dede6d446a579dfc31287b724fbeab5846c91aba2645614c29a03fc356d4a1083563228be6e01e714ab90927691939578ca850df1a87fcefaf3a4cb810de1183feb7e759f0e5d7816d421caa1e0761dc33a1ffc3dc06830188aa7103b844ff9aad146a15dd5148872016fdd7cf70e0e928403e64248a7dbfd4a2e3ea36dd9d5ae050c3ffdc74105574a708ac91295655e91890a522763d2c3cd010405429d7390164ba39e683a36f8b0096347bff7d37c612fbaf768d00a20a7ce6b1c5edd3319438c57fc0dedfd663093cbe2192fcfa576744ed94f22999ae69aba6aed08fb04299bdc97a4c0b882a343e77efcf9f2d5440a7e1327f8560180651557451ef85da9a0d8ad724a3e73e73dae3a0f823f151a4ba473bc77841b6f7c74161762d692188c077dc2d5002edfda700278dbd3c6ab818c48df6ef7f28265214a1ff71943078c81689167ef1db28e688ba76f9b3d81e278a72ec85e3a275eba9fa4ace3337d1a6bad4fe6ddcd61b4c87ec3f4ea14e6108185d52b1e19a144c2747b9f478ff138799a36ad6c54276c395e5c851d5b08051634708ff2b9aa4c95b603c87fbfb2fe9f1bff2842e159a8ecdb8d4bd619382659939d5f9a25985175667f04f30e02cb26dcdff6aa3bc6a7b7fe2c3219b51f612bae0d2dcbe1461d8d64304aae45c257943d8514769e9b564295f79bc2e0d55f9ed97c728eac2d87a341a805135c861e9fed26fb28ade1b74ff0102409efff0652ecb7aac98f3528bf26ad0a504a39a4cf8bb6f104f22b42ea51e75858574575f4f7a851197e0435e0ae470c337a44ea7680bb1ad4d1adc62d5508bb4e6d495d0e5402d8c670668ad296bd66842591c3b2111daf7440c79bd52f177375eedd2719f0743cb8a43b4ac2870b28c8d6d202c69c0e0e95cdc97b74855294377da4a40201832eac25cf55c956cc5fdb3e9f47db6a2b5009e3a765c9d48749059cded992f195c0e2cbd29482ccdaf28cbd60a803c81ee6e033e1f820b70eaae768db7014821b7de48e7a8c68c5ed31d4a1b54045bcbf4ddb380a87b7a3a348e7a39743d9d14528e99c69e579a2e8b840dfd545b2879213ddde6b99a65c3a2f9acad3d1a9ff20cb9506b65e8369778243860524b272354036c0782916f36a6a0688433fa9d4a3ef865210caca7083f735bd922b5ac7b936c67dcf440f1211407ad8acbb2a7f5e6ae718adbc5eaf8461cca69a8a180e816989d06e18679b0075b4c72c1d5f03a5afd0886caa71246e44163651944767dc32dc33aa2a336f63521b72de2209bda136a63e6feaf41b604db570200801bd3d54b5eee518f8d5b5844d8172d13423f90cfb3cdbe6b994499491e24a66d639bb1dbb8ebc2cd10773e709f4046a666369b8db727321dfd40160f4d8e205513d5e4ad5ad77fbe012cbeee28ef0b2dacc88ce1746b7d301f4b263b19c7491d7bfe0561f164d1f2bbfa5b245d0cd44f1cbfa0ee887c3af60929c2d127c41a6ef95a4ba6c65c1ebbdd6cfdfbeda0d696b9c2c62a5257af0332b720037534cb3cbc4b905a0e51ae2235eab4f291908f3e634af54168dbb419b1dab4e69f2afb21f9a7439a4abad39aaf4932955425020d6b453fcc1f571f7a8a0372a46674e2a170f677e8ee265a4b9d92e355215b2747f8292a9a5b3571dd7f0a813317966fcc07c94d92db5c0ac1e8fce19621e8b8612a6a954b02396d29f939b97af576a5cef492b049613e77a75a321514ac6165f371860dbc9df07db4710099458620be6e03e7c59ceb9af15ce7a10f275ea1cec8f1f2512cf2a3c1e1d0b4c207cd2a67cad056347083b7142a3501b458e7c734cb0f8b4386e9a898d61481ba19b8ec48d275f3fba5d36c5f74e4c2383905e68b7e8ba939d9bbfebc0dcfa25380044241b631b75ab93462d1b2530eb638ece89c98401c2d85b9cb731f57a33b6a7a1a855e8e327089f1d9217efa7d93e65f578ec314b84a1b5224446186ea8fd6f3f54e0ea861529e9a6a34f57d45e2b12f41f4fda027297e2266453f68bbac698578f625ab4972c16cd5a64c6628f1c04492529d06356133cec2cec294ea280d1ab1d915cd5076595c657326d837208c80005c8283043f4bbe1b044ffdd2b667530e8a8680d02f4283222897083fade6a0c3b482c1d5034d6914109cb5a38cee4fe667035bae8183c3f03e8193de6c680b4bd69b192b3a4cf2ce7adb795b844614615b3de8fe183ea5a315c488214c1a26caec0933eac5df88215d91fa8c80ad12038c4b840c31c0aa8879b99f61f666888e3bae8a44f98b0980c372a6dd5de7a0801877beb88dfcdaa217d08b55bded7a0d07cc1af2b5cfd2deea1adc6d6601292ae621fb459c16c6a973b8dbca95a7ba5f1b09954e46ba6922031ca5c23f54dd5cdadbf1ba5fcb83959198f98bd6d4308b4ad60206a5bded95dfc2c2254bba8db5ca56364b9f53db5ed7aad63634e8bb7e96757a66edae90a4c4206641fcaba53b2e1342e86a216028198ee7cb0f8a6dba76aad0778ae01ca311810ecd4c4637da69df5ba9d88d23208bca5fe0a488be829c70ef0dca72a18dd4f2b1ec9c427029f54e637ccb96f2030e08cc73273417358f7c18a7a2213c38ba88f37718a75311fd08246ef9a9d2d1ca264386b95651fe2b320fd56a1d50ca72a46926ec50361388b8f554db091c07ddc1b3fd11fccd1b30740b53541284acdb8c6b35855449f7ebbeea82e6bfa5082dde7e28f801c2846927199fe811fc1b7538bf196f5e0a2a9a6141c77c3df27b7ea0ca4f9915b51f83aeda6dd53fbda98440130ff9885da26eae3dd5a6486bb7c4494e7fcdd80021132b1754020d63264b9306da6fea4f8f054719d1fd9de794af72e8827a66a2d986e814a9166cbddc979dc11d19d289b39df19e416ca009543b289ea907a072e784cc144195721392df94978e66ee98ec9a622de1c89ac789c9d1b22a595baafcc39d1fdf8ae236f0168c3a03c0aec518e7946fc844c14ae9b59cc702b7f0ae43b5cfb15c938a1f9d07b56f39762f52834a2d17b2443bec079388f88b2822a240059e1b2660dac32c038257efff4160c95bd1c9894f81f9d2f18e24e53e2003eb035db8212980de51188aaa624fd3b3027ed29514e11aa6b0d458e4a28937ad8d87265b8e42c90d2ba89b7f264f670aae7c122af451ab8719fcb427eaf18165869df02e3366671465ce9f62e89b8b284c6287cae671806a2603a1e9dc0d47058326f10feba79554ddd431f2bc59adbf59a9d44b741412eb46804592088b9011fbbf1e0b21a74f644ef18f63069d55989e0a59d54e282ab5873d0a2928f94372051aae21f2a2e09b8bf7586c5f7343bbe4cc66fe3e93a8a7e585309f94606ec8a4fea99138858f2aa026091c119811544ea1b8478edc31dd05f55d85a2d54a00f24edc07063c357538f75f6d0e51678a79efa8bba1a2d3fb0bae2a31e254c693291bc43d83f9968c45a825ea79164d37d2e2210753c6444310a5a3aca8479da8ba5a270e1399315aa74a7c0bef35158b438ac504267e744d9fa2b2d0640f2d60b5087d5a85d86addb3e8e052266c38383151e08b01dc38a9ac16a35303a513813413b2cc48a48e9976b4c04bcdc3f7bd2e51e123b3b2a804ef5e9544d38dd608d14a6bc84697e5b5418fadb96714bb5c81fd89076afda50653aec5f9d1594c19162635bef5aac9ffd48bfcd0797629f3c35333bef1eb364823c68f8e41e7be5dc2448533d31f79b0be035bde8c62928ea2509c8c9345ac73f2e4b013917945a5bfa6548bdb92547fbe146b091129a40b5ed01fb5da574d4bd8bf1d924f1a628e9602503a6a515ee46fe7a8fdada580b5c80a01c179f1d9d852447f727f2ea67380505201d734d398b48c6d850c1448146dd85e58275e8288f1e2aa9368e8c518b96883fa15cbe84487a20a876d7363418b16cb1410be5a3b22a74c707a51ea232df922779593277ab5ac5ef5b133a2a07de7e4fff55ddf0d776b252ee059803b358083c04b2109879c5c80e0418b6881af6a9895288a4c89c3fcfeb1c047931ef734e8ef88347dac5c6c481c63a47402e438bdd5205bb369eda724a385e5ff1490b457758a1e13cb7ea5767cd059ae25e5ad16859f990f16a158729d087c699cc824d4e8a77dd4b9dabcc7376bd07e69f772fe53e9bcaef809261b450a028c21d5287d9c49ef15adb0b32ae5084201eecfb792c1b28a3e629e213f5f3d8b7887046fb50ba9d8c8df8d6ce5162e53c7dafa787fccb65b8eb13a85f7b89447d778d3494d823d47da5c382d3ee6d68f20596412f39a87ce2d0c63d36a5b78ce8441d6d1a8bcd2fca6cda4a2f96f31a15b3f5583ca107cabc24395bcacaa204156b606e27899ec06ae41c5efe4a96a7d0c8b85041f32f05d89dbdc46ede60d5b63e61162570ef47107c4f50766b3c998e0f726d76dd981fbfae82e73ab351da8ceb9f0af8d58ba5a0464d713ada2d5554b0c8836144b7304aee8617399bdbffcd8966cabc0311f1cc4c673cf3aa99a4e50ae0ea81e07944fdde3704f1ed8402c1d9d8383596ec40a54b65ab7eac3ea6d79f221b73fa9984d2a365e30b03f1700df992f7f49a45db758eddb0b662218fea29e719c6ddcf40f448340a1294461e5069954db14a22fc37021d8313524e6cfdf135a9867222177bdf425bc13c3e2b235cb6eb47f75a61ad3c01ee4c460b5c3055b4d69b7068882b5de74f047fddb2ed7823aa7ef1e81e743da8fa63893dcaf424306ba73c58c51d0105badc78a7ba258fc8e38b5ec4913fda7ad475aad65d5f076f29f5558594c25176364123c95dd2b076895d7c544d442738b9360ec0e62976b43977eb7035ae622fb2f7c51898e6fc45ecf90072d325d8ee04c6ad753308e40dcda0ee0c383c434a1aa799d260c8a198f4e77c06621b26d324a1d94a66a695ef7c5d9f3896c2e67b9946e34b93dec9fc5d94fe81452d9752da4b825a03819a932f528b9b573af003a709307d7a821dad5bb300259821609dd624d937c46f5b208334b70162a6cdc7dafbed66469c554082d1e599ac883def0c0d9146640c021fc15d520d920238fec7dfca62eec61a0686fb6d25645db22fe28f9ec3bfa344cd4bcfc19790a34c59f5fad2eb293bc6529a4381a6db1c611cf3dbdb6269fc0b212e6ef6b98f71c7c87316a77c0e5c982a679d57a1abbabf3c68c6db07c3711ecf86c6be2dfbd3a3932265a95847e368b6d68b2f25306e87eb98290335f09894d941281d76dbb787645a16d9b819ead4af2a321f756e3890b9aabf15269001934d5f13e4c46e622641cac5951bfade26cf3c1919e46cd13bbf4f286c54b8cd8760cfe09f8641f89105616e6610ad0c76313179552583b4c4ec945852fb61b1e006eefd61c173e7e79f4beff35e94f5a0f52681b165111b98844daa71ef4e1895c5d630935e0cd29d06d13462897c043411f1ee5f84bd995436c00b71e14b7b0e4d7891624e598770f6d081872d74f06ada3e913ab848b2c15a418fd1de1cf11e70c806c492a6748dde02a1c2521c30927ef9c4cb8f87f3b9fa73007d754b9a3b8214d4ccaa662855ecae6bab85b00a3de7a19ea14430e5c7510207a4d82b5452add59ad308041257fe230c25ef03c0e72be83853f76518ab56226c4ff6990031d3ad2282e990443f5fd1a61d2e31ff309c4048d69197a26084fc955ba6621c50ae79411f48f425c95d03fb4ca41f20b388cd2c40fa5b3b732f7c6841cfc6de8b9f25268a5dd8315185a294f9480b69b47aad0c30aa8f6f5e10553f0ccc0a7f8b7417ba728d5f6e0ca7c6cabdd405a8441c7eb1e919f35e629094cead144de376c79a46e33c3b43ff6f2e2cbcc8839e8b40d6436e82206a1b032cd894cbec500064ecad0e62d3bad936078beb4e7bb6584e62d3db9c5c5266c1ca08395e045475084bc9e65eeccb54ebf4d4882fc38bb0a067913c6bd256e1f6d194144ebe24188e32f2488cdce78eecb28c03e9a64ca2d1dda72d3a01315a3584a35b9260591980b945e4db3bfadb54ab3c3d092c23721ca5d1b40d5d59312434804998a52970f9e92f9503a0c32d48cd13241a4091571f59b79620d36e068aa69f614d3ab61f5484a9cd0bfb48ba7717180ea32589e19288e49d9ee73e252ea9498676c3c70c5909b86c2042a621322b29aea416cc81ba5f387b0414b621ad03a071b2f15838dadfe5f63a660438c60236922a10173b838b069fb6cb87efc7b5fb371217d0d45418284b296b90f696e4e0302138d4895c8f8f0c6343a5612828b99ab9672dde0c3114cb5262667a364bd216bc45c5091aab1caf9f6121553185d61a3129552ceb4458c7302c986d9a0ce480a896e87a08e43b4ac56a432c283b80ffd12c729e8573cd2f86111db0429c551b01d65aa15c71c228cd9f0c457b5615781c8864eb477167279efb19570278d1c9547c49b963f4861a02922ac1c9f16ffe3711d8b14ca3041d9d640f939eb1e8a76da23a74278cf6544564d0478ee72ff4914ff5b409060ac522be06c0faadc53254e42175505fb1fe3a73d39ea70596dc899bafa6d105b1a49146d2d6cad0752e4575d1919d008e0e42aa1c964dd504fafed3f1e8688557e3a8fcb64319fd410ff110e0115c6d317049c42143ecbc0fd9282a8de23e3e66941e49ee8c3091e3a08078f1aa9815ba55ff15e738c9d430cf091e4b5ff808df73c140f306a94840040e518702adcc3dd661e8a70037a288240624ed1c4f350f45abe6989c3507e4ed1c36804263f336a907e471cdcaa96e1a5fa9f562cc26e36cf8e722c798a4ac2ac7c7ff22480594546226db280d407a4a2b56be0cfa88c5d51500bb462bea89abe349ab2526200e5decab61cf35f3d8b03a2a5953e741d940eb7579cdb1f38b59a42c8c3dab08b297a762c72693f0e0e01054beffc1e4e0288da45d066cdc44ccddc394c2835b3b9b62b01b21166e97944b42c6f0ac5f717a15b4795d16bcf60f65bbf18a4244eb2612dfc0709f95d63055cac502f9ae8155474134f5be0d3f2031e4169aff4a6baa167b79d4ba1b02f635aa06aa1c8cc21b644c9c4d2dd4718f6d23ce2b36adae3e7ee09e2453de051960bd8e9ba268e8afc4d2fc572229c21ccce03a1711089f6444104fce197789891f757a66a915eeae3966a6137b8121a1722d513a95894b40e684613ec8c1bdddc59866c814450224f80725a3ca0312a52fa6dd10d9a75559c250f95df03f4a345f5935d731a3ba4aa79cba08dd2301f23c421628c3cb7d0a0331e4f729085ca1076927ffca469d03a120310965b03b7e5b84e724e6621782af84b7b39e993b2887a123644d7fb15386000347783948da7131fa9e86d688eacfcf297d56f2dc5914dd5f020f544c99bcbed735e2fd1271a22fbd4c06d1019027234ac6f6ffe6754d4aa50b4765449e4061e8a42d02180a245da5e2f27cd0f0b4416949fdc8535981770a1fc6821404e75caa2c862b76ef53d3d0355f9d237727d4d34e6a0cb7e50274f54ddea1f77709d9aa9e1b743395e819541584a6cac2a2de8e49869f0dcd0fd2aa511d8af13d1861b87f895cd13612a904fe5bab3ec753308608d5d5572e48fec40295252a5c8b0612847415c91999eb59bbd5efd5281b7c663ed7eb6d4699977d77a8f397f4efa38925c6ad4d934342c14d134638776ce0438afd04ec98cc0aadff8a472bd0eff1313f70e1bea064c3532759a03c836119b8017c346a8f58dbe9ff7c542385f0ed72a5c70d9990dae5128f80bf7001854162fa9c9ed20876d9e5d8f683826c35aeda6598cecbfce1b71a179ad8213976dc2cd7eac9ad29aae629a9177873be5c68a1d0d708d3d77434d69af27f7ca34431fbff913b206324c85be055a78aec45f7314027904a436d345c47751707010464161520b25a4dee0c16396606bb949db59ea8aab9e46a331b007b51b9500abc7e64c7871cccb835b11914c4e6b6418e8387c90ddda320202b927b6bea5d64b5531d41fe532d93e2cce4fb541603b6c4e61f1b14ff364a166936894aed439a1ba5acdd699ab42158d3d95c2c13f73077f221f7c8d426c89aa26b54b0ad3d4bc9458aec34c84baf93a8bb89d5d82386baeb5aff678181e405132189c6c3b8bced0d6a847e1e1ae79a471fe5af301a3aa000ce87143d74888c5a25ce362b044d3fd2375eac9377837e0ef58dd4f060abac98a0f601db8b6513fa9fb99eb060accf2943ecbb3a2a86a57b08dc655caccbdcbc6db4d533329469fd008dc0db8c4c6fb3445728f289aa087f5421777a979b5af51e3b1981a18f985c0549a57e70f3c6a648cf586b405a09883605a1e88663552262d6b2d85b0c6923f1a6f0a5666ab24538f61f4351280c9ea95cbd423e2723d8e432961cdfbe61f3727face17cfdee2d2ec092078f15977a4274e26155bca985c70beb5bf2b590f5586c98df9b05f2968e27c147ac3ae4ee71a86b109601f74c63aa70c078155125c188ac0c825d3bac144bc120ee3a610acd7c46207494cdd42bb85396daa6cc5b6c56acdc52b1efb43cc633f8f79ace71c07a0a340d6f20c35996f06803c51fd8ada81bf599930069e8ca3aa934ae60e2336b10417df31867d774311bdfc0acc9159fd0bcba71200d6501a2c2a0c33a38c13d2d933a73d834d3e67f8821e3d3a80a13afd4bc04c06480998b806a34969b004c5d3e7de9eb1c72d3b70c1c3704ce6228bf19f6027e6a3799069d3f586f1758800dc57e47d49c0e432787054cafce4689055fba8ffe5337801c0cd4536e54674a4bb4c36662c653e697b1850fcd714825cef7b372a4fd8b4e3352b32fa2b08326682e7a998ef458749dfb3f91b7687057c1d276684378bb7ce98ed683b5a813601953a56f569a098c2cb35763e09739bdde84fb113fd01c60724c52b5db4c0900e0a5220b9e4c7348fa5528217f13f7c8b876f973f65040f18752811fe4c7eff99f70bb5f89145140fb288fa4c96b144c2f6ee5bbca79e2b3edafb4d5b07e0634587c678c963e00dfc5a13022852f4d5b7781abefb49aa0425afb7c4b83495a7c0cadb83f01b86d11ef86b33c6137f24a1cf85a1088c5c32a11b4cc42bc162db49015d2c7e11564132413c3a9ffe5cf0da661a4f024de2e14497bad9b778148c00d214074de19cd86209692425484b2909491d0f3cf79373122957ae43230941c4481587ba5dcf92061fcee87d94360c6e36f8fb499baa6ff1b66d0e5e9fe57d56d35c8daa268cb8981432c1520b51a171e67aa570e95e1c36a54f94cf5eca088b44ece31d69ac56fe8d114c291e8dc830ab13b9ce6afc620c980f2843cd057ae947bdc73d4d3844f1a19dd417633a3c1bb1f08b9066dc059d5f50868535e84c0c4a53952de14be70c994704b309dfeeed912639bec5779bcfbb052ce27c284f54e4b67520ba2dee7ba3f05449135ab94c014ed40223143315670a5c9bb1e24b87f63952044dc6cfca3cbbc78b960d1d9480a526e00a510f3f9f549c6ff1a6b33861897dbb2ed12bcece90a35e7decff9087f20b22c52702f95ad3a4491b65adf808c419893c513e7e05200a4df8325340dfe2c324c018698d35040a9d3566023f49084719a716ed8331a99af7d7c8f1a2f29dc2428f1536fafdce5bf816cf16d355490763261709b2bdddc99459fd24693441818cd143345421ee145c346be54b8866de1327df0245872f77f282d7bec5c3157e3be21feeae58402b58a16cb19861fa9060d6dfecbedf067eff509011fc932d5718df90f23d6459117f328e8db5e080485c108d416c3e8df3d7fcb015f8600c24ce21b90b59c67b02fb188f38081055809c087efcc9248ea72c223f9411fe41082f03f3da2a3cbf3bd6f72d1ed9e2d5e572065cea6778c87f7acc2d974e4f953cddfa8c9ff9cae9718d88204919ba2006624ec247532b3e8630dc09eda5145249ab027fd3d509816ab2a7b20d3398925f93d6fd12928cbb880c7edd6f4df5ff5a0a2304a21517549b40b44ed01c854df02d9e6df2d77593cc38e97865ce883fbd0d148f43a0be41ea08646f01ea42bc8b63bdc18fb81b8be83376dc4d355de067458a9d0165861048cbb1a1e06aeb5bbce35da0cfa04e753554e1fbbec5cb4b5bbe45798f3513e85bfcb430a87ee4ac21283456b90d1f940bea0a6a86a8281fe3f32ca2789045140ffe62f376f22b0f5dc0b06ff12678c7f9109f31691a9b5ac2da5282145316fc81698427308df32493f15262b93ed454f8d8487b11c1bec55be8b0288dcc8c887de4fa3382d5ec919d449d6db1b1f33219900e1fcc2fe13706a23fc032de27d9310ea73daf24dda6e62d9e0573db147adcd0b520c021d6241c96a44380d9559e5586e7e66043f02a347404eda17c966aebf4a978b0eef58d863ee8996da3aff1dfdbda843ca1abf8d42d8e0b3d6b8eef63e5ee1f7f9549ffb46c53cd8ca17d159f713862dca9168f2d56bcf281fe5ca4a1b212244acc608dfd60fc2a7e934d738f9f4a3cb947bc8b87b0fe2bfe31d410798f4a555983d0bb86b039c9dfd606d7490675bfe2f153445cf8109926537d0d9b6811831650ebfa4fca3bb7cac9db1527999d5ba2f6481dd0842a2776201e18870efe0a478e582addf40b24ff02eeaa9f64881fcc675c21fb20fc585d3bb8ffa7a80f78c18f3af42116645b04df0091cd258a8d40ac6e9868a64124b5a3887ee13bd30ea938da4809c617d24a9b5d950862d60122d1739037a03f636af24cb83b9bb086f521173ae3094c7c136c4af2ef57392f73bc7f951e88f9340b028a80c5545b608cd852073400240e61f4239d5308a5a0c525f006364b9bc67f4178155a812c09847de00402f36dc1840db4e92bd0864f835fc55ff029b007ffc02f7a70ec34c28dd2c69c382ede9fb79614fe8d0b01ff0792b6a54c52eedd64078e050c052b053a9ec0801918fd86f17f14287e5dfcea52fcff1ab89955e960b1e108f9fb09263e15666d18575f89134cf081cadefb755b2d1cdfed2e45e512ca7cfc5b028beb35a4f85b8dae41dc5099bc567c309accc6cf7b8f1aeb46f7b4e84a92c6bae7bd860052992a49dadc6ace77a707a7f55ad40670756a06e3a7f97dd775defbb8347e98a992a4710c6daa2469ac5688d1a02b491ab7c92e18718ed3289b1bdd129316802f29c36867c46cd7659d756e11b3c8a6a6995906606e64ca2ca64676e006e6a8c966458e12bc37ab442c12a7caac0db1051eab348148c5e5a9fc118154c2c008c50e5a8b0c9e0cae7068e869b17a4a3a621b31b2c394f46a339255e1782c88713dddb8fec2b1039c247ad87c74b6b4902262560acb588482794e25c53d685b34c3db910725cfc60520ad2e288d170f1342145a1f521c3199906215379c482805c900bf7eb8a68e1387b50d48e15893051a50289b0a2ae68091c3060586868a6c476712cf9b6e0a202967c8203e893ef9b5004cb8183b80e88076a105872f5b800480e3d11014a67201aac354f56b1aabb3d65ac9dcf1161cb3ca833e00a9f801c2b16259dc62964547cc3e88d91031cbb2117488ddb038aeddc8f8b16c66df02bea662be9499f3a0235e7b0764e0804b9616f18ed3250b560e9ce2fac6f51779864309e3a8adcc0408a4022015504c21f4d09c21a5ecc0bac8c51cfbf460b1beb8c7c661b1d861889db21fd584c536c5d9c7ca041789b167d89b8cfb23e118212d0ce8c398d1d4561a254228af58d3cd66b5c8cb2c2aeeb1c4da11afebca8bd3e5d55bcce37489758313816a6a615828ae7068101fd8b002c98cc5324414063c3472ec6011fa800dd50f6995538cb6e60f0b96b634879ac106c65e6c61a980195ba1c200afccaa9ccc23325c92891c3e1b845117379ea652e241650a1ac4622b47111752a72965758dd5b588d775edfd19af13c469128a7c16ab0e2d6ce400b618de7448d55064a9c011c2c559f694013e5b327888ba518f8a60c29a481499e92897e0d88209aea7b8be71fdc5755fbac3d1b000c71e31aea7b8be71fd65d2395ccb42e5cdd5d855e197976427f07895aa5a187a712922b554d4ba76d1158704c8504181925494d091b3d207cb53477ada005c9ccc5739e79c59e808cde663ceb9372189d6c2a3c3bdf5c50619a09980320396a19de9d0dc5c633ab63c8600aebd08577c26be12df5aa1af376028c67e380c854082c2880045d8e06b82f161f37109a6e870afaf157c4f2a49a4269ba4134f4934193cca080388060b6c4b2fc850245fc87cbe0a3be7e12b5149703dd96225cec569122d436cc1177b34298880b20c4726c8c4609521d9e2c1c60a8ba9ada6a76a6606090312529bd452ce6827464905d416c5664580385d4ad9c41f71ba945211e181eb29ae6f5c7f4be44c82eb21710ad5c48a8d69298dad16c5b8e4d88f99732827f9c3bd9149b178326ad959c1213d3ef07bf27a6b9abd1115a94469d68b1c440ddca02b41097075d58480c2a08268284dd13441f4a5c18bacf820a9c3c4d3127d9a150f007436a5f682680603ce2787928414874b2be0521209501b6c34e82ad181ed49284799852175928a86d821a11eb3192928b3a00a7ca9a4a83292aa51801dcc98116519a26f404c1924dbb8329c31d500414e979243169253d98f88e54d8b2d1d1de1d4080c6a746cf012b6107d7c8e8c644c8db0c20003c301c2942b96bcd2922d3d2380d6387e61088239ab71aa51d2cfe69fc0533d62b470ea11d2d9c0551343f3d0b4443171b4b98806792acc1b4943500483474999c20c4a040300cf86a318693a1d867e6b4fdf01c46954cd336a588c2df0b2ba8a481f30244abe10ca72bbdaca30e2dcc679270330a0a2511950b1a8f1385c4fa15fffff936de30cf62d589546aa785dd7be5dde8338551a93e21c4c6cc1d54e9c053a961402ea4ef36a01b7aee94aa2b5deab05f28455559723580bd82038b7a3103dd7272268fb0444e46947113a2e692cfdffffeb0c57a063f7dcf22d32b419bab9871932c4f0e1c30439c3f1f831ba5ec35df003058f2ee841b324d4b974477d808a4f34401f949c27990e8a0e93b8b2d37c41b36394ba41011a26e1a0f8008d3228c42371f8babc1785e7387361e7c72984d6ec005f0971ea84648120e4cbe9dabc826886f0fd3aebd2a646393af506b355d7ebbda7e3b34563d13ddcd7ceea26c4a9135283ef817bb74930170070ad8739def493f5ebd72158c1a664a347b886d5e4483011136f54f5e3352674b5bc01b299a01bb9b667b87cbfd6dd857b0f06eadfa5e8b5a925e7bcf5b15ff3cc7b4b34b5aed2b148a2ce48ac387736e79cf392c8ca7b4b1c8f3c546452b33ae9d4e1b93fa6e4513447f02a89850547d34e5309842e2458d46af43c779b9255069f3cb5a533b9aedee9de5d8aba0c1369735d6bad993908d0b5555bbb7856ce07512c32b44814d4c192c50ea12af2f4526b0ef2babc378ab892a4225abf7e9d75ceb94371b7bb70efc15852216e527fb8fd7579ef1514c464b9c4f7678f38e79c33fcc37aea9c73cef9f971effa15f16303d73d413d8674eea9b8f3d1ed51b7e6bcc4798e029a5bcaec2960bbe6bc64f9973a72b510cd7bad92ac90db9d00d9062dae6416984ad64a48964e9c3372770d59688a4a2293e6ec3f8d3c157db0cdbabcf7a8d7ad766577941d92ad595bffa0985a6b9f49898fdf507d5a99f5c346ed5d45e4bfaaa2ab95cae4abba3f1446aca80ef9d65aa05fbfce39e79cb3ce39fb2e10b4d75e72c9e70eeca63db1a45b31c393c95c94cc7682b6339468de04901f216334ef4d0e77869dfc73323e51c8fe9aa4b4cdfa532e65b51b95f79e70b25e394a0ecc999f89230918b113520cc80f2eb3bf3445dd14c4a9938817acab5ee8395dab7aadacb909ee56e17d523cbe4bf1777633c5ffff3f32b25ddefbc669324693d7732aebc1dddb8812a33903258c3805f40504d1334c866168712ea13893ae0f0e8edd2860d0d5c40dca17732549f705388031befc7b97a20281b4b9ac4b6622e73d10d0987adb8089a87504f3d481c55a33a52dbec27c440c0185d8c93b155bd1b95a6b19c5cca5623dc68cb5d65abbbce59833176523d408e87a42d9cbbf67fdbabc7746dea564adf5fa7c4de1a3267bb018ebae4bb1eeac8ee79cf358b295d01b83c6bab34f96586bad35dc61f529ac186be24f6b8d22c3b992a41d8639f65effd8d24d602beca30053f0a1780533cbf7de9a6775bb5be77276eaddc536ac1fee9c9a4688a074315518ec4707eb045a8c30f6c9cb4189dc3442058d2b2ae2b00071ea64b5b6dbd1bb2b1cef6e736f1f7947fad9b065f97ed1db0d9c392afec2fd1de9654b2d0990373bf2df1f725bf3acb7ce35036eb40fab07eca3005380d70a2550da6a2dd95744babcd1868f26028dc4aee06a27c7fa600abeb2a009d78d192caa191a162ad088196d4702033732a2a0397668a0750584b0be707f47fa593247b70abf3e9882cfacc91eb1ef4ae6817be1fe8ef4b3e7fa4e684ef1ffffffc31a865fb8ac99b412d35139470e28c1f51207c0be0b6a044b4cd8388d02a2c5164a2858f29d8eef52d4369036d7b3d6f17d8399dbffffdff2346de79cba9bedc9dfd822fecebe032827fd623bd67d5ddecb56d4ab8b76ed2edc7bf00de34a92660e7fb49115c37bc924eb5b2bb86b32feef5be7aa0b6873c771ce7934b892a4718e795f772999f7dde3dd42e71b78e95959b1a343130b32feffffff7f1b4777f7e730ae4dd9802b499ac2b7841215c6f5748c98151882ef8e1e074d08cf1d5ecbf141188b08d4c1964c08901715140303f2321491f174a33f06369764f6053b96403ec078b048b9449ddd05399e1f49192e353a17a047db4c4e65697716d36a0c5115a04e0c26be60dc121aa984714b103913079794586215a710f182b7a3d026767126c55882f1cad02d46c7da053aded0629ef9021c505782d576b7fb9ab8effbbaafebbe7a02a18877b71092117629b9e55b687cd0d99de37c85c5cdb38321e64a9242d81cda4c6861f0e5b19bc78af3683d70b5aef1207311de5b735c4952073b27e3c50b99299b59e3e564981e3c83f05e228c4c14cbc432915d4a96c15bc15c1926079cf3cd6ee38a51c68863fc311a193d18934274ce5a8628c24706b10c65209c6baef9bfcc0ccf63b37bc34fbcc128bb17b29c2d3e4c41514445c26c4cdb551aae4274c84008aaf4b563d820f0bc23aa24a95171ffd67ac770c0b38e08462612cb44651eef8a41072d1699126e2c6947156c8f9956a94e28adf4500d477c48cb38ffffcf735ac7b0d86d9d73afcb7b8d9a2b49bad3464ef177dd54fcff2c8a1544ad63a4daf867a8738898f3be3bef2fe79cf3a2944a923277d375becf0e55493e2e467d26ba9727c40c6d76df006f8237c376054ba9c848ad2aeb0687271016ae14061972846d35a1727cd88aa10979de8bf3c481e2445dfebe896876030d8188db45b650ba3237f3cc7b7d923e523e4cf7df0e2239feffdf24c621db0ca5e3998bedcc5377b35be7c975a02eb2cd59679da1feb5dedaad1aca72ac612d7fdc187140fd8428537ad96a94264afaaac171c22b0a4588ea0e9f8656432d1facedd3e2f5f3776271bc372e1a72e86939d75cf3a0a3250f483453694a6f740115ffbf062ebcbc7500832295f8bd4954712bc7b91ee1b6c5b48659e2f18e9185075934021a9636c2d8f6c0f81f05038a6e6dce9f0f38ba4c3a2c82155bef741fbb14554d87d65a4be56e726dce681fb91bcc9dda97db7617ee3dd80653e7b6e2b914049e6e76db28e694ecbf1a870af651ff905826586a3610c164d3f920a94f3b67031bc7b0201023569fda4bff0ec36c49be0105daedafcb7b6f0437d4561181efd7b9bb70efc1d1d76e2a203821359c4058decb06d418fea56d83da6d64bb65cd5255d30749859650ce257ebd61cc3e5d39ab215ed1abae628a952aac4fba6930809209e80354b3e7ea46501104d5e5bd51277b9353b2ff35703e34c7ad41795b52ce4b6c1ec884c8194738a24f9d8c9e3955e04556d1185b880e42fc2677ac31642f582bae297ec05e78a2a8d2be8d8583a495cf56d40b975188c3b6053d38e17b1f10637f0c15049eb7abdb3a5766a8dbcc453860dfdddf912e34e60df4f2bdbe32d1bdb9047853788a79c1c9ea9649ae24ef5aa1a7c2ace5bcb89eb0d9a3d0837bb91b30c58fed7c754e1c8cfecd202f73609851893586282f52cb37311418628968feda3bb79fd5aa8a73ee75b897ec40cc9524e56c526bb9f7b7b9fd0145d520979c73ceeecb73596510f07141badefb0b4ffcf0c20a35b5b1650dca3e42f5c8eee0d8fd2baeca9da88cfb130abaef2fe898fc0a6e21be5b64cef93632e65aa7aa0bbafdaa5cde9affebf25e0d43a9dc9288ee2edc7bb05173af3a1bb3db5f97f76af81f19b6bb70efc1523ac925a7af3e139360dea5e48e6423446fb57338c3b3cd1a5ab05c7f3dc01545570d2b5627242c900c4b2b841a77a7d3ba20a409769bcbc7a5dc2e85b779bb414420996fb7c83f679d755eb9e6abd641361ff4e4a98ead79d6e966371171b7500ff775796ff0dbe7ffef74d9eec2bd071325b5dbffff5bf156942168c953114bc8ff931051bb0bf71e2cd4648d01abd62e4a4470e1de83939c87ebec1a3dc8fcc3fd9915417efd3ff270ad5dfc043dce8aae0b9b56eff6f92e39fcd8a5e4956b17c156d7d94de3e99174f139de5b16dc8d8d11ad6bbb9646528781f0fe94cad5ec27c1144d910d0551b20c2ac3a13910587cf1641945718053d1acb9d65ced1e4bb64c179d217eaab46a6b9e3fddec5e5a4952bee6a7e7598f39377365cdff233c7277e1de83cfa4feff75ce00b235cf2cd993ebf8ff3f63c6af3ce3faff7ffeff3b33abcfc4f7e49c66ff36487240a88332876c05970f1a1a9a5a04ad9c35172c9c50a8b9b56837c9a5a2cb5be3dc1f0d225f0e6d0091148303d09306ac129a0200ea8a1963072a359a19ae64f3c62e7d42ffffdfa4c3bf3162049e2d8e9998cf3926ca71a8c4e89fccd20e92c9c1777b6161881a6dfd099b794c65b2bf9861d3c58579ba6feecdfd99181dcbf9cc31a75be5cc8596e795f72ead2469deffffffff603cc9b58e72d51d1273feffffffcf3c73ce396b96c3d1fc4cfdffffff3fd9ca79d7bf52e8dcfd689afffff0488e2eabeb8307bfdd7b5389ece052bb95449edd45ce82d87cbfce19facf67ec1cb0396be099dd41e7abf1357a43bfacf82c9f1ccb7b59a03afffefd59e7bd7dc23867dd3349969824b32ee85afeaa2d529bdda5ec96f3287fed42e47002e467070a30a2242624f243eb42a7422cc7456c46058c30186d433b89a5967f2eceaf7061055b51430c960d826fee8b0c2f058d8916392f33323869f0d13716ea2b76213f9eef2d04f2d603ef6db2fcf9f3ff2ea38d3b111a5bfefcb9058c2244b4d5541569cd087d7ce8a9cc951143446e40cd34109c73ceb9d09973d790c753d73d9169e69cf316d2c8f94cef745cebdce49c73ce5a6bad13cde596f8d2669df75eeaa8b8aacb7b8dba6813e7aecb5d1354ba82593b3940180fe57babb97cebc7b97be7f95aaf6d5be836a312e79138f70de57b2f739e39be5feb48ad24691b902f891772cef9f7ef6fdbbfdc81e63c018dbdb71bec11ee727e7e046368741ed19b5c946ce6c4e6f815735243dc0a9e0ca59cdcbe82cea71ba00b881c1aa20b900dce928b4c4d4eb105470d8d544b19cdcdb105c6d03da181ba6f128c8408d27daeb7845d74c67befcedb9b657f46ac6eb33b7cbbe09c7360eebfcdcab14dfd945b8ba4f2015e2041bd8c60cf2426e7caba1a4392592ba1e6a5c5c4f3d65c7d777f47fa51e70f3b8efb1171b658818a75ccca172605bd9e7288437edff75754dc1e20e252a1538524432b3a8bff95456af15710ff15026c98ac889e30188a74ee413c177aa763634069addd13aedcaa6b9f7330364613df3ce56dde4933da6ecde594336f4407dcbeddf7dee9b88833ab6d73af63778c626ec44de6edd309a2465792a610ae5530e77f88edb84afcf77c22f6dd83ebc83d923bdd7e7349bce5bf4f62ec7697b2c5a06c003acc25f43a9fd083c764c670c67ec68cde310f7d2c09ce14b4c9d1576272f22cee9efbeba5d328d6fad52dd831f774f4e0302fb8a0c95ac630c65a24d6563ae709b66308ca68e3a77d262561c930a930e64918dbb5d64baeac58eba389eff831e164acb9268988b51a6bad27f83c269c8819df91106fdfb914216e360ca9368586fcecf62a5349d2b513afb737c50cf1cdd905f4c4451418dcfdcd263bff460b7bf2759c313ce91a76bd40b75a4e5e2c2d9956314e9cecfc714788766eaeebf2a62ab7d559e59cbb278827278a3956f82d899027ab659387ddca890919d5fddf0e807d25264e1aa495b45faeeb02600614f17d792e0c70021a08c3083378821e049848a8b46c5d298b044005004319000000001c88a2340cd4566e0e14000625e850749c6478582a8b83227120200a056110c4510cc3310843510843635c3a691d01d066223f6143ac0d72054b8c38861affea6ced44ad7f6241e66d860cd43727ed5436496409505c03388c554ec7b86dbcca4a47ef5a61f8d6bae12dd96394839ad15bc8da254239769cdea88132c6a357f47583bb4195c2a8015160215b8b8fb3fa2c18db7227058a898f176d0241f9ac051c746337aa9c86edccf4ab99e1d185ca5e403d6870228b311ab9e9adbc07c0e8443c3b337942e3788dad087940d68256a3fc6ff73085867578506b33d51eab23607dfbb05d7442937c3d46f6ed96e0810d918294b794bb5dc3fd22663b828646ff40bcd1768a04263342793c0dea6dad08d9d61979dbc2fdbe32cb7b15a9eaa93fd9f1326a00e3a22d9fa875775f9ea013bcd1ebbadfdf7303e2f26b4798ad14c8dd6695659211e5440126cc2a7426f48d7382fff7ab4270650542fa408afba40ef42624036af43afcac84483cb45ee7bc734555309aae7bac5d2de3010679d36db7388f538cd439e81c35b495da3142f99ce884df4f7c90729367a3161c1a67d8e4255025e58b0d45e39423c32ce2bfb444d6768eb10db3bf59015dd2f29cb350583219357f37217498b9eefed726664b426a8a35de64cd2971e39a4d659171aa49c973aacb921fa79096228e7e7c74357b05c339717f68f90d6075cc943db8b28d23123c8fde08cd5d7658cbda88f03edd0286cb0939fd3d0696cfc1d2f2e4779001cfec39dbadad3a5e9647851e0503c124aa1ce695b02ca490f86232f8780883b88d50c2db25eafebf7eb2f3db742e25f148cacc8e054c2fb4b3c980c0ad5199f81cff1d32277341b20ebb80ec5fc51449a5c9c49423fe8c267e2433a3c5cc8f68560f6729f645541c1a2a8ba4855b31e83be0e6432ff5c3b21e720e3b55497e750567bd99c7354253e1ad6f80e987aa62e65fa7bc01f93262b16e8e3a80cd2f78a3e5af301b5321e8e4c618de9c63c64deed08a50c3d6dc931573b3d318e37ccc80fdb01c6939c3998dd58ad6360f63f8c374a672d086e1d139e6bd9e6828885f796651f9d8828e5817d04d75e9c1583ae69e78b18830aa412b146f5df3a7c68120ee25b4a38b3b81d20e653cc539d01a8887390e2ea21a34ba3fb27c8c47097ae77e74b0f11eb9951081599fff0e61dbe2d1f6d2f2e1b6c89a56012b312c16a8594add2f942c3f568b8ee96530128a55d7a6d1c4d16674c2a1a21175d234e23b3ae4c29685f0de0933172111329711b49de48518bea31ed7860bdffd288da9b96b9a09da9d58b1d4a803d9da3502341ada287bb3ec9ff46ed033242353127077880de464c72d0e99bb58667a5b63bd44ede51d88a73a167dee15821459b0513a1c077831d7a53ab00e7f318dcd7208cc25568285029809feea95c513746f35e01e083dbf0350a81af038c6dcc515f2186c96c07d414d3b5fad4feead4c94b69c5284110867bd22340649b3c72ccc0bfee28f43514e1ae298a7247ccb7632da0ba4bafce1f4960b82e88a1f78c929129986b2bb8cffaf0c5622b1e023a530436c2b3ea970b0cc5d86e617aa391e3b729a1249563c94c404f95ae66e985076b0018e81c1ea91eddb5b4136208e7925b9a22c142ae36d136df224476e60ddb679d1a668f95c73773a4749e19ee7c3ecc4d50b7d6e1d723ee91f4039395d10349834bc09f97126275c99b8c5aa3163d6a38343ab7a62ea6c39314adb40c22ab500d02f16e8629292220f6448ac3b98e399567c62cf9edcfccdd95317838902b76460b1da7ec62e29a902c7335772801f64381a3ea2c751bee5da09f1627b06f52b25831be0c73e3663c875d424c1370642a1f8d6c0fe718487678931ce4947a82d36b789c76db5ccd07d336ff66b0c8dd1d8c66b73678d33b85f3f8182776ab199b98d9042c25798dab7680769920dc5406077f8775d75823bfd07627ff80e318212fe44dbbda55508e7c98ba62b93aa90264f16a3be7812b48bb9680682e943a7863f2cecafc8914a729251b95fba4b7d714488896521143bd7e800ebd4256eae25569ed5c0f09d26848a0d76594dadc6ede43d3bd74c3dc45c5d56278467b357024594498e939784d4d54ae7996d3d5b41b090e7b66a34485e08bb4ea9edfce6da9db2b0d0383d6f5afa3e46026b71423211b1723135a884b9c392081361d7e9c60c154d07cb0274cdc0d435ac0f18420e65907cf466269b5077c96341646c903d4a5449a205dfc852d09c4d786c14833c1e0f103d34e30de9dcbc39fe48d9b0fb7453f72cf8c00d2072a145ac2f56196368187244ee2e55ec24594ff88da48a42e2d67bf4bac02b06fbb5034422a6f677695009c866e315df705c7aa251b7b3126bacfa168992179f8e696321bb597215eed41bd580143ac173183baf83abd681b42b96415264e691f378cdaafb4f8b763e43d96e793899d8ae163ae3ac5b53d1d6d96b5ca1203c86a33900a8c8fd0f847d3a5a458f8aaca7bd3c71876a5292a277aa6686e898229e54d43828df932b42e36391a1391b47eeb4c717035501ea33d1f6f7812fad10d5ea4651e7a6e46268258c61419beb3c3e321162a8b2214bb3e2643c3e6b1f5241c1d5b50687477c74952832a7982320f5982dd076eea6650a70f4fcf17ef1b8fcd4b1c48c5daedb0008ca936c90869ca810aa6205288a50f6c37b1a119d318ade905075db2bc81c6ca723f0f9b8a2d391eb1a4a2c54382faf27813cee0e6c708c8169e4bf5cab5e5eeb8e848d579f9b5e3eb015c10a4a988037442435725baeff1ab0f1ef20e070370c51e5b36ada146cd04623866b48c686c8b5e3ed97338685bbc6090605268c1175c766fe65243643b5d6171d4910f91a7114f453cedb990fa5dd22fea1d3e77ceba766431e47572467dfe616e279da122a8039fec24cd9f241e95fa56ced469a420c3174308e66ef248d4366072b8a621970e6c5f34c9d9409c5561c5eab0107b502162b69959000f1b630fdf025597d4b233047bc1ed5cdf2a39c413bdb46447562e6937195cd62941b82a4872b8a34f84e5dcf5b2b9aab2dc81cc4751f7620e9701d51dc8e89ec418e74e274269c22e54d6450993f16dfd9b663506f4d8462fec932ef55453915132b6cfe909b044a0fbbedc085f095953e9b1eceb5573aa82ef5cf2b5c931b0925ed450922b5456e8428161df79e05a8dcfc1e62c8b027686bb826e159a30f296688324102aa369de4661123baf8f24ef51a275c07a3116e96ee8458c09f50b7a84034c5f764d623b25374de595c1d5fc2ebc751c1ce2bade73416aab12ddcf20f490e302fbb9136f56516ee755cf91c06d56367d54c18b988ec23b305c2db5f9e8b99e4ba4284da7f2238a83092a040cd3ca87bb8167601656953e5ba1db4bd06a07d7c8f7e42a5ca5c0dcf62dc8d0c0bfcc83f6220e8afadccb7adae86bc620365f59da7b30a95757458a1b057cd0b6af5accf1e298968d9524b353a3f2bfcedee2e1daf468b3932acbc992db0b5265856e7d80cc605cbe8abbc24e3b50ed976a93dd98312779ae6958e4f86d302dee0d194def8787600fc483928e462a74eba28868b866c1cb3a3803d69b980b63116f68a1a458d9b9bf8e11508bf8d5e52814f67ab4e001240b377a69175f277b5e64cdae543bc126eaa3482286cc3258b1906dd107bc39c2f678804f4ddfc1684433a6c3813fcf162024e2fa8d9b6d3cc46a018fc21f720ccc1014dc5735bc836a2406a0833c917e46027c0c8cf72c9da1caf9b721f16dc5d409f43b7d982c2573870fea5c387189fde2086b4373a9046612e81a19b3206f8e5eebcdbe742e058e5b8102ea994c45dd4aad03f43f81f82e8ff5cc79698f5c5b449cc02018743f6c51689a89d7b060524a163c342ac831e18af45616cc8ec7786def507c037fd657dce71142397e2797d7e2498e4eb835feae43edbe47efe299135f78838c8dcc9e9c12e50d81df1a8acf8b82490abe049a681945137c9dafa3dfc771ed262f8deddf40f3c53b1287d8355efadab03efd9e040db320b2f84804338551c7cb7f35e10c124845b8451ab3cbc53fbee1f09117eefc1112e791e6b578bc827e0588aff910d6ae1c3d44279772230a2848cdc04ec296cca563e886846337393c5b940a9210daa8f98a8d97f4322365d780642884488a22052a01940de3f10a754d68cd3210589ec22dc32a7f410e7fb468f485fd4a01f8601e4ac1dd30f1694c2da649da2ac75bb0bfae2bd22dc470cc38184627bd425fb29edb20c0b1f7ffdb78598ff3d0578330d309ad46db9ea2e1febbe00a44d7e7593c98adf572906395c31c54a1cfd4619d9f81dc3badc71087bfe4f2b3520eca960118cf062672500fd44b80ed990f9d706ab99939c8ce630173ca930ce07a83b5b32fbb7d2cd1187b73cc45403406e295723f1de6666eb73b74b9fc4cec7c060a61c12d8f8fbe4e6d7bfb92f26a90d5231eed8829b0db142bf2984a58d1038a71c1c8ea27ac319c50a14905cd1f75421d20ec3702c813de22aa77f8bc3347af437c73a39cb7088236b46d0e61c82dae8322744dcbb0fe8315e17531f09d1de2593d99599dbd226d6751a1c9fd7a47d214b1c583cde6093359b1402a238abeecf613d8bc8020269fdfa10583720a3572599c9cd9407acfc128549c1c61c88a322447de69caf24351c3828432de6a3d2230ec6234fe3b53c53047a5f28ac325c7cca6b6b0a04826d7e1bcca8738da9c22bd150fba6fafe2c7407404e7d32c507811609cf26f332d207958d348637cb775b0f1a4fa90013e65bb0a7c51a293860639f7a34b6c198cbc0f075b0b672c39feaf85a45a2a9e5cb48f3da619de124d38fd2c0267b171a9587311b71893bfe4e11f9dac5bbeee73036c8cd3f5b12baef22cc99a994b2176c26db00be0c94aad47243fb67c6556dce362d4c6ddbca1ba03fd577b4ad50f569e0a09a3ea8454783ecae590ecb3a560bceb68d62b4dee41a1b345792ef93128fcde44d3e33ea4d74b1fc5101363a427ad33537689e1ca7d46d86b4bb89e772b02b545982babdaa10a9c33f57de9b4bbf4784a14e0e7baafb34cbfcf2b926e6ddac492c04ac9e2a56c9629f9dfdba3f495d676503f1985aec8ca5b577109688187e439c19856e85bbc40bf31dc3c68a9cafdda496c34a6242180ad31b0f44b38cb4b08e70809e13ac6fc1ddf491fff53d8e5aa955586dc5f4d02baf95eee0a649b220c4c9d8d17f95259ca1d44d988998ba17c9d1b138a49a00b9b5792401209b78a332501dcfd30590428c58c5e104882c2268324f41a9295a0223d71a506fc4f4c051e0435168170b49692c6663fe4535e3993cc0030abc90f745b383925061ffdfdecc1047c3156fe3774d7a2297512d5a4339b630cc6d83e49414a157e2d397dbf8a2f78545f761d955b3c4aec20707d6e01eb61acf3c738ffbd1d0c6d5b343c2c179bfe1b3dfb7c43886db8a1b9f57658dee7c063a05badd0ace4dc49cd6b6673310421ebb88daa16620b0be3ed029c4b8d1abcebc4803e7c839a3ba5018d758217bf4d0a99c5647f0cb4dfb9028cfa009f40bcac9af5af0ff980dcc48d50342dada90fc467be18d7ff6281cb1f7022d626480110af49fbd68e49011d2be8cfd35d309fd9542b0450bd1f5f2fb70a44fb961518e279e0629cd6e45a0ba1b69fb017e3b3cb6bade6a564ec41711db077e677d26848db8c0ec174866ad24045d802b58e0817eaa00682f31abe29fe29b445e62bb8c264efd872d8f102df007796acfbc27a91d1bbf698c0593773e0fcb8543fcaac4d7bce7a7810a040d4fc300210f81b575b102f903500e75843d504d5c72393080240333935d007f5ce31a6cea6d3339c9a869bc98637ffc9991a0b0e4554ac16fe1a1ac1cef3cc4540112b89c137f9f5ecf1bcd1aa93ae9b3ecc1d6ae77285cbea2ea2d66b13dbe5c90a3c72f884788cb28887e2d1790ce5c6885570e31f1c903a5841ba83cc6b445a54768974ac1fcc7ce01197234181b51e0788ac852cb63f10cc1e0d46d9f98f5e9f4cb8822975a1193ac68318ae12cd57658c9f050d334d3b66fdea928d0329ffdc8695223b91b81a68e5af8ef40fd67b1a4320147ebbd4d0be5926b9588661af650556a7a62253acaee2a206a3d76a80a9ce623a0180a4a09349889ff4a4e8f15eb7a0aa5e881110a3762e125a1d2e85eac76a5118ee57ba832c531fc815d1dfcc1327bc7efe2422d618a4ece5001ea02c48562161e5a821b21c985d85357f17b755b883505c61933896ce95a967e6e4b758755e94112f686787fc8a15238f407c6730c4446208518c9290ff50b4b5a3aef6a28402af2a52bdae3cfc7fd2ea3a40104746eb31b30ef488f6193faee5d799639edc48d04ef73c0f21ad9f4fcbcde40ee748d0bea1a76e05ea89e6f7721c91000a840983d1d46a82c3737ccaaa6e9e73ac9a65e45fa9b444cabdccc11779a6f2d80b862a593225c8446bd4965a5e5dd7b7f00a32c1e73bb0f86b3bb89199004d183c7321115f98c3a4d2d3e582340491b57218dc222c5b229799d98a3c9df8cc0d2e6e8764d87cc49ca03ab0a0232346a8a99cbf48645d674c57d7238876ff00aa24f24f99ecc360512c0e4e8278ddaac8b3d5901b520c7a390dfd1815faba006a8520327b45e6f2e43e31bfb1cef6e2c85957a71f59cc3083c4a17ea4d875e3d671b352841c2be7bf72583f8c3118e9dfba8723813a0f0f87a147d68898129f634992f1f737e4777f1ed94e45fd98b76293e227710b8c7c151e8ce6c85c7653029102f66c86c448720cdcfaae42f0b3b3362e2afa61501e376bd216a27ced116024f153b1e43aa686355d1b637f0874c3004df666a316633fd1d7dde8787a3778fb03dbb597763c1d1c0efcd954e5f601806425c520ac7231d49c4f1a7690a895e4e6de3703881b4afe9fae750561d3da10e113e2c668ec17a39d63178c57eeb4e3c57e3263dfd7921a8a344fe4baedc598bd280a9ed207d729d1fcf0c8e54a5c49a4c7b3f870e3be9b4a8f135cbfdf1839e70bda1999f5d95723474a15025941f53e666080c2f86421bc0832f469a63a62804eb61236f778637a5fe2a30646227273bc58c0e0a2b3d1cc54cb189abda8c04f6301e244f0e7c2c38bed3d4824bcf1b5f21762b3ee706502cb89cc3c8f38ed97cd368cbaa1ec6f5f4e5d4595f4b932eee213515b38b8a7ac6fb7d1be76ba889c7dc682ab13d4f30716a26041e1fbc4b89d591264d50270ecb3faa5a71752df5fb7f7150ce0d3252578978de35606c905038818f310add748ba2fa214ac842999189cbb23d09c565e3a7b64e26b6b6b5cb14b26c81262a7e179bfb73c929eb698e3a60e20613c3199b91c630989bb18cda716ae24af2b42dee00a2840d8b3c6ba82ac4872b0c41bf0eb453c7155bfec67e22aed45757c8c1b539d8961f5d80b68c88ec77521656f682c540be100671d5e65cb6ac38cc5960cd51819b2b2a55fee96a01fc0e4033d6e45c21422468f6bb3334a4454f90fa6e26629d9a5072f20b697fba2f3c5c85e6559e65868f08833c5e5ce3da90002ba6048850c2523a507341911b2f670c82cc70069f78e4fc93c29327737c1d3b5d5ec3e710f497d7b5b8e2151fe3b19613d4e945ec3786b36a5586f4d21248520945c1e8530f716f7e7d6f74545b49de32d0168551a278fc0c5d04988107555ad1784b118d60e2fed4f75b4f6ec835608254df25f64c6301f2371baf7cce08c81b9d4cda5873e8b9467c0c399cd6da58c4f841e5394339e374188fe3e4555ced74e12666d1167e7bc0a0dca1ba59988dba004b6c4f50cc5fe5c37cfda575bd0d5afd627e5c7475be0da090322583431b3921fea8eff3c4ad66cbd01536c8b593659c962e4b71254ef1e3b16ebb84f50c319f576542235a13567b6587604d8ae9ba2ddacede5e6e0cb7b36c51cf79f56006098d1a74934064db07d476ab9b468533247c69bbca80782a1dcfe1ffc73f771b3977e546fbc72c5abde923067673966e4ddc9b0e953d8e592a3e7b094b49f8ff7f22483180b9ba2e01599832411445bc6695f4b3ad8d8ba8451ac5aa0a7c735663b96c3849cbcc39372c8df1f0b810afcdb818dcf4f199455a655f2b8b5f17d32493a1042114989b882649c1c4bc896aba188bb3e64c1f5345d61148ec3b655b80e562b5b9534b601cd13794858c845c5875ea7dece57c86b134e389c8a8ebb1594462b218b63b00c6540450c0f828eeb9c458a409bd7c5fcf50ede506cd6bdc3180c05c2cf6a996df504179d69e222b38738239671245c652c1e5470c3873cc1156877b8357f62e0e4006d53bd346b9084d73594cc4f266d08642fac91c8caab2a2066142b1120f38521ca459183de91a003523c9d8539bf63c0090b53b0164cb443f581fa4f2a37c5a16300c03aa70b7a27a79698d57d908fa90fdd502e0956e26d3622278100575f87029c2eeed2a8da925497b9eb90a48a4814761637188b571a55dcd738014a985588b956dbbc6111e17bf8554794e2cf856a7e59a5d5fdcbfc7e972e01c0a26fe839e5b6d7cc4cdf4c72fa40af8ef6c3885d6a82ddfefc3918edd9116b71f1bd907323defbab23aced03e7de994fecb01015c8926ab24f46949bb7e94cc079c2a742d5719f09c586c492819ca8107432bda0f5a5799f4591f8e3514877e0bd74c79c80b9d8272fde7ae94a934487a3141559b07e735385146094c65ae3607fb49b5c463bdd89c906f39414caba68442c47e1b87e8b462f800ce093a8ea2d9d76595fed65c54757a40cb0fe493909787259d2018bcf501669e4209e8f4ec4f6758f9af44f01c58ea880b5a41a165c4152dc9f997bd1c8d83a274e235038abe926e19d4f146c7dd4f69846898bcb433b5a165046c05596e7e150cc4df9983f58798d65f40c6dfb1da954d7f928299d7d5a64dc0d731116ff5b7619b89e7db87886db1a1fc727bd7623588076e7507181b5466f76c26ffa366e72c8f6fa6e11b875ee02c60c35e74b6e1b7d406aa50fd62239e991b64ce3df7f71b539a7ca23b36d2db5d86a437a82d62dd5058359855c49d80c6b4af3a9bbaf9df53eecb890850288842b1974c8eb16ed0ded2f8a86e63c63b0138d8456110167f499273ec33598874781c2b6915d466a0314a77d80cc7ccdf00c2f5469e98d058a02bd7a876c3b08c90b71b51fbe3dcb4cf0b357aaf49bb199b472a93a56fad715596d4ba9cf4932558e77ed4eaea83e926e2fa52c86b092b5854b2f8cd4a7bd8e10fa1522c35a76bf08802c54a2a80835e0d4a0241531ebcfb24e4ee93126eb8dbeefa44c81b986aa4edb2cebb6f96403a4d77f9be4bcc8823988290da657b66ca3068a3334f404ecba4f5572d193fd64a4cf51fa97e2d22efada9ebe41c2306181e43d7343c640ccdaa6bf1ff749b49be4b1fa91ccc5456340b55f1815524b1f811ebdabbb5c29d0635d7c40e5d3cbc5c9c65a25a0d7ebbb15235eba8ca9b2f39574ec6d43289e587ee5530d685d7f8d9dc4161519a410781839f9f722d800efa7ca4f47138868dadb0b02b99a99cb2e0b43cc7711ceb134072658922f09ca08e8d3c2a712c4b303599062a25140516370ebe1c49b1a0c86f6c866183518c5d2b60264a674504120d49545a3a614c7792957fc224aa70896a544c2b88311077a48dbfae86719dd8bc01611f8a59f5beda16d45a930e556bbe9db3f04f5ba3eaf06de03b17aa1dd618fe99fafa76060f7f5866eafabb58694369fca4d04bdf4c0dc0cf063ec8b2743b73d44a4fd147234f8b6fba9d018852b078c48beb90dc6eb919fb36f73b59d7033cfbc49feae9aa499cb6b5deccc9a386451ac15d6515a8abf5b584e38a827db24266c4867c6fa0312dd6aa6db7d2a56f3c0a829396b06b9156afe38111a2ca4a6ecc69658ac0fbaaeef83ac559ed3900a9cee9adc6a2284090317a364116f54cb99162c959286fa728153aa27e1ceab99b931bff34cc4b707552ce034a0b8d5c3139c2c121460ab593a0d6d315dc500b553a1aeaec9350f3690524d26f2ff7a3fd4eb30d440cbdcdc5a7ba74fab6a9edc90293bf5fd07a29869f684db4275528b5841f65dec87a2fcbc27db99e735901c79e11fbb14b4654924ea4d68e5e7a39d28ac6ad8a51e1ac441d1417a1fdbf8d01c49225f48046c052309fdf011febfb042f645941b999c6d913b9f55e3b45da313b0b92ac77cfe24e01a5dc041633bc2329819272ac84b050af330d65aadece8af040c98d8bd89b0651f817b8de432ee084b600d8d9f6f1b0c1ad6616aa010d5b95cb4118a9947f035800cb4e3a8a7ece1323068855e88f67e46f764655849fe06b68c3b72e6083df00375d85d35ee506cf84a2b931a5095a875831878a4eadf6c13860a87186d74484a0884215d223189b0d41dfdd1b294c13f28f4ec7c3112b7652f4d6ea81d97590f0775ec49e82e4831c14744df68484c43c3c7d4236e809bfe65476a0aa40e78431819a316010f6a0ba6486e1b40934a024df4b074dcdd3a9aee58cab185332d1f11ed0722f3151189b91222120c5cf3e205b441c5666009bbaf915c5bfdc6410a300a10f8515886397bd6807d8e9b31988a311d4d1cf093412cb3de5ec2d39d988a01e065963fa1a2251b9f1a35ade6dce4bb0aa76306c140991cc74d57a080e321973e67af4afd5dd4c5e102ae4e9ea3d42ceb031206325e4aadacec5200b688b301d481be5973391b756d2a3ff7ac29bdcfc06d318f1d17385b0410b277ae14fe8de37513d8011722d6d28b005cbf8c837e6ca5660847d34280bc8c05345acb091e42cc9f5e075c734a91b39619e34136de38b0cf3da60e114200439860c451723bafbe0583af29e800b4bb245119dbb2a9261c66de780d41c200f931a5e4747383837cdb62675dfebe0c0417d3fc53c2e37f1240816fe13b635a93be447c935c394ec20b77ed7f8b2836326a1c5c088f1387e7a1720bb7a2169cbb9314f89fb0e6e345441ef7a03555cfd7e23c610856211a1198446ff02453e052e2401515583c7ecbe083ae6fa4d3982981a9b501443b195d575d4a04b3d6b196837518b8aedf892afee5e250f554145f67c376cdc87d780bb9249b2e4942e62a5ca9c862caa3ac4986eafb60091779818a90a91d2d874079c743b39981eabe48803da88b5f12cb0448732474e3d10366bd1b5b629a587a820525a39950aa8b2d49bce9a4dccbaea928c50174d731d46763afe86d7fad46f054bb50450ab41547187f0efcbf367138f0194b657766da47da7a3aaf6b15b8166872d6daa726eac2526b51600f585dce01abf2eb0b0067eadd4b23adb8d8e083c7fa735a4dafe08cbd3a3c3532826324c4bb7dca5d78b9952ae2fcd20fc5190e436c9ac60e2d85572f4b21ea5892902dc09441b6542a4546b90c8897b880df1a27f2b13efb8b91d333e8ba9eb40572c60493bfa21abba381ba76c34fd923c54136f76b68d6b1d90791b83e63736c25f9e43aa87fa02a9447b2bcbc6fd0f6d651daba727e32aae7df9837bb2d33aeea2ee1cd3ef4944d5136a0d5c40e1449ef2664d7890ae80da377895c42dc741713fbd08aa42b1e9ca72f0f719e7ddf138fd82d0e463be0499fc285e1c6b554232b6e47b2694a4b0d805bbc84264e4bfcce62745fcd3b4ece14bfd6b3385896c0cc7532604017040580266bee5f2726eaeee0280d7e49c5db3df14d2cc4974ee067d0238db494094103966f90bde892b76af5b6a754e6c36a69c0ce98205d5e505e406f3621d2cf0984f5d0298df8c858425740cf58803e64b72d0b8b329a01219eb48bfa63246fd087015f81557a5f5d44e52ae5ef7a33a72289490d63b238d54555cbab8aa114520717f33a49b79c7e98191ddbf22a67149f8aeeb0c77c49203651b50d2035ac3f06c20d9e9313e954155c4bc9794aa6662c5b4116fa2e3337c2b6ba2a6744269984077b48123b0caf4c0f1dec359fd70f85de4d997662c2231282aafd9b3d256cd48c4fd941c798e264f5b1dcb33bb1237eaa972732d01236ec8502c96ea95fe41604756d2364e4bd21401b76b0de327c562ba316d951232ac5ffa4414e754b573b06ee382061e296f807339ca11219664d7cb989758429fc04f59e2e25170504d038643d0c444931a2368a3b392b5ce30bb116a6dd1ce187ee1e076d84b0cfcfd6183df99b38afe698bcea6e3b5434a6a763b940018d583185e4d8ae884aed6c58f56220ce5fdfd269701614e64c58db7d5b0ea474ae27e5783213e03b33a1110724228692dc080213858c8d7bff12e47f6c9f43f78a51f8795d65927e4828d3bea94bfa9e85e8bee95e35077a3962f0b0ba41f5a3f98c3af9ff24eea6f3527788ea94a210e0fb2d1ac6a371c9e6183dbc8e8c5fa50ccd3384c40a77eed1cc8382405ce76d2dcfa57d954d5ecf59857ec3b4cd4ffcae96257d39deeb75d9b8ac194cde5c4dac2cc611cd7f11e47f6fc2c915501a60e5a37495e18aa14eff3bb3db92b92c7cb165d3f51c4ed94ff7ef79e9f72462a6e00344840a8109399738f4e3c92ae136dc6efffe477932fd241916be0b42697815375ddcaa7f78ef060eaa2a4932d4898ff57a0a2bfd9c18550b7ecc940eb2c0718f44833b5eefa548ae8c976e3ba3c7d9575d29858f59a1ba0061e0e27093bb8a240972568c9ed4dcaf7cf6e59d066fd53f86024f2d3748f756edb841b60969d7710a5839ffaa1c3b716778c7731466461f03ebb4ef8405c0ebf7500f97f99b0f2a42da850a735af22b7a44bf293bdfd340d32615f31047e749e900cd58f3bef7db879dcaed2105ad40fa3303d3eaa755b1fc1ea802b5e8e634e9b22c26c841b496e780aa6a6878b43977bafb0ee53764e4fd3a46123a1bcf12e9815296194e8f8684052c9ca77422960ad769c7129d6224e860b6cfd9c2aabf4f7e6e2ba33f15e543300b59f1a904de3f59cb1b43e534ed4608125635370cb033d3c1e531be06109e904b40fa2513f5ea69b3205d37105b6c445f643c05804bc8fc852089865c435cb0ad9fcd925d264c7c79e6715c38cccdc5339a94a89e067e4f431423a4b33aaa0cf9ca6286d5d703919579576457f9cc7c58ecc23efd6a7d78c53b205802dab6399a734202e4392f692f9d9eb21ff759f33fb9dd86edfc98931aa27c64f2bdd17f0ebf8a2a84383d1fa3ca33a8f5afb6e2eb2b4727c0e7eb48da688b9fcc4db9c63b01ad2269f5a2a94435566862644c6d17f5eb9fe6050cae8da01ec497ca0b77405271797be8cd41ff8e544a2ede4b255fe9ebc6ed5a6e11387694b965b93e7ce81080d8ca4361c96c8c71a1e15865aabfcba9fc3330a19f613c5de51dc84189d33d02b401561e64b24b5fe96e8fba0c713e1249c1737b5c11dd65c107b8aa93f7f608ecda4affbec423e1d8480a24a5b978b300a93d49fb71a81483c4f462b84cb6099fe3c9011f2720fc798d311ae0f1a589fe773a3c39e29ce8f1fbfa715a80b0b4dd71e5aeb438e0945d2502da79f898f3f7e1a102d28d9eefe9b15bacb969a031dc2e1a911201b734b8581fa45d7dce570411e6bc0302ab4950d1b98566872a679ea7a8f3f7523acdf1318732546327372cce2103a7b1a06194cb5dc6fb25e9ed369b4b401159ce1f7c509aea4ecfaa0684b50a2c0d48e7a58123cd3de6775070a7fccf9e71effe8b9672103afed46b040235ea196026c763d0c19cddd5c6ad93b95026092a2a303fb661a60f9f3538583066a4d4037de3c1c5972512249105429503a868b0057b02532e3db9317d342ec03d5b595f49958eb0045860f1e119b17d57281050d3e42ed10f03f65e6219dc7f9c05b7f6043ba5b68ec21040baea9b6e089130310d12a3ad12dc08b69e87759ace55833570e3cf381305d46b40f3210b528f84da5bf97d7f096321c1c79de65eceab8d66085f2e4455ad67269136a64d6251ea84011b9a3b2b9878cb9f07eb1a479374518e158e6782d88c7de9f03f57e8cac76db94e864b6a27ad6fb90917cc5d86d33c430ec5090c4dad90b343fe08101331a3cd3ebfcdf61e4596b271698e3e62a88807ac0dc31c890ce5310cd1e6d57312b8b14849b44cdea94a532382ea8a62ea64e77ad816e9d0d06d174b811eeffeaff827e397f452042333f08fd26152b23aa6a8b5d66dc955a35bf543c0e2b86b50cbd2e4a2296f86dad50ecbcff83b0841ec178dfa835b28fd5624a73e3ddf9621f05e410fad25d6c32fd75edb7a97fa8bed8591160d8790f40766d1c07d8e753ff0e998a48e9ce768d431efff23ee56c7168f2a04d90ed82fd310ae6ab34ee7ce2922581a2ff74deef97bb2655db2981894958f3d30f79a661e6445956841d77c661c308b42c7f2a7b88ba0ce820576e16dfbeba9a8c062891506439f37b567e23cc30892c75babe22bafe4d01abd515d168d32ff8fd36762351a202cc998f0f9fd9d232a5845ddbb053e480bb292f224e3f5047179960f32889b9c5be05128622e50e88267abb6319017e534efaeba7174eb4069657f3325fec91af4901b5ff332008bff58d53afed94928a32f2f8de499eaa2a77bdb9551c2e0a1c4ee7b0c8cab19355895a35d0c69bddc2dfa2296ac1025225a0c628014e0d273e221ee3ecfa810876a49dc09221ad88b7372eb085712ab3e9a445458279d188135d35b74cac5e9284409bebdc97f1a74bc5adb2e26a74ac78bb4eb215806ef43df3e4e68f09f98a7c9fdbeca23ec6cc3b64d6cfe5048b84a8b5d86d61080782632e198f536da9c54e32eaacaef6f594882093f5975894d958773f383c01ad91e0acecbc4f69ef0e302fe583ee0c86a104ce50e3070d108a9bb7dfba722ab9c1c070bfc2eeb049ed4222bae07ce911dcf303d4bf22a79072092804e07d5c8092a5b49296382c4edf34ad692aa1e2676f913ca95099fa6ee447095d45e393152cbdd3dec2b487a68727336c73a955a04d3a1ffee896e06f9270d35d5c8f14732c111edf224d1a6808bc99265486cb10e48fa99b1799b58837d9f800dcb15472b7bf9110cee1dbe4dd4514ead9582ae01b256a5c2230354d9067e022937cb78639884d15d370e891e35026eb21c2d80e54660a09f03f1a91be80af691902562aeecc961f4669bae64a9ee88d818626ab8c93305162b6dff3da4743a38f7cd5f634f56c10daf5d8d5e198a5dc651c7660b8c2a41987a3048866d2b4283cb34c0ef20b158f2d6a33e77dd232cbdac0d17ef1385e5eec702b08707f9388d75b895210f47cf2e6944914770d75ebee781d7d518f414e691ce54169f6a319866105843aaa925ddb0e238f0d23946ab02309ea5181b7236ee2d8487abaef4241c4557dd3108b77eb18829b452bdef12a38d693ddf072c3ada8030066324985f84cce17edea08a039666a102f15053265167c49c8457e8d7d1104fd41664b306e2335ee81738bd0e644ee1b1be7e64e6ebad7b121fae6f4e08cb19b069e920bf059da7c308923f47014184a0368231c4cd701fdefe2353f8275a44b613b935e4a43d184101bbf4a2122313a233090061e42b125697dfa4da8b86475a5d62787bbf634086e57d3e8a0c391f6cf72bfd32ec65f000ff8b593d776040e6919d027a08f3b88f5add8e43aa813255218839c24dbb47a22825b0b63ee0482f94f241f5ad1f0ca0a32ea85e9c0006ea043a68c8a2eeaa7c9dd7e71db74856407b490488ced3d7ad080cbf34ad6e70e93926061325fc293ba36f963b758211dc31df37bf42a6a1844cecc624e710cb102a43c780acea4750afedc005f1c5778b0e1fae48ddf9afaa44938a209c3420abc1813b13f992a3b3574196aa9d27e5f871cb44808dd4a5bddd27ced1627036910a018a2f0289fca5308cd65bc04d6f39bc9b8547b0f19cb48a774864f4d6ee25a6c44ae98abb07b11ec6bd22740592429b4247c7f051d8923939c0e01346b01aafd7c3a515050b53ad7c6b3aa0633da2ce8345d14759117d9ad55aa958a112b34860b1b8e82165c2305a8d48216a7e6478b0d4228c006005a9c2c4a2851aaffc010769fe49082e6028a68558cc92632c99452e4960186036d03a203513f8f5c3509d5feadf650dff976458c47e9b3461a4bea5e3eedbdf7de7bf70b7809ea5df256d0a16ead887c5ae8feeea7aa28ad1f17beab2907ab0063466c7407c56f1ac642b41a02aa85756b3584532389621ef66ecc5a8a00ab3762369c3c979e6b2a3e614a030cd0c29d41c34b0bb22abc644fa03ba3838a65872c05d6896b2578b56284a6406b1ebb44b7684c995a1aa1fc04460a518d94b34237ec7d7d8f80c7c1b0a01ad5dfd89cb529c30470a8aa993c11a23165822c21334a516ffabf2d2f4fe1dbc037aaa3dd4ce14b65aaf12abd77ef5520a9d0e9bd730e152f51a5b7dad76d54a90a2805dffb38dfe37b6ed8fb1b178058b75433193552a6e59e5279744a2688ac664c048029b057a305854584d532e97ca730d37192dfed2ebbbbb2f7a63381e4aaecb2a17ad32634d59bfe49f958b7521325ea8fba95ded86dc9dcf7de7bef6fdd52cd943547dd52cbf4f2f67408cfc92dddbefd752194c1d13767f7de555925ab7a2b0929fd00c6676dde7bef676c74aa2e294f7e5b1ec5ce78ef7df40a570beb369a049716c3db17550c9a2faf142a9e998c045c60af31c6ac5c58126812916b67404e1dd76d34094a44dd46b16d35c7cc88662dd76d5409857fae40dd46bd5ad41f359207c13c903be753e28083711f9644dfd870cf71facb333de57372c83289acd377233ce539b3ef0b835f8ea11f26c1873314c2df65c6cd24f6e86806ea563aa352e2f1fea7bb102e628d5a00d8db0b00eb6c996f3841609b301ff08800c09690f19077325fef40f69c1fae694ca2dd9e87ab8c0e755090ebb4e6c38e788582f1b881d5e1eabc91f36c7c5c933d1d7c741e5dd9158e3b22b9eb860a076b8d98a5af19ba2c9815aa17933c6712d3a4ee24868fc994d1b376a9d839fdf04eec5aee6cb8d941fba43168f8963649fb4758c8f2fff0f74b7e10cafc2b7994421fb2b0eea383389bf89d79bc2f6dd6bfe7a08fb4f198822567f5181c1c883a963ca843b8c7fc2f7164a1e4fe3d3cc4e1e07b96480816e7c0d99b8f0ec3806030e0d950f63e5be2a3c3fff36f12b824c4933bfcce32712ee1dc242d12f79e8dc39348b1f1a55d3f1cdfc3bdafbcbe8bc8f9277102e6a11ffb8fd95774703071b8adfcf947a1e3411d411249b02dedc319d2267f60be1f3508f3b358cffc8520384321fcc5588844383a0f761f3ac8f42c13e7371c90b48e8f38ac7f57bfef55f6d8eb9041d32aab05978f5b920e097e2a7efda13a1461336d4956726f5f0e51aa1cec76a8db6996a84612b9930c4c47cbad9d159c2e17cd93cdb0a25479e67e68feee2df7de72dc79d75dbdf7de46284712e9cd0c962d8dfcaa8b4b862348e5dfce39e7afefbefbe793e39905cfbd73ce39e79c73def9af5babe74987c12b8821e8455c1fb76e04dcd3dc07694f23b90fd2dd7bff79ddb610c4e0767af8c65e04c96b4f6f1ffb2ef27a7a23791d1ce12ed8540928bacea2683851504569d0323e67595c4b2b5862f4962a57520e82b4407d41c9f4ff7e39fe7154081bef5dc4fce9b978b5534cfb247e216539efb12c0499331ef9b3fc63ab154630a861c8fce9b968e504e1158543fc59feb11e89d5ebf5307f7a2e86857031e601325d22d1fa427a2eeee94c0875a823f8bf146d2aa556495780304212b1f119f8b3fce32c9890b52e62fef45cc4aa2ba27d12acae10b39cf788450532e68c47fe2cff182bc7188624a4e74fcf45bd912fa8610819086c140e317f7a2e569d6278bd1efe2cffb8fa03f262cc0364fef45ccc23d9fa18fe59fe31954b44d617cef45cdcd4a4906a07a002527f7585560cb688ebf6eaea8bf61aee2df2f95bb757592e5c37d8d311bb10b830d72d04e94db7340f4a2d113983cce0ca0c747fc13d06e9d64ec9e28ae336d5b765d2479426c07cb531a92a6d46267cc4844d121441b6672df2886ca1c8162cae6d91c13de28e20e56090fe41ba24487710a44d08d23304e92033480789821ab85eaf640b619e7cebfdbf335d9c8b2f97526f28b79a422bca9adabb6736bc4829e160924e94024d3c4faabdc12ffff8a334f3c868bcbcb02a91e29a4d10f8576d82396ad94a92bd2cbc28b9e8dc70e2d646577bb76cd380a639cdbde0134b5e9357af54091f0a7bd20fece1cf67f7182c721a3917f9f123fdd6fa81909c8c169aaa4eb6fb1b78ff59fef1fbbeef9bd4dcee4ccf45eec4d5dff7cbef0b1f7d4b83ed464c5a0bb69fa598ac89ee467328a7af89cce4f5ef9556d37d6718f63d4683ff9296f5a6bf7128728c22b121cda891c6f88e82162d0e52f052b2854198cbfdbf7b707c843a6fd4e0fd33307f7a2eb6688a53abe922aab2dc687c92f9d373916a2cee2ce73db2a0831373c623cfc0ba194842facff28f9fcc391950c390f9d373718593ee1a85434c31c97579bd1ee64fcf45292a1c0c0f903fcb3f8eb2e671b17ce1fce9b90895168735c361ff59fe719ddd950f4ccfc5fd9494b3f29d7bef83fee82483174944383e59ef9e3f3d1751d49b8eef3adc3fcb29903d635c507c5cc8d89921ba80138461f559c9a47a004db68ff37bef77efbdf708a34e5b09e36cfc755bdd61a991c6922f92b5a5e90bbf291c96aa9d873f0e52ae7d737a604c2e2773bc1a4453efbaadea94a19508df4dd3ecfeddfbe55d8747e8bdf7ded3ded331ddf9e69b1bb9df5ea7e6b3d49ee6de5781eceab7461a4bfa680efb9deade30e7b39ff7de7befbd53c562841289f30f4d3dac91445a68b8795a1960d1c0bdacec0a18d1af2ad43c0a1282d2b93bace50dc54c762567991501c94809a3cde5c8e77b31a528d7b4ac28f4a87d20381dbd106b5a91753737143ed1ee97ca11bb77f78789372ca72849599bad197c25645ba8e0e8548d9223dcafc1904e0e5ad605d20b2995b8f795dd4b6ba16675718b4a9f43e331aedba854458d34c60d853629f879ae37fd6da8c98b0362533bc145a467c28eb20b25aaa84505544bb72ae4d93095d4a2f2bd35619ff21e30434ac20b5a3a9963c1e2ece54c3c45effd5dea5a1126c513c896136685b24233b8217763ac6e0cab7ce931e9dd770e6dece2b5d6b7026b4ebd690dac29ce64224c087e5836e0705ad0d9dca125e3be963a707f5b3094cdb0ea6a512e85ec56303be1f57375aa3eadb810526ed5ddd489284da8b414a984151db17eca193a2818253aa64fd30e48464e8f8d6f8e21075cb7531568933b177693a20ce86d4696953bd7eef9c545f9ad498d89294df1d680b05240c971c99d5004f872d444a7a473a9f9b1425bbeb87ac68da0242a438b6922597df7efffa2a0c6769415285da113041dc255f1d530a9a0966029bb9fd81f522e19ac3f38bfbaa7e15b8da732a63821a9c02f19455f5a2148b73f48cfcf3cefbd0d3766cdb040b2302967905bec0663df98ec84a4b04bb7c5fb5bc290c9a1a6d80b2a8bdbac64983396564ec28e825c3cd96003a2428be6ba5ea236061062caca18b9c911a5080a72f94c17e7e213ef27dcfddb35e90e5453dfc90a0c210fb7c6514cecae0ee739b3e4f2f7c42e2b8529daa26209353dd8c85e549548ca5d9182755b6daad5c3baad36b142295025d692bac26e70adb96b24ac153d6ffed4e0a466f9cb74d505a8ea02b4adad4dcddb427b5cf8447dad3d6b84e0baa596b514f9385ff80ffee350b7564126fe7c5270d1027954705d3532ec9d8a1a4451b528d755e3b861a3c9d2a1c82cfd1c1dcf39a76362119207fd8b4efce1bcbe0624c03c264f9ad5cadf5be275d382417a7d7c2b4fd8a6d7bffef56e918b94c82eabfbecb5e674cc3997e31f076d2bcea66448bd88ba8262f1d4e464d4748209e7863999a53915157f4a78496f4868476146d6a22a51d5d0530a241441423a41723340722b27029d793f713e6a3d623c5d3b593ad09c281c2513286e786c9a35712dcd38149abd9939269b0c590c1666eb45ea32d5b2c432b4e2b3b451817b51c2254bf425eb526c0451cc82275f812e00adfe9e7e4cd9a23e279f89bdb718bd37659edf8d3b3cb73b1a76607530e8a87354724e714770406f396e6ecc36b7a50dc01a37d8e0d6d26035b1b42bda168de9d9d3aca9ec882c686c47ac39a3cd25ac2d09969571f7f5e6958615bb5ebbb6624cad4f184d2f8e5c0471ed6c35b56cb864d9486265ab77d4b7ab342bb1e955ba15ad31fd2df49941130647170459b0534193821a2e13d4484a908de00e82b707d21c106be0cac0d602d392a7024d091c21103462e780a608361712b6e4316bc05d016f04a419c506b88e6c894ce9674853882301828a3b013441acb900b0969cb31fee3cbc81a411c53a5c3fb63ca6f2b3a389e3884350bc336c7ea1da0baca6fc80af9ea7eb6dfc38971c47a0edf948cf4531d9755db7e438c28223f6fdaf2b22bb34f2c7ae04aeebba9d3b90c655bb34775dd7a51d705d07b8f2cb5dba4bba0b5f1e83058bf76f676ae945dcc922f39bda7b99f7de63c8bc2ffc5bee3bf17b3fcf2927961ecae1ba95c650a99132fd0c4a6da12eb7eb8617bebf1cfff88596e68a579dd8d527ea665d4240a4d45c5e955a56213dd373719bfc514d7362d0a69c512b88ad82020d0da5732d4ca668180222633423c50b4688ab6a2b1388cac114594185e06e40f1ceb55191f6d2f25080aea2270428716622eb84d7de5e5d5ed4068e0e61bd640afd6fef239d3160e7a4350be839634b025aad0f63dd72ceb91cd51c40768a19316a11f179a16d58425a42f8285504d08b29c2b904005603e2aa0940cfd4cb4ccb47bae728e6834ccf32b16787e981eebd37d59c735a7621d83408ef9cf3b78873ce8f34fd875e887d2427a7430e0bf3231be331f722afb5748cb170506f38dc6013e3fcd00c719832c2ac0d2c07f34d98c9bc26be587c8f8a4de779e1266872b67cd387d38ff24d1ccc7cb3b6d2f986d2b4cf952e397aa980a694eeb03971cdeded64dd7be788e253166155c1314d7ad58956fbbaadeac4b9fce572b5a7639ea53c162f3462f0c49975ec14eb52dd32f029cd07ad811ebb2c510f96130c216bc74629e14f455a8d40ab568b8ee8a63fdc6938fc7f37fc5fb92bdb56970dd573e8e76b9fd47befb3a9128fca0a67dabd7339dcb40d4c15613956415a46494e6701811b00d549058fd9a8c48c9e886606640700631904008060204681204aa212c70d1400071fac605478446c5050481209c4c58030100a8481214118088401208662488eee389239dd00be5b346fbf2664dad4959b426ef3d36e12a3e69c69d34a362dfd3143123335e526a9d3f4bc9b88b83937d56c944d5bbf09326d76a52629a7f9b59ba9f0666e02666b11e6d26f82459a9bb949c86dfaae266adc9495361bcbe6e56b82459bba5353ca69fa5a4d224ce6bc884cdba279fb376191a6aedc2c749b9e76131537e54d9b8ca279f9374392a6aed424ec96f9b5cf44859a99c8662bd1dcec6b8653da6cca4d524ef3733551a1a65cda642d376d5f336452e66e0a9394d3f4bd9a54a829136d1a89e6a5bf09993477e7a694d3f4b49b89a829136db2ca336dbf32c125cdcda959e8067d46856393e95b4d46d9b4fc9b604973776e16759b9e7613316ae6a24d56a2b9f5c00c8b9ed99d9a859dcdafd544859a336993956c5afe26c8b4a9999a25bbcddfdd44849b3293a6916c5afa66c22264eeca4d6957f3f76e52a1a65c9204135889d6a06f4141df525b832e837196a3a406f5982b9601e8a9261ebc295a34b9cce6e869c6cb9a3eda4c230ecc6fbba92535c9394dafab89869ab3d266936cda794d7069b34d6e12719b2fab990637f392665b01e6ce3f131cd2dc4a9b649ca6df6a22c54d79b4d95436af7e1314d2d4353765dca697dd2441cd5968d3549a79f791098736f564cd32b7e96735d1505356d26413cdbbbf198e6eea494da24ef3673591e0600ed0c36a3ac1deccb7792616d4245b347d46d3885fc103713f5e56280e98b62bc29c532722cc57e313a3d4b393ba20569acd8a5b71d8cb6e394e597778334da6f7f1b377d02c7a2a0c8bf4f4e3728807a9fb73a8edeb0986fba42278739d41d03bb8e2a7c9bc8afa82599048162a663e9a18b11d14cf75cdb8c92a8cb207abdfac596081af5bce65561c489372aa9dbae688b650a82c2a07aef53e3f6eeebacd5ae1582d8fe200bea9a949cbfde1874ed55f3f174b19c532d3d276f10568d1c7dc9fe44f6ffbcb8f2654db1347e40bd880673ee4b531443d4483d9bc072e6f276acb9eab50ce524e9b1f2d09e75ba4a736026f329ec2e85007e0faf8ffd6fb1ba995e0b4727e788ac285599ef767a62626ab47471eac597ae632aded3752f92782ed7a2a80d74bc2299389500b58d550975faa36190b78e492af8f1d9890b460a0a4cf862658be95b123724c8a2c43b9a93b7cf67d7e8131314101d12c4ed552eb3dbe856a120958faaeeb8913e7e2ddfda1f20a195f0186cb09d554fafc0a2c77556af9dfc96358b049513efec322f222bbe05b90bdbe5c2038369babf365a2354f659a889607fd55b8500cb129b7c0844587af94d239a08e8073f4c86ccbe536c5842887532ed943e35a990b2097238c5da385f0ebb228b1d7a042d472ad4bea0597342cae2a20645229a99651667b80a07bd70f6d8b1879eed078e04ab1bb2c708b39901d4e9beb62be66f1bb2f946792cdedb518f86343403f4091a66ba3c7e90119177f8d639f33afd7acf941e89501f075c9ecbad963afdcbfc0b58649933b7c005c0277f67e2c7ca0fc1bee8957270801fec39706669a38755ef8e12b31decda15ae4310fa4a1a078f5bd8070fb4eba2c9974ee34aa410723ce6dde7845290a5038de09d547961ee51c10eb3adf6cc02dfb1ebf3c4cc7568bbbafa18bbe30edf19bd055b9b2a259c1b5e3dbc1bbafd941df104d6cf7b8e8eef1e3d56bcf7d6f75cc0dad4060ee87491698010f320276834be7923b5af621e463779d743d6f1fa2be281e4227ab3b427290514a61546e996b642a69e6d00929a64b6dafdb31d31047df71f99ad441028cb19299e4e105b8557d23c005b5bc736d914e10cd3bf437d9d72d2b1db0c70efd8268c477c7bbada14b93826ac4ae3dfe6d8f6eb405d18c433b9c3bd5e8a253c3b471dd960fa5961409305eda6c01c16f7d9e339aef287a0e67ef56b5c85a35fc222cf61a8aa08bf2b64e7892d2bbfda477aad682530d37c90426a6df1d2c9ae22ed8adc6fa79f723483c998bb9f8c4e85b357e3055690e0c59858fcd8e14a310dd6305cbde2923b939d29ac6ea2a075904fa8a44cf42cb8beee4a13b2a56ff1ede64415a900c380bd14e5d60ef52220be08ca8558a79d2bf53704e645714ad8204ed4960d31cfd3a91120d52163a099222faf273e322417bf9cf94f656b4054a78815bd693ebe28b12c4fc27f8e6d2f57418a7a788bf6a3d56bf9e3f5034fdacff7f1d30115fd768d438f95d673fc2170a349b028ab4361aab73ffd6d3002c379bfc206731c5a683c16dcaab24d36e7462dee0379605245434ec861056e30652bfedf5c05103a9c6d3154a8505541bb7521055864344d4acc04917c64881b2c482a3bed3c5749338e161a41f8b8a0062bbf014e67388d248d90cb8396a50016a98c0811ad8358820e4344a5f198e775e3792de29dbf0632825fa41feaac5b600d3a8cce527fa7b16b7631fff7dcdfa6a9c24e06c8d42d9dc5393c7219c0532b83791b5fac3a8bab223e903c41872d80d686b9dffc95cd80e57f8d09b91280bf17b8689a8660446a3142b4bb074e6ca48e98995d519db88eb67ecd3cbb201eff9e22e05bfa272cd0b451befef2b98ecb696b58f367f15b902c54f110a8eb49408ff8825e565e40945f96b408af7d90f650dfc16e565b10f60fa437b876d3a7d2bf2899164494e411e12a9da4e0a278aef0498290ca21f75dda41778c235afa2a151570e5552006c94d988cccae21be79ac257dec863a933749eb8b6460f9b9b3893eb4214cb48647c29d4d6fa9e1c52e410d94430e203104230033e2519b5ee6842c85e514bba120bee8dbe31a0c736e8d8f9a166a5f0f169cd12e786828c419bf25f76777ebec41f73c447a5606fff65e919bcea32aa1c541a706ef93f810a6b68f09c7ddb0f394a17a804ffbbbaa173a19f75224e420a2e486417d4dc27e9ea6730f1beae46cad66ee05531003e64c0a625ded44a3cc44b47c02e47912028e224ee2d6a499f55f1a5abcdeb7027694315ecf231729c2cbadbf56faca50e34ec3244e3031b133e70f4c1afa8b5e64e6eb39d17023138cb0f7cbf781bceca17209cc8edfb624cb239dcac20b40ffd9a67f7cb1c1a865bd097e831e3427df50add2a17c918646ac8736440869332a11f8e1052d6d45f069e8084121b72eaca06f7c4e900caa57406690f20945e6b2f6f9017bcbb4d867cf1445e2eb7845b9c454b7e6681ba3a36c8cd51e66a6ca9efe42d59e59d39a8841eca1512bc44b7901ad4bba1d1693791991c42bf41a9a94e12a86e900ecba31f7347ed8c95b5878e24a2012daaf09c587ab610f50d30f010f439955ed48015b3aeb121298bff5f400ed805c4eed6bc8accaa073c36dfb3b9f581bf10c078e1545b77fd65560b8500e9b1e3dd2b38056fc0ea571bb08e6a430826db8a6f8bc104354c963ca04ed6df2e3f7854a28bf8ed429b99f7121e0418dd7116e72a4fcbc5161f67d43c1e5bffb9f7a726725c090cf4a2432eb90feef702cb2cf792814ef8e5f77a046a469f6f7ccf98711867d678b0109e3bbe4959b6935e204659606a6122d6ff97282c544d56f205dc56d73814c8264de227ffb6daf3ccc2dd42f5e409ac29ffac93ac1f6d9c031190c695e17e7ec5bbe35bf42bbe94550bacc61466bc7185d12a73d385751dad2a7992a4613e4e0646ae3a7a85d313b24534aa822f2c61b4e1bb8a3218c79ee81cfb2236c3edab34451a41fb444376bd42d5622fe855ec0e4be387e760fdb2af0e9c3d5e3bc4dafec564668aa9f25f45a1ffc3e1bf2ce606163f680d7b5f7f666adf9662508ea09d4e305167ebef85cab8375ae0db1b28ca20f62e85098259b20f247bf32dae75ce613dc8d5005829ee24fd9787890e8af716a5374e70faabd91fd6d8614704197bd75a8efcdfc6d1c2e05cb52c75be19852667998d0932cbc931bc393aab7cefec8e64d64144448e752aab91b4437f186969739d734547c48c9ca01d7e8349352e26e23e4b9420c2224023586143a45018088b9f589a7aa0670ab82b8496f2a361fba8047d2daca42f1eb311990b48eabf6d90ede124cc64d89b590a82842c4726a1d7482a69677dd8b1ad6343a25a294e19274dd0dbfce74b8c3668bca3b9f5d21c667edae8ca19a2ec243ddd44ecb9883ede90f055d5a6c33116791b6e95585513fc90269df23fa841b5fbc1d6e5f32548ae6ec366e67e3122af9c613ff0fb4c59e7a052b6f0d88aaf26a28eb800543c99802e09af0c4bb00534f032c1d2915b13d121d3375c5cd5e481a78ef1291a4b15f1a0e9e6c335a6d43d47809c512d55841ac67c503f8615f06705be14ebb6fc845189fa7517120aa30e81302eda0e50e724a96497d889994385e745125ed76c048fae8279053470d0f3a6608a815e9d7053c1d80c21a2dbac23df98c8fbe5498732a905fe451752f99a7e17ab12fb3d808501fc27013600e9e6083e9a75173c2cc25f4b1f0d50431867369033498aaf0edd43e7f368dabf8df07d99b4866bd59f966e9a6848f1deeca9fb211132c1c2e103980d48ff5317211540fdc24caff7eaffb88b50d4fc5b1fdfbb2ff34313eb7d856aad66feff66c149b0ec3152025438b259186b7ceb1ec48686437957ad6701f6d8826f6eca9f2463b4f0c351bbda30a86727853588fba6e77414792f07d8d54a316cfb17a84dab0cbc9d4c0440cc744c58c7924dced27aff6ca520be21caf68daf250622260556ec6b00aebe1e0c2baa66ba2b7033e4864d4bfc5d30bc16fd2f1bd194c6b69cccf645a60a7333d58d60291a771eb7376b5262c1369e0c4270ee629d58c77e2c11689c01b6ead5a738353a75f4fbe47763203f9fad4716399e1c47d34c7ae3c9f825424fa4d0b74eb7d62cbc7fb1079b5c3b9314bddcf403b26fe5ee2bb9af4c9e61c2b3604b9c0738d7abca83866ef4dbab83aa70844419a4e655c68c872a26018c1d6ccaf60d8744b36861efefd2891c1d3b244f1f102313a5968c1ba2a47c4c828f8ae38750f7dec29d3a8d9428cb369af16e6e70f598f58a48738211b29111c9434409204efca0c7794e3f23f7cc88d0aac0c2ecbfe16620472dc68f830f894b01ff9d150c82d08519996c598a950da22b2ac75892979816517a9b812e39b05b80c7cd237545e408ecda959aef5913aeb8a17354e88a5d888bc8a0e313514c0f03abe5b66db43689de6873c3880c9d352f1a44b076d3cfd10ba7b27aab51775cf3c8a84f03b7851b9831ff87caf6db61b60a647c9f665828017b70623bfa674fa32e29e4215fde1ca374e8374b46d4285452ae89bc052b92da9e47e632b4c356c689ba02664ba616d32d4ad4721e27380858230a7929b641f7750c444f51402ec9fd9b2e1252b271b486db5258b013ed719e9176d036e90f853bc9d6c81b58479f8927bfc73160f97b7865f66b0a47a108cc8f43b91b84f4151a7f0f2f99c72e2d5134e53bdc2bddd05a44cf961921b904c5aaef4468e4ae74232b858b52c3b93c2b9825c93d6548e1f48ff3f2021869b08b15f3bac458cb0cb8084658d97a2b427898706b7a91905ee77105295cd9d41e30ae6d3d1a255ec9c6f921b704d782e9fc7b34924f0ac30719f58c5ced3d3e6656e2d6d8beea3e74b5d308bbfb4001516544a3d4eec773568d3e57b231357ee7b9688deb851cbacd1fb846f8d4268165d458831d88b7c45305291b5c88a2331b915208c0f2ad11f772703f09cacb33e3fc102b6a3896e271643d70846f54766db86e8528f1bd1297089323646a23f2406c114725287ff14afaea2485c3853894c9e3c2222a1411167e47a6e62c9a2effce23220901ad463c069f6941e6383b631727f4dc33dc18c824577e11c2f9079069e138dff49a1380a6e95ba750e32c3744aa4a58831f871cffb405c5f644c6c94e4159114983d1b4d182af995e443cb4387a2b5fc8132f4009511bb910171fd7212918c1c889cdb3b9ceaedd0bb13f2f56082913179ac81bf011236a0a362036f42d102c5630a40d05a644f0429a2e9411e6a0d3ff1b6688e17b6a956f0ca165c520ba6a1fc38bd0cd3049614851e280f050a3f6ad56df153443f89d321ce2423e864dd143c5fc5c137369d51c5134a6218a78c001a20c3743624101d1e6b498219e4983b0c731acdc0e467e8710c6ef2d16a2e24943cfb51b42d30cab9203f5fe1d337351cd21da0e95e09ccf20780d1d2a35c89a4fab9c41e356233a0fb71a3c8c293642ecacc391db54db477b2f88d5af8d93cd8540887e9f0ff160053511db65e921f3dd4a200e2d8cc74150daaa8f2a702547fe10371d39068105f2a1f29dd2409bf3b3de3467446cf180733fd6514421aaa4917cf12b0189b678848b9ab3113b5ccc9b450ed0aade232d8a844f55418b069edd653eccbaeb58c9e206ab0064d518011e5054067686175daf358094a445353024c3fa77e4c1be2cb8233a21d7ecfaced3fa125624a192bef374c1e5573771b1d44a03249539423236e582d0f535a17bfe2b22885afe4433aeeb42fe4ca54c90e4dd1cb0a7d5ad2af27bef0fee2aede1117669f5e4d2fff3e40cb60ef33842d210ede1f1bcc98a552c0b6f5e9e403c9bb957a44db15c017b7c9724e5bf333d3027c2237b398fcd111ad6c3e4bda931d893255eff057e75fdbb7b995c28a9de6bbae5bd37137cefa0bf159a43b2bd4e5fb3deaa56a37787c099c7208320af5ae91ade18e9bb3b68da538c13b8800c17dece8e6238a3e10c7715364f06cef0dbe606da90520bae682dd015c484ee3c76312a3b6cbcc3d180d7a2e042a06939b970f294dc8384bf599782d1bbc28cb1cb146d0d11a4dddd7e1f6e32133e2b641cb0120bfd51f07c6f01d2bc459342292eb81802d4e7ed74d3a1fd3fc892f1b0c89409d403e8430c72ca7a587260600135e39784dcb4eeb136753cb21f78a5d67cefa3949af547c2da385f845690fda3e93734c19c0dc80d79cb8741811ea017a70e850357f57f4948d3a06985df569a422216870fb482874148034a0fc0f063eec2665848841e5661ec96118d0c0e93902855299dba11278206a61f8e366ad6a2620f1437fecce6646eabc21f3b7157a354eacc7d5106f6084235dc04e40d2fbc6d94a90617b7e4a6421a27b31ce7b139209258b42ab32c7a573d28974ca359ac4f6458b5001103de354b1cb6ffa9706b4cf3136875eda80b6c811700e0a246aba26c0bb396bce6ea21e9276d0d26529e3b55839a3257814420fa720dac32552e75bc766a3772bc5760161f89f93360ec257802b9fcdf0f115da962171eeb2b5ef855c6740118c8848271af549990022fcc85909f96e48ccd9bce518466a9eab68ce3a560e7f535a6e9d5742b0c42fde9c78b4d2c438645eca91243643a1cad30f6088978d291c55bfe70a553a94e7db431db88048a880f311d576195d59849c741c8a1d3fd02a78bdd237be6d6d2518a3a08f264d531876e9cf71a988f4d1dc6c2e26511b517ea380a3874373f13753032833ec4e874320919355d6e9e3ae56463ec2f511706ea30ab8a7d94ef12587fb63ac4b61e6d117c08d529ce0fe547437939679c2f62659bba7af00461245863a8b3d6cca0d9e59cd5a1a6ec697a79ead8d3c343d85820b1d3da02d102901d1d3885656161877b3f782327b43b2a942772cf97252b3bd2dd1930224aaed8c9b420280f3134bfd5e8b754ba8bc50e7d171102903b2a0d61f87f8e89395473285f77a8a214cb2a9a3babb014c8cf9ab74868029474a6331d4cf19d77ae2e7375fd3603a0a0b2dc1ddaaa4ed284f947771bb17f6c9f95419e774a501a5000d9a8a80c7d09053c8b1bcdd0adbe4435d75e29d8bfd44aeb5e421374740923e5d92157eee20e1d475cab68b7d334f88e78f47e65e4ee54231174ed2a162a19188cf11c4cb4e8e3d23be89aee2e9ef0d5f936416ac9ad89e0545b9ce40e485b3d7917006820d3dda9c596429fb4fa3d8d227fe19f88a04711c3c63aad343be72c290e259c7dafcc6cda5301517f4ea18b43eadad1a3f5dff3c7cc0cf950f42de4b5250d29874393b858f30654fc56fc97493864d942ac48ad04133eb93a7be178be46f38a5ef0f3d28c358b383e28bb8f1548a1a93d652816eb3b2e755843d8560f5ad463e44d7660d034980b68dd55a66f2a1b09a429aac534605f9461b7b2f2d6b521c34d78621551973c577b19b149fba2cd0a01ab52611e89046b3404fabc40464c00c2f10b61eb04bd490e9a4a735ac45e7cf1fc57cddb56eb797ab1903b7476ef04ddb73579dbdf29ebb2bcc409f048cc68ca5c5b483ba579826e8fe0595dd0a058e5779094f8dda0f3fec5ac1f69099c23d21c25c498a8ab4a5d488954dcf997600aa9ca213f22d4b30691c589ffdd5638441caafce3f87f29068c03eb04c8ec999982ad09761c22c313a6f14d6e14357fd6814923e2b258006ae4616e8af2b45a36ec0aac4bbd1534b709dc0271a5ea6edad1be398696f5688f5d81f553328178344b1a5bf0330ad2cd604dc7b37f2901229a4a21443833766d624027f5d1c45e4ec328aaaaf0d56afce05d0f63725d7805d63ddf8cbcaffeca9d3f013edede3447f2de7cfc64ffabde9786baf031fd2f44da6124abf4f48c2782456367a10992fbcc9411fb8c3884392d4c35f7ab59825b880ee0be92be80d15f3024a626e3b21155ac4d33bdf0929b0be9f11c489f145a1216ae90868c4c761882240f2d53932b44bcadd21dd7014f2c69db7160a419429e66d7444e733db165b1c7364524d6b7d26492bbf21f8a54fd65c5605202cb4bc6d3228be83959b48aa430122162b13292cf10df66209498745efaa0ab726a0178b5a0157e47c2a91b88780fde1ea652de6cf2fca39415ac19e3eecdb650ea97e6d7e438ed8e71bfc57a118d6b4a7eb331792aa79cb6614cb4fdf05bd8ef3efedd5f44b8c341684724c89c163d198a96d27f0c1f289c577da6a0423848685969fe0bf1273e95deeee598301628470caf0f52f5af6af7467d0e7c58070f43306e338269138209c904bfb968d394ab3570e44882ab0d17c411e544c235448e16c52c9dbdc39196ebb7fdc432b3f5c263e9d9b1185663d57df65d7cc902f20e99a12e4c186937e6bcaf6b4b542768531bdc98422a61ca7f74e7f131f58ca7b4d6f158d665c0d03ec5ca87e25314c53e2dfd590a9ddc413738dc8dbb90a1e77e8b2f97e16f48c09e52f8f2a454b2ef67a19f2155c83aa9e1fdd9cfb2fbacc2ea79a4037603e282227bd6ba2a73f6b440e9e51b9081a6e2eb8f32159943efc35d03623ea32b529ed3e28e3ef97a6280d0a9f026604f7c1ab4995cf7505e77049240a78fcc34a8a31dc1a45e8558f6330dbe2d7430c4bf46c0cbe4db704128477af97f1be4f3633c004c757d130c96e23d3bfbf217bbf673c002c7b390c47988c489785c8cb2eb15e146a895fb3051597f76562289813f6c71ce18100638c89ac881b2b1ed30de78441ee8f2cb46059f017776d580f9861acef1587dc878b2b8bb12076731a7a19e05926f922b8de06b500560fdcec7287492160ece909c510bb1f2047cdd810006782296f7d7b120b6b9adbd5004341a792b6456f239250a1f4bd61502e46d4bce8b7d0d6251d8adb492e3d2d2e0014b329a48963c5ad8c496b7b06821f9b85441e3341f1e195f16b8a4ee828e0891621821742c3ffcc42bbe4c0f82a5c0ae5bae556bcd39cf10df2ee0bf10ffae6074b84b572c0520aebbc13211a406bd4d4054db8a0ffb377e0eba46e4089610842daf2dd59d7037f1b0e58cb79f301384637d425248d6f4fd9cbb87fce6f1a676faba08a0179bf3744cdf68beaea8a25df1f346af21891fa5e38fa86efcf6b513c4f2ca20df8060e78ca138a41faed1bb023fddded97321fd4508898d0c449c8865126a03ca2a17256415e6a62890e18938360be0f5095d283531925d3e1cc300b3041add4644d2b35edf42dc7e3b31b820ce7875ec72f34bc8391063f6f2fd1250e9a01c95b4750d164dca78a37dc827e38a1061b7806e53fc986fc716116d4fa4b836946f2929e8a3c416ec2c75ca5f4a5aef82dd47a4877acf5d2a5d3928b405c81df4de5f6eda7aa8b58b204598eff38f1be79e39b5194f7fdc38f72bdb2ba853d4064a694e6f8c673dda9c7bda2f0f77a33a405f70005d4d141a96a2a0a6b2693b18c7c2fea1b8e92bf7114787f4facb5d1d534f40769b6857bff8313388b89209fdfe8e3ed493ca132eb90b168ebc3448fa0680a4f2209fc2bac035d638d1afa123a3c46526c4a369e2b19b185b775d12f965c4be5be203c15124280fe0783a1c1f116d70d06fa54bc9a9f31615d1f7824f3343a9e31d69acd64f41bcebb5112ca3a36dd9a713ec66a6989fd99c2a34a49a4f51f4da1adb5c1196394919155bf9035f61450645f77942d4ee2527e656e2f1b8e5170764a158e19d4f21d42e83e0ef2b81e9f0ac81a176a79ceca28016fb48d5a69bab3421d7819ecc96eaca09c0b1b41ccd98691c62f1e657f52926d9132f9b53c4724a67ee026c4cc60cb333a500f438dd23300344eeb4a775dcac8018b4abadc46960f7aaa213806b646750ba9bd4efb4fc5a665a9cc45a3d118dac47fa09e733022ea6809442ae2ef4784d102d1bbf39c3ae02511888c27934d908c02be546e1cb34c6d138af7b4010aaf0528113e0a2c5f7180d980e913914af436bb06b12efea3ece6db048ea9564d15d578f90cc47cbd5c00c72dcc6b45b186a265c37468d126675a407b002a60da8e551b101106a6eeca3a2e3fe2bdb7b6f5c1ab09540e6c40952c086eba541cdcc8b70b885a09d05a1707c0ec7d7cae6b62e27d67649fdf918c6250f9f1691b67d07314f34580b9b76fb8c6277e1d536ae9aaa70c9fa3b37685ae78edf57623552309645b250d4a9927a7970f03d8f6c5a76958ec3758a40e8d78cc9b6de0f89b75c03b3386c4baa0609d3d1dd1d3335e347c106b16d5474b616624db3d8c3c1802ba20627d73473c0082fd57f89149e0c0fac285b80b0a601e961ec672652bea3719bf5a75590e66b6e4f2065928ceb004aa7b42551700e6d7517809894607c06924cd8e4165c80adf1254b9a50df2f0525884a9c12aeb8009904c4dbb276b52e26b666544e26b02f14cc0db59369902bbb551cb6a077e97ad55fec6c0b1f681444ca2463510b560249023b02366c40df1f24bac312f258944d5f504e241c2b007845849628b7b71d1daf18afa2103af0cd2ec75bcc1d5150b747969566e4e5239317d366dc4a6630be1ec66a55c3fefc33e6dffe9fbec7f1c2b79e75d548c337c75bccfff3aa8c00bbb7afec82ef8ea574ab2cdbf3a7000324d2d3f255d615a581558e62b25cdaa412644bd7af0daf7201a3d1427171864ca17a32e09413d2b098a2556e585aff7743cf59ebeb4b18d6468f8ea791eaff6ddedbbe81ee2426cc8ea398daddb5d65abbc7d3d861d45abbbbbbf67fa90ddfcbf116dd49bac125bac30e0fa720a17eb57edda979fc305eac680d30b17487a4a25d33c2284529473071274d93b00b0f4311f12dd5fe9fba3c1371f732ecf8e1be6b3a091c2fdedefe11d188b9cb3978ec557ddcb08f93176b77272948ce82a4389900921cde0f0dd54a08b6eb4d9cb60573ce097fd0c0cab62cd956b258ded73d9c937e1f42f30bd9197e7e86bc107f2e042467134747926920a78e1faed6d11718ab66c57225a94d7a3071b2b343d71f342c584e068f914cdd8365041d5a2ea910818c3051c0a9ac2d05590d969578ec5d91c8e347d19843007f3f043c3a70884b3cf6ac7262477cfce8386e65fd2d8ebe8df5bb67b9a9bcb78a27e2eec80ea80e872e664e4e8585dc480c772be2e4d0e250c075bd55b959db46b041d784d472d266d0e25854c4959ce599ad2853231b4bb11dbb12c3a22071221a3604b66382e6cba504dcc9160ec48b45171b17d9d697364b0b2a6b8a95745564d55365430533f596947a4346d141b965cdb06057ad55eac9a9aae46444fd99369b9624dc5298dc4446d82dc1893806525844f99bf44b24a086043385d09c9088b01c24e6014c1e1354721f9048a6bf000e456a32273433cdd199a12026b962b5a952ad2d6529e44e8f5b929d988a9c1619163ea4297de1e4847d29395b924eb93382996c11f342d4c8ad8435ac0e47280913f7fbd2912d45148d5c85585bfa977688248b6c455ad4b789ee0eae1047c393826ca1857596d080951ec84d4b9435db179024a8ef02eb7f39e5ca4cdbca17099833ab01e683902f159025105e6849cfabb3e8bafc3a7e148d1af2b2feffff0b0ec7de940a73141e7b536a89daab996021b889a93d293ef389854982a4e8cc27b347eda14632b2d6dafdfdddb33b5b079420ebf62102377bb6217089eed0b32680fe0fb81a2698ddcd5a09b33be052311af09db3528e21d1c3f7887e9f9d81def61de5dc50daac75d6295cc049e7b4426667943f4832bf17e9105a924af32aedcaba64f87e055e65f684448745f2ebe5456e63975e5b1c991088b73aa81e6c8b97e2fb62d3863901a3eef01c167ccf1d7abbc30b05970104ccce067434cfff582de067476048f41bdd347cb5463a406ba0a001afcbf1166f8005b82fd11d62953f02ac452e1cdea69b071812ad570dad5d80576b6c556670a266f1fbb56badadc90f01b85610e0fff68691e80e7fdbfd9fde323670bcc57f28a1df538a9461efa92bf8796bf48cbeb7d65a6badf5084917a3392b185e8e1cfaccb82569e9690742c78a6aab35d644c3900845a6f5920bc0f304e0e2e9ffde938cf03d67f4b66fa81daddf1dc745fc69440323bbd655baa030841349a6f60da609c69904b274004deb926b41c21641473651296120d44e98bc4842b878ba7cf8e7051071764f186a9a4e2a7e46acc07698da96a78f0677291ec0cec490bc5c50533b9a8a9bce5c377aa6db923a2714a40d4e0b16eba428072ba56a8347d8446601a1ccc4d5953db390b8b0484614b0c302dd98d89a99cbd83382b6295c9a9112c8d4868e54d7768b64daf4c1e91dcc444549e5b1f00839210bc8e9dafe5425d3625e468046ff5d648cc79221c3257f1c66c9cdb5b77e5c94866dcf57248f3b4461c7186369d5b1bbbb94e9f8d831c6581a3571dc81e32dbe52e667ac2fdeffd78e1dbb14e7fffdb1b4e597ddfd1d3f5e1707184dcbf835b9fef70cf6db43a2d3a1401251b9d67860338339b19d6c5328158d454ece2763fc02344a860753249373e683d9629cb62dda490c3eda2b4fcfa8fd7f779ae1dfb87d6fd7ffff8f14cc4477f8ff8fdd23ea83517c043a30fe3788a33241fcff1edd39feebffd1110c5f6ffb8e02fdffffffffffffbf1cc5e78b16a56da1b21b632194c10731af0604373176aa2060236b5173c64742fbbd1ae7d7d821c0b177752e5fe4389c6862317c4dbe75ce1716e4c90c95a86153d94a71c4d8871d023153714691cd6949b1b9f546f8c681a618d5c72d286e09dfbc608415a22c038b42455cf73eab0035f634b622e9670643a547aca402da98148d00435b5b7163e4d9b363a8d211638cb1c773439f4b2547814409e88a4b69878413f9abc993e6996c95aca4e02d8ff6ffffff038f1f4523d4fd757777777777778fe7c6b126517d7bbbc11db46bca8ab6f9482579ae34212671d9a757ea00d6b1ffbb61d654173a506bcd517cbe2e26f48c73d65a6bad37f27edfcbf1167dc3854b74873fadb526c14e6badb5d646a23bfc6dcff0fd1bdecf66f3c49ad2acd535fa81820574e3120707e3faffff7f48741f47f105e1a8e566acaab4960600925a36a46a0a69f7844463c601cc75ef330aa130e7d3a6a40d08ad20e546aa83d285a2a2f47227b62b84cb5758746a898211c2c8f214143556364d0366272e73dc9b38c3c5efa93a63bc7593f6e8781a73667a9cf35256723c24628cb163ec9f947376c78e1d3bc638e39c7334e79c73ce3963c78e3d3af45edfe79c73ceae75ce39e79cb3fe9cb331bf4663474dcb04da57f73e9f1c31c618638cb114e36bcdd75178ec5d955333fceeb5a41c9c16eb1b5ad902472a65216327ea3c586d316e72c18cd984b420a249d151b26518f9be8656a8519944915c6b84946341bb0e28c153311af09d3dbc767def2c5c200c4f2ab61595faf0c34f11aeb9e8d512568b0cdfafc0db81d5934b0c3b54663fb8484c264c040dcf16162868008b0f668ddef6fd398b38fb695241f3a62ce15e198830d0ba62027a823b71136a18120370b56b6004852fc0cfd92bc886c86d050d2f6699e30e99a0028a8888042d0d8f032a5ed98856b5e70ac2f5524a95a65252a8bda9704dad6aaaf28aae401bb0d0964d6ccb7364b47d197ace6ea6bad07daab51e7182426464b6eda9424137e0a0972b8d8a123a2259ad1c6b42017f6fb846a23bfc6dff81c0e424cbfecca99c9568a86c00c646a2046c6a666aab85a3b46d52158d50080c84a1158abba854ad9e470020982d00f3191c401cc7a120c759b51514000920d24058904034404c540c8a83c2004118068602c13020140a00200863480ce949d031b70400f1c3b9c8a4976d6f525fcc4dd8bd539e9aed3dcf2b46ea0c0954c9cdcf859f9acbe04af3438b7687b61882f9cb465ce0d636ef6030be0f62c8a432051425871fe924ed3004c0f8c652edd37ce454c4dbdc420c82dc809246810cccc6106e022f32a199dd15f6392aece8c0689aa511d8de1a1d1aaf5792470bbcb44cd108667dfe4c805dc20fc3089c3c9bd2217e9880af5f614c5cbdb339f417ebea7138c306c99b4e7ac091f56c22313b723d7a0e44132939293554d5b724fd6c56c83aa218ceda32a0dc8694066d2613df367ef78904424cd02605cfc47f703000741699da207bfcdf221f21bf4c9942356a72a6bcd105de3ca2613a5a698e7eb02afac0f9c54dc5c0ac87f12e50e78e60752275e992791866556f64c7816771a2230fb51cd887ae9b1afddf6f67c1b727512144e82f61403e1544f7715fbc81e4ddda7baf3c6b709e6343945317f05cdb01df0e0913c3b7aff0e6f6a8d44aeff8d4b736b5dde92580266854d6308b0eb668a8c272f30ba436b9049af6768bf290aa317dff50edea8f085c8b3be2c01c209f4574c8f4faad05de817403a80b22b5db1c0c1dd95152c7430dcef6c5ed06efbb963310948faf3671c8852c7c55345c0d9e592e325e35cf044535380d02c59372c00eda2be5a498dc59cda91aac61d0d8a645e5a77792a8f44856ab88edcbdab337245f96a3fb3a540d86498d6bcfc1a02883489d2f51628ea9c17c6e6e6f9e05563b2241969d2530ab0667d32fbe6cf357222a3b0dba4f25ecd6bc78f90f41812f13f84a0c7c8f1be97c8129473788e252f6eb86b8c61bf5efde3f7f9db4c813187f2113d6ff92b1f7acd15db0c9b5c3b7031a1fb89c4b509a89d9e15f77bc6f5f66e24a796d2949daf0f3699cf5ed4ee03a32b42b32f1522ea6effd1485aed30044d171dcc3be79836d67d8d9ebfda8cec523f40c20fa81085e167041341168b79b4127471d02575dd195db75e071ff63eb46bc3f0741dc23a1cc4ccf04fe45166724fbc107a7a3efcdfbec88b7a25df05d277cba1b185ee8d10ebbd6475b03bcabeaab3607a1f21acf34c726ce5b279af1f1a675bd90ff399cdaac7802a2195539adac02911e4f8e0d466ea182b3017449c6c8c36652bb050897fe050ba6bdf444ace5abe07d1f74ed758bae6fb37094f883938187099700e9333f864110e8ac0e553b416ee60f3aac241cdb5503b53a3759263ac85bfef5b9d73f280217e8f2377f591f5c4e3d220248f982991dd5d8f4189de346f393271ae5ff3961cccc7d1a79013aab63d9af1cc63f305a546fd4b25fcc01ef9c61eeb9e2feaf11b564ed107ae2cd51e942e4583b386c06a2e74e4b090cca69ce9509ecb4544eab63ca29bfa2abc5f6a072fef24e4b07bf3cab73654fb637378a58f072d0fb1ca0f411db3bda6971a5879b134b3738604708774c9c15065910d1958a7ab6e2a2fcd549ca0b774c103d953f11106690d358254eed5f5dc1893432aa43c952f86a6da092d04b452706318bce0458b40fd61ccdeb46ae40240d727796ce20554ec2b7de415eb89ec53083dcda72c8d3786d5dfa3ed6408354c3a1c4c00378927d1aa6f40cb2bdb03142bb959b418623669237f1d0203581244c22846eb5c90c455da86598913548c4e6e3438a28ccb053ee4b06ee9ae43baad8175f8db8be41a273b235f3c97132210925d4862f5ab4fc2c70263de0a55d48fbc4a042b47e728adb256238c89e5e82a98f9f0925ad87ed9815ba457cad89007970814d17ab28ce26ebf7201557b2c331ebd54d70da9004d0172297b110af864c80cc28cb41425e71f3a2faa2025e2f6d81c2d3284afdc6519f7da4fe7c38c874b05b3377dac6bb089a1ce4a43d303657166ca4300e40b5e36c741a7206c85488f1545747764c2b187770902b0d81b059f375888394609e992a3807dc5d29bd85ee2a1c2404909f0190fd3b352b843e37c850f35ebf645de81f5f76e0ac1e2412b3a39835fe3bb8f6647406c3fc719fcfb07d2598e61497392132b677b00aa50fec1771af426f1fbe4fb007399721d886e72bf0152c40d4488729c0c848fa525cb4f53434e006ca02fa4de3f1413a2eaa2f05f2b9774dc1d8624d2816f6201ba1ea356850df0c5241426917d86c1b28eac209cc686aa20f524722a4c05a17c2e4e70fb22932b180dd880c02738d4746c4294b8de18486961531bfbf930f529983c5028809df17d879a0fc2326fdde677fdc0751916a300354442a8b42c2de26abe95666da70849fb7d46e19202b34d3fd02c37f7f4f0640d023dfd76e56d7b41dc15f19202f630ba94cd14d290f5e18a9e398efd011438cbbff7800e5efc1ca5fc51ba00d4a9a60bdd32feba334e92c3426a10f8ed711f942b92633bbcb0fa1997f6db6a58df6a4ff15621926dbaefbcc6230693e1bbad5664cd00f12d2430ce5baaf9980cbbcac9d713f15d0a0a97af02e630b2f5128c0b06cf3a445eb62911f1744ed5ab8e46b0d3ddf2acced6c47120c922475e2cce3fd05bcae89e5909e8b3e2bbd0d9b813da4d34b5c4be0494fdc715d4b2915dbb154f832650c7fb6d0c4834eee1dee5bf7387dc83b1aa276ef1b44b9889a47c32b663d5e1ca724e9832d5e14d5ef4ed86a913af60d90859f15968abca9124da5b6f5c7e47a50877727444471dc4c218c63bebc298c5e4c0f98f5397500d2d4ebac3c1d7d9af48dbea025b1c2477bb155182c3ec72dcbf6998aea65b1b0b5dd171267903b3c8a16209e57768172bb6259745172c8c53fcdd0a8eaf0d7c043ca7f94f637d1d0f3c7d4eaced74da183c9cb79e35be9e1f0104b4558b32824efed8fa8a7d525fa5b5606cc0376090910d724e1134bbf41c0b9967efa60c6761af048d44fe4a06faa470c51c48c11784a31910af37dd16e60d80da583e2eaea428c20b5f0e75d0ff0e37818a5d2b3c27da2d0f8f78811026a5b494097a90100a08cec0eb2466a312c07fae483438b9411f298c885cad572a5202879be02841a13694da3c6501298634b7dfa0d6ba1b33ecf8dbe88a7fbf34b25239d9c13161c4e046576d3df141faf230a91eec9775cf7308c114e68471de510b070cbb53605a5c04dd386740a112fb1daea286569f75b927d3020f846ae5c3b8968f461bf403ff6ab237d16968696f4e25b4789ed9e97cd51550743e4988a6ffba82c714b7449b6bd9b888361cc99df147fb5bacc458377ef6e25bee5fca31f312645431465dc846a41b8fbaf964b04450c712f2f1b85ffdb5bf4fd8a8505cd559b678df09d70e97d852026607f8e7dc646b1d15b74441fbb55afa97aa25419ff8d07725d7edc4227fa79be12842f946223202f3f68be267edfd43115d6689d1bbfc0ded4f242347a21c53285215a8585ccf8bd46055311576280e82da6ce830353f3c50668cb79096f083d2a6fd109e870ab26f92206e836df2343cf1bf3736a291892fb1863983ee45075e755caf3e611fdbc23c6407ae6e71feadde0bd591d3b9e394d840715bf91aa102cae1352d14c6e9d424ba8c5ed0ee871325bbc2276d541590434a70d7d0cb6206ab52d6d8f46042f5324266de5285fa424dec52ec24f9549b7e84d01e0f2bdc8cd73f321d759e43235051f89338e2cbecd20e1fecb4c386fbe72553d696e747ea7ca0c50c6e0390a91861425a8d8259864fcc16ba03e2244ca917adf3af2005ab5421f52214c04e5830e2244626d6e8743ab15d95d637847411e7223ee34c855715bb1d335b30192b76fc746904c46b08f07ddc9b0ce8a52f47e27d058061a2bd46575eace1c6ce795b8f2abdec250537913ea35b9f86a3072e635426e52ccf47a603ab3a55987034cb1be6508db00ae2291e2c054142f395583c6665c4fb54351949c60d4809c8523fde2409f1d51fa81a370703dcb0459ca32b5a754a615d89f8028ad304451cbc6912b778ed79390c358353c84c8919f1b2b404c467b4bcaffb56f3ace83bc86d81150184322709e17ed29175c82ae4081b3de5bebe3154b6c616208f058a1009d44a849a1e474a1777a75a40161077cfd351dddd74626aa568ed465365c76cab547af4c63da7e264e7d73244ba3c31f9689ad5c9918840b0f45d6b0fb74a5aeec5c3fc6a45fee03461a6e782b21ad631a2473d6dd5f89cf96e43e7119c15a67d6915183ff0232e188984cfc29bcc4aea86b21bd1c7af3835eb6a468bce1156da026fa9adb8f84327411ca44d9b798bab2162ab8ca6edc2e93d28d16f231cdd851d00b3b29e04d1d828db325f61777f68cf01c4f64e66d4cd51beb61e786c5041fba20a9dd92884e118e226485674229ecb3b82c50aca8f5f2b72a3d723c46d99c9382bc368e2a3c8f38363d02bae55039ed83e6194404d357d65ddfffbc0a69d667c41118fa17982147497048340acc629a722549255523a102535612e275cd54f2e5683333ccbc8480888949e72e08883a0d744eba32b5441a24267da5427b6f60fae574c96b9e1225199e48f2b08f7bec805f59ef047d3dfd8455a805485084582d4039200b1da5ca3426d9b1e005280339d827523a66b83a65bd16093a99700a5c0db84cc46ed32b73a5e703ba57dec9a3ba0e3bb9e733061b4a748a6639bcd61b2e44ff52144c28f9a6d2310a2f434b2978b3ab42487920f11893fce837c54e889de299430e460cfbc9d74c822315250a04f0722fbd33e2c0ed24a700cef71b3502ec43100f435b31106affd3cf13e6a156ba3a7495f2c0e306dc023ae5def46e1f81dc43d6d0d5885a0deab08299b3be11427a25bb4a2aab891b00c13561d6630651a5de27b910ecca81b4cc23498abd846f0c1371d46895cee61536a140a038e9491b5a4e582291ea276cbf417cac045052e1a3e124b460a67637d207c5edd55ea4aef64878d8a4ed629e2f08c1667948d35d5474ef4631bfc80416c2cc66d9335a9a24e160a5a2f7ea3c7a5de49baeca1029503cedb12c59d73492a11fdebcf1b4c6760ab88434b6737ff3ddda2d0f802b6bf3a4f979003e479038df7a1a0c0a1d3cfa970a247c5a882b60c660063b3f046733da06a0aef5440e688deb2926a7a203dba244fc22cc8008b80239c0f773f4de01744d4eb67cc75a01d3486641b1a88493c0b40c7e5f33ea6e319c97c9b6085c5059b40cbfa94b08a813fdc342defef9e270711e4128e23cd97e2e949a44856e02bab15d6c716f7f58891842da3accbad8ca03065361dcb8acf07c1ace4abdbb10cd0226e21aaeb9458409e6eca569536662e7863e66b0cddb51952212d0c568945fb773f751943651577160d8984adb8a16d0412ce2302eab0f5441af31b82eb4a73271afba359b170bd3dd97687a8d25513153b0f148ebb5f2a4e267ad994536d727920ac7d672a2aed49d7e4aff38ac506a9ccb43ea3198951c701a06b9213a44414db58af9d5c9c9390b5652c8edc6c1150588e84b08741ae6de65205b799f488fbdb328102db06cef7859feb8f92b0e95d1570c4cbb8b0ad7c88a3b995c5a8a00e8d8b2537cc350886c7ad1282b1b06ce2d519677f7e9e32f03d54ce8dc65bda9320cfa2e15f3900c11b902a285dcd53c6092c2262119d705e5556b9b312e1544bd89bbb2b0754dbc273057e63cb603dab8aca39d1b6390d48cf15aa98c586ad736b0ae19c1f14011e70ef7eec655e3684f55710e360e286083edd619ebda5a2e05e60f915ea696a9a246abd6284801868da26c477b21506add26b2ae1262012fb57e37071e75a6a5bd1206ce49163bd66e90d1fbb7c4ead51e8ca168dc882857ee1cad4bb38173c7739fa5a088267a4baa56f590fa05451da888d4342634ce0e3e60ac7c4def1e6042c4d7b8fb2b27d25f0496b15d8124bd8c35c49ca796148b64afe6230357a947a3bf42a2de141d191b0515b13c14cc351e893407966be479ab233aecc4c9e2e004a59fc8260e58523c406643462223ade6d74f1ca2594aa1940895111775a47d438d1674c3feb8f00057be94b83e3e65b542ce0e4a5c5ebb459708ffc345d22b0b32eb990f39cfe2ccaf0ffd26388d64afed0ad8efb59b1d16505da173d4780df17f69eb9f186fe4cb43a031723069e1c9fb54831bcecf09c3e959c50dfd3c4f078f1a2281c321cc97fbe38fee54e6afa2c92b704127a077b6e94d3b11a2aacdd5ef3c096d8031e918246147fa188b99cee5339d6f6be47ed8fda22ab58874b75b28e57b40424a94147db5be9457238a8767a1aa2839c6ba274b3434b6aa4810fd0ec34a9a53c0225a0de2ce1d86077198be8cd1761b00052ce23e041cf3c538e90b1c6b5f6afaa29242a8d03ca42f128439e611248a4bf40569e399b99eb7f99e2fc200d8a7823dee1ba02f72c3b9eb3cf176d6c0641808aa575386632d4a02711140e41986a880e84ceeacfdc7175f25b1d1d6799d3d3dac5e56da16ba70bb25efbc0a49421f0b4f400824b968cbf7842d109c8298c40fefaf314bc4ec828dbec984f6609062a5b382169f06bf9b10cca91cc9153e3e7161164a2038b7b10b38dc0d3a14a9d7ddd0a9ff7650bbec6be3d41c2b3d1957d05f7902dce3706d8052706613a2e624dec4d48e9e0cdec7afa6ab2f594d47839526203ef92de202dc5bf48957109a2aa0d8f10ba18c9e1965ccebc3b4977b8bbe34c103ae2c5d7d71a136a6f6945f03e9d01fc57525f473dd228acc6ff99ae1a2094b5a965cbbf81db7d640eb0240531ac98b11eed61a1aadc970af7a5da782867e9948302fdb237491261017385281c7f8ba24648808b3f06e5004a5692a6e0f8b375ade33f8732930e57e26253af1809d0bd6b40a760e354096ec80abc3dce7fbbf76792860fd87bdc3a58d0376333ffd0a529a3dd55be79ec63747677be71f485bff02669b354de6cdd76d93906846749a0a566162facaec389b04a34d5bbc79326fba6e9b24c96654a7a9b06a62fa9b1d479368a46989354f66ca74dc84494836a33a4d857513d3d7ec389a04469a9658f364de74dd3449896654b7a9b46a62fa9a9d4e310946cab4c49b27f3a6ebb6494836a3ba4d25eb26aeafd9713409469b9658f36cd674dc340909654674c2545837717dcd8eb34930d2b4c49a27664dc74d93906c46759a4aab26aebfd9753409469669898f79366fba6e9b84c42b702a62fc29041a9353b75b2052b29a745554217e6957e25aa9dc5922518b78b7ae9b0267ba1fb83785fd91f7679e2f596b68f13a821ba27715533ef6eef673a30c0582be98d5f3b81748070f75d2f7516d3bea5e1e6f9ffa7d5edb5a4b885a238490bde5de01ca0b610b7a0b41290095b06ad516d59b4375014479a8a796bebc7d8e96bd7e94a1408934d6a9b29c4307a8b3a53e444448410515474e2ce580062d090e39ec6005340461841217e1ebf5d7ff8abd5eb1bf6e3fd98c8ea433334850b85092024a0a9bd4809555a67cc937b2ac32e529d7226e4540d5229c14d1a4a8891dc0786232737052924a4f66930caacc4f08675dca1ff983e334075f5f73297f0470ee47c75597f267004f5dca1f117e74de3a220c40470e01046026c30180106ed8a8227f623e3f4b207f665c9826903fab4ff13fdde7270cf2e77502f903933f369f9f31c89fd8e7a70cf2477e7e2e913f389f9f47f2a7c6e7e70cf2e7e6f31305f227e7f39306f9f3fb69b10c1e670d79b6f0386d689d855d789c2ac893068ff3863c413c4e1cf2bcacc1e3cc21cf1570f7f03875f0aec2e36c92e753789c3be4f9e171f2f0bdf1387bc8f34ba93caec60648e362b5642c6665fa9c55a6bfa911667a1c55a68f5d2975d8dc4feaa087d1bfba2ba50ef1d67046c70d0a272aa4bc5d311b89cb1443b6520f67cc5a0c4f2990483c340178767c5a4ae9ad65e6719ecf574c009e1db8a8addc10c3cefde4ac5670be8235d4cff97d29086900c4931716141de1e006862d6ab0431730c0b8e005144f96b4200865dcb298075110d432191ea841249922fb21b3a630a5f61409975b2d5a5b2d1c557270c1133cfcc008232a25ea8831bc804282074f7ce1c5931a540f4ba620528a01194304e10533ba84a1cd83d3ba0e4e14587ad7eb9d5d46a0fca5eeacdc2585ea1e7a9a1a99baeba0eb4e1b0db63f12653a6bb3e699dece3d12d532922ecfc87cd6a88c8c8ccc55200aecccae99778febf3b34bfbd8eaa2ae76f9705dce642ef3c6e38bd65aeb575395abe365329db1470f0e3f554bd174ad995a36ff1a5f20eeda53671dfceecca909e2a51d5d24bb6907ee272d9b77e176d24d79d623ec386d4e28c6aa3bf37a654e6fccfb284f1999aecb33ef44135861c284c933eff0cea29996b431076938735be1775baf60157dc47c5fcc14a72cab4c69a21721cb2a536ab96bd467161d65babab375bba9b4e5eff5dad59df9c3295aeb2dfd74eb2c50ed64b3394da82cf3f634a3b6d46e24d3e961df6aad4073ebb2752afa685d658bc42759c588a22c453b831d672d570cd628967e95674deaa096b638ab163b4adb90d7cb5a699b5b5e55a65297b4724f4de9a4ba45a42db7ce6105b44c4a4ac1532aae5041a50a155db2ac4285153e595679d29267ad7bbcdb3c5179926263a3e201794090070fc803825ff53a11fc6743affa87e454bf5ed67e6f708636bfd23d369f97b59170d9261585125f6481c60f645ca1226349054ae060c9135e7056a292b875f1c513337c740c307880e1882d8838524185c2dadc3ba558346126dba4525f7ffdd1d778e391debbcae61409976dbc14b579cae65304627317e5b2d42b347793901b538a79b8d6536f99f747ee8d479ecf7b8dea7d56b3deafb9630b23e9dcba0a8f35a7801051bd660f1369e171d668adc0cae09a8f1caec163cd345322dcbda73ec5201c26a23a973dcc638a906261249d47a29c52610f8f3cb9c1f7ade2bbf0348851a83c52a97a692ec514fd78f2298f39c2d78928803c29d9854b5d905e9a4b1d1e4ef44143732b7deace148f29c2bdf7e570ab0e44557dc79a390e48cdb98fd5137fd49c3bf8855354dd5b61e66ef1e09592470d4f068feccc33171f059828be4ccb3a01f6d7eba91a631fbeb5fa666454aaa7ee389453dfeb02f088a4e90788b2874190931ba70e445377f41ebbdfc18ac7156a66e12673af9f220af48d2bccc30b20ca9c4a7553afb9a377f19cc8009aabce8925cc4c737ac77e0af755a5faaa68467a15ae344f612234576122de45d299e20f8b5f5d2a9a3023832beb148fadd796b54e709de03ae8ba630b7d41f07ba7fe81dfdb059ef50fac293cb28e846670ac3406c43167c59cde185ceba765bdb25e8f5371c0a3c69f181664e6fd99371e55394524f59709b0bffe3a508fa9ef2a95ea5fab0ed699bf5e4fa9f0d859f55692fcd5709eea34775dcaeeb9177b8b86e6aa2bb38b06b3309b9bf9eb85c7d40288be3bd6fc9d36fdaaaa716d1998fa0c7ed18c736dbeb931f131a20f563773a00e32936107676e1f76ebccc5f71dbfcfccdcc3eef865582dd7eaf4495b58b34a334eb1be58e3bd020d13264c675ae3df5dc1cbbd0202c284b139ec1265899174b6a971eb6db0e4b1e3445030850e65e0000c9725243046184c5efcf0840b2e785c199dc9efd0a1337b776a8144d4122c680022a9890556be6c9122c6520f5ca0d508638c1ac0304113a6256cd11428b6181161850d6893faa014a8bba1ba65aef52bb05e14bed76bbb74175384fa8f7e777570869da4a15a56570dd574052faf561ffdcedd5127a7a6d746b59a8f5d9b53a88fdcf9ec7ed12438e7aca9f084b2a53ec759cb56ec3850efb8b3369f5a36afaa42d8af65739c506a14cb9dfb0e0f1978c7e9347ee3cc524407487751f5dde6c0d428faa56f337fed25d3efabf9be8f35184937d48f995532acd319ebfabe736bcee34a39db716b6aee7dd66662b095c1a375b9febd855918099729cdbd77ea349822e132782e770dbd87a9e7f2528dc786cadfa7baab7fb7ae3eb3b28a962e799c46b28a162e79e6094a1116b4e30e90b41d3bc6a01df77406ca7a6bdef77b432565900bc57b27d29d473b787c67e7f2b83baea4331ad5bba1ba50a92ec5c62bd0ac127da868eab5ca6e5b9fa6babb0b540aa89bae6a6a17356fa8eea9af798b3e6a926a6eed2e542a55e3ee628a403fe96c862decc29406830fafcc33f75ed308fc77af4695bacce9f8fcd5a89ef22ee9fc3e23bf57fe6e7f805d635dd2b72ee90b8faf57f6b08753584aaf6b3278762d7faf94f8037c8bdff4ec17d677f6e6e751f78078ecf77435a3ee69f9d379be6dddc51c41e686ca400d85ed7e5969ebe4d44170ac3955638a52ba25414d249bcd092acb5394ce7bc89c74c61eb9d64ae9e55e6fab56a0b9ef121940942b7675b4eae46ec77910d580f8e18b28529268a20bd10b34786184134d59a4b032af539f47ee457440b0f2b8f54b7d68088a108fefc0433bce030ff150e1b1855bae2752faf0183403a23c64deb1c250ee5e3914ea0a34f3b892b6e34a9a14bb3a91a6cc024c14a32da200618b19681300549e3c51840ca000c30bda7cbd126899ec2c9b68410beaa5046a99142bb8456102063f582a401a2670a106209c6851c55cc28b0d52a2a8c005232cac0db8e080c90f4a98d1027089350013a43c3f8bdac7c70e4d7a26b38f1d9cb44ce689447d3a2044942e30e8418a1764a04d06ccc0075144dd60861112b4f9599b9f46452d9bf57dfab2b2891650c164c50b54204313b47a396b325899c7596b8e48a7a7132e34343434b4b26c82082636033a62c82df2bc9cffe65fde173ba85c9d9979a9b264620636c8e34ca572db00a7fab88eab3655051a49ac2caba01143973aaa606a0f7925d327a030cb2a5138c0c2ca1532f862822f3d08c1650624ca840fd0d82284931a9c968031c39082460c615cf14314d40a04b6d4e0490a248458820959bb0e085e11edba94f5660d33008298a59519dcb6789ee7794b64a8b14e3530e5d279d999d4573b5b038c6a0717ba884183105e62a8420233d0984205891280b14469115f9e6e788207189ce41752801962862c9a50a2410466d07083188aa28079f2961041193e70028b253466a8c245888c254e5750c0c318b6951251456c51e28b1f8049c3055dd7755dd77151e8e7759d93c7714a7495721c15aeeb8ea81da51c2783a695560ae5288d2a9ccc0088339290685ce901081cf000091d808106a5f40625b8b8e0d1c75ef5f33856db2f840094131c31d58ac4903243254a0f6e4248595aa28929ddfc2b4629a5f43bc2862b404451e44210ae10c1a248d8b8941103315cc0a28989091a41d48ebba1d383c749a707cbd5e8a1fabafaf2cee8beaeebce09231bc3135298e0a9e988234b9c9e5822e9079b0e4174f8018a891862882245658408370882096c7065076150f1bc26b4845c8da995d2ceb3adfa755df7434de52cc7794922ab7e499ee7c97075556bad5ce5aa95ca71615739517e9f0da0133d78de085750e0e48c1f3ce15464a7dcfc2006286882c50b30a2ba0e0c65a8e779d78158c11b29a14403155037b0420c9a2282b2fc60830e54b680c104b229ac029dcdabfe7decf17dd2be14b284a97f505bf284099934d5274df5247436dfb2c14a9aa4811826a47aeaaaa7709551d596e7551f6b963c0f6bdc595ad6ddedcea3ed4de9a6ced556bde4b9e475691987842787c439519f1044018288264a3ef880046dbeb3cc77d314270b82368060cf1b11edbb30a16f469d8826c516ec87bce2c50a9810d577d5250d26a47bea29acc47b37ce5b9e62ff7d89500c0b4284c3b0202c7426422faf78b182667ae5152f45f9bb92e619998109e994a4de09514293620a4c30a16ffec36de43da59052820979fffee1a146a21dae595a8b0579b063734a1f11d73237c88353acfcccf2272ac10bba3801172f9c51822468314c6162b0898182a72368f2f605cac7f2cc1da4668a972c9552079c72045b1ba253a2f59d12f5a19dd2143b2f73a7d43d334fa09ee1b4f960555be44f0172bf6381ec94e44ff71364e95a95dc46e42622371ebfce05b93fbaf27c8cec916fc91feff356fed08b0f3ff1383f4e5b4dee227da8139d7131833272d3e9c5cbde05228fc0beae043a9bdc1de91177f49ec62e2af7e98aded662c74e891a719758075718366fbf7aebe15b183657675d8a41b0eee02d2e328117264c181a9423482c0c2f2b5eca7469d3147f74876f5ddd7aa3b39ad4013545e8cf0a46eeb76e0d4312a06fb912c89115c31296be91e495a04ccd4d991856ab6d0a37850b77c4e4a618217fb8bfaab050e4be9c352bb9e79cb3451f757e5d77cb4c3589fa886ffb66816ee1a0e4be5d926402151ebf0f7bf855c329479867e1cb6377cb7db0c379a70ea4087d4efc316d5dd745605af6a5d670de5ad66d247530d9b1fb92db03a7adb5721cc74d1be7a34e5b1f0c98bf29dbe655ae78e440ee6e5247bf69a0cc5662e1824ab6c9128b0e9eb20d7dd896b132fd69d41c81e269a369c89f89e7165207f7c3de194567b56ac5698ad0ef6a9509b9ea6ab5ab55a715768242035ba3c8cd25ade08509422dd70b33c17bf7ce3483a9701e4162f3dcc2263aa0692c3c6f498cf5e22b06a958ea850383b92fd3362f07c5dd5ad64addd34e9ae9c99446a23eac7f9fb5afd77f847be5a25ad64cb9ff3d9192fbaca49ec239bdac6d8a6d0a378573caf2b42573365a15c2726030f7a5657d28dc17b1019256b15870da7955b9d61c9c9b18ac86cdabc645332313d3b2ac951882aad4e7755ca53da58e7929b22ea765e1179df5e7ea765eb725b713f5797dd6563cbe7275ca7d10775996b03d3b272dbbd98e09090b7632774f3cbc041ea8a70dc4b2675da714d583fa807f65591ea72cd328ead351510da03410778dcefa4758a46c4408367944a9b6c102f9492b5ff29f1f73709fcd611bca907100e58d91d6c0ae033d4a3d8f7a1ef53c4abdee159c6265066db092cec676c2e2c5d662479d8fda22ac0c42105c224216566a341113d174786260479d3c67444c69e20917650ca1c5484d8817fc70258a1667d0e6757a748fccd208283b0053061543b4400c128ec6a859c11404a31c8840c9051c7a880107693c3d315925d1240b140f5c6a48b24145185e1c5153220733a6bc010f7e30c2055ba400ea0b10a0bec042c5124d6a473968e086265b8c71c512267e5471818a2b4d7e6002c949492a3de1c105881fc6f8c115348896f8204b1730b0008aa21e66ad7283c2890a79c544e232c5484095276198018411675c2171e084963380104605b626e4acc5f0940289c4034c28fcea2b3cb47a78229a786142a278221a6bc55af58a655b2dcb5a81938266dc52234811c529cf1124ada1f87d5afaddd60ed6de7ab48c07eb6ce95bdf242dbc923645d5e90766f6d1dac18a19069e1ebc6c420732b214818879c9e8b4f040ed19800952fe96c2dfee81612af5864a5d66f05cea159c612a480ac7bcbc7243e5e9e1fed25ec2f796b0b76c69d9fc4bb0b4079d4dfa29935e0b08972c2d939928cf39df0388faace659ab2be5aca98933b218d212801ed0858b15a3206088810a6d5ea7477f69d97c91dc45e9e4a9e3e1b146b5ec26c5f6bf8030b094d6dc4566727335f72d4a4a5a031b080720ac00420b6dcaa16dd9d03893fb9bdd3475abe863258bcc647a551219f504441210480df655b668dabea491251e7574f2f831c9233d5a3a92d3ca529639ad2c39e539a358270d12618f20b199d2d064e4254f1f499ba93bcee4d4c1b0ebba0e3dcfa3e1f77df53b2702f9b0943afaf3209d4da98aa96545503e4c9db48c3e6902cc7f5bd8911e39f9aecc324bd9e27769a6489549f77c556545265f52f72065900bbf0b7e2959fbe354563ca80ab99082e1773bd75abf8361f8dd993f2965e394852290993f555da5defdc352ea008bda098b1946390910eaa47b1acf1a35ea9e21ac10363c08c582d356a076c1b6777a3dd0489988921b2bd3a3277694514759fc849a29db141b4069229e363aebeeee685ff9fb30e5782e9296c9dfb2b4c2c4841ee599e428cf0f75cfa447337f8d948f7c60e6143ea2fa0f9b0cde1ff3957a039a26690a8ffdee40b4c70e1769a4a82c5fb191d60ef6601076248a22ca395a265f60256da2c9e21db67492bfac8692d2e4ed6b6639e7c447661e43daa11872b1b25957235196bf116b999cb66542d45ab9d872edb0d7a5ebbcaecb16b62dba740942adb46300522c50d0f934e7a47503964e91e51532ac60d1c79c744e793760a91457c868aa3580b21b89eae086462361a1055312c8a26f5004dba7e7c9fdc67283a7dc544bcf177e328777507ac04a2c3780ca5f96335359f7c8d72b33b55e0c8b0d8cb2c4a245964e50f192c1d65b74c05bb8f6ac2b602978632d0b4f89401d2b74e60eae0edeb1850cce1c8e1f68410c2fe58f3deb4aa9c3e211a41e4889a8300b33739db92c35d8927f32788a472c37309aa20905c820965247084439ee406d83a81a40e5d4c1c971549452073d08b2f038330b4b0da24089829558b430caa95b2a86a7417e323d07da03f527fee09e82a5ce7dda8378ecf0e108da3b72f7b883e02552e42753ec819f4c4ff1117a245f96528777ef1e472f59b7aeeea87a3d05c383233d8864291e89c24c4710dfc3aff135aa300b33bf68779d9675d37f3887c773c2cc1c26a18ba5efd7ebfb38ac839f67a697401d36014116d87919d228be7aef4b5d9ecea494722639c97349d2996d993d9d75b707774b58724a81ce5a36c7c994e72753f7503c9bcc27ddd378a97e1ad569946433329f647e880ab46910c05a41ee7e52477f480d15ac44238f616e245ca61c276b133c54f1307b1926b1943a9c28aa41964e14ed20ef4872d2b4657e8a148a9c2d60e91379fc7c9821cc528bc435fc150e1d78f4820b5f111ab5d6948a6611b374a2c84bd7751d75a2b682effb3e2c4ed454406b2f88609658c2a4b16a7dc10a45511459b6092e2e0e58b4b084c922cfc4b45a3386ca8474d22b58b6f821cf804d802b50de6882e777861d3f266a8801162d39c0020b29b4be610a1da4600c148cb182285adf483f497ff6bbec91bb314c080fc9f1cb30a13a345f31118de25196411eba8a21d943c2e5e6660ea0bcf16a59ff46ee1ed37aa7a28f21b93b09a10db1f7c9f37daad4ccd1b2e6e91e6f4ecc02973bdccda094b91cb92b8ee988efbfa88865e796f5e7029daedf98bbacbbab1fbed197be8e54d639f2e79556d038824b173730a1832de5c309a66849238a0d54409b975f0eddddf4dd7452e19494bb9172834c6cadb204972cab2ca125f70b906595256cc8638edccfc1516ebe9b8105795251d6b2b72c05b66ffbafbeec7f5d6765b2c10eeda08136d4c24c103428f42dc86441637d4896d1c5d38d36d4c208524471a2b1de4227431434d058180acc04ea5d1606655577ab2efa508dab77770ccae255b7888eecfe09ab7ae843d54fbd7109974e565c7dfe864ca5c2637f15be41daab9e1d7e86ab109700549db0e0b4dc0b8375092b675dc2cebc32cae281ba6f55c24a113c502ba0eff8d60ef6e31010ab5618a865f3253889176642d7ef2eb30a574a19386b07ff8578c908cb48110cb46cced724ecc72f8faf7f1f88b1ccde3c92b762b1dc9d8951b1e34c9ef33726f72f5d9edc486b63333d853debcb8fdfe4e46d944d250f8f393a3cdee0b08de171267cc5c0dfc82309b93109427ae84c31852c734a6692a2100a45677da7d92444489078a056ddfbd19954810f8968a17c885b1402afc243aa83a0bce36cbae3540ad2a1b329e2d7486b599a092694bae5f086e0413cf475d28968f474466772cea76945cba8903aaa9822f413a8c5ce536ca50ef9713ed55ad7aa2e4f58a4f89eb2d46c0f1da6595b5d5e3613f569a439eb2331d9dc4d7f8d5ece11be5a961741ee76e326e7023b36d2fc38a7e85ae6301775b95b544632eae6bf5ab928ee2377bbbd3cdbc74571514da27a2a4dcac28edc6d5eb151dd33f608515cd4176ef5495b61a390b67a3bcd79569e2bdc53e86c0676565b37512a2ce5a66caaf8234784b5ba08586f7575f509eb70100b4b3a132fb39074a2ad703fd15977ddb94e0a4b0dc00489d6ef267b44eef794390287975655097c531bbde5a669d83a0b6da746421ec0e8455bbdcf6da13e2ddc418978ec8778ec27128c7ad0561f7b890e6acb96eb399122f455d589fa78355a959672ad9d3c198322aad210d4f321b7aad6dc2d7b40e4be97c5d3e25d6919c54b30a1d647efca1d6a5d890babb7304c48eb318fc14aec5b18cabca4d9533168d5f211c43a16ebd5a88fe744cefa4f3e295e2d5309c2ca3c7a4e3a2823db3a489f592467738e200229c2b441e2207be891721ff990fb0735e476c1529a953c4592a1c96a9af7e45ad24839d63d23fd8ccd8413c75e3359f6483fa7ed9e89c3965191c595cef4f508929a976a302193d67dd23a6c14d2ba4b3a83d1cf0c0bc2caf4acbc34820e775e588a851d2b6da47c1a40909efb73cb7307e5cd714336f37823770e09d4524eba92e7b2edbffaf2ebeb3c85aaa62c04fbcd6ff0908dff309c73181eaa254843e98936147b0b50bc13d16e4e747c188609c18e731c3c740f23a2c9df541cf419f54804727feda4963151a2dc05c245a9669524adc2e2fce6b0faa111787144abf8881097f485867321dae48b229068371f1ae2e2862c37dacd25ad7261d23299817039ca603d102e47dd0384cb11102e4dda072933e12233102e4d40a2dc7d7588fc9937373737bf39ce0d9c1ace713e76546e2815936a88fcf990a48e7e4b115533a24cb469daa06e7d1a5533da427d2a67d4af50fd7aa35390a88fa4498a44a3727796dc4d992ae16ba90873953df4b5dea24449cafd08dc34e0e638f843a2b3a0cfe84abdc13950e360d972c867d4076516548557886872045594fbdda5bd8453f471642eb1bfd209267ca8d1a478691bd2ff6e1e819b7f4ef6bf57d2ba7cdff77ddf57e4eda3f3a098c8b935aa96fbad65e9628daa054e1b4e31e660e5c1b6ad7b3c1baeb05282dc6fa8f6f98c7aec2e48a9d42b9df51c9765e69c5faa93c1548cf9f4d14a5dfa1e327d37835206bb8377c41c7765fe90c2980be3f06794533073b075db49ebdc6d272da3616ae2996692e16238ae7b2bd160b9733178b42deed6dc36d69bf510b39ec2ac4f5c03670864f5cec9f77ddf10ea037b1fcf1c762f672c964d27d36967661e5ed555aa57d6673e73ae6d5e92fc39c0943faf23d9f1339a475ff7e8216d52c26e70724ef1d87df6d091fd3917e7de5cd87d8ae6df95e1c04ff431e72753736ba91e19198e76f4a39386b445632895117ab232dd978969c9261effe10e73f855a3468d8336afd9883f52af77f51790d56d5eadc4f529eeb2b412c6339f07c68ba23efdd44f5aaeb4ac3f6d2d2c73679eb9e35794fb3566aea151c90049bd5e2885efb396e69946464373297d86bc762dd76ab51a876d3dde4aacdb5c31e63636977529869fb514b7152debb6b5ecad83f4cedcb6efb3962ec1ba78515b703fb5ac5f8fb0fd7db5d61da797dc4fd50b44e69883aadbb696756959cc6b2e03825a16834b006770e1fe0a3377e7ba3b735542b2f3b276f3401d8a0c104d9861824c7c020d1326870f592b71b85950028b278228a30a295a7c081d6078f242920b4bc0ef3bea3a248ee33efc19e5e82e122e879fd1fd903afc8cbea3eea94d394e3a75b7afdd59e2d773ce5933424acac2ea5618ca215073e167b80af192d169879d8561f3335f7608bbb34bcf7ace2edf840aeb73edf119759983ba7306967b97cfa8070d1e7be8ac8c66f02893c1e35b38c45dd781e99ef07def39c4e390fc01512faa65cfb3cba4f5ac5aeb539887852e7fd803d3b2d6f1a272df8bea1e11b7130f4cf7b0f012ec627ed78cf493f487a800de157ecc0c44e6a51eb4c862053f0081054c2a90c3105f6c63d020053e801f13255ab4b0a2a9043af04286068ac001aa87a62a68805919e5f99c2b69b02b69206883d591429b6650b1c5ad6b95be1b2a090bd6206c67a34983bd080604d060379a349c8fadd4da618888360445e8e638875d66a1a6e1e02123332c1104ede6528405c130ac1e76499359884586d315b41b0cab3808e73797349cdb37b761d7d6465debcfc8073bb6edb3b5d2d7b44a12607201b2aca204520625d8510a76b5765dedbada75b57e075377e6567abd5a4985212dc3c00cecf3f819559fd3fa2d76e9baee840e2fb900a51ef68602a7b024f468594bdb90ee19fb185040cb5a3ab513d89572f6b5acbefee8963c01860e7215a9d451ff9ddeb1482e32d346dfed5acbba6b436c34c83f23236ba4d44f8c9660ed4489fa740dd6b5fe8cbaa70c283da0c1961b0eb72d8e54a1039816d410c40e34d87c40e4e48a14a6190031c51359d01aca9518a03821c3cdc912970f4b46b8c04b16b52968cdc50d8c78508517232bb850210b273e34a15285132b1a1005058316347a7084348128804822aa0916b631bce081144ca294b8f2830bba7f4ed80a72ffb274513ac6107285ca3d53421eb917e99169db7223b5acff1961b160ecd62c48464e349b0c94b8228c17aa189104f7d8ad4953b038d1a4e8a37e461f934b0f3b32a23e43609f918f21565c2088275892a8a5d183135abfa3dad65036bd811a2e6fb906d5a74015c0d10b5442cbea48942587f157836c473bef3db8d447ee1d06b9cad57a221cced1b25aff6dc10362a07bb8d93454a17b8a70148fe0fb6091994c652dabe786c872709403393cd61ca40308275cc0210a8734be3ca83e857aa0fa12ea0f7edf57b9944a012dab97a00455b804a096d5571ea5d33905e8606d903399c72f67b144be32505720708aadef1ba88576b4c352de519eca771f2995a7f244684ff9f56bf7750ffd64879dac74cabaaa19ec4406745902e94cc7283263c5a4f90b7b36e52aed496b775c77b3e368953f72a459fe7097ef56929de7eacdf334137593a3e224cfbf62dd53a95891e76b78a5499d7885e9841637276cc09441f0ca486c9e7301567ed892bb07b62ca0b274ca82491ee712793e479655b240223bdd90d247a747965247fa04d11ca1f4a941f2493e19914f495a36650b08972e7994b7c64664b02305c2641ae42e64297a5ef8bd6faaebebd0efc3a195b9084af7961969d54109721e1ec3ec3d49f7341e6b703792e4442a46f2a561bdd4c1cfc7f72f0dfbdd0892249ec800a21ae699bd7797e07c620449922b7636e1c934996a2a454506106515a62999bd3b2753cb66909a39bc143e6999cf4c0a939866d24c62c28e37f23c68c58eb562b1325956c9c2876cb3a4050c2f904205366092635cf121071980392a4305b4792349e6ac1949e214be7085085bee29f20a11529a0a574337519f6ab3357513f599d506a6c08edd649b229d6af0c5d10f74f08216511e90032e515cc1440e5ee0c394ef9baf50d4c73b5163a1ee2a3cf41a7a11c1ba3f240a81e141587b17d618d600efdf85745761252a25508454f8a34a249d716458efdd61fdef92066b21a97f5889f8d48580e1c14740f5efd3e84a0a133289a0628817bc307164d8f0b3a4541258c54a1acc6683275f7ca034a730495a0b862e5bf0c056a38d73cacc72c9b0b03e114dd239b7d0a68df322f5494b5d0914a15049f81d2664080a2c487507489a0a4b3a13d245dd10c60e3b64a9d568323a9b1f326a9af81654ff30ac0f3efc38b7e4f9d60d56d27ac8a82c89c114537411b1921654b896c2b0c641b2c06041925a2e6130a9e5a5e3b78327d2f8c2f17b71fc75c7224872ecf7397722d1cb8a9bbefe7e9cb713703c46247699ef5b4401cc308a83e078ec381ebb1483bcf2183b8e03f58d1d0726123b817bc730cc8426c26122f4f68d8db44c36b9397779171e8b20c937a75dfd28ceb97337774e114625995e4e1146121c198952192753cac4073bb38dd7d8784f8b6ddcc6e63931efd771dc03e021dc388d8d1bb7a8db1730b7a8db173046b854adb917769154d8bd3790d4fbd79ad38460e37d3c6200841002c6f13a8e170e1c3870bc701ce3c0386cc4e0c031c731ef1b9303628c5fafeada1dfbc4b020364e6f2327e736366e632348ce6d9e63e33636cfb14632c58921a9d9e6291bb7b1c1638e0d6d685b16cbb98dc7ee5831929a73b0cd6b0e4455d7da5c99c39aa76aee893e302c084db671a0aeb9f1181ec31c3b38d658a59c1451e06cceeb54c4b1d739c27decdd1c01c763213c16a3371e9ec3849c07efdc8fce76ce73d075ee0038c87377389e1d17d714f2dc9dd95431e5ba3081e6dc9900534301876229b38f576c2e79c18270d9752ebb5caf47bacd287aef3958ad56cb2ccc3ca350c0c1f75eac91996d5c5ee69cbe4e6d3ce6a08d1b735550b2363e4a281b3e303ec1756e69e7382eac1ec765be1756f10f1cf91eecb03f297646cd5bcb387169e79263e500451f4b3bafa2091cae77e69d9cdb710e80833bf79e1ab54cbe8564ef65cef967ef65440610e52b693937c8c53c47a20f1d9da65bd337917cc8649e4bec488db2fc28cb1207cf2f37b34936cd24cc8d61e93b144fa05f81860993713c0ce1f29e480d6ddc5f8a407e1b076a9c73eee6e4b42ce7e3cc39dc5d97483d77b0deb86e5c1816a4ef3a90be2be7068ff52cccec3ace893250bb5e15dfaeb9620fe17e5247ecf7a6a48ed8e9ad5384d871dc6e8a103b10b5716506c01dc31b772c125226f62a744fcc2f6f84d2ff98a62ca64dc400bb29cea5e8a3fb381f67d32d2abcd1a50538b8c190c41619449c831616b4739803246de73021973be7b93de84c7ee74a3a5b3d7103142010e1a456a3f17ce720ddb93c74876787b6738d567085cb195f1c39a1a145136e5e398af3226176dd5c166606efc263cdaedf9cde51671c47fa9bbbc2508e8c834255a17b702e732e716eec8a9426b93fe3441f393eeeecf4c6e8ecb1e3dc48f7cc2e7170289d21cead995e290299bd4f64f67e1569ad5895736397620e2ed232393b50cf29b3a9093b7bece36ccab728d9a56fd184fecc8567978305a1a324ca38b3d99db94818fb8cc68e9373fad93532bb32cb5468d9fc52298e17ce726e11d9e5a2ec28a15c076a23588596c917f99eec28a18ca850448244b90809999e28d73ba38a5a26efbae19c9aa6e079639a49b8994828218bb4f926489ffee6148fb265b1533ccee49b13e8fbdc25d21c876140385c8484ecc223779cd713e5ce39156a997c5018f60927074b2a57ba4766f999656a994fdd03a332cb79bbf54cfefbec685faf2794ba1b1cc22854dad525736fcfa3d7533cce2ca200e68a53a8ed51a1ae5b03d37bef653e8d52b8f7f3de7b655cae145c53067c9776feda39787363383784a7441f5d6bad15d3a750298e9f7bbdf1fa11c7d18f995d97edc3f3f1e6f463088fd5d78a73fc9cefe09cfb2be7f57a8391d09cf3d86d25d9103092ce391f8fb9c7e86bcec1446e700ecd7d0323e94c1ffb880323e97cf3181e2597dc8d8389dc3ce70613a1e7720e46d2f9de503c659847b9ba6e0d3015d6a84173b0419edb73508a3f709ef3be37780c6bcffa38b7e7ee9ce7ee1ce7e6c4766e4fcf772ecfab277623df1ca461cfe53918c2cdf9cd8d1de7e6cc8bf39d4b80f0ca9e8d36bf08d0c77167beb97d9e4b80ef5c1e9c73a02640831dee5c9edf1ca8715c99732ecec19b3b86f9e63cb7f6ec3738648ee376beb934af71659ea191919189394dcc6b3eed2be6b0c31ea37fdfdff80d1bc7211c0031ef39457e4a9137e7def7e6ae3b22c9ae9b7aeac2b09c737884a180f3e67270101c2c5bd6f4ae0351d71d5db7a139a78dc2cd5d6f9ce360580e0e728325eec7eee83a0d8edfe07873afafb9e91b1c37b89564395c24ac694c04c76f309110de2fc2e12261c68165cb6ebc86709a03e08e35e353d104314808b8b6ec06feeb8d471b58b60cbfb60cd313ee652ec513ee657ec716b20c9d62109a65645cf764de57e6af7b326f7ace85c7d7a5f823e663edcbe0ffd57fdf378d81afd76bfff5fa1a5dbbc69b3b96f9c4b02031a78f89c50ee3620e8b39ecb0c3ee18bb2be630d863f5d29ccbf6d939fd70ee976bfdce05a23677c51c06c363cc15de5497ebf4de8437cdc99ccab83091d8633e565c24cc310c3b8dcc309b67eef8ca34b7b923924cf3aa0963626a2521d399cf048e48ccfbd29c5e7b49719130c7c4e02e6addf98525bfbacdd43279f1f69396c910cf1b87860555a9cb244bef52f481adb3a97bbedfa2be3bc1cc2f2d93bf02832c593a657905064619e9f253ecf0bc75b1236592e5291326a7493b972a3439c9cf2c4d5328cd4def8f93cae5fac7cc554a1d9db9db4b3bcf7da79496c9cf26ea33917690b29c482d93e79a8ab88db1a40633a0887e38819420ecc003a530251040942635273110e30c32a47cd7e4db487edee467146ddae9e9022b603d388404f1f5b7815f47c5c284540fbf870fdf58488987bf8717fa1e62d8144a5d1586deaaf51656e211c55c4660e63417d23a0d560245c8bef599cbfad68cb5d96258d0ab66be6a5e83012d4b410258a86543a8cfa4d9d45fc665a3437d24adaf3a3d1a07953031d0b2aac29096b5d87a1dd294eb1bebb4ac42b11deae8ac7a501fd8f42ed4baf779cf7e8587bcdb0fadde3a11adde487d92fa21f52ad4dbfb263b3ec36eeb36d7d678bd06765fb7b93532d70892a7620db2d1913a64c08553f451438ab01e22c5ca2341535ec2c07af948cdb0a057cd5b8435ae3ed824d4470e913f5eaee792e4cf08d9bb1c27d2ca019266838b8a682ef3a299c79c8ab006b4feba50ebaf156ebdb1907d0d1ef2545f5d88ea2bac048a12f0aa0b09c587e094934785982b7367aeeb86ae1e3ae0554f41bca47941de817a26d159bd088a17bcb0f9d589684392ce30088a5fe12111ab4067f5a0a48943e8acce0391f9c84bea98ff4edf71e285098557fdc284f0878364eaf3b00e4743445be68b9442940851c2bd9334d96b72574977eef42aa96f4075400713e2fe5d9810ed30572fc51f9dc9d9d4d61dcc9226695df87921a1889588ef4fac048a90f8be92f9f0921686ac90facc4bcb7af7aef525fbb065ddc79916b61dacf685550c8b00eb7d21f6ad0be9c76025acf75b58091421d6fbf6923663295e6a1da8ed95b47ac396d1ba773deb07a500d4bd041686a52e04fbcc41b18777d240996135bc7aa365ddeb9781a8cfa4e1bc9b46af8f32caa67bcdc19b2b69383336aaaf7bd79dc3b576402deb5ea170b4ebb02b52eecedddc3ece0d656217ca7cff05314645ee600de527034b5fe33817f629828fad9052d11fab0c24c5d24ff10807832f773e8e7c87a570508dea83e5685ee4facc53a0dd6b94fc19417c07247fbedc5179033d11c82a5718d8aef1d85380fde6520cc2e96e6255084b028779784458500d583f3c50c3ae12f1e16b5c2550b82b99b006ccf785e6c5879734cf01537480070bea0eebf7ad3e8f06529bbb72ddd6cc657945fd3004c3db9775ed6ddd982b7363aea4f5ea12d56c7f2deb2a144b3fd6216cd1c4b02a4ada09cd2474d67d9e88d6170a566fb08aeb271e8252b1d0ec3e710974d65d6249674434a2796527856d491df574562fe98daeeb570cc023486e8cb596bbdc1948019884f9346dcf24d8fa136a6e1162e94cc847e50da1b1a8248d53e5a19c850a9a91810000002314002028140e88c442d1603c22a72898f90114000c8fb2466c4e1608a41c86619041c600420c210010036008800c090d0a008fc363e5fda3f1fe768ebe74f5e756aecb1691711b74d60dd7f93452c81046d35c994e4bdf174d8b211928df0b29cebfcb2ed6d42e55a5bd72d4164549208e9f1d937dd335f6ba2fcd5ba0a19fe6c31872f356c469fb746204b6efd00bec048275889133e7684ba2e07432ac97dcb8214db7ce6a945b0a2b550c78e1b0728a5b29f3827ac41265afb24dca18ae6ebdd2363f70c5614bb90ef9764578bb202a582d900ffaf52a35afbdda438ab94ce85910016626b54ad86b8d962ce3878a966b0f09ce4c6ce3818703c330c411621805e5cd6af6e8d62460377bb14736755a58c4619ce7954ca0edd96b1f9f4d8c1b8a5f8293fc566d212199de338cdb1d1d8258acc10b7733fc9e0ca4972846087c24f8323acbb13211e30a991b87a93652ffab53a83a06112ba42d54dfb8f614949fd14edb747cda42e014a93535c2afd8e5405bc8bb6c2579a1b26cfbff420af8b6b0c39a727e10dd07ad9a1a93bd01dcc7240c31d6b9c6acef03c47480db4243dac5f73e2b7b2f5d2619b12282c75362609f57abcb526c4960c1f80db690fd7be7f4d4a2610c909f3c32f7594ccee3a9c06d5c9b411f98f1900f97461497299c2d3c91673e6bc62023ac1d8ada3a78a6a323128802879c0d172acb59b07861246c5bae3c51a6609a3fe66d28559253aaeacab786a2114d94294894888e0351be01e5e4686b2a8ac604b132385e55f4dc49c72071e4052422a5029bba9cd495fcbea65e401891d1b0c6d69523807f98fddcdaa5ed950f79b1be8e74d2ca5251975a446b507fc0bd78f197ce541670200407e68298d5a4024947d3e4f39648a9f70aaab386911c06d8271636370aed099b8550e1db4a4d870f8a0e9c0bb8bc7a6b2285188a105566432c5188e316f6b4faa4c50d4a02297ee007a480444ece37675df0613f94f38ec5fc035199015f30a6f1d8f7073c0b4d8b55b793138080dcbb19018b054be462302157d4f9ecb161196afdb6440683e36641d3c4657608760f4c5eb8f47bb31e9e32ddcd94b2e35f395ea0774360b0fb945dbe915bac23b5ce91b0a4b74d26c32a84c71b5f791f428d14c24ade3519999c4f9add313817221c5e5fd73ec5b8ab699c9bd019212bc599f14c9b33c2f5394668f0ad530e54f2b046e2562df3d693b51a136dac89ac4cab4f49ecf4b289a3936c580482b6c9d02b9797202928152c28889ab1d1c74819670b7d44a3a7b859a6583ac1ab32a0188ef91b122b7e7fe541ece992248cb64d5d03606f4cc6f7bd530ad6586ee40a2f410624b4edf26ee5da33d9c5c5a51c463c0eb3969189d4abccbf72196725d1052634462f8690781408a3a4e769401d2a88db89b27ff160ca6921504200c93ded22d64eb83dbd6a4a09a6e4eca35aafe7a668bbd8bf68a1a7d001b4a77f6675003edd6a79b86f27f47580f80fb238db1e52963d3d4c79d580251e9582aa72b996d799f14ba96d30fd1f9e644251541250bc2123c68110981b27edee2309ae1186c316357973db37c1627ee104ed5840f6c3206acaab20118138e0d58793aac657a706cbdcf650edec3af28ae9888af8af39e6955ab7d3bb2fafa305f4214e415fb19548b71ff51e7ba000ea5254f91f8895298c38fd77a0af0e2870010d01102ea66aa6fc1ce5d42a64f19d4c9f72e6c6834cc5dbbdacafafde8b2a4d298bc1e6d9092431924fcdda87d44d1d16a96bb7e177d1273d3622833b4eab8b3910e8888388d4b51757278845477b2e943058de1fa727b16a96fe5a34f8a4f993514af057650de63508551fb452763a626d6a0a4fd1ebe161c76da6ca85c8c529bdfaa0bca9dd6562e4e418be716810aeed36b83753aaf882eacdbdf5ded99105b9500577d21596d19fb3c9ab5ea5608363d12f950fa2da1cf97c4886947c850846e2e902f79e04a2eadc8b0d9118092ac8fab242b282ea74e5f7eb28dc01e96a7fca1a79894b8a2624a3254bcccc909d28b880c8975e3987c518c05237d6afdb54524682faea1ada7611519892ed5c06f98f5383032ab616ea84f30f21df3f70316a2be889c64800480254d1b9694455f824538117db5662ac3bfa5a1043f90cb28d8a376629155002708e781b7a4b0bdea78aacb15c97cba3e1ba2d7622eecc3b05f3604af69149212beca2795a0d64608d872be91a149eb41c0f8c19e26cff3e67d4580129129ee170ea5d40b528e8debcf0a7ca6836f42668ad4eba1adb90ee8afba5bb28bc676711d5dbe178f5fdf5d6d9c049ebd720923f9280e33acc4efcf1139c0397630c771aa4635a001ebe69718dce169431c0a3f72f6acbb955fa7b41c6b06f2d4c08d7309191fe84d206957bf287f9eacf9bedf0b19c9a392716d1eb97de9a3b16dcf8afcf327183e75f395480c1a50f942fd98dffa4c7404941b47ce62fdae53b4f18d0eaa72158dab250594b1b3c0782d7882ef38fb1114b542fca212048c1193603789336a0ac1b5e4213001fe54bca6e83efc4004327e6c3199a535e5e1096227109fefc4fca3539b3f40768126ed2d90c567d406876565332a0d9b499fe64cbccd49d7cb144f38b8ccb86e7a7b8b067511ae033c6f66772dcb4edaa8b47c5cc1d0ec24b722953562b01914408ca97003773573924adccbfe4accc8db1cc829a97e1afd005a8c0578e53d88ccc1775ba5fe47feeac16a00bc68946708fa099039e8ad5970477672e3d4eca1833648a5c7e2ed341bd3daac0f8306b7a843423bbfa92d5f853d0ab04381c1e7cb1d750d2600971a96c09538f3141bf9606d15449aa5838b82c661058e4c60503f83c14a4a31b44082582de27b2c6f2d434faea98b9d37f77bc0ef2ee88030d241a073d651fb35bbb8ebd27fa5dda84ac95131891cbd9625a15f4047e8cf418f0f0e4435b514ed1ec203932007540d14020ee8e557245cdc77b0cc7c77a6dd45ef72cf7dba6945a174aeb7e2b5b057448773d9ca138aa43aeaa573d7ebdc4b827c820aa2816f15ba188665681b7e934a615c511a1276486607e61aa799552d730c3ea33b8e87abba3c469ef552a2ecf830176f39f25e135e4f93e95911a1607962b18473a647e2996fe104d7930442d90788f1ac56dd3b656c26f00a828ded11fb11b62ac226998ab8838e90ce350fb3e6e721938c9970465c4852dc0811db648d8be148a46435aeab67de98715c5a4330570c579166fab6564709152f9069c71032809fe23c748f95023ece78b288577ecc6970865b42b3153f827c61737ca9d798d239c5dfe955dcc7c3e30ad302d06af86a2f222d9bebc39dd1c4b39b5fbf9ee98061b88d2a817f3c8ccb62f558728c47e50768615c5896c97ab299b1a15ec7d6517f3060867605851e0b60829ac3819c46be2663996fbe51911f7e774da6604289c5bc96d0a56801c3938c2b7c45150a2b513e9a30f149445b34a3e6ed1e0eb07831d07f485f9fa0a53e2bcdc9af00628d42456c016c77a4d71ff2f7a21eea3230efb1a5694b0ceab58918ba8b7a264f43439e138da75969b5689ecb16d07482c166d395abddf9be63e3611befcccc06f62ce071282c617ea119589f29f77a68dd5f0b190ad0c165a9fbdcbc4abc9b1da952028d2fe71ba0efedede0e28045f6d19b95433d37bef85c09cb7b0b671997b512ea729a0f9a908c492e6eef0a2227c71f9dbeedf16178373e89de262fe7a065e0d1a53de3056cdc9d605603e23c091ff6f05818e6807b89c485d06547fafad34a396cf10e2640731321232295fa5113b9cf666951b420abbb9b35edb19f650cde8a167f4e8230b0419135ef4864b24c3192f394bdb3da8fdda60b037ba053d37f7ba349ee11471b82902ebb00b605416c2086562cd834f6c1f0324e65e5dab2c35a1c23cc1d94e4496cbafe88bebee243367ce433be224556854b415e3d70f61a11ea7571ec44090244d9c47831b8b184bcf3d458b212a32994bdfdee51d9644a1ab1d1cea4cab773defca16d49710957e3ec9963452f76c5fcd692c68c357d0275becb7109cb88741839e3e88ebd2af6e1e85c93a5e0a2715f011977292dbd7d618cab54b28359bfd5b15c8809ab27c4ebc11e9aeb93804566e4ed1ba93f44144891ed965a768b32b46bc9908f0e817bba6c4853dacacc98d658fc142908532adb0fc785d853208d99b72203d7bdd02e8820b9320e698abf38a3e3b765d07dab472804a23c0f022707fb98ad077f7f4178a1d5c9c53c1140465634eb11aa2d4f9ec4af9f2e20804806cb8e6f5442b87a0f0b2a4fc623e2d9a8862b90686f29caa28e055f81e532d0a82a00f772c61fe396b4efd78e082fec455c08bbb7153d59556fa0c49542a93308f0beaf21be9b110d33d7e24ba87341ef23f72b6fe0f11c0580c9be17852d0f0e197650aa574e5140a7aeb44159c2a022a69682a4da4a2a50aa5d87f80aaecff078802dba38d3094fc7c6a2f9de618bb29cefb9d606c5301d4a43312864ad4421aa1e649f7419c2abe9feadedde27c4f818dae73510d377617bae9e4e3bf2b044b0b9b3306ece505fb923da2c0ebb646d10bd104a1dc433236e70b7c2e2a16d82bcb66ca5e07761057054b6ec9b070a87cd10aaf146a55477c1e680e1033261ef0f01e96eb586b2c2660cc61ef756a23ff4c3728e792ee85baa0a0147650b8be039a03a8a883527045973ce6fad29c27fca6b34ff446b46ccee2602a0c524cea9108e35e80b538e4dabf422f6e1e99414ae88ee56d12931fd078d3f7b09808535150967e5728e108dc8bfe30b8608ed1f721ce46fdd90c6b5557fbd775cc0e615419472ea37ea5e45ff0c8faad7149cd980c2f25f585fe9d201eaa39b501fa54cefcc62d27259401e2947cbe33529789d9a72eb1092d3059a5b508cdce37e95d85b6b81f0072819028ed8212291d0901d9316c149a5e13547c0cee5ac03002b1e8428f90289605822a09782e2128a1db6f64b8b51c6876ae2f8d0faa405438ddb1116bc513c451569927ae0442401f5c0e63ba0dc6e1062da7ddd0290ee811e4afc0f7c793928dc438cc5d162d12949277b5029d41a5969f95d26c0177f2dd8307d2af79feaaec3362a343f1ad253ce1ae10a2e26b99b2fa79a0633445969710d637df9fdf02e05eddac728614aab845ff71f1f4eb64e430cee3dce6a51dd87333cf61f42208eca7552e318da689270f1fecc279e4874b1c044fb848bc357fd2345a027b36affb24432fa19bd4d1730fa310498e4c3f86635e05aeef7be040576065dd4556002274faa59cd0cfd97e629b2ce512bac2cd13e8d2c1407382b7dab831bfbea1edbb3409b11aa06435f6dc78188b4609afa4183bfdbc88ad1af82f54cf85fc66da15557f8afd7146aabfb17e8441775e73b23a2aec2b51f560c8fd65a2aac0de54167b3f6881e6e8e162efbd78adced295d93d7d60a4435569f4d03b83aeb62f681af139d8106980c9079ef2a177ce49586fe4529ea1a3ab68b67bcf2be5dd04404cd6c3daa0a9479ec7ea440408d0e2d9b402eb754a88f6d16d95bc361af0fc413931c10303c769ac4e4e1a9ad90a62f0e3d79c32f41fecaa13e992623108b1367734f46bf30c9d3a9950f2c861437bf1208b756dbef0337c7c17193786f4eb9c2df344779213e7c65d35e41e4df7bb5a37ce039a7e75521ffb3ef45aef6cebf289cdb5130c36d75827cedfc39a572d10a59b5178f2d9953e41818651724c826b23186a3f4e32fad86267586b417bb90fdd2a549bdcc8b7d73459ad12c0eb45d487b20f40b523329af0df8f437f03112f0a07ed98bc769b4b87d6e821235615bb680e9fb798f3e4deac35d3ce21d055387b769305324231a44b5139fd58c61cfc92041edc7efb032f0d05f7576025ec84e8604a36c219faeb68b595e1ab1d17379453674d0994e78712ce64b97e4d05899f08e952454e22e48188c00eb9863de582481f567ec25a0224b2b6a446c465e368512017274bd13c2a7eecbf6c80427c4918573dcb18b4f1b9a6ea9c07fd7d2c261ff9d9445c7d6788287c20f18f4bacbd7a7ad45f7860b45b27906aade9288c5603104d8d217d08396a33d339316817f9af5ac7d9324e256dca99927fb2237a3f5161671ca800d941d9cf760addef3941458c528dc57f2ce7d1c20591026b2c8e70d711397f4eca3f59bb7b9efd6923b7db68990efae0d4ccd76a4cf8f9475fe020ac67e5424bafcd25aa4073890920ef58fadb28bd1cc5f77f434dcd825c86a1067345e3ba2ce3246ccc82630df34ff085f20568bc00b814622e8d3625d24c22bc1e514e0be61b395d5caf2f6487adb5c4cc064fde41e4bdf1d9468e7647a5170f41970a72e7004b15d18b1133630ca7081aeaab57525cff91e05602c87c3eff3b75560354a1fe2c13cd692da87000cb29cabfd808f5736dabee0a20cd271e10baf33b854ad9c1639a5f791f47c0e55f244b9de43ec1c23648364e0c8b24320a3601a8bfef3770f8f2ebad8af96acca43ff4301bd3ef4c5ed5c9a2fcdd840dffbac72d5fc008311471fdcac9d947a34441c853d4148548fa768292834c9f557dde972aa28b42f0cf2b3d688b53d5071ba5f5a8bb37132dd34dd51aeed46697d82f55d83a6dc5d15a4a483a95702513bc622d046bd8cfb35272536a7a599de4200e51aed2fbba9fe9097630e3965c832425b260e8814deea5decd34956db2753f32c3288b293af39e136e7758aeba0ebd7b3cfdf31b21f47bca59485589cb0e8b5ee8e5a63ea5764867da517ba814885a726d5b1fa740cbb2ed4f638e876645891a5b9f768a32f2a03e052b3b9eeb956635b82d3f9c55e8da481da19539b20a7b53a4d112e74dfe24d2a321a63184a7598ab02ea281eaac6b231c6cf4b3af204754c33509d491d7315e0b7bb63dc543b9881531974dc59fe78a2c7b5e17fc2b03ba0b92e22d211b8b381165d1162b1c0e28760f58cc06f06a29aa40d8b39bab798ed20b6b795e95e35f2843c31b4b03e4729d516e6f0f1335aeff9c00675efce84790a842e9e0efb35f676cc4b4699a0cc33dee81ca260d3d1a072211004b41f271b5dec2b7d3edc51121ac531302b5a32c05e8486ad1913c1fc7811fa2bd4756e8cb7904cbed42122c3a4f72460cb15075cc71633e0e1f42beb25e7d55aea39bdf6abcd01c5fc879b51c9ff0a356bd350fda381ee7af2f5ae65879f73c49f29ebee93d029cedd46d77ff03074feb0cce158b0f0004a1117a153b1745c6f137d970c07b9419e19bde213d227ecb4a14e5a6121f103f1c95216d9ca4d342f8401b99d90a45d4e73b7292a01eaca0d796f9a1c7437ca4bf47320082a3ba2b73c4e9f1412a14e1cbdf03088a13c0e4b3d042c4483e29df59b9f2c9c50a02160b75b137829f14a54d9b32f5eec61c3455b068a184d420be9f868452deda1632a01ba15c43cf509f52d97567688c4b8e90a21580234383739748853f7a5c876fff063e6f45f52ab3cf964f5ee469c91dc47361680ab21f68554dfa25a6efbf8117ec263496d9683539e25c0df67e6ec4e052b6cda3eea7980cb5ab385f2ed30782bb1458a5cbf75c1b2981770cec8db61f1ed99c005ed4cd4414bed07fd05187de3ae4fa999c5a45959527c0f49366e5ee1ee1753272d4130859083e5b8de6f944743a4d86a8b591b184ee2bc533b12fee4075e97a218b3c91ede4ec0123130efa15c34186da611078e0e7045701794ced1a9a8187a24af395cded4e6d3f293573adca4bd595faa4435df00e2b7c0cf943364eca012485371096640bf23b07b199a0ccaedd8ce3642d5ca89fdc710d77efa53e79aef536052185e24de422c161f66effee381d7f52f2d5219ea6c5c5cafe1e5f2e65a0962c57a9077cebde7e4bcc334b9c18bfc3d698fd6a300d39a6591bcbcc1584f282446606ecb4254219651e1fa8df195b419e0147c6d4345b936732154aeccb5f074ba0301b2d53f241f25ba89469c05c01448043284dcb53bd570895341970f57ba0422fcdf1e74278789b3ce7424775152204da0a21146878b927e0bbc63e8e7f22adddc11e72385a5d8ccdb4235842a7790cd9099247238194a1eb2d2cfb34b9fb1214b4d12e9b4f9eeda9f02cae30d7183d2e72c1e078848bce6444141e15e0f13d5c26e09f0eca5dd99f0b3b0386116d2e7e70747a07915a216402bdb3a0f75cbe74c00f4cc61987e44bed4c564197aaca07338f5a94321503da5ba052df028961aaee39845e571f7f279ffbfcf6b98ddfeb60d0f0ccabb902d092ef6697d53c8017d23a258e8a081b183788d63b188a649aeaa30cbd51a7afa668a633b6d325487dfe26289c8a5881924f403dee5b10e0a23bd2920a912c6365a2dc76a39ee6e2dc7489a907e4703cb5f4422c6b73c1f4d56575cd40c89d69e52c6341d11b1c7b356fdbaf1de250a0175a41174c823a78bff73594242b102799219c1d04e750b0242aae6da90073470754befde41475f89ea461d0ffb702865aa9f8bdc18ca2eae7e61c7a57fd56faf7ecfcf26a36fdfaabfbb8673dbd4140027f490d87d6ee60a71b740016c43f53d9b87a868fc852779f09509a23b2d3990eb83b368e9dc9a0b693cf293d5ed02349d811a1fe6cec2668e719fd988891d4746f1e6bfcbb24ec3c8fe8ab4672c4a8758a10ca184278faa486c6e110622040c3ae20167284855a4646364af4d0e69f169b916a2a08290bcbeb3ef5a1240bcab5721630ad3238b56f35584cbc0721300c8c9d1294ea1d55377540a1e3f72048638fdb1481681d3764af8545766b529dbd1e4abc2a9b0ed8eb7f887c0af05c67a8187910e0ce78a54e7ecce08e34cc6d24254a0c494ebca04b1c9daeb43eb05bfd826811f8f61b46606b8a6376ad29e1255c5f12b08007f1fd2e2c66d9b6f5e87dae618219d76aa27a5e70f76d6b697e3ff9d9583c556418f6a31af7294c990314762d94281c97ad8759485d0d078a39bf51ba1fa2efb1e31aa78571d53a302dde9d87b258dd66511e1043416e0ef3e4b5e0d4455f54c367a625276f05581087608f2da44c5f9856dc0b3c8866897a4f102093133f4a79d4b350d4678e72e2be6f1ab01fd7675bd68512815ff792adc3fd5d56c620f6cf980bdf3c65af54d47500429175c8c2d04d0131f87bd8daa54d8208c75e881dcf109b1fd6532886574fe1549f614c25273539b8579e32918d9104221d7397534a4ca123aa6ce3c14eb2508361d1134983a18b94365aaf6164c3b68a68180deeeb86600651c0d48e500d3e5e7a0a1b20d7ec7203a604def3fc5130a8f3b193f4fc87f79246e7b0f2cd4fc3441231a8e0dcca4452dde4f79e54a226816e264ac8404fb3c8c416eeb74559c00eeade4f671d806c62e5a0eb618568b7595c9bc6edafce8f9fbc10847f8a7ac0497b7176cb3d204e479c6c0ae099e0f403d14d583151ba892074b750efb1861c8e98e217894e6dfec1dd8713297f6bea828c26080cecb28ec63eb58b469ef6d719221e21ed9ebb129e2d42cdd02518686f4047c53ee90d7fde1846c5cb5765a2089dd5242d7538e8a009b4689f1323887932f990f54156c3aba94893fc6010e6128d74450223d06b78435a9280a6108a27f80c6e74feb544e0d06b176a7dbd76acdeda6fc0ab93df6b93475ff5cfcf7ad0f900f1d77440e49e245e9f157f167a817d530c5e916ddcd711de7acb49ca9ebcadab784f0f1fd4c478cf4a7a178df19e2db60691c3568113b2fa2ec73ca10db3d8394871f6793317751d2beed6747ab8335065b6d2f6c44305b3f1ac19148b6af332b39b3b7d952aed5a4231cfc784b7d6556bd4d278ac6265df363d516ec92a44f25ea4b2ab4b68afb1892b18a44af49b83e0a02d385eb811105f9c3be3bf1906fdeceb9abab4dececf89361c38fd0eb687619da60d9c015ffcaaaf79340b4fd4e51e70f2d3f2a3f72cf9cd2c21b0d60dd4f02ae967ee4edb68f721886a22142d6b3560bd8140c6f6537e2b2e68dcf55ebc009d3fea68ccf80e75a56b0612ecdb10d43bcfc44271e2bd0a01846f497ad371ccce67cc2fdff8091f0eac1d42ec632300ea0f21fe08833961b1f4e20fecd7595170b57029f64b27e70fbc36c2f613035210f936172096de4ff706580158743dfb0c62cb00154bdc4f5cefb620f6f14c6900b9f72234f0b14a47c74456a49acb5ddb9da6dfcf26f61c77d7c017eabb0145684cf9399a1efcf19dd0ba5d574c6a78de7b9f525edd9b40ab8a83f90f9239206f2c9556012bb51a0481fe363e25371f355ee271d0034cefc6a477e5f872776eb314bc8641fef157acb0dc068864992c75216dcdbb038b9bbbd2532934336720f7dbc16d720f90249a1bcb55aedeeeb80000843afbc8f4be38d39168a754a69b2d3e4feaadabe20512d22d3f98019ce0c462b3177c659f9af196171d21393ef89125749ea1a5677435df2666992cb21f2c271348924c23611b5bea8ef4be650aba0ca7bfa6cef0aa2bb2ffb477f820299ed2fab250f9d73474bb26f2f925bd7a0f8f4f3546249042b742e7b64cd063570d0c4728a490f2e94d991aa364b28e3fec6a324c61d657b7d22e02a38b7ef802d44ad4cebc840e4503576e6f237e843cea5ab7493750d0423e3b70f5f5220a36399ea1fd597e2383dc1481a7c9ca73845561e8fe782fedc133648c1abe797bf981022dcca040566ed745c568d53625ba407bfc4755db33414c0ac1caf9a3c24d5b10f4c924dbbaf0ded27a7b51f27ef3e39c8348c4462da1cea7a67a62e33003c40e1ff81c8a576c2bb630e7e5ea47c936149392dfae66c828e9a944b70f85c5d5641f685a6e5cc080832ea2b06149f4498ad78c0096e36fc59fa7241379da8deecab0fb04b8c776f7aa6697a170d048f1c2b06d002d2f5599a02ab1e7cb262d21e87ac0c9a958aa3acf6d0263adf630d2c83b15e22f3cd7170e6f3f1ea5676e6f9a1f03f8dafd603bfdda23b27d2d151574065c7407988a9dc87eb39ff6cca418473158ec073bec67175ac07e5b3e1a900c3c4d3cb5428269ae84c2ad5f393e2ad7faf952db3e40b47ff3a84f06b37bdc484466f38e1c8234606dc5741361a78cfc0f7d4c18b2b6decfef68015017dd005bac5d9ba5624d56494a2c6333c95547ec8757a7324107280ac5fd5e008ee79ebfe368664d560c9deee8739ceac9713484b738d9dd46844cbfc522b66ed1004a82e193f5b75838f2e63af8e599ca2aa5ef92ba45e580eac931471b73607f9b08bdd087ab00610a220f28c3a88f640550240577f552e47f75b8aa852a056e2231db3e6f9b893b1e12941f3126303e0582d6a17d5d792560336560a4432cd255933cdafcee7be7050023ee2026eb7892115c291dae3149c9e14710454ed7ee16ba791a699eb7135885ff39b4d5f623a25bb5f1862973c582c036f9179b7c17c99ddad7ed91064424ab28e6cdfb08aa53515dc52e1bd7742291f84b20625f18d78d0e0e7d311d33a10f741c8f66a4a2a8037642762c6c868b6efcf1d4c54e3811a4a21074a85582365f206cffbcbb33062ca6f8577a7426841f04838f7bfbec25e3ec99d00510295ac14c5cb9e6611d39121aac48d38b22d0695aa732cd68df3aa072ee2069466b3d550b1c241b93d8f5af01fa833a9c888b9c5c77c0d3f2abc33ce4da374e757c8399fe657da7c64792426040ab41b389feb8d7db96a72a07bfc9612007b45f964f54062897f640ae1c64306a0cfc68a13451b448c2d14d6f23c1200b6578743815650b38b404eb9345c77d95f8b8c3246965550efce0f539aae731894ce50f6d809fe15335453326823dafb60acd081d6b608b6ed88902bf82f1c3bb41243375fb313f9a2e168e04ccdc8c9428c0f69577a1f7f06056c277910017e47c4f18e78775222e1c315660f1040c391b8d75694bf29d2ac8266dc174051d3a4bbc40ff69079bed802814468cb70e6c914fa9de7b9c65200479d83acd13c7d5f1083fa654c92d5fed42c6185fdc651d30ad094e63ae63dd3a211de6bf9918262e1e222a16feb74dcfd87591cc5c77874b09aa60415f60ce3094a231ec4d330ca5e47622d35f30bf6e8cc73e14263be97b788283d35446943e81f1ec005226f84cd1d0b5916243631e5f508623836774f83930ed19093a411b0f343432251215926993ea8308b6144fdbca8b99e34026aa81213b7fe3fe45070a530e71f60818774252e0d99c0681b7a61b6b50d389bd0973fb3c17d621b98c95fabe0aeb7e6c3ca2820143fc59a9a1680308d32d07d3279f64922ead7ef999afebb2fd3788f030c01721a4f5f4e00f281a76aced325375c006dbab8e1821f52fc470c368114cf71766715161986f406bc4a19f9b3a580c4751ee778dd83394cf1109ef38ec140ad80c6684ebb63d246371f400678b6e740e7e7b49656ea17ed607676235610e5bc197d9b09c851a6daad38305045e9b67c97b799809c2d51c6d4476e11f8f30bfb770ae93436ffb901d1355ae0d8e2077f6f0a6b4e76a4fff7c7d25cd4a1b8787702ef18aea8463b58348c520fc114bed99669ae74939f156daa21b95ba8296bc66e437cecc1f37a7a64ecde7f53945acd360e91b49d4f673dd17bd353290f6b8328b9b1c221b440143c7a300216fe639d4c22cf2df67f19bcc30c72179420bd2bd39db1098e4d96e87b3710b52618291549d709bef52102be954ab65dfb1c63e12a8bdff560071980fb83a70e94127c0d563664094ae065178b4bf787753104ab0bd8010d9f88719ad60e9e26b37409c0dc39d1d6072f6d21e26af534c249825a5c1221a94bc8193a2ce18c37b449b955a50f5bb9edc0252ac059c8913a2c5d5405c72124b34be688900b90f42d6abdbae500018bdb00e6e2aa45c92c70578ad7b14a9c5a1072e967ba48c073fe4be07ee30d512a6b3bc1db8a8014066ecc2bad7a1badf26c086bf559d4558687380543d0839999084e44f855294c7d2e714fea0b4940e88277502c8fcaa02c8cd11072781d5e129e0d6fcabe9859600e787c7ad9daf7645a19fdf78a8207ed448a9a411cd5bfd38610077fe801e7dbf4027e115d3a46cec477d7871795c9f42a7c4a33b2caefd22881af5472d9a8e8e8afe9fc4120f0147ccda8cd0e2213e31bfb5d48dae342f24d6df84aa92e2f15f20d0138629231d4f20c61c2e05df5468ff9f056a3ff5cd5bed50ef8fcdaec81f691b553c1b2dedad7cd43c9c7c70b2b7319ba2c1c37438a91e080b00da22df309b5f4bfadc115378e439b08f246450213a9ef3bdbf962a4dd530ed88642eeeabbaf78222dfba87feb9b9193c92efb0cc0f5a8deae25880e9d76bf45a210431a9c4dc05b7d380329304c8e88ecb92cc9b63333a61fa79fc0118c60e819678e698beb140e0d6eb49f540c83f05f14175c243bbb67466d3e7e3c098d362df669e13c85e41b0e51a4a2c64206c9869e71de44e6e0dd06a378ee14dd7638ca210adf90b86cc9b63f5b5d352dbe2216b96e0c7b3e2038da0647780c805c9c87712d57ee3a25963550bfa61377f08530c35075d448220604975ca9a192a82f823b57fd1b6a1f1da2c740cd1ba04212d13a0b64e694c4c987ff9f2aa71a997568fd80f0b7edb1ad5854068ad78cdb6653c088617dfdf89d4143bfc6addec67c0e086c1a80b36a6917ed0117bcd98d807b9e01a73446274db5ef11b8962e5b1a9c44975a62b8b4f7689ed8bdeb72674edc745945715612fd1550d5dd2f3b83dae5017b350d5385882afd967bcd65382dd7eab753812c925d6abf1d07ace8fee34a6fb95a739ebd363786e08c1fb3930010f899fb80f023efa1bfb72228366b5cd8f516b1cb0af29e76f1219155edb5f9de09d1365633543507d91efe648ed9b43057681f10aafecdcd4ea2491c2f86f7e4700e6e80e558724278c650c3a7861d8729bedb8260d3ada9d7e4b9c968c0d5ce55131ddbb98aef2301ae828c300a806c6a7618fa93f5d31357b3d09577f03b9e82af2e302e84ed34986fab847e5daa12d7903441b519d475b4877363c67f1387be53f3c0ebbbe4188de50c77dca40ec69c55ed32cd482c3ab867862dfb46d8392038283dee76f3c8440733391d22182963e6fd87a4daad9a3ac12f1cfd0f1a8f3757221cbecbab7d996e27fc7c048909e0c03fd2106735ada213d3e1a54436f062df4a9a2855e7ef2b35c5343742d91ea22e83cc7ff38f9ad7af91d2b676f33857af59af8dce7fc711a5662ddab4989e98ac47ef7a1890cbe8f5b491bae121af4b18823ef4e884d4c60957b642e8b27729bc2a5c35e43dec0f5e6ea1f7ded7b22b2a8c1851144af323f9c31628533201d5b79c01a5c07d6d5baf6793fc1fdf4635818d6df95b6d91d0f048a8d5d64206e1c5a3eb47016c5b9702e6c9f3b466b2c5b9ea6f3c18442bcba9ad44c14bf3ab9ca2ec4bd75b5256fdff50d8ec26a581418348a88a1f1bdb6d851b5efb84e5464f5e0e0f4ac463c4b1b1f651e786a7e3f00c20a83dc94b89ed615b87e2d268887be5a53383c9acd62577a29509b316f86212a2957262783e4a22fe81eed4ba2796af15aefe345298cd24b5c56b0c6ed914e9ef6cb1cad6ae0d96abde005050746b54a77cffacc955a1db04fe85f9cffe027063d6ab9b6330176cc7b08f0deb5d60e61f86cb2eecf457bc4b5f69707f8f48b41bacbc6d233b2dc47321fc18e4cf7ab21d66eb3e0aae051f24c51f4b96ccd26961de4be52927bdfd3fb6875cd1f7d845c730ae685e5710f919e8c3c23c8564065be23dd3322804a91c010b0f43f7551270fe9f1d652a6c4a1f9c0daec1e2036c93db22b694b240b71a9793d88e02486a9e624e3437748f1c2cc81f41847c06f9df2ce8c2cee548b56adc56eb5708954fe7c9060574bfb63091dd8402a49916956b39468bc9a4d0bd09eb5574b3e26c4415046268179b4ad59e78e7f6e77f9c9a18bdac3b3fe35c2ade8a50e6c71a587b0d0f04c070ed612442ae95d247e4826909361872a6f450d95e4ff837d1fdbef08e48bf9ffdb6f77d1353b21e04c0e3a22d6806c7905a44e16f09954ed0b9f0b918e6a0c89c5e7d02d718bbf69bd332c8c3e105fe234e3777d90382d84e68d6421cd6948674469e66384cbb0ff609b0cff242f0749cf33b3087408dbf856ea70e734b5cde2d4d67842bdc5d2f11e3b5cd855e9b0944c41cff37245205540d74d53e07f1550e91f3c6136eac7d96bc10e70f027f1c751376e01aab061c01f2b45bf5c64abcbeb0255eef431ad9303813814d3ff22ff73b48513293cf43f92373a93f99985c06cab767d3d3724be92a7bff16059fd3638f83828a3ccd0ab017efb80ce105867263603104aa6b1040c162d17517923319427affe4643f8bede7e5e1b5f9909e5008344b092ddb66d01435c8c600b926fd2203a02c9367bc0b6daea71c96dab99cc6d6756fddf1686fd283edcffedfd4be2ac921d4827d5feb8a46a0270ce146c812fb8a003bf6471c6011cc410ce9012097ece29e576626aa24639a6adb0dbc0345b612ffbbfb42b6c7348c41bdb58e44b6e43cec39374fd28e43292607c7aada271faeca4025869bd9da1469f26209636f8eebf545538680bf3ec8cb5a457ab3870ff63ffba246dacbc5ff283f6017b022162ab7fc5695ab7cbda876095b92147662506de0545ab3f3fd9d0b8f43e5d83fa60c3c571da3e6c41238c3b1509de7c411779225d46162ab68e90ed84a15b6db2b878f11d6046d1270dcfcc5e689b62b8ddfd21c981c3cff46ef2459cec6f0b5b1d7865c69af0c534db88e5cc8c63b126e0ab734354877c6fb9357ddea5ac46532a0ad90d36f4a016f600d069ab5db6c42d3343cdccdc2d5f7519b0636cd8bf9ecbc94d17e15b53a1ad9901504cf62dd46669a4701a7f46863f06ec4e0813650b687b50e2c31a989446539d2446df61d2fdf0ca500b7a600588adf60c2bd4060418b7e6fc6242ccd2831b6d61e8e8f70f2e6a1fe8e934d96b4cf90ced2ee01c516fd65b572b551d7c4eb55536bb3bd7125f5e9ecbb8be472f2c3929010d66bd8b0c6e0147b7e5674867ecea66d35b3dc43f90d7f607f5bed8f6fd9d6bceaef1e374c6f0d5aa780bf5e6f6ad7fcebc6864d06a32304ecac161910c2506e1d8e86cd0e67a2b8246714d0ea01c287e6f4d871c3cda8bfa681307b0b1037a3d5cc115d9213ba082d2148d431d4a8f4ad6ff69efdfa6cf6e4fa159c86b6dfbf69d02aa05db14bf6bd8b1af1000b9b359bd03dc6e00f43672a63df7447b936397e8ca1d68303c8807cab75b1f255d419209bf4ec444f0c0b5c6fad273f768cb1e098390290e97edc9a273b89e55b805c032a3672e93929829da491d52696de3d2005448a871c920d5dff6603651d8c8ae08ecf3c3d8cf3d52123c5c80b4c4525208aa74b16fcd484101806c9998e65eb50b7af701f96576ad52436437704a73d4d6e7e61e469bc48034c2abc227275ba0f8a1c1b53330f6de30a2872c97f612789ea50d28319bb97e64c92a87ec95d0ba110c90ec057d5de5e1e36496049eb1ae4156d7b3017a8e6560381c0cc289ce183f3936e42a4aeae643973e220f6b55ff0da9991b1ba301658b103aba8813a20569b4f38d8b7cbab30a0a03554a818c72fdb25e465fe4f4098e9caddd83479cb2f219ef2e9bcf2c23384a7dd94f6e3fc1f1dc58580c614b46f9d3458957b68fd318cf80185991ca6f713368f1f925afcc8d0101da768be9c36022aa5fdfd043299b41286fcf7a92faff043101b21b28196bef0157b28a5f7e0a710633ad17fc4227b6bf748459e1b27d0621f2b9a4c60ae08d8ffae4f746131d1310bf3188f4c26adb030079104fb7f8fcace8c44f4dc0c32901648df5d814704dcbc920175114807f028e4cbaeaa04f39a7722a7e0c188d0949de363232a599827d1fa9eeefbddcb7257ceb616048a6bcfc1b99961762380e3a06b6e5fc35815218f1e7d651b444a1a766270522b2b185cbaee77bea2ed583ede8050db75b2652e44f230271571483f718b1ce6e8bc4d673bbeccd94c49bea3348388016008b7098e6e44da549d603c5350a47ee968711c3e9b3dce4724404a36bb6f44ce04b54bee9e58e1266df6e681a34c21833f3108207fe4288605900056b60aa961874b090bcc0c688b62154be4a5d2ae44422fe10a4864b79d785bc59b943b67f67b31666342ab1a62c4e988d671e2cc7872898b5e9d162a784e806e3f6db2fef8a003814350645be4dd68a84e609c53a03e227436004c9b65ba7da75229fca39426de28051acd6523d185dbe76457ad964b1ba4c27d8d7e2afae03af6fd2b5b992f3d914c2afabc58f4450424ca7a7f977cfc3dcfce3f15f69110a28438bab05595e59e513c14bf0456db986c9ac7398fdcbd2abfe9edfb65341919832ca87cf3841496f466b40f494e9db859cc0f557b40b2fcb6486f86443af373a2293d542aa9ff0ac857977487a09f9370b12cec99df24b6f5377eb9bbe05ed94c13c3038bb3bf6a3f343fc73c2b341370f2cbabfe529bb1012d0eadd04f277566a559385eb379dd176138c135bace69f5ecff8e26c35976a86177adc7084e3e86fbbef1f8992e898ea0aadaac03ac7c709591de2448e1968f95f248cd330e51f889731a011382955fde7cd41010589cfbaeb5f3a635a24fbce3e6440e09a7b840620193e2d4fdc4c5e02f3da8dddf8d1014cbb914ce8c58ff7227d407d5798dcefcae5a1ee8088a72814727d264f67aa0cbe5e41f13354fc9f331f845c399df96d2452eb375283e96dbc8b3de456ce9dbe17a8643009d5b71536f21efd40f23e1274c780ffb023747516298ef2acc011a4caf2b434e99695c7141ad8249247b1fe9a045f9e8f885b01790454bd4697ccf8b94bbb4a487e3dd0d1d6a45acdbc7c9ccbd3e5c08f292ec3b4a449712c4c0b1c275cbcfa8842bb0f4799f0aea6c3245db707f7a3c08814615d00536e26ae652f090ede1e53758ff1ee63313ee7e116f147e043d4dfa6781b23dc202789a7aa3202e8430ae19fd9bb948a08c63da2ea835d6114c6bb9963a1c647f404c0d4c9972792de3fdcfd8eed93b55fee311704a414ae4d4c90d81af3e48176c90880f1b7e218e6c185c3503af71712525d42ea95e5159e88e150a9ebbafff548a77cfba34945b525eea81f0576049791f1c2bea67087affa9685d6077c05797b39a32552de7da7027e43ee58f0a8344ba05ba2a5b005ef5588746c54601818a631686707e1acc26f87acce043211552b4f47ad66c8bddd919dae5f5dc4a59c0438c775586f81a9873102e5c410035f1cb685c0115094d51f4743e4eaf0b2441d17b91053370093b73f890d5bf678b7c56c8fef4cbff904600806714fde8e0c117dbbb18d9579adff966555cc1eb080604ba07d15583e0d2c4a1a78646d870baccc04a3f3dbddf1837c88badde4c6aee82e376dd73fd8cd078611f86021814dccfa5c8c4aaa638ce839d61a502c92dc122c3111933dc6b4f530378292c778df8b8b9e6a696e9fc4b4f251fa0df6d1b012446b5ae2a1ec18c11218912e7ba9e775fe62595aa918856b31bf74cb0c93ab89c3e4d2158d8ef01449fbebf1a1afcec7e54f08bbf355774c3209d9f35ceb43be495a6eab7e316e57f85c1c23aa8c105ef59ac2b34aa4b5d7f75d90829be82ee1205d11a314f4109675275e2922b8c243e050c778f2bd72cc1d16cb7cfb351407a97814bc8369fdc0fd7644d54f2e610242f5455517671cf35ff4046b3bc007e9d38ed050c595e103a6f1ea2d983b610c739d95791b3cd8586f4ef18e9e94760fd75f5f64c75069587a4efe5cf9f43fd9aa9f19f1bc975a0b3ea8523b275ce3a19cf8a1f41ccb638a9cfc520f06e64c21138a2c938ce0298a17ebf4a989660730a529ce44130a5b168f41ac5ba9f44979daba9bc6d2b15dff1b95b619c1fcdcd23b736adb9bb801c0f6b2233939074c5d7614cd43372fd3e3d700c5eed9a689eebf903d3c7be84f09111a9f1585429688a84eff713732b8364622bf9dd46b8ac104d6e0a2a8a6315d4e534a3369358ddda5a3c14d2df901134d4aea4bbd2f7156111646394a2030e8d6e5d74ae3878830676c84d0f18187d087674acc073c4734306502a7f7406d5464353749d9abb05c575358d5a7f6637a3bd5b08d54c96ee7455b7acc603cf20e973a5c5b1de4c1c891a872e1116861f4f09170866a26a255d2f71a04561684cdb4231e3e2ae5950cf746f1fe6ddeb8a450652a8408d4c9aac6f228ac347017eaa92fb3bd75e08564055aae658305a3c17534703412830e77d64f82835677e1679d6d1578e0008b9d5db72a1b6b41a9b441f1f442f4d498fae25cc5b0081c1b65f0a39a2f85a9b52da6ab1dfe53a14d36543ad929cf200a4e2dc314059d7c17a6820ce72e0ba334d86303f95603b67f928310dacd0aed7df8d0fcd77c68e5e82b8408cc6372626ad835fea6ca6bff3b4eb15bdd4199bdf890d05f9a3b44e68ea727c6df354e95c82c30d729f0d6b98f17ef1cf5554043be5f975b07ba869c52fa5098205329f08b4e905c64c0e8c701947b4e4006c64d216de06f4b2e5541c188a7871e083ea95b086ccbffbfde5bef1b7f222974aeae36c24e2308928e2bcf3490e432891eb518cc586346155fe6bb080e51c809217a03c863218c567b2bea370eb8799359bc6ccdf561c922d778d859b46d3a7048571d8628778d98c28da219a26076ec05f6d0d1ae7d711b2dbdd83bdc045a85690128e029609209faa8acdae6e414bda3f81d6eab1fecd6211e4953b24ef14207433d4573d380e5ff1df8ec12ad269013c57ecb11d79738da63df1289bc87f29614f629c0ee528cb8b7734a13ad8445c89b0ee167d7d2f0189e8a43120c6e28fb114092c778ced1840c38d7a27e2192800df96b8182dbf8b883bbedaf3c042f390bf517d5c1e30dd8150d9c88ad9eb4c5cba145a978862c01d04b41251ade57d0a814ae631c1920a255cb16203e51a33d744809f315bae15d3a4fd404697ccafadb308fd047019e787c20bfb2ee7ab17d7dffc7d962b8162d2a15d5af38bc1ba244989531cc046e46da626cd245da1ec349b9a87e1af3cfb9ab2095799eb7e42678a6f520192857f139b0a711f20b23828a34af753be6fa61df1100a2a4d8b473c8762e40ea6c787f7d1ab57d7b42bb5afb3db524cab409fc752620330ec4c1ce10fbdf2d12e684ccb3980ab55a108564e295def99306fbbb7cbb5aac195f8f4e706726e644ad14130e41eba726c54ad30a6da28807c22b442ad361db6cdf041a2083a45bbb8775893a2b486cbc731eb1294a8dfb7edf1deff9a699de7bca8292c230e0f4ee0bed65c241ed8dd20bb21e32f6e72ca22df93c76f82af519ecdea0e6194a718fb2ed7878d81ab53d0529e33a17435df4edcf82f861a6f70a8af3be7a22e961dc1445a65b057f0f4e1f463582e7b34e023150baa1e6bf69614c98793b3be7b136ca1efe44f5ec042a191d6e815b44b70d26cfd91f7c933ce2fa016fec6db4ffd655e2e293962b8d2ffbb8cfae0e90866366a536ceadf67b5f51c63a7b1d23e4b8ac527aea751e27b8f2ba4ae880df66e060903f96a3ef45618261eb1a8892bb244df0b5497b8b3b1753ce3fd0c90394009773f4a9f0e003d7c11a2e2276261f6d807ab44be0301ea7cce24f9b4d40536a81982bb55a5b1aa98593f9ec2c956991dd084ca4982c180ec9a00283b2f59bb8c111eb36e55ece013990d87c000dd68c791bcb8355b62a046cf7e2fce1762a993c4725fb3d655519f53459729da588121cd5b74eed2f84a10fd1c4ff6424684081e0b750c2d65151bd26f9b20484c5a1e41edc6b6e0113a679d1af5b2fab65ad6228bc5ca525ae6757604b85e252015d096f06e3610ca5ef42a07f3331aabe791b0c8dc1f6d034d340a61c1d5dfa6a58cc15c62bbed2bbdc947519f0c03140b1ea5e8dac46052f06ff656859b95783894ec5827101628a5f4bcc647d6093776855de3b3f795c70ccea0a7b5f357c5248268ab87f0773fbf8dee7759691369f1f0de7cd83b730e0e9536c2a72f3e5fb4ee62ee095654521109373b3606d1c8eae7ef54d630c1c07a519502d0378ae4a65181190c326d48a70b3e4c1476529868578395de5e55a26a0ef16f98034731403964403910bc32156e1f2cdd02f450099c6f3b25c0cd0a884120e10aaeae9598824aa93068d9f9141217e2a44c8c9f3277aa745d09b9cd038619c340f5599191957e571dc153ee60c06ba68acdfcf13555140c020991cc8d51d9d56471ac3ac1b7f031ba1ff2024f046f0c03a59a6a6ccfa153250d04da2c95a5ce53ae37551099049659e3b966e29f15d8a26870a4b8369133553b1b86d27d087326288d61a5229c890587567b68a80365fa264966d1015fb60fd191752cece15e26c875e4d92ee8150d2feca8be96ca5ad9410a0459eacdbf7e70fedbb32e92c6580b400e717f51f428c5dd180988fcaf0fe20073b0f28f84d2b852238f1d01ef82e918a2101a454132f85ff966f19056c440b15f10113486dccd00204cdf7bc574ac6f4ab8004e712612f3fca869610d4bb8e81b7a182dbd7884292348f203ac678217ccca57750ebdc33a32506ace43f2340048ea62625dfacf0ff18c37012d05f2fd4963388f6366d9e0644d6bbed0d5bcaac890390db3f7577a4669e6925c42761a18e26f59fc09c9a174c821fb79db46872a6e20cacee0110077e87649c594ab55677376256a45d5f2c51a6a4a9a92ada0113933960d47cc00a8a0da6422c84a368878556dd0fc971aa4fb59c3127464932e1d041dd18c4fedf214ab3492923bcb64264650867afe1730a6b498ccad35f4450a5d42515cbf7728fca23c0d34f85f9190147ca0cc53df21effb9216dbe25ff85706417c6de516a099e8ae9aa87558c95ec297c8557281b5058d13dda783a8d0789fa8c167baddea12c37ba679decec157a613f49c39de15769afd8b6a92988d40924df0a8c87d4501c5ce51118cf241007cca08686d632e127bc2cba312a18b4fdd7409b5a755147c8cbfa03a4b50428b198f8d60493e60baa84dc61e380d93199fbc2022faa2be04db244adf9c2219e6d0cbdf2536cff475d40712663f06c52541f95c99439fec90102da2132b45c1093b756512d2a464b085581102525f647ea20c53b48207c61042973ced197c7690d3052dfd32b088fc0f28eaaac1fd0559421f9127c85d3d7d0a2b4854f74305784328521fba69412147faa1a7890ed4d16b2747330cca81614930e6c22d0fe55b8d5fcebd5cb0e18484c49456835dcecfa2124ab89d426b1491569d688d64a893db1c5d05542c78d29b31c729e94c835e9b76a5951c239f0b4e8abc08466521ecb023c8236e78b2ea13e4303f28beb82b345407456d4eb4edbab8983f35c4b8721c1ffaee026f9705df285ad996e681298cdf9297ed9cea5694d93d86005ee5c5a5d18e1349d91e31a61a0111611c9f9207d5ef9b12ffd4d1edc4abfda3da82da52267cf8693b62282dbd2856520990ce0f44904a7e6209cf63e9c94caa4f6cfa4d5b7453c0b589d2657628bdb1590b47db65add45ecd6625a0bbe2ef1bf0e74a23b1da52837e72087c3627193927d9903af58c889c55c5b7c0e0d3b4c7b7a483d2ee6588a356501e33b3de8d267db29965ec908b14ba6aa426bf7e9dfa3fe1ebc814404fa8c458e78d9299ae593f33472f3ca2f98c68c03ac5dd402c0e9ab9209c04a8ce173d1e0016d1971bc1d6e66a601c49e9b0a11274ceeddf8891428b167896e83fc5ce5601875742d610cecabe7e086a27438a323c0b5755d7eb88206c12c2afada7caddac6125c917454483a1122fe23132cee92e236064b4b4e3693aa3099f0900c5ca84489a9fc7b5d8cbbac8f25ed33eca41bf0cb7194836470747e05a805dfa2c5084158f26c62625f17404b500fd63548ca6d61993807e01bb209540fe1cf3f9921a44ff0b9cf0e88b44a1d100b0429b477c7f6140f3ee140a6821acc5326d57c1a467ffe4444176ce33e5759975eb3b48dd40922f34e623494e7924b892bfc1b4bf085eba201fa2853964cabe0d049f4eee635f027b5b142fe3cd69f10fb59aa40d7b06bf6d9fbc1f05288a6181299f6568ceed998427694ac64a3a45c0786c50e05801c200a35811a0a89e8a5ee135fd8b1bd0eec44b62c69c6ceff7865c952073bd8a9b94e1423526e10fad5871186eb6932771e983d19f6888802be3c0bc2e3a069442057b61dc6124a6288964390fc520e50f447e2727a6e05184b3cece0512074dd700588405566889ed3522d0283daa0909edf0198597b4210356972c4147a089ac407dd4dc09d99db0beb611f8c91bade551c10c831a06f7d7bb0f26f0da1ab14b5e550b1d3b36e2810300dad6355fe90f9f0bea1f1b0a43bb26621f4b3f722d87d9c41cfa2aa0ec2115fa4d44a14e4bb2beb57027e2107827749ddd11970892f625bab53b15a8bceba9865bcc8713392548fe19b4d11eb0fa575a1da42ac86270d0b103471f7d3adc6cd3a4f4cbf858c947d3e36d9f6722302993c64bffb95d4d108ef5fd35bdf8d8fcc8946e6111b139d4c476024b2ca3a9e005735db898253bb6a7665f7bc534fea2c9853ce1d4000e714380f2d5fbed9da7cbb3bfeff44fa2c90742717ef2396ae871a05fa90ba9fb341186e8da40482f2dfaa830f6ad68235b4c0baf9946c2564dea150bad8e9526e84b2eb9d50e629c0451bb80f7f50c0808c50cae713ca1580b0b4e50805f7e833e58b07c4560614e64337f43d90afe5f1cd0653f5cbf13df2cadd63b076c6177a0e6370449326c3537fe808f58384221f8fa1d88cb8e9e2a7b3582725828a39141d0bc99bb403b9c078b551e80c6fc260727204676914eb708f6bb8263c51c8985ec7a1fa2bcb4f96f09e779dcaec6390b954e1d04011b54c4b31ceb3cef764da975c5dbd980a4709677c92c407400cd9cfcf0d254a599f0eb88e50b006e779691dec6560e5476547fafbb694fc7211db68714a6d8a2c84347245a0bc6c8241204c20f79f191ed243e3337872f1278b15a11aa4dcd965803e51a213d016212137dc91c530c2bf56d5fa91184b186cab94209358fec5879c28b0837398cfea655d52559d9ba19c85692b9c3761e9ce50942d44516ad078b5d04a01545a338b8363a850fb192a74f6a9ffad92f68deaa43812d09f9efda111b4f229f86e316a2024e285e27e73fc11ee830905109b794a51bb425416276e431749d7ab1845227dc6ead71f98f9f2e7a7a1060b563093f79f55464f102a8003592cb8cf22e45c9d6aa6fe282baa047792b23764a19608fbe917814ef089aafe418d8f1334201bec245875b73dc1b52565109f1e3925250f28cb39912f123a0dadd13408fbd57d7ec2953f350b02dfb270d71e70c1db9bec4ae5beb762af66e8d3e007b55b7f9c457375379f3a008e81b999c8550dfd38ac997905934e0d854b76ad6d68958d4e3771e43c50ec38798a090f761713f0572ce17eef28b276452660afeaaa478abc4688fbf2afb5ada163b4034d05babf74ad7511868bf9f730f24c3305ac02a1d3480b8308e3552e54514ac25e8187df34b80c494af28c8d8381f120e64788b5715dd3c89ad1f4a8fc7827193856ef738cea7153dff4210ece8e7ba20976f29d6477d1c9aee7553a7865650b9210ac33708c61862e4a9064553d6fc5ecba5e7e6018606031ddf512d78a24a324957290a58f681286e1be50db7a6c9ade2c703e1416db2d54292139796821281d3cccade14640fe03662a21a4a8e0436858ab4562c0c8b974a136a3422a79a2e82bc772654106480d30c7f1b6f579645670c988d13868575a848d4684e36dc261d9e3f4de4810ab9b5e57461c31784c29dc671ffc180bf8f1e841d81d26e7d22c3ed43c0dd2812068031ac6a009d3c793a94940175d2cd4f00572e2f99ee687404bb3beb5e4a53efab3ef38a77ceb8bc25d63cf11606ed352d2912e7d6af8b515ea0173f200369782bcb7d3c982123a40bf5ac574d757feb02901f4b6fb7ca6fe85543e6ece47b230f2260b905da28b55320b49cdfdad2774a9441dbbbaa1aa92c517419a755561532e5e095b9c925a191dcd4ec07c0346ab5fa10f36266bed092247336de747a0ed5a6952217ddd015266b41f29e464be2273a27e44f668c212a2e025d767891f76ee0a2ff12624084a34c9c133bf0817d75f9688f96908a5c8580f0ba47b9d02f2b3d72a905f3c4bdf437721768340644e08a820622f7d8fbf58b0a53691a0a9a5ff335d20cfdefa7eb1d7ea1b56e15f320c498e93fd20c1b8f1e47fcd840303d86956205325f70558b27d104ca1691cf4d04152c12830f5fd2be29d2f79a3c3ddb207463a6cce911086f89287062b04296b30eddc4deb9e41cb5cb52a9abaf9dcd36a43f580b4ad58e9078ddb3a783cc1fd28c5ba74ea70ff7ff3c2beba8c5e466c0b51bd8090f672d5d9d1635cee3cf1ec2051a313921b0c43913e64af1c265578187e72a1df111491820d142599580212ff82ad474382da61ccde20c23c896fa59fba16c3d6c1c0245d284e6e398c5f05e6d10dfd1c24f43dd7f74e405f39166d0f40823060e35ccfa4c4014d74f528c2803199343d4ad0f4942a68cffea5e02ac45e20baa8d1a18d51f8b0e85e19fb94095fcc458e572c94cd84031e950f83ea1d00be5127034951fb9dcd97a0dbbda4bdde8e2520c4aa8520e0d0d3d376a5b5c7c61902f1c43785a3dea4527e8378d7cfffc07b10605a2868ccf0dd7a995ab66d94e5d966273bcf1545c82c1bc659d2694311676945957f8468e23712081ca200240b208ad69697642653a004ce2ad132955909ee71ec6ca15dcacf25da08ba4a4189381d55fc25b39831a43e2622d9a4183b4dd007d816e17293a01e1793b1d49e3653ffa50dd4d7636495f0b9750b9068da012cb86311eca7368c81a2a63b4eb4a55c65007144935203f012417089fc7508eae59e310069a308e1d52cc1012c0c874165086e9c186bc79c5301084b3da5965396322b5beaa403fd2d32876caa960184ed8a4afe1756041fe86de33177f707630f060a2bd59ade7a40f1fa88a5548b283a636890163c90670df44a15c2d6b902ab7b2d8469560e2593ada629245d28290d4d09383b0d36599dc908681173214552131c5f41bac29314892d6988583d03adfc0db1b3b4a50dd8a4c20edd7092649133d4d8b83c2e22c105a814662999da3b70d9b343ee5a2256dcc1acb10b2504058494402debf16b32349de8709e5c4757e2aed5392ac97d86b1acd528ce4eb3b240ff41364a198e7f9ab5ffd702f86c73ca144c8d078cbd998740aedc64a43a04ad40d4167c9a6f354b6dd7e068dd61410d976b8a7c3b00ca4df3e8f21c68054a6540ec6cf1898d52c3da620b6056a03a2ac500d4f0cb9cdf546444bc966f0e6d707ad51c50e267b7af2500c5852460c4a30384958daf2a695e0042c242ee7193aa00a579acb5c4d378daa189f22681c60ba97ae16f6bb0946b0540cc05c285fd69ce7e4acac87d569d0b406804c65abeab9acd95b1a65d661fbc30ffe738d26873e766012c1ad9286e7cff8bc1fe521898042116a042a4732d071762921e1fa6311cdcd0b956408a01fbb7a8c28ec3931528b24c63deb50228a27bafe275ab259579460d13f1fedca422c40d114734dac2ef0df69904858fdbe34313e3f45d2ba05965cb350875f25a996b05042f321f5dc8d361049ccfa3fc39b80244a37edea4220618e31171effc18f1fb32a948c00661a04992ae1b6db6bc9469aa212f0adea4224d71af78f93203380ef47fbad36a56019133960cd24332aa494580e7ef878fb67a490ea12aa0392dbbef5401856abf8f2bf80aeff1d947a20ac01fcf835737d64ebe0cc2ffeb431e18155174552a8dab6fe4208f82c9d84c059e9a9190df6cb12b3e4a0e95a4900800d90d5778444542de39e41e922b3541f51ba16452f4a0a3fbf89fa1c414d890fe3f2e6d428d4532905a20a44b2d7fbb4e36f516c62d6e4ab07f1c6124c7eaf21644c90f07ac4ca5c057f8f380c601017b17cfd816e48e8d3ad8d141c3de42c16cf180e0616e0375971379950d1449d9b7c94dd4bd824bcee250a2d80640b6adcc8b6ef0b6322030549087e64156ae42a54b6113fa805a5b6e2339217e4193f8b0f097f69929ef5f2fbe550404ab28f6c013da687fb9419a736b411b6a94a0dabf4d2a59a559811e9c89ff41e1a1ce875f23cc08fe5a8140051c9ce4a5f1f5231e6c9edceecdecdce82fb1ebe26381d0e356ee39ccf6e60f981c6a6fe22f2ea8317f541f612681f1ad2cb05e816cf0a5d75a0df79fb349490d333554e005db04b6f5a705176e82bf51c5c2ffd8f3f0f217a56619852d87d529bfd374e82cb264b2c72f791d2dc863bf46984610bacad8e3d1ef6cad9c0f0a3ef0aee93d5b5090535fd3a5a34740649f88e21439487a31d6876ef0bf62940a125eefa9a7e853d8df03a36dff59bcaa0438ffa6173c831de19b53bbc3f026d017be6e2f44ae540a66df8773e68b64495c48a7ffd9432f94cc9bc9a9dbc63b4c8365356174332f2a76634e7d8e57ca134e0be2dd5e156775e0ef9175b89580b5ff0ad80d7649c0908cfea22f2b2162d59a02ef3e59db0cf135716bec02cdf2f37f91f144eb006ba128921e3d3f25bc7ede5551fcb9fb92f39bd228df24bdc77ef4f33e85586fa95a2d01fee6a30a829069052bb6a8c85ce95d0bc4838583d540f76135c695c578d64f6ac7f8b2f91f277e839163508f81fac2e0c2622eefb7c802bcacfe9ae1b1cffd39ae7690390499cde940e1be867fca1b555b165da595a7e81a3382c9477c185245f8cf3bb2e5dfb0d4003a60b831ab29f38947d295634ef741d4eade30c5681bd358b82839b1b12bb0bd7edda657d5d9208f27bd744783cdcef886397b34aa586df3705ff18af94f6500af5a0b5ae649dd61d3fb0c93370e5348a6da3a6b3c3d20ba972ab9062045f920d31e420672f269a0757c52e8af4096c746d9515c5b5c0e0be28d45e45904186964d956e6b2ac342c989da546e4aa6f68fab5080ff9c40f3899d7b39d115f03267871aab349a30e88102de046a6ca54b7fcb28a17776986d32ed01645cb96489042a40de467dd84e6015597b4a47f99fc91cf308c33bc3efe83bb95d813f8b73f400392029f98a6504ce94b6ca05f3f73ac1d2e05dd8bfa30960e4340aecf59379574c757f487443dc10f959986353e1de9ea54e023700880ca6ba2a51ac2c7577d0a2cb6339856e4e00d565ba7aa9d6b153f579a049f62f12dc0b2dbfc97f659c16ce804c1eac2d832616209666ae5cddc33e80d28451fa63672a089547f260241c2795191a5e57415c03b3a2ed3c152ffc0c809c0d931f0f7a596d1bbd06cbf8784ecbf8bbe28eff40a84d93da43301dc3376abd520086e260d6004323da4f851246b6ad258fbfe40aef72f6b4620ae5683796418218861e07e0a58ef007fdc274011766c4986014f3649300cc80e6129738d0308b1e04eafbe451278626ce5ea92b2d091335b5809c4afc3ecfae1a4df0a8c4f1ae03f2841907a65c1675635b9cc4cf66e6e9292399267d8efb7155ee60987f00b8ce0e51e1a2cc0656cb771a38d176043720b23e8a1c9bdb15d4a4df5cd192c5371e2530b889277b5000330061085edddd7c08998572582446c19178a3e1dc2b19a53889d659305a036d015d34148e6a0754a9d0fb285992bf0f26d59010154e5430d4c41b0747c812472809a6898acda78a86f4f3fc2e3d948cd7a1216c69af992ab48c9c7caff310da53d21b6a0101b66f961ed35803f8e95906132730b9a8157edccd86909b0083809930bb3c8bc9205d0a5788ba29f1c3bdcacd8b1ac396eae883b3c3c51b4987890003243f7ad6cdef9241c35f8646dd7063f5d3c855e912074257a465fa033cffc98aae553205530af8e8f32dfb7d7ec2ebab3a080871c4f1a500f23cb2cf89edb4b4a1ff0570a9057b680ff982b96211538d8eeca336b7ef1edcad335580c04a7c79759e0f6ccd0af87fd0e46906cd1e09c7935f2510469b95cdcd59d49a9c40d386780ed61cb08113f995760dc2210396bb08afd1498094f228e8c199935f8997df4f4b2ba25e1888e0a1779ff68c38f14692f0faafa3ee701bed93c40db3fd6371a8179bb91e1833252adfd0c06710b7dc9b8e92648267bbc224441ed550e00ccce5b4a5a4ff4dd32bd5100264d35432d80529a486bdafd68a823e291be52d6284bcbb98f4f2153ebe0ffc63cae598ea77d1faa289d5ac73536f25d7e21606c0ebf94e99600edb551890fe47276f7a7d14ca55c4e8879263e7cb8ef0a18a581d26a72372f6ec795134e05cecee4e9c1b328486ab911ed5363578a5ffe3aa0204ba1b263075548be10471c18038f3669041bdde3083a5bcdcd46bba10516d87b1230d18816bb15550836b07aa95a5ddbb9f8365c76ff6e1378d8096fd99ee52684eeb36607933ac681c546f9ed25463a41178fdd2c1724d0a75c1e8ce5a77ce2493a41c9ff4da5151e91a6afe054059cf562ebbe4aa20d2ef71702a51b22985b9b9fe2950a05b3263c175b355739e9971a71f15b7d38b1ac206063b587549e74a541304be696cc89630dec162cea583f1f62292032a06f5d9750b34710acca301f276d07565fd28cf5a6a45e7845473fa73d68a64a6e316856722583ea55726c4de641e61cc51f98a5ca75287b55a6ac180d2fa9cf7273c4badf4a95ea6aa91b75829847daec563b9f23ca683053478f236341488eafdd2d69f334e13a4741e138e0bbe6bba46d7e5a22f2e85b348c2ccde2b9225eb14ce8a896c1cd9aa4a8b74911f5bd7184734efdb2960a5478ad3763da31d0ce06091e2118672a702054c24232860c5e2f5445bac7724aee7f31b6f2719b6c31f7a054a42b32dd2142a0fc28759363e70513f3a3c98c0374576e083c034993b99db9ea0ca8298b9019bb5901e8a6e486681f4e4c2c5ec4ebe7dd1fa12453042ca10d3dd8bb6d9320f417e78aabc5e97930df3e5c8971720cdb2bbbb9a5704a247674380a7425cae4ffdb18cd9b057c8de46cb051bd08353d19bca5a585de9c88ec3ca4c074fb70849993882a353bca9f2411c5bde3911007fb35c6024b0dee905b24c25438c92d7d7b788d9370999725bfbaa01153255cf77875a158c3b213ab8db8b545c99afa9cb89797089007621ce9bf0a4c45b35e0ad83ef213b34fd0a6633adab9bf1006f9b8c747718a0ed6ebc3b6ff2ec45abd8184a00de848fb9d71cb94b57f7d369a83cc87afd72f6ed1a837153cd728aa855bd1779a27810da86fdc22eeb80e01ee7a39b57ed581a88135e95525fbf5d840f3af0d64f9866db18466a58b8e7765aec96bae47bb55e03a8ed25b5e37ed6bf9a2cc7b18657c6c4946cd5b61fcb428b367a9e61b6e7f97ad2f50bd924521ee4619fee5f504d03f9399ba4fb322c8d7e1d6e08883c9cbbd9d50a2b7934ae08d4701c8fd63bdee03de694c3cb4097127800af48380ed3ed4fb3ee07d63922f6d4f377929bd13b7a077d2a31d34ecdd8a182345cf699d10a2c8503dd23b1ff17e35d1d08dfb0e9a11488334ee1ee93d1f78a7363122224a5832863d5a8f1484d5d62d3c32d98dffa43bba500990e7012ac084ddf4a685f70ae9fa704795f0ba69aa8b04199c25835eb869b958c87cacdb341544c4d40fb06ac4dc61a9c46d1ff24e63424cbf60094b0c21fde2e009329f02b97c0938835689d8b44c9a199fa3907ddabb6bf496f81aefbfc6b836c140b9a6a161b3648d8980c74ef390b0ad2060d3dcb3187d1e790c1a839b7b9038cdf01d0b976dcb0fb0c9d1b91038a1d8062237bf84c475313d1040ac1628786538c63b97e94d057edeac71964211f11d15f9b3e3edf333ec8fb459979d624fb9e9b73982a03d229b39b3f139ebc9fa68b1703370e0c7cd950f965ef5f4f2715a47cf6d0edaf73c7037223631208a95ff7d25eddc065978866ebf89c8f91dd2a0107733cfef117de81334f6ecae9d3d2fb2bc4afa33a4fc9a2fc7f2607f0e9daad179453917254494456d31e493393ed3ab1f4822f717e212debd0c31021069d14653c0b503c74ab6bf76fe7d1956677a51e3770f1aa7f4a555af5aef382ab8feb8dfc7223285beabf12dd219a0f4d88cebcc0107a5815e4c49af613e334d95984ccd6fcc519e4c0f4826b68f735d94c6e375ac3207ad1e189027ef1c48e0ccd73ab975c2432f3eec40f76fa60b5bf899ca4d20b6468da8258a4a08e2f2d22d20d031f57a58010653e75df99646e9516a1a043ed8a7862edfa571f3fa50b8a90fe1d48a0260a56bb484ececbdc4de4f25e527386223076f4a516ea93e66bf52bfd44d0e84e4ff95be3944d48c056e83eec252fd3f09666efde32cad279ad7beb8ad4b1f47db4b076d3c2a497babfe7912c6a8d213a0b0cc695d9dda398c8aaf0fee199fe49be48a33ffaecbe2853dfcfa87aad867e241b17d719ffe2d6dd6624bbfe7076440385c6afdf9f4850cc75e2441e0f73774bbd7aa90c6a4f4ddc2bca8acbbfc517d8d43014c38044a9fbfb355305e51493af93830f437b870c9841694647079ac7564742bc5cd88ed8dd08e09bb3917ecd7b783433800a9004010b4ca1bba00895bbdadffc602b7df0126f41e6fc75e1e7f1b5347d7c692d808d9846cb2f7de72ef120b7c0b090b33aa1f50305eb0a4683e7364e6e8e6ce18b9b939fcccc97d59de90dccc1ccd1cb9c1b8860756393a5d15a39a2124705d46a46609f03347cdea6a86668e34ab5b0dcd18691676f8192d6a86800ebf1afa21270032705800f06115a3071a182f66647e54313cc0bcb8c0f72e2d2c29d48aca8c2994117101f268b0c0757308c9b1232f67bea43473f4542572e3b9b1f1081c3ce22090e71032df3c468f977349dfbed273f3c42e40e81057d344a7047ccd50b350405c9ed886cda3cdfb259fb75fba35bff97cf6925be2c1ddc09beda674837dd0f8cc110d2b9a6e3d32739c894dcd6ddbbc816c1e314aa88668dadce496787036dcb5b1b1c15d7cd71829d5bceb460935ebe6908487772eb93b52eeaee5f46ecbddb1e4d67277a9957736f7cc3b54ee2cf78b772bb9b1dc9d4a4ee93787e5dd95bb4bc94d737728b967eeee24f7e5cb29397e67fabb98bb33c9fd7e3926efae94bb2bc9fd075f8ee9306fdcdddce6f6e6a2842eaa850a6a157cf9881c6de66f6c3054ab71e0cc9156d5dc99a3257033ad6675304442cd824705a17634cbc21015e0f007d22ceef0ab183dd0c0783123a38ae101e6c505be3f38a85b90ebbf69eeb35cb9fba8fe4a5f65cbfd943e4affe49aaec9ed47d32fe1c9cdc03a3107413287647812aad5492068f6403a2d633543191600e8ae86607c91341fc47d3b3ff7edf8dcb7d3735bd90e0b8f2803cf735bd9ce8b321d4b8f0cdf52e0ba99a399a3192d62b6ad09710f45cbc00311c201612a0222c354f4629b8a3a9bb08032367c5276fb08e233334711078628080c33739421110a8628c3a386503c502d94106b68a797e800a5dc112d036f84149c068d90f0312f636215773a12c20492ab8c8823ff606baa6e152fe97d52c723b9d61b708b7c9debde107b51f43a7654a8fa5ce13c03f7766edff5a755f5d869bd8db7696c0cfb88345a557bb44c7d8db547abea4ebc473d727d6cd547a1fa3eaaef23f5f6ca8832f5d9a54ce05035865035b2291465eaeb5b0a5cd747b9566c6302e99e2f80ef07ad959f13bad0ca283be73b2072bc22177f8a510810cbb594ddd0942b461bc29e33bb9df6665445bb9eaabae1fca3a957a9f08bd6cd477af817156c097f82ef9585940ddad3a20c53b3ba950c2a72d0056c0738226cb55a2d1c310b56d6d75a0f379eedb50c1ce9da6dc76dded20bb82e893cbf5dedca5659285cf59b01e21675c824bc82d12a0d53c1694fe0b66b45f2d168dfaef65a5b356bf4115fbeaa102d236fa7bcae392be46ab44a4a1ffa53b57726f97ae9fd700018437ec3217939a4fa8975eafd8182abef9e10215a255f0f007f40c08b212fad90e5496e112db3dd1ad1acf95ece763baf115d630837df3d2b7c8a4001c57c3d76beb07c34f5f5ba54552c63eb91f9c2406835586fe3d9689cf1b6d8628b2d36edf31ad6988819885641f9682e19cdea2610f35246ab649ef3a776bdded78551402609983210ad9232b2bc8cc681d132f24e04d9e9fbb66b04462b384285118e00c59d1006220f1ca10b4f5cb17344c4a94f66d6904e04d9896fad1bd069d0011880ec3489b4bd95e0fd448637718df854e64821c5b151703d762f39ded6ebaa56452965ab70c43eeae3cb75e5837a927c1246b29473ce39a73ca550e2c7aa2c0883a79a3cb48743fa9c70070c8241506808c2e0b1a00a9e0afe9190e2cb7f619966351292dc80264eb54e19764915bc1c9a829783a1e0e564f6f0394eda782a479a9fd884616bb3f3d93c96636660c64cba413fea3da0840a1e2b47b3bafacb06c43966a90255d8da6aabe0e5151b5ed7f530d27b34f3399a95a3551406354b9a723fdb66dcb8400a668061cab0059f1638492011718a7844460ffe077e25a3c7d65b0cbabb4f50bee5a1b0efa5c62ab630247790479e873daad0c2913c0f9d9837c8f1a30646227114d7d89ee11c753b762dbbc9c50e2fe924777bdf1f14db376e7c8a32f3dac5e049af014fc248bee11c32486e6282cd93f073fca861f2c6394cae71a792ab4a7f3bfd764c48ba9a2f19397e1051c239e00ee924e7ae067ea2ccbc7c24e122a2cc7c69059c7cbc0672fc48c0dbd9815803f16f6af041f21f803bf1070a017dfb1a7d8b73fc986fa17e86732081a150949987f888514ff80e0abd9df732b10d287b66c13e2aa0d8911f1542d002e74785108832cbaa6675499752a6cc99f2999282c29d8e8c7aeabe9cba9d704bcd39274a4c792a95326f53f3a90bb9d4672aa65232954a792a25535266eac6cb9bfabc29ab4bfadb5246b08274efe36d79427eb4b20ff909e981147214f23bb2108e94d4dc48da0c800282b984b98e6c4db49a2bcf721f96ad6a8c02c225c7dbc68382c2723b1d99c53e8c9a41babc0fa95bb68b0bca51ae1359eeca51aec94917df1218dcc91c731eeee9763af2e9dbc663721b73512e77bb4ddd2e2939e1a1553ae572249b0ff694542af53ec95a89639a65b2b0b0c8b3cc986b03e61bc872feb1c4c494de2c3a3dcff2ee24ee3ac3c8be9418a66bc9826de0c35cbeb350937f9b0160302ee1b36014cc59ee620020f9be7cb3c45c27c674e92e2cc77ce69bc4c252c22c27272c9bc662a3c03030f7657cbb0bc0ee6ecca223c794f350a8210f966b23e61bc82df1a1cb59dec1a1dcb1dc65c65cc694bc83b9cb598e6509b6d18ff97c0783f12dd43e635830c6b7fb3031b85daedd92935c1e0eefc9eb55b94ec48a68d5b66def36193347007f70b12ba517709fd8c6314cb35866a05c6e73c3a898cbbbdc45cebbbc04a6e42af7b50ae62797872b5b855d6e63622c65bf04db784aface1c735fb630e6028ddf17e616766c52970194c70d68ca1c7321be4e6b313795ba11cd62792a0547007f803975144f0a3f0eee7041b9cb636ea723c7bc379e181f96cfebc8f2a234cac57f1b8ccb51ae8edc1747678ce108600c97d46378526fd5717c4b4b4bcbbbfbde975beee3bd1dcca4db3ee9f10ac118f145902e5fbefa161175ac3cca36b9b597064d361e130b744b39e50adc914d4c564c6e943731318926263a7105ee6895c9ca753aaef435b9bc2ba6d38dc764e63aedc205070305058a8861908782657f063904d28750480e0604e2e21dfb45ebe88890563da188139be85a046d67b8c5b88eac2343214082c4f87be3a073007f80268031dedffb030f070e3d99771915cddfa116cdeae1ef1df4725e7e31e056d025e8d84d4481ebe0108f66bd269ab5d1d0d1d3194a2143940f1f341f37ef960f1889188d605e05bd1cfba744b36afe8ea359367fa8bfc75727701177dc24c11d2d3f371ed2e3957fb9f0da5ee2e93d5c5e9a97ebf332cd4f1745f39763dc46ade6da9c74b7b31860bb0d460175a77a5f476621bd06a380641e6deaa65cd4854730c06991dfe5dfa644ab9e91fc8056afc149b4aaaeee59eeccf66feba9828b7123d0aaf71eee11ad7aa7b946d80b3bc3a047f38e44adcf28488988f3769e4fe7fa0418f7e5ca06ae834757a4dcc55dfcddd63570f9c5db2024bbc88f8aa327328c0bb3111198294d53794c2a86842426c6450c9749528ea53cdb78306ae6174d24bf48e16e70f9853c0a9723ca1c93c8fd793b05e5de782edeb74b650e6e3c292e4eb71918c8c20eb2d023bff8db7ab8b73cbbdd0d25f28b7377719990f905b6c1bde5b6e5c65b299990b95322dbe8b3745b4fc7e934cb5fbc9667c45d9fbb4eec58300e255edc975d707826f268d5ebc6b30d5c742236d1aaf70edfe14b1d6e3c31b736e6f776f8f7a7dbe19f60605a5c5e5c30be2f7f19e625f514b611d3b5fcf47bbb96df5b39237edfee767db221eff2783b2e4714dc6959ab286779ad9ab8c35dcb2fcc753a9e6ed78293c091637eef726ddcc89161fe32be376286c1a81939e224628eb13d5f10bf722f0ae8be7fdf3ef72eb883d905bbc4982152dd8d63ee72837157f3e984bb96eb44970bf36df9cd4df5ed629e7acb799687820334cb325857489d8e1b64297a40857cddae364bfed9cb212cb6416f6f83640f379fbeb596b4fde85812cd00f41677f1554cc1898ce1f7682a499552fec977f436e8fbf23d189d01e8690fbd74fabab00ff143810e0cd223cc5794e14f578a680a81a611ad824445344b1a410f4f21e40eaf82e74e5770f027f8578b5ad059c3db18b9be11c89298d79a451ffbeac1c56c1e3bfc1117868db059d61bd0c4f2888687a74634cb88231a77049048624ecc84ccf02a78ee643429ad5c4d99ea18b8ee7f81b0a3a67a81b893b7f25662b4d28b52dc71454644487a71959e6a42b86b1539fbae98b519f6a23d99db9c7c1226291f258651b7b051d6f9ee44afebde0b6b7e2ff96d325ac8b5912ca59452cabf23b0e79c73ce09e1e37db9a91092673cc22a4fa18873bd3f87224efdfbb3c761908ea255f36ff351a3cc9c9f33489066757546d1acf972fa730bab3c83e4d918337a34531524cf19fdf2bcaa592820272021481675c08e1c984342cddad1aceb13bfaf54dc61e028cfb9a355f373880245b97b4f620ecda16e814a252323a352a954322a558a4ba920d601fb2cc96b167cbc361af2d190c4d6cbe9bf6b055cc7618b1bcf3685e4de7a6e9641ae12fd76d26d5cb73ca463d73e5eed3d4fba98dce2b6611f245aab268f15f61a678a9cd5aedb57a96137e01639a5359c42e211982af0f07759611e533c5c781e78c08f8b3cbcc03cb610345c3183ea851e405ececd12c8cb79962d13f4c303708b9d1f32563944be670f20cc1e11620cbe9b3d62ebd1c06bda887050f620827d2fd99cf3c2b0392f592b8430c28853397bef8b323e7f2d39bd9de1e6335f42ff9b9deec53e713ecbb5065c6682613f44b46a8806113f3a78437cb26b3eb427660c572cb8ae9a4c27a62678340be584ca6651773e75eb4d3775210f2720902662fed9e2cf89e9178604f64a03ee64e5f2100a791845b34e962449f2a4db937b3d754d3f5d18450aca8550ac5c0824e61f49bacd28f7e59598ad4da960ac7e66afa79fa69b8e9dfe624d97d12c0cbbc9450199bcdee43a32c6fdb44a62d48c935fbf5e96170f38a472b15a73d0355037609eaf971146d2f5378f68160ae8faca577097fa8551402b2bd7917564236e9f02aebbdc3e23b83745158eb2cb51d24aad081ba95fb8881acd42cdb88e3a0ad790a896a3301cfa75e336e3bacb7b036ab90bee506fc19047ab20ac022753972d97874d34cedc9187f346cba78ae5739b800fcca9b7609e14968f860577a8ffb44ae6d453d8060aa3808e2002e695067eacfce2158a01f7f818e7d0b173b16a47de5e2caf0f7695241450cca9c79cea369059fef251582aa69fa44e1c67848344949127b9855c8b3c0402a1b830088ca255f248484e722a2731bfd6b40bc31d1806c9b3dc7a032eaedcf46ee6d4572eeae4a6b3b060a8f2eb95065c7752a2554640b2c581bc72d345999e84e9ae9c48f9130c877ebdf2e0ba485c257a70d8b3d315fc9e2a251f4d0a772b47e19ff736a0158c02faf5154c44cf88003ea2559701275c672a0a45542ef67961c48143f6843b0e0577a7a11970d8e1d0c5f8ba38c639240c8eb0e302ffe21c048081508f1d7c6200cc848130a936e0b2d3798a3870a8964ea753b3627e3bf23a9b8fcc7088889f212e18e0e2106e355eee02e7785ae0c1ce0b847108011647762e7e5126e6d25d422e2133e97675bb43dd3392e7090e5dc7600ff8041c823c3a0de054abe450ab7838f153ab6446f129e6b0c02f877f2ff0f86fabe1e22f3847cc09765ce05ae31ee31c0f0a74f8426be7626cd6f91e4dc53ae605e79470e88aa156bd897daed80185b0744c0d7ab08672cf83780adfda3873847e80eba7624c9921abdcdaee91c30bcad0f2516554cb88eb60887cd0380c11940f35abc0754f4814f2682051c35cd1ac9236717d42ea14228190e36d2e8f5ece8c5005488ead126d9e909ad8a59ec41cca2ab796888359e52915c89954ded2f2127793ec2b3f41d9a8a0a084e05141a81d19ceb8b97929be6d86cdbba4e6719660a01afc5a8581a3dc2f5d27966e57bacbb5b9ed9a771ca2f49b47540d062ac5dfe0b629b95de9a9ec37d927b639cbcd4d56e2c1b13c621bd96fb00d942731e750ca6d30ca5347a93cdef488bb156c6a8ee3faf37672a668f3791327678a7d9b1bdc9954fa7413ee20677a9bde7fecf8474bd48725871805a4f279954fdc65b9547a4babbca5f496966bfbdeb4b4bca423dfcc799b92cfdb2531876e7a860a50bf0577a5f70ddc86e8c6379fb7e636b79b43d966bec6e63ab16f679bdbd9fcdebcbb29944b3e331eb9e406db285de536388939944bb8e5a9eb442edfdb913cd161e028a71e371ed3e39298439909985554300d3c63a465e0556aeeb93f4c210842de96a21db0f6f5103894100310fa8e1087f4c66c54c41ec881e497a247b3354076135050841e59cca0e4146b52a8a19388b31a8a3210a7660875559eba2b2fb931725c15b50caca9a951b93347ee8c9178926ca1567357457785c55d95a01c7e9572f89aa1939493d7d4f0a8c135434446118746c4f9393c8ccc2f865a35733483054c110c51b34a0e0f7345b322eaaf596f65745758603163147f1e673cc608a91601e0812b86a40db86ee6480b29a03600819121f08873c1cc918b055cb72af291d94701be2a6a1616cdb239fccae8e5cc9bfede0fab211803fe94aa4195bce6f3361755824d3587dcb3880120e4d1c0d7c010c15c0153f468e05743f087f762940e4beffa354c9088f34383e366d48a5f9481099221ca065c876ab90479393232345131a27284f351315231aa95e3504ebc1c98e1ad159cc94dba29943b54ababb993b9e3723773f462a88391bb99a30ee36a862410b028c40da2f19e9e0b82efd0a0717fb4910c8b40356c810947a40d62c8c0f4184fbc1c951d277f2114718268c0bf186ad6e9f02f9a6856cae15ff068164a2c7d854894813741fde6aea4dc9b9f62e449e336de96ace52da37c8594ad8c17695ea74972133c542e4da671e50e0c51c4795f21c2ad105909b5805bed887815b4b205ae9b395a05d53c468f9aa1d35d35d12ab872a228e2cc38fc8a51c429c0e1578eac1c451c1a07b21a6a155ca162e6c8cb29410d6b2d8b9a959a36b58d6aa48d06c99c37bfe9af50b13204ce49e373c667013ee77c443777d5c48a47abe011e456455647aba256c11516b2fb88eb5643f9766e3e58ee3f1f3f5f0d459c1f0c431465a0cf7d4476f081215a406135d42c2cbfbc0f1fe3e8e5dc1c96bce6401abf143d9a2a701d0c918ae8d1c021bb6aa259a5c3af78bc9c1b184d44f468e02dec072304f28c9016b8cf802fc0fdd07d8f56d9bc53317201f268b2c075aba2d5aa478637b9dd8c161d0cd3ed62e8a09340b0a99939cad60a4eded868373f413c08233f86fc5c548d9f07f12052b0f363536d823015998a5486500e058a4d8a0d0b4d4b0f2e31beba406001b818c049f54200181d1eb28a4cccceca8b99140a868d8d8d8d6663f320353c526ecd10ca3d9003f921e74076b20e010620002056317aa081f162464635238607981717f8dea58525855a5139158084280037099110a918a15a41dcf7646c502d54cbe62e40de7a39b55bf9f016781622cd2251fda71367e3aa0867550400d3c9cb29fdf9e4fab0fa01d7ad824a25942a649c77ab2119ef6a86688e1e0d3cc955fd1c573b468f47034f7d50ba6d8d04e5f3b6e45591f65a39ee74baf64ec53ab933468ea4601a21f407d7ad824a8f667e15d4acae6425d4ac6e03d9f41277f32ee5896ddc3ccedb3636998f2082985a10f7e771f3b9b9b9b9b9b9a1373794b4d19811450102404294e165dc2e720087753bacad00c0ed302b7cb85de40069fbe1763587c6cf0d42885551c441b55a06fe74aa548817a176b4ca0a4e46cde6f6e6e696448bb76bb61a3c0fe26d0de8b90f46d5f08135a0031482ecf85cc78e4e0771513582388dd3c0395e1626d809e266fee63347b6e43097e00e0299a4f56860c9e78bb40aa634d12a1e5cc953decddfe099a379678e944a3e6f63be84678cb40a965efae9dd9ca5cf214ab7317f739d9e39025b7a7089f1d5f50103c005eb0547450646060f0188c959092f4b6c426d8a2434915f86145ea7f0a22e480f2faada2c42f809e526e5cb2fcd3a556ce3b9b184f66da3bf249c570b92af04e9755dd566d745df16afa67d8083f94d310523395ed2d4e9456e3ecf0e9a0633bdf608a66d706ef4da7a36cdc4f9486cf35191db66e3c09d80837fb143c308618c72e2ed4595026ea3d8ce8183b771e399620a67c8f2ca57f6b93e5fadcd708b97570563ebe91cf10b564dd9e6a3220ff3364325cb0bbb7e491b07eea297f49aa47a9b5d97243dd934c66ddb5e9bb51d3edb786ec02d2e0d9f8e7247e9af79785dd4bce49cf65df6ce6618bdaefb329417e6eba55973f67598fba272be1435b080483ca534c6a7bd172faa5e53c6f8b088691816297d2fc67e316a319a9a75ca3052fa78e93b6a20e03aa882da09b852867638c118dfdd76ce18b17a75cc2e9f456b9af3d4d3b9aaa864194f3671a72347ac0971f9f4722acf3cbd9c8a4f8fe6fd15e57738ffa689d2f7e89b8f3e19a534356b766b508b83edbf97ee2cc64ed68bca88611986d17e977fb367bcd73bfa87a16a1f75a168cb27a394efc22ced6b944fcaf76c48dd5c0f0b5f55308c5cd15d6a15012bb44ccd92f4ba3adbec46d4a20637a0f772f0151d2356a9cd8c6e97f65e0e96bbec3e70d9bbadad020b455693b766f7d9c86436a55893e9bacdb2ab9dccd011c509b6c89d8e285aad3c8108a4952515ad5696b893ad56bef012435ad91e4746241e69e5ee0969658b51600c18830c70b8eec9a3313509161c2429039792a3fdb3d78909e576369dc873ad2c9bb501e98862a89527a06309405a56b3b79afd05713d69565e9bd92bbbbcbd280d35b3a3b0ec2898596baf7b23662967642c934f0cd2ca16482b5b7c231e696589331823bec218f164e06036c4bd523f80b3216f3349a2693d2c494e1225914817a99248248c64491949ab41ea1c90dfa3c9f6b00a2b00c9b60a2247285a1cb8ecf2526659cb2ccbeecb52cb7a92e4781aff002e3ba5f2da78325c6f77a275305b2c4aa0790c77f2d9fbd8bbec99bd8d0ce8a4bdbf67d9edae67aff5aaf6de88f9ca916d76bb09dfd167f5280c05eb51b4ca6ca5bd7153b3b81cb52bb2766b719775d05aa1286bf858d6c92b630b1c6c7c8f37e5b745fc38538f95f24113c7f5cb3f7314e2c1fc6ee3c0f52ffbae8ba2b2678eabbe93a82a8f82b22f987b629d6665391291e595d1aab84388c6b18fd79189f7a15572e03a2dfb60821e99755a15af95807b42b097c11fba652fcde678bb69f26a22e0deb51df13a2f27cbf1960443a5eae61b2ad68a6862b024a9d3a90c243890dcb0c9566924e0debbbaf5bc2259cad32259e22e725bcf855133e8afc3215fce21e8af5799c1ec659dc54bea74e0205f87ad913a07e46b9ee2f9885827ba556bc53008ad35f6c07590a88343b2149a15b19099d04414b90faf681684196291bb5694a4335af94a293d4ad27a2347264d1229c68992fb3844c075af88955adc64aba00838120beb96602c4a7221fed32c97f76910d12ceefd1acddade2fe27d2ee21ce1e2dd2a3f23ce02adea23220e143aadd747b431d68abb0a641af18557f4cafb5028e2401e3c84babbb5279e803e605cae0f1ebe5d1ff842d6422d6389b94eb3dce803c6070f3ef06dd5b227a2e6814822c5781b298661bd451c492449ba4819e63870f150c25a2b725ca4918b5c8443e6cb0d82450d80be8b1b24f41d180c82efbc0640078b641e8ca5a48445b294b094b0d4980bafb076903266d2ed59ad169d49b7eb804568e3467c18b67dcb342bb163180a08c37cde17b2cdae1602ee4d910427f26b82109cc8b7732627a552d239bf7d7ede5e729b9ac566cdb22dcb724bda2472ce791c5dad361eb3310f73bd5de7ba6d36d332793a4fe5454d49a594b3ce394feb9d33ce37279d70cb308e66d5f7853c0fb9f826d5b24bcb4af00dfab1fd8f41b504894178c4ab81a083cd91bc6d02306798fb7610f07660feb6252600733d4fc975dae5db8d5bfcdbb8ebb4766b5154a3d46ad8945ab63772644a2ba590c86a1fe0b2fc9a1084a05c879058091c5bd54830ada4554872bb69a9d475bac26cbb794ab7907371e1e11eaf1664ad0673e1d185570c3131b945d16090880387b44cc321413ca004cca195a7920f98cfcb072621795bca759a8407285ad0d369950b7376159fcea4cc03269b16afd6011389f60b8bb88d03db9622f393820864e0ee72e35b2e2c2a61adb59dd0502ab9cfc6cb72ba956058a455445b3c2de20b775e2e2c7a51c674879309eac2221e120c89ec5042d5fc986084286495152dde959b361e4804f38a16dc8aa90e1965e9c075af08cca92d623b072e65bb01f3c96d8b3d826d3d9d495fb1476cb62e252ef0941c55e24229dbabf8c0ec033f55e284926cef76041f9853ceb29562c06d47d8b2c5243c981bcf8dad14038e24bf2600810724d9baa894d64a6bad95d27a9229c501cd16468bd71e2139fd6e6db8f2965f13808006ad5e9949e2ad0badde9ab50d01ef0d4120528319480004268c61c7be5cf565bed017ece5e5757c8124a42e47ae1816f5748644f00a3970170e185a2ba535d32c26a5ac52962e7d6f3dcf0e3d38cf5b1c56358fd163283a576ac5b04f3a27e92fb458abaca45a3b89d22c2629cd66cc19a6937ee5de88999e5427a4143bcc749b919231fc2871348bd25b0f71d895ade7d921cf5b1aadde2ae38bf1bd175257813c9368559f2bb98f763edd974ff07d3b26242fd7bf8c0366fafa8a9a54de1b31cf59eb29a5f7e59a23a380eae55133b6cb6f979774de88131335abb39d37c6b97d8341360e5cfdeccf7a51522766efb477f61d86ca704f96511aeec9723ccae29e2ca330dc93e5ce30bf3c6fe4c8120edc6bc20a8e7207b728925f1d7a9e1732761ccdaa75087923cad34b1c1bcf0dd96aa920e3a087b9b7192999e2ae0219abdd3b928412381a870bd222f71bae400832e19227a0a366f8dac13bc1c6e0e01f156ce80ec2db59486682da37705166ed28dfb83213251b09bc316f4cd0bc042cca4c68f9e52c015bf9060132bc6cb53204e25a196620d8ca90c8be6cdbc059fb726dd68b31f2bcf8de8bd1be1e57e8428600f7cc90df6d15b02a1e7ead6203b4f5a56112ac108954d185a32aba40864334580bb967b255742108e4de8b391dc621acf09a29051b4208b9aa7121a3e28847ee62bc0dbb4e631a15702892bb53370e87713875a21805447fbd3b69f618a623a3c9ba0de4ac9bc0063276d235922efb1549cf6ea72353cc06899e84d6d30cc314b672973dce0840b6b8c37e75f4576b90522ceba1efd160f2992591ea693d893d76b3db0b9493b1ec1dfd75921efa8ae2c1489ee1aeb30ecb9e75d46677c3b0637809ec22d193aedc6e07bb790973666f3becd92fec19e62a762660ee609e959bb06661df4b278b72c4e049aa206cb55a2d213b8f489489874f487e1b8c45325614772a4824c3446251c4e9a128135f63511c5aa9e689e3607c0ea763a723d1cb797988b3010f5bf9e50ebe5b19364e8e1f10bf47d344880cb56e075b30076cede84499f888e3cab40f5bb9af4cb10d9ec63798d0118237870c9fc3bd9d89636b27ce217757ee57851ce790fb3d5f60c2533d56cf179af0542f772f0a39be8343728422c82f3f3404cd410a5bac400e2918b213912084341021cac10ea880841d208a10c51a7e60040b473cd88938f061071f383862440d6dd8897fc4795608411355a0031b5ef0012becc4ab228e0e1874a00b28600217e64034831d1729e23084257401047448c34ef4c291106c8002181c61c21c64d15585f8ce6dc7f07019b84e7b555c2194fbab8873fae93d1573c430b0e0de4fa7d41da2c8f6548a1e3891bd769d657c672985dc9b0fbe42b66d45b6510bd94aa26ca9266f4759910352a0e18a1c2f5f0ef6f8f972ea23a679668c0999b1d7bb23df202192a5e8410fae8e99ccb26c66593e64f8799d96f076a30087e557c513b4c8295d9ac2ca1f5764527e55f4800dd976b3b00f82723f25e1ce3bbf2a7c60833c6fb240c611e31683eb4ed3d45cc855fc2892fba997274b17d65a45f1955f153e70224f6c823192229692038f261298a289042638236a86fc4567f7e9d42a530aaed7b7864c0f2f3a2185f105434f5c3dae9611ebee2d4a4d081a3912638c3d7277cd006af1c290e3db028acfc3f9c1f4f89d9753f2f8201e8b3ebe23408e3831728cc9d125c7948e24c75faf5f0ef7f8f858f3154123ad825a0ce108eea2d85ac1dd8953c11d87d2aa27dc552e0577dce92ad50aeb1e5796655976eee2db7bdf45b1d5278eab95e35aad56ab15b3e9c36a856fcaef3d3d16451c985fa55ac9c89d347a7957e3f6f7505cdeae228d220e0c964fbce068f44414f284906d62998c130f361f4f3c767d5e3e3a3a3a0281add1aa3e118f488441ad13b4da091e3c620f9e78228a202408a275b69b96c123ad6a2069592ecc7428e2502251a6bb13c70d7dfe6a3ce03a7a94a916471d2d92839ad5ac4894fb9710d5a27fb56811c8926880aa7ecb2c5e1a1e4dff571681aa3e2542fa094a234d07dc15d42a239e88af77548bdccf7e1471e8d093e9d7caa26d521832a488475492041246271138a2a8844389dc167847e29436a4ae0259cacdc7c709b8f5340f769cec1012aa439612df805bd88ca1dce5a666a15cd7361e9478036ea1d566c5d9722bb548bfd0d78b74b95aabaea36040576b15f607b32d6d126b50709789269b181aca72b7dc97af63a96b4241ea362236b5ea44d384c0a1502144086d79833c2d424bb69e2986520a1440805c5bcf2b83090e263798dca00709608fbeadf3b3e5f235a26c3db485b6e0ae4fb621e6294dd1b2cd277e9e368534d259af79c10b5e178430a497a5b60d3125b673e08e4879d42a699422a1f133a4a4492b8810c1b059a2c927e47ad6a461da10f2319b5343f9bc3eefcacf27fab53e91b10bce2c9e2cd2aa99c553f5f3346a56c99b0289b34877aa7d531179f4686070834c817c522097140805928d1e4d3fc1759448b682445ecfae2602ee7a0b5a5ee0ae2022ea79987b6299ea24fbc81bbc9c57c4c868c6286f7061645ba2659737c0a255aaeb1d2cba28aeadbab0ecd1aafe1092a386ac6092abe02150a201c6e8a75c59e44a353c555f3e814f707732914f94604e66218d648fdc973de40d4c4e8e102477d70ca411c719ad68511a49a30cb54463b993b753c99d348246a016d2481a49a34bd26bca39a5d1d5e3b61062b0958b2fe74dfa795154c6ebbae67c94315e71ce0b426c6f2dbe2e8c6ca3266b7ccb4753773ac6eb8ad7755d935a88b181e4bd40f8a890544a29a504a2555db7edda866bddaebd39926baf41fa46fa856b905c23c1aa28d3a7176a27e11c27ad1e6adbe38a5adbe980d1bee9d56955ab6c1b38fa4e468419562f3aed8c79098451f91e152d5914e78e621d2ce30ddccb9d8c950c4829841976ac5e536699cd32528c8f0a21a284a144b2262dc14ab8022079fe92f232998edf7124ef4ef9ba708763925cd23625123a55bb14b4292dc32abda426a53dbd9ccb27956adbb50d16c2abc5806b20adfca83812ca7d9cfcaaf0c190fc369e1a5d6ad52f2f03f172626e2ad870943b1f729f3bf1e0524a4d560dbe93524a3827bce09c730ad97a54de364345b201be9652caf7761d6e3cf20a725df59a53c334acd639ebbce60c326fa376ad406e43c0e04ef24eb58a32fd12b9cad9351849e0b2772f59d57dc56b5e184fbcdd2ee944441c22f482425a350f8590c020904777ef48661f240c0812659a073c0254f5a13d657b89bb938d580bc1834678340d8304818343b08997034f2f27ce295ed0ca90069192520dab9452795dd725e5f5cbc471b5d6edba64add766316cd32e18e422d56c6f079590fbf2a561548b05b92e292f4da3d24a098334eb745129638c9262355e53ce790529dafa24052935ad556d92010733bc360319704f0a1ef4206734991ec68bd289d54829959472f3320def578b81d637bef77b3d70afdf7db94956d8474b5aab64ab4c36c608b38e0a5b28c7cb6e9c09b51d5cc700c8c717eff6e5803a608458b09df6931f8c1a881a588054ad646bb3011abc9680b7c34599780aa57d5fbfe8b90ce9a4effacdf1037e03d98e3dcf0414a0dde21cf6da15f0762cfe017fdd048480003b1a3e4599f84799786d9b8165883b224240801d7bfb6ce3b9decec663adb442e8c4193b92ba0590369eeb72ebcbfbd3aaf8eb12d12a89352470dd1bf2ca9097789e32a2d460c7d84fd6dccdffb48a883770930626a255b18726e4f937f1935342794d7ad9367073e26d083aa30e91aba4f4a226a47376dd92ca2bdb66d04fed04351adeb681ab938866c11cb3fc0f8dc6e176e2df2b3ab2efd51ccfad5edc42155168ad2e9d68d48c72ce4661f5a230766cd9dd9d02fbfe5a0bb97f280c450883a488835aab1e7e5007f2360e5142096196a1305485475d304619e30c8965ed7ee730d856cc39e7a473ca28a5d62719fe5d709b9172994c5f3075ad81ed6b28e0ba538e5ac7752b1f82e4986316728c7da1937a5119312cc3301489d58b4a29a39431d2cb0636febdc8e8688487b422779a94f20d5a6429a51008a117de40455f114e215584f105c25f1784f0c22a855996499e397f5d7f3a3ddf8baab306030e5ed7b547b0881db3d70e78e4f8eb91f29362072320e518a12abbaecf4bca79d54ae9ede9e9252f7a9dce8a5d765e93d2edfabca82dce3929a534d2d3a6951ed67c4d3b85e4eea5210a1d80bce0055248d144968f6ff3b152482194e3a58f9d97b3150617b8800d43e811c4cead47c2a00c5048437e4f258bbe4022fd98ec004cdc4b6e1279a2908f12ed62cf2e8dee4ca3553f529a386ebefc9352add64b884773a54ef2dda97337cbc679611f277f1b037ae704ff449926e2d66899bee9be0680c683eb9e90924ba3651ac32c1042b3688022bfac5d3aa7256558b53f374abaf144ceda1b2d4622fdc4fca6c8028b2cafdda705699add6e31cdda5b4c8b27d9ded2e576b8f1906ee3db7c945ca7a39d1b0f8986bd70a7747d94dc64ba89090b7da7a4051a877f68b080b36fe321f5e60333e956dba6c8e20a39db922cb925d924d71cc7c126e47879b73c379e29b228c952a9f426a99b4096f344e01f1a5afca91c89c4693fadfae1e87b443bda56abbd360edc1bb2914ecab0ba3daafde85022b97b434ccdfae1da85887d2f1d1cbaa0cd307a5d35e29438099b745d421bccdc0dfa214b5e2a3908be538ab674df4ebc2f4313131fdc4b57e83ba597dc20107ca774a1ef70b76ff6bbc692d24d4a2525f8b1847370f3144d3a9accdba92816ad6c09e3c53e6150a6116ada49cb36ab6d3c37e812dbb56b9797361fa916e4c36a3561d045372064c88075a24148b399a65d9869fc0c39f1b19a36af3d32b71e12212eaa3d0c62188475d2eb6a2be05ee457c5165a99966e8e1f354ae74a988828d38fa57330bbdd23cacd836a80c9b9d72879a9e417ae61720ee7f871dd042b11655a47ee6d891adc4b700e0ebf2883c43603cb17ee88e09eedbc9dd23749bb77e466dbe9e816607734c1c177709bd8ce81dbb699e53745165ad02ccbd6da9a65196e70070c22691876bd8341d72525c9252f49b2697faf9bc669d750ee60100c0a6a718395cd8a5b86557a5d5b5ba9bd66c91ab518e7bc9a505549fca28237a795926e95527b556de399f3da78e6a7d5b0cb395157c4ae0bb5d588611776cdeb9212067e51413cf2361e4be57ddae5658211acc8766e08805b027c6a9ea75b4f6789b38b5e799b514a6ba5d7e99661d73ce9b392485aeb0d68b58bdaf9ebb5466dfb9661d57ede6acfbe56db23c32a24c19433584d04efba66bd2e9bd1ebaad7ed76039b734e7becd2eccec767f36f93e791a7d727a4eaa8044c17b5518e3a45342200001000f314400020140a074542e1683853759d811f14001096a04c684e17886110c32884103286000043004440004440300007a2192a27db2e369a1bcbdb9585b6b8dae05008a6c2cfbb6dd988f6a68a287864374b8eb56c4876a4bcb25c94f212656ce00c35c8e83ae1a0026f8a3c2ee5be9899dcbd03b9d30390ea0ec10994ab5dc4dbe82dac5a1ca7dbf35767514860799b18eca6573a198ca039f0da456ce54102e756863754a55f090f966bc81b1e94e880da0e42d4486784638feb3c32172764aeaa2f567bdcbf29e715acd5f82ebeb73eaa5839ba281a1820cf869fc8779b1af5817823eea96ccd3b6e05961635760c17e0662976dc38401514a7634ec3bcf7fdccd52c6b4072923770130b700662a0914cfdd4da2686b96affe3ccc112f65dc360f22a8ab245f787f49b7bd453b0764576f6f45a97932bb8e52ae75263483e26bbf2ec993c312d17ca23aeb0ff35ba0461cd2368aed61f582f8a066a52caab7315bdcbd02bc28569f60610d37935efc4ea6b12f77eef5563758b994beb9088e3c5eaaefb482daed6e295ac020a07e5a53a60ce425d6dd92d9caf6edc15ea89acac81e862ace1138be58e06d9884b5d3e588eb062075a8098fffff57848477e554bcb08918bf1a83316abdc08e455d1cc015691dc91cb0ea856cda42898a8b1386e0a73dad04f2a8e59bf3c9d74eb374904b3510cc1bb08684d7b7102712671119cac1adc0aae9b017207d4ef1e3936f51d5283574d4974a86883fa36b5bcb7d119319cebc42a35777b6601c47f1441b43974372ee96958f3a9cdceeaf40ef0cc1589625805ca9d1a8c8403ac0a226a495743265bb6308e60ea365106e647cc32405cfe567daff9ca38c2dcc33b50ec285a5cbc00c8e7f44bcdc2d3863f18308f89772c498b2c22d42a8239cf7e3c09c49c8c902c2696643d2076d03bc7cb60ecd2ef6c90475e8ea61646caa108b1540f840a1ac3223483fddefbcd5a98de190690f56f372fa1a34fe7155586a85d50f9dafcea5d4484cc14fa452f8f98ea43023ecc0bcf102cf4cb41f88b1a1103b9acb966a66652f0931f7720d5e971f595026268d9111963ca9da35c01c8b660a85abde589d023c103e3442642d4063ea6897207ef8160efcc19ab8526b6902bb307c05e2a8e210a066d74f00b26ee4669bd55c6d14126afd021f2345d775b0b931cd85052e45c5838b37b045caae4c2652545f7d3b9a5cbf7d51d101dd504ecffc9c37422e221883e61bf5fdae68d9366f5693ffcfbe1628a4ddc75021eb7493522cbe00cb3ec318a06c24b175b69d2a351749af5c43aeff56597aef4e979f8213416c76dd6f02d524aa9e302da3c04e163bc1e1431ecf40eb341e1d3357c1db28cf813ae309bcab205188189c2365724135eadcdcb709b17d7e33e82df8a78d1c66ee4f5d0774673e395126e9c7703fb8b395cfaf95121bf5e4d18f1b69194dcdc7b2a14e8a9fba220baafc713a44103784cac6d4970aea1d65f4d5da5d7d302b01ff0d94602737c76fc3e86587c48e27e4273362b8e6f11b35a6c0708324fa99340fe12ab0cd4887b8e38ace14bae1d19e343ce4fef2c358c6340d51c7e90081d8d155ee614aeea122eed02094fc2c4a896967665e19416b63729489f44c6903857d1787200992b82742160e3e60e501efd2f4b41db9bcd2e246a25a3fcf5fc388b657b2c0426e8530915dfc9a5c94276bb4149d91f77ba7905bfe674936e116fcbfc308758d5b7732a577247941a262271f5b74b3f7b3087f0622b168a53421c0da6e256ef10302558993532e120184419a626315b0c688da2b061022a61ecc068e29013f40e19d06e24248a320b0118e02dd4d3011f5f3747862f400ca0a7613afaaf868e7755532edfee785e96182fee64f7696a89cf25c962355069f30519a1aec9e5ad8f32556515b525529e420ce53a9478a7c33d0123e7a3e2c9b20cc14ed01602004825335cc5138aff2fe27cc5f9114636ea2f24d5ae7caadd59a1fb77de267a582798bb82d2cde4198a0737696a91ee020e7dfce49f6bf178cdc06e11d65e011797c184cf93424140b875c42e2c092f84522ecbcc03238d479fa1c8b4e8792805980b2457824aedcb8cffd3a1f16530c08826649f70cca63296286684f49d22edf00682e73d45c212f91f686a79996f1f7f2ed516ac8652a541daffecd7d3f606b2a3f4cc68a0c1051a2f65d069ebbb408626cf9f142cd0074d8905e18ec22d6e0ddde0328edb30976b48b5e354294bc135387f9914f531ac302071e918747cc2dff5e87b968873719c7cb1daafb19e41bed85ff6983faa22d10336be76585e63d3176a4e025d26f62404e62bca4949c3a165276cd9e6fe3a85ec371f77612414dfc14e032be8f5e8b4ea34e0f26e5de4ed3255e4e8e133b31cea22093979b70eea3bc7fb27e9b99c51eb7054263203b8ebba0f854c8252aa0873c39d1495f328e3a3432c0adb4e77926fff84d51d7eb8f44aa024ef8d0192734dd4c5becc657c35f3004b5af32dd6161ee3de09150cc8467ab2bd8f1040384030fd05c47de7150384f37151832c6b604c2828d05688a0659d70b969681907e0ab193a534044e5b2da6f1b29e67eae2b01a14c4f6894d8579b3b2444e0d60b4c159c437d4e59d462cbb69a17744637f90d13ebd4be880ad6ca161c73c59b47115a2fb0ac96cfeec951d7678bf35ead87ac000dd5be8d0e488ea84af0c5fd65dd42d78c0a10f23df90e0f9e9f2c82ceb311909ebd215877abeffc3d20f0d58b5696a77a42a9db0263cc71d781de755f9d2966d4aac137ffef574bf153011e37a7f288874a9913a0298c7527e8b97f28d809b6878efdd11fa94e5b805c71a4a84509edc68e4e7d0a503ab439c55fed1fc8a5cc3a0a368322700c957bfe79281f2a580f026e001cdb290b707b7280068863f381d5e8d7d1e594975cc9f6df0fc5af90dc6ab9039346b6f066d7d4fefcbe2763569b38d5819cb608f249bf9fe73a6c5a6e4265738949993fdb3aeb5c36f9214b771933bd76cce18abc82be83d768085e5f34a63a4b7de34852f63bd7c519734f5d84bdeb6cf81b45c07139b7c4011e1786977e741fd23cd8c4d154f10b6df7ed3c7a607c88e1000d959dc0f66e406f30e8e4552f217e137db8d87194c944e3edcbaa95a8cf517a0754b7d52882b43b0482e87a4f72a2ffe254a7c76ad7d68090edf373851559461752857147985761e32fc17e5a242cf03e3db45c4f1bac8a3dd490bae760b6475afd1ec624e21414084a6cab45ec0142606192bc8b9ae0738c2a8046bf7d7cbca9e577a072beed18572c8b458e1e7bba2590df8a0fc09f263bedbbb8f4c346d8fec82f6f866c9f9b9908dafcc55fa5c312cce876a6a6eb29a6e191dfcaa238c55ca9afdf0717d48f5037adf4fdb417e4fcb4f6661af80375e2e9a2a2a7219ae5528aadbe81d40e7f9455db8674d4456e8cff92a09c6e35a37f5546b5d3c9f75e37a58a557a6560ef321cdc4ccce66fa9c7bce4d965d2df77cc8b1e82a408ca873c975c5d4f08919649aff466a4de77e6257700097c8ea7f3539910a0e747e312e4623fa620ce4be3dc4272a6101f383b305387f2d0500afbde028b9cbdec43e1fe796e692fd62209189d9e55e10b52b79586b7216cc4d066e75d70dfb787462d503bf0dcc063dc71cd04212e7d9d33eb5493a1921acaf79b64a70b13c08066dc9ec5ccf0a41d1188e1987633d7236a93d280f3727519377f90a96e15709b90436a213596be011780e086cebfb5f6fdd2079878d78e87b0488cb11fb21e403e797073224fef2654545802f580945d0e6dd12237c459027d42c0645107f5720206dc008f7640115b9d29e774e980cd4505084c4bc51125192ce6a19e0aeaab4c55e8fe405a485d446cce3259f626ea6c21516e22a9d7014aca3ae5a0d8151da5dd425a54e049a7fa5f8790b5e7fac7de9a591474b4dd75964b9963b7273de23b6a3d8f5288791305f171ec5cf48001285405561fa638f89e926b8240bc086e59d5e604eda6f525c596342b89be1dd135c8bc626c3aa04ce009cc041f20d1bdf80e9a07935c79501c7ad7e8d9a2c1bc6226992e8d735a4e8cbb18270b2fc9e27348b1108be27df45b8e30e14d5802a50796ec48b75e9a4cd5b14305041a762ad924770eb4d4b445165ca157b31640445b17c4db3400910b4d0adcf10aff62d2f648ee6e7eb5456aa2837b92fab82c78e67600ca306e27a1a08a04b9a7005c19c39a18160c289fb8e530c257f6656ee572dafe5916d3eb48dfa8391bd7e2d628fe68bf39e508e4771e2e9c0e4c987718035147e8a9de19e58c93cfaaa1047c947ed7e3c98dac586da0940f7688d9af6618d5eecaabb88b4993f6afd89566231b8839e6840c5f5bbd64d4e65603ba88b5d2945304394e15561f682e1485819e19c75d48d19997ef188ec139dd49a9ac027abcb534861dc20fb4c6a52c20aca870951fcf575302ecab07485e2ad550b5171493279199cf047348a48fbf00b31386c50d706a81bea53f1188ec73bcad3c08d96634635a483dcb1b8cfdd0c53932c7664e42d7769156909d6c7e29440e41aaa58b4ae6e6b7c575ad6c576cb5627ab240b36aa14ea390fc2bc6ef62b543b4f6ce9b232b0f071fb1596e0a5d8438dfb0433a0cf65bdcef9683013474e6d9f4a113f71b679f4967b7edd02c22b4fa26a03f2dbf4b77cbdcc98ca965159199c2de2f4fa0a109cbc433010b8f77c47de228daec4c9200ed99d5da03bece1272c6f3d5fb2b5ab600ef5f1a00c2a0845fbd1758856534b75ad0628de5905b7a2bc8d95dcca9bf9ca3f008c87b7213bc2af68de80bf989cd9b93ee4f03da2b495f02f823beacca31d260c216e6d1e98133bbe6fe4a3fb8b7cec00a12a50314e705847e69d78b2260e7bc6963bcadcd0ea4d997a828c6ffb4e43303b45196a593b464ad4abb529eff21fd9503829f113100f0e0cbb5175753cc724dea399a7d55c879019a645c08a2c509c1208a71fd2ed96b2eb4ca05ae2aa78b9e20f3bf28afbfe453a513376591d66b11cec3e04361ea1163ef31529855629499c9a22b74c144a40de73d8c1ebdcbf0454e843d7749cd415d5ef6577535628c7fffd76cc50e63df00c3b8c800eb9c3a62a9497f442127c97fb2483fc6749c53aff4a3fac94e1602f275e7a8919ee5b93041b9dac45d24f2fb37b5718536c1a8b5cb98f937e9ff53cc978671b393a8e12a1ec4c302e7f08f21d27166d6efdfa4b792b95843f2a5685d4ea0309f99e92770598223726823868d2d3ba60946fc62f5ff3aebbaf1dc1ad1f6a3c6dedfa308ab278684e87aef79b00ac75e0d9b5d7e1ad344cd238fc66f93acaa7ffa74ae6d6f429cf7c7bd7f1fb0b136fb4d6c160e90dc5f36a47bad117e05bb7c19100a544271ba7a9c7bec0ca51ae8bfc7d5b67ea2fdc9984f253731dc346766de4afc0d0cccc3d6133865c196069284f157ecb18eb399dd397bc4043da41c81eed1a466096b74fd6823ebe709d73b812750347b6d95a557799831218ac4a653776a001271365817a390b31424616310f50da906e0e7082cec366f1baebcbb5c488a72fda461b585e03ef80d37318b029be1d4f07dce2ca38ebeea0b33838216e370273e7417a413e298c59d230115ab09921ca765efa133c4d29453d136558edce4aed21b2073fe382083c17f59cab46a161e695031108fa45c22f779c8c308d89caa463da7e4ea6ef4361c55f2d24b374eaa13410f279239ce2dc5c87f79aa447c99273bb49e181491b5ef04783c78932ab4fd83a6139241a89dda69215cc38387b82fb4ce068e8658b47de2be7ef75d04142e88d705d41850fc0a0f38eeb63488381a53a9d62273526ecaaa6cbd33543d3fc4a5012a4af08095313512d510c2528f67f5578f473ecfbe58039d4512f9283ed8ee408d2cb645563e141cd85fd8c18bc5c07b0e79ee60e08eafc7a63a92024835cdec72d4b7b89e9d7da1b2d22cbad3ae976ea27a0bebd43c4cc3ca9c36382b45c285c44af8a701d6a8b33b31606ed9d03384c5d096f93070b298f6060d85a1f18af97b052e32e75d44a6f018114a1c2c27b690977348d7dee2d0b1f9abde2b5ba9a328ef30ea7797728739d439f554b57acfa23b06f1f02abb9d8c9d2a1257119646a8561912f5e1d649a4411307466020443fe68510d72d4ce2a62a0bc14060a52d0fc2d21f6d3102200f52b21c7b04bcf67a63005ac8a0ec958e6f60692786e8b9022855af7ba450ec5830cbb54d20089d79d8dc9b5ffad8282e0a6236da04da6e12fbad9dc8329e0c711f8d8eb90d840407b9238a0c3c47b1143b2a428fc3839c84113b44f2fe615e44ea418c73f81f9640202f8cd51ec1ee67ecf260a0bf5cb8e25783d553131a781cd790d2476b0289fdbdbc590041138d9fcdccf4bfbffe0e363a2c8403fed886d52cd2d9e70361087bceac4bb1c5849b54d508d3190cfb53241bc9dae03a56e640272de27063669d5f4268ae02edc7cfd44605fd4393aa84eee0c407fd2ea73410d668e691f1797d3f844d78dcad42e2afce1d38a924b093705ad1fca4f6d76f9054e67e726b277f5724c553b74514e06d5c24159112c8a42fd2d920c7fb9643786a3a8793e060e8c6fd9ed38b9b7c4c15e2c4a3e141bcf7213f22b4bf52d4e81cc084595d4868b404c8002b0e0406997861b467f634fb10bf89c27a302830b8d3c7fd198b2aafc17ff289c3a69a137baa9015915b15b0b47b3d9b17040dfd24b618e5e3f979ee1d0129b9c2f03be77c1a10671058bcec8da19ed3ead673f9100289f7532bacddc32016c35feddd34c4c1b3a8d9379664183d9b1936d0168c7d664c098b90f5505cac319433e59ed1292fc1bea80d1b4415c31a94c589fca365d0ef0cb2b05bad9a38680c4085c9f0b24b1752aa01f4ca2aeb8125339e68c1845b4b792a0f11b9b63e00c3e29d3479472e349e4212a68b4dce77fa34d55796d4562a618dcfae3a4b8dc6498bd91a4b293d48df73c9a6b6d43869b560719df5c20e9de123e562273fd423935deb5947a2a240156e6d0ef3ea66d06ba2fd9a47cbe7a79fe7417aec772766a81b4db216b9d74b6cc65390dc08bd30c3dc0f131dfa91eed4f14adc6468e00f4970e991548702c3a7a5e15009efc441cd2a83342113c7008a47f705a84cc9fb047ca24252b390cf2d1dbe59873c31f88ddc4c49db87f52a473fea33e641ee45fe331b39dfd083a0b8a46f466b8c3493c11e6d5d980e574a349e4ff8e535f03618584a6e4e27e6a9091a0ea8645e0af0cff77146a5fde162c5c12d89aba8f3f769a3b7e5400fbf1fd67b3f11d6b4c24c1f8c3c35524a71d4d202a9cdd2b3d64ff8b1a6571700282dc39029fdc6d44c992705383be270612eb2169328b713539cf724aaf64ca361892c512a7c1fc97c1d8a21ff15bf768e78a4f3a1092c0c2f6c63170c17ab6c383562e419cc724134f943d1a15601a8abf2c015fa67ed6c62ac4977bc0bd5934acda7e42daec3ccae222c1f91c461c9754e92f2fee513a8096b299e8be3415c2c5e0ee6686e4fc7fa66672117ca7c4c1ca2ddea40689c03f68c729d565fad2bb5fa270117f0cbc76662448707451d918d91b4ab719a6800b06872245a0bb4ccf9a163b202e5e651cc3324524214f52f3553e758c78dc81ca0615f440c4aa49b1e59a23f36ba83eb884882eb03b34aab2512338492bee72dbbf3f20d6655e8b5ae9771cebf4182ec99fca27215f968b7177cd5af08df161e24c5fcae82764c8019a51ca79c3c9ce2538f357a1b777e10cc90ba6f83da4986b24e6a2c2318a77fb5abb965654e5adeb028189387536665fa341fcab7c4fc0608270a6e21d073f2c184a274a4b7a3e8c7c60d3b0af4685361fab8af8852543fa4e4e933669a1418ee27d751567badf824ebc4ac4f1ebc84809910d232567c8962601e24edaead886df87ffadde67672f347dbbfae8b6b3a3761c5371217a18d7546bafbe7ef1780d0c0a6ea7890b5113606fa35e94d4675f9f7ee2cb2d60307bf470246c3013f51a1ec7a129bf989118086f50b61e28e7117807cdc5b9c9fa163c54eb1acbcafb559a255d92918d9170c69f6f9f497eb6b188e5d6f471e5f9177ba510eea8180afe401ab2ae1e5ac40eb1e4917aacfc38490c7635ae045f1d83e995c05b2e67a0dc84871e3efdca6cbcd94596d56a66024ee3c98aea1279a0ab2922478e36db643521353cb1be9a31accc72c8777e7d8c87045d398dcfe2dd0bb371f9c6520bff0822c3e104d1ecc835b74d7ac91e03e086bb63a4c29b0a38273ad0641ec2fdf735334e2de19dc2f906fbfce342906f41b72451481a657673923b422ae3781a259793b56ad8d075ba8c4c9261934f26703a53869de58fe55e7e75c792fc6482edde4c759095a7c9252dbaaa8b7dc29d9d348e877b876bd7536754df7c894252070b66f764edaa1571a359989b95c6a3d07d09baa554d2e820879c2d6fe903c6c59fb38937867a3b6701a84343bc5d91c410d40df6e856d464e39270d0b6112c62d621359ab46a32d8140178bdbdfe440e6e958aca313c9b70ab17c40d54e06045cd3147cd015778d6d70013abb090e9df5b56f5c59e9f2e634c2c455d887a878ab77270c2ed15c36faa0e9db94880ec30b64af600fe76c2bd5dade82dc5025ebd83834b2c7c1edd5b6726b59fc1a2c5b40a5e4560a26d6b9493f28708d94b42ea422ccb631c8c38185bfb6d2ac120d8b1609afc5dc548e53dec62a4922c9e3665614d6a086c6633bf4f0dd5d51e381e06d81375073fc5ab8d01212775d3e9518c108d10e5ebb6ce6e047a4cdcbdb4edb0dd0e8ae90c28f282dadbbffd2536b2ba06b28430d51ed84f003408f7a409e226a075006dbcb034170534bebcf3085acb1bc9c3dae2c3c3418dcd9b28b808fcc453abbb96dbde5e1e578f45a5a4f4f4d1f6a1f9374242d451d86f5626ec8d22f779f91aba79a24917df703980d842f8109d4db9910638d770edcc984c7b67820e0226dacb3baddbabb43cdb8cf4f2b8483e1439f3072f2db014a3f675bd86f433781d80d52f4944cf2d78e42dd1a8c43e85144605985e71251995831c09697d5c39b3aae9e1baf06859904cd41f184f833f9b619c89fb4be6dc80ce2a28ff90eda120b8869b9523c1c130f065355462256f6020095b2aac4190187292ba1ef904bd4d998f58cda436f3ff496982b33bd373d14cea9b796e8a856321b4bd29b6f4ea2e16cd2ee348d81c82e10795ebe9c0b97f3f636580cdf3a45de7117f6c0ceaaefb8949524963593bca2dedc1d32d433fb2625d15c222abca7b449d4814a7e491ca8c08289990db36984cab0210157e773f07e86ed0d3452231c9966c6228e260d0869ad34f1dd3e1aa6eaebd14a871252351fbdd072b50d4a8242eb5c93fddf0fad17ed84bc98a889fb2c8d4e2fe0e6a2aa4665819a02c229d824261bb5032c184e3c1f84c3363b210b21e702dee6b5348e34f6ccbdaccc217e4c3b936e49a1ca21c2f5c8d1c42219e1f9efc6a57db1e2f475a51846d65cb107f87980992f7aff6e7fac1285fed98af9378f7f1e44d10275f6c0fd054e2a97f72340c1121b501340c3af6dee88e622c02ba348ff13d91277924bb13f1e77f80b388f592a82bb126ed2fd8e2fef64079587c098718adc8fa304542c380a2b9a0d0baeeff7d0559c9f8fd07e33038fdaea821f89157f1f7eea8215dbdee775dc7353adfeae6efb1ce327cd948de0094d786ce25907488d0f2b9656cfc40814ec0d68ba1bfe55de378b8532614c49be91fb27684edf100fb5b445f8ce8278f726c8060666a16cd80ea01d1fcfb0891a9c7bf3227855010a37e78c6a6c05ac9b90c3ad56de4edd63253fb9fcc1804a77628a5d8e2183362b8c0c8c3848bafc2497c6543a8320bd97f50f7d97c888b47cf71d394232a0f6b2554e439a1638f218695e764292115c262f9986694a966986b20713e807f2f6852287e1d2bdb653573cf5bac0af095ae129268c20b5732468b1bb66644db03ad9cb259a283d04750f962f6fe1931ce1c8c84c3ba01ec31e30725b66741da0a5953081cc6161780ca8001b7862eea72aaeddbd57c7d427ee6506ac7d855fe894e3c5aab4043d0dc15bcd0ba1ba45f5a928f42aff24e7a15588ae1ec46833d0fee8a5f89a7fe57fd048569d3a265c4923cd48d6f0c790b81424291b6cb478fd7de929f48596ac437a796d9c0318762672271b1bd0e99891591d40b8ec850913f76f3295bde953bf405934d38aa4bb2aca4219a5de834757770036faee79bda1249a3d775030c6e39533ddeecd170c35d28f9e29d11a685fd743bbcfced45dca8d726f91bafad5b891fa58387e3a86ae876b982183fe3eea5fc42f92af90eea89887cb65685325c7317ea05c254f3825e1fcae91fcd19fc9d07486a8599a675f728a1de546ae74dcc784fba61e80c7e4772425c6fa00b52cbecd3606e610c59ebe393fa7894e8d70e2bd4794f81926287d04537b92c3edc7888bf41092a51493f6ba344272ee5ac10040444a776210bac517b4f7bbe2a6012e8d95008f4af3b2a808dc0bc5890aee026d11b8381264659681c8e00a77cb8d805c0b976b66d7e443a082f99608e539f9e3bf685c601c2617b9a58642959423b9521ba98c9d06c356ea046f26f6a166adf5c4c91d8cf9b094e653e59a0a26fa1f28304e83e1c11439784136f9210aa14c9c9530081f1e61c1a218c065384c7c3355c41486791e1e7c2fd52cdd41cc428de8e2129e3bec0b1c5c36333032e072106440d7d6a81ca03c790510b79376c7e7aa5012680e3d5e33d1a31f522feb4bd9823d5a75162ed454a0f04b6920ea44bfb31648441a1ddeeb95275ea41f4b6783ba08c1d27735c6462114070431f7c8f50f6a6bd16502193a1b63582c1067b435105da467e22d74218e8bb118a985e243711e0a61bbf8f4cda42ebd07a7b1228874455f7b6206132d9d4e5d3b84a48442c9ce472901a7ceb6993a1304acb35e5e9e1462e710d606bff651c8c0c367fc4a622d2747c46bb15612d52ecb113b1f52ed460c62a83897b7146e5ad557d1233d48db65fd65a65d9b01306c227c12b84a7cba94cb47a1aae4d1cd263d554ec948e99a926fac8115ade054a581443d1e2d00e18c2e91d1e99179533684509c17deb71ae051705845c74e980a70d21154db9baf327fb3a9289091a195088b0741103c6317002a07fc23ca419af557dbb3600332e8a3ad20f4b6875e542cbb03b19cea938e6ca74fc21e3eca233eac84bfdcb694530251ada0ac920adf10944318cb0428b75325da055021e2084a39c8b8e7f80f3094a13935a64fae122b5713864507ce6dd9c9db4927d7be39d8eba35c14a1d5783f770cb0be318cbb8851e0d874f8ad5937b7504b9c1a3d0e1d994cf3e1a81c07007f9bd67785462ba0b9ab68a66127d6fd2ee29451945fd7cbd40eca4bb8e7e8582bad50a529c01bca0a31d81d42df534ca687109785ac7b2ce28c58ad9fcee40842053a081f6830559011c36181deee31c58b154c0802bd89e53e83190ee06bc1e12631764f82dde099a9100686f8fff0b03cf5831511c45b267440031fd7fb8f810874d7cbc02df1b82c3920188f78dc59a9837c51bb66a71c3537c95c3eb3260d4a30372af75e91c0ab170ff45f5b8c5c4869cea6899106a0b1ac0cfbcc28e626c11130ec6a489e49b3755102d96b32d2066881c6fd31560a467461ac0cad694ddf392bef9161013979a72104ac8a793cc7b996d95602c8b5e889c9a6f94334a592581f492fa63a51d20e1a024436650a7519ef5520c375f5d0905c7a4c62c5c66619dd8fc767f853f7e4de2a2bdd2168f83764843df51068180f8daa343536e5252491b146893e9f1a295ee6dd78c1b4efe6d99c9c2e10a92beebe5194df750af2c76452aaf026c91fab6585b28f13f35208028172433840289f6bd4314b1dc26458d6e301785058ccb6169e3569ef2efd88a70209f7e3acb85a9e54e10a12b7f5876726fb87eccc586a6f9351313120175977b59a47572c301ec9c3f68f6324f5b029b1ea4db4c8a675e45d982e1ba83787406e45ccddf6474206c3826231bf7542f88ee0e97bd86d6aef2a31ff58216b4a4750d16e92a6cc167096711e960bc12541c266c169c342e730b25f30596d83eaec2fb8d77c413dc2504281f1a80b9d417378bd0b0a35aeded999508304c8fc392862988d9e5d18abfcf36042526d75deb357b3bd7805d922dae7bbf0ec7f7ebc52526426efc7e988a5fa9889b8012164eeda59f55d000accf805035979b3b700de1d007f03e0dd0760970040f99d0fa09ab1f4d019913ae1def0bcafc38f33035b9fbc693661309d525a155fc60afa0fae85c4e6049dddf910776f8a4128a7b31242646875ca556f0ef835ab0bb7465122e810f17e73516b92ca178b72416516d358196ffa54c1ece38622f71cb483ec18611c25d5ca190730067fbf94bfc0159b700ea8c66d290b500b4882f28db1b3e2c0e48388e1710c5b0fe29bc33048a06488871aac8b38bea13054baae51a8f3390408bf9b24437906b7ecd0990f39f99c5755ed65114256d0c6325ddf03d63660b310de0ba1ba9a2b2a26035625bd396446094c628910a24ae2b1ee742a71f15aff81dded2816dd083ba916347c3f6216b4100a0b19d83e0c6d8c0ee7c8772a0b9b13e7b673b1aaed394040ddfd9526121cf8d2e8b4296d3c5a5600a180ce2cbc56f576d99e5f09f6ad1bb1d81f92bf229b2b7ec952fab435cb13d673abb7b42850627b49dd70974e0fbf98010294254990ae526d5b06aef7018df2c58dd10bcae134abbc45106aca026d2269d8ab52b6dc30a0eaf4e0a4441e1fa2ddbe6cb3cf579887d7970e2951b778ffe6071524af160a31a761730944b1f2a1c97f6c8c40601d96f6f0f1c360d5e9586604d9f0f835e3cca313abb1ff7ac903672b17c870a916ec35abaf6993f7367ead387e5c2af9a0d2f55e33f393516cb436dece496a15454c881af6292748fc6ca121cbe7cc2bc67ef2461bc19e4ebf669a2f642c50586bb4cd9053e7422a6b93e2da7f0248ed056e420cc353fdb9b6a609690f33593f6c27a205f5c008bee909d24f948a9796b9e2e1c416ee7e6de7348b3e1eb440862e824eab6193af2f390c0d9f36f8469a5f27ce064afac3250a64081868e1c722ab89d34b4b645349dd14d9938cf3813709a1ce67dab7e1516d3e83a05e2a2b3804cbe19989fc1a513b339020784441ff402db9195c890c9331b526e9162c490564220f1466ec0af4cb61f27a690a00dc740075d44a715fe97066346319e7dc06b822728a3bf64dc5eac37853527a2d68eded6aefe7200c96f7fa8dad3ddaaeacfae20851fa52682652209bb514e26a9fb23924370ae7c63b262b89a6bdd5d7049a047c28fd56f287d7a3523d26e15a54ccca8558899105470b0f174f29165321cf88205580cd88509f5f1a10bd9abaf11214c176bf2537143b5ba3e81811486495f055899f2d8ddf77ce37192bc5d52f5812ff0cdef95e26513275f0b8d476d76b1d8cbc3cb83c2fa2e81a36cf70459094862908115749865cf2b82298e4440c04f920eb9a547c262452d4953ac26e80c9ec6fa61b62b4ff3bbd15842517a28aa786aa6e8b6b937183ac5d08bec887aa8fcb17a64a5bc894fbb5160e836cc2dcdcbb3462d75b632368a167bd3d7ab011b843c4161bf8213596b1c13dc5d3a191aa84a9001bf639239c49283524a74bc2b5bf7fe05e2677a71317b0b5308d716491fb8297e2177589ed48f891a9a34d9b1c8d4e39cf9ca48c0d8ffa3223f6d0626a14b6aade73d01756c643b82baa2c9081366597746c41b4b4d8a30c4d8294254c78022439c92a4524dcacba89481eb84a1c114d3c7bd1aff257bf30d354f748eaf7135ef6023f9aff3b90a2a8d72e3a7783d6c80be418f4600be5ca72a0b664e813fe92714132367e8044c2e27c68605fb8077e9554a99fe3a9b55fff565329cb68964d886ddb1fba8e3d68f4cd5f842f112ffa17b0db2332e63821234e10db72d93d91bf3c31ad25705d25eb23acbbba424b8cd1ddcbe2e85d2153cc3503b92a6acfd9325c0a065b15fc6196a468b52d06749fe2cda01bd150cffb048bb1fc154e43e91c970c6d8513078b06244d2a6d57d29b837eecfa0f53cfdd7cb2849c30015848d3c7e0b1bda1ac85fcc959a148c094c46219aedbd82e3ef0b8854c4fd9395486f756ce19823e8f9d0cdd83a3bad9526bf63689e9faa31e4745f542fc46ceac734d82b2e5bd3ec21b42f466422c4aa799fed308d9cafe570a2f2dbd07309a90afd556dd5d824bf8256c4dc3ae0d8c927725c83796fd9aa790ea2bbae1e3de0dc58e541c5705a04ef59658315e3e263f7436ae9cd6664ea465ba522211c8c9787e78dc12f7e23570739ef468d3a38f65a5cacca2e332449a2edea38949a290bdec01d4af1801f85742bac115152d986d867f5175136f3f53bd822df0b6ef8f7a54cc618a1ae3560307f17d9ebb16aedf221b867ebc063f42a42c3a39f3b91f05f6126a3de2baae19ff1ff9ee35bd9d62161a42fc895236624c818bfee9dd2244597ae14064c80295d14aa2dac4564327ec46d2a07b77df83ad545ce0ae2a2afe672061315e914dc0a44aa4bb43da39a2f8c3d83ab0912eedde12ab3c471c8d6ec8cb48c137d911adf51e2038a1695e1919520f801ce1bafdaa127559a146e3bbfc89e857cc388cbae8312d304e98b466878ad95a58bc70f959b75c221702c13aebec99aab68096ad7c8dc955005b23bfcf0919cbaf5239f8eb40398f1656c7432090e3b7a32c4650dea5fbd170d440809cbd124236b5d1e5fbd396b3422b52fcd87b2956e1c442d665336741581bb369baea7811178a60818c10543eb13a64dbc7f2acfa25bf55ad2465821277602c8069a3249bcc02d4ac84f145b3941f6e63a5308fcbef52610055bb0611c96f8f335284c53a50786e376705d279240b8020c0062c910ed2a4eb4b8280fe10bec4e2d178bf8cbd33cfbad9fa48b510a687b8cc506922386bbf84c2927f30776c465613d15c5ec28e32182e01f27abf6cea73100c8c41926c501d392999bc113ce419a241dd11a0f1b55c0852fa82b224efcc2019bc4dfc34516fa9ad08f9e4903ee44e20e6bba1816e6b97157e9c0fd36fb0ac188e2f9671cb2af1efe777a9a7013af97a4e8ad8731ec2ff6d912da6f5c8cd6f6a528c2a327e48629b5147941b9953227fe4b6ad62114d8f178208496c89143322597693a6520caf903d35e8a44bd08dc84c9c003f70c8b333d887087b870fa21177e889fdc108fb15b0815c345f86090f5fac842cd4a68cf1596cbd643cc07afa021738f6056f913234034cd1945f186063b8a826aee607353b4f0e0df7d02d06620ff2041e9e4e30b2d866f7a449ee123d8c4c5e6758b3739c6c98f410949df426d34091132a2cb2897a70a6d2eb15cf65bc7ed8768de946125e53bcad55043a1374f790cf6221cf08dc0f96a4476c89143bb24391c0195ec6eac06ae623a6ba9ae31b99df6ff2d3865be689306cb002969ba59260674dd95dea78c808043399af426a1a050def6154a37500b19b08224ac4f6c1ec7eacaeb32a4936a421616364794b67c12250d0597544fcfe5387258bc8a1d0587d3a8e20cf17d0eab36bf0f3ffb3d2c36b677364d73cfa2a25e5a825fbcae5f6f37b5ec90f4f7482ee0dabd2e1a46188e1103dbeaa9ad5efea211f2ed4efe5371b32b5d62c51a42a76a3109d4552a7a797addfd1b3b7d2a8a0493c8628c1757001ea983c0338d399b8e28a55573268673a9b35d146a8f2f200e2fd9932f5b2547f3232b626e18cc1e1b35eb2a7d900018920a0cd5bac10a10032770f8bc476da362c7aa2646fb1bcd8574a62661cabfd2c775d223485ff790e3e28b60ea1857066a428c43359bf91da8bc1b825c974b8389549c1110a1ed335a5150986b0182b74fcc58f607bf7102055724112de0187139f560754107555af1f5bfb395499039f3685b45d6dc60d344d88b7a0ca508738c42ed4f7038613b1688c3cd54b59323136c6a9de7d575f30258e81da35fcedeb13ce45bedfd3daa4a8074a766feb4792a435654f9f9e73a000c113b905b9cb56d4f6d193cb34f93324e0717a790618e6f58b33a12bdcc4104de19851e3d9d9e46c0eec98794bce065366f51ed30e69c68ba7499a62b2547921225423b590fbe74b855650c467746584c48f7759f50f6bac62830a31f801dbcd65b2877fd3190c877137b4c72c5d3b6480805ef487e020b0a865e90cbb78de09081b8ead08a5d76e0751e1e9a8010387cd04fbae105a989f4bcec53a584f5efe5ec9892169964bde564c41002ea98700982c2d1be67a01481c5d5e757a12f46cfd3a7998738a519ef837469ef799da6cba0e2508db8606a4c0a987a22d6312e1344c3e2451b269df38f284a56648025b4485a2a118c07619ce858d7712c664b6a2205632fd12e8b1178dc6323a588edc28acae1794f501ec20056ad17bd1204bc28ac5af78563bb4ab9c68c374dcee2088cc47236f4939838fb3e671beba769eb941d250f9c70ad64a05340849635236a64d6e07974bc89d3498a8d1103936774b8fb869ac7e18288071824d866954c1c107541a247103a83e3982250e5583e533083291bec519b40337377116ab77bf4a1ad1a752ca118128d6d4b971af097a2dc38fb19c589a2d2a864dd391eaa925ba1de105a50db517e4005bcfd9d0ad02838eae122dc0239295d65ac26d3db3da8d45c0a1788db9efb953719d5baeb682ba36c513cfeadd7d998f8b8167f35550bf8f60e307feb0b14238c61916c5ce1aa6d9ea205728991b4425554e1f9e6bf5617f27f1c3bb756223a02ab1247fa1b1e04918e761698c1d71638551e49099c69cc7a985b18cc30d75a4465b08b492748b1ac17c2297eebd287fb1b2cb26687780eb8216cd987cc00660771331f5b218cbbf7dfc03c137132296857fb53c5b9120d747069c6f20280054e927631428c9f3af5a3a6d40d4aaa5c9da3b3cc3450f0ea24d173424503cc84ca7119d69f196cf5a129efac544028a45522877cf882fdcf7726ef7967521f1380930607c4ab5c172d7b6e0c22d65a80c2c862cb37069cb6fd69f6d15d68472f69b5ea5331f85a8e17703c63ca2b38c5c25fba37405f7b3ec93ae966a5d3c5954fe1b89b3dbaf475916ae17d90d8152a79cb3d31f578e98856b1370224a38e0c613fce13975fd88f731b49ba9c1fc2652bca7810683afe1a25be30875947ab5da1ae52c6ceedc9212fc291b029bd4f8bc5100d2bbb067dbe0150980e534dc26594b85c538dcb97306e6a0f0c92848660ff9ba1655f0737f617c1177353c4dae81ca9a9bb813dfe6549168c529e37f1da5e1ea633e53ca99e2af3d1378aa969d876d82aa815c179431831fe7766297ccea38de1630c9d4f5b1e63b443d029c93332c065cb4ee5f90c670d90b2d2334826c59b88f5805808822d282b60d99e47153b6137c89cf752888b9e3189610acfd3d2e9c93ef6b544773a8047292654d8c281541e46ef355bab89482af25aaa60593e2ed619655e9887f375a528469515af9c18e997efc12fce5059fa677c82ab86aca4a611ad8e0e5c7c5519d7f7e6c7302ef6f5daf55802de82d3519838ae9f95c1f9527b8591709541f4cc4487cf934e5fb2d15d1f25eabf58320dc359ce490a766922250ea7192d765a4ea849ef252ee0a56e685bf618dd62b07d43f696255c315798aff64e635a6b3bb34e857485f39c5c016a5e13799b8c62ab2c637e25d2ef0d3c5e140f590c7f2517688b7491909a84410ba1c98cdb943eb1f3de23163f505c069820771cf73138f49b0e1f29366f0f7793dfb33df460a2aad65198e75a89eea299f1b3f9de986c0ea51efcf1792d1a5a4017f6cf00da4602292ecbc46d627bef4be41707bd8dea4870d1ec458531383c865e3f91b62e9e4237f033482efee1eec2db0c241b0160f01ec65850269572b28baf3ff047b1a94e9b354a9445b7138a81631f5524f6a9112656d40166662a44f6c382eaa836289004f5cfcecf97b3f2b6b328c572f58ee1a617dc2beb8418ec040d5017d36a5f13c567086d946496e6413ca6f97d65be3f5f447082e4b25cac19c0a53dbb72c3fb51b2033a9213c9271bfdafe8561ebbbac6ecf6d1b9f697f8431d14273008faa9255a179a6342a173b4fdaed5ed30197fea0462100feb11f88e2dd14eb1c52ec2aa2290937029fc24e4c545b621c86413c1b7fff554821709ecb548d67784052f5dc43a2bee9a6a02fc48eb857dac476289219d605d68a8d41b330aea18bd7fa342481a53bae5fdd451d8227da74af424822dc454a89ccdf009ddf448c4a2b7167e74ea22c364d36ca36a497d33de403d3966cd4afc94d6e0bddaba1ba0ca1b77c1a42c5f287711b40683087347f2a0be0af35cf90b8c007f4215bade2331aa093d298eb4ccd934d3d88677274d526f3796b1bbcc50e6a2e5cac0c32de439ac9ca77660be96c3231464956ad65e0943ed02adb7952ddaa269b0fe9d6f32186997a00470b0337b4e4fa087ada0112d48abecbdff7158984a3f77b9448375b202596665921eb02c3a4697670d648c82c4d426e61b7edde2dfd28961efed9a9853020b8e7200796b8360fe6a93503e77eae96c2875e194ac03124afc49b7a484bd1762892ca18f1e505781f281da838318c8e6aa1fd44da9c2541737bd560690ded1f17824f64df9ed4eb99ca733d42a82af08fd809e8ea672ca7a1823514a7c6e0c257316b72d1b54cb60cd2ad75178b9895fde8e420cca9af261310acbf120c08507b96419aa4f2f917e4d6546c026963af8daa4fb264135f726e179fa5dab739f825ccb669c2a3cf376a76f0a188caa3066113e693b7355aebef11eb3357449415ce592aa42076755c31abc6d88ff063529a46b614606b6a927136f98d2c041b30c00908682184fb0230339ccaa5dd31868f7019a90539758c3ed15e1569e6b78ad340bc4b57452d4dcf90feffd1f1eed56a41fe49a1e35081990fe9a837e43015084ce5aff35ea7aa7c8a25970ed0a2553209e86c2b507cb386ec49a423fa54d9969c74b25dc927a0f7052706f26c0d344eb9cabd01f63d9bee2d3ff80d354ea1ceed5ed2d43f534abdb4bc9665a41ad45e8f967cac23b43cf649b60972afc2918b2a7ee94d3a1954c59f18931d7e60f72a2d1b93b1c1359b7dd30aec03926deb7a5986299d18482f50e0778cd1225bb3b177b18a78dac3c1378450d219131821e8e58a3896f84353ed93742c51659184bd992f890e09da854c3b5d605a2bc78be99806ed6a7e688c89f4fd8b51931592a38c887cb37fb0628f9d20f81c86ff6440ca159e24b634e0147510a6664c3fc0528929db031b391e219a35a3daad1949f9476233fc9b7210fc4d27419b8672b218d0e57d7752cfa4eda0acfe2581527ec9f32347284ade77a51959d70ad4530f1723033f7566246a6b842400643a850002bf01852e341d0acf2930f02f78f8e5befcd3ce4392909f80bc19e83f05f038014f0444103fda9e356b9a2710f7836c523b71b998e28e1f1e5b68c473ea4c4258f9aa2096455f58d3c7db04db78b49cdfa6f8031191ce6d4f8c1944ff2ae121c087559131207aeec22eb0b258a5df397aae220296f47642fc2ebff0724152acafbb4cfc2c4a443b1841570034ba24308737ec72a106624cf5f7afa1bd2556b31f95f04d1f474f8f8a390f2e92b8f3bd5a40200dc6ca05e596a9017269874e9c813fdeb80f40e5a963937b7a63f6b62150cbc73da5606d8978581e25cccc729277855382b71a8292056f8bba464e6094a20bac5d92fee7f61165de7c791316176929fd3b5d4cf9b2e774057a97be4b99eebb9e0ca6aeed7cfd2021b3c3680f203f6318794afa313826629e0fe6dedc4bc249420170f5eed2ddc84fcbb590be25cbd1367d156cc610b62623ec034c7fbe917d6e63e9ffdc9f123c2ff3a27c7409b04ce15602bdf6432fc20f27abc5c9c14ea7bf33baf11b196aacc5dec97e33e1abf6c3c2897abcc68ac2c66a88b69b0cb538ba46ac6820d6faf468902355388f90ba12e83c21dbb6b15a22b5d9a226569fb808c38f1dc9c10691a39ff6ea3eb32584091eed20ffac2d88ab628b008556e44851833c84b1cf5a789e04183e4fa0971556c09861a316923dea520918c6c0946b7f2437eb64cd9c5991a785945a539851beaa324ab37829d10e588af087efdc6c74663975434e672a9301e0b24c82bd9edeeed60488e498f58260f4734512e817c4013146674768130322efc4b0054d0b7f4a46763b72d629e28f2f61b35bb22eb7318536461adb180f00250155c51a0360e8bd3de2f22a4c17d23d3d472f00dc35d6a3779fdc62c626d07f30f8a0e0650c37eeccd23e9532d448b9c590e7705feab2deb0ad42295a7dfdedd7ed27e69312743541da1d5c5c99da32ba4c94081c1e01b95448b2928f9d5d99879a285e502d05d98b633cb4a626bc051b1809e5d1b54ed5260c4a790ce9b257843e5264be459a439fda4a286f0faf0320c07cc6ebf0bb84054d0fa1c4ef968d8a6f0395d5ad4888142c2a3c6259fb0c2c3fe502545965caaaf2c926cc1dde1ffc3927496df44bbd721a2bda89fa49602e8b74b42c83a95fa400df454a882ca720c0320faf5cb2d6a9daf824920704ba8b7f7f6a5ccc4f0becc54a765e989efb0f437745975b947c024647481a232ee60806091c9b2760c2e0246f1b90e316c011857e4d8663da3f983ee63cc7a07c9dae119b889293c6abd643894f41e338a10ddd2389df2d898c20b3c42dd8cbd54a2cced1343b9454b7a30915a295342afc711f9e6198721e04d5237d2d367803722ff31a6c9c6d68f5a2fbc41d2631e36a926c2cc5bead6d40063ab4de06f7612d1115be88662b078deae5dcbcfacc0507aa4021fdc5a7f79e40556f78c7868f2f0d24874042e052b58a2c1432d08fd97a385ca92defca75096949624e401e563e93c0f8679dcf954d8904df3ee383ba29e9ea99cf2e189ac253999b465ccd99d17003caab4706c02d38e70172998a25296fb097a127d990cbd7a64065aa4aabe14d896ab79d36fe6fc38c28ae6cd1c448a1e6c5133a181022d83eea257ff79b8f65703e732054015a341d9056b10f5c150d881917f1f170e07eeeec791e79c9f974ceba072f4ecd89a202ba9ac97b38f96dcea5f49542776d8dced2c0af55955fff752b0d224cdb01ddcc02b0144214fb67ec65e4f2f158edaad13fb545e24c526b3debec4505cbf95294765b223a1f772f91c375e9347cedc9b9e6a31000a5c8cab9dab0945901d458ec78afb17a83bdd52422b8dec963906e9ae15a4f088b7e92e935c263e7cd20c8fa011c5c9bc1b311b281bf6d7479aeae20f97902629510b96b762e19df7888b7c80d0bab1552a194b800ab8b071cf1da0249337f75a7b7a503a1441bfd0703c0d88283319c0e6885f1fe262a53d8e8f5fdb0b58c5f9f2204e0b9c22aef8afd396221dd2e3ac84fb71b1f60899e6c1c54581cc56c56d09c9848cd6e5b7edf197950a73a759b6b315f8522f87156c1d74ea1bb5b4f6059f6392e34817feed4fcdf12c42742fd81897f9fe4508bff016486a6efe2ada0f0cddfb3b3de86ee5a8dd59112039bdcb415b34a905353375cb2256ed7e891254cb63072049819ddb92e5d1bb8cbc37e8f41980c6212be741d7ad0292251084956849ec621d2587213c852a8b2db65da8569bae1da4f753e4fba16fafa0269b145209f5be9205867d1b85c996286ca1e734382e9448ea5d648ecb800a890efaf44aeae4def1f4443536aded1e6beac88d1577953756ad00b0eb257370a2efcba1d1e63a939a8bb8e9213edd6cc5c777d7751fcd76ed521629852dfb77f5460322153175ef88ed0c1d7c9fc045812a6e38f06991b2560419008b89e1261c43f503beb4f0893e5901b01e41e95ed881734231e3114f4b9080f89a3e87d87f010f2f9e021fdc9c14394a3c143351428c0157a94ace8f21cc0d60544a16d40b41ec1430ef4768210e52932437ce7d00d555636b79299b292a14330dd21367abc0c8617df4e936e291e87962d1cff6441c9c8bff85a5a56190f6e6cd9cd9e83f3a65c039bc915322b17061d77703ce5b88f25c527de7b6a83c3cb350fdb6103253351695645dd8390cf0e035795aa5d5975c843fc8acc2cb7442ae5d2c94f537a0e6c2aaeaceafc27e6a5715e907f9c5cef4906bae95d68b86367fdefdef193fcb82da8906f379f8330229c9f2df716e6f7f2604941dbafbecfea0188f9231ed44c5c29bab93c58d67fd259f9d4ae47558569be3827db2bf3cc643085d79d1ce0fa4bc4c17cf38bce77caf5084f4f93869243636f53ef4f729f40e1b48c8455340b3b54d476c8c811f1836dec15dcdb8f82d4adfbc9c9bebbefdc3141e502b2da166a75e484972fa5c212e69af64f9a5722aa23217038e6b25b8bb75573b4c70de37087fee00a2574540af19c60056463c52ba240103e6daf65cf535aa504609097a099b9d6f6b64a2a7649cf7c40d3a1ae7ea8a0ef03812305024f35932775ee1d91d3346972363752ef2ee9cbdd2ae49180641f0c56bdbe36b13804b861289886d29a7747703da24de1180d6c39e53c02f25ee15eacf38d82a112018581a41e719acbeb4407c8e442b6fc09ed2d45b21f78d2c3f849bd47cff55c787108b48c273d2fdea3af3fd458d0f07d1f9631ea02243f9e9d63943e6f191edc234053a06de797d87ce6663df4c155b5f379ddf3b9a16eb1b9fbd1a143a52a97aec758cae016c5f08035dcacf6284070d29393513d5842b9c31a9c7e37ebfd689c16e1b3a53e21537bc4777b5ba9f0efa04abc5e8bb4f75a3b3801580169bf9223652cf9fb0473cdb4476df832773238f480349300a31a8c73ff475d14c8e56939d4422ffc388235527a1e990abc6762701ab2f2edcdf9ca7dcf2808558d49190aade3662ac8f1d4c851f567ab9fa09f075a7f031f8595ea25fede0d3156213fac145ddf0e55bd867426cb486bdcda0952ada5f56146cc80b3723d29adaebec2861bc342f2c92f27391d9781d6b46e8c3ee15eefa1b3f8bdbd0e2060f34a276cb5249e384d4244cabbe85543333cb88f12fad0268f8f8b92bd11465417882e1a3bbfa4a609deebd6084526257b086c4d44c996722cef1492f2454cd06f960e31004e1aa8e4892304ee86ffc742a5390c9b5935f25a652e176962f69a5616810c2322d841e19845d6b0f0769e8e1095bceba2828f7d0c3605579314c1bc4430c712e2567668ed9c0d3edc10c9c04393ef1994e892bdcc8639b21aff733f29ad307d6fc2adfbc1353bef16d8da0dcda9f467d8469bf2c14c448a455faa6c1b11760cbae948faff1a51fe72357d4442a4b3fe6820bdaea90f91573c7739af2bf51ebc9c4f5ccdb394f354a94fcf62301b8edff108b4a4c695911a01191f86590896e97718581ae4d05cf2881f93c75b3018fc7069493f8d4555f8b8307d372a1f17f3d000a9051de20c85682c1335a2103305bf412c92bb44f25a1192a1e331927ea7519c79f000f133cf5c48f873acacad613468a177cd006dc34be1627194c4a880979bbdf1806305fc3162fe868e767ada150ec3c6f4e08941b3c56e62c6f8c7969318f1dc31027b0521f189f689c6185f043774617fc3b14b6a0383f1131ab0b6c1734f8327a335b46ec61fb8ea88481f52ba7402327825316681093b006e1210c35f5d2ea8417e7b62d36156367e4930415adbe6a2d8cac4fad6e52867af6de0ac099e5ba6af80c2341770e3db015f02fa463432eaf4a383988b25164ec9bde9a14fe15f125866fd019f0552a196d11ee24116360bf2f5d2a811d511c40070e72bb39a8fb2ed67392eca828a4f4e59be699a8de5dd5097dfc350d9d5ca0d0f9c2c7a763ac6026303b393a579d6904e3a2c3cd4ed549f7bbae16987fc3a04c0c74b432c8caf06df86c4420d7de25a08b4ee194638065d0f79d8dae92b6af2fea6bf2f8b10559787a3b414fa56c93503a2c0b79170176e1d1e6d4284e0f91086cf75970303c133913ae37b31ed491dd0e6329f27a529bcb775152414a26efa170a269fc2f44e9b1a3c1146b8f1c881c6e301583d404423cba3360c6d0dee56eef84a6c1e189d2b76d7f45f48ac3939fdae1a60e5fbec52ad1240c85947ac04df934ed541a5702376122f628df84c4c3462fe6aaf93e3bfb7dacaa9843e0dbecfd0c51045d9a0c13f37f92af44cc2a1d964aaea28efe313b8c4f0bcaf16f16762b7a8d0dc495b583385821bb9bc86594801acf63f56ecbdac5e0b0b6a4018a941782cdc54f3db435c1f2a4a6cbd6ba294356f9341921b9be5b67de44654f0f07cde28a654db30904426e03a166ca724e19ced33acf2cf579c7467b4f8e51c62a8aaf12fc87741835c797a7eba9f212287a789bb41d7c4c8c18b70e7aaf57f4f69ced9e314cabb08cdbce04b054dd417bd963645e031d15a0d570f00ce8add1153901262cc63d3641ef72a9457967c16e90d7fe6a8a9635c02011d91f3fe5ffa85cc7ef925a4e3e2c4b140088420eeff595587572c4693c459c5d7fe3bb7fc2abb0b837c742d8008588f4dd5ee95abf4e4235eace2d3551b9a5d0d83f1f81b778d6072cca3bb1d31ddd321fa7f5b7659422a06147a6999928b53f9b1647f0d2cdddfaa616fd22dadb9aed39e39d0fe6afbafc91e8aea9d90da754bafe876b8d09aed1d34b236a5644bab6e523c13e1fb8f1035604d4688f7cfa72901186157ce1fac2cde7a0bd56621190ca61e4f8f3119128e0f44275bc9d759dc63c7c3b033120934d36179cd2c955f2c0f14967be990d968814cef6b4998701954702f6967593abf27d5f7add54615331753b6b73707053348287138b28d6067d13cd3e7402c258fa19bdfbd0ac5d010981d8c2c4d02fc591bd9b3a2c004ff175ed212906f6cdcdca14d631987551cdb0cc3cde932a4ccfff0245b6f9e1b6aa0087a0a8f87761b0a7b1dc189f45ff11c46bab1c6079fb81a9cddeb19d525531d00954e30b2592ce41c74f2bb268fed3064363da5d947a3ff761cc8e40519feff7dbdf4ea6775ff44bb4285e8953406cba9abfb17b6a58a45a4600afead1abb2faa66bb287ae536c1c1889e932e17dba8b39ff3d5d853dc4b16ec9bd16b8dd6e6a802f037c8ce966e97f7579f9c038a1e662b79ddf5d8a6118de4b858a07162699932986ae8d99d682c411e57dd616153a13d6a28d993404ee2b8daff4d143a101eba5515bd12edc88c4fb1a4e319e4e56849a7b5cb90bf280d123d48b53ff2bff4110d2fe9cafb3e919f291d856afb8111b044fd1d55a6fc9bfa5835dbcff3701b98e2745b9e104a1da7f3651b3794bc839eff962d5b7179e5c3652de0b0646b2aff13711b1ba659420c39ec6b5d54fb8f319d4c28a7f29dc9dc5cb1d075bde5059ddfd206460aae70648f9be114bfe91db115935d3b299747e28333964a2e393240a12eb697e41d91f87fe0f39b8467760720b512cd32862b26368ad616587e318a67357b716624271cd5128dc168ed99aa9e6f2f81273eb3e80ec9cefb3a3b028ef90de3e7737e5b7a4fe89416ad8493ea72d3b5f5ba3a182c11ac8dc17e88fe2ae34cb64637e996b3aad66f5912970e20136624b0456c533b491e15580a05d165ad242e2b9ffe7bdfc3d1018af45db64d8bc578284b035688bd9bedda808c67fb6060a7d7e80ec29c895e75da1eee043d97e6f14f60b6f64ab090273226bbd40c606e507e4fed9522c826b78f08218ebee0c680e13923c7ed1a87e0e19a229c7ccff9a05034b5f4efd363d53b9516ad34ae506381fa0620fdf895137c457713f422d5e3eb609eb1bae04ddabf3792ae4bda4d8981994156e35e03f7a32b73f27fd92e58fb499bb5a87598eaf8dfc9b3769df62608599b0faf07ba7ebfafa2308e738213c27d5633c1b0023b56a7598236b2c2784a04f7c23dc6e22623488923cd907d454c1903472138842cc64af181a0ecb118aba6e907da4ae2dca78e3b30787781fb6f16e84b89de42eb802a01a21fbba8d9eaa239074ad8f1420f6bbf6ce437f4b874bea84cb42c386c4980026c471769abc7ba26b10a622c3083b7cea18f5689bfffb6c8ece418160c1cecdf1d7b6aed8ef29d2d3cd5fc83921da4be20557a4aead77a2031727a955207d5e3f239b341db951a54aacf20798629638d18031218d492bb20e1a3594b34eb9aefd46ac69624909086b90d85db56c13ed67f89299dffd9ab4af3f0919c7efb368232cce4046b680cc50e683a8da7366e08f9c352f14985117ec3996530093982cc2e883314e4c4de59a02d9aa2b66ca7f635e5adeb74014d8e1b96d82f2668317af601376d56682f78fe7200f45a2c9f40b6c19d8815c14d0fd53f286e2d354953df50a364f7de563a256b8d031b210068ac1b305c3ff041c2873f520e6771b0d6571c44a68a037d290e90cbdb197a25cbe243addc68a66fa628d72d2bd807f71223410955bbf5c344cdb43492de7f3714f26ebcff26673098fb125b2326f870a50b44449edbf0e69e0fd19e16520bb51048d2aef6171b2e21e61b462f9fb22b3f63d376eb9687d6d3221c17e67e8b491adc8a2a0306d5c4a7c3b136483f6df900b9e2065e89f17d33e8a29923f5291a51868b88b8478765bd5bcab474a7ee92c0af34b76e4b7bb680936914ebeaae64d705d49c648b50d0b64f90f656968ca7f06954707db8fb073393a7c68d6e6a96771d969246ba4893a924389ffb85f71b5492b8c13943c3e1efbbc79b9341bbaeb01fc0dde58beaf271140e61cf47d7e50a81621330dfcc2c6505dc614cfdac32fa702694ae02780a8158f60aaddd1152a78e2154dab37fe93eab02256b3eadd099aefc66b1225b1a829617ef086c95a082c096ab31265ff1939d2a1b553e206fb77bfe0f36815fb069f5505df09efb66652107056a5174e83340f146a95adcef67d193629b92a85ce41349b62829181366d5955dfa049a40b91353ed857d49cca9a44a99c0d4fecdc144952588aa7a4260b7053417387bd6e6d5620b4b7c68d6f08334f18876169ead4e17aabfc0585c81c92ae0ff23cd056b72cefcd21b13928b0ea9d46b7eea6a324d2c56729a022c136ad8e89a1735c6733613fe69fa62f677028c86142f04c3f1ba15eed49b2eef483cd65d90685490c152e2612969d0126a7f036c676377188a9aa10ea54c955e16891728208fd3d0e5b0fc7dd52b4baa255fa6fd25a6812a1e6f4c710235f5660552bdb63e91ebaf631f86657dc0072c3817def1b1c552dda0cca79a612548f2c60a953f360e0dcab84f90d31950a664c6cea0ccd3a15ef58fe5f48ada893f67c5c3a0ccbb818a2191c4878684e89d924507c64e250f6b3256401fe718cdc5306714ab773648f9b5c46307d7b6ca363471b488975ddf7bf53c567d78020cac83e95232b40170a4ac3a925986acdadef91af59d6a51ac5d0e6069c44c10c1a7d2cd39c602dd8a82dce84ef82d2265e2d5d507d73de2e700f6db2c1ec74964a0d5643282a99ee8f4cfae0a0febdd2346f749338763e387c7a9c5e2f3a67a34a9f075bd1640858234d1a4f001f590a90cf32047d51bf0ecbc5acb907532ddf432e367e61447a6702644cfbf808586cd270c2454b81053f30043b9c465273f71048d901b462559308bda5670e7b7546072d09988da4fda82c71c1fa7aacfaec7c51a65b47bade117c31ecd2798888c369d847affdb10f089017c74bc15091ab3791cb318198cf401ec995fd94ccdbc65858e044c277a78cefd18ce4342901574efa08af136301f85c10e34b62ccf07f61c4e8b26e3ce3dcaec74e9e0cf76a9f37c22ce380d46ea6afeb1eb6fe9655c4e46ef95ec6cd82bb9b7243d59153b22098e20e2c794a39b15de5102cebe539ea29163555ceb27296b9148964c88b96df1a41e3f89153748e8f01186596dcf4c11518712fc4aa0b42bd7140aa7d11fe199384ea9b1e3bce03b897ccc4bcc5fc7227340f0d395d2bc3a3958416d98e24f072b0eaaa01668c2104b674e3cc7e401159543bac42ca796eecf702c3e5a99fdd332a514cd0cc8d0203e1802dfb56c6375f0feba14d15e14766219530f5f9f1302a513ced124538fbaff0f8cd15aa4cbcc48a1281aaf9a93167282c19878b136c7369f670f8eee00bd91234d0e5903613dea67835a84d83c066b84bde219c5b67ef80d315cccdacb8ab5b10164f4245963294beaa4afbc1f7481d27fdbcab9c55aeafaf792e40383aad6a6d1d9adf74df6ec34829ce3b4fe719e6f0b900b568c1d37e17487f4638aa82dbdbfd99ee53b226a5ca64bf3a72b55f141397531553053807b63f14f5c02f331acc8cebcb3aae70e3a6e318d08123840c42f20ccaa348c508dbc828865ae70b012e62893de103b6d71a8975a07ade819303bb8282891a57935ba7b8ef8d5998ba89006cb2b808c3e740b102a3f99ae270b5ab5d13c0b3c99ccb4303e4cf48491a5629172410c36ee3652183ab8167f7745bf78040423d61a5e523c6715f23049c53c412699e1b3586b9cf785282d620c67e67abcf074f3f730057dfe412537df5406868cb44f5709849ad236fd47ac2158355233d7b477214bbed003d2e1ba9fdc8d17fdd4400c0cb5f22fb763f3240b54ca9a2f87a5ca3932e8e8e44606abe5364165f3ff987939736678913f2f8af47e6f31162dbd9044151947044a7f5470093fea5a04259db7968a5c2e667412747d9fc5f78161ca870c130d3696a4ab7be5348277bc98340b91d9fe1a84043b5b4acf20fd8f682959cf6007fb41d34ede3e268f999aab106998ebb51fe5bf61e984999cab7fcad9e9229effb34021267fcf83489eca75222179e82f9840f3facb4f1e7a95e5e923d4e1bba69cab919c148668891ab354f333524d7d259f76a2d7d08b2d1813fc64e724e74431f44788a8242b7c5e58d67339379dd0c5bc5c1b104bb54a76a64edaa5d33d43dfc5e68cf8b54c64dd3171583b42d2db612f5de32bbe0d912cb5fe763a0f70615c0892a0440a6236666263f412b473c8526130b13ed762e05ebdfd334b14e9a8bcc9e688519ec3cee23e9052d8dbd22eda205043ea2e1cf5dcda3de0c8081e202f4a918b74180dcab91733731a26f0e07430c14e51fe98805d79b8f31ea672a8d38ee7506156a24c184df6cb5ff4963c1e3ca1eb4703cc9ad995d7a60857941fbe5a75194bde9641bb7ede873502ddfeb55c21f75bd4e1eae2d970f03fb0bd86b787eabd547b0c3d088f1dc61e99371646c71ccef0135bd3d47245993e437bb50cd3b3c5fd1226eaddfe338e8b2c2a3f7e62343128815954683eefdef7d46feae0d1e04be28c72089aeb9bf1c774b10c66ee8d13cc8daa96c0d8bd10700e04bd71a03ba827db9964c4b095f0c9dce7366e59e2574e281cb9d2fa640ef7714d4e78bf2387e9d85764303414525ba38525fa5a18d604792fdd72b567a43de18cd9a7bdcce4c641d174a82445256e5343b64d7634231644f491c6c8705b13a96fa232cb9c647b30efc675a496abed20338e27f5d8fa9fd2ac251c7861c5a8edaa71da9154138338b63a45c04187c473b03d128b0e27d637fe1d9b46910393be99985043c933ec4e0ac9bf69374394506b21719468e21f90f40f952704ac01307f5b66f94c030a8838fc22dff22d93c84fa582cad1c6b43f59f178267683e10d7d1d32676a1d2feb5aa2ee32ffa74138a38bf90e2912b7e3bf16493c341141ba0acde8e0bcef447e30efd9cedbec1ce7c0722487fd3cf95d5f1a989fa3bf9ce5c1c130f22367f783f1d443c4ccef7f3e87e87b422b9b490c5834f89ee91eea7110e5ba164821fa9380911ac05238d47dcf70ba859ae3de007950b59a118b3fe961039c30ca6dc0c1093860e5e9b5bbf80be3012071129f5432fc9b9703d7047aed5b4a606c10b2998a3a0ec64a98031c0f8c16c690355778768fda5c7a83dd0e375f832c2ad0c100ef7d418199e44136ee8d8aafb11cdd3b6eb1d8aee009891c365c19a0e4b4b940702d8ae14fe15575850b5cb52ca46d3341dfa09d6dee48d84262b2f6eb4d889fb006b677eaab0e756c5eba43fa7b1b6fc379af8d7408d0fd4b67bcef3f255460aedf77823abf33a5d76cd7a543617968de717c8da8ccdeeb780f5ef406f72f73626d7a825ed6491826dae80c2c4fc5de8c668ffaacf33364b8e2fce426a46b053d63c72ddcb2719eb0b7a616a5e8232f00c8bec022173c0b9d079190427bdf39a0937f8620d57a09bb3a145ef21a31cc50ee3904667ea309ae1a53fbb97188ee0a3558479d42900286f04f0175202f4fd67150f24e5fba4047d377cb9d0701ba7b82f878f831c83a1425dc6a8280fa2f44ae98e313b9ea33be47f0bc9ae857a771c1013cdb0b3b25a660de32f205fca12ca6af1fd45555aa08d86be255761b985186a205eea9a00adc7b2b8e15406b09aea7c56437af90716de7c6c0cb52a0f12f8b7c9051b0bd8c9cdf4519d81919ac40028d161f65ae1c15b453ca124d15eca45053b3347ede7705958ae89afcd1a1cdf59f8ff968494e718ff06c2729af74820f7dcaa122b15847f093f1546a3213213793aa45eb65f61a8c4627f8ddad33eaaed0d6778f86921156bef86558d0628e8375b9d6b0471d7f5232a9598aef90bdc7403088b68eebee8e8c759df23a2c8fb085350921ca6e63401e2af6cc4248afb96a83d54da0c5cc798c55561dae52af246ffd774ace5b4608774a282cbdbf26eb901091730f27f7dd4ba60a6affb84bb2aa31e8a1ccc6ba3f0af8f9b1dcdc16986a4f16d4403bfdd76e4817ec3a815c146b0217f8fa1cea0a35dfaa4c5ec6dcb04c2185d539733bf2bdf7745d93fc110a187c199d9a3647eeb4b3af8cb99ef1b21d46dea830ad4c399953a25e940b7515febb8b7f8bb6869c7d6a1bac37c0c8d1ed55406ab08fe12153f79fa1983a132775c7514e779edc3bc8607e6612f42df9ad27cc2da5a32b2ef1668207c09a251296b445fad5d24e4871a2da4d6f33f26899bdabea1a7015ac02953c75006215e45c281097b54cd46634b18dcfe7cc7760823509fee0c52a8d8bc0124eb9588514d9888084a978c5bbedf53e3e76b4287e241bad64d983f7625fa90b3a43e76d4d4e7f6d98db404c38271520360f0d43bc96bd69113465054f0af6cd632facf119860f97c1877cec6b1fc141f0af094e2fd60c782cb2dc128a6402199829f1e72a86b20fbd740edcbb22d630f17d4ca36337a9b4147abaa73c15d8cef47093b126c5eb0d5c4c9496aec26da27a818576c1f2dc1456ad078c5f299675692b9812245e4901e54944a02a479c34da31e1e17610b84e991e8009dbcaa27526260839a60da4624c9bd71cc328a658c001b1a5b07314c929be9c0134d7f378ae1a11888467a24c962ad452c8b574b0558c1cdb63f9fdc0849e69416ca828b24b12e6239cb0cc02fba2d6d7d4cd7d6fa7d3b6b3295d89fc4bbfcfc7a03daa2ed4e9d01069162a9a3c252d1ce019487cd4fa5da6150967359ed72f732ea9a82e768f5bd97bdae88864f0515e85ff28b83e7b477d644b3233a29461560f46aa15b7ba3ff366fd5f01d67222cb0a18eefe686605d98ab1d60f1d927bb21a9c80777d937cff0a2aac3cd2b6aba9bc11dfb30423540e41a9e2a263f3eb66959df403e3e22a89c43e7bde56935f4071a548b7896a56e6f07597c4f628c0b329904144c080b927e774d5095ddb28a93e68e32074e944f137786849d3d1f7d075cd3e967606157a178d1c4fbf5941bc50eedf039aedb7fdb47acb32bbecf7f669cb4b1a7cd894e3414df23198356dec101f12c92861ae5d09ccec67eb934939bf81dbd56707bde1e6dc86c36095fff70df92242546e10e1d97abaec3a23b74833ebcb1182578b583407aed08385950fd88a0418109b9067190b21dcfb275bb5d3d4d157122b103e24588743d844f3cfcc6b48ea841588bbb6764222c2585df23e778ea65dd8361e6a3c55a1c164f097ed52ebca76a744698cd0f4023f122b9ba40baf2ecc7abd2a56abf70078c9926d23bed406b3193e5e178c6b05d79cb02e10aae260365b9b75510733931112acdc7651ebe8a56c13763e65234e7867cd0011b31271a043898109dd58e37801ee717830b413989157208ac167493a394dd514bed2cc8acb06891fd556e3b667f8328746bb1bf01664e5805f317983d6c01bcc4bc942a3465f516ed2d7d358184dc81060830241ee948e547b17a857ee618b152a87e990b76e2b26308613b8c7cd472d3bde1c0dec854bf1fad179cc0484f46899e1418f535807891e650441bf7742408de296ae0b465538a4859b4dcf40a20b57598caafbe7fb56eaf0201e9fbedafb98b103e0be13f4c84faae5aa43e2735331552bf74a3443cbc663755ffadef1a216e513d93f145b5b6033db5af4dde3a618b43c41101d8644b1a1c3506fb2af4d52718a08474bacce05fed644290f54201e954d07b92e31a8932bffcd226553bb95fecc9927fbe0d4bd0f5b964451c1a8b4d43f1bac6f384c0b684978ac24b96f45be47c18982b162c187c8bf88ddb0552a41a04cf0682424a4edbdf7de7b4b29539201de0ea50e2c0f1ea6bc00ece761ca0361531ea67c8c85b1281ea6fc0f76f330e51ba479d96c7e9c926255be45f6f362716182e21b95f75ec5c5aa7c006892aa6f8bcd8d5b3e5a2dce68fa9ce9ccaab56cd94fd2b24fd202e0496c56e1708959edcfd3d5b7f80669007063ed1500ec6cb11187ed83f5286afc9ce97814557ece743c8aca491be3aa13f030cbb2eeeeee19b3cfdea1a837dfd0b0a631a1e11bf929299ff2f26d6efc1f6d1c6a2d265bfc61c0c0dd9f29d528d83e68351e56d3b19a4f4cb6b61cd7b69c986d8c62896939f773a693631b9f8a904cdb4b07f7b603c36640b2c533a2eda5fd944ada8f26e4acfebaff349e486233201e6647b08bc8b1d89c252d31b51ed8ffd3846ecaca73dffd3662d04624b276e24ec779643d994ec4998b26c996100fe3fd2910cfcf8e50cf916cc164cb7f8a9cc8290c8909adfe246182e21b9227798fe4e42bea4f5f3fe5adeca7d6df9c85fa5adf3b5919a3762006a67f3a3141f18df66d8a304cd625c643d37b118c31de1b14c7d7b4fb1eca1858de3989c0fd19ea4f1575370feb97ecf4b03e683f0feb673fb295f296fa5ef20dd298d44bf233e40c27b12a5f627306a4e259952b84eda4e8a17521d96abd3ffd116558bcf6325ee6fd678cba642bc6aac5a7f2040ae57f8e45b4c703e50974c37df75eaa6f2622064e7da77e864cd916d7460cdcdfa26329dbe236928746e28bbf0cdb2e193b00db3f4d245bbc48e52c1811a9b3fd52ca9f21637cefa58d9ffbb39f8c2843721689e693fd6440349e0c48b606f0fe59916cb584d83421d9e23346f6c3ca7e60643f73c85959be9c42ce920fdb5e20b8bd60ceca4ab108ee2f454d481ae193f727824f4c6ede4a503248ff006ccbc6d2a430a268148be09cfd60bfd19de5ae1775f693a9babbbbb528370fe59d48453c7423fc59a17691874be07e437fff06240047e20e9ba3febbb96bca43ae56bb79c87d7f3a82fbdf80fd7300647c20c2f8679f53a98f9f511e67169cf25551b7add6981595edc4e6fafdc9864fa2a8259fe3d0c9a3ac47514d4e1f97aa2878fbd5e682b767b1bd6ae54f6cea5736ab30f72c6c0e31f72a9b633077b38d1833b582623d0aed54736c1fc0db0d89fa6a8487f51d8a7a4f271a5c076212bee17efe66b9139b63502bc7c05b8ec15b04caa1cbe9b70d6f1fde52788bce5a7d46c1dbcd270f7ec9f6517c7177798b7792bc48493d25b6318b08d4f3e33eb57bac0afb255b9cc73bd9c624d6a3a8d97bfca7c76138648bbb50d67b3cf4ef24d3bb23a1ba8ee7bdec21948df86404dbef4db37689a9831dc886766223ee2dfbceb2041c71016fc5c73131ae6d97ad2a972893f2feb70331f0cdca7f9fff9dc5729fed6fe5399bb7bbf22b17878a4db1ad23bef4bbb0d1b6f43e2bd48d090d679c1c7cc3bdf79bed1cbc7dc75dafbe47c2e2a30ceaf4abf76f1fba47b65cbcf7e4ca926343e0a79c75f2fedbc927a0c7bf2bd4bc0d6194f722787b533462badbca7aa83a21c2db9b94146d4f82b247f0f63ed8e82d2f6cf416161bbdc5858dde726df4ed33f799f6269b678e4391e808e7686f68987e67f30d0d6f76db70d62f6d23019964c1d3f104ed97fdeecad1713ba75dce9a33c735e9fd9650b32a87b3321768c10a6bc0feaa4fa8e6ced9de50654e1168778c5916b32c66598c59c7cee697840d0d78e8df41bae8080c29ecb9f3d04670d21442c8c1feaacfc12e637777374aca23820e2a6afe70cd59836480cf8012479499aff55123c956fd2e7d7f27798e6c994e7d93c0109db0038e3f8295cdbde959a271ee1ee7711e3060e7d1d132ba47c3f8b727658feb2ed1384b1e38778f93d57cfa3b0caa44518112a85fba4dd477cd191da577629b313d687ba6c123e64cbd4ea4c034537a9ff1ee4db62310a58fdd734078374fe71142959f9d47f2c81e1ebae4a1f5a89207f6239f6930019b12310f787b6d93570279bed9c0f37739693667b794524ad932e2d6e92352d251ab28fa1623b3e088892d24648bc79027db3cb49f3b1b8fb3c023c4d07f78e8a7a74fafc6e3e18e4f9d5ff3c359ddc3fb0891d53e6268a364f9f789a252f9c9f68fb7f8b78f28e3bd7f0b21ca7cefdf41e81e51c6f4fe14a4015375fbee4da5cfdb74a4a07d44d0f68f6d202e84b74f066efee519edc4ee61972748c3518d87b3260fdd34970ea47028714895aa5639a3c62331631185e1a1c754f93162e0bf00a63f4b5eaa821759729683fdabcc9ee3bc2ecbba2eebbaacebb2ace35ecac9d98de3388ee3b6ffc00d6f993ed298d447deb27dbfd7443c8ee3b86f24cef4dcb5e1af26f2839a7d6e239c243bf0e6dafd77bd9b3f37120f03e48ce94aa1a0193293445bc4deddc95d1bfeb2916388254530fb6e07fc85630bd54804e736923485da9fe5686bf07a26b20ca1e676f57bfe6abb76b80e186a128e374feced9282bbbcf5399bbff010041d277e46fe14c285f09fd8db41a0a3b6176d0dc7f2080668bfddd08f71b2e06c54a84d418083e31b20bf34c23e450f18768fd1b9248654d42d7f6cf9b1a5efaaffb1123870c3a1629ff508f64fa13cb1655996dd4c55957e4ae3ec0daaea202ae97657f2ce4f06f5c3aa9260c053006107fe80a0037bbf90a399064bb0c2710a240499264aa3cded1dbbe79c936a33fbf9d37f7eaf3c6aeeb43b46efe9ef6dc3b9a16eac6cb77ea999770b00de664f37d47e9f3223c24191148e530022640a4de831450eda6092724ef971257dfaa665d1ed9445ccf79772befc0615c04997b163dc5e5a7104da88479d1544e80217bc2c033f25d4f89ed4a2bb7bcd0fd8fda3cb28dd6526e58c9dd988a50d37434e0c3a38bf41053858a308f931914a01089b26a55946b38cc62ccba4f46c9b0dd3ee4794720532a74e3fd2e994729b9645ec33cbec8a6694caf74d93d3a98dac97c6e62cbf7eaff4ee66b07d96ad7d8333e20e0f101344440843c6f6fe0d6819b2ebec38d90ac3f0db680000cb272a12b1230cfdb632865a6ca1f44d9872dbcfed8fe0ee04b6bbc4d34d7292bb749372f64d00111efa11484c6086d625dcb66ddbb66d3365c19b420e5e918a22ece0f3fc558d0ecfab8409c76ff50930ad4c4c9c5d25641e1aa683e830e03ca3146da062879091d7efb5ad21f380071c1f40707caf035784e0480dc7990927b8bb7777bbb7bb0ba094717ab8201a71280bd8a988617f1af10d68c06e0620d85f0c3d1862073338211afdc0fe85580513b09085f8052143ea1085724e806fc8149637e33461c800c430801650aa95728d297c10b150054c15e11b6aee152b4208ddd04205559c6eb012842845ce09f00d4f61bfd90341664c297f200a271bb08660aff18ad0d8ba205d76a51c02228d0c34b21a60a739c0fe83804c67b3a246f69853ce39a794734a29e7ec2a4a19cb256047800908bb0cf61b71646b4110327ddd7b38db6bde4de0cdf460ff7cb0c14d89ed665e261acbcff235c92a6dab1addd7f4c7f892fd0cd9df6f7665e33d58dade14c11a9d136ffabe79e296cec486b9e76e8dc9c486b7bf797b1b32580969b29d07bcdd4b8372508023b880e80296b29739f185be777bf6fda6871e719e5fd58c20e5f64d7bdaa973f60ce280850e8ac31382e28084398527fc088a4310da06c5c106599665120c2a1c838ce0c1b7387490912238c59562c3c4a78117595a867f9c477cf0f68ebdd932b26f198e0120714a36c9a50cc78f2d83caf8f744cd36195fac8c30b1c55fa2ac944810fbcd5a84d93e4698ecdf37fe546e7e9778ac7d2b11f380079cbdd7e48bb5a74b3091e1ed6f6c580903e0ed767cc1deec58c331bd2e1e4ac9e2a1fc515970d327deb64e38e690e2b871387e8c32c286d1629078841d075112ceca3129c70534e0ac36a2593f74e8dfe1e6d2325e228cff908b0b0cf6cf00b82e4968407e769192522aa94bcb88d8c5656a9f5d344d4aeda594d225e7c342cd71f999cb99bdf73a6e73f79fe12e8b98b108e93de17d3ee88d52ad888c92c08b2cda0056fe39001ffcb839cbddaeb699758ef9b9d77133cbb6ac676633b7520670623800ef0f4a0fe6940b4a985a20941e9401c8910a24f0b88ffb0001670c437050811a84780e00be8308c0c001c01a9e049cdd9bec4190dd10ace0f94d901f59680ec7d97cd240e248059d1a78e8ee3cd8ddbd083f7ae07d3ca62f0875fef6ef833a3f93d9c778933d554076371cdaedd371bff9a8d91bf105a16a4478b493dd83edbdd7d95577dddedc38adeb7aebb6ed353b57202062bef60888d87bed418023042b58bb375ef6bd8d0e7bef69a08d86a319a2c0c15002a219a2c0c115b0d77ddd77d8bb5bf7db3bcba3b72ce5076c2af0224bae98be97810d6e1e08665f69f33c10f440f03750a3f8138217849ae777db4bf09be866e47b76dbbcf48ec4cecce78320d4ede5d398db0682366b0faeb4ccf36dcb5fe9c1f7ec6a7629035735b4e75e7b6e036dd31278b311f8db3cabd9ec58e39e856656c889a57b2c40f61108b58fa8df8e952a0740df7fa3dd52fa90e72ad9a2a9e0094df0221067be6b02efe3cc97bd3600950c80fcf83fa8de7b34c766431b10c123580c99210a1c0c99210a1ccc783f7d40bd776e8a1f30d7716011361b81b7f7b6d634aa757fa6655996cdcfb80de4341f7453569e1a719cf16f4d7bd95a6f3932d77ee5daaf38ed5753db34cfaefca5f6f207acfdd4aef6d9773740820e4c7ffe2a5bcd9ffed31bc2f24f5ebe17c127efbdfccc363e82bf2f416104c7e048051441d8d33e695d4e1cf5a6f4dfe7d2bbfc0f246246a9542a95feb3d161ee35e76ed67ebb3e5412ac89b8896ee609ee6587a70fce7a60ef391dd87b13143a38fb954de9e9672fbf71303764247fdafaf5d78134d3034b600dd8bd57fa3ccfabe1fdc99bc01af2bfec7bf9add5684f4da69bb9a72f4fbee2994f1ef8c006fc127460842e90e10954f0ccc4d872fa0fac616f4e4eef815f83344efee4e5cb3fd9ec7fe2f3bbcce5f95f9eefcd9053be7733c7d91bfa22a8913df81eca9a80f68624c697eee433b088f9a6ff4a7f62b35dd994befbd277ef6de034f969bdbf293da8bd77337defb9bb32b9347070ea5735505f7ad497bef4967b94f5b8efacf7a0cddc7b26071b1067587c67513e5c3102315ff5d472f7c67b5abf8245649f298b929fe12950bd133102916766c8125b8383539b0d6fbc8fb8da1bcf6457365ee9c6008bc86e3fbd375e2300270a4d20000707cf6b02138013851a6dae6acc1cd80438723f6d1398c3c11ef70e763732bc841206c0dfdfc8b0121a8ef1c5f499006f4aac60eea3d704defe8640856fa83077b79be967201133708c2e34b4a70131e84c9c31fdaa1f09d9e24b1cd1bdf70d883346dc1c44e0cc7c0f16dd95113a48be7befbf273a30b3a2d7081da57fc208f0e6689c991c85704ef7a71c92477d048d20b9ab23504ff2a84b49ee0a023d83fa9e415d9c19cfe2cc747675c4e9bb3f65f7e3912dbdaa7157f33b9693831d28276715ff7b986cade25d31a0fbd343c03b9dbefbe82f8ffc3d9b846cf1ef2cace68884933a7964e995de136a976e942de0fdc16e2a2a3a4232c54c4935478210a83c10d8644bf6df8ecd70ccecfcc13e5f1e1d0dc9a3a4529229c7e47216b7e365d231ed48134f94691c869a71f007d2709a17869a3dfd0ea4a1f1aee26f1f31a559428bf48787eea1e663843cb23d2618bda61ea925f5c04a422522d95a41a07baffb28547484148b329de37b13a0a0fbefae20e0fdf75f8eeebfbbf580467477e3912d9e7d6252514b3ba59d124fa907f6038484144b2ae5945ca5d70ff6ff010285888a8ebe2fd40cba4017f8ea2cce0cb803f2803db215671a3b4f9471ec8fa365a472b03f09a20cfdaef1698c31c618638c31c618638c31c618638c31c618bb2d29c65677b524fa1167c65fc6646bc66d47b67c3df1250a55debc09edc856b693555a52b8235bddd6b93a57278fe411110ffd9172c39450239e5454f992407227de4cdd2079b053a11f79d4b99c956b0cb0e7ce8577c82322b2883c9a46f368167534fd231665a46c75ef4fdd105ba61ed962f28c05d8b313c4cf940e3277923c9247d94e77b9a222f99a296b5a92a908bb9664eac9aa1a4d3dd8a396b419d992b6587c71ae08fb3fee5b4aca9d0b2997925cde3dcecaed9fe4acdc3df8c8ed1f75f3184ff0c9c02f3dcc85e89ff80deb9f18fb63c33cf49fbefde31371606f865442c31a8e33f7bf8c3ffb22317f869c57344cfc2568e283a0b17cf769d84fceb08d0f4b4f0835374f448932dafba7449920b59e62c79f80b71a161f892b5a064d84c956f596542f81c4472c849a6bdc5e8235f4f3b6db37d8a0e94b36c70fb199d2c3bcf74ad5a704932d5925ac24611ee6e834c0664a5fe58755555280a66938999452ce29bff9691d683d2db69772129bfbf6d3c6ec379bf5046b58a870cc2688e1e6e9c8235bdee32dde3db961eed362befb5422e860ff140a186a6d1d38f76c491f6f7109a4858f07869add47c2824898fb348f0ff66f1e1390d736d9926d9b8dec9b7ab7d19bb74abfa348d8487d2c884945e5bab87411028c26a2833d4a29a57db9084e0e85a3dbd3ffed7a93d2f994d2ef2b562fede9f428df4748f415283a2857701cc762c5fe7b4d9f5a1f2adce71223e911a547941e517a44e9d151cb20e2216d22d3bbb415a3f427aaa7467c0c1989e0d2e5be458b3bdf88162d6eb6f1e1d2b778f0b2b8363ecce2730bee4f9edad34e55dd1b12b3f8e7fe66fb8959dc1b136ae3cb363eecfd8994f986bca2af6819256e7b8a29c76d44f05c9952f34d9eda0ea4f04df726efcd4f65bd3fb1a56badcafb50f9520356fe7f82341ea5f453d9f927b6f42ad69ecc67c0caffcf703aef0c2f591ff6575ad8fb794bf7d4cb3ecfe4553526dffd0c3fb13e54baee55ec07d23079bbf22a56c713a5161f4194a7dfb700ff7b24ae8844f00cef426d0c7e63f067f8fc34939df46bea4d648ba7275f427994d5b3f87833e54b4bc19ff355b1a3eda7b5a193bb2b04782f7f03010ef6b20d2c3fdbc0db6fcf65ee51ef79928915ec6d3fbb9f1ce5fcaeba8b001cecddd30eea267ffed7cd7bdaa9734e93edbb7bdaa9db2dc2e4bb7ba3fa6923b5a9fefb1416e04f15cac99f7edebc62c1e274f2a5932f9d94a82dcdd2d3eda4f4a7d2d35309a4b445e9b6f8538ba7b60535399d7e9e7e7e099db4e4eb425dd9f4cbab32f9d45dd5005f3e6862f2a90dfc9489c94ff053efc50998a47087b9ecce395fcad2bc99c5739fb564278f7a16369fbcb7d9809ffad4cd2673bb32a7b0742c6d3e7992f7df88507d4e6195c983f9e4da4861939bfaaf628ab2d906fefe03694e36529889c620f89f8d6187009f956fe4e0fe7befb331aca8e0e7184378e825d9751a98001c4cbbfeba0ed3fb58abe1318668a9fcf79bb3bcb5f2df0c5f899d8bb322d7dd3ce75639ae278abb0842139070a40247299ad003dc2a1f59743ca1bd133fa3f2ddddbd7a15fb44bf09621388e1acfe1b1323c6c47b8187e1a123c1fdeadbc6b0e12f9ce98889e142f8841123012d849ab79557f9959be387d8cccaab7cdf1c57ef652b14abcaaecacbbd12af8f0ff2d0817e26823d838898182a36c6162b88e01047202b5a80bd1853239015467004b222e80547a02042700c10b115f3b363042ae820095b3032a3612252caa7940205b162ca79fb0ae9acecfa13115bcf8a1efa4cff042212f188c8527de7546714ee13ee380718aa97da03ee2d2597b26988c84a7dff8c7880c862f1fd25b185844ce3fe2d7e5186e4fbc12883f2178ebfba290f51a26a45a5aab5458b6f67cd47792f731c1c74e0d56fefe342f9ed294823821c57a7bdd97ef55b8335b65fbdb7d994ff00ae3285b3f9c3bd8a8162730cf77115b795f683f30d4f090d139ffbb6f139db3e0dd351090dd3cffda6b5121ad6b8e7ac16551f4fbe8535798fe9dfb61ab38273cc4cfdf62c6cc495d36cbe3131f7dc0d5783b3f3399bdb26fbfe54e7c64a447b63b2b0510a5565bb87898eedd404283004fb5731602f815790017bef788b6f20b600c5d691853b08c501fbaf013b12b961b18d88e0f6b8af89987b1c1c719c7650a568c20d70c4c16d6f48acddbea26126bd5f0ae53690ec2d37d0059c956360207184fd27108908a1ca06422248cd31457136118ab3c0413432849eadbbbbbbe77ff386917704cf08755251bd276a04fb73fc0ade470fdd3d76dc373bc64ce3be4d62affbb8af9b5ec779a58e2ff1236ed9130c5e7c519b254f20e77121fc33eb3d2e84bff769a1462b34eee99a1296d18465cf709b1daf4e3434bc42e1c63be4adf1c5dfb1f7a366b25565f5c935d50304fb7b8f8982fac2ee8a2fd97fb1e9922dfe1dcbb5933a49deec39b9e278b3bb72add99d3941354f1fec3f7d7ccb72708f2b6f58f6fdb619cbc9c9818127fd2625a51bb5527ec4262f8034729b3149b74d3e9537caa772c636db51db4514d973b372dbbaa776ebba9fe1db7b5ef6f506d26c947e3fc329fd2ccb721358a38dd469b92ded2b3eb37dd430dbb63d92879bd679b7bb9f870d82a5164a293579f03dd0ce2ed43731791c5c32f9b8c1e0924f953c09aaa49afae3ba9b71e0eeb7adc676d37df633d629a1e1afdbb6ecd8d37eb374fbcc760ed2d0fbd9ee3d9b6535b837b18d4bec128d73146af0234c0cc9cd610b06ff71aee0052ff81d5b1504413b138083b3ebf4ae6c26a63f312dcd89bd066b36ac5d22e24b8d1c850cf06e8881869831845fd082c98a9a6370b6012347a1cd7a94bee775ef81000753cffbae121aeeb6d7e867560369b6ce66f43536340ca576c63ca4bfd9ec6926afcac3fe923659810a005610a10baa6d6a9a26df67fab7e9618ee1dfe7ca756107dad63e7b1a3fbbdbf4dbc4c4e15cbac08bced27efb997577b7b775072212bee99737b7959c8ed8e2376fb82662a7e1d87bd36e66232261bf6cf062ec28a594b2c8080fbd2045421ec347d0f1443f8c8f2cd1663f2de267f9ed72232f0e0ffd6fc426100e1cf60331d6ea19200bc3d6ee9733539cdd0cc8439c654ba8d9632d6213c8944194b1bd54de7fee4c1ece727116cbfbab58b0e9337f268fb302f0fe12c959f6fd65111973d6bfbf34e22c00bcbf4c92479cd5f23dbcffd4e1ac17efc3fbcf1dce0adf7fbea20c8bdf664003ecff5551331d1510f6bc18639432c61c1707474d5342622d8299bf5a30502f4d523767f44afbfeda3ec6f813a489a5dbf674fad4fb0e189c5e3a103ed994875d1eb616a9e93b1ada63f2481ebed358de1d2d236279fde561cc375c7a2c79d4473f653fa69b37ee4130df90f8f4f2e61bf3e4b4534dee8d89637dedbbe47217f513c77b53e3cc3726a6dfa8cf3764c3286ed3bda11f5fbbc99ee2781d06272debeb306818f9d2a6deebbe52e9677877408573cadfc4f7e2d7f7e4376d9db67b966dbdb4a7cfec7b5af726f67bcec647d9d3c3b0ad12f044081a19b55ffc137b7a216cebbbf435f04ff6e45b56889a9237bdeac4c617226a282b1f86654d548935995e7b4aa3e44df4c4ca17c2b2de442bb19365abb7445adfc4d6d48f263b511686adde323fdafa538847d993e72cf8265bf2d1ced47b2436549e7a8741cb88389552423df92c0a389c35850f1eb8bb845be311631910ecb5fbae24f7efcf69f211f5b5e4f4e0a74af1b38fd1c66f2b637c2e03ca7e32209e05614f026bfd333c6a156b77850010e0e07943b082e35d99fe262681fb93c099f62ea4e99b89154cbf3fde6c43bbab79118083e95dd1bf99af3d9daffdbc2fdf64b396801311577e172d8df494b3a7f7b453b36b43d5c57b73fa796fb88fd6860ac76b43854f57de6c43554a9d7ce44a504ff2f1663095422900f5f56738cae62670adb6662fb5df400548547d92dfeac7ec6a3793fc0d894f3e4f939b7170bd264ff233fca38d323ec9cb6f11656cf1510975658353dfb7e47bdeccbfa98f6011277fff9efcbd3f93c0590a25bb51b7d69babac1ffd9a7cf62693f79975f12636db50e1d4734f2d138d5336277fefcdf353d7e699250270e4adaf59d3b7f65a5f99b9ffe1abbd99ff9d3e95fd8d2cf9be25afdd92d3bd99253673d7860acf7bdffb19b285ad3846fc83cd30b0f72e6c4e027bdf81342436549889d6bc976ff0e45fac66a4b7578acd2a9cf29fd592bef72c526da668310ffd3f2cd40d96b5588d66240be2e1e6a3ddfc5a6bda0f76fca9f06771f0f692db56abd04b28a619715637369972b237996eacd1642746d950e17e146803002b886005eebbb2c138b8917266f673b421c5b2aa28c6aed1c39b6d8438037aefeb49a85913da5e4574909c15652bce6c5b8c4a853385b1c05c6ccab6bd8bcbcf7097df3ec5be7cca4f6705f129bf39eb7eca7fce527dca5767917ccaa79c05c4a7bcca59319ff228ce82a93fd45a6bad9f0b179ffab6a927b1b931c9579b63e0fa9fcd44e0effbfbabb35428cff239d3b1c18249fea24c34ed9bdba62325eaa3f55e43d9f8f0e927d66ce432a3ec2823e2ac93ac88b34aef2525252825d0c6b8d890e53dfce1496cc45ffde15dd8dc3f3c0569ee8db54958b0ea49401b941f379001ab262651ddea61cacff9c32727cfd90669b4f893003cb5ab9389eb500de2ac8f66f59fdd02603fdbe223c8fdd642b205c40711f3decdb54309e116e902002d282178496c360df9d0d6668a332ae72a3f8ec56a42ae28131b24a2b197492222cd8fb90b701507d73b6dd0301910760a04e5b3c6e38127a8bd4d8a95e83ce4b82e6c73d5f4158532791c5cf2267f0405c7209f2be020251441b501fb93e018e47306ac841e388348414978053521865f700c6a0210f662cba0a63e4b97118e6690bd231e4d839ac108740423ec0f160163a011f9543ee538502315a8e0832f8e54a0c20b07e14107734fbd68811aa748c111f6e28d1aa7d07184e7ff2cc208114cbf4ba830c58e172f409a952ce3384a41d3d7b569b5af0d39ebbbd1c57b9fd586ac16f47dd682843c741049a24c2798be046b9ce013e992d37aab9fe12c709f70731844eace72efa5eac778fa3c34799207914a3b4aaf928eb3668987ca962b56f9a8f226367a486253cec2c1f52b98f2b07e0469566c35f2f0a891648b2b427d9426ed6b5194a7cfc3f925b12863dfc3fa9cadcf15c9bf79bb5c5189ab793cbf7fc5ce6f519a29ee27f7d35924cffdc67d8d32b6e4e97b1d48436b382679cf5a253e50a2807e4aefaa64453f4b578dfe92bba257c27694aef4b92698b7b88f207eda4a324d4a4a487e9a949058b088e927086b02e22df382393573459c91b332c99738eb86842be2be106556efefadac12265cf2241b58045d408d54083ad2bfb211937c127824c732d198e482463cd4c75dd30f128f243d4b1907b713b57d9ce58214beaad66dcb435dcda7bf9ad726c4f486209276e4ae401a2d86875a5f7ed662990bdb5805b4df1dea098e5468c1119cbda32c7b43e02ccb585070f6794bbada64c122d2255b60cc5bbcc41313536f0ec357d1fba2e90b221da9d93bfa729c95290cbb9c95359e230f297624480bf2560fad648d47e3d17a78eb24245bfc897e603f15f9ac9418c11c97db0897d4220f5bf029c714f4d324e4e10e0f513d8e781461d48908e334b143ebe1a1b3542c4e2817e6be630bc561ee661b21a62f9f038be0ae6988c80ef50634d2f8b343bde1fe461775de9bdeebacca9bbc95c964fa1077ef993adb99fea4c3f4fe9dfd55f7f6661c6cdf7bcdd6227b57ddb509b1e99e748031d088b3b2e94dda73ef99acca73b61655a33ad41567b22bee572bee436c7a2dafb86b1362d355a26358091dcefa95e969578b3cf495e9da84f81462ce252d51c9158148cea2de916c715411ce4dbc30f7992b3a32996efe006d6207e65e2681b9d72c7773f625362655ade76a3c1e3aca052a00ac419f7b4a9f32d198de930e3a54ee3388a4f1d0f7d8f2aa7734bfa46a2af2d029ac8235a8408520583e5dd984a71c230f5dca7bd2e1a173dc3505f1f0630169b4f8edb5a23652f25e5bad4823fae650ef678de87e72a8b916b120beb874c5a15eab05b1d146707f47412455882992a77d9b6df12c303d61ca618ae9777453902267d168f1dd66fa196e22cada83486011539049c834245dd4d5922e6fe1acfd19de048e4439c4dc739792bcb54a58259ac09c25798e23b11162692bf6fce348ba3d465ad2b820b87ed6621e9106e98d35068348fffe49b215677ebb399c20127729d6ae77e444a5cf3de8f5f78fa5c99b7c462abd37a6373df79ec904d2a84aecc49fcd1567940bfb9f80299ca5ebbd2313306fd93484fd556c9e3138c4b916a9de5bf94aec3ce56844ae15392bd29f4c61ee21ce14e64fe4987ec9e266154e7d8e4535a9f7c0d30e6aeab92b77787853ef2388f788d049ddec2f6c8258037ca61f0469b86f9b4d10b37112c083e0690772078834af74c917881493dcc889b0621f2b8134209287d2b5630d354b97dc912ed9f28ebc23e93a450f8948809009a4999f1431c76ddbb66ddbc671b4724560116f51c1c14710cf0571513bbcc5bd9820803011000c0a437d1e4194a1f1348ca71e4794a9ef1da15e2817f719e542edf08eb498c6d33250288da769501cb7a15c1ea648be4106f84ccc777def57369d6f3ac775d328efbbffde0022c5a40b49b66a114aa8659c841ac6bf168148a85a74126a1931c294bed65a543a09617f01d887a1227949f213ac715c7da8dc50734c328961434c100f0410df3340040184003e260820de67da2500d49f7c0a6853f226af02d2c0c1a837b1d9b1c9374803f53140b880b03102914dfee4aa8036258ffa159006753348c3e4b6eb8248f1c53f464271bd5da40d35c72404a062accfa0be5da8fe1c438036a6af8f02d2d4dbaedb39a52ed2492a0f4472a15ca81da897b3e29c9b768076cdf0900d35c724d008f6cf5c1158048c816ba8392681ae972d9648c41045309070f43bea07ef1e2aa2037a02f129fdf85340a10347202fe8bcc0710a9811f65a07a5d5e3629c36fa8747dfec028937fb80ec2a8edd5d03fd00f54f03f19e02d5a1d29cae81b2ce72f3b51f20a0ce80fa474af9d9ed1fa0fe692020f173ff24d152ae3249b5db2e12077f456a9ee1c7985ff3c43d3cece922a422468890adfe11ea9fa226f263d31660c1f1867ef78035a84d09e26d9f1f484849dca21ed4dc3d7c7ab4113ced120db4829c96360239819473d269182e2cf21b679618d5c5db480c8c0f1604fb57e923cb584296b0710c334b386b20851a24e128051d2318064729e804e13672d6e48c6abf84f5e8c991b3c323a8853cbcc31d86b48e919591018a34b0010769f20256031efa4b3b686e9052ca98b594b2bbbb1bd66d07198fe6677d74cd50b3ec3d32d4dc413d2485c89a3624a1b3eed734edb5be37f23b7ca3354e77dfdc04b68964c0b36d60bc20451e9ac0d96ff4ded88855bcf0bc1d8855e41c38bb59e22a5e9a9452cad316a49452d24c6ffa7dc037d428ca2c11837d803138b790c76922477b1fc1fb5d1d4ebccc7cef2299f1de63b0510a93e0eca32793fbb39ba5cc7d7313b8231970b721fb0edf81fda780f148692100e30529f230c37ddb9c03f78d8d48249fb08c5408e108df689cdd0e4422f8fa304113b18ad74c77736215af19139637f7a7b037bf4e02b18ad70c7773748fe3c063093d5802ecc87b9b338b000320a0e0074f98d1e1c4cb0cf72e92994e87133ee3bdab0033dc7fd65580192f871151b6789fe308efb99be32ff739124539aca00a3ed60006228c610b8f5383a127f08007521421010e3371a63be27372681256c8055c2e806f508f0c5586218787a72f74d16d220ffd1d84a94da4430a3922f256cfb8f01d86827207c52c5fde30dc410221231ec1b0bcf2066c82a9082e77e82167f595c1b9bf83863a287710f6ef213b38abbf73b047a0ee914424827d9b391273ff681fecfdd27ca609463ce708b0ca4251f4034ba5fa75dec77dbd1147ced7cfb53bc68f31c68b23e7f49d534d319aeae7f8387262528eefe3c9de98b8547a8fb9bf9e3ed7c7516352cde1a19f4c36734938fcc6c4251b1ff670f0f638d8eb6aaaf5f4dee9743a9d4ea793c9544d76f330e66191239dd446acbb3cd4e139b28523c7a8e21843457947755a4f0cd51b52730ba9b9913c2a6a75500a8f52e7711ff8cecbc80b5e207fbced1b437565af45999ef138abf85ccc2a3ef73833315691fe111bbd399e88f708fadccd91e36e5bdfde691c68b7b3db2e99b73823a350b374459996bf444b97b3b2bfa44bee30c2cf16fbd5ae577cf12292fc5df1459b81a44060c08831c587be7594c28b2f6ac5de861c6388194f0c61ff030c798ec7e4cf8aa78d56fe7cb93a82be7c7a7d088687a1f4f12da4e69818181e933fb6d89a1fe34f20b08dad28e329c696942e5746f48d52e0936ca2bdb590059e27747afc202243cd1be6e1c1b383853a81a4983fb019393cb09d8da79166bb4f8185facb6a63c237fe35ca96affbfb3ebec49756d43ca515f5f39b4f38fbcb77dfe69cd35bcac18b2c79cbe1a1c4115f24f7337c07cb3e92add78e6c912fa994f272377bf98e6c653b13e63fb009f39e09cbce33738474c2e80f0aa33d335cded92303da787af4983d4453072e348b889c35858c3cc88c7d63a8ee4232480a49207f1a3f89cc16adfab5c799c991fdfc23b29faf5da118b2c5b32cc6c3428d7722a121bef8c79938436366e4cf89145f7cf6c8162f922d2e54e431fe922d473587e18cb54f2fc8389fc52502b15646bcf8f811f7cff9c27e0faef83dfc77e8ac9e5d0b6ff5a180292515d34a7d5a72b2a84be2223349b168aa136e6311b6fd7f67f553393f94adc3c3978eb33ac67867d53173668ccde2e2da5f51494159b560a13a312989312a8a805324a8533595c0cfebb84dcbec6c59258b773e06501521a93daba3ba102a17c29f7e9ef566f5ec13dff7c374c6ef7e86ab9c152f4d5555bcbf8134f33ba8c6a8fa3f5a9aece35d65df78098a6f4c3cb5efc620a1e6185c678cb7e6ccd32a253073bce8c37b9ff1a704138013f30644879e57bebcdb949d271360382bc7c0885104a0f74cdf67541f77f65aab7f6b2f7e8db5e20bd6f8dd7bbd7d8eeff10e116308cff3bc6887f030c6101e4833b909220007c7cf3198863e6769e28d71966f34f2db7af393cd810dd2c87790267e667d7cef7df7a67f3ebddbbc9f87afdadfb246df79bfd85eba9b0b36a49a74a408daf74bfba49c73ce39e7d43419bbe367afa95a38644b91235afc2cfb1c67651998525231add43f59d42571b1a9522c253d98bce0bea50f1e65baef538b8e325106e53bc7c3d89ad6499e136fc73c74a41c97eb7096bb8cf8f0a2071617d7fe8a4a0a8a8d2bdb2d2c8b7e559ff49bf497f4a7fa4950fda73681a6185fe24b1fe9c771bdea7842bb9de4a1e7b81046356ff2e75f4d8b378a9a3ba93f93df72b694f2e288d3b4058ffb54f79e12fe351187f1a53f66168cd23dce4c7c16160e85850565d368f6f555b5bfc9aeadb2c7d3f1849c2fec3b31eaec8831be5cd9e76e89e4ac185f5e2231febc2d8f3e2dd42c3bdef83c687cf9f2c84324996dc4eb42924712c946238243b6f47589248f1acf97b3f10ac708a6631f2ecc02c72910f1685fd782ced5306d39dc7755e3be6c7c1807e3600e9c9786e3ec364f7cf1f73c1f35673b385a062a07fba8f20a79d4307e1465c61065fa3fd874755044d66441b6238f3a57e7ea5cf228dbd991473b59dfe9f27a6ade869a48c439b1739540902676aecd08fb07f1b60f6c417cf1075d0de39f84fd8f18f1d08b9862d84d482e900551467f67537a69132afa60df17220b84228647b2d55dd0253fbfe7923f18b86d5fadde05bfa3ee1ec50bc2e28b3fe8ca76228f6ce16430a028d3b18f0702abf912285b4d69ea81fd0011459936bd6209c754e4a3e28832f1fd471065c831c4972b1ac681f87898fdc0f19b3d1eded848d0b93a976cad8ce8fcbb57b7d3f1743d1d2cca7467bdefbbea0fbdcfb1eabb04d83dcecce3ccf45da20171a674736cd7693f1efa67459090b0d3f40569b01101e5110d9553a333a8d2481615797452f9afa300efc4cfa440e6210f334f74523e1292729ef6a16c11e0e3c798612ad58ff13d93a56f7d18e087a0415a7b92a35366f3bb241f32265ba64bb6e48032c8c130200e14e42d43f17f6aa94d776e935290c6c7101305157c6f7e262b29100fa230f075c11754986cf9a1300f6340411a8d466cf266b8e46080b26912fc32a42c49cbd15c25af9ae46f1a37b30efc3818078bbdba184754b21de6625c4ca87b08fbbdb837d0a09852ca610acbba0d67d96b204df71a58e3786ad8b31456a3d8344ba310c329c4d0ffd225442ac40702332f48485e6dc2342ec3bf6dd24e9dd76bf2983b3bd83f6e4442f1c5e7a70a40ae10b4514b71b514d630de3222f6a75c6b252b7107d34cdf3dfd388bc8b0773b9a052bc8ab715fc9367e8ea86574420d23c411bdc017d0d0bc0beea843db0f27d4322816220c10cd42274485bc9d899f7ac7154aa832339315ee829ad77d3565e5e24b4efc4c015c990d923257a6d330263662bad3932561ce39e79ca69ff36fd4948f32ab9fdf3f40a68b9ff7e78b9ff6670f3f674634e7cc90e669fa3059e6d45e73924cedc79c1a6ccea90dcda911cd39b522736ab139e7b663ceed35e7dc7eccb9c1e69cdbd04ccd16533537a27932b72293c52c995b6c722d98a8f919916c653f51e66613ced950cbe05e1061fc5f50c54bb6bcd7005eaf1f2da32b42f2317ec064ab8bb5602cd850cbe89086702704832808a296d11111c0cddec180f881c56260b4d88e96d1fdf881fd7fd8f1922d2ef6f27afd6819dd8e00fc80c916470400580b6ca86570455244b2c5a98870c55b9196c10df5c95604fb6f31d9e25ad032b81f0d83c4628bfd68c176ba79f381e522ddfc4638fbbcd09a70dc0fdad383435bd2753d284f68539ec783eeec604b82294833dfe631bd54e703e98bbefe4190a6f4600a0aaf581f0630800168520c22cbbb410cfdbd57176b982e46c910c510c310437f942862b884e88418fa1bc0d228c4162ac42bc42c442fdc800dd8ff0c31d632681118de805de5c66a3f4e59d51d2e178ec2bea53e3f14080d228ae1ed86f604c48706c5a6378134e09bea17da8aefa43a680e8dc25228220c9187431e0af9fc00098a2f5350c1c485d6843dd317dad209a441310a850251de938034dd938035245f68bf0c497aaf9e34c552a221201e05f25e9324b45eaaa404a459f912b0a6e473d1e1b711a7583a24f4a3932105c9efdee47bcf2bc996522ddd4c7fbabb3bb656da6814f18542419f10619cfe780824be4401fb674869c0fe25200d8ab37b6426258596c3269b111370c662df8af531840f509090b710c5971fd886339d9641b51061fc29176c80fd4f8a9c80130929b45a11910af431858488a8c07974f28536c39305f6545f68295ee1ee8f8f21ee84813e668f1b6affb433089c4040ab1548d3e974af16df2d808d33a19543d838d371b14ca765704411a64bc2b1cc85d2bd3a9d6ec7599496a404024b3b44aeb8009f55e0cb2f8025801d22a58bc96ec7bb57d7e968efddacfa6eca8df2aff6f59aaef6a59b57320cded77fd7bbf27aafee6355e14c9798dd0e0baaca668f1834797850beae53a3a694af282a2b17d7c4f6f0e25728ac07eb75455a068582e41671fce2ba8821c53a241315944ea823723ba1b013ea88ac2e85b9a0364cb6bc570783bd5456df2995d5a5b0c6b04fe9ba21ec413b9d112a588ac5c058b7c3e47d44454a442051918edb604330d850467f344b7db8976c5120dc8f9641a1a04395bb9906bdb047115f9cfb7129cc05264678f585b6f18af531c44f4b611efe80dc107fad0f573833c4a540bcc5dfe4d214184c25c53b9a94e48776621736626913a774d11febb2241cb51638bec75686245bdc3b43929fc9be1a7d513796ae2635489ec56adad77a089fe55dbc781fb4afaf69dfd644f29af62f603f301f20b01f980f059292f26ff307f0db98565f575eabab5b6345abff33e4dbfc7f625259d5d752fe5fcb1b5ead6e8d94fb26cd6aaf62f3ff290c5fab6ffa12cda6682961aef5de28227cedde849f726f5ebcf6f6c6bc37260e4d2ffef43ed83cb18b97a00dc9bfb8d3c31e2e8b0b1726f751eea35c1414cda2d4373dca6ba68bf22628afd5bfd9048544d32ccab56f625fb3d6f4a69b3d136bfaae266f32799366d234acf27d6f56775583e4fb4956ab67a142f22c56cf82e459ac4ca65fb9294f61a6949b376cfabf268bf27df2d532d158e5bd411b9267c1e2e6d5abe45596122c42ae7cdb7f93056bf4ff9d21abe955bf626f568f4a79954ec129f766f524a6cbe24f9a8d2a9b1f9ffec4be8034262517ac518249deebe1eb7afa1e409ad473af94e57c50363746713fa8d79e83fda0927ce6603e1e090a65713a0ec6f9d0d38b17208da7a35529b917b7437d5a5073f7ea7838cb593acedad1625126260024c207017e23c07f6c2080f574b6ed3f67997ebbf9c6c4da773cf5082388601a6b672b6da5d26b5fba1398980544a2a87bd94ea7dbf1767cf05e2f0a735613754d83843a1d0fbd7b79e83da899c25e3ecef228104fc7fb6d27478b00efbdbc97a7e361839f062e70b46ddecb593add4f6f11e0bbef184c0007351b49782ce00762b88bc996f7925c1c62abab41e462b2d5bd64addf0b70d227c4170a856e710a935d0d628b2621d22a28154f61142644613e86780a1bc2d217200dbd14968382387c48515989ce02000a9354e3b8c011793cde0e8704efc5c1027080008033805c38acd96c0e110e316b43ccd410437faf06b115a31d22076b19195296060e09d8ffe5b35896a4e56c58d21f409a39c40f600c0f0606a4a11a9e364342d260401a09032626060eb55fb2952121bd905e5c8c4bfacf5bdd4bb6bcfced662e898b693cb81867a47bc95617f32ef6a2e154b8a7e5ba184a4ca5ea863aa24ea813fa98b38c382b897694ca2771e9800adf000186dad7760a205565105f10a023c100250fea867386e459110f6320cdbc19d214028c5f893e952d208d007c31ca448f3ba148b814576272c2a958702db8158a771025ed2f68e3c18cb2e04596fc4f6c1f9fd07eb34bbc66bdb74bbf258ee8ed3d1b1b1170dbadb16df688feae0730adf8863a20621cec7d1cf8df4300fcbcdf381dde57abe3fb930caa123109c7998c6676200dfad32608acbdf7d59839395a839fc94e7a52ca0f2c71d72607a626b086c4370a0069e0d4279870ac69b723e71a1a3c2970a658036da40d0e14a450234a9151ae8b318018202c8e3f411b9c28602a059edf81352210bef1bca32c79c7e90649e9c49cbc29c1294f76dc57125bbcb5bd6f97c55b58cdc2b295be18654edf813616b0784a8a3dd317a34c9675608d96340d5e9c38d8d37272c26ce32fb17c6dfe666bcc9c1c267c0998fe1baacb75df25b2bfb161affb1cac31b14d07d60015e02f5f0369e038fe36261c674a48d75aa2419bc07c29e5043c6e4e4a29a594ca8f0341db3cbcc5b96d9352822fe94b8e637989a29aa00c4294d12848d3a5aa4f7cf1d76c2721be2821be2c21bef85350f2a04e9cdb077b04bfee93200bda27aecea236da539086bc95e3401a6e9bdcbca91ee2a89e477fbe06da5800cb9f138922ad484e1814b4b1009e2fbdbf5fda5860dedab989c7480941cc50796017384a8185245c0511b6384a51c50f0c04b3e20b3f473806fd106101c7a025ecc0de51168480b2c00367ef28a8c759acdee1320e387fa8d89663ce39e79cdb9683630535cf9f1f1e3a0c3f013a51b31c122404fbe901f32feff2fff77b807880f8fc38f2e281f22d7ef52a6f7fe54fbc8f38e288238e38e28823c63546df97fce94d9ee4b5377dc411c78a8ae15ee5ad5a145db2b38f2916679d843c3c0d79cb9187e41119834745ad45cf5d0916d13927c01ce71da15cdb75d066480fa17e44dee2848a702dea9afb6a0ae05e2bf288a0845042f422b910fe59558b58dcf5818227fa83c8282194106ac859ab1af4a634cdf33c2f8806411a1bf8c6460ad3a772db8450ae9310ca751242b950aecd4b71dccd366ce0ed9b280767ef284a9105225e11ecdbc63d17c3dd7c126a4ab9db27211923464c4c18fedf53f4b0713df2d089640be5d28864ab511ecaf33c8f1392ad4ea823c2feb5488b79471e110fc9432d46617568c2609f1d73df97092f1ca7008511bc8263d04f0c7345dc4f010d3d534003cfcab742839cfbb9ec8fd805776d1daa443508a8829a41a39e1a2318f76d7170046970b630d4cc151569198dfddd85b37744c33158867eef689b42cdde110d77534748a99fe13f6a8d110c0604d718f97858630404d451b91feed61801d1623188093cb83f05a469168e11ccc388bd1635463dceea9e1f0f093bcc5bde91b7f88fed67cec9d51801d96c8d91cf8f1e16608d514f8f1f27fd5acc5959ba6a8c7a925a46c431ee008a32d154c459d1e546ea4f0562d231f1601311ec2624ec5f2344c759d2088e18c6d608d10932016b8604ed384bc20147fc626b84ec08958035438484e4384bbe0147ec626b84e4c05260cd10981097b3a41b70c46f6b84b87e48c09a213f46469c256338e26b6b8c8cf4408135437a24394bb601478c626b8c927a4e60cd909e97b3241b70c42d6c8d901750056b860019c59c25d780235ed91aa3188f09ac19c2236487b364111cb18aad11b2034809ac190244880e674935e088adad11a263880f08d60cf139e22c99061cf18aad313af2e3036b86fc18729644038ef8c4d6180d0939e28135428e1c394b22e1884bb6c6e8e815657ac8ab88b3e41970c49ead312ac283036b86f028729634038eb8b3354645435c1b5833c405e42c59061c31686b8c806251a685c4849c2589d41809254599ae119244c459920c38e2125b634464880e056b86e804394b5e81233ed91aa3202146265823c40891b3e41870c426b6c6882827caf4909c20ce92473862125b6314444794e9213a909c25c58023d66c8d11d24e94693c6427be445c6364e42c3904476cb23546464376e008d60cd9115f2266c5a923b67cf2983ad8e70eec591e71232e8b7c01fb1ce490b3fc08145186d4d130fe3f128814923df287844519fa8d5b7146ca28248fa396a72b75541712c9cd2aed4e95004ead922e3fe22cefc8431d2d832b6a187f1309123e82a7d481b9972e49724bd48ad8e2540811138b12791884fe00b114880e15b50c9a8408e37409d87f7245d427bef87396c2ec106570efda4ecbe0eed57e105ffc77565fd3e2b777f133dcc5caf71e681b97501e0a2504b2788e72a1581059f455417cae319f376c2d1057f398edf6f0d15995087bd953bafab65bffbd2fab41becd467c1222ea57fde7ba6d26dcd049e82474122ab9bccb8b8b7df1e2e2c3bf70f91717181717985fb9c0c0fc4b0569605e6e5eb9b8bcf0e15fb8b8b8b8b864200949b671442697133a09791d27d471608d2ccb3ecbb21aa406a9433f7cae433fd4203fd84ab46d5c298234d7c524cb5eb6ed65cb4c4cb22c7399e1fb873d7cf41ebe871eb6a7281c0a00bee5bdfeb890130a334e88e384b67b637aeee9cda6a74ff2752d791290a6366e90867befc47e37b1eaa8a44c74d6a920758a462000004000e313002020140c088482d1784028d5b4157b14800f95b6586c5416c8498c21648821060000000000000000200104f460c46872819068fb6fb014a2e054049f1f162263687278b85cce911378f2dfa186da6b2b993ea85df4e74426e3e4a37cae4204f75f5ba18779dc15274e84a8f7461c05721b750590f9d5a7bd2cc88f149f615cc1f39980944fb383a1865f687206286a0ea4d8a5709d278f19402a806c70f4f692a553d0e41858b35a111a98361a118715141ca9ff97de202817a0bf1afd9bc598da55f5babbfb8b4740841c3edadf5eeae85bd7e30f48b7b65e18d50d43720998ac61b7076f47d46824c15250101a93418197746f997721eca8c98c6eca21a94cb2c3c641e2bd5c331ee82b105f59bf6e2ee18be4d96b4cc88fbabb43956ffa46e220a98a74829c7e83e87c5c5de7d62eb475510acceb5f06e195e11623ef8c685ab146571046bdfc3dd79bdf6e70359f99778ea1ea08ff372a0f0ae857f9d6c942d86e4d2eef542d770679d28c27a341edebd374aba33caeb998308b419b4b1e840f0ad6b690cac2b09b8e0267b9be78673e2840e760cfb9463814dadf31f66ce7e23e6dbbbbaa9388c8f76f59342468d0589cd39af9fbbb9f71bbc7cb788737cc3f090e84d484c05330e48694e1d90768cd141354a957c44321699543e8b2d41038b6e77c56e35ddd9f86579ef881464350da4eed3a4468428be72bf71d50bbc637b389d072f503a3a085cf0d15bced70881d4682d844fe4dd345b65c30f2257b0bbed39620db0a1d72485ae9d7156d7b0e1eaf82d0e426ec1167e5414f9d56b6bdb186da31b625f78b366a9840cacb4802f8842778bd9a5bda2340a45af16006805b23bdf35fbae15866b76050e7ed3c0f1ad2280ffa90eb63e7275ad5be97981cfd1d6a018bc3e7fc84e6928064887a92140b4c9ebce13cca2ed0c46102a3775942adab86ded59ac24d8805e2db8f0be1720b25b7057a782cea0c3882d84bdc3275be4b22c746eae010c919a965e8fb3432795fe3b59be78e08ac60ca7bb5099e792e9a02fad0249a37ef5c3b313a29068162d9b1074338c5c1778a26547da7000bc937ccb08a8ff5ece398484a5509cf201c73c26c754a86b38010d7f02d66e13a50647ee197b15e85f50e45e8eb0314c1b01ef6f5018d0d47e8298dbfc183ff9635b0af335ef6d924250833b775f2301f8ca0d17fad3cf9baddd4dc9bcb1253a56633cc85c61a311d036f806f46a97767320c207d48c7a8c3d7072ccb04c178c41fd416abff03d102de92cd528b53666c928c21e77c788a613a266fb2180ece0126da66d01de0008cd2da33f17c19199b1f129ad35f6a9480be599543f654823261d8ba03d06ddef7e83a797d3dfdcaa7365f03c5d22f0d271b258d5fa42619a0a409663e2e2708d10035451004d310d0dd3bdc8f2ecdd9d7ecac3e625d1fe010a19db6e9adfa1082950e8459cb30c8b95e9402d5bfa584beb19da3897142f898c1cfd56719dee6acfff273a769bf5febb9fcec94ebe94cfbf11d8f7c47bf9aafffb8e37a3bd6f6f14f77dcfdfd6afaf695479ececeddd9baee1e303e5abdf15e9cb9ed8cfddcb2b3fdcf07a6eb037cecd3d7a2d669f6ebfe8fcc0fadcac5a5e576a96609ae35d62e9dea8d9d1c1b422a1c52625c23ae2d81657408a7ad221d18c8e922f868e251b66a7853ee94fb130886640ca2e19b7c4a3bc4c5a418ef638f5195c34f9fa38996ff48c2dfb1a3344535b836568b008569268e71d375c60cc1fdd549b6c59bce12599f7a85cc1d8e99c69e1c2906ec135b1e5a0d6c387dec8e609d1068f112d9d89be69c4519865b0cfe5aa89d86ea390e0b238b7a23ea16311520adb9199d702b8831e7218af537177b01af6df21e0a16b2f9c8ffad2e5f226b3031c026cd0f3ec64deebf940cdc3466898a7200573f5941942965631fe8b5ff8513a67c60b996c10bc88f9ee8bf76c63e4656cd0e64295f6ea3caa0f77e178e68becd7089cbaec9e9a1ad3c64fa822db59194e420cf61583e48646124a288ccb08cb324762c601c871c1ef566a247c864b34e7ce5bc901c9f2d16ff8ccce16e861dc9d20e539ab6f36bf470807b3e36877b6c5d229b9f88a31b608cd1611a991ff9a463f347a6fcf66304a77f9b8c494e078a004e87706f32c8065720c4a5160f3b5871ad15544824284c23bf139ab9f267b1e9081f8444450274f9c524f86726198280dfd1114b9368119606e6c25bdd08df1f65d81e93f6fb30a022ab1a9b9a37102e0bc1a1c9066b893db225cd08e34d9a4ca124016880b27d58db7309667e33025f6b3a7cd2e808650c8c0f6242196000f02f3144e1f5eea6b49304a5c8880e912dd0dc52adaeffb6df53b046ec50d485e9b543ce416e1ad2420b21e15f3ff573714ce7bb55cafa0ec786a24844db8146e7f3faea35b3c461eca8169a6bab198a158e86f6577053325da1dc93b627bd088ffbaa655ea1f8d27e9b587ad5a58337a7d32f810ba01a0bdddc5bde3b9b956c52feafd2ae2466ec9b3dc03c11ccca6924ec62e66d5b906a31dff1f463e420c55cb0fbbf0ee92ecec8081252e0b4df5c94304958dc97bbc98b253e9e6066759f2001d71924e01a02d9d9a5ad6e9b3ca8899742810124e028c7caef4f13fcc108751802db507ff4e0080e13cd7443bd43cc5ef6e59bbf77b29b8ed47222c4cf2ffb251981284ce13d8dc24ec614c99fe2ce9fc0c3c5e94bc2249e10d5372bb34599dc5ab37b5a2a8b244967772b96a600f92242d79f5b6a9f094e185e3f3fd33469ee42eb1615af16ab09d03d5c33ff1509f0b8b6b1f6ef25b00c3fdc8da24f964ecc96f881614417ea8a04b816887739d70cf0daec62f91fa232309286de643717dfb97824485251fa03acd53175d43bb0fc9523c3e258d5c57d0c22be5cae37b0e7b7aa65269e34596540324f9ba92f1e189c4ea0d25b4a0185de8bd8130a76753318a502481922c38c2478d224d293f08a888ed08a0478e6b52276cb962b0f6a4885d762f34a29b2b5bd72870a41ba1a8721a4962de9969db5c390e76d11f13c883287dbd33e81143cfeb0bedb50d73d98413bc712fdaa0421c29f888709bbb61f9a281a10a7e4bd3aed1f41a7b2b830e90950bf129ddc3aa0bf52e85db0ad808afd30388bf6c38bf6e67411518964e91f7320c58b08f36d19b4f63d6efb275e1a10e40dd2f0a6bd23872bd96a5e07f514fcf341c77d3074c2306fbf7ff2f4c4a99b9981d96006f7365281042cb676729d0c87e722ff4494861a11f43d5a57efbbb66d768126986fc6fbefc28e71a5db4016c4a3563ce4fbcf637d4a676a49aa8efe39ab0d80d1d30d05930d195656ee16101190ad5679b8ea36e3c9c58b2433a047cc8f4438359226aecdff3e0cc34f470bb125245d7f170391cc6d91d28b20133a85f810cad9bb237cb0183380667a7baee6a4e6bb2ad7505d240b2664a324ba971f7d728c2cd0a59120c757ff77bf6947c5021c043b32d009103cd9fe08f8d450755e8689c8c76dd53314bc9db0250e001d3782c695385360e1b952c03270c592b21c07866897c621dacc3a93199bd972570adb4b5b5ccd932a04008ba834b9f8b0f3531587bab6ed38511b032ce751fa76c9c6337a2558c2343612264d4ea86e5ed2007111dabd7d5cfc8871f8ea34b5eb2d10e8f16160f23ba6a290eb0972c686109a78d1159e44bec103f8a655b8e072e12d3030fe42140ad06a95de05960099859de4392a93949768150ba0586882977f7786f5e0639696ca14775e3b33327913c5b791ea328714714f68a904e1b4777784998fde18733b3e13824d9cbd05eaac48693421c06906ba7040554854b199dc9a29dda915024db2106d0f8263c23414bc938d4ab20bc431eee3bd730bf2bc4fdb90b8ad4f272aa4adbd163c761f6618254d4731ecdade6c90b06578be6fc2dd10c72ff014ee05460e0f4037e90368977887e0b4642a2685fb14c032fa965d9ff3aba061234edecc075af22b3e4e649e9a2304d3e45df43be9cbab5fec933ecb60434c00c30d7a16fbf00a0b4ee0e5ca0f2701dbda4c14e9ab8e499f01c1985bf0403154e6f830cdeb813359a487a99ef4592530e78f2a73f63cf831fafedd68406711aa44e583522ac39846ed6178ec7e9eb1fe940702c263ba26ee2b776e0d058d19ee228fed785ce0d9802f477847cd32ffd089316eadb3cec49dd8480163271d3c39bf5989c5878ccafccdd4fcca7d6a0137ca322d21e5df8cd287ac3149e04630cf7481c85c934289114c40c9af53c91d7bcc47af2669aacd0f03b42bb3b9424983c5ed3157aa6a17609265c6627e284db9b921acdea9198498f555e9fdbc4432dfdf02064c62246b72d2ad550d99c7e81a74f985e75dfbbdd87dcadc50e6556e4d95745147572aacec2f023461c9c079b05512a694c7da6607491420a9e32b2a84352ad47196db24493e1e30da60a65ee1e9bebbf14e6e5d9a6d067e5120bb7c576c5eb7233b4edb536c2890afe5a626f84c7218e40ddb88bbb1033f4f855f59bba8f4bbe083ec55f75083ca094d5623a31bd907c6e52fabc23ae6ac23348caa261e7369c6cb6f0978c95d889b9b9dd0d4dd579393d7e7de64900576b1ef067596b39e5aa3bcd044db55a65d460d6696442eac2ca7e7c21bdcd119a63435e0dd67670d5b29d0c030e5a2a0e1f8aacfd7039ada0d4c95f2c2c438d2ebf6103d1a72c57d07e444b6e2e50b966c6137e7bb64b0a56a6bf3a8d9648f075842c96e4c72779f684f75fe3aa1f92e445eff174d22cb9695127502bd357f664e4545e1539aa8dff3d6d733bcdfb61bcb87337bdc52fa4d67d13db896bb8d9c59b5a44a0ad1a473898fccedd2848dfb4968a888b2c15bd5aac31d0e25b6ae4c5a554b22f0279a6f49cdb326df74335e35e01513892a1731de4b4b261c276cad33530d5afb7f196ec764b28fa0eda44d417186d50fb49df168cde17cddae510deff6d699fade450e6802020ecf74a6dc7ca80427c8db9093a7b631126408d18bba8b0578e9b1984bf670a2410308b4b5c0113ebbb355af089e3c4ace2b6aac26a0a6a5746a83c05a10314cf364da8830d2fb95664a4258d5fe56ffeb7ba9670667549ba7264f0eb80048f6ca595ac562bb619fe502919f94caf5126713779226ba2b50342c305a30904406f6c89f258921c65befdf34d08de183bf4c398b3cb7580745a6681d72a3b4347f6696aed683129cb3f825b3b74fc37fa6b4875e3a0a9103e78504d45d73809160b10003c45828611d3539174b454058ca45b3ae1157484f87902822c2b3c4f8b241c3fde45df3b12e164dc56b629f0a380ee1befbc709a56dbb3a046eba6ef14f297894ae5e79cf00d1cee9ffd135e189405d2ba7489fd602e95404819ea2c6e84611927d5e1a29e4f8152a1386a0a6ac69cd88454b2cdc88e10a7e4f2371852fe5eb3cff1161536304235d0020af05d83439e6e51a3bedc68a5cc77b9550be1a8ba5049a1e73c1db7ad50f50d8c42b570d99b5f1f02dca35e7adf5ca4cba5fcb8a6ddc9a7ca4789935c0d358f18f34f931d2891d1d2c73212032eaa8cbc59ee426f4b9a6da387d45f4a1723f3ba11bd8d67c79333589682409b4517f560784ca548a50bd0a4cca4725b1a3883da59d4e7548be69bfb8f90b1b9864e08c98b8222095bcac3b0f1173332f3668e440df34a46a3ae3cfc2025080c4db1a2b93abdd090dd090c5d2bf3597df4fa8ffc53b5af38858fc15f5f4724310c14478b1adc7672933e629b13e5073ace50db7593692bbb00146fd81995dc871984eb4a9d1a803b0ae86509c750838f4a58c10a74b56c2e41a87743faeee805927157203e57ea18cb8b20869f34ecc8c9678e2cec1306ab9c93a5ea85f2a6213e418d5f30ed44cf0d01e0687179e17f284bce67320e0d570e8a52fac1088e1e0bbed82ad0c51b6fbce8a45ec14a2bc7382c26d24a470f6d0967160960a3f5789b7cd39c374793d641b9002e5befcb156b6c7a8c12d6f0f54d180119958e55bb10d3c2b5924cd64105779488bf4d31f9459945ba24771d3c489c880891deb09509a6a100ec0c4ce9e177c9be68f1c0188841bd91843169c2d6a39f11d03c841ea0f759411578cd3eb0aaee20d38237f418f482b118ae3c6ac6d3067ab54e1437301f4a8e33752c739f01622690c1ec42033af397077007a0c5d1ba11cbfe5e57a2877011b381859e148d4b6bbb093f56d58d0d351416e5f497a74fabd868cc5be43449371ce51ef21a184e50c5258d48a675636d1d48a104de6fd54e347b410fd63077de3e218ce95e50ab057c0bdfa22af7c488ebbacaaf82b88f364848c0b408677529cba46375fdce99619a7688ba9b9e62d96cb65291d3f793b51a033a9a7fb6eda772d83effca113fff76841efd9ffcbf01a03522ea9d82b8798e6583f2188c290bd7fa962ecf8e57b323c5cfd4ac63ca4255746b8843ea26f6772bb287efbd7641430063016b89fd48da5a9727ab8caa58b0e83263d3f87c9ea7ceb09cae5826b20967d9dc26c819883592411b5261e78d4756b4da7a4b7e5f10a407dbb704ae122c379e4e1d3e129954f6273b04d7209f765ef3c8bc44a009456e1da98bea4c4555f3889b94f48931340207c695bbdec93ab23179d218b5e9c264d846a48a21b5279262f832d78f382bd057dfd21ab5a7929bc460ebc34cab4ddcc5c2f43efb8025d01da84dea6a64a273b0f5a05fc63ce863f63ad3cb775f54d7ec60088c0bb107f9dbfc5f63b2a1580c94ab659830f9b7cbdef3716317fdfd31365f051935eb75f6df21133037c548138e87943dd9e4d60f2d13b237f54e13868ceab7401d576661b41ea2c749f9f969a3f7c1472a3318254752650ee1e2d54b2525f7e31e6e3d803d6ab0700037a3a22effab36131d420d64821052dec3460ee22af46041ffc0fe22cabcc54c55157b3090d16a4b949b29761d565d7774b85584d881425e026e1c8166ca6c914842745fb61ae454246adb1679162742fc207104b2203a44722f83d7fd0624e9ab68592c54fe1ab3e2550faba52c8d2676a4da0044bb8935cf66ecb5a7d67597e41f2a6a56f336a674813a3f10eb49f03a74ae35d24ffd2e927c150751f8b4b001ee514ab37a73d5c2d6121338cf4772aa3d8ea17798a68911dd5dbbb527f0927cee515c335f3a52ea166a344a582a25c29d6de08808043e48dc362ff952b3dbe0271943ad769fc771f290c5ca4d2352b770f62e8ddb33d368305b1d16633d0954ab26729839271fde816c70b00d8e89c4b213b403bfe4febb0bee3755bb600bafc96cb30be38cacd1cc1e21afb6385064787b34ecb8a65b5206c920b103a1b0ff8c9a129547f4ff42b5237141a7190816e3acb039d7f47848af536f81c6bf5dc2dffd986220563ea9138fecd89c31bb1073a4ef4d027e1336f28232dc882f17fa84bc7b60017f0456eaa07386c73dca970ce14547792405ce9987296024e74bbcd4b78052137518b5b66991bcbe942a176e035bc4f895eefbeb760e2489c4e5cd9df1a9470f4661865418480277e4d173bc81a9791c77973c880f2214e6f51e8d829f42a80cc78e07ce960d0ac107e39fc2947ec1e553c2be533939f845b59703e44dbb418664b84ed40a2878761ea0419694b0786c9b7bcae52136325fd50215c0f37c3bd457641176bc4e35898a745fbbcb8ac13a17a3246b69806cb5d8d16d59096f6bae9935679dfd99478a5a1fdb4e51d78d2757cab4c9ad339fe57d0010588940350d5c1ca8dcd25cf1683f2fa3c83c48cf1646784581455f1c2574fd1801d61a1f8cbbff4edd5aee8eb66cb7764c5bdc288873bb775f85e4430bae20948427c68e7007f05a6051f193f3b5e6b20ba707896129394cbb0680ec89f9a83530d088b667b48f4019495b3a1ed1d1e2e36afd2ca5bc566b82a7e870b15dd2ce3950cafe66979de9e350b3a2b3cb8cb5a592d09f8fbce70fc87ffcc4b98c8074f98a144446eb624ec08673d20e5aeae06561979fbb03e0fde258179550b2feca19121463368a189b26a0a8d4a90a3ac3369935f112b96034a2e1e348db99f715796a836cdc16ab15dcc61919ea3d8a9a565a7312785c0753b6f93eae7485d941b78d5d398465657f093b6312887751a95b05f0a5a3f1c4b36ac7e608a7ec7b2db00b5dfa074db3e65aebd4ec15c9b127aacd1d2c056a37a3a49a7d507261e1d4a2ff12bfc7dc780e0684f483bb816a437d1aa8f7c071f91d0843a9e22614066ad3a3be35b363ec017a48065349157ba89a0ca852b3a1be935df537a948867cf4ec139d328909769a42fd6b77f9293b597ac5eb25476404d66dde8d232325abe144514643a8533106f9156fcdf08859a36979da32a8c1001808f07407017875abff2f0280ac1288a98340ce584b844a323af3c835ecb91bcd17624e213e4d9ecc5d5cd4d8759e9be297702feea6fb7a70afdebe3e2483cbafa60bbd066fbe69059199ef0ac3b47573b4505d8ee83169060cfd431a7959380e228eab0a84aea3ba709e79f9f312711519874e5fbbe30da9ffb9db33994ad076ab37d4b6bac93c0e259a7f8f163fddcb219fd91079a08f31fdc2d83f704332358b8b84784ed604bb4fe5f0cfb582eec629ac316d6cc030c552d752f26792f6b79532a2261ac43f11596c17e9f8427122b406d7c0aee043c04e2361e434cb0ec75df23aa13b0a3398308f1458d06b585010b9b407e7cfec5616eb83226c815cc7e91b5f31dd09e4640bd715ad43010a744270987d42a710cf476d872a7b11095bb80605c1c100e6b9ea23c0052b8c0b746a914f8634f04e9c51932f078c2bc1b81c478698650472ecaf7165c172c8af5b22e8dc53a69969bf1e8c8e1ee804579a81963fdfb80ee0eae0842f9316853d5a0d312bc084240b4b6fe5381336dba0a0d7f5ac721a8e3edecc0af5f2b6567b553973186dd56db37ed93e2437958781640a87cbb9791da6a59efa6824b54821d88443bf4c634ada9a081e92c5a5cce0c8fd48f1b57dc64437b10651151393f6542e369aa21455c02aa406d133591cad37eb9f2c6f45478ac7b51e50d464881b630316de6554f68c2b7d85cdad1ba2bf2ce7469df4b93f678e9a79db6bb22a3755be4dc69d2be3f3dedf88ecf6a74ee14590f3dd09bbdc157be5423b2187457e43b74811eecc8ee8679110af3f9c5700b34fb30792a8198455a41bf8722e8bd1dcd22c1dbc8fc3a1aaed60f01b2bc1dd1b21ffa8f1ebceb22ebb09bd446bfc700f26629d1d75a8bc1ff5aca810e9b27447724390585380df8114a640f793c4a6cae760d669fe40ae6dacd440e30b6da39ba5cd7a3f8f2173eebb7652f3dcf635a944ac784d890d6c57bb384669b5e6b9ad8f85737b11693e3466407b4d74ad96d82bdc64f67d6a151225aa8b081b906391ee6484605fa0e22f0041b958f98ad3e2664b787424e1fbcedcda13c85b7176f3c35ff8ab70731fc563feb507e1e5c1e58c04a530d5b6ba105e93a3754e19dfcea3ff05b26f4e313f5cbf6b329f766e19da886c272fb10103b5141ae32064f294b43d2ef511ebf743f31fb72cb5f83899572da03a4213845ae1d698bb12993b13238e3e5ab6447e218e2b519fda439ed422d47a018d1e08600de708e8ca6ac025dece0efd00c1448829f430ecc1ae73cf618b71fd77af26032d2bd34559b766a8a75728a6fc9eff073dfefa312b2213465f5125a5c811d231a4050ec4b92a88a7d13aee1c55925543afb7013c87fe113f62df3dfd3ad55665cc7d7673e7942709b8886cce99511c4166c9c70f4ae115c5582d72036ba2f23cb5108989185dd4b1678ed6567e1f88aa675d81c8006409baeae83c74b78e5d979fdd94a1056962ef902a96ad01a2fee8bff536d00d7cfd0c2da43b80734e23da1b6de8a41b7ef1de41b1c83b6d9e4fd4bfefe417600618502cc08f5c7825cd7f3e643c912104c661ad4e324e8a830a21d2dacd8c1702f29bced42801b890646b9cf295748be06c237b217750c28d544b4028351f0e6799fe9d93d14e312c4eaacc20e3a9577e9601d8add855ad3aed89b689b6ee9c88fb13e1f71e8f462f319e69e8edb2304bbe7ef99fef4664324779fea3dff8ae800b1b76ed85a5d9a640ee9d0f5a60b4d630e1ea2ff85345f2783f429ca75a1397be895902d7474b28b8f8edd587fa63474041a9116b20e58110408c6a3c3c570efc7391d50d8bd667e723862722e30a2762c5dc195b2d7eaf3eb4fe25fe2908e691d6caa709da68de605256916a9ea564e756d9efbaf57ec5d93ca7eb15dd56909ec77bd4379fd520121bd67af33f60bc4dd6f2cb68bfe9a767a6658b0c687b2c3da424cf3426c8525c92832199cea25fe937a3f4b9470c7df40b6265f733ecaa1e23db0ca778e2f80ca76af2cc4a55f4ac232e2d00797111760455d066c283f60a5b3d1eb73e968b0c7f166bcd1c14dad2e5fff53e196ec4849650a62a6fe21db8f5b47d27c850c5df383fbb5f6b76fa56256e9fa1e5b5c0acc46c99109061f732254c666ed72a5b9332f271e0984dc4a4084145ef8f9ec2008865f214943aeafe356cd7fdfb65552ac85dc6781c2eb6c04edfc183a3956157710a5972d2a0e2a9335d6b5ef9a70717554549aaa08b19285784f31178b1e14ac2832005338fc2c36785c1545d5ec5d6b591b665589df800239f0febcca26b9aa8c860bf36257a2428fbe1fce376db1104d6d985adb1cc9172405cf79cb100de842206859a8abb01f3e104d969e6cc5922d309eac40f612e43dec7763c5ceef49c1d62b3f12ef228f1c0ce381a042f0f0a7e08197c8724eaf1e1dd3825e51941b17d8d07d74a6168679f47c26ef22e4c59219a777393887e459e177342d63004cd71f7167c652d110b485ea73e1d21708f97b3c88470e61096886e1f309da2cf661b631690c19f1a5f0012bab3a1db1dc9ee84500c9288f48bef51b0afa5182759369cd67fff3eea19637b3e52401a980b98241cfd8dd6a94e462069c75f2bceb51853fdb2cb2e2f19cb7144d357916da444a91604653608a0e2476dd0b44c18e5af602765b5f90e201431f709a395796c6464f1a53058146a830966320e7a40942fd34d12dc066f965830d10b8af62672695cdc6e05ed21d1bf70d515b24d16c36730d03ad095b20847092e646908c1969127d2b574a9f67cfd83af170e964eecbc7fd907c27cd87c1c933be80544f6edd3a64363abe0411dd1ab7028d5bd0bc5c5b7ff1eff2373e7237085c9e77c4472c2d9e5ba98032cf4dba063a20f6687d4d8da9036a0cc0690ee4feed3ca5fb33060a1b7026b7cc67ba55a2da776eaa1254b5206bd2f0def408f4437646a9cad2da6494c6b81755c19d7b2d1c27c151d9d0041d9c9e58474ec4555e99e3c5aa221f81db4cf8b1ca09cf963ef0958a119c232cbaee0dc0392c807051a40d96b6cc59333ade1baf6dd991aab3285e8a5620cd1049634f8968f471cea2a3e4105508d934b82002e01c3f1685122404d2bc6e5c5ea7bdf3a9fcdfe7ff32bb8de268e5ab33a696c6fcdba17d6f61ea61498d6be287fe10311a87f0f1ff6a19575c110827c4d8749015ef0d6023c08d741ce148f1f41678772a20b2fa378c1ef76ebbe620d819338d49f3720fa81eac90cae260a2ac259e30afb44ccb9f9f41b3332b2a76387a219b6bf74ab3f442159f06f773810eb4b4393b88203668fe868ea22df2612c0a0ee0a98204e02d084590bb933216817dda6a16c105fbd744308a5a34b0dc330b1729c60797c37d6f7608fae3663eec1678ffca433365728e161afb813b21f6de49edb17ec449b5c50b60e4c3fd344d5ef3f656b95438eaf6f771f202082381ada3eb3ca272aa78c967c5713498f85861756ba8763b259ca113558a5a084a277b824cb3e0c766e78dc49b7b0f3d625083277f560e5bd3cdb839acba6c917d749189071c798874f568a5b45158f5fa6546de1230fdad800b37d2f1e47f38dfec2e06bd2621d6db76af36f8d0af4a9ed1bab0b0271aae5aba12a869480edccbbe9d6c7178831db1e0f4bd6ce79a20599264dec297ceeaf6a74929ae7490f9c9262cc1fde481b8f40dd17428ca80679e7effa6a9fca904f490968ebf40ef25659c8b6d25610178e428326405b49fc4e59a9f26824c71031c9dd70538e5d32fe6495b61c923ed3ee48ffe907100741de9556edd94417f4ff02459fb5bb63c1bcf11b86617019e5d4a2f8992784d91874656de1fc463e0ed4377d39decd6ea3cb9012d6b8c53c328c0f3fc5b200f4fe2258136f64445c3c1037a4d5a46aa9aa208fd5c5aeb99f183379f1156c10a50510864a76113ebbebd74c14d55aabc53ff3f81f72b18bd02ddca2acaa4583460ff5253573466ec4e59f144a4f13a3def5831e8935ac4893f18a581b0dc3f3a17f427796021fee28cf972158ed8e039aa2f21b5ce7f91d681b5181fa431964b25b0d7fea64e8217d5db3ebfdc9beadb825e5cc73fed692f16a1c4be6eef598365552f44074b70e7d59fc3c697964f0c00549ded7a99417ddd03430b95f3f6af88e1c0cf1d501bb0eddd6f9016aec2c95da968dfb38838376f96c3cae8b0206707a70741bda6ecac4f4ce1ef8e90a6a85ea5885a3e5e78a287065cff6160e1853263ddf5f22bf905f3959391ef2ded811518346e38a74f2a54b96d398b00beb0bd0a71c795a8d1075383a29662c6f09e70cb4211a9c152e6b46adeee0e1b2fccafced37b93238eb09b7ae137b625f0a96e6bbe0933968282a3795418e44f8276918cd9f09b089187dcbc98cc14b63d097a813d87708f873b156fcbf25c1dc93f3d05022ddd2bd941979f365e9317636210e28be3e3bbf153c0a54722c5a4c613bd67212fe6ffef41621a2d8fc51c105a398c4e76deea0e08947b108a0f148bbc267815a596bcb402dccc00586a812115f4cc7e53d274274aeabdabc98c10549af03641febbc5e35ee7a10c8682aeeef3890ff9c85cc3230f35af005a6215b1a3b8542bee5169e07376f7aa7893766cd7b6bf0bf73cbbee7d12b3d1f2a3c3fd17f3611bf1ff45b3c3a44315a782f036ba7d17d02129f7291cb3d964e0706dcaf6c4836f311654bbf0fc15cc2a9ebc11e572623fd1a00e923c40000b4b0cb1b7f5d5114e0a0c43599efebbf807997b371b8ada562570a02fc228e978abc5423c427c8573d0de878f893790b2d575cb9a4913a09e575e0231e3507591f39140528ca7d0a161f74ab6193a6f54ea77a3135a63bdbecdb2bc470fdabd0fb5c3b4ba14d0601b4c83f8be2481f02935bbfba0671d30050b6fdddde111b1119f381e009cc18cb6415f3a335806d3003c078d29453b1cc277edf433b28d5baa0a9b11e2b82c27106d12b8d73e0899cea9e95520e0f3cf47912b904ab0263f128e22134ca6950c64eb576697f48a6929054b655db73ade2633f42724d8b82964441fb407a02c91533ea143e0b7e5b625d57719f7a05a63f9385b1cf0fb542bfd82768ec91bfa17d38365b759dab0417432d4d0d1463dd20dde87b9798550a45efab020bd8e024ea930bec54af917c2a58debb550bfbde25fe27ff50038085fbeb824fe2c3b98bb3f435b2620d7c8330d3f482f6bde797dabc00088f539db9ae4e1b71321558254396a01fa7ee4131746fd6d45fb18fe8eb5f25cb6290426e608565b4214c61bf6b386d77bbc814fa25c862deb05af83800c3934933015370b667c619d40679510bb39bbf08e9684d468eec8737e4b84b4a25b7270e5972a96f28a9f959a8504d96d7cdf6cc1c56b818228dff569dfe475e5cc51bd7a274fc98d89c8ff38b25bcf94696346d109d2fd85c1988afca18b78bbc4b654db04f85d8fc2b94f789612b5e63978e2b5097ec54cafe64c7457af4e1ea5003153cac7c73aa07a6a00b7736b3edc39047ef3ee035227ecfdf76de5c5005e91b5447f6fcbda61ed63ec0fff16388cc6d0e43aa207edf08b77efc77ae37364f5536c1b4a7410e605ba6e5c79877007bcbe1f2665d1e4493a89c6674c3dd4d26620cdf27cff00850513288cea85d2df64a130c881fca2c0732da7dfef0acf557bcb7275a880de24fd699a430f757b69228fb1f3575712fcdf1fd2e9abfc6ff78a56b116149a7447503f49967774004b20f0d1cb6132021e3ba57aa1c3ab4637ea920b95b348842e18087d20bed6d6839c2c7babbd746c123d61ca68eedbee9d04ed638e2e22f15ef93a0027168fbbeb1fd81867f59e6f017e78c91f81c2fbfa7d9be2c255c05c947c0672cdc1f51e8c1f00519d1dc3e1368ae5dd0048bb01cbcec8ee65ed06959fa65fafb53f00d8c60d593d4f9272164a9983bc6666b929ae27e7d8b92aa4aa47bdcdc726633a41e84c6bd89042db7f89337156586b0c2ff1a58ff73378a0ea8b6d1cb27022596bb7372080fb3b7f69cfe4f49534825ed6ad2b11bb5b5e1cbbc072450a8094d27581a52aa90eba59329a69d4efebacd26d6c32d7d5c241937b3192fe97205188e2a2cf1676edc4c5708d70058b356f696be5a75c9317240444667480caf581f9ea0b4a1e8c4d1357237c82a8c0355209ec6891979d5611d112042c01b5df984564b938937992e47d6cd9cad500b62b8d986d4b22614feb93635708513c2fcbbccc784c8558e3b1ed10c7370ea4edfb15b65fd171c2a6f44e6ae4b66d3a839fe70f60290568fc05704ca2fbd164967415b46342fed39814c3dbc862726ae6486e53c56324e91625143b5e8b4917dc1243bea9f6cbc55c4a5aeab5b4946e261905a20ea7012a966dbcc75fbf510fbb3f3d98d21a058b7429400ddf823324db2c9cc89ec9f33b3a0650e7b63c9583860e02adeb410001dbaf4f19f06113a145bb7070365abcb8a5f32be2775781adb00e6de5109c30140fea98fba4db3a598c5d30f7d468f37a3ff53c20244fad4b53c35862241e9cdf94e41f51f88040554e69a9921451a0518c4dde47389d568857da31d397b0cfaada243d426499d9e7865e4e6a584531b1a52c9ded76877491183aed3c18bc1624e3375725e9887f759f3c2e97ec2f66c9dc501579fd4c3bc5901f0ab413331d40bbe8bfe4f5c8a56186efc1f9b1d9026c9518d68e910d37a79c9c14651a72ea99b25aa760424a1c8ee6563c835e040c1ec4a212a0acee487e2957608908b50d3c68b05aff03ff9af80cc4609a8294dd753796e2b01f585afd4ee377f0579eead7d6fda9dc1b1236881160461e91b13157e337e6e38867ff269b4984696837dcff8ba2b5470939863763380df4374399f536b3c00abc4abcb7826ebe6280af46eb36854be82390abd82bb02a0846c52b5f8ef9a806775d9b08dd7b372e2d8b7181286f766a4846b5ec143e3feab20928e947bd542f32bdaaa1e92917aa5b15661b185efc80592b4ff0816e9c17d88db04b94be99ee3eec92c7299ae979485a3dccda4b26032abe06aff8c45d4595bcd9c2131c6356e96891dee38ad7e67c71f32e9b1cc93a195354a334245d5f1385bffc29a52598dcab17dafd28914a4b342985d4d9b1ccd0fbcbe23a502708ab19095af549d86eae13df2de0a7176ab8c39c319d52054f0e4bb58ab600598159ee25ab7075262ee755cf8946fa3a90f21ac6b5a0a9ed56213a34d4823f10dc5f16b6fce1dcbe136779ad55b28c6550f74b28e1f630218748a98072b80745ad0fe60afd28e275e27304fc8a3f0d2daa9dbe028744096847093f754b2221646ba6d6886080b64cf59afca172fb41a450395d25eefddc2fdce38188ae5a3969b5fbea39ffdd40328502b1ff83e1b9fb8f4fcbd3eab72fea5aaf9486e9f5889bbe16388ca3a8e274e5ceab096311d581e12b4e0bcdad581da26687a9207226350525552c58bba53c3c500caf32f46d609a08c2d73ef279aaa21c78d6549c1985a8a6179ea38c2836d842649df07ca19afd97dcacf201dbdbd068c40ed5fc83a228d8fc409291ab98e7e7b7ac6211baffe7e2124f05ad44dad7c34b72d175e3d4ddfe473d1b3c6eb45ead97835653a25901fda18fc11f964a6074da57a11389dc0572ad26241d797e8eb05728b1a9719c27aefccb23d04b62806227aa463b6969c9405d6d27c53de323fecbe4e317a60eed228b23df6ea024a70aeb69ea6299d2c7419ec370793a70ec82866303ed037a789124d41a5d9b007f0974dd0a201c26c773aba1a9c7620bdd97cd6b9253f62549281180c771343c6be84b61d9766a2a5cf948273793c92a66d4315699bcfec4cb1b2e8febb3eff7bb3d87bd900d905902276e07a8b6d2f263bbc73ad363cc26f02b5c123e89e36718fcb4f97c3e651044335ddcf930893e6a89d07e8bc6a3c5365eef94d7312f1903ca07ca25460db077eb1cdfa94e92101aa452c2fd91cbe00f7072211bf7f14d3d8c5bf158dc6359e2ed3ff754296df335ad437b77f69ee957e8388a9dfcaef6521819667a05cef193d722be7da3b097c039a25079417d48f46ef505080f92c0f949b30d556ea1b4e364e9a03040886f1cd3ac93083175c3b4f60c69ed1269199a2a38dad26b7cd1410cbd4987f1a5093a4d81adc28d7a0cdf34174a6eb008aee2fb49acdbdf41feb53143ed0fbda1d752e22f6012cb86f27afd5d856cf2324187093d0d7e22942ed5ff604c8c9a3aaae0b4ddaf9eed2605ec84b69cc09deed743a773067cad190f8ad374d177b03ce5dcf49a7f250e09967058c880bfbf87ac9f8be96e86b94c6d2caadcb00f163822bb4670e25151468579bf993b7ae809b7f25eb2f06a61bdc8bd500dd928ddd9ed61ff74541d69bf4087a6576363e350130802236fd69bc086cd074614dabfa50b1cd1b209be7344b1f7bde3049a6679f94b2fd20845ffd94be53a36b845cf27f94c42418423f51a71714425eb0e1a6fe17598e90c5f1573c0029c0980c87e16235e013b8e5c79b6975d889189a94b6c852cac62b3a4a3a5d382006accf95430bb9446b78ab00aa77cedf8bd6153afea39eed20144f8d29208b301c8333b168e2edd0f6f5bd970fc9a9607b838e105bb36213321bd14b27abd023eeb67f6d1d6cb1b6ee91d7ea001820bd1b1015ec643ae67d8b8abe338a78f684ce85b8970c18911455826f8dd037a47c0beec90e545c81a0cea9cc733473121f9100e02be782f820357df2896a44952e84aec41b619fef6db6062071576a1e03b326b4e7048552ec85bb04bd71c6945a2912c22d2c50937b47ba914effdc9c8ef9da6ec73d256aa418a1b086e25dbe3da54b5a1b87b446cb83c10cc33f62d3e235440941ae471964090744c6d41f63075a4832fae6f79807a05f8a418a7c34c668ed4cf2153d88d82408b23f9017b380adac112777a02ee9e3077501db5f711597ad0c2a74e56c4753ccfe0e6854fa3eb895ff404afbb500a6456177e57f9c128b00e94aed6892bfafbce99266fd00d5574ff318a58fce725d20e3611c55e55700560a2c0348e78bf8f4afdf2b2e641b6f021841e57a0cc2d8f4dc7e84e8f8f682cb974bb3531c89acc6dbafde2180bfd97cb9348d20f7f13122fac4878f1c63a412f9b85393ff22d02060e19e92c43ec0c709a874cc6c3edbb29a65f5555361a4e3091a55565ebda0df04530c761c3a07115e0a3bc393bfad08d1f65ee131d844f7c112def2725be109681cae451d1e1d6ca02d5430f4fd88f340443fd4102cc1eabc4083fa9eba2c58cbfa986b2a765019856e5af990370e0ce97a48d3970c8b604b54ef17f228ef536b5dd8f470b67f95f77796d332cf2f51f3a94648878d40e6ea43427b55099f20135d3dd307e7c5d150830919ede95a7dc8094cbe9061f6954bc402b7045d626c6e5408227167320204be74193237b7aeb58b4f87c70c56458c2517b0d26c03aa2979be309f4b570fd4213ca4519637abdf4889c33e88ce8f562e885e84b0553f571823404b061dd63d0cb57f27b08ef3ecfe1a3f5d3b7c26260c3ec0568ad06fd35178b03edc4e53e025486d59385025ac57b35a8bef1c56772df8f3e9f008ddd7170c00f5c8adbb79d72ad111462506844f3f752f8f09a6d30be19e880c1cef9ad9116ffbad58323379e848b8610b702a7522a2ec3deac8e4f90833c7337daa562d468894e59076d836c2ae6adb85d69112f206034c86afc7aa317a9747ea1ca45a55a4c701acde724bc2bb17f83a09daaac6c3a1ec2628b96d4484be71bb49e190035158b54f2455ace98cc0d7fe4d6c896a0a95eab2a31162ffc2899b22cef0917fa47ce1cdd42b818eaa3c07e460c2fd6adff034a30914ee5cf9057ffb19ddb4216aab4ceb351de719bc90a0727f7b147383f35d607a207edcabcb2a3759418139644024da7dc0ea5b7ccdcf1e8921241eef853057c4be619861f68709687c9d60c5b96c5e689a9866e66adb6144ccbd7e5193644f03a4ab2da3e011dc3ae0e838f61c340fa0598aa494389f50f7d6be50d998522e9620c35e9ff8986333276ae6c96f34da13b277cc36281d64f647957e66b2d47b35060510a7254460434a5170030fed9dd1e5d156301b88b2aec8616d9f5272503668413872b96c05699aecf7c10b3b1e1361383bf6526f19fb133ddf4269b2ffd267e56330649ffaeb02dbc613c2a927206aae65156ec8c63e38ae5afeac19cd4071b7187e79029a9041da4d033261aee310279f0789e9d1d3b853dc6c5f5d5f8220c05b3f1c69ff38c354cecd536e9bcfb42e32cbbd8dcf80aa7629528eb81eca61176e83b996e6a59d2955710bb4df930925a6b38aa5df31681aad7f28751b160b3736a5e2d5710348a71ee7f7c99cc954869ccc9e090199de40f33cf7ac5e0ad83edb3fff8028f32d92b95cfa5733d090047dc9c5639dc6641b22f7b2c1a2278abe784b9af828e1bdb8bfc6aebe1c8039563330dacca5fa2ceb68455adf8c3a283dfb39bb83c5382fbcd7e23ee1828a95b5d3c984673a5f31f221a14fd51e5282a05a3792580e2f38514d9c95a20258299523ab0e7500c918d22051b61c4d391b394380d77264ff68e23d39b03e225a3dc801e67c144ee842f4dadd92cc4f248de1bb7a9b8a6d7bd71c75f430cd76951f9af6d881e44570f01d0fed9fb5bb96f76fc1eb88f4d5fdcc326ab258e98e7b8cf50e2344f1ae180a0ea926d7ffa29029928e7309a54cc84aa26a89ad0719bd29f77a84228bacfd540dca83928a56c3cd900544b37044f302630077a5a7358e1a6ea6a79b6626b94ffd81c15849b2a18c281bc191f22a8cb04c04f285d29098c6a40d84ada527d6f984b198c5e5c1d9cc40d37bc080057676b784f4da9c8b0a45c9222e2d2c8836dfcd53cdd9582d1d499d35eb6eb289d3f12252953809a91cc273349411e51907405c88b8913d8e385078106b808a1280b868095a1cc5e07dff7c1c46871335aec1c1e9be562e4d959cc0687dd6232587c1698ff299f7be9410d8bf834ad8f99bea3d584e17cf6ef97bffd9ef21793595584698af533f6077a264be88195bd4a1e43a660013a763e6dcb95acd2db384413fdad93f8b47b6d03a3bed994f40df71416e4600c729eff4103d38b37247c141d0347472113189e6242c5cb4ec1d4a68da7c6abdbd17ae7dc4602f68d6868ce6758b90454218fc5e61646a3b2f7d257be009bbe3f18d361d2f2001b709111019f8a79f92bb2dcbe904ba4fe8abbb27f252d4b74fd9e79eb5dfadea924267537ae9b0f26b7832c3f6351a3924b31f8c79686da6d7de7b13c63ec4aac2d55141aef6eb5d66dfc58d81d55325be49d49247699267b87728780293ee2bc20c12d6a01c80d4eb6a3c0ede0ba771fec9a22cd60d73c26be1f3e7f61b4c61d7dcceb7fba2727acc726ad0840b3a1268068b3734bf7ae54db4b3e40c6000bab05a5ef002b1f1284c6350d6075d4f1e8e0b192507fef82e14e2ae250fdf8bd5b6421854d2cdb5cd145e487405d55e5e022e44fea9b8079c58d034d46200fc7a0e29d8678204b08ea016b6f28790bb247873017fe83c88debdca1727ecdf8cf804aca12fb9029df51a4100a64dfcf284978238c96c8439d4980a540503992481bbd0096a092cb648f9c6dc493ef0d381b96e6b80dba4c48ac21d80603fb912654576ecf405c5f12fbbd3c55e9a636b78e58552fb2ca83b9cdbed91882609b4b7f69f185f344de37f2ae614232afe848cb33976e66c9178a20088c54b3bec69840c711950ad2d2073313bcb7e72eeb567f9d1218cc6136f41ba15d91aedbc6a87e0bea6d05cb3f257f2f7c3798b02edbca79d5f5568521682b22c540b29cfd93d8cdc0ac5f8385125fc84972b1afaa7e60671680d54d4dd6bd312c4640c104b488137dbd5e50492961ee3653896c262fd99f94653aa97b050a07ea30a4cbc291983c4bc4974497a63cf7bb4c294812c69206dcbc7ff65c1bdf0a9508177c85f10aee3e5ffb95a7560d18a27ad9d9eebe1990452f2d1ca126a281e55db6d2349fd615f19ec1620d53cbf87c0af5f57729ee95a0923c6b109be9061be4d9bfee05175403028302f4649b6fcd8ac284e0e792bcaeeca7de41bab46f2367084d95007ac243ad25e1be4d5cad7f68ae20b354759f745f6da855060d00d26ccc9efd6d95498e59caacdc725cf533cfdb531f8f6b0a5c8e96a6e118c7995f43c4ea18d41fa7a298c8dd8a2ff01c0f31d2ef32bf3911c5c5522cb80fa2c266bebd2e22c580419228346e3e425f831c60ac9e8b8537f30fe2b5653e0309e9bcd8075c3ec12cb2829a7edfd2d6e3104563903ab60df05b1db8c037449d93c5fbf27d36c0c3d8c2b9510bf89df6680e332a23146431f42b01b1b039b9c0713c89980d28809dec40dec9ee39742aceec481fc5eb52798880bba6afd36eaafd24732afd1d8aafc324ccdf00aeed402044592156a9d712f03d4379e3a8b31a11a38f2647eb9bd16ae7f8d8592703ebcfe1f93142500fbcc85e6e2634e702fe5b6007e7ae554dd88f83af8fb6041ae8b20a681bc9f4a9db78f1ad04ccf60bdc27f83adeaa476cb90d41c842f114ab3708e94ed6450b593a7c0d817739ccdbb5d37282cbc4b3608b66fbb4c0d9e7b2e4106d729cefb4b64a89efba27bacda1df09aa6593ab7034ad06c1382a406ed802c2e021e180642a0719a26c609d9bb42d5998b8259a0511faa52fd37af9dcd93ae2ba2c22105bc5bf2ce2c2889b7d4f19a9e2bd6e8567564f4ba0cbd237665e8ba90606fc9786365918ff863d3962454c51afa9220874f9674c59877bed9b087469c0175dc249160730170db0e6a732762a547870bb4578617f1ef2db224e0ede99ea226c6a8036e8d66264143f35ebfa92a4bfd0af88b08d2f7638b0d5ca7174fa64b929999e93c34e4359b0319fc16414969256c1edb57010abc671e3f19a38e6b56aa0c7265a76022b8eb8ebeaec5f04b4b67aded448a0a69f80ce0db9cc59726983184f413bbb94ea9eeaea89c069281dbd874a83b2289430f7f79f582c0aa8636909d05f0d3e38cbe7bb791e99bf793e80d379229c838dda22cc6d4842adcf9dee7b0dd58f786dadc1338e3cd8da45ab5ad9f4af96c7746a5ee90f4319408a7be38325ba9693780dceb569a39c65d6b8c994b2d5f11a83550edcdc129cd9f75431802295a8da43b29067bd6474bb22d65fa65653802834024c362b3a4ca42516ecb149c08e2869bd75ad808f6b24ce2b6ee1da90dfcd2da22f7073844e8620e1f93fcf465a8b9dab1aaac568cdd41241a004253a2cef8fa69ff0f2d7cd0238e9dd1c99f8dd74c2b2fd578f722145bf1507f44bfca596c0620396f42ab80432b0d8de3835948a1588765c95a6c6f9cb908373e354ab3d4963ea36a82bf52220db4e9c50b0d1c345cd0ea067e89d739535b76ec9139d285f79fe6da1e804c889246e3d45859ff9ec33bff8834e7323390ecdee453178c11f42da916203af80a0ea956a232f017986ae36df462f74d13b278012bb70d4b9b46ee2e5b8608e5dd3fc49cab82cc89db1b1580d8bba3f6ecbf3fc1a1e2bd099c086f7351bdfb2a85560cd35c1153aba46ef27dd7e323c3209a85eed6f3e410d214193ff3e0a5f458992b01562a9cd236676868d62c9a1cae178d40f0493328a931dbacf46ad783986326eeb004add0595a827591cd969fa9247df0724e1ab1f6590d2c855177dc77a9165950ad21036a262e83608c6b13452ac19e965aacc2610bb1d90977d3f0701770044fe5833423d07ebe80f811e106c7eef284e2d336725fb566d241daebcaea2fc4cc5e56a96e9a29996d3d34f5a4071d1dac34d1ea712d07e91ba05f6fbeb3ae0e759bbe5e9847e40a7ef44011795efadda38c61f43f90e2b77f60308fa6cf89dc41808604d6fce7c81c3b3838ec1a2a202b156317c1529af15ca2f3031b03b5338298181346391ab941002e0c63488283ec323a778c1f0b97fdba022af40784e62949e66fa6eba1b0c0cd0d5ecdc7ac2bfa64bd60f5fc2e649e5e4410f910832654b1708dfa210018bb42d263bfa8cedab338a7e2d8b5ead0a2d4b1ee75632bef89bb5a4a64a307cbddcfff2b121256f9f9044e4b4e04c2bcf862f97a563d927f860dbd91accb40c6b8503fc21d5f1e806f7be2c8abf4b8bd5aff0dfcd2d59f995de78ffebddacfb0767b2b74a64e85af5c994ea1b8da6a5f3b25ecb02c9a8d02cb43b11e9f3edf3fe2d1f29e45a5e1db692adf02c4313099786647f86e663514ae2d7b8d564af1d6fcc4649ce0864a8d604f53ceae9fd097d404bd2cacb0db28df304dbaccae3259a0d8834db9f99e1e6103fa6a530aca3a29d334a57514072151d62af063873fa0a73c5177f73d4439c1c59181895f85d8da8a9885bfd0359a557b8bb8c121c98173a16b2eb0ab1c20fc33ac61c90e6a111295d913dd1a51045d8916bbc362dc4215802a3185607da0e6e91a6dcc0c13b71244b78cc426562ad845e76b4e8cca9f2d444193826ca2cab8dff70e85a059ba6e4dbdff2fddc30d4fee5a458c5c5f151e8389be8ecbeb8b2a5e25f46098989550bf0b1c8132592567366f27db34e6a11dce68fabb0324bce624e054dec0a144101c24f6b17d1a95d347fce8379fbc493e957c8443cd0e9b1cc8e28e44b1b2f3ae793837daee4064ff13b4a30299f5ae54d26e9e9385df93f3bafe548befb5457d129d4d1873f216656886b74c73cc52a76a4f238a83290f7c329578e80bbfb4d7f19135c1f97eda27b46fa1ca02340e0b3443f44c25a500e89ceb49cc0236576fb39f397223b9061f731d9d39b40e0b4e4e5123301439e589432c263c72163c841edaea4a1d74d74466949fa99764811448ebcd1f352836bc14e657480837f139234482d6c51abca9632365a532dcacb0b5749f7734944dc0c7a850caf3541744364e1ae2a810b092ef9fe87c1463dbcc331b6a4bc01233f5d90747d272e0fa3c16e92f466c3e73d78ecd344a979f131932eff363d1f741a17bdc9b98adbd14da94dd4e6f2a5782863da58d8833ee29ef3ef038899aec8b6a3f11e45363c5263888a465a145fd05881622586f40ee78b084808307c3218537f70b66a98b3f16875cb2262bbacf8e15359202fb49fd1f8a060fba0b608cbd7384a7a1f143d01542bee6955579f4c0d18e995b3f69b0d1240c6859d0e3d054e87623836d6d0f3997c4bb331267317832ad8479d8d1461c8f1bcaba5ae0f3d2950cbb706a70467ecb422099f33ab378f9c504b968f3fba52851cced9a865a7ce99a0c3e8d4198663162b165780a0107551cacfe000e03d427c6a73763f035f2b131cb49885f5638ad27940223bab57b2861755444356e77af13ab2b700394dea5c41406da03807006c641666413d84bc4246e4c350d15b367da40ab1e4f0d1285188cc826c47a68a179b6e1cfb388b3d85945291b6b829f4272b476dec4e8ca7957de74a10b9cbc9a0d8215ab10ede8931664f45a539967ce933f5022cbadbdaa1e320acadcb0109d34268bfca9c673acfad1c84bb36989be690f89b8066266a23930034e5e2d036861f3de28cf04c80a1b8e351e184026eea735961c946d3aed5ae82e73f0ba213ea162b88dd241b7c7497494b44646b2d90e5244e34d3960b7584238a56204c72bf2f299a928ad6752cf93c778b8d4a054611d2cbbb66569458ed8f6586b5e002f552299c86151ea6de8a06a1d4eec0086095b76216628e1fe409756ec7da143321cc093e531747f8488aee32903d919f303350aff931f9d293d0ef804db714404aa475d518e6a0f54240311730eef3cec07117827c81371f39f3a86f695ffb1735fb2838202f1060b5f3fa629a0cdb8b1f2ff2b16f21b6d0d947683d713b63a680536bab671a99375432422a19568caad2563fa7331ef226547e43834692c9a515d214a32c8e91b8c083c44ffab03ed03c5172badd8b641c68e2e62182adb705bf1b2125d0031906a0d2d0ecdb8481e4418671471f42c852d889f38b3d8c24ab006cec27ef9db052c1cd741331d186720e5f1ce14143a6d63563ebef5a87e8c6f21c23a11d1b4cdb7e7aaa8f41949ff04c256c59823606c9484bbf372f44309fb648ab5a502f3fd9b11ae9e991a0344ad4968dec3a0a393476d862f08fa045030b399688dd642cd277f70d122c52492be37f39fd6a085796f42292ac7c88688949d36b423f0c45dfb74f8a6dd606f6fb3a6dc3ebe75e6587cc0f36b8f3714cc4d14af1497f5fdd19a3067cfb2df50fd3b56dd10e87b507bf3024e41c3cd6743ee1b8cfa4c38ed11764898176e8db01dc9d452c4af034b9bd90858fa2872373692fb200a4425c57be39d9d44ba4930805bf19eb17ae453579436e47847a2c648c818cf13ad9771683430f09efc19c268a9928335c90800c343121f7a7964b06c9401d8f7fae8541356fdb77a4c866f8c341a521d9c3df4cc1d7ad7fd9243121e1935837f0c3d303d8f6f89b2021ea44c5343ec814725c0057d43f4ea061587d3d903f03cd564a1ec103c55dcab409771a58186fb0d4b75e8d2ddb662b856a391d86c54d57612336c5b81d613887272407b6cb8d613210dbb216b7934b70a6d1b7a28b519cf97492533e56986f4358a66447df57590b341e89ee10b83b0e233d99ffc3fcabd84a6aa44653714191c07edb9302d78377e4c622f8bf48be770130e6cbd04d2b25a6c409586d4009cabc11c24c20106e657a185a0a1bbc067d8751b599a8c8830db674a50df566cc014db224b21243a3627970406c2653b0c42920e9893d5a8af7d89258358395eb54e9cfc223b27ab6bfd460473fde39aaed4dd1055e550bde84019a10656a592ebc09dcc453f77ad9ec625543d126bf91190afd4ff21bb27b216ab5ae7d75ae4ef250ab262fb8ccc5ca579a03914530528c9a76fb66bc41e56c0b8d868f0b58571f532c2512efc0906d9491135b5bed1ef0f11579b1a3267157160b687b4533ad8ad5ee1ff70beb867b4f99310d7d60e75c6233312afc8ee6f9ad796cc9ab53a1d40e763316833e56adbc8892940ba37799e3690741791a1c85074885aeac96ef06b1e7f0542eaa85bcbac57e3a7c568cb4980d5bd2f15f2105823fe360e1d42e302918c483113741a9af27b8be5670fea1321d6d29001307b66429f56f81ff0ac03afe1860b4f1c395c16ce2a4eaced98a233d953a7d7d30ab3b3583022640eb2f9882064bd99a46daa060af209b06e38ef3632530d0eec4050487788206fa1ab51abc97c517706e70895dcb028aec413fee8b9298776c160d063a3ad64e64f15f836deccdc6818a69745e05c9063a0c568fdeec344036ee0cb41d215f7ef8c225094b5bfea26a554c3b307f883722058e74c26047ac313ab05a619f733c4ebde53618f7e97a333089a2cea541943a805b60562b4c1949197e92a22d8aa52f44488f8b02e10c37ebc2043835f46b5cb01db934ce7e7222d8af5c3d9f97063a47792c8f4760d6bb87ea6444db2c06a979176c805e2cf4eaed781b9cb91bc01f468aacf1ae35fc3720cdc35ddbe32fed36e974c7e2ffd350ac3b1b56d564c9151cc310f7fb84078e8ad627c452c5f237f213914accb7eac2e5f28616a0f77dcf524cfca415b30498e582bf76dd67b13e932b4084547c3969b3503f4ad85904cbf6ccef3b5ab30733c9daba1bf38d3b7a97a6990cd699e1147ac5b273c9a8cf2716232e480e2e6fafd0c80b61af16b492eab4f57c8fa2ba9ddf9b07d7eb9c9e087fdd3c30975d1072aaefd5eb69ae962d3e80eecae0dd2d7511380912f26ad28798eebd4c568c2e65f498ffc395768f842aa8ad0fced5670113e0cd76001316302527eb52a5c6d1d59691a998081f3308aea31ccb0f66a6f5343d869dad1163aa6cbd306a8f87e4e27a00786478f8878371e503ed79b14b0e992cd0484a923630a5e6736fe0061327b3fd98c11c8736142fd836c2026421229c6bb8d3b16b53b648c5efc9634bc72303bff2de9c17da25a9347d3e773a04e9f74781117d83692166473469fcfc02230843cd00512f6c0b3f941e6eeb6aa242fdd2422ebaf310bc12f663a5152bf66049de3391fb195555deae16b91e4e7dcd3a8a4ef23182c53c54462f2e2238f3190437859883410fde92a178c34941eb0bbe212b5311e32265ed8116150bde31f7ec9922e97e6bff31f7579a05c8dc7d8104a1959978481615b226a9e20db3c05dcae121adda89fbbaf380461f2d062c306495ed935d99dfa34ea3ee140d1cbd68d7a4137ea8feaf254cda99989e8ec9da24873fde4e8555b24d0d3a430b6f53bb30796f7bebaa76378832a205d359e3ecfb4ee4ea9812f0ac720b245623e804c36cdf4beace478751afefc6344a877a298c8ca0e80f5bc0626005215e3f3c18b9146b15527435a9f583f0dd3602ae5d02c93a74aac694ae354105153444d5d0127c0c0f90124d98de154e46d1406903507b775993fcb110254f9c4614563a18b951406fcf338e00689bbf1470bf847b14e9cba0a2b2ceda54223af9185c41de2cd88542dcbe2e5e31449a8260cfb0303834dc515b35045a653ec700c89cc7861ad0339912a7372ac9dadb3a42466e6f90b8af6acbab8a86f46417b6db454f255555220461611a412d3ffbb877d717edd73415a6c3f929f1656bb06bc034a48838389e15a8007f449e1c4d89843be0c92af2d2f80ec8d878578d78501002641a3a3a69e34916b62b58d44c059306a54079fac0f32563256e94ff1feed84e642cb1cc147c18dd29a2825c940f2abdc9674d968602caf62d808a7bd0f666160f3e0b7513d3cc16f668d0b17d1f619ec48bdcc73b7e3932b2072d50ccb305c5ee1f29009462f23560bea58433366d05111e6039880ef872af63d98ef88b4f568a8ffb25f2c0b0d0ab9618f926307a10d66cae0fc6779cd6d2cb8b81ab671b36f4a50609305330f209205bd25c7ca8f7d4abb6df51350e9b3094d0a4d7ef8d0ed5c39740b2023cc46a1bd21d23fd5b92b1d9f8bcec3522eb22ed41e5cf7eb7d13e1da424745369a576e8b7fe82863c96ada7421fcb59afaac1f845744e4e8bdf5bc12276ec76cf86159f081f6c9f2278b3efc3aa77ead96a3661a627cff12a6e3f264942907ef3f497d9b9b6fe85ee2790b898ac15f98b1661824862ee67cb928f98a936ba612c3c81e5f829ac10756abfac3ae7dba584a181adddc866d1b5346888201b820dafdd0af621f4a6ac8480d470681076bba50f1e327c8776432ca3e5d6c42179d27abd5073e6aa7e525a5e4492ff6ba709c5a5e76023e5f94762ae10bb2b8fce0f3a801ebab43dd8e122410c9562b838d788fffa0e77f9c83f0928132a503680148753f05f047baa3669dbd7d30c5c1e08b2b2d376ec7df7fbeb9da764736f511c100bb85e2234ec039aea81c3f7d0d3d94508cfbbd63547f21a407161b1459cdb0d42c3de212c886d3222148c709887f3e99dd9f7064e72ddf621bebfa9161064e90b9ebdec699b5684e45a641d08e453b9baa6d0a69b79c1668d30a70f2a4ab584bfe6109d290eaf5735dd1a8f265861954efad4e47eff783352a7711460683bcc8c8c7d8f9346884919824e4dc6b57d68c58d6e1ee182f1dd8626b4799817b6dd18425c72fa04c60e1a7730962e449de074e5e78888540293378187590aa77479b948667b2c68168b258096f947c0d0ee0278ca15afc1f2a059928a7ff34d171945864e7a6f5e7317e253be3c28ba7fde08e3981858060242082e1caf91dbfc7d022d5de39ffa7101424fc48f20d8e962c31623ec54ec54f02502f89ecc527fe6274832602b9b403ffe24b75999647564763c2a644859407ad0269a835b2814e804a8d76245259385e100afd8321e272bf134bfabb1da606df98e1c695f8f72ae521925c9a5fcaf4039c8b3f63dcb82ae3352aebf7ac52bbedcefe9b8c21be3a439a113110199989468b86d366f2f90434317a245f9b4615ca5878c73a8e190f7a56c6e7989a34c1c20ff4f8fbaa210878c446ce684a703ae926a03f39c0fd4712aa71aa2cb4414833460d9e40dc9f7725011e071d49c5c4dd5df81b0c81e84c27a6b05c4fc5488f60bd89e80d8e85c0c6042bc8e4e45aeb45093aacecb50ca2c406557ea0c6470c2948bd857cd29b1c0a97d6f7a631c9c331921383f461426fb48d101f10a78bed6ab88859f6007744d1c163d99306b06ba9a2434d461589671a9534d5715160c20857e235addbc113247324f314e74f6eb52954815f1356cbdb9426dcd66a3f04642c325110d814bd6302f462971d7c883b665fe01e99e24ae5cdf9e6fdf253652ecbbd19b2c26a4f8bb19c60c6b108ae663f89a1bbbef98f6504d47c1cf4554d543a813a1ecdb86ff686c2b61f08abca68eed858a913cfefa9835395a23d5da62a1679dfd1c198af4415aabed638f82c62bbb8a0bed579a34bfd9d7e320269bf4cced496baab420da2ac2312793126911dc196d0c99b700ee2acc6827a84d010ef8eb2656542727ffd4ceee548b71200520998cd436c3c5da8bac3cb5168750982930198ad7ccf71737ac1735e3b8e81f44985deccaade5d7f09acab927abf06e132731cac1db18364a5a2b687bbaac518824de431e61f26c56056631b8521144fc9d96a3e70f9433549a0c1f1224292456c0ca29e4032f738876558302d42bde9c4c3b9fd296be36e943989404d80414068402dfc24161d12d8a0d567b5ff4d1dafe1265d7afbf6d439bbdf9ad458350febf08a5715bab33895cd12de4311a044f5e89682d052b250354c1e286f14479cd36857a5613a193e67006eb2a3e42a6c2855d11c84bf8c3a7637655440d7a20852570800dea26e66e8ca4f684089e3ae029f195b06a2afbdc46599288929239dfb92deeb5b673d63869f77c8ba9e4a9341999c868cc6a2a7b12768bc7fc48605e54e5d98ddbeac70bdb225d1d513268f39f06103b3ca2f6443b2c25a75c2b628761ae3a0aa03dbe241b45c3d519888c14b4b52ae9fad0021cb2e314f7c4ee38a50fc12dade3781ec900128325daf51396e3941de422dc2d1e5134865d4d11f3ffeb3b525453c083207d178e437fc2800b0c24b1cc7497765acae82509f4538842ec56390c07a454715a1f1c5068b2b660926aaf94830bd3dc6a67cdedd61ae8db10013e518fdb99fd1a25ba230b05ff2815728558deeb726d9fce9916066e690bfe48eb75aeb1b635037324924b27bd2a0803f5164f707bf631a5b0025b4935e0b981b6d7c48137687a490b5528e97d0af8952abdec34bada76649eca887fd4e0a4b593b881901d4c8fddcf51338738b91db0c219c643f21de0924a30e2cb18ed67483e42bb41c731728312c589415e6b1274a0c06eaaf18d8ae01235a02782e019bd17c9989e24196fe3bf5a9310f204d0dcd5fa930d44fb45a2b0ccee4450d536b144ac4796ff16aaeb2a247db6fea3e6abad441b363cf4521ed852368d4fa1a2c638d81441211251c7fd15100f67759edffba7ef115d535839eb5a355956d159ce258a3616c2da8ba42ec0fabb4ee408cad172a2190ca54402a0f740c47e8a7e4172f1446012bdfdd9c3f16188673a48f2a09e42c98967c26ff2f0db44a8cd5240c14809dd0eb6c42a4aae6310e1dc596bae6cdfaa16718a3b8ac5e7a19da13cda9eee6d480a356da60902dcfb744aca3dd49ba8805122ddd154af22e3829fc4ec934aeeb5c2e63c5b35c6be9bca01bd1c19fff51d2e575353af5fa5f7ec6fcaf11db9db2aca89b4d717bd8291a86400fe4deeb05ca754fb8cddd815413f1f0bebe2097aac69bd7cae30aa9242953594d789722d5e558585b6c930388446cbb89b711ebf879155a8b16c59a3c3c1c6d3e810097cc83dafbaff490839f21b7e782d7991c9e5f1eb03a4d881c65ea60137bf29cb11f4e050a6b1d0089b247cac05b173b1908b290076c10856db99c043178480ac4c32617124166bc03a1b73f46277c31bf1cea0a36734295e5fd43137a165812eb29925c945b26e931685b8f79b92c23a47356ea607ff7edda0b82d969183601787934ac2c1f4a13076e99bf6326976be84798ea3ab88e3060f99e38b7617a185e2b44d2a0499590a816eaafb34b511e354b668abe3c4d216df8997d406cdf81a2c2962a19de1b7bfb0ff0c6dc44f517856d6bc76631e79618ebc4d447b065d40d6391d5f04eeab18d3b4bbda227731ce71eadf1615c98eb610ad96113cadd0cad085ab33b89f27a52bbde9f76b02a53b5df55fdd92adbcd7e11adfaff0c56bc5c7aa0fb55034713f1f0a79791010f61b5a887cb37483bb4b14accffe08136f90f7647fd709a7c3a4acc75183438e1a99401907cb9a561ddc8d8e6c29cc22a64ad8ddac801926cc661605b61b1310fdf1c76f0dc05a90a016dd7ea42d16c043fb81d9f596349c788e5a637212e45c916020587b927cb364cceba73c652f0284527b0ba8658e030dec41d0adae82b11c75514c81cf2258d7d336deda7d73c21d65abad1874a9fb4226251977de53296f660dab44aa3a33b1fd5664bee34c78a5858711e921d5c7e685b15b1489801245a16d4d8629909931124b84b83e199f69a22d02d6d58d1f17d8df417b5d8248c21010b837b4fc7318bcfe9ba390eb4237491a010d6fcefbbb9b627fc5231039d0904fe8463ee735a06d4d9eb26ba13a6efd513c45e37fb57bc9da4d29253279467e6c67135b035f64572605d0eda9d08b35ba923efce7d3beba08f5495ba664c380ae55c784e982a6f47c5a913e8c30c8abb9c2f89532f7fa525fa0905ee375ebcfc588afc5fbe3c237fa9d64bbc35e76cb7f5bb68681d171206818374974f453ecf0d5f994986a29b72cb7a53e68b7eb5a63e0d001684a0b126ffaca13e3b80e63fb4a40f221e646b84059bca4d6bed116f65884a3cc3158ba2f3122c4dd82a4e8e4c9aa45a3753fea01e0e54f8cb93cd04ba78f6457b817bba6b8342c6bfde24f3859e22bbf0492145e2bf094551fe590a03acf36942ff4f425554749ab802ec96a7a7394aec2c15917abee56196c1a6edacc58252a8826901a0ceef8d72b13de6664a1c48d9cc701030d731da131d88f8aa5853ce9f063370f837313f8d84a16b25ff04b965d621bb41abec4e87f74ec8e27677acb1ae9f4778f1b66a532545c1a99cf3ef9a690b58a2f6289f528f34b821a0e565a5a7c1752d2c0173b612bb54bbab05ba733b4f886fdcc7881562a847f09a27357a4c09da3000d162a48f4af15b2b323b545aed5df16cc0cfbd5f69b5e01c8d2506479771dcca203e7702ae6c2dd9d307621438266da5fc3a2c10f535171d528eae93ba42a114247ccc59ad173cd12fef14bbf6deb237c07bde39eb45bed54c44b36c3c66c8857c212088d5d0384e6c18fb86e716c264a8bdfea541ddb04039a24098eb469c738b48cccb723059bb29e873c9730585fdd3df68be3c14dfd9f5db18c52001787ac9742149d31985f435ea558507e4e931d4712f5b46a0ac78fdc93767b996cd4996bb4690af21873eac4284b4fbb463273cf942fe23d15599bf289a044adc35929419208af8637e3af752e1c9b3d1a5bfb948df2bf6b992ade8e932a8cb38913825d549d749fbe5a28b49e4eeed27517868150d153da59f6cdf34288c843749fd64bb8c9c9b61b0c03a1fb0e60f3f44c553f876111c03058adb974c617d8034d506103dd50f644f72f2805aeef0dc6f68af61fa892ee85828bb52c9b37bcbbaa6a457435429148ca40cf4e428f985486e1642efe8d68c210ce20e786ffad0518724d978b00999adfc162beb5bd060c622d9e6fdfb0218aa24b309f20f9739d1dc54fc3bb5e55bf3216f567ca5133422d81c4e967af6bd670a4feba5e8a538c2911654cf49426d0b07a92ebf13c0b0a76978b717cde0d13a75fdabf80f5f5abb61682d83260e24ea4eb63647136c484af383bf0d9adb67501f580aeee1bbd4b8f761f4f9c7e33b7f7bba22a683746e8960db1dd8df2380590d840728b1c58920556112fbe52141d72de69e49418dbe7be3f341cc962448eededff2a29c1f6f5ef690fd97ea94ae6c063fec4f8dc027506cc26df9da4af3c9b65721d85f8784057e76564bd2acbff03fd0b11c9504a71047041e6592cdc0038565d210c701770c900a9ffeccabd51d59c2db9581c75825342f5e9ac8a41e5d5dcfe9e0eaf02e2b427a95050b2ec7be4c16b9f14b6a22abfd377de2f7698bc3bec523c5c1e10427ca1f0914863be76cf932ecb665666e1a5df8846c84682d8a61aca942e1cafeda7ea330e162e8869a64569b6f4f1c0ad6893629810917385122673b3d22fa188fab59dd9622b489ed7ca7dd89b09132f4f03955ee9a1547ecdfa76b46fc05888f43bd5ca05226033355cb361b8ce936e37e4ac660770eddfe47795cd6ca771f96d9694e928a8e9563b3b1a32b080322095ae3fe9bc59b4b48ba5f0bba23aa52fa20a2e901cadf961eab2b5566b181558fce9415682396d4f4817413584763cbfa453621d2e43d4facad254416a2ed05862ee665a9184cc9a622cd37a18fc56bf6367e4db55f91bb65ce3b232946125996392e266ce8cd05036482b7ae73f35eef2abd7bc7c200b0f3633934908e4c311a898c24c9b6f0050816cbc6d3236e3e0ec5a25247c9e52766c7af7a39d170ad03e40752e534cfb3e2834b36a5e44b10f3d2889fdf5e52d22341a8161fb4bb2cca9dbce0e3a0025836042396e500aaf37c286710b4ca800447438d68b4061dc4484777a86b0af317318af4b53c563fa51ccc2e96a5202cbe875b50346c971220b297cc3fe30223226c05d1d2e008bc543452734feb5dc6d90416374bc5a8118c40f5a4b85948625b3713f5cc40d331d261e6a80f1b13ca2a8c626cf4ad76267c38872f16da5d45bda3ec20e1cb50fb462da0df0278004820880deb5224e8c5229785be4b5c37c4d9da9edbcbb1bcc7fbf483a6da76b6c58c21f3956cf1af677eca86d6b4a652035286000fc1f986acdc0ea61ac29737e5c03a455a98b8a6c0e81ee094986e5b9bb5228ee700148c8e985951b11b67edd9ee2ddeb93a968b398973a802f34db461ff91ae5e270fa9b1a95c3af30af79d21fbccf72263efa9f66a4f1c8736de8dfba69e1986b64097bfb3da141d91f6bc123c0d8b6ac0e4745bcc5e4ff2c9f3199ce02a537ef01b63cbc8ec150f5734f9a6cfeca13769fb66702bdf06d73838060bd905b2dd3a3e567187412555818dd79902901d08559b4220cd5b552c6690376d85862b8421a9f5a93d61300d49de10f06e5aedfceec5aaf34a6053b2964c0a0e0139b9cd488a1f73b7ffc7b0405510f8de06926afe2e734368f536256502c9b07b3232c0b3f23ad4427936202730709bce6a186512ab39d9473ca17d52011f3829390296e18e95505f968730c7cbb7df05fe9e937d6f247f45b8a3df253d88a9c6e5d1a09ae8ba1674b79b291075ac509c03452010f941fb266f7e62fd527c79c9ecfdc661da1c4473e058a4be2a904c244507c670748bc8a4b64234193b86e54815d9bdb1c7591c298fa10a875dedfb1e026c1295831878773a2e8b894640aa36117e6bed1727aef225f469160a5880425716189480c72c2a95d6623a81268337716b4010ced4af5ede11e48a31d8968f14505561097d0bb11bda2065fb90aa8cf36c6e024ac46410b3fcd54937d4741ce878a337257e7ceeb3567cf11f8cd082256361532f6696cd7081be18d6844c78dd0bf9899c740afec3209dc09ec9e4f0fa9b0e0d46735254a5a2092aa2b1df65b31e2c9040b0645f8a0beb93c0462659f409f1b3106c80bc8e84179467ef838c7562081e2c9a5a887ee755c13fe2a4e748ee02f3dbc7f2c97125722eb4d1912e3994930a0bfaad985d03a329812e97fb5a9594c71a1b451f61207cacdc78537ef75a8e956ceb45d60de2d98edfa314b7485a3950c92a998b43e7b521f7af4c67c8150f4c4c88074456deee0d55ee9fe3d7aff1b4280f2ac344583d15cb29f17dfb39c08986c22f289835e2d397cd1b0ea4c74d543e391045c56beb9489cefb1a0659433e8d6272f11a5a62debba883ed91285ac45f1893fd9d776d7b8fdc6832766d5f9161e264b4f3294eaee74d3adb22a84342d0feb6cd799acff0f024e20fc151b602ca4f7f61c7457ca002513ffe696d711d8f29d6f9f5b0fd357ecaf2ee9dc4f7d139acc2e9d50c611b292361a3a59f560319adc3880f149bc0bb978675a378c2eba4ddd9b8da6b06ccd36bdaa15a9df6912fa02eb5e26ab097183ef5832b5c4881d614f7a565cb21ef904d7782ae2ce514d7ecf3d941fc8cbc2c32ad073e0bf5e8d3f6890b68dd3fa574862ff28ba859819517b76c775540027ac151ab7e06572c05e4a252562c3956a121d8ff9ec927786144e3ff89e17f36c13e529dec6a8caaa327eb1ad8f5f85d362185e35088964924641e9f7215d5fc1e48205656cc5004a96e460a0c249c671a885ffd403a5bde07de0f3a7bf33827848a6c4041d82d908f31f0e5138b8a43044469b40d8fa7a934229791795c2bd6d6c554ba1abe516dbeced67f8c36af6f28dcaf0fb721d1722e2ca545df672211922fdd59484bf1a32f5a5892b1fb4a1a04c920aa585d169e8fe172557cf30e085c33bf1e7cd79a88b1b4805ac5f092c66fada64c7c6d295f6ac12c8e23a49144dca5d11b0bcc10e11d4ef900a64ffe03c4118e1ebe73ac958618bb09dde13e8403388428613cbd0044b6cbd843a68277ed3f660f36d27bdda2e200fa55c4edc742325d7f1a58605e8fffa6021a8d008ea6752ab1e48ce6290a6e411b46e61daa32370841818308ca3e2bd6db030b0baa361134f633011fa5cc38070aa9d3447612cb6c2e29d9990aad2954a06961206deb7b5820eccb49ab810dee5f199243b8603bf878729f2de6e9e368d867e981649d692906e7a63ce03df67d5b93cdffaf75bd14e55674dc187b608d85a8dde6b237dbac5b564aef5713771acaa68ebbf5f1940fede5089e52d26bf0582358a675803601001f0a743f6ca6e908329dcc75ec000306d662db931cd948b031edd54db90117282f325a5434e0456a65b0b1fe01dace1009ab7421d4eea611a66b179fa61e5f2d3b66933a0f410aeb65fa3251b7f259e1e8603d36b6262a0aa92305e3d050d6e6393acdaf78a04d20c60fa13153501a7e139748074df20c944351e4612dae00c88b06051b9242a2edf6c9b377379c0a4f02d728222ea4b041587a97297aa26d845ca2679ea0c8e806d2033810047605829f50118a29fcf4816e46c7f53018c4f044dd5542d8a214a7a1971e05fab5bcd481e0b749d07d0cae60be4d22b3e4d315a6d33aec5859996fb4a014b1756e7e605925f24b602fc8718c9bf2fe22a9157da4476e388d9870c81ce843099bb9d4ba2357e1ebc00246a017f7f7e3141ef24e77b57db417ed2812d5ad0c81a7366c7cd5304f86978d3c79276442b492b740e3d7a5eed55a9a7028e5f8c801a6c36af4ee843dcf9956e54fe11baf1d1548b06d18edc22fabe762a329cc9e51faabf760f5585aa7115fd6d55a4263ad9458fba484232b4d9f0a513d222209021e30e73b38876814e88c03897c2b638e7927ac70b0077b29179483b95b8d463943dfad06d5ce899c704fb7cab61985aa2a2906cbfd0232372325195daf8c657c49f33493be2a4eed12cd916291f0ff2c4c47faae91b9d3edbde5357d5070f485268187a2618498b23a6c5f23214bca84db1d9f610427820b8810c9ab4004519be77d42e8c771aa51026b75e01c9f1aaa723c198f1f023088ac23f64506ce56dd51a6400c955ab475ab17c0d7eaba4aec082ce07d0c7aab6796e0dd892438520abfec56c0b97d0f3cf583c1398dd1af2b26b087fd94a9a9ffd31c0562aeacdc88f77a5a244b9a18a9b0097d10756c4935ea17ec2c6f5d4bd0fe96d84332bde6291a36db012483dde603ebedc47bbe6c0a226d4e3da35dd2484415e4f4da6d7ebbe05203ce36c8898d799fd7ae290f0db36d41490998ca6d77a675a7d93d22fb583dc6d3cd3123efda5b2b40975bad38f054337c71f73a2840a20ea5676ae5124e473843a0437d465e8f7f1a53d4549be80ea424bb782f7aaad98260a4c0a0a27f88b48a58abbc2e44dd9e8e08f716195fa6e1c12e4fda69595fa269657bb04903a2bf57d50ac5b56f6623d90cc8aacf3fd47e89415e025970dfb80fd9403693875fff212ac54b0ac4fe431474baae8e99f6a58eb8900dd3cc1e7a68149204e1d03fb8651c540c72c64f6f02de328692ddc6a2279b0b58519a7eebb7d0506d5d519f02d276a806f5c92b5949da37bec068a2d449b88b78c6e8454052543540afaf51f90eda25e5ba175a7b68de58b5fe1e2feafd67131a725ecce3114364d7e2185e85b73be09cfd7731e3f1f1747837f77dc7f32e871ab84bba7eb4caffbb5cbb1c9ffef9e3986f5d61f09a7d1329c31181e5c743500216b787c1bbaf2ee5cd090b1646ff5be6bc458d0e3ba671df6fe3ec168795e27b5c8c9624b907269184b6a7e19510f2eab7cbe8e872ca44e864b4e679c43784557c802bfe765af7379c55f38c2c0f1b2479ebf48464a1e8d1d983a9950a3acdbe837315a6099c3ab02afccccd3c70dc2ce07909acc6a3dfa6cbcece590237d87013d442b1e46797c41a24f2639ca3f72c19e6a4c6069e7644b5bf2128f6520a87e76d2a950cac1022f24ab1f9f7d1fb29ae7027281ffa42cfdb20c90e2f5e0bc37cf0b7dbfc5677f90b66ce31cb8fc6aed47b2fd9a2f30498b4ea71a055dd3c85dd33f8ac87a590492221852e737f71ab74f089fae190c41bc71133af805dab41925048f96f6d9bcf6616396a44e3de23508c9661916748de6dce7ba3d06a04319d4291691d7295508ec0a0b9a7c623f62652f0d323ea19285a6a397094b6c7248598565149eb8e4d997d2caeaac41de1e0aee209c2d1be644f648023770b80a04e572d2780f18a306e9567b70cd2337484502ebdcd7c08a3a4004b48870a675990a64822163b153e85647befe790c504e9895d1f3538db5abb147b7f85ac496c02d2c82180389946c1504a523fac20a9fee60ec9f5afc0de5480103c37e5be51bdb2dac8fdc9938e29f01d5225431f6f8dd69638279f7ea4d931f503483aac138ac289451c325ee20bef22bb0eceff05e3b4d1afcb7d0806c0cc3709e60700d29df49ce4b2d32f7568158a5a5b60b00b3767005230a16c0ea78d64c3da0923476b18ca99718486595291480e5259977b2ab63fd5a093339a1c5f410305fad4b3db5cfa14637de7545009df16ef416af4c301b3f6e04b732094933ddeb2576d8a094d94a44cc836085277d3ae203ae3cc096f3d94f173900a3f0638a820961de896727664c294256f3ec3d94a0bd08ce93d8dfc4c09442c8cab7d92948a80848f14f869afa23511da74a7d3a32c4a206eec0710e0a5ba5a66be2f76ca25bdfcdb881d9cb999695e1e8a2789c561e1fced26434d826388863c5993aea32972e87e134bf074e2cbc09a47196e223cefcae702d7cc7c03ed7c08649cdb5bec7d3df86ef4556a26b3323740ce64b0ba5a2c407ebc73b21116e8073a8674d8a323baba9d9ec621e0c25a53510a6264cd38e002efcd66b20f5596ce069208835757dc73c37e82b584e290e60fbfdb3867f9e3931cb0a2a09c91ce4db50e2f62989e3cb20ada0c16dbd1075501d3e9ab67989019052fb2ee34f95f6710259d05d16ab4e2ef34fb665b57ea202c8347250bc2d161fdb923f2d616334ceacbd573218e1d50fd2339c25d231813e9f126ec4f67140c1d67f072bae8ef227a74e40e8e044ada345521e89ae50ef52905f8d5d8ffa7ce46d77581df1b2b669adcbac9d905350cefe5c9bca004db794c956d391903209b2e7e07d1cb5c0b628e2087f1df77498c269bcd5a0974b8065a15738de848f7a79023395302a57842eb978cdb0d82bcd6430e3fea8aa7d216376ef4ccade37ccee147fe794fee98a25f85020e837968d9277f4a4cae001db8c09399ccc27b06deebf9f16377e899dc4b33e2b1f9dbf8189c2191986e4c0d2068ea68b3305b8add208e0eafb9d29dffda26e358e310e1140ee3b9c62d12def6cb89c0a2a3d32cc799cbc1257c61aa1196c7c03c999f3e26ebe61b209a08198800db913ef9e2bc0f8005240bb53fed73d46ff8a5e67a6c3d28fe22b6de72c22b59cb73b75f3836ebf7e2618cea63128b375e2cc0b724fc1d4af9246e95a7f4ccf4da25bbc80518191fb5ca6be699de2b2617ca77da9d8e273f2b701f1c2311d73a23073f0d93c2afd5cf5e9c840fe7d9049d63a5ac45f943b72b90ac954ab3372cf6f39217f143e2088cf09d5d83124b435bb48d8cfb620f38587fd11882086f295fe72013c221a51213d5cb8dae70cf9fc5376aaac8d476d78f82a5d909c7d111c53df8ea9c1011d0ab577467accba834ba04d79b47f4ec5c195841e7146150b9a3098c0b7b4a516adbfc50e7b042dcf93134060bf8d98a1dd246201173bbc800c3be0478750b2dd842d3d8ff4b3ca1d652aa451b2dcc30686d1605bb3cc77bd1c06f21697bcb03f8665af04ad84597078ed72c42a726120b09cbfa64affc052479d13d245a6795b1418d8a0ed52556b01f17caeedd2e2d9b7be0281544b9ecee4aa2305ca1075aa8eb1bb2ba6e87b5045ce8590a1ac4009df43186f0ac443f6ac6bedea09c18c1f63e2da8aea4a014eeb3b3fd6f548a4d8c64f9153efaea7229574a2615ae34ea0d79841e2fd9f07414c625ecb1ddcd42d4158112c6865dc6fd2b807272d87fa560ef54fadd34942475c6d010fb2f5f0607517241c03e692454a5176651a0c952c089b6d6f2621abed764c02231dbe6165e0c055c39167c5505f874a723d53f2c945ec06a898fa04167ff3c6eec9236405d4184b4bda012a753fcdb188b746775c86f39735342f03123b3b4ac31a9e18fb181df2083e0e73df1bf213f0682e9e28627a20497f4cd148d5aace3f82ecbf3f305d079ef0cb88f15e89533d7508e0b9e6413a907525dbec29bbea36a20f639344337c116bcfa3d42b0796b840714a5856b822a74f06c9c3fed39500c8082ff0039177bb4d4e7d8a75960da5210d82fb33e9539cd09c495569d5bd8b507430e2f6e074649a2620f0e010c7329f7a66605f20139eef0150caece07db1ae3ff20bfbb964ab4d42bea2ce0de404e0d78997b3dd5239f18119402f8df7fc8991bed64cab1328eea0e375aeb9831419c28bc835a7ea64727a58168889664b78c99cf267ed3487a6921a481ff4dc3f07ef5b0ab8c1d8febbadbbe5908e56e84af31b3ccb3271d13de6c7f050774d1a0385efa4dc4966cf63e79049dcbb7ad589f0d4b64b370509e836bcb3ae4c585ac8f61478ea97806c5193de6f4040ba085824f0ba2dc7d2f207712ad1861a32305ed1fca221dcccc2cd974dfba8d38dc0c29353ae1b5342bc4b42dda0c04d1c180fb3dfe5728dad470ad1f902195a953393e85655b6442d111fd361a6dc07db353613c2ec84a684ec840a9b7ce9fbe6c4c58551a5bd5c334f67b23e300fa578e5b9d9223b64396a04808be47fc15190b508ac8b54eccacb256ea3e492b6348c830956d23a5ee0554144927ba74f6f22f11986e61a103a829da4e7c4519d14dea09d7ca4c643158234db618cb10c5dec49b20bb535440ce51a118127165242d6172f32895e71ffa009092b98691a172b1349e8fae31151c59d9b97842bbb73428db189ec61d96de1f1bf200f9c5a02f24e03c088965fe46ce3637d15ef4d4edea56c1ddf35014bcafd6f5639051670960da04834c85771b21fd0bec7569bbb98be165fa7c48141b284f1ebef4561aa1efd46ae1ce95b9a8cd2dba912e8ba4c9077867ad916aa03dd23426226d4de72418eb7d2e6c61942c76e4fd45252fe43c869584f598419975cec81d6a1d3a1586474cf17ff5afda6324e59612ec4891162daa9f8062280d99bf688b2fe0062c0c83ffefc7041ebda35a37d072c04dda9e0829347fc6c37d9a7a79b55d4321a426fa29669dd923d20727350b065621313545b81b895b0c33c79668cc8d77ec00e2ae48f85bbdffef5927b33c6f15c0bb8d8f835810d156cd8c3a81537e0a8a8046e3ad56e681b80d20bbc6129647072518713dc2ebfba61ed9ad88075b374b088a09296b0357735761b9b77a25b706335dafd6e9f418afad82010c47d266358436ed7a50bf5c135e4bbc77249136be35b66899e7796c84394a14c29e6a3a4e31db922d8ad68589a931893123f3dd02d85a1b1eb5967384913d17736b5938c9844295d30e7d126a45daf7fe40e93f686267f7d123863eb31349ea524af20cf814dfa2ccd46da459ea4db0ec8a4cd7d187988f276d486848ae9016cdf419e989500092de9b78bd1cfcce0c4ee61c72fd3f8085c55836716bd8aa286fff1eac1ed519cbec9cae375f78e57bf6fe5e2c9e157598bdcd0ac0c5864cf6a36706032e3d02953665afd56d3ad55121963deb0e401830d5892bfc0419c545d982928043987764aa73feed73ab22060401b2bcbb4bd4bcdd41462efd48f389c43659cf0ecff1635fa164c073db57431293f8d790361118d524540a2b5f56e09c28fb12ff8532a2a56e4f5a4f4cfa677cd880b372abcb5b110efd0464a1ca3ae153731f2613cd80c0875a6245b61f35c77588d71e0d924bd961027e87582040249a00cf3482040262899bedc7e672bfa293676f64f5ff43e62877f646717733b8dd223d532910d5cd84ec1a338e6f1e64195dc83edb5bfea213f4bba0e6905de7bbffc743d654df1c9f306415dc4eb97782a64e49067e1ad22165cac46daf14aff3a4a01612f527030b8c06b0f74e203e12bfc6f73f53e8ec5f6d53b0fb8806c1d70e1506e7949c0dd60a188e1ee2b681f4a536b108485bd5c39b27ef9d6ea0f4426ee63c38a489c5adbec274878e55e33489108e31dedde1ad90a4134b77734f363b42746b8be05202416f17387335fd5c25c4f60a72c229c1d4d6fe9ffac33504d49c302369d8bd83afe7a6b2735136f076125e09c5d2a42b91028fa0688b90a9b27c7d72853da50c149a0f72f165b8274c30a32de8635d0bc8b82e2c125518599d2c670f8cff21c8720a5e68efe3a13d6a12f62b97fe000ff6fbd2daa5ee79df426ebee379efbf718a5e2c4f9481c0f42d9cf6d28284c75c50388691eb8c4831cdf1cdf2eb09f98aa3a8b9db8492959156b1bce5a4e848082a0c011ce69f4f9462a10a01df69a5988dac8d1f6273c8f86dfe8c74a1448e3dfde015c5e7c05c8de487b18bb0b83035fd4c38b7f85c966e4ed97dc090673c657b4e84f89bef4bc703d2dd1b5cff4a58beb5ee577547d6da46ea087490829c2a0e89775dd2f5a220beb9603b5ccbe5732c614aa185d624558f657c518141061a9f409a9181dd477ed19b9ecc2244c489929345de6b5c050379b07e8bc669e4b11b881ee3d2dce726a5998a2a1142d96ea05a76e054b3de1a6a87abf3b1523d33e9092e1d7267f3ed6af50b91d3a4a4eac72960cafcccf2a498d468fb2c8eff881094d554fde991626cc05f28d0e421a0584cd6c72d8204450211ace40b5534deb989248b7d89e0b01f66aa7f9ddb84c9a656d9842cccc6e2a5b16200af395502b81c0e93f262ed6b86d366c569b2dac264ae464da92389e59137d8be8d4918ed32e8faa69aaf8268bed54c683e007c3acbdf2769a456379e94885c718908e01d5aa33fa1cb06750cd039e71fe220cf6a51b3f71349a0b5601ac79aaab065033f1cf01abcb5ae87ef6f40cdc5082708b43b4dcf02a54b585d01968af9c06cf5ebfd6bceb1d233e68de75e14e9d30de58758f96896a5bd24b18d218ee103827b0af05ac98b8bdcd2098a02cd594e8f1e67ded4fde1654d87d509d62118f3a1c5e0bf6172de01c7d89f3c26593d99d1e847226332c6885fe60953953440371ecdc132c44e4977b2f670b03b41fc310b931cbbe51c7a4424897940d50327905c504fb159efa278bdf0a4c88391ab182281c7c8b2b2b3113f7ee19fd37b85758686591c4190d123e7dd3b46de632220d4cee01ca4f16d973c20e2ddd497899cb21958ffb75019ac32f38e362216579839385816376b6c8cb37fd64c915225392c902f2196a0112f3a277cc480aa2bd22f305624dfbdf22744749888080f5c0f1103fcf3382354a9de32665eafa95f72fa4ce1c938368c310fd9946b24be5fc1b1048e1c9f2ec1f036292f649e4094c8046412bc2b5e97cbba1e8355011b52297e33b82a1a4e2888a27a19a43923da3f1c288017cf8ffc53b1256a860f092e66a7a76c31ea1157c8108c16ded0b7cbd9078637a5898b9bfe1806b55e962d7f36f5730776ecbd405ea9230c504918a760371428e431f4ce72c2333ce151294f73d3ef1e0e813dba2a283307860a73f5c5c1eacba9368dd2ef6822b57e64f954b060d8f4776eb5f0b64350370607c25564bc045c0c53a12aecd4f7eb4e9e8b26aefc3f71dca52b7e5f9a6cf5902159b8bdaa22dc84772880131a3bb23fd74a306073c31d51671d2f5a5efdb268cac169c23a903d38a30049f6493aebd878d800b72b4bfac015a45a9e78ce83e15e0095704bed52091ab77cb9b9b04a596c67aa91c0cc4190044dab036de58b164c3b44f94608cbe789282ea80148bdc6c51b13c777ace88e27812fa9f257eb2911c1f3ed175fa6cc89acd112ee177019ff24eed27f5031feb27596f3929510d7531bb9671f23c5c2366a64f70a3fb9e1b0756bf08ca932ada698185532a564cee121e8f0d9db5e60b77fb688ec5b11cf028a26ae32353438fc34005c9c0eba16703fe491e4774a6acb3da1116e724c57c00ecb603b5ba4e0a3c02bf2b5de910a225499c5c89cbe295140bc493d9eda8eb9dcc40c0c2c12d264dfd4919669c379e6f680f0d9f62f2d667994e1da93edc2ccd48c56205cb6a45bed25fb1aedbc27fc4bd02ce5775a497637959cf3d2b6adf4e47ab63ea831589fe52e861a2d521bbcf0ccd6eb309477f72a190fc35e7f610d2d6635da708b182b7e9b18feb88fdbab3b94e3912b8a1ec30f12a9755d6d3ff290b3aa08a194818f08267a7c79e7f880338593c72ca6c7d67adc9d61002f4446b635bf820b0fb98fe99fe81d71784d8a7f9ec03e18cc0d2aae4f3494e99aa864fa7de2af9855743561b6d61fa119a7a919a340079e3ee18212cd6c67159147a2a08fe19db95dc8e4e021b8a523b67c1a6015f33b23e93905eff0799e234da84f9cfb18456465f6739febb8d3599ac9334030bf583b03eedbb621fafd6db132f138cd55cf7c555ae952de36de4391f7a0bda3aa535f5c30aadd1c7907f658446e1138bafcf5c9a816250450c215cadaaa10ade1c712979a90a6647606d1d0bd744c43f655cf5d03d7b7684bd8c43da32874e4fe881800ac294090758bd7c33a6423183f8b55dfff68647602aa3f8d55bc683ec1c24a9e557e72f3e57fb7229f314728c1ef6bdeeaddc35b97babda47d1ac64a90f9fd3ae9dba95e8fecc2bbc4353275da2e27460ff1060aa77ccdb5e3964f261b941e7b52e67604e3c134f187867c2449b5e8a0a9b4c0894c220352deb7de09f8884d2043a8573a1af9255f2d3b1a1ad680398bbac5203aa0337c217d9d7c0c42705ecb00162e83480a6412d24510b35142552a9462cc413789b463ed945e7cc2e9e8e1a01cd11095f9a919e8ae35c25b11e0f6461b605b9b0f2cbe7048c9717d58f12c4aed8f28c0ec1817c0a8ef3b019d17094987bd725847e3e1bb3bdd763e0ee9588c394c54b260f779c889ce37ef976521fc91071479b1f48b12c53b28c464f871aa4171195b1d39f3c3daa1f5935c9f0b9d295c9151edb97f7327beadc87924cfac6412c9ef71f43bcbac6090defccb65404cbec9e3eb372f4c6c2ab3fb30d5b229db29f42dd66d2d229f37c1cc5ac764a2d74182931492caf0a7734aab8629c72914cc784ade9c45880cbd6af4ac342cf7c626c6e4de66b940e2c58d37c780552be548f601cefd8c1898f828039a3c1fbda1199c10392a25d156da6c11eae689816b8c88e207388e6dbc70a8ddc247ba6e857e07a15795d03e834bbec0695d46fbec77d4fbeed2a1abe63c744ca7ff2e85e4f613654479e35c9b11d81c200522228aec9fd145a8f5ce67973a1885ddd16f7cfbaf9f74ae724497617647c4e5b64538816aba1fbe0cd729d57a2363d263315a97e92e17d7faeb09c6f39e7b0e99f79189f84b90425097b29fad5184211b6d417b26d89606b48da95c75652079695b268d2ac5690cd1d8946efb2b2c6304d54330335ba7f9874e48061fd4c6b27487ed6b1a396986397876aaf370e0b224fbad1c576e55293a0dd71d2069783c2e00aa05b1bb4c6e306dc44d8936ae21107f01621d19de9808f7a8c25eb1a3afe5b91d87e4993d7ebc9f23196062fc48090b353b7c68fd6d943bc50a407703bfe45050238788d397d4a2455dee9c953732aec28dc42ed9c82c6f79231d1ae4a795ea7e289d7ce2af5dc76fbbc791c8feda19bfe2d68fc760202b62c07453563d549d2587510d6b8ba25bd171d3f589d0bc820891b734ae794e8a13b7a1f90df485ee4067dacc48ecac4e7c22df013f1a8cf1f57f5ff3b1e30522d61928176bd56fc490970917ed1c909ed570628df2a99da10cd5d72b1f0fc962621a0da47da8a0aab7754e1fb5ed05c03dd48926d7c7c80b0d2e784b87194cbd8a240928f1b693aa03b8f57c46bd432710e70e2c442c643237b1baaea2a814d00d2d91a7ca4e39a625e54390a731a68edd84fc43853baeaea40b828058107b7dd1b0186c39f438c67aa6ce3cb03d80af9b0750f4b4adc2d05de18c4530c55305e15251df93841cc441862dcd6019aff21d932744660c5160e77a065e83861cc304e0195eb0a221e4f43c9d55991026672a8388e4fc0ba4cd3933cc336d86bc5660e07655ff41b69ad6d4236d9846c42f6de72ef280c810c220c31324fa76ebd9aa7267c3026dcc122e06928b184ccaf8483cbb004031f5f9aa589a78d9aa69efe5c4a4b784026bf2c61e04bf45c9e202e51cc7159f6ca7408670962b8c93bdc579afe0eb7d2349dcbf4134f1807972986ef6519be68ee3d56487f40e9bd242d3f4dab7dd5d76ff3729b360c0ab7d34af25a73f1f4539ecbf513ae56118dbb3ebcf5d72bf2d5347532b95aefe2d6afd0e680af9546554a5c96d84673315ad8906bbdd35cec0d95dc14775ceeb4ac71796e369ece139a27475babec64b21aaeb4163fc98222f96921bf2a78fcc8aa8a15e8e49be9b15bec36bbc54e2becb63ac54e5d5c171e6e0773e9a2ef3089d953cfecb95c1dc3258b29f6923d3c86bd244f3deb4af24364eb52b22e16cf40b92e3c5c98189861a8570c044ac9858b7b49d56bced2ed1e5edcc13c8356af4eb22e1797aaea15adaa1bfa0d81b61899a9e81de8f7b5dae62fa8744f3d74cf65ed205cba180797352c02fd55a097aa530f75a5eac4ba80f06b6efaec7c516b716479ca35e57abd42c12ccbb0cc6216bbf4c2e8b3f5ee4596b7248661988fb5d7ac8bbdac0f6ed744728c97163022bd8261913dc21ec370296b22bd52c276ba480897308c83cbd8318c75954eafc0bc85d48b9d62a799adac8dcdf2a32c7f0591e5eb2b00b29b5df63eb398cd81ddda5718cd6c86ddaba65c76a39d7160996699bedcb93b41f698619e71f87a5997120e2e5b0edbb063f4f615a3dbbbc3a54a1947d9535ccab0216cae7a3d18f27686ba073d5eeb15987bd94743b4edc840bfa10de6ab3abd1bbda80add2f01f3c5f61568ebaa67b72c0e7ba30a160cc9af0df955b1029e5c0570bd5e295db9b319523762ee9cc8300b51ad4a082126d6b46aece2ee04b9c27493719a32629d133562993d6631bdb68e569b1c7d7277651d32ae0e415c86fa52baa927cf578a8a2c934e54993ed1d03d68c2d4efabbc26f5689c4cd3b3e9d92b69e7482dbd1c438254f123cb09d0675be42c03d9ad353139891e5a31851e195eabe2899cfcb8905f152cc02203a07200c0b873f10301044acac989c951ac8b09e92626a49289c9b98c7292094ae9a484e2830f25984b3ea09c9c9c9c3cfee424a50a71411b849be5eb30eceb920b17309764d9276b71c069badd5e36b1373293b77473d6c2d7a357469d4df023997cfa8c1926f6d6fe3ae99a7521e192c538b86c6f5f73d6c549af76ab4eda5c6cafb9ead71deeb59548bffe9abb48e772e92ef06bcee21209e3e07229466693cf7830e0574c706909994dbe23cb269ded4db64713ccd9224617bd0ae09a74228934e9500aa31ea2a85b1fdc4e5e9129ea595cd12bf10a694462f168bc4c1d545282bb92bbb0afa760ecb353973b99c501755ec6ec0dfbeccf4e16275619177c342c106ed735f4526f6b67eed5917e7218d24d1e8dd2a977148f06caa95714fb9393b6d206f3b5394c6e4d6e5ffb226df628dbcbf62dbd04cca4778f5e19e1cec547a7a001ea1097bd016c11a3d718177c34de6955025df88484213d066693bbc0f009ea6dd32b247c823b928f5e31c130a49b9cfab53828c984e5828f461130a3c7c00c9f88406ed73c3245f58f5ee9b4d7afc06887a79e591cf48676db822f4eac4ea713a6cd59dcd9bf4723fb14449e7cc8d3284fb78f05f64415ea13ee2cd62123d73ffb835bef82a294ca1564eaa22d0666c9a37bc8153c15ea30c8d443b8a335c8d441b8bb328a4cfde28e443ddb248f0783c258ffe89b8afb474fffc8cff4f6e449dd7a45611c5cce375314a518d2138899007fe2ccc413b7ae696ee7854e4accc9fd58261c96fb3e44c79d2bfee40927b2409f56e977b467706870e80e0a724773d740dc3dac0fee23b28591eef1e490dc9736d246da70cdc5993cf108b182487e39be66f5c5e35a7a07fcc9a5fed6180797e52345c15087b4fb450aa69b6fba7522808798a37037e11d1806be1f63505fae91024f06e5674514b670616266660605f9816470fbeffd253cd0c9340e2ca14d7d1990b73bf9798a58340b4aa3d4502286be129229eaf227c8d6bef63c0694d862de4da73a8a9aa6074c9b63cb13772947511425539e290c7d842f6230cfed656bd3c165ac12d183919c921f113d500124bffcf2a47eeb8d5152a0b8d6a91cd66128dc71d97a9401ce648bc0c2bad81ed89bdb512ec75e8155c688d1a7f40af559ea5fa57efd73b5a1cc9458dde2141edc521145c04c71a94f658679badcb08d5ed3e3af367a34ac95924a296f79e015191ac9f07256118388f2aa88414f8e435c34b2dcf91898e5b95ee9ac17bd122f638847833efe008f46f5f85a6d3bb26c6d3487fc243f4d6f693a65f230c79ee09b98cc05ed0da438529a72c7ba4da594542d752b6d60fbc87737ee6c8e6a5f4c3efdd6481f2fcff78404adb564043a168a53cb3441f53c2581903a297d3445c23698b8eb7c9daa2e4039e8269e1486b94e5f323a82626983185ca2a7604e66559ae8881bf3fda6a648dd64b3f6a5f4be4ad4610ecdb0e7fa803b120aeeae0bdc5149613b0f3395e6219c996609f75d9c609c553b17bdba9b659a7042d6481ffd4902c95d7d4cc3c43b91fbaaa72e7dc01af314963f7217b323e60e4eeaf5fa843b6993eb637afaebe9fa147361987efc749feea151457e3ad5c1ee8e786ed2078c514fdaec5ba2c9f6f2ddba976b9aabf225b8a323dc5d12e90fe18eb3ac8b59bf18663e7bdf06b046a55d8cec7a66fbb6de63c92c0b97b0dfd7c399c8f2c3e50f18890ee26cef7e7f0c7b4e2910f807fca24abfc6c86c1d7431c8e6c6cc6cbd8b99397bbdbd655facc364b88395cd7165ebb0a765f7e48a4476695d2be58b99d24e0c7b3bf7b1b44415f9de5b998eb0b7e6c436d8a49be191f6b9568f0d608d1a296d7275511bb7bd684e56a4a7020f2fbd7aa583b1b93c7b729deab651d1baccad8379567bea32d9564aca48634729e51451dcf8e92f1164735f7f5c74103e8048240e6ef00288246526d3c8cf0a2b10c9555e72528f7a5b3c35a79c53da993b1f8dee8a548ee9717a8cd4b4c517cd4125e2bbd2fbc338b8fcde74dde196e2db4af15d7ce4b2cc312fde2b055f3735b1d71c1ada27bfecf36e36e478da2c5007fac018ed0275a08e0fac015f8c6845ee18638c3a32aaf058641672ffe1f760ece07650677a4f7bb93c3f411fd28dd047d6e81e309f881e9264eaf2e28e66b8bb18f681447a58bfbac71bb8e739a1cf538914c236bc0eca21c737863a0f46bcddc19d5ee76bac93813a3a2e1d5c96599618fac44ec2173358b5a0be940ef6ad2a644013afab358bd5c99d8c1c6feed717cff44d7170cd457c494b9778ed64e428c3861114e0800e2678d4fcc0a142a78811bb4d112d8ee98d3b9cb9e6b4ebcead73bf185dff0459363c6292320649f2bb7907ccd344518be3d49c60b44770b87bf1e00ae65ff48ac5d187531532e8f123536fda1b37e7e84f3be4a4a8cb89a2e20f79da17203285770091e5a7a5b61730c7474b8ae2762999f472f30ef89325ecc972824ff6b451719aa8384d700f2f700f99a28aa0de9f5a22a5804cedcb023285772c20cb47d8129b5804fde2f1e7fa89155a1794e63a46d27b9e3a751289c638b5105c291d8dd03e3e3e3362d45e35353f3b395fa03fd60e4fa63c8ff25473a87eba4a58abadf6aa18a5d6e50a6e57d5e49f0aa4bd45a283444df1b0706626e6ea0b8fa5f2500a219d52784f9049a8c24e951b35618fe61ad2d8b0b1419b9af910a8a6a69243f553a719a50d4813a0009f1d24f8ecd857a3caa94248c0a58dad46083dd3734ef989faf1f19964a4e4e9bcd4ca57f665f6cca9e4ad68a4878767cafbaa6bf2b17e2a1ed8dd9cce0950001422845a77878a442a9eaa0bb95f67bd2eeb227f4d6b27070ef046c69f095fd35293b5cfc2a6b49180194c3e35dbacf2e413e3a78cf392575273ca93094f0a3907c6a013097506b93f2560a3ee1422e9b4a6292355c5c75189b4a937b5a68644ea1f362d65e7c49923e5c43a9f1e233c3b3a422a0d72e8142555d59a922b3ee1464b599758a975dd449b6893838343e95673658be83c4d3e95755971264992581369228d556d76d1adea6923467e62fb34e7f3aabdb22b6e30cf4ddec6229e7c1e8c2963749b71eb2b9ae7c7e4f308d0c7ae7bc916dccedaa19bcc549523711aa7755a08143b51073307353538b85da477766c05ed058922c8c78577ce570dfedc39a313ae8c4fb8d46bc945b7ced1daf8b8d6655e161b5d14dee0b60d6e67fd64eba7573a6b273f1a6f8ab606b781f44ddfc037c147e3b94c9788ad8f0b5fb579d2898b08253545a813851085ec34474119a584b0a39c0f76c4269629b8f371c649d91042c99a3be70c599e02dd011dbdd2c92d72f77a8208c9ddf3915b8a853f1e0c68c5954fe995575f64814fa55f75f724034f05fe084412a1dcc2902243727d1bb8cf0a1714690191fcb6c8cf8a278ae49a75b44eb95da7f84a7bbb0948c445f394a7433ad14f5807a944318e99e9299ec9d3a57579d65f5eb670a91e0647993c6dddd57531d64645994a0618437ec23047dec0c74f7e55d4d06419f95521032319cabea8146e6743be2d6479d99736f2cb2e5ac20861449151783cfd04f8e935f54db8fb40ee4a930e529e2d89a04eefa9ede2e0d2d23cfde8d3569a177d9a9f99fa9d2f499699be34611c3353a730131513cdd18f3651bd7ebd86de3d260a7750647354ea21fb52bbc745815c289d0a5feb1d8d4623eb55a3d1fcbd73546118d1ad3ba99353f804779d45ef1a0c5398a246d67158d647d79e13b31bd3a95387a3eebe255eeadae8750bd917780a64738c7e824df3da97e93033c795a7774eccf0c4124fd447a199aded65114551141ec93431e7bb07f5d93f72a78d36987b273225ebebd1a87de44e9b53a58dae89a6f698ce548c318af07cbc714f691f6d134565ead6c5daabaa3d7eced11c4d5cba9fd026b2744e0eb4b9f6b9855eadced1ded11864a1374d0c600dadaa154674ecd33b1da4678f101d7b4b6397b0aa3555422ddb3a999c3d5a97ec3554494ca43db43d4c033ddb2cde4ab92b4d6e845d669e3ec9ed36177af61adaeab38dba0beb63fe3a6251200cbbf7e2693461f605747bd92beffa7535cd75866bbab52e93f65ab5d047f78eeefc1dbd258ea68736983a1a8da687460f4df724f4d15b7a3a19d5918b50bd8bebc8bdefe634e7bc1886be7ece3a7d443fe152fdd5a6e99f6e170a4da367f7a00db32f2e3e599be3ea60be9d1359e24e54d14a9a8672af8aa23dee68b784bb1b77b266591fb4d249a689d1e857cff4d1f593bbec6e30a13b91276dca7e7ff5c01ab3bb7c72978de67524bb5dcc0877d7919c7d74fa111ebd1b510c333df4d1bc48efba4746e948bb11fa34daee3637995f4378be07c6c87eb2616f8920934d0365b16454329a7d956cd97506d0b3098b9ee920e58961de91449f2525b8741f7ae603da903ac6ce999ee9785be4f9d1b51006d9dc4e07091be1d0740d77dd2367efa0cde8f1d719a687b0d128c35e5917ac8a66be25c8a25779e92065d13391e8827ed129f2c8d39f7ca75ead4fbfce006b5c47ae75a196c22b133d3bb6b575c15e45a3d717daeed6913e90e7f6f2f2e86d8db0ac8ff0bdf5fa6747a3bfbc3cc2a5d06146a71e1a9dfa0853a797c9a2197a4bcc2edadedc749032085f678031b2dfadbb72966dd7b1cdd6ad8a16c8e65297779960740187c0a1a847f9206cf85cde903bcd937a25be3b9c2d3bc9e31e03848087c7bddcc52cdfb979e4973223176a356bd543da092d04e6b413860ce9214f5e12f6e041eda964a858bc4a86577b6a0f1bf0a342cc15eba0e3ba92b8789031c209348405a8d608f76515be223b384078ccf4603144888d0f243f3c4582e0d0f038d2a333e4874d122457f0c878f1603ca9c5f411a90b4f9120389246f238d2a33324fe883649905cc19313c4e708111df8638b2457e45784db7888775b84fb1e8cc733670c91df25848d8768eebd6debe40bae51461931190fc67b85d38b4d4dac74636adc397151a1aba0224b214c9011875a6b639a18e73c35a794526229ab18adb774d7545635b75733e9a4a8535bf78031e49ba66340d1192735a7d97f97a9e0cca9f58aefb940889968eeed5c47ae335c3d4d739da169ae23d7912a48254585d3d2951430067c44c0c738377a5305895590e63a7677e34f2d2a5cc2bd4bb8fdee5ecd419adce968a904da5c0aea8b5e5102be2b75e36bce127ccb4f19037dea6b1af3111661fe7589fe85dae01edabe3c5c5a42e6f71d597ef8d6212e2d2133fc8e4c264bbc84cdd187788958378b620ac34c3130cf18981b5b106e3192e20b4490516b2a9b3cfb26cf772792ba32f2b4c99f5ce3057d1ecbf554e65f92943cdf0b09b1803df088a681e8e9e54ccf776be6e3160de1218453d3cc4fc923cff92a266995d9b357a6bf89d4d35fa5d78b2c6f8a3f11972292e6e69b26ce8ae34f7336cf5f482ef578fb58e24f549934e4a70c42cee489bb519eb369a0ca3c8974ef4f9e9fdec9a09111e77cdcde34b046fc7ccbe0b1609fef17bc95eab3af7799490744ee9a263e8e3ab6514f857adcec46fdda32f5b6d4464d9f2aeb12699ca818270fd59791b802132fdfe9f568d098d367073798bbbbd86f4c278447a8b2c6aeff5aaec427ff2e84f00e3345caf89923beeb537c4171e1cbc55a73f2c1983bb2dcbf3a76a32092600db885db5d59d2e82c7fb599978059ca9bd755f24446fae6cb12c7f385341a6eb188e718893023b5750ff67cd5126969e20cca50100ea13e9a392324e7e4e8d3b393e426bf09c4b855b98ae89c115917298fd06306d09cd128991392427acc20afcc1981ac8b8c50c82cf6945ceb227b0a3f708826b275b2def98183b4ad438a3f58920c7b80c4a321af9f938637d6ba481c241e0df8ee71216750b813cb7a5392315e510998fb2f2519e29741e1962a2c6ef2d1be54598362c890273c411e098546239089a689b49b985c268f462727241209242a199968599665269a89563212e100074e68020884615708e9e4fac9c85a6bad1d69a4d1356d04aa234d1b8d1effa3825c81742c900e69341abd4434d21e04132e14958c469aa6699a68242a196959966559763513ed26265ac948242a198d344dd334d1c805e94454e2e24454322281402412084422814024d2487bc968a469a19115100ea3fec1e7beb325bc4c096f08f7c578df729091c5902c863ce6972c7888f48a4c16441a06497202f2aba24718ea65ab7511c98248163c537cc96267da5eb2e0e971a73f2bb2d8c9cfbebc6451a4b9c713e369164462af44969456e95371a743bb2362a8c59db0c6852c095912eea4427ddccd4422943992a110a8e7d140c92f0332197491e832b962204db350e78e2c14f11504d240a2516814bad90d9598fc30b1d0463427aec1255958a35d191246577684922bcbc98c40229db8289d685911b2295c5c5990d20fa25922c25a4da864833451257e6471881eba665d4225224c2d9c692ecef8f0c335b79a9fc8d54cee301d508d1080a8aa0cc40e7000db0ffc008078412d282ac323f1a1cdc60cd1d68096146b049e3e91a5e4f1708b47a35778309e5689c7786c0b6e10971b82b05c100f06c9e2007ddec41611842d4274d0eb766544b8f11a4faf602c128542a15008240a02240acd1036b911c2886471843eba897519853025591710d67886000000884433f4676f4c3984df8331432fa2136e08040021402290289382b3500421841001080037a992a9930de1c277d80b159392918a26525141c1e645a16b18f42242f8522c604f3979def0e04c39263fa2fec10e93c69a69f91e8d9c4763a6bbbbbbfb9982b25a70be0c875a554f1ecdd13c4cf108e1be8a4e9a4c6b624fad96ace8fb11045b64afbcd78dc9cef62a625e92ca96bac15c6dd2feb8afe5c1809ff0d1b86ab5b6968d085804740084c08301cf45961c4f05c2c307860c3f51f88a90e92266c3699ae634bd6d3ea664aae78a839c93f6e55f9299f8447d91650aea95da60dea6984e6d4adc90b9a17c85df53214196d50d2aa9c500cd143b6664182ecb1051ed90d55930c58e193926120016113b894394a7d75aa7ebeaaabbad89516ced8d986128ec5ed4144f5828e2f41ed7f1b39a7e43ced7dd47a86f029442eb52b13caac44c14edcd53d7e2a04e4f591c1b688d848203883dec610f70522a69ae38c08622e8ec5a1cb12f0f31a5a0156da14ceb82b7ba655de20e2edca8c41d75f90963ede864a6955906bae2e35e7d1c3c8d2c190a7c03d1f544cd49ce23306962656c684d84c0289c615de9589fa6e91185545117d27baa1625d5891e87f5e995c561823c3f4daba29375a173966e548fafb016f11252e6172f719820cbb07919c864b3bc939738e20d09aab9fd9767c34c088b54f2c12b4f30b8c974c8127435a735f7b498d1dcb3314327cb78d1dc4b399c42edee96b2aa8d0108638c31c2ae664ee294e63a1d2fa669d2b73445494924ca28a920753020a92089444924c628a97c1f99d605be3b6a2129d9518baaabc886e813d950452da49caacfadbaf50a454a29d30d8b70bb3e923b1df38775b1f1c3c60f1b39b061d33d367260e3878d1ff792b16046856a83dceee9b8b4e0e41883cc774b848bdb477344b83337aec9568adb758fdce9785b6419e310ba47d3340f0a34d75608b7717c532059529c2c317ed13805e7c2772919de377ecdc197fb8da18d15c2ed604e7e134e19604185102ca810f26016f5757d5debdb200aee8b4f4a88bb263028832b727c2442457e590a3af987fcac90c24d8e8139be9b26eb153c972988717099c232bf0703e20ebea7c48e2c2f21f3f525a8a480353ae8a22757ef74bc1eabaaa85b170592e39459467929ff36f8f8289066795d49016bdc5441f27b8f3c1a7401e401bdf28023f16820f148da51b8d7bdc86fc6109d0d222c17ca98c7d31291e0401214773aa635dceee63b55d79aeb99a74f1c73c4b7f624fbc6443d6e5a35b5dc797ee6862fbbc18daf70a7b5c4251c339372be9706271d4b3debef5aafbcb8b571cd51a7283b06f972dfda5eb662107df4fb0aaf2602986d18483779761d5716cd2c7a8a68bb9ac31edab4e6b067db6d0ebb267ae8d7f6f2b2f64a59966559b8d37135a16dda47a351e8d3ba847049d3ae8d4696a6ddda90b5d7b4d0d639a1956c2fdb925bd64bec45b7367b91f5d13659176b5917bd6c5934975816954b4aec479b75d156729bc3b0dfede596c692b094a5282b5acb52ea9d8ed753ef66af6dd9a1c54e5d52d4ed3d758d74b5df8340a092c3d8d1ed4b8e5d265bd7b60ee6982c7ac936b2b42df46745da269345a17beb822e3dbdda426b316d4e06e66a511645518a9e528a290c032b122c304081e6a6a9be8e5e1b8f2922e469ea948a71fa682ec2ee4b0c778ac0189f457129bcf0d54a79279c26b8d3dc04893c18f1f036d77cdbd8c00dd64c8f505c999acc0289980e6d6aac0ba46c646a884cbde8523285329da23ac608a57c3a195aaa4eb0486f214306771291c9264f449a9bbec5edde815e79f907743c9e2462de919922b9833448201159201122d95a7191e895f71a30dd8807fc556861fa429eb2c8d32986441e8ce9447a069ba2379693bf3f08fabd17824007dd8baf936edb136d4abbc2a617dd44afaf4ed783105e0729831e41106619e8b5d69ee6322a6f9d13b993c931c3d87bcbb0675b1fcbb24a065bc46be918e5bbef468c09cbdea01986baeebdcbad9d88d2ad6201029ddaee15c9dbd0479fd7c9c6e3e42c381127788ad1a8f6a85f73da6462864c4c36eba1adbe52947509fd418803ad8b09fc757aead37f37486d5757438bf4bbc16c85def7a0eb2065ebd3c53866bebf98895fd688972b2eddc3c057bfb0faf5d0d6dd7991c00baab57f0fb78657890b7ffba092c36d74d0a655eb2df19ad6a5be641b410d5eb85b7bed6d07952f275c400daaf5be37f8dba00d3b688b2ef6d0ba28619fbd5e17b42ff2d8a17db1cf1eda9e062f28a6866d28dbb45e788594d2834e5d267743d80d61b7f6054ae12735ad4fb2a82fe5aa1826abedbe6ced75c15f5b1132c38ae52b8bb2b9f49455c9b84d1bbdc17df4a9029021b9c649b58fdb34cddd54d5bba68137cdc9faab6eda95e56f9db6db3d9a7b4da3833b43c69a49c2e0d1a89787b0c63e71a94f5beb01c6907380359d8707433ecbc1bd09026bd4449b5ee95fddc5d2345145f680018c01ac412f0f697aa5da2d4848584a2edf00239a6574496a965873293aa7e11f19be634dfc49a4ae4d53298d3535d9051445e8220c272cc30202419221a464aeb126da642971b22cb9a207c6e83a08b9811073406d55a1ae50eac60beb214da6b864ed6dadb8c6eed8cf1651fdfa7bbd8285e8056fe8d4ba6011c209fa0051630408ecd0ba84e8759bb39f6f6c7bb9b29488ba887089c20e3b1da44c4d269aab97d68807133fbd31288a1bbfc5ae487abb88c4e108cdf5d56e30f6d5626a775099a272759136dad3adbe255a990ced8d4a865798ddeb99dd40a70f6dd45b227cb5d6055eb0a5e3b3eb20e576695c8a18c764a2b9ecb2b9cc8546dce9b8b22d3291ede186bdf634075d2ade4165db39912b8cb5620163c008df2e4a5887f6a57ab16e6db4b96a2335276fbd00f1a35d90f917de1d5428a1b091982572e3945056014f2c2f43488c1cb10723bea5ed143a2cc7979765733266a22d723b2d4b2dce1883c6c2ed27bb8790e1e0d2688ddc7945a6625b30dcecfdccfabca497f5685d3afbbcaedbad93c9b6efbd7f79f9e212e830f7fd8bdf41b72e93a9184c2657d875eab25bafbc0b439bfa6e51eb425154f54744e85448be923279da607e1cf5678f8879a23c9e8947b5456e3ca9be940c07577ee6402cb4c8355e8f9b6f7b44cc11d3e6a270dbc883f19a28c93f22a83fdccdc8ef32a68c877f8027aa7c160bef59f1021ae4a7013a23350d885a6fe56e7248dcbd85efbd0f74908b78ef756fbd3e8ce7d6575fe6825baf3a2fac46d06daeb25ead11ee7d91a9f5a51e242919a71e3c9638331de1e4dd0de2cc4416188448963fc11d090299692091264b08a405f73a559dce78341e0b7c2a27af0a02a2a24fde4d43ac1e087149a44f87708f90e585783735214b3915c957287163cb1773cd9d3ce5f56da00c17510f3a08d72ac4d6c17c62e194e64e2ed8d7c9ebdda69b29a3b9d5e9ed09ae1e9fb2bd2c4137658319ce44d9238ff48a8f1c82c92b241540727c8d553dc915946b95eb0f97f9b14c37dc7bb7d64a41afaf401c5a971fcec01a29978729802a782b425c72ef288bcabb4b23a39e4a8d8fab4fd9de8b519f6df52af55cad105421b420fcaef5ecd5d6554fb1bebdbe62d90d804a00ded24208017a0aee60be4f88ccb2ac1cdb33dc815e0f033ace528278a5aea08c9804b1a504405e65eb24ad225f63bdb5d1e6ea610ac40902814020420869164ea788bc028b5ef1e144b2dcc93c591ac9f242482a24155248b60366d09790b97e47962b06c0bbe9667bc54bc00cfab345808ebb98e550d12bd6254e64a25740b84b39e8f2150413c4636016e229183e7185d86410d025853417bae41049854bf6c4f5e1f658660511a233edf48a0f928a3c24cb894896071d3e713b89f302c230a0e3c3c89ce66490e6e4df9c70b24cb9101bb7b516ad227132e95d9cc943a01048054e0c027754a660088405d77a9554f44acae5c94eadd7eb9aa926aac8d3143cdd4c3537c31d95bf90007179bcc5c0bce198ad5eefa69be9e6d10032e1f40a10979f82f48a45330a0a29a3fc3d946f52881cd29cac37374060494573f2f6ef241543a8bfe9958639e2ebe5cd0464c279341e8ef8fa6a0998abb7441f3694adbb77eba496bbe9463b91546449da4cb69b9b2c3fda94a0a82894446479d12af205073a405d5e474bb3d01936fefac510f2d50c5b18dbbe556a9eeb52aa4d36376de1233f6a93b2b94767523a0036a8ef665824fff041ca1f5a54010743204af7441f6ba3163d91eecc51439f4e8a3edacbb2a1e8249312eca24aa609da3426a936987a27b27401fbd5f4a62eaa7621add74b1f2e2b1fa216b9e525ee531d572731c530f296c8c886523d4de26640fc1a6974aaaaa8057de8b22f3ebc2b7d12349ffc35cb09103f6014dc513a5913ee60d532f940514af8cabae787655954a609277aa24f4c92bbf91898ea4ee496d6a30fac214fe34feee614b5c8f4d392518b3cad4f1386e95753ac5a5a15cbe80363ccbbd8ecc9d67d5edc5112eee835c1ddc51d8984bbe38e13e18e0355a06a5118eaf23da71647ea11dce9b8aa45310cd5bd5a94ba048170e97af6f9962422cbf18d2a31fe71a300c0f0e698c6d89ff258864136957d9187a9a83cbc89bf31b201d69036c370d74732bc219162d53d9475b1d445558be2a05e519f147555b7e8d4f591dc7fa4c886a8d23329a5d3b3e400288aea32b9b798992b1cd90063ccb744aa4586b6f1bb518b3cb7249a6ba2b978383393883fef47664b411582e0e4fe4920f9d76284a4ded246e07e3b2fcf4de1d72a2f9ab352b8dddbc9f26f0f5926a1459637a20136d060a306a7614b2b5f91686efe01cd1921bbbbbbf1079a9b72821ff8e94073b37b487cf4caa431f34c34b10367e6218f667944cc9a3c6de0ca6484119346160e5223982bc873e2980763de0ab73f1d62d99d2113cdc520813713a4a4c8c9d3f41c31d0dcf42cf294863c4d73c853059eca4481076382407a65e2d12b2f0fd2f44a8f5e29517fb97b4460cd74e8a3591e1113e491a713c9c38fdc419c3c9d89e94d4c5b039a9b0e2dfc61adb8dd8934a0571efc44a27f64812b782ad361406b902718459e4e4d90c78331bda5b3b5c28d6f1e3067087dbd62d169d2cda298758be292252d6a9d520a2deb16a5b6bb638c317ecaebaaf1b2b23559d99c55ff268aa2aeebfacbcbd7f578c55bbb5932d9da745cb9c2951430c604244f6f89d40f6833b74832e7ec39e79c344f3823ce9e3dbbe79c9f73ce39dfcd7830e62d912ba7da1796d1dc9c55e8f99732631470e60597d29c9c8f7922204b2e9c004f467673e357e43190815e29cd73a003314dc0cb9f5fe2a0c686566a87dbd12c6964991155e429bd12c2f75ef7824616043c15f929dc2bc41953b8f1bd3d19cdbd78d1135fe0052cba50862a658cb96734273f4496335a450e6177eefcd4805e7979193ea04b41a2272f6e8b6a5f2251275744efea53eaf6a2be4ba9e75ef44aedec969292634aaf88a0c5b1802ce2ea5f7d4bc7c07c6fc51341f2bc42a0d7277ee47bc43de82d5d53600d25608ea99df2684898734aaf28d139a6b328e5d188393e88b722aa9ff6a554f10d58ba21facc32db1b17b4399e4e161d04023d9d0cea20e81046e819c9b52fb34e17685ba2334809d09588a119be18a1c790720edd1c1984e1e342f7d4e28819f4da0fc696d88e9841f83d18216c4473f142a25762eeee8db81b12303ffb80e6ae76dfdddef59a0512314f5f0c9cf56e4c48315cab4bc993457b7cd5361eda597022343cc57de87356b366675edb4a13938878ad428132ccf89447e385f0d55c49f45712e16a1e04c21dd4c9d4755c39445935dc17f1b7a6702f729431448e336cf40ae811c3b05028f4979743b8243a0c06457143785ef436d076b72e26945d26dfed614358dcc19c5cc9646abd1823f52e2547aa9ad394f35114a84735b891524aa94280fc8e80fcbebd159972df911eb10f78067e51a593915fe3f76074004079c76514dc3751256eaf46638804c688db041e17ffe3d5beb01f3ac841f7cd7481a78204d64002c6888f6f10a2861c5f861c2540871c6f95683024c2b6088bdbe6c53cbda5219247637aacf085e1e0caad813c9b2b7acf3b3b537adc3737b8d52711a6520918da3a993bb82151026e37251bd4a2b9786deb622466839b6bcf676dd007fedcebfec6d15b3b099d74935275f1d3387dd3406207c9b1aa24e50099182902994cf10880c88d4ba2bea893c832096c8a6e5ea294ab4b5ce15245bda24e5bb475d4add069375d55f75685aa1879bd314ce814c3b8784b79e2e2d64b9bc551df6f7bc30596cd9de05b13135b72ad966c9d1359939a3629ed3d4bb4db53da5bdac7c4ac75b2471a1edd8ede9bace6e1b59f7dfb7950cf066136b8251c304f87a1435cba515fdde9b7fede57a2fa7b5f753727917d388a0a45095d6e1d766aaabfbfb8ab2e9a7007e9a65d6e14a54eb5ce99e8d3342f73e8afb950488461aad70adf5b37779792ad63d62beb62af5a31fcf1d9c1854fa28978263a7824471ea8436407ce3c1a4568582411b18328c8f1b005394228728438c85127c6215b20896f40af74d4885e994e91882c401ce51df521e2287dc0140ff1626219cda5e494e660f79c3401d230a35766afcc98743aa5550eb72f65a4604f86544e3851dd13bc31bef8705f1e53480c699a83357d00f81e3e6e07618c315ed11ca4018f2245a822ad024fe12e36f1855ba22e93a9e914fd4431a402c31c0a431c38038bcce07690a68896214d64b1d12af090523792483fc7c9681b4d74749a648c119770c858ba4165180a7fa003b971065ae65b03696860210d3683dbd980b7d18007502003bdf2f2c4323af0814ee25948536303718690d1f111e21898fb1814b7bb32bc9ae5118192f202f65c3df50971fb13caeb13471e4fe5e59717bce0a9bcdc652f2ed8e2a9bc3ce16e7e9226398220778c71638144c45f26b9bf83a8932509070707070a9a77b56d1bfa1355e429b4813f36d006fefcfc501774818dd354cc4e72697336c86d1c1ccbb258b8b0933444c063e9244f45dea56f841f196be0ccf03090b870afd078782cd0a64f1e4b1b892af23288c0fde03a20d1e0be20ab20cb2d4b952c0990c44864691c1c23384670707a903304213af0274977646923462e097791e6789abbc248648938883d18c28d47c8f28d8d7492fe49d22b1ded22bd02299c73ceb70ff9ea90e56507793098846234dd03f2f0d821cb24dd4bd24972f60348102804ea34dcc95e6d126612c0dc3891858483d33859be92224b27892af29492b23c723b9205e21eee4d1259449734d4499264a9021fdab667292067ee067f401bf8b305fce91524d0de059da0b4765a97aaa29452fac6fd0c6edd65b72e26db67dbc3ac4cb69b8e2b5f14489d6e6dd3ba541346692e0a17622ad1703b455e4dca4195ff63a16f9a8ce4ae7b27b2d0ee91cd43e9bd24d2cf71547294823a5c9d9611f294bb324833aec3ede48ee3c16470bbe893236a13172728e7b8e8d33528b89351c2dde339c13e6fc705ee8ebba743d27037a3717745d887a3a6c9d3042353e891c76a702410ca43f14c3c3c9125527a6f7d5802913832484d64e9233c15f9264ca1af90e5273cb19adbc99b9b5ee9a804022980019f0c58977f00f742c61033ae972fbb52bafe729d2292b8859ca134b246daec3c1a1616494852995022bd225faf5e7994475b9b357b621b24b2c1213f2ef60e0ec952a739793bdc50f3b064703bb89329d0dc94873ba2fff04e860fef3894773f794772f19dae91f103ee6474b1a6e38e82bb9fe08e745de0eed6bcc7126b5a455e147d4051dcae892c92deee525c7373f372177d6a769a93bf892c92e7ca939f604944ee14694ef268d666d3703ba9e323752411b903fab4af3950f7658f2ed674fd06f9a3577cb4883f11494c12b798a197279797363bf1cfda79d6ceb3ac6dd4350f86bcb5c27dcd9570f7b0e048b87b57d43cfa883f80f4cab35ef2f74a6ee1be40bc847417dbc956a2fef2b3a423f2fd864723dea2db7c9daccbfc34554128a55e9e4c3e3f6f627d6ed3adadc28131e6a9695a5590c9a24e858da5f358d789b66e00593e240fda3a2973660d69164904d6d89ccb1de4d140e00ef298fe60be3698d31cade01fb41102337c47e54fa9014053a91d6e8ca7124f630c6b86db97d9abebfa555515fdb5bdebb1dee4a36b5b07ba5672ddc4c4c5b19fbce4c2e4264f3111897eb2dde6442f79e826076d2f2f97bc46eb6282dfbd4c9a2829b946b85432fae8ba30288a2bff9a33793419fd2a29799665d94b4a4c4a4c48a45fd79f35218db6eca3eb2626d9757d74932cfb75917e5d2d71079549a45176d2cb9a6c4e746ceb6e16d1e6442dad55d7abaccaaa0e2557bf3a66576655a21ada3268efabcbec15e8d5cdaaaae45528749148646262f297974d70897418936737c1af39936727fd5e265f5b77e5eb255b0773c9471b69db3a9a2fedcf8e2e93475ae857486485300459bf1bc8e666c7b2ceae0cd3e65ac65ed5abb774876259d5e5836219b675f515befa51bf951583e89db67525af1505dd64a49d5ed28b3638041269ceba89756d1b5df492aa3a7ccd89aed12cabb20c97b4ec5955490b8ae28af0455927932f868d304c341289b0d02b5128c39e65d54555f54c8461afaa9048f4aa6a893ba81ccab08bb6ead986bd90759005739ab32e93af0ada2362c6905aa7dbcbd5b2f06b501437763c2543b52a659fb8d56b955bec4d08d8ed56a7f76c91598539e7ac1e6dac142f937fd4cbe4c6160b5d03e91c208dd32cd8ad1fcd5936cd5942a0391116f5485ba531655d321ddc863a9d63592bd6ed656bbd6bf068d85b6f1bc01af5d6abedd9b2b69e018c6175cfd61b37140f86f52c07d7fa912deb28b086656957adb1c65b18a675a8375401e7487dbd22e7843deeec5e736f9626c64c4c3db70fe820f5b4b9af344def99e7f492b49d98884bb89e3db3b716f6b02c6c73d46c5df6e565f9f75eb6d2c55eaf35abb55698f9aa5ab32c56eb2d0d5d006bd4470bba9db087c535eb2c862ec02d6d71691efba5ac5bdcddb06e6f6fb16ae32976fb72ddd60bbb115f8ff852d8bae8906c66d6de5a8cc934611fad78486373478f592bbbc50e69600deb58076b7247a345b1d3cc823d6c4718fbfa98c57afb2d6e99ccd966ed67c5167d056fad35a35e551965dfd2192e51c74e7f23cbf1b5a7d93b1def64c63eed4b761858657fb4bf327b0c9b999a32d59520d7d778590b537f658baf5a6f3799a9fa2cebd005b0c6853d72c5f0b3f3147b7db864c4cbd85f5ec6b0c767d8e3b12893adcd36cc5eb893991eba00c698b0c4548444be0a0bea4172cde25f4a1779f294bd5e577c0ffb8b90263794396a7e997da12bdd93a20ad22bef51364f75d1863d6ed5eb46757cd8a2de297a53e1bc53959027edab8cb7e4ad9c48c158b69202d6a01e9f15bdf8dea32a75ea1d512d0a97ece1abd6692bde23ee6ebcc71cef117655900c31fb221fed836f9ec81273ded58de461281cad88c0732171cc79b813c1ca48c331c7c2c29ad94ed9c618238e97f1f2c9ee0439e65709c95d75181f7588036bbc435ce5e4aea2a8bf57f1b1ab8290e0a9f423f0589288483c1aa24b0c825047252186399c6995a68fdb56c5186f69f50a07c688afec0b7d7db53deca1cd3aedae7c37da3a24782cade94496a8d3563c9668051659f6702665773d2acb7089dec22277cd0367a2158f053ef154ba79e46da8abd371611b120f86f5695fa8c354b883d2e6b8ac77049e8ac5932d2c7b5e25057659f6da66a653a601ae7da8f48c95d5552c19a211000000001314402030140c070463b158382a9765397b14800c9bae526c509b66498e53c81863900120300000020000c1244800b5aff221b79000fb1315ba51b9b2cddfa045fecc9eb7daa0bcd30545994d6b81def239441d8853d9a1f557714ff8a3747403740da96f299a327661b427344e438f631fd7adb24bcdd6b3391534ef69def83131b9d11059809991b081022d039433b28717f4b8eb469830018f1c1b2511ee1fd11e73895d2314b6becb5a49dc237c88f7a1732f73db6161185847d4b94f1059f3d3c05a3835895ba4a92da1bdd68d5f6ba40702e7e24165efd89ec31c969d3c9be5cc8876a28aaab5d1974ebf05ab799a5e524615fc90524aaf12e99b4e4da114c7d4a85b7fd37b80fa4d036de13b6ed4033ecff504c59da3a891c4059de49b5bb98a8a88b0568e25f21b9ee2ae50ea1b1ec1426b4f69256d6002bfb419b0de702d27f1ea05544b2c4ff7bb9ae9084818307f9d8209c17033bdedc5e9a9c7ad8d99c487128cb4b7387982756c801451253ebaea3585f2846543af415fd6bb92561ae201bd10529a7a7838673cd6f53f983f7251209ac5d886cc85240077d0b76cfbdee27429730d582356168533a170bb5d36471d43236cfda9d55437299231813ea4beaca8b0e21d111c37011c11982ba2591c6936cb5d48391f092c5287dad64709f6a57aa4ad169c8283551f5af1b4f81cc90bb085aac5539baf380227ec1abe808b2c801d16e4d4fc390302293af69b39e4f2def0b3de389603b9332612f2a51c52df7fc0ce724fdac5b067488bb5c3e8a3c130206180ed4e4b8337ac52f4b542a01fb378354cff0a9cdf1dc181c9a9b7317fdd3502cc0ae5c93910cf41241222fd7e577e5655aa4dbd4accae7a899ca489d3ec80e102da05deb54421410e6f0d1fcc68fe87405ed5a62d9d1dfd6317c5902697077fdea865e9e938678862c482ee2735cb55826d348f7e9c6b56338ef78eee735bbe16e2b103f4cad79c14b83112a778aee2e55764ffb6d081fb641ab92939f6c4bc25bc6495aa1fbee59e81ea3bb720098114c121460bdd9867601219a791aa8b82e07a6d9f8230f0a22700ee0777fac4733608aea3b2b4bcbfadc0e2d9f1d5427887a56f5660934e55e965247fdbc8076e50a06913f939adc0a782a27c105e20fa21e09adface39863de7228227d4ab399d14148ad0558315c79f00af3abba4d18ebf8bdfaf8c4f66cc35e2aec95f531297fe61ecf2b6e51623f89cdcd42b06eacb9dcca6e62e97fadf703aeb38f8bd1c2bd043c4b2bc3e8e476afea18953a2e1923f9d3c60ca95eb29b446a00aa1478639491ed9796a6f40ab97f08bc26749412083be65a48de879f175baa7c8d987350353809adb7a180732ae74e907a44be9cabb1a6f07eac20270e63c4876f3bd3bfb60ebb8870a153facf76bae1edad40388f0ee10c08879d75410063c17774d7c9e4074dc96106d378a42fd2555e413e0827d67ae890db6cabf9d3430cf481abb2124ee4d4e7194e789735c98946f5287eb7a36cd1d3437aa124cf09c3690822cabcf7d1eaef8fd653043285d20187443ab113680090633f5f155ed5017561fa0aad8db34512b2fdf5a1a7a5a0157058437dd979230b93e57eff8f0515c437f040feb9bec366f8d3bb29adb03bd3852c9d1a808b947421f32b32282044b8c8aa0ee434b3c18011e92e240f79e41e7f7a3cd1992da8cdc7adf217cd671c37d01700e5f09e97923ce1df1e281149091b21dcea344f68dabdce855fe30e96966f1ce94461325bc8b311b842f866d30cafb8ce6fba0fad84c0a2dccab8744ac00d06d1ee02fbd38b43162a4fc58265c9ebabb54e8fb98f9472ebed0128f8abd0fa15259ebac26509b520812747cab31a07d437d26a86d82b5a8810e6c83a0facafccd5dddfa4a4a24885af7d6c30e897d5f47834facec1dc22f6ed0f92a65229b75ebe3eee34d610df7da8a1e7a0ceaf49e6f8f427ecf3385d8b0fa8615dedb5d1117438c7f1edd7ab0e34172f44293e85518e56ac88894029b73275e0df7aac58d0d285684f6d593e4debcfb7553c2139adbf516d0d608291fa3e570539e67a2d40a49dfcffb7481ce67e9b9739a8f708994aeed94222824f5fc50d965468794fe09658a086852cef4bc53fd6af89d81d8564d794b64fb1d18ffb88fcd40157b32c1c9db45dd71c1074104ff3ebb3847a1dc6b792919d1fad142819575928dcef261cbe78c8e7e0f1418ed3ea7411caf6f1312a29e1b6e6c7c1bfb3f772a0196f2ab8876f282000562dbb37db083d169536dee71ff682cc7850fc70fa7717367c25226fa600665ca7e99f147faf35659ceee8fe2f4938e7d9ddc957cda663ce198b543a55b74c7dad8194157bdd680b69a9dbc6e5d8ca7931165a6c8fdda192fbebb03e472a2dd3b444a9823cd4387d6a42e0d5a7d44aed54195362e9bf5f7d6b880f740994f10c3dc265c23adb33f30ca386ab90b2f7f430caaaf12a1959ae0bfe1743d0b0fb27747e147682346994e2bab55213b9bbaea1f336dc10ba0414b64353d37bd48f7ac1e865147cc7a1c5a86bac41fdd08f87704b08ffadf7dbc4594dcaf1703873c2cb817a706bb14efb8017e4f13bdee2e2d71012c0b104354b5e32fa2cdf8db5aa327713f6cf6e962982d808629a69bba07ce63a15c5ad097794df0b94358a49f69c1e0e7011aeecc4c47a6a59ec81127d7284cc7b321f2f5d632efe763815e77b1073d1f160c04daa0f478c3b56538c6c1460a5d027fc55d95f558d70b009064540d62284703379245b353c276f3f055e0cbfc5fa8ce22fd5cc740a9da3760f8929c95aad1d17369901d274868a1449677f4ba56c566db6e2cc45a957e98242db5129c20cd509796da0e4b785418544dbe6f179b3e2116867a241c67b5a46930d38200a8167abd625bc7226ddfd3b4b14f9a4086eee36358ed78a9ee44d31ceda216626e8fbadd0467a928b383a5c45203519637d1cf7db6eae20708ebe6ab9d19362dede563f9a68a007c605078481b26a6f120d0e9573d55ab39fabf4da9cbd4d5fd9f196c43a40d216197cb12b0c4b1e01010732eba06238ede36b20fd94aa161e0377fc1b9e6609a1a59d448a2de555dcba680f40b2c9c00670d9aec07826ee141fa4f74f602b7c850786c6d6b0d36b249126ffb4162127617a10c37ca411aef1c46dfc6a3a0ef247698279227c2f2ff56f6fd09f7bf7511062a5346288286494d20ab5eda405436b5bc41f7f5b88b1a12d673b281f8e5fb51d260d4312b692ae6e70a6009326978cc69afa77d420d22f3a796b2144bb2a2d17443ace86b58d3d7a6a3f6ff03663c01ae8c01288b083d7f3405acd41e3567dc8659049d569657c7a73d1c2b525db8854b91df59f7d9482aad4a0a273d3080c686148be174cf7a18baa73360e927346d0a7413937054cb415b4c0e7f7f1dc2ab459be09f1a61f5a00fdf7c39f1990dd81a9e94e7f2b8b351b810798c1af0706b972aff8ab705394019a50c829a621d0a13020b989c64f9174ffe02309cec18a9f7de675cafa003f38cc5f6c6cacfbf3b429dbe3fe44b9e0f89c6aee4d04e11c2b891a5e48c02d850d404cc4b1e0aa6cb5c79cbac5635f8e7e898da4e40a85035d818e4057507dd10049e77372a159616a99991a0c566bef8701df8665234c48135c799b14009d1de10fd00ac0deab32ef815b909ec42cf3391e503f4fcb28d4bb82cf98c4c305e2198903c29f9764505b62ceb186f39361999c36f7479afb0d1366701cc9f4efd0aa35380417ecec931cd0d05f04dc59d09179860cfe2a4ecdd4de2795fcbc414bc28255fd7382ea68fb6d9ef32e3f8fda27048d29c9aebd8a96ddda49d15f6e6a16ce84a6a2e0c6687099a02fe5f53d7db5d8e70749c62256d9d1509e630e2200e87e20b2242dd375cfa1b2884e8874d2d300c13977bebff486ffb3d376bd39a678e6908780ee894e54c40457d3be4c2e3f3d7589d36b8bd90c66e9aa28428e88032b536b01ff4991d8f455562e468ab544243e4059d0fce3ce912fde4ce96f5c5d86be74b400f352cccd2bda34b98d902656225dcca0bf1215d9c4f3a04ee07a102f79607d894c15b520cf94bc20539e30a3139618f0b2ae991944eac33555806ace8815ef2d4942408a0c7dbac667f55464e94d029552666aca6cd78a4f2745f8995e4d7df39c554a4fea3f122b90a8145f134d82e0e426048f7601e5b814318627260aa7e492452584904659a035db933fab03307922c5850f9c3e3f80153ca2f07c105562f1fd9110cf1997e582d894c2256a9d9573bb4489a8474aa41e3693cf1e0a822bef4cf65b11f5a4a8029ba02c0c42a9fbd30b18c701bb695b6c49108a529e83d7adcc984efde72b148bbf9d0d410ac3815c67bb7235279b39263192ec419cd0d1d21dba8ca77dec960941ecec3a73ca78f7d921e2742324299e42e36145272d73f3daaa3b32cb64dc73e7e11ae0724c36444a7f3593f90f57394155ae50cc75c7b3be2cd2b77698d70bcf480d476ff5addbbb62d8c692effff0e839ccff56b39b1f2f3e42c07ef091973e32ad8e576dd62bc5db188246c49dc4e225f8e9b3444496521eacf492bca814b856a092022adc4b357dea27f3b509ef706195aaeafb674f316201592169d15b7e34b6b7dcd3624c4d2a2f3aaa280cf6bc62fc4b625d592e1cbc0e045ea972bcf577e61a54fe508746ac4db594b63ea1479d9213704067771a46c000bf73ca439b138c89462e4b71e60b465863e5a830f987a2f4c8148a729b447fcb0970378090653ee0da33ea42579bb094508ae023b4a1bef594f80a4664d9f8192c8caba682de15f9054085526f475017e0744235633ed6427a1acb49617d864f754ce006a5f3d9b886a969f0dab7c9a0e25c26e52ed01789c521e4a8484c7ac187ab77830d93b37ba7775fe4901f955a189d6d12acc6d774d8a62c32825300638efa3ca2745e7253a6c958a6e528f3e1d2d6d07b7e09a8d6010f8d2c2fbd6f74df3e975e939d13a966f3b4f2a947fed907495985a8bead785312a1639d7d72c4f6bea24990a8c8cca9bbe213d0078453fc6cba19eb9d56383a29842b2887f13adc50f1f070c548156792d40befa3f9b0d03c9e01f14a3ee54832f64f2ea07553fdc2391ef2e11db2a984224cd6d72a96322b39f256f86f5e41cefa96899930cc9b4a5d0a0c3dd51d17a4f0decd6592bb2c56dd4549e6d015accaf663def3da3a096334456d8a55565e8e88af26336c13556b3317d3f3c403744c0622b34cb32e6f0e326a3c900c0341264e47774bb1ecc90abd8d095d0aeaf2959e1d3c102e14ae57c76f3463f39ea8d24ae6a4c0fef2a4976dbf43d4bef935ee62ec91a6e3ecbb0341b0798e700907b18486811672b4731e67b841cfcfd40d657254f9870f8025dc6234ac6ea919f1a0b98f3e91ee81da4b21ad806b8e516bd36c71caf57c147dfc68118e63e75881f3116f2b16a8a04a688245dd4ce602d57a8e1fece5300a88ed5c7bfdef5827e01c1538c652d684fa8a62490897e5a06c3eef44b981423189de5103577ce10c5fbaf024526d2ec86303f3bb347277b133311cb3f4a3b88fefb48bcb1adf7d56d3c266d9c9f2472dcbfeab72476372eb39d94ff204c7b00c20cf62295cb247f0780f3f0c191c699e27ad98bd6ad7d902d61c017ffeddc7809eec2f7e80c3798daa49a98109b9967c5f98d2877904a8bc4f2e7b6402f80b67493838050b51f4c1604b64ad9544b0d8363a2634fa1c225f56330f6b3814e04ea164e1584f93885a37252241118da29b510fdaa614d122da442385e61eae903d63fe5983233814a91ab9a99446d156724996ee2bfbb91c85bbe8869a463b02bef01565d2d1fca5d87ae23939bb532473c16fb7f8150a32202f5ee2eb015168f0249ed84b7a65506e2fa3dc4c0e81ef4cd4becd4a616a6c2312f5213e91dbdfb35344c5d9c7435cab45193fd499fa6f5e31ab83d00ba5bc58aae10cd0715ea6110af6f84d249795a187a95dcbff80daa1749383b310e6c1ee068247a9a2e2c321a81596a2b99a0c6296c9c9b86525394313a38ba1aacfbfe75b48727060e14985187ba0242012d0c22c9b7508194a8c04e825ec9734f62816d4c2d3836f085b9a4d6bb97f7af0ec2a85041948a5bfd2bebb5a1a5339ce729ed0965d2ff1598f3e1e533b95266c4655613c4e21abd7bb0ac82ddc8b4d58331c10c31c8726a981eb3d30f4e28e9863814f42bcdb1666cfa6729db5206317db924f669482766561ad27259112aeb6ba8970fd52fee40208afed5fca1e679942c532456e1aac12a242b3f56f55b592fd569fb384291a0b4ff0d8682e2d9caa8d46386f0ffa8a30aa9541380801f27f5b60246c574b1ca170dd2ea886bfe473ad6e055d09bb62ff5850410e7b231aeea855da2aa8a41b79ff88ecc025902d5298ddeb2a84f2caa44f7fce1912de93750c51c3751f352a5034d253f986699495c1fd794bf0c8be082132943c1896959f231804762f5559b336de265e0370c719cd9ede74524f81dcb8b113a10e29df401290276c786cd4cc09d5d7e51492a054b087d25001c13bdc4bf88100c13d9221e2551ce580e9ed18cebd617aff59fe07eb683a72bfb8d716e84a66a252807fc2c67a452ab3452569a9bd95012a5f94f7e24bb6fa5e83a53713ec4dd8f9b50865730b71fe236aa94f6bd2d34a8c97f4ba56ca4bd803cfac2a9f0953420e4fe2eb6862e041b5540592d9200a09f5e320e9a6ddbc34585810912d0dccc79697064241a9d960d88a941075580053b89728f0e1e893f31b71b12da846bae282b62ca40f9dc61598b2ee2c32dd7708064ab0ac6941528e99a36c3431c5988949973599e47c4988655f5ec961646e9933af5bc9490d159f90a0fb61fd81c8eb8b4771298592e20f3af206aab923a862a3d9570344d21e271588984019e7eff9a8d581442f954c4770eac33e2e251f0c6c8e10662837feffc8245cb11920f7629718d6b985651616e9efbf30c5130bfd0111922889ae233631b11014f1206705d7a93c0f14994f68a82a14e93528350f01189a024391c97ed78222a2300482499a916a2812cc234863a467f923e046446067cf1f31f120a1d546a834a7c360e53fe5c9f0c8d712064860bfaefb7f02a0f3026bb45e4fe73c893c702c86e4bb6a3a5420af1f11c27b43090bf5701810f514eb6ac78165854181f0f1dd3ee0b53263ac31b5dc50f3653eea8df19476688f15f9603612a92d9e098aeca8a5ea8142336fd2b8252d6c2404ab3888500722117d23f50d6231f6876d6b6f2a26eb6b4e58c08877ef647d11be216c15b021e5e33f28a7e5660dbdba11ab3850b0393fce875a0a6ac79fcb21c7451d94e35bdbcbf4d778a80e9d7f51e6b18ebb9e70a454b3b0a26415f1184d67df86be84e68f27e5688b75b5d5748229b4cce523b09deda1b00362eb65298b03a99b60f58483d025c8a5a721dd9a41cd5a248b9d42bfd72202d4012b8b395264d765dae581d182b8e199e48f139174088bea5a1deabd1713464be68240dfdbd662251e2d264b29358c20f646c61fd86ec06d824c2271fb0318f10a27dcd97a9b0e2d3a04c795ad3e0d8e6e9f37a393880d7d3fece448d02d8defc51d8525032931754eca9756bfa267700d8538113b11dd8d704a24225f29ceda521abd31d06bc34e8bf6373d3d5c7b59b0835b099830ad6a61ee3a4fd5cbb92a2f66bc8b30cd40c89cd434e833d104c6daf9df3d67a84800800bbf46a75862ae4b13e0323358e492ec085b914a2fbff3d28e98d339a616f258f9efdc8068be066360848fb02be144fff1197f7ed3a7fc8d9311913aeb9dd4954519adb2300ce2ef744ba0528ec3948f1336df9121292b85cd95fa5a6f990b6a690d3c3bad16359cf77e4329e2fc89054ac03faf94ec4f69cd549606e09660c23f92a2cbf2bb2bd46dc13dc99f772eef219bd41c24d50be0706724fe20cd1e1c26226fe3460bf41cc057c782bc89f3e5a9b74202c9842638882dfd5ff8248d1c2071ff8fc52d22405c1fd91d99e4f1ec0170a1bd4479c560c8ed684a345fb8b5ccbe461252190c362936999eda71772497bce26205def90fafa4411d057e6039216630caa963a7196a1746b59e73b91e0f328c592ecac14cc38d466dd97792a5ae03060b5e26050abab52df9863e1f24d8914447b71c39a8a42a38241dcefa154e69ef201ebec2e2df37143a528bbe324e5b2d4687b2b6da4b7c898baebf42e71e3e645e280bc84080b5f0641518f7f97e89ebe074be229625d596d321cf0cad8e358a1ae130e0d56453b8beccee1a8f4c5c5abe542b18e6c5e58abe3e6eb7188c54ce02afd9092bb2a22d2419e0eba9df7e0ac2ac8a7d6144e62b2f28a4083b6d4bad4134ca50e725c1d82d288d15ae044c41c49a71c6f4e68175a0fcfd41f8f4a0d7f6fd64276719970644709808a528d1bad143be33482922ad7d31345f76290038fbaaf54aa8ad795ceab8df11070a063b79012c831837f4e1b969b685d8d88e440211c679a264df692cf4959ac96ccd1fb976b009cb472a13a8f7b853d16a4adb06d195a6e60dbc9dafb4a103fdbb06a4ff4baaa193046aca8f69f3efe19be810d08bc6b83c11087954475d0e38e2f9829566072c3e69d3347ac3e4f25310d88b9072a9c48278834e70901fc7a082f5b5e0f09a3f85a3253603a7d10011aa11fc30d5293c4d57fe56992342a2e66eb60346f2d7f6c4d18dd8cc6d7683aee6473a3f0f9ea8e6fd1f02391f823c5f045cdb20cc6dff0ea2269544d9dcad8e76794c57a5f87e610bfc3bd22b07d7f94f00786c1cc6c92d001855989b831bbf7fe5d189686f6ae52ae67f91f8f87bad86f978fc5278a060df3c0948a2febe4639dea548d8eced34292bead3d74a7348132d6604b9b6f68546f35e1977eb2e45ce609a0a25db364f2350db7632f7dee01bca235b6e44e27072cc66853c6969638e0cf958e66307c6636ec5a2c1ce37a0ce35c79e2204cb1ace371115124e8249aa228173477f44be82abaa6862ad982f5b7a6d87948fdb67376105d981e22644c57822cd9801eb644bbf581b3163688052b72550b121e3b6134234f3dbe69620b4fb9e2a1bb2d1ae85d4097a4386bc884e70190a4ad97fc47b8bfbfddbfd5d629e05b49f06a52876530a7aad3753c3bab87afa23cc85c21f94aa60e0cb25f220ff00a576e341df2d1917dec00aa8553fef603f1c1dd24aef491b932b6df84d784abeada098583e7b2ccc8d400408240b3fd58f4dabb56c648a5c3cef3019ccab07ee1930a7db4dc97e1845097bafffd58b9d22fa9ddcb9b704214fb7362132f3d094ddf959a159be08c1ef279465ca2f56fd7f2a23216346f91b8b0230a35cd75f8c694174e416054d2919350bff89ebcd1b67fcfcb7f821034eff4b839e85cefd86d1b995115eb8f782cdac6390cf3e284587ae3ac91b46843e51c7e32bcb98c6f3e6a68f53a2299ace4ac5a8f89ad3c8e9dd8f970763114fd0e61318c81517d4c7fbfcdb95d9eecc89792afcfa718ab46e947013247966188295370551c85aeb2ad091495c54fb4a341d45e4317650d498468407a5e1199088a057eac11f0f76efaff375e166833e0933de0cb6e978b7d55a51e4e57afe9a7df7330a170e30554c9bf2d36ed12191fe73e3a310c0cdeb3a47d940471cb04c563097bcfa93db221a7660f0233a8123e68b1b66df074bf566871ee0365bcc68ed170cccd943dea019fea530580e8eb98822fd28fee056b70b56b65b1282846a4f77a3c0ffdf97f2f20a6b72f870d6dc38b6692752c15dbee1776c39f804d74356cb4137fc65e16fd6bac017dd7667c9a10eb2d088d06f0e03a989e21b31bcdf30fa1b6e7de5487f30c45a28ff32b26c7307f6755ea7b5af20f4643dcce820c47e3c512350aa0b59a3918d2d842706078aa1f896971bcdb8addc668199029d26a543144d03d1fd65b49308b5b3ce0a0c167560a198682d5ae25f34554aa6f12f0595b363a34b1eb8563f6f535802b135908617c242eebb50b8cbc2cc6813c4f104b7c37e7ff34048304370ab13d30e8fe19a28bac5549f6e2931e9a3f8d442799d00ae94af7c6e3600cf35ac06d9fa50b2c4b7d4ef88514acdd8ef7200b2c0a91e05120ae8ec53b1d9d6636594205bff6f84ed927768352daf0fd9bd6e83e720e0cfd1cd73178f179bdc6a02042fb120ab33688bae58d6e380113f3cb6b21fabf2526460defd9c03c5c7a219055e1e4ca471c41710691872fbfcac1f50c8a1fe7d7dec17d66c33bd0bccc314a0b4e9a2631885a1f3df67dcba0f0e28300d7fb7b1f989221ef1a9d8b21b6cd08e1e1d6b4efb6600cfc46c87f3e12471f51a0f96afb200d41a441590afbd72d1e9e677df236ab6c112021ce5d0bbb529416bc1e3bb7d7d411ea98ae647a4b48e866f240673bd616b752bb3ba611878b4507b0959c2be4327dda8faf21e5f3bd10de804b518bc7ba1067bfc88aab2189e50a876a83f311e08e2948ba7f5055816cee44979616570b0acbb3aee9d45b91fd0928ff3a4b4761d71062e64826bd7337ab9c00fd1af0a30be04bf35a730cc076dc075f4bb25e68d28ccacf0f7b03d208162a1fca8d4722c8020492c4d403aad2a693384d438595dcaf405059f41348d722bff9a4be0c9e7f53b6fc9193312dc568c5c27e78d6bb0123329fe562b34e1bdd1e6a05ee1d976c14591336c4acf9e6e246268053441205bdea11090685ec2afaaddce46262d9c3f3f02dddb7402dc74d42fa25756738ee0fb1dd503e16267ab574833cd5014ec8deb322d0af6aefe3840f9ae81cf2d87adab820580e266c32ad6df2b966bc06954a0e62936974e6c5dd85d8b431f5208370c92c37fdad9fb78e891a14cd218e7ecc7d01601855464aaacd68d91700ccd2dc8be2e21ce6520bc8f219974cafc642041a63cfeed5fa331154e24a0413e67138017b31f4979565e63c852b7b6721d724c405f78e1f6b9dffba93f3de845596ff5c2b4241522dc592da4175999446ca2fc1d07781df2c2b01449540d2bb16d4375fbd5c98d8590909b872bc0ee18f50283a763b0d26944a5ef14087d37a1cbce9a914c2b35a5eaa2d5e129ce5a606041779a241e36ac0925b7c2e85f1c5eac5cc2326bfe3a514781feb269bb905f5bf766e7737b7579e160f3595ff9b9bbddb0fdf69d2c5b63f0de6263f0547bc288feee890cd0dcc3554286807ffa27f9aaddee0e0607e189951dc5017d6b4290cd44b4d87c470beaf52e8fc1aa7a226072fe0259db9942a90f0b691802a518d6109202300a002f40a1f66530dcceb9ab4ed4798ab94658fba2206f1468cc07cbdf075c9e62af29306acc39a83e844c61428d49c69228f9f052312967b7968751ff3f9f4aec3651353a0163dcf28746c7d6b0abbdf96edc932941329dc71b4936a37534ddcba36408878133a6da6ec8939c08a158fa505da4b4e5d5952368a9b4d1328cf81b040a4e8c01267def160579053da33eef8a8589516c5b90f24033c349b6ca3607009a12e63f94de3d97b39ffe77d01382703e303fdb687908e747906c9d968f8ce8890a5c0b9edac2dda1741bdd1bd27403e1cac94ddb64eff7070b8e0537e226058f60f92c0b23dc6f8b40d9b10584bc44a6928fd312cfa208998dc1361a7ce99919ef210351f21e186aed994347627fe573a15b6f7dd48a6cce38944c75f3d53dc2f1ff2e56ef36f4fe6d3c214f8abdaca68be78257fd3a87c8bbca13429ad7d77ac09e3ea6e9aaf23f3d9ad02f0328246983b93aa0a4a7ba91fe82861b7978e49d823e48bf063005b4eb81a24a8fec76aad56b18b4344073bb6fae7d96010922e2a1519b29ecff9b531f5310eb6b396c3e53e1245494981cb9f5ce2fcce77d12a134fcdaf5ec3fb1818732e77ea8e4bda4be8a63442e50839b2e91cd5c432755eda3b4e9a3c0e2159b0ee9be60203dc6d80f05807fc2189d9b25aa3eb20368ade9161deeca609928a0878599a66ba10ee1c82f476f47ea278d67c6153c126a640c53e2b0dc59e3c19914e0397b2b54c65f72345aa2f18572e7184d65248f49376fc1b48e3bce390ed455da1ad06888bcd1cb7bcac6f9f367eaa00ef6891470c43255766a7a6dda124a6d7c4edad5117cb3b070ed9213a55da93f85b03eff0040649e7b9c5aeb65fbeda528252bd31a41891a99f5915291050b59ecd234c2c4a860f1f459f10095c8866e1754f69050c327fb4589c00507ef8765e87393ee57d4298e005fff5dd473866b2111f194f3143b688095a1397acc2f96e8460f86ae96179caf1073bd0d239e19a41d533710c920ef4164feefa168e9c19df6795a4564b0d532b423f5dd16b7eb61588a7480fea0f6f212e04fe8053728567547d011eb145863a934c31d7c069ee286e3f1581abba4aa6fd95f72c5c81792ff90627d1fc4dbadf623e80350c06b0b138ac5ad4f88ca8599b04c65acf7e8b3b0791092eb93b9685847a2d7bb2e5327236e3b869e4df5bcb3d76ba63c3a44223a779e7937ecd7ab974e07a8a3f381844536ba91e85fd14bff200a9bbdd5914417aa3c22e5777ea5000724298c3a4e2937a6c0e1e443350b786f09d91bacb247900f651c3d7be974ec4e757ec449b047beca1dce60f8551ee8c2a594b1277969a488bed1466cba20e8283d618b1b1ef5885d3cc2e72cbf0e393d4117781ce8611d1adc8aaf15f841dd284c4182b2263b598754ba30ad3826dceac537f02669e25afd70847296ac3d79209f4b4f135abbd4c1f4ac9ed4801e9b2647b4bcc1b0c23d90d41d30207d704ca9da15ecb90fba069e677165b4822e9a6f8e53c730693ec4b83491c8628f78ef84f8405b36d9a9f1354fccd82b12a5d66bc27ce300af332135fa420d86f8b02980c88c2192048a94470300300223b3c4478d7c68e4eb2678b99c0fe8b233404a9aea84976926c417e0a55c3bdd8812a53261c261d9bd410207475fb9ee5a745768ab32234957440b7a23a4784d5c300d09845d27ccf7d63e2340bf14bf5580b32f06bc98cf1b06be0762fb8e2effcdb94be17a6f0df70fdac6ac15e5cf116605fe407a4210eea9dfb313a4f5ec84e35f795bf2067d029feb44796fa298bbd4ccff932aca8ef63f74d1114f919b550b713e11012e578d2d551182ea02f9d531d0a75f7068881c1a8e0f68ae841abcdecf6225e7cde2d565312cdb926459aee06f963e66230e376e991663b354360f0b73fba4e7ac5507a54b8d03c117189b4f100926a1459a9fe8ff537e480274f769cc6e91c699093f3e57d55583b1120d66e7678de4a1c4f0d1a623ce7020559acabf583df422db2005b7899c80e589e1b5c8acdd38ae90ec8cd864cb8275a001fe4f0581051fa5eda2ac7a5c27f0b13c0639f3c13ed7e01134588efa49c64ea2b5962d56f04fb5a8d376b9de831ca297e778c3477d3281a6a2d968fe85449631401e04710ec4211cf0d6c9314586bee9ace8b195e86b197ded4ca22dbe678194dc8200e9e90aab3853bf93f1d82ac34d2acc64005663d261900fce8345d817290321b6b69fc911791f9b75369f418ccad0391f756fecceccdb8546ddd07b3da45d634efffb15a79887dda85b61a92a8b7d31e48c3a24c551367c83de8691aa626f75c0821c0a51e7dce91512cae90f55fbc07a084541e6c2d9244ec2a04db1f87d04e1e9626f1a1643f61c9624743b6ea2404332bbccd3bd5181ac0405af9791bd8454a45eedc8062f47d53c43432ed44fb04f95d4140ad78ed4ef6691b46c96a6897430b0219dabbcca3522b0d651b34578da4867d327fd4fffa6bda30350b394bd7318075377ccbb85ea795362b4682baa59493125caf0e4b30444ab2a9ee900779d14583d2afa0c39ee95cec03b87b3a3ed7b51d8f7888b94fc11513f171e1e0fdcb026da852fac5a2c4d12d088743cb473d8cd99182a96aaeabf18274ea5ac94f339f4f241406fecb496127f4f781ee5ed94061b167ecbaef10f95407b3094f87422400e442f8f1ff4ddbf81952c80a61439ec83f0ee7ca37090f43ec076ce819167637cb2450feabb704a62ed45d1cf2d1dbd11ef55c8c89508791ee5804afef460a6f6174e922e715204c83755e07bb8e1f4ae6a7d9fa9681f6213cc3731ac47bff8df3adac67673f95a91f7033cf4030fa6324d25a4c65bd2f91aa9971e4cf5026cc5ee96b1fb0b71a5eb6ab0e158f30421579fa6a0188adaaa47e19172e0055ef33d9d65e70ce8bcc7ea53ca49bcf523bf0cbe443df12e4379f27f757fa055f771291118e845cb9f85e3cf1e2b5d618e6c2a9de1c5889e910d0b20422f4c54b606b716bd8f545530ae42eab8eede18c4b902ebb4884e0287629680104404d846ae7c9ec897badc2148562b6f38fc503e9b3800a7ca7f72202f4bc9b995e02862266cbc9789c8c2c3df7b18b03b11538f07ca29566f3e9c411d6fc4e448407e7cea93e7bc2c7302141ce4bfe03f61ff063b5a4093ef56dbe1d3db803d4fe7966bf23c55d6eb2cc889a666560ede5df0c85a633d540b26ff0024557fd97928d2a838a7fe0c208c9a167338bca621e29ec94b81bdea6505c130ffe6478f1e961913ce0b4f60b99952505a6f0592413628cf58a4e204fef85e2e2983d5120311efa61582a9bda34e3971469460c32718cc6c879d4e8e8f3c12412b68663c0faf42a8e5983dac7ef6bfa8b589eae1955a669f9e85c00237692c9c198143e2d4205921e4b6f25f88cdd6eb42c0d9dc120c75b1aeed5048a5adf04e132f1b712f093887aa9c509489a1239909ca39959b8241d8138502cc8501f063c42443856d07515447196b84673d97ecf0f7c3a46bbb0342dba3cc755c7d91fa721c0d52b1562e6d3a9a433571c75551d794163c9cc811495c508cbbf029b0400a4ebd0699b0a2f5b7fb5ddd1846c15a949dc09db494393977842cdba3528af48d8d516a6e2ae31f2ed0f4c363f0e3bcf810b188f1cd6d786c711ec15f359d0451de79d0828c0d72fe639c9d5076d692b36d3cbacab204d39b3cedc95207da13c41891400e1596bf6680080c08ebcecd6dba65887c780a43e14f73666b47974aa78840055c410cc5e0404ec1a491cdbc056d4576e6d5ec2e5d5a936b4e5edc54d17ce9b1126cb2e660b5fd7989c0342034fe5cdcaadc7a700d1a17c126fb884418a62cc3ef0457c66f55cb78be99dcfa85fb2f607359837ec05b9b9041d6badc038abec51a3c8eea636e1c7c49f8fc1b3167eba483a97294649051b26917076ad10e1438bec577e577a36b5621c7ad606a9db42f7a7ab2142505875daa430c62aa18eabcd5ff6c8feb8374b9fbcbac8c2e880c96bd85f42348ea47a340ff0fb48f5a9f08210fc3a2d28317122d4675f99eae9a5700dba91d595048c5e72f70f2fc6b9369404b7ccb99c0256a6c1f5a01cc4ebeadb4dd25a5d380f398824024666a098745cb019e9140b7ef6907037e65f09b68621b0db3390406544407bb88728f31270d33a9673b2ab589f3f123270a6ea4d21b0446f252cdf81633e011a9b8d66f40ac8fae2abe7ac9aa0d5009a352cdb3c42eb9636f93f86e67531201e32eb00329add1e4d40121c8175954ea0d8c5dca03eb98872e67e438b4acf3491c876c39df622bc59b73fad563b9f83e4335b480323640d04052af341a8efb7682eed6ec750df956086a67cef0c16748d90499744d9459b3871adbb042a186a64abe97f4d87d0d47a1e1a08a16158752489040d901f284243da8d7cab96dd9559c9c76ce14651cb3f3be402e8e294dc36593356ba23a517071af04d0b57dc07ee2cc043223e067717a414f44bed54408f5ff1d43cafd3a93bf4ee0ae6483a14add40f3d830982c92a32b856a765d1ce37ab4bcb4e6094643ebfec7eca9059542f45c5acf8d607d0c7f00b84b49ddf765d02ae20d025f4783412eca396dc70290348b6d0cf494cd65273aa7890d4a587aed12ade34d4c0a13f9567424f29483cf3ef3cdfecfdeec6f90ec4e310eeb8eb25df1dad9ea0b40623c50c1357997591bdf42e52d957a24e5f446d2c3b21a6b4acccaa48a8b8cbe1265048ff6540b01cbb70bcc9f1bbc9087dcae68a2cdd0ee55d8207c65daec58923997f18ece57e9a7b5c5b6c5353db929e1a11944fc169e0930e15725efeee1875ffd862af390653f71b67c1e4c3bfdba055bb2df6a50a69703059989dcc108e9e14dc37cbc5a8904e94841db4ba5e64754d7cee67fc9fe02bcce134f08fe7cd806cf6a8d850f5292ef570b3b3ce37b7c76de84391ac3fe55ca260273703b11d8abe7b78186e8ae5ec778f65c12da40e8eac580a70d83e6a3b0817d9710daeba299cc4de255086c4a0898645b347b05ccbff9ec111cbceea523f3c098ccde3807df84daab9789bf85386e9933ef04a20cc79c2212d98f4ab0e5822102cc62195439514afa020045dd9bab4e89279472f240119d601e885ada824ea192725fbc78d325c82b15710cd903919850554b68174b3b8469d02eb1e5c65342e9cefe0c15c3b51436b2bfb9cca56594f78d7ed5bb0d2e272d21c529bcce613e1199c8ff6300615268e883f3b5ad879fd09f5886b97516e048d1fa4cd54d7e668709bcef06baa4b47a26b6b025b46a8e914b901c8c2c1296a8121f6bcea1631b3e724fdce92f53c054ed15e31ea29edb2b1821a3ecf4eec9ae45424d14bb4f7a4294ee7673036f086f15aa20f4151559766195dfc26ef3743ecc8d6b97910ab056c73ec37454df9acf15f104c0f47c85b1351e54041db97e0c31374694ddf5a88accff9e9b475140a88d9f5bb6a825e6573f56dbe7574250db6c3d9f2c5efd651883f21024beda4cb4330ded857a891ab008ae2b238eb59d4893217e4180fdce196f439fc53e56bc5d4453417deb2c0d89aaddc47aba000469dbef4be4a036a3967394c60713fdd2bc5b03cceda2c8d071792c2fefd11d63d35a2dd66c5fc3859b6984724d471e4c33850a814955a8b0a6ebc1df4690cd1e68431f808bde1eb2bc8776028c4484158439053cc6113c68355fb8f409d30528971ecaa0064c87028e8b8974c73e46aa68e9b04258865905af74ffc998a39160acf68effff4ee0714945d8f9de31b80a49860a87303b0e512ff01bbb2cca2c90981c51a9d52ed7e091e9e049e2fab3671a0be428a69e53eab57c5501f288e36a347fc3f06c89b179a741e59919cbf0574a8017f825fe050489f6aea012fdeb4c3484fe455d4d056a8bf34e03f30b866032e250f3a8ed6a060415b172d84cb29c964442963c31b3e242c520a792f95ab218b4c9acc13484b9a2062685bdee7520c79e9c3115a479b742c6fb6b6cb088c74784c7ab1457fbd753c0ca1220c4712494adb4d1804c5dae3e49c9023885ef263090b4a8c11688e00d1fc63f083f2d1089964bc4b164cc6d9b79568fa4d6ae2f4714a5521680e27ef0c4bf0ae5f7c8daa1ad39e24a6c065e021d166ba05b1b20535374b20f5c611d6c04b1e7b9d71caf09076d0117480ed377b86d92e992183e1ad81a99b65ed4c190e7f9df647f34c83c1990d7263117f2a44cd64000414623985b0b2d15846f1488a33ba0daf5a941403802d0d3624b105ce30b7f346af5e53c7a7b826c167a4a38ff3ddca79027619d20e2a7f871b9c4a042dc529981040a39cc1a65ba1db8b620466e863d6cfdd6b3060c7781455dc9a1aa16370e41912ea43db1ed519e35207a2f8b3e27abed020a300087230e2f1b4048a593bf8d0066212b5836ced6d56292d3017f46f2c44c1693fce19ab69046dd964b0d2f0f24f5164325d9c145a2285c7f07e80615a579fb86a996d64b6ac8ec544c5cd8094dbe72c2d548503c2a5df80d94f2fe821716a18f3a471e63364a4e40f7e0eaf70912af81eaa9d7797f8ad34c81daa4f0374b1989e895962ce9c4e004c9cd9dbd068a41e50c4f3f349097fec249cb1f04bd060245d4eade4fb4c0584482a214a38c8e99eef99a793417934854cde716f875a2df6b20460d20a9a871358058822db19e1fd74c9bdf4667ea2836b483c06ac2ab7a0d10f79850cda9e9d3e0352064558d14ac821304f18b8f9f16c1eefb05b4b4976b7dc01ff51bfbd724c0e2a115806e9136832ec64767a958b101838a0a3c2692bfbb6afa12488556b2015876b28ab55b663f89a7a0731e12b28138dd2f50a275abe153caf4abc950c8a7c5f4c4a506aed02640b736c3874125dc39ed4d31dcc0b84bb947c3e506d7f40d78051ac529047d5771919e277d8d0f391d6f086c208257d923cf43ccfd89d05aa5044e9de9a1334e36c1f161e71a947f776baa2964034051012f30a61804e6afbaae2fda68a8b627d239e1e34e81c375e0e5d0badd10b79b50c01fa1d81da65932ff651536e58d86653795d2957601230fda9a64a36b10582acd82d9607bce4d0607e2cf773c71f9e537b049f88e0c946942f9bd3207c96be9d0a05e053a62966b59f27bbf716063cd0e28965d0873d503eaac70f9e0915ebbcbcb852ddd1823f2a67453298e80265a7e1ab4c936b1c9e2ca87ec1b58d1da0eccefa4a3c176e134bc0603d6e2ec3580f315b703128133ecd39b7740a8343015070637d37f9b3345df12d7cad114de6b76dd182a5dcfec9da01ce2737ff8559bd6b3a7d6da5cd520aa034d4898848c0957ced6a0ea33794436925e7c71665771c1e9310997fc5d4348787cae234442c707775fb64bf78f735e7a0477f82d96372fc0e5d8ce04975924f6d05aee980a8bc383b31f551816d6d5a3790f732656e93299af92cc9f608310030f072ab027548116e4a92c5a88830caec966095742aed0249a40e5dc7f73e5c1b752ac6b8d664b0c03590ef398eb6553af67dcb8f71ce852df0e55ede5e4bdd8da169c70751da50e5a22d52fbcd570e0b22504c6795a0ee211f6d780fbea2635181fb5d8cb71af5ddef8c26a9c2890a4a5c55f6bf322072444a35f09777b2f8912cbe6de0f8cec0bf4a5d12a571778fc591dc7aaca757c37015c20e1558e0ef16cd16a536cbb440bfb81ea63848dc67d74ee0862ba93b292d3839179d676af053886372ead8d0c10ef15313340310c83167c80fc846f9b677a7f4798377132a7443c4b1ebe4531ae61eb0a8f807932b7d88c70b01d088a439f69e2f898b0d3640042c7fe75050a29f8ab021161c65f8c139d5926d3818cd322c7d4421652f45a87d418e13a1cd5b8b4e32a9f633056aac1810de39bb702344ce61525dab67f33966a707be62ff78e9582d1dead72ccf4ea9ad8fe7f546aecb17dbc03d28ec7caec6d989e6122ea06e9ed6ca95aa3d84438de45158348090b59b552324fa99917336465d25e78ccdab5db0e0834f8e120c34aa9ff917df48b7bd6947ce748d86d41ea14cb4e49868b1ee448c2bf6abbdb6a8da3530c7bfb7a955d2feae6ea59d6c45e2bcc4d5fd4c5845180ae0415b3547d60aeeba1fdaa4380647d4ddc33054a9521562b5b0a0498ad8a23e535914e56b6a2f259e5ca53e42b699143a724a885f132e3ee0a7d8a2a2b01585b74d50da415c960b625a3f0584b60e8caa9dab099e1ba00d3b0a36e348a3cb592500c0118b470f6e3b36a27cc6cb52b1efa4e87e0e5151188649790b04ba112d9cbd7ce38e2069d894110a9cd242b7574850fee71d0a64d251febefed08da0a5ef05c350bf633b520c7850193adc126ffbf14a58a3b8875282025a5b8b783841a461e3f65a90a735af632c7050d7a7aa8c252ca2d646fd02254fc0c5f8d12ba4c38394fbdc395d8653ffe4ecb1614c64065f3c738a2fa402c1939f45434218f245bc0333a6a9ed72ac21c659edcdd380a643092ac6344d0d10aa2460f7784f7c81001d3dad8b8eff535fa305acdba969a5f9b9fa46f09c3767b6e99160837ca3e65abb7251b4e0bb13665216209f5c3050063fb9746579b69a3d33e7cd61111434f616af2b239ebbdebd0015196320db080a0f24c1b1e9c21cc4821211c4e8008b977551ee8e6d45e930844e2feb9a1642d6808123a85de80b4c182b61f07d80e7b62c6b251417808686ebcd65ebd3a21d1eaba7b1a5ef0c1a9d53daf9f0d5f051be5c89e23f9e3f876b26498433f52d24345ab21631719412bfc4d398493eecbc2d559a93fb529b7048b32763098bf9da0da28fcadbc58354a4d4f7ef4016397870ce89b686e131f31f73a663dddcd8daa99b1135dbfd9fbf9325cc878e5f3eb3c4cba79dc402a75f79a7ea6084b70dd08a9591427b8f6795203b530db5d36a7aa899dde432717b979757587135c9d060c94ea359494c8872a4f7fdd42f61d424c23e6a1a70836e893c6106f8caf282636d5512d5f0f50a7884d356a9110552bab0e7cbb7f13edddc60909264258bbc80e1fee9a07a53b2f5e505fb62768f7ad777f3dcf29754c8e8f16e406fc27e8f546a3570a021178705497a7daf0acdb5a97192b66b025d6615e99f76ef099dafb07bcef84ca10bf18a0fa80d59e3f861cf42e30fdf87a5fb1615ec753128e3bd2251996f891e0e1938c52de8ad121c6e0b0b162f4912217fc3c0dda41b6049cb4c77d6f27e621b1363d3070cf19cf76d2993da51c417e53ab025ac769bdee58e0937f17132ba0c8ffed736ad53f4e3147caf00614fd1ad4b316d38d27d4b24c828b8461e924c031e2c50e8fc46ac22c9511b9b0a25a3298a2d1c038dabc23b0ad36ccf220ec68afc7f1942c8b15d9a329b049201b8a10901c03ddd3a01bc8942ae717895c9a632c202987c271b41518c6bf58aa7d293f71865608b97cb3348b123b7635307b73284a46d5f1bbd2767da964632c69d109aa98e520a420c2030767e2b0149c2733dd32108c555bd7e9959dc360da380085968e22455a98829b3a42eb08789075358a8e9a204e3555f2b08070e5db6a993a7082ea68114db1a6692b2f07605cf1a8c7302e040e39897427f0045d20ff4163763174278a8fd7d48b5554d444b358933b1fcd19721995d9c868caeddf972db8892d0ac40e42bd3b1c4055a91d378882de3148dc0337dab6cd5e7033ec0015fb322ba34ba400f2b28bdfc44ee77c67b617c8e80fbf50aaee90100b1a23d8e71fb5991b890b499e969521467710c27c1b566804070732b87ed6e72b18a114498551388581b62995a2989699b26087ebdae73406296929655214a710b76583bdd48fd7e70d5b660accaf2140be6d9692037d577e27dc49ac32aaff288b20d258815274bc41d76f0562169e9f69155b003d395c44e937de1208af64753e0e62329aa6663228a3a45dded975a180d78e64663c4a43176630cf05bed1b41a3bd67567c5de3cdaae5e42a4fdb1b6e3c2747d437a8381bd0c62afe053f5fe133f14b557b2e81dfc5d0aafbce68d1104f92e56674d9f227c5b45d5ff6abf57a731e44fb960a18b35b139e87b6e7583316ec6ff0064d81e395e833a3d61d14dc15bf70b197ae1a39e47d5d3892bea389b1a46472fb13416f906f22cf11d9c49c2a9858b678cbe7637df3998b2b3c5b3ff0a55c141e2e818817999c5057aca609ff426807322ed5a125165bda722716444ef0b8dbcdb9b18bf79dc6ee5f2bf9b78a99e7de84986b533a1f38186c16258ea818561f667590583925cd85614c83f5a78109d650f1917096b3d163a634a67c7e1a1301b9d8b4ad5445b815936b94364d459951fbe1a73d7c1db035dd1ae0223234254da1bcc1f680f95c57b60c5bf11638cdeea307101f633d8614981b09b3458ece96b497d1880883768af286e2f753e951c5e5c8e3c1bae1e34c49875f9a44d422c96d237ec4c082b6cb9043510c9e45caf686d315f7b01e4dc8af39a59961f6b9c8aad40465b94f02530b7391369c615c9264c94514a43d55c304453c61c566851a84033fb37ee12fd670c390d395c5c52515381443a45b8fc9c5e6520644bb7825e8808958b29d5c660013c02a0d98bb524724dad4543c7bb9474fe5e780d28f8e22d63ee5a29b8ad6622e768a9d251a0ba56842bb959d7ad8d1eeb94aad44b2f28e4de14adb6820d365e0c05ac61df8be2aec6a0198b56de4d5aa65f1b75fd4e0f99d0e3fb858d9ad8c1f51070890d601060f973a04558d8a55391dde3237c021849420e764fc44a85208c3c3e1d9fe360d420492cf8331baa589a65fb97cdc8e657fb055582e09d4b79f8f5061517a521937a2a8f720a557b9dde0cf2650205a76b693104efab544f9867bc18b36616fd6afb20b869986cbcd2a32eb4ba0e30d4e94d683cebaa80d1440e25f23b1fa51eb9c946c54fcbf4ecf0ab9533c544339f27d13e3a0751c91eab087b09083e546794679d8a1a1557178983bb1dfb7e2d08428d4c4555b325f13a78b205f930f52ac25474defe830ffbcba7a2eda6f037b4234103a875e1b804b31e23750191a3ace7c1617197c9b6d9d88f3decc9d1fbee35542388061aacbddea228a731c1ae00fc7775756f519b87652c0710dda46aa8d63292b5151a6d9de9b1501e3b7b96cc58cf874651cc1023e9b97c23130ec51c3131be14213d2c759fc715a27b281ebbfde9ed0bbdac19a10f02e3ed5ce52938a1abdb2de12668a1fac534230751450ef5a3f195849002d14307d0e326477bf8248c09a0679e97e6bf2ca86d8ed24f64d03ad9051e3d21f22e9850ae10721d7b0434477dbb8a6ed63631492bb03c0904ddfba80aa8d5c75f638e40491445e66a8eaacf504edf47b58de15d2c62456878d10b63fb8f3fa390377e67b7c94d12e48b6fcb0be9c24826e8ab10532d39bee9b4c008089987de481a165fa8df9894d828fd633e5b5389f793fdb4b08723dee5c3405abf878753c51feaa4f5550e1e0e2542d4cfafa4b159db6053347343fa57f031f4fd19e5129e18ca1246485a4c0007cc8cb1d5f0825115707b364823d7e54610e25e1eff07769e002d8d4e3eedb34ab497bd3e4e4c7d4894570805e75fb98aaed00873526b2c33af88e0d5fa39aa26bf63cb597774fa0ff46389afd9c49c8b4bc111cd0bfefce791d94325e255f31e456685acc051649e35e1116409163bfff7bb084a2b5ab835af12bf6a8f6e3735261e3aefe8c4146e0f65fffe050393e58ea30f157ae9bc973d2631934a409144862b587c547fa73fe2c9d15b2b902b532db7335f3e56a00cdaad3b39f7190fa6d21bdd05a64f49786c238554ca51038bd67cb2653384e9eead82cc43846ec66b65bc78f72350f2528c03cbbd45ed11438134342cf384168cb28fe9cd1b9407062f526b87910677a3fb63306210f378db1f07b879915f072526b6930022305bdbdf6b011b18ad8d510c1424efde2a6b5f9b23acfec05960366dc164fea1b9bdf8abcaedac46a4eea146878d2a2a90769336f6046a8a2c0add69fabcc22658d8b73c6055631f72c9b8f8ce0aad9aa714c89757df70e984030e3e60d9bda3c4f14c1c84f8072272ef94f8b085bd2293edc69e4d9b649a15e3b4156424db19cab9dfc8532f94feadeadbd466da62ee003e7bff9095204baba5ca6430357f8ad08cdb06c268d8c29467b13eef5d2506d231faec44651cfbb728420e54d7bf431a8fad1920e4cee9f9631fe7c441b5a605c8f42f0af8f7686d06502c25220d9f58854f070de20b9a5318ed0bdeb6950afa67325bb7a1c9d103e966d1adb0709fd18d929b622cc948ead87764b3bd705b27fb0f5bff3acaaf642f541f0f7ff20f86c925bdf2c2fa1a3450d0dd4ae1bdba17966e3f3b581a9e1ba19f490ab88669670ec4a62466c01da37b90367a33c56e7fdbeba8dff5a1de0ceb55b11b5dec8af711dc28bf71c40ba9a4659fde3ef4ce376e0c89de783e31a5807f280e29f5728b2f87dc5b9ecce3e54e1c4d6c533df220b6e1e15904b8cdca5b486be2bea2162c261974612aa46ea0716350d18f5371bdd243a76d0e95b50dbe89561c8f8f3eb5f4bd8098c2cfb65c731c0cc86698243b0c178b09c6bcb6b51ab14283ad6990050db1a001d668c01a8d58a2116b34c682c658d1102b1a638d06ac51fbaae6eb26534d151d5d785cc9cc022561400423a2d108a54ea6ec2d339ddcf818d39e05f8336f99df6becd8091c88e6469c451ab044832897e24ce298491c318143103da7714d364d498b356695064492ce26f27d127554cb6a5db8aed06dde44b0f2d4d4318c4122b49bda2beadd59b306c6ae0765cb9df0122b23320a702efac3f744c0c980ff2579aa01fd9e5ad5a6832d4f741227e12f4a6a55ff55c48688f036765e220b87ac5fe0577085598bc5cfb77acf000c2c3a5167993d69d3062d503351f647cf3a2a8a054b8722ea77edc94851d7038af9b34cd2cb292831a1a3acc5afb5e94b73579f74b88ec2b1d8a22dd0e09b69daae4866328965fcd72a648c5201acf074be7410e171d3a969e0cc29718e6e6d8df5c979476d92392cfb0ccd1cc4805f3a52911514cf383981134671928436d4cd2f7070d156462e5dddd3e78b9717cb05ccc384eaccae69686537936c9147d711626c689dc8050f3f867b72972c9dad5d604ce09047681303fd4e57c13c3405a060fe597666300f41b770413fb391b6043a8580703b8645d1d02fb0d55821ca5146b7033032af6ea1a466efe2f292befd89359e13745add7c792c1f3b7a5bd1a8ca9d8241b0b849758166c6fbedbc58b2c4aec2ebe2acb47cab9c0540b901fea0020ceb187f4b1ee447df61ac63177d1a96ee37bb517e63f24872f6fdec23f8377e536f461f9b52e11f1af1d62b621bfd4e86ee1fdd7072138c2f4b928e49222df43b6a3f7065282273c1d55b5ee6de5f01f95af8a28f7d210b19add5392027d01b1075485f371b4bb805a76b5fd1ddbd134cae39187672774ed68c2beb7f2e1b5f732551c08d04956511413725df4757724b020fcba0f2647f57f249c75d588e058187fd94464a92993c61b8c96e4c311ad81d10cd2c4ab0da61d79f0a868795753dece6f3613b4d2136b1dca53be25720c254fceb490b752bed883414faa54d548a1e3e0c57728aea848e6d2cbcf4eecdc2ae671bcc8ce1b858ee9455f55165bac1b4a616de5ddf676322c42ed8e932802fffc0653506efb3af60d759e476c1a0232a1afbdef419f03ba2cd39a0dd9adb78817e21e38bcc43117e40d7000861ae6c8ecd30392c7ea0015f1010ed5ffdb536db62c67ef352752360ffdf17b27025cbc020376a3020a21cf7e59b87110f86c49b7746d06e1a6038141419ce1d8343a3cb421bf1a480331880a86fee033f59a45671f93bde41949321208ce96d77f43f8d7ae55a5917d0ddd3d359f43c447a99d79d73deabb5cf472411b73b630befed6fde033ba77b7a97ddb74ce47255c8a5f9dbb84b6cdb1178eba6e6035300288e3bf8ee4885362bdde656bb0fe0f195c17fa3f28bbe011ca5d4b4d593cdc85d0701ea251bf7d78bba5572a9216c5b8eaecaf11cce1f444ff121674a3d5bd4aeba9e19275f514279fb79bde5210b71e218e10c0bd40fca6229c31ef1bb0ab62314c3bdc196351e8435b66ea35790338e9e6a7792787f633cbc7b2a718b223630d91d6ad858f182a484035d8245b789a60c69c923561792f4331ee6fef78430e78e45a53f0ebf1360a3d68f6d0ae0a9d1dd3ba19df0f1b40406c7cb44dc27d2385a69e38afe7809b9da9042de0e56c4ad0f51ef896be7ce25793075692696fb00a3451e06035cf21c8e1af07f76d7072620e73bfd6510c34c0908b5b147476ae7873744290b86781b2672475e90006ddff74eba420cd701ed78fbc939df0b318b2675728de6af5a8839c30e3d25882e6531f228e43cfe2df8aaaa242213ebf224da6560ef43c8e81bf0943395641fea419f405601667069eaeaf594904db1f8aad934274ba91e3b51513d3e1d572496d05aadab3850683fc7aa40188b498e0b918938b4b3725abc10fe49ef2fb93676455b64f094aad0e2df282b73cfd4241252a5a2cbc286ffb163250cec8fd1b3f35001d760ca8b3705b1ed03393acd6769d3bb2ee80462c7c9ba1b53d929e2a07c261a5460eb5fb914a77c1022f0968c8487f2c632073254ee52665e6aed4455af3c3b855a5586859616e211aefd77acc45e1382f4d622166b7171f0238d3953851164a633d5ad6b66cd3bee1d2677046d99147afb23cbdd7032368ce43f5d96ef6c8c438074cca0b9b3bada5ffd79b8ea00ad8e7ba98ca4e64743c8cf459a7e16f324dfc491c32a8e14eaabdf35bdf8fee2ce625ce9a6a595b4a78cfb666d5e6ca09748d33163cf952a7da4d27af63186532fc2b0cafe41813035404e9a57495ed5d4b45eafa056c18e67ed0a389a282cae583ca36f616e9a84ed5ae5e213a16b07c36b6391c2f2c269ac7c6c2754a8284999492f056327592795202d2735483bceeef953ffcba1f0428ef3d3408fc3760f27ddeb053bc26e3109e29a0dfca1b67e2f32ba1b74c2683ff9ae697ab6e0e2c24417ffb2883c1192cc250b8c332aba04ed1af09c6d34f554b40b57fa201fa53c9c84cdf3218dfb44a455d321bdc4ea18284f227defdc9cc1f5ca010b20f23dacf24e1557141532c62468e94e1187fbda944bce6452e6c6fb883c39db0ea1e8c71db30f90e6b43e12223fb698627c5f46edde673895434f4d084f755b3e4e54c080d654554a57d3718c25696fcdac0c63c1089b10a8b26113acd31f86129f7656563f36168d8d7e6cd816c7a555c6662d0d2d8b57b54a04a8dcb7ac8eaa2f5d11571177e081256a30810b76aa81fb2c809bc370400cc11d1fe69cd1d144fc120648870712691a2e3506ec900ca1cf23ae75ccd5502e443510fb5b82fedc8b15014e769484d91da9995ad5b2650514ac9f09d2afd6d81770203b92e99654c83010821536cc582584436e41b640426c580438915dce8720b8306135ed9a95392457e2dab0e1cf407f880529666122e0a4e6e8be68beb5e9da34c5d8220ad4e61790e020564b2e2f190c6dd0251337e609f9fad17c4b88a0efdae5cbbcc8ea4c70cf1bae3f20784bb310c119d045fdb20510889048ceb2636a22af0df34665b29635f1553792024008b393b5fddc375743a38b49ea65a623d82610dc3f058d0b9d901981bd31a7502a13e5a7833f6ef4387cd4df7b7a62896e6b9d9f014a25fb41e79448974a6840ed006be2c4614555c38325ba22dfa626e60d46d564294f4464cee164ab7e9b419cdcb18ebd0a490106545f2905de19ecd7772968aa80e5d8ad2c748e0d1bb43f18a2e33faf5734c187432ffa11dfe2d00e06ef8e9b0cbf72743349161f184a2bf0744bde5d19c80944d08d8e962580fa3b0a518393d2d3ab4366a29085060a5181b0c362fb189fd8c78703ca77ab5254d143d38dcfbb8b0ad6c2636384d398754cd2aff4b24ee4194d7961b8c31980be3e5579a51b0d1ca184fd50223906d5181f5c117806582c30046efe2fa4b7eab07b47b84974defb1fcfba1600ead5d8aa88008eacf5639851a4ee34d73149bce2380e58fa9bdb35ed7833a99818c7034b9e7ed30b49f87cd0fc062e842cb4c38a80a0607c50138d2354a2d35841e908f38ce5a6a0180c21034079a0f905dc0459b41bff084c73309cce8f334b29b50af5e9c7a2861854274b4a8ea7eab4e48978aa8e463d2ac15f3dd5cc2359f3d8b881f754e4b0e56b86054a5f853920c5bb17ba08d85c0b18a0d798bacd1a6973464a645a910378d570a0675868bb9e73ea5e64bf7f8f438626a769b80a549abfbb4152a51f45c4e0f97c052665767bb94cad19856352ab3ebe6634ae96874e0f59f27cc256c91e7637aece4b94f1751006dcb017d10f555884bf189eb587e541f58a726b7c91561428cc630655ff7be7f814c12cfe5c1c5a99c5f495b855cdafb18df2c7b9cb9878fa560e1b226d41cc30d3f8222952b21af6ab8ca6ef2ba0542be064f0884409cce6f274852e1a979286bb97e036e97b240b62cb0ff7c545f5bf0098f1677aaf6d7a2f532458c5e3fe16a67cefc2b08f3d440bbd699a8785b5f849820672ebab6efbe92aeb5f2321f2aacfee87850ba8c7e17cbccc242facb2a89123efee57b8ebd12c9c4d25681e09770e057d04638d7fffa5f812eaeb27d8af1f10895c51d8801b350b8485c887c86751917133a2710a84053a32d07410d6d3b3cd8c88013ae84058907e72737e12400c57020dde778f0c381c5d947a8e92eeae4ac75e751f93964e2e108d9a61dfd6dc52c1a959818280bf82bb027e9893fdbb5209fdc3173f06f3a20558af597305660dcb8563c778b53a58508b90ab0e16d4f6a0bb3de85ca603ecf284713118416a18532b8499f857a0450cc37289294f9508666e1f38e9c43300eb84f8b245323b9a1068cfc4c55232fa9b74144983057e65c4cf71d18560880a6265c29eccb54fe6387a45ad49f60c266498212c0d16e841cf63e0a55d15d7c988b4f49d4a0c0e5625e30021213c97eca4e4f2e4c36f962370dbbc1d692849fb302cf8a95bc33047dc86006956777b4783629afc55b7e01cca869e0f4fb2e2b601700e747e832b213bed30c14e64041ddad9c282da3fd4a6e314f784e7dc39c3e752d8fb15eeb3fca42a2cd09459b47ee2a181025481f68b4364e278920aa32a2c5cabab8d5f260ee3fc8d997e5daf9f722d68fbe7c8d153f2fb41e1ae2e13a2ff51f7b9ba83271ef4b446390e60d14164fe1c68194606c3f1a7fdd4a45561216acb210f2bd6ae4aab6490fd83dd16dbba6fd349074f2d03da8c24fec3dc5eda776d01886636a629f6a5c51bd4fb876ad69bc04a524658885c587ff1ec33f188b0b0a4c479afff4e5d6c50c1c49169206a4c30ee73783a61e94c964487b7286e05b9aee6f35cb73ec68e00d8c805df4c9f4c25ba9e9b38ba5bd2bdaeaba9febe666c8f768263c8248e35b02c5375b1c632e35cc52d6ed2fa0ff0031c902eba11f5687a918f7aa1f5eae62a110bebb46081e7253dcc55b4b790349ee66df2575a6990841fb039274905203a9d8ff3c91a018040811fa67a4fa902e2fb6e076c2451f672951573307fb4fd538cc5f8a0bbd62fbdc87404a779c57f84f86f06f4d111c4fd3326f6512616003881c076057754d720acfb2f8bf4974dbe1a01b6c39b2caf773a03fac726c396d9e4129fc729c0e0d8693ddb69e75bb9213a48afd1718f56a10deb933508fb7059ca39cd40801f3124aca93bcbfc2390d9e5e857e502b602d3b911f764783c6f7c77b74a945ca1b08043d47a3a49dad7912fede9a598dd7fa5e061759bd52641308e706e3cc18b1c61e82e50c88cdc23ec271e8aec3d8443a5af0f99d3f15a631d0dbebb78756600606a5a8ef000bed8fea0447f73d320ffdfc4e69abc987e653ed962c0b8a6dd5263c6abc3ac80c3309259cb0d87ef67f12db3e0a4582260e0f80aec25a639d5a079af0e7504695bb6c45bc5792b287ba81839c0d15f87cd9dc537d22a96dc7067603c8b56b453ef65f66328adca9d83dfbf5ff2b23bfbd24d0ecc8030b58bed59ed36880393b7e6b820e1993d17d7dc2f53ba5914c3cfeaf51d94744003d98ab1f5d315fb4abbcb41cc46c640a9135e69da0f3cfd8970874a0bd61368a5ee157b731f64e53fe3e65c96b2f1b218d83f8772e60417e7a3ac975045a69bf31e13d3b2b35db7a219b84641d8bb8aa75da318fa0a768d4555d343f06ce0b3d09f9b3bda35d077886140c5a231981e712d4c95624c26a003eeffc710cce8dbc9d8c54f19d5c9a0a61994df49087df825622f82b3f8eeab4a1c7ca6b4a7f2ee991dd601c2483bae92ffb3c96388b3dfd75d8dd2e9d2dcb2fc9b8e863c0e620ac1f583daa995eefcf862f3f7854d37e15955f53705623cd124fabaf1835cdecf772fe580ee7449ee8d39cfa05342a9b4526dd63af5bf5bb5460b576d41bdacdd261968fee3329df0ed07848aceaa7a8ec21b7bba05c33d780d867d2d17ead491ccb93a81799c83e986bf1a4461b7ad055d324dc0eb5eb7d920350c21e82a8702cf9f53c8da690ebac660fd410dd06e679438e3f8feb90c323c9524c0eaba695f08dfcf0d844f3c7f3a6f19abd665d7100a0540764b4030b68af20c763f7d05a466be4787c19a080834739f1bb279e6b24c82448b0cc8e613b579c9b702e26c6417e56cbf003e8055ae127c1ada984c433a4d43675b7223f729b809cf451a5a75c06fb71a633ede657c976987901ec81effdae85bbe1dba43f81571a721de925ff0473713160038777ee9d77dd6c52695c68d27518c3b4ae855ccd67c00371d86f32c1869dd99c7788880bb4dbb59071d15476d06cea9f2fdd530c22a1c6f44f9b3f7c7e080be15a235b632e5efbc3330c4dd0d7c332a2444d663762b802eff8e3238cbd7b67189ed406b1ee65ec41358a2a193086860f22c421cdc9cdb979947e06e3e1ab7fedbede4514597ae09e455c0753cb73b9a5080c2a9d5e743819f51dc9ce83d93b32927140f6f12c47e4b442f86384fc45cc3d595ef093c4e0de93cf20ea888d9ffe643e973d79177450d3423a19ae6d4aa55225d06b9d1f6aaa3397074f93592132f1921399afc498af9f66ec599a9c4e531ef56190bcc53ec53406315ea16485c94a96a46d482db4d218b1e8463cf51ca46718df7920fd973d08c683a354066e8f0412b43b9befd6251386517755e4f8c718753f4d4d2e20e74c54eb61e74fbd8a38fe654f78fda17db737b5ab94afa8f3b633b2481b176cea914d07c1d9eeea375ee88df17c9832aaf37785fad75c536b5a186affcba77265ce32762f4211449a42147f7bc476e1d8bec4e3321a7f863fa1839f42e0651d50dc124cebcb89a5ce57164c36507db82317876e1648f9c79a14840192f55fc58ba27ccf0cc769597df617f4a39c6039170328cb10cf1f24b95c58fe4fe45579a0ca00dd080cee03b21f17d9f444fff33ca9eca0a7762ece509047b3cf3035fc34142cf509a57d16f86a72ed97662f50dcd296fb44163e90bb00eef9518aae2ee6e3f0e27c79dd414619bc3d5e0cfa786ddc34deef518113e7502cc2052162e31bb8ca1af942e487f1fd0b93bb531caffb0ce30ef8c41d3ad419fdfbd08a880f4b489eeb8ab34b3ca6c10e1e89e8a32e74bbcce952c14b72a8286b3e68f01f6313721c105b50ef8451c0819e2823f8b897584ce8840d7cb49fc36b19305d10121b89e15b99e6436481034f0a6c13c49f5e335d2127c2b4a8c032c77e9d746743f049c8b549c241a257de4875e8cbc073c8b5d4f94caad9646a42c20e74fe57b3747c2f90c5b31d09726f69556ad8df8dde3d8dea4bb98dcd754da1eade898f76622e9395851b42c5f90a759443280f345e78d618f033833306ad87d11675c7379d78e78534fe0f253efee38020aef60d929a6421ec86b0cba08fdfb829ce62aa2c6de8b811193573b8555e28c99ac2b56df4831f3a14b39b9c1eab7fc6e854d2f8529157cc8dfa2cdc75dcef8618aaf5d45d67d9f008563af14ed70a828dc5bff3225d8c58aa85acb0e9d6ea6ca8d827953db7ca5115452468eb9c7bdd1db741b8e2a49b9e574f3a5955fef642528c943b4637cafb0df2b4eee09430e06c605d7c80eacaaf14171a43267ddfe294731d93d8e9d92f9170f7299626520b097e501791e3640058b99f68e1c2f1a42917b0c90039da8c2d7af14e098c69e98eb1342d191641e4b6a8c5f6748f566b14439185b6b2573d2eba3b53432004265284296b5cdd69dd5497672d2d55e2de6bf08c5b8b63478600d6300fc7a25ebe204babd62c29a070459383b58c15a7c79581552789ccf482aa2acbaf5d0ab3689b21685326ec86882c8db5a45b53d9715fd27a6a85faf24cc52c02a7b65d628096f3aecd24210eeb12559b084d150b4a2ba5d76f9dd7cd81148468be10c125c7822c62fba9a16e2b76c221a9580e307d8929fbcc85efcf5199ff8e297495f2cde83950df4877c4c92fed8b2548ef6c0fc7852f754f7e8c396a426ee585a018d54db4b1fe5a81fbceefa73271b65cc492980f779dc927d47ea101e6a440ab23a0f5d8d5f75f0840025e7bc6f2dc65309cec0da706401891adaa4550d696bb92eff6c5533fff7fafed4107eb3e3825cc0e7d59fcc40c58eda6454250eafb797f624ab0d2261277a9af32e3bdda85a180372b749f45fde4cecad27733cd3d85ec49233a9314309f3716d8936c0b16601c5e146138c536927692b50e71909449d50f6a078dc85b0141ee8e29f6123c2d8666ce419c1a286387ded9f96af96a6c9a9c387b7ddcefc901226471b68eb631699281000c6367d42a392ee01916509d566390cd8fe6402a4085fc132a3a0c21ce39a183322315cb2e6417f040c25141eda855edc419f2c20919f4665843309003e4ad47d9a43f2ce219f509fcc92ad5b2002c40abbe5d32dbe3153f05ec32793f12c66563241d23f40959ef545b1c9f66ffe7dd11574a9f408538ed6a17fb9763b87e4b6525b5768335b85ef03fffe3d3008a902e284163adb0573c6b1cef999651c33779754aaa222f6ab563431a816c7a9a90938820174338c91ec486de804f78ed4a009eb9f26d32c87dd28af90cb16c3618d8378b616ceac1e77089f95c1ba6daec546f0da0b3465a4716f6855801ec905af3fb74aaad4f48c24a2b88151803e3186b1f386ff166736be92f4655c2978cea6168fd28baaf80d74203b602e0b7a82b3dac51f60c3c0ab8e6053890bbf723fbdfbeb2fa0e3909b6a2e029e4ba85524307eda8e1631b011a4e0a8baeff8a1e057843a86c088c53edac3c5695c147991735135258e888cec7855600b56a97d07170cea4458e231ca5def802875500cfea958ab7a21ddeb8520294defa87d841cebd6692489f867818013d7768828adab58abd4e8e91ac3940158c24328666d13e08622e1bbf8cd40c5315a840b08167da5ac7c32f66bfd0c54777a7e85bc11d557195e08129f329b179eada1f07b7901f34e8adbffd54e60c04628a19431ff1e185d4f9bd1a29d3ae02326b79c0043e48d436d2ddc09b7aaaf4cd494e4dce12b6439b94def3141531faf4026280c820b8875b4331e2c2922822a4cb808eaf70b677bc1351c8c939fcff2af5bbaa09ec4cfcd5c3283027fe5fe60cb3ef7a36b6b10bbd031de8665461f941a2630f7123af76280620080133907590e1df3fdc977d93721bb2d884027e7b105981b958b91bfafe229eec5ae8afb3e1d308b25d4b1118ad66b73a03db6574f1f58d969f37206d7eb7270ed300918fb4dad2524a8228ab25995c90483600eec37e7652862a320ab9a8b3d84f15567af80dfec9c4ba10fba5134651f3e26b30d29105fc6e8658c3e24ca09cd9b6b0bbd5aa26fdc2cb04bbd499e0077852d454876da5c9696cfd459537b51358249a5d7c57cfdb5de7d4622b30106ceb6a8faa7c40ae25341c2a6a520d936f94f5e7f5c1cf039465dda6b128fbc441b5ed0426cd8db68c7ab92439756ca7dd4e81e2d9f2e3e5514bcdc1569a4c69078d6dcc57eb33efcc23f5e00d14fe785ba7682ea37e59c3ccb7f984a1d06705b39e8f60964b6a49454237fd0b31ccafb04b1b4b70177a02f979568a7b3f8c110d43c5eab78a10315ff89dbf99e42a0abe516da8ff65acb58ba5933b5af21743724523a6e32101cedbcdb71dba24ae1573431ba4a71d49dcfa72ec27bc77aa95b16a41e01265fe44089c5afa983f92237fccb279b4102712ce1dd36de2a0f7323fd65a7055b2d691eef7d3f1355301fa33632a08f2cf5523925f2e3ab18fae5fb9930c3cc426b8f7ad4f2ca98acbadb58d0cbeb2e193baa1618ec78e0e7b864bf514d65811f03666fa60ce9585490dcc300c643fe8a62b8dc8e92720ea70c673e7a8d19adfd5f5a5f5473a9aaea851c421d2d7992e0670e4c05a9c1bb2064109f30486600e51ad476137cf659cb3c46e622ec88797c6af0e2c30e14b3c46cc24a6d04724122b53860a245e34acd38183917d7f22ab0ec5dfe282af2aaf2753178b7d308070dccc9ae0a331b36a8951d6d8f840cb6e85366d60988e8b33cfd89400eec9fa29f610b25072be388732c7d3fc6828e6332182a7880e093f834881b08990061f475db5afd9b587e3c74b73f4f86b0317d67d50a0147e02ee4f7b12aa030b2de2496e01da1f0d623acef6e9f447f751fa58df02acf4ee35681008513e1b9628f8890b26173cbf0e611a18762489f34678045bdb51ca8ce8bf90ec1366a6e0d754b2e34790b4490eff3968c138119d139d9859c30bfd4bdfcf7a266406f484d752b9c66c981c5d591d8c919495fc65886077e147fd15a0839158a0ea66d3b4fdf74c2d80af8c3e63289025acec0712e63da8ba73438068ee709ef562a03756c1d16310d149fc44c20858ebf59db8af7d1ffd99ad50faadd37535c5b368e292b5d6d654c858e00a14840b56b232b7262247d99aeccfd529e9e182811bbce683386bdaf51c3e0605e4417b2023465903d15e61522d34ed14e38c2e81ab7cfea9c484adf682e07fc6400716f3f3faa462beb5ac19b707aeb432b5856270ebeecc3f86f5682f1bf1e4abf755a244e49652461bc94ccd0dacd0805ddbaddf5061ae30152668b37119b5ff5988a98ea4c032294946e3a23a6538025f3bef5cffff51f980765e0763e1dde6c78b23f96d45777869d0280ee45fd733c926782ab06408ac28697599c7da1cc9e2e23f106c57201873aa30501cbccbfb6e81a302309eb204da90c91434e3f31b59b7b3d58ef7ea658cc92e49a280a52a4c0c7dd8c362452bed15307798fb33a5558c335f8b3c28c22915c5c473e84bdb95b53f190d684649c0dc79327a8978a3c1f966f2816cda08a3228fb46eee4da81462b44ba26255f8c7018880a7c14b0243ddc4ba4b0b0f99c72134b6fe8d164c385c07938f942f9b0acd8552b218b5b377c4929bf4211df4c710644c4194487a18ef4347e5129de9c12e99e17c918ef70d0306adc84c020f6402353624f7792ce8239cc482208f8377212bcfb0cae7d7760f5e60d29310070439a2c736e9a662c1d54ea935f38446403aecca9a2cdb34a444e8bd424f17bf032a0fb4faa81e8df297de5fb5d552e3c8b40c5558ab6732834d83e1a311b9840b4b6a5331764e0a1a673498190a330afea100f5902d440d46aca61a0a396123a86806d10432385d863c9a75a4b1f9a50d2d271c1148a3144017ebf1d2ffb4b7fc258aa18e6aad872b9023d37052bc6905997722bc6fac27418c5b3b529d243210aafc16960fd7b941321c9f361e9097920d35293cb0d0887e461f2662719f460d2ff18b00847905a07e1f6f3c442379f513249c8388c88571552b26bbee256fd8986dd2c122ce9c08872d14f1b34f403f6737c17ec34ec99be0174f10a9de4455e91f8cae4356680e74c065671806a9b9d44bbd0050dd4016ce3c7dbc1d3857ca35cdf70e6a6dd8ee974e11dc869d2baf82dea31e092df130f3f88ce30cfa9378b4f14d04dfb7bb3aec83c68c862f16be54cedd89c56f401588081d3639d3aa7629419794aa4f0f1ba337ca95456bffe08c6bd68c7c7b3c7fac830551d041e585efba1e87197021bc36d1db8d48cb497e4a296e829b376eb8376c1a77b54e4ad4ff43d96b663e9e3d55bc45eb9055d4175146156c0da117b76b586fde64d476643dd871d8dbb5018532108f5e570eb9a566b7bb773e222a0e43de5b9ec4e4b8a5ddca300352eda71c7e11f9fe3a8f2d1e3fa66fb746930e81c6ce5bebe8b39d7126a744981bb6787ebb5cb266a5ee1258b6e0a7104c7a1ae0dc8eb53f912243f90aa33f06e630c7aadc9d0f7238808cff357d924d25d7bf36e80cecc1637ae9e5d80e79acc30a786dd45c7e1460929606e928f3a897559b6609a6e2235cd2947e0c58de9eb849cc17eb4de5bfae428b668c60181c3f2840bc24cba6651f6f1444230e93ace889a9e19aac2ea321f7029719a0da641b66f68f83f70280e21a2ee7a9b330141aea342bb105a6e91a459e62170de78afd139d78747999801ddd90fe1293bc8a250b75332484f3f9550588362aa21afb242f98532385b27b3ab41fc54aee30e35bb9e9a7c58ec3196cb47eb958a18e8105a23c3c56e1c310a8bcd76d0023f2986c01f26b7a5d2c6f9b025aebef5da69c289750bd19940f34cf6bb1066e409ea0d1aa0a28c0befd11698689bd48666a5994ac765989e6e6bd723667f85ad8c43328bdee488242e5d78082f76de1ab9c043932587deafd9635b0ebdc273d37411a48542c8d4dc6675314d73592f99e8550045a088ef5374f4803e823c2b7e8fc1d5193b50718d475ec85c02538e3007f553b88df7f5c5a273f30847384fcd965ec18fcc0cf88118b61cbd3322f565a64e0d9243799c1b22dff5f794ecf27df0b698a4db0ee2dde841be432a23825a0990ccbb280c785e0cf128207c03a838f7597d563f1c9337c9726273affdcbfe620125d0f4aa1688296c07b444d06fad1e4f0b97fef5a94064aee870fd0f1b43ed8790bad1e3c36fcba07b1f924deae0288113572abe2039c9cd6ee592b7f47f545609bf0ff573c9dccceec93d1bbbfdf99b96d87e8a668ef5e64d422fdcd3b75f945e2a1dce0884d57dd89958edbeaf82b3c4770631f2149c7f191267f91160743d7d8b166274168030c0741f304d38f02f698ef4c3f9d58ceb4c1f975895a88310c4730f9026aa833dd1cd0f5d9fd1233b3d5477fc7a8d6ec128ae6e8922d441c0c9541a5075a2bb25f20a43e1ceb3f58338ab2ad6e5aaf523beabc4bc33c770dc8eed86e3e26ce3737f067846a0adb571203e8609c76259e4bbc4aafa23d807d493eab1fce07906d31464d5f0df4756cea279d710d135e611379e7c8b2c5b0a5a3a38409e21af90797e5a44eb9a571fa4482d828ade47309dfe6da1b66611ac4f2e28f861f39187662c2f6e033d170e91519425fbd1a554ff2ab36e09339ba565587dfe9d46cef37516c9ac41dc54dec9457c6f4520534bb124a9ab99603e046fdf1974964b38668d0156dd639d4f40f7d686818385171241a5d76f01299409a5d518d8c24bb7d474552371a3f18d08d90dbe9f1adfbe5e561966c069c069eee5f7c5b488d238826f79b4fe564a107c8ba86d0108b592e21cc65f0198dbede778917264ae769800e54dfbf2ff5dcc110e92c809c802c739b946830f54249008353b817e24c840755cf9acdb26229c1b6b81cc8d3a11279b038f7036133012778cc575fe79d35672d3de1276a57ffd7bcdcd1122463e1d3d082c5f16f08be0411ba67d25f7f8ad4f5f80269275880420e67dfba4052e79e2324bb172e3cd3c857bcbb793d5e09c70a91e2b50b793be0e10c53857693ae679f62af68b734e4a41c6f7c5374c27f17d7928a29c05a0cf8cbd74bcf760eec0a6109b9bacddc2372666e4e7ea98a2c0df52e165b40332a62ac74b8d4077e3238ed2698a07bea1f238f54c235f3296096640cf0e25f5f4c108c4282284dbbb90d636188d7740488451f5368ae6da7b20200dda6061d85c81b1502b69db8b740fa840968a5af10202352e0ab764ad0dc3c568b01e1509e2b6d859b1e960e3a0b0d3f700582a303c42638d6a346e7825b3e8f24c81fb345bccbaa86069ad4b09f624d6210e68d7805695b415d56140a797145d0efd9cd06d108efd370e5c0edaee5120f9168ae21ee7c64fb29660817c7f8c73cab385fc67fa9000d2ac5e36382bbd6af34323daa37e13d2725d395193f0e6d1cd08d700c345aceb3c915fdf739fc31ee0ecd9ce23228f06f80b2d2b3a537982955c21213db114c6bb4e31df23503c46fb5dd7546e5b2694d0b325c92c2189dc8cf6fa862d6a4a9bad406c645208a3c35932c2f1bc4e408d0072b1856193486f2a97bcbe9ce82e01793fa44aa8af91cbdc03f09379a0fbe4ea0f3f758fc55caeef8867ce236ea86bb87660d3065f50203ed952fd8655e364b680537e8ef54c60153bf964f87ab983c3f605b640f2d848437b8b6623b300dbe318040f458891d99d3d28bf9819f248656117c8879365a4fdf80c5fe06fdbc06fa7e11b84e6648b46ac6274a4af548894606571811c1aa389198120f94619989bbf681cf677503d08db59e7b55235c86f2c48a4ef3a744f3439caecb8cb1168045cd602265b07c7c26a9f432cc3e6266a22b269053dfce48528a3a270438a526ec8464f37048b60bd7d454fc3dcd5b1bf9bea590d9f89b4814440daff9d8513095e215799a645042e520ff0d8b02352491c03193bce8cfc08cd47a994c5fffda39bc728153b20e804c8b389f6ec646d768828136ba0f232290f59c35c0e34d724f6431cb5f7dabc48d24a4af5610353c47cba81e3b0763df6025ace5a0e367ef6ff5460c728b90e89c61ae88aee98966f94446b6bea22122bf166ca8c44e672a3d295a82a1b40914b621c5a4a311782a01426bc1ef04632f194807bdf3b083054f12060b44fb53f9d1e291657da9cc19836b32ffd549847c216370781bb935ba0734874cf7c3f06744f38dd9a5c763577e263d0674dafd9bb19df2831b0ed9f788c39708878146f74d991115898f6a3717577ed129cd637e76527ccf77be04d2b3af524fa30bd8dd2c5be363582e1a4267cc9ab468b56efefe6a325bc30410060ae0a7401fff234ece7e27cda99d3c6183e487bc921ccf08f01f6271b134655272002c0819683d0f4df4d829652c44748ecfbdde8ae49fa47c01780fec7c8f9622f15b244ec0224007b25f9aeb0fbc4fc831c62cc93046dcc5bd8ee2b9254aa36505d0dd6422052afc8c0221fa9d6467447bd187ce64bacff3d3a6872de232babe316cc17254085f31ff8057792b08f0d16f42ad2c409fe932b4d116ace526b9d041b5aec969607b2efe35ceaefdd69692e3ff3e7721b584a16f1e28a37823a8dcb5b0a23f17f6545d9fa6eeeb86885b685aa4c263f81e4596d9e17ddf4bc9ba1350476eab20d40bc729fd4277630b1359117e3116c8a146c694e14b1a56ced0cc54924f8271e94eac3ce17d0dcf6ae51b807a8243838105cc763c3cec5b4669bbfd501d24f648cc2b2f6050dacf0af6f1be45b602525c8ce5c34200889b338cf301b6e19148d5d456eb99f0d101c695cfb0218fc2a0140cd42983af9badd6ec1deb3854f2e06079d525d5c371f2144e0d6ef98b2ce1b3e233ed48474533881831694e9bb176b4e949546bd09146ebcb046c82dd7b1ae74a6a01ba850ef9ed877418c36f47a5490f2237d7bfe3dbf6fde7fa2aaf282475eaa0eba538b8b74edcec806be5da3f8f22ce05744c3d6112929157d359f451caec048b64d704a59367362bd178313855447303467babe705177c1e7a0c5c2702beb6f54643f43b5eee0c0d6c438c9fb209aebb49930b9a4d85a4f3a248f8731d608a1d7444e6ec99ce3a68c091b5891b16d7027d48a76891d5dd675c7e7c94e7b8de00ab2832da0ce8d1d42f1894666bbbe51e538389de17e290a1dca5943627dec2be82f510dbc70f9ffb31046ec334327411ba7e5386284759271dd44d0901248bd400e76c17caa9d1ec4959de1830da9f469314fe2891ec9defb8a7a1cdb7fbb070b2d82c83c39bb1b659030802b5394e464ea6910a2e2de69b0466b2e97a65578fe781d00979a6b3a605f89059c611bc0a1ad2f9f6eac5e51704167876a0996d76c2211a1ccdd68448e60302af2f76a69bea6186a62347aebd08e420061779a45354cb80f0507e7dceedd56dee3750598ecac3858f89c093a7a0129fce52b9661fea290cb8714327a76179050702942867c40ce62baae094018fcdd5d7fee0f4d3f323896531c7ba34363f9ee77a28dd14548ef043f33ad7a7ee67ad4b66742cbbd0418ab8b50c8db69bfd93055430d2173e3529a462aff59e24cc1eed342123db7d1164bc245e0030e6b4155e301b7c48abfb9c4326b3538f6b43bf1a046ed4b893133f704754bf8e5681e998f93150729b35d7e3ef6224c4029ebcfeace7c4c9a1dd924461ca473480b2673008d77045496b061f0503d648d14b1bcae39624f8f122aaf792c4dd6b160999455912af5ab895435fd4728a7001648df9475c7c020c5e20c991c743d8ee9fb0c8888a8cc679d32ad2bf32542583269240a4258bfab4f4a50d64f4c6cf8c0603941d2b328b8343e658cd9b23f0044dc11cee3c087f322cfc90cb0a98af502edc3799dfab434b9ea4cba3dee037cf6d8040e93c79d841489948b6958dbf222f9ffc88b18d995f6e0ea87cd9f080ec3a3be7a280cf3f08b389137734a7e49a45c7553442b15c174188afead0a9d8727e863bfdd49b66d07ea6dcbc17ea4ab8a405dfc9171169bd244b32b4938041f28d200a39718400bf40776ba5644d5f470d6b3f6bd612d6528f9e3026aa2464dd33c0521960109960ecac7304189e300337b32d2c463d40bb114f930ca372524a341153278ffb1b90acd83025022197f9e8e17b19094b919eefe0c41af5c3146244ec6d60a2d5a242f8b12628ba0c57d8aa130fbb070072604f8918981ccbeaf212eb7b7084ebb3de3d6c0b5649b779a5ce94f4ebbde061b982c406a1b031cee955d486bbd6cf9a6d7540fd035186f72c0c80cbd0638228ddc6427fc7d6561bfb712f4a7c74c675945320bf5e75c970bc6c830e86c839958c69a4c810e68419a0dc5b2808deb85a65401c2c187117114e6f791bdfade9358e86494e449c5b11d46e7f2f6cef0fd54b34063e84097e9c4c1cef75192ac4029a6d1cef27a971b163b10d585757d101c956b1392c3a685d9172f4a9b345a677414cae69626b7bdbf8d72c0ece53802507a690c6082fca665c808124455908e005b4f43b808ab36b5551b68acc880db7853ea3971e6ce23765d44e8a15a48400b0841b7d4e3568ba47bb7b235893327084eda983413293584be1c27dbb832dc398f7702f52c957593f82eb3c479a8290d3e9a5d2a74e98da445427c9decd29dab5d0d6084e5127e49137aae1438f2ab6956e84edfc9fb55eed840cfc0f0b23d2edcbd78bebc6b20e0170408ac39f82d5b86c62e48ef681b234fa1c0a37b545afdaba06315f9460ee31e7a967b0053ee46212850b4ae048536d4c2b13ae9b557d0b85e19da2bd16b17b3a707d061036a770a3806a18cb5f6b795dcd05830e05b23fc904a07837ed049361cbf206b2d8d780157a2b263fda05681058607a95e2b4d7f8b7dea2d05499c63b678b387d0e681553cf4e39ec3a7b0df94b09d51d193a49e211fb11a85d87db802bf18ec1e4560e8f2e8f1fdc96656663801f81b6c2b93b1dba124da071c5a7490408bd54293469573a240f4adfa6f5ef02308ebee4aea4cb6d07d980fc25cc1939264d9c78f4ee6f8725a2361607988fba647a6d6ce5d99db5da67af4b2202375b34a4675c7c0c323b00892b380fb505ec0793d8cea4921b8e2418e25b83497a8b90d1f9436ee5c0c65f3d6b82984429729d6739f53325e4e7ce5d4fb0fc88aa913ef04d3040bf84ff5ffd4d430fcc1c12593116b7d950b5ab6876c7596601dc7d13d76b3b4a64c94c1bd680cdfa3dff1bee31de2654a1bb3cb7c6210dcbf1cd0f9c67da6ac5cf93c61fa3ba414a92960bb928a3b79f0ae207a18e2a0dc68e095017bf12f91bdd40c6c770f4a9406861a7c5d6ab0e1f38e46175627d8ea56516b40345c06af559a0d42e84891614b7b12275be8269a1a748a4f8ac394382c167b65ee2277ea766986c3dbc628f5de8981fe15d6835e2fdfe4960087bf1e426dfe70477c713b526ace16999851d6104ee41374c5f9df540442e5247f344bb78ec73394e3825ea02a6c89be734f5cc46fe0589b62d24de060613a99b90452af3aac1486a407f6a86a2674ad506d36a02351c69aeefd5f95735be4d8ab81e39a1a87ee8693b4f60731769d056d7710ee9da8bd5fc07bb680f236d5fb84186fd83227ad67b48aff2ac94059fbfa17bf3afea18adbd84b96532a47a176bd0af7f240c57c2afa359010699c191e22e1085ba4a8353be37640db82fd78ff03dbeda9e154f82c376fd26c816b74f6b4dda5c8641a1734f1edf6d13670a7271635255c8948a014cafc8b70cfa8077cc66c1e60739d8400169c014eab66aa4203b606a695276680604461ae457f70ff7610d5f7c1d8bd805caf1aa76e7fef6fa8ac1f4e9f2e34f95764ab9d80e59935cb83e6698678dfc03e018b7278a418e47a04fa913fb3542020914d07a509d2269a3487d8c522a4c878c0d48ff3ac6069ee3208fa09a422902b83913d0c038e7296acb60166055d4cb2ee67d5a3841b88bcbee7ab1efb821d72b3421a28108908917bcbdd6d4bb9a59449cad80ad70ae60a3abc3a7e27e1ed74285b9ad6b6ad08b715494d9becb6c595b4acd62abfd60ab3c496df9dd46da6b997bce425bfb714b7bcb7f45d57baddd370bc7977fd966ce63ebbfbf8397c4befd9c497bb2109fe3af65b7aceefcfdf4afaa3578736db585a2710e167fb993911601bdcb10a22b888d0da04d8b10a1d206a6d66a9bd41f6a53408106f71b1e82167145dba537f4ae46386f6e3c7ec436ec85adbc3cb6cc0b8f627def68e35b76dbfc5b93db76d1c879fdb4ca8532a06f5dea7fc519febb0d33d545bfbccb1be3a96748f205bbef5e7ac48719e6bb09cfdc38e5518216617c168cb18ec58051162de4b699f7a8b8bd1fa3f3e98b0f456ca6aefdb4affc4e42a697f9db3c21404081793bf85f67f384cf7714b9ae996f44dd266a9a3bbd2ce6cedab69cb9b3ea979db4cf2b7df5ceb4bb7afdf7d98db7458d22907a5e5ac90305299d65c272f4d153a3c9ee586342ea67146dc1037144ff077aeede7c7703accf6ddb57ba6fc9acac9f4f74f9fa6bd29ab689cbefa769fc995b1ee1193b62d3da76d3afc39e557ce0a0ebb9502acc6663a5b1d690bec56adbe9c0b72e838d7b2a06a9b94958b49189693dec2c9d1c1c9d169e1c05a402d8cb342c2b01c916de1e8ecbc88c0745890a5ac3a3b2f2230ce0a1c1d2238393b9c155cac7acb71328e9dad6d7d66dba9729c39559c1530231aa7f118f88cc78086e6877b4c4c4ccc0fefc2365fb6a4be525f0e0672cba918e4d06d72f7820c73bf6e7f9f865b8dfbad4a4e8741361d87a0fb6a698363e32c3738ce92c50e0671d35a87b6fc999cbd9412c759c2ef5e6023ede7388bce8ebfb6221286a6ef0d67ce9e1fc58ea5b5f451075d86cecc6d66861375b4221b0f1cc400e3c21b52a8c3e215f7fd3d70c4d536e28e91308c846c9fba4d9c020a2137db7f9b1c4642a6f779fc675fe9a3fd89e8e2800883460b5b7e18b5f0340211945fbf222228e90ec92347c25cc7070848ca2b53de634f24f6d4b21b0efa53cf5fcac1a9695266d2f1117208c65e6c70deeb9cb3dca952ddfb94d2399feea9dfc11d53a5be70159f2a1e51b6e2113c1c3c4296d72805e5d586a1941f72cbc9051e9fd77526eb6ab799120721bbcd64cd9da93359f7a78e9c2bab751c94380e4af927125749e33494fe722874e420c58cd026b3cfa982c0169d455f624e1a425134d5fcd018a5618f18bbd3e3388fdb30de9dde1e7fdc9c946eafe538382ff76da54f525c9afea5cfc6ea4a9beca7904208c535ac0da54ee8329eac429ea554282946c43b948b1c69b2fc06c5f8e9b97e1d744dd3e1113c70a6e5e12a33b3b1c274491e5d4c0e1d29c6a46a3bd264c9a46be767967ae6ae7ba87ed84210b6e0421c9c524a2b254e0e6552179343992437bcfdac71d76afbb8afc86ea148b952badbdc21dfd82187315653368ff9f7e6ac924131bf711c47728d54422a514fd928af369001c9c17abfb86596d2f58cc150d821873208298848aee4d7228993f26c393893b2fd70b6f6dc564f1907a72379d2376364dc67fc07c865b0e4ea26311272f61a14af7d84b34c0185ce9e930768c6bceacfd2cf973d8ee4e08fb394b4273938915676ca4c1d6799af2d93762875f654a972be376795ea826eb3b30db0e31443aed89b9435ae325fe6a822cf0e634c0a719b1c5799cfa32292e7ce9e3fc790e5469255d38fc6264d6268a8d8918a277a36ecee48c50c74d690fd6760e3028a4161c72980202487b3ac86a83b628bdc7165026166c7297e20b3c30bb45dcad4d60c4d8d74099136ab19251107fd652893b6bfc7c41619e30acec9e18b9d8232b94cc12da5d468dc9266195c43ca1c65ba22a2496b44a7a494d23a658f544e8e83f1c6e58ece910b2a4f25368592bca5b43ead0f437d571d9dd5c3d71ebe1923993d700d12bd9a7ac666ca475d6596ac7ef59baabeeaa3b3a826a5544fafc336be6e3ecafbcceabd455363defb6d23b1d6c29c446d2d49b55ac398fc094975f1243af47df22e74e8db644e7b62424f4edefec8534dc3672c85a2d456129239f27da1dcdf77d8868b9f2ee68fbca595db282a45e7db12cce4e4e48bdbc4c4060132bf8e5417623f18126a4247ded2b72395e4f5c888a523245fffbd3a479e9a9c908c683a475e7faaa731bf8f8efc6b4fd76aab25f9fa234fc351df42879985a63ff2f51b79d55b7bf219d6119b28fd239fd2272a1509c917b789c988c9a3dee447504fc34d4c4850df75ef2d7ce2724a3ad0c473fec9533af18809952637542a950af5269fca6380f2a98f07bdfa56251f370afdec33b74bac8d798b8444734328148c88833526a6e3333566b2522cd5352673a570316f2171561c25e9ccd8bd2499cb09a058106705508ab36285f2a839e2446cc42485f28572a3fcea35a90af228e1dca8b7787572622b09e556f44f9ee4a3b39cd8153d39d1e1fbe4a983272f71895ed1d0674c7e64e48b0e96c89250ee932721513dfd42d56723ee920678de9390446cf226daa483fc41f69f7c263ff2265f90ad2a1979922fe4ba4f7d284d4d1f97530e526fce58d7446c12754dc462352615d3d1fe030b36fa3165080f2929f989e910d5094a26dbaf3f1fa6eadb43b5533f7c5b3da4f52faaafb846cae4ab8967356769d5f367b23857a9f527957ad4db2f85aa2ba020e4abc99cf993d37d8c4f738d2c455c7130c6ecd287f367c7752851528b3aab1a4d958f7293a856fb73da8f0a51aa69108d8559ccf6af4693357f5cc5dfe70f0f0b08124efccb56441680475bd39320c8a6d3c7dc2313e6f499864f2672e852782c41ce827a7729624b9423992421398573e7a77855390757f5e7a7741824852a81837396c0c1e985fce32c40ce2a79d742b0d9720b3b4e01458f37adb57a957a18faa9c73f76fdd44455d41764574f7fddd3121d5da58b57623de78f4c0eeffc992fb6ffe5726a4ebdaf83abf9d9db2c2711391c8cbfaab123aec48f31273a6cde13710dcc861c03c3710d6c94e3ddf27239a542f9158d334a376cfef2040765e77196ed65e9e58f03390bf7f23d48c859bc972f831c141a9281e28a9431b6c3942de7e67dd9735fe925de3ee8c6674f318468c7298060b467ec38c5109abd659cc4d828cbfd5b9695c0413964d3bed6cfde9e94cef8e2476cd15e5efb1f4e0e1e92a7ae75ee882bb36a592471b294a1dd5687110e5b7e26b50a65353f52e98a980d596e8fd9a10daf2197a457e184a21da98801cde5aeb8e20a3bec38a407671f16b37fc72a9e10db5bfcc08f8e6c7bc5d5df6699d543ee473ca4f52f572fc1bd4441b110f4b3bd1a8252aa271680a0c352eb576bad756654c3a93eebd75a697c2be913eaf61ca821d30fa321d7fa19fdc8713b15e61de3574da73bcd7697d7b86b3b4e0397532a6d23fecb07a396ae1dd190bf9524b225cff650f26cd7565218a61ccdfdd8debcf8a16cfd16ef6b5bac48e4feba508c75b846bc5fe47eb3d6daed83c962c9da6db35b11e962ffc26c9f459c7de116dbf7331be3f6598cf7a9a5947ed4620cb758b8c56ce08f18ebd0bc69638a14f527ee52d4b4b9343e3e99b40d47b365510b02240addad6887f37f380c47edbdda6f42d2856e433b9c976e31eda7bb0eb7d89ef7efdf1b9ffb3bafabc8bf917ee1dc36216983fb2f7ddad36fee7c8b48976e8baf3bba6998cacd2249618f782f17afd6abecb5160de7aee9daf2b722dbe33f31b942bab52f611bf76136cdbd76e5dfb9bdbc3a244190adc856aaa1c52ca3f7fec444d0efc1d1ec935be560fc4839ba15912e728b6d9f3a3bba088292254cd8664e7dae9fb7d4976387ceafc304933f878313749589faf0647a697a914ff9e5f432b3606653eec664a5e440fd4c71f0457e148ce9f3c3a0fe0b4d7fca2165c171bbbbe00f51a80ff7e6ac52c510d44a1f6e6f5f7ed1dd7dbed57e037fd0ad69efc3db9ad6b412920eb17fc84dc1e9856d3b89de0f973a6222a68681712260a6e6e44c9e818c42a6ff834618a59b50540205028820aa9659204220360d07dd7e37cbee0ef28d9e9efb52defb975efa7486835ea9d10f8a4aaa1711d99b17538844a0ed39bc4a223176d459b298bdd459021167a935a26445d5863b93673f0890faaadeb3ed07c3fd12bba6a4956f232d499a92255de24476fc5a350de3873f9eeb3849a35e717f4f593a116ca3e46389f625b0784c15f7f8f3699595649325ac83d6127a497428776a6845a552894a29a59452f6c0602b25a50e93187f25a24327b2e326ad94f86595324a19ab943b250e6b5f82bf248cfa17dbc0a94fe376d452e7769ea697e2a7a55f82f6b454e2e897beab79c060fe399cd3f335ee37ed35ee621d3c4abe044d752caea1d97ba72689ecea4b902e3a4e241a99240108373ef0c18d0fa0c099ef6dbf79304396883f2f51d03ba736bf4ca73e4d7b1a73524a8f30c2c1f83c22cf8c983dbf1b925742d03d3320a284492207658dcab7a7c99e24dfc8d7e53c08ce97164bf47bf4d0b43b5f5145bea68bb0a6abababd23818445290abc42092c2fbed989ac68cc369348d28cd96ef724e3d8b2acd64d11da749c2c70fafce4fc1f6bcdf24fd2f891f72dffb94c856c36aa36dafc168443abebd51d8fd5dc3165b2bd99ab74d1f461685fd8c2cdb6b4312867c4d7f46145764d110f7a5930e3317d2a14a4389aa56a7105bb2975f693a96d5f69b9e4330d79e739ad83cb7363fc39fbfb0c5b63a09b9394a4444fec990d4fd9969f7831cfa6b673f5dce2a21f9120d82a8223fd3d4411236d88ce894be420c33afb03edd71f02b4cd594c8cb414977aacd16af8cb3d39e86d7a7434676324ac459e6d574e76bfd4beab7f9f23ea43bd47b4d89382857f7437ab3b3e5d31b67c9d1a144882d767bbbe95052978e7ba9ebda5021f5ab37ae425d5b17841ce71021fc293d5ff3a5cdfdd4d5e9ab63a6e7cb41195bd6d0e25526a6ad93903bf457388b68b509e9cd96f2eb8db3c89c2dbf13429e1f7748615bc696080b31282fbeefaaf7ec37e74904e350d973c8419904ddf2c6c1ca33bff23828ab4d5c916f9361b2ff21b7f6e12c8299b3681e21cd39944a7fbfd0ea92a63007a53669389fc2b48c27d3b4270839a49bc292a09308e51942fed31e6799afcae32cf7e5d79e6a3359f20d5145beacc36522bf60cbb7a181fcf99a39ab54ff95c6596ae4a42ee390c78c26cb951055e46bd794a7894a12392bbeb0743dc8548bb4762b1c74674f77a67dc82b7608646b8f8483d441e9afb822372db6d03dafd8a18c2b537b190ece4ccf8759e1c83ec79723081e64736aeaa0079c65d5c36e25aa113c8e7016134d96576c6f392853a6cf97b3ac4a2f5b449c6555d24380bbf42539e3206c4221b6c823c4956f8783db73dfa6e94e6c29f96bb2eefd57a9eebdf7e5e3325f12867cfba16febb3b5911d5bd3f4c80724c84bca710d5a6222f54082bca45ed10a5b7b8985adfda65f5b7ee9f3d1d9618ff8b34f90fab8e78e944ebdf665a92f4e150d05317b3e8da93d20bea4fe085b7eea6322480ccc86a625b30215c4bc3411e425a3b146238ca83f285ff9d962ca26b3183b7b8f1167e4e2ca06ff55aaec5965719f638b117125fb6e0839e4aecc5e66df01a09db1664c950d4497084818d967cf23b6d8cf666c332290a96496452eec8c5e98cccd8e30999a26e0ec5845135c3b8cb19dd9777ce906b2c36dd712c4c4c4ac60872588898979c1aecfc596499335b1c5944d86ab44a97a57f9b6fcec88a942b3ccf58fa895685a29329d51a9c442cc2db58cb842375f627b20ae501e51e4500611123d60001082e892f247c496ace579cb0067943725c69600d899263b43656df34b94d2cf90a03ca8f7449e20e68ffb2110fa41d8e4888483daffb07163b35bf65dce72df0f6729c18f1db5d60dd7c8b81b7f2ecade31597eb3ea070483b891c359a836b5b9c2217ffed4e108541b667e90edb8c67cb9550e0271bfebe0e4aed6d141a97216df4ea5fc2c4d753bc8a16afb90d24f5649ab54aa10d4a8d8e8e795ea836c950ee536d94e9f6f93ec335c7f8b10907fc2d9a7b7dfe9907ea7df64ce7f4df943d34793f7a69f3026efbde8e9d0f3fe7aeffda6453cb779d97b93a723e020fd1c38fa781fc6cfe12cf912879038bc3fe9d076ddc93f3c9d4ea7150ed59bbc890e553ac8de4e9fefd3d36bf2854a488df33e95c535bc377d23bf6d9ce91bf99310d9fb54a76fee922fee0d73dea7fa8885387d739bbcff4177f7c19cbe7bd5179edefb1ade536c63eed3636c83260d5119bd3b75efbb7b4ea3f38b28e11a3e70d536b8c71fa38bf7271dfaec7ec2246123ee2b39cf33455515257b9b7241ed4529c626839b8181e8b68db87f78db46dc4138d8c51a67e7db54eb7b2d7dbe33492e9d5eee12ccc9c712e1f6a527f95638ea7b9fc4e94b327f2dba5dbfebf6266157dcef77eafb2db13feaabe11f63dcaf1ed7e61ecb989d3ff9847daa9f805d2b76edfb9d4f4564457427ad3dea93d706d7e9f00bb7f73c7ad2618f7deabe30b5f157acc3843ffee983e974e60d217ffbfc75560bc13dfe3b59f185de0763ccd814b661fcf197bed087e01e537183d6ee3899b3cff4e5eefdee67f7d4c1d97d74b0cb626cc91f9e9ec8a79fa68f5f28b7a9f4deb4df753ff3671f7f4e39ef337df7e52f091957baff41b7f7a56fa35d57b18db87de74f5eb1e5172ea1822d63aa80018d631bdefbf65ec335bcd7283efdb6fd46e3ec4e4fc3f3574f30f94fdf7de1e76389158ed37b9f447ed3e3dfbaed37fe14c0629f9e058b08dbf88b57ecfcad7024609f3e01fbf4de97801d71e6ef43ee9386f1efbefb7dbfee6f176fa7ddf774a8dadfbe3adbb8eeb7eebbddd3ea78d3a15ce1c09f1f7b1fe3cae9f4855dd8bde92516a2fbbcc2e13df7618f9466bf11a476d86367ba472a253f8644ae90a28ea02db7dc5b848046c50d88f6fdb96553df9d026a4468d7b6264769e08590eeb007e794eaafd11952293a32e2c5e92491a4208d78502729c0aa67724a970ca3e5c39e2d24d2490ab08a42791f357ed4771fa525118a076b7904abf228e63f9d4ea7ce74eade84d2d2083feaa551a6a62f09d9492349941121927dcdbcc6fac917cc6e9b873a6512491ac92399841ff5fee1ef3a7cea50a6ec9ffd4d26531776af9d3246bdeb55a719106463bdc2dde3ee4ddda9fbeabdc97bd417a2507f7a8bb1f7a8c728eb796fea50dea966f79e7e3b5dd49f3ad49f2eaad3e1cdeee9747a99ef9fee9f9e3b71a89730f8f16f1895fd86439cf1e994b3c9743a3d0aed9e6ebfe9103fea330aa5f39bba3f9d4cdd9b4c9f9aa8b0fb527e14a57ff2bc377959c3e0cfbed33fe8c67afbfa5abd36cb5e35c8f269dcc82169a44b6787901fcea22f3b3836614c9289c213af1dca9a161fc62cb09833a24106d52f62e8c460a2d341a61184b394deff460ee7de335cfa49357e1afe343ce78fb833994c6f236e93e9abe9eb9b74fdd3db9c4fa6fc79d9972061e09deecb0e467a392ae7ac37acaefa068d24647f777777f7d43ec90c06f8d6ba0945eb2e65e65e0a02a4b415719d3be7cfd1f0ee721c9e97fbeef1873baec35873772bb215e9c19c3608102dd334ab050162b5adc8da38354dcb5ed3341c5c6eb361674b7fd2755ed775da4399de9a3ed39f544e3aa4595f1d3fbbe91e3129c5dda49c8300a95b51dd86b6d856c40b026413f24c9b90b70d9936cfd3e11693ad5c37cfe46593a773de9e72dc56642bb215d98a6c45ec91cdf64cd3580e02e4ca38ef168b52ffb8f7da2f5dfc9a6ccdcbd970ba3bc5cced6c32e990ee1c494767c85957d74e75555775ede02f6e8f87a7070ab1a09f29ba4ee3cf3787546b9090906acd9e256973237540642747ee80e374d0515050d051dc5b52928c998374491ad9aa43a9a45f40afd70b68cfdf6a50dcc251d15017ae6bb26ecca43bd225aa729ed415fadc54868c016cf9f34716605a1dc3f756e262523786cb7efcc6dc98ce08d95f664fbf3133c5b527cd8c09ad151d153904b7e4a2b5c2de19f9c6dc981bb3a78b8d4918f3c3ba635c65ba44507efd141041f971b216105562f527deb30a3bb6a7ac353a2a724863ead35d75b8c4a65ae38094346883d32fbd0fed396709234cf7170f397d58bff45bfd30c618cfd7343de99890e3477c1d8c3ee4ee3efd9dd69df6dd97be7edd17d6efee8e5125ecb48f49c3257e407ca9407657dff3381d5ec7357638215ff2e71a3b4c9a09d30309f22244fdad66bff2befb1dbb5b79de7bb576da87f6217e25e61e7202d3c71d26cd049025ae788218d820873ad8e18a17d33711e4c5a49b407dd6dac77c2e5a61cb8ff75bc99729434c8ffa96902f4cc42b5e4eba65f262d22d307d134b3411e4259b4c2693c9647a2766bc987e099396919169cd78c9df025ff2cbb4542ff95bf725bf8c871413a37a61c226c5c4bce49771027c6162de21e625bf13335eb2ee9690272b65075fc8422b8a9927b4f0829ab1828a580ea060069e972037325790e9814f12197e5eae0d9ca0851858a1042fb4e0a5f3921c383a6433bc674650ca0e51f6049d25c68da9623bcc791fe3fc587a6fce5a5dc6a08a3fbcad6d3f6a9ae7bdfb1365f027fc097fc29ff09a4be4773cc77e8cdc973ee47ef3c2897594ded39d97de4b5f4b5fdf72dcd67d520b2b2cacb00a0b2b0c1cba5808df3a0e73a32267f1bf8e9461aa9eff814df0350d067377777777777777afb0d287fe5bb518873fa6311ea118380eda5f553d7db0576be96b2d3d7e8f06eded3f5afaa817685248632c43bc0d17f0ec1f76a4c205aebde5dccd1b075536d5deb57712ce6eee8bbb7be570da64380e854f1ddafbb4c1d168505c81c596ad4281d6a14ae4df65df4defbbed4bdb97b62f6def75bfe1f787f1ccec293ffa5bcc1e7fd3ebfce9431a7d868f7c2accb54b47840ca33d27398d43d34a782fdf1f8575f8cb1c008c43655719076da784ecffddefb8af66309c67ce592ae16e04e3b8b4663fc1edc3e772e975587aa95d7326ba7df8f0f6fc0c14f235aa999cc9c8246d2be32ab6faf8d59bceb22ccbb22ccbb22ccbb22cfb115c234b611ddbcfeea54cf7f3b90f650bc7d4a197fdab9fbffadb47bf7be59ff74d5ffab8f73e25f2a6bfd59e3a85fd2567e1a93d273cc4f6292137a74ddfe4c1377d1057ac500c9fd0f3300e4f2b2177feba2464ff69135bb0e6416c897bde380b9d3cb3c7592af7e253542851eb909067a9f454eec823944a72a724774a72a72477b67d2f95b0165e072fd6e1694e2b2137d661e933c6d17d098683c9ffa3f449502ab4e92a93b5ef45508c1948e0f6c32684c7a86938fd81c39fdddb4783a817e2ca17240cfb34469192621cbc71448bb6b5bf69b54ec1e767db6af46145daf64b18876bbac2c9a86778f13da878c8233be21dbf465685d529f05b500d4f061518b216b6ad55d85b7bea74c6d806224b4615ededf3882dddbf8989c91443cd6a4ad0ddbd0fef76dfc53abadff40816e287dc9de642235a63629470f4a34226dc46630edad782e890abd80f0a69504883320da23cdd11b2f6770b39488392bab759b6a98db3a4a0a4763891a8cc0bfb990eb52f3dae3c275ce9ab47d5c8c1a24af4d59eb8629ffbea14e28a7defab5490306cfdf994b81b5ba41bf6636e2bd36cfb992bb3b19d4e6cb1db7e6d398b36f767553877854d2aa30b0d9230ecf748d92b25e8ceefc3bbdd0f322cb6dc6dbff2c4966c4fa3215518f216b260856db310a9d8f62750f421f7f6612d3a5215e5a12964b4eddb0d3659910649559e3ae47458b77f904cb9d18366274826d9f038d18c0ed0448a2d42620b857ddc53ac03bfb6c242acb86d77b564df4b3eae627fc69010f8a13fa799e8ca1357ecd3afc286d0c1b6d56cc0947e7b4d06614eafb4c77afa6cfb434e6f4b7a08eaed5fef4369f0c27e78e050b010ae61baff21250bb2a657da73d346db4e4f1b7feea6328aca65d00bfbd366b262b88ac3728feae76db6fded05d7d5f78f3efeeae6e41ee27dc8adbdcabeb5f643705bfb618c6d87b6ad451bc67ff2683a3b68dfbef6746b574f9bc1361fc2055b4c093d763fc8324664e4d4f3b432ba48154418b145321157b48ce976e6f398f7ce4b5fcab88dd36b8d904319346e4ec66c15441953630be2139bca1bc8a12ddda56f17006df7c0110e52cf53f24839f83b1c943a66269583487895364847470a2948418ad6d115ac20849490d26cfb5bfc68bf9404caafdebe9c91f6658db398bc7d694bde92bc7d792371648eb3a0de9efee52c44244cf2706f5ffa00c920292463cefab72f896491b3bc3555ecd36c57d2b61fad5d7d8bd5b7b8eff7be5f2972fd202c7efbb4f78f87a7f4eb773fcb50e6af3e6fcd7b73ebe46351f2a91ee5df7bacf557d0b6bffaee9eb16565bf23426e617ffbdf4a3eb9572d1ee535ac63f52dfeaebec56fdea2a4c5a784dc252cbeb9f322c2c347655aae625f6e8e33591e882ab1e5164d1bad5d957c57e350beb857dfddf3c4be897d95fd12fb24f647eca7eca3ec9fbe093483a6d03763dd3787be49643fb35fbf799444633e2ae32af6b78fce38685f7e36e496ef9d1878e6cdb43f715e6cfbf769b866ff12e17fb5bf5787f75e4dbb33c741abe3a0759e6d737cecfdd0adb0afceb08efbee6fdf7d2a1ee2fab594c6c43d2ea87eaa7e66efd97bf6b165cad83289f928ce42e32cab3ff96af2f55d88b3a8bebedb907c1df99afa8afa7afa6afafa5edf61cee32cddd7faeee33f0ee4415edf63ef445ee4ac4973b4eb7425ed6ab36bfd6dcb32167f3f7ffbf1502a3df76d8ff3e7bde9cb7ffa4c8ffa4e9ffa503ff2a59ee41bf99292a73e968899adc9ba37af566ff29dbcea33f9f9c5169f4c143cbc13ffd2e2bb22e41967dda9526badb5560a44b7b0eb7744c8f351eadf16aacf0712288fb10ed5cfe7543f552cbe99a3b3c3c33793684c2bb66449c88df2c58f5ee928dfcd56dfcc71b0fec9374dbeb9e3607dd5375f0ed62ff9261107eb937c13e660fd916ff238583ff5cd1e07eba3bee9e360fdd3377f1cac6ffa26d00c72b0bef74da11973700e4da26f164d23078f269283f55b7c33c955646eca90e95091b310cdbdb357818287831e88497fe4ee72d715d7323011525a29e7cdc4299243da6acd1b9a4a9fd8998eecbd354369624b1c22d3f45db6dcab74ed8a877029a594dafdeb899fa4d8a4bbcc31649640f3823b7a47e34aca8e9ee2607c1129ed5638a48e295b557989e96f748b0e461a35751d63d3df28a5dffd7cba99f2cff4cffe87b34ed17b71fa62b8cae69a9ba6fc857973ef7df80b5b6860f6ddf70e66371cccb2f0409c25c77cba9a1c87e22c19510f3cc490813396cb691407b34f8921c71da676d67d90cf06fd497ffed474e31c4182e458f973dcca758a83d9bf83d9c867a90c958da4ee45e57cca8090b1efcb70d25b67cde8d34d75b8c49eb4d6fae18c17258a828900b7ccf7de7befa63a0412ad2945450b5a3b8c3ff133ee6db819e07861f8c36eefc6907df3fcc31f16268661fbb9fddc36a22c7f7e8cdc87daf6a1297275e8ce90c3df7635afb5d65ad04b6f7f03638bdcf6a3cabe44ccdf56d77e0ab8e9d5fdabc1bf57bfd8f1d1ce2767ff11468dd01a8a41454b68d737c259e8ae4cecec1acad8f5eb9592fef66f2b6d79daf264cba922f764c9a852bfd65a9fea70c6ae11b66bfdee26d77f911203ccb123b6c45d3f66bab40fba894c4751d271d65a6badf59d98f152bf0920f75b50f2d2c41299b5d65a6bdf89192ff69b0052da010f8e70831a3ca10a362f40ae5e2206e1d8a109a0a12ddc218a973c55e4bdf7de7bafa54d64cfb22ccbb22cabba89e82afa4e1539e79c73ce7762c6cbd44de8207309eba928b64d7a9c2690524a29654a4a57844cffa5cb953068fc81a966c4b822530769e852c615ea72c6618b7bf36ac4941409c62bb68c2b32aed4f0edd530e920fb8717dbd091fed0dfbc49df3fa4545f1c92becdd996f208a13162c488b149a9c37d370d37c520fb905b860fba5fec30c603d1e874cf190211d27d627265fac22523d58171646fb9a0173f293d2873c6f00fdc3e9ed2229c45bec9957fbed430d9dff72fa47f3fc338321f5209b9adae0f53b3a02da6845e6cd7dfa44f5a337bb5d2c6e1cecba6132a354252a2323959c1ba20b3edffde78e0dc412c7f63c1c518bd0e7f84093d90cac7d5a30aad0cd6ec992a33fe367b86bc1f09a33ed10c14552ac7951ff17ea48b29c2a81f2367efc71259225be42c185ff6b40340e74307762adf753d7429df6d442da2eefb8e6b752ebedb7a7a7a7a3afddd36b40d75dd86838383d3f1f0ddc6c3d3b5f86e6b755dd7b1f86ebbb9e9ba121111115167f2dd26d375abef4a3d3d3d3dddc977a5a1ae2be1e0e0e07423df957878ba92ef4aadaeeb3a92ef4a37375da711111119752f854a325d87fa4eebe9e9e9e94edf694312461dea3a0d070707a7d39ea7d3787e384b6b4d955652abebba174174d16eec77df7d8fd8e2f5f4f474bfc359b767aad4a16e080707a7bb381df7ddfc8ea7fb1ea2cbe5f9eea3b7ba6e6e195dee4d47bfeb3a1550872a1f00d0034ee978b2f76d5c8ba321fa8888b8d6aecfc245a77b867abe9e9efa3c3ce661c3e1d97078d870361c9e5d1fa505c7626b6d375b8b87adb5b5b69b5d7f85b299106d32442644449bccae7fb22a9df40cf598f4d437516923251c9e12ce4809078767d757955c9252eb66a4d42ab56e76fd929435694425994e233269444425995d9f04959db41e6da8d37a4c5a4fcfd0ae3f92aba6e1683c9d86a3e168381acfae9fb23c996a2ded466b692dada5ddecfa9bf7752fb5ecba9a59737b867a7a7a867c7372561c1e1c1c1c9e5d7f7ebeb7d4b47bf64c569e36e799efd67ddc8bdbf9f26471422c51ceae37360dbb7e37450e2f11d12d729600fec65996e88700f4805f3cbe322a187cfc34c659d6450a00b00f8f6d90c642ceb22ed710ae18db1dfc2f67654848b08a2bc6b606e39f35ceca8282a6908a2bc6d91146317256f67a21555c31ce80b08fb33217904b08e36c67a70a9ed8a2c271564542d2417a619cd560fc2ee3ac1a3413e43518d7239c8a39abbe5e442f238c2b10c62f8938abba248fcb07bfc42f8f102bce8f5fba9c459190a40d120e92cec62f71ad099a2af56f4caaf845105de8117e249cc57bfc3d628b7c11bd62f877388bbea64ac58f23ba50a0c80304fe17cea2ae1c37620b7dfca0b36ca10f1b7f0fd185eee0bfce9a4853a53ede3825b6748ff1634de390e9a6b0fdc2125d991e74a8eae103a0c3fc03918a96d915d41c4d5cd95d14b2e783b54100d03da468fb72a1b5ae8ffa3a16d65a16d6dad3e31699cd58649935f1c09d64597692655946d95659969d6459e6999448b2ac7ea7d24a90b21a2412a4fa78e49e828e824e4141f5b99445d517d0e9557f3365b7baea4ead5fcad5224d16e7aa352a5546aa1cf568103d0aaa7fa390e70ead107d01bd5e2fa09f57d6ae455d3bf53ffa9b91a538c905c6a1b23b215c0d57c248f88873713549ae528578ea62a3dcd5744276ad33a3e1b3681acd231bbe7152ebdeb46eebb6ae8a7a371e8eb3048093284672162b617c72c855ea6f93f34bc4cda854444844959bd9f57de324ae8668b23897cf4817ee8908a37ed521ba4444bbd220aed40fb918ecfa258e060a99f37e72cc31c79ffad50a394b888dec50fd6d63ce52b1113e72d6cad7c7495d4c27b3d9e99a1ccd9c43d2254b18f5739e3d43f7e6ac523dce66b411f4e768266b8bd9391dec8aaa256ce3b78d7177b0da11210f59f9fb5287f868d7dfaecb196fd53e09e4607d017c32c855eafd520ed65ff954ae529f7e9f62bb986934592915f87262a3ec0457e3ace99a5cc6d1a4389a5d7fbae6b4d92967e12357a95ff3ae9b6a6ce460fda38c8d76f562a0c3e0608b5acc9eef5c2c9662d9d854995f7130716474b12e09c3c6262bdad7cb25b7e84550be5632a35f8c4bb0917bc597ac9f175131f4270ca8cebe8cc3d9b7e52c367b3ebd31f3afccbc337bce4d312df240073890b201173c3490018d01232e6081af408b2228300116128800041e80e280d50e1d0d382122c7100c50e128b9614308921a412ce025b5513414900013024e40b8b4e4037833582cd8000428808c0174dc16038600567e08c00bad7455401f00d043663dd0010e6c808706328001232e60810a144181094820021078800376e8680011398660008e1b3684a811c4025e360d0524000140b8b41c60068bc500320a408001c4802180951701f84105f401003db8f8e24ef171f1c99de2f33305a25850157ae8a147e3689c9c1ff010d919929272e3a2c517f7cbb4f8e47e99960a6c5c344cb87011c322c62236148699745424867fa116ab2f6e14221b85084c09413f3d4c68d1e275e23a7109a9c14ece8d0d50506a56aa23d511521b685a316f58ad8c487e487e80ac503424840595caa7249593cad181a207f6124249094ecbd49a69e246480d0b522999d3e71b15771eca43446388413222030a15db71b95c3bb08d613c4d9042403e4ff0edc5cd0911627383970e4e0e3ccfa521694831090e35333272e0b8a30b748182b2604414d3c2b6fdc4c862c858f1a101e285a5379115a3031fd21c0e7c487736f0363a882e39787c4877b0fd236b87063ea4ad0c7c486930f0214d721617ef3fe7105d7a18f1e1acc3f6effda750642171810fe790053e9c4515f8701eb1d842749133457c38bb00145b505e91256928f0e1844de0c3d923810fe74f0b9913011ede7fd64496d481c08753c8033e9c370ef09f341306d145faecf870ca60fbcf99d8a2328a2cf9a3e343476ac0873386085fa121bac8a21c1fba1a88628b894f6449a3213e7420067ce842389c848ae8e233373ef42ab6a7a28df7570d2f797fe74174f19c203e741fb84c64b98ecf6cf79aeda7f79776882eee23614c1a1fca2bb6e75864f98f023e944409f8501a21e0515e882e5e04c487120c41b1c54424b2dcc8e543c9237d0ef0a104da7e84e8326792e08aac49c3fa50dab07c28710cf0decbf850d260fbcb27a2cbccf911595367aa8431299432bb00313e8c6cd8fe22882ed347d2c416fcfe48f4882d17c6879148001fc6d8caef88acf95385ed8f23ba4c950f230f1001f81791358da6cadc5ab477f0431fb6fbf051d543ca8773ee1ea20ba549892d95d6f8db0ee8c90167d9800e553b8774b1423c764c968d69e027031a03ba8774b14146e8d0371293655f17d0e1b5809e5f816834235d2c5011333493655d14d0e19d008d046872a48bdd89408ece64654810d079808e03747ca48badd9e1f3335959908e9f06fc10a143d57c59245db2a31c3af4f9d268fe1d428797011a870e5519d08dcc65438757089a1a3439d225db092267cf8ab4009d179dade3235db21a1a3e7bbeff4c560d9a2a0af849c00f0274a8da5e245d6a05c2dd68b2ea9c912eb5ce1ce9525d748b1b1dc08d66cc5c960e2f8b0eb301b40c1dfaa6483ed2a5d64818f369d02c922eb4003a04d019804e0c1f183a540960e5850e7dbe68a40b05a22eba2361cc0f80fe411ba9689066fba0431500740f3a45d708499769348d84fe8b5bffc8ad7f80b611b5022da24354080b5b7e38dd9092e2130b8ac562417b6e173972bbc8d181a207f61282d6fafb7cbfb5d65a8bf2c5cd02e5939b056dd119dac4967f4385d01aca827f2d5d3bd6655dd6b5c3c317778ba1dd6288680c5b7e0c92111958b088f1f0f94641b235484848b666cf7d0293fb64c2661384807ce61350502691a0a3a023932fee95dcab2964dacc1bccd7d4993833072727dac4f796bd805eaf17d08e9b04890429090e7366cac841a53adaae9dccb5b3e79700c95d0214940523a298164848f4cf96be5348590d121252dc279dd3e73b1e858ff33811972295f29ca0a31a54836ad0d18e1b85f219a7f116e0b88dbbfc05a79336f9deea0be8f57a0111754445659009a9dca8548cb7a541f0989919010000122315000030100e064442c15030d4754db60314800c8ea85060569b88c32445811032c6208300800c00000800000803008074cb0d3325c150dcc38715e51bcccc8cfeba0e33e630b73606434b1a7df34bbc7b01fe4951c1500b481dc2dc5405b01d9e27979f1f7f1859422251c624b2c58584a884ec3e53aa328bb2512d1245b1cc28d333a6c1a164f4232ae2503228bfa74c30d0c2b21e47243efec3afe54dbe3203115a34670220e08ff1fbffca4f76dfe137e81a9498d41430cfa5841a42c95f0003a35285128fbbcc9132a03181782a72ce4cacb5f366e548a5617849d2abedf460c2f5baf3f77b27d5cc3098ee4dc1d352839f2e62356ef3e0a18c97e58f7374b10929530da985b0881a146acb979fe09dbd75f9238f91cc0170cad87641fa7ec32e17806e31bda5e2d77b89deae6f0c8c3fff5558ddc936d840d8c9fcbeeb6c51ff4b6811e72f177d0b8eb92a92cf7fd3b75f03a634ef0a34babf93c869d4668798c02e7f936f630bdef5b185ddbe4e152832dcec74e05d2a61f167b9be8af561a27e80435d9f17019f823ddc9885046a78e446cfbc7bee9769048807ec28b05cabe0a86cd59acb7b332b1cc0db02d953a9714800a897fe88253e3a6820e0d1378da47a1c65e69c2a8443440e86206475b9a5cdc690584341ccd93d8df75975fbe60fac5f9a709b974d5ab9664e65f7f45046e003873feea0ca543e6c63930eff631c284fa862c08a44f9dc2a423491ccc8ff9e53bb58f16762cc5311e84c4240a74070e08abcb983846515ab97d3000d1af465d2b7bcd05d075aebfde643582f49b8ab4a38615ab83a64452a443c920f849860c7b00e3d3d93cc1203bb25716e46760a9e348b4784ef6bf2ad10cd4df87a5b8d896924230e249c7f8186141be8c1627de71bdef3ee6caca575acdbbafb74e1b945d95fc7107ae6d4cc71ff031ff8a80f3ef4811f7de8c71ff2b10f7de8831ff8e8473ff2411f7ddc473f980f797ee8168dcaa35e385b534ad99b38973d4298f8a809219e9cdd9aa7b4190dc520086e449ca79bb544a33340b99b1e14b1d824b4ff992e283276ae46e167989202ed092b60230c5825e72407c3e1e928e0ee760b20f19caac07384b3d6ccd5693d059208b3d742780833d982902741a035183549fa36a8fc015f633e3831d34aa57cb12f1736cabb95b6e1d265606daa304ca8e131dd10f1365c00e8cc61b77da5be3cb463d349a77b12e6c588efd65a30da5adc68a5dc71791cff4f6ac1b9b6785ea00218c38330cbd04178c635d39b6f848b67ab544bcee7b2357044dc5d83c57b8a786a29ba52e561d18dc12e52cd26fc933fc1f18a08ef58c21e26b78644c19cdf6afc43e36f1005137f55bfbf2c443f90302541f4a1c8c5d30ea2a6fed934f75f89f19bfaf10ca23af5b778a12560c53188633c34284a7c0b70c0a41a4447c2ef85e11844caf13776feaf36f32ffbfacaacc62f4055ec164458f5bfd4fc6f08e64f324c2f888edca1a6dc00c4e9d420f2a8bf2fd07e964eff5763ec41e4457f5302c64859ff0ab31c09881805230a33ac4406d1a1fe1d0d14824874965aa8b0b99b6c70484e5104419a13868d10fc3d34483f051109ffff84fa3b75e2afdefa174475f4ec50a00922a56687dbc06ef6c4aeef17447bcc9dd21a44a4797be53e3460c329ce4629c075be3c0b4901d11c83fc206a366833dae4f1865241cdad15cc964c6fec6250100555007083a8c5300005ff156b2b2c82089b7f25719000e4b74fb7c9f2af48f9f4320ea28696c631e0e5ba49a0a9c3e2e9628dc428612eca6a561edc11460e7b2d846179a99d1394d7b7c32e2095ef21ede5f80c1b3d856d52d043cb09687037d1bd6236d41a74a78d0b8dd8e9a4cd9529fc79b29673c2e99fb49f72766d8b50a8687bab89574227502a26ee2315599095568bc55e2ad3cb5c8d6004bc9c5602d6486c94796ab918649b75c90779ba0f8a45e976aa4248e369a6a014b5c99ae8f604aee1303c70436c8d00b7902db8184ad4c1b89b29ccd068f53029f4b40ea5d773c688c4c62e23d1554a148ddbdff21498e248af387b2a0ceac4123cbd99a7e94f2b30473890401b9b461e6d3323315980ae303462681566c2d02f96a9b8d1dd9972ad9f6f3ef361be4b6a7b704cacbbfc40996df982c9df92c660ba3d91b4f6f4ff7fec49c0c64fbb3dc94261d42d99d2a19f8b122303a63f2e450282bb61025aeb65ac168f74f8a67149f52d821630fa3bd70851b12931e3444e09a8b363df548ecebeda7d0bc1f4d68e47ce053b9e4571ecf06ce6b82d9d6466423375f58979104a6c9506d99c59c12abd1d16f906e91220e2c3ff1af1a50d8d3c3656798a19598c2e063c8f504e58c280edf135aa5c931195c0c7114b91846080ef742ac7fb05986319df8a198845bffb0d87718a744ee208653f4980ecfa6fc83f444200960352fe5fe711878606282a8b63b533b5005dfc975c00705a9900abd44ff17b5d71d831801b6b1cf921220290a7ff2d060c8002905e33aedf4f76c651c4ff6de871b4c3c8fa2f70ec816230aab8ff87eb0c12b84f5e52e3e192ee7f6206127b43f6b7717c0e2c8a63020199ff420732e2a2de2f8cffc92b58e0bbb69fd4244826cc8c7fa459c8d7e6423f07fe5593011969feb3ac9c49090aff4b3008909b855fe0fcc77d1081e8f97d6d620a1a71efbfb75c1f30a7bcc71ff896f6056ea420e519f8cc5e29a227f6e7de18c46fddf80195cd8eabd04905f499b96eafe8f635faee2d25b7940a8a8f3cd016d8523a40e2fc95c2e5bd013ae6971f8cbc0da1abf2edfdcdbc4dc813e09698b46d072cae7ca4c4716b0760ccf1907c876f5ffd4ec384ed7829642e817a8421739a2eb3e5eb594a698433bd26e28f08a0cc76a574f66c1baa8c64fed442b745a3b2ff6cc0d0b536b0dd3680ee2138ef521e1b259149a6c5cd8c5469d72ad209284d93c2d266f5b46bbaa0321d0b09171b9c60737b0e52e6fc94d320234b2410689fe5b68ece9c561a3a8ec83737a8fca8fab712ea10394558916f162662cac8d67a091af2c241391d98a317f76d196bf0a68569d83299551741a37c7059aa01e479c63e8de51f5af25ec80dc8cacb05a7e885923cd38b6479e5e80c8c52272d58a564e131c1fe101b4cc158ba0ac5722ea4e9eb15ddd08b9079bd0f9284c6cd3665a8f0a4c13f64f0bc1e99de79a121b54d454fff51e0500f6dd53949824b4b5160a81ea5f928058db1bfb5047d5238458303260300a011fb5e28e903d580166c26fb74b75ee7aca906c6effa286b9310a7eb94dbfa8879a10db090be64afcf7dcc018ed7fc0cbbbf0904626bf5262caee17ab5ed46179188c7fbaae103b1db6f99abc50de7379e8ad116470014b643f9a6ff6144e914bc1b4bf100d6ebc83c46e11476802552e1c8ab738e686a2a917564457f57e7a8506c622e2b1304192d085778635cda960500b15adbb286962c403e0ae5073ed5879640eddba9e7bde909bbf746fcced3d6bd9ccecd7dbad84bcbf3a240e91a9baeb70151f4aba1aab49f128493af086a10c4f60f21c24dc30b9ae044bb63a10400a86466d1e9f5b7755893cad058a8110324cb2a2b836dc9f51ee9f09582cee54906e00958680f04a60b7189fce933fd48839f6b6d8a216c5e1275722f878340976cc8f0a44c273f98864ad58bc7deb9397bbaf1dc9f82c5d3416c0fccec818c729ac808088debd1fc03ed8f5dc2c0b55c1d0ddb4bff8fb9cf9707970cba9274993a7c494dd19b7697adcde4eb91049b75f0f58e40c25a0751ab1742136caa4ed417520294fe730bac6080627a584765f123c472f17b2d9a9f8ccc04640290f1dd86d4b9fb475ede2c4be27ed6e2223b99c2f44dcabcacc835cf2476fcbfe4de8481e85a3b241fb25326121d1ce88588103a78d5ccf3143aa83c9706c1555d37cf1dc70f2e0c5318224ee26ba60fd9618e988bd1851318d244ff9ef3ba027db49c27ddac1c3418f840a2596912e743e028304168e213d3ccc0f72fca1e6226489c8956f200eef1cc3912aba05acbe073a271ea14f499f48ac15b31ff5c5570ba25b676d2de9b50a2280284a10369b2da4d07d207bcb6972e77a9f1ce76f2e44d6f678c685e59d129a60cd7d41328153804b927368168bebc0ab95b75a772247a3f6d1c81674afae42dc062c33d34aea7a4318fb6ced599729db4b77f181fa8873493615622b42e93553538254ffdab1d92d5e45be9432e715cc0d188033b6668a054b1ea54e8c606c7795e9585d65c4ded3fe66906d916c60f0e80dc0ed1b8963143b0bc60fea3576260861fdc15849a3e4da9e64a9658b3c75d980746a6bfe747c1ea3c442343848925f268c0263ad8c71092b200839c413c4c2742010b26894956600a247968a8ea841d1703193b30b008409ecd222af80b62f86210a7cab52f7e57da29c8a68233db1932df20aa1aa3a4bc378deb4be81a19c96c4853782ea19d6d7334d70df91f0f2050604fbe5889bcc04ce3fa50874502e11d360cd4817bdb47f34f0213dc8071813ff193ed014de879a99a01be64ef33d6f14b4ff62e6eadc0c4b0992864a8eadd73b96840ea8a3438d8cb653955863f5d2e16e68a38164c8ad2825ed2a285ec3d65064f106c04d552211298bb12d411e88c404f8932a77080f4a4aa25c029c14f12314de900ea485b279033028e25649aea81ea905441b0a3041d4d6632a503019d26619de209c19d12311d7b29ae347509c24068e4b071b8eb93e48ac98aa9b8a3d23af8047a6a4f136cafc00c0cfc8acf52d03bfcc3b752d10b3da48b0ea58a5ed0878ea5426fd2474729450f744267a9a19774a3a714d113bad0b554e845bae82885e83537136b49e82d191d25a1c7dc2696a5d0b134fa94869eb999184b4067e9e829197aa1f4142b8955ae0da14030d77582e6dc7bc52de1e476c758935de64aaaf44d56bd75e9602c435d9220cc6c613ad75bafb9eb385d6e821e28f3ba40d50de0955e720ee3bb581d4ad88b8454d79830dd17dbdedde338ee6d1a61b2eba048d4dea4ceccdcbd73a4e1d627db92633203e3d2dd29a11cdb5ebae1f15cdb35626ae7489929bda15e0387eec16c209b7f90e327cc3446ba0b1d36e7b5acf7e45efd8a1b578721c53189c9f114ee74584c03a5b339767bb9aeee5a4059e527c2685cbabb0a9621140e41e495ac38b18fcbce24a48884eb558e6d6d111ead3e2a2dd74200e129a2266b8da249066ba0ed8d75d02ad69d8d7a1823e3525d29819c568ad2407b3a8ebb157a429b1931deb48e89b289a2103b2af95eb8a939ee6c1961aac3a1ac16b998a2d9042059f61174d34d56a1610a85f158714d2b81400990d3d1eb1b6d16e0040e85e997ed60399f529c62f390f098ced25a9888bb58a3e1e99d7918662bf65afda51e1a3eda8be5e909ed0f17247239d3bec790627c001775b22aa83f0c3911c6c553cb50cb400bceda085ade02c8d5ac05f4115f898cf73a9b7fc1f1494e07f2bf3540c73f92dab2ec7622464fd2c5930fbf88a93986a7c591bd7aac8fcbc60da4cc82a1109b4cdc8a8af81df76112ec3744f931fe0c6e8de63cd2c591baf0677f405fc88ba0cd05ee86ba29d50d5d38d24ab4a27045aadeff4206f80e17b30674e81d4f03f9d6117f9626a1bd222ef6d99bc08cd12d61a4926a7bbe5ddf3b8245c2bd13871a05bbc20e05a263ea851a2d3d706855d6a32269d51f25fdcd7b7d4305e24f1816718049bf29771bd2e4ff1f2d00060463740322a31f7cd0ea1f17b6848d42dfc2fa60efa0c03021e66cefe882ca09131162d7724d0ad10d1ac7627811f082c6bada8f7663b594bd73d5f100b05bc5aa965da4fc536db342c4486d70a682c0fbc56aaae90368075b916a76c916618763d5da3c0bae5818483fca4c44d8162286a8e6c3f98f1873e8deaf57e55ea4f00acac30f2ed0fdc0a0cd02cc0bd82047685759edfe090cb25670f93085524027523d48869eacc6a47c6f0e8e04ffe079295a82dbc652e4178d4de3000ffcc14928d9958636502b66a7319ec282ae5ecda6ad8e930266412ded58c0219947bc366b4e1ac0a067031cfd62f62213031833dc73ea19505b83d5aef5a4fbe3740752914f166e76605312a110ffcf29820b3e06590311fc4bd935220cce9e2511d4bd67312f77dd6f3b79d050f2049c017ebb9f5cfee51b5d6c0177ba123836f9e5d2a6aced9861a0c69fd4439340ce4d764f1d0cc8e4b0e2f86493679dad390caf851bc24ca1034ed4dfe8fc42acde308c80702de9a9b5016c7daa67cf4c7407e0d4eb78be0d697f6d997339a0d7daa36edac664289f754483a0bc4741d5669bd99671aec3ab4c5c6476907508e8c0ce7f2807a8fc0a1b905fd7e913d38f6cbb7da28d39efd6fdbc1a4ff4b2b321b4010dda44d304345084a5299596d7bdb3590f9e2752b06cdb4a482982aa07ae2e040f0a9c7b4f1715aee14c9a2a74387610dbbaf2a894e8959df35505c775547d28fb4795ce51c7cb67f38bcae615e809a166163556c18131f382229038a1b850206a60c288039a31061da8e2dcffa7aa7f91ed943c0a1f54733a2e65dcf20dd77eb3a2556ca27a50f8ba1785db8bb05b8ffb312a1283cea441f09eed564919ef11bfc44aac349123459e6c6b44c4b2d0b6297eb2c577d08ef05f3eb47d9a918226cff37798fe0e9da1e39376590e4e59aa1a0222f53cbe36eca875b4d46b0552ab7ef32715bd32eb62c2d77cdc40fed4a9866fdc7fcb2d21794abac8d743b4817caca5a45ff1ab8fe1115565eddee162b5a417cd4e63ce4cad69d3054a4701aa7bdf34897324dfc3783ab85631c52bb1c626b0060a95620a3527f224961b198f347b5694f32d11553d5fea1a5f3bb3d98a92fe69d6d6ba43753357ddd47359ca4f21a686ded5e35dec8a04a033691dfc4d5be4f74afb14de308c475796d6357b9207e189a4f7de1b92ca6bb079138a261dc0877511824c8f9ba0974229481ed4b537eda692fd1ada243452c726bf5c71d1db72ad0f52b99874316f1a85254ba65b8f538d22fda9c151a85637252bb1de447eef3547aab738dcdc25c7996280811b05c574c3206bb04512d545c4014fc0f42fe8133ad7b6d7c175980b0056d8836469d7321eb1a7fc02519fdd3766d1322b5abd892fb4cd9bab2ba84bbaa32ffc6c41b19e17e6bac4f7cc1a398243f8bdc9d3ef576e554eec71bde694ec035e953e84c7802a15354a48a9306e3d288d29c089373d36bd517892e38aacfb095053b67410154e3b65bf95e6304f2fe4af6ba39d3a68c88a96b94c92d4bc313eb64f3cccb330a46393f09b13320a3bd2b56049b7c38f6fceb817d79a17263f4574bee89ad2cc8841039f296891f0818d8c19ca0c54f00ed4972efaabbf36662826b2d17cd0f723069db9f6d9d8a49b3978348f3fdaa743e367a3069e634a3f4c6521990173419754b6366c5347f264d0c8222fe58a02a16170cfd442878e942f94160c03124d7fef93c1e040bd369865c553b8ff9d50743813d9990453c4c59c530ca391c13fb808b575ad0834af2c4a71f97969e561bdae1fe8f543c9b7deaf5fb41f5f3403cb1962720081e50b4dbc6837cd9d13045999d77dfd4a7fe4e5a75034e6b3884079dd70c1e498bbfde807adc1c7bcaeea2373277f07af5af0f692ee04014ca95d960709d4737541db28a004ee3024bf8e063cd58f2f6ed570150f12aeb9e20488569c3626789b2528f2e6e85f6ad24468a57b5887cc8f47b0f16977419d52971d71fb4fd9ac025c6e49f3d22c490a10debb8baf10677c17b6e3b7010abe44e99847a21f6b8a418b1832f6335805c1640ace807a68099189bfde323f14fa7e433c5e99b8702ce203830add3c962643b56bc1bc96c22dd537b94699844d86b7ebca271ed834297584b54ba7a5f49616fd81c1a604d8351182ef6e9288b40f776341ba844edcaf323bfa61cac9e38b655a952bf24cff87a1d462d947cce41983773f4eee440f7e6a0c32bbb400b4d70f8096cd8e76d60eadb2bc12f4c097056487b1302605b1f7dc12b17c84a7478960a9fba5a1eb99f9c0f9a31b5eaa968597e7dcb1fc0e76920094a9d78b710a4bd6fc56f19ff9a73c111cd96c20f6d904171e6bdafed797fc2c2f3c2e4c83b799b0780865b07724631543304be35a441bcc07b02eae120f37612882acec836997e7c44a0e7182169cda127c247ec8f120ef0ecc896b6fe9a06b7ab4b79685e883eef546a6aaca52cb9e89f0e39187c36fc0e10dd98486a93ed47736214e9ec919dbda8ced60467449735550a418cd25910ac97a52f989f9c9ca2b6ca4eeec2d4549fb751657d6af8d588800624903b2b57591e20698ea1772db5ba8ffb9a1446ce74f41a16044d4c06bb7f50a55acf35361ba205b74b0d766e983f1b11cf269a40c28c8a41f9095f01c5cd05c0957ee6ef8546cdcb494bb5d8aa8ba28362c773dad59a2e4252e5413a0642d565c0508210c60168da2c4846c66bdb4af87f0806e81c898732315b52f71182cb0d70f0216ca55b8e4909ca33c7730b24b8b98b3cba7f7f261a7f68949f0051c30518e229156692349bdd4727076cd8eddb307e860887bca6181cebdb752e4ca320010ec8ee7d62306241625a41cad558813932d0356aa1b8e0f2b9707552c7847b4da85f9828d0e980c0583698f9a20124da53eb9476d6c0c72b8ddc6a39da17ddaf04d69d72646141269b063dad1b4961fe85d31a1001c0ff126f7d9507a63c57ce93bb115a422a713b6ecb11d4510df559e59f2243d4857b6eefb241632a1f7656536c174986c2b5c182f97500a1291c7cea2c335cc67b32d51a7cb636a4e4d4f071b04077e8384d46e5fc4d7ddb174a47250f717ab0072ce88558697a3b4686a0f0ac7b7a45e6b4b1450eac6fb9cb3ca4647df17e687899628481ce3cff3cd23692622fe3b3b2dd0cd690755178116c8bf81c56005e2419dfcbec9d9cf17883b827120359f74f1c4fcd36f7461f675a23ace4f5485c0ce6d365253d4160f0eac1be0ed7447f2c6a3e6236a3eca29081141f2ce0ac0b5c8fea587b240f81e0f8050d23d86f0e89f4cdd4696521e3f60ba90af5c0185db1327268f0315fe3856cb327e2e1e29d4c57aaad5111a04846db80917815931df7b76c723e7467f49198eb903ece9c7b8ef5e8ae7703e203516240a1f0a0f7eba2b4e3e2e4c815b0dc4c5c8d83baccad4f9907c44aca2a3c6eeccfad6b20326a88a5d8668ea4bac88c9c1fe2ea9646b1dea009b4ec19e1f17b6d884346f24f865b1105dd9dd16a1bb4ad55be6092280554e99862dd6ded5a09fbf28f24b102ba11b0645e436f4ece842cf088ad5bf962557af41be678b826414b58b1dd7f352abdba4258c9b0220a486cc7b79fb5d2d115577a008fbcb36fa7f881a357693fd23b66a9e1365fe98ed11eb4ae9df59e83c33dc8770392c0873a4aed3f174fce8c80348ad5cc69498f4c0d7843a77ccc6e2e860294dcf7b46e6160a67491a40c85126f5bca0fd9c04a08b523691b951555bcc9e2d7a102c33bcde43ac7eb4c9c75b9d59bff4931549836031c47f43ea0e64bf36c97ad49eecc4c278b005956e96d03caa643e9a3fa86e06f2c260d7d2e8ed0db7a56758d39f3933b8c5dfe5c1f9532d85607d53b1ef9bf11aa11556388de8b3b9cfcd85923d4bc5cc9435b806715f7b976cee4e6e20ac47b4c0da66bb6205b7ed9c4ced9ea63006e9d8d713f8f3fb734867713a3ed97e2f51325e0830c1503bf8f5d8b952cf0cdf491fb4956bca6a781a7f265768957daa0452464f7f136bc45e05c39f670e338cd26b0b424338c66a21e7bdaed5a7d88d54792693dbe29d59c95851aecb65306fa2ad998afc4d1d61053c72fa4264122c542600339fa143738bc89f280833177a36e7f7037e1db452aacf793dfb33ae56845afc49e82924e532d36aec82802405957254864d2177f6d3011c6b1e928408d763359fcf9476cf04304cb4969a71f1eb71d9bdb782b7f673838115949412b9f0820f053b75fd93ecf021253d6f329133ea88131a1f00bd01336a74556163d1e4b017ee9235e84abe76720b94589f08841e9207dd17fd48c5cefb3c81febb41ec9052cc032636eb73e3459a1f0db739c6d7691fd10dab91ec641933c1cad842bb712beaf570dedbcb4d01e6de7e722349377db237be7c490a6ce1c0055e8091ce021a7b15e4db7286037c3c37fd05c6bc9d645fe5be2691ed30f10572c14b279adf5626b3036b0cc3a16761020782a48fc10eb9a0e12677feb6311761d653d09fab7c30f0a07897de0e87fbbbd1f92a44c3602abeee607e9ebebe83611cf6b9cb5c3cacbb11059ec2e2d23faff52394f912eccf4c6f0105e622147e12d2b7cd88af567103e74a8f42c3bf82d01c6011f51583c502b473ae5daedf7db94b24e97ae2293e91b8efa9297465cc277e60c2cf895755b45c9f8b561432a5c38b58da5b01c4820ef2c4544822c7b3a924ae534d3ebeb211697d247242d8e5d58ab590c2a731703f22be7a5bcd8d5072a0d0b1e646ee40b8327d94c20ec970684d9d40eb11fcc681879d572a16853978bfcdb2900a0da7e48ca8741cfdeaa3362a0fe2e03c33133aa321ed5016a89e470f0ff79f06382821a0bb518c3c3d1398d46a6dfb2b1de705951ecc5dd7806d2c15a37c65b84c341a028a37dade8d3cea57519bf9317e470ba158e1057a52c804d74a42a2a8a539263424ee57e294f015d7fc26414101343e718b4b8ba0fc894f509667cbc26cca4e2b59163b91c2136206536174a45dad04b3b18fd3fd5c5c88a3bd45472f69753aab3e1ee99c51d03221efa1a2ac08d1b953c5fc414bbd520b66d14f50fbaef62dbab55de6ab59edd26bd9644d50eb7bf5607da05079eecb45168a2d1b076241c02fd7bbc8621f000417929c78663e240ce38e882dd9289a06c6b6c49458c99b606bb5b36b5e89c76f56bdd7f0ff88eea6a547c64ae3d4f721d5aaa971e7cf35bc984c0fe09bc1facb5316d5b3dc24295edeeae4ade4d3649ee667a84f162d9bcbac31b41b62bf13ec20e49ccc07fa8e58a7dcabb3c94e68fa097e02822148c314c5fc7a29de0450941092222433d7735a8601462a2b95123e469e0ae17b670278d431666322898d261da7f76a2212b2f408f82394180ffdeb12677fca724f48b2a7424b21263e3a3c3053c9d3aa07a74edf4ba105d6d4c90d7736bd5025f52063d92c712fb09bf56060e5fd759c85531591d04e982347cd469008c0ad44c152f77f8b917e8c3fe59b38c78c85cdeeaa450c7307c1080f680a84620a07941e82355a1a0a19608bdd5afe54ae141f8f48320d610bc120f6fb33273dce4a2aa9aa9a8cd720c77c9385023c615336cb7099221bad395ce19c121754d31235249effa03e06abf3c8398a1cec01cc81ef745530012f2f0a85f84c95029da16fcccded903c96c0877e8111cdbf84223ed341372ccdc300d74c473c6537c1bb1511a87a66115b85a61aefc51928c7e8cfe22c5a6121ca06872b1ab445d89662c00f11e52a9a561f2a6e9048770d143cf9f7f78b068c03fdc8699946045dbe1608420db3a132e92e9901b0d7d7bf06c73a3a96e9e1c6ab48bad7a31994c53b3930337c2a683642a12ea8849d372d0dd82b5e0b357e3e28ec4bd265da3ae3b26bd5e7336ef9c7a0db07db704c884de02ffdb01bdeef9e22cee9dcac6208707f0cf42486bf91d007305e9c6376f0329034182a186908f35abbfbabe65edf036c658e64074fa0f3406fcba733cc9d45c649a742a5a6189dfc609880b218959a469b786a5743e048ea854316204c0d8dbe0c4f137ca088d47d1f3185204c989521ffb255b701f3bfeb5254560b9b5fd73be9947e6b3e15146407e358e460ef6056c2be830750a3127fdd58dbc0f37d1adaeaf405002ecb0bfc510083dbfb953bdf235a3b9ef83c754b4ff07a4b4416289e9f919b08030d7d93ee829c6c0f7a473ca8d68cfb1af5027979f0af9daed53531f3c9c202280abc6c36d9418758993921b45faef7127cbf86da4ff1bd60f37dc777fddebf95f6353177e3cf8fbd411b71df28a3bd1df21b68caa1617d114021ddcde0f0ce366f6986b1bc6f15f217eccf17631c5361214f4446750a0f43efcbe873eeba46d6ca64943ba03bbc299e0ed019d332a811a3a5ced1d8f181e58f879e22a198d7456f2c7b69a0513fbe9a84cc59f24ae9b1d2cf527d24b976ef54425fc405533cb505f58d880e587177d9e491d939c94291aa4c7060177dc97311d5d3bfb5f7c940d82ef2a6538dfde64de844f109e4fa9929cc9d868f05a3b97de091827c7cf38d425a8848564c8d3a44d0cf148abd8ce36c1cb2d00c51807714d342ebfbe4794260147f30bb0abaa1ae43cbacbe224d91ac552f1bdb01c326d12609200a0757c76d8dbf9427ba3abf053ed93a759552f9835d87c32b649104c3eb04d532246798924e15406e7884a96a33c25326efed3d416257b3d712af997c48493407d304c61fdc4b7893eb3cca04d572b99c8c991b5c38a56bb34aa903f0b195f7b19a96570e503d728d154accc328c9fa0ad6306bc8f9d1af871c8efd9f5b72f859cc90701a3ea237576117acb346785163549e02d13708ca83027aa66ad458f5d315525b93b905b077984720760be134d2a66eee272af5a1646ee3c83c8fbca09958b330608fc6d2692e0b80778b3c8b8fc367c0c3b459a495450580981841b6ad523f1763fc80e4a38dd37ca833113c3c3451a9af4db61dd982f767d007b3c93a17f06f98415b43cf50d8a0c9187e553fe9a011cb1dde8a3458de7976655f96da247e307a2d1f56e611443dde89bcb20068afa5fd4ec323efd1f5314b6eafb276bbe9713940ad1f45c51b49b653c4ec3e07c4c8e3c24788a377f27c2bd280251905177143c0f64c00abb5ffa5da707d217891eb388818e29b3bce6a8f0f6d2516375a1d333e3c9e07f5131c4608088f294bc86b560272fd9d50c328be6cef51d35f04b9ea238e60b27f6ce9b5b4b9c6b0dc1edcc457b017c62ef0bc1059d81050f9a08cdd87a4e9b8b06045cebc203029443a6364581921b035fcedad99b4ed8d82f80f624e73f8657cbe3d8cff6a975a6c81440798126b436533e97b4213c9669ada9f15ba63494db58cf8589e83cb014e64d303e710380de7bec972cc4e05ec586f91af39dce6dff0e5bb7087f9ca6044a7d8150480190ae1502eb653b17d383f0cf3204b16c7a03c88d3a4b0c085636ce8b5d77b2c740e8924a67a89ae3b66fbfad12d369e6a6f417f32ca8ac56c83004c14e141a01e4935ae7f89cdac48938b6d9c6db42039b25b07f34b7b8ebd355b5785a321dc20f2c921eb747c415011ab91a5d54b075fe198bdd703c09795547a1543094a7c4c67ca00a29e6e2e752e7337e77ff2e66b722ae222f292818a8c5a2d5ce858e7ed53f5f55d76a05ef3ebf3e24bc1435d3a01b16130801ffd11db03d61b5882d9eae4da752e49972cf8505cba26d01f515833f04173d5b1d4215ba78e58db0d9547ea73658c8c8bdacd4631f9e23dccafc4611e662a3e1c8400d2f4106325253ff54e244dcc004f6ac53e91f50a272a9141b9c92a016c463834f9fc6194c44468c7d5ef661e51070c26b827f351120f9b948934e6368ba78b88ef851968463cb402c72754cf197a138c308c6012503564cf11e292267996d64dbc0253985db2c591c14d27bd69940c89ea54d902c2523c9e05c6303b186371ba674a06051d8aae78ebe1ac6572d6cb57d488824e582557d85844ffcde60689723b204979cb2ea824bf5b7a9908584be24afb57f796123d0016ed949624f9a0cb17b005a85997a1947003cc42ad06950a012165a7d9b800e21cfd2e948f26b81e592d0dad1838fd36b6fadd69543b3375f6bc9e2759691f282eb49ebebf16221767b08a999437845f69a9e96f6575a9fa82c055b2b3422a88c818f1c5aaa1c54575bb060e8646c85173261c2016432fd59cdaeaafbbe801a362acb3bc3c3dc325f23195ca14f6a7e74f0d310be59bf6b427758322e9fff2fa211451182d2ae3bd41936510b15e7a4fcd6d9131e80aaac703a36904e8729e34a380de374c785856c88ed78077611dff1afb5bc67bffc89692df4f2fc0717702901635bc552e96d94b113100be30c55e8b5cb0096d651182263697558ef599e68b68e221f299d39b2acc44a9b86d4276f31d2c09c7394e03c0441ee318eada464c3a2db68d6feca225ba90f06c63d4e3046ed761a7acfd2e72850b185604d388a0e8b6d7168a1b5d03d344f5f51f64ad3272919246e6a69233d4dbb0bfee09d9e0a28a2add6cad3fbadcd4b3a8b0e2e917e85e9fe3524203cae91787ee11e5f980819bd5fc706e2a68b66476383a6213da7b2401c2cc2f446ba1501eb71154230a745dcb3c50d3214699214b411ad9bc54d15991ff2fb4c48cd56c03f75f116c008df517c4163adfbaab360899133379b9091c341a6668fac978b15bc20284dac8991bbf0a010bc1ac6b5a7e59888806874d22e3c714f1d0e6d897b04047a3053dd7cbaa9888b963a3dd42ff164c07c2603a6c14861fb2f1a0cc20c34746d2ca00cb9a717979a81988c1cb4270943522e7afa1d2a722f0e988ea96d8ac9cc8ac72876449db5dfe0491270ec7e4b381ae195304898ab73f03efd56a578200bd540a759efc865569fd18aa4dd386cf62ff341de7d524189692bbd91ce4c64c1217cf53d542e34cdb996c35166077725791afb635f3da4046a2ccaa8f1358dd1ccd8e1d44a78db8afe8e36da048ff9bccdab5c2cfcdadfcbba5c81e3fd570bc15d06ea6609020188b6b61904eb2685eba7b21f520c70e3ff505365785beca76512f7d526022db53f47567f74e3cbd707a760dfe5d705b046e122f3e2280412bb89d93fd0b4ae4b6530dd77f695b0ddaf3b89f31c14608fa0981ef6cc6eef8c21f4a027c9b25ca56f1127ae3e925e2940a70fab6d8c84758f465ab1d4f1ebaa9ac2582df983e272f5b9eb66b5000c2dcc4ab23dd8ac0ab91280c2a6d7279cb50312170a390c04dcef9bb9c31d70249400c81d9357f4681ce4af9d5b3d15a3d24dde2c978d9eaa460e130ed2a3699375e1237639f6115252def47702b9c2554f39229c92854569d64a892de5c20dc9f26999bdac63fd32da43627847d557e5773adf529f3ffef4ba62446bb8bf619bf44b49b4c8923b131c213d57cad471ab5c47e2c229b415d713f381fe79146a86ae2885b4d340cabedbe285f00ba40b81109a300129aa481322eea721633602516aa5846c4e738371590ec3103e0ad7373da66b250ec07dd172d4506628c608e985506acc04d77c227ab524a2aaa4ff91154512609987c6d1c9081c4f798ca4b0aa8fe230bd6fae6ff2c02dd99f98ce742cafa2b7a229370f16811a6beec818bdef05bb9417279f3946d513f00123d8689e514cd58451192e4ed4e516ac2dd0306fe530fab5590474f02b7b1eddd65dbd1584070a4615fbcbea3723c644a188e1c462787e24d75fb0061e42f5f70224cf9aade8bff23b32fc6c31a6fbbf0522aca76e6f08f5d6cdd8d252ef7cd7efb962bbb0c8272216560f72e604e6da891c44c7a38dbca7e7af0a41a990a4c843799a0a9b3b18867b8e1ef6e42d419f3b05dd618e1366489c35cb7983d87bcdf8b39ebef4d52f18d1f62dff1e038d58b61c16fbfae987d6f168b782c23fee170f3f04e4bea2256d2801058ac92a11410891f4d0d68196292313a943848398728885a2af11debc25854a08b4b9a2d054b5375ef4f3d9ad89724309714a25456f33404610ba0f866674f530c8e9ea8efa09196f63661f3d6ca921b7bcdb9c698c4760a330f82f5629d321b3fea7b71999b2c5e20b32e206cd4fe60ad30aa1af3d0dcbcb9911a9b24d9021fd48efd5e88e52dee0d84f5d3c5301281c41d9020a3372ad1ccb0b2c384808bb7005fb38ec8f30a59c175cb38231dd6eeb63947b085c10844e3362a5c36cfee88855e6034c0d9b9cbb65ce9d27535be0c63fddac60ff6a4059676e8c85fd0913bc7ba0c0dcafa059021865ca1118309988d3ab334f869315a527fb69c5d56bd7e65a242a81b9ecac15efac82f1ef1d362add7ec8571226a436f3b2eb37eeb22a496f0cf2102057e94617e469d89c6d4778b0d9286e088259f10c1e2a4517081d972750b05fbd77b3f48aef1113cd965ade505f60695909c307840bd9342f675cca47a50640187fbe0e728a143295d67b1df4bb7a19cb64c322a7b87e1754510c8d6cdee59072ff91cb27dbe9e0cc689c59113ff1a416c62b821638b0d991e8b9c4d85dd718472c1da582b5d3ff747066cec801a43d2b6685e5c15e500963580e56b858fd90d23609107af01bf666cc3927d669ca29115fc87cef33f8d7bf091da1f5f840212ff85486975cc96234e8c9fff64b1903a0af7c81e912a262dfef7be7ccf8082d2f4b198c3f667489e0cc4e642cbf58db12e605fbd253aec009ced4ceb08f512d97df0548eea40824bca10050a89727c5b00dbbd7dfddb97cdb031f5a051b363efd32dcacac1451d7b47ca430450dc2c1566386d31d19df1ca72f289fa4f49ce7c50efd08a6bd668107c83eded561d01d06a0821804972d879595db43bc2732e9175ab6cffbbfe88e7fdbf0e3f38650058cc3b1cd340c6f209177253ad8cae11ce5e0c9af3685af37ae9be6faa596bf9e3ca0bb393562b556a7df248c404a6a98a2e98046c684711b0e6a16bcede9964b9a46831e3ae9b6b81ed1dce2099015e9e0d59e64ce780140f604841722b733eaad2e25a46825195320fccc8b2595faa08137c509deed96e7d31ab3487f79db028051c365740b22a75d2bb79e67275284bb838d49de1d7496a5217e0768786b57eb6670ccd86b2b15c5177dc8a458fbe354133784dd5ab49d80ba9444ab7a16e3b4986ea725908b0774a9d56acc5131f5a6cc33ba61406746684b6e7cbf03182c740d2f908f2eff5a1f684a83d1b1f08b96f49f7d101fb0bc8f60015b52f71baa1513f153df099c464f32ba4097911b6ae6ccdea54c51b649d34b1d2470a09206461873142db2a5a7dac415c82a2c6e8f1dbbeed6401594b4241a1301417fa35117ed682f0f04bae146100a2630bd9a0487a8c8ab5dbe66a304d5e590344c2044c3c1f31fde60ede8ab274f7f801a798e9ca0e8b45f25cb248681041c96b59098b8e234eef612035607c19b88ddc8feeab2adf41721925f584de33cea97bf32928bc909b6077bad00a2bbb7fdbde1851caa39da1b8c6d831ae89765490811b8d2a2812a9a0453a72fc4bdf5428613800dfa279e179dca9009062df415725148b3ac2afb6fe80b7f922083ddb89ae4c6b87a38d4ef6612a9a2aeb230726e42aa9844cfdce51eeb270237b962c6654cc8b35bb3c11ab88b550a66a041a51a4262239f85a31189d5629a045a4555ab8acce96c544f57d93f92c05ec48901bc9801a90febbe15a9b218b8f085c3065ee57c3a6d16ff7ad0b380eb0219479d1e9fec66661330a2e6aa40e8142cae8b234af3ea37815395668e424b27cdd96eec0cd54e1eecdaa2778ab280a33255846dff96eacb6987354d2d6a6af1ef625a2a7542a26c8186f2fb73baea630c75734669dfe3c3e58c0a1c0215cb91c52674c0eba2839b906a949e7b1b166273a26de851069373916677bf54aeab7fef5426bb65cd0e9abdc7ba684c2e2489568e9460281919705495d8b4f122613fe161ad8f52f160e8a2afb42335e14117a37c2a540d5903bf087d15e84e825c116913d08af57104c2e9d49e8e15240e8eb1c99c041ec894ccda902d4f78666d9461b94d2afbb5df1b76900c024a53a038645408b09009b1a02d09a6048125cf5b6d2b5cc8174bc376a1f2021d550d18d7c31b941585f3dcc46b1f19403da1e21e58c1567003d6b2c5459904d40b39afd175a29a2466ae127e06bd89c65ed3239015384b2c22bd971cb77019f4340bd1eb2fe26167d468e866d081cd9c5e0315ad936e8d07bcfe00fbbc8e5b301e41ac1551b10d2ed2813b0483d2e560f957e8a84e3b7e9c1cdd4a0e01380576be6b424f711cb83d849d162b6770f91a8cf1aca4a38123ea495782434e8087e0151e5cabc6a381a27553133492e788ffe47a227c44c0712de764e3eaec56b1d05549095473bc5169bf495eb8e619fe51a6efa9ceab578a1e5813090d8d3daecc6d84375ca1383a24fa8fe284d706c81cf47610cda9bd0c5832f4e569d14ace0f34b1e7f35fe734a23eabfad7903d5112ec191f04640c242c8eb83680aa1228525ee124fc01a24548c50ea1212fbd74c32ee420ab2f3dc887105e3d309dd9872a2f8d4705b042da267192c966fd0b39ba4ddafb4b46962168afc60c3e6aea499d4218d0e36b3e2b6365f6b006b90c6dbd851c5f5a8b05394c746e48d6cec20620d42140a736f2b0beefd597d64125d0a0b72fed1c06385198781c4bf6653540fe7df0d61e7e63948259060a0a00bca2ff1bf4e445196e54c3f88c7e077e192de9d094d0d656552641d000ff0f0f8559a6a7ce80be11d86f625260cd76fd72f767919cbcc211e985d8936734d04e9fe007615832edc2ac0ee858e3bd734e31ba3fa978b8094c49afb2017f0a4001eb6d2a4037c95a988d5a443821d883f1a0a44af65a5a3e8228da0de5af19928d05f98185c4b05a3d1917521f6a38c89ba4b04e1064d12dc80a6829104bcc75981031b7cc2022629b8042351d7a0b8a623a4bc9c70fb6e70c0ae9e5aa07e85d8aad64171bedc79a57ee5a1aacc73e6042a72dec149f554633316f46a35cb76c1053ca89d978d00ef52db7f590c4ebf9c169e34adede27f66b885b0054a7b74ec05f7556925955f764bc64b5bd4fae26ecaec14393d23a5ad5a657965a528e79af653bdecd7c299b0172880278cf27cd605bc088fbe646cc519362798b3ce72d22510963a8f6292e0da3ae83604e5a4bf5f65750140ea21e4bab25cce8270d0fff53426a529389cad5cc1669f5159f30186534cd772f319ea7f78dcb7f62081de7fae7f5832d0bb116ca5490c17fe6973935abacedfcadfc7e089b21e0efe750229f1b2022b73f78f8f351eecffa2ffeed746c3e98d8e1d4087acf4433d77dba0879727d2006ccf1993eeb365fc5e283314126a4e5ae5b1a0d46abdaa8b88585740d911a216d28587f0469a03d0f11718483c71e8c11dcea13bedfe6b893212a8b2a016cac1aedce4f0d2b10f782de62f8404d2e639e0c68249c846d73b9ec09fa7525308c89f1f54fd6aacdec1f8d01ab669f882b61f2cc42352abb87076e4726af376b51ae736145aa169943f7d6072098f0335305f5241d24e300d2460471741280fd4f95e8e972435c93debc964265bc52d464d7d53c3e6a942e6b86070bc0ef531052920a6f8ab0745fe4c0822f9451e5ff901c342f2c8d4e62560d32f6cdaa78d8df352bb588a59c59e5a82407607b638b5a6ce50a25575ff33f239bcf296403e74c7da0e4275f4d840eba78d815afe319802098bf7b197cb2a6dbe2c2a7ac33fd1eb0f59ae68dd6e09e29bd78b62a2ce6f9342fc8e3aed5f643dffd0495c4d90ca9b6a0a839e83c0e8ec0e3ca43b481e0441c7f09e1a588909a1a2ac0221a973de38018f673c61d2d20603559d174956ea81c762fe8e952e6082ca7516c01d1639c10023cc95daed12f2c4bbd64863c1e3166d66426f401d74ac0f6618d5b5261fdd4bc92628e1536774026b649dc2925ac77b0cdb02e2a41e8a67075b0ff9b288bfe68efb3fc0741002daecc962dc791ca030994a47db7a292a699da1247e2e4136fc557d416082f5944c0050d53075c2fc426880a7faba53c8c2d70a56e40c6d160b64110e0210ef048574b050af521aa23efa48d97aaa71504916e0e7cf3a8dbd1a57e24494aff2ee65265cf233c8c231e39ebd5437b0627d406d9265dbc6b0050ca63ecc9a7952c676b4a57ca3c2581427b2126ed0fac39ee2e4ded3e6b09a981a2aa380fb08468f4a0aa3f4e67e2e49d87b9dd85312e744d81d311c528107313682ded22f9de5fb0f9e83bef9b06d0b3c16bd4ca1d0545e28422a39b4651b49d535c3ad0e4eac583d4f17dd261b942b1d145ada36f718271604d083d75089cd7fdcc50aaaf3a025a82c40f65c28d99bebcd3d4dae80b6ec09936444d6576eb52adfcb1463503de8a11ab35f7f6b173488a7dc7e30c5b9788181aa1361aec95f333f921b9bcf730e264884f261d52b14e44bb2d5052f36d279e228548b568c8c70cfb03fbf6957ecea2569d351bce5fcfb5f2acc4105cbf09bcfd8daeb95bb32d039754987c3b03c861f54498e43c0749b9bad4fc3a4551277a245ee9dbef97464a6857f5854afe8bc035ee97c7064c41b5b0c058284e0e7328b85082cbafe6d22778b032d2d318fa8726015bade5e31f09974fd244f34a9c4daaea9f9294df6aa5d8509932fbf323d6a37defa77836a6386bd0abbfd8266c1465ea387f0a6c3180c7fc070545ec4a340320766486229abcd521f4f573f53f55b4c626fd3a1b405cd7b5ee0a9ca2d1e75de6bc2f1e8bd0db58c8d3a3c1c842f1098b4a3127e78b18dfc83553dfe98afe5dac03a29c0ec783630a7641c285c0c86d31a19fc435bdc0a7ad779c9d2870281fcbe74df3f54eb02e266638a1d274af1e8fd186e655ed1062c3713873ec1785a442c33314a05c4d1f6e8e78b194652b097261ada85fc9752a2249ca3bb65f6c9dafc4823bc99ff6404ec0253d14d68d4607415bea18a2cb05ce941d5a435ac9f42db9c3ace1fb0dbd4a9e7d8bca44e80d4b956ff1bd216b402264992bd160bd019c7c1261b888a69edc060065e898e6f2142094d3308f100a37d69d40cdca86105aa52ffec6cab4357779f12e0ae890fcb2ff25104732c92e51847075736a29708c87b119a13431ca20b1b37906737d37fd63889362f89c0657d009a63a45c7596685a86f2d46fd1c0106b88e944b0a7d50fcd11f2e6ba0ef89ba9a429335bc482c405db79dc333e3b794c922b7177714c49128b1f103550ce613bbd46c8294fc539dc9c1a00cc9b042ea03074109cca948e31fedbc39436d46c7f252448786f1119abb62de3e07e2f34a047364034808d3470510328ccfc4e346ef725e7a0b12912da015abf21522384a81092dfab3373c7945ab4e06c4e20b34a39b762fd0b2fc06690d68e93a0a1595acee0ecd2b8f0e071c8e15a3ed3e46d5604645b9352ea7433d6f722b294a42779d947336ad590d0b872d902327d76fa1c88139c6752c5ab8541e3e80eebe2ed7c1f469c5e28f9624a72a393af3ce10c3b59b7d659115c6d9da13c1031350cdd08b2c5493b21023e35edc5d0952f31176924b8cdbd2269235edb2c80b9db9883d6429dd0423696512eb00683a29b21cd9cb7caac9a04704ded65d98e4e543da1afdeb6b1cd3e23fdecbdaad693a0c1188eae0e24408a0451c0424bb8f4a96f0106a416aa9d100d2b6b740bc45890cc78fb927b123c52766e2c64e4b468e458e79b247963e59054eabafc02d4769eef096c65a5b280af9566203d4c2d1aa54cc6b4bcee5e9ec0d608449dca4b10bca413240402545f1b3b67dc32ca00dc85ee38aa8a70e485ebe2e6d21b04cda20b57a1d609b9e0906bd97a96c653dd449c9a6ab25c7325d61683279629b6c316ed485216505f6896b9714bbc9880f48fdd9f09034a9b53931008ca2e6695c577016b143b161bfc4fe6fc61843cb8c77758ea4372e724152d59f30678f451150629cc278774e8510f520b7245dd4b41ace0666800b29178383016b620751b62f2d69d33875a4371338b7cc5748fc0dc73e440da682461b630cba641a3f47f504fefc1420b7aeef61e40f1e77f2083c0c589048880f5b35f8e70d7deb42c662f2b23caf07a1a34c53995b0e1c466604cf1aa00b075bbc40c474d04ac3dffd9a5d72854a4e2dcf9be09860dfd2d83220cb5ad8ef4e39504148ec8361bd88b1b133da84444273a1ea24739665bff1b9be5276c3729ea4b3c244c7b7568dffcdc8b09812dbeab17921763b442cd4e59e535bf4cbf79302959224d7ef38f962a8c8a99980a4b2d0367cee26cdc6effc41376eb1fd03f80538536457fd277b19c412b32eb615094db5d66858f8ff095f09412d3d4507396e4ba25aed6c601a09dd201cd2002a85136af817fedf7064d4f05bb659fceb9b0a119c80caf84596648cc4a2fbdbf91e8e1a3bce23743804e6b1546e0588acf684070b1813fe69a3b9ac896a22670e00206828d631519c80ff73eda31c3948899bf85694fc6166a945bf3b5fc804181ddde22e7cdcb1de68200c8231b264b30f69a01c9bfd8a9f1bf514dd2a69cf6a7551b1f6ce7703ced9e1b215ff1e6b39c59b67c9828f6a3e046cdfe6ed4dc355bb8dc00aa010ceb4e9fa5d3dd790464d67efa1e8f030f9e53afc81eb9b1dcc3cc57d71d27dcea00e94abb29e9d8b55310e819c151d0df806581f2452081a25722889ff30263cd03029d7a1d61aff1a705e555aa46b2687506faa6472943ab6b5be89a060c11f972ac0566c026eea513d904cbcbacaf4b6855189b760e0ba53345dcb7976a8410e0023080e8606e3e3ee3f00350b42a5268bab477cd3d78ffcd8c96d042684cc27144fb72cec10a2b99b02f23ad22ac9298e7f38d59668a81b4723ba38286b95e2b62a4d58ff9c9d3a5871fab5ea95793cd7851eb48bc22ad8cac42c5132b10825f815a9ab36e8eb402725132538685ac9d168ade992cf3f2fc91c529aad0ecd56bc324235ee02de2bec3bb6648ab2f3363a2ea377c1a281a079c7ebe214b8f2ca4d55c59d9aaeddff53cb8eb2f732e8a0cfefd9c5d7d39b108fd90ba1f998715baf10e2ec7f2f7aa3a99b9edae8667dd4c451d49215eca6dd039f8146af42994cfaede20229c6c456fccae1003b0881421ccbf56995d8dfbaa724961c3b03edf0b4189ff03a43bb6a302e96d02f4e1cddd3e274deca100d79b5dc160a4eb14a31f7b21a97491c9e185bbd0e3eafd8d8e4bab8e62835d1813ffcdae72405140a6e42f76f9a4efddf7ecaafb6a9eef62b7f2733fec16f1bfa809482a857f760539ac315cf0e54f387c46035066dbc13088e9ca871b51842785195726aacdae4ebba5cf6c8294db8e4f70bb50491a6cb35ad85d27780f9444136fe297fb6148f575cf48d4ceae78acf71a18ed2b50ceae4eb97743dd7ed276bd81f34d0dc8b9f65c84d3d9c93ec2b3ab6b79389c8ed915f0413c60a1b780a17749dc8d6095c094d0d955ae2385ec65493b125702c56fdb6657249bc96c5857b8eb6391e24182bb8a912b1228f969afde10ae965dfb8233beaf42afefc0f35af5a03d50ddff32e546682ff7cd3d4d41f3de58e94b098f09168d6f701656b0807bc1a26f5224491e2c7476836c361432d8c5244b6171700bf684559ef92d3c9473051dad5fd95a0ccb8721ae4e2f64ba8e42b2ad15e3b9c65f9cf246d39811856ea03d5c795abf21bcecc549c4134417fef33fd24476a3060c961c68d07577bac97d5418f22957308c35138cc17f1507697a7f05122d32738a1fb7a9ee9cb3df267b00426df8b4a1a7c826fb1a057ab3aa5d3488b96d1123519e5ccbee7893b5e2fa5c59c3d253b4d1d84a71dbf871db91bb32f2013c0821254256c9cf8c2bc91aa6f867313bba9550c54219d74e7d787c54b86716872defe72385fa249d6a0aea208ec031e4cd4657bd13e528aea42bd23d561ea83557d2184285c8ca309aee421fc5dc364fdf0c64e240eea54ff6d8f16c97f8ef25ccd8830746cf8f9d7c94d4977456d6286207eda4b315d02521ad29f7532f344143f54681ee292eb3506cce03c8af1fa5f56f324f9974a0eb723d9059ea65f6e1b620cca1092be07cc901f8a2a9993b8b85e7f67a002e054d30b48247036758af3fbd249e86ccae3a9966bdec9fd2c10527a527f1b4973f8431ceaa1673d34371138c9d839fda8f0e92dafe2f367c673428f8b8986619bbd861ffb4778718c0c117be74dd0fba64c6649a992e727b072bc0356a6ad2e10e480c5ab2f1d9597302397e6a66dbebf6afbbafa09904b587d8471bcead65c9701d947fc7e67eab4b44b35840693107295d58e9db63c18174cb37b58dff7c1051c65af2989c059e3f887726a5f707002ea0022b240e8fe4583bd7197cdaf1013112e60fe5f005cc07d488311fcf51a05ffb91573ada8fa826fe87aa67d3b0b0176f2ee16ace2590ce8a707108caec696660a4333233137a00dda4d33a2609431c8d3786d82b706f5b60ae1b31102aab1874855f7c9697b08766f1557677e4d4413378550f081383ecab009c1cbe0f0111bd01e82371d99e3408a08b51ca81fd36ca0970628de19210f352e67e798e716a56aea3002d1aa384213630119105f02ae7d39ed40072ab6fa324d88280864c07d8becffe698f9b0ab3436ead3703a3cddef801022fe2f086e09ebdf053c96cfb03048b60616f67ecc1b36680e313dec85cec491bd30b0beec76d2405d49c1b10553b3c029b072d72673687180fc755f19fd8a9b3dd2110d4da74d43f50c3582ba31dfa797a21e8a76ba90b2a5dad84b08a84f16f399051a411007ca5fde6b5e4c9a2cec32a3f3e910878a9d3fd3383505edd41524644b423e18729956a74a0d1f7e74ab81ed14fd9f135f7924a29cdecc2d48526e856c2bdd2eddaff05f6e99ac503b02ec63d96dd5e180488350c824772ee8ca0972235877e101b5936e61748ced33d54097840e0f95b65c9bc65425db46688bcda1b03c2199881faa31f142280e1e9a3b614e48f4a98151f6ccf06ddf3e6d431452a6f5813e85e43e3a05882ba9b1a6d0d0b6a4043c18f0cf6021a3cd96666b58f85b10a3141754dbf29e86fdbf1b098b43e9023053b5e9ee47e214f58a610a65bc221c1946207b4e86e2013ff37cc762ead237222e8611c51b37864e32456265be2808ecf26998cc48cbb302555de5000cdcca724e333437d3a1b69c2980a1052e35e7b93a6bc56e3ad10ce6dcc8d77510241113a0822b060dabb0877ac15c2c0bfed9706f6aed60c178d4f6c75f3c2f3a1d4ad987c963c86e5c34885567012e11494f11b8499e976376f6905fdd3d369a63527b45a610007164dcc1cbbf0a4ac294ad1b5b2b177511f21c6688a8c0f0c69baa2a1a7d40a03e7212e24b61140125cf3dd628342240d5fe24027896214205fc39cfa3ba48b320240fd356ec7cae69561668c8cb08c1252cd30cb5e0b687ff656f3e1ad14e6bec6054d56db3d04bb7f8c4a82b0c887b79c7973b2a7ffffae67d6da9c87f4f4677fd19c81fd85be89b9d671ebde85906fa1c95b143355c4115c1333defe29ee2f21a7192370694f9528fcdcf4e51d30827a60060a6a4a53009b0afa28935f90193608f765c3b2043b121de27939eb7ab6af82845569d9f80c2768e9737e6fff52ee933d1edc2a4d24b11cc6ffcde6929851decf6c89a87fd5b89e8fd7ed3a48d205bbd38fc3b4b3f93bec126d19cda0f3084566c37e1e667709183fa0ed0832655c585b690af5738657958cc384246d7ade7197151dc7d67df4aefbc90d223e166a79d82a7877d446efcb0704598e0f85af1d17a734400fe6531bbaee1e595d8605702b8041c4359975485e028967dce99d7a2ba6352e48203a4a3ca2d43eaeb0ed2687340b933b4b79d68cd4558329ee6384062b3aca68e6b0ba347b48c04e9ac4e736566194b5a9732d1e7c3592c71823a3057417d591386dec9c421b17fa453a100de038291a8d3be614043c87160b0205258ec28490c6761479b6ab7dbda7ff6ac004d94db2be4e57c558e07cee33d37eb2c91da9ccb1aa62ed9b9560629dbc15285e3d9b16cb531030a121da79769d0bbee08e03b79a129fe1fae9876fb1019594c45c74c7d0c7f6c381cb96f8190971f05cff91dd4b8d6895bb6181be1fb31a11e75f803d2f67e386d6c17774f90d59430fc09700e7db857a750e82ca6c3ae8b90990e27574670ea222659faef81b088d376044f3604f32df53fc0a46ee842ea3b95012c21ee62225a05f985ea34858d4192fb1503f5086c416aef3360511748eb0d96980cc71701d0d807d3d8126cf670c82628f62328bd97cfd2af1b58aa91811c4522b3d1cd1a5a940070be3e1f758dbb08ce86dc4dc88c08cf3e44dcae1b2d1e48e8225a4d35f545257f7ed3a6da1fe8103ad84904e796a795861af057a2275406d6fa827874bee0b12f328b5d6aa762102c2f78cf0618452744bf439098f02a333aa573a37f8879accc1eab0b3347240af0c07ae9a03a6dde4bb0e3c7e7761b83f2bd2bebd3d3b93aa261bb0a7a9ec58de6d788b0d534d71e1b36b9f77ab8415273a184921097542e613caf4b305e0c43ad63015e1fb1c1f5cf8efbf2d20e1b154ddb86fbc18c17153c236602ff5dee6971733f0418cffc2ebbb50115f199a161383fcd91014b4e461be0da1f6f88b411ac1cbea5748944a9e30db0db3a4c6fc5fa4026f61b72cde50cd2fe04ac66322b451e6daf9de17f33a2553a0a0186899af1467a605269ff7984ccffc8f6bccaa27575f8061be0fb3b3805a0b236b04ac4eeb05a30d896e869164744f3cd7b8926aa8b2cddb3c9a93ee4ff090e1ec85be564796e245eeea191e651ca49e79611ef3d8bb0f601330316ff4b5ad7d5e648ba3a0289b229e17295362e1bad0cc26a29527c7dcd66b6c5a917813d30c854f15e54376fe0ca73fd416ff1ce627bbf189782525bd049f1b74e6e4805fe0c3afdcfd0da82d7a54a85ed996c271bcab2508714704f2e2e1411dac6e4e1cc1ca2ed07b8be5bed41d371a38a2282d68cf1e3e3749c82a2172ac1de5e29d725828271df9d96f0113faab2f813e59a1ac0e0a98d02f03c607d50ab5b1da6ffa9251a0c46a56886f9faac4ecb86a9c62fe259cd6ca5c1be0d1c13e114634063913a56084bc883c41d0e3d3ccded8ba89c27d485607dacc99470bd39ff5e270094d2494493ae88bc5a4dfec9ca629324c47554a50423e1cba2ede1fc3b517a39c21d597f03693cedbaadd4eccf0f2bc301d430ba852061ebdbb4548084b5af225d0dd45d2b5be775bbce34b20160fa6ad2e1222bd82ac9b6dbe24953d91d41e8dee9e68d36cafe36ed0c283926f4f057e055ba3f7d56da4f68e15b8ce95be3687ce7bf416201144827fae4699618aa0b9794a1ade8b7eda6a90bc8a813a898335f622650ae2a60b7729396eb2d209fdac8a8aa6789bea251b79bf0de8953368d8dc250d2e40ffae0966479543048bb77bec94aaea3e2a3665a8a7821d795ae147904f651e13296b97d33796240f7bf0e8a3ed86fda790fa81a5f33f44ad5fb965a89a99ea630a28211189a473cf34c840f5fe3df83a8d807ab44e2f04a57340b02eda084e0ebd8814649df95afb91ada0551486a9f79d6caa93ad6604309c9ea61dbeecd95c3910de1651a10a1ad40cf7e75486256c29c5d5d73fb8540a56a872fa9db1c124d0ce86231f3634fc598bbbcd252aeba93cfc9dbe2de708bcf7ba0283ae345fa2ecdad141455c1133d1ac0236c53f717d2078d439d632e314113535a8f407858d4c092c136141f647e8ca9ec573b238580b90650ba64159e5c22664f02ba403694bb8f07cf921bb50b03670934a8aab2876c32347f477ba7f4102fa5e7cbff364c965e2891893ce3856ed75bff17ee90f406b6e3fdbe8aa2822005ab42c1a2b1bf87f2446c03d5554e8511dd680052065aa5c24103b0267be0ac4119bb2d1dd9240df93f817f241452cf5fcdbb06a3a922cc3cc14e9b9585e7170e05a0856b1b9e3bc83fcef7fbfbf836eab4fccbfab6784e9069a4be7894ece5d2a936ffa4d64aa0ba5ac3c2ac97a3210e545fb343e74d6963741c8806ce905f1884e7e615d8242d2112726491788084bad995ffd54d5d38ab7360a26e98647ae77db9722a46a4e33b21ab947b36cc495b13538868ee921d6fc82a491e252447a62939bb01407196c53575f2ae4b00bab9e98a891e54d1c00fb837c9676d6062da36c0794d880e3c42554f305bfedf2dcba7fcbd2edb4659cdbb3dc373559ee0deaea633f853286156ba522aa4996485eb124018c474d0be47344683dbc958dfdc00728504de69e100b8551f6b97510974c21bb8b9526439182d346e9406c1078e8bb7daaae88bb86d6ffdb5fb0ad280b849f7125099e2ff841d0a97873512c90e9e5a5ce64d00bc4a2fad3743c318674a0f6639af333f0e77d62c26cd0bd7545621e7a6bba88a1f1cccb2fccc32c48edec1fb7aa9e75d5d21a5b85420e2072d66f0338ca6549523490d2e24faba2c5d07c55c885cbe9a55343d41d575be006db1b2ae891fac710467089e70b1184489ea0d95fb66933a39efe73279d1946f4bcd046c82ef038db8e8cd91216e602aa300d1ddaf8f4815a93a0bdd03878bdf7015a1fa26d8124a504c6519b4a23072070cd923339bb9a56a9815b64bd42a9357e169b3e7099ea8ec97de8ccfe82b160a72472840da43681771f60dd2b098982cba3f4fa0e55d3e8652fa2580ad7a20ab27ef2399fc82dffd15524701e17c0a5f50cbaed0159e408bde79b73e4274d2844f50e0e37303bc1a703fddf08b1bdacbf69b82f264264ce141d038a26f2d785ace313dcdc0a6fa7581260dc8166bae0e967ee34b302eb63aca3f8ffe6457aee365059064ab60e0a377344a872269726b197e5fdb4362204c80bdf73f0a0edc7f64b785717a199a3e1d8c90827314369cd03e5f17b2d8acb52a55aa6a0b04a2196355932a63cb34aab1df8dc30f1deaa1830bc38540bd10f8127e6f2c6894bb886de93b959be7818860311229f0134586278f5acabbd84131697ae18d4e091408f3ba0060bfff4fbf0da178f357dd1609b994654a3cd020f6eaa5e8f7063bbc60cc58a80c5120d58d7ae28676b3955be5d617585d495c91c46118a12b9cc9f64feaf77682b0bc8064a982c7aae43d5da44af3d653f21a6f5d0f9497856553ae9bee48878be7b80f515d496f6f7ad63f68b6c1449b657c9200812591a9f24209b8018a870393a49989ba0ebc4b816c811e6d5b7df22fa4054277617407b93661b2308758d8472ada45c36138f199c187314718bceae934c5e6aa47e8c3dca13216c3b512ef31e7a4704e71cac103dd49f335703f226711e3d0bdab8cd421acaf54b3e53bbf3d754288c745f1132d2cbacb540de606a2205955ded5893effca1ec92da677ae4c9d80f3ea5a631b96422a9445d7560d33c83327d4374529f94fedaa68dc928022cb4838b684034ba8b1b84b1ec392e7e18f11e695fcde01390a6114e9af6dd1090b48a3db0a256d7016132e741e95f9df7b38366d8db803509b27cab20384769222e339c4cf35a40edd036a10ec81b5950c8bd12fda440b1aa47247ef29db62c2d486b95c5a75a5191251b6ed19f0e608fa3d2cf6da063d9809922338d7d38cfa260707b592707784aed2b488b2e64bd22a9c256b04c086f69e40c678d6f7f0048fcf2c4ba41895aaf402757fba6a0fdf673d306f86c6f724d981bfeacb08988951d94eff7363d60c24ccd75057e62b848b8ba7fe4ec05819057a9392de62c607dc1592026d716ffd3ee87b98adbd17c45189516775fee220958a0b460d5834eb5633b21298e53c0264da8d6dd4fd4e75ba5016c47d183209dd4eab153e69cb2f9bb7e62ac1da3a1659cceb53f5e02e28f845371bee77aecfe0d83c053e4f04d47dc9b0ab5bbe6ee160482f62da0ca6ac51e68e718c77f0bb647e95d160102e7b82144d175498f63f0cab5989087563887789065ca2e013f6a218b2c860431c52949156b40e223443c895f1de6e65e41d3aacbc27641c3c788b9490c11fb4732ec59c737f530914892deb1e901532d6fd78b4bd87609c7675fee598294087b2ca2458476f6ad4cf0d25d35b50318e2885dbf8ba271044ded909267a8e319fb192e1da7cf40ba67cc0822a4d5fd7b02217b77233265a4546358019fe51f12f84584cbc6bb061270a7f462271982d209c84bb8e498d462c37a5e59a2f20160fe6c50fe236724dde1d27f33be581f5109e473bc8eb5c3c78231394dc958ec05099ea2b6f29bef9d193044470b21289b8f162126f0291ea571a3501e76ff22b6696365f11ca61b2da6ee63e4a5569f0f6d2ad7008314d609934800072165172a7e2e551a9dc20deb64fff874ad1c488ca2c031b1b944f2e70d3b912db0e5b8646de79232058583ec79c43c2f2f20cd0925051d2367f86b39e4e0b2586639f38ec350c103db2a08f9356a33848378798579216947f47b9af69402e55709361b644c30cff56e4777cb0ffa00a20325206c386b63c0c850323699c8e04f3ef467308a42457a05a74bf642b4c153adf646797b1416c66d7377a4bad2bba08088c3ab6def68616c000a6c70895a5e7f62228a471a0b008eb463dd9bfd39c94941947cf2cde697c982edcf4575a450a2842b54523d3607f2529ac5eb1474f8646d3afc8cfaed09ea3774b2512086ee7fa591970e6d7bd9c6d3bab1a4a358bee82d0bc81c98d7aed6248b649b2f4b54a635a6ae4a8367d242eb60ae43dc1a0406608ec7311e8c9652aff5954bb712421e957781959124a89623654e64448d0ecf93f23ece458e9823b22872fa2b96d60c82391125f4756fd1be89d2462188d2f6ddb21b4eb8087edba0159b23026978bc0dad801c7414c70f7c88506c0539cba13e9fc7b19b513f50c14f5064ddcdc440a7a3e018481781d9bdea6d2a29ea22336232c8ac4ed1123417b85a6d680a955b4edfab9bc72158ff50728f145b88b86b377bea9d60bd70a7a46446a3148f9982f8d95e786123cee29463d2a2898297198d15b14f767dc18e66bb800ecabf39a19fb8784683cb44d82666155839de0da4be3e894d840a06ee0528b76145320c658a4a0a6da2116f9d43031642930237b519fd48539f12c8adc71874167a7ea7dd82ead011ed3b1e4223013767d4f046afc9fa8bac2945b2a559f7c83d0f298db6da6880c58d56e77d309d3201a8b9d15f3138bbb4e440546c9e9b8c55b5b9db26b9585f8c21b5bfe7b608045f032205aa0c8ef970e98599d9db2bdeb7932603157f95eea94e88e588919f460dc106407d0251d61b42c287dd2fd03075254a29c88d7cec284500550879b4c157619ebff3518ab738ac3e8f16ad39346f5bb7bd537c555cf8815772e41625982f156be3e12d6d1e0cb95a77e748f9102807b3cc18c47b587fb1949329528958ed00a6c8ba284760396594a6f3c71f75dfe639e8ecbdf3501c6fa37cb9100301767f606130daa7f35e7d6514f5a67d73a656df992773bad31d10a7577d371d48a1ac9ad0f1cb58f0b931914982529af82f4a96278a1c3ad9092302c027b43fa1a6e29fc021f9e9527c23e7e1887c878c1edda80302645b3d375d31b575481227ad6ca668efa5db65d4cc28a424f5b68631830f19362fb90294c211d4ff82fe0a6126fb50dc29a55b569ec7e80361ec2d29e9d6d6cf2cda195e2de254f314636f00ee347ceecc3c2948b8346bcc3eb0e70ccc31b1bfa322efb23177c2d10d1373491d4bd308d038625d13501030d5bb49b943306b65a9d9a3298ecc92c34090f902308d630a142210d8cda6b61198b0a360e3676512a09b7e21cc63890c139aec4839d38e36c840fd0caac955d89144aa82f1c667da3ce9a8ec03cb56c97b55bae50a92b877cf53014a9d1b488633d1627249ed11ac4a1bd5e583ff1089375a1ed8d52038d6907d8df3bde6438040c2c3af802e23f9730db87d54651dbe4a3306391c02c767f9866e942960705761a60b1043be17d56c5a0d4b5cf560dc40821019979ef1ec430a513bf42bfad255835e149abc5b066d5bf2c05c5f5f1a2d86859523597555f348c6725863f0ad0c1593c7506ca59beaff03e8045263e3108114b9a25bf0fe85c0ebc1fe78e00a72fc22fa7899c4a8e4f9e92217654e44214cd4069627d734e2bf288e50fc140fbe4d59fc018e5c287f23e784c0fc2466a1f254af95fc10e620a4ad57adea7dca47f0247414ccc20c0842d47f4cf276766095c3f296c5f9ab9ce810473e62f3901e06f82b3457a0893291480b8d2ba1d82f8c0d66a9dd0566ef13891375e108c61d62f0eacda7e4be4d3687b5032508ba6d106ac3d036db4bdd235b11c4d1e976807a52bc1174b2329ad5b61645dc7438c448616ff84707d98db3f71de9a738b4c11dee1b4230104c7dcabb851f92cec559e41db99adf87bef2f460db83fe6d7b86e076d15b37fb1539dbd9a1a24010a0cf00639badbd8fac095f58061d2bb9d3903d3fab89b9a372cdf344c3aa49d83444878a9f2ddde99d4dbe518b807bd07bc6e10a217c0cb120b35472844c50dec1f9818a420df14eca2667d88523b17c30b433f05b7c028055f4a6fac1c7151d97b89da0e5938815e1ce9152b3e7e5b25103c25f20cf9adde40b073be240d2053660f765ad452be457d17730a437618582bd65babfc3aa506ecd99101db3e1ad1f42af4e4dca531f64002e35ffe9cace68249c6e05d7b1356f33d6ccb74541de30b48e36286cea9d8ca3eb6ea862fdf8a422078a340a57044515071b52459008d8193a47b55942538cfaf8db1156d8b54f2fd2d3b71963cdc6c069502b4e7ee804256326c672d2c9399ebb5d8b66c6e5b265da2a2512a7303d96358acc761de83d1ca454352c22377d93525ddc10a2c824bc82756bf28453e1160924a7ceb386ca4e310de2225e954465a95f1321750e73ab60c18a4c15334974b304e722b48bd4b6e594b306db120fc4ab57a01ea3c0515b68160af095f21e7f47a13d226684a4976682291fe2078ebfe0003102cea234f69361bdc4c7be57da53687cc042aeb409da02838b025ebd9148bb2bd9c0ef7d6280b167f53152d42886e6b00a0b9f6c37c8d1cc1885cc15349d88047b140579f5e99e5d4d7b25a6e040d75a490d8b6141d41be945bd0f299559d17709cdacada18875c4c8113d125df776d344e03011d847664d7c9285d8e6fc81de89a4bb1447b3e81b2a73934c22e99d96dd2c188970750ec80a0561b7726891d5c3377fe5200c791d0da26955513a9421c17a08e48489147c7b0d60104040737305d906517290dae5b410188093490f6fd1ffe2e1c6fb584a9970a45c2c462892a142903c91d29fccf5ad29982a409916d110e1cbe3e5dcf6053468e5733f6f92339c28860fcf3bf454d129b32b273fa20c1585504989d2f70547f65ab6dd50bfd3528448d8e14e2f016f5f3f98614e8a686a6b4f228624188657d376a444602a8b15a318cee707c6ae9b54066a2e0a7a3d0b28f332c9684b737ec8c56f8f60a4c0d0356fb84c9957593c189c647762f8a72fbe413271eb467df759976e3248e6b1c28c930b1875c2bab7c42390f1e26a4aae682a9718d12e347b1a484cab31f1143bfd66d4d4bd9679514bbc580b972153f4dd6ff8b80d561fad83028ccfb90b74b7faa8d38aec282ba5d1c6a193813e2fac611013e58b13d839dfb7655391cdc524e0ab3563c01a2cf4fe72389b9742d66eabcd4e42584c706e6a841a78cd72bd256338a5826cb315c9a7a97767842e745039529942a008c84758aa18ad9c15a622e7dda9448c1c961bece7df51be5f85b64c145b4a1b5c39e48d133f152571c4f4d4164dc14b40432cc14e822c08845d8b609b96c9f944a9e105fcf3f4f60f027337acec38e29050414d368f7af62990d6855c9f8c1b873882781fe1308dafac1dd1637c48f0647ce9c6b13e97d1d89b7016bcb7ed9e4a4e8c9530612f9d08b1f45e5b522b7965a0ba966e400503f742142ec4f29257957c9345234bf075ed33a352a4e5b7e06ba4615fc76722dcfdb047cbc91be51b0b713f9654015dbb0fd09eed4cae2fe5aa922f5c7229263259b2526c619c730848b967147438f5400f50ea0a6f89862097db116f854592119dd9da58f92a9c7ec2d1c71eeddda2fa048c0e21f9de0e08dc6fa67b568682477500004b01c0ede47b3f09d0828f59983531fa79b897b084b5b887a0910314ca7c37a159029b16aaaef0380767e1e94da56cc0ce067752aaed07bcb03880825cff9081ca9fd04fca68b57e304a86d464c7c016058db60fb316e67a2e6f524ef0a09d61f32ded420528ef54c89226a808bbc154cbe82719491b5f69ffd7632e7aa75844fab47fb04587b742f958eec33ddf2b0cde4345d0ae6fda9174ef98804e49e5cb23083a2fc5061e2133ab55d75719830e8b211fd46cfdaaf7da28834bda5f70d1a2f21f31eb837c8bce1325be5ba10b5b218b0b19f10eb4ab4df1533bceeff80ab85d80f2792f88cb59406f19b019b505582b87a94699a74a888d254eb748b75f1958423ff1428e19bb24d64645af5c4295e498e375b15ec0bc4d36865c0a2bfd78f78b1751968d8166303edf66e1b3562e9a833e1c60d1229b376d702ba06b8cea1b59841161af7e6fe99e1739d806ea0ff82dd408f27a52281fbe2384413cc81a930e124f7a4c96079a1a376ba3a331039c0ff6f53792ffdf40db36a96aefa31fffb46073973c3ef1ef7ec3a7dfd9aa0f22a1f6641051e7d4372a720007d26336c079e2b79be3e2d22161128b04887da36fc38b5940948d00e02ceb9ba22be7a324b16111f5ee04d64b9db8f8cde77232fdc457883a3a989a5348055a94a360976cc9297a9d28268a8a32e7482a9c3feae59a3227f9849cc1c34561b0c722cd08bcb5304ec95e9989906009e1ecab691bb8dcfb4616a864a33f606251bd7c2c5806bd7d25b82dffb5054b7f82542f5ae0f8727f07fb3a39bf4a091699ea448c00ffe1bc72bd8bd4cbe61af1cc48327ed32de5fb1e952e595ba7b36541062fa10b40d91f32dac9ac9f448b131b7446d3e57a20a31edc06ed6b045804640b99ed9a49967a48efde7db2996280c57e22c567aa0394b6f91874a6113e568089fc234a644f09612c543262fab3c305376710b98fc3a63e895c52198fcc42602dad190d124562558ed8a0bc6487f1dc21c357fbcbaa4a82c9790d31ca7b86ece0b9470492302dd8472139d791ddd6263e8ad8ae509a7821f2ccc5c81ae3ab15d5e1c4d18e1d878845e0ac001b5621f97e72215b6ac206a6690778673f5239835ba4c170e3022251a98059128c9ce05473120e058763161742d417148c994a427cf96f98737f4e140abbbb5de12f0e808ee1e326dad7109b87a0cc1d5fb85b9882c2bdba5cef6a9c74df718e72a3354408621b37e4ac64a51bfcce7b097671886f7c774220af99d450c461dcd3e1304c0768b41f44d322c70942cc34605d9a70e2f18a7b2a28a0a56b37007141d6b81d498c15287718860dde1f37b8a270dfe9ad18d0a2d34c7c129b86e35d53b008e182d61dd3cd7b4b8d57c5b8a1f9ab7f895fb590eee3927aaed4a8237889c59055d22b4d8ae6f60d79ee27433488ef08b3fc3344314c5b6f011e888a6c6205c15c354e45fc541a1660f2a717d2e423ff867e9f4f2156f8121952bbfa488d0e5d22c1c5c505a335d6778f79ea09a7d9f2f78a0acb6b5c882b7b2dfc3419ac2f78852e7407924b58f17e14593629e24bb1fab376292ea849af1d2e7a6be63783747dd50b442503ba73fe775a409819251d6dfdf24b14a1fbec5b2464610ab1f8f321ecb821912d0d15a9755f5feb5e2c4d63006694dbeb2ae6f111b6cfb489bd40d3f7c4e925e3b115d0ec2020dca937da7ab2c0d78cddb0adb5b61b218434b2f7de7bcb2d036807c7074407cebdbb5889a7e212410421c32449ce1288e3e2d42bcac58b7f2fee827a510446fd454745ec5dbe7779797ef2ee50b98fd14727cd6e91878f58c82143a4c4e25d3e8c445654798d8e218d6e72529d6df44805ab21dbb08a61f5c2aa85d50aab20ac52589d5895588d4f20565f1be22c0fac458675a9da6861350a3a0d9e798787e199786a359f62fa91bf05103d1185fcddc1c2577f95d9456697074b6b4fe5cae1c26a1484fd001aa168b08c83651996fa9dc195c962cbaa57faf05878b0586aab1ab2ed865d400fd9aa6253305bd5cbc965ab6a25b16c552b27a4b25505f9806c55a91cca5675769169ab2ab190b6aaf14955a192fada1076719607bb807ea37f6017d06575b6aa6d59d8056435da7a6810d2a75662ad5c389c0b52038dc0233c430f0f99e0992cc02a38c66a348d240b0b5d8b61c815f2d669b880b02ead2ba5ec96d44ad3daa3adf4655d5132e1e1ab586f2b7135ae051eb1b08893223a7dca82764d5f7405d18ff4d2d18fef653938af083c831d4e9d1e218b75cfdac7da369e95aeb049933e3decc231619127e380661b4a037edb8910bfdd840141400764b0c83d35e017c2646200a54164dc2db0611168a409baf21a7b5811ef3d88b0d1ca82ca837e61914a5a6f651e16a92bf3f7b432ab0c9e6c931eedc7cec70bc7fb5543e11f4ea3c9e918903ceca1071196d9857409317a598fbe04a22ffb52d61e21fb229ebdada74ff06600088cd90a9ccd8f5d267c2369530cea600e2c3c754b5f66775a1c138f853091aa958cdc1c767fd899c93f2bfb1202f9a1390045c52c5575cc594b825f6becbab3fd32aefa7163d8a96bd1a1b78a299de90dd7027986141a4265747e55d566e7631708312450f72a9628c459024ba51289f411e923d247f22aa5bfd25fe9efa56341a0b164559ea4bb5e522a65a58f3ac9e31906a2542a65a4763aed76da3d69c7d3cee71a5956c561fdddcd6982a7f92a89f48a5aa12bc753d227930e4e77b70efd19552eacf6c3a463440ec79dee1cdd71a627ee3ceee4e38287427eb1bac539e76a3e843b15233a92b1ada6f3d390c0323c137ae92aa473c7582a3fa4a6436a3aa45f11492744226597070be93d4296949d2fba849027951e4bbfd13be27390b21d21d24b2152b6427a8924aa6d489f46a3d168d48858956d8dae71167e88b3199df4eb58602f21481f596e48c71c3210a4ec7d9a1aa69374924e42445a7887d331a5dfd092290613151cee2695572ff806b42cab8251493b73386b017669446cd5d335767f58973922ec02ffbaa68f60991687eef0f22d6ae31695cf984afec50b955f91ca2f157baea2a2f21e21aba2720e71140b4fe145432cfc11425e2533a25d3a3ae635da411a49e5c21a5523a62545995262602be169284b649ac9108da67700dfa47bc054d86955b24e0205659e896e49c34f1caa63da71434c48da087c8e881b8283a653fa28d3a1b56b3a482711ed0d28c414e32ca6182a179d2f1fdc1067e38874cc285b297de48674cc4aa99158f822de09aa88ba4608ec9a9a9a1a9546f912a2c53a267dea4e02beabfcb6125688d25f4dc7a81cbe8374123c730151fa7bdd83d10e98868a7826b4d3491afea9d4527d2d2c950aed0d0a6fa2b455547e4d2abf57797543fa14df4240e16fd3a1bea3741fcd4afe29c207b56a5b91b7be448b43ab942de1e2f0a46a01768177750b5ab0f0a219f414729135222db29b69842231b970ddd805c4b00cfbb3d89555805de0ad665b0ecf80321fa82c367bf7236a03bca06a6fc69b6f3e799ae103889da7ea8d80853fd996e1e3d976aa42ca1af1b2fb2ccfe818d70e73839d36dd6fbbd91cb7ee0dff20b41a74ee0d8410e0585a719f9c655958117e61ac3b4c678efbd41dc27935d8d7cf62797f17c2c234955fde6f43e28610d896dd1dbecdd91eb7d98e4ff1ec6424b7c4bff8175fec57103e08f9c125200c59f7de0fbefe81e9923140cb5034d18425381775323eb3f415fd2950347105144d64018a26a6e08b59b83979e74e1d135f396bfecdbe9c7f67f82e0500b190016c2f1fb8b750b1dc478156dc52a071475fbec35fd7a1838e8e5e4d67a36bcbca6e03d5986577fe0292c4f2e543cba2a2aaf7785466c40b4bbdc77b0676ccbbea55eff1d5fc7c35b31e94e886bbd1a35a9d079024a11a0b33f7ca550f5510befa6d167c751884cf90450fa47f2009d90312407a2065eed5e7196c8c3ddacdc1b6877c97ab3ebc832cd0e7790049625d9c2e33e285c57edd7491f449bd3a478a590f2c5b4209d24ba552a9542a954a2412894422910e821a3d90fe839451d7d24aa552a9542a1d04357a2865264c08b41d74b6576bad31cfb8a05ba00b2489b53ea75577f4577450d639d1104abd6561ef8c3d061df331bb5436b325486f5236edc380b4f1988d99eb6c4506b1a263da771ed2c6cc08d7462dfa40459d8c73ce4561f9554a299975b8dcc4f2e5ab2abb44c818638c31468a92524a29a5e4c7dc526597087ba91f104228a594524af9cedc7235e09c737de6168a2ae1a207249c73ce39e7babbe37fc00c893e7cefbd1d76b81cb0973a880940e9708158be807019b30ed44140340bb2202a560ec423f1c385085860c2892ba490c1931ee00f204b4ce10132dcc0053638a2093d38e7dc03ed8e88cd6b388d499f969c805bde6d786112d1364426d13c3fef2fc890f757cdea84f4e9edd8fbb7c33352f00ce8cfbd2b50838c68b0abf76cc67b92883e4ddaa07310ba076b541a004d42a6184bcdc140a063a84f397300b131e68887547c4e07661e988bc051a0a73ea9fafaf42e84f5d2b09086eb2659de1f96ca669fe48fbda7df794b563ece492945c15839df1795319dd43cf31c21db9b8b8f51b68cf2d2ed80f75143e7df21cf50b740a7a88c6d5f42c847f918a511adfd3927159cbf2ebe5decfec952772bfd172bac3bd88924962d74a28865cbb66a6697d7a7f7fb605d79ee729f80ccd65570adf5bbfb3bdb53a331a0d77219906ecd0811481e704355a196bd6e2d49c52c57624bd00bc4ba1a7681af5a64cb3498393f06995108110b1f8f601a7873133f60e1630d3403c32c2c3cc4028e8161192c3c9c02c1c0500c161e4a815e60f8050b0f7f2017185e61e16114a805865bb0f0d007628161162c3cec81576078c803a9c0d00a161e4281516078f8043e81e114161e3a8152303cdc8151304d74c22f1032c1c2c32610094c139ff00b3c54027c826922147e818750587898038bc03491875fe0a1112c3c35c134b1a78708161e32e11919878741609ae8c32ff07008161e2ee1991c0e0f7dc034310abfc043205878a8846770383cdc01d3c41f7e81873db0f03009cfb01c1ee28069a214863ab034710abf20e1991b0ee10d2c3ca401d3442cf80566874b587838031f7ee1993efc84812f98af900bd5d34a6db8c806510da7a1061a564eb3f2db96e6cc316e23c66f5b1b672e4001ce6c00039cf9000738f38d1b67b6f6cc3df4706604202001674e008e33e3f0e1cc3e9c39478e1f74280088059cf98733eb38b302ce0cc49917f08a87cf6a3dd679acc68f2a76953a7aa974aaa6cba8a7e750651c879ac3592a0ebfa1b23cab37bc6bf6d7fe02ea753e584c91f213c5a78707ca13273b4d747270982c519204c99168e4a69970dc8d85d445c1a0a0cdba5f58243e1c98037d2cc494407d2295f9ccece1e03c1c1b1b1b1b1f1f379f099cf3e116e8b6c032efe784020bdf084cef03f4e70b5c03c43bb2c80af5a258789c392928bbd46465d7f4cb8c07f4c2223314422e587888d333b0c2c600c2f0394ffbec30a14a2644f27ee48f349928953ffd70fae1e074765d120b8fb3800a445540d5517fa839aa0f15474d40bd118a854740eda1da7aa31ea01aa0de9873230e4dbd71c98d4a62921b91c423371ab9f066da17cfaa0be29260177896ea8454974395519d0dbbc09faabba9453400d4eb90b0f001a8d72961e167d4eb4870dd092cbc00ea7529b0f02f15a65ef7020baf43bd2e06167e00f53a1a587802d4eb98b0f034ea7538b0f03bd4eb7660e163ea753eb82e081636715d11ae7be23a245c17c575525cf70417050ba960e16780d8fa67eb2b028b985c91d7695d4fa37938ed05de518169a211235680c233a428304d3c72640a16de3de19916871109125849c13431491227ecf00c1505d344254a98d084674048609ab86489127478e63dc134910913287278868722304dc4c131020ecf584d304dccc92102139e9941609aa8a333040bef96f08c0f982636692ff04d8060e19d92b8d35ee00e1ce18069a2132698263ea101d3442831609ac8d35e20cfa81ce1999291223c63ba131d405902debd8069620f0b9826fab4179802a68951dacb099826feb41778c3332b316ab80def713088b2821f14b80fc0d3c429ed0522c134118bf60279a61ede1dc134ce074e71237021b0f0550d9586db506b38a9c2788b4a7a555bfcd58653b53aa8523c3ccb6eb8818505071c72c841868cd3a9a505000008400066cc70711180005e5e60607418000168ecb0030d5fa9316eaa2ba5eaa2eb8b8faacab13a7aacd86bedcf791eaa7559eb611179289fc4c22559f6708cdc708391232c2c4790e08003922439e49044890c194a969c4e4b98b4b430c101000070720210801c9d1933749ab8b834d9118000769cbcbc3c3e8139cc6f47283af00ce0f0b187003e34a2ec701da00c80c712a08786cf0e512c7cfc89912233a5060f313f32526afcb6e5e12f78a8175af91a55a6decbcac7d41dea55b1f2342a01eaa5c1ca0fa0de6ae575a817072b0f535fea75b1f202a857072bef52ef0e567e46bd3c58f900d45b002b0f00f9967af9092b7faa979160e565d4cb5158f91cea6529ac3c0ef5b2d4cb51b0f237d4cb54b0f259bd7c052bcfecc22ef2b54e76917fb5d845de864ad945be865a6217791aaa895de463d418ec22bf52cf2ef2a6cac22ef22eea895de44b7506bbc8ab541876911f551aec228fd51aec221fab0d76919ff546027e601779505d00bbc853b501ec225f5508b08b7c8b1a017691f230ea10ecc252764b6c09ea6c055232134127d38b3973da08a6d817cb4f8c2088ad1eace493edb5295c921722d9604e9f3a04a757d30ba61a0fcf6855b04ceb01b7c0df70c3ca0a89646fe3a9ec6d3c32aea65be0f9e1f4a9e7e19ca21c53028d53ec94c6033327e40e49c78cae021d110b6b9c8ca3d464c27942880d37735bd1f1e45d8dc3a9a12e89a9068eab71f1eb9ab828289c5893440d6ce20363c02df0534e3f2f52e4c2224cec8006a1088745a0117681ce27090d2c3c94f22826089b4cf1c49b30f980e2c0c217611798042a7f69d88a1f804448124f8cc0c7b2587e620439b69188408ae53e8fde284862178e87f3725ccd9087d331415c123ca304cfc4c3b7153414b4218d2662d174d0966830b0100bb6525aa711840b1445b97aa7751a68be98ab0f6763f69c682feff5897daa8a6388d818e9aad42cddb8be87844f167eb8d0852e74810b51baaafa466c7c2462d97290ca3958575a6b948f67adbb0b4775c9fb78f639073a7ccefa8b575c01e2c4a066445b719782a7dae3e174f7d45e96cdb01a94a2063f575cf1738508825851052baa608515561cb1c28a23561ca1820a9e6ee75c73ddddd2ba774f799b939e9e9e9e9e9e9e9e9e9e9e1e2aa8a0a28a2aaaa8a28a2aaaa8a28a2aaaa8a20a2aa8a0820a2a3a5ab355d7459dc66ed535ad00b2a645e9c4e69c735ea77e2f4a5ffd5d3a2e9a816e511465d5e6fab262b7ea9a569873ce392dea947bbbbe2c8813dfba63530e6431885aa4d7c2a22a7cacef4dda8a9a73ce69351a6b529635e79c95b32ceb137bd3cf4651a7d19a93a26676ad4fcac5565dd805026196656193beba627561b34d8a5d55a494524a29a594524a29a5d79c97853deca1ea9a13f439419f156856216cce5fd36a3416139665619665591666599768341251b34adbaaaba335e78538944551144551d49c4c4c6bce39ad392dcbb2e6b4a837a5c5ca0aa0392b100804b228752b76abae698589519f18e8028140208b8240d4af39e79c73ce39e79c73cec30bc7acd4faa4a85fd15a154747ca9d3aea563301aaa85fafaab6de9e740ccd56e62dd1e8f2216c24b20e9af31735ad69c1c9763a394d1d56e0b1a465be14d00f04d69bf566bdc5574ba0dca77859f01c05bdb771a5adb46cb6f65fd99d9352533dcd536cb1ef98ce568268b7dee7b39c78866db4b2aa558daad9eb3ed6c49d5922142aee98959ef1dedf7befbde79c73cfbdf7f79e7befbdf7de7b4f05556b4b07b4fb8d06afce705c855a1696ebfd71848eaeb1fd1bdd56deeb0e1dfccc881ed2f65b16968f50558d32bf22ef068b294f9c2849e2863821517c74728c7491aec102ca93254a1a9136e487c70f2c39a08ddf102a66b9588deddfd88a73a030f675eb81f6c11b22f64e59637bfa39a1d722d2a0d8fb88b4465fe3683f4e867be8371e77e7e911b16c5ae6fab188748c2362fbd78f73b05b6b8f9d9b7ce277f7e47b32ada7f1bcec350c49d528bf43570e28431edb26279373a6558a717a3a8e468d773a028bd0968136d382b1d0c6c93c1dd7d29fd3e6e9e8e84c9962f51fce8c29853e2c2ceb04f111f27e8858fe8bd2324fa75bfa4d7153a6409b973575cd395924016d24b48149e011274f26e5e449c87a3c3af0caf1eb8a9815756c7b6c0e9b82de69ab6a64353aba74b458983ebd26240b736be84416538ca7a30476e95ff976baa51f12f8a51d06057aa9255998f572ecf4a95dd2b6ae3d9cebf78e1d0d84d25efab73dfb78e5806259e3e6b06703a1341ae8a4bdf4955d935b624365506c1f2e71326f0a74d268e013538b4f875dea6b32053e990765d7e4b29e4f2c06051adbde70afb29d3a331ae0c38649e30972a449ff1059d276c648a5c227f7a7e3641eb7b8778ce6f7c4b6655d9fba721cdab4b8a20b2bbe9a514c06958318e4a161fe401b7bdf5382c7b213969f50e2c656d81368cb9c1327f4b69ef6ec9dd7b239a06d590381c3712d6d39277d87e31ccc706c43f7a45bfaed9cd87e3b277deab7f913868a599c40af659d4855b33029e8e51dec0d70a0df936586579181712d8ef4ecf2a861a71528b3ca21730ebee4cb4b78c97dcab8545738f4ea358c732cca2ea5596d58b3b0f78543dab0d86575170e1a7d925caf05b91d6cb0625aa07c87bd28163b59ecd57bed713ffe0f2bfbd4a7e633bbc8cbec02714e5e662758a9f3732b7c3ee814ff6425db67c494d90c7829dd3177dd68f815f9b822337e116d39ab45b4edf1a3c65a7cab16d17c7076592ccb2c1e4e6ae3e9fb8da62460e59d61f9c2586eaf1bbfc78ed4aa1740c124a789657e10558ded8663bbabb37f96624fa87dcc75f6a99d19f2c0b976d1a3f6558d56d6cbe9d373e7c610434271e6ccaee93921f3d225617a670f07c7470b765e41b8631db3f2ee61772c839d5993659a875b9e0f4fe3194277b4dfdee679387d6a991342af56a41d4e9f9ebb29c28768f4d680e88015bdd5dba00635a81501ba3b55a9ff42575d140aefdcb3a12e21aa85ff7161bab72353c83ae938e6dd65cf865ddecdcf2342fa35b9168f7495ece1c031f04cff8584f8340f6db4d146db4bf7876dea7aa95e1b2ccd8a689664f3dc47a0b7d16874d733aa2e8afb6894b99eb7c30e1be570511e95b99e3ebd28cee70b54e47cfaf42efa8d6e5594b9287dea06b2780a554344b73c18d077c180b66d7faf18b4c48bbb176f9582428f61a7eaa558e674faf4a64e939de7a45b769cce4dd53c415c122f329ee6691e1eabd51d7d1f4ee0938ed941ddf1b82bf00c46d54b8876d7ee5cbb7bbb50d6a4635ab602e18d7b01cb30bb1c1baebbe19bac887693fd3de998eb9cd8d731fc4409de8362df3128f49dedbbeec7bee77eb029d028d4632e1f27c405a19376cfa5a3c516f19a933eb148e9d37b3becf276b8f7e0dd11c704cf808e1dcb6e0351edeea74fef52aa9b22057a1d11f7b36363dfddefb3b7799e94ebed026e799fc1bc01ed817d43b0ddf384f03c2955c87a382f87ba700432ec5adaef0b2723ef64a804f4fe2c2d63721953187b27c3ccaff49e0eb63341557db20f3e9a6d8e9aa0f3adb71e57103333e29d1971b9cc87f6b872505da1a68ed84f1c418974d587f81602ea635ebf32204ed6fbe4c35cb97ed51e2d88f62e5d06443cafcccb537565ca3823636e275098a5e2aa59d5e4ea3c34a083654caea57a75669314a728d8ea57b0d57956bf2cc5564d1e6163398ae5276a90d8aa5d33bbde3c0de85a4386f3cfceecfea8aab314959ea8b1b1d7868e8d8eb9d4563109e8987ef51f9ca9bdb2662946a5032a3fdf33bbb3814efd87ea0ba8aa5662962a46894c849371e1645abc72515bd4cb8968d790fe24e9b2b6bdee247659dbb19a43bec93728df47c497629fc0c666818ddc30ae254e8a6591bae42b276337169b699518cef73679862dd10b7195b22bbf435eca17a50d999d137946a4ae0965778eb24b4bd9a559cde59238d5581405632f0f162ba910d75b6644b3f298ab431e6f81965194101a0fe3641a4eb7c4df64a2b12de9537c48090af3f8db96c8a83cbe931072132966caa14c6c6cfca561659a8d6b89315ea536c0b5c463f5c91a7c727792c426a7481379d51a342a102834027a5f7f80c96d4b96d4d8178538096d7cc70b87cc60fae432097083cf35774d1be918173a7383e953cb24d0a7382dd1f9890f34b1b76bda12284c7e70723a264622661c3d7e545a42e5a15a44b35856813ec5b721443899e9aaf8219c8c4a26e325b0b3e38084ba869c2996fa6d113b29aab9f92bb2ed4706e2b080ab5ca3a8374ab6780bf08c9066730196a9e15ae6e76d43ecbc8d886d37385e98f3b71d117b4e09f469d6a831a7a9468e5b4a52af9845977d2cc033cecef398977209eba59eff0966ce1976be15895334d7429702d8ca26db6b8dad39e773b09d076265bdb7f20e61db67956fe81e7d4077e1684e069099df5f9fdc09de8db6dc7bb06d5b0f46ac64b51e05ec7bbcd53eb782aab2ac3eb5e6606ab40c113525538c770cd5ee60b51c94a0f7418f5cabca7de28b81589ef0adde7091ad3e39f79c0fa49ba120f43eeba6059f6b52314bc734989229c6594e332a1cddaf7a8cf157776bddad35b345fbcd899007a8e38e2c4f8a9007e865b1b0b9d768844ddfcbf15a7357a03e4fc11b1daaa10f4208ca404c9d9ab223dc09e560cb77ae39da978e78f90ac67ccbf72b2a6e991702017db0faa159ebb986969bd7e79cbf1e0fc4c2eaeaf5c1a08a876541590ba1bd482516c20b87ccac1012a63703126061e7e527a53033d0fba61533a8437ece9ef2b525f09954b57307626385f5b6215e1f42fb8660831e955b6f62fb366eecca100babd2abe6b16133b2babb5d39e8a5751b362db071d3d885a3c9aba22eaaa3cb7e8847da51884786785a88c742cbfa04c201eb20eb201f3d2d10e8b54f590444ca76cc3bd1e56fb48d16341ad09b659d2f2144d9b5eab57163db2d2b6b0759cdb22ccbb22cd72eadf996ad38d315c22ccb7a6b10c8c68d8d1bdbd89543e5ed52e916d90e25af92896ce8f501df2d694915183fd2ea3f19ca185e19a8c974ad41ab0f84033f786cd8b44b1b47eca5eea37780fec336eb6f5e1b368dc67adb28622f25af0d4afe4e1b37963acf4beb9292eda0cb4b6a4ed01bd55abb035199556dd8b497d14995744a9b47c5c6c9c0d8992a3616c2c3d87132304c94b60cbe54ea9e9ad20f44f52e95b215eca44bd3120b0fe3c7c9d01ad7024f6b60fcc0f881f163e16db4e03044364dea78e5e8ef0865b05d446b60d3cc460b4ca64be56b2c84d162365ad0685a6b190f7863439707bca9de6f972c335d0b8ca11e332fab67b1eedb3db68aafacf6b1d569f6eeb1d18246d36cc5b6aafe669531b571638ad1a716a34f108a28a8ce6af1895652f4027a20b66a97a0fb8096ca6cb4a0bdc8df7093e3ca9052ab4090c252da73ecacaeabbb7bf432d78dbdcfca56e70a74187574ac82da45305644d99d9c5d9375d99561dfab4a44fb94fee1f4e9dbf9619b5b50daa28b744477b445b64374cc894643ef6ed3f0c64e4376db8afe72ac8b91ad64f76680917566caba3b73a7b5bafd76ddfdeef31504963d27b2dbace8d90af676d0105494363cd4dd774d644341ed24123719356434f0c4c8563277d061886c567e198a4ae5a6435ca865ece70408244584899a3bbb33bf9d1d2dfec3ba479923d031a0b77e7b3a20a6ed027410ed9763413fd5172286693c83f24153ec98c1329f5f0dfbf8fcd8995e9cb9b60803650f07461dfd45e92e6a8b508575082902fc9863ae0c7b6186a0b22be33789b26ba2d9a5cd2216b5c69cad84dee2d88770326d888cdf64a2ccf3f8188f19b6fdf29891896ca80f679bc33e92578ef61da22c5e420c717fae5ae7b24bc29edd0c00b1fcd1751d5e382e1aba1b784e349a19967f194a12d90efad09d7bc887a3cf8642a735cc2f02cf8946d326c012e01979475f0ebf9b7d0062bb6b0d621dbbb0a31c83c13ae682758c05eb980ad66597c78caa511086b5d65aebb736450f3b0d61bfe1b05afdaa56f6fa3439da5b59f85cd6a36531712cdf002446bbe10c95fc03129c8ea8b4ac36b5490d99a20101000004007314000030140a850383b160249247f4300f14000e8aa85266509c89a32086614819630c000008000000000000018c4a8200e010440b8f063d76996cb7ae3a07e035d1d39d9f4a213b168675ec2b1c390676ce607a1fc8e8cb70294378f9a658cef1010e2c1fa5d41448908ca360dc573a72a6e68eb3d390bfd3e773d8ca46de51a9b194b12f525299b7d4819df475da1896bcdd963ed7f97671ecfa5f8754e662814634d975a97605b96c9895af94b92c13bb64818ca232021ca375a190543db255bad0471c50d60c54091d7813a5de6e17fc488825cead46c992e737576e89fc07411e3e528bd0b344a3fdcfcf0e52cbe1f667d7c5a1506fda5ef7cb73005843a9387f05a30cc71d1ebc6aadb21045fc1d9a2f39b70c6e3f80075dd29dc0b45b8d72bda52ae21f24273717e79c7e351c225a012c7c32ba1c211b6b1972827c58df08fc1b95801b1521ff5844ea061591cd2d97a10b0a306e81bd1429105424a89e482454db95a423f53c70c202a022c904c81cd2c15b356585a1ccd65a576bf32b2b80353e8def8dae2dec69a32c5c095b4cedaf2a56e70f062126138c9f265c46bafff9a70ed7f0202f73975d3b95a756d7b863a55f5077a84d0d6c1474e62c12f12e64d839e0553a58947473fd32d584c598017301607e09421ae511fb717420a64566b818f0f1af415f7fe17721daa0ce032fc5034933eda371eb49b9bb0a3d9d454f7503d6bbf5df91d7b97fcf0ef8fe1806a838243bab7ae73ec04551a0b5fea718c873ed3fafd35d4a8ded0526fc1688394558c96592e30d94bdc924d778dfc6afb46bfc54d8b7607dbf330368d0880371e2e6369ab767d004b1ca828c825ef4319d16bf4536485893be41992550836ff8f6470887e3501b3eb5e5993c7f8cae51673508f934a2db426355031a91757f044db5b3036dff48aa714d274bed1691446f9a5f64e810f5d38c0e567040223b87435e681b91c2c95a1e9de9acd99e16e04d3793c207f09005988636551be87e49b641242cfbad07b0a093279b33504725ad217dca0942c340e92cb8ebf4dee24571369957c0153aa5f15730eded48338cf42bf22dfee3da951ecdcac02cec13f5908e2e6c04130e8465e2ba0aa8d5199c5ac04c40cad53c57baa213df7d853cbf4e62e816ffbed812b35627879a4fd3f113ba7786b81e9eda6f0639416e2189c0cc805d078079b5e3286456c9df4f50772fdae21461512ad5fc5e2f9c427a52003ba81d4118fe350b488c7cdc5e373c6d11d3061e23f0316da3da1076d607a44b83c2c31c7a852a6db1f92c7e45318f8a2551ca2273402aee0e8cb43473d4538bb1bae603a13931f96f94ff94dcd5aa70aff9a6f05b26a97fbc3b08f695085aff69cc9c388545f3d3fb1b9c273104787630e0536dd71eb2e9b2b6d38077de3f1f18a096a0984e4ae22e4cbe30a7c6863a00f93913daeb6df8f2828b2d36013d073b0adeff16ca149eb788429a76e56b4eef7e5c4e25ee4033635ccf809aaac5271ac1f4299c9f4e4e765c8891eeadfe7c49b464c2c5df4155b0668fee688ba9cf26e0fcbaa61849c0566bdd410ab236da05c4452a4fb722ba1553a4ca801b34521ae914748705cdb880e936af5d3d11b99f199776c44a640827529c44b62aa24492b48be4185c9b25c85faf80578d1962d15024b065623e3346857edad48b7bed1f1ab9428bcb077e5148d74a4bd72403cbc3642b71b15851a92f2ea8b88163101103d1c29a9eae527268012e706c3347f07d83148db972a1621399e9b1469f883649d28bb25525ab6125def46ce747e2b7849f3794da0564f0100e4339d0c8ea09728d10513f0cad36542017a512eab5fcb2ddde14a06efb395d9475e57c3245ca1b3356239f5142b74e8e548d24264879404cefd08234fbc90e56fa54540b622f7eeb7e3f1540ad580e1dde6f56a2d785a4bb922b0a732347a7ceb5792480376f31b2ed69dc2ef1e54323cdc98849de918993ed1bae4bb4b994852ff8953edb15190474822d6b0e569322fac57ae22e6bc0477b17790272cfdb426d6632e0582e6c534da8975e63f6e447699b7f0466a7598544ff3ed8662899b25ff85fee4512b3d8581112bb8e0ed367869c14c46c2d3e704fe2f6b3527ab2889f72db8e3b45617a2af174b7f5febc2c071b2d313195deae2188f7500bea7635699bc68bcc1e2e27d7a40eb6b506a14caf2985f33314e52d5713b3e628be36908a850fee34da0ab2c55202d2367f40dfb005780662dfe4f18d5c1154524303257cccbb520f9573562a1f8c91d9da8db67e8ec72ee0e41b7d7ee4d11b399cf4f6d7671cafca10483c74297271a3af7476d4d222b351dea9656d20da6fce986eb81cf4881ed8f1dfd62c2c91c32ba5940dad3676d40e282419a04c9c0e78bb89aa3ba74c1b8f0e9d0f5621fc093f4d8e2697adeba9f602847b64056db1d69a8089de1935e163d20bc7bc9c225e680e4be6a59c239993d746626d9dd3963a78362a304ac4b4645e3436c3367d2448f13427b8d423672a452dd6bf26fb4a5340f4dceefe06197c067090fedf12efc252367273e1516e7c5f98a5132ef1af5bd2cf761faf4a429d6537b4636a0774475dd21a58effa9ca6e049330bfaa332eca34039d225f0a7fa1c9807b441ac239368b58fd538d23b8cd3dd3fe1a9124bc1345e21cab7e49ec8fdb594ba0dd036da2d052fcc681f4e27661f28045d093ae2d4da90541285b012a6bf00325323218573a68003e25661d36ecfb89c6789f0d79b58be99920555be8ab3bb7fe0faccf660458c62b1f6744496cd953cda2948a475ebe192df915ee40338a13a0b30fe256bc01c2ad4762fb3b686f96c3181df93656c82c91ee266093a303365cd0f801f746c2891a1f509ea4b831ad9f3239332e4c16747b66f3a0fc4fd29c87826fd90ddfd03510fd071656444ec850134408ec525214d729f55e798ec9d9c83972cd944928a056e8dc489b4097d605bc3593afc45c083101b60efc298e128e4981481d300049a9255a037008730289c03e99b7604ace629de06752f2e3ecb8e52a97a949ca6cc66b3c3d78f4b468e3d6c52794588ecee6e32673165969acebc3aefc2f298df04e6ee7ebfa682ee808244dedd2422f486e4cd9595caa85af9e24d2207f12686d7c2d5491e7307c638307ec9e579b1368dad3fa014dc231f90a6e147bf5e6c26ce6c8b633c9d3e0b2f77f824de7592d566825ebd0236248bb93569ac581ff1baf3adfc97e5400e6a91517518d15bf33c69565a0b45ad63c626e4c3db66040a1cd59bfce7cc6d9284b65fdf2267891b460b01a0ad28b8f6907043f24dd6a0060d29683e890b70ff0597315e0b165447c9f63c15c10c733b44dc6d5e5d48bb389c85fdc24094252dd3e208e062bd2a8405729d8699efb9d06797d2798485fe79dbd5c4dd342188470fb02c9bc13c0899155d4336ad9b8dd9686048b801904bea85852388f84e7b03e17b88106c755916aa0f3c14158d8e5d57523d1e082e3dcd7f5f726f9c54ac36b80a37142ef3760b59f03fa591e45afd4759959d3da0a1dfc784ccd2c17f3798176c72ad101e1974500495863698d192604ac794ab6c4658dcc1e6119bbb5144cd513047d10864c85ae9802f7a97b5f0f75d7c242a4c631aa17cc74c1388f2a4852bd8ee8177e500155625dee8ec1944a8c9a12821af634c53ad95579bd20ea84fb57fbaaf21882ed5289a3b56012ae093a4ca817a3c76c8939f1e2be7088579c0138125a0205d32da3c76b473b4e950ea502dddd1ecbe92799e91062ca4cf99b170dd7a30f70cd3d44e46eb6e21bfc66250e810d557fd2888debe04e6d16fa679eebf4f38e4386937ca7ac25cf2e853a24dd54b37dd741a82943986623c8d034f05500819bfde90d766adad185f6b8ad52d3cbc66865f88b1ccf8d01e97f592c50897352143a0acd4990d7f2c0cc6c5e7553136338860e49c3350e75f5ac7d35a23b70b04d1b3651676d3d544801a6bf76d94aecc6bf1ef6da657c5ddf40a8f730db8431f4eb0157f75b472583d353598a26fd98e118bf70e9ddf5bef293c20c7a395e44d019d8ae64f3915496f3adf15e43e860a282f618f4a944459d8f146724b42a6d161994e775c6da2ceeb7b54bf5b692bc12681497d543eb36619ab3bc3fcbb4b41d2df9193e12a85fc83c48a906f79bdcf35857b3904cd953d466dd0b335fc577b3c23e91947aabe6aff63c752dadc2be880fc312e56b03173ac50a016a8873a10bfac48bf485371813f16cb3f72543c269e6003ca0775d4dda97df082f106f86a05e47c18fb8983a20d5b6e12182eadcd3440df502db0b4792eea770600dbed890dcd6f4767fc95a0c0420e7dfd2f11aea0562f3c0074ac2b48b24611d73c85175bff9811b81a8bbb361ff35e0a4c157d4e874fe723ca02fbe1ce81dca56644002479361024992df002d100e995c4a1ba51a2784da336cc4c201a4898b769260fdbeddb4791ee06597f12e63a9585ef7d4a7fe0eec7bac313476c3c33055d1c4752111e2a45e6c22ce8e16b618aece2cf5e2a0c1a48ab726bfe1db183b99386bc4e418af4dea39c211e70107a45a423902939127d90b3bb6fc0f9f9a3fe187adbf447b2f1c06be7d4f411008f5880cebcaeb55d2d884fe5569957139fde0dacc922b9c52b6e1163f8740d344df3fa280816e74c15ccaa7e5b56b258cb4d0be74e55f854ae99de80d14d2d83570040f582d6b9c501076883a3588a151282116a267e1731a679e1b07fce8e57eac7a2672627c2d0b7df2c6bdc251e5e02af3eda1478f0b61d580219c20a6f7904dc21bc7c5bf7b82b5c06ef6d4509fa9eb45ca8abb2ccd5d5a4cd8a1227f027a5150e5a220082aee729a67c08af811e6a2b6915d348ee50001416b37835e3b16a4191545f03021fbe49172519f6fca828419459d8a8a140b34d3dd226d5b543765f998aaefe4e552d1168919c93e0d4b686f26cccf4d3c12254218b8dda9a64389e120966f1c01afa06cb12b56099e5491dd3ae59667225d82675c1dfba31d9fac454ea8f0c9c4df1218a523815c565712de9754b15428c393a0a723d27d745af576a315670b970202b76869794c6eab43f854e5961c54ea8016798eb1ce84789c2a4b0127e6f4a8e0c36c468d62fe42c6ef71c74f388bbcf1a4b5d9f5a626d33ea70690aa71c6565d58cb782ba761c0553e7a2bfdd8be2b3cae3b00786bf9c175393f9da83ccf06520e101e064081b7e623c64f4895db2e7999d42495a1a6c908a2ad93635e1d55df83349115262b95eb90815c38c4f7aa38523964a56297447ede8b3f1d834a1d5590d3f5c7ff49ac954b16a7970b9a33890950198cd4b253887b62a26803acf5ed2f819b8c34976789d0358ab6a4a8efc66244889767f6a83d95124f915c25b09abaa6b8a29ca219894ea4ad39adf7589a8c93ee4d8b8953d0d93600edaf2e350f3989b46d9511cb47f2c217be8370e001b64a0887e5c4145f951fe3246e7b4b648ad445c73f562979ff4560abbc6a806688ad89963964ca9d28ce39e2eef1827982f0deb78e3468da82694d314cb959abb5d0085bf11606b9518c75062db4b270e718ca380a79399121bfbf96f126bed0ed230c0647489d49885f0684df7cbf1272d35090164e0195edfadb3e484d1dccf895a8af5ccb5e7c2cb81c2e0e809394f212a3dfd2b97ee509f44f51355b12813b2056305343f7e821b6c3e17714bbe120b3f5210ecb0c5c8b570f1550edc01a5fc9ff294325d012da42207866a09319c34a580189f4e0e12454ce9616c147cb69c7810f0ffc73fcfa9769ef9ace841e006d4c6053c1740e6e8a66af25e26b392869cad5ba28904eb5e03cf1271875b4f905a41a25dc2847165abdf3b57c6e216116d20f44c7e72ad8aae8c3a03e331465fa1addb2327d3f63811b0e84f89e9ba843872e6802915b20b0c4c53a29889c54bf45114e600292df5137969fb5bc93eddad1083bca400a34ee13879252caf07034aadb899ba2859502bb8e96069b01523ea58281062a00801e2530d09897d411fffe0bf84c21c4d630198e7cab332e443d1c2c80668a898fa182807ecc91aa923e4aa65709f7f3a9c02b3d39a0b4220c68e2256bde8ed52d1bdbf9bc1aea3531ae8dda2f1464dcdc8f7426d554cea60681bc97c7f67ad5e578cb9a0aab42446e359c11d8a37061070068150b6f7990f5d729f4e02cabe8a90f1d91622f93eb45d6e9f13fd3eea48bad61d61e83a9115a827a63a44fba11e1bbdcd32f150f90216235f445b3e31e573edda1ca1d06715748fd33b55b8d1d182f5293078fc033d0c8fed04412e2d51a8237cafb691f1aa4b0f6771321fee828a6280660eccb781d3c818943a88b9390b1dd4bf7c94bda769f204417d929318ac8c7cf9674a3581313b01a90fa5323f8609db19ab9dca6032ecb874801e18526e61c61a9b2ec749a8cf92809630381963feff1abcfc1e6c2e9f5cb46b61f72b727af65595d1e3ccb6cfec7d18c012c81961d0ecabdde4b876af140e2d1b76fe3a1d321176f1b92c242f3e8d6ca66a445f11401b9d339a1959c7a968d999738f015dc84f0dbffe492215899db47f6ba830e76db8929b4a3e24a04ead2ceb6b28ca5ab657c246b7a9fb6702aac4d87aa63624259580f23b31a2dc8b5b4f50c71e2053d5cd53b3f779a1386694b70f1c89413cf9ff65ee85e5cb52420f8e5a5713d6a25f9cf8b06c14b2f824c68b8764237cd9fdf6508c6cd3dbdc1aa5ed9bf206402dc8980707280c649b3312cb241bd2fa4a22d67eb13159ac6a5a4e8308ed6d296fe8ba1a70583d9d903b2317c3da1f6b99942debbc65d7b8b44b74066e22826cf4c6d38efb6e4acf7d4be312daaecf0f2b77189674dbe2c1874bc6a43a21ce445f8ff803f9d054fadce55b24e32a72feafe2e2b550cdd4bf9ca58ea58c5f2fd2d101de70f9d563645164f465222058bfefbf4ea5586f7d28b55339b92646d76b6952bc8b0d7a08fff46d9cf396988cfd460b5c4783ba311606e3b8fe4cf431e628dcc2878cee3869c2d625b12096c44e7a7054b138876d3295c8359ffd2839c85e81ff7b6ec17f1d2ed35b303047bf0750756081d2042ddf674ed6b46bf1cb399fb888e32b41a034cfd6d3e701db1900a0d4dc6c384d5370676bd1e417261b97a5fdb068cb519502d15cdda944c5fb6ce6154414f83f6d83c38ac7122579b2501ea3ab379964a338730b63e883424eb12be3bc7617376652cd052fe54f257260761d7ce51342c750e3f54b45a7b72ceaccb9a41918382b167a6c7ee352c2f2c5d7352e8ae44d0c3ce3eecac507ea52057fc4d144e2729fd017135e6d5d33ccf56e2c0af94d8c8fbc7530cf28ae81c229ea1d16f7d593e9fda212ff141c44e0d1eef4d86f993b475c937bfad5e809381b30a8259a2d7fccf6a5a4e1d8ccc3476c87a7c33b1edad6484ebdf158690095d23f1cd2b0e8d8677b3bba9ed8cd515cdb4883c377281509ab6b0201f1ab21098c215e4bb9f80ab6c4f5859b28e128fd5ec9487a4c771a42e9986d1900e6b0b506c233fe779da7560837d57e02711711d4c9684128aab40ed25e0a3007f422c7f41785cc2cce9ed247587d5865c6ad10b64da503c8a7518ade9f3e25ac6365a613cc20485aed75f429bba5ce848367390b5ca1375ad7c0939483627b69459c512553028b42c522f633953ef8ee5ef86940aa67c6453a970569152e2628586798f241918d9ed0779a38add0ff0c392d465a8d481fb83393308ba46a80af963805c5f9dcb74497aecc2911460ea8813deae46ca408a497df20b33d01bb2fc392c4a6010713201c7af6174d4948c5352815edab6e47ea5e3c289d4b90b3b54b768bc3f56b96c78b863c080c8742151841afaf97f28029f4c597b454da825e38d649711a8d18028adbbf14eb7256c8c77aa0002767428ec06c39a267c3f28f22f95e357abe8bf5f402a37a07dc7aab27a51740b27cbd966efbade8b5dbbdfa51af2fa85799e7bb240e641475a11fab5fd951354249ca4e923bfa43a1860c7fe070e3ed2fd25e6e570135a0ba4f3a720a6ad2e69d4507a97647fc84b4b8a2dd11f9492ff03172b6d1a9c0630e7df8b1690f7f8bb7b0da0ced8e980f7803ce578acf3fbc87a4c1bcb7213df3377c6a14c3758462190216cb035f16436ff933e66fd5a1cb98c6b159ec904d9b21b216fcfce6cdc171c443a990792da56fdc3f9a38e45408d5a556648866c4be3ad08bf8b3532b24d2404287a0104df2c9e02d8fbb33412df51218dba7bb002782b2db17c95582b2da3b8393227ad0567b55d85e809ea47b65a75e5b37daf311db572fa4642f8660fd446dcf627a55efec5b5eaf19f6eadfbd9cac971de83572bd13ab97a0f46e21ac406d0cc4bcba0988c528f6dce865d3c260e904ef6722e74ef4b359e4d510b61a6290ce0b81ebca96e71b31d260aa10de8382a3ecc80fc801f0e20066c8fe40f9539e3d424cc418056322c4281c132946614ce418856222c4981c9b4e7a61acd7e57a914c6c1962148e8914a33026728c42311162148e8914a33026728c49b121a017c4f5224d2f8ef56ab05ecc881cb95de9185a6ab4ee81c67c8679d5824ab5f39febf0e7db374e8ef74771a68a2d17fe20c2d0debb5d4173ca75ecd4c934377eee54676647b02bbe13d5fe783dd9a92b1ff648ef53a323b62729eb752ca8d925c6bdfc9f39de62156f7f12bb89e25a77c4894d1c510aee812cd50114f977810df3da11ac5659c22c300f97ddaa7b7243528e14905e81c67f356699de2ef7a54d5c6fd5390177644f819af5722e41e5fc8a8808df6fd5e948d685442e5e24fce8af5925eba2c79ad81c929234f8326ce361b84f02248db0d4ff15df980c7f3f24e3d1aa73cab14e1e922ef69ae3bf9e75c7b598f47093e1a50e5f2ab99ea3715e85202382b84dbc11633e1ddfd0d51903b0fbc7dce8bd68a2afceb36eefd95dc98ae15907c5f886667979722fab4d3738174bb4ee7ef5eb40d1464c0912005c64315b77c4406f2658e7bd5f839194f49c96705ae0da7dadb3bca3a22e76e91699a82353cf30ba4e6ee3246a34b98e12a9b101689de8246dd5eb4c965b07b3559446872644a1e6556d86537dbeb575b1965f67beb0d38e58a7b705382b99ece24a0a7ba9b66e0e64c16e9cbe1ad7c79c4a75bd1b45b9f1ea9ff063382de6a739bb59ff2049e1f3257013abb8ae0a69d6b1d6036b9e57be46a0d2168a146beac7d1796294e97c3dcdb4fa32c74ccc78c0031aacebb8b28bd01a1868d5c57d04113cee08069306d28575dda50cd6bc6f598e2839063a8a5dbeb7b6cf72442c134f2422db0525af78194267c9ab0acc7fb87583f5335b67d72db9592f1f34281c17ba17e1118b0690a1b986264a77ab7066d79d7ad8da13f7c089e9dd33bbaee0267c3cf42bfa2eeba0e53ab6ac0179a2aeebcea580987e5fb7179df52b70c53d3ffe9c956100763a1bc7604b6c1520a49d7421bb4e2106e797849bccfb78981a97b505912037a1947614389889ec3a3eaa2e369dedd4ecba343d7e3aaacd5bec8667d7addc81a75a1255d875e00e4c4a8698c28c5ade384942d2fa38b4b24c446258a6317504fab86f1c675e57fb7af042ac15248c604c53c2b4f41cd39de742101d9a8a9b997e3c1ff223a83694540f4b347a0e3d0f9b0dd5d767ae8303064acacf2c611c139350dddb74932279e2e6b431c9d83a893a9c23a2b9b8f8693416d13982825e518cfe4d9247b6d2d3ee57bf3a6d9b686d71e8e5a1a06a61b0678a00e32f6cbdc2e9a16647a10683bad47260547d2fb4d6a8ebf8a1fe945a8fd661e55001e40bc19726d6cc40f04495f3a1331a260733cb1e6dd9e3f8db6e9cea7770054ff901507d557fad6f13e288d8080273181bbb09a31c3a31e12a4786d4df3fd404f9e7ae73f59ebddaecabe63e27b8fef07f0df997df9181030f928abed826039186b69cba9d27a26e7e6b855773ea7bb8d66b369557ef9e7e3dc43e56cee215462d4a857310538bc5411422c5fd69dcba08fc0760ea77a452d6a522352e63af6c35f049a33560007f4505675899c7e29e344aa6fc8a2f3ad9a474fa536969d259e6d72b89f15c188d3e9f61a217375260004a4934f41cee0e6718936e6d0d68a2ea3ff8cb895bcedce484fdb0e294332f39b0ec84cd459b4f4eb8454e0e69ca066bbe70328743647543be1c48c7d9f53d5ff138a3df5b654401f5e7c9dd8a55d5ff4061c1bd75f638944e81019f6715d2781cfb370fd4e3fea0c7d5344a3efa32404a5ae3533ee5babb63d6b334a14c269aa4ee286674b24accc5510e2bd65be0466e1669a7aac949984cfb3bdbbe76b5b62cd8a7e95a4bf52af2d8da548e38ea3321b6087e8db8361ffe5d2bd55b9606fbd6b58cc9a53990258cbf8a9e281ae0e1d68f09fe38a96da90f7059a4b927fe48c10a819c2b4afd561f20945a516f5d4184ac119403efc61204be353e544a56b93d43e111363b25b629b2477039af727ce489b9c5d5e6abec20c6d5864d30a33dac2947c1d77a4cf37e38608f301ab0cbdeee08f7523af5065f5b1d181f5d7b018c763c1bf33bbdfda4bb0c429f5b624f47c38683948588625e7bd29788d71fdf255dd127c2800be348c7f1279dbbc664a90b29be7d9e86a7a414d6fa422a6b94d592c658ae2d4c18b8b66b100d084bb89bd52460fb42e73561af2bab2842baac072bc92c1dd3b15654cfd890c9e2199649a82d3e016c6deb443153e6c8bd384b08516fae2c48b4363d5e4a39add5f7144939c7f87c0560328c09921089256004be775ccf8d992e034ff1f66aafff246d51634844434a282ce2a29efca86c2071ae41cee525786e13845e65b0a4ac476ce445d7e7c017af160695fcb8ed1219cd2a5de541e8af7e292905c7b69dd000bab3384b4cc096bc0d474729b04e797433bcc12ea3a87f54fa03ee1e89677c5490bf81cd14f11fd9763718db460a2ec6b32cfd74f9587a7ed42505b0c78573159139c0935272ef6232e4cf248cebce7277bb5e2d8b1311475597ea125d44f20747c34c47bef0ea6c328ab0fa3556ffefa635f8f9bf8100aa6f02e2246e230114ed462702952f8a597dff7136f28f145521504200ab71fbcc2a9a782c244d37a47e4ac74cc5bcd61df2fc517d508f8d73c22d09b072bbe8f1f198324a0a6cf39a7b8cc4690bec47cfc1fb79a6029834558a74032ec65d26157a52f62a40a5490e5fe9e6f21ec1bede91571b6ed14d8b68ff9d3d3c0e63fc67244e9d30b3abdf169a64d8e57927eae7430517686825aaef7bf46e7218c5c15ed7ef518a2e24f1624870ab132eb2cd09b0bbf7af31cdc3e1a09d4b8c961c635290574bcdb30a0bb3f4460bc5d1c1cc034e591d9e242b11dc648b943e908e945116dea80f79c5f108f83aee76d1bd6c6319b99d980fcfc352cf063ab62b5a186dc3873c8d5b2cebafc3374882558f6494605c0ecebe967fa3a8d0da9030a207d14d9ee9960ddf1a1623172d22b08330caefd039f3f1c28390d330d27030598533cc0ee5c03afda932dcb0e9d2262fbc470c8166b9e35afddd318f184215ce37d2e17ca8a199a6a02897d8173783f1a6217200962cb25c9e29f070e9c7db3c19abad35036e48fca67a745cbf6cb9e71ee90623c2c0d4dda96916437286889ffbb6fe4e1e5fa60a5d2ee5bf11c4d40775db0ff608fd1dbae38797daae5f31028b23ea587da2fdd77628a076c0af13fb9b08c26139aa2f32bfa09be6fafe21e6e80778a7bc5f0bd28e99796647d8e9124f5ffec4951e891fd1361d0975c4a900b3ea4779770cd7221d53fe5cad6580a494c57c7caccda9196368db5d37ab084dc24376db1f79a6d95edb143866a2db3962b1d15dab4ca64839bacbb605af4ea5940e2e3c0ae074a541de92a6ef6b316ca5e0deeef1889e3c42990ba891c0cbab1159a0b9bc07c7a116f0e91b43c340dade96d0d088ade85c0221c1dac80ec53de3b48989e45ba1ce90b86341728913c224a45a2709e1199376f2ed25e4543d3a10a451c2331648db4035684de2d8eed72e4e41675cbbb05a8340e8eddc77acaf9ced81bf7202f4e69db3ba3026497d175fbe1025ae85f5c0ac30f83591d3cfa7a1ed6036c2a0673fb38e4773d4f10e5b201253fd1a4a624548f994cb86185328dc7dca7693447e6075e346587993d0c4facec266a4db1e242415ce8dd8e4de1398ffd884563d98ec94bccaaa6e507b3c5a65d98984de09e1d4be5bdb42f31a2b078f57e0b60c0e4ecbcf7ad4d8cfaa2335ea8b62eb1ae257faa183e588da9da05ed14eec1a4f5d0c04e622f9a6a05efe75cc8a51bf11a0e72fc916cff4f561bd6a23967624e46c592889f79b546a94ac37a2f51219762de069df084411b51b0d6e151daa3ff040a7bd04e2818a82c9cf12168112e6c43a03334cd88e82fcce546ae4c685859ec7092cc866941777b30c7021912ce120e74a9f92204515e3d12156950f4a0c2b47719318de776d65599a3f1aebcf8b089a0427aa5e812da5c1b1b10da45589910c7732b9839f483384869a6310e6055c1e6c7421f0960f566d07a640c09441a0d302888898c436d4f412ba37c4c28eb6e299d17c8bbad56549df10f1636cd090acb8ee82cf1c92b77a364b27a136e418661517115d60fe0458109e17e189e83ca6c67749888e85e8e14f67e94615aef4d6bc69ec00c8f40dc4a3b63a23970c00c6aafd4e2ae57a25c00b7efcffc9d1a3fca5040b9b6d68ec99a29598e6c97d20fd015d11884810017fc32ddcdaf662c5c7e6f1209cdad672b2d5581b02a5ee53017d5dca311258a00b442b81f65650b3365c27003fdbdfb054365e954a16e9ca11502c7118cbd98bf344402c9216760e764ed96814988e32e582e059277ab4020579d01e5e82b594d2cba52af5f17a4ec0f0eb9cb5df7ba1bdbf41be52e85a8eb891d7ebc550700cccd210c0aa5104c54e93e19d672cf172b7c7fac750604b7911fa5f3b473016e1399d1dbe7beb10f8cd05092412c33fe3feb3d844d2704e5ebf5a2afc64a23686f001da7cb348d9ec013618bbd7e97c07bf27b289791ae351dc5641a30870eda193ef5ccb6dd52517b7a5ba3c7e25fdb096d48ab6db4c8a5b1d9d27bf62e6bd94a3529c54b9530fb26ac5492f5dbee046e88643b3cd0792de7f376a3a47cf9e53ffc5a78ad1f5f493b89fff44b79d434b7a3bd1155cefb2c1b8d392a937ce8b52d22bd77717994440f132d3773dae85d5a636009e1ba82b63114e913ff22f8126b6722d7c50fd2ddeb6a0005b084bfa5ca2f0336b9d891362842a461d5d1a9717ac731ad61bfc5514de773a81164d81d7fbc4dae92a43fc2f1ab3c2ba194e56f7f43a2a80e18d3d55b680b3a45761673a51b71277bf5b81f8b5fbe78e9c778eaa6e7f125c9210b98cdaef9c2712baf27dfdcb72f000761e88d810a988f3de7cff68853cdc7031fe9fe7a366e20c650c3c36cb0f29bf4ea3e6b9b688bc4fde7b7c1833b1bdc9acf90ec9a337dc1295deb5535492590d108f806747935c6b4d03659d3c519c36af4fd3783b4f482b4d562a0a4db1d6124cf64e72ec396008a2aa4a78d90d7e0fad4d43d3204da11eebd36b308cdd6882fd92cc792e236b00ad9fe23ea2e7845888a9fc2a17c32195cd68a4198b5f31f77721ef501ca97deebf1583ee8c42495d093c2aa00a003852dcfd49767c780bb3de7510fc98bc2625a924bbe7885891b592541dc95f679b185e24bbb035835c2c2175b2e663a2978e5828267995943d3416718a940d831c59e83ca863eccef60a1dd99fbe6f7831ec4433f618f54b681b693944b81b395bd14e7326d27ce3a419646e7e5f6413f1b21f7a8d1a5e91dc4d6eba2a6d375ee2a28f4574707ff9c3686d6892a70914eea2774c564d064e244c5cc92847eff7210b1038a5142e7bc7e0c0d42bd405920722850baf3243b039de4388721fa203709b389fb978584bb41bbb8991750f1eebfe5a7ccfac1d0352695075d5baf4d244a618ee8af9674dec6252cabe9a1dc5783f1a60d780e5536b0e7e5eb19bb0188557c4bc1e6caacbbcaa6ad815309dc59a10518355f2b450b50f49ca0e39a2322dc6aa8123efcd66cf5c575f502befe20a7a6f7125ef81708b822907192cc518e8d4be97fb4f65ef1a4016c9e8ead9ba9f6af22edbca5be62f12ea35a31c8f6444e0c590ee58a1b397eeb0d851245234e6d18c5ab621da33456c042d4342a62f245315df90826ec4e2a156b850c7e1c2113ad5f2ba292cf3a5f2884115a3932e23c181e8b0c4346d6504305543cfb8bcf58a1cb5c417f800e3880d6baad05a5eea20a8d719a929f1ac716f285e1d75fff2257f83289ee42c91168fb808a6cef23dc78ba4ff8aaaf7a249247bf88ba52d411ab189439205a981ec7e577f83834aa71dc148a3165404436999f29a4404b3e12eaf9cb993f9ecc8b2c5ae0bd0e023b9fb893da5aeba67b84ad6095814540cf15b65615ea29930480eeb516159e86267a58f3bd0495800d06122a5fd97d742a10b7a1830f8fea29f9c3ae5adbcac0ca26a3d32513c0d8709dd564363be5daab3fbe12a8e921287a0d1e7104298da042eb3269ae29548542b21488bd5254220eb6eda2c8fda1b7fff800ebe44a8dbe391164c9a905a71d3b1fd2ce0aded407e3ee3fdce58f5798a13fd27530c6d68989d6699d3a1b078499928eb0c9602923a350c7348a0d799f89f57e53946868f4ebd19bfdeeb97202a7dcea27984e4064dc6f23f055533bb29bb051d4de19b2cab87677ce376e01e1ca89f2ccaf24dcc53ef3ad708d8e78f9f7be5312283cc846b59634483c2f2326c821be7d1346002b4a2c5eac3b6b7a02834e81367edc1e3823a9a54d2fc99f8daf612feebc80f3463123d73873f4c2482425a9f5ce5be3e98472a7c342515e028a449f4afff0b773db11527c94c09b87d83bffe194de27d8012938db22956a8c1d0237d8134126de76593b0a7c64a70e35250fbca2b2cfa300e481b76a22686c2ddf2706d1f9a5d4d4c1858447c9345669cc8a22090363a0434900ebb22230ea22f7322dd938da8554be87a9d1aa1842140afb71fa3f0f04bc36ffb2186ec08a93bd0f91960800d3cc6a411cc9eeecc04e8ee4299a83433ce84c41a6d08aa1b1c69ba3f675a096441ed82f9c70bb88513400148de36110f6a7525c3818d38c3e62cc974a3a8baf916c7a6fd437ea547706ce829400bca79a44d5bd5902877f6c5077458d5b0d1270b1d1bb47dad4a8de1685fa5c16b1ce50d34850d7e59196c9bcecb3595e077e70dbf504c5ff83d3f1b0941e7efbb86c5a96f5a0fd8d4ae9fcba9c61ba45a9adb8b9b3bcb5a0fa8c4e98da62c74d336b41e00c023d76116223b718d800262226dfb1068c9bd853313805d19866be2082a4338195520715bacd06f3f53d65991126264ae05718f7463fa2d819d81ffd5996c6b9fa87ba7c2730de07cd541ddaf2ee89e29bb1d675b0208d7dae8bca4bef6096eedb9ca6ec2e9c544bb253284dd547470dc9038edeb3e130106d58c3956c2384ccdfa49016e5f9cbcbd419f73665bbbbb7d70af3b36aebe9d986a9adc5bc0330b727eae3343a3f3913492dcc9e9a61052372743af800082cd296ea5ea352177c3d737c8d8315e48651a7ddafe7ea0aeadb3cf0e2ac92ea532a161391e5cc1fce6e559a738fb4b171820b194801c54ed45efd59910af2ccea502df8e2ddc52254f379558b0924ccbfff08cd55793bb37d93db12bfacb43606b3404570d9efbbd862e9ffd4620d36c2bfa05993e63b902c3275560909d6d0551a60e46a41f235cadf9c7290797022c49c030570691af799a92487153f30f520ba20c0e8c1eb308dbcc304d2f53644b37bbc165bfcd650c07fb22d7c758b551fb0610dc30c7a6b5ab20b8caea5713bd7fac6450df39f74c403c5f800c0e14dd87e38f19266d5eb364170249668bf1ec42a8cdd6b6cf2e10859ddac6d985d385a76d3bbbf0dab6b5edb30b4461a7b67176e174e169dbce2ebcde362ca5818c8c875d1a0ea9312c3d23a57911765826fb16b9855d6eaa7ad8deb0cb7fb41916023d4560c7bedc31fd60261fdaf25c9f178d9b9838932b2f737f8b620253cc552f8b68bc229602349281dd09fef302eaf87fcbc8e0b72caf2e678c6ee1455a26a4557f31368e37aebd13fbd2132f50250f1083b45016605a553c9d6cabe64e0b162b6d443ce489a0674763df09bdacd320fb8fbe6565d8a5f1ec08b92245a891ac2062fe7c7e51cde8927a460dd92f2481fba583196ff9fad2e0b618ef563d2cde6cc089de7c1cfc1ef49dc6b8ec19c53ae100c2ab79b6e4461fc75d19e03e7b335168cf0d9a460366c64da54921f6a5e28aa518643056f9021c99aee93ac9466794083bda0710388e29c68c879816ba8c3a61cc9c215473519f4a91c8438251f800d4fbd3f2fc693d1630019fe557aacf250b5ea700d634789982d8d3c07d0e644f02b19c892b5a6cd0d413dc5f041d6784574adb226ee20af2485fd58bcf309596277f7d4688a846e39eb58a4b764355ef55441bb1d975c211e1a470923c4700c3d91c102c0c7b3a8137fbb3fbddb04a538c2a0e5956ac5985a732e41b6ad39e7038d49c01cd7e1779a19b67e5d4d1de220da2799a1ad938a09e9de00554a8923fd40a6fd49f4371077be959e23eb014087b91a0a700041a3f8a43464504c67cce61787c28f114f3cb57b2515ea6859ae443e4c8a1cb694121299c618cb416f77d0b9ee6441c964a62fc89229a9c000c99627aa1827dc077b408ae7a68e112f5e4ada90e1c38c0644469e0feb75902a5d77a934d28c4f890e6d8ea9d033a822fd787fc6654a2f0d5a6dad60d4a2da4e56116a6566bd29c93d0d4e45189550fec55f1825b00ff366b90fac414cd895454dddbde50098b72b920992c57dd76d0d19b21977f4d555e795454a89a00436b14c4661079b43d14b0367b4127bee184179076e077378be9020b15267d87eb255effb0eb72bd71c390a653cb5c65f3e1034cd2c4f3e0f1064f8e19899c9a70e9470c0d1d5383d71b5eb8fefa12678cc183c1c29ec463de9f94e6fb5e15a0a3d43619b29319f05e9567a125138d3787f646f49081d9c0dfeadefe89f26e3f024109fd036b16563b0fb5bb29694d3b17f54633d9903d97c34857bc756be94ae91b49d312c82612f427ce06f6f1f762deef4249a26a364df8ff63886f04d689b6888eb9a6fc5a641e52c304705f4c80d5a3a58433044b00c989904fc8d878bb2a2b20150f03cb2b6838181d69f07a95038c016c40dbf1117c5d4871c41a6400e5b7440087fdb5dac9f4ed0416e0718003cb48d8c459e8040d0c77a88262f3ffb3df098bd6c181ba292efc4780b511db806540ae3c4b4e5f73946d9a02a984016080a0f0e270d00517044135aee934632245da84a9be80a9d8b0c71c93ca4af34c99fde7a507d383f9afde024c3af372fac2cbffc1670b1304e0e8210a097eb7d0228fce12e608e1d1431412fc6ea1459ed0b0e025a64f6855c8b97ec0452bb7b5cb92827148af7090de954ebbafa647a6b8c0059ce6a0b7a8abd9b5b3e19a63914a2ea1e91b58bc639d224d29adb492ad3320ab54139e15592c2b043f54ad4ea8d8e57d07c4e2e990e8c0f431787c23e226ccde37832e9ea73c31f86be92740c223a5b4478cea0e24b0d2e06962949af8dd2991e3425895a44ac6e9b42162a881ae06820110c6c131009a2970c64131039e3170864131019a3150e6c131019e31be39f051ccb762c2d7bef9ecbb7bb4d7f51709de1ac27c2760cfe846286f5f1b6790c5aa23e69b6339f8cfcbbf7d04355d8e0132e614b748fdff5637634eaaca9cce6ca900fcd0238098ab283417b7e7387c3bcaaf5ae07cdc1ae3e0ad30376b8173716b8c83b7c2dcac05cec5ad310e2e2d04b156099ad8d4b23d02dd3bb00fde9948993d1e1888cb73b724be96625912e86cdb050c574e686268af834844cee803add9e3873780abc17d3cffff363ceec814e0fca50f7721c9d34caa153586f5f3c16fac12716e2602d3fb44839fa737d77e195a39b78f765e68754fd333d70009535a823a0701950ce70d64bb0a6a25b8649da44e478bbe61e8d4ab023f1b1258a6fbc0ebb82b3b5f1f6b75e4825d5634a29d9f2e52f79a67aa8c97d6838aef9c3b5251453ba10c84a19d764024bd6b778f74020cac974f8c640b2c2b46dea6cd412c8b0dbd02068d415a427638bfd3b40cf42eb70596d548b059ffd826f08bb0f269d82d068e82a68faf3ba613cf6a49aa2920b12331e0fae32e6726cf39661cd5a431b070a6093be13273508085a359ae0c70d31284640f8cb8527dfe7a548820f8d98b82676e4ef6a9fff3e0c3d6d5608b4d4f0982df1d37ba62b07adaf0168e18a6ae99769c3c2b320f47ecae2bb47354b0480aa1dbe611c55b40a972f55512c5a3fefcd10a0092b4523dbf5c76bd4a6d6101d1a2a4f55f2e9ba0f6d9425647a7300b5767a549f2199e3e83357411a442c2c7bab1deddcfb3464a56449cba7dcd51baf59d7e5d2859cfeeb334beffffe8856ff0ca14a265f111743839b5c33a408e815a65619638e0e33e63f1ec6b403da279c4cf8353ad7b4134857d35a25615aac85e41bbd9cf34f1d718d4b840132103f530bddf40c8efa897a20fa980773e12ae9e00c030e416c37242a3842fccfa8730131b9ced6e8ba8687141798607e6cfd9c544e97e34d0cb443a91099efa95bad840f4d115a311f328ea9c36e09899d60cae4a7ebde3ebbbf1e3345f6bed10ae418495aa0b2944d674a989320441af1d070fc5093430c23f32701ffada1092393da1269f29ab3f16fb2c74d4a29c58a12bcf5427f4fa4845a2176c38cc46da50a717f46a4f424a3d1503e3ee59519af7d61c4da863d7d0212d56eaee28899b6b6321a767c2a07f65e45a3c244850aafe005acfba812da09529960d6d94fe90b3fea0e6850c45ea7e46f625970d93c372317f700962eda4ba3efbc7aefa5079de634c198f145c47819d8d0bb5e7c320181a7ae4c8a7c8dcdaa9bdf7378d27a826f5cd9beb0890002f0c3774e74dff37673080fc7e48a5058a365cf521e96f44e491b994a4f8813e59a6142e4528f2b22a670515938837ccb391c592913587ae1faf2121e9b070d98edc3aed74c0978a8226602ff6ebe07de1572ab6f44855ce740c24cf92f8d83aad6b2cdd7cbac967e28a4df70503d35d484ed12cde84f06b202f1d900b5344bb0e946b3841ff68ac9f1bc46d23c3bd8932471c34325f6d23d44a796dff13ccf92f63835ee6858f2c77a18fc3852857b83d83606a3a2f67bd8145b0b81e568acaf0318830cbbe108bdea53a5ca1a08413915acab4cb7b8383b1e9e736ac8fb37b5c0734767240e8f5b989d5faf9c4ad66eb44a43e37014fbf9ff0d20c9d80d1f7262ef4ebb800716f8d823bf7f5f6beaa9c7d08f60f2a0e4a05fc080f7af996ca03857766582846013f90470f4a5b579873794440c119c82c440a7cf37e7ba7d7854155709164b8484c174be8826da9d99a72e7e2bb44cd2b28d175b659df943145d2123e535f5e6457fdf0d3f554e0c21688a3482a413a3905268843ebceb25f67edb7d3dce03d1ccdd6c9445f7d52b92b4aa1ae0e9b623e5178b99e27cbb3afd951dc5b93c06d7ae2b9cb8c03f1de0737041cbf405ff4e08cfb25bbb74632ef96ba99c68700e34883c2c74bf2515321503042696a80abdc1f663879b8f484c477e0480ef297781dee73d198810ae57676e0b17741cc34128da32bd5923b02a1dc3e0d2281493dafb48743ace40fb7205472642ea9ef2b93478eb8b81f2c716b917b529f18f2d4f4ade124eb27d5dafa7f56da9e87120b7877f0416a8013ad84b0fbfb877a347bd867a45904abbc8b4b8d704f4c79d185c9b5deb0e85e8fe57f8a881c4c8c25c65b2ff3b2d47ceebf1b80363c6023e0fdfc87af0cd2fb110d0ad0680091c61b4559480ce237e10017817ca9a003f522e9ca5ccaa4f5eeac7110617bb1e41c5701c4029fc39be46675c64fbf14221a67ec820f390723ebdcb3b291b6b3245fa210219ff238cdedd4bdb67cb286050370c34837e3376f3e923c1e3d72567893118a1448af0dcbde8c91b3d1eb0526d3367bdcbe4f70f1b88e0fab9e8202252680f017392ee3524e963ed3e5107372b6c86c839afa2705dca250d3032abf05623995782ee3ced2ed51f93f436617c297e6f36df53ee4c041614d5f0518608081c668b1cc429eab83600b285c081286f5d96d81a85ed2a671c7dafe11804f821eddb40edd5bdad3007c1bf81b58573d9a55d30f3167b2b33973a392892def55d798ff3ebaeadb2ed1e4aa1dabb574b79c0aa883d0a6e276bcfd868812209ac77ada9c02693a06644a77985c24e5739ff9473aeae6e90d66e1f30ad18f2cfb3e1a55cf2c608f7dd907ae908a698415a27eb27bf5112b06d3e29390183b4d0e10276a75c0988788f840db376b705781940ccc32003e86ce1759671ac999a8d33afc26aa35599833986042c9bd89039f6a46b73078b3c6b38d522be1121becbe81d666bc00ae23ec6e4e40873ad458cbebdfa9bb99bdb3d3a36940c860e022dc7b060ac0de7718f9cbb4308fc5d913e8171c6e052fc173d1b40340e5f74f730e655463c58678999d48b76acf01e2705d9c6e224b5cd7b7227d303ee42aca0364e50fc35502fe3e53176ffca7c72ebd0818def39ac75e55632523509f9ad545dd6749d96c0adf87a8e074337e70b281e4a7ab9b42927a9c394e1d17405ac2ddface1d9d7ced5e2870b1cf772a82fb58c893a55e8db1a022d6010cbee762713b1acf53814555d29313acc41dc3427e5b69f01ec41046b8108b5f260a7c333d02be36d4cdfe0cb852c2adabf3fc404ec6774a7c610f5b0d99aa517593b7546d05aa6f8d0238c58317daa9f7b11a74f2df80ff6a091fd0dd29c060ccab0197f07602d64e3876f4374222f649ccf5908602ab8738152824b1aedd1f79d6ca0e31585c2ae261454635180de13b1d78b83cb8c40ba15d6bdc51158c4929854cd6b8fed251087b9a70de7a1c757be64cb02783c1c5960e926d4839c509354320b24c4df86e4f266bc1d3016e3de72ab01e8d5f5a435a5930251208c6b9c7c50d27648408625a82d7eacc9833ebcc88ca1aa130434db2880b4773a185b0c0d3bda6b24a178fa2b8a19c2e293fb5fbe0acbb07a3037e989d42c5b9fae05f39c6a72bf7b1f2d5fe7550b2e7346cd4fa4a98296028ff3b853100662c6f8a6ec96702887203417f3bff2974360c5da352f897f5c4a811292ca032e984d9c6ec9f6ecd8fde9cf9ad5f3c61c794416dd9b8988e3259184d6e6bf1d0208589efa7e119f672d8bc44e9a7e3aa55afdedaa9fffe15dc0326e988409709c8b693438b335a36651f22fb913512febef8e63b854702531c71f8b70cbf57d88ce7ee33c8341a08851a59abb9ff663668b48b0d8486f98722d44cf728e460357a1844cf4f0facf355a655c995a634565a93947cbffe2c1df6f5730adbaf4fd37561b750f3c7a4889085a06506217adf4f1a5be9c22b730378a0c07c2729c4f65f6e64eaa773828395ee91320da0c792ba7e16598a5b79b58da06b1e7d8c42657ff9137af5cd5eee297578abe530c356a3e8195ae9e1853a93d6f6965de5dca7922b5567bbca0d713d3196c5d6a43bcaa36bc6d561e0ec4814237ed8d8ded38f72fedf569e04afc2251a619d9c559249fdad5463a2f45586a0cbc2a33090cf25d566ea52f5b8b9be4bae3de13cc1e40286648a5fb8c4ace6bb32e80daadc6da9e280d5518f27f06e8d34a1b7e9922d0700eecf87409563b24914ef13f2dbff90c333af30dd0f6122a9bb747f01f7390a6cd4051eb8260b8606db2d8ec00a960cc615e18fc952f21f773254d94637ca9ce3a371a46c1dbfaef7e3235810c8944877650b922f0bf2ffa66391abcc9901c95fb60dd2212de8523fa18b13e8064b7d5098846905af08b38e2aa0360883612538d3384032d05de32fe1886cbeb2841fe8d8bd1d230e6d514fb0e04fdc8619167e6053caae3c703372ce58820983d249428e28cc8b47687749e8bf44c3a3ef6b70632dc0ad842856e80310c3531950e400466e35f7c91cdb711a4563511109ca3a742e9beaaa777b6c16295ca7595e7ff5603446f4d8c30a51b9b6073c30b6ba8dbfd1912c94ecac39abb47b146273a61a938b24819acc08550d48647852ea206d3d96399b6c2b1a767b83ecd35b5fce52106185e03813a853f3748d89d6cfbb5fcc70af9f6e52c56f3dd9741740aed76965cb94692e18c3454aaa94bc5871a2e93c203d1e67ff7445f1594efc0ca86a7cd26985d44bdc093e29a953023fe17ed29cc26da50153507ed80eb54dd9ea756faf097970b2920100f71761a403fcb2fa5a9282479a69ccce015301402c8df89e8d2d4f6a55e684998f7dbac2b97df8837cbc84022178b93f7d014006c494ce7eb5b56771e47e0da8af608cf1123420c86b717b672cfeebe12fe57a8474bd55f67f20a253a53270d66be202e5d0b2291eae95443e035e30ba08e60b2e9ff390ebe67ec3e6dc70d907ac08e650b64cac197454d6ae34b1a0dad0a78459dc4421ab61694081ae748a68e38cee873a0d029eb364e8ada51072d9b6b1c208d08dea48bd1190f81ec7456f8ca69081631b67f28f97d5401d9975cca8e33d590b3bc0334540e6212ebb890f250f1bfe39e47b01cecf05f17e0ba2a417e47b7cea42fcbf3e7d1b45fee3798bf41bb20cd67bcef9bef4820a79a4e331ad5f5ec74939c6836b7b6bfca3f329a3d6adf6ecfaea5a39417d0524f95db13654bb50011de46f930b637f9b3672ad63983f7b679e38b227d39923d122f2338a7cf1f8d46eb14aafd8159b1775a7cace31299797421291a9cdf394decefe1e44415ddc8d6acdeb293bcc122eadb1f14254334f9c3669fc739416eb202aa2902a7af4e3111ec80017e1d2cf6e1cd8f920f6bfbcb3f9070b3bad13eb060d9fe0dced5f6ffa35d4c79760d7ab8a714b18d551608587dba349603e67047612eba2cc4be8ad817037350d94258afa38ce8aae081e661f51db51435633f80d573b41966482b46a7dd760500c115a889010e90e51100d967bec0cd3f4e445e6c6bf4b5f7d7437b0d4c8a9e376f8f068e1d2d71123fdda1d1dc222fa33141a36bc9e1bd87c8365e5396fb5b0551e4bdcd065fca7c7e522a538e8d1b4f172898f3623775658e2e53eec81a70f8eee4b627c7ad3fec22a5754385815ea2a00466b8eb40d009d85a730dd7e5b6f46ceee0f7233025d6d0fc4687ee2c23baf2b7916fd315a157d2dcae6b2e80d49ea625762e7a2685d2eb735491aa803a727e57b3c294319fb2f6ee8c67ee7659a8181bacf3e4d12bbda326d73644a6bbb64e16644b485fceedf792c57331853a9967b67608a7a17d6c5c860f1c8dc750818c0845a94fda3f1297a8d253eab459370c12657441b2b682a800cd4da4c64e4fe2a48122019a0841b81500b2245e363e6b95dfb019620df724ce62bdc9b2f4c531a66c673ba8c635079ade8feff6058ef57b0d7972728a663c57392168b68eab9ef7ba1d627a47d508da8322576eed774fc5c0564ac0f061a1bfee4bc8fe61408dd51418580fe84cdfa177f59080146495ce70be104a9d853babd07819064b37db58ecfbb438930dfd61cc6123d90018da13373a2828da38a0b42e733a3801904d9842f443919b8f37ef71851f24265ae5df1b2627e983b994d5ab797910b9d418416ca24124c18449cf777fa08871c83a6a565ce1d3de9b468f4c7a29e004c3fb024d0be6707a3d5b8d3fd45996745ab59226a2862411bc48673d5b1dc7c42e7a5f7dc1cf3f5547ca5dd92ce7aa082dfd987621bf8817825499e598f202a6cd840e6f3c9a49751ca4470f39bfae51f90db718f4b67ed50e8f914d631d4c3f4491ecfcfe6a6257a9bf46ccdc5c78160af59b1e61eb14fecbac0c66d829ab9cd6fb3d301750a63ebd3c7d8e049ccab6dfbc907b50854a8603a12ab4cbf643fc4a7a24d9e397ceacb1ecfb2a1428889822f76167bf62ec7e81b26388066dd760077b77ea503e2a96eeadb71faf6bef8416c124f46d6f1f0bbf23a13f890f4d7400725813f8909a74a73f5b6e7e1e280ee014e697ebbcd62a7d6d14616902807781aa65680dfd2868782b31e0fadd68c184d5d6c57f5d11436a8555dbc9627651869ea6d796f057855c862a74dd8dfe66a5dd3daa0f5d8794dfc970bbec34f2407c80d5a82735b8a44622b3b8c0671b467909fbf8a6385a15a01cfd4838f0d9a3dfa87a7030379a52d178fa8137b15a2d1ca315193529b83852e595c9cb99bb338e3f3c3132ebc03dc9323faaa9b92407578d5ee6aeadead3cf23b2f71dc68cafcad3787651cf4eebba5a234d90ef47819b74755a2e083a6f91573c2d59588968c3b5a84387ec5e498defea88be3020fb4077233ed54d0f87c467cf304d3b94c840b9de46c335963a6bf7cf775ee24d71f79359439679dccdd547f1ea773600e30b57bd12b874a846b2659f35987ab8f8e8e3e35dbd0d336aa809cc52b8f8e2919af30b79a6a1890e57dcb4054dac5bc9e37861c2647b379192f09182f3d37e5aa409796cc945a3fa028e016a09a37b514f2b53c37f0c96377605338219d67c122d269276b02f233291277e67d05c21f1895f5400a60b15d81fa75a03dfebf836868333d22787ea7f2131d8cd318a48641739982ec2dcff25e30d4669f18e98d3cf95af1e7b1677e6c0f6407aae0acdfce4cf0d57c809ad3c0fdb06f2fe9593101b7d1cc2481301fe2c1a88555e229c167e924d6284d983f39de3b05e6c5c789f14b252b8077c684f991595ceb633ae5cc53f80cc58877b97b17a0874b43877961093fe3d6a6b39110cc4bcae803e8bea134c163c8702f6073ac539478a09c784265fdc6257a9b2b84d169856422a4688909152d88ef04f2436a34c33f1a8d2da41864c1a05ed6c29c5d28f2f28072c6eb1930b589c63b9aa45b67d44c07d9c560fc8f0041952ed27932d4360210857430b1d8347ba59b2f5d579882dcce666407cae64ed9247ae3e2cc79bebcb5893665cd8a7448cf3ab7108e971fe31f87d1b0ba939847611e4619c53d3ba3fac5d6b71efca6b50ab58e474c90630b9db80829e6f845e343e3d81a9e459ee573a24c63371ac57ac79bbbd2273592bdf33d6c1e2c9fd172cdc98710605b045d3d5aa3390907f4f189432ea2f2609a27edcbb5110c0ae43803e1d5d2992cae6d4b3cfcc57a3986510139ce0ca9a1abacc18b9a1099d4ce6f4433a65d39db841889e09907db8d5ee77129e50ebe4bec32981638faa35264686a052226cfed09c31a7e9bc4a2818c007c0bcd79b3189c3db1b779926b0b63fcb52d752fc2df3f0f8ffc6fba2b71c1a37b908a1dc518aa517404ccd4273f926b41a8d3813804f35641a934423075dd1fdd401da83c96fb5f021e64ac03faedba9958205a55710e191591500ea913b0f75880c3b762389351c57641e518965f2889c369b76114e0e4864723dd4e2a5702317ec3581a64866168eaee2b746551e4553c0d82c012c72092fcb77f55af2d3ed7767777f796524a29033809b409b409645068e43deaa63963ece9421c139e6e5fd2c8c3e5f6757d4fbc83d376ee8b5dd79a73cee95661ef1e955b23615cd5497cb412219ecf1021bb265171b5a83eef2c93d7868376545b273171e68e30d6155b18b42f1eadb5b6565b6dc53b382b38662f972338ab46ba33cfaf7b4035a78a7b0326b9b1eb534c41051555549144c9ea647b289824745ab77941e0f77940406190368176fddaf5cbf1f5d0f8e6f3ea20097af53145b551746a8f1e99ff64837f82d8fbc090cc6fdaa348e63ff73892f9cd3d96a53d9664fe72937b34c9fce31e4f32bfb82b2d7fb8c13d9ec8fcdf1e51647e6f8f27647ebdc714dea38a64a1a44eaaeaac31d7ed795ba8e0cc7b059638b067ff5c1c3ff43461708277c6dad561bbfa984b25a8af070573083dce21d15e9cb5f781a1389265c93c4d2627d4490a4595b262bd607e3b0ababd5c2dd62ac5df857141dae84885923a419d1e6d599c971484712713d3e9a12a66a924555656b84f97448edf0a4b8a75f4a5dae0d10e7347a91de67810e65076aa25b56baee6bcb23da9014ee7c479b3078aacd2349d4e5eb56abd56bc0a8b4bea123343ca6a5a90b71b748742a25b94a4d3e9743a9cbb5da3dbed76bb5d24474849bb97abc55ae572b95c2ee5a65a314325817677de543f8e4b2f90aec808c9914ea7d3e974381c0e87c3e1a3dc0dcae572b9dc1dca5da2abbb452a149d4ea7d3a570381c0e7782cae572b91ccccd49678bac1192239c4e87c3e170381c3e4ac24747f7e24e26261c0e87c39df8081fe1239306c7c4e240a0203b94f341a7d3e9743a1c8e5d1c0e87c3d9226b64911c2199259d4ea7d395381c0e87235bb830f98077f696939292703a9d4e67816c901db2394b448e3a9d4ea71371724e198873ea54453909c7d2d45da53a4f10e94c52f90d3cc59cf4793949e7249c93720e899d385f9026a0f31aedeb3a48664bef1d71aa11c6d508446dbef54eb9b5d191d3ba4d1bedebe38b52dd29773d72c22877f53106798deeec64571fc5b0448edeadc619c69c6bb5155b9545c26822715e1f3d4f7b682d8105fa2c52ce21a8b1d6e5f08dadc2438d848be0a21b82b888cee9208c873618dacf668b6dae8a7ba39bd0b910d5397c243f2ebae93d731817b9a9c645886a8efd61936c5a073be7eeecf38c23f45c337953fbe19e184d169ce1676482a74ed237ac3a1d14513b53b9edb2b8cdfbdc26aab8adc4b23331e6b655cee8751c81c0372f9e638ee2e2ab97d15d468fe9dc15173fc5474dea2ed4990a5d4159d00f55115116eab3448a23e13415959b2359bfafac6151d449ba0b75b6e2d93d16b76930ec3c0615b76933b0dce65d20c56d5e06b6b7819d3da09d45bb7b4e5174d1343d34ad9b5ecd746fa9502709ae8c0e82199735d34d6ffc5454549c15963a54ae22ba698ede43f453e3a4a49b7a2b3efaa7429d649a8ee688b27c74b1d4a1721305b223fae9e4f83849446d26eae297cbb236963bb6471cc7511cb128beeca6620aeb6b1d5de56b4d531b8c3d3acbd73afaa87a9c2a45eca5d8a38fa6ab1ee7a6a3dbdc7404c1d1b3df233a296b25e4288e1e963571343d6f13b519b159de66378ba9e23ac91b7267e30acacaca8a9b6fa2b29b9a28ce4d73cda4d7272e507467d90623c5457267367db43378b27cdde4a36e1afaca076185627e3e8fdd2ad406204014d406dace8c1443455b56bdada9e92c9f6b3afaf72059d3d1597f56544d478fbdaac6461fc731db9acd9a79f737a444ae899f9b4fd0ede6f399a04b8f2059efad48ee355f6ecb1acc6dd8172a9ebd061c75c61243b9a04014ca5954409798699a1a54691157b86ff7f189dbcf16ddf7789ad2344d5b5a3c5dc1c2e23a77a672bbf9fc802c207a45d3479d3b9ab4ca8a8f1f913b63f1ecdfd0bd897976f0ce44c749541eef7237967dc55f2227749ee9d955743e0288ac81bc829d4b906f1903f9a6a2926f2af9a6e236d55e9157b88a631616f276f3f9014d14751d6e9afeb7682bf16e9ecf9d8978e5e66e9a7d85ce9d99a84dc54f2aa8d5c069c3597996c7494ea4cb4decc56de14c7fa1a6f905d562a8b1ec19fd00900baa8118ba64e79c6467b2dbeeae5ea831d96d3aa9866f31b300db72c7c431d11ea6bff7c03b9c0445568db38ab3a0b8ed16d95b90272249e52b7aaba04020916f482a9ec395a71ca9f4914a05d549fa88c572501ffdcbd1c7e1b1db51183fd64a26e9247aa795dcd335b9a67b6323fbfce072d449a08916e9a4179a6f3aa916ddf4187659eb249d44efbe13bbf2b6e9a494b7a1c27c43c99e7a1b79f2365576d407f1e19836f00935292a43928fe5be78c2994de74d413283537c99049b30d6b1d6abc1f2466cebdc14df59ce3abb5fbb25707364bf2ccf5537c57ed1d6a7511aa02b118aa1185ea0db69bb44bc4ba4e6b8a0e658c79e12397b36ecc0e10a21c9b1846de9e692ad67db40e2ac37a571673037cd36d2d45da53acf2272c9c9fad0943c830ece4561b49ea6ee2a8cddcb169cd62bcef5c630089ea74ae58e821883605963eecd472ce8775685a831d66f0d8d796a8eb515e8a63c35a71eed1e6e9a1dbf888350dc2d4d2938470f6b8c9ec4c5652d743305a7ad52613db3aa1412e0b9d6e77ac6e1662970b8327f307b0a93336a3b796a8c759bfb5830e2120c8f10307ce5de98634512d69aa4f33ea623e134135da254e2921035e76e6fc4ad7705e11b1b38861d3c4f95a71a0ddad8f33c8c51242277e82ae162f43cd206bea9b35a648bb0b548f67895286b1e6a267189dc19e8dee79e83fff928faf7361fb26d897ca0879f77e92ba13db45f226378fa906dcfcf12c7490c9410833ba4356aebd9ae1f93dedb78ecee91f6f07cccba04deb4246bf97d6459fbaabd4af0582237c5570a35065fd20c67765d4792ac65ced9af127f95b829d6a1f7c86e3d04d11bd9f65c2a6e4a9ae1b43b22978a9be29b8b84832393a5a93b11221bfb3d527282d6f3b3ae927bc37e7d8e2e90bd4336ce5e83a0c411ec3a8923b084e244aa1689a502bbc5d841105ff004b110294eabedc4d1f1c103534b7da55063d8b1b07117f639868deb3daa31464ecf3888bcae2b944d38b3e30f04ad97a8eddc65798573fc746823b756b5c4f148bca6697a8dba4dd33fd33f33f49e0d82e79ba028decf7e9fce1eb844dc5956a9aa4a55bd1611c5b0ded9751c8279db327fa17fa1275abf21f4e336f45a8a1f29d6847e9c36ba7ea1f1ba2e77ae872e5ed7fea1d968d421610bb746ddd771be59c7d64c24cebadf6224acad4ab6d540bd21415088d6d65ea2ebf9f5ac07da258c2318b0d7993de82c8f711e9654636864374143a62b1c99be70fa7553d2393393a6ee2ad5799a864cbb7d5df6acd56ea544861070b5dbad94dc64b8b016c28ba80005881002c8104086f8d2a1b4da5b7aed96d56eb51b028810cef2db1563f9ed8a41ba340fcf6ae7129b3163064aea6406ea3463866cabe8964541232956bb222ca89e20ae4d011113141a8a0e0c31819075c66901ea43e7b67614023a0783b1a6a7c959fc4dfc5f7bb01594d48bb54a5f5a62ae164c4c2a95926a158b974aa592ceb9e4953c0178b98483837370439abc9436419d56380ec22bbe569a1636387b9e795f6f77e94c5d88f2eb259b91d93a890c843d259bc9e5ce0b980dfb5a63b2afbcad3335cd8ef27ab3a6d9597faaac9a66573dacc6e4b1a619a5a667766dba86f1b23ffdf50365b80cc1e16664c0502726e4e747262614778a7df02d0686469a5ec53d221cbb4a762998176d7232a5503809efc872677ce29c417a1928e673502ac5e4010dd27b159d59d658e8be476e8adde48160ec284657afa6b88f8f6a2f2a8e8e6e156679912ed279d620bdfffd7a8c044f81a96841c2b12353779e65ede416b929f6b3bcba9b625d8df4de31153b7817393115b88a9bbe507c140493f4fe25e32999eb44eaa84b84d33f9d4589a3e4d96950e58ef6928f2739cfc89cca1d1ba4f72ed40d7d82031bc8d3a3be5a815e9cd0fdc131ec2e7f8380d23b94b275ea29137a6f28a590ddd99d4a6503e9bdca26b14929aa1ca4f7a91b48ef4fb64e9d94250800e93971535c648424eb702c2b41e43aba293e72b94c20943e0a80f4b4c909f503103c5548764be7227db4b00a7bbd06603a525464530383f1388be874352c5e30f1dd2b014873b358399b3880395ad1ff4c4569bf7c46ba31ecabcf4db0502999e8246327346a8988328d0cdc19cd399028d44dde5dffbbf7e53e797d6e82e8a679f5b68914d4e66c4e259bf9c19903e93d89e2241cc34868b9136e9ca4d361442100e9a550bc07b7d681f4522805204dbcadbf9a5aca5a0a8a916ce024b7e092b69438f086c14eaf2959b4943bd94b27a9d4494a9b9c1c55964067c7ae9fc60ad5d1e51a16698cb4e789c7ca1a8aa75236e9ccae834fc60290dee7edac87f142715258d0a47238863df6d9f559f7b9888bb3562dae1df540c09d820ab5f8e981805b850aa53ebabccf12d9a526715a1a9a1287e7da65e54ecfceaedda5dc79a9f696ccd07c1334c5d963ca5a4663e58e6e2941e083f400a4f7f7c507d27bbb354c02f01429141f9da018090e645e623ffc00fb012575f203eaf4c30f9eeb3fd1920d3dd1f26d791487f25036f23cd44745b2f378841d9460679d2b92002031d6151b4bd0be3e22092f929b5e51b7b1eb24e777a7b852dcf4be7cc6bb9cc6b758b068683368d476562f9b81bd80897969e1c25f32e80b1797bbb06939ab863683466d67d59ae12dd7d73dae56ab9567a25732af6785ba3c0f87f901f8cb0bc0631e076ff101709bff1c5cf60470165fb7cba02f570b00cf4a628686458587bfb91dfeea2ed12562a9a951a1a8a0a4cc0c0d4a6aa5dc5121615018bfe3618f6b8a1de64f35c51ef32835c5fef2ac9a626ff1b01a83cd9a6214c7017e7bce52def0dd63856c01bfa64e5a585cfe7f456ca328da926e151595949c7996d3fc0a01df00f7e119e0dfb7601e925658ab95a4063c0b286828b7027b1a7ce671729ce663f8015e01cee23daf79ec32e8cbd562b95aaf1a0d1df87121b5905e481a0944424ae158565e0f3cb0943be3132f240b3894a6ee2a15c6433ba9cd83ef55769079179f296b303edaf3c56b596be1e30ca9bfe6e0ef8cdfa3fbf5d7e776af90f2feb4b079b9432eaee682b26e4017e8b2286f504d0d0b1994054d8dcdcb666c5c60625e5a40c162f9b07e6aca1a0c65dd6a4abb6341b6fce572b18199456a4897c3c4bcb478a1ac24ca9dd87641593f4170f91c0ef336f8cbd7e0318fc35bfc0db7a1f91afeafc365fe72b56e666adce0ccfc6b7fffda58059dc590dfbb6e64c8ef5b1bfc8a6313e32f2f18978b0b8b7453a4940d7eb5ba52c81259a21722a9da2d2b5eb08051e3af18650d36be20710ef00c70161fc3e6b1b77896c7fc0b7f79170ee33902fe87d37619f4e5f2bc858150e039f0dc4f070cf00d7006bca525e06d90906dc0db17a51dbae98d51ed2db59e86bb7e86bf9ec680afb4961fde8370cc85e4bce3dccc7e84e086b080582d6614337fe3b2c7f17fec349fe32c3e86d73ccb6ddef316efc2633ef49795cba02fd7ca5b2c57eb85c33aa150e3783a9d4ea70f9d852f5cc08aa07041e294351734983e17e58ede2eca5a8e0c12f6db679e06194ef33aaed6cbd57ad1487bc238adacc538adac91b78bd3645a36352ed03d0c53e2d0fef94b59fb5087993760f15ef37e83ed74395ab9a3b70b0a03c62661afe3331fc365bff27f1a9c46e6b1d7bcf7c2637ee62f1f3accdfb88ba32f578be56abd5cadd710245be5b6140ee481013d3c2b57eee8cdba15d99385d3286b324ea3ac91778d8f33d017dac1dd8887cff10ccd8759c8d02877f4ae4159b7a219322fd483a32fc483b3781772d3eb34efb71ad303ea381cab415d87ff01693ca00e8463a994d78aa0a041ea7183ffb0a287bd7638a150a7d3e9743a9d24f1b3c3b36e3826043704686766dcafb73e56c8cf8fad515adcf720ec83dcf4ba8d928871c6eb7ff0e1c80710b01b365f7d78a8a1acc5a0ac5b0d3684746a2877d450e2c01b86c360ad76de76b7e735943bd8573ed6a87183843df6999fb9ec6ffc7fe5348fc3e273bce65db8cdb3bcc587eee2322f578be56abd60627c45090f392e1e968402a09b99e7c0731df8295be80bd528887e68c8aa2bafeaf033650ddb604359731a978bb76cfe61ba99870d7d48c012e0c020d3cc4c9abaab54e76962f32c9767dd84b47816aeca6a5e2f9b296b1fc69edb30e2205bfc8ac774f81d9ce65b643ce6a5c34b0fee7a20e076418578f0968aeb0702eed8ed08960fb0fc00a1a0a677264ddd552a241f125b0a177b58fab02437bd5e8087b53c0c4914fdfa8a8705b13c0c0869fcf60fbea99505052c40e5cc4c9abaab54e7e94819b74b6e4be1583796cf4dafbf943baffd288c7563dd6accf517d68d75ab39b5da5bc2ffaf6d7bf81387e79fc794b50f752977b04b0902975295c33492a304018d1b6a3a6af86b475983993700400c8c8e9758dab28265454507aa032575a20375d2a14356fafca5c3571af8759f77863d67a1f9a6ab1d0f5da1e09d220c7f5837d6ed48918831c69966c1ec347cbf1bde0de1b46efb6e62ee2631c2fa3399c81aa773ac552aa37cb30f4c61b5f706e9d36b3dbd267264f672d7321194d347ae9114f706df6bd1aaf1973da00a0494da2012117005539e1645d5aef7f3ba30d6151b996b0213e11cf66e160fd9b656697b64cd8552e8d088d4212ebc1e0eb9372491d0c8d385469e2e34f274a191a70b8d3c1d4603e477ed2d795ec6660e0bb9229d8b6ace0bdf7c6051cd01b2d144b1abbd81f54c71e9e191ce59e106398363288ae10892f806046bad395ead391a5f93f194fa193331c56e7c388608c193591af788226bcd194731043f6f2c95a76e22df7ca342657bdb19cdb57af85a5cf22319eb913cf18d4fe822388a5f6963fe96152c2b3efe297a2a1bddefb097abb54792cccf5aedb1649ea389cc9f3ad9e11f21a2e9499a9e50272914550ab962b55c2f12e68f9239e79c3dafb4f02b4dbbe7587f9ebff4628befbd71bdeb7161ac02c0d8cc30ee9de570d3eb3cd4f4da90c0e5a1ce26006387656d874f58c3031d099016ba0ff6e74ea0ce6c076a8abe15aab119549aeb44e01bfb736736c876a0ce6c0bea2e6c0207fb7ac54ba83330c2be7ea370dd08093e2b2d2883956683eecc8661187e59c4dadb21f8915dd0350c83864d9561acb3be20146acd0161b44a95d6197fee1f897fdcf95160798630c014c70646cdd1645a63ae87697a6dd539dc9efeca2d7a26778a6f44d426dbec6b63b3efacd457483af3a571ff04fdca70cc060d1b6a4e8671d3706314a74c0207870fc6194fa648671739c13b8bd9f5071f8130fd44dd99d08fd34ed7ae6af9ca9d9552207c10c399dd568f7e289ddac59b9e3e80a1589242a79fa2904903d5917d3ad8871f80f8d2add3dde32b7154ddc6288c704684f1ea0cae3a954e6cdb08c2697d86345d4c54e7c6aedf98f779e50da31871ce3632190c1c9cacf18a7b46b554def781a3c618fcb014e3f77d38cc99c4a99c31ea6457591af357a598c21a3876bd7261df7a857d6f5dc2e9b66a8413054df42ca17547a6e9b889a8314f9ca452a7a9ceb0572874ea8c7a433a6a573fa92fb20d6557122562085b6f226eda831d1145d4594661a450dcaa348a3a9d9c3e935dfd4f50f96de8e7f8bbf139fe524aaf298e5d27bfe29890e358175635e764923271506268723a4d53cb459a527ed718e96048beaa143a4f53a9f40a7a63ad453ad86f2a6d444322ec10c6e890adee5ab6cd0ee19b5d63d7a33882c555a415ec8c3ba33ae6488ee50b06d69a931a43f0f3c492142f8a0f8a300c25f56299ab34b6a2c5d5727939cf131ba59e899b39c8334dd3344dd3344d172e34110e8ca7565ecae2230c0ccc699aa7699a2ca9c93c65b69792cdece090dac4649eae639026dafbfa953b59c765080e372303863b26e4e74726261469e90cd2e4555c7f8b119223a42a6e5a84632998171a282dec798763b71fdc132c3fb8a0d690ce6524fd2ae83651e52a725246ca4936489d91aa4872d35bde61939d22b09c8414e3a91893799a7946e6e442d540ea6f999c68161813161816cf2407a95fb54d5254fa53293a48fd27db5b95281000a9ffb45b9a4857e4a6476e8a911c21e1983632d14ee8a217978ca489329226d2b8928f3890fa4d76cb6b24463856849da822c9eea63a1c23ca489aa87cbdf49bb447c260facf22a37bfdd76b22276e6af29fa4b463af77375684a57537c5bae8446b25d6090fb5444499468644a42be204910e9a483ba18be82213adcb483fd04f22252551a27f70ec866355dc74a76f483be80fb7c90e062051ef276f7baf2220d18d6107bda5ac69224db4c2649e264a2a95224200eb73154919493ba189b42e6600939c3d94cf55c4f0eb85583cf69a48eb74118e612dc54d318bc557de8a161fd3343d9de7a965c57ba942c231ec2012514e62d17f5f10e0c128205761929332d20216b00094d4c90250a7052c409f6e32f3799ada68632fc951d441fac806edecd9c0044776d6d90679b7b007bd00d0400690d040109e231cb0001b037af87800047a98800f104134e0870422308167f120be468647e06d1c02dfc21ff033f7f137dee371dcf631dc01ffc2ad069e026e917822dc66e0ed2dc857c079be08b73e47b88068000316a03d002ed7a87b28c193d42f035524cd27c06b1e012e7b1f9cc51fc065bc01dc3fbff91f7cf60a28000630e02f848448800f331be73dff410118f8043ceb868067f9f0ac033c4b88019e85630db9dec516c8df21a11b84634197a8ccb14ca73d9138ff790b199e8b4ff3963b28523f8ccaca0bf1d4d0c3db3a53f3271632501a949a62f4fc1c63c72c72ace1656b8cb2becff5d52ce9964b4a4a8a2bb657abd54b26a69bc562953bdf8ea2c5d328f016b0b7165952112d5aabf583bd2858fe8696dffc0dc7f91c4e8107023a0dffd12ce015f8215cff8a228a70188dcc2dd9e56ca0e4d66e30ed4cbba1a11c5a40baf130221b4ec2c817a942ba484da67e766aae16f6842877c6bdda3dd122f5b3b06e3735ed4c3bd3ceb433ed4c3b1ea8a80c09c19165cd6bd17c5cf181cee25b2ee3692e745b2537ddddf4eeaecf4d6fb7fbe3811fbada95b72c9556fc8ef130252f8a7877f1a0fe03dbdd4a251fd26d60856f170f4f0b8cf573629475a3f91cbce609e0b2e7e12c7e002ee371e0c1b1dbbc00dc75810be4c0e3f31d7458b2cbb90dec057e95030104f0ac212626a76a6fe9d3ffda292ad38a6bbb58c8d676f1f0bce85fb1e0416d118e5d54296475408c2cd24d41ed492e959249c552282ee4892af593fab9331b99237333a4cdb76a50e08df0179fe3868ca7398b9fe1321a4ef39f17f1439c3e0c8e447c8f1bf196666f6f65a5902d41d0f3f606d1b8de85bf3ec70360c4571acc831c08c740cf6706ad052b77be1d85cdd3665f03e76df88b96c700593c8d9aaf398d890b0810473d7798c97739c82169c1a591760a8bc5c2dd6280f88ffbf8cdc6c3761df8c90ded5c0ba2ef60bb9d0aba73a13b8dfa2ef5b3dafdd098418b816246468685494646ea97ed99991a92e5017003ceefc871c306fa2f1500ec7858920c7c48c70d9e732e38528e1b36d03ff74b65c6e52a6b9fbbca1a79868f3372e567388dec3f67f13597f134627c0e87f1347ff137e0fc0dbf791b3efb1adee277dce65dcef2a0d7f03a1c46f3ff66d2d45da5425fae75a02c180c5ded66ac7637d072dcb05163877c699f1f213434342d4896dfe1364fc35b7c0e9f3dcd6ffe06c7791d4e811fc28978206e6f2f84cf78ad9ab3f89d1a4ef333bc8837c22bf016705d441133be1b365e2a45680777e8b821c70d1b2f9519bfdafd4a89efd46868d0f583030a12e2594334305859fb1c56d6c8343cf618ef398cfffcc5836e6f0fc489f82170bee52d9ee6457c8f57e08d70fda51042c03e23976b5acba5bd0f14a2c7080b0c0164b52bbaf9182f705c415c856706150a42030c1a590bd17550ac5afc76f1f0f0fc6a87632c1f21b8218f5da8a01f8a51904565e53f97caf790c3b7e203887f1ceebf6bf8cff57b5bf61548ea4706e4758470700c6707b6c152e2c0fbc32d772971808e3d56eeb0943b9f833ee6e494b5cff5cb36e8385fe3c5df7018fff2186fc3697897cbf8194ef32d5ff9dd72bd1cc9b550d3eb9786db666ce9bbcddd3404330dfdec8bae762f97b6e7ca7feebf9d86f73cee397867e3cd8f3f118b5ef38b5e4711ad6177187a88f6d83a77c4f6851dc370620f5d7be89ea73daddd26baed735bf6d0f1b340f1cb1e0e7f04c13af2d6fe036b9bc16f899124d41c38f2c69e15461fa7eaa636ad466670db3695595d765395108aecbbb119f67519be29cda3d3071b7000a2071f4698c8ed23379676dd0610461515ada2d30d4a422bbb1a89e2089825d8b400b5ab91a20fd07084550e4e444800c50fa9640ba523229c76403291b2ab112323589581b5ab91278e8c3c51b48d18ddaa0a2575823a9998524a1e07c699d37a35c244d0101191cec8108a64bfd6de8a2daed67677053f10ad41dcea40605b570f77ada15261571f7b60b7bbd69c98fdf9f891f8abcd88cdaa01bb6cdbeefe700fec77d7faa24e91db1f6acb20769b368d4e5b456dd573588f98d836ac5db63fafe50da6d1f9a11ebe4683b8db26db42a1d72aeccff5a7356aebb161dad8a69fc523a4856ef7a5022df4cae3bb42ae45f880f63cb0026fd792470c1f1f7cbb963cf21494e031b3841f84bb963cf0145a1081b86bc983256806508c4982e0042390bb963c5c1e70c1901594b7053e5f10820f4abb963c5250a0c11148e6ae250f4b851964e1052658b2e4dcb5e4619202145e708623822c81fd4d5be3c82cedd8593bda593b8eb0b4f00700440f3d8809f4eccf035069e34e0f3074f24be29365580a91ae834b17124931f4d28b4e92aeff474dffd8e92154f2ba7d00d942226afae73a987451a4953c446f22fe20b003c0f4d047fc3832902d14fa584b1e68791369245ae650a2379166ba88de449a888366db8448f7d193c4160a499287597211bd552a68e510a46069c79b553d6fbc77885e8d30a1c46655b41a61626857234cb8608f1e895fe847062df45a737686625063eab6dd173b434375a6ee8adaf22d6f785ec330fc20a167a087765a608912872668a2b843973abc32871a131ca185a8113658c106263862051b988008b4b0460fa1d0ebf651c416ba695aa823e54395954e7a101d9b6c87b51a9d5e69a4dbced2892e81dd636c1b90d3f65185f002236ccf4d4f0a22011cab475e69e4d0166df58924046ddd0307ded581986c1f19e907bbfed8313af6f22de091baaced3822033d342496d0de430b5d973868d0b6f416677538267a69241ee942a3231b6483706eb3414132d0435b02bb290467b5c1d83d809cb60fd80d984083204be0407ac92b8e95d020f786963fdb766f24ea7369a1579a88561ceb51519ebc3dd4565da33d6af4ecea4050db87005890815dbd3e7186dbae28abfa1047b66d8821ec7a84a5891e3e129726a2aceaa2fb80b7db0d7f1037d000549af8c35cb2ab8f45352766003db470d717fab1a1855e4b001c5197ec5ce78a7fc4b78416a2208ed5074b52084b2944f38991d401996f50e21abc1231d828b2be12496cd44dab11254c647d233270c146999c94f8b1a73229df14a5e4a40c52803f73da6e112ae8ce6c57b76f2583111910ddabab39f6344b65bdd6a484bd5a5db2596063f41e7df7a5841187b39e8c19051b45cf5a1c5bea180238bb8775ac73a6c174daf4b5c189633638f8c604e2eca62f7d7ad3ec38fbbca35b94476fcf6d89c3024b962c29dadaf3bab14300676bb447bee6cd27c0335075679507ef1b559795e0dbcb20b97326f39833d069bae825cfa8cd732fe57c82244a7553f077bebfcea333cfc53d257bbd308ef64c61acf63e52e75e9b3ddf9c6dd567eba6f5a6b70a1c132251880087d4a669246164bb258aa09ffef987f1978e63e93f0f9bdeead1c74df2dc5de232832469376a86f2efcbfb3b214b7ff21537cbdae72612741358ca1bf55e63b49f1e85e43c4dd7c1e7978ec7b2ac8d5b7ffe4a37cbb1fc47bd0a49054b27f8e4c11bfb46d175dea26e69d1bd15b7e0f7797b787bee9538bcbcf1fbe9863fa85a9001097659736490811884c1075b7c8e19b555297a68cf1ad5a171532f3f8d9b7a37c6d69d8d6e4767e1b03eba456db6ef615fe7a6dee9ad3bd3a3ad679be011e527b78935d175b0f825b73611e5e4c997dc267a2e394a47ebcebc96b55ac96d28963a50dbb351a8adac69d7c13b8eb034f206782af58ce58d1a3392d957dc667af6fcb98882a50ed0c7920649d77ee2e2dbb27f27280b07ca4b8ef212eaeb064b193549953a469be89fa7507ffae96d26a8ad67f3d80df6281d745ceef4ec33657e8f12bacb27c710ccd7e28b4bd93cc2e9b92d6797b162ac4677aedda82b7a60bcd6cc997523df36deb5bc71deb04b3e881f35e976db3c263b74cc43ee50023b07f143c6be35463b8fb7bf20befa03f643c6b63546fb0fbbc4860aa3fd7b5ccf66cbf3e7632ef3e7b5b4c1dbb9afb36b1f537f7de5c8cecec271dd8d0c39b13f122c47ffc41a4aebfac92d8aeb37fdbec95b7766bac5a50e1d3d78e5ceeace9bd41a13ba2e7564b75ded1a65a1a03b3d1be52c1c2937f1949bb8898f21a93f1f6169ad3b4b7dbd25e92b77567fd82df4a3f2d2a75c2c6be81753bca483f1e92a6fdd59e9734b1bcb1a7a4c3dca7b987c7ebe4ddbb09750f28340757c8e3d7c9c9b620fc52d089cd5c8d0146059438f0f76ad3063e8a06c02f67a69df9ed4155b301ab16fcfbedbba456d46607cdfe29859c20f966cabfdea8cdaacfbe8a141d2c628043cc846853e23b6f52ab06dc641b6d5a804302a14a4ba11a6d1500f6eb40fbd55bfa88d88ed3b9cd568ac5e5772bef5d8b0b36e881ba33fcc5dbd2e61cb50ec77c9ae5f6b8c25817f9e0c50f80923006d7cda18e38d31c628d4f7aa15bb3e51042f14e18809635db1e1935b4fef1add6a4e764b853dcff32ad1f9cb18e3ba60358847f2cc26e4fe40d49d61cf8536683f8b3778bf8b3f1cf690cb1c9084a80daa31d7adfe10dc9fb7c73cead123f5638bdf2661818032cb060d61b546b1a4d15cba331459ef4cb44470d8617422863a220ece498acc39952a83a8792864eb43a18672281b99ecc42c9d28286510358bda2a1cbba2094c9a9e4ab2a452e14c5e1a7e9c267a4d6d900d7a21b1d2ec90cde13dda119396c88d65d4069da6921e453225afc851770261d4daf33e30fcc0d0db1de11bbc84bac408380ad9b11146b2c337b8489fb8c84bc21ee825dd19fe30f6bc259e18c0507f9fa7bfacf388a0dbf703635d519df500effa562d9a73b01b1a4791479dd689466291884474c211923b13939c5067e217c49c4f3cc237e2f873d32fd4d9288ae328eef0cd38fedcd93876a0cec6511cc771ac310319a3df217c832393e18c41f8468663191c83ee4c26938da30ec1ece995d665218cba6f0a3607ab76d6f8d35aebfcb9167e4f8260c641fa471c82edd04808e7b575cca58ce2ab77dee20cc4a12acaa0de800ea22ad106dbaa82543708a226a8244cd9aa82d631432202000000003316000020100a86c442b12c8b924490c50714001076a05c5a4a1d88635190c3288a621832081940080100081818a0a199014de5438c2510b0eeea60a775540f78b1cd1d211611de70ad4521ac5261533442b96b22407a85193880aa823155439935a9f854375e852ae8b0c9c2b3b6ca26b6948125a6c8531a4b13de2b913bcd2b8979cf128d2819561c58f2e13b4f8d061c025fd1771c1c4875184856630f6d07b0ef7d4017ddc8c34a5e417ccd27abe13d9a74aa2007e30bdebfa51e9f1f4605bfb3f0cfbdc8739ee2242490ef7065a54c57b63e839f0c0419412d431319c10e3447221a9633600b73a47b91fab5e99a4d0b579a0bea210b78f6e0342936a071254eefad34efd8284d5ea9c35a1c792e709aeb6f25682455b972baec2325b01bd94e47cac3e8894910ecf6721c4d8d9c33fbfb80e540e575081658b90f8bfbf778fda37c00e1aaebc7ff64b24ed6f2d2a3370926d05e5de5f9a792f9e45d3bd38824de113bf68ed8d1ae5a2ff623e9edf29c4d555956551df14cf455678e11a22426ecc6759834a2f4c46f1866ff1f03fe330de34088e968ccacab8ea364e11b548b748bed9d01ceb6335d14189c67a02220d7102767fbe4a58a51351bf51a40e5af6355ca007c94f362a7539c26b22f09e55a0ac142dda0f4b7c285281936235fdd1ea8580ee319cb7d4e667fd92a36bf19f08435af838d9920f2d51c968c74956354c6be4b6da91fdbd05c12241121c3873d701ab75e45820d4251fab08a5ea17c63bd46a7b28411d1c3727c29c0ded0094c1896945b9a273a76205b7c269fd154b6b6227f1440fe53c1ce058cb5886e0887b09bf5be6ebec059212cd039e8258507fab6d067aa92f4ed6213bdc69decf79ef2277427dd77a92b1392fc68fed6672d3407b03b61d0076c4a3394eea3eeb283f2444084ecc224d2c06225127895b9d3e68822c9b1a219a0a3628de48d0f027432e94631ffd78c6b7e5740a20f8ccd3fb31f4a54b38fb9301a20ede6e6d83e37affe15d564e434124c2ad84436ce30465420a09b222cdb78a08a38d4a450847712fbd9d3069d07290f67884c33a0b5b7d01939a3071ac4c61efb24682b52d07ba5bcd605d6eaa3413fb4bdd19346d6e879ec7d679df535d393631a7878dd862e656702e5b723b7a3779033afb61531b15af2dfb68375d4901abfa05e464b82ea9504f3e4f7a4ffafeefea1b9cfa1e7f04a967cc8e323d0cc9802a0f05baa2836817bd7ba3aef0ba29858dffdd9b4455afb8b9631a0a3babc1d36d4efc436be6b80f29e533fa73ba0934da0c6a637251e05982c7a330c3b43a770313207a239d1114d4bd79e6aacc5f6988bcfa8a15411b8f9ad97d48ffc64117b12794034f5cedd9b1e39301a223cec997df9ac257951c50e9d4f0b41867c6245f999954164fe365fe46ef0b207965c5d4e301cb9a6dbd98d289a42fdd23cfc2d6328c9a10c159f3d7e5a77c7d136895ad70ae6f4bd8dfb091a28f903064cabeb00140f73affe16723bd398ef1e69fca2fad4e9d7179911923379a0bdacac4027183678475053824caeff181f42b98860216701dc7c302d509de15e6c06f4d7a44668dc0d14a969fa09fb1d960d5627fef12782608be8b579e526c0dca0c3c5bf7c0daf12e91edf5324816b16a07d739c8702796367d34d2b1a2c3ccaa6458522aab754c6293a7007bc1147a8bc1dbc3e13809acf916955b5591384a530eb8e437725de32d65750641033f7d1620f0a9755b40d3bbe55c1f0130975094f17f1320a29f6bf5c3557fe0d6e1494656f9ce9ee46b4bb6219e4ab5d227d4ae69c50b46c815f22b8c483f7c5fa52a3d643bd96c41e38b5265e11d61182df1b7b09ab6e541c827b804b128a0bc3821d698133f2c13a1c38fdf27c9d203ebc15b7850356d6aafd03806a17288a693a7e669cd159f21b0615f9ed963c6a9b529b8480480f8e0a0b7422571512c73e3ab546a588309b28889f13b84bd81497c56ceb92ffde0a5315d564306ac4808b03ba8b308b386ae453994cb8e7118c916670283a9a70ef3c3dad9424db69d9a0526fb03c009aecc6f98563e315c8786a3ea804e0110179aaa6ec97c19af133e6ef718677008b08ba831e8829ba99b1bcb9c9e960791747720fa22ec9d99426f136dccc0ead1e84aa39499518da753b8bdfd4b140f5d1d16862ed58da2122ff92be6f6f0195005896b8b20c780ee718181e04960da593feed130d1b430828619d72c6e51fa14e8a8cf84aba6981ce567342722b3e677e7a0689554974a3081098866ad6dfeb1e92621845557a5da9093943db83fbd6569a3a0485994f3f6ba5fbb718949b82cb002dd73cacf29560e9f256dde3ae79179159697995cac8a4ec16da0a9e630237d639508befc789432028064c83261a1d1f5d788ea9a69402ad35ae130126c75ed4385b0f4ceb9437d0d5a01af71d0276de1d3bab52c64e6998d62a9d2e48f0439ad6d60710c581e669a01c008fe9906f5a5916379116b2ceb91d9c18ee8977f306270c0673c804d0ba24f051f8e89ac6037762625126e4623d5844423662f2db4215e8b96df897625b71b6d01a71a33947cf7ce31c64687c89ba42f2fe4c74cc0821e0bc827522e7604d52e17cf25156d617d9b8f8b94b58d843d2cd35e2af9ae1b8e56c562538791e97b5f97192d99017e3f49d698217ed8c5e2d1713b14c8d6eba5b720a416ed334a601d8621bf4f266be188daf80f25456c26336fc930f1a3befdcea73b006f3e494cd18599c15c79d25ecaad3d1190c644785bd9cf4c69431f49a2c224db2cc9590a320001582195523fe4f4d6a68e77c02e2f1a34dc7f4757fd82f383db3dbb44702f224b2d65e97a73a9d370d43c3b437f4c7b7841a3d0b9ace6e36f0f53ea89eb6af78252bcc26ce5ec09a12529cd30ebaac857f618e45121756a0697cf98e8053daed1c6445f062b640f47adbf6ebfc218f826a4b34186647f4f7ecda1699be1373af0ab2a95aeec8c6771a6cc68812ed65eeb3831b8ec326e023c28c064902f9db1497c47a4cad0024f183c39725e6e58d39056f3e49f62c4e5a05beec524f3ab4031671505274c19d3bdec1e7ac97fa926c776bc8500eece2fe92263081bca3e5c50996f26106e12b97021e9e387a315c80806a699f914fceaeb1ad202774c6be1831105d66595401d172703556de1d2000eb8bb2d09ad3ca13cc9d024393edd1e22dc66e1258a7bad9b466a49626513e46a1048319d6144f81711107e738d73e2a2f5f462a6ae4e26aa593303e8099393bfb9cff9617f015cde7d6d8fcc7947450673708c9cc44e28bb30c24f542a34b37ace4a796697fe1bd04e5924d981d6235c906bdeec670a47acd028ff615054224ecccdbcc916a464ee264c82bdef563408f3a881d3e11aa8394efb104cc8f109eca08b450a07d722b7c007e9df2c8361ba48f181ee2742a6b5a0b57ad53835369d736e4fa65c0a8a773d8990c210b2d86799c9be7268aa8008ccd9e06f9f1e71aab08db56930d9f908ee76a5d6a0cb1d84480e6d76efbfb1f5fdbba0e896559681e750667d7112a832a90671665b1a16c66eace931d6061374fa2239eb6227784dfc2d2cf57f22c605667cf9086148332e81f92b0aee539c1a13f5529498f4e77100c491e40ea6eb9c7a364a7b82e24feff82fed321c853039f3e493880f1b0fcabaf52a4d7681807fc043b724e5d56ad63b152d55efcf6f9ffec3b64c4bc790eb0d7d5cb54654ea65e8e96724700d2cea17f27ac5c660ea75341e6cd6bc7fc02e2e1a4bf1f6b5097468fcb7d129eef6a8498a5c35d545627ba13d37e6db3b42b1296aca97320dafb03dc1a2d9216ae6b73e4b60159d99e9562593d21157e9d4f7aa519ce9954383f665fd5ceaf4efe4aa761f56bf2aa7008d024d6ed8a1b986a166d821b7df3b564a156f9377a9cc98caf74cce1998bb9634403cb0fc8d8b8041acbea39a1a4e324d89200fe6ca917fccc44cbebdda0c781dde804a6d5e548be787341934d7a3fd40945953599293f3325c4185e01a547c77be8005c42ac91c17e2c35ad51ac60c186b37a975b63f8ba297c3879c499fbc7e20ecd9e1ec43b885c49c7415f9c85c5f625166462c4275454ff7cf8c11ab5bf67b49428273f74a88661a1690494a1c46a47d2395b4bcc8733afad93c634ae35ccce33ee6a49a4394b6c35631829775f847c19fe51cc51576280af21af1db338df28be55f57e8143cac849311247c7626928bccfe800a2bf1d79e4d131c6a9c8239621def01f6e85f5bc3860a414bbd1492d1b05b2d2aece48f711d634a796cbe498d9accceda7b3ffc376015d3318d007656708f8008af60c9f6c615f8b4fadca7f001ab8e5fb3966afe64a1c6c669f12b3c7563e050529440077c2bef6c7d77bce8d81f32c3bb3d7ff1403f215d626490dc71ad7cb07447090e8e8742be190229b81fd62d533459c7ac286af8d25d9e07b4a6f83683acff6d1146f7f9806a8aa273891a18a811bc77cba23b8bf3916c69d85155400f62969ca1007ad77b6733f0a42ab612546085b4f988532253ea57a8538c820188120199ea87dc0c50c11208a89b4b1c5f026ef9de0f085273980cc3eba6854baf39371becf2c8ecf402329ffceafa0997aaf6c46278e8993a508eb13343ee78382422b23ab279a3bdbe3e7251c13f9424ea241438d453cc201dbbeb81ae1605e7c963a929f3b54a635623b2e63c9c8792169f46d4e28b7178283fab866f18de35530dfbb586e8651f0ce0322e21e92a3f6d92bbeb8927dc9a88b340202e493ed0a6ea8da997069ddaec75ebbff7f2744582f25e1116ad57fd83b7df83032299b1f108ada892e9c101268d4a1431c21e1231d427fd5845113c03f5f81ab6923e7d0bec39a16bf9f3a74212324adb07c6125e19731d17aa070791f6447969ef99913c79765f201a6cc3c627516e81b536b633595c9790e59edba7b229e7446ce5eeea1cde80fed9d6653ca8188f6c2934d380f93d35ce82f40e69f40a66597a1b025b5002c1b83f588bf887dbd7a34486141b889f2821f6cd626c8f141e09b2843d7ce07712208718550689f0c1f4971eeab88d5e18c641b900589f74b226da97845bfc780b54747760fdd69bdc67bd025820bb84c971b88c4f73f3738dac6d2d82201f861a3b5904e0619822e20553cd11d511344d919f85c6091d11fd7c528164cdd7abc10b3dd3402ed48c528a09cacbc9274b9e9545951333ee154bcb9ada6ca6a1faa876a35234e95898c834c8cc9659518e70a0b09502bbb3cf231447878ef974ef250e1a95a024553cc9596d05bc45e9c558afd6cb8f959325d934b642fd33897963b6b17a35d95451ebea90964d0f051282d6d0727d66e8fd08585db9f95e269cf99a3c16679933586c7aca494bc79ed9cdb8210a9e5a063c73d0c9089f3f0ce5baa426c0bb1544732c98da62135349996f715087c8d72d577841428803dbaf3b86e0f4fbaf74ed49049d6b1f83cec5e08bb624f7817676c622628248d6016a92470e53b97489c78b60a487b10008fb972043b7771c0de736456ac314de01ab5ae22a5e863dc5449806e02f91d5e412f9099c72808a40552acdef7b575c135b99bf47a8be9580e6a99a192fa841a71c7b29dabdf00135634ee72fdd270c91e91ca9932ede2300ce3a864931208674fb7713082c2b16fe521f11fedb1b761bd0c316b12793d1c7f9328cf4e6a7b7d2bbd28bbddde95eec22c433efbc59fe4dfd9d06e552abb3a64edf252df9d043e55b3f5c5c97ea0f49a4a12a3b06e9271c12376c7ef4af395b87a1328ea3943f4bed9d823bc8706c799c351aabb56a5178238a526a822f06d8f21a17e90ada7b62277ec0f8054532b853290eeb8b0ff8b2b19a8bb01686dcce0fd2b60e7fb81ca63e44c4126d8411cfdd8fbef410b548496019f36609a9b5d4c1a8705b3b162f5740ab91ed44b120efc296959e71e20984b1f9e06ba88920086523f80d2859f2400dc3cb1bee5954a1c99d47eec5f0c0ea7f3971d4aceda3de571e3bef7fded3d4b33b57e745260cb4b6cbe36d6fe7b4ed271d0f9d04e72be6e18fa029a55ba6703f349f0efb482b14f1822257a444e43b41ca2a25c949c1ad7a3d5b5712325f697043c885312069660a400551212abd488c1156a3eba95647960bd46568851641a33395a89f1c91399b48560e1f80e2746057a11d756d0b0d07eaa57ca1c95d80fb42711df2e6703a03344b28082eb5aabb275c3b5e0e3be2e2f808ea74cacf906f8fdaa9b374272de200d50b8f22bbfe6c90ca9124a6755283e32022137277d5471669b33476f3974bcb43f7a09417ef55fa23c5d1dba7206ca3e739279bbeb233d2e5d899cdd96d1f66545d5ef85635ec51e1b92e17042f56b071445b15c304df68747365637dee43658d8dfa61087f013f8805a029d115bd5190da815f9b4bf188d2a123e15d4099431e0100c784449a69f022d1ffbc2d6666147a07bdf7dae1dc9dfb3c577a365a3d83c31db7e9bbfa3351057d5ea8446137aec9567b9d3d2b3cb9c2f265b3ee246ae8922c2782040afbbe4352136b1c6594ab31033e5acfd7386f02237ec2849ee997afed7bcc72d249276e6c0f616cd14f4060371696c82e5bf54b264585e2ca30c8284387202f5abb0539ec26a9cd4a0978cafbec34ce4f811718a13710a70cb27222becf0228e3e164571beffcd05d8d70b5e8970df674c817b12a530b8d078afa44f7f1dc79e9466d351d4c2608fa80805504eff869815cc2ec32ebc71b3d41db99f42664f8b05be17a115ff76da0c7c318eadf67c3e78a9828f37b693c7e3168bac25bddc9dbdf68337aa4560894578e21bdce07d3d88a7eb4c578db279c6c5d699941bd4c22134549078545755690ea6a94c8cf40e95c4da544c0c0c6da87973c1b178d116703741cd25e226348b221a2fbb19aa26a8002dc4139746a76a75d0cece439bb9f4969a8b2b57ed74cba5d4b9a008603263c14b78e37d2e99b770b8f93faab7bc3554d4bdc57c88a66bc1b2663add242568eddeb78e9ee7a7d7b78809cd26982b0fa113c435c9cbd20227123e09442461b148b5584b49d755bd8aa0664ac2dad71d5bd0be7f8c64781b1d4717183ffc0ada7fae1cdda80c1bd2e2e1be3d15cd7b54fd4197afae006d4fbf0a86d2639efc992f59272de26a80b3cd237642c3ea6bf2dbe74a2195416cb4632e573f7a1775abff79ea5e5a385e2fd6a06734498286b3e347b46919d0817bc7c2a1dca8273a56a75a815c849287d825de8b64357559fba98fd343447f48815a73c90093feefe3c99a2a75579739737a06072de06f2016aa9751f0973aadc3c655cfde729ada5003822ef87cd773d0e1375cb47ac2e29b3a57f65d3f214c5535a4a45726f3526d586247f9d7b7cae01388a41c7974d9c7a53ab7f1f8a9327d268f3f020580c3703948d3852e30ec138156cdf4ab3d3e1bdfcd0b586f210e6c1c58b79fcc10182a1de8b89c2e0ded3b81dce97ec2325d590bebf2bb5a827c76c1f5e11d21ecb30f8e01893e5a16e7207a42430fc444df4cb0f32955740b663f72bb771dd52479019e5228c5d0c644cb6f00726cbb9399d6bdcd40ef912f269bb0893ab6e8126490069f860c90f816ac8d44caec7419eeaa6fef884e87b87f538bfd906bd794c766446495594f94ffa437649aadaf34ad214eda1de682ba5187399db41b5299a2730509a37d11d8acd880e93b1f9e32e446f7b1f27c73e8a0cca58e8d5e280f460243c1dcd8e3867e3ed1d74ff56119e19c6b45c84889526bedd847060559ddfab50243dae6b89d9271183654830f9d466edc798585dd4625966048f5ef4b8cbc3af125949a515db2ef43438d55cda97452d702286b9779193f927ce836c6947630854f1149a1b71e1b394728df4f0507a49cc2111e43f2c1ba913bd0102142daee2e2e55a2438e1a54484a941959478bdced254d19a68346ef332590d9f4d4a0d5e7e82f21a2667b2e3a297c5bed77991b37982f441244ac992f09f3172d9e93915dd0cbfc25fce77980fbbebb3b2be52e6f160aa7497b4a249164f0484c29d3f537c521126d3029c66ac18bd9fb7098998940174f8732c70ff5514b142c1f4999e047dca03b72ca1a3b73bbf137911404042da9f214044cd34412966633199087f4efa024d99efc115c05d1bf3101bcbfdd68aa4747862ad2e761dff63f78040dc805ef191c302ab637d6d6c227650e49eecb7a65eb98f598204f821854bc1334a341a73f39243cae164a97af500d21eac61e1921139fb0571c685029a6ae88dcbb5502028d26ba140a23efc063c1f382e75bb43482e363fe3c257db061a0fd680636d887254c4fc8c346c9bb08e3839d0db501d9ac7d4ea57036a96b0fd2dd809b26d6f08fc06990ac9bce3b987b05bf5f35df89bdb087c92829c31cfa760d323150a27d88b6486b37cb2060af1cd336454acdc2549034ec13bb4512e4aa65f360be17d78d7f46d3a1ae692f0729a93815737ffb8a55062d8ae3f603fbe50aa640df9385abb9f4b5cde3e259d3df8992f3929820b399e02b9ec6888b656ea22f9e0b6a76a939a34659a65ca7030faa06395c30c742c5508d434591b621225d26d07e7b81ec64fd5fed05054b5e4c0a131ca1cdc6a00e89398d616451e5096eeaed362bebef70db8d3069a7cb9d2c33a7d093d0ab0b6ddff535bc94824012fd1065838ebcc5576f4d92854e7eacd1405a2c74ac68138ee68e9372dc73a4029de2d87b6b8f71732ada2d9b96c107fe51199a082993592ed7a5dc538b09c2740ff2193f4abda93f28df6c655aa8421018531b870d4aed5c4b7d9b5139d5f7ee9ff6299bc823828b583791baf4b24cd2a1a91831b504a076480b255b3879ddb1620f2592d3a07cd56680fd081826d3b931aad02155997756d91c528ef9e1c5e73e64655d741fb4d9dde96b559b0296e5c0df756c63e95f67c4b1ca4ed4abf3ffc7a43ad8a2100a87f608f8dde03befa2bccfb2975fcddd02a32452a5f8b81e8706c5d0d268251ccccad8683643e182e987be82acbb0ffebda847b55246cec5cf1455fae4105018e938c88dda3e3af91b94111e379d38d7782c12f02fce6cc3c8bbef277195dec25c435918fc89d22ea33bff036d8070f9372851e9011127353b5558087d3492cdc77334667ac258275c076aeab6deac7e1b9ae9c379e573bbc0ab10a369181edcd8c6c3b68aa4024c9f546a60c80149e6f08ff01a2f67f9d1de195fa8483acef39ea55cf5f3ba37139450eada6bc9fcd804a051af9627424b75a8596b92c3a36dbdcacd3554a4d3e4863da57775d599a940ede351aad8f020f50ae46765abdde407e8e8ab91d05b6a081e420f041e70f75551c66055f096ec31f0c6ec9ea0bdce2a00982d13d7657adcfd20ca715927dc0c88a20b780d55351b2a1dbe5be2d9368beec15817ac094ede3b88feb3fa86835bf4991df5e1069f08bae11a16b1b52b06d4b826d8745b2c5a734e5e4f0917058416a0472d6bcd5bce6b5be6155b983aa1b17ea21c9e0f4eaa3dd5a60e6d80d3f2311a50d7e5544e40e7fcd71cbfa2c3a545957cc781a2abf1a07d2be832c7f269a5a7e17d5e7eacecd67b1afc165aabb61ea21581e69a6126c07f31c43de761d0920fd4ae885e89a06b23c8d0ae2b4a5303aa005512574d9e5535c82a5a400656d4586b280a86076b1974b435b0d84bd0cc4c815f7ccada5701aa54d72040358ee55625b36fac665ca62299bcd4d6bb90a01b8e7f3668e65abdda9b52af545b644528b950601dd2865f90df2e71010c1e48c0bfa1566a793027292e2cb50d79b8d441a64b4e27b9f75e2ec5dde818ab8ad8d8f1b1cdf301f3403fc279d5da246e289cdedbad2403afd1d26070a150cc891b7c00a6beac891bd05281fc1ae862101cc84c23eab72c95652831de2ffc6233aa4055a46c97a170c5ba440bea86eefc73122e358da8c0b7a614d61f5891a1c757bebc0101c1cc8ffe837c03cf97d23c794b20a88b0607269374d9361897dd9e73f20df83ae6bcf286d20b2e53dee619358ee85548bf620d387075d9a6153ebbe4cc4fb50107ec86e75646e18d49bd13aa018702f2094e893a0fab9a3799accd47dce19f5bd91d241cb098ccdd580fa43eb9261ce6bdca556d01b7de77d7862d16e3e8f675e6d6c1c70cd3860ece4506546993e98a830b829fe75396eda20b641387de8c035b413d03604fd857a8e0e0e950e1239d5dfde57a5c2fc86dae75e5256433abcf387c2f34789e245b55ee33bb26714b0dee04673b5b5f52bb7fbbcb58868e41b2169d5aa552de5316a8ad430e8e7f79e920ccc7b144c0a2e03e1cba210be1afb26febe1a61c56ac2d9c423465145a5420480ede403c07122907778a5500a14c1d8142dc9e88715a97bb03c36234683970c75021a0d208c761409db8532a5103ae268f39f076048a0a186edae5e53f9b5bbc7bff63e9b3d721ed0f54f339558d46bfcb7628ab3507feecdbd07617d526433ecc27b82b1ab06064b127413930db658e1d75c554cd14a3e9c4fcba3f054544a0139d548a454572399126f72b8f39fce51e2343ae188752beacc90697609a6210ad4f28e936e58a6b1cdd9835bbc2b90e0e871939be8dd373184a751fe13dac10055efdbb5d906b6257b7539b384b3f6bd20e2c6fd7c81091985cb10a9f4ff5c1164abfab5cf1782521962bf6a2e2930e6e62b910de7d42d8e3169cd333f64ea11151e074a50ba17e0bab566cfdaf9cf7fbf3784b002c2d0c3ad1f92a6e2b41cb01eafb75b07d574f00eb8a8734c6d1b09e4be197bb450d87191f7927975e6863f50f5c00714b6a0ece7ea28edf6f9d5bdca6d71c988fd764bdea119d01200fff35a6d85ec40a58cefb6046993a1e7a358735f0d774fe9b2d870f5615a4f825abbf089b5c7ccfc1d5bdd79fe33474f148fc348c8dfc2fe720630140047de189e6f36fe4852d8cfa5e0c303ce1a18df71c96d0dc41ec993557895f158fa6996b82ab924336c48ae8f04940983066609a96de73f01a9d5f637ef671d0c11c1cc6ab1ac6ca55fbfbef6b99b542d5903f6e5db3b74d83a493610f7569a515fbb09b031b1faf39fa877d1e8a513226d4de437382e9e63edb4a9dd9f6185c5f752b630c5a04a7fe55768e40245bcfadfa55e6b6d4e75cf7ccc0c3867f876a84bfde69177681cdc2e58ab4468625ac3594f1563de6942786f8dfb56d095f17c325f1b0bec4b326c085d78064d35674e12de397af4c77045258650bd356a4606cc22093850c8c7d012ab273a3d90b59098a9258847b49152c0ee9ff25bfb3b9c966f1e355d686a1e7f2a5983b001798205a4affb7ca9fc57b5288d4f24be7873234ce239ad0767c05c10682aca9feb2a0c51489ea8421b823e62e1ceace18f393ea25b2abf33293b65ad258d3d3200c3c3a34db6571f286821a49631eb04710946fc02583fea2ad63cfa29cc46227ca4a6d06496e48771fa03414d1dcdc9c191fb8787f8c22449db5baaaaa94f3057ba4a7b8d1fd64f7fb0ddd91f28039d251dcc07db2fbfd760f55a22074c7945abae4aa8034045b0387e54872946f947d54f6d0d1dd2a273dacceb046a7b621b275cf912ac412dfcba96b6fdc7d039b938f7baa2bf79062d752434e069d15452c94ce0bc03d78e7513cbb85f1512ee7456dd756f9d9e88d93c38757bef05a081f3ac9de4540185c61e5d5384cbc3b52b35252f17dc74b1c0323cd43272ffd5869da361e1da652f1cd3d1226899af10765096b698728c57ee2d745d421d3a600c31b21fcf842e8877506ea8d38ee36ec42140fdcf03e4c4db3488d4c0c3bc4333f5035208ca2e7d38cd4d8046d2ad280e6b61b20b66a0d1034aa22e75eaf65cd2ff5600f8c688b1be07ad223f97949c23a49e84927bd9db64d400919f3d99a956c61ab0e0a9e8a551efe8f7f5164ea3a1dacd950c21a555e3e33f92788608b0ccf5b1186741537d1a93d98c1b53b52a242ef6ddc87b1bc960f437f782b7ad0be60382b7f1cfd87e1f3672b4156860c1938cf4372ef8369aaff374839e7978a4b1ea2a70578ec2cfbd9020f3b1041b3fc0fa24ddbc9f00b9123f94a54b006463c61a3bcaa8c868a61422c733af6f4cb131f57ec8fe16e840cc0dd835c917a879074ec6a96f6da1f21454064de38a19aeb3606ae52335957a22572c5c87fad2a0b3f62acd09ee21fb8d887c8152b1b4c2816ef7c97daf1dae27935a2054dd4b47c72638c974e3fffcdb5937be2f91961d74f7e60a6c2f52f7776cd8f47359ea810f6de4ceeb767bf6983297c194caeb8b4b7456f8d190855f3f6bccb509260fcd75ca48cf3f2eec9157596f46626e49d8c1b32523db240e9af981681e51d27af5b7a214f4738aea544e9268dd89455359786eff74b0d92963a69a44f625be22e0d263ec13519b432d5fbbe0564a961adce96c53c1e810a276868624562fa66f5d29a9b785bb17cc4addd795d8178fe7c5eedbc1373a30aa88e5efab71824529a205595ffaded9424076ec33963ea96cd7c562a44227cc98831a1a38b587dd0d15c38a92046952dbc5c4c42575cfa868afd67ef3cbcf25936a7b59a593506f9814d5cc03606a94ab5a59ad6d67ac14c3c5547e6415244483e52ef775938dbb549a2b4449a692d5162d512a48f86042e14982ea65c191ea68b319a599ad849b714e764adf82bf287058b65e4d532ece1fed9d015d7c1f3524af24585255934463e0afd2c98040c85fa95a56879c305bdb5390becf48759d074206501ba729d19065f60a14216086652f906853288264a204200bccd8eb81e0fb59485ef1efa93e300228101d17a55764becdcac666e81a589e592ae550aeead1b70b6ba228cd546b6ce895600f6acf30df075f526ca10de24d36b37dddca49bc82582d522cea1ddb13723067f3ed777ec6e87a11bc3888c5eb137f4de400ea716e6d6e2bdb1cec9d3980596981a75660119105ab35a5e3298a963c44d5118820129f82c88583ca8a30366e00bc87d2a64d859f7246c397e172b405e8ca935ba01c410fdbae2e9317e888804c5f52fdec0c165df3a9c7d6f15db34c4e535bdaa4a81956c056e82c7cbdebdbc7419cadbd71523830f4babfa50178a177b4ecf7472126395e97ecee2d1b069658f2a82010d5385cbbfad2b0033c8095c90069dc1cc20187d7103ab7934f480482cfc2b538c3ef5152bef18bba555eb01e070b10beb64f1488a31292d6087461b6ace459d0af669818e199e7b0e4c3a8db2462ae355a3216219e2410cc1d02abbc1b07330055694fafae6193ac6811601c8137e9c16573cda4442abaca7fb04375a6cc3f57662786d9ec3df4fc4bca85db37e65f6db641dae317bec7166a91d51b2e6ae58f73cc4991c6cac28d34fda7a0706b74c16d96f0a132b1bcc1326708acddc5a7ee3b97f29f08407c939f1c91537c5aacfd66cb45ce877b1b6d3322981b52ec1cfae2635323f5b23519d063f7ce0173d5c113cba42884b34b4cab668afddf094a03f8d804241a849e3a0676ce632d91993e6db7d67fcd14eb3b219d67b31dd42a1982b89254ddca91eb460fc116478c5b84c6d722c44653a85d2bdc035d1285468f102fe540e0fd43ed58f16b9ff8046642a37e703cfe94284b84115bbe1cd7132c1ef845a4724c631c3c658dacd79b0b696b16378c5b80f22f38fc961dabb649dc6ff5761414e1fb8e054275e3ea035d16831aac56e104427a2205f60079017c7022a1c8a11960aaf6875edf5f83c617a3c95b7866d89665c27a61f99e936f2d2de871c093880f3d6213cfea86694c02e16609a685fb443f82b9032c91cf2b9e7a1f41060492a886360b5827e45d700e1ff21f38af10358511f4c819f35598b1e48a652dcbd3dc4c0558a235246ae1070b0545ee3b47ac7ee84f7005cb10f900d129e5ff056d9316e46589cbdc992b4f1f82f9bfdda47da4380c405f138ecea3cd64e44d52bea1ed35ddbe017ae5296009c3929d862d0ec8b386970025896289c048a75db49b76f6dd389f9610b3311f8d0bac73e6500f1fee1fe1f1f6595c1f502c8173ab93f07a2ff9345bd623c55e90de62d821cad2f72e724485c05af132cb81c8c7e972d067e93cce2bfae2b74815877761041155e15deb6057131e240a0ebb83d2cfe9dee87585a0385a1587c8de8396bfcfb6c8dd7679fe20f4acd966abfa4bc7e15bb681afc2b9bbc22ad807d30dede5260c77657523384eb178bc699609aaabd9984b80092a5a59c862d4c1fa26613a9199ad68115afdd502204059dde20b72067d1bb6e265f97df33e02ca948ed9548cd7a608cbd197d99b62ebc9b2a31a8d2e9b85683b74e3bef66f47f29a347002adacf7c30df853c7068a98f4daf3b79a2e419933ed7659f9ebbbc3a473bfdd0df0a1854344f8a393c7209a08cec8b87da76390cc88668dce0340f032fff091f1a607006caf3fa084ab420ef8219b93d33320bedc53aa62b604f2564aa6c0f2a4806bb0ca90afd397dc06b178d2cd66f4353d043b372008b4d236d88163977228839f779e234273394e968bd1f423175b37e00d530611e3e18977af348bc5b7da76d13bd9c042d58ab24967a78850f4ed6b69de973172925422fb5fade14f42ec7df8684b9b667e554ea9643d8fd7feb46d9450490a61be9c84a41b1b8f97ffe9015c849aed646c33ef318186edfd793c468e1d459459683daed9691bdf5b24c02344e4a837d03aefd1289dd12f8f3270f30e8985dac41969f65e1cc99b53f7f715d2925bd332f5cfba98e489d59dc60386db10257d004b842be1d8e340951e6613187ac7cb0ec01d11d9d769894fbcaf42bfa2f8eb73aa24d2644709a6c4796cc17e4e994942d4a96a7376776d4a6c979f4c702f8467b8271ea970ac96c9578c2beff5aec2c86cca92c641fce3bbf01282144c2fe91807de694dfe2eb17681f68b698f7b2bf071c9930e1b8712a5c1c41781667ca4964464692df604dcf979e05f5e921f25afd699811a93857dd6d07863f17ade165642edec47eb9585906225494017d76ee2c9ddf03096f84ac5de840e3f2561a3391513732edda28ef75c039e078578295d58ad11e6d63f2827aa6c9ba6c2322c79a22e99ed7b4c391f0def400f7256fe84993be4eb09b2ef1fd1f01dd1c2a31e6283f9e71ac625d12b5372df30085ba1da0d738a0c7c7d9980bfb0646af81c9f73df930316f3de63c7c29b0b62723d6b53ed715925afd5d51123f664bc6132e37b3b1222d07476fe234e7b7f4b9ba27b9ecbe0f6aee024af7c79ee4c607ad1f153a16054ceb1289d3eaaf2b907523a234a21b79251d9540c31edb9a85b9d2f8ac22c94eeb6c56705504f58b724176eb43b71428664305e8da0340abb3bd26e6a42e81a276c10f9a910958212df70252ba6da34c57e828107bf1ff20ddf014286239b6431b38a7af20d35aa4d44d99bd959bffb99c062b54f060f7a67bb0cc3ea1127f9565660ed7cd7aa3a05480a038890532fb1387a8b66d669ae2f415836bae24e223188d2dbf9a94038b7a958d08edf48a1a191ee716e906c3a11db4c2c6d02ae46ffa77381f9d3cb80569aa3fd298684018065636990b2c966aaa3f8df7ce6ea89af0e213e603b49a734dbf3bd211454c213bb2059251fdb9f7b020f6ad89875f277e695938e2af28f1bd6cf08c2f70609da46b81351b9ead10f005a660f273d4fa4d6b66ce31c6df1bcbd186a54c6de515f92897054731a65ce501cd748f81751827d83bbd23050022f85025f7ec8b1d8d90a43ff3f34eafe73d70d80669dc608716bf419d0e18957abd5cd30ecdfa8b4e9ba1a7d08632665306a31943afec28fe9b8e7e540dbd9c70156095fe4feaedcfed444da05d7fc9c7006a2105c56b4e45f377676ba63aabd59a19c45cd41fbc60c4f1e0fc6151cc4049afda5f1218b113ddfce47f9d186b1f613e0a3caa0c1f8d65ae3fcac414dc2257215444ec0bf2a298784586373a5088524548bb83fce891448194941a90ae9954dec3a0b729fd56fc9890f7d1ce416535d2d25931f564a3a70a4c61b915d31220a74a5bb088e12067cad83937f0031c34cb0ff7085aeb0463a81b691e166b48114173ae93348184aeb84282beeb3c97fb69f791a8d65a213691e7203a341792186a2c8110e8ff3595f3df20328a361b98b262501e6442ad60d2db8d12b35267e244e398431199a93eb73d8cca81333942363cd90f765c0d9f912bb473e9ee4c1a65f40e08274e99d12526f3d8912effea0fe3c9162505dcabc5f66b49c108d6847189087282d4948145f42f34b6d7e7c73bf062a765f5530881596910af7879f093be3c81e761fd866b3c32933eca2c45cb8dba562a21adb128aa66690379472abe2ecadc8f078aae63812eee4706466bd2d35a96c85871f84e23f2029a08a80c3b1e8955d0edddc47e87d7d590f8bde51b476a882c6f5173ff158a40d9891518004bd110aadcacbf9e7df498d149ee1a7b0723b046427bd6ec312da55f9df55f5d4713ab8e056cd9abfdce0e4ab4ce468246c83abe914d1451677ebfe5a023c0dfae4673eb4dace0e84ffa68c23ca67c1a7a0e3f04563a73f36a2b4131122ebdf308187ae26a0e2a2bf5cd86c5359be63b9e346da58f83d134bb18f640078b5b33430b33e5cc27b55164126278c0208b74946fb49fea4abfa28a100044819ee20ded57dce87758c43d0a8cf430f5042e0a1116c8286fd03ed54e1632c00b727b77013c0ca3dc3da343d151f401be37ad16b360d6ca7b11c52e0186e21072d9a543ef8a8e6920bc6a027c61c2382a53da59c168141ff0b355dcce801a203415ca996e95107799e90a746816c6bdd38db6889d5515cdb877847d81812a65fd69c41ee076efbaa7abd36d9e24077c805c0851eb8e255a1daee806dcd99d1c119c84abfdaae79f0bd2d79649fcaf245ed05df2c4ec7c24e6295e355c94b8536b5b4edfb11836f7b735a0dad3de6d7883f97a617b2e1e9e18aceb08acefb13008974accca9e5d3bfd6ffc9755ec71ade09535d492213f2adbad7499065c2132a847834d074acad087625abbb4c0257eb5cd4a9cae1a2ef0ea816c53ef7c60cce1f2308dba65849e61a93148ee9b0615f36dddbb8e32a3fc030f3cbb178131d747bdf4a6ab2585f8270164722d83bc38e5953b93f900b842885f40b38b81a0987ad6eb3c099871f42f529b217baef3ee5d2c3cf29aa7a32bc51c0ec6b820e0e49220f45bb9eeb72903d6340015c8e84839a5628e7ad23b00cd74ed49c806f4321754e5bdf3434f7e76b099ef9222aaecd65e4e9bc91d9458ece2b0f9c5747ff94f027f1e37b6009c401d43cca299d0970206bc02b51ae9bcf4e900a2d00ea6c7bc777aefef40a013d7054bf2805b6a2671796b7527a919effcfc3f4bd64667b6bf2340558de2a0ca42b0a7cef774a168064138239473bc154c7472dac1243a0589a0e823ba16ff06e7bd8be8e5b804a680d9edbd73ccf340f5e07e1749f3a9b19fe48d5291a8ec582094661067f3bd3b2e7a66b63d308b4f67e8a3b3fcee2cb9df2d88ad569324d490c1086fc6afbd7a746963c867ed2e643b5bf229d3a9493d2ccc7155fea5f7d10969dc16c7a2b97fd2f76ee3f31de010fd6f7cf2c9d7e12e47cfa08a6687e25ec3096546575fe5162724048bfd55243182f0430b19e2dba1c38c0770fedd9ea7feb950d2c807e520c6775a8784ec49ba8ded2a2709f5ccd75e96ff01cd904cc5ec3429b02447f54f885c5d062a2456ed66adc3075c1a6876ba2589e7318e82e8d2ed54e216d16ab7f61658e0bb83a44014171e16e3895acde93abd40e04c605de0bba337a58f879059a1df825dfee742c93bc2bd039a9db865e85e38248867ff8131ebbeabec0d347712bdf8743ec101cdf6e84dfaa1b8fadfeb63ca04d2782892addb8b9545bf13df191ff7085d02baddd73ca610c7f91dac02e5d81e996468d8c43b6790c3c1d35a18b89113d797489d69c069427d1596bf1f046e024685317cb7c642fad89bd882ba216ae1ef0b7794398919dba0cbcf9d5aedd1a0ad213e5663811b8f262af370653f549c1729ec4c2c738c1227e3c9ef189f95f19f8ce889db10bd7ff2df1db33647908b859efac3fd96947d411aead35ebce625350ec1d27b19470060d6d0e08cd8c06482e4b04c95eb4c4dd001e949e4f184f6d0bf17e360a0ece1bd761d1652af79dfbce3e45a3c52c1221c667b095c5e5cd6f3e104832ec0491007359f29d5b8a497b9a7fc95620d973b7d38bbe4a37390c8d63a0fd97543423717e0657ac0ba737be750022c10d1cc2eab92702691a948d33eb5b57372b51314b54b0b8de4a17b68a6d5fff53ab5ac17371b2ec98fb6eebbed03402a6d0a7268f19da261c6d059866435f25931c38de766ff53dbdae52f5858cc9116a3711656a39e61361c8361b57ef133eb052f67fd31d64c2b450e0e53463617d6ee4af1b76054e352eddfef511b056d5890a0aa219aadacb14f772f36ddc9e654000d4f40b8781f23351f50cdc8e9e27b9ea2834754457131373f9605c82d98185f45063c2a4c6e1770da36b61809b59b3be62e5e17df454f8010c0d1cd42b289597abfbeea949284c4912541ce2b3e14d8257d91b09a58c67762f64a4f4be3bbe8cf5b5b8fa1349e6cb0fe83caad14c98d2cc9709ddbb69406050536ce95ca6c4a22a23fb2c2b87def3d9478808a1f002c13e90adec487a1f66f0f8642b5652d4b99b65b4d246b756a8fd7408ff52f2644ddcde693bba89dde31ea4eca60d248358dfc33d7415d0fde823a70608c0c5fe6b10dab14ecbe2024f68eae8c8c14c8a1b9cb60851bbb343fcf2081ade4acfee8c19077e5b7d35cf8e382ce59b644084a708580a69a1afd2fb5a7fab9ad2bb5dc6583aad2e04db606ff3834eb8f9e3ae93cd5ec118d46b8031fcdc52183f6482f2239172004e784370c9c90fe94ad3ae5515cdfaf0d4568b68273600340604ffc35a7b4aa731ee39734716d47ffdd2b38e2afaac706e6ab6007cc7322eb75a96f260c2fbe1b80f0b74eaf33e1f98671f7089aadf90661e38f99bddc0c6a11a79805291983618f5f58cf6c051dc4903da80324fc432492443b08abc7f1f26d2cef63097de50552da777206f967a6d9aa8356d46d0510dca1bf8b29f6cee936dccc8266065375d5827cf8ccd88df200f959a0969f77584cfcc54683495ac3feb306a0856b293fba941351ee48f8b329ee5c763d29ec11365dbe797e8dc4a240f0a3a56d839ef120a7ccbe782e47b1d1de72d7a62a3d335425de09c218766dfc2f40311c7f2fb4d739b09084c21672b6d64efb254cb64fad2e1485e3a2835b6aec19394c8c75e64cdc0278da6e4b3798cbb1df3b1034b64b23e9ed66b3f3b4c740e7af3138b90fd51272b232c5f91f434aa0d8093b33b39a20a279336a53c7d2820de79074768fd3eda1965109c9b13a70e9023dbeebed8522161a946f13f4d8caf2a3874ea51aaf5f67e69b680d5f34d735bd96ada7c4c46b24e67ed4ef7a0088c684aa8cc7699432cd7df04dc426cb98be9da8a03028fa7bf037a9677374f49a4e498803d20e7f744f94dca6b87cf529db8cf3b41882ad1fc6eeb6434d82d6880ba2e8422534803975d9830c372b538399131001c2ea1149eea7dbebb4fac6bea0011c625f93c443ae39a30c9615d1a0f6922a8702be8cb67de296d4026e320bfa51c8e6a3c7b84eea41a800a3df78c921afba79ac313a3629a2e0789214552c10c0851437ac8757ca314fdf7610555ae566ad1216de52b946c509af4aa445b8b879d414047d9b7e12bdaf28c75c3e8948ea234c94dcb803bd3907c945eabdf8cc0f7d5accf1ebfe8754a025e32a6d39d68a26330bad8e19319e05f25a58c8034348f4ca7a8018364c78a00a10572ed36b158d0ca4836c00df79d97f063551e7416909bdd24c9cd5fb574e3df0b446df4dcdf65b2f599a2abdfd6ea4c6683d046f27afacba0c72172b7bef847aed886be24bd97758db2252eebd3e14c82458a275cf5fd59fd3ff33f376d7eb7ac92d99331c5641b390c936b34e78f855db60365c47c0e546a4641dd783e6a7add6acd3dcef1fd03258549bbbd37200cde2e24766e6524c9b813e509c6f27f3a351a6d488ec11a5065957adc3f9e5a05480be87304643093d9c9d829b6969d12b6b03e89b1cb7fd3b809ff1e8f6318dbdf0357787f5cc5f5acf9ea6eca4d762b1dae186d4848ff02c3decea4bc1d54c5695a1928ce7ce866564f18bdea34ca045e06c6c446d9b1e3a68c6e9317152789053335447ed8159cbbccde35f1bd30f62e030e763ee607e6c74f3d5efc67df5c1c7898bb69231b64838a1a54b4a19f9ccf18b4332b2cf0695affdf9b117b7ebffaff9eef996654ad7524de40cdb725c37f2f6cf9a33ee8a35a293ccfba19a3dfc28f7e9407ca6871d5da21f1b6bc96f5801b86d9ab69cb4dab12c50872bff2fbadbb9e6d27f6d9e9780f1a2db7bd00f6d10c1fb8f47f84947b5dfacfda9758201884a67dc4fa78d193d60d78b0a3cb90e9cb1314b60c389c9fe2b933d1e83add54e000759ea95100ab2d43b31d404ed37e62b0d74a126078bd96734645af4a013368132adb66e941202f58f1e8811634bf6941ee8811f280b1c5be05209c5787f6919473745609157b560054d2d7fc0c44fec2136276230cb59cbdb14d49fa9746f61684d718c0c46e37d9414f81628180af462784588d07a5d84ed05956411435bdcfce0477c1289d97a0da926ea3d81ed41842e0829bfceb37ea0460c7d86ac084480dacf9ef16b0bf2d2647410f07bf044296b1ef01853cd6353dde4b462efdfbeb3ed6a0bf7d87f6122d296087a190bee579db9102b47619dbaf7a20bf7c824643966300fa4c6c331580d39b204b060f39fad24ebed65e8ec91afaa6575b0b32d923d2964b9512b7b2c98fbb8d0824e689b06b6f502e53b07981516cb2cf4e5f6e7c3cccd2aee045898515e09b0805379ecbb63fbd141ea6eae4b7e948bda33ed32b828bfa9794a4d130bc57c101391a6e7222867a41fa8f839356446a8925246f22dd74baede6755849956ad5521bdd13fd9e31b90515327a435f7db25a712bc1f010861031c40f2ee9644235929f07e21c3c61f05db394440ba0d32a46ceed3bdf4e2ad92e4ace1ec60f59aad82f49ecd7da0d6b1de4bf39888388923d75e2bce843d9765890f2e2ff3e0b0119b6270f8de6fcb1bf144e071d4e7e5bd928f5c3c4170481befc155f76635cd821473ad5b6cb969ce40b3669c6d226720209b598be48eea78b79e936446d9024894f8924b7ec84b4c46ea7681f83de44f82b71c2ba0b2d173318af7d38941e5e82a81f46ff7f141f4590c8329c9654a2775122f9940acb4dd3c69735c9a65f8abebf1a02f60333551b16041659de229228ae4a31f9424a98f143a0d5f8090730ed2426ebbca568223852fb088a13c39db183c650a99d62d6a9496182c82558fdf7ad1305799fd0e539599909637557f53fa2e89cb8e263d0cbd73560dc0027b3c4afc12fb96468786f122e0cac455b0a98a69ee0c202052f88835d0b55ed57415ed3c08bc5677bdb8dc62783de261185d67f205d1bc0f81cdfe23d6a6e40a4408310536c9a22c2c9573c93e0c313043468b56ad0510d672fcc126c753de79e3cd57cf8bbcc2a74e46f7606b2fda9298cd415675c0a5968992361e27321a84fa5dff761f1f94cb1f4c992c9dd12320bbf167580b4a6357dbfbfc4d6a2070e416b7e8d846e7073ebc01ad1232ca25068995722b9a2aee12745132fcb94644769ff8244fa6c2e7482f598ecdc5b1b2cacfba1557914e57393bbdcace8d53ccf18a79ea5c173570ebd4858f7cc010abbfdd8f0b2ae2c33326964f14a3b34ec71e9036a8de110d593c1ed745dd73080a2296ea6e1add758e473abf441b55f096ca4bbbb687134eef74f99406c1d00a5d278414640d0054074ebc9aebc2f2c53ead1c31546362b94254400d362391f10b9f843128e04eb50b5250a0027cee10e154d0668613439121ca852a511cf123bec52de3ccfa831dfc58237444da6efe997ddf3a27dd96aa11a1fcf90a045e0f674935a3ad2ec1bf982deec3d9b41f55be2f6f25852d758000f680b6c6a4a4d6ba199100301e8375daf57e261ab5851e5a1e25fef574f04f304745cf30f569ea7ee161a43d89661a11032c0410b27d83ca7a056712482be59a0a70a87d532f3ab5c0edd7a7d6234adbc7dc951fd0e432eec9391b708280de32ddc88bf2bd54c2e85b07f120ef42a2bb9fccac9d98d8b4e4c491cd2e4217439be0d726600cee9c80ef4b6d3b73b72b31b3d5916db9235d5d765dae07fb07120bbeef00b44e3b78700b152693fe79b96469e03169c30eff3dce0a2b41aa313ef58016d3428b36c365d29b140dc7446ed49d5802b48dfaa953435bffe9784fd83eac971d22ec1b9ff091caa0407c4ed5514a00412c573aea613123ce8e7ac68ef434bf7bb89b675061c4c4f3bde0762c9357c4058322b3b11a9e8b39023780e5bbbf65ea13776033da49cf0c74d61b3218224c9a31e2c3b978411d3a686fb69530585dc69b9b9496a678bf63477cccb0c3dc8ca3623e7667d0c229cdef7678cf0456a4719eaba87cf14c922353d6a3a340172b9d586a935ab2593ac90b766370091dcbe59836197176826e5ba308c71de83b87a121f2fb6a15a654342cd9798ea78160751416ed250b2f4769f29ff2b408cfdfa23106a53d34a621911a8a9357c0d83dd96f02ad2508602019154cf37508f75f10f39c992512faa761dcc0330108737ca3ec47cc9de21a13be64478794601900bec72fc08f3dc9ecd9c5685e5e730ebb55f30476c3bda086888d8b228189d3f3c1a5c957c7eb7776b4614dab41f42e81c6d3710321a67f5d1b3822653146ad27c4694048c157f213837bc21db57d4aceb058f2ac6baf12a5a9c4bb4357eeb5769843f18a14f2941cde7d11c18934829506171118b70adf9e0ca1410aeab53b980a8421bab07270af849323aaf6655bda0983a5b1ebe0df74a623893dbae25c050e12c88d53852fc6fff9dc47ccc3d975030faf47886e580dd96b16b6e2adafd2d04185b58ff14f9f6d99652dab4acb01cf326c59367063b9d0ea8824146a808b1c756fa6dd47cad499c5fad0dd3039b71cf7ace778ad2773ccc8374e2928abfca8cc0bfaa1c7fa946d34fbb3b903b2c646d8bb4628e4cff2e568480486e9a396035c121cc04a41f551fde0c623d1e328634e2ee374e26a091dbd5e3c6db97b60e769c887cc26c5f04d6229bb40c4db04d7642e5c0a89d5098402667ba9fa8b23385643fc81f658617ff8648774df9d5c795aef0bb84bf6c21498ed41dbd2ee84829a6ba915d37b10dd099c3b66aaf67b6f76476ddd7c68b1497ae8282433fdfdc4d036e61e19c5e16582c1e1c4e3323a7e667b348e9a34ed00689e62b936db391bdde1148b9ba948396cd365b56d06e96dec0cebeda77ffdcadc071a74acafa0f9b7e788d481c59ab9e4398ee73db18a6281af5414351809b716a30d37f37dbee38458c9583a9e44fd43c17b747c86e419958c775675adaecaa611af212635de2634d4006cb7ae5179799cd57c87e3ddcf5ecbf95ef772c3221316240a7d99455b45572fa4e8184ddf27d6754d5da6731b506702603c97a21b0033ed5ce0146a7c46602bd300307067fcc9076002c95ba4cfa767f8bd16490503dbaa46c80ef5093d470006004344f6f1f3f7fbd4f097e9953cabb2a050997f81e306ca96cf38cb808811f2a5224d4e23cd48d5d788bea46c660614f89d77ee22d0f1339ba85f5a84e49eb2035366eeef2dc35fdd449c2cfe754de7184dc59246ba0945db5a04e2c626af3e661fa79b55fd0b407f7f1f7a4685281fcf2ee9a40eceb8a755541a30647cdd2c23da8d73d9b9adc417864ad2b9b696b3157b5cc7254384b9e49a347e17911bb77048353b08627bdb2f8542578158e6585b511ea9ffdb5c0ee7546f0137a907d9de0fa61e10daaa680fcdcce35dd1190c6d750c7676cb7566b8b9823a04ee6bc3045a108a2bb342adbe70035272634cdc289ad81a0c37855edd942dde7dafd7a399e94d2f900c156859910f8e196e34fd698e62d96d77a6c1a9e4b4940f4646666acacede7bcfd1b389a3744b02baccbb299365b8e210bd258ddf16b1c9482d2664d6b50d8dff69d910bd3149ead45d5bb14ba427df1af880b0015eaecd8289c131b1354875836d82c300d87ca941cdb629957d13c0681ba2b3b6396d038844e54aa9b4ab37011f792d19027553eff0e46c0557eed9c0d83c7ee7597c2af1f4f2d9b610703cec11d0be5de37c54d5a7893e8bacc10871b882080cf4b66754ab7e1f2b8e827cd66f1e230ea7a841d181d91db5e752993eb56175e9cc68d1ac8059fb36ab829fdaf485f49fa266e2449a02180673bb38b39716f54da59d87fcf2d5ff573bc3b45cd7556a189e7ca1fb1a134a752543f43c17d31f3070c3a3022c39322bf844cd99ce6a1eae914daa431b7135d5f4695e5d11cd7e1ef0710583688d356a23652f539c1dfdb46389461ca6e9730182e836732dfcc691ed3b30d6f09bc04e6377f80d055513725acbfd65ec034f9321c0beb4ec0ddc821995f7e5742c911fcf9b713c445f91b3347f2e72f7e63b5436634daaabe92696d733b5222951d2a4c4f926f4ee53a83bc35a4fd6b3315893ec5ba658b46899b9cc26b59bd7c309c7bcab7197d3bc4232399d13f384ac965f51d588c92ef33c48f250fbef3b51535506537015520b8a7d9aa519b328f76cfa26bfdf265a9fc905652c133553c83bf9b55f3b783831e8947c7f4e6234dda30cbd6d8bc5dddcb3d186c2c4ab032eefd9a87b2d912cadb3983b38ee242be55f10c0e7ae2c3b728f1ec30adb6b82b2eef67efb2587686260a4f2d49018b31a057c3680131488a0f7462ae436fafc8a7d83809602b4b9ddbb4f6b61648036bddd0612fd452aade8b6763a7903125bd93752471b097aacfeb267c5bb067b6c5da6d5d90018d20eb90efe38235c84b4f8367169c37c93013393108369d30ee800edef9dd01a2b08e5c9ca80c2b0270f28ac5af471d0d1c015d55ac32dcb92c1c94158d457710c66a8baec5688fac774763ea36565d1eba0f4953c630f061a4e9de3e81012c55646ca0ff40db616654d76cfc631c8785f34fcd121f1a2530d3a20cb486ac632a54909b6fee54b6cedfa7b0c201e57f8bb4f33f618ec98065709fa49ca85775440fdc1ca23bd1b81a68e90470ce5418d433400c0d40b048de29bb5610587d4b775d1065d45167c5217b58617b74761936a0eb1a5e9ac243edf3a4c3717c200728f2161e07270ca82bc231d19526bed3695f7e0acd02fa271f7c1ff04e26c407c4c08538a9ff4652f4787e500869b269928da294fca781d40d3754b28866275ac1071c1f5a4e66504426074830c37938a0d9d4f1fd83cdd994cf274644a9b4571b27226d1328a8fd040126d7d9f3498381b375ef68195560d6b8bd4357f0e96c3867d81a811ea32ec32a68251f312f00328439f6cd3c2753cf5277cb19ae108f7139c3f5a17cac1cf23830bbca050e6214afec7a0fe5a32fa3af86fdbf4f7ddf11fe6dd15b0c3bafd0613056490cf6a9c54dba2e74aeb9579eef9d4bddef4d49f5c235993c74945794046c40fe5a130b04dfec89495dcc08efd8e3c888657ff89caac3755629afc34cc5325286e2d632e4b0ed1350c811a9b1d498bdf4cc03f3f119819d06aeae1d8cc0e84eabba495bc3472a64b4d0eb1ef79c85cdc8f0e727c401b11663ec58991606569081160da9a670e38a09b5bc1dd56416f77666db6b542288fdf7e36339f99061d36858e71c7b46f21c5960100806ab68816d2766e66cccccc4ed74dfe4654398167ae44434fb9759c501515fc1f5f427f9a6d27c4aab23a32a3f1f1abfb61430b86808c3267d42ae2e9c4e806724a4e1ce9309be8f6e58a0b82439fee4c4c577ef9f049789ed75eb3f4379b76126b63343ed46583cc144593b255bfd852ab8d9d70e0329a6eecb1a50cc5903df446cdaf210321c62e60520eb218c16d0bb1b3a5604abd0d2c828323bc0882e48d66d2291550917962e6fcb2708c4cabc528b87fbd2fe65831d1918c5e82ef8f473540a68694d5f104936485d5567538dbb83b64896f6a0eea0186750ac9b3dd385e52c334c09d297c6be47198b164906f351cdcf478467c214a5a40c8a424c62ea595beaf35b6ececcf9adc6c54a52612dc7bb2ba3a43391afc349971429788bd91403271376759306270363f9d47f369f0baec6f675c2088cd030bbbad9a6048a103682553031d741e515c93590985e266ddbec63ef1cdf405342f272ed65d491055c1e3d38ad65ea7226c94e91e92b9eace3c6d46a6f3371ef1b099aeb51a3c7a4eda4b5472fd4da514168acf5f1aa71fcba7defe1bfca7e0eb30762e9c679a530354ba83ce97ce396602d0d446da5a87829da2a4f60efa02ce05fdfec2739a21fa78f80426735851a2688e400134a16c3cd2636d355606134eac9e8da9689e364dbc9f89c115da50f95553a055b422ca4e82d15c8b61357bc0c58c3f8547e6a56aefc8662e9dc8d98df140c743363df4565ac812b874522b32ca2e14b9985a099a9f3eccbb5ff8fddfeab8ef125dcbe93227f828cf1d3bbd210b2a95540fb33ff5be4b8c0233cd2b0d4b278609595fceff05ed3254c64a27b6d02d005759aedfb3496f5dac1d30292c91dbc7d718920de9a08ad30958b1bca406d03a3eb8367096122849b528518d85a5b53e60e201ad0a442a2435eb3f3b8792258e590dff697931ca38c535023997acc2d6a23cdd0ad0f2d9d440ec87ab7c8829bc790fb6949c5daff684882feb25100dd890f930b68d60cb4e21e4362f63a40a2c8fc521a17f9c84b662434dc9bc0d96ca789f5ab08e0d5c78d4d4053e7b76db136e8f8a8383f0824520fc9122a6919bc3373b78c79ed65d7112075f2520998a7024d5f42204cb6fec96e5da75a80a26d3ca3d8f092fd1dc8113a8440aa8ebdb9526ea7793882e23132e4b3c95cc6bcf303247beaf55ed789955b64acbf0d1d9c5d0b3527b07fe37e293ceb48293df4801cebb58b5b568b42126825b5d61dd7b696e5009050ece0a12d5708150f6bb070bfee7620e5dd23d6793faca0530d607f767949f6536e39589fa9fffbf4990e92ea64d24a5ee42894786f445da57955c0f10af8cec67323a6d0358a2761e251eca905e2d096a19ea1133bd3da5a6a074a1dbf5f66aaa898d030a9ca35fa980cf4dc6f8d782e2c63edb34f5c6538c143308f5344616d79e29f16e2dc82ecad7ff5b1ea626f573b75ce56d10791e40c85d4219e9c7ec23f154ded42760c2f52002356b3aa770a60e844473b9ad96b8a32552b0ce1b12e6137e3de785d7f07dd13df43e36beab440f497a90b4d3c45f5d3901f616afa5bf3efe483e8886bc941cc0a628c2cefd1f733c5f428524c0d6fc8529d8a2262087d02cbf9edcb297782d273c7267fd8d8df4a1456401680ad2ef080cf12c6ef92f3b23212592e66a1da1b06382c3397a799cf88da32097b47a41481c074665d3e61d1d9c39c5ffc5d8ef092f0a006f91bb1eed17c5478a05d674292717324bda743545e71aba2c4ea2de0e9b1883a619d45da140a52e04f81cbf152fcd915e73539a2b09b8b5f7d60ef00563fe7b73449686f084dd81c098196939183d9804e4c469829cce6a8ba051d64aee973992e41c2ea7300e3d9b0794728dd3bc5f5a437eddf3837ef01b364e6cb6a416153426f520d33c06f74286e59b8414a8d165d68ba5f7a6811f75f721a091286ed18d5ca56091767df91c4fa5bf08930a7dcc3d6c36399cab8897a48c070913ba322365d321b1ef336c17928318c35e97d63736633cf0983b25db180f7f5fc6c396960f322a2be4e5df51b495b8776956190c04714b46b3c17f494b2e65ff8434ba8c7107b7da30fca1323f6d94ed597efebe65449d6c9fe593f2e8dc8494e11c516fcfdfa5e5ff3eba966f16d189ce71ef89595b7ed434f107d3cb8749fa84847680fd1fdf53c13755263d5db8e1968f77382fb853979e544382c6c33bfdc51f646a7e1fae70bc1e5077c51021e37fd6eae7960d232cbdff51bee476e2d3f71b6aba679edfed0a0b562ff87bc6523434c09bb2005b370f1c3a3c6f10abfff0d7148f2986e7f7c6a3fecd7a41e0afcf9c4f921c7ec2f6b1837f38b20c111164b6ff48c7f8aa366547bb41205427be702459a29a1cf842b9e3f313501df86ade658d48f5da26017914a11240295f79567c282645942f467c9483b25afacbb70dbf9b05da1e2e5a1f4dac110c03cd4641b3e98d9630bddf48c15ec8e9da23bc25e05dd0e094b1892f3c3a6f09a3483f0d850c02f8dbe3d59fe9a851fa04d4255bdb4d848aafec13e7063fe6e103c94fa45d24c90882a8a6535c3de657eaad543af4b3ffde66ef422ca0294b624b3b22c27857f40a57a92220ecb3853dfe4f1d94fd9415a15d495f8e293922106eee7410725f4f7b2f6906a0a919007f5972e123def176a17462041e6384e60e561038cc6a737c1e9b3beddd1f692896083bb47fc417d1ca7e1b4266fe066bfa5aa2da915e464ef1c376cb465b0b9bbf8a4d7bd38b1d8a21e778f01caf3d76a1901b5b93c239219d53442770f4b6d192f5d226524a9902980e230f110fd8f45be67bdd0c59b51b2207f29e8a47013575dfe47d4b3f3de977338f375e3ef1dc04734e4d7e0ccc4ce67bbbee6f57dadc045d13346b9de9ba2ef366a8d6995ef3c0f4da35fd1b87eed393697ee39047999fd769d07c013b69fc55117e1f86ee618454aa12c45f8da7bbb7133fff0141f10b5561287e2ea16fe87bd5386a71b5fac0573d6b1c520d8daaef637ddfab54e357dea8fe73adc64fe8fb583636ac7114ba2af06b29d5872ccc62b158acebe04a253482606a687cd57f2ea1b154852ad57f2a30fc3e7114fa48707cd523c1e4383482ef1a47218f143f2f6a91ab51a86b5dfda56854aa9a9a50bca2288aa20e9a51fc14198e3524b9527db8da6163b38324cd90bc244992a48a66144abd4a55338a3f8ee3a84a95526e19b10c0a4d55e9be23845b226b5c22ee188b66c40f674495ea79a86ae42d63f2188958bffa9035001628744df1439a4b43434343e3185cd58c42aa17778ce3b746959812ff5395526e99b10c0a4df147a16b8635e2e7125295230df8d18ca558a64aef71a7cb57e1192240ef536089f3cfcc7b0faac415487665edcb1a8ed97d65ce33ae2fa45316b3e66ffb31f1e3fb35a72816d62ec03da9fbd9a786c77b1765e28e8bce4ba705c6d9c1c3d589c185f7741b702dcee8ccf880c3c4ce030e4b91e1b0ae0363746274643a0e74617460741be834d065a00be3b016996e8d5a1702137f87063eb2e3b12a14c715ab033b324fe6b6664cfc2957cd0e1e2955288e2b96efe0962ba50a451e3c78745d572ec1a324776880010fd70eed8e81683440101441d87dd8b99e3435984dfdee3abffe3abdaa3999daf471e8ca7853a44a1581df2f6185843c33c803c1fb7dd8f372d769adbb9c3d8ccd1a2876ae4f06f29a3530a5e39fbd20cf9472cb78a6cbf34c4f08d0d4a6ce42e20f2ff6eee7688831af77c57435ac8579350e038779f5677de1f0c6a06b9aee6440d5182a317701dec73a6a1507f8d461f93c34c488e9b296ac4547612d3019f3923e6224f866c8bf7b217777f79cb3bbee70d7755d8731080ee9d725cee21d83f42804baebae74f98e945b46a8fbdcc1944aa50a532915380a6553ca2df3f3937352aa2eb4b1098b3a3195ea3ad510fe2eecb4d61dd65dca3d548d18bb88be2b92a438127def8963d13796597fa8b1832b3d0a49b965c6a03028648542538766574ac93f0a5d53680c4a99526e1907c7ae3575d9fa0e494318e6fe8eafe980e9a114b8d00bc6c19f18b88c7b68a114dea334c66762fcc442f609bde41c1c6aa1e43d21175e4c975785e7e0dfe1f2422ebcc78b80e368817b3c2e180757e1302a3c0a78537852785f1c36018779f124e0302fd9c773141e145e172f021e04bc271c463e7e8f8bc35aa1972b6a5e16476a1e93b9552e962c600be2c09f52892f2863e2cf6c4be3ca2d31b55c527c073fe95ad97614777cb8e355a91d0f7ede8e724acdbd22c3ef704dc95d89f34c551a4d98f83350a1e11941d6ae162e7708eca38373f2e72139e39c717632f9270ca303876e74970a2baae81cbf2649efbbd7fa5efc1affe3cc0a85667ea150287c013b658c8708b17f443795ca8f73ce395f0757f91df41ddf71fc589bb596897dc769f0902e5d2edff1c733b925340eddf2fa8eefe85188fc3159decf4fce71af060aad3016ddfcc6a01a8c797852a314d209f2e60baab00aeb72c8eba4dc32a62e6f8654a6945ba62d63b211662d5c0efbc25791197c7f7c8ba43efc184020a82debda92ddb736e6f7eb8b7fc94f03a576beef5cd877bebfae0f2f81e6d7cd98a0eb5d1df807eee33924983883efdff4ffcaec224dd0a5bd1450e889a10b040a3f31747d402128862e0f284c89a1ab030a5562e8d240612886ae0c148a5ea7fa44d5cae5a2314797e79c16cbc43438a7873866200c1486d771a8572b73748540a2cb81542e9b9ce3b906621c9cf54a3f69239a9e4b77e1a73dadc304f1374778c3c4e95e8c4531eb2e63f00669337fd8f95027d499d8c9ec6eee2bf9e7bf42de0d0adf7b5f947af0bf328f429def086933e7ac49120485f24dd1f7de137da557dae49c2ebfcef975f6a12c94bf2bc19cb33766577609b9d99537fa95f2107efdd925843fe8de083938e620d055545ed04e1aab7a08c34b628c2fc638b82cc5cb44e6829de8b2832d73b91ce00207eed961fa1cd8c78bf25cc3f8b5ccc3cafd6bd90170809ec118ba47ac690f8ba805e3bc17957d4072e54581516054cf132c84f740711cfc21987d3c1024491b9b7f1cd08bd2c20414ef111b10e54a15e139f86b5ca91f3c07bfd800ef49ede0384ce09e54168c53442a010e23c261e1e34f0de1b0d4e34f09e1b0201c0684c352a91f442dd907f4c161ad1e1c36e3301d8f3fb583c3461d727018ebf1a7b2388c14b5dc11b07c1246b0f000d17c2db500137fca087c84e6f1876388c0c40f82f7f33a700dd377c210b8ef8862b00e570bae02b862be835fbbd0305d02700d8000517c473497c0c20354f32ad712587e806a3e05d6fcb7442ed998ba5ca2a67421352f01ea22e00fbbfb9935342ef33e96ec13866e6479c3c458c2398c8062c2c435d43c2c220f5eb28468904790351cb3e6636431f1b3e0b0ce09b3761dcc2f8a5c66f0aa0221fe9085ffde4b3ac6d1d97118332f691141621cec229720f3d3e3b041356689c3b8be2b029c75eeb4f6a2a2baaeeb4ccff33c2f8c79fd416c841164c84445dd2ce6b8845400799b7c0ede0c99baeb12ea77bf576310c4193f4e22f43e64910b101a62dd307127f3c6f3324d1695eefb5f7732ef28a47220a82be07f7f45758302f8df17816591aa0453258847a194d038744b2f3d70cc3f32e9baacb5d6a3d04704fef7dd58049636a54dce09bdd1f3b27eb01b853c2733fcc6fcb58820456f14ea1e0bdda1f29631bf51489bdde39b02539fd7e9ec37b5d27f4d1f83bcd7654c1f9d78a55f33e30e7f63847ec15128685573328708f187413572c4a298853c146c6c348d0b813426cda847a1cc0a0a594fa0aee45cf946a152649149a44621d548e3352721b224539eba38ebcefb5242770a7d35b611c9fc696d76aeeb79218b755b5a9660ed1964698769dfb9acdb53f361d2e09c8f04b5b6b939834139dff7c719b4b42cc1a91bb234eed137432953ff357559a3e25d30011d99fc74afa831ff76a552fe37c7a025fa7377cd8bb3eebc0f4ca942715cb1c8d68c0e9a9a1d3c6c30c8e0a6c792aed4c077ee6fe03b9703dfb95d38c618ff15660dcf61e2afe99864f01b188e28acc9acef8f937d561f663cba1c4874c5f0405bee879eb7257f985d79cca6e7f1e49cbc727956b93cca259aa20b4a155ea82d1eb825ff96ef43f775c9c64cd56a4c1ee67d6d5ecf795573c1fc4ad277ae6a54dd0cbdbe2e9738e65015a652aa55ed05f3963f39ae3005a63e4fe53bb7fbc9395aca0b4f662ef53703de94ea9a5e199ad9754d107b7284516eb392a2c7125568a00d1c62b8e28a130d64cc81822b4fb840032e80f23a7d930494170974b1c502a000aa916072884243993e6060e00811448511a28a6c3a981bb6c8376c91c31cb1714605dab861082cc4f03c2f6320bc57c7c48f69fe1806336a061e4c5cb3f9018c0c53bcf6cf59a5ea9cccebaab5a68704832e27f353ea721ce187ac94e7e994f77daf552c3d769d089a597f2e27d3269aba03faf33a283664f01105d5011f1a0a8c59a3c9a2ddeb9008c20360b8487145095e00460136983983814ac2cc1d9839e71cc50e5d687a1665baf880131e06310e098a9fce39e752c7878d09cc9c73ced7cc36e0f7c03836d9c707ce599411c3ccf9c59cf3fbb83e7ca85c38553e60d67c0c0182616aadb556993a7b5e152b76f03ccff3aa405183e784a9bdefd39dd69ac646f3f0e01e9d3db04a027228abd89043952b58aa3c5d798a2386a714c8f0640228f0e90b73c674304f1478914b77b317c30e32a4740c31d800ae20cb47021a3c3662e83aa03def0a066af0b7a206ef0a143580b9a244161836f094845923554938fd8044192f2d08838d144861c52b80c60e4634600716d0200490bfd36c62180c08a3013631f565351860764000753e787e8644f10ce1c93e9f3b25badc3d4ff9f37384ee481a9b2e6b31bb37b3fe1ad8755fce588d1bccce04bb2731cefd3af8a9bd0f9e2cd4b0400be7963c363c43602055a667918608cc1acf0a869bf58bbceff789d0df75eb8a0b665c0993e50a1833d600ba626600023b7421a6052cb002c8bd754bc7389806264c0dbabe3cb80747d10095718ce8965746d13084a9a3ac841e904e3e3a285ddd971a635d3e9993801ef8fe9e4b9c83e480fc1e6a4bf73e401536003f406a406a10065db3c7cda7bb0f7c97b802f286bcf14a9bf273cef73839e7fb3e92c67d7c4184196040ba0e6d48a82dd826747c04ff0d59feb8e441de47825fb89748b8c31ceabeef33c2738f35075943766f42087e80a4d1915d34b38871488c137af6f191cb2f82ac89ddf7c02f46c5f086e951323c99f96dbcefc19f9fa4c13e0ee44b607920afd441668cd10883ae3943426df156d8225d9bfe65f0bbee311732fb406dd1afaff7687d4df7f2c6ecee9521ecdec32b2049f2467be5e79cee71724ef7505b2e4b05648d34796e969045ae42c7ae30bce4d52b126a0b8845c00fb5c53f867f75e0f7c1fb36d79160a77bef1406c8028413592c2146045f806aa459a5878c2652c0850732bac002c8df91b28f13102250838637561044101900aad9989e7e323dcf733114d0c50a941881153b7801f2ca1f337b0dc7cc3c663ee38a1542a025890f3cb101167c71bdabb5b41155cb001727c0e20a0d84808d33c0320298c38b233400810d28808c2fccd4125c6cc9a10b2b36942004403ca6fb7bead483186920410518095ca18367610617b37b11f7706076ffb827bfc009092f5010c504b0e8401465564098a9259a08bd771f350f733b1a97e7517932b3aba65d7f008e6b3e995e8a34307818bd05e9e5ced9283306015ec811040e6200755dd7755d59b3fd98ba14af1524489a9e85196d989ee95998b18359d3245ec2bb99053700e917f5f7f85c929ecbc645e3031b58b21063cc0cbad3394a9324cd687a1662a461b24c07f3f400b346ca91dfddb1eb267503de7cee18bbdccc187bb802d2cd8b1fdb701de6f79addd7b489f377d9cbb9ebaeeea450d1d9cb7fafa94bd09fb58f2cc290319164ed64ea6ce20c84313b11df22b5d4b7daac7ddf823715dfb4aab77d63d79777eed8e5ee529c741b7767d7976c2fc5984e996ab39d3f9ad6733d426d3f642bfbe308b51da1b61fb93469674a2e456d3b29939a2aa5b99d213db19e9f293b3c2f117c5e407eb0297ad26436556d7fe0722d9b5b7fac7b664373473ff64da5fd70c739ee18c71d7fe0eedadd45770c80cf036e841ef5f4647afecc084118b686c81fe6724909a14bc99d0d84b252e5e2c73a6b9da1085b40dc7b95ee2b79ef4baed65a7bffa5f4f7aef383e0df5ccbfaded739632ab5fb9ea6b284dbfce08319a4f231b99f762979a952c9d3df81ef64d6f07b4a5e2905bf3f97b0f5c3bd17d7c04f3d7685a1fb5036bbb5d54bf8bdefb44b8a8da9e4bd9baa520a1533f5d825c526f5a0fe0b9652a8749f3fd77429c5ddc4b80236e4fb835d8b07ec3e3a239de8c20f64055f20fcf7c3ac45118bd8bdf226e87b4fe92b9768c2ef954b34e527c10a94fea7fcf7314e3d1e9fa45ebba05c08ffa644a7a7a7d015030940f9552e282c17287f0c2400e9cfa295fcf74717d4f8581e287cd005f594ff965056f287e5537e550985e581c4a7fcf84597951185fcf99fe07751e5c272b15ca0d4872ea8184800523d960b14be16c5d285100a84e24062e9c296a2f0efbba07a0cd4a5bcbf40ad1c48295ec6f44aa5259af02fd1a45f3fc17fc71b14f4e32fca7f1f1c9f64ecc11082d9870a9517f0e77fe1be7e2a5b8abe573d15282c0fd41579dffd0ba907dfa9c4f0405d49e58554d9bd57bee03d586279a0fc5ff98277bf2bf3fbbfe0dd14e8ba5c58341496186e0c5ba490705d31b8a0b06c914282793f065d6e91428299dfa356085b4280a1e2e98d2b4cffdbc5f4efa04cff2f09b303b3050f6617bac3966eba25375df9255cf3fa3736b94dbab2e674e36527fffbb7d5e6d7e47b77e964d7a63736b94dbcf70f07dddc5bea98fe3a267eef7636dcaf54b96eeeafde8142178b25feaa7461f522f90ee442f8e3aba07ab27481f5aa1f4b17b614b15ef52eb43e0c5d37b75cad5e2c6fee8fef0444457c567973cb1b14c2677d51f8acbfb72c52fd585261bdeaa9b43eacf11df06fee7fcec9ef0424ba6e6eb916894f8236e39325152a4e3a01b14a2a5b6a4bb0be7c623dab7cc105244f7eab141f244b128b00feea595fe3d961c52a9fe49c560f1ec6e50424ba9c80420ff1752ddd12b2eb3e893f9654a8e0724e7ea3724acec9bf1239102de7e49742e440ab2772a0f13e892c34a460f35e236e1623b4183184572fba584b52af5db75c92824dfd2cd78d1ad722d6af4a2a5456bf2a2fab247220a8eb859559ef40abaf5d2e667e24997581c22b8e17c8c75bd2f80ef8dde8bf0fa42a411bdd306013335d9767b23733a3c5ccbc7663666646bb21cecc88332228aa728b5c8de08cf8216e6112b3f00a8f58543da8c7e8317a4ceb7e6370ceef647868379ca8b8e1f9e7ef260fffca9a13151eafc56837be771e8f24f370d5f41c3cb2c9e39a3c348f37dcbfb2a6c968323cbeefb3fdd87e3c1e3cfcd3f1b53ed6377e1f8f991f83a779cf3e19fccc93bf1279bcea3570f1f81e2e1e7fe3e2f119b8783c06362ecf393ccada8ed2f663d680a50e12db989f0d1ecbda975faad463f4183d468ff19c76e05412974cd58ce3387635aa71ec3ef0c74f93d164f498b1e67e4dcd6b37eed7e839ccdaf87d3535ff7d5a0cee199ff5da8d5be4d36f98b5915553c3fa6aee7f6559d364ccf1e747ff25bd9ab2c63add0769ca1aa8a39ca97d0de7b2caf1bfb2c6638ae1a7c7e831251885575db772105cadc0cf4ba95eb55a81aa5fadc01aee0204c70741f0c515b812555f66bd48beb8129f14c55275bb8023985721f8e3083ec65ff017fc057ff998f8becff90b432f0cbfd03ff40fb37f88bbf8be30fcefbb5cf015a197de7f1f2e09df47adbd9a4dfc0cbccfe287dff78de32a3fe9e3eb70791ec7af19593d1ff91f49b69ec675bb88a54d3453deeb985195adf61e7ff98cbfd064128354b4c2b00b7117ad30ec5af88a1047e12ff80bebc3562bfccba5f5d84bab86bbf056187ecf0a9f85af68858f04b7eeb3ca0c52dfb19ed50a75b8583fe3f29cc32abfdbc54c7dcd269ae087642892e16bfc057fc15ff0177285bf383c4ce891d987754bd72d2c57046f29ce40d678c06f065229f59d59e331c54f81aa510913d105be8fe2bd26785325fef2f9085d383a3da18e6321af59e3e93efc055f21830f9d6f06f29a351ef37e4af5e2e7fc4af097fb432c55aa9f2e788618c15fee8f8bbda4c2cbe5cb2df281e5cae58925fe7249b0cc5388a487386543e83e3468a332f2e32c506cd1f0b54692a606b2e6687c38904aacef5acf1ac9996fdd56ebc71fdf0d528b61957accfdca2216a214b11005f7784e43f7e9312d0490de5fb3e6688011e5c381bcf98d66341bee213f3fae9d827b567accfd41962c56cde73072c34756a9ddb83fba4782cd55f7e9314e3f66ad7bd6c9f4bef6632396351e1cb0fcc0fb947a41e8e3ba04cf85450379dfb98a4820cf97f0745973ef0999739e30053c45fea0bd5c40cc13590bd682b528e3ee0e47082e13180873ee12fadba005a6915a09b326820ed31f45431593e60a11de8bb3f64f043f30890adc7bc19402a272ce29151254745da70a8f98e2fbbe2f148df8924aa552e2588497300cc75502a218c725e338ae58ae89c05dc40bc60b9715088690c00ca0e912b012451cacd52886aa9478730942ff8b7337baebce4bd04427de7b6fe769213e2472cede97313044d775dd07aac08b0faefb8129d16feec295321d8c171b3a2f2501115f1c44683a1828ceb8f7e20c8518ee3b190440682da67944ea1f4cd3c17481c2dd47bfda073052247102d525433e29c2f842fd3fa9c568328e4ff01d7c5d4fb4649f22289e941b361ecd63efbf54a88335e2983c66c6efc6fd713f2d06e3d4505e2ca596eca3a3ac81368fc3638a7a0c95f2d363ee8f7b73eb0a7982c31cc915a66b61640c79bffb9a1113fbc033588545784577cf387311e23bf97a1f89c327d987e5b3fa9c7acfe3f839075495b53b85a90a7fe5729c1396b5dbc5547d8fef57622ff7072e8dcafc24e7e45459f331cc5c7a3ff8cb15821f5329c1ff727fe0ff5e30bd560c644d4854cf875f08f6e220f177f9c9a4b03746172c0be08271abb197cb250a47692ac85c9f999172cbb05c35fcf96612fc106b70a61b99b839d37a3de3daf13afeca7883c28ed7f1453bcad6ebf8a29ab2f5340fa6de041f831fde990f41f07e1ff6bcdc755aeb2e670f63b39be9bc6fb5defbfc97748dbf7a249874b11e49f695cbf6638ea51e737fdca0ce043f740565137c952be89ae0a75ca44bca2d6382be93dfd3e102f3bfa09d58b86b010f3a2801c50e0d28420c2f4d783d6ce0c51a69c0502507304eb840c00206b4c00a3010688307a724a4c0c0d31424c862c453143f63c2a53052c0012a36700618a82635aae8228b313350a0090554919d822893460d32a4c086123cb1f40e62fcc08232aa2861011ee270c3898a16f090850251c830869523ac2c20ef70440b8e0863650b207a606207333f6801f0f33a9d71d6c1747f57bbaeeb3a06c4f04318440461831a43a840079cc50d6b7881630927cad8613a1823d4c882e45cc0567081097429a3060f60e81c5eb0040868b802864b19739c61acb165072e88280201592ed4104058208604e020430e5698507cf779f68a80e187cb0b12d08231e10f171f26800005c8400128ca30230123d0451c61ea179f94f122470736e0822e6e00fae1c205fc8ad0a1082c668d04adc8df106144f0b5d63aa5b5d775351c336b500f91854a634da3bdaed35a6badb5eeb23b98a3b4aca1841133dcf04606340e37081d9c40820c18262003694343e60f93a00d28cc80400992f05286039f35c9e5838041fffb7829c430112502214ed08307fc3dc9f33ccff3bc110261065bd0020b06c428a38b2f6db831def064021e4490041c69546183077e5a835fd779433440242373c95c54e61dbb1c17e90559d39ed9e5cef49deb323bfd4dddb74cadb5d61dcdbdf722c125e83b3934af67deecd2e605c10c33c6f87a0e57f84bfc2098fa84b839e79c7d0075ce39e7c7c1e2236d481a1f26d03650d9c1021cd042460ae060c16a08080f4ce1012178380105b260c01adaa6878fab4a757180f6545d0f8ca36b509d20634b96359a78c1530d4260e4c0c51822c8640101cf74303970f172004d2ee6edaa480101821d3070adcb90c1e6023319fc78805fa7830d5eb6d15aef30b5aed13435d00001840e2066c83223c70d2d13d440b28100561933acb2f0617ca207514b113a845ab2e0a092a387d4181bc03370f8383083374510dd0f0dc841ffa00310d9e3d04276ee43096cb89ed9c0d201b1021d76b8c9925529d007224ced69ad754a24e5c0b20519480051051061e82e1230b5d62c53d3606aadbd0c0a7600c10c5c1cc1030580740f9bacb5d65a6badcb9a0f1b1f41c0e043fbf0a1862f68c0e2234af7e082212194106381196680401728ce087d90c011488869830636e0706344009007a088830a34ce500102a010c3f33ccff3bcd074303d789141ddc304c02ef595202922c1a9ec799ee7e5ae872740a72714c851011b9ae0220b2d3ccff33cafd3369fe960ba7c89000f62b4a7713a06e49c3baf89afb301dfa647ce3923f169d086044533a050428d2f8a480205542001768181110f8832c3041598401143649bb7e981d383109f5fe1c5070f83362428f6c0c3e775363d70a230f38b3a3a60bcd830c3e88659f31182ac4a7958cc985fd7753d6c7a3cf8815d5a19b42141911c928724017a3a639bae73a2cbaf938738200fc18142cb8763c3a3f30345115dd7759d91214670b2cf10287630bb6e48873364c84f6dc8ca0c1e0d7a1d1434e49cf3e3f87817dc00ae40866f0c969c73d7755d171098397764745dd7755d3260e69c73ce66eeba74d1759fe7a01ea34a1a1560228d38a0c8103173ce4d74f9e2032a8063860a58c91df9bacc34d987e7e59c73ce397b60ba5801f5f9ff7d7866ed79c6e81cd4e871cdda0fcfbb4779603a981cc4982bd3c16431c2acd174c9294f531183eb5c66094461769dce5a6b1dc41a1da83b4df37d5dd7755dd7755f07268834cc0e06a0aeebbaaea461990e26082e3c68f1aca85266a4b2e779a40d0d496303ba0ba0e0b0620d1560a9018c28dad06880337400c3146b8ce009322070c4f703055c40b085951e5ef003191e1615dee000153ff820860336104518a6e7bde8791ecf8fd656a832d8798f13e56388cb41451055b4a000022fe8e1cbcbf0c2122ee832022f7aa0a28a0c85a8bbdc457165d5e33dcff33c3163c444e1010f5cc1a2f374d6594f91040c6590110115c071030f5a523a062725def8620608aab4d144193bcce151364e84b56be6f0620c3ac6faba6ecee02db3eb7a405e3c3b2993ba1ed1d893d6c3490e9e707726d586b4ee25f5ff69ecc9242945d7160a0c16c3b1adecc4ddd42430986ccf54998a940eedd9b926e152206ad9d304b445d32103a0b63345839634d97038f3087bda64b175e3a69cb729e7edc894f32643d9145ddb293bb6d9f368dd4fd8158e04119233c2b2a72d8992753f6161b0d8edd2caf6baaab26fd5f4f70d6dd3dcfa48e8cf762bdbb829fb59f47fd38abe88516c5563b34d63d114457a20775fc99cd420cbefa357db9fed96ddedeff57cb6b5e54ea43dfb6d3b42d9744361d717dba2379e1791203b3b4adcfd3a4e32b36d54002d2d09dd4ceb5e3aa1c5e5d6554d12343b81f65e83642c7a83c1d8742ba92d0cc6c260edaae2703936b66fe78ac4e6dab385b265e9693b81f6468ab14d27ae6955db73969e4d6ce7ba7127d8cedbaa3a619bce2730db5edab6184c75c26e01d0d893498a9eb423476c679baa0640579576c4886cab80a4aaeb132830d846d7368663cff69cb5e95e372d4593d89b92f68cb5e966d3a1d9b9694e9464aa0d28655267b1d966d92d5357dc913d5393a80083194955b4c59db067aa2c36436de7528c69a7b8dbcac4886cab7024857d8bcdd69309975391d2219b4d4d321bdaab2a8bb17b096dd11bbaa66812ba9eb0777b26ed3529c98cb5ec696b5974ca8eb1b6334d4259d6869eed5602a5cd9db06f3976af38759dcd6c2a8ddd2bad8dcdd28d6373ecd99e4a9250a4544db2733b8782bba78e4b4a51db110a651fc999eda419ba1e993846645b0536c6b27b4d4ad1a616959db833b6733b27254693b5278e4567b373d3623229b79894db0cca6ecf164a528a269d2cbb9ba4688a9eb7bdb62a8dc59d291bdbedd9b2b1a6d3b65718ecb65bb6898de162edb6d94e5c8ccdd972b79cecc8ebcc86cef57c62047736d97b2d024a4a5135a9cda931dc6da5c570b75c9be654592c89bdc570b75ccc76b66abbdb73864b2109eeb632f105b8fbeae40050772772d2c6e6ee62cff57cf2e9de4ced3efacd9e7b95a5e837d96ca70c4dd5564dd5dbabedb3b3bd5325996a3bfa135eb3ddb6e8eda6ca6e009464e7d1cfb6cda6aebf8f3e3d65df9eb45676b2e9b9b69f6e9cfaaa13ef03277974695575fd9d74ae6acb6297933ca6acfbe8964b71df74da36d175770c9ce4a1c4dd3f48d9adce7e766edab7e95ecf27eebee3ee3cee5e83b732d0f26a378bb6a8ed4cd7dd4ed96f4bd5155d4a979440091d65844102122260630b263a608400359e130885aa05c51739bc1406c0690aa2e87105045e3c605d310108579631480f4474e9b283021b1f6cbc08a309252f68a008012398e1b9098c66e9c6e14ea3a7b528d3af1bb5ade7fed94ef73e7af683a6b54db73b10ee5ec55b1bcc665bca1769d3cdee15f7fbe85b36777bdb4ed393267bdc6da5fd6cafa74db6672d7a436dee18c81d9b54dc3112770f72ff827077276f95a1c41d9370048fa0e4ee1a13c9014dddc93c19f977fb5cbb1ee1fa67c49d75adfb39eb763beeea8241b48f671ef4061f06c14ee77b9d077e39f68b8226e1fa57a4739677fddedb75437088fdde9b31937bbf8befcd9e01f0c5f7c33b88eef5eee7f88eaf8c3d0f47f55763acb35c7d2f565d15e09bf2ee6a9cf7bd357c2f0653c037f8624fe34b027caf872f0a97c7bd198316e8f2b7ba3beebd1713c13560be445c7c3d7c2fceb18bb52a35048bf708783b1f7984fb61ac816415c63787d5730fa0818441f90976ed5889ab338eeef0cddef570d5b88e9d2449bf7ef5c577cc053108f7e20ee37caf90fbe38257c418632fc9fd00638d2f4f7e85188000b8e34c06f887db610caebef93a7e825f75b563d4f337ba36647759e03a922c70beded5df1d6fd6823108cbf7275f8cf563318573bb7b3f1e0d84039e8b551e88bf7b6117630f64efa6b0ce4bb7c4b97bf3ce4d85f882dfc548f0067803ac41f6ec97753d8cefa8c9ac310618e3eb5d8d74533e6ed8e1dbdd95cf0d1efac214be47a0f8e18bc205efcdf8eacbe46a8089e01e38c41fee6ebef8e20bbb1ae0107ffae62edfeb73f3c5b9a92bde7b8bdc0db02a7f17d417df0bbbd7db8169aec6b7d397080e6fc61bdc9c31d6585f2218df0cb0eaa62ea8f1bd177635c0aa2f5f0dea7bafcf5f1b1040233984eee69bbadae6a652b09000371bdc0ef4c5d8c3dfbe640d4fc8e45e7cf1bd77c73fc7f9009c2e19018cf117c01162c208c0b5861b2b9c6a3c208534d0f02217190ee5880c6c28e7174e74c4144410b9d4135038a246e6c939048909476c900226670f1e2247d8fc2072ae1ae093c6e8c3c7a5ba3d695c17f418954940cfbfc05f46726cb063c404d6416301aacef3801082113a26e0c0e8450e9ec78c1ba1a30537ea72f0d730b86777f70edcfda80587fb017251d8f5b571a78cddee51fc89bbbbe0648b85b33d67b191956f32154fda86276d8207c2df4f0555c8053c759df801808c2afa08209a879844033c043c6913523b543d6c60784a09400f206f10b69e0806813f9e2a17b151755c3c815e9e68a25449f9642250209ef1d49579eac40c38f024b625154f299b15fe8a743f3a1eb0d48418fc6045d7f0c472b15c79a7f503b46995b1d28500fe7c46322b1b019378ca4d80fcf0549e039e72e865a0754220f96a51eba882ba103e017819782aaf26d28834299bd48e4f00d90556bc0c32172b9d164f1ed4f4ed631e68a06122cb6be99b777212fd44e4e1e16f85efe673d2d5acae17e64e8b39679cbf0ce694aa87ce5f0adf0ceb89aaf579dfcd9f1ea27fe80b62906faaa438e81af0b472409596a76f402556f41956cad87b9917b4d181313210660b2d72495072c8b2048884117cd4d404637e7c40b2c08f000338c149192fc0d0000738f068f90149106788f105982a24e0c4123f5e00f021d7e2c0ae2a38019932c200030b289c5e28409401b0708213a1200e36e0b1630a299c9c78c00b2ec434e8a1a61cacce3043caeda9cc0b58b0822804e0b1a32506982caca84202513c81c30d33c40a2080154e7032f48517596080025a9878808c2fc0605105150b4882862b309c808c18615441c51410807adab3a125ad910c1b6b9cb10516527ce9d2440e36ec59ac005108b0c2d09222b09cd6f885175b1021440e507b5680000c052d29e26cacf1851717c8428a2f5d9e6842871ba05a08c0d00845603e4380e4ccb4b49761630d332eb045165848f1e5892674c8e1061ba0d488b51085841faf39e430a104d6ea033db2d440030b2bf02061030d4d53b6a4cae41760177472e038c0066806e026f0123708069279ee2bdcc921e4dfc101ee716fbe0c3206d746f3b83b523a666632a959e28a1c331031087ba85aa90ff43eec795d97af7b502a0fb878fa525f4aafc09e2f9535108baa3829411c4f05fe689175b5e8c534531e734b8f0143104fde0a7f29ad336af0f38027950ae24cebacaae021375d0afa7a462af03482094a5a3060add226e4b0e0290456400853e576b0160748aa609d41dec15dd7912e84309e3c8f832750352ca02b59a88a0c4f18a4561069441a0304d5e04056b58227236d4ac84807f24be5b153d233d45005d42b4f83cb1252a50d24522070000a84e387150e3b24ad8f882e6113808b151d1d8e2a4805002f8a06e12362650247085961000e3b481ea851660202ae780a734842c03006615d157ae4221f063d55541f114f05aeb2cf9050d64015b48227d53734420199dc2c0952a5988850664626f0c443ebf4a83c988ed153854bca022ce0490532d9e08886a72e93ddf550f0545d110f842340612ef501c8c4537d188c4a523eb493140f9a1e00c86007086008251001a08a0a7c7d4246213e434f3e517f1974b0dc9312f5078fe44b7d2afda32b41ff20b9dd4d76753b7852a02c135952c40654ed48f95449e2241c02e2681fda87c7802710565a491742b741ca87eec1029235b0f2f4fa713352ded1b93b4059801da85053271e10268a8b130c4802014e2e4c619590b6cca8005106c0820a29407962420098c07e84e000c0830e5e6781451913b8d10609473c2833c0e03302035d2cb10014969000d3a0460cbd2ba6f8b28589259250c01146109102ce073f5e42045104a5cc1c6f1c0dc00463aa88a92d1d7040918e14517d4ce490c527d581319a600246a487074da802bf1e37128822ca9e9de0240043414b604380e4ccb456a34ec00d33c8308386081470e2010c705a41059f1e1b1a9d81302950e1c8083da9cf7b22862f1040c2871d683840110948000e27383952e403f1ca91e3c07068323f068bd16de0343a342e19580ccc81541822183803f80b3c057e223b819574edfab81c801a743d460c300f5c73695a3aba19dcbaa45ee1b053e11408e2efebb0bef95ecfdd55dee306703244623b3adb145d713ff64c95a1694ec7fda654516bcbaab2b0e87b4eaa4e77079d5409c0dd01e0a44a08a9c271a347523fe771fef70cfd16fd224debb99e34d99fe8b74d47512916903e9c70f795932911b8d127a5e8a6317d0ece08463e4593f6510bafd78b00b424f788e07817e4eeadb7b490ae33f61b8293200aa091146dd93d7b9aac3d6fdfaae9b35b9d7d0ece96ad3995053700419fa5bb3d9ffdc4ccd24d7e517c493cad4d4ab7ed91d4df32d4c6feaa22ad67cbfe4e4acf35f5f29408da01eebe736bbb59db8974474004c81ff975cdc94078983beaee3827bd2d6eb9b405958e0a07c7857741a5a33ac0ff01feffdf1d1b71c745dc318c8887e561514cf087915e8e37e3eea4931e767f98ea612dd2b6fdab8c5a5a12bafeb748db66c49e238c5006d94de1fe2cdae68efe5974d3da87b1b334a71e3d92fa6d4e7d77fca3827d7bfe6c2bc9d0f4c4754f4e0098bb67e06417c56d47679bbb75a63f6cb68fbe6976eed576b6b926abbaae4b98d4755581ba1eeeaf17bbbe66eaed477b43daab2afb9cd435b43ee0c5df88910782f3ee9e7277d6dd597052bbfc08b501d96177dbd4aeead149ba4fd1da9d270a1cee1e8505155428223318ee5eba3b76326be15e1eb9631f77dce38e4570f72177ddd2d9c71578883b16e28e83b86320ee98c71dff70c72f77bce38e752ece43f70be5ee037012bbb167aa6ccf785e22bc78767e44608f7e2001e1e11101c879741424c8cc070852cf8e8abed8dd9eabecd5b4b62c9ab4d71f6ad27acaf014dea2361cfb46ed69b4c3493cc4dd679cc459dc6de7927adb6b4b0924eecec3495c0077a7711207c0dd4798b26729ba6e36459f45713eddb637f2fbe867b69c4a633fc7dd83b85fd5dd536f7d000c771c82fbbbe399bbdf9cbc3cb437a4eb85bb5f0c82afeabaee4fcf9fed74cdb57b6dd37ddb36dc0dfd163dd7f69352b46dcfdbaa22fde9170977579df421dc7d74f2bebbd7387943779f6d1b7a223dbbdba6a37f24f553156dcfb28d63a7b4b72d4b55273058d196a56afa855d5fb3742bc9cea3d846d7b647c88b6767a7284d76de767670ec6cab29bbbed875a3eb7a1e0159f7c5b8849b6930b04986f6aade7eafa7cbc11386a4911e44d218ecb6e13e022d27931ce0eeb673b3ee449201928c1ef6ce84cb5d01aeb79d9b4d51a42677af39398016b83b90934842b83b09462e55b6eed9aa7e52aaae4cff3aec464fa29c19c32924d1dd5fb374b3e7b67d7bfe3e6a4a692de691f3c206c3fde50ee2a155ad9deb5ed514bdc562297a9ba5a852ecc84dc682ed6cd39389e95c672d5a9ba1272e4d813d519b294371aa0cc5a945ed86b2676a1376efa07643d9b6a373a7b0aab6935df7129aa6b0b6ac7a8bb567cc663b65ab8ab253cedb5e4293daad2443db36dd280e95ed75e39ada983ae5bcb1294c41cd764359b76d969e4c36143667c3ad3928b33487b4899a724049293ab3a94c763b650951ba65ec56b29edb9624294559d596a4c56d99cc4c37ee04a6ed04775b99ac1b69cf768bb22a6e2b613ad719ad455738925b5b768890a523466e321660b0204b37190bb1d9926d3bcaa94a509cb9c2092f1477feba955695298684a4bed6adc49eedef2021a96f84c5d98dbe8c62a96af429faed66d520636eb8661b5d03337177ed9808bbd1d69c723681c18a3e65b7adddecffb9e6ced835223664d4aa362846dfaa361649fd5565d12574f6e76c9fb69ccc76ca5e6ddf7db85f36842eeedecace74c766e96663ea6cd66e7607178bc57037d9149c67256a29fa6cd3c9643bd9dbb99e381f214280a06c130cc6b653f6abddecab2d9b7b1da375279de9d9c4e89b8e6c43dc6f1a2eb6692bb1e8ed81a840012ce4eeda31111907ba00f982cc4983244092bb8b45d9147d9ecd9e6beee469a76c1529455bf6e7c5b3b3a3dad8586e363bdb74b7291adb4be7b6b1676c96aa47b126597bced0597aca62b6a373dda92db794c2d8a65dc20bc59dff6ada4a1fc2339d2b6a8bbd64a8ed28875b62829904cacf767ba6bb3d65a92a23fa17fb463f486dcee867a86d1f9de8d2cf36abae6adbb6ec665bb5692bfd6e857eb6374b634f5aac6577123a6b73381a7b326955758dd1d89309edc8ba67e7660283c950a029454ab22ddb38285bd6a6fbd6743ed949eb494bb2ee59baa1a8eb1e40aa3a615176a75ba8a9456d67bbaa4d78820411c274ce864e96ddeb6c66a2ad2dd7a48db24649a32045398a12254a19c5dd91b8832e21eee0cb0bdd3de6640a5338bbbed6cd06b9cee23a08772f809329e80001f2e27901d94955b616dbb375b3ebba44e984254429a836d2c9b27b23d9ce5c2b3b9352b4e9c4c568ecc9e426636186c64e80c1f64d95b539f526632146634f5acbaa329bed94417180bb43a102a504a237d4d428b695ced6e8935254e96c9b662751144446fe62da2993fae7cf4edacb49221cf7170a2140418bfbebf6e7afaa0c6dcf9bdae6cef47c5a524e5d69ed0c49ddb422145af774ff388982ebc9189e93aeea11ceb728abbe52f3c9538ed14dc6c22cdd50d8dc6e91549c74dd4ccfee1df404c9092338e18713841c8a934ede7062c4dee991bae29e4df752baee2535e96d672e3d9be070ea6ab3a14c4db623946555dc6f5acbe6d47527a5e72ca7cda96afbb373af4929fa27ceabc9c6e6547469af38d969c339b939b1f117ad4599ce2663f8b957227727e26413a8262f13cab0e5d8a6a39fed7627cd72e9496b7f4d7a16358102a409adbf5816a7b6267c2570f12d650a7b32a5e723a95fc291008861d9197bd202c0253d67fba606e0c90327030034e486bb173939a4c55f4639af331b32da6baefda593f6690e2937fb7d54c4c8663b9318fdf96a9ba23f4b734bea2d3d8764432b265edc5fa98acb9d3f4bcf23b57d1d9df5a64a59e2ee2738c9248ab3b95f81c907421a10a2e2af36a7fe6cdfd096d6aeeaebccfe445bf475d6bdb4d3a6731f7dd3797b16a515fdebcfbd84be5007eeae8293411898e56cb2146555d9b32d7a6351f3d5a23fdbab9aaab4cdc49eb41b7ada92a0e71376efa0348526a2b38582820d3d839214a55be92cda2c51d3469b66e76689d214da744331978ceeee6dba97da742f2d71770e9c548286bfdcdd88934ab4b88e1224eefbb6aaed89b6e80c3d7139297b6de2641231ab8aa4b63b7b4dc2c553f4b6ee76cfd80f3670320916f757929fdcdfd41589f62dfa5b96a2ec8d93494897eda46a0a14c681a6bc5295c6a24cdf9463b39d389f32a99b560464a324536d6fb3a1ed6c6f992cc7aa69ee37adc814e32fa45445cda857538bbbed36ddecef23138b6cafa69149be729a2461e19154f457dc94dda2afa4d7c641c149245cd8bd91d4d9ebb83b13279118bd66bbdd2beef791ed68e98d8c4c701209d8949ebfaa482c8af4e96f5a110951eefe9aa53915e9f791eccff6dcb4d62401ea5925996a6bbf880424e41132eeeb4642ca1d6dd989631f497d25d969fbf359dc495bf79357528aa6e8e7a8b357dbd77ea138bf732cad557fdf54f6d993a9c8dd03e0e4112daeee28c9362dc9911ff7474242674f6bd1a6f4bcbdaa16b9bb8f9323c0e1afd9468d8cbe688433dc7d052747c082beda26a5689b53d74752bfe9647a35fd73ddb4f6379b3b65fb68dde94e7a1df6649aed152d1a21ca2d97ee3732fa4d2b9aedd9912336db99e4c8b3e7171939126b8d4c51818e1cc9c1317293b1d0b27b76db2d1adb1be948d37aa2321469a7fbe82663e1c81415c8c80f69c45f2d1881e064112d803859048b1761a108cfab05231b278b90af168c7e38091bc35f2d18c19870772761535e2d18c19ebc5a30d2c049188ebbbf5a3082a9fcd582d12cdd2c0cf6c48800bf37941b7ada64b1d98edd645362ed2c4de2e44f05dcfdb56db675e3be4dcff3d9143ddb544db2ae3b65528fbc4ece4f1020b9d799ed599a538158599be6d4dbc94e399bac1b451a5af72dc7a66a92d9aaca3691094447f6bad1f57624e727f73a3f399ca6d83e6a3a6feb9e6d365571ec5edb9cba6f68bb97d05676c658b43d9b66e7264a4ad159ba9f34ad3b87c26b55696f3b8f549bd0ef56bdedf5cf4fd59f6d25996afbbd9e6c529a0bfa57537a3e12fa3a3be96cd9673fb8bdac4557155d717f3e7bfe6cb334194a637a9dd96e71b7ddb6e72cddec9fdf9eeb7ea3204272469f9eaf33dbed29436db89c927fa9ed6f25d4c6f49be95f48eadf36adfdd9bead2a528afe667a36ddb2bd7ecbaab767cfd76177527ad2646b4e7db57df6f77ab63775454a67fbf7d249b3d9cc7f3dfb6c4e45d773e999d454e937136bc20c655355c6aa34a667d34d6b5fc768a7aa13a3471afad7b3e83749c2c2abed2bf9578ecd76b6e823a10fe45b3657cbb1399c9f6d1cee5c5b16a5b5ff48eaced94e15feb5a227ee738c58a39feda5d75171d893f63d2204f9205be9b41d35ed12fec5e2ceb5fd76b3ecf94929ca6e34555f4debce49b1a1e7d2f92dbbdbd3a645b0c476ca541358364d81288576afb2544dd2aa4e369b423a344b736a50ab3a5192a926a449e85ef7920aa5559d98ac924c35814935a15d55dcb6eda2367782926cd392ccf611bacad8a31c14d58909b313e8044a87d876b3acd9949e4d54b5685569b2f4dc44499a5adc6dc9b61da1edba97d2a15675a2c47674a629d8d0a0bde66ce819344b379414b60150f696bba153ce9bdabeedcc49d90640d9bd3e8bfe2d81bbb7e064083bdc935020552d529dd86cb9a0981adb6d4eb6a7ec9507c8ceb66d766755655b969e399645632d9babcdce58bb59762fad9bdd6b9ab3d9cebd84dace186e6fa5586ccb561589d69e7b1663526db633b66ea416b5a16d2e164340cbfd16c0dd5127733a771fc1c91fa4bbb3eaba0df04929da644bd59f9ddbf66afb6c8b1e3d8a8494637fb65b2494c6b69b6d9aa2ae6dbad92353496c0389c558eeee82970649288bb6b6dc2d88909d9da414b525a5e7ac693d6fe88a8b2da92b0e77c6667b457153366ecb64e7aa22b59b6dd7cde662b3d989e6a41ce5d8a35cbad7d9ec6467b68dced098ecdc48b176b331db96a5a72c6996abc55a76e7a4ec753db74dc61ee5d858bbd958bbd9f58ccd66678bb6e99ea1e79a3b77c2b85f2fdc935a684c51946edc09aa93212f9ed7cfce4d360506bbc9a6c43ec019012f71f79be41e71f79993383feeb33d4397d4d99ea9b2747f93ed6ccfd97f110fee6cd91bdaeea43587639bb652acdd2c10f6281d32d9f575634f261182ec6cd989b4b38363d9f575f4136407773b5b76dfd0d674f20337dc7daf6a9a34346b65bbb6d736ddb72d4b736a9a9e7bcde1d61c2eb6db73af3276a33b369b9decfa3a6a9aa2aeb89d59acc986c39db9d86e73679beea51d9b8222ed1567b3a14a4ab24d93c5da9c4a6b51a658bb5976279db818eedcb458bb59a5f5bced955d5f471e4480cdfd3efadb6e876e6a9b9eb427b1d8c3f64ca5c9cebda6b99fed75b7e97e588acaf64c4de2ee39ee778bbb2739e9018fb3eb8bc8abe725646767db4e19bbd3d4a2eb89c31ef8b8c17f0423ff3023a36fd913f75b969e4bb3f43c72e4276744b65598d94e98a526dbeea4f52c6ad3bdaeb9244decba5124b4559decd986b277d2d94249429ba42acaae5b850eb4604fa6b7d94e9912273b9822e464073827edcf4fd1db6ed1dfb6a41465df244b32eefe62dbdc115972717757d3595983bba7e064e9e3feb2d936137bbe4eba97d0a44f4ad1965d51a44752ff5f4d365b0ee9653374f6ec7e24f55973b6836ebb1dbaed76885dd5755d426bd115b60d775393ccf66ed3219aac3d81da74a3b2d404a202bbd973db36d1943d4b87dcfd03275d077077274eba76dc5f2dbb939272ecb7b424f4f61bd7d49e9bd6ea6c5a9bee5b2e693d7fd3daddaa4efe35dbb4674fdab3cfb49da42acab21b0ad376d2234290bd575a91d22993ed127a440872d2a0f4881044652ada4aa70d288810a693088810a693884708d349442408d349f41384e924f209c27412f504613a894408c274120d09c274120909c274120509c27412f104613a898800613a897e80309d443e40984ea21e204c27910840984ea22140984e222140984ea22040984e222040984e22224c27d10fd349e4c37412f5309d4422309d4443984e22214c275110a6930808d349c4c374126d254332166db27790bbe3b89f4e723086bb339d6b909790a18da8146d7485454c32e594a111190000000003150020381c108a0683e180208649eeed0114800a7bbc4e624a15ca83518ec33088828c31c020400c30001800424353e3000fad6d555244426786c2764cc76ad55c31310c571d7f2ed1ae1c5020377296dd44e2cf3d659d01075025af7afff82bcbe25d941214800c75b7eebfb570868bcf74b79dc53ade15375117b07f1557ddbe21f9f21978e202767684e4891c9e490b335c9d4a845a79b7f60fd73f48cbf3f68754850f8ebe05793f6d6d8c93d56ec2877a77d46f5bf54edce942d49dbea98e6513b07a599067e649b3d5dc7712349a9494c78f015e3cc49d4f36bac732f8898166efb44fa1bd25470579a7a46b36b95b4d5e03c267594126c3bc2efa0737eff6db6a604e04f14828288e9253929b5e1dc13c7a4598bfe7e5d946b5a28aec41befcdd937e129e8469fd13e1c9b8416f8d2e5d9f2225b8da1c8cd6ee230e0d3371cb125ae4f2b2ffc4c04c742614acc30838b8755479ef7c07c1f1c6b362a0e36154c5ab79b98bf7e2338c8c27007ada70821753a10b7cd111e6299089e4ded88d4c166aeaab6dcceaaed53924f326df4c4831298145a053d65c8e3d74114fa7ae154a77d701d391eb1848d179c13564d99933e62469e49b27884bd997b26e6f54abf0c901b8dd8de11a1d30dc62280da2f0eacfceeea618f9511690c48e0e17f396a7507ec594f0586f5063bdcfd37011a01443f161e0bf99dd86f6337a183a43832a91c215d747cd18a0838b371683ce250d9883767c8a06f875587b85b50ad19510e28e5c57d3780ae7e4ac4da07b619a710cc6381caf1cef54382b09f3020feee7e16fcae7ec24f80e097ff271b9b5ab3f27248642cefd9e1a13c71fe57c01fb56b0b70d9f5cc023e74a06ce36538235676be2922c2af94b62cf432eef19b3609e0e6148a052a394f862e9a216585abbe51ca85445b993345d172700f3a6a509ddf1dd299567ea48f217cf833ca600c5944109861217e38fc4317ad2c657558ad9cda8535d37a084609b0c21d700fe012c6ee9fcfed03fd6646fb1fb8ea7314ca72f4cfd5e01fc8c882cdcaf8b387707f0c0a3f14aea9f860dccf40be7cf79e89347245a7803518dba82569c9413766abbccd312c1abd37a2b29a31917988f61f62c4b45e42db546d9dfc1f82827ea5d2114b8dba25f1d253c6f38a2bf4b56d7c8fe9004b0e6f55986b12c27049440a00d36375c60f15162b89f7d999315307209c9f7a492b58dcb500a12fd2d25e70cd4d35744ca72d779ec9ae13d4d63c1cce36c5721fb547c374b59ce9c96a0a2acd1ca6b155c9c281c807f67619547517d1a74e24c5bbd9be4dcd7aaf18fc10d3485d348159662fb6f77f161722611959d450eea9dc9245d1dba90da478b9781f1584126da0ffdbff337b67e05b4e790102c59f1e6abc90797c06b012db0bf1c4eb9a7ebef563cfedc05c554988f196203a5365f4eedb5d86916c4febcff3fdf49879074d4209bceafb98230780e78027694cbf39e5076b67dbc79a643415d49512f21371e1e73b97d8f9403b461151df3f3666930a5394ca56fffaf5fc0a44f893dd0ae4d7e4afbc3e332bfba3153ae2f15fd878bd8513a7d139c1fb973e32c840b82f19edede10c4fa905de2703a78ef5f81d0f56e2a8d2bde2ae12a51a8d959f9500ac73d1785179fb3058a1880a6b4a81c04f05ebeff7c7a65f410f2526ba5df7d8d4ecdc9f6fddbebe04a15cc603fde60c17b2c836baec4a6dce6f85a7a057a9a4b56c996d5ffb76491bc81e4ebb1a9b4403215cfd961efb0dd4c6dc97777455babab7d5eb48b4ce770f251f2824db8a11afb66893bfcaddb26c023a9a7b8a166a7ff1709f160c211da7afb337d4cbd823316ac7b73a6b5dd4c7c1f180043cd313d8b1db9a2d6acd0465e0b975837ebcd85032f055ebb0b68c89d2826b17749cfa7a3498892d4ddef51bfeb9d5e0944804a8087387367eebb8cb965c90ebd2645c765d47ae2ca6f32878d4399cd3158261c3ce7c7d398c784b99b7956d4867dc3c2c39977c708d8f9307560918e3c8682c729b3820c3651be98e3e093a2d93d113e540c0363da34b83887cb8bbf93fc9d307807526d7aeefdb0432ff80ebe06be91dd97c7417ea9ed3c6b0a71ca64591ebe056904883347c657ee6a715ff4c5a3982548b9f7867ad0bb49e22e9f8f6bd2f56904102434302dd14847e9f40fef12f77505b932d4a900fa3d008ec590e46bc4c6f2b48c685e4b6253d2a33eac15f2fe5e966d550c9b9bcdfa329e13533d3f2a3874e283fb6430c7acb81b6710836fb205578c35675cf54da9de6634568b849d3f36d4e2c773bc66e7925ba80984fed71f98a61f8fd8bf0bd908fbe61becc0ec049f6ecade38cfec100027b298d4de76c2e3339936d759011d36fa8471ab033d0f858dd1d7230986957fc3ad59bc6b3d4e1ab2ea569058ec8dfe3f87bc34841ac53f9ce7ac384c377a139f520f1b4a4f8c89c1d452b1895d4452820c98cc0b7736e35c1f52279b8a50c64bdd9136179ea0b1492d21d2e9f6d378d4ddfdf77c3e0b87b391e897241422a1e22f4851698397be29fedff277eebbb60ff86ce376ca6f3cda73b87d5aef4511c8004a95b482cb13ee83415d7bb7f43dab84a48e4afc6fc03e4c8b2eea4f936b7538617b86c1548356d62324679de6ae4948f3f7a2a0478e6fdfc668ea8e311f4fa7b8d0d466d7c05bcc25e825a93e8cdbacda6eb2273b72c6e7a53fab252007858c87609cdca1c343a6d0ca1a3a8f2a457fe3966756ae5c14b88dffcfa50dac0f6e1a33e12dfd0084c3eadfbc39004acf67bd69a68220f98854c781b95b139368cf3e70abb1ef8d8a0866a079662afc6ec108c2402b4ab254a2055281d54a89cb945453f95cdcc1c94a1d1705e9b94a0a61be1ea2b35e8b5fe4366d583224efbe9ee3e9e8d8137bc0dd822103883bf4fc9056122513b2c00c857c052434fba6f44f6df4f2606a69a31eeab3dab7a0ee0568827cd51c4d0431e182e6eca202d5c339f478c2b892d867d9b0a685a293699518df6dc2d06320a07e313288e92191f723c97858c6c308f67602c8a85d6324282e614612b9190005a7587c9a0af368a015117f7f534748581a0251621b90c53a9c7124bf80e1647b3592d05d9104a1da9f33dcb8563380e78d36b269c53e5830416bb45ae827f4798370717fe073b50ebc7c6eb9c97ad105c6dcd2f76468f71f0daca3826b5185259d01246fb21a16cd13e9a50788649b1e8878b1645713663675d273ac47af6e54d58512103132c6caca58cc9d546915298fecea4c2e276b6f5b09f968a39a535562184010f36e280903412a222dc395f7de757066efa335c69650cdf0cb223f0a9b6ecdc9be0ee0cfddbb7cac608938b282767ad11114d0396680967e51d263f33639e75359dabc0de8cf6a648587724bb9c626a32f319e7b8c5708b656a0d5dc7687e9ca1542d87f04a7d488d394cfc162d23320d800fef6cbc8e317b9a5bcb7e67bc678d7b6ea1e4a077f3861d65dbd0d40f0ccc7918272a3a024cb6f894f1e18254955d737102507b9cb2f6d694c0e8e7185228fd52b485a0b562f457481d5f549fb9039958487061cd730b8c80c1704cd3acff64cfc925a962511e74ffee8be80b0bcf149568e3c777884b8bcb736c3372b034e9f80df5dd3eba9464350c69eb3cd4274ba4aecd604fceb3f2a80121f53a70a497cb2387635acb4dba547fd6319782cd5966bbbf24bc6e2cd0667a416414342a48dc6fc4101872519f62e55b55be84ba04a30799a696db3390e18ef9fa39afc2e7c498475c66d0e40c186b7982e7911008d52b820f8c623866451226549435d1476259038f6c1e687fceb0a6036b00d497a144a4f9cc4dc3c64cedafdc38196f4d2d0b8cff81810ad664075865663d37eecf67727c56aafebb8a8a5ad79efc5ac41e95aa9a43e94b276e167ebf3ecbaf8a60db3a1e34cbb1ac6fc056fe9daa3659e666cdf16e93457846b8822dc9c4987adbb2676670bb94fb20e34e88b1ccddaaeb990cda1f8c7364108c62e84ed9e2d3138f3a231fe2874058d93277550aa11c939e4226b4beb352f9bfefe610c0fb8ab4df7b348bf54c708bee81254835484236cfc78a17a176188a89c46a094f1df4cb18eb93c0d07340667e0f397b028161641f5d75a7208aa8927c98367fcd1d10cc3ed6b7fce6073751cd50b9fd073150a7f141c435909eb2ece98f8ba88e40b103689a7a79241658cb552265499769a2262c2132dfacd430701eb31ef0f4a8dfc7be221af90e5d1c6208ac5437edb87edcae9e84ee6f2cc3f4138ad6bc87862afc9fbbfe16598aa394b5a638e7d7519ba5a65730d4cc76923a102a57fe47cee35d56f6f37906b5045454eb7b744520a302e383bb81bf51ad7171068732b1a670218ad19c7cd28d2929a8d448a92a72c8eeaed4f8175828e59c05196e2ea8d96f5e31ed08a156846ad9eb10c63f45ffa34b14901cf1f5d99d87503cab8145ce43530fd970bb7242074d2f48070c1ce98c8d1cc55eaa67161c00828e84c1f6384acf5e6ba18f54f8f41965c5d6223219589ca237c3234286468269b6141211483bebac9ccbed68697bb0aeb6b3d4736a862d817819b0b1398c842cb68cce95993c07e0417689ba710aacc051544c44294ad96a3b4bd07737f96170022fb190408461d130a9e0862d5e06ea6e5dada20cbf3967452e8d94694f09ec5e5b1324bd3c2fd3f00368423d635cc7d37b078588fd5671752d38840fd83a8f0c0c9f1a3ae64e68c368df81b27f46929205d5c1bebd0b4f3171f76b0e6571ac9ef948b8aeba1c79a285ed8d283d17ee1701559d4c107036915ed23ddf849a685d81d601ff0354b97b8f02872768473505024e336b257bc1e175e89ee072ae34cb060b3c1c33552d899438369ad4b71a3aa4dc0287d967069a41305ade70d13246395ee8f3942081f26a86a6ce7bc910d77d494f85766cb7bb85a3d8e2cfc1f30b05cde42a9a4e44e104d93db25af6e8c11920ff1ffe81c397f5dc3251a5c86228cde1c7d5151d24fb8cf4d1492dcc2cc3905067d9d0853621ceac66cc37205e0a7bc613923515cd675c44bbde2199b610b707daff2000300c1c36de10755d3694e1ee9d6fafeceb1d2b4eabaadde9714833448ea629f3ba17725bda7645eb11e51fda0d345eb7a61f97716bfb4c2097048bc2b4bb5e1e4a87be78866b5ec061ef23f56fb6cbbe97e8a9d43837b1c22b5f36394e53de49b9bc076a8699de4c1319af969340e9297504b12d05f4ebe75580e43deb7b3cac6befa5cd88bbad506c09f27c501f6192f335f052d0a89566689df0857e2417f59258d103238c49e372fa01f885cbd434fac3c6c3dcdef63180710e6109768d94640a63276526bfad7ae11ce4a36b423c4fac4f84eba2d004120c4bacdbf4c62b8c3d7f86b4d3f1ac507773983c9ff3d7c6d7cc2f4d4b3fd62c6148f75eaea4fa6f8dbe829a87117384c23cfbcd214a0f1bcf3966749feaad7ea462bacd6a5bb4bf548bab1496249b1e16170c7a1e8f3665b229b460e37d803848d00f9643b8e43f365d64c160e9721c1a5aed34d745386f77439902cddb28da004f82dedd8f9e0045ce49ecd0dc0ee177895c3dc12b6ea2bb419e02991d32ad51142893040a55d223ef64af4303bea2b6ff15ec2d63060def59e03279a1339908eac1933c67e9cde533330c17e3524d8ca6e83c0c953a6f530bb4eb0c4713f4781fa8d6ad041b7f65724f3be7c60fc64eb147ec540f7abb4cfd798a1fe724800c32c19a8c8f12aa51f7f7240c64ed7d916118da4295f707609789b065dbaa49478400d6b90373b9a7aabde32a077eabbe80e54054bbfa9ee95ca7728d632ccac510c56b9623353f90f29709013ff9dbc451e16d709584e11154ed88eab183ba15a00b673bd342ec88bc27b73aa3b31f65ae0d3d8006105a59cb17eedf7ed7fe835f27fb5c5df0d9979b9cf47ebdee4ca375b0098b9ae0c79425668127143b77c4244a051e0332ca557bfefda8620a74d054389a995b68ded1f91dfe5eae4813f2975825e52475ff36f1cb37a7170b3a5631416ea9362ad6963763d0d86a374d5146a1abdd1744d4b33492196245818b6caf03bf98f3c8ae6c6528d88eface9836330b84469db118a5974dca97f55bad01dea4662ba21d4ac44a8376ad8d45faa6bbd6643ed7f43efd2eb65cff2dbe299dc9f8279cec727c2dcd4bfcc708727fd25df625bc5f7a6ff6dd1d0d5ff70f20be585dd9ee11f17edee0c0093c68df2c1ff2ed5bfb612fb902ded5e6aef061960fc564495aa41e6f1236d15bb1deba6f517a72793e785f32bdedc5f8fa17f5819f76be5d84f80ff5b37b8edc350ec77e0fbf76c297f9c9454ef2564c731f2e4e8881ebb72834df62958bb261b7a5a02feb1a944fdbbf2e8742a6232f0e58684833b407ce9e25c7daa253fef8c0b03d4d03fc25ce521bd06c3058a6ae804ce3dd757adffc6b2b85f4d7401d5cec7eb888b428453365f3fc258f8415e7df2147560378331f747608176383f4f1fef6ae89ad3745266ce67c6753562e5d61bf87737bbd1d8a7f45f321bec75e13f452eb4c3856083a9112dc7e00002cd74c08239e45abfc6ffecb3c3e2e780cc7b17ae5dff8fbec52c7c883206b349e53a26e8870d2e5b0e0817fd74bd770db58099fa3afb0bdfeb205fc0ba5f0d13458d8da46f3eb73df26e37ed1363fabc16b68accfbfedadb9735a0f711aeb1c6de12bbcdab8f1af43b379bb57c9362077cfddc88d9206aecb4cc971cb1a3423daf20862270dba88b39f7a680c37df466cf66091e75825dfb5e16d0a7f29d19ec29f8baca33edb5f54a348333a591d4e33c8bf2303891cc652b43fe0c3be50ebc74cbed09e33ec0b406accba17a2b30075d761da8f34fe2b76765b8d93f8e83ba37977f30d37e1a38bc588aa48a0dcd619bbfda4c7fdb449b45ba1279e371451e2880eb022f728f8fd01629130c15f04868bfd2160b3a4d9276118d41d8782996e34177f1d5122264e29d970bb60b8ee1e6d6d23595812f7a0e7080b7c28a224fb2f938638acfd31e0182750a4d12c481015c50e380eb094590bc02653237d6721df8ed79403d406c1aa513d38717c567eeddb8c9f1a15b2a03c65300b7ea1008c02778da3c833bd0a28b8595c207250824180eb35e29291ce76640750fb70ed6a4161ed97337df68007adc127547449963bc8fe604d375df50b3e064e282fb1c30fdadc7e49a45fa6dbf7737e6541f60d41fd6a205d35aca27755bdbce49d5cc35942091edd42d1a8bcbf8b18e2494e0b33f58b05eb59062cd20f15797bcf80c09dd26ba59566e7361c70fd0f7b421d1dc5d2c05ce9fa0a30ac92bea2709e5ad935aa3a2bec26fac8f3206bba713aa022b2f82df10b13df73be4ae9ed2367ea8ca59b58385c2c7729e5e16880cf174f55b60b0875eef76293af61ede12679c168775f91af271f82f0f8a414347be801305cf99e40ae302f52c9041609d5e98b21823ca9fdcab64f0c66d3efcba7bf8dab11843b1c7e1c3a811a6ff3f2230b1a1da86202c85d9bd58117988ed2075d56fe3c1645915b60c697fe42bb39a89cacd165ceaa3b9f15ee58af76e8f2204e1057ef782b144d4f326e08299822fc738ae49fb69636f1e8f9d21e744cf48848ecd7e398f45ec589d5d09bd763c280cbc09293379be25774a808840257dc11afd332ddab6a7ebb85670f066d3cc0c70072249bdb9a64e6c4a5d030f12119b37941c736d75fe1b7d22447c99b7fc88e2e4eb4a03ee9fac078d7e6452565ce529e744fa7942fa6ee77da6cb90ad030fb698f8d2ee8b93044bed9cfdc48d5081e8db6dd099882a525381270c367dfb42d12d018104e8a8b4e47742875d5de562ce2f4073df7d85a6f61856c094e70562068c5ffba375216581452884562c9c8f4dcc37466e6acdf0c1bb83f38026819b16bc627c753efde8e7f460fa37a1f600e349c4b4a3e7243376acc48eac0b19a8d7b2a8903947f78435603c885df546c28f72381c14ef551e390db4ff3f743b6166686b7fba876c58947a7a48e726b1c445edf20f5f568f623f41e197a315fe687463730e474855e943b884d919e5c8cd8f79837d5c7878c9a06fd305e17252909f1103f026482ebc9139117b25c0925ceb7076be3ff5eae74385f73de0e70359d8d155d66ee479a065abcd9791103189d07ad58865de7c40bffbcc91fd6cc7172084c94e31d3135df359526edebb0640cd631db2310a690253bca9ac93cc68a802834f6d8f8d06c86bf287d545a467b812f29378cca69f13d29c44fb7e20baee730d3e84bdcaf2691d7c15f164c84c0dac680c6558c2854bc95731ba01b646bf9382d1804825df3872ec95a0e56beb05da4101a227572031d1f3d301bfbc734958e88e4e89d439c899462faea23ef0dc03fc012e1a3ae0476b01e72fae78ae0752328b50e1dd02ae1fc100f2804e067bb6c6f46631f17172dc8443153c5a2e81acbbba4cd54042b0d3b0451de2441862a596f505bec95833b198f518ea06855bc2270338ba00c331346b8b722b98288dfebd7988d000b9c0b2fba8437562205239c4f47b9e6d9d9865f33ca8e569258b61141e0a766ed666b8418ada18b28e92d2befdf59bcc776dd3c67cfca24de0257c918671406460f3f920d0b0a4efcb945b9a6506e9d1e6ba28c846076bf6a548e537730aa860e83cf5e3b15d2fd897e49be3a1eb30d8011543ed10a922d0d9a05feb65a1cd1aac495f163818b08e8ec977942ee8f88ad6ef6ed5835818bc564ac74b03612fb240a235f0ec6f30be048a97c742f34a532b3c9dd6818895747fe27dcc7af498dd02169061376cdce155d40a874c59703ac7303c19239005c7c21ec061388a0537b28bb037bb733a0c94fc044c6f9b540d257b7103b5439e9875473e4b1b25bdf44197e0a1acf26245038d405991be3f652585c247b1720abb658ea8405f11d856ffb455b4e119f31035c0590bfd660e49afdb642527d452949290f614edef943cfa0a07a64d73a0e926047b98deae2170768da9c32f2da67006322ff0a0b16a4012952c2c47f8884a9327618e73b5bb7c4887cd4bcd65af9a9cd51efa4a5e3fe25b4853516905e49c48638e56d8182d69956100895a73fd041b46676f64b3439a6e19b8fe7574d64dc7f935f13f6103e84ad89579fa8453ddd1ab5edab172b494c3fefbdb01f909fcb520bcc20a06c1cb6ff9f110c4d1605150f33db713d0475894589a3b78858b4d32031443bbf61a489643a925eb450348d7944cb12bb080a42cb80b957b67b073a30fb39cc7d55f8940e43c16d5cfe9d375f5ceb08ae42ffb65ef12e76f8f37a50f595c284e4dd5bf4e9101c8d3382d3ce39930162c1ada7e2cc0803a620bd3a6400ca2f58e7680d8167b07e3c40fbd17efe2a900ce8174a51d353ab4fc1022d398f14985c60f2e5aee7ce23202365eeb289a0b94812ac6595ad09afdba4654b09f5706c48b24a5024a0024653dcbf23bf6510120192bfaaad784dfa01bb39a8aee2a388bbf4ffa2f718beebafdd787504e86838ae8ebf3f52c0d7f3a343f6d9e8205cdd4a1bb9b374eef54259abd93b229d4666bf1b7b61f86e2c83148112453ad3f1af19170d6e0e850f33cbfdf23e567051a80aa325c053c417723abc41fd6d5448b510c7457afe515985da3167f3b0a78ba96216ac754869e0accb8b02688f7950907542a81ea12cea20268b3a9eb607063fdfe3ded2cd15d3201ef6b574f18228b15a8492c74f7d01aaf830243fe4ea6a683f7c8c14084ee622c8b670df6d11b524f0f3b000c07d3e9a6f6033f9292aabb3825edfae5cf5a064e55ac12d470b84593ab1ef2d77f3c3206db6c1a79130b9231f37fb04de13b6789e87b666b197c5be7dcccf8148552ff1bf27717d14ce53acf424b7f7289e45026177c7c0786ab4f17bbbd5af07aed6a10c181d9a31e1a14b683d8f50bbe41f6cfd0f5c95f60bf9edfafe71890b664dae76ec4c7c8dfdaeb7a4f05c804377785dab69abef1fbd85919fef6660183851e34425561a31bcfa496f0866cf9b709fb4ebf84f5caaf9fa177138ea2e69fc7fb51a41563e383ba5e9cfc8c761ac1a5d9680c9888b5dcf5379e60778f05f54d4a46c404d98b8bb231158c8789a0cff370b18a4888fd8510d79d8fa4038f50b21da0c186fd9c5d36b43b0ff29abb80be046a6d0f0d07701ae3547a896b243d1cb7b2fcf75bece4112894d49c7102e3d20d4d4c04c3e5d8f86397627f4bea6c055e7d5d46021ec4ba2ec1a7490de614da627f4fd0a97990512454e516b2426a9a1a7f40fae4714ea32aaec52bdbc4ef236ebfe27575c99f0cef5a47f461ffe2592fb268c5c017765717865c9e7245b3b2f6937bd56836fe47068dd1feaedd38e23859def1e133fbd1e6fb9dacbdee4e28262e92709d27af31be0ea0244c1ee5431d828864f1db6ac46232817c26b09d90306bf40eae51aa0d87828b021310636e981f44b52998ce1616180f7722a62d3230a792f1d77c925eaa48b4bf630ecc7b0e5e40dc050f739440e4ab46af73d5f2dde01bd0839b1f002e451a515171a909f5cca0d0e7a91b87ff54f5011eccf6870f66f6332766d14077e88ce471dc7c70e9c7d8eb113e735af4a91a95c8259ac3c92ee11541ddfadfb27e4dc5bde33678c66e5d3accabe16ba39bee82d5b08bb5fefaef0d6bf0f81a4a66bdf2f78f19f035843b1aca11b3396a930a4111ab2c894796594b219d56de51aae50627a48850a1a729479342614949412a2c027ae3ca3882781cb3e50b2a5241db35b69d9d217e55eb917958bcaf5653f2424cf9afcd8b8006eacfc43547f46009363e4b31e75a8bd74acad314f7c4d1f614e57e335e181572437d76108bafeed9e92702dd1929c18f70ee37907d3015abc68925d129d41480479b693bfa2534e29835f44cbedb84a54a20d1755d32f1795fe4359f0868905b6d12fb4ca795e8c5ee97dc2a662e85ee84fb9dac187f288dced8e2fc0eda58a91e152602c1a47b11479e8f342abb228dddc4040306fb37b2f7bbdeed9af519ea3268e538b0e94259dedd97a20e96713cbbd09f735de42aae27b8e273f9d9ef57035911fac399e779e7a918c8e4796dd9b706ab240ce47738a6ad9c4d5d81698ae1a4eddc28e519893ef6d66079a840b83cdcc138628621938c16cda08b5eaa93f2b71495a15a904df96a91931ba5d29e5b4961e68552a4605f14bb2b355b2c87b02f4223684b343ab0a1284dc31e34a65f6d8153235f3b5af614880a37bde57d73667acdfcd28f2deccb08296264918b5890b991e12e464c3f090e078cd51fa72a7c235b7e571122392c1de4ee3f1e6c99fea365c7d4ee8d3dd23b7377b6befbef7a9ae45de09b7f89b1a46fb2755902d4f6d69b0e6f6a90ea4db30b8a8452e07941ff1d85de3d619fbf47696dd804bcfe94bae32819f5885408d8cc55affcd67acf26ac036a510f642d75d8ddd7d2937b9d4942394c5e8e75424539bab8d507a5edf3f42d5b9d866f1f0bca38b942c9592d524f7cef5d7e8d95238b7bc840742b312ed90cb28ce404e09834e069e2913440d2fe5def83f704e095c94f1d46413cc00b32c98e6c5a91d6e2a3045ca1c48516e3e1e76e17ec0ff0460db880451fc4a1b72f760ae1a106b89125bd5c49dc92a83ba817f5e20aad81ce5d295ba46fd82b35e182568f9a9396b5d43394977ae28aacb99e9bb723760ee7a5d6b82059860127f8b7ac9f7bcd2b0fad9f27962571be7d609473b77106698ba3a24900bd5b13444ec33240c283736f01ebb7e3c559f8ffa553b3c56d7fa364838f2fc1d2ba07d94ca75f77c23876329a2ffbf296b9fccb938592fa757c284c0378cd9556c071d67515ec38d198bc3f0c1191d2aaef05669286ea380a722bc26a12daf551dabdb02de2c56fb26cdf47d90f561387d54ec845788d7d77e0c1020f0558150fa42578c97ec88a64d61c81abce403eac09d084a7719d8cce5dc2fbd1ab156e51974c91f00d559f05468d5e394c4929c689e6ef7567234aaa507309ed0db260a85fe0635d0558b51015b08a065b0bb6ef9223138b00b0ea84c72135b1ef78c706d38898f3c1699288a8b7b678ce7a125f5f51cc217df58d5cd2ffc812a3b34490fecfaf439109c92dcdd12602c7592e7ad07bd90d21c69cab34a3efd7bcc3fb35af987a728dc46321910a8d04fce622b431225452bb516733624e5fecfd53d7c77f795eccdd3b9278b8571609f60381eacc79315b7d9c56ede41139aa50bd1a4168805a09939a7c2a321e29a924d954bd3ed9a6a9ea16f29c93f90e15234d7e49072accf691dca7dec99d662a87bc1f57e0ea02c7e82a84fdc564ed9b61d6b86c4b427f151626f839dee8ce7586f0e27f5280dc8b0cb0249a85b44dd3eecdcbcc277e30f8e5d1a75b7628754686122a78184605a9b61f30b1864701edb8a067d1f12549cc057cac3c0c00c7474d952b413fb8a3cf5ac1bef8a9438bae71a9974c977ea4096664fee8ebe7e86233772550e3d998e6130b5d261d8b81e7139cc3679944d83c264bb8355508a8a4e94ab32266d7098cc5391d6820a7b80a49a659537ef9d48cb8e845b0bcd944dc657f7170a16d8701e6c3d808fc26d65907ac1a66a4fec8661a3226a9ff2422af952b5127ce656b1227502619ecd416f6f9edfd12e7afdda6c148fc515135b5ea405befb7b5fd528915bda8f7cbeca4a512f2cfbd88f72142208154e70c910a8be7f04ca670377e8cdb3d3dfac6b390a1733cd4da8762856a8fbd6203c30f555eafdf52ac57f5639545f2802ac069c0b6d782ac4c656766b5b68d8658ac62957df7ac1b73ac97fbb8df633efb16a134de474a0cd973adc23df7c71426bfdaf5fb353919896015ab0ca51c23311dc7186dd1d06b1fc687fa86ec2424c01dde8611e40e165bf01bfc6ea1a007873a63237b511a3c9da183aa49c78acb21b7b147fb390f67c2fe4a8d465f1df8a18da76e84e3de96adb0c6a42d2f3a05596637e2b056474f35fdd30ffe987a1b7bef9d363b6c461525139afd172a8d7053ce057fb8dd41d73bba500a56e73dfd5132455cb654949f92e75b086b9f8dcfaeeba9d2ab43bdeac71f5e67c45931fcb63a2fdf57726bcf6112197d6d9ac470e9acb88188b1b027089c71241180eb59d6593db262cf423195383ee83cb61d09fad7fd772eeb781183c44bb39fd9497124e9fcc608e42a630d235d50ee53d8fe43d57c97e6d93a17ab60854f2c7c653a64a21dd193e9922246399bcf017a3df313ceeb3d383a207c2d41a6a4d224ae83a032fbe29f05003b95762af8881855a9110448fdfa0a8055ba153e4da131c10d64289119aea8d46536f4ef54a8064fa1f78bdc240b038063187f651648ff679f95eda621dbd492a9f1b7dc5c2113f2bbd963fda193081f21ae5bb0b97197c83cfa68a1e473ca62c209dd8194e83e4afcaf68c7c8d96a3de31bb12ec633980ff8742507aaa6ae87c08a6bac31af47d51ba9533d79c9d9e44cc19ae72600140fe2ab36dc170fefc3a40cb8ee230a151a82402d9ddaf8f6176008859df59afe9511aad6b87faea2a32a3ce4ccbc6b9214024d962d2938daf51d373f6e253c3d2261c94a22e96cd28154701fa68518431d1879e587ae2027adac3f20ee5245b71ba46e6d382d3f01902f02ea090e0d552f8d1ef4661c0ce1a9427d361d23b96dc2fcdf6e120fe15dfe4b3b081f726376502516e42a7e0601bb0197f81bdf26bdbc55e93543f45af8a4e8962b187d0243a5360f5b6da327f2940180039e795cf4e80ead99a4c567fc12bf1db3c24fe91986370017bf603e8817944b125f05890bf8053593281c10228760f00512ffedc97d7a7f783821fefe2d90873ef52968a0f85135004906cfd00847e2eff35a36dac7234f1182c3205e5cad92e74066ca685e65b54ab761b4d610ec08ad753407e92725d9588c1b2cba4c6cc64dd6e899c73e85e8e8bf2fc2fd126388816747a90e552fe62f420fbe7928d2eda93357ab0da830051edc5d792729b236e89c1d8a4c5bb8bb951c0a9e56492e318b21fee6b5f1e102d769d43cbdd09ec77d864b0dc1ef4bfc27892cf02f42490e96b4b27ec40d6ef457b97a8a580509e9971a1df84b59bc300cf7b446dff6f3a81f9bc104dd961790fe2fc47f9d1481bd9404cc0fd8623002fea80d81f03ca62b02a62e46409a87ad71f87a42b8931110f113fb7e23fb6b19313feff625dd20c32c54ad66660c78ed5f3f7d66ae9949d32a9a64dec9b8f053a3661decc68b9f610c119946c7f108507571fd9f3df23f74c7c90d29d0e0036c61cf765c3baa5b8056e7227dde0af734d3f4ab7c1e00e3c46aa5f850730ef923b90700312ac1e0b54aa0e8833ec612c3eae5abbf542f836ec0af37e0445353d3185dcefa50416022a388f6d399354a7f8b5fbd16fc4574eacbd8b98a9e2988d0c84090e7ea14cf735510deb9a330de1ae78b77b3ddec539ea79a36e5052631784d6028b36beca1b1925198cd433f83a692db69ff58f6a80d0cc5ea3486c3915d48d23e28682be879a9dd067e4c280f3bb6c5b2390f6ea996ab2479ee63647655034f1306d3d2e487b32bf5ab48a2d03fc01d7973769dd5c2a6cfd62ab35b7602964a1f3006f3a69478ca68bebc309634917ae03682493dad02115c1a90487cdafd93701716220caf731baaf4312113fff720efd62b57a621be8ec0fd6a3da97b88d76d0072409222f56a47af1400bb45eb772f898f6be0da444d3310fbaefc65dcd26e3ec99ad1858f03f7f8c3b4964a90b1acc47bdd45d610fcbf64fed1d2fb5037a61958ddb0b05c91c40031d8b911ba1516e97b4bb893e1eda4bd3a8c4d709d76cbe2e07e95d1742b57d164fa5a997fea9ba5e6653e3d2043030760651f2fba1396f6e58941c91b5602c42c3fd71a2fd36a7da21bac72409b58143117942b4be4ab55f60a94251e81d056b2fa6117b3402d25bdd57ab30e3b7785c1eb4a80a37fbe5575c8e5ba8dbce3d4d14de538f17ae09dba4e6c54c7219ccc32d3c84c526eebb429ea2b886101477f60cdd7eeb452e8bbeec4471723b0bbe955ee8649df6ab7bbd214204fc0bf2775ec3deabea20ec4fcf111039fcec224159f3240735746fb0608dc0bc93fb9e49363ddb82fb8456242c9b012a04d76b348bae85b4f18139873a4e45b72e231a1a37101943f077926ff3fe8155260e3b50e8715473e3cc99b6f07319c18278f13ef0948a41a8b84d207c358584514f4b80f14161a5c39d37a59f1bc10f383fad77c075faae37df2ac6403efb0a52e5f927291db171de7d124079b5cc106d98bc19bcf484b5b8e33d57f5d7015a7639efdeaf53c73e6283bc7d07c3ab986bd93ce5cf943f853e144f0b27f5ea2617b91e8de54f3c736d4a99d60498ebcb50ebb04ffb0d619e38872737f10997657183cfa9c822f6a11053308cf86354e55e88ed66b8861e184f0f85d07d2e1dbc1dd5c8880a6edeb523ecfa070c379bb9a2bd6b540b93372a42c030d4956e31c21959eedbba64860ac7a35996e113d64e705afa0080eefa3ad2a3610a20c56be5cd14121131be5498471b52a94fd8d465e17611599e04f4632c5af8c678a5f196502ff32ca247e649409fcc82813de4fc699ea3e19cd147e329249fc653493f8c97826f197914ce32fa399767f190f26b8c6cd308926e608430f6f838996b25cbf2164d8de246caa260cd9275b659668ce1c12a7715385a2accb62c24e03eb2a20386ae96da4905c89b8d8d067ec0d20d9a79066ee9660646cff58ae51b54875cc7bd08dfe0487123cfa9ec7278a9df77cad36d69d52d3e746569669eb49a193a687a810d1ba19c737ca900541732f1ddf28fd175bbff946c80b84b921631a93183a6b6ab0fe854c383a15bd4622b151eb5871c63969936ee460e92ec4360f5179a0ca90b302a4537953c6b2401bb1f3736a6bfc4952c3e14b156c10e5091695cbf3fb71c1ef1be6a54a450cbe97c8df4a467a09b529c6dab49790981236891017007add3690ec2199f4ff19cd2bfdb7baedde1e61245faccd5ae9d14a5c4ac088b6e4a947284c7919b8554e2eb7401992611cdd58384a434ce157478e8eae4c933fd25276c3e24a3bd3e04d9f41584ae64e32d4eaa4645410bd174fefad4e28e8d4b5d24304987e276d5adbefbb9f503c994b00f5495684c6c037e8a303615153f224a382360574698c839da777f1c0293cf0e694f2d8abcf85043960eb7c2d76a84e7c34163cc32fcdc9b23fbb9e7a2ec4e7ab87ede0673f388813e55a6e46ee1fd4336cee402da66d4be95255288e011ba5eca115aef09573ca516385a711fa8fb223b402b57b254a1a75c7ccc18fa0d6ed2f13cf239ca1425c24914ed918e8cc64ce053aee6d8bc6800ca0ec18c89fa41806c3c2c7c777369ffed3e5163f3258636c4dfb69b6e90a676c62a3b068a9e08c9162171d4ae8c834d4b2116441b1c3341e8dea658975f6c1d3633853a496a39b9cda9e32df3c844013be4b76c440940fa6cd3cad1b535b788acf2eb9bb3198e0836e7e87c7ce5275eae024b34e37e6cb05fedd01cd271c6be0e437e8c3dac85e4170e778bfd6ea076bd386fe410e621c64b5228b4bccf76122629a3415fbacc35bb28fd18affe7b0aa258ec66105a1f1300211022419e0bbe81e8d84235207baceef4c4803aa56fcd9afc4a825297eca79d494bd62461b711528748f64360969f5d4051303ea32c8fe4c9246768b5592d781e71a1de03686a2a1c376e60a1ab660ae7fba6b1c3a18de2c52f85f95e9edcb489a785c9e7742681d466e4052d14c185c454269d970055dd73c79860bcaabea79750f07faed190d938ae2bc67296730a2fd101e1c3be2c968fe15ca04cee1b4b32877f5c78c7088a673b6d7df928d6e02856b90a7750d5a8a2e7c9388336dfe045a41a1355425a566fac6c0083b58238c85f8a6a4ff6f3b1e347793488340125a63d89080ada42a71310a9a9523c0d859df12f1d7fc133e436700b65f7f860530415145b1c61759518b8a2784cc7bf12650a1f2f18423fb900563b6a6f74fa41db385ff6740836410b84c6cf0fa991295aaf50a4da34988bd439a31a3d87f8d12baebb45d30ae4cfbf7210aab6e5ea133e9b6676dc6d8190878f042cb9838d350397b1450231ec279be4d980e2c97393b8c998ba6c9481bf3bdf5803ba681f0e5ff23cb68691ea22f72ef98f900fba1594f68d035b71328f8910a12936566c34960a30efeb0eb61c2fdd9ffd70cba3072fd0afb7aaddb3a9de15da5428241ce3d597aa93dce4f6a6bd77c3537000593362a7c1a2a7e37f2f0fa39c95bbdc6949fc18969020061274b10b33b8232cbe0311665496e1d24a1b44c22e6ff947a347a3221e2f17f94006f4ce276c22cf4aa02cbf04e0bcb010b841231130e4340f7de01b7e667dfd67a6d201e17d741edd204611d9ce0ef132700d895f4e698693abebddaa7732adc60fc39206b02f791b30de8956680a84522a855bb597173ac096f2d733a519d5ccf6180b05fe3a6c20037f2f74b5a99a611eef72dbdea15cbde0a4873df888b0ae78e2b9e55a228a248a150b6a9cf19d1e3b14d0104d2ddea10c1fe6aaee32ab86ff74fa8e5587c4b2f29d10817cf54c7c4f87a824321b337179a299d2db843263068845749753b1c4f27c94bbe552c4c5b580f6cfdeae2c474c164d06e6aec631bdd02a9923bd97356899317743ca00590202e285334f943f9398a92d7770fedfaa17cda648e23b879be3c9893fe05790938b340f43557cb449303b9c4bd283139b5061d922004b06557899dc776d7a0c3e0db90c88a7be575fc814d63051c125a2d4ad14782a39a8b58bca582b070a7292bcfdb804b327cc1e5bc86642b9d2f5234bd8cd3040845a40837494cbea15a4ada3c507e885cb2a726ec5b5815052705f5bd29d5d82891b1423d4cdf0509058bc2eb064a6a639594597fb6f74d49a6832d3c74526aeeea5f4008eb28bb333e15c305e672448c1410028bf2f9b2e0dfa2cde2bdbe055a74cd55a468dfa70d7a192b6ce493b29172fbd0e2725695921576addb0c0bb0a108e39ef82e40c2b5e1f754ce68d0b131adbc3f729becdc51b46f596e25e31f7960639596b19b6f2a9088fe3cb150c8259ae8dd350d22ed79af31f9c50bc979bbe96dea8814521b61d496c612bd5a5d6b05388654c6e6c61524f193465a6d5efa06e05f4e26dd3e213fa7415555743d102aa6d0532e4be7256926422a2e10f7e2445d24ca87dcef79f761d8d5a49c75dacca8b8ddcdba9c57d7fa15770668b48da95d69c50d376607983630841947a71ddd086f42365bfd853a60d2a42e6c55638156cce1dc701382165154602b5e8c39ae754ce328f85b61f32aac1d2f6258733c00ba6b3edb733183499f22af5454441903cecc4494ee788231804ae25dfd1cc3f281ae64562cf7bdd44808e3563b237212a0ef8a5ea221a6ed19139f0d7eb311a09c523f5d34039e5f90de0c7c3219280bae79c4086f25a802ded46d69059108ff62d1a78c11d5f93df8c76c7414606ebf8c95da4eab7bb2b720b5a9ee3767a7dc56faef518c809ac6621412116d490c550a4bf721d225c3595bab72e248069412722c08a838fa6fb090ecef12386e04f313b91ac6a38475525936d9debbd337552d2be74b2ba87c37cbb4e6d28578bb1559ded291d5c66b0a076b2508a875232e20ea75e873dae737668c040a39c8d215a260c997cad058e1bd42fc631fe453eb8905b0dea737c4a13512e616385fc5d219ed09f06f165008dce1f6ed9bfa75004990350b24dacb0cbe451a14bae9ff07005231f8258dcbaa6f768b0e62008d2e13b8839079de1ed6b9000a8e0c7800dbd2871e3ac6b590fef0d5b17af461676704b41f878f7e850b89fd1f1f6c0f85ed40652d896321547ea8dbecdd264e76ea3abdacd4fd7e01923ccbf669f18205941d03360c0acae92330470c0164491a26c2153b35d5fd74179928995889fcd5d08373ebd4efebe2889047d6f7e1741243c5123dda63e5fdb6e885b874991d1c8929a273f09cd21f5164d25b1f0fe20c784e7ce29797e90b437b34289a8e85cc78e423f4048fa94b000e2b63d678983bf68a0cac7ab257f54a80cc3edaa959ea85873f93c2e11c98bf944ee66983387764a7cfc40e345f42d3109b5deca45f7b1dcdbf48d3b02b7a649a053b430729a3c8426fc8d3ab193367c4265913f9557ab0f9e049cb3b930774cf331ab7b17a6d3eb44d43629b44d02d8682727f441132bd199062194941fde2f1b37b663889b580e01eb28bb1ac03ea809127f1e4a3589a8ff03b47db7cfe9134203a7f565cd7579bb87441e57f208c17eef58e7a2bad11f4d9a106ee0a6066dc61f8c990d414f9a7c2ef1a91ab90c835ee2bdf77a4eb3728b52455cb998457f04f9c40af459a391611a88a77b091f6bc27fae83787cf2a25d33b1d98f69a9b08167d930632076eca61287172076d484003cc8f14a43812da5e63b0700af3757a64378402fd14ae6c5a1e6da20baca4b046418593b5c694a5b764a3639e17204f666da53a2c0e770b80677432f4e81d92801806192bbd224516028c6667d97b14df5d6e5a3e07989222fda28951f06bde933f52e61629d443b3bf80f751aa6e105627b219833a927366515fa78ca074f3b99f4b2dc20e1c94793e580e6f5524d456d253eb510b15c232533783b4f5a881c122457d43a7b7a65768e66e760501a43631a9d5b5d8110448f1c0a3a97a11382789eef8616a451d1433101f9753197d591ac71c528975ab0d3e5d27f72856c122309dae3cfc09cfc114248da35ebc212fc809db0760b513d1aa2d98ca8769414ee4834e9a66ffe90d8929200a3993d77fb5105fb3de7aed70373017906223d44c6bcf0c7072dddd0c34357dbf46b253e72699eb12eaecda7fa0fdb63d59baebaec3d3ae1a4d9ccc43646d8c4a24e2b5d08bcf67611760faaae613d336240ab9175521cf05a3ea2c5db77e71c93fe6e3952c80d300d1efefb9054e610098b9bcd31bff49af046f92deee5102fc63d20f37384e6703f5e5755efc242a295f4a0607c53be896fd80dc0196ea383cd13f792227ae855e3b52dcc2289c75eb7cf46918aba3d2ac433da2dae5b95c99f7b75028b686cc4e41a0226f53d359d885e7d3d719a756f31c25f750f3621595ddfc731d12a31d2571d0430e5e803c96d5d6a12577a4cbc668aca8df9c9ec840fab0f87193f11251ee01faa58605a5cb1cf3a3fe34c091ab1e7bfd04e4466bfd8ee4b00dd500aa786df408e492cfd3d6da50e66a05e7d795a1ae522c8e62531c9c83bf4178bb7e93389cc912d3d36a28ec71cc6b8af8d6d5eac01b1c03210a58ece2328c7086f5b8ebac5970440b46844757a702b34627fcafb12c8a91d42deec9323e8a012f987df27e60422ef15a4dd41e51fa5c7131863c62eb97daf54123c539b209ad41bf09440d571921a747ae75d2056ae288a71246abe0415f8468344beea8789a95d2a4fcffb8ddba078bf589a7985a923d0ceab885a674cf3200f2a6a10e285876aa85c759ea5bb0966d0e55c1c10ad84d4918a304e62d75582d83b34d80bcef2132552b2d5021cb9d10228dd58c7a5ebf2373b47282cfa8a97dee0eac95eda3891725cf66d547c689436ae761719b40c8348ff65aad71ee7155cd5dc477b6d13d4257bd668bbe46195dd44fbbfdcc0f64cb587b54420be90fbc71be8350fb4a8cced069abe85c054247d47a9af80893aa27137e00d3b85585f9982b9f6ed2397ba69d6d2b8295300c599fc0adec3114f6890f7dac00c03d99043e5051cdf3eaba88fbb0473271d4d0524c582ef4816f441b0c52057dd83a6823ef3aa058bed78cd31c0ccf63e3fb24327240388e6f586ee25f194af6f15d3f5a9085a052a0536d630c968b3c251d31324c7a76d7dbb40182a6de4ad787bbb7731f2f06e0ee2d1bc6ebee51c6ed9e6a25932b75360ce14cc4b8bdbaef4d816eb7dbb369c09c0431111322423b74af7ec3c86d4a158edc7bf85b9abbb03e24940b3c46fdbf0fe58bf7e24453098b08be6fd9d18055ed00209127ff9f25f9e3ab987ac0b7d52f1ec07bf3512a424228895bbe346e383de4885a0d4830b056b36310195216e66da8b43bd9a7e5e473c4e880bc9709f4de394fb47b4134d2c388e79d9f6fc6d18e27434783c7005d000e32c910fb4b2616a4374a566871be8fae8508660b161565566b6994ca43ce5ae41df19dda3bbeb9a80e42dd7fa9cace3040afb05178fc284c86c9cef7e691091e0a712bfb0347378bec5fc269d3e193fd1386a60a2ec47770267baab8b1f1f6659fb34c5cae9218b5dd0ad126e63170088b60c7b466fd3525eb4dc2b76a2f0ce09c667a3dc78459ecb4008ee575df98de954f33ae09e2d82f5b3fe6e02d1beddd9535bc781ce66949d1e56f6a490350369e741cb74cb033657b7a24538ff5c75001c9df58735106c55d1ece9e38b6a45b9a33b0a34828a8b96a7a2070bde8fb77aab814527546dfda818dcded48894ec4d9c625ab834e8d66f94d02f70032717ef2428e1df652273413cfd80ae296debb542aeb44509261716203191e56ccb1d0edb12998b2bcceab6df853fa921c1d3ebcc5b33d8a1d96a21f3ff4a5055a1478ebd14c1b60279f219a7a556e52b0b464b997d60b5e5de72cbb34108131dc416c7e0a845a3478287df84b08a62675756221009713a730ae64802da89268c32841650872649840e1259f81103154bd89ca9815361dd793c213620bd276dd300366c63845b8c5f4a642b394a24582d40de5862f7d857a523cab413248b2ca74b3ee0b217a3b6918fc2ed2250a9538031995910453547453fd09cf9e7aa5df2b3a7fd5bdc0a6804196091b2e8db1e4759e14823609ed9c74735167beac451f5a09d167082b2d1622abb62ba3a4c92f7f3b27095e1998c22a31a3e7f0d04913276e8d8ef7b5b5f1046fa37cc69ddc4656d7964c0ea30bb56ee4bc21a34b0caf3b10db40f0f5ed1812e00793777dcdbc53a0dd4e14e9f54f2d90e7d00787a42920e11d51f3993198edb8f2dcf5a6b047b3489d4e2829937e325ad4cf4bb829bcf3127bcbe57723eebdbe25752009745d4bb29655364ebb3f74ae950a690579a97a0c815e2c30ede53ce68a8604505c0e828f7ba775be975febfc09f3eafe750e8091b8039bb1ce347cdb1359aa5f8ab00d10669387fda0628c8e32d1b49bd8606005bc491ada5880fccef3891d6cd12e1f38833c7141623c11aa2dcf43714c48ab14952ed6c77098605d0ce1746ccaa3f959cb2c696e67c1c28155450d940f8f053f3dbf0d68e8c7a6dccdd7cc40c8d3b43f15f561455647f704099f1aacf2d755f01a57184e148ac2a494de6a8e88a5549995b146e7b12a62d211b6a9b82581d70630d0d951ea6c8547d5dc3ee5aaf365553141ced6a64f80bdf029a34924c42e4be189367622eeae4accbc05e5976f549edf0a07e1f8a8590faf8bf70401d1e7a2429f9f32d7a4426fd6a074bf79ae86342a12e43ffa7691b237c0125056d5b2e06a14f890430fe1745f7b807576204888087a6f55606732c4d9d0a608959c1bda07c09e6f2bcbc0b4acc06269e5bb6346b9244689a292362ac7fcc48ded19bfe61a19257b04116e1f3adbd9e862aae615b66c5c60a8c19f12bd4452ed329c40d87a13ebb47472b517e457e8540d4e0a3f2b1b28a79e6cdd8480f3685d3e6561529ca70652892e3e90f94c8187dbe51082d3338f675094e9f0911d8f3083a2abf3dca339afacce713a35fa21025b8ff4b0f474daa2f324e6266de9d0667a4fe880f47c1c906257ef89ad765a625238852504d7b31f831b4778ed5b313b0379406f6e67363664ea80e349801a79e7956e8bac0bf0f081848616813d1a74d12cecb42244d95da0da6c1ff6ebdb088d04fcd6e4d587d2806b5112f703319bee20abfcbe5466d999475f8038dc868ee23541114f93021a28cb3ae095095f1e51f0e641b43efbbfff8eac64c9c98bb8bd727a198ed1c2b192d2bed587e8ede6055363989a03079b477569e602dea2df34d6936c20419769cb3402eba1c296943ed0931d0c4db8d5f784f02f79931762d3e5dc7bf9ef06d52b5aa6588bc1d12c03f9d2b8cf5d4e98602e56fc5267016899e26024b143a8d2a05e9405083bc791a12a80fe4c3b4aa8293b89eda6f3dce04cf38c80acff9f708a163587b27521c64b02082d5d081b00160ad629a7b57bcc42a046be42a7876eb5cb10f54d4f75f45527419938ef5337cab7510e7fc2f2b0b1394dcc697ac7a0efcac30ddf7624bd89e5098b18e27d7d8df42f33a36fa4d0bfeb0bd48164ce5050504d2ba3064e7ad733397790430ff1acef53662e9888f377f9339f0bbaa39eeae51e4871d139f33aaebd37a00b0abd37b1f3769a73bbade0b8ffb5f36f5d09f614154f439842a031d8e45f41c067bcf82f56a71f5e2c77cd0d424388f90dfd0be185801cc12a11506c2df01038529753f5e08d7e43f540faca34d6418e912864b7b09651d6313e18120c5f2a69c2cfc1fa96890602cc2cb7f0b692d66cae6a1029fe4c0ab84becb707d9b85bc49f1c45cdddbf9c0b70fd0768e540067c0cfd15b03f6db72c7bc5191a3fedff65204b6de1b542699fb840f049050c260b6646a7c05fb4ca377a3ffa0bc7743e89e9e480a9c5036bcea8be9d1ae8538de6a6252fed40f9041db00258d6f657b048f1e5171aafc26777c5e30f77476663c3d51f9df072a2c9251e626dae722ee1255804f8b63be2d89623ab6b4d147e3c304835f6e3c2c5f6479c0282605ca62812285b69189e89c39ed23f924d771c501f8a5046d11bc4da3dde6a7fc3831a767c0fb2c7eff375b7f7551a9cbef5ed82b3213d31bdde44868198e6c2076e82ba21dcf7c99e5da1e5e400ad3951c09d07e6b3de4966afb0295dc9b825dd411c3a69b233ffe6454dd00377a4413815b5ca86a5dae74d97d42d4e3ab14479a39b7e87fdf26601cc00b9e08bd72800283eb2467fb6f1f2da847ef288375f0500a571e5a972a71b75159563115dea4b7fbde7c8c0360f7d1a0308934f09979661102592113e51b78d2d233c7b9dac16b030c6b403e6a51ce23f130d3764d734c426f3a5dedf41d4f33f0c354828b49d99fde94437998259d22c11a4137180c373b8e8ec99b5b49165d282babd074238492a35ad54120b65a50f9a79cb0a943e38b996bb9f5cb0cfa839189d78cf694caf31075d27fc5bfb06b5bfe73bc55765ec898affd2c7d52d069d0e3ad359e44aaba9eaf602ce33d4bbebe2b775d5057017ed588f50b16ba547edd48364040fb0f74edfe3b8e3d95544721691978c81142a60cf32034551d2c73ddf5c52f4c25e55ff9968fb75ab43c0501f087e1ed01a6b5c4e803aef2110135f3a61ed6191b6ce5e8b482281b076066c4484882d5611b58d99d0a829ca486f405224e2119100be27a2906767776c312161c60c0f84d01c2363ad09c1726896fcdcbc29694c91b5494dce68b0b00341959fba57dca6051ad691e44df6a4cb27e079a7a68cfc2ca86b28750755704118aa6a20561b20389d983e57582513cdb765312315974cec211de61a6220905374205156978391d88b206b91388ea38120c040835bcdc2f1679d072e5f1d3d727da9ec84fb16ea77da06368d1c47eedd8baa41f2282881443ce8e6ba178e225e4a97c66341f5090276a1316da5985754a9a791b58e84518248d68681737bfb843d56bd9508cb2d5bdc1683f64b6e98ba13038d3aaeb179c267404ef9c5ed4016c00023e133d452e0e167868612a8cc84f802e65ee76d6611595fe1f2229e9f87220d1d915face1882ef69bcb5c2a24e0f9e6c156b2330223e0dcfc465bf74a993ff307d930c8b9a42843a08602a1a80672391f941b13aaaabb9b729d61742067fdaf9d812f4731fd87950ac77dc347f4139c546f80ee4553e73d69e9bc9736bd77d2a4fb5eda74df499fee7b69d27f2f6dfaefa50d42100240f779aa8c9322b7083f2321cfa3a38497ff336c1d019d9379e9717992f97b7c7ecccee7289cf1c7adf98ecc2e747edf8d0a5838daefdacbb09ed51930b4748e73aa5584edfbc8c36a90736a65d2ad2beb2cfef5ae38d221e6fb028e1fc497f2200ca30ea0ec1f28d9b708f434412860c2d0476ab71c06d6d29b0b640119546d0d6c2a9c6e09177f416dda348bf5f391518abed3ee08f5106f093a88ca6ffc814f08499f67154b04fcf400d62060b3fba7dc73487f4346f94da4c9b18a1c224af0c82c84fa9007430495ce2a1975515f0f4e32086238185f8883de29eae0cbec12a8300012e5d03fe7e11c38247c3b8a4323ca87dab67f942fd7474de4061be76fd4c8f47b383e3b165686a108d53dd823022e0567e6b405f4c0e7f97298869992c5a5afb0aaf441f78f95a898078181d0007f1d04fcfe252d96b06d594e73d28cd9554d52758f4a9627c3f64594e4afee406791fa2f6d94f608ba5b3aa53caff1332a04705a83b448e143e443f55774303f348a0ab069c0561ca3989f913bfc463431ca89f3f68561fb880a83e80fe30844774c195c039d8123de6631923d5b3d1de1ba07817cbe6cc20bebc827fad3a26e7f26aaaa9b15f9442fbc2fb5d07a59219a7cf99a1a86ceaa2a1b305e5d7a7ce4eb1739bf30ded11f28083de711991a6ec3277ddf672c4e9054346c0f8516702bdcc18da2d3b888c87f89871b27203bd2e216de3d7475e821dc42a1906861059884dcd11b5ad03c5270b53f277de4bd0b2f68702e01fdf94fef6cf746a8501c89a22a78371a5482490056a8d0d895300df8d965ee6e299a5d86b0262ad05b80467c41fbcfb9f68caf2656d49951509bfaccc8a520162ee69c009c95f951e2259d39089764a0c3c284ce63560dd4dc66b08cf36fbc5e664953bf783710f92f8761df768d79c89fc8a8b39ede631b39848cb4d0609a263fa4db47862a45947d2a8bd6f1eba7794ff4fc1d8c9589e17906ab036f3da5e74601f797041a4883f40cbd0878b492b9fedb1d7b26bb0e3d5b3563352868e1037d611a5d919a82c5f8f4cb096909ae62770b8fc710c8b84e1982b582fd4ddf15e4fd3cc8acf5a16c3b2d0afe5b101e6981481fe399de6037168ea7c45f5a2cf20876b16ab3723fc89cef8de58e90882361a1f433368fe9b6b42e9ee5be35b8a411804ca7b04a45d58973a1ac9cad03bc692a030a16b2f2bb392f9dc658c8100c1485c5f2b6079a8d6694ab4c41ea25f9fd1b45763f192a261ee53170c1be07dbb9ec820f42be143608676640101b9e7d81739248fb0efcbe2ff65fe69f176c6f752a41285924371854e67e627c94a90d86be0174bfadc507e83bb24ee008a028f0c3d8c728fe6f776cd81c0b261daca665920a7086b7e690774f9290fe8477c30d30fd3ffceb6a94fb39d15208c0443d81488b801b53595c5469a530fd5048f0127ccbf2ba52e31df4d10c62a9825825f5645ffb8ce483228c5078c6ab81a327e4165e27d5f24b704d5111364f5d8b9929b0207f031f49d113384ba23cb612817eba7052c257873705e28b9087f07173c9557bd230ca83c7c3618daec31fde0dd3791c66c36a4afc609cc2769bb4c5898ca8244780342d9f754777020945dbe707d28289fe35ec9ab25c88cefeb77ab9caada6a1da715c34a931b86c526371c1a4c6e052f0f9d61e5b2501273feaf673cdf5741775c66af34d787f7a3724726997e574d0c6bbfd348f3d4018e611f2ac73ecf97d03621a695565a2715ecf01ec22abacac76368cb433ec151ddfd660c4967df0e7449af5e99c17c7e1e492c508ba86cda0e4c58820d1c0d803194ab720a2cfe73a35aed26ac2eec00812c84da9a7a4b847f27d69d939e2b36475b0efd5fbaea095869e217893d54e8c7be52c9796cb462290be432fc1addb138166304d825fa1e8a2d6b2933a8152835ef5d7af580449fe99103c884f71ca97b0d556a8e9fecfd9fdf85ad3d9e566f082f947d337095f087c301404c0fb514dee398f9a543cb9274ec49292f0f13cda1f0aef7119edd7750ba109e3a00075bd44160a6931fffae69682c0c9dc3c5cc27c47e7f6b1d58153bd032933f3f569c6764f5addda9958e6be3ea2458b4240ac5323124c5c2d6af3a5cb3b75f793a225c386747a6dc697e9998b8250ed585b1b92c80fa0f77a995fcfd74ebfcd7ce343ed29ce687879824b6ca01362505fa8b9b7fa72c514b641fbf1a9bd55880d52f8cdd11ad5405241b09230f1a4a9ee506cb75fcb148f781b8a03bad4dab5437a4a401def03a60715053218ab92702e5b75983f9420d13b420ec4acf0c43f3dc8d11642c1bc8b45a3387d93a52a882bc3025a5cd21cb85cbbc841e634c80a652ff35d3c3a6f88ab937c97a979750127171914350f28a368023c96b39cf6c63909965c12f787d5d835c0560531c87df4a76a6b2d15cde0a052a2a9b006c2e8c8887b5eff825afe66af1520d803d7a63b0ab66bbdb2f0ab0c3859a56d129c71a9ff6a4bf26e739009f68119a6e21916d8c888875bf96c5f02b6c75e175a3155dc8b9691908b39914a8dcb9aff1e960afc551b4fb5c78e872c0335e5543836ce101554958f9166c757275c2a948778ccd3cef5e60cd9f1482410d3ded02a00b662c202af9a1be29f8e3fe2689b7fc529abadd3837b5e1fa57df8f99f47786fe33e8d0492587164623591e05b27451bd8c39d37b3b0c6dfada364caa18832c3c83bc83047e9fe460e8d1becdc8f40ffd4a7d8117df3bcf449abaa039f2b2a78765404bc5324adc15845ce28b27a0e0551c0c59c282c1a98640ecc3c442dcbedfdef973af4abd3f3ad7f26abcb606de8c33fe956e80a3111b02c4996f04088bb7e784b8849a64393d5c43a5bcfe63a5598b332a9bce0bcf436349942b0209dd405968f482ce5cd07a126c7ce1ef4da3a838ea3b8382e0a4bd72059d3fd60504aa8b0aeee68c7ace4ae8ad58fed60c76139ae35b7d0514a57c26af925e932d1b0a89f34a4b2a17c33c8642254951d3e53f81c6b2888cda24cd7d937715d0bb8fccc31eeee3d32d93d7d22d9965b635679e6219e8bda8a92c8da0fce46a9bff2e648c2c44b17d5a79c63d774efc526f91883a78a9511b9ebbf4bbae78f65b60e9db73b1f4127a7a611e804051b20cc1f961775cba1b0fa4eb5aef33878c864e20b35320a3440ae43214e31f6e1b653c8c9ac99a40c1b5d9a9e6219cba5c85d83e2677da0c13cc1b30d8f232eea3950ae34b07a11d198298ef645e7fcc0baa1a3d06342eb046d5332995607c05f20f283a620abd8d42b001d25b0117f4edc26c0aee7880d61c0c90609c99a51eadcec8ea20fa27226e6dc13f5da3057d6b5380a3150a84714e4a01142d1a5ba87fb81b495983c2fb8325e11217e45deb0a97bdd8da8d846759ce8f57c557c1d3a220f51847685f46ada96a899c4f8797316cb697dedd56d610658b5ccdb2faf9ab7ab0092e5044242c759b527001714a5a1e85dac3d2aeea0054579492766a8f5c58ac62eb3b9e9a2cbec91769752cc6a82f8ddc7e9ee97049f719193bee48bf11de2cc78758c01f27d035188a01979a3155768a26510ac9a1b3e6dd17791cf50212b2c0c078dc2de2ba23541049ab8f9c17d9806984003eebd355a1cd8d4b79c93227a250304b9799c87da37afeb077e8bdc123a2dcda733ae0fd7c01b3a7bbf3641d0cb23f1cb78ecfa639d52355f53accb284a9ef98ccf50bdefe0746b2d8d0736e2e7a77336e859cf2ed72b0342ad02069ae6254a7693e0d7c5655e8c79026c6d70d6068866b695843e70891fe7c87183f2f42fedac3ae24a2ff1b63a72ac4f77c7d53889d56627249b49570b1a67a6d4e89e503b2ce1f8eef53221421e5692462dcae7c40e576ca1d949f57ed6bb021ee5487de2ea042bfe4d56fe15a0c405fec90559d9c69039d2f4e4123aa3cff062f2e3811c0854be4d2ea1da41159dac58ceaf00ae929259c8dc4a5c35cabeea287795b5d318be361e70aa4c05bf1618e189aba5696825d3096f8e22a6c51c5455d2ea26953fef614c4ef655b02548b8788eb628ebaedb40c4562053eb89d8d7270a94a4191b123a1b2bfecd605e23a2355471067ebe876f1c3e1020b5e60189c52434428e866902f952c2269024545d210c9b9a50a3b41175148b36dc926a610ae9f827822a9562baa40829287580041f69a22898697f0ac3193b20951ef40d47cab50f0b8389c6bb8ccc90f67330371283bfeec4b7f391d9b9bf7f4ecb39c453e41b63d23ba0ee73a1a71f6b7fbc6de2271a656f0f61b2f671efbc36bdf3d86438e6b997ed3a2ceccbf65a1cd73b6f4def3c3557635e04906589af52af5ffd2b1b24fe5d3cc2576278177c626f3a304def3c343c333c32bdf3c6f4ce13d33b2f4cef307c81be7aef9d07a601cf4bbf6ad1260ba952bd52ef11f85a58913f7de7686982c132d8a7efbcc76a6ac16090b4730f24493b27e582783007f9152c7dfe89ffb6cb4ad8f816fcb75d56a29165efbc2e5cba7cdb7638eedbc6727b4d987b6399bbe26fb22773d78f7b32d993f9c2ce7af795b9c3ba3ae90bab407e057defa546bd77dcae6fe32ba70723141d4c10e1caf7e5f4ded65724ddb7284deff21ffadcbfc003d852406dc1e87365b46041ca3491a7e56a812cbdf3b0f4ce23e04aef9d2e8e0d87beaccc8dc59a263fd10efeff2258cc8dffcf65f0cf5f244917c7fe9f81760e04fe3f1fef617e67b4c21b008d57179d0dc4e9d20b27817801c92fbccb0410f20bef3a7e3ae0110602cb069b5ab4206f63dc004a087ffba2031471fd85decec10a9f2af7deedda814fddea3db76ba2b1068a09717fd68328a7424ffa52b2f4a19c7c281a3b87f3a1c2d287969d7c331b7be13b83bd97f27148db6ba7bde63353f9cc2cbde833cf7ca6974f05a4b236dea49dd376384dfa5430e95d056abc8db8cfbd19a4124d99f324f8caae6ec6f31ae37d3a9ecd6bfbe2d4c9afd95e4323edb93208ccc9ffdf82e46c93704c8e997d618edb353df7edbcd068d7a646a348e32ec9f2be7d4ce2f2aff33829d75ef6f690c4bd9d2dccfdf0df441bf6a48d07ff179c1f7ab2cc674fe61f17d2fefec42f2cfeb99aa689a4cfe582c11ca45c7b9cc6e97a2c80da8e23cb4fdff9895c2ef8e1daf6710d3bb6fbb5dccf8cad2c2c0c381c7ebbb0b0b0b0229e432e07f9855f24983d47e2bf8e9eab6d1b27f131b2946b9bc6653caf691fffd926f1e2ff74a55c90ceb6cfc060bb4ebe6d3bb24623f3dacbb9bd3696db6b3ef7666d4732f9e7344c0bedbb0d670017b3bb3f5dec6f3832f9e33484b94cdbc9b58781f2c78d62b2ffc2311bc650f65fe881f61c50163bf3b72f02e37a0c5530c8abd23b8f4aefbc29bdf3a4f4ce8bd23b4f80de79507ae73de99de7a4775e93de794c7ae72de99da7a4775e92de79487ae71de99d67a4775e91de79447ae70de99d27a4775e90de79407ae7fde89de7a377deb177de5def3cbbde7975bdf38cbdf3f2de7978efbcbb775e8fde79c5de7976efbcfa80de051187bd1be2d1f1e83d6d0c6e8d0d079a1bdb191954a3b106fcc1187b7bfba901cddcc6e2da68006d8ca905c960dc7b9d07b597b383debb10bf4bdf968fdebb10f73ef732d9af6a78f9217f099fac69922e8efdb82ebf10ae9c6d92cdc741142edfdeae6fe2c0a653e94f7c1c6efa8d830bdf864e47f8ebff9914c6f45790fc7f1e2b71bc48d3c322d1078372916884c9a3fd4696c1229ddbf81037922bbc52902b4814640ab28b6c4116e91c98ffe10aaf229d77c5431f035b90c7fc0f55a820ff6dd773f4578e1bef60304896453a87c92faf229d779160c7e1ed8734b136de60796ddf7330487abcb6e99ab68b744efaa1cfe1603048deb46d9328d2f94dd791207f6e2c12ed38181c23ff9f8143ff87ffcfc0ffe7229d8b89fdff02edff19f8ff8bce6bb5e3accbb50ddf79a2ddafb338f4eec31285d5c78735a563054d1f96cfa7a89772413240b9b6619fefacfb48b85e2a9bacd7c7d70bd27ba7d17dbd2e36123f7eba2fcc31543ac23e0c76fa188629b8dd5ff36128da3cc89a43f76150eb63f22f1669bab7da26b3fb6b66767f4d96bf2c8fd9fdb50bbe0be64ff35980e4b3c0c4820d9f85e21fd2423bd257c18e0d93c7d86eadc29418dd57c1ed1d3f41e7695f859e8f42250a6f7a698646d6f92830e925597b1b9d42d70451bd9fe8be097d680614e86ed2f2271269f21824713b96ff5d2c170ce69069b23ce23e8d2cfd11a63d59d3385d77f78dc4201ec4836489935ef2ff3ae6746d2412edb88b94ff171de368b54d6667a7d9361cd1be5fe0749a0d8796db6bb9bd66d3c31f8ee28def0111df8333df030e3e0711f40e0412e33b21ee853e072a7a89b7a9b99d91f5585effb7d886af81a28ee7746dfb1a80e9be06c6de4bf9ceab9564ee8b5e2e18cc01d3778c7f799e6db02faf387a3adb34cdb3cb169691e58fe9dcaef33f37a4fd7c1be7e3d0e7432391c6c9234cfe3f93b29dcfb85a990d72aea6dbf29826fafa28e37039eded86b60d93ff98d3607ec5afed7b5ed37565ed9ab4b3ef3912271ae3c832182483746cc17fd77ee88d3d6cbbdcb6e30f93b3fd87434fc4c9ffc1ee5f67df9e288ceb0fc305bd3d3cfaa2ff45bb3988b7a995d9206b5a76933d19064c2b7cdc19dce8bd0f7b4f4e4b5858fcebc2c2e41c0716f17fdbf12ab90f5755b8404f2f8376bf0e92175cb0660381e56dcf643048fa32922e8ef9db38e66f63eef1397be8c9affcb685786ed7244890376d9cfbb787c170b4b6b1e37098db459278db335adb586d178dc0dac7e53cfc784e7f1af7df8ebc83b9275bb420833869c465daaef3313d670f617b88e743da08df60b8271a71dc935ff2dc1f9634c8d2d7740dbb4d1eda76366d8793df2ecfe9fbdfbefe75f77f6bc371fc540f4f7ba62ee89d686a9102a6ec7459ae6db21e5d5c7aef6bef9912f6de47c8a6ce4c7595f264249276f699fc7123b0949e522e294fa4b490b2ebb51dfb7fe733d46aff89248ae3f00f6d1cc571e849b520d57bef41764581c151957a2fff9c1f5566d4dba815bdc43df9f17b0eecd7f44cfedb5623cb6fece18b3679ccf37f17bf106e54842e8a53efbd1465a78bbad17be915bceda0f1f6314ecba4db9ff36dbfb99a163521949dde7b290f6d12f7c23b14925e8602001427b0ef893ece69bb2e82cad27b897f634dd79fcced1a545b297f589ec0be8be4d8047d7a9f60ca9c6f9be04f80e153a6decbb99a3edef9bf73fcd70d3f4eac1bda5ff2ff79ed6f6f9c23f3db0b63e35bfee77cf1fba0dfc2c2e0fe9c2f7e22d23fe1882b8fc3201e1686078df6f138fcf4dc1fe272fd49af2ef91bc9e3ff1afa981692352dcce39a8d2c6b1f1b63d80b27671b1ffa1c970bce6cf5bff36ac11c353d93386d670fc9e370e889b73ddff4f741e3df68db73e418490f8b44facf793bf7c598aebbe7ec3c497a1df322f183d576dd25d7386df6eb68fc36e246df368487f4ed6fbb48fc70b2bdf6e77c9bbdf687b02ffaef96db6b68f6fd7d1cb922d2af7080cde9bde777bfaefb77b1a6e73e2cd7ffeecb35da9ff36d62622cd66ea30d0be7e85f038fb2ffb798d8f741bf915f2cd094869dd768e4976b2cfa2fcc713ffc3ee8b7a2ff67df07fdf6e77c9ba64dbdcb68b55d567ee337f6b87f3ecb7f6ecec395c7dad343dbbe71213098e335ede73c89e3bfbe7f1d69c465b2befd1fda7691946d61fec9bbfcfba071609d5d04de79626edb3710b87696e3347eff36313816f9c781ffdf391c1696ffb7fbd7766cc72f63669bd9ee5f34bec97f66c361e31b7efc327ceecd8a33db6dbfa0b36d32fcfe3fb76bf2ab26dbc8d22893f2c76ffbbebf3dac3f9168c7fffec287b49fc9db26f3182d3716bf7cac3d59db388fb9f20b83c11c0dff745efb2049290925b8dee5747c51cad04b2304164020a9cbe920659acca1a3542bb341f28410f4187ef224f1de17e8bdd3f59ed054a78b63fe368e95fe367a5298d376b78de33ffe3589d6364696f8a781b93dc4736f935fc7a1bf8d633299db43b277de5c4a8c6ddc9f1e16ff8bfceeafe16d3464da4cae6db232dc98e3f6196ecc7dfe6b34f9cff9ba3ffc6ef97f93693321eecf7033f9fef54f1b0ec764ffcf7e4cd7ddffedff17c7fbd7d1c36f26dfdeceeeafa9f9b43f2cd237dcf1fe75768cd3663ef766b2ff67443bc78d65325a9118dba0bb3df1feb98fc3e934fccb76193e9cf39f38f7df6a1af8a7cde4daa6fd3f8b7ba8f5209ae5b84fab6dda0c4d69d870f2d10f3f7efc3264fabe7f1d5b9118dbc071b522f13ecb6be3cf9e6bb4dc1ebed9d96bbde5cd3020b1e9bde7f610a771f9ff201111c6b927e23431ec512ae027edb9a6c9d907a19bef7aefc2de73642abffbbf779e1cf7ce837be7f9de794160efbc1dbdf3e47a3a7ae7e500d33b0f47efdd43ef57617aefc6de6be04d8feb8fe31fd8affe6dcf5f1224489030a1f664c7fca665f2df6c649dd3b71d3996d5084989df6670f2d019e34be08c17060c2a6008d224de8d4e3dafffbfe5212d8c43f5deeb7a6f9115fccfddbfceb651fc394e4793451beeea45299374d19341bad81e920149bcb473f278fb3abccced9abc6d12ffa47118178b63e427da6a6161707676ade8432917cc3f0e215123fbc3571212113b2ec6e208b795786de7b4bf8d635f2fc8f213e97c08d3f86ddbe146bcfef5c76d614cde46fb0659e2c6dcdfbe58f4a46cdf4512050a3b4f7e32b2c4659bbe7fd1b68564f0cfc0da16c6fe93b34d92f597ed3af88d771e24edbc2e8e2c7f5c7f638f8f93be775e1c4aceb6ef7dae771dbd77afde99f4de2115bfcb2f8c7d4c17db43b0346de66a7aaea60dbde9b5fd89366e88482f0db5956386b87a591be78665767fad109a5e162a76bb3f177251168a4013b20393f9899ab42344a413727bb7ebb141957aef7d1018bb416dbd3c7abbfbcbb5f1487e91f69aa054bdf78ed3c761cd2648512f6f9b44c90f0b02d34bd2ebdf36b18b3cfe5a90db8757c8623930d09b404c7a0f142ce582814a3ca76b63e925a37d7d75cd760a520d92e56dcf1eaf7fd1b6b3d3e2eebc1a8db9dabee3ecb5bb46bbbf7cb37dfab6edfe0bdb86b3d7e40fa7b6a7f72e26c622af69bbf889345cfd8576b73d76e7d5f09af6c43f43fe7479e1394d7ed53489fb2e9224c7fc54a27d91f403c64fb1773f6d7dac4faade4bb9f6b92f8ef5c1fb4ce913ecfd08e3deae8ff96f3e957a2f833f98d3645efc71ec716fc7c74e2ff908ff3df3318140a59cf6c49b1c43204befbd8bcc6f7b0c01612f6f3adc8f21b0d57bd016dad1d9f650aebdd9b14dfeff6e93ff9bfce9ecbaef061bdfcaf2ffa627951e3b7ab2f412c76123ae8748a9a72b0fa4daaef1b73c76f24c3143cb53ecbdccd3557b12bf8d716ce78950d3707814e5f5277e3c68cab91acf5defa5fcf198bd93a5fc85b1ff379e08bd97f5a7f3b9b07747d47fd1bb03e9ce9b3b446a3bfbce596ed777bae83b117aefc77ccdcea0f21b719cbe7fd10e13fcdb19f65e8a898979f9dc9b915f5db011c72784858991b80f0b8363011b7138163ef76673ffaed355a7d351d4e9a0a173d74bb9209d333abd39a24ab9e0a05eca05e780e9386cc4e7144bb9e01c177d0e875eca0545c9190446ce5d97d326878cc3a9f738834ab9e0ff731c3071ee781b701a878d78efbc1ae4fdbf0c76ac3d9ed3c6615cd3e4d71d3dcfa5fc3d4eced5f45739577ef26bb6c9634edfad11efbc1a89df79b55f04838d7859fbdb0c0d3f117bd888fffc78ff624ce39eac647056fe9a1ecafecbc55f34e672c1b0b01c479278c7f927bfc8afe39d7d178f76247e1cd2f2c769e4b5a7e7bcb6e3635effda1ed6454f5423cb9bfec21c37e6765df4443238b3793a181c921fbf7f5d5efbdb16da9144728c0c06493bae6d3ab789e4908e6bf238fc74f4b06be865dc9373344c1eedb5af991e23cb1a36e2247e22bffbc273fa480236e224c85f47e743b0fb178d387985882552061b980db63838b2248fb7279ea0bf5e90e55c93388d46fe727bcd5ec3ddec351ab9bd6676db2f7e6dc796db6bf69afc7f1d0de34817d3f9dbff2f727b0d878d6f575f5f59bd77dc68ffdabeef9f71869d9df6736f36b3e54636d9b661d476762de30f614ffbb6ff5f88e1e4d76dcf356dcf35da31c763dc79b5daa6f3ff6779f8e917329a3dd7686e637777f43c1bdff04fb71dc5f09f1fc958106d1cf8ff3ddbb93cb4ed7e7da6ad3493aa77f8cb327acf8cfceff82b183423346366e7edca5850064defbdfcc5632ed7a51d7f9c2c635706c7ed21991b6db29eabe92fd2ce1e7e98cc8d70991ed67b64ecf4deed9c0c935e12c9b8bd31a97a2fbd209563c004c71029c71c61321f1be37e31a94a2fb98b94c5bc29bd6e9c2692b73d8bb9ebbdfcf72ca68bee22c35000cb3fbeed17f2b7f34238f9cb9f4eaee918ff6e68f2777b23937f5ed36af217e27ef876e7bef8dde41cb7d372dc68267f3b5bae7f6052f5de7b17eb3d306f7a2f8362f2d03e836331b3d59087b6104c1127ebc8313067bdfb7c088643ef65f00b27b22f7dba9d3d24eb7db92b3f3dd3b24dfc32f4f79708bd9ca385a46de75e14f55e068377df4b98de7b49d3a9f0f9f0cb622ce25f232c0ceeff7b06dafdda2caf3f31c78d3ce4b19b96bd90bd940b7649d56550972cbd2e5ddc522ed82542ef5c26a17131d4f13baf561eeba137ca741d2dd7f49d57abefbc5a49e7f827e72f991cf16b3ba76fa35de767d23623c37e4d0f49a29de7361959daf7f741d3e46db4e93a2ffc70fee78e9e881bed231a59bed96624e9c9a291ac7fd10ea3c3e9fb36da4732f7a48d93b67cffba6f679f9141f903ff6d8c3f5ed3c14fd63efeb2efef8326511c8743ff6f14a4d13e92331a3982cded87835c1b3b8323dd7e70633f3718e48f8c847ba3a14696f52fda354d64906904090408297fb28518090408e9d585d3e5fff72c7fa25f234bba7fcfa4fc05bf0dc9633d4696c66090f424fe71236ee7e4f1f6775e7f99c6e76a7be8c96090c43ffe85cfb3fd657fe7443232f81634da37c86030480621493131163ef766e4d7dd467e89cdc3ffc682480bdf8a5eedcff9162449923f4892fc43ba48b463bb0e06833f1200d2ce8745a2bffb32e9733c2f713ca76b2369df1f87cf87df4cfeb9afa3f3d87f3334fcfbf8ff7e81cb43fbcc7fb33f34ca5f18bfcdd5748ec35eae7ff1eef7abd170facef1ef76cc699936f6a0e76a1cf1b937731b93d1e8623b0dc76fbad84e93ffbf677cce0f5fccf9e15c7f1ff63de3bf78ccc3c27864240680d47bf7e46d6f0d404688fb2f03c8666706e82a6b9b2e538513962a79ff75345815b7f752c6d7aa70e8e5d0c762773619eed1f44e8509152a2e955e9f924998d3761e381c7ae0afa3735f47df5f06e21e58e2f217c6b91f0e7d59e7a2428e878db8dd9c29bd4fe726a552374323d77a52a6f45e1269123f91d3a48d935fbf8e1e92b95d7f19528a2559a485b81417a7ed35291566dbbe8bf8f1cb080b838b02a94739a03c7eba14645046fb3282c74fe783b51d24f1fccf91391a590ae3db7f9c3cdebea6619af4a4d08e947d6cdf364ee6c54ff7eb86b0c76939a6f1e3a7c34f7c1c27e3645af861728ebced9826dab51d7f72aea68fc3fbcb3959e2f61a7efc32ecb5e39721cb68f2cf3d1ddb383e66aff1467479480bcb8cf2af69c8bf9ea3df72db76b3f36e764d0c0302d7d8d0dedc7e35803f18636e6c706f4060581fd1738204bfcbfb17875f0804a26034e07a29ff1e644977db76a49d933c483b27efacde73d2d5c930d81ec2e41adb5b8c1100740e73ef359972fc74c0a18fed6e34d3d7f4285598543acb13ecbbf5ce9bd13bafad771e5befbcb5de796abdf3d26e1b181656db44a21d036dd9d30dede2a7b38bc7dc16dafddb5804de3613b22fa954fedb981b673fb684ccd771b8c45ee2f652aebd37ced130d1e3b47c846f63911c5bb261cc4d96c764b9ecdfc636f92b99829ff8c563ee7fbda7c445efbdc4ffdc1fd275f45d24f19cf631feed7a38f4654a86b69d7f258174bcf3e43cfc38299725c9d28f498ab95d9349c8db26e5ff6f241774fcee0b717f361cfab2fbd776be88b3a7312c0c4e0c8ec5cc5634d2d9761a1217487abd1fe154ca058f0c3a02863e7277a4ed48979154dd48a3522ed8afae7ca2fd46e2c0399ac7bfc915262946ae90bf103716c91c37c670d9a010f76741f22b18246b5f7ab167f198779141d293425f931f06fb443a6fbbf36aa5cf7d57fd87a5575749a620d13448d2f99c0cde761efb175fb85108479660ff2e923e1824673bc76be3b048a2a92c7bf2fec58f7bb2f2f8e9825e5db3fd7dd0f8d0cbb2276b9cbeedf918cff6f1d37591b22712875f487efddb93388e7ffacebe8bf3f0bfd96b724de30f615fd3c8ed351ed789ac7e05f7deebde0332082d4d305cfe402050c5b138946de2d10fbf3cfcf22f1ee16a7bfe66c73bfb6e13e25e38f4ff168e7d630fba368685ddf67d7f392c0cce9e6b3451fdc7a0de7baf6db266fb812618fcc1a4e8edeab11f367aef9d347beff5d88f099dc4bddd98fce5eff687435a86dd5f937fee651cff716c7cf3c1a4f4d1f57b474efdf86445ef1ddb7aef65d02683ffb6cb86431fd3bf23d97b878dc7007aefce4e2f712ffc321dd3c6b7bb609fbb8d77d1bebf0fb0fa8e855daad2eed7f12fe2445fdb25eafded77fc32c48e9f0e3f7e3ad8887fd98ec58e5f06f1e7b45dd1eeac9772413b0ebdba4a75763a93ba609d8b5eca05eb7addc8c9a8a6cd5ddfdeee9fd3792269e7350d7bdc7f37b28c7f11278ff9fd8bf65d2449b82b8e9388fdb0f86fd25ddfe668fccbf8890f8384cdca4f67d7d53459fbd8e75e16e2fe4cfeb5f12e9239fee5a1dd4516ffa723926a697125fe8db887c930dc04499664f013edb7205906ffbf853989e7764dce34e9d5457e7ce85f90254e93c1a08d93b2f186cb713fdb64f0137d1d0cfedbcedfc832c7ed216e14e67373f49ddb77bfb6633a6847ce74d0eb4b0c8ec56dbfe80a0af13fdbc238fff36ce374ed85f127c6fece3f7de724feebfe901ec660b9708e1e92784ce7383d1c8eb1c07f1eff3ad2ffbb8b24fd5c4d178b5e8d2c739c1e9241313816419228fb7fd7f6c77d4cd6f46c83e5469bb4e7c8dcaeef6c32b2fc3e681caca6c93f77fb21e96bd86d386d87f66f7b26fe9c0efbc1b1ad91254edaf8d0935f66644996c1fcbf91253957d31ff6c24fd4c42e12274bbce8d5beee2fccff9c9d93b9b138f45e358ddb7064698676fba131a6f3db17c9e1d03817fd1786d534e43f57d3c2dc5e1b0e7dd927da6575eceffcee67c3d970b8fcffda27fab5f817df1880782041ef3dd87b261a08891e276fa36caf7dd98ec38e45fbceeb0ff4775ed36142dc9f8585c109712f94edb28f7b61dbc7bdb088c774d1cef13baf8d76d9fcdd707bbefffd7d006bbb3e064bbe94661094091376e9859bdd06e193396f5a09069966a80d9ac380a42a587824c8092a82e05227170b4b71018d0c04054618521cd88a8d3babbc200842c660432a394e6d74ac4dca12b42a0f07594d9405b66182b8201430616074c24709003910c20d1437a43c1b301d6670ea22e581a1140e4fc6f0e95a03200e8c1ccf063368a2ee2c3112fc3b903e4819ca79364920948a22820e8304af1b826454ba42678850c10ea60e246e221e37af0422764bcade31824064f01005817294a030445fc355101d17534f03054336fc0c554c68222ac58314413a1df4505ae3673d629a94868899a335884465c0d2a1868a4250a718a07a8b05008513bdbb087c80680cf3d85c875249626321622bc7151d07347c2820240c0c53553804512dad0252353083db2c451ec88db5e9e0a70781d6006c170fc036aa830d737bdca85b17849a21ca821dad7e28a99f38a02208a985a584a4132a86a0845c1b7625528588f87e752c25e193e51431501b136a5222cc1ec4f051d440ab1c24d05a44e0c89210fc91060f87cef8b468cd8120cb59c3e97b1d7d0638fa7421834feecb11407aee745a62e543da932cb43b73e02c8b16099232a90c1e0d63c4181b59a1e2a18dd138c437d41984f5a108aa496567d0e2a8a0d8d34529d0fba1021aca9597021a281eecae5c401dfdd950e2713449100b258e8000d5f4f8f313623d19b406d397f88b6f55071a2716e832010836f98bb02c5f6409ac9ca2512108a11f1bf6783130c84707104bd4c84d1a83a5118cb52acf85d702183116818223e4c3b16e4e0838814b5252ddbe1941381112d4b527140736061204a0ca54a4335826a8dd09643e5937bd64f653dc7c3a3a4160805120be0810c632452e5b707ce8f0999fe458e08803a61d204abdd1c23108ed0c8e1aa85440902501264c7f4a999d8109fb74f6ab02e500110f84a91bd8218ef51d2f2245e8e4834e87206aa3ba04e3e652215f32300235a84a06590c0726352c3ba758655253568238d66b3b2db5b5403300aa562146249ac1a56e75908047870b5c7ce2c38a002e4238bd1364886009930c84103949512c0d863e59c0d593331c4eaac522749992f4b3450deab4850746862b414c0b17e0aa4488b325a9a7e517d54d5ad567428f496360a49c19e0c2e7e1820242642d614cc1b9520b8078a37bd8212442a13029f492225bdc18b2d4d5b5329d60c20cbaf12c5a4043099b13d97d484ec4910326c7203464204072430991fee141994f7069200b91c2c80f4e91e95d035d1d51653abcf4f821a7cd0195b6de7da102dd4814448600174c71d12077d1fb87031c51c061d0dd25b0385ac0e0397597402530c1390878c1883348ae8276ab83265486e05e1d6062af51807490e1b3e6ce296f6489292e3140cc242c40216701462834848113c208cc644a880d76cae2680f320345918870c05295e8485aa243e396c8fc2d48cd488a25523829dad209121006779034b9e81ccc5c22f1821097609b24bd67d99933c741ad210e020d7a172140282611de70b91102d37b07b11b2f182812486a44a467382b55a0e9d108206a7aef9dd8a4420456119349ef1d1ce881891592ab4d2e7a8636a6eaa00cd43bbdf79ea0f8eae24db1d2fbd65dd9d1812e72c8deb5c078822288410191de1395e8815a03557af7b085c991a5506dbd6b1900e26e0e1417dd670353904a8bde3df821cead0dea5d831a97041298de7d808e6d2522fd03dd29136aef1af42410624aef5826974c2e3a882d2b627adf7056c7a9772c3040b28340f47bdff00849ef59588a7a0f818448e7c0a3f72c26bd8b70d13b64e8bdf7de7befbdf78eb54603144043367c24d8502543459225cc061a0fa83005e311284306b45eaeca205008448ab715a36e20ea24648b832446309440b05664705007893c400a7909ef8116e48206420e3c6814a58b122ac18736b52d0fccf80084edac099c381a5a8d8965cf63f47d88e0085003030650c0402142e8099380080d632044ada9c248025475ca98a12bb49ef0c0c01f3ab26382c958464aef819e3f3d7c3025f9c1843951082d39f268b0aa5aa295074b0b0802c0a47e4810974092323b4e1e5004a98056cc63c0d6a53673cc58a161a9574194136d3419d58a0ba45161f2618e1badf784a325880506d115a5399d00b8d4616b891010adec6c40eb64716364369228f5acb859c487d10501c078d5050af149025d863b9196d882169d11d2467666ce5008d481d30c2f197702ed89e182d095296d0bd8e99de89d44701fd8356190553ed0226986164384655e009459e275010289cf08221dd22891bd951a668874c4ec810ba024a02402cc062c4ea2606cf9b8346461a921139795c0053a0608f82ac6a02380214f6accd4e13007eb810216d48122279f629aaeb4c9212cd56062e7a38c9def6911054c189920596a755a31d89cf968287871e4e232b300079251015de21808202b85b48108a6c84808af0845ccda281005525f00c4d9d14c0c960365da0a7dda7284d1892c52935148d3862917c8ac3af3272e4b9f300f2a79d9f305448eb5d6c277c0044244113acb1288f8004bf8a4a829058646768d208880401a706de0b95113318711a1275f205cd4c9e100ec03a01b95e6c69ce5990015d7944c67a03b5f051cbe5c04b260ccf1d4459212c0070a1aeebcb46da8a62c6240820c54d20b972e7cd0a080022556230425f18d3943166d61c01765c596768ce68ac38a83cfbe1426d61a55c888031f2062a5555eb40c3dd0448f87ba0509253554b41b2d1c6c1163c426858f4bd33ac0a94a6d1e0502a0080433195bb46a117f5295b2e1805a1d361e4d6b47912d4267e2d4315560085302cb710b0e3a247a084450e42604049d401d216cae38c06920c3044f1acc812093c09a6947dcd50e08626c754da000914c164e95ed98f3c90f9d2b937a37ac6c294ae9ba13c3c3194715160835196c557fd20e20b5894b185624aa1a65b43a3c498552a2644098238582a459bfd6708800454100581e6d6982690f882c23765e54d6a91b9b10d0e4872d2940bf4e275d580ea4de7837607a1cc11307813a2d26303b2242850e1f5b6702604a1374f32d08af90c90aa2e5501bd1861b091e18b6eaf2724b38c8f50064266e229179632246ea28875388dc055b0b3591a8a80979ac19c0810489ac08684e254e0615a0c893f500b3b56a6c28b4a80527301f7e901c07b0705728d21a107b9420825d077a64c2824a91a355546a601190bb908b976c5221a4024b4a76f870b48185af2dd74357b260c79d2d2728e8f00404052d32543c21b911c60aaf4695fa020acbc4044a24a5689d04e0ababd62d3ba5e10d1a4e545ab5fa737c14194bf2008ed4071d8c48d019d22a00120e8ca0a20946a7d28787c1a90330b45a621424c702159f48c969e842522ac400ade8b757cc6b01a7d2948703cca8d0e4b62a431361c2201f96c2e0f8d8ce4c0a75e98b1334070ff6a421920dd01a43a501ba07960c25bd381b82e97b2279a850172310a33467581b222d19d42798d1db4408941e33344414d6385999d4adbc698dd0c3838e860e176b24c4e0c9e0e2cedc168f14491ea088d3e6d7c8106a69dbe4a76724470a40a437582d286018015c34c5810c6246b5fac4800e0d87d416495047d08aa183213743383988f361888741a6c41d9e5b4f841a86510ca48c4ac4e550202c0384c9339c20df2630c341951d6995aac55d13063a989c849cae4c91a091dc8a8234476c7e228290384202cf292e34210194aa5421ae46969b95ca29390eb06d406d4a35844087000e5afe508093c080e4068f30142c91406645883ea91c0c9d06f8b60231f2ae43166264b9645b13525c447c496b4cb40c61b2c6e14197ccc62e3b11801b09147c28f18043403820c8a32759a330985033c77e645601560289a298a1f3a92ecd1d0a385fd3930f1bea18dc6df2192b6f8e56393e41b04b20de90ac610ac2c05168e8cf1c15eeab030b0e85b3b680184f110cb901a7c51100226990200039314664987180920902caa54f8a3e8c91b2522001c19429352ee012f58153039fa6b788895386b670b072583460f91868000a8aa018a7452551804c5d2089802b651e50dd71e050250b37be4c9162810524cc8acf47a32eb24284383d1d36fc270290e9a2e54013b40bc304e21a117262a07a5848c0039b272107602192a0b5498da2c6c20cd5e72ba542858c3e25dabc21e2008a33373f5a35ec0a2c08f14645870f6130e491e67a6cb1a1a0ea8e261d619462426f6ebe2bb5de9a254032a85045c69017b9465931c028cae088ced161452a0bac929c42e30002adc1560506702839a1c027e4c4bd6507d7965f0f8611b614741c28040ad299305b8e22a890e1066c890232535aa889c240130f45cb5a073bcf16396a72d4b4d0249eee84e2234684213546c2f811411c434ecc68e80c709245290615320fc879c0957207c6ab4c8d0e874720d80b5996b25ec4a93128b532824b44054c47a86489948543f0cb878ba317314b786151582b265f30b0f0704828e30e260e64584a08f1e111881105127c8cec402317c20d4b171015bfbb25883cd930056e3956292f47b52e4fe8e02ac529d1c581524d36bc51b2214c03502f5070a014ca415b910e0497335d9abcf07a24e7cb864e81c84051825584d31fa3a14826145daa49e931f1a8d1061270a92c31456f927c8861009d29c0a00f9d2c3000d205240f9889e572fc2e8013868535496d93842c099b586ddda0b00794021ab0580913341477c8af02136aad0d8fba0f2d8e84ecb002e3e323888414246c2890e533330c91e5e5012c6ca294c073caeec797861e841259940cb0070b1c03bc0e68e0062a0f5622806285c665b3cacb9629114ede187d2c925c017a01300c614411a401e8b841d37a62a6023aa586304c0090e4821d3237246d819a72477e03c3462836b3db8ca8e8d66b600b8700d417962b86f89422e2624eb526f89ea33475f6fc10334054b06d489fad3455342ac0956013e9428e4f77f29737bda287064ec8c10225c2992adc90d8a50532402151a847983df6841cad22042e70f9d3c18014412e4cf82a748894830426a85246aa67e147d9152807ab3e1bcab664f8c1c32e43cf015507a022c5aa08224311070af86975d0eadd8998130a810a5c37c4b475473844e08023e0c418ba3652c08a13305d51189595259f04291000694720f38305889cb1e320a48ad61a2a3622b0481ac2c408c9005c082f6c0162e66039116411908798340ed26491b044968123e4cecd981f62caa419e36483a702d024020181864869389eb065a83004a1a9c81b2f130d2e5328f5284938806109d69b1ea30812d12812e989193d0d084a3367830ead0891ca50589a514e195278ad9000916ec9e8313a5540261fea920b1054a1c00a4054dd09c99148a261b09130010bf06848f4c949991258226000e328c1080561693e1cd9d466ad5ee5805987381997e2107af32d2a1e9ae160c79942521c49a9dbe41a698051a1d57f4167c69ef4508a86c988e60192a200c4b2c49abe88f071f141aeca16df9c91134b4488d99214d931f1e1f91146cb0f0c47b8e9028545095ce1a1c16bab8987338f1c20928128828c7812d812c7a7e8b5d2dad262ca882a1669ace089a0ed431e2db148de458f31759e3052258116320074da8a3245d5942815cad48352c9ddc217a69e96ad2d15d810b4e9b7d8224624020b0c19f878b254a05445202600ef02394146568750ef007550d8b911c524a382a6c2a447bdf5c8056e3ee2b4a920f0da2221c2843319c8305930d721e80095969c2b43312cb47578f312e682921d08b9a4113cb10f53c88840936410031bcc4870f3494086688c1c445984deba187123480146324e427d94cce81cf2a0417209c7b1ce1908562ccc33995c84e854c5cc87934389ad12410cb160008229596e5bce30e0c5800d665cfde50183145b1c4e905109f400c703171063bc1074e4540421ce2cb65d32caca0a265c201de55237b020607365490e051794596108322871e0b08180385e0e58cdb380113c4d4238820004881f9ffe900af3d3e90f00748a19ca953258445cd523f90e7aa7c6883ce486494b364450944aadc5a621736bd4787102d148820f861cb041013c708c002b72e0123100f0b1ba3476810d1d9298b0fa206a4fdc5a0d0d42b860fda8732cba1664be3eb519e1e94388b20d5b317c1b1e58b0e09e80c463f655910054b18ee1261ed455c6611319112d546478546832e9c60578d0374a23b2480f460190486103f7e6072704383992208e93cfebee76c0901c506a3dec662899e1689416ee48ca1431315e951035506293a6b4365b8a0ea5f95a0c3937ae62d89e122548bd3f43c074bd01f5a60e9805927449e1695386522298a09350e8c8d48477a2419da608b6546ce2118095dc54084f646f14b002464b4f4e9498393d84380cf026c1cd0f209882198c4343576b2cd861e7c4a1ad2d1d20ee3a5411b4ea8f860ad8f9e4438229c5e54804aae32a948b1d40ad1028391152018a4256056cc4020853cac71047936604d9634a100755716a899c146f883864a5cc24b01eaa44b46d4694112bd8737cee2482bb5bc02ecbc821b510d70905c03c6a34c28aa1221338c443c62e6873d691608190972a565e2d041020d60f4842b80ccd5891df05510526cb421e3a01e6d61cb5c252a0cbd09a9e061b1840f1a2e8870414041ed5ddac48d03900a1400ea9c2283a15a00480c3b0678d8340585b68081134585a758a035c13474e2e71d940567656e8c3963df70e9a4d1a18972320b01a6d5d30e60f9b052868b001f8321883952281299334dd607375e34f942d47c4bcd04067ce1c2da0a80d576f52944c7602e9831c93c051e7d3873f1f0260b568559b283e04f69cba3ba014155533ceb42a8300ca514349bc1d517a536767c6d72a832315583ce08990080a162e56b4a410202412853c407c70bf227520f0f380004704309cc1a0516aa5a961a984a3fbed0d24b001b66ea0387ac86253800169173875b9e0a2aa14cab8a1f74946a536529acc80bb2e15f0e94a1a155a27764082548aae0c9e381f8a9cc993e563ab072b0583f9428a17f092185f1a48377a4afe74a0857c75384a02f59331e1849b01cdfd05d0a43a2220b949e0a8cb21380f3a2c9202434e035c9b16982393f60b60128c1e005aa030e0a0ed45d00319b00646a7b40c5f4344397881a4810e2e52e520a003264a1dda2f9f1e643131014885bd7f80d9b1414492259b2288a98082ca8804c316136397ac38b9a86f62929dad347793e21534231cc0b87d09295e3131e22d518a4378b65c0a3168aee3a5021e3b0d9a3f14f091804c52560b17e81f41a6921492708cd48e22448843852901e0c75167583c81d4a60028162b426090c3d666a3f65170b3808c8a3614038b902238555ab34267d45cb4da1223e2c2062066932850406bd50c928a580431cc2c0291a386565e97034819e19c285abab429c1baa18548484815d826dfe348f2dce03484cae1e2cf057647ff227a24e46992e0c31ab4572acf95b83b4cc6d4c8188019e3ebd42a46161a2d6a303ad5a5088dcc6cd6f0f98010e301850d135278831c551a20e2a15589298a03158fd6a8c0a0c06de784926f48903548805a682ab48a9634e784ce212d4a3ac44431652118444f026e6344798887b8d4100aa767a74b8a53330383f678f16920b2a3951b3538bce2182c035177444b0759c7a7001abdb0427176de3035e2da8ad365c526d2090e0dc80466841048f8ea19a04a87026faae46d40656072e544013d1924a18a83ea431d9f03b416355713d8a5d8c23a05c6d4254c8ed812e8198c081b9deac9700089960bb6835191885460a04892ad0c3b1265e2e33641503d83ec39884053b043dd114a2a4c087044cb24cc000107309588465c8e2a10653ee2b2e34f0709262a0ab2306179a0c35108257ef2bc6c651028a0020e93f4083245c14cd78d02c21829e5981d115a29548dba20e58028729a40b9552d3291455c01844dd3219116b30154821e00c00687332739ccde826543825030de61f45586c0c1869496d08503ea587beb8281eac54ac566839a0740cda3e54d29555f1520d940e71108f2cef0aa13111026aabbb70408325030093709e27d922bc85a03468da504d2053f531ef043540d0b8cd1f85466435714ac1ea7b28e94ae3e146160cddc021f48c1c172e1b661a3869f58cc0b0d637eb036b8614543b06b5917821f1d22093a68e85200020cd06838602048cb51203f31f0c3ef8a88c4839a17667624a5ddf5d0d3fad690986e2a31e83a956a82c1100c2d311ab424002165edf220d31bba37043848a2e0614b2c9762d0e0eccb07255d6dbef810f9c64288d81081a536710f460e0c8fd0915a54be99499172d8d0b376964810991fa7ad537c7a57da48959ebc2406770488837b0e60e121e78645ee0d4497a5b75435bc6861586566ea4c0bf50c267c8b1305c3dfd6db05049c0c5428c2c02429118c5121d4e8e54126512271860100501c2778d0911090814a171a353ccd5080ee1407210c2265f274a0d3400d1b3326d840a47618b9114c84a2e7fbd369cda6479658c4fdf0d93d50e447060d69991a11208a648878a38106188571a083873e51d814303643c8d91b1932ce9cb08980df1c10d787813293223db023c4169b4b595ddcd875908e40508386109e458ad85ce090648b025c943184aeb85de0b504c9235f0833c1285e07a4e5a9e04c9e5482b982a3ac1317d88884c13e05044d03bd07a5410f368cb2c0ee0d2083942446135c4489c3030104281f311ad90911aa8aa0438ae04c80a609d69c0a7502a5b268e4d1538967ab4d6a6c80d99cd4a9809402051b0e0c285cad590322ec12312bcf02eba9b8100c10fdd17005cb6c01ae2f1ac108eed4b8ff04b5ac85d0e0e8aa4dcbe3ced6093618ee547cc294f9f0c4088724bfb9201c2c596c744239b9e07b74b2bdc90872a9590d7d8b68d041d390b66a4c570817901304206878e10900491e2ab5a040aa4420534422134990ca7c5ae41b9a386117c7c54602b2b1c9dc9c1c065a8254c0a10176a43e15a48a273f63611a78702de8a2e60e538c031e4065064e15093f1f832e644e9e44716340a1ad41a5053f435a664806002b6f1c39f484f111866783d8d695327552f9b8208ad41a42900809bb58e8755952c58234b41a58d6ec38112402b82b430212d8e11191834d0b0256387237f01cd08102001a407306c5926601201072de78017bafa3df4438c4cb141037484d01d54152863319ac3cfdf9a244e57a63af5e60dc3ae0d8c1ca4c1c18737ec01e78c2cb23cc89784301026dc10e63708e6f6d00f92610c95aa00096140b0c842e786a94a6a59399291cfeb848c08da1ac3c6e660801fbfc3635042945a7220581a4e644db8f3a6f849019cb8afba3054d94333c6c5451735b80cd441a0e60715c601d30c30c149d4a678a5812f516e2257b1b76642200859c850138071b21d62539132e6c610b1249082523938e32fc6ce012a642153200e46684c0125b79e4050e882384d8e82c62a396995bb0f06141891cd62dc7c0a2b23560360135fd0e9de1156cb870eac58b46043419d1527a14008e29aa3e2c3a000ba4267a52d0491e21c270ae2d160303bc6caaa1b56544293395bc84f829d380648b923029b65c752a4ec99242d063800f25fe08d1ea8afcf915e420e0c29185543e2c5a8a8075f27518724214059c920ccaa3b56a480447f90a10825113a862ce8475f2008492038ff6e0a9e3c88db088a11912c8f84a0a9c4c38b2728026b0ab1922b0cc40d03a46b1644279297db13356667ec4c664eb11a902f4187016b7c48cdb853e0200c0a317081598391308c0ca11540acdb5c192c8906a0e934b425148bc2a511e94d4656bb6584b9e3e947d95f17137242194d088801eacb668541a0b360d9f945d29f2800b820c3e2280e146ab83162d0590ec8a9ef5de79dd470f01de99f96dc3636d6242dce3c4dace9687b61ddf79e2fd8b40a2b1bef3c42fdbf51f028f37509817bf0c04de79e25c4dc7f511f761616c1d4ef4b76f238beb233ec6a381069d50518572a4908bbc17797e9062a4d52268c8d1241f5b5a6c3ae5a28f152f99584461734fe0c4a78b026a2224106a885a8548a1102825e6864f79a0c59d050aaa98ecf3552474e4b79671421311f314a3ce6e98415000efe3a0c7179c37a73ab4205a5c2d50800266b8c405503b31d22a2d4807084c6a8a83188dab274b4b191d602cf0081313012ce008abca4f23118f3ca638062a18a0c4d78562869ea924d30389180c214f01aa338320530bb6565120791952518285072b617c8c993834c98dc19a728f49a107220a6ffd48f77db2e3775903ef9fd340a27dcfc0f8177115f1afa304a4f72ea37dd92e0b0bab7f5d5effbaba9f4cdb35c2c27e11089c8026f6c5e2b687be2c2c6c4258181007d65f966921902e7a6011c76fd81d37dd6ca41ad5cb11fb6c74b2e1800d4136f0d858d37b7fd07d36ca74626c23bfb3e71aed8dc1231b5dbe383b403a1916e7a293617115c8b04664580d2e64580db97732ac86dac9b01a3406916134a0f44e86e1c74f07a461830cf3d1f8c0890c837b4386c199f5dee17a6498dc7d6f64de8664588eee7b8be07353d47b27c3dcb8f44e86f9dc5cb7069d0c9bc1a577196d9d667095f8fdf34ff4751869e7b2278bc354a8c055dc7da0bf8d9e18dfd9f3d89bbf8d63f9ddcfdfc6b12231b6418c6d10631b346e5b50efbc400af4ce4ba0771ea03fbdf3fcf4e1d33b0f813dbdf3f4e4e9f5d55aef1862f47aef573e35528e42c17874c74e010b7aef3c986e618fba3440a7de3b831b45b7350d646855aaf7de008d98346d597906b5bdf7ab00aae4609bd2a48b9edefbd5134f22bc6e072cd6f4de7969bf00323d39f10455ef9d81961445a0b064d1b3a8f7fea0802ba9ae1a85b172d17be7613a4505c805582eb5bdf7065b8210b4080df1a0d47bbffa160add6220ed79d47bbf6a04a30ae810a0c7a40e161626d6562c8ed97061615c24ee59a815e9fdf865c8b71de3b40c1b85393d77ff3ca7edf23fe789b4989c89922b5c630e16f79fabe919589c2b0e694ffc77f49d7b22fced8e7e58c469d9133d6ea403fe61d1fec5e38ddfb98a63b187e961e060bf3aaef0eabdcb755f9ad7599a60b96ddffe9ff9dbb7fd8ac4fbac0cad48bccfcadc865ef6dfed78e7f54ff6df4d2db76db7de7978ecdcb1538747a7bfe1c974e7d1283f6e0f63f22effc639922cda769c8409a5fcc917122694f87c43ce0e6ef8618bacf75eeaeaabac5f5970f56052ef851c4de99d37e7d78042035dba8fdee30105d4c088d778725ab58a7b41805a77f783644d97755ecdf30fa8ecb0f1c0a4e7e3b07ed055ced5f66d4796386cc48571ed6fb20767b018846860caab0b88d32378717ae71d1001429b6cf7ce83d33bef0dcf80de796ebe98b9353dace91a5778ca2a953ac67ac742fb3b5f31f4765edb244c34deb110371681765ed3402378f0617d7bf2d7d930da97ed3532b31f74b7fde27824c3f3db176fe3b0ed38acd97ceee5e39771fc74267afc3254f6eecb758da66bb517c2fddb56b38bf6dd96e3fea7e56344bbfe32d1aeef17f8fd61e257fb316dd738de46dcff1baea689f2d8c7eb3f7fb3a1a7635a36c618e2f4dc4f13c61feed7d1f7a7a36b5b2da76b1a329a7196e94fb4df7e6daf8939791b6e5cfd35075b824cf8fa6a21d682f4ba93e9ae7cfe69616e375b3eff349224c9093fc83b9906fe39f9031fbc121e4470a0aa500bb1f90f09b5609182acff100894873683490f7081f021c765b2450b32be71d824c51c707094f7debf6cd724182e2709d68214967f4efe9d48f73560e5061c5ad958db5819c982bc93e97e55f4357aa0ab287ae289debba02d264c9026d96204997f7c9e6dafde1d8839003361826c2146caf5ef0dfe3490d3204a83180dd01a9c3558e163a4e3b671153fa6878c5c74dc4deee7e83a5fab5011f4ea2afadbae36868505633cc5c3c2d4b44e4dc3c2d03ab4861a1696d6c9686a8db486fc716358982ae7b6ecaaa6a898dc49aec8c122bec7c2c254d99e6b3431345cacfe695fb6e1a357938d37dc9b58fdd33ed1afdd79357baed16e9b87277ea2afe9629fbffd21eccd6a1a6df61a5d6ca7e55f2db7d7f0ff5f0cfd37b3d7ee7ef2d068c77da25ffb0d87c617f21f0ec770b1f4ce1365b4a3fce55fd3080bbb7fd1888b797da1293e1c1ad78ef51831b6717fdcf8b656d332f022f1269385358da2bfe17e1d8dd7bf78f7b36d38fcff177335bdf68df65dd3c86fbb68f67dd06ff84f1eda677f087b1b4ef664c3216ebcf39a464d834d1ed271dfecc5cc361c8e0d8763f2908e13cbe33139f674e5d41fa3c1f6902cbf7ddb51b6c964b4a36c938989a1290b34a591e3b55de6a2a7d135aaac510e4d6534badbb6cbff1a9a1a798485a1756161317aef0cba8f1025428d7a27c6774508e9785b6343832b5ba3110368634c2dfe75403affedc4dee25f0777c0a0003a7e97b82773df46e77fdccfe9db4ef6ff9e6dfb06ceff46ebc2c28af1af81d3c5319c2efab97a5824d245dcce66817fd9ae81f855aa4060d4fcbf731c86986cd76958581891223f8024d0a8779fe3dd0b7e971226d4b65cfbda1eeb9d27a7bbdd98a4f76e771fa02de0ff4379689fd1a8bf0ffb7ef173ffef323b7bf8c98ec39a8d466dd3bfa13ffa347bcd2da789749a195bd9da0fe8c6e6e6f603fed26898b1a9016d8ca98585795c8e7f6f3fdb867feee77cd1be8b69757faeb68762731eae0dedc7b7d17ebb69d86bb7ecc9644f86e33fbad81e9209f39b9e6dfb6e933dd9bf8db931a7c7ea4f67c3e1b8bda626c622fe35f0397b98dbb65bd1f83ffeddee7ff44372e8ebb1db18c7b69d3d9ceb31fcb6d7fed028db4452f66445239d8dd39e58db4618ff332d7b615e1bc97ffb17786d9ca371f9e71e5f41972489fb0ffb21897ba317defdfca6e1b8f6640d7b7591be4613e2feccdfdfdfbf755dd7755d55555555555555354dd3344dd3344d51144551144551f43ccff33ccff33c4dd4444dd4444dd4444dd4444dd444dff77ddff77ddfd7755dd7755dd775dbb66ddbb66ddb9665599665599665d7755dd7755dd75555555555555555d3344dd3344dd31445511445511445cff33ccff33c4dd3344dd3344df37cdff77ddff77d5fd7755dd7755dd76ddbb66ddbb66d5b966559966559965dd7755dd7755d57555555555555554dd3344dd3344d53144551144551143dcff33ccff33ccdf3755b765553f45423a2f51b3e3870f75711d368bfa6e7eadfd0ffb77fb7117f8ed67d6f7aef570b10716f47da6785f0bb3cc2401cf745e0d0e77e3e7a3a1b27bf5814f11a3264daaec1a6b2b2dc0f07da1bd0ec87032d6d0ccdedf706fcb9d1801b5b8381f6e67139fe6559769e0d9f1b436e08799565d945fedcdadcf5edcdc7f1ceaece98e3778fa25d13e978d0c2391c376cc4d5a001f7e636a36d4d2d4d468c33182f7e666564632a4ab0af5629509018418ad8a0a155ababd9ce8bc73bbeed18ac880fd03bd1be5fd47f08b47360d10874e79cc670e8896fb60d47d682a7e5cf9dab430c28f2b1199ae5f6f00dcfed219edbc33760b1e8c3c2de735dd11b0f0bf3b7d18bdd391e46c4bd1d0bfbfe388e64b54de3741d6d26d7345cf4a421ff3bfa4504303e35a27aef6161c0224e92b73dafb981df2550fe77f4aca260319d7fa230a76f0f5694c000cd950b5ed7d5a37ec500a2ab4163d0f4f0bb94fdbfb1ce70b9ed58854d771dc67b36d6396c9cbf1cc3fe755b765553f4347918781478bc2b0bae509581d4874363ed2bf3a6f71e0c92794ddb65a6745f19b9f75e3ce6be326c59a6abf7ee45867d7d75f9ca38207341276ba27168c724f96bbab66fdc1389f6dd17ced9f76dc46b7be835d734988a14e46d936b7e8dccedb92ef2e7744dcf64eeede18cffdc36f6206bfac39feef8e9bc5e9ca669d401669aa669d4d14592411241e4be82614132fe3c609bacfded8b2fd87e43d8fc10c1824d9e0ea91b94a9100053bc869085cda88d3880678805141e3035903245c823b84b1f14dd91848851c316c3450e4b42889364a8e9033010d26262c1a41bb90861f061d5ab05d59b200b5819a4c30b4a5a902c760fde8c683121485c85aecf1696154154b4b199a78c4a054495851a76705382802430614d2040285c20532234a14b045701901b67c85e7058420110ae240b78f1f100f843141d053816b8693ff098513a924280173f9230d0c46bd262d18fb6449ed6302c927e6c69fa8d407563878f4c491a78f88231c4079c960502c0f0fbf8f1c449d06d63fb7821610511b038283e7c602e989db0291e1f50054db0f3a1763433e5cb8a2a835a1c6f0b692ad080398f2c2c650dc9532347081ec80ee9a0e0ea6e1190b51863c7dc5d97bb393b77e8048346f4fea8b26385e642dde44587dda0302d803e09796337009c81cb1ed4841d90011c9805478a765d89ea9ea8e082a3ae940329c44009a255c7c70f251e3e7c9eba267399400d5a535107f716c206183128752499903669ac1c193b3158652943a15146398958add945e8632462e653a8429c33c618d388529b01148c5a6c9386e07c58e411548083fe6915e76b6014e9c440162fb971d10234721f1cf231638f49140cca905308f5818038334a7047362ead39ba35c0c354a2434250ae081f16b0a7c10d5704672d998a72d421c2796b02e04080146e446b6e2c35a126564c35b9613e10c29451d0e80663756ff932eaad072a567f347410e0811e805015021f8f2ef5884207cf2a2a37e87ad8a8a2e21ccb50a30700684af8e9937cc550b8bd45b52241f18e97092d406ae08a48484f665c989415db8a1d00e9213248c7101b1317021011351cb2dfb4b07dc011e63c3862c5fe79084341c7a5cefeaa25351811a4024fa92ec36513160b8a0ca97bd42bd48448c16e29f5831170fe38f95381c84091c8054e439e2a973411e7346b0891b17922a2236a846dc10118aee2013025959d762828d0b0ca143c05b8821818ca0d4f0012c25268b1d295e219da61cb28e810e001c1aa210fd4d031a131e444e9f2d0bdd96531d555c3a41351c28f1233a2d27870f274e5261160028f38a154b0964c041e43701e68483a30f2412785075d09ee89108c99235a0d49c902a2b05174be89c3a347300eda859d4a6cd8ac19404ff033e7a34d0c38c206e69258b0a7011cc23022bcc0acccce8474bf50bb2acc8270f514e1ab909547c22b268ce222d865cd1dba1062d4192e4f7304f43800c727104de6bca928060010a3d1dc179e20991c98299929b0004b271e5ddcf90f4c09549e37aa660178b4c2042c22658e9b493072944a0a85161f9408047008b9f3df4e87af75aae2f48fc040d23325e8d35f83c4680d0ecff039b431422a9352265fda83aa125b81950d20e0c6aca7520df978279bb56579a93f81e4ded78aca4bf82576a0520d1b642e58c564e2dcbdd83287c6c5386c88db2f939844b1035811bc85448856997a23f8c3a7b76010235471d40a3e90a7e275e04d4a431698f226fe342a615f0028482ab827b824e81604d140dccf509d09809b2651a293001c058cb32153a8b038278042a08ce120e7e9069ee5006609b0966d0418b083d2190d0d9be286ec48f340cddd1dac433b720734c082921ced70d1c08c4b0dc89a1d12c0101f58f258728d8c7260663660726e1290e3d1a2d2d9154c44399595da0308dae2e4baa1e22219f85147214a5b9db0dc72e8b802448747c15c5900cdd49102894ae2121ab51c14e4f0c325c65b029ab0e48002567667c50428396ae420112148998d0b8ce0f81409769003cc0b8e3a388cd89da93241a038d49e9c39d561101b8e1b9638eda1d5743874c3cd980a0c7552dadcb8bb51e6e7c6050b7c776763ab0d4883220502a3a2b0318691259788571e1bf61dda542753c0c64b67a3819a1c3c950b15a748ccebd41f3850e2b4acc210aa0ba74a717221dcc4860988c499352ae0a2e7869db01635148861c2086485550d2a114c7c59d4335423878b16878eac61d528416354d1909c222b001a796828710bf5409083181a332495d210e705271a709ae00e406b53c20aa0207041e060c061e1912027a818e26d12054618529cf8ed4c2a394e6d74b0bde1601b26880b52e14dcc0d1437a47c9bb7084fc6f0e95ae372632446827f071208b72f6eb49bea210a02e528416e7d06211f33ac60e9504345316846f02e021f201ac419287eb49dd22a20550333b8ad4f9b13601b0d2c25249d5031a46dc4af8ea5247cb4b07962a3e3e1d0199f160d6c45d8d2d8d62cadb1a9808672e5adb06657e2713449508b35b22783d660fa22af59507ba42646ad5673d918481080aa536a0c6e7ac9eca9a42502612c53e4e2212d4b5a9ca642862a190964c9989246068e31195c0bc41015034f8c2431661410032d138e0647071a10b4176869670f1ccfccf8b37bd3598b326710602c82e10586f0128cf405ab17835e0cb0e105f08557a79fa95f9f5f13de0f6efd9154cc3a99cd31236226c3ac2c82b235657565636515c81c9189212392b5643c30401211a28fe51192184bd1588984482a1e8098487171c305570f4054efbd4b71907bd57f08b4fb75d7f1f6c0db0b63204e97f3f0e33cde830b0f2ee07759df3fcf7d51c59de3c5eec33205bfcbe3d08cd09a5f9b6b1a6cae69f2cb47c005c108990808d2bfdcbe67699627d897ef9fd3313d2cdefd3ad258ffa227dafd9a80dec92b98f2d8df5e180feabd07c9fbcffdbca67d570c0892b5ff43db868ffebebd5703e0ee53aea8370e2b6f84b92faa38e6678982d9734d830dca71a31b29cc7d911c0ec7c2c21aac58d31dd47150c72ccdf775dff665dff555dff445dff335dfd775ddd665ddd555ddd445ddd335ddb775dbb665dbb555dbb445dbb335db9775d99665d99555d99445d99335d97775d77665d77555d77445d77335d75775d55665d55555d55445d55335d53775d33665d33555d33445d33335d31775d11665d11555d11445d11335d1f774cff664cff554cff444cff334cfd774cdd664cdd554cdd444cdd3344d0e7226ac7d2a03e27617c15907c91ce965015a71d7e0121bc18898b2a1d6268c24c28b0247f60872c0e46c81b73e3fe244a2a0830c06d873d8800881425d4a80d78f5419589cd9218028064e861252e8b81ba1a2829e992493d80d2eb59e4624de04b7a00ceab0894598553ac08254304103b5794a042e32d859b526a3ed6105c7b164dc2c14e9bd0156416a0b63f53ddca53a923f2a60de5202978a43054b8414a6fa2c828382a28596cbe6a523bf6354436eee821a0979e49e2a48135c9a124ce3c3e4768f0803d3f1e0954383bbe9eac291079ddad6440de2b4f018605681db9c5822370fbe2300968d0f2ea168d0d8273480e09553985aed10e541118b222ee8a304ad7aa8508d0c19dad2e0c29c9bf10802f50bb801450d0b313f7c874a25f134e8cba84e1144d0026ed51aa10f3f44b06093a71fd630b8b2204f8929d73028532100a6745dd2c39bbbe00a1f1028b0c266d4461cc0c346688b92584dab184c40a0f080a981942943d0a47ae400826f666103dca50f8a6e075ae109b26900a7139747586ad862b8c8118116af4914033f4c821c414c92a1a60fc093c28042872f5c2c5c89b201130b26ddb8a50c970811a40179a40652d68755af165406d47903616b0c16ac505921ac0cd2e10525ed460732a8865c9e3888e060f7e0cd8816122a45d0a68028104c2a75c8aa42d7670bcb8a2db5486da9188c34f910d1c6669e322a150a0d5ea5424020e2118a0e166ad8c14d0562e2cbd39549c8104a701926ac090408853b8c74015927cb9c56d68bd0842e119c2a5106985b5f474f45b6c319b2171c9650a096a903201f3ad668da9321c9025e7c3cd841a60e8c44573484f254a84747018e05ae0c3aaa1e04a0e68e4fa806b6cc281d4921c06f5494e29f24402b4d24b41868e23569c140140a028488f1a895a7b55e224f6b1896489024b480d3c0514b130a5b9a7e2350ddd861c2a8c248a8ae5368b0b49234f0f0054348121450847cde50dd41e36b5920000c7f4ba305a905832affe6e18993a0dba64600d420b5ab83149e080d125610018b7b6288d40be80d46992d693e3017cc4ed8d88e72781ac3100990161f544113ec7ca4394991e8c2900c10c04a0d53beaca832a8c58a1a01881dea39d883009685341568c0981798b5fac50a0cc8593e58ca1a92a745060893454c5a046c10706cf0407648070557649bdaac8dd9740fcfb080acc5183be68477e2ee0f77ba6a8001310093386acc32790e3e1f2af013892bdd9026cc0bae549d2968ffcda02d1924008435c1a011bd3faa5c84d5e90306482f0f2f049a0b7593971c5a5041999bfbda44a50b87302d803e0931c00d704c924f007cca8564c119b8ec414d94e8c0e6a5c61100a6c82218c0815970a4b822c701048862601191301c12d53d51c1e506210d5d777dce482a602bcb811462a004c90006022582ba12b4332d117e28f1f0e1f114b08a4c8f028a4617243acc65023568adb4241f89a2652281742dc35b081b60c49e706aa3c5ecdc58293d7a6442daa4b172f4862ff95f630a0410658bc12a4b190a894a92a44cdd868df0df6448c46acd2e421f1e0ccc2811b78318c244cfcca7508538e789746606161c51983c6d8d6944a9cd80098150945943c2b6a9111b2db64943703e2b18c853e766808b9854c357010efaa7557c418502a61249498383e50146914e0c64f112a4030b3c990ec8b076446bd10234721f1ce40ce6152451eacab03e638f49140cca3a5286c3c742dad1898a87501f08883393c4cb22af395c02c86a8c68b07169cdd1adc1900b4b1200d1a213099eaf121d12827245bfcc4bbf6105c7e9ea43017b1adc7044c4843965dcb40ace0cadc192a928471da2b54da8a82891cbecc061ad098003014e28a30478c60b1d2e03d48188f1c35305a71a31452d154e2e303b7b36d4849a5831c5a448a93663701c890bc40a8b0f8430651430dae21537c7128fcd971304ab7bcb97516e5424f1694277a9c48ace06567f34741040d2194badc28c90b1f57764a12a043e1e59fa34478b9a1c165a203285a0836715951b741968fcd19ae00b14012b385451718e65a09106021582b8b812661764a129e1a74ff2c1c10194098b0d08458444e0f616d50aa725461845005149859cba0e5e26b400a979fbb2e5810742d24851904006d293191726649a34a0793154fc0364d0dba2a128c89b28c45d58265b00611a830e80f41019a443081613098849d3c2d93090810b0188881a0cb111c1608e04357f449de905f9f5e0c262d1e4005a2e0c0d611f255b7084390f8e58c1704412211e8931758296873014745ceaee449720a89c54af303d4b5640e90992424a85395fe4944c19b1e6a1c1882015784a3260306175c104222b9a16974d582c2832c41e12b31012d35184f1c570a374c19c9612a2e2dad41e521a6a1ed48448c1ee2863b64a5842532004a84b1a46c0f9e3e40f85396e90cc81a028d3134e3e3951d6150bd8093ce922f725d20c16783ec069c853e5922608bf41570e4d295201200d69d6102263f3f4360063e728d2d5151a6b448db02d38092b0ce20c8075766506078207c0945476dab757c40c3a0e6c01a364832a818b40aa147800ec80330af8b0a46911d6143c05b8821800322ac71d1e83e6243182902307284a0523dec8570e082c845a016a0320212c8516ebd6024d2e71a05082d0932c9ea11db68ce207a49aed853da39610820704ab863c5003ecf346c8230e46d0d070a031e444e9f20c4174a315968fab464ab2ecb298eaaaa1424b8f0c872e0cbaaa5b24a2841f256644a575c9019515c3812da3da3878ba72930820010f0a1b18ec0c40fc58c80aa582b564200c1a51a9828d496601451199c8b31b0f6e07121daa14a5948362ad03920e8c7cd049c960a605911e0850c0442c03ed866c508d0a3d24ac3a8e5629c0a03db8274230668ef02e59fad921129aa26c91942c200a1365e7021373a44aeda31819367178f408c601464012115a44bed8ace8d9a9c486cd9a1b271028caa4e690a82684b6fcccf96813e30d04e71a0bb31f5b7517b4e69258b0a7011c32709059c5e08a9b0420f944788159999db1383bb28a8b1d1f06953cfc42edaa300b602e18a908f2c9f220d5f214e1ab9095477173186e6ca1951a50e063c2282e821d161bb7bb8d1b291dba50f97021c4a8335c9ddab4d50112438814d888861e07e0f80482891333aacc1559ee39abcf5414030088c1488c08b03e2ada744d41f5014f904c0ecc92283a2d21eaa065410e1f0d1660e9c4a34beb801f232ddaa8e921f7b1604aa0f2bc51f5e34a65c5c504079c102078b4c2042c2225c53a8200309150c859b581c9213a072c5081c4944d6be2449007d02a2c468e5249a1c08213fea9890e3904b072081108e01072e7f14f6dd0588103c04918870e5feb54b5498a28271394d519696441160c243d53823ee1261a70c26547a21ea1109018adc1e1599e7ad0503340214c9bd0706863845426a58c841f1f8db2087544e0c9da83aa125b619d3337e6e31181695644107063d6538946280a5bd6789c65f1b1a4c32f839b19c78e946d400f50608e167cc9d096e5a5fe04ca01054a8e126a25aca9f7b5a2f2127a3160cc1820201ed9600bd1a1520d1b642e56655af4e5eb82277d8460c910e7eec596b913099a2171a68d08c5ea491980ce80247ed809503626f83cca41b635c4ed9749cc02089ccdc8ea81924ad1450b45d376e254e63f3843d6e7549426317aa7de80a148246d8b44080bd841214c040f2442b4cad419c939f2731426d616175a72326941d2d3c8ad9d00c19522d342e49343e243515f1224813c89ecbcaed64cf0308811aa382a850b88aa648c92b44260a721acec4b8a0e47f113304739b41280a3ca3768dd1340903b36314f7c96ec1445097ec09b94862c28754097356c8af8c8d970a5e14fa312f6057f4ec508855b98bdd85c61ad75486e60e1c9350045c7043b236acc81201117d635aa0b1cea852a357dd6380a1bd6d8944b4ec0f140ea4b492295a3c402ab4c8d275fdc4c69c871c093352942d24c100dc4fd0cd5f924aa4a9d5f8c21e671d3864994e8240045f5310279846975c30211591b32850a8b73a2cb6502b5a9d50f156921a08ce120e7a947012a1cc9a86028958c361c8a468e98f4e088800f04628a63c024c46509b0966d0418b0d52ad35a1f234e8894449cd1d0b0294e08152d35a6b9b6cc52ab0e0fd4dcddc13274a60da936b72a5ce664c9e08006585092231108e4c08d641a50b5e93530e35203b2262d0b9a178a2dbf2aa33a80213eb0e4b132989064eca5b26714c94024ce9db3953fe0c9520216068032a6f6663660726e005d0ac589cba3342d3aaaad1695ceae601a7ed1e4a2025268fc16ae0cacd41e40d05643d30c4457a24cb065e948cf5071910cfccece580fb33bee6c0ebb4569ab13961b8e3ec239616d4fce30a9a135e42ccf98a41f88c82916e0623e11b17c28982b0ba0a978a4e68290171b004e8c1e90a8242ea1497be266810b68847c2903a581810e4e74c8162c9e40a2708755a644a37c5c62bc25a0094b3c268b8515439e2af8f900567667c584278bbc2401c34309021f893438e16245c58a311732b57183e2708003c08a10a4ccc60546ee3655590f4eb5f1f03f44821de400eb72448e1f3b1448b8a9c262839687160897101eaaab60044e4fd098587667aa4c10e796548834119538224d807872e65487416c405340c658ea5143cba30d623e2590014c00432828f461ce89bb1f59589cf6d06a3a1c9a811134a0720b34e88110632a30d4496953cc5261d4933a64f20138a825caa4ba4799a8340187a3af23538c593a3a7902ebeae349536d806f0f6b2145080b7c7767632a9b319864b05d01e0cc8cc3a04881c0a82800a0d3c622003546c0b4598c2cb944bcf2b02950e1825679b6c4018ab8439bea640aa4d53fca9f4a5508561dfc88297de531e6c91504ea5410cc9425839a1c3c950325010b3b4381fca610593d31af537fe03c9980902a9b814d9f3860e8b00a43a82e9c28597ae04fda910a6c4aa56528849bd830c1104e6fb614858e44fd19d30b73ca4e16d7fcd607c88d09eefa6ca1b3c545cf0d3b612ddc100d00482b4a570580560c1346202bab243d4a238480425a81115f04135f16f50c697831828423468a055b3cb86871e8c89a6f4f8b2b441234e850a58ad621562d564817cc555b28908a3218c97c4543728a2c3101b018c062cb454f6e010f9bd630ba0b510848894c5f141cd27441100d6ea11e087208738127107baab4484240219fa4521ae2bcd8b48a09262c68ce764d031f0608e1c44e0f5cc518910f5e84141b261a1ee050ab32a5a304a2519f82ab28a28858686d4a580104c41385134812588042292720c8dc8809ad6987f7e6e7e5578d4f7875cf16f5de3d0df8cdaa775dd8a3b3fff0ccfe93e7e687c2e67a7af99ff05f513555d503786d7ef157d1f574dbd464cdb5f52b9b5f7ba2f03bbbe9fca2adabceed9a5f1ab3abaacef1fc4dd7f46fcc0597c65596e7093c5594a7e6a7b66b9ab6aaea533875d719e5a5f9fd1876e19475597736d3774dd1fc4cf94d637875577345d3d345cbd2059ee9d9aee1005e0dc03bf393e3d7cf6bfaa2ea3fbfe9cfb5f33cddf0ccfc5af7a3718ccab3ccceafebd9b26cf5f0cafc50173d5fd7fdefcc9e2c9bc6647e72fcd778fd311cbf1e4ed759d89ee9c9c2e08df9c13e66e5f3f4ea89baa83ccb769979eee189f9996ddac26eda9aed8fdfd4b77578617eac0cb32b6bbade6cd5d73451d34dc203f38351cfb26aecbeaf5fdf18f6bc2f3fd5b7ad2b9facfbbade95d718e779f9a1ac67637745ddf46dd3ffbaaf8b85d7e5b79af12b7bf96559d95ce3962dcb14e571f9a16c0ab7aec9b2ac7baa5f5d7deecdcab20b6fcbcf6d5b5696db9fce2e7bf20af8c9ae29b3ea9f4f9ffaf955df75c8d3f28bd3f545d1d66d7fdcaea6ccf2b2fc4c547dd7394d5f0f9fa7899ebf2c5fe0b98587e5679edffd2febe3f994d734655fe0894ae111f03bdb3376631fab3e45cf345d51f4ca0f76dfd74465f7cb672c7b7335adfcd6af7ef84d59dfb6e7d9aaebfb8537c0cf8ce7554e51f34de1b475bdc9abf2835f5896e759fef11afb76f5547edfc3f18baef2bcbea80bb7316fcaeffdef475934864f0fc3f1da0ac093f27b57d7c3299ccef2fa59f94c5173092fca2f565378554f7866d737455f14e509f093d5f68ddd6ffe178ed58fca280ae537ab687cb2663cb32ceacefe449ffc4c39f6a87ab626fbaaaddb9a4e7ee8d9c66bec4fd3cb300abb1e459bfc52197dd3949d59f894d1f6fc328a9f3b784c7ea8db9e6a9cbeb0fc4d399ecd253fd355dd574659945d5d9785794a7eadfc53f8fcb27755ffa62f9a9ae125f9bdfec368ebca2fdbba710cab6c78487eab0aaf6c2ca33e56dfd96d659777e4779aed6fe59fbaa7eaffb99e6278467effb3ab3cab673cc76eabb66eca2bf28be1d5bfa96caee8ccc228eb8547e4f7ce6bfa61d7fcabfb5793455bfd52b63d59b94de5777ed9f6ab60ae58fdcc379d3f9a9ae99aae6ebba6ab7eeeea61363ecfd49c7dabaa6a7ac14f5ed9ffbfe9538faa707b9e5bae2cf87d779dd1573e53d975d99f9eee0b3cd50a7eaa8ca272abaeaa2aa7f13bcbaa7ee9a9c6a81bcb66dafa3476592a57a97ef08caeb3c9b6e9abc2efec4d54bf346ddd13756596fd6f8bca28053fd3ff369de79fc6e96c9a667beae755d64d63d87ddf1876cdd474d77000f32b53bf1f7fd6bf697bc66bbafa9315b627ba96fac9ee6aceb3eae3793e7d9caa29a9df7cbe712c7fd97c4f566dbb1af58b53f44dd355765bf6fdafbbeab812f5fbade953156d4ff5fcf19ab269a89fcb7ef4fcb3ff73bc7aafbe2aa8df8c7e37fda6299febacb2333bc1cff5ac4fdb76fde9fa9a6d6b7efac1aacaba2c2cb7712bcb2bfb534f3f3695dfd5b3eb8bfe754e6157d8ae6da75f1cbfec9ac22e8aaaf3eaaea7043f59555d579ee3ef51d934dd97d32ff629daba722b7bf5b7f0dff433cd759e51b39d53337d5717d6f49b65f8855d977de339d36f75fddab62ccac63e5ed973667385e9b7b232fc5b15fd731cb75f362ffd5ad6bfff35e5f78c637486554bbf788557b37dd313fe2d9a72c9ad91ebdf46dc1ec65c706be402ba689fab087eace9cd793de5b4d2cf3c7faab6ac8acea9ba9e5e5e7345e9f75b733dcdb75dd7f63ce73315b667eade7911821f2aab2e3ab7b06fe1ef53d74ffab93f6de3f7447dfcceb13ccfeafbc0ef45d114655d595e5798357dfa4afabdac09a7a70bab6f8abe2f2aab6aa49f8f5dd99551736e4d34f6f05c9679a9bec033ff38ee5735cb95033f3f9f1e8e61544e7fabb62f5a96e6093cdd3157907eaa4767f6fd291bb72afb9ef10b3cdd30578f7e6c1aa7bf85d9dffad64c65394d1dfd5af49fea9cb627fae3165d55e0f9a60dfc4e143de1ef7ef4cfa789a66d59a656ae1afde018f59f55dff7943d2a7fb82c53463f5636657446d1378dcf59657f9a2efaa1b2abbe9e9dd9d73c6716fdaf01570cfcdcd83ce3f7655dd485cfd394f1b2344fe099bab952f463e13566bfcbc6eee9bff94db6b75dc301acaf12fd5a3736dd34fd1e465f7475d5057ee93cbb32aaa6aacb7a7545dfb24ccd13789a279ae60ad14f8561797ebf2bb76dfbb6672c6cb9dad2b8ca1265efbc9806af0efd54d66ccd794ecdbfc270eb57626ca32c55770d07b0eecad00f9dcff49de7f8c3b20cbbc29cb653dbf34dcf423ff9fca89ca2acfc617386db3f8c7f1df03d57f75cc3017c7145e837c32dcb7a15fd2decc6e89c0efab1e66afef6756339564f15f5aa2ae887b66edb9ee92aab710a3cd340bf559dd15935633485d3d75dff70e8b9e0d2b8ca12ad2bcbf3049e681d7a96b952e007c366fbdbb98d51544d638f0adbd3cedf047efe3465d64461934d51359eab81c4f8ce448b2bba8603787605e887cef3fbc6a89765146d61d544affefc3eea619455bf67d7f4754f3fbff3bf5ef6eeecdff8654db9cfef3d3ffb9e6afbc2f2f9591fb3956559bac09325c677ee952b3ebf3535e7ffa2a9f9baf2cc9a6a59b27565f9024fb60ee57285c00f75cf0fb3e8ffeebbe7f7ddd66c5fd4345f179d5bd3855b5b22577a7e683aff553e5f934d67f36c81a790ab3c3ffffeb47dd1f59c5bd4a37e7e9b7485e7c7aae7ebd1944567b56de1532e4bf5049e9daeeefce2b7fd3efd327ac6b2abc6719b1b17195719d718575b9a6abcb2f38353d874df186ed17885d3d6acf383618fbaab4751d5d3f9c129fad31fbfecf7f25fd359462bcbb27c81a779bee81a0ee0d59bab393ff4645fd5cb1e7ecd199571da3df1219d1b5b5cc9f9c52f8ab22eead9b57d4f739ecdf3cacb559cdf9a9e1e3de3347e4f1655bfdb9e8aae0ef8a168ecb2efc9b631dbaea6fcaa2b3e2c12e915ceaf6de55596e31365e1d87f6fbef9a97f4563bffe977dbd876558d89e40bb5fb3a730f76daa30f745f598a3e6b98603487665c02ff5f20a7f577dd3b47dfd1b0bdbd39eeb970b0e0657f1085796c0133d81a7dbe8cacdeff4eeaac233ec9ef3dbcaea5b96c0b23ccf351cc02b28576d7e2c0c7b5385d7f8cbfe9de7380d72c5e637b7ebeaa62cdaa6b1875ff9aff9fdf975bf2cff79764ff69f5ecd2f45df3546e7ff579765d7994df3fb272aa36cbab2683b9f2ecc0adbf3bd2a7285e637bfecbba6a78ba62d2ba7aa477d5c9df9adab6cbea8ba9affc768aaa6b899df97dd545ee31fcb1f765bf72df343e5797e4fbfc22beca2eac992f9c5de9cfdeb3feb5dd6c7b12c6ccff37835e6e75f9835d35985d3f3c3b09785ed99feb812f333555546e3d47dd557f5b03b0bdbd34cefaec2fc7ebaaae6ccbaefdac2adb9b6c2f63c51fb0accef6c65b565cf147561f7546356d89e5f7ede84bd89ca2c7aca70eb5d57d89e2b8a5f79f9a171fbdbf5f5ec4f55339e6dbbcbcfafb02ccfa6eb3d3baba93bbce2f24be5365553f85de5187ee31516b6e74bbcdaf2f31e664ff5cbb22cc7726cc67305fc7efb7ab485cd0fabf28a7a1367795c69f9995f56e71696d1384d61f76dff8ddbc2f6544ff5a4bbcaf27b5b73f6af2bff7546d9577eb1fc7efbfef79d51747567364d4d027eecec59384edbd66dd1f4cbf095dfdbceef7f7daac2f1dbbaee09e3caca2f964fb8455ff47ff34dbf390ff0f3aec9ca293cb3308bb6f17a56f99966aac6ec9ab2669b9e711b0bdb33bda2f27bd1b54d65754ed7f9fd2b1a0bdbd345e06aca6f355d14765d177dd1d7bb6fbbae77aea4fc5035f51f5e67b98de1734653617bff2f8c7d59599699ad7ae74506aaaea2fce0cfc6f2ec5d385e5defe554809fdcb6a98fdd533e55785edff30acaaf55637786dfd59565566ee7f5c9ef9be9fa9aa78c7e75fd71eacd13c795931fcbb2adebba323cc3a937d9153d2b4b2eb8b4b23cdb3b2f5e35f9a1f3f9caaa4fdbd77bd3afa6b03d87431fabf50bf4bc62f293d9f7bbf1bbbe72ecd70fcfe919d3c3b7b5b22c4b563d4ff6be5af2fb7f865dd774cdd7f4b13ba7c2f65c6b3f6cfbb2bde6c272bb8603985e29f9cd73eacd5796553fb7b2cca6c2f664b9e060709565fc65b834aeb22c81c0d3547295e4779ab19aa2f2fbd3765ed5af0adb33ff73e99910f7c21f9d2b243f739de319f65f9e5918465555d89eed5959c26e655c675c655c6f5c70695c649fbee14a22f0e71e3dd77000afc45c1df9b56c8c9e6bbaa69f6d5734f5c2f62ccbf8d71dbf0c21eecfcab8c8ccd4ca1296815c70695cc09a6ed9f3ce8b5785ae8cc4f685ab223f38f56d2bbfec77e5f5954fd4444df44cd770008557447ef27baa2b3cafebfca2703c9fc2f604dab22b37e4e76739f6ed39a7be75e10fa7c2f664cf59c8ef7fd98c5b7736ffea9eee9f93fffd892b6a07f9b96f2acfe77fcd583dfdd9c2c2f61cfa9fe340baa1115e4f2e381876d95c4dbfe897ed5afd407e671cfff65457364e4f177d5d617bd6d10167ff8740f5e482835143c6ec7f5a19576e542bcbfbd3dd9e387fb72fdb6b67e58aaee7c943f4e307aff3cac6ea8fd5565d5f5815b6a71107c6e9b9d6f6b0ac2c6b709571c9e0824be32acba227966559b2ef1a0ee055141fbff7c3abfb9efe4c636fbaad491f7f6c6a9ae92b9f266a7af4544ff78d68df2fcab22cff6db344639dd277bfd5b7ad9759987de1bb7f767f3b3b6d87dd0ff6727c9aec4fcfb56d7fbcaa2c5cf79b3d2cbfed9bb2f3673d6bf7ebf4fe6f77fe769eed9de3e96bfc996b0bff987ddd33f62cb0fec3f63c16ed78e5925723171c17bc1ab95ef4e73f785e7d0a9feafbc6ef97dff40cffb5fff4b1d9a2702cc72b7cce5ef8e2feb9f0ea573fa3aaabbaafabba5c7030b8ee64342eb834ae3f577bb7b2fc73b5bfcb122fda67bb860328f7f8cd6ccabeecd9caa78baeb3bc02dff3cef1b5f843531435e5196565b675df175ddfd6fe99eac9cea91bc7ee0a7b3486cf3bc7d3fa37aff399be296aaaadebc26b2a6ccffcee03e78cf09781ecc9050783ebf642146f6f2f8cd537e22f65e1179e573456d5394ed533c7d5351cc0dff0f7cab06c7e597efd6fe1373587b60d9fd1fdda73fdfe54e554456156555923f0e3b72faaa7cae337a3ad9f5b18855b36f5b319bbe84934d62990fecdf0bc7af8a3f1f9a2b0fc9ec2f65c739c4e7b85bf17feb2ea59d53d63afaee7ffc3a211ce9cfba96fbba2f35f5b7475513676d373fec9ea7ab2f367ddf88455b5fdbf9fb63f6de7396ee17fb2694ccb3ff77c55588dbf397f7676bdf9f3a297c764df56962ebb86033817ffda1645e12fcbef9fe5f7fbe1a7e7f5ed3cf1fbbb39716601ffd6184665d9fc2efbc2ab9ba6c2f674e7dcf8e279ecde399ea6fee7a63e65bd6f67757661f98585ed0934d3b1e00f56e55666cff54d617955d155d89e40141d0e7facbec05fba9eff4cbf1bc32babceeecaaee100ead8f163e7754e5539354ff784d9f42dcbe1f0c726bb86037843eef75df69ff24fe7b9fdff6c4dd4858e9f29cfef97db3fa32ffb4f753575e448d1f2a7be2afa519365ff8fdf34763d8edff7feb76ceca6ea39bf72ac7e1f344ea32cedfbfba8edba2c89c6fac6cf45ffd9a2f129bb287cceab8b8fbd366cfc52d75c55754de33345d7d3345535eef755f55dbd7bae69fcbaa629bf70e38251e387ba71fc4ff8744ff8b3aaecdf15347e2a0b9ffe4555d4cfb1f95f54d89eb22fa625dcef3d531736d9366dd1f89b3f96ebaf92bdfdceffe5398ddf1895db765d51617ba22fdc7e26dbae2e8bb66dfbaea7cac6c2f61cfa7beefb227ade3f7ff1e6c4397567fcfcaac6b2daa2e9bca2edfba6c2f65459233027ce6ddbef8c65b535d7b6f5673cfb7715b627db4f6de3176d59d87dd378765157d89ef51f0259745dcdd67ea6cab2e9fc7dea4f786d6756d89e320dfcc5637eacc7caf2587b38365dc301fca90181396ebc7d69bf16f6a81caf668abe736ab2b3b03d7f5cdbef8f6bb6fa05ebe2453b95f1f3709aa6a80cb3f069aea80b9f668c9f19bf27dc9ea7ffdf455b154e51b45f1ba767eb9ef16caaeb5f3d1ad3b9cf71f43ccf7e1e5565b55dffecc2edccc6eaebc2f8cdab29bba7775b8f7e383665617bca76d88b5fdba6efe99aefcb9eeb1cb3ae6cff7eeae965173ee13935dff9c3e8699afd7cabceb1bbb2ab6aa2f1ea4f617ba668d9ef7b39fd661bbf2f6a7aefbee87992fddcd75c4fd754e53446d3d45c85edb97e8dfdcef7f5a97fbf2bb328ebd553d89e45fb96cdd7c5ef34d3af7a3945e7b89dbffa0adb735824d240f9df5e88bb671bc08f9d613fc366bcae6f0bab306ce728ba42ecf7c2a8ca7ad6ab5e955d157685ed99df36ec0168f1f3a7ebbe3f46bd0bc3e89f5921de9e2c8bdf6f5173565bd33ce734fee8296ccf5fdbc31858ffba0fb489f65d3cd1750d07306cc58f8565f4fb373567545ebf5785ede9fedb2ebb7d0d18554f760d07b00dfbc9ad8f5f73665f1975ff4ffd3cdbc09c1e16f137edfd995e9ed75685e5b73553185dd1dc5fcab6b3fff189be2eaacae69c9e2c7bc6bf2e456b7fb0ebb629cbb2ac0bbfa60b97e5cbaee100c2eccf8cd119f6a8eca6e809af2ebce6c4395d7f2e0baf5e45d559f672dac6a6b03d85b8b108bced19c89e69eaef3461d9bb6aacc6af89ae5e16b6e7ed85b17902d31faac62aec9aeba9bee779fa54d89e778e03df9fd3775c5996a5bbaee100caa1bfb7f5f19b9aef9ac6b00caf7ece087fdca7eb1a0ea0dbf99b4ff3ff194d3d6ca2f089c2c2f604a6673e34e2ff6651f3e7e79565e5f68dd9375de7d80bdb7335a1e237bb26eafed535d9198ed15315b627103dd99c38a76cf9fbb2fcaee82ac3e62bcbae7b0adbd3cebee780270af683d5787d4fd68d4fb73dd7cf0adb53aebd2d9f68cb0507836b8cab8c0b8e0b2e8d2bfe35ecbcdb7be3ebb7a6272bc326fcfed484e3b8956bdaae36da35d03dc352fc7caab272dbb2ed6a7a189ecf940b0e06179a1a6f7b2ecb9c38975c266ae41a168934175c1a17105d8b443a251aeb3427ce298ce227cfde653deabeaa69a6ac6c0adb3327cec0b99aa67bff6dc7ea1a0ea0e9f54bd53fc7aaf95b177d3faacac2f604b667bbaee100ba5d44db060ee51b089470e206e2c61b08dc327102ede19c3dec5082e42201400a34499c18d1457689f80a7102048a0fa607afad131df00e1cb636d0c51e1e0e6d141a64ffef2dadbb5f6738817fae43d6897fc0eaf2a145123d0f18ce0f174a5840e59fdf7d14154ee0177ea030e746208809314e13494840239c400020a0443b06fe1b083ce9d8152dc61f07b60f423870d1936ca0b2c03bdb2e07c1003857d342dc0b49de87ab134804de76eee3fcee87e83e2f3d5656ae3ed1d70d7aac0ae1a0d0054d1235d67911f4ceabd43b8f52ef3c087ae74dea9df740ef3c49bdf322f5ce73a0771ea4de798f7ae739ea9dd740efbc46bdf318f5ce5bd43b8f015ea2de790bf4ce43d43bef50ef3c43bc371e120a5d90a44f63570fc67c7a24759f9e02ba4fcf8d17224cf40daf4f0f59f7e5b9a0fbf2f8e9be3c62ba2fcf5df7e571ebbe3c69f7e5f9d07d784e751f1e3ddd87874b84b6ce22abfb003de8be3f1474df1f4fddf72753f7fd71a0fbfe20eabe3f7ebaefcf9ceefb53c64205df1a54dd67e877df1a50117aa5a3de2b15f55e69c841061168dd274245ef9d46ba4f8487ee1311c11701abfb22f0ba0f02a8ee830041f74150a0fb20d8e93e085bba0f0291ee83c0a3f7a034e83e0839ba0fc259f74150bb0f4257f741e0d07d10aebaef81a85ecf82870d157c50cade83d2d57b503cf4de2ff45819e93d5677efb1927b8f139cdee364a6f73845e93d4e407a8f535def719a7b8f935cef718aeb3d4e69147a0f12a0d07b8052f51ea04ebd078852ef017a042881de036440ef01ead27b80a0f41ea01fbd0768d87b8074f4de316061a05081422f4894de0b72a4fb1285e8bd203e7a2f88dd7b41e682d8b8f2213041f721e0a8fb1040a06f4080acfb10d8d07d7b22e8be3d78ba6f0f98eedb43a4fbf6cc75df1eb3fbf660e83e3d15a43841b65a367ae98bb443efa1ad7a0fe5d47be8a5de431f755f220abd8726d07ba89dde43ddf41e9aa5f7d025bd871e7b0fad7b0f957b0f8deb3d3446efa12c7a0f6d7b0f15d17ba885de431df4de5941ef9da1306c39a8e0a360c10116852b79ef5df1bd77e5adf7aec0e8bdb4edbd2b2c7aef4a89debbc2a1f7ae3ce83d2ba57acf0a04bd770917306cc0d23a7275a9f7ab017abf2aebbd977a63d02002031e0308bc07101e507830c237e2ecfd9cd1cf9e1a14bda786ec3d3559bda7a641efa529d57b692ef55e9a47bd970650efa5a1d37b69c0f45e9a23bd97e647efa531f65e9ab9de4b53a3f7d2a0f55e9a16bd9706acf7d288e8bd34bdde4bf3a0f7d05cd07b6848f51e9a4ebd1704d87b682061e865d010a1f70b167a0fc38408602a54c8da1a0ad07b4320bd372cf6ded0f7de70adf78667ef0d37f4de300218f7ea8d03072e7a6760f6decd96c01032a433418bc0c5172fbd735972d6939ce5fda6d5c87c4d932b50b20459ff61fd87aba5432d2830d5db7403cedeb54ce9526af4b600221083dfe51086e9086611cc8c4450571344da73a507bfb58891451f03ed7ebdc00350775faec77aef6e947ae9599e60f1af1b0e3d51cef0be7fb13d1c8ed573f4d07f1f349e1beda34f630361c77dff82643d61128afa88fb26d989efb129be495df6a5de7b044b7daea681431f42157e97454f746db436581bab0dd5466a03b571daf8f73f4353f674d5a3bfef31f9d7f4fce59a464de77f383492fddb2eab693bce69329906128dbf383bb663db4dae7f8eff384ff4b8518610f7c2fbc301a443a8345129d6919a041942c81802836a0600200163110030382c1c8ec7c331d16c4e8f0114800264a672a6521b0ad424c9614a31640c013000006040004064460d4020604c91dbf556b4b72c5800ede52ccb3cd7fe5f4fecb7b817f064571880e895de38ebd1c3aaf8fda00b8259e2fdcf546cdbd14b7269be90639433ad79fa32ec7ed15b5e4aac1f16d6893d0665c2e8922e21e329219760ec4cc72c86b14f899418c0cfd0e069a89ecc1bb087bc3a9a66a7037b1eef3ae29b4f0b21880154a6b34a234d9968590eaf5dd2a0a83cf93f5d500f605f95fb4584ebe45ab25a5c6db3a16802fc6cd2b14b2ed2a92885906f68063c137172fa448b154e5a9db2babe411cc01d5e809f2b013c354d7d38364f4c9abb29bdef73ccbff449b4b15969a13c75bfb31f1932f53e6ee74ad9abc03762ef80c59aa77ff2633a7599de53d23f7508c099880f36f37891ea9584fef6659c8d05c18ec9e7a3fc03a5a845b08ab49afeb37f52637c4b4854294339fe6ff15b4a58d13684bdab74dafa5d11b9e01ee23d5647215b881fc4a86307b5c0a2d0fbce0e924ed7458ab790a267ff7fe1a68d392084a51ddab31396ae6224287b8bec46e13e2365feac664b752bd5e70e854bbf70ba43431f00f573ea85bb9c43f21fc99bccf19e4eff3eb3830c4e9f5e18bd2fec502adf4a3ce8c5b9757f4a05c03d5b54c41c41aa45f2da8d65c2aab437c1cc5c0bcf48cf0a82016b8e4c31c3e6860a8abe5952c510def5b9ec3a81628189ec61e01c6802afc365ed7ad8ccacf684b79c0bbfff5509a5eb261ff14acf7d906e895971a3dc583d35524aefb4a648b51c456f295055bd9436dfada4a23745001c8aa3180b9c6e16582c5f966890ca1fd5cce849458f046831a1fe3d9a79507f6d9eaa6e20e9cf920673332a7e992a8862761db8d1c11cfdc5cb0c0b1030a94752ac681ae5f6a41b5c73d3b82d921e5f2a248d7586a37f3e38119424ee7d102237205cdbf1a08dbca83be26705c2a2f330ecc3d065c232a8186123b6ebbece41cf45f47866a6f5185cf235450304faa8136d0322c27f5adc47ad0cbdf7a32556dc37c00508808fbb64965e29712fc466592c882ecc4e3ff0d81c33d7685e68e96816aba6fd951a4948e155cb6f8188e5df0dd33db06a73f77bc4fea5844d8a931a6a831ea3a167747821614560f5a3cc2036be5e944f8a8968512f9661416a315131611b77d0d191287aedd829f31538693149dae3fc1a4ffd47dfb88612b68aa474449ff9b5f4a16046ffe3750c79094c24f4da31546ca2e1f9df3299ad8c131b499d9817d3fff03a1e0ba3029bd2c703c38a89f837a8ccfcfe72652b0cf3f50e2ff3a1689e5ee409cbf803d36d49c727f490369c1c1a310a4217df341bf9cbedc6107220265a1779fe94684308c3aa34316e05bdf79204864c7e42cbe5f41543e43f3f1242ae3159a1e4033738d2ecc5752d8137f6617e9b1d9dbd8fa320cf575fa2451bc6bacb2df35d959e7d5a25a7018e8541def3290a9b084494eb6297f336326f4d403d85c80cfc4198db84f6ed08bb37146852345ef49f27ee1cf47303bbc85af0fe1746f53111a87fafe2051601baada53c75251c5ffce6aec153a632dc940dad16c346faa4a8cdeb17f946b118f76d55ca9cc381d28f598bd0525e87632ba957e9133d34689f1bc83fb2489c03268bc57dea0d3528e22f97acf01359163423aaba0c45c1968d587b07f849a3e4128aac52f2df70dd7e65e67ee8d23ec3d4a585157d8a969a468c68ddc263c190442232062877926f66514071007cc85e72b5762b8138c31256fac0a1ba04b373716ee8898d73e0475d2a1aa416983db3d60d9167d58bf4c0f3649733b45753eaaaa14baf44bd98dd2bdda4add0982fc95f1108a37d6b4200925a43268bd92df0eebb7f9cd376d6b34487ebdce1e8aa5341aef689075f38f5a6144d06e9b1cb18da76eef9fbb83124d2a73b0e2986083dd929ec35963e46176d0a2dce113a4713b1f312bbc29c0edc276da5b1734c344eaaf13b0468029f8c9a32e19d4c5a5282342c8d8a0dc2089695a880391da5a47b77e097cc2f3b15c6df59f0f52d51c6d3ea0e6f35e692b5050069f30d3df6710b097d155b1af2608bddbcb016ae85252d234122a27920a3713ed04d414f07cae73eb6034d16a7d5145dc680bd98c95a19e181c16d68c1879ad2e28efe02d75b7f800ccfc72d00a805eb91a74d69e8df0ab58eb955db761a179c4d9bf92573f559fe88918c31c7fe753897f418b25dd801f2a2a7d667b200dca52a4c488ecb3bf48328651888d7ea349a8ef8f36e447bd9b2284668bc43ea7d4af7ad0b4c0364c5f04092ffe2cf5ad3d8d6ea8b9ebd61043b2faefd56a6e0fd7fe3b753202c8cc089de02a4f2d246fdb9e185fba5f2a4ead6684a4629f4beb6d9485cceb57dc1e513eabd1d909ea2fa1d69c8d7db482e906711ac61773021fc437d7488750b06a33f1dbef9cdb7ac714d35b5c943f6c30b7fd552f5fed022c2c63a74401fe29e54e74f204bf56a4c3478d7b24054c5a37b5a5b8717399680629918ca1de7b2f8a0735b5760f1d551574c2807ecf2d53153edcb83038bf16e9e851287921e3178975fc767a3827edee74b21d74db10b385483cec1e26582988ce908cc2d19aa9c6b82c420222afb731e4ee782e2269c762f64a3dd51c1c81a67ae0a3151a558469b89dd16f5e3160068d9fdcf5bb7652da1b6ce0e30e2d9731f1a6029c68954e2d2bccc1751867cedf1bf3ef9497e6064b0c91e1c5894d4b38fd54edaf370b3cfaa852647e2539ec397c6feaa1232835c67f4e930f28303d099800bff0d3eb8302763ff77fbf7221dcc52ad31a5da23ba3fc00c17047a99dad5645a4ba92c6eb569ae9779b3ef2e48d99847126a862fdc7498a62cdac3cc7d71e28d4cdba8bc5d8e483227bf523921d0fcbb639a6d5637ddce8b3157e55505eed5bb7a548a1dc35f50a2f6d86e25f4f8e21fa0bf4f0ff71b804687f7ead82ff754e3994be4a771cd5d4e848be4c517d33d54c7f5f28d69c23245efc0d784dc1263a633a867a2d9c0421b7dd74aa6ebf59856af626a7ee291487441d53c11fa0bb3df4b682738cca2ca1be4726dd6dcb56127450cae144c807d823367ffe603447fb81f97400743a3d55640c6b8a8ef8181f89d09706c2d7962562f3651abf24ebcaa2adebb0aaeba6288e90d6cbb7075e9007c53e4577167c8c45073447385aadc0ddce9917c40b7f398a4598c2c2d538af58de664150cc8557022cff54c8b90193186ecc3d3774662baeadb12395734ea6bae8920013784230ceddb3a0e1aaa8d4e5a7e1d5b32f4df31f2db659002932dc5d2cc2dfa115c2582a3559539abbb534fc83c57cbfa6d1be4408313a8e978e47a5c9db660f49de679696e7035627bc0b8aa8f9ac00f05cfa54f64cc0b079d68cdc9f69b86a93974bacd72587b34d2334e198521ef4ae4e3e881196ff12eda6f6da4c4a701f719e54593b11a9a4fcfa4020215d0dcab7007d451fe4c2714d17328adb36a30402248dfcf033dde53a61420ca9129128388c4fb2c1c7fce71ba1b23b0968f69f58a5aa38bb3a687a41c0839c679c5c3cdc118f99b310ada0bfb0e76179282f18c0a8d004706185c79571f80302f6918bcf4ede1800a670d47d4cb11c4bda14f5ea3cdf79cbe0838d4fa8d9b62ee0da331d08e627da53bbd1b4bb7a5243eee57a6892a3e1bcbad896bd302b4edd68b0b5b7b2f8458a88d479735e738ec19018698f88b2f00587806c7fb67d4f44bb195cc92cbb71406bfedf7c8c3a31774e0b7b06da3b37e772dc44631bf451367f7f33c746c887c578ca2e19a9b1612f58e0248f4eff8dff468c008e0fa021641fb0006aae0a65e839e295ba750820876b8cc2620326b91461838903f3981493c29453f62107fc344d06faa8ac0d67016552ed005a6382b07353bb3b278eb3e19623e896fe8553ce798b4287a3056cac6c0e5baaea7ee44ff31d5f1b4b78553e2a34dd16c02db0eb5a45d1113de7cf9d7bd1cbab02288431ef609a72b216e47a5caee47bf457a484bbb0451ff86d37c52e0bf34bd5abf124e457a088ed057f8314952ddf6af714286577dad1a5adbfc46dac52a3cd0a327b5f2ea90d449940a8a950ae333468d9cd8e79c36725495bec88825081cbee07a625aa25a1dee757edabb490060feeb1265e78045fcac4746f5763e653557717889f60be78f7ec9f23dfe2c3843d0f38e9721d90ec620d22f3d928377d5f740ddaaaf63fdb0a74626bb4b8242378bd845870d742c0f9c32222792aacff37c9248e2f1e092da1e11d905d02d21d5daf41dcca76399511827576f1d7592548a30993da2140057e7fc6b0e140c8011b386abaab6b53620fb45eb28bccd1a4878ada1b70fb18221719958e766177c34b59f2623cd133902e59ae9dbd130849678f12e2786295bf2b2d37968b5ba1f544aa362924867d462d43ac3bf13a85b6779a77d401bd4dfdabbee1fe8efd6b7e7f8ac364cd28b1027f00e5af94486182b562735673883c80fc9aed667e465c0a26e9bfa111fb608db433cc23f5bb90bd6d911134d62bf48c03d896eae6d3a4c02328d697c9f1260b11c32f6bd80be24fac5370a78bbd9f57d9b80c59ac5715f95dc977c5af3742321990380318be4c3df1c52547fe0a2d20067ed8c9f90cecfa77ca2e72b3f25d498a853891c9c5af4e8671017e5a75c511f113ea33b3c82d931922f7109e1e60e003ab87fa54f5c1e5672ce88d57cb394144314d95261dd04d46aa0e88dfc32e8bb15fa39db1dfde9cf7d867415429a989aec3e47dbd3f6d8508627ba61eebe811d725d3a85f489da85f42584ee066f8d1afa909fe0b5506b2afe3fc615600238870323a2685d3d5166bd09c4b87cd6390e910e6d1f314d1b4c4a90fa85c724f818ba48314be2a822c2d4bb5bfbfed6fe19c22f931e272b92f6b7947bed9500d09a40b7a264ead6572e7926b577c56798ae656b838656efae11dc68db0e59d072b8af6018385abf4187a26de5d9ad8e77b83e8f01f8a41df362b1431f74947a674b0f8ccdc6a0bac863330f3f311a95b38637ccc6091bde5db765eed7429127b36f67d2b4bdacf4e7bd721e77e37ae6a51c90ac89a5523e1e0b636b1ffde26abc21d133efe73a5f16c6277d38bee6f98916ef21f87fad2597aee4c432b9f89eccbf9c6b7347a8e6fb41fbdc01c829eb864e86bceaeaef04c95da6ff9a726eadb076fdd24467fd656fcdeba2cb706ba09943538dce13c7887513e6d3107f539ad547015e8e462ec4eecd6bcb7bad83cc17c261ed5b5371c11225ef82dcab9d8928d67511c930fe07e8c467b9248dfe28d0c248f4af9631c8a419f0ae9651df1dcc98e75e2eacbc3e379ced255bc47948bafcc32692d902bccfc4325adf3383f810f2ed03f30919867f6b606bd1858e0de3f8bcafe095aa3bfecb1b9d5b790fa34480c3cef18b73a0690d0dd9ffbe8e17cd24f26ea7432b3e41ccd96cefc92ff87fe8436833ae8fe3f6b7e439e64bb9f57670117ab3ca295bf02172e17c6eb41a4272d38f78040f559f1bea11fcd982e4574a33929f217d3aa8eda1e3a8cee920e9603deabaad6ec9f4a5a90fbe6ec05c2c1c0698d127d1a347aa5fed7ebef96901933ec4dfb1cfc379baaa5a7e97d51f6a33e0616f7a4eefd8568f3c9cf92edb9d4c8b24e5eec158642ceb91cb92e3b2526ecfcc1f8ce8f5639ddceb9a52a2da5b193d941777b5870565534f4f3c96873aee1ffff0dc86cefd859a7350431dba1a0b51237319a2e73a1f5466e69d2eaaf6d2701aa0f2f8f795c8737707a39978d1771f05e2b2ca4f439be6cf3f18ada7246c9a033da6d0b7dc172a2d94c1ff90807c49c24ffc97c58be072c87dbd71f4828332badc891f5e43d6ffffdcd8613923dc82e98adb1bda3e74dbd543ae24a8b33a5d2fb468df787ad7c0372566af76ce77b8a18cda361cba5a58c1fa792ca4660f29c9b5270e2136956f0ec1f9b672f589a06bc580ac09a5ecace20788c45763b3af1492f5d3f8a2d5d9599f0e94bd2e8eb48af211ac9401b59bcf12e914473e3eadeed7757a1a6bc5eb7413cb91bb4f1406023b6aab1fd5cfa8843e4dfa74028f506bd7133d962f0a313ab768877f414e7d585d9743f4198642d787fe40114b92a2e25957a8d14b8d8f0a5f005a945b997ff163962aa7e66071e6e3787e184a9eace9b4c775dd1e87117e033a8e8ba9e7dd47f9b7bf4e40da22ecff3f514a1bff8b930a94b80f8aaa47adb74574a7fd396b8572a97721bd3ab82edd37c2cda4225d6b3d84cc92f6fdafc6b1b1df1807089f3ffada80392f9bcc858af3cf22b1c9aada7bb6f2add61131c3a71c1df7aa47e3127207484dd99cbcbc98a08e08f30cd109fb26a41f8c8efc52acdba3224f68bf8ab7960b064d7bee73bef5c57dc7b9fe5b8e5d28d63694ba7a80d98c460a21f9d5438b8cf13f154310d9fa81a753bbc07f87413479c775464bc7da04d71df6dc18bf1ea9e63a52a23b15665fb7db86f7e34172d98f735b9b819bb96186ea68338b785f79ac19d0a55cbcaff41fad7f1307b70afd42ac736d7cd7e419be55347fad6806da380859fe56caa3fd42ed33244f6f1ba69ee37f3b8decd32e55b681dec7b8379a0e9eef8f74e0715dfecf194eab99e6f06e519484c5d8029039b5c4a192171159230b045594415a22daa230a8a174c6a2ef5b29278040212c6420ea78c81b2f37cb8d783e2c8e10bcf72e977f137d2ba47ac00f263b2c0fcea7bcbf7ce432221e655cdc3e16b074a54321f9d105c5722e9effacfcacae6d5a4697c531aeee59cf43604510c34b2cf8d0ce43fc54c14081963c73a35add148b4d91fb02a1ca077fca2b2fb453405d67ec3a039cdfb976e66e3df22c5c99cb9955ae5dc909610056f6865e2c50dbe4bfe7efa080292dfd2f2a3e2714efdc7782c2253759f3b91bdd4809421f72c1e5bc66209b92141ce7c7bf1724ed7f881db00ca6822d74e6e99fdc7a7b44f9a81503b238ec5f2f6321b33c0ab60b60d34c13b9a2da13c68ed218758fb3f21d67661d773faacea51cef787988c4cef6aef7cd89ac626b063639aba1a466a53b890f63345b0d197cd7ca36343d12ef314dacf3e02e1a236d1121add527a070b69c49fb5775e4205ebc274428bbd515faf1331de54a05245ff5f402be9c6aef3a050ea79d2b87d93e1a8850124d2606800b23049981afdeb2deb9b8d292038b49f05d1c6e33a053a289a8f0aea24a3730896658e8ad894ba76d42b9412d1def126b6944330b6a44396d5e76d2462b7469a3cbe8d656981e698720fbc8586b6ca054c3912f389b8f6c44625c2a5e60ae3a9ed5589ce312e595d7bad275bd80f4cc938e98581619e341d37ba95b6f5db5bb7a5acf358468ccbf12a0aba706def5e399c3985bba83738af3f314001c028cea1a9e9b30abf945041f466bfcae3311be08d2f707ce6441a16b600a0b202f66716c80fc005eb57f84a448a0f6ef6679e98db057f0d7dcbd1e5277fba562a62c990768d29de489588046658d37fd71d8df2bd81d2467aa030b209c5ba5a4cce0991e5cdc9bd2e3a9ae3e9eec7de8e0af674a0c2ab3da856bd133738d27c30534a6f4ffa42da9a61633e5b99e425095c6994fbbaf54adc29c1bfecc265275e7a5671a308ae7123d10c55585d5acdae1bf9eadcdb9074f374dfe1c6a1958ca3b98e50bc21459bf9a70b91a4329e03708ce20cc06cf3ef27bbedf7054cb94fb30bfab9285dac24f4fc5099a9c75847571c92f1d818a7f75edf25c15c40ee5fb7c064761954e9de443ffe5e7aefdf10d0cc2b3bde4fed1dbf8b9aab6ef314faf2470043b4a08a53bba91143eff046c7ece2cf27dbb5e434c847330b334abefee0f7e776377fdbddc9f9627837d1cd8efacb33ee83776c1d4606896df901c69fbe4a66fa1bb6f0ce7580f663c2e837e0bd57f7dbed2dbccf11e9878010aa18de483b903c1d78d52ed418c822f55867718e80924c8308568f685812c330d4dbde85c15efeaa5fcf84db10e5c041105ed611453a152c5f6718fca9fb058d0b77062d6d8b3a07baa67800c55b4a9761870b98831be0d3562a7789c59c839c0854171cb1ce1495d534024185005a4e556a388bcb51be5d0775489b7ecc889f15ae361e57aeaee502ddc6cb1ca024cd57bc23bd66af0698d1bedde42a4c4766535a2d8c8e86437ef53e394cb82d0c8418b5eb5b5ccdb4eff6ee751d0543ce4a9c725bdddacf7ecf971ef8715d1db106fee9d683ec6f22ef71172d4ed7f65eae0ce2b91152f4c9681452707553a64d1f38586398452cbb155902f99a1a1c5c527caafbb57c05c45c6172b1702fc732d645c279780e11d82d62e4ae47b55f4cd62d78492fab335abe0342e269d83e26a59d3b027f96a5c1d36048d22856234d2433f89829eae88257c48f9c1030e6bbcec2f893967dcdcbda74d25a738c8035dc3b55d7f32e1f09e551e2151eba527b01709a300e0579f7ba034f8a37a8e90404df5fc1b2da8a449d5a51b6f85b787c936cbb3751a1c4ce0049875cc836c274201daac2846575ad5207112e05524c44d773a81aee03d675b6879fc621c1f4bef32d5df902ae1f8e8624ffd80803ddc86d469bf02762fb3d6d457afb855026b8b0ca8cac91246cfec1deda7a939168f8ff14119b504317ea2865f04e081bd897d6a4d10297abe36aebcb855809d2cfae2101d7e7775f5cf274613f66865db5b9a132eb7de366c0fef85db48e4a2499e761bdaf43951da6ad1b577d38b8d133b5a621caab45760ea7007aa9af9a32c1a1f9c05e18f313c05b9c002622b1c696019fc01e49e4209a0b84e4218c94817a084370899c6240223a0af980c52a8442ad00d18964169c408e2112d8701e447460287a1e23ebb1420248717143ea3120410c623501613a4600aea23849d8c44214af102916f401a3062fa0ac8220d45a8321d606119974680285ea2b2982104a35837319844a41651841f80bc4692c122d055941c51680295d1050e8fa124a248711197c10c3230657508c14da60be192b69619e486b3cd126d3566a38a2d9bd750583353ad44d488fee7cec4cc2b00a112ad2c3d20e1332d91502471102e9b61680128af9728bc4948294e29ce40c96940327084e92b403e69a8c456420f78b80c4b4a0441dc84cbcc0c42704aeb25164e12d28b52886b10321a930c38323a8a934b1a5a2295d0cf741a89c848b510844f03ce384d9a4ce52e3b87a023394f208250568f802041898ce28ec41a1ada8f4ffc1ffd3343e0ce8b3958e42ee2d416b8944d0e4523425802a574e5c8f0096a22c88c8c9f9cc91e710aca95d02276f8398b24c670d49161e27ebbc45d5953936d9ce76871145d75006db9d39c0f570ac337574f07ad9df7b3c3f39b876c4b90a63dd942d642448e9e1ab4528b673a9a5ca22e3617ef3a729b6d4c83c902f329907949f8a0e244e9759632802c476ed6e6a12c1bb71709366930e381ac6ba811cef870c87338ef7f5a8d5f2a1a336038d77e2c90e77fe7a10bc0ff040c61a53be4ce9cc14a7ffd4deacf1759bdec73a07f5031f65d2d8f5fb49a6186fab17134fed2f99da23c3ef947b97566c55346fa1dcb39683baa04cbe5edf753480e2ac79df58823dd8ca3a9c79015ba398cd1177193cea8553b90fb815eca60ea49ffafd36e22688af5b7e5d1e8a295d0f69ddaeb27ee209339e509969acfc3aa59b6393e24264f373e236c6dde129d51b4a6db43f361f161c0ae8bf5410267c2331cf3cd74f0b9d0a34cb8baf418fa32c7808903eeecba8fe69d92f62ec5765f17171cfc5e23f2eabcde7b8b85b9cabe661171dda638810d1cf143de05b6bb0752ac5b206ef749c3c9a05bfe06d8bbc56c5c49f1a07d6f45fc4c2fd41d1578ec386fe4037a93749d4792332a900fa7d984a37b534c1b36c03f268cf1b3d8a82e234025828e1da55fa1eed05ee7f22cd76addd7cd628b961b57e15e5b21e0aa1f6369f5c03360db22fcb3203a5c8b8a76053a7f4f71c7115b27474e50c7846ae7d50b635f64774dcf5d15b460c1d86051d1864715c0a35b718c553f1af01ed8742e4711429082f0c56d0536ea62f6b5b1e53f8a7e600bd95c0c9d4b8cf46df742772129325255500060c83ff3f6e0f8657e0a716906b7396e1b7fe46222e9fd263a2e69368aa340ad897c3d963635da2b0c601fde5aaa6dcac4969d7f79e72c3b12a491e61a0ea0972c9b0d6e91d4090e0f32eba3b0842c4819940cced45433b0fc9b9cf07ad2323eea02b70acc28690cc46d3253f46b0d5d47501b5c5f7668560ae199f30b5204e89f268dfdc204284d75466de2a84e28a33c3114a88941a1e08bd472950245a60a40d229b2ff8815b27f9ac5f9956bfc8817cca25fbbb484610d152b52c8b8f22919aeffe48cf597a64dfdc206642d6d73d50d71c95b8102473256854356e91893d46d2f76d057ed3657f06094bc02a8792457f6b02f7cfccab758fa40066adfa4fa872080755740564209c42b830ce9e07821044c09479542205a58871892a786b8cb21013ddc5c106129e26e49c44413ab2b8a5caa88b62c52ac8b0b84113c65dcaa3482d5c6bac491983ae2238f1cf471ba40024721b725125f8d2c5824a957491c3249ad4e6e144a2028e538a9444b2b6b88255f6a89442e59d4cb05c1049362ae904ce09a59976892564d8c6493bb6eceb67082a18ce6514d808556e842bde1e496e345eb83fbff2af2071dcf72a37c7f8124305c5e276489789cf768608b37dd1dea9a66ec0fcf4ba55b26669bf2bdd958a84fbea0ff4a7b5f20db3e415a83b59f18eb41c7a26830cad58e52f6cca5d7a8c7b5881409f9f8c8a8b326c0ea40d3beef58ee441747ca88f9e313e11656ad185b5e668655840fbc4b330a10073f26779fc418d7f2ea1d676e343792dc3417250e170048f834d3a86b5e4be26ea1a77c350f7a7678e36b3bc2171cdc9685441d3d079122aa5ded316337d6ddf01239a436d20ce817f4fabf8d26dc006fe873f060fef6b61d1e3f9c87cfc6b23e2a2c2ae42e2e13024519b04a4d36e6b0e01a0f73e198063876e3edd4e66cb854594e0063fcf571ef9aa3b2d3e3c99a6259f7390cac612056a7f790e18a21d0adc365864da8a3a10f863e32f4f9f61897ade73234167e97b1bc69b8893b0e3bca156a04948f8020789d784bde623409d2d7401b0c7032a20481437a1da0dae4afaa378b9e724559ea0e5567f4fb30bc40db81aece2211be34e322d596556b6a4b8df098f51681ce277d2c7d9d6a8581babed73f2191ee1294b690b6fa7078034acc2bf00000cfc49e40c7bf64f3b81419e2f252e15b8777d983140a8eb4da079c1759d596e009602ff7ba0055d31d7fccbce52ab61dbc4440518b131351f0de147d6fe8157fc816e85ecfc9561218eef7f2c85fc844b618b403eac64878235847bbef67e8183d67ff8035535b2187ccb5d64819ba9c3cb44e83b4425b198f95b50b659ac4d8ecb4469fd8dfa77733d937974939692c50689e4f189d18e661486f4a73746cd1476c65169f48950b265baac243a62e121b1737b8bd121b10d579d94161130a5c7df24063ba8fae403777d22905523f0a210b991247a6283e096d999e40b3f2a936225a28aff1c7b8cea02e716ab4a895207b5806419fbbc0041637b773346265849dc913a430603a140ca492e98ed82e4808c221d84513af6124d914afaf4f469357ea9c68ad26fc93dd7930bafca012adde566b077605d77a70ce0b82fc644d9bab45be28d2d9a63a0a87d50706a860a9111e2dd1b213207d057c514e9bb678bd6aee15045d5aafadb6905b0bb9a910333be412a1225e7bea0429dea9676e4591abbe146359c058b80392a07e1df2ba95bf6f11b30f8b8010f77a469a9b407716452d4eb962fb75a833218841aa3b8c74da97abe7648a96c510be9f2125ecf6f4e765be3460372d9f9d813ed91e1ea813df194dda484d4dfbb05180bac4ab37250ea06b171568cb23fbcd74923a400242d07d119447f1d446e288df76bb967a6f04c7d837dc128c63acd1246e2a5e25eb6d7a516186b306b9afa5fb7c7fd46fc43e6eceaa7d6566dd20d0782836d23410803917e805b89da30024dbdcb0ab0104daaf9c1681c571cbfe6fecc30324011f60ce8851f8bfa43c5b03ff5a9aff5adeb0552b5fba6634bd50e0f07fe6818def32b644a3d20322037d907c61f3a61c316dea35ea62bd154e6800def208e7bb0143905481f702b3c5f8055d043728774745f90ed3970d525a38ddfd4551629ab6e2f38953bfb6ce40cb7ada7ba652884b8dde0af9c6fbf5bbdee2a2e6222e16785cbbbb2b99fef10dca89b5f47ba0ad1c3d47d609d7c6fb80d5df3cc503174276585cd0d47ef7cc777c69c4546d88bf9050fdce05aa36c2d4c57d0a5d8ca69bcf9e130be799ad336b971f7974a3a714d983ecf02e2017349488b1b2d35de684ae0088d8d359935327f19c48b94cb405330bb5f655eed47253cec1207f58a27aa047f6b5246114e0b855b3f0baebf11e1045741a32413bd53147e9780eb72a04c5dceb3711f2276f3674d52ee3fcfe238e32e6420fa87408fe1f956f2e7cbacfef979f7b5b98fadf8bd4dc1fdb24daf747d96ae4fc5d9aa4b4fbc83a1e708bae164edb2b1ed09ad387eb0b9839a7682390412c5a2439091fd43b317d78dfacb0e698b504ad32eac3f12b8867faa588f7b2841ee7c98bb0d075f557c530e8de2c9641aefb577b2a2c5f31188f595546c7cfe6f52e290aa701d78500a02326ef7901d78340fa054d73f86a970e7cc5d853fae54980217f66889ffb18888feb9abf6d8a8a19f302896fb83c4eec0386134ab47c0f716176b2f0e864ac8d3ee97d93af84d9130dbf4b281ddec1fbc0aaaaa345079f97198660437c8ba4d7ba80cea5aab178c1dcf00d725542961150e7a9612c16248e44429681ae1f41487f84c7afe7ab63211d3506ab9bd606da496125e93d7dc460d0a7b6e9a14e7489cfb31a14152dcd39fd520c6b62c8427fad3b1604af6ea8631a8185f3fdede488a3fbaed77badd27dc5d7334e43f104707eda89a79a53cd3467cf4e4c37db9bb4109ae6f38c17f9ea7ea11613e4ca531e3b4fbcf93b8f14720e014e84f29036dd9cf86e392312e67d1b489803263904ba76c31a1fac959c10cf2e98f3ff0ddd651bcec4898da3d43bf64d46f83623ff1dea8660ee6c2cba139cb7ed31a5ceae49a5dddaf94c7eb188687402db583bd2e685c92f9f763a713b8cbbc633190028bb3d1b2af9cd4ae42361dc7bd4290fcc6bd023065e6c2587e29e0a4bf7c46e7f1c356d9dbaf1241b76bad0017fd691ae88de05cff31d1335e3ed146476e8385d3b83f5d16e2bafd2799ee76eb9b1667af6f54b98fafd0a9d5cb144045b870f1298fc62c46e414da512aab13d7287100cc10bfd1104c1ad75f59b3f98950cce8c5935efaef8cbe3fac8e56d000c0321e7ee938402ea9174ec3cbdc42b3910edce9a3e8356fd6034feaa7c98bb70064b0807198e8ceedabcf764e08184ec75adc78ecf671de43369c7bf335823d7cec596c79ad0cbecd8c56ad53206bd8c45b5d78eecef3507b98b37d6dfff8f81ade54156ee8062eafca429bb4d23828e260001092e0ab496bbb1fc78a33861486c0243d6f077c7c6617ce9e9fbcfc81d7c7b27a279236388bdc13e8b030c6397d48e31f05e859cff8248f08ef8c17a1e69e8a0fe12cc4a3d3ccb980d545a4ad7354d0c8ccb9c853bfa73477745782411e54a478e080ae549a0959b681231945fc860cacaa7da0ed0b1770046c2bfa5cecd555ec894435458cd02738f2d32639f649ff5026464f67ffacb7584417106f762314bcaa472e07f2a5cbc2bb7b03dcf39d13ea7b5749ce1a632147805435d50ebbd2965391eef59f064b7ce8db5c32fe38a7ff4306504056af9fcb3f212e656f7b80e873f4c35bfa47fac40b8558577cad5ddb17623f9c963cd4857d3e93f28f7d5e1ef1aba25f872c284f62f917ed0d7d97d40cb3701b88fb63710f173551b31b66c9121c5558302b6567cacd354d691bce5854128f0a62c96d6cdcdf911f069adad74c154d5df663f19a9bcca16c1877cbec11e4a22986659ca60adf9055141873487a115c30eb5f30b931436cd9abced3376e4cb74a07324757299057b2298da6ddb313dfdec0ac64ac8ae3366ce2212250fb64139c5256f029bd6eba925b251fe577b3883d33378906bb4651965ae4ebbc145d86a378b73d5963ac901290da40b73e265fd7ad594ea48e74300052900345a6836040b45e55d40d603459b3d25f08d74c05de576075ade6271361dff757ea61b46259eed97bb1ae6a5c1e37693ce68ea999f67ce3b60e4dfa3ae1ec0820b9882d33014b341cfc5cbd10ec3e217055477f10b98d0dde2a2713e8c7eb04dfc7f851c3ec5d816f0ca53e18920eb1fc9281a18767b42d420ba438d77af5494374954d2be885572a9d7453abdff71ed218696114c47b544677e57cf50b6960461b27bb628ef8c6b37d08f61fc78748d0d8fa3a66012ee24fd403cc1eff0daacec41cf64fddbe95acf19738a75245f41f815a9415a813e6451a7486f9b3df0a150d52f9544db4537db82105d47c55f51226655004f1d4c7ecd01d0086cec9d85f1e00667c1e54b69537d91877b36a6b563a8bc33f13432f7bf780eda46fa6d854f4bb0fa543cf40d9dfb091e9663bfd78522a9c7ca58caa36fe298013a48cf033eed60d1188ec797957a6903e459737b52db46c0e594f6757ab5a01927769b2edf24cf8eb45b97545726a33b9814b9d01993ddfaffa6b01d10a02293f3d53a61cc05498c7ad087d5743e8cbc3b566cb3b4deca277eed7660b46b7b3481ec9eb6362d532c5f88a0ed05336441727f8e9e9917b7ec525df587930b43e9d4a08667be9754db97360c3d4d148e8fcf39c07ba7453285de4ae7e4731014b9db47c66ef46dcf91c3dfbd011bc67568d2661e415e2b96830a8be9f91f59b8cf0dd3fbae925af531e86eacba66793f2399a68016fea8f586ece0b5121792b5439ba42d09c489f1c06576f784dc487ab02d5d2b0c6221bb8557633641d9e27923f6f682a6b506e78a08f5bc8becc6381f8c52f7ec17dd0b36a9be768fb811fb600a9ce246d829b527eab774f3a857e5b87f28c9f67a0fe190100af22dc230f97b26c3923390f758ae5ef1ad05c987210cdc65b47e096847581fb2a9979977ca7666d407627157bf06cead4dd6fbc856d8ec54862ec9d2950751a5a1e479602c4d557496fe979ba52878e5842a02aed9ad1dbbf745d97fe1bd5ee1f72efa6d65f77a56c3ac6d42bbc01c4fd5504773124bd7b9e595f808d028b3c7c60ecd4b5a208d158474b6bcc8fbdc61b6bcdc0fc6230ad81f75b93c4bb5d30d73402abd212d9392c2a1b3ef733d9bbc2c1324fb3c98f72ace60a7f8f4622c1771de46e80d87342da6927060f593d4f7101b1895593a796efdf00ab1e41f02e76c0161e2cde8a60357149f179e6327ad5b0cfbf16ab5b78a44745909e8f7c7aff3c449e4183c844e75d345b8a16193ab847c645a61e415247ee41114aa88082124650a8987c8899884838b2a885c9e4d34a3bbb2bdc994704946b2db383a3f77afd48d6310a6b920315f719773ae310bbaf86d2ad87443d9f356a9b06ce3524f41760afc718f3294fcb163d8a0fa66291ff3565eada10776202e08060a1efa25b2e49e7faf3c676cd3490bc901f42939779fee0c6b369dfd1841e9236589f44c78a44a45fda4bf6864dcb2b0de8dbdd2ae00b765041d59bbe94682d6aea7687b94b98a968843c10f854b92fa9048656e88d1fee766c771a7f98d083908f3764baf9cc564fa834331d0fddf5c106e28d4c27651ee7699cd6741f55481e1d0b56ed27299c8e833819a615974171703abc57b392ad7ba36c0b0f42e90e6d3122c607f7d2e5e21f56189545b0c3c0ffeac3611e3a05fed982c87dd9533b2e5a0bd50b028e8148d23bddb950e3130b6a3a0eb93b7a68644d344244fba0d7acc7c83cbba7b7db963f835e00172c7be9f920a755cca73149ad2b3f04ef2a62964f4c32a84e40e8e262024274c7a3f305e0d5c8150682aeddf77b1b4189c9310410c4e1c9343ad19cc42f771a5c3baab59d2c500e1a7a22a87ccc270fd37dd00a2b2ab4347fe29f67701226d60eb009f7f012e93f6d656d612a60f4f6d767582a5784c8aa40ecc16a76458825e9816f1e967c42fc854282752d9976ad7fcc1e455c13b3381c9e03c650b4555836a373767dda2db4141d757bc9fdb66124272af38e2f8729998a6cd2fe095734f37c4b5aa2d09abd966cf6a70138cf7c664423f25efc5b479c986360e42561e87912940fd662700eb8e422c08d7f04ed8e6b89b31858142017d553ff66a0875a9b8476605fd9bf87f5e64d3d84c5a92abced709a6826a3820a97a6c9b1042bf4c36fbff3877b3e1331c70853b0943c15b07c13b58b54f65508aabf775cc3134c23238eac2820ee6488068d63d5bb2ce21dba4ff04f0458eebcd24176afa04a2977a3d9416141cfef94b05052666205972bd893e24852838f34421bbfc320e5501bd389fde4ca6611fc0de13bad0670093d4d171cd6dd89ca9a247f8ae15d41f3cc6489328d21c83cbc5b59ac916ca649d9754a7189d278f925802ef8099401018a2451160e09ba95f8c15273c7cd80ec5a99e3d3f1707a6f0ae6ec4c91ae7b49ad77c4c9c0035bf2d93be638196d883b941cfa910f5b255d26b21a306926ef19aed64169178ee285d053d84ebe5a64f23c9082174d05152e61e48ddb4b60f63a5adf41452dabbe252532b88a3e01318322c70e7e335dcc8f08b23b58461a09dbca87dd2e2afadfdc6eae4515f4348ef1967a0a20e4acfd113132fecfae006ef37a5a0913fc89e07c7b370c7cb1458537cabfec0ed217fbab1b03b210402f68adf9790a84202e3d789517687c7ff1c8839f3877b79d1f848962e1914abaf03a717e1bf12d0a3b20388070c41973f7a648b4fca8f7b7ebe70df51e57e06857f0c2da7ea8746c830b63ff92f5030e3db9c550c36d64e97318ff0b7aefc10d22435e9c0cc3a5f7bdb804e0d0195ce67864ef876b6b5678ee0bd96052a53f49b8d39e3cc69cb58968f0ab6e80a927758e4328002fd111c09ed261e3a766769aee66d483cf2e02e7795bd12a3b3a300099e1df09a1c78171980fe4c0e7734c6d3313e51ee6baf29390a1d730fe74d1553ad63c335f314bba190568346aa968151fefb5ba675940c170db83293926ecd182009ce01fb1013baff1c1ea4e5b723d7aefce71a117e4f2cbb9b9748b6df46d6ec100626f7591f75876bb0a3b158f0f14472eebabb6e638877a8098056a94f9f0cb9d227b51228be9bd01356130c89c6a5679820597e33abb472f522ab45e19d5e4f911a21a2b9301bbdf302d8788a7be347527ed2ba58705b8cb973031476c8261fd8219c981265fe2169020f45b2f5e06fd033cb0fbd27b0d93f978aef9982da6754add3c6e907d91e9569100e327daa7f5a92d9236856747dae1c35ba028239d0c782b72c07cf7799a57dd70d8551e4254346f81c4ed0210e058623489e304a9e13f3b880b2401664b2d4055c4cc3c74424dc6812fc6b81cc06408116ae59cdab9606c39c348ff970f0d671205d112584114078557cc03d3bd1acadd01cd7e74bd51823db71f5afc9d12753a85c0f8fd8dd9711a5cbf5309712b598cabbd5f789345127b280e973600c896cb17e94eb8dbb7a3a11242685bc5d321bbc2f65b052838eef9f69e238eee3035b054ca72c22a254938fb76195cb1d8756bcc4703019e6801cd47332e0c650dae2101962e0462ca57d71e3ea4a77ae05914da77101d7e383d591aae1a6314e33ff10e568171ee3b60bc6ee6d9a6a6b9306015c03fc37a20b5c65e91d8eac1ac3b3593f0a633f0f434a76f9344509402f0815dbc93e89836aa5c1a7c854e4503007533f5e7660b07a12803d718ba4da8974714f4fadaf0ffc89e60f1ea0174be4e4fd9521a09318a0fecd0b43e2ee8468aa04484e2092ca194acb18681b6dd84acc87f0c5e1fb2b0310713b290b0d373f393df2f024a1c7e0c185809f0f21723388ae15526c5daa7d8a6c471c83459c0f41ceec84677e09ea49a789c832bc2542c933a214215a121ac491e43e80d669f9fa8aca0d42f2cc2043f9fd1349e76678ce6f79eb3eaf961fb83ea307f7ddb032ca874baa40f4be73f6ec87b1712566df8b1cbfe5591628a7012c5096d383735412c42311a93482f956f1d74ee4458deb6e1d3dc3547dd472cbf3a075c1c82831ee84aaafe1dc246343d264b34dd236b71786ca2de103ad505aa5253c679fc9407c0b93c64b1cf2ce50d7c7f2c0d5e14f73e1bc03b14800fd18ece040bc2e03b6436b6377d8a528707882042aae2562c04ac7256bb8171b23b8fd15bedca50862c9d9574388cc99f0e4003ffe65d3852e1fc6a836528fde6b98743c34e58210f8667a88212d93ea66ce128b1eba292ddb22fb90e97c92049fe25574d2812f8392e60b37b6624d8e47da2dd0343a66a9e2a6bc2e4710f6fd457b0e15b8c0aa2f11d966bf95a61b8e58bd1d4501094f1a63253fd5ac588b4d51e0cbdb580cbd1381f1dc702ed677324f95a561f6031bc46e14c79767408012f93e1f17813816cb1bde16f1113a6d6b6de6acbc8b868aeccd98c8d86b60b357841fbf28cabcaf94b565ed5804fd5954d33c6ec6ca0885819f5ed47a31e8ae582c147492e7550306ea8836d0681ab6b3c32d624e9db32c4cfe6d01d246cf0217271bada4a7fb655c853528ff28ac56b414b8fa0508a43d97618ddd92a342f2ea69794cde3cf75973467804f5cb76d9e2ec2888a19e95b2ef0a09f64f2ca961fb88e0b3989c80dee10b443587e336ed6ec55bf175cf254db5eef3eaee5e5771bbf06e39fe4f6bded6ee365a621540d978c3b21ed6f71b5ef6df29ca3d33ca21ef108dd4ab835825367fdcee65edb17345c67950ee205ae44a1ba4b79c5b02a4654f437fb44c98626ba9b8ccad75bdf53cfbd0ced33060eae8fb79c2770b927564673c3a93643b38163d6b72d2d98167041b261f9bbbcf1bfca69ffc5c5ed26591b9d08e6e954e21299ddc7d11df47fafdea3c5a78a7677c4b9b046acb8d1bfc430d3560bba314d9a73aba9af562eed567c2ce75c5463f52a1add4bff28dbbd42857623f7bb7326997517004c13243bc0ee255084d2546914423f6d68fccd6201339983c3a56a0acf386bcf557ab594ad22e28eb56b08fd98a90a407a443d067775ef833aaf4cb7743dd91934bc8bd9a5d17cfd24587f51a0844304bbc98ee6cd5b5e858b0344bfd16ade640d9ebc1570f7f9602da052dfe997bbb9d99bc1ed51c2b636a2424ef415530562042483a06771d180a1110f7b8267589722ec4f5c0a2739f0364fc926239285a2da0f6bdc3b504114175e0c34e29673a84c05808addc3a4e48f8391d2969d50acf0a17c829a353e8276dc70148a24063f35fd0483ae3e13649007ec8c29535c675021c6f8ce9e091e0f12f7ed311d82accd0b7279e49cc6878d1184920f781a499806572d443eb9475397e4362932811b20a1b1b819b80d4ef98603bba038e2a2677616f8087d1832125e0ec38304c04277efcdac7a837c40f3284a83a2ddd956327e9f4e46a8284ab6d3b75f47c66f6a5a82acf40d15f6f9d046c28f4a8c1c408f6c6c7664426491facdc371bd4a66f008967efbd8262c43541d50088dc2943e0a99ceaa94b86be84f6ac4f61605c5e6ef8d4203f316035376ce9aed32b921fab07b3cd97ba1e0054f4cfee742d14463f1c7b000577891c42e3d0d159a71ca82ebb0b6579d769d72e0ec4a9017881b60c4e1c25f2c873cdf9df4f2c689db1687eb05b8dca1779c69bf0786f2abd441a78716209c7c9b8438b2d23ff3b4aecc7acef3eb3f6d6348e257098574f174e54c47f48677a4b53f7cbb65b58fcd4f2de739807da7e0d2049ccf7203f13a7869d490a4f70c32a9b13cba0b1fed31227b0ba49afcff23f1f468d26b5f6a8dfc61d679cc7a12e831382cf23519911d13a5b90f27c08d9d9b2741dad88417fae4ca694dfce0e7cfe0980e8cb980249c71d880c830704b9bea742c45344aaf6764124508b113db8115d6166c527425ad214e3ef4836638966b58742ad85750bc17ade634b6057054d88099c0106405bbc0dbabfa36039de592621e1167b9b895ddd32e7a1420d55c88aa7c656003023ea3d485396464d4caa7eab6358a833a44645d3e1a01b4eb6c2b1083dccb7a46e52f05ad9df8eb944e09ad636755cc3301b1d4226889dad1a4db85a47d39ee9c73471238238090c3afa8e2b47b54c6de0dcc76a9903ffa12c060b3b1f818b6c3c4f12bb6411a65685a9b0e889e1104dc1364a860450ae8612d73b712f4796f6f08c20cbb3071b7c38064753c66a07360f1c7f2ecab67387dc9f9a40fa9aeb904c2d464717860cd0b19b5cdc0c234104144f43709f022c19aafbb3e1c53abc083492412131c59869a92f68cb842948d9688e492b823a5ec453deabf93a8cf63cbbdec4c3d08f1e1770785271a8dfd0bd3a5aa6d04eded1956c8123913d147f8812105939ab4dd2b80141f80cc0422c759a994c3db115398ff803a270662588f6a23c5718bde38e9f0bc1767d5a279e101fb35c70ab30d8e84b504355ce1bc89af23fd369c23d6066d9b2234edf2c759ad69a31cd8204104cbd1b3e848bf5129af3e6f0116adfac93b188a8c97f41057c03035d555deebcb3ec29c4631d3e6be89f316a1f6f323f530c55784762fedf40ac3be4ff6dac9a7182dbbb66c73e74f893c25528db3d520227f21c147c10df9a2824ea3808f76ba25e36ca06a789b912db33cdcb59cff3bbbfaf9192b7d7748ce7ce6fe61cf2cdea914e1e38ee6a7070ae151d3aa94d86345012b173d172d51c41a82e7eb49ea7fb501f72f277dff1956be74d0b090d323d38240575d8ce9723c4cc9dcf11b0ce983221b86f4c7982d9e08b866cffbeeca58b16e472fdfff4daa0cb82973622daf1a5ed71fc3f3b90b66fa1c7caf2eb31c5cbbb7bb35ae2b8ba179ed05c9425505a8d6ea169bed39e91d75ff04174a2611f62a372a345d84f94d5d052c64ac19adefb9c0928355e8909b432e8fd84fd0e239a90454ebcf5b6cc8912abfa9543592d516f3b76f1ce67e335e63cae5b5e29ba731beb618de38c5d3fd6717c9646515e9d5031d05d98c1b5f55e899accc56e4080de313327a3c6e8035f0780ef37b98bf7a4cd5257d86eafcca00638e43983b679adc653f8c7e746ed9ff59afa37f64b2fd2f9af8004f209cb400a94aa92e6e9df9fd18d03c05e8086f48fd306f94d76ec3ae8e08f5befbae28fce42b6faf48ee786d6a404475fa53b362a3350b893788d44c4e3351a36cf6f40f88954793240b03bdfd2078cca5cf341c1a8359771448fadf4fcef5e04157dc528f281f5fca30e58e1701f2b280f7d9c1d1607e3a62a3ed462960fe47802ad8a8fce04e719fe0567c298163280c059472efa33c04acb53ec506628f144dc3a8fbe72adf0d4b214aab14b5b3274167472a95b494242af20070d09c9c0b8b08efca65c65f37dc6d276322d3c2ebb5c8fb7b5ced251a4513b4ab889bd72c36309e46e4e3a60e2754ee8c525db0cb0c7fdc1038a677934675d164ae66511a4834904f595ec39ecab04ca5fa02c36f59216b715da10cbcc3aaaca09ad25022faad87abfea3d885ea68909252a5fe8fe39aae1fc394905fb91302af950c2a228544d664e8a173417d5c484bc402f69b9e3a3abf3fa74bb1b7b0eb6c8ab0b90d8065236d971429ef382e68d6194d71d4dd8345ce3a22e5dc14ebbf7d402c59c6bdff5d7d94861a814b2ee7d9f6b19b54fae2bb792a3c52abf736ce4cdd266da0f1807d4aa0b50da34001373c03a8d9673bf3e10bd8c630e97730a38de32b4cf15766757044d7642168419dc12dd4285d62b1ea4f00bd133b16d48fb5d81e10ab8b1109e0b2574430b4be463ca66b4ac08471b877122ecbf661de113a95c6982af38edf8bb5ff7635da62712a718c700b7a382c3c63ef2cc0ea10ae2fb8a4761323186f24669296332ec1597d97387293ecaf0fa573813766d57f5f2675d9e32527771dac4ba1a891412266386ae32cd697aee4659076d00821234e193e688a6a973627f1a4e3fa90a5181c434152aa9fa60156d5e053bcf6316c2a688cc9f42c2a155dc12a5668504bbf863dbd3d9002c2a94a5aadf139489531203c46302bcd68a72f2b66aa56326a39c863402df8d46c0201220595950d1f96e101a153d71d89f72b5ce35a404e8444dcc3d0b4eee189670f44626c72e535f5c5229cb5f3223d4ad01a8df72c847a32c5e624615d6e24c4896e0baa0e5149cae14b8b0197bd9c0d53993062959d664a6d6c24126ea1b9d2c9c97da4d04e09119a6037dfc48279550321ab7c7d777f31c2e9326ed5aa2d2de2f144ad1b26521d89c56329202f623ffda1ee87ce8fc373a7e41a2bd9f02c9e232648abb229c99416c330e0f6ca10fa189f0e10a7eca663845608317b34421f4bbfb44524a68a9c9ad007d0b7c3bed115efa4d268834bdd6446721d60e5c9ebef44264ad4c57d7ef20b8751e90c8421b5a0bc3c2262e1324b71ada9903dcbf10f90590689262e4c0fa282f24673ba4333467a8bd176408f67b00a3c16696ddf69de72ce428b272fd60f086290d670812506d4353264d0e0a5340ad411862d2bac1a3980220cbcdf3390bafd861617b8f70c66eda6928148d843681df576c1116821a5cab3ed6767adf29b723415ba361f7cd4318a9bfea7161253c25fb3254bb88b372659f4d0b9179f48668ca495b99bad48fa4fbc176e1db55c03631d0dc6b17033f3db4b5ea758ab8eb4651e004911f22505679d2c8a1676f97e3b993d665548c01ab42dcf78ed0b93bc4fe74c387bd31fc0409ccc3739d3bc5cb15a34dabbb566c9d570e3d0d1c24ee3f56d743cc0439ac071dbffc491f4c5255834938750c41e28fd54c124ddc8f31bbcf0f0d9aeb13ef58babe918d597960041ac80ac03ab8e4649a01dcc3593093898c646183e4ba2f3af37387759dcbbdef94bd329fec4072e700359d57f4d4c6d7270a589cf9d5c26428d5ebc02550c1d9d82670b8024d8841057f3d85e4cd758c3552534d2f0b3d246121e014a7ef5aca39d760dae5a252564863e3017e6b285547371bfde928e7588a6d907552e31a047fe2753cbbf3215b50418602f595c2165f0573a0f45c8fa44947c2c3de031b58163cb9621e9513489d49fb880aa6b20b0bbafc4da88122e193c3d93b5f998c6504d63b5c347adcfe879b7adecfd20b5476834616bd1123a4c2c9023fd339844ead4844a147b0fd4678b02bb324548debfda963670f4d4b2ad4ecbad109d19d02dbe0439ca68521a8533361f5f4943496829b983b745d3975a39b55a107b8dba2ca2b96827c81daf0154b6f5bd97e65c45038e3b3ce77ecdd920e56614dcb683a5f90097959f73c861362562a4673cd8f852caf057006dfc6f9c3618d3c33d497acac2414d2242ad007743c7efa4b00dc3632f9a44fd1bdd96722ab61bf1bd5bb81b32c77053851e8cb5bc810622b6dc39d62e52904c2f6cf9dddaf45be556ec6eb4fe481993b382f6de470b521e408286079b353da4dc92a17b1b2ffbf30fc8740e257e7b2409a02265bb4524d8b1c56590e8da18b551533eb33d96e3cf535cd50bafefef0916741122da620b5161a5b4ccf03499fc22309449e4d0ee11b44a373f27d2874866aed6300b3f98d2a0f21cbc313f2288a95892df83691d24b6f304d25ab3ef8ea8f95cd67bdb02977446ba7a8ac06fb6337f9fd7dcf9d48432a47a2c26dee9471252e3aea1129b5dbdb1c89dec95e51f870d10a9724f6d0179f548ff04e6b15efb4c9a86524951c433852a852526d308eb7799002f94809409a80510c81746927651a46d4c5a664d56b642575c50bc9722d5648b2d63916eb60c0129372faf9c52153cdea6f899826ccd8195b99315aa71e3dce35ac87a7ee8ea2830f28c1e4f42f6ed9808b229eec441dbb91c770cc17f8dd9e672b49d573820a0dca7123bd112da282337590b82e149dd0968a4e15c5d13f4d09bd5125f2c86ac50bd59865183b0008fc497b4c4a0ebd4fbb517409f138ad85d8d818a9e849cb1a1998c6c735d692eebcd76ff060e05286fd3a1c1317bfa860cb296e9c34797706dad0b3d4b989846de1c322a53fc12baeb3ac2f41ef780247854779c0b3f187d02a767a718d8d64c3653a3fd063eab280a4d9c8dff263eb3704f3db30cad2a05f72b657f1d81c895031c0b894977cacc618942e25330c6d56736affc61815798a7eb98c18cb3f00db5da5df122cac899b973cc21d8a4f526d1b76698d40195c8ea2c2fb1f561ff5dbba09715b4e7cfd13adfaa82d0a7d5334c11d291b26811a4f21a823fd84191df959e7b1538eff36c2ecdfd81761a95be1873f6c6fcfcf01fcc9182f3ba07a9297ebe9d51d86fc970dfbed49eaeddcff81070ccf766a3fdf5c34b464b086523ac786410526273ef14f7d3827f23cd938676847a4eda93d8e1a52a8e5638b8c39eafb04592fcfecdd68183f1036e70d27525ab010a2dcfb7fad9df5e60fd962e2b5039a873eb33d85387e8202ef670232243dcb08895ae11bdabb7eb92ade29c2dac1ee5e132ba1546ad23981e0bafc34a9d74aac1fece1d018dc7f04a48bee769eb45660cad4fef33a21146bde4ff9b95965447f0b0a92e79a16370891c09cc99979607ebcb085995bab1301afb7a6729e16e3e1666bd861951ca238f882a0e14f5787ddb5cb978edb755df38bb133c451c354e0787d810c8c20fcd2130806bc3280cb3aadfae4456a6c105ad629670733173a26ec6dfa477a8cb74c8f5da56bcef21a3dbcc22765758f197868d45fde1c6d0e71f81b3068a14e0a3f6771fcda2d84c55951e96e90b160792c8068d2a161f406122991f067853dbe79cc2c5400b7ade3e36df029a92adec86fd49ddc23aba2846608c840f0d7ff96b307c88b5da0b7433d34f7adc06cee2c5e295277a0e3bb3fbbf6829bac3fdc73c9af9719df85f43424954ad3cd8ba7d93b24ed8c7dba58206701c80986ad8c1a91e8c07e755fe4860d90a10a2bbdd4a446f08283612c843f6963e87b4297068c7d758953772ee5dee5bcc32959de876a2dc1c855039dca3fc1705abf3c5914075b2a53be607bcebc27a5e0238d6c71a8cd32b288ff2893452846035d112792e4975211788917afa358526901cad92617be9dd6231aeda8a800287408fc664a5db7746c89674a798a7151c2a880eb4545c075764d1c8d307947ac2e50abe8ce633b2a6209a85163e3e676790fc9ca73a8cb8634f38619eae0a4a170b071870a526477efd67b02193f77408a0f63e62302d36ce6ea9dbe797bb2040eee719e0913ed9b2d2081bd787731b106e5a82e4ed37fba6b43abc978354a86869669a71f4152e0f09a1db1196afa4467d2fe59d185babf053ff7e6e031034246c2847afca4d6911e9248d5d29b23ae6d700a2bf74a3978b3961b9a7be71feecda769f85973afb84b502017531cc9cbc16b4a04ccaea061f0f3678faac2f6b32230cd5c8d312af733c1619c16a01f2af2034c76dff3edb9c4609c716918cd0e590460fe490c3e326ec521515ac91846769a691291c576da6c2e0f4aeadc06a48805488427c4c486008d3687aa48dc46be88a94e82b74633e3e1e63ca45f7baf89e62f4be4cbfe616e82bad0b93dd038f32454654d63b7be09e0d4cf0e4e634d31af37b8f718ce098a6eed60d1fdd106890ca2646328ec4096acbc99ac07421d72ba47621917b45e3b6585b06cd62d8405c976e845d36c1f0c2f59c2c1126cf7c5b4a55b613dbd467ddae939d67c76ad2b9fd9bef0d1f7a831e5b656829ccb5e8cac7e5632695079b0279b7c9d2637845d2cee961e80f0d40c4e41c362cd2c0e32451ccbeb8429b30c09d054309a885965456b5913bd2a204211f3f36fe7e27e82e29d982335e6abc268dc93399d92485a4387ebe9c4fbfdb4afd2006c4f855b37ffaecfd254e517cffff9363b811599ef833d6a204073d7c2aad424e7da781bc1c803964a0683d1ac71590cebf88438179b1943a0d4c2eb8531adf12537bf934a8ac624cde30fb8579c04a9ef522e90a206c4a7e87c00196cde6e2252d4fe826d3913176f8c0fc6a6f1344b7603489da5c3b01d99b5c49990e5066538c48013227d89a1cc7d681900ccce199eaf6bcb0d5720afcb15019999d85a07582692be54263cb49b4fd31a3126e4dcc2758ed385841d51dce90a04e4a298c14e0c981c2b9bbaaade121ea36247f9082aebb51562108f10ddee2fdbd65b8238ac9b97643cc92e69a7e19315a6cb9875cee36f973b34de0fc7b303c9beccc6e5fc3d00c0ac219bf1673e421c5b8de1affb060d28a72cae8e864aae7a9a808018e72ea09bc43faac09aacfe7738bf738241458976acf0c5ad4f3421fb9952f78363a27298cb653dbb54289f0bf391e565890c6816476d7dd088beb3a4b724f84151422b560089e72d33e284127ac09454c15a1fca5bfe4a1e10430423a4666956442dede97e931762cca45927ef079dbb61824895a30f22f904cfc4e83d68bd4133a720182010ecda087e07d60f726dcbaca43f703aa8c00b3d5c36052e8386b0b590bb3899807972a52e086c43943c24cc9d163e70816f51517fc93594df98511552611db4742273dace6fabbae40c51801d7ef45907f329ca6ed55eb43da08b3e4503ede23e20599527b0ccb79ebde181ad5a59aa3d0f77d6e4c9b2852322862418cb3d9a7ea549037e8b54ad46f93918f8784af604fbe57572159979eaf1be6c4168f3789099ee0937314bc0ec7a48a4b495ece16e75348447d2403ad3dc4f8583cc39e1f46966da8999d0f41cd0c731911beb14810f4224f9c1b949ca75f79981c01684b031a79e1af0cce080a3f93575e8b245d1f639d5476f167242844263485df04c4db1fa7ae6414a44085cf6aa9ad91a069804adbb04fe22daa973629dfe6dd0203f53a546ca8530a811cd0c3d77b50468f3ef38027452d52035c4187d9d96900fe09e2a115ba46de4d29ca927f5e67a332a728896aafcf0f3a9aa60316c0828978c919e64656b617f76f488abdf250beec58d90f9480c7f85d589577892666a456d16718b9433f9a713c98c11eca0f2746db383c1117871b67fa7b13942d38d05f7e0f0179b5124267435a8fa62689d2a67ffef886bd9004fd439a5861ab0f3a5b4bdc29ea3d6aa0e50c3f93f101cd06c0e2495b30c8d3d6e7708d8f5615b04e7a06cf98a58611a1c37e5ed4e86096ef6b7b2cd75514140d681d9ffebce9d61fca4e4c9f721e23211b6d271b0ee64db53942835da43d472e3ad066f400f7f5cdd7702f7089e3172cce192bbfd5fdda918d941f26dcb8f39b1e0e9da326e4b8afb4b6196ca1690a0592cedb6770a8d9239ab94d0d00b77ac074ac428ec7f1a5bed0f320333fc8340ac6b46952f694405d2c183a53f3d75c932e15a1506ab83718395a32d0ed088f3fe012dabfed987e48b77569416730b9195113dde652810bbc6c0046e7aa63448a681c949c338dc4c0dd616bf30d276cb7702c99d48482789282303238fec9fd5fd60ef2e25f69a2aa01291ffc0478541968e252b6034a16cd10a7d4bf1fc99cb20f2ffcf14ba2236f033a6f432908e562fc0c0c14548a438382196f5be2f864ab9a006d9d617696be47c0f87f9ef364a2748443aed37aa44e891643de5f755302078e0406c1d2127e037fc63dc35da4d4ad1ec5f40386ed93de5edd9b6e2369bb6935cf2c4e96ddcb7dc4df952a568f53d6e4245ac7e8ae37c7a8e03dc9fb0b0c0297a9757b7ef55a6649302e7bca8ebb280d1b6c991b59c2fac48bff5a01f27c350327a0d472d076839f1e7eecc5d9a9f5d7ec203bcea9cf229927dd2cbe8881eeced15c941fc0a7e8828f905f34ae04e354cc9950739f3a797ade1dc069f6e4917661dc54da9f2fcb4a9860359e74a995ac906fa1c34b04a9a4321048581857456c6002032bf7ae0e99c9ef07e32acc6852f5986dd5201d1ae680c22428a69003ec2615b3fc9d88bf296402540dc264d1ebaf1800a1a17fead6ed8b9c290396f189cfaeb4c3a24cfa3f9aefa63c9912d76f3219cf1d386b6c50324ef856934763a40c3532ccb1ba2a757d016de2fc9b87f067203f178f4ee26cab848a21ccb4dbf42d82bb6b10fa5e40ad1875261a674fa12ef2cbd6c7d678b17f57e1a224d30f184b4e28f6ec188abdb8d98a2eea8cef4e67666555db9f595a451ff913187518f49211e78804e527fcd741eebafd00b5dbfa2ad0a5d8f753dd18fa9229d0097fe3ba07b549a2652438fb0f107ab0a57647101030ad9f6863b162fbc2250958250f7bd46adff6422f0d563d97fed8c40b7062b5cf3389337a573d6e959b1ab648f8cf5763916820ca5ffd94b328eded46fabb48ba29b390a4434886149da8b9086b1b980cb1703c2d050b9e2fa0dd31532baad12516a26b714d7f7ad93146cfb4aa13f9da8b046d76f3b0929d3ce0c2d774949f66406553863893b1a07dd72b7d0fb8fcd38e854d22060e58e66d28e537461f0f374c7ca1d1305f81c079e28f13b327595314f4bf9b7dccb56a5b749ebde0cc8095918a209e880f140e5efce3e48bb447c7cf3445c730a29e443b87d46b371db183b701398696572ec1ab76be84c1e665ac65a2ccede7be4819e986c2f4e1009b025519ca04dd5596af053b93edc008fb2d17d0c1a45c2590ad3e3ae33a2b9670120b208177a7a7f49d878c4ac69692b6042d44656ed3a4c8885f0cbcda15fd12e709757853a0f41466ee4bb7f515ae927ba299b875d56d9b8621aa58a508bb9db57cbd43f0d8721c22178267861a4e14ce269cc8eebbfde87ae5a1f07580ba88a59cc735046cd396f310e494448a92f858061f77f3faa58d65f5eb392cc9261c854431fc2cf7c2aa4a1e2d3960a068e8e5c1bef190c202e454dbaebac61cf41c342d01e66159f11ca0dc9ec2629bec07a41eb0b1a2f45b5554e3283059844720059808c3eaa0b8b8dd569a2badb57a23d097686ba061b4934e044e96477df980ff80e48f21031f887b6ba3df3518640241f8db507381239d48ea55af318e6954a35f8002d55d20bb06150399ce1273236963902769a72b85bf16394368d29aeb04b3a90c705a1898636795faa30c3e204ba5c4d9185c5c577495380ee39637f851750682267e7ca121cd1d6fc7e135645e58b80c2e2dd25a255195dc35a6c690235a8978633d094c9634d46383c042207dac32ad1c930149503e0694744999c2c41799d8a67318d4a4ba09e33dd1e8d10600402725caef66a579e2e93e1c84c4b2fcf20e094e337cf236a34156ed14655cb191038cccfad71736291167e287bb7941728ebef774aec847b5532e6cf68b980fc2bc0ef66a54c1644ff903f3b872c25795d8e38932425846c022776b8ebac8f276d04d9ac0a85fdb992be8c62bf5c118b63dd194aef7fe6a8706fe6fe7689f5c812f5ccadc3985ef6312b1c6f6929608ee1bf92b84fc436dcfe34a4179fb362acd61c50eea323144d21adf51ae6e779ad11e1de0c3bfa31fef866231aec7e18212471fe9242f23e20b3cbced45198f4c104e2d4f5be1b78995e99a430039da2ca3ea7da163f5003ee58942809bd3face4e240f1e770ed17617f343f528188be64c2a13866955ff142d8de445159abbef4c0bb9df1ac1aa40c3cbaceda790558536d1db26f5bb692d9f5523b5c2205b8fbebd6c0a67c7164d6dcbc65a2c3129b3da9549b21e3442ed666054a91e682f057fe6ca9f7cc5b7eae982c4aa11839753a9dd5e1fb8e086ac8a0f1df293304991f800b033fdf736802571607f86f4dca083bc27540e128e65f6d42e2b88b2ad053353ce3f7bf9abb33ee0c59b618ff71ff5b47a518c4e0f22fe782f3d0bedfe0f152d75b78638b0ae90bc7118396d39ce5b116a381da034c6d70570802dde18bfba829982989b5d46c371e7682c623f1accd52a82b09c68ff50fca07f63a9ec569555add0950c64ca93a73dba6206c2eab182790af5937be7d2807616e1a62aa8b942e24d3d7c3094a428d2e8254a0c0aa810e2b43ec26c62f9c9e6d0ca2e279cb351543a9d5dc9dea37b1fed70a2933e910ce4aa2245fde80a86d20a8027a583aa181bdd4efb25a011535aba8543b0c34d7055799115190a4eee26d6fb2bff05f5b808f8c6509402a1df785184dc7fc405332663340fbd2eb8ae630b6f60c78383c4ab57a241febdccc645203f5c32f73d31962fe2bbf7be55171115a34d234ff700de7cddfd5f43d1fa2f279593babad715023f8021290ffac9b19dac0cb5c9a25f793e0895bb86dceda58ceaba38c3e0b0c440dc25480619561521314e33f4750723a4ae8d14c39ab3a382922e5eade7d13f9ff0414df827edc77e13ec7c6bbe9277da311c959ff7f9944770cb6b5176f5cd6f2e8f9bcd6414e80610dc83f4f2674b77d85cccdebc9c9acfb8e18828894f5b5b6864de96ff87eedb0ed82c8cc950dc3d3dd9d760b48a2d9292805703123f60f7abeda8f78516bb739ca61448f82a1a7b6fb548f8f18c3f20a3313346233a947184f2584a1b3d59f2573a3baebd45248648d9adfabb144fb6f9c3984f001178d6a9c1b1a929c3fee15b398a66ed2567c4a57fba57fcc6b77c0347387e56c573dcd65a89327327814e135e87f3fc947eaf3339452b1eb97f3def404051b1ce0e0fbc5c7c98bb241778deaa8a00314469c3638b2f27ca6780cd31cb0398bf626e12a6d0a17bf9e6a24a44d286bb79a40350f20c4218845a6d92937e0434d16625715f78f59ba2886099f3b463c86bd6773c5ec66f98469ac2c227aa22c567a95e7786c5095c2ae7dd407d71b005506757346a72c803bd8be23dff2e1dbfabe31c0f35424bc97262597f9556e0461e322d3cc1577a77611be3938f32e660fc1f0b4f5e9a7e4dba22d7b8b4ea3cd619b7d23b81bed26051ba346a9e4da832704771379776d327a507225486dd5a2cd315769c336de51f52f307e15b6a0405054202932c618a63314f4413ad09a0e567863d131d1db864384fd571a1f59518e3e4ba468a98bd610bf08a5751049b11883db0129c74d01b99d9412f0a2ce2f55232adb4a95d8fd0fab4c902fca92aa98ee1aec78d98101c5981ee560f073914c9a7cf542cbe014263996b716508f7525ec476dbc5656ef228351de47f78be49b5dfc0d8e4884a708b9ebb554786205ddfb753be0874898b2ec41547fc5e7bd300abeaa0443291368908e1117d636f890c3415f92f543078ea53043104d8b4cd0767dc181b9cc97e9330da183ffc60b5333e6f07083547998f487acc75b7176f64594060804f4c639c5607c305d90e866b7d1d7e8c2ee4660009ead109f3004228ee483d607b5b801ecb8890ecd491f376b0447c87d1cf31b7fd522e8c8cbe315066d7d8f55e2b9df3547c50fe4cc5bd63a7279ac3abab91dbae5827d94dfa809df56f2d5399aaab9b79a1c2a6b12a5f5a9203016b33e6da36079dde14c43fa4533ffd243e467e9c504b294b0a63c9b6e638de2e1d752bfdd87e68f10cd305cfa1afe3248aa9fa10a36bdaf41251c42084feb74b5c5b4c5d8424387e11b3d3294dd2e58410d71c9927388d944d9c24de03efb435c34a2be01303d07aff53db79b5ec080e4ec19840bea0210014ff55dd68c2b3e47afa53ac20969c80ccb3294e87d2129709b11d987fe39be97f1997bc7cb43e3aec053c18057d1fc728eb45de16b434dcd0f8ddd0debd18bd61f5a25824f06ad682c307bda8712ec3b417d3a8d1f6b918299d774bf13a3d5e66e5b0383191b4cf8eb3ccff3ea674820b246d45db712dc8817a48ee9f3ac5f6e5e5d02467e391024d5e98441a4969c763f5e0e61c57cd58dbc064b610078a7eaee1a7eab9fd29ec11f3f12c9a7dc7862a1be6822ed09602388629b78f0aec2c8958066145f97aa7e400d21e64b82d4d306979c68bf6e19501d0952eee3f52e4dd3da26b4c98311dacd2826480315855fb75e0a2f40c4a9c3f46edbe5b4ee8d3e9108a0b71462f5d264ad417cfca403b89340e1528f7a68fc862a64238ee361c63b145d467999a0adc682193217e5dac5d4fe01e50087bdaf38a5264108721a69e00f08720f6efc16675fe288a9312c9381f9643c7675ab967da4a5be6d16d641ecc1df47b49a3d27257a825c67384b8caccbe7a1771872ce5239745617797d2a16d012007b5d9de990356b5f1880414f69c3354db9571025853017cf958621260cf8b23ed8042601f93de4ee6c25ce36b73081420637497c830deda1cdccee42e60a9ef8be144a0f14cff27a503dda7da653c9eb6032691ca1d7112099df77a85250594af01610354c84c0cb4c7e4bea6e6001cdd4a80f143a365efd5c2defd5fee964bc62ac0ed68f3c6cdb8b06ba23add24430821f80ba3d5d9cb46676f1c7f61e0ee4a44aec82ea40369a029d64b78ddb9fd96cb3981a5fd919234ea2710a21e2475ec254ce49775e00d125a2f607b90d482790ad86ce1db4615ecbc2796b9706501f8042bd829449710e035028fa646ff79dc8d5498f7f1e323d4791c64cd81137e57c55aab45b69d06c12d4252eba3a4dadb622f71959185b5144f789bc50bce76181e441deb70ca86b26ab6b25bf564d4ddb1dee1a8b5ca6ab110bd5146405c497ea963610c1e8849c87163da3e01f729750238496eb22a65124c86dd488410cb7e2defd7b4ffd3970a40035274c3ca10bc96c255e4012a78b705515cfadbf7e62f7afb2d788f2feae918a57e7be67286a4c8a84619dfdf380dfb43a07f23e0f63fa71a7fdc8854920fe7c88039efea5fefe3df2390176eb598cef05fefe4bb170a6c04965b2ca57a8117e399300bef731ad415c02e3739004d233423c5a270ceec9a199af05cdd561e54f57537112709e865e430f1dc7288af3ad094675f094c81f32594ab6620038a574dcf4cee5ca17dd8f1202080d53c5641b7b61537c798d82a8ecfe9e58139258e766d9cc3638e5268455b993cdd4b2dc6b9a0b54ded6acb2ef61eda07e2ed1469bcde72557cfa78859c29b2c16228974993ca7ba18c0115964d712b2e4f4de52209d45acf10899bf8cc22509d0cc27d3a42e7b71ff5154bd2f4e9de9a127492e37080bcdd3f89655380e141a64e0cd23fde69a75150db227b2fc83475a301c9d36f2413015f096727c21a91e09adbb2c9d182228fabaa4f1003c2b860cf131ba22a685ac460adec1614e6923fc3c1203bedd44b30c3d60b224c301ff000000000000000000208ab546706b2da11291929452b90c1a6cc069714652a624534a91ec0ede05ce4c7c3a33f1e9cc1c34d208219897cf0cc50c780c7789902a87e80002ef965bc6a8eaff019bd14784698a596b14d1d6d0e1034677e75c0bbae4cb949467878e1e70e9733fa5fc4c16dd5372e0d0c10336a459d467e983f6b45bc70ed852d57ff23476d4de221f3a74c0884e324f65ceccd86229e68097a5944e2f57b805a9eac0012775892c5959339f991d3760437f07917ff7a9d51f59cbd461032e7fe61853d73b8bceda29e9a801ab3da5d4a94eabcad28eac6d8d0e1a30f23363cadba6a28cffc89a990f3a66c0be564ae8f68d3219320e74c880d3faaaef97f693976b6774c4804dab41dbf4e5369d11d030c064b27c043452ae161d30e0fc569467775db7a45a0b2844c70b38b5a44d9ed6f282fc56870bf8b72c3d63eba092ca515b2491bb1914984c94d0d1023eb450aa4f98aad2d96430d0c10236850a224dd525912ab22a74ac80dda0d3bb149da2c2f4237b4516225b74a8803fdd57a7c57e47b33852c1e514ecbe7674d2cb71a082d1762e4f68886ced1f740a6ef3a7fc39dba7bb8a99a6e0a33cf51a935a4b2da514fca607a57eff21113848c1e9aca8d3ad4e9674161147c1a68ee9e38d523a5e228a82d549a3da183ae98e23146cbc1875969ed50ae9de85e040c1e6649b5450b5320bf73ec1b6b0b4d2372633791f4ff0aadbc63528d995d5da094e67fc1013f5a773908313bcba081bafbb1c53d2e1d80423aad9993948b5594a444d302ed5cc936e5139fac69109567d5cddfee9f5e2a9706082d75a486d39634a2735cf7109b6e3e9944679ae14a6b604ffa35fa8c61e25d58e58093e43c99517d5f28b881c946083a5746f5fae59af67129c78f7eb7e9a6c114f126cccacf3ba8ca751a594094482db8c9762aedad7ae960157e08004db21b5ab6e309929968f6085bee8d2fed2a2ec9401381cc1da0ba5fc74fe6b9dab46e06804236336fda042c67d37318237f5a9e2af1499414639816311aca8d4cf3ae7290dd9e25004ff32e551774206a5524b042fbe3af5640ead4c8710c109bd0fd24cea96d62f8e43b042651552b73ee81c64380cc17e7235dab468a1ad5185e0378e1c9deb4bc5741b071c846084ce9e925097cc73e53806c1e775911ebb9554eb1b41b0a533ca8f69b554a174130836ef68dbd1db6a1e5d23f03503069a881d1c3800c159ca595daaabfc81cfbd6ade1dfb89db8871fcc0ca786934ea68b9f9b2367c0236bca40f9cfc38f641b3cc69d359060e3e705178109d772b94a6d11e382dae5275053532dda685160d23091c7ae02de7d2b7b9ad6e1ae271e48115efcb79ef47b4bd161eb8dc2946adb5b9d5db4402c71d184dfa515c9a6e9176d2b003df52f86617935275528fac211438eac08f8a2932a708d336a3c0410776c585e91cfa317b23724fe098039fe5caac525fbea6df236b4b050e3930cac592365f1baf8d4e81230ebc52995b79c54b1a143122382970c081bb4f4249ad36bd94c9e378039f83f9c96fcd0dcb311c6e605d834e0d5d1fb37c1a59436ae06803aff752d037b25508a99d81830decc976f5975bfbe52e47d6ecd8c0b106ee5e6d65536a55538e856091801211984c03871af8d4d6fad72853257911b1e11d58b3e1094035e04803bbe54aa8d21d1535ae37e04003ab964ba653d3ac339e0c2838cec027212fbde7bc99df4f3330a6975e06d3dd3b1f4796a30cecc552964e3488adaf1c64705cc8df5615ba1b1c63e0a4560da5c972c78a510e317051ca8a5acab52f6867c4a8e20803173baa9872b24b16756b64f390d8a811020e30f09eda3d4268f6a5bc620e38bec06793a3d9843c9951c94c2693c96462b64d72a3370b1c5e609576aa8a522ca98b9d2eb0524c2b7f2dd73da7242e30b6e36117a59a5e2e6db16818800c1c5be0f3a98a9993d03a425b1a0bd3060e2df09ab276a765a1846e3bb266568214c09105ce82cbd68e69437fc3b5102c1270001112378be0c00217a3d242ef6b2d25f466644dc4865a0816568478089448e2198c90c22110b02244111c57e0ebf2476f0f5253259504f80d2dda90d04056e0d35d8c6f1f9a5daf5222f3024715b8a8f7d2e5a9d7af5646056ed4bfdb267dfd2c7a8e29b0b6f27dd46a3ea5d71b59b37143c6b171c30133106038a4c0cb149d756a7bde46978c182325931094e488021f3234ead44cf7d1f4c81a89dbd0c249ce62340916060546e6cba35eb8886ae83c814ba6a57fe6a07394269c4c2613b573022f75e7acea83ba53deda1049374af642b048c0029ac099e6f32f0d5287686c64edaca430815fd1d2727add3996c06e6bc5f05da13b46ed8d1a4ae0553f3f092d85ca2ff49115d9e34802ffa1df738c4108ad2e9533165042720306ba220b912d3890c0a8d1d23ce772ff57e66442f2001b33bc03317e060d2522438d60329941a344e5c0710436c75ec9a0de57980c0f871178514adf8bf06d8bc08adaf0ed5ddd770b7a010711588b25374c67ade466a3c231042ed69fce369a6356917208813bd1aded25aa693ae3080297dc6eb7f2b7bc572107102c5db9366e28211a33387ec007fd5aaafbac52fc770e1f706a3aa78af0cd5f527d038e1eb0abd95d0955ea4bb9c6c1033e7d6e15b4766a95328563079ca51d1f8d49a666af68514252003535638b921c00870eb89844691625b567c6e4643299e4c91cf07949fdbd958e32b71071c0dd870eaeaf94d6adb32570dc808f4a684d4ae6f3ac5ba7030e1bf03dfa5d79b9cb2093364adc465bb1028e1a70c92b6ed020c437d7cb93c90c3868c08bdad1d0e9bc2ce9f88ad8093866c0895629cbe0f144ad90cb80d7c1830695b4fd67f91f470cd8ac5d3ce56d1e99ebe48001a75b9eecf7d8f9a3a9a40d385ec0895abd251633b51ced0de3010e17f0a93559fe1ce36a1d3f395ac099262ffdca7f39b70a0bb88b4ac79c319f1c2b604db392e3dafcf4aa1c0e15b05a53260f52a8ec97f954707993d6f36db56df947055fc9a5e765bd42e8c59c42dbd5aa2a8505d5149c880a325f8a276e1e530a56aaf292ba62d6ac9423059b5b3fc9cdb3ac447da36065f667cf90f97e7a1105ef9592798bf62cdbdf50f0efa9a3ce954665cd1b28d818b5cbd62edb63c5cc2718e142bd50de299d129327b84f9d9b53fed7eb979d603c8a7a887e54f92be504ef5bf1c63f3cb350cf267857523c09d9a939c58a2638a9c39568d2410aa58399e0cfd44d864615cca406136cdb97b9add2f79e4997608594a95b68f9a946972cc19fa991fd1595aecb9b4af072fc44c5f3cb14328612acd9bd67bddbdda38493e04764904a74f586d64f129c5aae515d518904df79179366ef1f998404b74a794b8fadbcc6b747f0afb205a12a970c5f8d23b8cf14a5ae0faaca5caa116cde77bdfe9ba52ba97245425c46b0ee212b05b7acf4557e117ccc8d4a57de88681c15c18f5cdd153da6c5b7d3c89a86609100922a12c169d5203daf7dd0752322421588605fc95b15b42a19539d87e0567df3b7770b75a9637650852158a14cb96859eac964323922664c211811964e3445ad9ad21a594302a882107ce977367bf3afbc392db468049889a049105d9185085731083e09fd29b7921ed4ae96c811042fb3768f6b2f57cf0f04e339346aed48d11bd1a00a4070be41dfe80fa662f668498f4060456c8b2afec07994eaea5a796f8e493fb029968dab9715a5298be9032f65ba7f7fc6f8c0a68ca34f86b6b70dd3f1a08a3d7041cd835ea1e48dcca21e78ad43e90e3ae3dfc7d511a9220f8c309d954ca9f5a675a119a9020fbc0edea1d3bbac1bbf91e9dd81b3ac9d4b9976329994d8882123861693c956610746e5a42f3288efa999eac0bf6a8ecb1c3a7bbe7c323113b133862ae8c0ca18d48a27d5f9399d93892a8921633251253164a4ea15aa9803bf27d5752711debe3993c964828ad5a00a39f0abf247fefba995a79e1f541107366a5253ef0f7ed23423c68888932046091cf8df55cdfffe516e2a95b416301010aa7803173f6b4a3a424affa0966cd110984c2613113b6e6055329d858c9b5bb4a7897645162203a8a20d6cca6fea76a5cebeabc9102c1210528306c90126931a3448d66452b248fa4602487c8bb6428b6603df49e6555369ea85cc1b005d91850809aa58039b4d06ddb27dd5feb42ad4c09e7f54579116b5a467640d2d20044608163268902040798d094c26280d8cbcd8f15f65512a9af6488e94b4026cb49a410346ea086888008bc964a4a447269383065694320fb522a3ea32cfc09f7f5cf1f06590d040800c121a8fce09559881534a068d1edbb246b54776324186c4460dd440156560935465a675320dd54217b8220b912caa2003179434f7e8f1edff75558c81555a5d8bde34aa4c53f48a2c4456156260b3a225614253a41cf5c89a0c1a249fcb2dab08039f548e5949a9788fbf22364868948898b34142a324ab00032f6bb37b90372aa66a236b1d9811638b558cc46d2c80868d190b3057a3656006aaf8029b717b75550a65ba59911a2d63155085175893a2b55bc1a3543a35b6b081b605c93907a8a20b9c0e51dbe0226599b247d66a20090d08d0b031630193c9cea00a2ef0dff9b29f34574d2793b4104c2688c4460d3c41155be0959eb9ce57a36cf3a6049c36157b4d088f9a3d9ae1410a4645f939bed0b993de7d148c65b5af4cc7986a4c2a0ace63d2f22de65bf09c0e05afbdce467bc5bc99f5a0e04db69d46a192ce4d39f4f804a742870cae532821ba829ee057aaf8fdff771e9de06b83cc5a06d5c1846547d6b4b82143242730994c262ef0e004abc99376552ad4e52f6d82d751075dfb7ea34baf34c188885067515acce0518f4c70afdc2e89d4c1928e6282cdda41bb5c3b7956f625381d84969ba7d0c9d267c33ba034de8627a00e1e9660c5d225ade32e63d2fb8b14f3a804abf34b136d25843af56452a2cb83125c90297970cb52c84edaa403336284c0207140088c90102cac984c5ac44ee13109defc635cad349aa57147d644205212438688fbbb2320044648490862348977a067b403dc11d0811931dc7ff5e021093e45fd52458f955c7f6acdb8418344648b24926823463a6722256959784482119e5995d4f05ca95c48f02f555fbdd2293fbbe7f1083e7dccb25588b692b91f596b12115c8d26b1c06472030f47705ab4b2a8ee35a133d4467063b175fd9b45ad764b46f0ab37e9dbbe949e3448c3101e8b6054c7cde9d73eadc86dc443119c2efd9de32aa8c8f047d60ecf0d1810b02204460804ac30791e8960fbbc4b6c4367ee30868c185a88e021221a1e8860c7ed54fa6fe811a63a049f4269a5fa73925a7f66643b302346893b0226130f437059c7a829d69db42d8b4721f2f098c92f17a3e418c08310ecebae151ddda3fe98e42435cece20f8dbb60f11f26f5d2236483c04336220033c04c1c7fcd35c2d7a5a8eeb1108d695d652e6ac3ca6b4257800827d9d52e5d6b45e41a9a4b5287fe0d4a7dcea9298ae4b0f4608498c864049890d2f292185871ff8ce5153a34e59e674d17811b4127581b57c8f3eb0de414ce5d05a2a95f38750f0e003db7b52083db615a3bc6f0f6c8ed1844969593c3df027833a7125aea91d9e39c1230fbc52955493fadc1cb987400b1ae75cc0030fbcf012167589109e95740736d767e9c14cea7e8d7ad8818f9dbea592eb119d94eac0658daeffcc53529f3e746075ce1b1736a294dfc7630e7c78961e432bad2178c881d532dfaa99d069de6b123ce2c06ae95e1555df1f2a070e6c0b75a2725eec130be2c0e30dbc2a99a95f6f8e2d94d2038ce0e106bebd73a9becd3244a6d0c0a30dac25712ddfe2a9a8a18511e2c1063e4f2ffdc8dcb2bc656b60e508fd514c75728f416ae063b7b2a02f0997cafe3430ae57a7ce59b6213c4403b75957bdb4fc91325f0f08c1c28a101b3468484089e07106366e7ac71359ae8328150984c00829110881801521ea61063eea92a12affca1cf45506465384c8cf5f1bae3132f023d453da865e94ca1d03bfda53a7cab9973495626033b3561644c534ae8521522e040b2b42426098bac1230cac6cfd521f324bb9ce8daca12dc04310c34677c0af984c42b0480005663c6032e386c80c1a93898c18304248dc060d2c2693122d6ac88871f08a2c4438a6e001062eea513a4999bb1a4a1d29692d4a52091e5f602cd8e9d64795b3d2a9177899829866e524ed84d8056e5b8850af3a69cbf9c30576e3459dccbc354b6f5b60f3d3bf9d7be87dea688117255f2afbacf3aaabb2c04879ea6c94688cab42f6040f2cf0fa294ad7f93e93a9ff0a7c6fd0f320845852b65a819177da85b786b9bea44715788d2aa38fbbe9eaff5081ff96aa265b0b8f1957236bfa3148bc0257642112c3630abcd2ec5f3178c6d5312b055eabf690aecb734bdb51e062868c2d94bca063050a9cbfe7ff53a1f7b20c3e81fb93f6b51d3a236b2276c3c3098cd4d3d641f587597c8dacf907da46f2c0a309bcc7fff45283942dfd1c590f26b0c1a45052c9d7d729374be05f485d52791c9d950c1a595be7a1043ecb8e7f427eca4ab45412b81885c5b2552b4c4b2181f74ccdd5517d37787e047ea48b542f4ba29e2123f03a792cd12e1581d3d9727efd15854c7d791081754ffef599b3ee1cb51e43e02f68b9d9d7f2ebe7ef2104b6cd53ccd599dc4dba47107891dddd9e56880a2a6764ed69888c94b402723d80c0f8e64e1f2c69a9d5ca0fb8d17e39dae327a39b3ee08366cdaa5e547ac0e97bb3d89ee5885295070f78db556a757be3c9fc8fac39c98d1a67b70336ddd3976a954c2999e4a1032ea74daba4d672f333e891034693a74a224cefffba34d6b90e78e0808db9b9f1b3664fa64d55f0b8019b4bf458d6aba754c5cc990df853726cdc848bc7a05e03426084d8133c6ac0cbfc19930b1da53ebe5a78d0803ddd1794fbe98c1bbc91351212f79801a7f2eb9ea994551afd461679c880bf8bb995b0fdecdb5c2d041e31e074e9d6296a3c27f777642dcfa0c00306bcefc7d317a57e5bf0780127c4726c3f0b6a3fbfa4000d1b33167045162210f07001a7765a457d97a34afa198f16f0aa53ba4ada5f67bd92070b384f4acb525928adb552f73c56c068d128a6b5879aecdf0a0f15b029943acd5759f3643702b77143c6b14b059f2cee486dafc64f9f7051c1a9fa16d1fad4bda27c640d4fc1c8f3f22494c5ec235aa6e09514157cdf831066674929385f3f99eb59d345759082f397a1db398bfacbddc89a93740d27a9814c86ba80171b05af4da8f3e0dd22c3e51da2605c55d0cd9c5a066d6d644d613820048605d68c1b340c40e3672ce042c1ff464bab2395abe8d19135efc08c1e5123706306147c2c137e5f3a6b1d9f60dd84e57c5affcd53623cc1b7ccdb425db8dcbed5b0041d9de074f011a1d525ade31d43a4c4fd39c18be54bea46c5cde9a4f68a2c443ed0b109ced57705ffd5573a003a34c1aa14f4a7368b1f74a56a6c81c5647245162229e8c804fba5e99ff365feb0c4fd1351d08109467de998d876476dd7c8aa8e4b304ad89652d74a9f465362095edb5dfbffff4eb668646dc4460c11a8a13da0a312acd4d30c2e7c95942da504e352bd6dcaea82fac85023c8ed98049fdb3fe3c8f128b4bc2b92e04baf8ea582169abb957335da010750abd1328a4582eda0734d55e4906055e94b4fea6db3561f7c04e76d59ad097d4949993a47f06f1a33a9979ab34ef18e46b0abe9e32ba13a2623f87e15baee93afe5a872b808bee37fabdc913225d35204a753e524c563498f3a1b828e44b0ab1f7c54cedf424a84c63a886095fcbdd1a24d4acd2f0a1d87e076f47cb5501f4f5a33041ba4f48c3a4a1ff52c8eac7907487a4459073a0ac18bccc16ffc549e68c60cbf018218332830622386052693c984071d846094f45c4fe9ce65783b083eeffaaec8b451b3e78cecaa200efadbed694985190836c5a8a24b8358569ebc1018207400821519dc4bffe93aed76c71f18257df7a579c6506a1c59db82c4c6162458e075f8815bf16f4f71548aeee0c81a081c04ac45c7b05143c6d92bb210f140471ff88d97556f058b254ce7032b9346f9a2554c931bdd03a359844a2285ab1172d4039f5cba07d779737bd0f2c0e9f374297f9f32b70f1ed82cfad46553f1e2edeb0e9c96ab53f54799cc691d59134943d26107c69408b9adb59d572c0b1d75e0727a15a45b3a6166b10e3a70b659773cdb27f5143407360bed4a42ef97e6556fd490032744a58fa7d85f6ab33870a39598d42355998c593870de19ba54efabd74135b226848e37f0a2af5b32756c751eba81b79c929e5032b6695376b4811f213c46ad41e68a890dfca7ace9d47a56bd730d8cad304faa392af7bba88153417abe2ff314742e0d9c68e5991d262ba74afc6ca0030d6cf84b535a6e87f2fccfc02ba17a35a5b56d514966e07296089583d20f5269cac0679585f9b8eaefd1970cacd2bb64f79d4efffd876fe81803ab65142d4a0a75a25f1a59a3c16713e8100367715ff8e9a9e8abefc89a12a0230cacc6d89ddaf48abd3cd7c0c0aaa816d523aa62facc17f81c957e99524b559e6444b620b151cc0bac5ef3a0ad9edaa57df7858e2e7039275bd34232746bb40cece0025f519aa9a464054bde405b28d722750848bcc46e0b5505113ab6c06750a5da25e5a874c20e2df042b6dc7f1d5d5a70a191b5650c6581959bd2885629e816d95a336e9c007460814baa426b995ccf9cf5c85acbb0abd1c56ab40c14e9b802affdb2ffb7f28cac699162a81bcb496c28af31991c5a153fe8b0027751fb55477e46d68edb681b371ca03be3c61f0a745481cfcf2df5319d9296a6830abc5e2fef182e2be553cd98025faad1bbf776958a76081d52e0a5de34ca4f85a2c08a4e3f0b9a3eb7788dccb4a0030a8cbab7a8d2ad8adfb22d363a9ec0c8f528de318950a985236b22349692a0c3096cfa18daaee34bcb16b3ec6e7434818f6fbade7da392b29891b5624b2386488d12eb6002a7d2666c21329688961d4be057bb84727996cf94e9846091001b3e810e253052d7b9da7c31a8dccec89ac88c5649602dc9358b7af9c55da948e0ed95dcf6533245e921921b2533dcec3a8ec0064f1b956b289533741881dda8ad64ebd4f4bf551c3a8ac0aa1a19d25df4ade62c2270d284b41c84794b993243e0b62ef6add4964d06770434486a0881bfb8af7e478686df6a6ce80802974d490fa105aa89a636a93aea8f28186179a4ce1a2a34db2b14eca83bed97f4f75bd640c1a5e459fc63ec3ec1e7984ee4a57c7b82affc3b5aebbd34bfb1139c50765f516aa5bb5777c109f6bd548eec51a53506e126f8704f7af5a3a65a2c35c1e796316a29eb4bd5ca33c1cad50dfdd2e1bd310a13acbacb8eab75eb53fb127c52fb9dcbb36a8c956209566b519169ae32473555826f57d5fd69930b8f1e25b8686f4ab554d4097d9904bb4a294ddec1925019240946c7dba02f474d52662712dce5cc68a7bf36ff4b9060377b47932b5f464d9f47b02fed345da9d42131b870046332555049fcb369f51bc1c7142a269df5a6f0f518c1eb86c5d057725f7f8be0d2ea5656662345f0779babaee2cabd984f0497d483d0af6e5d4f062182cdf73ac928cab2e51c3d04a32ac80d1e2a7dcb0c0dc19f56693ccbd2f9f29a85e0fb94cac1eb345fd08e10dc47aff7ce3154b76406c12631b7d3398da8c78d20d8944676d0b4f94030324f840ee222eba448c416e1e002108cfa1bbf242a7fc5b1ffc0c81ff9eabd51e9d3ce0f6ca7dbd1ec7732638ef6816f7d59e996361fd82cd74b7984b84bdded8191af55fecf59bf3226f5c067d4a79ea3f450224224b8c803b74297f21c957aa5c34428b8c003af29bd0e952ba58a19545cdc81b1d3d9a993c778ab2a7660932c4ff1bf55d7f48d580756e4e9985a50311d440736def64635ae35cafc55022ee6c0794bd1598ad092032f637e2f19b42b330e9caaf49e7fecd6a39282039fad5445750ddedaee1b38af1c752ba1627453d5851b380deab375671dbe77bb6803ab5a5d63e5a82dba842ed8c0b84c77c16f2f66485dac81d39e3f0b57d37722a52ed4c00ab758510893214d49b94803afde25335568e9d1655ca08157c1530afa3cbdc960bb3803174ca724a48be66727d5e0c20c6c26ffd651bae90569d6c04519d8fb6d6f19b45a29bd3e1764e0556f8da97b29b5ead018b813733d95969214e28981979ac7524ed7ba1fba30f02e540cd5499570d558155c8081dbed93d264e7dc2cff0becea3d5fa933aa18548e1778b71b1579a36d63f92ebac0eabc6c9bd467555315175ce055e7962ff30895e1ea16188ba5774af62ba5366a81335761ffbe72b38594115c64817fa53d2d6529f73eb7b0c08f881095594acd75f515b8a8be7408ad5e5b05df0aac6a9d7579c56ce3eef9818b2af02abf65d55a8348db2015d874a75629d52d43a6e9620a9cab5025ee5d96851247d69608d22ce0420afcc7e4f2636fca45145817711dd39330a13177800c5c4081152253bee8f71fad655c3c818fa5a5b53eaf4d32756d70e1044e848a773a76c156d804f665105a654f2a4af7980b26b01b4be87cef42089772174be056ab51193be8d7593725705e6fab6fb4ce319b4a0c910f687123ed69e122097c6e7f8e16167473d4b84002273595e8601fb3bcd323b01eeea35576eac208fcc954a1b6354dedb25c148157426e8c323b4cf596d6ea3205174460b596baabcb52defb281743604d7e9e58526b0c174260a58c1d2a25a999fe5582c0078bc144efe2674f1d174060454fa7561d856bdb9a868b1fb09d4dd7630a5eea55e80324344460c3af385c0b98d101449570e103ce3f34a5eaac52b41c84111282851521250510299c70d1034ede98aaaf6815c1050fb835d14c5159c77d8dd9017bcafe82995bf43d950e78a184cc5fa6ec1c3072a4c5129e515b0c4ab3121738e093a80b39aede0d781944e6ea8f595cc7930b1bf0eed9a4f02def132db9a80123e358d4b5a3b5c50ed180972a9deb4e5d4fd59b8b19703255ba261983aa10a11b20706380102cac28c0880b19b0f93c64bca032e8d249d6550c2d26a062685152808cc1eea9aee73fbe0b1830ee669ff5e8d56fd690a190e4017a451622222e5ec0252d743419946aede66452a365884c263c70e102ce9577d051a6cbbb6af581b67122e0a2059cae10b28290392c6074c6b715ae3255efee62059cbb3ccfda5737e78ebb5001a35aba255ab808098d35f6910a7e5373df28552293328dac8990d010593387c46dc448181fa8e0d47edd9dd96fbb529f62d78cc6872918bdace3f93cd5c956b231a35557e05c8d9681a56073db828a12f9a23d11eb190f185124ed25fa870f52b0b2d534ae76dbeedd46c17d68d9a63efb6dce976ce10d10056bf153ca29e5b84a974a28189951f6af6b6e86b6236b67256732d40840c1c5f233552d5a260d163e3ec187d69016b39bde8a9a8d92ac005ee1c3139cccebfd5f71d40946bf5e61716db34969d828587c7082f1732deb4f08fddaa53e36c145f150ad184c83ec8c26f8d8a1d274ac24f4f36701336e8c4c40c5d04c30ea3253a728858d5842e367c43021582420a400c8ccccccccd059355ac0f08109bee3db685ef0a8b46596053e2ec1a9ad2cde39ca98a274d112ec6896b54134aed4311f591163ae9560fc3b6a6d9949c5144d1f94609526a15a45a52b4ce5120d2d3a20f23109f62de54fea2ea768fa4512b09260652aa1d5de4b7d49ab98e02312dcbd904afdc8b859e8038a8616f70145c30a912bb21011c10724f81e1d63eba7a847709f75ea2085c5d4bc1a912d486c9c2318f9af2ee7eb4ceaf434b236994c26c56cf0d108f654aad9c6d01fa32719c1291d9a9ad4a9fe0ecd2c82752547ab349149336e5a68d13042b0b062c4460c0ba87d2882135abb8dc7749a9644f0296b66a5d5bdf0a84d477c20823d15552aae12baf2854af07108f6735b901f95db059d1982dbd741e95ded18fcb43e0ac14693ff2563b0514286108c125a676d51b7ceaa93239b828f41b0ebba1a3ceb66b7ba56109c8ca72f07a9bbf3eb0e04176dcbb5b0bdcf1c521f80e085b69c9b2fbacefd3253818f3f70224f0a253cf669c8a41ff8cd6afc758e1574daf8d107c6356f6e1dfc3f67ed8dac2d043ef8c06ba996b5a39eb562c8bf27707b60c365f6a43c7ea7249eddad343df06e52b4e69c35c34bf2230fecfb77774a494aadbf8cac911c127ce0814f66ae3c68b8262d5a67858f3b30bed236ba1cf93f424bb303af6c3d74b4556a63f647d6cc42b048c08c074c26336850e1a30ebc69bf1473329d8407251d78293533ea6c71b5905a227ccc817da5830b7deaca569a7d3ee4c06ab55aaf1574b298e2329a04019389b18f38b075398616f37829aac495063ee0c0a551fb290a295ed92b49818f37b0af6fd3ff46d5524c374a44969b49e0c30d9c5e9daabce3defe8613f868035b9a554d592ce0fe93c9072693121b33da46c92236b05abfad0efd9b79c394b906c6dfa44ba19f5f835f10d5c0ba1a1d854c4a95071bd5e0230d8c4a175b29592a8567990f347067f1d2cbcca8bc335d821f67e054980cae6263a33f65640f79e0c30c6adda8e49ada33b25622429276818f32703ac5bca03468e7a0cb354706360b53116d2ef48786808f31f0deab5b8a8a92d8a8f12106569eaa3495d5bec9cef908039f745ee51e73d9986a7b451622fe01062ec7504947e5d7af7f45257c7c8151e94aa30c2eb4d2cb0bbcc8acb5aa069d2ac9d04717d878dea74be5577a2fffc105ce4cca374f6947dc02ef42542c99b49032068d16f8285410f2e35b32b3c0b8bb54b255dad0eafd0716580fa6f583afaaf0ac0a1f5760a3ee523e5aeb5f86d20aeb9c3d262d7d145e1518d56f265cf3f969b42015d895514f77c6565227f7a6c025cb19328e794e0adcc92cdb93f7ebdfbe18055ec62cb43adbd3ea756a64ed030a6cd768798c999b46059fc09dced0a15d6b6fe3894e60b3342d3dc81e69fac52670fbad7cf5856e12aeb226031f4ce05fe51dd51d75cef755a2123e96c077cad23fbf5529299e12d8fb31712dd7965b6712f8d6ff607ba7456b7e4e0b1f4860b5588c7e52dfafb23c8c838015211f47609436cdf154cd4323704265562929152fc5f49e113e8ac06b19f75baad4d27011111873153f67fb13eeab95c1c710384b237fa5060d0a81dba846fdaf879e78d288f0110456457d59679992e9fd0504c694d026b6da6a5da6fc8057fd173725e1f2016bf194ea4fa384c2470f58d5949b94bbfa57d07ff080cfa654aa96dd9d2ea51010022364012533f8d801b71a84f0cf72a4578cdfe04307dc2a5d3125cfd1aa62aa091f3960cc2f68145da73f69cc59c2070ef853d17f6b73936a537fdc809317b49d5ef7d1ccf1c306bc5cd37293b71f848f1af0de59682f95b2dcecae0f1a70f92fab7a534d9fa17fcc8055135e4a7d6b8e8c103e64c029cf24ae3e4df3ea2d3f62c097251f35422badf5a40f18705aef7372cb3ab51e9d8f17702eb45217734f5984d2870bd4a0c9470b58a14f9d7fd90561b2fd6001a3da55aaf4fa93e9a0a29d0f3e56c0c6549d2d37b8d6cba10f15f0613eb27564caad4d425378a4828f2a2febac69b350938c1b25e946c91a7380072a38e1dabe5d860b8f76512b760a46e6daf40efbd6da3ba6604cb4b68eda2c9aa94b119c60b3121e3fff2619a4d22ab709ee46a82c85fad20b4d70b1336ece9f1f5fcace48492b200446c815239a095647f3d55a9b98603d87ac71f7ee17ad92c18b4bf0eaf3eb9e8eaba5847232394bf0723c980ea2828ebba90e81110223040b2b28309964175e5482cd54c2c7559bc60f8f8889e00525b86c6e2af89acea85d4e82cbfe9ae1b943f4a9921a192f24c1b88e412835d3651b8556bb889948305248b39cfba1f1b2e84082fd959f9eecd5f578fd08deeefe7252156aef5d189309175e388291a236b34afab5b7fa9de1452318579953b9ae28573368cc3032bc600427bf532ecbc27b742b0d1c5e2c82959ea2d0d25f4a9a8c998818aae18522f8a8d4de63f6682927dd86cae14522589dbe6550d9f5925669113b86083626fd41ad5ef96432995c493140bc38045b71b4585242f7d7d6355e18821f971b2a07d7160f2f0ac18be73d4fc95b6b75ee1adee105213865a2ef2b7f3a086ed4b7d5a53d69abb582e073aea83f6798eb8f36107cd82677a9ba4ab67880e04cc88c31a9fa2475b97fe04f2a7dfb9c738aee427ee064da2b9d298fcb24634078d10756b4a8f4d1c14669caf8c0e87a95bd54e6edc68b09c28b3db03a9966061f111d75ad07be7db46b9ff4e4523779e054b36fdccd71a5592cf1c09ad4294bede82cca477760632ed1b3dfde68b137b784177660d4e2b62b0dcd51e6fc19e1451df8d28ff9c9e44a5fef1ce1051db8d57e19a49f8ee975690ebcf6e74d8d5aba8e3fdee0851c78f3689e2674ec0da92c36781107ce530c4b51552ef966c281cdd598837ed99ff3a6dfc08eca3244bde9a4855fdcc0be88c71fd91b940aa20f5eb48131f58ad992e6072fd8c0bd4e223c7e36a146a7a9f0620d7ceafc6dda2df927b5ab81d794622e6dd7a45e96155ea48151af63de7bfbc17bc3c20b34b0529530a9e6a5339b0589f0e20c8cd6fbd758ee5b9682ccc0768c52b474f5e1762a59841765e0ee752b5b4c8d396d90d2f8bb176460c45c65a5d93d268417636037879b4525a6e469a11878a53fb6bcf452950557c5f0220cfcbed69ae346bd573786e10518187f197cf3be94498aaf3a78f105ee47bad427a53ca5e45ee07c544d65e15a9770d7eee0451758d31d37c68b596ec7950bfce80adb17423554785be0df33673a598cff1b1308c1c28a9063a6f0420b8c99d639e54f9f73a8290bfceb522d4f691d7d1b8305bed3764de36767e6f415b814a487c8eca4eee5c80aecc6e4776ad9cf64295581735541ff594c6ad55ba8c09e692c213c6f53e02f6715661b5f83689d8895e185147899f44af9526ab66c5951e0c7d6ffde7269cd495894f0020abc6baae6de2cfb71a9102cac08994c9ec0bb4eadb3ab969f7bc8098c6c51ff6a738c2e1a6f022f5b6f36999eab4dae2130420eb6e1051318d94a8ef929ad65c2b2044e5caa51c192f0d617182130ce162f94c0e8f89637ea9dea14a349e06252636652a490c087d615b54bcd1138977b5a545c4468d93202a321d2cbc373dd842762fb861745603faa4d9f53fbc6b82522305aece4d62af923bb6583861613984c44ecb8e0c510385d8faf94a8326d2d0a81f1d40f519179d495d48b20f05ad39810a62e3a26028191f155fc0c5b7fc0bb6e29da47573ee0bc4b5bb5666a19b4df0356ad6a88c957ae535578c0b88f9061afa34a2ea376c0b6ab2e9545371d70aaf37b3ad15b4965a51c707a32afe73c5113d3f1c20b1cf0ca825499a965392c3f994c26ca861737e04e6fe6524acbb6552763c20b1bb02aa8b7a97f935eb77ee0450dd8dcf255b69361265585067cfe4d3ea672542a938a0de1c50c585359438a68ef0693bf90012f4d84fef4bb5a28616ac28b18f09bce82d4661a430ad1bc80012b947c8faab77643682f78f102465475d0c2dc548c9fb2f7c2059cd629d7cf526c91b60a5eb4801d1db9317579f6161d1114bc6001236e31c83d5d69a49f2b622978b1025e64743753ffa94b765ea8804bb6edaeea9f7aaea204905430de7e595ed4b9ae82a8e0b26765318abdf6eaeb145c5299517c6445995d05c414aca814de2977fac71fa98ab1050820a5e085ed0abb18f2e58f66866b216243d929008414dc596cb9e7ea2c897646c177923abe5252d7ff28818882152a7c456306a1d59842c1661ae55a5c6b7735060a368fb7e6ce51e5243f2762ea24209fe0f38a1e2ffda642695ccda0714511403cc19810a1472b4b2d354d27d8cda8d59679ce4965d4c81a490c11b38501c2097ed43d5b471945b9ab37c18bcb742555525559a62800d1043b9e326ec81edb8daa162099e04c459d2a660b52f6aa98e0b4e74c1b2dd495109e4bf031a86059a8f0d8ef424bb0513cc92873e8a8a2973500a904abb2ccaa72abeb8c490a84128c6899ee21a45e3f4b5e918508034026c16e1442ead08a9a31a5926065f4dacf298350520e1209eeb49a8ce5eafba33f209060531695215d07edfaaa312cac08b9220446c803426084b00c121a0ff2082e2bad1f640b0fa1f4e8083e7b89ccaa5552b12482348213fa7365fd6c797359de2530994c262ac604a90084116c65ed214df96a8f4286208be07c734ab5de426a2dcc45802882bb7b11d2e47f5e194d04afe1e29753e86add0e12020411bcebcca979bb560a6519591389f15f43c602b6304049494360d18031994c14e4106ca79896948a6dd679236b7e250031042773361d1a74d50a91a342b0a294b691aee37aec0e84109c26ad51fbf5ebd2ec47d662b81e4006c1af14223449d5af54bc0882531b5d319d652ffd2d108cddea092f91ed264340b075f2d3fcd4be8cc9f3074e68bdb718c5b2e9ea2233627c9001c40f8c8be67e4d7a79b44f0ad8682d103099cc701b365a8bec03a3ec65fbed9bf8c00715a2dd62b63a6b86b300640fdc96906d1e83207a60d553f28ba5727bff089207ee3554d0a51a324846d0cc0340f0c0be6e9ec552e239069d3bb0f13bf575caee6f516a07c693baf1cfe9939100a903f7c2e3becccb2a425703420776e3fbe9dfceafc784e6c0ffc8551dfde38e452139b0ab3cf5a8649fe94cba0711207160b5c5f2676151aa2f191cf8537aef3b4707f20646db0b2155ce4be739ee06c64743fd736e13aa62206de05e7a3e6f55ef5aa66603afe2a26d27f6715fbe062ee78ff134756b1d61f10ea881175349884ac94be83ac108c101481a183db9d93ef6978ea386117258e3ac072068e093a891de1553bf8b6905c819b80fdafd3ef556eea0998195bbad527d6ba96a9032b02de38a4e6f2532705b31af56fc2c5455670c8c909b621096bb63c9241031b01bb51453b55165942b4818580dea596816aa9a49050206568b8ae2ee32e5bc9805f902abd54ebaeb7a2929a55e60f7bb941c11bd3a9fb20bfce66ef7e966565031102e709f4c2b7910a962ae1c640bfce5905b2b4de8a76946d6cc0e881658bb519b9466a9eb5347d6f2072059606408115599842058604b694ff5f0ac1f950be40aac16d39f4b370b62052e5bd0bacff5df8bf6aac0a74a164d998ea3523449dcc60d2b0ef00f20f1111b3158530c2054e0b36ad093d1734af6e929f063fa9d2cadca39e282488111d54ac895494bddada3c0baccf146372529533b50e0923e152a35ebf71ccf1a22365a44c46dd098612130429c043126d08186c05e833c819359698d96377f537831007102ff9e7b5f677e7972d4921b5d43a42406428f00690297538c5a42b5e67b6b060d5dde8119331e3099d0c0820609495f3199280284096c964ae6a81d9ad26b13c8125857adc792adfe18fca3042eaa1c5c46a95b69340a24096c48993e2ea350baf30f82045ea4666e4b21744cb5408ec0b85c13aa31f55ca8c5086ccb1495102a2b39ca3345e0c4536875372e835d7e32594080108135332157df95f6514120436053ae509d4ce5faa77b640dcd001102b7e934beca32b3e63b08bc7a51414fa68a318e3e013ce521304320406053ecd8b5a1a57c19ba14407ec00ab9b7a6c6467da73701101f307af485095df1b45452901ef0ca4f542fc8246adc03e101abf579de0d15bb3e45236b93c96432994c265af00f203be0b6a28ea6ddbb6dbda20356a4c6574f9a2e8bc972c0a6129d42f5855697351cf031a6a0e2c99cde3ab30ae40605994d18d3a36f4294d6cc290a2507406cc005252f678fa26f39066bc0e907a9b4cc4ddac22b34e0b4dee90ef51164066c7ae6a7ce2343ad584064c06b955f57495dc185f40f24067cbb9dcc2c4477cb98bd8301e3aea2aaec8d1dd5f5772fe092e5949a7f2f86c698d204101730aea26b0769e3aa238402480b1879aa43294f9f84cc196405101630eadaa2d6ea6f94ac0ba20f4056c06b06df529af4a9da7007202a602bedcb4d51a6ecf459a960454b3d2dd4ea2e2fb50b54f06b975feb57969d95e3e214bcbcac356ad742e866dc852938d7af2dd3fb25a3ba4bc1c6bc51e9ac31349d3c49c1a6e74cc2d2e6172952a360740190c4a8f45146a3501c0c05822084410000a3e7dd0073120000000c148fc6431291603a2e3b1480044a3a305c3438242e1e120d06649138240a07c3a150300c454118035110c4b134c773a4034cc89c9d7724a9d6126750f1d5e05161227e40d761aa3afe55bde0076c7dd00c2ef6b6474b208ac30868bd8e316e3d48039449ba572a0ae9587ab02a20d2d49e9dac008ce700c868b5dbdfa9331938501fe5e7febfd56e6a1d3d5e0e0bc2e7ad84b83467558106181e2fffeb167a331ffb5e167bc302bccd7a846b83dac079f4c1a54b1ad0794728ec6a68edcdc4416a464e1bcc46814c4f5bd4ef85888a05c494e864c5bea83d14a43b0ef6133c9921ebee92fcff2cd910f1bf255228048e0c11743611c306e1c8872097892e6e40da854484d920441ec894956bcd46886e49de6a4a968f86889a60982111fc7800ce9572332228d474e74aa1d94a1e45da8b4be4fdf21c1bb29269808206a0ca022ca2240d8b08a129f427cbfe38f9b117b5ff78e4176cc2604d22e68ea88fc8b9c42801bb7432b55391ccb96681669f00ff258360c34af28f0a1dbd757d7f4c87b73dfe8e024980e70767e363aad0431c6fcd7b27f94dce853393f759a0ff1fc03fca40d834a6fce3763ffb46dbfca0b461dbeaef1874006f5708f5d0d61dbd3b5ce31ac14fbaba7eca92e856b6cfab86448cf976b7b02b0b0ec66a00b722ccc499ade612097b990df94d6dd9fa5e9b157d1d834be0ea99f277361985729fda5399b3cb55b00d0b3ce0d3a48e36033aff1adfb9d98cea413b59e610fbb94113aafeacb9e91378477466640d071ac740c7e655318069f3d3730079c20239669f2752600cb282b4ca28cfe323a4e16c01fb825289c070808604cc918e96809e48e587b2a0e6a61088147524b4e59cddd5c2f2f445369fcceba29cc0904dd2e1b76ae421993192784a712796e9c1a45406048b60f68a726d06985db813788637a6f7de3bc5975c7cb04a4593530812d9a3057a40a286255d603d22184113187fae13e5460e0406c0cc0a90f2914a643035e5455846ca2973332221e267295b05a7e0589cd58ed872ddfd6814cad389946472a8b60b74ff76b6f6abc5feba8522b3ecbef67d822da7ec2fdc114f3f2096cbefafbd21d40fde1190ed303f49828ac6c1246b93159d5598a8a42a4945b856e098890a39469ace4d912f0f07ba054c01295981a1988063130d31ab46d0b098e22adecab9faac07854475c6110035e06a3279d3280fe6070f379347e200917482a4de30ec89ca3143b1a4dec1d25978c71942fa2eb153093fc6e3da334c43a2a642459bae5ed227689d95d3a338e9a0177615ccf02f559bb00b91545277476d756d5a9a5de8002688f82d4d5055186bb9ecd85f944fed04cf56bd3316c24a279080c53183fc247e48ef20b655fbea5c7dd9d0bf1dd3a536249803b7b80bdc717a99b8c07d17af322b6a95d5074aca9b27303e3d5efffb3fd68ef390efbec93cf2460113d0de8d35f018d06c8466c7c2cd87daa22da1fba51f92d91b0f625dffcc4136a3a3cc3a53e4a3d4a71821c00b46f60d9819ad34bcdf31f64d2b73d60c9da7f0ae312eafea696c51f32c9f151dfd9e6ecbe93968044f21eb5fe236e8fdbdb95c1514f16bd463d2a48fd71536280f1faa3d7ba756c9ff037eb0686a072c4bc9c9b202a2c0b0d478cd287139fed5b04366990800feca20007c76d472782204754e6bbb81a4285fd03b28c85e3ab22863dda9ca3b7f6c2df76b77621ae260ed2b79dfa1db586ef6704827ac1e76ed8de52170b8a892a3c25c8634d55e6c8c94f200d74e841ae481f2a793e3cd4c97be6a87d1e716f59ca8e23e5a5d82d6a88766aff41ea8e8bfa71ca8b19b769966ed48c0d3891e0c38f473e442618199d15d66148bc84f7d7d870e07c5be3defa0d267b09837251e195999511b15e31d51c1c0ff5f46a134827c376cfa8743de6541ec2322b33c90685f5a78e5ef52727ac0bf318ef9a8dd1c3134754eb956425aa08d5a1883d367cf0abc51a46f060b59205a227c7b4b7d5606466312c606ab75d028ba880b7591c964928df70c053ae3c9c3624aa29da58b73eeaa9086d4c6c42b1e24f653b16d7be8595a86b5f0dd9fa14914ac79e2bebb17d7b95e756330726bb39dbfa307cb2df4e5cc5067386781447842635ac4e9cb52f4a470e898e4fe331aa097294f3d73845e1b4d087821843ea973477101c02e708e25394c4fe70c0beb8cb10f090b2bd00a44302404ec723cdef70f9bd9fe0f1749a226a165b23732b60738f6e6a30ce952e3b6aada87938e2c5fb0cd528d610eb5f689d57f8a7071df4b663edcd9659ce021839c852941a87770c26e3b985a6e45ffeae8291f8887e0e71327f2812953e2dc5996ea04799a50d27c15fcf320514438b1a3bca769572e12f0f67ec578e4730cab25152ca12423743ba03635f0088b4415cd99c727eeff5839dba65e64608bb30ad9253a313e2f05b051226b6683c76cf5381120aac6669dc8c71875038046041645471f723b7437d600713a54057b18df61e65fc94c7ac57b904fa0fbc23a0f0f1b020400fbe5c4b5f1d52a5acdc75b134811601508387a717f1a93d2520451d9b1a198a63fbb03bd71e7ec41fe331771cb0af682d5617b4248ef6821cd3cf2ad94bc534b138369606aadcd0017e05085026e72b52397ce0ba458d002bb007160740f2ea95e9695cac390aeb5492577e3664e585e336bbdefdb355e2e5a26c19d4151a1ee4f8fd89df5e3afc74b3bd16cc8772579ac936a36e7195fe1436b6b8f2c83868d63a807dd79c47af12747b7bf1de335e32c3603f9f4923da0d5151bc33a72b1c6f233a7f674decdc43f8f41bc677da92a8bbb45bf09b591c7bb9cbd3a1d8e70cfd7b6ccfeb5b839b084d70a8821a421300b22018d5ddfcace73f419cc75a86413192789e15d35ec56633c77921949dfd6fa70e50a4c6666a8fcf873d9ed730db203a0995dc6e19f39d29c609aaee548582c0f23e1d57df187a04855bd21d32d9f3218021874b0872f6154ef97a1c56aacd461e7a17904ffaf26bc4ab000a336a677a9450a99a93684c8976a619a324823e6e6a73b17940cb145e12d8123447f4af5bb7e7466c05a88a19e4a820458540f58cbb253444d845d28b56ab898967687593daed2dedf88fb6782a7b97ebf77d7eedd697a132b5db7a471aa035881d390285c8859a1343aba29f9263c737ed4e12853e1c8a837f72de7b7cab484aef863f91fb006552897961873407d019f3d72b42395b3ba75d78988751530e0704a52bf46f2840e821794ee76b0ce7713ec168399f4328da9012bd81d5a0f3c4c9c91256e082cae9019c31eb37407bff237784a6fecb06739cb11859ac402423c1a098fd0d3e6e9e20550e9ed9c6cff4300b194a985ea2994a51f8cd20a2df3bb37baa5f74d8137ecd6d7ed31053a9dcaee064a3e6f8473f3e031ea56a10e5e871cc3011f0f8a868d22ee5cda78a22c27ed3e907b8fd367a13039cf497342b609034314f2d6685ea1eec2f7f7a30b2fca732ebc81d644645759315fae7ebd789734ce83817b59b663fe4edf83b3b1c3e8c9e79c969415fa7f1765a8be4de0abe4d991ccd57bc8d921b20cc1a425966c9d24f077614dcc15f5d3b561553b53aa2e6beb2930523b199412cdb6f2390a10631dd59f8e16901cdd52bf60bffe939989d644e1d2969c35b07cb26cf0d7bba3e90a98e2e9428129a6544e440ac7abdc5d72217e093e3c00af30b17b0936ab75d8b7e44ea9aef1c884975d666fa58578919f1fcefa90482c379e02e2c50d955836c529c37e1474bf5f3c1c0ec335de2b89ff179c913b494a9f6bf2c8e5ff2b1f701bf1248ce8a54c613a52129c430203c6615a2ca2e5d25c176837c3a61af5f83474a30d660eaf1442e919afb6632e999f94a4c4b00bcfc943e51d88139efea41c8acff24a19c59c2da706d34cb01c7a65c6071206a48b75f3552b236a494481ae12d24b57f34aa1b0f81494250906b9d326758542bd288a03427cdb2491c525db0ba255b45d4a87e8366c33d833df7f98597a998c0cd0722692ca38705696cb68eb199c712959c0c1a8ab06f3b25f73ce40b888547ad31207a9eac8312212be1dc51b4863b8d2e0219559eed306328cd7d122197fe523c858d43fe68feae14cfe07b3f4a2fe1ae30a2677063268fa024e8eb175464d4ffdb5354bbcb34655a3e62e81a5e961c0360b408d3862be24c523dcdb147b480a19dbfb794eca1e163dae99034b9340a300baa1b0e9d63da24ee0a9ba697d0d96eea8fa8deebc36d65b96f4978a0f5660de2c0688ef9820815aabed9fd1900afcd129476bc57a4bd1fa5f4596741c684a4c2dd883531dfc738258d20ba3c914c3bfa9dd82b62fcb63d61f4881b8ccb841f17e99d7517aa59bd791a8f66afb09a0bcc0b1095fe90ecc11e9c936f7db30a0a01c1e20712c782c71b70fa6c280f2f8aa78307f7855ee35e26d14d27cf75ab4d88bc47a25ac9e5866fe5b83fd4841fc35adc21ddf207126dafd4ab88a565e44476c04648c9c6083536c2b9cfbde66086ed1714e3c3fab1b14219e87d35c6c9b4997568823132d0cd2a24cef7b1af27238c9a286b029504123744c96c440462aff5f76450c57294b99f7deaab9c47c1c1ba32dca49c334a0d09324427f5b33bcb9994ba41819baf2ca8e7f1d23b37688d5f43ad6dd8be6d057d987b5d3387bff4fbbaaef143b430d8ffd2f92705cfeaeb227769f558dba6c37b506c407368f789ed7615527147cf71881f5b0db02beece717063ec97d737716c17ffea2ce03a2d2f68702ef63fdf80bc7811386fa93c80adb21f2b9c68f1dd59c9f9a143cef0d896143051479ad75090d179dbe4edf65f69ade77b9bf2b624ee74d2ea4eef6026268c4024561d168101c8640387c366404be186471ce8dc16470e7fd0603c883455c653a9c8f1e62dc55c17986841493b9d2967f48946b5fc75ff837f218e65229e682034c2aa61cbf3e1288200aebc71e7cd621086014e44400344c6fb6787a3482f4deecedff42a06e646aac5d4be3574efba47b88f76693f830661f5c961125587148bed34c86c9b9b2a76caa9ff5fc3381576e38fbc2a104217868a7deaea962c21df76cd1f622981ea52909e61ad4a4fd9584f58ec1072d2ba9c2351540fef08fc4b3a4ed8a1413dc28d418c64fe6061656a9b7e7b2330a41811b9cf57001aa263563ed69802a3e9b985810b4e40e0884c071d9fe760b6127b221aa2563aad4bc91c76705824a18a984867d70ab6c5ac255860a4a44e6e7f051616b7aea00b988501f351a5a3a373f86a3a034846630a054a08c174b750e0b2fe68b575679f7b7126c1b86a1f41591da69a8bcd4d919d71fced94dbb188881ee124aa02c083faf098670d154178d9be684fae1be431c9cac1c0aea4974ead8b83dcd7d3113d78b4a7ea1338c99d2e0d5c21e8574722e37d9ecdc008da63e88ba7a419f0196147066a443e074631bb00fc956e0cf9ac099eb55742bb7fcbb2111b032ae359d0b0350c734f3cf43af19f73526472d089e5ade31a4ee11f31b52cd53621c35529317e57a6f8e60a8f0389a727d674eaf7c17479ed121afaf88b2f0d5fbb7686b089e784ab778fb29b0f2486c02e620a62893973c82f2ff3a575793a5cfe9c2e8f86c8aa2cb85277b2796139cd220e4947fd9b1078a67c64456bc1940a5e6e7621af23217d819dc6937ddc9bf82b605e98de6d5d8083434807478a89c0b02a0cfcc7fc98bd05410bc1ba5aa502f2d38da737a2a8f91f081d3b56f067cad6ec6856a9023dee1021d4d128c90ea7ffd59f27555c51282b876df6f8c610c369d95ab7b1020a5dab65251016d514a7d03dd48cfb0d0192c0a0f57f5ae3735eacdfbc1db2da1593b9d7f254e8c728d809af8e0aba9486874f968029b072182adaff3d88b54487941832779bc412010e9aba3449da013cc6c12f34bcd51391d58daf5701e1b3379ba5c1d7ab669a8a5acf3fe827388bf9c6f4db806f47825f83944f0155e6c062fe114f21e3b2b09877a78dde7e9b8f7bfb1246fc5c25acdf1a3196259d5603519555224155051c677d70e8a76edf375ed4226f9d6f7fd9d248ad7b386513ecd466c645f54dc3a67c0f72dcaee39d1ecc01bc62284fac471b2d6f7a66956648028c38e39a5d4f7aa88d1978a95e0b3fcdb98e558914950899346294b910a35569f6032aec75be3b2bdd24d136de5aa6e1c18c6f57874292c452226b50006d6779d21de5fa9ad1b105bceb2a26e2aba3936a3164d0687bba58faa659cd4ce7b1305b71a462390d3d6ffd134ed32a555fcff1a1177ede4259bea96aa16999937bd4a3fa56a585096e67c59f3c6ab1f01470f4a92c32131eba60871885cca2ba328f7d57cd5984a4b8d7f4f1f540151f30bf3778141c35cf863bc701511ecad7d548838a0f51399ccb94bfcb2f48f35fe49b94b0f572a56a5955b39a990ce956f8b8ef1f4f2472efc63e5826d58087d3e30f5694a8b2319213b202f2e4e842da0b61468f16ef10f105133f6beab918f7fe1de8c92f78723cc87d023666fbbc615ca3e29d4cd06fbdc3f67814ed4942e85701c038a326459ac7061307cbd6aa9575162a01267adf48a56af486ef879dfdb7133860ddf409204de853a83fc4c079145e22b680f7e753bd4ad5ebb5191b0b346e189fda126eccf4206bb17701e8db66b678a7ec29a6ce931b0a86426223fe2aa8a01310363a0a81bfe1384a4a89c6540e4540dd055af072e8cd51eb609ad92a0b4a979d84c7cc5aa86181016389d7c53849c8842130d80e6071bd542dcc4052a97e70875d177040a85ab82812c88e5468aaddf14f2a1fe9f020ac21ac2fc00cdc293d1e911095b981748ec87f40e479aa9b30836d4c0d81d2ce00c1d15a96fb4b8f96ca1ddcd4be4ab7b61f6c648ec8cd848efb88359f0316943fb5b844bfe9f6258fab4381739c4e1c2f33f88c860967384f8acfbbfc125a98bae8d8a92ea25089e9aa49872e9eb9f750cfc5e3ad6f5cb797d8560164a163493409b9c7f36f1c673798ddd83272a2a2c7a74dc9c63b1dc77408bde869d8e8bc2c19275cd468a3ae542e86cafc241602af8c46ece63fad06f210e4d20879924340886d67b3c4a491d4dd54c47c769dbb7bbc91745baae16d823a36c2db88e9044254e1ca8e29444c658c52116e0e52af3198fe77973cb481206ac00d8da29b54b62dcebdd9ac4676c15a009810354f5346a81811380f86fc8fb8207196f0831f20683210416cac3d74bbfa69165ab694420843e902c1842748e7ae8aa08e8f6972ad8f9f0f97a2b6e7bd63b1a9552d260dcd4a5039c50d6c35e326900ab75874854aabd87ac4f370d32f0700ff512912cab1c5d4c4461aa48675908321b144ab361fb044a74879fb079c8ba7f415d9bfde4926e3e83fb0226040154ae6e31d6c290a503e445174a98d699fdf3a055c0bd94aa8b12fe2c10afa4c7b5984831ef24329922c32589235fc7f694a4de00a494846243a28d7eef0215a3112b9c30f4301d66911a9246bb6e7819982ca1e06d9e80fe3d6e012df31577b3b29ae523f7eb275df8dfa983871858b2288e11cbda9eba6e9bd5dc9d4a0222295bfd508259fbd53b813a9eb35cc467a14fb3f56fb048e1f8be0c74b7517529e666fb98a4677b1bc39a8e4ff63e2e1d280d26caeebb7c600829facc51a02e56a4b3936da43df5b72fbce9b50f6ff8303b482c8cf09b651824b0faa0dd87c78063bfc28fb747c9dabd29905cdbcc0af38a312522729fac46310564b26ba11caa5579427b38571aed8df3e8f820429f1d9d8ccad1cf01eb05e15c4fe69e6cc00c485aa5fc213b257e22288fea1ac1762db2d6083a381a084be3c0976747eb47d61c5af366fe4527281daddc35bf415d25441ed2c4e3018ad6e2c816edb0ab0cf5fe6642e1c935328120b869f51a94241f456485a11c9ec210da7cb0bcf02d112ae72e617b72383dd0281de4230232e6716a8cae9447cd43045f81cd3ae0bbbd7b74dda9594fa3919c942e84db0b0343e6eea1815611ab22d24a8a2279001bf6f856b09d86a661430a9c700864052d657404cc2f54547d452ca152132c7e0059bc6052b889ad29180036d3e201c441b9c1b9df0987e6527aac45b5ca025a069c8d9427872d1993d5b644420ea9000d0066fd4792c04f5ab743242c0de9b1ed56b3ba7bf8aa2420c1084a033d7b1a8bafa620754e79697ce4aa56dc4fb29bb74aa317102b0716f59a6cc9a6d4e44c4f52d16a28070bcfad4c5f88479663df1a8fb2242590a1b04473e90aea8afc6d35f86ccac5527ae22d463a001cbdf19354c921e7d3509e4b4590de6e64389a3777765e87a0b04b52e975b133d46008dfe1448ccc9a6c0de0334b276616067c27d4c393968f1cf660e40c910d4450bf9687d6ddb81bac64d52074a90477e67eb4ff802c5a60008c150500e35f9f3e4c7cb8c690212009901a74d3edd526112e015d9062bee8dcecc1207f335953123cee0720a5c0cbe759edafd42378e19d1da9a3ef927a8791fbadcd38a0af7a227487c34bb8a25c15ffb44b58104046cb4c9212278246801292c34fc97c8db3fd82722ae766632925f53240db60a677dc9f77266b1f1b8a420e558624e5ce95ddd50ff0b9742d42740046302d7df5e85fc228438c68b7eb3dfebe2c7470cbd42e2b56e4b1143ef291b2c8b9555e3a1f45a7dc24ba800b55825b1d67a039ed782447cf3215f65e74e05adbee922826eafc4d75a93b98b37fa7df5a9db55351b5bcacd7b6b8c7c6a86bb8a02aa1e7ce99890b7fd8504925c4a228e1d3e6b0a1c3b14a3c22cb61a78761ac99c6d19ec5ba9c26ba273d35e698714a4a97b0a7ed301c6a452920358d66b48018e5baf595304cc0cff2468a24979521e1abee4d99b503bbb224c0589694eba7c3f05bee5dc53491fa0087af8c6ab272ec36ec0761fa7de69f8cba4cb5661f42e79a174d8559817ddf0c68628e15d1d166ed6be49c7943950478cdedc5c07894ee443f629307f7a40a8a49a042e7db875b5141086f0bb35032889ae9555112372620dcf8761bb7b6e65e3a887a832d5cd661e596f6b5b5645bb6c82ef65664e00238ab1cf4552d770da89c406b4932ce407802ce7486b12f34c98ce9025316b91d1ae3c13077e87cd91d3432ece0c3b4ce4957ea2a3d63e5e93f6c6a92d28e42c4a52810294819224cac9e2b0c21001a3ceb1497436745d2745a75ad3f58915a0fb3c0c2a01dd197786579dfcab7a2288d6cbf2a979018a50231443e77372c3d2e8a4c4344d1d38d80548376becccc4a91fcdea24181a334ae85ad84927adcdf446d8925a9e34b908cbaa93465d7f11bbcca2dcec6d6a9bcd4533f22c99e8022f8ef93a18fe9a89519ecf8459fc6f0733853d67c5a4013196094eb8c26ff93ce4c42ade8dedbd1193cdd8d287385c37e20a47fb07630dd1cc0dea43a4829e734ab60b7aa9d3509560282eae75b67665de72c2ad305641f8904b74ec400e23b351578c1931f299d5e86e6c0cca276d4c191427398746b0f7bd58786442d4987904ed8e0daa05e72a07e4723ed2371562dee352448524b23cc20bc1b61909227b90afb3ac490ae70b7fb2f82b48df6171f9fc2a2b96496e9192b96928b35ea9ce00043f5a29b48cb2197cec099b5494f6c9e0176cb52fa738f0c768d2760f7e86a6693e9e2544dd43a960ce7e63ddc05abf828ad91a4bf3fcb06e9d73fc2ec31f9f4a638613efb13a56250cc0bb66a1dd024a73fb2637138a3870c131710f663f610768007612f61483cbdff7fe2234ec8b4112d34dc5f61f503c305ca6b42aa7cee3641f991eb85c107935732ced84c01dba38885f6fd2bbe1e0d26ea04b16829100c02301796a8559c2eef8fa68739e93b82971ed35d1beb9fbf2824a78083632e36e6acf1242428e5bfa96969fda73db8180f68f6228fd3c128030ed7467a5955e8c0ebf2670fff89100c3d4146a480c4f37a087a2f7afd4c7947073780a3169cefe00642ecd5831782ccd4a6d13518d2495e46212e5881efd1195ec889b4d0ffc49800a5e2792226f18ab1eb69e140ecbfc008b4f59f3e164301b3d92780a20ca0c58f48468beb119629e9cd4685eda8dd39d4401067efd0c73cd7438a9e98d6b228b282d22d5f59487bb6d60a3d433eee597a0f3c3a0953b838ce6197967c1ae44c35a657fe9d7588a1cef2682fc0f7469b68ffb34635399f9292a8688727cd6016c48a94caa6280e58a3971713875cae6afa9a1ec637fbede9308e9c25731f63a9fbc4287c9a9ff324fa877428de1f828d0d14fe53657241b63cde3699c6c8c6df586ad1004fe607fc318732b3eaa7ad0a8851c2a41dcd96e6f1d82daa27d307d7c59a6a9d19bbaa7fd720cd6b280eb409bad0d0610e7cf3270ef0fde16117e3df396980d69c5f8e047ed5be617b52e368a0c6338f1a3982a936b348d9c47750b968a36a9c1f06c8d0e0337615677b27ac6ad56bdc57e555d58a4c2160278a95fc004c62f168fb9cf70a3f4edb2f7f9fb17901904f7994c398ccb922ba90527ade8c43af41845a7b77e34abeb909d95a32c2d14a6d7743ad91ced91bc1ccae073ad79a45c29c4f1a8fd544da6b75ea185269d4c05eaa0251a6e0cedba1ea0b46fc112b43a32118c30c2b6dba70c6a1024cf6badaad7483243ace3a5e9ef362cd8d678635a6d8ba65532dd6e44ecf650895801fe6d6a2997f81946330b2d5a5be6ceed0d38e9cd8a8dda7949bd08fc30a3e3ea88591a0715235743bc1ce157bf2181107905bc20cc8455597d5b301642cc187d92addd199c35daa78abaa9d7fa7ab2ca1fac1c1fc7dac502d2b3f4599cd7527b560dc69c41b11222ef2b3162ea993b5a3cde67092aaff0e2191dab55224b6afd20d6d5143c874b742d48ecb8c122ae2a746acd6f8d2e12c082d80b96eca4aee401f820a38e2e7f5cc7bbc81714ab4711f5b7fd702b26c25917f3c9c9dc0fa9e78f008d1356b5545a315d716601d8fb18a9043dae117c7f2370dd323c72140ae0e318bddac9bd1bf74ed17124401bbe259f3507c851769e32875aeb577e24afc45289289676c8875e6829fc04ea1f6d4ae9ce79b91362c9117b4e9a3a12b0021b0ee61b6d2dc41913d4204e2a6cee3b0479124a0eff42196e5ced3859118308c03f23ada615066246480f1ffe4252b6de82b6b6ff27aa01c0d0d0690a4b5959768b5aad340e19aa8b466ce2b4d9c7ca9094ae10608efeb2245e88929586ce2708ad9adcb49b8936e1ddb3ae1ccedf5c1c2a2613eb319e600ee024fd130519f4981b2061b301843cd034caef5407c3912938d1342e0108fa4150f5872344b61ed74a81a1a0bdbc79bf6176e015ca5b2daedadd68ae28ef31843bbdf13983398d404d9d6deeced15492f92d84ae389344d266ddf2baecc684aa8ad2ac6b4885d82e264209ad904c570c8745c9f6fcc91baaf499da9a99b0dc6da8da682de10f71fe82c957539cbe16800a04bd8786617b2d3344903399f59284a8a08b398a500710dc8523644dfe70820a4927fe2f52173fd7c32661e7bfec5c92202e90ce6494e6759c979c99cf2c266270c9557c1f0aba6674c74035281698007555372d9eade152cae282816b678729f2d6dcaf9a3f8292bf6c98bd734259aa660bce4db2b606ad3e31b1b8937499cd04915e5331fd0106e7cdb2615ce5c0384752fe52fe0e26ebf6d3e6f189293bba1827404462b8c4d212e8ab337409e797548e06c70d184578f03b98977bdefe8b29e9787fd44d811cd708ff10aa3567b235e745b0fa2a5ed8bc8ec8a9867e9efee4a1f8e7eafcffd05d8f1eddc6a4cb7cc9284d934404a0d3857faaaf01ee9eb44e5b41e79d807a9f65d2181bb8f024f0023590be08bf35585d0957d8bf007047a16729b5133fc405d21dcbe6930e19e5fdf6e1dc6839dd3893a298500e4ad18a83d6f43e74cea68ff1ead6998faf6a0722233ea02f2177d93b515f3bb127cdf389873130638c0ac073766e969a632a5ceddb710c18ed89066d8511609ba7bbb86324e429e28976b1a1f4f6026a69a3f1ac4f30db2929f54dda36752eb715dc643b5e32a278ffb1cd7642ba77c6ae217c4a2be8c6213263cf5068106fee7943824ba8fe311e89a8a3e273259b1cbf35502c07863b6f74b245cee7a84bf15b6e7bf65efa8b4f1f4d565578854cfd202319440e832152f717cf4c9fa99990aa369a2fc0c09005fbbfc6840e98744e1d4dfcbab6c36a413c11237213577c49bca466780b5c487d09c5eacb400d38cd2d93065b762fe89c9d9c538acae5adf048663dbea78cf7f810d0dc386314fe79c415b58d8c21f05b4553bfc49f911c27a9e9ade20608580b4f2ba69520531d4016d204cfe59a99c34d82d9393ebc61ef0e18ad56e3743a5f862b2970982a5f90875dba298d48ee959c2571d5dc0621fd00b5df403e6cb528219be7b8909e183941a24789547f82daeb48e33334c049ca23a9ceb2e249cd3dd1cc8e13e90d460218500db501727664014759c694ad7d98ffe2a7c92bf7aa9c0ce189bd2e42a4cf7190683f14ba46985ddccb042d67d045924a213670433d9e9840090e70be033b8ad3e566d3b9afa91335ee154254849c3677d93079089f5670b1c407e39d02e53a058191693bf1f27e77b940837474eaa785417d9285442ba01e728938d3a23b0943f84e4b2029c0275c320639632e410db24465c5dc5586e74ddc0684ad2326941257d01151472dbb6e0ce854e4f1b0c7728310a3565b87737e85a4b4e99cac96e0cafd0222581310ed3740a721a427456f49a921f7138fb4be07d75f2adc813a6a93181a3e5d5cabb29697158cad6d6a32645797d4fc9cd8dc2856ec53d27aea5c1210749b12fd5d7076cd7edb44b8cba459e1e17d6a29451544037cf62a990cb35bd6e70ebea1fb5c454751f66a82ceca78771a860ce281c22e5f1917f2910f1e00b02d1f110af41d14363031c38eb5f129381bd61e7cc52046ae2b0c96004cd6bdab8575d6bff447ee2e61262cba8a686348e54e16d62105786234167a25e9123c815320bf8aac363343db4620e1d399068349eb31b149af1439ac1a9cc3f0e6e8db102247372df351667e86fe735118c3cb20ff39dbc4fffc09505792be7d67459b37b9a064698b300f6595c8e8aaf9d8e7debf5956166923d2aaec8d1ab20ac207ce47b4924269278c7d174db8fa9a0217435782af78778994e8b411780da6ebd0c6836d699ae2d374801b3a40b0c515b71c3fbc6ad76f473be166761ce252478e46c566fde3ed15bb51bbec0db628f508b81bc54cf97878e3d661d29f4f7126b164ef1dc14ba546f2112f76e140f34c73cd0a6ee9ca3d1cd5712a7a7a4cfb4ee553611ff42b4b2b185523dff11b7a77773d83d5d89d0d461a518d6552312d406807d9d72821d7b6263d130c7058bbdeedcf8f7520416a13f03011417086b56368d6f7083758079c4bdc01ba82af6ac7e627501c3fbcbdc66d432986f5b4715cadddb50831672d87c7612d9486e9135dc8ed3ea8ad89b3ea7cf42769bbb5234bcedddc4241647827bd5041aa100ae7a0bbb0594cc058d7ea03cdce625832e3e06f5a41e65e5f585b7cc4e542cd9617ac0abf33e49af4a27407f0fca20964fe4a442285a8d5d72fef9638b6eca9d1cc6322c2300d38599010dcd1192648b759ff6fe77045056111c26c22de9ab88500716241d83ed0729c671230d461c7f2f0246ecded0bc7078daf91c9f5818f5dceabc30abb2a245c50071e058d7e521eaf0224a6b98054a0030cee412105291c1749e1a83a21cd690e07fdaa5a882aeb629a5d0eb7d7a7e9d03507b56c86d30972001003cf289f598441f8b05c3b1c6795ce0b02d7b260343265c18f9efcabf1abd8a8a3dd39c5760809e02eca3f2fec96434e3646261c4b87d9923f93198cf6e448943b86ce27c909a34d931d663cae3149064278da609d7f53da77eeb438d99616c7058fcc0e75c427aa8a47dc67374e32c06e623509f7bb859a82b3932784094b6401ee15e5b947de631e48413a3f7b31ff6ee29a50f7a60702e9e356eeb4e6e8314e344dcaf5b1cf887dba9f1b92831975e27a551df6daa69602269a33173502c12751e206e0710615820f90ab56699a38bcebd85938e0005d52f03c74de0622554e0d9e5464759c022270a061d541add244db3f08c75a9c8d32246fada43972aac80eb9b54a773c7aed40dfd15415ce98474f5dc3238e2f942ef66e0a614692773799ec154fe2be142fe3503a73fde4c284ad9ec2d58ccf2139f7648a2cced95e4aea15a62480681221523f32683937c116a2c8c4bbceaae8c48213a59bbe0b8109e935c2c5df7d5e5b7190193704c5e3452279657db772adde8e8e943409aa8ffb9d0468cc72005115890145f969a459f4392d3c657a0e5006e3fb4f5fef24e64b1ab785f21160b870c0e3df3ea4a25e97c6dd8958f09c79c8b6f26f13aa713ce3cc1b20c67e1371df8d90980fc427c094515f8366fe24b98fa669230c7e6218f42f875acaba0b8a3807475313fdf39b0c079fa5d4a1e0dc7f3692b703f468fdfedb9345f69d3a5fefb6e00f7711621b5a6186d24ff9240a286adc4a07e0026073bdf70e8fa051c988ddbe008685cad3c013d0ef00eac10389efbfa069a79970d563410840d20f013b1db10bc04e73f7b2e0024ca1451f1f4d6ddf524e99a73a6cb3aa81714da646b3d5d71c6e2509dd3be3037e13bc86f3c0b86e6c6a187d51753b478776598929b7bc6f503f482e97d20b94717deb30d6242f1acd669f400d814f8d46efc0e2217138e7651d96397e48941573bafdcd46bd49ebf3f22d37402e649df9046eec9e66d182cd58885faa155ab1fd10f813ee39ce76575482ccb2d84e75420d5e5b629935332e0d13fcaa0a3be4fac4636472549e709f88ca382af5e5c029f8537374501d17b1bc0fe3c3d698ccb4ba333fad7f012919528f594a8dbdd49239670dca94f938fa25298c78aa35a10cd67edc3ffece81a7c66b1d2c29cc7700e6d76c6b263fec352a9abf8d2ce960e675bbb36f21021f12ebb23c42c015be37c1a1b90d40757e304a01878464908ae7a3b20c9cfa1769ecf010611f525708a79a42de600296a85c46ba568a4e4affd09c30b5f9b8cbe0a8e17be98a92522943d38f54bdacc18563ecd71d77453fe7c08a273cde33a6c74432135538b9cf6c1913fcb1c67253508780e73421aeb5bd3a2acb55428a40016cbc20217032d8a87bde13192e09f9e113d5f3a3bb2f28706641e9c8434ed44c6d054dd52234b68d86c46df9c25deb313e4271607c40b35dfc82e2847e2fef50221a7fc51cc902d381f0976dbda114e5f9038115b3748daf6a69244653cf58c2920e97f748bb029a569ccca468c44f07ba674273b0d23588394a8b4bd7df059188b558f4effaf9490156d619a2b638054dc04f110d33aa945e820e505651336ce6da7579855b41c965da71af3ccaa85ec010618ca0851f0e9faeb5ed850590bc7357d60522c06d1b63bb45e605bd7acd2278ea4642d4b04703854342538f61a95902a6f7b39635b53504dec1f75efcb343b42f5edda7dfd254f70da0e64837509e5091d4a9bb00ca57a11b7d9fe0685feaaec9afd8fb39abc946a892c34cb2bba6619842173ce422e7d473164c57472929d20010d5fb39fad31424a27b009dedd5e7c106190aa9a4101396f03f6117d7828a61eb2073d176271cca5f1330602bf62dda29fe83c99ab9783a807fed170dc0b302ef2faa9c97b34c414d82fd8c9b70e86b9dfb4bfe5f10c0f38016a62840e34887e1acedb886f7706ab902fde752928df19819853cc9c2b66d7afd82131c35815a91ec09ac14682b101bb3da639d633cc905861d894304e6227c26cc36a83d904eb800d1e63387665989358916588b2c560c6f43fe3a60d166320766a1821a745faa4d605e67e5147e24eaebdd32923cb092b35a0b5950237d481706951c4a0ef88f6e8cb7566a06c5bb479b8dd311d87cd1e21f279382e5238f6fcc8be0e0ca4f068e794dbf8f6b13188ec9d131300aff00e814f7ae7b9b6ef3764606a898e58b37aee2c12b698833dbe1103e78abc29cbdada14200c559a6f5e9ebeb84774ad5d84a50f4b5ad39bc2ca1d561c3d2a7d9dec72cbbb5f15c1ff4cf6f00c3c92851b1173ce91552c170280e2bc2e241607d23801ae87151a3de5fae9ca94d5c60faaad2f67b2e5c7c0c544094b0004198d86a8405b44cc6404c800e56544573425201ce7e0c24c3a045d1a63f9dee880349bcd9353dc85df95ef71a8b54664263651a305a5a8670cb080e93b51c669c37ee5c4dd74f7ed95d728e3df615e6055d1fa631ef92e19e30dcaafe89422c7123386e99edb173708aba2dc1fc1491f3b9175bbeaf7c4a6a972951c3bb38002ddede0afe1eb35ec812518cc4aaf1b13ee8377607ce2ecadd14d2991a93a1634c47c44cf87f6122e860589c6529ee65397725405d010852acf52209bfb3b9fb0d16bcf51d95414cfb4bdbdbbb228af72e61ab4b0c96496a8446221afb809365035e19a577beb267bc60f6635678356e25cab4aec4cc03175925b691ecfc7b8bd198a31a5cdd9d699f591905b601f149935c538cf4659479eac8924d9f056a1025b90364202cda6977de216a77614f05f94755044d3107bb99cd89d5206f5c6a6237a73203832bd22e52dd33198807c69eacd39ab72cf96f7aa0493ecb9843d9b1038c0d0aba8441bee85992d06e1d261ce59e0fe47c98b0f127ee9dfb14a09560ce5be6ccb6700870ff2ef8886268d34982117aa4902764fa5af4686481e09896917bc8fdcd468bd13cf622bceb972096f2d51612d59db86033a957d5808e540b7217bb3dc448a5497427955eced417da5f7e435e4f71edd46707d3fd17466c8613e4952fd34eddd84c67ffe94351a2978a4b99e03bb97326f4a409a93968f3a49c49a9042d62db60a7b7cd86d42b2f08fea9c7073a0c4ffefcacd7a05cf3e0e7d6841ab9b7c32559b8262d39f3cb6de38a328d202b2468e6358a4594dc83d36ac3a2e819bb182af0db45c9f4f98cb6ddc34d1c10d723386c1193d2da6c5416963626ce324972f45d018d92697417b360b4664f5bf023e7004b10b3730eeb4d0013cc3333cc3333c1a7cc15910355a23dbacf94b824c69cbf27c62114ed22f28294999644aa2811f00f63d0221fea989087a0f7d0beb0b840b9ae036ad4c27b392ad6bed4cf0b2ddcf837671a5b39c9364430561d8480118609861a6b2430726e00b1f98e0a474b15567599ac86df9b8041fa2bda4963596e0c5b47b42db675914b72bc1d9b8aefc961bda750ba204ab4cbeb8999ab9ac3a0b728c61038c8f49b02f9d6a3057b5a5f43b50ccfe865a3a7c4882cd2865ce185d9bfae84f52ca8e1c2650f98804a7f32ba5494dcba132cb0724d857af3bbfe46a0f4abc3b7c3c8293f742ebd6a89a546a47f02b3db7d0f2efa589d7083ee711b57fe9c5284c6304ef39a7d4927e0d523ba3554cfe9789123e1671cba9f429f93945b03aa37ef1e57698e2f091085e945fbe193a88e0d6a3bf27fd82978bccc721d82cca9cb39ef057172243f027d4e5297d6f388a498e9464821c639c1832301100203e0ac1cb59aba82ad1f8a17442b05ad6d76db2468b12fec72038cdc9759645eb38f021084ecb71a36b39cbf84184816045a631d5e39de12f0b083ebbd34d6749caaf171da0b80e5044505272b20345a54b4a566e7cfc818deea6aa9def596bd449322363a58c9494120840111f7ee065fdfac25fa9d2f2acd4075e3d4be7f2ca8c19d2d6c1680b1f7c60b50acfddac4d4b953a43f48f3d706eeffe62f4ed6f5d4f927d9ab9f5a1075eac8f326a7174304dea3cf062b9205ac8133277a8375427e2030f9ca6cba4296378ba51f7f071074ee5bddeacb54c1b13d981ede89e1f8367fa8b4227c930c718c910f151075eceb577665aeead311c7cd0818debe29bda94318e6a7dcc81d1f2662c2d6b5c29422907c6543d47f52aa3c7288f039bfae9a956f3695da99364267e2365b9410e943252529409c2547cc081f70d42b5924aafe61c1c010b6ce8e1e30dbc1a6daa3b081d3dd9981f6ee005cd59dfab762dae37f86803abab3377f8cb546719292927371ce52e0d1f6c60cd4db4544f26b50f1a1f6b6085dd8a521d744e99bf9364a906c6646b73ffd6e2e8320d9c0c3a66d5f5e248efac9364e8030d8cc6d213ae329feae018609cec4081c1ca8d1b20b001860d1b60d800c3c631f671065e7639b8fee052af2ef32419173eccc0eba4b41c6588ced27d94815152f9b9485dbb39a597850f32f0bdc95b7aa9ccc57d19032f426a90671acc4fe629860c4c5cf021063ee6578ff52f66312d7a92aca464e59ce0230c8c8f287f4f52b9686d3ec0c06d67dda05fbdef5df3054ee820ba6c8554a2f6f9f002a33a77f505f7b6914935f8e802ab32731e59639b232217581df77d852e13eede6f817dad5798fefcf3575b0b6c2aa9ffa5cfcdf225a118288d5651e97c959405c747167859576d949ffda2fa8e055eabd2ae25b5597c194b57e093dd8bf5715db42d2d2bf0a3c245edcac58e2dd72a303278cc59fd07a9b5eb830afc86da2c4b7daab3384a480c1998cce0630a7cce626acf9a2fc88dad31c6982de2630df6b40cfa5679ea430a8c8d2c7d4164a67a29458117b46af9429f0651a6f401054674b81275ebd25d684fe0a4ab96528896a7edb23e9cc0aeebcf2964d7caac5627c9ee6c90418256d9f1d10476b3e5a4aa852ced9fe524d9199fc33e98c0ea696e9dd1346b77f36309bcd42cb56ba9e58da7f9a1045606194d061db54c3e92c0491b0f1763a70d3a5f1b6490a0a464a58c949493277c20812d6dabc9cdd5ba8cf711780d369e748e52c816e6871138d3527a9aab4bbae45f045efa90aed406ad5e54bd0a1f44e065289df4ade97d509d958f21b04167f9a6b4dc84c0bf8b6efed3621f41e03cf7fc7316f63d3aeb0308fc08ffacea55b8a6674a4ac4f0a10623c293667f4ff78213e55afabe73bed1dbb5c18317acd0f1e5bda855ba56d72e182d4ba559b554aed4a7c030b13278e882d78f2ab3d3576b569d5cf02da66bf174a4f0b60d176c6ada4c17f37af8676ec19f7aa9eb5f4c15172537810d3054f0e0610b5e4a57225c55ef3dd7b5603c879dfccdd7cc59a5057bb6b234e697446b179d052fb6b6a9091dcb05f14e16ac52aa34d8c997bb58b04a54c6dacc315f6be91d2cd8d4d9c5f8f26dcb77fe79c1e3158c944afeead49cc4a4e6ce15bc745f2175fc846affef5ac1bfa06cdc34a3b8cbe277ace0a5b0974fcacfad82ad9722b52c07a141c6a88235cd4179a82c2d5d2e53c1482d4b7b0e9a65765422a282d1e65a5e97a56941bf86780ade74c894e31fb59c3e341ea6606434a543c445f4058f527052cb3c75599674da8c23928235d7ab94f49843a9f3208ee27cf59216d456bfa2e0955e150fa2692858d37af73444d5a77241a060b47d6ccfc275b4cb297a7c827f97a383527a237a82133ff70ef275d34eef0427221accb348115d174e307aebe2f7418bdf426713fcc6740f2d6b46136c27ef249a21a3668fcec904efe2282dfc75e7d899c204e37ff2ce4c78cadee025d82c279db5f4ca5fec96846809debc63f6e9777df44c2578ad35e86a51778beb983c28c1bb2cbb98efc5b357f55ac36312ac94374a0bad5cf6b83234828724585fcda576f3c612614682d39973678bfe3b72b4182578408297efaa3eb775d62b3b28783c8253a55e5ea95eaf8c4194040f47b01f3c9a6bb59d3af8c9a311fc07132d473775ddcecee0c108be36aa6ca5a965d07270117cd0721475ba5e8fd0ef3cc143118cd2622e47f3cf72e89744b0a9a5cd9d6446993e4328292f402686c303116c0bd5e95afc0f0fc1caf6d3a6763d43f05a3a9d594309cfd6973b781482f10f9ab46c1b73bd6921049f2ee8e43a87102a473808368b71e346ed04c147a9be2e4fbacba27ab135780482f1349e955e51faa268e7e0010856941e9d055b595af5a6c22525adf2281e7fe0ebc595c2755a136efb81917bdb4a43ef6939675df0e803afe6e297ea9099d328f9c0f86f7ed69e5f556b760ffc79eec910aa5c9f6cd103af377d856d5a7b596bf2c07976a9a5be363c306a5d54959f05951fbc8341fdbdbd989b1d781bfd7daf4ae7a85099e05107ce056fd1558d6755fa5b82071dd88f9a2b33ca8cb1c56d0e7c76b832d71b3b8e149203dbe993bb283d8c03e7f28bdda965ad6b74d4113ce0c0ab3e7d9f65feb42ba4c7e30dbcd0f55a9e7a0d757043f070031b45896a4177ba868adac0e9129a7348d5d9c0bda471859f69f184f0ac8175d72b639650d1a76b35b05ad68c79b59cde5e0e7aa481cd3d29947e5739ae231a38754ad428fda029789c813fa9ae2f0bd9e28f7031039f1d44ba9c84bbe99c2f032b6fb45c705d9181915a1e5ab51cd3f49f63e06bcb7547674162e0d536cffd56b701868d1540788481137a74b297f91b559ec0c027cdb270ddd99566907f81d1c2be64909a469a8a54f0f002df510b9edee2698e51ef02db4abbf851ee4935aae2022f7ebb79f5b627cddb16f8ed16c7838c7dea9d24070f2db05ad6628eb6bad4be8b9a207864819784d249a5e624f23f080b8c962fc8ac2e352be19e2b70aaa7b3d279d5b3cbb402db1be548535fabc06956e9ff674afd7347054e67b1fbc5ac25ff251921784c8151e6499310ae4147cfc282c71aac165d559ac876598a3601c1430a7cd2fed95c7a0c5d5f14d817940c336f515d561e283022c27db5a8bb1c470686c911c2e309fcbbded3ecd9a9256f27f072d82b97baaed7c426b0ad7632b496b5a09a2526f051d9e9fb30a9e95c24068f25702b3fd99fd04f5b6a25b0f17c47c79665fc3dedd1c12309ac50a3b15473c77f59460d0f24702f086d695a4b9da9e5c1e071045e16d35d1c9de56971311b648461d0e0610436c735796fda59f87687563c8ac0e95c4a4bd5ba5bf6fbabe041044e348b2f6e6ebdba052d59f018021f55dca3523a768c997a0881cfcdb25321db94cc790481d5ffd15bc6184d355c7ee0010456a56b8f8e969e5de83cd4e085d4b9b77a1a840e2f0809e805ab5dd2195d4c1d8d62f3821111bfed9242280a09d805aff3764bbbaaf5e9a54d75c16739cbe052689683c717096c8061630460d81081e682737da73e499daac36f5cf02dcb18f79478cadc2e778704dc824f225b5099b1b705abbc656ab9fca705b525a016acf6bc9dd36b7d3135b401c61d2201b460b3fc9d931ca53ec7471db3e0364b0bca847469a23c59f0d2457dde5f7e2c58d9d9d3a6ba2435e8cf1286d0a4c50d519f4670f662cb185cb6ace4a63705218ce04dff2bd1ada432972e5c04bfe99fb42c8f4b19b4a88483104570fe2fc66c4a7ab69f9a501092083ecb12ef14720f41049feee55f8db1360bc2c50c8d430ec187d8ba8e56bac3e4b7e36fa036c820818d475121034788213811425d9f0b5942cbb9722b042fbecb6e15f33dd11f633b4208c1893e2984c756a55cd61142c820d893eff52a3f75f7ae6c081104675aa7e597fc3b46fd4e92a1ad9040705a52da4f576779aee56a47080104274bb71c757fda8716ff03af3bb6b9cc7c1ebb34674108f10377abed3579fc339989e7e8e5554c6ed15c481f1811524493d098b32c274d42f8c068e9a7cee49dba293c493d08d903fff9252f1d74c3bc4df6217a604dcbbbe3482dbf62ee5176a02421240f9cd0d24d37fb8a6731f38e073e9a7c61bba25968fa310c2177e0368792ab7e53069942315126a792b2a3056fa26325043bd0e092921d68bc1542ecc0b6a0e4770b1763bd56aa032f47a5ee2b42798c1242e8c0bdd2fcd0427bb4e4ef1c1891c9c5131d5246fd9224089103efd175e997e9751c5fc58155526eaf961e5cdafca21b84c081d32a342619577396d5f8065eb335cbf1059de3b86f087103bf26eeae253b95103da40dacf697397496b4eef64f8e33c6b811c2064e93ca1852e934640daccc392afd5a94eeb7cc122342d4c0099d5a3aa1ab39c2f427c95410868d3684a4813f2dec4ec54474baa404cd10820636691773d2abdb74502e2167e0734eedfcd2c95129fa1033b09ba54bae1dd26d5f1b5206c6a3d04aae6b0e5a8a4b0819380fcdded267fc6dc19463e06599ec4c6a6b634421440c6c7814712dc91b6d6f1858d932546f8e2564262a292667b44ada0942c0c07ee96e793af5d35b3229215fe04508a177637dd607215ee084693bd79dcf358b2d3d6382902eb0a9c5965f84942a4f996e788e2ec1182c2809e1026f5a7c59ba8c2efda87892ec7780b2621bb205e36acc92e897836008d1022f9bee119a258fab859f05f6b34ffc3f699921a4586077a5dc973eb82c6de715186f2d9fd49feab5163756e05b2aff903a8bf7d26609a902fbf173e9ff298ddefa102ab0e9648c2ba3d24f81535f2f376dd3d19ab306ffa55d8e7491141817f44ad5975b4d741605464743a8b5db57a32e2150e0a496cbe94c4cd4e51df2043e77b5a465943ae6eb98102730a63999d27cd15d6526a4097c4ee3319752f3cffb843081f5f4fc1d3a0769a35a4b60ecf34677faceefd10a51021f64dccd13dbd1db584812f80f91f9597452da5d4c08121861a32f3b9e8b9d7492072147604c488d5a5c2793172146e05c6a796cbd434beb31252525480f01901052045e837097a347b9db0a4f564a4a56fe06296b841081d749adcc4a68ab37e1870c8171df72d7bf39949b9eb712220476b54b2373d66aed525e0e4282c0af877695d935d528971020b0ee2d35fcb4f849b29323440dce3ba308bdd95fa88ee37798a0a464042cb051520206905ef0392ee63493ab438ae377a0989cd12a682d00e105a7596906f5ac2775f6bf7276c18b6c59cc5950591836c808e38c66013a2d01882ef872d7f1655976b946f52b7de30567ff86522839100e4072c126d150ee5a4cff18a327c94c3e478a1d0892a91832303901082ef828b524e37db6db1b794a0ebb05af1aa5bbee7c79752791310214d800c34609406cc1a8dd14575799dcf6ad059b844e42293b4c6000420bd6dc5bfe6f90ed2e894e92ada9a033360bb66588d4da62723987ea24598ebea1a30420b2e05d7649cdb3649ed5b920b160cbf48eab2d97a9e59d051058b019c24e4fe816c82bd8f2a4f3cbeddb966a82b8827df37c2e6f9449089d0904482b1829b4988489085fad5b8a00c20aeedc5f16d392091995d22a38cdb2bfc67454f3e9270944152220a97800082a6c809c020320a63020a5b871a3c120c5282e00220a5e4b51a1f44a17fff40f45054040c14b755b2384ccb2e5b13fc1eb95224c4afdf184490e4c2600d2890880704202209be0d5c52434b6a0fdb5189ae458263856fa0c93dfd12a3b561035b192c6a380022099a0000826d87dcd5aa49b99a697f91c280a47ca72862e618201104b54820fd342fa66b85c953a20946035987c695db56779e593e0c75c9641a792a6f17d494c0024120f008104a3aaa1640a9df4be500204c8234c2000e208078034829732eb4cad5c50a1c2250d29803082b373293fe650832c821f5b293fc8f4ed822a4f928128827d9983b8ac3537089044f02b7ffd5e5afdb7a93f496610221a022087e03c47a499d413a159e6d80b4ca08262724c07a88262a263e58018c2e40b9042b0c105b7cfd8b5265bf224d98d1b6d924ec73b1a20846000c820d855f6ba3b67700f2082605de8acedcdc9b47d4d079040f07216b7a595e75a72b9650710402800e40f20207e30a900481f1600c207141d2068153340c000903d305a9870f1544bc485aa0756a8973b6b175ff0953a397a59c903e3bd5a67df77579a2a1ef8deddfc32b38be37abb03a783b6a04a8b769b74d00eacaa972f7f740bb2745307d65f4e6adbafe5286a9e244b3140e8c0a6d4ec83cc81f7f596a3d9c99367cb81d339836dca975433e84d19207160b4e49e1edd0307de4fcbeae975c61e11be8151da827aff13ea37b56ee03b6ad5fd93b7a6a50669031b958caae4af78144a0ac206feb3482195eaada4c46465e555501a9a2b2b08b2064ef9689df3b96dd49ce99d0840d4c06ddaee96b43769e0b4bbada87f4b264fbda0dc5066a800040dec8b3afd48a9f5af960f809c815526fb4db75c372d3c666083d2d6a33ef6e748175f005206564f66ade5a0490751aa3b1780908111f98246f72cede4ed50691d07ad31b049282935a5eb2062e083ec6fa1b3ba3cca460f12065e76f1d4cbab9b2ec3e50639526e808081ad532eea8c3ab34cd14f92a1f12705205f60954c3d295b7cb14be7e04059debdc06a8daec1948b2fd3b8aca0e8203700d2057644e56b7acdebea430c03840b6c4be9f7239392e6eae52459198dc3d81658fddbd75a96544b6759c6f81c639001a205beb3e0c2b75dc65753b3c06fd6a2718374b1c028b5a994dad8720b99bf0227b57ecedc2c35a84f4f92fd590ebe05ab2056e0e39f1472835e55ad671578a953fdeee7a7ddaca1022b5dd699459b7fef8b9a022f7d543ddd1da164b83409206bf02eaf9d8c6d7b9a562d054eb8ea95e9e29e9673688649ee3003878d11b0c0064814585d2fdf7e4cd575211a804081114277697fa55c0e1f419ec089cba875694bbd2f99d0728038817db3df16f47bc9d4e22abfa2d22a387bbf10803481ddffb831af4cd2c8d1680c1026307aaa93b8e654ead474e6204be0ee2519844bf6dad2a527204ae04b9eaa119ec54092c06d8ac8ac5b274f9299a081b2ce3a0082046e54bd93962507bf72045668b8b8f175e97e8f1d046204f65468693a991a2d45e724798e4f0c52043eabd4514729358472bd1944605ff36b214c6b59d0ca73831c982043e044b6dcee59cb0a81d77266218450aa554c27087c66dd2e772a2d20f0a1a5fb3121b3ef6635881abc4ca745e5e90f3a85965eb02f5a26759e232ff82cdebbd0ea64bb60bd566b4396decffea20b5ef76a2d6452a5ddbdca05e32f2617cd3437b966df82929277fbc0055f1b2e46735f7f97ba91b298e80a3e6ec1ea9751a8539975d2ab99a4bd5f8a210393f4610b6ebc764d3486e693ca5f51691d6b830c12f4b3a0a4a416ac76dd310b7a574bc7d14932347a478e34565026faa085b2ecbfb5904ae724198a4919ff3a120b4460f77e2af898059b0571a15e4aad85cba5b1ec053796f78f237cc8824d2363d2d532dbe69c89052f44dfb32c5acb7cc042d34af88d5a6e6c2dfbb4ec5a07a18f57a4b492e5c31528ada43f5ac1c764a3a544bf74ea69c11d567066bae5983677a534b60afeb5987569bdbbd668aa82d12d73f6e8ee53a2b754f052ed6dbf286f4bc74605a7f3b7e93cd527b2c5167c9c82d1747f793d9b67edb19212cd15650a3eb3d4b9b418b3a0f5a9313e4ac1a76a8fab223794eb9a2b2b26293bf234575ab028f82005fb9af3b7b3ccee90e68afa1805a3a3d61c3db3adb9b2a21af810059f34cb55a1ee756edb829212955f29297957f98f50f0594aa1b47442cb5a108fbf8e5e56de64a9a9fc0a1a50f0b7e6fa4979dbd7979fe074a3dca4a97a4f70b6b9a6f9772ed7da094e9e797be72c7bd29288136c5add51e596be09467b0679f77dbc6e59293d4f777151080edcc7ee902eab96b494396fe05f6e4947a5ed94d6ae7103ff2d3c93cb5aebfe0edbc097788e9f474847d8c0caacaa43d4e84f32ca8cac8171a5dea30eada994fc8ca8814da1ab6fdb4aefeadc481a38b5a3a6b35c772c5d8ea0813317caa38b59ad4ee58f9c81177b73410ba9471c3103ab52bdac5ed0d64819185d2943a86d5973dae4f260840c9ceaf2b5d5a055be6db23a063e9e5497e5f84aa11b1303ab5edb8a1ca1944e42280c6cbfda4eaefa2b2eaad28181376d975d76965b9bcebec027a566c2858e5199fe47bcc0bd243747d92a44a5cc47bac0698d2a838a6614cd4a2e70a6ea848929d362d051b7c04ad15195ccb252b61f8446b4c067cb99eb64ceb959ca029fcd4597b5de78be5773308205bed5b9ced3265ba9d247aec0694e9be4deab46acc09799da1cd3659d370847aac098d4ba596cf96529b713c20815d82cb949780b3228fff60c235360f5dd6bfc2c8bd97b700d4eb5329944bf7d7f909e388c48817597773fa3b62866a384361205fe858c77324d6d26991128f0e79af35b78697bd08c3c819746cabb7bd9ddc25cca187102bf2fd5dd88f2e077bb19234de05e5ed7eba693e917cd0813b8d57a5f6a3c741693ba32b204be6559e7a08536d759fa72c068185102e7a6dab2a85cfe17549bcae88741f29124309ecb33b7679d4c99c63be5064ac10812f8729d3bbdcba59ae3a6c30c933252526ea8adc006186b23476093270f5acbe7ff19422346605433dbaa9623376bfd4811d8ce2eba983355b4410609d27814e81821022f5a34a993a83a043e6b1b73f5927ad762a9831121f0f1e3d8b8e0ea5acb2f41e0bf655a5332c776ccc7f1e98c1120b0ee5188a88a964495d60c236af01f75eecfcfdc9fb516915eb0fad495a98c72d44e080d115eb05a996795ad6ed50795d176c1bd963b95bee4ad88e882d3606ebb2e3b4b9fe59c0000412417ec676d41a933d79a85d44932e5262b6d6c0504211081ffd23a5a90c6a3c00722b860a4678c5b5ad6ee4ad722b760a3de1cfd75707d1de6493251498984882df8da6dc1b73eb83aa1b42609915a30263f74b9ec2e84c7d288d0825b2fd7b552b72c3dc64e92cd82d7ee597273bb0ea1b37ce53d25c759424416acd0598ea26b5f291b993146091e45850c4088c482f1e8b2958b3afd74765a1081052fc3e5cf9d2685105ebe82174adee95c2332aa96ba829372b51c63adecdd16b682512665fdbfc6ecea7e56b099ff9d35fc55bcb555b0bb2973525a965c4f7eaa60f466e936678a0e0d2ea9e04e7ad041a84a4ad2f820820afe3ebaa8750b5f4ffa5370a675c6d014d114bc34a569d5be5bd2fc2a05a356b8bde44a470a56fdcb63a23a9fb770146cee68ca3ceecb56261205afb5a6636a35fb1ccd50b02ed3293bf9c14ec81528b8f756ca0513e159ff27f2093eae6b144fa7338ae878827ba9d56e92418b4a7527f818659674efaab99d8813ac72e91e6f65b809b646bbe89a522b71595644139c96ee1d95d4b255869b648451525252b20202914cb019b4e39a965c30c1ed885ca56551b8fdc8d68e17229760958b6efa64eee8dba513818825389783dc7349cb5909991983482538f55a96b5d272bbd64619084428c148ff0ee5ae99776c04e35154c83078024082c824f898e528fda58f6a65266507da7b8a18474524c14b23f7e556f7a9228322c1291531edd6abe5ee28020956e64da349a6896c45cd2358d91a6346db7cf7a24e8e33525820e208466e4c2fe779f76d944943a411ac470d95a9a56c9941cba1408411dcc9e8e931baa435e58bd98a2c8277d329d47bd9a80ffd249989e7e81b7da8868822d8ceccf2c89825995e4433249208366feb4ba1e7df651a292a3b56de1322582d8469599fc8ce41a827c9cca02072085e68fe671da3de2ca3d639113104fbab74a6d7a75eb215d1405985e06f7532ed9e5284606fb32c28293be67d29640e182360810d48880c82552665bf14b105c14bf245a163521409041f5ffb67bd19771140b05a2c2ffdb965565ad4aaa4989c1288fc8197838e5ade9223836eaf66fc8e34427043c40fac8d16858c99b3c47d24d20756456aa9ddbda1398bc010e1036faea7eab5e8e9525b640f6c7ef9353766d9dfeee780881e785f1dd3bfeade60b27b9563649cd12cb03ba355c210c9039bdc6b5fd4f82d5a68272b5d028403113cf019736ba5a5b44dadd228ae41e40eac0829437f4c4ae8b4c21b2926c90ebc2c7db7ef55646af6769881e3062275e0464bb6db2ed49dc8f324d9e210a1032fb7efa930ad2aec95a3554c6c0e8c10cad54dca17d3537923109103e3a173fad00ea165d7e5382325310e7c77478d71f74fcbd38271b2d225d0d3d1384e2002074e3fa4f294da5779cb02069137b0ee1fa3268f1a34c44531b13144dcc0be6e5954e749ab887a120c9136f09da55f6be9f3780a9b0d6c94b72fbbdec870cdaf81f30cd36542a4349d5303aff531bbef979605ffa48197dffe45cba774489784065e7834cfeda3be94e8cfc0af867892723d3fabdb64cdc0794af5ddc97d936b4d186b9e2052065e16fdb9651fed7b51c9980819b82dd5265f54ca45d182e9296298639131705a481995f0cefa950c5225220656efe3e9966a1d94dcc238b624100903efa2dea5532f26b5241130f0a290aa65d331ca2c63e6e4e045b0fc0becde8c1cbc9b2caf835581c81738d952fdb9dc207aa5d40bbcbbdc4c6ff20557f5d20576b4eacb41b56ca225e3027fbe22858dfc34eaa2c816f82cb3a8abf43c5b8592d1021b45a7461da931559e59e0c5e4df8beb1c529f100b8cba1a3f2d2e2d720576bb5d16d4c6139a65cb0aaca7667539ba73d3738fa24246182255e0a4f9b7cc0f1e15d8d6a8c5248316d35b0a9da4a4bf03e5884c814fdafe258da55a3a3d8aca0e9301913578a5a369d469f48d5929703a68a98578d778ae1d05de4c6b317e8e21b424f42250e08374517b7d546b883c815b5b21f65aceac31a7292b39521633742b860c4c4e20e2047e5dde154247cb72e9a709bc5cd283feac56b5bc322630f649d53668b804be5c68d1e57e54abaa5102ebaf4ac9e0b2ecb29655912470a31eb4b4cfa5f7462582043e065ff58d2245b534123902afe59b256f71f42246e065ad37d536c7a839f422f082aaf08fbaaf3963274204ce83283fad9d615ad04486c08bf1d3bb74dadf7fb588107871fd35b78d5edf7d6d201204467ac62c2b0fcf104480c07b34cff4e8deba6447041135389932edcdb6d387bc437ac1c70fc2f5c8d287f082d741672d9aa7dc927a2442c82e7893aa5c14fe1e436774c1773673f19c21b45befcf0523947996859e0897366a84e082113ab6ec7bb7d5a2105ab9059f75ddc8af935a767b05e5c6ef4039b1059fb38ad232d7590bceeb57af87d2795d1665468a89f7abd082b16ff972bcd3a2b4201e84cc8231a574ce2854713b59703f2ea59716a6fd2eca19272416ac965dda6f6e397366677c8e378405b71a8390dd22ec4cf6afe03bbed6cd5a0ca693d67105af32a71731912942bd92b582776d6a84cb372e6a51a12784b082cfe972b99cc5356fe1626e158c48e57aea5969d1f347159cacdb2c5ccb7d2ab891d9b1655b7b312f054d0841052fea63942f7e927a3216720a46482dfef62684bee43921c414ac9626b4ac6932e94625c5d89582f7e449bbda92d2852691828dae3a77db8bd672892769474a8a0a164246c14b9ee926a47e8bf56dae183230b91051f05a145accb275ebedee6f2e65e530c18211120a5e36a1ed058fea73091b149c9e4cd7a853e7e859ec137c7796f00ebab476f4049b3beb106f9d99caed04ef25c75edae82783aa39c19e6a998bfe1ba366dd2638a9c24e666126846a4b13ac967332d192a995a6d7410a8e5731c943b6038d471984648211c2b3fa1cd5ee5b68414cf0636ba6d6a3468dc113720976a4b892daffb4d096156209fe657e47195b7d922cc719ad63c5ac12ace6a445f3a8934691a79364376ea09441093e68063d1c4226c1a95a8d6a5f377596ddbb25844882fd20e52bada7e3328a569ba099b13d844482510d3ee251bda81d5b35844082ff987529e5a6f165e4408fe06469174d57f906d33a8ee095703f17b0cbc05906f0cc4d60b91a647f6a81094460d9b162864a01029086ca00480056547e31c353547424a0032b283a1a2400670040003270463c0080951555420001f48ef6920204a077b4a7a8941c00000368400254be8ca577ac98988c0020000a38800e1c5b6083f060fb5a1c757ab34e92e9c0b168815be1e9f9375b1e9362160ef00516f88cb6f1f35f8e9ea4128ec791d017574843c762056e94cbbaf7d4b8669f27c9d2d0b1e0781c08c7e3c82faa80283b3c0507151065870e50dc0c1393047c31053ef8fec7ef189e243d33e30cc7ab98e800c54d7c791d2b6b3b72a0e04a0e941d3750be58034d10f08514106587cac9ca0d1393047c110544d971e364a54d4c12f0051476fc0a8ec761802f9ec0669ede5e6d5aa8fefb0b27f02f5b16bfd7558baeea5dd19162628c035f348117e48b791f954be1a6d5c19f1b8d822325471a375254f03f02bd95117cc104ee733a99f4e60ba55cbf04ee339b4c3a474c6707298153bb6974fc2c8bdde14a0227b4996dd64d6a842abf40022f7314fa9386fc929dffe2089c52a995dd98d01746e07452952ee67621b5ee22f01df7848b3a7ad2b1435f1021a94abe204b8e76bacec9fe6208acb7e898dab5caa0a215022b7cd5aa3719b390990a029f2ee966b97c73f63c0202f7a2fcf3cbede6bfae2fd4605bfb57b6bc318a5052bde08532a1b2b4ec4ae76be1052f5a4b6ad7ab233b47bbe03e74daeb8eaa3ba95d17bc0e7eba330ab5a656940b76b4e8a6652f8b3a2a71c1be98ca252935c9979fbe05db2e7e7ce9fc6cf34d5b70eaa35797c6fb975d550bced568cd204bf6ad56d202a95909affafab957b4ceda3c8b6416ec7f7e905906dd2cfa2291052bd7c55cc7a094f6af28166c49ed5c8f755a7aa13c49564693010bd65ec811dd42a98fa393bc826ff9b316cdb2eb8cc4157cf41757ffebf0d25989a415eceb1232e596e8bcaf3409125630da32e9a4346bedf1b555b0295b9b8f1ef92fb78e2a78b3cdd23f75cca95af09c5470dfb9d34bd9edb7793f24a860f4efe7ef2cb34ec10995652f0719cb955c99821765e999bd9d667459a5e07b547bbf8eda5222450a4626fd1b5cc385eee8a3e0056d49c8dfd244c1485b9deb4dc64c9fdf50f0492bcddd7a9e6571a5a0e075ea9750a7356a49d127782dd5ee51bbc6e8ad95238d154fa4ee75b3d00e529d60d347914a6f6798e96c0a249ce0bcdb34c64dbdad8d2228906c82f10e1542eb4adb8ca2144834c1994ce97a9fd3cb942e138c7e761937a3fee02e6282cfa384ee952b3b5bbbc881e4128cf616b5aad34d9d5c95c412ec8b7f7fb2b464ea5e84580946b9acb3fc3e1725f8a4dea6646649c449b031890e77417b889260a5cbb156be89aa760d31128c162e4b1f5f9992f51d2224f8ec3268377d2af5eadc23f8d55a4797453bd362143a826fedbf25bf3bc446f05e3287bddbcba459102223f87ab973163c467ba5eb28902c8297429d543accf45fa314c14a2dd929d78fa6fd454912c127eda1db3a6bd2fabd6302092238e9b229dd4278f61fad2e901c82ff1aa1e5acdb62ab54278921d8205447371dcf2ed42f042fb8f298daca734742085ef75bbdd4eda8e19d154806c1b6fc183c4bfa4f09db90088215ba93dea4dd2509042f9a36cad190f93184f7031240b0771e42e69c5d66162a2048fec0c6a0c27567cef6fb6b22f103afdaf5db673a53ef5bd720e903235b536d9a67befc9a840f8cafbd5077d16d9ea7044193ec815d91295f14e12dfa2e891e18994ca44e9d41454ba63cb05268f9c54f13f235fe78e075d9bad8e2f96e643c478aca32496290dc81fde4b2e538a645edc0b8d07773f30d5ad6fa5407c6440ba62eebd5aecf111d38fdff514d789773e0337b5489b071d9a4eac881d5b2f075176a435598481207b6348bd1d3d607e1c0bb641f42bfa7eb175a6fe0e576cf5a48b575ef326e604b698ba1a5ccf592c81c1a90b4818f99c6d427992b546a900d8cf6aacc50f92ed76b0ed7c027d5318b50ded156fe246a6035737671947e19ff83276989409206f6bd379dc67639e8f8224103634294beecf27850a2223903a3c26b84c6cc3a86694f92ada0a451018919d81bf3d74d327d2865e6202903e7be1b3c9e4ca3a32e123230ee5198a7b9cb423206b6ce5c68d6b9eb65374f0c6cccbb41b998a1a133e748c2c0676f9b6db6d1e5e289040cdcbbf0d61aa3f4cfe199e0b840f2054637e7eebb7669e93d3c122ff01b33ea156a5a27c94c50182008c118619000254917389945e92fbdb36b2c9d840bbc989ab5bfe620922df041988efca095da6cfb8c14304a4ace48515121d102ab51b53017a3970965936481117ab3a8c5f4312458603c543b97d42eb63a13c91518d7ddd9b43617345c5e870e33acc0badeeca4856d8eba9dca9f9172e3d44052057eb3d7cfbcfb75e8f246935081974747f52e0b19a23bc6039229b03742eddcb4697974bf063f2ed9feade78ff682d806122930a65bf014aa2d48f1a889ed80240afc66d09e95549964ea8a040a9c96a3f5b620c75df0903c814d420a59673bdea9c556489cc0c85aa134cc43e714cf49b2004913588f2d32aed4b2283db99030818f194c89aabd0c5ea7dcc0c4244b60fded6d55a615427698021225f0f7b974abbfa71432ea184912d86477af65e5aa69ff41290309bca83fad3a15a27e63b772043e46a5f5e8332132b433029bdabcdd93672c256a17901481132d0a29da2e75c99813031222f0a984729da3b75afe9621b0b12597a3e868aeff1f1221f0fa84b02d35adb49dac062441e0755d939ed424bb17900081d5275d99cbff252383440db6fb75ffc6d36ab47c5ae905a3ad95ddaad2eca27479c18b51ae69d3a268179c8eebfaca452d6d165a5d70db6d9fb4ea970b763d876652516a5298b8e065fe8e8a7790fe2b8fdc82935a33d58b35da82131199fd835acd0523b5e05de71c65ecef17b26e5a30deeb234c53ed7dd642c62cb8cd27f74ce3b8a0c5f41823b2e064cc49df471d548bf993241889856596c08233ad2e5467fde9362bad2c137425187905abb524854a5d7fc415dc86d4752eebacd19516b58213a5df65d9e5a35f23ace0b4a5cb276ea79fc57215ba185dd0bec2a5aae07b579454dacc5ef79b4652c1fbef772add4dd39e194105ab577688faacb55eb9f78a2f9f3f183905dfef39964bd35a363ba1f125282941e34f464cc1462db7dc39a6d6482d5263a414dc69f318d328ed5e72c31152f03aa6af10fe7214baa54f52c9c828180ffabebaf9b39c5c296fa2926223a26043bd750ee6ff493234fe44652414ece7285b699d5b32295a188c808215edf5afa596394bd12758f9a2502e86929983fd239ee0b58f76414bdf419a52473ac1dde773dd99e5e818db114eb0ebe1f945a5fd7f32cf91b27282914d30a2b4a60ddd11917d8f6882f5a842947816752651a69309c625d3ba5dd00462902185114cb0264bd7adb96af6a419b9049fa5ce5f72e59a48d91ab104a74be8d041ff4b2ef33e49962ac1f7ad50a2df958e9e2d4ab01ff7b5362f175bea5b979149706a946b0da15cd4bfae931dad829292931d3d22093e7892657f72b5fe1b8d4482f36e41a5acbf53a64d941c287db28c4082bdefb4e75ffb516552498e9147f0b2a0cbfec5b55e5941d991a371681a3b76bc8a0e64461a2a28860c4c3e30e20846aa70a13a4a6fa4119c549fdf3fb75c55a52c29413c8c30828d326b31e4bf2cd7d4ef16c109b9397fa7085e752cd5b6223aa9d677896063eedbfff451cb98308c20820f7d2b5d16c43c57662119460ec1e91799e5ceea5fe38d8886e05d4ea5f96d755e2de48885e05c7394a105d5e6b27b8884e0fd74e84e2f6bfdb2387a616410bc365f0dd32cc70c79436144107c26fff72cb310caf4371208b6b3a59694abd5a2df86531801041b42b7963f668df10577e40fbca7d3db29aadf45ab47fcc0aa8fbaf45ed44288129ed3073e4611f9a33dc33ba4f8c0665e2d4d5c9432c76d218eec8111a64cca3dfd42374bf5c0492dc9efdc74afd5c7f3c0ca60df39fd359acc4a786063084f9db5e4e9c56cde812d6d2b75b79cdb813f112137ead4a02dd73a70da3fcb945916d3e62374e0366be7eeeed7502ace8135d9d165e72c4af95267440e6c7cb9fdde5a6b8cc4218e10a8045186f250200e0643a1400c03001c56bb06017312080020281a8d8663129154d5a61f1400045140264444302a2e20160b47448140300c85028140201088612886a2180a03819247dd06822fbe2a97396a9c6bf8c1d11b10e16002ce853ecca01d6381a6e8876cad9a2eeffbef0ca2e99f1fc7251b01f460d17388c012a41a72aa4146f87e7aca97fedbdefaeb9bb718b467e1a77f7ca6583fffc1405ed1072c7704341bfaa92dbb53bcb51a882d4f7e9fd7dc37bf4851e3a10b15d75115e50ac94700215aec70c2b7b5a2724dfb1459e96999ca1599975743953d67b448f150f53fb533665307cd019cf50d728603eaab9e973e4c1ec7f436faf22a4f965ebdac69e8a29500beb7634b6a79d5d369b38bb9b6d463aee4660eac5a022ef04951cc643257e90b6ca3ce891ee396c0c52508d5bc366d1ac2ebe791aa5e8e5c1490a550e634a54275eec6005224a6e7be6ee02d35701990aca5c2279f44d57829f3c9f577313c98824aafa26b8e38d8cbe24823ba454f7d497129f0ea243b644280a9467263c17c1b23a80388e13dc7ed89ba335b603fb06c1e5ef025cfd1fb835b402681af00229ac36725137aafaba52725ed0f6a24f8fce129f20243d54884fa05eae592de32041ceae1870a204ec2eed8c6ee008383245a2690e2ea0bed4c43c8c811c3ac33ce437fab5bf19dc830b9ee8553ab4106a70fb5e6d4795ca52f8c8177d721a27559010995b1e864e0533c2df8f503df98232199bc7184d9f83c903c5d9d39180c0b38bcbad091a753a58f0964d2eb8736baf0552f3dfbfc209c285fbeb86736a0bd404b84dc04ffb3c90ff46ef51a1dc973d0be99e2842c536931f7936cab22dfec35acf19df7a1b2a1860680951bba87eb59b8d4f11d2e3dbc85c8e9a6121afb41daddd6997210ced801fe95b177f6e123531227b5b6f7de414f7a57ee089aa5f59af64053c1a85031d04b46c6e1f3a8f1713550b2e686cbabc563af23835820d68aaa2cee1e70574336d902d83446382a7e9abe213e0ae6f784764745cb7236eadac167520d7f14cdb99e79918a50f6454e82fd1c29e125c23589b6d298297327c180db9016bc4569843a9237f94526801c27ee280ab1387d724c48811e36dd56dac5d24f6385fb114687c065cc36168c89ce6008e2ea38318aa04774c411c0d72d6346c0e39151b67e02ffc3dc8c56a254eb6849fe8aadb62b3fb322090623f1bd141f56f001855f94ad424b5dc917c66049b174c993af70ba2e506176917d01a1e94ec0e7d086b8addf426650b8f504e7885d538183d40a5de29153b843b512711ecdc34e4b8aa080e9b89a1b5a8faac4e3b82d2566955e800a7547a1f74b6f63d6fa715c21c4a914710c3a56eed6468061b0884777785938396cf6427cdbcc9221a2ae652edb07faa54678b95959fa54ce55b065e420a656b171dd8bb4bf65ab4ce1fef7fca80fc75d749d9357e117eeac03ff58a741e98e0460f895b82edf1aa089fd57854f5dc4b055d9c155a07bee0f3962e654a55f023a834a6ca54ee47c2f828cb21d7727bd2a3cfba0f5f0d29509b8369b0ce3162cb02a1c6ba168d39346d5b6419b6dd11ebfa20a51b13121de56202ace6aa2a1696681222a1339494ee37f532982796ef26e91d23e0fd0c73c1a1a2040a2c3ecfa2dc2069fc9a778d999b2d4be69a8f640508197cd662de5c84e9811c6774c7c04157dcedde866cdea760dcf499a38eaf282c0ee918e51050c37c5761f58aaf8173eb090940c3571e840131613172e64da669ead18915cd0817763aa6a3e35d4c8733e44d8b6702252282ba056e0a2de6859dcf78b183c92d3e68dd3e2b01d87f9824fc869a780649f60bda5b5fa7bababa49a4f456763edf5d261bdaefd24b0c680d1abae3437ad3c0552f8afadd3e55b108904bbeb5f20a8503cce435c341b963173d10d9801d1c6f7658ef783030d8e5045af6474f1cd0de3ecbf402f79ffdf65d6257f8543f2c0f770d50169d7cfba011ca6c210ada2556e4cfdbc06611a25207a52264841184e5b1169813c1d990508406f0dacd69c978609d3f9c661f9506e16da1877a82078162321735b2666c9cbad5aa4c3df95ca36ca3ab5e6f2f54e8eecede2c8279f721cb6c9e734e0a528e85f28a6c73b67372fa5e165f0278e5cd0719d01c3eee0d72d324e21220529043068d82df0944c9ca71a86dfa33c05fcfc7c98a4606883fb94aaa0d7489430df56a35d04a9c5779beee50d73648f288a5a92190b5403a30a950c274f87634d7e44f23bf26db352d8dbaef085450b95482ca0623096b9c048990e8e27084a1310e9b6dcbfebe8bea95d1b4c7978db772cc2d5e3989e08f9bee61bbad126c48e8de11f068f1b4ddd3a0f8224e4294f073f387d24f65eaa305ad820a2021153979f2fcfbc5c2f60b0115e380e12443c9443549516dbea27f812edde32ce5336cada26e2f07e6014c25366179d33f4fa26f666c58539d3a1c39f8174aa84359ab00deb85031b0730591d96a28a35f73d775bbc85c5402f7952817bb6f33541f58d438777c6448bdb889a1e6e5c28c1459c4256d47f7ef9e5ffaa87a1bf2323375a5af6d3219d498f9fb13a1da1ea0ce5ea5d4b78cc9a34c89f98c1bcaf73d76ef6c4e672d06e60877ce7d0b888909e0ed258e3a24bc8a87e3e0f5fcd8cd685b371ddfaa59d63aff17a8b043ab35b380921ed2e05bc25b2bb45667d72e658a4138ab5e70c5018c4080ebe9cbe6e19a71bacb6ed7194f72fc5b04f28a39ed969b8335840f5085c0dc72895f461720c73e99e1a56b3f199ba58e1704d87602997853ad0b4d1722ea3f0f0be45790dd69eefd150a7ad8982e789566f9ce09144d5f0daff2bbe306eb5630a9ee9666c50bbdb0255bd820a2ed7b820099a5ce938510db629786dc0ed7a1428a5b01fbaf3ad2f4834fcd9d963c3de46e7ae10d57baee2a341a94c5ad926cee9a65a52daae14998136d8db8c2151c088035e27031091d96d7ff38143dba946041096f07b4f21a22c978f92c9eb4e4b84a7247d32eb5f5da0d10e94d1d28157e58d007a3b1a10992251a8020f82c9e6e0b480b805613d0c675bb8a621efa602e8952dfcf4315e8c53e917d1e8d73854c69e2725ce2ef660636ddec04f76c22da5b110423b6f3e00b7f8220dd8d135afa693d7a27bdd0a12c62b75d90b0576e78c048bd9d8829679a18faa227671bfd00d084a7b45a304000dd4260d96cbfe5702e825963eaa74deca740478d4ca7be7f6bb512fdc79811eafa3f4d2d71d9e3c4a4ab86634baeed275545d2eccf590053460b2e88580f423998acb2cfd1c45855b33a7038e18d3ea789a6bf1ed3af83dbbd4a757b89744c1f0419b1419e40a3a147a2e662c16658b44fe0cb4849c38342d3b14103cecf3b24b70b046ae8fa19c2af802a67fa2f34c5e81f3739ece14847018d2501b56b7ab9d4ade7ba251b7a0e9c4c267e346b8c8df93e99b0d7cde6ea61b4e630e9afeaf6ba396327251150dfaf98d7b3a1d7578c87bc4587f8d2bfca698f0a35cec03fd79abf9151e30bd8a7846294696c3839df449262690c1c7d0bf6a117b47b8320efa3b2aaa2483a37770aeb09d1e35f0e1ef70d26f428700528fabfd2ea0546307ea9adf5b28fb2489796f4486dcb4ae86ee7438f3f9c3fff683e6c660a56f90db97c799453677f9df9753ccd9ab1de69b9e76149b71b44eb8bc822dd634e6185b53f96b4a12c78253bd0247a45de39d74439e0c441329a6610eabc514dd9f4743e962c9b4781363e9bc7f13504cf600b1437c7edc31dceec2891cd286af49e31e65ed7e25e8bc5316a742fe16383aa71243c6111b144aa5ef0a963c2ecaa122623c3d921f513c570db2b47f9fb5679ca7cbc1e1abc3eb59d9eed6dd00a5bb3f05b0afa2c9409f08c5b8bc35629c5e2eec0693367034ad178f6001aa0b92d0002ac30c955ad45ca54da94f3d94a75024fa8b3fd0b8e0eaa458aacc06cdcacde70c90cc7bc2c779b17b61437237aa20f0620d0057846a9eb41a76f737f082515fc2aa5ba80c510ecefa4f3ebcaac32bf73a47b33d7352df0fc39cc477b8f2c9964d7267114aae1a68b2273d892f9c7f3d2487ea8b6d481e0c6894b8d1c70c858d6281f18330f2cc7b5d855986b9f75a5e6012c1f9f32b7ddce5b019a0420450606d71fcdfa6c6283d365919e3b46d1880cd9d4ccd5484e251933726c95e8c105aea2d2703a1ac4b0f42e8243c0b7e7eaedada5d95a6e6401efb895c5e6aa3238e4806ad3a4b95064795e670433c4c1a31feee4a8f8cdcfe8c59a1da97e07f353895fb8a723edced184f0d52a815839bda91476314f452cf8b3196fd5ced5012c7aa972d1a542b72b8a940a0c52db5871a7b87184fe0c9d143515041648a1355cd10d5a68becd2d0ae2594cad646fe6a8a248a98b71237e7678c2849c459f9e5236313a820f791e0b68fe7bbf2a5b2a16c9e54201fd416c9128d7c142337dcd69025597d306a436eead88e241cd405eb2ea8205b7b6db53b9d39e562db6cecbccf21fbaf30cc56f9c4e0fd1331d2a15df53766c16c9d44574e68abc16157b81a1460f4fac8fb0b2d51e294565feb05eec9e2e80f467976a6eea7c1296c9d4d00ee3daa7f1fca7470112fed2ab5ff4e53a6e906d9b5e006695f48d12b7f39be071f681f2d2cdfb84606982eeb9c4d95851865fc8451bc2178a21896c632b1c6bf634f9e837981a210ae68d0618456789a90827140683ed1ec812c44cc3fd1b7d5f22f706f7bf1f29c9a43f857f37aab694524954b6fe2802490083c4b7a5fe4375d9b11236fa7b6240a858f3e0a9e39441282bcd8d20ff050f13b1f5616c29da5eec87474c873a0c2d0dcc7690a829cc333c08cb8f58ad46a2d1add1800996cc0dc8a9baab023fbd7e61fe72c47865c8621ff011ab40429fac01cb7697c7a10fbc43401d9605c27c7e5ffa7ac0506b12368573708a069788e5861856ddf9f0ec2003309c1e978ffb0951bd3266372c02ee26a23dd7258331f6e2058eac96945391a30ea1f05914d0177b66be1ef54873b4320b42703fd8c1d568d68e6a985a5151e524dc40961e3ca851a308a170d3700cfc144497b998f00a1a0a8c76715c8ab2678b7dd43bb8dc03f02977bf1626b8628d309b3196232ad2560d12be5ce9fc38dbe7a39ff4ea7415ef441f88ac0a93f15b143cb7ad168dbe45d5d02d38f2e8e3297294a0094041c0c39cd7b1396d27522c12868949f7505ee5d983a62b7e49da6a8506a037b9f748b2bd8d816f68d8d397001a5977dcfbd5dd643f09635619430d7ee23346c82d8292a91518a6fda9e8e6b0793272e47481606834df3459dc36c7782688b9b07594c93f1ca8edd1549ec2b4fb2e05282550b25d1c31f72e6fb9188a04831a1f6d163ba94e4a623457185539792a08a1852e103139308b0ab1bc1ea98abb232e9add912dba517853393f14580764559a3df53b4846392f5ee0c045d65c8563b7ff52729865e810346a01d29008b85befab2d37e9b687407b2a8e9ffe217851227109bfb9a295d1e80970633cab115f8a56839c9eab5915b42d5bafa60c26d1b26a23be0b568d6b61e0b74a7f2db8c009dfd1c8c89f3073bf54bdd3548de220eb987b349d79a48e4f25d2bc339430cd4337a6347ffcfc14db3b36658db33554c53acb1a5ce504d28f4e744881d3b09221f9ce95d429a2c41e6ade05ed148d220b4b7a6f9c90149983d03a8d4e5f6367ec885645611216c2b056858afccccb32d1cc548b334a07586a4d2d4bb19f618b85359906ee37223e266ba3719ac9db73cb6b43157d83fa1cc232583ddd099a4f58284368683bccbad16290d9739b409f8b1c4e6673d81d7ac982890be66bef502c33c2a518b69b5962fc9346cc5c310a91d89318556f589032dc4577627a99b657119ce861e6a3577ee0ef138f8afd8ea2a596b6d75b9d35177fe311500b1865b1381dc6719ddaaa880cd22d143319164f5462623511712adb678e1b7aca19add91b4c53502ff3a51d2e48f92c2d3e8a07c0361c11215015fe597e54358515d0412b44e771ec6f933805a9e68ccd7e30eca53edecfa1a3c258cdabddc5c71a415c6e322285ba110051cd151bd49fac422f31ea120922696b5c4d29470069336ea81e4a0e47a19f1232169b73aa6ec25dec51f01985f1dbaf05af8bbacbb36a969e18f3e893fd849b119aa32e9017293ff7138d63f69ff8a8016024aeab1fbb41d8798ecb7762825ee08a1f3294de953d938206f17538cc0cc5f795b1ae7e2bdd1f85edd3e2115eb1c1fa784412f8c05147878333a5e664ae4badc9cc368406fccee9dab103b29d15139a50553fd1cb5a258fd197cafc86b7ee9caf79010b7842beab995b3938970927710412876569dbfb8edca0713ac18f492c6637acbbe3b1df72cdd9b70dc28e1bd8d6a3fc3db249212c4a9966be5cff90d6f3fb3eed9ec25267c5e32a0dcc3b722a50d272f7ba0ad31e41991dab02e0704de819b9fe96ce2172fe706dbeb781229ae3693d45e51774575166b0ff1463cbbb69c982656d84954178bfe9212041d5cd869c927e42ba336eaab331df1ec75d0e3703ab6d351d69542d8f7c101ea7a088c171fbd680444337b6a807bffd82629fab0001a6df3ba5f7443df6a30374d68f7e2a248298522f89ad6f627474a041a13f858119fd526eeaf358031f9925d1a095e83c1775b7e961108baaccf09463213132e64aa4b7495ce6b75278e72971dbb8790e06ace907ed15782409bd852874bb33901d9e6e9f2db801abe431244375e55f0dbdfd8c5abf9e878c2b8f9304a435302f7857c51420164f420010ad6c6608b52358869d5d41dcb167fd343805e1379f5734128c943bca2ac4a8992900d809ff42c663b4ae95f68dc0fd4f7d9600d082be668597253968dd2943fa163612881e0dcea30c7610273f3c14f0431ac2eaf185bcc7815db25f03c64a894099e2495e7e6cb1e9acf0ba44f5c7c6ca3f2c4632a58911c760a6403afadd5c8ec40982f54010940e1ee70be8a6fb68af7d8d37c61b2e18bcca5b99de944077780fdbe330d82b9bbfbe0e72bfbb267ecbc9ad03f9de34639dc4ad60eee09c17182a1ba31b2a3c3a5f1c390cafdab471c01deca30838a457495366f924e05c01ddc9fa26882879e37e6a46e87e18ca506632ec18e6c12ce6b44f8b7a94b51ed2cace0c11854589cca0159e8c64b1da2cfa03b06585828f8eeccaf5cb7693553ac0738d6cfde3ac3e300571d17373fb8f1bd35033f040f3cb59e99f00d4afcfeec4fac63c92145a21aa8daf44ae7cc9f17269524acc94e396bef2573f3823f8c1a6f0aaa7372e136d0c36235b50b279b5b23a538648542ceaca3203e34426f343766a1068cb93add97657e51348fcd78802ecf94afbf4ea5c951d82a8d735e35ed73e7aaa94a084041582833e5e3b6360d9db031b0ac4d7616e449699bb52d6be46d0bac3073c3f789fb91cd327a2834bcb9c153952a6774afcbbb7ea964a0e03f5e9a5ee4672570f432c2463f1ef220fca58ce7a66208e24cee2939398e2421cfdf0e5648a5d6a8994e628ba8b3fce26423824828dcfcd28f1ce1c5b8f2512d955d9a5ec815ef46776836159b33d652cb30fbcd3092c904d0654227a5c997273454a770dea69832233b2313f39946026acdae8cb9e25ed685219c6683cfa2c1c765ae54984ab832bc5185e861fbdcb3e97aa0566fc44fde60ca1c61622ee361644796706a61c88492a7cdac8a71804963f5724d41e5f30f444aad092eaf95566cb471d5d9504ff88961684573ae863137ac5e12bceb2ccfb7d1bf0552c2188fcd1ef02ad749ce5617e48d270660921e4f15a54209b3958d11260129c25d31d5420a3df3e4227d5261fd553ab8f36c82e16aec4e4148ce47c6bb3531533f9e5d9d06b31a408ced402efcf95cd08ab8553130bd59085ad192f381c9d0a14cb90e2a16bcce95ab5437d488fdd84d8533997cbbc38d7ac7c86271685c2e0aaca4945c7055800223bc6b047d61ea0aa3d02d367d552de22028a01f058d2458fc64c843c5a747111c89725cee6a97d18d72a15924d92e90ea381056df82d4341359ceed5b10701a23e293aa460a528f11dd2a37b671994a9fbe1552466d18ccdeeccacb129fed2dd85a26a3ec0117744a68cce91b251c453f5a87115795d74878dfcbc0b3a858f170c72215bb25b82122b03491616f225171ec283e22b95820bc10b0a180a14c2c4da008072f598fea80c3ff174e7f3ee51410119c91ca464184458c499e1382a9e95ba826092147d95ce7e9d27a0d3267368e43bfdbe300db2ec50c27d4171ad393370065ed3d372740e6f383f0b1c94719f538e337746b30d179f1da65583c4b1d133552ae4985731f0ef05fd2e280a70f9714d8055805b61a43d56b29feba04f3997ee2338b0fde98340945c4e5d0c43d7dba301a43dd93226a8fd55e577216efbbdb174c2ebd968ae70453506920fa558c3cd492c0ff8860cf8e7a7b8e67bb078368b11142561a47186d7dea84fe249b21d67d27c61d5c5024c4e2b515f6585b3d33642be52ff2c509bb02c4dd713000d98d2062938813b8309b4e2f135ef6dcad8705eecccd14ba19a983e0e122d971bbf536e86b3d79756e0b82c7dbc7e72f84130d773983a7ebbc91e12022bc1a1c24e248dead54d40ee05662a5821a28975aa8fc80b518eae74b0bae62bdc9c4955279116adb769d680be30a85dd45c6f128c452397827240af1fe6922eb8106db8b9e62df083d75cdeddb3c1ec88a51b60b270959448b39353af3972ba094bb7ae3c91a22a4698ca86cc27e4141f955a0f5647e4c02a12440222af34803bb11dd7028b4af78ec03fc6488090c21877a8f39b395863983c47c0edb0423f7aba508f981e95ecda6715f3995a6fd09751ada4eccc73914201bd15468a25f8700183a2fc23a5e60891af7f578c61dcb03442cafe416b880c77bb4ae2f934705a78923aa08f388d8293d3e3d56066457cd166cd82ef4713808e28d63c0499e515954d6e359344a53898db882e7c76252a906e2231c27d5136d8c7e409171b5fc963a44c90434f2a90a8a928fcb8c8f2ccc99906dc7e1f81bedba321201c53b340adb81732e559b39686734b8f99f94a82bc2c9a4aadf7cd5121204359b4b58de2aa87068cc7724e53b7a2680ebe16b99aa00d09e4903c1c45af0f8bb149a85914709d07defb2f2ceafab015d9a2b61282d70447da4930ef3a88d92cc9b546a296f35fc04d6f416ae46812ced1e5ba8baabb3e347a791cfa5211bf4134133eae70a3583b200e31bca875ab978c4bf724671432120ac8b233b07b2440b7b2fc74cd922e81982a5584713978827064cce2e26626396a6207218480e6eefc68d30f721b8f900685bab9f04405808a1df22e1c03b04d11e40ec4707718516076029f1d774b2e84c435bd219538de68ef8882821123f7aa5277c18c0783cb2be1c1c1351b23cd707123ad0d23e24f38b0b2d76bc9d1da912d30b1f1f324a33cbd38e06e35d0a16310f83aa7293525e0814806b77b1872a311bafb14b818fff7e9de735e3465268912f832932d011cfdf3b8d9739cf27332326294b589ec3d549147bc876fd7f6b94bd9bc42eb43cbbd194e97b9b39ac0ff884ecbd18c1d0d378e8684db27f661906043df4a40daf8ab3fddcdaa56aa53cddc2649a76e44df967d2699d93fe1a124e9727600b3c1c6d00f51d2ebb39f96e14f5beb36204bfd7e406a099990f1e6b518a589d8c77d325a290fd415ee2c216d4de92d16f0f2e7eeda3baa24f85acf5bb4396ca190c701e3ec719009bd911ac14774c6ccc1a1e0ce84e7ce0b4da5c1244316cd1f4f0005fb6566bec6f91fbd460b707e4f6d40f108950b86d1bdbf5ab8ada17b85c16aaf4181324606395fee45b70ec5c1a633115ba620e4f975c205d784a1f16650dcf5bfbba40b642121710184315f048218b5c4a6402357be2af093e38464002205f812d21d8ebcde7b13df465d573d1d4d272d23dff5294b9fb9adef107fb2fc768d80454c8b69bc60b264b7959356eee038570e69c1ec9c72e171014dfd90c0733cfd5842cbe7cc46c3e00ae0c9226b03465dc63e69aa57af0f4634cd8839dcfcd81950515273e0ba206d6e1cd80717a0d39bacfbc7abc25aa1b70d4fe6d3bb508cc0fa133e93a2c6bf0d072f3f37b16ab158b7aa8f5968d20a6dad5ac7947e0aac0f327852f453abbdc2903fd403085b8c9e353e9854c99ed3fc61267559b885db1a0941c52faf4ebd0a679e083fb649254b7c555a4c78f98d7b05254baf1d0a6656c9eba38028bebbd4d50adac2c37731d2cc40751d30988f386dba7a088aa62fec7d911e14ccf7c3e95aa5642ab24c0de2c80d0b9fc846935396a752d78f406ead32bf23db88c1697fe3f5ef84c770beb7aea7d2fa51079500ea23c967195f0d4925fba82e04a01eda1e38618ec289e41e69b2a447ad9d12af6bc4c5ee7c5069a933f3b09132a45669f712df525d8ca08839e5940cb534ee26897d9da71304a6b6701266f5bb8ce2e6e5cfdbfc403d8c65a56e37755b54c9f916f0beefee389606aa3b6ff44e0ef90e77d15f1dfcf9affcd0c9917df92e71e56e47fad50b704a12a91db0f3cc21fbb4a2ae6429714c0aa16812e27f9e8a0446239ea442c12a5ea3ea60804e94ee2fd74172310340b2e87921f76ebcd978e6aa29ef3bd51dc235944b9ea519518981e62e3814d221058460f78551300671c9a2be2d163840604077eed122b832a8b8886d98454f40cd6e8f93374eb9a935d686e11163403021514f6962cf379bd082568b272551bdd1174c91b3090c513d8f14d2deba2d38750f4003b5d294abdb9405b0061ebf497c9b603bc17287a02c07027df8406c0cc2ed457ec1f65a1d02b0bf4d3ae1f34482680b76839f7dca853ed5be73d4388d21dc9d5b09b94b307dc5098842000c5f12f3119c2d1c1c35275f4fee7ee1d57e8bbb04955080648b16009b5700b84c58fc02f3a2851788050bdd0bafe01fc560cc5f5b84c7d365f803908c424e731192e96b7b9cb52702a64c1356ec48d5787a087fabfd2124614103e125c62e1d48641d2e6ea6ffc255875a4a986f4a176fdff044a429fb19b3889e80a5c8898c413725f54adeaf23c5606b2c4e47612905a3a588a76b62def0a8e38d7e604d81f8c635190a035a20a7c6ca729fab69bd15b77dd21afbade460d1dbbfbf8d6d476e9dbdd7bffbd3b475c1dda9a38746713aaf403a4960464365c3e9f698872be5a15f75b0ae94736518680fda1e701a8b2bf83d57568b722da2395e0d662da495ad989446fd2bc833ebbbd3624ed746388579a372d0a1c5ea411c1d180abcde3ad5faba90e4d4397b6275f46101945db198cc9664bd1e30d15844225fd2c26bec1f9a4b8443c9fdf666d976952993408cdbd86902d435a72ee4d5e1ab733fde92c8b939e1f4dba523325fced083669398365f1c5c4847f8902855222d06e0132645dc64ff7c30825f6feb36eebeac50fc2bafe0018ac193ab5aeb9cc21665349b99e6fff18826fb766be9367a8aac7913df63d12bf684ad82a422f8198409d8be6342ad9d8a045dc8913a3b5d5ace19e1fc01cfb4e4b7980c0d76adff3729259e7d2718a26ba999e0bacc4d71d523dc9ebea6694f87c276087a9a037dec28cf85c826b5ab379dbaf09ced4de525bad8fbc15d4733ce9485e49d1fa98ffeeffd9c93fa5d709e392dfd14c247cd2a27863b31e0f50ccf9ea43dce490b6e68fd9362f65c35d8e71e6cd065da13996bd0ade38761943834496e7a63f64212d0ef4d7eb87f5efcda71a2047ad77771a6e66200ad41872215184fdbf91a9e1817dc23dfb9ad38c70f685c94cdae8f2840604cf42f4743746feaeab6d671155385259baa2f08a28d621b6cc9bcecddfe3d659d0fc6bcd85ae32872d6e7923e33e48318cfc6de888fed6825f3eb05121d16f26c94d25992733aa7f38d6d6eab8ef739860a6b6e654eaf89f40066b8a2e6ac27583e924f8a36eace9733ee8b7592d433cae457cd51755997d4fad335cb03119f1be1e0ceaf1f86a60619633345b0a4ed63bb1c8f59e61285f6afa5c953288f2d229aab62c79874bac59503e0be754b737f93d8d26862ffa564f9f6ca3df554aef16183652b651dbd0e0e5774c2ed89aa1f91155b0d746c069a1f7b8ed0ef4ddfa1a63da72078cc827a093c06ff6d330de30bd9c89fac1d50cb8de80321da17ebf251cde69e6719b94af3a78ab7a77463f4357ef72571cc5a9aed8fc4a831b837d8bb7c4da5617d057254c97a099e7baf3a26f36c45b3d14fb597468dfafda966f5f4793ebda8f000073b0c6b8550c5c561ba6407936ff5aed96eb7798ac42b23a7f0b065c31a551772cb39400ae3b3f9a52990318f2064385aea687aa54de4dadf741533d80a1d01d2ea98f2419e81ece4de00b4f9cb2e97f542b2d25649bf0ade81652ea7a6e12f6c281841c182da45881c48f134847fe6310a1a14773552c9c299302d8489dcd880b15c6320db6cc02379065c485679fc92ef21afde0cc1d01ac4b6fe0a5b00740883493cd296f9f349fb982e172d60df1d8a00af73a1c626a76e54ea0a6f094b2ade96c0f527933f384426634535e7fa55896e2bb6aadbd6895ba1f4e79d3796134f84b133d4bfd6e39d79afbc58a038f070189ebfe68ce3f226e39aaf08dccfa4885cee1bd5dfec8ac140647cca7b85ec4973bad899d06e348c0806a291e3ce4c09103e364208a06f09ca6b9c75ba9c98c2e986402bec9e31fbb929c24e94e21a9d04eb86e6e60a1ac2ba9036fa18aadda28e8bd5d4b1c842840d55b8fbc365ec7e23f5e9a9af407f5a1081eef1dd204747504f5f1643870a403700391c46b01c7dcd66bfc0e45ab5eb5effd183d8856f6b0ac1e627b33e2858b516144e70be0d0f2ff75fc550704dc8b65bdc403dc4c869a086619113ef69f811ad861c82b5763f8ca11f1cd476e4045af96b7a62d910931f89c521f96b8e80cf5599caeb217d73110ddfcdeab20038e39a84b6e2183a3197413000e93aa255caa039768e0595ac9c234b7f64b3281e1a1d16e642ee218c0c370f44e90acd7e9da0cac47c7ab1675733636d73143a344dc3f9b57fd3ac67ee5b1f2b369c18a8d8248a73e36be818ea2efa51185b72a85730745ee612e05793388ab3b3af3759c084b9e81faa099a024834a7fbf38f757b532caa16028ed4f0e26efb508793e6046c594eeb2f5a217cdf2f94bd165d88572feacc6f406d4ef409ad42978ecad4632b8c2f6675c71730d841739ab2e9c8f555529b16d248f16dbc12617006cfcdc5b7652b53824b45455f1c3918541bfe829b699a78655e80cab829d4384b68e6aeec3c5c32b8b5dcaf44b4709d4a4c0a30824f6e11a3cd1056cabdf1ec9d9635b4ceb668fbff1ff697d73af694212096af601022649b61bd97e6f8c3d61e60535aabbe594c0d3acd3035b4b4b66d5a2183ee0db0698e173e80e491be68154ea7fd62eb4acbf0afed3687eab641ab0547b2847182a272fa02d6237735ab0817f26f22e08d5490c7941b8e44e06a3d7b36fb370e91814b995ea9e92a0eeb4bb3dec0fb9c63677ed9f9a621df51985469a85e0267b7d316044c6fe195112d6131a2c76e306bf4e31839d874f071c81f734b971a20e0020407d0a2335e7b2e6f84a82898da32119ef72628571438ec736019cc193deb59f9db09c7133aad71ff00f3b5cd1c10213af02d15dd74a816ca6c7ab20d51c7f27a36a949c24a11ba6ff0a71868e5e74782bbb2c6ea65c94c1cda6c2896a0680197f4cd09744abdb4c84a67c6f27b5c794ee5a7c29ac754d7f354f403db011f0bd40943e34a1f9f692824867b98cb38fd58e2533adc5468978a85344bf953edd49c71c3458bfc9ffe42fde433267488650c6e3f92bdde25229059d80ef804a523dd7521095eaf8e2630692f3e3953481fe27bacf84c29a45d72a81a469671c2b6d0cd7aa6ad1865840c404f3c3b7642844e068e42f9c4d78200d356554e4e854475d2dbbb04329e5e577e834828522f358a6a9a48c06faef731952aee790c5511054e2e567718c64de715f6786acf0564415a157679874aae128e1e95fd1d8af690dd26258463b27c2489b3586183dad5ee8283666a24b0721473c8cad6d2c9a046ade361a3d9ce2c458a839d869cf883b3492de7c14891e7a34c3c9f0cd31707c2f867172b282ad00be2823b3508d7df324c972ed091235cdcb301af0f4a9a9ce34ea24e8a12c827831c5631c74e8a3f33fb00ceed39eed40c37c9187b388b2dcf710541f954f4081a4ee43681489998b162f9fab1903e352f90001c1425f0c30eec310a5687b2f5d4f57b3de754e98c85cdeaa7f0bef9805dd1918643fa8ce15b55d2b92c720c3907c66abb8966f63c39d467e0850fd69f05015a03cc1a30284df637c8a145cee4e6e8ffea498b781e0e30c234685843ccee199098a1aa861fa48dc09201ce43926897b679f420ac21da7d85e8fba33c32d2132f5aaef532211de0f905f51988ae18d18d2bd32cb5f948ab0103cadc850e8cee64403efbcf7ae4d83ec9eb884ec06c16bf4f042519922ba661398ec8ad7e9bf39db83ce68d724cc3603b6070fcba48aaea7011eec0f6688a616381716569d9e7f4b130971cfed9815c00ecac819e5d15e235a9304660d07aea61830a6a5466807cf17e9fc179dff67fd232ed6d457d04790073c2714fb9c30106b2d015ddcfeac614f499d5d59f8d65a09c51f44c83ed8f0ef7cf80a4acf5d0ec7fbc322f8302acfcf7eece15863b24536f5a113bf92041d0a1f1d4500e4010183acb3b3974a6f93c593258be1880511e7c516cb51050ab22752c6d6ee88d0a3cd798c10359c07", + "patch": { + "balances": { + "balances": [] + }, + "collatorSelection": { + "candidacyBond": 533333328, + "desiredCandidates": 0, + "invulnerables": [ + "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", + "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT" + ] + }, + "parachainInfo": { + "parachainId": 1004 + }, + "polkadotXcm": { + "safeXcmVersion": 3 + }, + "session": { + "keys": [ + [ + "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", + "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", + { + "aura": "FF4CWRg8eGk8zEmGxswx4ppBQN96HdZhkV35YJU6rfXabpV" + } + ], + [ + "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", + "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", + { + "aura": "HEuPjdpQ3yv45zwk6h6985PNK8wszRyeAjDd4GJW5dZEpNp" + } + ], + [ + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + { + "aura": "H4s9sGNMvzdjFMKi8qMBqnxhGJR6T7Ytx6foFz9CVhGVyQn" + } + ], + [ + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + { + "aura": "Eis5y75gUQtH712YCyF5q6PjE8UsZzFJ4q3tSYQv2QifZKT" + } + ], + [ + "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", + "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", + { + "aura": "E7XKeXCdv3PF1UMmBMU8qH536LKvpwHcgFCVSUbYwK8QrqY" + } + ], + [ + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + { + "aura": "Cm8X6ekpTVidkFPUmDF7dHFLeWQyrdGW1RhEeuijeR2Pntd" + } + ], + [ + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + { + "aura": "GRvavY8h77mnRHbEQsFvUzWpw3kvH8164aVUgKqoyMW8rpV" + } + ], + [ + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + { + "aura": "HeSr4JUpXgrfKNwZGcJYU5FSn3znDoZaXnYxWB168bw5WUM" + } + ], + [ + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + { + "aura": "HppWoUUWibaZn3zgmcaWZY3BLbZzRktLiNK5e6DUBxHuniE" + } + ] + ] + } + } + } + } +} diff --git a/cumulus/parachains/chain-specs/people-kusama.json b/cumulus/parachains/chain-specs/people-kusama.json index f93d622a37b98168671ddb4bb04e5af962c12f3a..7a55435d12e895f1544dd338b2ec168085569f9a 100644 --- a/cumulus/parachains/chain-specs/people-kusama.json +++ b/cumulus/parachains/chain-specs/people-kusama.json @@ -19,101 +19,78 @@ "para_id": 1004, "codeSubstitutes": {}, "genesis": { - "runtimeGenesis": { - "code": "0x52bc537646db8e0528b52ffd005874bf04ce0e06b71250106878940e68e5085853077037f7e0ac00e39f3ce5d32e68cd9920c41d6c0ef827f2d41f397370f8585ab3819e905b19509709f6cc0c0dc5faff31c72dca4555fb9fa2d2f837217befbde59652ca94522e14a311af113edc879f1e0f12254a64c3b592d338129b6bbebe8f07891a4ac439e9e448e470ccd7e7e341025222a851a2f71c5222e896e6441a257a740976a2e7394e7224682891c9e43628118d976adc8613d9a044a6ce4d4e64c3332ff90d5fe71e0f121725babcdb311325d2e196bb8eb7e526276a375122291d52a2cba113991c7324a29f28518d1ace51226c52a2e9359813d538468934cd8930b7f119083da34452fa4589344a84e39743cda113650e29919c7122e93c9c3a11744a896ad4701a4a44e396e53994a8468ed358344e9dc8724a8972a696e344b3a34ba06628d18cd3d0b8cd0c0d8d0ef7ebf21c9cebc2ae594363b241d2a0d5f3b2a13d8c46966a64d6cf442af5abb1a0062f8b0693990d938d575322c96b4e0d83160d29833666662259fdfa2ad5481a4dd298b4a7d303625daac11c45a2978ece8c09d3260f1e4ed4ce83c7b4614387d3009fd390f5e8e14497f7e851635925d7e13cb2cb79481a6870a21aa741878657a281aec37b9848dec3514e64c3513c783811e63c280f4739d1943a3a588deb701a248dd3d03a3a3a3d9cc8f21e94484787a4398a521c27ca1c67ba0ee791e3386e03e53c9cc8e43c68a06187534a44833b751e4e74b93b11d4d1f9cc4c9b5c87ebe0e0b8e7e4b88de3b8e33811c9719eebf88e13957c8783dc38ca894a8ee2ce1de53b4e64c3dd899ef3a0e1e64687dff0f01b27aaf11b7622cc6f9cdad8b8e750221c4a84e3ee36396ee34499dbb01349a74e831341a78177e83891e53a9468878eeba0443b3c27c7697022cd7538d1f41d4ad4a3877794c88612d9f8cc8cdf50a2d3c96d28d18dcfccb88d13d1b80d253ad9f8c98932dab33bec9da33ce31c87129d28d1c9713ccb5c87135dae831271ee3a9c08a343ec0e3be72827ba6811bbc38ea2443de812cc03734a89aecb6b50a21a8e51c79c68d21f304a74617e43892ecfa6674e54431bb03bec374e444315b03bec3450221d1adf41897450221d4e3b4ae4385c0725da2c4821c317655e0006144cf1a94982124f8451862eb4008924f82051e33d6f676dd0cd41f7edace3a0fe76d64d74ee0e7b0e4e8ddf50221b1b7ea244aa2058a1852e5e6a70033082e053a372c1114e38c1164d208397287c6a9ca8861295287783ceb7b36e83eedbf1412bead749f4e4441a156277d84d9488862ec13e48685e8312957c862e11c4070992739448d3bc44895434b892c6151a9039630b5ef021ed13c658318313b880cc1664f021391189125934c8464f6f675da3fb766ca035875f873487a64976873da344185d02e58304f48b12ede0832cb850c5194a1883039f4997701f24746821061e10c1094994410b3e48b45b4e645122497d77d88922e5dece3aa4fb766aa035c8af3f8ada1df675d52bead10040420a24c6d8e1faf97bfede43428a7fefbdf724db1d6eb580e189f74ea13a5521d7a9769d2985ccb76b9d7adfecdfd3bb3d0811d9ef162184617db7eef71ebf4e6b54fb0f8ebbdb731eb3cf678a63841d3abfcadf8fb98b6c3fe366eed5b64266a72aff731c382290ceac35eee06b2be4098f7921eba3d428654fe3eefd16456a613e8a465a214fd8e8850ef0ecedbb1d8146bc15e18c9e5d337af6f692edcf4ed5f6e7dbce5e5ff63a1f5cfb3bd21ef4e86cd47a02b2f8bb05054ebc2927db1d0e7a904ed59943a72ae79d8a8e43a7e0c71250f9e8399dead4fbaa7d0df2d1b779daa76a5f4f1f9deb547b7453f4e85aa7d8a3af4ea441bbfadda162662919fbead420ff3ce36e3f638d7f60a318ba6f47a05b7436ad43efd92f37752a9399c4305a31bf1c935aa7a43fe73a85f9f34c76fc19d66da3b6519af346a41f364aa355f3cb65b7af7543ef31cf48b2dbcfba7dac439d9e7df747cd7976a6d5f2e8cfb3c76c75fb57370fc03ebba1f8cca66fcf366b6d3722d299d6f9ecdbbd6de50c7bd5fe7906b785335aa3741af5dc726f94057fbda77bde76dba876d8557e212e53a64c99afaa5f975d1d7abfce7436aa9db79fa591728d6aef69cde49d5a7f8eead47e4ea7fc9ffb5821ef9f579d7fbe3a0fe32845b63a956bafb377dad7b3e5c105e1762545caef6a0452be96be5d00bfab23ba7c6f3f4038f6f6ed94e5edb053cfdb67a7f6dbb3de7e2cbadcf3d7ed5b1d7fc6dbf3ec75432cf4031b05bd08f7cf7953c06ea3aaf61c69557d9ccfea2afc0a7de8bdf4dd7ea2f77496ed4644d20a5ffa74ababfe96bfaed65a9f1043d422def26d94e53d6f764244ffdcea6ace43cf5893ddfeebf6773b023f7642ef9fc36e1bc5bedbcfa3b051ec4d83b8df1d2a8b5f12d9768a977f3d2b6da7f6d7b753ed75fe3accb85bae3dcb5a63eef9cd4c150efa73f6de7e982ed7feba6dd4f3acb51b2250f0627fecef06e936aaa777fb818d7a3dcd1b0faa6fdfed47c5cc6164ab53fd9f678be2b2e5c16da32af7c3cedb90228c8c8c8c78f6acb5ed14fb3aec54fbfa6eb351cf7b9a3bad51cf7f70d5f4cfdba1d7f9cf3353a7b651ebcf4f9de27f9ed329f6e7196ba74eed3fdf0d7651743c14d5fcf6f94d718cb4436f8774889f296cd4fa6e45d89bd676f69eeee9d579cdcc854930c5eeea88d5b3e7b00efb9f358063e7df1ec0fa6ed9f2c055eddbb54eed962060f1ed5ca776458229beddd4a9f5f653a7d8db735807fef6d5691ae4bf3b54cc06c87687db951154bece5fe73ab55b8280c5afcf4e2d1746a8f2eb5aa7f8d7b779d6a79a7e7d759606f9ef0e15f301b2b581abdcb3a33a55b567673f75aaa29e9ddd47a7f8d9b94eedea882ccf6eea543ffb360ffbd49c67d73ab5cebe3a4c8382fcee50313f20db1edcfa5a1c19e6c11963601c18b82f7024e098e096e0a6704a704970487052b811704770467046a532a53394d22899a1548612194a644a63289d510243c90ba52f94a2501ae3e1e0dde0d9e0617957a6131305f304138ae902ab05160b660b341f6859683fd0b2683a201d411a02090cc90b2433485a20298124464906a518949a2895a024456906a511948c2095219d818406c90ca432946a50a2c1b44296850c0bd38ca9452626fb423626eb42c6856c4b7684cd0c5b1936326c64b6316c62d8c2b08161fbc2e6858d0b9b199b98cd0adb14b6305b1436286c60b62f1b13b631b6246c5db630363036246c47d8bcd8b8d8b6d8569b10b6206c40d87eb061b159b1ed60d3c1966512a1f4040d8b39867406090c243290c890c6401203290ca5284a30289da074b4254132a2a4020d08590c4a52c8aec0455192524a41c9a8f404298d9213251464514c25e610b2176429d0a4c8a46830b219f01137c12698623805bc02a020802065a1870420c087c8909f1e03e8b080220a4891be30000104a004859911cc1c3163c48c1157863b03970687066706ae0c1c196e0c1c1938317061e0cee0b6c069818302f7857b02e7851b8313833302f705c785d3c21581db82d3825b7130e05e4001ae89d29852174a6694b2509ac207a204712d201161bb62a3629bb28d603b82a7601cf00dd8068c85af700d98062c05cf8065c031602b1c05c3805fc050b00bb805cc02aeb2e4c540ab42cb41e98b768312985218ed4883426322db426646a685ac093764342889c9ac6450642ec85a90b120ab92ad2053016606ac0c9818b82e382e382f38227047e0b660676060c0be80790133834b02a7048e0cae091c13b02c6058c0c46057c0ac805501a30216052c0cb6050c0a1818ec0ba6052c0c5c181c1238319c1338305c16b82b7056e0aac095c151819b0227052e0cc6046c0998185812b02e18181812b02fb02d1817ee09ce09cc084c84e702cc0b0e0b9814302e60637066604ac08e803d017302d604cc0b460636068c0c468627059606860656063b4366941d9119c145815b023605ac0bd908b032b03199940c897e42964436a58485d2164a5ac0bac0b8c0b46045c0b6287101d3025b6144c0868009e1f100cb020b020604ec0718167d04cc07580f301e60576056603bc0748065c1aac0728051814d81e1a0a180dda0bdc0b0340db02bbd05ab0146034c0a6c06980cb0186056b0283018602fc05c804181b500630156055b01a6022c055d057b02730243017602ec086b02330156028c0a46028c096c096c4a7fc192288181218149c146c03bc08ee0a0c08cae32dc09ae335c695c685c66b8ca7091e122d32fb8c67089e10ac375c60586eb0b9717ae3157172e2e5c5bb8ccb8b47065e1c2c225e6bac26585ab0a57191715ae295c52b8c25c51b8a07081b99e7039e16ac2e5e522e362c2b5846b8c4b0997185712ae2e6fca15c605c68584eb8beb0897112e2f2e2ed796ab8b8b8b4bcb558487c4b5c5a5c5b5ba88700de112c295c515840b08d70f2e2c2e1f5c3db878705d715971ede0d2c195e5aae2cac145c535c58583eb06970d2e2cd795ab060dc545834b8a6b06970c1e0bae185c56ae282e18b40bae175c505c2eb85a70b1e0aa72ade05971a9e04ac1f5c4e5c48582a7c47574357199e02ac145e522c1b5c435a5b35c4a3010ae242e242e29d708ae232e233a8c56c23c432fa19930d398684c334c32330cf30ca6627a616ea114c6c4c28c9479349b98269825985426092613afca5c624ee1274a5778573c1ab4142c8085f1a0782db8be702a28598143019782c7c45be219f18cba4c9fa1d36834da0c5d86264393e931b4183a0c7d4683a1bfd05ee831dd85e6426fa1cd682d74161a0b2da6afd056e82a74194d859e4283692f4d4627a1c76831ba0b6683d6d25c349727a573d054f4148d83be01e782b64163e92b5d839601a64457d131682b1d45c3a05bd02ce815644af0105808ef08ce827fc041602cd807dc03ce01f380ad601d40f100abe089100632f00357820948c0480d910a19ff7276e5ea0704458906900ca10448082448327e41340142a264484910489060cb404c34a064a809111b40320404d09325413459820489cd8f1f9a16485a1670342c2c07966ca08913a02125404f8080b2040a501320223a9a18209038d94093224c983841c01010404c983841800dda1582685660c24409104c98284140158418e240132026652c10d006903819423224040796007960479bc24261b244c910501048808036d0438bc23ad9409325483ef0048808a10f2869806b505820209a38698244099225433c10104d9c3060a809114e8000e27168608270020450103ab4272c940f0005218102e50340469a385902050a10043acd09eb812543fc13a0a0274e2670a4d3bc2cd09092209630511205091011404438c087208038c001253ed8a091b150828000120208252c94a126404f808468b2c435319a2cd9008ed665815802a5c9922743450021f9009321865082e40950104c9610e113048413263e395a180be546f3629520c9d1b66c079028195212849221a01e66342e40b084899225434b9a2cb1a169b141403861a2012440434400015404500d6db5404f9c2040d388b04d9c0c41049220982c214203489a280102c992217ea809500738000481208082208209104d963489809227447c0f6d080b0568c9d092274e84182242098d26846de264c990922744048164c809132848960cf14a9e10f136bad904abcb162818e15795edcac8e859f56c642c2396c143b00567666666dc216fce63e67d3d67c62b5fef3ee65e69bdb5aec75956a6bdf8369a2e66194d6bed63b9cbcd2b795787ec850fbedd071f678fad66f9e02e7cf10017c7ccfc9e65c1f776a5f560c3edbdded32c8bf9ada5bdbdf6f58bfbb46cb9d7b29697dfdc7e72d9e265ed69d6a5599ad597d4acedebf5f526ef3e299f25e59cb3b77b3237e3e00c6049b9da6559ef65f0b1f5981f3febbaacf7de7b6c6d05d876574ad92bd7daf798e7e465f97a9b9f0d66b3186318ef62d86218b6d862bb8b6118864938574a29e74ec96bd5d448b9434dcdf294bbbb532e64b8524e3833b9732543b82b57c296dd4db27877b775e0ad79371273f74c7c2b44beed8ebb52f64a295b6ea97b7bbbb77ba55c967257cade96cdfb5e33491240f6f2ebe57d9b83e47d8f59cae6e6b74fca96bb7399e7cec9bbcb524ade65c97277b38ce53e9ad5c1fbb21b6f27cc78f6f15ecc248b997b9b9bf7edaebce65a37fb52ccf0c696765f9b7679003870b65b0ede1c33cd52000190cddccbfc76776f30377397b6be817737e3e5c9cb162fefe320cc8ffb35d7db4078e5f6b398a5b5bb26de9d6b69bbcc9c6d2f899744da98b4bdbbf5e47d00789377b9e76eeff20f9e73ce655e669ebb4d9252ca4dc285737b77e75a1bbbb767b7157997b97b59f27277eff2dcdede5d5edeed65def97a6577afd6d27a5a66bd8bb3628cccd6aee47749292533c3d7d6aed59a7ccbaffbedbe65962ca5c5524acb87c599b44142c852c21bee9692e505f9a6861de66df91ef37bf17a39cb2be54a282db88f5b6eece6c870657835b63ff0c44907803a206fec0d1c70c20409079a2ce100079c30b129394d114041345982a4c912254200b1810d38a10260c264495010548f1e281e281b3e6cf4a0a1069d20a520982c11020824434c8850b201a020769e281982d2a304c5c6e6260808251a60c2c4c9931a7628017a7273020a4232540450931c401cb0a9016508ca92228072e210104aa03451f26408c9d0920e74c009cac60660c906809e0c41699e28016202044e29882640430ca104091007943c71320485ee0d434a9e003501e2000ddd0660c88993274882007a0214c41327404b9e0cd55004901039341b182202c95093254f8638ed0d1d5832d4848827488080b2a40334004fa0e0ec0d1fd8c0922740519010e086010c20004100edc036004100418102f464880e380102c913a0284e80007a82440994208000427243506a00011802082028489c0c0df1812740f0e4c8210037380e29244538f1c0108e1aa9010400490080829430d100120e345922041425427803013dd9404e9426406fee0d489a385902e5095014241d40f2c4c99012209c3061a204c950114039a234017a3d3422f4aa54aa2cc9aa5458925549956a1615a9649222de242abe8a8a8aac22d5ae4aa52a7a49b68b601215171575d14b52c4aaa2a29744c545aa4ea2e2a24eb2aaa222952a2659d595648b5445aa57c42a4e52a42a52a954f12529e2a2a24eb245aa4eb2459c44c5459c648b8a8a8a547126d9a2a24ea2e24db245452a15545949545ca4924954ac62554ca26295aa93ec2651b14a0593ac8a93ac4aa57a4956a5ea243d0f0abcbbdc01284a36657c1563bc007eb75461e5b3cde057a6156e57b95711156dbb5545f0ec16fdf59ec7ddfbd7050911bde5fbdb55aef2ed702bf21e3a5bb4f2c30afff2f5ca74a9dc7eac1fcb77db19afd24b5e339fbecdc3b9b5636dae0df55b8e3969a70ebdb73c9268dd2f9b26698dde3ebb992a5c462b167d7a6f44aa2ae851c9de171dea7f3ed927adfbe5a1b74583d8a547e7ad08bba45aa3f6615352472ba818f3ddef162abef8d514584a24af9cf46a9abe6991366cdfcdf22c6b8d37a60bbb88b3cb39aab8eaffa0f6b67deef689b820cbe357ffcc3b7561251c72e84ab4aa3ef3cb2fdf2de39f8bfed02876f8d68b24d9e5984e39592f8c45fb3032130c24d26d940838e9d594d3a9cb9f1371fcaed3290bcbfc791092bfca5f990906923195af43fdd8162ab2f8ea3b381557fc731d1fbb6194a730106875959ff443a3e09148ea60a338becfbc0e3ddfba6d5474ad838d8ab442bf99690137d49fd18a495af9a547b75016ad431d295d9db7f145832d3fd0327b87eb54f4e754ca18e383fc6e99420a2a9f2d0f8eb3f82d533cf1febbe506677cb6d96ad6768414bbca5fa3d7985d9d3fa5774bd77c3b35e397c34e95fca21777f926a1c70b6e447e6026e0f6d3a7463d6a6ad4abd1e57835fdf3996e1b359de3e12d2f3d92c76eebea7ee1a367d7baca547eb40cfaf31f3a05bd9da7b00efbededd0398bcfbab9fd808043b1d7a94d5a550fdf72eeeaa4f13af4be1d7a95d0af8ea6dbde617fdb91ec1b46b7ba2abbba5f1e52668281b0f7f40f9dda87ce4cb00efbd0e5f603e9724ce5b98e694440e5d32e82e7483caac4017cda9b1635ebc8b869555526d83f87dedb91e88f56e8915e910e3722fb57a6b88fa445980f15cfdf66e47a486b037ef7c7f5cd5ad3aafade47aa11f8d2f20a5956bdee2732d8031b3ddc8e702fe983ef41fa1e3b91ed36c643d7b43c8400f4cb9d90e22f083cf1d03727ae78e8d32b0ebf5e77f82df9e6bb7eead4f4f51cd7e994e6eba84e5dbe1e24874e5d1d8cf1450bc3ba7d6b4ed7f64bd37b1ac748e6127a96917cb71eb20c23656e791635df8f1a1d6279f488b9d5f147e99156fe4cd3aeed08748d0649afd0a1a8fef2b91d81a27acc832e879ed17a3946a3ecf652bdec36d73a158e91e89b47df1ca355f558a99b8e056d0ea3973a2952a448297912bb3730fb24b17b437d7fd1ead3f38488bed4adcf543d147a3f332fe0367f9b11e897bfadc8f48bd6cd27c5b93c73e9bd15d928ce458d686eb9e69643cfb42c48eba1358d3fd27af9c41c27fafef4abc3897488f4e993ee637e3d16af20ab5e73faf34885b84cf47704faa4d5f2cb31e68f1d7f11abb0ce9e3842e3b1cb19ce076ee16f516a94367e6d85ec2ea9b723d0c8e8d7797dfde7c9dcaefb0ad7e361effe900e9d3bcbdbdf3684dda2d5278e118bb263cf31db76ee60a35ab6cbed08f6ebd80aa90cb723d9fe685f8aed8f66a397ddee8f6e23bec7436a6a2db2e7afab00c70e8170757e734c58e9f84d15e0d8b79f3874156479e96f6a3f2499f20c1bf0430ab03cf8e5a13a85233d7a033a55757ee854452511a253f5b45c78e814efea09311fb1e7727ddd2f657cfcba66f0449f0aff71fd91a53fe9bbec43f2975fa753425ce6c9fa907ce9bc1941f2edb27db9e9ae0f7edb0f7bc65d90dc7870de86bce76c85e0a51389400445b3e8a56f57150fed4193d6e7eb550e91fe8cb43f2a02ee9e67dc6de4394b6a844f9db23c7ace36e1a0731abf5b82800567da951365bcece2739d5ae9d1b3de7848238d339ce1772bb33ed665c7657e37a3f5d146463c7bbf31d7964c88bf358fde1d14fe8b06b15fbe822cde86df2d529ce16b7f74ee9ef0fe883e345f68cb7ce6bb0dd11cc332a618bfd655e9d1af6e3d5b0840d73cdb0b70bb5ac117fffcbabaa8f56e5d2f7fde9b11239a5f9e418d372256e657a739dc8ccc21d399eefe60ef69adab4d797fb05f9e75b59f7dfd8a325fe89dc1e8d7adae0eb14a726321db21dac57c24e3a19113aeabf85d59b1c17714bf2b1830f1a8dfd50b80f0ec4eb8b7c5ef8a05649eb5fcaeaa5cf13e7e572bf8f22ba48560bf0c447a69856c1a3c92779eaf2fbb943d5260617f48dfe0f748718505b22f696d5a8b3e4a3f079ef0b35f268ccb346d857481042a2f54fa28f3d99f4bd6617fbff657f9cfb3a7c5ad4886c6d15722681c15915f893841174808f342499ec7c0e0858a485f87a6008553145f87b044914de1eb1009a610bf4269020f6c004297af50b0e8f2ecbc1599464645de5664cb3c7bdc8af80bf14bcf6467f166247ad35a03a397de6e6d43a443ef795d556f91f1158aeaa55b9dd0962953a6551dc5060d8c1ecec0cb77df7dd69ad54532be3b1dcf1b11ff76d945b101e9501b71e9b10b6a979e75d71b112e13dd8a14a708f4e844a0473a94ed4a0a347ea8dfa2b53d0a7f74d5771fbbee7b28fbf605a38d56cb8f10347a1b066211bfc832967560315f7ebd99677dd631d6011afd7a66696f1bb25fac39e7943de7e339238ac49ead40cab35bced0b3d8d16fce98089a5b1dbbd60559cefe36229611cbd9da26dcae9a78e231b79c8f70bb92c28cc75ef32c7b1a6f4466bd3cc8ea2ae69667568753041a19fde6f0dfefe656d7bf794f5b5adcfd51f276ab2379a9ab16dc86584ea2dedb10cb39ef795c8763c472925b4ea21d8e11ec2dc7dea237fb034ab7bc3de31ecffa40b73a53a3a0979cd4edef8faab9b51dc15ef39b15023d6e4770f607748dde90481d1bfd6e44d8e8ca8cf734f7786628ec1de8b044ebfcca05598e79b57c79501101c330cc7b3a831a6f43d8adb715b11c0b22ed0fe8a5fd018d1eee0fd8010e1a19f19b6757b6d192effeb84a4ebabafa3e735246ba32dfba27a492e63d5dd29c946d9a5f9946777d64f47afb57b76e55f695946bd473faed5b5b54321f38f8bb32411a3e70f177650232bb3f768709c47cceefca045f3cf4fa283f6fe8107a2cfa17cb7848855e99323088096db2601cd547d9e56e47168ca397f44a56f43576b1c98271f4d12b085e46d9a40052561fe91511144dba45fc73f6ac61f77cb70a5c1141d196e173f95e31c251021a3c61e5090d56aae0623434c496f1578c8090b1855194024859155141f0f1882dc3e7a2465b860ffbf32b4637a0a0831160c1c8c867a9088a2635820e691de29fcf48010a3538831423239fdd7aa0f9d8f206d9d1b7aff7f8badbed03ad902741fe0a74d55ac19f2fa4914a49e2874ff429343e543a65faf69b9923ae32f9f5205f4d5fb70a0d90123ba6d2a8f6ca55a6f2ed75abf0ed44d0b9b71306287c10850fb2843132f289febc72df3eaf33823830c10c8e9081107ca424f1c3e7f9141a1f282589f6913ec5003ecf6337c5003e4454f8f09ca8016fa7fd75f9f6e84454f8203d52a29eb7d32e2911153e447f94c8df4e7ba441eaae56cfeb76593128e1c5952d38e106521063c6096e7d5429f84208308081165e7600069ff5815e837cfb6e3eb89191cf732a9deaf1edb07bddbe9da3df1d4550c50da9781076d199ad18ad1823ccd9f87755822d3f1d1dfe087199872e694ea322840f7687f17c5748f4f52c3e7ed39ff427fd59fe7ccae74ffa7b2f935a60ec56ceb44b67e938d0f9fb716011a4c78ee58c1d3fec76f545e5fef983ffde7b3e35201cbb9c611f823df3eff6d36f5f371fc9a467196f3f98670eddea34df15b279f46ceb545f336b0bb27c3debb2df5509ae78b83f626fd7ae75965f1d7ffb76d3b56efa45847dbda727adebd3b3ed6ae6ebd9d366d79bf376fb5b17343d28f376accbdee5590f9a6799f3ae1014d56f5e3d608634ca3c94ed82e509267ea33573cc7b5e96456d767d39cca436bbf6dd8818d1682de22fcf3cdb8dc8d2ea711b8239e6cfdb4f4683b021982fc57cb722f32f1a34bdbd4e23edd3af6ebf5b55c63009d9ae10e9eb31931d0e8d8a3e840fd2a8e8bbd59c8ffe760342d3729a07f3e83bac10df1fd3a3fbe814d7a8797974acdbde99aed33c13e7238fa977a6475f28bee2f0d17156087fccae2ea751d3dfefaa0441e0327206faf4e7bfab124cf9136fd3712c7fdf8f6351212ef396efaa0458fc76918319bca9e38be6346a5a5ddc1febbb41d9f1bf2bd923f268effad8ed48bfaef24b1e29984ba1e2f9e5eb597675bbeace5a7bdad56d18a3b8f100b723ef9f63ddfa7416b7fff902544dfc3c1264c730a0e7a7bfcd4897def28c548b8e58eb4d013ddadb14d0f3d37b23d2e4858adef2dd8a685547f6b4de16a08ae2a7674f83db109595174af2d3b36612a91659591f99a5c9cd9a1a36af6e7db24bc3baf5b9baf5e9ad48bba4959bf7916ad1effea8bb3ac1132f1debb8ab7323232323239f22d01f7d9b5011528e30c2e89f6ca3a44b5a5f6f47a0bf0f7a1e7d3705ec5b9488d30f9d5ed2dd1ff539bf17c40e3b1c23f503dfbebfdb4f7b4f17b54a762433c9f4e03a9daa409ebdea3cbbb562823bf540b262c50496a329b6fbc13280db9509b27836fae759697d752a1b7d7bc6c3da760ee082d8888fdebf5c8851e6f9d97b33c2462f7dbb28b008f7ebcf778554e83845b08754a8f4eb4bc607f948eba3d07bcb7cd6da760de0d8f9a958e74dc885b87f34878d7e77a822b70db20a705906845b37d1643e7090cb56ce688d82be26574003c440390674e873eee3d9dea9dc577fe9d9ee70d14f3d9daa53019daa5c924e49dfa153f0a5ff70c54bbf40a7decbb75e5ee6f072bf78e9d07b9a8ad14b29a594be3a9206ed9836232b6239f40c76adc1ce826ef5349c97f734ecf8a74bbfbcaa2e3933ab8bc20fbb28fc96670c3bcbb36edf1f30c8eac1f20cba500ecc367b1aecaccead9eb4c29f2eddea5e435aa7b35bdef366b72f44f4ed6fb5d573d2d915366a7a6f43f837871d9cb40ef50b311abfdbcfe656572d8fc23d136864c4d7e942161a4694f928f3a7c3ae6afe3c76419847cf324827842e34a51c61c43f8922fff228d64351fd45e1f329648d79cde163ded3b31ff3ad137a8f519c22bcfae870fb89fe3ae83d0ff3d845e97f9e75f3fab886f047c73a68d1ca6ff9d555beba2ab5ebbafca2d37b9e94ef2b14d5b343d7e810e81f69b56810a442445fdfb317e1bebda7b30e96d6f470a0b343ef0e077abbe519ecd833de14d063393becb621ed96c322ed96e52cc4659e0c69bb1519a248929f3ed783a05b9ecdaec287fe2efa4468c71819fd508d9ffede90f6f3c81058f744e800dffb03fa907ccc6b3ff4ab7b82f990fce9bb1941f297f7f4ec8474fce558277480e7fd7175425ce62f9f5de58717ddf5017b1b121d3a6f3f9256d54b87dd9c1dbbd5edafc7ae6e3ff0c9cb58f34206cef88b9ec56e9f378e43568b4f562a9279e69986f96a8e697e398675a646ad5f1dd7adb367591785bff267ce5d14fe2ccb3cebe56d4862dad3591724fde23a95b9e5ebbc6525fe6cb79f95335ca3300ff29af3f6c3b4e7f53477953f48fae52b84dfea7c7fac739d0af2eb59c7356ae75b46a45fb4847974e89af3f600ce317a6ad4ba464ddba895ce9e65bb5db4aafe72ade34eeb2ae617462b7ccc33e7ee75e5d7bc2e404584dff5a1d18af9c3ba7dacdbe7eb794fb7107ccb7bbaa733d9d5e8ecb3c3612ac46fd11c2d46466fc38fb7ba9c46f14795c5110b19849d03b820e83dbefe6e090216bb426a908faa5804fb98c5e815d25af4d0ebd5c352e123bd327dbbe9b193001032b428e3b30ebb4af43088c996f1964baf451f7d57875d2075bba841981fe2b768932de3855e99322fe91511142d18473e931a2d184795e823add0ebf5cf7b1eec7a7cc6daecd677abc08271e4b33dbe8855b15b0c128ce9274d78e9c7b3238c559632786006349cf009c09626565ab444410a61f82c4785d31ac56efd7621052ecfcf99a0c2b8258b3138485096ada67a37dba87e10c28e7f370b644988e9a6c8180ade16e00204209982a1f734a493aecee34076806d5429e30270bb2d40f51052157302eae9dffa7c0e7daaf64e640a281eb7cedcb6b7c6dc7a6f3ca8beb6072d152afaf5e56aa0c414bf2b25a87c2d3d741b7eb76461c69720cc9863670e6e3ca85ef5ecddcd54c9def613fb69323a73ecb1eb20117ee93d3d3b8533845fbaa4f3d963c7bf3a9006717d447600f6f5ac14c4dd4c0b98e9ee906c9fdbd514343efeaea640f13b936d01b4cf4acc496ffa1c46dff64ee10c697ffea4b3c34ed5e841cfa14b973e3bd5922ea77d4ff7b48a997b906d01b8acb49dda951259fc73c8830a3af4acb403f7bc5da8e8a1103f6b20b34c5ef27d3b35780dee8f0709cd9158821d876f3b1235be6fc706b781e4482cc1be6f27314af9deeb86155a1246d8afa1170bbeed545b5342df8d56c83c3bf6335e764f66c746dfddae9210f3bbf14a892c5eca977e6943269dbbf041684929a5654108df8b7346191f8ce2f98ca50ae79cbe3cf343a3a49be0d4e6f663993a351dfa29675edbcf9c31c68fdb8f6559d69c3146eda18c5d85dce517adf09a741b15a5252b7c18a16469942d0ac63841e689299f6d126eb778a2ca6725e90baf688e75fc373355389c22d031878ed120cc2daf58744ba31be07695832b5ee7779583a35f24dc6e8182302f5d85751562d8b47cdf8ce55de1abdeda7eae465975a8ff22f2254ba7f6314ae44b9646ed57ce9e3f912f586491be4fe4cb149de227f2058b46ed5f57e619ad30c3e824f2258bd911f97245a3887cc1d229d5eff7b63d43e48b148ddaff32c56e46ac3265ca9ce12d4ae40b9646edf734273b0e21835d94f092a11184cba153bdf1f60384abdca9bd8374aabf3d87e6f1f69ee6719f7605748a8715f2be94c33df1eda353da6f14f6cbf39429508b63e4f6236687e6599f309263dc8ef1ed20b1975608104ed21c8228f1c5b7e30077f8f6ede8769146ec0d5b641076cbe54d8d5a1abbb93fdab3ddee46082e7bade7b55f2b64bf3d764c02239ee36255c6f71455aa90e25bcc4680db550ec47cfbaea698f2555be180ccd749808cc83e3b37eaf11b2063297c045777f5eb9b5959211a8e4ac36ffdf1dbe3a3571ca270df5edfafcf0bf375ce6423ea301f4f90b7135df33a33abea600ff2787e783bd1a746ebe4325ab920af43d2aae36b908f1b5cd30a69d8619dd628e857371b05a143efeec910b740e0a3a6fd01bda7e7e3b1b13bd0a3efa676511587875e7bfc88343c8c38b2a7bd2eeb2eca7ccb7f783c6cf476a2cfc971191bc56ae3a5d1477f5b11ff1af4ed195c6e52464dfb43728b928e75daa2a45fdd5c94f4d9c14549b7badd21264e1b32e143daf4ca14f7d9687c5dff051a15fd87f5c256665b58780bae9a624ea786fa1ffca1fe226d6434d4f0d921645e42b69d7af041ca8b8a21f8f6f8dd45e92740e27bd80ebf3d6be943f3797fc4fec83dbc97d0b3a8bd280d258d7461a7e06b55e4de41f48ce7f2f5f7b61fb8429e2fdc2b976752bb3ad83b742d6b6b00ec013ce6ae4cf6c9989b8d8a8dba3aad7762a67ab432d73115ee799d44b445597eea54856fd153a3a25722fab86bfbe949e76684cb942953e62df8bb5914a708fb73a6b051d11f8dd29fc324e0eae9a301a6b8cff4e8a7c97dd41a159d47c03d7f0d71906dc74b70eb59f75b08777f2cbff748db44b63cb839c4ad9632647ebaef98bf6477fdc8b7f1a07a9be799e7eb99d97785c4679741b439ab70d3afe972e341f5d333a849ce6185f45b960b4180e5996fc7726bc3bcb565bc199c16272fdef2ba498841706894e5bdfd5cd48714aeceeae32d9f97cfc971d77ccbe546c4797ab63ba3354a7acde12d67cf6185bcb77c874e3db72c29e1ea583468c744197cf9c70033def2fee29f675ab278cb5b7ae6d16bf42745b887d2fe60e65daad187f81f65b7baacb33a9c22cf2d7f34286bb75c6e45326fb7a250e9a1f81e79143adc8e58de1146e16f879e95a6679bf9e516e6703b223da351de91e8fc7c4bfbbb4d8a53c4f2e7160d921406b50ff1c721428f0af1379d18c31564ab5379f5704ee7f7b474cae2027f3e9f6f4ee7b715e138b54861bf94ced2d9a222b5ed54171ee3172e677233f25c46286211c69819a3cf9b91e79625a547e9118d151a53647b8129def209c55bcfa316543eba9ca93133e33a3934db105ebd45abc69379851f7d69cd3a2954d4e81d145d7ac66d46584adf8a4497bedb155dc68b465a2defef79da4927c80e0af021099322a41c418185afe854ff66367ad3566668d7bca16da782a4c76b7a074db7bc9ea4376f46580bcb729e5ca3d8ea3623cf2585f0f17624f1caea2d0b9d1919fda4bba80a8f106dfce745a09151947e02847de8f44c2b147a65d068a367fac4f2a1095d16816f15118191e85ba850f9e7aaef8d88ca9fd4ba5ff34292d07b4bd2657f5b0f91c2c9afb2b8cf90ad43ab5ba859decf1dc76c761805f09b61f9e39be9fc16532ecf3d8d627f0ebbaa82734e27b23f5df5ecd3926c75cf65a77a8eafcbb3cbede7d12f9e7dbdf84b7e5d64ab532fa387bef3577b7e5e82939e31c34649efe6f7204988cb3c4e91c8fe9e69257af68eb71fcb33e668324b769696a7d57496168b8bb56ad429c7c95738f0a28512be7ce9570b31a2f0d942600a2eb2581427b994f1cf39c3343e62293ca5797438743e6228580a9e829fe02a6c85b13c746d1bd26fe39986726ee74b879db298391ae7edc7e41a58216fc3a103b1a9b7281b0e3d09ebb00bc486435f1da71aaef436bccec77c97c7da1d1b8e0579deac6ea68a74de245d8eaf8d07d510bff11a5dade1d2337ece21c73173a451f839dfb6219ccfecc686a7f8f1c029389cd364c7531a0569b49a8ea7304b99c2953c3a94e2a11459201670d5a99243c752e1140fdd7a5ee1150f7d2bcce2a1cf28c1d51dc346071b653977b35196732e69e51adb90fe1bba8db27084f82d8f025fba50a97d3bf25cd228fc16ad9cb3c76d087b10e7d36b6c448224c72f6297e6c9e1da8d0d76d9c1a31ea351d07574eda577a0674fbb40a7385aa5730e9d66231264e3439495e0ea8ef1d06d3a78d4db9020ce250d1ae287541a053d336956c70fabc8d3cb1baffed2865754950b568158dec906ad28ce2d48e2299dbae1d0339b68c1671349d6a96b2e8d829ea3eb2f7a0762f9cd6b8761286c745ca5e327a690488e036e43e25b94a524c1b1db703845f348a1e2463a740845a79ed4383c397468054ad1291c870eb174cac6613cc3a6bbe1a70efe4d772587cbeeca14f7c9e1abaff18c87dcdf50d955eda56756169db24911f13fd578852fe74b7f36b49ea856f3b609a3dc380ed9556bf5d05a7de1a58c31161a539eb03205165aba7c1133cfe8548e4e0a15f2e6c621174d4c79e9393db0dfd04a7bb0b0a8269959da8d8edbedc67bbab71f1bbfd1f5671207dd055273dc46d1e7e4f88d1ef86b3aa122a3b73c839b117649ab7f8ee7b84ddc8c5858340abaa415360afa0db5b26814749b6e3f6e8b0457ad2b1e3af4dd6cfc6d46d873688dc27fa3e3df42058a26aa60920bcbb34cbbd1edcfad0867b90db734c6b4de70a84d4764dfc66fbafdaca35623c7c78d888e975448c74bb7e9f89b44437ab81129955efa0dd7d888702fc46386f80b711829fdc6b38cb7a76bf4a379b2b3fca6ab5ce66fdcda88709997d26d78b60d91ce6eda8cf0dfe8f86f3a03bcb51139c04b2a74809736fbb821c98642e98f225f7a8d0defe92c3ac50f9ddfbaa253361cba8545a7d8a15b59746a6d74346eea20148db2d228e8335de59ff16c462363336666c548df15c21467c6e1c797cecb93e4ed40976e05a1a1b00a4be1ea86a9706e472e2ea0f8e7ecbcf5f084f86bd4f09eb73fd3ed7375bf78e8a4aec28da53c74adabda5758a59eb0ee89f575c3d49cafb0ca439f49a2b3d729bd72d68679e83f74ea39741f2ea0d33cd013c0c36a0a2c4e1f73be9ebee63c645ae747afdce7742ad2ca539e1dba11b58d9efd32ba698f2263eea8517037a610c6c85d3bec58c8fae60ef3dc653cc7b8fd70116f41e89635f721fb6eb221540103811e9d3b0819aa8081b04709692da29d3b58a513b260d711baecdf4e9b1cabaccc56a7c2a3879ef1122d8575d8325466e277c9d4fe6a8087feb0407d7d55827c7d55eaebf2d05f9576e8cfcbe381bd03fd74e2b82a33ccc30ac59cde189d470665f441bec2290f8fe0b6915821bd2d60bf0ec1df588b9b47cfc9f1de7e723ce36d4bf2b68ec6779bd1b74ef53431d653fbec5ea7994c9af734971b94c1e5b5777fcee521c0ed961c60f1d9770eab5821c6086ef32c9bd1789bcf37efe98c66fbd968687cce9e369968684c3426addb9f9a6fbef96e26cfb66e3e676ef3b7cd6d9bd3b74ddb369f5d555953db9f6eea367f3fd3b79fccb9ed67f39ce6612ca0cfe6e18c8c8c8cf0810eddd4a91c877eea14c92daf385c5e7d3cc4bcfa57f8d006adaab7e1b3ab715377c369b81b1b936b9d9a3e3b65e3d3b3d769dc366a9a16b0ffda8c7f9dc56ee2a0711cbe9dc2e11556a981eb6e5a8722ad9cd355fe1cafb11dc9fecd6c4474784edc8f737f3aacd2a9e8d3b9ed6796aa3c1a668038003ccb1eb5715357b937cde734269ae73426ef79269b2ee8c68bfe997298bacaf0df741b93dbbc87e3932607b57193f7345401eb40e3f3f9111b5afb6fdc69edc7a9b0cacfe78fde7886e36fbef71e8edff87bef864215d0ca8fe3383e29ce8dd3bc2a3bdef93e9e1dbe8f8787fff0e793d622cfa73f9f34366ed3cd54e14c7ef20aab3c8debe82abf0ee73622eeb3e434feaad8e06387d6f94cbe43f34ca48dc8f32093fbf6681c7a7b313da7d9f1e561f21d26da695c706e6eba7d9cae7ee0a767cb8dd34dcf368bdaa434febacabd8a68bae9991c3e31ddf42a9482a60bb2f1a27f38265a556ff2d7cd93d3387c8275784e5321145f4f269c9e86db91da6fe339dcc64f9ed1b8c9442bacf2271fea9f269f6f721a37996868d0741b37f9a9674c3e63a27508eed659b97a7a93ef9a7cb722363e4ddd848fd34de7ed48fce93736f4c12718c8c9737438bce7e9d041e151a34eded3581e4f7be99cee701d1e4e03ca677e38105a513bee1e048807d90142dd33a891a00a70f8694edf4eddcc49eb10bc9969015787e08cbf83063dc7e1d3ebc9b367e4f98e3bc571dff193b797c7d358de0e7400d08afa412b8a7314ad7e83f3a0f5e43b68e5a8775e02a0e33e68e56ea0fb7668701b683d4d3fbd9d1e5e03adf3b9296f073ae73710fe0e4779ed30bf4367aa7043f13baf43f177f8c971b8b611e93c6807adfcd37978b61dd1bef337658737fce9285a3bcc9fbcc79bf2d01bcb0e87dd741e3876380d8d6587ebd0caeda07528fef493535a270ec7b61f1c2fcaf7fa815d9e7d3b39bc9e7e3ab73c5de5edc0940e9f0e3785e3d3e7a6687cbab629934f7f5b0f38bca34331e37e4daa21f8f7b62211be17c9b679eaa90c1baf2da6cd88de613a75e3d1a10a5807fee8a48e1f1e756a3f7a4eb7bf9dd2e1d161a770684c1e235d0e5639794febe8984ca3a0e3748c46a3a0d3746dd428e8a6aea5340a7a57a9e1d077d23abf86e7e82a0ffd54e5ebc971baaa7a1ce7ed07c7b367f2cc447114b06f7222fb263af302cedfe4aa7f5de5ea3fddd4d5e9271c4ee33dad7a9a6e283e0e0a55c0404edef34e5d749c2e2792793cece5ed408773d6783bf594dddc78c6da4dc7efc58b171b32361eb71b2aa627e13e54d8649636b721d377854cbafb63fa8df3f673f33a7ee69eb397e7737a79d3bd3cf46b1b62721a67ee394db7fbe3b9a9dbfd216d66aa70363efd713636feb61f9b472b13ed4d3ebda6c6fa534dcdf39e3e75b5e8697cb79f77a3dbafe9b65137bca69bbe1bcd8daef27393cfeeb9a9e3290c643a4d57f969bcb79f47d74d4eb36f763dcf4443abea697c764ca551d3df0f0d15b2dee43dfd3a93eff663a2f152c75baea8c25bc933de7ea6eff653721b5de6b3db2775fba64e739a6ef3d8edd7e82af795c93cf499c6f2d0b9aefad757e5a1973a22fb1be97907bbd9a8c7584cc7689ddc73bb534f3f697352a8d82d5430e52d5a4f5f198b87fcb15bd8aa1f1d001d5c336610c2ac0baad29f173d43e930839ef5b348b1e7e559a6b9956534cb2ed7ba20ccda32cbba5cb35cbbb2cc7b7ac330b7b8cd35af25dfae9eb97cdbe845a16fa4adb90cf35ab232df9cb4d1aa6597e5edd8352d5a9f4b2d93a0832e927647cfba75b0d241151d4cf900fc6ec9324677fbd6be45dfb6dea2e5fd7e8bdb10d55bf0ebd2e7727d5bdfe4b6be49ef79b2fd7541f0bd64df3697f2bda38d0abd67ae9bafef16b7edf46246eb506f9a47af4df22d48d2ca59bf924be7e47449a2439797343af43ea3d1b16bd269d2b6b6b05831c5d7f0bbc58a1d8c7936c1ef161d84f9ac343b559fe3b4ef5bbe9ef93a73d3b34c52927357b9670cc318938e415217542f8f5ef4922fc730f812f6bca3fe4885de57e6ceaaf067a657a6f2cd4cb8f42c2b394622612412e63d0fabd24b5dd0e6fbdcbde748b4aa9ee41877153e4b2f615ea2fbb84a12157a4ff29ee6ba5af441ec9bef766473cc7bdabde4b5867343cfe231459257e99c9bbaed1d8eca195af7cb4fe7a2733474a89f4437af35e8503f4649ce71b496e8503f9324e6d037a975b03ba23d46eb35a98916792e990906626a14476acd208b962c507c5682ed43fdcc5d0eb03cea774b0e8cb250f91ebf5baa0836a72c59b264c952636464646464f4ed377470308d21d3463d8557930bd7e5e465b55aad56aba3a3a3a3a3a317264b5bc992254b962c8da5b33416bdba3166cc9831636cac56abd5ca74747474744453234b962c59b264f9f6991a0640b3e22eec250c1fad56abd5eae8e8e8e8e8e8851943a68d7a4a1f7595196eb55aad56a5a3a3a3a323d20bf3c2bc302fcc0bb30149d5e0a35985ad60c99264b55aad56aba3d5d1d1d1d11173e12eec258c986d0cd556abd56a951d1d1d1d1d1d7d3b26009e99242b66c9b0111c3366c547abd56ac555d80a63e12c8c0576ad56abd56af5ed3395031764e6c0ad4e5ce098970485723f9d386e8ae1c69c968c1bf194c99d7cc231161c23e19808c74038e6c13139680c068e00a56f8f56de4e4545af7ecd1cbe7ddfaebc2e17afdba57da395c713bbbc9d768dd65927462b37693d495a3dd2ea9056d43f5a515fa395df3e76a14200d29c1c773ab957d4776fbf543821dbaf673a68dda553367e3dbb48d1173e69943191311e841042ee1632c320dbc74385742aa0cbeec95b5491e8c3f5cf033bcf792b72f5f6c3142a8472f8a0a1f7d151aff2b15c766b75522c4f820aa11c7ee875b263bea1aa5ef5d27bde5b9fee64578b7a3342134991b23ff888208c2f76bc3f221551faa1cb08e9d2d8308a6c75aa75f4ed99849af6ad69dd3ca8de696fcfdedb7e508d6a29df637efcf8794fa3fed12a3dcee8a35393f69be249f1a0d8bcbe27485e1f957f5ef2faa4fcf346a3795e982643db2b9397259b9d0f1d26b8e95507d5a87e615e89d649a295db683d69b4baf48c56549030df64bec22a37fea20f4b2f31c56ff4de975252262fcbbfaee20a14fc8bef39a48f3679597e1bd5d3cb5cb847b751d6d1ef0e1589e518ceed8f757642b4acfdf12c8bc2f7203f0ec6c752c6f8de7b48ab073e760e4dc841fb48f70a19c4e2d9a79867b75e956797cde5d9233b642ccffed87bbbbb77773de3666fee5eb7aac8fa7472d7119bbee70ddfb4de7b4df9bdf71ea4efbdf7da3242865dbbbb6bb58c70777777775dc7fc7e5ebbbbe7dbe1eeeeee7e2c23715b52c82e14b413efbdf776b7bdebf6c7ca084d269a1cb8e1cbe1f7bdf75e905ff6c29bf5e4f71e86f990d68307e17b5a1af27befc517e394c82088624418e9ee0f0c05199301b3fcfaba2557bf1ee1fa2383c9a80fb3ec8f1dbcf7de7befbdf75eef73a207f3681ac0d0813b22959de553c79503c391e56838db0dc9a674e26a666ed4984ba399341bda0dad463b69361a69d3b06b5a32c2d773f69813458abe29cba7b4501fe9bcc690b9eb881c5782d37af0f5b64308e5f7eeeeb64308217c43bc7c77aac7130c6fcafe80fd04c7bed2b3b7373ec246c986103adc88d47ca4fdc0c83a05dbdddddde5d7dbcaaf5b637e5daec775b8feba53d0dddd1709a74885f2dda551ebd695ac7b3705e1ebd5217a95524a19af48bf323ddb3ee2a0d08533bdcd8736f2999eed16f7f15c74caf499de525e995ea55b9ec96e364aca6bdf4e11ffa25b746631c6a0a1fe47a3bcbff281e934df9b0fd0c888371fd8c8c867fa6e3eecca67d27d64801042c9a79343f828f7b0f441d01f7c938777675a2fc58b5a8f10f6a3dd04cfd9a9f50c76b35116097aa410c2267677d7fa47fb096ee620cb98fbe94216980bdc36aa490b82aeaa4cbef71e6f44c068e9c84509c87c017eb9a0d2844cdb324c2302468b962ef2492702868bec8880e922b97c418980e9a275aaeaf8f6e7cfe7dc7e5e4af5dba9e5d171de0227bdddda84b621fd289bc1496a6a543b6f5ca3ba8b16305980c9024c1660be4081d1d23c0e6605e60b305dc07059659105182c1ccc0a8c8e15b26f91b1d2620629dc77a9aaccb220941b1130583a85e50a2260a6b03a2260aea0c259be5bc04cf1bb112102c6a244c05c31a147ee2d2260ac0d6a8163df2b1e1630568e940163058c153059c060012305982c60ae0033051829c0580163050c140f8c1460acbcb845b63ab566cc3fce02075d7ab63c46efbc46c98ec7801adc86b4d350fe52f9e7a49589ccf2d0e5171e030b1c7c5ea0f7f4cd4c154e56f135bcce136c437262c761f6c7f38c1b46a9dddce0748cc515cef276b270d978d5a8d5d4588c0d63793bcf49db15b6f2769e67d7a59dfeb915bbd35b13bbc141c155b854c96cfc73d31833db4fa4a62e5e70fc44a39ecf6c7c74a4692c66d3f80a5628695c054e638edb7e66b4340a0a5c9d592d4d3f520d7ad3d14ce99f9356a4554d98b7f3bcd4a8d2ccaa26cce3317589b4268ca9cbd1cc36e4f43556ca98d1980a35349e02c761384d7b16f3786ec6bc29385d1143bc1d3063fe798d959a2e2bc49491325246ca481929e34c477cd3f194b7f36c363662231b37b4d865afc4d7d08c7ee6a8515120ad6aaeeb023f780922491826389b1062fe797643e332a60f395b039e199615e70e39cc2e013d2b1e1af51cc7a6801b299fa5b042261a2b64ff398f39a3339cae888ae85be356741bbf11bde6e4996bcc9dfc06adf0ad99232efabe69b9e838361e5438ddfa98726c4522d569548ecdb9dc7441decef31c1baa51cf736c46de4fd334e5d87eaccc46632970a62e9dbad19833798c1e8bc8b7e8ee8fc86d0cc359dba8da643e7a45bd89c3ac10f8cf6574cae4cf590c9bd1a9e9cfe10a8e592136fe329f93e332afa7e77c33af9ecabca29eebf233bedb101b1f698d952870dba81b1e777fdc308dd199bc34ca444d5d4c5d3486028739cef653e31c6685e4fc1bc36158cce3c1f167eab23d5397cdf7f198babc9de79bdf74f3ed3cdfedcabe9de73dfddcd4e5f15061e3cf4d5e3a75c39f9bbe74eae4cf4d611ecfcd8d8e3f470c016f45e28dcee6b3a7dde84e5f8313b51bdd8db751aa42379db53b96e3307d36b51b1dcd679776a3abf119a6dde8669efb4cd36e74a5cf48a4cf48da8d6efbaca4dde8b4cf38ed46977d36a3dde8b0cf68b49b6e7d6e74d76734da8d6e5a9fd9d06e74f2b31bda8d2e7e56a3dde8e06727ed46f73eb3d16e74fdd90d363837a41b6e7de046274d2e4db482c0a6eb45596eb315816fc3b39b854d32dde86eba88f787e536db8f0dcfa05693f337dd8c96de797eb3fd9ce8ccaa51cf67709a374292c96bbafd1b1dceaf8d68519ceef4769edbd87e26dd8dc170cbe1c8a1c5ae73b00e2d76399ff9ae55ad3775d99de7357c97e7c62fdf4d459f593d9e1b4a5af5cef3475aadbe70ec190d5dcd0d1b9d89a6eba2c34e4d13ddedc7a2e9f6e113feca612a8ff9e75c57a1967f5e22adfe39696645e69f6b5d3591f16f8cafa62ed5f4e59f5753979ff6b819998d1a83bdf017d8a94921cb2c46d84a172cf3778b14a7481399e56bc6d4f40e26a484b2e34541192184d28256c7fb0346296374d94060e680b00db106b963a12637a107766910c5edae36fd840ac2e998a951038769bb2c171c3d4d4079901c4e3574e498711df00925dae9f8e0fcc44f78efedf0eb42693a281596f5b265bde4e8441b50fbde7b2fcb9cc0b13fed7a3fe1f0226c420e3be01004c5fd68200ac8a1093914c0049c59a9c2476f671f90afefbdb70400fc8fd389e3d699d6e746747c50651febbc3f6c8835c81d4b8c23d414a3077679e181694c060d99ced7dd5d8d3b5999be63d3580ba74527a751d3a227c7c2a19ec3e79757089f437f1e04af0e36aa2b693c06744e6325e89899536a6091830604518c5803878926c78463437befbd77a346e32544104431e2e9c606e7066777352e71f58b43d3a2183438b41a3a72ccb88e2a9c6bcf797f30a1443bf82eafefbd775579129dc24ce0d86b3cda76680c8665d5f9a8a6a3f11268e0715d3d50d7b5e39ca6699aa6699ab4818815b6eaa286255c57b441e3254410443122843e345ec25a614dcb01bb3c18608cc1b147d45b2e75fc734cd3eb75f9e5ec4157cfb398a05e844f099a0621fc81906611aff8754d8b5092708ac809c42cbf1eb1fc03c00f2000080282284604a2bdf7820001c00f1f36d4b083eac183069d1db4731d397004d9a10cd9e27cdddd7d37bb6d33e1096a5bf3757757c61b96b4f1de9abeeeee4e8dc1e0b7faf5ecd21eb03e0f8bb7b3ded38c049a4bca1a1936a3651ab462e5b94de34aa48d9b12cbc37222913459a5ca6f12365845e35ef6f5bdf766b4c5beeeeed6b868b4375f66d21e8cd6af363b551dfafa73f6200806f734de1febf26b3e20b990371e7cd1eb7bef452b1e6b34eec2b1bf855e77778f7efd4108213c65efc606e7945383e3468ef9782c6f1b3a4c4ed3d5a0333b389d120d241e5b0f0d95ed60355c364c1fd60f09800804067937740004704382be6f87c3e0e09f706efabb7d6c8e169dc3e0f8eb7c9c22f09ff73f5a811ed275303876f86257b95fd8d5f937368d73c39be568bb2dad445d7eb3fc734602c7fe98bc2cbf8eb3fdacb316aee9ebe0ebe673ce72706e6c4e35376c98686acc7025d2a665d8352d19e16bde1c12b7b325db4d41f85a876efea027fc4266a7b2d26e6abdb6c3ef0f6a6f5adb3b1f1c7fd3d94646abefc79d46f638c8714f43de5f91a7c723a90f1f0ff90baefaf87e3cb2eb77048ea111b8ba5f3c0f9daa7b04232b649f737a873d6e3f8f9ebce0b41d9e7d72696e55bd03f3b011fb763e82e090a9b0ac972debe59f2f6c2256d8aa0b6cf5cff9bd0f7491597e9db9582632cb3b6be1aa8f67afa77fceddee831d87489fc4870e2993b7c58b31e8366ab78b2441a7d6df7b1da3bf17a1f6ba99c3f0f66b66e676e6addfa33846fed121fe5e31d1c9c1c20b65e8408c2f27fe399c568ece43bfe44a3bad781006c93d9a63caf1d51526e06123232323247c9e6bcdb33ecf4d9d823cab03e90a9ab0ee74f3abc50ebcf0f277e5c594af26bf1acac089962084318223231c6481c51463a5e16c91022a7cc10b0eccb89203ec4a81184a90b8488219208410729ca9e6978b3088f034bf5c2441cc576ef6e0e62beacbe4c08cd50a9eb082177cd1aa34b1650b13b6e003246aba60940614be408229946153322289218cf185208c410aa0ad42192e300186195ad0041931982723566c61852a541153c505a55f2e9460c4c35f2e9450e58a474b5a51e6e19440075654c10531c0410fac40026705185ab3802838b1658a1198710422c8282e6082162464e942145fd4a007172be862c78d4d021558c620410bac488117cb850faec000092b3001136058d1024dcb15baccd828410c9ea045155b5c49e30811729ce9c6efca0a295f3929a508608821ed200ca501fcae76b0fa1dbf5caca00bd4b3c3e79e7dd927fb693720644cb853a3d84f379ab0c208a898c10a246cc1c7341f8fea8a323441cb1434c68411069ff5dd00271fc718638cac0557a1ece6ce2f175e7cf9fee5c2084e7c855c0db2183ba19f752984046bc0477f1dd308bdb2ec88f037aa28fe6d14fe5128aa7ffea8021ad5acfa0434aabd9404aebdae966fbfc119cff0f9c2477186ac7f4fefa2d66317bbfd6cd747ac3fbc9e411ab4fef615215b1edcae3edb1d6ebbb84119289a2e6ed06c04d7ce7013d0a977844f5d2ea646b113ae700505553cb1040ec0f8ecacf1524a8b064e206305093265baf8487aa25ca358e7dfd71c7098410bc400450c840003323e95fba745129870c59632c4e08a18f8ece3712a44410331541063822d7cb6caa953dc3f7716fcf3f978381e2c21082b29539820069f5dcddf4ecde7e6771185a319e409f97220010b4f500205475d84d9c1d10b76945454dc400657aa08430f6460031f28fd514e762793f4ca99f6edc088528c333a3f1e0e9ef1707b08218410728d628ee34cdbaf962c5cf095835ac8ea7a61a3d5e3f2ebcb3a6048fc7a0372783cd0677d0dc02487f9be480d29bc7082490e63747103297ebbb0819500fc7681850bcf53a8f867adf198b77c42ed75d2af2e12990ff90a8efdeab8e565c4523ab590d6a1975d1d9112381c0e83c3657cbff4ba68bce58db2780a532989c145b7ea7c31cf53de72a24e5d6e391b49f1b1aecb79fbb9e872de3d5a87f8c7b52f7c9d656a94d6284b0c6e7a9d6f5996ff70814e41b73c09ebc0fc9633198208ae7fbbc062c6433fbdc565b06b96d71d56be63fcca1c12d03cd367b79cc0cacffc6e39cac14a0758c8a04b3a3bae510cbd4e22d1d43b3c3459e4800aab2e53a488f1a9a77f5c8841836bcb1329f847fae7a8c7037d9e07e11e8f019eb08230b468e2085e90e1f3686592c33fcec2ed5713cff4615f93e9d43bec5c05b72f805f2d4198f233bf2b1d78f96a7a4d28fd76e10589968d8512f4756bfb617e653c289b27778cb1351863f482352d0bc3ac69f9e218c3b2e69cd3b2ae3931ec9a976559d69cd31a018431769bcd3c9c1a47865e7007e1e6cc6954f4a1cdbce6a793c699622c0321b4bcea98208411426959324a08218c313a9441b63cb8e8cbd2e5ee9bb940a3a6579d977eb9e9d4a9e8323a8c5107e56377e972eff9ecd6b22c6b3f6ecc79392debbaa6354d2f99eb94e5193b079157c85667b6a5592c9d0631c569cb2f8f7e5153a32677ccf3baae6b4e2ccbb00b9b73ceebba260d72b983e666292dd4b3945246eed81db9de89969cd39216e43e76c3ee96318af9f235fcaeb26439238b952ace786b83efbd39e6f53216205708219bf1cc0c9fef7b1032f36ec7d8af9737099625e56a814f0c583e83ddcfebebf2e519211a85798550335dd7c58f75dd0d61774308df9bdd3de17cb28bdde428864bc6fd4bcad9a898c3cdec437f754a79f19cd725a5b4649731775dd6b46454410cd370938f3733c827a5554ddf2ba594b223ec1804f9e4f3dde816bda755b25bb8c3fb7b4fc618a3cba8c48957aa53450d828e29433334234d4002b3154030381c148dc643822869ba0314800f91ae504e9c0d83499005218aa220a40c22c01000080043008c6ab609820f066add6b28cdba8be815ccd6ef959445d8275b5675c6028a89310e3187c708fec4e9fcf41329bee07292d3cdaadde2d9374cc5dcf7a38c7d7866582d164be8a3ccaceb16933e07dcf0c0f05b25b3e402071cb4a9c865cc7288332ab02f3ded698b52a29f4cf0d5426bb72e9116dacd56db726d3ef9e03a72af78f332d53b06f467e2b10d833e47f46a46ba125c7294bc65d43b366826e8fd93419471641a8375920710811a40bb2547cc717496a9fe31a06c7ac640308cabac71fbaa2c697945c692243651ba1f3cafc62cfac7c005fc755b2bf24b9d0b9c8443b922c20a61cfbf3e3a951dbbd99457c7f4d9ba16ac063087f2f9803e95d49845ccbb52a720c9d48379af070bf409ae4e6699ea1b073437c185ba977c82f8950ca72b424916ae4e0281577f682c1a4e9321fc6280650385d4cbed5b909123197496617bb621f428ee7d37e923877f5142edde47cd244f624f161fc9d1a24ffdc256d0da0cb9c1a30381967e9c78f289d34243d400b95972ccae37df9a6033c82a486b0ed8b3e29c8727b971a6218c10bfee18403799c643e8e15a403e607f0a4a663020a1ff38a170c4ee856056525abf4c0d68df71474607613e5f7bf551208a3a0cd6cf98ca670b2d9d3ecf01a749ac18c18adbc4efc458d7f9d3555bb3566934600805ebf344da292a09de69e4e5f0056219eb1d071aa66e1c84068eeb2c41064f8edca07b050e5cdc39aee4aed6656c6e955b19828058f46572c5cf70188ce5efa809c2a9bc777715f6d1fd0fad03f0591d1a433e169e989266ba71548033ea9c2442c9948c5de82c8c460001cd1319c19ffb33124e104a67989f3131c4c2995928a2e4da23e38413bff541292596b924fb169c4368d4aaebf2812af053329162a13196dd00cfa9f3400fdaee9d48d6c3877625a8a74b8ca58ac4597816ff248ac3586d47cd07152f8ab695a1724cc3d3ef605b08a5fd00fca21ec823a0cfbb38cfd93228fac2e02af2d3dd760c08f5d628c5873c26b43b49ca192e8e7387239f43d633ea8a23f3baa2a46e6c01fffca4923f54e33c63782fd79b57ba7c69d6df8ee34c276c9215d881e811b40109262b81b57efa011f31e80ac18627913beef70daf0998e85351b9b6c2d26026a04df52b25d516a1c390c8ddaf99d19102a0782823b5fa3413f8169309ee79d425a71d63f1599027b5868b7f17c3e6286eaeaac60148ca4e27831a08dbddd3d7a4a811b91d4c0b4fb9a0a07a5e9ab2a2bfa623a26ea107cc8eaca6893b32232ba8189fc19501d4103a3d9a31e187965c20cf7624c71742c221a02dc82beedfd015f5cc5d4c22f8887a944cca0ead74ae680aad7eb53975b193c74e011e2e56508fb6092587225f9c9d8e669c163988a38b30b8ca32e7f99450b642196071ab88a03cbd05395c213e6c214cc2011c2a02b7dfe580488995cbb7514a21e66ce54f1f601874225c5bbd778ca0654c2a42e30f89314880ad841694fd0e98d69c66a1ad5542b05fa265cf16dfa318bf20e653f9e776e68fd7f46f9ff7d13fb7b138c4d9e1d63004212d235f4fa6d71cf47884f48eeacac798d31cbd298f471241e191a90ec727d0ef5ec34657df515d7323cc2bd6742004bacfc9b9dafd08a0bbf46af3d27f4ffe6568267859233f51e7cebd567f4072dcb8219239cd975e4430ee8704c509830ef51c541a87a0f21b25fd080a2d3ef6d2f187aeaa382b05a398162da094f99d169ed00b832c2a9c3221b4fccaf993972bcb4ad3f791822f868a2f9bea16659017c01dde70e53e63156390b7c96345c01bf0190b1468784275593db2ca286f4f27a4380b51278502a33727768873b8714b28a5a205828e6a8e81ba474b224e6a7fe99349bf39635e6dd765b2d43f9047380755b0f42f1e38eb5bbd171a706716534890796165ed6f15927b3c9fd42866e8e9547d52cb94fe5d2be17e49a4577429a38387f6fb90414b6943942cfffaf3f5160e37d111c55303f2b6c5206b72b2b4fe9d9e996d1ce75b9ec8835e56cda0a06c80d0e0df0486e535b32c6d2cf541398b511b87eea58cd2bec28045592e0d128f53b920316992d6d11ede5d219068348beeecf9638444c30e4653dd217e621a71b74c14217cf7d8a8ac9bdecfc1364b0241674e93fe628b62f478b9ac6604e8991b93540511bcd2cb800da0661acc9f07154cc8ac62fa5224cdad5f443558682886f4f4c672ad29736de832ca1f672dc3b4cd471133b9d316ad7f76fa093d5f35ee263825139345063d6ef1b233f8f86337a9e89fc32c4ce24fe844627560a3463c40f284de989ec6ddc8dcb507cccf5549846fe6db98d06c84946cbf9a12f49d14a050b4ff88af29a72fdd730fc795efeef169ddfc6c1d664f20d86d5ee71d946c9771680dbe230241ed71c888befb370e68926454941218994ec2bed35ea670c8f6f3f6f402baf79030715b51073b0ad0f84e315ac9bacbc6d23d248b0a192c1f47f1a92fe9724a13f0ed9427f1b9d20255ee203f7afc2fec3160e655ac8a4a494970b60d1efdb3239f4077026ffec798be36ca2d5493ca20a4b518cc3b7007e849fe6c23468ab312055e4ace0a75e4e0f29bb268d2da42723296c56bc48e58001ce177221403f923da65bf0a862b553c7e6258236a1e1d51e2484ae68ff411a26a45239f49c750b91ce3e98c3c9751467318b29b01cffd8c48dc34a7354dfc5ec89d18b089c6fee4be38372882081b70f6b1325ca646c010b6cf0e307f7431dbfdb867ffa3f689879e0bcb523f74d44c01f1a42e03c06aa147d95b62a4b2096311d05e63319d4bb6bc126153807ba11d69adcad6e132df9343a36fe8bdc644dc12b6c008a1e740733daeaee7dcfc4ce2dbe250f52a02ba1d05c1401573d8ae9a0516d58267fc681301613340dc2c4e8acbad3b8d6a9f12ed92e1d93b5e04e9cc4ba0450d512f3fb4d558427599fe3f41d7005c4946cf6210a0949fd9b6ffe01a4c7dad4a15b4b99cb21230b0fab502af39792500eaef5eda1712119c7bf5b80f47d75fa0048628a79d64bdb10b8cee4d1fb67d2aa35fed7fc699405498c563d5ff695ef6f0afb1b870f7d2ced0894d1a2c2a5a66e529f49e0aa4161caae69cd55500cd320230f348e2bb53c175a6570534630464e621c5e2a2cef4c8a4ee47f28946256778c7e4843b4edef0fce40f6fa33ce0de9407874bdf8f3965df647be07706a4e59b4edb104c001eaeb481fb9115c15123a4e085fa30b841c21bdc47ac0f1eb5a1083794c3844b22a91fa8f652f40150157ae76744bcda58788e9a209400dbb9c5511c1c9aee9285a6c7673df7c33121c5aa06bd18021351080211592102dc23c33f24c3f2eefe10828a3ae6f565f6f983f1fae6274c6a59c5df295289308adae83927a66623c8b4985bdf9ecaeb2ec693c7a6ec9efaeb5c7bc8a6890b3ad164489709fdbd9b12e1c40005a112a983785ee5b2bf83c09ea4e902c96c8e308a9a966665381f135202f8683125a84b04951055be4b8b818438445eb7a20e8215302bd198c69fc6668481187aed83ee496fa7f662f19368a9728d8191a6e1c437df07691c0a3a4298e8ea7e625a754fcb9031a3ab5cb0c4f76f74797b292aabdc0e2c797f9ea5515ad8c2b42ea3dc8fe1c258d1d15292fd9ad7a12d62181d8796f8f2fd3995603fba961dce3069dfd6e621128e050ec15a3cb401a7b7ca16fa632bfc5b59d243c874a7a491792013410a596de384c30fa599511a8f94c8a450ab1b0542a0f3701811cdaa1365cb1939634b34ab09f4aeb46285a4aea091f7dc03dd07bc2579012e0ad743b8211d2435aee5e7277317cdd4f5fdd1f18d3f31259b5dc4135eedd895e924e910e622cfd7afcac13b03d9ba40319ba453c9d5296fe62b99b187b730acb7481b15b32bb241c73e65b420bccc95606cc32cb9a11384ec589218a16145d97f6d13b61e18b670633945d258ab6134cd006ae598cb2e445135a2dde37e8fdccd93d39fc9c09fad3a36bc36445efab63dd65f481f0858328c3fd602f30ec43ad1e386746d3b6edeb3e2c87bd5d1841b4e07b4453f6992ba6422dc885eeb8dd90c6442086298f26bc8b4ed290b80dffa53ae2054c33552b6b7cb6a5f82a4378939f524948ef9b2f5c9bce724dd88a50d70de61438d3e65081d210fd24b1ae92e03381c338e5ff5d2a9bf839beef034f0fc0a41519cdcc8900295fde4471a94752cb998e619bab7737c8172f5598c941ab8129d38979c88e06f6e851f0ad438d8572c5475434513fdcdd99f8e0849f472d51aa20259ecd64a45125d4b37781456152dea2c174d760981c470587e76a0be59063e405ed73b6722ec9961c7a6266bf125641b8f96e35157834e593a5e4e457f50efbaea4c767079e883080694e2f79432867558caee3ae685b14c011bf2f59f9d43d0cb1ef0c4245ef26c8b90fd69a9c78094398283e9fd220bf8a16d76b96466a63a9d4d3f92ddf0601dc24f775078331fc3669d64adf6849b6a253be66563365e4b5ae2612a9a5c77ea24e51aec80f0da1ccaee81aa820921376ed90871ea1bd80ac69232bf461b4800b8a0c42f1445e9c06e613242647456fdc3cd2141283ad6624e9da6739b3febb6a26a5b7284c3c7bc5a84c73ac12a7045eedf91c608783236845c6d68bc510c2e986871fc9fd21a3a579d759b39b1d002030fd6ab799a3e5955dc6c5291767a4900d18709b98e9a569712ea4a2e69143b7725041c0e0157a16ad269edd06a406176c19068d8201900387bb4bd8c89b152bfa3d47eaf8374f1a46a36f650705453e46e4a32c20e04e7fc090a4fcc8d3823acb539f943cf4dead779b25cdb8e16a2be4929bf18c6393219c952090dba2d6c35b87149312a54d9949e0cbd023e105d57683aabb62337351a70f572e3cca716fbb40fe7b05876332ce8236b30a49ff073c21524f05adb89e42a7a1fc471de3a0ef6aa80e94a0e58958c0dfab688361b43aa3490413d4cbe2cd874495811ecf0b8c3acc345a714d51f92a73fc8507babd77eb80dc1fb9b4d840a950feb6e6a61796dc666090eac2bcf771b3e4ed25b7e88ce254aca73813c60920589cb74b91722e0ed7170c0b28b27c505c4b4f8f2f52c5858fcd5dbd4e6b3f61543076edfcb3c72e2a7f1fd05c853acb16a3b83485f8cde6cb36415001446a6546480731ae6ca314526c0804c6276b0ec842965636854f4344e80d2207bcbce18a00142020057a27057258bfc5170cc5f094a15968531098f232e1d9a90ea2c6453bda88b91218e2abd10722c1350ca188624197041877106dcd46bc86ae305b995943e931006483a1e02a204585cc6746a480ca2d2e5b2950952e4264276cd24a02c618bb9b53e2bf6c7ac5327bd03fc6186e4712313cce77db5df66c821730555591339e12ca949ea0a3b88a16b6cc534d3f913323a07dd2b87a47695e6b56d1675d78561d99913a951bd5da9b6ae54a532cc2f8cc3e59de18f4684b907d00f23606789ad30014c1bcf13022726c9cc8f902a73758795214a973c23e956df5009eaa339d580e691902ce0a522f92b8721bc093f5514a071413f4faa5da03f42b6edde89b68891a646f9634f2f92040b0e51d01995b78273925683ced5bb47051437b03f6a224eb8c644deb42a50924545de7ca06e7ec980432ae0b9f5edcad6fd7948477f0389af4890a67fddaa7d1bf4cba3f5ad2063e4047491852c60ee626cfb6eb0ab206b1db520023cbabbc2c902d9016c574e6fdf340a22bc0152c43e4d17c974dfaacbc6ea7427ba24a2c80953b1ff77b260c1648c6bd06491f0afec7ee945c6f6bfceb8af2aff7fc5ad5c2f696bdfb7955435777b1eaf5a32fae51d0e60bbc89123fb5a7ddb6ea825331b27aa83f7025a26751c21deb585beeee49d369afc141fbaaa4e3539430473aef7f555a2b18c7d4090d9b4373e73a1f6d3a867c35679f6e129ad0453ee71e25381f937b53d8c43cf5afd77dfe05e80e87805b2042a2ac04f518997cdc54412af888dc274e16b27d3c3eec54e0e7591e38550f8efeda758103a994ff3eda27ee57c8c27d26549e55c64b1a243ae44f6a94f5e0773a4c46c8971d0b8ee0449795cab0eb4f2274b145f3ce3cecd8a0e99dc4672743a1b324c744d3e67ea67b3717a4082b665f47e70a91ebdc14b46ff031ef39f8b1ee705488ca3acd1e3ab7c863c33d16b53864f539265a4eae865b312c0cbebde885e0602bc2bb0f3c1a4a35c023d4c1953af230db47c528052c70653ba01aff0e66ee6e478698157181bf0726016e9e3a039b0541f1aa5b734259f333e8109feffb2f3873f3d091b3c0d2bbb89df7e0ac886e0024ba40a063640bf6247025d83f708728a6259eb4577f9f9e838dac3b3817de87865d58fde73fd73a144851ec7977fcdf3e8c58f2d4ae00ca4fd0ff4e7880f6e48b1a70afe7aa21708f805d07b5fceffcd9f5bccedaa3b7081495b00a0bb5b48677b20430bf5982cd780a11313716bbf69a9db63f560dc97cfe60dace7794373cf75c9d1e46d7d87216b1ce28a53fb850a9b527663e3587290c2f63c1331798d697712ce04c04020ba94e78fec53e03315438b1c364725cae7c5def7d26c23092c8799695b14c584b42b8a0e8045aabebe4c5f5d375f0b51dfeb7f69968e345bc126a03ed056bc23e419f70192a1084ff74a55191e6ebeb40a5393adfb734a350fd54c21e3ddd95cab096973f091c4b33247f2e62ffd7d1d607197b89cc375b0b73de76493e8fc57d5793842ab9dbb68fe6cd505be10fe0e9f43bad2362c305c550484ff73a1353e4ccd35d7ed295d137370ab123cf3a259ff74bbcc1d9e372eafb27ff0099fb0717fe4683b78ba51e0ed6a66875d789183870ec5c3b1662d3c1a66cac50ec25c3cad1443082c3addf32a3aaa9fc4753237914075b17bc31afc28cbe90eaf2781710f1b1f6fa0f4a0076f8c35f9b2ef007030a37a1fdcb907a60612710f53d7f45ad3c1aabc3f939d5d88c31c131d26d4a1cc724d231b8b87b3f1f962c685ba4dcb008410285efa1926de0583628722a3f4039885467dc8810424104ab9ddfc2d24c88f6e1386d37858c3c106572e71b82b69cd9b9bef17084c7e9bb617359e300e1e784800560c8445c140177830f12be2356630d025d50818c47f62dfc553c4fa857b05c544782c01b91d839dc985bd2d0894e74065ac606eed06b86943a5702b1a86b5bb350013df3e224deed381b2c70934d7dcc5cc25edc52545b2c1c44460634dabbe5a7ef369c45c074be0b307d2bcc536a12b880b7d5929bd7069327a8c9db8b7efd17ebe5d425872631a041cdb07e5da2a5918a48079d8b5949e661c42cd0bd984bfbda7308457f45f8d051820211ae5a8b94644910a6d1fcfd79c0500bae1c2f6a71c653817bad82c53f18292c7e17bdb48464cd645332c24407a627cc9732bc7c48c4f71d38c71e9171135210c4f32b5814b9495164992ae13a3f33b5d94b8e562a6d24f604321d287edaf8fa3abf6b5dc1eb32acb845ceeefe731e04d1203b68801dd6ea1d881c314af6dfa10568a5c0543df037cd5a4bcee39b9ac54d7ef6b703d04b637c1e31c13958bde453a734a5a9eb689325a35944152a964de386e2041c365e72f536a3c032339cf558277f3d1c874663a7ca908942f342147afaa43e7749cdb1dfb87630ad65c4daf7fc57ce091375a1a8bd4c717d9eaeb64bb7356ee2cd3edec0a7c2aeb9e13f0a183eaca3afb90f4b9ac6a8bc3ff06a11d6250003e8759ef50ff9279e293a8509d3b7c87f7f91358a39d8d77a74bae68d63eb85d34dde707fb2e221add5d9db68aa2780b977b83c2fae8fbc6da5b562d4fb56298ebab32099bfdeb28784b2e89605f0b60070e372d13656a5d04f86de8776e7ae4aab0e4ef7e2555a02613dd7b82eeee68fa05099aaa37f380e91ef7817837de077cfb3668377172ae4cf19502f19dd9294c67eb3dbcb1a3868dbcd61acb11ffa584615a5a218fabd152acc8931f685e6b2f660c7d8f5b24d3abb9950c975b0a878bb95c25785b79a087bbbd8655ce0119b9f8f0fd94243772cdb13943eb36eaa1535e74eb77b0cce0ea7e5f05a96c212719cb945233a552a68df1e3aca0fb5e9e334de3e081359148e6c78216eb549b208a7c161e782e2731b55986cbc640b2cdebb21aaa85683d73b9703424f5ce80a4c9b1befb96197a07a6874c312822936481592a66077c150b76000b24fac99251b4fc072233414053a2d87a96fc16bfd281ce0a8b1bc86254fb53ccd50c12c04a4fff99961fae7e647bcfa4ed76b4fcdf914617d8feb0fda84c95a3435905bbdde9b0ba71160bbb95a57b942d799223fbf2a05239c68be8050fa514f285e71470b1d0e92600f80cf780477d7482cc7ba4b4416a93c026cd06926d345b4836916c90d9a0b245678bca06992d920d349b4836d06ca18d09f21dc6832175053ea43247a95afaf2f6739bf9df32e249ea6e2d58c3a631df0f5d7db2f34a38c99920b3fa39b8f907c4b9c537356053554cc6c60dc965c1953352373dc75e385169f9a62a3341bb2f4ca183061770b8abc581c2cd6781404429cb3f2ed64b1af327699f9814e14e6323eae1a64109235b2b058f2e19b65be3f09d475d4ae5945179e37b89693df2b9897b70052323145e158f4b8e23804910436b7e3b0d545d233c6dbc98c1f1d411354b409972aefc184803e442d89479ceea67ccc568297031f41441bb97ea5691dcff490fe35449920afc14a3833769cb24e3ed292ae4e266b9744aebc552dfac971c3d985b205e12d0e9bb4a35afd2c46c8790de9a34a1451f07a553244bc286e222bae82f7e2d064408b3aee853f54a45c056d68fa5e132fdf96448f687e5aba5e9543fed3ddd680fee02eeac3a2d721b5e3836bb742b0bc72eb9ac6f5583bdc08599452704cd6fe630a4a46edaaadb8be6682af6999a2a3cb7f37ec39def416514b2f7a8b3f53a29c37f8168bd2e9ce8061e36c2183609041ccc8b0fa562dbb40f6726d8daea31e2fc9ccc969a7ebe1a731c6fe9af545005432c6a62a524e3c865a32990a7f04098432330c2ea262c2c2546e87236ce2b90f398d0fe4d960d7508d92ffa10f95e1f1bcdf77a3445fb83b8e5e61d1b64d20e90e504ef120b6cefb912134165bd8915f223dc56c1953f57374a01f5f5a89cdc33b47d3fe2e56e41b11b37606c90a398ee12bcd2077256c5d478d81c8bee0ecc91f2b7ea1f74c200eb429e8cb7d91e494df9a4f18430e7d5a2008d2844247795d185ab332a10e261744a1d80d2c42cf3ed6218e7c36332b9494c374d5ff8c838136272906c5b5b6d1b1a6cb2b1d6133b8d88f48c0913219dbcd33b33d4f474b2707a4c33c3ec31449ad634bc904207024986e4e61b7eb1bb1bb3eb43e46c8721c5e3a78a8aacada3f7411403624645271e455c60a5376ebff5b449fdc7548fb52eb0dfa88664a58ac037c477803857e05fce009f10fb4e5c0e7abe5c1da63cc8d49176dcea9db4d3cb1771dae2a6a9c175a157220df36c0eefd320d2fd1345d1be9542b224a33bdb476d42bc1e6adb49e85d284507c294a968e9dc6b221ba4da186bbb03504d9a87ca044b28665ed402178db2cd98becb8811a6089d793b336af3e20b20e9e6f12cf42cb06446518c93771754f3debd34224e0d7febad821a50129c75cb7bb30e5b8fea59e845ec578c1ba8f096151124229c32e1d7a1dd879b7c8f0731ab04493cb2a02786d31864c52c8d9e488d5f42ea0f0b5e02285ddab35979d6f0ba9a8b56ba2ae1b510dea7b00c6040b7f92bd3bd72b6a7f6cf52bf114a70f14758dd56dc98212b3f745a7bae4cb119d49d3031eb4bb6859019bccfaa4976aa800e2294df8ba0843df7b4f25e39529e283a9e2b7b3ae669ea5b9e01c17db2d59dfe5167e6bea5312302260fe44601b5ec3a562722be64810613305abf8b1b27ed818d75de815f021acce3ac09d70ec91e4ae22a083d5d04dfaef74c0f0e95a43cc3412738c96db90feee22c639f7808d5315e7fb8c6c5a5751d195eb8257590e52dae22ed09f4d5f5434220a816c0ae41e5edc237070bffa9a4bbf82e0bfc0c61775400849ee00a7aaffadec4a96c163e7e912503ecaf27d434fac56382fc72b845054de72b1b60310eaf67b0874461e8e0f0e3a067b311421e636c9fd137d16118d68871cad085b8c7223bb18ab838f8d145061616f679e1c4f631c4d6446233d0a38a88d21d0efebf27d269409044c869aea0a03041575c135badab12ae651adfa583affbd1a99af43cb1c0f574a003407ab93c6d542a196b4993de7645c794112d098dfbe1d639ee8ac6fa311464c50740d1fc89a6fc8270d182bc3100cd5b392b727e6747829033f479d015aa039a372a04cacba802ee82146093bbd4ea07001d01ea785948e568939d0067a1edb4db684062d0df3eef53686660d21a82d976bcd9ab9f6406b87d950e19313980feb25f667949495cd70904451bbf29dd90d7cbc5b252bdda4c61e0b81a3ba5721652863348acb30d1a1cb3ed68b63642bb308bbf2092cdabae919806a7451042546a528d9a5ff524a13341755a98ed47e881f2265d791ff6292b1a231dc2640b74776631633133ae4161eb657a96c7d37d6358d644b74c0789c483ac5284f7d6eefca2fd0b09a2d954810a470ee5acd8f0bec619f0c1aae436e33c01694fa39be3e666d864f1c4b2b1ddf73ca0c904f507f480a0cebeaeb5f56d1b0ad304920ed27475896404176e3f38a9029f4fbee2b0ba3f31013385d6a639e8ccebf65b8b6963b4a415d60a8b7b51a0b7bdb14192597c2337d0d8070b62b225230747f65b94814c5fa57b12d3ec9cc4b23683a9e807a8c82ec7968d15b78ce039bc9ebf2641c472086f02e183fb3606dd8e9e6072be189409428f904ed53581047f35f24719b3ec0146047833c6a3382a9d4190c80a453087f18b94cc8e365e4aec98c83765c800c377f6918ccd9d94b82ebac7ea917cba912a9c2c16559dede7502522809c7ded28fc8afdbdb109ffb14dc38d8294227e212b1d62d2389de45be17e1d69b2ad3c45b868293e139c7a914bac05b1673624c2478c80454cfc784e0a42e79133d87f000941f13743238971c2bfcb195ed3c4b81f851d4b185b4c620fb51024797bd44b8feffcc64d404bb8e96322699bf090b3d79341e506ebe495f1f8f0a80ec41aa3799c64acd878c49dcf8557b87b0f7067a6f362a5d54c2729bff285d874b87b3623e0744393ed8a549eec810c00d1ad4ab5974bb31872252e9a3d897285467faa5b4b8696b1eb62a929a6c8802510d501cd6ef8e27dd3201aadc6d40e8363c11b0d0af6714cc90d49fc40a363a94dd4de2d39ba6aa4b1e5521beb9394dee7cb37fcddfa6ef79e8389bc9edd47d1ca317c2fefebc6ed5c5aa5248e1747e02cd6718f06d7654b2f8700f6884bb9e8a981e87a748fbc6d5ea2efb63de532317202032cf0980aced40850d8d17a712ad654e2b8a15fc68e1f3d1ade04f2ea5f0dcae5f2404467f3ad161da42af60d0f38e37a328d471a4a75f26ce2674a748b396a75473ca07d21a2cdc0a494f8f7c72883f979c6e4b8303f4448ac159b14a121c6c217b31bccefc30d1b0b76d1bc3c6303e405d98827621723982cfbc02cf9a584207e674af1a7fec755c6c88748e1e0d9dd7811951014850cb8e4f3221c06ec067edfcd6028762af1103dde0a5fce9f597351ef4bb28d60406e5a120b99e2453c6623c41bc53312ecc5a48e0d8d1a24b312dfbbff515bfcccc8ff0970eac768562bdc86fa41ba71588f66cd0463e0a210bc39e2786b361153c914cc036698fee73ec5763c9a791bc9f00c45d17271caeba7639ed96c1f2240ad35db6c345db130d2fcb3c158cbec99a8d85746e2f1ea486de69efb20111e17fe7c372742030c9f95ea317335e77d0e4a072e0c45a5cd7af9e90640fefadecf2343efbc587a5a0870ab291784b84e5a2daa49b040ac36c1224e8c29a13b030d03a2442c755969ac660ad40595c57d2829315d84a901513ff6870722115d80e35315aa7432c4ab120155b84f00d350ebd556e1230ca61860ff792d2eba2aa8e57e284cb2885d66754de91b3aff24fd7a8cda9a0006eda18cadf44fb0fc12bc55dc957f23514ca7770a4f7613c6c1e47afa3e38b0cc5e820d208624b08c007cc64fd6da1002c1e8041e59d0661f73ae7f49cf056a93dfc9007b3c66137575f74b809830f73c06c66d2001c5ac255f112a8454c7027c7bef9cb8705170a1e56e3614fa1c06217c6f309492d0bcc32b9f679c2a0fd7bf0d50cd7a9d0903edab6f7b255a4cbb12453d912cffa395d18a2e42428f32c8a4cc7e73084e5ee9e91e13bad923a4fabcbde69820656463630e957e82b5a26e8eb94e01a7f1057a74daa4f7dc188fdf23a4a2870418413a36950b8aedc290289441aabb1b0ddd77704521bba94997b69a61294f8e52422fee256db2e3bb172f104af144fec3a9b9e0dc01b1ee91f4db390eaace8fabd9d98f9ddf893e8c40b73d68ae7b7e6ecde869be70cc5c5d83c9d1b28f79a0cf994708133e94908db032d02b0d99b806aa2ea7b99eacc17dac02953d32741138c2f8f9a2bd1abd26add412840b39ae394a92cd00c226705ce183c0c8f04004901248f285d6d5311599d1a707e2bf38601c0dfba157fdfb4e649cfd79b21f0c3a61ac993a20b2c468eb1cb3b5279f1c3396de6ed334a5370f4d3a47b43e3dd1b7aabd8d761f16788ca488f222b53e6685dc1e50a62c5860a665df9343bb0b1dc60c1d3f5c1ca4530928ab3a354f4d9aec524ca5c77c6b8ed20699b35ba13d5e24db4048faed988a08963e60eb1b9a747964f9725cd047a8e07ab1b58b1485f1bdf859801ff33fcda6caf0b38bbe588d3c2730bd110a9e277bb5925c24672f14ba3a22195d259296b455742934a1f526458114c330ae4c03f9264fb88ca19c961284bfd1ebe2b9f9bb601299f8fb825e8b458a4bece6a6ffef7491cfa8c40484b887a32f479a1655cd5f2b23027a0507fe8282aec18f1659d2f5f42556a52944e01d9850ff526d5cd3e94ebbe8d0487377364eab1fba21aa2238f4e495794d66064588b4605ef306215ece798ad358d126bc6651b69d735bbabe01427487a266f85eac3cc266c4bfe02ba9ab69cc45c5c8ed1b6b4d448fcd32d69a61b444c7f7db98e0757351ca40d882076a5605ed1d56771b2f1027ea31277a12b961af0e24d51299b2261a7bacc41a288099ce838c6febeafeb8476c1591a63de62d007b924fd2f6f827b057f2814c564bd4ec61f63c602905e9abc9059a204a4761c0cc88c66d584bdad5cba0d38a685e0518c01b2c584d7fe6366ed51ce7814e893a06213f5e130e4e45b950762bf745d15e3ec15fc48be6f92f0ba670345b0baaba62f1981d2fbcc2f02dd899eed969c65b65049cf5f8d3f1a8fdab83e68aef33d72fdd0ab7ed005cdf2e519550432cd62ad3a06f55561007781aae10b8ef2738dd319ff1cc3f12de3a28218d181ebefb55018c92a0500ad60d3a28c194dc25c141d3c5d13b3ef63616a8c60e8762571c4864c9600d9a44f241110516efbf060b43ad98677ed524f03b548022fb4b49234c2924ae7c47e8356da5b1fc8238161d24c2caed187386697c74bb0659f0beaa48ed161111f7667c532560191c0aec3e8f4489b0c350f04390854f80d0499c3c9a76acfff7e520edf21cf4f1826e2124985336450a75e14e91925c1b107c02209fa7b152123c4fe0c8bcfd30df1743da4212fabaa9bf66dd8b94a2c280b893464bd676bc2bcfc9b1c63b0b532dd5722c15af9304c8d85fa5e61cad3616b9377cd51ed4003fddead3ce3190905ff70e23003c587a63ef07efcbee2814c60b19bfc3c12a903b464d2c1eee02a77778ea69e7e80915804630dc6f5e51abfda299e006367595df0e980d37676e9460388ef463c8491fda0bc945356e8453663aed6df123103ecc85d4f14488c1d3c6be682632787c080025008e5368e200d40cb302c8649124418108be52c11d4258a32126bdb480d7cc4a18f9c690c5bc871fa782e9dd3f0bf095dad946c7d4f9e6428a5007c6af03484b4d8c59350084544d760888bddaca441b14198dc2bce66a084900c2e68d34f323ff233c061dd46d3a274c02b48f2d9ad17cbe964337d94cd6241c456d0b83ec3ea5805bb55b0737b7aec3d16b63ebab120ffd58339c63254c0ca3305bd57c68dee3c5ff079c431c244f0f96c5c377ea606910a37ab576274a91532f5626bd8426d4cbb649d7f8b9285dcd2a7a69fdbc2735bd26f720b927732832f541e3759cb33760896ad61435bb372c2471ed038dcdb9718a21bbf47ff3d7e09322b312f28af2accc1c050c1d70730209f0776ad9646396988de022e68a751d19d36f4e9862c3c77942714a9f1578ed108d5e87b9b909819280e239e4986fe408e82538bfc61e62ee425e430e3e6e935eba05eed13a70b0ab4270e8b828cfc9c3657e75ee35266c8467866f23ac8ca6b25409f8f6f0ab59a1053897021e3d6b8b077948fcfd9e4b0126c566456aa176f1bb9296974bf9f2e139ee05690c603394251c0b7262221559bff51e7c1f4b7738776db31f6cf29ddf55ed0f6f1f018c4ef0e4dbe67e9c09b5667e30ee03b37fd9dd9462faa21e35709d00823747a3b4511122580b50b4bfd297a1c8eb0cb754530ec28c52e6981298c6cb28d82eeb0e346607c635630fd265664f18627dd09dd161ff4bab5e5ccf121c3bc6feeea85ddf641dae30c0131115174a659ea20e9a900d3f4a696f2e51b1218d1b574818c7151caf1042d3a9d301a8f99b8dfaec12ca8d3ae1c62630c9ffe09946597709d03d5290e80e23a4af5880b0b9037e0976ecf6ceda171ede91d88fe6dff4f64f3f97ed996f380168ef58d9e1c78f9c1c3bd17eb753518138c51b6838dcf3f1bb44a965990ddafc6daab0b29f39396b4c6923c909a547191bc2d6be40a171b87dd2409434dfab1b1c5830f3e26ae4fba365835d1a7dc412dc429bc708ceb855baef9def2aad63e23cc568ede236810e4f2e62d04ec84c6fe8d79de81a25c9bde9bedb4b399bd24e00f8d998c89e3fcb4f8034d11bfcaac0180684e16b6bc5eb09c6087692dd1b55376a0a4639a7d9929ce40b830eb90996d8c7be097c5e2821b3d4e4f0881aeac9f00ba52d1d09c436c309d418a0b119840fa62dd969566fc83bb23079df588d8790116faa18b09b857276d9656ccfc197d41a2b0ed2a961e0aed6f4222e4261cb2eda4a9e5f820bd94ab8e3f26eca73f218e83fde47511f55f6d2abbcae3622f025ad163620d7964b8510617e7bc8e3378419c4bf25282a6210923d22b3f4ed8912a4fd5e86d1d045729361c59ff13cef3f286d149a6db04b16902dbc2a00cce9ab76c7c20bb79ace3666978216354cd931ebf54641ef1ddb59384f84c32236ae71c60f12c2eb553cd7d6b87fc7fce1fd76dbfd0e28cb3bfedeb1e5ec51c02ec85b991c250adf0eb3ed5a6afb1e8546560ea0709168231cb2e682aef6829e27e426769a15ce709dccfdcf363af410fd5218ab81e9bb696962f39c121311fa64e0fd112aacf38f9d69fd1fd0b371686aae98e838081fbcde79d2446d5b4852f28b9559368d2a6663d6643c1fce6347c53040db0ae18139459655e53f8df6a895c59059aae14724b36c90dc61c4bacac15c11e3012f8c4c477b2f1bb9d4004ce230d22aa4e13301d40391f7a10042459345bf80ece98f6ba88437982dd044df82508747bc20518c0b048d2194c922fd9b08106c55acf0100e56a10045a24bf0df7dc84c62de3ace584055e0d2b68ecb6d51a52fd96269da94bb122723d2c358354e79585de9189ad6b26ed101cd5a468902f9fb70d810ec6986a95b4f0fd33141502822d048b41725199096d096f0a2ac35ec0d8079a90360c56ca07f84fbac4aa0748f0ea2a70fbd547462fa924d414480551012c7983cec08da5c3da2282ec75fc61d99120e8343ac1966ec72d4d0386c738465f765a1cfc40df5787af7583ac3bd64cbb7ede9c99f475d3e9701fee864133c80cddd60836dfa441a96981b9da19e4301dc4d0e14b109aa4c0cf9581b49427561c3c3997f29014448634cc738582caa3c52a4741f3f4657e8215e4cc9817aeb6612577d2a955fabf27c4c6bde3bdbff20369f25f7ec82be0cae0459e5c28d946e85620c1ccd939a62248a85efa3215ac372719ed1caf4ef9939281000ed0a36c10d13cea99f82eb024d8b4db3847a577835d053016307f2860acf730217b7d35c88170763e8da89722d57e7da9c64776d991e6b4c096c9cc4911b841c2a230a8e7c84e591a1b898eaf1e951cddccd1d43db28264ecadb9735afdfe747a79750e96a9f7ad264a0b65020daf06dde4ec72edfc032ca347dee9a24a39cc37c58d738bcc2e3f277c5753b118a2e597c14dca4cf60c42ca03507e973dd62346d0c516420de8a52191aa6b22936d70de89afbf40c31d999118f80073e402dc457744ac6f546bdbde6dd09b377c3d7fac1dd6638191ae7256c8754781351558a94ee20237ab0d1082e526f83acf18e83326fa58f6d8b074db0f44d7ea467fbbf3a25ed0710623434d7449814d7af3d14bff68c6948ef3a0390ad094709f5c274d767b9d919306619d8235eaa1280bbb7decb937b0a86df32d59d2223cca045a8e9b30062db72fbcb89c040cf0574732002747526e9152e268162a5263f5b2b84653759fc72b61a4eb756da8dfda1e4570e753b73538c561f9b8850215cf06853096e8ec4207b533c7683d63a4b0cbca23afea585ceae2358123c49e5010e810194dc536b03b9047325a613aecec54355846e808c2f4e770479e4cee8c142cc0d57c6496ef354c14ac6946422c34d2cc5aed9c7eb33dfd2702d1b957700f56beb3fe8e97cf379817042f0b5d2ad3d87aa0f86f6ab063953515f6ad45e14e455e49be57d255c7f1c02e62402f3c2f3512e95b953116ca21145441e12afdd6b31513fa4a8d12f04b58bb7a6b031567f99a165668a95580936e132fd478b6ab8cf124ec2f556508506cd6c2e8def50db963a4f5251d1088df02c2f378c690ed4683ee77030059839e403a9057acf2c1c4b503d5fd69f8e9b7f0a42cf5744d287d8bfe55fef35b7d1dd7f47cf9a4fdc417ce1ea649164d1296a7941d7c577bb62da4d163ebdf23b138e5782eed79402ab571eb3b7b87bf7b94e107fb15618ac7bbebc18b525ab98dd7e8cf212d28cf43bcef9377aec74c9c5cb6dea82fc6d079f11b40002a9fb4750506dfde021262523bede54f188994a1e1c2dd69185759933f70d70a9e9591dd3b57544a3780e94c39016801e690d60858cbf98becfd3669e9d029537bafa66f886474b5cbadb0f5a4117cad7e8c80eb190408fe89e6cdb44da4e773b4233070f49560af4f4580f941c1449d60843abf8f4d82ee20c8083582a0fde9852f70fbb45ad122de71207192fe9407e3bef28e2a74ca4b2838662fedebe7094aa798e4c84f2ec6e35d1e4ecdea8dbd12b0646f36a4db41751fa6fb64db45de4a4e19e20634c8911f9b6219f2d8e237f7f879b41b403aedf954c68318b2c7a28ce9b58c4cc7bb0b3c5263185a5336360e6063961d9b871812cf43ab44628d5025dccb0b6632acbacc84e0bd015807bed39b57093318b4b842f3366c1b31e6df20f7bbca88f07afc66702c56c39be5bc453b8f0b7253780a45069c0e0102d04a615e9cab183398931a489e481a73387bca41498fd1aa9cedeb41cd19804a43a76d219fbdf7ea6712cbf5a94465f73455bf02a3f47ab88dc31b3ce0294142f51ccf1545d9ddf5611b50301c4f760214738cf3e49e58d1f66a6dbc1482a63495b9bd56d73f45985f6eb94250ec8efc30c76aede199747fa9890781111c34447f6c85dacc4f3333f4fa8142671b63edb2fc5055b3248dd334060ae3764891e63dcaa9c7e5b714990a22f2c3bc2c3bd042b50052d90782953114f8c4113144372afe7de8cefbf30b38ee5700218c0c4a2655efe912e8770910c4349f2e16bfcb94ee133ddb746b23c320edbe71a2794d2fb1db59d83663166b61e2ad4ed99b50b8f801590bbaa534390e507c3cb79bcd1fa1c2ab5bc1c7d92ac95ba5ae7d17cb57b9e0e509ccb531b7d967a4bb41b21b337340c0efcee314ac6ce65d7c9e12f15464d1d8721ee604ce1cc662844462234e19358674e58c14dc37e6d44533051013b5b910589e2af1b77c331715e9b6dce4589205d824ee159e104e14683aa947651b162be5afa0193a0ea0056741b716a5e2519d935b1f2eb0318549f6eeb890a00b39e343869d9c06d7b3c5cc81147f186aaf1943cb0adc23d5f92557b11cfb8f3a34da213c5a9f6788ad203fe8909bd0637175133034ac503a39f374c07ef0e70e7f390fdbc80a53e045cfd55a062c71d31bf043cfa72ee9159da989bb1ccd23fc2d70b5981289a576f4545b03c57f20bfc12d5395ba282693b4fb75b138312830cf10666302385b4a23b950e99e1e04974c5573ab656138e50565e3b9e23a6693163d3513072d8b50656de1575e624c21982f1c843f2ec2748eee62f32c6375af6f7227a2b7ad604a03583d799605a810e0056e5cb0ee11a8879422131e4640574f89013f23376f4f891a37787290286a47d97de7a15e126356dfb6d8f4d90f4c7209eb8cd740ec6ed58f3edd1e488047dc0d1a53e845c33ef98b8b4ad0236886e38ea45ac604935dc1b8801c9234a9a2dff9e558e7952998f1336ef646812af82b8d246f658b04c25c7997b1818f6f6063dfd7f40dc5ac6c3ba610f69079fc06aaaf292bd6e982f1e5e9e6e4d6f9760d9bd8cea777fc7a0f037556013d3ab2fcc727615f27c74640844df6158d364f566412869fad5d46bdb7eb377b7e6d2885d2685408aa61cb1962fd00e081011443b1d2d26fe087b077298193b8118c84e69ff8e0989175bc37465aa01751a8a6a763422dd3d121a357d6d7812f3b0f509b5fef30a22af0cfa7077fea0deb6ed8ad8ac0e8f8bddb64a80fec23058b5436692ff95bd98c89ff7e2ad1567264a131b765e0574395b80bbea65bdf51fbb0c5a219b4c0b32e2a1f6216b32cc631411248b2d3dd94ad64e73d2f204b64a0300e0a6cf152ac83385b19e73eadf7a10f568a451f26bf68b23f9260e4d16109d03e49da0835a0dd5fe31162807368265f8be93ec9ee134167c15e58a51b6bf7ea3cc35ff854ce9199df78d1ebcf7089ca6716ffedff3bc70a37d00956e13d61843f9ee88c232c5711825880088cd06f68a324ddbc9f5e09abac2e9b5f05fb02ae39b4a4dcfd1ede6a95fe8aba153e4e13be760a124a0aecadeac43a1ec88055d659f57a8fd4185fee6b8b4f3d2a5b6b6bf470bcadfeb49bd4086cc1abdb50b6fe0cdbd9963598fd8899a544e0eaf561aa6fc57efe29bfbf792498dfdc820b299a0acfe6f73eaf3abf8521745d82cc19d86824916091bc4712629ab42c556371d084bb88bff921a86a5a4641254c230ac46ae09bd09a93e3fd65524cc0d139a9f4f055e36cecce5f19ec4b1e6123c053fa3c18a1b01048529238013e754a9bd5d8c6749dfa972ecbcc490c737ab2c1629f02a7ca31a9be0e78520266412d8c2975a48336848cf2ce57575b86c99e8a184fc9129a22e516a10800003fa7a7e3c5f055fb466ad754673b7caaa7d77b67586a587973e7ac26f8a052ea7bcd63405f072a576ea2aed2b9c7020cf228eb1e318eee4848866716563255d243415a993e06e0ae39a614baf41fc46ffc664a93cdd35ad860254e6b3f5fd7865d3609360511f0aea219460b62f63c0234954d066e26f311d80c21550310406e1e388b40a95673b23a9a2940eb9f9d6d9a01266c947d8ac8892781c29dba3986bd70110e1eda8334aaf5bcfcead3237f80cc836f50432ce9219af286b65cb143aa5c7ccb68c472347da911600bed06345db94f92206395eaa89f9b78f40f35f2a4423f9e1719dd00cec493b6da6c4aca74cdb840730d1c3b7da33b6ddb0b4e7e40bb28677aeca671391f7ace5583a386f19958c2de27baf8c62a5df7f930e326c6390f9a97ed6f86858d58030c74efcfe7888abd849474897832991608a3bd2cde18b0744b00fc56a807bc3955f7e1c54bbd520a28f718524f544c243626427ba98b518630db09048c41b3faa6335418e8c97bfc9cd2525729125dca32871c110ddc3e773cc1ba5246977399a572cc591e3a772de94845e869aa35d9498325f329c8ca3058a42e8f296196202333804df4a2b51bc75c9decb0bd95b5efad4091596eaeb532a5dceac286366584b49fb99775bffc5bb2dd4cb5a528e68a59602d6eeede65ae09d203f856b2afc100a2c563ca55b094440ffa66b3323715788611b2cfc64338bfaf3f2b4d86420bb8fbcba3eddb555d39b65ecfdc2d62c8df6bbeffa8adc889485ed054d9359e2451c33b0a7c9e96432fa9b42c1327385ac6072d37a195e0add065f3d19c268807db8f2f2fdf052314bc3927c6d82eb1b0e42bd14a06e4b5194932c3ccb409a2f1efeb392b1e01cd8d2c9eca6e25c6bf340f5d04163c1d88b8388c7075760f1a748996e782ba2f00869a3a2207c14229a0c344bebbc7d46cca60b608968aee68c846e7156baad9809cab789b5284bca024ce67e10874340bab6c60b311566724b0d7104aeef5a90a77a793760b91266861200302a6bd8f3daa81bdb99f8b75ab88c205ee196123ebdc7f69c945f8b1411a16767ec008458ff5aca2e01143614c3a965746bb5b26168924a76be1e6b7a75ca49283be06089d93a6f0efd81e5450502ce69f1ed906483503e6e6c5c0c02ff2d507419a73eeae9e0a8af465442c09c7df4f867ecd169a8e8a1d7dfeb74ac89dfd70c0cbca1f592bc85ebfc3c32a4f7eb5d9495282244a31d4b627ad0d694499cd70069d698c470e75adbc8bb2ca25e722f47956ca21a4fe25663abc8fc946bde366a683e3195b8254f7100c814e30f1a4a283d01816c8916be67621808d87538d1c94b4f55ddb2c97f9e5f4965d48706780fa485cdd4464dda50f3d08a5f8abd73b691d27a5c9417ccbb922cf71734a025ff0af5d591b4695922d9c3af0f50dc535e10e595d1397c992063872d24ee24e12940c999f7b96603daec6d97ebe2e15f3d9f15ba62ade8c2bd3a3a87ccb7b01c6ba07073c69bedad64c608ee6daf4ea355ce7cfbb92d91d8c63425bbddc40c62964e9fdf9977440eeb26d741ead758f299c07df8afe15cb59cc4673c75da916d45b53e0ffb4526f52b4e060bbd227fd32cc454a1ed2183d97d796bdaf0d031b3d08302017ede20b85440fac0e08cba1b6cdc4a7a663d8ebbfb2fd05c238d7ad4ec8457ca815469e15a72771ca745a0aba9c72943aeef46d1b6d07ed3f2938508c68e875d44d7283edd31370540f1c2c7a652d782409787988eb7d653a2800f3851428e9c4d5d02fb936baeb80249b9dd2490926a4055221ca2ee4f2cb990f1521c8c45709449f0980030577948796806fe4fe8d985a7df95daedf2f9a6ceec4dfd9531539acca4cb6d3690d53925bb270a7da17480f933619c6f51d5dda54696854ee2c0dfa1aeea077d573d6c39485cadabbbb32d7965ea58d0ae1e933c428de80a19a0c5ec9321f29b47d4002e8a2f42fff07a3117db71023230a9c061314edd4325190304899ff428814c8724ca32c05c24d3a75f0ade2da029eac88ad6c24af68f382bfc14bb2bbafdc6062d1a89c009c8ac123dd0220a37637a411fa239446cfd88e84ec5d19ed97460035a023c844aca07e399847142e76fc1728259a90fd6fe79e79ab631e9016e0c8736fd1834b00e2b5aadf69f98597b7d3532277887319bf407023f072e4d67025bc0a9cd780d71aea2dfc094832012955c89d313d818947ddc6117eac0d48663c8497d4e101a6b4a8e8f56c64405ca242e95bc98e34dd5b2725bb909b72e2a04d25ae712c01cb94d7a6fd1949ba7411634068a62aedb773db5aa0e19390ad87d5040939f94554da78e5a6a8d6ac80d1184a1aa0441840e1df68638ca5b8934210811b5a6501c9ebcf8b3c70476caf228f5a9c24c38689f48b2509c9deb0d1e2989b0153a7c29ab250c5e6dd308bb2314db2303d3835512688592c18e310822e98902fe079219cda5833c9e74a4859d886c2928d89a4550650dcf131722ab7bd5de95c8202704eb89f95ed389e9a58f8a120b6dc2d0e1f9889dd18e06d6744e2beb6ec89cf611a10d3b600c7244e61da0ff4c893df344de0a4129de2edaf7fc311c0a3a1f83893c0348758ade5798946b591609941900cd0bbb5cccb4883dca7b084e8fd63e82c8550c631484967b705ad1f2b0f410b1cb88e39b399d420233f5bf767b5b32ec24021f4cb03fbcc01236d63ca2a7a3b080375298e90b4087086a3109a4d3ea581f2aebcd0fda092e261c894582a8b2402d612847f09c7bbb6596bcec1b2e4075011d1cea59376708a07152591e1190027338d13e78b3f141f1bfb040b563642e59961ffc89081d9ebb7bc1f22bacef114023e1d69afb070fc956360e6a445cfab8a6a8084ed1998a200de719334abe1e0ffb2286a8b1a86af138dd4f7cd7f97bc011f802b6000b07c83a7549e16c8a2019a7e5f6e3d4bf62c5452d3c14fbc0d9c0469fe1f524732b716859f70722c603eabab46f4fc9e43d63d8499f76c293ab128b8b1b9c861d7a3094eaa1ea243766de5895a1f7c672ea8497f8d3b31737e506996513f47826bc1da0f12bf5f818337d973179c65c9b36365cfc898f820a66358dad386a335e9b16f2943318816d9afdfed2144fc5c4bf453cf0068fa9bbcdb3c47c48921d9ca5fce62fd54093377efb18c389f7ec5b6c389b3a34d9bc049d78d2e5d177aad3e6cf2463022386ce4873d9a36aa730fbbe711bf27616394fa78b50d7b0140dd5af6ceb2cc852d5e1800c5d442b3f7c7c4864cb5d2dfd4bb9d6aae8c80c0dc40ea95ba6b1ebd851732d07d9b24420d633902159e47023de97f0d0ee4523f0e80978f695ad0a0074ab83596d3fe9d73ff960ec75f4b3b53d65acd12b1ba51c1f1ecb4818eca3b224c6425ba84c953b6cc275bf1877df05eb03fff06043d3daea3706009030eefb0fcf077c5c3af9d7580dd7a3728ad3f884d881eff0872358a59ed428ef9d16192ad8c78a7c1b16ed93e32054c7758e5c2b6176e92f6ecfa7badb7a43f17d0ee41a2fca201b55860059ec2d14f0fbf96a170a3899f2b5ba69852ed9817e625579e9c4837989581eadbb0980178890eb7c20c22202bea07369f1b790e2b862b2d99c3c10985242c14065b8ce3226bce13390ffc2ffd5a77830d19a0dc36b804aa527cbb00d7cb9f152b7cda2a211374affb6624b9241f25d955c55f4d7b2b4f0d151aeffdf5221b9b9c940eca4a5ed343d9ddd2538a59057f0d263e1fee0721626828959a62894c37043e3e605f8d1fc54610e9ad2bb876bb21a038fd6fea25472c5367b9126e7070c2b982468cc36a170bb50611f8d821aaf45372712c7396ec7093cf082fe5e9743602f4d409af6629424027c8dbae051105d3e9a61955a1925397d83611cb08b79fd40945a0f82bf5c858257750e20d29f5d3e7758376c15f4aab1d55529ba9ebfbc6f16d26ca84999160a48d3c74eda7d9e649724330c9bb0bba29edfc57347928c8145ce83028b696d305f07fa5892a4b0a7cae4b5a800740b6c796f738e922c61da3b8ea5a7072656cde49d27ed311fc9b5e53bbb3a9b6723f4a8e132e01e549163efac48e88b7184280087c0f34d66e807b49ed18f4bda5354194a061086f75e3d9690f31e278ddf237b70851dff2cbf97bd146e18a237ea4d711fefe86b66132fa730878c4806270f964071c9a7a000dc7c7653f7f467edec78c8e67a7817230f90db1ad4a88ffd7d6788a4d1dac930ba80d51b99faaf30de9ee4c4b06a13f580583547f931e3c56aaaeb4aab3ee0c6f0a5859b1ef3686e5b0c30b6dc5dbb5c97d120303a078b423792c67c7c3b3d56e41254c95b031574efa593a32131e5307e88dc602b5d0ad723e3133c7910dab490a5cda24d16742a71b2d6b07db17cf4996deb1b39b7b0420764c063d73951c4a3e334f548a58ce0c41cce721a5b61b5cdc5493017782579923b2e5574aa5c1bf15c50370f8931ca7fc64a489568b5f6866d61e1cb0681070b6374fed2e14732a1b1ea0db02e82d9a77e35850129c04ce155195cf49412e0db24a86d5ac334d9aca7311e8dd54e534ee05a87346cbc32207a05502e7e12292a598eefe052cd62bcaeca3a8c3954ad94beb37cd1cbff292dfe10ed140db0b4de4c48f44655b15da52e6fec1d59b32ea2340ff9668fa9891c8802f4b3f0f2da2cb54ed8a706c4c4fa1dc55c6c1ddef64ac84b7ffeaed8ef8f1389116ee85c2ac88ca048ac265cc6960667aa9e0964c26fce428a69753822e684ade5c3e3f561d6d95d14c35a46f91049869b1414ccc6f89c5a8dcf413f61bd342e6f3e4266c6fc57e8af900328961e0e7784f7388e89b44b9603cd5c2966da57ad8e7dc8898e695b7da273563494ad783b09161fbec2dccbc5c269914b85de7ef74e19b9eeb0523219a3a16711a1509c87cefed00fd6f2a4f1417863d005721a5265dd6568e29f61e5494a4c44ec8fd49be089b585f1cd8f45111359b438680d1eaed5728232496676dc3067f78ef4f60caee231580b73ab7345bdfd10ee9300faf491ac0fc53e8a7294b38e97901d07ea5874f5891270440ae59df7037e796884adc02885659b27aa0de815e740f43a026001555a77a2ba454046edf145236cbaab5870aef0b044425fd4f9a210fb694e05f11436d322b04c01d3e08240a3ade47ef395337328b648cc08c1f790722317113b9c92bf6034ddaaf95711ad3b116fec5ac883eeceef8ed7acd070043d1edd5fafba2d25d6791e3edfe4e604a7a8f39ff86f595f934b55980544690c033d54bc22fd10d62befca97ddf3049c381cf3a9dba5a4f01b682823175a98c0cdfa60b6a5da000b067f1bb31e678ae18382ec113cf1814ca5fd586bffebb904d3ecdc6ac1d6d92c25909b51901186d40791d7ee3c6aa269a29cbc9c1fef6beacfeda7d4dac60484d383704a354283aed83006236057c4a670c91bb9623e19708089f53c356d87fc1129b3c9e0a2279a97e9b1e42238cd66b6bcb229c80886b003c7467ff07bc866e1220de8600262308f5d46016d55c02131c82da69d43e21b1d5f74d08403fefff8fbca3f4c01029420ec267beb873755d00cb8662a84b4583e243aa8aea09599a4147e11b312deba159647c1bb2e24cf71c0c58003d944a3a9aea50b67cfc6d6062685a2c35b1a1453dd1b2681d09d89b8524246d4dfc83c794a44c28b258aea12f24ba7e8ab3c0e6aee32f06352624fe5fa1ea0c4be8ab9fdd8e3059796407517a0cc3c058a2cdd0aee9ed3979371fb0ea320f0efbb1c7b610f0f8d59243bb69f2c3b98de3e0706e87cd0bd1441f1d59cc8c951aa9e4a53327b13e3177570d6c80de3e2b303f1a2f901227f4dfb0e84a99f55bc0b84cec52241ccb708f485b2ec1268383e8e73665c686dc2a218997a88641f14cce6c309eee29c332e1a36b12845e61e22d8170ab3f070829b38e78c83964d7d9491498f08f683d22c2c9cc12d8633e3a061531f4564d62b32fba160960c0d4f1f70391347349a6a285346dc61369f4489102173394a53a77ed3dee2c81028f15d8a602e1f746133c449dcec6a97f8a520dd354c976dc46301f65335e50b3905495ccb77d8609c403385483901715df306b873f475a86a9e7170a039acc849870345083453889413697180898d9b726d6621ba4e63c9799407fbe38fcf78482616afab82dfb408eeddd89c5662ba420b7ed084fd98bdae125fa6eee8d11a4ea56b9a2be8f85a3654aa7594ac12b6f46fb4000ec59806a22e63d91b710975d36bd28cade89ab48303f89f5e0be85d372da94462ff5e7b0b73541f6593c1ed299557a5173c64da676f2bf7227abd8acee2c52e653f782fa2cce8739422cddefe133bde9df2bc3c4cf0b83e78ddb84362b7f4deee248683ace4a3d8e350eb410f71982de596e97e2c5254e86f3a3e72a8d39434803cceb7b735b8528bca7ee13e70e96094940ff00df4be6cd49b371d5325589760d905fae18f5e0ce0a391e67cf0ea3163406134127ad1da80a0980159303b319e1c30503a0920aad00e2c842e3ba9d2a2407d8432124efe7770dc5fd639a675b61346878acf9b95a71340b673c2bdb16ef22fae43e4cb1880e6130cacd07ab01921ceb402d361e98ad60a68aded2b5d490169649604c5d464a904932740b5580a928a1d2371c601f2a537517e07d907d696b224be0bdc301cb7a04e055747aa72f8f0c5205a6ee071c8df6e8a46fc3a9f06a42c296cc7c88c2847d0afe41893aec771491d8261377c62333678e2381e0222acbc89f0be7106475842169ab77c2838ec2094110821ebb510c65362ff32a62819446f1f45ddfaa45c92a8ff091c12138571019379dc371262e1112eccd82e26dee8e2fe1563e1f563154be40813da54c85d7c81f2a997f7259213ef3977cbd3d26a83a5ac2fe931e279327f204e5943c46464f4c853a9bf9fb47869bff1866182ad34be070eae8d918be31582f9990037edc164ab7588feaf402043214a0d4a919522796ad99a5539a239e4f563a949286f18250921b29aa3f715172135ed444db0c13c23af434b1a267f2bf7dead0efbe91f9da1b39431c05aa612289418ed741a5d90c1dba6fad5bdb23c5e91b413dfe420b4accfdc342fdadb450659410ba60e7901eca151be4d33e33a8264478a0d834167e747e9a88b242f7fb9bbe24b8b171da7aee56f7f466126a50592e3466561414cc93f2d1fd0e98aaee0a54e2f283137867827608b9b8b2cdec71ccb36a1b751e3879e0fb74d9634f690770b675f5549e8062d80cba41572fad0df2964c4c275278aaedb42618847898f602d112c7516c43aadf0616546e801a32ac539e10487e8acdb8559d2b7f549c71c4200824756a6624cd7376e4bfc9239d413fce3a51db700f189f068fb993d90f0f0931d6588de24143b5c2d2b5c0d6560f4822dc02f4dcc6b0564db585a4778b7ecac89105afc5b6e5c77b78f349c903579e34560c9cbf0342a9704d640981f7be3375c93548bf3df73774c71ff68cade815f1a74c1201a0a00a140541f0695d7ae1d94a9c3c651b6dc827b44d5adecd31d35d00e6b45efb3ec1734e7d14ca8b9caffe55a63d044e9bc539757dbdb5c63cb232a05cd41b8100e09b64ca7fd3875e02a7f25e19c183a518598b31cbd038ce292b18d1474fb5a48ac66ec8906c6d6d4bb2e1951b525d90d70f83243c1aebb68b8f7258b77fb30be4acb28f5710c43c723bada758685d9a3f95d4458da37e9cfb2483e0bd90722ed9cb435c37a9fe6d2486c4f267d403518006539ce5aff4c1a8fb90fdfdac34a55fedfbc5ab2e5876f261a76071a65603ad12b8a42c6708450063800bfe40f87bf19af4ce7456d1070114ea2af90ccf373d4544067f21e4b8b113019dc65974633b58904f93caf5f5d68980fac5dc6e6a7010fa8a0ea3d0a11a75d140967c279a0286a4f44c91916618ffe81ddaea9d102f38e19e83fce77a18176648e432843f339891b03df3c3a72d8088a9547114da775d18b9a420c8c3f2355f7029e912623e5da03de10ad8ae6341ce30205382551482c5c99c222ab28fb8e96fab7c7caf3771a7a9babedc4c4ef466f5c37041e0d44eb0c54205a52a50395e2d88bf9cf76cf1643d790ebf3aff01f4ebba5c8b1f53009cb9bdf0d171317362d010f628f90a9079a1a705658993926232cbc23ba5a1ddcd850948a6bcb1662625a4436217bcbbde59652a62465430d8a0c0d0d19ea60224322d30ac0c1ce1a5bacb145f7bc3ecc39e1cfee398b66b793ee8e3ea74b8f1dd7d8a19485ceef7dd2decb7bbad55c4e161f7b6bba17e677dc9797b92eafe3cec7b73e1177887725bd251965541a330ae8421dcd22f88ac0fb4f22f86ac0fbcf26f0c580f79f43f0f580f79f42f00581f79f40f045c4fbcf1ff822f2fe730974bdde7ffa40970eef3f7b6010d7b3fe9b3c9ff4826c23bba4c2279d905d2ea10cf84221bd5262005bfd9f2ccafeb20bf84af9f156bb527200bdfe4f6e91fd6516d09522f4d20806e10183d4f0feb2090c02e43d6528080c82f3fe0d6f28c0fb4be88a79ff0a5f45bc7f075d37bc7f0aba7ebcff0aba66787f17e8b279ff87ae20ef2f035df91d7f4634a24c3fc39e845e57f24447bb07bb92226e122b1ee689dc2456d0509f889bc48918078e153dfe898a33c4df50f3f2d9863f52b3cbeb70934022c6916fb6a4dc8f3a6a57e5e934a0ab3a013d1492bf6a8fc700be6a18f0c75f95c85b42edaa469f9203e8aa6640af59f8abf12efebcdf81bf5fc9e06fa503a39030ea4b19e2746c32f6d6f6e6dbcbddd1b1b374c336ecdaade62ae07fdc20dee622e067b809f820f7006fc335008fbb80afe10af1afef69e8f17d55c0bb18a0262f40884f014124000107b8aa23035c951a2d405c2d2c201825721b29a88fbc75d42d5c27ad9174739363db6478225a28c66d2e17e6199c02dc8635f4637edc14f4e8cf7057d0a36f735da0473fc87d48432b6cd10e7af46f112c6ec8cdd95bd30673618e21bf64ef8fbd9c7c984c58d7caa753451151aac1cb5d9701613d032e05be0177021f81ec6f2e7d085c237a50224a44a09c555932232a40810948408bb93c3c909bc3d770b31d9e015702fff2093c7679104184081d584e2487871d78727841724182419a48150989b574ca9c1641e4c4e9d830ec286aaf1eb9af1cf9ca91afac1ce9e07454594504860eb6875d1d32b1abf91d5cce8fb7b1b379c8e504799b639b57c7d78b2d767186b9cd64a8877a8b6e12a4c8c6491311e5d41475519fc1b59151abc5e5fccd3d6e101110c0ac226f351111ac1e48e344f730315d457bfd2dae858a845ee523e6e5c21c8363a8a9b904f81f77006f737df819ae003ec80dc0db7087b86e0fcfe302f135dc1fde021620c010202eabe787dbb26401020c40003e04e0aa8e865c951a3440dabf871b210d7d1a1926900b93b10b9361f08724cf70399565c3ee0b0d765d729501bb2d79861b44e471f378ab860b8a4bde8a4bedd3d3d340355cfffc6c3972bd30da704131c95b9df443db5699623fb0ab9ae165c3ee0a0d5c4e0c6b89b5d4aeef225d24bb43c8ebeafccde5e16db819eb217029f00fb81578ecaab0321eba065c237e0237e244e046a3a018d730e246246ff5efe0e2d11a473b0c7189f87af1cfabe35daeccbfdc1d0f73ef4fe0429c1d2a7059492c246fe9f07059459725c3e55021accc85d3c1b28a2804402e00be869b83907fdd1dfee6b2de864b3fc8d5e167b837bccdcdffe3e2f035377beca6e4bf41445e020f53b377b91a904052ce41546474848459472ca3cb22835524e4b28872b82d4b00b82d4a2aa994b52a2a2a2a2a2ad9551591617486eaa83d35b0632e478787ca4272787181c1747278d841480e2f2e30980e1d5c8e4c6b8bb93b0fe4f290f3aeabb383901c5e5c6076747278d841480e2f2ed8ed328c0ca73373f7e36fb89c19fe86db91b9e62d9cd986b8443c764f99861b34c4571b6e6a3cef7fb57aa94f71300bc35c30970959afcb727259446314f128d51b4e67e61acc8303c289531c71c411070e91e7c1ed48fa36862de6ea3c90bbc3d770fd795c1ede75739e017702df802b818fc02de269b8f46f6e967f868bc3dbdc1bfec705c0d75c1d1e02b702ff804b81c7ae0986081d8ed2f0f92c7cd22dba6308c9e1c505e688089d9e8fd50556176010987378d8e1b320045f9f1cf0f579c1d7c705c3600ceb00001cf25519f9cce6515e113929f2567f052830010914c183d3993976af0fc2e5d0f041b81d996fb8dce30611f14f84081b8c88cca740605c304699e50b48d305ace97f5d95131aaeaaa812a13a5221792b290257b5e4adfe209ccecc37584594a4db320d37a888ef718388fcebb25c97457431cbc85b379835c4eda9384430ebc85b2ad5dfc0ea7162da5c795c560fa4e9afe1b62c419a5649a5ac8a8a8a8a8aca8a1a45445c1591b7c8303ae3080720d8cd32cc8d4c8686b668d2c40900b84884dd1a7363153970514808bb5886b971898f4feeff1ba7f889b9910a2e02d16cc3104e8808e1726630d29e9056a2bf7f881b7bb8c8d35e733e78c6c111f2638b1dfd1f5c4ed0108f5d9b6c69d8622e7d201787afe102e0795c7fd7cde17bdcec5f57c8df5c1dde86cbfa20f786afb9f987b81007bb33d3708388542299a543d118482bf0f9a4b7c2cb7f352eff793019dfa3dcffdd9edc4484e890c3184500c00169053e6f854f7ac1482e180906234d8c5431128691584bb9ff86ab22625d9513af591da2c5e5509c2d76318fc3e5fc5bd6865d995d97d504d2b40d5f9d387d7fe5397d3f8fcbe201725b926a4f6751a8aef674b5a7ab3d5dede9ba141baeea8cf6fa6b7ecc6073556404b92a2358838adec05cec7176d8a216baef9382dcd6db70bdbfb932fcebd2fc10978877dd99afe1c6f040ae8fc7ae671a6e9003fe6fd0103fc30d2ae2ab031e6688ff716deecbd540cd353888c8bb5c0dd4ecfdbc1aa85986974af9632d41e07e92b7fa1f70bff2b4ebf6b413d0754700bd1e7f5d1f0f03beee112091bf6e91b78cda758faa19d075d3805ed778deff6ad5f5d49eef221d5dd6507bfd3497e580cb6ae2adfe99cb121a81d6a37d7f0cb70509d2f4fbb82d4790a6fffad8efbf4728dabeffa6e199fbfe7bd42e083daea6c6f3fe572b7be1777d72fb6453eb7a57e5a43d98cc03b728419afe064107dbc37a442e67561e17c65f56ac885bbdd541710d2277e5adfefe87f24a1fe597fcc580efbf3cfe6ac0f75becca901970554e9a8caea19f074ec733c52aa2259acc807b9fdc8f6f6f52bb30ec02f3f52b91af5fbf6b57f6f553ed0aea799c22befeaa5d2f5fdfa55d3abefeb74be6ebcbb46bc757fc19f12c766f527b1dbbd061ff5da4fba4bdde617bd83cfa3b5c0ef6f45ea4f65c1e7239306f63879dcb79993be3b5d73a2e109bf63aa8888f4545601c6e606e1011225845c485aebedbe48a7910f27205d043f37091ee937661df7f93eaa5a9d88897b1670d997f014fe61cce0748942746407bfd391c10edf5cf6498ff24f45c5e871b32338c8a48e54445467bfd0cb8aa065cd591b7fa77389d56c6b0aa680b1d6c0fbb3e32036e0f5c0e1d32a9e9e55b19b6cb1fc23cf62f2e435c0778ab7f072e0706c3f676e0845803bbcd43cedf20221e8608ac72d2ad7e1d2e2706ab889ae8e27faa1d9a191b62b001c3bcd8c0a25ab121a562830dd8c35c985f2ecc2e770816979379cba74acafdabfba996723fcbfd58eec7ea22f7afdc4f8594fb53f76bf142ee57b91f2b8adc9f723fd551ee47ddaf850ab9bfbb1fab89dc7fba1f2b8bdc6fbadcfd5a9690fbb7fbb538a1a58d8f75831cf91ce7437d4fd2aeecfbbd4709c52a8661231a910fd0095f3c91bde30b68443fc0286424621c406b0061d6901847c6f087448c83067b0ccf9d35843c9883616b54d11bf691a3700d21090434a42acaad22ea56530134b99d3580a65011e56e38b8eea51d4a19ea60028544888e31e081b53176e7e86043686e8cf4012542e4ef033d72520c69528af4440d25a03449aaf549125214214ad911192ef1a49bd02119caf05b024953b24819765bd7cf71395094327ca4ceb44452867f8223c33f713b2e79a9432da1468a0aaa5351515151314148f32d7194e13bbc350d3a14818c6e408794a0f919d18d204d7f3c5a6aaf1d8eec4bb96951f6264ee4affa83fce5c810be1b59ec469c08639be8e30ce50fe3596aafbfa3c078b4a1362333b2ed4d98f5bd7a3b6f75f556d7189f74bde442d912228fc8f3883c22cf7dd8e8eefb6a6594a10e1aa0321853b13b0ca8a34c9a0ef554a2403008fdfe19a55f59123ae44074c881e89003d12107a2430e44871c28e3a14f8086a6156de43d30887cff3ea35fd55bfd9d1aab270fc5fb6cfc26378644b963f5d77cb2e446898d07c747995072fbb84f7bbdc491da6bcc8a0f334b27c7187fdca72691a07387b24daadc1f13f9464833bf274b864f7fe80ffd69afe9cfaa639b1cd339996c46434cda6b261042082184d29bf890531ef7b9247f2e29d38caffab04728d79b9de199d196653e19110c827d7fb6a45f1b15991125ca8c285166448932234a94196546b91d6f4099514ba7444399cf134ab4194519cafdb6ebbacbfdde10babbbbc4ab968df4d3e59e138e2849261c4a9264489728c9904e91fb3fba244387114f770cc396b1a81d486795a7527c0294fb87862c94f932a01c638c104618a1976344ea5c9464970c5da6faa53df41fed522aba4581c4e8607b3d93da45bf9ffec020d9f74f28fdaa51bad5af861a4f9e4081d251a2e4cf7f1a8e8623535c95da6b0a949b564c31f4291ca8bdf69ff6b0ff64f20d6ba31b1d6ca0a874effddaa8819488a20f448a6e74f0b15a4dac21cd8685321fe52152e21972241f22373adb92568dc59d502a2b77d5e202c3e3ead8e1c3f3415363f3637ba161e369a016eaa16ed2445da454647484e4433c6dc4c3c3c3c3d34748494a4b2eac961c5e1ad0a5b9a115e5c6300dc95fda92b794da657b3437a0cb6a9ab5da92bfaced6997b523802e6b356bb1c8fd76a86be8b73efefac15a0bd1b03737d65a6b6d107c7936ffabaede4c229964897e708a41e4af74acecd9dd5cceed3c6bb5f1464d48ca2bb3a55be4268e57e61e4d482726674658113aff6f027584549a249783cd2cb51d68423007f055bfe295ffa7f520fbaa892e4e7a1a1a2a2a2a8241609c3e7c59347f7e889161e4a970d57991fb2f7342eeff7ee4fe966f0e39ce9086720fc9ee26b15d4e8ad54cb31b673a75a81495d48a8a6595a385e5f28204c423875c582d39562c30312fee03348d90542b29951454ccbb00b90faa3b99feb2a20f55e2364b9572bf76714bf4c18894b40cc33a72c487df121ffbe4feae3e3a6456b9226538f4654348b91fcb86b221968cfae920843460d8a1924330084c869f693c2b3d96a77b52ab6f969165f8333287b27b43d1f90e72fd6f9681658abffe1c9a4396c7d1882d81d8d8e07073d3ee32ff339ee735c7ae7359c9198b66866f27910bc1235b86163ff04809366a9d7995153695de9ab5deb7149079963d534ae92de2667f21bd59ab59d3944f4495ab542b365eebefeabbc9fddd643a681ff107a760ff836c6cff413432f71f3c42eeff6018b971e570b7e195c5d8b3f9084813c3306987822eec75b88137c09796caf057e00df4e97f2c193e3ee23ff8c5cc47b4c7d3c52332005d8e81b4d74518c60d91b9bead5a9d5c0e854154e097634ef897c8cc36fbf0ef2aafecb6c1aff5c6a67573642923a9ad95e57f3619fe8dbfb4af9956313aa5dbdc9c69836ff37937072acbf0237c45207740f6cf40feaab5abf8eb5658048a403df207957ae42f02dd23fc65036cf57721064f197009b921d20a6c96f8c666d82ecf4ca7ed4a08611095d54cf38d2692daa93490824cedbfee85437f363d78ab5d42b4075d4440afbf077f39c05b42b4eb882602ba32008b320eb93304228946f37c2dfb272a8ef60ef097127e44bb624f6700bae208a0d71ff1573b08c61dc01ffd4af82bf6b42b02b53702e88a34805e7f2fc148c31799e4fe276c70b0c8fd71a86b8868c056ef009e84b08e6c44a2dc9848f68f581cf2990ab996a5bf1ab664ca059c1bd2650ae42fed5bd380765b0279f22737446edac71dc057107cbdb73a68f5adb0f9cd448cdaeda93819ae1e044be011b6292291d1230e3c00b18948b4b1305828c36575eb6010bb5d971596c97886ffabcdd84d75407276b5bc75b6316adf0f040718846e13c3d53fd05c4e7d4be967d9a973d9c64df68b7bb86dd9f31787814420b9bd0c244601c2d99e65acda9539c959cd5e3c64f57d855d1b2fe21e280eedb5e39bf61a3a92d9ed020b652cbd598647d0285b8fd0081e2511a1911050b6b2818480008a4b5129dbe951292e01c9202a755113654b65137551546aa21f9f6cb1e9f3d3443e9ee448d956ea489ee4238523c9267228db0c9343b28923c9a19ec993adb6d1cb929fe59a2d4fa6ff55efc943525e9125b783e404f771299aa8bb508a6d0045190051063d42c67012914a0c214d3f18264f96b8c2d82e27c5b2cc445f15d42d67cfec421c79638eafcc1f567fece9578cd179513e9d63120772fefeb17a4737d129bd934d7839c89002134fbe3dc97eb5ab1ffbf8f2a27cba7ee81d63d0d6f92b49fd0cdb566eedbc3db28d3b64b45be38aebd6b0d3528bd96a33ab596bb76d5e56b6dc366f4bb6a66dde1cd99e6cb7cdcb922dcaaad4ebc411a624f2a5b0257f851ba2b2cd9bca369582ca5d3e6553b62ddbbc5cb62ceba2e52c578c666c755819bbc3f2b03e5a9e693e0ea5f8eb40f60969a607b2d720bd6e79f7cf9e70c4ff6ef5434c8ceeab75ebd7aa9bcb719f37255d3e202f21bcd56ffaaf3bfdb7eafe7bd47ba8db5de8adec4f177a4b7bd385deb20ffd6584b7faa653abf65a08ef37c25fcdc1a3fadd4ac3df2a834959aeb807383a214e3f48466ae512f1bcc93ea472ffd6b38c1b6b6e6feb76644e2a87db89b9a39252ef48ab893524cbfd31378643b85b7482b5f1768c31c69b1c3f2a757db794d3366dedc1a634d2195f01b9b607df0416c676394fd4a7c3b89d58ab091ad91a633bc7e544daa63929c5726aad59d65591a309d96de36a6ad5994c768a0c1ffe9cb6d82dc9f991b9835d3f2a856d4a8aca144aa556565856585858522a292c2ca88e8585e5c462e25858587a98b037acb55d65bbbca114629d4b7bfe9d522733ce723916c6ad4d5227cbdbc66d9c69eb4ea7aeab2998922a2a5b5795bacf4625955a59e17252ddca25d5a9545c8ecba4ba954baa63592975f3adb7d3f74cf1b781b875144bbbfa158bc5e5b84bf7f212dbe83e0f2626e69fcb894a1dfdbcacd4ddc718c7c0bcb8b0306ec9b162c1aa9514c65805a7a0708731c6352608693c250716ca7c73287bc442577f4a255209754ea75fe6a69ec755bd8ebbf2f7628f2f7db9e4e54718e45f7ec31b76bc7c095d2c2fbfc20dba502fbf8329e88a79f92be84a79f92ed005f3f21fbe5a2fdf832f1f2fdf06be6278f937f0e5bd7c21d0f5f2f279803dc017cdcb0702be6478893f23f028d7974aea954be2e8ea7f5249761fb9047593385273ea536e12481ca959f5ad9b24c9138f43ff090fc70aec59ff44c571028b238e3870ac58796bb36d5ea96489bcd247486eaacbe3ab52777a6bb7544d8ee9f17566e66d8f9bc40a7fd2e3354e47cb2caf399223f5d0eca4f2c6dcbaae14e4499e247934ce977cc9e6c841332e67cae06ad8233fa296cb99279867f2efb80d6b529ee54ae8a5fcea56e8a57c8edb412fe5636e0a7a290f735da097f2acfb902665835eca0a7a297f8bd8b82137a3de7676de18b229e525ea65ca9bb81c95b727151f6718199dba548b8ca2a20eb5e2392122cafe1505478a6a4b5d999fb747ce71651294289367f64c9ff933a758f2d616dea449f6af292a1b0f20169797f777b9cea43d7f9517ec432d5702c1b4869aa8703a360cf3ee6842e4ada22b8dae3ce3caa32b91bc95923f90c657dbbc3a8456dee872bc8acb89791b3b1816ce2d34a8c79b71250f39eff11e5fe23eed79d08ccf4ce486c0bc8acb818181813e85ffc41475739523874b0e15152ace815cc5b990100b0b6b9bf7e61c57fe4c41851cc252c85b1edfe85a39585e85cb6179695d88c3c2e2495838e7e1c9fe2b96189d56ce8125d016e685a9f95af3b6e626b1a2e1683dab97965a2c97d9c2e550976dde17d6bc2e2e517e9b7998991eb88d82bac85bfe33b7918edaf37ef11c412ddc4441dd242666d54c7a6888ce98bbcdabfa795732bd5cce184a5da6925d2e4c528a028777e78fb7268fb7a0b4b7f4726396e1f64f50fb78cbfd696e0b7903b5e72f2fff9e67638389e09837257b77f64c1e6f2d399429a8106a4fc95b493a5c66c1f2e70bb576dd6af559c71b32a6b79107e4b163470ba5a4a7a7caece0dec61eb0070f1e3eba4ed23ccdb383c7f6367ad0ebd1039e720c7ccc9a139b186589c2a3476cc196e74d2a4cd947941820b9c43285aa80412a1c14c7a5a5dac3dba252a7bd8d3ea00f97b2c5e548a5f63cc619a53d9712eb78ecdea75c66b932a93dffd59550a22c29c5282d382a29b1e89449fe923f491ea7c365f9f385996dde2dafaefcc911732515b28a2b9b786bc85b422d4e27cb72e80d9a2d7561b6994628edf9fb884949ad6ddeec0c2323358e8e9eb4e71f0317912acb8d64c4227f1bc3362f9623138f5b7874e2d8bd3f2f85b94133bfba412dd6caccd7d4db995ff9fa2b9462289f4e3ecc2ddf920f84130092990b715a64e086481c95c8c0c59e22ff1e37fe04451f6ff9c7355a327011a83d19381f3cffcb50531395ba4f26cd1cd36ab5b084d2ad57b5e41843c2609f0406471eacc6668b1dcbdb70392ba54e7e5e66b135dbbc327fcc5d220756c2650b9553ca296cb81c9636ba4f266df37a5edda099cf71837abc8f2b9362b852c95bfe75e6637a3c8c8fa7313c76837a3c9c185e753550730b0ef2f12b3828867fb941ad77b976e626b1e289c799f9c8e9649905572f7471be9cb911fe9818cbcdb28c4176def2713dfff67cf2f8abf5fe32094abb94da15452ef9cb93818aaec17f064ec733c5f26789267b770a75cb9f861c1fdf56d1ae89552b2d548ab76a6161d9796715ed7917baf9dfa422bb507bceba40a0756d524a29e5a55f0397339fde49457bae5a41a5d8e0d09e3b0f42526e90e7a104d0c3ca0d6ab55412ae2e035a88f6dc619e6152d12e3aabf01c73fe9434609886a97ab922550f6445fec8292415edf97b57b6ae1cf2967f0d9c4e2bcfeb237b574ed12d7f1797435faba99abfba10d2a8708f7b84b7fc7f70392b18ca2c7f7046d0b0cddb3300d9e68d99d2e0dae8ca3f75355073c512a83d7f205c0e0b9651bae86f6b88a175e3ddc4dcb0a8566e522a3737f3615e8129a8972918b687657b127717e6d335719bd592a64fee9752c9127894a52d438b156439253cca73283f6010d4db87120b33c41b68ace9b7df5249297fb4a5a661960ffedaeff86b8f24dbfb2d91ed6bd7f6b6ddd343cebe905ee14f66fadb4592ed9558883534c7c7db728598fd36e5c66c5ffb9f9c7d52b6a7cd5a95db3de8ecc3afb77bd061391ef9abababa3fa9f97bf78947229ea6690a63fe5ce6c53dbca66f1b7ca36d3b44b3fd380e74f897cc4b3ca2aab3c7d152ea762a892ba3247952ee57aae5ecaed5ced757b9b85d339fd8663976a4fd37eb342dacb425a8359c5e9c4cf3e55dffee95e402617899fe16f753f999c6393c99a8e1c2e0e3d8f731fa63cecce9e325386fa2c0567d59eee7549e50d6b5f61bef5e3ad7833229353f8ab2951e5462a221013ba2f1ec523352252bbecf7c727edfa8cdc64edaded4e167f2fb5ffeaf6df96e35146f2d7fdfe98148ffc55fbc2c6abf6ecdb8f5c8e76faec72f24fcf597c44a66cbd61120b69af5fb5028d04d0a8ae3dcc5d99eb6909fed672dceb7899dfb086bfd89db89deee777f223d206b3956fdfc4e5589b616a912cb1d9ec377a8b9c9e899cdd0d7f48f22673669f6a4fb110cf5436fada0b699b15a97f42fd707a14fe3ad78f49d9be0ab67fdaaa56fff471cbb287dc004e1a16d24730ebf4db63d95bfc0dc9de7ef676a3f64b3db67d774fdc8ef6d6946d29acb269dba6c269f88bdb66fba79e4e17e66aed5f6bf1866409249b21d92f46c91ff647ba087d26b2cd5ed6b87d448a3764bf61216eef17a168d9f6d86bf88b49197beeb56f41b5a0abf8487358fb4f62cd3e7ded3f0c55fdb5e3b587fee2f1dadbdfee776d6fd67ee47e98d9fe89e22c22c51aec532ef7a86b7a1e57c7efb8322fc4bbdb65380eb587d99afd97d92cabdb67d43e21de8031b1ffd90d17c9f017b39665df9c0fda6ff6b3fb1dc12cfaa7c7ec63df927dfd2f32c9278cfac9b6c79e7b99d3c93ef6a61b9964ec376e27fb221bae59669fe35ee372386d5eaadd8f03597b2b37e77cd0bebebddf114d7b7b65a6f5bb2edfb7bf316997bffd38d42e98edc727c41b62c66f7f723916c32e26c524edb19e5c8edd308b5580fb321f047e1d6f0088932404f7657008f0eb7824d9deafcb36bbdf1139fbedeaa8d86b1749ceee11992b8e4f8835d80b716ce27b2ff456532431ad83c6c96b46e516447128c7c8244728178049f943f2938b989e7bc8e97c3029c7df4cf88349d9f4dc67d7deef26dbf8d595ffb6d47f9dca7fa99447fde792e3bb5afe93c901e63f8ff5dd7f40f2ea23fe72b06ef7a073d6bffffb2be6dd5ddebff33f5d971b9f75617b7f61b7626c72cc2db77bd07dabf75792271ee7e5fd570e93e3d4027361b75e2eec1a72dcd58dcf72e3abeeca4da9dcf82917b687ea2e924ee713fe4c2fb9bbddcf084cca55c3b08b171bb9c9f523e7430a15629c40e6ec529b96a65d38a3f317d2357627833032990516389863582105192020c115a46053041dc0400a2f9220051a69cc00210c2cca905f7cc18c544a0fe81545531c91e18532d2a8a940118c965821045d2c6d81240910d858a38b1ff4e00855c810c7146cb0c408418002c6c4e8133c0a599eb2945262f3076060d6941aaab22be38aecfeabfaa9d52ac32fbe00841f9091bf141324424a442842146db4800c10d0644ae913805e60451661d0c2046bcc208162063ab8228a272298420f742284a2222908b1800b2f5001922652c0022fa054e1032d92100306d678c32705638c000d38280085102c010c3e70428c3454a0833c4bd004e563e98d2564618a204cc10b27aa0cc328c14fde320ca3044a7870aaffe190b790e77449318ad12235723021ae4c8c62188629c933528cd229461379ce39e79c73d229bbfcdd64ffbcec364c58c9fe9f46f6affeb04b752bb2e4afc36880e4066f2ca10655a0a209152b7843250b12b45a4a4b6f20418c183ca1046ed0e084c70926446902859011d8607963b461822c0425a9a209a103a42184285c117484262d6822846a92c54a8f0e80a00a1e1af014410449ad4412d07842d1154a50a468c282d317455fb0f0f0800ac200062d1801080a2c766448f48328792543274d7841b6a7c6648c3146ec73e6ab8abfac7ef6125720393e9d32bdb52bebcf1e7b9bddacb3ff2ec35947b386137fabec2f89d30f2512ec8c5d3fee2e8915f39f781c2bbe7e59fbe5530c6f4822cadb1906911942576ff27ed2d5ff49efa457f72d7f1287ce4d4a77344c1982418410a40007988e9a2118629cf1ed922b1799a8655564f9f2a594f3b58c28db2131fcab95642294a594524ebcea9794388637a4e809a3080a3c4fe07c9d1458ecc8ce86124ab0851940f18612173ccd300c2986a81443390a012261074f480118a4d0061c6cc8900104a51b9c200a32bc6803073eacc0038e60052b7e94602145131d108c104c710537a4001a9ac2a43380418b194001470eccb8c20f70908121c619151fe1048b2df860e88da325275b606122fac1095658748195460c7ed4100a4113204801165d9ca1e3d260c61551888146141de8400d33a4d0841751c0d185164dde50b9c1ea8150818b134cd10535a0b002025160c38b2994600a30d0c0a2e74484c50a52626c60030a39f002880963f07ce10736d30758c068cf393de98e67b0ccd0cccabf68410b9ef0e2c4f5feca65e52f99309a0c25f12294e9979491f1887c804617f993b1992ed0029327262666a04e1912317152853a0140a1ff40cb79e204651c299d91021b00592fa230729836788aa068030c5564714406231862820c4c90e407075c184e74215f7a00c71b58346185132dc280e40921b471f402378848a0051f8060fa000ace450933d0988209d800c3164ed05d0c010b52765d4ab5247f1d36038c4e2fbe088a4286a80b1c0481408648e6c8f08b2f4c21731912f9000a1f87b0a31b327acb8e328bb531a75b2ac37884ce259555089b4a994aa9a4a41ba155b0fa5641173fc2983928367e104218a55137bf4e77e7813470361736ab189dd21b9f20a4995e58e9de10b634390c96a8a0220987261ce548c484496e424fc6c186fee7eeee94fee7eeeef47377772a45b77279191610f5614640f3e0507c83b6affed27092276e70ea6fb8a7e2d8efef3078b5af370bd2b27b4496ef94523a25cb001027fb2520110e07ea73207b1a72b3fc6166390622c336b42512acc01e7e16376bc57cec263144e6393de0c94d4b02019187878707cb309c611a86b0f56559a23090fd232a3bab00f6b50fc262ed8380a81314814919090e129cfe29f1179364df25d1de2f4a8a0e09b89471ec47f8e313e2f44aa7213a67aa38eb29a574b7c229752e875a91b19e66c89652ca295dbaaa8d9c070639a35ffd24c62e76b18b9dc48d14db62aa16c4d89dffe492c8a12fb79c61a9958b96eb8d497894c41ecff51e39426909253ad72b01071831820142cc69ca3ec6cfa29d37cb35dbb6becd4bb3959356bf718af8f3e37149f4d14cf3a9cd90d3a2504400105b9609b9b9c938a86932a90ecbf065dd524652406c6cecc62591135fa65639de204dfa8ce7c92472b0e77ed31ebe0b734090f6d6469f320a75ab7fe372248e54a42215b97f2be23a42192b6792a658dbd485c79350f7d57cd42e556ef9014092b760927d87d2ad7f67e6aedb917593b5723b9ebbb7d936b91ea05f91fdb99dcedd5bed77b4ef1e7243b4ef10a082a123007aebf326d977b0ac3dea6da761ed23a7f356bb3b306baf6156ad986663f616fb81cbdadbeeeeee76777797524a39e79c94520cd37057830efbcaed6c1b8759356f18b793f25c0ac77119e0de6e0f75302ca7bce96239e52211e340e11d2c7710d29cb0e93b56f7454e6ffa0ea35ed0b1869cdef4278ce4df5efdc8edac64cdf4367bbb549494d4a449ec8171297b8c31c6d845d9fdbbbbdbe74f76777729a59c4db2cf499d9ab0c974bb2a3aecabe9d461d6909abbafb9c35f06f2f6ac21359fbee613fe3290b56f6ee7f4a6776ec8091f657f1316d259e1b0ce4ade306ccf622ae4f991fc9630ca467cc8b3e8e23b769f0c753cf1de011314387683c34dcf52bb5437d428374d83d223da051a07fcd14f8bfc4591bc75d42eaad45e1ad045dd805e11ed828791db89a07f015fd89207cad8923132b60408b624f73b96047b22f7633c14c95f4ee3a04b4e91dce512559abe5125aa84511a07ed42d02ac34c9813511f12604348b0f614bbf8cda1ec9c9bb8c86df369876d12aba6b7759b950b00928c7a4127f337af68d3db6c9a3e243bd99bbeb921d99bded2cdb91c2428c72a40ea557e881426cafd2a43406f7db3c90ecdd96f54879eb8ec23a713e3c859c718638cb1b91f54b97bdbddddddeeeeee524a29e79c93528a6119ee74c0bdad5b763b1d706f35ee85340a85b9afdc4ecaa3525018f55c06746072f728ac63b90e2311b9b712e374684622c64133e436bc43b369881bb23dd603ccd96b1fb99d9d1887b55f218410421bb326b9fb638c31c6bc257993a4fe598a452db91d9ab7b7be61b7fe24b9fbe476a6c48aa49494db9173694e8cdb71fa5121242ab7d379fb8e075df6da67dc4eccdb5b6dc3381fb0ccbd357d483286b1af19c39efb9ab91deeb7776e08a71df5fbb4f8d37abcdc479f3cca8d3f3a5f88538961078cb2918a832baa5360985c7421841c5f23824ef8020a8d880c4b34893423ad483bd2d2d08afca52179eba85d9a52075c64610d99552e9c9069097028a5943a96557291844c95e0504a29addfaddaabff75b9d230327d497fa394d2879576f1e96f94523a65b665d84512bc9067865d28818ce904181946318a9d61293502bde95c6a14e10d2f6e300436ceb8c9be041e0415818b29d698010d8ae88c22053ce0c209b4b0021a5cbc20e3c206f72524094c8c200223043dd9019d74d225191722d0a670c58f1fd9bf06613af542a80a958b2632b8060d7ab20004161441698a2048810b821b26578a1b5318630b1a5441033004e128086260128c4c6267582f5460043ae9945dec32f4420530984e7c64010b4159f04116de28726203339c28084c566ac8cab0c21a50ae808617521912050128db0cbb98c214aef057e3c0af50e6e5c37f7ff9c3f7fca5e978fcba0fbf077ffdc307c25f310f5f087fc1bc3c7c23fce5f2f08f70253cf2f8abc75fac872d0f3ffef82bc7c3d5c38f42fe6279f871c85faa871f9bf8ab47ebe1c7a268b43d547998827af871c95fddc36f9eeef197e9e1b78ff78fbfb299ec372482a8a7e78458a27bd3cacaa3e2a9d5f568f5f81915cda73c129c5327c36332fcf64870682e102a1feda42c2b96550e1697d58bcb0b4c4b1233299615cd4f9ab7ac9fb949c44f028920b2d77ee6934022887eff19bc037390fc24845822e6b9cf5e8825fe4d49c45f59f99abf8f04c7c69bc4cc23914410ac20bc4f7d0a7f20e6bd8738321f042b88d4fb781ff803383bde0010c7c7dbc80121f391036207e480f0819d38f158b9ac9ac78f04c7ce5c03409c24dea7de462e8898f77e4688ffd4434e08eebd879c10a64f61d6ccfb23c111d242dabbac99d71e094ecd0542c7dbd64d7d8fbb12717a5c56105ef71e660581bdf71ed6baa72d86df1ee2a8546f5bd7c5e55df00758ac7d59cd0973230ee47282e8bbdcd6bfdc1e0f73210ecc0b69dbba32981544eb655e067f20e65b98158416c36b3dee0ecc0aa2c7b7be853ff0df03b382f0eff13df007bcf787381087c78d38366e3c82640e103c5e487bbd841541442cf880083c383ebef54b30e17d8ff7d1c24c7818760d5f5791e37f80891e98c7d5b0c2121e9cec33211e3b6ef5567c99abe3da782b3ebe3742bc15ff6f0fde8a1f7381f0567c982b84b7e2bf5c07782bbecb35827563cb8d3e396e5cdd08e4adf82cf155370e792bfeca8d4dbc153f752391b7e2abc44fb931c95bf151372a792b7e77e392b7e29f6e9b6ef7782b3e77dbe7b264d8703ca2c1918735f3ac20b2c79eb7e267b8812e4b060c44c5b108c3d188060341f111132bc19ac14048cc0aa21fbfb7e237ee1f6fc5472299f02191726ca1fcd51cb700ca9008083cf9eba11c9f26432220b8917b0806e9204d3440e3546f15a1fb7a481ef96bbeb104c4c3c3c3d30451137f452d626005d190d011528eef4042fe1af217129cf8de04a3c10d6ad053e46eb4e433e42f5864e4af152a7c210b3f3c38118910e240f257c489df4bfebae106464338f19da7e847f27827f90be2788f1190ecc9b195249257312bd5e20b21908ebb558aa89b6d689ee1634ec3088115462033b1165580c28b28a67422e931191269314656c9f08b2708e5afa35db0b11ac071200cbcf0c2093d5a7091444786445ab8408b1244d1b4242c246191461a2100230c1340a9370072c40971aca0c9132ba8810856320cc30468649a61182720816441193f613401c50a425a3c51b34892340431a982073ad801d29227154002139468a102276c2086d015d3891016dc0c4998c247054d28420d4630011c3cd182163150020ac0f0828a13d0139080fee041054544c0c1185ab0c2892dc32e965ef075fe62acde82b7887f96a17f3b131149777c823a18a2905286886a61043259407942460a61e15f300304591839e1850a74906586445924c1d77cd117f6b5622e3f76b0d53fef6442c6222c9471d48e1a49edc12c73d7ae0f096a470d2736c26e9343e8c547d5f6baf61a07758e61b76044eda871467b30ab6448944512327c28032313fc6127ebd6bd572901198431a86830c810cadf0a0c22fce47e979691996e5ddaf8b27ac445fcebfba7c59fee5f679ab30c7ff1e5db17e2118925327d1b3f0345e447b911755936b921f333fccdf9f18bf8d7b8b517313aa9a4dc90223e8b78e4fce72d225f6efd8a38fd91b3b191b2d142e8e06aeb52f1572eb17749ac88dd80d7b44ccb322dcbb44cd328a5af515a5d56353ea59452ba1d993589b5b1ebbe914ac82d95658c2eb03676b0dff117bdf6a49432cbaca536cbb08b61987c2b5b4a4823df45769d90761c743219a3f5932ee91dfb064aa94631a554a39452ade28a39a594522cb365918ac052ec78560b638430c28f30460961062184f57e479cce643a7f66eb5bcbb9c9c9e9481d8973c5eec54f26d387f8fd25104843e9f73bad9fbb3b9c360b0bf17793a3cdbc5e7bf06d47b7be2d91e76358c5b08a61159b55ba497273a316d36a96550db3749b9c34f9a9bbd8f0648a9006fea4b13b3ae9b0d8bd63b748ff8b31628f61ee2becc69c6a1774c1307c24c6ffa17e91f8186e0cab185631acd65ae7c4a27449efc6b05a6bc5f2218df6b53d6d62188661988c31da98137fd36e0c42d75b8c31c27a84cbce19e3fc2fc6d83dbf678cf1e3cbe972ce19638d3fe79c73ce39e79c73ce39e79c73ce39e79c73ce39e7acf588ccb1b66036abb8ca2cf60d59fdac1ee9af5f5fb6576b7d586fad5f718d314eecf08ddce4e8ef238a8532b2c77dcefaf256af9b1b9d7112b1ae9e496ddacbe5f85b6bda22e672debd2d97c355a2d46aebea9169e3a7289d696f4e19249f4cf625fc886f95b1f9edcdef2dbaef264f4cbf6640e8b06d9b73ce59dba31ba5f4e71769a798ce774d4aaa517a7db2bfed12f8953f6f2b8935fe14774f9720d6f8cff75bdba73dafb5baffbcb57ed6671891b15917cb7d86d55adfbf564a29a5544a39a7f6a96f4ffb6fef48f62d4f29a59452e2af72394af0f0f0349169bb28a5e9fc338f6e3359cdfe357bffece96bdc10ffcc9f62f78ed5c896a5fc285dd2bbdb9dfa26ff73770e4af993524a29d5b417e2dcd56a7b765a7b04876c629a922ee99d63df50dbeb1f69e9d1df81ccb49775028034d95b779cb9ccfedbcbb6eaee9eb9bcc9d967abf632235976c2de717452293dd2ee1e9d74df16a19396ffd953126be19b93ce5b7eaa5d2d535d1633d93fd5aec6fe9b734e6a043af16ed2999af34ddaa9d10cdb52edfa5c3ae96472bf4cbb646feda5daeb4ee6944ba0bdf82ea41db3867c31cf23324ba46fbe4492ed9cf42546e99029bf2333cf9f1fa514c87cecfdb2e8d75a6d3ef9f3e91d2265c430ec33028de8cb09b921ac21f393382233123bb3cc901b12e7ed4c718cd9e57f8e9390d9c88d11e82423c9b65d4e8a6d4ae42d2620ca1659860cc3b88192aef02de4768cc87362f3b18fde5cc9df6ecc5cf6106bcde93f9fa57d91eceb6bd9d7cfb0afd8883c8dac3210f9836f6495fb3bbe6bed4016b66bca0dc3b0ee0ca317e69ef32127ff0664dcd9ef8dbfbf5db55f1027be77dff93de777fbcb9ff690e4e912238165dfdaabdf5e84d215ebeebec95f0fb9c8e9edf7d54ef8bbc9a7b78f5d999cb9e47eb134fe3216fcd5bc72bb07ddf6f151d7a5bdf7bff1178b0bf5fe3cb42be5fd7b6897cafb0ba05d9b296572317daa3fe5f6a33afc9d5ebe10cfa72424b7d26ecd2e362293e947ce0797266d4021d3c7aa8ca75a86c1fa43990994b557ca76db4e68745fd5a9b97ea470d3b2d30943c7906805f1078b7ec31f34d23044fa6c2cb41fb78ff6b32ccbb22c833088cb7f3639c39f1120f88b1cf783cd9afd8ddb49f9967769177c98e325941cbfcaf1f62d976353d7e5e9ad2a2915cbea21647d63f8eb561afe3ec39f67f157933f98846ddbb61d69ec16a110b56d1816f31a0af5d90b69ede507147ec15f67eca552d658f8ab415ae1cf5b020bfebe0c15fe5662a480ac0ab6d6e2efb336597b5c047bbaa90c806a9fc5fc863f9935ccaa2c2fb9d38c79d37f17b74df5357e4aca6f3676fff8ab89c12f98b5c22cd87e6551e1cce56adc8ea6fa2ccbbecbde94fdccfe943d97b14855ad1308c330244b682fa14838f25751d8f6128a8c523114ea33a9545f62a14aa55c9fbe4debe640016559fba83df636b9aac822f651311e01a9680944653411a38b6883f69f4dd6ec57d4db2dbb5ffc28ae1845550925d6509757b930bf72e3a77c9fbf9ad24674ab677931ffd554973722067f35de0bfebcff15fe56f9834927fc7547d9293b695a26738659ac8f4fbdd535b9e6bfab99112059fbcf08907cfa97ff6c72d44ebffa4f7aab77f9c9ed685fe4e4f292fb61cb9acdab6573b3fdcfcb81b2f87bc19f4da62fb1e0b2cdccba30d3cce280c442bc81fe7f3fb27df8cd600448cefeb3c9d6e2cf0890bcd90c17d9fef4f63fe9c3f6a7df64669d1e48b637d9e290adb5169221adfda01af657d206064979fb01a53ba8348b180ba39a748a21910100000000d315003020140e8904e3e1384d43d10f14800e84a8544e481ec9c2308851144429660c31840000081063666868260e9508ba105d5b444b511b30e76e69b6b60c4aba29bddb069816740e87e2b6d666fbf09bbc3e512a3e617b35f85c424980e76f56574341f1817986610a2129875f0e782cf4715a41e18c202ad9c5aaface8c912cff8af99a4be08a2457f4de02dee98736f7a98bc33f6a7dbbbcca75e5a70922a3b544af81b28be3a41ba797450a3dc58dffe5866a449f069ebf8aafdffa2506bb8e8f391c063eb86093dff15088fedc24ea87a4a9bf6cb869d0c3cb8529d89ae4463e8f51916d4ad5c3bf2f288338327b69a3e2288352d7d132cb1a81db96dfed08adf8b5a06b739e2910c0c02f7f3b5a3549e0a13275d6e99220d754618479912d76ff7dc166bdc22f6353a722db7cd3592ff5b1d1e93c9ad325b6e5f732eca0f5d241f02a94daad816a0a0fba28536c7c356be3ce1d90c7c7beaee5c83deed1c91646892c2542e7194f1837e8e199c2791ff257f23f3b474c6c22310ebc8fb0ca91549df388568bff86151808656215056c1afeca2ffc455c88885537b4cdb84ca8cc3e55f03c091996c388f94c130ede3212dc7f24b05a0d5871095cd3ccb4dd9049b3b73b03dc3ed3f874c9243014e567326b25b7dac6f1df0dfd69dcaeddb6341f6ce0921a3ddf11f2e66fdd9400cd9d63e03e8cd6a1ff0e00a69366c442e35b9c4a648248a4d3ebe1e29b33d9671f5f5a3d8aa23425192269e5497591d8bbf71f02ae40b74c626d9e0f6a0134ba5432e9ccb10161ef224a053c7c5230a8febd860b849a2817567d6c466d71c40ac7313e1220842bd2b09546f8b7faf1b10534a214efaaa555eba56ba7ae29ac6ebbeefeb6a5c7e857083b11c65b9eb07d54c51fb0c881055997f8e0f1d3ad5ff512a71e1ff040527d25f7df4e9c1e5948b18b83b13f9497a67beb40c63af1161485fe92b570cfa8a54b65b64b9884274e589fe111666bdb4089f126809eb1a547b0de9fc49c4ac23b95d34d4410ae3cd7d8bc87f0d7a05795c7a883596ad6235afe6836e5f0775f073f3c8d363ed4f37b5845eb41e28df1f358f610c004d5bffe8130a8c5bdb55ec5a1352fa4ce9535b7deead8f8c67d2027d20cbe8bf612a28794e1abf25137cee01c6b35491cbb6af806720c83f537c02683ab2e652aa5fe81326af15c7507653566a4ee0151522059a4ba95b59c7ebb3cd8b5ca9b713980c161dfc754ccbebc191a902d8f3c81dfda2a94f793517bd8ae4232d5baa87b59fce61f381ba77aa50c84d96cc20412289af4b9d0048fe40104e102f50057de63f9dd8964a764c0f70126c59e44de43a0d9fc17798a5ae2fa451806f10bc4fbe98c4bd916ea0610d25fd7e78840b8abbb29a3feeda5041c594506e2e7758999d0c10a6587d972fa0e34f1033b1887785268d6355265eadcf6e822533ca1ccbe1f8ba3ad92185e4b9c5784ee56c4c5c0519b5ec5cc95911b1ef65fee57bfa8ba520d37392d10c3f065b62d352d81bf8040bc05d4e44ef07b483a3ee815e362ff3dd7aa65ca4ad0407fdfc82e0f30fdb09b71b94d98bd3df2f5b598055a620a159ad7a21a03e3fee4863cb3dc0952c698fc94d75a00cc03260b651435fe44f6d78c2a5b9fefe0c9e177ebccf420e82c00c2da993d5ca3fdff083fca128f1b2106b8abf081ded1c4e5f30ce92bcb7ae2026b671ac8bd775841dc10bf28fa2a02d065f6a6908e15afa95abcc09873808900843762343094e0c0601ee82ec33406bbad75c0c5f3b909023e8c5faac3b2ab55b883587ae43118f419162d596c6f087f208ecb403942fba9d224982dae763bd1577b10ee0cd825224652a751a133d4586144500ec3eed30d312ca22e620c02892e606117d15876d7153644962fb0f998b0af5efb5640b4d9adc25efffca46cb9b08f8be767d481e4365dfbc97e319a67e15f7133be9312d9c9e055c0939f8a2ec13cdc00787193764add653411445553cb202ad8ba928d8eff4fd1dd45ea00d3bca50dc843f05a8874a2a34fb627875101481cecffc41e201c25336455e7f8812e20c6ba75a7f26bb465d73b1febbc03a00bb4c41e2bc1f358891d04f0d46705dcf318d6049088f60cadcb32032ac870b93ea23786d701f3337a0dcd7af079d451d7474c4a9ddc2a18834be662b224377258b0e99ad92df71630199384b60f727e0360e243c936849ddb1061a3b81cae9bbd545177a18aab38fa6c65dc70f71e74042de4b2f3ad3e0b7cee50637fc8e44a08b112d1088872e2fae115deb44ed3d31ecae688580f49f8a84f3729135319ebe03b4038b2e367c3f252b6e2588cf318a11785409fc6191dab054f2b52dba7314c27fd6777ce3752077c06c46c58cf65e933589323a390b000d6ff926db87c3f90197e902aa44f19b31e8b55b330b1be7a34a1dc59fe16cad36249fcea235b3e3a88f1949b396854055a1e2805b1cc0c83b33c951c9417b326960a2d3a2c4403f5f2f3c8a4a37a05956a789ac7dd6099ce43463ba0973ac151dcb7f50fabce96a96d7d534d3b4cadeaf8d570f61b681a17beba232895218f9751387b250789b58480960f9bd88eefa86fd5db97b4656887fe401ceec1912aa6e4dce56e4be179d655c21dfce2ca9064231d605f112152b5bc032f1714804980e531544b33a6b8cc0fefd9fdf58db5a24dacf4c49dbbefdb3086fc8dbbe7b78a52468292619cc5c30d9eba048cfbc6a634980d8d0b5ccd08e59a0bc3b7436efb253d221842580d5be499d1e29b0a1bc5b06a9463f1c0595cf3fa2b0d46994628187917f5911b9762cd3b58de7b69c072c938f3b1385d8be6fb069a2de93a2f490da6547d0350351c8023c5274f5e3b560951b85133e8f8a930ca11f860b9f04ecc6a8225c3db0cfc9807ed005c724b4a08f90c178ac9097d1cc004d6267ea654e1038ccc45b3f1f0a1d08120c549f9e6204ff62f89035233aefe4312b5a5ed5d17c3a838ac73fe01b33af941cb423230697880f82b48777fc45a697a0810053475d5ecb408c8412436e4087469417edf32894c7f8b796bbd9f5e92c8a94bb0c99f886c3b2323b2c394d7499d4846d2fe3920704989aaec86d7780b2cb0e2ab42eddcb5d1f1bb1e83f93b6a40d58eb7f9bcd1690b6ef1ea5fa30f272390debbbdfbe938a6cc9aca7c5787fe47095f0ab2b15dd9a1e5f2fc2b1cdc119885b7dfe9a9a58615c2434f60ab26341f0cfa7cb6f4bc9a4f9114ba7fbd58469728150a3a33239949038c927de048015c5a9c3a2f8fc1600630783fa9c952d5678479c6fb5eb4ac4a8bf6ac4a0a989e8c03e7c131604eec70723965df30dab3969d3f6951e35ed0ba0fc33ff2115cb4cadab2fbb4c17640cd5179e15190ea635e2634f1ba9d57e396c3c9a5532175124ab1d024e49b8e1bf0565f5ef17f5a297a27c1ef13bc3d02dd41307b09bc9bc0f711685702ed43f05d82be4bc0f608769f23304fe2731a5e529b597f92574ed3b8ae805e29daf5357738d71e10ccdd22b5306592ea2a287cdc45fe6e154109b83711da721c7d853f60734be34edc01648b89db78f1c94e5dd50b4c2e8890dc2d11690926acabf8322f5202e5e4c21c3813f705946f87b6e038f0cfc8ec84bc1530f9f49b8e3a02ca0e2cce22e316270808b4ccf8695a655fb3538d236aa05ae7ff9a32f36f0aecdb85dbaba51ff7621f43ef448a2fe9f220b41f41480421cbcb6d91005a53278aeee5c877d2bec72082c5a0f4189393a0f6e0ae768e2d1958584de3c19dc2284eb446307ed5c47b84a328fd452b571e7e81a213f928b27628f4c084cfa7945b24658a7a8768ca949b85e0a261804bed03f85e956d7c50b10061a80888e3cbb51ee3c1dba943871fda668675426d78b17682ffd88ff9b0db44e4f082605857f0103dbaee2104d85b5ff13fdd8719b04867b9c17e1f215e6de60cc80830ee76bdebf20119c5400100d22b26e748323d99923feebd7031cfbd061ca2b9b74325a9da394f8d4cd2bc387b75fa46d05b322fef2bea0fc968a61d5241ccd3df269ba1dc579f8f2b4a244283f9a69e5d0b643392f35e7d9e9e35bf71f7d15a79897d87c734a46cd6bae38e0c57c42a1116c10d67c5ba5069644da9b468d046666f6e221a9739b43b9060071bff2aa6e80f8cd3c08f913d9c5972a5fa628f17fab01bf925347439a4522c8340a36ff12c21e837b59f0c6d761719df830856a67689f0e2c546c6edcdfdda0e0ee4249deebbd9957a148b615b6429385025f97860d738dfeb792583d34d871cc949269312a1f325c700326f7981676ea4568d3b67e249c310d026bd487ba3d2a8e1b9f6ce9ffdc5bd7621203dfa1ee835088479569f1e183bbd4ecd463c46e469194d6cff96711de2d3748a4a2310f14d006b1cf71a14b8515faafad92f321d5cc686128a4445172f8db1624e522d20563faa6cc0f5e640862e84e171139caa22000199c886b65a951c7a0eebd3a9c8c93d92eeb29147b6d705f6e540c88bc6c847465d8059da590e0dbdf6acd171787a7800a0e13f73df78540898c7561479a0e363ee692a623cfa1f0ba3b1bd046d97bbab28f120a67f27282e21ead4fcabacb84df934b6e2733fb6b50e56936a285cef6b7c617d90ef5ccaa312141d0d8dfc2cb04af483491e875e6f5ebcf7c69257db1f8fae398519807c856cfc3efc5a5a4081187249bf9b7dc3004c6c447e14e1f0209d297ba732b93c053c3085ddd9e8cea7d00ec9612fbb157bf158786732c3c8e3222a202678d0667c96a1e3777278004330b1230536c69e5106d681f349399db18eb9b1a7b8e9ff7ca00287a7c3349ee0d0c779457f63afcdda87557af9e27c7a9a7ed06a362980be999da3c752ff5fb58c22164f607a11d8df7d930190f7c1170d38b3235bfb7c0d9b0e37b3eef0ec5760fbbb80063b50b9a28adf0e5d73130177ecc7507c89ab5b9817dc77e51c57d1743dbb1b2f025eed59e09b190b65bd5ff6aa086e1ca6ea573fd532fe33778ded4a182b2b0aca8b1e3e4dac6aeba0fc56a97154968d0e46ae8c8c015817ca9414bac38bf588cc7221255b6800004ca58a6d2daee6b1856062e7fe426b3f81da51dc34d08e8be33171da4fdeb656cff88fdbd4e1837ebbae4fdc62f032ded2624c44ae98d51e0b445a6164968daabf745796db2d101a9c7f2bd5094a97223fb3200eb09d8432b1c9e1628bcb86f537d9cd953e6a7a8c93917a08e121116ef6bfea23eb495b6a81fa9d53445aab4ffd88ba5be205d9aeadc2de57062797a5211b556f83b0a7ff6af1dd93a77106870ddaaeb0918716fa95f457b2f605e5edca05366babad6232d122b58688d27802df0488ec4dd5cbbdd93147f25a030f9edb2ebee7f72b21e28407e09719c0ab65ca00204782a00f6dfa118a06cf35bed338a6fc7bad734db69d4e8b5cab7a5b627483eb4d0627d8c95dc3384f34f613bd03f8efeb230d3e5aac1461070801372e8d5174f4029340b6425986b312a3c5a9279070588329a888e0cef1fb7fd45915b8f87a06b8a22a22e9f4997d50698d352ad2bad9368650ee7e2fcccae464dc146e9efcc02a2293be575f4024fb2f31a5af8036e7b03d9c99c22564f50bedb3ffe796983e80aa8a69f1808dd858e8941387867d9c61a6db7ecdb28886bdefd02ce6da312647ae82ec5d14a93e0ec47b267b77b4326cc8e25e6947470822d13e7710b2fb429cc9c3a40d91439995d0052a82c0ddfc5259765d43f916f48da4a878c13cc385002410148b71cb781a23c19137926f814e718592fa3174b79d9acb9220ca501626460bf9b7e0c1247fb71a53c6bf2e6113c1adc10127c2f75748b3e1f0d586e648575543a8908e3f1c50a967a888b18b0c81f8c5273379f9a5c34cbfe85c0fcb72f379443621b1595daa34ac490902492d6e9194a23db040c46a945875dfbdc1fc435fb998ec497b88d7c7655261dc0b38e80d80cc16afc79a1deb1d8da07f63d57a0881dcc9b496e18c473ec7a3e1b7f20937c26f9eb7bc78f869d95697d03356589185f87cfcb1f86191c627166d7c624bc337961bbf63b9e1855888240a807d9ad811314aad1a4be2c4f4e00a973e5fe9819a1145d34e351c97931b74aa48b04de58f8bfdf496c0fd8dc87bf3f6c5f24071d189cc88e35148c1fb63f88522ebf8dc8f8f52da880decb6b1533579f04a179964ee9f4c16f8d9073abbc48ff409395ff38a912d0f1895fae4930dd3379d00d479ac751fa489e4566e3f8e8c41e8255f10f5e15854a1a95e45f087f13250926d5e3fbdff8bb75128f391dda108a9e60bc5ef39a38a35dc06e948a915222b3b9e6875998ae54771658a3270f5212c7c0542d6e09d55c277316a4aea5d2b2adf6c0cdd3eccbec41966af3acfdee276db12c00e5bfdfce86b02f6a956a5181387c286589e32a016140e8d0b8bbcbf089e0f09f541b90c7918c819e98f8c6c034a3203b2d5b5610a03736095de9ab2e2e2506c570e007468927cde88f1a8f78adf51bcad7e009ed9d0dc2c3f361f8c046dfa4356761d00bff319e1a41847c92ab81de5c20e21932107b3e679eb2144756cc6f24737748a643a39dd150cd4f1a727ed749a7119ff0a993ac45bed090fb18f5d2aa2bb7ad610cc73502aedd77d7b6c9afc32ad990956531f96cf0a906c0b4af9baaf8f7acc019df8c1acfff89944553b2cc41f0495e2356b1217c7acabae2c4a7724e539d30c0ae6a2957516bbc3f60c7c17d0ce122605c0f43468714102985acf84812f1f8a20029ea7a8a0ff5a9da1478da8cda99d54b5404dc0dee8a0f17005aca3c7825d6a73bb226855d4a9ca245bd2f5cb61e0ac011a54e42764ca600fd1ff20090f2770e9e02d1ef39f757407688c0a7c9a49007854d15282fdb756f4c2f29e37a919242b5735281f57492a0d6cb746389b6e5d261c594f044fb01965b74a11b9aed63d2dd8bc02f47fbae03354bed7b305ffc178853082a9080e6f56167b12ee780b6aa267ff26b94b0bb5387262c1f95eaa0fb284982d4e577b45bcd6085a07d830cced2cd73b6ccb030b0350f0971049e6d3fb916a43bb1ad761ce409df64d54ca591499aef62a79950284991febc6e7f5d386f02c2c81b3e00371e5491a226dfc77c502f5215cadba7ef70ada961a5ddc64080535a03db85fd7eb581f4939076a8756be6fcd3e19697ccb8bf1c9533acf9d487aeae009d1984327176d63edbd5d518cd34011a6b02cbc1170544e2a40d894738d2911d8e6ceb0c6681bab60ccf11043dffa61ad3ea9a11e6ac9556b0d62e0e79388cf89ed70bf98fec949fecc169fead8abc693e5dce6c88e13fb24907ef7ef8197f18301128490680897481138d11164f2bae3f6f53b7683040ccaabbfec3f56a4b439aa2be8ab1f87ce7ab2fbb39d19900138567db5a5ea0de8e7ada9cf6d18e923974783314b51e53347e2c9ca207f78577ab430e2d1038f3c0a205a54625d3bbd17c493d00d4c78dda67c56828da33ae8a0b4836b27bbc31dd9ce49bcf545cc9820baec479a6ec848102c47240e7f1201e4064743533fe44ea68edbf8d1c59b1fc2a9da1809f468ef060a313ed94585d4b1a5cbdf232bee78d6f3b594637b5369cd76eacc7f0dd38cd20ced90819c37736c6c8484af89fca0b330ede4263e365034d25e3fdb37d2fcb5a3a52643116ea43197400c930586ff5ae071a1312b64082433f619d75657bdc372d62ee768aa951b56fe8b3213074e595b3e51944cf9f1eb118b0d99649b36341ba83043adeb65966a1b79960bce3afbd64cfeac47298e4d03655f15e7d11552e39036e71b75ade24b5525fa216fb936a3d074edefad0af62c4edad0b05ab08ebbb7b0f620a7e5814c28cc39032627e3daf911f4db4026ac5331e4e5e4ba4c933ce0b806d97ae09fd99084ba5d34aa4c171f9abc96f832029283680c917154ee08313efbcea05b17a237f46845a774bea6bd91221003e1871d414d502fdf1a65d5a1766c8972c24e831959dd4e67d200d37de99d12ed5633140a100a787a06f10f23bc603b8478f2e3a70e4ae505bae7b0533c3d57a21a17d59d51e93aaa01a49aa492b47c20bf5195938a5b72afc1501b231fa44b4a2baa40206ff5902d7a0ad0ddfab3663e7c99a9e4a63a67214248f79bc827cf6c40286ee16b8807feccd869883488a939840cb5a171cb8b390f234a021f0c69fd6403b1452db3d3c0b381b82261c91c25bd10903f11184af1afb86ee4dd5f4524db05943acc836ef458ceb8c7a34992ea616c106783fdf0bc9da4d1a531b55cc7aa34ea5cfe086c90d10b2340c993574406f9b9ff0f9091c6a64c95a536c5793d9c411dbb4aee6aed04c3e76f4bdb1757ffa9aafb524c10b42fa994b974bb6c008524a1ecf05765fab6285b6d33c92c4fb5584a46d655a5bbac0f7bb03d9cd3ecbe1b4bc5c2496dd54c83daa7d846bbdad26c8d1580b80e6b6b3d6c8e5aab3a4d025fcb5b8be58e955c08991b04c34f610686018b95219e31a2cd0f76aef313fc3ae9391c75c93ef2104d9725940578b4ddf8afbc1ec81804615bd3d2d1122199d409214bed1e4216531b1ceb69f17ef3b15d11108d808f25e0b9721da4cb0a37e2d64d76d995f0a69ecda9047f365381c892c68b52d39c3ff1231fe39cd9be1c08a7d15ca2f79ff9553c8c3c8acaf8a9c58cfec3aa5458c6786faae3905d7689b4c37f2285dbc9e05d06f31ed4f556c541e72ecbe2c34594960517c9781d0e228a32f0e8aa9e0681fb0e1f0d2c19fec2577d5a6a84a5228043bd0e57d5628fbb571203180b587e90998f6f38bdbee3f62f7126d260bf671d8613ac7f9a0db80c7a21430b890d8104c86fc6826d99c7e539cefd9457276221e82d2f25edc371851280d2242fa2d35d28f24858f9bd4af63fbbe179144ec1939be53830d58e99c450f8b4f1322edd9b836c3bcdebca157a74c1b3fb0f06fc51307e80ea4534189e485faf07e9c0dd3485beaeda9ca6d93e5d4e7ff1f2169246fa8ff22c5ead1ba6584f5be392234d66bd186e9f590b80ad0e03b90b3e7136d0302810b895a491ca00e3c94102142408143154de301d362a29e06cd38e09de61fe3ca7d5e121681fea7e43190232f105f739091165b23ae7dec42d373704bd61516e1e9ba173a61b222adbad50c5889ce9c865a51efdffebd06827213aea5e3c5668a4a2f7721d2b34e3dd688e20edd0cf4b48b7e51e7491a1bda9c4d15b4d1aef3b9534c876efeab7a08b9ec22897f691cad2349cd541599a203ad45dfa8ad4a834a41a35876876159ceb1a7c7cac390fa908fec44d86c7864064518211f9971eb0c124a69d96c967840ccc1c61eb2b7e39a95947ec40813ca995a601c3ae7fc1875c72fdcea1e99ae1e6e81799f6d56793f58201e0d895c42b6148477eb89f1f2177dd1951208be963bc308db5e6ecc5462ca68442c40df9e54d6610cab2352e8f987a1962e00e851c4f8b90ad9ec7e834dbafc123bccb56341e4702f20e6aa6d4d189f60520cf020a88a6844d50782cb20f5fea7be0024e004b991b6a564ad6d36961c4080842e607043b8dcf8e7f2e4a9de434a2cf85b8cbd655660adffaa0ca1888ed4c07baf99d163ca27b83f814112a2a2da6e85be7b737bd3448dafae2873176c730ee863169e5e2045d6a60d6d7a7b9bc65ff79b535bd09122f893e2de938d6afd0f9348a9abd08b42ad904b5d55487831ce68c6f471af11490930f7d4d52e53b19c4c4c6864a47533d34ed34b846676ae43d0cf1132a2e97c0212f3dc07857ad972a84dc404dd35cc55e1692fd6c55f5fc469c1c909169124085e063b98d09d997aa0bb93a8edb62f140a2678a230e490b3611d09096a8adbc01fc48c83918d2f5dd6a7dd38101fd19111be9dea5514004a80336541950232d1c02221e935dd79b207d44deea3b40b86b5be430304cfab580fd5c3d921f74d17a6f7c964b4e8d55189f45fd3c5700c5237b90981e9f6902efa6a31981fda143af62f8dccce30e638c094d76898db93d5769e7a49a03d9dd4b97cfde2975c6463e9a63218d117573cec9e58ca8a265e34370f6ecd6278118068a88317aba89277e66e0b98f337448b69c19f3241d359925d39716252536c1a7d40cd9d9cd7ec907e8abf4e66cd74a3770c2a7f0f5a276e7de29c8e16e987b13e4fdcb46bc28290e9c1db52da19b720a8ac0a1b9ee3696a4e9ba19b8be793a64da80b25c898d6397fb658b279181351f27855a4d71504e65d1e04b2a28b1ba8435cad4ac11fe44af55ade14dbdf855cc2d79c165995a7f3bce9a4cab96a38759dd72244100c38d14906fb8702fa399724167f627b979931c8e26d96a4be094656e9fc9c44d9f7cf9583bd7712ad55fdabab735290096e4dd93e47abb0c0efee592a4776306043b81b42d417c659a68479196c8e2d65899aa371a43e65bf6328578ee9e470f55fea5ce8f3900c65cb4d3b3de071fc64b44384aa82445b3a1115150086b1c254dd5e9d52705cd965dc7cfd16cbd7bd34012358efbd2ccf8efc7b5d8fa164fa46a7c1e5a0af4ee447fdc7ff0f6ca83283ce1d891bb820fa4c1ebd9f6b6339b36cbf328567b3459c3f65675e55d8ca3e08560d7aedd34928eb9eb7b4426fd57f7f8b6ee8b6aab3b0faeb25e24795b079cb1e77c2d1b1136891329f4e9bda4f1a26dc2c981870d2827e4369c56609d9580c05a9df2ad88e018d245e9e0510e1ed06b4344b71196b53a34a9e2f82424294f5ae4e95b72f3edfe6452b3769073ccbbcce0ec61e160a49eaf0c547d5ddef166755ef8258dc8d3b98a6cf5ebb5baee886e079a00d16382d99e152a86a874da750ab32bed00cb8506620afaed7411eb8ccea895c875a7dc7db40635cb68e532e8a1a305f706ca86249752251429a7cc174f19ab52a36475bd3435fdeb4c31eb432475a541c7f1d9c354dd0a5ae81ef04ee3d34db782c9d3a18e1ac957925be17fbfc030e40dd7a6d0fedae701621a0801749a074e0c4046739b83bd10ea14d6a8d30b61ff3d4a1c7393d4dc17fe600293881908e5441f8422f4e09e8af763e2cd9e3d8349cf8064de08f009a06e4fffe8212f9adc175beede54bbb1f28e99f13f04ff60ac1a4c447381ac068c018a60159ba57614c357b62b2b8ef1cb9b84e056ffa18bc461a8ce52352f8014d5e63032fad3f43d0cc114acb8d62c242f5a6635da1bb71eb792bf2a0ba957b609274c1d283a6efcb9b9adddd826287dceb589d39b4c8cc41b4cc667a8f18986b96c210895f4bfb80486a67c7e3f80d109a8f6fc5730b418d1cc64caf04a4a988c234edb0fd0b56cad3265e57c2d2b68c482810087d78802681d88c5868b9f2768c13307945933a7b652000b23f2deca0a8fe762f64b266fed6a7e15cf1ba1719e4ec95949cf85d46665c2ad3296ea7b702d260ae491490f6c728e1bc73d8b43b98e41a239d76ed9dd2a31cf61a5aa8e260043a8f2c7acc18d65204b5a40bdf4207c9fb068647b563cfc23c5e2365586227f21b0b34a8223b41d3d0e20130b8529de01ca6f3aa66b07e91f48df14dd50f5fa65feae455d38a65ff490ca764fb6ddaf55f212f5526368247242446e41ddedb27268a30d6363645423e8709383ea4a8fee3b0b3914423ebdd295cd1394a0dcc744ad15116935b1524fc79b89f628a70015717417be5d57ab90fec58d5bd50a90e4fefe261ed75023928087980a603318ac1f5ff6891be900505e194e23da27a32e81188077b1b18662a56649f0647534d9a938fa062cf83a407bae595ed517fe8a5df2378680425a702007226927916ad26651fa88a51f0d76959c93b659b554c25c25715996342838b580d4a262a184b713db29fbc4097e0810f46345b829d550660505c9431c66efc60b718a9ea6ce88225ac311caa43b3a8f81c2b65c68296bfc06fbdc846470a62ed89ef1c177f4e1ca3251f0d208ec880dd8d687afa3d7e6fc7b987c8559902c8195eae1e564a5825bb037592ea9084e798f1f07c0b1b3b702b8a6843b1f2fc7b4edce7b11208fe11d4a146a0e19ee0ce98127bb92282f108ec2dfc77299665c01216d29ab8843c130f42f92bf1b0abc529e419bbc01f5fe0a0b1d0ce60480abcde2d929a4a366346b92880358404a02b85094400c1296361849b67eb4acc4effac0540d621632b53a457340724f7025a3018cf28deb72662f13cd1a9eb977e570fb0a93055e8230c700efeeae40022179cf825eeb5dc03d78fe56ee77107cbfd26675d621cfb41f55e0d35160a12a84eac5823fb1eda80a0e37c4586f1ef65ed876e7924aba0877663182fbf6f9038fcd7d82eaef7fa2035bdddf83839af987fbba676b628938fb5159e219800bb050370b3bf2afc8f2c258235b1dc4d99e60428ac62facc987b6a412766d4f3c5edcbe6ad67e0bc8528511fc504172293d75269cf84435fef814e85e2d93215a01eae9af0cec2d409e336845126482bffffa4451188882fc75a08c59cddcc1cfb15019d34d0d76a76cbe5c02905f391799432b610a7e6259a373acd20a6e36eb85f4db9f8c526bd3645a988a8025a856fec51ead03fe40638d44ea134c0a5dbf57b8332215ba20008585344d81047e4ca0b1d3b132b996e8fec44a55ba8c28b9f412436d63b73d99b8b5c167efd6000edf1a58cb4258ef3f1de22e6a30da3c0d7c7a5841a5ec4e240474b8808dd3f51c00c567dbfccaeacce29147bd1ff433a3e40472bfcf9c1cf8574148f3bffd4386e62fdae7f86c1913c481686784d88ac9107ffe228e7af71e63bfff2730c74389faa81d6d7e1308a5fd7f88b432a6f9508808ac799dfd2390d1a785b0791ce737b6b5c1ad4137b0acdd39f5f9e224583199efa1d37ff1b69da75e2b36b943c160aec6a4794207bf8ac8b44be8146b7048aee2f884c40567162e6144c9d7604593730385a803179f8324398b1f4c3837a535ff9afd16a69ee490f1becb66d1d045fa992d0ffcfe5451fecbff4527c89ed25531b94df33c1a297f0c314e467e02e8cc1c08dbbccb394b17eebc4c40b0e07b670f38ecf59ccdab43efec73d674b0cce9dcd614168980c610a6d33b924f029c027427bd8fe5df703bbecefbc875bc49aa24110fef0b90adf863ccded091d0bd929f314378d3bbc6fbd05589ae7f472b6333b337fcf0dc83de819c32d14f6bc9b8aa048f79d019b232013522bd2f49ad6d67e56b7148239db1bf8896c675bd1f12256b70cde5804ae9f60d13d217a8d717a56da5d00f97616942047719aa98b1bb94bad9d7fa8b980a3bd574dfcc94fef0f804b63a0aae64c4c6f74b504985ceefd5f374fbc29a7b3bc0b7048b40d4e8fd2b52de68a91f73ca0daade64de49361f9bac093a42ffca83398aa3d6c8b2eb5c3e33ff70dccc65ae6f90424874d54a89794b644e11c64a9e07df7b446e2e919efd3d4a185807425763d93f7f416d54748e2c56b42dc5efc035d300cf965ada12dc62e6ce1f3e38f0a413ac8d0a6219695c3b554e243c1a2152a2aa59aa38c7d0067a890ab2632802d8d234d6dba718f38bbd29d3d9a67a7c9c5ace806c2a3541725762f5ef60753d34c7fc407528622bd61dcc16042838dc03fdb6f691df14755b75c6f744f84c54a7f1daf7975a1c45ce397444dfa7b9d4a2ededd5d2d2c4f8ac1e35dfc1ffa25aea129aa61295d9e11325422f6e0aa463ca4a62ddde689ca6d2ae4f1c92e51032b42d6ad499be78436d00b4502b0931e91d421903357f624b8b35652eeb3bec9904094b3f184095b242bf10965d598584fd73168a8b130ef480052763e7572167aa834ce80d8e11f9807ed2cf23b6ab266b1e3aa6746656ba7b4b56eaa8f1ad15969801bcc6b35ffd86d95a0688ecd611cea08a95cc98cf04cd5f0c87d366964346b303d1eb68f4cae75043930172119abd89a5c985ca2ce9d70d08c44e7abaef422f0529c171191d185f0d7321cda7bdf8120cf520544f10cf8f4719ddd68cb1292caedc14f69e4ee9c17f6946d119290c19156e9e057153e4e0caa4d0eb2564694cec93584c097f9d6764334948c8ced4171f7c2c63ee55eb0a605d8d5cabd6c9cfb6a8e80a594076baaca69a061a41051cc1595b2d6c6b7bb031b250208160791738a9b47dac1e7b7d2bb79f3109c0b99e04399320f718290825c43df78b58343fc2ee278069fec5693e6b09c02a4e0aa2dcd77ce9e818ebef8942cd881da6e8f190e6323684236900665d6ae1ab377f67a576f5ee0758e380a5a6512614fc16f63d7833e9681163752d4fcf27aa6abe0ae4152af252875e3042a65ef8e52d44b4fd19f219f3ee29757dc9a15212f7c39ea27a6c9ab3482889f1eb259941274fb22f8eba45d463640674edfdc739192c50734b5e4d132249548eace347a2c406041a25097a73d1d49b3eadb952b9eebd63705997c47f6c306568e19d6d6388eb06534a40da18f2eeb7b9c7ab3ea6c045e79353a84cea4cc65d8a6829526f9db390fae0666badb4ca1ec81fe85bcc4b8a8eaf7c3859d35571346b5eefc8531f559463fc68f0d97f12e117ffc4588153d0f7a9ad069d5d74dd9ddf82891c9f9e39025346270fdaa81310f6bb936c964005532f873feca6130246451c2346c377848652d95249e3329c000ed3b6f2dd3adc6d980eb3c849a9fdfc222b63a4e619cc83240a32cf90d87c2ec2f911e00a2038a5a4c7e426fac4e94c713bb3653a3ae6e35344078b4e62a35166532ab4fd5617e90f8f85240ae23fa7f722765dc665585b85a4120beee51956a116b7bb178dafc7cf46b39fb76fcabacb7534a3ad0e05bbf134db383cfb202a4088e8784fc9745e8874719357d9c14b94ea1f4a8c6748e007747eca808bdc69c48cd3905436a92d032ecce9863dfc8bc90aff3a4368adc203a981da864aba7ac830a68b83bb14317c3281e631c7c713d9600e7cd54de728cef31214912bc2e28f3846f999457cca441c004d850842067e8c1d0878fcbec2e41b56416f45898a922fa9abf4b0f8142ae2ee69d717e6c6a22490628cfe535488928b3651151b6e7fc37cc16c1c02e9bb22771503728ff6760a0c3486c157d339518126194ed31054288245c99608e412f85fd6328e82e82a30d8798dd17a04cba9ac3f2043f5a7fc250a8b09d9e8fc946b6058faed4e64577212b87bc555268fad7d1cca3cc94b00f5df09b8306a19750c6097963d9cbe2a2f8d2dc2cb00614cab48d3ff2a3d4a0058a01ee949e63193b86662c7c642a2e61545fa7d39ba92b306202624529bedfd38f292a2d2abdb117ca0397624f172f49a70a8f6f9280c6182461d9a01d48eb99d30a898a29d0a5c8818eaae1aec4b58607c37133b495750b1480e77d15533f99768306d5961940b2237dda5ca6d73f8a46a5807b5dba817dfcddc79336710c5ca0879119f967cb84b6cb399c01db1815170fb00be2dfea844bca0ce23d7bceb876d343f622e6b1bf929b949b719de1782780f32fca8b1a49953cb04ccb3c73898de20203599fb47c6e9b873d32dd3a58b6173df24d1e8683a4f2ee346184ce95cae5aa99d67ea87b84f21ff86bace154862b975a4e495eba98149b55f31268fdaf65de0a7fe490920d465a3defb33b643b48c4debffdff838290d6c337e20fae8bf202687259e75b365900962052ef404c22ef1d34af8fb119bc1b25c601321def3fe43ba807509c5fd1e3acbce952c7737ecfe9acdf4ee0699c75152ef6d8cc4e5bd8bc8cb42dca8647469cfa5d72f01b62173e7c354af5d350b66665c82c19dd29ff743143e7c724ce31d5c6f6d127c0965a6e52bfca53a5a037c731684969f4dfd8395f739922535cc05114e4db285dbd1f5f14e7290b5e4335cbef5b7c86124317970a9d1635675e0736e6edbc913c297059ac88c0393770cb1b84743ffc178c2a7af37a64fee208518186c0b2ebdb62b26cc42204638110aab27c8447c5a8fb1ccf9a151d4514d6ee0b857db11e51708260f8ae84f8827e7d88bf487366e6cd310a82882a53a84f2018733403c9771993302eb3c1ccaf6363932348152142702967238c85d36b4eab09ca2284ec4156f6710876c36cfcaddb86f5f100ea42242c3266cd8cdbc95538b7c1c1a6e13dc24448add992ed8dde8493e31a432f5a80e226f0b63b364c34e34f82f044414e1b381c21c914718e14d69c7b9f52ab1d3b1908c85c265aa80edef45d005923b5042f9b95b281cc036f7d972d12a04b7197ba12da828a25af6835341f491cb4117e876a21c155434c889aee98b5a3533f1693071d9ce895792f7af21987987d6a8097fec47d91d6f130ec552b8478ea34ceb6eda96c93564a27b4d3813ae8b47fc588a43ccdd32aaa48f5aa2cd3383c6d4c00918fce703467f6f4825334c68ba74ae604566365840b483978049090034ce41134c89e324fb646a80dc30b57ace856ba2b8f6c15a071533ba3a584fbef62b0f7f6459fc3685ff7ec55a2d511347a9f43c5cef678eac4583e865831bb819d5ee9029e628ed2ac988e58f22d2fece9bc67c7b000cdc1598d9b592622bb86e4e78d10e637e1a06f6300cfef8850179f2cbf96a61150cebba8525d98886f1dbfe2674e86f84fa5d5fc2902e481f86f93eb01ac2e830fa28076a2e250c245361b063e4e503b511663c99942a77c8bf5c182d1e2207220cb4aa88638c42d659d9727a02bc88778735003b3a1a96fcb0f1fd71a91ffd48fc8b376eb3eba4572d866497545e1190c23c6c8ca322d3efb051b4ee4af4518cadac5dcbec091c64de6da0284fd5c14571a9dcee7cd8272a564d0bcc92ac55c1bfe763f1fdac117a47d8007c15e01f9e2b2f2e6cc8de76e1bed95dac25459d69da0359dd0b366dcdb16ae9825ff88678f4b4d5ead5f6f4259efe493962219018ae29d0748d092d3b2822e0ce353e56b153bc158a10ab20996b986ce07cf5a2da3f02db5fefe1dd468129c742d303461b6c35d4fe06ed5445e779df6bd681bf3f83a19e75da77ed19e107166b4cbfd71ba648a44693316f421fc730a473f3c080518e8ff9edcc589a01714a91bee251956d7acef265c883c1e560989bc33c4666498c44bf46d5ae229385fd66de5a14c318cf64d070d705578bae3c38c388395b592f57d993fa87cc25e41aab8f7ca88fdc67ec3eadc000ab832be4a28fcdae75f1ca884ab9a7b6d01628813d81730ebcfe0c39215546232d2e7af110381798bd9cfaa57dfa1bdda7cb67b03ecea6cc51c359217fc3bbd6cf1869a3660177ad9af53df44de0240311c95ac1a163afc831ef1b83cc2ca04793f847444fa1797d26d9bba440a0f33b8eba8b680fae0135e6b6b6c5f75641fd3f49d003f106827b02a70d01d0b0ae1dd597e8f0bb1097596edca783e24130a72141e33310ccaf3f7092c68a86c8601ffe0e1f9234697bc1a6e8d59f406adc187a5b5cff18c6070f8a449f4b3df755107021408401d57715d51c5242938f22b1876722d9b127d3d3cead6c850036f11770b4ad0564e8ff829b85a6a31f05961e82a3d57af4ab5a93ff540b2620e0e75868e205eaf2bc9af647c645d905c7972bdb5b9badecc83d088fe625eb1169d3b92d93900f92537fb7c038f1cf1b85124e99123eecd2ea1a16ee7c1ba8713c72655cb50de4b1547a1fb396e6ef57973af2edbe8cb1f635003d7b375a0213f87ca5910adfaa709561bde8af809fcbc95407a8cc0a22df3422e8392e5ea9f14d38ff3dd1e80fb6387356e8d75f894575074985b0295f63960ed61ea908ba8ca4af139cd5cf1623523737b14bf384045f1771dd46d00520bf6c2ee053e4809c59b2fd66eb5a7124264bf1cfe09902607a75be0c346a1d1cb3b91ec4bbc853366fbeb6c43b53d2dce198c6674e880087e836515256146be82d3b8cd8e2717431bd3fa9523092b3423eb89317b437fe145b158f49b7fbdd2079db55081776561363ae446b9e85d02554f19161081c4157fa39fdaf901e99ac7ef4733fed5651523a7a3115a92c7ab3de422fb3ca3ffc4d954f7c04d02b14a191df5448f4915d2b76c3138c54ede8decda9f4d6f9d444759e4485847b602ea3ed5467103a4cc86cd923413ea37f5a5d98386d7e9b83fc8dbad4562db3a4b9b6a823be89e0d39a14a4c706b204d14f215a53236a9d43e48b70203c61a26adf6a7223d6c7b683e214bfc6f865d1006836a229a2fd7f3ad4399cd9845b3cd0317ed86858b54197efad92550ffed3801e98b3558f69d48a7f6b9bafa6b0ca4c343cbd3efbafb25917414481cae973f77be92fcff46faea09834bf12e597096a6bb533f1027a5de8822eb02ebf6a93e80350ca4aa18aa11b5f1544002377f2fc4d02d76bfad43609a96e5f160c2701f0350969d4d63b54a0fc4c46de6c150c5453333d6cbfdcceb7894e3dfeab04a179717b59ecbe29c1926dde869cc592b59689104adb5c275c742094cda372741ee7de156bb4038197499fe44f8ea32a03d78edb6aab0a3e0223883a7a80b9b66c036070f85ba60c233c6cc61e649ae13cb37bfce256266fca18734c482ec9ce931ae5dac988d82360ec3a966a53216bfa5a9bb2fff54103501f92337111edb838af7dabdaf9e545fde8e829d36c4106e07987ec0ddad039b48824d5071578196c0845c5bc223dfb5dcb2c2101caf8435812b420bec73ca0270d8f9b8c0a1540392a6a47bb5ded2687524787501a52b8813b41f267413dc05b1d6e91c3de5678448dbfe0a53e751e0507e7859eedb95945f1ec9a93130a326075c48ddc683268b0c0b301748df4987c9a62d4d32dac517c4ee5ca0d21769d2d996fa70605569b84d07ed235871686a7b0005fa950985597356f3df95373348b8dd42c3de40c363c7bb1f3a5e93688dd8da604709c7a761db935940e8cca99dee0d2cebefe2a477416dd71344f46f15381915c406099b63b7e87520b5eaadc1392e8cbfa55b0952bcde31fe278df9001116faad5082a667736c2c7987f09b02571c80a07c83d0de79b7f7327252f11bd0c8e1aad2cf6561b8bc0f3dc226b9cb285f31df0e27f435a03bd054c9468de0e285571736e3abcd43ccf0935dd9723ac192a5340fa32cf358116b58dd698319aa62d6c689b4172f58fbf7250a86bd4d28a722f5e47fded680d3bd93446a8611d66a228433f2a84d193eec946a2b61abc8b7f2ffee6014ef1e36ab8d300f1f03b668a06bf3b36304fe187202b9629acedc0aab57159ca4ac1044d189ee109b22d05e53b50713f1879ba22a9467ebbc0adca3c9c83a380a76120f83e29e0acbc366fd5e6fe9538dd46707f98ef13f9112c067656938f8d233a2582640a0dd73a0fd727607cae3e058d05ecdf3ba9c0655e084a580efe60166efddef4dfba01644760b21984cd922dd9f9f8bfa8468ad11244731ab770e44d18c75ea4ce32f8e9be5a88dee24288d0f3f37c12e6e5580f79a1214878ecfdd44d72de35626acbac158f08026af40269a605eae34c9d2b5279e736c462bdfc5b9f747968d8835f620e967b2f8fc8f01b690920cd22fa5f2f4c9162b87db3732b12bbd7c5a281c6e45a451c051f44d0c208c856703efd00976ca68e824ea73a42b79f2660c93d8f1f7bc9079723eece362aa26bc99898800704371b2db32738c83acbb0c612ff5c0de39a3d3bd7faa0355f98f7879310415e388961f0fc5e0d414086e934dc84f6ef2b2c72d7125370e0a00929c64b9cdd3459001e0a706b28a492a9db44f8a98e9efdc20871443c9c7b6276841f8bb430fb3a08b6de7797550f6a018fb56d60a3b6e2808090ac3e27583f773e802a5bfab854706b29d151e69885a1c29708ceccd5e37c0852dcb322f1cb1cfdbab45138f680ec6b83e08358b1eddd0b8bc202d2628c1912b40de274ab98d802de870042d103fa8c4d7ab32cf1ba04acc8fcf385abb7000b8715808049743416f66a8601166c4fa64e4174712913a655f8d23d0b3086711eb192c0ae4cd437bf560cf9acc39a0c35cc148446a217ce0bc241ffa8547e323ebf4232d08d6638946a2287b69abe598b5fa17ded452a8fe72528a915bbc2bdceb4b74495161f831e2cd3c18603a1c214cc585447795164261b685070371c211ed0e6db53d6b723c064a93493099ae20b321953a804d80c803ff4f42096c9485ecf58ed0bac831e1ec69a65427b140fcef03ac33175852ec213110aae3e8817a230af42aef8319b3ccd9e4759d57302ce27c16a373de9e0ea637cc363621739870c3b1003494ab02d692b5ed101a4674e46f4a2fa43312dc155e6dd037842a51b4258d1d3282ebf33a1448a94b536ed30166979540b6194eaa60ed5feab43479d7240ea233e755dea98c0488f7c28c2e80594cb1a35478c1010514cbbe810768c4669f9a699bf21ee229cce1823d0d080ac4b25a0341416ae5631be9ef3da91b62bf21d2fb60a9a5f1c988633aee74cb614c4ddd1fb69801bc641c8579b724854f72417739a365d8d4a2c6abd516bc7a29af443b2bbcbed8178666de69c7f24b1bfca939d9f6051322ad9405c79639977096bec8c4a01242c07267cf127d132c8321437f64af53a2f542156facbe284c2f481aff9089f2a3e82e109ddb94e354aecd7ddf0d33c697e6276e6a108db7a5b7aaac1c43c87acbf92543dd56a9ac113828538559ab3df17f8eabdf33800e6b9e2bf1ce84a2df838c6281e5610795f059d67ab41c111aeffe373509743010eea07696becfd26460f42e9e2da9343e8b6a380488f0150922990bc831c34442e2dbf214b3a31d587a6bea41d37f253eaa84eea3cea8866a22d476b20253302027ae986f0ace9cb15fb50c915e2f01e0851e3f42569490da0adbe6f72b434bedea86d3970f28ab85682592a066e750d4fc6ff5542e10749952abd66e10efecf42d8eccc24759685bd6dc5354a00c90852554bba59cae05fa4b6d7dea32edd57d03ad9c2b61e090dfe4090159d21df2d03fabdf7d6d6e4d5c322621f305fe36a2cdeb01f55957025b1040868005e2e9345d12740b50c5b93d77d19f159a4570450fe2cc09032a97e65bfc00fbfa439c1b08695c7fd8205eba6e300888e400f8e6aa0536b7aba8857c467783fef891d8dfbf591693bd0108d118899574ec6997a69e1597e72db349161b4ea59b2969b16317c5f0e991bb0e3f641234652455e79a94d33e900dc62be124f6595c0cf135aef43bfb683b5b2086aca602ec082adb2eea7e027c483f19e139f3c8c68556a47e86071e2a04a4d97a70f4619a92e214f34995eaca3a03c97d0f2f79348c18f22ce59d92a49e7850c90e4d5b2d88a21e9cf685e4ab30f90c2066d420165cd8ec320237c3cf753c85e9d23daa7a89eac386f0180d1f4c959c8ac4b35941032aad8f882319ff4922cfa9351739ea35f62211db0e4b88c993303804fd818319050e8378258b88fdf6a15fdfb62ca490500f8f8af3f823c5628ebfabc27c3137f8c963093adc60ab406e850bb61dfae32638de7666deb7b66742f1206b03cdf2c21b7546092363c7cfb7c78101ac8f9ae172fbf36e889faf0cbbd7839fa903b44a9bd74fbdf9d9d0db2275589ffa6029f52409b29af38795650462379c668ff0b9824067c0d0cfb087831effc9a5c329821844d9a2ad09f510822d8898ce67752ed152a884099189d33d4174fd3d567076d3ffcd24b37a9a6e9e2f29ee31b37fdff5ef593967b346b8e550bdb1a283bd2ed13d8d7dda7b9bb5286ea376e015b317b1cf74b3fb08c6691e9dfcbb7dc1321593eabbff44c0eb1040c227bff9ac3d0336a74960f6fc601a6d27bb74ecf7bd63bcb6299ecbc202838df700548b00dfb0153273e218ae3c2950cfc58730b32c53ed00470b6ce07188ccab335eaefe4ba152b729cf6a7050a0463d1c90ebfa2538066abc97ac40071331052c88364130659b884508df371380adedc4d8e5124e6a42ba65253af0644cfa517acb2b9470ea8cfa131410d57dd722d5a8c887ee08a557e4308217c182a36a1e43a31f600e6991812b28396b905b92b79cb1aeb7c8b73da211b8f99f03554d3f6acec3dfd8af1dfab6993977432bea976c182f8b9bb16b09ca41f57904d4a1d13ba567ae79f0981e89a78d629421a2d07bf4fca5537ea1a6df773618f894349585764cb0f845a9564c509390e2524a0b34ca91d90bdfc963e0f69e7de8a6920caf0abb05c0d9af6f2cbbeeb668eace0a9f358ca0418be0532029c284ad0310a85b0e7b8e4e006621b5b6a0f0d9ece44128fb4229f2f3f9d4c4b2ef291963ec81d2522bbedf0599da691ffb3c1fb6090d845a921806752ea80cc7d4a8fd41b95c68dd20aaa464b9a51d9d2e1892400ac86f2250b65f8db81c1e719602deeb239f1360d47b25c3e8f4d35e963a45f2d1d6e0d36fb6b0eae9aec17c254967cb81ae1152cf85fb0e2c856adfdd5c03380577788132f832df60aae1b31825af8b02101ec2c33125fed6d2db157ce1612de86aa9bb92b268eb0acc2df1cb0ae965930bed610693bf3707c12d41a2d04188f280a71292b78724f01f4fd06e77c4ccf66869ccab42b8130ac0121d4c690477fe0021bdb0a181fde0dc7701c65d31b4c8a0109aebe128d73a052776cbb3159a1152bbf51986c755b6afda974d1008a8d8e426e12cc14f260e1303084025567537d417a45eaf83111660d382bcc91e61b41eb07f9a43a583fb97a12fe95225e38e73af7b2886c55de1f3efc45762bf5a365239be6337c77dcb94086885abdad7362494edaf4b0eab553ebf4401016c1ba86f3b16e8a3af012b777003d8b7bcf6b28f1745a516c413ca8824f9bbdff5d26685243870573eb05aeea8d3a187d82a3da46ad6e789351636e4d6e34adb1202a5b52b86fb48609da1980bf621045f33610883659914a1653dc12b3c70e6cd302bcf52e127b9b3599a8645447a24d1955b87561e82e4c410bb6c522b2bdbe756fd48ca15ca0aa938a1389282de6426d4c77f581bed84c387221e5f055141e744389c72eaac24aedc37eaf6e66156d924c02d2298e585bb9d134ad77933614be395154ae9835f2ff90a47a601014164ee29db285ea6aeea90c18cf56d998f165447d0b5c34e798042de784ccb1f411f8f2376caf19bf4fb111ea79e978cac40a5cf58449e22270ac226660a3804b4c988229512ef412939c338836949271d6c2c5f2c267dd355e5a40d9d416b9ca8409e56ff92244200e44a6bcf238f340dc4fa6bccc31d9478c67693205f48df64408070a8b4ea9faa097ae07878b7b025fcbbf02655938e59e31563ff466d0db889cf2625413b602940e47768d161d5130cbef7a98f37a4200691188557ff17a40192d1057f5e421b7e5894cdb8b3495bf2d81ac8b86bdac0bf8bfe9b8a9680451d635a9a0ca9893d616a09b9dd51d97e7d26d3aa2577918085af0b9d007360aec434411e562c29744a55bda82253d4a29030de460cdb7111c47884585f9d219857c2a2b0fa20d36a59d9e5f81a0ecbb5c6e30c4ac358ed15f32e0a5018def5886b4b2408f0fe39faf08d6ddb9cef2fd81eda374f27a9ebeab53d9454e43322fb3df87f5988a4f5c92cf34c723fd3603800d4d2a9b5148a8f8681793cd15feef7cf824e8f5c27cf1515c578927dd1e3481401b79ac7e67ab99cc53cdfedb0736e8e1e3eec069de6fc98014751c7ad952c0e4fcf1e1e3aab481b1ee67b2bb7bc9a5f38e3ad908071a3c49f6d9ebb926d6d192017ca3c367889cf6f54193bdc2f07de98f01e19f70080b2ab96589a65e1d01e65a24459b79483daf6a3bb9a66324a141e163f6d37f9f477551fd7615d4a6b01ccfd41f1265e4fe72de882042153e29a48f5ecb4418c56c854f1f36579eb8bb0a1ffc94bb5c62c1adbb42df4c854f52d59d81645ac5b95d5a950ba30011dc22a61d4c66d4769b646154f85099f115282ce721362c995a6bfe6d7d45b14060e15f213d967548d668ce7206da093986c9bd746574d0969a6915b1490f3afd7bc685b8debd5f84af02350cf2e83dcd23c28b59bf9fe549543af91173fd1bda7242af2e073265e6b300f4197f157b3dc634f14afe40b8925c0619e19ad32ba0fc98cfcb717908e7b7026e20136142c651c6146abdc5387e6a46f9e4e2bab6772f4f970a0a3ea10be2f911946e1eb30a007885932b72018dac7b9cbdb50b115af7f481974956882c334bd1e22d2872de287609ea9e38b1c979ffb256ef097dd3e419fe142357118a61e491d2cc5711e7eb12bf85168c619816b3e6b3fde23b67da186ef283b09e6cbf8de394a5c564225e1753d1ab633a0fbeba8008c77af937bd393b2f253f0cdb880176331983e72ee2e43ec0e3de3522e57d75aebb30c9ebe48e8a9576dc5597e56322596e6071c41894f2208982f4783f883895a502b8a8825bad08f4a9405bdbb1609326260f6a1268276da28986199a55bd331351b1cbbe657fbeb868dc2e73980c3f5fa217811cd0bf76b1789808f6ae78555417c17bf4a00e022031d03cd543f188385eaaff8e2679044b6913d0a9cf3ae2870f32a540c602fd46672543c803753538dfea1e9b569856774e2dcd1dc38a8a0f2e802f7c9dcc3e23b1615fdca45358320543015a7f4b9975c6be2e0003416505f29aa9908080efa3841f1e8519ed31638b66ebcc7c1c53e792b7c035bfe287b3af524d17edc59b8a90cfd90dd6cb53827c423749a40effcf22d07f31b78221c1915bb852f783b3891a8f1f13c91f32bcad91f728fddd8cfa624960e87748a6a6c70701041fe62f6775517115211c21fd5eadbe7c2c66eddb40b6a79562106c2cb28eb9906b0a7d76c96b795ade983bdf834e3ae4f23dcb5073884a292048322b82faf4e4e569eeb2f73168845e143d3773e346ec1289541f40217ba5d87b998c3796ae8c98fd29392bb176110d6b4b950e93c37832435933366b434e5693ecf84aca9e9fc9c80d2380c111fab4b5f67425c32384137a48e08ac8684874c3f62c6eee8dc8547a484e68b1469dd215811e905c33caad34e44d0c21eeec26ab94f3e65d5c469dc4c6a293ef97b710082dfb0ba3e902a583ec4b0ccb49545b02414acd68b90026b71b94c56aa510b7b4d9041a0c3077a5d693841cfeffc1ccaf39f24e7a4166278df813dddf5fc28b64ad1fec3b3f37df795810adf4f6db5e3a1fee12004133791b1ba38a7c8eb47ac8e271c4ce40b39252fe72eeca65659a7cf7f290da196240dc9b12d93f8c5d0f5c477187d6214843d25c9c68a30394f30655ff2835550ab149251e0950a3574916da5d1873e49be21785014f88d05d2602e23942aae9a40b71055f56999f2410eda0ce080b5c246258e19d00ef773a621f3bc25ac8f856b5e7c3981c5933c7adc7517a034173eb580e864d3e25a54b5bab2ecbc2443efc3593f2b02554c44cd3865fad6d04b6b3ee903024a60a682e91ab282367d63b2607121fffff2e86621a8d810f2779d09ada14860cf5c7e29ebff28ab9490a3a791dbd67121df86e4dda36396dd332259d3b4d1e7e3e362ef05a4ae44e19a959030fde889512e00a97ebceefc1ce519737210dc31673201bb3d759f97cf7a9bb269e7f95b0bf5bca11a268f55c51466d1e2938893baa4d169202e3ee232ab06b4646345d0302570fb9b11a68b9c0225b8ba683c21581a31898b153dfb465606869ac06a0794c6152a2c15ade1fd9d280ca1cb0378f49a8d70c25fa4c3aa46afc1c51f02225045edce0bcd6df3c10a345bffa69a33ec46876ab936c75ad65ea939e85acd901f3a800e8d75294df785b134b4807eb79f115c40d8d543c74790a34e80f427136c3c1a021a7237e88a35e119e3a3d4e90691169a4e8f7125e2fe5ab07dcee4deb7caf759fb6ea675afe6de164256018f35b3fcbc05b51f691f6b1e75bb3c782f09954f212196df7578d6d91bff70a58cfb755c135dfabdd025e48773e6c6915f74d92e851cd80f715e316ac51e73cff86308be14b7fb76f3f7b31556fc27809455c3e7585917cebdfe172daa97936a22ced0f9c41c323708c055c9200e2c84afedb3b741f38f8c158baac84c980ade4b79d76cbe278a48430f792dc871506192c97d84df9e0a13b78f083071a0c4aa5957018f0d57fb7db2ed8d6eaa824783855d8dfa8cd0b7156a673220ae56259c6b6ffd0056b3179135a86d9c46a71ae7e1d5e3445dfcc7077d1b47d3fabb03669fa00a1e60ee80cf781a7137481ce3606d7a0d371c8ab1c6ac0d24a409b9843277bf80d475085a7d1ef53085e5971a96d614438abe7ecb462ab586b4e405bf771bc55df645cf97b46372dcc0a386049b4d915d9a8c94c80f4675b86b5df9c78c46d4cd6f204990d03b88507fc64a390fdc8031e3c280caca9a4a9f8f940383337d0bb839740f02c0d26b9100b0501b6f39dd0239bd02cdae1368a6f86129c48a80741e692910365cb17063aae02145899e91b008108565cff0cb8df621448c01a8d8f078b814a5cbac08b492a21c2bd4802cc1e9227c7430713216dd0b9811008ca1a745ce8008751b54a05fb4bf408c9dd2ad0d6077a01aeff6ae5fcf01546776fccc3ca1198d98b3011585b6d985820fae62f24c9813dadf305a53f1746714c80a120de4fbae4eb4d04db7493d64d8ae6149108c1cc2bdde10eb809208e9105f492c7eb6968e8a61b81ea7c879174e7f3c28b5252b9972f178c5c033c2ab5602b57e8072cee15c9fe92a8eaa35afc4a18b1c6b587c9b072fb5f0c72be93920919f221929b2d60b25680fa3b5140fb44d6ef4bcccb532ecde144ae719a41591020ae4152808294eaf134444d93af4546d161e7766b85f10593b80bbf2aab6959342f2f31aa3a49405a2376d66ff00874585669878096783ebec16a29a481f3affb5e642cf0dd0d7c7d2e4018401781bc9d5959895801ea33544e157d924938fa803008a93095518681a4f151ab898aa80be7f80b19b6f8544c2721cd9c8b58cb16ad2e42edc28c76b1390a76005eb458123bf3f00bdca7d449fca167f77fd1b3c9d5cd68c3a8dd368fb7e3343ecdf510c264e38a3099280b8da39f683808fe7ca3b85237955e6d334a7336d9b7f59abc48425bc6591efabb74deee630c1b4a36b5eb2e019a5ac090a96b4c38dbd1c90fcf8eea7430ed3256055d479340a05813b6cd6249dd8b0347af1263902bac43ad9108e6e0f327906f3c6f75443894ff24e7113554b29baacd4fe4319e0e3f61666b7b7e2428b91e7f672650a255a21e357f4f66817ece1defcdb7a04fe00ed05f264cc6edf428e3c7f65b86d93398efe41c14dc45b35675940d59ebb14c04152ebfffa193d5ed95c961965d49d61bd083cecaff3b3c3165a959704b7ed90792a8fa7f278a48e4dcafa81f2f6759f698899b841a94a3a899e3503adf7b903221d5f6ee0901523971d7b962b860f41eacca25cad025aa4e50addfab7537879671fa6d7b8c646184fe81a0dacf4c291336e3ca5804436a009fa472e999ba8798dfee64e6f9ae29597300161903c8043446338523cb80a212a05a0d435e33e04084fd5d7d0ad882de7b90f2050a9d5b7e994011476abc1680a1cd41197fe0a1aec03f80ae08889a9736d9024d694e977a79bb8eb28847e6eb37f10c07932d788a6f38323d10ae4a3a2935090a85522a13a3439db5f0ecf86eae0110dc064faed1bc8ddd6b984798fbca2e48187f8b07970ebc4b52d4f420b33d5cf80a91fb526ca2571e3648ab41a8c8145099cef99e64c4e739b123a8ce62eb202a9d804574045af38a382161de4c45aa71bbbc40ffc32c89d3286227fa654f214112d5390231cf346a331c28ce7231b3a000f0d58e78c5c07cdb5f9cf1b41c9fba3518db8f4d2ee4abe126c6d276b90f89a383cb392603b9dacbb3ccd9b6c27f1af912e125759922ad0f342a98950565992222b58e3b1f58c87557ab7e1ec91b96482f42f22213d2c0cbc089864c38d0c33fb036767a03a4d662dd42403f3f96ee0ec81d03d4898f158a6936a1d24960d08e1cc88fe93926eae19ce5b512184acc26b512ab52f10bc0dd69c42a8dec248ada0c57bb71aa368cc0a37316aaee69da617f12d572cedc53b722defc09ba91cf9faaffcd538d4675f73387c6b2f79987bb31f6573da9f094decd376e205799ed5f4462e8be09f0da3fa19094857c9b1f37f63f7726cffdf59228f11ef9aafe775b66f1fd7be33a323b8bd5f941d8f7f9505eaee7e178db4556c215675400e3f1a9fddf5f074027cbc3d82dc4c3900c65337304a162212e7240526552603e174ecd54e025ce172ff9a6cb3c5ce48204b27e3f6c2bff0d56c8549e37b8e44d5c49bc7c95056b94cc57a5e431a4a032a0314213657ec3b5ee75961168c29a03ae884d7f47454a5c1540da39f9ad8f930042fee2a3eed80773a02cb58424770ac5356d7c2088a09ac9bff3949eea89120590a791db23a6c578338920bf5f9f6309dae02e5aca91b9154582992fbbd917ecf49d78e2cbc51bf6a1cbb69a7b6fbba1840deab557633df00afa3c6664307125f610c26a13335649e06cd5dfdbe7f692fd3b0f75cbd5f7d4ff6755da2250cdaadd731b38074c8abe02e46ff5f8d57fa5d880b22826402653e2bec162fcaa61df39d6c487af5083c142463a5deb4c553e676df935516085a7dfadc97c05df6fffa3a8ff6a2d7b2fe2372e362f0c6a4052043329a153fa61b44b6f2d6dd3b7075fe2e382e0b5d5b00bf564690ad76d5de314992387471b792a7d1d5e1fb6ca961e5f1744b5932f64379f01fbf7e53badd7625e517ac38d4a58a7666f19f9bb57565976855ed07e416868e45afac2b2d527b664a1a15b6ee98f06855ee8a091e54f3105f64b360ce8f40b9f0803a1007ab56d39f07263ccf82a341fc16cbc9f943408b74c13b29408566710d9ea459b0ffee7ca98b577d9df6bf5e812a94f585515fed466a49aec5e8416464efa66528c95c9a21b9ea0f1f134158b188dd70d1740a4d47d20d783dd43e02e5d04921aadc05e8bc54e52533b653779d374084412f42979b95338d5d08290eadb04c8fe9293de7234dabf3ed32873860f0dbc4649355572e63673d65447771de4e3810b267c64545184c76c0d04c429a05c90bb1ec9a8c43bf86fa8fa5f1018bc6075250b188180bf8b6a0a8e53c50ef5067539e0e2b1d2cb4d1ccb52683e6abfb1319febbcf4623101565a8fb0552dc5076b78d341812dae1ce4cc0f27a5ca48c59683ffe3add4e6a2cd23f1578049bf3ef40b8ed35ce9e107a95732f26e81b14f36c925dfa59c65e401da388f606503c651b332ce43230834ee7418d6fc82d87e3f291210dc98c6219ae31bf8873c28cad26133eb90fd217bd24c4919ca5afe346452ff2be02444e776ec86b19cc38d80962eab9270922b6c0ab1d01c6977352856aebae76e443abfe65edffb82c5100bf429d41d583e4670f64e41dfdc603ff4bb0051227f5566e13ed0335c04e94f125fadf4d6c10101a64181e4398cc14b8169c6cb5170a244536c89beb888b0bb8f447f543dfb48378ebe50f0cb3db3c9f5ce3ee7c1bc15e5de6897d94c4a0e848e591e11a8b647df2e9046f4e7e8f876dcecb71008795d6bb6aa373bb842b9de7832571bc3111c6cce931f03575faa8f1cbc0812e5adfb470ffb483b8950cc4406ace851c2b9c000b813c93da86d76f3c6e6c00d9bad09eeb14ada9e040ff59888b4467bc114e50b636b0e82f56f6affa631890b0031100c2070b5f065fa2428b74765991e0484b8591fb0fa3e5498c61b3cd353749b60723a0981b8ef4c88ac6d9140ed739a0a50ad8ffc67e3a6b1acd28d33333252c8a9107371d32d92bec81b7ff190ed1376727c3d8668d763400fc192d38778e39c57af49f15190ee0e4b45784f8fe3dca9c10ca30f6a3fbe4b48fd570998f4037a9b25e836d66802e47cada3939158104ae21dbca078444080b37b78479a891c902f02f95b555ba54c1ef65b598b500ce1358b77e559a209c3947fe04e3bdfa6809865f4b1d742ac393aa4b2202273b9a1ca8c0f0d861521d97baf901eaeea287650247378842e53de396d36e2efb19da8ff8c80ccd20fba3dbcaf7c8bfe306cbdc9dd5b8d221a2bf97e4690c64785ef3ce12cbacbb814fd6bf242226f0812d9be6e7e09abf7ec0648ef96328d1bd46f025ae379665a30ccd1930e1760d41a9dea165ebca8856b9d3bf1cb8774236ffe887f57c059c423e831345335c05bcf5b15ee28eef4c0fd749df4b4a91a6d8ae06dd2d42de4ee9d50db298e7b32cbf7a42a330880901a227b93bdf796322599021e0706067e06953c43908b38b654501de44eabdb298bf3d3dc912707a62c950f15e1ea20c76e1fc7c555aede00e36cab5074112fcee78782b60ef9aee6795ead62de8745cfc3d5873ccff3b0e825fdb0e761a1eb7596a88a2d56850799981d3024890283508bc98f7190fc61bc647879a18162c5ca0629a94c71f5700881349e986c386e88381936c236356a33ccd8fef3c01f4f0450427c314912b6b4b435638b44981c347268b2b1c393dc1bfb1d55fbfaab3d54d2a4a23c715d35dda033565eb9b9c2820a6c72f8c1c35aef7633d070720347e9e90c8fa4a91a18142c68f1d2c5c90e585b762b89465347bab96131eede8270a1626bc77417df7efe5ff8ba31240d0818b219a6845f30d0a5883740c8b03411523e69a981bb0e6fc141b5c4d440035ffce34014d7726f2961c9b6dc5a71829030f3095931f42c22a207d6f067c3dcb735561b6d2c3eb0d9c82863c42a0d9b266dac8638755b523a72bc904a5e96aa3cf14812b35e79b37e7c1dae17776fb8addc0375b6d6c6c27a235992d8cb32cba9058b6b2dd11ea82f1c28ec17776f382da97f2c2198282ef14f59f6409d3fec1f7ea276ac2f59acb5925e42918242a5811a5133b0c421e284069016b4e2041143eae1c5c9901d55536ace588b773cb6b5e20fffc88085729ab6804891810556232bc899fce5ce6179fd5c70bf9a8a295905b00bc1af80d4beae735723c96f857b7e994e3950e71558451ca8f3f9b1f8705e7658497297c3b2126da5f8661b550fd4f9ff36e21c88e21c98251b4b5546e764937c6846a863bfc79d87a9bb87bb9166f748e0a5c55e1d8d7ce84fa34cc7185eda2f2f6d96ecf9f1d9449080923a57aec5621ecb3148e044d776b8bb51f4d2d6f3668b4310c1e2112c2ec1e20e58fcc2deb1ba02b60000287c7a2a3881a3c044891b0f899dab936313c31af8799dadeff43f103e48bb0a8e0e70204a7ae0a5d23591fbaa4a935c735f0901c41554683f4f00b968850aaae23fefdfe6007f4aa1324557ffaa46f7b606a05c51a4c2d65a1f67754448e2bcc7381f9c551b3be2dc9d085c54ae28524182121718845c9191c1d22503271d6c901cd141e5031a0bca22a13205ae062a385992aae030fb0189062fa517a6aaac39e38219008aca15452a7c509283529a219a8a28e392002e4959c868ddf01203191426f09291f4c40633322e6140b6a608013bb3826535e613822b3668d5e0c44d171f5b38f801268d15580f30585d7a58900136841492334268d042a6f9910363650b48105a2a1840171bc218098286386760512b78d95216430d60aaac9cf0244f42665471f151240b093a0c79a10c91ae315553704ee25c2909c205ca161fb060c02a2d07e56b0995285b149011b9c1cc6ceb4985a62b1b6cd94156c64c5754d795099d2439ca5c21311b228395dc1b314590f16afab2e4a444592454a6d8e005238820691a32b5e56b4a882d36746c45bd61721bc1865298d4139c208ea812012c6b78247d89b2c20e243c5d5b47ae5899a98036844a5fc182b6c385b11e6580b8814451b9a248050f0f4772c86066d5420d5e686e507541e5e801063664a72c122a537c515283982a334ca5f161ca09a91b725fd05ced30c3d48d03844bd78c16645819919281315031b4f0e3a9096d061dd10b9623549824c1398b622343e543871168c8be44d91ca41a4f528cc8305345cb4b9706494d88f4d001864b101eb6b248a84c419968d05033a38735655c0330020cca08244a6c38b16ab262d8560d626280f0b271646b0246824499c1e14c0d1f56376c7894068d170d625a6c98a295c3105da0c29cb4a12a82855a51b9a248051141ac783942f575230a8a892438f4e82149080e5a564a60592454a620e343d753d70f35b6b0b22e50066acacb112c6caac4f9ac7618d321cd8d1f92c860810102366406115770c8bcf1ca22a1324550950b5d6e2083a56ac8959219a8194762d0d221049baea85c51a4c2485999233b96700411c7aaa11459218c8f1b58e8414b8d152a5320d110d565ab8a87ac3347780c5e32e8a0850c0f4e5368ea8a221557ba647893a50d0c5d593a387184694d0b5e6ac0a9519e7d592454a6a8c0492aeb8a882366aa1890002d30cce0238d1522ca272a02c2bd6845918a114059b29444cc531394056477cf31b6428d194f4bb69c01a1e889be31d971fdc4ebfe913e5e77406fc92ae2858d920ea529f35391ddfd035eb9afa535b9372f980e82072078e0ee58c439f6c03d00a10c04c15aadb57eb58f821da53915af700a76508bcef5eba0b635d01ceafcfc942928071d85e2703e9872d05c2af8d83dc52cde1be5a0b554c83e761d37ee4a39e82c15f2fff7b8c84fd2a6b93b88ba8fc975c96159e2c97dd543989c5b3b6bdfbcf90202e643180b4138550e4c0003151d3650c951464c2df71595d8d60b514ab92a33725394aea892642ff7d5901917dcc6ede5723de4fb951b8b7deba07639b5db0a8204082567babad0309181502736682c5c5cc6d0f8f0a58822612a84b9a20ae366069a93f884068f02908624a9e2654d5a8d2b190196143dc4b2e5d0455bf67c7eb98592a70eeaa1164a76b4d921861b96dce04196c5b4e5158ecb5f0751b2dabe0ea2fd64d32a4c32d537d674ddfbb1cae471d734565696fdf15bcf3dd4e3af14cd73cef5f8a9145a5ada3b957a4fec6a15edb00eabe4277ab60f32f851fc8d894d0a506fb7db915b15c6a68fb844ea5b02f558277fd4db438f16a000a65b7c0620538bcf9e4c2d3e7932c5a1c554899b2e3b9f5e0b256a1aa800d96b8cb076f59cdae110148970372f6fb78e831653701a83ce2da6d2ba6c16b5c745e7bc5cc16cb14fa5b5b8f94381c6691ac7a2855d69574a7d6786918a954e384f640fbbc6c4569e4ce2ea30a17f4318d1871d9fd01bf48b07eabc0fac85a2677b400bdce5d013ad8d85102fec050c07aaf8cb862a0e735f3d51c92f688735f1041631bc743c650412aa8465c71df0a1f184aceb9856b9621e8184127ca8736c2020d193f694c8b7dc2472c5997e18860fd5be7abacaeeb8be98220208fe389c5d767748f0dc4a98b0943c7572f548180ee42f6eb867879540820f5d7187e756c204053610906c166cea393d15b7b5d65a6b714842a439902b537cee64da441e3877da036dc9133c7728e9979a953c4f8896fe8339e7096c2d280440f28c913bf2eba07e9bc5a189176f5fbc254f9ad46935aea8c914d7d6b1b1a075b4b61662a6b616b4dfbd4cc19d8e5eea408ebdebb20b024ad4e6d9651c743ee90a4764c74d8b187ab20151515d76a66403a264680c3ad32e7710a539133742da5dba9097ade2492135032f31596e1bc6b961d8ca0ab3b184ca0cb3032f5c662d18d1611566369c1c96c4e460849816cc0b7a28d2a5c392286640989d3ba3b92b0a2d7232c52e6ea61ec87d42e7c7877ce79ffcf1f27e5064c892e945aa94fef8fa9e60ebf57765de5789e9ba785aac0530b4c932c62acd0a960e3a5ab70c88354ab93032472ccdc8c116e9867c37658baa6c4d437c114249cb143750a262f0ae840002885c6b5531b643141b1f2f6cc962d66aebdf7b43911b4a545216735f7d05c9e7b5517df729c6659cc289daec9292a78ada8d71e1cb99fc626edb9f85b5c44542424d666277bc8267ba05e8e3153cf33192496d2c421f210407acc8d52f129cf0a284b16ca4c74593658a9b2c5352f4b2d19afa5bfcd9e2ee8f3d1468f37ba08a914cdce6e3da91ed1ab4e9b89226d024f7df2285aa9270d24cb1adb931f5a1b78e2d769b0bc72658f256f2bf37e8da41ce42d824a551a4b263f7c9eeb9ae24d9cbe453aca735c16207f24a9e1fc5b56d1f58dc59132a7651f1936477795adce15bf1db2060826c73cd2658fcd8baa8b676b608f8500c1c77b697ba9e4f9fec8e69062dfe15fe41adc0e32e27054ac776b5c3d58563132a795f841f88b975ba7a0ea97fb59d27d2e60157af3b8bc4a38c8c216f86f0c23253e37b412cff93393bc24508d4114f68b67490e12571a12d1ab8e42ff7d61237425ffbaa8f1ab9c3f5ebaef8895ff936056e2beacbe3c83ebf5c7a367af0c0d5a5668b889bdc7564482e309112e603c9952c33a4f8f94981c32100b81b80fcf81302b9c0443d2e7ff00fe69272ebb3fcfef1aa961f8e902192a58c9329cfd526ff8f6992262aeb4b121a2f51e657ae244fb7d6cf71c590ffc9fcfffffa5a66e412b9735c4b9d8d6ea2ae4bd5ecb01d45b866d742ba4a9e4dfe77633f50d656d956da5278f6577ea70f741dd7f18eebf813bd5abff331d76e87fdf2e743f576e329eaacf71ed5711ddba25c6bedba0e7787bb5a71d839aed8ebba0eecf0576bed6a31b2254f8a1b531848968a65fee95fa0f48a768548b9cbf0fb3cafebacadf5df9dc7f9e5a75e363e1f5bb2bf0eb256c277fa1dafe39d5ec73bfd8ed771d2b15651ff6acffb75efd76dfc45714f63a4dce4f9455dcad13e576993ed318a698f0bf2bc3e5c1229879ee8e3f5e1360e3f30c7490e644a8268bebf167fd705132cce4bc774f4c9f1b892297886d15fd7872cd9a2f3a56aaec5bf642915135f0aa35469ade69e38b0f69db86a6dd779def78160adf64dd7c7d682f4f1d2c52f07e7a5634bdd92270772e5b2530ee4762a4765622a63aa5c654cde335dc74c654c1d933395315926a6322626ca84a98c89a98c89097cdb75a79779b5b3b6abde7ffe2d5c6a8bf850c55f0e626e2fc54a7b5c3452862156918e29d40c03676f74fc72f889e007828d3be7e4274f0f8c63368096af2260e0c1f1517f51b9329d4ce1535d421cb1c48a0b074d4f54461a1c514ca32321aa29263b5247945f606c9c9946471c78e590331d1f511ed6bc313d032cf3e8164302a8121a19444ca3a39c1f229a1a584e5f5570a098ba761081328d8e6a63a611c747df8f1ea611aa810fb3715fe09852fa56e87bddc636bc22751a2efbf74f2af6d1622761e072c520e8b46c02c552dc49052453cca31d22a628152e5d889846473b4952cc8a8f4a50214203012880ce10a6898d79747367a61f0d994e6919f61319b59422c6922a36323a7a7ce4498c2063567ce4545658321f1b1d20876974e4d1302b69c4f19147c37cd208c58d8f9c4a20fcbad6b133f88167da41140f60488db42626dd5ae2052d03ac9f7225b544ab2871fa72373b7ca9b2410acaac8d23fdb24549ae032f255c666dec718280275bb83c1d39b031e2e3f142113c805f30d4685313c1913a919501316b630658661836414969b252268d1b9b088e1dd89096668639223876b044881e66a823826307467a6499e1dd5263666a07ac86ab1d244470a4497429ca6db27ccb274dbaa00a489392099227648065822409ba2e383614245a4cccda385631c3122672725942beccda78bb32c34abf78d08224c595dd72e149a714c54c088fea1853234d8aab4f8cec0c788499a69a1122e284508e6822236ab1d08211668b319f884a0f205f7ec498358c647e60cd6ae0c3a446dde554439a79e45ddd7035f02144415c7b22438979f4edb061825c34b46e98479fd50f13ec9c7f0f4457845042addf013d1618e1c50371fdd67dadfbe443b9e048a548a3beaa5a6a631e552ed3c843b9142399ffe452f296f392947ba0523ed4b9afaaec984ed122d9718f8bdab9580f6343d4ccf079103b7c5db0c79a702939e2c8027c00a332418c64d2aa0e722af5e4eed029168fc3ee205cbef9457e4c3b5c4718b8ec613f02d6c63402f1111d62c68669c4622433ac8de0587117d2d373ad91357014016c8c6422992bbe36b649c70ea3708402cd1eae1e49a9a4b2ee09a3d3b22549f77a44208d68940d696566ad2e6183a336d870a199e05897b031bfafa57881c2c4ac8d3d634c00655219f3f52238d2ab277172666deca962ba8e3317c2ccda8862c9a7a8094313fa62210c015c34d0ccdad8a60820aee11a696402281324fb8190ccd0b3a08d02c97549326b630f0e6608d2053889536582a3d8c30c29065bae926a623f510fc58db6468725b3e3ccd8e2eaa1248a1f260a246608d66a637f58b7c9b27ff1e16988a6a2c4062b2fd646a1a2abdb649927d326ae215226381e2087195ab136e2d2ea36593e716dbc0ff4b9db64b9c9f279c129f388e74d02ae8e789934eb879509925f8307d8a24399287e4f54c38d7bcce922a3326b63e8c5ecac2761989846de17f3e846c4ac617034f292e0e46a357cd459914a326b585b33a8cc2f1c9892cc9ef27425cda438cad4e4ccda2894c40cbdef6b8a1834b336fad430435b941d69632698d9f8520e72c49ddea089443166e3fb4444539a487599d926cd5ff61329d70ea2b5f18368d16001cd0447510cd1942652a18e581b8d9cc70f68e6514e1073470447a3f6328f5acb887629313a0ad7a0e54c101fb5942a6826481ae9a1182953f2a499441835520190f2c504491e11346a303f249946203e32409a3013243f8a86539a25131cc5296678136ba3518f1521651efd0eb35d83f3464d74987322e5afcd6419f2658263e865861dd2ee777a736ecec9953c3d909fec1f2b3e25b2d326b23590534a29a594d2dbb808c59df8c09f5b6dadb5fe9bc9a798ddf1e74e43bb09c2f07bb8dfc337a157a71675777d6c2cc29a8d45b7ed03308bb6ab736f7deb6f9e5b097713dfcfede27c6eb7fbf1e7af54147157d0737b1d703e1405937b96190016508cdda977f35c85edd4bf36b90e52c7b57b13ebef70cf6afbd0ce32db6c1f80f9c6e4a2ddfbf8da58b40e97a2ddc6e14efd9d9d9d1da76d22e744ca389dece4b9814cc9caa4831a7b5c2cfd4e69e92797c6859a335bfac981811243961b5161947e7215cc6dd5062a0b120e15c6ba9eccb06e7cd10ae341c70c0130d0e0e406315e57d00c20b7569853ee726b7dd941658fc8b852a2c29a264e564bc6648bab0fab6c0f906d1048525b9c94e01055a64a1c283e8ae45026898f0fc5a831aa55ad95be57bf51b18a14a49f7bdf555bbf2afa50edbe7e9566ddb366b763f889a20f9de8926277a7a028d6af665c075197e2c297ab5cfbacf952b93974dafe27c8014e6ad408e082019440506cd2a4a9b469290f79b1dff25b7ecb1ff1622ff6623fc4bfb156e85ab04302003c2450dcc470603fc41b61ed1b2196e2e2de08b1f269f98989f9fc888905611c1c3005e4f8b307fbb33f7bb47ff36bbace769ef53afb605d67adfdff7f379f28ee88e279ffecc1feecc11eeddb749dfd3667d6fed9b77930b03feb3afb67d65a0bf667d6fed99fa515a579b0077bb0377b30517c340ff66cdeccecd93c9b377b360ff6666ff660a2288aa2288a6ff6665fbf56fc45e0ecff5f3c15fe9a5ff36bd67c9c8ff3713e4e569aa6ac21beacf25be5c6e7bf55fece6513be7eadb5d2efbb1787fbb33c8572b976ae83cf428561f7069dadefb8c35f1339f6bee27f4beafcffff0b695c6774dd9d4b51386149f2cdd67a3a94dc98769ed5418d699399e6aaefd6e2c7d5e26a49b1d6c6200f1d7a9d3aa6feb82bc4ffb6be5314681c2be18fb9b445e7942e859d5b570aaded1e6afbd6bdbda9845c718f1fce945afbc5b05961d8b4b11875ffaff576505be04e2be98d9df6bbe327ddddfb21fca54cd31c378c4ecb7402e1aff935bfe6688c4a1141a5d494a04bd325f9212a9aad7aa347f3474221bafa9ff93783ff93842f76bf7a66dfcc7175af6ea97badeaa0af12c4bddd782a7d6badb5d65a6b9fd66acfcef667bb1f653ee4b562a17cbee8d65a6b29131b7e128a8163bb8462e0b8561f29134b9978e96fb1b5d6d6a755071feabaae13bbc11e298eef287bf844ca5edbae7187ebd8b81bbdd1c6a26bc55db514c77822e5c62b1e052f37f6c68a3b16b693e08e0addafc31e0e3bfa752d7313dd066a5cab872dedba7f526bf5f0a3ed94a67925be1bc853038252ea8197fdb5a3e5da6e3a39d576efce8e8d85e8a5b783b95ac2d7c2c393a2cca53884076a0c7efebd16cf0405b69ee8b17df0933b12ccedc813e7dadddd59fe642a0a04b49008d6bed023bb149759d776f5afef7c635ecca5988700359f0ff3e15856aee8fe18ce29983267ac64adb5d65aad5c6ac52f977e8e530cce1af57229ae653e6bad95d65a1f8b1daede915fadb57ed80f628e4ea853bb3be08ed0f7f5039df87e24bc0feb6e3d96b025c46a0755d2c1fe76119f82dbf5ff0177a3cfe5521c7629fe3e31ac59906375ee7badb556f1f3215a6badf5ffff9b45576badf8dbf148505bdf443b05f404ee036badb5fe96efa3df0792282177b88edd6d4136e1ed4deceedf7e205bc2ab89ff2dd77f8b16f1c4576badf5c1b2f3dcef6fd4bf5aefbe1fb5b1e8c8f384dce1c6d53e1daadf1eae5d69e3a7fd5fbf63d4dc4f411611932d3ae3fe13b2ed3c7c765dd7d50e7f316a7efc58fe0a05b4d61a962851b1091b0b17bdc4f9fcae8d450529a0551e77bb0ac4133616fd7d2d705db58d2baec0c6a26bcffb380a4a2da8819fd7853a392f01b1b0a7e62e873a29d49e0f68f64ce60e6a0684ee1e42438527a5ad1452ffe07363927650e3c6ca7d9569c634840eeabc0fa498524c6fde07de5af84ec3b639f5036ba1f84e45b0166620dadea9ad6d4e590b455bce3bcd097b2640cd10f24eb665318bb52c8e600e6dffb7ff688e8e48c79ac34be9adeee14e67653af6785607e51239e4b995b8262878a714b4cda91d74bb5192fa57eb5f6df74ebb17abcda0f3dea957bb9b14bd7c77c74e9eef73bd1c769ecd147f62cf075df64c33059d76cd5330406e3286cd3785ee824cc91462f4fcf7d3e51462d85c82192923f5b8a8f9492fea75bfde7393ef753badf149f1d75a7b1cdb3298c30773db5cb8e75aee32b55cd8ebe1ab02abdca9ff1a8edb43b3cda12d852e87ca3d6f0a36c380ca315c07c76d4c71935192300ec7bdeda460330c22720c271fc7b56d7589e5189e49a4ea658f07c821580b453aeee45014e9687368b339b6fee7e4386d102481a31ec3e65b456abb1efb57f1de8f26d88a4b60f1cef7d0ef6932044bf60375ee072a91478b1b736d9b137e5f4dacb8966b36d72aa6e3e75aa5a3e7306cdc62316aa662a61746973aa8c4ad972431e990492400000000531640002014108b856251926579ae7c14800c66943c504a36924702a1501890e34008e21006421888011086818c81cc31a9900354c13f840fe23e407181ff6075ad623fe9745c2fd3f647daf80fd40da5a656f4719933075cab2f700fc3a8418e75a85acd35fd25d0bf40de882969b5f47334f9839e01332c8171d9b598f723025c6dec10ee44e8b3dadf0fe7b9ce5d5cd730af7df9909d7a5618007e4db814d15387702588839ef301de6073fc83ea4d235b7b2e3084f94d7b79ccbeb89fef4d4f3c2b9db86725ce09e0fd3f3110ffa2e7f6c20bb64df704d9344f34e96fd195472b07fbe3fa5b0202f895a05fa2e05f6bdff0317a04d81594e9f824f925300fbd10e5cc0375901020d7ae2c06291e597fed4a4fd183e031d40ff7c53dea00f25f413dada77e20d274b708b9c004121d3d0bee9bd9d69cdc3d4571ef3d9ecef266044c72bb2a31377f8859ce71e90aee3011dc78634a807b9b3848617c8c65ed5d0a9493408d0022bcb1b9dde9102792e3e6f6938ad68fddd1c076a14fa10ab5adb06d4217c37cc7667d0edf1a52ed1f3669fdf3c609fa732df964b54555e38db9a5344d69eac720b68f378e7b7e1d7d815e3fe1cfb573f9eca6145ba610a466f52d886cb75ecfc027c120b8e3ba23cc62cd6fc837fb48be279a827d7102603f34a60cf7614441f8954ff675d7afe36eeb154de2cd3c52d69c68338a2c0938900f4463b5861b2c5ebc641ee487be13f471d36e56552889b3c1beff9396ec2d9a01f71339f465d30224cd92914ed75b4d1d4544e264192010f08e02b70865f74add1d721acd8104fb6045b9540225ea2548c5926add21ca5a2a2b180fa721e67d4d727a9022f97151f75fbf5ee42b079294cc2dfac98514a5edf2a6fc9f6fae39e2719ae422499909e16d78560dfa433fd8a1e1ff8761ec07c1e2d78be3e34837d7a18f8de15f05b9814bdd0a2db2a776de8187785bc575b95e9a9f90ecd82ac29ca033dfa13fb81272cf762bfeb246cb1171adad0da25a07aac1a75014f1ca9f150c117801bb4468a443a34dbc950d1971c80f4e89bbda9e7ff5106f6b87602130abb854434042cf8fc9496232a1bde643e39abb89edc8486e7dab0742a2b82aa9bff510f076eb8a7f733274b428f59e4427139e617f663e2cebb10e308fee40e7308d125928baeb341da089cc7d0b8214ec9d619f2d11e1094e8bba308594809282792dd4b05aeb9102dd13c91075fb659ac5476a3453b2abb08a120151c71a0fae8ee0fd9f88773fcd29214e623f00017c262e5c701d737b1c768e8845b2e1d02ffa217d1771bc33ff6e87a2861555b3a18597d48b329f7aed52614043fc48ae25d45c561160d5a7a1eca141f0344ca9a600b13ea5518e58fc8dadb13a9093e7b4366b913372158ab2dcc134136c9a152aed47cac1ecdae9efcea4c3eaa3ec0f4a8088116c82bfcd34df46b94a03233a3b309a3ea388fd5f3435d587883feb8d00331a6d1a3e217880ca7bb53c12fe134514c60eeb6b0efb80e5b59ecf0661b739f753dedaa0c8a168fd975859e3503ea739892232e4df7d82095e58974b8ddd3f81f4e7a66e893d3d6db9502ae693d3ddffc561d768f9549004c5e1c705e552ba5cce9430c4a2ef25ab7902119cfd5191a0221db9f9dad1b6d2e86c0252cbe64480de8692306baa70ace83e87668124b08395d3b86fa9fd3eca38005ad8e1c29696961e7eeb36d69f14821a1fbb1682028db0a2e05e6eddb34293650e56a61c16a3607486e77b40557c22e80abad1918414fedda809049375bb0a535342e67006c3f00dda8ce368eb260798444af8c6a991f09bb1aa8f2a7ea675943274b668d5a56c305ad75e426341cd81677cfdb97011e44f1945da5740cea9c204273963ad7234c09af88f7cf08bf151c055ac41ac261638c521ad30172308a38e49a677de392ee09e9df53ca3565ec6aa2b8c236ceb2d7467b7d37ca4f214b4a356c5f1f31a29e94736c13253e09e75b0677183946b6cbfab701c45d529aaa32d7293988bbfb4032dcf79c0c13b9e9c5fb8a09692d6064f73873ec7c29a43daa856435aaa5f23fd918b832877005570d72fd608990dcfe294776c1252b9cf3fcd4e8503f4b12c069cd3ec422f608bf732ff2f44b645343b2a7268f2ea9ec25d3009baea3aa8dbff53851aeff0d6d4a933dba777bdc1ee8364aca06ae0aed88ac8874a26eaf051be33f7523eb59e237047c39ef294f6f4d7e97c55bdb0a341b3d1a133c0e7286ff69af946f68c33ec64d477fc32ccb1bc5e6c1c2d233387af6dd9a34f966d5010d24dc20aacb81f957a6dff1f328b492b1925d9d6c751a73d0a9aebe1896abc051a7575d0d06d951879e708fb555df57ee57ba4629cd766536d71ffac304f871e90412cf6e313ba2cc5bc31f45e5a1e616270dbf82cd1616c25b8dc1946d16a52367d8683181d07abad3e3720d96659900a99d6f76ed7ac61b50e0c9da5d352d83d86f8c50af936ccfc5689e30231959f56505f34474604833d642f6a615a4cbf1304f85ea0056b497f56fccd1fbc84cfd439dcc08b4a33f1046eddc609df7ef6eff607f1f35c0d3735df51e61f1c2570275dd307f997b4f8879b75837697981111c0ebafa2646c372556c49ca89adf0a8dc1715b06a234400efe287c4718c6d578e5234eb584d09608e79a3164e6b2713c22b847ae0cde351d59ba5e884ab02209810c4574833d01e3adae2bfc941b6ff9f8d804176f705153dc1cc82f4e426270880608192513e39c0f6c7f8e732de084974d3dc306f659cccdc438da7c7d385a9275884387a1837016e40d0c121846ac0b650c6bd0e5c6fec840763038d8dd317f6fbd8a8b62ce57375ac0a0167acded643a8802d785e112167bdb466fee68986ded3fec81fa23b7e309af20abfcef73f8d2207ec9b47197f367563ff208b40d6efe600eb2227bc66b00155b4b90d05e16cfb9d89a7211bd09a073f7308490c390e5c5c61bd1ed23d3796b8eb194427c2d9051e1b844a1df755d9e112c7c7b3f4ddc4141601a7e49dad11faf099e586a46f0be15fa1924c0d7e7b101f054280f88b804264ee1c73987a6637118a8811ebae920e2386ec4fac6335ccef3cf014de609f8a171094be6e15335fede024b6a2e7a0581aa82a4f65f41433fe6a18b185e56e1f104052210daccf802837e6687ea9d0033f35af737bdf823fb7fc45047de5ae003f72ee6ed19f290c83353065e720c031cf9b708be3e497e03ccbf33a8029406813b323c4ea8e91eeba291777a1140099eb2369917bdc63bdec43a8488f07967c31cb721bb2cf180032b1ae0c7047d09f549ceddd2711649d9e578ad5ba80cfaa7d44513c6dd6ba187fb12535bd860120acc6096d4fdd35bc20f260c1797427bf2b8c4a426c09bb7e530c95d487c54135dfa30318b83f51f9453752951647dd4b96ea0a2b9f2c28d2cc65b566857b696ca659b3baf7737bc7807195838c1a1b88bcefc9161044ebadff97a1b83e1c3b3c7e3a7ba81d1ef80081cf9bf383af080af35cbcf4b6f4aeec1bace55384ad1d1ce5d23a37fe550b82ed6d98cfe3a601f82ea12a595af984737740440b66efc8a0c1d03d28c55998607da6a9891e1f661d80c2ab5579258cb9a4ae7d5ecfbdfd679086c8b7a2415bfe63ba8c8f47f8aa7ca3fe8ee7b71ba8a0218ece725d7af8b5bcc338f067c1f1331575e6c3256540e80b3585e7d8ddd2801a7fdf2fc62c87f44f6595d7dd573559a70e3fc7bcfc6ec7d781e74f405fde2b9aa70ee9bb1f56cfc01181df6aabb673e332f869b04baa9cdee6eb850b3963ce4004dbe828f0a7bf72da231b767d22b79b9fc93552f11b2c0092b3ad9d1150c1618301898ffe2845619aca1224908134fc704121124ecb766e111460761385c360914ed1a5c62c608a040affced5a4fbfa761fe5365885dae27f88dd757a79b97dc9016f3c2741f7d7718e610a6610b331a161a16d5ea3825b196017b78b0376d191298cd1b0e62d5862990aaa436c9ff427eade34ab35eafa54f675467537eccc14bedc90b6e9f66bdcf42c8ed1a8b062122153c7288f048852e350e14d4ae6d520abd0783de3b136f64c205237581e81f9308cca0f24185fd0cabe3de96de115072af2c10c13b5bb7ff85137c234a05461c111b0206c245b826d700bf30ed9d2d12890748119a34a072bee1aaa225eda445f218210606a80f0e9fbb4ab18d9b3bb2e902d55689a501940f14a60b8da3e9706683ef63f77bd86e46fa75c821cf2c0aac787a5c37094b63c4a914c3118befc3108647fb2616178c7227309db2eeb533648018bd16f3939059033b78fefe5e28ed802edc94b22dc19f61a823a2e5450f5f104247a18ee68f418833dfbcecfae38b2aec42e0045dd286574a796d9df7314fe43cd40518feca4cfcd3b0ba681447742a6a85ff2c3c004ecfab77c26238fffd1462fc5578879f29e271b09c6182ac9ce715cd068fe4a31cf4465691988d47f16f8a7f2117b5d1b1b0b14e76ce191d41e433e0aa548cd1fc3eb91233714414b0064b255f81cde2970d6775ca4cb09ee77a434c11b574a9fc04b742cff8c063ca5146a5c9d7e257c2d2bdfcbfcab4d41cb9ddd389cdf9d408c39fb6ff66798bfba5da5a5b0b6726f5881c383045d39bcabf39a3860277e4946340c135d58c6262585844f2197ab82f95d503fdfcaa066ce0d7ac77a2cd20bd1cba7bf2e2bb0bf8fb4e991a3008c9805926feba3fd44b0710277a7107e16b1ba0096fae7a06696396de606027de91a2ee4bc08d551b3fd088be1fba0668bf8f3aafe750149e01d98056024c40cfb304c0a408b3c9d32f1b680fa149cb1cc1b9ae80505d81240990958ba48186c3b0be2c43e4a03d6001c4f667b3de65540d1f00ecd39be286acdbbc15e48a80b69db4378b743a8a373788e0186b415c09e659d43b990f3c51919c3bbb1fd0c3a9b762b9878cb8922f31d97c05fdf715569b9158ab51e598f7e5ab8ad80a0d6f03ff94978baf97afb8e4114abf6d610b24eaba83ba07b2331712c86dc652d059f8e6022ce1d2b419b34d556c3faba78a45eeab9f812efcdb9ae2d7bbbac581717520aab41625a9ab876088a2e9eba68ac6e22e17536b31765751eb820e48d9e936b3f5323ae4634d8d0cfe6f6a21fd64c4564f8e0937d4fe712c2256b37c4cfe9cc77b9d4ad68d55a9f2b649c162d6640382134c15699d516dd7f24369aa1e8eea2dc0a3b25fa9e216b70e8c904e542bbc113b9dfade8ef09efc914dd0090e87830bfe6410062b929fceebabbded55bee1a36d2813ef149c07b38981893ee7e14fde64b18d5e9f44bc4b583ea21ee856aae520e0c85ab8541586a8518ba2b41d7fb3e0ede484e8754111e17626c36ba6a66025558f53a870797cc59ea296f438282bf6f9f3024e75ef787a0185b51b8aacdedb76684ed5a73510f313e71b0d43622882d87e65a4becaeee900b08b551059f2afea19d42ae231f69ac172bde033a3895d2af0527d18bbdd09dda4699ff41b251080b73611924e7642c4d5c91f48eabeb2f32a7ee5411a009ec50776c8fba93f98fddf524301f5fa15763c746c74aee52823fcc6ca69fa12cf19e5101c418cd623eb6fc01da31327883c387df523dd3f601a9f1eca44588b403873571c0c2f5c91e316d29ebdcad85279ff6b768fefca6970b07da6b008ecc4920298fdf5c61bb01bbda14a6c5d1d5565aadc1a9b40f947633e0766843f3f86fc8700ae38ecadb113357a050184d06d9410e9f44d03341f6ad316fcf06c192311340b77e10a7df6bd71722f055e0430fc681963935e1ffcd17a311f0a42a656649a314744afba9ffff6021bb53a9705d052240bc34e307b04b83a7f43fca1cd5142c77074dbb1f248015b345a19a3b2677253ef80dbd66081ad41826f122d9b5c51bc46f2d3786edf2ec6f44dc1cbbfbf6f5599bc98e0fe0493e7cde17878001ce9ddcfaca5ea7fc1406922416defef86ca7821edfaf0b81683898557282c4895f479aec3a358b5be3bead4b8daa14d5ddc6a5269c7bf9445b84ddfc5962962457bb5aa50acd634084a07edb32513890cab74c13d9ba1957e0f8072ee373a677cb8c4a60e336eb3c75e971a18ae8968671e1315da11a8102dfd8377a9248fdb5d93f5c58287cd3e3d90fe934f2d6801fa59c4344bb421f2d0cfa2089805ea0597d062bc9017e5e553f767df52f81e40230d8ee18a2133a7b6c576dcef9c1d58bdee9328eacaa663c82f865208ba650aef1a82f36440b614766e461199db490106a30b483469239230ba48e0f81fe311224889d5261ebda6b48e01b79522aa93571e2ed09841e141f9179e27cdc2dce2489db674ffe970028b0a8f579af7a1395bf084f81e6020ac161b149b41a185a4fa964dcbcabe9cd160e7d7d5b4342837875763530fe9b473cef967fb6c30918607a869b0a1f24d3b5814a1c5eeb760ace511089322659e1d3bb28bec8653d53d34ff7832636bdf86b94c65d4e1f749ec9e729318716a76e7dd964a8b4964cefbd3b212f0497c07878a5d2bca0bbb5c3526e1dc95f46951138d70be8794457cb3424f1704fdca125debd942d315720532efbbdb02fa6e8c49834a166b5e0cb88cdf89ec9933b867bf35707daa5be9a99830512404a1501c720ecea77306f2e827adccc1eb519aa53be78a54fe2ee4c457b101ba03d1b3ae654303cde2e3605a8c9668eeb322868c35711c387fbdcf432ada6bfd57160d2f1742bb8b5c1e81cd55e34675cc8152e0a1a77d914838d3ce88a2a59121f8162cc576f72cfcef7dc5102d51aa6685f5e95a8f75ccb924f54d850e2bfd110b2d3a7e0df48aeea61a3f9025a15885c225fa76c26e180103a6157172215ccde24a5200772aa2c7cff255e72b2a7c4b6042c0470e2c02dfa74d9a4d705c7af18756345da8aa0e43274ba8b71de50e7d0e2c057c7584e03c65e37e1b28425514d2550f8fda4fa70bff56c801f8767fd19b11ac5a507a0b00cc472c63b4ffc826864f797e6cd5b207716da38ad82acfe2d6f8843ea68867d011bca08f95f8b668bbb86a25027688702d8d43454c7bdfd34cb92a14462e27181cbff678a31dff7a76b37d6229f25da5dd5a107a27ed4f15b33445e05a6a960753c6292f9628b2924b5f0d9f2733b197f2be5f9840e56f4488d7a14a2aea49ab6c604bfec932e998291fa25290ac883ea0c313b8373d68acc6c4787b5c3246be061969ca4f182d4f01c487c80b16414911b9ff3a45444b17fba077dbf96629aee584be9fe8dfba131fc7f0b08d9930f201fa31c7851353da2f7a2af68b750529e70118ee0d39f5577b31a01ac421d89d21696890390afdc3c35ca958464977f82539abc2aa391a32cc11d743000ebad6186cada0472af6d47f67b7c00b2de43afaf64789c31f56a9b009b4bc589cb550a5cc4f24f5ea10209aae601b6e237c0a54ba38107c7d3ca505a2c3a9b09f4e00832187ef119c54553d86a22dad593a5958042c736ac344f8e140a966ef8960978268f2383ea10c714b6a3cf3a251047dbefb4dec77f2c30d1ddb594939fa9719cff248741d82d362c026fd377749d16dcc94a2e1f6ed51d00fa10bb1be2ee584a5424d36362d187f79096eceac551796f2a3bcd78514f42e55c2a291a4b05178d0cc17e1ae95f5b407aacb6cb2f9f31c12c0ebdbd0392e7e8b8e768a732921ff6c2cb28a3cd5a6c9c728a5403b63054316b7897c7cf4968a13805e5b84c4d7d74fc3d5ab486fc7a860839bb64df0c07e533a61488727e02931e5670dfc55f53dc2d99ca4f6534917f134500b5d9ce0db186e96ee7bb1ccb457e123d063da449de0bb62f090f430ac3f7268d9d4ccaf0ae97b311ee817bd12cff9b35ca5df207c4d0a6cfd4a6bb4e6567b79740a53a06882aef88d1ba4fcb76fcdb11da1c3141ec5bd718c0d55925a9325e61b2e491ca4e61d50e43bc3cdb4fb7ed9d1d90d3915617cc9e781df1d7d19b327aff406a413f7ab4a0ff361aeb7734a2032e2c03d21370df5f163215697bbccc12f488c6ec7dbc8bfff529052296ca0979aa322c824a8fe5561ba80864306f8f10eb756244c7091f074574c9dd247345d724c59e0dab2f83e088ab29fbf0654e6d55994640f1caf3307de84a1f05504dcb26a33ce9e4609939a45cdbe4ef016e5ffa53948b88316859bda1000f592c4be967eeaa7df50d1ddf5700d45814091d0ebd2e3888263f80abd63e4f41dc10ca87a460f8df0ea773701b3adf69f831ba915eb1e057b488ec73aef1068728aa4e4e0a1088fb64c3e3a5ef65dc9c67c38e3efd6fbaef16224ae9f42ce79df28e874ca59661d6f6bad5ff570ee2a8a6603ff3b106c6145816b91428c6fde2339eadd69937d7200144310a97ffd2506420557d65ad9a4e50061f6efbbb75d4c0f9a7405b98ecdd681bbe4d85557394194b6bf863126fc39868f32a863a344c13b08a8c6cfa2da4ba05c9c4a6310df6b54943b626d0a0747858bc30351e3edb0720f0a3044a5d428cb0fa5d5dec12082e6370076ff105992ba59485ac502c57d02ce9fa8738102d3702ddcc3df91fb0c5ab56441e918d97d9e274f68d4e20ef791507f249e4e32ab51e41a570da798e5d500a1a5e4a5ec0cf7cd6bfe08193a2dc642f0e859d72a5ada3ace12cd5741d7d0734ac463b0786b26b6e4a1ee51ba7ab6c742c29465267ce7979ae67bd7680a2cde15289f8f38a265a0f48313e0b28155fe619469322162c39cacf242b08256de3e21373746fbd714b874914e40da86d26927d9b1b6a6efd7b1cd0c1c834f048556d0aa1c208e30768811928894a308b44f2df6af50b9927c0f10637948ba2df5434278d306c54115e79833278a317029178eca246de0549e669fd2a8a4079e8894e67244ff8c0159771f3c7dc78b9cca0223b3791e1cf89f405fa490b1aed98d5c8ca1f875fa7b6f846de3d980d64887a1899dc686a72943592b66698ff36180485d83eff5bfe244fec19738387d2663710f101bc4f712e8917b43fd90971d3cc7e62f77fdd605e9d7196c48222c5202fe0e9014de201db19ccf88de4402e25df478eb21e858879899230bf8584ac12968a35cd3233a2f205abc34af5651831f0086cadac7625401fe292b279b9dd730c61446130c05195c77008ab01753099156143b93c0d667bae9964f079454c6caac1800fb48009dc49ea336fb6a0d32b5938c2ce5d19915eb8600801dba143c5ce9aeb7834d44821ea0375cebe9be7483a92ac42825dfc0bcaa234921ae0a5f6bf1c2d313bab3daa1c24410a91f1b83574e963a9755a9adfca807e3f553c607ec20b2d897c3cd57256cea35885fb6e90bed760b4363ddf2b745a6b4261624ea9040525a7be455ccb61a121774922919195c21f07490148737b4b34798d25a9d0694aea62f402902dc05d1ee19d5009554f2a9f42d38d74263175b09f75b84060f7599576c1c161e912da3212aece720655ae34d4bde39c637ba7128b6cdb4c1d821a1915793e5c207ad6fc615d89627e8bab240348be67d6ee275609c0d0cb105cab03e04a2a29c2c498b211f36d3880772f1f9ca10c059b3ef3348aa8c464c428bd247ddc46a878f275436ad30641206465afc26b46e50ad972f615cce2a5ffdf7945c0e900b11975a4e04274c2e67e44dfb65546a61c1d2425cb976817aa6c1c4e260c48c407093003afeadf045be415132670426b68999da575b0065025b75ad3e79ec8ee50124f681f3abb6839112d20a84725a214b4a17275a88525b75d3303e600af45649dceae0cb5f1a44693933dc4694fdda6642ac879cc019a9c90e43b2621597f7ca45250acd99bc6221ea7345ff8928f9e81314c5815e7627a8611f6a3b299024ea26ad9252e7368fc20bb905f64d06e7b25be40bb69bafd433a155b15a18498b708e3008a9168276d8dcdca7c10ac55c79370530087d12e3cee626974eee7f4eb14b29960ffdcd80866e80534245795fb48c7ee8f9b441ea063470466cc009b28184157edd45f805c062a7ee8a39e6cff6946802c105c68c6c63e6584c8b8a1292c40c022dabd48a94863f2d6d5245b8a3228ea9dde8bd3cc97087b1df75851808264bc79fde69f33be39c010126b1d2641b1a1b214d9787f5e0726f9aae53e3fd1484a8ee2b737de089e278fa6b403d4700da19d3f2635929e2c6c4b260b1e16d4ea389b7842b4d980ef0e6f4943626cac4d80255593926ca62561136eea9a9872216bc4417e9a641aebbcfaf1de9b9c4c859546434fae7310906c19e9f3e573810b0ee45f01a2a6e9cb30d84ba81dc325f51e4b829e6a77e9832941a508daf123a6b068002c593ab869d5e6ca7ec003c81ac2fe47ccce1961f78d9671afc38243c4ec331cdd4e365a7532a330c0dc27487ae88ca0a6db396cacd913d19e7239fdeb91d481aeb9189ed82fc4d7868a224b2e2330e5a3cf92caef001b9e6d278a84252f8dadd0e7153a9e1bbbd4f012ddceee9a9dbd22cdcf430eee981fa9607bcfc73ed4a1c1abe9d4a5f0662121cbc46f7f891640c9a624489cfb85ddb05ed4d9fb1c3075cfd803edcb76dc4a0e2be895e18616eafd8c25cf8bdb6c1b6fef33749cd709ba2ecc7850608bd444bdd037c7494b63e6daf48b986286671216f46597c36fd5045fe146778a3f3ccc5e6160106c91531a2e7825d1995ffa69e329123d20bd79b43e069e504af3a5e40e83a93663f014f18026c22fe6f81a97f1c3b3f751bb0a5d0cfa5f2d5969849100ebb10baef0013f6b75fd7217e96e6190ddd0b521302f0ed12bf3cc84a216e00b5337e2e90d200282a818574e7b682dd7efbdcc28e80b57675d95f1f70fc6164741b5bf3538770985bb735b4937e6e0638daadfcfa1042218e59dbd899ee41cad2cc02b8ce6c6d6918093a67664d08124eb32cb5106ae896cc537cb5b559c97f8f44c9376ef4d3ec00fb27b08c2b36f9603cac389a5bd4fb4e91fbc361c1de8b747e30eba3b619fee8e5330ce64bbb9be594298d0c8678a91e58533006f2db0b715adb13aef329ecfd93acbf77dc5e5d40e7e11a5bbb5104b4df6a32d67ad74fe4d2394a5a81a5e3eaea4c8f4a7b11a6b9854250c4ca908bbf01759165f7c42436e68de98936b3a5f36cd2e545b96946440947634d9c8baa37c0d3c161f5095efae9c10c8aa55beb6d7bdde2cf262a5df2b9428763c6e061178fc45401616d1269a985965d1e6780c6e0aea2906760c03efa56632f7354ede700120e0f811a4506be1a0b8a6ee54d22029e7d0afe4aedf9ae5e29e04a0097986d6d29d88c8ca989a5e3b34cc6621bc9e94a3e0a54c9e7da13673a21beb75faa533bffa921367420fbd77c10973cfdcc8bf7f39d9f9be1e080f978c360babcc92949b4f6786518d1f6fa23fbb42194c86cc2cc815964fff2073adc9f34434a5d53cfb2f9cc49bb2a047d30a8d36217bad310e4fef9cc81ea89e750c7e0acdc9e87c81300d09d44541c49449e8775513c087a6d474ebd1a1105d4038d27665a30138f08605b2742ca95d59229592e9c048ac37033e68254f6808a7030300bebfa1254497d2e68d7e3c70aaf990265b6ce2667933346584fa32c966ddba8813c131a7974b06754c64f8e35475d907782e9ecd0c1d0dd2fe1d3f6517c58a1d16ac7a841daf595cc35c6da2ddc52f25dc66225cd6356120b47d99f27a201ff363ed9745edd4857a5b2a98699f680949fe0267578b94241c765527fc76d868874d9eb049683b7978658d780aeab81f593d9295d7ae665f9c2b51c01c0c58206cecec74332301ecc68b9193bed4d3dcbd2a9907266bd25662496f2227ce8ca2f078f6b5eff424c8f975a21d820465ea2da6f0cf612ea7719df0580e9b7bfe445ebdca5e320bb87adabee6f9ad1c9a6f8f5dc5c55ca22d6038b242047844335be682fe25e60c0dd921919242fc620ba5b0a10a25182ff680c62b3d821befe9bda7778931ca0fd5141b8dedb8b25738ec6c7991df71562c08911e4ae89f82f5831e01d236fb9eade10f009994dc2c655e2104bce4d4d503173e00d17a7c9bc5b05e384523bad6c77c5dd8ae5d15560e68bfc34c37979272382111aa2f6227b5119262865afdfbac2737b69eebf00c446b8746b29d5801ea36e9d020e452cce76a7211d9b8112feeca7b6c3c91f8d011a5238d3d862cdbd7118e547c6dec1497fc237bf15f293bff00dbc7c0f0ef18d932535ebd9015c02f2145e4d08b91baa902ac35014284e6e843329c605fc59323c5118bdbad744c289dd2d4f13d5a1384a987462e24af458be445c4401e59594e5e7bc251500c2366b5b0fd50965841ad7d180ce024ce35a178bb147ede76a1ad791e3b6a84c38f7a247d0e7102ed7e1eafb4c1e71d5582576bf8fa10703c925c3ddd040553acf562c2afc6d0df5db197e80c8a4a05b491048ce6abe6583ed5d551553fa5bc3f02633a0b5b4d880649fffb2c7ba1dde4ecf267c0057fc0fb5ecb09ddbdf6ae157294a6e698b84bd1edc89b7608f6aed7b7165212061be0e582e343a2e1d112643584b5c8353e811e97f208c83210acf5e830f283c695a829f4dfbe9d0660ff31724c60232c1de8483e4e08c194a4ff46ec1468f9e9814754c5de6c4bde9e47964da060b2e36e71e282b269cf99f9becf36c24985cf1ced93c5d69713331e903103d30d051b8143d884e3a1bf6a2b8fca18cae644daedaa94a297b9e096655f4b3f6a1f26533c28ec6fef5f2e5981e6e5980ca8311ad6a620988e0f6e20c0b925885baf62c546c27d7d6e9b6d8ecc444a3c9b68c19b050663b0a8f44f38240955f2c8b7795c9b81cece8be9251d0e87e11898ed1e129062375fcf91fb52d1a3a410dcae334cd70f27d81318396611a43ba507a23ec4db0134be080b63360f4f90c6cae5b76c0b3e888d9f9b0052d3c81f5dc07c91815f55679fec375f67248fb1a1666f6528832b1bc7d320c6661e321a397dce728710790a790fee04cd1b4ceb15796628a5d6a6097596f9035ac0485a7586d453f449fd4966be12cfd35f1e058458ccef64120bd4017f607f7a406fd06e3ce84d468a9a273bf854c5aa3041ae50182614adb71e7934b781d8466bab04aa617393f0664c48ecb20465911903fde2d8a0ee5899e27f6fba24c544cab1b03b7d6be7fff468b0c78385b52fdb5cd23f53aed46656cf2b2992fcde2e16272cbee85b5119c91518447292e42fc6422a833caf29a3c8b017ec5ff2384f690df1e5ee383a631e868d7da16c30a4f09ad055cb20d515aa306eaf10b025ffba39eff9cd0089cc234ffd3d7b147caa3dc2bc770b494d3c47a1b8ca07d9b00c296526a66d08d5a5d8fbd498418f8497706866d39e241dc1623e167f84d39d73a62de3f8b6c5c01e0c8296032a301a7525039d281deeca04bce89c1507c01a4f45100316061706c54e54db34f0efd642ffa8b1df7ca9d9d485fee7639a491b35002227783499f727de22450d7479c4a42d8a92ff756004206993ed1d12aaa031934fb3269b075edd82c59fefd459f90db546888768df2ee5acd3bae957174e984c9409f1f8b1c8c81e4e1b3b0828e2347965992777554d697a1f75b8117bbe3e034f437b2c249c30d7d919c792ee116aa59b5fc791e2f2e553c4e4aa571c0deec798e503cd5c58c538c842e95789490b640c36fa8be39ec769412623ecb04b7fca8186101449f0fdf518f7d4950c8d01e6596c529353dc8a88095cb5c3364fa0d1fb6cbea53993457204f00e3c8eca4094b863ecdd74b6c2b122e03fd0531d4685b391bce4b7ce8dfbbe46e5bf087d9a851a77efa97ea9d2f67e92e691fe5fa33199434afe14510b71d45cfb395af0c1039b743306c317c65a7d6323db7d69b93683c6bb1451df9ef9868d076748b197d7ddb745b0934e2f568b6738dcd680e159ab52fed9618383aefa45c33868081fd529584d59733ba74b090785362393ec6ce080ee87f00eb4dbba0e9c7c041828e78906aaca0480711f4ae6710189f1036108ad0cadaf867d7845dbfe627dd4d3ae794a259a37cef68b8f8775cd0808242689632e5dfd9248b617b8c895a5cb2481fdecdc30d26502b08b3507743462288affbfe24684b04614be4da9c32f3a0c30e1812af4f5047d281466fb6e6652a3a2d8c06a2c8836756c53c96080aba7f25ad12bff403276ec069962dc53dae28808988072128503b140125f89da967093f3c035cfae75895499cbd8e12375e05c06a8fb9ff35d7eb05c3db5b4af19602a58ef65fb709284a49777f1486971a645a2814bc94b1a239525181faffcce531ae214dfa237a1ad1aebdb7200ff5c9832d4b4caba4a08adf772e8048cfe61244738d5f9cfc1988080d4352b95f1b2758585f75c4d041c1dbd47ed88f543bf13d07c8872fed70f8698af46775abcdbd45ba020a6b672dec4912ec4897386361501c0391f9a98014a786d06ab240a3f8853e313c81b2aec28fdb0edbbac9f0f4a32b58a41f6efa0bf1c97e993a49aa1e9a6621ab3e5e3d59461bf48dc3c57f8a920c23071ad305ec773e3d785bc597e3b4f4472d6fc819a9ed9db663653849933a76c588a6e6ed867fb3791dd6d8bd9fae18e7ca4e2a3d5617b2d759693ed9374131ecb4047a1e1aeb15363a90a037c74edb7583a507821f0f4720b0948a7fc9d04214a04583c3cefa72cd008450ab4b75cd27be74d120aadc568a9f3be674103e5eeb613866048cc6206129a0c915e26fc4540a63ef8d013d153cd06f28ebf56e02d023d4cc4abdcb9eff9f410f1ed99d8c665f7272f60dd32523ddff895d500d947f39ea20578e97305a7f49983028406809596055c0ddfb77e051a5779057dc82aa9ddaed95274fa51f020fe1e354a2c53d2b7664419bca25aa7bde8d7c9a700cb60baa224c3c8048714b6e8a572a597a184921d11cf0725b8d4ab72f36b1edc449b6314033bc779cd3d6a3396d1b6fbebb067a90883c1956e569bf513dac51bac5e2ba7fe8b1d0e9dea9b0b088296a630351083753bb3c1f12e8dab2a66afecfa7b2ceefe45405e93c97776c61f8a1d577ff94583d96c20bebedf0cb496b11ac4331421dc2529968415472235b69c2d8dc12b9ca5787a9c3a6992fa7722d781a63e5a3c224dc222bccebc21acb227a0b84bb1f5a6e28e47ae8e7c5d0f1421cd6e6afe326cc521eb500c384dc07e423ffe2e5ca6463b85a2ff642c99a28a1c0982571111a8c367e428d5b2caf527ddfb69ace2ff0986b9a1a736b2669ac5c5cf0dc901218e50fe24ec27854e707278767476577f026386fd490caac333bfa90aeb25f6d8bc7065a2601a34c62720368e00d90729e72c36cf6fbfd20390804ac4bd84e8ff9fc78671304d89fea637cc8483b0951083c7f18916f9a01c1ee2261df34fc714f6594b7167ac926861da83737bd682e80ff6ab6036a674c5cba8dcff52f1744e5d901979006bf858ac19f67fc0ac1c78e9b7a049751629d0d45eb4611b906be439f1af44f3bfb10b96318fa633fc09181c7a8ca956763eb8e748d275103871ba4b55b090c8efe11089907540ef2db146634996a695aadd0144564c02e8ca82ea28ec0ca7558869b68ca3a364bf024dee8289b06df76534efd204b42c8427091667a903848d87d693f17be16e4659cedcce271191cb14f90c474d114105b36b5b263d55a93bf1db19f15872cabcdc4557bd529a6f844cb2afe295eb04b62113cbc847841fc8d0a9a874ec2e2a05e0cb8d9e1bfcee0b14f001e56a094f1ce69c1db660244e1014f67954d11e49460a13f1957e31bf38ceb7336fbaad8b2b13b0734581fc3928ac8291a431988aabf51ec1fd24cd49150392674a801e99fcfc89b73e195691e27c0df48828ccd1c4525cc96858b0bcc1affddac86cd903c73df46afd70a5b175705bac486e44392075c6e8e824d4c70de287f962c4d03d23ccfe37d19c30543a043bc69c893c5c12b1e4f5ed387da5f7fb473fd555d2feeb628e104f5b1ab3dc221cde761617eb269c6de587f97efc7e19df6d476e0c99e433a691fe983f203b1b7f195cfc40491f54c90e39db7e997493bf19e19f073f4774ebffc0981754b1388b2fe23d226105217680881c8169fb15f1006a1966c7199915f50f07b93a3eefa5c44bf6aa97c2414ab9b972e36a2f8d36a10de95e9ae361b1171971f1cd486d90a2ed794a10b3b8dc01f951a9cf65228223e46dd0421c260f82dbed4fb81506486813d9d715363629c5bd5066f0b65a68be8ed0ba2940a0cb76ef96275157fa8bbb121655d3ed73a07a65d2bb726c1ab438bbf0dcdd0e39c64d9dc8cd4e05e5a905b92fcc7c97391dfe17c1ac65c858ddc1d78a64fd847f618b0624e2afe79caf5b26bcf9580fd1a9e947e9b23e15dc20acd4540f1d71a42809fd5fdd9c5d20f105833ba270307502649eead1c8c690919f4a8176a74c2c514906a1412cfa014595008853b9d15c3079370f7693159cdbef82a0abfb6d3a8c5a5d8d3a19e97ce0a338e1272b6c5f88cd0d95900882daacc287330c5c327b4916ddec2d7992f23692c70ea644a1e88e9b761c717134058c6c4d69e88ae9daf65ecef41b11ae6da3c4483f0e59c2081627d9b6316e909575068a08dc10a901f403b0ac951d8dd25dbe3113d693d9eebcb91c6bb04ea61e1d79f8fe6a8c909f6d3161c70521547c5f31de58c2330ca4d524195efd9c875d92642ab457437328999c994a249f71e64c91499ba051e5e4b6b9496b24a4fb4a8b77ad6f6ef834b0655c9513c2c480c064ab3e6ba244145882c6ef48547d583519cd7cb770341c402bbc81edf4468c2c66b41872d138989b3678a201945b1cb1b32a5813fd2d0791fd4652dcb39398827cefe023a6640258479d58db88998d55a71c43f9451e2c6fc165bc4bc0bf1d716c57276587b01a12eb2c86bb2c2ff9a6c09440c8b467fa0384c02583281c33693306a9848deb229b79fda5cca47d59dd7a7d2f213ef6d053dcd354cbe83ef69b277c38c667e8e28c262693df13c70093f93770214768231d084a7f894f83f6a711eb3dcbb540c802a40b8da5f80fe8d3aee33266f0a4b15dd6c54f686195d3ea0366b54d8c05685564347ec75c8a89e00ddb2fc87d2a6a8652843e1525e38407ec2bd4a96568a8c7430d53df9bb140830b2b7b3a4a32e9e459d16fdfd5be8d0439595ac2d9a683a6620d5c1c9c85e26ff46a0d9fcffb7445f932c6704d632c670c21753a8c6fed988ffeb5e2a3a2f204cac74a880d7bdb7c8c884f800ee37b4006e7fe21bef1071c3418a8e341c2824cd27e5a5f3835538064c4aad456789708b93296072620532013a631d721359e355c6e0dd16bfa58ea7d0687e24257ba3bca014d59120b907dcc24afd31f21fd98182fcbd5fdb95539ce139aaeeaab2c2a5ae1422058df255bba9259543b952c55474e55775574b4a6e75ad8a2ad1d48feaaa2cab1cea4a29a2a2ab9f4a975a56815b719bb9e20886966c9bb20ec12c156a022ea1e77bfc9bc4fadc952b561d2cbb02c416125adf68c08e68342595afc6a2ddc2dc6b2e08fec918e230a06c9ff09e72ae00b225572ae281e90250b1c00dc3ed23f730bc0081f096da6e3c9c5dc16c29fcae5e4e0705ce389ba8a6698430115601de1fa11040312127d1f4d452d8625b42aa04a6e3773ab5e186168ce2fc1d5f1ba6890edf3d7f139281884015c8757679fe624ca70061bdac42d1d5c7b958e2175dec8281e754062c0c72bb343a8d11b888f4104e840b028ffa22cc6e04a8701cc232f156cb2b4cea5c602078d417c26857843003846b24d342bd412f43f48526932dc908e58b93731370516f2046a950a84f8d8b609d76fc9200eb82840446314d285f98949b402e054606252ac76d247383d19f9608a40af5209e08754ccd81179175d2f10b82569070192d02a365b29a09bd13f8cf82c0820b2da46529100170a2b95d27c67c51800948609ce91b1456123831b7001bf53ec20b03a1ab4945f865b22add0245cb10cf8f5260b48c6c73e3ef7aff4f00088e0346aca344ad5b16c01a212ac1e331e98fd61f2d410dad89810b2c42378d3ebbdf8f81205c018f84c07867426b801f965f80f1439a02a3903ea3fce20093c88508bc2c06200c4e24a7eb069817058d892948805353a09b6bf0d489d88eb425469cca0098a857101f9814682f7a0d8c80b046f3ab3c8c8253a35e4494c06948ff97c7612675e406c0080444cbce363f7e8ffe2790a0700f3433d9026e82e86871f6563d04ad06fe2df24c7c9f725dc31b382890674928476d4983641da7bf43d497482a527cf490aef23e432b3f6c750cfa002ce3e3d546a9fdd884ad38561ed7e6f26056ede8dd23b150857a61cb21ccda3d382fede11b90fe8ca9589daf71a7ca69b07fe5a4ebeb3771b546b240bac914dc6c6e98838119dbe5636fc9a8e9881f2c6517ab69c6f41391a9edd60ece905bfcaf34797de59611db9ca7be451d9d0310d53e17fd15e42f0631af5ec87ca038f0d836bcd390e553824fe6693dd68f7c80827984ddbb8195add28490cef413ef9e2bb5dbbbb6e5792473bfcb5703af353dee817cd1efe6f44d50a35a9e14d9e204611e391501497ca361f61ed16ae5858e8a993459768f6214d8c114c34b0fc9c2285abe11025ca622c4bb2a7e5ff2e15324d9b6be075d78a040b823830d49795189c70203211d368a3025c1c809c8a367c0cae38dbd6d3671c8f805578a9c2171c31abf74662610dbb08546a8854101184d08576839b667dd25254e8f0ce0a20dadac9602b0b58491091d77fcfad9387338fdf85b6662dd26e99f13ff0c379b520ced8ce903c8af77e070b329c560b6c1dbf2c1e3518fbe61f03b521585e3b70d67f07119a8c78c10010b86a18ce3b7c945ecca215ee919a912a25d92a63d0f54725096b5e3e8ca75c1351014df031a0ce79b57201ad6a803ea2ff58753f34b3c1c4f61950fa7c6995bda52c00d19d95cc3489e17025c33c3ee522a8b15098c052c7540c075748060799d9aca94adaa58c1c00f8723285b87db07caa51e0eb5269fbbedbdb7945ba69464a809b009c8091e8553e1473c89afe48c573c8459bef295afbc880ff1d58a6918276774532251af9ad52d161b5858586c980d80700039509e84f5c32f46fbf0d3d152fa0dee559b31ce160650b526f4fb3b0cd96248d2f470f49ab161341cfd8be66dfabb6ff3896ce9afa0e7b408a5459c99cae1134d9764e7dce0d8c86a3ab664f44dc07353c06598dc3bd7612b6951e3ee04975c7f4df7e9eeee23ffd1a7a3fb7a397c3d638595577a0ee3c066d80cc621a5cbe42e4892ff77391cbd068ddbfec5edc7c16182ee9e8679899dc851bf17607c86ac8db80dc3912d51587ff912588b38dce7686f18d7b06e983f69d2d83934c859e77889fbfe9ec998f38a082f49f799cf66db56e347ed10088182060a2529d2249230f2a54d5ddcce2145293d202e6d3ceaf73a07bbcd2aacdc428bd9165ae448137dcdd3ea102d9aaa8904376534a184159e547184099e40830613a84803094eb2a0842236f0411a66e488a1830e8c30c28c18385105244cfd3a78898627390599895ffb1d3d0c9063a2af855dac82dc51baba5801b9fd12904b32204d14052db61cf18744864081978000428601326254d88225e40850fc28421a3d583161085e6c0144870dac072fb5008b298ec8aca490a208a6fe0e784962a1a5ca01c2148e30061a98bca0051e2489d2440f689063eaa780972480040c08ab3038c182164cfdfd4d2aecb86928d07264cecbf76fdb76a58f4ede1e8e73d78d7b297c55b90b76cdee79684f9f5ddc8524351aeeee1d28a7af648b8bd5f9537f0d746eabfc92028cdbae98a6d1b40ab20dc7f8c5303424290252eccfd16204b8e63689c160174f50bafbd4660e97e7706d1acb1c39a404648fbeba2b09e36a6ef62f2e7fbb6a10720432c717339dd8366b452297c8cccc342df6ac47fdae9ee5b01d295ded6a57bbbc5d21fb7cdafce247bc885cea3478d4cf5dcfeb683fde40dac22b3f645becf709330b49120e526cb1455efac217ef28ece2236666e79726a26406c95c5d772bd362333b2bf415103bb6ab5d3099b796d83489e6d5a49a58c765b3709edcbe79b9644b7f276c978ffa27d863c81619d831d9d26d05c6616c57339162bfbc73fc88327ad6ae39851da5cbe57231bbe6129e342e2ff9ca572ef695af4e7794ae27fc39bcf4ef6a46d2333e5d7e96090287872820a701724673923597dbe6cae9e1149e44b528a59c53ca293f3cbf18a6a19460a728fd1c5d25b7fc0976107691ccdc29293539e56b20ff94524b82753489d2a47e92f4549aa4a34994e9523e0ff2fde54b9e02f8d37dba6b3da534f1caedce0d57bec8250f87bc7989610e6318bd218a117f73054c1d3caffb6f125309d3bde7fd3d29f68f24696bb1ff46cf2049df4b1edaf3985fbf574d02a25b0a491281f4b6cddb3696609b18f4dcd1fec0b28ffab7cd5a0785d824ed07ce99b9c43617560353d0a38229f0344e1a48a4f31d38d36ad686d3472e5b56c5b04c8b3d418e82ada467dac1168124b116a4d8df382d6aa191dcfeee23526c1fdaf4853dc48eacea956bf4dda9b3b6751d509a1e04b9cb7d3140c880903215ff0136065895a8871d2d6add697f06b9203938b2a5a714b6573426611870fba70f6c0f2d767f47214bbc841cf573dce7234756a9a2b023e3ac524d1a250c87717ac8410130b0b3757248c06a9abbc65dd924972d6a1ddf18a9c9fad16103c4f5900239985dbda4495a8ed6c1f5f97c4039dca8fff976f0fa7e670d5f52e03133d401f4f2f2a2423b2a9ff6dcadc12c52999dab859f0256f962b4506cb17fc9ed806df26a742828bdb091b983d28627f29869d040e96ab1695889aa85dc7eafa38079a97dc0b2b1e0d1d855cc95d57eec95e77238a1b032663a61717cdbacc591891ce2f4aa57acb986c32a2f7dbe7fdc58f5f209ed7f4a285bca5aca3a876bc383220923fbca5a949763762dd4b4a669b11bec482fb56c2eec9227ecc838576ec164892b6509081f4d27ecd8da47870de3f0c0695c661ced478672fb3ded6548a459c52a79fbd5a451ca6ee7fb7bb56dd68a44cebdf26ce8701700df05388dab7daf5aecef225712e9f4901619a73ba1ec114eaf34c669b147c6b99d83285bf8bbd611f386b07ad5a70612c546169b518244b64821379503a5044b6014c8e146d3786ca5942c33063112e0ce85056edaba01795ec18aa17341d1cc90794c04cb9773786c3d897da60128a5d4e1e54a29894829431550f28c83700d240729a3a78c6b32936ba20910134cb02cb1c40d95aac5e53de8eff9f57767f680fd7acc6108502a20542868398007566bc00378603518985a2b034a290d5c2284259823478e1cb30a54a00215983b76ecd831030210800004acb79bc80611441041b452333c3a3c787c313a9ae4f0f8743481c261e95f24e214bf38d682d20e483aec40010a48c001883880901704083180015a70b8a999dd51a9c105382851801c941045020c2047e6bce970c78d5f30001ddcb841076108064085da60e00a4012367c1235d46037966d0625ae1956d2ae17a752a954cbeb31434a44436a65a546a88530106b6daee7a33373607534c96992d364763dee1f13ecd0a7a3c9ac493320fc3a9a4401270eac0e9b53d80131d84a54be79032b81b4289bcc9ae4d826393a9ae4e8b039bdeeac4bedea913781a2d99c98351d36409a446902a5494ecaa7a3494e9327edba4da07c632bb9aea3494e8bf27a2b69d2d8dfad9ef9172ffd8b44bd79c344e08425d0a2ec61cea9896a50912d92d25aebb67d3a588ab245fe36bbaeb3313afa6eb265a321a265102bc32d26455a3badb5d69b6b7898bb3b8718f18bd1348d525a3705e82065a5dae4d8dea8614aabd1e9f119031b588d766a60c7ce16032b434da334b06cc389841d3bde3c42a43251568634b09d49033b8fb05d0ab7559a4229adb5762cc7715dd7790a88d1d1d793d2aae8e8bb75e60caceb06901c2d6da7862639b7c7b05babe279feb64576ce0976becfe349e9c8cfe7c35dd769ddf4ee3a96292f365a770b316657bac41872e512ae745d61c855114998ca729b86dbb3e63a94ebe1107d5720ba2311a7d3e90e21bafcdb8f29578e9fdb3f863c383ed2a5bf2ba597a10c97078f21b6cb633e7dd9e2df7160cb16ff0df4bbc92d1cb5dfdeb550057ef9cabe7c73f40cfdf9762804df7985e03b2b3835d9d2af8114acb245ba8f3f2ef3cc420633069635f9e9ce114d232cbde34bfa5169510b6fb4d865b83c58b6f4f389c3e0623814bc0cb7711b8d8ab4e7d4dc0b4a0870c300babb5b0021f801b0010035b0d03083c84677b74a08f4b1299eafe375dc56a936bda594524a29a50ce1d468736e73ca3943ad04e29db3fa9cd335fa3f27f5cfd1744eed055a8e3639b01dc1d3a03e438b7cb33157b4ad4608f4b1299eafe36d956ad39bbdd65aeb6b359c4c354dd3dcbb60f9a7b74a67ce39e79cf349703db49d169ea321061a5040030a6878012091cf9fbc34537d9a7d9aac169b90a4698514fbe73686156d735933355bfdf2129bb670ce94cfd6e6a3f67cff94a2be36d8d61aeddd44b2d858676ed79a620feafaa75a54a566126c55d59406d3727c8404aba580f468dc44df711b8fe570477a6a8fddb8233db5c76ab8233db5c754ee484fedb1ce1de9e92507f1c6d7201a6bca7634f4457fd2d894ef9ee6d01995511c3ad3a24a755d2a59bc5acadf4ba1e7f784a0d941eb4a9a1dac70b89246881997cabca4a5bc9ebc14fa94466554565125ebcf0345d2059299c9f1206f6ecacb665a6c970d719c22394866558958696612ebf9e1f3a01f543e145225292fbe8ff8a98bba5eaef71d755dc0fb94f7429d0f1c7fdc6f54c18f3bfffbf13d1b1ab092c60c2097fef4ae5d1d933032894db93c66e7dffb0ec8b23ddfce7b1cc842430fd89fef01e923aefef4cb63fa77ef2578b9295fc1713eb929215542912001e5bdf1398862cbb8b0a3d6d25a12464bc99623b2a489449f8fd4521e161f40fff91da0d0473b5e7cd49fa3e716f6eb34bd13fc38c11ed6d410daad2a2da5a9b495c6ea6e9108499764bf5c09cc697cc9079c2e1fc5648b6cba3a779c312c3ea8fce777a8fc27dcf17950a8b57cd463bb3ea0a669d1d42e2f69b01ef5f708046a2dad85f2569346ada5b5b4192f81502847ad784cb6786c0607a52cd193ed78a926e135455197e6e0f6b37c13f0d46e9bdbb6d1707e9f16eb801aac450d76016666817989cabc1f3db75b9d8514dbcf4875169224a58f8147ad26b917e44479ee486533065aeaf67f3a1f2fe2298ff92847b6cc64cbe8b1bf1ef31c0973862c692d1f27eaf634e276a6d6f212dd428e9a7e717b8686a37684db0f7e13f05c0ea94bb668975e4f001dfe78085dfa35358a786021a60e0ac83b5f87bc33fc38615fbb5b38f2b380effcceffb8f499867366b65c769cad71e2dc7ed18d7177f4d97524cc4c5dd4455d335a8bba8860a9114eae8499da49754612777a819ee8a94940bcd9a7b37cddc6c9d9660abc9a121ae8e54c35a99590242d0b996a92d66a1114d2939f68d8a5857c1968d3e7bda67c74a4b62a4bb660c1a3feaaaaae26dc4a841af2837f3d07fb720eee915693a8abc52c24897621c5937bccbba8455c4daa5448f17bf00c7820031a53111e2538c164848587f9fe7e801c98c63a807a44ca9ae4f684b9ee112cdfd151d3c5435a5c69b0268d7dd26a8af4e9f6774fd874cd57aab6e69d5ad81ced282fcd2de4a8ff8b1418b7271394e8f6375d38743669baa1e3e05f06fbc6248cbcd3359358bee394ddfe1bdf0ef2e67a210be1148a53285910f66454d62479fb8e54569390a3fe256a14b04a45aca6d87dfbe9739bae395d3acc391170808fbe8780cecbfdbefbed13f04d603efdb791c58c60c79aba47ece741bf6dd68a44a0301cc5d10b4bf072e76f1f28c47cfadcb743e77bb8fe2f2c3e7c1ef41ef83c28f480ca4b9f14454f4aac4ae713f0b1f8f07995f700e843df0147d0620788986ca4279b12b4023af4444f1488c740dfef9ec7fc26a452e373b48adb4893c7bc444f35e829464f233ddd1f54c4800738489828430b31342e6646c821c3c917370081f403c6623654766514c74b20d08701d37dba37c08534891f35822e38b1c20d1358a0821729d842155f7882939a23c8cc2679697a1e8ecebc99afe9220171b76770fc97f46aca47da7590bea8ab08d67fa4ae4b5353df09df0b6b4a0a3bd6d44bc238e076e747eb75f3ab017908c09d44405f8580428fc562f70b359813c18e8e7294d370dcb64e385aeb85a8ca83ef585363951942e39c2fc6455f0ce8cc2456bb63bb76a871e7e76898ce4c62fb7e3cf8b501896507edf26b97430a48eea3c3c646bba3c76a2a6673fbebca4b320c3970c24c15418270c488a9bfb2bc24a53084295c410b479882164a30c92e94f1c41144b0c291203b30f55795977e00c14110a02c418b9a5912a6e6598beda809705caa422e87353563c759533555533555653e55484d79c9511f544da11c357172a66bbaa66bba7236aeb34a69a662635a3b1fc80b69cf83baf333659087e70eb15dca208f2136114b477e9378d0e7a17d3f80fb3187cba259eabeb9b05a43e9114721c20131429f0b811c614ddc737f84359d9ac4ef9e95f763c7779dffc21e3ebef77ce77bf830c2fd0f1d7498f95e9abaee7fe8fcd7f92ef4e1f9ef3bdfa3878feebd37b2c3f35f07a4808f5afc3bbaf77ec7f79e971f0b873e749e970de3513f90f9408ed8fc8fb0a61a3ee662d80bf562aae18fb02600d4f81ced415a7495cb842ea4c59e43b0e326e432f7393de323951f3de6326fb90bf43f3a8cdb667ac64bd2d42e1a7a0a453f7ef9f5207a4b7d05d20ed8790000a5c9d449fad544e8243417b7bfd333b24508766cd80764790bd2f02170860781a24fe18f7f82443c9bc9f3000051d6e47d0d70066caaf13580408e7831798fb226cfcb2f05f39985822c34f46610ecd8308f42b670a077a0e78ebe5ac0e8555c1afa0a891d1b16808ef412c7bd4898f909b8f20f207168259f8247fd44300e2d7421ece25370e904a10b418388297cc5a3fecf921370ce6dc6c1674897fe2e8347fd3cb83d932d9eeb21e3c81627594c2c2c8c3b6267669c4e9f52f8aac6240c8edbefac19ebf9fe5ebe566438230d29c44889f1e334c50f9c6081c40848b8991f8b0fdf7bff83e73bcfa077616d034a39f29088fd1cedd534cc4b3d6367667ca54494d50f50476882091953bfcf78690347fca00c57e8c29022f8c0d4ef2b2ffd98410eb290c48bd68b095c98dae58a225724e109408082cad4ef792fb9f7fc0fdd7ba18fefbbf7843e8cecf8be7b1f9ee75e9a58f83dffc3f4812c1cb2f8c0fdf73bb8ff9eff0b7b18e17047f79eb0c7f7ddf7f0f47f60e7cc961db70e105ef190268d8ebafd8e92306e6d07725e87bb1ac77d31fe1c9d1f0bbfbc3bb8f758f86a33bce86900a5c9739027c8d243f71990a6ee7f48f982abc6f4ad80d23403284da21fa72fa6072033f8714a7995e7d0837e4a93373b9fa701b43f03187a11087a1b60caaf802a5f03645305e5fd7c9026209fb740baffbe874e0b145291a980d21402a509044ad30794260b4a539702fe38310d1308766c5810dd646ab0be0247e169ce722671824081c8711df8803be5a6bb833cb81125c028c3f5b8233f0fd89311ff228c3c3fcb0482f5e767a1ffe3d20eb4e840681c77342642b6f84acee48c08221808111c8ec77ce5ab0e70290c36df59dde34f67665c2a367808b37835dda7bbcc89081515151bd3ad70299c88243917c982a3f0d50ad8b7035926077a9efb1fbeef421fdd7fcf853e8cece842961eb867f9e153bee08282a90b59e67b2f4ddffbe0429619b2f8d07de77fe0de0b7d78cf7d27f4616487f7dcfbe87cf7d2e479696a25a07b66aebbaebf601e509a3e509a3aa03479a034c5f4e02b1f5d11f64c8bd38815f96816b1f2caf526a603a3a2bcd43da1b382aa93c2003a18e847faba01f435de478d15d0af7ce87f580943610f5b23ac305028b45bf8a4ca9a74d324c6817909f45c98aa3715e6b12096c3b13eb9fd38f5b9ef22aee6dadcdd7d7c7777f7508821b45b997ac61f570385e009f873ef699ba609519f9f32f3160ac1ef31585b522ec4b9fddfab45956f49070b6d97416993fa5a352dd618ac45ed093bd25707861cf533817563c4bc7322eb60b07b83e32aacc26a85354e9366777777f72c4007024c98d0988ad0aa206202a970213b585793829230320997e6d50be8f73a180e1daf51b6539d552835560bd0614bdfc3e18bd11e874f47dffa2d1db695f5c5d4222d6e215bb8009b06d4cfbdf6c56c740985d197e6849dcffd485fb77f2c11462b0a4a78810c694061eaef70bc1443c40857503dc9029299e9c70d6ea2004516b430430a5598fabb98975cb08a410fa040820a638099fabd2fa65db2a5a3c37db9fcf5c74e9af84392449f3f4592b4e7df240e295deab389c371085a592d360d585b459ab0f3c73ac35aa49e711bc8ed19d6568bcd841d2bcb73912eec9e4a469dd528dba9c50ed6c13a586703ea6a3a98971ad41dac7b499d694fb5a7da53ed2977a9d458b1219a8106961a006043001e0c59aec8ae144011db0fdb4d061c78f2c6e8b14b66d504198b12338142239d2f2204c40b93114e015d988ca0486874896fd206b2f1e3cb95b2970195812469a0493d684092b80cb2872671948ed2a49e8114cb4059decd4818e9c58a97549ab69aceb48d3ffd659550e8516f5279693f293347dfe0c8fef31a10ec484f97a268aa49429a64659aa4bdcab7b59f12a24178749ec710dba5464897fe214497caa013d2530d1f355e45e56bbc8f1aefdff91d35583aa10fa00ffd0fa00ffd50e355422b32c30a2ac860922623fca305a99016552dcab4d85f0364aa4153291f67153b29108aa2a7169dc8cadb00516fb2f12010c8116fb2f1a837adbcfcecb436caed6db6c93e9f1332ce5b909f28b123e3c8fbb11ff309a5b5361c59764879fb361c596c4ac843e50ea1dd1f97659b71a76b6d7caf7cbf36bb3ce61d351c8efb68369f508b05b19ff7d8764e8b3db6ccef0aa8e5684fc02712c67ebfb60559a246488a041854eea8d9909e7c80dec6fb08fdcac97dd878d0fb58f9108bfd1da15f79f9b1d8f0075068e38750b812f6106da10950903081c2978f12569a548aecc0244d46b495fd84ec82c2f2741b7d41a03439d137e4e7d0a48ffd09b293325240282d768b34ac956ce927507468329606b15daac5ea7d8e9e472c0bbf8dff6162611bbf03f436c21e46f87ba83c28ec616407e857be478db7f11cee58f9d04ad8634573df3e4fca33385f9a7af430b2c3868d90e5f3d2d4c3c6b37c3a60439619fac044a4a088fbbd074c015fa7a9165b9a401e52d50a58034401717ddee0c8aab0ece010daed684fc0f91ed8505a9cb50a285d5e953bc3ced18c580fb51c0da745ad08567b1ab495edc291ca50d526933063c8928683b339d1c4b0e5c4b6282dce70bcb48de124e7768e18aa7079f01de9899e64cb7ce77093c91628ec0cbb6b5ad48860b5706c24b7c6c9b0a38c75107aa2277aa241409fa35bd6b296c95807f8e43216ebd886e294483581f652b6c12dc81148182e01145ec872cc50c28c3270102389923492a0055512afa9f642e2560d2f242edd5043ab4d59dc6e915e3a76dbf8d4a346d5c038640dd2df433e318a4f23903723706d042d7610b343b5cd138ad8a53d5cba41321046f1a9457e82cdc1260b222811860fb8e0041305944421238a3190f42088e9c791321c818819496c6ed030f5f38c97a4168ea8f1020b2fd4c089124c7c4b23e8513fe12222c60104bbf4a3e0062eb180a54c24e32c00425a210863803f88f7b00460d851de5cf9d281268d35689d3b6b743ee3a0219ffeb20005ce27c6b1b14b3faf9c055ce229b6137779870e2fb2a55f660a21b7d909e9d28c032882dc0066fb8e1c24663ac172100e526224dc6a821d5f5aad961246d2f21207a9415a415aece7202f2f2f2f22169ea3d117d9e0358c83862aeca2798d8be1353688da733daf9535eab35d9d8419aab04b12b864038f5cc5065f718cbf9802c644bab0129a542258ec76f96b0976de915fd37dbadfbc82d0439ad52b2658204d1ae5ec3689dae08b32c6b87ff9899030f3fb5d204b7df246b111b73b8544f720b56dde2b1b363ced99e5884543b83d3214ea3259e8365e231347b2e447446f89de12b7d00572d6727112edaaa2286e9b0ae3701976713278e4322ab7a9a651aa691678119d9021c365301a4fdcfec938343deaafe92548ecc8afdb5bcc2556b6642b1c79c85c82d5eec8389fcbc2ef48523db4eb0aeb33ad16f9251b60842cf117f54711bffac4af90833179b54b142b11754684eca149e326b6d8e2ddd1e2e5ad47b14771c9153d47d4d15a2976a1476859682d16fb47f03294d7528cc351ec428fe052e5416f9ebb551e704932e36830a40b173cea0fa306b7bf61bd454bad49324df2e76db37614ddfab3e3cf9d7008edced75482f5af5fbfbf18ea94a641fff91ea00f283432bf883a03d32734d2f976a1a4c733dd632005d2627714c974ade55124bd9a9ad393d6a21aa533b4e38d119b9d2d2c693c9d8ce1e46ab19cab55e13691cffbcf2ca4a8cde91e1b658ed62ed06f2db775a64e215335539d99622a93d1312adf8e84f1dcd9ae39c7973b3f47f7c783bcc2ed6ccf3f535bbbbc5da05f4f7e1f27ec7b276c149fe61653c645bb640b12b2d45bc8513b8a9bb3bd1a29a632ef2608e924acf8e439897c1cf46de3968f78c647fe342e97763de425af17d7b408a32e17a5b1e198d6d290704bd0c2891867fce00b5030755f20b2032da860832fb2c032452712ea9a33dbe6fe9e10fcf49d7ee7bd2f2c5fda48bc197cf68935984685a9d56851e051bf334942f6b6848d42562a3af365bfef3c7b2fa98b7178a1d662974d6b51993b0e1332648cc39d481729b016b0b061b2d8a796cac16590279b3419860fb430622ac2638489e923a297a56dadd88b56d30b98ddedfdfcb15d0d04a6d534aa495ef5eab582fc3bcf9df7eff4a9f3639f807c8eb61d4e161d0245c23e27ab4954d643a0489ad4abd652940bf4a60825837da027d918dab4b9d30a938914e74bcb399571f2e6cdc49963481cad62979973c77985db0fa4c5d66a5ad4623d52310e0d0ce9d2afc9ee4c18b2a599b81ed8d1603389edeea8c12e206faef735e5dbf6ee2a2aa0973eeae196e0e57a311d9884613064a9561812ac0f233b420f7a1f2aff791fa107fd11ebc3c8f63e3eaff23e401ffad1639f1dbc67d9c19fbdb0fe3fee4c62edfff07995ff01f47995dff17995dfc21da00f3daa491d2fa4d2ddfed3fb99c44e6f7b0747befec57861a34e3d004739cf5eddb0cd2ea64d4dd9a7d985247513dd380881b08b07398247fdf9e031e859a0b05fdeadd8d5c1ca2dc6307353de7bcf3b1f998419434a270177ac309f5558855598e70136363253110ea50926239ce2dc7cf9375eb256f953164babb5d65aab06d6202dd65a6b65c160158c27b08be7bed4cacc18a8a156514cb631bc3aa9b05a6b0d7d4d8b9e0aa5aaa74e4d02cd40ec62e6020dcb26e7f4e6520ae3e606521cee8e142788f564f5a6f3e7a20a45aec8d9c54be097e498d909d7b504496234e4ab497c6217a6e150e62596d114a3419dc896171d438ab40c1ecdb419fd420f098322450d4c456853586232c20f3ac1a4ddcd6adfdd07ab309c169959f661803ef71e052b8e7f1dec73b52b6c457158719ac4e1ca87ea7bda8ca53f56996c9172cef1b0fd7c1ddca4425ad52bd6eda7d607d6bb1a2c587f0e59b8037edaecee4871bc3bd2af07e923f7670c7431212d361376ec603eb0a9553ee2260e37dd65a312726f9a3452d6ab42ef2fa50deb86b5c2a07e715d962fd80525e370eee54f699226691a037025176a290f25bb88b2b64a9b719795b86664cb9c60074617eb517ff7042ad3c93a980dbeb981c3cba65003403f8a1e80da4c2007a04413e847003400a58309f46300aed486604320edbda62ffe991582953ed28260411f7a2476a4acbbd510c8c27d8dff6102812c5c07eb42a11595ef61e343cfe18e1aaf12f65079d077c00ff62df95ea15028d4f96a28140a854296eda5a947e859362e54bdce7f5ec87b2f04ab0db025612a4cc21c914e9cdcb1c260ac65d1c96877b3026e58d88da349c2bd472565f7f8b3cfb812578bd3a7cfe94b523933477dc2805115c8995286cdd88565f4092e311933c641533c6b56ab98f3b6e7dea6c566cd0eb63df70a698cb2a46449182a58ac5a512bdeca53bdfd3cddd357e87f98583c20fa199e7f0650280aa589431ba16456582364ad8495c5a32134998d6673fb8fd8b18379a95d6dc3d1435d4f387aa7b19b75425418d2b0838d15552bb76d5bdd6aad95f9bb63abf88e94b583bca12f9128a42f0af3eb5bd8a83edd34a9b790e1b839517f4a98526571dbd4884ecdea19770ecb39e7b270966685246d409024ce595e048dd52a0e8552a5b62115dc569b8c6c39b9cd8c477128fee4c68593f344ab2a12a156f5132c93a99cad5051b285d38e784bc270d378387a2c57f2a367118e9e13472e2be5ac94cf782b6f8827d379dd4cb67450ba58cbf6ddee6c675a954573c776a55a465fd485b8ab3c5559340cedfb370f88168edd19a86d7a12be844791aab05917c53b819e4c05bd9537a4c594a73ce5322e2455613058856d325d67be2941d280ad486f437c3bc936946f2a9e3a3c94b68b568dfbf975b0c6d9b69ead3a58076b6de1646e646edb9ee3669df36b976f56f4bfe9703b235455298bb27418e94bdc2c57914259ac0ba5c59eb5d8952561a86075b0ca627530d9127639b2c52a516d2049399024af4d5494aa55acd60cabf48961b093edd4994a453fc1386a12e952aba8457882a865d0a74a45b33cd7764bbcef5e0382bde9709a24c4d63d6952c747e8413e561e87bb1eca4b9e92a3fe5097d3cdbc936865559b97baf60a2b4da190a5879567d9017af76ae539b78fef37818dfb38a1fde46cba9b16719e743050fa485e6eac3577f4d4ade952ec09ecc6e67627f3420aeb42fa2a62474fa53c09982fe11ec5ad02f3cdcb4b9e4af98bbea60e8ada843048aff7b48e36bcb083c996ab59612bcc61fe34ac5b480454835096fc288b7158d6a28cddb99f3eb9e9353434b419b75554c5c18c716c2155b10babe2804bf50a4a99d0645edb73772f6e99c9d28858558bab163b28481cb5b36912cb5aecedbb1a09b381ee485fb4c3b63e83a02bbf1db6dbf51dd4b8e91c7d55589d4569f154574336592ce52f330d183de5a91a9b15f6b97194a5629756b1ea15954563f50a2e49a64ca40b55026dc204a52ffa7277ef782e1e319386f1d886b0773e17c3354857d34141baf4cf4e8ccb33aca98a6a572fa10b49f222b601e930ea19ede2b8d936a81234a50da12f7696311934c538b6905decc26470494b2375bb59b26589341847532199b0828bdbdf2ad9e275cf1f0f3e01b9c1deb83eb70ef7c574cf79dc46a9a02ccaf26ee6a5963961f64e9739ca6a910329cf78d6242770a51b262e94f6c65db5d81eb2ecc0bd2321bbdcffb82f1ef56f9b27c17ab663fbd3c1922d2d636bdc91f23f2009932bbc50028a0a4a4c23bf87544557dbe5e7e7b85771bfaa97fb96c24d4e58498f03e94a4565ea95f432bff61dae54d5ab266954d891bee68f1d8c03298b1669b1d562b32e651569711c27b7e86012e6fbfee8122475822485c138f8c52efdb4c97db5266345b73d6759fef939e75a1433903858b05d9fcc02110d248cef007af8db1332ac458e759ebff342f0733bc39872ac493e632dc2b697b786df53542dd3244f0f6912ab494de0e813bb78bebf18fbad92304bc8520746abd886c7b9f3969202b2ecb03dfff63fae0ce8b99d9f76936971755b25613aa5488b355f2362b9254d4a81d534c975a8dc4ed6d9745dcd89717460c82e0cd912830974b0d01d3b98e763b7dfe37907c7fac5783eee6cba9aae9bc27642ba52fdc0aaaaab8b3b6e546cac6dc84aa6c5de82a092d8c13dd5282fc651cf902e68b08ca89b8b3b8e2ecf6e4e2e14a706c03096356d428aadcd665c23a34db054422000c35a0677865e328b326842150ab519c3589bd5d98575362628d4108b6a1257d3c538af3912a6fde3ea67811f773ea7c9581bb7abf10abd6a155caa1176353dea5f79c245e886089d0d16578a8aaa61079b77f4990aa370bb093cea31bc0f4a3589beac60a196b04b37928af28d9b56d01765d55814b69a63b30404b6c9245bc2a486db386e0b733488cba1e18e358707fe9904cbe0cded7649617bc653334d6a1180afc032b1e3cc6d256da6a5b1857d62176de6a556f9280d2ef5135c78fbc438a88a5dfa29cb47fd0497e815dc8f2d5b2a0a892b387519475d42baf4d7a036d11325617aac28ed8bf17c45a5f8a8e58b498cca341fd8efc8f7eaaf2561b8eebd6fc9edff60639dcfb3f359e0c79d1ef05bf21d91a3fe2f1cbf24b759f273a5dcb1b268c883efd8c134b083c9968fe364ec0cdcd68953084baee0514f16d722e7a8388cfa058635a93a61598d6da7315459cd9941a24ac958eec79a03ce703d03307dd530ee265f4da2ac16c39024aa8414bb49344555b408bbd025b7b910a77a41b654148f9408e336c3a4d8d2c495b22a8ac5a10a4a37eba234697660c8127dc951bf1dc36e4c6e3be96ab62e1676b0163b09f3852cd51605a3ce30a92c1b577edc06f311acb23a586575300e941526cac2edb1935d8e6b15f7630fe1b419485371daac51614761674e8b4f5ac46991e74c79c9c6d7f8715bf9d18ade53a91ebda8e420d6d8b6156b43e10c62b7f7d856598b1da2f7a844cdf357492e15cd000000000073140020200c0a0644e241a95c16d4e20714800c809e4c6e5c1d49b32488619032c618640c21800010100118289859250060ee32c856da863d5f561dbde373353f2146e8c4974213df572fadd0a3ea9d9f75d40d2fe38a94e9a79201f93c3e258e898902c3c95c96116dba9a7fb8e65298b641677c7fd6d2d1d0899e0aa6dcee10c020b76446681b5850453afe37b478964744e5cb2cb3100cc75ac6abca6068336f680732b081b1326a61371ef0587f5d088e01a79ee30f81247f86676f04eb3fe189d09cb8c555ad71f0b00c2df8c23f0cb40b14c38616f2c096b0cb64ad06e32d01217b295b03e701d54b66b7c9c6167920fd6a0853af5bcc4c51b0ebf7ab870ad0e8d2bdb8f53df15582ad90c8efa31a08dc7548ce1faefdec55c67ca9bab28287b4ffc8201da83c9d8e6d52a6bea508a77447a19a871ef49b3728bf5e1826804eeb3aca2d9829316e908abf801a6e8d64bff30af99ff6f960840058593d0a8f1085f4de94ce212892be8d8e6b526d14ae8179263e33ed740dcccc927490d3f436ad751ac8a2d70325b29717d66cbee6a729b90b2e04c41599a8b7a36414392af43ab5b5671456d806d47e1dd2a5744ecfad06802a555543a9f7f9476bb975f922bf6d759bc62aa3fde6f00e992f55f7839cc8e5a3621ba63aa56ef0ee4be106865d126146fbd44d3c9ec6b95db7bc0e26f69b298960d854db8abcdde4a3a1464803a7f85623c2e09a2266ac8ba3435d364c0ed45d4cc6838abf3d81d9d3be7be8c5a7a761f323d66846f4f9d820344cd71a24379c2aa08cf4a278c54d317fa7edae9eaabbd3497b9baf347f36c59bc1a2007f5092b77106238f3b7f76338246724afc3c3e7ab8c5ca30e4dc115392217ac235b498ae24845b162350dbd93c5b0040c532b14ddb5ec7b711849c4159b578edf4a4eaaf3416bc6cc03a9c3a8bd61ea96f3561cd89e8bdc5c1614c9c1bf7b47aaaf2124f8eb6cbaf7896ee0a0d49c500bdf8b5ce52f175a62a37731a2f5e18bd4689d8339e05c0e4e81aaf9a6b2305a0b243fa1edd15e1a0179ce5db03541c3bbe4a55f001b2471ef768846018201dd37a94c9631691dd239d0c98c8c8936201a180360aaa2b47c31899eef5db5d9ec645769cfca210048e293f113c32112f7c0942a3dd25c36df833bfa761c4e664588a67ff6c704df5d1244bd7250fbb613eff831d75584585b94f31250166c61d32014e89a6862e43ddad4225ee124236ff7edff0b877f0c7f1962db1d4921e697c3926230eb0f3d53ce1bc691fb4a4f768c1c30e14a162649254d85a0d5ccec64fc2238be906592933a20e34e7ee4052583cd0d62a2c421b6bf15129a2ca5d27ca2c3aae33473b68b6abb5d0076f3a9a128f25fd3861ac16b689152c0cd46bd32dc29d902b349284af11183e1b0a93cd27ee5184558ae3d9aeb6ce242f88b0c02dcaf0e64c5ea33fe1ad72e1a77035a85cadf52a5faace5015931dc0f3737ea88cf30d374e16ca0f23e119e9af8d30db29f54a18f43d51f1c943ebb60792c78e8c254b2ae21eb3548f18ed4a7114e6dd393134774614301848c3cc64513952db3310c5ec5016330183459729b8f4d76c4a4dabde8a9d664455e4cac86859b6ad34bec4a124ae744a20a7713ba161d7c1a0ba6cd790f1caacb83c1c3c53c9622e4961e104cf982a14c734a9a6ba91943b23155216745331b2f832c6203692f66a1a002a5cbb23e65ec20b045bd0a78071777f0f1edb3da11debd3a4ed4458bb3071641db6e427a2622c080777ef1a833b7d4a0c48dbe809d610f1527a56c5c9ec14b6c0b87d2cee4896a765bdce8b95017470def73a673df49cea4b9680bc150213370dd3891c90f1accd55115169d751b98377eb08bb216b739d5b925e75b278b63cc17a348b3a94242a868d26ad09c8c326c19b0f424052e48c2e5519c4a05e53d42b4b1f5ed0b5371258889d608cec56aad25f144cd5df930b6911aa1230be4144c14086ec7639daf844125b0a02b46f1f9e3176c3fa40a41eca32cef6002d83847d1c99d689292767e0b39ad5b5a4b80af013281132ef0f25df31c1b104c643734de641f6f855ebd44493a80f611dc9897e20051a3165244e9609b09ecec20723967d0c06013882027668fc21f86102c8fa2e8111f6aafc809a7e3e5715fd856f5730568592c9a6fd013bfec2a7cebc10c8a3bcb39f0ce968d9c878e7316b3b62f5daca08ad7d58b473d809d4e13729e72601a8a078745a0361605dce4d277824335787c68adab1e068bd82d2a9f5a76d30cea4f2e238a29362e20829e69a0a7fc6e8c813581360171abf8cd10d1a47c6a0ad17bc1ca0f0258eddc5c2b9237cf217a04c5b58e61f64a7490aa248f984d9bd20af3c9d4baaa1ddf2f7573f8d47e36cdfa4ad73fb7ccd469936e4861ba44bcf7b64a8ee28af27fd417c7f6c5bcf9f8f7b4d863a793dfab414ef4d76544d49dc9ec53bca4a0517aae120aa98757a455d2a66cbeeb033cfcc4bdeed2c69b470484bd1c18c4d0581c10e3e54314407596e145758026d2ef19ca2b8fdf491f3f2a72dbb976d0a4f23d8c9d491e059039a89b33f3ef81c716773f2cd2894031034dbcdcdd292d3677378ecbe23023cf34affe0c282a02727fc352b1c96047058075a49a4c3bbdd3807d5e70d250253c7c42205cbe3224728d13ba76d4a74d1a5132706f16de07d0a69339d03a11352a5ffcf74cab15da3876710c9b1e4ce9ab11186d9e06b827367a3d1d9efbe9ad743e465746e540590e755920117392d1a6124f02afb864896ee6eea8ad3b54becef1df86ade7bfd7fc719a3d145d619b9ad114dc3334a0bf5d63b866881bb7c75085382019416bd2d86b53512d2727c08279de4e1f27d3b56da5ca2ec91f796d284f6014adc635096a334f426ad34d69eda15f1f991aef84279aea1ea50ea21fce95c2fcd903c37df5ac15c4305baf6de5bdd69ddcb72a65f2516efc7595fee603bbc60b11ce8a8203872b47282c2df00e55ae6a881598d852cca9593e3a197bf4ce97a501e0df89ac572dda1615bce63e61529e5825cae983c90cc719771184565434593564489425970b05398cadee275507da078ad2cef60eb25a59dedc18d3af2ab12f5761bff1a708b70e7b6a8d33dc24d140b750ae234f7e841cf9f8433906e7779bb89c4b37a197413ed87770aac0db77fe70b56467c99c2f0dbdecb07755ea6480a49b23ba8c36d94e8ac3486a10dc228090515c967e7e42deeecd53cf86e1b0172c4379f5372bcd607cd031473c26d148e08106c0bd028fbc1df602302844a40e968d9397291dc9acf701d8ca6ee9bde1d8d348ae3291aaff8863f74fa74121cf357a82f436f8795ca23876862a283d3649f4c9337fc664b24aee63d3f0dd0a871b913138f011780470da8db0312f7101e3a00a8f9960bf496aca62e690c03f0e77e0f87d28a26cc13a2dd629af0a35966a467c386ccc169ebe9347cc9010f788222fac05c07b9aa28245ac304a2c417b561f91b1c640294fe23c8d3de434bc5a26f995a2e441c40414ae7750067fa21eb9b9548573e3851e7b36e20ea26c0db4e0c9596c7f1e0ebacc092513495a12a353c9fea004521d6beca6da76c1980a37173b43d5243467b2e2e5c3c7f728b0a4073223439c472b8d03c95b865b0337ffa43862e798d8ee2da29c8c312efd193bca9419beeacfd44b7cf529ca7218bf84a0456b1a1da4b923bdfefcec102bd446af6754a5194b9214cdcd769c01085d6754a89f7b81327f5cc0b015132bf01021d1e1a3f785a3200accce51ba08232c1f6b8f423ad42fd21813475ae56e2b91e25d208930e568125dd8894c7c35d5855a0005531ad79e420fe71175205b85af417e17c67069c9c5f1933c822e3034d6816a37db5f637251438bc61874112f1b313c969a1437c8b8c7d2569def8e2d0f701b6965bb57a8fee3a4a7a908fb2adb80818562fd6f5cb27ea319fce15fe9e00348e228e12b22fe59da24e61e8cd47997cb857e36d613d6edd89932a0b2a511d6aaf4a3cb749871a8bc5cfcdf471c0036b1b8aea7288b5e2d86505c30337c4fedd8ff61bd6ecc36b780afb2205f3e764e93ca33b7ffb8caee4cdde7b096bd48b47af2c16d3dabd41820a63fa4592995cafa810dd5faf3c4ceb42aabe6c2e86a5b126aaca8a3d8ff3db8cd0c8f4e53af4c55e4d1fd65cb9f67dc33f88102d3fcea6d7d076222666489ac0574dcc46f70b32c9ce22bf4a7131e8315e3ff1b2f6c2ee0e8ee27d563eaee5f92aab92092038c7b05f9770207c00d8179d03280427ff3ca69f9df15727181ea0fa81e497e3b785ac3131e030cbca748b09f6882bad2db2cf1243e2f60dba8190efda70c5e2cc1356769fcc3332af93577abfe1d95045003387c711e23b147c8fb984d80abe3e0edd6dafa08dcd99301b5b12ba444026332cd1f27793e4f5b316995a68dd1db3590fa749c1d1636ca80bb0cea50d534c7c2da694a210826db0f748f6abd807bb4bd08bcef400a388a67b52b0960b5caf9d6cc26344ba0aba7e71a29535715c425b2d7b6f84fef710b2b97dc9c9ba4e48f5d982f2e265a0bf029038cef413dffc7abd0d3ec895b172970cdea534d8573683b75d5b631e83f58465632d9b522322ecdee848406d2d3f70a091dc8ed41f322eb86c4239040f893ef5648bc32f624d4165b36009738871a7de66d1e6883687576057ec6d93b8d6d876883406c8de220eb1b7d5d83a1c41dbba68de72eea8debe2c387645fb31d58b618b85b68a21ecac4f007441cb7763dd9190342a42cf822cb2ca71782dab88a21515ad89c7baab79898188568dd7c8ab1187bd28d8622ed6978cdc27c50a0d1844ba98fbf5e6760d84aac04e765db084ee9cf05a48719ba1e6206279ebb2c71c3a6486ce0a9ab2dd842ea6e3580726b7a5ef1c268a06d698a6ae0109c254bc67b3624fa6d58da0016564bb13367b79e169a443ba62e8bde19733479938e9a9e4f40c549c0cdc3c0b34472e89876ecadb8042d9e353040160d4a06b39ba76b2e98a47815e21db0ed71b8ab4e88e8c68bcb3834b7c5d2238a72f5d9e54f1745e9dec8dee6024ea2ec928dd41eb726850339df1cf99ea98f0f863acc95e75f26269496e9f72a32af29b0831ff4463c21a152839197cfcd274a65c47cf86a9a24b81edc57566c2ad0970d39c146c5d1529c278525e62480f38a24af4e6c0f921a78e8f9201b3f65d4d80bbc68e4c08572ae15f560ba1557a5b5a2119ed99e01ef624e266ee54574e20a100a360909571f78fe07d98111019c3c5ad6d8f8716b6ffc44004bd8e670305e1aac3d261314d73bdf16a2d90b1cc73c3f3edefefb7186427429b647f09b929c1923ccad057301a081c7169bda35c27968962ccb3093e183a11e649b15e9f4de556a16d483d4539f33998b96450f88424464f8f28d1a7acddbc0cb697e9d818ed06dcba2e7efd73cefb2cd6ef365245f4c69ffa6859afc48adcf0aceb50560ecb0344a600b00aedb102cd1f90955c4a262107dd334e762dc61e3f2b52afcdd44eea3f6c4faf8d46bff56e64d5b8568698aab7c008e9b5bf6d233df2d4a4e9e858d2c22c222f895d39d78d82b07d57293ffaeb4670894df13b091d81fd774ad4648a711aad4db0213a6d73c61b32d159b22e92268df50066ef2e027dbf14194a9604984ca56da4df355e0c3c8888bb261127e99c94ba05ee7b858b9f0a6a65c87f610e228a49cf61d057c1052cef1b9b9ae5b3ae2ba75cbf0972ce20838cb4bf623e470f941f01d282ce088bf23d28d464e38fd2a0b3d4031d1b7bea3ff2696143f1166e50024a4255330e2de957466249ac56882c401ddbbf74ad9afa18ec1788c182034a467a9bffd901a780913ea80dce8f2b209591b9abe5b048a4071b4f4124bae55d921d1c4e6f1148008f8b8bfb58f0be5f5bd50531b99259f77aabcf380fc962d212d59ad5335bd1a6f4b078078fb6151eba1d56cfb13795db966a939494ceb7ad30f0aafa8032480e4b0973833b82fa9e7732f3d6c63b49ddb5844c29ca42800ad089cb0f1b3c31d0a93135f181d26962ce6c56864c3df64c468a24f91e38b6fa263e710c975cdc9977231f27bbb1cbef141d7b3e73daf4426ea2e6e6bd8c5af42165bd7ca3584ff208504dca4a4c203e8850545b62510cba86941fda0e305553326772655f817658be2c90972f40f4ddde6d046242bd54eb154a34c6b6a9580dea88d5603829d20567101471d59c6f58ea88172a9d2b859c046794cea94d827706e1bf673384f3ade03b713978778be241a082ca81501c16c3cf4498333caf3c8d77e57c5c092fc4a7d8ce856d8c212190e2b8b68564a87dce8698cd56b571797aa64c4afd20397a8814c238f634de6f82c99e1fa433296571bba2ec67d18e15457bea93fce3a54840cd23d5be0b241e7292c55f41409a89e3057f22f563066ab4f4aee31f3f985412de83f824c96a30236cc8187d01109c3cd33ab2e18244424784c58612791f9dfcbe63066a8914fd9c0af26119168e9a98c4f570831e63e6fdc5c7758ee7aed6744883570efd4ad64103c6328a69508bb58c75416757601efaa505ca659963e720bf2f26badd76412cd3383ad0f7818aa3aed89ab635927bd846395052161b63d9012c8f263998a3f22196cdd145d41325e7ecf1b50d400c4769985cd4cac760b4da53b91d2828089352aa5d4ae9a051afceb9bb8c22af081a65d6c4d885aa2975ceac6b728d6b37dde4cbfeb6320d96e98cb97c1cc9832615d3c61ab0d8cabc1651af8b7907144bb9b6dba7b962c647bceebb07597eacffd1303208556d34613d67ad084de06578801afae435ee804d2d966a6c2d55a6256ae1ca59d9cfc2a431cf3ddc4aa079d282ec6dc98cd77d3e044cd2b2bb78b42706d36f4cc066f17b4d13a86a2e6de6534392fd80161f4f577dcc87f23f0ff69d291a4c0f8e5f56f965e31c1d1841cf1ba750a30ed1274e7913722e0ce8730ecd0a9d3f71c0b45c9907f35dad99532027642e5ebf7313a9c43cd3768f56518bd46df64d567e82c34374900e9f74d0b33ea5843f409a133aa899f5a6ce4074f94e7d9dd0534e21cdd338029a519d9410de71286670059ed82039e138028609c00dfc363933754befdf9e5057396d5a2b5a2e515ffc61ac25c94488398a6d121f7dcd181584dddd5aef16843383520a8e920e4b75019131959184b195215d31d8a5ce53bd4da2756d086cc7e81ae341266e481d9827edb8cfd2f6f6248bf745ca17c3db2dcdeff1089b50a8ea062745b81494c454595c6fa8c030e304fcd48974247661cb6a9b869d8d6aca92681d959a229bbdebe91a331a2fe7917d64f72dc55950b9f5e6055805e31f85ea6b4ed8cb102617b564a0ac3127ac60a76bb681270128a1a0ec5030717c750167ce83173dacd3e3da27501837cc2730c320bff75cb6a6d6174f29fbac92df9d61a14de6791754345b49398cedb46c9fce9c90877a03c4f3baa6495286e4651b2c3c82fb2eb224b8ed4883598e15b512c92d9312d74ffe169c0760b1417b8b6a7b847381c751ce5a10183ea5e92ab3bdcff355058c35fc2b86973874051d875e1435111db723c03a42c79798467b0973902bc0c86a697e0584bad0f420fa2ac8a37613af0d0fc29bd9689e6d5e82dd3c828d1f7b9b5e1dd42c390fb89c722a114a919aee18a235c492e6d98a4e681fc40dd50fd646b9c63c9cc80ad696bef2148d58ade69a71e23548c7fa262b140180d81a3c38b52f65a846ff2da3d74498f51771f932b5dae908b1710c0f271714399a142716e603d5eeb7e9da5340b42e1628b730cc36317f36044d609b8a7ce8a91a254351323dd5d7b83a451e45370645a6e241607b51a87277662d467940e18029a5c9e06bbf4cf8189373c0c0446d85b2caba01493969e49f568fd887fce130991baed3203d94150b997f9299accded5168fb42e3feaaf4d381e77895b798526380a675f3006de16838d368fa42c3e8105e8bbe4a85de188c5ea7a00b9d1b127e077f78fec713c1c23b2824ca9d28f61955765180858c33d3e410d6bde54bde6979cbfb0fd0ba2936865da9f22d18141695d384b78c5b1900351ec4482c8cc1bdbdb72d8c27b885107b6f814e18b933eced00adb2303b7d11a67b4ae59894bce79a1fd6d44fab7eb417b45783ffdb8a3067132466c4cc4b3807df55515b291f36952b709845a877a31ee8eba127a6f658d8c1cd1cf081e93034f04c6badde75d816c905f03d71533a94de0e6eb8451e8f5896fcff7944d92b398b90b392b229265e82402305e4b8acbd78f24cbf53ca3c5946397f8d58be956d7b90f49dc6a3b11f208ca5f73e43c5ccd382a4a1104a52847f32f4b6b98b8fde5ee40bf563a60c0533ef669ae9a7264c65bff4793800a500d9a841fb10c2cb24673bdade9c28148d43b61b59336b60b81b550b820d22eab9a932637795199d2f41d8982a65fdcc98acb902c8da955c9089cccedd8001b5e42430d37cf0ff5efd2b117a799a394b81106a75ed295f073552bac57c5bef788e13180a725394559136092bba47947c1c3d5429c184ff7aee1eb18d8556ff748453c060a4f7992188674068cfa051fa877ad33d2a9dc9785ce83a9339d4985640d826ad32078832e7d02aa0adc045f52859929b20f964176a74ae00e50733e214a4057bf1bfc50ceea1c00a5762c2ff890d1d6dac90652e488384a3770bb989c526a5d4c242c1b7b33f47ec950cd3cd991e5508ed02b9be0b04c335c2635a4d412f186325bf493cd18dce5809ae0cdc7464d6387c9c9f0eb704bf51ad4a253815a57299b4f8e0c7bb275a1f4c3a76e8b6540170d797f702b8daf38c486880375945bff0cc104488a9e625962ebc2fcba6e732b09887ecf62047c7466aac241da2f70217c6ab5249fbb7437a1501efe8dfa9d238eb5a50d000a79cf86b9d0c7c6059b3b0ee4db2d05b9ce44d2a36890155c75fb322465e6d15520d44a18524e9329663de0b3be87a8104a47c686ba655912c9adc7ec8515de094758ef566d3333d108292a53052317eca5c2d0230a45219c95a7a75d155e3d4f6cbf013b3a69e78387f7b90ce375836bbbee0e00b761fd3f98e19d683c8118910e22ea06900b1870431d17dacd54d2ee7a8a7823fc96d66bd00d8dee704d8b66afed8154eb8647def347a46a8b6ab00522431ec84e47eac4d4921440d26d602b7ba49553a2a98378a4d890fdb2a42cc6ff82b587ceb659a51993f78124994822881e0a00574a24807c009067220af9533ba1547728a3b07536aaa2732802924938324cb9c3fe0ef3f4fc79832b442fbc1b9556877dff4f0c0ff250d3d14ea2a9d7096db9086c00bc51b70080997094ee410f23edc601f42144ca73172ce29b1ff657bb14a9a1da3ef4538adad59c087eaf512a60b581ea0b5ebd8ab4db25952e6663368083e9afbb3ae0fc29b297a1e84477451f39f728d42cfdd9fe3941fa963ec9c76d481ad289ee41551f77338c91d0995be44941e0f48f2fa48f252380bce111db40f4566a7d2900b2c26873bf93d6f9c6f96e42216cca4e6c40314891caa54053f9b174d4d60d851ec835486d9620ad8c2ef78f7b9f16ae292d190ab9b05ba2a9fc35a2b17dbace6585d3a3e81ff6d08c98cadd42c34605f8d0c0848faa71af3ff1024d6f6c5ff5fd70c41c377deffa76982576ac3151541ccd1be8c7106b77b8187d0466c312500bcabc1ededabd92576e2ba2708070a6c94fbdf0e88988894de79973c123f69b35a6a91dd6854f50471479162de34e5711b698639b43e0a783085f10de7b8b3269951960d9b62463d6fc18cc42a172450898a0032d7e1de9c25d92ccc08054fcf49b2c3887a5e1dad0ea1de57bf9aa88b2741e0278b73c0005780b74117c34fc2821de75b66439cfad2447dd824716a302667665e08e237fda7dc16491045fd32f37fdf3a0ad27b747727f8dee2eb130c0101f5f2b5aaea18c42e2b4b2dda94b6120821128245521f511a68b06744a64d6d973d4f2dbd69f21dd364bc890d11f009d97101273f773f1d157b1582430d631ef0015e6066968e8c1eb30a90e03438124695b64ec5e4dd259b20af03080f1b6b82c38563e1f0302ce0dc94332ad4f040919d74e2622f85d898db3bd16e22fdefa924fbf1d2bdbf3cb755506d0b172869bc7c831ad1b89bd512e59a23118202890bedd0925511976d4cf635f10b64e15592adbb10316e1101318cce7d9475522c53efcb557a7f8aab27c19318e1df624c332f4d9acc684516d92bee8a38e034ad0ac41ff84c597015938d47febf2245a013e1f77c41b47a9e320ff10600c23c66f346a0ff38910c0d8988f9d2086fa0b586be2d323c08ba3d90ddeefe8b6d90791825f3aa56b804a18ea7fca82de958c61ceaa61afda38348c55c501c6acb44697cfefa8d5acdca6571a8844e3bc1c9f694922ca23a7e004e4b60e897ab35718419b44f521dcfefe247e6f10bd6383454d4cf64fb95d548b828e483b82892c38c9c12039689fbe3699cbb0c545ce90d62ab792c7d16c258b893fce3b86e1fe3edaa41fe8338ef63aaa13f7263c8c8f44c440b9554f41046462c7cc488c99773dd6bb1974c8d46c64c29387b960cf07ad022dcb2b66b32ade9a3a87837d3c3b6515efb9af1698000715c03b87be8c05fc2ca6b68b02808497868ddd491e1bb4e39e4bdb7ad65710aafc167d7b5d8b4ff3a0ec9de80d656cf5fa9c27fc22f2dea93a08fd786ec50d6709137d15e46eb312338e8fbf180a901d4f86727c5ea7890f8ecc632bf95af7553bd4c097d0026fb283a531bc1b3d0c7bf8d31c2f6d62d9f16fb88d8fbd17985e68b67e753fcc42793ad3a89fb0b8fef6a4a6fbd000358b501e62c4edfc04efac512fd153f8ff06b344139b6e003d9d06f5de52ea7325631568a21634880f2fa150d0d2810cd316d836fe6ba8a323895bd788f1370efe3062c6a4d4631dd5b50303002595db7bab8a90633f8155547ad0012289a4733208bcd0342b9291dc81d11e53cd3a232433b8215c7dfe3f9ac533f284325ee13a3cc0caceb25f1c033046c93967696232ef9adbc81fc5ebfd5c1a9d13c5cadb57ab430e7da248066de804373a7e1d9a448d8821d39e9b6d237487b83e336e40d6d74159282c1676dd096f762cf1eadfd8cc4adb8778ac7edf68b9b0f2c606daebd3cac82bf8a635d4daa968ef9e0612a36697f33e01642e0bd843d489dd791b62d252cb7be04b0efb9265b565d172533fa9200cea6e20022810de1e2c51455094d5d1e1b6563630be0735f4dfbad82b677c066a36c073a74305001314ad8478261c6d6b088a86fc93cc683eb7bba9447af076abde590f9dc707de803b4b7fedf89b13fa86f0e5b26777dae955ea13937fc7e44585a94ca8b17b4ffc8cd2e185669407c95b6b5ab41c60d1aeaffee86914d521c78d1c3678412926d5c92fd0211081e72355d3aebdd7b70d2f98a1bac383cb9c28316154e11184f5f46149fe1c1978d9f63f2fc3c85cf4117bb016660889fad71542a5c8750eae01d7d9c8f4112ea049d778847f0a0aeef79e887f1f6fc80f778f84805078206783e38ef47a38985e02e09bd2c9f1a0edd4e369db0289ae9c1631f1e980f08b8e9c78dbf3e600ef6e80b026e815d08e42754f1602fd1c7a12ca14046a0bce7724d324bc0c6d46e818abfdbb680a327a046f6ed5234c1f406ed9fcea4690e3a4bb2c926c5f00fc818bb9cd3992f5a539967c976ae3e01077f6d6d318c841eaf1ce98577655dbd29cb516f08f24475b3dd9cf72519d41113ce296ba3791ef77072ed4a55571db30c6185a83e9dba4c34749d737f728482b86bdbcd4a5c53d8c6fcd07eb033bf952a24637a185fdc0cb5073b31b56e1322e8b54aac11f973c947555d4143ca97bdd9970d2fc03378aff04a9832d0529880afa13d198ca17af3317f3eac0695b48b1e9aca7b5b30287d90c53429dfbef2e9866523073af009101f0ec37e1b0da2b8cfeb3a75ed29ce0495f4d9523e152571f2820103eace9f34e0a6a18c4dc0571ba1e0c6bc81438c4f346c11e27c3a064cf49259020b6b0e497d2aebe23690b57f969e34dc95561e35c7959be3ab9b401c85380bb334b7b2a21b7fd77dfcede63ca90c7c3449360cc78d8930f47e91feaab51a18725c83921016c02a43a3d843b9ec101ccaca606da84eafd4ae8568a3bfe1bd340e63ab197c9b2cac0e351c5ff0365804076533a5542e62abc2cbaf427d63590c1fe93ff81236d48bedafe24b98e818b6fdb7b66baac18df7a82a88c16c5f26760bc33650420c1dcfa93c4d0c5b11f0c84d454284a2e1f0910855d3f945d6b7e25420846ab70189566cb3cd5585cc23e985a22e91787d2a295aee791704df4f16f98c18d6ba90f818ffbb481b80e4bbe736346a026fc5982a22afeb89ae75869b0f389ae0ce606d97d1f516bfb1b042a970a448b3b33f3dde6363795f7d94fb8f0828d44b764ea5d3462a012a08c3b97e57ba5e1cd2ea51c3b254e3a03aeb0649bb347d072a4d32c6bc3343dfe082e0cf50459aa334d1d148e3fd9508984335607e29f37305257248a599ca1a0a248d55d6b40d1ed67b000ba0d999ae57fa47581c08a087a291a250924f52cce27f8a1915a50ea40a5133ccfcb5d00ed5523c44f26509459f51c5a88672566e8629667063ce7a0a8d649a33fd3406bf9a843ee8d77f61e660b0e80f98bf688f102c3d15b47e0fb93b31107019ae41942bd453763129239c59bd61ca38b65754f77dc8ee31daf48aa60f915bee18f1d108a2a0803114aaa977d14e1fa59ac0f9b7aba4a1e4c61af3493ea2b4cf31937a02178702ba2bedb86e64e0a6842895cca8e6f9367c71a1874ff2f315aef612da6fcd0bbae2a89b76c5aa3afd76a62ce6e441a996790969953d1ffee1b666459d80c0f139d1605758e346a7acf013a3915aaca3649623aa7750ab0c5f0be4ecf8b52fa56f630c8795027646cf4dd27e93a09caf4f113a8746d9fd996cb751cd1c90fd486adf3b926b0bbeda845a3f6644b9170c54ab288d1d6db3bb0383e6de2ea1eb1727b786300db869e69db05999b286d0d2a742c6526a40e3f9c90220d2b68332ab99d1d7cb2e63b505fa6e00eaffc129d87a44887a83db6806910442f9b810c60b8e4168595ac9cc0fb47810922f3d7e3006f6c1cf29fefdd90d51b807114d02b29c1556f32839610dac92cacb2c693a62bf47ceab91dc5489c423c9c85b9425d84076150941692b992b70ac45a8ba74a8eec119989185037685c063cab4f20c82eadbfb57ff1cf6cd1d86a87ce9158405615acc7d6b04932b520cf1da29e7a8f53c9341a1717a312066a522932e07576439b03a210f5a8b1fe5c0a60e35b85c38200879a33be03a49dcea17cb734e0d6674ad7dd035e8728c78345541cf09034075675a0a687eff89d77bffd6ba38b5f63c51da062601bfc1659c21c14619dce6ee2e032ee7e78a96403494956abf0f589d2d3e6c6f573b2594d15e431b79b7f85b2f4cacfe1cafe284030e384887e03a7e275142a4e104db229c4cc99d44c10401d4230549143320e30957ce9a7711933d655ce99c206b9a8c2b782071b02cfe465582b8ae8285d8d5b2d706ff29c8a83674e3e9e6008bdc5c988b3b68c2d448b808a163d9e230672f9a01f9cd7fded254e1f345286db11f35fc821bfab91e49631f74079fd021ecd7c09fe3dc43b2f32cc1915fcd238f68e52b8d28a56461714984d9c1507f147e5e5360f16d532a9cf57cea12d565f52e951cd8fe45f5292759e436e5c17e810a3daf4cb24ea6cf2b51db633116e67d20e91c02d651180eb83afcfa73a0de99a94267eefea275345a9dba86e9a9cfae31b83b06e9a87cebe99c27ff064e1cb592ce8d26c85307152f3b312e503116d84fdad44084b7af7d84bd77962110ee4293662aa067a209d3fa6f5e461e77b25ea19185df75f9fe35f1e1fb66f267fe253860b9d2af7a5a8dfaf4fe32af36a70e9701db5b6931e2d279f3622c83fa120e8a9c271ea836db95b9692300c66c5829179c6e4cc77cc5277bc1f9d85942f3c23a35ef9d8c6384d2bb5a74927dc8215de2a3dcda5eda2e68e18e0f70355cf62412e07771499c7b15f440358f4802758c9673d0d78234fffbf5a80cd7a81d2365ef567395ec2f8b44c84e4e8933a7f5750766b4c339b3eca6276e7b3cac2d9182ece19edcdd2b09ac26d0eb82f7150059d89d98d9a02a8d24cedb71be0fba1efa75994d3925b668a57f1f73818f2af45c6a2f0bcc2bbb462914b0159018be921d8d7e2b3ff8f4dde49302dc7c534060f0f2a880dfb5dadace83fceff65d4741e234df5f8d42fb2b868e862c3d5719caf88debb2c29e417baaeda27762fc41a5e2b3c395a279d338c8ff492dbf590437a4b181d81a41077d414c74819c9f852bba37683725cb90107e5f90ca5e6d5fc6cb3847678aac80c2ab8ff0d9853c52364888127c2a8e86bdb29405d6f0ae3c6a1794cf040b34e07beab878fc0d221f53e697168b64f22b7967cea874a9ab26b9bd05f41a320c858d9e58783e8c4a7b9a78c44c942d0d97ee6c8007279c912ae403b30a6f0ecd21f927000f64085c37aa8c0afa7b1b3ac8deea4529c28ac68b25c938fa097402eea4a96d5d3cbb2dcf2bcb9ebaab83900e0b394ff1a2db67174a582a47a8bbf0848e99bd56012d9f84099aa67e113493ce33b83d2a8c8f5b76f1d9c2c59273b0dfb691603a2a804060b915af97b1e1f8bc7cba72b3bd70104d120f650d17d2ef32bd74c06208bb1881a98b0620b140ab409569214bd578d24eef1fdbfd3cac566dc4d3c5c713789b8ca2c24b944af86a9cc1a8592e613404409450ff32a83af6170a7f26203b140e04b3e4abcea92827b130416338680f4c2c41460c81ee3a56c7dc7178c043e44c034355c48bc19e88ca170ac3a2bffe3a7d076b112a8279538e00ae75f9670d0a8f4b69d398cfe3097a699948c470509fb5bc8a5eb041879ccc718dc4398728598f6d23e75ac950d6ca40777a4fd47052822860351f15aea7f39671ac0eb09555f4349f7df10b406e1df7ebe2830a5f242fafa42aa8b1451cb7cb1dbbac261a1ce44a392aed4e10fcdb4e860028215fd342ca79f72c9c2c4074c787732f3c97108d3dea8290d914dfbb14de122f75c8f8d8b855fd7de51767d1e73f278510f8e17ac9d76b50754a7530a1cfc82c0e5aabcfb44e1282c10cc89801eaf357f9c97b1576b91b218c209e980b4118db6b9f68ab3ab127d7a4c8e14eb81596d314a4da7722b688299d6f2a7309e2cecf0689f6484faec5a21a1a84e68656a26cc099526baffbd83597f84e6adb66c7dabc838f2902849c2ef3aa8a5550700b644b7725005bdc74a0a6060c5020c1df58a07b300c138262af9987d5d7268b3233d92571341f2ca96fe4baaff3b17d17ff3e23cf6ad70a9a54d141b31b2df54dc848d19638265da4ebc4752e28c84a41275d8a5a2ee3018847c9a88b5919ea5c09f512088c488dcea6cbbcfe192c04d61491daacb245177ca8894f5555b302e0230053b5d7dc50f4ba4876dd90ecaa5eb52faf00bc7e96e970e39230b8c3f9a65ef21008b3e64c977aa438754cb705b84447fbdfbf1eefa89bb3057ead53a8abdd54008e7f390aa371d877e29b668ff50dc115ead64b7f7da803556f8cab2a2570f9f73700e38aefb8ca6886e0dfe59ba31021043824d4f97d93e0c8e836b5b6da0437b43a28f6fbcb39dd34377b8ab1e5798996e99ea0496edd0c749c944af0719136c6845b450c79d68060ebe75afb5b7c311e6ae3584a95e7790bec5487f407676fd95609864f00e9ab0f54c0be276a7529cdb3df28fba81ceae7d1a767e3dcea9a3c05d87ed3d7ea0ba2f06cb9c29920df7ce94c4a333e0d15fd1d20b291c5e58d7adeb4ad354648f63fdd149e909f7d5558adf1a4d18d54cf95a0ebc71aa116ccfcc4c9fb2131cdb80b2ff83426a31ec4b82e6792e7c502cd672c1195adaa64532183fd76d6aa45c9642a7b102335319db1544d285967d1f32a96d68516e62957c04f1be8244b830c8f4f976debd707c2a0d36b75ed295eff1f62ed78c2b8e8a9e6a61b46e8ca6f6c4d7b254aa66d075c26ed9ee7310aaae13d82f9ce0e26d103c6de5b2cd67ee66d0361597bdee7a9a3abf4aed43fb913b849ae447de0e28bdd1d8acbeff08e41d11e98430b7d47a56a609356c6a8ad69b42f78c27b57dc6152e907ce846a006c2635d0a1e629f64908863cbcda38af805869d1e23970460790a2bf596e29492bae384cc67a2223d5e3e1b815af04443c9ad3f951d34452f1ab169c89333e80ae7d9405d8faf89f144858b3b2d25e9ea1809921f1f948cc3ed2f25ccf6dabdcb7242daa94a8a334e73639fa335e55080e50ca8f56c98018095b9ea726c8b3bc39adf29e14c0b4af81d70fb4bbbf888920d05a84d7cad1853a6d8f07b9233ba18406b51e8ac2875e11e14006d035c58b99eecd0cb2f6e37165f911fe81246d0fcba45d394b5691bc0b349157a31a6076705b8e978747998676fee8dbf5b951b33cea9550cc0766f515aa05e30c871c4820b6c0beb193bc8948fc748086727811468845b9c464af277145b3a0fea6e75443549287b729a20ddc3ac9235718b5fcef3f04fb1d6ce518a581e8f7cef0715edb5ea18d5c2e91affd224801927ee0f36eb8c748e640ec5e4691c98d9157d99674d1fd12af5fabd9158aa91817fc66075b5437ba5e7a59c22348b1c70f40fd5374abc0115a609e63936936e59eda24ba6e416581060513a1dd25b2dba4ad77e608afd18c1b470a639322c1e36163a66317f5a35fc1855abe6ce08876360a82590ee04e53ee64ecd0843510080df20a519b3a27f599443b5210cdf4ad11fde31c225f8e83a243d7fb2b9cd697ee02786a573ddd96f6ecb29801af8718d407f646cb4d5d886c9918677f6498e7ff3a00708d796410c94f89310ddded41b8ce074a81ab71a1ec04b90c873036440ddf9a579be6dc22c8793350f201b25cb75b7cead4e2af28803f38f7d0e350b088e4eae6a4e451affec0680084915181bae45ac310e86b038cbfc207009bd01ec4c761aafac1b608e30d2c7c7ed1e77fd52410fd5ab73b52a0c5149164a6d79825c34e04d882cd3ca0c43e4a2b07cd049aef947d4c0afa412c1750438009b598ad550f5093cc3d2539315ba93121a02f500918b0b923fbcffde026270ef74e53be04dc6d8721bcf8c5407b0450bd9b0d22a0bb2bf7f2f0545b40f4e38557f75dea24157e86335283f3996abe1b93f8e12b25cf30b28499018051d1fd95157d4bfd0a2186b0e423a0be50b3e64ab890dded129a5a9c14f7d073ec85165eecaf2dbaa020f62d1027863322aeb71cc00af143a60c2f5b830fab70d199efe1424b1dddbf079705182c8f73c1beb6d2e37bd7139aa8310e54e6e2e8b856f5fe517b311223ac51897a20873480769096c140946503c1050f10feb43bbdb0960ab63b6e931d269acd960b660b5d1e3a220298672f26f05e63c04e329e1a9547a5b4ff90a069175bb688083d73422e8224dff06e02d9e718b8f8985b946aa79dea4c02e5a731c56bf5f05017e8bea812f8ca8564197057c0c96cb8540a00a77762a4fafa9b260a0744fa17cb49e06b4840f6fb746c6f814510952abf769497277ef2e7e1673685fca7190dab13846e210270434bb8201829cb8edb2b14cbd3e0c4a31746b6a2bc54b213577d0a93f671e5c0f55071601ce2f2b7d7ad44e26a2a62e077a4cd954a605e38301cb1c88f2b43aead528e4a68f4a3e45bc84d510b879819f86d25d1b6215be3c24da06b8fcd61816ff5dbcfd8613785ff03198d392282e2361b512e9f8106eb22ea588ea14494ee0aa7e85bdf16f2cca9eb60f62a6e22ac3d19cb6630bc31ea5421a73b2e6b7c72ba483d38584e7dd13e360347026a8dbd940cf6aab82227996ceea3096800313f5debb262396172b31b2a23ac171001a5bba04ae5fe66c1e454327240691a2fe35e2072778da37daaa9b140208e1db0d8974b54687383caf7536a19be342244b3f2080d1459f71057b5bb0cfa1a381c10febf81a073ca08ad4df57dcbdd237561e8b667143f2a085c30121ad48746564dd95dfdf5baca3f9ef12f623d91f81fc24f0f17ac3b6ac903ed4fd225767369344b8a3ba834ac5cbe57c6a6164a0122686e5e5f6803eb53b99b49e0d4eda1bbd2897078c6aa2448c8be206e132b90cb25f0baf9e66795e07110c66b48c0f52a763f9a583b3788eae30f1e9fb4e9000b51471518430af46878e484f6c4b3f416f0f87ec8ba231268819b030e76eee55ae58d3b1caa129c2f8b7a3f78c149ed1f050fad9bb8afa2aa9461ead513fd1bf691ce1235fcae3a4c1a09967dd905130e89acdbbec96e8c84d9c02357ec52bcefe4c234288fd13035414717e28fde4c58ca702a3c54846fb00695c570fe99113e30cc7e54cdc7428e43ee1aba7505ab97e54b7313b39fca2346ef41a865a61d2126bbd14442529e9bf020c653102625cc36514241a0817c7fbcc00c11490aa5553362f31ee7bf26efd38d6a390669579bff44326eae4d4d90af487352fa85c31e8c7af5b47e5ce53e10d2daaf3a20d0cd2db2e7b96f4562fa7f270c724a700f55603ee0d8a5474674572453f9493e19f930818629ffa11f387dcd4b4085a3b47a3d5abb9e408e3465b2a9e047c245e8959605300661109a321afcb3e87200d220a4c9abf864d850e7609c11119a481d0b4086a398190c5dac94c9923e60803dd9d809648ec55f3029978c120980f38d4a3e53ee0301a3f88eef31415e5aac81b021fa3b57409246b844b0cfae549dcb72d5b16f28d2344b52ee35d0cec8f3709678b71440bb33db600c2b925ed50e311200f0b6c20c8b6cc3e8f9e22a1ef16e4e3c9b8075500295b684a0c6964a0c37d851e26e8e4f3e1a37debf81186ecfdf7687c38e9f4258eed6028b993e2cf9b158c14387f602c02aa6354b02de422d597c16f5c0157bc29722575808ed7c83c7b2171a7183599e0aa9fdfb9eca7ee83ca977e63e14f7d1417c6761670ffe568d5f3e8028011442be018742dfc07312fd227351cee2315644a80b86fb94b0d1c25b03a6312377a7bf064d036d2e3c320e80b7b1a67507118c5cd050b3383120d7a0c119b491852e36558794e2c2a1019a210fd5ad22b801e0d82637b22dd92fd38c378f9d7abd364e0ed5f9c36ad26ffe616bf38ab030917575327b1c78b7428a0b197283104126fe219f8041814a204a721444b6d3cd769423d358076fc801ed405550a602f2eb114262ae9d0a26ba143879ac361d94bc2001919c3cd59ab525dbd00360495f2bb01cfdd74c7a0634edd4e82a0eb5e81300352dc07d514f1c078066cd639daf605dd08a6951201c1a8129885740fe90d4f21efdba4c3d96205a4b47d555fcbe88348cdc99a6ae015241cf292acb9f54cdc54885ec4a43ace0d3784e4594114410ef946f402cf08bf16e303ddc7c905e335a37a8359389232bae37dae733b37e2284df96949177f87e3ab237ff7164aae8218eca58715c2aa64d67ef8d612ce27f793c2f3023b9cef8326d2bf2169c7cf1d82e1aa636b76cdd679e9431cfb1ee8b1499d3aca3fa87faa3ec9b187245753f1078dd4a82444e261724d949bb34b1e0d928bd1257f2c972d0993d00153ba0846411cf1a910b2a84820dc2d8b998e3ce2f9d9791d0261d4d584e8a4653a78e4a2ae366d03f3f109f6fb86ee2ee12058a4386a227ccae8771d5787a93ea78706de19030251d72241a48d64fa64b2ec6401f0b766c9d7fe4125cd7ab8a5f35a95cfc8bb38793c1a60ac123c7c7682266a66bed81f08e621af9c364ef20fd3e888e7a48998bac4a3a827c4e883eb52a6ae2af047e9f306da6967107512c002a48cab250aeb375487d977128b790185c1b99e7b7ec5ef7de153c2e242838039e6efdc5d962d962055cd187ddf74c36cd22a032029170b161b57488e07028827293e8055c0612f72a3f2c623c6e58ee6068431e4104a6ff336062e3e592f7e226110764712a01d110f53e2de85d856dc5af21e6bbf80f863f5b3c737beeeb80ea8be69cb706063e922ea48e90b8b81a829ef7b767684d32da1a53b3cd918d76fb4eb85eedc53690039810435371a244409f3e47bdcc2252acd67c8ac971bef26038174586e82b4faabf01df433813365924e459e11bc3a35cb088d933109d4d5f1013124581315979ff53a16b4be478090fe10864245b1f6848c84da341350739bb2e79bdfb2dd7a104f0ffd54f21605cb05f28c9f0519f4ac28598839a990f6e3c8e076bbfe976a3053a5575f4764c16e39aaf8428c8aab41f6a004c9a85afd62dc944226af4a9e0b476cfc305420d74e40c81cb2aef03570bceededeacd421bd4a70515459413c3d3369fc5906b880b41e469fda42f0311efb5438424761c4ed2230f6518e6b9df91b31afca05b1ee2c0b7642f5a0d70975b4b962303bf476d9bc75e886267c3ca8c60d20831e85f05f904ca08b93a27a52e09def31f2dcf18f1ac32d2b7640f207d6284073f2e3d4f8d29144bd2292652c3bcc74cc3ca47cc5e4b26535ba0e807fee6e6e844d0ad1d25b010567c2de8401d460e32ae800d568a5ef5c4a04bf3c907d2b578877b11d5f97e157d435f2096e0e5ad69fb4eb272d68559c472540dbbd3ef0f184ce476a182097800709c8ffc6fbb4cb3c7c185507fa18f97da77811e26ed97ff4dcfef995af5eca676ebe4cc7726fad973d468fefa94b4ef459ce3b1433c576e492e00853f8c8f4f0691b2343cdf35540a510334021e7480831b20e1a377c1c2ba7a16bed0fa3ecec51515bbcfa7c1206efab0e5c94a84922eabc892b383b9b52ffb58f2a2025d1eddabd80b086536603e7adfe1dbdcd2ea1dac86d32b18507a573e010b643ee0830879a50836d8f03b8825fcfa0ca4936a30e4dabce21e0402325f0f96bae344f08d8d5cfbb6b29d54d4b67d2b20e745e5a13789c776e205c23b6d2649a43bddf671668a4916e755b9c0d2ec64c42874a9d373d6477e833f19ba701f4570565595eda243da52b1950aa787a97002bc4e0f4990b61838ff01ef86a89406667a5a9bcf9f920543718df9fedf80aae665cc1121220a31ea1cec8e0126abf1134abee13c0b713c859fc1cea1f8723138537a3b740e7a525b278a4b4ff8f7cf55a371e3b0517a58d42b1bc0686ae5ac4643a7d85ec587de7c1c52f1122e57d1aaa71b22194672932a245adf39ab78925a9ca5a2bc274c8d25d06ba5037a29f73cdc5df9fc0530b51018d4fd29e72ee9b5a4e71d587a4be948e19ca1058d3bc1ef771f264b2909ca49045fd3fc0d985330c57c8e898d1192006910536624dd48eebcf295f28289e1e1747fdb2b22ac2e0b797b41698e1256ca7d9eb1a2abc2cab16ea1fc82e00f0e018ac8c8ff2ae4291fa306db6162b067882a8abf929292ef90cf3c1d5df02680b67b5546c7682518b5f82a430723e57110762b3454d885b7d86802850cc532381af2a86f4ef2697a6810c9f13b54a324f32449ed0b22924277bbd9384933df5b9df5051646f678d5546d1cf2f7cdccfb6720a98afe293405d9e77494e4c04645757a009286ea9e1ddf1b49f913d03d89bf0170950b2b137a22f24d59d9c627aad19cf108ffdb749f5cab44a78d71addc455ca7f27a8931d40c268e88e8acd8672693db89e9d9e72a7c220981bf442496d1d3216ff714e68bf79d251e31be1604fe076ef20149e3491c29c183155db4d111902749633fccbde3b451ba950604a4fb38b1924df296e3a7ef597a8806ad79236ff50c73a83e8cfeaae7d7ab74385cc0485df05dc1f17d07af027320df82ff2ef79f53b98f425d4a17a64361b262c2c33ae01321bff8b44a205655a32dca3eace48053e0aa8981e871dcb413747b28cfc740fe16bf65c8ff2ae4484bc2ff3b83ea780328a983be1ee19e83fd9785a641a9719b2205aadab54a44d6da57c4e6cc12a10d0c0438ea0231f7e2d36138aae18ce55e010ed131b912bd62961a81067b12621c7b2762ee3906ab03c8fefbe83da0d6bbb23bad4f67bf7187390937d99bad1ecaa88146ad97308e01ef4708279593342db000ed3ad7cc6bb1080b921645ad9848966423e56c457b08a0f7551ae7a2bf8e058c152e5b2b37dcc6b3b9a63091af4da3c408aee5b19dfdaae3e4920ac3cd253520904059e46fd8cab9ba51b59faea4fe29c6e25165d1a69efd6c4fd41e86070684e8cf9b2bdcda2bcf59de9e7390b9e02c70cdf801f979654bd300c72439f2c0a5c1d1a34b30c4a6691ef209905e9c005db380be2b3cc9764206eef65b0ea46d5011d83f0ecee4e88bd6a750121e63d7230cecb917b4b58693557e079d0a25bf528f30db753bb2b58f2423613e5f9d8c46a5a95e0c836cfadc4b0f16a35ea0490b90a89eeb00c1740a8005e7330155a53037a67f7b0de41377fa6bacbd60ec07c0f955f74a24915159384d4144c460a57a1809fe1661ff54f4675708bc9c04495255d377a6c760b1b1ea176fcaa5574454364885f8320d17a7cff1dec0dca0a37faa2bf642bce9c7d0212a171fcb2db1ea7a023886369f6a25da84639e84c19e7b82b85a01a6dee90ff38c80945a352b0e4ca75119c11418a68eda3f6d0781ebbb6c91a62d1f34139626fa4a0e63124fc546f5d34e62daa191a79304889dd7b3354d145822f606d1031c6fca142d603a5230b99d26bc34afbe98e21c364bcc9c7d39066655af2c44327a81b9ef26cb0a4c659b880a3cbb659e13fa1c8164a3a373681eee040490cb00fd3a1735e56e87bd0d686eac6827d962e558a9c16b28081c12a5352c53d3cdcf5442d4b01faa381a7fd401a7619de65141f0e16750540849a6a13dc3d155a6d2331c94511e0d07ace054d8388f0149c75e628153269a01402c4f34204e4ad337f41c195270bdd086e7774c37f0f2f91cf1400cf0c72de5b37be53134e631c34bad7ae6c377deb58949ede498b6babcaceb751553ad98f4725c8332777a19cbcad47c6c18d2f216259be39871be5a994036f125b2f0eb123fa9ce56c7b665fc028f940eaf5e5a88544f912fb58189fca52ef4b2722a68b0ce88b45fee6441c4a344e98349595166a07cbe29ec8f13c8c831135e704c359a3d307f79ec84061fdee6704f24bbd50cb0aafc1f2f1ea6c7d3edcef10482bbdfaa0ef4eebf659aff6097155559bc7166b39e058687b186bb392484a51ae7dd990d196f96319b7220ca96e28afbcc2925617815fca8aa62970c73eae1ce62d687a2ae303c77b4de4a8ee54695af02f072c5048b49b685acd24835ac02f54017240e6cbb80ec3e1144561ccb095849a9323922a31ab29a41036bf046b98ffd8d6058a040ae49d896cf7436b034de0bdfd013628d026b08ca8fa22ca7041cc8f9e6d931158346db85a39188da08ab3ab50e34cc86eb393d615f0621cc3c45bd01c2d2f620c21c9fa2f2b5ffba63552862ae260cdc2c5e9d420f07ac4efd7b99b53807589db506d3ba770aa46d0430620ac969cbbbf53d1ad52a9f4dbf6c5eabcdcacf659e88298996441f28804110a72792d226930e607a0c161ff6dc13839f18466e51e62faa600fbe5bc192b1a37788f987a640c5816b4c213cdbd8bafadba340a502353cddee611684831f4133f451f764daa58b22272947b80d4d51e1e32b59258dbb13cf95cf890a486d9c8a8eea1b0ffe923b7213ee70d660c4c763bd84df480ef022279d28a4e4f839cb1145fda5b43722138ae98d92fb1b78d4137f99fcca6fd8394743c874b32a5e995752f60bc147e468cd3221c4523fd7e918c68e705ec3764582dddb47b34feca1b767856f51a2c2d0f18a2290a6da796f8ac425cab3d83f9ef78be25207e402a5f608363ae7c3a7fe233d85c88458a16e1553783ff257fa05de590c2407b0aa8e651a5ee8804f67510bc68505253a7a3304a616a52ad5eba641b62a00ccd7cf74ea16805ccf94ea236747bcfae9d00c82215fe90deadfc15f4266d4175ff43e84b25ce834482902d43f5174a79b7325b250cc932051a75d959d6966d186705b240ee05df503e5a1d5549dbd05719236719b24681b95d5a595693fdd6ea3d93cc5b949de511d9621fcb86e67a91db5483edda6d821f1f3c08fc5757a1d75db70c210dea47948ee428857a7db3ae2c3a12e8007f11fc411521dcfc2dd70a5844b8ffe15b4c7a446977eb7c28dea38d37653148c2e4eb9791239bffc51fcc332b6d6c3284795b9f17c24b2672ad4a3c4f806a78379640b9da08bf841e88f3f2888f1d1e8c21fb9df48033bd219c8c9728a2eac73bbc776b2f9c0b4a173f549ecdab40ec1b62f9828273418f3a303ce1d8cf3dd4a9e2659625127c51b8841c526849a5059f2ab69d2e39978b73db2405fc15f7b5cdae128cbc88d8dc641ea737684f8e528709b8a0d29b3c9af8e6aa4bf691e1aec36b6883c245fcb9fc4b1dbef31427ece9fe0544b4b01c8060d16f701079f1a327e7329478dacb6cc79284ad518ec4b2a17a733615cd9247df12895095d1fccdd3c60141173a625265c7e1a49c40a2c3ddb9bdc00831103b4155a52659813c6b9e7f7514efad8c0825ba51809c4792a5a3ef9ae3bd1d735c22467b463666efac594812e132e804898074e676b3b5871ef2656fe79c8a0dd0ae9ba344c791792612ae9f5e7f0769c792cbc15b310ac3457c62c51ac733b84adef0d4e07a7cbcb35ee595d027771679f3ee486768ecc98f59655b9e42add93c5fc878deacdd98618e7eecb93507b761ccaaa4f848de1816b451b2143a3e50bd1ef3600ae231eada2b665b0a50c956329c28bb16a7b9b0cefaa4628c53c0dc00380ac1175271e1beb01af60e42274903dabcab43aec535ce06733899ff211d0637fd0b8ef96cea3c76571b1e4792f5fbf63f4806defc473e906ce325d608c2f0057507d11917d0c65fc6df4738a996b4c33d9d5488ef734c092c3cc06730febd9475af5753b7417643320ebfc2d8d28050db88a5e04a26b0f0908fd9027a87d173711526ab48a9861242d4eabc21d0506afb45d1519ed439366eba1c3028229acf2f341ca5088d276ecebcaafdd10b81dcb10dbdbe7470b9358b26349f74c7e2cec2e98d974161e926748d90edbb16ada569851b6f806121afcee38ea33c123de3c2abe699ffadc410cc3dd796e53b88bda7124fd824a08004b9c6c84a862231bda0e039335e3d6d5736271a9d09b7ede9636ff4a59335e3e425681253a0f5e7577a23bc8e0ff4bf38d3e2456baeff59c6a7c30d3cdf09aaf3bba992d7acb25fab355f3506233dcc10aae997f629fa5dcd58a11deb613cac0d484b8575984b54deb12557dccbfad1ccff4f8b4ae1a2e920ec0c506c17af3728dbb138679ba7305be9231642325ad27a443b572d452f3b4200a4f73b993340695a74db67deeef2ae838844e73ab7bb9857b565cc906ee957025d9f381671e205fa6503540fec54a1a2d6a310e1333e3734a8686d9b0e379cfc1951a98006e0a883b526fcd4c0ced31b33bac77f539e32be22ae1aeff3f26c098f723b47fef4875c8ea9dbdbade79a814131edd78bd763995ccb89b4d4b290c16c48d04120867441179e1887d0d66aa1702840ebd86c7f10880784727c058938ba8fe9630d1bbaea290ad78dc3097d3c618131df3c0b7c5274c58c2f6ca595510bdacd459e5a1a3fb2f81ade7e8649b46942a1fca2f190a162f6f47ac0f4cb5da2bd6039619e2d5d58c02408923357d209706dc901a1dca9f679ab10976f594a57177c8b2460e3bc2730155c9580bf622f5eb48b13dd1aca124e3f6166e2bf701dc43b3710bbfdead6b4596f8edfd07c7fdf0c387b4cfbb7e24983cedae27954f3fa899ece3be8cd38500f4715705f5ee59b2333e82eb59a6efab51ba561b13693d8820cc1241c34fecc78e2d9dcf1fb7c8bc8ab1bc841d061729866812b394b8d820f5556c3c3f415dd5cd4056f971b4fabef98fe36428122447f45eb3b73c4e283a57180f951a4b3570fdea1e067c08a5b00f627c2e202d84d8dd65db5ad8fda5668f444ab3cf3643b33f1195f682b5804177cba78a569e8601b6dbd17b0a306b9416bc52ed11afe882536d4260ce75fc4d88c0eb5f552522b4909ac3015253a016fbdd2b8969b21a50a724610e2d4cfd632aa7c3a1315c69a8c899830653f012c11d990c5ccc890a8153675a7245538d02a01eed0010c9bf86d4dde15eaa34052e813dcf875770b3a9b614dd91b1b3036bfae2a56b79a98d1c0899fa03b460df5ed6573bba9ce4338306d05a2ec3b08e5943da2d72ccda16c4b8c2d8d9c5ec514da28996b8096efa7174f9bc1e8f8713283dc46967f4286feea7e2e967214fd90959a0ff350bbcfe924fad8702857fc1b920119e9524df53b80605ef73bf226408cd2ffaf2ab9f627db9e1bdc7f6da2c264e4d3e2c2ac6c6e3e46d1c47bed00567e494ae4379e44af5ed88f342a3a7109d13872cc556642cd0d2a52fe1406107c0f52886927e2fd60519e7d08f2e17d73b3a98bc7a97bf916f05967ed549bc04470e0105938462c58fbffab42010b8739c6a4809a44b67864c79096411503b045878c5a9c45d08cc001d43ea4426f3931d0a4b14b1a531296091f07e6c20468bf9ab8b1349a0adfbe855cfc3103c73671ebd044746ba3586064b63d0d72b86fe2f96baa0f1181c727ed4512a3f4a6dfb063751d45d700d0a295b0408cb13f26dc6140d0c110b6fb3d29ba46a1220ee8c965405e836dc9644aace019e93f29a3ce32c2889c8b6a7651ad0f605d97e387f657910e5c7523a13d4d04aff718f7d244b8ed30fb54f4729228fb7a5ae0fb73e5e83eb7da1600b84117078671f706cae13d0788cf4fdffab10d31b0acf3f5cf53314590c089273727a3caf9c14e3088beef5d8d53d1e28e1cd22592caa1661c2ca0814a2279a78f395cd49eee71fca41b0933c1308c985389187bb4ae83de22e6802c337a9e8e3f83820e22fc745a409ec9544736b0527c707fd6149f3adcead32df6c4901faa1e997a2cfa41b9a5e29ba0c7443d32f4597492f34fd52a1cfb8473403f906c5191c460f83940a96799be87278e3f437421f0e230b17ca3beb2fb1df706bc1415cbe2dc50a616c9cdf90a86c5aa3df700d8c53f7e87ef2c100ebf733d36d889a7d9a5e48bc7def45a8992326977fb46848c55c904aa06e18d5e927fee90e348951a0a382fe3757cf810abd04eddb4537d2f577fca8ae5afc20e6391a0fbf1a80a7e6da0a3278a8186e85ad6a5ce99e5bd4ba4af3df19cbadb086c1ff9a6afe86e5466825164d2c45dd038f0dcc5424ecd2eb393642e4c87a82546d85d971421b136ba5986826a24515f7d9b5ee66be4c0e09d6c84e76b59e7013a647dcb93586901663b3737db222a9f9e80354c5bc4835e3a093e5fd9cb9d622b7a88fc90d16c6bbadc9ecadbe70b019024615534a7285ce26f98609fd63c6174663da8cae49f80b66839093e174b8062ea5d754070591c10316e083c6d3418dc256e64373460865e98ff13df792ee5b8b9b26127b1c0742163bfc41dba1bb8a2755df45920cec6e442106e312a03cf63aa1bee9ca8a0dfe4c4b24de5de0e08b83aecd34c455e8481c406c9ab9067904e3c29f42dbcae9c56e5c022a8f8d6eeac684c04f467572d735cf954f4af83def5393708e34dd9b4bceeeeaca638f3f79e47574993283cd0d9088358e03288b1de7d4647287d3bc50191587acf4d6e24628621e67057e925229d92a8bc45e1264be906cb9c6cbe6ccbd158d8aa5c45fc903a434f990964f774e948aeddd1dc4c8789ce9c6a5c9d3b7bb0040262ec6576a7323b9188d4320e5b1d16518e638ad1c796ec730050f9106849fa959b679a5e67c85e415fbc09b29dcc12653696237542053f7264d6212ed947f66277546f7aae47f0f47b710fdb905fe71bffd7d9454d6a5537e278c81619bfd5079aae573adc50e86a6f9e1a21ba7bf16feee074ee904b83d5c2466f31c6fb500dc8235e8dac94f2e47c5d650bdfa56ce59de33743b422cef7b302447836a0a76a83fd9b460708b9e2c9d30f7a0b9c6ef0760e1ae8d0597778fd6ad48a74161900f62b75b181404f7ade13d70bc0561ad6787065aa13da3db51d0048fbe4ffa026736c1589b8029b5e54362a2f37ab9acdb5e866be812861a62daa4370741b1091b07b229e9fffa75db9e66fc2b5c234cc97138b00f6fd6f78a9bc6ddfa16f063cd2d1551212a03fa4edc87419c0c8b5abf837fe623b876addb34a3b0d592b9beec9a7e00b7b46f01a004099f99af656f5731a8c16f65dd3d132459fc578b293637ba80525c9c9f54e050038bed4f2927317c25cf874c425e4a8b61ec0ae1b92419e68a21ee6e9b9058ba2ca5081102c8f37b94230ba9fd2ba1a33e308ec8c725049e4e402188ef37e485d099a56f698a082f05119ea5ff662fb123507de514ec87913ce8d970ec9fc2cfbef6be274a8a58ab0e7e2377ae148edfd162448a429b628107c5e31175e5349c84a986133ac1493d13908f3ca07f0a4ce16e6de564c20ca80f18001add244781598966bdcba2ee1c248091ebab2c45fade1dff388f64524dc2174835a266beeaa7f793b1e10304b5504ba237363c13335078678e2f58e8ced1a98be091699a4b14b6c56d2a8812a86245ce76460a3e5afa8c82dd0dc2490cc5345cf236a47234643664d8d9848aa05f26d8eb192cc5d0a1d8d1cc2a71ba92001c1f843fdf1d01b51a3184c7ff3821f288e0131c8589483cdd9bbd46852091e0a8150a5fbf701fc61acd42df6af14b992aefb051a42c69738c655c58b57a85c20ad07cab86f4a873401926cb404e3387a2e3b9815b0ee54ec0bd93a5d42dc81406d5ccdb01404003a56c9cc1e69d93546973a501896ae87f99d43c4d5d6f7895503875aedd4ea9d03d4a63c3a315f0407b82d56446ebc7c997cfdfa2a49c965492015221279e0ae201e1926b9c9b316ed04e69a32b0cddd00225d18f2445303abb9d02a022f049d9a9e025ef17c3aa144bfb0db06b912fe59c0a61eab86062fdcb5fdb1a43065c5c6e8a683adc633b0a7d475c8582b66c36a1362b28909f48d25df918a2e891901be68a37ccbc6b6e16db6839019656306b76b1c975d8b666906f7c5b06a5e70576a072b2b2bb3cb103878f6600f866a24990a77814165bfc58cc674c333a0980311393068c092dd274902b8cf5cc56837a61fa429fc5468afbf7dd22959299171c15c60c7e5624867ecfd069104479f909da66d3723f3f1522da396ec0446a455ef1d32015c83c4736e64f0ac74fc34235dca8d3a507b481ea46c48f15feb61a9567a6418ad65dee585d74247dd9f0f511cb07aebdf7042b3a3b8a66fb7eca17bc826dc4e3dca3201f044c7dc0767bcf2b158c859546ef6eb79961fcbfb8217123a982dcd634eb084af047d83385d9d036f707dca3d15fb449dc0022ab40aba114126699d02548b5e19c76902304462a6c675d30907aaf1dc5338488490a523ce9810be3e262f9cd6ef86b6c0b52c86506dd5da822822401bc1265f48c988c23e08a20c6567725c38f62ddabf91243bf0b92894010d2eb5da3bb15b4109ac12402952909684f3b4eda7f54903857f3aa7444841f495ed0662062efbeceeea5127547aabf486c59b185aa971eb4073e2c314eb128bdd744ee8be2eddb4a8f47c184e4eb365efdb16f75a9a045d192fb06906f6e3e1b01d37c0bb721bac9fe09114121d2098c093b210d452845bef466e76bac792bcedaad786bceda58f7d69c55b7f6d65c5620485a2641c20f1e927e21bb8f40357c38b3225bc3bc4f1c2789822a18d8a036d57be47d9d1563c55b75d66ec55b7756c68ab7e2acddbab7eaac1a6b6fcd59712b4fadaad7f04a1341700cf32d2ec154e831dc34d83c5e339addaf9c7a3ff3393adb27b23414037a8fd09d22a5b2e8f732ff281a345838cde605cd508f4752b5829ebf8d9f5abcd858239d6501d629668226addf808fd63245470a0ed01243f4ea885af9ecc0c541a7ecba8a0e27480ba318f8e30860c93bc02e6d05032d871c0cf437e41b56f5d5d119c0bd823e653722138413e044db47c92aca92a56fd4b59fb74a2d86e542bbf90b2d1fd8c213289e0ed5abe0a086fcf44534b41859ef26a0d5b434763d17838e7e761e7c1cc888d4cb8b99b8bc3c0b1443df4a5ddbd99f52e36d23c274d55b8a1b705cfcc7c0303d6e157f33245f2bf17a54d89596eaa1c7af16aa624c9c97f4daf6ac1026721e636e8f691ba2fdc73944835fa61c5ddeffe6f6f887eae49edb8c14b0603060c503b0ad7e6ed2ab673d9ee5dbce47891b81fe1064eec1fb16784ee6b81cdb707241351673e96e511623698ecfe5689fadcb53827db5dd38e97fbbec3d6a4df05390f18174b53cd275afe5baaf75edebe706ae008e4a1d0d846f720fd8bd49329e7043a3266fd19618cd69ca809d8265dc1b84200358e889885c3c1b88fc636c48cfeaec9b7f92743a5523d48cd1a249a3267349193bd9090b86b6a4d459e8a873bb2806cd635bec63682d17562e35f89f0e73ddd9dff2453c684babb68103fb043e34bedf6c31f1e15c8b3fe6fd5b40965e93d40bcc3623c3ff00f62ad44c49af99645f1a41c438055e75c44d0e5720da554d07d997c169be8d986dd3958f17845141f42f062f553fbebe51e6357452c31c0a13f51fda0a4f900a51f500404b808128c97126c36497327e88d096910dca4dfb432a8d988663b3b6ac6d7befbdf7de52a69464420e860e3c0e9e8c4f823a86e8dccd8e4374c0d7eae8bb8239f357aa907e828b3154a59f2a0839043276b7f71ea7e712e1d82f21a591266d583c598fd2affc8a15c2a2524d3d547ee587a84615f4582a0f55966fb13c644dd973ec57aaa947cbaf7c8b65983565cf627ba5e327536623d0aa955fb15c14f3a610e1d82f099bab706c1f9fce91108e1226c570bf3aca18d5246c1ca2e323db1f3276bd5f5a489a7e0678aa87ba9bc062c39c70fb898463bfb8f0c1adf306e1d84284dc4f1e0811727674e9ceb2ee4cdbb452e632e2c0f13574a4c1527a072399d31972f8b0551492e647d27ca6f21e19b8c0d68af988b5a8e3b8a99919e3ac5abd828dc8303a82f4c0daaa8e420fb18355aa9c670f13437c93d90bf0fba9c6943d7401bee1184e0e964c2e6b2569829034fd3958e7f24d1b216ff4ab0089f9f54ada38912282b0f125bc10c74d0d4e8fbe91a80c48716be17081455bab687ba56cb12df6438ce43d32708116fb43eed1282eea0c5cc04fd9bb15ba21aaa6c57efe800f29f28d7e1cf7c1d34460b1bf9f006df7f8a9dd8e5b8d3b364fcde55979e51a2868256ddaf3e810e1b6e33df2d42f813a057ecfc0e51245f884dc78701da853db4b9efa5db625a1d0f672262890a92de6a7fe4d88d0053286c4ed4c65e49e7642b8ef7ea4947bcabd0ffa425a6c9a793f66ff438b2b19c3695e352afb7ab2ccc57be4e9fbecbdaff2ea8716c11c645cfa427e685446eb0fbca29c4b8b1df6144c29af7e08856caf1f8470572a09a3e86e572a19228b3b7a0f8c0e11663ff6aa8bee95a08ed9a2f6cda4c5161af2e87b8fa4e92e64ca73208170e0389d6a7d794949e1865c108e32767f701993316f4a4498c58056de4b6eb3e41b6cb7d816db62316e5ddeb6307471f917451c389c5bde04c8435b6bac196d68b55a357cd3f2949440db92adc56444dda9fb885bc57ee4560e64ea073fc9ec03747ac05a14ead3a9bbd349dd63f20ab018b7f200587f70d945294ec475fa49c3e84f14b305e136f4f2134f98e178a245722f42a745223c3c3c8d1a439e468d3888744af6d04ea37c686868c331aaa29ff8412015a5940afdb454fa47da74ff481bfe941be953ca9be85314f2c673e04b14a1768b277416509d9057a111c2718bb15711fa532242beb28db4b8c57cbc6705e1b8b55eb785b6217ac7fe69428708e7d6da7e36d7160463264ca93701ba91167bc8bb875afe1ab7366e71dca2dcc2b1c9988c4d3be2a036e6ce15f1253cb9fd6ec49ba0d48efc5c8fd7391e3b3349c2044be1f67bed3f5270ded3233c6ec8bdebc6e085303625844d50e96e6e28881b0a1a92365d7043cc40b0fcca03e1f22aef6a957779205654dee5472ed62bdfc3e555569e0716bb6291f4b09dca8a45f2832af184102e834f43de7042f2463fdd522b3f862c2ed3457f142f05ff8778990621f83ae41df2d833e656d64a02ca2cae07b19c465a6c46f9d1d3239a3aca6490bf734d4aa4519e16e617a5ef9f569860481437c7f0e304c36d0253425113ba586ffff263d7929e4ae7f220bed1c1fcd45dc1833a1f494383ee0a3d1d0f6ae0035602cb5c62f67052e086ba295cec4bb80917718c328c5a7f79900765d32937c449a1876fa89d49664ff7923453489a2ee826e9a8d8028a9f2370421c74044e71165ef5214993842cbc0be94af0282441a666cff4d1e2b613b76938c2e51f4e425f1a84a434a0466c94059dcb658cb00bee02634b829c5ac82ee8fca9a30b1434793a1f4fadbc4ac7d36257a445ae0b79eaa70247e4448d8ea7e3d159ad6ac8826612ce825393092637e6106612ce82835a2f45ed74b83124cdea762c9063e0ce0540185deee773df36ba40412eca138ebcbdbf0b73b14601a15da744d2704f3ad50135914e75d4762e16971f1de69a13ccc980801f64bb2cac9557791e5c9e65e57960799715cb3dfc2b55aa5c2cddbefb1f43a4b8d90f8dbe67804fbea7525bd55bf46b529a4dd7b4e2c537999d49f8c6ec9956706a3291c4837c32c129cf82993b18674fa91802e826e04a2a8650c1f5648d50bc06e07a8c14f19829f8cd3a5fae29b208fa8171313ef56f1b4f9f5a6b9ee6f11984438e1a3bd70c9aaf468ddcd05df2d38ab09f2611fa8f9d4bdad040da501f692385b4c978206f3a18dfa8017746905d135dda6c743c39b29bd9d984ce0e96fdc80d0911238344756790282ee613f31b70efa14814f691f65c15b828705390a839c40df536a9c38c784f8b4528a5746a93ba80a44d569435d129d9237713264c8456c230a5e3091dc6b2b2d222c329e56299e963f660be0caccc52b9c80af24678190b92a69f61dce4e12cc03298c35e868ccac3c3d3c160b0d88a49132727ea4edd3b30c772437c476e881b6a14109e534c25928649a726509ffabf3bc3553ce17a5304585ee5796079152b443a0f2ebf6285b878a10a2c76542ab687ee085f84a1922a242a9d8f8aa5eba9a9c18143141df54302753c3208fd75e420e3ba3da2b26d2e2edf4e98d9294592169108935c2bc2b9ea5c784296ceb6892f08fd8e1e5481eb3f2369f88778f9679316dbc4414e046bb1cb02ac0a58807da1c780010000000840e7ea5c2f9753e7625c8cd311623169c24d2794d6e0ca04d0c118262469f872cb064af04c313a1f4c306868c01cfa3402f8983a33181b33d174d262518b3086318c9d701386d122e84ea3464ee8f2704259c7fca5c312e2c9e14bf0a0dad16000a00e1e4943efd8f1d8f0d9d0d1608990a90ab698b49155dcfef9054f2a38c53079ea771943e805f7303625844db82e130af43926dc931517a34784316e28ab1c8c1b9a40f3e5a9e90a031537c8816a7418ec67a48d3f853d285eae13643a8166d074b5c8b06b44384e97c3e4fd81111531cd68ac51a8d78b4abe3102e0f2bba783d23967033a259deb0a303ef5afbccab750c39ac89fbfab5d11e68ea7c5aee769d7d3286ab72d0c5ff294753d2df2b4f857deb1e3e9e1f208cca160c7d329fecbb623eafa0861d7c3032bd2a8229d7a557fa724d4ae546205102ebdb20a25766e6b219b0a5c0446bffaf5126a91612a3066ef86cf00060073b837c001be1a1048ca07d96ef8d335859c9dab06089567792056dee55d07e8e1f22b0f04cbab3c102ebff263073b009863f2efa1f22cdf63c5e436022acff23ca83ccb8b1582a407cbb788ef624dfc52d56285b87441075970a262b14f95784208e21d4930447befe60561dfb1a3d4a9ebf0debd77d30ef0fd7580efeeeedf737db0fa17a5eff72c904a76ec316e4b2c4814477a921d9d48f7d5aec727ec94b881bcd13c5bed78282b44b1d3a783f5f04feae38e83c1bce3e8bb53ffc97e1ae59ee9a0eed45dc727f97e0bf83e30071917fcf92eb08ce9d4d1754fedb7a8fdf6f4756c4fed8ca4d17ec89520a5af435e6a1df643a4cf65157c067f538139a03da2f25c3db2f22b76ba9c67ba78a6023eaece3b578df2e7e97a3a9f8e87157e965d967f5aa43108472ed66dd4bad8eef8e80bc2ed76aed8e5d6125c4ae4151245dfd56d315d9cd11817eb74b8d8744d57ac9f70f6946946999dd6d0005e0207c99407c1201ca76b0e216fb8c52d1b77f455a388481b4d8c4ecd9e2ec89b99846ff47fc1a9cee5a7a642cc173a2bf8d4ef3920a33e65ca833c8b69998907798a1bf22c38c549a1bd334a334ac5187a31e11b4e886f0c798a8bf9490a9ce238f42428e430e784e68b13e2cc1074b998a7e6dcc209b79fbe20d46049f8867f3a2b3a578b6fa615e48d1e4fcd39935c1b779c2e578f9d4d244dbba698af1fbe995ac81b57e04945e9d222c2f96307e3e996901d4f67834e0989e2ba56e98e1d4f773c1bc849e70ee629a7823cf583b175211c03e6b0e9baab169fc4244d77774f972b9baeb944054865ba1ce613c6308631eca4e329d9cdb06658338c612b523312247872664471deb814e9477b2590104160a24ac186051fa84895096e351f96d72518dda7547e049710b501fab5214f9566e6d3a869b526b22634e738cda78870beb771d074cf49f54809a73fe731f5203da9c7d4a3f42ccf6285887eead17db64872bb97143d09e1fcf16b702c09475d970939e12bdfdfc1545a87e83298230412e8fa40798e8a2b105d49c5157c6e5c49c5157eee8bd26f9d26fdb86d2f6510ca522b496735739055a04f14499bcdc5ab4b7bb9bfc6d033bbd99734601d655cb763d705fadfaa75e6dcb62efcd1e374109381631ccb7849d6da8fa38d7320380f9c47db388df39fb39d30f328dea2d6d4541e08951f351f176f71f3815829fda8f9703cac3ce979004d6c23b0f2a49fb687ca97a4b81308dcbe2bdab4227eee6745e121fd479952bb2644ddab1b4a9137ac7c4ba10f652b5cef3b7a8b27cf2cc835aecb8236d139676edbb85783dc3bd73d2d32639ef93cd9966c960a2d044f910e4ecf22c231e608e9b98e5b1876500f1f7051c22861bcb9cb28420ffc91c742b36c2544f9c247f9be2f9c9a4f17c51d82cb59ee8151802e6d08ddcb7140d4bd56aa5475dc844f6e7ac7c5264c4b42941c9b8e046b3a45f00d7e727b076e2b95b68d82deac7d49ce4d7f424a8f62f32784f029326e5b9ce1a5842a05db0eba5021f13cc8a5e8034759967d9ae779deeeee9d79deb3e7bda7c30373285defe79671d47bae7aa3793d0e12fda43da98e2af8023f677a476f959ef43d4a567b9295de43fbe6c97a321ef6e91ce484a727c8e37ae536e092cd7cb85ed98067e3d17c5a6cae8214fba1d09ae01b44b41f90fe096f95de81c0a792751e3fb50b0a2742a98799709fa88244513248b169acc5d67428199ab8ce03295e6103a1972a0533c9132a24935f414141de07969ee5c72c88e42c3ff9787216117a9f97b18af459dd6e773f3ea9b2d4d04ff44b95c539c759530edccfd7c1d9ad7bae763f2bbfc0578b9fd7f545bdbc0f0a49f0a8523091704285c4d963ccacf9644de8e8b8f65c47577b499afe321f12a98b356a6c577737e94b25307b6541419ea2b1cd0b89be10852a05ee85986bdfdb7bebf050ad09ad45ade693fdf6a3e6e33ece721ead664d6c2c2324cd11d5775acc9ce53c7deaf71e9f393d94cb2f339bb51896f96ceedd2b26699eb4b8f28a2c71770f03d96f5e654933bfab5d336a472d1be94f1bbaf01dc3a9b252596a4bf86f739b1685cc011f34618511566350c288129a70f285156a50a42383b7618ba18b5569b17f0c6f86c3534386d0023390e189222044d102181447e0220b434c1185113c07f0c3108eef3a28b14227064aae58824500269860a207448841185640f9fa532b8f8032004028b23222042d88c10b618431c50d969881929d2880397f7178aa035b4082158e70814815422a89852d60b1133b02d00e78a0f25aa0c5184c88428c2655a84a5a5081051443d08145a1eaf79ec00511fa9520f81d44d8ef600ef80ee6706f3342c08e11b703afacc2065eb8267eedc1ee1ae1b769f4a347589856be36d43083394758de9b20f8f36ba80187900bbeeff03b06b99e047718628356105f48c20a245c4c4125fb043ead601de9733fc11cf4bdc771fae3bb47745ec5626bfae4ffd5230ce670efdde03f6a97fe98d9843fa50de9a95ffaf4e9b3b45179fa2d6d4a4fedf8e3fbea0d2dfa73d5862d84df8f36dc9a161dac9b142905df7fa5aa9448754a1afa2935acf451eaa53faa97da1a726cb7c11ddb052d8e46713778daf7d91f5f0e928b1e70d1834be7f59ebe67bf107c17478bdfe5c620974a91db7c1072a98fede9f6dc3bb7fd7bb6fd665568181e61798f45fb1a1a356a4f5d7b6a6b68d13f85156a2f2fb3c7acbdcd2c0e9716f9b20bc2b18616679df9cd8b902b35d7044fce6cdced23578bf27e11e268940d8d9a5f0db70d358dda64dbed8a307eaa70062c3081062a7e174fd13071850a66109bc118c450318f0cbc30d2852b0831a13201169238e2658528584f54fcae243c203aa40e4a6b6891af3d923d4edb6d0b4317174ed2f0cbeadd52362753fc1c97227f7cb9e336561c304fce8ca32f0adf100f3c98070fdf10df50fbb9187cf1c029d009f31bfa5c7cf32de11b313f398153a019be27f787166effb764946530038b715b6ee1ca33783fa44dbb463bdcc88bd09415b9247f20fc1387110e3aaf1aa1a03e243ed6f66dc163d2cc8e8ad022af5111be19b5e8a8086b256982d802df6846a08405c081434d8a6793d6e080836fa87500dfe8e7e138708a872997f0c0e300bef9be2396c8e27e2c4933e774973ed7658670fc866e53d676cb00b6865c497c6e0a7481434814286db24ff205297277d4f2d1c807526cc58c468c04b3b4d5289bda4a5bc1b4a316dfd056c0a9108c5a7c53b33d878ef224a44fc2f91fcb8bf047f86d95eff422ec583297b4793288610b229698026b09aa26e8e08b241cd1c50f112254438a50c5113d60607da14415545d812e9c00c56a0c31a860a2b2f1c205002403180bc19321bc8163d4bafd73ce8cd28c6619a519a5a52284fe5e098cadb4d517fb883e30be31bea2fb91e1e58e1fd11c034bd2489a20248d6684bca17335156848dcfed1861bd421de0acc31c2d13ff89ab1b02f6b3ada4a0c21378f36c2e5974c046b42c81418eb534b1bd0bb231b4131b314217b6108b7dbae3bc1206d522e122b01899292871349a381b1463d2983b4d46e4efc73e24e29cd5c2c67b158f6e325cc32c408c76fc9763f960c8dc847f439617dc1e52970a75f9e02570ef3d427469f8a1af569418afd601117a8f311c15ec6bf28d62292262b22021f2936bb41b603a2ac0929868ce70be1a8adc058a7c2d5185e17232e59fdd1f214780679f28144816490a24fe390e2a9140b0279ea6cd402c3ed7f724744dcfe96e98570cc78584417c90e52157a0a6554a453d288b4e1ef470a4933e291365d08c1e71fb7199acfccd76ab9e3c79a5e84d91d3f56d3e9537bbf9a1d4d70b99f45a1f6e3377424e5bb9467700777c19667271742b0e5a94c0979027da44df7200f240ea46f231a9121e4a9ff05da2a3bf25dce6aab2d84da73effdd442e8d96fa8456dc853df12ce7e4339f4fd967c2f69f339f9b490a84f0b44df122227ae46694055b8aea549be1f69f33991345148d4a705ce26b9fd281917f39be8cfa751fc39e9537fca47040b757eae2bac2823268d1a851a453b808346286d3422640ae55b742d06b79f4e9b69216fa0d8ccd535b82e49938570d456da1297a7466ce9c6695e37ff592ebea56a6abe243e9626c5d57a349e1abee1c137fabf243815829a1430078fa4e1c137190fe48dac063c1f11e94314560a2bcc98c5bc7dc6d9967d441fd1a72d71010535ca5d5ed456d967c79a3b662e1ca28bcb95e1a073d2393357006ad05601d056d38bf0bba3b67a692b6933ba338c10e5991a20499ffab5d5a8f5b09126b424b78bb491cb43c11c303e56a388982e3f8947dacca7a92cabc9b20364994d96dd64d90d5986802cc3c182e090a4116af1c8e8e7a822c941bb591155ca93ddb1ddec1b318b35f049c6edf00e338b9fd2e7a13f7dcce769d4b4bd6d61b892a7e66991d5e20e3fef348a7f8e98c53cf6e31981b18fd5220fab45774138d6f41142256178a59230a4b8de9555280105087221512c83d78ea46156e69a7466ae8c283b40363f10026a79f08d10b83b0fbe015ff295056d216dda0b2f42530eedf27317bc63e6923623b6da8a281c3f96b6e24f06da4a00df68ba4f77143067c53e9dd98788e86634e290e99c948735aaad4209e0f66b2bd6887c448da2bfd2c142e8bac2a4933396a251dddd04f89a8a90ab0f42562b1fdc0c2b1890eb43e263b9bf80cc0280f459d0ddb9ace09eb59af89c1348daf4e59e2ad08cc748a328f8ea130f240a2c8314fb339f26c02792a61f8c7d110299e01760eca6be9d8f458510c8bc314f65401d038a4238668ee227f1a7800e1872d9fe58c2ce0dd2e0ab51429dca60a1bbd38c7a131f18410d0878bdc017df801fd1b7057e65283e85a4c9b49037b6c029c91f91a7322a32d714421c32fa01bea1168c4d30268970c0e351f89cd39d524ac339e7fc2dcbb62c33a2b3aa5f4cd28031bef9c69037be30c031dc7e948f48d280218570cc5c44577e2c6739cb85e5595624dbb6cce5ca5ce3c7ba3edd84d66a946b2b6da5ad3c047c3e3f7477b088afc83bc03775c2e932e2e2eecde73272fbbd08bb3b4a2737e5b3226d249c4b849a1169f3236dec88c5eab93428a25320ac41d80ee8ca9e90a20742b83a4072b31af0a97fd47670fb6f00331e4903b66e77946e08f8a64e880030875f06ca8a342a63128e992b0ae1f8b5eeb7f3f1348a7ef6af46f1f76a5188a638266666a6861a6cb0e1868ff559eea969b1b72184d46641130a3545fad43537e0481beffbbd9191468d3c1a2519fd683f7fc8a10bbea68d8a7411f2057f1c15e919196931013857a58005e4e4e0ec47ad4671738bb05f822d3049a386c271c42a72fb3d1c128073550a5880a67d39a003865ced35fa2091a469c2ead18eb4f976463290a84f06df88753fd67cc2f78470cc5cacbba5b22236e371420864661fcb53bcd3a7223cb2d9472c4f8d6c8330b089b4c980248d15242aab428afd1b08bb4d6de6e2221c9905fa348a8d342ab31950e69a42e1c82c1ebed9f8bb414340e61f0e747e0998f4c3f1eba9a87dae7cf941a04e115981a842429f0892ed3510a85348b6ef075d8d929914389d655913b0f24d40021200266196b4d9e169541169a3b111dfcf48f00de40de516087a1f08da0f04ed38e47a366b92058139648b573638b708658bae4c4a1a20204074703685cd6820698e8c3e73796a645dcc72654c8423b3f84626f1bcffbc470173bccc061d0de48d94373a0b843323d246e3321efa23cacd76206f68663f22275f9118408284281f18e40d6da5ad98b59556048f34222babadf8230259e04ea3e67f441fd147f4c9cfebc091eb6b7e42079e9c19b9e3388e7bf7902debf0bb651e3a357656a3343b7aa869c37b5ba7c80849c3d347b0d8df934411211b91a3691a9d539b73f21326531530cce5a8ec6143a04cc10fae8332dda7bbabc6fbbc22b3874911a00e26ac69397e82b4f991a2519313fdd4efa7f02fcfa94d8d6ab387468d2e1de813fb67ef12bb26a8c5173da64567ed87148c806ff4b3cb53c029b6a2c88a11f00d83216f301486a41788bc2149d345102177471e1a7266e540b9cc625204931d66db813a98ec30d9e971f6d7c184c7ab0e263d74157a11b73a98f4701ec86708e9cfb4d8bfd362119ef66c991451a479ee4ea798d5a7661599d3bd87a7451d4c8a68d4101d4c8a60a2c38435d9ea60520465dd998370c4c162b18aecb438c40db178e8ef778ae3afec96b5a64153d14aa592562a955428a5d413527a3ab31a0219f3e80a0b474ba552cbb370b4542aad6859a665d9e6a91eb808b6525bd55259c555794b556753a9acacd8d1f7b910b2f43d78dfabd4af15ba79bd8fa3f48d72d9346dd3b405882f69bc526d95d723a5575159b1fe435428a31b3e4ecf2ccbc1df7dd64de7324db31bdff08da5c0370ce01b2c852015a863c42c49d3357418c0376c84641520a184eca35946b3ccbfc11d5ad5831052a354a334cbb26c3a6754a359c64300155f51f9d1e5aaa8a8b8644b327b3df0d9aa5493f62c3f4455aa26fa7c536ea35c940bfac8533fc8715cd64385d61ea5d20a8bcfd78307a2340becd7f763be37faa63729f56fdbbce999bc9246a946e9763dcc7eaa20ccdef34f86194948dad06f2e64aa7dda8bdb3f040e429e9a350416dc8e40ab7af0538f6ea9b66a0a11be8f8f8fb6699aa6514ab3eff7cc8552aa6d1a951ecb47bd96d1e3b47377452391c09cd17b5c5b65c4aa96daf2a54a64e559c0aca50a296dcf0014c9628812b2248d11928605d200fd2b52162085f49e07f331083ed76c6bd54a0b4bd6c2d2d2f22e2d2dcf524d2e2c2df4338ecbb8a755e0c0c8a5ef85dfbc2098c3e3fbcceebd9792f6dbd831e817a8ba3e02d43e8da39399523a25dfd0972b2a9f955e55c2a12abd4b8bd90ec7b888011570a952d537cb6896d12c5bd262a9ea6caa1ffcb49234ad02169b7556e05c390849d32bcff22c2b3f44e5ada89858ecf37fe055aaa907cbab3c8b154dfc2b966d045a55fa92ed41f6cb7ffcecdb5acc5e823d601fbee9d56d26a202d6441802c2ed56fb486d6bf185ae04c19c8cc11cee816adb87d9f730b263683b2492f520e107adb59b4b9ea4aa27489ee4c5216fb2e70f65aa5f7e6a02dcac667ca3ffe5290dc8533f185b175e63f4d03edb16862e7674f1d19e528d360fdf64fcdfab22e71bfc1e0d9f5779653ecfb8ab52a58a06d8568116fb657b323b443b5bb461ffe5d98e33ac6cf1f4b3c5937db1234bf0012d2ff32d754cc195b932ef6d0c3e60a43f7bb8a4dfc007f89561f0016310bf2d7604e2cafccb6fe003faca8ce092ecf8f241fccabc0473ccfce856cab0e3902b6365fc0bb8a3af8ce72ac38eec0ff3d38ede4b9dcfe1cbcf3abfab41f8729079f99d109a72e0dbf27c5bdeadf86c4d3b66de7fe6dd8edd85f101f3f63d0677743accbc8579fb1298797be475edc33ca98e2a97f4b48e3f2e753bdf54658bd36b3e26c68edb9d763c3d7d93c9ca3ce9719c546b3cad297faae30f95dbf2325faa25e0dbf20deee8dbf20ce630f3f625b8a3e5ad1d61be85c4974475b880a37c09a75b6c1d61bee5bd963af68df124a823c69e7e56faa54afa96961da52751b963bec754795b6a5fafa3cc7b7faa3e60be9abe05dc215b14bff4b245f119dc21bef812d4a1afc9fa80f919b18e32f687ca85b1f66b3c8e7735b4a3786b3c4a1d6b6e8d4fa9e38f5be33f30e7c5ca9057f7ad0c7fa8dc12f09d799cdeb172671eac9dd056ebc8b7bed76ea8a66abc57a3762f2ec2d1347578b2765c0c7fb2ea8472ba275b84a3bffad6c7f15beb90fbaac1b7468d1a35ac0c7d5e56b905a0c1122b98382245b06ebf89bb2598d7876cd1c8ccbc9b50386e30a16d8b70dc60f2a278a52db63d6994b76a94e9fb39221c0f5016c4b852e84aa02cf45c8fc11cd173ff4922e5409f5f07fd71030d2e4fab8bc5118efef2178ad7a892d5212f0a8a67b22694972b35c8a8fba10c43701d610a5880e1040c2c810923c48a3801c6852684f235823bb508f9e55c02018f0316aa9fab77ab83d09463be5af4180ec21b30b8c3cff0e4f26804777e1bf197f36fdbab97084762bc5ca8bb474015c25cb84117825429f09220410515928ea8e8b68c968c8213551ce10635104308469cc00760c07ad002229e329421d68d216f687c7f4706695343dabcb7e3f25eb07943dc1aaecf481490520d5f0001bcff2651f6fd3f89aa3770bcbf4bcc4b940d34efef0ef3d457854e511053145145154a8420d209fa7142c409cea4c576980b6db027af55ecc9e7433f6eb8b2c521772bf29407b618030b2d4c01831ea8c41f4421840d5ea0e4055750f56fb08d68ea346ae5fb86f16342e8f234fce82f6933e3fb0a225e86dbfee360f096166e68fce860d4f8d1b370ff4777727b23da6040484fbf5481943e00ef71dd5e087c940632ad40e893be5401602a994a5b1005d94835487849efb5977e7c771b424448892476900511822084d4c2144bac4882958591262b50fb52c96eb0ad4913c2718395be7f2b95be348216fb875c876d2d37a4c17aab7a2d4178b996920a8ad5eda8a05c3a9eace3e9581dabdb89c562b1582c539121e3fb3b56c7333b3555ec39ee2ee35dc64b304786ca83600ecae3d0008fd3f26b30c7644721d7f4fed3a8696dfc58330ee074fdebf57f39bdff1776aac626e6fde59436f4fda9b41149ef76fc71c39d3ff3a53ace5bf29f99ea2d4a066f79127f79aa7bc958183b862d2d6fc3c5ba5161fb826ff49fead66423da9cf449f2b7d851c61d3b182b639d061b633731240dec05297d5b3f59842eb654c3e73a6e60f099eff79fd64ff82330c700dfa17ca46e47d2ccccd47929e8802177da1f37e490a203a483eb28192acc734e1851516c7606a8dd4e8b3c2d86dc8230e5c78e959aaa9f165b2dc6bc85854b9e241658bcb0185aa9a61cac0f7ffb39541ff3eb93ba24351019600bd9bdd942dac890f42330a74b3241cace3f99525aea7e48b66bb5dc932019bde5ad25434b60a525444b8a38f4aacd78cf3f9e2b55b2581f74f0e7e097532feb42355cff94cf59129327b9da7442963cc99b838528b51a986b79aa63712dae6375ac961955d6a8f27677ec8ec8dbc36a017bfcab6b852db6358346ad515dd2f87f9d92c6a93cf9c760e19b6181b94ae1b40bfdb4ba5697a493a251408d1a39a2ced5285650a346ce09cb5348468e8868a533593c1e00aabc5188d92b81a0b0a464437d29ce2f4015a5381f00357c006ab033529c4f801a23c5f903a82e529c8fa3aa4871fe8d1a4a717ead9f14e7dbba4971be00ea94e27c9a09e6102fd750e50d4095d7c11c3300c8f1312e2ae1c7dfadf3feba2958d0d6108ab8e08223c040346407442431c30db6d0738620b6261bd106db96846317eb62b47b42afc7a00f24e06b7a1e50984d55872c51cfc2954510298b5716439e8dd7f0dbdc25369d8983973fbd728a2740716baa5479b246488282145048e23027b79ff4a4ef482f2fe94952e52492bda1c5fe9c1a76410db5f648cd7717abb1b02e86dc09e7f6d1d401ea6208d75fd2460b1dd47f7498935712422798f4b30221592039f09ddf23ccc17796de2b9724d82324c9762190c7aee5ee3ded436ac993bc3464617aafdc838370dc60b40653180922d5c5ba09779cb48b957e7489f931947998a730b68b91ecb8c9d871a3c1c6d8313459f7e961187a51a3c2d71802816104088c222eaff238eddd5039062bb062a5f2b62bc2712bbafd3c3b4b08c78e25e70ee8802139fa6e4f244d9ba65bd38eefbafdf1015911050d6ef0842caa2084902082b0859f2484884dc11ea9f90de6a91adbc5ba18ac8b6db06e65e519cc61f91baadc220a245c2a3062574e71251018492e12d7c571a50b09eb7a9ecc7b2d3df531a76cb1e583b8f4f8339998f4fc3a48cf3fe47a1d855c7fa681d621d76b90be34586e01df30fdaca364724d8fe331557c533d3da9ca165b2a4c1d879c1ea74ba5c7712e9564aabc2599f7f7fa2b5599aa5359477d1bffdb15e18cf7e4a68450021981e88e1dab63356ab6a4cd0e47246da6f576244d7fbb9d43489aafa95d4f9ffabd8ed5a898efef761a25f3347c7f57a4513d9d111289345fa6366af23beb63aa64d2ede8c04faad48eeccf156871b2ed8cb4d8d4763d2dda949011ace055dc022e80bf10ebb4434158fad15bad4679921f96c7aaa92b7815123a793e4e9378b2cb1683f8a5cf2de01bd356a045af3952f3385e53a5bcf69dc4cc24d27ba5d62bc27a3a2d823a6c978b98ef75822f2f307faa9e583dfa30d534432c3d9146f9702122bd6a948f2335efad5aacb15ccb4f357e9471675c6666669466de931efd64d4b1e6caf8ed8a5046cdfd9f600e1b5f5fe2b48d3ad65c1bbfc16c7c3fd7f254cddb78921db76be36bd8781a2f3d65a3a6ca3ed978af2a92c6868d673b6e367e722d1b75e56bd451068d0a1bdd0ab68e61ada3ffca7f1d19705d5ec64a174b423876b1ebf2a52d28941788090ff700fd14dd9e4061005d9b2b81c2d0b94442444b943cd1848992278a287962e7a2380a21d71341ae96e75250c85b9316f95fbef49e07e6687996f72438e776c516829a5bfa594350737d909e823a5a9e65ac21d9b1e6921ee65deac8d7e5a5a4b9f3471beefc51a5e6c795d48f34d8fc48e3ce4eddfcb8917ee56faa4cb5a171fd471aae7f4d75ff187fd33398a32f0dd6ede8a63a3a17ee85a92f75f42f3d571f2dcff21b98b3f2a3e6b6e8e0bf11b17c0bb5e3ca9dcf8d2ab7f4f447cd6561b15ba96eb079372bba57ab45553e95bac1c62eb635994fef0cea9e5ce9c5900a981003085ecc20881a452072a2066008420b84d0b53ce5a5ae45ea5aec2f2fd97123f9cb27d77005f2dd20db3d52f30cf291d4e3b457e3c9fb28a003865ce71d6e7bd45456b10b42a1d4f7fb2b25d4627babd88f5e45386eb0268dda9c346aec36d846d4a8d18b6e51a31a3576495ed275008b64ec5ab7d5a8f9394b7ee449bae449de207992394b5ef2242fa803b843ea6b7e83792a654d3bc80a78a14409229c7481072a0114a9a42a556379f80b2854020422572a79428c2be34a254e3471fda585b4f13f92fa06799035476a1ea7bd5495b207af6a7ce85656b50bf95fe942527453ecc8465e1b17ab70e41ef797fb4b49a83d08beb6264209eed8a810fb516a10b07e40b68c897de2770511359118e175be408becceec2ff657a3dc1b359d899346b91542117de0f24b9bbef2993419f257a324101326424cae13f9cb87260f427eafc700cd5568d293120e6006759fee6827e7769352ca174317da43d453a6323b63bddbb65f664ffba7bac2f1ef26850c80a270062b9ae0c403980004215e4c7802851854fddf2ffeec09c16712f6cbbbc3d073f9e58c8b738a72c6d3bcb520573a1432cb38cb64371a855ced4e3beab8948ab08843f91d51a3b6d67a1265734af9b2764d1ec79ddf63354adaeed5055d1166df1179d28659caef601d518b7cc70ed635e9881ac57c93b4c8b4d535e988e4ebf24bf943ee927ae514334dd84522f9ba9ee66d9fd799eb719f571cd7eb3c3a27b34c19492bae3781ae977d5449d8df9ee6745249249584fe128ceb699fac920ad7db66dfb6a30fd7fb02dd2bb228e2d2da2cb76deb6c64da41470672a9c542e84ad9dca5a61ddde4f2d3dcd3f59a29acc895108e94e8f29b72e0cb0fa4813bfa8e13d8b8e5f904d214488fdf1dc71ff2c5042986362f221ca98b7b512bc2ec8164b7e62ec9eec70423374803f590ed7a23174a164f6e905e72f9c7ee8e9e4538ba641166efa56c575a5a4598fd90eb913e598174a54f566bda21878680cc3bfe90af1ff275e94f8b2a9fac1428ccde932b2b73c59ba5cb887e773daefb64ad5a5ceffb64ad03b8dee89335e57a289facf47ae1276bbd5eca272b107a83d00b44d2323a6557e514d7fb4c515c7ebef56631afe7cdd2a5677fdb0a7eaa2494e2725b118e747a774f96da88fe481afed1f40659a2a068b7eda8e3d2a2cb5f6f5647fa73f98a2545ad95a7a4158230850eac5044061eac544c81264ca8d0f1c10a5820858abf2bea623eb7a851f22915a11df956798b9e5cceec11eec568913b183fac457e981cfa628c2d96208630b45a205f457c100b83104ffc6008f37ba8cfbdac2bbffde97b52ec6fd0a95fbf12f422ae2b926057f4cc4f5d9e6269c2d0164368a1051f9c41c54f833c051304286a5084222d2802122a7edaa23f56845e8c193c077872869925898391f6b64c759ca4b194994e4ea698b9b9b9f948c6bd6d17c76402c808ffe28cb4e1de468ddb346ed3a13b5f5e31e4e44eda49febc09245a740144667547aba14bf82e63a8b988b76ba46afe209cf69b48288c2a6176bff70341c33ba541e6e7fc9fbf792ae58fa0fc91d1cfef8e4cf4c397aa946aa2d66401f0539e87d1a33c0f291f5a20c04f79149b2253ea886af608caaba4a768ab4ff3274a2b05c7fc9af93f5f9cd6e4bda907833cea12618dcf9bebefd2e1367f2c6d3d9daaf9a2a7eccff9a31c8a1971fcffcbff8c2a55b64a958c2a552f3d355fceedcef7d3d46c8ccaa4332d4ef19188a169de8c3a7a5b4b2fa3aefc57955a91ec205544c24779099ab8e7c13fe579e807bf4e2184fc0d5209c58c1abead28d587cf9a3ccb2344790d0899075f460502490f99071f081a3ee5bd2984f025cdfc990408f5817e6775c8bb3d10427ee61186282f41cd071e4460fee54ddc57c03fe52bd00f3e4a35d19721e387a8c26aa28f327a94ef317a94a78f628520a1b647e965582132d6f4a517428335516be26c04fc53be473f38fa212a8fef5677607087acf2d5aa89c7e87790aa51e9bd3655a982a952f5a2f1203204e95d1ea765cbb33c4e677c632ae94dd5e5616acbbf54964fa92b0f5695cf565e65f4a591ca0acbfc96f92e52c552a56a65f47e9a30d3899089a03cf844c21fbd0479a47c15fd341f6504ce9f3f08b78944d544fcbb6508d725233c3983e306dad9ab5499543187fc2efc92bde04d60888abe9c59221cc04f2269736333ba7c801a4f75ef277e1e65918bfb51beb21f25cc53ec2eecf69b93c890d56ab5b2a145fe1a1c2de220e21d14ca1f7154130fcffb09845082a0e370edb9df242055b46b8d9ff83d27520d59e1f013b70d5be49f4842f963485db335317872667cff584af9f2c48fa3c65338f2c4807740f36854f6da87f2c49fa439a40b4778a7f56104df95526efea16f567608cafe95276b8434de9362f8332f677ef4ff16457f1a8fd362a36a7ca35c7ff951c6f5d1f51f65ae83d74d3fd2703d06fcd1bb6ebadd95f911e63a7765fcf872fd55b4eb2dd7b3fa230be9477aed8f2b77e547955bfad167fc58bafe2d6db2f71f53aeff48da341b97773bd6787faf461569d499ff49a346a521d2b0df4c9d2df673188ee16ff2c4768644e6cabfb76d86ad2f4386861813cc8b4b0bcb8a4a91122b7c70fd4929fea176fd5146ddf507bdebff79dd48d26c95250d9d7593346e694844c264153d505c1abc11c19bfed94b95c9ad2902de6bcf43f7990522fbee350b04921ed9770f8426dfcbaa8987f6a61da44a33f190bdc7a00f39f0e5df41aab6e7e68e8054e5601edb7fc099079196eca3dfb46af237516b8a80a665bf5920b6cfb6cf1e08eeb5972aa9fa408bf3bdea27ade6dba42adbfc347f74a0c5298bba2775ddac51bc8da14a8bd9cf9ac9cb004fc9176f6ef62eb07028cb6426b355c8b7cb10d29736fd7434b2dc904fd98f59d56ea334ad6e446c97c19c6eb33dbc17a2fde8a5ca41138fee7b096e2f64bef79bedd1fd678598b477f153a659d5d65a0d89b89ef6cd46754434aa7566a3b24c1b69b589b8de56b5ffde7b0b7cef59136701f04d9c3545c0fbee7b78df592148b81782f2de733fb24246dffd109556690e7cb9df41aa421ee16f35dbc21afa29e36af61b0fef77902acf0281847b20e67b9d05c2bffb1b7e8ff9a195dec35ffa895efeec33ce6a5af65ecd50b207abf4d3275d28557e55aac0d04f19fd69317bcd4e242d5304e67bdfc3bf7bda6a31fb4d8a9bbdd769da668f7c2a2da32d4fd19e3e659f7d1eed6931fbf066d97ff662f661f62ed94b900791f9fe541b32dbbb81272710fab704ea42d11d7f66a23c203a1aa507bee9216e3fe5d9007318ec051ec36d1cd7e6a2eecabc307c53f6a41fa23265d66481f053be074af6289fd91ee1a77c8a15324a421248caf08491d54a15fe10d5e8c1cf7a3e93f294fda80671e5a84a15833a84b7b347523eab99911633564ac61a33d6ad91c51152e8810ab8f0c4125443746a00c4440c6014612406aa7e5a446321f54228555c0527c260a206ab954aaa9094a0038b903881084560ad56aa093ee0fbeeebfe7f7cd7fb6a09c699d511c7388edd671fb8d9e3f858c3d5dedbbe0fccc9d8abf2763accbb3d577df0bbfd06e66cf6061b6221154338d222947b2098937d7c63393c91b02c1be275b7839f1f289240f1f3d34a5a4597e64a254e2c6188005702456189bbc11a05044890f0925c3ef3b86e3d1f68f14714421a6cbee66bac909ab7f921a9bff91b2b04072c54a91fa21a5d2e87356caa1004fc0d3f33a35263eb229c2bcf535882881430254fa2b0002b943851c517432481c47cafb37accc73c4ecff73ced63f064c721f7f4733ea54328d371c8f5c931ef1cce39275779e78c79dff198989898d367323230d649efad4adf2fdee2a59779af54bd55172bfdd8c57c94de8e1be9a524919e8239242bc32f7d7fe947d2cbd82ed6a2b79a9764bd6ec22cc3fca592cc6513934cd48ff0cae21b9e81396c1be6475479774cee83764d384d9f54fd69ce7c538d79987a7a8f3f99dac5bc558ba7eef4fdcccc33f7f4a798dab1eee94aa0309a5ccfeb8f411da737d9f1866b7ab9c9f42f2f4ddf6272b9a6a72f2d302f2d3024ca4f5f073f2591a80c49c6c697aa2852ca325486d95469d842181be20dd7e569a8a9379faa36f3b924365fdabe3b9260c8e41bf44b243b06b9a4d2538f3f93c976435a600673681742d3934aa00416b8d8c20c34c8c2147438020b24a090842788844168a8517da7e949ef996a37b485d064da82dc713e69d6f1bbf349cf608ed9bd7e7cd764bb212d8435d5669248964b551cfee61de4e1006ff30ef648fd8d15f249a14abd833d6adec60a414012ae2155cde378833914d4f1f2ce2549959ef4a612c9b46911927e3e3fbda9356f5353cfe0034a6fca312fcc9b4c3fe49a5a9ec098bc558bed625dcc855ae401874fbd047938c0d758217c854e1845aa9a97600f9b4f59212623a86c5e823d6e5e08032141044b75a3138e5dec4a92f521a12ee687d323d262ff92dbc53e26e62798c3efb4fe7222ecc7e16d2a7080bf799cf6b22f556d5e8216a8f91b2ba4c1500598aac6a6a67e92240d9d355ea68eb38e3335f307a8ae85501380562a1caa7cad562aaf06870354173f75318fc8edd04f400847aec5b51a356df7844bd2287f6d2f2ea28042c8c80fca90c5189e206206621c6102135e7cf162fa36225dfcaee9678ba697617a996a827999e7bb524d30bff2a7f74a5008477f7936a8e82969437c8fc152a985c697ea8c27493067864744a7e43b2509e6c43c4e93de93d6b483f4f475909e32935a5e82dcd24d6ee9713ca69a9e34ca54b25d0bc88e93e9573e47e671dc546bbc4c95d7461db76e46ed588fd32f75fca1d2b57e3a22ac46491e8ea8c5e6c4e8221c3b22b7bb221a55bfdfeb88342ae5fb3b1d0fc25010a4b89e7fd4671af19e2e72f9b2e5b9f385e5e9f3dbe71f7d27075f120d98524ccb8fe2cbbc9429d3e95fcab734ecb89d2c8cc9c23c7fe9f4a56fa9b2c5d2d8f2334a92be8d181b84de18999ac2138a3648df981f594ef465be411d3ee6cf1b637d983e6696dead95f9f145c68edd845e93f551fa98a7cfe08e92f5319fde18da6283f485790775a0253bface3d8254bbe79a627780eece7d4d9ea4599a738eecb1c5f152e9536acc4bd0597c43fa39fa0ee9bd1b371bd6bb09c98e4c411dbccb96c4757ec3f87736a071c89c73a7543beb3526e653de59313129393156860e74bf989af29e0475f06ec35a9cd68fe01b5e636bbe644797d4f3cb66c6cbb0e396b236fc64e3655a349e56f1bfcadbb1582c96f8d48e33b7633d3f49e5d292a5213b960d1933be411da687f9af7c3b16c9b29dd62467d8717b7919d6c68b9ee8bfd06f79982ac11ce2d3f7b68fc17f986a7ad6767a69f94ff9af7d69b5df9dea4b15ebf863a653de8fe01b7953de77ee3614f2a5f1d1a87c6930eb7a4da3f2e5eabc61ca7378a2f1dd77ffe2335e1e46c6cb68f97fd1c657faa4a794868d225856c70b5ca64c9932b5a69827d9d1a483e9e9bdc0f5373dcb0e99f7181d484f75307de9e9b64d538cdd61b225eb2f635b5a52682d3dd31696a00e2dcfd647cb97ac0f1b3333b7c5da78fb55a46143c6cb9f5e144f2f0ff3127cc0cbc3fc0b0c0c8c06f302f3a7d7604e303466c0d8197fea19cf75c68b773a9d7efe683444dfca78b6a61d34de9fc6cbcb77f425a8038def9ec107d0f8ae7b9ca6f15df72f263b0eb9a62fd571e60297f4311e13030363635ea6ca1663ece872e7a872bda5c5ca3c4c952dcad8982a2363e3491ff335552c55fba4caf236aaf8a65a02ded139d0d8f142d241f6cd419a759cd9e15fb27d671dc55721c978b7332dca789c26591f2f4fe365d451b43f66ee8bedde3e8e8f6a78abbc2a759441d73e4b1d2f70eda78039a71f33b704bc63e5d278ae76349ed66ea84d3f6e2de4ba1de9dbf7ec13c249e2978919372945d2dfd2e374b76a54c98e422e932c47a3cecbb69be2d5fad2789cee5e8db2dfdf09f5cb8e51b9f6657fd7feec5417f353bf7d2b4366dd2ee6a9294ff3c7993bc70b5cff8ef1582a9ecefdae67b9272d1269941c65b7caa16167e4addc13946739272dae1a85628fd4788a1be288b821aec5b93c25b9a8820a927881175cb06304553f17e4a91a863082188a2c39c2041ca8fab916f7b33921e43bf335eeccfbb0fe19dc31f3d6c9ade1ca2b7c5cd7e7894f4b860d989ff1a7978d129fc6c3a4f0843ef8495f7ad2732dd512534a4dcf9564e525bdfb30591f76c81f97f43962def4f27a8cfd71fd4d96f4a64f794f4a60e6d96775f9c5a22b8ec0ae604228f33c0677c4bc979ef44c82c7e9e95faaec03df1da6d20e137f4c1d4d5fe329e800982f3d0519c017e6d9a6f084ef691484005f2ebd0421c01766a45fb2293c21b53f54fe25a803ccb3f501f325eb437cfea13252fb43e5daf869c71f2a57fc1a4fa38ef39edec11c6602ac15a8344db3864d903aa56844000100001314000020100a0744a211a150a4ca6afa14800c899e527a5c9aa85992c31452c61863880c008008080098240900d3c4a0190bc5f8811bd27057cc12c1e23d3b8932872504bd8c1be85aab93a8e94192cd753f76fdd23ed920deb5404c58354a8d688e8eb01322e2c8daa12bbf94096ca649b334780548f9f193fc4449a0d4252c9b0a1901c4670084f28c283bf465c1b688d64d81420a527242ca8a66711617f0b20a74f68bd2d5ac0debfbf8424ece81a1f5fe37629344b496702da8c79e96652514d611d09433d62b104c303a1fdf9b7ac069006f7a2dc4586668e6360c39995e48b901f97f2cd613744625821e4a92ef5e386d3086974f816b284aefa8e341354170e41e89bcab44dd82b433888fa4cc4583265f5afe5c702c87d57bc9efcad6515da0d76e666a54d0c2b45480dec056d2ad180df932fe44add35d275f88424378bdac82bec7f68dc28d6d80200ab508e44024e8575b75a8b183bb595d4d4f651d69070b9950a7fce124d247c4be970f6bd2d03dbd51e63504f580268f56397bcf54e1a13ec443552b2a99d3c55d6f2588a13373174710a95340f58eb9f61a6074139fc1f4a5e43352309528b500589617749187d430b56ee794e7b62be49f017c0033dd423614ff1ed4e5aa3c6c6af20c3653b5ff338ff63aa5bd1d5445f3d10a251703a65c24b20a66793450dc4f5d1ca15abc32f63278c3028a45618f610204e857bcd3b9300d248fc67390d6b16eef25d5b01ac7923ba179de121b02b3a02a7ccc1846da085641cb34147d981b3d7debcf1c98580f2f3706ca6ca777caedb2092421df8e4d12a48cfec7921c6ee5ca04b46282e300cc0a1c005cd61ff86d7875d2d12b6ea2994bd5bfcf8e357b23294ebc279748e9db741013d32516f1b4dbbf62061c55a67ca8c09af75227024cff112f42782fad2ed8b27ee799f76f52447e43cb4bf90f2900ab7add106671525470e89b7953a64d2135ee226156ba3c4d4f50d65505bd8407f339db0fddda432f8ff7633ec7101f144c4d6a55ebdd1647878baea3ac76f8a337eb231122eb28faa28b158302d4e1a1921b160f2516a7575d2452476054b566317ce2d244a84053efe40d5242d7f7b1136bc038d5bc6d785b74daea1b89f06573d4d435861e20a6801f4cadda1428956d588448d6152be60eaa9f82e904b2a030af13d35c2f41154d894a01e6a8a86bcb9d94fda14d8e000200d9e730c73a5df40cf8bee0d9a798823fb99d88a86213d14c2072acf489aa010b8dcf62022438e1e80aeecd5894a984975453d992ab993edcc6683759b95029c60eb4b3346dfea42d5a0b743553c93ac274ec41355dc0f506ca67b54361409e9276a6af1aa575826626245177467aae05a5c6e91b9ea0456b417d217f1bba5cfd0e7768a53b662603ca8fa494e492b0197a7137988cda43656927d00132d4bf24985c62c8cfc387810b008aec84b0885b6516b50a4a78d5cfb89a19170c74dafd87ec13a9f8b287418744137914f91e38fa1d33f4a172ba663e59798da4771e195357b0b467d6fa008d20f85e818a1aa15b77903a8361fd545b180bc1103976fe48b54b2aa7918062ea53225a049feb2ec305378a3fd10bc6f167ef8dd7416768635c647278a9faa8328cb74c5305a7119afe6113fe6cf56fe5982607daa765db4a8b566a3296d8a70cf22e84744aa57097a43a6884c4f41e9119b6f35047f5e7baf2443f9c5d8b868f20ce593b3dc236214efdc3fa2216b4d6113de6687d532fc69963a01b6bcb1fa7ce01c485e675ba1a6b3e917a7250468c4deb31cafb938993f618f555d73f06468c0847120130121436507f88cc0b65e1e78c076fe1b3b62f6e0026c6954a00bf5bc1920f302a60eff32e66282b3e609b3b657821177e0ef0a563bbabd287503bc3e03867abac8e4824a28d4cd1db21a9eb6bc8305d402ebc717445c79a87e38c69562671b72b38f87d269a59f357f483469d64ffda0ecd4b7e60e3e00cb98b5207a84a6af5a544b40933c3196156281bca747326a8364245fc584ab532939559c694d008f979a82a0e4efc767606c958059cbdfae3066568857af4fa0615ba55910d366984bffbda7208fd1d43bc606ca49d00b5126b3fd4763d78f5d310d4f2035cf2dd533b489d32f88b9f521dbba449cb18b7d8a5db472b328f8c6d05b87411e5ed6741931e0a078257b752e96cb7e516e6cdb38da1263955446c38926254425e10eda9564424ea351c00206ae16ea4aa39e382b39b501b4ed60b5514ae347118a6625ac3d3a8f2994189c039099f8a94f4aaefab65c3e4a525669f83796d45eaeec4c92fd4c801d3c09befcc2601a6c54695526bf35f42bc02aa790878ba86d47b9dd3e294c499aedf1905e5c82be87df504bd1aca3c5e5489831010bd025f19eb3998d451fada7a24e0dc3109088f52d7e7b12dac12e6b8e758e668b03de8b9f698c1aa566e0cac7085412ced27b490f586d6153851a3b3c0a918f2770d2a4a7b062b8edc23d8289f99669701ef89a2405dd2cadc10a3cb004bb2b6477b71567d2875da378c4d6e350d6168c50fe4bee44fa4f470a3d6867d6f06f456d080ed11d7130b07e0c6d31cf1f4c496d4419e2789f1f38df66622723ec335876f857c8d7fec1ba3fff4df417f95370996b46532fadba7030d2d85a0aea55648ef52f2e5507432b0ec9b044272a20bedbeca1245a881152dbfaec391f552a3f5d1708553a5a697c2a040ce6186ce23d4f31537a900da219dd06d8e437283b21cdb1e8b380b356f68cc6cb5a71db16f31a8b28c45d52c20e970ae0bccd8f301709eb174b031e535bf6eb68ad65e1720a8ec169321c94db8ea14479f9825bfa4cbce7c762803694defc65205cdf791c4e7fb8445677efd21b4cdd3d6adddb8a03436cbb7becfb0076505ce54d12b1ce7c15ee2f5a37b6def7156c5f1c52057faa6ce020738683af291420102accc1b4f5787759e227f6e49526508a456e044ad02f138376567249f73a025bcd0fced45caf97365c3357f3967fad03c981fd988270b1e1d2eef7ce5cdc5b7e2a9c676a3e424194910f7c4d5edda9077dc3782c56f6c28316c2bd12793819841d47f616f11da6bcf1bcaf787b69b0944df49694b374adbe7aafd885264a0fd6591d5c39bb0d0a3c114f18c32e9b8c159cb22b2cf02dbe04d24f1ed2e55778310f8d69b36d8d3ea664a147a2d32aa2e9ed93c89e493f2562efdd504d5fde20a7b105fa2e6a62f7475e0f59f398247a01c6458d6c688c2fa69606747db84e0605d77d191278804b8ddd09326d5e6c32cbf97237d49982835a5c1370a8d5e709da063d65e79a68642fc8ea5f763fa522b3ba0a215c6c520bc67092cc6b5d0e657026259df38b08e3f12ec78597db084e5d4ccbc36a30d04a7a9d1d49d84c66051fc03668b11bc191ab6e83965d3aad96fff1a1cab60c082a7516eab2879ba625bb9d43e2462a3dc6422f81feb8f77f7e7368bec2bd6c4d2ea831191351aa69adf2698c57f1ec7646b76896e2d713b88a1f80960e7261bebc3f8cea7e7756a905623ebedb64b6f66caad0513d29c7b2fba583252d275aaf2277d154a74f7341b0a1a630dd50ce2029237cf7318ea7604de57a694e01c4217d52c1d6a0e9b19f4317a15a7ae1062a5656fce1518f12d7fab5454d0a03494f596b79106308681c51ef8c2179c71a9950f5f480e785091abad7579f3b56939a02b9ead4941e0f5559e7c5709f8aaf24675af84b171a2e49fa22fd588b761a13e007533dc415431e700ac090d57ed0a2aeae677f441b0f8e02a0d9a1bf8d6b2c59fa48080a5251e4577d78a444dfaac4b07a9b86cd3f0e867ab24816bb505d44ce1cc601e84f5fe0bedb53b984a5f3500536c7c4dbb0bb564a912f512a337126d0cb1fde46e84fbd81520082e1c4826a5cde8750fcf8f37f93dc7837d542744c9b5e661e88360aee0a1020d5be7a8209362ba61e6d4c7a9817fb9a2bc9dc49655310e674b6482f2754d7573b5fd6f2f30608f487aa189c654d04d2636f376f81429896af147afed3f6149bdea363c79db0369d43243f2a57f9177d5b1decef33ac914b365c29256931e499c9f0d864ebb5eceb6b144bdd854bf30753e246a7cb336ccdf83c429abf0a409fc333c1f92a3b8a95b7393abb61acc152f71ead427f90643df8998db83b2c9f280b120d2eaedca8a56ed394ab6c57343ca348604aa9b9b53720e423b2578a100399295235780b817a4c133a7431343a82796d8c3c05e07ee78f6b61051e5970bfe6ae44d53795669a3fac06dc5130386d0a96c2492fde52d072a7b8b2668a1182a32833ade80b4b8ca7202f148ce5a40ea87e28d8a9675b11ec8e5087c0198b49c4455cd92ac3a1e7a457047f247b293775293c63eafad527249221a13c14841d14981dbccd574699247634f464ba58d13f14aadd177aa979ae846c76f214b97eac6506ca0fbe8690ae81d9ba7b109614dcc1580e41670c3e141ca8b7cf5687755af94be8acc791cc3a66a654c371918134acde18d3578851adbae5ce4f0a23b644bf995bd104fff1ac507a27b07fc9a7943cf09f82678aa52a3e6a3d6f0cea46ed3d0a9eb5e184bda5628fba4109727a3d28afe9d810dcc79e7048187405288d04eb79152d9d481107d0a618612ab042f4d2659adfd12766d5a66f04908b9211404a0f17f739a82adb7a18eff9861e5908588760e376cf184bb963dbaab7caed503118da2da8ab7b5ed53c8caa952139f5a059130048805804ec5f5dcd082a441dc0dc9b4602c465bf5358247c694c8cf31952dc6e0fe2f5c7ad7b0ddaa10bd7789788530ad656548e26d436295a0d91931fa0ef45da7fac5b86162d2de8a985dec2858bd47f4e1f6548fb43537aeaddd15e46f4e92a105547c018963eaa249d289f678a8809da09604a538d7461c58c4afcc9cfb9e4e3fb9b8ec4c0a6e29cb0b18f784071cfaafa1b097d71f368f7d9a6e854d778e26b8daa12627d5c7d92049cc7e105dfda31ca2f5bd4cc88e235709032638f448fc4d2b390f35570184e5150196bbd59ff9e8d49468ea5346ce1e1a38f177f9058813e9328da39f2c8abe73a01e20fde7d6938b70a36a5a05fa1aa0174209ea0a18045a57e2cd0d8733812272048fa29086fe85ec26536dd11b5d7f7819ca11b4143649c7ba89ba2e9d05034ca6c4bf5286e8e86d036c6e2b8d01036faf17c3512ae092d4bdf723b7f8f749b6b7413c6aa1c45e7d0d942c2da4c382a8eed145decc1318d1e9362ae979337930e9e9c0ae4425c887ae67e35e7f695d0d27883508efa719eb705af17424948a4067ca68c329bc2280613a3b27d3c5fcdc5cf3dbf5820c0976248fbf6be64c80be8c3b8583a37d6904d39992e08aa2dd45eec9ed00b2c6481c44f4a0e402941b46ac8b9c45e78fe56956c6b203df7cb3de45b59de49f1e8d9313c234ef274d8984674889a386eaa4151bdb2131224d38f81d354fd3c8f9b2d6b7a31e7d3251e5682015fb43858024b1166b7fbb7edff57489c9bf4b59f0ea2692b98579e9769fd678a35172ed98d2024b07f4e8cf4b08804810c07bd56d848a1ac180544a21b0489abab9543a88e1132a9b3c4e8047a23a1c4708f354c7f932a694aafb0264cda749cdc379201e652c2c5dbb9107f227cf44c709afb44417cc87100547d623d23b9120a52591b23e44e6868e89a97ac21a0f4b27a531003a26d6de57d790d624e7495edac913af3f93850983c45a8e8db9d43412539d0c6426268724961a95e56ac01838f3da36f6459823d387c8e29f60d4ed040c6b3844168d177c207bd1f0044d173e732e7172307a4f8cf8ddb6e906ad29212147ebb5739852b97128e5bc32e42ffd16c33359fa03ff42148cddd5b69781dac910517a397de05fab7f52e9034cb73d112a9dcbddff8e65f1f8405210e6a184fa3db4d44b87975a45cdc944ef0d5c2f79714151b25b4d3e199686f925e9b0cf529b89ecaf014755935a377ce021ece521f78cca68a5193f3b95fa81f48f440d0dec37c31f59548637d9a79f92950729c47e386ec9af12e699454d733ad453a21e4547042b18998ca662e4a271aa7e6f093154cd1ffb204ac0a599d77188a72ffcebc5947083f62d86e13e9ea223ad77fcad97ce809a19160bd6eed3a21a8dab9f9f13b0abc316bd3235990baaea94452e37d8406fd4b34cabb020f43e6448f3f663aa73e96548643d8865773235aac4b82654ca88adc06b2bb8941c2a3e2250345dbdb141d58d310d335f5f820624bacd0d05fb13f1c1a125f788c23e09a0cd0a5165dd47598371ef2115af9b6d75edb644f233213348e3e6f80ed38590672a25a89ec111aaacc8a1151deb4e9fe28d33a32095dda42c00ac65617bdabf0cfeead7dab328e5e40222001b5d27d8c41b46b2f9096b301c2eb56bcd9b1148822b9156c8072cea8536e86a643ac7d263026c2844afa47b4c16fc228406df729b001a905e9cff22df19fbf4d2aecd6d0dca9d8627e8df88e47eb54685ae3d957486fe6c2cd70ad5e7e975c23a871e88f613d3828007875308d5534a0801b15171540276134a1b0c40192567e268480ed35488832a1ba6c0599e4e859e9e51a977d84e284c0aea57b7d23f2a643d39b04ddea63d4411e2efa4fa14ef2bf75c68504e34935fa77c3a27dd032c8d14d6c5ff9eff246636a457f8a90b9722cf77ce5049ff234ec7d265b37651c061f3f1b0d4c2eefe594f824a4b22414fec830163470b951b1d96e394149ef67e57c4356fbb630f576f9ad280943deaa6253afc17c299006da5cdec371bf0bbc2958d106f51c9936acd63d1f67b51c912d4972e160b2c83cedfdd2a98c70aa5fe769873bb80b8b6ec0ac66aee0a511d153e4da2f5042d82f1ab03bd229d06109f2865d09daf540c8ec6d3308d706aaa02718b4847073c9c71f44819ead690bcd214190c62507ce7957e4d660fe462231864a6dbbab0cdac3c83549726b78e7e95050cc20e5089f08cef76181cd06ef3d62577873158e0d41d35316447c9e7f9a91bee804811452ff004e84b5ed3051f0248bc8a080582eea2543beb96fbff3402415987c42e06e2108453cd4910ae53df153fe60ad595e919134b6fa88b3c60b85f1a716043db524ac35343c8169c0833e09a6b2b7ffb427402703679e7246b3d92c8dd5d1724b9bd4ecf92ba8ae8a608f8b767280b27956a0a49f2786928d1edfc7e9ff390c3a2b36ff94a6b2490376e09dd5ac1d4b265174aa73b66e593b898d4ecb7f55ba03aad67cddaedc34330c4cf663979d6c7ea4713d120018d1393602de3e7ee7edfab31a63f583f492ad092bd628c06f0fe653bf5041bc3f14c4a9da076ee6f29d602b4ed24c330a63caa027ab04e9875b3b1f4b1bb8a456ec6504e7fbcb169c75a17051c21f02f030fdc0259a91cce06109c1ccc6f3fcd0cb699f6c87981cbed598c58ddd044d7fa0ddd2f6f8a8c19f9527413b996751f6e4f031d47ed28ad99170b8eebee03a306ff22457a49ca239f37763068d91d399e88e4a2e15b02d082130685ddee2d4d69e8004fbcb0ef3af841b04855f43f54b9dcc07e502422b98c46a117d124be78055d6635ce79d7b341c16c60cefec2142c58fb6f80ce09936cfc65794fa61d3b246e0c309f1d7e439f3a40228607121566ca08d37fa2946c02bb252de4110b9d7984e55f1d288aa70462b5d6547a04364e97ea87ae36c006d50b9c7235d5622a7c102af345d1e597baa597341f86e3e65b0345d8207128d826fd2b32ad1d7024ca232cbd9539b8d8db4033dd9877630ea0dc4115290af78bb1065d3a2ba0ca0606889ec970586c6778c7cc506ce2c65f2358863d4d86139e5f451ffd1f385077e801e865396006b817b0f6ed9cf3c5d59cc165431db143e106c1192e8bf936223d347cb4357e301a6e6113d653cf200608c68026a6b371e6f9fe037e5c502185d016049688030022145e4b425e639c095518d07f5d0dd74da5d6154bb1fddcc0bd2024606474a67f70a391e5a37aa2a59fb711b560870d1c9117145258b0b2ae9e29ba232672e95a4a4a8b27765ea453d3f820925cbe532dc098d8995cd39e122fa76dae182269bcbb25dd8e24b1ecd7af33937953e4f34c3b2c3696a55ed0c0838571cf487eeb42a4bae3e5b27bf1b4cc89d62062417e15d4c8b50941c044d43a456cfe9417aad4fade9573a5fd432d4668703b24883e9f3c2ebe8d7636e8329ca10ebc91df57756378cc64097fab75050a9e9f73fb083f7005b69d329b7b3e8ee1c3f48cc54a3109b074a96c16d18fd58ce1e7f9d365bc46b5eb1a7942fb5b8df442ab7666e81c0b16a7fb09b8ba0dfdbcb5d8e533d8308cb206d83701c6128c9b1c5c62ea59c3491693b67555eebb826bbc0295c3e8e5f130cc348bc21433b5b74e46d34da912524520bdfd7724036bced1b8322cbb7faa833e73a28e8a701f60e5ca5c41bf3738ed89ead393063d6664d3dea3b75d60b51dca39615161d2faa9fbc455c38ae373cf6afc7fea12e502fe13120795c256beb8004cf644f80831ea0be0d55016c252aaa1a2cc7c2a712cbaa80da5586867fb3bd0eae76754ab03c455c6d798fadf9120db4953db30438c5e0dea4f03f1d0d5704fd8c655f29d1b2632e4e2147ca413f47775c52ea142cfd4beb990d063eaa18d2be9aa9296580e1b6a214c7a9f868356a4bbaf6f062da082b04745f3fb64ecf930647877215c7a5a4b9055d57eb4208fb96841ee2e09e5e3ba483a4e0e77f8667250d00090fd74cbcb00ba43370e11026f7459593e439739a9fc7359bc4ff719cc7a864d7dda93e7009af7c3e26d09b033aa40477c950a8eb2882f388de12084a4e77613e80ef282d89481da15b43211443742f4cda038ddc28298709ee90505ef3e68e31669b54f6293c53fdedae3732837a980b4484206f6a4172b7323c538c1a0f734abd8186a003c4e5f8a47defba96f7615ca0812c676a5777bec99e249956f860826690c39265b4740f45ce8dba98b983f2291a3c9eceba5cd218fb11193d55f6ab3ea7c6173852fe6eaa9f27b6ec5412876732cfa531646fe19014ef5acce33fb7a336557acf2129acfb43c5b715e5e615a3a8402dd08b04a9d727389f4259fea59a4aec3024a3bf04d133e1df94c836e66102c80337aa7a90981877eb936391b264d770d730e9583166289ce36a6cd5eceb87c76561a2b96702dfa7915b92e0034ce30bab8ea52702b82e6fff86b9ecc1052cf5c41f29ffe348923a3bb0fff2abaca1e997b177da8ff87324342d87ee31a87e70d7dc531b0784ef74099aff1b3998b4c2186a1d783b39d0703ba20b0076ef0091fc087f50ebd1eca6f94a3ffce876ef7508bde21312c3afd0259a82291a6e10fd1eca550aa4159529337c09b5e4abf15eb32f962b87a245fd3e26335b18a15969af4c263d16af7c3305108445a408d0e3eda8806e9f141e49c364b2783db677ebc2b50c9325c2ffe6763033ec9a4435929105c645e09f3367744d90fa1e38a9787346dc1311fbbcb061598e935b3da5cc164d7443067549c5af4d6e76d014775c011510f0055b13ff2e22addc26ace0c9209852d0af4047ec8ccf64720dc2c5c5404d9ffb388fa8ee3b879c870d33ffc440f5d067a1416a4cfc009bac76a7b1a165d4745871640ade788dc79166a1ad496e8d961c3f581c77282d56532ed6924082675291c1c613ee5f6df9694cfe5c3bca477eeb3edd9285b34f8a7c014664d13b80169904119d10c33065c3af64d4760740e2a47212b8c351991aa812122e5ad7007ca8d39c094a80b1232eb9b851204f792a79c9a5e19ebc35cdd3b488bf2240f09d254137af83f6ea23e937effc663b4ff368705217b6ce54ede3d0f46a955549ef03007f05a032e3582ae4f2e49c90224821d8024c397a2dd940a50786e982810205680021c1654f294860a252425e87d8bed810c731ae8794f151418118685782098c21b3cd3634aa9b8712e27dae49b6ab8886301885126dd7ce8a2b40373193b835c1020deb4300da592336aa94918f0c2997e57b147db655d2fd0d8291947a5e1c4bc221d662a80a4841aedd1229da51fdad533ae4aeaeec7681cc67f4df85b20e8812813df7a3ad42783c721dcab8a53079820468ddd553a46ec8bb204cbb5e9fbf5273c4cb03c8e398f5767f87d13c61e0edb7e8f95c9740633ba58937a1eeb9028d8db462015ac530217405695998a84b33b29776dc7515fe897e240dcdf1b593ad582d00718abdd33c74cb2429b3eec4b99250a45ff9704e40a71c9e8a28b534c82726ac361f4029166c3c918323736cfe541b068361ce351cb497221892444e40ddf23a7a72a2ea058cabd967e14372063e19c0a2130974b6b403bebac61dac2309fb135c18d98b3c1d302a1b82375d784b83fb13406cb04ffb5a9a39dd602de0564fef30e4ecc957aecdb80013d6dffa1cbe64e4871baafb96c7fc5df4af4954918be099fdd42dfa689fb61a1d8f0fba0115bdceddb487e3c7667014c79230823b95ca45212bae70b934668e60001142818e63801f56a4d9a527ff7e9d57c0f13788b45fe7a0c4d85c0b29fd0f4444487a2d886f213d986fc4605ddfd26caf5651193aa51c51aa171e09d137faa5647f7b8100b8085a31b98521fb34ab89e260cc61d7c169a5b5d809ce77bad2342aecdae6bfc3edf289fae40e75c53063a8f614272a6ba02cbbbc01f547abfc8d15473825b4cf81ac835af482177d5154911ca3f884dab9093379cd802df5341d1dc8a9462d55cf1de6a3e9e1ecf51035d6843f6bec1183aecd4273a8e197aabb69a64d8cf78b82fee7a0314ffc2b0e0da4bee99bb216c17d8342c8d97b17641c11a0fe90e0a54f0f02dec92def6d7100f4fed5499104b35971318b2d08b0ead45c2c01e480a54ecdc3384d6da1577072418b85bfa82c17797585ab4ab43444b158866d16881d2e87d1b05305302099972816f41c60487c837ce1a4f20703705049a71084e599707044119b7fa420800b535fa12eb278ec10a22dcb93e010fa8f8d973013c0163d9bb1cea9bba2991310a6378289018f18118e103f2ff31a3e76a7cbf347c50450910002c310dc3fcdb4c7654061987b41dfda858491acfab64861e3301e95fc159d9e0dd694d98b33b8247ee567e0785a64988c5900a5e8675d965f07e00796011e42997ca4c4b69227ca6a5c0ad730eb469aa87544c9d88f1f347943a7e4ee4a24c5b8932b3255f4413964ea37b2c87c8144855d44ab5db3ce71f51705e2e4d85724f780f8822fbf4bc3a3e4700aeb80d5062b36513c119dca646c4f0453b96df127e7be203e56251e304c86f6f272ccdb185dbd912ca031d3f76710977f4a2bcbdada6018c120b38b80005143174e02dc9df80e8d1d7c31230332a3882f10d583b317f00418d9dd787f34e68ff6a5fcd2bed1810366c2af4d84ddac57b8a33583080acfe8cb474b7ba201287c395eb06a311d8c367aedcaecb9870bfb7a172cdb037cd5daef2b4bcb9ed89b9437d64d08280041b7e41c34959ef22f5a9591c086c3b8e07a50a8a6aa218124492c897e361e1ccf6d340491c4933f8fc10e4c8994da5875a9c4b6711fd634d933fc3f4109ac5c5fef4b4689b319ecdb3162087e4868af91d1163b316ea50fe8f746647f781636cd11ba36cf8ac202a86c74e8cdad1ebe60836012382255cd290b8cb5f0719d3834c26e47469e235b919a031ce81935b0ae551d21dd6c45b755be86651d590861a43070f3d6a414f0d2ed7223c704eedc0c8cf36b8abfbffa930a3ea70e3ac82c3f91a3096b1cb41e634eb96dae0913b38c6cd8289db68854b79350412ad26002427165aa190900aded563a55cf6a657bfe2d4f0ba3989d7494fc17dcb2926e01400fbf539a0573b122f1f3af2f686f199bb83329c0cdf6029cb9c48d7cb0d5eeb15bdf08089e730288aaeb469985ea395cc06992486894e944635e7001f1833ee01d9312eed3d79d86da7597e6b82c97fd4ba6a87f85ccbf130097842479802839e268f89c1167fd51907e37b3f5a0dc7da6d2cf08065a68d75ed23b4c18d39edb222cd19912c8c181e501ce52fd439043ef428e13875cc1b2d5a5295601e57e1463b9147d8490d1670a22598f001825624eee2809da0b5e02fcdffe127e06e003a8bb089dea9cf0e0fa7c7c31b6fbc0f0fe9d49d68d868146cad910c1e9dfbdefef9aeb9878a62acb0e494e80dacf939b1e7193b042bb7d92c63f61f06e03728ad02517a1b0e37900939d8a1fdfcb553162175e52d4981812d67567f2e1952418953fc217b0f4541bd904b4c2447285aa26df9dd7ed09cfe498f85f8c2b570a560ec69a1c6d1905a4554bb7c70dbf984e34c580608266a9542ca5d73ce70eced3124b29a3ce52ab432568258dfdee926aca5fe94b5ef0c36e21aa9fa842adb5036b3db22ce2a2ababf1294da0bd3d164e325d7f3f21ab01e2be3200e465599aee8733108edd70a00a4c97a3af50280acc8c596d1dac25b70a7ec174147400ef303e5ac3f1e51bbbec467ff7a46daec1d9a8874074013f4b4159032647007ffb8900f92ed7a88c6cb87e1b358cbda798505e9820236b991edb7a1577c1fb93d7536e059a06e534b25a821b285396df34b73b73a47bca2609ddfbaec4da0ffbc81be59c38b0eae29dc699871ba19257123e6d409df3a93ebe487277feb0e362f232754431038b85cafaac8a36fcce05f0e0f3f44642682f85f27b2d1d4e8372266e6f7f7e746129f96d1085b922e68b93376aa1a8b3f3900f3fe70ae276175efa53f36fe8f20ee1ff183541139c0bccdc9ed5d6bf8b704457227b5388f65381df3581fbf1e8de9bd6b48cbbce3d332a2c45b8253fc7c3cc1c620f4675d24faae42d0e54a166df6d44a3b437da0f0b5c1533865b83dc1a92d7c181cafcd4f8f9fc5ab36da18f81124fb506576e29dc5ff317dcb57824496d3df9f70c2703fac289564e0425cbb1d8e4a69714da912ba5a1167ee13c5c597b0fa6587b47ab93297f8dbd34c11d9248a2e5e82fc9244e26899c2d9781f99f63edc7d4837ad0a2b07a2bc00251b6d73434896a7d282f89958bc0622e3f9ed10dc6fd209a6a9188ec8bab674f3c7ebb066df7323fc5c73ff9537abb08391e7560285c691d30a81f734ed32d034d3a64f8c385dd6043a5d709385c6d116c91f9a683b0f6128af9d0af482cae83f11d8de017a9408af6b9bdfe40895673feda7e15974b8b1f11c1f5bb3c60b6d085440bed380e36ec298ba396986ea6b5c34b8c7b68fc90ec54d2bd9e311296ccfd53edf1b57ad4272e44ae19a55485a3ce05a2c1ff7529382ba3261b1e5b2bb990640264dcefacb15870883b0bfa2e636cec0223080fece002e14df7a8b2c1ae448918bc691e383bbffdf4dc9ba2138019f27c2be0afbe339aaa0c1f84ce1289056f5eead9975398f23cd11fa763dad0f44f1d24361a28d03d7cc16e23855e94d7dafe46006481372a650ac139ce046864e7e1a19a9c52e58e37a343673c40697a6f4035ffdae03f54ae00a0d942e83edb891543a7fa8adda5fff4d54a54ccf02526174db511169911ad2172ea41922e429bd2804ac93b90d0b517abe110ac12f21ca409755be746312f4a9c9b81201519a29107a433c0229ac35b7fcb390ae49586165480b48a0157ac8ef4598381dc1aaf5e393021a070723f24db214bb53a0570d83dbe91226d672977c31f064b971781dd7f106db7013e2767237a27154ea537b41966e31cb046b8ccb787632b47318ec4408f5e30a32f3aeebb215ee72d210714db807bc40d2cbc236c800d99ad0370dd40c8dcf5018b5f81e93e001aafdc816cbf15a9f8ccf2a4caba2e9aaa80d4268d3a2fc218fa22f13544b8f2a37243aa9536d3102ad3a7a9acfa39539919d5d3fc32893b6e01aca940bba98a4e7e12718f6c755d73bec071bdfe8e7232c1eb625b85c17bad47a736d50ed3efa1e0c9ed16f1bd26cf9553d65cede6e640547866ac5a46a3eaab499097e3e91f2ea6692951076b175db849c0dcce3508bf31b79f9dcead1de0b1d49f939770820e7775f4e08860cf801060f483bc2573a006074bfe9b25a9cd4f0991e10cb032754a8b60978007c13a9210bca03f9748c85051581f299d34fd1d303e396065fdb539083be7c798924285a68a5e0c33510848db4272b39898ac49190cc60a732dcb68629627d424813648826c999c550149843af62487211d5036b9f145a79edbc1f06bb9e05ebc664f4a4f476124e830b6fb19b67e2818a7e76d792bb8f99a397f1aae58c49c1345681ac4eb683ef703bb3dde85c0608be3ec9cb59409628fe2da025e03d6313ef5d97e5eeaac99fe9ab4344a9b6e0158a0a59e9c607a54b84b8e91a5fbe4003f89da405bac357193a97d349fcd9110928604c742d283019e18aaefdf435619f8018bae112ae9e09b196a711908b75f6adcf0c65b27793da6ac17aa0588fcc435007546841b08dc1fd04fcc8c3513e3a8e95c2a091859d8aa16c92852ece7f62fa315c35366106a9ea5beefc8402b762e2f17c0d64866799ccd3280d931ecd097505b0d87959787722d65f86606b497273fce0d486c3f0115d84648b960eae52d51038f039202661093dc0e0eebce65fbdac8c8d3a203e366a808bf79736e148fc06983e2756f30aa302dadd8cfd7f82177262c2d6555279f8ad6dc95df0be7bf9126b6bda2530aae0b8fcfb96555f10442d3fb166ef50fb44f80f15abbcad582efd0b466d725181507ea2656fc3b1a7cb311adcce9c5814647b2bb5112ee969b13a222b0b2c1a37319e01244d3b6c3146b1a901cdeb0954d1d07563f94c503091deb5130ac0c274d99422a13eecffe738d6ea982aaa5b56f40af822cf978a1f75b4ecaba97d00f882cd2047b1bea7fe9a96661a2696b502691a587d12b07dd8674043fd21e26af7cb42ff304d213a32de0b68c24e5444bc8c30902656f172a70d564da0717ba1fce59008c4f5c425907e8a7c5e30aff583966769cb9c7703f09f8228f6bfaa975e329334f8f6e8cb4a65b28267ecfe1ffd4e3057a5acd8cc1b4853c2123b81f6c473b802842338729aca96693bd31d4b3d2281fe69992ca89a5f87973803359016bc8cf5994c02d1a467728527336ce7da7686cf679fbdbd1f9678bd4cf23b44b88ad0ad7d564a2e89b50c0244cf6fe909fa311aceb5d1255572119818a0e1d00d895a3305d7d081b6c842a25f1d38d62e18cb0f77a1cca6c6768217c12e9e0322ac31784a10ef8b16215bffd6b66040c4b27c8408ed853d5bf17fd8a2340f0a9a62b9b4ad917c85478dc9f542dc511a900537fa4ddec34b6242ecc4f46880c5dd9f918fb4aa371e392687bfc94cbbc732915f865317e522574de45f0154bb12b7ee8b0364a2016a00dfc8bda2a501e1b63f904b4a0069cbf29a34a613fea782e3897f24909de41d2435e2247796726016bd5c41c37b0e05cb05e7593f05a5bdc5aad071be3caa62c8074bf917189711f1f5ebd8c70ee23d3a5dac68ab2b42347de35a04e0f8013e19245594d2a6b2ab0caa35646bcc389ebd925c282323670de26c35a93e3f0c11817ab06e10a3d541ecbb1a4269ba39493a4698c86343f9c41a353d3b098b93c6cf011e2b61b8c10d62847e86556cb527813c6e1065b2cc231c77e5e89c18d93588149cd578cc5783809ba6bc7705e93cbaf1e8525c83c8a4842a72e437e66883389f7fe437f67987cfa08e6abbb98902610f7f06c45414fff4ecae5683e7342c57c637723f40c6a567dc30b192fd412318b815ea56493f3c7cca00620723ffb9208dce861426fb2db74d64e2a30276e4daffa80aef16577424129c187a85349f02b6f5ff112f25f9aa08e3db4929111d868e5bb8794ad27c71074a37f76333417f6c6db3a0f2888e088ef6f3df00b62d8020ed310b0a8c8ab96d9536f325bc7da838ac02f901dc4bf12f99823c0af292bb7635a0cba5e86a8280e526df1c145ddb5554d61d4e6221fe1f583a81234e0da93d976ecc0d72da360d3a5db9cbe46a4e49a6259091beab84ff2db8bb1d8b3aa11770277c19fedf2f1cbb8d7b6e4e45b38bf154bf2ce8ec6b7ee54a1114f58f56eae278e646d8c48d358c0f4e6893faada8cf82769e50f4632dc5096ef2709d0680c4c65ab743486516251c7c3c6e4d6ed1824e4b707cfa66cabef6a607bcf53ea87e9b10cfa1338254f719aae4ff67a1d0cb6788f6cc599b711d37e718fab41685b8312e98c2dc3fabf74a72d7dcdf4fab7a2f165b0088080be83b770eebaea48e2ce8688aa27988e011c13ea473f53e3219bfbc367a2eeb488ef2c2a18f5047c8fa1d19cad331a8973c087aaee676a0db010c4a797bbd28a5934279b954b3cc4537136138f93e7f28958b31f8611c92e7c92c04281e280c9b898224fb435a810d84ecc99036a036713bc42f97c18b9e85488ce42b090e32b61f7b65cd47b22fd6377d21edcb121e9880950c50741f25cf82681c4d6e31c8d54d7ad0285f88c1c233b4714e2ebba5d04ba78cc4cce5078df80a1ea5d265aa5ec3252556a23eb2a37209a0e5d5993266b46a8fec8420ce0854f5d1e4c71eddcdab17ae3b448830bee342f279f98c41812d8441335c9491f09e4eeaa00540e2e55beb5e1d2ea590f18f4a8d41f31934f246913e96151beb599b7c4f1e1f2e5cc90f3c9eff476e75cf0d378ebd371e40bb63fa5109c60fd90b1e605991efe3a15216e3023a9550437c009608fdde2c0005d70b886062115a9f1c0d886795f987cfb5a3f3b6d8edb7ba72aa1089995cc7678619cf67ce06f0e40ca55ceb896b13ae69a1e9f39dfd60e526164193c15b40705a662a36316e7e73c46cadfb1059475bb00778742651f4a0e7660f0eeafe5cf0103f93f45ebc5ffe30893526104651306489df9a7fea563a5c7ad86e979e09a8ce9c841e886262fc14d711b2cb9bf836e8a1a83bcf23dbbc7f96f97954759ee4898fa59f5b839e5db6b8a10075fe8f1e8f2ab26974aa0d5253a3df21695589e20983d92f5d80a263510e16c83140ab733e44c356235e32143512dec0e8eba0992e275dc4de60754e318b5a9a7b4f60a7f8adbaead2a500a5a7499b3b979d84fc32acf27a007e9eb89c407540cc3d01b71f79e0d9f12094c211febb89815878e682e12c212437acc05ad0baff8d5ac35e8dfa829898e8beeb071b0c0bfdaefe4bafe1bacb5fa282593e5c73e9836c4db0880839991b00222589252ce942ae8048e4abea3935696a21179795f00799dce098a513f824c125990428b2e08cc261d69cd36a52655c87b531b35dabff8be8d253924536d6beb98c69e630ea78187b0821a88b2d90c8d8e552c5fcfc97c83a0afa62a4a98f8e4738fbd343fab4580c91ab85897c03da4754532874f88bd5911410aecab4a59bc24908cdb029f85509e8aaaf1e05d38fb73f75ea1b94f212ea3ce8bab6ac2ad35be1d11dbb78d6252485b0fc3764bca78738b02cc791c13b4ec038d489db4b881f078db9767aa33faa1a262f002071640fa5e4f307ef6240284348fa1b1fdb09a3ab5e08ed21f46cdf985eed92d82a4d02a17c0712f8799552dd3acd0b6e6a4f8569d306fb1c5fad404b5be5d577851d9ac60b70a4383cf7e182c710d3b09ff150e22fe379402ea7db3333d1bf236ddf625e4c23e870961dd642c758ce54899581af4e39e269ff481c10aca82175aa6d2c368ba1fcfc2b27d9c9fb4a30a1a2de16a178db90f2297ed9116dbb529e9a75a5008f09e66cee2dbee323879fd78949f2aa0dda0a87dc18bb0d122956da2979035daa362cb8f5c2b3dbf4f35a5a4e25c367d7cf59027b58e6ad2087c6975890c0374e05a928129c2b0a46a002b1414b42a3363ae82a4f772a098341ae1d3ccb2ce5998294e69e8e45d4889da5a13d2920f56a5378112f674f3cd448a42b96810ec898e71d55c13f84bcd1a5a48092edf22046e20000c7d3c1b6a33859662483796b87499a5e38132a43d5f183f21c893a3e16e4033d8ccd6344573f2d8fe71638989fb67233a6980fb8f2d1eed211dffd9b9a6d2e76783659b79b80adeda3646164e82d4b7de0a8c138a31c932076a8c7da7a8daa9a0a5f6cc787f5fe08045d61072cbfb8a8662c9529830eb623735d5cf2098a950c4d4706eabe7053ae03a574157ef15caf7d5b1841135576a12e4da0015e22802f3a102ada8f69051f22326b2283fb61fbf24c71441610dce018eaf861e7398621f55a5ee03719a1ea56cb39a69f4482e0faaae51fe577b08c8bc1b50393d13a47130548e2bc74a46833e339f4450990e4735bc0c3734870e182f9b14fb5ca64e340e423d648cc828c541e4e18567eb5ff6084797add97929871ff06caca2333214860e98445b946fd5910e179a07d2b4f13140c287df1d064f1fcd4a58b333152886a8fdd2063c057cccc310b5881c52be58107aa02a32e1441d67ceaf617d7eaac322bd2e8b1d763417e5d7f92243121eaf753f9ebb682f41abdcce530c64855bfb1eeec7de51d84898d2908647cc4359574268ad600e87792f41874e9827dc90cf8dcbb8f8884e37d8658269d1c4c65db74e9f0fa4573f78cd5cd0d9bab3eb4e5ceb6a3350a4ce33b45af8410ca02050e2dee930b4cf341b497b3aaf9f76d4ccbbc70a0d8ede70a81f13d8720d24dffd8e687cc088647256e9790f5424b34321579c18eb5d211b6eefe90dc4df1877f71f1ce88d1669a6e210d4c9be60d1b911c5f54f47088a55017372abb6dce80cfc42ad63927d93c3bb8d5dd46fa6b8829685f03156cc89bde2f96e42511d7a5a937038802c31763fdaa4e11a0d4661423398b7e77b9c127c615a5e027b62e5ef54a48bd3e82d5dc099f40b3fab8404e2875375f05c604e4a489f31b0de829ee3023c1ceb7cd907d066cb505d1d4fed358e59e4c8d966657f28660c9e2739c6197424dd0cd637db2d5d54eda2d629ec2bcb6d945eb4373ec6661f4e7750e1efb99dbbafcb5ddd8b325c7caa8ebd4752364d1a3e296073c921b876c749a0ca6dd4d8b6ff482a6356a78a58654bee4865a8dca2431cc2c2a6e300508cc43953eb3fd800c7187014009e6f68c77d59812e9b827523e06df7080d89b130f28f8c7dc7801b84b803259e5b384abe7419b688da913cdd93041129c18e844b7752c519528cac13ee30bed5fe6c3b2aed0b21f2e24233e5eab1c7069a63bfd70db91676257b5bcb61ea46aa7e014926b4dded7816643750c48b21895bc92020bfcbd082a9041bf20a3d75730563fa84cfdfbf044bc2e101c4d0ce4e1b389770c384f24320ad4c94924081b1644d0929c8a2a2a9d9c840f5063d882cfec7fec3a80e3174470fbd45e59dee0dec0462c9e73be4f37b00a85e0a4c1745943ed69815a5980d4745db895365f063f92c166576391f91c7c31bad8af9764c2d633cf87b2fd166c8f264ec750c2af810894199c31a96a20e9ebbe159336795caf92a4341d17acb1c0c9f145ccfce0ccd4af05e073bab95b779c3b1203b48715a88c18048ca99cc90c9dc188e2835e6381c3f877a016066885b438c8fed7d76723c444eccc0190484e3df6a4162b29692923634fbdc14558fa3dc803f85906f2d4fbb2563d43e18029a6499c2907eae50bad9fef7237f589742377c4858019a425e280a2aba0622ba0fa31c7dd8fa667b0ecccd0da0665f3c2850d5e8fce05abce66413eebdf953dee519130c409a81d9c5e5eacee94debf64b4fc3a2c2ba40b3a9199826380900f9fd42417a95cf3cde33ee005e8b7226e00b9f0fcd79e9c262eef38003d09a6988c9038e360bcdf16a1c9964d464a047fb7b744b2544a4ff5e7ffcba8efea5b99a2a696cf36053ca8436756309e748b9525d8f3ecc3c908c8d1ba31dbf066961eb46dcae95c132fb054c9567ea1244ef26b9be4241cedc0db24fadb96b603132a8bd780c535e9521e9ca637c6a6816d9bcabc98b6f94a642d62d5a30b2292ad1e0b4f0020d3899600010381f202797100f861045350e7e0a0e5718b4a0c498df2841f48a19d2c4cdfc06b8eb2497f3176e4301548fb3a9269fdda30df143d7441545fc3e26670504a417a183e89ecd500abdfc26a9d5f6583074b5b264d41426fcdafb0972cda46e9f80f67992920126add91b7431e65c58d4ac81e729c8b03bc8babf5138f61b1d476e0662b85732dfee3c56673c54df250a02caafb0eca875f090f85ed7a3d32cf462fe57d484583fa0dbf4c1ecb53d60b3a2e6832a6c2a9f46be32cc9f8b339d9058aae7354924413ecf9f51ea3a987c55d0c30971cab3e23dc4a3d96c07225f501d784647c2909805234fe9d455e91abeee455b0090c6a6321712460233708fa6ba311dbaf4386eec8600cf1a26ef715dc037bee4ff65b231823f8c8e61eddc3a3e6b0161f34be4b7c49fecdb3101b5818c084c8203269fb2600ba41e0154c533cf330453ecc3d10845c04b6a1d5d1539b905f34112b5b5a08faf29a1bf610932dd6b7591a059de8d135e1e06ff683f565be9ef6c7a9b2b287d62bb898f4a21832453b9e7c00a40d2995f0fec9d143b83258ee944db1aefbe02e018acd9a139d42328448bd8e12a4cd82db0aeccda7dfa654f0cf3aa6fd505413e754fb2a3ec7fef7a04ec5a334024c207adb04ec79d404664c679e10fad8984e5a9961eb30e754055ee7dba4b105305d3d82720837078bc1f05eb8ae3119a71f25aa2d600c7340e186b09b9efb1a1e5581565c1a732d49c4b3965e3abc5728ffb4d791c7f9e27141b657409f1da3500ccf423763d305a712422fc92bbfe4e920023ac9b213f51713d201dea3ba620847d8f3ab3110f8c5f011f726cbf30b1755bcfd875e2e56223f21ac51a943507ac3683b0f9fd79dc67cc2d6cb23a25da2a57c8ae7a4e765963ab6dff89c241da0a4b3825ca08b0516c84475727c264da45d2fbdd45146777d2d4ab909bc753d45f63f76b6170ffe3e8e91450af043691a82fda7b42b3104707c6f1bb50bbce6c2e62e34108062d416422014d46ee4ffc0671968584fc9b76863a507d5222f124259e87fd2b49e8493e98989fa58e17bf25a82b2c81b583c27cefa8b8c275e87efa0c718cf2824a0bc768ea57db43290724682ef23b396ad78d4f44938dc82269022b73b28d73b9b757c841e52c4f2a4490cd18ff2abd3b096c32947ba36e464235fb76c94bf2bd909d17abc44819b48afd7c06c998821fb16ae8bcac71c789829b16d4d4c2486f6aea18fc6adf328f4d318f78984982228d25b8ddeab6506150f1a3918537ca0619502ba1830b6a8f70fabbe003361852b358fd66a433cf3f1b103eee4b4484b042d126f3502f27dcae467e884628dfb84189ee3e76c4e9e4f7ce0e11528fea882d0a71657b1b3e7d63f49213dc98a8bb2416d1898f4a06c816808295ba5f556c77cf48ee74b02b385860758405cbe63abaa1781270991d02054186fd261c24f93301e2b41fd93ffa56a536be71b3671729525c9b121abdfc161691192960478c03a1c5e62e9e73620d443d5844432cae4fa4caa346bd05452b9e7bc3e0e8e645c9390bfc870a4dc69aa1c25293bec5761a1341990388641fd30973fcc5a338077dd8ae8686cb5f03a37a81b11cb43d0b909708a3c0266baee4021279acabbc1a736ea20b30b26b73e458db4838ecaad0d485a59c1093fde98a1443eb9a1d1289f0f58162c26b8ee0f66e7659984e2627dbc4f10bf444319ebfb59574aaf362306550e7b48dbd351c2552b40248fa5fe7532a7f1520ca1b0b032c7421a72c02849752c5429fe0b3c41b40c0471ecfe1694bd128d19b73378ded9039e68e429ab121278cef67495a86d4a53b7bcae90bd6d692c182948936aaf64354e5ede46a3bcb26f3f7d7d7c1326c78e4dc0041ce7139ba942bf9a4edae22fb35575a6d46da0df761c69dba99136b709e85cfc259f730eb665cfcbd7e37a46ed8a06fdf4de816c2d2cc7b3abba8ae1cb3e7892dfccacc5db132ce86c8891bf9ee8fe1b8c54979c75b0d858d6ec58628d4ae32b5fb81175e56766e77405d3bad11473c2c737287ddf5e3793e5dc2eb5632d5b166e48ff8f2a50d8664a474b669a5fe2e2877858c6846bd1603696dffa51ef8249407fb69914ae6dda57ad84eca0cba00e63b512ede09036b703ea760cc7ec171d44b41383a78c90aa9fe0b396aee04f4f5bdece127eefa3cedc9d2570d01468ed4e5b117df9a24759c0536d88bddfe134fe6e820e49178842738eb62c81ef9b1a08e9c4478960a6b11aeceadcc98f73d259f8052612ee762ed3e00087886af51a8ab35f2b18c9f53a03225fe82989206559f2858aad52120191404a223c0e95eb81f3cfac84cb9e75adac62c96efbd826d41866533bf89a86e7ece3aaf232d6703022ea7bad7bc7a354d0ea29490a5ae5916a5e99a695591214784b7bec0dd8a8a008a3b7637fddd4fa544ba48bb890c928856c8e2c4b492a2f3f01f331e8eb248661276c2cc636ecadea654d27cfd2ee4d416abe03677a524d4966847d6742e2af3975455f92b158ae30f800710e064611b93814a327f3433809657c28522418a1b1f12c0d30ecb1a5f2b47d406e11469496314042fdb98005109153a0181c1921de515001b8a1690a25b0d62971a2f499ab9307a29ba73aaea04e4049cb0c323001ebb9d0a64907752c2c556387210f49f25151a7de4bc8f1ef87f3e937b5913fa1a86c5924ff16888ceaf6d99b73cb0fd66078e2dca0d6d8dabee74dc1fa9d12cbb9e145fee216959792bb4e36b5781db844a8ccdbe95a9b03fb886c0f3fbb5696180bdab4a0dcfd1d04b8cd6c5709136500c63d1eee6365a2c9445e619958a08967708ec6acf4165e0b14d31e21fa2b53b4a43f5ec8d8291320e69b12cdeb622bec66133a34c66e42aab736725f75c4303cf219544e43cd89f10c683b8ce10f106d319725479d23cb2610d615732d323643a55cbdb49695fd38cf63da13e72e9731c529963d9b0633663e406115239f2b889bd31093aa64e672d3e7a902f18e586d930fb3b1900c35c03f4fe6d7cef92a70f0e4bb833b60d1f1e7eaf8b9d887a4d947ce5ad280dd1ef376795ee8a36faba506d2474dd3b7d493be58ec9a802242a08dc6ee3afbb0c88974c6a96c150ac2d046dd24e5540e926ff79d0ea77ce2124143032c808786a61a04888c6be47e322b5e732ccba44fe670bb8b4fff249fcc630868cfc2f6b6b3f1a57b75f2cd8e4e980a8830472e88aa5763668f85570510d00af6eb63221c73701e0d753f44c8103470fe6907373137d9b0a4bdc3e1f51702245cf48ce547d4953cac76fff310861fc1a8d080d38d88c3d61af09f2ae694e1e2de5ab8a5e8fd57d77dac79b7cf388ca2685dfea1c8f0afb7046b6ada5cbfa7c23a093559f0d701c9ef61fb07ae13201cd3edf01c686c7fb543e06440c1f84785500cbe146a1cf3254dda5842a96620a9b2688798f0189d17cec274ac5cd352be6222873103c80715433573c0e59f052f45f7e154ed5cb5de2dde678f67f2f4fa111803400242c1dbc237023fec1a647a619a01c8c437a5181166886ea6126befcfd3a469764e44dd9f88bc971fe5c4a36fe3b81a2a81ac0a41574c7cb685888f589b3c5c525c8efeb3f485a9713430ce8a5906d4d153c3b2ede75fe159400e9b9c56c541ca6982080b65412559b0f2ba70c644fe2ff900aae64978b3a05a1c891a2b55c7a1dcef02aeef374aca70371e597dafd3c22d79a2227ab42dd7f78b9e2b40f38d11174f8b9b991ac5cfbd38408bf4349470655eaa2cfd69773da11861acdc2d8c2ea2ce36ef45de5650a975a2bc90b311dcd156e0e600af2955f581a1bb1ec90a4abadc6d6742b5ee275feaefd7449596e1564422de0baa8c1a854e05b8454f01f464cd001dd8ce36c2ab70676877fb6e28bc700dba0fa3eb94fb01c558ff358204a6d9a813baf724b215d6bf0c7244f5e4f9f2dc151de7b81e9a48e978a099d3814da8bdc89fcaafafeb1afc031ea8e850ad44afd7d047bf9dfabc62e7139653b97845ac278ecc44f2f0a7d7c59485471b7d4c6818a06e9c715ef7265a12025b30b97450af55d570882b1352c1a23b8ab25fbf3446b1b7258a401ad8a789afbdd4246bc0503d629dcdffb61d36a87e2b56d20a44dfe0717926dc922c4547b00dfdf222c824169db78c7bad2174da03b567e86700b8790302d110fd27228105e7bc98ce76441bf67c45151bc35344d2ae89a321eaaaeb0d0975bf517c667894f29919c17171d98ee4ae293d2fc08a93edc8b2ce562fab901126c13771ed2ad6687c91bc6322316f485abbaa7d06572b22f8590b56298b65ae545274296b17e4d76cf52f4c2c68ca28a141c53e82bd3570cb9cf6ba0b9cfe770b5de63374535d1ce12618e0d4fdbb2067078d33c45684d43209d066defb44cdcb6dde89f4d9676808d95a6a01e7969796ae5fd6c68d26a156a0e415e5029b2bfd77250189b7b84183069a1d42fdbcb1759baa49700d9a8c9462a595e34315ebf03458910b7c3be09452bb4972375af9d50eb4be886598b15a38a84eecc52a7407a3908089475960f37144dcd8f02bd377c38037930e8005947d4431e0e747ee91aa0760d465c17c7163ea94e77c3fef35fd8ac6a099c0d1dab712c69798c55c39e5a66eacb62546fb60dcda0a6f6ea113153bc127d186e03edb0623d12be3fcb50b7d861daeee39fb498dbd179225b451b9ebea99f9aaa649d59e816710fb7ad86ad8064cc61976a711ecaeedc97c65c05200c1835d2ee7ec1479f4a265caad280f7304bc20e7d89073ec4bfc1f789ad4bdc138a12c0959169c1698119b357bd030094194bdccef303061026e833f01655437087bd4accdb8fcb7580a3951ee052d11ece56c3e245f8780ed22ac7fc9a82b837b37c113a6bb3c316bd8fb49ed24aa326e3a8f9c3b93b61aeec6e2aa51a7bd65f482c8cd349b4e3ab387ed684f16d873b2ba39424f5e22f99e736fb64487000cac56da9415c9edd5091befc624dee00fc197f7bc9efeddeab4e7100ef0cb73df42f97f954689053366dd8e070992d15856a16ee4727bb515cf5148e485236cb111b77311b5404aa206231ca4d8e6b8733cd44e464a4eed9e16a5d9a3c51ecab29fc1e0e33000ca6782a0417278e2b3653fbe16c491242f32be3f77822501e396a428474ed1a3f29afb8a94b644bc4f64b7b4a81ccae38857caa949aae2c116c50e29039289950cc4bb7f9cfec3ed47403b6b822cf04119162810959fd856855c80a9e1f6bc195ba4e4ea5a2794ede2d68be36e9e4418ce37b472ba8f944e61ee2f7f3c80607b55915d1ea856665f3bbfa124ebb78d9d5315e843df34c6b482a290984420b532068bea8bb2294388886f7fe1229ad9a14739858f0bb147d95233b2217bebbba1fb02760f428b6a851fd725a8a4864402e2229105fb8224995a8a3ba90851bb00d78017f049da915363258be204d8e4bad5fab960562c69d488e4f2d3b42fd510916f2773fbfd81e6e2030e14379913f3e5e63422f7faec9c639a7e510d53a987126445f740a22716e84aaa1a40ab6b59ab7e82857bb4116cc906e63219f4c49e165e7084900890a3f7498264d1bc10236ec8a0f5f5018591ab3dfc79d840d2285c355c8e30dba08b683f56b8412cc08bbc7f45ce5288b99766d20fd90f0ff04fa83b5282af1ef91b7b9010a606e604623a4e07c109b671bc4a09cb48d6676a55e068080f8193d1d4746cc20b388fe7306491c0188e9b0181c801e62a408f599c11b402758a1f708f2e34f8a4a2987f89b8f9691a90f104ca95f55db87441d53ba2741afe616fee6096ff288339868d09700db087142c69c563966d625b5e5f1f0d432c0ae134983404ff2469bdb119034e8f38c46a00c560e8f1ce47d80b3d0ae3927798afca10c9156e7211facacee0aa6060195e0dbf38243b85cf0dd07eac10f4ac897b04cab51503d616bdd75fe4e9468aed87c9d5786edce899a218c7e869e4969e11cdd0f63a7fc27db8e3b5c72e51da6bab16e46dbb60408216d9b6395aa189354fb52d5ea63933bdbddf7d99edfe7cab599866105798c4f3a9cf4faad54afa8475620722ef02119a9f5839522889f16ca743fc26e18c4ad956eb9b1d4816167df889fd6f61523e1c9a9018b208b6523816ab19e6dc39d73042c9f613baa3292a323cbd4eb055f0a6750a9e32445bc06499f32637fbfea2c31083a083aefcdfb983c9baa09cf98a36fbdcb341d82b0b1560d343598a471852c592721976cffa629a548f3daada23a610162c43f68b96211a333c1033c0607d99c762b550e773a94fb59ce94883b628fefdbab0c1f868f185d8524d5b1995e5ede248ff99d92b29d56c5cf94a4f48033e1588b5159e2286cb7c07cdacb0bc4fb712b213d68aa91cc182b45bfa57d96c7c494de11f7182ab5cd69f61d1ea6156a13c10c6a57cb5ec033db421c5e2037745f1f971c23592d02e1d1c39749dd6747d391211fe9bb11df5962e4ca47cb8802b0ca0408d5f8fc521df9770638c0ecfdd1cb918d25865e3363110f15dee3cf5d5556dba1144467a90f63adc58ddc47a6738931e336b04c13b9ba7e9653cba7771a31a43490e6e5aba42f2cc947c62585be548e106a2a3b60fa42cdfee59e261affa5312edec1a7f23788dc1ddf4880ca510ba9ff7d7a6a2a8a9505401c08799a6f0d1cab916bd865ae03f7898a4258f37a601a3e58e8e8726b96c1c0d30fe61e425b14ecdd899d62af6f08ff9a7f2b8c7a1969d6aea837bafcaa3e504967df9a317c888f38f1d8a5d85709ad78788b3929671a1c37239d579828a19e49a4291b175f59d64677ace0485049747fb00b2e88795e87009c395432492f400d1d7c57b7d984e13c9871bf67e4c1e9924509614c3f21aafcb0d0513d45c2371e4610d2a8411db94d1f07da3ae2102cd7ac99aa06fc047f84c1779fab726fdefa9e1803d26e3c5f390ae610182dc954b21b9229bd4d3625de3b7954808ed3a2bfe9b893c4d18a040f413bd6a331b5116f2683c1a3b985e28d82a26809aecd0667d8357811fdedfd22a341580c2687e2d9cf5522c8921e4ddfad00942d638f6da17a1f4f51e0091a4292b619a49fc20d83fa9cdbfc33c8d18e0b5df3a19f4ccb4182095dabe890f3aaf6f95463997bce607f9abde62162ab867a26a9226eae05e5dbd8329cb05949cfba9bb03f30918ee3bcb4d7d75d601c4652952ee71951ff5b508f2f979044d645631f7c953976fec0319e944a60521f4abc82ab5aa8771e8146a8a400dfbe66d0a949ead5581853b244be70a4ebb21b286c13476a39e546f1f8177deb020170ea81b44e1e54972c7e02e80eb819fd3f6332873c6edc9202147f7a448507a05f0cf7a05062c9744d4c0b3a985a797e9337466dec557a7fcbe52c2228644dd23a6a33cfaa3d07ef9d785109223936ab82aa7d689828bb679793428a0ea897ec8ca22771d95dd6f27266df286f97052b872705bf8dab4ae32967896c4d10f1a9e9d6527b1202a8ccf3fb0ad61c241fe4c388fc5c397952ed5a2717bd1e69b2df37b91f7cbaa9c614eeb953f83c04033a2ff1ff5586ba583616b7ef1300c06eed66b1ddcdac19bc7952eb86828e75b5c31546957a1889fd0dfaef4b179ad810541ad9c3604bdf0b736d850ceb8e25762f9d8f9653a1fde15a60302cefba103e6faddcd92633038623ed9f97b200612c4b2d14cab1e9c40f89c62af1ea6987e63f185270ee51d8f1798ad7bf8e0a9abc486f72af41e3c0a6b15c374a7b180f81f0dd2af9f83c0279256003e407b3094045f44bb35ff1a4118206e046f111abe76c8e97eb374e61d2b1fae022d18fbe80ea0f7aea986c4dea49243c2814c2ac2bda77547335973525e4d87ade040b85647c260c4141b6d151d2698d2b32403da0f3d8db9d37a5a0149ba630e579dfa175087c871760f21b63e3d175c503bccdd7931a8506d3e8bfc7aef4455d616ab43eb4ca5af95ddce9ab990d91181d12dc921c4bfe3b97a97ebc0e86a9b639559ef449b612480548b7a94b648be6fe82b7ac9aebf175292143729a7182549817371b6006ca390e15c16d98c334807fd9462862c5a4b47e2d73b4443c60c901bb0db09cfddc409619269a41d5fec037aaeea43d6cf434ad40fe088175d3f1c58d8ed07324e0499810bafb82780ea67fae113a221b601e3f6bc1ca68fcc1c8806139603902c96d302f132e0b0ef6cdd5ec42f1318a439816c607bae4dde873ea3b6db1d5bb9fe0df3b7f19d9a8b7370f74f614aabc418c12edbebd85347c76eba211407e211e5f54a1fb01e7a1dca37a0bbcbcffee4ab82513bcee48e0500060ede555c10577754043498680a0afa6a7baba66b12fa09f2bf712002882bbc05da551c981b839e9de3a57bba2d4f031e661ae81ac921430fb310abc438d0f0b1b101c667150870a4eae1124248ff78eed633278be4551b2815c42a11969061ade5633b8e18ba49bfa195df06047fa583674020457d0811303d529f400685684d7b9d7a4b7d102fd75b1d1ac98bd6fb0acf7ab4c852382aa2c05f03ac2b7747963c102de0ad2c31d97aba132ac049c6a1cd2c258e8db14947c47c787f840c77917ab3c4f20e11c2d4283ba749a28854db2e6a33d822aca7c5fdda7f6cb3ed1b4b0cba2332ad34e9de71159620b0c569639374b00fe76b39473539b0870ddd2448c3ffd10621c85dd064f439005f31bf2da45d064d432211cb7ef529c58b246a3c179d3f624c9b197283ce74342c069bf51c9fe9f315b8954cdce18f672066585cbb4d44322e343b3b48b030267cc4e0ac536d14481ab19fb16f547a479e3032cf23b72d80e68b30438ae2fedc83630a5e425184e1646c6885d88976cb264179d06f1235cee0c1b3cbe76d8cb57d0efedc14009b0b736f66f127e1e46b8d64ddc5b57999d9ab0a290a9c004f66f3d7bb91503c51d620c1b4618a1623d83a930a11e28081f93b57dcc8c7446ea81750b0f2e6a4b0bb950700bf1b163b295c4e5b172e49ae00e547263d91718fea1bd9b841377db75ecdbc372bbd3fa7818b26f7a0c0fad82d2045aed879d3ce0f4b0d8df110b9b98d6abcecbda223bb0baef38df5baabc048b4c771fd54589635c01edc757574afef8245e1ca111cc09f13d45d175c819527ab2fe0b53cc6483bbc297ec23a63d2f27ae97c0551b403fb0c3545e35e5ed8eb3bece5398382d3e3390add717941d23bc0ea3b2958bf8de7bf2a8b12f8f831b5ea531cf17e4980a86292aa93b7c590bffbddcdbce33f0e050e50da0d7bc28fcb63fe3e21d43f7a02f5eba9514f13fd1cc8f43e08236f987df191203f82f448c647f9bbee8b199655d5d12f51e145cad353cf4d50b9da010cce4279bb34e6c14f7781e039aca5794f22f5a480124461db7d0804d11b1dbbda14a3f348267757bc7a8c821a7e6c143191e2c730d34218bb540201b751a8758a07ff00361d431286cff7e6f78dc9955badd24e24e3b4908aa691f39e2b40a61b407877044825b916db7b2021946bff2f4a1f4f150e5c8da8d4f20457a0d381c2466a9bd8e7718c48a6a2f3efd3ce92e5922834353c7b660d1da002bc21bfad11f97835f882a5adf49bdd2a1289b09f182281b2ac03fc98bcda6dadfb4c548f3aa52f22118794c178e554470405d89b2799a4c58310a704f7ceb18302d47cd8361f28488c74b0e36e134131b72a2e7a574d1e8c7ebb4ce7c09297547db0af92ccbd33e43649ea59ef6743adc8b6a5cf1f53f9d15c7c375638c08a37681ba650fdbd4a025d238d1f338b1fb7aad6a70eb0a309c9ca5aedc015e613a1d50f89a1cdb41c26af43e68f68fbc7f34a9e3fb74fe7aa670e19367e39b56ab173bfd867126b158822d94c8af8336d63faf19c8d03663db66808b54e0322f9a84ad93cc48b6f85ce2391af10f22de32b6efefe120b1813e6a96a1e06ea78c9105d58e3bac38a40717c0dab099c0afc2039a27798b4cf6779a777c01ca94c947744f09ae76b2eb3458287d8d2b8122e706a0b9372b4f3ac0b043a49614e3d42ca04bf281adeacd85b055e8d8266b48389eb5fed5d4c4e31ce89bbf63c8abc2d9d1f094a554980eaaaf7cefadfc9b15b0caa60736f6593196b3b1e30942410d9a17935dbd9dda3dacee72f5c0c70352bd0877fbbe7fd691c501e8c9a1a09474539ae93fe1cc2266f0cab40c8f801c644e2981e6da01b2cb8348bff2cdd658d4395e8af07a2716010929bb719c5eaeb18796f1c3c0c6aa01fc7a7f19b0f5fe5ba19fe34b3563ce4b11feea83c033dc8bc10560ba270781d02ea1f4a9068402b266368ce2303208ec95437c7045fe8a5a3bcc3f902657adee91c019d1967962ad5643da33d8e31972774d9900ba29c8c6191fab38942e7858b7e690829acae1a1e89bc11cc7172cdc04fe44574bd0c459686d49bfe83afcec01fc6388ff16910a282daf7879d0a84f9e01c564c55f9520e188897b0e9ca57c815f253b958bffd4ed9788feebc55f27556e048161f05fa843d087f1a0024d34ad42e494207dcf661b900b944923802f2e9f019b3e2bb807e36f8b690f9831ebddbc04c3b2e58c0dc3ead864f38e8fa745a70466634967b27498284dc141f95df9cafe08017d63cc3ee11fdf0500f72f057b0902b907232396c83c17a7b1fecb3981162b97b8cee2febd33345f76c2b96c846fffe1f76a7a7944022eb0fed70422e33bcf13ff01ebe5da899d2cf9b41753d69e5d0cad17f4c53100027a4afa2440f149ae908c76cc39b956d083987e0f2f2d6c1fb50631a06bf4c1f7492a0643b536e1856301013ae0ddbd8ee597dc14c73992d6c1d06f0fc74c3ff9d730df46278ced893e3418547e477c3edd1c7c738cc2704da1b647b72af8d040a353c625ba5aaa94427ba705c100ebca704408a5318054c3172f00bc14302a54d6c35a07ca49e8791c6f81518c92ae3edf6c9735e940b638c6c2eb0fc56ad642a3d518f7fcf690ab9b42b98bcdec90abc58531474b082c53cc16405009d7c2d68816546e48b97dfa062b85ff33f4d55d89f13ccb1e25b47da70021362a9444767513c4c31629945306311d7774949a602e0cf4355e90c9ec480695db0502b115f6f32d955ba38f4bd46ba411055c5e9351bf66088f353b045147cc066baf3e06555585dc563951101a06ffb5a2efd952ab9329c10861c6a20963b80585a5565d40360da8320c92868324e344e030271780d25279d26a25de688645f971c5a2da944c5a599e5d26c009af012c4d71642e30e2e773835a2a61b74a742548a7b225a3e1d3ab09cb58c0698c1c10e05912b04dd14f46430f2640c9b883679aeda8f04a33f2182692dd7b4dfedf1f2c1a76256404e44acff190888e350e5fca61e77debc4458db6aa7074e7cde92ef4a826dc0fa169b08c4d92154ba6f2f12e7ad51a9c48cfb29493ae586b639ffdda2586acbeccbf015f7a28c992d59737b94c2600313a84ed166fa88ae58250e1d8fbd87a8de4af5f57c01aff6835ecb0a3bd3db0cf8049ea8302c778916ae06a95f1e7c7433fb4233758b944550ec417828470e6784711a484c58b67f251cb5abae41ca58504f45d231f8f0f5ae2b9887338c7a58c246e3fba78b4687c26d222a63732f15e824c73e8aad8044213da0562696d1f217cd0092bf5caf100a452880284aac8922dbaf0166d6bf4dec2b9008ace2f5acf6662b16edabb39fbb02590102f51dc79c06c71e9a3f6b2a26cc2a7cc53fe8f534147240b9355d5aaae6065d0c5c02c2b91dd080ee01b0aeb16fcd5ba8b64c85da1910f06fdb867813461195409635b36d3d3c168bcc65e2d8f9e0f7f7a47131eee64a894bcaf4d36b6310e3c5770b307f51e6b4d82ecd2c03407bf2e51461451a89bb5b9ead142f2e608be3607d317c325207003be3e30ba0c0ee8c3f4ad9ae359c4bd6fc161c73e3d8b69ba785a7c39cdb0e2ea93b018806541de7a0d50b9645003170210833cb56355fbaf4283a866681f2162a749a03173245ce8e7a25ed938b1b4d5cf9009beeb0e4f9d869a8682fb7fba4f5831041bc2c3cea9ecdef396c61e9736cde8fb1fc00805c2140b2ea5bf3411a5633428bda219181c3cb974fc782ea4a2f1486d8ac2b287c0bbb83e74d513276489c8fbc29cbe3b15f928b6474baccc8b711079c3a28cbdd8a53e9fc86449ca68e914e78a616402e98137ddf191265ce4e26b958546925c36c9d8b2a6c2c1727e47ac7842cda8c978e7b0039136772db8da7f1cc9db4943a3f7240293ac3c9433eba90aaf7bec8030396408b858c43a9768bd97262ddcb520bf48fb421d27b1353e0112065a41953ebc46e1505629d61ca024317679a0e7f9c1c741656290e149a3e9248d89030dc147d30f146af2565600f47bf3144cab660166768865cec72a3fd354bc76db4ed32f192656323d3573214e84cdf9a4737d406149448c85062a1243d0458ae21ba3600ed466b21e79907caeb26145cae5e3feb43755925a92eab39c1d5609325b6f3d0b6abc4e84056e8a1b2afc674911e3e5e65d58b7f60394841e511d76cb47544cef8879c1fd7d324a6bf6ff73d827d9f04b135a4f0bb408abcd1d752bfe8eb9947f48b16e01794e3a0ef999a4ea53b24934af4ee6609129ca3087e61a45e9d82a8b4ca182330f328d7241598a2c6b076f8af679bcc8d524901d43c0c8a38dcd3e2b385c0561cb14d8f4b5ef473fc086bc996900f36a279548adf0012174b7d04d27b217b121693e8717e950174f8d0fd2887e50dcb03779343805c071b87966b3372ddc266edffd988cb5f07eb97d486ca0eb9539f84397406083512fb20013e8a241cf7a087b228b0251405bfb71cfcbae32811d1e366a4f512336d627020b5bff6a82e87122a2fd3e3025c4c0e8e414d5a527267a330af649cf2475822064032c6483978a24f8518ec3e7feca64d740ea8a9fe359044f2d86247994d49e652eef690be2bc9f58b8953be3b0c904a2d98c3df30e2a7a88de62673c67f494ca35560e02ea5ce3679b83715488acd06d200601e78247356e56babb3c33ff865f180e34dea1b1ceba972cd8f3cd0858b22c58a7c55b6b4935117690f43c9c5a8f820079a8252d70b0d4fead1a67cd0ac00884c2e204b52664c8fa183f493ba81e2cdd14776c847425d59e57b5bdeb7ac5bc4241a79ffd7d8d677cb6004a641492717da4bdf707e8bb320231413dcc3c3d6b7df6b08c53d86b2a88cea65d039f7d565b4a89697b8225a623437e5f8da8c105ead1603d65e9c669fa09357a97dbe4f6809d3c9a70671f3e72372d8fc91431d55751620da4c8dcde34c05fa6c8a03061ce7718d4682b87518c77104ba5f7c95a9d5141c563e04983697e69f768f97505bc924a6001ee0dcfe6c3e1b736547b27faf0f2e9a858e0b4e7b9a8110372246b0c2304081ef56606110b27f2b063c96c6bd9d4879dc80c67abc0f0d8a3d0c03a0afa478a6f2703b0f80f864c48b47d7f2653e92407741bbb28783158554357ba3e5a28bde4d555a178d62da553587d610fea7221086f69c6f3da50f99f9ce3a0afb96ff7c7d027fbac51952364ea740f1622ffc94530526754b9ec970a5318987dc41ad6416c91973de2b2ed8e899d933aa34667982b342f59b3d8227007c449e00c72001ae38ca1c62fc417b6c34eb5317dcb0f1bf19fdfd07c3e64db040b81b2b12ee863f059e6d1b59c887b322d802ac5bca23a42a7d037c3c0bf4b46d100cfa187cca49ee2dcba97af1de532cce7b05642735317cc52013b517d5a50d5d7cc90045394c8af2ed7c8c492c6ca5a31dfe43614eb10bcb98a3568e7b2ba0c6e6cb36d1a1c940587273033ecf2d251e0e5441e5c3471948f21cbdd8d8a88e33479654f731523a22125ccede6eea38bd97e9ca618940a0a403459aaddb8fbc3a5a2618e7d09310a30218edad7050050add6076d661d982628699701c99988b27f8ab18b951a75c93b9a32eb82a5ce5d82f7769968d7a51c3981f71b7907820504d81785306dc8b4b9e694920ef425129ae710cbeb3aecd549e56cbe16d883fe44b3bf9845c253d91d8fd20280ad9215ceb4651004fb136163243319e9d842291c8439265ba9fdd3b7a610a7142b3e6a46312075d73b73c57269807ba2512a81477b4e8380459239dbac92696be5c7610ac8b8aa4773b94bb26782a2677a012acdbae4904b954bc2ec03a4d81fc68eaf91d8cad2c3af82b4391c203b2d1b628bed45cbe2298e2cf2af835a1f54321a6255b3604ee748826998883c4c76ec63f04b18d73529449e1a9b2f479f090275a7226d9310553dad6f4f5781bbcff713a0ce64999bb3da13df581919c0830edadf5f47e985c3145e22c8257a01582253f3e380848db00dc13116df0aa2178915e0a015f868230d3fff388f45ab35ef1e6a34497fdddc97107bfad7ee0567369d73456d8592b152899ee24f7362506d8be1fe8465f0c26c90cb42c403062aa181a924db9d10060aa7ae9c13fc5d4091ebd6fd38e78d0bdc0fd4a76eb6182a3ea8e6b9c72ce0af8dbc5a08dafbd3664990774d478f027b226dc53c1fc824a80d469d348a1f95d27502d31c96088087f804d379ef25aa9c609d7fe7301e00af8b2b3ce8c20de77dd81012fed4f2649bf33dd4798871f8e2f5ea11f05cb6ca1dec73ef316b43ba75173feba84c37208ea4567ed0fa9f50675a8f4626a745c5fb0ba2aa8f577a542bf398330971733a3bf88e15f7a83e016a81c9f529ddeef04bcc138490d3bca54aecdca2fddab7d78939c6a8818b2c6579dd635bc91c4d62b792d4cfdd95e253f51ff3f5cb775f7ad6e56cdcffc746a385d49865e9d6ecec5afc8e6a8895292c6541fb74a409fa4baca3032dc08f731001c41e281a34a34685c52367ae1099d90dc0837fa42cce2699981430f559c3716f09a1ac549c6f562a0d05cfc1762e68ef769cc6927563f25134999d57074205a039520a9b0b11033581e3da2e6ab70a50dc7bf747e6fa2ba2f4114edb62399827cce00f0304b24ef2a3dbab2f7d1086d14365a599b2325c9e08bf7d5561d9ee55a15c85bf40d8fc4ff8d68fb427a25b3fc4a5af4068339d6ae49c34b4efdf0c0374c82a12130b61edf4bc4356ffbe79c52491e67576f41c6e1212dcf1d4ef488dbd3270ede944f2b14e1951cee2dbb83161584fcbfd661aaba8f7dc18882d0600a00267428d2669b987ee9e416fbd87ac4f417ca0482f1170773d895d496c230ac70512b3b4e771193972f5bbe4cc3d7c9d7af9a174f093d91d8027c13a6ae0dcb174b75dbf334fe0927926dd42e5b99d7bba47b60324bc9b4ef85e71eb0014a407f04a1610a24043b1b97c4aa18180f3d0b50787c9812b9dff0f5efd364cea3a2722658024d22e49b9c521d16abb992931d1f6b0eaab15c318deb41ea9d84f1e0d6d0dac7e0e2fa9dafaf3cb617240efd277416e9038cedd686bdb55dee3f4c22d4c2c6ce2260efc1dbefd6d386d49a2f486fc91020b60f8110e46a5a9602651aaf9207e161c9591e1a1293c0eb9f7e60c7d695a8c04e24ca037620e091aca6f648498e9fcaa68e77aef0c10316910a5f88517c86e134718ff09f5bab2e89a1dd921b86d6ee465f225615ef0e58b36864a9f32a7fd2a343cf1d27822c3f0e9492f9007bde305acdab67ea9c02ff2089fad445bd0fa4719e9d8e4e9b4572c97da5ace29dc03c8b874f9ceb148bd6cb066e0c3c8994d5ed103ec34c5ff9b9a5a8927e746705337af56890369cd286433c059fff834a042417950d82510330f0f8f9468803937dc5c5241a6e1035d5067bc492aa53fb50ba3df43689b0151b099f87153d6333dd0010b148060917f92efa4b7d95a48303a4aee51390d1399191233ba51f54497005ba8a49dedcc36c95115e89e7aec21a40c8216d313fb445d4033e193cfd0f75075d06812a1b2597e2186a7965a4408ec01aeff02d9693092da3da352c53133ca891954a55940f23dc07bcaa13117bb8d13b67545ceadbfca1e2970e9ee6057274f908bb30c668baf6f9e40c83d13cbad5a1012998e6d3f9e0131bb6264f2b31af24c58047c9f299887e06078fcf9f9e84ce6fa2bd9ecc5d985ae0a11bab9dade94ac2e40438c366097a7e801a5b9f1a2b62a07680bd7aebd6df89e90f417cdbdea71352c8d4001f51732bd425cba7f4db38a9324c1cf4ed65a7679f48cc07dbf457aa6713965e1ada4a14ab55a6c87e4be48121af1a05cae342219c49e8af6bc2d101e11f8c63fec76b392d4a06c3f09406701f23e8428b8e3ba2cdc32fc7b434c191bf11cf641c096729047a781eec2dc17a3dd242d493f104181933e090b38b8e8c409834b935ea2b64eab671f050c914c28e8626d55b3d9f294c09d2a8a93518bfba3d0dd3b2c817e22e0c31d34db08d2142fa6501ba5f8993aa47c9eb0ac8aa4e6f1fcf7332853aad878ab5d80af44b73483638a56bf49ee4dd220512cc6a270c90274407f939ff64aaed26e1e55628821b1ea2746f2bee8ab534ba40c30273488d38890765ceb4fb10b1905dec42f457eb2d0282cb6184200c05a3c2ad25818741e8c3681d6797612a00f3e93d96d194b025f5900d4f388b028850e470582e41fdcfb08ca5f4d4a84d4fef70e49fe42e88c9f4ef735fc37bf0fb46288b8ac92fbd991eda3fb3b1f15dd127b63a98b2d671bc93742dc074e08b7e650bd489c09c1c2eb73aacc73b88fbd335cc371b321ee699a811c35e0512b9bd41eeb0e080d4ffa424597f904f21264f71461dacd9f79c88ade17958c7b4a6599c3942ebe1576bd653547284614e67af69390aaf18e36985812897aec8e48555e4e27ccc3462d1c7af4461a4328cf18e178799def3b89bba69aa25d120ed5dcf52efa8bc7ee9d21eebf7a52a9c90762a9b976a61f6cebcf26edb707802a060cdba74162fc318bb1eb0e82a62bbde0d6e54daa00ce598d643b396a1bb3788c2db258ad30834b4b624050a115152389fc01e536c5e47d6e77b8f0e2005239217bf945a895ef233a804ec09493bda3f86435a9e88d4728e82a0539c240326934d1622ac638e5dffc98875dcab7770c0278eae40f9ad22501ab854e373a2a2540bbc4359565b8b78e6598497d3e4969c0b3429cb38f7175a94dea64ef18a30632b918841fef3268d6cfb6d3512aadb7d3bb08ba9b0a912fbfc40e322290b4a5b7745e206790373157a1d0d863b07e599388444831e98054a4f651ddc8db93671f80efa2c06cd2317330243b9a8454fbe3a08520a42f69387609e3d853cc23aece8a03d2a65131feea5624ff980f7932f2cc439212146c06151bb2e78956697f8670e877627212ef712d0b10727ba69904ce9ed1776dd8df44223526e3b82750299e2fc6bace203029b217337851676b313d4db1e6fefc2f86a2e1797ae42bfecaa8651aaebc5ba9b17477bf8cdec5faf8556ead0c2d12d5f3ca9ea95ac2eb04fc7998d3f75ff7a952e6d5456a45ad914f94aeb617145f83055f79a144675c860ae51859e0426d8cab38bc8fabbdc4b3f574c3215f1cbcfff827147390056dab8fc0054b48a6380155bbed65debeb0505b8f00266c0324efb58740ff0d84616d10bc344ee7aeef68ddc00ab24796454df90fb61f0b5c8fc980434c47a5009979651828f66378e30c94df7217db6e4fedf851c99f4206f741d53b27d873a1b5b512cf1c7167a6c52e0dc99d1f6c95bf104a8f6eb85b0a4437574ba9a33a9b618a063f0e8e91f1384af78f945472caf6b413f16500c2ce5303ff827fda480ae567a2ab6f68ee543fea1c40e31b85dc46f4262a937912b5d28b0e01f68c8496a08605345c1672130ff7a9c89b3a7ab074ffbab3966280cdfae557285f784f5fcf37dac71f0f1a0e022694a80beb70abfe76c0879d18135e798740b9fde014126a86eeedea16f81cd42aed944346c81c505cb0483540f1e9a8eb8ce4dbe409f9fb4968d73858b9d78938484595513ea0faee3d764b6f7032d77eed948e33703944bd7cb6334501704443b1f541b97db8aaa3589a4649ed4b23f15d638e56114c0854593af2b49880209a2f3f24833ff4e902b0518b9ae0c519e282c108500a194e412e94533ce39f25263c48a288df007ea991c66808bef2d26bb18838d777eee05b9973f0bb62f427032c443ec48720a939b3571a8b4c14e89b05db9302021a0fda0a620024dd6eb88555f52f75bfa129939f27d2c3011e12055f3ca74481de5a64f0a9cedf0a9ef13d7d076286a7208a33baa36cbc8193639bac73cb892cd562f51aa0f597d576b38cb5fd3a51947159897828b0f07ff862a60a0b17a738c00aed3ed139ffcc9d448fffd37153a7d86ff3b76cc069b073b6cff477fe064df39994ad30ebe5acf5740594a41380bb811c91d6360f0f84b45714c3e69ea8ea1189e032e0400fad57ecdde22dc84a4ebdfc7d00128a83c22c2ee5abad031c5f39b78bf5d00a46585b4e60611132925711a7764adcccf976d6aa3c436746e8136bc87a7bab00a7784d1b3bcb089361770e00c9cc9df8bb14ccd52d1684dac4c7e9f0543ccb05255bd44da6c7a78d7c0c03974f50bd0e856456cb0b23703e72b293207d0deeefe1fdf654408a611693c1105d74cd8adeb23ce44c3338316ba24c782cf1690b47d966f130ad2c03715255663bfe23b95a13398c297a6458c79a5c1ed5898989f4fe5ccf6cd58e3b82cdcf940523fb87f3f0fa342e456bbbb463b5592e2c69c4a961650a629a1f404a11e6175edfdb56221fff6ff6f4251e8d99e66abfcccadd5b6220ee203128d80f963175ce0cb601597310c4199e3f43fa35725703401d31e68150bb1ad837f2588db791c6602c4f8b7dde4b1dfe9cc3dacdb1544bd0df9f8175a6d2962407a169482abeda8cefaa1ae55de6da713953d025f832eff9f2a8ea70f1a89320ad3872b4e6eab2d4afb377ed3824947b0115cde6c30246cdeb11a458091855f771b696572179ed45c0ccfdb5c8d7db6900b784df9abfb6fb2860be875023dfea178966a6e40fbbf98a7e1c1a4a6c2159c789475d1d4caa54ef0fbb3d263390d82b329ecee52a9db295860192aa2db9c7eb1c4d49d2d6fbf0bc463e284af0ccf7a5d30ec0325446d8caf91964b723d8113914c536af082c07566095d3b91203714d7278e8fa4ac0799acd5cbfddc41d4327ef8f735c0f3c1ddde3735412c45d2b9f43db50d425faf9e6c49ae6da27d3d609589705b83e91b077a4dff8e2705311417535dee3910962414692273652e6defea41a0a30a7dd9b961f24f19df773f8d27b3f9a5980c259d34e2689d5629e3eb47bced17997fd9660b91c2cc301d834daa83a2f67999ca14455b21174211a403dfee86d9ea15d650e21b0cebb45d838d8182a5e5a2a99a54ae58e66f47af7529a6b8c558df13cab30af106068d5eb1883e024505440a06a4c5b9786de61153aec3b4ec6dcbeb153bbc42abed9391ec90bffa64d887caae74d6aace6454713914152910627526e282252f869688187a5ce199483e493c2aa2112c430b21b0bc28cd86666694a88e7faadaf6094e74034a550f89c3cda54936bd6cefc0c44e2f6c6bfbf6f8a6895520a5ca7ef3eeae282158242a278dd39b512f749116466a82a5db0e67fa4b7491ea2e0261ae7745d0e2cf38799f231a949d45781036de19d53b97a6e292ec9e81d2ed2efe3302c9412bbee74012da81a65ee2a9c72346c53de3735961bd1870b1d73b53989f05601354c5045e1e04be0c56205e19251df96c99e913e9b43bd2b81a4e883e746567aeb1fb29afb624fa19093b926230f84be1ca723525909145d73410e585449a5f77b68c5aef38824056d6a2bc37d8b0a227b26dbfb5dd1a21a4914dc8de7b6f19e00c920c8f0cdae1bb52eaf037a10e3f73ea0eefb9c01c9ec6cb8fd4fce2f03591656408b84576f12335cb1ccef88793213cec9b96c34788b3e3105ad25958aa98c3df882c1d58310e8f23b2641c7e876ced1c1ede87c699f1ebba9d6b647b7f14f0edfe24e04224401342886b1b472a59d3894508216eeb28e02680c74dd70067b940bc747b9c740f707a65b4548fa30cc0e35a10b7cad5f503f400c2003c66bcfc82b46da56db3db66dab6d3b6b16c1b6adb52dba6c9bcdd9f20aeba9b6d9a781d2e4ac68d995143c6451037886ba5161ac4ede68106d1992eed82fd3c7bad36377a77c85a89524ba989d213a52c94a2284d51da4229d5ae8d5e1a3b6e778d2fb6876ad3bb5b87acd54d75751ee3ead07117b7007fb938ee72739c747f989173e028c035961f72e028804e6641a55a5cba17986c535d9cc7b8393977716ffce50ae02e7700275d02ac6e0620801bd750041880006ee0dca0522d2edd0b8c6ab4a9ae8dc7b83ef87017b787bf5cd65d6eeba46be305a0c5eae15aaac5a57b81517106b069b17ab01180944bf702a38a71a16daa4bf3181700d848fd101ee0c900b88bbbc35f6e8dbbdc9a932e0f9f21239fbafbd3e3e90471969f206e690851f317329acb8c19dd8c192f3366c0cc98a19a312366c60c173366bc9831a36936216e1057e3e176d7d4d8e1d2d060315997b8bdc80d666e2abac55c9b8b1794ea701d626c6a8c19f433ae75707b919b6a6e317473716d2fb04d46460c1c3d961817351ab7ddaac3bd1ee35e9781652e1135cfc0f1215f9fc95a2907558c8b1732bfd86ea76b7a7751b88433c9747a966b3026d34c0cbdb5b82de985eb9124936066b9905ecdb46d777498dbdd09cf8c3417719391dbe776e986af2d879997bfb86017b79be6a51bc1703d927023ac9d367bbd6f77f5d1f54eefb3a66970f5172ec70ab7f562b81e49b2772d7aa78779e5510ecfe8d1eba2c6a8324cde6eb52fb99b81114386b79a816d3a703de8edb24bd660367a5be84da1b2e6629371ef92c34d77e6a30be3322c39c6cd11e22c41dcde1f2170cbd5ce7504dc96ab9f2070f76b308e9a7997c361f0bd06e3767b333960ef35be2c5f99e2da34ab193ad0a0d9a146cd8b4de6a48d5e5c226a7e79b934a277fd74674ab773b9a6eb10371a72a399db0e74ab716d353ca85ce098ebaa7b5d9331e9408366871a353c00a0bb4d63db68b66d876dabb16d35dbc6c3b60160db02b06d77a3b74463c35b773b6fa49ef168b8cc7c693bc0ad46dc6ae4c6c3dc0040b7005c9b8d1e5c4e332f34f275172f95edddac56a3266e3cc80d00730b00dd6c5c5b0f2c966e1a964bb960515bde6e65b931dd25a2e6d3b51ab8f1103700c82d0073b341b71eae8dd53a99eee2e54b83b1d1ab658d07b801206e01985b0f7463b5b0cd86ebb171f8ca646cf4567ab1ccdd19bd6db5992ecb4f574e35b12ca72fb15cdb81cb51c26d5900c0f5489259606e8e05b75cd834d7b75b63f4ae932e2a7ad7ededa8cdb0b72711359770355916dc5a71b3919b0f73bba11bceb5ddc0360150d34d2c31a7eba65f6b0da056d2491677d390ae8f6ea417eea05d226a1ee16a85dd61c6ca9341434305f3d2b9b4d4a83a5ccf90fb01fb7578eb736476e5292672c9da2342a089f4894452083c4a4640598c80600f4422063006f00c31c805162e096a2b64ec421e9e48f4c1336431026a2b62103c430c72c10848fa9c40eb996f06d00828b6209da75958c9e5c0eea337c262ce393ff1a8288b19ed881c4f933c86898e472f6a47d4e489fd4b45c1439ef83c2db0a32bd11b4591b1f3d45a6356397e0494bf541439fe5be53a274dc3052e287908c4165593e1e808d908cc5f2a0a1e32c4e76981fd309e1cdfc5c749e48292e1e7e3b1be9933804c906d155e7e3a319dc85f077126d43450b05488f2340dbc4fee1c5a2bc12c27c6f5c0701b418b2518659453ca3927bd28a5f4baaeebc24a946846c9f0d54a96b2896c128362d0952bd00974d2434394c8723f640db1be8ef8a670d062cc79764bca6d9300f5e2aa75f1f0f0f0f8d45cf39c335e7af80ec22492a045155630f179013f843cec77fdee57f8fea1cf895eb4dd599d5b07165ec6e8f3991833338f31330361c08001672084331815bdb8450fc67362cd8cfc4c133330fec1cfe0ee12e27739c280f108e331aec18871bb99c744d64c8ccb1918b7739c99c15fcd53bc21c382bc56338b6529ff5dac57f20de12107e75574751dbc6e9122a227e33c52441127d8cff33e719c4db0327f33771179af0888273d693f4f9ebe5ebb28a534c33fa333093282496419e4013ea2279d20bf43bec7046ab78a48ac6fe67ba4173d6923cb22b2d518fe19d1889ef446427090e84de8334ac10bac58f1c48a28425a7c342916667898e112281c02e0e8f5ab19e6305fcbb57727d2ad46baf5a5cbd5fa97225b37943de9b268d84602827be93991544995544958658024df116a3390249bb00664320907c9a5dbcf745aba1cea25fc0df14c044c36bd74c821c09e8449e7388ee3542cd80049b209935e3ac9f46e6979c592e5b0925a3e1209b7bce2212d67c1435e5e4df708cdf5a5fb91f0119a61cebdbc7feae0eb0bcc7cc59fd675a5cf522af554e9dc35eea66e8a748ea65e4b279d4b7d9ea65e4b2759fccd14e44678f459b9cfc81a9dab1c573fcf3dab5cad52488799f4121e328a58c503be74f812fe46793464748c343af69ca8912e078f611f99f097249bce72edfd8264cb71f893c9dc4b4795f027f3e2850b1731312a150ccccb4bd7b9b8b4b4a45228140bcbe96432595b2a91481cb76d9a361a65594b0b463df5d55cc232074373c905067f57e6de75f8bb72e9a9d2db057f33979e7acbeda649e16f66eea8cb429de3f077ba7de9a8dbed95f0a7f5eda53f91aedd4422c163a463f81b9d44ba1ce40c90a4732289843f9849f6b2748bbfe752cca5fbfd1063ee8dc343469f868fd03cc2d8fb167b0e927b086c8b2db620ca47268f54867f81a824a49452c238853e3dc45d67ad073f133def5ef4e094292584efba6ad1efbafb56b61a0a424da46107281001138ed049f2240a29409103292861680a3afdf642f74d5522821a1dd27bac8e7c7f8bad4804c43f123e5e545ccd5bd2e78c45f2277d3e88901d20a9cfd028e13a49a4ff48bdf41fa45b5cc2a9b78e901d20af3448a99a22ddd6b96cd59a0a226407c8287528142364a76f7a80c856eaf32daf4895d08de8cd4f1c750708f4396cd2fd833d704913b55ceb6eebb8b8adf302e6e5d0c7fbac38c7c6c607909de80931e19d3443f2f1eee292fec21ee696b40b738ceaa9a30ef398db3ab706c3d5bcb60310a0ea2f6eea91ab8fa95835ca4234cd3cbd41120057f32dd457c87327bb8e1e22bb8ece3eb0d0886a847754a963cfee8e12252e475d49cb61aec98d449a91e7fb3fb055f5980349ddc5ebce8ba72e9278eeaa8b44f5d48e177747aee65dc4f4c031afba4d644f5d24f2a49a7da48e924fbd621fa8c36023e251cf89a4a72e77d44d1de6a2849027dd873ce9199659bb128022bd6c6739dd84a2dbbbcb72977b7acb353d75ed51b7c4cd701748e9347be60e4b921a532a90b226fb7ced568d3166b7d2b0f15ef72322236b1ece4ca426c7dbf806223555661e291d506107446aaa6821ef2577cb9cae95e29f0b47ab26ae6a687c3543b05007f05d278533569185c4d504a2b0f3b84790c88af887c27b45514a5fab97248400b2fc4edf60597661c8f28a2cabdcd1237af218c6113df9e739c506911722bf230f44be5e2f7a551ec84e116cfd74c2b65c5daeea3ccc3e6bef454ff2d02b79296b2aae81c2ca9d7cbddeaf26d7388f11a9a13123c57e3394684ea1a978c0d833b3698e78abb56fd3286b02bb23b2de23a69f7322ab6bfa36fdf73d211b4c91445c426546ebba237af03bd1831712579012892c0c57aebbae5fd8e94bb70877b77935ec1289132882c58444efbe57b308ec09b91f9e872892e5e104228b1e5e0891c8ea5c93250e12bd089bca0362ab87cde13d780bdf2dc9220dc2119ae511cae33c3c3c3046c176ddbbbf8be9ba9877476d9f690979ae28aa0115a04c3901d1508f15538a4869a59e19e5be84504208930841e3e028a26fe4a5a41ec35f6ce9d0ab88f300d881bef9700290e371c4557d00c4814074ab46afe27b4ad3c47fad051d38e2e71161d1fdac7170c01af19d71409c1c58237e3e07e2e0f8010823e27460f1b0c8521df00811217d536b36d2368e847106e0891e76c95d871fb858b46faa928f9b91311553ca9f97e3dd9a8616c1c2fb8c9a683d336b6c551e1e1e1e219d68d3da9193d3ad9a9a6e59b982ad96cdc99c082f9e2ca1ec1b52d6a29545444f3ee222493a8d2e6187e8567791be99f9c687367c204b798d462e0791e8490933c5423a399bb878e214a064780b9d3c891e13d1dbb1235b9d0dea82baa00c99647a082f554074b2b52357f010daaecb504726e1d1e9bc1d720569c428bc456f8350661520d9ed841c73f4aa619421f8448e07126468686808c627704913ec0910a57c6126b295ad204343434319081790900320a12550a8526444949b0aa655d02a32d4b1d2da068ab0271f9b4bd8dc57fac6872504dceb35edc4f5a84d13cfdda96da49235713d4ed986ef28bbcc19fe36b015d92880299a8d4623c7df084f9c204ad00da248d1051d1c2a00c2104ef044080727d089ef0a978043abd066da63cc2ed8ad67e499dc5758ecd725acb7b245cab4d1eb9bfb417fcca869b797f4d2e5be6d8f9c0f7b1236a293ab7afbc8f9289dc34658b9aa2f3dd6532dd88f46aedf72e476b36ba3d1878cde55727ba1e221353206b2566b71d7d8837c5f7a8028479985958744a04f8e4d06ad67a48f798a8da0bfb011560b37421daa05cb85431c681dc3f6b552bc5661b43dd4e307adb3434b3fe7bc91b93d1a35d7e8fca6a9e67bbe9b9a97bdf155b18b7e0a691dfb068350aec322ab1d1659fa9e3dfb5f5f61c3d09de1dd06ef03f005ddba04d2372c59d61ad89fae071742a6df8f703845a6df64f1b263d83bd912229b05ab6042640b2e8142110c9484bfeac915bd06a78061d808ccd486d2f7881e3d94ecd337317934faa0933c822f181d760b2ee915fd6874c8829641a6a7565898b1cb0824a5c43089d9c014d95944e9bb6f96bc6fb6d3ef882cd802226fb784c8afabc8f277d23f1e3e1fb60b2f7a20a774bb69a82dfe643a12c5462087e9e9152c2cb250c80af68355323d7c156825b6601550284aa6a743961e3a61d22c08865641b36095e8d1be199d66a72ca74350327de30f4aa1f7f3c02004abd0d1354dd3344dd3344dd3344dd31e3395191e48df6cdae1a17c623749af7b346afaa6fe3ac925ac1cdaa3ef9a75162d87662d91a7bf3c95b4258dbcdc38ba952cd7c3347ae30c7b9884455c6c618294524a29258c03d017884a95884dbcfcaca9f1bc3f1e203e498410085abc16ef9c829daf4dd38f078879aa541477e724145a40eb86dd1659f206775234752a778c4b6e6c43de07ee367d833be5fe0920d377dfe8b1d1e1f01657f41f01327d175992bb922646daacd845a7bcb611d72349ae9a36ba84c7ae6d1a4aafe5d1ac97b9e26f0319feb0c9bbc1ae434096479f7dd34d2ec785bf1df9b2f1faa6a3317a4dd3d09fdb381d2a4db5611e326b9759a3b4468fcebe51a5720bd6e9d872863b2e073d8dbec94edf9fcc1866237af4d9b5691a7a3a053b4f95d46e9a8f66cc236293e395bbab9918644bd54da306ab5df4a20755b13df8cbbb52d03aa22096c2365b28d8066d76cf9e3bbabb714ef46077376c1a88a3ea29a85091b18b6a9a1851f0f2337771051f3d9b1e393876440f7a9e67436234a287c25028a18b0931806c0d0c183536306a60c4784eb4912143c6b5a9b1510323c6e36d62c888516313037fcf3030eaefbe06fa5e6323f1b44ae0e3af207b26c6805891fc15636465a05b15d737c018679caf15cff899777f55c3b465c5938afde0929de8c9cf89092972797becc0113dd91591ad79c3860d1a34666662cc17933fb824cb2bd8af898476a490d0d504ad539a1c42645d97a4cc652d6ed7ddf28baccd9e304e3931d2fc2d650de66679b98ff1d86f34341a8238b01e288852115943f4894889324681fac6468e7409a555723c85429744ca247a4d28109d92a5bccd89a82b7d5384ca22b22426b73ad2b06da34b644bb5933dc346409dfa243a1a5d4293c8cdf1a819c33f1965a24397c816aa28431571a8222054d18b136a50020c54a42871844e4c72032c085d41a8044980030e74e229100d6a0ea3532e1a8429d010ec578172fc25718ae78a5a1633312c8c981c196f19872143c687c0e3d891430e8ff10f3e67470e8747400e1f02774496f752f74f2643f82243e822431893a196e12843980cb30c2196a14b8657862d19d20c53197e4289a329c353c66e5c0ef1e71d5ef3ee8e1c1c0d34731c393ba097b343063e4675d183f108b6c6864d0e8733cf9979fc8e193cad9226600e3836d0573383a3c74c8e35706606dfcbbc7011a38279e95c5a52281618c540c509de046fe14bf0240e7e83d746f0d9456f849710420942ae91954406cc9ea0e990b9a59c524e18adedbabe501c34ad042d8c32c7a41756bd9079c149d3f4b58d43759694056dd2344b9ac62e61d299b2385135d88f3a41a5648040d34a16568917942ab2368db5d1af89c1e8557d5044164554b91c9b93182b2d2514560ee57e57b71e242c678760bf67398499dc2f713a6272c684d2ecc23cc2cac330c9dd51a13cb30b41540855017d201768162ccc900bf203d3070a0b878294c8d80d0a0afae407600da68ffcc0f4a9504c1f0a34bd30abd428354adfc4a6e9ce39d1a314a314a3f448f4a21004bad531e56226eff8e81b4f0142f46a267f312ed97e3118562bae465cc05a5f0586e5c0248de8a263fed9ae2ffcc1be09fa01d638c61047b65a721d04ac11ebe123a53f401c0330418a1c65a6af5bd3c01b00e2701d04c489b09421135a087b4becb57239b0245d4790610af017338cb469600dc89d801ec6be20ad428764cbc31fb592a93744b1c894525ab15a6ba573ced9dd17a594d64a29a594527a8cd24a2ba5b4564ae96844693ddd4129a4c7d137f05a94adb76e3556d883526aa39edea01427d3dbf44d3d3dfc8cd0694729a5d829a554524a8f51fa7a7d507a4a29a5f7e8e97b86e22125225289286387760836c66b2d619c50381d59aed71a0ef6fabc8c651a6b3bf69195c82283d5b803d09905ab1a026e91ed53b9253787bf1dd92667d75a08889a479f59b032b7cc167f1bc8a3e7c41d1f7d638f95fec94c2a9d74c8fdb0e591bd94ca1432ed253af4d1fcb510111b1ba3dbe4cfcb5accf46a18e36834b34d4261b5d16876d7ae1316d96d66c18eb86f444414595562cbc78e14e0c53ea2577039344ca9442f7239b46bd9f5d134d8e105b280ae81e1285823f3c7f421d9326135e7e4181d3b8fc6e9b1a36fb22734d0e85f4f91b1e3e89b9145595ab71ae1a8870d1f1a87882a80c6c98137b07f5afe6c640c2763b7f9cce9ed62a2879d0ad9510ff6d150df64c7646949d360a750b0d8b32b859a06db891e76787d440f7b7681401c06740decd8b190b17f8d848c4920539ea6c11eb17b34628b52892bec58c574287ad8898632f69ec1f09012d1285a2680bac0240a3e42528a90b98a3ab28c6cb93b2833e5d4439b61e7b984ed74508755a0007aae831a008a00391e9aa1c1d02cdab3458e6cc8f15a8fcd0199c85dbe55aeb2c33c898e2ac3aa067430a967b8a57b129d97bbdc3e73b92f99cb8bc53f2d6fa9180641a0ee7a29aff346ffbad6713900e95f7622dc55405c49f285af77beee10d3af5945f4e290101174e2038be015222b255864a1157b6a066bba13d6b832fc8d9edd62080483a6c0fc41a02f492e61086461903d84f982381fbc70c8e7bd608dcb4228a65b2da66400e44e82164bae6b6330431a72fc8468a8a15dcff295e9555d6fa02e1c9167cf664fcf3eab648c68fbc7f249f48dce82a195d1598e80d187b0fc7400ee19fe58b21cdd7fbac32ab155644db7ef0c3324b252e22651e9704a0301d91bd1b381514a38c33fdda1502704854c183e81e193e85133d82fc9079f1c60c21ad727be608d3963addf72e9d9b5d2854ea257fa074bbfee77247fd7b37afd70dd3e47421f225b2e61e804fa1001a1152522a8d169790a671fcca30b0b5bf10feadb854455a0955a6112d18b49e42331ff741deeb89a30300936eb00b45cf9eae13abd98d6def52264abd4abeb515e385a254d645804d78156620f552091914954c58a119a97e423314fe041640b85b7b882873145d78d95889ae935ecce5ff7b6216b11ca8e9304afb81a880b4599cb015befa09a1eba8a4e3175456b1a597926cb5f9452bcc19a65f5f48397e94872d775bbe8c951111dc38e8c9d8a4152283272360c768ef03432337689d86cd48aa54c64799be5132b6c866bcf28af0de37a6c186700dc34930a557839117db2fc623eaf8683c7461fbd8f8a2dd844ae5a3b1a62d124bbcc9a6439b7ebba606cf5582d72d8a1152c8ab288ac7a78256bdcbfc893e5c82663db3bf735bac5db19de1f6e3bf69961122cd43007717c121d2ee29f129631ec357d63934ba46be54a9ebb140cb675482f9d8b4da2278d20dd06454f5e335dee767308b01942274e36d3e5a0137b9bf0417a091b21a98c81055be890f0e54a3e09fa055b7f5d977a21aa78c099639657c43fdc2f0d6a9195c52c92e2b3f8f8d81357f2b066c8e588d7364ce6d91314afb48285411a078bec757fb6d30b396c84e698fd484149864e9e4416a4024a6c913014ba64a655ec1799f464f926b1b57d26c08240a6887b73f148c41677f9d8c3d17cc1b843b660afaeeb5f5f397125bf43e228fd7b31655d2761b7362c24621c37e8bf1b3a3221b205833af9a0a018242f1824afaeb336432b72251f310cfad9a8b82e0c852015d1bbca307f4126593e32892c2aa5d0ab66e52b5768af5bf90a1382a2273b7f300808961cb12bfe7650645101856ca01369e52cb9a3b062099d8abf6a2ffc759246eea6b9bef91b9145f14fcf5bdbe52afab4b0414a2989f4d090d65a9b48238f85be6ea32cd92df1755d57cf8aca1313e929a3484da001691a79655c0ed816482c123df9231613b1c9f2822c7bf91db295ba349201892c23dc8d1ca9d9025d43fe489731d034b2556402b155048789348d125a38207d43caf2d748d6c29de53f5247712a2158def21f2c6f49fd07aa05777225edbfae74d27322772db49884bd5a5b3a34fdf493e90e81279d64310966fb120f1510a5211ae40eed752d6ea5db19e29cbadd1b3bae00ba863c768fd84c80a69136145316581b6b8fb4b2b7d843ac5198503ac1c29e521a4112b890e11418ab60adfd574dff2ccbbf672ff5afa6e5392d37755197e59eaee9da8cb600f264230c748fc39f57b3e1af264bad8172da8b873c3d2589948cf1c4581f873022638f4132f658d3537a4aad405cc4a6008568402bf6694b56aeba6bb2e429aed1935db0f14de9e7253fa758fba132112f4b2c89a0750c8b9329edc668d309270d4abb60e9630be3e1e1e121820e7db76da05e751be66d340b635dc7c939f1c2eae73ffc93d1aca3f88111f294c236573377a0f54ccc8cec06d0731d8d068c971c10a55cf3a3619b1bda67b8bbdd96abecda6db9cab937ae0d785bc2c89f03f27519b39abf08e4eb910382660cbf69e23569c444bc1c69c42a1e8ff8025eae99f234622b2676f25d6da21a290fa4f0410b31b145597e2e1164024de429d0ad1d64c8354d23bf03c88a2c7db0b4892400e1111087046b2889ac79c9d3b9a1d190e51bcaabfbeafe9492e7e74cd3cc39af6b5e17a59316e5ce210985f40751b821880a4c5061ca8c1aef979e9f0c188db3c11ad7a67e869e40d39abb2e8803a36bc0f76a7ec27fa43c3f54230ade12f284f2ba44bc7c01c998690636b5dae46913679a868837c2970a7eaae07bde50416c93b3c47629b0f09f25ba7650e3c9e71bb1a51d63414d7e5de589b2248a2bf91a85adaf784213d8ae57f4d2e601915573c52bca6de5cef628fd84e4eb2b225f57f61ed1db215b369c8d0d1ad19315069606cf8c024aae93be6f67edf1eae8cc7d1ea175a9c9768ccba17d04731cb5aeebc9aabefbe65aa269eabf1c702e25ba467d1f616b4b51ca577414dd0af25d3968271a8a369c210c9d156c14ba2ea1fe1a82b966a1715a0ac9a049255f5bc8f5b589fd2c9e6bb0303f6b583c945cffd5b42e257a8561239af081fdba11dd9534fc808a0e86bb9b58605b879a20043e3aad0302b9c5163a4dc47fdd96bf4f8b4a227af5823ad855f9b88c50c9636ff9856d5257e52365844abe055328497464904db65dfd753db9aa975358fbec9f97312591758a2c96e9d3abfa79845cefd341619dc8f539c8f557159b2f2dae2cae29950a5b45ae5472fd5ca2e70e7afea02711727d7d81ad39aa0b2c6cd23a90fb518d3e97b0f5a3fa6ba88a4b896e5121b9852722e4a1123b269647c995c5776171f95429d7948b8a4ba3344da550046d21d32884465888a87361da44ae2a294f1efb51a126b95e16c17e748b5cebe9167d035b417a553ff157e916444da68f8d56e4aabeb6e008cbe5ef1c10ec9713b9ba7ef9c855954e3ee9443ae99b110d818d908bd7e611f6bb7c1050fa374fbaae07dc2174740612bd7a1e253c84ac4c2cfcac4761d9247a9505d72ad1abbf381d273c4b57cb1ab695ee2837d74d72ad42d1ab873cf98b4d8cc091742257f5b58e3a4b27f4953a3145c995fe9340d7f4914e646bfad49274922b69f4e92359f057472353b5783a895e25ddc94414ec377d723d13d38946b91ca449924eb0f423b0f17a92eb377c3111bd7aadf1e5d334f522d0e2bb4ace9e136b082c8cd7a0c040415bd978c9349decaa7c60cf8e61dd92d12b7959a25242fcb9d878e915fcad147f2e39bbf5dadb9530dc72058734d08cf2081a6cd8b061c32ef5f56184c4465c5ca80214f14974121075a207248464a0355362f5c213c698af4bfc751947febb1ef1dde245edec3a6b639ddfa237259c6269e4791af6c2465aa24c83d6dd90d4eaebb305e175e712a2276908be2087d7ae2b9bab41c0ab62f708cdf3fac9ec1122a0a20915aaac90e02384ca10851dbeeb9beb12a6618576e372bf91e04314e7254f1f9f5d18e5cc18c6f03725f688fb4a15d878986184935e58d3a03a9873223c81d6a51c59ad96ab899355ec901b8df007b5eeb4ecce4e76b2de19bd9a29c5f2755d19c368ae35cb641e8d3619ebb66d19e93accf5c2b0eb5eb56ed7a5d975e7486ad78ddb75c90b398ecb48d72f659c92043358a1d07a265e8f524a2a25a5d7bcaeee96f06a8853452942d60ef4e25bbe6ba217e3553e6ce916efc85554f9b01603a936b0b23ab14c48a085255e649d9e622fbefe78a43b83c0069d8a03fbd5e478a343d2843c0977aa1fd888243a246ce52ad61b583a04c4b2161bc6383d9021ae4cd8243a4974f2a55d39886c95dacaa66177e6895dd5c44610b0e33ab2639f99e6e680c88ee1f7d7812c21eed63a0244d7865d49e41d22553ce887e124994a3cf1d70120609e4d731de37e9859ca9c23afeb6e6fae3e27da44d6f6781b7de3a3876e2da057b1a6fbabc95cfe6a72c43b35b0d9d7427509ab7d74ecd6dcb1561ba3bd176d6aa2576760353c714de936b618a5d825a57c86d94b62d78575506122a59431d219634bc8b345531584a454a1a80a54602a4d92a0d224895290a2d6ae4d071524b4b845acc626139bb576b784758babf98e1d01a26a24dbfa8694e7777c4496fc3c90c882efe99b46429eaf36b023ad2a61bfe70d153dd50feea4eb1cae51fd209d3b87917027611bb99a6f9d897df81c405e0504fde8233c4455f3085fe02b228fde4023ac0262fb8687d06b18c708efc80f98e76e90d8c33c36bf80ae31f14e0d2cfd0010f214e7d8e8cdf95aaded84bcd7e4ec983b950616b5d519d878a87139b077d6b05ba90e2a4c2e2e4796516992719b0e2a4c72867550f1895e63b8b326af830a12913577e26a62b1859a66b1a483ad6866c1d2f78742e27462d99a446f4e6c629a945c8ee744c9e5e867f376fe79794e942fcf895a9661212fb9af8db6606716ec9c5c8eec73e2984fb9b3c0b81cd9e7121663d2374efa06e7fa4b8b583125b9fe2aaa9b505cd51755a069ea079eb8e106b9361a72fd87cde083abfa0f6b8190a6a9f4cac482fd36a22b4a6cd50b689ea1e6295822d1abef3cfaf6d65e24d32b7d33b35f55e2aa96feddb0ff6cd098896943b72ad0ab7a23e2aa1e3ec9f5df65e546097f1791c5df35d4562ea1b67205e5cae1af0a699afac8fd3073868b88de46b41145af5e8be8d52cbb1482cdb85f3c57a2574faf10e512e9f573c8924ad6746241a5aa88ad97d76fd5cbd9b5b9448faccf7044afbe08203fddeb677478095b84e4f1727d11d9da417dfae6e6ba248889159040091294d0f9604fae2de7619ef80392339c13bd7a98ab0e73d5bfe7eb46e8e9daa6d56ca46d1c09db4a5c8f5fb1d9ebb5ec9e548fb930cfb298c360238a88e9aec24614e9845cef6eebc4dcd699a70c73fa95c81a723a3dfbd4845c7763a269ea4f7773225fee0625aeeae7dd6e707f72bd9c54e143c57bcab524d77f3772662367ef99d8a257bab7ae2871559fa17276d8381b51d7a8cfb8907d469696b3d7c83a7179de3b3728f5fb21db9e48655876a3e59f9733d4bf9bb3979cdd94b3db88ad8d48d644d67cf64cb2e4ecb56f4ecf700a6f4f3cd9c2c6fc6d4f646b1392ab9abaa2c8568e5cd55717fc59148e827a0bfe64f2e9d22b4d53cf93eba1cd3ebb907d76e1742984d3a510ece9b0c806e5ea23345bb40dbdaaf8bb98c8f5292c94ebd524cbbc9828fe6a3dbd82dda444895edd9e8850f2e9777be26e4fa2573fadf06d4f727d4bf6cd49647d31cf57a09cfd23027df2e6e46e3e59b031cf7f9b4fae4e226bb25267d99e882cfafacd27b250af3446d988be2b0ad15625b62e295794e8d5c7fc5d4154cc39e71f1059d72f9f5ce5137b31115b34e212d9aabf7c22cb844abdfee2b9944416cbebaf9ec86a79fd854464d9b071d3512dd76ea98bba5b14d942d547c9f5db93c83a41391d9e9800e99b513ec57c3af96c4c54fc61d9bb5bf44a2b91b3d337746beb89597645e9557d964dfc691711ba45afc855ed2b4a3ecb3f7a856eb4466fcebe7665238c6341a15028140a8542a15028140a8562e14698a75dd948db3852c966236de348258b6d948abdea73222cb2d93c12bd7a219185bd9e4891bea1afad45aea373acd3ebb5110b0b0b0b0b0b0b0b0b0b0b0b0b4b3d9d4ea7d3e9743a9d4ea7d3e974c26836e706e9893ec345f59db367f533eb5cb38f88cde4729c2e24b298f44de7fa23b1d53aad85925c91c8f5140b761e756dded4b5e628a557b05df4eab32221d1abf44aaecf683dd522b688c4557d9d5848f4eaed87f2ea379eb6823abd446c72a4f09644f4ea7322ea6e4ca2574fadb027bc2d895e3d0bde7a3626b99e56c17edfd693eb85c856f7fa2291655fbff14456ccf59b922ccbb23f20b24ecf4e573eb15ef4aed388ad6e7bfd8cd737da2dae8fe91b522932aeb5676736548c1887818a89818a21e33931c6f3bc1b8392713b540c198f8f9121031523234674829dc156604fe869cbd8f410edc9730c163e81c18c7d56ccc29abe817d793967d7bed1b2fc8435e8964dc7186343215cd7f375d993e575c9272c615b0930b8923f9b3c44afe2bf1a957c3f3bfc8ffac648faf5102369c247bf1e09ccb2512dd2344dd86f436ddbfb3372e29f984eb68040dc710504f6142902be753428cc99e529bffd478cdfe291942ecf7d6eff41fd8774fa049582c2249f97b7ce867a416d54ca86da509b67bb1d0edaaeb91d19152d5d15f56c5037ebb38fb04999a04e7c8e958682845efcf35cbcc068a8cbbd7449aa520c942128b2d53a344a9e53c3db9c285b45c39edd7a8590b72f4da28ac4148fe47479cdc545fdc52dd10bb3cc6d426ea6db3a261a25daff9037c9dbcb23393dbe75e0bc2623c53f56075efa848e9c73fe9eed2697c3c8b5514e55ff43defe47fc76991caa1d8e747a2d37e2766446774706ebe8513d10797b20f1db55d95fbc755c5c7b17ffb1fd054662fa76171849133e4c58957d7bfc762427accab0aa6221ece57d6c8fb797dac671246a3117ac85b25c755d0e735bfe7253b717f5ed965eeab0128e2ba1522d2e2cad83e22cccecc18e1225a46f3fedd89b6827571b8512bd894a5263cb19b49e693c291405b0325e9118b5458f06166200da983c13571d5950a74efc0de269915082166bccfbb0d3f7edb03f7f1d8db766ec6cd3fb3cef163d1d6c9109424064743ef0b0aaa9b93545b4b8f26b9ae8557c4f0d106a1194903f1915c32713f648c8a324b21af6744f5674e5e682f8681d5828944590dc75d6ca2aadcdf1b5a97c7711cd3880f9a63ee28a62217265a588edad33cffd87fc26cfc923e13edf6880ad6e28050871aed844b6b677b1046eb802e442a66f28864cafcbfe319e55d94f6f1d5a3ae93fec8974d349f490881e5aa1874235397245a1d8af81764a58b5d3451831c618ff6cbef00ecc89141172f1f0a4585e4ad6844addd67941b1f0f4f0f4408917095342bab08b8429215d90e7e592fe7b8289711897899c466fe0079a86b6e01170454f4fa751fe20cf28beb79d1ff204e1c6f82f0c99c39c322115e8168c42afe86996d92c3e1bc97e3d3ec68801e3cda9307cda91c1d74d40eb4097efac94c82c6145f64d678a93e9e190e530d4ed7f95985e824e281553a247a7102c9c92a10e3d1c92ad9fd2c79e19fa4122ef32fe2873bbffbac8b8ade3ddd699b950e8a150f824c3900926323d3d14a2afd99bdb79fdcd2e7d948a21141917e6de7d59bdb80639adb36d24fc804aee2ce446820fb6c8dadcb6d2f6124652fae6a384b72369399db0dc91d85a2284486ccd2ba19f3fb058363257b77526102ce48ca846ffc1fdffb15de6f5abdb3a9453ed742ebf7e5a122b69e29a71d20f32c9340a4d431f2f248a9e14e08a7ec22b640a859a867e3e6139ed90bbae496e6775edeeacb012fc7b6d8485e0fe03d92e73cf7bebc8f865fc87cc3d8c64bbcc6560244df8d82e7324dcffd6d1e006498f711fa4c730823be917f6713a0c6cc4f6d35b270132986aa77b025aa7fb0f97cef7b6ce676acb5dd498ab9e13314dcedc96e7705d1cdf98dfabfa2fcc65eecb61fef2022be9eef2844bf702a38a71d1e2429584270a9410b098dea79f48256b42a56e4b7a96cb7293f0c4eba4edf33e485875c96fb8f4ed3f48e7b0ea3a12d58555427037fdc7768b91d86f3761244df8b0df8ec4543a5d7448aee84d44999e6425d38d9e8b3c999a6eeb581e58d883214ff4e8e7e5f522091673688116ad45c5c6ae4d5c491bd193346ccc4baf2d92e10f8d891ec51628c6e80229ced0372f72b4dd62d5985adf43208ffab9c4d63a04c4229573cadc59bd5b7b34e63131d3d6e8158384e16e1a3af1b125a65882145744c92dc5154ef20eb9a520ba92eb0f30637687ec1ca619d87e11592b8e56c95cd2413cbae5c91db3ad90e7f4646b875ccd779db571368700992fc833b91f608efd1d7d18a253ee77ff6b219ce729c703e778ed821d49b0691a480459e4061a014fdfc8e78f4456e39ffaf922222bfe6b2df27c91c89282088b7c24b2e6fbf6144488928b889027b21a5f3677ad75c225d8141e295030591886c5f989ebbc6a920bc616683df3d5ccfafee65d3166fa787feab51a4faf8761d8bb1e2f1e314e1c13bdfa5a3314a14c1184cb896ed55ec597de1de631970afae689c8c2a25c52224bf64d4be1823bfc5d3078c130f8bb94e818fc5d39c88fc1b0ab1ed3181673af25f76a123d0a85fd6ac6ae84926648e0ac277a9189ef7a92e3f65d4baed3e393bea9427d9345df688fc79af4cdf6784c0a46d437a4c757257de3a46fece32b157d637a7c2dea9b9e1797798644b6e40cdd924bdad035c8789cd02de9c409159c64c189179c6091836e4921212784a010aa5104e5f81a826ec97a02db821cafd419c82b573456846e4d9f30f89cc1a70d3e95274809414e08a242c660d0ad59a4866ed1289d1345580e8a94a8171c9a60213841bea2d02d0a743551d485c15e0164850a045b841c9520ad7501e5e8ee7071a512d9b30485fa5751ff4a4e52a9544cc9c49b6e9c22d4d222d422d422d4f2e823afb8b8c82b2ef28a8bbce2f24f468ba689ddbb77efa64ff74f66a8696ab5b67b09824f6897c82c8269a282994530b3086616c1cca22cd375d6aaee8ea691e93a6b63806ab5b693c9f49f4cfea8951c254ff46217f399a6897f7165ee07a39700733fa8820f0221472be408872f2af145256419f9c9ddfae2b60e0c764dd67831b99a5c4b6ac7441922ad6766c3771b2ac6cad585f9b66dceff83e168d560354035d193d2899d426fd060bc123d082115b6f13ca5010760444fb6503d61fc9b47cd181359b394a74c9e2ff2e4f27491674c9e5a9eaa3c4779c2e499e5f992e76bdfd04f2c4f973caf3c5bf2a479a6f2f589caa87f72e61f4b9e8f7d837d9af23ce599d5cfdbbe89f1792dc68d41a1b28c878f81928f9111c3b8d5097626077c2ff3c2458c0ae6a57369994fcd25535891a19d47cdb39ce64df376be34cf358d76b38addd834f3d79d7306622dd0befe37fa97fdabff5430a7f2f7cd7ff1b6a3cf488b6ca83e11a7344d5f7009c5626e615a9944c6732d6ef18a6e453064f948d4372d91055b328f98fb41e696d316da72af9ea6a1125712090b2fef1723257ab80e015978288764cbfbea9027219e8ff82b4522f90831fc2e126419454a892ca0c8fae9b98ecce5e594be819797415444d6bc1c5d5e62218b26127d935d7e2e892ceef2934964912e3fa1f44de9f2f3891925b2b6cbcf2afac674f9391459a7cb4f2a91c572a95d7e6a4179222b75799a04f589aceed2e506e6f2744a64c55c9e0645968bcb5f3d7dd37279e944b672b8bc97bf48d0adcbe75241963d7802e25c45e8ab085710a888ad1a254a1551a864791a45e3d42a54ff68129cc8566dd2048a8c92e5e90c1aa73ef104ad4196a74a620bbb7285227185326943e354266fc8f2978f6c614444b2850149202b12a8880a8d8351a1628594d8c27ca2cf94e84385138d8349919f4d640be3912b79f97982c6c192484194af520b2225595e86a1712e2d600d792dc62095d038171548abc4561d8a72888a9ca26241b3c8b2488b2b59febb94443a61c5461c29b35be9c46242a5b4cee5e51ab42e605e391d57761153a3d42a54b80a1897ae3679a236a94d9ec8f205a750572a93ee8acb95ca24cbb746245b354a8d4294e5b51a45b6ea50771d8a12eb90cb3b772c19a53da51da53dd5b10cd18ed2b08a072aa38ecaa8d41d7139aa14096324b560c9b5a4ee82c24352d7527769c13c52584767ed9a86594e18968550c62208d342969fa6cdfa48f1c1a464795a2271180f96c4a6613c581259fecab04aa405119116591e1b11552a40b255ab5c54204eb542d790aff8ab5958fc552cb2945890af5c1d3ac2bdf1fec8c45bc884ccad52e24abe02e17f5dcee1117f15a846318285558acc5572996bdabd978e06b77ba98e16b77ba78e26b77ba58e36b77ba38e766df7429d1c6e1d922b795cfae290781a4d4bac0a88d290789b3b77fe2256f1b099de663abab77522c743fafcaa43b30ec51e86d0cfdcf9a3f3c21ffd15f1107a158f99e7679e5832217da227bf4a94e56b942a05284795a9d835ec1211af63f111c6b4c46640e6f8a687179611ab781881f9ab4359be0ef5cd5064b56c092769089923ae434d232f7da06422b2a8ac4310ebc03f321f92c17d13339e9888a9f08162066298b273f2f5d51ce329add8b4c15ebb95d5601886b59414b78c3226a0ce23578e47ae490512a21044454f137c0070e4b23c3c3c472e28339b7602d1834288d8c8d6f64cde932dedb274e112ee5e994e2a034b297cad453adbd5eeed95fce8421fb2d491afcf8691f480c8c2f003601039e5912b4b22ae1c247a1005efc15bf8aec60b0a50a01777fadaadedba2e6ec34ee925af4bf906ba5eb57f7534bf2e5fb5c6af5ef4aa31a974a8644c75159a1e650ad10c000000009314002028100c084462a1583ca46b93f70114800e8da2566c5299874990a328841c51c00101000000000000800d0105b3b5d9835a4972a5c3b71d3dd93de6065294e6ce6f0ad6fa916b062d212fb3c4799170a032d150a0803d5195896d60415018d4b30facf00945050b7fd700f772e0d98e762129405aff7c5908b717154577f7dee431c49b99eda5408f87688f96583ccc42848bd74a6582ec150a9b158b1c2b98c20f6ce3031033d1f12dcb9e997df8891e05481302731e01f045c7a10fbbf2f076b4f123ca654701e3c097a2ad95433dba8b45f256e8ebe26eae6febae3663b28bee707e02678d453dcff3781aecd79362913dca0a8a4cdf5d71116a57378f3f8658d6491be025a5d9afaf6cf1867266d32be3adf50c88d90da4bde781cc9e0e65364a4fcbeaf286f2b865cbd52602b672c1965dd38f30c8b8318f81d1d47236d8a60efcd4436191f1b298d109154f7672c982c54d37678b3505af5f7407c1ec1983e3e34266074689271d82f1dc94ca66a4d8a6b5153a5d4b5424688e3f7ee5cc3118ba4a409937c819dd0d2766d61cf1be37f5390cfbad6c0dee430c2af7a03178f43a1e1588e7471f7bdf8ff1bc9ca2ca27f087f0f64fb739e144b5f4f9d4dd161d0db28ac230454fb435440809946df1c21220b2a560fc97a0730cef104867413762d53bbc271009d9e0e70dc326fca782c91ba138d3100ad470080ab90479825be079b1fd2422f8695434dba27a2e52b97fc757d4dd53e38f98d584d9932060e06cffcde5f7553691642a37247e74ba0720ee2227daf5956e7ddafe361ba750d52a492d8073c28280ec278e13c317497d9b3f282d8e0a24e992d40f78b08da39ed7e956521084f0ee73731e845522f58d92ca4a16459a5064a5e6e255208571d4efd109405858677a01670cae2241d8379242caec75aaac99a8bfa6c77c5c8fb89b6ca8dd61e15c857a8161303e609bf823889fe3e01a64ef19dde381bd1ac3f79428f892c6e3249d4b95662927001b6d845be7197742cd9e3f85b1b720a2d5fef6e38217b4a62658980ffbdff6a7df4810464130beddc552a7b70d12e869ba9fb44ef2e06f7ab08a6637388c381494a74fe035ae3d177ca18fd79170b320302d6465883d039fac301dbefae55e088f7043b6334de237825bd298cd1fdae0fef757fe0a30bae2f4ee5c27aff0c61f3c1349073bf93c0275e10aa6bc0b1a619f05ae5a4ac2e67932d98b95f35c5aeba612270dd1c67c17af0ea9e752b5c7fb9d060fd8786ba634c3b27644a2cddbfe37e9b96b3a0974a8d1c1a0fd99b3a7d62f94d249f080dfcd9b83418568ddefef42b71f2c1bc8d749c008fc14a07fcf65660aae3dbd0224e36f23a2eec0143c3db7cdf81c0eea2be4d9f8b5e8b012f482575509e28126cc8b335960f8b194b6452b8be3cc0fb5a4bf4dcf0f553502e37a6d8c957ad4c5390b17305aa8530f5cb05d5fa700f182936edcb7646c1d3f0399fd2e53e1b67ebbf97e2c44a278ebfb4b3616a9666eb8654a59326e048fefebaf698832ba595fb2ce57af7c7c43589906c24acb23aa496b83af79f4af444dde5d718187a0e98e8653372fae44a09b852dcc6af32b9257b6603ee9f8f663641c69dbe641b97b82df1391a54efcf7c9bfa90908959191c9a62652571addcec63f70caf75965d97c4aac7dd3158ac004b38a515a9fa58581524c9a78e7295eaab4b79d729c3cc10fddb65edf1b7a60a60e3b25a6c729f8f8c717fcb8f0aafe8bc6e30b9d8efd8c86c394f91ce3165880d40cb2948b639761dad527911c53f79d8e52e325f28b6c21e0d94f9297c3abbd0e6cf82d4677fca03ce0ee77c7e3393b4d268cfd022b8e1c3f4adae0bb201efd18e530aab636241d1e4272372b8f23912c09fa1b7dcefa4f0162da054ac56d112b5b46afd07248fe03d962a975fe640d07ec96d83077c356f4a9f8e744ac9cd8734b79e2aadb99ae4d6f16821dbcb399ab724a80a01dcc242ccc9440f51f4e14617848fd16c0cd94dbf8672b16cb044a4c8b7457728f4d075e3f3d91a92c29f2398049d72267f2285dc84635bda9b929ff7325cae547ad6026edef062325111e79c30a5b260115fc7063efb175c61b72e4b20c88243cc7e090071e17262ba936b7c66edd1292263a83afb4664ad91e1cc14a338d2d49c45fa21e75da8fd1b7bf6936834ffb75abdfbd13b0de53070e641585bff4abab9758650b897cd5cb4445cdf42b38da5ba9871021719ff7b62dcc95fe43bf1bb6966233da4a89980cec943327b7d048810a67877b697f5a1e05b0e9249d5046777b26040aa3daf1dac64b1180e6882429454cb2166bc301017e2b32723a10c284529a81aed31ea35402b864438261a8e9fe93d85873154986065ef03818274807583a1609c1ca4ed0a90d8cf5d4cbdcdba213f56d65696259a56d4b98819346da164bf68b2e28140b000091b5f0fdc89add87cd7e5193a4506a82c2abdc34dd683379909ecde7bf4e51ec997e6c3af8fb1ae54583173371e929209405c51ef77d2250c21b8f54fdf396a5ab548b3953839d88303af5f725b7c89bce1001208de16e3242b025de680975188bc4dbccb40e628d8847ca74fc0de51c3f8758c6c3f9286b4bfcc24d2a16c7dfa525d70e5ea42a68fad72b52b89b757082218371fe218e1441659269b0ba4cab97230e41b18ef437d968d055c6cd0e80837a3df8a43d1c613a20fcd199550a4754a7ae9a4f55255252785170bb5c2065e952d7b8ada3f4e51cee626387aac6da53663b4459d6f3084a40366429cc75730ae04bc78b8b9d39b84027432ed8cebbe7702a1677821a6d47bf0de208494afc065aa4624307a988b304d1a697ccfb5b780356cecc0925d7d3c326651521c74ae857c32a232e0409616fd78db4f1fcb4b5a89cc4c7d3d1311f068db9cd529f11a4373c8c8d9cddfbbb306e5dbaa35d98907cab158cf719cf4e49ade221f822f4e55d6c0ee28969a80f307d95f840008d936b2164f7be81b0e230e5b97667c4f9e8062d86bd3564b146eee7816ca7daaee95f4c6c478b97446b43448566751d5f82897628c9dbad4b97613f8125fbc4899f4aacfe35c3173eb8a51cfc823d9e0675ba21ef9ee98c077f29bfe8090627dc5ede41c22876bd7e8221b12ea386f508192236ffabb14690548ccb36c0898fce90778a7fa06cb669304d06751c246bbb94528272786b6d4112b9961daad62dfa106e609f6065d57519a90edb7d329a3ad100003413e64ca2794801b14d59ac31c8e744927441498a15cb20938854e96963b42de11f6378ce4e8592f5cf3e8a7dd0569f9be5583b22de972d176f3fdf9aba0c4fa802c32b99eaa3a068bc9ca42259db009ac627c5a244b6cfe9ad72cb4c08794f24d482964bb1642c52e819e826690686fe3dc06bbda589114005bb5641f4401b88a9bc518194340352d04600b4fde551d90648db7aec90f9f1d111a55d32fd6b092beb0c77cffb581d4ea9536cfcafc86a53f1391d763bb6d16f7704432180e908e351fd6e27e03a40311ede59b5b2bffe0449f2f4cce9fc3ca2db985dbafd3d0adace005a21a5c5514a28a2083fbab3138d768d5405ee620a2edddab4b5b13c90ae061e8d67e08d672bee3225ba092982f3c49e4c8b4040125006b236361414dd8d4d8e7e8f2f3910b2d65d90ee443e989082a5534f6e8a7c965ac015ee298011e2e687144547d9be749254d25ff28f73943066b81f0883289deda80b8ff208b776da1bf42bac844edf68bf7feaff9e24c028d804ec400be0ebc1f1c5d6709cc83c2856070242595df52da278aa09417f4e0441d382abc64d77d97c7cac9974ff4a9bd4a4f8337b73e24f2f2a014961310bb6eee1d3b626e93f9be330411675c65adb409de5da4a62cf8156a6f2d31e082ddde7aa6176a5868d7e76e37a88a63ed255f8b5d61a301075c500eb92d7901b93efc3fff219ad6e623b29c59670a9733723eb78d83afc9557cb4c7c55084e38325b6b5ce1c8e4c81879411b76fbb4ebbf5124ecce71d6e62af5d62a4459326f4de408474804680eda40e598db1a0cb1547738b68caa03f79cc6da3e7c67044588d349410202673c424bf5e8ef13eac9d912b588f522db73812a2cfec34e91be6faf51ef2567da6670183da4c3b5a55c7584253c7a63499d43a3b16422be35100d8fc5d949b5d29deb095c5640f2231b8e5d256b00241a9e5c29555d16fc5955286a6587a82c84483610f3f21d7ee0c0e3a827db479c4a1ee82722b6f868a937d8b1ac61c9c5fd0cbaf81e1e2c4402cdb4cfc265134e61f0eb9148cfdc708a35b6b2decf3f97fe3fc87ef706dc9c9d2ae6c61589a67ea38c13e1355c8f9196f4dc463e31ec4e66140ed938e4b23f26fb7507dc5937d628ef33eecfed0c61a9b44cbca23b4fb74c003a9927f119fb51944578217fbb37796f1e1bb55fcd359512fceaa718c12ba48ff18ec1c308936bd2353949250c09398c74470adfec2934d12a181f2894f3e0d3f09927aaf136cd0d58b13efbd26dc73dd71bc2f38ce78c3dd0a6be8dc8e0452a3bbf1edd29458ad090833d5e0eebd8be166eab114682b974087f13b480de9a6b3404cff5d742da74406a6897c8a20362d76c62f15e54ad8dab59f585f7aae8250afc12477028db1e90ec58d1f2df223f674d57496d79355860065ee73dec9d7c9cdb52d5d82d2f62167c3fe36477763aafe5b8b1926033684c23d3a2a73564b178d696d6945c2ea880eff5c3ee283aff0a6d679c0e40e31227ee01ffa098eb62d466e1a81ed4fdf0b85202966fda35eafcc80154d648190ac91f06ee9c7cb510e68f9c1b7f00a87c7c7668361e1355c7c57d58a07aaec5715884d80d3b6e6aa5758a7420e44dcad0c2716021c7573091448c40069dc1e5b881cb7c3c9344b7bd6cf47c644ca4957fca5606c59f5750d564e5657757d27dcb2e7b198b64dc19ac56f13fc65ab9b33f7288f2da060a88a7605f619c474fdddd1b14f73c108d68bd9b170816d488b6b0dc4763615a5e17c108e7fc46fe713deedf63a8d8e905592e1d0ed37c2a1c1f0c963264457f6b8c3fc6e68160d4d69cba3929b8f663f9c9510de2cb162c62bf4ea9060cb6ebdf5112e1280f31f7ef98aef681428fe29e6b889b6cbedb96620a7d214f55ff59ebd5089f1f53d55054fa2dc4d9a2759926624186cd83b135f61575385285d729711c8d8e3c93f9969dcf268933295da67407bb7964dc1ea26a9190b7ceea3940a4ca196000c9af5c00af776f83794c09b84b1c91c00b7a3e754aa97dcefed20acb1db447a2da758e4526dd3c584d4846c06d6419725a5e1524e06cc3d1f3121db951f4160cabe93122440b86a1cad33a66cb907d2d8e9ab0e24b684ef5bd65b3ef12c9172173d51927ae36d1097db0247c64bc5fbbc156af0be240fb9ed8105be2d4b716e0243c87181cb9a37fa78b96dfcaa1d6736e1b8cd821aa1e5a7687b76a0f160c950df380ec72124dc7840dc2e716ed66653fce9d96cae6083e74673470127df28458be0b6f530eb26b8f11583d2a0498bd50017b0325c81b5083791345b03739a4953a6669daf20128813fb456c7fb1f0997d04ad99f35520382727b1e39e821e88c1eaecf93368f053c7dd9110bbda0c0e96ad837c060ce5a39d73810a9ea8f3facdb903564f8040474c8b02c7dcbb62565215778133f860effdd6283606dc52e8dc8dcad1f9448bd637c6b9b3958b0803543047bae4c0716d15b706b9839659509924baeeadb3531e06d1cd7d96b0e0460bc168a6637070f24bd9ed2aed36ffc4975913a4be18309dbec2c8d8423608280cd7b401910d77fbd873da1a15f7434f707dd4dec9600ae1ba656349d0dcd9e23d63e777e6264c486928c89fbc013b8361d441d3e033efc5ab0ef6484512194919cae7b6b2ab8e11e598868a0e903be5fefc9b5edf077bd6c9d229a05fee07cd97954e6e4dcf1bd2ab12338de31cbe909b4555b032efaeb4ba1b13c9f65cf7e07695f58fb56743d8901f36a76788c46afdee6e91df30fc8254a865bbb092c9ecfe1273f423be12c8c4ba1c6c8582d1add7d4f3e1d46315b818b05fa81a24d5ee6cb6713c7e05a990a0efb386c423c6e29ece386e877b971c20b85a660db7c50662d446468e824348c75b59a693b925d3c6c0d009e089b4d3986371287c386f0b95f0db906e46f479fbe03861512385f2c2ffc718625e8a510854823a8caa1dc83c926ebd79d29ec067702601025ece790075146a11791ae34f043454525b993014df1fa6991eb7b9e184b1a6c8ddad55ff8d9c7a61901ff506936c5b73081fd810ccccb70ba4bfa040f4c38d29a470d568f4c72c56f96c0ae6f932536caa25a1fab0dc0c25165d7b41d7824d73effd2fb45c5312d660035cc9ca8cb259a6d09b2115d6b6db1ec6ed38a9bedd869f33fc65c128252a69f5c6ed3fac99becb4d37240eb4df4e29bf0594efcc84404f7d252c1d71c03f1079d76d8e53af70d6bdec0af38ffadc42c92639d0d35b315c178f45008817f2bd5e425ae6c0e966d34d386cc6d834af8540409d641b9c62da3be74db84a63fc10e77e0f22789441935926a55a2bacd1bdf00d04df0d006ed3c5215d8cc732feac351e9edc4d988ae2ce121f7207e3c35719f445de3f27e7b8f1268d18d6d8663b0731251d58193645353915649d2c754ce1d04cbb3523519b2e73ea2a480b321f368d45448df9e8c8008a6f01ba85445e2ccecd4c347270b48664cea300e0125157dd72e2362808121f66df061a5eeae246508a68d36bb205e1ab701916836879ab9d5c050b518f619d17ecb031b0c53f26da2d27865377fcbd8e9fc48672b1ac5a76f1207f28fedd26869c70ec3ca91be8f6f0aac3a6dd8ea295610ec88cd3b8bde55f49a3e5d52505b6eb5531fe652c39a89151fd31a9eb13bef527677c85b3c0092ac8ee0814ab533e126c10a422e3209d06e91b26b57f417c49c60fc9f04168dfab9b73fedbffb5f5336b03440d76edd802e7c8de4d68de82a39ec6304d0e9c88c9dee6bc3885ea40772fe25e364f62235368175cb53bdc75eaa126919514eaf6de7171d244c85684fe943d298e3b0187c02d758c9c4bd2356c4de455f70ed86d1c27344240185e7bb58f822893aef765e0334ebd435627d1f4e9a1175e3f6459128065ee2a540a1492b527e41744f6e396b701633e900b9c9a7404a36453bd1ac3dd0d76f12b73c4d08ed996b6bdae13df3bd6b0f0eec1813b9ee3ff389c8d06fc7f23fc743190d8e5313f3b3dfd3d3a2063742681eecd925ac3ff7b2d63fa50013a7a503b1b641b60ed0b8409994e0460fc4da8544c894364e4bd95f34a275172550dcad8f11cb64b066d06d0025c02d87a9a657dca522fe7dce6883daf4c34448f219f74b6ced5322e5ce1c3941f7ca280a1fdc70905f2b6bc195b574aa71ac796ec1ce2f9fe5624236e9bcd35897222bae12c3ff1f4e5a4a433744a019520a84d4da7c2024b3ab40d867eef52b23413d0aebd8cc59a86bd0a0e0b1150986274d457d8542f86ae024ae9b46cb7ddb74b5776705b311049408dfe2e7ad880d98daef3f078a96a1042ff41dc60c34053b970d8657ba61fdeb23b6fa2131a0ecdef46e962950971e80367a58603995b62cc4e9f41d4197ec3bb31fbab53b39064c5014476e26f0836c97a74b1c3e69c39a66607ee123c96d1d20621cb32a04e34eeb40ca83f1959b31995ff4a8d119e4152d152e918c0734b9e7fe522c83054a28b4bb4af374b20abd956a4caa48d857c5ff950fa7b400cb7aab67589f711c0086018837f21b2f55a4f0cd0cc990be88113ecaf2fd93228a969d3a08da5bf9408ed7274db84fdb72794e88298965cb07200e03906950c1855418d71548a1069a41690deae3a500dcff9e7fd31a331ec2640cdb469f72f06b2a0cae00917054fa2a567b1426def8a68df4db9506a54342cb37941764b5f7dd1b8531001fef57d2f708cf04eae38eee13ca98728c9403f7272a57c751488d88471a2f07dbd6ca7666364ae8082df05b1fdf2cc64b03379b9bd36640e405a6c582ed2f987fc3cda58c5938da6d269c6d27180e4d8c309d238a24453bf361486acc07bc02e3e9bd92d663545a3109d69c4e68a29c8d5face1b54e4ea07c442afe06ee0dee9b0d37d20fb11359a89213ab8e1590d4748afef5074341bd14271976d86186102ec23ad15ba21f8c9273d0096ba23b589e3b88a877244659203c07fb68cd82716e29d1e0395824042a80b09794eddb1e30babe73b080249bd9a076c488c67c0520bf00237d72711dbdb72c8540b12296cad8dfeb6ca1158d1c6b60a949172182d720114c5409fb3b1323d84afec10eb0c2c23a5e6fd0c00441bfa1683ac1ca9b26a3839eb40d20f656b69776744c335eeaa1dc75f98e43fb7f6a9a769915bbe465720f6bb19460c39f15af9192b91b6850c6c71b86b6a21b34fa2a22038ca071ca571cae6c331a7d624d362df51835083f16b269e717a72f928139499ac70248d534ff02e820fd0dcf29a8ee5d9ccd7e156b1743d14fd2ab77c79f0e9b38e9c18af9c63ad630983f9b60f190e2ce01536f8219343f47db1600cfa4e1829c48c055f8471ab44a83a07cb389dab5c5138f0bd808f9067aaa64fc4da4aaf60ac3cc61333ecde9331f7093489bdc4bc83b8ccc61b55e03d15944ec40933e77ce9c44fbe3557391f61b80bc7e8f7e00d0037f0020be7f005cda6170d17e1e206fa7e06235d5cb0e521cb2316630c8e00191d660c1d6621e2a63218df58e53c011126f382bc281040b6b4266f6d512468f32166d862181e66bfc2726921cc15ba643d2760818b56a37f0f9d458a20181815486b04d151ca0c5c92b9676757c7cfdd92a914b773700c823d31ed4261eab0e6d589e69fc8dc39c400f3e3b192a10a67a2116e956d91b37b204803735bc2b81161ebec6a2603145e4e8fca2f06b898711a1332cbae1b4a553d206f9aa63fe33e626ff2c43890d78f62b1e8bd9d01b44920b1608bf644e9345bfff55520097e2ca700dbb83ababdac625c3029a781febb133b0ac8f807f5c092da51e758cd40b1c162a6c4fa60d987c8304a79c80632de599d7d8868cb0c244dc2a5ceb4d43d5f7e623645e024a890af8e3e7caa4e7a11e801afaa7450378fe1696605b1b0c3a907230cab4844b4f63027a208b0bb0db50a5c872fc82d187953edc9f5e5abaa8daa396781bc9e2da142a74118c117d1880b02a45cf9c460d9825d541593c70a16502ea622ffaaedafc4f3138b4bcfe8b80dc8248c2d7422a55b204c4eb926a5ba5900ddf024880214f30cd0053f5f70996b4e633667198ea2cbfbc61382af41f312aa7d1b926306e8965b9ba77a2111a7697f183b3d8152594fe510e824069f40ddd8653c763b1010aecc4e27eefdabbb6db13e8bd8504e66d62521969cbc068d66b28cd028ff9ba74873a3375fff8fd61453cf260f653556cb3e2ce3b5a1760fa72633cc9a6ad42fe19b63c81bd536a73423f91e6398a15e2a8a29f39fa1388c90a989fab5c4d7588a81a0c4a6474458133878b6ff2debe5ed3ef79a37b4bbaeb533d3cbdf4b4d244e67d696468b4bd0e57d9bfbd135d4474d328781dc533f1ee55fd76451b897b371fda2e0254ab471a05ce3829ef7faebd9412388c93852238226341b65c13050de9a6bf557fac971e411c1384051f82edd30ec42ef5c398a4072e0ad861c100fa6711715ade39721175704d098f1b5cdf0c90232bba76ee584561f919c35f56eae25f76138aa7df0267c494cbea5c0d7bb00b90ebbed12af1015af73e3e0b35f4b72a5d132209a85bdf4a43045d13f06f5fa6a1d8b3aa9b3b8af9cb010f0ab6b1905ed59a47caaf1dd6f8b4f20571f8dd4ec90855f7e1a5557e8ab768d8cac2c0fe34f967767f50e18b8485bc526c1671919fe217791127203ba3dbe7bae2207b752503d82e2934eff74e3ac4ed421dda267206b60d47739e70612b7635fe919fa6a94d57d1d8b4f8e56676a34ffd6cb08369261c1ae94695ed18b9b2c10582cd714345702b7531ef4af9f36132ee497c7bb71357abff431224464c9c929eaa545db3d745e406e047f7bc1bca5655741187c22487d2b2327ca0ae85c4f4c6e18c873b240380a22521098886ba691d9419e21e9b855c0d594c30376418d3b29729dd1722adc8d7e882f2b70e45b966d05521c529d9fde1932d9828b6bc317be58a7c144687298c7737c420faab79a5730905242eb5a77fec0a889eda79d4c85aa4298b13b727e0dbbaf8c6e2060c1ff91aab1ab04e0923ba25edce2c5ab8ba7803456c8487d76cd05776c6a028792d85429d67422fd7f5de5acfcfba1dc12542c7bbda42f9809af836cecf03c994529800282af4c3d0fd012b1fc45f6d01b21a785bb52e1b6576a6c81bfedd4c4977ed3ca7ecc44cd0eb5cd3da0e781bfe76bdc55dee121e810dfde06ef74581c11bf38affcd01001ef054b3232fccbb9b03c5df0bccc29168ec5695adb26818b0bbc16c80fd6e06df839727e85f910bc30fdcad0d8425474b1400f7010bb606e3111205b09295f017bde58d0064ccad0362811bae6b0d10231582196cde6f64567f8b25276e4744202e0aecfa686f32fbb56ca9581c91e526aa3b25d7254d1613c029a5d115a4ab399b89f08586d244b4c18dda41d2c06bb4fc43cd4f4353edbe9a525b5a5bba219cafa61b98bf4c354b99052d7d26fd47c7e933e46027ef8b4c6ea74d9e86eca16b0d8375f29bb6301f626a3b34f505f5a13283edc02f745dc9a7ac3a94e9852385400f7ea32f76e800a947790cd08cc19661c0c2a522bb143644da7e0609a8c85b9b9c485fdcaf183226310994a264d08d39a5f42756aa6828659a43c10101c5e5ec4e8d6a3859ecaa6fbfb4d316e5f01a9538648b417055f74fb6456fb62f1c294ac6e757951cce8baa4f8de93872132c4f0be372fbd97b6de91aa95266fd4e6badd9ad97cfc7e3709e2b07558abe067515c4f26d221248e4658d812fcef609e8a181bca165aae03f9eb580f35f150d63dc7c91f31b9357d1bdb1b1697e825336953c0ee0cc6a842ee949d262865388129f2bdc994ae8d86c0bf2e89a6f8de9009aceea3b7a3d635673b445501b32cd528e8e0cb06e9e744d073bcd151209a6cf6d96f0ffe03d221d9e2ad941bd57f2a73c281ad64297938153db167f53d3cd0c3eb8b9d9a102d76081ee1c2dbea37e671ca92a4a98c113686f098e56198719f129b9d476a4993b823edea10001545dcef644eb79982765afb9209413311ba28c88d5475fa304a992d2a29c07ef1c1ae60440656ef0a6faced862f0fe290e67acb18c9177008d2f8d5ce84da1deaf638019ea34211688da0f8ecef5f916856b3c831c0635b45dce2368c43a18fb62da2ef093204e4ccd5e5c251416cc2dda95e72a4225a8a8d050780c8b69f0344bf24767517518832e5909254e0ddeaf786b2283c2744b1d445866f30272bbd6356d17961305aaa84bf85768285b62136e41981379ee5171c675aaf42a52be71e28a864388881099f790a0b090c370921b4a44c5efb8f29ad571b1507fed47049045ecd5dbfecf497841daff47c361bc0d5499b3a80b5a299ae3a19ed2ff06c9e4aacc4a0035df7986932cc418b715fa9932425ecad6345fcd63995f6a8f4a959d3fffb37b316023ee241dfa56cb5f901eb9611b2ed7aaaf4ce6519dc1100cce586916f31c33fec4ce7049eb0af9778df8c63bb9f9179051a3a9f158f83a7236471e7d42785e9a3836c905d8c829528e203dab82c0d7d2ad1a95996a2289b40bc44c8e1b00493285b8461e5250044310b764a9df757f732322956dcfd29c6446bbcc8dea6bdfd250d0b82d9e1232947a01cc8674e9c70e17ee28c90e85eda31eebde7186c271c36248eb631ffa895f507807a7f4cdef1987e114f8f7623b4c84719d988ce588aba6b12f1347d526fd288d5f65f27bb71e4189bd98984ef3905e10d66c9895939ef98053fb6e3b0c46292fd8abb9c79a0508049176b29ed694a0e9535b4a25c42bf4a5d88afa89508aa482a2ba16336e44e96b34b2e3d91cf987849ed3671ce2c87c3857eed3a8bbad51cedbabf2f8dad9adf670858058d5bdc37c1021ebedc63952337e18e5a33b09d21b6ea4b836502f8522207a3593f4c269659394880f5d453a50158330a401eb6b4e0f371f7e447a1c9bbf608b34e8574486c8fdf3ed0838fe0aea7fc2901c2f91205988cd446972cc053b15100125532014f1f4c40d31381508a91778690d760635dc267c74a2584906157b4dee696ef4e44beb932949bfc4910085e0aaff97d009db0142e14e4eb7b07ccdda88d8840d358f8cd6f07d1e4ddaa469b5398c8845b40c00cc57b05b2998e49e7b47fd84c5fa120885171f3e2a0415078deee75ff9056241ffd417030834e1a5bebf2e6b8aacf0c612e5d90d53716cf3b2645ba8c250e5d4e403b160b63ec14587c57a5b55108dc4ca0ba1e32d7b526e23ffd50e1f60c4d817ed8ebd4dfa722f692eda8a3541084bc758fc6bfad34eefffc4f65f9fe455b79656fa21d3c254b1b2efb50acf067cde5f83f5c295d8b53f21dca3cdb4b4090141144c9ba95eda3b92f6d2b8d7f0d941748643cb2d76a42d81835f6877058385114856b265f314bad529ccec6c8d480eb4a4a27ba4d63ed7722579912c95db6c09d8ce74a283f6a001ca23211cae3e031e4299cc2e77cfd0a9cb138bdbae9744b279ffe514cdcdf7405a26075f8daf3258cf01bc07688dcf79ee130bea62ae75b621683d18ea665409051530c60745c15bb6fd0c1ec3c64d56cc538b2d0182e21be53c2aa6e76002935463d2951df6c00db316caf061c81058206e1e9f8a9206091880c9eb2038ea01fe85f2e69b7e8d6bf41793e155505d100bcb3a415f0ef4aab81bc2c209b651d71b2b4c72ea8a73a608a0ba759863544e90a2046c19f40e7a2cc44b8d44773ecad4fb675d646ed15ff1fb404f7442d04a0c94f90a8543b9dd2f5e6cf6a58fea908e94a5073119609098ab29278d3e0c6c342c7be803422d245cdc60968bd0b2b52a557123c3db9b915bf17a2300f46f7a8e9c975456537a5472ddb233d5ba0330a39113150d470dc930917802630c8b386e14a46daaa606c6bd908a71dac445fa10e530e869013839d68eaba99bc373a1c68f8ceb781a18eb4c717df20d6ad203cde3321e4402179251a18f9b094e89542378429cbf819d18724b095b09eb19f94a37b49409648d51939af69c1d13b22efe3dcb34a387e232ba82f784235a71279270a5ead07e6202979f277a5b9a433119853c75fb09d0a42267ea6501ecd28940c47ad506d607d6078e5e69bdb3b8fa8d7c5b0b78ffb59a99fae287db44ef88a8bf1b007bb5200b12a1e766d8d346b37c46fe53d02da63d840c31cc1cec5a03469bf71ae6f675a6c82663d0c90bfed794f1529069a0009c6454fe9bc1650c8168a9e10b626d93181a1514e325f28fe3d0b4c07400136bb66eb513ae5a3a39a56d6c695a31eadce7e9f809e72818422b713a1b968eaa704eb939d0740fd8d810b2270dd46182b0c37d27508fc2a7ed30fec8eac2f1f0f8da0b9706f4dbbf93c97f0df6bff8f125dc1f3923a0f2a9bd13871113c829d23530404e7b9b45da5170f28db56302c551023c33fd4e94aa6de0f7e3ad0c0634c1d7899116d5c1ee2e52e0c2ebdb8f3f2c1348666cba7fdaa7881a5abc3b3dd2cfd36b8ecbb86712b5a57f2b2698613eb07afe7bc24d8108349981b7323f860945928aa4f0d3890572d677973b2e9b47d31e0d0d11f203d1257ba9fd02fa0bf5dfcd70f1e54d31e1600640f62eca3782ddac1df7eb3ad8e7bf8322ee4e76dc99c57dd06985bb52b09304aa4232683d035fb997e9b8b5d1bce738f57c469ee1b67547e3b1cbe739d02d86830eebb6f44f28bbe2267543fdb1121011a6e4bbc25e859a504a1ccf73c1f83ac9f174d1de405661c4b75610b7ff6d89618cecb9cd467de98991c7feb7fe7154f940f74b85c96d032bbc5ffd6bb38ebf6c5436a2f67b8d6272e0a69da0d774a7c8df7d6e4aae5a15d27c63719459b32a7eedd5d83cf6a757cfa841c6f70d1cb9347032292c7004d088ab7199f39ac34b2affabc84b37c7818b3196fd4401a38bb35fce5a6eb23d45f53ee292a6f1fa4ea54791ddcfa536fda46aee7442ed8a298930af67b68810cbcc692ee96340f9f565231d8088612fe6a0ef30600342e50caf82e4af23b960e25deb3a7c77535dbe926b2b254eda26a7aebcd5e831ba2030652d416c9493962cf2f34568b436b949675a9c766b5e90ff39544d77d94be59ed01ac18349c5bf4410a68f5b91d36dc8ba2def2ad0fc94be0f1611c5f635d867fb760c38ea3aa0f2bf866a18150c51f348fcdb25462265d6b26de6e183eada69beab6c715d67f348b6b4a89ba75c3dbbc6e12582bd5e10a9533a55a5056ad1072cc1376893cb09273809ee761416b8c34a3b6dc840cf296069c54edf1e0e9989bdf64b2b1432b8f0be1a186f0de2a96550981fadf7976c92cfd231368880edc2ef11ae155f8997bb071b49f1047c71b688e9d469cfcbdf6b1d095dadadc3a8e3b58b458c46a2d79c8a91dc4c412186756162125b7ca1d5a0c9a40e882367d3174568bebe1cb0ccdaa3722fbefda24160791578a582d1b1ce0f4037949354a7b49bb79d19f864dd62e96522f3ece53a78dc7b9325c66fca224d24939800d048126949d63a58353faed178e85df8c567d39ef84625111f04cbfb401628a50b0ac43eebb5a207dde5fbdd7dd5c7a9ddb1a55191670f8d968188df5caf304306a7fa1fcf5c4f42f8218b1ff985df43ec0e32dbb14505931d036cc186f73cf998852e53ee34eb7c76ca87b74069d43c48a46f4ea580805d4347ac22fd05a5280d49c4063237676992155448c1ea3296f7951e8a74bf2eb4b0227502a940957d34674eeb394268331feed2c3c94024944ae22789794b244f836559e6072dbac936419eaceddb85be91003b851702884232e82ae1b86fa07bc2710259759bd302202a0e4480b028a0e900ddd1b1d4251f4118218fab416d8a44a198da682f638862f93c417e4b1c18eb68eba01b1e933094eb02f6170d7941be03ce7fb9f65a680b9f02dc073c9e5eb3b1427710cfe5176ba9664000626b8ff901aa70ceba50f84b8c3378dd013751aac39e09f33976642f498cd902804d0a1a056db7883541f7dfc7046fae6010fe938c988b164c58cc94e97b43f0c785085df5ef2285fdc7b670c1b312c0db8e29fd1fa8108043aa5dc8f4679a0d6b49bdc5f7a9221fc99d80b75f8041208d062117fef46c66bb0cd454063224095affd02172a155683532f1e6855cd0281a859d84a4538b21f45ba684ee8866fba18ba2e4d5d79c08c92256447e33fcd742483a31faf61276c030abcb226436b308b9feccb82e79a6712d1247f5c6e31588caa489844d7f1c241bfa71001b771a1786610d9a57657eeb10bc728f406eac48cf40abfa339979d2a65979deda37f403f72aa27bc1e56f92c35915e9733d854f58ce06b1c210dbced00dc2cc098e3a9fabe5b95890e56fc7e346d7794ab1c915906061c90fc09d053d44979134c67796493432f7b6defac53d07ae33b4a0b926df59897943af8238a88e273ab2d57295cdcace3710150b18b8b434d2a9cfbfe594856fa8cf6008c930ae54f9b4ffd302c808ac6511835fd3566bb9d6cf13e7d30241e30adba399344d19301e5986a448c9bb0e94890c106008918199e7042b400fccd009cb30bb31d07c0ae46397ea26a7de117196aafa22984488cc7c9b565108212e8c87640551374853e6c9b7f8eac97d9d30227c0ba35049fe12693120408969d2975fa1ad687cc6400431e325cf183003cf58525dbbd67e5e9ebcdc264ad9de4689b3e47a0df71fd30b5821932cc122d59ae795d1cad625a492f26a1a09efd8076a34034cc0b4ae226ba566651573af560e40cae4f39d512f972a8e4faed028b762d3b8d5e578c011d0dd193a701f07d1f6dd966076afb8816ae51a930c0f0ecfe4fc9bf1d12450e8788cb5c84b4a0cb15a0312db8a3c89fb45bc29300b6c35b58072269e60223ebaca178b27fc93710c147d4edeb5871f1f76c04b56a27ef3038670739a5797ed82c6697fa688fbc0e5687dab7ec0154d65c40864ae59794f04632e1136e17f9dda4fb88a907522be60543c2590ed863c30882552209036a3ba9f7ff315036afd086a58403c600402cff2c102e5fb837dc912895bdd1dfc6bd70f394f7200e8731e38575d0c1b231e16dd5e4845b6c1558790f13ea503c5c8e50de90b756c2fe92f55837501ba504ef4bd5e0423ca9ac04778b7ee904673f03c3f943679ff147df1efe3540f490c6fb79220a2fb6b7b8fda7ef08e6fdaddbd35fe1f52a1d4b8968fcca96a3e7e99b56aa6504e28570b13e0aa8bc5e7ff98c5b3e2788ea5239113399cc3a81339e4e67e75359086c6493cc7bba654f82872db22c7a4b7827d51eba461e320e01b4f2b00d808fea301094f52f1092f7451c7c6c1d24600af5982d7670f62b61031e813e32371c0e4b79a7ca00c3a80bfa93c5f11f5dcf7ed9c4d81624d47f834f7c92daf77de0bb52866c9393899309e56de131898eeea26c7f0551bb8157c7b818ac1034490bc383512a40c14eef6b0f01f192633d940d8e20b8b6d724def5f24d80e1507b65392842ff76a63b9633a1df7e7377eb1213d029c6e6433d132093d61b5338e0461a5d787fb527d4afb94feb2140d0f2d589b8189fb58a22dcb98f8bd3850c055d17d1dcb053b682502fa069dd87db7dd35f45b7f3e5c138d945169ec65101bca7dc8df2d86808f9673bb7586873369d4ce8b8bb45c20e3153a4d0c2383e32715bb1fa419196cbc0425e32c92d4567fad9c8563f8b7816fab32592f643034f17e73d40915935013a13db9a0cce19765ecf196f9010f28da935bb9257a2feecc396dbe7b8615eeadd1e33986d47eec251ece7d2f766a65614e2666e9fbd4f6707f7571024e9f520aa08095ce192c3622ad994fe31139225563a670da99cb9eff5bba867aec82b2c8548b5f06d7c288fd783c0fc276225475191651cd5978b9ea2ee122565f03b1bbf43471ae3a1f8e7c5f6c72d97d8af78903fa4a15ef8343076d258af585039a56fa6b553c611430b3963e0aa0d22824b8dbf081fb27890121e761d49919346d603ba2f4db73adde50cd045f0d3ed4f23fd2625b1f2e67863068168117571ae516277a62134fbc9cf36e7a16647f902dba7eb3dd063f2b05028bbdb354a2192e5beebe0ce3547c24f7220b20945ec5291c6495af86ba82c4ebedff158448a687e7eb8a0c8aa6be669c80e0d8938cda04f1154ac5cf6980d00b305373f592127e453f8efc0a564a86a1e1ea82cb2c8649b7be2a8cc5059cd59ee9ca03788d79bd67906d9e5faac2ba1752f8d71fc00ac85b4d4362640ed03ef4ede7bd3d8d48056dc7b884970a0322747cc89b271f4002e8e8d5e3606f3e202722b210dcd200de6e76bd18f4bd8aa3b0fdce775a4aeadc49ab8fa33263814f3213cf06b3c94cf28165c4714cbe36267340455a7d10c89e28cee99b3e73f03b1b475cb7368ee2f9b7ca29375ad5c0149af5857b0edc6505a20613b70639a0a0bde9ac81c346e80a8896f0366aeded9ad0091258269bbb3b7b257bf701b07f77e37a3e7823879d788e3808d87401f42d5cd3ebe8a1ae2e559ef2ed23ca100760d23bd924c05cba08be7ee8837088f529c321848e3934a2d5ca7c0d495d0d9ce24f3d3aacd7e7b0fab7b6402a6e966b4b75b6020184b2d0fe47ad01bd0dc5498ae2a47707d876c8f77aceda7e64f8e51822571a2adfe655fe25abb46dbdb95384ccc20f5141ea4a949993840bde1ac259b0becd7463219b5256cec370803cd3c9370eb34da0c5f4596b569614805e420cdb739368e324862b98b21c914b063372116f17e6392e0b316cc664f624062244ecd4c422b8819e626bd8fef92d3e2b043182b8cf764cf0c9d70a082c89f49342a8e08c5006db0216ae82ba62fcdf780a9c5d23c629cc7945c41a19934ac57668ce8f47e6c0d94e85d9219553591f9822c6d85c2d9cd8b134fe26a3327b3f7266a07f896f358fc33f3a6950f6822b4837d3c42e638c184803a1cbcedcce6acc9a6053693b5f8f32fd58858816269346dd9a2423fa34a31611346c3e557b10c946577b4e923390b1052b071f2b963ef0ffe025e9151b318c16729dd8e3ff039dd2b7897031b3367cdd96461ddfaead33741161fbb62f620a92f286e2c0e443d1f5427c452d5a04d61bd6669052cb3543a8ded247a83eb770170c387e88416b616d9add434bee60a2a105c8f42df583db51b4980e72ab40ae70f8d14903aea075574ef49e0226a3a90bd28c09dd559e2ae794f1e6b3e548eb991badae70edaa6d627460f27478526905d1e188d2fcbc8263716171a7131c8fe97e82e00a659ff182ec45c95e989eea2695faceab435cfb611a58e9fc6f772b0dad7518c053f782579a12e4e15bd9544dde97852dc380c8c903f6057a02371a77cd075a900630b63c72039ef386ed2110ed41702a84b841eb94afad1c3c449e5f3ca229cf24ae3b6f51d5f46bd687810ed49146307950bd3de225456125990adb44e36ced2a039413e003ea65698d647bd247d374659e7341a0a347b4302c11e39c2f6d0e4e0299619bbdf98eb5d1dea6d36378b93533e9842ab250ce8e8d7c14f39a633c7bc50f07815a3b4cdb6fb2d2002a50dd1527edc84c34b0d366a85b362326ef00e93cf873f67cf25a8abc272385c806354c343b111ef55974174b90625b08421c295c381d9ca307572fae626252f47cab69e2ac3ade7c8e3510cc3edcf4411bbc4833a67832f4a497a8ec8af67d3f27399feadd583ccae2cb7eb2f168d5f815089de864c938e5c4dba3e002196934a43494e9b966af1cf1f946f616adefc0897157c2e6cf3889545eaf56bb20db8a713c4045519b88668e21f323e70cd4a2b0b501c5024dff373440560d38c38fcee2df5b6ee0c1b0a2d43b36c28db99dbbcd4b6a2331820d0a01f0e73238ed8e5510729a96432da704f221cce18cffdc4280c0de75c3d459dda9828ebaaab97e7f38e4b9f1fbfdfd56d6c8fa2d389736bbc093ec0d15225bb383974aee7e8d29a8aecf77ecd7b36b8613665f785fe2b97b6683e8fd9f0b0fd621be24cad6820c124569146e3ff9058cdb02cab5c514af0d74854ead8844124e557511563a551547089728c129e7ec40fff3d855e058fa006b71e4c03c80c093bd1c9375ead66fc1164fec71ae91991e2448c60b18b0321b4d6639209d0646fdfe25a6be2cdf57329235518b626142d79efa791ea79b43f0b0e198edd64f61eb8051750fda64a46634b0a0d45383638e503e0489f6710480b9550d2c1acf506fb48057525b506a465dd2ce840c86f71d9e8cdd6be9d1011d670d8c13603f5ebad5a375079163d497462c92f4012aaebc20aeda3cd5af9445235f945ddd4f9f0d4fc496627a0318cf8e1b1406540f526cdda97d82f9a1008b16bd83d6b4228a8b7270fe37144f6d1316faa9bb39ecf2724efee1e8929508b6077abb3971b9c0a1144d9f4be10d3a4ee4bfaeb35e8c90bc0e23f19c242c3fc3880beaa632c6ac29622a269fb95e9e7b56c8718b459663cc3b2474968eda766749221dfae1b3ee1528ad95d8355af51f8d8de8483203ad86b7f600d03238a9795800e2820cb741dcf4bdf6bbc6bd84cc92e83ecf3f921e4dfb95746fd8f81b8842369050f8b14a42611f8b60180b17a73615a5bc62b0cb9cbf6701a859d44800debdab5089a24b173ad01dfabc2e37077137bcb2007f025ac0c97f280899a9e88302bcd86b821d1b80c5f4974e183f3382aa00a8979803b3d95adbbe1cfa1ac45615949dc639d743ae7682ce69b9775d17a88fc0a026403c61bb22814001c8af663e3aacd415f7cf03a531d2381b2a39dd180d158d168f483dd90d7057b604107033eb0e3f8ed0e12514ece89d8cd196b0308c4bc78c4cbda566ae3dd975aae6be68ec89990291ea54ded919045ddac4ef22389ed1aa0f12b1ee4c03b8efc5d25684326efaac11f2bec9d40162992063731ac2e7e0bcf6d844cea221803346aaf489dd3532694d1a81b6845807b7a8d0b5fb1452838e9a6161c2d3a1ba47594c214f12f3cd7495de71fbad8db84b54eef2eb757ddfddf6d9a280d1b4377e77312f4969247e6976069e8e02fea2739327082db20684d1efbeebd739b6af2143bb7442ffeb37c872e19716058c9d2e150c9b31dce56e9f0db566d0694492e79c33403f9d17d02113cfdbbb589ace91f0a02720f1aaae8c1c434489030218c68a08cb737dff34a31fe903d6ef7dbdc3b325e03e3c3a7825f4df1964c3572e3d296157a0fee32841ce718d1585684b997bf38bcaaf6220770eb2efc531266d7c80f143db1dc73a92bfafa1fbefff5bbd57fe731f08f58a52d1522d2fcce013f9356df15eb14a32f384d27974cf38a77056ae11462c462f93164f1714463dbe79f912a349b6a017275c47eea4241a60d3c030f97241aee7d7d96d99d4e179afb3040a8050012e3f4abf8ba7a1bd90d6353d8828cb747cc539ab171f929722c38fc1baa9e5c8840a7eb2f34668a998b6b62e03391ebac3ef730e5348178ca482343e7833360672349b64ef9822556e71da7f6381ca18fa9254c36fccff12232446be6d0274f40d23ffeaf15ee014eb2f115f02c95a95d818922217a23a85857fb87064edc1a96c5888c1641773954c74dd6b16fc06979756dc5e2f250ab44bf4954ba0f6d290e6db1f431e0c159e5026e0fe8090f747c7015552e7de9f88a8e5d2668210b62731e65b55d00f543ff28d9e0b925db89b9bba4d2476b14d27923997080c0ca5adb1cedf1df7723ac8487f6a4b25d537713a9c3c49e6aaa4b51269f092fa00d4553e00536783d416248fed70d961f065c60d2530da0af9aef37a41186988a58af099750147506cdeafabb345b871ddd41a0c1411138cb84ecc19875e1cfd7c6eb4c8a7f0e39f943d00b469420b8c782ebf95b88de173d1ca00979a20695d9e2f51574a9a7d2b88c5534002acb1ffcc5f0b7ed8a752d4614489110a554edf570976438c0f566c13f205cdebb2239a3a92f38ab88c0c41f510e7312257ec7f9c28513a37443624b932dc42b1f612068700c9f8c655476486604d8422a4623fb9c84ea531b895166d7ed551ffef163bf5eadb9393548b884ba53880d8272d3c1baa3c19a75a530416095dc0796d175db8b54602c3f24cf34d5750b34351310ce66504662aeadca2ca8ac8d1dbeb3b3cb6c3a435d1f7e5a83974b205a19e418cc5cb709bc553c6dbd9532b4e883991b902067a633fe4a7c55e310054d5a85eaeeb7d105dd35f7baa17c9910fb283b74936feb59ce007c1c016633ec81c6c445e6e01a581418f700841f41b286753267ae3cc94b3271bade223325a59a55ec79bf09e9015ca931808f41379a310de0683b8b517e7270821b048aa85aaabc11a0cf6d6eaef3ba92a53f45494a3d8ce9699b1a8755e4433f2400eafd891a4b9004d422e9f7f69a45aab220026896d2e4e25c1f19620e4e080c83246e1dc063dfd43abc33f8ea94ca4a9cc3ad91637a1b1af47074d12789102376c60ac84634ccfaef71b2e48f67fe4a9b7ea3435a2d7200555801d723440188998470289a9d4aaff19f2bead2437e2dc976518e971084d2c2daa0e36594e338f8bfe6c04e9cd1128c4b9ac8937582040b83b7a320d4351eded8aa724430eebcd0d88e992b4cc2216d42e59bf894acebb4f307052f0bc3ba0ee9b709971ebbdb4d5f546baf36e869a811cb6414e4e176078bd699183cc0515773fe58a2a52cdbb85615d37db68c8b6b8db0318a23acf36bc0db18878dff881b4a2720610db3508b046118b02d2717f3c3e8a93e59c97c488873f7ed5239551a2f0576ec0290c78ae0d4c267245d0bd3c9323db6de57994b90bc50ab1bdf30fa3cca6f83a41333e7e14e96e87174e36e80019d036f750ccbaa8df9fe7ae8ae3a0a09314023be2a140914bf070bd3e2b64bf918d9499690054502f133320af031467e1988159f34acc0281621605407444f9e31366d3654b5c83d5b02854a6318add6ac1d8fd4a942d4e813e222dbf32b002a1e2042eba9401b2888e621571192dd3748670d87d5d737793ba21d6d6e12c94b034c732c1b2aea973d135770016d40630bf12e085f07a1a05d369acfe3fe2267ea9c6e6d2c3438f602af08de5b3e88cda6d3840df2fdb794a30d165715a3c3409ec0a94ff4c416dd8571e7f82cde1cdae90dcb000eb21ac8b44c88349fa67b05d0e07d80236ed17ae6058c4fcca56ebae528e367c1594c0e8b78477b72d084b375c0bcb5febb640a7203125377befc73b2b88c9607ffcac20e68488c456f72fe6d15a1bf7097123027f626b4251bcef06a85eb00da5f80b58978faa1e5e0364050213d7b4defe34d533c60062420a04e8c80d5b684bef193f7aa2a590c42ade9bc9b1184d958b199c4d4b6e0eb487c82029410d3411cccde79b47429a04931717298115149818cb0cc06189be8d5b2cca2b0f1aba7a5945766a740f3092d31eb679794ac532862e6122f3a3dc077a6fc20c214cf4ec93f53a50649f8cfb592a41227c38fef6e0858dc57d08fd2d93515dfd12fd8a05095eae91a2f97fc65de0a14adb5f89465f4ebf8a4ac132afc217ec12d58c2a93443ba48f8199d01457c47b9e7ac9582026b10145deeeef2ea565e4039e37b6961e71b3c032e3eb1d1bca617363b64528222a5c8f48d3915f40575bfad01f94faea11ec40c68446be5909ab11d7545a13d000017f88761e29b07083215f2c2bd74a2bb2fc8dbc54718bcb0007d8d3aff7084c3a41d2123ca7fc70bdfde176dea5ae5f040f311ae6f142a991a4ee7b1edb5400d61561f98242bcf4f9e93f11c09c2d3b6c362f24b97220b22a04236551e84a5e2c2abd35b1ad552f5f77ba6c83f0a55e86e75c1ba73a87fdc2705ef1029143c4620bbd014cdcc71aabd8262fa7de2c879232dade70fb5047a8ad4fbb05ea0f0e89e9cbbb6555ab82235870782fae57365ee987b8de86cc7f6edb015545ce30951ca585aafeaa44cd56198742c5d1108634e1eae12e80be5fe6facedb65fb0a559e8586961724819c63f94241262eefab0e017fc2a8f8d78508d2f8a63b33c444644a8c9f45e7eff2320d84bbc20d2a0724a176db257217ce8358e18ec74f05f77b6a734b1f31f641cb6a4a032c144322ff919b9c2649088a82ce02812214fe0c5f68ecbe065e0425025f5587214386cf8fbef30c55248392f548af6543a167b15d256fd04a55a22b76b1671cf8b769c998be6b33d6fbb63dcb1ed06f2faf6b96b7f841658be2ca67041e1098f3002542f6f5c64b07ded705c3cda01ad68622a9e68472a308ea2a1d5139d16976b0c23ab97f6fb495779f16b403f0d1657b53b4787b35e618a0781b0cb8cc93ba727a588b3aefeb90ce3d2af886d76b3ccd7d984347d69387be000774bb9ed5c33ef58fe8a4cda572f551b825f8d02c5915c406d1ce65d56fc3b75e04107da63a69f272cf37a52e1b2fe341c5b6d600c787a506506f71cf42f093a1a2ab68092d7da83a39d6f1e5379657794c990fbf11506542c3820e52ee370f46e92a4f746af0abf0a634f02ddae2f447da1bb95de7f12f03a986f0d1d597d3313c13b89f5ef58e8eb3aa752d496dc09deab8c67106fcd335236eb421238b5f4bb21f5511cd3a60933f1243c5dbf96c31a16db74e0b545b32ee775e13994eb09aa71423fb0e6abf94a31c400471d469dd0b97f3a45c39aa9c6cf72770fde55972e9ceec0402094c13ebd9f404c11673f7c685ab42d58cb7421998205fb82a13b20f5fd1a5ad08249fe027d03b615a3483b85a90f0ec1e1fa4808d773ac1c2ebcdf64eb076d29cf30b11f3e4dd5f3205691f85b8459e7970dac3484b6cb122ef92e6f32d30ae862f05914f45aa7fee94553b3163cd424d2805dcaba4dc0585f6b5610137e24a9b8659197a7c0b19a887cbd44c588ab6dff6036dc530e18ecd2385fa3901c5ac669dd51c7a8f32b3c508cbf19cab173204b6714884d6d763509791107cf8f77319d9723378f95d1e088f69fc611a2d77313932c14f13453efef2309553af9d7f0a410948f32490e1d604c5cab80b6852144083b60ab3c3f923d6ee4ffe5dd715c1bd7743c097531ad26b4eba14312e00303cf4f97f15135c249a6405a9d303e3b2f61adddf18a0fde0f73606d51b32be437020ceeedbe36f1c417b4913508ebfd9e4e09ebfe8fae66d132eaeb8a5e014dcf25dd569648f8538d7698bef655891e184e0c630ecc541743435b1f59ed537448a5c22ada021d142ddc8f9baa10724491fde9eae5f81f98aa3c2fce9e82df59a5d3f4ed946911fb29e44ab7c7bfc9806563e0e34afc1743aa31273343db5eda8f7529da9dc7082f1e82c6167e1f6ee8bc44521727af5bcf1917e8e4d6181cd0c35f6d0cc7ddee80b9ce6c61dbd6f821b09e77f2cb76a654009f8de18f1f216f712372b411cabab8e39c8266c58b3e790e0d05456eaadb4d017114a604bb4e52aaf25eaa26069a8692d25ea2fcc056929d60ee2de1f7825fb8d2e60b5a106de00e1245df3ed3f3c4041127943b001e532463202b9fae89870f84224a4dbdd2cb53ececa95d0c336b392b249cf782604f4093aaf1982c5ef9c3f52f43afedfd84a528cf6480d22fc0e68815a1e863309064372d8e05585f184d88986054cdcd21aa3475aea56570195855e7aebb9352d6fc5a19b88535313fc02b09fce447a72ca7122d1539ae47e1cc7175d7676d87dd04300af82894c92a5f00c929cd9eeb52c5cc2f25cc2b7a71888764e7e6bf599f52aff77b817f431b23077156146646d57ea04ffd676e0dc7d614607e62f543b1c420c577712a75983dea30d74613925e87b81d68a890b8b5abec28880004eac63ee2f281fac5c6900b893f3cd8f063526d156af821a91d4cde015fddd92d29e1436d781554c6ec68d04906c6897bb06eb4e2b444321bdc61ccfd1def3ea7655aa46888e42f34a18cd6160c80000823284ecaa73d40e2025340d47a3af2562512e3b6e486857f0e845e40635400e940c1d132455296a239294b4a31805f6d0c005cac12f6cbe9a7e5bdc68d36f84b549602107d7aa54118b94319ac1edcbf79280706cdefe33db01c98225c9bc4390da58d0610c5dc68f310acd19bc63464b4089fe195ea51b2ea37b03f7ef1777eab9ff7a168bfa9cd5119459733e4c1a988fe638b64f5b86bb2050d885584e8eb2649362a7a8d4277d7820911f31a261873bbfa6183d50699aeef1e6331da71b1986a3524d055d918cb17cd8ec47719565719064bb171d370bd7b2bfb886997a53505efcfe85ca0d650bb3436eb63b5452143904e76084e04f84dc61bb08fc7a326b970c63183a28650299f52e5e9ad9d188269bd09dec555307d571e6a27c3510c9a043eafc5a3462bd14121588260ec11cc512a8cd46b7849e429be31ca09ab6fe588d37c9849cd9597dde9d51a2a1bf400680595bcf81b9db492999f2768f9a138763693c8a689850814a13ce408f7e3211fc7136c45e46eea9adbcb8588df86642e02bdd8f7703a582bb94cb1455c7011d8c97b90ba798ecb096acb299898bbe6aed725a717592b5b93cc84c2d19f7952387a610e0a11e74366781a2898ee5a0e04e59fb428d14984a6afa5e11b18f0c10a7726424727885542f945221a73f490172472b87986d187154fceb3af0a11730fd344ded9ba60ae90149be21c6a0ae274002f4344d0e1b66879375c54fc71df42947c0746b3700fb3af5545f09b9d4895e7a0faab188fd01a3da4d38ef85a8bfb4fe57fe2a0544cdef3629d88abaf8aeaf3ccc6f1793c9f5fe22076482974a4dd66fe461d8d09cca8413dd5b840c50f9ad22815f473f6fa8b26032c16ccd13a1e9036d3eb7798ad3d180269af9a769887bbebd85e5b0fc7b59c0ffc42659c91a9437451780fea7b5bca036e77deb01bd466fcc19021aa12832ebac2804e48faf67265863da82d3f7d366a0668d9f51863c8cbd467720eba0b69b8c0dd2cb1045c8cb2c015cb61295fd1bb09fae636b250955a028318692372995b23dfc83521c11c4a6b4f2bdc20511f0fa76b2ee93d89c820750babe164274cf8d4147afde4d0da23ab02e18786261edbb6aa2e5a7a2ec8d9d79f72fb001bbd6009e68b8ee7c63088618a392eb424af6ab84331ddea1be805b3726aa64487ea8607ff94819ae8ba073b80cb542fa9a5332dd65c17db7e00cb71aa02fe525112b6e7d8601495be96786b2042d5f45ff719966f886b1574b50183127b6097850fffb81c512205114d70f47f18a12f46071c7e92c8ed9756581437633ba622002b9573a239f4937450f52112edf2796e7c9ef7799b5e3f892c428763023d99e191aee4ed52769af65fd7c48e3a99b43bf74446b767c24ff239699866a3c229a8b0b30a191171941773cbc9bc55f91333f9bb729dffe17789963f1398fba4cc4c591f24c546b7521b455cbe206a43984b956614f64813c3d31b7d9e51fc1667ae687f0b5f6f551a702430fae83eb192f348690a26911881be512a727bc03794b52aa8718c3cba37f0af45ac16e17254a7994c8bb44ba1c1e09533748f493d7360f8966531ef42d4146debe8c5ac59a667fb8601c6406cad4ed7f4e9d83b38feba087ca9055e7b9cc6852819c93e5a408b62276b42c9dcaf455a27b6413494b1523791ee8ea479eafe258506cebed1336647c16b49ad0e5239cca303fd588ae718714952b1109f09dcd27cd0e4c903b3a10e87dd8bf8fb54ca1444f1b480e48fb38777d8e3396aac53386933873cfb3524894318c39d8770e224b4b02376ab3791eb640d9430795f3e2243dd4747804ef11a76a0a3f01712c91e04405478b5a0e75ae8a067aee598a9b2bbaad0637a998ac8e21622f29561d95dba8533c4b1b182989dc1539462e274c1b544bf7668cc21c01ce7051dbc6ee46d389ba26f78856393779de814b744d30f10cfa048fe5b7a523251d74dd1ba7756fa7023a3d482d37b208403fa2f5209d147368026904fd0c9e2492688ab24a995cacb8611d42f95576fd837aa6516f6169c1b0c001a27656c9f9755b8ae549f58c570aaa8b8f7c15addc75613bcd5a968b69ad539df789328803bd51b07dfcc28186234f0b46f33ee7cd8ac35ae162dc146a9d7c8ee4ea10e528befaa57bf91481ec155d3f038539ba025a551fc4d14e81bafd11194f4ec902fd0dd7c7692b7e68396a9c48d15e2185ccf8b1a650fdf40a855b75c613f54da380891c1a0ca83afe56229b410ae013a52c00e07602f8a6a1fca80f2b39cc877b40b1567e9e3157be457ac03ea3f9a598abe1416739a81bc300f45c234f5d6be7a879ae5fbadf333322082c8cf586ab23eacb6ebaaae67697908a675d55671a43ccb2e01ca2bad0317377a21bba15d92583378a9bf66326dcb086e456bed3fa482ee927e3ca86e3bca2682a314539a72d43f61d83836b322933b805dc321a5c1b7530bbb67b81bb902670755abaff43f45f0d2e2f633fb8759192a69baf9d9371ad770cbff10e46575b4a2a88f2bad2c3b8888aa36c5a81a773e6aa23d08d2bf37c4460f16104465cdf2321fe148a7c816fe8079a0ede8f2407867bddc27095315bf6dc50db69278d07958d0f06f1b9a3639e9ac3a3f6b457b7b72b7cc91d9d72e2f9c0ec7bf94dbf39428eeabe26dfad716b07121ff345634e0ba7908700b3e377eaf88ec33d8069ec1ea44fa0805f94e6c29509ef2ed75141a72220c45620811d549d1723f729a43bd06d971c1da2f8227b47fcdce2b6a0329e654cf5e1e3835bb1b67a1e24c9f53bfcc786ac182f87215f4b2b22662f29d2872da7cd48751354c4bd9d38f5279833226fb523f40a4460d292ac8ee39ec2bab44288a6295492662e593d4f1eb8d9ff7e9c830bcd266c46369dc51443dc2dab359016b7c46a5ae5ab3629bfa2eec5802e76052c91d57c4850a8c11f8751eaf7e3e35f22578dcc73c8906a21cfaca576d72c46ea4ce206024379669987fb1a373d8683e27f0111b1e45577ca697724690615e9ee255a9ac2b9028aa95749717d7083aeb262079196ca80118af70544c49257dd29a7dd91a41954e4755c738ada4dc16c198ad5ab84383f73435719b183504bddc008c5f3045a64555fb8457389f856612e60b4e25677362b80b2752e13db375cd15fd662b919ec52b3bd01fb29ff1f191909af4e982598f2c23fca4bb60467b735c16739896a8d44a546565520d02a255215c8a9d60834652321e3f4278285a2bf1e0f38632f1ab720248c9bf90e4a995901c0d9e6df7d9f12f527e26dbfcec8ebc7f8c881722803e5a0ec4131de9f43477b9abd8d4ccdafc7acefd75541c763831e1005ecf4f9566164ee56a9250531a9d524544ece3129d9325a204c9047ffc49185ea5005aa1e549940101cd3c6c4879d63a15fd8b727a4248e517b1a13cf44ef4400eb2b1833fea117ad34514346dfb3bceeb6b43b0a740c1d8470279481e70960702bdd5ec609f9ae8c0843b18d12fc6eecfc7d6602e74778b70554aafddadb514d3de2df1b7b68ff629f956d487d3359da48178b5725067cfd5d613ae82d25c607aed0fa521cc801bfea4dc5541f851635d51005bfcd462bfefd9bcb3e61cc13bcbe68c7c65032b616e531a38dc61e63bd2a0f898cf73473095a19cf56fdc048292d5aa01052287b1c74b0e4ae8143345e2b6845d6c7fa8d35bfa0e26ab82f81149e993ee4784d170b8c4170b5c764c9ef439a85387843c5bf6709c85c2f489213f3c596b8f40945043a53ac53027565b93b4ed61cc17b898edc262fc4b68a1f72dcbd3a436a9a852db776b0eea1c28e2dcc21d22f44f6c0668e1516609f537ef39d74176ceff84c35e44d0b84dcc224da4d8371cc7e5bd3a0babba2d52e1be8ab7cc5217a25c40564ae59fe8d0dc7c7d7f4bf5754e46e3d792611369e48a200f81b14a5a63e46e5c1eb7b60547c20dedf3761d0e0e110f9230a5b18a5ef5e1e737889ae0719358537e9b2fe0d366b081bd6d9c1b9a3ead81d601429ddf688e1f07983ae80bf480384af75da292dd466bb2cbb9cd12a45dccf39357a80e52a90cdcc37703e43f42ed43438b0b2d1f5fa8c4ef696573a3c12aa410d24bcdc9e800e32eb637dacaff50f6b664fc5297788d109e6258b6e8c7c4475405bc5c116bf430e9a78d2ef718f4629f17ce43ce80fec2d4f1d41543503193f49bd9bc216ec482a83c53244db21ab6d9215a0a988878669e2ec0d011f9bbe20d47bb7f5a23029fbde5a9c3cc3b1b703c0f43cd66e678372447b6a48701c8375b83e26de3186526af8525bc12f6d6348e86068b112566aa5ac84956c0bb3a6e487d518bf8d2e48d80ed17e1b9ceb241cfa5072544bb0c5e939da5d03c17d30b746d6d81a5983b0b27d2ae21aa83f99c10a0bcfd34ff30f391aa2a689091c12be396162ea7d80177344bec430a6a297e42417c9b535b3e6d6cc9aac0958b925aa3116a83302a97da0f109fd88b01035629912da5dd351e3b582d6498f70b7e2c69ec886cb7f1252b7fde8632f4f5d7dae636437b45d93bd9fa9f24aea08b4953610017c0eef52e9011799bf115731805c139272f4187176d64c9debaa5011408fad316edb04d5335223b0416031ea1ddd55e118ea013e82fc62e3d31fd866c02caed6c66a594dab6535c26aec55e81e30893792a76315436274c6363a4df5a251c04b423c498e241aa002dd3dc3d89130c6c88901002f549714ba653baeb35f83b9cfcf59763b5239cb6c22d6745ba8f2389fce932853bc59c14db2b423126a93b4390f215196bc7847901a2a35031268a99e2573b10422c2ec322018126d71fb635a63bad79ea489801f23a6e705c4328655e1a5cd0752f5470af790e6b86d0eea77f6985e11ac0e19b1c57ac3b71058cf86097f28f0f2e97552116d2970b3b2ecf90f0d4d8fd29144ccf4176477252e04cbac54d4ed87377a975afa17b1543e2f90860562fa02fcac0c6ec3a4ecfeea013ac45bea2bd19490887de4b3434573d7a32cce478d8f512d80291ac6b32ce21ae7d33a18889e7f44b2d874b2eeebf582b2a3374cb960e2199f672e4f7c5af89584a78a234f5b0e1084298bcb9db15554dd88d028a2e60f0cf8027328aca228311e7d184d5431c16144aa88504fbd501ba3da84ed23d51a0192f35ae12c8454d00be2c3d63e56ac5c4cdadb729e04e7b204258d2e9b21dcfc1bc8a7444436a2bbfd526d628bad472821f31052e8505b0f653c39883b4b42db2117746efaa999b5bbfc8e36db50c5a1292d34246460b343885d8836c2e85352dd2245fef35e2d53e66c3b9be469011520be2fb12ca2509386c1587ed3ec8aea69f0702f726349eede6ce164d24a4b1a462c228fe1728870f7fbeb70957648f92a5c5ae1741afe9d48121ab5b7ab873f0c73f6f9fb5d924367e9739bacef9d97fb2a43ba6de1a54311dd262c7497ba97aa277bfbd07033d77ac5bf550fe96ee2f0a54115f1534b370125ecc85c785b4b40e015d44aa1b1c1784a77fbfa34da643b3081a38df2912aca0e42715b3987b646f5b7c9ea47f9e59ad746da826990458686078912dbcf258eaf629f624b8b8d3c91349c82088a20607fa0f502db2adc1136a7b666b351a831c90a4e511de1424e0c0ee19d4f8883b3769f471691cd709dae926e3d82585bf98ecb32d116c7cfcb285c52c10192b0a076691fa49a6c745d594e9a37cf77b779298db3830c1a9627fe9698d23f48cd6bd0d47602d16c3ec2e7e3ce707a7bfce38d79ac5f372f0bd16942240930fde6c9c4b55416b702916aea8c9829974b53b8f054172c0a5a019a0e71272368b116c015d3a1807d339e41103958fc569df3d77d3bad543996b3c124442a5de5bae99ed1431092808e7f2452f38f782b0ad349d0d200cc8d03c3151c9c6308880b82af8140fee2261d27168a839e15026a908c2a07bce3ccae076185ea7149ac6bdeeccea6e571e3a9416ebce3f907c5b441eea2aa8c081557deb06c3bbda9e17a500101ce4ecc240ebb14a1b9cf892b93d08f0d2037962749a5c760d094520555a54186dc529c215728a6ba632844b02b31687841de09af0d35fddd67b9877b2ee6eca764aa07f97c98c48f8047572dae223901316b57c985c6376f83b80743653fffc73855ee869251fe0e8310baa5f49f2be915ee50afe3530a3ce9f94c5c3c8ccb87630423402acacb4cf02a913b65bfa45aee7e541951457d0f9a0911273580d78d6cba646975e5f29cac2aa592a613d444bf0a5d396ec28c46a8859fe33f2037299ae3d551d66f0673e19298c3eeb9ecddbfc876764c0b039c9171e213625f0b2ab5ad0bb5af0d1ca6a1eedc913061f629a8741353ce6ad3019c7b25b43fd76b5ea81536a0be456680dc66de76821889412f53e2244b22389b949cffe81861f6fcce2c5a549ca9e0ba085ffcc43c804fbb8c36705f9f0ed9d9f2209a618a5a8a32174840373d8b490d7a52bb7567f3b1bfce57b6be4f9b7c4f28e50b0d4a25bc8c0f0565679afa343f9492a74c44564129a79df166c1dfbe078edf259f1cabac9f9abf1ba1af2c9500dba66562d1457e6da5c22337182c318bb1562550cda440f843e2bca185adb4e0222f97bda09f7aebea95125aa7207e497cfdb746bab1fac353966c6002a88f9e8ee9ad710e04b756ebabf182a38677739525ae5b75926c398ceaf6a6f693c75810ecc99270ad8fc5d7ba6056aaaf4c920346707a8078ee1376e22b0e9ca94eb09d6935811087d0b1114d4c4c67544b35cccef54afaa24b459982bdc5c7f4e6f7ea7654732d3193bf9b457833c72fd1881dd29c5f1b5d1325a61ed0662cf39308d27695c9fb847caa5cc7369e1a2f684cb768a3a6980fa6e87a26ef370c8607e74ba9851254e8ee919c42f4a469fb79437027bbfef99f8ae0be0e2cc42f9a1873402df2e0c7c9344bf83906e1c92cf3e164c274e2418c90328294dce926b23f72e4d10ad31dcb83d4f84a6af509dace1c0fa24915d65ff3d95832d575dd87317958bb2b9309b10401e9d8efcf521d5da29caeec81623fd0313801979eb79314fba8583ca50742c6f82c9d16a0b08590674f66370e13992f3b505bd866c4b392704a3c8ad46b8e3cbf3302d2ce4ad2a71463caf680df3877964588ff75ccfa2fd88d8d4f6b5031a8323bcb8632ca2ea824c1bd95a48994282d06c3f6100f306cf466fb8cf8d9e428d8b4560c8ca0d14a72afbbb9f05c19b428a384aaab755abaea552bfc9f67efb379694516d60d1882b3459476af2cbd62e54e13da83109470d04b43f3ee1d9c65680f67510ce3f5b807bab11651940b4c83f60f2e63a06505700f7c948958285b4e9644f5d7ca454e8610d6ce8cbc10a9c96c5921aa8759f943aa8d293243be8659f284b466663285a456e6cb855c1d66ca1c524dccc818d235cc921392f583172d9c483fc0d11496f013deceac9cd8931b755372812b3191d0e513bd79e7bf99cfe16bd22bdd8b4333b4304c3c1dbbd72654133d668b3e53cd986e95c424c02fe6a3da049468fe3441a7d891829f37bd7196fe58a14c968968e97d894d80650368173a4ee02d3a9bef804cef5a7aae1a8a8873666e2a7c1414b83bb10984c1afc5f407e04b5e09d07001a46dc5e38854111e092f5967cfb017e5e71d47073b424d7b32a451ac7dc83edf90bb06339243d3f16c0e621107ca01c7bc719e7958d171f3b8f7b384c387b6f30dfde6737de103b168d7b045e987839fae6dcdc5c152f88ae3ec3c3e5a59a223e54160aab9de3028f41965a3fd00a24d4aa13c9a131553ad5c829d76f8003dc699a47d4556da47f34bfb0881cc1df125b14898b4a8abdb744d35a6ae792c7fc29f6eab9158740a2bb9218132b5535890d2fece04a2c2a03bfb7bfd2b0ab64a87006bb2085061889bd08a049c78ba0e5e4534b552fdc7520dd44e9495f2004da8d019b29e012ab0b2d0286b2850546168ead2fdc4e14099ff5fbfbe03917bf08e3617333fa22aa8e565c92a2a808a8cc5dc961d4be155b14013327e89dc10bfb3240b3f1a4f2de6d2dd3fb7c4fb67659ee6fc0b7e05be51e351212f5accd8d43f19136c975ccc9dcf8e3cc7b82c2ebdfe23c5199bb65ef34e1f3185080f82ec2d26ec0b0b09fe7be63a5422f91e713e17f327307b45af73c4fc8e853f10737153f762be01b121a0f700e4fe44801c2a326303370d44f4610adac4c87ca6537a18121332a31e071c46ccbceff333473277ecabc3b4fc9e71a6cdc93d1a2d73bc36f1d6505cbd18e267f2122910a7e299dd599b4295563377f7ea9c0dcd57d708334c65fa5b36c279aa543a25565b8f70cc5baa5f983c19c3a4077efc747ee3e7c1755fa9223577b4d3430e12bbb1744db121b5210b4d32b7a68fa599223017e555d59ddfa8fcec41e5e8bf2697a7d850acd79fffbe2f620d93070b16457744d20014d57226a00bc5f23d76d2f2ebd580b4c72d7749550fc0a9bf95e5b21ebe37c32777d1e095045fb4bf5db960c2763d11feb8545b63eec00f93779575f848e4687de2e5d821c9fabc61d3a7d511ca2ade6862101bf0d8b8c212c32a67106e31759d8f19529d44e902e129c9865bc440860ee31d08de5727f30d01cbc46a6648f7ef73c13f65b41c9044611fa27a9db794e22c4bdef7c63d40065c83876019ec02e4b11b50a3f657d34608cce2b610ebe48214209b872ed1e576c5e92335e8275b803c2248b6dd79377225631fa9411c950c1daf7521440d6070e700bab38b2ea669439b3f4825e924573e18f246edb7fe2351e56df20d871fe29c154ea9fd981127e5293f933fbe9ed3272dddaae4a5e29510f0e2b893228093ccfa0aad3a73ad02ecadd07f8e41ec4c69c97975c46a606d6358aadfe3815931447d76e7c013c90f3cf7fe24ef6f97bb44c3fd59d09d396203c1959ceee173a7fc3a69ba1b06b36e7b834aa71a6a5821c449a8b7e5c4f9efe37f7f38fb1c768eff02b5d5803781f646765b4a14bd5159cf1cbf0687d307e16e9b2c7c67415638de503f8e400cd69f3a9928655555a9e61cde2c90532efef09871ff26a6218e437472f1e3bec066340f24c4b2804492884c8271639298935c6b5ce63a53d168f0e5e945f08c456e03ecce6f628c7380811121b2495d00cc146ef051625f631c45d3331699447777d4aec2e9f2228868e8ced34f5c43a6a5621d2c2b06da0e7737da276e986b8512b2a08f3621232e57461ef77c84b9a2608e4e0f43da18aaadc2b5b0b72e63eb37533ce6fbd29638082c576d193b7c625f8159084ba181228e518571ecc996920381350bc5eedd74cb407cc1f8d47b1fc7921ec80f500fbf37efcaa80c55c6ecfce5a8b1581a4cd2df597d50ec3c1bb0bd32a54c348b19751df0f3866857d66667574df254e58ad552a9ceb864f3bd06a7780ee2a96606214c6dc841afcbab81daf3f37a6c30ae26eed1301d3f82f308f7f4b1c758a52ee15e63ef7135518e338819c370656a340b490989c4cde0b7550ee5e498980c1f8ed3b5c6d02af62332b86b80e68187dd149d34ed88877e99df3216ecead0a58ef0a1663047518339fa9df8f055a172ef653843048b0a8b5e385334f859d7df51b99ecaac2fd6c8b3306058d22faaa072a1cb52d789cad2b5d547ab44488424eb0235c43549b22f20a9d9b3868add1159344005f8531232eba5e6df546c83ac960dc1822941d56e94e1eda2c1f5e15ea300a38461f6e04d648afc541ae07e38b7bf8ebdc1a702937b2462b1883e0ce0b904f29601127c98dac41799826fc4cf237b623ab04e76fa21310e2dc6e081d8aef0f25020c090533a1ff2278bdfcdab66620d99b1202e37d2c76f2a608547cbca13af47034966c00a23e26f2307f9a6669875243d78c00b63cc9f6afb0b4dd7c6693caeac3db1c29f5c77ce33eb812cc1ef1aee470febd4712aadb7fd174d38a71d94394a43d3c338f762bda7ba7716a5a79802e149a3a79d2638425d8b4c041642b9960d988f5705cd3ca850e663561622ca7a0e533f758fcb1eb9a8e47eb2b198d0f8f1e949f3839ee27be73cb896afc8562867062a48b2e6b4308557a16aa9dd478fd0e446efb23e710dac8b9d9126489c2c02dc3b6a4f980105cb9a507c3c9079b1e19a7b072de7d6d0e954e1528f160acfe72260797bf48b25c62e6b465eecaaae02979e4a27bcdefc0cd1e9897708cc7da2f3de1146701252e6f3e69d5fdc0ccc5d6ac2c36e87dd091ce30bf8cda8030d58c557e261022f84b78497400b03cd06a2b6751371e878e8f9145a2e3a494a0be4a3ef3b2584aee67c75188f78e33e663a52151f55885f3173e67fb0064381b0a5e29e83ad8e08922b91db17e85999336a2bdc7103c5b295d01a2b34bba552eaf6fa79dbdc6f671c4afddb650fb6d2db47a7d958cd2e8ba96404f0f35cf62fbf669b443fb7625f99cd3812dcdb8eb04680918901566c25f8f845c2ad6b1610cb2c4389d573a7947baedc54477f42a4ef31f78e005ca6b9fe66e1e79e5daf02a9427b1cddd2c5f91d5521872500f38f20a0893108a78259ea590491be8bac7eac81f34da90a2f1094e533bb923392166595a56efbfc2aa7061c580902347215c4ec470e289de0735747e7a0038acc41185a40011cc1171de7933e78687d5b407c6af9b05f5282bcf55a47bb7c0c384745bf3558a0bbd3389bec1ee29b15ff594acbd7faf267b4359b77bddb216b58f80f7f3e6cc5294a5489af467d719c2c8a7565bfcbe737ea6bd159144d5964d11cc734af237e89d0fa88a58fb867723edd095343c6c976de9d51b5d41064e61e50966c9cf557a6e0aebcc4435edd2616af3756a8e2e5e9a37dd6a79047d1d106c255605b33325754af4a6d06f5047a9e7542d77155262c656b676d65fb109404ca02f4189cac34546f9af23446ef5397132d34795b68b520607b5d6bfca61be88b155d754b535fc4798cffe625b24a69f81607476a28ee70154f819588450a5481744ae0bda6c30b62758147c2722af1c310824f190b0bfa19df0b4824ed2f6d45634fbb07a861ce013a7156c1add2b6861559dbe85a3f0993aa8a7796f8555146c0afced74fea79abc4abbe47ab16b22e919f170ace403e88ad3494b4efbbef00ac249060780cef1222057726aefc75010a477b2ab503ca20621b270f99d4dfa1bf4a4a06f60b6843a87738dfd57769f4d23eda634c8d74c27a67c1490d455a9d09893ea140346691bf5d1412dfb2c2808cb08cddb30c8fe58e8429133f2840372864e4de1809d34b49ffa15b3b48352d554f50305869a872b3e204863b61fe1299d1529548d7c6d885e65058bea4b72db1a5fe9220b0635764c05246e793498c813374d0512f808b2cfaa3ada49300354182f08731987472dd7532f0550d77b960901765791bca85d2b1a5550797c0333f24e8cb2349ea3f2ca372534968a0d134252f44652e46346146d914b634d0b577bc915fcd8526a7a59973a13750227f78a352b2cf9200091074e68c44ab3338be73edd8dcd48229eb8bd303959eab6afa7b3d1d2fc8edc3aafb46284ff7603483d2b52a3113c78af08c0080c183b42282c18303c49104aae2d7c65930d89549077dcdfecce3dbe933b2d837b04ede8a9a8aaa946b35b0e926dd60d8aec41d350e72d4e7fc6474a0e89d3ed83fc001f85fe724ac6bcaa039cb1ac46cdcd1628f9a964ad100fa124b409024646fb9f7de5bca94a40cdb0b0f0cef0bb60271a76a285932491cf4100d349f66c1e35b0e1b88079927a594524a29a59452daaf99831a6983218d4c6f32fd0f25822e33fdf9b9c51625e2d044d0df69e8a334c761f6d2c394528cd28c528dd28d528ed24a694729d8e0f6f2b5dbfe59766d6a841a635a32d9ac67e3c87077b7eead49c9594027ebe0cfbd7d19f6725f1d873a99c7590cd8d131fee5fed7fbdb45c9a102195b914fa373605e76df8beca616eaf0f4cf0f31dee57ff87ff14ebc9316589b51d45b806c22b2fa77882cccc321778860b748b9c217cb2f77253fc60b69b95c1e2e7fbfc7e5efcbbf2f1f0303f97f792031dee585b42493f5be3d1b980f96e551fec3b1830c23abc89416cc7289ee7f9708e655eecb242d51547f922ecff9d4cb243a0766abdf2f8be24e8adb8f9e033aabdffe0538e0392ffea8938f1147c7e6c0821bafe00aa8e820efa5d12c7fd5ad7163a0e0501a9d4426d944288f42999479d6e964df2fc3add160f6309746b3b29f2f577356f62e377bf76e6c79c36083d96b7726c1fa532cfe70f96a690f065a50f6cffa0809636a6aa2b2a865bab2912a9f098beee64025e5d920fdd852b64f8a855af65b832ecfb8236912eb9fdd3fe6d960d72ceffb3548b3b0f39d76d285b872f82326c518e3766a55dca15d977908001b944f23898d4cf38b1a63c218d309199b7294ab77d4091b52a5ec3bb5fdbcdb6b3726e49458247047e094f2e422883ce79c2f6721592182294c140af0436a34f338d45c5c96a509cb054b932bf7a7bc3c07a6c8594c8d0363d429568838305244b08b525eb73e11593052449cba4404dba871ea50834fc49d3a834a24eec47c7f1d529d883bf7fbab0ce20efefeda44dcf9ef18df5f89608a3c07e6c85931883b30df5f6110775ebebf3211775cbebf2e117758bebfbea02a11775abebf0ec59d150c4c51ee8f331faae20c4037ad990f5572585d5d8019fcf303c4b7661e889b16f834bebfce78e1632e11d04d8be6652e11904e8be6655c4c04f42d9a8fa1019be7e3ab812f4f4c444304f4b57e58ef7d0f5f6659fdf46c10d13ccc9196511f6aeede9e9d9cc6c57c3a867e5065e6462980ef69ee0f105aebe7050cc4b76430edc20c4cc388c1940bb1a65f06a618532d5c4cb7f0987e116bfa63600aa4d3626120be4584071e7ab01906532cc49a896916624d7f0f5a7ec1f40ab1a6df05d326ab4b5b2ef522d6f4b35c6a055a05095e9a85c8ea9fb9348cc8ea94261a46a44d30474dd40a932993e7d4a1c8ead7b4b00e51a63aa4327453c06830cb81e589539a624daba80c35a8c2c4ab71b6bf79629522fb21cc51ee0ea392624d3f25823df9b00eb10cc51aa6c6719aa2a22821982996b245d742550e2993dd0295b994262db4e1875f13ba1482394c69425d91d29461ba8468e6799a2acde0d3f73f4b669b7294799a9531204959ba8743cbf309269be589eb50ac71810d599a98c0f8c9f34f43e4f99e11797e97449e5f9d893c9ffbd838f3b7a6a6dcefb29bdcbba1cdda7737fcb80d872e4d789099d21841331a250ae9235f9352ead4062ad6340d29a5f44c084b6fdce8e41bffbecf487e93e52b4f3b551768d04a61438b84b2aacf85a2e24ecced43ab5871e5feb9e53c6f0d239517119aedc186b2028a895316272038152e727f9c2e4c44ca657b90fb230a75ca22f7c71310b93fba7783dc1f67e737cbf3d2b037b061caa5121477e4d2d61d81d52ab82d7043b62d5488c8fdf295727547e47e59abc8fd92db42ee97dcb645ee97589e37c606364cb9528ee28e7c13601a0fb28c2953426b0fd23613e4fe4eb9341ee4fece98727f375684dcdf735e971ad830e55231c51df93e64b4c86c8217b9dffbe843cc87dcef29172d92fb7d3621f7fb5441eef749e75515b141f06ec2544a306173b6db286c987225c51d898410e47e141f215c28579cbce4d0c9ab9f52c7746639cce0b2e804f397cfd4c92bf7fb0d952c71ca8544cab56ddbc9b1bf965dfe8a4ba50b1689c2d4736e5c4f23364cf9045d4f3b75a8e9c9af98b7cddcd1a3122e72acd2092722c7f7a0b8c3492de4f87d1477b6a6c20ba6b8a309e58e993f21c7df1177b08f36c81f142b4c582942e548ca155262a0d2c2f3293f287263dd36b755473d1c2ab9ae30e1065e2922f791dcaf712957e89418682a2d727fa669d67e1f0e3be9082949e9b594f249f9a47c523e291f9f9437bfa63c8972b4bd11eb46ac7c398122b765822d0275e47485530ca292fae1091413a6c3a19239a66a9990fba77cdf6c11b9bf27ea486e7abac229063dd445ed6aa3a346924cb2c9a7818264d26b09250825082508250825082528f7a75ea957ea957aa55ea957ee4fb952ae942be54ab952ae2b3997ac8507d4e1a046a122219de038e969b16d1e50eef73419343b1ce4fe2eabe14d96150999995443f285b4215bf4b95443aaa1dc8fc2247f898989a98949fa3031e57e9423cfb9d18e2cd297f44a2847dfe7466cf66ec46a2b0e49ee8d0bdb0cb4256c1c124d6e5cc8fd35db3edc6690fbe3b6041acaa0239696162d289b02ab02159ac459f6218bcf14b99fd3f0266f7813c6970c6a7123764e968c2d913b4936b125b224f195e51bb1f23ffac313b089e90f5ae777251381c58762169f58c3e2935bbe4a66497a218a2a3f76df8f83f7120791ef7de320447ae47b1fa4bffbe8759de7ade2af5e48cb235ef1f0befbf81d064224e29eee571808cb770fa4e5bd17d2eabcd5f3b4d7ad82b0bcfcbe4188f4b0bcfc202ddfdfde8a47cbf7e7c0f2f2eb7befa7275a7da83ae1557cd4c796775711af7c74ef3d0e2b94f727ef571f5baec50f5577154fb1156fd7604bf31c7ae42b1eff1afc6ffc753abcd25612e679bac6954be6fed3ffc67364ebc52786e68e611a31d3dda73ff6986331aef72fb7fbedca0c73892c00a6bd2c6a3688715dfee5ae5e7adcc3ecc0e195166f8af0903d8eb843f638629e330a3b330fd3b3c1c34ac33b5c568f7d7677fcfca8fcf73f29bff2d5e5c2fceabe7ccbed67b9f2e712b606ff1b7f1dcf9151c93db4dec37c8ff730180891ec81f47b9fe19eee5f3010f9ddf3b4cbf57e75bbff6e6cad76b47cd4afdc13caadafbaa99f3f278fc2ba1d3f3f3f7cea7f7e4e5e88cfd5397952aaba5bed2646ad55ae306748a5edb7fef5c4e17495b75bd537fd084a8dd870e6d52b47baeaa690665984ea5ad05a0bffc96e54770e19a8c61865d7d5b91937da988c32747747a1b2d349f3bcadebb85a2bc775dbe69db22cee48548861317477cf302d8c31c62d8c314697d2638c31c6184fdd12272d6577b7d64ad27dced57c2159f5285ecd527f72fad8382a9f62577028857283295875824339149d65f10963fbd90d870fe6302ab90472972a3d897caf599f2ea58c4d91468c6d899227b0c1e8c90eab92d3beedd3b82fab5847bd93e6a8b632751280c63d7dfa9c9d6c29434bdac858d3d9a42fb8cf9392196a3418431d55d3231368304a2c4e71b3ce9335279d554c2c76a455a8e60467a7611d187343a3c1f8592767d06919bd763732821dd3607c79c2989421e89dc9d80dc8b1c139e75cd1bcfee8c5f84327c78f299caaa2745fca8b014faf6a309e9c2c4a490bdfa96bd04bb9d49075bcd0f91aec1c093e5d562ab74d1739b54d8bd98779165a6481749b0ec66bb9bb18e33e05fb232a398e605409e1fb322a4f1c3e20fbcf39278cd638a1c7d8c9ad7e32f3b013454d1b65949452558a94f846c71dcf77567cec6adaf7c5fa9fb3e2a778aa130a2a654f4e6c0a254f2a2fa553f9ea0af76d2c5a8b4b0db83117fa32613c467cd9ffddfe708a0a257562512a9cd7929e4e9e8df8337e2713e51d2336e73c7537d6f894f3519e8d3b7be67cabdf3eb5537aa3d02a26159acc1d25eae43d3b0722b55b6b54b71c420d65ee70369827166218eb245f5e1e66fea19369e3550eac479656a8a1b4b2d6d8e0a9ffbf9e734e9fd363cb9843ee0c0229c4db97d42414c93da8d42a2d156a902691e38d94372edf6d603d2dd6b81fe57827a6cdce690ec5d894c2ce0f67d6ec67334c7bf640330d238c303440f3bcf12650a8d939fe92f6f79424a0b95d68b4e9776cca993d86ad323c5f66e9398e76ce3ab3e77969e24c9411c17ecfb189ac7e69d3e1e7e058d33accc7ab1c9fb3ff9cbdf695ce9691529ac99ce87c0ce38879fee590b4a438f9a18c8c3532a7254b3e96a0fcf8b5a4baddad531a6be6102f65f430dc4dde048fee2f5d466745c7ee042b7f4a297d5621063df21b03912e9f130321d2335f663ff11110223df28110e9f19718880c7256f68eb30feaa199c9974739fb7a632bc6645807995485ccc6aad07ddf7fff9fcbf7b9bcf7f756e381557da0abe46721c80553645d54f9d50f511f721f761f7a1fd20feb635f4f34cf8ab29da395f9c49d4ecf9df0f4bcef3c555769ad4f2bc73dc6653cee600edddb3d1b137be737c4b2cf394b106bd6659e0dfa9252f974861a999c21866d5ced3a8c04d1974eeca4982aa553f154add2cd1b769eb75f284c8c1b678cb171cb9031dd9dd1b5cc0c68592ddd0b2b9716ec04567e0d4d8799a0a6c384008087ee18a5d4a6c38470a73730741fce8f6e3bd700cc062386a1c34a10800e0bc2ba0ba08b8d336bd488a18b5e8c3a31b01ca4d441071d74967b8c0c1c69b8471a9146a4116b62c4f73567451964f019bae8c54867c04860e51300081b0213e28ba1a3012727a7e3d119c000ba1dcf46dc9121ca19ba16010a004e6b800e0b021b621ea0c384b05810373a4929ad21c698e3e70cddb50623bde17cc732f5196dd41bddbc21cd73d66024b0acc6d1d9e0d988357439ba3bb120b0203a5377fa126545f18d16900e4adfa42eca9fdc14ca05025b275f6de84e2ed0d73a01fad6c9d71bbae839405aeb44070d7826eac0c9f33400bc9ee9e35373f2344eb075d654800276ece08101551e9e8dd8e12a875c619966cffe323a0f1b00d4d0a041750c4635a25cd9bf7a4f2da616731a01353439309a6bc246d06404cbc34431d12c7fead9901835841af21c6a441240d8906be29a38303a8763027323b03ccca1ec40581ea6f74140ab99b5cffe5de778ef0d76534d4a4ce4bdf4261a945d660d8712908f4989b58cfd40ef575491cc921b82224bc984a35c90fdb72803aa05d1c65f6ea822d4d08f9d1fa286328a090ad438400d4a1a94b5c73c075e23f56edc2cf176146bfc39212f01b18b3c9f0665194a0ff301a44f5dd86b2f69509e1e460d65d7b2d6597fd490e7682d7f54918bc08634880e790e8b6b0831c84108861ca9a21501a125b6c8a20a284c3083963f0df2a742fed5a594524a29a594524a4ecacab9a6809933d7b406bdfa704d4fb0f243ae09e54a5181f3ff5ca40320c7c76c603b5a93e3771aea4f9c9f6e8c4bcfefbe6a96e33aee672673bd5f8352fb8cbef603cc36301cedec7e80993ef56c6041e2842866e3d0e83a477ba1a3348b1a2b2a6a1fb76b33dc4d8a65dac639266bd6b8bc5d4bdd31f7cc5d73dfdc39f7eadeb97714fb6f9d133baa859d948bd450c6b26d76613b7bf73426d2fb0406f5696a902937c9d83765ec63931705dbdfa1b64dea49197b1bdbd3bbc2612508fd958fad795738a80499aff2b15569146cd090ceb12f67618fa57c9a85fd772463218d0d29eed060ca98877d58ad59ad5aad5bad5cadb5d6ae56cf3b3d4fa3869c7cb58f7db53746d05af9f6439ac4f73c6d69d07782512e8c2a6a10db81b527f5ed0bb32fdcf68788c534a8412ad431601f7e27971a8104576257f5c3066349c6fe84a950e3c855c5e197b13f3d0d6a9cd3634f8da042ee7998872caf6c964df9874e6a888c7dca07d381ed0f533fb9a941cce3c1c1c8d83b53c69ea77d69087bcc8865596dfffd0f425af459ee6a7b96ff41486bbe7dadec92e7acb696ef99dff21beea1bfc240bea70f8405b3afed43cb646e8d895a9ea7a75dd220665f9e833a6a411dc516451d3588d1215a4483a810cb8dadc92294b1ff709014361e15e52abb8ce585ac7a5a5ab06c7216f6df0b69b1dc1e7216f6dd169216a9bb629eb6b1bdb435bb9dd420f6daed244a4a0d62288f62637bedaa9ae87f5836f978ceaae77b9667c140e67fb87d9c85bd9016f68da471622369f036521f6910437d0d6dec9c540df21c5491d793dfee09675ba86be78d2d5451f798d6a18a369cf201338e2d946a9576db361b1b8e2d5e38b678bd706cf162d2382f87b0fd31085b2cc9d1c3c124e5828cfdb66d8f7936b697e66d39b098ab97b660d2200ef6fa986bdf10875b282d69afcea141cdc23e661c5b28691c99e3d69d7e76614f16d0bc1b27b30b1bda575ef5502167614f5f486bde55cffcef3f0c840ebd101ae42c25d8d0be82e6f46ce0d8a23d2fe5716cc124e5e2d86249835b286db17dccd3c3b185922d941aa77bc338b6506a3066fb4ab9007594b1f7b7afb8d38fa18e6e729f6cd95b30cb1b6e0f8257def08f53f63c1eb650d845197bb7af8c7dea867248c6be4bbde24e912b63df49de42473a476bb5d18ec6f17ea891040165cc2763399445181819eba33692b13026f16985ad94b19747316c1f2c39f9238bc9264c7a89128994b12419fb88c36d8a302ac9b48dcbbaca71f32d0ebfec2738b4df9f70a8ddd50d1ab97b6bbf665d4bdea100a7d3bdd1792f73e7f950f9fe765867d9e4186b54d97e7b37502dde028b03f59cf7f565fba4d80db57c3a5d5bbbab5f83e7acbccac7a46c3f7a3d2bbf83c759f6a387034501f54f5fed0da94fee97d427d6f4f497bfdc73959dbd611f75ae7f3a5d99ede5b287e590d6a0f7d1cbd1b97e957dc3e92d23cbc946c5ab1c349f3ccd275807d473a8cfbea2b06fa6b8a383f79db1efa5c6be62614ccaa7f7274e7ff2d2b34166efa4b67ba1d619fb03344e3fd6360707348ef7fd45d78758ead9a81b0d6a107b0c07b67effe679b875d8e8032346997bd44f2f01dca3bedea8b97e7b3766e46a3fb3cfd35a6ea6b8531ffb5e6a1cefb16f2695c6136e4f663bc8307256df7b263ba3bb8dac9703eb7d9558ecf66edcd34f2c6c336910fb93634d8598620df65aac9127dc4b0d624219fb99850db9a1a58c7d6f4832f6a9310d8a35d86337b0d65919f6f5ce06b36f0f87f472a0afb2f23cdd3794439e8de8757fc7b4c7ee147e20c77ab9ef9b7ddd3c1bf5b95b3ff6a6f9098ddce19a6dbf72636ac8b60e0c6a7f9de0cd8dcb6f6c623c749c255fc759f1eb74aacaa14ece84ec8d9a71d4acdd90b146bedcf1f3c30fce8a12c78d35da86e38636f1d43c1c607892230e0f47e7692d8fed177065aea8709b5fbbeebaaeeb64d44e9a8743c35c945cfba458a67127fa188e3d64c754625bd43a81ace7d0d6e0b84debc97ec340b69eaebb2088544c1183249720641446afd6aa895677513f2471b5aa4b1224b1820b042d05d00a965add67170437455a1deeae2b19416a55ec0853ab665d77a3118010d4aa9aeb8b1af8b4ead67577d5f31dd62210a070a2a815ceee7eef12444b6a018ba0a4af76dd056f68e084161cb5429ba58eb3fcb3cbf302bb22424bbaaa8044502b8a156491d4aaa7aebb71085330b52aaac9154aad6a870cb5ea49121440ad9a7219b52a4a97dd5517adeec6a31370f16a55951349ad9ad26577f544abbb72094dbc78b5aa4ad75d188aa082ab5557b83082d48a1d43d8751704b1085eb85a95850945addad27537561185a0565d75dd8d47d84252abbad020091647adfad275573ae187a25685e9b2bb2242abbb120a11b0c0a7556358e1d5aadf753712c188a556bd5d772312205cad8a8d865a5546d75d21adec0a69d598aebb510853686ad51849b14cdbb8da7927943d49a1c89695cb0b8c9432c65f2c6346cccd697eadd1c3b07ab7a777f37aea6f18480ebf793ddd6b18c80e67f977bf790b88ad1a9ce54f95601b29b630eca99703d39cd5f2e4147a204f3c5b73420e61511c310439748321fbada03ccba7b470a7ea79af827aee4fb786cc867af24edec93b7927eff4e14df656f6391cae70c830f2897b0d87a7b086ac7d5843e63ee61ab2f6a1d56ecd71f29ae5fe844386516fa8a369d67edf3f088637b9ae2cbe21c3c8287c7aed4faf7df5fee48616e55128cf7915e5a150c2d3a3f089903d6105a0bc8775407914d641e5bd1f3a27fc4327a3e0d8e0ca57958fdf92a28267832bf8e77b3864c1b3c1142f0135a5fa942a5555a9548a4b55552a55b954fd52f8fbbe6a6b7df9b5a2debba14ef6bedeb0865c59563efaa77c7494938fee527fc5f2e5fa2b9feba780b93eca473ff1be05dbfc65ef5570f8a5e0f0b3f72a1c3e0a0ec1ec7d0a87e0090e6fb2f7168737debfdce82cef870e8e5a2feabd3e0a873ab9d61b320c9b03db7da8f34347a7861f3a590372d5d60435c6f4c4a190be9df684d5227df9180ea5d6bd9db2c780903c5f871f3f7ebea4524c108a38926310508004861c838002a1fc4576898443882bd3f9f18bec3bc31209cc1f4a24093a4f7728c428872d84ba68716795238c8ce150fb59af4c8a35fe340bed651839d4b08d35aebd8675a08f7dcc616603d501c31a26e23e66cfe1705323fdcab3c1ee6d5500f6d955d90671102e7ff26eccdcc27239243749e9851713eaf531c9fe2b2e4bb8e842e512cd909921a394c368450a50f6675d1d493a949ce52fe3ea7039cb1fbc3a56983c4787152b4c3d666e0f98dba388cbede1ea31c4ed11d4c388db43c88723d9a7717a4c114120cfe9d10408283bf80d657f99db73e42cff19b7c7c859fe31b707c959fe2fb72709c9737a92245192bd0529fb7bde8d2f7fb807900c6ca4a2a88710e21539c85444197818f540d238dffbf748ea91a4717a20c59dd5fbf3f0e1f1d3393c969e872beeb87cca87ade43fec25cda49b58e14a6264852bfbf358f21c1f4934cb5f490a0eb525a1651203875f935804a01c462d90c01cc62b96b27f8b514a7ec13e849ab0e18c17ea0c2f47e7d5cffbad5ab8a4ec1fce50ca4e7d72885aa2a208d5b224fbb3bcb2ff875292fd7918a18e90fd3d09d9e31546d9bfd250b95c12970400ddbc1c1218ba95cb51116bfc63b82522199f7289f0ab64602e09e85b18732f0274b2a96955800ee5caa5251a3aecca4caf8cd59bb80752910d5b9490b27f8b92e770489264ffb0852786cac1c4b06931ac5a58be950c4349c54027f5138b6a195d4ef279fa4466d48d9ecc5cccf7c61652f6e790649e926b5032e184c0f4048e50d938f4e3d327b476d168f13c9a814f4a71bf88c858d320c8fe7276d31577ee3c8542728c3534c885c548b14cc3289d199661dafc38e9f47aa47b3df1a86e5cedbc8ed55daec6f79e345872f998c632c7322c7b1ecfaea6dd2ccb1c9b596b92ab9d534abd936ca78d853e43ac765a6c6dd80e9f7713eb40314cd3b4cf30cd59a70ea572d750ee11155111156da7c59f716e5ae6e96027b0b2e613444fc5184f40153bc9c83a5113d41a1ba7f3bea1ec97ab76f7ee183bba741174776318a518866118866158f4667b0caaec2ca359dfb4a49492027d4bcaf7ada994f2865bd6613e7577779f5adfb4a2f6f16613086cc538813ec6f729e3c7f874051533016602db8f8a3f87c4d49112923ea673626bc7f631f7b44f8b7beb39d9f76b5907faf3e50369adedb5fb03844e6bc3d903692d0e6b98f6db05d26969cf690fa4d3da66d64d0de799e2360fab19563d7fadcbb0d76eb6c3e72920cb184065faf1ee9065c73a509c61df81ec6d8e137b996133082b5fcec6b0c0c471f45ae7382e7b553fa7c43d87c31fdcd77abbc92979273918b2f63c9d51ed05a11784e28ec6fdf6dcbb77e3267352e6ec0521fab2ce2b73ad9c05a252d6212a651832b77d987244bec91c8ea154840d39a5dccfc91983bb8e351c5f60c2b868f16139c29430254db823ec852dc1aa800297c7aae09267f6a1a7c44b9e182589088b2d29490c8a9c5d4c0953c294588e424f0917ec0994244f89972c314a121128492d3e13870265f9ae64fde50f2a699037a14132084ff8a1415c520e63e69c590d9dee9e8102451ced67cf9f2e1cfea04135b09f1a3ad887710a8a349f46e3d00092e77b0e6c489168ec934b20c35b53d084a2864e4f1a94b1056850eeef6e2e298b393f3ec8305a44e803a1b54e7e80d05afdb51a6cb5ccf90142a7e53d90d63a7d4873fc180b00a4b5bc0fbd7cf2214a8e337a4e7b243ac9971c7866530d9ed3af253fa2a133430d9e1a245093f4c9732ac5575caa2b18eb3973ce79038207a8a1c17964c4678fec898a27e8b34731eec9c35cfbe2df2f37b64e3e05d39267119b45eb0f73fb85fba739d6cc977747ab8faae039d276d0be621c31672b0eef70efc780904c9fa727d28e9f9f96fffe87e557bef2c49d539e27dfd7fe767744613dbf7c0edebfe095f62f1f5b399c7ea5e1158f937f791c4efaed07f13f79c1417a012bd86ac7c989cde80ed4ab7c5eb9b155dde5a27e7555bee5a63ccb5551944f9dbcfd6aef494a49b5a4e2b383c759730eb132c72c1f45c8d6a82e6a8c991fe76bfed9e3d0418804c9de2313fd0b70c073b6a7f589b8efa141ca41a0ebbe3e0edb733808f7db571c844890fa458d7edd6e772fe03910e820d020a5f68b5ac51c8eced29c45e377f6fe3f68df3bfc85b4f00ac31826a4351b28c73982d50eef2c9b0fc47bb46f0ca45ffb5f617785e11ddb671f5b1a072ec0e4d3ad8d60b210e98f59aab2942859ae5ade554f26b91b8ba0dc2f8d72cbbea92c57d80a7b55a6f262df97c678595225edb507ffe88fb8f7ee89ead323cfe97095f889540ca4fbed81d4e75e48cbf3741eec2ee82cf7dec7c6ecb997b8677b9e3e42b271f5799a3bb21d790e75551c9bb5f9dfe83c88b3ff00be00f80b1f6bfc5f7bf093ba19c4a87dcf161f88f61bd67a38ae870cfbc27e9ae78037bd05abfdf6a1d63f29cf3d8016ac3cc230d8e0a6c5240742752a65c8b6e8fe3870bfe120db73efdb731fc4eb53eda9f744dd7bb8bb408354bbb56a9af641bcaf1f5b349443481fcfb9406c691768903e68bf1f0feff89c456d08ace32044b20fe2dfbf49fffe1ec72becb7f76fbc9a19eea97885e1158f0d6b3ddbf76f383a875713efe086d8f8f673167d1be49d41f1b94b95caa5311c52d514ac7fa8fa2ef65bb6611f65c6f0c43362de75fec50c27404796982109f6ea1aec3a55e36499866df67356bfbb7ba777ff2fee9c7c76559d6db03fcfe171cdf2784ef4694ff017592c0e2990af2a825f054ed7aa7e78b7b317e8aee6d339c06d3f8164ec2596d359553631c77cceb7c00c79b6fc97959814be9ba83343cc2ae09e23996896fcef9392892cb32799286a507e76e510c984166c189b300e344e0802699c30876ee9e39a16e5c444dbff68507e053c2707f93cf26b907fa333c378ed68969c3a4726be010cf96144e278064c045250be84a6fc1ade3566086b64394383f2751a9435b2cf203dc62c7981129880d081120984b8941459e108114924e1095dc43e2ad33ebeaa7136ae7ef44efe312682fea80b46d0ff745d22e8efdd2f82fedd5545d0bfbaff76b53823e88ec564ec5d3e95ed289d351a3cb1f23ff951be66db8b80d2b6ad89f56c6850906d05dba06a73d518b3c25e48cb3fbeb6e3e707f9dcff207110222b1efdf27b3ee29efa2729b0b1b57df6f4e4fd69fb1ef9db966120d9fb9f4e270b0167d1f7bebbf539adbf677efbcfc7704ff7dd4bff1ef9ce84e10b388b6adacbefd1300d63f80637062231101ece3e3de2065458410c827c7c5ea9566cc556aa155b325661064d72c0440b6630c5135ab1259fc7b9a97d6bef4f370c441e398b3e919e7e8981348ece9a4e5fc3f4d59d55415b622d03d652dafc8ec466635a385fbabbffe8661026963d7dec3da49fdd3929d6e6cf39a5bbcf99f9310dfa94f970fe370812f17282e0053fa641071f0c67f0a735e833ae6dd05d273cc5e8fce92465e877eb33647f50271f45e18be9db123fba98850cb270e247970565aab3fe8853cab0c59dadcb1836058b616fd3ef80d60077b168d38de50cef00828dc69aa6997ee355f631af6ec89ce1196b1a3ba041d9de8d0954a0b3216621832c64e0df6f812e43803251630ca6c2e18f193c6a4336c3d0b4c7215fc3336840489eefb76b50d5607f61bb8da82e99b018b358a7f6340c1b4a9faed1deeed9cf4b431ab9bf6f1627d680dcc6230dab1db1a63fc789f4c00120aefdd0d122c6ae488e318295cfe3fdfed2fb880f86604566c9a19dd9aa4015860872edee0a19a50b4cc82bf9361927f75d492c3f02810b5cc811085d18922b6dc2e2a7a808491950c93dd82c6f6a48ae5a376f3794ebd6cd9be2820972e5ba0602185ac8f4e75dd15765ec6bede6e59872ede6c5bec6d309d7f072df080430bac8b552a566f9d32ed8f04649e25053dde4d038fef184b2272914ef0655977908a835f8d7d7b0c4dbfbd397e770de9f3045da628bc3617bef71e0fec4bdc77d908ee3b88e0b368676c583fbed7bea7759c9bf765b6f4a1a7425cfa14848d9bd4342baabe6eeaa3f7bee7964cf7d4ff61cf6efd17ec3190c2701c8d17b90fdc31bee64ff90e5e6de609d9bd9d604fef1862aca0e41103bfb18271636beccf331ac49196282b297039594a37f9c1e0ecc862d471c6e20c7e8b34fd84f8f7a3864ec1386b168c33a16b21d3ffe1d10223d15858ace423d877b4edf6120f1f4f5bd27d2a37a7f29bfbf477e774fca771848f729f8ad6a5e94772b064264c5633eea7b26f740eacfe730049c95bd7df912570c84e7513da8f7ec51386ef51ddf382b7b20da893d79949b56ea63cb865a46b94088ec486120b2857afb2737c805fea40814963ececab23f4981c59e7e10204416105bf47110fab1154a9fcedbf183fd0fb2458f2e91de97a28225213181c2122e94ae4042855d9d4e4e3c1b44f74f3abf37bf5ca2184f2fd17d974bb48af1ffa7ebf29f4aca4b8cfb374a0c315134c46509a1a5248e804250ee7fc1e14c8aca89bb364a48474bb8507284242a8e4c11c17e1a97ab82f9de54aa0392c228870f721ce520420e24254db3f6939f03488a88a30309a3c6d121e48388a36389081e358e8ea106891073743c11599ea3238752e3e848ca918488a3030bfb3d1026812c617202963ce7260857132b38fcec107420a14348c7123a86743ca1030b1dd89589561cc97d440752ca7d51b92e2bdf1ff17df9bb2a2360b92923b0e16c59b9dcd4cbdc1f9907426b810fc44d2be66164906484209334e3c38ccf8c103340332b98099a199a59c2ce14d9789142a34453832880fe984b738308031431867e952457f9141eb42503438a8a8c8c8c95499271194f069399999999999999999939ddcc90515d5e5e4ef27ddd2eee1246020be125f0107e021761232c056ae223ebb78bfbba4b33770985437b97301258082f8187f013b8084b818db0bfc0a8569ea761ba776972d9c28bcf4b142fae17295e8c5e82f072f492f4824504fb35ed4549d3346bbfef3f27d48466a0ec7b1f5d5c5e8a5e7cb2179f179fd58bcf4b142fae17295e8c5e82f072f482c54bd28b52ee47c9ed65b40228829a00ca374afccd117e1384f5626693948fe1edf001853f8687636695189d5f5486b94452de5e1e545a5ef5b329470eb74032f4060746461a6c2950ffbd94c0f8a289174b5c2839c2b7a8562997a64883271509031b5a2c061891fdceef69c617d45f119fd027840fe9c3e24bfa96f0297d4b9fa67d42421f934f0868b8d196a28022da14316ad0c891b3901a44d26092520c95151d4a3a9474ce8c87f16c60457c419fd0c7834fe8737d42dfd027840fe9c3e24bfa96f0297d52f896fe63ca3f58d9981878995ea2196f2f918c930c14174a17282f1429a02ca164018549e5a3f22182fd9a5501dd00194191fb4330879aa6d130e120da2cbd9ca5e42c9a24344934483447688e688c5c1aa35823456e1a28224d9108f6af68ee308d0b0616c535337178d344ee47e1f02d0e6f94c8edba39c29582c31b225c285da0bc50a480b28492051426958fca0750059467189de477fd76374d449bd34b192694b0f1428888109cb8f0ef95b91deefc56a020a88fcf3dc9d0b834252cf6027bfa98af91a7633abf14c39c904e423825a17c40f9a0844001a156800a420da1965049f93c4715c15c9a228dfab97a3b82893a09e184744af25392774a3a25a59c92544e4948281f98a07c1ac7060a282196a0801ac7860bd40a9450419e6373056a0924a8a1c6b1a1c2a28a72ff4a72f24fd8cff06c10c9fcb497e87e776f5cb1c627d634ccdc42917c03450c4111d111440461d3c4a464f345132f96f2a4a1f941b4313a3a8214840ddbbc62cd9095b9a1cd72c68c2ec6f6dabad896382438216e096e887b22b2b822e78c9aa33e28eee8e46fb7d7d6c5b6c421c109714b704f70469c1438d4301cda6f5b42e1702687db12107774d344b4298a35435c0d166927f250ac618a354c28e14538a382c30f628597929098406109174a5720a1228296e606b1a606d1c65584bb30d9afe7182f73695c97c648834748ce6a981bbd1b365905d31831614f46f604933919d7e27b9291e9fcf6cc4ce757c618776eaa0b96e9259279efe2fb394be2c791a648b3304ce35ac28613ec663c1c5b5e61edc2e496abba2cdd5d618936f24f397cc8e1d338271194df5f69747e6b72ade9fcd2909141cd179aec5d196bfcbe908f0471e455c3166a680283885628bd727f0d4d356c8175d3f965651a88a061e9003e1cc0678606226858cafd07f039800f200c3b47ec30d120040d402ea2dc0fe690c6e517cc323b47ec30e57e1a8068106226001dbd4432de5ea2193f2fd1eaf2b09a1183123134bd6e8062cd4e117127a86f8288ac7ed74cbe694209a123ec0d1140373e4d4b51fce49b10480146b6f92232651b28441b2ee2923ce3d218d10c21daf4cbb8342efc7269906890c49afe994b93e42c1a22e4fe19daea431a2d94108aa129f7ef04354e02967aa7888893002944b09f68e6572ed10cc6099042c4a18922828d43e3b2ee7d2e2f35636951ad70dad65d9a656e74d6cc9bc6ada85a584e597d7171f160e4f5bc69dc8aaa85e5743b6f1ab7a272fbb964f5e59b3173b12702d25af8595aeeca4724831fc316cb365cbc8472f8d1b89cd5ff97c688e6c859fd32de0d989c826d5ed890a5a9d1612fb03739fe0c0f074cde94b0a74ff990c6c5692ff3ad5ede705695ab43a9719210713a6c638de46950fecae5c21895558d183abf38e3747effe925c2d86f8c4c6566441bedc2e4180fc7964f78c2e43a80bad3f96dc9d45e22999f5873160cb6cef2cb92e9ac335402747e55b916a0f38b92ed2592f1f412fdc43c105a6bc6cf190f339b1a474752cf2d441c1d58441fcfc9f172560e214457e3e4406a508a88a3c389081a358e8ea220c49c045021262007508358449c1c4244b05fd3acfd3eea437df2cabd118a35fddfbd2972e3ba2972567fcbbd61e266e82689066f4e9707ecbbaf322ecd0d22ab1f5f1a1e4456ff8c1f20bef59d585a542a4fc3039a1dc49dd4f7d3e880c648dca1df4f23054d0e687040634473031a1bc49deffb696a405384268ab8a3fa7e1a1ad040117754be9fc6157756fe08fe900608b99fe6a80b107369cbe5c65833736384616513cec872fa496ad2942c1f25b59265ccf5d68a4a8aaa85e53bc5dc6eada8a4a862ae6ca15c22a09b96cca764fee4d28989fcf4f66ac0e6d3a3ae06be7cc24432f8277cc932c61842962cbde7e91937b6622ed6927183dd1e6c4622f7ebc0c2889cd438374444f0e539365c44563f14a858f2c2da7c91fba97879087c72038d20f7d76ba3746d926cb46b9343084a7220358ecd1122a8c389243a8a1ac7e68a08520129014b9e6333456409616324f7f7e7006a1c1b1c447002e5fe980cdbbc862c8d2b77a5a1f3bbf1747eb59a3bbf99d6ada81040005e003a182ab7d5d0d0328c86bec09ade6a19bf959b13978bc0e4d2b20a243057647294e3ceca8df9978fdf4a8df37d8cf171f5f13fb67c7c8fef3f8d03f3f15dc873647c043fbe1bf991e7e08fef4839be17c51c1a829ce56f2385087a7c2722e2d82c35c824e63840495bca1edf813c67e6593e6e3131a746530c696497cc83ecaeeef5eb9cd3b3d17da51d7d714ab1c66d785f312c2909ea156b3c1b27eed5a0ffea35cfc69cdc51139e5e21f16cd8afdb76f295ebe8156c8862cafe5c4d7ded3a94e790f060036b62e3c4a4c4060f386646a1beda2eda883ac593f6bacac913961387146bfc63ae37562959787ab562b932571a82dc460a364b0e50f29c1e238d86a0ac2951aad1e4393c966a34fdbcf0327fefcf8cbf5f69135b79f00a23f7d02f73f46cf872630ee9854b44e5652e10df22a2fa199748cadf0bc4b76e0ad0cae743043f9f063f2067f90fb52079adb5ebec8d7e240357db55996b455de9ddd8496b595a5abe8f9e8d96e76919e3ce4ba6f2841f4f788251912be553625d220b882d193e9690c0e42329d6201d114a628889222424f171858f214830a205530f2567bd9630c99ef26ea86417ece368880da31225ebd331f8e3eb52a294659e8dd5671e8ea9ad525432d022c9a76388b4f196e962c4f23160565e8c5470d84a5438ec254cbe6f30ae785db1d403c80148b1e627872830e64531c51aff5553f66f6992fd750cf1c20ad9ffc361b462069f430e496606b73a329463a8d210f4b1b40cd11094b550b94433c01eaf1e4bce72a4cf8721d98df82299195747111dae1ea31e233d478dd3f23c96623cccca8bcb54b22416c127057bdc0368078806a058d34a94f492252f386c26dd64629477e3cbab1a4d1f0bd00e10ead5944a7936e6a374598ea206730c49a1a24865f537b89c553494841053131bc0b8c1e7b2586e68e2869f66f9bb7cf821e5287296cb59398c7218a1e2089e452dd386261bc0e81c1f4a1a87cda449131cfacf103ec427031bda2ccd2441363356f8793a25c50a2b9eae307829e908a987518f2397e68a353d8a7a30d1630887261cc0f0f92902c5104908696144524ccf51cf9124485a700fa0149795ef5bde9fc712be3d46643c1b2b2fe3e198b9e53d07d65bf5406a1c96971830998a2ae5331cc62b98545429b108413262601f422fbcb2ffb579c51ab7dfa77836583ec5c331f3eaab4a6785eb59acff7c88383ca488200f231daebe61e806a11b8cb821c886251b98d8c064439306fd79488184896cd438372811417f244364ff959f1c45395c0de628428591ecde8d94dc826d6872005284814b5a752f1e8e94fc4526006939e4909810a393b6e5637836bed5aae576d98d396a1123e3fa38f2c1727d18c51ad790221f1f3f3e8086086a30e67e3ea87ce0c08711cdf24fc222f5409224fbbd3d469ae53d4640d81c453986e470f910f29144fb408a3b2cbf82c356c244855fde06309ae5af445b6299588114ad487ac161b44229c905dbd0f4493392fe885392fd57afa54fcafe7ff448f9e44ac7810de315313d46a1f571e4c3880f231f413e8cf091848f211d2eef31f21c1f8d8422160943342d7a20f548eaa1d4a0bf0e97e7f450b224fb0afb106ac2862ba3378a35fe3c967830e91cef815464c3559151f65f15b9b27fac33522e918c8fb93d909ce558460f2d62e417dc23c9091bae80645c4e6905e439282667f9030d65f711ca8e6a5a0165ff2a2366460f24cd5272964a92b33621a1a1ed4614206c189f004401a0f8840074274f011da82ba824cd745649cd32a64604000000e314002028180e098582c168344d84d97d14800d829e506a501f09b42489711452c6106400000000c888c088cc3001c78df9401ffa78fac760c56d42327a326cfb3b366ea55072b15c38c8291105b5aab19496cc0f8187582edbdcb332dede99a3ea81e96bed5219b9a0b8cc6abbd72e97b2edb3ccf18da49db564be31d222d9175793b82498369d6dd4a2c06f6088142a32992895ead3d6229632331141ddb9230efbc98cf8205fe268dcbd8b09de249f6df99682257c9ae7d79eeaee7389c56d4ca3110084334f5672c31b2dde9bb2e62d46111850069c5382112fc7839e59504356a9b25487db57673f682cef07c3d71d85fb4980f87106ced9ac3815a3209319d796a111183805cd5b10f4094563a18dfd115d1026859cbd1874b8e7c80862bb4368e5b047bb8539d5063045aea5e2de9f9cfa8cd7a8ac0f01fd44204e45747343c6d4643bbb9b584aa09896abda2fdf29d7da2e5bb9ba03e08295fb63512607ecfe8c772592af033147252e509b1c4a1ea19d0a340f86029e1cce98b44a45e61e658452704d8ad8bd5549187baecce0c785411311c2cfe3eb124b89857cdc0111fe06c31cbd08daefacbec33600a36ff1604425469ff4612e3ee62e265f985a006ea3ed35825450f81b27e584c43d090c879753c0f56228cac8e30e4607d6e2374a2002e7f2b7fd3f6016f9ae1f135cebd2981912f4bb8e848855fb0abe1860d8cd688aa23cd6864771fc2a58991d0d4865f5a25cf80b4d9fcdd9fed16500c41edbfaa39f95a2d69cee419e41d6d1d3dcf4bfe99d6b65643a22b6bead68982cbd754dd3a91ec35d1e9806bf32619b577611cc371fe4f87632acf179fcf40687916c28d4977d485dd1bce99d8c4705c1209e7dd3b17d5614c457fe541a3d72ec044b100b8db235eadec8c3de1e2757e968699e6ad6c3110227a8235a09160d89e6e4273c2b91fc182410aa3c080effec588fc4d6bb21a5b062885a66e2fb20b3c929f34eee957610e63c537bb843246db670336cbda360f289dedcde6121e1bd276a509727321e7b3223582a8511476a3633197c98367bc0471cca54960026206894c9951349f3814c1742a62e2218a3bf87550d2491fdbbc8eb04f8c0d50788007fb10e591eabcbf252024fc9c040717241624d6c132f6ba4bb28024e5063b2181b38550adfe3a8b4b4cf12465e79293e7588120b42e97715d69b8e622774afee269ea1cc3772deacbed5d593bbaea50e30b6e5ce71d7be466735d152ed9a9dbdad233354f4d0601299bfe8edb5dc0fbb5fc4029165283dabddb9968c763b8d8a4ff426de574329b370e8935786b6305a65eecf719cac641f34f8b894dac7199ecd72589048a0029ea55bfdf67314b3a85511251cdfa513573cd8a075d89122db0386d160b37cbbbe09b866ad2ad9abd530109cadbc1c923d282eab69420225a26c71a15cc796d926823947f276e3fc1aa1cf0a4123824b726a59e5aa04726c36b7a5ff2a35e783a60f80181d08f1414651a961ac39c50ecef4ffbf9da13b26ea752662316c06dd97a5453d091eea21061f0cbcf6d2b11d8bf8bc13cf6d909530d8ba2eb4db96bcd0b5873ac9f482763b690fbf6579d31963abfd62879d04268f41f1305cb2f501bf91c04312fd0c5870088e9af41bcca06bd7cf77974c1961214c007080619caf02d6ad986e311cdab3057757db8b2a886b07c294334a888e41ab8950d7f01416962420c2e659d2c497c74f8b8cb3c5ed4bccca16f540885f2992355fdd20ef6287d12173033a4682f64a2575e4b2a38dcec8c2bcacaa19a9bc11be35bfeeb93a376b15904f6207b14a75cc90c32609e8eec257a9b17f9867fd3e32c474032118225c4b9c13787965d6ae6e0933e52d5caa6ea1dd60bdc2038233a7869425917c8cc0e0a6293ba146b3f3f6739ec942a18acf522d36a333d64e6d612a2933bd42e2a86fdd04668e2700ba22318bbfc3f84d2a5ccd5c0e1186b41681c3991405bfc9767b5342e04e9a3f4620180166af04d4766f414019fe1937b56b4ef6076655887c8e6a0c443344be4fa7ab0b87e803465eb4c96008e8a1b95d9b8898fae29404c917b13775b7830fe62705d813d4c465cc620e6658a553cfde13b2cd76176e806b57ca650298cc413c9ae096f045041e2f4bb22f0459dbc7adf14ccd94536ad1d25d3011c88419c55a500ca1211bbab6602fff1195b7a119d9639726d0442f58019f6070621ac85b1d9acb7d3a9e41413de82afff67fa7ae6adb168f30d8d50a0e77de45b55aa6c3c696dab82db53487d4d4bf29305ee959318d233a431aaf878f75edcfcb2fde70e04128537d166fde3b5d29c0900576073ab19a2a9ce28a705b3f8b912a8a2c18b63035924ec3507d22978ca1c97948ba1ef9a0df245db99f401f255310dc115c288e2f16fabb33119e7fd4e81546d825e3eccd0e247fd60dd30328800e44a5696a18ff5cf7b6f8f363a2292f9a6e95e2bf891eef5152e39a0f3a687faba32f4c51a6a878dcb22e22a2525fbc415fae4566484ae5ee560eb80a4dcab5964f06ed124a56d593c01891432396e4a813b3109af1cfcdb065266c5f256ca75ba8bdd42bb99866e34715c26c19b31fb7b2067019601a07b839413d0527eae5b35c1a8f597880f20ea92c94965062e9a151be158c4eca73585aaa5ffcce0f902eb2640788648b2a4b10027d1167f12243651ea1ae07ff842cd8771de4b5c260a8ef5c48f556c805d57922b54314c45340b4a8fef670985570692ac03ccad636c75f258f14dd6f59882c7c4b8408134781c176d8d40b3acb8116aa06fe8ac1e81ccc157342a832483ac9b185eb49d99ae8bfc6b5464f2831232e86ea14198fd7c029813a0ec8660270fd24544712293bdd3a4cf834581fb42268a3d011e53289343fada5b9a0f1cf096fe5fcad244ea4e0b697264c7256a5f6adec7dc6786887b52934b52263dfaa9e6036ca12ad84211c3c9ada6c6a908dfd80d894b13e2e811576890625995070d2940032950a81743392bffcf5aa8a7b0feabf91fbbc715dd028706977e6ef3477ff66dac2d20e6ee194db483a45f6fa697d0c761cdbfcf92f262bc261533ad041ca9907a1cf4c8b287a390ac3833610ab2bfa679597a3e00b15297657443f04cccbe2e7a6f1a259c8c980b5e15a7d8a82db174a968656ba852cbcf9f40e59d29f1ad98a22bb7e672901361f247140934efa03201cb8f938228326c4169f2cc827812c56581729bd3d240e853499d7db25c481f387c61627be577c9f47c25c24e74d51a84e4eaff6923a11e23248ae953007321fca91851e09111ed775f6b45b95fc20d295152fb85ad32016fb0b12c83c02269f028d117e6c23abb989b5d5f837c50caa781bee408ae11d6d156ba4c0354f00d79198066d8e5667ea717f58146d30fa2b188a0e9e3d3abf89b58611b9e424096f394b6c7318a926195a1cbe04e8abe860aff88645f93f941bde85337f531a4fd3ab386e3eb2e6a03ca17d346237033e5f2e7029f6123273274febec1993f621652ca73e279d0295da3720d0617434ccec5575c1351460e289ac3cc540480877c6bda7a7e56b2d88279c0d90fb896c8dffbaecd4bcaafed9fddb3d5add53dde7f77767d5fa9f4856c3f73c8824588107c1eb574af5e0af295ef96401346028fb767c5d2ff01d54d311d95e32bc8a2b1e3da7db3dc0913156d30a359476d363b29d8afe70b931c140aeb8450664b189cd1d10c2391da0c906377460b269cbfd15bf2f28113b1cefe9190b2148d1c0f1a4ad1484c37a0b60255c7cb1b896cc0906a27130a6ae7510f26af0cf6f781f8ef7f452a1068fff0248c18175c674d2743f2aab6593821f743dfa604c68314a091e8b052493f75266ce750d13a044b605458828c1b41cebbf5b0e95e53de03e0c89d292c0c827f67757ca1f3f6db34f7c356af0678a8018fc8991c8f2da2510bd3202b809a7f44d50188c3a8836b0589f1bba937a096c8045aa9d7da547f8b104808d35a672370c5589ebfd656e8e7923ab4e2403abcd233154cce0bad4e646bbb4557bb02e124b4e2999d075342af1f32bb671e1a8fb90dc60059a6ad1c0db18d89a7580038a62bf88621ec128ddfc1005caa722e7b00bfefa4d4e09dce131e2fdfcbd3fca3287f4f9ef7ef0aa93feb9eb44baa188d165d789a09800073b49bdd8a40a285a85af4cb8f21077dafcfaa211672f80b76a8ce2d4e4d4fcaa51870f80bf5d35948693d27e97a279ea20aee2a4debfcf58cc1e5595b8a6b1f50b34f223d8b4a4cdf88bb5a9aa51b5be1a90c618b17d552f1aebdf29493d163adcc26a35c469e22f25a2b7d63bf472f89497e3d8e4ada236674a35cc5e773add9979bb7be1a219eb7b988a2e1c94edf39572850df18268a6a311d3c2ce381999103b3fe3b0b4ab004e767ba0236d8c587b2f16be3b426b940f3352fbde4c9f33dd3ad38c218eab75ca1e59c8ea30090cf73b4337396c0267a0fcb4dd24b5a6929930a89b8470eaba4bbba1a70407dd32a187efcc5a4e20654b6dbc322460510b39be260c4b8e7112f52fd8de27acb8a64dc1efa6ad62bcfbeba2f767e42c2b998cd66353e95320fe8aa37a40223f5dd2d760dfd06034d22dffa64ac550e4464f5a2c750463195cdd44afd311ee03c4f60eff94bbaf2e795fe1b1f251df67e5667955730bdb9716849001411e4b50eac086e84e9ed24f4fbd631ee5fb917b215feee7253b1150eec145a9acfa5d1b664b15c9bc595480d8233066fc2ada14ab38e72c422c6bb6dfe4fa73286b63f769b5aedd8617e3fe0c5464402592e07bb8a1dc8f9baf6985fcb673dff57dc0954da59b5265704397460ef09a98a838b23df415279f47f315030f8d90d2988ac5833bae66c05b06a34029402ac29b8785e06b662b1782c341e11d136b57081b5248c2229c22fc7a8bad1d24aace43a18086d7dd93826fa060977deb9489086287f2807fcd3c035b66d224f41c31c2d3af48d4e2fad497eaa68e698fb33a007f6062ed40a23e3b21bcff5fad035b5260b1b6adbe42e7ed2e6aec098b5ec18281a2ce21636d35014c1c25dc9c5709696d922e9f418c09c7159ff333e81020774ae2e9d5eaf5f5430bd30303c6ba61fc2b897468109f079edd02553b96896e040c681a7a86217e10318173d1b6b1fd24bc5e9435a8baf2c22c310aeab55bf255d3c200883174c267ec06c06f43ea443fca81ae3c43e8cb024b52500400ae08a915cf8c45c84d572239c8abad80f16ede7a267f29b651c163f2bd5e6168a79d56bb219e580142231518f8a432ba7f9e83dc7df7857c118e67edf6494a475299d68b04bd33b7141231e9f2565cf289296cf9ac3c4605a374ca5229cb0f5983967db6fc0dd06c4bcb983960c64cb1757cd3013e82f9c4c480982bec2a2835e7460486ea6fa0018c3dc5ca11099f1aaa7830de111650c85317e15cd7c645b1185ab725aae842beee48e792f5df54b2893cd61048cacfb235ca4ec3106492c38cc4442d24a6c80d4c43e8c461074023877688f72894f84a59b7107ea154a4282de1a2a9f37bf017783c7cec7d59c498e5345a6090b8d390099f210100e66f783bdab0674b5e3e3addc271ae0e06a9424e7207df2dbf6ead20da50be05eed2e7a1dde225c635a461a1265de2e57ab96991911e0845348f3e9ae77b6a5dfa18e7eb57bd3080ee92caff4af87cf972699536f2a8610263512f4c70aa19db479508f2777d280c3a4963a9010864e6542b96d851b7106e6db530aaf33b12a10e471f2927b81ac62b88f1ae88fe10437af3110b8825c2b7491c8d87fe0fe419d0322f26d32c38191190eafd3e44bc11c0ca1937854167324ab114f5aa303d66f1f23fdc4c6305b5e7cd17a9a27f6851df71774429834be1f6ce0cd8523543a9054c4845a1dc07cceb32964c48136d089c51232cd73c38dcb2de304d25270346e00cab624b9701e7c32b305f96eac3aa7705dda60d8839a7420b564383a410c028341ec82b8403a43dd67c3d1ebba63d52234a3087a969034d1876a323585f8a69e292bcf403ed4e4a3645e3b8ecbe2e68fbf7f99c7bed56620a51b0d184666b27bf59ff5f84e84dd8a7e8cda96285b38d4e9340560bafcd082ecb53cdfd9c297579dd35e19957a0b6be302eea24f4bb9afba9ae4ac36ad42428921331f05e1e6718afaa3d13843b4d59cc0ea5168eb00dd2deda168b135e29b518226d360773375c9c0ff6dfa8eda8f990972760092e8e02d05d3b093036c2666b0a4b49741917c1eb29580420eeff998242cad23b3995904c81c2c4c614012e23589e73dc1564aac4abb093f5d313d865e3a4f8934728e4a919599320f7f9faa6a4a4819985b62f8a82076d37d38966e3a67174269ced64d0158479ba672402923b0278037c9737bd2e6dee3e4da01fc4fa8ee61a2c1ecdba9b15234c6f45610049adae4f126277977f26045a935fcc6f8727b4507cbe2b597b88b2bac581cd53752b521faa4a8c6f1cd68a06cbc7d9ad5e7cd3a343f89a2d30d2d644d2ca34b1081c16d5a0e35ee1ee0eafa3a6d147c951592c733402128109e1f7ecbfc4b166ad51d0d669a54636991a176fe6c23b514e052b2a5a8405d307e40900b7fb7416b9934bcb030b1ad843c1ac5b428deb5dd8dfcf713b4807f1d8edae113da864c2975d0ee0ae210c4c9f25e999093ba5ca2b3cb89933dfb9fbd50c38c1c621ed40dfc78169439a61da783138392bd9bbd72c64cfa4c124b0b786567f6d053667f489377217db32feff4de6446541f2dd4ffb9ec4b9274f491fd9de145540649b83b0dbb8ecd3b0588b42aa1d57c03380b259b99093e699fd49a4c08e8d8e0ccc882814b6b51edccae3f90f2c318ca9512067c8a2ae9c20bb7f9101d365845667465e4d68bb7790f0c6d1a174f6e90d8b1c80903a1a6aed65c7a4c4f3191a6b5eb08894368ac11f5e94086970720c24d28780c833c2fb7011f6d0218cfa30b6956868140932be8179248c319249b4a71009eaeef096dac9017adc217c9a387e5d54fbdc5d6e470a9b9ae7ad6052ccef8e6b41fe5b73b9c58d33d4eeb2d86a0bbeacf52d6ae3bb1d8ece8b21094015034931b9e8f235b72d84aa61c5c4e0c5502addca6d542486c437c9e49e4e9c49c05cdae412b93466618091e81fa9d922e671a9e5381a2e47b673b04851c863679f5ba4bdf78c7df7f34db97357b849e55c556b21629705ca7c5ef0d8f4162f295a45b22cfad130612e746735bf4cf8cb86fa76a4c0d69bcf8f616570cf93cafe1c2d52ed3f73f99eb0f047607717386a24fb14e95b9c82e8f0e2289e65df237b8d3690b8d752e9ab2258f7cf97ee3b0cd319a8975f6339245cda0fd56c9b0ee13a0ac1d0567cd78657a71e61d2ea92aa147a9e65713eb878de7ae28b4a3036004d14b18135e8885043fe62007e837587d794fae876c57e5f8f9614e8008288dc4ea63d6f22b1f7ae07f0f82f9b6430104079e3c643aa82288a185b83a9385557d258bb3cf069fe8b076d53fe8bde85a19dff2d4e4282e7d11e64bf19029203fa868265809404f4521915ee31f2d8ddd8a23bb90d51fa813a0e4b77f522b00cc39ec76b4962245c4723dd2df8d7a43a1c7aedcbbf8ae5e5f84e0239cb3f159d398d487857bbbc432e97cda05a50d26298fa599939cf5368451e8d140fdc742041fcbbd2afadac98df6aeef9ad69b18402539d9166203fcf2a76781bac2e1f1edcc3b59fa3a3d398247859b9e4812cb8ce13b41fc185106480c21a3fe309b1786d8e437c77216e155aaca1b1eb3c7f228065283b3409c5df5cbe645a81557d1851df4d6b17ee409c159ce61f502b1db6adbddd9490b6a5cf046823a07b647d6589aef0eb9a2c344dc4b28a5edba808e3d604cd9750ebbea054ae8a01c4d60f8297ecf566fc6cda1827d4f7bc6e600fad179132a608b29fb12030ef926920cdfc67b303dd4a20f4b16397180f64b3a277c24d8ad130b828fe73c2dca2f78e36d57eeb8bb6dc791d91f9745b11c4fd057aea353c1a12c126ff5c1d11795d0e3f957baf21394879ba7bcae75236f94ad08454ba2723a4d31107ac770c56f25f8f051c986c95167583460393cad16afe6441f53821b42697a30019134019d7fc03604cb9f8259cb56243b1d5eabe4450427bff13675aa8fa7e27272e7144f5afcbd0befbcdd18e05a13de49bdcd968364b67a476abfe9af9c842b158b3e5e20002ba69999db00301755e2a43ef63b88a519a8df9894d086f43d72304dab839371eb54f47a569b2b8350fb6ccb3612420115d1ccc2e848398fdf75bec39c8f813a57603517fe9ef11c06c7f47fbe7c4da979ad4ebf8d4e28726b52684022fd5172f5a08cc24532ed734e83421eec8cb6568b39adec40c0563f28af554bef43224e1888f7846b41183f9edab86734a2236cb2d4c292b98bda6c5eb37907a4dfd1b227fdf4bae0be69d8b81bf15d3b0e0bae62a8917030849d508e5ab0bf6656ebb21ee82a987aee8a4f765825c88226003f3da5d317dc90f30e6e86cf9fc9b4006437753055d99ed9755e23aff7beca4e9e349d962c0bc9f54f93d2a8570075f48f07e93a7e7bb18a7fd1350ac2775389ab60fe193abb38343f8250030c3b22514e7f8e06a3da8edc0056ac32f4c74260d32f47a89f409960bd0ba46f21c74fb1d2e64a4c4fbe007019b7aa1e676fbe4f1de7ba629a009170efaee8451d7c8ed8760e9e42c996fb5f0a1c631ff6e6991c3f6a6890b2b23a5e8ef455aff351a5704375d2d56198faa3cb4e8f093403e3b420dee8030fab1b10d5d7e62d2461cd89f5e618b0d75dacb9b57791a971a3d7316c308d81d7a028226e0f5ad6183900d3badf3de98c0ff361a2167115a4281f054fec655bd48bbd1b40b8f23308885c43ebf9f179b0c0ed8e8cb2f8ce8e1b8d231e9aa695599715d0f1a29b016bc004b29cce9c54cf4e6c3bd0ad6cc9d9edc987c3f8c6106c460b33546e5582c7103be05effde56259e05e0af1cc827468f7f1b458e3bb3c84afa94090a017607582882857f3ef96f5c014028a0f4ce8b7089c2c1d5600300e5602ace28022cf711f4915dc6082978e8661aa7b0cd4f179509d555098f7c92bf14ea65d8abf440a3a62f3895b1ae47317cd0d6bb9b1eec9631c44ceb010bfff0f959582727300acfcad2cb05c06e8ecb9000a32bd56b6d001ecca63c05822ccea99db8da6fed843dc1f8fca71dee11cdff18ac6fdcd9115667c06f01118f7df723c9a0171e5eacc8bec627f2c80589408cc72147a20b6ee68fd4a1dc5251574f700d494ecd9de35f46ffce482e607747e862cb55f48ccfd0b59b6d41108d080fc0b64d5d9f55d9a9f9ff3207075d3dca52071b1280de802a340d842348a658a86c13386ca627ea946bf36b16a60407f70519f6f4d13a3ab333eaa65050aaae5d1f26d08edd0d5a3cc089260b7b16514eee4b495a54c9b6129d9519c86309daa500c37e0447316266c3bd0e08952ded88c3a3b3859436bf0bcee35ba4a2a2429dba77f4c47cce51ae6e1f15d35d232de4784f4697f581b44a2bfcaefebdbc7b10506fd3ab5a228e53ae314b9b06e657aebc01e144c876ee1c063828f25c6086d95bffdf11f088a3e78ba8f5a3d211c4d441a31fa1ee0ca52d20f9d1d0d1432ab353fed1c69dbff426af9b1982b8aaf358a4aebc2d32fc8bd450557d760a01ee3da32bbeba02f5a7e687fddea5703e239148578f0cec6b0cdce32f303a40a0bb13c4d5df73f20373ad6cb90ab1f5231ba63519bc0f08e5845109c876d209cc2ecc7c0f48572d43118fdc371c5e3c20fa72e3514fe804cbbbbd9ae87e1680ba3d13fb001be428c2da59518dc3546f76bfbb9b365ddba40d21b2043da0db62d8bae9800f6d7f9f7f4086ecf7d5b784d4c76f94fc63d53e01b99acc301db2900cbba02c87e1fd99ccedcf842e6f34f48e3cba2ec5080e1e7be361246f479998b983b3809822bea37e477e1ecdf58e2ca711eb224707b5b8978274299f78b379178b285fa5c24630d035961a09bfce58b11ca7e03fbca77ffd2dbb485a2144ba90040d64e67c0a7d49084110d29a34a6549b61e8d59be0278e9ec2fb22f2f99bc9bc4ddb1eaa4cebf7221fee8591b87fadec7a52d4b6201c3dc5993caa62c219e18bc10f901d106ecca1e7d5efa8b536c79929a36457f675837917b26b39063e04776c72d3d6f5881d6cb855c5e213077dc7adc175bbcec4ecbcfc89f61184cf49a46ddb625aa45381c50d30e75d23eb0c2058ab71e279f0a4f45773cce4e3f6fad42f2ab193bbbd369ecaaaa409032c35735ffeb16c6900e14a9fc3c62dd133de0383a8e4b84ddb296df6b8d941c6de9b478ac5c9f9fe3106b87f88eb3a04a9ece008fc75c29a518b0dcff5cc1ca265f53fe58fe83db1e69717e9e0e4f8188d000b7dc449828df3afe9d9ba5a279009fa8fde64c826e9a1c619c5b7edea24e29fa7343ed3ed9ac5bf20971dc840d7ee4a92967138d12576a6c41507d0cb917fe8d6baaca956d66e67f13b5b2cc862a97abebec156faeca326863728ef3c2632dd8c8c89ef9a2b85ac969d4b2b3e9bad24b72e9b1eb4d753b9557c1e6a6f2f54c78c4f427cb7e04a9d00b2a29feb7baa2d6d266ead65c0b8b7173a4f27c406814c9b0b1097e912ca1ed780fe88782ed6951db51b857dab5d33c43d461bc7675a352bca560f89672a41aa25e48ece888b2e30eb71070f97ac515cd1acc5b7524fe1720e3d59a4506ddc60803cf7b3b2c1d6202568bbf7178292a8d72c1c2dffda943fa5ef41682840e141981211e247a8a9d89553bce02ddf745b5d9482627b51da9df5a4e1f1ce6d7460baeb6230188aff5a5816f11ead7f46ddbf11da8c69e6db2047a3dfc60f2f32a62d26689bee1b47060dbf1651cbd113ddbafcebb671c87c9c8761c208a6e69134c6d1287707234e80e7b93edc8b614cfc689de086450516cd73d3d1602b40712d2ce33db9928a954bdbddab08b56bf3700960e2aebf2fb3157ce55b9aafa53790b38d009f89b40d630a5d3e60789cd2235997ce3ccf5cb99558fcfe9693999ed35571daa06233b9a1d58fddf6087df42a80b60ff299442f12505e49115814b09eaae24c40e2af52ba2903f8caecd27d055d57715801c62e6cab919ac29c55197aaaee2949201095d83813ce20f00aee61a89c3c4bbaaf7de46ee8a356c2eb18aca186f58df00e5baae220ff51b2beb2da37990d31c6998fcb2d12e7d033211280b50d468091954a739afe238e8004cfc7a620511cefeaeda4767dfae3308000f0faec96377657112d133bcb10fa199c7521a1085b6947a15d9f39fe9e51f87ebdd9ef9e16c569b45ce86639f024b1e3135256b9821091d99ab49514666da5eb7a10126c7a7b9734a5a57d4fc4f333704a27d9e2af36792a36fbd5234751607f90b004f6d964ca8bd8999ca9d3df153f957cf5ca649d9fc8fd8bc90cdff88717cfc0738d9f45aad1870cbee3005455c09a9855c6c7aa0c031609215a4504f976fcdde2e218772ba18b10450f58323b5d5645a7194e0731bbd71fb50ff356a875d391308ca02d003cb7e52c9a299df152c15f5745dad9b11edb1ecd902c8e99e05936b93968a233bc8ce695a87b0a1f8644f9a6cc87e1b481b835345efa854c9c4a69da3ed742579478507cbd16a29c4c44947c2ccc265a094f70f64999a8b879815a8e9431205692d5113dcf905c6c2a03bdab2ebd827eb192dc1d226650ec6174b099ad7b92cec5fbb4f40a95507cc38ae3658e43828f9f4fd886bad201c87b1a969384012dca2a6b529879d2a5009d8cf293dc815afa20eaba5857b58c40da02a72086da733844149717c4096d04742bcb6d0983f3c879dadf6b914149aec14dfc9f3397599eb8f9cfeea937ca2b18cd1e1d56da79e8f8d063cfee135577a7f2c479c0a26edc21efd9f2923d0e2afa643514341640bec278f028a646eb52b5274eae1c32754bf7aba447ed78dd3804edd989b7a677abef11d85557a64d066f0df50c2439a3a7bcd29de5118fc29cc6332aa30e39400613271ae703db1b15a836822b10d2e3de4762a564b65b6cab455dd3337ac6c8f4ae85ded7b5600220168cb9bd069e7d65804225b5b6dbf077ae8fc534f4b80e76769599f64126d63677f260e6521aece993e9c74abe9d4260bd7b7d1d46d8b198fd206c9638fa2d37c3a9a0467df4756e28f51be44052f3a420b16a68db90b0c4de0d6290611185625d99c24071c66d7748b4b2f264ccf7b2ff229f2f8626c938f56036ac923a52ec2b6da95e2f7aa5af250c5a851f963b22b568c69e42485dd4a937c95a23ccdc33239ffd180c9035535a229cbf05d34d9ac5ddd54bb41b08a5a96f0df0282035403bde4e6b7004e551091732f506fdb2a76b012d9e06d8515a8ec31f49a6ea52b9a0b8405628efb53d2bf1123a2cc7d7299bd90da87f908fa977bd8ec78a13a8f8eb81f53020e6d121c63e9e5149daf88fcf92a24e8ab4288424ae6e30a47a71230ae988b4e1f8a79da2f2ed5ae5ff79feb4162df2646e6f633361d14c6b049b9c6ba2b6e04681f594db9a40d10a8a68c50459035b55e876117760c4df119969d3a2ce32aab8b33b0250686926c65095565f09f49683520445c5bf9b2fa6037f94c8de2f237535f9af29156c15f09418737b22d2345377f9cfaf8783172cfd981bde3110578922cea1d22b0a427b1a8e891485bac7da90e52503645da690ff3fc54b9aeed33816c5cddc3bb1970ab992ef64d1e847ac2415d798a59dbf2709b4048ace1afbe62ed6e30811747cbb312586a658fb316253ef6264cdeec7d20b55cec34f5031d7bddb686d3abfbfa1d1ded6c070d37c2eb77389349e18ec8a3546742308536cb73f2f5ee3946392e905325ee24a00ccb4009da85827519aa522428116a9e59cd45bd57223ae181bf2eb1276d79f2901955abebc15caf2ace35c224016005ae49017028d1a74dd5485dd71c32faa7ab2774383126c26ad8590f7fcdb28e8b85e9802debb3d151dfc708a8896503edc71cf917e95ce4d7daaf2bdd931d7b3e0e283202d0fcd929e39cd1398e8867bf675ea9981a99ed6b082f1369fb2c8e29214839d2e3510f3a6a65deb67cc1723202f90f2ee0cc734c17b85e2daf33ffe2d9060e4c819d8252bf2efd667043bad6c933807cd32934c0ba3e54d96118d147f537c6e7d30ecdcc75c9320cdc867784fc5649f439f53a9aed9242578a18dc11c27d8e8e6b175694f4613ee5fc8992dcc5a0f4a7dc60f4405d042e1295f90dda507c2514322ad5223e3e354325ef9ec0b7e7b93723559b88cabe651275001887cb1d1d4afdbcf3bf4208063ad0051ab8db493a6855b507402b57a7b9d98025e49b28799432e9d6d62ba1b75058a4fbb0c16425058dc16be5a423910ab88d8e8d40d7456e94ed228333b20ee4a3567e26b14fa2325278474597e03d34243a9c38407451b8c5f36b5444597bab1fd4754926cf319922b99febffd407a57f0fbd875dfccc0a3d4ee4b83c3e2c4e6176367f1adac5c11da91075c5a43ff0731c80fe2142fa26a77ab9641cfe4369480df5d9b173d963767fd9b8f1f048047570c241bbc522d34172d6dcb89fb09f5193bc34523138766b086e449f094f32f3a9e29536683599024c44f49e6cd1ef313f22fa0a3c668f9208d51049273782436ba40312eaa2e5d62fc351fb18b8bff7d816c91717a0c99c80ae2e0d071bb32a9eba81793e11db418fa80da0319ce53f676c466cbc121221b195f65fcc6689d9ae904839456c3e9d9313119b2153c4260cb4d1fc1ac6d8241bc644dbcbdd8f564aa77ca062376ac88c83d9f284bdac41a048db56738e9e248839b8ce555f0299e0f6fdd4fdc40f9fb968f4bbf580622a91400bfca5db6747c0c85a078ae4baa88378724a71ecf09ff0f5996a4b5a3f7e38501049cf7a3f494c7c241cffb405b57c5450e27ad9c3fe71382d6b19b1373afa7c4b4af5f5f9a82c903424a0ed77a0692e9eead84ef0ad27371bdcfb5cfc1a200ca1e7b65ab40d219f7c3e0cf3396e1c322eb8cb05013c502bdab9271dee27d25e70c7964c847afa4ed49218c83a7748bef43e4681b586f7f8925fda488116e01b3129b7cf125605470c0328504f3f2c2a3c4f7f514c76425a39c87b9ec4e7183e9203d291d1ba4de075d6b19ffa91b6ff1f32d82a69f87bda0eab5dc7950f2fe9e3340802ca091fe96caf2fca80f8a5b55af2117f49e8c1e9a06173ff67e26d767a43e269975eefbc7bc06e6375ada682214ec342dffafbfdccf9c2fa4c612151f654a48d28386cda6a2e3c221f03bd0f5eadec29880eb9c108716f4161e1c9f8bcb138cebe61e72ddd98fcba025d46e7e8dd68b28168227ba5a0fbb5428fcfe8e86f6480cacf64df14ba6c88761af04a0ae405bfa4be3ee906b39067f4385b431b59b9039361c61ad30be54a1233e947ee395d94680c4aeaaa2bd9fbbdbb30b3fc122ddd8d3884ef3809713fb73b489a920b6bf3ea587333c056ec121dfb6dd5606bbf64ff481d745a76cadc0e968b291f8d00dd530d89cdf81982ab31adcea9748f3c45030d449b1a9ef8b72ee51c81aa7013a7f830d5f62ccae67b297460001310d1ad2d3f0a24faee226bef5a9c911be9f81ba742e43bd2818c6f09f8df1da3b08296555d6d4c50761631a56482f4426dac1b8874609174ac9a940b35ff4bde70c5acd7be7f78e8f3ab898874467b62a87b920e365975384acb82adc89320d16ab45b86e2f371d496512df2da0ca836350848a4e2edc079905def0c0c2b8a3a2e31112dd498c72c154ca344e2e927549f9bd6f599546d4c954add509ed3fc2172b30d2f160888528e911be7f3661a9d8afe01f7adca132289fff0742b7bd4e4dd24d8990ee022b7be2d619c7ef1463f87fa447eadeae27c8d174838fa08c16b60df9cb07040926f90c722ddd2a71f173bc34ee7d7bdd8db2a9736c066536f4e9e1e46ab674b882190753ec53457af659fc9173498987fc1446e20795be53ee21dcc22b4a907979a9f4000557b643c3a66b2ce52c9e7a32b4d188f94686e5187360e3c036c78bfe645b9eb04cc34d94398a49225661aaf0a7f1bad24b4da1369e0ed7815d574e11a9265aa327674a612bb7cf374d75021a7ec32b7b67f8d201a3102d34720e4a4304da13aadb9251655d275e6cf50ca9bc915786e6f8a453c083188c70841708a192644cb51083d32016d40401dfbe6a77f44d23d7c792a2c08c8c186d705dcb6c1e2e0ceedb0dbb236ff3eecf0d567494a2b568bb5b7a5fc9541d534ed3ec5fc4becf1038435edefeb70cd9964fb5da4b0c79c7749ed055e1ac907ec1b8dbb191b86677e64f07883ed504725c3d023c4a24de93dbe7d4e4b78f4aabe1dbe8dc921a3d57fe311bc3c5f5a7c266abf94ac431287629d82f86b5a683b085255be651726c00d42b110b75177b0528159f59b548cce501ea3aeaf5b11ce2f4a638bf434adba60953df1988be2b7097845e171502ce4503447ceaab3f4b21e1082cd68603c495573dcbbbb0c32daf7bc97e3dc496772f912b5f56bdb43671ac033ebb72cda0ab7c14057c7dad11338b8a6027d58e28e8bcc8e6a056855891be3856a56b1401c514e9faab2ffc3b6a4a676f04a478edb0fa725a1eccd5250c2f5e501de28874a21d0e65626e2cdf462102ba943e13966734d2f33808e81b093a37b640ecc855dc0a3a33d6e004df97a07eab547502de658ac9f8a663900fa6d0d2452ecc6027260728c0db2dfb9d1fcd04de912ca045a589ea78a5186c2a4afe9feece866f501e9ed752d0fca354e7eade514a0e91f8f10c55e3548b24753599d7df0d16103ffeb2b53916d868474cbd8008ba9373915cd6c4ede4c8da953413c864d2549edc4c2cb0e4970f29716b44c36bf5446139883111bd81e7ed46f89064f16fafe9a84274099fe99efa0aaedc10e8959a0feb0c88a39c7a69a86d8d8ee0195ecbf98ac5cba3a97c1f932bc2a2947919ec58cd78cb8be70f5cf75b1b6aed86a9f6bc2c067fdb5e509cfa51061c15b4206cd5c2c21561181806014ad40a898ce967d0f586e92a50d9198b14576eb133fe70a0bd4fbadaab7c628e5b3d1549892c7e0487456284d501eaf65f26304d021398c06efaec97218ccc4fdc8f1a1bbab8c0d9c640d00e61d72c826fe0dbe2964195ae9d1eb3685e9629509dccfe971fdb792d78f18f038e38f8b8b58c44691dcd9e500c8f4cd49157da20b0981dde7f516946645a77039b4281d76b839d9dbf9de0925dfdd792cb132b2f4fe80b7357d4c612778e39aa974d9733219e8e77a21e57dee79bb6f81e29f0e63c53c6ccca1c259720e1e1911aa4f308e293f193a697f81bd100172bba0f67b8232302d7b0b7c6af1fe02628aee8f3ab19d0771c34591002a9e08980b52d588c801632dc531c1731ac9a76678348ad7889703d84e04b8e962e49beebd5e39b19bde4ea68fd2f067f980887fc374b75406421080315fbd1a289620b9f4e494b8999512bf9ad266e88a2b687abbc7ab403d8e0b26d3c310a7dfe8118f699b97feae06dc10c344eda7a2297436e17a2f33634b66b1fd27d5871bb2139e9e3773cea1f143a09f47609d1f1b86944750a27a025e84761e031e1867794a2cdb9a01862cd56880b085d2d27329a5162866b150d0e54eb291e9dde793246b3deeafceeeed43d8c269b87fa1bb91b421c4e494094ab6b299b28fac2014b8bf08628d56f0325287ba5e3a563a30aeb06b36aca6760a1ce64bd2a2788e5f5eab407e98b0866d56a1135b6c85f4c4b48fce9fb109c0b8531a0c678811571539e81513345f1e63049da83e2e4b49c684aa287a5fb98668ced80e07f7994f7ef6c285d001112434fa380b2d469ba1f60f0458748f27ea18be355aa83cc5c652671a6480fed33c26ad5ca8f8719087dbd0599adddbe158f1a121bb87a69ac70e9fa0c6e4e110cb419fc8c305386dae0e5d1118d4c12e5cb118272544f294007196164492ea0e99960cccffde09179b2e05d4fd64e37e9df23f5bafd2ad930072c7f741537259ee63aa2a33a43827135104e41b9657188a524479bf92042e2908618bccefcf4de62525ea2b90603d7d2f6b69ff21b2746aff511446657bc571f16b20275fc0df5937bb63f904c5c95a1ac8003df3a4cc5c1694da96bdbcc273b7b1445ae16d2b16da8dcddad1347c925732025f1a72065e6c91c7ee4dc8e32f521c6f18f826381762c32711ad758245ef6781d702845bd11958c7a0b8c3c67365e33619d975aa7dc5f7a504f26f5502c846965ef1ad96e2e82f29fd3f2372110176c0934850db1e81542e1f1b566ad430d6437f7b2bf732fabfab4113b84d096c39f3193747447627862d178d1b8f1bdf6d2547e89237a110e44b6ff0a6b53a388b5fdbabb186ae693962a44a111096a15e09d468328c16895eb7490ca391a7e80ba0ec3937f71b2fc70ebc483f55d72aeb97c6d23e6866f074cd14fbcf45ac89f72ac4054f309a4fd962a8ae489aa12a34e48420282ba2d22c413d31c4834700493b65832073165215bc58a72dd3e716d5e8563ff7adc6bf0e0dd79131f69cb507806e693c679e22cc91596c32157ddde871a13d4330d88c230c2ea37d6a7a59f49123337965678b3619950d13c6a00d73604769cdd2ba74db6fe11ac44a3df14634134442db4e33ea9f0da7e6de802d5ac5d6027c015910e98ec2cb0a289023bf38e59136998071c95c52c04bdfb8aa96404a7febf2618609478980fc378c664155e9a7f5ce6ff357bb296df184c53a1b4e416c47191a871036ac4ba82cbd5acb6b92b87e0d382aa9760bc701b9644dcd3099b26d946ae13d9c79bb183bbb93222842770f1d8ebf1581e5f031f79ddcc6d81b1801979d92cfee3b49724085714f67a7f71903f9c3c4c589462a7c5c9353e13724d9741487665abb9249748d688d0776630fcce9c2d4a2811857cf5e7c30bfca1a96b8c2c008cced99970b8ddef0075bb01503aada8624b9e5a6b6a02c1d5a73cfc2dcc978be1aa7bfc8915fd12bf7e7174fc06f316d8db4d9508d7cf995239455dea479367fc92fba438b0390d1837bb41bfaa0fd72f4d8f111327fa853f42959ff73bea059742b4d538c85ed2ed19c92452d11724c8fc37be63ba4a84880db6f7f3dab8a05f68ba49e22d7c238a5b145b6f10ce2bed8f73f6211be868027bf123edf8d27bab6f25e8f1929048e7d7486c8e719f7616e046f5261b1ded9fe62a730f0e47598a083e616bb9add19e335eea0e46ec5fd2f1b609edbcaafa195ee69f1eccb7470b07d2e33bf1f44e1ba2a75a395654248ddf7652b42a5763e35bbc12eea7366c2d39a16d36d31fdffca3120f5cbe465698a1b211c9b9176fb5e8ce102dfe298350476c63d7a5ecb787c3f0ffbc5658dd91bfed078c360c5ac42ea74a0564b80a3972624315d08713edceda22efc788c02cd7839292993cd36f4977d073a57c0e26c1686d00bfbf78cc705794ef660e667bc407dc6b36ab8f48e617c8c0530d45e1612684f4702d1cb46351db61edb00997e6f21550e8200a554d45fd629c830f022a2251464d1dc796028b2903812daa585b4fb431cc42655c30be315daca437d8420edf91302effb473683f91fb68e5b4c89b658d131433ee4502d06d44872a757f3aa6bacb9d86ec2efa453d79b80ebda41d24e282109ebc2b097ba82f305fad5213d7bf291287873fef9884dab08638c7e48fe2a3a7f820dbceb5c726690850176aed8f503223f103aee8f2182e2ea7ae8c16a00c1b40162aa3a556323220e77f9055d1e96ed9355e974dba11a5f98c0c8df01240c20e478e39c059f0941de66982665ebb1afaa2c77e9bc224ad240f51285555b044bdd5689e8a24a447416fa7ba6f50d07f4ed1fd1d4bd0e2bfa109258bcee0dd3cad87081ee94fb5176300b46a53b7bd40017337b9f3d21c461f8cd668070e9ab66845807fb32bac6d00cdbe099da6d0e025d41f8cc1c67d58a3d177de87025c5330953ecafd0a90263d7fc1a8d80a24d3200f0f7e6442f243fbec516dad6d26f9c4f83b615057a784aec10ceeb212da0dc40fe78e6dcc51cdbd2529cc06015548b3bb158c90a28bc3d242f0b37e9990fb8fe8ff3c718ddf99cb39435431d15a5dd783184ee6c6d1871a9f6cf6d2e09b7e4dafb31b054cc057c1d513c019294fb92e89c902a09775e1ddb835029d884f7e88df4024500c940a884a4889cbb27d278e89aa6e347c9bbde7c3a459ca595de23ff753d4b1ea8f9ca23ce9cf8839bb4e03d60b0ea51f4a70633c2d1e0ab72cfce4ab654cd1834ddfb158b7a25e281017e26c2bf3e45ed59296de3d8c70226f5f37023610efcb1910914647ac5be8406490505a91209809da2e77a1da3de5cf4389f61e6e52836d84ceaee644bbc2a0b9a63b9106819d85c718e511cfc392209ec4770605f085341af78cf583bfeb445308aefbc4f388a9cb60dfafec121f667105d392a0989e8b42bfc12672d54f3a1b5a714dd954c0efb07b4e77bf7db4b7d2e0d50646e3a2e640849ae1c125dfe5fc855a64c716c97795293cb62efd5725d3f2e3b3fe00bc59974969b55d1fe99d1fb425c90b9a4530c3253925b425ade5aed0288cb934d1ae860a5719178d5346a3d4bce4ee67b45ecd4e06595d72bf9402548a199f92862b2646e4195ffa8ba244e0f8aad78e065d74b6ceb635099f6868b70155bf3ee39252a005d94271a4649ae3c84e1db013f749b783d0fdaecca5df72797fa4f16a4e6ad6b63bb92c275b411ae7ff4718a55bbe70829e6f7120ad64f396ee60e9b74f30de372200f2542201c96082af70c78e4ce5e381ab701a964c1baba7e7afd705eec3ae49ed68bc5db8d82ee8ea0f70b013ef4361479259467d0c0f2a0856556e1914c5b077999a4ce464f5b943b916c04039361f00a8e97003e23194fd4b93bd13eebc1dbb476b549fdbb2d230f1aacfc861137815a960c271ad3f0a35669b5c003f9d36ff2b1d0216394ca305f7a197b609cca170a8c3e068bcec01aeff257f54a326ee437a1f85df445f8e3e2361ac0ffcab2b034f5838afdeaad510dfd11a928e2e4aa78191adbbae0f2bfd6f5cabd1f45981acb1527c9cac77537c3be0a2984ac222c77958d1898d891ae2a4b1d84f4cc4693662f9d89c171114badcf6175034028be0feb284769b6322e88e3af8c8047cb9a98243d1d7a3d1eb69bc50f0d42e71e3fb5ee023ba238836a51e5bc94b7264396374f1fb0dd2c76ec0cbdbe1060c21707f3510ba9109d3d8c1c8fe127dd6717313dc13b3c786e16e9237377f0f61f4fee04cd8ad59950f946352a01f5180a3fe947190b6c995f02060b37f1df5e1ba05c822243e3831e3f7e5b6a59fa618ac874f6a2e6dbb46edca4d5a2adaa4cd14bcf6053bc025aefefe3d4e38d829691ef44343ea6d9eaa806808a66cc981b2cd16c34e6e729a2e2c2c1a90402004502bf74b701838519873c4566d18e957ba1d10588e5415cffa994b726b06fa05fe21079896094724b9d5aadd3a8620d88a68cf03e28370a235c18da796614cb126a0109b6f36bd073b18f2494b3a597102cfa5286302e7692692909f84a8b9f2218f57d4254f6024ee0c4b45c61b959b0a30f90d9bfa02477891ec5215d4e2125cda02f69399e192de7e78b96db5368397141dabe2fe7f89e4984dc379e937b92be278523ae43a39cd3637e0d86dd83b5f2e99ff3d1757f02e60e1a004573f6ca31a039a029e080424209640cdc9c15c00724b6a1118cc321b374497f726ee269ceca10eee2755340480a010f90abdacf1fb54980b600c465e6c0b5cc4180a2ab98be75a292cf4359b5485aac83b01b71609fae57b861d47a8a59ecc380d4e7acbbd433a4be0a4169d04330b2234865116b3dab9f85468e2e885a8a93b1655ff8a93dd5eeff35b112b06da25428283bdfde087f54a2d427833c1649c4d65f4284caafccff70aad78bc70b6af8d7606ee5705781eb99781886c20a905278519325870d07340b9dc7b5a79142785fc8c0d55254703fd73a2e025366ab6805f126014e0a99bc2517aa5992c52785a9c24dd5aa4086c1956d21440dbbcf4e1040e48f0d73e2012beef0aff19ea58e550ff6f6e4d43070699020d919e0b5d39c46838802ab0ff75ee35ea9d8ef85b42c952c89e6b0de6bed21bccb8adc811254682a01bf5e611742e3b58b1c002f27cdca7fbd9e03a76bc13f8c438d12700b38c09a05aa3c751fd7f928d5840af4c66f9b00a8828a1eca2e93093030ca0e2e1998b16eb7d10aac19ce91ae673d33e21299639fa81f101a1a32e58b0ca0ed109a95820be89e1d439844f965a4141711a9d4a5111d87de62c52d24803651b81d4c823f06594dc3ec04b0ff6b5a7f2230f1e0bc1b0e27134cdfe0a620651f49c4a2a35241d8ab46a901e57408266f7f4a0a57c7c3a1940e74934d18235b15b1a90619965ba4a81b87dd0df84f73d704acb80ac6c1300456887d2a2d6bdabe5d82e944338c980b6beffac5fa03517d063da8667d517074b160a22eac55c97d049cc2e74e0c8793de914d40589a6fcd1809ae876219e29c4540d93a990ff31520ec76f59d872a02f1437111fee64fa8676e5cc125bac59729af6df44c1a7fa6cda471c57f26cd17b12b16bcea983511f1a82dde2112410286f03e7874fb96ae093d9b3527ceba85ede7435981dd869fd074399f12a27b400572bffc84ea2f1ad2fee512f8e421433f8acc0b9ba87f820191347613c3db44bd0f40287cc196d1043ec2d936662b7e04d46950eabaa0fd1e0a5f989fc73fbcc6de8c4900731f11b6653e14330eddfaae8c4fb85ddaf8d6b532df1b1aa14207477b81027bbda10a16358be84504010957d3bfd3ec49f0519c1aaef4cc10a4276742bdfd0211c383d1a013be0ed0374c30419e2670a11f23dc44d4de40886ab47625a25ae8be69d22b8e52a158f204277097ee95a87ddb2256e448016c34fd9f204504d1b15ba82e896285bc6215aba7d53d3a04e0386c0621a60b830ee69a79ca5ca882fde3a7fde557c1b369e25155038a0dc2e7fb482404e6c045fc7ac137cbbcc51b0e89ef98fdfdc635f9d47a2649f2c56939f37fcd4a05e3390bc3b2256b0478845a95b3a42628b823231192cc48f1a400927192b2f29aa40a0bcb3523c797bd5b868bfe31190ee3a8f628a8c3fb410229d00910b5cc5b745a9b5d108384a9ae9e7114c5e3d2b3ee91792e78e0c55fee246d51513c7a35389692faf5e96aba2a6afcdbd820869267bd0f2b97b5a5a74951e122b969f16a2164fc07d4ab3be92de04d6e9f04f82ca2a13aad0995a985692be088bed9a62a69031204dd0cec4dc2429508777bae57cdc4a906ff4f223970ec1603aeee982b156fdaf9c57c395fe5c05dd38fac1c04b7e8e8fe6816d0a16a55fad53e97504166099abc5c188f40abeec5dfff9a4edceed7475330941aae58da83b55282a955c09110eeb527d0a8dfaa85b42354e11127fc70d1f65ff7fdacf780341e6adeb892000b31a0578415607b5d444712ada0f5882b07a09ab865b938989cd2d48ba4f51a988629dfc810ea4039d87a6fe22529ad33da97423a8848cdf17fba5ede2ff509c0bde574120d8d18056ebaeec101ba5449f76b99e4bc706ef9ab107dab1f3c66dd67b8dee91a8720a6f797e90f0296bd28d06c80b597d13d38b93dfe4f54e0caa5e50fb573672db669ed99b99a3a805107fe9d8da689c8dd395f6026b095528baed1dcfb8dd57a38e989de5635e574f69bcbe2e35a0bbfe9e85da6cda443f85634500dbf68d1bccf205483191295881f0fd86f9872d0d573fa35914692ef8bb91a7715c0616642dd8f510edebc5cb7189f902eacb6aa675cab536653a16b43508c36de6ebc30eaead1a932199eb09121af05d0fe3a56a61ef50647ae6eb0ae0b280651a0f4421cc3c5a86cd2c47d5a4c4e23b489edac086890b7163ea0abaaf4046f6db0a5fa3baa8d5d5192cbe2d11440c7de1262e695081d61f90a25959bc5b1dfaa842f456b2c8ab00c6723847723eba7bfceacdaad6570f255dcb702a9fe1a73e736a8952f01a7448862dbaeece0f5c14722d735df1d6752bab4b7e27ba7cbb96f535bff8dd3dde668b7f5433c724017a4ebb1f8d30df6bb69fca282ce16a2dae0c75f544c8a534d8f4edb6aa6ec73da118c1379218ab7cf1ff674e3c0ec982aeaf4a7b4d9bb9162cf991eff22b87b0562687c1cf259be243b89dcffc10106c061194d32f9dc6dcb16632de68af67f436108bbabd09a185120cc1bbaefcb39ee81ff273dfd109af529734958d8e749e474f2151b3c9b4331e83468f8767fa3299e53eceefc08855992f7e8d7ccc137a921fad062bac93e9d490d53434d2c80919e0d46d4922d98d4d43a983929868b42f989322635e91ee4af63b56076cd562962eeeedbacc724a85aefed00f5a96d371660b820737c0ba81ea47c6e7054e9662cbb535271861fa4b89e36a2f37cee85150233a3068c15554652ee508e9be790fae0a145e369722ce3518d15843a872d8bf70af561097d4584fb43fc738e638ea739e2beae1ae8b5f2ae4495548d5be91a25265fd8797ce71de64169dfec305f10e9d8a61cf4af2680060c08747a88cd5af4309ee6f48aca5095cf0ff6ad3d9a47dddb1323d22abb631bfd4b56e71a0e58d4ea54da6fdc7f18409b1f89b6569eeed6ad6235e1a261001c53f0f499780aad446b838bf2f3a8735eac4b7b4d4831019e844c5eb2f820d64b40bdda1b260242b5097a1b1dd24fed4e3afd1551a0636c7a5994557e70446a9238189bc49a51118c2e3649b332c00c667a0fd37f473b212d36d1efc5665f9738cc8fd7caf668e8584473cc12649e5635e243bc2ba10687975689b8f0a3aadf884112636bd7e0c08164a29e083f3eaa82c6052314f21dc4ed478940238a68860c3bb7d8bb1ce1ba64b80bb29d3167abb9b54699673ba7b06176cbcd9d0409c61a94f4e05f6be802ca12e5cd2b211037e558059d604584b0e9bb617421ac0b9015fc4b7070c736ca9e9e605ba0d5718793f08f48ac1077a527127492c18655b4574f6da0483daffd13ba60aef2804728bdfd5e670b589a92cb9aaa0af43b89ae31b5ad0354a5514de1333ecfdd147ed44158debb74fc4235f2e9506feed30fd4eb1f08a9d044e33360384288bd33358f9500a4a321956c1000ee2b86e68dfbba3c665acd8e19846f19ec395f85bca3026b7719b0d0216a63afc28f0a30099d4af6c144c81b86fb9d86af8ae78eda80e8243d3f1737bab5fab7bb486d41f9099986f680f81b21dab3bb593433e55aac4f80981a05ce50d26a658274b8e5a4d91ee3218a708d222a818ffbff57c92c6e2ea1bc90c2e4170cae52cf4f56e005d2f180c31cff6aba82b8aedde10a0250b0c057e9718a9f40f9898547dce74b71bd658add4894a6f3739c767bd60aa6c1e9a133875afb507028298da51c71736ebf7909e64176dc8b12b624ab81673cd25569183ae6314f05add4eb600f0dd9c54ba7a938ef74010f6b85c650322170ec1e5305ad85831470c074798ad45cca5467fdc94ad5779e429fcef1ded22bf074c03714446eba887cc3131562b25ec9aaf702ef8b3927bd2834f30a36c51ca8f26f178fbd19946769eaeb3231bc82375c37a4375075cead79f98f59610ef61c145c336a00af24268d97a4b9c8f8bd6a2b32c3a318a7cd2b97eda63d08967f46eadf8a01cf007377ccb2fea64e3a16169926b26f6eada7f6df11507a751a8eec652d2a6323d4a1b422327ac05bd4c043873b792baa1e9347741d74329b90c3e08c0c14e19785db4035bb825179149c806f091edfc8bd56c7ae9388ed46ed8bf97a8dd3394203589756d81560b299fecfebc460b3f9cfb0c2da5151b353ba477c71d649b85803b664a501a20c4bb3a1380937f5df33cbb406c888c745300011fd54124d360c061b03e7fc6773ef92ab7dfa9384db4e99ce88af4f548013d80edb9b566776f8f55961ac72867da2400e64d1921230c5880da320a9d66043b19ca0f2c4e1b63d28c00f96cc7433b80bd1b4084a0ebdf1e18e60e03848ee087645485fa09cdfc4b7cd710a19442a8f8e5f31f5137f65dee085818b8c42a871b4782a128cbc0aa05d5c386974d159b0fc27da46dd114dedcabf5086bc3c4c74a8b1752790e6dd7c0ca33ddd5fff098a53828f04174adbf880d5ea7a9a1aacd38ab0a7d0fb6ffa0f625a4a760c4ffac7f0514327e7ce876b567fc9838c30516ffbe771df08fa43ddc3f51a90beb1f57c0c6d6ebc0638cdf8b6c32828c2f057f6bb21b630d337719aa97e3653da552a505997e866816eca23a420811d13710cb064ffcc6d5f80afbc540d122d7cae1c27d06f470ba67666569029714e1e162f24209bd0fca6d4b87b738d38225e3fe2bc27cc54032e9aa93aaadcabef3d0946f113aa10eb392e60afcf748cb8051d230e7c15f3cb13e69df753cd49490b2847f8d2f05833f613e8e9b4343d7f1f229ab8c3f29bf399ab8d0c140f7ded5e838452c80df413990ff93bc868fc5b55ad48f0086bd9806e18910aa17eb2a4db6640d0686df67647a04eb10bf3891efab15e9ec674cefb4de9137d9fc4c32c942900bb19eb8da6dc4d43cffb44df4c123a41a0176e63f42033d574437ca21f05254ebf4e1fbde8a780093fc1bdfb44cf8afcb893d2a79df92c9f45cf9fc839d283366c8944143ed18b98bd15f7bcad992374434d5a51102df4109a49e7674820e089beb3d687accca1c8108dde5b8adfe9be3aa5623e317e07664306e3e4df344978c91eb8e206862eb31e5bcf34bb0df524bb9d262f31e0da023c6520461aa952ff94fe03a97a443f3e306bcc8ba8e945ad98e0dd2e35915b1f61a22a03360e4b57871126543447e20619f336cb346cba6718780c8a4a09fb87b296be77500f795ce03087011a1a7effbc5042ad1948e3f55c26e3ab077b7e7c9d9c505a0524883ef3e1be434d39dd540bb70aafb1a4b54cd251186d907ec4c36f3f2a00644778a7aac451d329998e2ee8d81706294d3c1c859acabd28143c6acfaae7ca13ed01861c35fd5f6e5a10d70df0c96353bd0fd0b5fb0953b74a62509193bd8cad15d362b3fe16d03fc397c213d50593724f0716dbcf6c1caed5614fad5ed3ad4ef59e52baa9497e0721b2a388709e83fe3062602c4f8e9baa60a94f12203fe5ed09496533c5b224029f502f140956ac952cc7ba40dccb9edc5c0f400e9145eaca21d626d9290eac36672d714a195122fdae726445db03c04185647cf67803f63f29c91e7cad63498f62125e596661f8301514b94aaa2aa48381f73f1d8cf2939ae238a58389b9e1518e93c8c6beed86775bf0d2c56f6fa4cbd1bb8f8ee6335f357bc6291f32f5f8b2df44ed38f63b01da54a37d062e9885e7ddebb0f481fc67f27d292376416d4c4699c69fe67fba1b1c787d17fdd1691a9edcf4097093a0ddf2c20a810178e3cc5dcddbf75cf19b40d9e6d173acf511868ba0d6137aef16bd2003fdab021037cc99f10ea00c16e7a8135e627af68e95c89abdb42d54151fa8b4d55e95d990514d898a18487ffc076d42099d84f3d9c4b56313ed64b046a09ccc9d1d87e3b725dcb583dd62cf22f01c6244304db65dab2571cb67f681a253c4424db602f719be7acb5b79bd7d0521d86fd8d2123ad1cf29be3b331b920b1227eeb4c45462a72801abc4b4259b609646125f8df9bc12c9474d9c850683a211237bedbf65d1447e98a10aee1e512caddd9f991f84712c64520a9774704068db976f6913fa7af71692f5cb40f9eb920849f8f40b914434985ace87a87e8fdf3d6099089a65296415d35472e59048962d1e4d7fa71a124b589513e29cab28f37ee8b074be564cc320814f5125ba75d847ed1a60f9f6f684ea53a306bc378dafc6ae9a2b6865d3ed478c45b6413d55848e4dea932ff93f0c92a4d733b4cb869b443cd4803cfc60d49fa29007f1627b96caad3c459b1df115ada00969235d604f6d02f93416c235769a6ab15362ea72d1788eb1e16fa7f597e9527cc910929b93036621a8c1c556ae804e0549fd89250fd38bc0455a0cd5d5f8134191a37df5973ced0658365110275151dc2056725cb98d8b1b7cc1977986eb10ddda4619b30f66566ed47cc2775b6da24e510a2c935ec6476c2ba87a1564a4d11bd42f06568014a69e6fcd7f15424ec5a7f45702fa7bf3906318c27716d2bab83e3f1f4d58d387986706a3c0e68d55012fbb62f44da2af2182c05266465df15a7b60ea962784dc9ae864bd62b1a82ac2097605ef2c9d50a7642a78455091a51c940a1fc638718bdcc7053f0c8b1578bfdb73394c4292cd11f66b12c6225cec86f28a1b03b20a4e4aa499efb977a4c45806cf5bda095839c2ebde1035ff8758abab0cb7ded5302109f1cb9d3632a53fd88aa720916fad3b83d2a3c44acfd15914fdff9b1e50fec5bc5b13e84971c9d7a97b10778140aee79e391851ef93d815d270cf62f53e3114f71f1de01b3fef02ae17e485085182d679cafa61e4ed6a55e77d780865f23de0475aa9502abd524d15b517cbfeaaa07e453f6ec057615f221e70bcef75e63e148bf20515c5437fb14e90e8264b95911423995904dd340fe22f1a5effeae9fc4aed2a2c3af0d187f93c9d88ca9600029506c5dfe65ea49617eca06f9f32ad40d9db474c02c1d9a261d252b4804db3f25bbbf4e2dfc0f59a67c432b9a0ef666d21d66f3d63c01e2f948bf5b41165fb7628d35fa3686278a693b322cc520d260716b90e4b0946298ecee138d2086d05d6067e71c8cfb396215ff3897542d62af1bb47f52449a93ac2ab6ddf918026702711d3e65cec1819486ed8a307e937dba7ed370870ad41fe87ca8cce8bf957a254535e7828a2d5f6e5f550904e361cc9cb3544333d15b706dda5e687fa3f4b67c56394f8020021f625076205e7ae74b198bbe484e1b341875a6686e4a4206b8aa7297d5e69368dcd5dcb710c56e4e93c3e10bc2050621b527b35e9ed5c3bf25b75b37a34e9f95e6339429fc430c0a342152caa75ee04162b8d6f0833a0cc53366dba60fe218ae299ef28b7f304b8c007e581abf58ec1bfa9ae7b692556c6effde247a209f61eb706134cd86082a317664b97d8d3f5e315ea4d90f7b2c7115f35bea02c829b326384d500f773509e6bacd037c6c52bc2211a26b34c8dbcd68279d2660f1f164dee0770090675e76147e39eda3bf0564639c42c01f0b8b1c55f007746fde94acf5b6094164e8f66fef42bdd0a18b110007dd6bc2ab3ffa8936f7db0d71abef105cd1cebfca4a748e48b3a13b534df1d6fc185fd70615060b1a801ee11045e20f59b41df6a3adcb9b461d0d1ab7a228689c2965e1bcdd69bb5b7d922a0d392de3f1d16e22bee6990d3dffa79a029589b3e3118c832d5d454e20c5415f0db501f111e7c5d34c7fec4219e7c5473cf82038d2a2d941ce6e0731f000c28dfdc2b66358cbda11cfa51c702a68ed0428159a7860f3d217b648ecc5d80e2d55272044e20ed74a6dd946803ad464d929d8b90ebc985c6009d450579d051f2071268beec218d4b506d2f042c741977c3e697cf21e798df862f7701944247227959616774969b589d25fbba883d9bf07ae547f955254d292c9d162d74b1fb6149effc464b26bd5ad95f27299596d7072542f4b9aea989de00ca885c06d1188b4c2728ab4e92eca5848544b9dd691adee53b62a15e1adce09c898ccc25299d63597655ab54fa4add731b06538b817007b341e08255ca512c54fd4cdc38da76d092f80195c79e9a45df27695ad1b231b2145ece4747cddbffeca2b10395ee521a0234bbf65815541ff438819aec0aa306582e41e280c132c950506dd3080c86fce369d58050157b0f96a66ab5fd12cc464b4736da6c8533c94c5cebc317eefc80fbf075532f9ae9850481e2ce6a3bc35a418dc3e7d051d5d6dab984d04d402e7747bca353a327941edaf7e766bc00cb6480b0e62b786263ce3a519d54d4c05aaa180b1e137e9dc8bbbd87a65d0831f6461a4e8926fbc09fc4f6eae50e3230cd6c3e2d0da679893fe359e544ab7cbdb1caf979bad2c2d7d6bae6e00de32f90c142b8605f5e96ed49d2827d2bc3c8aa2166be1963e79436fdf6726c447b9e9f10925a56d55d58d792c67314b6551d480595724eecdb5140941e8658c5b90cb49ddbb01783d8133063c06727aefdf361891a8d191cfa17027f6601255a3f66fd5eb9513635d86c7aefb452001885231b251d00dab2b386d00cc8b63bb9225de2c6c4385c8357a7d115c0acc05288f4a3d14bf619794d7984f5372ebfe702ebf49029270b19b611fc2a9c8870d725aedb7170b1993ea2db81a5637c08bededeeb87fa30170016f299558b89ad8fa6363cfa4040f77b14a1801b09833ddb0646d8fac24db338d733d354b36a04b370a305194a1120ff0f9da0ad435968bb4bdc25c2641200641ac28a4e4005b106c2f2711df758db221e3ac9d229bb166a58158842b764f2e51181386cf903f241cfbeb58030eda24d1048096d789f0d20dcb0e6edaa7b598fa08f188bad86a07f4be68dc4e0b934ec5996acca69ca634fb03bf7e7ec689415db3cebdf6778f2419edb8531cc8a24d3e9779abbf9094dc317546494bf2c36d8a211808008fe1104a2739140d0519d42f053c62e939b7043ec1c95cb40cbf61a02881373968c799a23d92e58468409736f30668bcc11bd6c2d63ec0d860f681d1a1a48283507f48ac9eb5fef2d7d0c2df3a03241f10c8608e74978ce0adefd68c7529d1541206ed201623664168ba27dbd9bbc73520434b33302024518b7c136e5aa49497e09e12c038d1115183a24dc7027df1cc1b9f96a209412ba23310c7604597eafec99645c5cd5d5a118907b31143f2cb9f205af6550211a014895fee3fc3fa97df2b70388baa9484051f5b698d3dacbec9eeb3bdd2c4ecfbd29e82206d5dba0fdeb3ddc543b1dc245a215d9527c5362bcc1b882f8768e11463254dcc80d039e7f716bf6fdcf147ecda59ceed818ad14482f8941596dbd84360180643f0651cbb71621fe1eafdf8864f114f714d090586a07a71bd7218c578d4efe3a177d479c594c39531bd7c6ead7b4145de4f096fe202eecc5e9a45c50e62cd59499c0655d892a87de9d2b845efefc1bd3468ec6357fbc67f2befbc68ad6512b1e8991c2216566714754ed31335e8ddbe1a6013c708f224cbc1218709bd5025caff91209667b86481cdeced74848fc5e537db0a7e7022e93bf2af604318fa4aa02d4000e7d67ea41b33ea363c6e5d09389f880bbf08873c4f729d58df28d7b3513f21d8ec8b3139c9e2a8e48515fb98fab72074ac057e5da0adf71f16b26136df96430b27991438396c11762c4efcac53f1c9181f2da0ea4718b2d7d722e0b9fd87c13adfffa5a3dc804644f5c54631db4caad83e6e1bc574feb205e8c693d46e3831e30661c9fc6339e5eeea9d930b1a16a75443c7421b121adeef74fe0470fc52cdac928436ca1b85ad84d0a8828fb852ec819b3a35501e8c57b90decef7aca84b138a0b605ed0fcf89d2130fac8deae128f37bf47f1aa3818253921160934c526d0f304618aa79300f4d2d98c0fda77416b444e307c4f1d17dbad7108c02924bc6cf4b16c79c0cd96848af351d49d10d12f237bb332839402126c1dbb480c18fc1e3ae6358c1d14bcb028bbe99e75e33efc323205bd6eb1f17dc2996b86a6b1f53927da426af8823b4c25313e08d0796b1a01a9cc93af796eb3dc1c006f74532e066ff3414b257f1024c893f335b2f9053e883c80d9e7bd068a0e80b7c1cb6fb4810637fb24e6dd5ad826e5a49cce4319969b64628f0161d31eab11ee6a08b1a17495440943dec17bdc9b9ffa3d5252e8ac20f71f973a7342caf89e8902ddb594facc1a8e0315fc57429f3d9a9c15ea03ccaf8a07e54fb0a1d1435d4f3d72fda546150670b70268fe8623e78b80bff64a8e0434d8f2073d8cd7ca15a95ae70264bbb66eebe9bfc91f508f75dd40111d403fdb4031c9845a7e6c3c64a4dee1c2bce054f026da7cd2f3f21fd43724b4700142fdf3e6433bf5b0daf9b9f001e908b8d45f0f087233bcec0e1a9a1b46a27b200b7c43c958014380e2733515184790cf4682c473b03af671a2fd5d5d944296b69ada972d8d0159b64ac2cf8eff54a31f5ed2b22add56e5145d640512de36057badcee7619140060c147b76c9539151aded6cf6c65142da5964717cb59f74641f7775483f877eb6ecd64044f0ed538aaede3bf3cf7474b9033a6f4260283764913cb5b23d529fdffb201781c71481b2876238341934c32e2f90e597aab1f1fc9a7738f94344c150a82c9d51527bf9fbb898b4df6eb7b578f26ad595b76ad87583647e6958cd553cd214cac36322d7e256595f727de225481f10f200c3f2041512e430e60322eafa80c427defd6789f905925e610514a08ecd80a60ded9f1420b66f5a85c8582f68c14c451b8072b9f32122469a7e08af135ba33516a92c0cfd490e17b70ee003d6ff28c86f9e2bcebf4ca37571403f8c82ed27f20dd1044987cbaccdb5e60ff58d222aa199098fda7d5ac61fb510ca7d66eb19ac7a7ed9a06878818a15fdbef9a62afe2e0b7077f173a4f19a3454a213ad9070dbc6f07c040171f5fa1dbdc3f636e50131fd40eb09ffc4b663ca816f29c499e23ca9350749522b6ca308d8389b818dbb469877052ec98d53bc7b52e1b70bfd29565b27c71bda20061c2500f1979df2e15011ba595bffac36aaf168b9a5716e347f5f325f07f073cc4fae1c83bc88fdc1bf0f6e67a983e89c7aea43c2b53887ee88afc22d0544e11027126c3098076c7aa3628c02eb16f3ce17a608e603e0de3a0b11c035308685d710c61c93e0741b06ba5203f69b97e1fb4bb7ec87cf2143613b5ac6bff02e6cc2d8931eb9b555c647bb314d2333bed22ceabf8f59845b24ceec3bbd5a9a9f6299d4c3bca6789bccab305ce4049f50f675ab79d055d62e1da3516b203a0265056aabed84553fb30f47810bf546ea5c7f04d7aaec5e98ddac484087ebf2d0d7831994d0f664bc5a88f115d19b750eaabe38901e75f49c1ab65dc6b8e725cec59fa9a230b9df560f3182aef143eb38a03be2d04aba606dbbd6a5fd0503089dbce9c438f3d7e8a198002c4d469ef060ec241dd88d8ca3f873eb7c00a12c98498b8c2484015091c1d45b29845d2126f62688002e94c5d02771c4400460543388ec629b5ff2750c5fe3525c782577655c52d0866d2113377edd5089cc929fa224fce1363325d7e44d0ed5beae842d87e34c316d90ae97f169d081bd9745301a8a36ba0130304a4298b73e1a50e4fb155552601118b55fe4f85fe21b697a8e8d8a151e1d3aace19611d3542e1ce6725f12cb56ca69be6d6a3c3bddd9edc36ee92b9aa976003dcd0c299095c5a20d72b30861839f192de2e56659e967604d030f2484c6adf32e182d2e1504811fca3ccebac6953c83eae631df69bc1481f95b95280611335ebf7c919b4083a38a2d6dc386a0aa2b6661801d2668e680929ffadddf9798813d5dec9431dfc95b5e97bb46bfa15b49cbabe3c226610d86710820500c02c4ac56fa058f4c2bc1424619e5d67312dc136bc8c31ef9df21179b12395ef6ae06388e4a9d61532c7c91c8119c12625ab221f1d656b25ff2218808efaf0194cefcb5811427c4392cc07c594c6fe24e01b6c00f0a46543120e46eb3e07eb8bc50efe05dac61179a181f29ef07e9d5cf5296fe8533e26083c0ecbe486792386dd8dac286b042b973a7cb72d66450be04ddbbc6f6dbb99367a9032713b7781ea75bae9afefef37f1ecfed52f63fe59e1c53e848080397b64d43c08c4fd84ec75610a60cecf513531cada1b0ec8054bbb657eff69597eda88cf2dc68b86ecdd14822bc2c2ad210b764aac97d72bde4e413cea5208449dc6bf722566c33901b4cbe0e506246775d3f7dc4ebab8f38abffe7fa55662f3b9aaae8965145ac924ca3891514e0ca56d722c34ac47d00a3f6b630c428f777749d0489bf34dea1f21ec44247761b2a0b485debb38c4bd75ab10dd59cda6cea7767e74b94c65031a3106047cfc292e9f33c01658b245e9f12f63d5074871c8b8ad6173e383dd4851749dc4e75c13b031c577c2251141a6321916034a6014e91b36ccf610e043b87ac479f6f3d60a6dfe3fa962b13fc6544a39a15b11c5d2c5967b1edad2287ed30daaebc44dff8402cb4bc62ddc1eb86d234d7819ec6716904c6a9c008a86a6bc182e376baabebc8d03a9a9e38fa3699cd85e2f0faa42110f48661c72e4ffd7f9e3b5deec81f32f515b3e978133085ae0c7003d8c240405553814fffcab4b18717560fc5f206bcb5867447da42757d249f2f324bd9f3163283d36307e1d23518cd8923c85d15869b5e8537fe20961651038d7f8af2d9c68695504e301c2e9ba868d3d4588252ee6ecb7b01c3c92637367f1480f6f90c74035273bc880533dcb41d1f36a79cde306585dadfe27b4d0b127322b21169fb99e814841b962215a23c90fac1250b20ec4d990a6bf630072fdcbaad413c50d0bcc1eb2a9e99577d3ebb39868a38ff8ff0afdd0fde1dbd9c972ec61bf417e313ed448e1bd851f62ddece269a058fd2b83102254a72be60ae916f4b65660f828df3098c592a3a5099e95a9b0add6b6b8e5184244d1e27f1ac8e571b96f239d6911690b67d085d7f25f65c47da3d1d0508a21e8dadb98645e23abb5c1f417daf51a6da77753b1cfbf1302c09ad435b677d9a1841979e58969ff301ddc25800a41b949f715b24cd0c01136ad53ff1a630bdbee863243941e3fc7ad742d0c8b9ba14d4322e7d35541b4a5272223c9e98d6379cbae07c07b2feab6c4b32b15990fb950076919b370de1df2b99486b66f06f6b9dcf805ae7000ea8cddfcbe1e233e5dc9ef319d3f7da20dc1c93ab6dd3ac27dfef960c03170cef8000a06407b8488c7cb617ba00a7ecadbf7336646f750f50a9ae1dca8f2a38e779ab7565b25d61eaa9b8a2267a046b5cc1817aba85d4f1da008cd395c2bfd15bf719db5ac0589a31051984543df3db3fb2721237d75b7697014dc3832c216875be0642883ea80131580490dbb54f91e6df2d6c4caeca0400b60344c761e5295939fc48c3cca8e3a6c9b0408785f5e10a33d74abedfeaba9b3b6e103c42de5cf1c843c61b8fd86dadc6d2e89afd6db58b443579b7abf12299ccc498e514ea27b279656d960566256050eaed6093e62f70a9d20a383ad09c6210e20dfe09d2ce3c04a566dcf55f1ff3139ebe0a1f37afb6059c28c6d97dd3eb73cb9c2a440910d2a7b0892aa9bedcb268418e8af082a232df3d2d5a8b781bfc08a00cf523e65730a4d5e8e94344452c5316af888acb73619ffb483e281451bb905eaea6366d87eab844d9bfd567a9386828162491b1b28acc3868d2482c7cfe010897e56c1a4f2111502314820de957724c7343891e696c21dff807a97f6bf4f821139e2e5e835da18acbf80c137bdc8b4a748240f692b8f76a01544428f37a0284d8cc2bc95557a0c83f985273b225bf86788b7250597ee5f380310c840a56054c1bca933e9f40b354269508dce4cdcb8c32705969422202ca899153099b06c6f59d467db1dafb377c209548de2b11b5b03391219f6c6a4bab61ac38776d501d747623cf2cae5d870e055300ce4a6a351895c6352e13c8b8d3d66ffb0cfa0cbfdabeb467edc9d7ff45af8da3e8c7087bbd64a17c3f0e2751498c780211c314f363d728dabb26a9ad97d9ab2b9ff8e555339e9d082b22ee2d0709e363dec9eae602cb1d2653959a191af20b76d77ce5d04fdf15144504ca659fb1592058e138073e96804cfb0af21fc428b285a9c1eaa3dad8314c4e29cc51339fdbb5b1e3f454fdcbc5a205a53b4d5db8bc07c011c0fe1ecf6a5837c211455fb955650443ab35c6212458d8c07f3722826fbbdb56766f99929401ad0b700b760a3335db935b14dc949f1c11d9bfe5a4ce101f3d6108ea9813061d0c31ac9bd4d993e43ef8325036d40e3458502e1a20140a8542a15034345a4aa5d28f8f6832d9bc894cc0dde1c176d9395f3cb562f98479e26dcc560c862018768dfa8913062e4de6981306dd07039d574b57b2ceb2f913ad282d5c6b4aeba755a5956b01390bd52a22fbb7a0b488f8b762bdbaefae7aa9dd98b5e6dc2f914aaeda7ab9675a2a954aa512901289a4e5a596fd5f6a2fb697db0bee4bf1226abca6e984f9624d9fd40b9297d90b1bc3d99c75de9c658373d6891db058215c9608506dc13caba65272a4c8102056081f3b4b448b8de1b2bf8de19c85e29a378f2b7130c15104470d870c8462050a152852a04081e2040a0dca9127baec3f83ce67d8f1b8785e343424cff82653c81664226d84997cd19631345a046bdec6ecd1f9d12927755e48942d5a6b49abd62bd39f387b92d8276b1af5d3283bd5541f7314f2027b89bdc84a2925931257d65e5e2f3b945b4a2d2596d24a49a5bc954e4659f61f65a39031d6ac9bb765cca34030e6f479fd0e0a7b627c8d3f6c4efff10596a0eb9a3e27505fd0e8129d8847449b381377a216118b6845a4224a11a1883551893fe8025f20ec0bfa763530e8f235c1b7a68fcd579d170c41cdea49029e3cd82e3b27de1f061d688e8d9e3057bc8df97f32efb33055a4cc16cd534d48b375eb165903469e395bb56f48997eb84f099f940ff74d197db9efca0724dae8bcb287728c872b537bfb6a9fedbb795b3c2bdececb7db4efc857e41bf201f97c7c3b783a0f0bd6f9c15fc787bde9bc747ee8c07484e8c47488e8c89c55f32fff279a34b199676b49f3c49c2d9a27a54c2d6d15f3fe76498b27c69a14f6a6c63c614e017a80ee013b08b81ea0e401431e407b408c0a10152b54a8509142050a152754985099512952a700657f1d403a743a760b70a958319e4c9f9a9ab345f354cdd6c2353aa5519fd479226b84b9758b95693de2a643870e1d3aaef4aa9ca2438702742860ca942953a64c9932450947dcb2bf0d36d8c0623c61a2f81bb2462a9f5e9c194fa40d9b1c6386594c892dc693e973f3d76cd15a4b1af5b7315bb6d6ad4563b6aab472ad5aebe705e50c379f0137c3cf0cb9da0abdff0c5766009a214baf44ef4f96c8fe3358a933c4f79fc14765d55a002d9555eb0caf2f80aeb6609e6553314195fc9153917248f6af4f8064776527624b48005bf62780cd5937ef4f801b0170ce5af1fe04f8115d8c36e68a67619a7fc244f1221aaa78815fa078017ede8beb289a17fd62e6c5c9f4c2be78f1e245455522ef59dcfcc9f4f937993e2bce93a7ee974c9ff3ade9a3e27cfdcecd99c28379eabe799264ccb630eec7a080316fade2dc7f312faee2dcb731bd13a627f3d4fdd2f490347a7f647a34d2f46a5e9346efd7981ecaf46e9eba2f7a37c8f7bd2315c6fd90e9cd2a0e9a5e26f94af1ec10a31ea7c680108c00cd15ef8d624423f975e67b45f352c2a021d1e66b0ac8c305c93941783f727dcf475de5c464bee620e1b9b6dcb4d8b0d4ace4d0a8b072669e72b44b4d39aaca35eaa88abac2bc7953c5af702cc4c2c0b146711015c532c74ad49463a046311560c040d1ffd32967a6235d1686585b3923b36655aeb5657bc81ef265bbc16a04921a90d0be96d520abc108e8693542480d426a8835cbfcd4357d522f9a34fca0e145832b07971cbb46837459802a4e0ec5dfac307b587c0f78077d15e6ebb4839e2bbe07d58ef9680e2c15461057720e2b545861a22993070801e00e0b1994691d028dc8109e64ff1d9aefd4766c9e47f2e4206152a6395800bb37cd5f61feab3053bc889a3de8f93da87654fc8a8fa1490cb6188888e126830f32b86480c91004fcb04c86d8ceac94a21e852a007f1526cf146a8e95aae31f024904783be8c993ab39fe5f0cca3467164393186c3110515735fca085cf189a64ff186ece427732f85059aa29c8e072962a2703ac5739311982d4554e1031dc6062b8c570fb62b8c5709321b633b333543f3b486aa89566218e2d361126b4b32d5a0cb48a9333eb95f72d5bebd6a2b5300e8542231d20e8d87488d00182ce6de5c3cab582ad82ac622d243a361d22746e2b1f56ae156c1544e7a673d3b9e9dc746e3ab755ac85a4854405908aa0ecaf024885ae575e5869f4e7738aa32896e7ccdff3b5f0bbf7c26bc1749942306be6cd2cc2540a31cac4a9b872fadd7bc1749942306be6cd2cc274a6304aa6cb74b95c28d365e2545c39a9b8423295420c9e3397e6442e2783c5fc5de5892cd9ff44ee8433295ffc17c5720493947fcd1caef8303b484e245329c4604895cb02742557717258a9475822fb9f643092c90998331361cad08d4199d2e05439d59566999fd254c9fe34389a9f5e792f8ae348daf032cd3773ef577ea5a13173a0b931494954126989949444761250c9a7242bd14a3b20994ae189528d264acdcf0a330749a73c2767f6cd9048a452a954229d290cd289930454aad144a94245e66b4e9a2838186819ca887e62a0c963a5c2b852c2a0219367d72897465daf14cdc9e363fe8ce973fe274499be70bd70c18001c55eb098ec8738ce3c49f2d03c49dab89934cd172e2ce4aa723932c889d550abe107a65288c12f67d6a510839fd931e8cec5aee2782d82ac46ac060bb3c6ab464fd77035ea8fc2983c413c59788078ae346a65894b9e3c4294698e598b510b3f4dcdb27f2ae62c14ef9f9239cbc61fe68abd3c056b92fdba5c59f59313cb0902e7ccd02ee84e95532d018a30a1af869a8511050a56e5ccd02eaa25c09c99983383c9998572665fceac73665e0d357f7284c19170de93f1e3604633c7ace2c42a8ee738526539c7909a034815927f8e9072c332273526b4d9dbacd0edb8f07ca14bf64fc913647f514c11b02c4518c9fe34c09c86180db25e8dd0dd17f2bc4bfa375fbf73f32ab0103b83ac42e6c8254820918f4826a289761062508441896a30512c8cd38b9e17ae469950f2e478aef000f5caab6267903f1646ae57aa9f46c925ea4ae504d397aa647f12c8a7b272645065ceca89798a26da4178a630f099a22f9ee9098604429d2490a896a34a8e9f1c533a07aee2dc60a2d8193b48c81f3b238794aa724294fcd3ab1c502aea4ffe09264a3e8212b2bfe9fcc9e1c2b1ab383278392bc70e3505850b8e2d15b5c1c8a92a17aa723807aa7245b2bfa8ca0dc9fe30aa1ce6c95da938fe3b48ec0c9e285418fe3c53388780642c3fcd99e528fecae589eea2e09a65faa4f0c10a1f9b5761dee058af6aa8351a445dd5f0838aca9c85ee3ca54465a9a6a0cae5c41ac554a8ab9c2060a0e9bf7c7a2ab14cc6cc41baec0cd58f8551c30faa647fcf41c595435671fc63cc1caf8ae38fee9c95a3484d4d219673ceca01a4a68238c28f9c58af72f8a8a89f290c28d99d3c93ecff72a62725d9bf3cd3f20847b2ef321172aefc260f90c9a36b9ea08ae3affab13378b4506154227021fb5fd54f76d1990356718e28d39c9919635671fc5798d5c625e34f739664ff9c99b3fefd7368a4ed09e985081159b3cc5761f25ce9943f0cc9f39d3c392f09654ac260a490164d37668a176768c615a6f92acc33c58fa64d7ef3ba5c3ba8c993134d9e2c8df2e87876640d183974f2001129537246845cf62791b43f39eb95573649c925d95f34d578976a4832353135b6c6ce60b07e9ea946647fc7e73f4568a67ecbf74f22199fa0692bce7db3344f5ef3d47d1bd36d9eba1fcd88b107aa2b8024644b02c6922be96b357d7d8f48af66bebe27eb95ccd7f78cacf8fa5e7d6f8957f36cdecd1b526788522f885cbd50d1aeef01a9abbb6bb4ff25f376886df15c5ab2f7aa2e0f565be3d7bfb9da02ab50a92b8fd6e80fa6e4fa574a5d79d53342f56cd55342fdcba4ae3c5cdf9f8bbbb6daaad516feeafdf42429bf87dfb179d4a72c323963f4670d8bafafa2ce407dad4169db849171b870f08071f93a91e4e9442ad56abd4235f10040b3f87e200e43a2ae443d69aec89ee99342e4834265536541a5537941b5cbf121c79503cb096222bdcc89fd3821853983426573966a8799ca56c446aa6c4054361f2a9b2a0b2a9dca0baa5d8e0f39ae9c2039b09c58ee47fd6834baa92297a68f797e0fd8c63cf5a0da5971ee763a2017b9dc5dda398328535c9a29b2599ec815b34690d896d89ae4fa126896c559caa013979e5cdfc276f4eafb2a3fe514a5ac4f0690eb8bbf39d59432cd6a59e35ca552a95c75f429167d5af65bbf3471242247174314b627369bcd6603130283c16027be1ada121a8d4643b97a5c2e976bc58e5c2e4753953259a552899e0bc9d1459a10cfd89ed86c36db0926040683c14ca1126d098d46a3bd88c9160683c1603698e776905e7362cdd55ce8304c8e2e923028637b62b3d96c31302130180c0693f39ce73ce739d7da6c369b0d0683c16030dc36d0c510bf805f697b62b3d96c239810180c0683e57e918e67753a9d4e776dd66613436bc3d6666da0d57d2e8658f48548db139bcd669321f396c9aeceea7456a70bb2bacfca423de6d46b999c7adde3d5dda0abbbbaabbbbaabf32665e37a45ca75941b87fe9f4e7d5b167e8a5b86e6b465a1d3c3352af364463a3cd3719491a9a9b9b9799153af71cef2a674aabfcacf95dcbadc5e9335c8ec9d1e4ee6e1c8fcb94456014edab2d89fcf57ed97dd87467fa7dc6d501e712771a3a359773c13d71a3de2d1744910adae04c1c8bddbf200cb1d829f879108739e7b153181e5422f51adac3839f4a3531d7a35da211b230c07604d77c8c1d0ac69d4499ed00343100cc11004cdeaa0d7d62ba8038f746fbbdf5315a351cf964aca14bda647cba8b3306aade95d2b8346c551a25b424997bdf6b552482790d941cc959816c014e1850bf7de1a490ae904323b88b912d382ecdf3045c8fefdc285ecdf35ec8959f6924a9982d10f445944425425880ef4322ba9942918fd40944524c4f56a8c18bb8c34d18ac8023b44c863a411639791265a1159e07d2822b28741210d3013ac96b06f2122c2a0900698091f48e30358fbb0b40ddb1df601ac7d583088673e1864f78af0158076f6c1c02ba2060e4f5cfc09d9bf7e6749f6c345246dd4964d0d7b4d53ee916d4996247b4956715c96dd7ea9a40bed2988eb794ab277def3d2ee7bedd7fb407cbeab0a62bd49655c33cfb443e895dd2bea21973599a315d494ffc91cf95057231e56300262a482da2adf7ff463f4436d91ef3f4a416d89de7fe4a3b6c6f71fbd463e845ccebac1473d8c50505bf8fd47fe231e6a2be6fd4727a82d99f71fed505ba4f71fb9702e63fab4e43f82b50ca6f3f435345fa21e06f523f2fc40f981530e4f1fd4cc27e171ca31a81bbe0fe1425242490829a1e2f8d798a15cebf89f4a26b35a01a432194573f6f03b3067e8092f674889f20c25313a43552a8ebfe80c35813c434e18cf109573267486985071c2338444c5717c86967086a6549c2f9fcc101235e56f32434ad49483f90b2951cb1ff70fe19c65bde2fc74e5fe10ce5923d7c835728d5cdfe75f83fe9d314a5c23578c7f3a72659f652be3227528c84947865e3ce7591fb93f7df1423b783e4238d1961d728f6e1ea31bdd9c15b39319dd72c7e870b99fc6fa7f4e63cc6beda988684bcc6e748bd19d649fbfaec70475aa63747e9e74570962bd496b727745fbfbca247b5feb8ff52118c83309040f81f141024949cfb4c9303fce32bd3cd56f8ae586f9c9fd9eabc77335eaf534ea9ddeab5194121fb39c9a5e303f2697a7bc1345fb4cecf25ede09e2609e0b344d3d9d6a932b09a5fdd4e4c26172588dcbab81f8d91b9a3d3c8cf0832f6293870df4aa45c6f57e9ff77ddfd7f7fa4589dc4433585bc7c35eaf0885e34ec0ebe1dd3910abd72fa1acaa72d64896666d850e6251fcc0107bdebd9e77ef773d917f0f7847fc90d9f392b1237e0f7827f4327cb4a368e217de195f347b7a90b13396a57b1545fe75a5f2d15479ca8a2b15ab2cb3e8e2153df173f7333dc3f2fb6ac85651749f46f7677ea2d993e47bf14b96f5d952e5a9067f7c5134eb8ef8651cfa1e543be293efd5aa6ad549c36c5f1c6501a4e4bdb7efbdf7da2a8a4653954f67b632f933af180a4db3e2bc68624f9539246d88f93b5333dbc7b65116c3119336445395ad0d315f317b665a6dd98ef9c3e04b8847be16a838dc6510c4d0ec4982bfb7a6e89962bee6f5da5daf280501aea18c4d7b6dcd7abd5714e63187e6a953f79479b03b08e5c94d9c1c327b925cd19d6407408691ebf798077c7c33806600cd16f8de7bd1c3f7726c1497a17971e4644c86a09ba159368abf923872726d14a7fedfa7e1f9d9ef1cbdd0acf7c3b13cd57c211377aaff4a29f12742e1f8b2f79dbd336d40be27763395cbcfc8a9a659de575baefa14cbf64bcb03daab309b4e5f4d1895454df5a3eaea1b0600705eb868515be0f7a76a0b7ff7b3a82d1537294ef36d0c698cd2a7abdcaf6a194adf2f7a5e2e914c342cce39c46048149163d924991830dbff30cc8b69fd666bb3e8f4e4e9473174faf003e5074ef93b7d4e27a9ea785f324befacd7fcb2c9ec4952424bde2cdbb72fd3588a1d22e79164621e55c5e8150d4a7efd196e38abe6ebdf20de983d494e2faa3269c4889d99a56761a6a8a9317b92582228b73154101f2cd012e4c5025d105b10264194043912a448902141800471b1600b10b66c73d6cdcd598f73d60a2bc47dd46016881d54800508970a8080a801a10488234014016208104080f0a1829d0ab4f8a8f9a8f9b0f9b8f9c0390bc5c53f5ed6b43e68b78bebb5e565e5b57be57cd07c1cf151c4c7101f407cf8f0b1c34bf7c2d243eba1f5d47a6c3db72eb6ecdfc3d5e3d503d623d683480f590f233d663d90f4a0f5a8750922fbf718e285b6c7bab6ec4cb0f3826e267062822326b09960d6c4ae092d4d6069c24a13549a90d20494266a4d28d9b2cbfe22d88dc03582d708605a78657f1e371e381e3f3c723caef000e29185878e47108f9d075c414b647f1e56be5009427005db8e87ed6302c6c34707b4f078754017640b6212a424e8485091a0214140825c59d872055bf6d7804d03370de034f0c3042c8da5b27496224969e992b49636496de98d891b64fff4489d21eac874668dea20d1a1e9d4749a34caa3d10d44e1a543d359d2ac56954eb9b35ab4181897e5e9f5e0ad4afc54404a0598540057811a13afac6262072c5bb068c182058b152c54b0dcb03889c22bfb4f6002139880ecea72b1ec8fc30f0e391c8070d0e11084c30e072e3b5c3b7a76bc76c09c8552220bd91f072d18932648638ade9a3e3a3fba270989e2c104ae9df35366e87bc4f2674cd43d6fa83947aff3027f854f0ae03004871d7088e1e05202a70414259c28c14409254a1c51a2881230257c34e127fb43e007023908008d3f8d56c9016569e9ccd6aea5a4b5838ae31fdeb345ab38de84170420f07208c09cf51040717f3bd9b2d726d4b27f6dc22b248a31efdb983d4924d0a8bf582dd9a21404f99e3b4ed81890176c89c15eb0b3b15bcc498c494c49ec48ac486c48ec15dbc106b9e59bb36e70cefa1f1b24e72c142569830d2fa22368341b968c463136c86c3062832c020ea84788fd8cea117ed810ab814a0d4e6af8a9c17604ec081f47ec60c41623b41881c5082b46e08c8092239643966396e3072ca63c822b872b478fcccb45a24c2b94201c386060489ed1c390366e8e1953187427cc9bb731577cca7cd46cc15a445a3223ad98ce6b072d257586f8b5152a474d7a25ea1539d6b46860d8b9abf5ead58c8e1b8086b80d811be267081f45b40cf12aa2bb4043301942c91047862832c49021800ce12ab24508217e9c8522264666c6003754ae5b0b9d8e2b8693184762d862cc62ec6268898125869518546248890125462d8612952bfbab5caa970ae66296fd5be85aec5cb85cf4b878b9f8e102e642888b980b990b1eb2bf8b1dea0cf1656c8479043df22d08921e098a31267e9dd888497386f1a40182ffd302a8c59116405acc5ac05ae45a506921a50594164e5a3069a1a485acc51015402a76262cfbff4fee813ecbeb3ea857a2e7d2abd17c3d15b2ff63a9334412a9345a5d99c3cda9ceeb544f6e4dd164227960d9da544748769d1ff69a3ea8b73175603ab1d641e9bcdc93d22bcb6a2d69d1ecd9a2a16e7f7bdcfb40a1e55f28746f7b26afe48f7c911ff240de85620b0a8542954a27be640382ef05953127104459983004b58ebf8d09c3aed13f61f6b45cad039e745e2d201f9b55675a9e38d313cc999efe46738267aa6a4cf2f8832b08491ecf7d7556b030aecc7f248f57d36974befccbcbcbcbcba7a57bcd53fd280c0c3d8ae650c8f33c2f4173f49e19e3e608f49aab50f4ff742acbc6358ccbf274fa475195ca7bd133cdff47418a3fbf491402ccffd7619ed5533a529cf73cefcb53d6fa3769c3eb5b3a69e3ba87ef47dea8d93b5f84286f267de93dd2c647da00c1f3d62a8e8b03a3afa6eb30c6188f4cae73dd9de95428fa5f869e90b22ccb2f3ffdf25334558d30c61863fce2c8f3de7bd1fbd17b18efc9d00391284d9f7a42542a148539d3ffd3293c63ce66dd9817afea057ae339cf11c97942c23c42a23c7dea09f97ec6ac5974cb92fb63f08b5972dd4b4eefec3afe710c1493451704726957f78017e8fbae6e1cc7514646c665bef6fbbf59c73157af6dad7bd3be3cf572a636bfc438c801ef9a9df1fd7dcff3c2d0bf33cddef996d6b5be9e79bff6b8bd82f9fa36fcaec5c4841ff34df2c49cb56c9df97f1f7f6dd6f9a9ad896325fded08fa282de0bd47dae0652ba457b05ebd25d2abebd9f27df90fef7ea892d7634c1bc4dc3eb0306c064f4bf3174fd37b1c66dde5ae46bdbfe729f4b5432f5a1201dee8ba5e85b913d03bf625fe35f1bf6977bcf1342f924edd5af594b31c63dd49848232bdb31ce2fbd875ae2befac51efaf775ea00f6f6e8671598efece90d4669ef781e0477e7a75fffdd7e52cf3bb7cf19af7ffdef7fe34bf7b5ea0afb946fbb119e68f09a5e8d39bcbfd34fcdfec9dd24c4f39751d2df7943b4bc79dbe4b6a4d6cbdba4fa258dce79d9da57d6067d41c82e6bd8efdebdb7f93c4276e94e4b1b5f3d83580282fca7bf37bece07ff375fc9b67099278f8f44e1dffe69b6709feac5ccac715c75fa6d12eaf509e6aae50a62f811b7ae57e5e2f02afa2d1ab5bf3576d5a8614945aca14dbfab88ab6d4951705df878f02f0f1eb90c47b1dbe0f5f07f0f1f7f7e1ebf83e3c75808fcfeaa91e1bfdba50deefeb7d5b20a63c6adbccb447b63674b6998e998788b105c1fe3ef7bc7bafe7fe3538864cd087d266d1ecfb4de2c067ff7dcf664be2c06705f1d3f0f6818551bfcd8a731bcd95c4d66720fad7effbed33e03bebd9f6ac9efa1715942f2ae8958d01174e20cbfe9688770f0f76fcedb8c41051b27f0c3bc3667febfa9d6e6b0416eecfd88f5d38f97bf173c00dfd1d61f1efcb94e0f8f7ffa657a2bf677a01343be0336fe042a943a4e35ef386463b74920793a64c39fa94a7721447fc219207d71d2cf6874c9fd1db1f1ebf0d1f5b12c77d4c832adff3050a7adf7b3dbff7330368be240d03f0481920bef705aef5861aa9ec802e218cd0a8c5e8bc01778396520c89e0776fe805dc2b149e4dae28da67f2299b6e2993326882230e7c240ef17b2947591c4599cc22298ac66b8a591c892f231866f165bc2606b31833ca90c4d2681a2f8a864674cfafe278ef8920fb5b1d0f85056bf22963654029e05ea13c6f7bdfdbd9b7b5406ccb2b3ec52a3e2d6f7e858a9b333d65772b2382d6835289679950ce9ca52302762604cfce9a9ca90e5829820f9ea93542f366773603bfc78603402b8426ed45e927d7f6ece855d76a6db7fbbd9ef77d0e2baf3bc6221ba5d1fe8f09655a734f76b4077ea78df26447a3fda9ed796b04f4c5c9593b9e589bad67edf7c8f6bca146bf681455a3b3ff0d63a3ad6af4cbd8df6bae29b0a3e666cec23b5d6f97a7b646d8619fa82e20a322517adbcea39f96c684321ddb9e36ea0bdca8f51ee55f733a001b357b99ca181bb5e5901a051efce08008414879026ec759f62b6edf7195b3bebefdf254f14e7ba1e68f08655a77f9bfeedecf3486bd85fffd17e29c85d2f191a2cde1ce6ae8c14fe2a70ed17f6709be177d09c0d4d246f1472b73164ac788fcd1f7d8b18fcd1274aa539967a24c6f081a7d52c676dfe9e48bdf21e854bf8d555bbd752773c3cfb4240fc0c3e626d2a8b5fff25657de8f88f29ed645811b8e1f44791ffaba233a43cf00d1874e1d92e8003ff43a6006e870da98b3c6d3de074d6c7e432847274a87a87aea9ee4896200f8f8f1a9c3379e281da1173f74dad8896200fed0874e1dc2b4241df031203cededb4354fa119b4d16ee39b5877e8ea0e9d93281a6afebed0436b6badd87e5f114a7b366a23895c5ea2fcea7968f64c8f45aee40142f9eb81569eef4be24af63c89dc8fbb9f3f409d449624ae54f96932892ad5656111acd47552c4939cc3cd17d62bfcf7c507cdbf69f47e75377328650e98c095c3ee91d1462fac74acaa65ef5eb9efa0a7bab1ec9fe702ba65bfa37b9ec5ddf72bbbeeb56e77dd668ccfeabddbaedbf4c23ccf7b11c9e34581e5fb6248d4ffe2660ed82e199fdee3afe401b099e20cde9a9b5e79173cd5fc2ddf27f47fbf9e4d8b918128ba0fcaeedaa87a9fd5da7e9b3bb4654f0ba59fd232d7c78d760b6c740ecbf52ff9f52f1a43f4b450822fda192e366a6676b94bd0c7be8cd0add1993f95a00dc7cda128299e019ad1392b849b01c2b9137b8261ab3b323977999ccbe450641920219469e8f6fdf566600ddeb2cd95e409e1bc10ee1bf94026973b34b34c0e15c71749d35618a11fcd5407cfa1b7240ecf183c7bd81c9a81d556f8232a33404a5aceb41932a20254d2cc1c9e660edd42b7461b9f1d8a320394bb86996d62a11bd02d14a557a08ffd178d9e2a796ab4df2f1365db8c76346284c72cba7d7f9b492b6a2a6903b27f4d85f9be3dbfcff33cef13c550288a6ac5b965133ffcf0c30f3ffcf083678d781f123dd366d1c75012f03d33071cd756d423410edff7def779e0f75dcffbbeee5cef7e201836f87d9fbb83dfe721f87dd98322566725b95f1f27f9feda8a7aefd1681d169fb6a63c0fc47fdd3b53db8373beb487f5ebe0077e37c9073a7f9ebfe0e301f8ddfb2df96e57f41b41f6b720bef7c5bbdeade3581f6355ca9c9121738150e65e0feba065f7b4329d8bd7cc55e59565653c286d8bc4fb4308875bc60988c39bc31ff00f9ec31ff00fa004765c800240d88c00e900f0047fb0b0d0fde1db817d32071ef06f64ca0b5c3ccac450a9eea783d25e7f81a236df1f5b86d7ef84be7ad7b3fd70da8a63b39ff7074b13e5e09a61fda9b82cbaedafb8992c8bb76537d49695b9ac88d5ddbed9182c8ba0078b59d8e739078201f11c786bf6d2ae8972b75749be6e73561c48dbda894e8b95d9223748e9eb9d39d87cabebfe8df9f9947c4a483ddec49b78136fe24dbc8937f9681fad6c91334251ad386e719f6dd7ab929b9a0bee69ffe14288d41afb62dfcc655053fd26d35f50531ea4a20e6b54061e0317c28978100e031fe2b1da7a416d7d1fcddd05de0217e2419c05b555b65e683137e235c8fd2ef33eda47f33ccf33994ca6fba6eb71f99eef072a4486972b8b94296a93e9d0143c2d94d6137bf4b450564bda689151f070c036e1852e99c77d9bb1593a0da47c6bb400459adca40d34dfc677d6b6fa45f54de43d289753969ee28d8b91bb3aab779e6a5c9e7e95f62e8db1731619a553fd535c555e576059c82092cbec494e454712da85b890b72265eae944ecd5afc89f4697b26847cf3465d0f43cddccd35d5110b1de34f126de0466d3b9689e83ddbe1f9e11c9d14b0c8ad289a6e6068599025d81bac001c088ba3a018c3da559b5af7496a036d22c1592bc44d544f5441525d76f990d6ad60ecb25d73dfda38510c9f52dcbc260360acc4e81d92ab02b59ac9066599b256203269805cc92fdbba798350ba8cbe56e3f98b3aeecd3d686b66dfb6d41fb35a92ceb4d6e5b053ccf50df98d1eacad08b6de27caf78b1775fb77ab528f9892bbb68bb73b6daf221b55beb0f9ac2f014863361481386a830ac09c313616813865fc5096a540467a0088226380365f73b83af4e795727d03e1df822fffb5e7e7ccffbba94e1a74dfb9a28c31679a3c8f3c6d33e913951dee963fa9a634e9fd2e823475ff8fa7c483027ea3b6d9497b3360ada4246ce14832008865ea5ce5f8cc6af06b5d62e95653a6fb83edc15d4a0bc517192d0e2366902ca4023e04c342a5f60626448a0ac5761febe50d65c22dd6bf612d297ae017a492d37adde0c70a357b73f0cc3300cc3300c49a550087e18e31992a421491449d690e40992b421491424f924f9e119024ffce1100c41b7259e7e32056b60ec4a6ed19fd67503dcc1aee401cd5028d6eec753da0b65e9499f621cc8328927137701f55ed228307e8c4d8c4f8c53607c83b10a8c57606c9b64f041901482df18ffbda36bb60d8fccd404390c9935df0e89e67d300ccd7aaf2863c3f82946f26dc138f4f5a6f8be9bef53f17d2bbe8fc5f7a1df97fa3e706cf17db8e2f0f4f9ed520c82a78d9a9f7414548bc010fc36c3272f49921f68daa8a8f0b4ae46bf7338c0f829788ace2a8e46af89f2e7f4a6f7c7fe7887b984aeda12dffb4421a0f4a4337cf1472373343a47a314a3d1cd68a462345a311ab1188d9a28ddc9f376a3deb8505ad80f03f40a74107c31258a2d44d18528be10451c51048028c21045952886a2f145d50b9ed0f911518e674fa3193449334565804d1aad619cb3702c86bbecdbde57d42f9ae9e8d56c1b4dc12739dc2bcafd9efb1c63bdaa604dc666b33fdf0fca97eef9f1d393fbb95d5801b3a0e96dffed4299362cdbaf24d397cc938ed29fce12e820bde92c01fec1b8a675cc2833dea0127cf069ca6f0b65f8e1f9ba25f64f0b25e94b6f7ad3e99a48f70b2ad3329f666a73c9f6edaed11f08c9d5083e886501e46a042657f23fc695b657e30cc903fe2de5fec94269cfd267a5bcff2244197e3f69237cafb645698f7c9a3535a2587bd5b64ba4af5f3271ce53f6966d099a240fd8a4517feb0fde2bbd026a1bdab7ca5d422d4fce3291befbac3ff9fe54d6c959a7134fb9b97bbb5828c12a9456d62b9cec8f8d340b4f199164d7b2ba2593d44beed3e8fad39324f4d0f740fab0bb9b88ac75fcad4932f1cc538e4f77f5ea9edddda0ef74e5fdd477cea569a08966e7e265193ac330b4a57d72851287eb550ad6f2945e757a815306bfd1ecdff746fd116b6af0099227341e8003b64bfe4039c301efd225973f7af147f14fb992ef3df81db67971f9650aa4a75c36da3cd6bcc0698a1546b346648e28c2d50540f617eb4f76b1c10ebbc3b719ecf09e35276c50bc79a6b8babbbbbaabcb658b63eec6ea76a3d12a949566ebd513afad3157b269b42329c133c534ab2b8728fbb14d162d9945678171597ade9ef540512f19e55b6bf20d5116d9b9d18de61b59cab469beeb947f37695ad3dcda9ad6a76d49a7fc2f15ca7e19d0b9348a7e4c94a81a613e6bb0941f50e91169d67b466a0bbca0effa552f0315cfd1da7c97eb7b4c94e08b36678535b94d16d9f6541dce36dca1b5216b456b476b496b45d68eac2dadbd7dbd0a43e2487a648e2c411f7ec2c25362c4700ce370ece626a738860b4da1b4df397c23bdb2e70b50f6e3f68993bafa4a59accee2ba76f314ae6968e7b2bfad82516b53d6b6b0d685b52facc5b11600d6c2b0167716a02cddb430c49fe22a210e61fca1b0a71ffbeda6e89996aa106e504c71339b21a1f9f53e1087a19ba6f97b4bbc9ad7e47a1f88c39048c3e172381ca8c2d9749648a84c278532c53896ca53de2c199e72d0884c0638ab382e03e9c70f5dc9fe98452a9d780a064f8cfba2e0bb66d1b8aedab2fed6667b9b779230974e39ceff3bd32f7de8c4675a7e78a6780069d330ae69271c3695e5c9eeae942928cb8e63b72d0862100c4130048222088e204882a0e8da2e1bb532590ccf62315bcb6a8bc51812e105097509d90e208d011d40b6a9d1eaca6e31baf8aa0b173863ed9585a1a2b941e5cd37a8a419bd56f60dc0589d65612e97ab879dfa5fae2f63fc96006b19c500930ea87ed3cfbce9eb0e494709c500920e28d29f9ef475a774f6d8e933b5b66c366dc66c13458375e5dbacd20a85c3953f2b58f641a1ec6f1ac6b769afb252dad6f19f316db932c531dff52ed6be8bb5ef62edbbdba74499fa0e26d7d293ceae3903486f3a6fbeabad58b3ba9b746a4b8d8ccccd69d3527f42097e6a6d5acafb2d00ab2b77ea8badb15696e9ab35426599ce527904e9b448647f71c6e83151c6e4fa188771599e4eff345485711e1365d33c753d26cadb495c1ccb96457a92d9344ffd345aa5aced8428cdc25f13cad4fef8a894f724d5015c1a3754e800621065b01fbe256d541c02d4b06baf6418bf9ff23e48d6d85103f5213dc6e11f2653648cd66c9ab3c09a97415dc3a0699f541c22541c7fb0e62c5b049bf277cb046b840de77db5b646bb94a9d3faa7ab34cbf4feeddf356795de7537a8a83f397bd164de2e2b4ecb7c3a67a177d6efba10860f89205cafda47528bb5adf775ef7e1ef899fda20dfb7c9efef0edd7b6303441b65f73f866d8f9b60f2c0cfb65d3da07b8ae42f258fb6dda3743008220ae827f1af529b74facc3386bcf7ed24c3d8f670e3628ed5b46f3145b25d7ab3e6dd46cdf71965edd1313d1f50a654f1c6b54d6288ab9647f558f8c34fc91bd8465ef131bc9a190ecff2da14cf1a738e638cbb28f71f68217b412e855eab81b11d881719df2a675ca1f3ca794d6fec0f5aa2aa1bc6f47573ed14882bde1388689f4ea8a0408431a6198c370270c0b10863384214f8d108cf52accfe7dfacc4bdaa99c7d1e2b0ecd1f93b2fff6925ef5ce58fb6b0166180930d65e7dae4f929f94f2c60d322c6beb945b5c76b7b7ecf596258770d4552ba906a8ab5e52517f7c360d07d67ad5a04d2c00c63360cc83710d8c6d607c03631c18e7c0b83f14914a620d16a5075fce2a9da08c04ca5e0f9a6106419b4fe9455b5a2bda18efe7c09aef9c453a710cacf9d7206ba0f95acb23814671156bb10fe941b36bd671ec46038e56718e28538cd3615caf42e0b7eb556affbe839f5ea0fee4fb3bf3d351f974123081ce2cd9ffd3f5aa1d89ec958571152ba17a3b81a73f23cafe9ed2ab3eafe33e24e06a8b94fdf14f6d79f60f65b535664752a6a191ec2f8af7de0effa2bacf10367d4a6f4d1fd2dff02f95dfe9f40f9ab5fb436fdb864e1fd3d3686beace595ba559a5b3ec54a7bac63e78ba39d9b041f278f77e386491453bc652b93f87661c7316c959a4f386c7329afbf4217d68f60d77d2897f80b28b3d36ad694ec3b82825fed0f77f6fcd1c40f0ac11e632fc32c6f50afcd00c738aab34094f69d49b74e6f6afff8a376e90f68b281f65cf1a61c6b846611ae34a9289e30832a41c1f11ca0f4a794f64ff4cd3d0307eb7326dda9266dd685aafdcfd3f2394b8ec6f43d290ded0a8d790356e9b678a1b152b58a029172f7000004395231a0540003174562c1930b466940388410602d0b009b50c9010eb8dc74469ffeaced466d157d06bb2cbf4ed6b9e7eaf875fc92c76c6f7aebb9fc6c8de8b9b1332d983c9b856f0481bfcbdbf5974d893b9df992f7b3573b38cbd020a4392272479eed3701ce2cd598de24cb14da7a3a8844c7449452b19a201000000008315000028100a870483e168228671aef714800d76a85268509e49a31cc8739842c61885803106000000000080c401382a2002da1f5388ae64ba89ac390c5bcc9a5000eecc8e8a504c9d1d5c55a32cd239b8d4f247d3566dbbec5e23f78780f0f9404ec2b3950068e604bc993141deb302784c8e3be976bfee21c94b4dcfd0a951402be863ee48022a4dd6a771d7e7a32b303bae737d4de993944aa157f36be9e0968de5237b05b266fa0839dc7788ac1ff5028bbb1cc5ae97081c83bfda3aac3ee70cdafd1c0f3003f844fc348c01a33dcb55cf44751601f0aedb5a18a2d91a012b08ae1c580b2b84838b2cb976eb208b417e81ec975cd464ff407b309ff6f16341343d93b304be8bec59ff4231fba457fad203cf89214bb57e5bdafdd21b6495dc804b232a55eae703fc124721392333f695142352ad3971e5028b6df91b574633d50b447b6bdda7d477f5e0976f14ccead18811bb49c42a16debdeb54909dbb0aa202f62e2d9ebb99513830aa9f9f327be65f43a6a15ca9c68b5a2d8278a4e4c9482c07a45153014c7ea5a4a4ad7fd3a653b366fec44b7f262517f6a5a5dd7bc7628e32ea99b5b2ee753f9d22c6acfcc283e66499e82c9bea1f791e5468391261dca2e4c7f306a570dc3e961ca6cc73580a29e66262d7e84dcbab35a872e551b17753868097971b03f02939db70d84b5cc36e15f0d161390c1be1c4dae2003f03f4bebf025946fc30cdebf92b6ba6779ce07164e569285b82e9c13ba75b3abaf70f81e77cf1a297c303877dced71dede0b7355d05be27a27b20aef51eb46a731640431444248aebdefcb4c1306787b8c46e55b585eac5bbb51968855c43260ba79ade4d80b5682cb967eb9fe5ea8e15fd84a77d6d57f2814e01e5a3693e80c469dfa610aa6635dc9552019d2f178a92bb27e307b6c58f7f6416326691dc928811f599ef405ff2a43950836e9e75e495eec33a74338b904971edb41a902dc130362aa80ac806f0053c4ae19bc0eb922da43e8f0040f9a2e9835656c62ed8c607ced9340996ca1e86e9069ea69ba3d464fa85c97fb535b57259130c70195c4dd3bcaf52b862446e9f7a7db1fc12bdbd839e819098e4f3dad8765040e8a11f7861211135d71a96a39103e9c1fa2542f3ab202a4bb6c262d3876d2837fd01b9fee36c431075b2ff54ee3788ab640eda5dc60888b1f109ce13c047e88ab8d0fe1037bc603c55f95c9bf03c824cdb3ee63d9e5a9947ee6bb3891084a6946214f7e5b2d485cd2f362182f082e6ffed560462081c347f7c1cc1b1b8da914cf8c4ac2e7b75e7036fca27e21b6950630d36be8d5c5d9b6075096e2c27f3a8d78ada566742f36dc0273411857adc93eb2ade0f143afe2d13fbe8bcde5af412a58c814c81493a91be3c4549f38ce22d110a731bbc87ae0d98078299f859815d5ef6c877ad231b41966601e4b3cca5a0aa48691742881695eee9481c05cf8e76a79123d76099b9c8ae9256f017682c53ee1bba5f1b1b419bf02a74b6ba3952ab21da23dbbe06799855df7230e3fff8993e9057999e42a910dafbf1672efc079975ac2b1a83ad39fb8fd27a983dd1bdd6bee2ac8b1bb2dd7e9502c5fc0c02b27f9e0eb013cf9bd9e76e72d91c7f2428493a9b7d0272de6f3c89b3d760f1f28f0ad0b3d621ed389703005fb06431df0522222ffec44daf384687fd1bc0582e1eed78690451063a6c6eecd02b91395c34da64316951d788d8f51132a1801045ae0606f90d9e080cad44068281d5c5a95c305019e33dba7174e71831cdabf1eec8758397fb08c7c81bfe526001990581bc049446f95b021a1ba1ded237908eaeb714c39c320fdd65bde9946018c0594efc9218c36f5a54b08ddcc7f654a9d54acbbf611b680b5cc34d0b27b5dead1afda7546bc88e1882a27b705a6771e258717315b469296d7ef467c1e898e4f6121944172ad1aca6320ea8148620e9d05593f8ea0b0660052d8f6fbd792b518f9b6fd2d780ead130b99951ce96f6dc35d6f9750f4e4b9786bed59e4f4192a823b6d20f01f76df393d93dc99c90bd5697c6cee5a2ac7982b177be053b090f42b594de75a31628958006152267c17b915d26eb11f2f15a915aa46cff3734a236c155f86c79b39274681df30d81300ce9904a49ddbe81a7d1af908cb6dca66af7465be34e88a81351b88ea5aa8bd2d5574e5afec6306927f91704d132ad39cf62bc8d11dad44741e886eda445ef247fb531ced65770f3b79980661367c3df87af8d75277a3640c85376d75e590c2c7f9b42a067cb7a26f87f0e5677aecacc8b8b56a567ca65b3c0bd3bfaaa93ad0c3d18e76e4c544044311a49fd523324cf579b050e11c2d1480b86252594298bab4d596d08df2a04c8acca123555ab5b57e3723c368e8ebbc8b303643f67d62086d182859d91ebb3b121b4095d42e7d653b55e0f295b1a1f89e0d770642f03acf5317900ddf8dd0b79b3bed95c575e4586e2670d025c699e91d33a51121b2d8c004dfba2a6cb1c2f84e1dc078c2284912e80c3a6e37496783eae82d1492b66ce57cecc475751a5d9a1281a644fd450a334dffb84e2cc828f19fbcc3dc33208f26022ac6398cc2e02a9040fa103fe82b6a4d62fa9ae8fcd86a82d78159e597c531a22378de8d69684776bf25fd375dc4922db1d1008300741a1cb9b57d388f8e1195d4994ec327be3895c93fa66c1b3f7bdd6371f018c01a9721d72d3ee67fc753b58412a8a85b9d03c061b0f52e90148513feaf4d017839d2093d12f96717bc1a2123e820787c9efc64c99645c5386c591d92e1446cbb2560e060e2efccb2cd7f7fa52270012f40cfa2d2e1a6158870ad8348014342ef7361756fff43162000155f0622838c1cd340bd2ac2530d1b80d39e59dad77a846d079ea68c0cec73cc52049b854c6b39d12fbeafa5b404dfbdbe26e2de8a3dca02180d86fd11880c11517ad282c61172580ce5d52732219890e6e0bb5e599b375b406eb64bafcfc29d63967065d692ed73143290eb164edb111fa6a9c0ea3afb9fa9519cd8544d9b29fa6a449610e35ec36659a4b5332fcd27d4991289a0013e39cf6bfec18572814c8f129f95ce9433521865e8ce940994edbc67410930d4ed83fb2a541f844af541fea416ca4c303237fd2df072d0fd214b7fe024b8c99333ff0972d2c1db332cfe5bebff91d80211278f12fdd7102a68e00df0172a388a94c4741b951e20f9f68c6f4461c450f052c87084530b199ea307a7b67cfc32ae29353865960badc648d9a50ac4d3a3a6728934ce6550087aa48e31f0d9697d5669f3b6a3561846f72b0fd80660010b6b9b1d54b3f313babd526eab334a994305962cdb33337fa77fc459309441de8a27a9e3f3ebc664743024e8308da7f1c3fa5f6e4a65b1a56458fea9faf6d1afed32a925307d04a234ea2467624b2440a8609ffe669a246ad4b65a880bb5441a1f0380562d677491d50e967d115bdfb526f314e3b2404dd339b8854bd27b6c388f7a45ed1e66877b7d3c4b5fc83eaa7adace192599be8b91bede3e7b12f1acd7680cdce9d5e4a77a4333baa640f68055b1330c628a2d0a2f86e041a14e99e813777f2eb41729bf40bbfe35a4355939a4278dba9ca1b04708c57bab9177e12f2d591f0d433098b18c42b8a003fd0b71a299f050485639242557cf34a7e7a76316fea844eaf6b720665aa125826ff08ab18360db4651249de20292ed61115268f55a95923c2bedfd36bb93e36b143f7a25ef042d095b9360839d3a3fb8f624ae3c33df6c461bcab4ca4e587d2a2a6e704b3cd3f6721bd27b0386871cfc9b83a653d6d4113a3f6b53f4670b06795cfaf4b85eb70d00fee6d146cf20367f2d7a7e7d9b407cc123c5414b80eb2be81d10001e3fcca3822b4193d3770a21838461e3d16d148cb40570397789e72c3cf6e9d7077b50800947fe2f38ca289b2241cace258dcebada2b50911ee671c7027883198839cd8793a40a1b3a0c413978546636f5e5b17b5b21f55865d7bfdf3dc020b5e20e3e16781c2f847ff8ff996b144361dd4719132014ced4d9fa8b7ffd51082ad649143769b2b80451b36e95fe2d51d45b8df51ecd192ce513e670dfebc80ed59b646dc0321a0b96d11a8f2c8c6228c620cce72cb30993a8986bc85f08554b74a7128151bc16d64c5ce6dfdde88102c668860a589474f7c68e790118db54e05213d12ca4df0b82bb79390abfc00ad2c5a4c6ee59670826edf484c8dbe7b08f329f92912cba6156cf7f1ed54d0743083c7a00e529fb4c757db4c9070266cd208b29378a155ed5bd571e5051e18f1c6ace9823c65da31334d278b0891e2ff63df5bc0bc1f9acccaabdec6d56b06270e5dab6fc346230898d4c4d958d6959c7773244719e03c5a6433c0f33b929ac12701d049d741e1521fa5438c689524472e9268e625617696edcab3c16b7489bb0f71686f18ff2a528980c0183eba8293843131bd68b18364d1a28313190426e9d401a02fb2ff4a23aaf1461ad458232262b3f1caf4963520755b7284d052f4838a4883661c8cb6a3e77f708477d359727fe324194516829b163c2bf8edd58e8f89e8476ecdae4f690e578e059d188f3a1e532737278f8a8a6872beb66deebcb94ae97d34c89c45a3edd2cd9f24eedc94599aa1aa793d345485b9146b25c9039d912d3cb57027e1e5187ad173278910efcb2a16bb32be0befa5308fa27ace0e09281015c9d3f3398a6cfe5c9d77b2d7fef347661bd9597d758a5a47d572892092aaa370f7aa611b48383f057ff76929bda9353ca12b488b7415ba1ed43e343b9e3d4f8932b4c0f3b850e8dbfa2ab12951c8d3307a9dbb0dfd4385cddaf720c182529950a56b60acd76277112a64e72bb010ffbf5bd102ad275db3bdb6e3349814e3ef71c6cd94d93581d225be776441d6fc9207b75cd25fbb9f671faa95d6d221be33ba34c166ed4dfd8092603b8f468733da2e3dff4b8b54e5927b4e744893e2b77ec9131791239c35c023f5dd8a4e3baf10ac4923c785c98cf3ee511e48a02465fd64b4743c025de6a749d86d23734e8fc167c812141e7ccf9f3a8b09285c9574a4416e5d2ff58851f383221954c051c3b63fb4fa31aed7e9836eff6f87a90a5315a214dc8a875bb63e9e22d0a71c7d44203954ee38dc7c1b9bb176d02d6cb274aaeadc844b623dff53edb6f471474994d100d768a31b34f6f49e2b1728b9c5fdc79f609e966ab656931955c9cf40df00726bdc70da16b2937242938834b7a8e4db5592773f43f127059091fb0119bbc1c2774f86448b5a2a54192bfa1f9c8e8bb8e149d12cd86c2d8e64e13c86c8e6c8e6b5519d53e3664015f0099d6e42c6a0d32ddbccd0867231b5530317340de033629f3b785b225f3acddfabb02389e0ee4e430fed330ec1c2172ac13677eac2a76bc3f72ec597aa42588ec8c0761438b21a29151c33147cf5dc4c0bbbad169a4f1d163b7ba072443ec53bca85e2995cfb15413a5519cbb3477f103544deb67186986f7cf9b46c05ad6177a8d9eaa4aa3bda891aded9f740693797343dea1777efd510a8943a8cd6b13ff47bc724b6329bf5a92c902901d1652691a92f3cd61e32b5e8d03adf638492a02023579de7d9d1e3bf1095d241f958ba6a76ad204e97aff6ea5391eaac2ad354fc6cafa0aa360dfd1866fd56620a91c128bc632dbdb2fe4fc5085a9cf0c1ed7b1f2faebe72ff18e7e9fb5d2d903e41a30b720179abd0b738e840871e7ed0417d101f601b1c44836706aa5c314eb94b9fa7d375076b7975ca23baf1861ad8708d70e1c036dc7ca37c2e01683e5cd034ce6814340d0755fd6ba5f33b316e88ea6d08c642060ae149d6cfc11956d8d29c5fbcfd3391e46e6992578e4e1dcfa3cd2b2c9ed1926260163f81c9fcc598eb87c10249544194408bb2911dd4e23333d3923eb06ca0957e569c8ab495341202143e1d1b72c776d1c86953809519b8fca1ebd58b3575084c7e13a734277724823cc14274cb7b1a5536de1996d39b21dd9a7baa8cc8b702d11dfd6e09f23fc442de329a6b6edffea5549800ebca8f15a2a6171c84e99b8a602a4e5b6037a9dff9284c5b7dabed443b1124106f378a1d3d3fb1d6dee5ccb7ffec609a22330e6efa3a138ec98b276b594b6a6e9d870ea6f14eeb59834b97a3e460410714c1bdaee50659be7f8b5b085912789d2f5d6a7124bf34c914113f68f64d378d02fd2bb56770e724bdb86907cd0afa5d0874193bf77382cbc84df0d31aa8add50d6122b159c579b7eb44e888de4457d5b56595fbb1b911b608ef0ab5a0573d54b382cf64707553b96eb951dab8c6125c8d0e302f4646b14b4095fe61e63192e8b1a512d48582b8bb6057239f18c1632772d042fdc5485855af188a92a2c8e9c54f8a0a2329e9ca37f26e098123054bbf345c97d8aa6bba737e83e9ac0e74c9f46ad0eaee2f4bbda2c63cce342a69c915125eda824d124c4780701a38d000bf2884bb0980c1816e2ab5f4088e31f46071a1d51c5cf8ea9fd4288ba39ece03ec53f1078876e4e867123ab3cebffd512900345d61c7a7ab726388bd99c528ee108cbe10eea1b2a07bb04257a9880a959428702f5e4b57a942e5084a0953e844c2085ff1a9ec640999b9825e0dd9caff7bed244af7b230b521ff2a5b96583c03f0793e0e2840242cedb538ecf6dbf874f9d9b13215d5ba2b20df9fa854237289592c5486fb55da6eaf36e943f7b4e5b8da98fad114fc48c9b87b7785668fb1035b715ae406b7326fa1c09cc39e8ef3b4eccabc29a00a5bea6d81c8015c40b22b42700b39995e31a0147705be35f81ab9749b7d733fde53e6a6787fc5923bd220db824b827bc3984bdab706667895007c170275071977ced7ba4d2d6a843736e0f3b8d6a136e8185b734545ddbda26f41a3ae60bea99852218a1d8598679f12418ab67ea36ca2d8b5c6c56da1b1247dcba9dc78f5771faef73f8ab1e2d9928ac2293be0cf25ffa7d06273daceeeccd1abc556c37a5ba3353a6ab478d4aaa7be9cf17bf88423d5f09e1c1dbb43e1969797101961022ba91264412af038cf0cb83232e169ad5a81ad8280dc4e8e3cd1c7783a363d22639e827e6136d467b4cdcdc703cc0f9891580ba177787c6c1a0502ba3b24006b98eb837b7fa6a4da0d426727896cb4263cff64f32147f36305c44bca25f2aa48b4653ea6b058eab63a755d536453f23d532434b8267150f7523b03dd27df3091a8e6fc2ca2ca0a2b777ecfc3ae76866daf5949589d313b3bcab65958eaa202a69a82ef308e1e4de3173a65acdfc881f4789d9c3a2b9cc087b10f9320368d52e01e019e2a6d591973ad4c1f5c1a6d92b2ad97dff3251293b5324c6069551919405eb7aab9b814e9b9c602873c1ff36a160e76690bc7b474164143adcb4c04492a650561d98e325cb7837f5260747428a54d00165291133443824249a1b3d6c5aa9ce6af035cb8138c17ffca1266dfebd75460b46c71209ee8aefec0ffb0d98dbdf9665e5353e97743eda612f2f9a93b54db8afe9996a038e7729b40c53fdcf89526386bd1128d23bcda07d5e70f5d8cc84579eb58933787d0971daada661188604cef7377de0048c3ac9c91ca5048be97a964bf7abed0405a56ea4d67b6bb6cbb0f976dc445bb679b46fafc2e303227ded01780aad98548d261dc5c4b0622ebec416919b00eea064c26f4895ddf1de28ae4c60edba0711957ad08a36d76b467f2469548cc80afb97e2d637c73fd8b4cf9cad57f8b1109051def98479a6904e1e19e786f7947f90237275a92f185c4b36ad4d4d7cea6917eed6121874c157d365ccea51bf9dbfdf81042b7cd60c9eba1c14c7dc4cd6c67c2f73f5594fb4b25eebfb6f132c9cceec0bd39809430791a9349aeeecc64c40fd0eb74ff191bca5068bc89ff64d4099b4ccf21cb39a2efb3af814cd152bf6d178fd4b66cfe2d79b383db14da666c5f9624894e8911087a493f75e186823aaafd635b363e621238d5ce418d1f4ff3ba3b17046d2ade0f1dc8dff5392c80fefd6b6e2b078df426f43a0a5f7fbdf636a739a23ca947e8e8a88875c5003153419effeb2bdf9b8a837aa94e0938a6412ae209910cf255ba4592827823d1d0b0a0e5536ed2ce284aa6374ce657808a9cbfc4d6498379896da575b63b1d5289f1015673ceb79f2916c6ca0fc1d261372df6bec751d879a0a8927cd2516a6b9b8668c6c33e4df7a568893259d3aa84c506d0d1ac0f4a4a7750cfe1fdbc5bc7013a0d65813313bcb10c4914a96340f7a3d01655b8105ae9c489a96c78d2a3d18723f72d3e5ae4b145fb834340b5837accd50712281214f019a48b43fa9a4fda635e60e044f135e75b5be995c9f3db4aaced2477f71af73fafa7d6adf88cfc9f31ff70df34145a3c152ecd5e8d96b1663c6ce0f385210adb30ec6a68a9777a31f79f003b82ff639a4118a3219769fea674803ca452fa553acf55786eb843b7d3a254539540101a8f2219afe882a8f5723f52efd1b732d8d7e5a70cac72475f9b3bc5b6a4bd0467eccc95c923b2d421c5bfa21497464d046276d01eca782677041ee44abda38bbf6133aaf572528128bba8c2d3ec60176f47a31e6eaf6c270e9646a08a28843e378c3ca3a34f316ab9d44d20d11512f16a4329e99c422681974cf9e720b33a931314696f62c55d3ae8d105638b72607129d6389b56cb58d9f54e350c0aaa8c80dec5cbc6a71606784bbad8ecb4f80b98b768c6ebd84eac481e15234d814e7ee654c0f08f13d1740c2c804ce56dbdb431e675c3e01ad3fb16407dcf190acacb32e1c07328172981bed16b2bb2a146b431780d0846238b543202fe8ec3f5abb1156b87dd42664ba7bace6927d2a4e66b144c2048e833e7b24d992bd4280dd14ebf8b7b3115594d7fe238f03d21746367c5b04a9ee57280bf9dd79d80c16af87cd0806c21011a2fa0086901d855a0eb6c2bfd6685ce0ba3abeb4fbca9ae1b65821319884dcb0f6e33dd939150b545684cc9e001a41859bea5e65579a8f55565c5856fff99de25006938df236a3a5ae58be81d3e0b7e314206b3ed4b53323865cc1ee7b3cf055f6f0042ad0bd3f313a4209fe06e6d0c6d6575899f496f891656ae1339f952d40ea817c9ca1f186c93f03ded0027f70f0ae816e44b7ccf7697cd743700cfc34c5377fc6643f7afad370d6f38436cb1552195dd493274cca9bf25d020e1f7c44ea57dcfa0e4755462a6542121621f823026d285dc3d70bdcb789c7599dfe31ab9c44ea1d8ee2188293e20c4feb0021423db9b6fbb471f0b0c567e8aa08e85cea6ef32f4a2c4f598d5d00ca3257f6f48b45ebcc96d3502bed81c8eb7d3e47ae4e29b87798cf1242f989b444380d9a4f5c3082a98589a34c6435c4e0bbf5f3789455241e6125471ef5b2cd3629d1492fcbd05d1893781be1d9fd73e05bc0fa08916d09742a6b1f76aafc20373f3ee1104a5dd4bdbe3a288be36af75382e8e92457955e0d75a9a26230487b0db1afe6ad640b91a4ddb12615d0a5673da20db94ceac39a67d99f177aea4ce03ce29377c9aea8094aa4a9a524105458bb5dfa476943c2261b97751d210695a819ec8add51a01683a458f145c367ff050f93605113ec11db7b34dd21e1ef2514e1316ad88f83987dbdc08c86ead4294b30cce32ad255acd1c0cca61aaa68c9187e52cc8127bf6e0c92ba3904d0549b97c3f2c6ebd2f0249118144cb1220291bb055cee5c3ea959fc32ce71480252d884af24055b8e5414c39591cc9b7132bbc3721cf243749b5366192362cb791d2ec1b755ed20517d159d3d62da1e145ef2356b0c3e730c2f2c8543c25e9f49ff87a3580679333da8d510d4168fba091df58fa5011bf3c4b14370c1df22f2bcc1f10a979cfefe82427ce691db487449357cd831118616d45c54bbfc379305e963601ca59382add0c225bf5ad85be77c1ee703a0925eb2757e4743683a7d133583330034bc43b2ed104ead06bb93176f0500981faa443f5ebff6ac5c8489a2e17d5cb9b142975493d6d4e75912ed0233c8a13f5113ce951c4733c40b849b792375209920a4da00df178e8e6c33f30b9ed953718aa0acd2588ae4d764ba6c167c19702805edb063f935a2fc0777dbb7c92da6a5e3d78f9c53dd59b32e4caaa458830ef1e4834a92f3f43025fad779c00e4c55af995672b7586a0b53260c266676c1643d42b6ea458981f84de79349df39e140dfa1f1cf56695c2e9f4cdd39d13d6954715142fab844ab020037b5ecb43c0f917e099e823e1f4ea9bf54cca63f2a0519be649eac3940782826ac1628cbadf9a868f9867e3a32a7eb631b7e85d4ad92948108d760f223135d4580c67db1b65db8f4cd6c5570b8c6a7d11053a63434d22118217f9509647465490ef7d3a9a548c9cb19ee563f51db68a9c1ce539b0073a8b8e90d9e3b2f578b34ee83b84707b269c77145ab7c9774d5838acd0774a547ea5c206ed5ba539ad04979674f96e7516d7db0d66e2869f034fd04f40e856f64c1e3ae9267fcfe27c8d2390b9bedb0498a6d10a4d84641abdc512b1c4ac96c916d0dce819de264044474459b8ad41f402682283e9ee5a14bc84830fa7b02e1247cad0f96e64c50e762f8811c20cf408c571e86d9562811e40ca116d7307a66ceef53706c854af92a6040eb03f61123ce500903695ef5c0de81eba22c6244de0fdc2f40841f4303810e978c95966d76146b37c56a7e3a2d772619d0dd4d9c26ebe231d008811c32ae4abcbe3710873039638882205163b8a2e1207f641869a9483bc70f95f17f4d6482be20ba2221c3a45dbb2719d7867be3c11638a4bde00d73a2666de9eee6ef12618542e9da414a31b49564d6bd09036dcc95b4305bd583dd6981ebdc5d8bee084403e3cd7f17a9ac418919d1d05d3d0a5ae142f0bd6e044a7f7392118077a53cf45add0214fb16d0f5ec2c372177a23e3d390620ba4eee8b2e0f4741a1c349a640f5a83faf949cafc9494eb85a23d18972eb6911b0db9971e4d305e40039e93c53f3f0187fe50f01aaa26ce263826070b2e020dc65786230243211549fa42b849b503b1a3b9e787592993cb9e733b0465706105270ecf721d28db1aa438dbbd58957153ad54794912b76188848d2f3f05c203f8605315c9e0717ede874bded459e28a6e10a9fc422d7b45fdfbf7416723da55f05ade50a5a2494b822048dc657f7da0a7b476d52dfd943f1ae166d56d3466aac2251f2ba5d8215df9644c94ae0a87cfc2e4ab2ac36a1193062e615fbd55e357402afca2b4617013d5944e4223297c5e6be42c94c1a8539a281991120648678720f28295c23f1470228760859a2cc8b7619416b2f77850d40f3bfe05a486a6e469f195c6c4a6f2ffe362e0f7599faa819a41ab5b36ddddf7e958c6830bee98e07ec5972dccaa89eba5c36edca3ba1f46b50a1efe5b5ecedcaebc88e95ad1203d29d428496558d2c695ab05364d9b150cf35e7e88bd889da56e3d4e2d4978b2d75e6ddd0ff8c8226e52cd02a77f65733738dc88b92aa20a038d32a3ed023eed2de4ec7b6bce35bed900170eee09119dacc11f8946f7663387c3fc7a604034ba8beb4a4addd67b19c4e3f7e967e34ae8504f1e8cdd03514f7a0ae5ae6db9e6b56642cad5029b3c2bfd16f38825d0127d5ac3e05c7985a75a7800a9ad9062d955a87ae9de66485aaf80001c6da491b5909fb765f26b08e61dde05a07369e291a7d8ee0848b2c29b10f36de71e98445496e4590c16b96bad2decd3451dc389a1ceee6431053520e2bd65c52a4ab9dc64a572ab78fbde4098ba9b9b064eb08768d201afe2eacd75e579f60fbfca1d23fdefd01208c30ed45eb108a80d201af8536ef30681dc34969b65dfc9781d4d22c4287baf414c2f0988ec353b54021c1004331ae832471e0d9f98a8f5d2e50dfe9f9e243004955953817450c1cec3ad92c0e3b0372a43c8600f0bd7a7861f44bade9498d4e7e042efef99169833780a336dc339b2f8de0d17415653a7a01f0dfd7e2487e9990faa61ecb8940847c7114f95c74e07c1272051242a4862e77164e9e4c2448d98ab94f6038c03580e79d5008e9e027819331d9ef3247e45fbdb49845789465294771bef51f8d004dcac53dd31305380cc6efe81c28f371cf0d2ed2a5106369c120df6fba8baf12788856d293f629d8f5055082bad348358aa2375ecc3feab691fb31ed10b2263f6215cdda7da1ac21bef0796c384a15a32210c9b0e65a07177b327aad96d8fdb3d8ace00f27a304ef1664ab535b7d68f40907e1899240f7133be79c0736176263873c5d3319664560ca66d3dc44587930d346a5f45fb4fcae6c7d6f81b09a7d8312e21ec0ae34ccc7f23d2132c1b1e1136268502d8917cb367e51fb5e1e5f181c44296396fc35edd3b365ef84c53af8ac44cb6c95274030a2c33da141b4f923d574b250a7de661ab8f09d0f74039dd777f2f4c9b6c2cceccff2bd44990400abc8564675e517996b721b2326dafd61028e5e9cb188a34d031aa9914aa774a88610e3f9b5a759b6a1cf38d98ae379d4fbc40ba9c43534b2e77765025c53f6feccf40dca40a2b6af38a773a2a5109ec96d119c84ccb4e540bb61abb33cc967941ec6f65ab0e4d8550d0c0f39842a7fac308934fed5586a9501549b405932cdc815213559215ac81bc9d99e459ad192169d06ca336b12314036142b2385fd8181a4195a64170d1d9284f87b988c678efeea588f0199c65ce3f19849909a90985878ca3bc1ca7b0afe75792e48900b6f9cb3b370128a20862e2e19e7f34c4d325bd544c528e0667f35c421e3db83556fb7561d65c0c57c487176c15a569e0b00436ab177a2d58dbbe722c84accdd66b7e678c83b9c000126c037052498f794ed5f1f8164bcf9124871aa3f06ce5ae9a6034d0072d6e6c2698caff2ff4a7a3b34ac28889f2abdc8210aaa843d866cca9f5ca8cfdd3d27b3a0f217dc041eb5c4ab081254deba207aa40594ca9e674627ea426b8be01555365ce585d7535c7616ec7eb08731d3e156c58a59da889de6a2ff3248ed3c087ce85ffd6390dc832479f52ec40b1ecef41d8a9a4bb9b4d9d886950ae8ad4827071dc58d8ea62536794d29adc28a333c954850a4e62986bf448cc988147a2b2c970c023c1c227fcf74389fb568f5a9c32cbe6ba5a003df0572254aff89ae024ab16d1c5541d155604934208c6245977530a7eff4b570d7ca6dcec686558c12f0a31fee8773140b7a2283c6cafb45f9c66f8382a386b5bd511433140778389e8f1c3a10267d6cd02130c5ea1d72b02620d95b6483e00b9fb19f52d9005d446c061eda90823a79069126c409f76bcd0c18bce3c68ce713b8e4c0bcc694d65d6848c11f149698b88a7e408ce2f26c155ec3513b2f07f61c836cca206bd49a95a8661f684bd879abd33af9f320a510e12d8969631a9bd4e53889d2e5416356e3966272b3921d5905e1422c35b940d8362e2b8c5d711284d5c549bc496cc392ae511a49683a44fa14cb3a8d738777aa413130316273555370580d7febda7f46e112ee231ed6f4a31c2de2f18e43c2ca299c4e282d733bc8743d3cfe84a317f02f0b301993002d12eff8a80ad3f41e5975166e08dc27a02f827b831c930fe70b680c2ef471c4b270105d609d25000a98cac8d11105bb5cb861998a632ae21a0bca9e8c8ea492f7c9391a0c2485061a69b8e59d5d9732d42de52085e17dec7389e5647cd08f357b828dd53ea9963ff108a6c209dc0adf7aacc13c9060b006cbeb78701a23dc1726701b89b29e6244dca64db006edec88a7d9b5139db8a46d4107d94cdbc684a97d514a9e729add6531ebaa73083033343d5c17895a188af53da5b3d452c2abdc1acf227e395f0a6294a637346c7c9b0635dbe8c056befd8871b7d02f099dde77b68983605f50b80eade7f069ba2ada62f8aebf4bf8bfa0f8d1ae4d3233859fda4c17bfb4fcb6e6f35429c11e6e650fd4c4067469c999f8a4ca94543f6ec3781406d6c792f515755492d11491321097057ce08f04747194bfe86712d2f9eaa991a01ebea00636373217215df046c416a3d008e5ea9a6a28174f2180eb8e1453b0d61a4b9f34f1ec46f72845838e97bae9a63441860d59644b0b6e0ed4cc69ea2b6eaed2590555ba7e20e74eacfad46b9eb4da8d99a2a3ae2ca9cae22692226a840368966a5ec1049ccf35c51e5a622abbb41608601cca19b8f310f459c822b35dd5df6c1b49b970298152568669fba3c3bf30e268568b4388a48da93d8205d155bda4c1147360a3eed78213dcfb800234c67756b107073f1c7145e490add12885a4b689d22b521a9f852f5d54acef918bc410439533504c227d14291610910445fdfbe027f3fbc5fa780c5154b3d536f2beec381364c47b29ad244a43e1edb926b9a18468af437895f5c61a2934019de616de5bc0493483f7966266e6a41346924494ea44c7d99afe2ba1af78ab92b648fab892afb83c8cd98f8d6ec875d7b40c2befbd9258a2350bc14d5bc5438c646a32b10c933ca197a4313a34442f0f51287280e7328fec50e0e54f487441ee1efbca93a5a11aea7548457954ca64f95e233f56b95cab03e2e48c50bff32350faf9b99e903ab183447cd25997c2945b591e23cbc3b920f586e3a202cd62797be7f46696e59fe0b4b733d7ddd6b21393bbd24976d40be8597247cab9d588e1f81417807840bc6280cc24f5563c398d49bf9d3a97b542e7fe2853ed818795ed994014ed0dd0fd3cba275279d8cfd0c9371003cb9116b99aa2190044de990c90c14d2d991334d921c4445f80b85585f1c5bcb17867cc6d382b34d1ffcc555b6c5bb0ba80e2810300557cd38e15c052070e7b045b4142454064602562a002cc1ffb754cbcd12f95f6614fbd16e203e4212585f7aec79262f17d49e647e04d79c22985b9f1b1c018dfa7f0005dcd3ba13e4a8cf6a5c0d85d881598fe62a07ec434015afd203467bc8dd6e21a462ac654323a8aa38d3e688bb75e4dd6fb809f77f455da9d352de0b2d7d433b0b9b483f6b0fc71a20c75af73a66a617ed2ceb814420b3379b78121118cd0528b997bbd58924875619888112d46ff88b4b21a2e2c017b4d792ea61fcaf0496a1bb545b813a45243309c541a35aaa95891853619289dfd59a91f41984572b8d77f3c9b63f66474387a97b080c6243086d020bb01f579d1fad0ace7ec98cc0a9d53e912896bb6f37b2465fde1aa6a1797d7b2a979fccf9e30af086422a0d2da14df00eb88a8f04526c3b75977fab71a0d658ad103075abe6b4efe45e44e345b8791dd454112b22d361f9c143022da5422be2330ef23577ddddc27ec14f0b54464e2514553a40d771e38b966ad2091db9a9c010214df6243151272c5700ef98e618dc181d5bab3781de7e50d7021e93ffea1986c0c0ec3124fc9d5485ef680872b98bc9e29640f31c7da2a7d3f0bcdb1911cd09ee2e093a5f5d9f69902cbe554e3a51b0c1c2874dde2b52f362bdfc535f00251a9ede275afefe7676bbb28dc8ac148c3ff36e807904f5d3b79e06d4181a5f856e8e81b84d8f7e0811085881034dad007c93d09d2a77c1a9c30d59f965e9a01b5920ccc17e4bad7bdfa4c316b7ce9a0fd7deb40504c06a6a01ca292fdac76dadfb9f46f0f32ff78b8fa070ddb65f253a49a9cf85b04a6d9619ed67fb7498f78d73b5d9d74de259add3790de452e5907f05f00c81f1b216a9da28bc698634908681b2a6b2116dcf9fb42c1f608bbb7c80493267a284a202b2db4942db0eccf7a4c86ea6c027e31d2b12d27626f46455e6dfb5675ce556b74b38757a555920790fb3dc3743150d73694441a1a529b09a7c958154ed4d61c3c77e2968e4018052607171843f753dc297774a58b47b6d805d04218544b9fb01a3c171ce3d0fa91b3e352d58cda2d89b521b6d8d403d802708cde711c6ad0916988c2cff24389b1602928da0e2731468f295051673f895a325f7995082eb2388efce7c1652419da2a6e4aa06d5c3d70fa2465bfb1282938f8f14092950380e822a9391d40f62e4ae9dff0814173b10d238b1a4f835780ff7a5ecaccf41391112a4773676f379ddaf9b6f9f12dcede9bdd6ee4aeb3eaa5227f01dd20429e10475776c741433070fa3a3c418c4372208eb3f970062a452505c8b27fa68c067d74c0f70e6b3a1475171be57f01f0867a70056a97bc40a5580a3d50cc258e2902adb403cb3911c026aa2ffd45168195f8aed3d5f69492942e588877e6f0675918cd47199bb743c3e2cfcbb5edd894bed56d80f0f98ca8c1b86e13b95d210f2593ec837ab80fc8fa10584448e999e68a1423dba89eb3f286beb0324fd3204e0a5fcfca4368d0da4503bf9c71bd496928ea7419b3f40ac85dcda38786b903d8f07550c18a4b9489b35b2a0bfcd0332a961799757f661906654ce005817200b190d33dacb40f6166a3f28f53a95eb1d794960dd7e2a928199b7d33df21527eb71d350806fdd59d29cb9b169c5dc0fa252210690f796e74c432f9ec171fee92713827759a7bbb0cd7826792025398210f6ee2a1a2c9ce7639f0a2c2bb0f7744fe1c041a477ad5af22734a2e2b76d121353d8745b89092fb025c7947181d55f42b2eee0b5a7b5053170a55b96803ad0363d6a2a3127ab9915456d0a7a4022fdca0aa5fc91349fb25b4645bca353192f43c4b1f5db4c3ac9d8c41696e6a0be7e2abef44c50d5307fb7608b402018a4e8801d256c962d2716460600575f7f5762a374095e4227a4a700294acbaba69baed01732943c15f758c69c21f4d804f56c5df503800063092be427fd34385e0c7b1df9fa99d6d429919fc7f7416c898ee8643c936cc38396958a9c8e544cb9aecd2161a309b0437899c11b7535b026772859583a2305a863553ab02e0d701e35e0cb97fb352e87520e75e17f4b895ef1b905cd3fa049712ca635eeb95a0ca0565a0c52095d52a06a50ffaab55b300f943a2a4214f21812a741d23702c16093e4ea9b6379c885114440fada79acdee53c79c0105938561686c0037980276343e0953ba271094050071aafe217a91fca3d009750994dac3483544d8a52c3e92feab6eff2553e9278928a5948e22da8af5b41ce0b55745b9cd35a065bcbba34fcc40b08c0e42ec15ed6fdbd8f3e24e1c417912fa24f473b9d4d83c549d7dde2a3298ca9194b0ddfa5416848f6ad02bbf8737493eddeb36d49b509e43cc59a46a8537ad972601343ca873228c39f2e0b55ad71d8b1e63f1568d8bab314d37b70c29d99c0e451deb8e837751360524d0507f93eae98418eafb74a930b07c0631762ed744b641b16b1726cc11e960f76739a08de532ef7ec6a13e7ebd5dc651e164b259ba635327f1c8ce0c2d2c34f7cd78d2a75d5038226d171e39c481c840a68aa6ef261da91cb570c0aaa3438d7de6f9ae9da9ae3662b6e8cedf853e08d6a25eaef2ee7bacbb7eef0189ea111e3727279788e90f69c2d628c62fa0afd4d4677a5ed0169602c2f0fe5884cab4b95eca827c8bb698cab4951765fbf74214c39c82c2df3cb322df69061ad0e963a8af4e3dee5aa6f3ab039345f725617ab1477b2ff4cc204ad6cd21d6ad6e1695a9c42eb2e0bdd6c6898d1c2566a607bf6f55355dd4592100278f2b6a29fc74a6e7e56e6ce3f5ec56073c491df3b1a08512dc5375d5eaf423dbbc08bc1a724eaffdea87310d6b148a127746f6dc3d3e5a4eb2f38b31bf4c88bc1e8f2822b534d51beb82d46dc23f1be349668056e04533bbfa55c12f5fcb0a227d74483e6c52025d3182482f7c485fa0b1091b19cc8e375a469b0098cc1eb1dab7d9e6b7133c18390dc07bc37176710da43b3e78844376054a8271eaa09170e742611143b486912d1ef7657b708f227a96951940b93e37c5e4034e927f58c221b8eef9c4faae5b8e835e3864eeb07d2f51f6efcd0faa4628fa6e1fc49edcb889f1b8e39f2e14faa228e7edfe4dd89043801cd433ca7689326185ddaf24edf7aded5e3e08873a4bea3c27b63bce91a7f52a9e54cc732d5a2862ab42dd69134f628742c9ffb3e3ca715996a767c47ca47d143eba9bf4d0bded68028ace5240e327114502acde512ece1493538d2f8112de48a33112f4c9f8c4f91c62ee8018995ed6407ab551bc6a7e818bfaa0374c821d0c9eefff229d293d85054a37b4307caa1d162d483f93354840fc751d1f9296a113d453d34928bc7293ec585ce6c0bb799bdf429762ae475bbcd7676d7535f2edba649c3bf4bc0873982561b2d04abf33114587b0d743dbda3b3264f99b39b986780dc95133f45fa0eacd897645d039f42c06e22ebd673607c941ae6ad9bc39181a51d454b3c55649cff3246d93deac2f7d8391cd30dc88dbdc11fd4a39eb22361044fa99f629ced97fd81c30757913a4f9844fde0e5d9cba88c215e5eea28229b0c5e15907397e695dc8f43ccc0a1d2942603040642fd143d6cdc4cc51c2ea9afbf5a5ca8f28740c986e4e475f953bcc61fb479ea93e607fb5db1506248cd0479e10bad80faf2d237beca53cc3aac860ebcf95f435f909712d69f8012266f9c0e5e63c8462431b806479178e523fa22d22463dcb837addb90e355666e488e5567101db83416844c1d3f6a6ead922fa7da77b50e897c9d5f4c61bc990931245ea1e8c0c367ebe781246bf8c3ce470422b90dc7b1e5e43f998132c4fd3054b4cc806b56c037583043a9add953d9392c23b323a85c419fa30767fccc8274201571fa80f64d03b7ad0fbc47a61430acdbf2c6979c88d183187d42d5be6a53d281689a7b809a23a85729b13031a8f6d7ae133c2fafc021490712d14637e5337f585a4e9d2ba72f85afa947e9c0a37f5f13834d7f66259572f6335544ff7d6775772830c2e8f61dd948d70d1c6601ff0e87de2fb305e365c0265353449b941aba5be360d363936cce5c4769360a581deb5279bcefbd98cb7add5d01324486f8b226994315cd1ece41a2405e1712d57e6784b8fcb5417fc558bb2afd25e89f2beeadfde1a4cf48e11e4cb48d0550c4ad2ee0eb1c1025adf98f553603808b2c52a827e7c42abeeb67acdfb150e06dd1d7f5e24cb68a06d584d92ac686fe83095f56b4990456c16387ff66d1ed2a1ec6b32838db78e02a3503448143ea0727007715d154af07a8bc9bd845948a75f02288a57f2bac03a7f9d0eec0fac0b17855cdaa0a4934c90af382ab6767c18e6dc31df4b83d3e253e2dc265d2c974c057bf112d1158d167a4412bfa8498fcf2cbdbe4fe3949bec45a613fde516427f1d896a5e047f4722ef8199adc4bfca451583960128723a4f438a7bc98df50e5bce0579472f592e5e7b09e6ee218bd603b50c66fb4722df47ba032e4fccc13ae2dee24a2804eae453f4728560e30a5c245ea3d7a14d1c919140c3fde6e7193122e95d70a6886bc9f05844b851132afee1b718e7a42ff7cef5c558e32ad8e542f603d612c343cda25d5d16aa1646e197a68b3c3d8234a347eb8126eedcb7fcc5edf0f3ad713c12b73a7f30395d769b0caded5f383f0e564f08874e357c39e510947c0cbc88c9dee58d97b3dbf08df4e06ab081d9d1f545ea7c14476f7b52aec2d4278b35ef6e3f53a3f50799d06afec5d3dbf08df27838b48976f75ec719170fd2d4766ec74c7cadee9f941f872327844ba3aab612f54c6096bd9c7ecf5fd46e73e116c64ba0729614f0ec7e5b314a1d8891d91d967ac1a7b6154385d962abd5170d94f1d64b521e2108018c156dc5cdad3d8bea055824536fb59ef30b3add12d7dd73a94b232584740f1052b6f1e72d9efbe46286b4d804e8187d6e92d58f064777d44ca41b9449983ed29ea5052b5217eee0baf527285c162f41e9095b477be97d76231c2fca9d1e56b6bf4cc57771f46401c46ee0d23920ce3dc0be32b0ae37a4e183defe6c2e4f92da505b6a10946e407c66904c6d70c189761deb1e500c2257f51442548c3a824b68e7ed152965fccefd57943f4457a3033d467592f66e51ee392719b3e907cb18dea2739843ae1df77de7af12b74b2ce0665465c4c99414c27f0bcf69ac4590f13861a5ea1633f5613795b5be04099faa15f7aec59b268cfd173aaa009888038c16c3df52bfe4c5715161c15e1f71668d08f2e6727fbd3a21019a37010bf65550d73a24869f5ab0982bbe317360d8bb5ff180189e106ca0234c68e06889f1edf3b597e228617e316c07449ee0c43d68f052a60f487eaeda9af6294c014bd710caac4df4f4c462e04e6b5743e4eac4545df818ded5e9b927ebd1cc160b0901f7201daff76c5f87c94f3627a5b7b878d2ca7c027deff4155fbae727da827db64cf2992d9b10bf47ecca23801ea607b4ace41f1c09ac31dea535581680f8dfcde88bc31976e73403e77cb4e15cf6a4d9e2355c7e7b306e065b41747804f08ddd3f63f76a18b1d4caa7b2411e046bf145bf4eab2d7ab64a11ed864f2aacb90ab719625af54796e8a0dc600d3ed12d9553835403444b39f3e68eac4e71e04fe3e0dd052b4fed5ee65aa28daaca9eb9a871999a4c7344f0ec332bc59447240bcc193252a07220d7d4ed2253d86fd05779e89570afba0e9657dba7d5eef0059b5b6e0654ce09423488e2e3c5ccc6abd75babd4c8888a9625e9e00dde99a7a99cdf4cfadf2c717ccb2d7a5c51f6201edc95ff25d206c6b5748812f59c3e48ff38ad2a1668f009dc1389561b40cb0c29e59a6605170ea4a9d2e740a2bd9623b3a17f20a612b756bebb04a3002d3507b9c39ad5a59ecd8de7ddbc516d2d72eb946b9e7b6701ef52e74fa44c05dc2e5a19e022e8fd0b122eaba0eef9f81d0c99dddf463d771a26ec1aaa6a3a773e0141e62eb7438822c2c86d7d23c66f3f37c010bb56adc0b1716583c890af517f05118204a1950871a385ba37bdea070e38065939edfd50d96616c4d437aa66177384013e522c9e40123cde09a385d5513f2a277f68e8f0967c62825f6e2a3c8a0f509d416b3dfa0c35091ff220146b76099f582b1b5d302f43d5be1f8ca11a007caafd5f3df9a8959b3367a98f8593d4055f6aa0df43c43f10b20abc1afac4250c4bc3702474fa29f950755655cda869e4744b1981f2b4d64d61ef78e39509eb88d08a6bd82a0e295fa24810bf6622384995bf32d146ee4b7c7b227853bd670ac4c4374d262f746ae195dd7aa198c857e3c9268e241deff9e1fddd416341ef6460f659c0fd9923f02f1b2a76a31c93e05d1cd4851e8d03ee43cf70f6131b5d2b81489bd27e1447db5b0d02d198bfcb76662d6ac551a065de04ae94eeae9ade7a95bbe601d3b9bebca2f612f492496f967cd04d71ac2b82554e8119bdc99d7d1241a6b008d080b86f60753c61d422ca9b1d137e7a560162c4330a3caddd10be1cbbebe5576ab603ab720ca0e6236d79b40eb37855fc2e950e3c4df7d22602d4c4e0c91a6646b879bcd799076c1456b43e16375feb236d156dc0116e63e2b0e54cbbcb4d11a0f48de3456b530fba69cbaf99e656fe5fb28a547c72f34de075e3ba603ab77e9ae7daece3cd7d9c97c49804e5ce0be0f6006e92730bf0f4da9f735eb7ecff08db6539c0df0cb26f288419a6ddd59452c67846edd2b10691d72b5188e961faf09beb1443e56075733463d9b5b4ef00051acf0db8a135a11271cd1ae70a428cdccdd774db75cd660b779605d831f40cefc6abb7dd78326b9e586a921df3053e5061a8f24ff55ab9bfc16d47b968f2c032b4e3c2b598e7cac3d3381b2068d2d16cfc5daff60e956fcf6bd716cb8b57c56c95f6b4f60b537bfdb5000a1b60cc1b5f260aaaa7af5095abc0170c7d8be86741958df145d1ed147b1adca79d807e9c15876ca02384db0c6c8ebc75ca28ca4d820ba86791c9bd2587f5e111e4c57dc608f648b1d25d8455bf6cf4f2c9907b039713b78bf2cbcb14f954dbc0d9dc6614d93d946d00698c56b9f51e7825b56b4977d87c10522a43f68b9e42ef9679b4efb23c3fa26be5917d03d5c48f27a6469e6992d3c3f3e2e3a4b5901fbab1cf870cadca233197cf8b8b1582211aa741b4c10387e89d423309e36d4237dd97ff25f89d7ae370d8142e91d2ecd834bc183239ef740afeecd6024b75552c473b03f745253c05ec2cecec9bb750436f69d93ab368bc1f724b128534a2c883dfa516cfd4b4fab2917ed06ab6a13c21a0aab4ba7eaa517374051a21525b91535a41c318885593ee51a17580e66859554b673da8ff34dc89e2484a5c4a2b0171692be5f5d204a0f2fed0cabb78f78c06e15ee7df9560e0fa5cf8a70219ea6c4b675d36aeecc5a40cf02526e747f7e51845d096a5a1f7f134e264c10fd0b8bacbc079c7fbfcb03c2eb0dd4685bdf7003555f8420f4586c5ad0220ea93b175954411749f11884b6627e8f19c57ead6ac607053d24bd8e8099a184618b88b737ccf43d901e42cae0fdffe2d46b998e7ea94e7ae144cd366a96ac02f60290d699bbb7e9d158cf9c4198ab5007b56bb63ab3a6af232d5bade6a8bc7b65135edb14296b9c4b79ce21e172dab3b1976a4404317eb77e52bc0438c6084a4a83146200957e76f3576ff92927a30e55ce092e1e6251dfd40d561d53815c0978d4c2274da4d04ff33fa430ad11533c0964a5c9e9d980028139e4b4950add940ee68d23c0ce76283973dfeaf0091ddafbf227ebd32094565b1b44061ef65b4ca9c45576b5bc9bba8c2e6100b35c0792d0ef203e34a7a308654be09a0cef50a4054c347ad0f50df5e75317eefe4bbce0d4a9e56e8aef11b595e281ddc71133804d1dc1d6c0f00a4742585dad1d71cca0274e2b178c094bbb111471e797040c21b42d97057186a2290928bfc584690743b45f27d601a964815f8348125a31efd5b425890e263b2193ba3ea9580c7fed787cb22212688ed95fd632b35bda28ca245110dbbfd164e0463708ac201fd41a032255383e1c3519c055783b1247b3cf50772868d7858302848bb6da5a4bc45d6b01e3d73a647e8a469a27f989e526c50b0a2f36c0e8d028c4b8cb7a89e1521cb35f95453b8768584dba78caef9046809411763f24c1809f20543c1a14097d7f4306255fcc37c894730f85c6c7807edb081448f139ebad37887586406cf449fb3ffddb3e465faf904e29dc031b04e4c63150e905cb9c3ca94d69d7672af8caf25e02d1ab1922d91ff1fb3122fb1f7da2c055a60007361191a3c87bcee9a547b78edccf137851fcde433c5d004c0744875c1303d86fe9d79de72f053b618218f2a4973eb3d1a1144629b7f006bce84048d2c2fe4f9fa1bcd9af3cb041e0036d24aae78757d14de71d225cac69e541e4d0ffaab25ea04474fc7cc6d43a21283c8d53a19c724af0b998446a0e861db63f95f9472576b8132376bb6d3298f46f5a67a97f33ab0dbf36bfcb6523e2ca441ff45a8d846d0775494b23b83830cfcac4ad8bbe18b9c98021b4fb2f42c6f7b14eb367a7ff6aa2bb8984a7062323f1e606d62b333e65e4cf83bb9ab27f804eaab939f8c1831f70d8c1b64f5b8e075d1d49fa9c8b5508a3f7adbc1111dcd61a7280c7af1e7a80f7a29b540c741e92574e5357690a53e0755a0095e4327b38d311fa2ee95495b4dcdf2f7e774088a7509febcd5de8bde1fa98b084fa11e941dacb147d71e7e86b667abe4725689d25ed6b6cb4a64cb3d137815d9b61040aaf0411e57cef804a2f0e7e298120c8c23e87a2c3bbb957962caa09513a7d4d1f4ba2b94e8d6c41ca4d139aa774f8353d07b1c225c8e60f7cbe87b55c5645fbec1e4bd33149900e328ee783dd82a3a244278e003495cdbe7a0322813170dba23407bb8d901b5d391a70388f67de09d01afba8de62969ae600833e2bc2bc9c9c5af2e3691f537659fd00a0856c382a6af33f05425f8aeec350f466700f241ec550abb0627585a216588a70461d568594f29a67902dc0249a9a836ef20907307978ba94756d0f3f2c30259bc08a0504d700a84d3b6e7316aadaf59785f958048eed585cfb94c00523cf54ca1c85d4f95f8608b099b36aa56514aac15033b33362aaf258972bc7909df804a09abbc6a3dbba7b71e5c741bb8acda056615927a81a12a5bb44b0c38aa5db1dc83d253a720d69f90daa27903ac6adde9381b9513e51c845785c618365571b2ba64b1944a520df7b37d073e1f48f416f2e41c5faa1768c8494823403bee8961bd5d6707becebfb7d9ebdec2f1bc24e323bc1b274d305cc186859d4538683b01f08a9d20b795add74a395d739a0f12065122c83fbbd4c63842d241db525d4cf8f9ab831abd62900e376f02c5cff334d0dd0c06da9f08529413a1eccbc27c6ca5265004e886b19bf599a2919a385ab3401c0447595cfd47296ea7399938ae61b4cc1ebcd5ce945c6de8f3d74c2f8c596bd9cd1f0b2a8b104171c30567eb13ee7a483c9e640b13a92eed35fec4412d5ad16185a6954645c24ee238979b47372dde3fa987d54c87f82cfd671d233171a73b406f927353a9ff9044bd1087a141eeb3d418c52e68e090239730bc9ebbd416e58d893367ff4f44588be4b9ec58314fe54bae474ea96ec176e8400f14af52f1e57bac6b680c67fa7a5b17424be0875f706f48351056351c6781ea0eccd869382428718edb24cd6b119dc608d0be4894896441a28ef7276ae815230a383fb36c1df8b3fc13da5e85defd71871c2312e8f88c1fd214f9d35c819dc052bba99238e236965ccb2a709cf7714102ba002cd90d523797981c25374e5d64cc6affb7659eed1e7c40282e04a642aee08dd717de0914431181a536e6eea3e4c25d15ab2250cf442cd99664960159c0dfa6de719cfb3aaa8f9388a73d1a5a95a55892d2fc677ea661004350511cdbf8d3ac6a611922b814a413c108be36ea31387836c252eb68aecddb9d809278e4600ecb3529f537d8e594f35c1569471eab176f3e5883c6440a4439dfdcd81519355c780246101d036a7e6d52279a4e4b30a412562dd8e3a44216eb44ec428f870bf8617ce024a97c2972efa6780e2055ece826431b909aff64529fb173fe5ff1fa1139d57ce926c87a285edd1056f8a5300ca63c3835b16419af7035e08d8d562c0cebf6f6a2051d03119d683e0c5a0acf4b306b6dcaf8ee9729d05f5b1957d038c2af7b6fac080ce4e98100f6b47cbe79aeb3a779a57446118e4ccd69e2ecb0640a58414ab7a1b5b2ae9adba6dafdfd6741480402ed9d80a0dbe9c34490f267ef2d498d7084af1fa00d63166453886bba0df5b26709fbc028205aa087ec2aaf16542addd45d9147de8241bc32896dfd7dcd7d923d8612a61216c9ed428f1b723a68350ba06b804a5f54e071a0ec889f2dd572f8b9f8ab54687287b9d557d3868a41b05af5ee1a30b9847f4afca9c3c646e4d7d645a9d1a6f4b6970db88ae81db823332f75e55562e0266faa87d03236348476fa0e229456ae3410a35f514eee9cd70399f776ad970091bdf1ef92a372e6cb632d8fbbf4e9b2fc4372c999e4e25eeb46acf36124da3294bc4a7e0b4adfe1b24eb8ea19a524cab86b99ee99ecfc989b8a1e4aa939476a0d8674293d8ebdb8177a67abd089d44a8a79b34b32f3a33d1b9fa49be859eb80882fcd62678d44dc5aee708f11069cde845b27c7b65bbf34b28512c286fd964e7e65d89e11b2027512d431ca35eff7999f7cfd3dcc63bb55d995cbdb94c06c23f62acea3735c45a5fb5195f1c2d614dcf54e6fd8a4fae99970dbccff0eb8a9762e551c5589df8aad314348f03afead27dd3e5356611a9912cef86c537f3123f91582328e4d9aaee7f9a7906acd654742277a7f05ca845c862d4109355f71b166f5e4a844d1f010b9309e9f3d7b1f296d1c27cbd0bed54bc9a398cd7e9a6ab0994c1570a22993314e2ee1e87780ab70a1c5e0c53714ca8b94e985d79cea3456af19fa48c39ec3125147b2c87a7e31a63fe25327ea0b2a0b303bc17c4bb4de1021f5a4e795abbb2f1a4f64733cf68686527a76065a3feb6fae9c897c2c09f2b42760e1cf17422f10c5a76f66376a6ac74d2593a09aa4590280c7b483fa6bacef0ce917cf5e32575787a84f8528f2904e21b63619491e36634c9b0575929a285764d263a196125eb0fa996f0d46162fd36cd7db16761281a5ebd6dfdbd8b8dbb5cbb7c847648c7e8369ac7dfca9a3ae63232f8a79ce54c69a98627fa443c4da4e16c5b498b783257c29e7434b93e42feee8f1bc79570ba15e6c6189aab53018585b6415ac8f95b07c7e9a501a3c6cbf7aa1695c4a7aa6c2e264c6df523260a1cf68f0f1402926a6a795c8b5e5bc2f7042d0305310e2d0a4373c3086451b727a5d9b54d4598889fb283fff65fda9b68b44521b195d7cbc1bb84cbfcd1ecc8f4ce21037877deaeaf20eb931dca0cffea454a3ab9869ce6bfd650b43397c4e3afe00bbeae268f0e55cda98eed7cd5986e9e74aae14f800bc0e96fd25a60dc2d6b6b59c7e8af754fae88e6395c5c180a8b8621a12fc953f533d9272bf8e72a13a58cbf039eec4086d2d1edd799f5a68e9d20832332a05f13a27cb000f9b6f5bce3413f7b64867a7c05a6f649fd3dae545455ddb8a66c506f4f585bfdc408dd7c7e6b96c2801b61a31decc9a183930419fa5493ee6fe820d85a996f2835ecd3d5329f5919b5bcfd9eaffb25eebaf7de492c59a228a45b2557b531636fb4f48e59360ec7f7c4aa4c37951fe0438d84573a3f6ccd653f1ae0ce9eb12bdab98e30876d0be46bff6c628167f9030ce54648c64cc4b51c02096ed20a49851aeeb3c680d3d8734435deb18adf3be6bea6edb935a2124fc5160cbb13eeb55e57f64231d8b18bed643fd90474e3e2a4311a86f269022585562fe0717ebba9f6725787d309b5596d2709a6545f50ac599727e2971bd43870759232972c7c49fadf906ee9dd411a3af87365dbb2d1ea39c41682632aa5014fc93acbbd2a8acd97720b860f25c9f09fbd2e2c1c3a28818ef6dd23820effc0326f93b46abdbbc4a5f38e6cc99fefb4f0c0177528aba2ad1815465e2e533f8ebbe4f8b328c45fddcb7ab7fda4827ea83e86b621d5a0e1fcc8cf02b758f1b472c5e35807974b1d7cc9f5de7169f0580d78a4f0c8fb0d8e766f938d7691fb7689bd225a9c824e82a912ba9a5898652ebbc37b90cb79899b30ba6bf90bdd32af65ca241d2885834c693ac8b3cae9a635ed0f74ff3ae29346e1e2cfd65f678e60643dd9ccd4552280c1480df6a755c5b277652389c3bb17dfca2265fa71258ccfe02c91a2363a22884d954b0ab71974cf3f3d958d7cfdc44677f219be61b09c894e0801fd8a5ba3ef585ccdd0bcd780f814c584fff874a21a310f1d1bbabb1325d74e771863c09690c8d40160465ecf98118a327c6b6e8b30fd744a613ed807132a6463f3439bf9e3f47e589e9a42f00a70473323201411b8c30eb3508720e4ca04cbaf08008633f188ae126810250c86cf28c636a5ce342b59e22c7ae4f494733ab03dd67593b8336476d18a6c917ef0dd7263b195a0748f16dd884d69213255317c27ae624ddb465f085b76f2ef71f631f56ca4e99d03de891c8fa6790beaecd089bddfa8b40e34f90bd03f05a5abd694cf25aaecaf75c1682ecb0d1db4ddc66e471c3693155e7279bba33de1a2baddddbe25d3d1f3949ca9c2a987a538d07f8e6dbb51c82f5e133e6b91b1158ede8aea996f5b033e2343e9029387cf0c5d74be48ac3d053ebbc0ae5c6bca90a0675bf5bfb4695544ab37d4e88d45bbe112bfc5c8e887815a2b896575cb50c446abed078d4e52735acaf5aae6522da74a014533465f1bc25d7eb44e5599bd0a37ec4e98f49ce33e8de332fb46198762711486c96fc44fcc3dad45f5e5183ab6fad8bba272f0159e7ab8d240be61fc24b7fbbe93e41b2a54aec57de6e8ed9e4d9c6bbf69e645007afecb06235f5c213e567843f053567ec97d706aa8c4df6054f40d9df8deadf5392a0928e25885eb6adb4e2cf4af1d4de89a219c70e6a33ed1e4b84f8fb4818dcacdcc3106836fa2975fe05892c54aff2b939aef2784a3aa609daa939fc4eea879fa3833a2c2f6d7fab5d2aee506b1cc4bc734b2f84c2a21972f3a5c3b2a9c526eba2036899f22e3d202479a9098b5ba00c3999de146752398d78caeada62bc36e49d0e7956644b23baa8bce82de168736941d94eb15db30f10f82724016b071b16372c1da0c4287004f68e7f457e17fd7a38ef41a327026f48d3a306c0dbc3e9c6c34a0213832619afd5582b48f548ba8b11142e06efbf801f1209c97b3b0e9cc87539eaa3ed938a0ecf9847203e3687165802c83c7656863066266cc4472a9cd06cfd93c82d2d47c5dac04ce6b1683cea98eb310a7261022ac502af7d17a66bbe213f2d1e0a08ae4217e3143906cc471445f761d524b47fc54552943551e3d356c3155af591997bcf3c2aa5d8f0be2b32a6ce825f07e14dd73c4f20b34eee5080da88dca3ec2ad6c517556a204750cd8df39895dd0232bb3bb51aaa1da6bf89c755a8dd34e47cbac8c5ba8169d9b25c60167599692324b835605c5c10cec6b3c07319a7f1e0b80787446333add4dea03c306fb110997a434a0187fbfbb4ca9858c8eb9b4133b8f89a49b9a0d106ab4c3ad3ec6a6ee4353462267b40eb10d6aecfa0e0c9af47d8d49c3a149f5f5ccc05c657dd2e563c76b8323ab327b46d9b802dfd5ac4c3a2f0226bf8769186b8a825325b649c5ea4e035ba1ac889b1759fdeb2d9bed480e4e5a1061759f07ef0e0140b86b60bc0870c646fbf013ddd2c8a37c9e20b5460650c110fc3f9291f6b2bb0704db09f9518570556fc2377242a3470535994102f41fe3d8f7640477f5fa5c119b0c48d30ff1d121bedbd9e75ed32e3fcf646749c9b74666a6a90ae94a5ac0e4bfedc12ceaa0b38e8e2b6e9787b93f19afe70a546a764651b08ff29d4ad9c1537e722a7b5be51b6565695ef9c3b16c822cfff61dc35d5243ae9d5ec9133d9875aa79f92c34f05d652ac4abcd6574f94a4f191493defce835c6d0d6b673808796b084f48ef003273f2dc4b3d328d0fb3b5de085c01d1a32d865fbcdf2394b3da8cd861883e729d29d51ff09a473bddf4e12423f551d435b2117887f767821d0e58bfad88c4f87ff164db2e67cee8c34d96787f36315c3495ffa46a0998bc6d52f7c60db61d8640105e65a34e742734f51b8a2b0805bc171a02bd0e8107ba96eb6d081a3fe19302f2db342df14cb43d628fd27693da4500d501baad387f27a58da2a32b8f10c0df9bdec76386fa600bf084f95e8ff35d11f9055b512126ce68445387a6ced4c99f03a76e3ce1405c55bd2c716af031e4d86e38054c54ec9af3f44300e4e693bf1004d2cd8af2fa45e7d65edbf5ebcf17473cad9b9ba3d8f4c9d3a4ad6845bea3c1c822a015725fef4dc58e6fe0286a73db9d4dc49558d3ec5097b7e49a8bde33b414d72558a28dda46a6c3d3dbd31d042f737b23ad1d60ae54cb95914b4c657670a5e6cb25989a52a41dec978d9bf4d0ac17be1b9f789ee8f84d2dd3effb6f9bb6dfcdbb6d494ed627d1ed2788fd7ecfa5dadeaf7c47dec460a50354f836570916735ccac08b7ff197963002fb0e3fe6a33326589b17abc28bc0e24e2341a600f4f32597e9d53d7bc33fcaf49c9ac8eab0e6aaaab703a078a85563d41c1f57160c722c21e9b5540af2424b836aa6ac1e805f75243e2f9fa4326af4063f04be178c9e3fb0ac1c08fd773551e2fdb0691d4600def252aa9044b6d66a5de95ebdd83f1d25290e3c82d2a5aed89918be3cde7548becaf729197c8bda0587e9516e47ba319965b8d75d3242db88aba6abfd72ca5718ce01ea52a781dcc7b1c1335f72d0e17c5a0e105e041175166115ecd801281cba7021902835724a6b200964b97971a4c5a4572ff85e665e87cedde753aa37d460f787fa3978f36e763b98c06d10cdaf102f567f08e6aa02fa9fb7fc41a47cdeae1fa78cce5f5453d57a22330131afe84de9cabd5236147ff4c181f4faa6692377348ac46c2f9dfdc8c919d3b11a43efa60850066cf8084157f3427ecfeb3b1c8cb13b3e526beec11a2670e9761b2ba10bdec6529bfabfd8d335d6312eab6c8bd94c565704e7cc7727120f899955ac066bf8d32b5ac573528f92aa463611af9a816abbafd7deba2dc178c42044ffbf73738c28c48fb4f0571e200727b4a0db2e9fe07e41802fa7582bd35bd99a2e9ff218506e2c94ab01f12097352a5d1a573cc552ea6ade041d83e27c474ab993b1b3408bfba160d06810197a8a7710e7ec238904399e916131129711082cbbfe4fd800cf28363613d0b33f8453d44b78bbc287de383673a8408078d9d477599cb050a7817088d170aab5b8816c0a61a56f27940e83520aa0d3bbc8512484256eb9453ed1d650d6a09f4811858ed6e8b477a4e6b39dde18ca2342b3aebf86aed979340498f2af002e6b4d85c17bbe0395f73e3c5e3e6d482bc07cad004203d9392a0b12c6aa5162244a94a2aace447c1f09fec81b0bd496700951f977068365c4cdcb3eb74c80fcab44aa30f45e0260a8fc3db9811bb23b0f1cbc040421a2ce28c3de4016356625e864b77efa761bac4846c6b7c74e2e97e9ff89a7f19a61d142ff0ea4a86f4f6814ffaeca33ebc9ffbce30a5878d006291d730c4ba079a33c5b968bc7b718eac9087996098e75c184b5018cac845bdf01b58c8b7c1a3ab00ab42ccd4022fad902f73047cd94d7c3ff27d93b791f444a958bfeb9a54e320acec100b1ea1b767ff8b859b9aac33e741c0b6af14b4f9f98ecde5ee8a55078431c7cea61ab7ade8c355306abac2b514d235918819946c1ac625123f6a2ba5b4f04a7d0621d25d953fde645c623653f43a04dd89de1dc84a200da3ae6c6b7238404a32c2c0e4cfbaf9718eeac4596fdb611f345d43b619446232f19f472de71e2ff220956c83a536e752161c18a80d2807cac0c6c23b8b82903f852d2f81a148bce8d3f69f86bbc2fef3a057db7342a6be647cae5d63b5b2fbeb8e1f0f05aead63c9d612b79b44acd4a1fe22aaae338fe1c219a7fa32cce0be0d1081da215555b11f4875483cbd0fb9f2186ec7b1323970a5824c63ca7b406e28f597f1c4e85dbcc3b6c5e024971f87c7e117723583f9bd86004941aa21a53bb3f13a75a01673f247970f0e14b924b318b291a20a762c147cb567a04191ff30c09146e1bc89ec7e46e40ea3c6ad63bd0ee1adc2f8efc91b7cdf06d0537dfefb86a515a7a676b1c3af107ebd9697084a504cb0d98343f596e23ad739de530f92a716e544c85f2aa01e226d4e15f359451d7baf5e5197950d242766c610bc0010a94e4ca5620ccc3d4df386392352064c68182b71b6984733a7402a8b2e15b2d488f416928201a141165e4c20419f52d26fb5ab386bb6413ed47bb3fc1f61c5623a5edc139ac1cdc0686ef2195cc2522413a4420700d81fd1486c5c97810b0279b761de14dc35742c11a5d29693665a7350dc98d00d7c3cc325a3d10ea385f4288359e541db4f08553c87f65d37c355d8ce38c9c806f7c8903cdba6ec426e2ad26084908290df2002b574605c10018a9d31f47912133d1b333d323cfd0af3f06c0bc60ddf39b20feadca4f7e4dfa32d2208e92b79b5d2fdcb1f2de7259159eb0f8cd758249fed36181e1b40797b0a2087b3c46c44550cc521c8b82534740be884d229e88ff9540df848556fce11c731d4651ce85f1036f5bba3fb17bbc396d00727e5cd2675e51dba6044d3db02ba554ceac99fd63139de61ffe501b9eb6501a0649eb49e3c83d73bc6bf2a8e712e6bb47804e69714f93bdcf4bb2727f1d15eea9968b58c977d37ee25a89eef96a34ada4304a72ab14fd40b117e42829083957b151c69c2e240ab90fce6958afd595c0cfbb15fd79db993b38fcc1c304b475adf1322866fda3283f3e47a2f589270478a4fea0d881b36106318735738eebc26f10a7aaff0dfa6d51ee25db3149cbf09216801ebba21de80c530240ae1d1d0f9a9adc8113ad50b06e181aa1cf699f0e4cdd035f5c5cb309d48b48893f1c15cbc20be701cc8e93d6edc16e4d21a160f64870d48859b5b000f5ea9363f692a00ceb677757579a6f825b0367fa005ee9b742056f46028954d56209d2b7a80e95c3c842f122135e502ecc75e54beef5ba524f19f8bfdcaaa70b7a431c60fac0ea183c3baa6464982cb8b988750a4f950f456efb367842826c3ba8677548a9457af2739307119d2fdd011f145c786673ae8a1f315dc7ee21f87d71118a9312d07ddc40813383293566e27d524ad5dd8d8e5bd36e9bd002644f9e0a1dc235e5bcad06090fd491cfa43477f0c5f27561b8d08fab49725866cea4268ee969fb5634eaae762c9e30012307ebe625153f32c908b827924822e5de8bbc0c0fd66e07afc4003baa74b724690197c4f4f378d8ae1674f33a873abcaf2a97829b7ef86f8b1ac43649d330865c9271db4c6c6f6adef84aeea3313475714ad021a80961c78bcd5ef047b85cdfb761e7937ee11862bcb1e053bb6a24fe0cae27078054e2877b523f895a10b599ea058b7926465cbbe53f5722283b308bb31b0d4fc22334e42d23a869c43533810c89b5f8a6962d44a1ecc7b3ca5cc5f93949dcf78c1919a9e70b2715cfb7b81891a4d359f118b47afb9e454dd432b4cf7d0e289eea195153fc1730b9b5ef89615b997f33289126fe9e6612dbd1d5431c70506f32398856df30e0b2fb39b4eaca965b2db8790416890ffc675074edf2adfe108d1cdc3b3fca34836ceddd840fb5c5d68abf02c6bbd906ace8569ffe0934c810966f9d7a8df876cd3531987822f9930d4006a9664d3651dc8fa0656cbf2181df23a73cb8ac07160bd6fb1b5ebb5e3200be69e6f945bdebb1304d6100812623cfc9a5f63b7fd77ade4c0daa699bd19449022387b5ddbe7fba8108b0df02454826648dd21cc60ac576f74bedb31b4133e2750f044b03070551ff2aefed6a4932b40fa0dc54b6129a8a5efaaac2de3f4224012d9e9001e2370f5061ddd48df5d35bc7e5a23d23065f566ab08c76d78ecfbbcb2c7a4aec5e9c64d04c5b65b9b7b5bc7d7ed25899006fd1e35fc09009b373db7c1add3309af695af4043885d4d619a7f2d705a01c30f756ffeb98a20c8adc23ddbe6548c0265e37e8ab7139e4ff7089b69e7f4763ce259db57fe1f7b7be3ec02d2062ca724c562b4a9a93646e95e84ce3470d0765fdf6ec8797be64aaf7a10708221295434a54404fdf6ff9ddb30cf69d4137b01d8d1925c684f88f3529bfe2cd81f54080095186941ae653e74394664373b9168b331714fed135fd27f4a4011e416c74e437acf70461140fd11b46305de4b84070d53205c154d73d97061298338c3955571a419aeac8a8387d8b0f8e00c499ce1c27264cd3bd5916764f5812a0054804807b8e463296df32d73d9c45feb243db301c0221b9052c7ebe3dbefb5bf1b69dd444448c80e2c0d8f0c050d351a05f37011778110c22215f67bef3dd8f71333f7909454b8788316424a2ebec3576fda2dffaa9b817423d12b0f33fa7a6196de49e5fccb7a08c0c74b55512aea51f024ae182fd31e02c8fd4ace3b4f6f755f2b7a379c00fad74d7102e857d52d5ccd54f2f46ea4fca21348241289448a558cf155355bb4a452a9140c8a5061733fc4855993033980a6b023879a542a55851532f7b5138c41d2c8a8c209ba6099c8940d3e5c7852934aa5aca8c172df2387984aa55231c822b369431127a9546a05459650731fabc21fe0a0934aa56cb08329d49a27b953a954aa065ab8a62085224e52a9140b58be6051a10665d049a5522e1003cdfd4a068d934aa56c7031d1729f66d136a9540a0675c8dd9f4b80508724a954ea063be00328f725145e4d2a957a412a95031570f1924aa55cf0540a06d00a3c30c353a9140d8b0ebaaa20e9ce6ff1d5122db2c87dac7750d5a4524726ee49ca126330b02e6f31bf2988a10f19d62c213796840c5246c52456c4505d570e47fd24a9f175cb770f20e36cf018431786c82fc608f10e13d823f34020cac19c1c20409c171108746dfa733f1a4984392de71cae2accb9cc870359c58839267dd7a7172386b71705cc421c4e6e13549ceb9112c8fdbc421afb79541293c45be5ecaf29a443fe1c36813a5109f686f3736804d23479af87513617f9f3be79bf1e657cb2e3c4ba9cf0f38764a7fa8434f6bd52ecdd8fe73b3a7a3e07d227cf3f9fcf3d0fc9839ebb1c0b4804629edf3097c9e8e4cde96c90e66e6d53a333ef8ac43252c00931c4d9f976ae9c0bcc9ea70df5bd0bb3b044fa2d519d4b75ce391723847ca8cf89752258ca79b3f239b110ab4eed4272c9f1a50885ea5c581ae608118bcb2d44d568d3ab30c5304f9ac1c61f65389029736c9652ca476047eba1d65802eb6c3829ba54925ac03a7948e710d4faec43d54f4c4959458e324736d4faec7bbfe788f4fb40d3db0434c1f7094897e0a77338e08f36c1376185ed6fa492bb0b49ca99c9f47b0fd68055652d09556a132c391b32b0fd0d93a7f817637c2f937f59bcbcb442cca54f7d52bf9888a277a9ecee044459b874bd98889f0bde0d781be38bf1c5d8dd8f994cc75286d5d20b4b524017bc1893bb81850c91d829391bf09008962663524559cac13e52e97a533b4fff639e569f24eb135b0751f413bb1ff5b3e20a9ae075a16853ff9d12f262cdac334f8b544d27c6aa2ed5c4863ba872c5a34fdf1d8e99633ccef879973541c5ca63bce6bc15d181a45ce540481f7d473b881201117ec4f8e82258c12bf62a32065eb178458417a0f294ff50c129ff31fae5e5f382c9cb91721403611f0da4f154241210688af7e4647b071bfa8e1e5df47828208af40851ec37983f248bb7071261e76cd4e80a3a682a750974b7e738e478149753cadb372cbfde2c395c294eaec831e5ef0ad2e343a9344dce7bf73169537cca7d4d9ce4689dd82b8a1997e9e753ee522ed6a6d7a6272acd0af497f3f877d444f68322fae8c63641cd7eb6a7647b369bc5aca84befee51a04f7144a2795cc43f58d24707128146a53c94cab9e852bcca7d386d8a377eb0b14befc68a46a5d08c1e512efaa84546ba14e3cb41b9db4392a36cb2e3c5a34394d8e5f724fdd6b8c2d05557d53e58d123cae39fce23f5a71f450ffacd76299ea54bf1d8b3a35cf4cdca8d59a03b88d26e15454fa74bf1e590c16ed6551245cc9f1ccfdd30272880679c903eb9962b7d975decba2e2fd6998c7536a275365ee7cc642a29ad977272bb1cda330f56deca81b72a195fec183df2d58d995ed75b949fd2d2c808448db9abca5af8e00b8cb3305b7431c360dd7b3c6abff65dc0021ac26c26c21863742c1ed75dc42f221d6293f8456c129d442796655531beac077c842fc94b42071818887210c2d24ba9ffeee4bdf7056631a50f49cfc708238c30c20850d42e2c6336539fbdba1c9fe8123c05ba042fe4ae4b56555555e6f9580d14ca960069d1be7fb62322185b7492e5296c29b35bc52e2c169dc4f8c5cb4da49beb9d8bd572a858eb2b8743084cfc227ef16e48479a151119d62fde8d17bf70e2b487656149db79b797b779d1e3dda2c532b5de1f29f136e4ba5e391ca05fd6c2db93f5319b91f7bc769344a2cb32aa5837a5df01b5ba24bfd34f3d855d6b7b2ed6255885c166b86daaca663a4291d8b1634ea89794899aab7cf57cac060a8950309a21a05fbdc7a7459652463a08ea0b0b95ca18efa169ded93cbd60e5dd0fa00484f1883cad47239cebeb3a5841537c75611caafa7c09a22a2c6ad33c9ed3621cc884ba81973de09e5d911dae9c8d5c3b63a2f316825cc9d48875d6a3ca554228a584b2e173504218adcd9edc78bb4026d2ef354d7e773996c06e36df5784c660ab724b01ef9a0610d5b94c1f169c94524afb9fbc04667a58b1648735d62fba483d5897e4adb32c4d255b525213d8f8470351454878392fb34b49830a5d56d655ef5a07e8d8330c6483c9f2a54a1a2ea294a5744d308b943f8012770927afa64b12c279a7e425e9927c496a962481ae9d8b9c44aca65da8f3ce65fb192cbd3bbd9b19e85fae5254064b65bdac5864557f4b6a8ca119b132d5d54f7ca87a57b112d0141fb185e56025cb8659f0eaebaac0852ee4ebaa24615944e8d78651ca381bb38b9b2ee80e16baa8c98d8774967136e26b655d15eb2bf243beb287338c8b1c3dcee33980b3115f2126af145d8a87778a977a54b429de9281b052bc54e3ed559163fc134a44ab5673471c82ed6cfd7afc8da4ed8744b0f09bcbce467cfceb8c3757861c1d1872dc9c1672fc66edb0b01986857f07106139beb31d7190538978b923caae54b0a9c9f3d52db15628b1da4d9ed76e204afbbc860351f6f35a0e44c54f21f2bcd64473a2ddc1e1c02ebf693eb0dbcdc9f337e7eadc350841e37094f274f4b91d6c2ab197920a834aac0f2c3dbde5beb1dc0c91596eb6142579dedd20728a9294544cd96d9493ca330aa39c3c4f04113bd5ddcc1a206f3fb306c46b98087b6ba4a4404b609fc5a991b13824b09badc1d9ac4d626b200a89c3917dde06c1e1c06e6bac8dc98a36cd2bf2cc3c1fab814222a8c4c203207b3e560385442832522546fad403c8288bd3a6f99c3cad6f35aec8d35674ca083ba7bcefcbddd7402111ca2845009a65812c2b645922cb42b1ac9165a55816c9b28878522305519d04113b44ecd43052a3265ec1461fd8218a1051e370b8c06f4234d9c0cbf5f1baf56cc65e617360459f2c237dba2c187690e72189e57ad79415d996575ba999ba261579be6791a982c9822b499ec7c9f3edb9f50d54ce46db32b8989494c5b15df4c9f3799be3707c524a70863c5faae1f9e75dbaf589a989a981164602c7f38fe5f9a4a4524af0b2e5eacd191ef23c96873c2fbccdd4ab5e43cf8926cf9f6870dc381c34f2fcc9c8e98a53cd05618510833083d003e107420ba106a156230031353135998827b508bd88d8b935525d9a313595a6ec46c40e113b2fa64900dfcfdb4b923c5f4528a314924a8c950dbc3062821053d327f8f9182c6290381c55cc10a012fb9cccd71a33703116e7dd9870ab51835c8326cf1a56e4f98a725da3eb4ab92ed275a95c578ceb5a61f101113b10f53e5fa38a3e5979fe2589c361caf3355235a8c873ab5124cfd71910b64078082f8418421a10ba4018047cc5b218067b9823fa1b8cdc99ef5b048e7d41e270c0cfbfec381cd6e78f108f90372276f27c7f94381bf3d20b76274f29ba34ad97caf316e79120cfcf670230e42991e4f99d26ee90a7fb95c9582f5b47eca17036e68413c2e99ce4f9251c8eeaee13010e3b9b1a0084519dcbf6fc622c2a5827355a5222bffa66e576b4931a39be94490e879d537661fb3be093b1317ede21b2659197837888504a7a19296dd9a4dcb8d4257937b7244a89034d509dcbe6a2b5736600066fd5a9f5ee392d9735de94c87d186b42082184eff3d1b710983c4bf074d2178f509d4b9c119246958e94d8bd1b12ab2a0c13bfd95730153e529dde075c20ce06049e09bec2524818c78657c40b25b274384d4028e21005147dca34012f1050bc7a979aa830c4a1b99440a8840b2595cb642a1c67c3bae912b4b8d8dc0dce8b29526ba5b1bebe478bd058034df0d62bdc49704ddf527737bd96bb7137b04b4ae0e0e0c80136a99c8d4de662880c9bcc26a61ca70d0a9e3a3a38d98bebf5badbc3717d6531de19b9428c62d6b57265b3246f01772a24b1ca2256496285a4c2e2a257655df3a29e7ebc9f6c31502b993a4b688d75e916d44607a2e8122e9a641831551286554249d70caf84159a16b1b151a2243e2f9a64a8648b880449d39af762bfd8fd30c5a20463bfd8340baa45cd755d530c4d776011d87407a2da499be077526dbdba175b8553a3937492d8969225ba04ff5ec4a174a0748861592b96c56259322c6b8665b558d62deb5a16be7136de92f9bc786e473f9be9c4493ffca44b905231c1e8d2dcc1916cb017de1e17d05a1209c608213412af8858442be04ec490090e0ec48931468aab9a67d35746ee22c3575dbca6dfb6ead697e813ac6a8a74e98a4ed234eed4c4587d1b65e73e1f2a2289454a998b6eecde0d5a139140d474f2b688c47242c1b81b963777f39ecb690ce528982a8126f86fb6c88bb1b07b3724ae6abaf4036703fedd0a08af5a4286b77055840cb3ca08dd813bb97128187ddade29181d99044929f02e2ef10e6f2f32f0560ae22d783b8637123e096ff6a31c1aff0cbc5518bb36cd1002db18c43b62d7261907c54fcaab9bf2da0d618c52ce4969555991cdbc3c229247aef2a4dc41d309a040024dd17ac115bf884e34fa2ccc843112331e2f8f0eb3199947d7ef23032ee04ca67899cdc03c9ab9802bc5370f5c297e8e5ee9e889ae7136e2abacaa5cdd2abb2296529aab4bf39b73e6aea4941946cc8a31e67841087375619613abdd9dabdb79663c46d8685e745fae3eade852fc28a5e2d14680f44934c4e556652937d2697c2b65393fc48d6d9aa771e7f19d13ab6eca81f4c9b2b208c74f9a3ea53ca2845642219550e8f57dde96f74df438c8e2608cbe69796cb9a7e5282d6769f94acb63b45c25e51981c92d3c486fc929d7aecbd9953d7dc372635c95bbbde4ad6f424db369796b9a4deb53cbafc7964712de84c0c416d897b1b7603a79c69f5dc15e55cfaa47e532ce82720bc23b95807fa9f4f2127a0ade94c85bca85c0e4d06190d05d863d44a15028147a4086df1e9053422117fcc3890cefa029140a8970ca4340320c85429b12197e5322a7e8a060979fa243c88137e79c73f4d047b7c7ed4c84d50cf4404b0e7dd3728feeca0282b8cb7f04811d34b9e01f58cc78c8e9acb311ba3c5e18a143518b8acafc0c95cf5051411102b385b01098ac825d973c9f286f619128380e81126f32705c9998948018273d06894422c5207d85b442c22a09d7afd4acaeacac1cbebb05da31e80faff4c03e8f65d92b0d7b95bdc25e55cf422118252a0acbe8152506e97864c9a81e1416bcfd5884b712047dde4d084c48c35e3dbba66dd9b5570d66323025f4ce6815763e843798ecf429d7681516f40d2683b49b92828364c74042607286abb77c076cdbf2cfdd94c82d8f99ccca0c180c6bc11ea530f473ce395b5e5b280b2c86d11574a630995e22b96920aa6fda14bbfba6696e685a482da216dcd2d2d2d2f2ce645afa660576eb1b2760dc7081d3450e131d2f9ad0a14f176fa2dcf2f78cd0d0ccc30c29d0a739e7ac0e13dd4745bd2b0f5d957b21b1108410ce29b0cc7ac42c9a532412fd25a987159fc665e833e531313c60738cd067c5338443585e086d9e13a08de8b6e0ede596cfbbb2f2fa56b2b222b3b272ebcca2bf2982436cf5dc90bce78654f07827fa749a6d0364b6cc4ca6e5533c27767a40e620f310bf548cb1aaaaecb9d59c94d2ecb994523ae7cc9e3babaa925266cf959665c518b3e7c6ebba2084d97361adb5bbb3e736a4b129c7523cf029a147a04b72c6096723be81f4490af1d15da35c8e72d7a820bed93c12e2c636c14bd726970b2906a272ad0c49342ebed2dd908f514357521ea2cb3b0abdbee5bad0bdf2e82c7723e5118e225e99fe7afc4b51d12751ad1505f665ebd44a21a1c9aa76eda128e312e52b2c9ff1fa20a1a73cf4f91abaf2f3421fa3a7fc6e4e64f95155b9d08ae829785b9949f9c45b2874979dc855f528ed39a194314609e1ec7ea43f9594932840bae8a1fb72e8be4c8a81452a787322a7bc30b2e81feb521e73e20490f8087891237cad2feb41fa147d86665e187924a55c11611e2f8c3cc21b786154d5a3b4e78452c6182584b35b8aaef25a8d54443776297497cd883e725d0a7dc443f4d145b87236421fbd30f20e18baf2a4bb894e2fb32558947899e5f250660a7839a4809772b7d04758336243f8d9250ec2f2110e825d0e91213c446616ecbad4225fad4bec9e4bbccdc07108cc1230f1ca5d960094af7c0479657e45de95d061cacae57ce810056f22c82bf7bcca12d079e53201f32128720ade3c1f02f3cab70865ac6019f7c8b8bc32f0360466e9398459822494a04b8a02bbe2e36594bf8cf289fff04a0f6be2edcaa1d035946b0f5db3ae690f1ddecd893ca78805aea8880e8424c2a3faa9fdf3141494bfcc87754dc35be828285be828af28776b98cdc0daa3cf9bf29e4fd901e1bcfde80609bd121da58aee32263a8b7090d0ad8987c81cc21ae8da2c3f7773c29359d75f66fdba8d83fbe6c2bb3dc3585596146f729458eb4cfa860abbb99c1b98ab4b240381a8a6a9a485a4f9482310687aa9ec0490198b0abbb5923e6df14dd3276985912b6ab0e81392ce6265de652d7e9ce63c108703939f535e988585a9199d019a1a8bd8aa7294be395b4a1863845076e7ade2f1a1452291f75a0542f0c2d27f3c1e293fa24b794f96cdb8d3c73e4de9daa64f998c9ccf642276f77aad125bd1c9d3e864fc0e18efd65c583708f61164193dee56bcb5c47930cb490bfb473a8cb96f436290ead8a56c27540eaf60a787f20e6f3d1cb5e2e92f2c9bb1773563823a19a9b58e5e116fcf92d29d56eeca9931e79cc3f4f26ed63dba6f22c82ecbe6226ff0433a88f5116427ab5f2a3718ad4b0f3dc4433abb5fba5b8f32c6a344b7eee4dd9c73ee98254fb319f7eb4f62f88ff67741ef1bbae7d6c718b147eb980f792b46bc529d1e5ecd08158265eca0eba0c9a3ddd8a60c6f42b0ed6931431fc4c2d861c60496298dc7ae2b65aeb60fc45c7d1b12618565ebd5ebc322bc849574f24f0bf9eae5e869d115aedaaf15c3bb61437275ebd66a55ab5ad5aa56b5aa55ad0a2dcbaad6557d475fd7b2b04c31bcdbdb025e12a91e8c82bcbc1168b211d961a10839f6f38ac963d7755dd775e1f73c593683f2f8f89a3ceb346ee817caf19d7f02a25eeeff192c3148a3f76d91b1a292f25a2b4a29ad6e90ea4494563007a95e9910fd8b17432f1f8d8bf0d6b99e06de3a8f1ee9c5782cefbdf770ad5e2b1f784554b95cbb831e7b07b3d23fa68312d0e3fafb7b933ecd881dd2f9d55bdf50322c6302cbd7e53ce826bcbd94f0561a4208bc9182b8cbbbf5f950cd66e48354bcbd8c092ccbbf9ceb7d1d74fd733db3d73d17d6e4fbb42c5953c92cba2ecf2c7aef3dbc452253c8cb92f149deac0fe920281f417e31eb0133bd2cbc59dbdbd1316362eb8c72fc2d3ac9d6bc45a5b46e6083bca35c5e3752044d8d2232c5b2f304a471945f37be8c099477bdca6650fe1d90c60d1d5fd151aecba0bbbd5c7b3d4700706393272edeaae3adb233f06659f0467ae9e52587fe526baddacb5f3e55adb5d6aa799e7d83c919de84c06409a8f7687825bba806bee49450725e8de7d74557336285c0640bfa75eca19bcdd80701e1cdfee5685da446a75c76726bd734cfaf5bbc718048f6fc836187990c5665ce66ceb60fe4ba15e1725d04210e528f0981c9990fac1e663d64aef7dc98b3fbae03e0f56145bc864b4c25e15e7e1735aa7a6c62659728df07806b2dacea52bfb6cfc9cbe952df7e6161c3525fc9d673d228fb3679771913558adcaf3ae912910ce15dec520cea169de48ff6aa618f8672d04f205ac1f6a0ff10e1107cec68e52b94d5cc642e4dd3362ddbc3d3aa9af1bc6cb3aa55396a34476de6a8c91cb598a30673d43a474dd3ac476a1eec9c8dbefbbcd8334f6ecc7d07ac9787ccf4d7b54eb10dddb869790491c8a72513abc6be6f6532f4ef8270ce3927adeecb4ea0b26dc246e7c546cad8032275dee3e76d024897e25f11f5bd26ba1437c7c407cc0e1f117d47cbfba34b6d82c12f5d9a51b09bcd714e29a594eef3c239e1dda39c16422b71135d02d246c41f5d8a8766880ea7be891f40e6adf784389c5c1f85cc42c460240fe95c1dfe889722601c8eebee9bb359e2aabc1b4cc6ecb71af9bd80e4f484421e2941337bf6d65ef9ec3be014026359cf7af26e32894cf2879d8fd481a814dc0434553b7db268fee04e960c9c4563c9c09d408f6f02a240b13fadd90b3f8548eb9257e6e345610a51e8cf47eabc8d9407174f95932efd3deb6ed140540aae76ac22551edcc96201ca957070a678d1957670a668d14053913e491d8b05ee24dbe04af131cb36380907779a833b5d7b4dfb6857668b26da1b9bc40bb3d479f9ddce52e73dde97251c1cca0e363b691d2f877304d8509c3ba24eead1ee6846b9220dbbda449fb4c7ffe893b58f289a116baf1df47a598fc5ae4bae4b10c7e1d01e4f6760ad86b7f979ec9f0b3f3709468e7b100293641977ab5c5fcdc732cfc76ad912208c6608a8ee88e849885e4517489be2cba25b449be211d15f204a84a54ed4115dcb8a3635b66890c478a923bd6854116d8a7ff8c507990c7dbf179be85377fed1a7a62738a365d777d56b18e5dcaa0c1f96b77236c860e1dbaac129d0c9f2efa2ef3d9aebdffde45a61b406f6248924c3cbcb2410152f2f6d7c6037529604c8f22496bbf409bbfc8be3e2069ae4b723b29417ad97b5d65a6badb5d65a6bed8f689374f9e04de2640fde8ab0128674591e07bb6159de353c3d7de9a54f3532fd948f7db2320458d5a427d140ea605d4d01eb52531ad88780240ee45e50a2c7eaf3ed524094f688b7aa12591b229140bf2d952abc9566aef0ba2456bdc2acc3813d5ed7758d30cb53f1b5b200fbcf7f58fcc10e9a7e388867152cc51b3cc4264c52dbc2f956e523f226896f458d82f615512a05a6ee9dce5bbd2c266fe52173cb45af214c882bcfb82e7faecbb45b39922bbdffb2b8d2c39ce9cd9d5933779c70f95cfb10593eb2e348dc224f0289e740023b672af22476e0e74cf49a0672d4dca39e0a89eb92c8715d12eec927b97036b8e06e78414ec1c92a381b7289bcd96991ac229345e4b57275254ad6a342c9642ab50407a4c3d4bfaed471366e6cf2c4e2c5c835b81b7dd90620e4fee8c9288b3b3b9936d149c98ec49c1c30b2e8c489bc3304555e198fe4c051253b1295b84049ec228b38382a198452381724608eeb92f82c72a5da84c58bb174dc8d22198bdc67c9646abd57cd850512019872fc75a8b9034dfd1c2824be913c8f47e2eab839ae83a6500aba2579ce6f570d16b0d65c78b3210c9a3bee33775a727b2efccd898ee2e58a2199d1a6643275942d4104fb28f3f1494115d690312c6a91636431268991c9ccc7889875659e0af4d166d890e9d7858615220f71966c66665c9fd8489b117e927b081a2e3575edd0a8a96b47e5a62be70283c695738191fbeeda54f2b2b9efbbbe47c90f92e56bb9787bf9f72dbf788b79c6755d49ba40724521f4015da92b75a5ae2b344fa6f3e4a3a3f3a4b2301b263636d266490d44492eac2d5e8c9c82bbd1974caceca20ace466f3173c43fb0f022267925f3514515ec488ed72b6de48deca24b3aae6492e32e39b0e4a23d50650ccb25190f99a50d16b6ca58e9e7461eebd951399dc321447639bec5d0f10d9491f87665f746e2eab839ae731360e2bedaee6117c44e9e7ff9fccfaa8ccec2f219f81f1a6f11e242981ec45d8678e973d03fa7571bfdf3f9104ee44d5f2e915cd883feb9f6a1bb4191432ef3a18556661c84b71526ee3fa053bcadccc03d2e765dfa80ee3214993ef41d3074b7d06368af95ce38fd30611ffae77eabf2ca0cdcc3e290f6b99fff6ea18b4cb7a67fae9df44a3105bcfcb1a6ef68d0dd40b758336241784824dd654c98fec1414cb738c810ff9cde0d8487c46cc2ae4b425c1be2a2975c46ff0c21048dabfc83b7205c5c288d04d078cb69b4d096cf6d015d0bb5fc430fba46a3e52a2dffd08342785369197d4e3fb805e3abe07f2ec6dbcb1f6dc6b58ff66755ae7dae72ed323eda47c63f3ef85ffe296ef9c32b3d46146f579ef12033cef2d159669c65741696cfa07783e26ad206865a4eef36246696c738e8ffcb7c8cce7216bccdf8ef36e37ffddd3a835e2113f0d7ded31bba76379bb587f00e08dab4affcde20338e627f8a6d975aacc541667cf496bb697848cc3330cb45df01655c9b3f2eaf881ee36e5064d187c86454484ef21098479f91f540c9a3d77b3399948fac255d6a944bef0dca3ff4964d0fece8a39cce28b719e512c9570e445d357d12bd6f2dd1b0b411d9b4a965443b9a0686338c593516923e39b9840776bb6aae2cfab455a97c6151a5687c2e8dcc89233a8ee9d0712f266dea0791c95c978ef6cfe7589f42ffe0edd2a9d1b0b411827d93364f808e69ff80348c7d07a4d9e73bfaa2d6d98f8587441f4884114618997ea54776fa0c0ff140cc187631df0c0a2257cd85c5854408ccea5c39d20647fe42d2a5ecf2ec42e630e993c41716f2aaa13bb07d6953df18f63ed581a5b5d65ff7d299227bee1aa5e31ebc5dc75e319a034bb30a4b9b29b26fd2468a1d1bf395733545e938f6f79275dc0b499fdca5546437d925f3513ddee792bd22d2069ec0a12e34b82b0551570eac4a1b10ebbab852fdbc9ab3515f87c084c8e2bcb48128d0850677e540947326eb8d737d85375b2390af534c1fa7c8d7e9258d5da23f9203cb25990cc4d2e65981a5cda3194225c68a8b1e49e5140200d8cdf622631b4e968e4bc9ae26c95d91644785dcdf6aadb15c8c65f36e7425220244644072ae1a598f3b6f74d5c55c69fe5deb4af3f507b506a244ce64233b6f964dee3b011b598f9b6315801f01c89ab87123938934c75ca7c8d669a9e2673db991c9c8256e644ad497974ce66232e7006a0e131debb151396ee14d08a69323bfc86192e3562adad4f808982ef561ae1c263ad5fa7c0e80bd64ce46e65a035173a74d5d65016432b3ce7ba5b0465d35d0d4f517295f45ee95bac2c65371d540544dd5542d028310c279026432f1f36635e55253bf1793eb5e3a574e8dd24be6c3fa95baa8b88a440bc76a4959de663e0020062188a1882e910490bdbcc401b00c20233524808800993d92e331477c8e22b21ed67cd2a55497fa46643213cf1d1c58acb7b993fb4664d58d7597559d300fbd34653211c74a44353f569ba01912a1cc51ca244d9518fd0820618d4462faa5410f2400884108632041f8de1f8410c2d71f0384f4433ac33b08894c4107f807f37cb47aee5b74e2308510dad21d1c89ee202ac60acb3dd5b195eba029c675d0a4721d349152ae10980a4514c21b097ff076bc9530bc0981b9b010984cadcf430bc62fe217ce8606a1aef478ff34146c55519ab78ace9cb76a4a192384339b819db3190b857ef95dbd05186a3dd84ba6b32dcbb22cebf39489d0ca02528e7208a4a0641f5d743b132b285280cb447890b3cb47110f297a9d0ef693d243a426678799e8220b6f446872f61d9de1ad3e7449ce061cdd631f9a7db409b278b3782391fe7ae10a6f2f2896aa6468036a5a537bc067f75959807cfc0f89a37baedb86e182ee56010c088b2cc800e64dd0371767effe9040140a165555c85a108984e48936f52b054a3f8954dd3514ce8b87849232a5503c2cfa448136f5df43f290f4857a595cf82181025696e4a4620a3cd128fbfe8bbd0fbfebc2ef7d7b48a28814c98679ba5ac2b6c50acee7aaf7ca5595aba4a8de4adeab1c2b28ff2a37a4f3c3b37a05512048b15bb755d383ae8399d28b3caff49f576f8bfc095dd726fbf1e08ade7ad0d52ebc9a119be1ebf3f018be5ef1f6b4e86c662312e4c2db3b147258e120eff4ef144788459f9e4bea065ee6c0cb92c75559d9e1c4bb778f97c505386892994ca5d9ac2c8c5a3cacf3b8269e71ae54650b98a115b36ac6000cbbaeac9fab3c349bc130e33167ecc416cbb06cc6c2b7664d50718213540f86653c6c6c32d4bab4abbe5a6bad9f8fc5ac8a5d990c5d0096cdd09c6532a08c0199e7793c1e8fc7da4ac3308ab1b391653274019f6c8666fa1ac26c2613ca18e020deb219ed699aa669ae2b0fbd96f1a899e20ac23e198f9aad89d98c477f8b15d55e86957bf3553ed44aa67aef7537c43018b31e9855e38a128e48b66ac3ec47673314461289019f7b2060ad65c5acbeca7eaef2d4efe87a481f7395afba2fbb4b67409f7b7e02edf673cfed0fcd92d98c3669d6e3bd99cd585a8932a5d9cca7c2aacb80cf3db7b21f1e98aabaee0cf6fa2beb8159d90c56653328346302c3ced9a8d98c28570cab6eb6bdbc3032965923d82c9b79b9f6cb1cbc3cd99f552f8cec3226b0972bde86581b78615c74257e06fe9d485e89f8238844aeae42b8735aa6b71caa3abdbb5e5d36f3c15d55d65ea7d9dd0b237b3c1e8fc7e3a9d80166400761d7a599d0414a64ed20bc39b1236b78b377f6c67feecb9e6f44a0c4f036bacecdebc25b6539d3bce8529a9221d45aaaa1760a6c55513aa7943142f8680aeccbcec1e3174696c1ab1333f5ab196cbceae711ec75de0874a9ff60ebaf22601a85bdbfe3007daa50d9ef8f0ba44d4d5477776953d7e8d366631751060bd3a67ecb6f45e4abbe2ffa59e1ed882e75115dea1d50278e41cae71e0aab581a8561282a76c9afc613b0aaac25919accc156704e12a98a4f588f22be95dc0ff3b0b2ebd2a49442c136d128123445d47166acbc83897542b2ea7d653ed127507ea24fda137db2198aead1925eca78ab2c6b5a16b5accab22ccbba2cab5a1666594ff4c9939fe853f6449fb0fc449f6a7ea24fd7137db2accab3d2e3caf47376cd1584ee280703c447c560ab7eb2c5586df1b38a96b311717c8ddfae2cad6021b6554825f6c5d3ea92b67892f049dc81700f7613517a4a5bca532cea524b8959bad4cfd9d844ef1ba574562cf49234b1c4972fe7517a51975844a41ccbd227791691cb9ba882a23ed1aaa2797b59667a22b9d22bad604b149728a5cf8fca1ae57440acaa83efb9e7a6670b92e5931326c92e5da278a547a478abc00a3d914cf18d2b2fc34cf14a0f22b90a7b25acc26e9226bfd7387165e5700f14aa9b27dd5ea794524a29a594524a299db0dad173ce7769bcf0114208e1eb6ef8e0ebceee611e9de1ecea09d5d58e57976445e79c73ce3aad0c0117b53cdd8f989ee05f5559104e6b7664e2f1b692d94cc44709dba64b704e182f91bb92dfa5c7a373639a4508a6b21c43479d48f37c106a9a5743692cfcf6ae9846244d5c71f965339d814c0147770922e5f33d1f609cbe9153008973ce39e79c73ce39e79ca1510a76730c70c2d95b98a51a8d12e2f32477ea9b203e43a1f998275e992792e74a8f39e38c31e5ce2c44e82e41cc091f0d445549382152e6839877e92d0081a8529be67ccc514e17a30c396cd6a844a4170b73c48ccbb5d6bb9c7d73382f2383c862a4fbaea8f5624fb9a2a7e460798af264c9b365d6c845e43927dea6c0a4d73a2f2985447a6c32fa1c1d1691536aa4b0e494142ca73c36ead5dcf5a97a4acae128e5708453ee4c497974323399997247dfd18d9d74639348070cabc7de9574b7174f274327a04c951833fb5665a49c7d2365194efe886842a2900a9da489824dadd2258cac1834c68c8132e70a2944f3f3a24f33748f8007d861b384125d82372a73e6b70687831efe3971389c2806e9a1948f48186584b79843a28b3219118bc8252123eb31435846f69b171959c907cc544445323299d0163aa239e70c85666886e656a22c1385ce94eb9feb737daecff5b93e76d2258c3ee7536668a2d090136a0c0c36c15a8f91cdb064eda64b50c6bc30bf2610a5023107519a4d8c5b1d81221c1c118e96f3041c52f6d0c022039bb765bc3935edcea1545e693610a5823d365b65d3258fcd53462817857e6b9ed24f1aa220cd7e3c19562f8d8b0c5f75c164c628e3a8670801bedf03e3759340242372827571ca8efdde79dd04fb1ac3304b2bb15b8d4c04110e878311439d85091663c97d18fbcd295f64509d105616b9520f07a61c0efaf89844a6f28b281a2646bc883176139e5b1e21bf6f577e46c85b4582fcbeb932e4d4a549e8504333b195a40457771188a25db4e99d098d1746e890df2918f9bd27f961216f52054d90a92210539c2558d8b15f74d173a5aec8f5131faf9b988ae6eecbf330baee1cfbe4a1d5ad55563476e9b93e58f77728822c7b529ac95425687abfed6edcca61ce3a1b9a33cdbfa9f2b004728f3ff7a0a71a419673baeba1dfd18f0895cfc5f32612523296c04a89d1ab820c4ff126c4ede42bd8f82dce545d82d5b7a7021a03fba2783e2ab8e3a35ad20318e458adf4e8c7bb9d4ecd07a50051f1ee303e3438977e6d81fab15c09ca10bcf8b49091e572f6f2313e41443af6fa0b534aa5cc8c92528a87f86809238c30e6e527c6b007a485b18a1d0ba37899c6c03ab7033b95833adffbcc1c4f44be0ed49e42a6421432fca34286af9f97610af02280529e73ce79e7a6200537059889c807a7605594d2bb2a487588a34663a9a354b68431c61823cc31c618adf82a9ec618a38c7408d5b96cd6e198772841229411368c314619238d305615c5dccbb59273c6b72c41c532a5af4c4061dd07e5afeb3226a0c8f2138abcb90f893608b14ff32852bda2ebc2b44f4ba4d920f39fd35b0f84b7aee8e3b9d8e9c4eeeb3171742e9b978feaa239df18aef4b80e7f61ac4b31cb8abe981f16ff69d90d21ecee6e9b542a3524bef7def6f29b0237063ff5ba2e7dfed900f4dc8365bbc56caba75a6cafb5efd96f61efdbd1ef73ad7a4377af887b2b78a1c3b74586af2bb85bfdbc1aafbdbcef596d0cfbb316c36e6740cf24b6619edb6bd7f38e812eba5a0e2ce8f6d877340fd02f7c0405c736c977917dd811948350506e6c53bd4fd6c42ba091b6e2e58aeb5f11fcaaf87c7b55e44dbedad76f1f5cb1ac78c32e3ae8f5a20b02c55cafe10dcb557b7d86b16f42b01cb39c09621f33868384f0f632e8987dbccc0f84837c8efd8383d8cb8c49cde2ed5591abe75aaf174ac9436600cb41de3bc3e4dff597c96077d9061efc7b2b7831ee55916da83d4878a14aa8aad02deca3a390ae625dbb655deb9f6b2d1289c5e5241697ebdaebdd86e4fa4a7d586b050144b2a5718048f6e00eb4640baf64d633eb1e6c0dc9dab5579bfde381969731a1ddb23c2b15238048bef0caf5209ed75f9ed77b3e9f5bb75bbdc3eec16edd1e5ed67561cd88d5b0100c5a3808760f0e42ba102c5bffdc4dc3967477158b64e16d645f2d48bbada05bdaada5d58f150a3d3e14b28f7db2d67abc3db5aca584aaaab4ea7a55ddedcafeae8a3722791b923f3140d8e3b97d8cef80f662ffdc4d0856a3a621808896dd7341ffdc7a7b372cdb434fbda7fef3ea39c876b69a122eaf680f62fff94a0ffbcf2dc6eec1f2852b673f0423b5e706a4feb87bb2ebe783da87b85fe56cf47dcf9321de2ee0a626ead27b93a0f6eb6701efe5ce207531c618fb551e1a28e3dd697e73c75c45ead2ab1c2f63aca049527a49b183a6e6820d131c1cd1fbd6352127201bcd3a9dcf8b27bbdb1ed8779c3e651dbb801828bb18638c3146189beae63dcbb38920cbc6db902c718c22426887faa494b2dbbd8644e2eb7a51d1f1354e9c8814c7ccb0eaa9aa9aaac6a54e01c8ce263b3738537f9381b252423c4b079a5c4c65f36e74a5e32a9deb04bd599bcaee7aafaa9efaea9561d8096c8a6a618952463eb02f8f2e1a757d462a373894b48233f56d2a9b1a9b9ed8452ab14cc6925610d1532ceb7129cc6e6a405895dd73dc97049a904013e8852a0af604bc4c70a55ce9418723ce177ae938ce4e4ee973e564f21ed1f19903c9913622a584d97ca45da453a938f39454c871ca5cdf2bbd5b3487c9e647f19ca73766683d8bce57d0c94e9326f3d64ecad279b7b38efb7220ce101c8cca2e2c1d26161b72df9abfae7a8f60d70348fccab141e23e1df7c853d22e5092a7a4105fb1d259a50805cb711d249852ed81b4a935d2060a8089869df5d02acdba34ce2c73dc4adaccfae7592fafcc55eab89a0672eca159b773acb21e52c77549483c772efa58298ac32123bb1c4f91ee7672dc8a459bfa7307eed85ad35a9048d6c2f8ebda23e32805730ec78cfcb21e51768e3b4e9c3469a2a393938383236faa0f60208e67d18a219143c76b4d4b76b7e23677e6934ce113acf52cbb4c46d224dd10834920121ba8042aa9ae5bb395f1e8d7afc6282f4853049a8ad418e99291192f29e707bbae952b12f725a1e3b6936e024d4d72a77aa74b3bb9a3b331a7c871c67add2a63d7a539fb60d67d73e6d8274fd623e6eaf5e36c7bac995d9f2acb735d5945e9c5eb438eeb9c002cec63b1a802bb5d39d78db9de233a2eef911cb873b49256d238d074d3bf72fa64dd7af54982b548b05b4de59aead376d56487c3e5f9a44d7d2d9339826d265d9a3b9d53411e6b51b0eb420dab58e6e4297d7df009f6ba9d2d9ac43e5a04502623adf50a9d60ad571427d6b273e7fd63333c0c653216a645b0ef5584d5cbf2c84f3931e770fca95847c1b1386b8e0b718ec01b780375604e4368d16ac9b668a4d5a26e8ace130439de95667ef20f3b1bb363b0c042870367f7eac5c4bb5f2f66de1dcb7197df9537b2617c02776026f33025827d87d3890ca4935259e593551616d20136915f9981bd40141544009d0a248e82276102e87e449fa2d8000c238c1cff6864f74a4462712941940eaa2dd1c48bb1647e47763cc7f5e8b854e44cef9d3e3febb4fe45892becca1b0b3b29e1b4b422714db02395c40e1ce35d7624a6d01053d10834d1a0c1c2434c5e9be38a9c69ce39a52bc92a2bde4290e7732599e775494d2ee912b5668c4772c41258cf617ef2a6b9e802870ec1a3e34a90b4e99210aceb520e99c9c8396594596d24642a4c91582c0896c27e2c9e3bec47ef384ae38ce4cee68bd1a218526550bdbbe874450bf39c2a548e3b67e39253960e4b76afd495937a2fc7954cda64d3a525d59537b5535709a49456965876ab3cb1d36ca673bcb4044fb5cf85aecefbb9570d44a5c0099d9038f06156ed22474e4cab2a93b95ecd28e48754198b9a9a984544d2af6ae70a21bc52a74b4c729c8d0ae755062eced0452565ee1c47a05de76ec4ce2f422bf321a9357f65338d6517e60bced76ca6737e8fd2b91206f23cbb636252cfc56485359bc7b2fb32c8d2793157cebba14391584c8f582775ae6472a5cd25d1e06ea801b3e4b31ba79c326a0b66a251a31852e52166cba940c189e0390a4a4910c1c582745c9f4cbb7757628926fa14c5065e18ee3f8040141544081d054f22c7a940c19340c215d988c8b30834b5c9c54c2c6a1ce2ba8c049a261225b9a715ea637597528dfa25fa94795e2fc4e1d05eeb87f4e9f3fa47e370845e67bcfe19e9937dfdd3c2e1b8afa6d7bf2dfaf4d7bf1c8743e5d5e595c6ebdf13876388d777aa4ff8f54d459f84787d2f71385a5edf5670a8a9034d7dc4b7e642ccb7eea2a65173676b24a5206a176914c551db08205c0cdda200df5e18b9521b986f8f0ea86f0f8c32b818cae4f4ed9d2157aa63c4b77753c4b787a30417439f10e0db6342ae9500be3d2cf24bfd83818ba9aeb8f1edc920d74bd1a82a0036ea31e062aa2d6a7c7376c8f53f1a55d940536f8e0900dec3c5544c36b7855c2b4cae7f6954a5034d31be0d91eb837031d5937aac5156fd7331d60d2acaa70e44cd01fc08bc559f1c83b74fdee664f262ac1cb81ca421f7690d8e9a51cd162fe67a327a01704dc1d8a0f0663365f262ae9d77c27daa6304b645e0272fe6028300f889cd00f04d2af592bae2c55c5b5c5be4fe8d2b725fa900d4d8a8d9e2c55c57d4d8c206a22c1d226c0060c3e4c5584f5298646b4527dbfce4c5584cde8d3e9327b96fa520caaa81377831d616ef46df5a9295ca28f80695086f952de1cd926c98e41ab12aefa8aab6a832a9444946b12c2d6412d1756591492448723f94eb61e6e3f9618945cd640d866532a1ea8272cb3db263c78e0b7187547916d9813bd523aed4af35a977a3a6aecc83b383a3510527b1e0b6e04afd1d577ac199c8e0cee0d4e0e0702410b9cf07674abd18d9440ed90404eba60b2d95df2b8c18914b725c24ae6b2336d945ce69934e4ae60a6b59c6436690c7e648ff5ea9b4e2461d26394b6eb8e8c2d9100319fc90fb1ecf277b6cc643664dd332ed735026931df4aa61f2627307d69aa7239974898b2eddc8251025713ab149a8148d35e54d2e999a11010008004314000028140c878462b1703c28aa8aac0f14000e93b452704e1888418cc31032ca1840400400000000000000060138d50e273debf883c241e499633a066dc70dccccb3f2240b1702a0f51cf21862644e535ee0f45ce1d3e848cd708c75aa82cdd1fb85bfb0fef2d19495625233e315ab40f5acbba50db520c6b0deb9d11ab5856c0b89d95586d378ff1bdb99a663d0b59da31d8f21480131faddc0ad5af5c0c0f4ed7b86aa34735048a0334a8f0986e7e8cb6fa79cd9870584f57e53d00d8d0254ca26310b488d80651524208d8e88b591dcc708f00722b78ce81476830e53a3dee5a5bc71e61f8f1f1f7cad33a8cb077b5b37f762511ec760d5d02877aad7a6820ec8948003ed336820d9e35309eff1096cf19ad5282f92a6a849dd2c8cb54ba8dfe31cd6cfb541beab0b143641b193e736308bb7c642e18eb7d6d0bf41d925d93148e7264da3f74eeb59c7a075a323bd2ed9734bb269624ca8a96a592614c7f584386e53d57df3257eb0c178d73e2b5601b43d3a68c265068932c8acc148fbad47eae4c81eedee89def3a30cfffd2cbe47f8689906ae863efe3a19d35606e13afa447a1974244ad45cb3b30b04e6925bba528f25eaa34706090ee3c28bff62eff24f1fbb92a0a4dfcea17b03f9b3d301c4598d5d148a36b7a4f2bf67066b567d4da69d0feb65d073a5ddc873b82403369932be44e1385b673e4e80d035367cbc9741fff71a9ba7bdda4f7b9979ad2750fe0b2435006cbae0b6bca68fc9244f8e7123e21d92171300e2df3aa63619038d4c0c1b58aed9775cec21a9a54b3d4cc0e3bf0b832d6ddb161196b8a8496769e10cf9dffd4147d5f7db6b0af98a389f08b1993e9020a8c73d9ce2e2d6e794d607add6278d0d23b08ee95de925305af78b9bc546b97bbab3193915afbe819b4486528a9f3256ecfcbf9a942b6edf78c0a442e197064ff345f8b01042e05fd993f74fce3fa814012cac0d4718909b9d88ce5cadbdd07511a906d31925409baffbe95f2208eb22b02d5f38222fe4249aa4a618db6ca7ca95d5556599e96c1bf92ce7e5a98602b99605df9756b2b39522bd20c1686e4b64f3820460ec84392a1de97db1cf98038c0595ae1e2d182e25bea5aaf2f3e160fe89081c5847d11dc39286d8df81555199b91b7fb2d9245bcc0f25633adf1b1cb3bfd3e3fcbcd76f176818d3294893267bbdbe7e714caf94ea75530a9ad786816c4a7ef0a1987031ecd6ffc1eb2b12ee8f4a2f29e8c5c5f563386a84ff80d0052000702c51d670095bae1a980e02162515d263120883555483c4c90374c361db9b2066c3ac85ce11678ee5309b146b5e5323b1039587598d0467f2faae4d727dd3524173558aba39aa83f363c47f5c9aaf8a945fd7c144209a6287fb24e3c82ca13a63920436d9112b3b9636e2754acd5cf503ace2398f3cde7adb38c0c4d221694e1b5f209c0e9de5b54587387e12c4b8448acc5e0e6c235fe1960dfd10809b2132739187c669650cd854536e21dd7b17bd13447fabbbe311851eebfaa90af490705099fea4fe792835f7d76ee2bd287d91fc353e4599370c82a6e42f599df76993d12b0eed800f430d06e1f70bfc1af464aa3fc852716b8851861775d18d40db747b48a4c8dec3676788a3132239e169eef60a5dbf48c28873240b456a0b8a8a6cfd58a185c2483fed74e9c714084fb922e0839397dd1357294b69b634b547e9354cba9d5ab185c93d6c19583698c65036db6bb6c26947767cdebd111afd1002afd3cb9c7da664070ca9069bec5bfa04d0769b5a1c57abd5e122a6069ad03109849e38742bdd23025cfdf72a6ac492238fe49ceaec05c87e3465a9dbe57e339494b7a6c93ac18c4ca5202d2fc936e336069c2eb19924d163a4bd41c203acdb714713c09305f389cbe37093bdbaf8852986b8416580ef24f4cb88a901aff3ebb816b942c4afc5437d5074fcfbfe1ca570c7494e9b9e1f6803d9d2ca7e28f96ccb48cb7d5094661e0c1d0274920d15865e432b8e64e1b086e4ae5e3064bf18d2c0bb2fe1c8b432bb0024dafb14cc5414de74830a9fefdc7762d77a255cb77a84ba8c10533587bb2dd5cea07111d4ddada416b638376e11d810f49072e81e79c3bd7f95e2fc03a88e2cc922ce2655ab5178a6d648ef0c7a69bd577206c89f5d056e06b82821d1127228d9edbdb051d1857e4da224ee7f614b906aa8bf49a0108b53ddc2fed4a2351419a92667fb9522dd5f8128f3c5c989af070951a8eb598a6233d30d83d5ff1c3985f6df4cad430865d1398d50f16c692721d3a512e9f946e2bf7add6bb162574f5c3a2d08f42f6b9b06307a52667eece4e2fb727173817178a7902470eeddf94619e20971dac549ece635ab3b963d44d9f23fc79ac4ed27ac4bec43c319b765f3eb7bc0c2e9d488a4c598388367b8a380bacb78cae1da70f5c4487bc875031472d296301a2e1739cdb5598113187f3c467a79741ab04a113cc2f86c6996318af42a776d6bcb5340726b8c9a2fdd0e71f3cf5ea4738ab874948dac19062734f922409d00f7c31461efc6695134425a3ef04d20921bb2a0ad06dfc47d0fc590fac921ca21e16241287049680570b5cd683cc25326b3d06628d20c29606adf14b27885bc982eae0d2422f9290974d30f69862c1a81591089eff178464f17d45ffb22ea5e5d961241dbbdd3479aa1f9d40ca723ba8a72e58bd3240b1c21852e84407d20234aaffe9bccf6e0fc7404c75416021cd44b1649a0c83fb88e3c052a26f8267ab3d4fc78182858fd44d0baa38c7372cdccecbd9ecce9b8001a981b5092d4d0f8373e12f1b03c5ad50f08e69f6d737fe44ac74560600df210d7238c01ccad891fbb693eff4906d7a8c3c22be2d9d76cb04eda19557e9dbdd92d4e159abb994f0e9b6624af9abfc0c956ffadcb7851a8adcf7de622836f1a52ca641d701a406fce6efd32db6cd1f87fdc961fabe152d9b893dcf1b0139b234c80ad332e738d50b924bf4d8e1c649d995a04207ab488b56dc182a43bb554864eaf2d52f06e44060320903e948f6a0cb05b57eb400812aaa7112220e59c60e05bc9292a6c09d90e53408917a9ac1b871c6fa10f91a89912cc814234b20e6c81b2824db49624bad3695b2380bf10005f53ae97a9bcbc9dc26e4dc15ce62c3802c2e9875b5378210604e112c2df9778e20f49c770892073ef53390307256d9ba79c9bf171335320ce131aa0becdd192ec8e29c8c898772a0c12faa763a8af6bbdbe734c520a4b41eb73128115be2df7793c1b5dd12062065bf168ccde14650de4af0a8e3455a235984c4e9f112ff6881451129535c0653dfc389531cb0a2ec1bad8a3a66689230a96243941e1cfe840c9e3df70b82fe53a6264c3ae622dc26b6d0ff0d40ad46f20cce70ce10073305aff8f1fbf497d301db97a1f2015acff4dc29476fd651d44a57e6ef65ca93c7f0f2e204bc3713cada245eea53a0100c5d8eea0eeff21ab13c8654820d56ec0d9be141e639e5a0abf7e1e2eda0bb8236eb5c22afbae084ee0d7551bcd79137e48995d02b6ead8682f5f78475968108987180945fdfe1af15c70e1e1a3fd6948886713085a2ce807cfe4cf04a1f55d1c92a8cc4755b709fe7d37521aa066fa337030ff04add2245ef9a38d431aa3d513763de5d628b277e6e7bd84afc10afcbc97ac6d2375e45511f61f71d8997efd5d08e89c18e54c4bb1b522eba1e4f8194d17fdb7fff509e5c13c90398eccbc7e124adc640a520ebb0261a01f8b40180e3e79d6113f6658349fd849313f6da061489f4c7cd3b1b23a55efa14a7c739f100aca7d6ed9bf674e37824cd4504755367d0c3fc351d0dc232a284ac293ec4833a085191ededac974a221ef2fc5ccbd11cb37e992cb4bae115452f41682268160200fb65e45479c1925da5c241ba69379f1702014a5cbdab17e1b0ab831e09a2485ff2c3ae9673babc89f676aff171fb06b9bc644f81e33dea8c30e461fa306b221038ed6de0fa1d63807783fdca4ae5d6bb6e6e7f5cd373710eb9943136458baf9a43a910fdb270fcc76ffd1fd22dd994d60d9a7ee297a40ad1f79dde05b9c297a476c326e740c993d8dc3a2ed823870e06d4298fa4ff2e5f411104317341f7518a0a9cc69482faecdd184f724fb53e65ef32c71ec4e101cb7c6b3c375c2904b8921271d39a2323297ddcbbbb2ff61e46cc6e59419f2a4f68f6f50c8498a9f8949bfad6b5ce4a40f02c36c805af40486dd9da3d8a2cfac3ed6229f7f1ef8b7bc9e5c5e2cbfbcd202cccbe6500fab6be7762c8d8b520b0c8911cc32ffac11b4e3d3a265236752b585f04f18b0ccd561d95b35ddf49c77bf22ef84c18b112136bd15bc5c2cbc83108803ca0ee96434362520915f2f922f1f4e087d67c7760b5150a386ddd7217ebb6ebca2a326c3fd76bda399c5591634743604309257ff815af3689b9bde4fcc68dc7f6bc0e02cd33670e6e2beaea5c8ba7315b988b83b892c53d26d6ca2bb8afc0bbf3b89ed2af22a3575f309a1b20bbf3b69fd10cef58238a6916889015633d4bbd32d91c5c83ab3042870c93c66f13a0b02da500294655ffadcf63b5cbd8afcb17a4dddcbaec681b5fbf59c942d6b8815c86bcec99c461eb4d8f019e4032503f65f58d0dbffb1fa9768b0d6da7f9f50a4760c15512453dab09efa87d229bb0581a8c22bd578efe852dea14005d1cdc5010c1a5b31848aaf021240ee2d2eeea094435362093ded4492128aca9dc88896bf3cf6a9b2b1eeb9feec0e8ac43f054af247fed758610ba357a71edc52f63ce6fde8189bfc1e71cd1ec0a21bd8e6217aa7b1e0d3c0b8805ae1dc24f93fa5083aa3775d9245a5838baa2fa9d48a7e6bea033c427702d6a7665dea01eebe5ff08279cff0f81da07268b1830d2bc10df085125f1ff5b898308b40d4e68af55e4dfffee7553cb099ef7d7b6cb540ce71418560e9c81331dc073fbfb5e4a86408a1c693b5becc54d7db4ec993b520ad90d99125aff0f0ed30fd34bf32b0c30728afe6e9f0c251923b791a58413f347183381cd5b2f87084ce92569027d96c680d21b19f26c4fbbea15f4a53fa2544ccd6445e990929a0e8a0ac5da6b65ab0a639a2d79a5ce3c4347f5dc02403facd06acd0339db1b903c89d84b3e7ca48972f28a2aaec1f0a6f136da70ea46d5b7aa3777a6cf7b614c1bebb5daa616ee5a48d22b0c21224102d0e08844e45d247999bb9955e33c2fc8aa35918be8d4d5816fa1eedfd562238cc3033bbef143ddce9f580af37feea591d335379229896f8851f075f0ce0b5d1b5d949319bf4e0e1ffb6f092d12638ece073ed415fa7a21c7a549408589a15a627ffb2ccd76bd6b4d0626138fb703771e96759d32c9818cd4768d01f1954065e0028b67d7f4170189f9dd52d1a145563f98c868c35d92091153ce36671841efc4771ebd95de470042c92fe6464912bf1793b7a9b262e7f58c1d925ace1520c2693449146cfcd0d12172be763ae7a7b5b9ad2fbdd22d9fc0a1a6eb1440297a55d97f340c9dc947e7cbc91422f68f332b93a7c60c719d6c9a26a3e7a40b2c1329e77d11a4024835a98aea1dfb240d2e3d8d5611bfb3d4ca02aa47d7885705e92db2dc8acfc49efb8f3268ab1f6a242e2c14676c2687fff871c983d02ca4cd16989a0de22df1f6aeb0460b78259868dea040862c7678476a9c8684a888ad36d6eae56a64589a165a94714067b52b226ff5013a2cf7291fb9db5e94293b73f529d86584c5f5800b3dcaf489869f793fb7f38aec596863fd0fc9a2629bb8130c82b04a5afd27939ebce98e37aef190c9de0bd418e748a6d3ab7ec150640ffbb8fb4728aae129e384a9b1ef61815c33740514f12964f47cba148b419fe86e2a0a30559c3d088f623115e8a5ae517542ceb217f006cc892fa5ada272fc9c3a992b5c095d4b5b8848da33bb04e28355a31c11b150be802a4dbc0818205ca5295aecba3dffb66898f4b801de1785591647e15e5b9e13d39020d721fd8a62339f2b52ca4af31485d656410f28c9f465dd88936c5753449fb264327e87e5324a003d0916008bce94493ee38fae4c2533507156e4c899556b4e2fb4dd4f0a3de450ee9436a16e9c78d6fd1e865b8c8a227b26a51bc65010a4dae1c71328fb9c839164000d8b5fd885bea5b3ef53bf9fad44c5eb17681c2f82ce2f2be5254dc36521a60500a08d8acc73f4739f6cfdad926b64fd6f67c02d5b061635ec60c921b0c12cf86c59f8f0086a6791f9885a0b0ff3ea943c4111dc2bf8706891e27dbdba24fd39f9d53ec5eef1bb0a7d524b28587bff68cb1191923e880ea75b7a54df8ea8e9c02298088008a18482c12c0a54bb25e800a8b0eca772cdf39aea4f5fe3a5c196f490e7613f22363517eecbb8d116cfd3842a7d83cb136d67d2a88c8c857dd8e8ab7592ddcbaf52b58e562259fc4955c1b6251b4605e126916c975cb7ff043b01c1d2a992c1d7ba9618ca9cfa38f558554c423488be28fbae395de74e3b42174a761c63c72a42d55a246113b4367b2f3e1d051351611c36b4df53cf9ecc8b73bd906acdc51bf1c91e42e6307396daa5a8cfb0ca10d3017c0b30da21aa211fb15bc87ef3d06624ebdc2a963dc22282281239ae82bd709f37e3c190a4574881ba54466e731cbb747a74fe33ab59d292cd8272480bf0a2e5948094aeee16c1f1b4f31f32cc5b9a98a050addf351bd548382ed2113c5fe44bcd862e6118d9d6a85b57af1cd7ae376695c0af274c82d8062e759b4c32c18e22cd6b671777fcbac8ea3f9df598ac00025555d3284bc80866f273709b66738ef3ef429c6994791e1b5994af2d643da718806e14c8ea2950f883dce766aec6addaf8c3b0ec7937be72cd425f61cd0a274c29f426dc98137b6815e914ec288c927e6d680a70447522840e10440db83e51e7c6c6b8fdc0fc86e97f65528877e9b27ba9b031842c55be285a01f561223cf2770102b52c99a1bc89cb7b6d51252361de271521272855dd7008698c6695283807a56269dcf6785ee923abde26e9a7a4a037402a8ebc337585cc84f7e55545967b6892017deae4913724ca18cc966fc376c196062d7853ef4e258f53e30e088c180178d79dfb429abb8ca8be38c13dfb1858134157d61c5a7874a7b0656a7ca02ace23a94cc4f9a8fd3fd23340e24da5d8523cb2b0f61bd774a99d743640333781e5af61c445c271960eb6984cb8aec4414d2beffe8d965867a852a0d3618c62f0e18180ab721bd1fe3b2539099743273a502d26883aeb1c948306bf85224b594f9b0b7cc9e8951ee7341e4e5e7c102c4c07174a011de9df5a1a21562832cb53cb32820c3ddb691fd4830c624b29a85322f267687889967372d632d82f5add045c5c2a36f53f4f087bd030910200ca099105f00a06b975de24be0dace7787cd57aa0e6bf4f4897e6b6bf4746b548ca9a02beae2999776a85d00b123529d100224e0bac23ea1222401b1d34fd419219dbed6ccda99d36153e4a3dda7ad1c844320486bc81c22cf4e3d88bfebdfd87549d89039511583aaf6183dc5db5ea2bf19145b0b89501b2b381d0442427786d41e42176b86f2ffdfbb197c0f7b1ae2024f1012af9967a45ab38df8d3851a9e66e51a4e61a1c1238164ca113362232e3eed30dad61be62bb22d71e6134ed4bd726905de91a09aacd62329e16749ef7a95e8c80c25ed2a44412591ea9c88602596930085a356a396dad0c87ec914d9a72a6ddda2b1496c56fe83d02e2c5eb3c737da9f56b6ab071a556cc81b8aea2171197ce681f14159a5f8b5461a0f584ae423624f7335cfcba819870f7ee0c81dfd72ae62bd32bb9d5c4157fbba9bbd763f2f717fd6c1b6a94c56ce712c4833ba3f4a8fa3bd88b7049dcbe9db1298a34c25cf5614aa47dcb4e4a848410fc56c8e6de95bb52cfc5b58a9ed8d84bc6f0ad3875c82af16084ef4e17d2104c90c8c1054b8da508e4afbe9ac9faa50a3c18c3f22d6ee0ccf555da940ae04501096a4edde6d718aa1896c0ed3e8afbd7780c01b6ee57aeb219a90ff0bf3a6911c052f2a8c2afd0f0871c340282e98db77fb298e9acaef389295386e847ef0baae76c69e702fd98e43c4271778bfecf2bf3d61d8be058f0c594eaf51e4d17169b864508355b7a805a1f207d7e9edd000e8d71b5c1a7edc6c462c01baef0fb4f9677e6867d3cb59a86d3f9311a4247f65b2bbfd84f15803163c7ebe98b243f75e62504800cff6ee1a285d0c0a008c7f622286ae614e4c0458cc4174077cedcc69d506165480937adc2fa949eef76de88d0cba905baedab76355c48acf01ac8f91744520f4e3c0f1ea7740a42a0bcda06116fb8cec5a7f5e2ac4f348759ab217147aa19a23579903daf96de0ee331a2053be4295a2c9d2e15aeb593f92beadf55b3a93e7b07ad71cdedd85309185950b973f1b35fc57570efe929032f9e9f36cc06bcd11b15e38ba8ecd73790faf6257616d39ec971692637eba91a83af1fd4c24a8bbfe083bdac7f1fed1681f3bb71e5c4d109d6d68aaf7ee431b8082c31b402760c148b8f471724ff7b67e7232c311d004c4123ed1140142447957d592e818a12585b25374a0e2021b0ad870e1655972c64ed0af5c0c8d5a2960fe24433bd497083baf999a3d87e8f6985ccfa8af2491fa1830e8c7d0d502ccca18692243455f2cab9886c8a7810e57ad36c6b3310eee7ee2f7c74ef657caa16389907c4cf46a23bba718a44731516ed7d38f236e97aaa82600e13a04c125895c8ccb82075be9bd457424efe46b2a9083885c4205a459a16fb2042f63201212f8252960794d7e21feade077514809fba043bfa6b6db4f0387186ae9cc91399a08609b69dc78e601b63d27006bb9b5e46d88b3df7258f05fe22203b2cdb153add5ef01a01339590128ab84df50ae39bd6af0d8922a576fba5c45ec2f9eafd9b9b85df023d9df3a0f190738df4abb04f25f0df2219d4204f75e4a44a2d2b0ade0e79f70840b72fc904c51235fc7952bf8225c9cb278192944346a2f13601b2eafd8250c4c319f85749dd9ba06a5a8234d6a48a941fbd8b342fcfdab3ce55e9a612ca8a07a09546a842d35a9a45368316582d1887238a162d801d36fca79cde1a64d945a2d840a351f68106ebec6c2c308e9a2f92447741062da4664a15a03dd29ea2fc9508b9511f282d82da1e40f029c44fcff44dfddd02e85e9ca0a88d32a2603ec80440954afbbcc58e43c74b99f36ce59e9290300975bd6af5e3731ac781ac938845653eacb6a1261f54f2a125cc1ae6c8c2469fafa2500aaaff7333cc9553dde495cf8d11a217922bfb9aa5bd778e35a825a202cfa9cb5cd5ed1a2ee2d3a8892024384d1b9bc40a36e8a0435d68d0f2da4dff4c1e0a87851dcc8ca375206452608827950948a8ac0846b52c0bb4005c545608effceb0646a408d4338107cf7d777ac0de2827bb76a9c0b285cf03226cdfe2bd3b87421a50a22fe281e87a3d8aa73c76309b0156ce2088f81994bca6a370bd746a462e439ec4ad1e34e384c513f6325ed8dd2400f8fbc3bdff75f9a120aa3f1ff97c1229284d16d0f4ef3424df3369d933ea84a9970aa34254d5902466d60edf30a7628d63a1d802873195e794d43fa36117d70a4c1a1e60083c318bb4004a18572115585acaadc980392f38d4c06e41d5070342413015dee054773ac9b65a99efc7aabd829716a73fd01c1e7d3c3e9631c25d5fdcb950c66aead2d9e1690ffcdd83baf16b8b55d5662a4fa64c2a8f8d1d0c050c508d28d3f0617e628d659653c1fe16588e577551398addfcad305940d2583dd736088ab814c94557ad2e2420c94b28c82c5668e4e5e29fcd9a1b8491544fa5b7ac522efdddf20bc47b760e51fc5bcb67daeb20509dcaa3b4d6ef15914eef6b7c30f8bbbbf8050e8fc0b9c439f091577d59352f34ae5d8a30c8d7c7b5090c3408f476ab6e4e858d3431c7d6a19a1b2384d0a9d75ab2036f26feb4638fd2ce2842a0eaa8a87c6ccd09173a50ecc5062cc44426312aefa4c62d0bc7a36b5af02c355c2a9259c118f4a48264df807430176cb9f1909dffaee7cdbaf8ab26fc0fd72f07f6b48fb672116ec5a109443574d27ed01f758152506a2011fc439201f7e21f05a77edaaab59291bde3a07cc6b7c2b501f190cf992ceebc23012abd09f35c831450332cda70beddf69fcdaedc4d00657e83c106b1c25bd90d66e47190140423fdc5d6cf78329ea9ebc7a2542712eb3214697c5f078df868e541564b7c28e4fc83e49eb979b0b31bffb6983f486d5bb349e85b304f0ba6fa970948b0d9278f0dab657ca46362706e6814eee239a8f9f17291ec4230eaed8fed3993839f78740d3670f2a31f12605240b13dbc5d63b19c91698c8af28dba2a9aad525cc5732399dc65c0bf267a73c6af2cc304167171600fec5a57dd81292936a8a126113d769b88e63012cd56b874e3f6e7a9a05d2aa7792ad73ac44cb10d504ee0ae68ae870e012375d39d4d4a0592409abd54f368ed3367acdf7239f778fdd391b90ba8edd9c1f909ad0ee6c9d5366e126706956a67b1a04117fbe052fd1dc52daf93fd5c39334cdecadf9eb065b4cc78d94fd8aadf36cbc0b95f50aed1e10a8c080dd35f8a783bc9909790b3f8bb431763cea0b3b1b9acc4611bedb6e7913cf47654ad470da96cd9fa4a5f7e7ccddaf5a956d5539d868a97b4adb55a3f51215d568a9c8af1de998b52ea8296aa040d39588c64b159f166c8431091217ab8ad571074fe9a9ac47b1afc4b3152873b61b94709c60ec9370f4e6777d5ab2336b03ad7ec2dfbf2f8376e232ae747a8f857ab04bddbbdddbd2f93bb58ccaa8c5e3662faf8625ef9485f5d4612c97ab0ddd123f499e3408834235f6143413d5adeb35b3743de15010036471d83162d1a4c773a9820780351d78498811513354252d6852dca09663cfa35488b0208683390dcdf28ae852ddb95870853602bcd7301835218529e7b9668a9f1d88db740e9ffb1247822f53f754e4d745fe20ddcaca38e53c460106651afac8d1af7a2abd972e8b11233cab3884d126f1c192239ea1016a2d7cc1c41d394fba8f3f2380323f5ab83c293406500f7c5240a089fc2a1ed792ef2a8fb23d2123430501a3a6897246f2debee4f751adf36d74e4dce5416f9c8e245ce853b48cd76e9ff08776f42a6774472cb3c159db879641ef3ba8f65621e6f013b5447ead2b2e5018f48e0c75272f59a0b2291d62f48c57807e661d55ac3670016de598417fc120616f340ce34c94f78c58a014b52ef7a060211a4717fc90dc8826b787d2b8c7ae986612dc08696497e8349a8b1a30bd16bb6568ed3727490438e2696c8c807db01d7a80468632bff0104ec337d28b60ba2606b8b247445f7366866312cf9f8619de93e16a59bcc1f100517d92a506a7f48b114ccd9c9b33ee914ca60c5675975a648ae6584a7fd08031815ee5e81a9968b071ac7f15d0a9c91a882ebcdf769c65f474b0c6ce53eb9f229b66d3c25ae9ab01db63012f133a06cd40536e8759ab420c4134c2015789b8cc75b006c758c6021ff25f93580710a2a26050fb0564a75b0be6b4fa500fb156dab25f2ce4668b66ac32644e5d64d9df7ce1e0a54565935bb05fee44b72caa82fd13401309b12949b3f36c007a273fc6091c8ee79cb74c40f709acc577a3fc6dfc69efac8f88831d3eea3927c1bbf4934379142f0e71e105f9676c64e8010a728637527e6ec8c2e7b8e9d91e21990b9f5d8cf084de384973175f604564ada603c30118427af3ae45ab9e2f8ce27a310001585981a4038e70858196cb80fa56aba626df9ee60a5389da75377b2ac3670d844462eb2c1faf6e8dad29815e2fcbd86d009206580b63bcd6516093ad7fd85318ced1863511e226a5d3eac7445d6def980355248d14080c81e6773432b0ea6e376350f13230a364a1112f39dc92ce03f08346d3399a046f55c32bdd76c47113dd9cd446aedbdf7eed01eb2810a91381ada7f179be045cf77c41c6108e380dccbbe8a90701bed76be3f833aa31bde878c13c4c07a262be8a600ce3082ec50a466c4616b509b5c2490062a7b2135f1636cf35375ac46fed211ee7351facb968665f72ee521106a2dc9047c968b421946b4281e6d5a5320a7697427f3ec24807f734f1470dfd591856d3dcc7c61cf0368338e494f9a9300d459718365d5b76172707b213bcf456263321a2ed3d7d46c1d17ac8d3c18a372476ded9d9521a9aa5eeb622aa2b3a7e4bdbccbc65663e58d4cd20120e888072be42d2b2dd43a05da2ed0225149c360342a14e640daa698e5629440d0e5932520fcb330a1153a4a5f1ed0b9b60f9d190ef18c49ff35f0c648e84d8b935e1822272981761e07d81c8c47e3dc9d9d780b34b815c71c8392ae99d4cc96baf5cf972bc7376c9249067d9fc4d09a0704e9b2f3ad97484f7d7520eb809211c9b3c720f2a8d2b5b5f4e136979adbc0234457c98a2f1ef4cbcbaa6dd253f2b3663fbd97c99944e8b8573bf21cb9ef31e56511bb831acb60b98d1c30227cb329438bb73d452dfef61e4fe971d1de33731c39e80882e0fe95fdfc23dfe9e73a0252667714e15b1d420690818512d2657d137709976b54320c1010cf33a8d849ca3d8ecf842c78e1f1dd8f19f7799ba0c4f238516a6e10094c292469a68ee54b899d864d2eb9819e0f6e8583e234c17c75fa9089d191413ecb7348b77d4d102beb0fedefd70354203ea75f77d06cd616b117b237fe835ee2ad8c62797dbddffc5c829f86550ad3f444391ed10960207f983d45f703de919f537190691e1a8a8bf8594bfe7287e04f7e771bb60f54949547a89d7a2603e4a02d6764d5aa00517e1f54ffdac49ed9e1eb945468ab46cdce4e38b7a9fc006a6160cd45db536c00dedc6fd623f857d776a411bc0da9faa94b2e79984a34ec85778ae4bcb707e4ebf7dc64c3b795592ae1f893f35b4011eb2adab320c4d6dbefe19aac861c8f7122b56b65d874b8adedb00216041280a539c6997b9a4acbae25d16baa8526ca9fe20a8df11645ec1e857889f4267d9c2bda2dd065824c0f89824b3a714343e0c3e540941b9e5d49909267c41938322d64b4307b8ebe99fc58acfc1d90a47813425f13ecafbade6ca125c8876153718e093d408eecc2dc959a36abd756d95d62fe6c9cd9ed50ea2c613814ec3562f18b6aa0340b5b8bac706f0b1b2116aed5241caa1e7bfbc75c9757ca0608766205074ad04f6a9647f60b37ab0fc9403d632952bfe4862db5a3c55fd8db34ef3d189d351263210b6db81df58c5cb91272590a847fd7777ba12ef5a37bc2bf28123638ea496750e855130ca6dd679ed10c876c300adcff11740f7a5c55fc9882c7a3b608ae9e5326dbbc0ff9b8472fa7136ad79a0247a300f711a235c2828f60d638882066848b137a4b53cf91e98b57c83f2173891704ec7762135e6cbd837638ae5c8ea1165d934560045e84100f2ee3520be2cec9fb18e2b7923f52517a466a2f46993c51df39f31765acce26d656a6918d783582ba6ffebfa3e52168218678b04a208fe341d49bec239e4cd19713b746417a858b5ed7d244241a982141f8e7af0d63dc13d2ed9f0acbe1016618ee80104a11b68ceb6e6a74ca2ee836d8eb7e965e1a10125502b7378946a09c9e38f0ac273ed22aa800e31d29cde41939ef081a4e258acfeef94bd24570b2375527ae706c1cfaeca94be73ae6bf148dd3ed483cde03133e44d42319d9483144ec2a3e622dc53d699d2b387b8adec6f8a4e9a716fe7d9faf378d70940af7e49b07ee19d2e6c175af1b44a4c3c3bd0f5fb12df1bd6ab0dc08e7bed02853836ebf714e20ec704f323e08f61a0dcbac4e2b88233d6009913c40d35dcc3872b0768a7ee3f3d6480ef3d4545167999f03a07ca5dd91b8d3b283a735348640b7c28bbc4ee3e98cea5d9c5fb1aeebabfef749a71df8cfe45c16094d337e2fa6500d3cb2f9c607e0f2da50dd8f2bd388d4fdf37e7cd173d5036465c708cffae088b88885d1c2242a309f6ea7aec41d61dba088f0a2e8dd4c0b20eaf9bf5a6adab41351c352197471823960dadd1aff9659129d9f88c31bce15836a0d6a1a44734ecc37831a34e360870c22322a83436bfed5abb2b1c422d26f7f142f552d1888afc2e9e7be8bd3150d4edd81d295374431ac7edcfb9f3ac47d23d8c997ea6263ebc6b204ef774029a88f99a3f5187ed70c5791d948012a97d91d7c127f36e331bb11f9010de96e45176092c85d183d83570cdd624388349fae564ab9196277986469b8b4bbd3ad3cc819282097764340a0e641dad93f5ca04a8eb3ddd9e88f97e1a4b6f5dcbba37d9951946d07531c039f23b4e86d3e6b688f1af20625fb9d8eea6a3205dd8850e24db354c716844c1a847368a0352f0186c474b8d744c1c1ec04e0fa2af5cdb00d4c5b1bc4e1381299843fb9dc3b7395cd11138597e062f4431c595d53299504b696b4fde937cf85f86ba639f5424f0cf322654dc8c4df4a578964b8ba81701e534e2d008be300d8886d5d611bca420d321552f9556c78c074446b8139a2d7e7b5119bc2dea23d3bc36edd21e0402e8e273216b5bf80959c2828d8f55edb62f45e86e2bb2e30f5b08a0bdf1b70599cbaacdffafcc7e6ab437a24e9ef68da47fb5a3cabcb69536eb76e703d83ba254f4e010e8b3708a91ffbb20f6f3441740170eb9ae46a87a42f2d5bc851ea7fb38ccc3444da8b475a2d240978358125aa5da59223b66e04a4898c096f23938565743d5681f2f7f0e4440870681240f8f73f8dd793a6e9dc1bb09f329bfe7af16b22c53cbf5a44761c086f9c9f4acff40a2d6cfd0568669f704c4eaece984afc204a8b866e9d9476d84b1181f9043a5d256045c1a62c4f890a66146cddc2cc98a3126935ffdb03a65079faae8f7dd3819fd330972c6f5e2b231ed4a56567b347edd20cf4e29621475fe8ee1a651c08a6e696bedea0e24be403ef20054c959fc70b7960a910e5aa2fb9274fab96beb8d909e00b5c09f55b1a189a200595debaffb2cb8a93f44c35fadff20415168497c7cb5ce199189eb78e0337411e80fff6b9d7220bca14960c3968c5200791c44709a84c3e0fc33b747d359ebc4a0d23e93e200a684de63dc2ad4ba18edd3ce91a244d74c67bbf07d9b66872cf4dbaa5d73d48c2afa52286bbc37a41eb1b04957fe7e368ff3f2b400f284286c6316d037803dfa38fd1d9e99098d7d31eaedc3be4efc9ac137b0c07ca2e8647f11650996692aaa13064a340055d4a442199bfbd30420e4fac470a676898e1bc5179da0e090df35f50d0e1105561feea1cd4e70b164fe578e5d3281d649bcad181ca488c57f52462c475846f9d0caf25fe8ebd0cdb75a7f80d59b32d9858f99d371ddab92929211227506d56467f8f80b1aef68306409d2b4df61dfd91a958b87251d159e3c64621dbbdf697e1ed5aa9217cba28b99d642b447027b6f39a4d5690759030d65807c32a579142e8ecfa88d3537bd77f102f2f8e8b4f579603608c9e18bbb6bfd96ad8f4c3c8a2c41f304bcf97652ac2522fdee9f639827f0f1b8b66bcd9be1138cd79ad09a88467697f73dce6a913fb7b6732b8768e97a448b59cda85c2b9a61b2d8864406208c59a87fc603dc0787b9310cc01750e9419aa857f2eb4331535995f3b602aeb7839a70781b7546fe69c96c68a41337aa38afeaf4b1103285e5a8b6a7c850f666a0054ad8e9f09e1b76eed856cd69612bad9e83597b8c686a38281d7f16de59e6fe9986c392eb0c7346078371906bf948120148432c09588b7104c094e3c93c0eac6598c1222804e271b77d61b48b2d578bd97f9a223c491fd22f09baa8a49fa1c172da453fba5c6c32aa2b104696e49b83f4a5355526d416253013679f40cdf156948d63b99cd46ff83cc1976f26d249c6ad970e2e84afb93723520c379fa801b1bd47280e861343b41e7bb945ebf1958cbe4cbe8d709cc06b5da414632ad78f30d5df6cc6735c1e88b6474cd60fa87922fbaf79003f0db09dd6aa9b95d1de947b7ccc8f0227ddc23a6d13eb5b621191d6f8347fe5c5416281790837b73b203a8be8c9dc8554707c5538e1685c25ede7b305b821889aa37f03429f6087621d4dd768e94a7b7e01fdef00d86261220a16a63c8a415870191afe9b5e83ef926efbe9f6ef5c24f999599beb76545342d0f2d58adf2b42b61a553574bcf15a4d9918bc612c69580c19f67d7dc72820ce01f129811408c5d188c2eeab1356fd1e215ad5441f7ee4c3c86ec91d74a246b9be1955042010f0643943cb052d8909bfa7b3ef556b0757ee6c54dace72fb7175769ca79dc32adb8c653fb3c68e4cd899cfec49a6ef8affbabde705ba6d43ce374ade9a95909510e85b487b0d2bc39e5d5226905cb7b7f30a81a7f22e40a758f00361a12b778f4965545118a3d9669f0c970f8815813ab54194070bbd03c83482544cd0bb2c4b70260654f5e9c3a00216724169bf40ca3fc4963d3e4de54d93546892ff4323be43c031907381e3ddcf46c2610bb05bf7e7a61460b83863fcfc3ea96ba920925c73156f67cf916e98b3c281962982edde930979d2b06c1331ae544fc16a715a0af3302e5267acc1a0c3be6d7f8dbe4edd3a64572ef85e0c879bcf4bab222606eaab0c3bc3ff2475257842c4d601e3dbf3ec45ff9b20b1e392111b3ccadb6ac20fe1f7424c6203340d9a08631f9a4ce463bd1adc94a4fea3c675fed051a2f8c7457e06e8fd787108f35fa1c1db8bc6a84dca1484f0cbaa07bd2dc7acf0005918561c40bdbf686843f4a74c067a7a432fbca61bca642119fbc9f03228205f25dc29df7787ff2e0881315aec457d00439e456791d98efecedff15692d83451abc8e7474a17a2f7e45992b2e8ddd6cb88f1c64f09ab0e9894e6e3954f7c88209984f4e8568cc9a4f50384c9604d03671282f57940217dc93920e7bb79520d0ed1bb63a3f300752ba8903b58bc5b04200059429a0de627383b5a091a0bf4993e5d08fbaa95d82833680813ba4dc68619160a7baed58fc1793fd2fdedb4fca73f2f983fe8a0bf6374012d35b07b7e8a08cca52e1aa8eaa44b019b38b5e81f4cda65c49e8824116e4670ae391cbbfba6d251c168bea0b79a2920ea2c3a99cd3b481a89752b36bf4ed837aef1819d0229e0f2429b5b780bc9cb506dc2f1d9ac3ee0852bc13ea6f0140677ee6063f66d8db18a645d5f7a8aba6381411e119cda48d700db73ee0a19f3e3cd857b15d7a5523d132cae293d3f248c1795db57b8a37dc9c078595546e2824884cf29c9939b859670399b3677d31046791c0516f91bbc639fd50a4846f8c90acde8ca204dc2f8801273ee82cfaa1b736ce46f80a9ff8a34b1cb1f7b4a62678ae375ddc26518d6072736a03bc3601077ab869441001a6eb5714b31edf7f6d235d5696b93bca11b3b3b094b716bcc5efe56222579c2480dcfd3325eb08305b20eed9fa01e596bfe1c8f74465b8bd798b3f0b0a3fed134e1a8715f6faa364725248bdd0843a37e0d0d1630488b60371968e34c03b67b9ceb2a8b84aa300028e1557c3b2d525029ebb4ec3a9df174e507f3b1f1c3fa637721c9a523d0fc51d45c5b42bff3f32b1a9c122fb239f17442f472805d3b4c15526fd58eb64b9b4c3f0e0cbcdbb42ec9f9f5691135cf2866e001d60f8c0ce2ca0b3e0eedde3f9bd2753d8343e70b2edec66c0bcb79a1af6678b1483244b56059d9b0bb000ce85c160d20babb10f1ba06e4c4d29e3f843d93067e972d127984c88ea3d94a7cfc7ba6a7cfeb5f6a718005198a0542426921014bcefc49aa521cc38106c05ec3f820bed5bd86af587a6a837d262f8585831fcd93b08089655f7feec0379c628401d4fc84cc323e1d51766596dd77754e1fef9e262bc85a7c1dbe188353431bf77a26a4f6878854f2c389a0d40eb0e6ce157761c180ddf8ecb95ab3cbedf862be60e4830634bec1fc2e549cf7d98066d01bcf7fdc7785402b49fac85771b01c09ff926be8a22ff8f134090d01933d0538f080f583df6505198a542915e2cea08d5784c6145499687c3c511bca17085454ce3763143c4320d3284047c4019c445b1b35f06d5d4ac1aaa8ddaf709cac176c5ff3f6a06b90df22e2b4fa9b0f3ee62dd45d3ce8f032df8aa025c7d696fc695ef091cbf9045692b71a056e47e58837e77e07af6dcf1986f0cec4815c048c0de291aa2125a9576648b6ed9a21606abc7faeeed9e3e805c8ba0f598ec486b4f6fa1195fda8134b0d836f18fce857de892380fe1923908a840eb73062fe5a4e660e5bca8f70e4ba6fd6beda158ab686b4e206ee24bb79075b797ffffccc44c7bef74980831aee490513a73515b0647bffc1c7829d4958328b418767bc4c6d4246b8e04117f04a261f179959b07e9718ca0bec72d6d7ae1fd60ecf653b53b1007bf4642b67aace194b4dea7eb3212a3e20200c65e417e784c21786426c5d7d0d25241d991018e7653330d2005c0ff237da49d216c0c3832791fa71c0276ba23edaaed66281edc6086452b403609e6510efb7f303aa5fe5eaf5578f51751aad09727839700678c5de19ba2373279bf200b830b260ac04ce30435125630af0cd19de56596994e55ea4d3f77570950928908ba94929c726fcefc431a33dcc349201771009c54e983cd2984c4cc09e3d3469133b35690e01f698b6d9567e2e8082d74fea838344717cf58951ae8003cb74849985dd0a7a53167db673fbd4d1404201173fe2fb0a01e88eb32f57ae28b01ad2fe954c6d6421aaae983f2bf09af296ef66661dc578648d83df9721758f16f147e96aaa115d70959b3bd32006805298aab2df99536df46bd830c6c414a2d517de0f0ea3bef7d336383fee8cbe8fa21d4b4e8ef89cdac3964ebd7e1a179855ec7c936c3e38b9120d74153348b53dcb45d1928ad356ed87b2de87937c83b180d9d908dad5688da5b8e636e746405e5b7d601a5bfe2fc3a8bf41bab97cebbabd4725c3a56c0dffd52727c02240d1f9bb330c85a939f0b6a0a9f704dd5cc271f0e7f57e0d92429737d1161cb6e6b9e5341d7695c47cfb3fa5e6f91f0f05371b81559b069c51089af04c3e89ec53d38b7ca241c8902df785cb54bcbcd1742f6a6f42073c49fc46558b991e25f803c3fc0c9e6c69d4155fb50d412dade9db97d4fe8fb1c198f4c718433cb0bdcdc1e0d7a557b9f04f0081e05c05dfabc2ab2775bd0e6bc23a561f22bfd6fa9e6af74416f7dad62f8e271fe9145f514dbf0a2a6efc22b4d6e21b232491e2e0d2facff4545fb9c4411b6d803eca32848ed64a98a08ed8547527647226b6492b5a23f63da87b910578125dcd095e7b94e94151f02049aa2b8f96f150950c5ad1576a762b70443d87b87fc784edcce361b6416b2d332172ec4ff19b6c30da432e611b7950f34043b6c664685a632c610e61f7aeb33714bdde7a09d5e33896fa1a5ac5feffa8e8b78dd472c0caae69af698679b84800e6eb0e3831fd7d224d8f60e24c5153c0ba8a38ed052c64d3db67ba983363ef774bc82ff6037559f53f30a0830f917b445dda1a8738bcabfcead133cdec5068a6891837c83a3a08afd8c7cb6bde4ded7a0d49ce5c32d1c8a585200b37c7187903f792698ae6126f9c9871de5e95a9bd20ca0f1e2ba3cf43021b0266314b87f951a1f7433a3ceca1b545f5d90d422045c3cb3550a8dbe77bdbd6d00a7f66eadde33a96af8c84874a66a6840a28a53b539951893ade1500d108343738add97004f069d80e26a86a7cf216deeaeccf651e690a4f03b437f2c25ba30ed7825a3a64ca0ca380f60ee311462a8b6d541014265f01a87f83d0caacc7e4a8072fed55290a98561440cf9c3e47e284feb623d09fdd1ecd66b7edf7537fdcbe4a5e66154fb03a7d5b0c423faf2f1b60eccb396814d6921cd9ad30d3d776e3f01480d68005e300b6f2aee1242319479136cf838104bb0a2a0db9f0e5c8c7252b9b0260651e0bbec32b73e7941dfb6f4a175c7f45baf8fa37881df1c63783874d81fbe4ba8cefaf749a6e65d426841e471a16df30be651e5c61b4d748816c0754f61c539b4408e219f4eaa2857261751e1e4d23efaee9e290230d5f590d9a9cbd69bd4b4973ac16a4bbd5daab4883c649d0d663ed56a756d9402bd0e867b3bac907adeae972694452dfdc39710bed96e7cfd7656d2f373b8e3515180b83e21db08a57646c85684a9797cf85fc07ad1f4ec949a33f22cfb8d910f406f5fad966928e9ff573fc7dbba68a23cc933ebb92fbb3e5734b70e8d58c6b9ea0ee696066135125590a30f60675d7b5c89123b73c670a36152d4fffc1afe853766c9326d38890a72c136f83c8efa3d17242982db8775c309d6bb9d946cba6720f9c5e287f44a9a46b8e553eb8284aa51faba95f13418811f50c803586523e9571c0707c1e21d16586263e5ad1abca02781ec2ed97a5464bc8f8c139743037458c65388b9dce6fb44af736e5074be93eb7835896b049874803efcaf94db06e45d7c1375a39486b11c5e9ade762c116c75e6836d0f8c3c1592cac62b09d12f7cc405e0a32cbca0826cace70a0c10eba046864e0199ff930403af56a4161eeebd776a3cbad1e14759337d030e563481a47c010f61c4d9dc970ff7eda4564673c577198cf4bede3fbda365918f43fc1cf58776d6ddf947670a406bd9421d8d067c98882550e5c7b2aaa5530ef6a7a8430c944ad6f2d604eb3cb1e5c40b67146684f8441e83fa4671eea8443b86edb8318d3032c81383d3de1b815b7a0277a536b53a909242501a6272094049c3a815025205d02841ed8f662eb104d4330b0f7134e33cfc0ac29ed01dbea4990300e527b50ec6f0715a1ce49982c8b5b114741f5fe1d1d7773bee92c3bb0ed185c36043738e50c8d32b91a7fa0f7fb0a089f5404d00863a6cc902dd61b9911c7edb7848df62d9ef459aa55e5a5b47c77c3b607681a7cb713b7336c261ef7da8a8b214537dff4be7eb9b0c796d8b2b3cdbcf15edb66a0dbb0b8adee102b0240f5367cad3498039e376e7645b8efc7c51243c0c0498b858d074e63dde1c062d189d0ac82745d54074e5e5fafadf2ffc3a3597598dfe1ae2cca5235378a37a9f4b63a955edb41afaae29de5bdf9a9dfe2894aa64adafb8e8735b8d81f8e13e1f759faa32657f6796521ea39ff125b133b4974a6e0e60e1fe6eab9f8bac7681bf1ac5bb06997c62b768d5d12380011d04480128bc955268f3f7a27eb21d334280a73fef25411bc84b58229e26ec95e00a6590b329253940bd0af00e8f541989c5778154bbd5e1bf3fb817b94f32927c1cdc5b74c289ef9735e63e063f5659900399e1b52e699352bbfc5d295dc1167307b56da082df3068ab56c2db7aef020fb5232f40e74251e66b4dc49282238efba0569f3fff509ce63c4b0221be7b17c106cbaf9d711d4304cd33b73827f4fbe73de65edafb9528a75fca330eca2cd28a230df671a13535113238832096f049d2d93c59f45344c3f9c0e477a81bdd7f550e6aab94ed4945708b1b54a0173d14ec50c73566e9e92f5e9c949a3816466a47b4cb23cfa9f0f957ac8c7462292823f833160e97f43da91f5df2d693443d6493b845e81cffd1b2335f0a6bd940c7139a3a507966a5b0ac91b40b64408bc2c72aa172c1735b58596469e9adab628957ea391c1d8a488ece31935f87b9cef9969f88c5011b23af2f73f1b07dea4ab44c9105e49eb116840f86ccdc1db5a2add1db04765b7f396258e300f2e3a0836f99f0110ced856f91e949f70cbc911f59b43fb204bf7fb0df18120c9e83fb5689c97f771f39dfd7f1bd899f4699c51c976ae2df39018c801a2577864b5c286eff350466809b53a86a0b275722b8311faa4b72f475457bdd26e5ed87f5ed88bc993765d330436eac5f28a9182605a8920c0a4ffaeed01f18882ded867836c57be74d3c1cf3933e4d1cf7990572b33af07cb9bdeeff22e3054566a3dc9499d3643ce18e846f881d086364f4dec799d2c94aff758c148f070f5c6b9de0ae3c9aec9950b0ae9a19ed7b612ea1d70c905df5f4ad7b61a2310f0029c060d96d30a3ff7587d961a237a18a0c2bd9740b9e0ce904cd00531658d12305081b27473254bcc73031ba9bba2aab97b758c0636edcd0dec2e28a3abc42c376324aeaf816f5bd2dbeeb7019c0171cc66e5ce6c91e3b1ac7a6ef170a9a7587b772b699785d1248689b03ad0b619f837b5926614cacd6bc83165a951310aa2372c88a2d5445ebfd0134ccedb904bd483932c10b6597cf0caacd78c3aae3a93f7f40c0ce2c203eb2234c7b402e1d1f4c09d8381b384355b427d1d6448604d86a96c822b1c2c508132d17aebe016de75e3cd29d8abd69e1893534deba5f645b00665713a976cf5d790f4d2a3073b914ef32971b362e66c6d2b468b39acc4f79c2a85a5b5da4065981356fdc506420fbbfc122f8103ad27d1b0386e7126de5fb299a0a8df5f725f016b8210bdb9ba6eff6a8d760b892d478d23399a9813b9dbd4b95e14afef41fa8be1262128eb4b176c602c9c036059c16a8d1f5f74cf28b2ec95f2fd7caf8e8a6bfbd6357615ac0aaf958a3d79773833d6ad61cb1c938de87ba18badb8456f6c4532a4b62888bce4039d2a4dda301101a69c6d2dddbfe7aecd83c3b193fce5b52f925a04bfbc68ea21513d98b8e9926ab4642dd4714d69ebb0839ee919036c4869eaeb6227dbcd28a75d695c6e74977a3dd415bf5f9ca87992b6f77e4e515e4a96c01bddf1bf0a37bbbcfa5d4d8559f6cc20e2e93aeb306b2b65d8024f725c5556f6f2d21a534a77aaee6cb214a01327364a10e271a5ef7f16b7fecb105c8fbd10c92ac642cd67981c8d2c83f5b6f8755a39bde893138a66c16d9e68129fedb70f17181cea252ad8747b81654c654b7f3252b599d1ca302c55acb1de005eb424504828cd16d052a5052f09bd658674f5e92ae75955717f5809a082da19338a8f90803f0665a7d5d855fc011dd9eda4c0e9494f36675e62026dd5f6099d91481ef86a4ef8cc15a84578583af5a4bbd29604f676631ad0bc5c0000c91bb49213416442624507c4d0a27c133ed05154b09a4b7b49675621c973c9a054bd5a6b29da527d3e66849aaa4d28e63baa887b55d65492ffe2653785dee793b0389380c6a7b25f9ca0691b315c8354f3dc2958d78478f2c341ae0cfadc8dd211fea5c3ae7aa8d7efb76f442a1586e99e1c3b22272d1dd41cca12d8f1756754952614a42be57d0820489e00bfa16edd028d78c58f1a79fd134060c056f0bf35cb48ecf00d058514d8dac617911b30e532d4c2f7b5caee6aee33111bab83858d0388000dff1e282dc2f2ff0ee473e16199c05d0690b910c5937a7f99d5dac70151aa21a5d66ced85cb50e9280a39a41fa82180738d2f593360a7b01bd724b9bd782bab1c1524e7e6878a4ed9380fb0e0e8f0a5f070aa3c9406b081caf347996cbc4be6062bbe762fc2673b399eb95942d29bf6719dde4b2ed3ebb189dcb22b47805fbf7859d5222719fb9d99463b8aedfb49ec12988a00d0d69e530d7c49ed6041a3212e96f6d2a0f6226478c4126ab9dead9ea4c5b61ba4cecdaa9bb0b4fca4e4ec6af9194afd3c986f8cc908d61d63d92021c45d55ef84c3ae8301a83c37d12ac008abaa0adf09067cb69a72d479da960503fd599cf9c425df3748d1d0c5901b75a96d50a03b42229758edd4bb1ee8b2c52c977ba13e2fa9ff25f79b59ce17c87909cc561b65650a085402d3c98af3577e5b6d35f3fbbf68ed9e33b4bf8c6afbd99bdfcc7a2d19fbdfb6bed6988e2a1cf3e4c2df91cd947f8ec8f0a0bdf4282c6ec86af29063282714a8e50efd15429d3713a8f88db928ecbc997658588f6d3aa01be3c2e34478b0ccf6d281cee6c41276126cb8254a11ff5009b3a7dd22e1f2a42f94820efe75f3ca4d6807ff977b1f898ab59b67d79fd8ba011932b9973a9414ec704b69fff4c868e5719c42eeec930f5f77895fb4c08231e0fa64f4c2bf4630547891a4be6633fea8cc610c880159244bd772ddcb6682b3b9e630c5817838dbfea7bd6232a24aeaec42319446b57ccf65c9c846907ee5e5007d68bb141c6f1454d41f1c5cdb141de3bcd66869e01e3578338d2f23f4dcaee31fab013f40b3f67ae23a616483cf6c78d6dad9b690fcfd518ba36bcd916777f3de4e43db6d98adcf89c0f106fa1596ad967f3d434ec220b900952040afce7e187b57f5806c23466494bc87e3f9a22f90e8ea5f7316f0437e150e76f509e18a9ca23e5fce71a72139ee5573a0283e79553a1116248721c9805d99fc262057f8b551f51a611c374a006039bc931ac5f10ec1d1c0bee600fbfd50c66657479f42cd0fa6c3391c27d82005afc5c99018bf690db041442e6414df1c13c7c56704759040d0533fb120676bc60079bdb56b8f2ad617bc3d2ff1043279fabff3a1c8fa1266dfc1ab309559b66ebf51912533d2d0c317f6a3eb9db371ca66518e1d13a65842ccf3fc3f0a7ace56bfeefaa24a8341126edb88b4d170d4e732afe81eab64346ffe9131706b93e908614d9f18cfd6595592d1cc8d70ce79e205ac5986772c6a227e63ba74114b860cf13fbe4cc284a88d6063c02e582f204bd619a33f6ac6e684a8b2c845cc9199951a0eeb064bf08ba82fe9b13d34194da04b48b8803b9e70b05e9e8b5ea016588592a41498a284736b0f84c5a11a2c4303891552374c4b8e50084d1d5387975fd3e5a863e7800b732df1f4019a99fb55e6e1443b68aea3a62ae599d7285f648755889bbb1d8f3e9a22a4166db5c92487623cee59caab7770b8816f7e2d0e968667ac0d408fa44fa67eaa67c15c3cc9c72b90555167d90689f7ece445dee70101a566313ae5e56cd3a1a62694a3a9cb99091b40475f42bf02d1a0f91ca35876ef5bcca40ed6d748326ea3460f44f1f8f024e689c527552f8f1ab9316b04f9020b733fc6c4af8fcc6e183e746398b0126b65de52abdf6246f114460778a7c7a746bc4f4fb37ef9335aaa73a734e83ab97dbb166bf794ba5b26fca086903a6e2b4a182bf85717ef7295682d0865b647cf9d50523cd432a54895340fa4cd7366d4e043885aced3151c83a152ebfddbae16531dc34315cc0933a290f2dca9410c993b4a55eb923927c904f330538090abbb0e61b296bbb0193b647c76a7c71cd5655ec351bbd36a0d88c4b559056d5e46e6eb8db3521286007923a037296876f060f8b11b4243215bcdc5b3237ccececa4e5ee55b9aab4bd182b7a778fc21bdef0476068ce6e010f8fe7e1c9ab3b95dc88f4270e7992b39b399d30fa155dcb3c4e2007df65f132a9e0bd2b0d294c1c954d2821e0c64f4979392d850f7978171bcf991ff3c2e8f13301d592a1cc0191adfed98018796f987f0bad5a479e91641f8eb78dbafa6cbb0f6f46aac78608cc83e66f60dc6980f535db290606fc698417015742d36331198d54f48440881f404f24a8f840aa17478983580cf47e4ded987868ccf75cdee293d2546df683ab1d3dfe7cb427ad310bb1631bcf4eaae2832ed7bc08149e9bdf9b445ddb9e60ed51a9fed4d7b174a47051de8da15a91d6fa6fa11a0dab57917aa2c5dda70bad8c6214192ac35a17f56e626409413f9d85373018b82d004d6f615740199a82cd0b5959130790a9faf310dfd40f7393604f4335f9dc83a779292354565123afe452f3452a430762b5be26817ba311087521337a18292df25920c51705fbf28d77717a55818a2568400264a439c7fef553cf8f8963b9cc2528ace84f48209a5e5227e189cd2e40e424c113e9bcb60b9c9f8cc5210df4c39172b1997936d2a71be4c893e277dbde57e17599ada580f17556d5c090c2bd743c89d875d2ec3710b43c4a76bdb0881e1cbf5206dc182c1302cf97765d72b0f3aea5eb9802094ad14b3ea6d65ca2e0848a145b6d5ed44996d92d9b865ff2aef6656c625c51a8c85b1abe88a7454578211bde51991116ada408a41edbfd4598a15fca8b9780b1db44d930c94a7d3ff8c98a1af9d221daa3fca5634ce645c8f5e68dcc51502cf00bebd7fe7a7fc4a9b8b43236aa0bd03f5745c3044792773e51990f393ee2baf6bc8faf22cfadc76492f39c20980d58de7e062fc7fadc18b2b5e60a560e24a69d1f3d8d0811e252ba6bbc45f6c6552f7682c95eaf1594cb1aa470c79296e55a3a2629d873409ae4629e097c24f7c7efb265d9e9108c2f508af20b1c3eca09dd09f1efb78d57ac03674a588088dbbbfab8ca2becf11af57bea562e37aacaba1bc2182d8b8fb9f601819f7a731c8059a541ad6c9f26794aeabe590fc551b426da1f822512cfc85100c9462a732e9b427aa2da09f7d377d06ab61766685cd6604909ea07b459033f403a5545123b4126b3b2ce127c67ad916b240b79d7549d4d4bb255f1ec944d7334db9bd7c391d3388bd56ab57d3bd82a3580fe544ef042a105d70e204471b5d51afc9371a2987421418c770c6148978fff1b07842a87f5dbbc751563fd48582bb1a5497f77777e776bf7ff96783f6d5826a98c89b9bb38ae489f31ca7e43bed43b02347275f209d9d558174779cc8ca7a2ad14ba9a2f266be9c2acbaba7893b47255e8746b5f85bfeb53dad9f2cc77c88253f0f7ea61e10dccbd04376021b9d2f6c3d7a91a52d5143439f9facc8c15b5c446eec27c7d48c952ebe733033ec0454ac0e8243811d08fb14a2409d4caa50dbed581468c52332a2ee667f8295c3751aaac8589afe2137c04a1dd5925bf209bab95bc41bd654bcc21b14a92c8b910053019b2ded8b7e4c8c62210c7821cb3c2848f1f8fc9018f41daa75fd6d24af657f759de7613cc0fcea483c39cf2fe719f314a2da4f74abac1d96c309efb9b06302c339b86fe5114f7f023ec18de84010cee0662a142c17a76e04da800aaede345ebdc06ba329cbd93fb6edc002d05f54aff2f98bbf2973288aedc5fe79c57efaeb3f580b391f7ab30370032400f320ab28a122d0ad82a54db988439d5a15697596a28f7d4ca441052de328ee638ac25c0b8048f7181b1813073dacdd7f8406a865c6dec299243a77e64d1a53d5f4503d0dc958b45dfbe7cc232a36f734ebfbd0a193eb556267c5fd13e1ef21f21c9975ad3d7e3917316b7aa4203ed0c61cbec8a1c081263bff7b57bde5cb1ed548088a52efd578f72ba26496047e6896459fa39ce04766a92ca2e19dc2b42c92934e4fc05e2e9b4a71faedc30300ba4e50c872a02fff31d9f5be901f1c7c4ae5190237c2cb29b1da62eff892ae0bcafb6078e3a3a4d340e2226d1a4262a1300a0373895a6738ee6e283103ac3479d6a83ba3aa454cae3f2834821aade458a259fdfa04034127dc8846d8a89ac85de7ae547571fb5806bd3e05ee24914157992e4cb069b29075c5451b15cddaa8a4ab2a5f4f622e6692e261de01621c48c3e61b74cec0a8df4870c0d101ce2b97a48d03e8fa256b16f906550b7397a7d0b11b10f703d44367d181d5cd5f5367793244778e8660c0bea399da6b329d2f9a3b4927ba4c4b7eaea94a14ad404c343dd66baa4ab734e034990a98abdcaeda1dc28cbbbe069c54cfad48606d3dab6f22004e8252ffae786f9db810daf3efaab83cc2355d4d790701b3056c8c0408ad94a62acc47d5675c19afeca84dff8224f4e9fc975041c74665aaf540e3e187aa4466d463afa5106431cfa681251fbc9c4bb419f00cca686ee386045c96ca1f17a8b6d4227cb1c25fd6908c2a5c70f8e3b20639c70510bb6436696b828d5e0c6d70a23af712680c145800e422cb3d3f7cb854d244040697e6b717d4a220be607ae8f3b09ab0e4c0845712a280f948d1c4a92e0e9b7d1c67bc632b9aa8663a04263671fee5cf2133696ee6b67929666f1d57bfeb687712dc67d60a6d8a54678e5913f987d8b500b8f39f5cbc20593794b0d16888431757da3712cac467eea7f8fbd90d03f0a030e9bc2b6db0688f85fcee9e710ad82ad54bc73886d16a865d46b6c2e341c7e1ae6eec2e98c5191ec356a6c9eee3d74263d946cd0069abb4d5776dc3a2de681c79ad132a363e93f5bd2e5d0af7c79340b6f304a3dc210158b1bb47e1e2b7dac620cdd98e5134e535055c5e8c3fb14f42b04db53c0bdb6502bef14438e56c49c536fcb528684ddac13b06e94945d67d88a2c038450f35a04187818baea4623d995cee7eba2353fe3efba57fa67e8bc2528eb72735abc5294c1439a3a4ef94f2f94b542412bad8c658785707b341173bc47551e0b29ad67d80ce0df46a5d536cc8b94d818e3a20e37395a372713f1ab91bb857510a1b227f1f10f60ee255bb71a73d873d9b17c56744397182c6e79adab7898c4e177b6be147790a48c6d34401c2b669882b6ae3cc33ab8be45313290824cde4220e141319a3399e0ed8fe763351dcd6aa2eddd167d568ba60d920a9f8337731fa54736c69109631d5043e750a530a59207981de7396d78efaeeaf7e883643c74de47f5153f9df6a1affb39ac4ff56b3d85fd44cf6a79acfc92326582bdaa93568bc0b5675aaf9e5d7f8d764cf68ae6762b1ee01c94cad9811931a643a8a53f1694e272408a00f49e40c8e1860a540750a8eeeb5f84a6f9e042109eb4094843c98fa8f45f58f97c07d86f150173c47ad52cf9fc80d30dda7008125d0b185c4e196249aeb88d738b61a47e11ca063f492337c95253414861e53b20e277e7ac6a0d1becf45c42cebba1cbb8db1b1bacd53161054be000bcbdc457d1f5d02c81635806556125eb66b4da4bb196645a321fcaf4212aadafb8beb229abeb9fcc57955f04ee17e067aeb352037e69c0b0805c705a002e7024041e315a2e4818888bf9e188a278c3bcdf29f4d9600721a038b451850870d122b810eb822ae661b7e66590bac71769c56f3ccb9055375799e8604f0077dad996a7c53d2ac00661e7b437a2fbdd34de97953c8a98bcea5b98569b0125fdf77bf32ca3642f0627b9a9d2d3e865eddc4da498df10eb89078be54b7d5fd243848fc74f01c30b910e2117db301224f1bff6340be6761260847b756326297c87f02b6d6527c5e4b6bc7008a62e65395beae6cc4301070e536cfac799641e164b072787eacca84471a010c956179e55e60a878969383f4b90434ef6777a7721f7ba5298a73e8eac6527c19d1e4fe2925a6ce24550f69e7c5ed5d164d7ca905e46a5952fe67d5a3b0a1f2b9e13137fe951d8c0183d4393576fafdb343e595ba379ad48dfb0dc8c6ed0664e3561bf865ded6627c8ddc215f130c744648d22a2ee49978ac748d5f992be1f29c243167b4c5c158245a04b15525003e0c0e80995a5d5688a6e35fbade661ced5b9658a946458f571016c111c4b040f1895308e5d96192df22561fc6ccff7a2529e72fe3114f251363a1b1c4f739345ce74266cb4e9466c65bfb11e3d4c6be3d3457c779405c782398c7711d028b8a71f4ca2662bc6198826477f406c20ac9a742342b8b8e87d73a63eaa7415a76829eee2e33a9704f62de1b8021ad724eb836d1474475a94b16d6f45311ccb645897b87753857f80e13622c7eca10bdc0f40f00b42e9709a239e3fec188cfe54f939df177b37583764eb0a3b260e77a2b3c56c3b0bf00b940ce6d1ea0250ea6ab59b79ba900f6b9f184b42b6cc1fc209993a53beffa5ff59dde4051c49077acd5915e6b7f27ff082a0b48c4f003584de6aa45c2fa60632373d4c6318ab463fb284d928f6a6f7146a0318882c9d72ccd815d805ec676a4aa56b1a6179b3af8f55242c3448b1fe85f1e345633cd5dd55770e19fb1417c25c21c0ab35ee111575a41f6ae411a4bf254fefc65ba64f9a5fb9de71477a471c64df2fdf0304eb6cbbd2f41c7bf27052370041188efa845b0fc10c2625920fc92e5caa9dc2c3b84305a1600dfaae5aa1c5932797dfe0f042c33302ab36ccb127a87cc3fcbdd90fa45c0459033a23414b950251773623dd72e6afdb818a31409d3916aaf3e2a88e5c3a5232df9580370796338cef6d1b80cb2697d71793e39e756d13d68d3e7bcb58d818623f6d93dca315f4400af50748a8daab983cbc0af1a17b0303e18d417b11ba39469344cf569b530e894f19da893357ca4d22a47ebdfe8f5d2aa0ea673a398704544fb259aa283a823bf1529df11e5f75ad4064b930c9f4180a12fe0ec279abedfddbae9d90011043aa8fcdeb7817568d77ccd8c128f2185b685bbb361efe5122487f6a8e9b0903e0ab784f085b9e2a1fb26d82924c87145f40b15dfa8f19911d3df14162cd3ee5ac1a8b96c67f4475e888e053f1ce3126b8a8d379c3ebf9864156b180f76fd66b09d7335dab5240b1f5c56fda050a5caed8141c37cb47be124297995a1f895365f353566805a3ceb695763bd969f3ecc4073adc718a4a42afa71f1792fbaa4c7e7e4e6a9442202aea00da540c1e1f748d49120bd6d2f57c1f31ed2255976332dcda08242817101a080b120703e5d889719afdfc93698fbd77275c01d59bd452947acf4e71c1349f225bfd0c813843b6e01a338fd7a75c8e8e7d0071a3713e91e4cfd9d185f0b66681597913fbd6a8cbfec6d8df981f2c62380bfbb08456664541ec0f6654a96528d606f56d791a0624801a1a6ce6b3c5751623d1e8d06170503d48a8ea05f499c7e5841f6bf972ee2fad19b4d30b5f4dc9c58cdf302ad7615f8f3ed0627b9b3d36a550784e614ee3a77149fac57ed4f572db901c80f4ed9342b60ff73ff21a3cdfe850140df71ae480b0e048b050f70e34810c365e89664c8e908d024546adc0d91f684243254fbc736d83b59db0f26a7ce81d6e93473671a339505643079de1bb1dc0605a4050782c5820341e289af9027bf55a73c6b7e3fb3d6bb7f2ad0b498a350920e336def2b7a41a4c95d1aca92cc2b57e7599235feb1aa73acab4f1dd0c7541a604169bff2efa6b1cc79cb78e2db90160461fdba08cd6bf6304501dd27c17a86ce38ce65b56721e22264fc0ad28c39d1479105633af5ac9301c446068fc12d98c7f2c2568255bf379a4100e74fefd23fc1ec86b47750ad67604eabc72f39e2581ab4091da4382954d7765046d9b299c3a2007b4b7195f526e0b8918c19c9b877368048114805390360a40ea9e0c6cfe869524856684d1901b71c42b6864c9ed84f9992bc6158bb8d0aea2cf278426305f0d1b7ed768d9aa8e6c3677dcaa6183d173a0296dc00190df15fc1b5c97b88128cf5e22fcaaa04da9bf3643e0516295da085d6bb1e7b5063ef5259a4046814e2425534abb04b630d6e0880831ba3c7d70383b65acb4b53888deef4b893b807966e81f36fe1178d59ff639eafe0d0cd7e014d151b831b004d6c3cb2fe763c9b16855367b3bd3f9f522a3d882b8d18f6ec2014177bada729633b03d5235562f7ea95d90016d273b9b26833267f79adcaa57fd695fd915a33c94050e9a31607c0314b54bb04fbc8faca55038f54947492da3c61f6794bab4589b9ad472b722b8bc161d3b481034385af3b767fcde2532138626b705c587402bc8e615b1f8363d895fa890da55bbe8c1bddaa01e8391f97a1733055bd63270d25b59c9c0c75fad1c3d7f5776b165e8a210488e9804bb9162ef35341aaa8a7eaeaeb7d70fd5451f5c82cd95a91f56d549ad4c19f3541f3d74cd595f6c294d45978a556601199138e314d1a5b4d47d9bb9abdf23d95c5ed6a47626d3ca5f8ce0bb5f84b7ab65016d64433fe7b9c58a7eed48736f6cdfa699dce7da90f72c3e1a78b458b1477430f98a9afe929d48c8f6aef29758a4107b2a69b9e2acbcf98d8c75b2cb0825a50c6e789e13db3be7a61f02e5b57d97c96526f8d7a1ab94aeee242a287a327a33da03b07c508c842d449d12977b0083e3caf626dda45574caaf4e79471218e85709d9b8e237759bdc4a9da15aeabd9847c2b92979a5e316e59f02d6b5add450f79bca119652edfb74e8916474945b7632206755d6982c38b17b77de8a6b137fb2302a382a100b1e080a0fce36121f3d47f7082721d1fced3dc42ec44d71c03edc6021bb52eab17fbec5bcef272df448f11d356f89c36c5ae35f0cba8e4d8b64263d8784e04066f6443afb464e0658a6b9013c5b1df591100382d878a939d1a940e7d4351552100a477d00a95400229efa42c4c2f3069448836dd9fbcbd81b9a198449f63e123c761a3821684989bd23d021307733e3bfb7b947612ac916c494ef2bf2107af8803394154f4ea8a2804513d5793b50d04773b0775334a03f248382e57b0f1b958e89c3fd638a310d029fb7744f4ae898381a5813f5d8dce759bcc66845cbf7e9921d705a6f2985c12a8c7196c7cd3a79b7fcdf8bdee646bb9cd97add2fd69ac15bc0c6e06bb65d5696a37b4e8d19aca4cbbb6da5adefa56313a92e9ad0ac85edf8480bdec19e2c8319d04ee5e0fa68c84e45063e881c6387a711375fdd1b7973aee94385a9e3e36b27974af1a8887ec7c164c92dc79c53011de99f74fc2b434cad4a7a4b3a49068c33f6fbb720be89c7847d34b79dcb92aaa49b37265c7709ff09d7ebc9966af8edaf5dae173b9c7e7d1438fc1a8bf197f51fd52bc53c1b8ec80b093c7ed5efe6c9efba60721118f576c5faeb306f688941dfbe038a3c4ff6ffa7a2a7bab99e597c2e941f80e2ce07f1ded918ffb803ca1f7e8b2ce162a418a3ad86cf674dced158d69cb799e0ae07e95a863594449c65dda69b981dfd3e78a4c55d20e8df178f7fa82864cfbeb6622f9331288f87deeafefc5177efcba63a299f6f7110c62affc80a7ab94176656c237d062da9c39dd533fe9e674c3110660efa187f018eb32e06179af3e3ce521fa39691f95fe643cee859190fc580cb3ba67e47f1cd450dee80c15257405c8a80c052efb466e2b4eb0ff49e0e9ecb2120a3cecb2cb3f99be6222509e66785f3e422d4e09efcc991b8abd45161bc4dbfca8a974608aca98a519b0708d251cf7d32c3675cf7c8a53c3a9e783c7c9f4a32f224109ea094d3620ccaf726c475ec74d8e828cf59962773a7251c0b924dc1dbf5568c9f147a596b375bb69991e5bb7e37d2f6dd3afcd131e42e1200998ad7ce441cfc7fc38ecf2109ddb379c91492b0a90bb6a6a2ac7387c388227b41b6efaf6877e57cfbbc91bd297834b5e536295eae56266b614a1b12a512e8e4a087f16c84fd297c8e0e5624b22103341ce38fd345f701c21d01d823c572be66896ab4c16d4dc4ae3d0eaa5fdce4e925fac7d29eaed4a035960bfee58fc7ed3354e81f86e7bd03484ac6bfe39afd7567418151a6c6ed6e72cb36eca8c7903f917953e704adfe9ca7841e23579a8210de671f41511ddd0f2f3fc857b3a1af974c868f5c89ac41d26ab0014896c1ddd8c0fdbcc53738c07afa21d5532439404c61c2385047f84d65d4fb2fa2519b1e7f83a17bfea474a8ea7fcafa54f3e22bf1d718c825520205b97cf90de11d4139cb12602651b3a7cc3f7248c7d35551036ec2d833c4a718991498e11b129dcd646727023c88db3d94dd06d417f55ceaf2caa645eefa29baa8dac33224ff9703010654a7bd7d82e7255d2d7e5a5f2e7d8d7b21ea84ca8cfcaacf69f4f97db54b18ccab973dc9dc9a567230748de75efdf9b36842153a194b2073ad38f25542855c3ff47f4faa58f6b75089590d875f688560fca8689ce6ab84bb90fc3211530e92dff18bc5bce8b25ac5ee1c41d4d3dd6075c9a2d45ecdf428370bf8048c045929b601856ed452090d350ac48fb5ab6974699869e0d1699d69e943cda3cf4378e2d1f577144300e98e5fc568f6a3f0d3de3d41a7ab7f34c23e57d5e44e31c38fb7a5a484a7f266f971ce093208f7db32ec6d74f12564ed1932da42211179952120246c584e82bc1ac48807e0abcd6d6be7081d7b8c208f2a20d8971cf9809d4356e08e42d5d36f9503e5acc857dec8660c3e1cb3736f30e1997e895c6b7b2b09a79a43c19bf7fe3830d51999fdcabdca557114a38feeb6c52ca5ebb11f9f3e24b166b82b10983a6869b2076a94c3cdf9072dbcb7302fb414d369ccd7ba10e20b3e5c41b606066099866a41b182568a6d56132f46e87e123f5e0d38ce4474365fbd044dedd0092734617004bd7961d754725b630efe0ec3bd646d39fb04ff70b72be589a9ea2beedac7729c0726ad9539ea29762b160090e01f069b7b4c98f486cf9d6835461c3c054604b19e2b56b365ab9291fa46560ad493b104dd2e4a18c655b9df4aec0f43ec9a7d61439406839646d00ccd83628c540cf0ddaba61daca59c51b0832b9cd6dc408e914d806a7002bd269768584edc0c2f408d92a5a889cb0e3c6115f8fabd021048ad847f768c09f1576a669f5dc0109a4fdb85ab9038c8558e9b22416a0af4d65096edd57dc8b58c6fc01709a2c771f09b1bce9ca6092f390152b5da766e4bac3d18397783f068438d485376ae648a751146760a49324fa1d5d1bab4c8be3213902ddd17e406ec7e4fbcb16c2c770514083ccccdc8bfb84992712277aeaed021e1a02c8035f0f972177cb6e8d3da13c4d271cb05193a2cf6d1b37a9dd3f5e548f917deaab00ae070c9c672dd647b8f8a1a6bb7ca8b64e98b7382a999815a5a3e499e95306a9073db2dbee51dfb6c01d7c77e8d741993de9f4aa9fa27177d905f244fb377a921dc46c5408d38160bf57cae99523d0da92d123eed7d8efcf9a0bc737fa08d539d6db4bda158904a8e3b50789dd4bbb9af309706120bd1d559c73a87223369bb34751ed05bf7ba17bb29c3925c91c5e25ccc2ea99dbe05004233a20a6af929acabc755b49c25faf5f3eb3d92e329c867ed1c6324e9fc140f7a0f0298f3a5779e20e227e29b67243d58af8bdbc8dac0b3dbb262132dcd041b425c2af431fdb05ad47414154b00667270e6713514ca5cd96dddac337045e3dec1f24f6a8ad675ff74113b8a8295178e390fc05195129af7707e19569898692f3d5bd15f89ffd257e88a493ef90820523405eb29f5a40809fcf1daa5789d08f931bc0d01dab493d0a6fa95713876ee1ea5c0ae85d41c38b547bb0e0df63e6c867f51aa1652da9a428337871a5b0380ba6f557607549608e3e53d7a4ee8c60cfee0fd6abba58a52c04a6c6253a7196d69354de7aed75aa5e03648fa69c2bc9df6fb2c91884ccbf04a44814076e2d110d60470f42150c2793ccdffd8afcb1f6b0308fb04e8c1599974599fb690a770c3d8a7ae9c2cb54b0aae4d6cbd08369143fbfa9e102d1b378708e78e911996f276b06449b343eb1792871dce959700cda88b219e3a6b4b958a1aea153b48eb6f2f580097ee16706bcc7419bfb4a857ce7041eb8e107c48901baf91390cef5a23316d063e377e6f5850387bcd5df07fa16e3bb3abc8df15bbe11df3204764817684c78de687ab027a31f84dbec207b8789d8e63fd685a91174dd16fbbc9b880fb6774ab685aa04a6ef41a5610d37d371876be261bbe071b93ec87ae2bb38a9f178a7ad769a63c5190a30648fbb0c0dbf9fc0aeecb977417099312264f17a33acbc993a3e1a0d4efcd88da7fc2dc2b353ca724513543bd0eadbf0578ba96e4bf9c5bdbbeca4ca7d9207e14deb6e9960f51a2fc442cad6957e62fce38bb4440ece194f66dd9e70caaee43b0fc56aa22835aa18a8e3771105e3be696399067c3a127b8e8fdf0847827ad04daa3ef5c2af177aea1259bd8db216c0a33c3206edc78852b118383ef9e5127f21515d1509f57f4f83fb862bd405aa1bc6afa826339f22ae2f150c9eec361f82f006bbb419e3b4276e544f42bbea09a5663d38d302530f2268c1864149071cff20bc975506c2869423e20d6ec3b4c173b279d3acbb51801da6314ccd97e4898557ab1b7fbd37fa1def6619488c78e05197f5c4df99b1cf4ebcc8e88037f85f0a90e2dbe59fc9493112ad5ff8bfa4167b4adb2984ad429cc14aa43ed76cc6173cf85d34849d977415f4f53795a0f15241fedf4725a95df69bdff4b5777aa59f13a12ce0c9f0073d4002c6489c3530310108f6ad17550013879add2755f73e34c71874a4ce3487cdfb04b0214a5e19800abd26a382f05d76bb51504a5710d04351f81ba9d63bb0ada3a8ee4db71a00632ab8e6379ccdd1da819f6a7b1c04434f4ae1de1e8f3a4bde615703845aeeb510402dc93e1d3629a2d18dafe2e2585224fb575abb0f4aeb6be84ab4d008266516fc62d69c43296d15fce0878ce5b7f338b29864cfdcfb8f3b8d03d4f5131cf7bb893d12f4fefebaf48d78acd7fcd794ee22189e1cc656e857906d1d90603e8e2c03766e17483fca3dafe430ad60357d7bb0db4bd02ecdc6c49def3e6ab68d4bc025137487687a646985683b5d8921d61886827f7d08fedd6373599dd99259bc48add0aa4e81c867fba37904cd9485f7636b60514a8705e93f066d6f12f3570b5f096ce8990f37f1ea33db5f1b441bfabf627d72b602924320047a044edbd990b20e2ced24d0857caa36d9d02f088240d63dd43b9ae0e1d51c5b114d868b2ce2fbc60e6ef2f820320c3f77916512ea819ee7402e99b4ba6aa72e622a7996e4c720466435bc0890bf7dbf86fdaa33fbfa7585f4778753569723e46303605dd66303d25784327decf53de5883deaff1c75ff3d70fe3c76f83bbafe1cfbff79e25aed78b1542d821db0b57f983989403c5ab579228183e2715bb9725c1dad7eb5ea2b90c7735966c730b050a3c5c147495807aed2876694897d12790cab7c39cf253f6f6887dc462ea6923c2c90925c604a9fa8cdce03613b93b3de372305bac20e08b24d3ad09e0af3139645a15a779b28c366091abfd3958b576d61fc48a44915950c0f2bef1ccf07fc678c8e24baf49d8cb5509a3a8fe13b867c77147a9d7d49594a383d4a6395d6836d7089d58b29e2b4f27227431e9e11ed276bcea79f28cf3b1d94e2dd4d43f166f908e7a7274a9f6af99be1d4163f815e166f4128a1b5529f112a6dcf4089a91f1c0455135cc2b51e2bd473b5df179e18dc2bd4e720f32658c1f429be85bc1506c7e12825380309c9dadcf8506bd959c03349780d59c6558894ebd4c95d15151c0b400a3e3a83ab0433cc4b8d6c8ff35ff949d86043eac180607c1cf0e04be463ab21cfe32058d901c1cff815ccc8e2f0f16c85887bc323ecb3e1ce968a1b04b0b66141a9ca32c3349373267a89e7ad825242feb5edf306c96d73e651df3a4fea2bb6db37331a6ac24071edf3a1e797c8c0e9ca5c1c7f3e5f2619844b3adf279465ce21a664aad8d26c244748d6be926fdb723f199d4fbdb82c4526b1ba7585ee5f69b7c0254a2a293f7775e85eb1338ca813eb35d96e3dc5402086bd97ef9b383c4c918b609c31530bdd5af317d1257ad578af42915d12e6e50825a58eda8a98436c09d41fe94f265a444d031e90dd1a13f5dbc6918680d0936daf76e4fa297ae46999f7a16ff466d8e472e70b50f5cf1a287d6ee336126eda157bf7d78364bcc4e31f128763e855ac0de2cf47353b059c336a0069deaa84cd9930da88b8ea3aef544628092de0cd874844537daa71d6ae5b8046ca14895631907138fd559f57914b702879c9699881be3b8a8abcc6b99c1ed068f691ec66482a131698959b8272c5d6025e35d5735b38047dc6edaa2938c97d5624cadea7d68abcf61c8cd8caf21fef61eeb3f74dfd3806bbe425d17c0ed5261370c97fdf3dd563ba871f4dba9ed4f5c0793e7b4c56c3340de252cf63e58f5809aeadcfa0905850c373cadd501f9a518f4f0efd3ebc84ef9a28813b9ac52919be5478d833bbd76fa367387248e2a91cff45664e689c5da1f60ea0f8c2229aa744bec767419dc0a86150c575ba416b3b0334b5ee2d4d0434a9bf5c71cd96bd20620d29259afaab65c4019de0c1e8b09a0b4eccaeed8d943ca1e2399d06e88e5b56d27cb9545c5145a688938f7c4b5941907edb32f62375a64c0c118473cfd692a369560ae147d66a2ec0a59fbea460735e276b9598711dafc7cc9df2c37600ddb10af1bbfe9e919a82a3725bf3cdcc7c29ce0c37fa588eff17a009fb771016acd3918dfc1b92bb6dd201008c08a59a4fb922e1b7db26f6138f433d61d6ddfd2c9254b8e7b75eccf49a494661c89997ab1220c68ec4fccb152d9d66849dc416368aa3914aee0bbc4b1c4f3ac6442e9b02ac77ea65b1ed770602df3b4e5df0006126068e9727b6ea4365f95e7246889eb0e2c6403ef857af642d13b8feeceff2f14523ae78b5ba6b31affb3a2f85709e818d6646046e87e0904b6dfc204f793fcd7f541487fd924de3bf293ffbee92360d269a27dbcea413a6ccac2b0c1ab4830564646c594853023bd3422ab3074fb20ec287842553a539554e0c30c455b71ca73ca7e657837b0432cfb79a1a4709a0865d7d3444ee9ceacea7bbcca6500afe77378ec89969893b7d3c7aa03376d512d93ae0941136d7c5c231d799d799c156071eae0750cdc07472d6db1499cac956c95ff8ab9c46d46fe6c39165466adce0359d1588e9d763e189dfef4cfafd664d72ab5015d5fda401af2230f28597f868c600fea6d85be5a72d9920e8ef975a449a6ade7eaf4e058e8e1b9b233508adeab766a86745a4bc5ffbf93f77bc72cf8e19a46c8f153695f72068e24b645ecad90def88ed8c0b395351c0fd2e2016d2ce1dd4fcf3867bc4a09227d86b5528282e381090169cc1bc994426c6ab67e10a7e7dbf695489d13ab1c1570600db9e698a14d0b19020a0e147c2e9ea55a7377e751488b0cdc915ed7c82488f3a2f799944768066c5556c67e5602234d96601d054ee2e98860e5c014eccdd57c464954df632e07c6b4c74f600eb04b2ae879c208315a0a88fa928edf73d2b8e75ca9535521d1f48b2d909dbe1a9cc7e052a6bde73776f4ead567681cd07f1c259622ad2393dd99da619604510e6a8a3c58cb891469e134790fc6e0aaecc1ea6d8536f5576d76bd26c776dc8a9f330f33d0d88840db09e5f5cbd9c02e042176e437c379be2866b1d3d73fdee0ecef3fca72a1011c989d05654e26c7e31af2bb6837018a12793676092e20eefca3d69f5323ae74a44f9c18914b62ab97464c4adb2be6ce560f673288b406a4be5b05ef4cda93ff84fab44ce5145f0b357f53c11ef05b7d0192ff727101f71877a7f882b622bd292956a5c8bb15077db3f199de2e63f18a607755a53f37d27ec3a829092be347bfbabeb50fd163372b809b7fc3b5a1b7ffa3a8f1ef41a18fddffd2b76cf4addbce2b8698a937d7f1d83eb1a389efe0abdf98fffdcbec26eaf889b2b7f379b02b1f709ed1996eaf14ac8acfe04506cddaac95e08aafd785ac380ab9071a264775789a55d6860edf15ce5ed32443251a4a41141049af7b0d66dd300a10cc2224ebca0aa1207b2fe0a6b587a052bcf060aac6d114bd5a2608842da2281c50c0787529b25b4b4e8dcbc7277afc09d2b0e379320587d52f08314f7414f2cdc07ef9b03305da333eee294cff0e890cc7c64c55aac56eb0ac6f27f6feb0bd2613444529484819afb853449107bdacdb42acbcb5d6c64131426b32495db8bbbbcbd6cbe69ab59eb32d7f58ab7ede6f1bab8dc617ddab73ffc890b7eab5e2733a1f0092f134a2e774c83084b1110cd92eb4b7cd5e17b846aadab5b1678b9c91e5c9f7e810e6a119ea6d3bc41c0bd2dc92b0c6f7558450262523b930663eb52fa8bb7823d2aa501e7094d7dd1cfdd179d663fa75c21dfafb54671c4a083c6e3b9e813feacd887db1d527acdeea73f839ccfa37bf1ddd71ad7f2c9af594efcd14dc6b815af6375d6a757fb36ca3e553f77c8d4169cb3289307ba55e17dcb1f5640ff5ea8d62672f8ff610a6b697e8f4dded192dfdb86d76f9be1a9d5aa1c8f7bcf4ee781078842523cc7c2b4cbf0abc95e01242875a72e056b6dbc51410e5d11d04e249acea0607b7a725f767afa84e544fe71d0dd1260eaad9eacb16b5450a325bb3e989b56e8e695776365b993e260f1cbca8ff4c1ad5c8a8e695792c251ba06d779204821316e56d8a247b55d2bfd94b1dc51d1460ac7f9d23e01869093e8a4561ff237c7825119a3b73583d796e9699def61cbee1d0b050c375d88f81c98126e792101e424ad976688cd9916c0d3fac6b8e0b870cee63c71393dbf3335bd3d91bb36f723243057a7634790a60457513e7c05221871d84ce78daf566a71ea1fa6c9608817996a6f306c33ef5b60aa4609b86a98ed129a403e82436828350dcb938fb7d1a1cbecc1d4b6730494811e63be96a898a21d3d0ad459d08bac975c222c26c92791ad0448fa4d9aae3d8fd9da8ae5be27a6827d20f70783d5a13e829ae210525a9b220a48b9fc32fb12f5158293ec2c5a652a4e32623503ecf0835b182de14133c40519c007e66987ed06ed9b801007958eac55b1a050605a9099b663c09b05178a8f8885058ee70d0678ba4ec81e13ac70e46bbdb7d4acb98aab240d44a5966ed1c31dad7a667c4969a0cc02b3386729bbd84c37236935db1e0b0749a8a20e1855aa32fbfbe1fc483d3039776086f0a479a998d2fe9bdce367d9b1ac6795f089059aeb39695d72ec8227920cef0c04eb1d90fa8b41363ed9048f16c86cd41576006ec389c8b66822f2bf9aa1d61284835b6c1b662c685c0bb520684a1ad56259ecfcccb7d85416ed36691a7ab497d0f50e00226b97c7d1c31031909b9346b3b4b5ed4ccbfd3f174defe4aac5a088999a206b8fd0737a426ef945532049cd3ccaad15be33ba0df3c089c380fb6843749cb80002fd752ab4168412d5fc51b96783294167f29a1f85101e42c93cf1b9c6bed214166cc836c04f70aa9ec9b9e27d46855ccdb6e58c4d05d24228309d9e5f4e6ef390d750e454d3e3030dc8026cfa4f1f972a7b3cf108224ea6225607d13ef7e62cca420fa523b166d03b51f12c9d9622571d6948089208c16dbc46c9101083e251ff7bbc4c76cbdfc7563a70f086011c158905dc5b334d1589a142ecf902ac60dbc2923d127b75aefbbefe1d827884dd7a721a4c1cb4088803710d553c442b1d4b5ac732f44b277a364d709b666a1a40f39007572e3fe44d9dc43e58d6424a3be07f62841e3d65d34b8eb331d86d6af43167a9c0652be245321109a8d60be0abc99351b5c8fa1bbd9d25805ca1d0f76633fe199a5d05fb2cc280ab340059941ff92088c60222bb243b6fa7906b922833f261d070ccf3f67fab450efcb42cc3074d82f23419eff74d7ee6d2a37686c1293d55a5eec9a0de8cbbfccbd3188d5042011b9511fcfc64baf3dcac7f98db070cf3983a7365141369c74b449822ae6a3e0b6fa186ad910b1bbcabe84e18372b8509d8eb3e86611373088d2d66cc051d15da040e34a3f63cc657e355ed37552060ddac9dc07193fd4b30d0eb49ce2f6bc2c7f6ac070e204c7a5011fc153bad34613aab3a7947124ecc8bc965ca3096556b584087ac26d04b753b3d940743a51c16caac635ef16b11e7c2e312fec248408635845e88f0e539c2acf387c7bdce51872fe7020daa1d86bce2db23d825e4684f059dbd435235908e0333c43c60d033d3238fb39666c3b712aa25b0c1bb2091421fd3c9453b6975461694552a520892afc9703756a6ab0de751164abaccaf0bcc5d68b1203325231a2f62c1f92135eed3077271a5b19f1b84125aa38a06f2805eaa2010f77a40d92e79b39fa17c03ae00e13b93c69da4ca204f5ac020683fd40ecdf3e93ec07c41ffbafef915c05f90fa017e1aab1ade28d866a4a99c9b8de6e52b2b608fb08b6c9e1cd025e920fad5706910d83b9449f2b8906e6e4bd3ea63b2a1916f03984f1ff8bd2c8ad8e1bb4cf1660e62210aa5d059a96610dd9fe03b5610d8484fadf07d1e1cfdd595cffdeb412bb011bf2a9c73d0abd5bfcbfd1dfb9fca7e9189d7bf77367c846a9c04b26417db7de136e9a1b1258b6563e7d76331f7286ebe53261eda52ad4c36c4aec7d8ea0e2481e6d1a0c079c3dcf8287aaaf8f4b6be981e953f713a26a24e103578efd813e2531d225366e09a6d67dededd2b65dcb3fc90c2787673be199dfa326756b1e812fb3af2f08389d86ab3d9b22e5b4e56211ec43207b5a252e61c68e3647dbfffb8b123649579ef43827f2c86e9b5140f9c7bcf531863c92b13e6b9940c26ecd494de41943ff4c3cbd8f241387d923c0286c23c08d98242cc250db681de56ec0a7cd0fed158ff6f6cebf958db2f283c9017875381b9913cc125fbcad9fefac3e666342f0ac440c7b62e688a16108b79804c14f5e12b55f5cfe1db84ce2e07e6f496bfbf67c1a66b9a0e83f2fd93f0a253795dd6d2016522e68508ea8b13f132712465d7ace5081c4c606eca92cdb87cf59df3fdbfd187af5ce1e423492a74f3f721a1826d193f48efdc22046c510b65612b70c04dd194203953af0defcb220abde505940b0f1d00f82bb5ebc32c6d6c0f64c535595c417cb0b04092057efe9cdcb2e01aa8b4b9721352f7e2abed6c123990718fe277725948a64b38f1373a1e20991dafb314d55cc457af41d4bffea656e9e953762f5b1b7f623313d6adf56f82cbf9b5db683986dfed960e4bff07021d09bc25aa554aa964c9e9203782e72a0d3bf4b625da5cc708a9b47c64bd41cd2d02cd700b78a19028e6384145c7fa2090ea60c591ee288d3e3c1daa4bbea54fd4de1354dd320d16284f3fc73a135c8c33fd171e9733b5d9a0c3a48fa91ea5eb808f6ef695826dbaa5fe3f206672c02bb539a5f15f550e7fd2eb5e325fd7d602bffba54ecac155feb578816efa57e5fd100319b9e7b718f118f337ffe8935950bacf73132f75f105b82bb247aa95351c8eba423d170b76f7b6e2907edc14efc175e27fcd434b9c72000dc94ff9ce9118319e62f39c672ff6e75ede825ebfbc8489b195ba87d8a798e067da6f683dab2c7f197b93c57b2db6a1ea3720bf71b02122df0135ac154f873ca8c2f971c3f39640c99d3ecdaf0892f0b475c555863638c0429e5b5930d103dd977286720acfbb330be6c820e572f135037b5aec9178469f0fd2a2554e0b6dd01df8ae6643dfdf30990637cfcef62b2fb1757b98dedfde0d40f5f262049fcd9242a1fd4398fc89ecf9598a8298f36996d02c641618ac838a99c97227ba74407c68f3a80074c6e586386f1278e5803a1d8dec2e03a8aff3061452cac13adb474d32c629b3c3614f411e3d07787ffda8f5bc74b8da69106f78cc6992d9d3386e3454d9a8914ef193f07fb25e05bd871fa6e368314505dbee3cde069a2a2b6b95a33e40f8308dc2c9451c799a6c622d688c8941f0febc5785ddd2db72737c46d0d39827f0d5882f56f12024a1239643a5a4cc69af60551c4d8cd9ea39955232a789166fb2bffe8a0057154f2dc35415c17bef67c0e961381fdb11b9b1b572ede0106bfa8848a35bb33130f97262cfc48c69ff240b2d83c3a904ba790ec7400bb3b9937166325710a05d1e1e4c6ae6cd2399aa69f1ddebc223049764a2700479ce1a682f73a4e53d83dbc3f5eb56232f2dd1087893033445033ad226945b305855550779c43cb39cfdcd3ed39e09d33ca685fd9f092c9c081c2801834a7f3811ee30fa080a9e403e742c8b70cce05978308a3744b6a669c2f99e6df734dd3b354dd3348dcf92d63b695b57f57ddfbefff7f6ff96526e29e50e2d0936094a09327f83df145184d7f06ee8808029823e265a569acfae800414a1430e08c0e1008fea6e7894c775ec3a07f1b7777bf0ace7fa40115a9a1f7d86050859cf08adf2828dbf61cbcb4d5e0cd597c77c2a545f2f6ff11eaebcc670f63a43f5d50ad5d76b743c3a6996e40b8f3de3d7f8f26cda604e9250ca722ccd56d3149d3475259146332f3cc7ebd801739b1ffde6731ce75f2a46a010f8857e8d30d2e467709987e1333fc3690ff3daeb38cdcbe0393e08aff9d16d5e8ef3da5bbccd613e86bb7c8ec7bc0c7ff917387cff891042b82c7de19f3345d0c7c40c32f8ccf05496c6d2562e9964bcab480c1b2c95f58c085e158f375cc137c15d35a8aaeeadd679aa5c411549699aa66d84b5ca12fd729887c97c4ed7f449de16b96af0ee5c1587e3b9399ca9d3dd1e77476afd7af3b222420081483d270be2aeead383692123fb09572e706a920502cbff707574c78c8183232f8f5d86e6662b4e51dc155ede001ef30570972780c3fc00bcc50bc069be86d79e86d3de069ff998cb7c00dce29cc4e20c40801a9f9dc6cb7e6c7899ef5d411487eea0399407d5a13c4eb151a3421bfbd8bac76c326d7a053b9936cc2a4d5e6bfe1065dab0ffeab277b1df0503446a81f0eca64c9efdc1b31f1bf4bbea2f655a21288446d6fca1cae459df6ae5fb5bab4da7b788135db15ea5aae55ae556b94bbb95bed217b228651e26a3e66b709b97c16f9e06c7791d6ff1390ef32fdce5478f7918fef22f17e275a0de755c26c314411f131478221cc7db9c1d6f5393672d1444bc858264c60ad9bbf88781e401e0383ecc9931c47b8feff0ac061968d09961b5faf1f550a9d4688442a150a8179ae3d1a13caeba570c9ce1556338ed65ccb07918cebf601e46ccdbfce5948308c2d3f105f3a013be2128b82c4682a2a86ec7a33bd7e1194feeaabee3b860b8b25af982234f6f2db2f4a6c6d29be7d4833bf5e02ae71a73305ee4c8debdc4e4fb5d567bbefc4d9bf6376588265f830c3338cdd3a0334346fa2435d030830c3a3364a4bf923c0c06cb71522d4b3ec75f1e7bcc8feef2da611e06cebffc06e6352fc30cafbd8c99b7b9ccc7dce4b3bff033b84c4f11f43191bacb3c9c2145ff67f09dfaf69f61a739ef2a92ba82572de294e17de71d77d52241280cc978994fb8d2eb29cbb22c4b9769182f62b0f3e524242a4a93a7c165fe85cfbc8ed37ef4dacbe0343f83e7781c4e810fc277fc0d6fb179ec380f6bf1301ce66deef2ee311fc35f86f00abc0edf4f5a4b9e27849308e1698ebf7b4cf794f0290c99e44c8e9821237d922021de2593798c86d257fa82c1195e0654c27b32e8b8cfa73023759f8cd47d69eabe4fdd4792ba6fa7eef3e01a8cf1ae2228ce06e3c54832928c2d59ec9587d08123881ec9e832d3a6711efbcd8f6ef3da6bfee53b3e08a7c0e3f01cafc3691ee6339fe3423c115e811fc2f79b376e688f398987393287c9f266f96d95736d215cb94ef2ae2cb88aa038f4c6a3443c3ac4a33a1ec5f168108fca5cc19d7356d6fee6bde69d4716b4404bcab340ea3a3cbb38a9e3ae7a6d52cf5d75d50b57aeff5ce00caf5a52ce906baebd8cf6325fb87251a9d4088542a15028d50b10ef0ae219bac3a3e3f1388524ddc1a5a6b5b172ffb8deb8ea759292d79e7e0cbe5792bf4197f830f40f83fbaf2fbcf6fd7a75f9308890c87a730557b953ee9a98b655ce248877c1a3a901cfae9b4061a24d4cdb56517159b5cb7c8ecfd41e3bcdcbf0968f79cdebb8cdbffce66738ce676ff12ffc65f4fd794d1fc7b8c2f2cb871c0a53047d4cc0f05b4bea37f561a92be8739a82977633f5569d971179d98c9749211b9211c3364590091f8c344d3ff5f4d64a5fbc2b98f3ae2231152a4cdbe8e44b59b23acebbcbde05edb19bfc4af33260b872fd4d4990fcbaa987e4d76b2ff391f5842ba3d15932f54aa65ec9d42b997a2553af64727914e70ac6bcabc8a32d1ecdc93cca1362277914e72a7255dde25538ceb3f8cdafb8cdab78cda778ec5978fe154ef3285efbecb49ff9ccab2ef327be1faf25cfbbe142bc57e03fc73f05fe496e784c100e83c3d3979417847fcac3e1fe38c69545c54d3d976692bb498434932342b5876ba50f3721acb913a110aeb90fcf8097e643262b84348742a8de1655756fb5ced3d45bafe9476779d9cacba4507919f065446442e1ca7593234c72f7faec65eacb743e77c27d43654b8baabab75a65e95be5d6eb2ade15741551732aebe9eda68dc4c959fed86a49d2db8e11c78fb6adc2e48541bc0a283c886bae209e5d1fc7f30cb6ac286eebe0c6abe64a69f238cf4c1ea3b4987cc9f38070122052579114d3865357d0154499cda83333ac956a26859a99118d7bfb4af2e12afb708dfd0be6fb35a27fdb538cb882a80ff59165c1d79beb6f3214dc6432b8a1422dd908642bb88959586faee058fe4dd6819b0c04379909d6eb84f5e60ada440f6f904b1bfdea714471aea02bb85ef1ef13f867bd6e92da21816b45a0c4de015ec18e01143f3109532fd43edc23c25ddcc32cd83f1684210e59d05a45ba189c53c02cd831c02cd84de09da8e70ad98a223dea1f59495bea6fad2cf157ab6ac5e20e67d96aadb5d65a6b3d7e98a3b5d65a6bad750556d1c315bb5debb61b8f236681f6ac8fd83bb8b4ec57db1102d8176e9d901ce42048906c05279c10f2031ff480089b079b07a1d64ede5845d1e8e5ba77f9a2f9c28e1525bd87918f4e8e461f78586fa1fb50ee18d92b039f219f216b9a66132b9f934f132bd5e9e4d3844ae5a17952ad3c3455406c4dcaad4fca59a2e9a4cbca4a6f64ca34d3546a9a6e81984d9843664ad5848feac7f466572b204dacdcfaac5643ab26542a55133eee530e2202e127eecfc90527b7404ea9f5c937968ffcb4f293dfb29face3b374bbb4939f38bdb9ac27bf293fb999aa6e2a3fddd251a5d487723d478e12a53796397293e9e27aa63d94487e9a8e42a53797d5aed21b7ecba6269ab035a4d347a6e7f51ca9d21b774d954c5b4a6fd6673d79d8846d39913ffa6914c9f4666d63292dbd78d51149e210d71e4ccf1e9a31486ecfd3ad694379e949a793ed5472522a5e95d7f2d28bd2f1ce4c1f7d765ecb4fefe292a4b3f5e39d8ddcfc6bc6c83e7ad368678952e4a1be21aee3559bf0595ddcd52545b16bb09fd84fe03c0316106bed6214a7107d3ae56c22ed158542162fa07ed7ea2a47ca3d32628ee32651fa5b2b6a8b4aa5914e533f149ca7a9db343885f60cb60c48e5fe299556703a4d2692269d9ad513031898cafd82d3fa2def72999ff1d9d7388dbcae3ccfc658e35ab143c29d705fee88969b7af3564d8ae24c70ebf55b49919222218b50c6e2654456bc0c88c4ae4673e288dc2b4553583af328cef5e80e8d47776834d425c6f70f4a2ffb61214993e93ccff33c4f3c501cba83e6501e5dd80203db58469379128ff9d4615ef59757e134be86bbfc89b7bc89b37cc9caf30ee0b2e7d17095e7dde03abce7f0eee33f38bc031dc061343cc586a3dce0afc731aeb39467c3d1c731aea9e7c731aeaaefdfa599e04c2e10846b3ef481b066c2011dae99e44c7649843413248286828282828256badecb802a5e4644163c79d990c9054c70262feb2979d9ce874c3860923341c26467923e44fa10e943a40f913e440ead97e4b7956ebde84e8a6ffff61495d1e61bfec428d7c675948be2509c0fc5f9505c6eeb80c6d72ecd0a5e0d87d548d11d16a62d96a2381457b3a2b22265a6aa383129215991ae60ad542b52a8152b60345c16edf9fc781168cf0a70b09399400659407332108c00054e107269a2a02122510ec5a1b82040263d6b484284698701aefdc01422d0e4552e5bb14a31f474a92933d82b0cb25394ce1195aba856ca49d587abea4dbc849d20893d117ae21b05e5e46475b28abd5d55143116bbac95f92e5bb162a8aba51a21c94c283c74ba51749af1e472a2114ac53b29978a59d0cb07cf58ab9355ef05c3427808cf7038c80497d3f11077620f0e221922c55057cb49d78846a1b050505cbe326dae974b556331576cb5623939127b1c34240a200ea254a47808cfb0aaae56a8fa61ce8ab54a7190ec144bb110c9a2aed4152cf552a53e75d78ae22e94131455f5e1ca535575c55ac5d098ce2d4b6435e2aebd829297d8137d2210d1053f3cfb71551fd885f57a620f67327b1128e5451ffc238a211f9ef57090d88bc554986432f57467ad66b1177b3fae2a43e9ff2850a435e5c5a13b03820a89beabfaac862e4d742df6449f0844fc21f6ae8a5347bdaf5e64bdf8430422fa883ed7480b076da15c598f638f857014588ac7413cc3409c0e61608a8ab59ab156ab14d6aaa544bd7b7eed7a1e8ab39ea7b65228be4f2a1265640406e5c39c911355265bb156620f7d3ce4aa38157fdc19c641e28f4b135d8e5df4b956ac550b1a1bc143b0100ceb79281e7bde89a7bcd8f3e199cfcf13a80ba5ba6a24d54259adc45eaf87855e6064f0102cb44a71100ea2d168ac958a9642d168eb59127fc49ef80b8344d10e924b4315c81d2e308ea1373665ecf446b38e3e92668c71dc576bfc591445acefdde57ed168efd14551aca36fcf43eb98deb463bfcd587da059af8b43b03de178b3b6c113eb3d6ad336ee9d73493a99251479ba6872515df39873c6d9c7afa1344b4e66d3369a4e1eaa85329da6d299964ad366a6e1699e4e25c7241f95d290949a6239d2a44e47b98601d8208ac4559b30843fd8025934b25738f188c4a71326cbadf179474261707c82041e0883f88783e020b69b92fcc9fd53ffdab10d614d0c85c2a110180645b73cc25a4a4893b9182b51ad4c602ed3888a17aae2a2d710d6566ccfba1d07d98f85009ddb6f38c88a7f291632d32c949bfc36fd046ee8700d8f24e96d3ccf569ade5afee9cd55150791179762c642b0cf79cbbb938bc7e27b449f38c9f23b4b601f2c8e7b58b098f5c9631fc63f5884c12e0bee21ee763aabacb192bf61cbe9aa1743f5f4d58fa17a3aeccf503dddf5a9503d7de45fa17a3aeb3d5c39cb503d5ba17a9e2e965c2c3959da599f2e965c3cc7130a0f9d6e14a1663cb99c689452f10ec661df2352559e9ec4f3abc8beec937f8052ad22aa4d9ea8d0976347ff1279a517d87af11784674243c0186417cef0aa2622500ce2763eaf7cd6992250b88259657e1212cc4ba62d5d5ba91bc4f50aff58cf3bf99da4467c259e7c9833120ec1bc995ba033fbed0699603014568a4248488a3b749e2ed88b406210518828240eed938a540cc2422ba0d409b555aa97eabc4f9ce6fd699954a908243bc152f107b4da2e485d9f942aa34c9b86a588e47fa9f2bb584e58d2abe3dddcedd9ed7ce6ed5d15f756fb84e3d960ab95bf65895820b04524ff6a44e5da4ca0256952e647ada88fabfeb82af6f901c2331f9ef5b86aeff5765d791bc4b33f95b74350bc5ee3789ead96bbaa8a19580478927c7cb9877b0809eac1b3ddda6ab9af2f2dc064a12c16cb6fb2412c9005dab098872e93e53f9ff8f9d93119f9ee214aa9ff619f773dae1a4bd19c5128adb244643e72d2a661fa2f0405fbc8671faedc73559c7baaa04b137269435c70556c7d7cb60301bdc8494b1292e45d9a9ab6dc937d5c15e71e629a77574d2953d7ff9edf5c559f579f7b641fb977d5dc638184add4fa7cac7bdf8c61ae2250b9ae5e04127f2f0a11870ce19928846741ae1a7455eca990164e1faef687ed892c0fdb03fb28316d4f8fe551b981b1af5e07b627402e65eadd5b3954719ab9eb79b99494670f51be5369a81da5653e336db298940f73642a4c1d318d21dbc0abe1c78399c355b10a1306bcc6625a85695355d3b6da5bb5f32ec6f56290599a7bdc19167f238e51305ca0d4d9ccb4ad7c6f95932e27d7dbc0521a51f496ceab1783cc56cf9b39ec79278ef259c5e71e9c7b78e6cb4066232a5c7f2be5a97094eae4ec779698a9d2300ba7f5198a69433999b255a8adfe89677a66f22c14ef33b32502e119f6713ccf5b0bc58cd1b28abf7d83131498941815a099d58b27f167da54a948e4b4244bcaac56abb156aa5a0a55ab655f512751f47c96c49b5992a35bdee59f153b16711021b64733018220b667b483e4d6a084892e1c79e446d25a710927760f85dc205715b26fd0d6c106b23b8e3dff84358b01c79e7dc29acd800580b046f408693cd076708063cfba90b600c79e73218bdb2de3d42c38154424ecdfc8013ce6f08804767105216ddcf5e0d807c70f706c43162f38f61bd6d870ec62489b80bd40486b404893008d018efd15d27e70ec1ed222e0d84b421a04c6f406b9423270eefbbb42ae7a5db64fe04d5c021fe33f3c8c47e05b38045ec61ff033eec3d3bc87aff9ed69dc017fe33c7c8ddb0c7c0eb718780ab8ddf91d16f80a38102f84db0bfcce1225246e8df89d9d168f79035e5267808bdf18d7f7053c8edf1857f71ddee6025d9aa967eb20a49992d83f5c33f5460e84355313c61cae9984c6dda59980231221cd6485fddbbffddbbffddb3fd376003c89c7f0a9c3f0efebbbbb7899b3f898af70594992cca58b8bcbcd832faf83c77c0eeef2087098c7c15bfc017014e0b44f80cfbc7be5bf4255e4e65b11054c9fb5054e6b5a6dea9e9c6a2c051eda22cf4634e2341f8b3fc2f2e6f58ef4ba27095a944deca468fe356da3741be1d43d463145c289e8e48ace22eef1f1010873f44ee854f3ec8999897f7e34ca114eeb3805ab983631dd4638ad8b2da2ab983ad79a36118a13035931b1cfc7624f5658466d438e368f7758a7ebf58cb71cebc62e72bbeeadb7d676d45ba4310b0a895b706a5f29c937c56c3dc5b4695285c5a524bf0c02813887713217334b493eb9ae8c38afb0b88c827ebf2121a1984c84b5bc8c46634c49e2bccdb9f9ebe3f301e1d9cf55713ecc29cd17c315932cc9d1f88289f9a5247fcc3025f95bd4168d29f5ef0aac18c7843297a4cb54c3c494f6cc3e53929fb188451bcff8ef8fdb0bc3179c8632a5a881f356f2912fe6e7d9a457876736b9db9302bd8b81d73d043d676ad8858e607b8e4edaf0b228c9bfaba8c5d12ec2386e9d8e806cdb476cb924cd9064ef999d5c916d3c5b22ecee10ce5bc9b7967c9776cbc11cb479dd23e8bc3bbb8b1b59a2631105eb4deff04def4a311d01ad684c149770bdf9c5158b79bfc06c9bdcb3cb365f127267d7f3ae9577272efd6c915fd0861a26666b9b1bddd33d7a57faed17ad39e70c33c33d5dd116b58de837e24838136d4d18b68c7ec5b1f4cb7925f30902a6ce2986aa287abbde7c9863f32222160814d7f0d2c65414539280a41f907ea4c63676bcc1c9bd600e9ae48f2b4eadcd0ff16c1013678cc643dc981813bb8c29e302dd9fbbb58c5e3db05e9fd13238ad0bae7a7dc6b43e3326765a5e47adb5fed16a25cdc45e33655c71fd897650ad6662a7316560dbf3adb7c7f6d0ac28694cec2bc6bcf39d77bd79ab3b4b9ecd95af91780d82b0a5c7e8b58fde9d5df7594f9fde852b3e92ef464ac17a7d057616e4db55f4bc1b1f8d38a51f9edd92cfb65cd7389fe3071bfde3ce6c8d068106a29160a17742a8d9baa6e645469ca1d9d83c0f9897039e5dd729386935129004b4ee03d22fff8c608182607f76607d6cd0c239699665344f5569cdbb5ac98767a468bbc18620bc6a8db52659c503ac380d5744d73b1d621c565c724204251faee95d38bb367e5d2311d66cd21cf43498c41a1c400d762df970adf40b4b3f086b19df5aa522acb7a484f5ead24f05e1cad54dd8d9d5bb3b93c28f094046c83e3b68d960bdae61b0cb59ef7250b5de7250ef82a0777ad7f4ce8a58939820f94a42a52092074a3f928ea48981c69c315a61eaf8aac5cfa12834435554452f01c155fae19a2a9ce93649b7de140716a68e8f35a64d845163baf8b1b1316dd85a1755511ae61e36a62ddbd8e89b22a7f5bc967eb89677e358faadd7714c9bf8230921055d1ac62312708bc62705917e2421405c2bf9ee88b4aea68d84718bf4bbea25af59f295947cabe7221a97832a4115937e2421a4207204cb601953bbe85ac4115bbc5ab848b9b0368e6d70d8fc0d67a2afa6ce68738fdc63dac434efcadd7a3dc71c8f385f8c44e38bec349ab0642299a589348d44a3696b533689f8da1852f61290c5b53548826909bb441886611886360644b420aee14806a3cf8d6368fd62adfbfdacbeed838c3bc350b4a50c63b7d9ade85b712a6a19b697943dccb80bd4230a1289824443ae909c87f98b7f398c47ddf6d963fce8359e86df21baf4312961ea25000704e4a0438d9a8d97152e2ebf655c8edfc42cbcf09b4805187e139d60f39b888418269f690aa621d3164c416f6139e1b64d0db11b66525450646aae10fd7788f6db151294de2137fcce123298dbf89d255646aff1ef19187368f8cccc6f8cebcb6b62505f01e337c635973eeb7553efd2f6ef2a11d2f60f42d5876b3bc83485b0367ec034846ba36eec316d21a48d49b4a839e94df517e9cd5b30d25bebb4a5265f8cd4e41b7b27dc25c95be2f2f52f6e49ea5d96a56ff605f0942780a3bc005ce50710f300f06c83b7bc01fcc501bef20ef0b1008e02a0a565b5c1000ec8f1e878ec00f0680f128b0ba9c4b2b58dbf3edeede1d9fd31afcf554b30bb6421b990509b1a62299f0a55ed2adf0a55ed28ff0a55ed32efe18a1ec3993e43556b91ceaf22274925b93f6535894ca6cde564098544dae76c2d9546930df23c452c2b1c01bf00c7e177f004b874f806a8b001ac61c22b802257031eddf5f47c3e1840638fe32c4fe32d2fba7104bc02fc05efe0fb4f6ad8a8b1c2856de0dcb0e89d2469329d2a6c280f8d43432b5d4984f50d36ba6032f6c6ded81b7b636fecad5614c785fd24ad998f98b61427ed89e2a16993b1d1f81ab0bf3b97e7aa3999189414c5dd1495d9eefab83db057b9ffd77f5e0d1dde53cfe1d9c5d5d001c160a60dbe4a477962660cbcc68230190e8d49d11eb2598ae6662f83a77c0c8ef22fb8cac3e032afe3313fc3e565b83f0ddef233380f0ee341861934f8e4501c1ac3a33c303caa7be1511e3a8feed01e46c8f8944567376d23abdc0ffb3075ad2acfb3e1f687672426cf02e11990150a0ab2403bf4fa308ff687677d4c4c4c9bcce424b6d25d5ac8220c57d284c5cbbb7098c7f19817b95c875f80e7f00cf0fd2897082777040edf00dfe16d4e02def6f0ec0ecfae37e0adcff6a0e8ddd0f81a3e7e0ccf6f73f461f8eb5f38ec737c870f736e18f0def31e3c73f1ce733de7b81216a4abc70bc59d942c5ff396a761e12f7fe330eff29815aef2338ef2359ef2349f2900cd0ac0e574bb9ed477ae731ecfb178c721b1f309577ce46b081d820de5a1710835a443718fe678743cd0dd557ba4d846a29a360989692b89fdea2c8fd3c25ddec50d0b9a170a5b5db4c0416277c382e685c24acc18794d7115d3a6e22aa60c719d3919aa9434bec6caf368c4c0e48e98c08d33b441d11cfacbfb8ee390d8f958868ec88d2a331b2e9ce56fbce5b1fbe3b8cbb77004fc0e8ec32bc013f037f88aa8c6559ee6283fe3295ff3d9afc8e11720fb1a2b6cf87648b0a079a1301f0adab9331725452eed56b285922dc882382ffbb9f1b1a079a1b073458d3653e3c25994471b0c58c00e0af0e11879b5e78bb398b615673165882b8cb9fef36ab8ec79361c562346d793848dd008980b0c6fac432f10ae1411b65c7f797407cda13cba1dda83f6505f021ef5618149515cb9ae3cef06ffe7d9f097779e771c4cea391abec3b39697f9b0b40091ebe82f030a57aeb7a05229128542a15028558f5c8d477178c6a3e3b17361d92f5a612fb217cbe3c2ec1516238bb971f7eb3586c68e0d19d3a692a2381b99193c1736e0d97519b386abca9830e0d5c646e6e5c5b4f168784c197bed2c4ff396afb93f7697a7f17f91bf3c0b87f9151e13a7ec27ad4b7e1b3bb0c6786596f5e1591f10b63f57dde588ed8d2753fed66adaa2558fdd680749210a5240a1542a7349ca4c78821386f28a3572d6e7f8219b481fc9911cc9911cc931a53b995679c4b4b894aa24d24b9c2214ef90c355b1100fe3005e660da67cb239e2f4305c64d8116746ad4e244b9552b929653a79cab49d60999563a64ec631ec123355945beba8b7e1cac963a60dd584915346a54e59e5d81cc7711c497a0993ca945342826c2826b84c5bca73ced964caa66cca281737b7b20deef8cd5d9e4b3b39f656ea971af229a1541431646b4e750c56af53f0ba309bf72a3321e75269ef1513dc744a43d3662a91cc921c89c6bf5d21a99fce2c20eac68ab8e29a73167bc059c499dc18bb769dcd1876843919a7e5113967ecd85ad2749ace92a92714b2d29c52a8b334e3b66e6881d0d8f3e424694f2e62e0bc5920eb650288aae597c57215cb4972c4ede962390ce6a4cc477793c449489efa97b8c968dd7e66f9387a0930c4e5d0f1c3aa358ad230f2d1a637944c75466978d5315c7f58addfb4a34e92d66e1f45ae7d44c9544794eaeca3977fd3aef26cc64072916773865d493ea6d9479cdcd69cc1aea388e43bf5110f4d1a483ea63d905c94f650e237c4db4e6f882b4989abdce46fe2fa8e4d18583efa35754a52f1aa24a9bb7c4c6fa98b577d195c0677d3fd6f44aca675d3dc9eb58fa68f6ebacb47d347eb5ba73797dfc031587e1bcd54e6aef16536bd91aecf6e4f97e7d15d9e3d36e631e6e35aba4d4db729aac372eb2cb7e96db492de03e9b012c67218e93096c3604efeb0da91c873606dba8539eabb2cdd9a30b0744a87a537d2cb5bc2fe46de2e0d58645f5bd7fb96fde5a3ef81f495c84b1d9b9e57354b1a4867f92da737c4954c61ae721738f627aa72d2b4b94658eee29a3aaa95e52a1f4d5bcb59eee2b6de06adfe66d7951db2f2714c6fd60a61f9cd0a596f90d0ca5d6017d7feb9ae7ec7fa637f547edd06e51c2ad52e2d10eb021d4b386ff6c732b15ebf4c948eb247e8b8b39393b84b1b53ed39e7f47672727c8beb39c727e2c4e1704594d94927914c9b8e711c738cc8ece1eaa319c30e33a7ce538b74c6638e4b3be12ce6d1c511d5d93efa4e5f638a435cc575647fec135705b2434242392ecde6561d9716aed6fe641a6e67341aadcb4f38fa1c3ab48bdee274ace398de449e43868eab5e92494a4b1a46376d24892cb9ea75d35d645731c7a58dfcba8eec23176fedc4478e5d4ec6711cc772cca38a7ad5abaea30e5cb3b8db5355a01b06c36014a7b53b4aaefb800c4b6e25fc03faf1f1f57a4a3fd891a3168d706c6e4a3f31ebcd425f7b6c6517395232dd88cc92943ac156a8d3c606276888480eca4399884864738383f3376ff33abe71d9fa70cd3d640f49be206cb94ebe60bb3896842cb4cf08598c7c7b0c355c1ae9db7d08599cbefd874b23f9f61b9766fa76ab0b59987cbbdd29df25dfa8ef93ef0df3fdf2ddf2ed77af7cbb7c9341bb66b3d879b77ffb966dbb49e05eb163bbe4d934bbd4eddaa6edf2c79ed9a56fcbec985d06d930bbfc6d97ddb24b2936cb2e817b65ab6c9367a76c53b751f66c9b3fb6ba4fb68a6dfab6c93683ec924db2cddf369fb0d3ed6410ae913f3564100b5288ad31a3109a5108c27a9d04e25ae9b78204c648208fad29fd88390dcf7abdd4e15a69aca5b751f7c3d6947abd315806b135251f30e40fae95743af2e7e7876b24a0cbaf450a5b53e229f1acd7594a29d6eb2510d748bf125802796c0d498a141e1dae917c28ba99ee87ad2105517f9054a4bef52488ad21fdb02dd74d82acd7cd1fae9940f309b686c4635b7625e96f254979d6ebe9137e67f36e148d38452749a65539f2c24eaa8899316cb02459bf2221e19175aa92129e9ccb39d6a74c4c72c6651ceb51ebf6932227a6180caa306da7ab489d5ab468e1abbf31ae530869252184eaf5d22f0777412184342d8250255bacda69b0ea17aca4c53b5ca30967faa6c7dce2cf6f852f0f67da45af862bdacd570955ede5bb8432a1aabde4d329abf65b2905ebd564f8b36622501666a5b71d2ed86bf294220204a270f48fd5a762c47a933a9b993693cf504ad69fabe87add3382b516c52171c8e7aa407c3d7a7cfc085796384108d6eb33522d595f5ac959c97a528cbcaaa8a8982a2b2ba6adf41553c65d454eae94ac2ff30e977eb6e53af6790dc4ec957e62ba225229594fb2b8bca5a55c995e9252df3ae52131ef80eb4e1c4939ca5ba693782d1c07c76d704acf794e8bd486b3d24d6b8947614eb952bef611aea05e97206cb99e7ade7a9d6462d72e0a514888f5a275cc3144677431c5a020d7f36c7af47ef8eecc275ce9b9b3ab773fae9988add12b085b5a8085f5fa8b10f1e752b27efff8c0983cd1e70b220201b15eaf3bc6d4115795933025eb7388679967938a3b51f7c3147bbd9919d3462262adb51928538e842b0eb6f930a79583701ec235d22f13b135245f501eca446c24208948cea5493af3cee6068774d171fee66d4c25df0e9280d96f242091bcc3b5704c53533a9269ab758af82760571290448414bc3418d3b65f467f19f728f2cc98624ecc6dd724c93c5129f45482bd4654ab96d39832f4faba47f5ba47e987add120d07a174b7fdcb505eb957a2327f4758f920f58f055f251ca4a9c3a5cd33b9d2e447b584b6e4b2ed4654b2994f6c1835b836b69032693f49382f4337f529c6449f205496f1ac899fa828c44e30f928ea4fba14d20894703394d2089272bd13284c5b3f1fd7a77d51efdc3a7c9119b54fb486b3435edac17553a451169d3c99277b9977dd9a734a64828d2dca392a666e33a920e58f2917c2460e947a41f26fdacb5790de4ce763d74cf4afaf92038daa2358f56bd47fb77c9b745273d269f147d295445371f15aaa29380b8c61245dd33bdf62196a3bcf7389a36d3474d9efa7191ab0683e28e9887b0614bc62bd63e404e128b4c14f860e2c7287e5ec5d4efb045cc2491a9838758f10d574e221fe1752472d294319677cd245409435e470f2f6d2c91085748321589cad2db1545f2d99a1cb42d409f11b6124eebf31a88de99af7d046d8d5641d872dd099f784a115948be8323ca221e47daa6bc214be669dad9e6c770b6bddcdbc92f09d5fd0a67db8adcbab5dbfac88a30110cc4c08cc9e7b570114e8b14ff7818084808075d158b7c14895491db7c2a9c893c9e7aa8046b190cb31a3234000000000000b3160000181008040483d1340de24852ed1480146ba4605650974a84590cc3300a43c8186208010410006008088cccd40d18862dc5f935fb7e7360353550c2f5ae1f5435fb845eff001653c7899afee19bdef63d9e3aea1e193328a402ab0518d701f0451e892fe53bf923ec9157b3f3045b09d7bd08469f7d515b992a7987164aed86ea1e3a722dfdb80080a8452ef73d2c02db412d10b29768c317464a53b09be44fe7103fb5ac4c9458416a5ca858ba15e2d15b6b45d96fb503103342662f9d01601ba2b387acaeec3795c457e9c72efba998e1a057e441baec9f8bc40932199c5442e99acef6125d3dd2fa6c882367bf9f62a78c1e641962df0965f2fced906efb9ef6440aed2377a987ad0386ced44514edaf847b83b9080e85e825193c1ee3164c1eb32ced37bca619f9f4715b6acad8b2d17a5acedfde7425793ec2e511628c0338c8e1e37a9ab08c732f11ed5b8c637a8d52a98721f892a93c336aae6818a3d573f46c43fc221894f0fa4ef812eec8f671a0f98a90477e75d2d5ff4415877bc8734df3866529c83b735bd0102400fb8215f7a67c3ba1f981e27c392d656c62d9f60bcb07f2cd643c9b16827ca19669fae34b1bc750435332b9b90fad4a83d1a14cd7372737dcaebf3266276cf65b91dce930e04028c41637789767c14bd5f515ca2fd7969727b7baf780ce1997f73aa05797fe2f863f17f64f6dc3051932fb133a9a55186f3dfbb782094988bc9803f61cf6c3f3930dc9d92f4beac76debb09f21307a30e982e8fd79194bf82dda05cb228db62290a9c53cc04ae364e8bbaf31a27ba15cb1bf190c5f3594c1e40a6303c8df5fb27fb620f06777ee11263d1b51121b84dca16c142621c0aada9b60117ae422614c1b45f008611fbfcc7d5b4290367fc34b2ea44e110864078e4f5523385dd92c93ef12d900833e88dcfa29bf7d963b4feea0d07b3d8d8bb6b19c75c1c71b1a0fcefaea788343eae57213f34cbf38c0b6100a9e9b19180cddf56cb17b2317c226eda212739a6fd0f233c6495f0a411c3dd847b4378b034b4e96ca7f05e07e400f7c512c3aa4f4f52ac62e8b2af517ef50d0f945801d7a80c26486452f8dd4e450d533396e4c0139e928ae8845a7f0839890feb7e31bcd1da17dcfeacc54dfeb2ffcef5729e5b9b496cbfbd8c11fbd905885eeded3eccc7f39e2f023878e131cd728bb390d909306f7b3053e8b187defb85c08ee2220f97e04746b1cf11e3a3116cd6b4536eaacd4155b64821a5f8e6c54ca5d7cc28b66f1600d9818b313c977d28255f45688a82a29022a22a5844a6b1aac4d0a05eadac025162013515051c0df4e7580b501870f03f4b7b951f3ab0d03cb5606189e72d83b7f83dbed5b9ec30876a52cf38a701b1cbcc624a44ea9a271167b819ea213a731ff355075b959b187dd42788c50d1aee8a40ffe4e1c872daf2957dfd25a712692bb185062852cca74d4401f2e7cef7285bae1c6483696496fc3501e83040376ecd330995586829c32a64dd135fc1a33e8e6b638152bc6bce5f963f99820b2f9b1d44472228d4d003780a81b4800794d3175862859374e775ddc060883baa146048c9d7b9d56042ada0b4f3f428f0400a6474993f910d1fddfe69b922f4245a09dfeef4531a4a0cb58d50edc15ca891c2c3b2118b6e88950d1c0e102418e5cdd0b5e6b850d92201c2ec0d54f4130a9fe177414555e057840114c51ef98b8319a29230c45264345e113751a2acbaf7746b9080769831c144d1ae7646810fe69c03312a895968e642b4769150f83df087e435e54e9b949ef7bd01bb055ecfa95e8ff0ef613b9e6ab0f2817892d669d89a3ea7d43b26ef44705bda9a1a2a8b906d9c2bd9584e6aed8a0fd824e87b9fc254188869b7fc53e70c2cbfc501110927251003491f24f6c2161cb6263a11529ebe023e7f84541508d044f1af5c5277bff100b52111501769e28d9f66ef8d890affc777b5b242a62910b512ad12532b168f6e764989858e90a0e6043c8b769126562c73d1c7254aa80439ec49eaee890917373e57aa2bc34ba7b3091cefb7807445aa08804e0d46ab008fd9f7fe800edd0344df52a1174485b6c88b3958834658906e5f3690460d91cb5846985c1a442e6952f80b0176a8928ed5e1261319b8c23726bbe2429182248ed505545051f3f03b83a4d3be2e0d7534b6616147f30603a63093b67e3b45d5d2a03fc16a222ce99a7863acd9570bc2a488a847691ea8ce48e099e113098fccc7526ae4b754b9e3c50c126e5c99e037c170e5188ffb1284029a849999143a38a70eac8f2cf23da590679956f83b365975390e47f202a216f6b7dd01df846b76bf12e17dd1bb110ae82862a42ca524f150d67eb3a7f144fa1d0324a8cf497829352150d2812aea989f0af544a49ed3dcd1be8a764e39304122067f2f0b22ac00a9f607dc781d4df02b0a6683fe855244d0f8d50166d930d3f6eea54f900364503e01425edcfe3db25c6d89b5a0bc4023c21e853725c0a204b2573e7a7cd7a52c25dcc2c71edb0bd9b322d6a036628124ff8dd0e244515bca1a22852e6a1f47189de5c5e2155ab1e138023cb4052e72b9c83f1f669d761a3aa563d2cfe876ba5a5ffee072a2221c929bd50662d000e53a47e3acc43ab63fbbb34cb5c841ea01e98883c080c716c02d713c404e8e32420929c044d2811ac1698abcdd23f0e5626102b87755d2f6737d6f59af3854476512a15400e5760dd6825968d6495523d7a321f52cd797258bf26583f4c85c58751b78e9444924c9b945b8d951e8613953abb3c5bf35183394ad547c2fa2caf5a7bf38c4094cf126cf610e27e21c94a9e4b6e4c4545de7062a00e6797bba308356acb318242b0922761754c8a0c685038f3e6efaf64cb1705120173a99a45fb290a04287d743cf29225547287d7ee6ad3d43cc8e396be975d777edddc990f69228d04e7309ec9644527e1c9f2f52e3150f0132607764cca35015883b18bad12b7531883ea932246004f69c893e57ee20fb6777dc61032452fed65bcabb0e1d4c04f5dce668de4afe97aeaf64a2a7fbcb586a55b22f169bbde1a5d914a4ffc0889a8d636496971e653cfd86e6fae38d2f8af401139328778e93f2b0ee8d0fe5f715fb58189c19345b10e23e9f330bb28fcc5798a3688d05acbc79c04ced0435a75e79c22e01542cdef70ccad17d2404bc616354cc4b2f411938bddc0d549c5fd85dfc2689545b75e8d281195eb8b65294873cde6bb41b4f2340cb550eadd1ecda8d0cbf2b839f2a997f3c3c339e37e60c5e118ea5c04c24ea1804d03faa394a5cc099e33ad14900e4339c80ddc7d68108fc968296c73b430a8c2ded3761aa8aa48b52e58ed136bdaf298425a16a361d5e764248db952b23264c5b29efe97dd2a1e4062d7ae008878d66105da48863eec8901536804895aa3c3b71aff5c0341821a133176ff4865be86ad25bcd21a14f641cc55399f27cb2d5b79a9621831c60bbed3eac2d7a15e0ace730e432e229b2ac1cf0f20c09b5bdbf9b79aa9bf4aff49a1ab91e113b956a8abd9742d8fba603377d967897fc7eb1bfa028ead453747d91f904f79eed52654236468d76a29be4b3acf4c19d847ae48b59949401d69f8b26f885d234fc0ee73bbda0d5d96ac7d90205a1f82d491dc3519275b999ed4ef4dc26c421ab87b4ad3530e46f640a6ffaf63a8e3f2a4ac7bc62ea20d27e0ff333b68b45bc36e85d0af10680ae36bd79ac55bcd7ab04028f858ea876f98e7f488fe0cf18aa113ae09116ab8a592c2539a94942aebcc2526fbefe7e1fa604703ac55b7cc441faecd6e506a26bced636c2dfc5b8d206b50155b72730c822aa8e18fb3c2e2092bdb6c73f616cec5d48f654e1e3512b3554c1284465bacd2077d4ee3642b6b0c52ab140b51945400916d8219d1bbc34454d63fccce62bfea09bf3dd6f3ca38f6d66646f2a6a27be26712d980a93888a1ca976553cf5638e234d0c6601f759e15f7069f001641de1ad15cff2191de6cf2fb020933eda496edcf01199786016c427b802003afcdd536cea6c23803354af3a264b921e782d423e4e827bb5c9a81236dc25225e7417833a357ad7ab2fc419660151fcba26076b380f25e5dcf34f4bfcb845b0011ed0b29caf21be80a1bd1b7843119eadb4ae74fd6ecc50c5ed69a00ee552ab693fc6a4f42369aed8b69caee8da83acfdce46ba43f2a985b99f910ce32b772c181f58a89223f1463ca4f3abebd22ac19bb2f487ef523ddcad0be89f3e13ead62e12885ddca80dd990a373d84255ba53cfd28d05e7d6a3858f4919549e42f65f400521da3be1b129d0c2e730767a0d49d2c08f8134095509a944f1a8dfd7b8ee20fbc7e2d2222f1275a760675d5f54c4035c6141d5a459805a15adfd8b2acac0bce6a1055f5b5250b1ced957e8c2e65e00c4a16a21c7b1bc5f323f709de538185a9bd4fb05837861b2c3fa9c6d8a2416876273f534dd8ccd80eac251366327e971ddda1cf1f414c0c0280647acf0660181acdaae87dcdf30e9e5d7cf527fcd8e42778104178b85214fc45179a487b0b0aba7a2ce3c9c42852e5693091229faac719e9e3eb7485af8f45a5cfdbe02c41d0678fedca2fef9065b36b151e2d2612138c31b161dd084bdfa9d6af8d70e8334a71252af3679c8c77f31fc51508b78f09e44043b7102aa2b8f28484210a8368cf6edea0c43102aa73252414cff2a9be73ead31cc93f5cf85e992a4ba16ce8d2ab03681b3e222dc1aaf0a173baa67c4cff5c72600e8809388be24a9db482b45eaeb7e7af6ea606ba72bb14e6fe56c2e82d29fcf66536f9583375bfbe4d572de1bef5a68e895aac6c81b6a1687a59ef7335b8c47c9e887305902876b2e046e68ac6762c145fa5215bb59f9e2f3cf871a6c69a52e06002c587761fa47909c281061e27b962e6e0c6478344d0c977f8af5e738552cd7fa26aae80e7f2ade661ac1ecc1715e2d57c92cbc0534b5123c2a1bcfd2ef9d0500221c9cf8ca7d0ad01f9a08d5b5a601bb48d4ac5de65d379dc13b62b5970581a0fe622e123c61b180037c5fbbf57835df65843c1b440e5232fa1f6f3e6da5de468cd15d6889dc2b9a2f631e953af0dd272bf85992b162244ce32293caac97cf049fa920309d5b0d554ced5af2a17eb2ae3d930e2ae467c8fe8a8d282d9db791e77bedeaaf7307e389da300378a01ccf384588c46a13cc9e588f09b97893582055b8a32c293b3dc2f4be67fa02ac078406330b95215f75cbde3155e64853aecb992c6d821f4028b0b2525d4f15893c32f71f188fe8f84ca5b7713916ba1b7a99ee5dfbcb75d385084b92b826775b2b074cf75aeaedc4a617f0d98d47aec440e9983c28643a4a9665ad46240221fc8a80933944a9b07a6d0867f3b7082b27ad4730b964f1b15d1a300d9939f63d17d2b405abf599a6405bbaf6699c014ccfa2b480b02b9400da1cb7f38f7476ff0fdb31cc881ea4dba12c8d1f330d31a871ac86932a4685e6b1f448142b6bfa60b80caefec77959bbc419a7400270fe024e30589120c2bc33988713f4c2115a0eea08a29c2ec18307d2160b2371441f93e974c41597a39724f551cfc38037dcf0955dcc938fdb79a294c7437c40254b1f51b596aa4562c9d2cc6529896324f0790c7c08aeb1007d3d0ca6aa399e2f93326204340b30eea28a3dd040a78cd14d9552842ce920328804b2062012c36db3012cb9fae1b5107020035583c94097056ac83d9486087d7f3d6382408deed0269e945c914a81f950f7dbd536f8f6e2a253c3c192d238c0a63d6bd434b06a0b308b14c20857d94551437583e9bf824058f585e780f7b4e13e400551a449ce2d93011c990ac3a363d37360063c042e40f97de5f1462451c187a0a1a276986a154e9539277ed5d4ef8d67f0afdf7d565d93580d4447f25abddc71ea9d3d976633034702a7ee779723147ae109d1d1689850e8a26099985f9eed8210469ac21e1015a70586b06b1162a8a526c50a3b173143ae1ec1b48426519914e36e3e75838089292457ae234cd1f8e1cba5aa8f802a2a0609107c94d22cfb2f175d2733fefc1c101053ec8bb416d7845bc09889f47b141da438037bb412fad3e591c2ae2e67e6b9b533681a1762138e10ec4dc9184df278d8185bf8cab821bc87503f1f205de61871acdaefb0d5790cdca602eba7fea8296667782af389f887cd8b22e035d1157a3fac9970937b6d2bf96ee0922940bdc3cfff01406a2af6e73f06fae7030145b75c0d317823d7ae6dd860f63f57fc50ea62fe0f67f49f5917dd4436fbbe0685c48d076a666221128fd5c14b359bc5194a9340beaeb8ca6d0061c4cf5b4208177d00df84d15b682792d5a11a50283b3799e1df9c00a2675945a0b1e56d8da2375d7fa1356895c31affa239c27e8f0ae561132624461efdd18ada99981826b78c77360c44e0147714169bb3e578cde281a0b889ea99396d1ba82942bf00d4605ef0b296d349ddae31e226cb2f05513b7fd11e701e1e2e6176a9462f36c062d9e8cc9bbc0cd309015796dddd46d85fccd305f412f27a51f14d3931360cf328908fa65a366b24222f8a35c007253cf0e3c8c9c86924b435cb8cbdd45616cd1a7cea2c488c07eb2f568f0fb53def90d7e0e7aa852a438ce9b6774bb104176bcae194573449c2664d438bd8257525658cbe1194bc111298d13e3ce53076f89a01fe8e623762a109779a523772cabcf6860ca3916a6d78acd053ba2d350c0dd64d90ded66724fb9a86262513474747670c11723fcce6251caa9db1968f9e7e5821046020c2bfe6870c7cc26f06a94c24ef8400a1979bd9a0bdbe447033c6a7e79d67df8ce8f06a62e8b7ebdc5b6f0d3c360f2ea98a068ae5a874bb79418031132e5981c50fdbcab0752b45c077b6899be332a8fb6a6059d1b617f985bf8e7d36b0acdc28d864103af30f84f31273a34a39063822576834466afd941c0dcd8f888d9653063376e5babe0da15657b62ae0b114091f40953cb908b032448f94fb1eda3124b6b95c272e2158ada2337ee6d590f8e132c4391dd54e52b6a33c4a49a4a5485aa80284592118505f7fbb0d206b874a27190d81a36eda21103a648cf39ad4652d1b0c4f3c09a48b47cda55680de03e63a05dda52547f0312ce04349ecaffd4aac020c8cc688266aae7fcb9432308c402c6c0f526e55742717ddc516c494b702f3c9b4243113aca359672a0faa2e36fce73fe9f2792c7b1bfb95597e7ab5c9850cad3a4aa4b2b91c4daa72c36339e4dfa18806267e8cc39b7374f8827a2164b8e3b7c6afd2f38cbc0bf60a7d88c5d714605cd7e6344dcc9284d0af4fbe134721d6de8a1739a7261aff5dd5a069c4b13eb8b7e344c05fb377e35313d7d098dc80cd1a5681f7653098c511ed186c98ec0bd5dafb62b05ad1297fddddce93bd50807027c412455a7856f50e3613e541ead7eedb25d9113bb382598edd198673b15c60c3c22efef17a12bf3f895a890d3a76ce86caaed275ce05842611202ed97ce0e4ad7d7844a03b49f4da024964ca2e7becc6820b01e9558e52ddd2faffbd11715af7e2177b921ad48513150e564a88373a4803cd74d321370144d087473c786132cfdbb9d0dc4b722f1b9add63bcf172d68bb183bf1c8d097df3c82168988861299505227da7d8632e159de0a0f64730ad5ffec5a9406e0d50a150871789f1fbda292630b9a0d50397dc262bcf74eee6ed71b4c4b25bc826c52c5f9f5c543dc9e64dc92b60522dda59f4e736f0910cfe7fa614957f4f81c11bf9d182875b7a8f879ee8ec5d1eca9c15e122bdd0570098b8a0d11b832ea5c0f67badbb407260d2eb27f514f508824fcdf3275e15ab8634da694f5967d4c390c761a5d807c7b0ec247279fa0580793a1e37495ab3214bc95942ba21957a62c54237f4b841df4baaf839776228898ec7ecf92986e97de7a1e586da04fe65f952dfb457ec27f6da7e1922f90424ba1a2dcc438506a403cf06c6d8fcd9ffda8dd333b15160e5f6181aacf5c770a02e09dc37c0a460b75e1996d1185fbaf31b41548c444148ff826e5148495726c2282c8e460032a9dc8997c9bcdd8109cc5e8ed3eff28c79c393f6e95391627ffcd46364a2cf7b7956ce2df05920579dd9c359e8c315b5a48a66798d19b93054cacc8ebe033796e14a28ba81e3cb3bda134229d3fe2f01e37701b9378584fb253e1837b89196f7c8a0f85b0f31e885b122ac5d238faf7960a6f08aead141c1d4e6b37ac084ea7d66e7e93792698c60df503aaaf1e30d0e59c1db888d3da2d10b8c25b80b9835abb87557d0c87cdc709ebb5f7472ab916dd13d92587c2e8f3707b7d58495fb483f44af02573a53a9f949dadc3b325606f10450febf41883157667b39b97d9d8d39ecdacce2d93d5ca8044ec3fb7bb1cd57fa9c9115143c9bd677a7fb498556cf856fbeb4e26d0483b9055e60f3898e4553c79070fb53a209bd8481464b16aa2653064d67f454b59192f56d4a33714de77f686d4de44de60576c910028c350228bc3a7c7cbdb5d49de1b7025126ac1c44d3c70c819caf9ada8a22885bbfd5349236e811145b81b92446b96c5b0348e8772295b41632ffe1472a17b768165e647f1c4483790f86e4c0c0afbaa9a9391248808202815021dc01f77efac00a3bae0bf6cf4bd8fbbf995a161c3715a9d95bb6f714193a3490ce1da04764f82659cb3e717eac4f27493c92e1516ac3c09f4f40cdd74f2077458c604ec0b32698e3a03ffeb0cc9b3de4675de7917a0f78652c25b14859ec5c3c358ec50f951171662240be7d84919fc0f6594f4598a4ee7cf8cea8c2081c026aa584caba9cc0351641effa5be6721eee2a541df87857c2ba0c413deefff0f3d5e3abe5d36df580d74dc35002adb2c9bc535d04e76c3e670df7692d0a0c224c394a558b345ad250345c8a0511919e6d6c12ff222b69a8ccc58dead166c8a085c62c458bff131b170ead59c610a2640f104506f87f6dedbe47603432a6ab4a8648b861081e9538ea6d8cfee9e4787a4510609ab7a838811b11197c07264972912f3a7aa9160c997e195180ec8276aa7f1de02f1f15d1f020418d4ea4e82611a809baf8c393aaf214d79cda3d8ba8af0daceba1e3324c410b31f13db2f759fabed4e4202e0d3fe47806986d6dfc15a4231864d32f9adcb2cc02e5e9087cff2ad6ba2c4aa43b1bba94422f692fd4bf14662fab117c36d3dcfc44a8a9133724a62147f815103a0c95bf9abe5d5caf46c96546e538d96c5f039585a70321e381ca5c1ac4719b2ce5692c93a13fe7a20eb00ad0d807c0564590520812e06fdf642c6222a4b432ca04952331c17d9210e6c8d05c403d4bad4edc927d3ab078245275f1c849ed5ce5d8402bc6bc5d0c006518cd4f18ee2046fdc81385539a2b7bf7c1e509fedc25c381f362e431da78bab872606e086d29461cffee1780b4f88b8484f806ed953d2c1d46c90cafb8f94153b5609e1988665dba652dd3be0dc0bf62f371b92d220e384e3c32a2f9516dbaa0b2c6b474f9951e2362c3bf240589c770eb3c97dd37ce0388ed23bb2bde1692546653e5ace03879020f90db633491ea75e47128ba28c623c81c296e914a018c688ba80e66a156d93c7bca84fb80171372c790807c3398f81c02824be898c266077758a7153fb0dae3068f9eb72d6a1737234b228153588797d73d17d315bddaa17ba378ff9b99127db874e156308d5ffc091138d9d6a929ea983e05ff8e95e50f01a0f3291af52abe465a426ec21deacc0217f8a21853fdc9894a5977170f3ad2d024f53975d6cef7ccfc496c238f41b3f6a1dd9029f28802b192715c755172c342037fea4e5088d1ce796210e4184b118ebc3719cbfed500528e6c4c35c973ff7cdd5443654df3be08b9c9cb93104178987307341579b444987d33c2a295dd477c4f8e4659feb4accb016b40c6b4e0b966eb82a9c1b2734aa688d438a23ab331fe775aa80067aaf56d7044af4298d83c8e7f5c8043a390d014eb142c72fc71a790bad660e69322ecd9c5c1c6e3ffd11e3c623e02ae6238288d5d0a01df64a413a00ed2955e3aae8093b46837738755fe8467662402ac3089744c9e61acefcbee8068509b02fd372f0ef9954e09ec3b61a84d1518893244d01e671c57b2a72d3edd802af7f341852fcb381ff5f330406395d2be5152ea077702ca3b1659c5faf62aac5d06a2560bd4ab91d1c2db5ba5578bd55d57dabaca3195ce5efbd101c90ae6a0c82a67a5889b858d5b0ad59293bcb9da37f998e361e0b568c548ee024f3df4855f84aba062bb4de2649be3e1f70f72cb315bcebb6ea98feec223b201ab86419551edbd28dbebbebc51156456d44b564147706297bc7810990e493a20d3ab3b6473e7bc4996f0424f0cad8e4dfad72b3b20202a8aa8b21c8a554aafa83947801ea21971a27af94f397e1cac4379a5fd21789294b3cfee0af0cc8e1557298d01e39294248cfbbb31ffc8f75921d654a9f12536720fb6f7065650584286a23b2d9ba4643909b7e0aed7320d8956f990ae5142e36a8d571ab2a134edeb5edf7d1e338c406a754645d40bcc5e6b4e6b42fe459a84101b85adad5c2a62e5d9799f2e6ae91fbcac73a5abd13c6438b62e657d93a2d9295996888a52b76ade1caee2c7fae234407534040cc1a7f9728e5efed979ee880a091ae14579eb2c12d688212a1004021bb28579e72839b649211f59912756014b7bb8802d63382c078d264f6aa1e4ab73f87c688596925d950ab49e3ba656aadb44ac408182a4748d3eb211ee6d61b48648121b105fc6e5b09916945cadfbcbc38c8651226e43632a3a429980cbf9b37bbf5a71a84109bf572f29e676af31412abdeb58083fb653fbf6c5d409664afd73935c4eafc404a4d87b980257fb5ff6a6125860271e3fc9b52e517d81995e5706272558af54898891bcedf422110bd408af8570f41fd7d91190ddb0ffe07b008553fa70c67e97a24d39b37599b7deae12e84941cff247b4f21ee5f99727de35c26fb8d937a5e7301606d53026c020b834d9c50d04dcdfa3862809ef009e38162a9a1bc1dc8db46e7460a1915698d3a16582104eed98cacde0199b4752c3b476071db1c417516cb2c7197057f33e8ee71ba08ff92c4b187ea4832f9208f30976c9c072441da0a6ba0f4d5d0f194d6886e3be357d53ed96de3382e10dc4ef18983646c03b1f457ea9868c8ca01df314d8e402c31090b3bf79ce7ab2710e931cbef36e0216db5ad3ba06a85310b4c58d96a03719d7aaf13987ac2e49527bde17e452c967146879cecc7a27e5ff3c49920c8af5e4703be9c1a507c6c454af964a8bcb8f3a7c1cf4349a71ca8de3d9ca26cb8f367f3255821c020282f5aa26b9e1d8b9d7fb20f6c49a49452005b6276d65826aee75ddf680f21f7c82763aeca4bc011ff8c0c6d50f9888cefee95b9415bb33f6d037d848b365e0efab724594982a233c2d434adafa1536f327b226635bbb608481658dddecc43044c74b57a094bde268d81a62a466590f30cac3b63d0c5a7295234eb278c079df04bce379d41f635cea671176bc8b7042e7a7a3a136abda65c69208ae27f3570b888b8d11a0825db510f8cf4a40378fad7f2943fb5824b03dd0e50a4d9d1d6dd806f69e5805286db275c1d33d372c18e7b5343aae22092742a26284591bf29d0ac715abfd4f00293a6de0b03e11e40ba7c1a72f7157be807f0e6df6b40b34c017109d82f9ba2b031685636a4a4d0bd88cfeadfbaf84ac278687c85048ea56729ec422d8f5e6f87ab510cee57fde724da8ba46f1cba0c360b74ab1830e5cf6e2101d84ad878aee2e9e01c2249cd2a3c67c1597ab2463dfdbefa8647846ccd916499b3532c874ca90bea57ba04cef248a2724a6be8509d9364568f48b7d093d3c5dd0c88dbb3651b41a30b35627cbc978225469f88028e107ea8d7b030882d5902cbbbce7442a0b6ddba572ad507de07c006323632616c64f28bbd245acdf18066de849ce98e7d819bffaaedcdd0694309414b08723f9cea59dd28c303dea54ee01278c9abc5dab7320617595cc71ac012abd2b16f36a6a2195221ea19c3a90e66f2c177a886d01ebdc29b4931c973c0daa8d6ca4455015544c46c1602bf94f9dbdab3f913130849a0a636e8d9cbcc0f118c00219308585f1788b5e79bac2fec20226a8f24d3f0cbf676bcb1ff1565dc7e08e3e13a618ac3314e4b8fa97c751f489d99f6d4c03ed1449da7cea151d6ea9f09051b123089a57967afdbe80fa35dea120dc2784660223d63b8f3b0a903120ed843aaf47126469518b2f2a9686ec46d4250089db3ba80c562553f93aace5153415164c0844397ad80f2e40fd037d447776811fd7feb8ff56f0e5b662d4ce4efd7c75d0bf58beade3b5000df62b070dfac75f74030000ca89891bf9830b4c7bedf7a268e9b9d711feb2ff186c29d2aa6520f4f716c6b1cd23db285337cf87044194c454f1866278c87fb97127251973a5cf9aa75d31032189512dbb2fccfa2fba5e8805439d71d1bb1663f1910f23db76cfbc1792374d9d0aaefa9c31780b5bd3452bfc87ba21e6b0ebbb865dc4bf98f2cdf8f86cdb04b9253b0b715dfcc988b66a65abc2f01338a711e154ac1a77aa29484f1406c12de8480906062a11e0856114390f2f8411ef8e40c1b6b4f4fef45ad5a69a9451bcc40903f36d35438c7548abf89a0656f6b0a26f25bb6885c4137cb21ed494b2bf97f191199c12ef9df790aafc5538c67db53be0ec4be4991172eb3c294eec119dd7c05931e70e124e003cddc68deab4a594f9776e7bb50cdb84667bf884601fdc9f564ff3b01619b473ab713cd2572645fb5ed69760d41ac0a3ef0a1c134722e5d3aaddc30a608089eaa648bf1ec4df569c7e1421e88d822a6748e8abe512b1e4d8565682d5aca5530ae6ce354c6451e6b6fa169c7ed49e50e31517df10b4d7199b8a4d81294455003fb214a14e30d8981c1054f42eb3545b248357bc7961490e926939af32b694630682a9c3ea6426a666c567b43a68ecc43ffea89ccea9ae33ec6c355d815a465254c1c52da5773cc84d4b3a04f198c0dc1ff68270dff42b3b88b89e503f9ed1cb54378cbca25ede066335fb0410e4eba014ab13dbf202424e5e7a7d982f6827e576be0297d71e281be17fd71445c02ce199978a042fdf2644102f7669230ed09c2a028c25a383c1d41a9c7c8438390c18057b4c6c60e284e856b2c657093d7c4480061b8e4191afacc5c3a9c9c00a22b6b0846e82b6d8ed874cd3b1e58b592c1939c4e1680aaca46606aeffe149968d720a0031cd5998aaf04dd448ac588a4d52a8fc975adf86accb940d944b7a15b09d77c0c0ae39643b01646b4673c2c7eb7a80513f0f2eb089ac73530799ed36af18c655ca1d03dcb7239cd52ace692824a7b1411a20866830d8ac3346b32171d1c3df23a1c54b04ee5c28c28dba469625489ddfefe46e5c03c534342694327118d72e65aee34ba24672dfe282786a4088f37c99c7ab89d447195275417803752f0794d95ed132b84f7ed3a3be7c25a33d508e2d6c638be023316cc2fa71e7a26b742689aab080d131444d70617ce5b74b944421d5d00245dbbf45fa50be9de6100799f40e6d40444254669b389a1aee473787a971cb23a69669fe20e193c30c26736df43160f684fca1e58bc238d806440b08684487d329b90f91cb90c7bb46c8c2d1339d01e4650e3a5822689b0718c608c6c5b62af0759147c93dc5805115e62267d307853b38fae2007bebace241e30768b437906a642ddcdc4d4ba58b031e92763e3e3b7b4498a38d3b12c3720c927f74a1ebb2c0e98c34dc94fd7eb088d1f4dd1a75e71e7e756dd7ccb587db2e50c7aaf74ebbc61e5803bd26ba3f1f39f774907439b5548b21de7913c9e0334a9ea571816c3480920e35acbb7386724bfc67b52d8ce7538fd59590f9fda7fa5b43a4e9e812dcd7b1a63166276459ef2f90175e0fde587e7d5893a3d1eee88024c57e4a905a55eda8a9d8d8525496c703ca11509ed7881aa6a23b2521e8519eca895d9b33124919728378a12be21adfeac26446aa50fe56f4136147a89d49219860e22e49c35e04f331dfd26687c7170091f937f1db00297e0f60058043121d5e2ed1938a63c217d6c629dfb6ce96b88024a5399ea1a09f063d3b3fff81155f5cdd32f482e738d38a64a8e7841b2a731b0726d31834d2137d9eb17f4177ab3c39ac8010db5af96f5e86459ca87eac280e4fa3079677cd0428a68cf17c0904786903e162d5244a2b93cc8a721379610d87d2b48627f1dfbdffbe833049db160936348604752ceca919ce7e3e9ce0706f7b97e800e846cbbc5ed0a69eebb00f3d1aa9924dbc85f397b20c6dc65f47c8492ec90f7cafd8f21a02b37ce25ab502dbeb5c74c80d047a2a64b47eb51db203f685d17a193c90450e0f6929e2220a50b872ef93d2e755a8f1fb91cf6cb017fcad2a02d254e53968714d27ab72a5fa7ddc7a3edc9aaf123910a779ba55a41f61a73968ee33162ea1ed200ccedcd0db56a9f9aacfe1d474cbd472cc1be7a71275699a7b6d46e4788d57f7f028be3c20f52a1ee819adb6edd5d472e13766063a441569a1ae43af69621d7ea0df2d7311f544ff257fbab5fc78857739ff59621deb8262acd67c87ec484fead08a781be753c3c5b6f60241f949acb55c6201b92566c1d362edcaa6e1b524e340251bf069f8e392addc3d0222e3dc7d373181fb59516697dd6920f8b8552506d916613cf112846908efb244fcd03383d79ec57fe549556b0a55c29f6479d924b322c6d8dec71b4afd988160eecff1ad83af3a1de9b0ec75c2f4cd5c3a4116b62e19a58068600a5473178c8db9fa9366fb203c904b70ee49184ed35ce117f9d031a611f17c484386282fd77d28c2f0b48b1ca39fe089f46d8ac48e428485ad1fbf749d23c38a75b0a3cab0e58b5ff9336f7a658bc5d17a03e8dd61b3f5310739ccf7c1624d59f30aebd3d8dae64e78963ba3386b42a873e63734bcaea275339f9fe9c7c4d963bd7edb7dd6b83298af7920c64d68d4dfee094c5b7c5febb1263266dd3c3d5e8fa8cfca55fff1e7c172767d96614e0f3cd7e525843af9bd3158fdc2e6a5d039c22cd79111c49374167ec713061efd6c2eba9cd62ecfdc56e30a6f030b4c6fe6ddc4e14846c533f85408c7243c49682269282e165623d0207142ac00c3a35584c45e9804c2e62a92aae454e634b84e55e3eee8ff96723a3193ff564b359b2364a9eeb81406b59cc467d79f492b56c542616cde0141f0c5dc0679d15feafd174960f0051428411d9920abcacd12215879f73505b85e84e20b2262d587b7830f78864b958226a054260601c61117a9437daf42e94c85ab290f6a0a45925044554d10e7665dc878af547e6863a07a77008852d5b93c38e5ea456f7b8f1a9cb648765582ecc00988da02031d89ff591e0a8167ed09d0396c84fc7271b9343a50012dcc38c61c93b3da50021f6ca358104272d1f4b5bae4ec0e661d465086b17f49b25277fe7920408517730b90f21defe2428afd40deda1025526f49e0fea20274226c1e6515aa5364fbd4a3ec5928fbd1a22487a796ee1ecdf85fb66b18047b0cc8708f0a2e83978fe23d38f2dffd710049a589d82e4292179a99887e867a09eddc3834a920aab6918bb3d9fedb2dedd6611bc06a228558a583143c1cc8e0bef0c42766fc3e365fa5e1f89dbaafa4c7fc0553885d6e0bcee04ef8b888b2fe8bd8223790e79dd6590e0806c0407a1b2edae037bcfeb3b9ec6a026812c0a2c491155e1c769676c8aff0323cfa9fb687eed859e3cbf215224931ae53db0409ac5ce4bc7f15219ebdada51729e6fc48ce8b4a9619a7f22b790beecbfac5d3dcd5135447338918aef8f66d22ca205ad072aaa4428af531f6cb9fc68be4aef95bbb5d53d3492b5011b639cc4ae3b4c6c0575fa94fcfa17be322d20a0e98a72602f1a7ca0e7de98f107548ab5f936ec0d390d413c36d50ef03debacdf0a5de88e0e1c20e08e4230f19c5283f4207579a0f6c64c74769798e97f1a450dee3e685ec972b6bdbd64deaa575016eb294548cfe6476220c63b32c1f5364a5e583c63489e9c9a133cd69e667fe0029dc4f83c03f3fe09a3af0b2170a319dc5d2bd906acbcd243d249268115d8cd90cd1e60498d73674b145c246a421f71fc75efafa7303e1f7114ba2779487a41eebc67d080886f2e9f94531a0104c824ba7cdf68e9b77c34b294325a64c236018c3f86825f05ab354b23ba8ed9cc533563fd03e46d8c68b3226c6abb531fa437a8ed220f8d3cc464d34a894fdcfcb45537dd18531f2e8ccf0f05750c43fb4799b35697049dbe2dc89427fdc481b0c6d570394aa1a0d05cf23a6f3c81b9144d35519ec2951c815079b55a75a98590e1e4844b8a6c165ddd6719019a78917e5bbcf0c3c94691e60161596767c40e1faea3e45f5dc8ff073275c01b70e6676dbcd6bd6a2d03632c0cceec23237ba6eea536fb23dab72db4b11b39bfd42d060f938e0e191678d1d4e3305944c3744eb23675c8590c93f3ce753ed01cb267ec9eaf14bf33105805f99bcb625a5c5bfcf76db700828301cd80c696c75b252891c50981d413e10abd05aef1cf3c20955184c8fc83ac9c9e17ab047f9b9f362a08ca1ba29207a370d19950394da688cd4cf417ee2cef0fc8e1d7006d05aa3af734c75375f5a5747e646d7d4b63a696b39e4f2ca69254d39ab63cef70096bdfcf49c3d10308ba71aca668acbd6910550514e57bdbe7bb2d349dae469f12f62f056b9809109c1399ed097f662400134e7fc6d431dc8c31b7c0acb7112319cce45d843ba6fc8c01303feb9df901d856cda64a7a3c69a0d508096c90a3f4e5d110969e0c1010c2637d4b0e3be1008b7526bfbdfc6d80e0708abd9c81bc0ee1f3543672295e81349c81c141061ee225a83018d8a802f3bd82913933939cdf8da1c948b8a33e51881d12c49c3d044718852f1f8808a2b5bba8351f7a53f41c635bc31f7d3e1b7433a1f65e9e20e89fbcc5cb2538d08069e2d62e8156035c10c02c9b7cba1c12a438726de1151530c592552bcc108616443a0af5d0f1ceca0a0b4f31e94c151b2038c1b010c05f0314b23623ec9536262c3992189ba64be4d4f3fc5d86b182b14311559db0cc9c1b320e63ec6933e8d94e11e82ede6f3edfd80701bfcd7b82ba144b59348d92b86b28abd25899a3317e12a31f048235ef017213542a80b8726987458db021b3dce00fafd0d8aacf6fbb4fe51e8ec7ec0b1f870404fa4456adc44859284a866eda9db73b882aae45095f3b61efc533b31b3895b1b2d1636259bffb96eba66eeb924c1b4e067a80aa70d7ec9a46e5985befb3b22d15235b0afeb3508c1f0e0d2ee8c6c308ee87cc1961b06958694686e75f3f6838308f794c40d0da767e8de0460571e895ef6298239f4d1d62524b499fc3454c0b3ed160ec1a65275978222c9124b5b81c4922ef06aead3283e03842441d854c080e72a40064cf027d930b291ba98a26fe48b3e77a7a267690e1256d8a4c2e2e20b8ac4a9c4867614c993048f908f0b3f12e2c88921cc21905fa981e2487d052c67a11e8e0209b8fd95c40d06d4aa1e25493b8aa36085a7c08c5c551c82b43793a8dd4bffc36579b05068c03d037d001ed8a5243f9f56a5101b1e857f6682066c4e47372a0bb88537a11dd8d2489dfbab2d11fbf0c60dabf3abb785cffad05027cb5b7ab5a76735ab5f7180ed0414cc44025aa07ea0b35d5804c9ab2c58be279a0cca81c2c2d21ac45418fbade0ab97331aaa1d172dac9ae25075142208f466d54267a40707b472e7895a33da69e029e2a9bcf45669f7c8bb597a20d79e4d6c30caaf96dedc2454cb510412e2de98fc7ba584684b34be8dfcb28e6735ac0ed6a37a156b63b6f674e55fbb74bdbd8594582e520b450b742007b4c083105808622eb72e750b1ac9c170045329e28ceb997804ea143520525c3c42204512fe670710c8bd7268348d6ab2d32227024b0dc1da07ddf61e647e6e4e6a299482038e27a9b9e16c7ca073eb8a0a807aece823eac0a6ea2a3acf1ea954b4eeb53fd5d853c98154479f36b6f43e598d9df9bfc924b4bbb9b6a98df0b602c86080e134711328530714199c0e1c47e68d91c2761195272ce889bdd1e1af97644b786ca6256f5250d2fec5ff100ff70f233466a4a1d3b4635eedf1b6638388318c7d9e0b01fea40a1ef89bdd211302e9848c01074340769c3c938dadc4673a8182fb029c9fa67b70bc661839cbcf2b6f218300f25d092a380ed0f99f2fb7c9c4f490fd16f996d2b710115cbe71b5326d58609008f0e7a39a61b7c105a0042586a458427477966466239e6838cb7fdf812225c65287806cd90cd03d6087c7db16f3582275427242435028a33bb24943e03a218f6e63c1647fe5420ffe8902c0c6cb0f9be988c884670a1ff6f7e1329ab970f55da10a555e90852de99838976f81079e9988c5cc811e2bee090e1846892fa04e7da1461b0b1e6bbf03fcd05cff95da2c980f55f43dd6b208fd6b802b78ac3455cb31a46c6e7c4efff4fec32358ac40fe3db3e28b1bb298429e2de55182eae2f0a9c859d9b27b3694d219999fb9cc566386f0db782e798b9ab60916c37f7738c671cbfc58890294c5ae20773a4cfeecb21591181251bc2dfa8d5591d331dc90e3e9d30700a2a04d74051481c3a0315f7cc72ba7a5132e1a5872cbb33e7dc1e71401891ab0378c4ef4de3b322b6dd16fff1998f92b69ecbd3305855a460ed4407cf49647c4206aa926440459838cf6b06e5d32ed23a9171cdca8c7c58550758cf09e62fe281d4cfec78f8662f56084ee5e783ebafef67b0e8c61e967abe6c626be8f0e74ed4de20337a88b95cba6e9675969821d90d5d75bdfc1ccdfcace6c6549c71d9bef94cdc3b3fff18f859bb472649dd498e44946a054f355fe83d0367940204f10f8110415639c7ad967511686b9908d6b50095c113ea4ce60d5ae1a6b8e294badc3813452a940794b28b72855376b84d26d48a12632d4e515ae7e1441375fa6ce8b1afe8bca030b7e604ac74a6a07f079cfdb0c29b0b3f5f504bdc402e452fe63181dc6339066311bc5b80a4062695178e5d8ca4cd8d8ed7a577626e0a1352666635ed29753a7a1681f267144cbe19821ce8ce20d2ebe64c44b409f4f98116e2751e1c6c984e5ac0a66139bc002126d53c181027c9fc4ae0d430c7d0a040748020e0600fa73db12bbf7bd1dc07269e7939f998379e2faf7f96881e9c564e5e79c55a4d8fd532023912c1eadb8c642c8e4540300b0ce9ea211753f29513ec5e7443a62afdd24feac431179f8848ac5a3982dd08126b79c989c54abe1b953695f4e0734aba343ef8fd604e8d04c52270450f2092ee01e1a20654b178101542c7d6d8c3f5a3e3e3ad162d253703141295ce00cff2c91df16a96523b4cd0da6a528e028e3155076db5a8c9d476a4985f05b94264a59b08d14919516fb78be0f523184d1f424d62bd169c3298c0dbb4a01d4eb138984858ed3bf68bce4a9152b53507533003c85792e321a7262184b7266dd4d72e206c492223b484605ac62485cdd4998848e48f6c4afa8360a0eee72286589adb67e2f25290800a4adf779fc0414e70588431c37474176627c0d4814580389881700c3220bf2acf3890308966af1bdbf6bcb8565c31450ba8998476a31b0e1489c9986dce41892d84e1262850f2026139ecbee8834bfcba3a399c85ad5e85175d7837a06c4acc2520f9653e0497ce23fb91b600cb65620682a21b58ea9d37c55ca4059ea0a3f95523df92b8e995bb07aa46d94a52bfb5201ae53421a58b5f051ba8373719fb4990d3effc5bc80772b131e1c8d0b99ce35775100b07b63cc148c72bdfc55e858307edb9b09a0622a9c29ee503402a0223e898f7f6a64d90a41e43a118cac298060678d94eb500e86c6a834df03e3238012e9e85ef5a12f08e4d506045c9513429906b986f78bf4e9584053d83b00439d56dd8ee4383c16c870c983c2ea4734fa593c6de5dea87d80d6af221dac346d2a9e2e0a44da6c996e3841d6e3f5e1aa5eb89e9abe563f4f80b0a61e80ddcaae1b67839fc6f2cf87d2ca864756e9f7d63f66d43961ff44090069022cf92ce2ded3ad30a7ec082a633a225c206f96cb3ccf0542e2a3d9474c20f24a230da7d330da09e3a233816d2c8b30a9f053ec5f45acd57496a634ab94ba805d3c94ac8443024938cdf73c18a5d04c900350efa05718608edd88486f90331d414c8d1bf02e771708841557299f14a04a4c67bbf095767ca323f92614989ea0fa7591a580a93dbdf8dbd79064f9a38605958d69faf03c7f9d0ef46aff6f499a9d8734e15ace75119defc988154cf178af4f486787ad0817ca5e83c52026633b8fa38ae1f2ce8690932ba3e21e2b49e0a245c88151e35fe5ab1a6f3b72cb923da546bf34c0b6b9c97646454e2014c881385184849dc040e2c4594cdc3336fa42b928e7723b7b074a9ac1a5438fdb71ad719066aefc1dbb075e86ccf1422d009754d85be2bdca4d9ab9f98d936113bf226cd95e998adc376f7caf934c934bd70fa5a639b35fd32cbb7eb539e6eed86d4121d543b34408ccd9440ee83fef7c16c6846408b0050bc62fa7c6ccb4fbef9fe28990ed091b605269f2388fe89c1471072dff3096baffe78c2c22aaa5864123cb56eded8b0b27df8f9053666e6ae829930e0368098acab324b400fc450e32613c20dfe14330292315159bf31e62bf13594d3778240627189584c4ce2080e27b22bfa35ca6c08f1af7ed433b7e4cc13d4c489a772ebf44e06d4b69d210bf73a97befbe9fccf99fdccfd51fdef2b9d4576be661406c6250a5bea23ee98bd519f862d8921c7712401d6179208248277897de1af001ded857f66763215fa0799a20d2f7e3d9c5dac1beab4531b76f700b298510eb6790922760a17d14e32371ea7c3c29170a5f459143aef8782901871298a3e55424550ec9d1e4c3a6333f255090f4c1487dcb1ca1088f67b02979b276ca6f717d649ccd66baa08e86d89870c772eae401d950fdf4c853c8d31da9fbffd57537e2593ec2c56805c78794246a5ec0af8105491ff0bc146638003a55a229ea0219d1e38021729d6fcd7b92cd38c99116225960ba6ed06dd8bbb3e9be7a2d62db4d6aa2dda623cf800fb70d3a5362769e50c1bee0786249f32bc01277accb0c27f34c4cb05820841995d7887aebc7035416701fbf78350c4098ce4bf3e04bd372141d8509ad237bf97f04824e3b08e2f4877ca002722c90ecd051081befe7381018b289402a22e87eac9e3a341e44c2f031dda23e89457c5ab7d2a63e797d34f21200b1fcab654e1ad74926b8a6afc884be439922ff88cc0721a29819b0a91fce5cc2a75d036596facdf63e60d6faabf42beb9c9910ce8cf372d00ba7954d4f483b7b423fdca1c527da547f2f245a2ac208f34a631634d4754d5aa9170b5948f721448929a4f7fd1b46bc597eea8fb8386764203ee148690c7a9a4135cc8420aa8db957923a6f116d62320c23c3b443f3004055ea1450267dc5fb2b06237cac2168a7784f5c20832f327f007725bef6041a3cb5e327f20fbe92297a9900b0a8f69be1f393768a6d28f2807fa2e50123f3cc320f963d66d16de0fd61a61743541800462029175551ca37c5ca07ca6c0c9c54ccb783da221f0dc9b3bc9cbb704c0f28a258165be898d4124b0f2d6328290a1ebf14d7150139df213e078f8883628c25435076733bb5ccdf2b96109a7f9f0fc06c99d46b9f5f3fe7dd51b7dcbe6ec04a4724760350699e62c09d0e9036ad6f1d1b8815278a552ded18f4b4015f092a3b43747c96ac373184784893f1be0d5c038053582130aa3b80f121833f120ee68ac3768ecd6c3405f31034426f94063bb5ff9b473dd6332544bc53ce4525f3e1e36eb85924f1261534fbd3b40fd4ef0df0b308b55997f7196ce2a581370534c3ba43b5bc7e17b752f0dd0d360e79fb8ce297c3c076f242a28322dd679c483a3a4f28e2d80d4a348235e25722166769a55e78619c67bed07233fe1b6daa3141c59d6d413accb5d1c7dc716deb455df275440507735b70e1f0e2844f4cf46a5dc7a574bf6b5ac6ef35763ef566dc051884126cf8739345653509e5ba5c5e2ec1b2ec2e9771189b7a44b31aaae807d73bc4d79db144fa91801f6b387631231acb57f81e00cd816443a50dcef30a9feeaf8bf13160e043c5be0ed87725feef83bc88fd63ac9a822e01dbf03827e3e15e0ae0ac0aaa7c24d0e6177ed931aefa2933e1a65bcf838c7a0698a7dc22f5c65796ab873a7bc38d523102839ba3540549f46a0230c16457502f01db922dd380120d4b104d49f5602609eba16fbff60ab893b6d0ce9ba5646219796ebd01b3d02c10c196874064a050e477b0948492f8ef63000c4b69790d12f4f7f61c7e9ebe445181f3f6f3ab6aaf7718c9725d956b067f94cfb4b5a82a9cbbbd27d2f410ab9b4f9199b015e16685230d683bd6b2c2c6da7d5693ac145cdc3dad356ada4c7a54a8f92d20e6aa8160256a246a54657a582ad574be2d4dfc5c4692696df514c18dcc87946f9ec8e8f4bce932f0125445f4b1a65d5307b59acdcddf1eef355eb028f0aa08aa498ec0f5c0fdf4cb51e5fa5517492768f95e94b40f15521ed636bd1b5b23933e661568d5a3ee9723dec615a0c76dd7a170d34163c1b01df3968d81b0b401e0ac9707edbbc2d6b443632c63bc49e99c410472e69684baba99a0117243a8150a4a14ba134ec657ff3612f1a9274e3e25ee5dd0f7b6370a26befaf27a5941b6dd6eaa4d4427b3c3e08f145d7eff09ba6f950676255f57f29ec39cd389b3015ab5e21b7df27e12167baecb264477e1587b1867a66c341c76597757737710a85d10c2d52f427c3c596fc85c3d3f9a3480763ad68c9e2f40910788f586da3912e36b99509c4062df0c0eeb4b239f768821291e4447bf6b15d039f939b65f54229fc6da0c99e00f4616f828a01eec09880de70b58b9f71eeaf049abe7e29d059545b12b8ff6573b7f6501fe9a51b8922ffe942e5a6f4c120b03849a9a8635d2714119c9a45eedd78405145bc021e8a0ece09a2a246e8d85044706a5eb96ffa2310f89d2c4514ddd74ccca4f0cd1ae2835ffa2310f89d2c54d4b40e1c8a144e53911b2b9f84d420defe86a2837382a8a8113a3614119c9a47ee5d1d40bca25e58d53e07a2c71605e2899988ba3d0804a0d2cb4f0d3aca93b4881a837189af99ad09e3c2594aea4a02ed463b0f039a8ec91eb92cfdfe6dc8cde331df7dfcfb054221713ba0d3a3fc22c521b1aed81d36f35c5464a3a0862c1b8313b7fd1412b64b33b13df753beb13f8e0edb7fa41090030ce8a3c129b7c8328e23261603bd80ea3bc20d9927402c5853e1078125055388583308e532755359987e222f073aaeb617a30fd9cfab25f23fd85bfc033fc66f5324592709508779dfca931c7e6b47d56079a250aa0e57f5fd4484647bb218ede3d10ab524668687f4b7ae01e1ce19b64ba831b575568ead23d3685ef0388b023b81743f29bd655045c2d4269d6d9ad76ca0b3996f0175b76c64ab5a1b5307819fb33d42dcb32a000ba65c93334cec368f92d97afa77035f3dd25857901294517c109ebb305506d878a0f0dfbc578d26808c03af347cd89b53c46f4830da66497b224a9440643699163b6149a4a00f2e1f8cd0ebaff801c5027bc4eac7e0431def6e1a264b52bfd50728613890d9573a36644db34d70e72101a3baaf0e473e6ed740bd5a6774e090a98e7bf4e282c4937461dc1c3c7dcc2b54cd75bbe9728f438e7173eed50a69deab21bb7498f01f1629fad01db383ece88d141860872165205d6f62433187cf0864132cce01a83c3ec6c2b2e0ab5747b48a1cc327cded9dc928a5cb500af0a0b3f60fd1785c3876a4a0d8e227a7959203c635baf04a00ae93de3526b2be9d9137d6fc933a2ddb259017a7ffe1a1e66f74003051abd5045b9cab528726aa863a70e0f809f7a40b4bda7af5e3acde8dd48cc7a670bbe2710caeb5f5a26c4231b84a4ded6109928791f56d128048305c63d65283e418900f4b8947e558b7667b34df0fa71c13a3e2a0e71418414a381b96f7efc6e0d029c5fabb10a02978f848f60779823ffc62ffce765a07f21e831e9113b905bc3086933fa34c761ecc626c379f076a293806655799289f0b2d950ee736b7b8e23f74caffb44635a9e0185c9fac9422beeb74916232e1ea9f9a7721b13032609dcce3d01b7463704d25ef6b1eb1b7e6dfedd7416201ece9fafd0f3f294afd3ad9aa9ac72ca43906d4702e844917dcdee36b054b4a6270e8e246f40f03ea5896795a309a516d0e019b507ca2d8838c3bc0a205906bb676da8f18f9ae64639c0acfad195a1b12be5d2cf782c63ff137faaf064b33b88c5a728005dd23fd4726a775688febf3fb2ed7ff52a96d646d64bdfe36b25edab6b2b794524a19c50785070707dc97749817182d726b27e478ab666e033ccc2ec0c73601fe65df78187b003fdb0778d9cee165368e165b009fb7d38be4c83f91bcba29e5ca2a32dfcdea262f192666aeb24da57e66c66431fd53dd247346f489d84d326744b7d8aed9be8166dbf89a3de35dec1aff62e3bcecfeb19b3749ba49d62e1bce0c1933ffda33fcb6c93b006f0119bada985103e7864b8b51c3cdd673584534ee671ba766068c7d13db1bf9779fba49d62ea42b27eb9b33c385238396f52563d470d34bccfe7f62ba17e53bd938dc50e367db8649ee33706464223370646492ebef959fc9ee6f6eee6136f9b26b78318366dfd062bffe64ebebcab9ff7cf3be5947584539335c383268314a2e59c38d898989ca77b26d7c8b7df3317bc60d3f73d9dbd370ff62bb60c4f8d8fe7e37a99be48e23235f22337064e45bf43739d9953509fb5e6cae666f4fb35d31bbdf0d76139d5dcc984c2666c2bcc068d15f39afac4917ab48f675131734339d5d5ed4c8ec121f20589888fe27c693c9643316335f606c4e86ae67ce591313aee7ad038e13eec4c686adc736ed2619c624371490e67a8f85c5ec9e4b8bdd3f66c790f12efbf5347b06cecd9b3be74df6f6372746ba6ab831981c22335c38a40c5a8c1a2eef9b75e4c56d267bfbdf36ff820699ad1ff7991993c5c4768b55d4da69b15b42d06fd536183b8566affc6bcff07acffc6cc35eb6b5cab7d8282619e6c58cb5c8e0b2b76f6191610556aa24e143c55011ca661d29352f01524bd8a63995e7f4c9e6de24739c55143bd99c49e6acb859d74bea7bf5123f430431b9c0055398220c61000318b0c0c2b4052d7ca1c80ba72e84d5f5c4c61521df6d43dd7b31c618638c6d67678861e31098e938e3199ecf661778356c77c2536b72b32108f113dd7ee66f655bf6e9f925907d3a0d54bf5e8d88cdb437c997ecd3ff3579924a8a0c2ca552e9b1e9492a27cfd26e9009e5310c05a5a2e0bcb95c25205c16a461f0a37ddbff26a552a9542a95de844ba5d257d257d27b248c31a74d2b28e0e1d1dd0926c4ce4e3722294762f0509f69f3cf5be5072848080a5b0ac13e45451bde8ab45cac71a5b292521e11a65cacd54a4a49b664603161d4b8e120645927825441dcfc8251285835086b22558aacaed085e24671894e29a8913ba27272a95c215d635d2128eed02d328696c72defb5a8dc92cab6f4a5f42811973009480b53264cb2f7b3562a30949d1e1f2aa84d572a2af865c22913169f70a178c2898bb55a49297f2ecc062c32909c18c03265659572b150a3098b5c16dfeba562720208c82b2929c3257e7e4654c418882de9ab944b292c7257742b78c8e2202c131eb19027948494f4fed32ef96d3f06826de012624beca3e2b248b958ab1513468ddc11d3a61d66c297eb3b7c38ed921fb04fed1f2a2a126cf260a5bcc140da1833a2a8bc4aa4af5f7a95b21431cb841f35ba9e9057b984318e99f078a1805d945fd91808f6c142f00f5e02af4e292ae566442d7169db547698b22981b292326191bbe2642a91f04fbfff79231cc4ed0d42709c5dc2f7c9d4cc5033830cb7cdcf1492b89824281790464282ba302713898b4972baf7de7befbda8ed3d9294e552a81512924f845d140a4c5d5124a93e97bdbdb965ee4d6d323a754b234ba693411141b1361d108002657847842c6e9bb8fef5f26a498b1c5cdb56d0fec8e16b105e0e1b5f7915485b41c961d39b956b517041cbf303015f830811700283a12060d31b18b743f8b03d2626fc00083800027e1ce000282990f64a39c0a6372f1330e7f27ac484dfae6ba149890c183786f044e56e00675bda725fa5d457a7b8545ee509ac0ed9b25c91418617672162d24264e6cd0d838687d92fbec5de5876cdafec195e86dd6d2f58b61c8415882d5b6868aa10b6dc5911e2753533c8701e0859643a164ba69461752510074a988b0c11eeae7c3090b6129321e2ba2b3030303037df8c370e06c602be6c57a69321d2a1e0b2c4c4c4b4d89e73c966deb8980e849f8ce6408c2773799995cc6660e5e1332d76e86106d0079995fd43871c3ec6d3416f2e2868e3fec6595e0690c6f2e2be573f1d36bd61b93460cee52e687ed85c180eb6a40169dceea2ce66337caf7d3796ccc7ec4e86482743b78dcbe1ba70416330352c37a8f5374bcba66fe5389661b4e58bede70558961a86a661c6d980b49715617769a181658506131a5429910614090d3470b7d2f05b7bb904463f1d3be1e3071b7783bc9b0a6a5beaecd34fae7683baa20f841688ecf44f9d7bfa3e2590507353e4b33ccb9f32c8763c17a7c0b46d36773e31f082ac6ca7d65a6badf8de3a04824b71aae7f7b26af321c5566d9e41ce1973dcdd5053489173c65b11768a5cf10cba4e48d7cab1145578f464bb9f0d223cc75969ef0569a52dedbdf76edbddee761fe3cc71ddc8fb4092e638eecf93f216b9456e915be434b10fcd2f900f84b46f31f0684a98b9cf82dc7b9cd6a4cfa3cf1c77c10fe474bcf7a2bccfeb46a44d6f3a4cbb5177f39637fdf7b5ceb97e1e0263ad4d2b3bf9907e9947dca643bf4f29ee1b8f1fa3f746bfd5add29b1c5e13d0e73ae595b6607a31ae13c8b4bc5889f0d3da66cb81adb6d6786f1f6babdf5afb263a0bbd91a565a6f41b0171eba76bcfa08c6e3322a49962bc591acb8fb7fe72ce66af946e1ca798f293afe62b6aedade598602b0534d67adbb8cc042edc70ce5bbe1cd8ea56b9b0d5ad1aa9158b5cb1bd41d8a727e75bfad652ee0aca5941a5a061b54c70444f545105c6b82e210c3fdd49016ecb5f29c4f432a19a281765fc11e3911cfbdda1db1f6f4a1def3fb5e50d83109e25691fffbd96a3340d42fbf57f88d00114c9c9149648e0e78d3acd6df9e7a4725ef0accd0f381787771ff51b4d73c68c993167cc991933c68c316732366748ae6b88af79729a258b79671a5b6bab797ebf2ef05f7ec31e186b3d8edf2b0f516d081f40c2e8c7b31755abdd980861d501755137ca6ffd8e87e377fa67d82f7d942daf0e475bdeaf4b8464c7335fffef4867a3a614003a9df256ce0fb8f2d345cf7c47eed812659dede3cfd97ede45d0ddb8b2b55ee1691658597efc769ff55ade9a41fbf638b46ff7cf1db95b7ee6b740edd6beadbd05664fa7a00db0fad47a056d943ae5a36e6574fd967072b79ece1a63dce17b2fe9acc01d598f74f2e87664bb4abd8d44bfd6fe81b4de52b5204dc706faa9d3290665541eb45b50067dcc4fbae598b6d0bf1bd396fa5e89768a41e0d1c7b5e25a4f70316d498167756c6d00118ffead6116f60aef0a94d62a857ee24e9df04413492c01048d04a5b4d6246cd07908691792e8e9ba4ba205f78eee8f46204ed5e0bd5a48a20423ef08af565a4f4c545bad2988bdf61ad17908a914fdb4c1d532d0175f0c7e54bca09ffae9113e3aca96f88813702ef0eebd470471495960ae0b596f61f3aac03da17b82e3b84b457602775da775d431dcca85204cdcbb95e8289abd507b50a2f667043ee8b586bfd6fa89dfd6f6a9d3a99d511b3beb66a7dfda9eeee81bfddd737b47df704ff70944a7b51bfddd06c1cc0d6701dcf3b7726a4fcf5c87133a10ad8de3c03ded37c21bbd7d2b67d437aea3d433ffa19f3aa19bfdd4a16f7371add55adf0f08ab8ed711f6bbb3c535c045f0eed3933304e2d496bae4e5225bacd5a84a89289293292c91c0cf1b759adb32beb687d0ebe7f71807c18113bb41a1d26ac4064180d821bcfad512c1083f1d654b4a2f3652a202679cb1b842e721a457f433ecb48b02124ce8286ee370a7439078a2f310522bfab9e910249a18753a0409252ac698d344df11dbb66dbaf37ed46ed48daae8f6af0c3e1f236fe46da1dbcf9d0e41e2049d074dea7408121f98e9b4feec91fe884089ea7d1d6db13c84540bddbeed744890233a0f21cdc29023c4d0511aea753ae4082c3a8a3eed470444e8285beac09da42df43d90a6a38ea18320ced61ef8d58d43bfed809052d1ed9f20367db6ec3a1d72c4147d149ac0a327e7c598cb16dfd4e5a90207b1156d44db18b82b852239e79c37fc6d44396f5ed01d47c2bc668c374735089618c37cb1cfc5788970a3e1461f1662ed9c2fe4c2ec038d9a107267a3a00b1b156982ca465510c281341c7a7c3f7afb7d3f0abab3d1d085d9515115a86c14065a8e82ba0d01ad2418ba33f35a59add9320c54563d404bfbd6fc768faa826ebff25819fbe69d792bd8e96a1d09bab72fe836779d57d33bb996b3aee5ac6b395712d0d917828fcb5dd6f5f3469c9977d0edce7ef55aabb55acb251c985ecd967cbc1a0e6bda764cf8f44c7331c518dfcdda9c6ddfbcbbeb0808ce36b682bda7a47741ba47c8d94a374cbabcd2968c6bad1cc7475bff1ce9a0d7b167b4c2888dcbf8725bc6bc2b72ad908b6dbef4e6efbdd7075b0e3c12ddf18dc230e9877ebff24c5bf0dfe84d6f2a95c1b89616762dc63ad966234ea0305b8de0aa14ba7d7cad056a8f95d9af3f468e57da52f3765dc488314d2c85a7f57641de8b39bc4f2ec7ffbd8eb93deaa3eda2bb33312e74c63777748376e6f5f2ce3c1e7363ae88d93a9b9118b91856ff85991736230600b2c5d696a0e4f45f0a79c9935e2e139448ae4ec616ab542a9552a74739519184bce449dbf34cab4dbb884712d529e582724191292429a2469f0b2592ab3145a22a7d26d76905053c3cba238109b1b3d38d50e5edc199362757638b754af588282ca258ac16b9528d4418686cb14e29129548aec653ca844954e46a4c892929e35832c248d245a25022b91ab1e99422511d81a19e04a4a15ea8713ca54c5888e43828167b2f0643c150a209bba4b8a4c0603094882a59912ad184515c104d18c5058eb56917c9d5784a0dd1dab5b7b0b45ae02892ab53ca078a63a0cf0920206f899f9fd13f2577f6614b579765b0526520b60c1252d224fbb7fd28915ce59e1aa4faf8a4c48d816c19349e52242a93885a115128161145b24b5eb5693f892436ad5e2f99970acce52a419a88c2ab538a4465c2e41372ee1971108a632094883257a44ac422e91364359e52fc470943c150a58a68c2a82b48d927ffdcc004c7551966dffefe0ffbe4756c98f761bffc04368c97c06ef111d8310f812df339b6eccf3dfb076c17dfc3a631c9dac58cbda8b91f809d6df63f0dbbe467d8af9fd9dacbf75e732fe061f60e1fdb0af8979d8087f162ffcb36035e66f3f0319bfc165b8777b16937c934bac6e5cef666494beabbff7ecddf6c6fef62390bd25c2c27302f30b239d29224b96d830c3ddf7b57be4f97601d04bbd04467978d33633219126914b3fbcf768e4a8c28032f305a644dd31cdfcdc59127bbc6b7d8357cccc699f1b3ed61d03eb6fbdd29dd446717eea6677d8908c1f9afe47b7df9d3dffd523bb418a51c1747de8d02f302a3453663ac22d1e42373c6cf6473fd4bffdf362df24dad932ecb71bbbba09969971735664c26131333615e60b4d01c08f3679307b45e522be7f213c714427a436fba3fe9cf8c3b337dd7fd0d2bfbbe7b1c9e6965b5771f233443696aef66280ded5df7de7bdc37dab76322c21d288ded9dfdeeeb8e95ddefbefbca6365f5bbcf3e280d1542ef7e01dd6b2c5841bf00e2e03e7c0f0051bb29fda800fa4db80ae108c7081620bcb0ed4f37c027e13c4c237e83f427cea3c47b943e7c52f8a62fedb0e7c6e94ddd9f42cea3871c8591f727598edc653e63cbee636cd999b6ecdec354a04278d222ddef6065a3efbe01761683dbd8b27b3c85cebcb3130bebbefb73a677a5bfb312dfa1bcb31e2eacfbee77b0650745d7bd4d0c2bcbdf3d6983bb86a3a75dd7617ad2f11c992809ef56a2f007dced87f46dadf5398f4a44a1e83ad8d2e2dc4e39bdb3cc7158987dadc35048c8b35d072a8483b6d87e52a02abb1f3f35bdbbdf2c7ac6ffbea48da03874a0fc86d6417886dee87de0ab6421c8cf1a8236bcfe95401cd677bf5a913ccf23c7711cc99dc3455b24f97a706cf11ce4bb5afffdf8e0d9e2a7edae980e9e2feee23035063ed972bdeac51bbe9cef2955515a5f64ed1288333efdc611acfcaca307d254a48b1cffdb67d87578007181fe816f82a7f8e3ce013e109deef3f6ef319873fb6a1cfffbc457bd596bbe57cd88e30a04ff7bd58be37b7fbabeebf819d3c527577c87ed39e8833ffee9e23b6cffc0a7671df749f2153f71174917c8bf376b4cfcdfaa6fedf06d2e6bb3606a0dfdc027c9af05beea5f7cd6c77ad787dbf51ac4f93e078b93cf8136befea95ef51b4853711ac68c2088810e536bc4f1c9a77fc3f8e4383e25bf769a33f96d175fbd6a771c654b51a5d3c9f72c75a954ab2737ca8a4fc11c6ea8a7f8a87d42da6bc79fce417886fd8628d7f3185baec6d1c3fdb4015363f4e3668dd187a931ca77f08b03a6b6e0c147d55340a77f1ff894becdfd74dc9eea5f0ef25d1f0ec2d3ec374695496968bfe43e6b275ff55de77a71f7d43e6f77bdf6096b8efd2c8e2fbe6a9f3a5da5aa1de42d1af5c1c7a90fbe4ea71b24753add3b6c27394c8d89e2db5cd57671d46a35c3c2ee87fd9e2e8c084f0a347a1cacacfbfb313d8aee79957eef591edce67a3a2a90ebb85df5a2596bc4a71f09536b44f03f10dc147c33869e3a303746b559df0ec537c38789b132f1c3b7348a1edaf0ba4af57d2aca616aec9b6165e2df078095b1fe7efa06e10e5606f253a7072b1bf91973a30156f6bdecfbcb616a8c7e9bf594c6f24619ab277fdcdefd52e48f20ce8afcd4ae7ddcaea79fdab593d4f5a93d927bf5748f9fbae2a7b6ede3f69e253e4cada15d7cd73e77581ac6741bab8b086954da35ee3c350cf5a3502fbefeebdef5ffa92f7956eb37f8df83e2d33d7edfb774b87fe33e8e5b64fbbe07b7eac57df2e8e27bdc07d2185be47ffc6cd9583df8b4f3b345f29cd5f7b4f3e8f4c573f526ba47f2e9cac6f7a00dd58b8f5b2b9ea37af1555ce4e3db5c1b0b9eabf752af4afdb74ff0456ef211823f7e4925825bf5bd8a531ba917798ed4ab788ed67fbfc3f6efe93e41bec3f614a7b6fc1f5beffdde274843fff373c7fdf859c2a92d598f777c056fa0dcd5bdcb451f7c0fdcae6fbbc60745d77ff4c7073bd787aeffe88f223f4397fe9e7e2f177f7df8fa6fbfc4a7fcdc71fb47bf0f9f3ec947bfff8a085b34ea833cf515fc511773888fa2a8171ff5a24a07fc11547dea2d48d361078042bd88a3fad6837bdce705faf8d4cac877f11377f0574f6e6acb153f77d87e52e0aabe7b163896636adca66f6d1d1694517bc7da3976d8de710bd44e3f45433fea51fc149ffe56d9a05cf5e05efdb84fdcc75fd9dcf14faaa7a90739b6652a477cfde70edb458e7a8ff6b09fb6699f3cbaf72b9016968ef41db56bfddebeb1718ce8e3febd0e15fcf37bef3d6fdfd03608e99f7409386c794110043fbd29c863d892e23ecab137acccfbfb383c5ad2b7e136278f19316ced6870435d732de3784c0c2bdbf80ffef7b5ce0d3a308418ec0cd1c2097e7073bfeedc190c1eec9c80094f04610556dcdcf7e1fe057c78222cb12d6ee0d19490e2ca5dfcd9ed7ed6d6eddeb7b29b7fa33d635c668cbbb6a5eddb3eb1657d5bd6bff9922d1ab545a3e64e69d746b0582585e2a739e53e8b2d717e953ff397b6c42508ebdbb7b1a695655ceab9a46752cfaf1374fde9eaf9f527d9b3d773abe751cfac9ebbbeff5cf59c3ab99ef99f2a12933f533de73fc59ef39f28f1cf8bf22749cf6fff34f5fc94d2849486f5999fe5e7f7ca6ddad2e6b7d69a56462d7f942db1cafec6f364e6f27bd2f1e3c7a5959d332c5666f9497fcc99d196f8514e4cf8fe92978b6cb156a32a95a91041af617e11457232e50f4bf94960cfefed9e7f945f73f9b7fcd3e9c0a327f91b95db0c0bc3317ec25babf5cb710d223c5d74ec62939d10e8dc37eac2ef5eae8347e77e781bc68f714f789f06dd1e1eee3ed21d4b5b53987e6d65a0ee3a2ed075c7ef81dbf6d1e37d6a2067f082badbb67f9b444f099c7af5ba8e83b4a5fe0fdd7e0128272a9b56e4e234a21fa225fcdcd90be8ce5c41417c7c626a29fbf526dbf57c3fcaee8162e244901238a115f0f410a14d423080f04de3026de105fa620595a9edf0a0701a91cf0b275ebc78e144bfff02c60ae8ccac0206cf9d9943307aaceca507061154f642847e21f442e88510e62f845e08c100623601944dce338d369a9f173f3e3e3f4177460add59ebe7478f462392cc11648264942073041921d90a643cb21e191132203241324a901192ad40c623eb9111212324232423242324232423240382427484e8ce5c45aa5789f7795e29f5f8b3d8b5ed81cf62efec21fb67076d25a03a9dc72d44776d7b60670fd93f3b682b01b577babda3f74ede3be3ded94222aad399c3628808888f9e1d234377e6221a2aa594f62ea2f478ff804d3f12519dce9c473474a4c808d190690516fdbee8d383ea745622348d4a4442444359b0b35714fd3e4b8855c4caf27b9e6a4b61bc9554aafd832a3fc74d442b88432215a21544a2941129202921a91e882856ea47e80279096261f7c5a709e1962a5af1b314353f47161789523fb11f3b4d028580709b66058d19a115d18eec581942d892c7c785f5a8388da8648768c7470f8f8f9d2ff52048533d08e2e00eba76cc223586cda1971f2f3d35806a34d1e9cc6df6c5a7d3f989edc5e704abb1d47c6400e9b9301f28e03195684768453423b6bc6f16a935342b688c8686052f42f4127267ae9f1f9f7e1fd603037267ad1d1e1f4bd4007ae97921827bf18185005633874c2a3cd368b3218a2cd400e2805e7c602130a9f05e7c4c2f3ea3179fedc5c7bef8e0171ff024240add1e5dff0ff8fe49c8ca4cdfb681e4da810f0d6020833e9484290011f9e92982cf7511a59cb80d3d3d44417aeeec05e4ce5c3eb05ade4c52b849144354a0a08344242348404842483de834e79946d2cfde2c42ec10ed1019298aa2d6804586accc2c42059599554045417467e6901174f6f203c89dbdf408b1b21a403da0b21a4da0888888884c442327a952246011b30a669122fd34f4a307355484212586868668600e7d313eb4e5cf179f4eb404a212acb604213b7bbd8fc97be2c7f776013501ab5531d443846914962cfe21da72bf461359e83580accc062cf89c60b53bb3010714560505620edd990d30a0b017228678e9b1321b5840cb5ba4df37f13346a45f582d84d54e58cdc26ab05abf21cb0e8d885674613d3e443e269b668408c80502398132c9400640ececc54d38cdc889c8870f70083b7bfd7d2fb5f77fcab8fa3c96c97e3ddf258f6b35961d268870f0401d038de8ce5c7f9fa5e8ce640c5d5a113d29132db57e8f74fd2765e248bfffffed574f41d9346fd34eb68c9a8c9db1c8872888cf123e20f155912991449196b4b5d394db46d7bfabe4f572912d2404813aa35d800a74f630c6d8c3ef91b2eebefb9ef33c4e6d494d0ee4b8ee3feebfd08be91d09632ff43aeeed8f3acdf193c3946ae6020e82acc55db639e76eeb9ef6cd765dd755b3eb9e3eedbaaed3bceb36ce77d83ed21beadb92e0e8d75093beeffb3069e700a2fb3e1269e6db62baf65ee70cbb0e8f8df4e6b76ddb56dabef4916ca498fef11db6776ffa909f9844b2e10da6c66adff8d971981ad31ca6c650b6acfc0beb4604fc5f7e59fec9ff49899282624b147e7eaf276168df7e66f8e5d78b0c19e251c29c4207451a3fee5a731cc7f5ca6dbb7ede668de10da4558c31de3195db3eef5a33e65ad0468495859ff4fa5a0721fdf3a4d70feb8ff5697d6dd6203c7a327aaa3b8c44fd662c58b9fe92d0370873749ffbf9bde33cf0bf53877b0ad6a7817bc761467434a23823413bce3035968f08b7af5ddfc0fb4623981afbb867638bf041f94504e9f74f5828e8717344471ba6d69c99c3d4187e0ae874dbc9d53cbd7345365436b315e1fd0d07fb386c66588b4fdbb9cfdc66460cfa9383e333788c9396b3edc6fedd42db5bf96b2bdb747f5227b2cddc73fcb3a59de996c7b0a5fd317afb3677568e343fe1a42d8384f44f92d61a5b1bb710a2ba1dff2104be7ef9a8851e784f77fd1ad2af94e60cd2ead3185bd28deea7dbacb1faf8734c0ca55bc53fc098d2edeb3e431d1ef5a9596fdfb6a7bd6e0c521db76f957631b40da46d4f414ab7d79ec7f536f908377e8ef8897b7ebdf11c97777c87edf7357efb30b586e3f92b4c8d65cccffa97c3781503e1136f278f8ebf6ebb764a411b1ce7b1c35ea09ff477d8da84adf8cffa54636bb7fc77c4dc73dce3f7b8ad69ce6f63b9d096faa3ad9c13637e8e3addde2b9cd474db82c22c00681495d634a0c6ec3bd1805ad3d101d0d98cc2ec973c2a45b741696976eb9d25fd81b4a6f6a831fb57e77bf567dda3d600a0066db120e8f6b75a8b286d0171505dd316fc3d721582d2504a533f638edb388ee338cd711dc78d38cee3b88fe3b60e2aa3b40708f84069f05b8e9fd4c83d45165b8aae99931da2688ba5f907a1b602dfcfcaaacc7eceb5e76a7bfddc6bafd75e547d0d83307441e88377edbd381e3db11f26690df40e7b42fbbac710826add0e6008413cdd2b79618efc958734eadbb7fcebf46b78f17d4c23033de74ecbece58d659c3447ad6fb9ced5cec01b7d4769fdd377375de9b4abbd296d10fc4d11df7bdf9db5467f7a9d9b0d3fc9ebdc6cb8d2e4ef5a05286d80f4259e3b6b15e0f4e1e9e94df7d5c7103cd43a45bda282a177afefecc45b37c03ffd89f3383df83a375beb068fd2935ee766fbd32eedd13e2951ef2e7061ddd7da0d9df4a8546cda887ad429221900000002e3160000180c08060302b124c9915815dd031400146c866a564c1889844910c5280a8330c818820c218410600c21644846e80a939c0af29c5f2725b2fab26dd2b96744762875aaffa2a369a49860a2a36aff4d2b2498aa2c5c24d31c7a141bf818ffe04cd7a0cb26466c66e496f18571c71ee513e302041a964473ffb3500092eb6e6c19afafe8a4aaa9c699413979007adfb9ef0ebf4ece24a930f3c8462a31014523cc7bc9788b8bf25ea875e7bf5037f45af0d8921d95af008d30c00684f31451c0b57c27f5d57ed7ca3b5231b7d7293b19bf01a5879515a5ccb87964586712c06f7c36384a805e26197e820f793cabef95292f485e8dafd397c25da945c3d0bcf221a2821259ac2356af74c61fec5a23ef108917127135f855de282a626b2b3f14acae375a3e6668b8c1fcf6a0cee54a408e073294832b3a6b521a1eb4c3371061c7edbd3e2d7828f2ad31812a675255ac78abb7805f0b4c26ac60ee5d6e70d2c8af2efb33ae1ce50d48c889c888e5c34794cd4203f9c8852cc08d8f227e8569f11105eccd85c3330c13db92c644cfd70a5798c99e99ed81991303d2cb5bd866c5e00c2683abe3db0473e3f598615c13cf1236bbc0c8e32bf1457097936bf4bc1c2a4011137d3691a692713d32462bf2ada1a8227ae3b551e68e5c8f67b31509a52711269e3a371cc15bd22062296a95851754f3dfaca806b3f16bb0f2fc33cd26c7d9ca73063d5860ebf466382d880d48c16689212b08d8c10a8bcebb4c46691c3f9e038dc0cb1b8861b78b65744ecce3c7db03d60abb16ed0948e6bc74c1159ee2a48f56547d95835f543ab9eb3bdc41064721ea365917d59aafdf77b06844f73268f62239d2c1fcf1b7c0de46f660e065f2391f232033b7504ca593ce215a969461bd490a26a2140120cf12b68743c492948c5377b47200761a7c5a47ca516d3ea71d031b0a1e1f4a1b3b7c1e88f4d82d6e1335e78893245bf39ae9ee727e1e7c96138b53928ca2fdaea462c0073f76adb194b9782e858b32d4e56265179e0d9a8285d4d358d95afaea445b4d02201e34d5547e487b1aa7bf0b251d8dae86ecfb15c375303615e0bda14440d1827191447c2ae4db3b299b32efa1405a291f1ab89385eb91ea4c853c7b07c18fd051127e0c0e8b500a38116c2dc84e64e0474265466b30371b2cbc19a234e390e0b670648f2317213890d0102513907ab4501960f0a6418c1603f9781414dc672995b91479d6150d3c0794b0b09585abaa5729f26608d7471f34228f206e03a8d6327d780addfd8672a5d31e4c916f8f20befe3f6d0b0a8e3045be532ee486c83dbaf9caa0ca658afc2ba0af7d075922607a105200aaf1640a292c0b1888a5296f0321a38e86232c2276d8a093070286e39efca707cb4d497757ffdf18ce5c10ade02d849698364a5b457fb946434f2a7d18d82268157ccb91520dc5d85513dd61b41c43993bf2ac35971aa19b4c427be4f7919b5838abe9533f8c3c338353c522605852e067ea020029bd49a4e75d90711113a85d8b577e8c110a89ea729786d94351a7fe0f852a497e849d0dc18aba79af6028a1b9fb5fcc2b4a499e2bf0debb7574c24d97eb8cd55b62f828c3549225a5230c0ac62986a478144bb515f404e3ca04bc1e20998898a81d5771354a7edcbb9790f313948ec04ba2b21464abd8a2ada44dbc0b28e585af1545f66fdb29c697b4a568c00d724c8140ee3ea88f404bc60abaedaf5e7461bf2cf9e0d8ca9257dc2bd4351ec660b4106a3a27d4a94e48cba218ad4e96e6b6cbf38bba6d4745784400ba9998914c4a339307a64c4abfd75ff2fc346728e85832e341c6445866f2a36dde6f9df505941ef7bbc7d63e095da15f835d6bd370e02f721dc227da39539ab7f1af2827822e5528a5ad353d4ce205651c728e269785e33d41e2461387a2ce849270bc338875ff8480f087c18e1576ce36afd5972e8d3ee2aff6a256c41ee8f436564f9e18a79332f77e390951ef9032638a8f79b78e74fa0ce935f9c191587114490eb8a9ae9efcb38bfdb972e4f0c15a2eaddd5148b94cc38b42e9dd1b117e8ba76d9c7b933b93308fe6c0af935d7e6c19930ef66143bd8124194ed7394c280a9e6b67739a85bc92d71b974ba06c50963ca07f189bd03bafe5bce92a1088dc9a53e4e76645b86159f2cfde83fc5bf28240c4bc504db3297d81896ec8274faf2c4b96e6ac41f966fe3e42c355b8172ab9ca4544e778a54c4159d8882f16d2f94235ad96b75d0ea84cb7a58c071dcd5c41dd262ad3ac86e449e8e005d17f0a169338113054b10e1c83a3ebabc049db1249504a8a38305437e446f6ca52a0a3a12abace10d2504de9b906ac505bbed35146b8b2db94114f9628d33454c26b599cc982007ab846780d4f8287f6a286ea527d13cdcdf12bfe17fa5984431295bd8315d037a0be74d5502d6334baf38194931556ae973de4c8486631a8975971265943d5db6c360b6061ca5e00e7ef013efb44646bf9e2ce1f7ae4ed7a992af36c0d957eb95df7c84cf4cbb50a73ed8e7c8d26cc46e59e82b9bd660e148cb43a7454b4474b11035574bbfa5fbc2c24e58b8a29b5ac1ec57f8c586df851397c5314ddd08deda9f46510ae2548d842fff54e8861e182dd9b043c541a4eb6d2d83f4a9b9f09ef8f4765b4e3432993d5cc073174b71549a2c8ba66a550e6e3dc5119790e3f680ebfdc8901ab63eab97f311e2acadcce12be82b0960037aa9ba6e974e8020fd2b7bafa581053a0742b62889595cd4375ed34eb3a0f158dd8ff5477ad94fcafd579a868d97fbf62f365693cf05707ba560a32850c4b117aa8fa5a4eadd967a345a92e2f54a849484e19d5babe5c41547ac3996605dfdab36e80c28c52b04593cea223ee11c0755b54de165cbbbfc3974dae0b6523631dde20c3f0a5cc522d895d1fdd7d0d40c12568601b07b9538eda4a0f1579203340c1121b817775bbd92204378bb03c91cfeb5fa347f5c1ace5d9f7b02d29975ace315d5c22c3edc1b348f04be4cecd22fce412931eb2e38c0ff4193247bec5f8e166c582ecba69e7a6e16ea25cccaec4560aee43763f790eeec11ddc9002878d7dffbee273991788e0894b6277316ded5cea272ee08ce5024762a6f194b6dfaf9b498a10b76c8b504f1bbb7f52161377c6fb04efd18750743291200269b4a60121422d69f7399eb2b8cd8ea3f2989771e99b9b55e9b0ac5eb1d268901298710080dc215418776f5be2087d2f8ac8c11bab6c13f0a596629733ec35a3b6e7a8a1cfa7d5d079e2845afd5133eab20b2e9b5bc1fcd7b710f3722642ff2580df10d02b30586c81d964469291503b13d6fd75b813eb0e02ba644825aa94172bc81ce048a2c3fb708746022ab7e2028a7f06df689c8da35418d2d2827857d60f968ed21586a0dba83c022a3d0c8cbab2e2b9f49c95f04f5d722e0bb8dd5f712c3342dd53673473a01928ff0d8fcdf0a9044ff5d4ec2620a9d0a136a49494242d0155c7543a921569b077632c212fe9c1e8e9b88d6115f005f1993faa5cfbccf3c72795009029ea32fe238ada43730a70270155b7f74108fbe1edadfa1a9e5edf7389d60fd6150172c6b07627a56b3fbe4ac3158e26a0eaacd31a4f4eba0069f360bac311dc7b6f084603e845e2f4e824a2a96ba03a0664bb9c6e38eab6174e421e1c62faa88158a3c4886a8d09776cc31cf710c50772ed4bff54a144c35bd8889e3d92854ba53e16c7eaf69b92c9aeaaaa6bc225472ba249eaf7936191faa67e05dfdae6e7b092d10ec73a436efdcdc31dded1868cea5e857475dd653757d89c9e5900779c284424dbdb4fd1edea2a9ff77158aa72286a5695992bab16de1c63f1170ebbc1b277cf6a4b2ef017c1b4028b825a77a228e8a8ba07da813ae7277b931055e5371287aaa1a9b2431b738d959f9a434109067da95b5b5b460068a053b79912223756933994e008a026c696651df497418d3caac42ce9e7ce8583246db2be4dccac9b7a37abb87ef3be2a906e0249ab767ec751f3d325b55e33e1beaaa5d65ff427db858ecc79c368b55146b7a760f6c2589308a84a23406b54a3396b6e0c0e415e07e8d50cd504febc3206510222cc8b37467fc6c323a422e0054a1961f9df7788f3155c2694a9ec42beb62759f437371cc8c36cc4e47b8848bc38d89c63728cb51a1da451c512f1f03fbe43375fac591ebfd18e86f831d7461db3915e8452f8f4644d614a04a163a3c8a08f6154e54a65f9d78f72226edf2e0c0ba33c9f2c8ffcfea78c761145d3f0238c30f2604747a28e1f5e82d30efc613fe51ededa9ecf6d26c1f980798d27db28900ea93c20b9363f68a6e92c9e49928fbb0beb8ccea61dd9b04edd698787ad75a6ae55e1d831d0543157c18cc08e23a633d62d71f285d116631dbf9f4198f3341cee41a70da9e8619265db6f595eac058be799eacd49e82111383392ebb84892156add6a290908111a9843e2528f94518cd84335a23a79a8e95c779c863a669941480f40d0942289b73fb9d2bc99ce9c1047ec3ffb9b336d94fc1c9e5b5eb48392bcf00bbeb1b6ea1f31e01f4ec3f065cb6bad5cbee5a6d3c0f63c7a63a42f0865d38ad0dec32c580e437178a2c464d13da0719b1033adba10915461fe093dd1bdad6fb308fbb6bc1122e0081f0cb2272082cb690cf47b0f6a71658fcd7235517be50cdb14a6caa3698dde8d0531b44b35822e6134beeb8f23ba329d83126d53edcba4ce2eeb6bfcd5303f28199ae5a4adced7883450a63ced636fe968a681e93f61d1b41132daa072b4c9acf424543d13c1a165562bc67da65745c14d8a952ef315ada00c880d4576f0454948d6926106bbb6bd6816fce99283770e65d38906d0a18e1dd3a597fbb87abcc10f9ecc081df3c91e956ce21fd3be5f4ae779dc292d115b723bb16c09b2fd655bd5614ca9a4efc1c95c283b654bb314c4e590685630e8c2384ceb2c8b5ffb70f17e252d45de16eaaa420fdd8e460d61eea59127ea774e13b774f93e8b7d42ae75bffa09ad7b30857d113d81eae3b905408477669e679e41690d7e0ba18535cced84a782d615412b13f4d3957ae848a80d97053c32a6f839e5a38e8b568f5351e4b1d171dbce6c15e5d0f02bf5de06eb290263265910ce8f01f71af1eca030c912b1bb353db2ace9dcdd137d9dd77708561459fa674d546aeb888eb1ac3be96e47e66c70242e782349791f385477664c2ab8e728760735150cbbc75255433c5559d45954f6b73bd5ee3a7b32447d2f17f7ba2cea54126c7a91d4d1bb987e9c1db74f9493b2e2bfb04706e90e4cdc38cec70fb7e5088b658b9c6284e3503f336081423c9b1a83860ae5880b4a3c7e86355ab079641a2b1ce8fe4df5587c51c4fec392f53bdc3b05c65ee38d367859dfb9e2052fd0ffd653e708c05bf21f94d3a6540193214704c84668c92d1716c198cfbdee4aba9b83603f14cd48fa3d3e71aced7415f3d48a9668f0f17a8ad56362da47607cf16125a778c852ac59e6c05225c11f58b49b5b373d629d4dc5903e0a413ec7608b8e06c8d73c14c36be2c1d58035c23ec0576b8cd59f7ebd9e0deb7715e5bc06e7435d5629b0414a2ad2ca1a9b804a11ba9b2e18533d60f208332409ab2a5c46270832e164c39d6ed5a8f18edba9389800701c3ec1dcf405c8ed7c8e68b8c0ec0f0962b23f0c27fcbce4f6f739860a49fb6801242512ac60cc13ce4a5fd28e1593d0f305e66de5bfa5476f704225c736a7239fd68b604e05e0a508c544e161a93c760e3f7839175c56f35cd8b1e7bf7aae1a74425395b42c817cede2f62fee022ea307b50dc8b0b89aa89d9f64409d514e97430d1186ee9cacd54dcc98eebeb5340cf7b7183acd086dce8238360489c4d695f1728cd9c892a6922d262591ec8e4ea82c11a6e47e83dd1aeb9059f5daad1c7156d59627b93b8a7ece9dd480694d8316251a6602d5e1866345d14324406afdd412f471af3dbb1737c2b650d88b91754c35f2a235ff84ce4cece409fb309c0172e35bafbe7ea3ab7640edff45e7cfa1c3e2a39d237c126e54110ae88b427074899e47ef6259856f6a90235506e10cbd6205b9dbcf2e2e8300bbc51df43a501b5596409fe8ebba8de56f7d3a69d80efbfee28f1bae76cbf3479476d90bbdac15c503e967fea76be7da85f7cc98001112630b0a07ea73e900a099eb2c465bf79a1a7b538b3250421876719fc7159fb332d7563106ecef0f9b77aa2f329762787614d748c13a7e7d3c8b048dcd8c24d297a0cc6e1d39f7f27cfc0b31067b5e496a24a1aa1e3f4f58616fcd5f03f87aab843fc5b1100b3d54702d997f83a555931054a88fbae60063d18d012cf254aed1ac17e14e0e01658ea846675a278b6c4ae1a1898875fe9805f97ebd6290965c64042fb6b1926d7a8b3b80525172f40554bf52005d8be5e08eb9060e9138eb8a33196c367d5b938395c6f241ad833c15d1189c984801c034a15c3b96167a4218bdb5232a579d65ffc545c8ca01881c4cc66e2a511df875ecac9346f31cf1458c59f382773e6837f665441258447e47e3cc582bfec1eb3b7601a305ef26d1196ce0f7e5a5183fc0261d8a1f36ff4934ae4482d9461253b316754008abde85d0d89b2c3ae05c6c1fe946e88d9499fdcfa3b4b18148a35d6c3c899f67f979d7a1eda52c16b49f0d1d45c0851366d5ff4000ca6381019fb7ae680623700a570083a7029a0b964100a594a723c20cb762509e0ca4bbd7770d7814d440f60ecda703bb58dcd625966635fcda746d354703d65210f38a7e11faf59743d1f9dca4407fda824d680728f7b2bba63a5dd06d2487a3e0e0421b6a97b2df1a15e59a1fcdc68dee18b4baaf1f51504a0b1888507b71e1d27b016ed0e8d1c83d531069ec305580f8ecd1f67ef8680c1d686a75f31f6bccf27f2dadfb4b5a10870aa4bf7c349fdb3de4643e9a17750ffc11b682327ed3cffeb9e732e27ea5fa4f4ee80bdc88ac115df0535118b685382a01a74a1ad3bcbb590fd3c73b04f959a852f6d4dc0b4ad2625844bfbe2db583072cf4934738b0fb7e28da1dfad7ea0c588120aa07fc88406734b727317df455f30cd028558352f3bea38bf38c4cd79bd0c9f1113d33d425e7fe7c653b9bc17da0009b0c44b17fc7cae01dc839dbca77827eae90d96c64b902ab6119358d59b7614b6f2debd9e2d57fb2514f2653931ef6c322425b14888837cbe6c8194ea845f61580e4e8388f582633035757e950e20e4339f5175cf04cc981fe3cbf5efd9cee297f24b736662e308a5427b3f52cee687a14ea49c0a68b5d3a9bb042b8ed443adf8ad89e74f2996ade88904e8e243a834665ae21286d26b898f4cdfeb823d9114de8c06ba14dce07eb4aa3eca4085e08499ad03464b6dd12645815d93ba6ab92c7819355bb39a1eb2e9a297a9acc019ffe32ac618bc23c46f68dc1dcf3168b902fd679226f1b9c331c0fd2dafb6910a14cc3565087fa26fe1fd69611c9fe1f4e7b20ca83729a0f75534e4b28025912502354e09500f3ccf16725930a314e2265e25c05fcd61cd50c88fa78f2d7da01ea6a8de169d82e418ab4d05b1debe0c1409010926cc4c2d83cdb28625c6f3e751f66667b50c261128cce44e3d39cbfb8b0d84400a8229807db711031d1a51a6381cb8266c27272d93e89968484004de7c06b08351b0d75149663410ec414dfe2c9322b00e854fbb60f9117c468b281a0c7b1b9253b3c9ec6823e72a449c089910fceb558684ed1061ec4ceb1eb09b71ce2a9f47f6c8b3c7598f5b46d21b61578b71e643141fb09be87ec42ece6648303d3ac38f0af52d1939ac718486424832e29ed4c4f072affab0e1fe7bb09a72daa7be51130d34455511628212fccc90b5ff8be95eccb6ea90ec389798748cc54bcad8604c93b44102fcc510334f5f191bdca70f4b3d8fc6b382a6210ce5d61f1fab720baf06790068e685f8b242b7f5a31bca3e32f8507452edf83fbe065d098fee801879d34c4166bc2f834a8d7560a2430028203e66df7d2c8901fafd16e5e9da9058ee9b3f81f7d30e630c401618b0d613bbc967c6dd1c714ef15fe0c4067c542a6cb1fc7dcee5b3862aa792cd90fbfa3137b023174bc0deb1d6cd4200f94b37dd88bc712c00ce33afeffa972647c035e888caa77e92c9de1ee53c147fbe2ba5198d24241205eeda0a9add5ba61a2ad5e3863521beffb59aabf3cd4025a3497831a27b09664521568513fb0f33df612714f7fa353a9cdd1bdea4bf623aa633caaaa61ad066459b4845e6dc2135fd294079f293d63a6c6b918fed75c369fb7df329606c8045aa1ab27f2ac756b22f2af30087bae2767bcddc0580fa3aa467481053722922bd2f84b958dabd6a8c8e0b34127a42184430996b3a8aafe296679274e23c87f202c7e99633844b3f57654d557dd602d9be932f81a4770083ae097560aa20201452dc64d2b79f824a8aad203927dea8c977a48ec257658d3b4568648fe10c2436029433480082400b0cfa9b5b1375ec678c527c45471326d411b7acc649f7fe5fbaff834637ada524bae2b18a87095a83a2c626903187c00a6b3f1cec8afb469f709f04b7184de0fdbe542c4d9a6ae77d46ab9be2597571d319f407e454fa68fed06e3735110ece1cf3ee5ecd8a8965bfc96d7322413ce1153fd262f767681728988d46fc0610fc5dab410a98b6c2baef24c39c9b53c4680b37a831215f59ad902d3fe16541492070ce845a302744a9a68d4fdbb7c8eea591c283ddc304606cfcf84bc88b3afd981145b5494ffa6283fccb70eee9e23bec60b384425cc03b6ccf999b2bc5e6e12830ab249da6ed4a104946ef93664a083da64b62615d26323606f91b814a5e026c28ba71e0947965cc9d98e6864d763580f81a2b22064cc14f70b36c3d75ecf3d0abfacd0694fa0ef07e17aa4712b9803dac9193fdf9e8f47806ef516593a6b837f0a297d3b37a15574df646d2a1d20bf0cbc63e9e0106cc90caf14045af04f286c35cac7329b7ac5a237862f99e16563f0eeef5a3791b7c85e60117ca6591a1c8865928f176a1041f50008144c14b30e76b69a837373c121470dab82c78da14a112047274c6c7b155de8f78ff8e15591e0e74749d21b70f3808c3ab4a6cb476f1c4adb472942059115386afaadb313cebefc4ee30cb9608e1d4ce9f251a7b4d172af6180475bbabe83d08daa374c4af969fe80401d05636fc3c6778102c9af96a56d0c6e2586fe2e336a3a0fc0cf3994f5ad38b0f09024b44ae32bab37e08ec963da798691e9f0fd5b2b8723016ebc7a9a55770d22362c8487c51dfc5d221c87e84c0960ace4b73c591f03a169552ae115a4a781fa100d81b068e6bed8f24231b08b5b1203641d7ecab99ecd1414e0e8431405c817f239cce371810f8cac14ed002505d445c9447992c747325ea74af4adc4c1424a0ea94c1eb5fef0e6acb4ae1db910bff512293cecfe65f4b4ea7210819c5552a3978d5c85748e2a4be4d50d2c45ac1fb381e0da04f4f990b3fe50f381157f0fd1db526f63b5c1b3a008fa6e4ebd524eafd60140e8ee3cfe0ed4c2f56f59e3fd67a0b1e3d77080c67b9d9d1926abc4a0a07d3e87b0ddb7c221d717435fe50c39cc679899e3060215b9602554d3ffe5fb86b31e956a0de2520b849dafcf62d93c81c5e5e0a8652933b095434edac60465c7824da604b6a80ab91aba555efe1d8e8700bfa11c90d8666c9c4f8b06a335f5692d73bd8aa2d6d23baaf532c145b229737e05d64a5528a5242f11094c5cc9ae197d82316bf7fbdc77eb98794fa722bb815c5830d49b5259b5a2a6366d77ee1fa526fc215c1233ef320f673d43e85681b4c6ea3046bb5f84a56e34d051c544fe04aa1b8b3984f37e317c6cec76f0162cc3894e11c7318a6c21f453b1f7964b6b0f2a721197cc971aa0a46a80a4f4f598a61be2a5aa63ed3681d6c12252b3612233d858958d3a3d5da6e5acedbe0acd342bdba90a834e50a8cf5b07acadeb879f0c2df9083cb5c0a885b55c9e274d867315a5f8b1d2bf92e56a63e40b798090914d503aa94638674255f46485546a536b40bf89df8bd98eea5c717872e62822a73fb465e8bce94ef112252521bdd185d48d1b0868bf69e088e05f4df66122508e87c9c671cb2d805a2c3e58aa29955b7a55bf5b1da2557ffa865d73e3c4e8291d81db582921e4b6af03b7eef6534e42fda2856a785f1aa8459d5cec9506e9c9f1c5e3dece63bcce2039ac2907b59607dc7d7185cb6a487ce144de123fa7f80eaa7c00262e88432db4442d21888ca8bc0c955e2d3f45b8b76d0b3ad8b18f491b307b29f7f91b6d9ead89c707853021a1960fb09309398cd77483ea6b2617641811d4307e6631d8ccdfdf6dcfee0fa18756f99150f122168d4728a78ef9fb1012cd930e2be3bc9adf7983ce229d9d9a2d85b6e4261cf44ea86dd51da2b6cb12945078cdcea4cd48095d11d801116c9bbef3363c17c6249be8873750883dde61ad43d592322dc8f3e9cb3e0e0a94aa206c163a7eed9341300f96ac199f025c2043c16f14b7c1ed93a1d607103fd21abd591f65e4c6a4f2b20a992b3dd917381be7f7b9a21b0e8ac4aee220458671a2572b1143d85d37385645b9848b93c1e2ce232cfc8c8db3f22940ed68d90236b0a4a01d44e878822d591544f5322c55b81a19aa7b6f5f04455e9a274a8bcf2bd04148bb0a544111f8c2582f2c0401d9e3e24c2d490115c822461ea936138ffdef9706910b7618243e9461a35782613b8cd16745116de52576c8c8d8ca32db76380c422acd76a9f9881d4b1e85c66c21c6053e6ee1a219e5b7421733594c525d1a80919520cc29a54b1d4998c785ad364e9867d4103be0810cbbb596cd8529ab7ba758f911974187fa5cf4db633e07e7b2d284389ab2b037ab81da6c80ead6ebb78d688b367bd12b6f80ac60d2ba0c42161852a3e9bb17e05db626ca45c53bfcf84da77e39a7a4c56e0889e755835e804bf987f671f96487fef48d4df057c91b5c6a998febae86e39cf36a01a41ac7b6e7a8a097cd3b5a2dc4c628741343104ebd2011728c9e2db2b0975267b5c49deacb0608e02f41b6369c71cba468bb75d186cdb10b4c61a948aa323ab1585e4cb37ea58ad12d7d981c7d3f4d2384549df6df3e996ad999f4b1aae8565767dd9f85fd230ab168cbd0af53b3361e39865ee283b82c2f9a8668d9a75ea6221af28f00da367f103eec98e9234fb31818f04b1bb12a5b968812460070224bede0afaa6b49f6a4602cddecb968595c040505c206f5d2f2117e2eae6a8f0f1d2df435d42bf179399ed4d09025613dc1700b73a2787bab42fd7f5d0fa5ec8c9f06be7a95185be38760405dd8bb6ed1c574b9f2ab866bfb9e7cb3cf6a579997bdc2a68bd216a08c1b8317ba51b421ac14b1110605122503a0314558f7d9ce69fa6a2ed7e555de9336d563a8f103fd28f5fa59561749941a1600cd4b75805dba295fccc65d966d40f6a22e8c3be1b432b0afe7c3709e05a427796053790166202286aae4a527148290638f76a5c326c5300f42800000f59b7b8a6c8b993e05cda80d864293af161c3afbaf5aff343dcd0e86d021ff57da52143ca596726c420d6a1456f8090a3c2e211b53519b3ccf29155f11aefe0eaab2e620fb5368a4e0c3cad8f9244492d0b438374f0cbd5a91134a6c342928e7f11ce3467b5ec98514dff18c8b701403d880d6fed4249a2528e2a4226e9f9d1267eb9701c7f8f8cd1385981e4b9254fbff9309d7fcd68b061e4d62153aa6dd3300a5731622d22ad74dc0515d45a66e44c2ff4b8218d86b32be01fabad359cc1254ef91295b1d48d4b9462e25af1d34df22a518c744af46f7453c5331047c3b0d1ac2096ff89518960d5808ee619b3413b436cd5ba57f5664566811879f3026b2ace18861f6fa3eca21f658c708ad62a8e41bcce2ba2ee74111ce0f822a4016bdd9a2dccfd7a0b888f61bd6286bce409148f4f608809ff0d4899bc5756962ff5742e18184a1ba8754ecb50af4b761011e292ba75bf9b9ddadcb01e0a68d5aaf5a7225b6d627f4869a674d4864a80d540ef918250c07422f342dc2c646929f316df90ddaf2493624af366079ecd38cff236c18c47dd6e6637bc6fe1052216272b53237d512ef5393460d2dd0ec2189464af70f6b9543d39e458efa9ce8030f10c4aae56a53597b3bbcf8328c4097c884a1919da8a62d543227d4b40f91ec941aad219239a1ae3d8424a7d4b50d91e4b44c51cde98808b5604d92e8e16a7b0c84e242f17154c05c0e7fe311fd300b5680357ac6256693344202c25c37bf30d1a49a1003bda0ed1f955eeaa28d9426b074d3c24253ce58cdff25755da02df1f9dbebc71a04c450ecb803872a9d730a27d17423f4992a4b936061c274bb3853647044e097101c79bb6870022eddf1821d9e93ba6b2f4cb001a31d0c29de38544b8c0d8c5ef89ff71878286b729f83841ee50f58d875af6dec9fe6b6aac2cf9a607b348a8e10a1cb756fb7f3ff0c48ebb2798eeb2244f04b404c608c10291188d2b72468bbfe9bece68d4d7e93aafe1985ce86f47a7e139b37c568b42158252904f0411b0dc85cfa53ad5a54cea72096577a7528e1c205e0bb3400a8c6c608b331670822a7c6b690ef037bc1ce4bb692472a091c8689106bb69b6906f592b653d39f8dd4f5e589537c2fee52758f6acc88546809046b440ac0bc9738089c3873afb98ed1a1c0f669eed0e75d5a3adf2b08febe65b3259321a06e20b084d91efcb808f5c7e36f4da319367eb4a0eeab0c2b0c43098e2926753e5264ddfada05e5613c2289d87348928efd1f84208a29b619fdb97eb167bc975ac58ef72caa29e3a7f5ce20b117c3f90f79ebb1a3580797c0dfdf055cd2d5613ca0d5d45932878c9a28a1db4bc3380d521599800195454b4442f37215edad215132618ac9af5f132514b94d724388c2734f946c4bd003992c230ac1615993689eff32c953a3fd921b70d2cb710157b6adfe3203f72f9e74bb61411ff92c07db67a9733d22a2a4270125faf0a46bdddeade908a3b679c2399a1f1878d20b174998acec471adc83e95537f2ad5596de65946c440bd0c6b52ad36928ba9add44c086e599363532e70d71b9564da0cba18409c62b5b69adaa8c17bd64f092cd7ffd6f49b73a50fd1501ada48c3115133e599f49e5021bee01f99915d11018650593e50f4e97b81cb751317a4c430f2d4df5867877e2837881a86d739ac0b1b903410809901911282d9b0e2568ef7d1e0d951c5566437de61eedc01e0ea942f9323085175e999983af668de588d56815ba162d556d85a95518861a0255b07bb0603f5eaafc90ea0f2759354ead24d350a9aad227bdcf5d0a599b9208fb921e74e128c32223933f1ec2caa08595e44ba7c1d854efc1a219090dc5b76bd0dabf17fef4a08ef0b7651316270ccbec50698b2eaf0f032b55695d69c7c0d8ee491fa17154aeb0dc30e3dd121cc1b5ce0b3380859e6407413681422b80a720206fad3f48ca45d2e928ae142d8394205a310b1e739d4413958d77c7ec341ed5345744fff1a43689c4140696d8f7e69b249548d35bba119238cf240df585da982e20dcbe4bcd77cfd75b172c2d7cef0ef80daccee7a6b7898a79e93d9709c5c2f584202f8325d934b6a44fa03e63358592557669b8fe49aa482a0e84b274ff49def87bbc77c2a462a85ae8a491ce33ac2875d61b409f104ad53334648f542b25b7a56b235bf24884b3b2d99b1afa4dde0eb87d91e958ba5e68720178278e3ec87ba9bb19977d05320703315de99035143ab508674efda468a1247c708ce076527da85f0edcef88e11830042c4deb28820695d7cfbba3de0b9722074814ad438a06a88e3ad459d413076c7db4a6b12971e082aac0ff48a924c50bcb0748cfe0dff228768c09a545a10f51c87a2ba4903e4aebe458b3506fc90a9916a56bc5eda7c8d071fbcaaeccb961037a6216e500dab1d8ec36a6c0d3d3db3b71a22ef5f611efe2aa970b0cafd272af8a7862995bf03c981b27ba0ce68b2ccce695dd51ade4302e2acf953395f14de5dc6d2d27a179a2de4ce11aa2b15344ad8effcb8d138a2e7ae845df6385adbd3bd4f4ed0e64dba516b7743f05c7094de1f691c6e50ca364edffbb17525d8325fcaa6c345d898d4ad078859750a4046e6bada45d1b7f96abb68ae450a49f829724a9cd9b0a93112963b496c9227ce963af24ef3d1e4f9103a8d667b0f129104c384d582ad415268e26f9190c210c178c64146920895b735a8a87e5c9224757efbde105ebf8698cd4159a78fdb59ad92c1dfaa998b821ec3869789468d3961ebb4cb5187f54714d624108f8d42aa05fde419164c4836b60b8daca3a8261c9f3b23a45eaa4434511031cce74c71003df83b808331684372b5be0bca6868420a24ba6047a41ce8c5c42604822a56361140fc29d433dbc40391e16e7de303ad9076283ec117b9cf4f2b90c1e2207d9b104a84f4e5c81ae03c679c9c02c9f806a319331f70b1a4ac239ecb0405f03361584c065a620ef6da893c1baa4687a5e2b1e949f7ee46251f6f4e2f1501256cbc2149ef9711695943a8bdb506f20135345a6874aa69a0bb782ec982743f18e2bd775aa7f2c5c5c60840e8a6472560ecf2caa82520a32ae180c3e3ea65968313f6288a87fff051c909871e5db703064892d206485ece64ab7860207862b568fc14c3aef52aa8126b314d8976115ae68f8ecc6c23e7c142734eb948371fc871e871ecc4725753679215234ba9230feb19b6bc2548440a3a85a02c9edb89219827a49a46ec74a7e29b4af328cc15a0f826b1e063e54dc926481f2ecf85c39c67db8d0926ec39493f061b828c8a30fcd983574e5abeb6cb0e84adcd70b882c4a1b66e1b3be9853f5a12bcd88e4ea3088195d69893e812f6877e8daa28077cc6374e5441f4651b54675190234837b7bde0459a783dc4957261d5ec17c2506a0db3ec0a4313813469a260632e054febd8e74c765129370cc2c435c02841084d7a16f2326aacdf402803740d80a51e95d597bf4f96d520b0c857a79096caeadf5a64446a12b31b0e84ada95a6d8069598971aaf90b671f65729227e7f6434a2f2591766263a0873af4107c11b4b194c894ea02cc8de4e8cc4841d1d739255b1ece4e0a43faf5849f31c8c34087498072170c1c86546712aa6e9a85724afa53ba6330d589006db5792568c9de01abc88f161eb1242c19b689d28400563556412290e7b459beabc67ca4bfa2e8d452d0660e85ce2f5d70b8fa9cc94ca9a4c4d333ee30b68c66eaad8ee95df2feab131ad60a05eccbc794451acda0cc2ee95ab800ee91b838cd6052cea4d4000bec205786d6c5d484e8d01db4bd80c0ab414ad610c31df27019cc9d064cc30a914f80817d9381521486fca2c1a072a3ac91873e7b1d15671a242f94a384c854a1f765dc7d38d5655304c116729cabb318486ca9b8070a9148fb819631a40bb280238933d5fc5fb7c65a7790348fcad9faf9c21fa02b10062d9c73ad072a31d942cad92c4fa90fa0a5dc68eeb0482764e9d6804953500a1be122973d2c679df22608598b46a6e37c625d5eb03999a4fbf9293d0ff8510f72bf2b2bfc05d87b6780ca4dd70bdfa139730b9f4cfa56e5417c0c2018be579f68e08c5f63ede8965065fde6290f744081bb2416dc5241f23c2da8df4a1754bf4ebb054e6c6c0a2c601a994840459f91816557426228382b36fd1d16f63ecfb1e7f47bd19dc0816fb129049f8576fce83927cd5d916b1bc32c1f239bc88c84b132ca19f3bf1bc4832166412125929787d1e418b410c84c318000816587fda40c64c801016b20dac2cda430a4b9fb715c3b2b0d81ddd3a5c61e10c04c3c2d1936109c5c0e66f99ddeadf99f1c32902efc51512840e79714207362386e59c49186749388405eabc6a04fbd3892b5a043e7c8521fa03312c6b8b7a360e885da65179382ce38055f3687d7c5e36a26121b79fce1a169569bcefc60dcbfda4868ce79bf1688928a58733cdb3c9a7715bbad09eb5d1b69ed2e65934ff04ba462c62cf6588131f1691dab87d4df65845dee8219752f0bde0a6c8b913606518d8d25a5f3762f11f0021b8243a45292b9dfa8a90631219003cb29c32163f4cb9516b97dcffd7a73bc16b027127808a0e54e82014f45849e2ff129ff6a72b16a83c05388467d0e519633ef130b6f61d70ba584c48f3d2b2bae817f581bd2b97c9c3a344f857302477775ab7b5c532cfeef107cfc562af3d835e2e1641a98692aeb361ea4e1a4762b158951da627938464a19c63590adc73b1080cb4394f0ed2ef0cd5bc757a0ee3983d68e0407582eb11f7105019d9414d291bf72634e195d1e7c532b70203b67fb1346c5c8df9eb00e3c555d15f2c0e69323035ff2bc4a4231cad2dc6820b0a7d58eabe31d53eec5ecd198c743aa776b11e9b2ec6e289eac61a47c6f22987c8146415b6410ac27a67f01339ffdd9e33164215b6c95391682cf354986c1629921a0b0c92bbf9f81a4b3e3062984fb4b1849421fda2cf8c419d9d791abe666cc90d92053b02a53eb4b1603aedc642f59edd907531e7557f05c7c2a13dc06d1c0b7253e2579a25a356ac9ee83896fc2da7f88eb1735bce50aabc91d67e400e5e5976979d7e92a552c4f6e031ea12c631a9b948c7e261be6d5387b789ef886ea9abc4413a96ea9abe44f9e32d1173d062898e27c52ffbc1cca0673278b8102243ba05a452413d496e05f06cece003f6b1180d998ed1711a13de6239cdd320fba5a2de8f7dee6359d905a83f16076001597eb4c449822c670078847be0313069e924bc2e0808b2a484dcbd6b1dd26ef0e1f0d7ca62d241b7c7a1d05f0a19800f3f0431c22782007007b81a37a630e27cc802c7bdb718922121dd1fb2ec49c73491dbaea23079c802f00b59f660d47b972f8022c4d9904485fce121cbfe7674159244168db3a13d2bb2b4299b98d005d5964a2ab2843287b14862e5e230791f81cad28a2c82cf1fef0e8714093b10216a1a59cc003f2100bc234bfb63c43a1959220345161d43bc69caa42cd19b8a2c0cec66a4a3da16682625c050f6c86ec556433b3074b8824dde9b6a7464c1d87f09812aa9b4ff9f510da6c49a9bd3ce8c02a8882f85e903d489950f2c5da73d348338112dfe6a5dd9b6e6d702a20dbc2633dc61559b40c9225a108b6431ddd2ab88fe0619089345271ef35edd1db3c9d0e6dc5da63af90c6f64a6479345b41fe22a5fc5be75472ee760b2ac5b26321652f9be8addcf64d5f82c46169e2f531cbf5471e2ae12007b02094b0138693559b664594e9ba1817d4c9610b19a2cb3bdef6439bf1e98c7454b9698edc0b71b7f4b0f04e29a902760136c62a161534d16ebf31a9adc8060a863050bfa11843dee651b613e8912f5401a1ddf7bb2c01de10f58c707932e01dd0c9174d735350d622091834a49c385ecc922218b19ffc953df9fd18d285ea8c25884e2b7280bcaea3e122d329c2bca420e35327a554c37035eb5280b7edc0acb180ce0b42ff4d963c19a31b12b0030a1283719690391b2604825cefb9560d1152ef045ca22fd00939bf16c5155ced86d3873dca86286d019fcd4bd0c995316a823cdd8735416d7446d6913b2ec2df9cb49571743d98b41c955968fc6362f5e24fca876a395e5e240a17772810b2c4bf3ed602756e1f25e7e26c0b20c469cade9581617803d5b1ab32c94aef6a765b197c2f8b16581b871f07922272248b5c87a7d94111563317e9785027674e8059c22f2b3c122c643064594f990f9a3b4998387ba454ff0216c56da5e9693197b3ce9f4cc35394186bc964032fd78ed6469308b607279311aa678ad752569c8c12c8b8bb3598286209d7191c30e9db973e31d7c8b41922d283237300fe5cd2c17d3b394245d2c82ac167c608b59263ec1f5c72c622dd353bbc73c0ce67d995da21ab1fc62161b138d90da4c04948f20c78f8a1e01a994942015ac20a412898654c68448a51f14a98426b36ca2f85aa58656e55f652ed647031b21ab3e597d1b549b2d03c72ca8765591ff87a3ae659660e32f3d5f661604e05ce8609e84af2c1d2c4cefe6699e338baf5e884964049c595ab72b0821aec05cfeeba3240c9c599ece4501b340a7677e0e726601dcf8bfb3c89fea61b34cd36816b1335c6ceb350b9101bb4551ac9670c8271867e907e5fc95e1420e999c258f7f570e8a72f3e7138f9c667ae6faead31795f3318f8ef23fd2513985a2f451fe9e3ee6247a9ba3379afe1c256056cf84f8dc44abf29fc0e631cc391951d81dc6916a5bf5b1e78bd8f86dc5e3e23fb855e5465cc4033f30a28dabe131fe70cb551b75d925588e8e62d691cd5dc1b2f63538abdd6873a5884a51297c2b8d3712b71dc5a481c788de8fec418adc7c596eb2b95575d22b3b088b25d73d2e428c266746e935134857dfc9222a414d312ab6e9e2bdee714f10a40969eded618bc0b8fd1d06744fe052e9e1ab5e2d8ef618061c56db991f84b4c01e5445d37880ebb6a75658e8847f58c2149e308e6182746ce2cfd48541c7617b41ebd322f13ab02893c56427bf927c973f7f9def876151806870da28bbebc0d42ad856587e4d3a68d961274308bc10cb327274047fadaa616b248dac273df15a6c0b9e182f1a2f278527254a9ca7a21114e99d042117236cf99bf0fd1391587dc41866c0bd5d6212c2426833fc0c25153cfd43c5dd7bc13c15773ff3d3286f63879e087f8c8a967c9b39903ed90124bf88e63bc23fc62f47e22bf7653f840fb01403e96edb2577ebbe612b8faee72188378590bc1c6380b7efba778982e345ac0cc7184a71fbc6716dc9b339104a9e3eb602e96f10fed4bed860fac041ad055f0b33adcb963266a876dc5dfb8e8f4cdb3778cd6334ff9cd37a4e5ddfe24565f4090af99eed223fe6be72a9f324e12a3b0973fa7957cd37d0cf2632fef8458ca6077664eb4cf775b344dd057995fbd6815b1279ac1274b82080c83114a58cc3830222c7a8683247b8ae7db9abaef1b37981d43fde814c021edeeae87f3802b9a1027f5e4ad58a53e02223376b42ed2b3c135c8e7e2d0d19cf07c8a1ced4e1a98cdcfb8123ba80fc980661dc09d9ac17edcbab6d231610246c104252193f528687f95808fc2af1202442a810b385ba232b2388e82faef695118f888a50995d9d47c091f65b8ee02987fbd8978b6535f6ba60691f751a3892b2cd1fe4bf5f5f37a24649d8d7aa916cbfdc61dd24530723507f4c1ab53cc798c3d997d183cd7d1b33da5ce0a3c40f491200ca2cee4b1b9c44f1f32bd6ee2bc9051438c1fb1664187d0b27a8e8b302f40ae34350eb16399facb2a6109c91bf4c79b24657481c8e215e89952676b5fbbef284adde3777f25f0fcfe8007d3d0fdc1683ef2b801afa589e7d5f69d4f3e14a332d7793536b8e61cf795f16a09fb5237e28d3def7e33f012e99df1b10ca81f3800dab912fadc9816dd6082088d0a039369b4b2ceb484e92cc82c6320b07b78773cb08d14dd7531501f4ed76beefeae7347e39ca7b429a7f5fe09389ecd058d0ae8a35aa7a23a3f043d5dfd740e48f2cdbead5da311943c0efa5a3358cc70b5d4d1c1490945295d3ca5934a24b60458a3811207c0b6ba43b7f1bfc3a47a5842b6ed1f8b99c2abdc6278de6c9c424fd7d51e67c0a01bfccd7549904bfaa37a126f15462adc1a11d8c5e0088283c3e92f021714efa7d61be4448235e0aedc94406487b539fc05d07d8543f4d1ad953a79d266400942ffa34b8eb0263ddad9ea0fa3ad79255ece34ae3984789f5efcb9ffde127441a68eb253bf6b0ea530ee99b71a7af72acdf918b9358b8d54b60c334725e23486b01fc061985fb1649d64da2c927682028a149d1031d415b6903fc7ff85700bfa41fec4601ea04edf955dc9a4647a32ed01ef05bdd35d3e23fc20b26e93ecf08f875776755878063b5a7e2b335344f1b541b9a9a909e523d05144f838912268c429d46a7f01d0a4e74b61055d4f7fd888ce0d77edf5a4e0e8c0fc0efd5ce483af09b61a079a56d9dddd40a1b3fe03b9cf02b392e0dc32f97c888a87d6a844403374f0a38111257bd5fb8dc88d8e376794ee2a229e94e03904ad3793deef4150b4606dc9a0ca3f439bc433ad02574ac9303f87ddd07144aa3640956af167e456150875f569e885f6f53fb8f4421ca86269e4ea2a7e6111ad348ba469aac3b3bec6b8a2764a44d7593285de30bd7c181508cdf5769e21debdb8043f61566e877be98d5aa96dd237f0befd73b7ec5f3be046cdcba087913c80fc66a41b5b74cdf6b689e50c3177b6ab2d6779389f9ebdb0c5488fcfe9c70dad8db4f78bd3e3cdb9100dd29ff916ac9f66b8d5f43d849a6a890bc500072077452350d54146fe48fdf0ef7a55ce417f88210fdc4c6b2d0d3b8296189033efe516d73a2926535dba62dcba44803181b59514fcb9a2c1b925fc3c0604a40f1771354d0e5c47c10aa69e35fbf1f81ec9a332e64b5d392811725b6afb24671b0ee47768bd60631bf7292186103406dec577adc46f50e18451f464d50a365776ee619c523ed3a333540b26c96ddc4ee3f3d3b66de1ce328aeee288049b4961af699ed7a8b11290a1cf3eb89660b1060fe0b88e96cb6d87c9b476ac2a2d0c7c308b7284043a475e04591e467518ee74e0a2cc4c558ae5144c37e93231e9e28ed5729271921658485823c186955595ef58179c2d34ef751f882d32d2a42c257a32813eb2d6b0cc425838206636d8a24c45294604a83cf904695fd9f498a344af4f86138dc1da72ba10d9e14907f93732521ff243c1fd1affce3277733abeaa7e8bacc82127b342641a747a8045d7d16900215563e80472ac5d28b59286a219838de582922ee4e526b5aa3d7c8819b43f6f14ab1012915490b3766e4db13b8892ede10b91e0303c6a2d9b29662309696023722cb183223cf92cc946d6a7349269292b5ea5d538a1acd75688b7d20a9ec301990e7551513dc6edcf0c38ce84170ed947aca9381bf4f9958220bc83589669a23335c9101054330477e750289fe559ed84ea0003e0ed8be038202284c82b593d480ff0fe2eefebc1af73fb9be1c3a550e866323ce168ceb84a65550caa45e211b3ba185862d37e0c56e88eac60302fa36d45acc16b4133c1ab27434d274b184c2df114d14ee32dc4e10617e08d38080ec77f9b34c42e30973293c2340470308d18c2798a7e409c3f5e3db54bd304f483a561e151ccb70f47902900327cf33557a8297d95cc148ec31d4df7d319d0b4532c9cd7ded09e75d98ea038e5eb63eed092cfdd14b16039bd530a73d01b24ee0dcf2ee89e8fe181e1b2570fcc32a5b6e0af0c127706bb74821fc44a3dce2893d215a35c69ae3e10ae0cb7d5bfcb2d9971ff4b46c648b9e1a501398c450ecd3a402df1f70fc84747a0458cbb24437f5850b1c1d080263c71aeabd36f489869be41324f6877f07ab2a16436cfbd28643dee800d627e8512f41716ec08a042f6808d87b31d669f2694eb3b095aa990041fee808e627be4a368153f4bda3d021166f78c64b34e329c2c6d89f88cb872ab17f50fb5407adcc412f385ff9ee9d689f1c043652d300000504a0b609335c8ef8e5848e7288abcf5870c800a02808d4a0ae1f1ff3e9f54407a0a06d7f3f13686dc240a230aef849d8d74e0814fea3f067e160831f68874330cc74080afa459a6cbbd51620b9081c0709c08b9452c20bf60629eb12212c28aec9e623fd19b53238280af794177d507c04f719f99a44284cc6560985ba2f16d15128b8e9f4caf30a05c43bdde726648ff68e1f4b5c919a647baba9225a4b08f06d3026d2805522c59ac384ca07f37839978aa1e0b7fbe6891a6f9f83c5404f30df52c75303a6edf4c40ead230935e81dbb280eacb8fc85cdd2c10b52e79793f0c00dba10f109f5cc16dd012e75d9dcc2283eb580c1c9de28ce670c9466c9488fd427b4a8d2ec04bd1394e8bc365b8c8f1f88238b16032c02b7348ad976eb1ab1e4272266151015005c334fe2e5275c22379adf6db7fe4f22072ee1c5ff24a13d7bcde41526d25c148e9580775c3f41a2d7e1e003b02ea595a87f82ff8cc39f35817528931f10800271e222cffad4efcdb17d846b4cf40fc2d39cc23fe417de4713d84bc4ce213de6bcd95b3701018a6199de7980c234ef352548940dc1de4f648b2c875efd24e09fa819c766542350dc2ba434ce7e3e836276addf8036ef611a68c207453fa3f60a330d651477f52d967daf67221497b301169e3942d25d3a483303190a7557c59574ed4dd966a7f24da7d8631747c2af733b616dcd8aecd1273c1b6e6351ba39059baab28f3c4215961a06162c0bd799a20e424da8b867a4c70bab8fa4686152ac6574c939b00f21361c140892c1254f584f4e8065f7ae4b1d845ed71aeb7c5b35089286c293edb4066a8409e45aa22442ad0963c0df0dc26f1efee3a273357ebd373f1353b5bf5011a785a42f45632d9c52fb1bcc20922dfcc046c6aef131fdd053f4287c03c97d0bbb85d35dc592b14a5cd8d4bbdcca85ddfece736dfc0509e20aa64b26f3d220847cef7c57641bfea17930e6a91641f521b12af3594155c201d0911459ba9211c60ef2b2bf4f2baea8563fda690ecbb4da0b76b2c80e7228b008566929a71609381b07b6fc801228a1b16beb8efc55f35727a7c182359d44b51c348903984fd7aa85439f0e96a246b5c80007201d06fee2e936f461c7910b43c8199f9e13ec283acf90d10beb67973d413575f98d84ac57afba17160ade6f100d2c1c7d8f6b3c741f4b25cec964105de11da5b4b802965f5a894a39bfff4ad89749bf307dc982aeb31b6ffdac96b0269004de658b35c8a390d42a0f6e25f14618d68db93b88deeefafa786b6198eac8e3ec91a00d842bf7913e0fd4e4b5a1bd89611704643d537318beb8c5696081deaf2c25763e1724df38a0fc347edbba245907f9e6a393fd51685ed1f57a76f88281f15343a67988cb60a43d9740f48291e50669bdea2abd05370963c31f46aa89391cd84ea64785f83c4551be48ec94c8a3f66d241ba5805a1e2df8c12e2d4e1b16653ed1e766f94d8d8ac4fc0fad1935d0128b1db10a7ab4caf13511a0e7328c88ec5bca68588c7be3289986639c2a23e1354d9171b9ade61448c6118a4112e0304b6235336dc3cf19ff00a38acfc4b9421c812fc75f957770d4691ebbcb8f8f3701393f3d1c237af75a5f2c5a60073ec78d10fbde0566a87ccade4d09ed20c03813d47cbb16eb0612fafef769fc0b5d6f6e5ff8bde4d635f26efc8f073b9065be9ced78e9a91480e1471c10de8244c588b0b5e99baf54364cbc77b8dec9298ecccda4bb23b5853000bf1e17d78f4d1acc8ebec81a547ffc1405efaa1e29ae2640842bc36fd546bb9848c7253cacbc2f3c6d57575dc03969c07103bb85d86623dd8a05f12f1b4ac613adc7bce2f41c54826fbdebaa919e321359fa5faba563ac2031c814ed0dc5f84c614ff54f735f1cd496e86c790e81e96ccc1d2353fd34fd15436cfdff5941189de3086efa3ea9f89253c86de8b58b1fca61022ca710dd1d3435f08368d654360c87eb3985b47d89e2364cefee992f11c0d5eaa899451202f725a04bff122bf0d434247de7737f01d5cbbec44ec044b78e76e32ef09dd357827702772c0ef71ec793104599476ffbd18e2d836bdf5fa3247e8d3e086ef6626bc1c799cf5ff4c6d5cbaae8fd6c754938ad8c8c1c48d68ffd382f9e5876f6e0d8f461dd4c8c51726ea940bb23aeed938ba60f813c2e28d2c9994df90ec0f94f94992f0d4ac512a9f581bf19c933d92ae694b6bb0d6c2fb4e53608a408e6b9f53327695b09102b9c091c0c6af541cb43ae0fdbb4812ac5ab44888449891070db2cae0f4ed1245fcc7b2687545385fb0fae0f4177ee3beb94b61108256eb6f6fab0486d257ecc1ad6de3e6ede77dd67f6689ca5db3912e760d8781766f5067a4b0149c8a83e3c8485e891d9c774f891b0062d6a96dbf11bd47282ede0035de69aa925c787ff9d8b197419d79f6e1b67cc812fbbdd45ed6672e5039478042b6c38f8eb77d8016b88886bb0e7aae4b1a6441fd6704051501f4028d71f99b9b30b9427223e5dd2482d43a970426094c2562ad4a5ba5b2f1941cdc2125371070e9cfb1e4e2744028c1d0f626374a1d1420caa2fe90cb1bd0df1d2693e2e129ceb96aa6f9a089283a07dfe8c684c985807836bdbefa487fdb52bf1b5a824d59b1e055da7977479865094f0413fa897d09dfcbc37f4086c9f2a96c3a5b62ef6514c35e1ce916b27f86b2a267d6b245e10c93109d7e70773cc89180651a7acb3031ca2048e4084fb0e551040b46e7314384e028dcf85d7e8c9c65b87627834c4c22de9ebc65d61161a434a60943c4a7ac61c2e5e8ce72e28b60ed176dfe5a01be333599cedb6efb363e8e7d6a3fca401e0b83fd2dfdb46cbc6eede528adc01c90e940e620fe6efb104d247b01f892a3076d0feae90a3b747b0e7bf5be717b66e33ab63c71246a221bd7b85481fd2443f450cf4ad7d05528fa4fe79b2fdf977dcfe65febdc35059483b066a22bca4d38eb9037049fb0bda65902a71a45fdfe17d12c8424531ec9885f0f95bd96b24e1cc4263c629c2b02fdefad145688cdd8c5a6b74a61be9e4ee4cd314af2f0c785501bb6d7d408f8fbef592e9794cbfd04cebdac3e34e5d7b649bf6f898c3dd762ffb226ab0f3d80671fa0d9e1cf7cea8a31d38f616e807a1028a491d3f7d1c6d7dda37bf8e6b261cd9eeed2fc6be5b103a7e3ae913385bfda283ddb61b4ed744aeba8e03dcbe28e03da2e8db816b7f35d36f742437fb76d0c2b0c74da4d3b56a4bb6ef0b74b4744e1d4fc794145183318fe925eca306feab1d06942449dfba498f28a9f7e96faa99c611254160eff1d1dfb44575d6b9d5e3267550ad73eef4d2fa801e475defb0ffec52f7d9ad4eee3e8fe5da97d5651b4992a4cd76ba8d1c9df45647bff8c956c7512f9d743485d2479b93b676c3e9a3eb1f77240943ce659ffabacb6f2e7bc0e820745ad5cf5505751cc99174750cdd8de49fe59f32f87202a4a32d0c399795bb57fdf1c956bfc023e871247359e68d9ec732ef0536c24f6aa6dfa38f71e0cb639a098f583369262e1e0464a629cb9acec29b5e3a499a28904e65e1492f83580811f42428d5d1f19d75c6b47db1b97b43bca9a3433e004551f0a89f6f880f8fb6afe963baba364995f475b7730715c62ca4f380146d5ff675da102178d0ac63f01cc0694b0c8fd6475a63ce99cc4e92635026c72cb4f3d067350bf160f1594a82ab649050e67918ca3cf3749dd6c35090c9e3e72e092759341e3dd67aab23e9d904dd8e59882c5a776bb6bacd83c599653da82cd992f4d24b375dafe490071df40a39e9261d33c08e5a64bc3e6ba501aeceaef081edb1dd4cf5a4817d45bc2981214d54a47dfb51e6e1d7bedd019968744f2f3d3d4bf25f1afc4afef67347bef6d345fca992786d3794ecaef4db2e75db4ef59edd4ab25968f3d0f95e31c0fa7c3e9fabd318f8b0822e62a8b15cd5d4b7bf208326e2c0754e13f58d0112a0a06d41fbf9837dd9d736cfbc0d2890da4911bf1d28f336902ee2c9f6c5bab6055de66d40816c5fedeccdb7f778caee7a762db08e02f259df381f49ef695b607728209ff5771c7b106c4b822c3462f25bd0443adfce6add8ed51d760febec06d6d916c4ade5a1f3edf3fdf82de40e3b77e8d9bd1cac6d5d5b0c55ee70d3f6f9615677688104280841e27e7c723c3bac8edd8d7edb79cf0e97fe3d44b4102371438cd39119d2dced3268221140be9c24819969e26388bbbd054d24a2070bb2a52aa7366584ee38c6e9885816251d6bbab8dbd39c7b5647b62de06071548ba17a9c0df2f0b4ac937eea60df71eca1a2b290dbfcc5509fc3bf153491eeeb04fdac9300053beccb1809ff32567a4177d8bec7afd7bf027b6b6ded9985cad8d33760800307a23bd86d5841e7bab606d8d5b90837c52cb97724d8a16017220b6dd7ed5e9001fb7e4a596874755fb62de8d831164bed6c51bfb0d8dfece7b9fd35fdf41397455968f4b22cfd2ccbb22447ddbe3a5d1661e2fc86f453c47b74f4a78f2311d921e7efeec953e5719d6b47bdd38e1ad7da76f8dd4f37fdd5d97665f69383c75eee421c7ddef808f7d3da61cb3bc5f6f0dac7536b131c00818cb3eff3cf37219f9aa83705387618836387f1a5c60ee3bfbade14e1d8611c8b6172fe14e39c333e21e728bdf3ab18e30dbb1df3b32dd273ebb1051a07907d6f8cbdd48e53bd3b737bee733cc9582c82c49a491adf18f462a02e038d2590e7878d5f38c735f24f13f20ebfce0ebf34f892cce7ee1581821059082be50e18333d76dfcfec31761464de6e59f01099a75b1ea863ffa08920f095b59c5439ddc8c2f5a5848bbd08bb0b6120119d21708ee110458f71765dce243e688cb11256c249f8f7012b8965df66f7264320602c41c7c90100e0ec19895e489d672c416597f2eec2e61734111e06d7f6d5ad6e6bf189822c84733e9fb0eff9fb7cc2be582abf37c0a3cecf0279c378a889f098ee80fd3cc7866f08768f3a1ed378c41aa322d096852c84dfb3c5632717f61df158c6658f33998b0290c44c080d3544928ab8d859ecbaecd3a121d56a6b82c66fa9d11455535507455da787ae6be92676157b398e2590bf55dc821a7ce9a60afadf14847a42eaaaab5968c8e21d88d5b16f0555281dabb87d41683fbd4c4b1440a0ae8351d7f134a3a5e355f57437fe5e51ac6a5f777a5c53546579f04b812249f224d95585d2c9f6253d2d5128492f77204ad7782541684f7d29b9dd72378e1d46a15c83d7e58e841263126335236529a0fc9a5cf0703ba8187679a1d4634b8edbc1cd1a2d4d846a5eac5c0f905ebc4043640a0b69673c27c54a4c195d55b8b5369be37cefdefd7bc43f6c649aaeb27e9e2be9e769ae0f383df5b42c7ded9527909765beedc6b7edd877ebec5e1527693fc911276125bd53d3f3cc6251ac74ae38e93cdbd724493f7767fe7327c3de8d8f93f00898245d072bfd78c3e538eacc6a2212ce68b8a93271a2cd0e114ad620ad05e3ac10b3e58e3ee2b2119f71f215452dd547b9e5b1f5e8e31e473dfac88eae1b7d1cfd1c7d0c1a75c655f250cf90973ef379a269fb9eaf49d2d5dd3876204bd2045227eb19f4cb02d12d9b85729b33cbf2e894582c06803388c743f0a010427010da838402e0da7300028085847090ceba1db463936c1648e70108b31a687ff691b11a3aa740018dd0303025cfced0967c4c5098a698884c52317c4c6d98d298c6309131813175310d99aa967c4bbea5dfd2d25253d25a8bab163d5a0c5b045bacb5486b31a605590bb0165d2da0b410b6984a5a4b5a53e153f153b164022d090dfb864955493a928449c024b4a43149644960495d495092ae92a4927a984033816662ed84efc40f8ff0fd5013b5444de441511371f81a4b40c5328f1dcbbc5b59e6d9cc326f3dcb3c154d1301ad615f18d81ba14f48aef98d1031c6e713e1f3f97c3e9f0bec4b31676d4eda1be16ba7819006431a1069505c437ced31fc62588aa12906600c50310463888a412a06aa1884310cd73cbdf6187494680d6448f3adc5e02bcb1461000506533020c2406a8d4f4d1b35696ac6a8215303a6a64bcd504d559aefb5b7c0d7825f0b965ad074b6f4da4114417c8118036106e20c041a0835106b20e084f085f869a20d65cabc76106346a39437c633e39df1d0786b9907270b69185e08434403c1e3a965a2231bb983d6444668249c2c8f6884666eb226102ede362096deb532c4325765aaca4c95e951464719a732bf3223c2105fbb098826289ae0cb0463645fafdd852617802e045d907281ca05a10b562e0c5dd07281e842918cc86b77618ab7658a35b500d6c2550b5f2d0cc996c852908d186b33963636668c6cac380645ace9b5b3d0c40290856053160206a38ea48e844630e8de4867b746686318d1cc03440f143df0e58131b125b19f982f6c2d8c18e3e7d4e554e5547412d2f8d118e1d4c629cd698c1399139813d1e92ac62fc62fc6528ca6184038702ae02ba2a1ada0b6c2d80a652b8c49f9da5ae16b85155658a1582c168bc562b128e5ebb5a7f095c2580a296c1573ec3085610a5a3c3829542950a5203492322a1a89198d19957d197df188463518a58d46a98f25a0ec0d4ee6d9326f557f9a08c868cb4868343422e66882fa412d41353d41799a7a223e493db5794a7b1af344f604f6d4f5347caacad194a3a900430f52bc216f0402c6f07c0830e3097953bc1e3c1d3c279e0b5e0a04ac2120ad00c3d75e8061018805287a307bed1ea43c083d0c3d6879207ad8f250f4e0e5e1cbc39887acd7eee18ab7f5c5fb0a2168b64d1e82228c11a14b0433118a1e801e9c3cb8f090c2c30811da889026c298086021045f7b08c110a44210b6c5d7de36b5c036d846b5522d552b6cadda614b6c7fbcf6b6078fc823f28a3c2fde16afc8fb32a2e211330f1319a9a9b83542e3f06b7fedd20eca6e6a47dc49b5be5d9b5dda6ecc8e6c07b6ebda0d77551c7eaf9dc38fc312872623aa8c00a1d1d0d4f18847411e1e70c0612c0145ca3c36f36eb6556dd2444047255efbd10823aa5c6b246594230ad2f938f880ae807a000d8182406b4069406380c880c080ba80a0000981a674bed7aef3e97eba25a32fa32f232a23a1919591119ad46b1ef148ca071ff98e7e474a474b474c474d47368e8047c12315affd28859198d1d7cedacfd54f8f9fe14ff067ed27ed67cc0fd90fd84fd70f941fe1cfd4ceda6bdf59cbf972bfdc128fb863b673b663466329872fc72fc7128e2b1c3d700c710471ace148c3310607190e301c5d38a0e010e298a2b14463c9895404da44802c026b1118931294a2438a9314175252481911052dca9813a44e109e303c81c8dbe2118d784423b5cc538da8cc8cd454b1af31339c136e04ae09e72b42c15de1aa7053b81e381db8255c0a3333b1b1a2579168a4665a11d51469ea0f4d1daa55ea94da43d5a13aa92e545f1b22b1f8655a994323291ed188ca48ca08cd08ce91efe877a464b4663699359ccca6b104f46606cd28538a47cc4bad07e555d9a31c96c1b5b43164605d50ca29ed3c293c28798947e46df18a3c2fde174f8c37c6212319a919a1adadc159d31df4d10f4bd003521e107a60d881b40e807500ad035f61c1301d614e612ec252848dd0d2468b9916322cc1d7ae81a006a43420d4c0d008cd68edc877b474c474f4d31dfdba7e1af8696049034d1a006a000acbd36bd7808e0c40c9c05406881990c2e2bbd2e64ada953157c8ae805de9ba32bc52d5f57bed15f85560a9024d4668466a47bea3dfd1d2918d23a0d1da51d30cf635427bed27fc4e583aa1e904e0095027044f88ca3c9b93a7d77e828eb107a537d523f6a49cf89ab46992d6644c13b226604dba9a0c9b545df95efbfbfef74bdf14c26ec72362a05100dc844ce4d3444744bf7f7147bed76e8466b436aebd8ebf38b4d750c0157c2972f020003b3e3fec0d07007248123551083eba188d2840c423681fb9a23c01733e16a00be9fb220e85521d5074f09995f160e71c5a10886753163a6b989d6546101272d7e94eb4142b29655ee9441ee45c8e5c5614b01a92598a025214a02a3519fb8e5c501480a24070ef7884e0e92e051b2934a5b09482520abf2c9402520abe2c04676d1c001a100b8c2e50080ec20e89839f38dd206f773f9d1bd47a10148136e30835d43e02696f5efb7bca781dfc65ef0b5c9e4c49922449c740d6a417c178f2e8c9e2934132e8e3c4ce93a48fe4487c92b4ca5a6350af4113ba7713ea34d864931796b046d69b3e8326d37419ac3d3343a944477228e088d86f9761c720f88505842322675ffa2eb1a8ac5e60152133c432f2e54b8f61ed95fb9666780506308cfd4c19c69a4c7953448d0b944dce7852345990a6ab69cac709206d4a47dbb444cbd27cc1da335db0f6c82dbfb7b760eded72005a24d2c8c92135c31653c6931fc921ca090d5147865b62bc603a0bd69e89b5e1495f0126b17015bbc0a95202c68afb0e7d0c2763ce9d0b1323d0bc706521e3eebdb70a42600d717a9274107bccf2ad610dd7b069d3c57d8750ccf4640d2982ca468d1e6b5dd272aca56f0aa0ecf88d3555fced2860d3bdd7545151668615901767dc7748fb7c3e5f93bbf7dea8efbd318cdf7b6f134b50107dd010264b89bb374edb972c8e45ee90b3e3399e60ed6dd44d80d1d583de4dfe1dbdc4be1ccbc6b32fd77284c3e15f8c8495be7c3113b681a14a1f5f4cf565f15f6cf5a583f9b2f493d5b9d010992fbdc80408ac0084cd97fea1051e5f3a0a5e98fad265885ae20b62f543fb120b480d5f3a6e0206010b0a0122f5fbd2b130f3462ca92a5f7a0986e446492117bb37dabe6491043f9e9ef44dfa0850d2a888d44a031b5c2f7c70b508e3856c471160f988f37bbb0b9b84271a6b6ce85082638d68bb255ba40c5be44a9221d20fcb9a310b957de92d6c32a83be0a0d0e64036f760f3216df371ec6dbe336f7d9bcd96adac54f902820221cbc6131a5937ceb270687de921182222009a5b3a083e50a48932b02a898ed92e03491265e10a10912727ab8695dfee0194c471e6244e8a164a3f182f86e8d01ec468bcc0f1e3cb981930dae6607b3e263b7066d1007260eded20192c8bacf9a0f5d5e3f7570dbf7d033a226938c862058b0670018680e960d449220016ae33cb0cbf3d03ec991d068eaa4e2c2f7efb0558a9ad2937bcbcd69ebc294b175f1a79f3e5cf9753d4588971c38a192c4132c8b2a59f1660aff812f0db2b5024a967052f2a153ea802da12d0e5cb0f2ca016293e0a78a51061023ad214b3126604560a3857487cc855594a60ac430a45a2ac11b0221442a14a8b03130246fff254916280df7eb255e2fcf607e8cca32a4c503b904c759992814b46a288f88d555923d285c690346e5982b12f49249bca13c862579bdf3d54841e566094c8a223ab0a520b2c22d80185ca8a9a2e53c0b86589b2a4796b4fa1ad7dcfb47d59b47d750ec8c24c845dec7908f4bb28e5b7027e77fd7ebbae8becb737c049730391a2c182491107188baa142a111a70d814677c49b95644288ef832ca977eb23a17fa2115d08449f9d1c005c77085f087cf0dbc504152638d94902813d6dee6010a12818a0c302a6818409a213cdd664022caf7e49b9264b6001e11a614406b8a12ae26ae325fba02867ae85082e6cd1ba5264f949a54016353fba1f6e557862a4e9329f9b1ca0314b47585e808ef0d48b0547cf912464b6cef8d553cd1797971ad2901e6c9d2d658c2d78630ddbf244031b2250a8c2f9d8d52e64bd7b994135fba90142f5ffad096922fdda888480a0ebef4736f5e09bb254ef9fd040ad36f4f00696e610a1e5c8489318a7e3bd1da0b40190d64c88993860b88c2086f4df14409f1f7db1160840c6eefed24acbdedc108f62fd097414da4b23841e164062d2772bef4039026086a7a4c03e85011c3c22ac39285442b2b4beb85d6992fbd00a419228a4a0e352a2f59ba60e04309b74cd2daf0250b3628bc5058d991028593c12c84a5487fc92019454a99ed4b1687a404fdcbf3fbaac66f2dbfafd4fcc61afef61174a494b96548a281e5a5081a938abdc7f6de297e53057f6f30402f6133d024c19ae16e6fc16c4929324866e026c0feca6db9692d49f365152d265a36b48642b4ae94bef4010c0549a9cc1bb799de6659abe8f3f94cb86fa6ca56afb3526e02bef637dbf0e0dffc66e0eb1c7c928884bdbe5e8f4f6a9030ffc565bf7ff1da2867a987da8c21968d32f7c5662cdc9421f65063668a97fb6234ad4c9481c0ad17dbc0c119afffc55128fec54318a02842f932b6c58612f7c55214981305498f35244b46dc170b5f3b56ca4464f0c54caf5f7832aad9fec5d8f7986c7a8388c85fee80bd48cceb7f8f5e9f781135780821110c4225ca0df71d872b38a3a695020d95b020eed46b13af9798c9a1e50b0d2f2e4c6e0e1c33bcc2b85cc15283fbb2afd75e956b0be8dfa02fc70cbf2cfd64c790f9d27564845fba9741fad23d08edb5fcf8f79a51decac431393edd7dea02587ba98f1d9bdcb0f1192a03cdae3c8af5a877587b28cb7e3a42162c9f5bba101bf592548f5d4c9a374d3400db4626a1c42879013ce90038d557dfdc239190cfe72331f4f95c8ce6f37de9414a9928037507fc0b13e73709bf1d84b5b7819a882496196876cec9429de2e3d3f5953d24b732af6ccb76030aa8e943fa7692a7c777bb0185bde39b55bd6c37a0507aea69fbae5eba8847db9703d7b988374d3388a22810dde1379b7eefde9bdbbcdcbda8a7cec14eb77b7d7c5ce7a98f8fcfd2fef9fcfcb8ced39f9f9fb5d7e9d01eff8f99ee807fef2271d82394c2cf83f39ca7381c4e0373b99c6ecaedf0e3f492ee70bb8d3ddeb1d96c5fcfa6b7db6d0d87c3a13dfe9b19bbc36f1bbbddbebea83b609b2d136fb75b1ede56c8421445f52f4d53ed4b77f851922475da777f99a659d41d705a96e5268200020820b47ba83b6037216ffc798bdd15cd3451069e9f1556048ac8d41232f765bf442a92033756818344e2cc8a245c36dc121c87a1f20106aaa8851d79e29bb3568208d1c634e2499293b03221353c080384c349c2c8101dd0da2b771e8c5696d71ea6c66bdfc07220b2a387081c37464600d1422207e30ed238008112152927a4a03892e6be6c5992f8924ac5973b5fd69822d3c52a0b1630c511e31274b8cc86f61f2dc247d3912548b4381d5972dfa124ec99d7f37a441336afdd01acd67ae2610584098c8c26576b9fb5a77b00307a7525607c8facfc3b6a0d4bef22e64b285263577a90b9f9d287aebc10f992e24b8740e68d575fc4be749eb5571e41c962ae4bd50e0aae88bcb1421b51430ef7654ba211cde7f3a170b5d6d8f7bacb6beda7261231834a092251acb6a810bada5b20356eed69f5e521e15fa02029ff7a7806fca824f4a59f2cd5d596375fba972e24e4cb2b2e6ebe74b66874c2a5224b991f41920899e3640e91b20339c6743102a6c4570b5cfae9861dffcdc29b58f1e8b5db76cf9139e8977e8a5101bdf695bc1272a2fcd24f5eab86a571814a19204d4a465c084170326525899a280b85588b258399376e173baa13f644e5b59f9bb4f53c01c28a58a123ec4a08168f3852dc36a49b7102f0dacb232c90d75b441293a42157aa28d52033ca191295eabcc1a221560c83b302b31196c2a21615ed6bdf39ab205f86c51f9299fbb259977936e10ddb977e0ae5e086cac1352c49dc4280d7ae8322f845ad157f4045a5b9afee4b28266a9ea0ac50d560e6be435f96fe21970e014d44127507ec65e9fb8cf3a51765de0887376639f9617ee9ac26124124ac4d590932272d2cee6826a8b58663e9cc8b19b76cdf10a3d9936d0e026b60c7df47d8370b1ffb4b12b350fbce7fb3f0cd429cc75e84cfe7f3a1e5077bfa125e6760263a5dec39c8e37b13adcd1bd826f58129fdd8c2c04bb5e3ac3759aae6a96a54d5aa4ed5264d3a30c6ea7a02767c93cad05aebd5e6f36393269f4d254992b4dd7ec698a669de58109cb0aa8e8e8e0e8b43ad706a9aa6296ea7c90c233beabaaeeb4e6e672ba7de6eb75b8ea74915303c2a0e87c3f1f4f4a8b95c2ed7e3839bc147ede9e9e9f1f971d364868d1f55ef9acc58f221a1aaaaaab626688c5f11375bdb02fdb717ef6057b3ab6ab6b9cdf1288673fbda72fe6053559babb69d9a3fa81f326fe743e6253956cabcec3b9e596c75fb9085f04d6dd91f4777aba7375384fac166fb60b37db0d93ed86c1f6cb60f369b4ece6f6eb3f9abe336d4b5efd8bc6737e60ebefaf69be3706e730c83d6aaefec704dac6e61c8ad37dfc1be7fb720d0ada2ae92ed8ebf3aed4efb8e62afaa690b02f54dfebee150aca2369b9b904db7edb2af3b14f5d4d5ddd9beeaabaaa33dbeee52dfe82ee5397d549d8fea3c3b1fef39016d531f95c777a8a7e7ee55ff749edd3eb54dc7b57fc837d82276f27a42f5bd49b3ec0043081586102a5a9b71003a4631ada494f4fb90a444b6aace26de454eb27d73cea39ba52635d63af3f24d44897393b488b1f64de467d01a1e81d56ddbc4ca12c9e3f9478a1def46605f96270be1a1ad8e4facbcf0b3517dac2788287b6ce6eea52d03ef76d36edabbdca4937b37a5e70e76c309fbb3e72f1a774238d8a3ecf9ec0ad221528ccb4d92eb6e7998a67eec3aec23f6731c6616e9f6b13dc9b0d97958f5f4726c5ff36ccff10d71f4d8c78d94e2f42cc733937abfdaf156dffda71b56bf1863fce2b625c2ae97d1f7e8a4de95dbc4671996e521db078c3f7af60d637b92588bc56359fac6f86cf70a9c7d3c11300e60f41d1936bb2802de787e7cd53f1d9f68589e4de70c8b5f47476748c7795ceb5c73e03e400ef4816fe0e01e68ade35a3b07b4a2a3acf559551dddbd303c8ad176c38feff6dda0c2ea7ac34f8b821e1f86c7fea28ec3dbb50aaaa3aed7b5ddf0d3a2a0b6633b6aefd9bde807ae7ee0bac535dd54adfab85200ff07ef76b5c535b1bb0df181eb16c407aeb62038b8f610eaeb3684fa40ee41073aae390071e0acebf6ddd04107ac8f0f073e1cf8f8f86cd44d1fd79b031f67ddf471bdd1f6657db0d6399bf54ed7bea42649edac939ad4e71956c7b1eb38c63acea383eac0f0f8c7c74ce48e551fc7bb37848aee62d83a7bef5015f6569ddc6935ef38ea1bb72aaa43b62154add309a17e0cf8758a8e4e1d1364785d83478b483fd2aed5dd96615531b9499e3f8b8e727a8e42a4fac2b0d1b5a7339e32eced41dea9f2c1671652d7194a697aed3a26f651f7eaec3505eda9eb386a8eae4ec7b5e3d5d42b0aa783d071ede959967fbe3750619f3e1f0cbadf9f5d0705bd8b217f0bf41c387ffafe6c5d703a0ce79b6f9e90b7ad05fa753a783da1d4b51bceccdb70b62dc0bfdd05f8b763cfceea5e9ed1c9d89993b1b357591db9231d83d6747cf83712bd30820d36b3cfafedec438c25308e582d4141745fdb8f069c2757487c0d8bb8af6dc9032a325654217265aa87fbdabe8064bad63401b3f6c47d6dc1cf6763ce586d714194e3be3621092b21616cdaa05081c47d6dc32d6b9c2d8ffd5de77c5edff52caf6a53d4296a9ca25a54d7a81529cbbf6b13967f57a995987d5dd7b129e0131e494dbaacdc77fd81a0861231be668ca989b9efba8404eb08d9d4308b86fbae45d43c81616669c70c33f75d839f5f158e92394ad238c3f44dd7fe2a8a95273c68480169b8afea9209620644f8e66c8afbaabe62941226488208bddc5705d261e60dd89a2b2aacdc57950015176ccab0789296e5be2a1a2a44b880635fc430b9afaaaaead9ab9a5df957257afdab5af9576dfaac227d76d5c8e77f533855fe4dbbfe4d8bffa6c5ccc379f634154bcbded42cf5800c234d23b8b8c12273df74441b1627be90886255c47dd3a5cf6748f4588224756586fba6469250658902e3a3ea8afba6c1f40dd1050b376a822bdc37155e00ce0f2f1d5e96c45972df7408040582eafe45a550d487a2288aa251fe45cdd01b3a37747efed501eabc3a3ea4261d1d9db157c7ecb3ce195e71e215e77b2e9d6b54fe3db9fe3da7fc7b9ee779e53c6b000b2b645c31da1039e3bee72fa844921b289646086bb8efb944a34c091c535280d090e5be2770e78794549727301762dcf784424364499517323426f73d850470412287991740886bdcf7b48119c7ec314ddfd6bfa6947fcd286f9ae698d8bfa6d967f3ecf398366861bea031a9b9aff9c24594b53044660051b8afb9c49615418283acc4d9cf7d4de027b95264ca92209034ee6b067f3069438314304cbab856b864d1c205cdcb54d17dcda10aca38664a9e7f4b382f945bc80f90715a204b1f529354497c4bb3cf65598e3d09e7a7cc99c08ef35977b000961725292b314f90b82f69e6cae7432d46d71c28ee4b06bfec6f9ea16412e9b393be7f379ccfbe7d48c47f77d3937fb793dfc5ccf3da62bb2cef331aace950b29586e9898cfbee9f8dad281b4b4cbce9f2c37df7d20d967cd912e58caa489a3c65e28d9ab3311beebb856059356a84a50073c47db7b048ca92124e5439d4c870df3d548056c09ccfaf866382eea07d4dfed54d529af8d9b51e73f1fa2c090bd18aaac758940bf7d526c8a4d198aa121699b8af5e1ac038429c01ccf90c67280fad71786cc4611c01fb8be37cf69c7d485affe6a6cf63b12c9f7df6ece5be59ac040c1ac3112faa646471dffc4b1206090d4fba24c9e285e1fc9ccf6e83d1681d47c09e650081028525ec8bca95018590a935412f6445f7c54b2cb446ecd8f242d504ca7d3110c650068da92f43d8fc5c112baa6698620226c9cf2acbe092da7aa2016688fbe2211efb71888b9ae874cf5e6c96f52f26623dbefa17377df6f1c0d96b309630ee2166f279c9679d9d854cb4ddec24404188cc2b7f015fd0789c2043830d2454542c11cd44f1a8e185eb9a88835f9107d50835234ab8aa47d814928f1e5cee2bd441c789af331e63b4c4b8673f86545352bf35306e5013e5a5545309bf740d9589b2906d75548fbf198ef67de9fa17468656d240bda49bbe2489254f49fcd2735148f632fb2a3d5301cbb22c5bf36596ca400c276d8365593a1e83c2656b666899886c2acbb2fcf2f4a5ad2ccbf257fe4ab6f4420557966b6ba50fe9a226a9513623da6669bef45d9665590a7fc02c791f1fcf3bd69e8fd0e747e8e359c7daf311fa8069f13d3d9e816baf47d8e3d30acdeff19c63edf5bc39aa6cea79783ce3587b3c3c3d3ac5d8f378beb1f678783ef857fd32f5aa6fb5cc840d962cf2bceab9c6da5349282f63bfb3e399c6dadb21aa3c44d5b3930a968e15c1c87a7ceaac17124dba74061c1249ceb3be59cf32d61ecb131523c63edb6a8fb1ba58fdba7a665a7b6b3bb2679afae919c60b3dcc4b136063a28c09e1982a5956acc4090b7604524a61c66ad8e89a725dacbd72f5bcb4f656b12c1b823c882509db22e3d32d693e751d17289fba0b71296b3134b2f18df81a86a91871e6be3ad6ea49161c952231b0820061f202e3962ea4aa2cc0b40469a911a6650d561815b11e2bd271ec2c8d52928921625adc77484d6224e741901840ac387153652a4dd354895401c6e555d573d299aa1598b126ec09963953e420a1ea82ae4129aaa9311c5f4bd45d0eaa2a9b0500f435e353dfa99f5f643e755607c6f4730c90501ca264c3861a9b2cee3bf46c555a49e549c789b42fa8b419ae103c4491020565d9f16996e2a7aef31342eace0a65709c883d5949912665854fa09845714c10a932f64bb2c4574fd555dd695fb2984db09e91f095355f58b83ef55c82dd614bf06438d505e6b7634c3aaa47aad0f12bcc942026e4a4e151636765db972c6612aae7116b4f2d4a87b0bca83ef59dfac9e253ac2b4e3ef5ecf369a26db6eebdb3d2f6dc34e6370719b8f7ded96350bf7ff6de1bb8819bdd7b84daefbdf7defb05a7dfe8de7befd4c7619194df3b7befede3b7efbdf7de7b8d675d817ef531c9afbe330f01bfae25d07e4572f2abe3396b6f5d79d0255ec8b8ebea58ceda5bf7da4a54795e057a55ceabaa4a22caab256cbcea38ceda53db9175756dd33499c2e4aaaa63386b4fcd518fb1463cfdce8ee3376b6fc7cdda53492adf966759c76d4e75f5571dafad3d559df22507c9975772c65ccd3182e563c186cc3155640d4b12d55fcaf3e9964f7da77ea6cea6646a5c4ddb51e64c8dad61eded354519346e9a468c11ca488d38c1b106914141dcc2e48a07107555cba6346b2fbd823304a7adbd5dae2888d92282468596101f4e8b381962f2a6a00181f185cb8d1377555fec118df8affac6e9b7effd860c1a164da33d465114dd289aa5047c144551948812511455f1f5e88a1aa140d48150218fa68fa23ea2a8555601e653a34f1d9f597b693055dbd4b199b597f22421f9ed7b67a96871b64929528509202e03dc954041feaf87df568a1d5f5ec5d19195222b2ba90519dd5a0d44c4c6b0666b0f6d52472f2be0745561c151d5c403f4a189b3c2c80f3923a62242064d67881a9f180d4090ec389bc10ca633493480d5c0e2aaa99830f9c7e3f7760c66eded9c0fe572392c1d323e97cbe5b255d6c2029e7d5976ee2b3ebe74fcc54bd1d8367d341d2b9966d9fbc29437cdf11dd7dec43e0c9826d9649aa617a579d3344d93abe94dd3f4d3b4ca1d0009e0df202c6ece28bf9dcd52f6fbebe9b76332a124f6cdc0e058ae01100de03345a2d400040740507b034c431a1e3ed70637687d5aac0c93cf05c141684d33168fad15c82e499c52d44418558bc366cb87e6fb053511b639a91265c9e7e23cf40db5266a22dde55545abe862d75f7a4c4a13194d193274b16fe19826ca71ac967cd8f75013ed146794f996b4d9f6a169a2d1fd2a06814d4bfb97a23c8ffaf87bd4379a75a5cba3588874d1edf4fced98cbdadb59aa10a9589961c58c97d616a1bd7d3eb1b0b5670639a42933c38b12387abc71331552668855e152c443a6ca90e3d06a45d28e186c4ee448e58015676821664b0b14d582826555a1e1cd2f56eac88bbdd32c6baf648365ed9922842819b1424606f0aa0c05374b92805c3394cdd926961242422571440d8c2ca41c236214d3c6ae845c3aaab470cb5407f16b341d5fc1595d5a07f0c24514498b1e2b6baf5c1b40955c074a6e8c80b22349131b34c89315b704bc100395038691b4146e172eae3df4ccb088ca9eb162499810152cba845e188173460d87922b268a81e0282b62cf4f0e94115d5e88a11213801cb0b01969a61479cac01c17ea792c214fd1c33348475b1b8d5a83a36cc916b51137cc1f46b4b0729a9861c3838d0a216129c652d65e69664b94cd8485061027572b7c1861d102cbcbabcd0c47a2c4714d338522c6736602ec8ccb6f67cd2021eacc9f1954c125675c2480b8ef500f311e11564945d0aab46ac05263344dd37ce2a40cd26fdfdbcb8c3561cde00b2bad2c32596f5e61a1228260553951920a626515b46db1696ed4b4b07e5451826ee9427bef6de22a93417134dc683a66e1912eaad9d83946c884cdf538c96285501345734b76ea58c9da4bbf80787470f5dbcce9b7632b74e7741120627912150624cd88fb0ea1297e8179687901ec0a9517ad20930fd3ccb52f594c82918879f1e8a38eabce9da24784262a3c8761d0da2378887138f780f3218df3d1cbe31e87c3e1ca2c25efdfa01343502069a108d3fa4519d96611aab5874b51ecc2091b1ccb1219b2f6d01323de9ce262db7b6f29ac6562ea4d21bb874619242c2b80a8c93169380244061e4ea68c70114b64d97b57397bd3b7e938c8da337166ca3e3163814461ad377fe0110d971b3482105183e3cc0c64daf0b8b121d625660d88d309b774a1bdf7c6953e8c50123db216528c1182072881a48286af1e547c4009d9ec78a02c480f30373c90d4521e2a162d9f30cb88165a23be90a82ad1a284151a86b0c6302945511305c5f4f4bb4896dfdba6a4e44994372c768cb97b9be89b852f509007dcbf477196be8c63458e903929b2e6707da9e5e3f1a5e319a4d2302d2d1e3d7c9cd528b36308d4c9ab3ad3f5e60c99912423c62540e197c70c105e9699a7bdf7de7befbd63ed6da07f83cabc004099236730b2cec8e800a61bd29662f0c032b5c602eb109e7d80e8a6048c32375ca070cb32059e00c8f22f39cc281f3482615ed0f8a801487543040e2d342c25c1aae1c40913c7d530f8fb065e42400b2b485840113266c97d75e688e21c719ebc39c72f42d2cc48197322c7855bba10ead8c6da43d1deacb1c71ca54419ad30af3452ee3bf429c6417686213bfb3a4b3286060c17d79640033bd9801242532ac21635c23940d254e1b2f78ddf47ccfcde33e87166e309a814f5e4ee6d9a7bc6dadb548268a4f11a2fb06a9061d99092619ae909411e69bf3844dcf4b031640e5a82994fcc101b6aac50a431769153192a349030b1203808bb5478b56218b843931a9713d60b769b5463d472efbd5d60f160699b585a421265294aaac6902ba39a14516dc8b828510a6b81d574e40316beb42ac85aa678055b84a186004c4f4a299123b832689aa90a9e176e3c80d1f4db7192ce3471a9cd060e8753a48e7ff805d89ba663146bcf1cb9a244b1b101c5c857138ddf4a7e6f235c6a8238a020414372f746cd749f587b9b674bd052182d2e862ebc5e4c7de9d884599215d1a2b683cd5ad7761ac2a4a7d868e262c3cb165f6a62a4adb5b4e3b7efedb8c40b631c1a6316d271918584c8c16fc7245ac0371fd231dcdb6df837df99a7fb9beb326fe86f4170b8c0bae2224b987b63ffe6d92af552c0bf411ec61b0b42cf7856807f47b5110ed28b99a0825c587a40f510e2a384968f218c2f5a3fd29098018956941c2d20424a6805d1a22564c8978e47acbd729358c4dabb6d1f5cd2c254a0614326d84455358ab189c3b446ac3a5104456f50b505b7511bb0bf1f264921292449b2ea0a470db19410071dfce824cb8fd7f9d14996afd2c598092e373eb23832be2c4b153db8d6accee8c05105b768c2ac93f67cfee8a4cbd2e9a4cbd2e318a42e3f4861f2d52093648c87174f13aeb19d18227c18b1522371e2868c1656bab44bc686265d53a95a5b0c2a56fd14a17a9a1459f8c0d9c94da8a0599b5061f21cfcd8840a963507d30cdea05851264823ad45667acd66c593a531c02940485ce960ecd6dbd3c53aaa205290d0d66918615874a90a13c529c378ed82cbab4a938d176478e510131e3a3a2d9ba48a4e2b091910944c53c9cf8c8f21942035a08c68f98b0ad470a1c609c890cd1a050899d3a54c890c8dcb7d75562b9ef4ad6555e349d2c5932429c249adc70f12619e54947049b224f7ce226a39591edb8f5a56c17f5912cb09d0d25ab8818115c46a4904700d912ba984d21726a42ea3ac547928258fe4444ca9e01ab17446ccf1266ab790ca2d48d0ca52a6844f0c8e26c09249dd7b6fb224778b12bf71bf63fcdea59b11b3e3131a88882962060a1434eeab6351a6c3c2cc5ac268850836866609973551eedee4d62ccbc342cbdb7e7cc262eb5f164573b3ac41969bdce47eb234e3b566eaf1fab5bbd63ec4ea96676b1e1e73a76b21e76f3f3e59fa6d49c700b0e4c96a12c601941aab9ad4a7a943a81b582df63d3ff3949bc79efbd4ece69d7bc792a77a964e9264098274f57cd53fbd34d9ed27cf0816bb4a7ab9ebf9dd8a1883b2b922d5578a6e43bac3e842ae1b7587a2888cb515d294b33e2971b5399cac4afa7baa3c58cefcc6c2e6cddf9be569a5cefd3c3add8f5758b0fccb1343c42f0d0e112d2ba0b20c61f10387ab858f27ac2d2c77f4f1045e983c65f9b2c4898bfbb2e38acd616dc657132462b8d828fd3d7ac7ad1fbd344974fe6678b1062c4b6b4bd55672cb4a22ac989c46245189d3a3696ff8d109590d5ffee8640e9122e938f2f6d6d928bb003f1ec7f4368e63d6e4b8c7716c37f6e1347393e5e9a697e41e578ce64d74bc522c195c252ec01317465efbd63f3f62c908f2ec8f58327068a56369b2faca4b6a6d423edd499234db575796255b6aad4fdd01ebe8f8d669472399cce4c8db24a93de7acdbd1842cc3c996379f79f8397eed2207aca089b63b92befd249f74275d48136d97f4219e1829f01c755007789a3a297688e64607786299224921cc66a273b7e35bf4fa157a8dc50496a4d7c3f4c7ab2b67fe65fdc432d339e3316434c38276ba179d7efa491c3b7d4ce7a79f5e2c3acf110d585454545454545474ee739f9bdd3af63cf51063218ccfed58086316bbb3ce6e21d6f1c96e1d3b14c4bb48c9d2d88f432ba9cfc0b104b2e8ba2d14cc27c6273e35debacce67cb21b3b3e4fa15dc4e2f3dc389f7b482774eaf6894fcc6276ebb60e6fa11dc445983df7b9c78dcf8dcf8dcf8dc7211eb2277beea1223f4fac6359f63c755bb7dd1de321a1a28db10e0bed21acdb434279abc593c57b2c9e45fb3c373ef1a76300581edf9b688f1d9b188df28804c58f38f8a363200dda04d98889329106c47df1f0031d39aa38ad41a1a136220902d7b40173c6c63804588c136c53a486fbe2a28a312795181dff34910c5555c4088770680c895edc2061a124cd1697d1e7f3ad705fbcf6a363b59c62f473f4712c1b73e545188b2e385fae08e1171227a62a24bad0e08e43e3589454530f315e595c0868a2f18b1a2ac0293db8e480b9a30a1c559eb2e658d1f1e502a90db921a746d6d50ceee818692c61ffb882a207b17aeaa3d7408617322fff7ef40f999751fc58e2c48fce8e4ca38f56525ffa2e5de5c93c0ebc745d260a79f89284b7880d518b387a7db979738e3abe960525e44b8c84999ab2a608bff4297110530dd7602d4cdce290c3a466f8eccb17ab655f1ba49fd207fe66a6a62f3d036b7c99a1de1c8ca2ca432fadad2fbdbe14fbd2f318922f79ca379b9d7d99d5b26f0c52ce5ffdcb5ae9cbb289915755cf69d69e7a75e473b95cce857e3c97f3221f9f5373d9444ee7b99c9af33197cb8d6d7e1011bb3107cd0c617227e0c2f5e4b554454b57aeccbf3c63b45431ff92f06af155dfaa8af5e3d52c19af66cd7955d5ca7ad5735a912eeb6aeb753a9dce339a9ffdcb33f62fd0ff3009fecfcf0f9332ff33ccf23f9ed1acbd9f3323da1ad2bb7b36b3f69ccd99f7f1799f8cf43eaafbf8e4dcc767c58822342c7141052485eb9356e4cd15941638c4e4783e07f4b935639fcbe5d8a0f81c1badcf793e535555f553f55c66eda9648a483c4992a407e9ce2c79d287fcc002e9244992a40fd38e24c91f271d6fb5244992248986e9dbd6f398b5d7b6237bfefcfcfcfc7836f3335ebfdb7916b3f676edc89e3e3e9ec3689d71f1ee9ec1ac3d5755555555555555cf656b4f3523f53adf3acf5fd69eae1dd93397eb008e1ac228526dc05ee4724f96e4129fcb79a076850cf1e78406939bf3ec65ede5c8d61e79a6e5f726f1db3dc84326daee76128aca7ee3f688dcdefe829adf5b65b201a565e6971b12b7b2d86f2635c0b83481a97283878b1f62b26c0102a35c167e352415bf7a84b1e2be23d1006b4a44454199b082b385bf7d7c7c7c7c3c8fad3d9f76641d0beac5abaada2597cbe572b95c2e97f3cc65ede5828abc9e7cd275e4599627fd243d6f597ba4d8dadb60ffc1079ec3d6de0743b6bea7a7a7a7a7a7a7c787d818d2b2d6e3b76fdd09f6553464eb3df0c07396b5e7413bb2e7d4f07138d779e6e51ce7411be745558fc3651f0ee72ce0481c0e87d361c48cc52f079517359c8f9a080073581071d02873ca8273b1005c0d21f1a4672cba2bafaaaa9faae72b370f230942a234916af1dbd9aedfae931afbed4257534a5e454ef61c1148d2d0d0e2e243b38586952a6b0fb7e53970f0dcb5f6385c713d0f8feb78783c28f3f0f8c963e349033ce9b9b8f6482a5c45601ec83790e729e756d7eff0fc8e9cdf71cf3cd2773c28efecf8500a77c74f4d64811b605d537e5a626cdc9d23bfae2c57453935dc97fd1ddf5ddbcafe608f5a50747400254914a628607ebb90f0b70f49c9b215fced796bed6de2f8163d497e8d638eb82811d5254c4dd42bf4a40f3de9e358b422c679124a8e27dd84cc23515091329162cb8f3352c6b128454f567e83ef0d9ea1acbd0dedc89e505e6b38afb50779284af3daa6df68ad66799dd3d88dceed643d69dddafc8b87afb778c65ea079d326c81530570f79546939451da1c105ee1043a3862e5e720871df71ed0541205f589c9599d8725fecc3dd40815506cb494cd886ad1ad654fc203211ee40f33c3c9e89e7dadedbfdc98edfefec7876726eb8e224c822ca0e3427eecb7e6e87ef73b9b5cff9e9e2cd9b1c5749b0b839cf4d5cc757075a24398574d6ec491d469ef49c9582ad212ba4d0403a51220ba8f5389dc7b1799c3038e4c90c31278eb838cf587eb5f6b49b24afe33bf3f2f044f3a8ef358fba0ba13ea48b963c7aa4e68346b5dcf87814bd8151c7e8d651234b113253a6bcb4e230f9a5d832f2a40c18266f7e08833ab4c4deb821b361228b85f0c97d47223a0eb5e9ead0c60d13ddd51636afb55e03be5e237bed790949927e929e95f8d6e3709eadd61e2ec9da43d9f8fef47d7a46b2f6ce611b12a66ba2d3f530a48baadefcc0021a6b6e371d33e14e931d9aeee47138cf556b0fd78eecb902ce9b1965664021ba2f1b048c1a05bac4c182f3c2c40c36dced59a8b506c8c1a39e8f0cdd48eac27ac2916344d60e32af750d2de8418c913667c7d218577b36e25a6ae03c497a2e92a96c365b986db5d96c596c02b0f9c8f436df363fd390bdcdd9ac1a7cbc4d0dc5dbd4bcbccda686e66d6a9ebc6d0d8eb77926b2f66c59694e3ccbba2ef3383ccb7a10cbfa90665956eb200faf47ad11fe1db7ced078adfd3c63f6da5934455ebb0e4d93d72ee4f4da878a78bcce429bf33a2b2dcb6bcf43d69e2e8e6fd1ef33297efb3e23e3b79fdbf3d4dadb524556249e030e3c0b597b1c24e1fadb2dcddfdc853c649ef69b0fddae7e7fbba5ddfc83263adddbdff64d042f5caa9821d610c22385322c6faa0847b4b15102d3921233b44874b17133f326a9eac6081f50ee3b12ffe663d8efed3988d63e9205bdd6494cbcf60c441735a2fd00ee2080d315f5de8b7faf8ed9126db355076d9a15d88c314b58c284f1d2a18d35d460660dd04b6a0e0e1f40ce4c5c4912a7449635299a0d708143439314736674f580c012a9af22699818413a43cf7801f104ea37a386125b68419e2469d2cc59ea925116b49991b16548361c22a7cd1b1e5aac66f0129b72da0262443dfbd2878471e0f8b881348608e596ee34000d99a03073660e570e17b632e395ab184cc69a88d4009c416bede43bb47aba77bbedd92a0b619f00152bb11e3fb2ac9e5cb37d5932c8882f7d93b1057971e34b8a176cceb8a57b862a772bf45adfda3c14aa60473ce66dedabfbd2cba7ed3bf4a5128f1f943655a8ac719b5049b3c2e6c9871827d76c4772b7af1010ac2f7de7a7f3c76fcac569cabdb9b3cffee6d4d6fecd91bf1df2b713870ceea07dde5943c3a60d8916692cdcb86fee9704e48b92215d5b61dc2152cca6b448537a72df1c308b8a91351b334859e3beb9602e97cb99fd9b13f36f8efd37974332c0bf3bb8397b0d1727e3326ead02647c98c1e052840b0bf7dd510a1e298ba1c4cd0c68dc770748d6540a618eaa2b25eebb430217130e31628074c570df9d1abc11d290648bda5a9afbee642f61865324a63c61b9efce8ed867dff1caefce4ed967df29665ee961fedd2182f977a7ecdf9da69d9d1b6404f02f0ece3663b7198bc6a2adf13063a50a894c8fb532f7c5957380534864a185c9e1be38a41d4d5b6ea224097be1be38e067364d9c20e9f0297172618031f6d5050c192171dc17277c01149326668d8d09f7c50d1f27f6d9715e678f337b5cd967c715336f7ff917e7e55f1cd9bf38f25f1c8ea9c3bf2c1cf2368714dededbd9677f6f6a9f9df521fdd8bf6c53977f592effb2c4cfceb265ffb266ecd9676759b1199009134486d209182cdc97656305d6f52587192443dc975d4a53c22486951d5c45f765819fb5d470066ccac7d5e5be6c10041464654b56556a0c715f5628d4710686050c34f7658742ffdef2922d2fd9c66caf6d8d832a3168ce4c01a3b1c47d6f5094e23481c282c61a37ee7b5b1a01cd09373952f47802e5be37a09a3235647408295671df9b4f95105e69a283ea8dfbdec65210bdd4e4247913e6beb7e1adec76bb6df9f74614fbf716f6efade986f4d96f3ea7cffedae07c769b0f49cbbfb626b07f6d5fffda889fdd56f4ca36315b19f0dfa7a6a894ca9670a3187408aa211200127316003020100c07c562c1340d032544f914000f6eb6565e4a9788a359142739ca18858c3186100119100018a14d13e058b7ac2e3b5ab64d37a6759387557e2900f571356adf37c600967c2c5af2848a14e78e205123805c5491ec1acf1edc7684200592b96d2abe04d21b163a45504d431e8f01feafdbb490b6dc21f288aab6dbaa531446a182cc72399c564a9b6cb0527852cbfc84c69809b30aa93b2ca29c9d2c2dfbeeeba8d7e8dfb895c72fdef950741cb9a9b7dba8c5b1d4f118c8b11d4df2dc618c512797c70df8abd7a57c7c6392e9f456d29343a88d4aeb751462974ecf71c45a18fd387c83c5d8869bab38af6e5f2cb4b5e1647bf5915c7f8879f50a929b4b5788c3b6fd380ec28576eb128a6a6bb99864aaaac1ca28b73e2858b9e69030e70a66b0160631a59d50823093510d84db33661461280692bcb41fae4eba828744e6388012c3592941cd4bf456cd02bd04e4e69206586a235ba5e8325eba9e55d0e9c497d09c87a837d74dc9d1920e407bd09cdeba51f50fbfcdb57665c823e57e5d1d41372ea5a928a1fb9632699b284df3f4231e2e4685ac1003403788c766210b806b9f8b528e5fcd5da49b4bf15731fac886c220428bb6b30178d57959488f1e79b8c345ba4d4b26bdd54a8edab69a8559a77896bcf93df3bee0bcd0cda3bce41413a82ee6f561ca79521c97fd0ccee54bdb99492515104ab08e9ffd2cd6316748cf4c659bd5f7c0983f67d29ad942d86d88327a3fc2e8dfc4a683d137de3bb1d42915b23b6e076b0733956d9ec8b3240b91aa335ae8b19d19693426474804e2650e5406ed958079a6a495b3ea9fd0454999465fe2fb03571edbd428e7c3a82ea4b24ce82b1170c210c26e900a11e503dd469c2a3a1ea8158b68fc8c06ed6723dc7099e16cfbf7c5b5895a0b9e382719068db01a1afd2d573beb9d06cd1a4769a87fe0ca285d9b5c599eca9fbe98a5511b7f95210e019339dae6f7a4031cd9769463098cf278dd0a49cdb5a8d17856693140deccc7d202005af34f84d08dd6ad4ff41a2aca878d0157274691c45a54da733b2d306a6c200e35ebc30db1837238ba03fab9f4a575991b8a32e3f0482b71eb3a682802ce748095eecdc049569936dd582179ccf3070b63db1a0a45dcb6acf8cf5994913f894cc582b626540516a0642d6d0c3e518ccf0fb42ce37260b1576d87a7bfd786c58cb9728539ac6d2913a0ce9948c33b19331d65000f3d1321066f1909b22a4b1f12a556ca5574f204336ae964271b11152e12d2dea5ba7c76e57408d3f23109ce31a7896f3d383aea1583f86920937644bc7a8c6db81e2f5fba711355eb2c91480d4afff44a59126006ca7a170e56068b838772e84ce669c5d2ebd411c8d848ca13a9a693736236c509269232fd68b2d4156b4d6e15ba22b4fae7704ba13035a0b5cad223f28d396fa7c3cf6c17733aeb7999afc8093d502b1aff7eb9306ea8c80e3b745d05b6c7fde2c6f3acdadc1ac7d47b651768b06826a2ab3f63dc16f5de64548eba9ff8a2fb5eb86abab8e429273034d302bfc5bd29cdd660cb7a6277b5937823501524805f6b063841911e1f615686ebaa6c74b8bd704ff4318353bd124e178ff83186b51291931ae95ce6613b51a275a5bb72d2b1ee5331dd564282e347729dfa9ff954e0494c36fa73dbff1e2f8ccc0c8d20efb30b8d28de4c163e02d40298398b3029be12c4e37642ee99632b2156f7245c5ff3777f3e1451b1ed0ee26a1c6189271c1027642bbe9a7feb8e0fc383adb37b42b75ce7d911b61bcac66dc9a05f2f8feec296eb1250dab1874f6ae61e419167c2faab8425cf3ac9be026f6d383aa5f00969a71220a244c5f7b7dcd440f56dcadaee104771bc1bc097b718f1d8df7221a9cdf25ca12ac86ee971cc4d57f8413c8cdd75fac3c4c83683d042988b6fd80255050ce351fbf9a717b76bcab5433f1183111662881c4d6147876d85678d95f9626dac0cc18049bd2e3e94bfd6907546901292381699ee8a79fda1b017a697295efe2908bb01b19d7ac9147f35397b7d8272fb4070ee3a3fb342f066227b2942401cfe6daddb04f0676d847177f000789d1e759997336c161df9c4d57cb2b7a049365e705e8a65b19428ce30b1564ccfc41b0cea5824e2a0979272c55b5753a6b8ac263d9050c43e64e51efd236a29bc7670ae0f3370d441067b6cf5bdb6f45bc97549ff347b64baa650efa98bd0eadb5d9ec1906bf1b64eb77c6d01b132c6117f1111135802500bd639a352835853bbea17a039b0b4b2aef6249af4d590745b6c027f2fbde7f8111c2429e5594754941c651a93a31a9d9b322552f080a21111e66ff9c19c54f6b6b09ca9c910af9d4ec0d3843e017a790ad1cb6cff80e6356bb442b8867126deb2c171008db94a27be9cc131d1807e33d8b422519b9747aba2b3f22b8a3cf1cfea9abb8e37a5851aa52dda8aa1ce37850b8424516ddd12c74adc147ca191bac0f8df56e4372c7849b463f0d9c1470fcee59473421a494598587d94df7ed4c173ffaadedda28dce512f83b0cf4ff3ab58631a75370a21a05fb1567dcd7b7890faa68ab4fccbdd7fe3875fd5a37a581c7a53f0d18d3dcc94fa829e0e6cb0b68e7c8946749cdea9f7dab92011c99cc39bbfe8ca3d9f1715b0d37ab0b245f7ff11124c09549223461e55e8d55bcc4bf2cbdec751b4a08a816c4d34a14d508d86f1f75018ed7f7649ae803f824662349caa832ec5fab4c46fb6a4914e305d97a017c00dad5b49481d18f3b167867ad6dcc358334caf9a356c18194085134735729d7944d189846b9d503992f189e895d8f6e4a3be4d8cb5ad5b2b5e3571714f675acf8813ece33dbdf0239a48e8cd838b3fecf6529a5d0f0fad1a088ed36a3ebaf51b37bda91bef31b5e17f64c23fa1a392565021f48be5a1cc070fca2c0a8b95d073d688be2ca50a2d391a14eedb7aaf874edab79a08694f8ce2b794c0054852b29e77f82454ba24e1262786663509ed756314018d1109710f3ac45412bc4b4fc7ffb857c0f0b219cdf4d954c49283c95ec369c97e321d9c6f1324ecafd7981f468004293527d311bb096593a22fed4cb5ade2660246961dafdcf8b634c42118760102a96105ff992556906bd769c9508a1d03040f0cc5fcfadfe1057f5d717119f3681ee2ee1f7ab886636b027685274e6e0bf1b788cacce3156cf59f6b89b3b614ae304015d1eb1446dfd4c7bac1f41d7ecba9060fadfebeb98c1eec2cb1cf6f7870c699325d29fef582ea989f6446778b23dc964835dfd8cc702288f244088e4adc1605bb41282bcacc0d9c4b5064f334642c0b1b69e770a281452cdad655ac58f16a9c6636b5d64b4843238bda78da311f7e566f0c91084eba1d40c41948878c5a07a9aa07eb6b95691a860be0f08522ce0336e20baba9e0fb5160e9ee816bf8e429d6a3eae69fe501b86f95b8bc81e1bb8393356d068e36cd291209aa49c06ddf5f1cb48b1c14416e2a00093392de93e1732d6fa7a8c70698bbc835436041c51a4cebbc28e9d899aef095abbaac3866e9441fbd7823317a103436aa6ad81d18f739da0f9f91d188efed1a8d49f1b73828ff9f53901281d9d47df7f216ca3e98a98c0702e14a84ba47d732d7f42a0f285ba28f7707f52bdf3763956262e8dcf67896d90b843842c5e74c00306b0606400d1246a9e60371d953dd95b41ab8381b02350b30e61dd3f0282abacb79f92887b804f1a9d57588f95582453283b26c8c4b61662e487b141f78712bda62531890316b800e07cff59456a9dba205b7e59d8f0f21e858cc1bc9e3479265c6a911cfa19d7b9afb074fb71d79466c92ab78ecd5b5b057f9af3346f81d84667f9122679e2d801757743b6e417610b6d2146ac89a04a3b383a0eb186f493a22273b456bffe2a30365a04b55718df5e99a5b81eeefb9acef2c113f63d30c71f690e80c32847dd99241abe73f7e631b43716e3f5ffed0a0e729dc48ae0758f80ad96222f8c571f12fe3a7536ddf306d81b769de0fe08c494b92d49e6fa9e6e28686403d4f25c25f9294c48b13b6101b2f2aa8a424f92e8ed7539ee15202ab33d66f18ea68463def5d16dfc578d6a71bb2558e0c3dc26c1f340b82a92d5945150514e42b2258b8f2e61ff3e4805d281f79124b4d939abd26e6c574761c80c992c50cc01863be2ba724442608d7927b4af1d1c5e580a77cd5135abb2acdc60d4d480f61bf1c3e30acfe39184fb3a1d03f4b0afc4e19533087dfdcbc97381cbd1a785f6406210a22db1c9c25da95cbd019d99e279251cd0957e11f8d110b85279e4e533612bc16d3855699fafcba2b03af1b495b3e9baa2a6f2c0bae48643c6e05f385292a5be8026b165a517a18d21dfa7a4ddb22e53f14e669a90df14a90310a24ab7ec590a98aac91831fe28e869ab4aa9fc2cb38b2326a46614444c3fe697cc932df7388331872e33554446ad6f8eb5d13c847f108e4d0c2e31a4a288923506bfa3542cd6ac395240391649796810b8af8232b1c3eda5b3913b67c61c3ffcfafcc86ff336630c26f13d08f870dd8b9b4c0c297e4d6a0beff83721f85354a73b5bb9846b2f91218395b313517c99f1959665626f9afe435a735266f2b992174eeaf327219715bd492dc48b92e83ccab9280c683778de9644945db3460b737447fe5e8066c14063c8432dd47f0ed59a2f2771bd75632fc38a499269280d214ee0c6a0b38e7cd4c54a8c823fc077ed6cfb93adc6ad1371a07c3657cd0f686c5f287d3471c9f35f4f9feb2094db9e082393121bcde55b1dae63b1dd142a4e61db470f3c218774239afbcfb3ad422ce92f12e921c85f22c5d840ef3a0fba4062199ef7c52ae911974402289891777e530c9b0f67f42964bb07e7912017de73a787ece4ed713a5418a516a0e12bd236dbd63650995f46976edd473ae2e212bf02287c9ba6c74bd0b23a79209fb13213e370093304687071a99720cc3240d6f4761536b6410710ab5dba3d9b31dfadb9e66cd146cac0a0224a3dccbe9ca5cacbc46b13e5e8e4b992ddc29a7aa92fc9fb4e3657fab2a944146d3cc483b08dcecad59823626b166c78a744db1b8af3b613a40bf88588bc90c230894b7799faf7b11b0e5e61e8f86858b8e3ee347928b68f4c532e65da730d67af5944cbbdf3d3e177d5a5c1c23317fa32b5e9b25266f2d17bdd4dc2c8fe71491548888d157ef57b665fc4bbaedc374215dbe3cd0045164fd4c5b0945a5a13b160a7a6cf8d62ad29e921c68e88466d85fd40d5876d20e8e42d32c2b492a296e92d7bf72a0bb2b013e0e840a6d17017a75e8b34e4e6a25277dd2e8e5f79628a8d0ab20fc3c14696c1c92849aa990c227be0c46066238546c780e53ca33afe50d537511efeb33e7033b0c179d9687373966516b6a0f06cb74c0a45c3063cd9da3c0d687a844a56568095998ee3adb3c9e5a075f7fbfced42da93e316b6121a7a036c2c3667af6dfc1bc2f837c62bcefa3f790a6db865789bc4b62857ce82651ca1a330701dd7562e2816e4ce812b2ad6749b6c9dc094d10a9545a34bdb31410c206ba82fec990bee067ae2329714e006f2af33d27704e09fea0255827cd5b913a15da1176e89d6849562c8d3d6261b65b862289f93dfaee2073a50497e0fa8bbe32648c43065a7f4778a9580dd4ad0963b52e10217c871a5562ebab2655fd57622b98c9582da97b30c00fe22d287b7305ac895facfa885cc327fc6227bde2e820313a085055b87f2dfbd557549e935939e4658c464197a7edb36f74c9fe935473a213c884313d602e3221cc211afee86292175fbd666ac9a32316eaa1fc3ac7e734549650f52752e72e0f629304c5c3f7257cd7bb10b0b6fd9bdba4bf0694ac09a01d18a868c328859ace097cb967cf4d63723410d48d2cb3736908ed2a202a5cc0eba8e58662730f0dfefa964f1e21c7efad735435ad70cb95d2624664b48780f82fefd693e7cba6a3a5020b0e8d841530ae027c9584d3c5b0749d3081dd5f045e0caf5240119b4d01a2aacffd9ccba4a4da5bda629a4cb67092fafc124005b050e71c32d8290a5516c04d8a17842c92a72c04f3fadbc3a9f0fabf78e09d7cd91e6423623e117ee577326d7ca1caed0a2745cc51a4bff5b896f5aed646cba753219a3dcb3259780d9dadd091558d84cf56b3b3b5b9d4524d9a94c5ad282d8b6c24f52bcc6d1c7d30c25eb03492236792946b5e3cf53612bd62939682a92550bcf58c482849ccbe86bc83250a9736dc84e030eb6c323b4601b6cbd9f6da4aaf2b30944fe476b54a18f74a0ad819592c4b48a17e1966b175141b684c2ebcd7262d3afe2c7dd83522e650976e06afeb9416359c6f7ffe6195966c3de379360010a6de782d945ab6059e6328e83e282ba67a39687a804899a3ed718a6e6284acd0aaca0a7992aeb9ad11dd3828071f253b03a6b6a75a90ecbe344fee0a241dd8e6aca6a09d295e13866f9a7274702c0134d7c233eb30c480a615723f3d848ba4b48d846ad192cc0821db83ced3f0121e719cfcc91997cf855c440de0dce896bd10e04a66a46d8ff8bbf5846e68d1658130b1c91670b742153765e70cdeb01990aee542236e48ba7be30f8f37da14f786614c87e2af3860d83d026e55e04a74cf95e98e7e05690145378209c82a05731ba9d0b0360939506a7bd4b8450af04d43061df1ef7076b480685a69e166aaec0f13dee4c3242470bae1f4fa1ff5e7d870133484e84e881ef5ebfd022a3b4edb596968f3e2b6f9ae83a09272e0810be8f6e4bbdc098b1f759d5a8a68588a1e063bbdbc8698d2bc73f2861b6212bb1d82b64e885d7edef0b1e819784bb1991ddf8a7739ea0209c809de31b9069496a77cdc30c7fe26a6e866dbf4965e095facdce8ebf8a5eb2d4e029c925fb878c42779aa4e3c70920774c5f93567ce562540b0646493b55e043a2d35c63cb0e4a38d1994f905ff9a78821e93ea9eae0409fe7fee4de456f2299a6cca6204634db67c20a924f309a6d01f0c7b67c13701b3b29231840aceb76ff03174ad8da2700ceac59409ed071be65fdde4e803ec4a51a8ffa763d399b8916d1068df48888edce8782fa0729cada46905cb2d035c59ddc995b5d0c4e148202b0618b2f1fcfd69e6cf754f8953144db7f409870280f4ea9267428f8a2da10c650037c0e6d1548d07362ff9e76310391ffe5b1f7f46dc0dffe5dfbd530b3a6c34bf198e5e3ce2264052245f1623aaf0543cda8367c8acdb51e10ada6cdb9e4b23822f7e7911228bfa66319622c27555d30d2e65ca76950be09a1bc4dd47716fe312d70b30957bfb0daf081ed02b3f87e345bc7464f8adb3791c0b0a381533548974302f07ad41b865681f27a429cc73a79f1f2b1428d5c4f4d0137e4bd1a19be7581a483762df2632dbf050f169f041dc96021eed50c4db120aadacd3e35a0e848eec69dfbd72c1928a67c5e568e6b5281f20d00dbd80a5188ee935ecf1c4fa22cbe1d90a8e3aa7303d788e45fa66b1bac49614337764bd5ffb272c223109a6f5ee7713ac8cec586722d41362ccd5f62d5456f15b26f5da4731fd10e4717a69942fcf2d3b456f624fbbf37ac92eb6a4457453be45ee170574b5d9e68258ecaaeed00614eb4faa51f745732ce794662daca668e6c7078da1083bc6148781845c491d9ee4ec9bf03fd8cddeb7b693f75f79cee2ca57cbe2b25e070b8413f5919d5252aa70121b1cfa22f08b83085dd3e40d00037a3c6e4f90d230cbdf436031608cdb500853cf2e4214ea9a048d041751e9d975898fe77f6ef669e937d020ec29272f5d6ac96d12c7a024c58e0dbc21568b8c68d8ae5d6e5558f54acef8cc418923e6018606ed3def9673d8f82df1a89741287e330a7a41390761a8a8b44a4eee54a98146215163688e88d5809ad8a6a99222ce9ac3858c5822fad737cf7f3cc982a171ae38b9a9fe20712d95b46e9dcb1e971dfe1a61b2d665258c74bc2e70e2ff62bfd94ebf55ee829178944e10619e79b01175a316edd5144a5dae1700a864a86fd4f6da2b9ad069b04a80c46acc196eee365c33568c6822cf7a231bd88ca4e82123e753a3af69e9f7e4962cd7b7b962034a4eb8f65b185743d094be8c20c56f2da5d1894d6e99779378f55f71add89e60499cfe1596935ab442a01ccdbba01f006e1e0a031351c8bd151cb00e40d2cc45160687c4aa84d97dc02dc93eaa3a5e7c59b92460c67664ab0918ca972010a300543fbc6b94e70d92bf517958f3b90421a2cb963bc96aa7e374516d8f271f44d6fcabfacc63aa402ad710597d842e4ea09523fe7a7261bb053c41562f6c238d1a1a4df57fb0012d36eeb803329135d24516b39756c54852a3d9cb164c852ebdfb1446acafc00811241605d34301a64b72f3f27593eaf3869e1de126f7fd1ed82ce1deb066519d268bea22656765da7ebd9632bdafd5683a9b9dbf829a36abd86bbc58d72e8b8a841f111aa809e0cc1fc60d3a1cd8a95a6635aa7623a94b96cc18df9415fbc73d7ce86308aff3cf96e437dcbf0f230df0d85b4329c8878f90b9b0982aa534cd1bd91d08e89fe7c659c68c218cfeb8508906c1c8de1dafda269e334c9ef1777cb51aa6e9bc052e1658fc7da8bdaf4b62cf9ef7116623a3cc27c6b43966fce0e76a41052b8e16d941483da8748674d97e62880cbff68af4c41540d168001a661768cd1aca6b1b910775233f66906669dc1c9c8c0b409a7231409f383c8f3494dc989f85ff630b2ce6ee7714352e85aacaf207de5e6885559269001a678c5ac8c46623223b389b2794e2be3e6f70cf30f5de4ad973e6061c451b1fecf7286bae8db78c096f4c7f62a0bd1e6f0005839697fa1527f989429f88e3d417568e8bb9bb2f26608c03188ef7159671e1e27989d53f0cf5f104987482fc55894f4cca51cc1bc3a109a573e0b3048ab0ceb5e05da9a39a65c52ed6df8af18a7052aac59210c0b6a81e191771c284b6655fea1343d196501cd821c3a9b57963f2d510d31fa948b0c011488785cbf823393b378ed6aae69063d970649ae56be6c63bc15d5873444cc82f1f2da06e3e53cd82c2f65e39520406312ffe0951ba1603805910c925cdd9fa7372d32759cf5082af7caac753c2b18bfd8e59b84938083112d0e127cea0c67ea3acb332c690d0f2ce42e7e9b108f4d4edc5555ff135b66e5e7ec771690e710fa2063150877a5c0f280c685a055164f5035a4acc8218040aa59726c216d6162b2de401b0d270963f81667fb4e59267f4227c4ac53aeb96daeac12b73a55c39e1e1642feed468e5b3f1d6c49675b0744c35d8c0967a5b90ec356480631f7ebac74d074048767d60259c42a6874c877313e41207e1c115a6214d0d30d3e145f4d11d146d0f72b85c68004c87213729341d5caf3a1dc62b959ed3c10bac97c6858d741ec7c4bf4030d999c217899f0eb7647b855c3a95ecf01a5e23f108f5903e793eb88d391dd4360820debbff4b2729a9cd66f9a78b4759fa731cce13a5420693ae588b8afe04d8b28907997d6d88327c9b40d4b5f8e2fd2e047b4069c7b88fd5e20fca02235a95b8fc73944d2716be50ea9c6609b490701b729e06c38a2fc4c5e13468e1c3d4ceea26214cb5416d6cce2dc2505df86bd367cafecbca789560717f95666c3e7b549e318c14ff2300e33b6edaaa3b47b25a6d62b6d9b10bbcb27778022ac695b3f89f95df4b0db2a78dfa59425d337d8fdb2c7a264d6090a9e6aa89ced22676f08b2d08ceb7b21d5bc79ce40a2a2b1f649534e5301fd0b43071a47596aacdc18d3dc6a4191d47b285bb5ddf6c541c1e57332bf8843bd4ffc2c6a9cd65fe6589f354105c5bb95b4d6a128eebdfea09e9983166c370f9426c589c5b4562e0d17251ae13384b2f1881ccf52c24b888c3f6578628406c0171ae54d413400c8d500eb2e4b600bef7dc68793a883e5cae3a9a556f096d9811586f77a6d104f3ffc744139862db40a0b927f59f0a5f10efc648e4505b3d408741a582800e9ac96cda7dfc390010ae8ae5c74591dd84cad3fc7ce100d0d2ff5a0cef3df26ae93358b4ae4ce7d09469b92a5a69bdfe428d0a0bb687ee766f2220d38edbcfb8cf5111ab085f2bac401b9e1976515084e8652cab0b0e3a70af1147844b6ad93c64f2485f7b6820c8e42cc0041919e90d580eb2b3ac693040c2477cf26ef3849c37d4706ff6e4047f7de44304cfdaf62b89e9d23058e8911fb28dc4268801e7224d5f37dd98700d2ecca29ec2bbbc3ea622353d1d179a297adde585c3efe04d50d8c8401d0b0a76820a9bb721841b24fbb1f01cafb16dadf8199bc30c45780806f842d41c6606ea0ed433e0f2e6074fa406dfe06c8b1df81e4ecc0c8085800f6f017f922714d23919d865a90a8f66a546fd1322ac09a19c363a88b6b439409aacd45092c2217c114e008ef37b0402bfa8662719b589f90419e838e0ff01f5ecc064b3e9768c3328c2e353a198b5677d1cbb7eaecbbe2c463c6a3e56c0d7ab58c12ad7e050923fcd8bc389987238956a2f603cfb24231c059338555fd9f866dcf41ae46a8636d0ceb0007e85ddd012d6b775c5c6b1146b17656e15db4fbe34a6ba2a67338a2b3d9b6da79b50c516e4d5284a0a4537b7a1e9f4ee44bfba2046e0eac5676e34fdb6adafdcc827bff7d0e8e6529741a0b7fcf5bad86f6008b484dd7dd4cdf26d4d11bc4cd1d4eb67b82bc57fa66db70c0c8c80bfb6a26ae116206ab44c8219d246bb22c86d98ea58f28267201d52a4dbe25f7556ae99c2f4f5ccaf43b7a42907b576f8583f1d045cb3b1be617f13b5551fea877e94258009445bc20558cd18838e6b8d541483bf39511e7e4f28aee68981c279d0c399f46b33996d41f2e8c0c6b206b5d5071f92ee3d4aa1ff259e11d6b9c2a687fd821ddf989057fc2e6705842dd95644968df079a71227ad13912300b6100b6860c6bec71cac1a6823cffe9fa0a2a712af55239495648d18d2a602c84009b0149ad316abc2bf5c704a805b4f9a831ef9f5edd002dd913a620280f8598849ec1507683a729d0a439f2ca047e4b1867206b8a420882ea89c747deb425273017a8060584ad126ea2f3b43573e03e268c68b50a3131ffea9f348a0941bd3065e9a0428a2d1a06200f2d2c33e81c4e06b1a63eca68230f010c90192f4c7d9cbcf88d6f194101b2211f40f0b08ccf0869ded40c8a6e22e27ea3a37d71774c442dab232acf15038b1256b0cf60692d25c44bd13f899c33ce81de01dd86c595e7bacb86315d49831fc138ffc3d8e76510b87b38d68416f1604bb515344894607b3ade0caf5b974140a57e3b71b372897ca2c49cced9a3647b68df098bcf0cc1300e7b509cb06928d6375f6f35cdf52dc0788416329958b561d8d8fbfbcadccd3c5d736ded674176c202552a2be9ac78c59d2e7fd6d0ca56506bf1036f07bba5f251256199da5639ac4e5bf4c1a77113fd145364f917e3a9442370b18d9ea0c5d7f1b19edb14a1d8f8bab47d8a95a5e9ece4841810e9d003e46e241d3fd48b5a584671069446c5de347bc452b1f53d34b0156e26bfa420a4e635889af144477bc618307f97cb536c06097f93426c204e296909eb9f652d51e91c93bcf30f9c724bf3e952243968bb274a0470837d55a8ef7c960d7998c6d64763f9c915b20b8214a0ade3ef80bc8cf4a86aad246b7b2f1d8483ed39b2120b431281eaa9b6bd70de08e0b1a6bc56004cc2f6a265aa8ce36050f06c0f3b123bd351a7eda5b20c6c0de448364a08e5786e56b03a2b36795bd9d7df938631161d2edc8ab3acda5aba1a3a117376c32dd5e52fa4a8b074f1be79aae58e20895cea2e89bf703c15b7e44715484a9c3ec94db7c21af42a10d2d7b4039e663a0735d10cd9b8ef6fdbc79e8246573d8a452351f386c136417ef838f535d49fe489d66ccaa3119414d99789572af89169db7c71ac901595ba3dadaaff1c21374cf134d52904b06ead24f6fdfdd360113e1bce0c4ae55a46f099e1598c7e4a9b573819e917c71cb4d622c9073aa6652925b99941405ad26bb69fbaff6708a22ab28d08dcb21e1b1486fc7e755be43319dc67bd3f8583445e31825b74afaf3e7ee6e372285fa8747d61bb15bac66a1b04337d26f73aecbdd1d1cb58763a54f30953dfe00406f959ec76ac95830f03132cc35e18a4a889a8e15d601cac5b918074e1d42145d5a1f9e0c0f7846a4949161b27929d77c3f57d248186213e554131aec0ad196174fad0ea63cca1d24e780ca99eb53508d8d2654118c79bf8de3cd1dc72763b41b98d34193b301e0ef0850f58de4dc45eb42e04cbc8efc31609e248c47aee6abfa71371d4c753cf81653993fe4670b70bcf97db59785b06ac9e87c2ea61a757375fb31f4059d4abbec56b9779dd7da54305dad4a360ddeebb6f8ad95ab5da8f66016fd688c949b9444c9071ccea2a9e40bb7182db0722f5bc00f8798cbdc56bb39a12456d9915cd4b9704e944d4e0dfe82c90e4201654d446c0ecca900cec0637448d1dde776f8bc1f0435eee820141c5b112b4cfd877407fb2cbbd77daeb3a5df7efbfc70c9ae4ef9b60da6caf42572a96fbb5c3705357a42907846c841ed800f5828edac0f32d64ff3f6f6dfe3ab5560f264e00fc38258a08c5f650a1eddb2dea1a6b46861ec1b715642f536aa1a261dafc06d318c1be32e2a32a8b11d11219a84b311c998b028c5fe9aa5f0a195520c6d8d71b9d331dc96214b3140c6b4d0780848419c87bc817bb56bf84744b7d9c220a55585b66a78116c33a533992afca7dccca2caeaaebc3892158110223f906a6069df0d63d2d0e348bb291789621b7668445c78f05044f842d27909756d85eae87e74f38d5822f1437334f224de521114a96debcd8651754a310704eabf2088185029c531e7086a8744d8ed119ffe355604a6a4c0ccb894c61f27133d524e60d62d2cfc78e16b950e567f0274ddb7465660d5e1bf07db6d9ff1a5b228d8b14aaab0092c89a3c3f5089a69a5a8ae65a244fb8d45e02fd6433db161e6adb01b285b2c8005900668b0cf6844dfd8ed206003e60e7895c3d302da723421e8ba9cfa4536094c096c1984e70fda2bb830c9832cc3b40ab6063078012331ab9f922168779c3bda2315c18d543e61b8ef823dab30b3c7cd34ed5109e1181feeab0453f32e0c99902bff305d3830c340b4e50427550fb73d92d2349ec0f9a2b80d073f994a2d7abc4529ddc3a733f0b84060f6e1de4a7e57c28f5cada5958e8a96d2afe03ea07c498ad284af0b5867d0a10a5aa4fd57c6c53a5f22a138e3999ba3950b425514acf03e0a0e78a2b12a455747684ba9e025cc804317f3d9c3c9a3d74fcf720d6dc1a8182016838c186986ff75485b7eae6ba297bc7ddb729f828bdd2c5eab5a2ed5ebb762f3b7022c1467260779654ee91f23b186114e43a47081c12ff57e979943940e59bfc3ffba05e7b56a8bb5be5af893f1492f2eaa86dd815b03b373b5048f38f610f61ae48b1a02b094ebdeb9451a58166e451c749ea83ba55a47031ee2428f8d536515e7b8db3d6d14bed51f4e8e113c2d58b55f3e7d1952ee1e0a0d8bda7dcad13f741ee9a107237cecde77585564d62ed6232c186e7099cf12082ce625731f6577a7c803c70eadf37e4afa9e48ffe3165170eb7020a94bbfd87063407fc31b520b72ae154846ca9a19b43e2ca8fd37e41c6cbb59c386a4f0895cce5ab8c487a6dac220a49a80de153db061614813d5747aa152f646e3ff3621eec385c941265ef7c3cbb3eb2c5519b9685bb12577e4421d6c4c460b463f794d725177b8958e60096ad33fc378fbb64c98d1aef639b9f90a6d5fce70959adb15f23c8daffbed7140534aff784f4e68cfe92914ab2fefe40a37fde503846893ffae4eb80c5a6a03096478961ba341974f83175e4a5f6724351bfb9c3fd2df59c2c7a8e192a20080f2df14cf88a7aba66ed344d6bb38fbec85c38104f6dd9bda48ba67b26f2f1a018ca97612e6a87bd6b919f29e4fb7344998045aef2047ba169b65f9033a7479d9800c58cc1a0061a617e9f4c42316f6c6399d81ad18183c09996a0155d0eb6a5e4546f53d41a7e12c51777439870d442396edd0208a0695cf3d0429d048cdad0eb3ae80aa0e3e56ec5ced00ae7445a4eb822ad1919324346f188e932a51bc9a933214b5138a570028d3ef221ce2c4ca05d3da2cabf2d83b9f06bd11a45beaea6ef158d4a3705409d22fc9b22c2c4e5000710b4ab15529b4c99f06520e8e9ac916c0a9b262d0d2c8d5f18139604a015fea214be20d8591412d343c63478a0969d859d2eed89b14733a1106700a3b14c0d7194f0e4c8958a72400f7ca3074048dc2dabd4e3004a4740456ecc684bcd884c5404338078304fce2f0d54307c1d178ef4ec46a2defa45be09df82fdecbaa6ec4b473eddad6ae30806e2398b4bb346cfd7445e6bc5a8437c3ccd7a331c01232c0716700fd060de01eca2dcc4b08b4b897b42b0e0cd977da3ec9b17d4daf2ec09d329220f03e78761c090e054ccbe8a3527167ce07eae8b2ddcfa944feb3a50aa8c91740228487e1307fa93f410c78e771cd0b4104d7a0ed907b2c3ec27384ebeb84ac84d291881f3d6610a127c3d2a60db2280631cafc7dc66133d904238033326066afe653b04f72467fd42d564198734e95d658a547cc700429b2af2ece3b2aea20b6cc7e184b9c43b9bc3047c39f53d0dd5ded8e2031a6f8480692c2c8f9709f5593863d3328cbb061c29298e348f42a2f4f9abe4ad398fe83b75afcaea8b8bb40837c5ee3d55cf4fd9a66f1aa94f99b81220cf91d48f4097459fab1749bd157099b700d1da625c90f20f76547ee88095a03d9a2e5e1099ec9dc62b14bc79d00867bb6d52c06f4e20bb7ae00590086a9c8cfd28f284d43910340b805039f3766eb140400341a79d54a0dd44a26e2c6686c54315d525544a94921c30584f90b4398ed9b75cee337d421d255afe3fe21aed90f0493c59c990e0b12d5916a347db1dc4ab7a513980270a7247787c8457f286a27389b5fffd1c4d46a4c168a8745ff9028de277a29975ebf695ad00d113b856fba12c3eba8a1e0ea6ebd9dedeb0e92236bf4dffdccf3f13b4683c03ef2351d0cc84ce0bb7a2ba448675956ee0c7d4b3706ce2776311393ab751c6894d1170a88828426592adec2245fa87480860458b97445ae2d6219406abdc93585687cc20e0974d4e8fd758b1357165cd666ee6f6cb6e9c8663b3734d4c51315416f34ab675c13d03f841b8c3cc0f55705883a371b13cb9e5e0b1a8f485f3e82ec81462058cb1fc5a3e3d472a9e90d3af8f5374edaa84c989f397c89547cbbcc6324b982e25714a2cb5e731aaaea80b2ff1cc034f425099831e960ce6ddbdf999195a7bf65d68d1fadae1d633ee077e9916ad023c2ddfa8d33a939f8e39203f2759b46145f94591f1abe79c6315ab46255cb9c168301e166f82e9a32d8f1892ce8e8821765eab1ae93d9f13f3f29098f01897a242abde295b605bce4e54f629d8fc2d1aabd7d0518ff27764c24285d1cb778b35fd913e8406ada62df3755b06d261394da951384824ae62a4a848a3428f4fd89644144e1fc48df3bc57e4c5f84e06457ecf281b4ef99129105b4872d824916c7e5d8aac46c9b798134997de93cfc07ebade243c8288a893e79bf85081c41a73f1e1275e23c58fe8e6314fe7d0fdbf1e8500f0b4947f494000b626e4ebbe88d21feb175164998ac7173dedb585dcad9ee17d9a3eccd1232062b685f313dd25a64644d023d9700fda9c262f9128b41dc238584e20efb25ac668afc6efa820808c7d01dd9e954024ef9f0e0ddc99b70b12ee1e11f8f6715670af12535e850a5d31ab30d743bd63a1177abdb3325e96c768e5c1b997655907659bc30da5804eb3212ce4eaf9fe92d094714da0e8f082e66351bbad5d3cf151ef78585c1df22b88f43306b7b3866cac302d1e12e539921bbc6657e0cc72aec9834b0e2f25be701a25290011109644d3aa27d709198920312a148133355aa94f168b2da62e29d20dbe5a61c240200ad38aac9ca6061f8569c9f9981c818cfd78e0148e50ad26a548a89064302c6456ecc38a9a389629d3353234ec9ba053816d04830353814a2ff2ba201f2bf83e047cfd9080c882debcc45319135af7411db1009838e42c32726b2fda4f43e4294025e2a0ab08d1eea47422cdc1bb661975427f2f88605d733a651c522441f252ed98bc86c85a2328cdaa57728b297a352d167384981eccd8714dd7560d99755537cbd0da7cebe9c87489549e508963767ec6a916b134247b781701d7589e7fef40b46c7088db2296fcdaac8f512409625d15aa647b43ca901f4674e2ff00bb7a7a3b4f8f472479e6125c92d466d2cecb82fb4c01e3467b9da4d2b37f1a0b3c706714af7dd1b728e852d4dd87560153bb233bd68d1ab5cf8491fc55778f053fae174c24a0108542b67145dd04c593705ee9bb08c80e4f5cccbcc96529f0678607a070f338573031240eb11909479a64cf2c650e4c785c1a9ba7381cea43bad24ae50b7a01f6796a4f5c1bf43e4709b2cdfe11f998510dc633cfa27e7c1ea190337988919670df2938853b5763aaf6bc4ee0dfa7cc3a587633106355775f0067ab0de53a5448342510fc3d5395868d254d7594c2a81862d35f608b3f737bb8690ea37e31812358a6b0913d9d8334570312d3d2ea7b50623a006fce1aca2f12165b60de51fa9d8c872c3bebd0363a1e38cf018c4ae50daa061b5fc13923f108a337b77404cccaa8aa1e6d6ea409c6797391c776d0061b22fac1d901bf95934bf4207d9c3f0359ad6af33568acc6a3d635ef9a50f7ab124c0a2d1388af54ab6f8500469935d2508dce7c30c6c57394590bb6e36643e4e6d67e48fd5184b41788ad1a29d9c04bc093aa060a745f820019dc4154984f6945f93bbf500308d060ef3ae102e814c37308d26f10983295f38dd639ace3ca37ee924e2c2387938fb29bbe040ac734e30caf53097b46dc894e9d59910cfa1cf442e956ba1fdaabc0bfbacc5afe7ea67a0db5cf78e26c6b9a88562663a10440cb68d07b4e3fe1883b889565966a13c96e45fd5400ec407336c977f7f53a4cf74eb1d4987cec92d28ddc28e9a196640af4d8d8d585f79dcec7d05e2c9013fbdb3ffc6bf380e4fbac74fe5ceb11d7746348fcf3f085c08426a99bf0f0681bb47725b8c96294a3c017e2b3e06ae27d4f3cdd18c3e5814ce71ac2b21af000b45ca616aec4ad719b90fdf8a7e0834efe9f0f79bd17d8e80f9670043cb896ef07b34d6241e2be12f3bcfc1e648ee44e30cd1b9fbe4164a57b6a1ecc712e74ef12141c785d8f0c132006b77be1d64df52da35df8368c08368d275296e73229bb08bce24c699a381966f8bdf70c378f254df7dfcd0b42682f868f164b0688b8a7d8b7cb485bf02b4067024d15bbcc985e4822e4091a5346ca7aafa91ddac4479e1ec4059c71532025f4e5d6be8af1e4e41bbe9405013dd9178ca6869a3e0787c706830fd541416c8c6bc8725c93472ab7806d0e9b9cbb17a8c290043ddd35fb1128dcfc067d8af67ee0307484a456330a12bc3bd85760e81479282f3c14bc38c6cc61048f7bc1b9a097574243358640fa381619367e3c142323a74872ee5c1c0d777c7f758b59275997f1d4ff0bf007d3c1c1a1829a7d219e33876c52a9af966e8ac7a47e64a095ed2a4f1ec8c948cf046201a96bcf1f5b24a5465f4804d9485b11e15102979e67b358d7f52f31e665e110611b14778de21c739bbd57333e17684553d88000ee1cb63a6ca1f4ff6ba71321e86efc936ecc8575a2fe86e2a6991c35b7ac8733623584ed850a9ed439d963288aee03b845a5b888770cec2c0e1dab03660393f6d4bc4508659ada9351c519158600f1481b1577575dc73871b4471613d86a67fd991f05ab9dac4e9ed0ca28de2f65c44cb3dae4df7f3d3c83b9ca5d5660c412e08687ea5e59f0f6e8c9f8bca48dff612465a2280f8e0b8712004f64c0c2ce37b092a637b88445229869ebdde0ec7d3003899e3415524b90e96d050b63f690a55b8f48b0fe852a7455801951a1de2c606914f8332118cc4fd31471b36f6e51dd66a57873da2faa574894fba6f162bf0cd4e0a772a7ee80957e3cc160fd1ef2753f58f409404b5521e683a5ebe8d1c7df608099c834d990bb2354029d652a15f9f97ecd709abc442150c36ec3c332e1e47457cf7c65738d4841326bda35974c6d53375ea46f6c18f3e60fc38c81aee3b859bacc1a880b0252b7542f26921cd5448465ef27a8000706c3c0f41f35186c6416ca22dcb5305ab2894f99c8c1f52097491a7378edda02559725863f4b26cc9c8235a491d3b431de398c43768eae2c9183bcfd79e8a9f8fcd781f6840ba2874b0efd000992e8e8b6e8bfc9e62ca98af07940ede2732cc0cc9ac5763ecda19268ec5ded06dc4f83ffd30fc050b9b462f802f5f3a4686f608f8be4e69b5e3d7aab235c2ef390dea1502f780aae573c47ddf13658febba5c4cc61f576f3d95fe70a5228de7e31d416e7f38d594d7839e656c941c014dee6a34ab0b523fb78454bf333ece45ae9014529f8dad254b0908457267ceb3b88c6b4640eeec8c583d6f0665b892a42bc70069dc386bce2d303c81aebb50f0a6304ab5f4809170fd39a16591f189aca31ea5962b4500f8c631ed8c91e19b8a0e83444ad695d80e70200eec071274c0420c46ab1ea80aa6048e8081f2fb72d59881c81da4581944501c400f7802ecf9e4ef8871fa3a39f9def4d9d0a811be514deb0b8fa5127ad83f79a474db54d8f8cf67485547fe20a08dbe9b8c0395e84d48eb7b2ea888e21a15af4e782769fbdc8b001d3ac99394f6f75c06d0d788bc09b422bad73569321d8796e899a2ed712f136875892f1adaa2bb2eea94acc7a142f642a5b54d10b7f60f190735d18346ebf7e28587415b4b7842d3868998b6ee479f4b6d4e1f3c985cff0a2efd923946f36674c8fdbe7d2f36dee96a437c42de15a0ac48016643812ca82ebac2bf4a918584eedc6b6d2b0e0f82db5bdc64637c60b5e9334714dff1f0d8e1667e862565eb8dc62a4a8d3e83a69ade2b6de30489546d20fb137442c7ad1365226b892aa84d0ef4702676e4d67b9183bfccfdde0c2089a7168d889f3f8d35543b04c604b0763ea2a26ac3603e1003343c55abc14ccd2a4a552843061c654b891ae014ed4519ac606efc6a24b773afc0ec05bac4f26567bf0d09e7b318aa06d945c848fcd159c92e6ce346b1b8b58cb10510873dbd2f8bb1c6d1b788bf0d54bfb4c148ec1ee026a84f82a281be1ce4e49a464cc5754aa75b1a245ce5c4f375b3ebe96c49ac1d2fbb35196adbb4a85a5a0c45abe2dc8322f3b2ab4c33d10952ddf1d1b6856d26508c62f239ac8f4117788157c64e117f956f630485e9592ba786a86bcd932f206d390b5ba2fd287b7c1b08ef876554a8d91a75bf4cfe251506b8a9a7567735b9f01ba903aadf424d5e0489cb5642ba52cc1c34e418d2ecb53610cf1a2068eaa5fdad5efb4293bd0152c258ec7b83f4bdaaf2f86037d598563be9b710bc3389911ae628166f5df04e43ed8326d236dbffc6d3b2fdcf256bb789d305479e6c165c14233dfb1914ac8b2124fe0f86bb627016afd87115a70125a7735cf50344fd8330699c5c31a52bdfcd0f521026f59cb7c5f85e889eedb7788c5337a9ab075e9324304cfab8d7b8d0d4c15e7035fe1378c69d3789d3641bdda4c4e0d05ef5f949101b6de12e068d12fc567e5af98fc95af452bf4ebe164f96a0dd1f07bafb2a56f4c6a186a4ebcfb0e37f703fca5a1c3e6676eee9c6e802a7852779701db37021dae3615b524d1b915f6c5617127fc5cc30970207ed145978aff565d7d5a2b90000cdefa8f9710f0b986160029fb46cb58701907af8ed126d3ff3d68897946dca61d8a419ee276eaf2e324993706677c72a0f1f8391f10e47e13b99c312491818641c042870645c74d62bd0dafb2005de035dc8d232556063cd438281c2cf0a743f1bdfad27af9108a80b3a97865b24015559f2ec0c32ec4ea494838c2196585c81f837785d8910ea12414c243ec5bcbb81e48f79a98572e9028200b2dbc8b2a83ad7a8c5544524fa7759ce87d073d4a6e2c9cc7d5c1d85e7641f4dca9eaafd5a8c1f1eebe3ba1226db01416bdfb4346d82a4455a0de642236352fcd5585ddd887c507217fafbf4ae896878cc2b8aedf523bcbe92f991a126d25191d79cbe54177251a121e0452d34c209b54d693d4a5224ec1f2e29ebd01badd1ad0e410ebb1f722d7948ca2d0008c07148e7e163f75cdbc611b236d93dd7f4aa30853e269f079865f410868ae0ab6b943ceee4ad043222f06a46055507adf098376d178ddc8504be65e5f2a04d5d104c4a4d0e844b36fcbe38057ec992a393e591054ca048db9a8f3b28f0c2c57e48a10b0cc5116298873df9597198e9435dac00a4e2fefb3041be4de6e083222a036f258b65f0ded28dbbd945feaf70629e2f54338d2792073433972cb129bac7b8403562853a34ce26896807dce55098cb54ad34079761279533ba0a6792d72b72ad36308372b37b7f8f38d59ccd347cd1e7b0f4f506b9869df8a3da59222c0a22c30f333f92bfde7c9c51d11bc456e93d8822b316535612a1a4b1b946e3663fdb756a949fffb32a6bc963127d60ea10407b60c767ff53d16fc9440ed617d86d485c6758182845c6339a8d335cbcba690fd2076cf5253f21b44233db1435dac04918c005fe01399773a039612ac92ff6e6d34b385ddbd1d4a11616e02d2629a41d9dfc30ada6ee33b5f24304432eeb1068fd078773c9a25366e11ae322b73c315ff738fdfa3f30f43c3d5b8e7a429d150a4e122a6ab41e7d02c0a01150b3594e0661bc525fbabf524aa46682b34509132ceb4e443f42e54e48b7560acb5eedb9bc8a0de121409e6d5576571619a37634bf4d2b57f9754fe20bd001a312bec456271f71e6845267b24491686e513e135ebc5811a00bc993868c5526def38e06e4cab9efffc25e3cfafedee6f28c9144ae0c42b9af0c77388e594531a1d818f5c686e68879932e7d3b9432dc23bd81752a46018419ac339501b80b9e8108c0f9dede6d446a579dfc31287b724fbeab5846c91aba2645614c29a03fc356d4a1083563228be6e01e714ab90927691939578ca850df1a87fcefaf3a4cb810de1183feb7e759f0e5d7816d421caa1e0761dc33a1ffc3dc06830188aa7103b844ff9aad146a15dd5148872016fdd7cf70e0e928403e64248a7dbfd4a2e3ea36dd9d5ae050c3ffdc74105574a708ac91295655e91890a522763d2c3cd010405429d7390164ba39e683a36f8b0096347bff7d37c612fbaf768d00a20a7ce6b1c5edd3319438c57fc0dedfd663093cbe2192fcfa576744ed94f22999ae69aba6aed08fb04299bdc97a4c0b882a343e77efcf9f2d5440a7e1327f8560180651557451ef85da9a0d8ad724a3e73e73dae3a0f823f151a4ba473bc77841b6f7c74161762d692188c077dc2d5002edfda700278dbd3c6ab818c48df6ef7f28265214a1ff71943078c81689167ef1db28e688ba76f9b3d81e278a72ec85e3a275eba9fa4ace3337d1a6bad4fe6ddcd61b4c87ec3f4ea14e6108185d52b1e19a144c2747b9f478ff138799a36ad6c54276c395e5c851d5b08051634708ff2b9aa4c95b603c87fbfb2fe9f1bff2842e159a8ecdb8d4bd619382659939d5f9a25985175667f04f30e02cb26dcdff6aa3bc6a7b7fe2c3219b51f612bae0d2dcbe1461d8d64304aae45c257943d8514769e9b564295f79bc2e0d55f9ed97c728eac2d87a341a805135c861e9fed26fb28ade1b74ff0102409efff0652ecb7aac98f3528bf26ad0a504a39a4cf8bb6f104f22b42ea51e75858574575f4f7a851197e0435e0ae470c337a44ea7680bb1ad4d1adc62d5508bb4e6d495d0e5402d8c670668ad296bd66842591c3b2111daf7440c79bd52f177375eedd2719f0743cb8a43b4ac2870b28c8d6d202c69c0e0e95cdc97b74855294377da4a40201832eac25cf55c956cc5fdb3e9f47db6a2b5009e3a765c9d48749059cded992f195c0e2cbd29482ccdaf28cbd60a803c81ee6e033e1f820b70eaae768db7014821b7de48e7a8c68c5ed31d4a1b54045bcbf4ddb380a87b7a3a348e7a39743d9d14528e99c69e579a2e8b840dfd545b2879213ddde6b99a65c3a2f9acad3d1a9ff20cb9506b65e8369778243860524b272354036c0782916f36a6a0688433fa9d4a3ef865210caca7083f735bd922b5ac7b936c67dcf440f1211407ad8acbb2a7f5e6ae718adbc5eaf8461cca69a8a180e816989d06e18679b0075b4c72c1d5f03a5afd0886caa71246e44163651944767dc32dc33aa2a336f63521b72de2209bda136a63e6feaf41b604db570200801bd3d54b5eee518f8d5b5844d8172d13423f90cfb3cdbe6b994499491e24a66d639bb1dbb8ebc2cd10773e709f4046a666369b8db727321dfd40160f4d8e205513d5e4ad5ad77fbe012cbeee28ef0b2dacc88ce1746b7d301f4b263b19c7491d7bfe0561f164d1f2bbfa5b245d0cd44f1cbfa0ee887c3af60929c2d127c41a6ef95a4ba6c65c1ebbdd6cfdfbeda0d696b9c2c62a5257af0332b720037534cb3cbc4b905a0e51ae2235eab4f291908f3e634af54168dbb419b1dab4e69f2afb21f9a7439a4abad39aaf4932955425020d6b453fcc1f571f7a8a0372a46674e2a170f677e8ee265a4b9d92e355215b2747f8292a9a5b3571dd7f0a813317966fcc07c94d92db5c0ac1e8fce19621e8b8612a6a954b02396d29f939b97af576a5cef492b049613e77a75a321514ac6165f371860dbc9df07db4710099458620be6e03e7c59ceb9af15ce7a10f275ea1cec8f1f2512cf2a3c1e1d0b4c207cd2a67cad056347083b7142a3501b458e7c734cb0f8b4386e9a898d61481ba19b8ec48d275f3fba5d36c5f74e4c2383905e68b7e8ba939d9bbfebc0dcfa25380044241b631b75ab93462d1b2530eb638ece89c98401c2d85b9cb731f57a33b6a7a1a855e8e327089f1d9217efa7d93e65f578ec314b84a1b5224446186ea8fd6f3f54e0ea861529e9a6a34f57d45e2b12f41f4fda027297e2266453f68bbac698578f625ab4972c16cd5a64c6628f1c04492529d06356133cec2cec294ea280d1ab1d915cd5076595c657326d837208c80005c8283043f4bbe1b044ffdd2b667530e8a8680d02f4283222897083fade6a0c3b482c1d5034d6914109cb5a38cee4fe667035bae8183c3f03e8193de6c680b4bd69b192b3a4cf2ce7adb795b844614615b3de8fe183ea5a315c488214c1a26caec0933eac5df88215d91fa8c80ad12038c4b840c31c0aa8879b99f61f666888e3bae8a44f98b0980c372a6dd5de7a0801877beb88dfcdaa217d08b55bded7a0d07cc1af2b5cfd2deea1adc6d6601292ae621fb459c16c6a973b8dbca95a7ba5f1b09954e46ba6922031ca5c23f54dd5cdadbf1ba5fcb83959198f98bd6d4308b4ad60206a5bded95dfc2c2254bba8db5ca56364b9f53db5ed7aad63634e8bb7e96757a66edae90a4c4206641fcaba53b2e1342e86a216028198ee7cb0f8a6dba76aad0778ae01ca311810ecd4c4637da69df5ba9d88d23208bca5fe0a488be829c70ef0dca72a18dd4f2b1ec9c427029f54e637ccb96f2030e08cc73273417358f7c18a7a2213c38ba88f37718a75311fd08246ef9a9d2d1ca264386b95651fe2b320fd56a1d50ca72a46926ec50361388b8f554db091c07ddc1b3fd11fccd1b30740b53541284acdb8c6b35855449f7ebbeea82e6bfa5082dde7e28f801c2846927199fe811fc1b7538bf196f5e0a2a9a6141c77c3df27b7ea0ca4f9915b51f83aeda6dd53fbda98440130ff9885da26eae3dd5a6486bb7c4494e7fcdd80021132b1754020d63264b9306da6fea4f8f054719d1fd9de794af72e8827a66a2d986e814a9166cbddc979dc11d19d289b39df19e416ca009543b289ea907a072e784cc144195721392df94978e66ee98ec9a622de1c89ac789c9d1b22a595baafcc39d1fdf8ae236f0168c3a03c0aec518e7946fc844c14ae9b59cc702b7f0ae43b5cfb15c938a1f9d07b56f39762f52834a2d17b2443bec079388f88b2822a240059e1b2660dac32c038257efff4160c95bd1c9894f81f9d2f18e24e53e2003eb035db8212980de51188aaa624fd3b3027ed29514e11aa6b0d458e4a28937ad8d87265b8e42c90d2ba89b7f264f670aae7c122af451ab8719fcb427eaf18165869df02e3366671465ce9f62e89b8b284c6287cae671806a2603a1e9dc0d47058326f10feba79554ddd431f2bc59adbf59a9d44b741412eb46804592088b9011fbbf1e0b21a74f644ef18f63069d55989e0a59d54e282ab5873d0a2928f94372051aae21f2a2e09b8bf7586c5f7343bbe4cc66fe3e93a8a7e585309f94606ec8a4fea99138858f2aa026091c119811544ea1b8478edc31dd05f55d85a2d54a00f24edc07063c357538f75f6d0e51678a79efa8bba1a2d3fb0bae2a31e254c693291bc43d83f9968c45a825ea79164d37d2e2210753c6444310a5a3aca8479da8ba5a270e1399315aa74a7c0bef35158b438ac504267e744d9fa2b2d0640f2d60b5087d5a85d86addb3e8e052266c38383151e08b01dc38a9ac16a35303a513813413b2cc48a48e9976b4c04bcdc3f7bd2e51e123b3b2a804ef5e9544d38dd608d14a6bc84697e5b5418fadb96714bb5c81fd89076afda50653aec5f9d1594c19162635bef5aac9ffd48bfcd0797629f3c35333bef1eb364823c68f8e41e7be5dc2448533d31f79b0be035bde8c62928ea2509c8c9345ac73f2e4b013917945a5bfa6548bdb92547fbe146b091129a40b5ed01fb5da574d4bd8bf1d924f1a628e9602503a6a515ee46fe7a8fdada580b5c80a01c179f1d9d852447f727f2ea67380505201d734d398b48c6d850c1448146dd85e58275e8288f1e2aa9368e8c518b96883fa15cbe84487a20a876d7363418b16cb1410be5a3b22a74c707a51ea232df922779593277ab5ac5ef5b133a2a07de7e4fff55ddf0d776b252ee059803b358083c04b2109879c5c80e0418b6881af6a9895288a4c89c3fcfeb1c047931ef734e8ef88347dac5c6c481c63a47402e438bdd5205bb369eda724a385e5ff1490b457758a1e13cb7ea5767cd059ae25e5ad16859f990f16a158729d087c699cc824d4e8a77dd4b9dabcc7376bd07e69f772fe53e9bcaef809261b450a028c21d5287d9c49ef15adb0b32ae5084201eecfb792c1b28a3e629e213f5f3d8b7887046fb50ba9d8c8df8d6ce5162e53c7dafa787fccb65b8eb13a85f7b89447d778d3494d823d47da5c382d3ee6d68f20596412f39a87ce2d0c63d36a5b78ce8441d6d1a8bcd2fca6cda4a2f96f31a15b3f5583ca107cabc24395bcacaa204156b606e27899ec06ae41c5efe4a96a7d0c8b85041f32f05d89dbdc46ede60d5b63e61162570ef47107c4f50766b3c998e0f726d76dd981fbfae82e73ab351da8ceb9f0af8d58ba5a0464d713ada2d5554b0c8836144b7304aee8617399bdbffcd8966cabc0311f1cc4c673cf3aa99a4e50ae0ea81e07944fdde3704f1ed8402c1d9d8383596ec40a54b65ab7eac3ea6d79f221b73fa9984d2a365e30b03f1700df992f7f49a45db758eddb0b662218fea29e719c6ddcf40f448340a1294461e5069954db14a22fc37021d8313524e6cfdf135a9867222177bdf425bc13c3e2b235cb6eb47f75a61ad3c01ee4c460b5c3055b4d69b7068882b5de74f047fddb2ed7823aa7ef1e81e743da8fa63893dcaf424306ba73c58c51d0105badc78a7ba258fc8e38b5ec4913fda7ad475aad65d5f076f29f5558594c25176364123c95dd2b076895d7c544d442738b9360ec0e62976b43977eb7035ae622fb2f7c51898e6fc45ecf90072d325d8ee04c6ad753308e40dcda0ee0c383c434a1aa799d260c8a198f4e77c06621b26d324a1d94a66a695ef7c5d9f3896c2e67b9946e34b93dec9fc5d94fe81452d9752da4b825a03819a932f528b9b573af003a709307d7a821dad5bb300259821609dd624d937c46f5b208334b70162a6cdc7dafbed66469c554082d1e599ac883def0c0d9146640c021fc15d520d920238fec7dfca62eec61a0686fb6d25645db22fe28f9ec3bfa344cd4bcfc19790a34c59f5fad2eb293bc6529a4381a6db1c611cf3dbdb6269fc0b212e6ef6b98f71c7c87316a77c0e5c982a679d57a1abbabf3c68c6db07c3711ecf86c6be2dfbd3a3932265a95847e368b6d68b2f25306e87eb98290335f09894d941281d76dbb787645a16d9b819ead4af2a321f756e3890b9aabf15269001934d5f13e4c46e622641cac5951bfade26cf3c1919e46cd13bbf4f286c54b8cd8760cfe09f8641f89105616e6610ad0c76313179552583b4c4ec945852fb61b1e006eefd61c173e7e79f4beff35e94f5a0f52681b165111b98844daa71ef4e1895c5d630935e0cd29d06d13462897c043411f1ee5f84bd995436c00b71e14b7b0e4d7891624e598770f6d081872d74f06ada3e913ab848b2c15a418fd1de1cf11e70c806c492a6748dde02a1c2521c30927ef9c4cb8f87f3b9fa73007d754b9a3b8214d4ccaa662855ecae6bab85b00a3de7a19ea14430e5c7510207a4d82b5452add59ad308041257fe230c25ef03c0e72be83853f76518ab56226c4ff6990031d3ad2282e990443f5fd1a61d2e31ff309c4048d69197a26084fc955ba6621c50ae79411f48f425c95d03fb4ca41f20b388cd2c40fa5b3b732f7c6841cfc6de8b9f25268a5dd8315185a294f9480b69b47aad0c30aa8f6f5e10553f0ccc0a7f8b7417ba728d5f6e0ca7c6cabdd405a8441c7eb1e919f35e629094cead144de376c79a46e33c3b43ff6f2e2cbcc8839e8b40d6436e82206a1b032cd894cbec500064ecad0e62d3bad936078beb4e7bb6584e62d3db9c5c5266c1ca08395e045475084bc9e65eeccb54ebf4d4882fc38bb0a067913c6bd256e1f6d194144ebe24188e32f2488cdce78eecb28c03e9a64ca2d1dda72d3a01315a3584a35b9260591980b945e4db3bfadb54ab3c3d092c23721ca5d1b40d5d59312434804998a52970f9e92f9503a0c32d48cd13241a4091571f59b79620d36e068aa69f614d3ab61f5484a9cd0bfb48ba7717180ea32589e19288e49d9ee73e252ea9498676c3c70c5909b86c2042a621322b29aea416cc81ba5f387b0414b621ad03a071b2f15838dadfe5f63a660438c60236922a10173b838b069fb6cb87efc7b5fb371217d0d45418284b296b90f696e4e0302138d4895c8f8f0c6343a5612828b99ab9672dde0c3114cb5262667a364bd216bc45c5091aab1caf9f6121553185d61a3129552ceb4458c7302c986d9a0ce480a896e87a08e43b4ac56a432c283b80ffd12c729e8573cd2f86111db0429c551b01d65aa15c71c228cd9f0c457b5615781c8864eb477167279efb19570278d1c9547c49b963f4861a02922ac1c9f16ffe3711d8b14ca3041d9d640f939eb1e8a76da23a74278cf6544564d0478ee72ff4914ff5b409060ac522be06c0faadc53254e42175505fb1fe3a73d39ea70596dc899bafa6d105b1a49146d2d6cad0752e4575d1919d008e0e42aa1c964dd504fafed3f1e8688557e3a8fcb64319fd410ff110e0115c6d317049c42143ecbc0fd9282a8de23e3e66941e49ee8c3091e3a08078f1aa9815ba55ff15e738c9d430cf091e4b5ff808df73c140f306a94840040e518702adcc3dd661e8a70037a288240624ed1c4f350f45abe6989c3507e4ed1c36804263f336a907e471cdcaa96e1a5fa9f562cc26e36cf8e722c798a4ac2ac7c7ff22480594546226db280d407a4a2b56be0cfa88c5d51500bb462bea89abe349ab2526200e5decab61cf35f3d8b03a2a5953e741d940eb7579cdb1f38b59a42c8c3dab08b297a762c72693f0e0e01054beffc1e4e0288da45d066cdc44ccddc394c2835b3b9b62b01b21166e97944b42c6f0ac5f717a15b4795d16bcf60f65bbf18a4244eb2612dfc0709f95d63055cac502f9ae8155474134f5be0d3f2031e4169aff4a6baa167b79d4ba1b02f635aa06aa1c8cc21b644c9c4d2dd4718f6d23ce2b36adae3e7ee09e2453de051960bd8e9ba268e8afc4d2fc572229c21ccce03a1711089f6444104fce197789891f757a66a915eeae3966a6137b8121a1722d513a95894b40e684613ec8c1bdddc59866c814450224f80725a3ca0312a52fa6dd10d9a75559c250f95df03f4a345f5935d731a3ba4aa79cba08dd2301f23c421628c3cb7d0a0331e4f729085ca1076927ffca469d03a120310965b03b7e5b84e724e6621782af84b7b39e993b2887a123644d7fb15386000347783948da7131fa9e86d688eacfcf297d56f2dc5914dd5f020f544c99bcbed735e2fd1271a22fbd4c06d1019027234ac6f6ffe6754d4aa50b4765449e4061e8a42d02180a245da5e2f27cd0f0b4416949fdc8535981770a1fc6821404e75caa2c862b76ef53d3d0355f9d237727d4d34e6a0cb7e50274f54ddea1f77709d9aa9e1b743395e819541584a6cac2a2de8e49869f0dcd0fd2aa511d8af13d1861b87f895cd13612a904fe5bab3ec753308608d5d5572e48fec40295252a5c8b0612847415c91999eb59bbd5efd5281b7c663ed7eb6d4699977d77a8f397f4efa38925c6ad4d934342c14d134638776ce0438afd04ec98cc0aadff8a472bd0eff1313f70e1bea064c3532759a03c836119b8017c346a8f58dbe9ff7c542385f0ed72a5c70d9990dae5128f80bf7001854162fa9c9ed20876d9e5d8f683826c35aeda6598cecbfce1b71a179ad8213976dc2cd7eac9ad29aae629a9177873be5c68a1d0d708d3d77434d69af27f7ca34431fbff913b206324c85be055a78aec45f7314027904a436d345c47751707010464161520b25a4dee0c16396606bb949db59ea8aab9e46a331b007b51b9500abc7e64c7871cccb835b11914c4e6b6418e8387c90ddda320202b927b6bea5d64b5531d41fe532d93e2cce4fb541603b6c4e61f1b14ff364a166936894aed439a1ba5acdd699ab42158d3d95c2c13f73077f221f7c8d426c89aa26b54b0ad3d4bc9458aec34c84baf93a8bb89d5d82386baeb5aff678181e405132189c6c3b8bced0d6a847e1e1ae79a471fe5af301a3aa000ce87143d74888c5a25ce362b044d3fd2375eac9377837e0ef58dd4f060abac98a0f601db8b6513fa9fb99eb060accf2943ecbb3a2a86a57b08dc655caccbdcbc6db4d533329469fd008dc0db8c4c6fb3445728f289aa087f5421777a979b5af51e3b1981a18f985c0549a57e70f3c6a648cf586b405a09883605a1e88663552262d6b2d85b0c6923f1a6f0a5666ab24538f61f4351280c9ea95cbd423e2723d8e432961cdfbe61f3727face17cfdee2d2ec092078f15977a4274e26155bca985c70beb5bf2b590f5586c98df9b05f2968e27c147ac3ae4ee71a86b109601f74c63aa70c078155125c188ac0c825d3bac144bc120ee3a610acd7c46207494cdd42bb85396daa6cc5b6c56acdc52b1efb43cc633f8f79ace71c07a0a340d6f20c35996f06803c51fd8ada81bf599930069e8ca3aa934ae60e2336b10417df31867d774311bdfc0acc9159fd0bcba71200d6501a2c2a0c33a38c13d2d933a73d834d3e67f8821e3d3a80a13afd4bc04c06480998b806a34969b004c5d3e7de9eb1c72d3b70c1c3704ce6228bf19f6027e6a3799069d3f586f1758800dc57e47d49c0e432787054cafce4689055fba8ffe5337801c0cd4536e54674a4bb4c36662c653e697b1850fcd714825cef7b372a4fd8b4e3352b32fa2b08326682e7a998ef458749dfb3f91b7687057c1d276684378bb7ce98ed683b5a813601953a56f569a098c2cb35763e09739bdde84fb113fd01c60724c52b5db4c0900e0a5220b9e4c7348fa5528217f13f7c8b876f973f65040f18752811fe4c7eff99f70bb5f89145140fb288fa4c96b144c2f6ee5bbca79e2b3edafb4d5b07e0634587c678c963e00dfc5a13022852f4d5b7781abefb49aa0425afb7c4b83495a7c0cadb83f01b86d11ef86b33c6137f24a1cf85a1088c5c32a11b4cc42bc162db49015d2c7e11564132413c3a9ffe5cf0da661a4f024de2e14497bad9b778148c00d214074de19cd86209692425484b2909491d0f3cf79373122957ae43230941c4481587ba5dcf92061fcee87d94360c6e36f8fb499baa6ff1b66d0e5e9fe57d56d35c8daa268cb8981432c1520b51a171e67aa570e95e1c36a54f94cf5eca088b44ece31d69ac56fe8d114c291e8dc830ab13b9ce6afc620c980f2843cd057ae947bdc73d4d3844f1a19dd417633a3c1bb1f08b9066dc059d5f50868535e84c0c4a53952de14be70c994704b309dfeeed912639bec5779bcfbb052ce27c284f54e4b67520ba2dee7ba3f05449135ab94c014ed40223143315670a5c9bb1e24b87f63952044dc6cfca3cbbc78b960d1d9480a526e00a510f3f9f549c6ff1a6b33861897dbb2ed12bcece90a35e7decff9087f20b22c52702f95ad3a4491b65adf808c419893c513e7e05200a4df8325340dfe2c324c018698d35040a9d3566023f49084719a716ed8331a99af7d7c8f1a2f29dc2428f1536fafdce5bf816cf16d355490763261709b2bdddc99459fd24693441818cd143345421ee145c346be54b8866de1327df0245872f77f282d7bec5c3157e3be21feeae58402b58a16cb19861fa9060d6dfecbedf067eff509011fc932d5718df90f23d6459117f328e8db5e080485c108d416c3e8df3d7fcb015f8600c24ce21b90b59c67b02fb188f38081055809c087efcc9248ea72c223f9411fe41082f03f3da2a3cbf3bd6f72d1ed9e2d5e572065cea6778c87f7acc2d974e4f953cddfa8c9ff9cae9718d88204919ba2006624ec247532b3e8630dc09eda5145249ab027fd3d509816ab2a7b20d3398925f93d6fd12928cbb880c7edd6f4df5ff5a0a2304a21517549b40b44ed01c854df02d9e6df2d77593cc38e97865ce883fbd0d148f43a0be41ea08646f01ea42bc8b63bdc18fb81b8be83376dc4d355de067458a9d0165861048cbb1a1e06aeb5bbce35da0cfa04e753554e1fbbec5cb4b5bbe45798f3513e85bfcb430a87ee4ac21283456b90d1f940bea0a6a86a8281fe3f32ca2789045140ffe62f376f22b0f5dc0b06ff12678c7f9109f31691a9b5ac2da5282145316fc81698427308df32493f15262b93ed454f8d8487b11c1bec55be8b0288dcc8c887de4fa3382d5ec919d449d6db1b1f33219900e1fcc2fe13706a23fc032de27d9310ea73daf24dda6e62d9e0573db147adcd0b520c021d6241c96a44380d9559e5586e7e66043f02a347404eda17c966aebf4a978b0eef58d863ee8996da3aff1dfdbda843ca1abf8d42d8e0b3d6b8eef63e5ee1f7f9549ffb46c53cd8ca17d159f713862dca9168f2d56bcf281fe5ca4a1b212244acc608dfd60fc2a7e934d738f9f4a3cb947bc8b87b0fe2bfe31d410798f4a555983d0bb86b039c9dfd606d7490675bfe2f153445cf8109926537d0d9b6811831650ebfa4fca3bb7cac9db1527999d5ba2f6481dd0842a2776201e18870efe0a478e582addf40b24ff02eeaa9f64881fcc675c21fb20fc585d3bb8ffa7a80f78c18f3af42116645b04df0091cd258a8d40ac6e9868a64124b5a3887ee13bd30ea938da4809c617d24a9b5d950862d60122d1739037a03f636af24cb83b9bb086f521173ae3094c7c136c4af2ef57392f73bc7f951e88f9340b028a80c5545b608cd852073400240e61f4239d5308a5a0c525f006364b9bc67f4178155a812c09847de00402f36dc1840db4e92bd0864f835fc55ff029b007ffc02f7a70ec34c28dd2c69c382ede9fb79614fe8d0b01ff0792b6a54c52eedd64078e050c052b053a9ec0801918fd86f17f14287e5dfcea52fcff1ab89955e960b1e108f9fb09263e15666d18575f89134cf081cadefb755b2d1cdfed2e45e512ca7cfc5b028beb35a4f85b8dae41dc5099bc567c309accc6cf7b8f1aeb46f7b4e84a92c6bae7bd860052992a49dadc6ace77a707a7f55ad40670756a06e3a7f97dd775defbb8347e98a992a4710c6daa2469ac5688d1a02b491ab7c92e18718ed3289b1bdd129316802f29c36867c46cd7659d756e11b3c8a6a6995906606e64ca2ca64676e006e6a8c966458e12bc37ab442c12a7caac0db1051eab348148c5e5a9fc118154c2c008c50e5a8b0c9e0cae7068e869b17a4a3a621b31b2c394f46a339255e1782c88713dddb8fec2b1039c247ad87c74b6b4902262560acb588482794e25c53d685b34c3db910725cfc60520ad2e288d170f1342145a1f521c3199906215379c482805c900bf7eb8a68e1387b50d48e15893051a50289b0a2ae68091c3060586868a6c476712cf9b6e0a202967c8203e893ef9b5004cb8183b80e88076a105872f5b800480e3d11014a67201aac354f56b1aabb3d65ac9dcf1161cb3ca833e00a9f801c2b16259dc62964547cc3e88d91031cbb2117488ddb038aeddc8f8b16c66df02bea662be9499f3a0235e7b0764e0804b9616f18ed3250b560e9ce2fac6f51779864309e3a8adcc0408a4022015504c21f4d09c21a5ecc0bac8c51cfbf460b1beb8c7c661b1d861889db21fd584c536c5d9c7ca041789b167d89b8cfb23e118212d0ce8c398d1d4561a254228af58d3cd66b5c8cb2c2aeeb1c4da11afebca8bd3e5d55bcce37489758313816a6a615828ae7068101fd8b002c98cc5324414063c3472ec6011fa800dd50f6995538cb6e60f0b96b634879ac106c65e6c61a980195ba1c200afccaa9ccc23325c92891c3e1b845117379ea652e241650a1ac4622b47111752a72965758dd5b588d775edfd19af13c469128a7c16ab0e2d6ce400b618de7448d55064a9c011c2c559f694013e5b327888ba518f8a60c29a481499e92897e0d88209aea7b8be71fdc5755fbac3d1b000c71e31aea7b8be71fd65d2395ccb42e5cdd5d855e197976427f07895aa5a187a712922b554d4ba76d1158704c8504181925494d091b3d207cb53477ada005c9ccc5739e79c59e808cde663ceb9372189d6c2a3c3bdf5c50619a09980320396a19de9d0dc5c633ab63c8600aebd08577c26be12df5aa1af376028c67e380c854082c2880045d8e06b82f161f37109a6e870afaf157c4f2a49a4269ba4134f4934193cca080388060b6c4b2fc850245fc87cbe0a3be7e12b5149703dd96225cec569122d436cc1177b34298880b20c4726c8c4609521d9e2c1c60a8ba9ada6a76a6606090312529bd452ce6827464905d416c5664580385d4ad9c41f71ba945211e181eb29ae6f5c7f4be44c82eb21710ad5c48a8d69298dad16c5b8e4d88f99732827f9c3bd9149b178326ad959c1213d3ef07bf27a6b9abd1115a94469d68b1c440ddca02b41097075d58480c2a08268284dd13441f4a5c18bacf820a9c3c4d3127d9a150f007436a5f682680603ce2787928414874b2be0521209501b6c34e82ad181ed49284799852175928a86d821a11eb3192928b3a00a7ca9a4a83292aa51801dcc98116519a26f404c1924dbb8329c31d500414e979243169253d98f88e54d8b2d1d1de1d4080c6a746cf012b6107d7c8e8c644c8db0c20003c301c2942b96bcd2922d3d2380d6387e61088239ab71aa51d2cfe69fc0533d62b470ea11d2d9c0551343f3d0b4443171b4b98806792acc1b4943500483474999c20c4a040300cf86a318693a1d867e6b4fdf01c46954cd336a588c2df0b2ba8a481f30244abe10ca72bbdaca30e2dcc679270330a0a2511950b1a8f1385c4fa15fffff936de30cf62d589546aa785dd7be5dde8338551a93e21c4c6cc1d54e9c053a961402ea4ef36a01b7aee94aa2b5deab05f28455559723580bd82038b7a3103dd7272268fb0444e46947113a2e692cfdffffeb0c57a063f7dcf22d32b419bab9871932c4f0e1c30439c3f1f831ba5ec35df003058f2ee841b324d4b974477d808a4f34401f949c27990e8a0e93b8b2d37c41b36394ba41011a26e1a0f8008d3228c42371f8babc1785e7387361e7c72984d6ec005f0971ea84648120e4cbe9dabc826886f0fd3aebd2a646393af506b355d7ebbda7e3b34563d13ddcd7ceea26c4a9135283ef817bb74930170070ad8739def493f5ebd72158c1a664a347b886d5e4483011136f54f5e3352674b5bc01b299a01bb9b667b87cbfd6dd857b0f06eadfa5e8b5a925e7bcf5b15ff3cc7b4b34b5aed2b148a2ce48ac387736e79cf392c8ca7b4b1c8f3c546452b33ae9d4e1b93fa6e4513447f02a89850547d34e5309842e2458d46af43c779b9255069f3cb5a533b9aedee9de5d8aba0c1369735d6bad993908d0b5555bbb7856ce07512c32b44814d4c192c50ea12af2f4526b0ef2babc378ab892a4225abf7e9d75ceb94371b7bb70efc15852216e527fb8fd7579ef1514c464b9c4f7678f38e79c33fcc37aea9c73cef9f971effa15f16303d73d413d8674eea9b8f3d1ed51b7e6bcc4798e029a5bcaec2960bbe6bc64f9973a72b510cd7bad92ac90db9d00d9062dae6416984ad64a48964e9c3372770d59688a4a2293e6ec3f8d3c157db0cdbabcf7a8d7ad766577941d92ad595bffa0985a6b9f49898fdf507d5a99f5c346ed5d45e4bfaaa2ab95cae4abba3f1446aca80ef9d65aa05fbfce39e79cb3ce39fb2e10b4d75e72c9e70eeca63db1a45b31c393c95c94cc7682b6339468de04901f216334ef4d0e77869dfc73323e51c8fe9aa4b4cdfa532e65b51b95f79e70b25e394a0ecc999f89230918b113520cc80f2eb3bf3445dd14c4a9938817acab5ee8395dab7aadacb909ee56e17d523cbe4bf1777633c5ffff3f32b25ddefbc669324693d7732aebc1dddb8812a33903258c3805f40504d1334c866168712ea13893ae0f0e8edd2860d0d5c40dca17732549f705388031befc7b97a20281b4b9ac4b6622e73d10d0987adb8089a87504f3d481c55a33a52dbec27c440c0185d8c93b155bd1b95a6b19c5cca5623dc68cb5d65abbbce59833176523d408e87a42d9cbbf67fdbabc7746dea564adf5fa7c4de1a3267bb018ebae4bb1eeac8ee79cf358b295d01b83c6bab34f96586bad35dc61f529ac186be24f6b8d22c3b992a41d8639f65effd8d24d602beca30053f0a1780533cbf7de9a6775bb5be77276eaddc536ac1fee9c9a4688a074315518ec4707eb045a8c30f6c9cb4189dc3442058d2b2ae2b00071ea64b5b6dbd1bb2b1cef6e736f1f7947fad9b065f97ed1db0d9c392afec2fd1de9654b2d0990373bf2df1f725bf3acb7ce35036eb40fab07eca3005380d70a2550da6a2dd95744babcd1868f26028dc4aee06a27c7fa600abeb2a009d78d192caa191a162ad088196d4702033732a2a0397668a0750584b0be707f47fa593247b70abf3e9882cfacc91eb1ef4ae6817be1fe8ef4b3e7fa4e684ef1ffffffc31a865fb8ac99b412d35139470e28c1f51207c0be0b6a044b4cd8388d02a2c5164a2858f29d8eef52d4369036d7b3d6f17d8399dbffffdff2346de79cba9bedc9dfd822fecebe032827fd623bd67d5ddecb56d4ab8b76ed2edc7bf00de34a92660e7fb49115c37bc924eb5b2bb86b32feef5be7aa0b6873c771ce7934b892a4718e795f772999f7dde3dd42e71b78e95959b1a343130b32feffffff7f1b4777f7e730ae4dd9802b499ac2b7841215c6f5748c98151882ef8e1e074d08cf1d5ecbf141188b08d4c1964c08901715140303f2321491f174a33f06369764f6053b96403ec078b048b9449ddd05399e1f49192e353a17a047db4c4e65697716d36a0c5115a04e0c26be60dc121aa984714b103913079794586215a710f182b7a3d026767126c55882f1cad02d46c7da053aded0629ef9021c505782d576b7fb9ab8effbbaafebbe7a02a18877b71092117629b9e55b687cd0d99de37c85c5cdb38321e64a9242d81cda4c6861f0e5b19bc78af3683d70b5aef1207311de5b735c4952073b27e3c50b99299b59e3e564981e3c83f05e228c4c14cbc432915d4a96c15bc15c1926079cf3cd6ee38a51c68863fc311a193d18934274ce5a8628c24706b10c65209c6baef9bfcc0ccf63b37bc34fbcc128bb17b29c2d3e4c41514445c26c4cdb551aae4274c84008aaf4b563d820f0bc23aa24a95171ffd67ac770c0b38e08462612cb44651eef8a41072d1699126e2c6947156c8f9956a94e28adf4500d477c48cb38ffffcf735ac7b0d86d9d73afcb7b8d9a2b49bad3464ef177dd54fcff2c8a1544ad63a4daf867a8738898f3be3bef2fe79cf3a2944a923277d375becf0e55493e2e467d26ba9727c40c6d76df006f8237c376054ba9c848ad2aeb0687271016ae14061972846d35a1727cd88aa10979de8bf3c481e2445dfebe896876030d8188db45b650ba3237f3cc7b7d923e523e4cf7df0e2239feffdf24c621db0ca5e3998bedcc5377b35be7c975a02eb2cd59679da1feb5dedaad1aca72ac612d7fdc187140fd8428537ad96a94264afaaac171c22b0a4588ea0e9f8656432d1facedd3e2f5f3776271bc372e1a72e86939d75cf3a0a3250f483453694a6f740115ffbf062ebcbc7500832295f8bd4954712bc7b91ee1b6c5b48659e2f18e9185075934021a9636c2d8f6c0f81f05038a6e6dce9f0f38ba4c3a2c82155bef741fbb14554d87d65a4be56e726dce681fb91bcc9dda97db7617ee3dd80653e7b6e2b914049e6e76db28e694ecbf1a870af651ff905826586a3610c164d3f920a94f3b67031bc7b0201023569fda4bff0ec36c49be0105daedafcb7b6f0437d4561181efd7b9bb70efc1d1d76e2a203821359c4058decb06d418fea56d83da6d64bb65cd5255d30749859650ce257ebd61cc3e5d39ab215ed1abae628a952aac4fba6930809209e80354b3e7ea46501104d5e5bd51277b9353b2ff35703e34c7ad41795b52ce4b6c1ec884c8194738a24f9d8c9e3955e04556d1185b880e42fc2677ac31642f582bae297ec05e78a2a8d2be8d8583a495cf56d40b975188c3b6053d38e17b1f10637f0c15049eb7abdb3a5766a8dbcc453860dfdddf912e34e60df4f2bdbe32d1bdb9047853788a79c1c9ea9649ae24ef5aa1a7c2ace5bcb89eb0d9a3d0837bb91b30c58fed7c754e1c8cfecd202f73609851893586282f52cb37311418628968feda3bb79fd5aa8a73ee75b897ec40cc9524e56c526bb9f7b7b9fd0145d520979c73ceeecb73596510f07141badefb0b4ffcf0c20a35b5b1650dca3e42f5c8eee0d8fd2baeca9da88cfb130abaef2fe898fc0a6e21be5b64cef93632e65aa7aa0bbafdaa5cde9affebf25e0d43a9dc9288ee2edc7bb05173af3a1bb3db5f97f76af81f19b6bb70efc1523ac925a7af3e139360dea5e48e6423446fb57338c3b3cd1a5ab05c7f3dc01545570d2b5627242c900c4b2b841a77a7d3ba20a409769bcbc7a5dc2e85b779bb414420996fb7c83f679d755eb9e6abd641361ff4e4a98ead79d6e966371171b7500ff775796ff0dbe7ffef74d9eec2bd071325b5dbffff5bf156942168c953114bc8ff931051bb0bf71e2cd4648d01abd62e4a4470e1de83939c87ebec1a3dc8fcc3fd9915417efd3ff270ad5dfc043dce8aae0b9b56eff6f92e39fcd8a5e4956b17c156d7d94de3e99174f139de5b16dc8d8d11ad6bbb9646528781f0fe94cad5ec27c1144d910d0551b20c2ac3a13910587cf1641945718053d1acb9d65ced1e4bb64c179d217eaab46a6b9e3fddec5e5a4952bee6a7e7598f39377365cdff233c7277e1de83cfa4feff75ce00b235cf2cd993ebf8ff3f63c6af3ce3faff7ffeff3b33abcfc4f7e49c66ff36487240a88332876c05970f1a1a9a5a04ad9c35172c9c50a8b9b56837c9a5a2cb5be3dc1f0d225f0e6d0091148303d09306ac129a0200ea8a1963072a359a19ae64f3c62e7d42ffffdfa4c3bf3162049e2d8e9998cf3926ca71a8c4e89fccd20e92c9c1777b6161881a6dfd099b794c65b2bf9861d3c58579ba6feecdfd99181dcbf9cc31a75be5cc8596e795f72ead2469deffffffff603cc9b58e72d51d1273feffffffcf3c73ce396b96c3d1fc4cfdffffff3fd9ca79d7bf52e8dcfd689afffff0488e2eabeb8307bfdd7b5389ece052bb95449edd45ce82d87cbfce19facf67ec1cb0396be099dd41e7abf1357a43bfacf82c9f1ccb7b59a03afffefd59e7bd7dc23867dd3349969824b32ee85afeaa2d529bdda5ec96f3287fed42e47002e467070a30a2242624f243eb42a7422cc7456c46058c30186d433b89a5967f2eceaf7061055b51430c960d826fee8b0c2f058d8916392f33323869f0d13716ea2b76213f9eef2d04f2d603ef6db2fcf9f3ff2ea38d3b111a5bfefcb9058c2244b4d5541569cd087d7ce8a9cc951143446e40cd34109c73ceb9d09973d790c753d73d9169e69cf316d2c8f94cef745cebdce49c73ce5a6bad13cde596f8d2669df75eeaa8b8aacb7b8dba6813e7aecb5d1354ba82593b3940180fe57babb97cebc7b97be7f95aaf6d5be836a312e79138f70de57b2f739e39be5feb48ad24691b902f891772cef9f7ef6fdbbfdc81e63c018dbdb71bec11ee727e7e046368741ed19b5c946ce6c4e6f815735243dc0a9e0ca59cdcbe82cea71ba00b881c1aa20b900dce928b4c4d4eb105470d8d544b19cdcdb105c6d03da181ba6f128c8408d27daeb7845d74c67befcedb9b657f46ac6eb33b7cbbe09c7360eebfcdcab14dfd945b8ba4f2015e2041bd8c60cf2426e7caba1a4392592ba1e6a5c5c4f3d65c7d777f47fa51e70f3b8efb1171b658818a75ccca172605bd9e7288437edff75754dc1e20e252a1538524432b3a8bff95456af15710ff15026c98ac889e30188a74ee413c177aa763634069addd13aedcaa6b9f7330364613df3ce56dde4933da6ecde594336f4407dcbeddf7dee9b88833ab6d73af63778c626ec44de6edd309a2465792a610ae5530e77f88edb84afcf77c22f6dd83ebc83d923bdd7e7349bce5bf4f62ec7697b2c5a06c003acc25f43a9fd083c764c670c67ec68cde310f7d2c09ce14b4c9d1576272f22cee9efbeba5d328d6fad52dd831f774f4e0302fb8a0c95ac630c65a24d6563ae709b66308ca68e3a77d262561c930a930e64918dbb5d64baeac58eba389eff831e164acb9268988b51a6bad27f83c269c8819df91106fdfb914216e360ca9368586fcecf62a5349d2b513afb737c50cf1cdd905f4c4451418dcfdcd263bff460b7bf2759c313ce91a76bd40b75a4e5e2c2d9956314e9cecfc714788766eaeebf2a62ab7d559e59cbb278827278a3956f82d899027ab659387ddca890919d5fddf0e807d25264e1aa495b45faeeb02600614f17d792e0c70021a08c3083378821e049848a8b46c5d298b044005004319000000001c88a2340cd4566e0e14000625e850749c6478582a8b83227120200a056110c4510cc3310843510843635c3a691d01d066223f6143ac0d72054b8c38861affea6ced44ad7f6241e66d860cd43727ed5436496409505c03388c554ec7b86dbcca4a47ef5a61f8d6bae12dd96394839ad15bc8da254239769cdea88132c6a357f47583bb4195c2a8015160215b8b8fb3fa2c18db7227058a898f176d0241f9ac051c746337aa9c86edccf4ab99e1d185ca5e403d6870228b311ab9e9adbc07c0e8443c3b337942e3788dad087940d68256a3fc6ff73085867578506b33d51eab23607dfbb05d7442937c3d46f6ed96e0810d918294b794bb5dc3fd22663b828646ff40bcd1768a04263342793c0dea6dad08d9d61979dbc2fdbe32cb7b15a9eaa93fd9f1326a00e3a22d9fa875775f9ea013bcd1ebbadfdf7303e2f26b4798ad14c8dd6695659211e5440126cc2a7426f48d7382fff7ab4270650542fa408afba40ef42624036af43afcac84483cb45ee7bc734555309aae7bac5d2de3010679d36db7388f538cd439e81c35b495da3142f99ce884df4f7c90729367a3161c1a67d8e4255025e58b0d45e39423c32ce2bfb444d6768eb10db3bf59015dd2f29cb350583219357f37217498b9eefed726664b426a8a35de64cd2971e39a4d659171aa49c973aacb921fa79096228e7e7c74357b05c339717f68f90d6075cc943db8b28d23123c8fde08cd5d7658cbda88f03edd0286cb0939fd3d0696cfc1d2f2e4779001cfec39dbadad3a5e9647851e0503c124aa1ce695b02ca490f86232f8780883b88d50c2db25eafebf7eb2f3db742e25f148cacc8e054c2fb4b3c980c0ad5199f81cff1d32277341b20ebb80ec5fc51449a5c9c49423fe8c267e2433a3c5cc8f68560f6729f645541c1a2a8ba4855b31e83be0e6432ff5c3b21e720e3b55497e750567bd99c7354253e1ad6f80e987aa62e65fa7bc01f93262b16e8e3a80cd2f78a3e5af301b5321e8e4c618de9c63c64deed08a50c3d6dc931573b3d318e37ccc80fdb01c6939c3998dd58ad6360f63f8c374a672d086e1d139e6bd9e6828885f796651f9d8828e5817d04d75e9c1583ae69e78b18830aa412b146f5df3a7c68120ee25b4a38b3b81d20e653cc539d01a8887390e2ea21a34ba3fb27c8c47097ae77e74b0f11eb9951081599fff0e61dbe2d1f6d2f2e1b6c89a56012b312c16a8594add2f942c3f568b8ee96530128a55d7a6d1c4d16674c2a1a21175d234e23b3ae4c29685f0de0933172111329711b49de48518bea31ed7860bdffd288da9b96b9a09da9d58b1d4a803d9da3502341ada287bb3ec9ff46ed033242353127077880de464c72d0e99bb58667a5b63bd44ede51d88a73a167dee15821459b0513a1c077831d7a53ab00e7f318dcd7208cc25568285029809feea95c513746f35e01e083dbf0350a81af038c6dcc515f2186c96c07d414d3b5fad4feead4c94b69c5284110867bd22340649b3c72ccc0bfee28f43514e1ae298a7247ccb7632da0ba4bafce1f4960b82e88a1f78c929129986b2bb8cffaf0c5622b1e023a530436c2b3ea970b0cc5d86e617aa391e3b729a1249563c94c404f95ae66e985076b0018e81c1ea91eddb5b4136208e7925b9a22c142ae36d136df224476e60ddb679d1a668f95c73773a4749e19ee7c3ecc4d50b7d6e1d723ee91f4039395d10349834bc09f97126275c99b8c5aa3163d6a38343ab7a62ea6c39314adb40c22ab500d02f16e8629292220f6448ac3b98e399567c62cf9edcfccdd95317838902b76460b1da7ec62e29a902c7335772801f64381a3ea2c751bee5da09f1627b06f52b25831be0c73e3663c875d424c1370642a1f8d6c0fe718487678931ce4947a82d36b789c76db5ccd07d336ff66b0c8dd1d8c66b73678d33b85f3f8182776ab199b98d9042c25798dab7680769920dc5406077f8775d75823bfd07627ff80e318212fe44dbbda55508e7c98ba62b93aa90264f16a3be7812b48bb9680682e943a7863f2cecafc8914a729251b95fba4b7d714488896521143bd7e800ebd4256eae25569ed5c0f09d26848a0d76594dadc6ede43d3bd74c3dc45c5d56278467b357024594498e939784d4d54ae7996d3d5b41b090e7b66a34485e08bb4ea9edfce6da9db2b0d0383d6f5afa3e46026b71423211b1723135a884b9c392081361d7e9c60c154d07cb0274cdc0d435ac0f18420e65907cf466269b5077c96341646c903d4a5449a205dfc852d09c4d786c14833c1e0f103d34e30de9dcbc39fe48d9b0fb7453f72cf8c00d2072a145ac2f56196368187244ee2e55ec24594ff88da48a42e2d67bf4bac02b06fbb5034422a6f677695009c866e315df705c7aa251b7b3126bacfa168992179f8e696321bb597215eed41bd580143ac173183baf83abd681b42b96415264e691f378cdaafb4f8b763e43d96e793899d8ae163ae3ac5b53d1d6d96b5ca1203c86a33900a8c8fd0f847d3a5a458f8aaca7bd3c71876a5292a277aa6686e898229e54d43828df932b42e36391a1391b47eeb4c717035501ea33d1f6f7812fad10d5ea4651e7a6e46268258c61419beb3c3e321162a8b2214bb3e2643c3e6b1f5241c1d5b50687477c74952832a7982320f5982dd076eea6650a70f4fcf17ef1b8fcd4b1c48c5daedb0008ca936c90869ca810aa6205288a50f6c37b1a119d318ade905075db2bc81c6ca723f0f9b8a2d391eb1a4a2c54382faf27813cee0e6c708c8169e4bf5cab5e5eeb8e848d579f9b5e3eb015c10a4a988037442435725baeff1ab0f1ef20e070370c51e5b36ada146cd04623866b48c686c8b5e3ed97338685bbc6090605268c1175c766fe65243643b5d6171d4910f91a7114f453cedb990fa5dd22fea1d3e77ceba766431e47572467dfe616e279da122a8039fec24cd9f241e95fa56ced469a420c3174308e66ef248d4366072b8a621970e6c5f34c9d9409c5561c5eab0107b502162b69959000f1b630fdf025597d4b233047bc1ed5cdf2a39c413bdb46447562e6937195cd62941b82a4872b8a34f84e5dcf5b2b9aab2dc81cc4751f7620e9701d51dc8e89ec418e74e274269c22e54d6450993f16dfd9b663506f4d8462fec932ef55453915132b6cfe909b044a0fbbedc085f095953e9b1eceb5573aa82ef5cf2b5c931b0925ed450922b5456e8428161df79e05a8dcfc1e62c8b027686bb826e159a30f296688324102aa369de4661123baf8f24ef51a275c07a3116e96ee8458c09f50b7a84034c5f764d623b25374de595c1d5fc2ebc751c1ce2bade73416aab12ddcf20f490e302fbb9136f56516ee755cf91c06d56367d54c18b988ec23b305c2db5f9e8b99e4ba4284da7f2238a83092a040cd3ca87bb8167601656953e5ba1db4bd06a07d7c8f7e42a5ca5c0dcf62dc8d0c0bfcc83f6220e8afadccb7adae86bc620365f59da7b30a95757458a1b057cd0b6af5accf1e298968d9524b353a3f2bfcedee2e1daf468b3932acbc992db0b5265856e7d80cc605cbe8abbc24e3b50ed976a93dd98312779ae6958e4f86d302dee0d194def8787600fc483928e462a74eba28868b866c1cb3a3803d69b980b63116f68a1a458d9b9bf8e11508bf8d5e52814f67ab4e001240b377a69175f277b5e64cdae543bc126eaa3482286cc3258b1906dd107bc39c2f678804f4ddfc1684433a6c3813fcf162024e2fa8d9b6d3cc46a018fc21f720ccc1014dc5735bc836a2406a0833c917e46027c0c8cf72c9da1caf9b721f16dc5d409f43b7d982c2573870fea5c387189fde2086b4373a9046612e81a19b3206f8e5eebcdbe742e058e5b8102ea994c45dd4aad03f43f81f82e8ff5cc79698f5c5b449cc02018743f6c51689a89d7b060524a163c342ac831e18af45616cc8ec7786def507c037fd657dce71142397e2797d7e2498e4eb835feae43edbe47efe299135f78838c8dcc9e9c12e50d81df1a8acf8b82490abe049a681945137c9dafa3dfc771ed262f8deddf40f3c53b1287d8355efadab03efd9e040db320b2f84804338551c7cb7f35e10c124845b8451ab3cbc53fbee1f09117eefc1112e791e6b578bc827e0588aff910d6ae1c3d44279772230a2848cdc04ec296cca563e886846337393c5b940a9210daa8f98a8d97f4322365d780642884488a22052a01940de3f10a754d68cd3210589ec22dc32a7f410e7fb468f485fd4a01f8601e4ac1dd30f1694c2da649da2ac75bb0bfae2bd22dc470cc38184627bd425fb29edb20c0b1f7ffdb78598ff3d0578330d309ad46db9ea2e1febbe00a44d7e7593c98adf572906395c31c54a1cfd4619d9f81dc3badc71087bfe4f2b3520eca960118cf062672500fd44b80ed990f9d706ab99939c8ce630173ca930ce07a83b5b32fbb7d2cd1187b73cc45403406e295723f1de6666eb73b74b9fc4cec7c060a61c12d8f8fbe4e6d7bfb92f26a90d5231eed8829b0db142bf2984a58d1038a71c1c8ea27ac319c50a14905cd1f75421d20ec3702c813de22aa77f8bc3347af437c73a39cb7088236b46d0e61c82dae8322744dcbb0fe8315e17531f09d1de2593d99599dbd226d6751a1c9fd7a47d214b1c583cde6093359b1402a238abeecf613d8bc8020269fdfa10583720a3572599c9cd9407acfc128549c1c61c88a322447de69caf24351c3828432de6a3d2230ec6234fe3b53c53047a5f28ac325c7cca6b6b0a04826d7e1bcca8738da9c22bd150fba6fafe2c7407404e7d32c507811609cf26f332d207958d348637cb775b0f1a4fa90013e65bb0a7c51a293860639f7a34b6c198cbc0f075b0b672c39feaf85a45a2a9e5cb48f3da619de124d38fd2c0267b171a9587311b71893bfe4e11f9dac5bbeee73036c8cd3f5b12baef22cc99a994b2176c26db00be0c94aad47243fb67c6556dce362d4c6ddbca1ba03fd577b4ad50f569e0a09a3ea8454783ecae590ecb3a560bceb68d62b4dee41a1b345792ef93128fcde44d3e33ea4d74b1fc5101363a427ad33537689e1ca7d46d86b4bb89e772b02b545982babdaa10a9c33f57de9b4bbf4784a14e0e7baafb34cbfcf2b926e6ddac492c04ac9e2a56c9629f9dfdba3f495d676503f1985aec8ca5b577109688187e439c19856e85bbc40bf31dc3c68a9cafdda496c34a6242180ad31b0f44b38cb4b08e70809e13ac6fc1ddf491fff53d8e5aa955586dc5f4d02baf95eee0a649b220c4c9d8d17f95259ca1d44d988998ba17c9d1b138a49a00b9b5792401209b78a332501dcfd30590428c58c5e104882c2268324f41a9295a0223d71a506fc4f4c051e0435168170b49692c6663fe4535e3993cc0030abc90f745b383925061ffdfdecc1047c3156fe3774d7a2297512d5a4339b630cc6d83e49414a157e2d397dbf8a2f78545f761d955b3c4aec20707d6e01eb61acf3c738ffbd1d0c6d5b343c2c179bfe1b3dfb7c43886db8a1b9f57658dee7c063a05badd0ace4dc49cd6b6673310421ebb88daa16620b0be3ed029c4b8d1abcebc4803e7c839a3ba5018d758217bf4d0a99c5647f0cb4dfb9028cfa009f40bcac9af5af0ff980dcc48d50342dada90fc467be18d7ff6281cb1f7022d626480110af49fbd68e49011d2be8cfd35d309fd9542b0450bd1f5f2fb70a44fb961518e279e0629cd6e45a0ba1b69fb017e3b3cb6bade6a564ec41711db077e677d26848db8c0ec174866ad24045d802b58e0817eaa00682f31abe29fe29b445e62bb8c264efd872d8f102df007796acfbc27a91d1bbf698c0593773e0fcb8543fcaac4d7bce7a7810a040d4fc300210f81b575b102f903500e75843d504d5c72393080240333935d007f5ce31a6cea6d3339c9a869bc98637ffc9991a0b0e4554ac16fe1a1ac1cef3cc4540112b89c137f9f5ecf1bcd1aa93ae9b3ecc1d6ae77285cbea2ea2d66b13dbe5c90a3c72f884788cb28887e2d1790ce5c6885570e31f1c903a5841ba83cc6b445a54768974ac1fcc7ce01197234181b51e0788ac852cb63f10cc1e0d46d9f98f5e9f4cb8822975a1193ac68318ae12cd57658c9f050d334d3b66fdea928d0329ffdc8695223b91b81a68e5af8ef40fd67b1a4320147ebbd4d0be5926b9588661af650556a7a62253acaee2a206a3d76a80a9ce623a0180a4a09349889ff4a4e8f15eb7a0aa5e881110a3762e125a1d2e85eac76a5118ee57ba832c531fc815d1dfcc1327bc7efe2422d618a4ece5001ea02c48562161e5a821b21c985d85357f17b755b883505c61933896ce95a967e6e4b758755e94112f686787fc8a15238f407c6730c4446208518c9290ff50b4b5a3aef6a28402af2a52bdae3cfc7fd2ea3a40104746eb31b30ef488f6193faee5d799639edc48d04ef73c0f21ad9f4fcbcde40ee748d0bea1a76e05ea89e6f7721c91000a840983d1d46a82c3737ccaaa6e9e73ac9a65e45fa9b444cabdccc11779a6f2d80b862a593225c8446bd4965a5e5dd7b7f00a32c1e73bb0f86b3bb89199004d183c7321115f98c3a4d2d3e582340491b57218dc222c5b229799d98a3c9df8cc0d2e6e8764d87cc49ca03ab0a0232346a8a99cbf48645d674c57d7238876ff00aa24f24f99ecc360512c0e4e8278ddaac8b3d5901b520c7a390dfd1815faba006a8520327b45e6f2e43e31bfb1cef6e2c85957a71f59cc3083c4a17ea4d875e3d671b352841c2be7bf72583f8c3118e9dfba8723813a0f0f87a147d68898129f634992f1f737e4777f1ed94e45fd98b76293e227710b8c7c151e8ce6c85c7653029102f66c86c448720cdcfaae42f0b3b3362e2afa61501e376bd216a27ced116024f153b1e43aa686355d1b637f0874c3004df666a316633fd1d7dde8787a3778fb03dbb597763c1d1c0efcd954e5f601806425c520ac7231d49c4f1a7690a895e4e6de3703881b4afe9fae750561d3da10e113e2c668ec17a39d63178c57eeb4e3c57e3263dfd7921a8a344fe4baedc598bd280a9ed207d729d1fcf0c8e54a5c49a4c7b3f870e3be9b4a8f135cbfdf1839e70bda1999f5d95723474a15025941f53e666080c2f86421bc0832f469a63a62804eb61236f778637a5fe2a30646227273bc58c0e0a2b3d1cc54cb189abda8c04f6301e244f0e7c2c38bed3d4824bcf1b5f21762b3ee706502cb89cc3c8f38ed97cd368cbaa1ec6f5f4e5d4595f4b932eee213515b38b8a7ac6fb7d1be76ba889c7dc682ab13d4f30716a26041e1fbc4b89d591264d50270ecb3faa5a71752df5fb7f7150ce0d3252578978de35606c905038818f310add748ba2fa214ac842999189cbb23d09c565e3a7b64e26b6b6b5cb14b26c81262a7e179bfb73c929eb698e3a60e20613c3199b91c630989bb18cda716ae24af2b42dee00a2840d8b3c6ba82ac4872b0c41bf0eb453c7155bfec67e22aed45757c8c1b539d8961f5d80b68c88ec77521656f682c540be100671d5e65cb6ac38cc5960cd51819b2b2a55fee96a01fc0e4033d6e45c21422468f6bb3334a4454f90fa6e26629d9a5072f20b697fba2f3c5c85e6559e65868f08833c5e5ce3da90002ba6048850c2523a507341911b2f670c82cc70069f78e4fc93c29327737c1d3b5d5ec3e710f497d7b5b8e2151fe3b19613d4e945ec3786b36a5586f4d21248520945c1e8530f716f7e7d6f74545b49de32d0168551a278fc0c5d04988107555ad1784b118d60e2fed4f75b4f6ec835608254df25f64c6301f2371baf7cce08c81b9d4cda5873e8b9467c0c399cd6da58c4f841e5394339e374188fe3e4555ced74e12666d1167e7bc0a0dca1ba59988dba004b6c4f50cc5fe5c37cfda575bd0d5afd627e5c7475be0da090322583431b3921fea8eff3c4ad66cbd01536c8b593659c962e4b71254ef1e3b16ebb84f50c319f576542235a13567b6587604d8ae9ba2ddacede5e6e0cb7b36c51cf79f56006098d1a74934064db07d476ab9b468533247c69bbca80782a1dcfe1ffc73f771b3977e546fbc72c5abde923067673966e4ddc9b0e953d8e592a3e7b094b49f8ff7f22483180b9ba2e01599832411445bc6695f4b3ad8d8ba8451ac5aa0a7c735663b96c3849cbcc39372c8df1f0b810afcdb818dcf4f199455a655f2b8b5f17d32493a1042114989b882649c1c4bc896aba188bb3e64c1f5345d61148ec3b655b80e562b5b9534b601cd13794858c845c5875ea7dece57c86b134e389c8a8ebb1594462b218b63b00c6540450c0f828eeb9c458a409bd7c5fcf50ede506cd6bdc3180c05c2cf6a996df504179d69e222b38738239671245c652c1e5470c3873cc1156877b8357f62e0e4006d53bd346b9084d73594cc4f266d08642fac91c8caab2a2066142b1120f38521ca459183de91a003523c9d8539bf63c0090b53b0164cb443f581fa4f2a37c5a16300c03aa70b7a27a79698d57d908fa90fdd502e0956e26d3622278100575f87029c2eeed2a8da925497b9eb90a48a4814761637188b571a55dcd738014a985588b956dbbc6111e17bf8554794e2cf856a7e59a5d5fdcbfc7e972e01c0a26fe839e5b6d7cc4cdf4c72fa40af8ef6c3885d6a82ddfefc3918edd9116b71f1bd907323defbab23aced03e7de994fecb01015c8926ab24f46949bb7e94cc079c2a742d5719f09c586c492819ca8107432bda0f5a5799f4591f8e3514877e0bd74c79c80b9d8272fde7ae94a934487a3141559b07e735385146094c65ae3607fb49b5c463bdd89c906f39414caba68442c47e1b87e8b462f800ce093a8ea2d9d76595fed65c54757a40cb0fe493909787259d2018bcf501669e4209e8f4ec4f6758f9af44f01c58ea880b5a41a165c4152dc9f997bd1c8d83a274e235038abe926e19d4f146c7dd4f69846898bcb433b5a165046c05596e7e150cc4df9983f58798d65f40c6dfb1da954d7f928299d7d5a64dc0d731116ff5b7619b89e7db87886db1a1fc727bd7623588076e7507181b5466f76c26ffa366e72c8f6fa6e11b875ee02c60c35e74b6e1b7d406aa50fd62239e991b64ce3df7f71b539a7ca23b36d2db5d86a437a82d62dd5058359855c49d80c6b4af3a9bbaf9df53eecb890850288842b1974c8eb16ed0ded2f8a86e63c63b0138d8456110167f499273ec33598874781c2b6915d466a0314a77d80cc7ccdf00c2f5469e98d058a02bd7a876c3b08c90b71b51fbe3dcb4cf0b357aaf49bb199b472a93a56fad715596d4ba9cf4932558e77ed4eaea83e926e2fa52c86b092b5854b2f8cd4a7bd8e10fa1522c35a76bf08802c54a2a80835e0d4a0241531ebcfb24e4ee93126eb8dbeefa44c81b986aa4edb2cebb6f96403a4d77f9be4bcc8823988290da657b66ca3068a3334f404ecba4f5572d193fd64a4cf51fa97e2d22efada9ebe41c2306181e43d7343c640ccdaa6bf1ff749b49be4b1fa91ccc5456340b55f1815524b1f811ebdabbb5c29d0635d7c40e5d3cbc5c9c65a25a0d7ebbb15235eba8ca9b2f39574ec6d43289e587ee5530d685d7f8d9dc4161519a410781839f9f722d800efa7ca4f47138868dadb0b02b99a99cb2e0b43cc7711ceb134072658922f09ca08e8d3c2a712c4b303599062a25140516370ebe1c49b1a0c86f6c866183518c5d2b60264a674504120d49545a3a614c7792957fc224aa70896a544c2b88311077a48dbfae86719dd8bc01611f8a59f5beda16d45a930e556bbe9db3f04f5ba3eaf06de03b17aa1dd618fe99fafa76060f7f5866eafabb58694369fca4d04bdf4c0dc0cf063ec8b2743b73d44a4fd147234f8b6fba9d018852b078c48beb90dc6eb919fb36f73b59d7033cfbc49feae9aa499cb6b5deccc9a386451ac15d6515a8abf5b584e38a827db24266c4867c6fa0312dd6aa6db7d2a56f3c0a829396b06b9156afe38111a2ca4a6ecc69658ac0fbaaeef83ac559ed3900a9cee9adc6a2284090317a364116f54cb99162c959286fa728153aa27e1ceab99b931bff34cc4b707552ce034a0b8d5c3139c2c121460ab593a0d6d315dc500b553a1aeaec9350f3690524d26f2ff7a3fd4eb30d440cbdcdc5a7ba74fab6a9edc90293bf5fd07a29869f684db4275528b5841f65dec87a2fcbc27db99e735901c79e11fbb14b4654924ea4d68e5e7a39d28ac6ad8a51e1ac441d1417a1fdbf8d01c49225f48046c052309fdf011febfb042f645941b999c6d913b9f55e3b45da313b0b92ac77cfe24e01a5dc041633bc2329819272ac84b050af330d65aadece8af040c98d8bd89b0651f817b8de432ee084b600d8d9f6f1b0c1ad6616aa010d5b95cb4118a9947f035800cb4e3a8a7ece1323068855e88f67e46f764655849fe06b68c3b72e6083df00375d85d35ee506cf84a2b931a5095a875831878a4eadf6c13860a87186d74484a0884215d223189b0d41dfdd1b294c13f28f4ec7c3112b7652f4d6ea81d97590f0775ec49e82e4831c14744df68484c43c3c7d4236e809bfe65476a0aa40e78431819a316010f6a0ba6486e1b40934a024df4b074dcdd3a9aee58cab185332d1f11ed0722f3151189b91222120c5cf3e205b441c5666009bbaf915c5bfdc6410a300a10f8515886397bd6807d8e9b31988a311d4d1cf093412cb3de5ec2d39d988a01e065963fa1a2251b9f1a35ade6dce4bb0aa76306c140991cc74d57a080e321973e67af4afd5dd4c5e102ae4e9ea3d42ceb031206325e4aadacec5200b688b301d481be5973391b756d2a3ff7ac29bdcfc06d318f1d17385b0410b277ae14fe8de37513d8011722d6d28b005cbf8c837e6ca5660847d34280bc8c05345acb091e42cc9f5e075c734a91b39619e34136de38b0cf3da60e114200439860c451723bafbe0583af29e800b4bb245119dbb2a9261c66de780d41c200f931a5e4747383837cdb62675dfebe0c0417d3fc53c2e37f1240816fe13b635a93be447c935c394ec20b77ed7f8b2836326a1c5c088f1387e7a1720bb7a2169cbb9314f89fb0e6e345441ef7a03555cfd7e23c610856211a1198446ff02453e052e2401515583c7ecbe083ae6fa4d3982981a9b501443b195d575d4a04b3d6b196837518b8aedf892afee5e250f554145f67c376cdc87d780bb9249b2e4942e62a5ca9c862caa3ac4986eafb60091779818a90a91d2d874079c743b39981eabe48803da88b5f12cb0448732474e3d10366bd1b5b629a587a820525a39950aa8b2d49bce9a4dccbaea928c50174d731d46763afe86d7fad46f054bb50450ab41547187f0efcbf367138f0194b657766da47da7a3aaf6b15b8166872d6daa726eac2526b51600f585dce01abf2eb0b0067eadd4b23adb8d8e083c7fa735a4dafe08cbd3a3c3532826324c4bb7dca5d78b9952ae2fcd20fc5190e436c9ac60e2d85572f4b21ea5892902dc09441b6542a4546b90c8897b880df1a27f2b13efb8b91d333e8ba9eb40572c60493bfa21abba381ba76c34fd923c54136f76b68d6b1d90791b83e63736c25f9e43aa87fa02a9447b2bcbc6fd0f6d651daba727e32aae7df9837bb2d33aeea2ee1cd3ef4944d5136a0d5c40e1449ef2664d7890ae80da377895c42dc741713fbd08aa42b1e9ca72f0f719e7ddf138fd82d0e463be0499fc285e1c6b554232b6e47b2694a4b0d805bbc84264e4bfcce62745fcd3b4ece14bfd6b3385896c0cc7532604017040580266bee5f2726eaeee0280d7e49c5db3df14d2cc4974ee067d0238db494094103966f90bde892b76af5b6a754e6c36a69c0ce98205d5e505e406f3621d2cf0984f5d0298df8c858425740cf58803e64b72d0b8b329a01219eb48bfa63246fd087015f81557a5f5d44e52ae5ef7a33a72289490d63b238d54555cbab8aa114520717f33a49b79c7e98191ddbf22a67149f8aeeb0c77c49203651b50d2035ac3f06c20d9e9313e954155c4bc9794aa6662c5b4116fa2e3337c2b6ba2a6744269984077b48123b0caf4c0f1dec359fd70f85de4d997662c2231282aafd9b3d256cd48c4fd941c798e264f5b1dcb33bb1237eaa972732d01236ec8502c96ea95fe41604756d2364e4bd21401b76b0de327c562ba316d951232ac5ffa4414e754b573b06ee382061e296f807339ca11219664d7cb989758429fc04f59e2e25170504d038643d0c444931a2368a3b392b5ce30bb116a6dd1ce187ee1e076d84b0cfcfd6183df99b38afe698bcea6e3b5434a6a763b940018d583185e4d8ae884aed6c58f56220ce5fdfd269701614e64c58db7d5b0ea474ae27e5783213e03b33a1110724228692dc080213858c8d7bff12e47f6c9f43f78a51f8795d65927e4828d3bea94bfa9e85e8bee95e35077a3962f0b0ba41f5a3f98c3af9ff24eea6f3527788ea94a210e0fb2d1ac6a371c9e6183dbc8e8c5fa50ccd3384c40a77eed1cc8382405ce76d2dcfa57d954d5ecf59857ec3b4cd4ffcae96257d39deeb75d9b8ac194cde5c4dac2cc611cd7f11e47f6fc2c915501a60e5a37495e18aa14eff3bb3db92b92c7cb165d3f51c4ed94ff7ef79e9f72462a6e00344840a8109399738f4e3c92ae136dc6efffe477932fd241916be0b42697815375ddcaa7f78ef060eaa2a4932d4898ff57a0a2bfd9c18550b7ecc940eb2c0718f44833b5eefa548ae8c976e3ba3c7d9575d29858f59a1ba0061e0e27093bb8a240972568c9ed4dcaf7cf6e59d066fd53f86024f2d3748f756edb841b60969d7710a5839ffaa1c3b716778c7731466461f03ebb4ef8405c0ebf7500f97f99b0f2a42da850a735af22b7a44bf293bdfd340d32615f31047e749e900cd58f3bef7db879dcaed2105ad40fa3303d3eaa755b1fc1ea802b5e8e634e9b22c26c841b496e780aa6a6878b43977bafb0ee53764e4fd3a46123a1bcf12e9815296194e8f8684052c9ca77422960ad769c7129d6224e860b6cfd9c2aabf4f7e6e2ba33f15e543300b59f1a904de3f59cb1b43e534ed4608125635370cb033d3c1e531be06109e904b40fa2513f5ea69b3205d37105b6c445f643c05804bc8fc852089865c435cb0ad9fcd925d264c7c79e6715c38cccdc5339a94a89e067e4f431423a4b33aaa0cf9ca6286d5d703919579576457f9cc7c58ecc23efd6a7d78c53b205802dab6399a734202e4392f692f9d9eb21ff759f33fb9dd86edfc98931aa27c64f2bdd17f0ebf8a2a84383d1fa3ca33a8f5afb6e2eb2b4727c0e7eb48da688b9fcc4db9c63b01ad2269f5a2a94435566862644c6d17f5eb9fe6050cae8da01ec497ca0b77405271797be8cd41ff8e544a2ede4b255fe9ebc6ed5a6e11387694b965b93e7ce81080d8ca4361c96c8c71a1e15865aabfcba9fc3330a19f613c5de51dc84189d33d02b401561e64b24b5fe96e8fba0c713e1249c1737b5c11dd65c107b8aa93f7f608ecda4affbec423e1d8480a24a5b978b300a93d49fb71a81483c4f462b84cb6099fe3c9011f2720fc798d311ae0f1a589fe773a3c39e29ce8f1fbfa715a80b0b4dd71e5aeb438e0945d2502da79f898f3f7e1a102d28d9eefe9b15bacb969a031dc2e1a911201b734b8581fa45d7dce570411e6bc0302ab4950d1b98566872a679ea7a8f3f7523acdf1318732546327372cce2103a7b1a06194cb5dc6fb25e9ed369b4b401159ce1f7c509aea4ecfaa0684b50a2c0d48e7a58123cd3de6775070a7fccf9e71effe8b9672103afed46b040235ea196026c763d0c19cddd5c6ad93b95026092a2a303fb661a60f9f3538583066a4d4037de3c1c5972512249105429503a868b0057b02532e3db9317d342ec03d5b595f49958eb0045860f1e119b17d57281050d3e42ed10f03f65e6219dc7f9c05b7f6043ba5b68ec21040baea9b6e089130310d12a3ad12dc08b69e87759ace55833570e3cf381305d46b40f3210b528f84da5bf97d7f096321c1c79de65eceab8d66085f2e4455ad67269136a64d6251ea84011b9a3b2b9878cb9f07eb1a479374518e158e6782d88c7de9f03f57e8cac76db94e864b6a27ad6fb90917cc5d86d33c430ec5090c4dad90b343fe08101331a3cd3ebfcdf61e4596b271698e3e62a88807ac0dc31c890ce5310cd1e6d57312b8b14849b44cdea94a532382ea8a62ea64e77ad816e9d0d06d174b811eeffeaff827e397f452042333f08fd26152b23aa6a8b5d66dc955a35bf543c0e2b86b50cbd2e4a2296f86dad50ecbcff83b0841ec178dfa835b28fd5624a73e3ddf9621f05e410fad25d6c32fd75edb7a97fa8bed8591160d8790f40766d1c07d8e753ff0e998a48e9ce768d431efff23ee56c7168f2a04d90ed82fd310ae6ab34ee7ce2922581a2ff74deef97bb2655db2981894958f3d30f79a661e6445956841d77c661c308b42c7f2a7b88ba0ce820576e16dfbeba9a8c062891506439f37b567e23cc30892c75babe22bafe4d01abd515d168d32ff8fd36762351a202cc998f0f9fd9d232a5845ddbb053e480bb292f224e3f5047179960f32889b9c5be05128622e50e88267abb6319017e534efaeba7174eb4069657f3325fec91af4901b5ff332008bff58d53afed94928a32f2f8de499eaa2a77bdb9551c2e0a1c4ee7b0c8cab19355895a35d0c69bddc2dfa2296ac1025225a0c628014e0d273e221ee3ecfa810876a49dc09221ad88b7372eb085712ab3e9a445458279d188135d35b74cac5e9284409bebdc97f1a74bc5adb2e26a74ac78bb4eb215806ef43df3e4e68f09f98a7c9fdbeca23ec6cc3b64d6cfe5048b84a8b5d86d61080782632e198f536da9c54e32eaacaef6f594882093f5975894d958773f383c01ad91e0acecbc4f69ef0e302fe583ee0c86a104ce50e3070d108a9bb7dfba722ab9c1c070bfc2eeb049ed4222bae07ce911dcf303d4bf22a79072092804e07d5c8092a5b49296382c4edf34ad692aa1e2676f913ca95099fa6ee447095d45e393152cbdd3dec2b487a68727336c73a955a04d3a1ffee896e06f9270d35d5c8f14732c111edf224d1a6808bc99265486cb10e48fa99b1799b58837d9f800dcb15472b7bf9110cee1dbe4dd4514ead9582ae01b256a5c2230354d9067e022937cb78639884d15d370e891e35026eb21c2d80e54660a09f03f1a91be80af691902562aeecc961f4669bae64a9ee88d818626ab8c93305162b6dff3da4743a38f7cd5f634f56c10daf5d8d5e198a5dc651c7660b8c2a41987a3048866d2b4283cb34c0ef20b158f2d6a33e77dd232cbdac0d17ef1385e5eec702b08707f9388d75b895210f47cf2e6944914770d75ebee781d7d518f414e691ce54169f6a319866105843aaa925ddb0e238f0d23946ab02309ea5181b7236ee2d8487abaef4241c4557dd3108b77eb18829b452bdef12a38d693ddf072c3ada8030066324985f84cce17edea08a039666a102f15053265167c49c8457e8d7d1104fd41664b306e2335ee81738bd0e644ee1b1be7e64e6ebad7b121fae6f4e08cb19b069e920bf059da7c308923f47014184a0368231c4cd701fdefe2353f8275a44b613b935e4a43d184101bbf4a2122313a233090061e42b125697dfa4da8b86475a5d62787bbf634086e57d3e8a0c391f6cf72bfd32ec65f000ff8b593d776040e6919d027a08f3b88f5add8e43aa813255218839c24dbb47a22825b0b63ee0482f94f241f5ad1f0ca0a32ea85e9c0006ea043a68c8a2eeaa7c9dd7e71db74856407b490488ced3d7ad080cbf34ad6e70e93926061325fc293ba36f963b758211dc31df37bf42a6a1844cecc624e710cb102a43c780acea4750afedc005f1c5778b0e1fae48ddf9afaa44938a209c3420abc1813b13f992a3b3574196aa9d27e5f871cb44808dd4a5bddd27ced1627036910a018a2f0289fca5308cd65bc04d6f39bc9b8547b0f19cb48a774864f4d6ee25a6c44ae98abb07b11ec6bd22740592429b4247c7f051d8923939c0e01346b01aafd7c3a515050b53ad7c6b3aa0633da2ce8345d14759117d9ad55aa958a112b34860b1b8e82165c2305a8d48216a7e6478b0d4228c006005a9c2c4a2851aaffc010769fe49082e6028a68558cc92632c99452e4960186036d03a203513f8f5c3509d5feadf650dff976458c47e9b3461a4bea5e3eedbdf7de7bf70b7809ea5df256d0a16ead887c5ae8feeea7aa28ad1f17beab2907ab0063466c7407c56f1ac642b41a02aa85756b3584532389621ef66ecc5a8a00ab3762369c3c979e6b2a3e614a030cd0c29d41c34b0bb22abc644fa03ba3838a65872c05d6896b2578b56284a6406b1ebb44b7684c995a1aa1fc04460a518d94b34237ec7d7d8f80c7c1b0a01ad5dfd89cb529c30470a8aa993c11a23165822c21334a516ffabf2d2f4fe1dbc037aaa3dd4ce14b65aaf12abd77ef5520a9d0e9bd730e152f51a5b7dad76d54a90a2805dffb38dfe37b6ed8fb1b178058b75433193552a6e59e5279744a2688ac664c048029b057a305854584d532e97ca730d37192dfed2ebbbbb2f7a63381e4aaecb2a17ad32634d59bfe49f958b7521325ea8fba95ded86dc9dcf7de7bef6fdd52cd943547dd52cbf4f2f67408cfc92dddbefd752194c1d13767f7de555925ab7a2b0929fd00c6676dde7bef676c74aa2e294f7e5b1ec5ce78ef7df40a570beb369a049716c3db17550c9a2faf142a9e998c045c60af31c6ac5c58126812916b67404e1dd76d34094a44dd46b16d35c7cc88662dd76d5409857fae40dd46bd5ad41f359207c13c903be753e28083711f9644dfd870cf71facb333de57372c83289acd377233ce539b3ef0b835f8ea11f26c1873314c2df65c6cd24f6e86806ea563aa352e2f1fea7bb102e628d5a00d8db0b00eb6c996f3841609b301ff08800c09690f19077325fef40f69c1fae694ca2dd9e87ab8c0e755090ebb4e6c38e788582f1b881d5e1eabc91f36c7c5c933d1d7c741e5dd9158e3b22b9eb860a076b8d98a5af19ba2c9815aa17933c6712d3a4ee24868fc994d1b376a9d839fdf04eec5aee6cb8d941fba43168f8963649fb4758c8f2fff0f74b7e10cafc2b7994421fb2b0eea383389bf89d79bc2f6dd6bfe7a08fb4f198822567f5181c1c883a963ca843b8c7fc2f7164a1e4fe3d3cc4e1e07b96480816e7c0d99b8f0ec3806030e0d950f63e5be2a3c3fff36f12b824c4933bfcce32712ee1dc242d12f79e8dc39348b1f1a55d3f1cdfc3bdafbcbe8bc8f9277102e6a11ffb8fd95774703071b8adfcf947a1e3411d411249b02dedc319d2267f60be1f3508f3b358cffc8520384321fcc5588844383a0f761f3ac8f42c13e7371c90b48e8f38ac7f57bfef55f6d8eb9041d32aab05978f5b920e097e2a7efda13a1461336d4956726f5f0e51aa1cec76a8db6996a84612b9930c4c47cbad9d159c2e17cd93cdb0a25479e67e68feee2df7de72dc79d75dbdf7de46284712e9cd0c962d8dfcaa8b4b862348e5dfce39e7afefbefbe793e39905cfbd73ce39e79c73def9af5babe74987c12b8821e8455c1fb76e04dcd3dc07694f23b90fd2dd7bff79ddb610c4e0767af8c65e04c96b4f6f1ffb2ef27a7a23791d1ce12ed8540928bacea2683851504569d0323e67595c4b2b5862f4962a57520e82b4407d41c9f4ff7e39fe7154081bef5dc4fce9b978b5534cfb247e216539efb12c0499331ef9b3fc63ab154630a861c8fce9b968e504e1158543fc59feb11e89d5ebf5307f7a2e86857031e601325d22d1fa427a2eeee94c0875a823f8bf146d2aa556495780304212b1f119f8b3fce32c9890b52e62fef45cc4aa2ba27d12acae10b39cf788450532e68c47fe2cff182bc7188624a4e74fcf45bd912fa8610819086c140e317f7a2e569d6278bd1efe2cffb8fa03f262cc0364fef45ccc23d9fa18fe59fe31954b44d617cef45cdcd4a4906a07a002527f7585560cb688ebf6eaea8bf61aee2df2f95bb757592e5c37d8d311bb10b830d72d04e94db7340f4a2d113983cce0ca0c747fc13d06e9d64ec9e28ae336d5b765d2479426c07cb531a92a6d46267cc4844d121441b6672df2886ca1c8162cae6d91c13de28e20e56090fe41ba24487710a44d08d23304e92033480789821ab85eaf640b619e7cebfdbf335d9c8b2f97526f28b79a422bca9adabb6736bc4829e160924e94024d3c4faabdc12ffff8a334f3c868bcbcb02a91e29a4d10f8576d82396ad94a92bd2cbc28b9e8dc70e2d646577bb76cd380a639cdbde0134b5e9357af54091f0a7bd20fece1cf67f7182c721a3917f9f123fdd6fa81909c8c169aaa4eb6fb1b78ff59fef1fbbeef9bd4dcee4ccf45eec4d5dff7cbef0b1f7d4b83ed464c5a0bb69fa598ac89ee467328a7af89cce4f5ef9556d37d6718f63d4683ff9296f5a6bf7128728c22b121cda891c6f88e82162d0e52f052b2854198cbfdbf7b707c843a6fd4e0fd33307f7a2eb6688a53abe922aab2dc687c92f9d373916a2cee2ce73db2a0831373c623cfc0ba194842facff28f9fcc391950c390f9d373718593ee1a85434c31c97579bd1ee64fcf45292a1c0c0f903fcb3f8eb2e671b17ce1fce9b90895168735c361ff59fe719ddd950f4ccfc5fd9494b3f29d7bef83fee82483174944383e59ef9e3f3d1751d49b8eef3adc3fcb29903d635c507c5cc8d89921ba80138461f559c9a47a004db68ff37bef77efbdf708a34e5b09e36cfc755bdd61a991c6922f92b5a5e90bbf291c96aa9d873f0e52ae7d737a604c2e2773bc1a4453efbaadea94a19508df4dd3ecfeddfbe55d8747e8bdf7ded3ded331ddf9e69b1bb9df5ea7e6b3d49ee6de5781eceab7461a4bfa680efb9deade30e7b39ff7de7befbd53c562841289f30f4d3dac91445a68b8795a1960d1c0bdacec0a18d1af2ad43c0a1282d2b93bace50dc54c762567991501c94809a3cde5c8e77b31a528d7b4ac28f4a87d20381dbd106b5a91753737143ed1ee97ca11bb77f78789372ca72849599bad197c25645ba8e0e8548d9223dcafc1904e0e5ad605d20b2995b8f795dd4b6ba16675718b4a9f43e331aedba854458d34c60d853629f879ae37fd6da8c98b0362533bc145a467c28eb20b25aaa84505544bb72ae4d93095d4a2f2bd35619ff21e30434ac20b5a3a9963c1e2ece54c3c45effd5dea5a1126c513c896136685b24233b8217763ac6e0cab7ce931e9dd770e6dece2b5d6b7026b4ebd690dac29ce64224c087e5836e0705ad0d9dca125e3be963a707f5b3094cdb0ea6a512e85ec56303be1f57375aa3eadb810526ed5ddd489284da8b414a984151db17eca193a2818253aa64fd30e48464e8f8d6f8e21075cb7531568933b177693a20ce86d4696953bd7eef9c545f9ad498d89294df1d680b05240c971c99d5004f872d444a7a473a9f9b1425bbeb87ac68da0242a438b6922597df7efffa2a0c6769415285da113041dc255f1d530a9a0966029bb9fd81f522e19ac3f38bfbaa7e15b8da732a63821a9c02f19455f5a2148b73f48cfcf3cefbd0d3766cdb040b2302967905bec0663df98ec84a4b04bb7c5fb5bc290c9a1a6d80b2a8bdbac64983396564ec28e825c3cd96003a2428be6ba5ea236061062caca18b9c911a5080a72f94c17e7e213ef27dcfddb35e90e5453dfc90a0c210fb7c6514cecae0ee739b3e4f2f7c42e2b8529daa26209353dd8c85e549548ca5d9182755b6daad5c3baad36b142295025d692bac26e70adb96b24ac153d6ffed4e0a466f9cb74d505a8ea02b4adad4dcddb427b5cf8447dad3d6b84e0baa596b514f9385ff80ffee350b7564126fe7c5270d1027954705d3532ec9d8a1a4451b528d755e3b861a3c9d2a1c82cfd1c1dcf39a76362119207fd8b4efce1bcbe0624c03c264f9ad5cadf5be275d382417a7d7c2b4fd8a6d7bffef56e918b94c82eabfbecb5e674cc3997e31f076d2bcea66448bd88ba8262f1d4e464d4748209e7863999a53915157f4a78496f4868476146d6a22a51d5d0530a241441423a41723340722b27029d793f713e6a3d623c5d3b593ad09c281c2513286e786c9a35712dcd38149abd9939269b0c590c1666eb45ea32d5b2c432b4e2b3b451817b51c2254bf425eb526c0451cc82275f812e00adfe9e7e4cd9a23e279f89bdb718bd37659edf8d3b3cb73b1a76607530e8a87354724e714770406f396e6ecc36b7a50dc01a37d8e0d6d26035b1b42bda168de9d9d3aca9ec882c686c47ac39a3cd25ac2d09969571f7f5e6958615bb5ebbb6624cad4f184d2f8e5c0471ed6c35b56cb864d9486265ab77d4b7ab342bb1e955ba15ad31fd2df49941130647170459b0534193821a2e13d4484a908de00e82b707d21c106be0cac0d602d392a7024d091c21103462e780a608361712b6e4316bc05d016f04a419c506b88e6c894ce9674853882301828a3b013441acb900b0969cb31fee3cbc81a411c53a5c3fb63ca6f2b3a389e3884350bc336c7ea1da0baca6fc80af9ea7eb6dfc38971c47a0edf948cf4531d9755db7e438c28223f6fdaf2b22bb34f2c7ae04aeebba9d3b90c655bb34775dd7a51d705d07b8f2cb5dba4bba0b5f1e83058bf76f676ae945dcc922f39bda7b99f7de63c8bc2ffc5bee3bf17b3fcf2927961ecae1ba95c650a99132fd0c4a6da12eb7eb8617bebf1cfff88596e68a579dd8d527ea665d4240a4d45c5e955a56213dd373719bfc514d7362d0a69c512b88ad82020d0da5732d4ca668180222633423c50b4688ab6a2b1388cac114594185e06e40f1ceb55191f6d2f25080aea2270428716622eb84d7de5e5d5ed4068e0e61bd640afd6fef239d3160e7a4350be839634b025aad0f63dd72ceb91cd51c40768a19316a11f179a16d58425a42f8285504d08b29c2b904005603e2aa0940cfd4cb4ccb47bae728e6834ccf32b16787e981eebd37d59c735a7621d83408ef9cf3b78873ce8f34fd875e887d2427a7430e0bf3231be331f722afb5748cb170506f38dc6013e3fcd00c719832c2ac0d2c07f34d98c9bc26be587c8f8a4de779e1266872b67cd387d38ff24d1ccc7cb3b6d2f986d2b4cf952e397aa980a694eeb03971cdeded64dd7be788e253166155c1314d7ad58956fbbaadeac4b9fce572b5a7639ea53c162f3462f0c49975ec14eb52dd32f029cd07ad811ebb2c510f96130c216bc74629e14f455a8d40ab568b8ee8a63fdc6938fc7f37fc5fb92bdb56970dd573e8e76b9fd47befb3a9128fca0a67dabd7339dcb40d4c15613956415a46494e6701811b00d549058fd9a8c48c9e886606640700631904008060204681204aa212c70d1400071fac605478446c5050481209c4c58030100a8481214118088401208662488eee389239dd00be5b346fbf2664dad4959b426ef3d36e12a3e69c69d34a362dfd3143123335e526a9d3f4bc9b88b83937d56c944d5bbf09326d76a52629a7f9b59ba9f0666e02666b11e6d26f82459a9bb949c86dfaae266adc9495361bcbe6e56b82459bba5353ca69fa5a4d224ce6bc884cdba279fb376191a6aedc2c749b9e76131537e54d9b8ca279f9374392a6aed424ec96f9b5cf44859a99c8662bd1dcec6b8653da6cca4d524ef3733551a1a65cda642d376d5f336452e66e0a9394d3f4bd9a54a829136d1a89e6a5bf09993477e7a694d3f4b49b89a829136db2ca336dbf32c125cdcda959e8067d46856393e95b4d46d9b4fc9b604973776e16759b9e7613316ae6a24d56a2b9f5c00c8b9ed99d9a859dcdafd544859a336993956c5afe26c8b4a9999a25bbcddfdd44849b3293a6916c5afa66c22264eeca4d6957f3f76e52a1a65c9204135889d6a06f4141df525b832e837196a3a406f5982b9601e8a9261ebc295a34b9cce6e869c6cb9a3eda4c230ecc6fbba92535c9394dafab89869ab3d266936cda794d7069b34d6e12719b2fab990637f392665b01e6ce3f131cd2dc4a9b649ca6df6a22c54d79b4d95436af7e1314d2d4353765dca697dd2441cd5968d3549a79f791098736f564cd32b7e96735d1505356d26413cdbbbf198e6eea494da24ef3673591e0600ed0c36a3ac1deccb7792616d4245b347d46d3885fc103713f5e56280e98b62bc29c532722cc57e313a3d4b393ba20569acd8a5b71d8cb6e394e597778334da6f7f1b377d02c7a2a0c8bf4f4e3728807a9fb73a8edeb0986fba42278739d41d03bb8e2a7c9bc8afa82599048162a663e9a18b11d14cf75cdb8c92a8cb207abdfac596081af5bce65561c489372aa9dbae688b650a82c2a07aef53e3f6eeebacd5ae1582d8fe200bea9a949cbfde1874ed55f3f174b19c532d3d276f10568d1c7dc9fe44f6ffbcb8f2654db1347e40bd880673ee4b531443d4483d9bc072e6f276acb9eab50ce524e9b1f2d09e75ba4a736026f329ec2e85007e0faf8ffd6fb1ba995e0b4727e788ac285599ef767a62626ab47471eac597ae632aded3752f92782ed7a2a80d74bc2299389500b58d550975faa36190b78e492af8f1d9890b460a0a4cf862658be95b123724c8a2c43b9a93b7cf67d7e8131314101d12c4ed552eb3dbe856a120958faaeeb8913e7e2ddfda1f20a195f0186cb09d554fafc0a2c77556af9dfc96358b049513efec322f222bbe05b90bdbe5c2038369babf365a2354f659a889607fd55b8500cb129b7c0844587af94d239a08e8073f4c86ccbe536c5842887532ed943e35a990b2097238c5da385f0ebb228b1d7a042d472ad4bea0597342cae2a20645229a99651667b80a07bd70f6d8b1879eed078e04ab1bb2c708b39901d4e9beb62be66f1bb2f946792cdedb518f86343403f4091a66ba3c7e90119177f8d639f33afd7acf941e89501f075c9ecbad963afdcbfc0b58649933b7c005c0277f67e2c7ca0fc1bee8957270801fec39706669a38755ef8e12b31decda15ae4310fa4a1a078f5bd8070fb4eba2c9974ee34aa410723ce6dde7845290a5038de09d547961ee51c10eb3adf6cc02dfb1ebf3c4cc7568bbbafa18bbe30edf19bd055b9b2a259c1b5e3dbc1bbafd941df104d6cf7b8e8eef1e3d56bcf7d6f75cc0dad4060ee87491698010f320276834be7923b5af621e463779d743d6f1fa2be281e4227ab3b427290514a61546e996b642a69e6d00929a64b6dafdb31d31047df71f99ad441028cb19299e4e105b8557d23c005b5bc736d914e10cd3bf437d9d72d2b1db0c70efd8268c477c7bbada14b93826ac4ae3dfe6d8f6eb405d18c433b9c3bd5e8a253c3b471dd960fa5961409305eda6c01c16f7d9e339aef287a0e67ef56b5c85a35fc222cf61a8aa08bf2b64e7892d2bbfda477aad682530d37c90426a6df1d2c9ae22ed8adc6fa79f723483c998bb9f8c4e85b357e3055690e0c59858fcd8e14a310dd6305cbde2923b939d29ac6ea2a075904fa8a44cf42cb8beee4a13b2a56ff1ede64415a900c380bd14e5d60ef52220be08ca8558a79d2bf53704e645714ad8204ed4960d31cfd3a91120d52163a099222faf273e322417bf9cf94f656b4054a78815bd693ebe28b12c4fc27f8e6d2f57418a7a788bf6a3d56bf9e3f5034fdacff7f1d30115fd768d438f95d673fc2170a349b028ab4361aab73ffd6d3002c379bfc206731c5a683c16dcaab24d36e7462dee0379605245434ec861056e30652bfedf5c05103a9c6d3154a8505541bb7521055864344d4acc04917c64881b2c482a3bed3c5749338e161a41f8b8a0062bbf014e67388d248d90cb8396a50016a98c0811ad8358820e4344a5f198e775e3792de29dbf0632825fa41feaac5b600d3a8cce527fa7b16b7631fff7dcdfa6a9c24e06c8d42d9dc5393c7219c0532b83791b5fac3a8bab223e903c41872d80d686b9dffc95cd80e57f8d09b91280bf17b8689a8660446a3142b4bb074e6ca48e98995d519db88eb67ecd3cbb201eff9e22e05bfa272cd0b451befef2b98ecb696b58f367f15b902c54f110a8eb49408ff8825e565e40945f96b408af7d90f650dfc16e565b10f60fa437b876d3a7d2bf2899164494e411e12a9da4e0a278aef0498290ca21f75dda41778c235afa2a151570e5552006c94d988cccae21be79ac257dec863a933749eb8b6460f9b9b3893eb4214cb48647c29d4d6fa9e1c52e410d94430e203104230033e2519b5ee6842c85e514bba120bee8dbe31a0c736e8d8f9a166a5f0f169cd12e786828c419bf25f76777ebec41f73c447a5606fff65e919bcea32aa1c541a706ef93f810a6b68f09c7ddb0f394a17a804ffbbbaa173a19f75224e420a2e486417d4dc27e9ea6730f1beae46cad66ee05531003e64c0a625ded44a3cc44b47c02e47912028e224ee2d6a499f55f1a5abcdeb7027694315ecf231729c2cbadbf56faca50e34ec3244e3031b133e70f4c1afa8b5e64e6eb39d17023138cb0f7cbf781bceca17209cc8edfb624cb239dcac20b40ffd9a67f7cb1c1a865bd097e831e3427df50add2a17c918646ac8736440869332a11f8e1052d6d45f069e8084121b72eaca06f7c4e900caa57406690f20945e6b2f6f9017bcbb4d867cf1445e2eb7845b9c454b7e6681ba3a36c8cd51e66a6ca9efe42d59e59d39a8841eca1512bc44b7901ad4bba1d1693791991c42bf41a9a94e12a86e900ecba31f7347ed8c95b5878e24a2012daaf09c587ab610f50d30f010f439955ed48015b3aeb121298bff5f400ed805c4eed6bc8accaa073c36dfb3b9f581bf10c078e1545b77fd65560b8500e9b1e3dd2b38056fc0ea571bb08e6a430826db8a6f8bc104354c963ca04ed6df2e3f7854a28bf8ed429b99f7121e0418dd7116e72a4fcbc5161f67d43c1e5bffb9f7a726725c090cf4a2432eb90feef702cb2cf792814ef8e5f77a046a469f6f7ccf98711867d678b0109e3bbe4959b6935e204659606a6122d6ff97282c544d56f205dc56d73814c8264de227ffb6daf3ccc2dd42f5e409ac29ffac93ac1f6d9c031190c695e17e7ec5bbe35bf42bbe94550bacc61466bc7185d12a73d385751dad2a7992a4613e4e0646ae3a7a85d313b24534aa822f2c61b4e1bb8a3218c79ee81cfb2236c3edab34451a41fb444376bd42d5622fe855ec0e4be387e760fdb2af0e9c3d5e3bc4dafec564668aa9f25f45a1ffc3e1bf2ce606163f680d7b5f7f666adf9662508ea09d4e305167ebef85cab8375ae0db1b28ca20f62e85098259b20f247bf32dae75ce613dc8d5005829ee24fd9787890e8af716a5374e70faabd91fd6d8614704197bd75a8efcdfc6d1c2e05cb52c75be19852667998d0932cbc931bc393aab7cefec8e64d64144448e752aab91b4437f186969739d734547c48c9ca01d7e8349352e26e23e4b9420c2224023586143a45018088b9f589a7aa0670ab82b8496f2a361fba8047d2daca42f1eb311990b48eabf6d90ede124cc64d89b590a82842c4726a1d7482a69677dd8b1ad6343a25a294e19274dd0dbfce74b8c3668bca3b9f5d21c667edae8ca19a2ec243ddd44ecb9883ede90f055d5a6c33116791b6e95585513fc90269df23fa841b5fbc1d6e5f32548ae6ec366e67e3122af9c613ff0fb4c59e7a052b6f0d88aaf26a28eb800543c99802e09af0c4bb00534f032c1d2915b13d121d3375c5cd5e481a78ef1291a4b15f1a0e9e6c335a6d43d47809c512d55841ac67c503f8615f06705be14ebb6fc845189fa7517120aa30e81302eda0e50e724a96497d889994385e745125ed76c048fae8279053470d0f3a6608a815e9d7053c1d80c21a2dbac23df98c8fbe5498732a905fe451752f99a7e17ab12fb3d808501fc27013600e9e6083e9a75173c2cc25f4b1f0d50431867369033498aaf0edd43e7f368dabf8df07d99b4866bd59f966e9a6848f1deeca9fb211132c1c2e103980d48ff5317211540fdc24caff7eaffb88b50d4fc5b1fdfbb2ff34313eb7d856aad66feff66c149b0ec3152025438b259186b7ceb1ec48686437957ad6701f6d8826f6eca9f2463b4f0c351bbda30a86727853588fba6e77414792f07d8d54a316cfb17a84dab0cbc9d4c0440cc744c58c7924dced27aff6ca520be21caf68daf250622260556ec6b00aebe1e0c2baa66ba2b7033e4864d4bfc5d30bc16fd2f1bd194c6b69cccf645a60a7333d58d60291a771eb7376b5262c1369e0c4270ee629d58c77e2c11689c01b6ead5a738353a75f4fbe47763203f9fad4716399e1c47d34c7ae3c9f825424fa4d0b74eb7d62cbc7fb1079b5c3b9314bddcf403b26fe5ee2bb9af4c9e61c2b3604b9c0738d7abca83866ef4dbab83aa70844419a4e655c68c872a26018c1d6ccaf60d8744b36861efefd2891c1d3b244f1f102313a5968c1ba2a47c4c828f8ae38750f7dec29d3a8d9428cb369af16e6e70f598f58a48738211b29111c9434409204efca0c7794e3f23f7cc88d0aac0c2ecbfe16620472dc68f830f894b01ff9d150c82d08519996c598a950da22b2ac75892979816517a9b812e39b05b80c7cd237545e408ecda959aef5913aeb8a17354e88a5d888bc8a0e313514c0f03abe5b66db43689de6873c3880c9d352f1a44b076d3cfd10ba7b27aab51775cf3c8a84f03b7851b9831ff87caf6db61b60a647c9f665828017b70623bfa674fa32e29e4215fde1ca374e8374b46d4285452ae89bc052b92da9e47e632b4c356c689ba02664ba616d32d4ad4721e27380858230a7929b641f7750c444f51402ec9fd9b2e1252b271b486db5258b013ed719e9176d036e90f853bc9d6c81b58479f8927bfc73160f97b7865f66b0a47a108cc8f43b91b84f4151a7f0f2f99c72e2d5134e53bdc2bddd05a44cf961921b904c5aaef4468e4ae74232b858b52c3b93c2b9825c93d6548e1f48ff3f2021869b08b15f3bac458cb0cb8084658d97a2b427898706b7a91905ee77105295cd9d41e30ae6d3d1a255ec9c6f921b704d782e9fc7b34924f0ac30719f58c5ced3d3e6656e2d6d8beea3e74b5d308bbfb4001516544a3d4eec773568d3e57b231357ee7b9688deb851cbacd1fb846f8d4268165d458831d88b7c45305291b5c88a2331b915208c0f2ad11f772703f09cacb33e3fc102b6a3896e271643d70846f54766db86e8528f1bd1297089323646a23f2406c114725287ff14afaea2485c3853894c9e3c2222a1411167e47a6e62c9a2effce23220901ad463c069f6941e6383b631727f4dc33dc18c824577e11c2f9079069e138dff49a1380a6e95ba750e32c3744aa4a58831f871cffb405c5f644c6c94e4159114983d1b4d182af995e443cb4387a2b5fc8132f4009511bb910171fd7212918c1c889cdb3b9ceaedd0bb13f2f56082913179ac81bf011236a0a362036f42d102c5630a40d05a644f0429a2e9411e6a0d3ff1b6688e17b6a956f0ca165c520ba6a1fc38bd0cd3049614851e280f050a3f6ad56df153443f89d321ce2423e864dd143c5fc5c137369d51c5134a6218a78c001a20c3743624101d1e6b498219e4983b0c731acdc0e467e8710c6ef2d16a2e24943cfb51b42d30cab9203f5fe1d337351cd21da0e95e09ccf20780d1d2a35c89a4fab9c41e356233a0fb71a3c8c293642ecacc391db54db477b2f88d5af8d93cd8540887e9f0ff160053511db65e921f3dd4a200e2d8cc74150daaa8f2a702547fe10371d39068105f2a1f29dd2409bf3b3de3467446cf180733fd6514421aaa4917cf12b0189b678848b9ab3113b5ccc9b450ed0aade232d8a844f55418b069edd653eccbaeb58c9e206ab0064d518011e5054067686175daf358094a445353024c3fa77e4c1be2cb8233a21d7ecfaced3fa125624a192bef374c1e5573771b1d44a03249539423236e582d0f535a17bfe2b22885afe4433aeeb42fe4ca54c90e4dd1cb0a7d5ad2af27bef0fee2aede1117669f5e4d2fff3e40cb60ef33842d210ede1f1bcc98a552c0b6f5e9e403c9bb957a44db15c017b7c9724e5bf333d3027c2237b398fcd111ad6c3e4bda931d893255eff057e75fdbb7b995c28a9de6bbae5bd37137cefa0bf159a43b2bd4e5fb3deaa56a37787c099c7208320af5ae91ade18e9bb3b68da538c13b8800c17dece8e6238a3e10c7715364f06cef0dbe606da90520bae682dd015c484ee3c76312a3b6cbcc3d180d7a2e042a06939b970f294dc8384bf599782d1bbc28cb1cb146d0d11a4dddd7e1f6e32133e2b641cb0120bfd51f07c6f01d2bc459342292eb81802d4e7ed74d3a1fd3fc892f1b0c89409d403e8430c72ca7a587260600135e39784dcb4eeb136753cb21f78a5d67cefa3949af547c2da385f845690fda3e93734c19c0dc80d79cb8741811ea017a70e850357f57f4948d3a06985df569a422216870fb482874148034a0fc0f063eec2665848841e5661ec96118d0c0e93902855299dba11278206a61f8e366ad6a2620f1437fecce6646eabc21f3b7157a354eacc7d5106f6084235dc04e40d2fbc6d94a90617b7e4a6421a27b31ce7b139209258b42ab32c7a573d28974ca359ac4f6458b5001103de354b1cb6ffa9706b4cf3136875eda80b6c811700e0a246aba26c0bb396bce6ea21e9276d0d26529e3b55839a3257814420fa720dac32552e75bc766a3772bc5760161f89f93360ec257802b9fcdf0f115da962171eeb2b5ef855c6740118c8848271af549990022fcc85909f96e48ccd9bce518466a9eab68ce3a560e7f535a6e9d5742b0c42fde9c78b4d2c438645eca91243643a1cad30f6088978d291c55bfe70a553a94e7db431db88048a880f311d576195d59849c741c8a1d3fd02a78bdd237be6d6d2518a3a08f264d531876e9cf71a988f4d1dc6c2e26511b517ea380a3874373f13753032833ec4e874320919355d6e9e3ae56463ec2f511706ea30ab8a7d94ef12587fb63ac4b61e6d117c08d529ce0fe547437939679c2f62659bba7af00461245863a8b3d6cca0d9e59cd5a1a6ec697a79ead8d3c343d85820b1d3da02d102901d1d3885656161877b3f782327b43b2a942772cf97252b3bd2dd1930224aaed8c9b420280f3134bfd5e8b754ba8bc50e7d171102903b2a0d61f87f8e89395473285f77a8a214cb2a9a3babb014c8cf9ab74868029474a6331d4cf19d77ae2e7375fd3603a0a0b2dc1ddaaa4ed284f947771bb17f6c9f95419e774a501a5000d9a8a80c7d09053c8b1bcdd0adbe4435d75e29d8bfd44aeb5e421374740923e5d92157eee20e1d475cab68b7d334f88e78f47e65e4ee54231174ed2a162a19188cf11c4cb4e8e3d23be89aee2e9ef0d5f936416ac9ad89e0545b9ce40e485b3d7917006820d3dda9c596429fb4fa3d8d227fe19f88a04711c3c63aad343be72c290e259c7dafcc6cda5301517f4ea18b43eadad1a3f5dff3c7cc0cf950f42de4b5250d29874393b858f30654fc56fc97493864d942ac48ad04133eb93a7be178be46f38a5ef0f3d28c358b383e28bb8f1548a1a93d652816eb3b2e755843d8560f5ad463e44d7660d034980b68dd55a66f2a1b09a429aac534605f9461b7b2f2d6b521c34d78621551973c577b19b149fba2cd0a01ab52611e89046b3404fabc40464c00c2f10b61eb04bd490e9a4a735ac45e7cf1fc57cddb56eb797ab1903b7476ef04ddb73579dbdf29ebb2bcc409f048cc68ca5c5b483ba579826e8fe0595dd0a058e5779094f8dda0f3fec5ac1f69099c23d21c25c498a8ab4a5d488954dcf997600aa9ca213f22d4b30691c589ffdd5638441caafce3f87f29068c03eb04c8ec999982ad09761c22c313a6f14d6e14357fd6814923e2b258006ae4616e8af2b45a36ec0aac4bbd1534b709dc0271a5ea6edad1be398696f5688f5d81f553328178344b1a5bf0330ad2cd604dc7b37f2901229a4a21443833766d624027f5d1c45e4ec328aaaaf0d56afce05d0f63725d7805d63ddf8cbcaffeca9d3f013edede3447f2de7cfc64ffabde9786baf031fd2f44da6124abf4f48c2782456367a10992fbcc9411fb8c3884392d4c35f7ab59825b880ee0be92be80d15f3024a626e3b21155ac4d33bdf0929b0be9f11c489f145a1216ae90868c4c761882240f2d53932b44bcadd21dd7014f2c69db7160a419429e66d7444e733db165b1c7364524d6b7d26492bbf21f8a54fd65c5605202cb4bc6d3228be83959b48aa430122162b13292cf10df66209498745efaa0ab726a0178b5a0157e47c2a91b88780fde1ea652de6cf2fca39415ac19e3eecdb650ea97e6d7e438ed8e71bfc57a118d6b4a7eb331792aa79cb6614cb4fdf05bd8ef3efedd5f44b8c341684724c89c163d198a96d27f0c1f289c577da6a0423848685969fe0bf1273e95deeee598301628470caf0f52f5af6af7467d0e7c58070f43306e338269138209c904bfb968d394ab3570e44882ab0d17c411e544c235448e16c52c9dbdc39196ebb7fdc432b3f5c263e9d9b1185663d57df65d7cc902f20e99a12e4c186937e6bcaf6b4b542768531bdc98422a61ca7f74e7f131f58ca7b4d6f158d665c0d03ec5ca87e25314c53e2dfd590a9ddc413738dc8dbb90a1e77e8b2f97e16f48c09e52f8f2a454b2ef67a19f2155c83aa9e1fdd9cfb2fbacc2ea79a4037603e282227bd6ba2a73f6b440e9e51b9081a6e2eb8f32159943efc35d03623ea32b529ed3e28e3ef97a6280d0a9f026604f7c1ab4995cf7505e77049240a78fcc34a8a31dc1a45e8558f6330dbe2d7430c4bf46c0cbe4db704128477af97f1be4f3633c004c757d130c96e23d3bfbf217bbf673c002c7b390c47988c489785c8cb2eb15e146a895fb3051597f76562289813f6c71ce18100638c89ac881b2b1ed30de78441ee8f2cb46059f017776d580f9861acef1587dc878b2b8bb12076731a7a19e05926f922b8de06b500560fdcec7287492160ece909c510bb1f2047cdd810006782296f7d7b120b6b9adbd5004341a792b6456f239250a1f4bd61502e46d4bce8b7d0d6251d8adb492e3d2d2e0014b329a48963c5ad8c496b7b06821f9b85441e3341f1e195f16b8a4ee828e0891621821742c3ffcc42bbe4c0f82a5c0ae5bae556bcd39cf10df2ee0bf10ffae6074b84b572c0520aebbc13211a406bd4d4054db8a0ffb377e0eba46e4089610842daf2dd59d7037f1b0e58cb79f301384637d425248d6f4fd9cbb87fce6f1a676faba08a0179bf3744cdf68beaea8a25df1f346af21891fa5e38fa86efcf6b513c4f2ca20df8060e78ca138a41faed1bb023fddded97321fd4508898d0c449c8865126a03ca2a17256415e6a62890e18938360be0f5095d283531925d3e1cc300b3041add4644d2b35edf42dc7e3b31b820ce7875ec72f34bc8391063f6f2fd1250e9a01c95b4750d164dca78a37dc827e38a1061b7806e53fc986fc716116d4fa4b836946f2929e8a3c416ec2c75ca5f4a5aef82dd47a4877acf5d2a5d3928b405c81df4de5f6eda7aa8b58b204598eff38f1be79e39b5194f7fdc38f72bdb2ba853d4064a694e6f8c673dda9c7bda2f0f77a33a405f70005d4d141a96a2a0a6b2693b18c7c2fea1b8e92bf7114787f4facb5d1d534f40769b6857bff8313388b89209fdfe8e3ed493ca132eb90b168ebc3448fa0680a4f2209fc2bac035d638d1afa123a3c46526c4a369e2b19b185b775d12f965c4be5be203c15124280fe0783a1c1f116d70d06fa54bc9a9f31615d1f7824f3343a9e31d69acd64f41bcebb5112ca3a36dd9a713ec66a6989fd99c2a34a49a4f51f4da1adb5c1196394919155bf9035f61450645f77942d4ee2527e656e2f1b8e5170764a158e19d4f21d42e83e0ef2b81e9f0ac81a176a79ceca28016fb48d5a69bab3421d7819ecc96eaca09c0b1b41ccd98691c62f1e657f52926d9132f9b53c4724a67ee026c4cc60cb333a500f438dd23300344eeb4a775dcac8018b4abadc46960f7aaa213806b646750ba9bd4efb4fc5a665a9cc45a3d118dac47fa09e733022ea6809442ae2ef4784d102d1bbf39c3ae02511888c27934d908c02be546e1cb34c6d138af7b4010aaf0528113e0a2c5f7180d980e913914af436bb06b12efea3ece6db048ea9564d15d578f90cc47cbd5c00c72dcc6b45b186a265c37468d126675a407b002a60da8e551b101106a6eeca3a2e3fe2bdb7b6f5c1ab09540e6c40952c086eba541cdcc8b70b885a09d05a1707c0ec7d7cae6b62e27d67649fdf918c6250f9f1691b67d07314f34580b9b76fb8c6277e1d536ae9aaa70c9fa3b37685ae78edf57623552309645b250d4a9927a7970f03d8f6c5a76958ec3758a40e8d78cc9b6de0f89b75c03b3386c4baa0609d3d1dd1d3335e347c106b16d5474b616624db3d8c3c1802ba20627d73473c0082fd57f89149e0c0fac285b80b0a601e961ec672652bea3719bf5a75590e66b6e4f2065928ceb004aa7b42551700e6d7517809894607c06924cd8e4165c80adf1254b9a50df2f0525884a9c12aeb8009904c4dbb276b52e26b666544e26b02f14cc0db59369902bbb551cb6a077e97ad55fec6c0b1f681444ca2463510b560249023b02366c40df1f24bac312f258944d5f504e241c2b007845849628b7b71d1daf18afa2103af0cd2ec75bcc1d5150b747969566e4e5239317d366dc4a6630be1ec66a55c3fefc33e6dffe9fbec7f1c2b79e75d548c337c75bccfff3aa8c00bbb7afec82ef8ea574ab2cdbf3a7000324d2d3f255d615a581558e62b25cdaa412644bd7af0daf7201a3d1427171864ca17a32e09413d2b098a2556e585aff7743cf59ebeb4b18d6468f8ea791eaff6ddedbbe81ee2426cc8ea398daddb5d65abbc7d3d861d45abbbbbbf67fa90ddfcbf116dd49bac125bac30e0fa720a17eb57edda979fc305eac680d30b17487a4a25d33c2284529473071274d93b00b0f4311f12dd5fe9fba3c1371f732ecf8e1be6b3a091c2fdedefe11d188b9cb3978ec557ddcb08f93176b77272948ce82a4389900921cde0f0dd54a08b6eb4d9cb60573ce097fd0c0cab62cd956b258ded73d9c937e1f42f30bd9197e7e86bc107f2e042467134747926920a78e1faed6d11718ab66c57225a94d7a3071b2b343d71f342c584e068f914cdd8365041d5a2ea910818c3051c0a9ac2d05590d969578ec5d91c8e347d19843007f3f043c3a70884b3cf6ac7262477cfce8386e65fd2d8ebe8df5bb67b9a9bcb78a27e2eec80ea80e872e664e4e8585dc480c772be2e4d0e250c075bd55b959db46b041d784d472d266d0e25854c4959ce599ad2853231b4bb11dbb12c3a22071221a3604b66382e6cba504dcc9160ec48b45171b17d9d697364b0b2a6b8a95745564d55365430533f596947a4346d141b965cdb06057ad55eac9a9aae46444fd99369b9624dc5298dc4446d82dc1893806525844f99bf44b24a086043385d09c9088b01c24e6014c1e1354721f9048a6bf000e456a32273433cdd199a12026b962b5a952ad2d6529e44e8f5b929d988a9c1619163ea4297de1e4847d29395b924eb93382996c11f342d4c8ad8435ac0e47280913f7fbd2912d45148d5c85585bfa977688248b6c455ad4b789ee0eae1047c393826ca1857596d080951ec84d4b9435db179024a8ef02eb7f39e5ca4cdbca17099833ab01e683902f159025105e6849cfabb3e8bafc3a7e148d1af2b2feffff0b0ec7de940a73141e7b536a89daab996021b889a93d293ef389854982a4e8cc27b347eda14632b2d6dafdfdddb33b5b079420ebf62102377bb6217089eed0b32680fe0fb81a2698ddcd5a09b33be052311af09db3528e21d1c3f7887e9f9d81def61de5dc50daac75d6295cc049e7b4426667943f4832bf17e9105a924af32aedcaba64f87e055e65f684448745f2ebe5456e63975e5b1c991088b73aa81e6c8b97e2fb62d3863901a3eef01c167ccf1d7abbc30b05970104ccce067434cfff582de067476048f41bdd347cb5463a406ba0a001afcbf1166f8005b82fd11d62953f02ac452e1cdea69b071812ad570dad5d80576b6c556670a266f1fbb56badadc90f01b85610e0fff68691e80e7fdbfd9fde323670bcc57f28a1df538a9461efa92bf8796bf48cbeb7d65a6badf5084917a3392b185e8e1cfaccb82569e9690742c78a6aab35d644c3900845a6f5920bc0f304e0e2e9ffde938cf03d67f4b66fa81daddf1dc745fc69440323bbd655baa030841349a6f60da609c69904b274004deb926b41c21641473651296120d44e98bc4842b878ba7cf8e7051071764f186a9a4e2a7e46acc07698da96a78f0677291ec0cec490bc5c50533b9a8a9bce5c377aa6db923a2714a40d4e0b16eba428072ba56a8347d8446601a1ccc4d5953db390b8b0484614b0c302dd98d89a99cbd83382b6295c9a9112c8d4868e54d7768b64daf4c1e91dcc444549e5b1f00839210bc8e9dafe5425d3625e468046ff5d648cc79221c3257f1c66c9cdb5b77e5c94866dcf57248f3b4461c7186369d5b1bbbb94e9f8d831c6581a3571dc81e32dbe52e667ac2fdeffd78e1dbb14e7fffdb1b4e597ddfd1d3f5e1707184dcbf835b9fef70cf6db43a2d3a1401251b9d67860338339b19d6c5328158d454ece2763fc02344a860753249373e683d9629cb62dda490c3eda2b4fcfa8fd7f779ae1dfb87d6fd7ffff8f14cc4477f8ff8fdd23ea83517c043a30fe3788a33241fcff1edd39feebffd1110c5f6ffb8e02fdffffffffffffbf1cc5e78b16a56da1b21b632194c10731af0604373176aa2060236b5173c64742fbbd1ae7d7d821c0b177752e5fe4389c6862317c4dbe75ce1716e4c90c95a86153d94a71c4d8871d023153714691cd6949b1b9f546f8c681a618d5c72d286e09dfbc608415a22c038b42455cf73eab0035f634b622e9670643a547aca402da98148d00435b5b7163e4d9b363a8d211638cb1c773439f4b2547814409e88a4b69878413f9abc993e6996c95aca4e02d8ff6ffffff038f1f4523d4fd757777777777778fe7c6b126517d7bbbc11db46bca8ab6f9482579ae34212671d9a757ea00d6b1ffbb61d654173a506bcd517cbe2e26f48c73d65a6bad37f27edfcbf1167dc3854b74873fadb526c14e6badb5d646a23bfc6dcff0fd1bdecf66f3c49ad2acd535fa81820574e3120707e3faffff7f48741f47f105e1a8e566acaab4960600925a36a46a0a69f7844463c601cc75ef330aa130e7d3a6a40d08ad20e546aa83d285a2a2f47227b62b84cb5758746a898211c2c8f214143556364d0366272e73dc9b38c3c5efa93a63bc7593f6e8781a73667a9cf35256723c24628cb163ec9f947376c78e1d3bc638e39c7334e79c73ce3963c78e3d3af45edfe79c73ceae75ce39e79cb3fe9cb331bf4663474dcb04da57f73e9f1c31c618638cb114e36bcdd75178ec5d955333fceeb5a41c9c16eb1b5ad902472a65216327ea3c586d316e72c18cd984b420a249d151b26518f9be8656a8519944915c6b84946341bb0e28c153311af09d3dbc767def2c5c200c4f2ab61595faf0c34f11aeb9e8d512568b0cdfafc0db81d5934b0c3b54663fb8484c264c040dcf16162868008b0f668ddef6fd398b38fb695241f3a62ce15e198830d0ba62027a823b71136a18120370b56b6004852fc0cfd92bc886c86d050d2f6699e30e99a0028a8888042d0d8f032a5ed98856b5e70ac2f5524a95a65252a8bda9704dad6aaaf28aae401bb0d0964d6ccb7364b47d197ace6ea6bad07daab51e7182426464b6eda9424137e0a0972b8d8a123a2259ad1c6b42017f6fb846a23bfc6dff81c0e424cbfecca99c9568a86c00c646a2046c6a666aab85a3b46d52158d50080c84a1158abba854ad9e470020982d00f3191c401cc7a120c759b51514000920d24058904034404c540c8a83c2004118068602c13020140a00200863480ce949d031b70400f1c3b9c8a4976d6f525fcc4dd8bd539e9aed3dcf2b46ea0c0954c9cdcf859f9acbe04af3438b7687b61882f9cb465ce0d636ef6030be0f62c8a432051425871fe924ed3004c0f8c652edd37ce454c4dbdc420c82dc809246810cccc6106e022f32a199dd15f6392aece8c0689aa511d8de1a1d1aaf5792470bbcb44cd108667dfe4c805dc20fc3089c3c9bd2217e9880af5f614c5cbdb339f417ebea7138c306c99b4e7ac091f56c22313b723d7a0e44132939293554d5b724fd6c56c83aa218ceda32a0dc8694066d2613df367ef78904424cd02605cfc47f703000741699da207bfcdf221f21bf4c9942356a72a6bcd105de3ca2613a5a698e7eb02afac0f9c54dc5c0ac87f12e50e78e60752275e992791866556f64c7816771a2230fb51cd887ae9b1afddf6f67c1b727512144e82f61403e1544f7715fbc81e4ddda7baf3c6b709e6343945317f05cdb01df0e0913c3b7aff0e6f6a8d44aeff8d4b736b5dde92580266854d6308b0eb668a8c272f30ba436b9049af6768bf290aa317dff50edea8f085c8b3be2c01c209f4574c8f4faad05de817403a80b22b5db1c0c1dd95152c7430dcef6c5ed06efbb963310948faf3671c8852c7c55345c0d9e592e325e35cf044535380d02c59372c00eda2be5a498dc59cda91aac61d0d8a645e5a77792a8f44856ab88edcbdab337245f96a3fb3a540d86498d6bcfc1a02883489d2f51628ea9c17c6e6e6f9e05563b2241969d2530ab0667d32fbe6cf357222a3b0dba4f25ecd6bc78f90f41812f13f84a0c7c8f1be97c8129473788e252f6eb86b8c61bf5efde3f7f9db4c813187f2113d6ff92b1f7acd15db0c9b5c3b7031a1fb89c4b509a89d9e15f77bc6f5f66e24a796d2949daf0f3699cf5ed4ee03a32b42b32f1522ea6effd1485aed30044d171dcc3be79836d67d8d9ebfda8cec523f40c20fa81085e167041341168b79b4127471d02575dd195db75e071ff63eb46bc3f0741dc23a1cc4ccf04fe45166724fbc107a7a3efcdfbec88b7a25df05d277cba1b185ee8d10ebbd6475b03bcabeaab3607a1f21acf34c726ce5b279af1f1a675bd90ff399cdaac7802a2195539adac02911e4f8e0d466ea182b3017449c6c8c36652bb050897fe050ba6bdf444ace5abe07d1f74ed758bae6fb37094f883938187099700e9333f864110e8ac0e553b416ee60f3aac241cdb5503b53a3759263ac85bfef5b9d73f280217e8f2377f591f5c4e3d220248f982991dd5d8f4189de346f393271ae5ff3961cccc7d1a79013aab63d9af1cc63f305a546fd4b25fcc01ef9c61eeb9e2feaf11b564ed107ae2cd51e942e4583b386c06a2e74e4b090cca69ce9509ecb4544eab63ca29bfa2abc5f6a072fef24e4b07bf3cab73654fb637378a58f072d0fb1ca0f411db3bda6971a5879b134b3738604708774c9c15065910d1958a7ab6e2a2fcd549ca0b774c103d953f11106690d358254eed5f5dc1893432aa43c952f86a6da092d04b452706318bce0458b40fd61ccdeb46ae40240d727796ce20554ec2b7de415eb89ec53083dcda72c8d3786d5dfa3ed6408354c3a1c4c00378927d1aa6f40cb2bdb03142bb959b418623669237f1d0203581244c22846eb5c90c455da86598913548c4e6e3438a28ccb053ee4b06ee9ae43baad8175f8db8be41a273b235f3c97132210925d4862f5ab4fc2c70263de0a55d48fbc4a042b47e728adb256238c89e5e82a98f9f0925ad87ed9815ba457cad89007970814d17ab28ce26ebf7201557b2c331ebd54d70da9004d0172297b110af864c80cc28cb41425e71f3a2faa2025e2f6d81c2d3284afdc6519f7da4fe7c38c874b05b3377dac6bb089a1ce4a43d303657166ca4300e40b5e36c741a7206c85488f1545747764c2b187770902b0d81b059f375888394609e992a3807dc5d29bd85ee2a1c2404909f0190fd3b352b843e37c850f35ebf645de81f5f76e0ac1e2412b3a39835fe3bb8f6647406c3fc719fcfb07d2598e61497392132b677b00aa50fec1771af426f1fbe4fb007399721d886e72bf0152c40d4488729c0c848fa525cb4f53434e006ca02fa4de3f1413a2eaa2f05f2b9774dc1d8624d2816f6201ba1ea356850df0c5241426917d86c1b28eac209cc686aa20f524722a4c05a17c2e4e70fb22932b180dd880c02738d4746c4294b8de18486961531bfbf930f529983c5028809df17d879a0fc2326fdde677fdc0751916a300354442a8b42c2de26abe95666da70849fb7d46e19202b34d3fd02c37f7f4f0640d023dfd76e56d7b41dc15f19202f630ba94cd14d290f5e18a9e398efd011438cbbff7800e5efc1ca5fc51ba00d4a9a60bdd32feba334e92c3426a10f8ed711f942b92633bbcb0fa1997f6db6a58df6a4ff15621926dbaefbcc6230693e1bbad5664cd00f12d2430ce5baaf9980cbbcac9d713f15d0a0a97af02e630b2f5128c0b06cf3a445eb62911f1744ed5ab8e46b0d3ddf2acced6c47120c922475e2cce3fd05bcae89e5909e8b3e2bbd0d9b813da4d34b5c4be0494fdc715d4b2915dbb154f832650c7fb6d0c4834eee1dee5bf7387dc83b1aa276ef1b44b9889a47c32b663d5e1ca724e9832d5e14d5ef4ed86a913af60d90859f15968abca9124da5b6f5c7e47a50877727444471dc4c218c63bebc298c5e4c0f98f5397500d2d4ebac3c1d7d9af48dbea025b1c2477bb155182c3ec72dcbf6998aea65b1b0b5dd171267903b3c8a16209e57768172bb6259745172c8c53fcdd0a8eaf0d7c043ca7f94f637d1d0f3c7d4eaced74da183c9cb79e35be9e1f0104b4558b32824efed8fa8a7d525fa5b5606cc0376090910d724e1134bbf41c0b9967efa60c6761af048d44fe4a06faa470c51c48c11784a31910af37dd16e60d80da583e2eaea428c20b5f0e75d0ff0e37818a5d2b3c27da2d0f8f78811026a5b494097a90100a08cec0eb2466a312c07fae483438b9411f298c885cad572a5202879be02841a13694da3c6501298634b7dfa0d6ba1b33ecf8dbe88a7fbf34b25239d9c13161c4e046576d3df141faf230a91eec9775cf7308c114e68471de510b070cbb53605a5c04dd386740a112fb1daea286569f75b927d3020f846ae5c3b8968f461bf403ff6ab237d16968696f4e25b4789ed9e97cd51550743e4988a6ffba82c714b7449b6bd9b888361cc99df147fb5bacc458377ef6e25bee5fca31f312645431465dc846a41b8fbaf964b04450c712f2f1b85ffdb5bf4fd8a8505cd559b678df09d70e97d852026607f8e7dc646b1d15b74441fbb55afa97aa25419ff8d07725d7edc4227fa79be12842f946223202f3f68be267edfd43115d6689d1bbfc0ded4f242347a21c53285215a8585ccf8bd46055311576280e82da6ce830353f3c50668cb79096f083d2a6fd109e870ab26f92206e836df2343cf1bf3736a291892fb1863983ee45075e755caf3e611fdbc23c6407ae6e71feadde0bd591d3b9e394d840715bf91aa102cae1352d14c6e9d424ba8c5ed0ee871325bbc2276d541590434a70d7d0cb6206ab52d6d8f46042f5324266de5285fa424dec52ec24f9549b7e84d01e0f2bdc8cd73f321d759e43235051f89338e2cbecd20e1fecb4c386fbe72553d696e747ea7ca0c50c6e0390a91861425a8d8259864fcc16ba03e2244ca917adf3af2005ab5421f52214c04e5830e2244626d6e8743ab15d95d637847411e7223ee34c855715bb1d335b30192b76fc746904c46b08f07ddc9b0ce8a52f47e27d058061a2bd46575eace1c6ce795b8f2abdec250537913ea35b9f86a3072e635426e52ccf47a603ab3a55987034cb1be6508db00ae2291e2c054142f395583c6665c4fb54351949c60d4809c8523fde2409f1d51fa81a370703dcb0459ca32b5a754a615d89f8028ad304451cbc6912b778ed79390c358353c84c8919f1b2b404c467b4bcaffb56f3ace83bc86d81150184322709e17ed29175c82ae4081b3de5bebe3154b6c616208f058a1009d44a849a1e474a1777a75a40161077cfd351dddd74626aa568ed465365c76cab547af4c63da7e264e7d73244ba3c31f9689ad5c9918840b0f45d6b0fb74a5aeec5c3fc6a45fee03461a6e782b21ad631a2473d6dd5f89cf96e43e7119c15a67d6915183ff0232e188984cfc29bcc4aea86b21bd1c7af3835eb6a468bce1156da026fa9adb8f84327411ca44d9b798bab2162ab8ca6edc2e93d28d16f231cdd851d00b3b29e04d1d828db325f61777f68cf01c4f64e66d4cd51beb61e786c5041fba20a9dd92884e118e226485674229ecb3b82c50aca8f5f2b72a3d723c46d99c9382bc368e2a3c8f38363d02bae55039ed83e6194404d357d65ddfffbc0a69d667c41118fa17982147497048340acc629a722549255523a102535612e275cd54f2e5683333ccbc8480888949e72e08883a0d744eba32b5441a24267da5427b6f60fae574c96b9e1225199e48f2b08f7bec805f59ef047d3dfd8455a805485084582d4039200b1da5ca3426d9b1e005280339d827523a66b83a65bd16093a99700a5c0db84cc46ed32b73a5e703ba57dec9a3ba0e3bb9e733061b4a748a6639bcd61b2e44ff52144c28f9a6d2310a2f434b2978b3ab42487920f11893fce837c54e889de299430e460cfbc9d74c822315250a04f0722fbd33e2c0ed24a700cef71b3502ec43100f435b31106affd3cf13e6a156ba3a7495f2c0e306dc023ae5def46e1f81dc43d6d0d5885a0deab08299b3be11427a25bb4a2aab891b00c13561d6630651a5de27b910ecca81b4cc23498abd846f0c1371d46895cee61536a140a038e9491b5a4e582291ea276cbf417cac045052e1a3e124b460a67637d207c5edd55ea4aef64878d8a4ed629e2f08c1667948d35d5474ef4631bfc80416c2cc66d9335a9a24e160a5a2f7ea3c7a5de49baeca1029503cedb12c59d73492a11fdebcf1b4c6760ab88434b6737ff3ddda2d0f802b6bf3a4f979003e479038df7a1a0c0a1d3cfa970a247c5a882b60c660063b3f046733da06a0aef5440e688deb2926a7a203dba244fc22cc8008b80239c0f773f4de01744d4eb67cc75a01d3486641b1a88493c0b40c7e5f33ea6e319c97c9b6085c5059b40cbfa94b08a813fdc342defef9e270711e4128e23cd97e2e949a44856e02bab15d6c716f7f58891842da3accbad8ca03065361dcb8acf07c1ace4abdbb10cd0226e21aaeb9458409e6eca569536662e7863e66b0cddb51952212d0c568945fb773f751943651577160d8984adb8a16d0412ce2302eab0f5441af31b82eb4a73271afba359b170bd3dd97687a8d25513153b0f148ebb5f2a4e267ad994536d727920ac7d672a2aed49d7e4aff38ac506a9ccb43ea3198951c701a06b9213a44414db58af9d5c9c9390b5652c8edc6c1150588e84b08741ae6de65205b799f488fbdb328102db06cef7859feb8f92b0e95d1570c4cbb8b0ad7c88a3b995c5a8a00e8d8b2537cc350886c7ad1282b1b06ce2d519677f7e9e32f03d54ce8dc65bda9320cfa2e15f3900c11b902a285dcd53c6092c2262119d705e5556b9b312e1544bd89bbb2b0754dbc273057e63cb603dab8aca39d1b6390d48cf15aa98c586ad736b0ae19c1f14011e70ef7eec655e3684f55710e360e286083edd619ebda5a2e05e60f915ea696a9a246abd6284801868da26c477b21506add26b2ae1262012fb57e37071e75a6a5bd1206ce49163bd66e90d1fbb7c4ead51e8ca168dc882857ee1cad4bb38173c7739fa5a088267a4baa56f590fa05451da888d4342634ce0e3e60ac7c4def1e6042c4d7b8fb2b27d25f0496b15d8124bd8c35c49ca796148b64afe6230357a947a3bf42a2de141d191b0515b13c14cc351e893407966be479ab233aecc4c9e2e004a59fc8260e58523c406643462223ade6d74f1ca2594aa1940895111775a47d438d1674c3feb8f00057be94b83e3e65b542ce0e4a5c5ebb459708ffc345d22b0b32eb990f39cfe2ccaf0ffd26388d64afed0ad8efb59b1d16505da173d4780df17f69eb9f186fe4cb43a031723069e1c9fb54831bcecf09c3e959c50dfd3c4f078f1a2281c321cc97fbe38fee54e6afa2c92b704127a077b6e94d3b11a2aacdd5ef3c096d8031e918246147fa188b99cee5339d6f6be47ed8fda22ab58874b75b28e57b40424a94147db5be9457238a8767a1aa2839c6ba274b3434b6aa4810fd0ec34a9a53c0225a0de2ce1d86077198be8cd1761b00052ce23e041cf3c538e90b1c6b5f6afaa29242a8d03ca42f128439e611248a4bf40569e399b99eb7f99e2fc200d8a7823dee1ba02f72c3b9eb3cf176d6c0641808aa575386632d4a02711140e41986a880e84ceeacfdc7175f25b1d1d6799d3d3dac5e56da16ba70bb25efbc0a49421f0b4f400824b968cbf7842d109c8298c40fefaf314bc4ec828dbec984f6609062a5b382169f06bf9b10cca91cc9153e3e7161164a2038b7b10b38dc0d3a14a9d7ddd0a9ff7650bbec6be3d41c2b3d1957d05f7902dce3706d8052706613a2e624dec4d48e9e0cdec7afa6ab2f594d47839526203ef92de202dc5bf48957109a2aa0d8f10ba18c9e1965ccebc3b4977b8bbe34c103ae2c5d7d71a136a6f6945f03e9d01fc57525f473dd228acc6ff99ae1a2094b5a965cbbf81db7d640eb0240531ac98b11eed61a1aadc970af7a5da782867e9948302fdb237491261017385281c7f8ba24648808b3f06e5004a5692a6e0f8b375ade33f8732930e57e26253af1809d0bd6b40a760e354096ec80abc3dce7fbbf76792860fd87bdc3a58d0376333ffd0a529a3dd55be79ec63747677be71f485bff02669b354de6cdd76d93906846749a0a566162facaec389b04a34d5bbc79326fba6e9b24c96654a7a9b06a62fa9b1d479368a46989354f66ca74dc84494836a33a4d857513d3d7ec389a04469a9658f364de74dd3449896654b7a9b46a62fa9a9d4e310946cab4c49b27f3a6ebb6494836a3ba4d25eb26aeafd9713409469b9658f36cd674dc340909654674c2545837717dcd8eb34930d2b4c49a27664dc74d93906c46759a4aab26aebfd9753409469669898f79366fba6e9b84c42b702a62fc29041a9353b75b2052b29a745554217e6957e25aa9dc5922518b78b7ae9b0267ba1fb83785fd91f7679e2f596b68f13a821ba27715533ef6eef673a30c0582be98d5f3b81748070f75d2f7516d3bea5e1e6f9ffa7d5edb5a4b885a238490bde5de01ca0b610b7a0b41290095b06ad516d59b4375014479a8a796bebc7d8e96bd7e94a1408934d6a9b29c4307a8b3a53e444448410515474e2ce580062d090e39ec6005340461841217e1ebf5d7ff8abd5eb1bf6e3fd98c8ea433334850b85092024a0a9bd4809555a67cc937b2ac32e529d7226e4540d5229c14d1a4a8891dc0786232737052924a4f66930caacc4f08675dca1ff983e334075f5f73297f0470ee47c75597f267004f5dca1f117e74de3a220c40470e01046026c30180106ed8a8227f623e3f4b207f665c9826903fab4ff13fdde7270cf2e77502f903933f369f9f31c89fd8e7a70cf2477e7e2e913f389f9f47f2a7c6e7e70cf2e7e6f31305f227e7f39306f9f3fb69b10c1e670d79b6f0386d689d855d789c2ac893068ff3863c413c4e1cf2bcacc1e3cc21cf1570f7f03875f0aec2e36c92e753789c3be4f9e171f2f0bdf1387bc8f34ba93caec60648e362b5642c6665fa9c55a6bfa911667a1c55a68f5d2975d8dc4feaa087d1bfba2ba50ef1d67046c70d0a272aa4bc5d311b89cb1443b6520f67cc5a0c4f2990483c340178767c5a4ae9ad65e6719ecf574c009e1db8a8addc10c3cefde4ac5670be8235d4cff97d29086900c4931716141de1e006862d6ab0431730c0b8e005144f96b4200865dcb298075110d432191ea841249922fb21b3a630a5f61409975b2d5a5b2d1c557270c1133cfcc008232a25ea8831bc804282074f7ce1c5931a540f4ba620528a01194304e10533ba84a1cd83d3ba0e4e14587ad7eb9d5d46a0fca5eeacdc2585ea1e7a9a1a99baeba0eb4e1b0db63f12653a6bb3e699dece3d12d532922ecfc87cd6a88c8c8ccc55200aecccae99778febf3b34bfbd8eaa2ae76f9705dce642ef3c6e38bd65aeb575395abe365329db1470f0e3f554bd174ad995a36ff1a5f20eeda53671dfceecca909e2a51d5d24bb6907ee272d9b77e176d24d79d623ec386d4e28c6aa3bf37a654e6fccfb284f1999aecb33ef44135861c284c933eff0cea29996b431076938735be1775baf60157dc47c5fcc14a72cab4c69a21721cb2a536ab96bd467161d65babab375bba9b4e5eff5dad59df9c3295aeb2dfd74eb2c50ed64b3394da82cf3f634a3b6d46e24d3e961df6aad4073ebb2752afa685d658bc42759c588a22c453b831d672d570cd628967e95674deaa096b638ab163b4adb90d7cb5a699b5b5e55a65297b4724f4de9a4ba45a42db7ce6105b44c4a4ac1532aae5041a50a155db2ac4285153e595679d29267ad7bbcdb3c5179926263a3e201794090070fc803825ff53a11fc6743affa87e454bf5ed67e6f708636bfd23d369f97b59170d9261585125f6481c60f645ca1226349054ae060c9135e7056a292b875f1c513337c740c307880e1882d8838524185c2dadc3ba558346126dba4525f7ffdd1d778e391debbcae61409976dbc14b579cae65304627317e5b2d42b347793901b538a79b8d6536f99f747ee8d479ecf7b8dea7d56b3deafb9630b23e9dcba0a8f35a7801051bd660f1369e171d668adc0cae09a8f1caec163cd345322dcbda73ec5201c26a23a973dcc638a906261249d47a29c52610f8f3cb9c1f7ade2bbf0348851a83c52a97a692ec514fd78f2298f39c2d78928803c29d9854b5d905e9a4b1d1e4ef44143732b7deace148f29c2bdf7e570ab0e44557dc79a390e48cdb98fd5137fd49c3bf8855354dd5b61e66ef1e09592470d4f068feccc33171f059828be4ccb3a01f6d7eba91a631fbeb5fa666454aaa7ee389453dfeb02f088a4e90788b2874190931ba70e445377f41ebbdfc18ac7156a66e12673af9f220af48d2bccc30b20ca9c4a7553afb9a377f19cc8009aabce8925cc4c737ac77e0af755a5faaa68467a15ae344f612234576122de45d299e20f8b5f5d2a9a3023832beb148fadd796b54e709de03ae8ba630b7d41f07ba7fe81dfdb059ef50fac293cb28e846670ac3406c43167c59cde185ceba765bdb25e8f5371c0a3c69f181664e6fd99371e55394524f59709b0bffe3a508fa9ef2a95ea5fab0ed699bf5e4fa9f0d859f55692fcd5709eea34775dcaeeb9177b8b86e6aa2bb38b06b3309b9bf9eb85c7d40288be3bd6fc9d36fdaaaa716d1998fa0c7ed18c736dbeb931f131a20f563773a00e32936107676e1f76ebccc5f71dbfcfccdcc3eef865582dd7eaf4495b58b34a334eb1be58e3bd020d13264c675ae3df5dc1cbbd0202c284b139ec1265899174b6a971eb6db0e4b1e3445030850e65e0000c9725243046184c5efcf0840b2e785c199dc9efd0a1337b776a8144d4122c680022a9890556be6c9122c6520f5ca0d508638c1ac0304113a6256cd11428b6181161850d6893faa014a8bba1ba65aef52bb05e14bed76bbb74175384fa8f7e777570869da4a15a56570dd574052faf561ffdcedd5127a7a6d746b59a8f5d9b53a88fdcf9ec7ed12438e7aca9f084b2a53ec759cb56ec3850efb8b3369f5a36afaa42d8af65739c506a14cb9dfb0e0f1978c7e9347ee3cc524407487751f5dde6c0d428faa56f337fed25d3efabf9be8f35184937d48f995532acd319ebfabe736bcee34a39db716b6aee7dd66662b095c1a375b9febd855918099729cdbd77ea349822e132782e770dbd87a9e7f2528dc786cadfa7baab7fb7ae3eb3b28a962e799c46b28a162e79e6094a1116b4e30e90b41d3bc6a01df77406ca7a6bdef77b432565900bc57b27d29d473b787c67e7f2b83baea4331ad5bba1ba50a92ec5c62bd0ac127da868eab5ca6e5b9fa6babb0b540aa89bae6a6a17356fa8eea9af798b3e6a926a6eed2e542a55e3ee628a403fe96c862decc29406830fafcc33f75ed308fc77af4695bacce9f8fcd5a89ef22ee9fc3e23bf57fe6e7f805d635dd2b72ee90b8faf57f6b08753584aaf6b3278762d7faf94f8037c8bdff4ec17d677f6e6e751f78078ecf77435a3ee69f9d379be6dddc51c41e686ca400d85ed7e5969ebe4d44170ac3955638a52ba25414d249bcd092acb5394ce7bc89c74c61eb9d64ae9e55e6fab56a0b9ef121940942b7675b4eae46ec77910d580f8e18b28529268a20bd10b34786184134d59a4b032af539f47ee457440b0f2b8f54b7d68088a108fefc0433bce030ff150e1b1855bae2752faf0183403a23c64deb1c250ee5e3914ea0a34f3b892b6e34a9a14bb3a91a6cc024c14a32da200618b19681300549e3c51840ca000c30bda7cbd126899ec2c9b68410beaa5046a99142bb8456102063f582a401a2670a106209c6851c55cc28b0d52a2a8c005232cac0db8e080c90f4a98d1027089350013a43c3f8bdac7c70e4d7a26b38f1d9cb44ce689447d3a2044942e30e8418a1764a04d06ccc0075144dd60861112b4f9599b9f46452d9bf57dfab2b2891650c164c50b54204313b47a396b325899c7596b8e48a7a7132e34343434b4b26c82082636033a62c82df2bc9cffe65fde173ba85c9d9979a9b264620636c8e34ca572db00a7fab88eab3655051a49ac2caba01143973aaa606a0f7925d327a030cb2a5138c0c2ca1532f862822f3d08c1650624ca840fd0d82284931a9c968031c39082460c615cf14314d40a04b6d4e0490a248458820959bb0e085e11edba94f5660d33008298a59519dcb6789ee7794b64a8b14e3530e5d279d999d4573b5b038c6a0717ba884183105e62a8420233d0984205891280b14469115f9e6e788207189ce41752801962862c9a50a2410466d07083188aa28079f2961041193e70028b253466a8c245888c254e5750c0c318b6951251456c51e28b1f8049c3055dd7755dd77151e8e7759d93c7714a7495721c15aeeb8ea81da51c2783a695560ae5288d2a9ccc0088339290685ce901081cf000091d808106a5f40625b8b8e0d1c75ef5f33856db2f840094131c31d58ac4903243254a0f6e4248595aa28929ddfc2b4629a5f43bc2862b404451e44210ae10c1a248d8b8941103315cc0a28989091a41d48ebba1d383c749a707cbd5e8a1fabafaf2cee8beaeebce09231bc3135298e0a9e988234b9c9e5822e9079b0e4174f8018a891862882245658408370882096c7065076150f1bc26b4845c8da995d2ceb3adfa755df7434de52cc7794922ab7e499ee7c97075556bad5ce5aa95ca71615739517e9f0da0133d78de085750e0e48c1f3ce15464a7dcfc2006286882c50b30a2ba0e0c65a8e779d78158c11b29a14403155037b0420c9a2282b2fc60830e54b680c104b229ac029dcdabfe7decf17dd2be14b284a97f505bf284099934d5274df5247436dfb2c14a9aa4811826a47aeaaaa7709551d596e7551f6b963c0f6bdc595ad6ddedcea3ed4de9a6ced556bde4b9e475691987842787c439519f1044018288264a3ef880046dbeb3cc77d314270b82368060cf1b11edbb30a16f469d8826c516ec87bce2c50a9810d577d5250d26a47bea29acc47b37ce5b9e62ff7d89500c0b4284c3b0202c7426422faf78b182667ae5152f45f9bb92e619998109e994a4de09514293620a4c30a16ffec36de43da59052820979fffee1a146a21dae595a8b0579b063734a1f11d73237c88353acfcccf2272ac10bba3801172f9c51822468314c6162b0898182a72368f2f605cac7f2cc1da4668a972c9552079c72045b1ba253a2f59d12f5a19dd2143b2f73a7d43d334fa09ee1b4f960555be44f0172bf6381ec94e44ff71364e95a95dc46e42622371ebfce05b93fbaf27c8cec916fc91feff356fed08b0f3ff1383f4e5b4dee227da8139d7131833272d3e9c5cbde05228fc0beae043a9bdc1de91177f49ec62e2af7e98aded662c74e891a719758075718366fbf7aebe15b183657675d8a41b0eee02d2e328117264c181a9423482c0c2f2b5eca7469d3147f74876f5ddd7aa3b39ad4013545e8cf0a46eeb76e0d4312a06fb912c89115c31296be91e495a04ccd4d991856ab6d0a37850b77c4e4a618217fb8bfaab050e4be9c352bb9e79cb3451f757e5d77cb4c3589fa886ffb66816ee1a0e4be5d926402151ebf0f7bf855c329479867e1cb6377cb7db0c379a70ea4087d4efc316d5dd745605af6a5d670de5ad66d247530d9b1fb92db03a7adb5721cc74d1be7a34e5b1f0c98bf29dbe655ae78e440ee6e5247bf69a0cc5662e1824ab6c9128b0e9eb20d7dd896b132fd69d41c81e269a369c89f89e7165207f7c3de194567b56ac5698ad0ef6a9509b9ea6ab5ab55a715768242035ba3c8cd25ade08509422dd70b33c17bf7ce3483a9701e4162f3dcc2263aa0692c3c6f498cf5e22b06a958ea850383b92fd3362f07c5dd5ad64addd34e9ae9c99446a23eac7f9fb5afd77f847be5a25ad64cb9ff3d9192fbaca49ec239bdac6d8a6d0a378573caf2b42573365a15c2726030f7a5657d28dc17b1019256b15870da7955b9d61c9c9b18ac86cdabc645332313d3b2ac951882aad4e7755ca53da58e7929b22ea765e1179df5e7ea765eb725b713f5797dd6563cbe7275ca7d10775996b03d3b272dbbd98e09090b7632774f3cbc041ea8a70dc4b2675da714d583fa807f65591ea72cd328ead351510da03410778dcefa4758a46c4408367944a9b6c102f9492b5ff29f1f73709fcd611bca907100e58d91d6c0ae033d4a3d8f7a1ef53c4abdee159c6265066db092cec676c2e2c5d662479d8fda22ac0c42105c224216566a341113d174786260479d3c67444c69e20917650ca1c5484d8817fc70258a1667d0e6757a748fccd208283b0053061543b4400c128ec6a859c11404a31c8840c9051c7a880107693c3d315925d1240b140f5c6a48b24145185e1c5153220733a6bc010f7e30c2055ba400ea0b10a0bec042c5124d6a473968e086265b8c71c512267e5471818a2b4d7e6002c949492a3de1c105881fc6f8c115348896f8204b1730b0008aa21e66ad7283c2890a79c544e232c5484095276198018411675c2171e084963380104605b626e4acc5f0940289c4034c28fcea2b3cb47a78229a786142a278221a6bc55af58a655b2dcb5a81938266dc52234811c529cf1124ada1f87d5afaddd60ed6de7ab48c07eb6ce95bdf242dbc923645d5e90766f6d1dac18a19069e1ebc6c420732b214818879c9e8b4f040ed19800952fe96c2dfee81612af5864a5d66f05cea159c612a480ac7bcbc7243e5e9e1fed25ec2f796b0b76c69d9fc4bb0b4079d4dfa29935e0b08972c2d939928cf39df0388faace659ab2be5aca98933b218d212801ed0858b15a3206088810a6d5ea7477f69d97c91dc45e9e4a9e3e1b146b5ec26c5f6bf8030b094d6dc4566727335f72d4a4a5a031b080720ac00420b6dcaa16dd9d03893fb9bdd3475abe863258bcc647a551219f504441210480df655b668dabea491251e7574f2f831c9233d5a3a92d3ca529639ad2c39e539a358270d12618f20b199d2d064e4254f1f499ba93bcee4d4c1b0ebba0e3dcfa3e1f77df53b2702f9b0943afaf3209d4da98aa96545503e4c9db48c3e6902cc7f5bd8911e39f9aecc324bd9e27769a6489549f77c556545265f52f72065900bbf0b7e2959fbe354563ca80ab99082e1773bd75abf8361f8dd993f2965e394852290993f555da5defdc352ea008bda098b1946390910eaa47b1acf1a35ea9e21ac10363c08c582d356a076c1b6777a3dd0489988921b2bd3a3277694514759fc849a29db141b4069229e363aebeeee685ff9fb30e5782e9296c9dfb2b4c2c4841ee599e428cf0f75cfa447337f8d948f7c60e6143ea2fa0f9b0cde1ff3957a039a26690a8ffdee40b4c70e1769a4a82c5fb191d60ef6601076248a22ca395a265f60256da2c9e21db67492bfac8692d2e4ed6b6639e7c447661e43daa11872b1b25957235196bf116b999cb66542d45ab9d872edb0d7a5ebbcaecb16b62dba740942adb46300522c50d0f934e7a47503964e91e51532ac60d1c79c744e793760a91457c868aa3580b21b89eae086462361a1055312c8a26f5004dba7e7c9fdc67283a7dc544bcf177e328777507ac04a2c3780ca5f96335359f7c8d72b33b55e0c8b0d8cb2c4a245964e50f192c1d65b74c05bb8f6ac2b602978632d0b4f89401d2b74e60eae0edeb1850cce1c8e1f68410c2fe58f3deb4aa9c3e211a41e4889a8300b33739db92c35d8927f32788a472c37309aa20905c820965247084439ee406d83a81a40e5d4c1c971549452073d08b2f038330b4b0da24089829558b430caa95b2a86a7417e323d07da03f527fee09e82a5ce7dda8378ecf0e108da3b72f7b883e02552e42753ec819f4c4ff1117a245f96528777ef1e472f59b7aeeea87a3d05c383233d8864291e89c24c4710dfc3aff135aa300b33bf68779d9675d37f3887c773c2cc1c26a18ba5efd7ebfb38ac839f67a697401d36014116d87919d228be7aef4b5d9ecea494722639c97349d2996d993d9d75b707774b58724a81ce5a36c7c994e72753f7503c9bcc27ddd378a97e1ad569946433329f647e880ab46910c05a41ee7e52477f480d15ac44238f616e245ca61c276b133c54f1307b1926b1943a9c28aa41964e14ed20ef4872d2b4657e8a148a9c2d60e91379fc7c9821cc528bc435fc150e1d78f4820b5f111ab5d6948a6611b374a2c84bd7751d75a2b682effb3e2c4ed454406b2f88609658c2a4b16a7dc10a45511459b6092e2e0e58b4b084c922cfc4b45a3386ca8474d22b58b6f821cf804d802b50de6882e777861d3f266a8801162d39c0020b29b4be610a1da4600c148cb182285adf483f497ff6bbec91bb314c080fc9f1cb30a13a345f31118de25196411eba8a21d943c2e5e6660ea0bcf16a59ff46ee1ed37aa7a28f21b93b09a10db1f7c9f37daad4ccd1b2e6e91e6f4ecc02973bdccda094b91cb92b8ee988efbfa88865e796f5e7029daedf98bbacbbab1fbed197be8e54d639f2e79556d038824b173730a1832de5c309a66849238a0d54409b975f0eddddf4dd7452e19494bb9172834c6cadb204972cab2ca125f70b906595256cc8638edccfc1516ebe9b8105795251d6b2b72c05b66ffbafbeec7f5d6765b2c10eeda08136d4c24c103428f42dc86441637d4896d1c5d38d36d4c208524471a2b1de4227431434d058180acc04ea5d1606655577ab2efa508dab77770ccae255b7888eecfe09ab7ae843d54fbd7109974e565c7dfe864ca5c2637f15be41daab9e1d7e86ab109700549db0e0b4dc0b8375092b675dc2cebc32cae281ba6f55c24a113c502ba0eff8d60ef6e31010ab5618a865f3253889176642d7ef2eb30a574a19386b07ff8578c908cb48110cb46cced724ecc72f8faf7f1f88b1ccde3c92b762b1dc9d8951b1e34c9ef33726f72f5d9edc486b63333d853debcb8fdfe4e46d944d250f8f393a3cdee0b08de171267cc5c0dfc82309b93109427ae84c31852c734a6692a2100a45677da7d92444489078a056ddfbd19954810f8968a17c885b1402afc243aa83a0bce36cbae3540ad2a1b329e2d7486b599a092694bae5f086e0413cf475d28968f474466772cea76945cba8903aaa9822f413a8c5ce536ca50ef9713ed55ad7aa2e4f58a4f89eb2d46c0f1da6595b5d5e3613f569a439eb2331d9dc4d7f8d5ece11be5a961741ee76e326e7023b36d2fc38a7e85ae6301775b95b544632eae6bf5ab928ee2377bbbd3cdbc74571514da27a2a4dcac28edc6d5eb151dd33f608515cd4176ef5495b61a390b67a3bcd79569e2bdc53e86c0676565b37512a2ce5a66caaf8234784b5ba08586f7575f509eb70100b4b3a132fb39074a2ad703fd15977ddb94e0a4b0dc00489d6ef267b44eef794390287975655097c531bbde5a669d83a0b6da746421ec0e8455bbdcf6da13e2ddc418978ec8778ec27128c7ad0561f7b890e6acb96eb399122f455d589fa78355a959672ad9d3c198322aad210d4f321b7aad6dc2d7b40e4be97c5d3e25d6919c54b30a1d647efca1d6a5d890babb7304c48eb318fc14aec5b18cabca4d9533168d5f211c43a16ebd5a88fe744cefa4f3e295e2d5309c2ca3c7a4e3a2823db3a489f592467738e200229c2b441e2207be891721ff990fb0735e476c1529a953c4592a1c96a9af7e45ad24839d63d23fd8ccd8413c75e3359f6483fa7ed9e89c3965191c595cef4f508929a976a302193d67dd23a6c14d2ba4b3a83d1cf0c0bc2caf4acbc34820e775e588a851d2b6da47c1a40909efb73cb7307e5cd714336f37823770e09d4524eba92e7b2edbffaf2ebeb3c85aaa62c04fbcd6ff0908dff309c73181eaa254843e98936147b0b50bc13d16e4e747c188609c18e731c3c740f23a2c9df541cf419f54804727feda4963151a2dc05c245a9669524adc2e2fce6b0faa111787144abf8881097f485867321dae48b229068371f1ae2e2862c37dacd25ad7261d23299817039ca603d102e47dd0384cb11102e4dda072933e12233102e4d40a2dc7d7588fc9937373737bf39ce0d9c1ace713e76546e2815936a88fcf990a48e7e4b115533a24cb469daa06e7d1a5533da427d2a67d4af50fd7aa35390a88fa4498a44a3727796dc4d992ae16ba90873953df4b5dea24449cafd08dc34e0e638f843a2b3a0cfe84abdc13950e360d972c867d4076516548557886872045594fbdda5bd8453f471642eb1bfd209267ca8d1a478691bd2ff6e1e819b7f4ef6bf57d2ba7cdff77ddf57e4eda3f3a098c8b935aa96fbad65e9628daa054e1b4e31e660e5c1b6ad7b3c1baeb05282dc6fa8f6f98c7aec2e48a9d42b9df51c9765e69c5faa93c1548cf9f4d14a5dfa1e327d37835206bb8377c41c7765fe90c2980be3f06794533073b075db49ebdc6d272da3616ae2996692e16238ae7b2bd160b9733178b42deed6dc36d69bf510b39ec2ac4f5c03670864f5cec9f77ddf10ea037b1fcf1c762f672c964d27d36967661e5ed555aa57d6673e73ae6d5e92fc39c0943faf23d9f1339a475ff7e8216d52c26e70724ef1d87df6d091fd3917e7de5cd87d8ae6df95e1c04ff431e72753736ba91e19198e76f4a39386b445632895117ab232dd978969c9261effe10e73f855a3468d8336afd9883f52af77f51790d56d5eadc4f529eeb2b412c6339f07c68ba23efdd44f5aaeb4ac3f6d2d2c73679eb9e35794fb3566aea151c90049bd5e2885efb396e69946464373297d86bc762dd76ab51a876d3dde4aacdb5c31e63636977529869fb514b7152debb6b5ecad83f4cedcb6efb3962ec1ba78515b703fb5ac5f8fb0fd7db5d61da797dc4fd50b44e69883aadbb696756959cc6b2e03825a16834b006770e1fe0a3377e7ba3b735542b2f3b276f3401d8a0c104d9861824c7c020d1326870f592b71b85950028b278228a30a295a7c081d6078f242920b4bc0ef3bea3a248ee33efc19e5e82e122e879fd1fd903afc8cbea3eea94d394e3a75b7afdd59e2d773ce5933424acac2ea5618ca215073e167b80af192d169879d8561f3335f7608bbb34bcf7ace2edf840aeb73edf119759983ba7306967b97cfa8070d1e7be8ac8c66f02893c1e35b38c45dd781e99ef07def39c4e390fc01512faa65cfb3cba4f5ac5aeb539887852e7fd803d3b2d6f1a272df8bea1e11b7130f4cf7b0f012ec627ed78cf493f487a800de157ecc0c44e6a51eb4c862053f0081054c2a90c3105f6c63d020053e801f13255ab4b0a2a9043af04286068ac001aa87a62a68805919e5f99c2b69b02b69206883d591429b6650b1c5ad6b95be1b2a090bd6206c67a34983bd080604d060379a349c8fadd4da618888360445e8e638875d66a1a6e1e02123332c1104ede6528405c130ac1e76499359884586d315b41b0cab3808e73797349cdb37b761d7d6465debcfc8073bb6edb3b5d2d7b44a12607201b2aca204520625d8510a76b5765dedbada75b57e075377e6567abd5a4985212dc3c00cecf3f819559fd3fa2d76e9baee840e2fb900a51ef68602a7b024f468594bdb90ee19fb185040cb5a3ab513d89572f6b5acbefee8963c01860e7215a9d451ff9ddeb1482e32d346dfed5acbba6b436c34c83f23236ba4d44f8c9660ed4489fa740dd6b5fe8cbaa70c283da0c1961b0eb72d8e54a1039816d410c40e34d87c40e4e48a14a6190031c51359d01aca9518a03821c3cdc912970f4b46b8c04b16b52968cdc50d8c78508517232bb850210b273e34a15285132b1a1005058316347a7084348128804822aa0916b631bce081144ca294b8f2830bba7f4ed80a72ffb274513ac6107285ca3d53421eb917e99169db7223b5acff1961b160ecd62c48464e349b0c94b8228c17aa189104f7d8ad4953b038d1a4e8a37e461f934b0f3b32a23e43609f918f21565c2088275892a8a5d183135abfa3dad65036bd811a2e6fb906d5a74015c0d10b5442cbea48942587f157836c473bef3db8d447ee1d06b9cad57a221cced1b25aff6dc10362a07bb8d93454a17b8a70148fe0fb6091994c652dabe786c872709403393cd61ca40308275cc0210a8734be3ca83e857aa0fa12ea0f7edf57b9944a012dab97a00455b804a096d5571ea5d33905e8606d903399c72f67b144be32505720708aadef1ba88576b4c352de519eca771f2995a7f244684ff9f56bf7750ffd64879dac74cabaaa19ec4406745902e94cc7283263c5a4f90b7b36e52aed496b775c77b3e368953f72a459fe7097ef56929de7eacdf334137593a3e224cfbf62dd53a95891e76b78a5499d7885e9841637276cc09441f0ca486c9e7301567ed892bb07b62ca0b274ca82491ee712793e479655b240223bdd90d247a747965247fa04d11ca1f4a941f2493e19914f495a36650b08972e7994b7c64664b02305c2641ae42e64297a5ef8bd6faaebebd0efc3a195b9084af7961969d54109721e1ec3ec3d49f7341e6b703792e4442a46f2a561bdd4c1cfc7f72f0dfbdd0892249ec800a21ae699bd7797e07c620449922b7636e1c934996a2a454506106515a62999bd3b2753cb66909a39bc143e6999cf4c0a939866d24c62c28e37f23c68c58eb562b1325956c9c2876cb3a4050c2f904205366092635cf121071980392a4305b4792349e6ac1949e214be7085085bee29f20a11529a0a574337519f6ab3357513f599d506a6c08edd649b229d6af0c5d10f74f08216511e90032e515cc1440e5ee0c394ef9baf50d4c73b5163a1ee2a3cf41a7a11c1ba3f240a81e141587b17d618d600efdf85745761252a25508454f8a34a249d716458efdd61fdef92066b21a97f5889f8d48580e1c14740f5efd3e84a0a133289a0628817bc307164d8f0b3a4541258c54a1acc6683275f7ca034a730495a0b862e5bf0c056a38d73cacc72c9b0b03e114dd239b7d0a68df322f5494b5d0914a15049f81d2664080a2c487507489a0a4b3a13d245dd10c60e3b64a9d568323a9b1f326a9af81654ff30ac0f3efc38b7e4f9d60d56d27ac8a82c89c114537411b1921654b896c2b0c641b2c06041925a2e6130a9e5a5e3b78327d2f8c2f17b71fc75c7224872ecf7397722d1cb8a9bbefe7e9cb713703c46247699ef5b4401cc308a83e078ec381ebb1483bcf2183b8e03f58d1d0726123b817bc730cc8426c26122f4f68d8db44c36b9397779171e8b20c937a75dfd28ceb97337774e114625995e4e1146121c198952192753cac4073bb38dd7d8784f8b6ddcc6e63931efd771dc03e021dc388d8d1bb7a8db1730b7a8db173046b854adb917769154d8bd3790d4fbd79ad38460e37d3c6200841002c6f13a8e170e1c3870bc701ce3c0386cc4e0c031c731ef1b9303628c5fafeada1dfbc4b020364e6f2327e736366e632348ce6d9e63e33636cfb14632c58921a9d9e6291bb7b1c1638e0d6d685b16cbb98dc7ee5831929a73b0cd6b0e4455d7da5c99c39aa76aee893e302c084db671a0aeb9f1181ec31c3b38d658a59c1451e06cceeb54c4b1d739c27decdd1c01c763213c16a3371e9ec3849c07efdc8fce76ce73d075ee0038c87377389e1d17d714f2dc9dd95431e5ba3081e6dc9900534301876229b38f576c2e79c18270d9752ebb5caf47bacd287aef3958ad56cb2ccc3ca350c0c1f75eac91996d5c5ee69cbe4e6d3ce6a08d1b735550b2363e4a281b3e303ec1756e69e7382eac1ec765be1756f10f1cf91eecb03f297646cd5bcb387169e79263e500451f4b3bafa2091cae77e69d9cdb710e80833bf79e1ab54cbe8564ef65cef967ef65440610e52b693937c8c53c47a20f1d9da65bd337917cc8649e4bec488db2fc28cb1207cf2f37b34936cd24cc8d61e93b144fa05f81860993713c0ce1f29e480d6ddc5f8a407e1b076a9c73eee6e4b42ce7e3cc39dc5d97483d77b0deb86e5c1816a4ef3a90be2be7068ff52cccec3ace893250bb5e15dfaeb9620fe17e5247ecf7a6a48ed8e9ad5384d871dc6e8a103b10b5716506c01dc31b772c125226f62a744fcc2f6f84d2ff98a62ca64dc400bb29cea5e8a3fb381f67d32d2abcd1a50538b8c190c41619449c831616b4739803246de73021973be7b93de84c7ee74a3a5b3d7103142010e1a456a3f17ce720ddb93c74876787b6738d567085cb195f1c39a1a145136e5e398af3226176dd5c166606efc263cdaedf9cde51671c47fa9bbbc2508e8c834255a17b702e732e716eec8a9426b93fe3441f393eeeecf4c6e8ecb1e3dc48f7cc2e7170289d21cead995e290299bd4f64f67e1569ad5895736397620e2ed232393b50cf29b3a9093b7bece36ccab728d9a56fd184fecc8567978305a1a324ca38b3d99db94818fb8cc68e9373fad93532bb32cb5468d9fc52298e17ce726e11d9e5a2ec28a15c076a23588596c917f99eec28a18ca850448244b90809999e28d73ba38a5a26efbae19c9aa6e079639a49b8994828218bb4f926489ffee6148fb265b1533ccee49b13e8fbdc25d21c876140385c8484ecc223779cd713e5ce39156a997c5018f60927074b2a57ba4766f999656a994fdd03a332cb79bbf54cfefbec685faf2794ba1b1cc22854dad525736fcfa3d7533cce2ca200e68a53a8ed51a1ae5b03d37bef653e8d52b8f7f3de7b655cae145c53067c9776feda39787363383784a7441f5d6bad15d3a750298e9f7bbdf1fa11c7d18f995d97edc3f3f1e6f463088fd5d78a73fc9cefe09cfb2be7f57a8391d09cf3d86d25d9103092ce391f8fb9c7e86bcec1446e700ecd7d0323e94c1ffb880323e97cf3181e2597dc8d8389dc3ce70613a1e7720e46d2f9de503c659847b9ba6e0d3015d6a84173b0419edb73508a3f709ef3be37780c6bcffa38b7e7ee9ce7ee1ce7e6c4766e4fcf772ecfab277623df1ca461cfe53918c2cdf9cd8d1de7e6cc8bf39d4b80f0ca9e8d36bf08d0c77167beb97d9e4b80ef5c1e9c73a02640831dee5c9edf1ca8715c99732ecec19b3b86f9e63cb7f6ec3738648ee376beb934af71659ea191919189394dcc6b3eed2be6b0c31ea37fdfdff80d1bc7211c0031ef39457e4a9137e7def7e6ae3b22c9ae9b7aeac2b09c737884a180f3e67270101c2c5bd6f4ae0351d71d5db7a139a78dc2cd5d6f9ce360580e0e728325eec7eee83a0d8edfe07873afafb9e91b1c37b89564395c24ac694c04c76f309110de2fc2e12261c68165cb6ebc86709a03e08e35e353d104314808b8b6ec06feeb8d471b58b60cbfb60cd313ee652ec513ee657ec716b20c9d62109a65645cf764de57e6af7b326f7ace85c7d7a5f823e663edcbe0ffd57fdf378d81afd76bfff5fa1a5dbbc69b3b96f9c4b02031a78f89c50ee3620e8b39ecb0c3ee18bb2be630d863f5d29ccbf6d939fd70ee976bfdce05a23677c51c06c363cc15de5497ebf4de8437cdc99ccab83091d8633e565c24cc310c3b8dcc309b67eef8ca34b7b923924cf3aa0963626a2521d399cf048e48ccfbd29c5e7b49719130c7c4e02e6addf98525bfbacdd43279f1f69396c910cf1b87860555a9cb244bef52f481adb3a97bbedfa2be3bc1cc2f2d93bf02832c593a657905064619e9f253ecf0bc75b1236592e5291326a7493b972a3439c9cf2c4d5328cd4def8f93cae5fac7cc554a1d9db9db4b3bcf7da79496c9cf26ea33917690b29c482d93e79a8ab88db1a40633a0887e38819420ecc003a530251040942635273110e30c32a47cd7e4db487edee467146ddae9e9022b603d388404f1f5b7815f47c5c284540fbf870fdf58488987bf8717fa1e62d8144a5d1586deaaf51656e211c55c4660e63417d23a0d560245c8bef599cbfad68cb5d96258d0ab66be6a5e83012d4b410258a86543a8cfa4d9d45fc665a3437d24adaf3a3d1a07953031d0b2aac29096b5d87a1dd294eb1bebb4ac42b11deae8ac7a501fd8f42ed4baf779cf7e8587bcdb0fadde3a11adde487d92fa21f52ad4dbfb263b3ec36eeb36d7d678bd06765fb7b93532d70892a7620db2d1913a64c08553f451438ab01e22c5ca2341535ec2c07af948cdb0a057cd5b8435ae3ed824d4470e913f5eaee792e4cf08d9bb1c27d2ca019266838b8a682ef3a299c79c8ab006b4feba50ebaf156ebdb1907d0d1ef2545f5d88ea2bac048a12f0aa0b09c587e094934785982b7367aeeb86ae1e3ae0554f41bca47941de817a26d159bd088a17bcb0f9d589684392ce30088a5fe12111ab4067f5a0a48943e8acce0391f9c84bea98ff4edf71e285098557fdc284f0878364eaf3b00e4743445be68b9442940851c2bd9334d96b72574977eef42aa96f4075400713e2fe5d9810ed30572fc51f9dc9d9d4d61dcc9226695df87921a1889588ef4fac048a90f8be92f9f0921686ac90facc4bcb7af7aef525fbb065ddc79916b61dacf685550c8b00eb7d21f6ad0be9c76025acf75b58091421d6fbf6923663295e6a1da8ed95b47ac396d1ba773deb07a500d4bd041686a52e04fbcc41b18777d240996135bc7aa365ddeb9781a8cfa4e1bc9b46af8f32caa67bcdc19b2b69383336aaaf7bd79dc3b576402deb5ea170b4ebb02b52eecedddc3ece0d656217ca7cff05314645ee600de527034b5fe33817f629828fad9052d11fab0c24c5d24ff10807832f773e8e7c87a570508dea83e5685ee4facc53a0dd6b94fc19417c07247fbedc5179033d11c82a5718d8aef1d85380fde6520cc2e96e6255084b028779784458500d583f3c50c3ae12f1e16b5c2550b82b99b006ccf785e6c5879734cf01537480070bea0eebf7ad3e8f06529bbb72ddd6cc657945fd3004c3db9775ed6ddd982b7363aea4f5ea12d56c7f2deb2a144b3fd6216cd1c4b02a4ada09cd2474d67d9e88d6170a566fb08aeb271e8252b1d0ec3e710974d65d6249674434a2796527856d491df574562fe98daeeb570cc023486e8cb596bbdc1948019884f9346dcf24d8fa136a6e1162e94cc847e50da1b1a8248d53e5a19c850a9a91810000002314002028140e88c442d1603c22a72898f90114000c8fb2466c4e1608a41c86619041c600420c210010036008800c090d0a008fc363e5fda3f1fe768ebe74f5e756aecb1691711b74d60dd7f93452c81046d35c994e4bdf174d8b211928df0b29cebfcb2ed6d42e55a5bd72d4164549208e9f1d937dd335f6ba2fcd5ba0a19fe6c31872f356c469fb746204b6efd00bec048275889133e7684ba2e07432ac97dcb8214db7ce6a945b0a2b550c78e1b0728a5b29f3827ac41265afb24dca18ae6ebdd2363f70c5614bb90ef9764578bb202a582d900ffaf52a35afbdda438ab94ce85910016626b54ad86b8d962ce3878a966b0f09ce4c6ce3818703c330c411621805e5cd6af6e8d62460377bb14736755a58c4619ce7954ca0edd96b1f9f4d8c1b8a5f8293fc566d212199de338cdb1d1d8258acc10b7733fc9e0ca4972846087c24f8323acbb13211e30a991b87a93652ffab53a83a06112ba42d54dfb8f614949fd14edb747cda42e014a93535c2afd8e5405bc8bb6c2579a1b26cfbff420af8b6b0c39a727e10dd07ad9a1a93bd01dcc7240c31d6b9c6acef03c47480db4243dac5f73e2b7b2f5d2619b12282c75362609f57abcb526c4960c1f80db690fd7be7f4d4a2610c909f3c32f7594ccee3a9c06d5c9b411f98f1900f97461497299c2d3c91673e6bc62023ac1d8ada3a78a6a323128802879c0d172acb59b07861246c5bae3c51a6609a3fe66d28559253aaeacab786a2114d94294894888e0351be01e5e4686b2a8ac604b132385e55f4dc49c72071e4052422a5029bba9cd495fcbea65e401891d1b0c6d69523807f98fddcdaa5ed950f79b1be8e74d2ca5251975a446b507fc0bd78f197ce541670200407e68298d5a4024947d3e4f39648a9f70aaab386911c06d8271636370aed099b8550e1db4a4d870f8a0e9c0bb8bc7a6b2285188a105566432c5188e316f6b4faa4c50d4a02297ee007a480444ece37675df0613f94f38ec5fc035199015f30a6f1d8f7073c0b4d8b55b793138080dcbb19018b054be462302157d4f9ecb161196afdb6440683e36641d3c4657608760f4c5eb8f47bb31e9e32ddcd94b2e35f395ea0774360b0fb945dbe915bac23b5ce91b0a4b74d26c32a84c71b5f791f428d14c24ade3519999c4f9add313817221c5e5fd73ec5b8ab699c9bd019212bc599f14c9b33c2f5394668f0ad530e54f2b046e2562df3d693b51a136dac89ac4cab4f49ecf4b289a3936c580482b6c9d02b9797202928152c28889ab1d1c74819670b7d44a3a7b859a6583ac1ab32a0188ef91b122b7e7fe541ece992248cb64d5d03606f4cc6f7bd530ad6586ee40a2f410624b4edf26ee5da33d9c5c5a51c463c0eb3969189d4abccbf72196725d1052634462f8690781408a3a4e769401d2a88db89b27ff160ca6921504200c93ded22d64eb83dbd6a4a09a6e4eca35aafe7a668bbd8bf68a1a7d001b4a77f6675003edd6a79b86f27f47580f80fb238db1e52963d3d4c79d580251e9582aa72b996d799f14ba96d30fd1f9e644251541250bc2123c68110981b27edee2309ae1186c316357973db37c1627ee104ed5840f6c3206acaab20118138e0d58793aac657a706cbdcf650edec3af28ae9888af8af39e6955ab7d3bb2fafa305f4214e415fb19548b71ff51e7ba000ea5254f91f8895298c38fd77a0af0e2870010d01102ea66aa6fc1ce5d42a64f19d4c9f72e6c6834cc5dbbdacafafde8b2a4d298bc1e6d9092431924fcdda87d44d1d16a96bb7e177d1273d3622833b4eab8b3910e8888388d4b51757278845477b2e943058de1fa727b16a96fe5a34f8a4f993514af057650de63508551fb452763a626d6a0a4fd1ebe161c76da6ca85c8c529bdfaa0bca9dd6562e4e418be716810aeed36b83753aaf882eacdbdf5ded99105b9500577d21596d19fb3c9ab5ea5608363d12f950fa2da1cf97c4886947c850846e2e902f79e04a2eadc8b0d9118092ac8fab242b282ea74e5f7eb28dc01e96a7fca1a79894b8a2624a3254bcccc909d28b880c8975e3987c518c05237d6afdb54524682faea1ada7611519892ed5c06f98f5383032ab616ea84f30f21df3f70316a2be889c64800480254d1b9694455f824538117db5662ac3bfa5a1043f90cb28d8a376629155002708e781b7a4b0bdea78aacb15c97cba3e1ba2d7622eecc3b05f3604af69149212beca2795a0d64608d872be91a149eb41c0f8c19e26cff3e67d4580129129ee170ea5d40b528e8debcf0a7ca6836f42668ad4eba1adb90ee8afba5bb28bc676711d5dbe178f5fdf5d6d9c049ebd720923f9280e33acc4efcf1139c0397630c771aa4635a001ebe69718dce169431c0a3f72f6acbb955fa7b41c6b06f2d4c08d7309191fe84d206957bf287f9eacf9bedf0b19c9a392716d1eb97de9a3b16dcf8afcf327183e75f395480c1a50f942fd98dffa4c7404941b47ce62fdae53b4f18d0eaa72158dab250594b1b3c0782d7882ef38fb1114b542fca212048c1193603789336a0ac1b5e4213001fe54bca6e83efc4004327e6c3199a535e5e1096227109fefc4fca3539b3f40768126ed2d90c567d406876565332a0d9b499fe64cbccd49d7cb144f38b8ccb86e7a7b8b067511ae033c6f66772dcb4edaa8b47c5cc1d0ec24b722953562b01914408ca97003773573924adccbfe4accc8db1cc829a97e1afd005a8c0578e53d88ccc1775ba5fe47feeac16a00bc68946708fa099039e8ad5970477672e3d4eca1833648a5c7e2ed341bd3daac0f8306b7a843423bbfa92d5f853d0ab04381c1e7cb1d750d2600971a96c09538f3141bf9606d15449aa5838b82c661058e4c60503f83c14a4a31b44082582de27b2c6f2d434faea98b9d37f77bc0ef2ee88030d241a073d651fb35bbb8ebd27fa5dda84ac95131891cbd9625a15f4047e8cf418f0f0e4435b514ed1ec203932007540d14020ee8e557245cdc77b0cc7c77a6dd45ef72cf7dba6945a174aeb7e2b5b057448773d9ca138aa43aeaa573d7ebdc4b827c820aa2816f15ba188665681b7e934a615c511a1276486607e61aa799552d730c3ea33b8e87abba3c469ef552a2ecf830176f39f25e135e4f93e95911a1607962b18473a647e2996fe104d7930442d90788f1ac56dd3b656c26f00a828ded11fb11b62ac226998ab8838e90ce350fb3e6e721938c9970465c4852dc0811db648d8be148a46435aeab67de98715c5a4330570c579166fab6564709152f9069c71032809fe23c748f95023ece78b288577ecc6970865b42b3153f827c61737ca9d798d239c5dfe955dcc7c3e30ad302d06af86a2f222d9bebc39dd1c4b39b5fbf9ee98061b88d2a817f3c8ccb62f558728c47e50768615c5896c97ab299b1a15ec7d6517f3060867605851e0b60829ac3819c46be2663996fbe51911f7e774da6604289c5bc96d0a56801c3938c2b7c45150a2b513e9a30f149445b34a3e6ed1e0eb07831d07f485f9fa0a53e2bcdc9af00628d42456c016c77a4d71ff2f7a21eea3230efb1a5694b0ceab58918ba8b7a264f43439e138da75969b5689ecb16d07482c166d395abddf9be63e3611befcccc06f62ce071282c617ea119589f29f77a68dd5f0b190ad0c165a9fbdcbc4abc9b1da952028d2fe71ba0efedede0e28045f6d19b95433d37bef85c09cb7b0b671997b512ea729a0f9a908c492e6eef0a2227c71f9dbeedf16178373e89de262fe7a065e0d1a53de3056cdc9d605603e23c091ff6f05818e6807b89c485d06547fafad34a396cf10e2640731321232295fa5113b9cf666951b420abbb9b35edb19f650cde8a167f4e8230b0419135ef4864b24c3192f394bdb3da8fdda60b037ba053d37f7ba349ee11471b82902ebb00b605416c2086562cd834f6c1f0324e65e5dab2c35a1c23cc1d94e4496cbafe88bebee243367ce433be224556854b415e3d70f61a11ea7571ec44090244d9c47831b8b184bcf3d458b212a32994bdfdee51d9644a1ab1d1cea4cab773defca16d49710957e3ec9963452f76c5fcd692c68c357d0275becb7109cb88741839e3e88ebd2af6e1e85c93a5e0a2715f011977292dbd7d618cab54b28359bfd5b15c8809ab27c4ebc11e9aeb93804566e4ed1ba93f44144891ed965a768b32b46bc9908f0e817bba6c4853dacacc98d658fc142908532adb0fc785d853208d99b72203d7bdd02e8820b9320e698abf38a3e3b765d07dab472804a23c0f022707fb98ad077f7f4178a1d5c9c53c1140465634eb11aa2d4f9ec4af9f2e20804806cb8e6f5442b87a0f0b2a4fc623e2d9a8862b90686f29caa28e055f81e532d0a82a00f772c61fe396b4efd78e082fec455c08bbb7153d59556fa0c49542a93308f0beaf21be9b110d33d7e24ba87341ef23f72b6fe0f11c0580c9be17852d0f0e197650aa574e5140a7aeb44159c2a022a69682a4da4a2a50aa5d87f80aaecff078802dba38d3094fc7c6a2f9de618bb29cefb9d606c5301d4a43312864ad4421aa1e649f7419c2abe9feadedde27c4f818dae73510d377617bae9e4e3bf2b044b0b9b3306ece505fb923da2c0ebb646d10bd104a1dc433236e70b7c2e2a16d82bcb66ca5e07761057054b6ec9b070a87cd10aaf146a55477c1e680e1033261ef0f01e96eb586b2c2660cc61ef756a23ff4c3728e792ee85baa0a0147650b8be039a03a8a883527045973ce6fad29c27fca6b34ff446b46ccee2602a0c524cea9108e35e80b538e4dabf422f6e1e99414ae88ee56d12931fd078d3f7b09808535150967e5728e108dc8bfe30b8608ed1f721ce46fdd90c6b5557fbd775cc0e615419472ea37ea5e45ff0c8faad7149cd980c2f25f585fe9d201eaa39b501fa54cefcc62d27259401e2947cbe33529789d9a72eb1092d3059a5b508cdce37e95d85b6b81f0072819028ed8212291d0901d9316c149a5e13547c0cee5ac03002b1e8428f90289605822a09782e2128a1db6f64b8b51c6876ae2f8d0faa405438ddb1116bc513c451569927ae0442401f5c0e63ba0dc6e1062da7ddd0290ee811e4afc0f7c793928dc438cc5d162d12949277b5029d41a5969f95d26c0177f2dd8307d2af79feaaec3362a343f1ad253ce1ae10a2e26b99b2fa79a0633445969710d637df9fdf02e05eddac728614aab845ff71f1f4eb64e430cee3dce6a51dd87333cf61f42208eca7552e318da689270f1fecc279e4874b1c044fb848bc357fd2345a027b36affb24432fa19bd4d1730fa310498e4c3f86635e05aeef7be040576065dd4556002274faa59cd0cfd97e629b2ce512bac2cd13e8d2c1407382b7dab831bfbea1edbb3409b11aa06435f6dc78188b4609afa4183bfdbc88ad1af82f54cf85fc66da15557f8afd7146aabfb17e8441775e73b23a2aec2b51f560c8fd65a2aac0de54167b3f6881e6e8e162efbd78adced295d93d7d60a4435569f4d03b83aeb62f681af139d8106980c9079ef2a177ce49586fe4529ea1a3ab68b67bcf2be5dd04404cd6c3daa0a9479ec7ea440408d0e2d9b402eb754a88f6d16d95bc361af0fc413931c10303c769ac4e4e1a9ad90a62f0e3d79c32f41fecaa13e992623108b1367734f46bf30c9d3a9950f2c861437bf1208b756dbef0337c7c17193786f4eb9c2df344779213e7c65d35e41e4df7bb5a37ce039a7e75521ffb3ef45aef6cebf289cdb5130c36d75827cedfc39a572d10a59b5178f2d9953e41818651724c826b23186a3f4e32fad86267586b417bb90fdd2a549bdcc8b7d73459ad12c0eb45d487b20f40b523329af0df8f437f03112f0a07ed98bc769b4b87d6e821235615bb680e9fb798f3e4deac35d3ce21d055387b769305324231a44b5139fd58c61cfc92041edc7efb032f0d05f7576025ec84e8604a36c219faeb68b595e1ab1d17379453674d0994e78712ce64b97e4d05899f08e952454e22e48188c00eb9863de582481f567ec25a0224b2b6a446c465e368512017274bd13c2a7eecbf6c80427c4918573dcb18b4f1b9a6ea9c07fd7d2c261ff9d9445c7d6788287c20f18f4bacbd7a7ad45f7860b45b27906aade9288c5603104d8d217d08396a33d339316817f9af5ac7d9324e256dca99927fb2237a3f5161671ca800d941d9cf760addef3941458c528dc57f2ce7d1c20591026b2c8e70d711397f4eca3f59bb7b9efd6923b7db68990efae0d4ccd76a4cf8f9475fe020ac67e5424bafcd25aa4073890920ef58fadb28bd1cc5f77f434dcd825c86a1067345e3ba2ce3246ccc82630df34ff085f20568bc00b814622e8d3625d24c22bc1e514e0be61b395d5caf2f6487adb5c4cc064fde41e4bdf1d9468e7647a5170f41970a72e7004b15d18b1133630ca7081aeaab57525cff91e05602c87c3eff3b75560354a1fe2c13cd692da87000cb29cabfd808f5736dabee0a20cd271e10baf33b854ad9c1639a5f791f47c0e55f244b9de43ec1c23648364e0c8b24320a3601a8bfef3770f8f2ebad8af96acca43ff4301bd3ef4c5ed5c9a2fcdd840dffbac72d5fc008311471fdcac9d947a34441c853d4148548fa768292834c9f557dde972aa28b42f0cf2b3d688b53d5071ba5f5a8bb37132dd34dd51aeed46697d82f55d83a6dc5d15a4a483a95702513bc622d046bd8cfb35272536a7a599de4200e51aed2fbba9fe9097630e3965c832425b260e8814deea5decd34956db2753f32c3288b293af39e136e7758aeba0ebd7b3cfdf31b21f47bca59485589cb0e8b5ee8e5a63ea5764867da517ba814885a726d5b1fa740cbb2ed4f638e876645891a5b9f768a32f2a03e052b3b9eeb956635b82d3f9c55e8da481da19539b20a7b53a4d112e74dfe24d2a321a63184a7598ab02ea281eaac6b231c6cf4b3af204754c33509d491d7315e0b7bb63dc543b9881531974dc59fe78a2c7b5e17fc2b03ba0b92e22d211b8b381165d1162b1c0e28760f58cc06f06a29aa40d8b39bab798ed20b6b795e95e35f2843c31b4b03e4729d516e6f0f1335aeff9c00675efce84790a842e9e0efb35f676cc4b4699a0cc33dee81ca260d3d1a072211004b41f271b5dec2b7d3edc51121ac531302b5a32c05e8486ad1913c1fc7811fa2bd4756e8cb7904cbed42122c3a4f72460cb15075cc71633e0e1f42beb25e7d55aea39bdf6abcd01c5fc879b51c9ff0a356bd350fda381ee7af2f5ae65879f73c49f29ebee93d029cedd46d77ff03074feb0cce158b0f0004a1117a153b1745c6f137d970c07b9419e19bde213d227ecb4a14e5a6121f103f1c95216d9ca4d342f8401b99d90a45d4e73b7292a01eaca0d796f9a1c7437ca4bf47320082a3ba2b73c4e9f1412a14e1cbdf03088a13c0e4b3d042c4483e29df59b9f2c9c50a02160b75b137829f14a54d9b32f5eec61c3455b068a184d420be9f868452deda1632a01ba15c43cf509f52d97567688c4b8e90a21580234383739748853f7a5c876fff063e6f45f52ab3cf964f5ee469c91dc47361680ab21f68554dfa25a6efbf8117ec263496d9683539e25c0df67e6ec4e052b6cda3eea7980cb5ab385f2ed30782bb1458a5cbf75c1b2981770cec8db61f1ed99c005ed4cd4414bed07fd05187de3ae4fa999c5a45959527c0f49366e5ee1ee1753272d4130859083e5b8de6f944743a4d86a8b591b184ee2bc533b12fee4075e97a218b3c91ede4ec0123130efa15c34186da611078e0e7045701794ced1a9a8187a24af395cded4e6d3f293573adca4bd595faa4435df00e2b7c0cf943364eca012485371096640bf23b07b199a0ccaedd8ce3642d5ca89fdc710d77efa53e79aef536052185e24de422c161f66effee381d7f52f2d5219ea6c5c5cafe1e5f2e65a0962c57a9077cebde7e4bcc334b9c18bfc3d698fd6a300d39a6591bcbcc1584f282446606ecb4254219651e1fa8df195b419e0147c6d4345b936732154aeccb5f074ba0301b2d53f241f25ba89469c05c01448043284dcb53bd570895341970f57ba0422fcdf1e74278789b3ce7424775152204da0a21146878b927e0bbc63e8e7f22adddc11e72385a5d8ccdb4235842a7790cd9099247238194a1eb2d2cfb34b9fb1214b4d12e9b4f9eeda9f02cae30d7183d2e72c1e078848bce6444141e15e0f13d5c26e09f0eca5dd99f0b3b0386116d2e7e70747a07915a216402bdb3a0f75cbe74c00f4cc61987e44bed4c564197aaca07338f5a94321503da5ba052df028961aaee39845e571f7f279ffbfcf6b98ddfeb60d0f0ccabb902d092ef6697d53c8017d23a258e8a081b183788d63b188a649aeaa30cbd51a7afa668a633b6d325487dfe26289c8a5881924f403dee5b10e0a23bd2920a912c6365a2dc76a39ee6e2dc7489a907e4703cb5f4422c6b73c1f4d56575cd40c89d69e52c6341d11b1c7b356fdbaf1de250a0175a41174c823a78bff73594242b102799219c1d04e750b0242aae6da90073470754befde41475f89ea461d0ffb702865aa9f8bdc18ca2eae7e61c7a57fd56faf7ecfcf26a36fdfaabfbb8673dbd4140027f490d87d6ee60a71b740016c43f53d9b87a868fc852779f09509a23b2d3990eb83b368e9dc9a0b693cf293d5ed02349d811a1fe6cec2668e719fd988891d4746f1e6bfcbb24ec3c8fe8ab4672c4a8758a10ca184278faa486c6e110622040c3ae20167284855a4646364af4d0e69f169b916a2a08290bcbeb3ef5a1240bcab5721630ad3238b56f35584cbc0721300c8c9d1294ea1d55377540a1e3f72048638fdb1481681d3764af8545766b529dbd1e4abc2a9b0ed8eb7f887c0af05c67a8187910e0ce78a54e7ecce08e34cc6d24254a0c494ebca04b1c9daeb43eb05bfd826811f8f61b46606b8a6376ad29e1255c5f12b08007f1fd2e2c66d9b6f5e87dae618219d76aa27a5e70f76d6b697e3ff9d9583c556418f6a31af7294c990314762d94281c97ad8759485d0d078a39bf51ba1fa2efb1e31aa78571d53a302dde9d87b258dd66511e1043416e0ef3e4b5e0d4455f54c367a625276f05581087608f2da44c5f9856dc0b3c8866897a4f102093133f4a79d4b350d4678e72e2be6f1ab01fd7675bd68512815ff792adc3fd5d56c620f6cf980bdf3c65af54d47500429175c8c2d04d0131f87bd8daa54d8208c75e881dcf109b1fd6532886574fe1549f614c25273539b8579e32918d9104221d7397534a4ca123aa6ce3c14eb2508361d1134983a18b94365aaf6164c3b68a68180deeeb86600651c0d48e500d3e5e7a0a1b20d7ec7203a604def3fc5130a8f3b193f4fc87f79246e7b0f2cd4fc3441231a8e0dcca4452dde4f79e54a226816e264ac8404fb3c8c416eeb74559c00eeade4f671d806c62e5a0eb618568b7595c9bc6edafce8f9fbc10847f8a7ac0497b7176cb3d204e479c6c0ae099e0f403d14d583151ba892074b750efb1861c8e98e217894e6dfec1dd8713297f6bea828c26080cecb28ec63eb58b469ef6d719221e21ed9ebb129e2d42cdd02518686f4047c53ee90d7fde1846c5cb5765a2089dd5242d7538e8a009b4689f1323887932f990f54156c3aba94893fc6010e6128d74450223d06b78435a9280a6108a27f80c6e74feb544e0d06b176a7dbd76acdeda6fc0ab93df6b93475ff5cfcf7ad0f900f1d77440e49e245e9f157f167a817d530c5e916ddcd711de7acb49ca9ebcadab784f0f1fd4c478cf4a7a178df19e2db60691c3568113b2fa2ec73ca10db3d8394871f6793317751d2beed6747ab8335065b6d2f6c44305b3f1ac19148b6af332b39b3b7d952aed5a4231cfc784b7d6556bd4d278ac6265df363d516ec92a44f25ea4b2ab4b68afb1892b18a44af49b83e0a02d385eb811105f9c3be3bf1906fdeceb9abab4dececf89361c38fd0eb687619da60d9c015ffcaaaf79340b4fd4e51e70f2d3f2a3f72cf9cd2c21b0d60dd4f02ae967ee4edb68f721886a22142d6b3560bd8140c6f6537e2b2e68dcf55ebc009d3fea68ccf80e75a56b0612ecdb10d43bcfc44271e2bd0a01846f497ad371ccce67cc2fdff8091f0eac1d42ec632300ea0f21fe08833961b1f4e20fecd7595170b57029f64b27e70fbc36c2f613035210f936172096de4ff706580158743dfb0c62cb00154bdc4f5cefb620f6f14c6900b9f72234f0b14a47c74456a49acb5ddb9da6dfcf26f61c77d7c017eabb0145684cf9399a1efcf19dd0ba5d574c6a78de7b9f525edd9b40ab8a83f90f9239206f2c9556012bb51a0481fe363e25371f355ee271d0034cefc6a477e5f872776eb314bc8641fef157acb0dc068864992c75216dcdbb038b9bbbd2532934336720f7dbc16d720f90249a1bcb55aedeeeb80000843afbc8f4be38d39168a754a69b2d3e4feaadabe20512d22d3f98019ce0c462b3177c659f9af196171d21393ef89125749ea1a5677435df2666992cb21f2c271348924c23611b5bea8ef4be650aba0ca7bfa6cef0aa2bb2ffb477f820299ed2fab250f9d73474bb26f2f925bd7a0f8f4f3546249042b742e7b64cd063570d0c4728a490f2e94d991aa364b28e3fec6a324c61d657b7d22e02a38b7ef802d44ad4cebc840e4503576e6f237e843cea5ab7493750d0423e3b70f5f5220a36399ea1fd597e2383dc1481a7c9ca73845561e8fe782fedc133648c1abe797bf981022dcca040566ed745c568d53625ba407bfc4755db33414c0ac1caf9a3c24d5b10f4c924dbbaf0ded27a7b51f27ef3e39c8348c4462da1cea7a67a62e33003c40e1ff81c8a576c2bb630e7e5ea47c936149392dfae66c828e9a944b70f85c5d5641f685a6e5cc080832ea2b06149f4498ad78c0096e36fc59fa7241379da8deecab0fb04b8c776f7aa6697a170d048f1c2b06d002d2f5599a02ab1e7cb262d21e87ac0c9a958aa3acf6d0263adf630d2c83b15e22f3cd7170e6f3f1ea5676e6f9a1f03f8dafd603bfdda23b27d2d151574065c7407988a9dc87eb39ff6cca418473158ec073bec67175ac07e5b3e1a900c3c4d3cb5428269ae84c2ad5f393e2ad7faf952db3e40b47ff3a84f06b37bdc484466f38e1c8234606dc5741361a78cfc0f7d4c18b2b6decfef68015017dd005bac5d9ba5624d56494a2c6333c95547ec8757a7324107280ac5fd5e008ee79ebfe368664d560c9deee8739ceac9713484b738d9dd46844cbfc522b66ed1004a82e193f5b75838f2e63af8e599ca2aa5ef92ba45e580eac931471b73607f9b08bdd087ab00610a220f28c3a88f640550240577f552e47f75b8aa852a056e2231db3e6f9b893b1e12941f3126303e0582d6a17d5d792560336560a4432cd255933cdafcee7be7050023ee2026eb7892115c291dae3149c9e14710454ed7ee16ba791a699eb7135885ff39b4d5f623a25bb5f1862973c582c036f9179b7c17c99ddad7ed91064424ab28e6cdfb08aa53515dc52e1bd7742291f84b20625f18d78d0e0e7d311d33a10f741c8f66a4a2a8037642762c6c868b6efcf1d4c54e3811a4a21074a85582365f206cffbcbb33062ca6f8577a7426841f04838f7bfbec25e3ec99d00510295ac14c5cb9e6611d39121aac48d38b22d0695aa732cd68df3aa072ee2069466b3d550b1c241b93d8f5af01fa833a9c888b9c5c77c0d3f2abc33ce4da374e757c8399fe657da7c64792426040ab41b389feb8d7db96a72a07bfc9612007b45f964f54062897f640ae1c64306a0cfc68a13451b448c2d14d6f23c1200b6578743815650b38b404eb9345c77d95f8b8c3246965550efce0f539aae731894ce50f6d809fe15335453326823dafb60acd081d6b608b6ed88902bf82f1c3bb41243375fb313f9a2e168e04ccdc8c9428c0f69577a1f7f06056c277910017e47c4f18e78775222e1c315660f1040c391b8d75694bf29d2ac8266dc174051d3a4bbc40ff69079bed802814468cb70e6c914fa9de7b9c65200479d83acd13c7d5f1083fa654c92d5fed42c6185fdc651d30ad094e63ae63dd3a211de6bf9918262e1e222a16feb74dcfd87591cc5c77874b09aa60415f60ce3094a231ec4d330ca5e47622d35f30bf6e8cc73e14263be97b788283d35446943e81f1ec005226f84cd1d0b5916243631e5f508623836774f83930ed19093a411b0f343432251215926993ea8308b6144fdbca8b99e34026aa81213b7fe3fe45070a530e71f60818774252e0d99c0681b7a61b6b50d389bd0973fb3c17d621b98c95fabe0aeb7e6c3ca2820143fc59a9a1680308d32d07d3279f64922ead7ef999afebb2fd3788f030c01721a4f5f4e00f281a76aced325375c006dbab8e1821f52fc470c368114cf71766715161986f406bc4a19f9b3a580c4751ee778dd83394cf1109ef38ec140ad80c6684ebb63d246371f400678b6e740e7e7b49656ea17ed607676235610e5bc197d9b09c851a6daad38305045e9b67c97b799809c2d51c6d4476e11f8f30bfb770ae93436ffb901d1355ae0d8e2077f6f0a6b4e76a4fff7c7d25cd4a1b8787702ef18aea8463b58348c520fc114bed99669ae74939f156daa21b95ba8296bc66e437cecc1f37a7a64ecde7f53945acd360e91b49d4f673dd17bd353290f6b8328b9b1c221b440143c7a300216fe639d4c22cf2df67f19bcc30c72179420bd2bd39db1098e4d96e87b3710b52618291549d709bef52102be954ab65dfb1c63e12a8bdff560071980fb83a70e94127c0d563664094ae065178b4bf787753104ab0bd8010d9f88719ad60e9e26b37409c0dc39d1d6072f6d21e26af534c249825a5c1221a94bc8193a2ce18c37b449b955a50f5bb9edc0252ac059c8913a2c5d5405c72124b34be688900b90f42d6abdbae500018bdb00e6e2aa45c92c70578ad7b14a9c5a1072e967ba48c073fe4be07ee30d512a6b3bc1db8a8014066ecc2bad7a1badf26c086bf559d4558687380543d0839999084e44f855294c7d2e714fea0b4940e88277502c8fcaa02c8cd11072781d5e129e0d6fcabe9859600e787c7ad9daf7645a19fdf78a8207ed448a9a411cd5bfd38610077fe801e7dbf4027e115d3a46cec477d7871795c9f42a7c4a33b2caefd22881af5472d9a8e8e8afe9fc4120f0147ccda8cd0e2213e31bfb5d48dae342f24d6df84aa92e2f15f20d0138629231d4f20c61c2e05df5468ff9f056a3ff5cd5bed50ef8fcdaec81f691b553c1b2dedad7cd43c9c7c70b2b7319ba2c1c37438a91e080b00da22df309b5f4bfadc115378e439b08f246450213a9ef3bdbf962a4dd530ed88642eeeabbaf78222dfba87feb9b9193c92efb0cc0f5a8deae25880e9d76bf45a210431a9c4dc05b7d380329304c8e88ecb92cc9b63333a61fa79fc0118c60e819678e698beb140e0d6eb49f540c83f05f14175c243bbb67466d3e7e3c098d362df669e13c85e41b0e51a4a2c64206c9869e71de44e6e0dd06a378ee14dd7638ca210adf90b86cc9b63f5b5d352dbe2216b96e0c7b3e2038da0647780c805c9c87712d57ee3a25963550bfa61377f08530c35075d448220604975ca9a192a82f823b57fd1b6a1f1da2c740cd1ba04212d13a0b64e694c4c987ff9f2aa71a997568fd80f0b7edb1ad5854068ad78cdb6653c088617dfdf89d4143bfc6addec67c0e086c1a80b36a6917ed0117bcd98d807b9e01a73446274db5ef11b8962e5b1a9c44975a62b8b4f7689ed8bdeb72674edc745945715612fd1550d5dd2f3b83dae5017b350d5385882afd967bcd65382dd7eab753812c925d6abf1d07ace8fee34a6fb95a739ebd363786e08c1fb3930010f899fb80f023efa1bfb72228366b5cd8f516b1cb0af29e76f1219155edb5f9de09d1365633543507d91efe648ed9b43057681f10aafecdcd4ea2491c2f86f7e4700e6e80e558724278c650c3a7861d8729bedb8260d3ada9d7e4b9c968c0d5ce55131ddbb98aef2301ae828c300a806c6a7618fa93f5d31357b3d09577f03b9e82af2e302e84ed34986fab847e5daa12d7903441b519d475b4877363c67f1387be53f3c0ebbbe4188de50c77dca40ec69c55ed32cd482c3ab867862dfb46d8392038283dee76f3c8440733391d22182963e6fd87a4daad9a3ac12f1cfd0f1a8f3757221cbecbab7d996e27fc7c048909e0c03fd2106735ada213d3e1a54436f062df4a9a2855e7ef2b35c5343742d91ea22e83cc7ff38f9ad7af91d2b676f33857af59af8dce7fc711a5662ddab4989e98ac47ef7a1890cbe8f5b491bae121af4b18823ef4e884d4c60957b642e8b27729bc2a5c35e43dec0f5e6ea1f7ded7b22b2a8c1851144af323f9c31628533201d5b79c01a5c07d6d5baf6793fc1fdf4635818d6df95b6d91d0f048a8d5d64206e1c5a3eb47016c5b9702e6c9f3b466b2c5b9ea6f3c18442bcba9ad44c14bf3ab9ca2ec4bd75b5256fdff50d8ec26a581418348a88a1f1bdb6d851b5efb84e5464f5e0e0f4ac463c4b1b1f651e786a7e3f00c20a83dc94b89ed615b87e2d268887be5a53383c9acd62577a29509b316f86212a2957262783e4a22fe81eed4ba2796af15aefe345298cd24b5c56b0c6ed914e9ef6cb1cad6ae0d96abde005050746b54a77cffacc955a1db04fe85f9cffe027063d6ab9b6330176cc7b08f0deb5d60e61f86cb2eecf457bc4b5f69707f8f48b41bacbc6d233b2dc47321fc18e4cf7ab21d66eb3e0aae051f24c51f4b96ccd26961de4be52927bdfd3fb6875cd1f7d845c730ae685e5710f919e8c3c23c8564065be23dd3322804a91c010b0f43f7551270fe9f1d652a6c4a1f9c0daec1e2036c93db22b694b240b71a9793d88e02486a9e624e3437748f1c2cc81f41847c06f9df2ce8c2cee548b56adc56eb5708954fe7c9060574bfb63091dd8402a49916956b39468bc9a4d0bd09eb5574b3e26c4415046268179b4ad59e78e7f6e77f9c9a18bdac3b3fe35c2ade8a50e6c71a587b0d0f04c070ed612442ae95d247e4826909361872a6f450d95e4ff837d1fdbef08e48bf9ffdb6f77d1353b21e04c0e3a22d6806c7905a44e16f09954ed0b9f0b918e6a0c89c5e7d02d718bbf69bd332c8c3e105fe234e3777d90382d84e68d6421cd6948674469e66384cbb0ff609b0cff242f0749cf33b3087408dbf856ea70e734b5cde2d4d67842bdc5d2f11e3b5cd855e9b0944c41cff37245205540d74d53e07f1550e91f3c6136eac7d96bc10e70f027f1c751376e01aab061c01f2b45bf5c64abcbeb0255eef431ad9303813814d3ff22ff73b48513293cf43f92373a93f99985c06cab767d3d3724be92a7bff16059fd3638f83828a3ccd0ab017efb80ce105867263603104aa6b1040c162d17517923319427affe4643f8bede7e5e1b5f9909e5008344b092ddb66d01435c8c600b926fd2203a02c9367bc0b6daea71c96dab99cc6d6756fddf1686fd283edcffedfd4be2ac921d4827d5feb8a46a0270ce146c812fb8a003bf6471c6011cc410ce9012097ece29e576626aa24639a6adb0dbc0345b612ffbbfb42b6c7348c41bdb58e44b6e43cec39374fd28e43292607c7aada271faeca4025869bd9da1469f26209636f8eebf545538680bf3ec8cb5a457ab3870ff63ffba246dacbc5ff283f6017b022162ab7fc5695ab7cbda876095b92147662506de0545ab3f3fd9d0b8f43e5d83fa60c3c571da3e6c41238c3b1509de7c411779225d46162ab68e90ed84a15b6db2b878f11d6046d1270dcfcc5e689b62b8ddfd21c981c3cff46ef2459cec6f0b5b1d7865c69af0c534db88e5cc8c63b126e0ab734354877c6fb9357ddea5ac46532a0ad90d36f4a016f600d069ab5db6c42d3343cdccdc2d5f7519b0636cd8bf9ecbc94d17e15b53a1ad9901504cf62dd46669a4701a7f46863f06ec4e0813650b687b50e2c31a989446539d2446df61d2fdf0ca500b7a600588adf60c2bd4060418b7e6fc6242ccd2831b6d61e8e8f70f2e6a1fe8e934d96b4cf90ced2ee01c516fd65b572b551d7c4eb55536bb3bd7125f5e9ecbb8be472f2c3929010d66bd8b0c6e0147b7e5674867ecea66d35b3dc43f90d7f607f5bed8f6fd9d6bceaef1e374c6f0d5aa780bf5e6f6ad7fcebc6864d06a32304ecac161910c2506e1d8e86cd0e67a2b8246714d0ea01c287e6f4d871c3cda8bfa681307b0b1037a3d5cc115d9213ba082d2148d431d4a8f4ad6ff69efdfa6cf6e4fa159c86b6dfbf69d02aa05db14bf6bd8b1af1000b9b359bd03dc6e00f43672a63df7447b936397e8ca1d68303c8807cab75b1f255d419209bf4ec444f0c0b5c6fad273f768cb1e098390290e97edc9a273b89e55b805c032a3672e93929829da491d52696de3d2005448a871c920d5dff6603651d8c8ae08ecf3c3d8cf3d52123c5c80b4c4525208aa74b16fcd484101806c9998e65eb50b7af701f96576ad52436437704a73d4d6e7e61e469bc48034c2abc227275ba0f8a1c1b53330f6de30a2872c97f612789ea50d28319bb97e64c92a87ec95d0ba110c90ec057d5de5e1e36496049eb1ae4156d7b3017a8e6560381c0cc289ce183f3936e42a4aeae643973e220f6b55ff0da9991b1ba301658b103aba8813a20569b4f38d8b7cbab30a0a03554a818c72fdb25e465fe4f4098e9caddd83479cb2f219ef2e9bcf2c23384a7dd94f6e3fc1f1dc58580c614b46f9d3458957b68fd318cf80185991ca6f713368f1f925afcc8d0101da768be9c36022aa5fdfd043299b41286fcf7a92faff043101b21b28196bef0157b28a5f7e0a710633ad17fc4227b6bf748459e1b27d0621f2b9a4c60ae08d8ffae4f746131d1310bf3188f4c26adb030079104fb7f8fcace8c44f4dc0c32901648df5d814704dcbc920175114807f028e4cbaeaa04f39a7722a7e0c188d0949de363232a599827d1fa9eeefbddcb7257ceb616048a6bcfc1b99961762380e3a06b6e5fc35815218f1e7d651b444a1a766270522b2b185cbaee77bea2ed583ede8050db75b2652e44f230271571483f718b1ce6e8bc4d673bbeccd94c49bea3348388016008b7098e6e44da549d603c5350a47ee968711c3e9b3dce4724404a36bb6f44ce04b54bee9e58e1266df6e681a34c21833f3108207fe4288605900056b60aa961874b090bcc0c688b62154be4a5d2ae44422fe10a4864b79d785bc59b943b67f67b31666342ab1a62c4e988d671e2cc7872898b5e9d162a784e806e3f6db2fef8a003814350645be4dd68a84e609c53a03e227436004c9b65ba7da75229fca39426de28051acd6523d185dbe76457ad964b1ba4c27d8d7e2afae03af6fd2b5b992f3d914c2afabc58f4450424ca7a7f977cfc3dcfce3f15f69110a28438bab05595e59e513c14bf0456db986c9ac7398fdcbd2abfe9edfb65341919832ca87cf3841496f466b40f494e9db859cc0f557b40b2fcb6486f86443af373a2293d542aa9ff0ac857977487a09f9370b12cec99df24b6f5377eb9bbe05ed94c13c3038bb3bf6a3f343fc73c2b341370f2cbabfe529bb1012d0eadd04f277566a559385eb379dd176138c135bace69f5ecff8e26c35976a86177adc7084e3e86fbbef1f8992e898ea0aadaac03ac7c709591de2448e1968f95f248cd330e51f889731a011382955fde7cd41010589cfbaeb5f3a635a24fbce3e6440e09a7b840620193e2d4fdc4c5e02f3da8dddf8d1014cbb914ce8c58ff7227d407d5798dcefcae5a1ee8088a72814727d264f67aa0cbe5e41f13354fc9f331f845c399df96d2452eb375283e96dbc8b3de456ce9dbe17a8643009d5b71536f21efd40f23e1274c780ffb023747516298ef2acc011a4caf2b434e99695c7141ad8249247b1fe9a045f9e8f885b01790454bd4697ccf8b94bbb4a487e3dd0d1d6a45acdbc7c9ccbd3e5c08f292ec3b4a449712c4c0b1c275cbcfa8842bb0f4799f0aea6c3245db707f7a3c08814615d00536e26ae652f090ede1e53758ff1ee63313ee7e116f147e043d4dfa6781b23dc202789a7aa3202e8430ae19fd9bb948a08c63da2ea835d6114c6bb9963a1c647f404c0d4c9972792de3fdcfd8eed93b55fee311704a414ae4d4c90d81af3e48176c90880f1b7e218e6c185c3503af71712525d42ea95e5159e88e150a9ebbafff548a77cfba34945b525eea81f0576049791f1c2bea67087affa9685d6077c05797b39a32552de7da7027e43ee58f0a8344ba05ba2a5b005ef5588746c54601818a631686707e1acc26f87acce043211552b4f47ad66c8bddd919dae5f5dc4a59c0438c775586f81a9873102e5c410035f1cb685c0115094d51f4743e4eaf0b2441d17b91053370093b73f890d5bf678b7c56c8fef4cbff904600806714fde8e0c117dbbb18d9579adff966555cc1eb080604ba07d15583e0d2c4a1a78646d870baccc04a3f3dbddf1837c88badde4c6aee82e376dd73fd8cd078611f86021814dccfa5c8c4aaa638ce839d61a502c92dc122c3111933dc6b4f530378292c778df8b8b9e6a696e9fc4b4f251fa0df6d1b012446b5ae2a1ec18c11218912e7ba9e775fe62595aa918856b31bf74cb0c93ab89c3e4d2158d8ef01449fbebf1a1afcec7e54f08bbf355774c3209d9f35ceb43be495a6eab7e316e57f85c1c23aa8c105ef59ac2b34aa4b5d7f75d90829be82ee1205d11a314f4109675275e2922b8c243e050c778f2bd72cc1d16cb7cfb351407a97814bc8369fdc0fd7644d54f2e610242f5455517671cf35ff4046b3bc007e9d38ed050c595e103a6f1ea2d983b610c739d95791b3cd8586f4ef18e9e94760fd75f5f64c75069587a4efe5cf9f43fd9aa9f19f1bc975a0b3ea8523b275ce3a19cf8a1f41ccb638a9cfc520f06e64c21138a2c938ce0298a17ebf4a989660730a529ce44130a5b168f41ac5ba9f44979daba9bc6d2b15dff1b95b619c1fcdcd23b736adb9bb801c0f6b2233939074c5d7614cd43372fd3e3d700c5eed9a689eebf903d3c7be84f09111a9f1585429688a84eff713732b8364622bf9dd46b8ac104d6e0a2a8a6315d4e534a3369358ddda5a3c14d2df901134d4aea4bbd2f7156111646394a2030e8d6e5d74ae3878830676c84d0f18187d087674acc073c4734306502a7f7406d5464353749d9abb05c575358d5a7f6637a3bd5b08d54c96ee7455b7acc603cf20e973a5c5b1de4c1c891a872e1116861f4f09170866a26a255d2f71a04561684cdb4231e3e2ae5950cf746f1fe6ddeb8a450652a8408d4c9aac6f228ac347017eaa92fb3bd75e08564055aae658305a3c17534703412830e77d64f82835677e1679d6d1578e0008b9d5db72a1b6b41a9b441f1f442f4d498fae25cc5b0081c1b65f0a39a2f85a9b52da6ab1dfe53a14d36543ad929cf200a4e2dc314059d7c17a6820ce72e0ba334d86303f95603b67f928310dacd0aed7df8d0fcd77c68e5e82b8408cc6372626ad835fea6ca6bff3b4eb15bdd4199bdf890d05f9a3b44e68ea727c6df354e95c82c30d729f0d6b98f17ef1cf5554043be5f975b07ba869c52fa5098205329f08b4e905c64c0e8c701947b4e4006c64d216de06f4b2e5541c188a7871e083ea95b086ccbffbfde5bef1b7f222974aeae36c24e2308928e2bcf3490e432891eb518cc586346155fe6bb080e51c809217a03c863218c567b2bea370eb8799359bc6ccdf561c922d778d859b46d3a7048571d8628778d98c28da219a26076ec05f6d0d1ae7d711b2dbdd83bdc045a85690128e029609209faa8acdae6e414bda3f81d6eab1fecd6211e4953b24ef14207433d4573d380e5ff1df8ec12ad269013c57ecb11d79738da63df1289bc87f29614f629c0ee528cb8b7734a13ad8445c89b0ee167d7d2f0189e8a43120c6e28fb114092c778ced1840c38d7a27e2192800df96b8182dbf8b883bbedaf3c042f390bf517d5c1e30dd8150d9c88ad9eb4c5cba145a978862c01d04b41251ade57d0a814ae631c1920a255cb16203e51a33d744809f315bae15d3a4fd404697ccafadb308fd047019e787c20bfb2ee7ab17d7dffc7d962b8162d2a15d5af38bc1ba244989531cc046e46da626cd245da1ec349b9a87e1af3cfb9ab2095799eb7e42678a6f520192857f139b0a711f20b23828a34af753be6fa61df1100a2a4d8b473c8762e40ea6c787f7d1ab57d7b42bb5afb3db524cab409fc752620330ec4c1ce10fbdf2d12e684ccb3980ab55a108564e295def99306fbbb7cbb5aac195f8f4e706726e644ad14130e41eba726c54ad30a6da28807c22b442ad361db6cdf041a2083a45bbb8775893a2b486cbc731eb1294a8dfb7edf1deff9a699de7bca8292c230e0f4ee0bed65c241ed8dd20bb21e32f6e72ca22df93c76f82af519ecdea0e6194a718fb2ed7878d81ab53d0529e33a17435df4edcf82f861a6f70a8af3be7a22e961dc1445a65b057f0f4e1f463582e7b34e023150baa1e6bf69614c98793b3be7b136ca1efe44f5ec042a191d6e815b44b70d26cfd91f7c933ce2fa016fec6db4ffd655e2e293962b8d2ffbb8cfae0e90866366a536ceadf67b5f51c63a7b1d23e4b8ac527aea751e27b8f2ba4ae880df66e060903f96a3ef45618261eb1a8892bb244df0b5497b8b3b1753ce3fd0c90394009773f4a9f0e003d7c11a2e2276261f6d807ab44be0301ea7cce24f9b4d40536a81982bb55a5b1aa98593f9ec2c956991dd084ca4982c180ec9a00283b2f59bb8c111eb36e55ece013990d87c000dd68c791bcb8355b62a046cf7e2fce1762a993c4725fb3d655519f53459729da588121cd5b74eed2f84a10fd1c4ff6424684081e0b750c2d65151bd26f9b20484c5a1e41edc6b6e0113a679d1af5b2fab65ad6228bc5ca525ae6757604b85e252015d096f06e3610ca5ef42a07f3331aabe791b0c8dc1f6d034d340a61c1d5dfa6a58cc15c62bbed2bbdc947519f0c03140b1ea5e8dac46052f06ff656859b95783894ec5827101628a5f4bcc647d6093776855de3b3f795c70ccea0a7b5f357c5248268ab87f0773fbf8dee7759691369f1f0de7cd83b730e0e9536c2a72f3e5fb4ee62ee095654521109373b3606d1c8eae7ef54d630c1c07a519502d0378ae4a65181190c326d48a70b3e4c1476529868578395de5e55a26a0ef16f98034731403964403910bc32156e1f2cdd02f450099c6f3b25c0cd0a884120e10aaeae9598824aa93068d9f9141217e2a44c8c9f3277aa745d09b9cd038619c340f5599191957e571dc153ee60c06ba68acdfcf13555140c020991cc8d51d9d56471ac3ac1b7f031ba1ff2024f046f0c03a59a6a6ccfa153250d04da2c95a5ce53ae37551099049659e3b966e29f15d8a26870a4b8369133553b1b86d27d087326288d61a5229c890587567b68a80365fa264966d1015fb60fd191752cece15e26c875e4d92ee8150d2feca8be96ca5ad9410a0459eacdbf7e70fedbb32e92c6580b400e717f51f428c5dd180988fcaf0fe20073b0f28f84d2b852238f1d01ef82e918a2101a454132f85ff966f19056c440b15f10113486dccd00204cdf7bc574ac6f4ab8004e712612f3fca869610d4bb8e81b7a182dbd7884292348f203ac678217ccca57750ebdc33a32506ace43f2340048ea62625dfacf0ff18c37012d05f2fd4963388f6366d9e0644d6bbed0d5bcaac890390db3f7577a4669e6925c42761a18e26f59fc09c9a174c821fb79db46872a6e20cacee0110077e87649c594ab55677376256a45d5f2c51a6a4a9a92ada0113933960d47cc00a8a0da6422c84a368878556dd0fc971aa4fb59c3127464932e1d041dd18c4fedf214ab3492923bcb64264650867afe1730a6b498ccad35f4450a5d42515cbf7728fca23c0d34f85f9190147ca0cc53df21effb9216dbe25ff85706417c6de516a099e8ae9aa87558c95ec297c8557281b5058d13dda783a8d0789fa8c167baddea12c37ba679decec157a613f49c39de15769afd8b6a92988d40924df0a8c87d4501c5ce51118cf241007cca08686d632e127bc2cba312a18b4fdd7409b5a755147c8cbfa03a4b50428b198f8d60493e60baa84dc61e380d93199fbc2022faa2be04db244adf9c2219e6d0cbdf2536cff475d40712663f06c52541f95c99439fec90102da2132b45c1093b756512d2a464b085581102525f647ea20c53b48207c61042973ced197c7690d3052dfd32b088fc0f28eaaac1fd0559421f9127c85d3d7d0a2b4854f74305784328521fba69412147faa1a7890ed4d16b2747330cca81614930e6c22d0fe55b8d5fcebd5cb0e18484c49456835dcecfa2124ab89d426b1491569d688d64a893db1c5d05542c78d29b31c729e94c835e9b76a5951c239f0b4e8abc08466521ecb023c8236e78b2ea13e4303f28beb82b345407456d4eb4edbab8983f35c4b8721c1ffaee026f9705df285ad996e681298cdf9297ed9cea5694d93d86005ee5c5a5d18e1349d91e31a61a0111611c9f9207d5ef9b12ffd4d1edc4abfda3da82da52267cf8693b62282dbd2856520990ce0f44904a7e6209cf63e9c94caa4f6cfa4d5b7453c0b589d2657628bdb1590b47db65add45ecd6625a0bbe2ef1bf0e74a23b1da52837e72087c3627193927d9903af58c889c55c5b7c0e0d3b4c7b7a483d2ee6588a356501e33b3de8d267db29965ec908b14ba6aa426bf7e9dfa3fe1ebc814404fa8c458e78d9299ae593f33472f3ca2f98c68c03ac5dd402c0e9ab9209c04a8ce173d1e0016d1971bc1d6e66a601c49e9b0a11274ceeddf8891428b167896e83fc5ce5601875742d610cecabe7e086a27438a323c0b5755d7eb88206c12c2afada7caddac6125c917454483a1122fe23132cee92e236064b4b4e3693aa3099f0900c5ca84489a9fc7b5d8cbbac8f25ed33eca41bf0cb7194836470747e05a805dfa2c5084158f26c62625f17404b500fd63548ca6d61993807e01bb209540fe1cf3f9921a44ff0b9cf0e88b44a1d100b0429b477c7f6140f3ee140a6821acc5326d57c1a467ffe4444176ce33e5759975eb3b48dd40922f34e623494e7924b892bfc1b4bf085eba201fa2853964cabe0d049f4eee635f027b5b142fe3cd69f10fb59aa40d7b06bf6d9fbc1f05288a6181299f6568ceed998427694ac64a3a45c0786c50e05801c200a35811a0a89e8a5ee135fd8b1bd0eec44b62c69c6ceff7865c952073bd8a9b94e1423526e10fad5871186eb6932771e983d19f6888802be3c0bc2e3a069442057b61dc6124a6288964390fc520e50f447e2727a6e05184b3cece0512074dd700588405566889ed3522d0283daa0909edf0198597b4210356972c4147a089ac407dd4dc09d99db0beb611f8c91bade551c10c831a06f7d7bb0f26f0da1ab14b5e550b1d3b36e2810300dad6355fe90f9f0bea1f1b0a43bb26621f4b3f722d87d9c41cfa2aa0ec2115fa4d44a14e4bb2beb57027e2107827749ddd11970892f625bab53b15a8bceba9865bcc8713392548fe19b4d11eb0fa575a1da42ac86270d0b103471f7d3adc6cd3a4f4cbf858c947d3e36d9f6722302993c64bffb95d4d108ef5fd35bdf8d8fcc8946e6111b139d4c476024b2ca3a9e005735db898253bb6a7665f7bc534fea2c9853ce1d4000e714380f2d5fbed9da7cbb3bfeff44fa2c90742717ef2396ae871a05fa90ba9fb341186e8da40482f2dfaa830f6ad68235b4c0baf9946c2564dea150bad8e9526e84b2eb9d50e629c0451bb80f7f50c0808c50cae713ca1580b0b4e50805f7e833e58b07c4560614e64337f43d90afe5f1cd0653f5cbf13df2cadd63b076c6177a0e6370449326c3537fe808f58384221f8fa1d88cb8e9e2a7b3582725828a39141d0bc99bb403b9c078b551e80c6fc260727204676914eb708f6bb8263c51c8985ec7a1fa2bcb4f96f09e779dcaec6390b954e1d04011b54c4b31ceb3cef764da975c5dbd980a4709677c92c407400cd9cfcf0d254a599f0eb88e50b006e779691dec6560e5476547fafbb694fc7211db68714a6d8a2c84347245a0bc6c8241204c20f79f191ed243e3337872f1278b15a11aa4dcd965803e51a213d016212137dc91c530c2bf56d5fa91184b186cab94209358fec5879c28b0837398cfea655d52559d9ba19c85692b9c3761e9ce50942d44516ad078b5d04a01545a338b8363a850fb192a74f6a9ffad92f68deaa43812d09f9efda111b4f229f86e316a2024e285e27e73fc11ee830905109b794a51bb425416276e431749d7ab1845227dc6ead71f98f9f2e7a7a1060b563093f79f55464f102a8003592cb8cf22e45c9d6aa6fe282baa047792b23764a19608fbe917814ef089aafe418d8f1334201bec245875b73dc1b52565109f1e3925250f28cb39912f123a0dadd13408fbd57d7ec2953f350b02dfb270d71e70c1db9bec4ae5beb762af66e8d3e007b55b7f9c457375379f3a008e81b999c8550dfd38ac997905934e0d854b76ad6d68958d4e3771e43c50ec38798a090f761713f0572ce17eef28b276452660afeaaa478abc4688fbf2afb5ada163b4034d05babf74ad7511868bf9f730f24c3305ac02a1d3480b8308e3552e54514ac25e8187df34b80c494af28c8d8381f120e64788b5715dd3c89ad1f4a8fc7827193856ef738cea7153dff4210ece8e7ba20976f29d6477d1c9aee7553a7865650b9210ac33708c61862e4a9064553d6fc5ecba5e7e6018606031ddf512d78a24a324957290a58f681286e1be50db7a6c9ade2c703e1416db2d54292139796821281d3cccade14640fe03662a21a4a8e0436858ab4562c0c8b974a136a3422a79a2e82bc772654106480d30c7f1b6f579645670c988d13868575a848d4684e36dc261d9e3f4de4810ab9b5e57461c31784c29dc671ffc180bf8f1e841d81d26e7d22c3ed43c0dd2812068031ac6a009d3c793a94940175d2cd4f00572e2f99ee687404bb3beb5e4a53efab3ef38a77ceb8bc25d63cf11606ed352d2912e7d6af8b515ea0173f200369782bcb7d3c982123a40bf5ac574d757feb02901f4b6fb7ca6fe85543e6ece47b230f2260b905da28b55320b49cdfdad2774a9441dbbbaa1aa92c517419a755561532e5e095b9c925a191dcd4ec07c0346ab5fa10f36266bed092247336de747a0ed5a6952217ddd015266b41f29e464be2273a27e44f668c212a2e025d767891f76ee0a2ff12624084a34c9c133bf0817d75f9688f96908a5c8580f0ba47b9d02f2b3d72a905f3c4bdf437721768340644e08a820622f7d8fbf58b0a53691a0a9a5ff335d20cfdefa7eb1d7ea1b56e15f320c498e93fd20c1b8f1e47fcd840303d86956205325f70558b27d104ca1691cf4d04152c12830f5fd2be29d2f79a3c3ddb207463a6cce911086f89287062b04296b30eddc4deb9e41cb5cb52a9abaf9dcd36a43f580b4ad58e9078ddb3a783cc1fd28c5ba74ea70ff7ff3c2beba8c5e466c0b51bd8090f672d5d9d1635cee3cf1ec2051a313921b0c43913e64af1c265578187e72a1df111491820d142599580212ff82ad474382da61ccde20c23c896fa59fba16c3d6c1c0245d284e6e398c5f05e6d10dfd1c24f43dd7f74e405f39166d0f40823060e35ccfa4c4014d74f528c2803199343d4ad0f4942a68cffea5e02ac45e20baa8d1a18d51f8b0e85e19fb94095fcc458e572c94cd84031e950f83ea1d00be5127034951fb9dcd97a0dbbda4bdde8e2520c4aa8520e0d0d3d376a5b5c7c61902f1c43785a3dea4527e8378d7cfffc07b10605a2868ccf0dd7a995ab66d94e5d966273bcf1545c82c1bc659d2694311676945957f8468e23712081ca200240b208ad69697642653a004ce2ad132955909ee71ec6ca15dcacf25da08ba4a4189381d55fc25b39831a43e2622d9a4183b4dd007d816e17293a01e1793b1d49e3653ffa50dd4d7636495f0b9750b9068da012cb86311eca7368c81a2a63b4eb4a55c65007144935203f012417089fc7508eae59e310069a308e1d52cc1012c0c874165086e9c186bc79c5301084b3da5965396322b5beaa403fd2d32876caa960184ed8a4afe1756041fe86de33177f707630f060a2bd59ade7a40f1fa88a5548b283a636890163c90670df44a15c2d6b902ab7b2d8469560e2593ada629245d28290d4d09383b0d36599dc908681173214552131c5f41bac29314892d6988583d03adfc0db1b3b4a50dd8a4c20edd7092649133d4d8b83c2e22c105a814662999da3b70d9b343ee5a2256dcc1acb10b2504058494402debf16b32349de8709e5c4757e2aed5392ac97d86b1acd528ce4eb3b240ff41364a198e7f9ab5ffd702f86c73ca144c8d078cbd998740aedc64a43a04ad40d4167c9a6f354b6dd7e068dd61410d976b8a7c3b00ca4df3e8f21c68054a6540ec6cf1898d52c3da620b6056a03a2ac500d4f0cb9cdf546444bc966f0e6d707ad51c50e267b7af2500c5852460c4a30384958daf2a695e0042c242ee7193aa00a579acb5c4d378daa189f22681c60ba97ae16f6bb0946b0540cc05c285fd69ce7e4acac87d569d0b406804c65abeab9acd95b1a65d661fbc30ffe738d26873e766012c1ad9286e7cff8bc1fe521898042116a042a4732d071762921e1fa6311cdcd0b956408a01fbb7a8c28ec3931528b24c63deb50228a27bafe275ab259579460d13f1fedca422c40d114734dac2ef0df69904858fdbe34313e3f45d2ba05965cb350875f25a996b05042f321f5dc8d361049ccfa3fc39b80244a37edea4220618e31171effc18f1fb32a948c00661a04992ae1b6db6bc9469aa212f0adea4224d71af78f93203380ef47fbad36a56019133960cd24332aa494580e7ef878fb67a490ea12aa0392dbbef5401856abf8f2bf80aeff1d947a20ac01fcf835737d64ebe0cc2ffeb431e18155174552a8dab6fe4208f82c9d84c059e9a9190df6cb12b3e4a0e95a4900800d90d5778444542de39e41e922b3541f51ba16452f4a0a3fbf89fa1c414d890fe3f2e6d428d4532905a20a44b2d7fbb4e36f516c62d6e4ab07f1c6124c7eaf21644c90f07ac4ca5c057f8f380c601017b17cfd816e48e8d3ad8d141c3de42c16cf180e0616e0375971379950d1449d9b7c94dd4bd824bcee250a2d80640b6adcc8b6ef0b6322030549087e64156ae42a54b6113fa805a5b6e2339217e4193f8b0f097f69929ef5f2fbe550404ab28f6c013da687fb9419a736b411b6a94a0dabf4d2a59a559811e9c89ff41e1a1ce875f23cc08fe5a8140051c9ce4a5f1f5231e6c9edceecdecdce82fb1ebe26381d0e356ee39ccf6e60f981c6a6fe22f2ea8317f541f612681f1ad2cb05e816cf0a5d75a0df79fb349490d333554e005db04b6f5a705176e82bf51c5c2ffd8f3f0f217a56619852d87d529bfd374e82cb264b2c72f791d2dc863bf46984610bacad8e3d1ef6cad9c0f0a3ef0aee93d5b5090535fd3a5a34740649f88e21439487a31d6876ef0bf62940a125eefa9a7e853d8df03a36dff59bcaa0438ffa6173c831de19b53bbc3f026d017be6e2f44ae540a66df8773e68b64495c48a7ffd9432f94cc9bc9a9dbc63b4c8365356174332f2a76634e7d8e57ca134e0be2dd5e156775e0ef9175b89580b5ff0ad80d7649c0908cfea22f2b2162d59a02ef3e59db0cf135716bec02cdf2f37f91f144eb006ba128921e3d3f25bc7ede5551fcb9fb92f39bd228df24bdc77ef4f33e85586fa95a2d01fee6a30a829069052bb6a8c85ce95d0bc4838583d540f76135c695c578d64f6ac7f8b2f91f277e839163508f81fac2e0c2622eefb7c802bcacfe9ae1b1cffd39ae7690390499cde940e1be867fca1b555b165da595a7e81a3382c9477c185245f8cf3bb2e5dfb0d4003a60b831ab29f38947d295634ef741d4eade30c5681bd358b82839b1b12bb0bd7edda657d5d9208f27bd744783cdcef886397b34aa586df3705ff18af94f6500af5a0b5ae649dd61d3fb0c93370e5348a6da3a6b3c3d20ba972ab9062045f920d31e420672f269a0757c52e8af4096c746d9515c5b5c0e0be28d45e45904186964d956e6b2ac342c989da546e4aa6f68fab5080ff9c40f3899d7b39d115f03267871aab349a30e88102de046a6ca54b7fcb28a17776986d32ed01645cb96489042a40de467dd84e6015597b4a47f99fc91cf308c33bc3efe83bb95d813f8b73f400392029f98a6504ce94b6ca05f3f73ac1d2e05dd8bfa30960e4340aecf59379574c757f487443dc10f959986353e1de9ea54e023700880ca6ba2a51ac2c7577d0a2cb6339856e4e00d565ba7aa9d6b153f579a049f62f12dc0b2dbfc97f659c16ce804c1eac2d832616209666ae5cddc33e80d28451fa63672a089547f260241c2795191a5e57415c03b3a2ed3c152ffc0c809c0d931f0f7a596d1bbd06cbf8784ecbf8bbe28eff40a84d93da43301dc3376abd520086e260d6004323da4f851246b6ad258fbfe40aef72f6b4620ae5683796418218861e07e0a58ef007fdc274011766c4986014f3649300cc80e6129738d0308b1e04eafbe451278626ce5ea92b2d091335b5809c4afc3ecfae1a4df0a8c4f1ae03f2841907a65c1675635b9cc4cf66e6e9292399267d8efb7155ee60987f00b8ce0e51e1a2cc0656cb771a38d176043720b23e8a1c9bdb15d4a4df5cd192c5371e2530b889277b5000330061085edddd7c08998572582446c19178a3e1dc2b19a53889d659305a036d015d34148e6a0754a9d0fb285992bf0f26d59010154e5430d4c41b0747c812472809a6898acda78a86f4f3fc2e3d948cd7a1216c69af992ab48c9c7caff310da53d21b6a0101b66f961ed35803f8e95906132730b9a8157edccd86909b0083809930bb3c8bc9205d0a5788ba29f1c3bdcacd8b1ac396eae883b3c3c51b4987890003243f7ad6cdef9241c35f8646dd7063f5d3c855e912074257a465fa033cffc98aae553205530af8e8f32dfb7d7ec2ebab3a080871c4f1a500f23cb2cf89edb4b4a1ff0570a9057b680ff982b96211538d8eeca336b7ef1edcad335580c04a7c79759e0f6ccd0af87fd0e46906cd1e09c7935f2510469b95cdcd59d49a9c40d386780ed61cb08113f995760dc2210396bb08afd1498094f228e8c199935f8997df4f4b2ba25e1888e0a1779ff68c38f14692f0faafa3ee701bed93c40db3fd6371a8179bb91e1833252adfd0c06710b7dc9b8e92648267bbc224441ed550e00ccce5b4a5a4ff4dd32bd5100264d35432d80529a486bdafd68a823e291be52d6284bcbb98f4f2153ebe0ffc63cae598ea77d1faa289d5ac73536f25d7e21606c0ebf94e99600edb551890fe47276f7a7d14ca55c4e8879263e7cb8ef0a18a581d26a72372f6ec795134e05cecee4e9c1b328486ab911ed5363578a5ffe3aa0204ba1b263075548be10471c18038f3669041bdde3083a5bcdcd46bba10516d87b1230d18816bb15550836b07aa95a5ddbb9f8365c76ff6e1378d8096fd99ee52684eeb36607933ac681c546f9ed25463a41178fdd2c1724d0a75c1e8ce5a77ce2493a41c9ff4da5151e91a6afe054059cf562ebbe4aa20d2ef71702a51b22985b9b9fe2950a05b3263c175b355739e9971a71f15b7d38b1ac206063b587549e74a541304be696cc89630dec162cea583f1f62292032a06f5d9750b34710acca301f276d07565fd28cf5a6a45e7845473fa73d68a64a6e316856722583ea55726c4de641e61cc51f98a5ca75287b55a6ac180d2fa9cf7273c4badf4a95ea6aa91b75829847daec563b9f23ca683053478f236341488eafdd2d69f334e13a4741e138e0bbe6bba46d7e5a22f2e85b348c2ccde2b9225eb14ce8a896c1cd9aa4a8b74911f5bd7184734efdb2960a5478ad3763da31d0ce06091e2118672a702054c24232860c5e2f5445bac7724aee7f31b6f2719b6c31f7a054a42b32dd2142a0fc28759363e70513f3a3c98c0374576e083c034993b99db9ea0ca8298b9019bb5901e8a6e486681f4e4c2c5ec4ebe7dd1fa12453042ca10d3dd8bb6d9320f417e78aabc5e97930df3e5c8971720cdb2bbbb9a5704a247674380a7425cae4ffdb18cd9b057c8de46cb051bd08353d19bca5a585de9c88ec3ca4c074fb70849993882a353bca9f2411c5bde3911007fb35c6024b0dee905b24c25438c92d7d7b788d9370999725bfbaa01153255cf77875a158c3b213ab8db8b545c99afa9cb89797089007621ce9bf0a4c45b35e0ad83ef213b34fd0a6633adab9bf1006f9b8c747718a0ed6ebc3b6ff2ec45abd8184a00de848fb9d71cb94b57f7d369a83cc87afd72f6ed1a837153cd728aa855bd1779a27810da86fdc22eeb80e01ee7a39b57ed581a88135e95525fbf5d840f3af0d64f9866db18466a58b8e7765aec96bae47bb55e03a8ed25b5e37ed6bf9a2cc7b18657c6c4946cd5b61fcb428b367a9e61b6e7f97ad2f50bd924521ee4619fee5f504d03f9399ba4fb322c8d7e1d6e08883c9cbbd9d50a2b7934ae08d4701c8fd63bdee03de694c3cb4097127800af48380ed3ed4fb3ee07d63922f6d4f377929bd13b7a077d2a31d34ecdd8a182345cf699d10a2c8503dd23b1ff17e35d1d08dfb0e9a11488334ee1ee93d1f78a7363122224a5832863d5a8f1484d5d62d3c32d98dffa43bba500990e7012ac084ddf4a685f70ae9fa704795f0ba69aa8b04199c25835eb869b958c87cacdb341544c4d40fb06ac4dc61a9c46d1ff24e63424cbf60094b0c21fde2e009329f02b97c0938835689d8b44c9a199fa3907ddabb6bf496f81aefbfc6b836c140b9a6a161b3648d8980c74ef390b0ad2060d3dcb3187d1e790c1a839b7b9038cdf01d0b976dcb0fb0c9d1b91038a1d8062237bf84c475313d1040ac1628786538c63b97e94d057edeac71964211f11d15f9b3e3edf333ec8fb459979d624fb9e9b73982a03d229b39b3f139ebc9fa68b1703370e0c7cd950f965ef5f4f2715a47cf6d0edaf73c7037223631208a95ff7d25eddc065978866ebf89c8f91dd2a0107733cfef117de81334f6ecae9d3d2fb2bc4afa33a4fc9a2fc7f2607f0e9daad179453917254494456d31e493393ed3ab1f4822f717e212debd0c31021069d14653c0b503c74ab6bf76fe7d1956677a51e3770f1aa7f4a555af5aef382ab8feb8dfc7223285beabf12dd219a0f4d88cebcc0107a5815e4c49af613e334d95984ccd6fcc519e4c0f4826b68f735d94c6e375ac3207ad1e189027ef1c48e0ccd73ab975c2432f3eec40f76fa60b5bf899ca4d20b6468da8258a4a08e2f2d22d20d031f57a58010653e75df99646e9516a1a043ed8a7862edfa571f3fa50b8a90fe1d48a0260a56bb484ececbdc4de4f25e527386223076f4a516ea93e66bf52bfd44d0e84e4ff95be3944d48c056e83eec252fd3f09666efde32cad279ad7beb8ad4b1f47db4b076d3c2a497babfe7912c6a8d213a0b0cc695d9dda398c8aaf0fee199fe49be48a33ffaecbe2853dfcfa87aad867e241b17d719ffe2d6dd6624bbfe7076440385c6afdf9f4850cc75e2441e0f73774bbd7aa90c6a4f4ddc2bca8acbbfc517d8d43014c38044a9fbfb355305e51493af93830f437b870c9841694647079ac7564742bc5cd88ed8dd08e09bb3917ecd7b783433800a9004010b4ca1bba00895bbdadffc602b7df0126f41e6fc75e1e7f1b5347d7c692d808d9846cb2f7de72ef120b7c0b090b33aa1f50305eb0a4683e7364e6e8e6ce18b9b939fcccc97d59de90dccc1ccd1cb9c1b8860756393a5d15a39a2124705d46a46609f03347cdea6a86668e34ab5b0dcd18691676f8192d6a86800ebf1afa21270032705800f06115a3071a182f66647e54313cc0bcb8c0f72e2d2c29d48aca8c2994117101f268b0c0757308c9b1232f67bea43473f4542572e3b9b1f1081c3ce22090e71032df3c468f977349dfbed273f3c42e40e81057d344a7047ccd50b350405c9ed886cda3cdfb259fb75fba35bff97cf6925be2c1ddc09beda674837dd0f8cc110d2b9a6e3d32739c894dcd6ddbbc816c1e314aa88668dadce496787036dcb5b1b1c15d7cd71829d5bceb460935ebe6908487772eb93b52eeaee5f46ecbddb1e4d67277a9957736f7cc3b54ee2cf78b772bb9b1dc9d4a4ee93787e5dd95bb4bc94d737728b967eeee24f7e5cb29397e67fabb98bb33c9fd7e3926efae94bb2bc9fd075f8ee9306fdcdddce6f6e6a2842eaa850a6a157cf9881c6de66f6c3054ab71e0cc9156d5dc99a3257033ad6675304442cd824705a17634cbc21015e0f007d22ceef0ab183dd0c0783123a38ae101e6c505be3f38a85b90ebbf69eeb35cb9fba8fe4a5f65cbfd943e4affe49aaec9ed47d32fe1c9cdc03a3107413287647812aad5492068f6403a2d633543191600e8ae86607c91341fc47d3b3ff7edf8dcb7d3735bd90e0b8f2803cf735bd9ce8b321d4b8f0cdf52e0ba99a399a3192d62b6ad09710f45cbc00311c201612a0222c354f4629b8a3a9bb08032367c5276fb08e233334711078628080c33739421110a8628c3a386503c502d94106b68a797e800a5dc112d036f84149c068d90f0312f636215773a12c20492ab8c8823ff606baa6e152fe97d52c723b9d61b708b7c9debde107b51f43a7654a8fa5ce13c03f7766edff5a755f5d869bd8db7696c0cfb88345a557bb44c7d8db547abea4ebc473d727d6cd547a1fa3eaaef23f5f6ca8832f5d9a54ce05035865035b2291465eaeb5b0a5cd747b9566c6302e99e2f80ef07ad959f13bad0ca283be73b2072bc22177f8a510810cbb594ddd0942b461bc29e33bb9df6665445bb9eaabae1fca3a957a9f08bd6cd477af817156c097f82ef9585940ddad3a20c53b3ba950c2a72d0056c0738226cb55a2d1c310b56d6d75a0f379eedb50c1ce9da6dc76dded20bb82e893cbf5dedca5659285cf59b01e21675c824bc82d12a0d53c1694fe0b66b45f2d168dfaef65a5b356bf4115fbeaa102d236fa7bcae392be46ab44a4a1ffa53b57726f97ae9fd700018437ec3217939a4fa8975eafd8182abef9e10215a255f0f007f40c08b212fad90e5496e112db3dd1ad1acf95ece763baf115d630837df3d2b7c8a4001c57c3d76beb07c34f5f5ba54552c63eb91f9c2406835586fe3d9689cf1b6d8628b2d36edf31ad6988819885641f9682e19cdea2610f35246ab649ef3a776bdded78551402609983210ad9232b2bc8cc681d132f24e04d9e9fbb66b04462b384285118e00c59d1006220f1ca10b4f5cb17344c4a94f66d6904e04d9896fad1bd069d0011880ec3489b4bd95e0fd448637718df854e64821c5b151703d762f39ded6ebaa56452965ab70c43eeae3cb75e5837a927c1246b29473ce39a73ca550e2c7aa2c0883a79a3cb48743fa9c70070c8241506808c2e0b1a00a9e0afe9190e2cb7f619966351292dc80264eb54e19764915bc1c9a829783a1e0e564f6f0394eda782a479a9fd884616bb3f3d93c96636660c64cba413fea3da0840a1e2b47b3bafacb06c43966a90255d8da6aabe0e5151b5ed7f530d27b34f3399a95a3551406354b9a723fdb66dcb8400a668061cab0059f1638492011718a7844460ffe077e25a3c7d65b0cbabb4f50bee5a1b0efa5c62ab630247790479e873daad0c2913c0f9d9837c8f1a30646227114d7d89ee11c753b762dbbc9c50e2fe924777bdf1f14db376e7c8a32f3dac5e049af014fc248bee11c32486e6282cd93f073fca861f2c6394cae71a792ab4a7f3bfd764c48ba9a2f19397e1051c239e00ee924e7ae067ea2ccbc7c24e122a2cc7c69059c7cbc0672fc48c0dbd9815803f16f6af041f21f803bf1070a017dfb1a7d8b73fc986fa17e86732081a150949987f888514ff80e0abd9df732b10d287b66c13e2aa0d8911f1542d002e74785108832cbaa6675499752a6cc99f2999282c29d8e8c7aeabe9cba9d704bcd39274a4c792a95326f53f3a90bb9d4672aa65232954a792a25535266eac6cb9bfabc29ab4bfadb5246b08274efe36d79427eb4b20ff909e981147214f23bb2108e94d4dc48da0c800282b984b98e6c4db49a2bcf721f96ad6a8c02c225c7dbc68382c2723b1d99c53e8c9a41babc0fa95bb68b0bca51ae1359eeca51aec94917df1218dcc91c731eeee9763af2e9dbc663721b73512e77bb4ddd2e2939e1a1553ae572249b0ff694542af53ec95a89639a65b2b0b0c8b3cc986b03e61bc872feb1c4c494de2c3a3dcff2ee24ee3ac3c8be9418a66bc9826de0c35cbeb350937f9b0160302ee1b36014cc59ee620020f9be7cb3c45c27c674e92e2cc77ce69bc4c252c22c27272c9bc662a3c03030f7657cbb0bc0ee6ecca223c794f350a8210f966b23e61bc82df1a1cb59dec1a1dcb1dc65c65cc694bc83b9cb598e6509b6d18ff97c0783f12dd43e635830c6b7fb3031b85daedd92935c1e0eefc9eb55b94ec48a68d5b66def36193347007f70b12ba517709fd8c6314cb35866a05c6e73c3a898cbbbdc45cebbbc04a6e42af7b50ae62797872b5b855d6e63622c65bf04db784aface1c735fb630e6028ddf17e616766c52970194c70d68ca1c7321be4e6b313795ba11cd62792a0547007f803975144f0a3f0eee7041b9cb636ea723c7bc379e181f96cfebc8f2a234cac57f1b8ccb51ae8edc1747678ce108600c97d46378526fd5717c4b4b4bcbbbfbde975beee3bd1dcca4db3ee9f10ac118f145902e5fbefa161175ac3cca36b9b597064d361e130b744b39e50adc914d4c564c6e943731318926263a7105ee6895c9ca753aaef435b9bc2ba6d38dc764e63aedc205070305058a8861908782657f063904d28750480e0604e2e21dfb45ebe88890563da188139be85a046d67b8c5b88eac2343214082c4f87be3a073007f80268031dedffb030f070e3d99771915cddfa116cdeae1ef1df4725e7e31e056d025e8d84d4481ebe0108f66bd269ab5d1d0d1d3194a2143940f1f341f37ef960f1889188d605e05bd1cfba744b36afe8ea359367fa8bfc75727701177dc24c11d2d3f371ed2e3957fb9f0da5ee2e93d5c5e9a97ebf332cd4f1745f39763dc46ade6da9c74b7b31860bb0d460175a77a5f476621bd06a380641e6deaa65cd4854730c06991dfe5dfa644ab9e91fc8056afc149b4aaaeee59eeccf66feba9828b7123d0aaf71eee11ad7aa7b946d80b3bc3a047f38e44adcf28488988f3769e4fe7fa0418f7e5ca06ae834757a4dcc55dfcddd63570f9c5db2024bbc88f8aa327328c0bb3111198294d53794c2a86842426c6450c9749528ea53cdb78306ae6174d24bf48e16e70f9853c0a9723ca1c93c8fd793b05e5de782edeb74b650e6e3c292e4eb71918c8c20eb2d023bff8db7ab8b73cbbdd0d25f28b7377719990f905b6c1bde5b6e5c65b299990b95322dbe8b3745b4fc7e934cb5fbc9667c45d9fbb4eec58300e255edc975d707826f268d5ebc6b30d5c742236d1aaf70edfe14b1d6e3c31b736e6f776f8f7a7dbe19f60605a5c5e5c30be2f7f19e625f514b611d3b5fcf47bbb96df5b39237edfee767db221eff2783b2e4714dc6959ab286779ad9ab8c35dcb2fcc753a9e6ed78293c091637eef726ddcc89161fe32be376286c1a81939e224628eb13d5f10bf722f0ae8be7fdf3ef72eb883d905bbc4982152dd8d63ee72837157f3e984bb96eb44970bf36df9cd4df5ed629e7acb799687820334cb325857489d8e1b64297a40857cddae364bfed9cb212cb6416f6f83640f379fbeb596b4fde85812cd00f41677f1554cc1898ce1f7682a499552fec977f436e8fbf23d189d01e8690fbd74fabab00ff143810e0cd223cc5794e14f578a680a81a611ad824445344b1a410f4f21e40eaf82e74e5770f027f8578b5ad059c3db18b9be11c89298d79a451ffbeac1c56c1e3bfc1117868db059d61bd0c4f2888687a74634cb88231a77049048624ecc84ccf02a78ee643429ad5c4d99ea18b8ee7f81b0a3a67a81b893b7f25662b4d28b52dc71454644487a71959e6a42b86b1539fbae98b519f6a23d99db9c7c1226291f258651b7b051d6f9ee44afebde0b6b7e2ff96d325ac8b5912ca59452cabf23b0e79c73ce09e1e37db9a91092673cc22a4fa18873bd3f87224efdfbb3c761908ea255f36ff351a3cc9c9f33489066757546d1acf972fa730bab3c83e4d918337a34531524cf19fdf2bcaa592820272021481675c08e1c984342cddad1aceb13bfaf54dc61e028cfb9a355f373880245b97b4f620ecda16e814a252323a352a954322a558a4ba920d601fb2cc96b167cbc361af2d190c4d6cbe9bf6b055cc7618b1bcf3685e4de7a6e9641ae12fd76d26d5cb73ca463d73e5eed3d4fba98dce2b6611f245aab268f15f61a678a9cd5aedb57a96137e01639a5359c42e211982af0f07759611e533c5c781e78c08f8b3cbcc03cb610345c3183ea851e405ececd12c8cb79962d13f4c303708b9d1f32563944be670f20cc1e11620cbe9b3d62ebd1c06bda887050f620827d2fd99cf3c2b0392f592b8430c28853397bef8b323e7f2d39bd9de1e6335f42ff9b9deec53e713ecbb5065c6682613f44b46a8806113f3a78437cb26b3eb427660c572cb8ae9a4c27a62678340be584ca6651773e75eb4d3775210f2720902662fed9e2cf89e9178604f64a03ee64e5f2100a791845b34e962449f2a4db937b3d754d3f5d18450aca8550ac5c0824e61f49bacd28f7e59598ad4da960ac7e66afa79fa69b8e9dfe624d97d12c0cbbc9450199bcdee43a32c6fdb44a62d48c935fbf5e96170f38a472b15a73d0355037609eaf971146d2f5378f68160ae8faca577097fa8551402b2bd7917564236e9f02aebbdc3e23b83745158eb2cb51d24aad081ba95fb8881acd42cdb88e3a0ad790a896a3301cfa75e336e3bacb7b036ab90bee506fc19047ab20ac022753972d97874d34cedc9187f346cba78ae5739b800fcca9b7609e14968f860577a8ffb44ae6d453d8060aa3808e2002e695067eacfce2158a01f7f818e7d0b173b16a47de5e2caf0f7695241450cca9c79cea369059fef251582aa69fa44e1c67848344949127b9855c8b3c0402a1b830088ca255f248484e722a2731bfd6b40bc31d1806c9b3dc7a032eaedcf46ee6d4572eeae4a6b3b060a8f2eb95065c7752a2554640b2c581bc72d345999e84e9ae9c48f9130c877ebdf2e0ba485c257a70d8b3d315fc9e2a251f4d0a772b47e19ff736a0158c02faf5154c44cf88003ea2559701275c672a0a45542ef67961c48143f6843b0e0577a7a11970d8e1d0c5f8ba38c639240c8eb0e302ffe21c048081508f1d7c6200cc848130a936e0b2d3798a3870a8964ea753b3627e3bf23a9b8fcc7088889f212e18e0e2106e355eee02e7785ae0c1ce0b847108011647762e7e5126e6d25d422e2133e97675bb43dd3392e7090e5dc7600ff8041c823c3a0de054abe450ab7838f153ab6446f129e6b0c02f877f2ff0f86fabe1e22f3847cc09765ce05ae31ee31c0f0a74f8426be7626cd6f91e4dc53ae605e79470e88aa156bd897daed80185b0744c0d7ab08672cf83780adfda3873847e80eba7624c9921abdcdaee91c30bcad0f2516554cb88eb60887cd0380c11940f35abc0754f4814f2682051c35cd1ac9236717d42ea14228190e36d2e8f5ece8c5005488ead126d9e909ad8a59ec41cca2ab796888359e52915c89954ded2f2127793ec2b3f41d9a8a0a084e05141a81d19ceb8b97929be6d86cdbba4e6719660a01afc5a8581a3dc2f5d27966e57bacbb5b9ed9a771ca2f49b47540d062ac5dfe0b629b95de9a9ec37d927b639cbcd4d56e2c1b13c621bd96fb00d942731e750ca6d30ca5347a93cdef488bb156c6a8ee3faf37672a668f3791327678a7d9b1bdc9954fa7413ee20677a9bde7fecf8474bd48725871805a4f279954fdc65b9547a4babbca5f496966bfbdeb4b4bca423dfcc799b92cfdb2531876e7a860a50bf0577a5f70ddc86e8c6379fb7e636b79b43d966bec6e63ab16f679bdbd9fcdebcbb29944b3e331eb9e406db285de536388939944bb8e5a9eb442edfdb913cd161e028a71e371ed3e39298439909985554300d3c63a465e0556aeeb93f4c210842de96a21db0f6f5103894100310fa8e1087f4c66c54c41ec881e497a247b3354076135050841e59cca0e4146b52a8a19388b31a8a3210a7660875559eba2b2fb931725c15b50caca9a951b93347ee8c9178926ca1567357457785c55d95a01c7e9572f89aa1939493d7d4f0a8c135434446118746c4f9393c8ccc2f865a35733483054c110c51b34a0e0f7345b322eaaf596f65745758603163147f1e673cc608a91601e0812b86a40db86ee6480b29a03600819121f08873c1cc918b055cb72af291d94701be2a6a1616cdb239fccae8e5cc9bfede0fab211803fe94aa4195bce6f3361755824d3587dcb3880120e4d1c0d7c010c15c0153f468e05743f087f762940e4beffa354c9088f34383e366d48a5f9481099221ca065c876ab90479393232345131a27284f351315231aa95e3504ebc1c98e1ad159cc94dba29943b54ababb993b9e3723773f462a88391bb99a30ee36a862410b028c40da2f19e9e0b82efd0a0717fb4910c8b40356c810947a40d62c8c0f4184fbc1c951d277f2114718268c0bf186ad6e9f02f9a6856cae15ff068164a2c7d854894813741fde6aea4dc9b9f62e449e336de96ace52da37c8594ad8c17695ea74972133c542e4da671e50e0c51c4795f21c2ad105909b5805bed887815b4b205ae9b395a05d53c468f9aa1d35d35d12ab872a228e2cc38fc8a51c429c0e1578eac1c451c1a07b21a6a155ca162e6c8cb29410d6b2d8b9a959a36b58d6aa48d06c99c37bfe9af50b13204ce49e373c667013ee77c443777d5c48a47abe011e456455647aba256c11516b2fb88eb5643f9766e3e58ee3f1f3f5f0d459c1f0c431465a0cf7d4476f081215a406135d42c2cbfbc0f1fe3e8e5dc1c96bce6401abf143d9a2a701d0c918ae8d1c021bb6aa259a5c3af78bc9c1b184d44f468e02dec072304f28c9016b8cf802fc0fdd07d8f56d9bc53317201f268b2c075aba2d5aa478637b9dd8c161d0cd3ed62e8a09340b0a99939cad60a4eded868373f413c08233f86fc5c548d9f07f12052b0f363536d823015998a5486500e058a4d8a0d0b4d4b0f2e31beba406001b818c049f54200181d1eb28a4cccceca8b99140a868d8d8d8d6663f320353c526ecd10ca3d9003f921e74076b20e010620002056317aa081f162464635238607981717f8dea58525855a5139158084280037099110a918a15a41dcf7646c502d54cbe62e40de7a39b55bf9f016781622cd2251fda71367e3aa0867550400d3c9cb29fdf9e4fab0fa01d7ad824a25942a649c77ab2119ef6a86688e1e0d3cc955fd1c573b468f47034f7d50ba6d8d04e5f3b6e45591f65a39ee74baf64ec53ab933468ea4601a21f407d7ad824a8f667e15d4acae6425d4ac6e03d9f41277f32ee5896ddc3ccedb3636998f2082985a10f7e771f3b9b9b9b9b9b9a1373794b4d19811450102404294e165dc2e720087753bacad00c0ed302b7cb85de40069fbe1763587c6cf0d42885551c441b55a06fe74aa548817a176b4ca0a4e46cde6f6e6e696448bb76bb61a3c0fe26d0de8b90f46d5f08135a0031482ecf85cc78e4e0771513582388dd3c0395e1626d809e266fee63347b6e43097e00e0299a4f56860c9e78bb40aa634d12a1e5cc953decddfe099a379678e944a3e6f63be84678cb40a965efae9dd9ca5cf214ab7317f739d9e39025b7a7089f1d5f50103c005eb0547450646060f0188c959092f4b6c426d8a2434915f86145ea7f0a22e480f2faada2c42f809e526e5cb2fcd3a556ce3b9b184f66da3bf249c570b92af04e9755dd566d745df16afa67d8083f94d310523395ed2d4e9456e3ecf0e9a0633bdf608a66d706ef4da7a36cdc4f9486cf35191db66e3c09d80837fb143c308618c72e2ed4595026ea3d8ce8183b771e399620a67c8f2ca57f6b93e5fadcd708b97570563ebe91cf10b564dd9e6a3220ff3364325cb0bbb7e491b07eea297f49aa47a9b5d97243dd934c66ddb5e9bb51d3edb786ec02d2e0d9f8e7247e9af79785dd4bce49cf65df6ce6618bdaefb329417e6eba55973f67598fba272be1435b080483ca534c6a7bd172faa5e53c6f8b088691816297d2fc67e316a319a9a75ca3052fa78e93b6a20e03aa882da09b852867638c118dfdd76ce18b17a75cc2e9f456b9af3d4d3b9aaa864194f3671a72347ac0971f9f4722acf3cbd9c8a4f8fe6fd15e57738ffa689d2f7e89b8f3e19a534356b766b508b83edbf97ee2cc64ed68bca88611986d17e977fb367bcd73bfa87a16a1f75a168cb27a394efc22ced6b944fcaf76c48dd5c0f0b5f55308c5cd15d6a15012bb44ccd92f4ba3adbec46d4a20637a0f772f0151d2356a9cd8c6e97f65e0e96bbec3e70d9bbadad020b455693b766f7d9c86436a55893e9bacdb2ab9dccd011c509b6c89d8e285aad3c8108a4952515ad5696b893ad56bef012435ad91e4746241e69e5ee0969658b51600c18830c70b8eec9a3313509161c2429039792a3fdb3d78909e576369dc873ad2c9bb501e98862a89527a06309405a56b3b79afd05713d69565e9bd92bbbbcbd280d35b3a3b0ec2898596baf7b23662967642c934f0cd2ca16482b5b7c231e696589331823bec218f164e06036c4bd523f80b3216f3349a2693d2c494e1225914817a99248248c64491949ab41ea1c90dfa3c9f6b00a2b00c9b60a2247285a1cb8ecf2526659cb2ccbeecb52cb7a92e4781aff002e3ba5f2da78325c6f77a275305b2c4aa0790c77f2d9fbd8bbec99bd8d0ce8a4bdbf67d9edae67aff5aaf6de88f9ca916d76bb09dfd167f5280c05eb51b4ca6ca5bd7153b3b81cb52bb2766b719775d05aa1286bf858d6c92b630b1c6c7c8f37e5b745fc38538f95f24113c7f5cb3f7314e2c1fc6ee3c0f52ffbae8ba2b2678eabbe93a82a8f82b22f987b629d6665391291e595d1aab84388c6b18fd79189f7a15572e03a2dfb60821e99755a15af95807b42b097c11fba652fcde678bb69f26a22e0deb51df13a2f27cbf1960443a5eae61b2ad68a6862b024a9d3a90c243890dcb0c9566924e0debbbaf5bc2259cad32259e22e725bcf855133e8afc3215fce21e8af5799c1ec659dc54bea74e0205f87ad913a07e46b9ee2f9885827ba556bc53008ad35f6c07590a88343b2149a15b19099d04414b90faf681684196291bb5694a4335af94a293d4ad27a2347264d1229c68992fb3844c075af88955adc64aba00838120beb96602c4a7221fed32c97f76910d12ceefd1acddade2fe27d2ee21ce1e2dd2a3f23ce02adea23220e143aadd747b431d68abb0a641af18557f4cafb5028e2401e3c84babbb5279e803e605cae0f1ebe5d1ff842d6422d6389b94eb3dce803c6070f3ef06dd5b227a2e6814822c5781b298661bd451c492449ba4819e63870f150c25a2b725ca4918b5c8443e6cb0d82450d80be8b1b24f41d180c82efbc0640078b641e8ca5a48445b294b094b0d4980bafb076903266d2ed59ad169d49b7eb804568e3467c18b67dcb342bb163180a08c37cde17b2cdae1602ee4d910427f26b82109cc8b7732627a552d239bf7d7ede5e729b9ac566cdb22dcb724bda2472ce791c5dad361eb3310f73bd5de7ba6d36d332793a4fe5454d49a594b3ce394feb9d33ce37279d70cb308e66d5f7853c0fb9f826d5b24bcb4af00dfab1fd8f41b504894178c4ab81a083cd91bc6d02306798fb7610f07660feb6252600733d4fc975dae5db8d5bfcdbb8ebb4766b5154a3d46ad8945ab63772644a2ba590c86a1fe0b2fc9a1084a05c879058091c5bd54830ada4554872bb69a9d475bac26cbb794ab7907371e1e11eaf1664ad0673e1d185570c3131b945d16090880387b44cc321413ca004cca195a7920f98cfcb072621795bca759a8407285ad0d369950b7376159fcea4cc03269b16afd6011389f60b8bb88d03db9622f393820864e0ee72e35b2e2c2a61adb59dd0502ab9cfc6cb72ba956058a455445b3c2de20b775e2e2c7a51c674879309eac2221e120c89ec5042d5fc986084286495152dde959b361e4804f38a16dc8aa90e1965e9c075af08cca92d623b072e65bb01f3c96d8b3d826d3d9d495fb1476cb62e252ef0941c55e24229dbabf8c0ec033f55e284926cef76041f9853ceb29562c06d47d8b2c5243c981bcf8dad14038e24bf2600810724d9baa894d64a6bad95d27a9229c501cd16468bd71e2139fd6e6db8f2965f13808006ad5e9949e2ad0badde9ab50d01ef0d4120528319480004268c61c7be5cf565bed017ece5e5757c8124a42e47ae1816f5748644f00a3970170e185a2ba535d32c26a5ac52962e7d6f3dcf0e3d38cf5b1c56358fd163283a576ac5b04f3a27e92fb458abaca45a3b89d22c2629cd66cc19a6937ee5de88999e5427a4143bcc749b919231fc2871348bd25b0f71d895ade7d921cf5b1aadde2ae38bf1bd175257813c9368559f2bb98f763edd974ff07d3b26242fd7bf8c0366fafa8a9a54de1b31cf59eb29a5f7e59a23a380eae55133b6cb6f979774de88131335abb39d37c6b97d8341360e5cfdeccf7a51522766efb477f61d86ca704f96511aeec9723ccae29e2ca330dc93e5ce30bf3c6fe4c8120edc6bc20a8e7207b728925f1d7a9e1732761ccdaa75087923cad34b1c1bcf0dd96aa920e3a087b9b7192999e2ae0219abdd3b928412381a870bd222f71bae400832e19227a0a366f8dac13bc1c6e0e01f156ce80ec2db59486682da37705166ed28dfb83213251b09bc316f4cd0bc042cca4c68f9e52c015bf9060132bc6cb53204e25a196620d8ca90c8be6cdbc059fb726dd68b31f2bcf8de8bd1be1e57e8428600f7cc90df6d15b02a1e7ead6203b4f5a56112ac108954d185a32aba40864334580bb967b255742108e4de8b391dc621acf09a29051b4208b9aa7121a3e28847ee62bc0dbb4e631a15702892bb53370e87713875a21805447fbd3b69f618a623a3c9ba0de4ac9bc0063276d235922efb1549cf6ea72353cc06899e84d6d30cc314b672973dce0840b6b8c37e75f4576b90522ceba1efd160f2992591ea693d893d76b3db0b9493b1ec1dfd75921efa8ae2c1489ee1aeb30ecb9e75d46677c3b0637809ec22d193aedc6e07bb790973666f3becd92fec19e62a762660ee609e959bb06661df4b278b72c4e049aa206cb55a2d213b8f489489874f487e1b8c45325614772a4824c3446251c4e9a128135f63511c5aa9e689e3607c0ea763a723d1cb797988b3010f5bf9e50ebe5b19364e8e1f10bf47d344880cb56e075b30076cede84499f888e3cab40f5bb9af4cb10d9ec63798d0118237870c9fc3bd9d89636b27ce217757ee57851ce790fb3d5f60c2533d56cf179af0542f772f0a39be8343728422c82f3f3404cd410a5bac400e2918b213912084341021cac10ea880841d208a10c51a7e60040b473cd88938f061071f383862440d6dd8897fc4795608411355a0031b5ef0012becc4ab228e0e1874a00b28600217e64034831d1729e23084257401047448c34ef4c291106c8002181c61c21c64d15585f8ce6dc7f07019b84e7b555c2194fbab8873fae93d1573c430b0e0de4fa7d41da2c8f6548a1e3891bd769d657c672985dc9b0fbe42b66d45b6510bd94aa26ca9266f4759910352a0e18a1c2f5f0ef6f8f972ea23a679668c0999b1d7bb23df202192a5e8410fae8e99ccb26c66593e64f8799d96f076a30087e557c513b4c8295d9ac2ca1f5764527e55f4800dd976b3b00f82723f25e1ce3bbf2a7c60833c6fb240c611e31683eb4ed3d45cc855fc2892fba997274b17d65a45f1955f153e70224f6c823192229692038f261298a289042638236a86fc4567f7e9d42a530aaed7b7864c0f2f3a2185f105434f5c3dae9611ebee2d4a4d081a3912638c3d7277cd006af1c290e3db028acfc3f9c1f4f89d9753f2f8201e8b3ebe23408e3831728cc9d125c7948e24c75faf5f0ef7f8f858f3154123ad825a0ce108eea2d85ac1dd8953c11d87d2aa27dc552e0577dce92ad50aeb1e5796655976eee2db7bdf45b1d5278eab95e35aad56ab15b3e9c36a856fcaef3d3d16451c985fa55ac9c89d347a7957e3f6f7505cdeae228d220e0c964fbce068f44414f284906d62998c130f361f4f3c767d5e3e3a3a3a0281add1aa3e118f488441ad13b4da091e3c620f9e78228a202408a275b69b96c123ad6a2069592ecc7428e2502251a6bb13c70d7dfe6a3ce03a7a94a916471d2d92839ad5ac4894fb9710d5a27fb56811c8926880aa7ecb2c5e1a1e4dff571681aa3e2542fa094a234d07dc15d42a239e88af77548bdccf7e1471e8d093e9d7caa26d521832a488475492041246271138a2a8844389dc167847e29436a4ae0259cacdc7c709b8f5340f769cec1012aa439612df805bd88ca1dce5a666a15cd7361e9478036ea1d566c5d9722bb548bfd0d78b74b95aabaea36040576b15f607b32d6d126b50709789269b181aca72b7dc97af63a96b4241ea362236b5ea44d384c0a1502144086d79833c2d424bb69e2986520a1440805c5bcf2b83090e263798dca00709608fbeadf3b3e5f235a26c3db485b6e0ae4fb621e6294dd1b2cd277e9e368534d259af79c10b5e178430a497a5b60d3125b673e08e4879d42a699422a1f133a4a4492b8810c1b059a2c927e47ad6a461da10f2319b5343f9bc3eefcacf27fab53e91b10bce2c9e2cd2aa99c553f5f3346a56c99b0289b34877aa7d531179f4686070834c817c522097140805928d1e4d3fc1759448b682445ecfae2602ee7a0b5a5ee0ae2022ea79987b6299ea24fbc81bbc9c57c4c868c6286f7061645ba2659737c0a255aaeb1d2cba28aeadbab0ecd1aafe1092a386ac6092abe02150a201c6e8a75c59e44a353c555f3e814f707732914f94604e66218d648fdc973de40d4c4e8e102477d70ca411c719ad68511a49a30cb54463b993b753c99d348246a016d2481a49a34bd26bca39a5d1d5e3b61062b0958b2fe74dfa795154c6ebbae67c94315e71ce0b426c6f2dbe2e8c6ca3266b7ccb4753773ac6eb8ad7755d935a88b181e4bd40f8a890544a29a504a2555db7edda866bddaebd39926baf41fa46fa856b905c23c1aa28d3a7176a27e11c27ad1e6adbe38a5adbe980d1bee9d56955ab6c1b38fa4e468419562f3aed8c79098451f91e152d5914e78e621d2ce30ddccb9d8c950c4829841976ac5e536699cd32528c8f0a21a284a144b2262dc14ab8022079fe92f232998edf7124ef4ef9ba708763925cd23625123a55bb14b4292dc32abda426a53dbd9ccb27956adbb50d16c2abc5806b20adfca83812ca7d9cfcaaf0c190fc369e1a5d6ad52f2f03f172626e2ad870943b1f729f3bf1e0524a4d560dbe93524a3827bce09c730ad97a54de364345b201be9652caf7761d6e3cf20a725df59a53c334acd639ebbce60c326fa376ad406e43c0e04ef24eb58a32fd12b9cad9351849e0b2772f59d57dc56b5e184fbcdd2ee944441c22f482425a350f8590c020904777ef48661f240c0812659a073c0254f5a13d657b89bb938d580bc1834678340d8304818343b08997034f2f27ce295ed0ca90069192520dab9452795dd725e5f5cbc471b5d6edba64add766316cd32e18e422d56c6f079590fbf2a561548b05b92e292f4da3d24a098334eb745129638c9262355e53ce790529dafa24052935ad556d92010733bc360319704f0a1ef4206734991ec68bd289d54829959472f3320def578b81d637bef77b3d70afdf7db94956d8474b5aab64ab4c36c608b38e0a5b28c7cb6e9c09b51d5cc700c8c717eff6e5803a608458b09df6931f8c1a881a588054ad646bb3011abc9680b7c34599780aa57d5fbfe8b90ce9a4effacdf1037e03d98e3dcf0414a0dde21cf6da15f0762cfe017fdd048480003b1a3e4599f84799786d9b8165883b224240801d7bfb6ce3b9decec663adb442e8c4193b92ba0590369eeb72ebcbfbd3aaf8eb12d12a89352470dd1bf2ca9097789e32a2d460c7d84fd6dccdffb48a883770930626a255b18726e4f937f1935342794d7ad9367073e26d083aa30e91aba4f4a226a47376dd92ca2bdb66d04fed04351adeb681ab938866c11cb3fc0f8dc6e176e2df2b3ab2efd51ccfad5edc42155168ad2e9d68d48c72ce4661f5a230766cd9dd9d02fbfe5a0bb97f280c450883a488835aab1e7e5007f2360e5142096196a1305485475d304619e30c8965ed7ee730d856cc39e7a473ca28a5d62719fe5d709b9172994c5f3075ad81ed6b28e0ba538e5ac7752b1f82e4986316728c7da1937a5119312cc3301489d58b4a29a39431d2cb0636febdc8e8688487b422779a94f20d5a6429a51008a117de40455f114e215584f105c25f1784f0c22a855996499e397f5d7f3a3ddf8baab306030e5ed7b547b0881db3d70e78e4f8eb91f29362072320e518a12abbaecf4bca79d54ae9ede9e9252f7a9dce8a5d765e93d2edfabca82dce3929a534d2d3a6951ed67c4d3b85e4eea5210a1d80bce0055248d144968f6ff3b152482194e3a58f9d97b3150617b8800d43e811c4cead47c2a00c5048437e4f258bbe4022fd98ec004cdc4b6e1279a2908f12ed62cf2e8dee4ca3553f529a386ebefc9352add64b884773a54ef2dda97337cbc679611f277f1b037ae704ff449926e2d66899bee9be0680c683eb9e90924ba3651ac32c1042b3688022bfac5d3aa7256558b53f374abaf144ceda1b2d4622fdc4fca6c8028b2cafdda705699add6e31cdda5b4c8b27d9ded2e576b8f1906ee3db7c945ca7a39d1b0f8986bd70a7747d94dc64ba89090b7da7a4051a877f68b080b36fe321f5e60333e956dba6c8e20a39db922cb925d924d71cc7c126e47879b73c379e29b228c952a9f426a99b4096f344e01f1a5afca91c89c4693fadfae1e87b443bda56abbd360edc1bb2914ecab0ba3daafde85022b97b434ccdfae1da85887d2f1d1cbaa0cd307a5d35e29438099b745d421bccdc0dfa214b5e2a3908be538ab674df4ebc2f4313131fdc4b57e83ba597dc20107ca774a1ef70b76ff6bbc692d24d4a2525f8b1847370f3144d3a9accdba92816ad6c09e3c53e6150a6116ada49cb36ab6d3c37e812dbb56b9797361fa916e4c36a3561d045372064c88075a24148b399a65d9869fc0c39f1b19a36af3d32b71e12212eaa3d0c62188475d2eb6a2be05ee457c5165a99966e8e1f354ae74a988828d38fa57330bbdd23cacd836a80c9b9d72879a9e417ae61720ee7f871dd042b11655a47ee6d891adc4b700e0ebf2883c43603cb17ee88e09eedbc9dd23749bb77e466dbe9e816607734c1c177709bd8ce81dbb699e53745165ad02ccbd6da9a65196e70070c22691876bd8341d72525c9252f49b2697faf9bc669d750ee60100c0a6a718395cd8a5b86557a5d5b5ba9bd66c91ab518e7bc9a505549fca28237a795926e95527b556de399f3da78e6a7d5b0cb395157c4ae0bb5d588611776cdeb9212067e51413cf2361e4be57ddae5658211acc8766e08805b027c6a9ea75b4f6789b38b5e799b514a6ba5d7e99661d73ce9b392485aeb0d68b58bdaf9ebb5466dfb9661d57ede6acfbe56db23c32a24c19433584d04efba66bd2e9bd1ebaad7ed76039b734e7becd2eccec767f36f93e791a7d727a4eaa8044c17b5518e3a45342200001000f314400020140a074542e1683853759d811f14001096a04c684e17886110c32884103286000043004440004440300007a2192a27db2e369a1bcbdb9585b6b8dae05008a6c2cfbb6dd988f6a68a287864374b8eb56c4876a4bcb25c94f212656ce00c35c8e83ae1a0026f8a3c2ee5be9899dcbd03b9d30390ea0ec10994ab5dc4dbe82dac5a1ca7dbf35767514860799b18eca6573a198ca039f0da456ce54102e756863754a55f090f966bc81b1e94e880da0e42d4486784638feb3c32172764aeaa2f567bdcbf29e715acd5f82ebeb73eaa5839ba281a1820cf869fc8779b1af5817823eea96ccd3b6e05961635760c17e0662976dc38401514a7634ec3bcf7fdccd52c6b4072923770130b700662a0914cfdd4da2686b96affe3ccc112f65dc360f22a8ab245f787f49b7bd453b0764576f6f45a97932bb8e52ae75263483e26bbf2ec993c312d17ca23aeb0ff35ba0461cd2368aed61f582f8a066a52caab7315bdcbd02bc28569f60610d37935efc4ea6b12f77eef5563758b994beb9088e3c5eaaefb482daed6e295ac020a07e5a53a60ce425d6dd92d9caf6edc15ea89acac81e862ace1138be58e06d9884b5d3e588eb062075a8098fffff57848477e554bcb08918bf1a83316abdc08e455d1cc015691dc91cb0ea856cda42898a8b1386e0a73dad04f2a8e59bf3c9d74eb374904b3510cc1bb08684d7b7102712671119cac1adc0aae9b017207d4ef1e3936f51d5283574d4974a86883fa36b5bcb7d119319cebc42a35777b6601c47f1441b43974372ee96958f3a9cdceeaf40ef0cc1589625805ca9d1a8c8403ac0a226a495743265bb6308e60ea365106e647cc32405cfe567daff9ca38c2dcc33b50ec285a5cbc00c8e7f44bcdc2d3863f18308f89772c498b2c22d42a8239cf7e3c09c49c8c902c2696643d2076d03bc7cb60ecd2ef6c90475e8ea61646caa108b1540f840a1ac3223483fddefbcd5a98de190690f56f372fa1a34fe7155586a85d50f9dafcea5d4484cc14fa452f8f98ea43023ecc0bcf102cf4cb41f88b1a1103b9acb966a66652f0931f7720d5e971f595026268d9111963ca9da35c01c8b660a85abde589d023c103e3442642d4063ea6897207ef8160efcc19ab8526b6902bb307c05e2a8e210a066d74f00b26ee4669bd55c6d14126afd021f2345d775b0b931cd85052e45c5838b37b045caae4c2652545f7d3b9a5cbf7d51d101dd504ecffc9c37422e221883e61bf5fdae68d9366f5693ffcfbe1628a4ddc75021eb7493522cbe00cb3ec318a06c24b175b69d2a351749af5c43aeff56597aef4e979f8213416c76dd6f02d524aa9e302da3c04e163bc1e1431ecf40eb341e1d3357c1db28cf813ae309bcab205188189c2365724135eadcdcb709b17d7e33e82df8a78d1c66ee4f5d0774673e395126e9c7703fb8b395cfaf95121bf5e4d18f1b69194dcdc7b2a14e8a9fba220baafc713a44103784cac6d4970aea1d65f4d5da5d7d302b01ff0d94602737c76fc3e86587c48e27e4273362b8e6f11b35a6c0708324fa99340fe12ab0cd4887b8e38ace14bae1d19e343ce4fef2c358c6340d51c7e90081d8d155ee614aeea122eed02094fc2c4a896967665e19416b63729489f44c6903857d1787200992b82742160e3e60e501efd2f4b41db9bcd2e246a25a3fcf5fc388b657b2c0426e8530915dfc9a5c94276bb4149d91f77ba7905bfe674936e116fcbfc308758d5b7732a577247941a262271f5b74b3f7b3087f0622b168a53421c0da6e256ef10302558993532e120184419a626315b0c688da2b061022a61ecc068e29013f40e19d06e24248a320b0118e02dd4d3011f5f3747862f400ca0a7613afaaf868e7755532edfee785e96182fee64f7696a89cf25c962355069f30519a1aec9e5ad8f32556515b525529e420ce53a9478a7c33d0123e7a3e2c9b20cc14ed01602004825335cc5138aff2fe27cc5f9114636ea2f24d5ae7caadd59a1fb77de267a582798bb82d2cde4198a0737696a91ee020e7dfce49f6bf178cdc06e11d65e011797c184cf93424140b875c42e2c092f84522ecbcc03238d479fa1c8b4e8792805980b2457824aedcb8cffd3a1f16530c08826649f70cca63296286684f49d22edf00682e73d45c212f91f686a79996f1f7f2ed516ac8652a541daffecd7d3f606b2a3f4cc68a0c1051a2f65d069ebbb408626cf9f142cd0074d8905e18ec22d6e0ddde0328edb30976b48b5e354294bc135387f9914f531ac302071e918747cc2dff5e87b968873719c7cb1daafb19e41bed85ff6983faa22d10336be76585e63d3176a4e025d26f62404e62bca4949c3a165276cd9e6fe3a85ec371f77612414dfc14e032be8f5e8b4ea34e0f26e5de4ed3255e4e8e133b31cea22093979b70eea3bc7fb27e9b99c51eb7054263203b8ebba0f854c8252aa0873c39d1495f328e3a3432c0adb4e77926fff84d51d7eb8f44aa024ef8d0192734dd4c5becc657c35f3004b5af32dd6161ee3de09150cc8467ab2bd8f1040384030fd05c47de7150384f37151832c6b604c2828d05688a0659d70b969681907e0ab193a534044e5b2da6f1b29e67eae2b01a14c4f6894d8579b3b2444e0d60b4c159c437d4e59d462cbb69a17744637f90d13ebd4be880ad6ca161c73c59b47115a2fb0ac96cfeec951d7678bf35ead87ac000dd5be8d0e488ea84af0c5fd65dd42d78c0a10f23df90e0f9e9f2c82ceb311909ebd215877abeffc3d20f0d58b5696a77a42a9db0263cc71d781de755f9d2966d4aac137ffef574bf153011e37a7f288874a9913a0298c7527e8b97f28d809b6878efdd11fa94e5b805c71a4a84509edc68e4e7d0a503ab439c55fed1fc8a5cc3a0a368322700c957bfe79281f2a580f026e001cdb290b707b7280068863f381d5e8d7d1e594975cc9f6df0fc5af90dc6ab9039346b6f066d7d4fefcbe2763569b38d5819cb608f249bf9fe73a6c5a6e4265738949993fdb3aeb5c36f9214b771933bd76cce18abc82be83d768085e5f34a63a4b7de34852f63bd7c519734f5d84bdeb6cf81b45c07139b7c4011e1786977e741fd23cd8c4d154f10b6df7ed3c7a607c88e1000d959dc0f66e406f30e8e4552f217e137db8d87194c944e3edcbaa95a8cf517a0754b7d52882b43b0482e87a4f72a2ffe254a7c76ad7d68090edf373851559461752857147985761e32fc17e5a242cf03e3db45c4f1bac8a3dd490bae760b6475afd1ec624e21414084a6cab45ec0142606192bc8b9ae0738c2a8046bf7d7cbca9e577a072beed18572c8b458e1e7bba2590df8a0fc09f263bedbbb8f4c346d8fec82f6f866c9f9b9908dafcc55fa5c312cce876a6a6eb29a6e191dfcaa238c55ca9afdf0717d48f5037adf4fdb417e4fcb4f6661af80375e2e9a2a2a7219ae5528aadbe81d40e7f9455db8674d4456e8cff92a09c6e35a37f5546b5d3c9f75e37a58a557a6560ef321cdc4ccce66fa9c7bce4d965d2df77cc8b1e82a408ca873c975c5d4f08919649aff466a4de77e6257700097c8ea7f3539910a0e747e312e4623fa620ce4be3dc4272a6101f383b305387f2d0500afbde028b9cbdec43e1fe796e692fd62209189d9e55e10b52b79586b7216cc4d066e75d70dfb787462d503bf0dcc063dc71cd04212e7d9d33eb5493a1921acaf79b64a70b13c08066dc9ec5ccf0a41d1188e1987633d7236a93d280f3727519377f90a96e15709b90436a213596be011780e086cebfb5f6fdd2079878d78e87b0488cb11fb21e403e797073224fef2654545802f580945d0e6dd12237c459027d42c0645107f5720206dc008f7640115b9d29e774e980cd4505084c4bc51125192ce6a19e0aeaab4c55e8fe405a485d446cce3259f626ea6c21516e22a9d7014aca3ae5a0d8151da5dd425a54e049a7fa5f8790b5e7fac7de9a591474b4dd75964b9963b7273de23b6a3d8f5288791305f171ec5cf48001285405561fa638f89e926b8240bc086e59d5e604eda6f525c596342b89be1dd135c8bc626c3aa04ce009cc041f20d1bdf80e9a07935c79501c7ad7e8d9a2c1bc6226992e8d735a4e8cbb18270b2fc9e27348b1108be27df45b8e30e14d5802a50796ec48b75e9a4cd5b14305041a762ad924770eb4d4b445165ca157b31640445b17c4db3400910b4d0adcf10aff62d2f648ee6e7eb5456aa2837b92fab82c78e67600ca306e27a1a08a04b9a7005c19c39a18160c289fb8e530c257f6656ee572dafe5916d3eb48dfa8391bd7e2d628fe68bf39e508e4771e2e9c0e4c987718035147e8a9de19e58c93cfaaa1047c947ed7e3c98dac586da0940f7688d9af6618d5eecaabb88b4993f6afd89566231b8839e6840c5f5bbd64d4e65603ba88b5d2945304394e15561f682e1485819e19c75d48d19997ef188ec139dd49a9ac027abcb534861dc20fb4c6a52c20aca870951fcf575302ecab07485e2ad550b5171493279199cf047348a48fbf00b31386c50d706a81bea53f1188ec73bcad3c08d96634635a483dcb1b8cfdd0c53932c7664e42d7769156909d6c7e29440e41aaa58b4ae6e6b7c575ad6c576cb5627ab240b36aa14ea390fc2bc6ef62b543b4f6ce9b232b0f071fb1596e0a5d8438dfb0433a0cf65bdcef9683013474e6d9f4a113f71b679f4967b7edd02c22b4fa26a03f2dbf4b77cbdcc98ca965159199c2de2f4fa0a109cbc433010b8f77c47de228daec4c9200ed99d5da03bece1272c6f3d5fb2b5ab600ef5f1a00c2a0845fbd1758856534b75ad0628de5905b7a2bc8d95dcca9bf9ca3f008c87b7213bc2af68de80bf989cd9b93ee4f03da2b495f02f823beacca31d260c216e6d1e98133bbe6fe4a3fb8b7cec00a12a50314e705847e69d78b2260e7bc6963bcadcd0ea4d997a828c6ffb4e43303b45196a593b464ad4abb529eff21fd9503829f113100f0e0cbb5175753cc724dea399a7d55c879019a645c08a2c509c1208a71fd2ed96b2eb4ca05ae2aa78b9e20f3bf28afbfe453a513376591d66b11cec3e04361ea1163ef31529855629499c9a22b74c144a40de73d8c1ebdcbf0454e843d7749cd415d5ef6577535628c7fffd76cc50e63df00c3b8c800eb9c3a62a9497f442127c97fb2483fc6749c53aff4a3fac94e1602f275e7a8919ee5b93041b9dac45d24f2fb37b5718536c1a8b5cb98f937e9ff53cc978671b393a8e12a1ec4c302e7f08f21d27166d6efdfa4b792b95843f2a5685d4ea0309f99e92770598223726823868d2d3ba60946fc62f5ff3aebbaf1dc1ad1f6a3c6dedfa308ab278684e87aef79b00ac75e0d9b5d7e1ad344cd238fc66f93acaa7ffa74ae6d6f429cf7c7bd7f1fb0b136fb4d6c160e90dc5f36a47bad117e05bb7c19100a544271ba7a9c7bec0ca51ae8bfc7d5b67ea2fdc9984f253731dc346766de4afc0d0cccc3d6133865c196069284f157ecb18eb399dd397bc4043da41c81eed1a466096b74fd6823ebe709d73b812750347b6d95a557799831218ac4a653776a001271365817a390b31424616310f50da906e0e7082cec366f1baebcbb5c488a72fda461b585e03ef80d37318b029be1d4f07dce2ca38ebeea0b33838216e370273e7417a413e298c59d230115ab09921ca765efa133c4d29453d136558edce4aed21b2073fe382083c17f59cab46a161e695031108fa45c22f779c8c308d89caa463da7e4ea6ef4361c55f2d24b374eaa13410f279239ce2dc5c87f79aa447c99273bb49e181491b5ef04783c78932ab4fd83a6139241a89dda69215cc38387b82fb4ce068e8658b47de2be7ef75d04142e88d705d41850fc0a0f38eeb63488381a53a9d62273526ecaaa6cbd33543d3fc4a5012a4af08095313512d510c2528f67f5578f473ecfbe58039d4512f9283ed8ee408d2cb645563e141cd85fd8c18bc5c07b0e79ee60e08eafc7a63a92024835cdec72d4b7b89e9d7da1b2d22cbad3ae976ea27a0bebd43c4cc3ca9c36382b45c285c44af8a701d6a8b33b31606ed9d03384c5d096f93070b298f6060d85a1f18af97b052e32e75d44a6f018114a1c2c27b690977348d7dee2d0b1f9abde2b5ba9a328ef30ea7797728739d439f554b57acfa23b06f1f02abb9d8c9d2a1257119646a8561912f5e1d649a4411307466020443fe68510d72d4ce2a62a0bc14060a52d0fc2d21f6d3102200f52b21c7b04bcf67a63005ac8a0ec958e6f60692786e8b9022855af7ba450ec5830cbb54d20089d79d8dc9b5ffad8282e0a6236da04da6e12fbad9dc8329e0c711f8d8eb90d840407b9238a0c3c47b1143b2a428fc3839c84113b44f2fe615e44ea418c73f81f9640202f8cd51ec1ee67ecf260a0bf5cb8e25783d553131a781cd790d2476b0289fdbdbc590041138d9fcdccf4bfbffe0e363a2c8403fed886d52cd2d9e70361087bceac4bb1c5849b54d508d3190cfb53241bc9dae03a56e640272de27063669d5f4268ae02edc7cfd44605fd4393aa84eee0c407fd2ea73410d668e691f1797d3f844d78dcad42e2afce1d38a924b093705ad1fca4f6d76f9054e67e726b277f5724c553b74514e06d5c24159112c8a42fd2d920c7fb9643786a3a8793e060e8c6fd9ed38b9b7c4c15e2c4a3e141bcf7213f22b4bf52d4e81cc084595d4868b404c8002b0e0406997861b467f634fb10bf89c27a302830b8d3c7fd198b2aafc17ff289c3a69a137baa9015915b15b0b47b3d9b17040dfd24b618e5e3f979ee1d0129b9c2f03be77c1a10671058bcec8da19ed3ead673f9100289f7532bacddc32016c35feddd34c4c1b3a8d9379664183d9b1936d0168c7d664c098b90f5505cac319433e59ed1292fc1bea80d1b4415c31a94c589fca365d0ef0cb2b05bad9a38680c4085c9f0b24b1752aa01f4ca2aeb8125339e68c1845b4b792a0f11b9b63e00c3e29d3479472e349e4212a68b4dce77fa34d55796d4562a618dcfae3a4b8dc6498bd91a4b293d48df73c9a6b6d43869b560719df5c20e9de123e562273fd423935deb5947a2a240156e6d0ef3ea66d06ba2fd9a47cbe7a79fe7417aec772766a81b4db216b9d74b6cc65390dc08bd30c3dc0f131dfa91eed4f14adc6468e00f4970e991548702c3a7a5e15009efc441cd2a83342113c7008a47f705a84cc9fb047ca24252b390cf2d1dbe59873c31f88ddc4c49db87f52a473fea33e641ee45fe331b39dfd083a0b8a46f466b8c3493c11e6d5d980e574a349e4ff8e535f03618584a6e4e27e6a9091a0ea8645e0af0cff77146a5fde162c5c12d89aba8f3f769a3b7e5400fbf1fd67b3f11d6b4c24c1f8c3c35524a71d4d202a9cdd2b3d64ff8b1a6571700282dc39029fdc6d44c992705383be270612eb2169328b713539cf724aaf64ca361892c512a7c1fc97c1d8a21ff15bf768e78a4f3a1092c0c2f6c63170c17ab6c383562e419cc724134f943d1a15601a8abf2c015fa67ed6c62ac4977bc0bd5934acda7e42daec3ccae222c1f91c461c9754e92f2fee513a8096b299e8be3415c2c5e0ee6686e4fc7fa66672117ca7c4c1ca2ddea40689c03f68c729d565fad2bb5fa270117f0cbc76662448707451d918d91b4ab719a6800b06872245a0bb4ccf9a163b202e5e651cc3324524214f52f3553e758c78dc81ca0615f440c4aa49b1e59a23f36ba83eb884882eb03b34aab2512338492bee72dbbf3f20d6655e8b5ae9771cebf4182ec99fca27215f968b7177cd5af08df161e24c5fcae82764c8019a51ca79c3c9ce2538f357a1b777e10cc90ba6f83da4986b24e6a2c2318a77fb5abb965654e5adeb028189387536665fa341fcab7c4fc0608270a6e21d073f2c184a274a4b7a3e8c7c60d3b0af4685361fab8af8852543fa4e4e933669a1418ee27d751567badf824ebc4ac4f1ebc84809910d232567c8962601e24edaead886df87ffadde67672f347dbbfae8b6b3a3761c5371217a18d7546bafbe7ef1780d0c0a6ea7890b5113606fa35e94d4675f9f7ee2cb2d60307bf470246c3013f51a1ec7a129bf989118086f50b61e28e7117807cdc5b9c9fa163c54eb1acbcafb559a255d92918d9170c69f6f9f497eb6b188e5d6f471e5f9177ba510eea8180afe401ab2ae1e5ac40eb1e4917aacfc38490c7635ae045f1d83e995c05b2e67a0dc84871e3efdca6cbcd94596d56a66024ee3c98aea1279a0ab2922478e36db643521353cb1be9a31accc72c8777e7d8c87045d398dcfe2dd0bb371f9c6520bff0822c3e104d1ecc835b74d7ac91e03e086bb63a4c29b0a38273ad0641ec2fdf735334e2de19dc2f906fbfce342906f41b72451481a657673923b422ae3781a259793b56ad8d075ba8c4c9261934f26703a53869de58fe55e7e75c792fc6482edde4c759095a7c9252dbaaa8b7dc29d9d348e877b876bd7536754df7c894252070b66f764edaa1571a359989b95c6a3d07d09baa554d2e820879c2d6fe903c6c59fb38937867a3b6701a84343bc5d91c410d40df6e856d464e39270d0b6112c62d621359ab46a32d8140178bdbdfe440e6e958aca313c9b70ab17c40d54e06045cd3147cd015778d6d70013abb090e9df5b56f5c59e9f2e634c2c455d887a878ab77270c2ed15c36faa0e9db94880ec30b64af600fe76c2bd5dade82dc5025ebd83834b2c7c1edd5b6726b59fc1a2c5b40a5e4560a26d6b9493f28708d94b42ea422ccb631c8c38185bfb6d2ac120d8b1609afc5dc548e53dec62a4922c9e3665614d6a086c6633bf4f0dd5d51e381e06d81375073fc5ab8d01212775d3e9518c108d10e5ebb6ce6e047a4cdcbdb4edb0dd0e8ae90c28f282dadbbffd2536b2ba06b28430d51ed84f003408f7a409e226a075006dbcb034170534bebcf3085acb1bc9c3dae2c3c3418dcd9b28b808fcc453abbb96dbde5e1e578f45a5a4f4f4d1f6a1f9374242d451d86f5626ec8d22f779f91aba79a24917df703980d842f8109d4db9910638d770edcc984c7b67820e0226dacb3baddbabb43cdb8cf4f2b8483e1439f3072f2db014a3f675bd86f433781d80d52f4944cf2d78e42dd1a8c43e85144605985e71251995831c09697d5c39b3aae9e1baf06859904cd41f184f833f9b619c89fb4be6dc80ce2a28ff90eda120b8869b9523c1c130f065355462256f6020095b2aac4190187292ba1ef904bd4d998f58cda436f3ff496982b33bd373d14cea9b796e8a856321b4bd29b6f4ea2e16cd2ee348d81c82e10795ebe9c0b97f3f636580cdf3a45de7117f6c0ceaaefb8949524963593bca2dedc1d32d433fb2625d15c222abca7b449d4814a7e491ca8c08289990db36984cab0210157e773f07e86ed0d3452231c9966c6228e260d0869ad34f1dd3e1aa6eaebd14a871252351fbdd072b50d4a8242eb5c93fddf0fad17ed84bc98a889fb2c8d4e2fe0e6a2aa4665819a02c229d824261bb5032c184e3c1f84c3363b210b21e702dee6b5348e34f6ccbdaccc217e4c3b936e49a1ca21c2f5c8d1c42219e1f9efc6a57db1e2f475a51846d65cb107f87980992f7aff6e7fac1285fed98af9378f7f1e44d10275f6c0fd054e2a97f72340c1121b501340c3af6dee88e622c02ba348ff13d91277924bb13f1e77f80b388f592a82bb126ed2fd8e2fef64079587c098718adc8fa304542c380a2b9a0d0baeeff7d0559c9f8fd07e33038fdaea821f89157f1f7eea8215dbdee775dc7353adfeae6efb1ce327cd948de0094d786ce25907488d0f2b9656cfc40814ec0d68ba1bfe55de378b8532614c49be91fb27684edf100fb5b445f8ce8278f726c8060666a16cd80ea01d1fcfb0891a9c7bf3227855010a37e78c6a6c05ac9b90c3ad56de4edd63253fb9fcc1804a77628a5d8e2183362b8c0c8c3848bafc2497c6543a8320bd97f50f7d97c888b47cf71d394232a0f6b2554e439a1638f218695e764292115c262f9986694a966986b20713e807f2f6852287e1d2bdb653573cf5bac0af095ae129268c20b5732468b1bb66644db03ad9cb259a283d04750f962f6fe1931ce1c8c84c3ba01ec31e30725b66741da0a5953081cc6161780ca8001b7862eea72aaeddbd57c7d427ee6506ac7d855fe894e3c5aab4043d0dc15bcd0ba1ba45f5a928f42aff24e7a15588ae1ec46833d0fee8a5f89a7fe57fd048569d3a265c4923cd48d6f0c790b81424291b6cb478fd7de929f48596ac437a796d9c0318762672271b1bd0e99891591d40b8ec850913f76f3295bde953bf405934d38aa4bb2aca4219a5de834757770036faee79bda1249a3d775030c6e39533ddeecd170c35d28f9e29d11a685fd743bbcfced45dca8d726f91bafad5b891fa58387e3a86ae876b982183fe3eea5fc42f92af90eea89887cb65685325c7317ea05c254f3825e1fcae91fcd19fc9d07486a8599a675f728a1de546ae74dcc784fba61e80c7e4772425c6fa00b52cbecd3606e610c59ebe393fa7894e8d70e2bd4794f81926287d04537b92c3edc7888bf41092a51493f6ba344272ee5ac10040444a776210bac517b4f7bbe2a6012e8d95008f4af3b2a808dc0bc5890aee026d11b8381264659681c8e00a77cb8d805c0b976b66d7e443a082f99608e539f9e3bf685c601c2617b9a58642959423b9521ba98c9d06c356ea046f26f6a166adf5c4c91d8cf9b094e653e59a0a26fa1f28304e83e1c11439784136f9210aa14c9c9530081f1e61c1a218c065384c7c3355c41486791e1e7c2fd52cdd41cc428de8e2129e3bec0b1c5c36333032e072106440d7d6a81ca03c790510b79376c7e7aa5012680e3d5e33d1a31f522feb4bd9823d5a75162ed454a0f04b6920ea44bfb31648441a1ddeeb95275ea41f4b6783ba08c1d27735c6462114070431f7c8f50f6a6bd16502193a1b63582c1067b435105da467e22d74218e8bb118a985e243711e0a61bbf8f4cda42ebd07a7b1228874455f7b6206132d9d4e5d3b84a48442c9ce472901a7ceb6993a1304acb35e5e9e1462e710d606bff651c8c0c367fc4a622d2747c46bb15612d52ecb113b1f52ed460c62a83897b7146e5ad557d1233d48db65fd65a65d9b01306c227c12b84a7cba94cb47a1aae4d1cd263d554ec948e99a926fac8115ade054a581443d1e2d00e18c2e91d1e99179533684509c17deb71ae051705845c74e980a70d21154db9baf327fb3a9289091a195088b0741103c6317002a07fc23ca419af557dbb3600332e8a3ad20f4b6875e542cbb03b19cea938e6ca74fc21e3eca233eac84bfdcb694530251ada0ac920adf10944318cb0428b75325da055021e2084a39c8b8e7f80f3094a13935a64fae122b5713864507ce6dd9c9db4927d7be39d8eba35c14a1d5783f770cb0be318cbb8851e0d874f8ad5937b7504b9c1a3d0e1d994cf3e1a81c07007f9bd67785462ba0b9ab68a66127d6fd2ee29451945fd7cbd40eca4bb8e7e8582bad50a529c01bca0a31d81d42df534ca687109785ac7b2ce28c58ad9fcee40842053a081f6830559011c36181deee31c58b154c0802bd89e53e83190ee06bc1e12631764f82dde099a9100686f8fff0b03cf5831511c45b267440031fd7fb8f810874d7cbc02df1b82c3920188f78dc59a9837c51bb66a71c3537c95c3eb3260d4a30372af75e91c0ab170ff45f5b8c5c4869cea6899106a0b1ac0cfbcc28e626c11130ec6a489e49b3755102d96b32d2066881c6fd31560a467461ac0cad694ddf392bef9161013979a72104ac8a793cc7b996d95602c8b5e889c9a6f94334a592581f492fa63a51d20e1a024436650a7519ef5520c375f5d0905c7a4c62c5c66619dd8fc767f853f7e4de2a2bdd2168f83764843df51068180f8daa343536e5252491b146893e9f1a295ee6dd78c1b4efe6d99c9c2e10a92beebe5194df750af2c76452aaf026c91fab6585b28f13f35208028172433840289f6bd4314b1dc26458d6e301785058ccb6169e3569ef2efd88a70209f7e3acb85a9e54e10a12b7f5876726fb87eccc586a6f9351313120175977b59a47572c301ec9c3f68f6324f5b029b1ea4db4c8a675e45d982e1ba83787406e45ccddf6474206c3826231bf7542f88ee0e97bd86d6aef2a31ff58216b4a4750d16e92a6cc167096711e960bc12541c266c169c342e730b25f30596d83eaec2fb8d77c413dc2504281f1a80b9d417378bd0b0a35aeded999508304c8fc392862988d9e5d18abfcf36042526d75deb357b3bd7805d922dae7bbf0ec7f7ebc52526426efc7e988a5fa9889b8012164eeda59f55d000accf805035979b3b700de1d007f03e0dd0760970040f99d0fa09ab1f4d019913ae1def0bcafc38f33035b9fbc693661309d525a155fc60afa0fae85c4e6049dddf910776f8a4128a7b31242646875ca556f0ef835ab0bb7465122e810f17e73516b92ca178b72416516d358196ffa54c1ece38622f71cb483ec18611c25d5ca190730067fbf94bfc0159b700ea8c66d290b500b4882f28db1b3e2c0e48388e1710c5b0fe29bc33048a06488871aac8b38bea13054baae51a8f3390408bf9b24437906b7ecd0990f39f99c5755ed65114256d0c6325ddf03d63660b310de0ba1ba9a2b2a26035625bd396446094c628910a24ae2b1ee742a71f15aff81dded2816dd083ba916347c3f6216b4100a0b19d83e0c6d8c0ee7c8772a0b9b13e7b673b1aaed394040ddfd9526121cf8d2e8b4296d3c5a5600a180ce2cbc56f576d99e5f09f6ad1bb1d81f92bf229b2b7ec952fab435cb13d673abb7b42850627b49dd70974e0fbf98010294254990ae526d5b06aef7018df2c58dd10bcae134abbc45106aca026d2269d8ab52b6dc30a0eaf4e0a4441e1fa2ddbe6cb3cf579887d7970e2951b778ffe6071524af160a31a761730944b1f2a1c97f6c8c40601d96f6f0f1c360d5e9586604d9f0f835e3cca313abb1ff7ac903672b17c870a916ec35abaf6993f7367ead387e5c2af9a0d2f55e33f393516cb436dece496a15454c881af6292748fc6ca121cbe7cc2bc67ef2461bc19e4ebf669a2f642c50586bb4cd9053e7422a6b93e2da7f0248ed056e420cc353fdb9b6a609690f33593f6c27a205f5c008bee909d24f948a9796b9e2e1c416ee7e6de7348b3e1eb440862e824eab6193af2f390c0d9f36f8469a5f27ce064afac3250a64081868e1c722ab89d34b4b645349dd14d9938cf3813709a1ce67dab7e1516d3e83a05e2a2b3804cbe19989fc1a513b339020784441ff402db9195c890c9331b526e9162c490564220f1466ec0af4cb61f27a690a00dc740075d44a715fe97066346319e7dc06b822728a3bf64dc5eac37853527a2d68eded6aefe7200c96f7fa8dad3ddaaeacfae20851fa52682652209bb514e26a9fb23924370ae7c63b262b89a6bdd5d7049a047c28fd56f287d7a3523d26e15a54ccca8558899105470b0f174f29165321cf88205580cd88509f5f1a10bd9abaf11214c176bf2537143b5ba3e81811486495f055899f2d8ddf77ce37192bc5d52f5812ff0cdef95e26513275f0b8d476d76b1d8cbc3cb83c2fa2e81a36cf70459094862908115749865cf2b82298e4440c04f920eb9a547c262452d4953ac26e80c9ec6fa61b62b4ff3bbd15842517a28aa786aa6e8b6b937183ac5d08bec887aa8fcb17a64a5bc894fbb5160e836cc2dcdcbb3462d75b632368a167bd3d7ab011b843c4161bf8213596b1c13dc5d3a191aa84a9001bf639239c49283524a74bc2b5bf7fe05e2677a71317b0b5308d716491fb8297e2177589ed48f891a9a34d9b1c8d4e39cf9ca48c0d8ffa3223f6d0626a14b6aade73d01756c643b82baa2c9081366597746c41b4b4d8a30c4d8294254c78022439c92a4524dcacba89481eb84a1c114d3c7bd1aff257bf30d354f748eaf7135ef6023f9aff3b90a2a8d72e3a7783d6c80be418f4600be5ca72a0b664e813fe92714132367e8044c2e27c68605fb8077e9554a99fe3a9b55fff565329cb68964d886ddb1fba8e3d68f4cd5f842f112ffa17b0db2332e63821234e10db72d93d91bf3c31ad25705d25eb23acbbba424b8cd1ddcbe2e85d2153cc3503b92a6acfd9325c0a065b15fc6196a468b52d06749fe2cda01bd150cffb048bb1fc154e43e91c970c6d8513078b06244d2a6d57d29b837eecfa0f53cfdd7cb2849c30015848d3c7e0b1bda1ac85fcc959a148c094c46219aedbd82e3ef0b8854c4fd9395486f756ce19823e8f9d0cdd83a3bad9526bf63689e9faa31e4745f542fc46ceac734d82b2e5bd3ec21b42f466422c4aa799fed308d9cafe570a2f2dbd07309a90afd556dd5d824bf8256c4dc3ae0d8c927725c83796fd9aa790ea2bbae1e3de0dc58e541c5705a04ef59658315e3e263f7436ae9cd6664ea465ba522211c8c9787e78dc12f7e23570739ef468d3a38f65a5cacca2e332449a2edea38949a290bdec01d4af1801f85742bac115152d986d867f5175136f3f53bd822df0b6ef8f7a54cc618a1ae3560307f17d9ebb16aedf221b867ebc063f42a42c3a39f3b91f05f6126a3de2baae19ff1ff9ee35bd9d62161a42fc895236624c818bfee9dd2244597ae14064c80295d14aa2dac4564327ec46d2a07b77df83ad545ce0ae2a2afe672061315e914dc0a44aa4bb43da39a2f8c3d83ab0912eedde12ab3c471c8d6ec8cb48c137d911adf51e2038a1695e1919520f801ce1bafdaa127559a146e3bbfc89e857cc388cbae8312d304e98b466878ad95a58bc70f959b75c221702c13aebec99aab68096ad7c8dc955005b23bfcf0919cbaf5239f8eb40398f1656c7432090e3b7a32c4650dea5fbd170d440809cbd124236b5d1e5fbd396b3422b52fcd87b2956e1c442d665336741581bb369baea7811178a60818c10543eb13a64dbc7f2acfa25bf55ad2465821277602c8069a3249bcc02d4ac84f145b3941f6e63a5308fcbef52610055bb0611c96f8f335284c53a50786e376705d279240b8020c0062c910ed2a4eb4b8280fe10bec4e2d178bf8cbd33cfbad9fa48b510a687b8cc506922386bbf84c2927f30776c465613d15c5ec28e32182e01f27abf6cea73100c8c41926c501d392999bc113ce419a241dd11a0f1b55c0852fa82b224efcc2019bc4dfc34516fa9ad08f9e4903ee44e20e6bba1816e6b97157e9c0fd36fb0ac188e2f9671cb2af1efe777a9a7013af97a4e8ad8731ec2ff6d912da6f5c8cd6f6a528c2a327e48629b5147941b9953227fe4b6ad62114d8f178208496c89143322597693a6520caf903d35e8a44bd08dc84c9c003f70c8b333d887087b870fa21177e889fdc108fb15b0815c345f86090f5fac842cd4a68cf1596cbd643cc07afa021738f6056f913234034cd1945f186063b8a826aee607353b4f0e0df7d02d06620ff2041e9e4e30b2d866f7a449ee123d8c4c5e6758b3739c6c98f410949df426d34091132a2cb2897a70a6d2eb15cf65bc7ed8768de946125e53bcad55043a1374f790cf6221cf08dc0f96a4476c89143bb24391c0195ec6eac06ae623a6ba9ae31b99df6ff2d3865be689306cb002969ba59260674dd95dea78c808043399af426a1a050def6154a37500b19b08224ac4f6c1ec7eacaeb32a4936a421616364794b67c12250d0597544fcfe5387258bc8a1d0587d3a8e20cf17d0eab36bf0f3ffb3d2c36b677364d73cfa2a25e5a825fbcae5f6f37b5ec90f4f7482ee0dabd2e1a46188e1103dbeaa9ad5efea211f2ed4efe5371b32b5d62c51a42a76a3109d4552a7a797addfd1b3b7d2a8a0493c8628c1757001ea983c0338d399b8e28a55573268673a9b35d146a8f2f200e2fd9932f5b2547f3232b626e18cc1e1b35eb2a7d900018920a0cd5bac10a10032770f8bc476da362c7aa2646fb1bcd8574a62661cabfd2c775d223485ff790e3e28b60ea1857066a428c43359bf91da8bc1b825c974b8389549c1110a1ed335a5150986b0182b74fcc58f607bf7102055724112de0187139f560754107555af1f5bfb395499039f3685b45d6dc60d344d88b7a0ca508738c42ed4f7038613b1688c3cd54b59323136c6a9de7d575f30258e81da35fcedeb13ce45bedfd3daa4a8074a766feb4792a435654f9f9e73a000c113b905b9cb56d4f6d193cb34f93324e0717a790618e6f58b33a12bdcc4104de19851e3d9d9e46c0eec98794bce065366f51ed30e69c68ba7499a62b2547921225423b590fbe74b855650c467746584c48f7759f50f6bac62830a31f801dbcd65b2877fd3190c877137b4c72c5d3b6480805ef487e020b0a865e90cbb78de09081b8ead08a5d76e0751e1e9a8010387cd04fbae105a989f4bcec53a584f5efe5ec9892169964bde564c41002ea98700982c2d1be67a01481c5d5e757a12f46cfd3a7998738a519ef837469ef799da6cba0e2508db8606a4c0a987a22d6312e1344c3e2451b269df38f284a56648025b4485a2a118c07619ce858d7712c664b6a2205632fd12e8b1178dc6323a588edc28acae1794f501ec20056ad17bd1204bc28ac5af78563bb4ab9c68c374dcee2088cc47236f4939838fb3e671beba769eb941d250f9c70ad64a05340849635236a64d6e07974bc89d3498a8d1103936774b8fb869ac7e18288071824d866954c1c107541a247103a83e3982250e5583e533083291bec519b40337377116ab77bf4a1ad1a752ca118128d6d4b971af097a2dc38fb19c589a2d2a864dd391eaa925ba1de105a50db517e4005bcfd9d0ad02838eae122dc0239295d65ac26d3db3da8d45c0a1788db9efb953719d5baeb682ba36c513cfeadd7d998f8b8167f35550bf8f60e307feb0b14238c61916c5ce1aa6d9ea205728991b4425554e1f9e6bf5617f27f1c3bb756223a02ab1247fa1b1e04918e761698c1d71638551e49099c69cc7a985b18cc30d75a4465b08b492748b1ac17c2297eebd287fb1b2cb26687780eb8216cd987cc00660771331f5b218cbbf7dfc03c137132296857fb53c5b9120d747069c6f20280054e927631428c9f3af5a3a6d40d4aaa5c9da3b3cc3450f0ea24d173424503cc84ca7119d69f196cf5a129efac544028a45522877cf882fdcf7726ef7967521f1380930607c4ab5c172d7b6e0c22d65a80c2c862cb37069cb6fd69f6d15d68472f69b5ea5331f85a8e17703c63ca2b38c5c25fba37405f7b3ec93ae966a5d3c5954fe1b89b3dbaf475916ae17d90d8152a79cb3d31f578e98856b1370224a38e0c613fce13975fd88f731b49ba9c1fc2652bca7810683afe1a25be30875947ab5da1ae52c6ceedc9212fc291b029bd4f8bc5100d2bbb067dbe0150980e534dc26594b85c538dcb97306e6a0f0c92848660ff9ba1655f0737f617c1177353c4dae81ca9a9bb813dfe6549168c529e37f1da5e1ea633e53ca99e2af3d1378aa969d876d82aa815c179431831fe7766297ccea38de1630c9d4f5b1e63b443d029c93332c065cb4ee5f90c670d90b2d2334826c59b88f5805808822d282b60d99e47153b6137c89cf752888b9e3189610acfd3d2e9c93ef6b544773a8047292654d8c281541e46ef355bab89482af25aaa60593e2ed619655e9887f375a528469515af9c18e997efc12fce5059fa677c82ab86aca4a611ad8e0e5c7c5519d7f7e6c7302ef6f5daf55802de82d3519838ae9f95c1f9527b8591709541f4cc4487cf934e5fb2d15d1f25eabf58320dc359ce490a766922250ea7192d765a4ea849ef252ee0a56e685bf618dd62b07d43f696255c315798aff64e635a6b3bb34e857485f39c5c016a5e13799b8c62ab2c637e25d2ef0d3c5e140f590c7f2517688b7491909a84410ba1c98cdb943eb1f3de23163f505c069820771cf73138f49b0e1f29366f0f7793dfb33df460a2aad65198e75a89eea299f1b3f9de986c0ea51efcf1792d1a5a4017f6cf00da4602292ecbc46d627bef4be41707bd8dea4870d1ec458531383c865e3f91b62e9e4237f033482efee1eec2db0c241b0160f01ec65850269572b28baf3ff047b1a94e9b354a9445b7138a81631f5524f6a9112656d40166662a44f6c382eaa836289004f5cfcecf97b3f2b6b328c572f58ee1a617dc2beb8418ec040d5017d36a5f13c567086d946496e6413ca6f97d65be3f5f447082e4b25cac19c0a53dbb72c3fb51b2033a9213c9271bfdafe8561ebbbac6ecf6d1b9f697f8431d14273008faa9255a179a6342a173b4fdaed5ed30197fea0462100feb11f88e2dd14eb1c52ec2aa2290937029fc24e4c545b621c86413c1b7fff554821709ecb548d67784052f5dc43a2bee9a6a02fc48eb857dac476289219d605d68a8d41b330aea18bd7fa342481a53bae5fdd451d8227da74af424822dc454a89ccdf009ddf448c4a2b7167e74ea22c364d36ca36a497d33de403d3966cd4afc94d6e0bddaba1ba0ca1b77c1a42c5f287711b40683087347f2a0be0af35cf90b8c007f4215bade2331aa093d298eb4ccd934d3d88677274d526f3796b1bbcc50e6a2e5cac0c32de439ac9ca77660be96c3231464956ad65e0943ed02adb7952ddaa269b0fe9d6f32186997a00470b0337b4e4fa087ada0112d48abecbdff7158984a3f77b9448375b202596665921eb02c3a4697670d648c82c4d426e61b7edde2dfd28961efed9a9853020b8e7200796b8360fe6a93503e77eae96c2875e194ac03124afc49b7a484bd1762892ca18f1e505781f281da838318c8e6aa1fd44da9c2541737bd560690ded1f17824f64df9ed4eb99ca733d42a82af08fd809e8ea672ca7a1823514a7c6e0c257316b72d1b54cb60cd2ad75178b9895fde8e420cca9af261310acbf120c08507b96419aa4f2f917e4d6546c026963af8daa4fb264135f726e179fa5dab739f825ccb669c2a3cf376a76f0a188caa3066113e693b7355aebef11eb3357449415ce592aa42076755c31abc6d88ff063529a46b614606b6a927136f98d2c041b30c00908682184fb0230339ccaa5dd31868f7019a90539758c3ed15e1569e6b78ad340bc4b57452d4dcf90feffd1f1eed56a41fe49a1e35081990fe9a837e43015084ce5aff35ea7aa7c8a25970ed0a2553209e86c2b507cb386ec49a423fa54d9969c74b25dc927a0f7052706f26c0d344eb9cabd01f63d9bee2d3ff80d354ea1ceed5ed2d43f534abdb4bc9665a41ad45e8f967cac23b43cf649b60972afc2918b2a7ee94d3a1954c59f18931d7e60f72a2d1b93b1c1359b7dd30aec03926deb7a5986299d18482f50e0778cd1225bb3b177b18a78dac3c1378450d219131821e8e58a3896f84353ed93742c51659184bd992f890e09da854c3b5d605a2bc78be99806ed6a7e688c89f4fd8b51931592a38c887cb37fb0628f9d20f81c86ff6440ca159e24b634e0147510a6664c3fc0528929db031b391e219a35a3daad1949f9476233fc9b7210fc4d27419b8672b218d0e57d7752cfa4eda0acfe2581527ec9f32347284ade77a51959d70ad4530f1723033f7566246a6b842400643a850002bf01852e341d0acf2930f02f78f8e5befcd3ce4392909f80bc19e83f05f038014f0444103fda9e356b9a2710f7836c523b71b998e28e1f1e5b68c473ea4c4258f9aa2096455f58d3c7db04db78b49cdfa6f8031191ce6d4f8c1944ff2ae121c087559131207aeec22eb0b258a5df397aae220296f47642fc2ebff0724152acafbb4cfc2c4a443b1841570034ba24308737ec72a106624cf5f7afa1bd2556b31f95f04d1f474f8f8a390f2e92b8f3bd5a40200dc6ca05e596a9017269874e9c813fdeb80f40e5a963937b7a63f6b62150cbc73da5606d8978581e25cccc729277855382b71a8292056f8bba464e6094a20bac5d92fee7f61165de7c791316176929fd3b5d4cf9b2e774057a97be4b99eebb9e0ca6aeed7cfd2021b3c3680f203f6318794afa313826629e0fe6dedc4bc249420170f5eed2ddc84fcbb590be25cbd1367d156cc610b62623ec034c7fbe917d6e63e9ffdc9f123c2ff3a27c7409b04ce15602bdf6432fc20f27abc5c9c14ea7bf33baf11b196aacc5dec97e33e1abf6c3c2897abcc68ac2c66a88b69b0cb538ba46ac6820d6faf468902355388f90ba12e83c21dbb6b15a22b5d9a226569fb808c38f1dc9c10691a39ff6ea3eb32584091eed20ffac2d88ab628b008556e44851833c84b1cf5a789e04183e4fa0971556c09861a316923dea520918c6c0946b7f2437eb64cd9c5991a785945a539851beaa324ab37829d10e588af087efdc6c74663975434e672a9301e0b24c82bd9edeeed60488e498f58260f4734512e817c4013146674768130322efc4b0054d0b7f4a46763b72d629e28f2f61b35bb22eb7318536461adb180f00250155c51a0360e8bd3de2f22a4c17d23d3d472f00dc35d6a3779fdc62c626d07f30f8a0e0650c37eeccd23e9532d448b9c590e7705feab2deb0ad42295a7dfdedd7ed27e69312743541da1d5c5c99da32ba4c94081c1e01b95448b2928f9d5d99879a285e502d05d98b633cb4a626bc051b1809e5d1b54ed5260c4a790ce9b257843e5264be459a439fda4a286f0faf0320c07cc6ebf0bb84054d0fa1c4ef968d8a6f0395d5ad4888142c2a3c6259fb0c2c3fe502545965caaaf2c926cc1dde1ffc3927496df44bbd721a2bda89fa49602e8b74b42c83a95fa400df454a882ca720c0320faf5cb2d6a9daf824920704ba8b7f7f6a5ccc4f0becc54a765e989efb0f437745975b947c024647481a232ee60806091c9b2760c2e0246f1b90e316c011857e4d8663da3f983ee63cc7a07c9dae119b889293c6abd643894f41e338a10ddd2389df2d898c20b3c42dd8cbd54a2cced1343b9454b7a30915a295342afc711f9e6198721e04d5237d2d367803722ff31a6c9c6d68f5a2fbc41d2631e36a926c2cc5bead6d40063ab4de06f7612d1115be88662b078deae5dcbcfacc0507aa4021fdc5a7f79e40556f78c7868f2f0d24874042e052b58a2c1432d08fd97a385ca92defca75096949624e401e563e93c0f8679dcf954d8904df3ee383ba29e9ea99cf2e189ac253999b465ccd99d17003caab4706c02d38e70172998a25296fb097a127d990cbd7a64065aa4aabe14d896ab79d36fe6fc38c28ae6cd1c448a1e6c5133a181022d83eea257ff79b8f65703e732054015a341d9056b10f5c150d881917f1f170e07eeeec791e79c9f974ceba072f4ecd89a202ba9ac97b38f96dcea5f49542776d8dced2c0af55955fff752b0d224cdb01ddcc02b0144214fb67ec65e4f2f158edaad13fb545e24c526b3debec4505cbf95294765b223a1f772f91c375e9347cedc9b9e6a31000a5c8cab9dab0945901d458ec78afb17a83bdd52422b8dec963906e9ae15a4f088b7e92e935c263e7cd20c8fa011c5c9bc1b311b281bf6d7479aeae20f97902629510b96b762e19df7888b7c80d0bab1552a194b800ab8b071cf1da0249337f75a7b7a503a1441bfd0703c0d88283319c0e6885f1fe262a53d8e8f5fdb0b58c5f9f2204e0b9c22aef8afd396221dd2e3ac84fb71b1f60899e6c1c54581cc56c56d09c9848cd6e5b7edf197950a73a759b6b315f8522f87156c1d74ea1bb5b4f6059f6392e34817feed4fcdf12c42742fd81897f9fe4508bff016486a6efe2ada0f0cddfb3b3de86ee5a8dd59112039bdcb415b34a905353375cb2256ed7e891254cb63072049819ddb92e5d1bb8cbc37e8f41980c6212be741d7ad0292251084956849ec621d2587213c852a8b2db65da8569bae1da4f753e4fba16fafa0269b145209f5be9205867d1b85c996286ca1e734382e9448ea5d648ecb800a890efaf44aeae4def1f4443536aded1e6beac88d1577953756ad00b0eb257370a2efcba1d1e63a939a8bb8e9213edd6cc5c777d7751fcd76ed521629852dfb77f5460322153175ef88ed0c1d7c9fc045812a6e38f06991b2560419008b89e1261c43f503beb4f0893e5901b01e41e95ed881734231e3114f4b9080f89a3e87d87f010f2f9e021fdc9c14394a3c143351428c0157a94ace8f21cc0d60544a16d40b41ec1430ef4768210e52932437ce7d00d555636b79299b292a14330dd21367abc0c8617df4e936e291e87962d1cff6441c9c8bff85a5a56190f6e6cd9cd9e83f3a65c039bc915322b17061d77703ce5b88f25c527de7b6a83c3cb350fdb6103253351695645dd8390cf0e035795aa5d5975c843fc8acc2cb7442ae5d2c94f537a0e6c2aaeaceafc27e6a5715e907f9c5cef4906bae95d68b86367fdefdef193fcb82da8906f379f8330229c9f2df716e6f7f2604941dbafbecfea0188f9231ed44c5c29bab93c58d67fd259f9d4ae47558569be3827db2bf3cc643085d79d1ce0fa4bc4c17cf38bce77caf5084f4f93869243636f53ef4f729f40e1b48c8455340b3b54d476c8c811f1836dec15dcdb8f82d4adfbc9c9bebbefdc3141e502b2da166a75e484972fa5c212e69af64f9a5722aa23217038e6b25b8bb75573b4c70de37087fee00a2574540af19c60056463c52ba240103e6daf65cf535aa504609097a099b9d6f6b64a2a7649cf7c40d3a1ae7ea8a0ef03812305024f35932775ee1d91d3346972363752ef2ee9cbdd2ae49180641f0c56bdbe36b13804b861289886d29a7747703da24de1180d6c39e53c02f25ee15eacf38d82a112018581a41e719acbeb4407c8e442b6fc09ed2d45b21f78d2c3f849bd47cff55c787108b48c273d2fdea3af3fd458d0f07d1f9631ea02243f9e9d63943e6f191edc234053a06de797d87ce6663df4c155b5f379ddf3b9a16eb1b9fbd1a143a52a97aec758cae016c5f08035dcacf6284070d29393513d5842b9c31a9c7e37ebfd689c16e1b3a53e21537bc4777b5ba9f0efa04abc5e8bb4f75a3b3801580169bf9223652cf9fb0473cdb4476df832773238f480349300a31a8c73ff475d14c8e56939d4422ffc388235527a1e990abc6762701ab2f2edcdf9ca7dcf2808558d49190aade3662ac8f1d4c851f567ab9fa09f075a7f031f8595ea25fede0d3156213fac145ddf0e55bd867426cb486bdcda0952ada5f56146cc80b3723d29adaebec2861bc342f2c92f27391d9781d6b46e8c3ee15eefa1b3f8bdbd0e2060f34a276cb5249e384d4244cabbe85543333cb88f12fad0268f8f8b92bd11465417882e1a3bbfa4a609deebd6084526257b086c4d44c996722cef1492f2454cd06f960e31004e1aa8e4892304ee86ffc742a5390c9b5935f25a652e176962f69a5616810c2322d841e19845d6b0f0769e8e1095bceba2828f7d0c3605579314c1bc4430c712e2567668ed9c0d3edc10c9c04393ef1994e892bdcc8639b21aff733f29ad307d6fc2adfbc1353bef16d8da0dcda9f467d8469bf2c14c448a455faa6c1b11760cbae948faff1a51fe72357d4442a4b3fe6820bdaea90f91573c7739af2bf51ebc9c4f5ccdb394f354a94fcf62301b8edff108b4a4c695911a01191f86590896e97718581ae4d05cf2881f93c75b3018fc7069493f8d4555f8b8307d372a1f17f3d000a9051de20c85682c1335a2103305bf412c92bb44f25a1192a1e331927ea7519c79f000f133cf5c48f873acacad613468a177cd006dc34be1627194c4a880979bbdf1806305fc3162fe868e767ada150ec3c6f4e08941b3c56e62c6f8c7969318f1dc31027b0521f189f689c6185f043774617fc3b14b6a0383f1131ab0b6c1734f8327a335b46ec61fb8ea88481f52ba7402327825316681093b006e1210c35f5d2ea8417e7b62d36156367e4930415adbe6a2d8cac4fad6e52867af6de0ac099e5ba6af80c2341770e3db015f02fa463432eaf4a383988b25164ec9bde9a14fe15f125866fd019f0552a196d11ee24116360bf2f5d2a811d511c40070e72bb39a8fb2ed67392eca828a4f4e59be699a8de5dd5097dfc350d9d5ca0d0f9c2c7a763ac6026303b393a579d6904e3a2c3cd4ed549f7bbae16987fc3a04c0c74b432c8caf06df86c4420d7de25a08b4ee194638065d0f79d8dae92b6af2fea6bf2f8b10559787a3b414fa56c93503a2c0b79170176e1d1e6d4284e0f91086cf75970303c133913ae37b31ed491dd0e6329f27a529bcb775152414a26efa170a269fc2f44e9b1a3c1146b8f1c881c6e301583d404423cba3360c6d0dee56eef84a6c1e189d2b76d7f45f48ac3939fdae1a60e5fbec52ad1240c85947ac04df934ed541a5702376122f628df84c4c3462fe6aaf93e3bfb7dacaa9843e0dbecfd0c51045d9a0c13f37f92af44cc2a1d964aaea28efe313b8c4f0bcaf16f16762b7a8d0dc495b583385821bb9bc86594801acf63f56ecbdac5e0b0b6a4018a941782cdc54f3db435c1f2a4a6cbd6ba294356f9341921b9be5b67de44654f0f07cde28a654db30904426e03a166ca724e19ced33acf2cf579c7467b4f8e51c62a8aaf12fc87741835c797a7eba9f212287a789bb41d7c4c8c18b70e7aaf57f4f69ced9e314cabb08cdbce04b054dd417bd963645e031d15a0d570f00ce8add1153901262cc63d3641ef72a9457967c16e90d7fe6a8a9635c02011d91f3fe5ffa85cc7ef925a4e3e2c4b140088420eeff595587572c4693c459c5d7fe3bb7fc2abb0b837c742d8008588f4dd5ee95abf4e4235eace2d3551b9a5d0d83f1f81b778d6072cca3bb1d31ddd321fa7f5b7659422a06147a6999928b53f9b1647f0d2cdddfaa616fd22dadb9aed39e39d0fe6afbafc91e8aea9d90da754bafe876b8d09aed1d34b236a5644bab6e523c13e1fb8f1035604d4688f7cfa72901186157ce1fac2cde7a0bd56621190ca61e4f8f3119128e0f44275bc9d759dc63c7c3b033120934d36179cd2c955f2c0f14967be990d968814cef6b4998701954702f6967593abf27d5f7add54615331753b6b73707053348287138b28d6067d13cd3e7402c258fa19bdfbd0ac5d010981d8c2c4d02fc591bd9b3a2c004ff175ed212906f6cdcdca14d631987551cdb0cc3cde932a4ccfff0245b6f9e1b6aa0087a0a8f87761b0a7b1dc189f45ff11c46bab1c6079fb81a9cddeb19d525531d00954e30b2592ce41c74f2bb268fed3064363da5d947a3ff761cc8e40519feff7dbdf4ea6775ff44bb4285e8953406cba9abfb17b6a58a45a4600afead1abb2faa66bb287ae536c1c1889e932e17dba8b39ff3d5d853dc4b16ec9bd16b8dd6e6a802f037c8ce966e97f7579f9c038a1e662b79ddf5d8a6118de4b858a07162699932986ae8d99d682c411e57dd616153a13d6a28d993404ee2b8daff4d143a101eba5515bd12edc88c4fb1a4e319e4e56849a7b5cb90bf280d123d48b53ff2bff4110d2fe9cafb3e919f291d856afb8111b044fd1d55a6fc9bfa5835dbcff3701b98e2745b9e104a1da7f3651b3794bc839eff962d5b7179e5c3652de0b0646b2aff13711b1ba659420c39ec6b5d54fb8f319d4c28a7f29dc9dc5cb1d075bde5059ddfd206460aae70648f9be114bfe91db115935d3b299747e28333964a2e393240a12eb697e41d91f87fe0f39b8467760720b512cd32862b26368ad616587e318a67357b716624271cd5128dc168ed99aa9e6f2f81273eb3e80ec9cefb3a3b028ef90de3e7737e5b7a4fe89416ad8493ea72d3b5f5ba3a182c11ac8dc17e88fe2ae34cb64637e996b3aad66f5912970e20136624b0456c533b491e15580a05d165ad242e2b9ffe7bdfc3d1018af45db64d8bc578284b035688bd9bedda808c67fb6060a7d7e80ec29c895e75da1eee043d97e6f14f60b6f64ab090273226bbd40c606e507e4fed9522c826b78f08218ebee0c680e13923c7ed1a87e0e19a229c7ccff9a05034b5f4efd363d53b9516ad34ae506381fa0620fdf895137c457713f422d5e3eb609eb1bae04ddabf3792ae4bda4d8981994156e35e03f7a32b73f27fd92e58fb499bb5a87598eaf8dfc9b3769df62608599b0faf07ba7ebfafa2308e738213c27d5633c1b0023b56a7598236b2c2784a04f7c23dc6e22623488923cd907d454c1903472138842cc64af181a0ecb118aba6e907da4ae2dca78e3b30787781fb6f16e84b89de42eb802a01a21fbba8d9eaa239074ad8f1420f6bbf6ce437f4b874bea84cb42c386c4980026c471769abc7ba26b10a622c3083b7cea18f5689bfffb6c8ece418160c1cecdf1d7b6aed8ef29d2d3cd5fc83921da4be20557a4aead77a2031727a955207d5e3f239b341db951a54aacf20798629638d18031218d492bb20e1a3594b34eb9aefd46ac69624909086b90d85db56c13ed67f89299dffd9ab4af3f0919c7efb368232cce4046b680cc50e683a8da7366e08f9c352f14985117ec3996530093982cc2e883314e4c4de59a02d9aa2b66ca7f635e5adeb74014d8e1b96d82f2668317af601376d56682f78fe7200f45a2c9f40b6c19d8815c14d0fd53f286e2d354953df50a364f7de563a256b8d031b210068ac1b305c3ff041c2873f520e6771b0d6571c44a68a037d290e90cbdb197a25cbe243addc68a66fa628d72d2bd807f71223410955bbf5c344cdb43492de7f3714f26ebcff26673098fb125b2326f870a50b44449edbf0e69e0fd19e16520bb51048d2aef6171b2e21e61b462f9fb22b3f63d376eb9687d6d3221c17e67e8b491adc8a2a0306d5c4a7c3b136483f6df900b9e2065e89f17d33e8a29923f5291a51868b88b8478765bd5bcab474a7ee92c0af34b76e4b7bb680936914ebeaae64d705d49c648b50d0b64f90f656968ca7f06954707db8fb073393a7c68d6e6a96771d969246ba4893a924389ffb85f71b5492b8c13943c3e1efbbc79b9341bbaeb01fc0dde58beaf271140e61cf47d7e50a81621330dfcc2c6505dc614cfdac32fa702694ae02780a8158f60aaddd1152a78e2154dab37fe93eab02256b3eadd099aefc66b1225b1a829617ef086c95a082c096ab31265ff1939d2a1b553e206fb77bfe0f36815fb069f5505df09efb66652107056a5174e83340f146a95adcef67d193629b92a85ce41349b62829181366d5955dfa049a40b91353ed857d49cca9a44a99c0d4fecdc144952588aa7a4260b7053417387bd6e6d5620b4b7c68d6f08334f18876169ead4e17aabfc0585c81c92ae0ff23cd056b72cefcd21b13928b0ea9d46b7eea6a324d2c56729a022c136ad8e89a1735c6733613fe69fa62f677028c86142f04c3f1ba15eed49b2eef483cd65d90685490c152e2612969d0126a7f036c676377188a9aa10ea54c955e16891728208fd3d0e5b0fc7dd52b4baa255fa6fd25a6812a1e6f4c710235f5660552bdb63e91ebaf631f86657dc0072c3817def1b1c552dda0cca79a612548f2c60a953f360e0dcab84f90d31950a664c6cea0ccd3a15ef58fe5f48ada893f67c5c3a0ccbb818a2191c4878684e89d924507c64e250f6b3256401fe718cdc5306714ab773648f9b5c46307d7b6ca363471b488975ddf7bf53c567d78020cac83e95232b40170a4ac3a925986acdadef91af59d6a51ac5d0e6069c44c10c1a7d2cd39c602dd8a82dce84ef82d2265e2d5d507d73de2e700f6db2c1ec74964a0d5643282a99ee8f4cfae0a0febdd2346f749338763e387c7a9c5e2f3a67a34a9f075bd1640858234d1a4f001f590a90cf32047d51bf0ecbc5acb907532ddf432e367e61447a6702644cfbf808586cd270c2454b81053f30043b9c465273f71048d901b462559308bda5670e7b7546072d09988da4fda82c71c1fa7aacfaec7c51a65b47bade117c31ecd2798888c369d847affdb10f089017c74bc15091ab3791cb318198cf401ec995fd94ccdbc65858e044c277a78cefd18ce4342901574efa08af136301f85c10e34b62ccf07f61c4e8b26e3ce3dcaec74e9e0cf76a9f37c22ce380d46ea6afeb1eb6fe9655c4e46ef95ec6cd82bb9b7243d59153b22098e20e2c794a39b15de5102cebe539ea29163555ceb27296b9148964c88b96df1a41e3f89153748e8f01186596dcf4c11518712fc4aa0b42bd7140aa7d11fe199384ea9b1e3bce03b897ccc4bcc5fc7227340f0d395d2bc3a3958416d98e24f072b0eaaa01668c2104b674e3cc7e401159543bac42ca796eecf702c3e5a99fdd332a514cd0cc8d0203e1802dfb56c6375f0feba14d15e14766219530f5f9f1302a513ced124538fbaff0f8cd15aa4cbcc48a1281aaf9a93167282c19878b136c7369f670f8eee00bd91234d0e5903613dea67835a84d83c066b84bde219c5b67ef80d315cccdacb8ab5b10164f4245963294beaa4afbc1f7481d27fdbcab9c55aeafaf792e40383aad6a6d1d9adf74df6ec34829ce3b4fe719e6f0b900b568c1d37e17487f4638aa82dbdbfd99ee53b226a5ca64bf3a72b55f141397531553053807b63f14f5c02f331acc8cebcb3aae70e3a6e318d08123840c42f20ccaa348c508dbc828865ae70b012e62893de103b6d71a8975a07ade819303bb8282891a57935ba7b8ef8d5998ba89006cb2b808c3e740b102a3f99ae270b5ab5d13c0b3c99ccb4303e4cf48491a5629172410c36ee3652183ab8167f7745bf78040423d61a5e523c6715f23049c53c412699e1b3586b9cf785282d620c67e67abcf074f3f730057dfe412537df5406868cb44f5709849ad236fd47ac2158355233d7b477214bbed003d2e1ba9fdc8d17fdd4400c0cb5f22fb763f3240b54ca9a2f87a5ca3932e8e8e44606abe5364165f3ff987939736678913f2f8af47e6f31162dbd9044151947044a7f5470093fea5a04259db7968a5c2e667412747d9fc5f78161ca870c130d3696a4ab7be5348277bc98340b91d9fe1a84043b5b4acf20fd8f682959cf6007fb41d34ede3e268f999aab106998ebb51fe5bf61e984999cab7fcad9e9229effb34021267fcf83489eca75222179e82f9840f3facb4f1e7a95e5e923d4e1bba69cab919c148668891ab354f333524d7d259f76a2d7d08b2d1813fc64e724e74431f44788a8242b7c5e58d67339379dd0c5bc5c1b104bb54a76a64edaa5d33d43dfc5e68cf8b54c64dd3171583b42d2db612f5de32bbe0d912cb5fe763a0f70615c0892a0440a6236666263f412b473c8526130b13ed762e05ebdfd334b14e9a8bcc9e688519ec3cee23e9052d8dbd22eda205043ea2e1cf5dcda3de0c8081e202f4a918b74180dcab91733731a26f0e07430c14e51fe98805d79b8f31ea672a8d38ee7506156a24c184df6cb5ff4963c1e3ca1eb4703cc9ad995d7a60857941fbe5a75194bde9641bb7ede873502ddfeb55c21f75bd4e1eae2d970f03fb0bd86b787eabd547b0c3d088f1dc61e99371646c71ccef0135bd3d47245993e437bb50cd3b3c5fd1226eaddfe338e8b2c2a3f7e62343128815954683eefdef7d46feae0d1e04be28c72089aeb9bf1c774b10c66ee8d13cc8daa96c0d8bd10700e04bd71a03ba827db9964c4b095f0c9dce7366e59e2574e281cb9d2fa640ef7714d4e78bf2387e9d85764303414525ba38525fa5a18d604792fdd72b567a43de18cd9a7bdcce4c641d174a82445256e5343b64d7634231644f491c6c8705b13a96fa232cb9c647b30efc675a496abed20338e27f5d8fa9fd2ac251c7861c5a8edaa71da9154138338b63a45c04187c473b03d128b0e27d637fe1d9b46910393be99985043c933ec4e0ac9bf69374394506b21719468e21f90f40f952704ac01307f5b66f94c030a8838fc22dff22d93c84fa582cad1c6b43f59f178267683e10d7d1d32676a1d2feb5aa2ee32ffa74138a38bf90e2912b7e3bf16493c341141ba0acde8e0bcef447e30efd9cedbec1ce7c0722487fd3cf95d5f1a989fa3bf9ce5c1c130f22367f783f1d443c4ccef7f3e87e87b422b9b490c5834f89ee91eea7110e5ba164821fa9380911ac05238d47dcf70ba859ae3de007950b59a118b3fe961039c30ca6dc0c1093860e5e9b5bbf80be3012071129f5432fc9b9703d7047aed5b4a606c10b2998a3a0ec64a98031c0f8c16c690355778768fda5c7a83dd0e375f832c2ad0c100ef7d418199e44136ee8d8aafb11cdd3b6eb1d8aee009891c365c19a0e4b4b940702d8ae14fe15575850b5cb52ca46d3341dfa09d6dee48d84262b2f6eb4d889fb006b677eaab0e756c5eba43fa7b1b6fc379af8d7408d0fd4b67bcef3f255460aedf77823abf33a5d76cd7a543617968de717c8da8ccdeeb780f5ef406f72f73626d7a825ed6491826dae80c2c4fc5de8c668ffaacf33364b8e2fce426a46b053d63c72ddcb2719eb0b7a616a5e8232f00c8bec022173c0b9d079190427bdf39a0937f8620d57a09bb3a145ef21a31cc50ee3904667ea309ae1a53fbb97188ee0a3558479d42900286f04f0175202f4fd67150f24e5fba4047d377cb9d0701ba7b82f878f831c83a1425dc6a8280fa2f44ae98e313b9ea33be47f0bc9ae857a771c1013cdb0b3b25a660de32f205fca12ca6af1fd45555aa08d86be255761b985186a205eea9a00adc7b2b8e15406b09aea7c56437af90716de7c6c0cb52a0f12f8b7c9051b0bd8c9cdf4519d81919ac40028d161f65ae1c15b453ca124d15eca45053b3347ede7705958ae89afcd1a1cdf59f8ff968494e718ff06c2729af74820f7dcaa122b15847f093f1546a3213213793aa45eb65f61a8c4627f8ddad33eaaed0d6778f86921156bef86558d0628e8375b9d6b0471d7f5232a9598aef90bdc7403088b68eebee8e8c759df23a2c8fb085350921ca6e63401e2af6cc4248afb96a83d54da0c5cc798c55561dae52af246ffd774ace5b4608774a282cbdbf26eb901091730f27f7dd4ba60a6affb84bb2aa31e8a1ccc6ba3f0af8f9b1dcdc16986a4f16d4403bfdd76e4817ec3a815c146b0217f8fa1cea0a35dfaa4c5ec6dcb04c2185d539733bf2bdf7745d93fc110a187c199d9a3647eeb4b3af8cb99ef1b21d46dea830ad4c399953a25e940b7515febb8b7f8bb6869c7d6a1bac37c0c8d1ed55406ab08fe12153f79fa1983a132775c7514e779edc3bc8607e6612f42df9ad27cc2da5a32b2ef1668207c09a251296b445fad5d24e4871a2da4d6f33f26899bdabea1a7015ac02953c75006215e45c281097b54cd46634b18dcfe7cc7760823509fee0c52a8d8bc0124eb9588514d9888084a978c5bbedf53e3e76b4287e241bad64d983f7625fa90b3a43e76d4d4e7f6d98db404c38271520360f0d43bc96bd69113465054f0af6cd632facf119860f97c1877cec6b1fc141f0af094e2fd60c782cb2dc128a6402199829f1e72a86b20fbd740edcbb22d630f17d4ca36337a9b4147abaa73c15d8cef47093b126c5eb0d5c4c9496aec26da27a818576c1f2dc1456ad078c5f299675692b9812245e4901e54944a02a479c34da31e1e17610b84e991e8009dbcaa27526260839a60da4624c9bd71cc328a658c001b1a5b07314c929be9c0134d7f378ae1a11888467a24c962ad452c8b574b0558c1cdb63f9fdc0849e69416ca828b24b12e6239cb0cc02fba2d6d7d4cd7d6fa7d3b6b3295d89fc4bbfcfc7a03daa2ed4e9d01069162a9a3c252d1ce019487cd4fa5da6150967359ed72f732ea9a82e768f5bd97bdae88864f0515e85ff28b83e7b477d644b3233a29461560f46aa15b7ba3ff366fd5f01d67222cb0a18eefe686605d98ab1d60f1d927bb21a9c80777d937cff0a2aac3cd2b6aba9bc11dfb30423540e41a9e2a263f3eb66959df403e3e22a89c43e7bde56935f4071a548b7896a56e6f07597c4f628c0b329904144c080b927e774d5095ddb28a93e68e32074e944f137786849d3d1f7d075cd3e967606157a178d1c4fbf5941bc50eedf039aedb7fdb47acb32bbecf7f669cb4b1a7cd894e3414df23198356dec101f12c92861ae5d09ccec67eb934939bf81dbd56707bde1e6dc86c36095fff70df92242546e10e1d97abaec3a23b74833ebcb1182578b583407aed08385950fd88a0418109b9067190b21dcfb275bb5d3d4d157122b103e24588743d844f3cfcc6b48ea841588bbb6764222c2585df23e778ea65dd8361e6a3c55a1c164f097ed52ebca76a744698cd0f4023f122b9ba40baf2ecc7abd2a56abf70078c9926d23bed406b3193e5e178c6b05d79cb02e10aae260365b9b75510733931112acdc7651ebe8a56c13763e65234e7867cd0011b31271a043898109dd58e37801ee717830b413989157208ac167493a394dd514bed2cc8acb06891fd556e3b667f8328746bb1bf01664e5805f317983d6c01bcc4bc942a3465f516ed2d7d358184dc81060830241ee948e547b17a857ee618b152a87e990b76e2b26308613b8c7cd472d3bde1c0dec854bf1fad179cc0484f46899e1418f535807891e650441bf7742408de296ae0b465538a4859b4dcf40a20b57598caafbe7fb56eaf0201e9fbedafb98b103e0be13f4c84faae5aa43e2735331552bf74a3443cbc663755ffadef1a216e513d93f145b5b6033db5af4dde3a618b43c41101d8644b1a1c3506fb2af4d52718a08474bacce05fed644290f54201e954d07b92e31a8932bffcd226553bb95fecc9927fbe0d4bd0f5b964451c1a8b4d43f1bac6f384c0b684978ac24b96f45be47c18982b162c187c8bf88ddb0552a41a04cf0682424a4edbdf7de7b4b29539201de0ea50e2c0f1ea6bc00ece761ca0361531ea67c8c85b1281ea6fc0f76f330e51ba479d96c7e9c926255be45f6f362716182e21b95f75ec5c5aa7c006892aa6f8bcd8d5b3e5a2dce68fa9ce9ccaab56cd94fd2b24fd202e0496c56e1708959edcfd3d5b7f80669007063ed1500ec6cb11187ed83f5286afc9ce97814557ece743c8aca491be3aa13f030cbb2eeeeee19b3cfdea1a837dfd0b0a631a1e11bf929299ff2f26d6efc1f6d1c6a2d265bfc61c0c0dd9f29d528d83e68351e56d3b19a4f4cb6b61cd7b69c986d8c62896939f773a693631b9f8a904cdb4b07f7b603c36640b2c533a2eda5fd944ada8f26e4acfebaff349e486233201e6647b08bc8b1d89c252d31b51ed8ffd3846ecaca73dffd3662d04624b276e24ec779643d994ec4998b26c996100fe3fd2910cfcf8e50cf916cc164cb7f8a9cc8290c8909adfe246182e21b9227798fe4e42bea4f5f3fe5adeca7d6df9c85fa5adf3b5919a3762006a67f3a3141f18df66d8a304cd625c643d37b118c31de1b14c7d7b4fb1eca1858de3989c0fd19ea4f1575370feb97ecf4b03e683f0feb673fb295f296fa5ef20dd298d44bf233e40c27b12a5f627306a4e259952b84eda4e8a17521d96abd3ffd116558bcf6325ee6fd678cba642bc6aac5a7f2040ae57f8e45b4c703e50974c37df75eaa6f2622064e7da77e864cd916d7460cdcdfa26329dbe236928746e28bbf0cdb2e193b00db3f4d245bbc48e52c1811a9b3fd52ca9f21637cefa58d9ffbb39f8c2843721689e693fd6440349e0c48b606f0fe59916cb584d83421d9e23346f6c3ca7e60643f73c85959be9c42ce920fdb5e20b8bd60ceca4ab108ee2f454d481ae193f727824f4c6ede4a503248ff006ccbc6d2a430a268148be09cfd60bfd19de5ae1775f693a9babbbbb528370fe59d48453c7423fc59a17691874be07e437fff06240047e20e9ba3febbb96bca43ae56bb79c87d7f3a82fbdf80fd7300647c20c2f8679f53a98f9f511e67169cf25551b7add6981595edc4e6fafdc9864fa2a8259fe3d0c9a3ac47514d4e1f97aa2878fbd5e682b767b1bd6ae54f6cea5736ab30f72c6c0e31f72a9b633077b38d1833b582623d0aed54736c1fc0db0d89fa6a8487f51d8a7a4f271a5c076212bee17efe66b9139b63502bc7c05b8ec15b04caa1cbe9b70d6f1fde52788bce5a7d46c1dbcd270f7ec9f6517c7177798b7792bc48493d25b6318b08d4f3e33eb57bac0afb255b9cc73bd9c624d6a3a8d97bfca7c76138648bbb50d67b3cf4ef24d3bb23a1ba8ee7bdec21948df86404dbef4db37689a9831dc886766223ee2dfbceb2041c71016fc5c73131ae6d97ad2a972893f2feb70331f0cdca7f9fff9dc5729fed6fe5399bb7bbf22b17878a4db1ad23bef4bbb0d1b6f43e2bd48d090d679c1c7cc3bdf79bed1cbc7dc75dafbe47c2e2a30ceaf4abf76f1fba47b65cbcf7e4ca926343e0a79c75f2fedbc927a0c7bf2bd4bc0d6194f722787b533462badbca7aa83a21c2db9b94146d4f82b247f0f63ed8e82d2f6cf416161bbdc5858dde726df4ed33f799f6269b678e4391e808e7686f68987e67f30d0d6f76db70d62f6d23019964c1d3f104ed97fdeecad1713ba75dce9a33c735e9fd9650b32a87b3321768c10a6bc0feaa4fa8e6ced9de50654e1168778c5916b32c66598c59c7cee697840d0d78e8df41bae8080c29ecb9f3d04670d21442c8c1feaacfc12e637777374aca23820e2a6afe70cd59836480cf8012479499aff55123c956fd2e7d7f27798e6c994e7d93c0109db0038e3f8295cdbde959a271ee1ee7711e3060e7d1d132ba47c3f8b727658feb2ed1384b1e38778f93d57cfa3b0caa44518112a85fba4dd477cd191da577629b313d687ba6c123e64cbd4ea4c034537a9ff1ee4db62310a58fdd734078374fe71142959f9d47f2c81e1ebae4a1f5a89207f6239f6930019b12310f787b6d93570279bed9c0f37739693667b794524ad932e2d6e92352d251ab28fa1623b3e088892d24648bc79027db3cb49f3b1b8fb3c023c4d07f78e8a7a74fafc6e3e18e4f9d5ff3c359ddc3fb0891d53e6268a364f9f789a252f9c9f68fb7f8b78f28e3bd7f0b21ca7cefdf41e81e51c6f4fe14a4015375fbee4da5cfdb74a4a07d44d0f68f6d202e84b74f066efee519edc4ee61972748c3518d87b3260fdd34970ea47028714895aa5639a3c62331631185e1a1c754f93162e0bf00a63f4b5eaa821759729683fdabcc9ee3bc2ecbba2eebbaacebb2ace35ecac9d98de3388ee3b6ffc00d6f993ed298d447deb27dbfd7443c8ee3b86f24cef4dcb5e1af26f2839a7d6e239c243bf0e6dafd77bd9b3f37120f03e48ce94aa1a0193293445bc4deddc95d1bfeb2916388254530fb6e07fc85630bd54804e736923485da9fe5686bf07a26b20ca1e676f57bfe6abb76b80e186a128e374feced9282bbbcf5399bbff010041d277e46fe14c285f09fd8db41a0a3b6176d0dc7f2080668bfddd08f71b2e06c54a84d418083e31b20bf34c23e450f18768fd1b9248654d42d7f6cf9b1a5efaaffb1123870c3a1629ff508f64fa13cb1655996dd4c55957e4ae3ec0daaea202ae97657f2ce4f06f5c3aa9260c053006107fe80a0037bbf90a399064bb0c2710a240499264aa3cded1dbbe79c936a33fbf9d37f7eaf3c6aeeb43b46efe9ef6dc3b9a16eac6cb77ea999770b00de664f37d47e9f3223c24191148e530022640a4de831450eda6092724ef971257dfaa665d1ed9445ccf79772befc0615c04997b163dc5e5a7104da88479d1544e80217bc2c033f25d4f89ed4a2bb7bcd0fd8fda3cb28dd6526e58c9dd988a50d37434e0c3a38bf41053858a308f931914a01089b26a55946b38cc62ccba4f46c9b0dd3ee4794720532a74e3fd2e994729b9645ec33cbec8a6694caf74d93d3a98dac97c6e62cbf7eaff4ee66b07d96ad7d8333e20e0f101344440843c6f6fe0d6819b2ebec38d90ac3f0db680000cb272a12b1230cfdb632865a6ca1f44d9872dbcfed8fe0ee04b6bbc4d34d7292bb749372f64d00111efa11484c6086d625dcb66ddbb66d3365c19b420e5e918a22ece0f3fc558d0ecfab8409c76ff50930ad4c4c9c5d25641e1aa683e830e03ca3146da062879091d7efb5ad21f380071c1f40707caf035784e0480dc7990927b8bb7777bbb7bb0ba094717ab8201a71280bd8a988617f1af10d68c06e0620d85f0c3d1862073338211afdc0fe85580513b09085f8052143ea1085724e806fc8149637e33461c800c430801650aa95728d297c10b150054c15e11b6aee152b4208ddd04205559c6eb012842845ce09f00d4f61bfd90341664c297f200a271bb08660aff18ad0d8ba205d76a51c02228d0c34b21a60a739c0fe83804c67b3a246f69853ce39a794734a29e7ec2a4a19cb256047800908bb0cf61b71646b4110327ddd7b38db6bde4de0cdf460ff7cb0c14d89ed665e261acbcff235c92a6dab1addd7f4c7f892fd0cd9df6f7665e33d58dade14c11a9d136ffabe79e296cec486b9e76e8dc9c486b7bf797b1b32580969b29d07bcdd4b8372508023b880e80296b29739f185be777bf6fda6871e719e5fd58c20e5f64d7bdaa973f60ce280850e8ac31382e28084398527fc088a4310da06c5c106599665120c2a1c838ce0c1b7387490912238c59562c3c4a78117595a867f9c477cf0f68ebdd932b26f198e0120714a36c9a50cc78f2d83caf8f744cd36195fac8c30b1c55fa2ac944810fbcd5a84d93e4698ecdf37fe546e7e9778ac7d2b11f380079cbdd7e48bb5a74b3091e1ed6f6c580903e0ed767cc1deec58c331bd2e1e4ac9e2a1fc515970d327deb64e38e690e2b871387e8c32c286d1629078841d075112ceca3129c70534e0ac36a2593f74e8dfe1e6d2325e228cff908b0b0cf6cf00b82e4968407e769192522aa94bcb88d8c5656a9f5d344d4aeda594d225e7c342cd71f999cb99bdf73a6e73f79fe12e8b98b108e93de17d3ee88d52ad888c92c08b2cda0056fe39001ffcb839cbddaeb699758ef9b9d77133cbb6ac676633b7520670623800ef0f4a0fe6940b4a985a20941e9401c8910a24f0b88ffb0001670c437050811a84780e00be8308c0c001c01a9e049cdd9bec4190dd10ace0f94d901f59680ec7d97cd240e248059d1a78e8ee3cd8ddbd083f7ae07d3ca62f0875fef6ef833a3f93d9c778933d554076371cdaedd371bff9a8d91bf105a16a4478b493dd83edbdd7d95577dddedc38adeb7aebb6ed353b57202062bef60888d87bed418023042b58bb375ef6bd8d0e7bef69a08d86a319a2c0c15002a219a2c0c115b0d77ddd77d8bb5bf7db3bcba3b72ce5076c2af0224bae98be97810d6e1e08665f69f33c10f440f03750a3f8138217849ae777db4bf09be866e47b76dbbcf48ec4cecce78320d4ede5d398db0682366b0faeb4ccf36dcb5fe9c1f7ec6a7629035735b4e75e7b6e036dd31278b311f8db3cabd9ec58e39e856656c889a57b2c40f61108b58fa8df8e952a0740df7fa3dd52fa90e72ad9a2a9e0094df0221067be6b02efe3cc97bd3600950c80fcf83fa8de7b34c766431b10c123580c99210a1c0c99210a1ccc783f7d40bd776e8a1f30d7716011361b81b7f7b6d634aa757fa6655996cdcfb80de4341f7453569e1a719cf16f4d7bd95a6f3932d77ee5daaf38ed5753db34cfaefca5f6f207acfdd4aef6d9773740820e4c7ffe2a5bcd9ffed31bc2f24f5ebe17c127efbdfccc363e82bf2f416104c7e048051441d8d33e695d4e1cf5a6f4dfe7d2bbfc0f246246a9542a95feb3d161ee35e76ed67ebb3e5412ac89b8896ee609ee6587a70fce7a60ef391dd87b13143a38fb954de9e9672fbf71303764247fdafaf5d78134d3034b600dd8bd57fa3ccfabe1fdc99bc01af2bfec7bf9add5684f4da69bb9a72f4fbee2994f1ef8c006fc127460842e90e10954f0ccc4d872fa0fac616f4e4eef815f83344efee4e5cb3fd9ec7fe2f3bbcce5f95f9eefcd9053be7733c7d91bfa22a8913df81eca9a80f68624c697eee433b088f9a6ff4a7f62b35dd994befbd277ef6de034f969bdbf293da8bd77337defb9bb32b9347070ea5735505f7ad497bef4967b94f5b8efacf7a0cddc7b26071b1067587c67513e5c3102315ff5d472f7c67b5abf8245649f298b929fe12950bd133102916766c8125b8383539b0d6fbc8fb8da1bcf6457365ee9c6008bc86e3fbd375e2300270a4d20000707cf6b02138013851a6dae6acc1cd80438723f6d1398c3c11ef70e763732bc841206c0dfdfc8b0121a8ef1c5f499006f4aac60eea3d704defe8640856fa83077b79be967201133708c2e34b4a70131e84c9c31fdaa1f09d9e24b1cd1bdf70d883346dc1c44e0cc7c0f16dd95113a48be7befbf273a30b3a2d7081da57fc208f0e6689c991c85704ef7a71c92477d048d20b9ab23504ff2a84b49ee0a023d83fa9e415d9c19cfe2cc747675c4e9bb3f65f7e3912dbdaa7157f33b9693831d28276715ff7b986cade25d31a0fbd343c03b9dbefbe82f8ffc3d9b846cf1ef2cace68884933a7964e995de136a976e942de0fdc16e2a2a3a4232c54c4935478210a83c10d8644bf6df8ecd70ccecfcc13e5f1e1d0dc9a3a4529229c7e47216b7e365d231ed48134f94691c869a71f007d2709a17869a3dfd0ea4a1f1aee26f1f31a559428bf48787eea1e663843cb23d2618bda61ea925f5c04a422522d95a41a07baffb28547484148b329de37b13a0a0fbefae20e0fdf75f8eeebfbbf580467477e3912d9e7d6252514b3ba59d124fa907f6038484144b2ae5945ca5d70ff6ff010285888a8ebe2fd40cba4017f8ea2cce0cb803f2803db215671a3b4f9471ec8fa365a472b03f09a20cfdaef1698c31c618638c31c618638c31c618638c31c618bb2d29c65677b524fa1167c65fc6646bc66d47b67c3df1250a55debc09edc856b693555a52b8235bddd6b93a57278fe411110ffd9172c39450239e5454f992407227de4cdd2079b053a11f79d4b99c956b0cb0e7ce8577c82322b2883c9a46f368167534fd231665a46c75ef4fdd105ba61ed962f28c05d8b313c4cf940e3277923c9247d94e77b9a222f99a296b5a92a908bb9664eac9aa1a4d3dd8a396b419d992b6587c71ae08fb3fee5b4aca9d0b2997925cde3dcecaed9fe4acdc3df8c8ed1f75f3184ff0c9c02f3dcc85e89ff80deb9f18fb63c33cf49fbefde31371606f865442c31a8e33f7bf8c3ffb22317f869c57344cfc2568e283a0b17cf769d84fceb08d0f4b4f0835374f448932dafba7449920b59e62c79f80b71a161f892b5a064d84c956f596542f81c4472c849a6bdc5e8235f4f3b6db37d8a0e94b36c70fb199d2c3bcf74ad5a704932d5925ac24611ee6e834c0664a5fe58755555280a66938999452ce29bff9691d683d2db69772129bfbf6d3c6ec379bf5046b58a870cc2688e1e6e9c8235bdee32dde3db961eed362befb5422e860ff140a186a6d1d38f76c491f6f7109a4858f07869add47c2824898fb348f0ff66f1e1390d736d9926d9b8dec9b7ab7d19bb74abfa348d8487d2c884945e5bab87411028c26a2833d4a29a57db9084e0e85a3dbd3ffed7a93d2f994d2ef2b562fede9f428df4748f415283a2857701cc762c5fe7b4d9f5a1f2adce71223e911a547941e517a44e9d151cb20e2216d22d3bbb415a3f427aaa7467c0c1989e0d2e5be458b3bdf88162d6eb6f1e1d2b778f0b2b8363ecce2730bee4f9edad34e55dd1b12b3f8e7fe66fb8959dc1b136ae3cb363eecfd8994f986bca2af6819256e7b8a29c76d44f05c9952f34d9eda0ea4f04df726efcd4f65bd3fb1a56badcafb50f9520356fe7f82341ea5f453d9f927b6f42ad69ecc67c0caffcf703aef0c2f591ff6575ad8fb794bf7d4cb3ecfe4553526dffd0c3fb13e54baee55ec07d23079bbf22a56c713a5161f4194a7dfb700ff7b24ae8844f00cef426d0c7e63f067f8fc34939df46bea4d648ba7275f427994d5b3f87833e54b4bc19ff355b1a3eda7b5a193bb2b04782f7f03010ef6b20d2c3fdbc0db6fcf65ee51ef79928915ec6d3fbb9f1ce5fcaeba8b001cecddd30eea267ffed7cd7bdaa9734e93edbb7bdaa9db2dc2e4bb7ba3fa6923b5a9fefb1416e04f15cac99f7edebc62c1e274f2a5932f9d94a82dcdd2d3eda4f4a7d2d35309a4b445e9b6f8538ba7b60535399d7e9e7e7e099db4e4eb425dd9f4cbab32f9d45dd5005f3e6862f2a90dfc9489c94ff053efc50998a47087b9ecce395fcad2bc99c5739fb564278f7a16369fbcb7d9809ffad4cd2673bb32a7b0742c6d3e7992f7df88507d4e6195c983f9e4da4861939bfaaf628ab2d906fefe03694e36529889c620f89f8d6187009f956fe4e0fe7befb331aca8e0e7184378e825d9751a98001c4cbbfeba0ed3fb58abe1318668a9fcf79bb3bcb5f2df0c5f899d8bb322d7dd3ce75639ae278abb0842139070a40247299ad003dc2a1f59743ca1bd133fa3f2ddddbd7a15fb44bf09621388e1acfe1b1323c6c47b8187e1a123c1fdeadbc6b0e12f9ce98889e142f8841123012d849ab79557f9959be387d8cccaab7cdf1c57ef652b14abcaaecacbbd12af8f0ff2d0817e26823d838898182a36c6162b88e01047202b5a80bd1853239015467004b222e80547a02042700c10b115f3b363042ae820095b3032a3612252caa7940205b162ca79fb0ae9acecfa13115bcf8a1efa4cff042212f188c8527de7546714ee13ee380718aa97da03ee2d2597b26988c84a7dff8c7880c862f1fd25b185844ce3fe2d7e5186e4fbc12883f2178ebfba290f51a26a45a5aab5458b6f67cd47792f731c1c74e0d56fefe342f9ed294823821c57a7bdd97ef55b8335b65fbdb7d994ff00ae3285b3f9c3bd8a8162730cf77115b795f683f30d4f090d139ffbb6f139db3e0dd351090dd3cffda6b5121ad6b8e7ac16551f4fbe8535798fe9dfb61ab38273cc4cfdf62c6cc495d36cbe3131f7dc0d5783b3f3399bdb26fbfe54e7c64a447b63b2b0510a5565bb87898eedd404283004fb5731602f815790017bef788b6f20b600c5d691853b08c501fbaf013b12b961b18d88e0f6b8af89987b1c1c719c7650a568c20d70c4c16d6f48acddbea26126bd5f0ae53690ec2d37d0059c956360207184fd27108908a1ca06422248cd31457136118ab3c0413432849eadbbbbbbe77ff386917704cf08755251bd276a04fb73fc0ade470fdd3d76dc373bc64ce3be4d62affbb8af9b5ec779a58e2ff1236ed9130c5e7c519b254f20e77121fc33eb3d2e84bff769a1462b34eee99a1296d18465cf709b1daf4e3434bc42e1c63be4adf1c5dfb1f7a366b25565f5c935d50304fb7b8f8982fac2ee8a2fd97fb1e9922dfe1dcbb5933a49deec39b9e278b3bb72add99d3941354f1fec3f7d7ccb72708f2b6f58f6fdb619cbc9c9818127fd2625a51bb5527ec4262f8034729b3149b74d3e9537caa772c636db51db4514d973b372dbbaa776ebba9fe1db7b5ef6f506d26c947e3fc329fd2ccb721358a38dd469b92ded2b3eb37dd430dbb63d92879bd679b7bb9f870d82a5164a293579f03dd0ce2ed43731791c5c32f9b8c1e0924f953c09aaa49afae3ba9b71e0eeb7adc676d37df633d629a1e1afdbb6ecd8d37eb374fbcc760ed2d0fbd9ee3d9b6535b837b18d4bec128d73146af0234c0cc9cd610b06ff71aee0052ff81d5b1504413b138083b3ebf4ae6c26a63f312dcd89bd066b36ac5d22e24b8d1c850cf06e8881869831845fd082c98a9a6370b6012347a1cd7a94bee775ef81000753cffbae121aeeb6d7e867560369b6ce66f43536340ca576c63ca4bfd9ec6926afcac3fe923659810a005610a10baa6d6a9a26df67fab7e9618ee1dfe7ca756107dad63e7b1a3fbbdbf4dbc4c4e15cbac08bced27efb997577b7b775072212bee99737b7959c8ed8e2376fb82662a7e1d87bd36e66232261bf6cf062ec28a594b2c8080fbd2045421ec347d0f1443f8c8f2cd1663f2de267f9ed72232f0e0ffd6fc426100e1cf60331d6ea19200bc3d6ee9733539cdd0cc8439c654ba8d9632d6213c8944194b1bd54de7fee4c1ece727116cbfbab58b0e9337f268fb302f0fe12c959f6fd65111973d6bfbf34e22c00bcbf4c92479cd5f23dbcffd4e1ac17efc3fbcf1dce0adf7fbea20c8bdf664003ecff5551331d1510f6bc18639432c61c1707474d5342622d8299bf5a30502f4d523767f44afbfeda3ec6f813a489a5dbf674fad4fb0e189c5e3a103ed994875d1eb616a9e93b1ada63f2481ebed358de1d2d236279fde561cc375c7a2c79d4473f653fa69b37ee4130df90f8f4f2e61bf3e4b4534dee8d89637dedbbe47217f513c77b53e3cc3726a6dfa8cf3764c3286ed3bda11f5fbbc99ee2781d06272debeb306818f9d2a6deebbe52e9677877408573cadfc4f7e2d7f7e4376d9db67b966dbdb4a7cfec7b5af726f67bcec647d9d3c3b0ad12f044081a19b55ffc137b7a216cebbbf435f04ff6e45b56889a9237bdeac4c617226a282b1f86654d548935995e7b4aa3e44df4c4ca17c2b2de442bb19365abb7445adfc4d6d48f263b511686adde323fdafa538847d993e72cf8265bf2d1ced47b2436549e7a8741cb88389552423df92c0a389c35850f1eb8bb845be311631910ecb5fbae24f7efcf69f211f5b5e4f4e0a74af1b38fd1c66f2b637c2e03ca7e32209e05614f026bfd333c6a156b77850010e0e07943b082e35d99fe262681fb93c099f62ea4e99b89154cbf3fde6c43bbab79118083e95dd1bf99af3d9daffdbc2fdf64b396801311577e172d8df494b3a7f7b453b36b43d5c57b73fa796fb88fd6860ac76b43854f57de6c43554a9d7ce44a504ff2f1663095422900f5f56738cae62670adb6662fb5df400548547d92dfeac7ec6a3793fc0d894f3e4f939b7170bd264ff233fca38d323ec9cb6f11656cf1510975658353dfb7e47bdeccbfa98f6011277fff9efcbd3f93c0590a25bb51b7d69babac1ffd9a7cf62693f79975f12636db50e1d4734f2d138d5336277fefcdf353d7e699250270e4adaf59d3b7f65a5f99b9ffe1abbd99ff9d3e95fd8d2cf9be25afdd92d3bd99253673d7860acf7bdffb19b285ad3846fc83cd30b0f72e6c4e027bdf81342436549889d6bc976ff0e45fac66a4b7578acd2a9cf29fd592bef72c526da668310ffd3f2cd40d96b5588d66240be2e1e6a3ddfc5a6bda0f76fca9f06771f0f692db56abd04b28a619715637369972b237996eacd1642746d950e17e146803002b886005eebbb2c138b8917266f673b421c5b2aa28c6aed1c39b6d8438037aefeb49a85913da5e4574909c15652bce6c5b8c4a853385b1c05c6ccab6bd8bcbcf7097df3ec5be7cca4f6705f129bf39eb7eca7fce527dca5767917ccaa79c05c4a7bcca59319ff228ce82a93fd45a6bad9f0b179ffab6a927b1b931c9579b63e0fa9fcd44e0effbfbabb35428cff239d3b1c18249fea24c34ed9bdba62325eaa3f55e43d9f8f0e927d66ce432a3ec2823e2ac93ac88b34aef2525252825d0c6b8d890e53dfce1496cc45ffde15dd8dc3f3c0569ee8db54958b0ea49401b941f379001ab262651ddea61cacff9c32727cfd90669b4f893003cb5ab9389eb500de2ac8f66f59fdd02603fdbe223c8fdd642b205c40711f3decdb54309e116e902002d282178496c360df9d0d6668a332ae72a3f8ec56a42ae28131b24a2b197492222cd8fb90b701507d73b6dd0301910760a04e5b3c6e38127a8bd4d8a95e83ce4b82e6c73d5f4158532791c5cf2267f0405c7209f2be020251441b501fb93e018e47306ac841e388348414978053521865f700c6a0210f662cba0a63e4b97118e6690bd231e4d839ac108740423ec0f160163a011f9543ee538502315a8e0832f8e54a0c20b07e14107734fbd68811aa748c111f6e28d1aa7d07184e7ff2cc208114cbf4ba830c58e172f409a952ce3384a41d3d7b569b5af0d39ebbbd1c57b9fd586ac16f47dd682843c741049a24c2798be046b9ce013e992d37aab9fe12c709f70731844eace72efa5eac778fa3c34799207914a3b4aaf928eb3668987ca962b56f9a8f226367a486253cec2c1f52b98f2b07e0469566c35f2f0a891648b2b427d9426ed6b5194a7cfc3f925b12863dfc3fa9cadcf15c9bf79bb5c5189ab793cbf7fc5ce6f519a29ee27f7d35924cffdc67d8d32b6e4e97b1d48436b382679cf5a253e50a2807e4aefaa64453f4b578dfe92bba257c27694aef4b92698b7b88f207eda4a324d4a4a487e9a949058b088e927086b02e22df382393573459c91b332c99738eb86842be2be106556efefadac12265cf2241b58045d408d54083ad2bfb211937c127824c732d198e482463cd4c75dd30f128f243d4b1907b713b57d9ce58214beaad66dcb435dcda7bf9ad726c4f486209276e4ae401a2d86875a5f7ed662990bdb5805b4df1dea098e5468c1119cbda32c7b43e02ccb585070f6794bbada64c122d2255b60cc5bbcc41313536f0ec357d1fba2e90b221da9d93bfa729c95290cbb9c95359e230f297624480bf2560fad648d47e3d17a78eb24245bfc897e603f15f9ac9418c11c97db0897d4220f5bf029c714f4d324e4e10e0f513d8e781461d48908e334b143ebe1a1b3542c4e2817e6be630bc561ee661b21a62f9f038be0ae6988c80ef50634d2f8b343bde1fe461775de9bdeebacca9bbc95c964fa1077ef993adb99fea4c3f4fe9dfd55f7f6661c6cdf7bcdd6227b57ddb509b1e99e748031d088b3b2e94dda73ef99acca73b61655a33ad41567b22bee572bee436c7a2dafb86b1362d355a26358091dcefa95e969578b3cf495e9da84f81462ce252d51c9158148cea2de916c715411ce4dbc30f7992b3a32996efe006d6207e65e2681b9d72c7773f625362655ade76a3c1e3aca052a00ac419f7b4a9f32d198de930e3a54ee3388a4f1d0f7d8f2aa7734bfa46a2af2d029ac8235a8408520583e5dd984a71c230f5dca7bd2e1a173dc3505f1f0630169b4f8edb5a23652f25e5bad4823fae650ef678de87e72a8b916b120beb874c5a15eab05b1d146707f47412455882992a77d9b6df12c303d61ca618ae9777453902267d168f1dd66fa196e22cada83486011539049c834245dd4d5922e6fe1acfd19de048e4439c4dc739792bcb54a58259ac09c25798e23b11162692bf6fce348ba3d465ad2b820b87ed6621e9106e98d35068348fffe49b215677ebb399c20127729d6ae77e444a5cf3de8f5f78fa5c99b7c462abd37a6373df79ec904d2a84aecc49fcd1567940bfb9f80299ca5ebbd2313306fd93484fd556c9e3138c4b916a9de5bf94aec3ce56844ae15392bd29f4c61ee21ce14e64fe4987ec9e266154e7d8e4535a9f7c0d30e6aeab92b77787853ef2388f788d049ddec2f6c8258037ca61f0469b86f9b4d10b37112c083e0690772078834af74c917881493dcc889b0621f2b8134209287d2b5630d354b97dc912ed9f28ebc23e93a450f8948809009a4999f1431c76ddbb66ddbc671b4724560116f51c1c14710cf0571513bbcc5bd9820803011000c0a437d1e4194a1f1348ca71e4794a9ef1da15e2817f719e542edf08eb498c6d33250288da769501cb7a15c1ea648be4106f84ccc777def57369d6f3ac775d328efbbffde0022c5a40b49b66a114aa8659c841ac6bf168148a85a74126a1931c294bed65a543a09617f01d887a1227949f213ac715c7da8dc50734c328961434c100f0410df3340040184003e260820de67da2500d49f7c0a6853f226af02d2c0c1a837b1d9b1c9374803f53140b880b03102914dfee4aa8036258ffa159006753348c3e4b6eb8248f1c53f464271bd5da40d35c72404a062accfa0be5da8fe1c438036a6af8f02d2d4dbaedb39a52ed2492a0f4472a15ca81da897b3e29c9b768076cdf0900d35c724d008f6cf5c1158048c816ba8392681ae972d9648c41045309070f43bea07ef1e2aa2037a02f129fdf85340a10347202fe8bcc0710a9811f65a07a5d5e3629c36fa8747dfec028937fb80ec2a8edd5d03fd00f54f03f19e02d5a1d29cae81b2ce72f3b51f20a0ce80fa474af9d9ed1fa0fe692020f173ff24d152ae3249b5db2e12077f456a9ee1c7985ff3c43d3cece922a422468890adfe11ea9fa226f263d31660c1f1867ef78035a84d09e26d9f1f484849dca21ed4dc3d7c7ab4113ced120db4829c96360239819473d269182e2cf21b679618d5c5db480c8c0f1604fb57e923cb584296b0710c334b386b20851a24e128051d2318064729e804e13672d6e48c6abf84f5e8c991b3c323a8853cbcc31d86b48e919591018a34b0010769f20256031efa4b3b686e9052ca98b594b2bbbb1bd66d07198fe6677d74cd50b3ec3d32d4dc413d2485c89a3624a1b3eed734edb5be37f23b7ca3354e77dfdc04b68964c0b36d60bc20451e9ac0d96ff4ded88855bcf0bc1d8855e41c38bb59e22a5e9a9452cad316a49452d24c6ffa7dc037d428ca2c11837d803138b790c76922477b1fc1fb5d1d4ebccc7cef2299f1de63b0510a93e0eca32793fbb39ba5cc7d7313b8231970b721fb0edf81fda780f148692100e30529f230c37ddb9c03f78d8d48249fb08c5408e108df689cdd0e4422f8fa304113b18ad74c77736215af19139637f7a7b037bf4e02b18ad70c7773748fe3c063093d5802ecc87b9b338b000320a0e0074f98d1e1c4cb0cf72e92994e87133ee3bdab0033dc7fd65580192f871151b6789fe308efb99be32ff739124539aca00a3ed60006228c610b8f5383a127f08007521421010e3371a63be27372681256c8055c2e806f508f0c5586218787a72f74d16d220ffd1d84a94da4430a3922f256cfb8f01d86827207c52c5fde30dc410221231ec1b0bcf2066c82a9082e77e82167f595c1b9bf83863a287710f6ef213b38abbf73b047a0ee914424827d9b391273ff681fecfdd27ca609463ce708b0ca4251f4034ba5fa75dec77dbd1147ced7cfb53bc68f31c68b23e7f49d534d319aeae7f8387262528eefe3c9de98b8547a8fb9bf9e3ed7c7516352cde1a19f4c36734938fcc6c4251b1ff670f0f638d8eb6aaaf5f4dee9743a9d4ea793c9544d76f330e66191239dd446acbb3cd4e139b28523c7a8e21843457947755a4f0cd51b52730ba9b9913c2a6a75500a8f52e7711ff8cecbc80b5e207fbced1b437565af45999ef138abf85ccc2a3ef73833315691fe111bbd399e88f708fadccd91e36e5bdfde691c68b7b3db2e99b73823a350b374459996bf444b97b3b2bfa44bee30c2cf16fbd5ae577cf12292fc5df1459b81a44060c08831c587be7594c28b2f6ac5de861c6388194f0c61ff030c798ec7e4cf8aa78d56fe7cb93a82be7c7a7d088687a1f4f12da4e69818181e933fb6d89a1fe34f20b08dad28e329c696942e5746f48d52e0936ca2bdb590059e27747afc202243cd1be6e1c1b383853a81a4983fb019393cb09d8da79166bb4f8185facb6a63c237fe35ca96affbfb3ebec49756d43ca515f5f39b4f38fbcb77dfe69cd35bcac18b2c79cbe1a1c4115f24f7337c07cb3e92add78e6c912fa994f272377bf98e6c653b13e63fb009f39e09cbce33738474c2e80f0aa33d335cded92303da787af4983d4453072e348b889c35858c3cc88c7d63a8ee4232480a49207f1a3f89cc16adfab5c799c991fdfc23b29faf5da118b2c5b32cc6c3428d7722a121bef8c79938436366e4cf89145f7cf6c8162f922d2e54e431fe922d473587e18cb54f2fc8389fc52502b15646bcf8f811f7cff9c27e0faef83dfc77e8ac9e5d0b6ff5a180292515d34a7d5a72b2a84be2223349b168aa136e6311b6fd7f67f553393f94adc3c3978eb33ac67867d53173668ccde2e2da5f51494159b560a13a312989312a8a805324a8533595c0cfebb84dcbec6c59258b773e06501521a93daba3ba102a17c29f7e9ef566f5ec13dff7c374c6ef7e86ab9c152f4d5555bcbf8134f33ba8c6a8fa3f5a9aece35d65df78098a6f4c3cb5efc620a1e6185c678cb7e6ccd32a253073bce8c37b9ff1a704138013f30644879e57bebcdb949d271360382bc7c0885104a0f74cdf67541f77f65aab7f6b2f7e8db5e20bd6f8dd7bbd7d8eeff10e116308cff3bc6887f030c6101e4833b909220007c7cf3198863e6769e28d71966f34f2db7af393cd810dd2c87790267e667d7cef7df7a67f3ebddbbc9f87afdadfb246df79bfd85eba9b0b36a49a74a408daf74bfba49c73ce39e7d43419bbe367afa95a38644b91235afc2cfb1c67651998525231add43f59d42571b1a9522c253d98bce0bea50f1e65baef538b8e325106e53bc7c3d89ad6499e136fc73c74a41c97eb7096bb8cf8f0a2071617d7fe8a4a0a8a8d2bdb2d2c8b7e559ff49bf497f4a7fa4950fda73681a6185fe24b1fe9c771bdea7842bb9de4a1e7b81046356ff2e75f4d8b378a9a3ba93f93df72b694f2e288d3b4058ffb54f79e12fe351187f1a53f66168cd23dce4c7c16160e85850565d368f6f555b5bfc9aeadb2c7d3f1849c2fec3b31eaec8831be5cd9e76e89e4ac185f5e2231febc2d8f3e2dd42c3bdef83c687cf9f2c84324996dc4eb42924712c946238243b6f47589248f1acf97b3f10ac708a6631f2ecc02c72910f1685fd782ced5306d39dc7755e3be6c7c1807e3600e9c9786e3ec364f7cf1f73c1f35673b385a062a07fba8f20a79d4307e1465c61065fa3fd874755044d66441b6238f3a57e7ea5cf228dbd991473b59dfe9f27a6ade869a48c439b1739540902676aecd08fb07f1b60f6c417cf1075d0de39f84fd8f18f1d08b9862d84d482e900551467f67537a69132afa60df17220b84228647b2d55dd0253fbfe7923f18b86d5fadde05bfa3ee1ec50bc2e28b3fe8ca76228f6ce16430a028d3b18f0702abf912285b4d69ea81fd0011459936bd6209c754e4a3e28832f1fd471065c831c4972b1ac681f87898fdc0f19b3d1eded848d0b93a976cad8ce8fcbb57b7d3f1743d1d2cca7467bdefbbea0fbdcfb1eabb04d83dcecce3ccf45da20171a674736cd7693f1efa67459090b0d3f40569b01101e5110d9553a333a8d2481615797452f9afa300efc4cfa440e6210f334f74523e1292729ef6a16c11e0e3c798612ad58ff13d93a56f7d18e087a0415a7b92a35366f3bb241f32265ba64bb6e48032c8c130200e14e42d43f17f6aa94d776e935290c6c7101305157c6f7e262b29100fa230f075c11754986cf9a1300f6340411a8d466cf266b8e46080b26912fc32a42c49cbd15c25af9ae46f1a37b30efc3818078bbdba184754b21de6625c4ca87b08fbbdb837d0a09852ca610acbba0d67d96b204df71a58e3786ad8b31456a3d8344ba310c329c4d0ffd225442ac40702332f48485e6dc2342ec3bf6dd24e9dd76bf2983b3bd83f6e4442f1c5e7a70a40ae10b4514b71b514d630de3222f6a75c6b252b7107d34cdf3dfd388bc8b0773b9a052bc8ab715fc9367e8ea86574420d23c411bdc017d0d0bc0beea843db0f27d4322816220c10cd42274485bc9d899f7ac7154aa832339315ee829ad77d3565e5e24b4efc4c015c990d923257a6d330263662bad3932561ce39e79ca69ff36fd4948f32ab9fdf3f40a68b9ff7e78b9ff6670f3f674634e7cc90e669fa3059e6d45e73924cedc79c1a6ccea90dcda911cd39b522736ab139e7b663ceed35e7dc7eccb9c1e69cdbd04ccd16533537a27932b72293c52c995b6c722d98a8f919916c653f51e66613ced950cbe05e1061fc5f50c54bb6bcd7005eaf1f2da32b42f2317ec064ab8bb5602cd850cbe89086702704832808a296d11111c0cddec180f881c56260b4d88e96d1fdf881fd7fd8f1922d2ef6f27afd6819dd8e00fc80c916470400580b6ca86570455244b2c5a98870c55b9196c10df5c95604fb6f31d9e25ad032b81f0d83c4628bfd68c176ba79f381e522ddfc4638fbbcd09a70dc0fdad383435bd2753d284f68539ec783eeec604b82294833dfe631bd54e703e98bbefe4190a6f4600a0aaf581f0630800168520c22cbbb410cfdbd57176b982e46c910c510c310437f942862b884e88418fa1bc0d228c4162ac42bc42c442fdc800dd8ff0c31d632681118de805de5c66a3f4e59d51d2e178ec2bea53e3f14080d228ae1ed86f604c48706c5a6378134e09bea17da8aefa43a680e8dc25228220c9187431e0af9fc00098a2f5350c1c485d6843dd317dad209a441310a850251de938034dd938035245f68bf0c497aaf9e34c552a221201e05f25e9324b45eaaa404a459f912b0a6e473d1e1b711a7583a24f4a3932105c9efdee47bcf2bc996522ddd4c7fbabb3bb656da6814f18542419f10619cfe780824be4401fb674869c0fe25200d8ab37b6426258596c3269b111370c662df8af531840f509090b710c5971fd886339d9641b51061fc29176c80fd4f8a9c80130929b45a11910af431858488a8c07974f28536c39305f6545f68295ee1ee8f8f21ee84813e668f1b6affb433089c4040ab1548d3e974af16df2d808d33a19543d838d371b14ca765704411a64bc2b1cc85d2bd3a9d6ec7599496a404024b3b44aeb8009f55e0cb2f8025801d22a58bc96ec7bb57d7e968efddacfa6eca8df2aff6f59aaef6a59b57320cded77fd7bbf27aafee6355e14c9798dd0e0baaca668f1834797850beae53a3a694af282a2b17d7c4f6f0e25728ac07eb75455a068582e41671fce2ba8821c53a241315944ea823723ba1b013ea88ac2e85b9a0364cb6bc570783bd5456df2995d5a5b0c6b04fe9ba21ec413b9d112a588ac5c058b7c3e47d44454a442051918edb604330d850467f344b7db8976c5120dc8f9641a1a04395bb9906bdb047115f9cfb7129cc05264678f585b6f18af531c44f4b611efe80dc107fad0f573833c4a540bcc5dfe4d214184c25c53b9a94e48776621736626913a774d11febb2241cb51638bec75686245bdc3b43929fc9be1a7d513796ae2635489ec56adad77a089fe55dbc781fb4afaf69dfd644f29af62f603f301f20b01f980f059292f26ff307f0db98565f575eabab5b6345abff33e4dbfc7f625259d5d752fe5fcb1b5ead6e8d94fb26cd6aaf62f3ff290c5fab6ffa12cda6682961aef5de28227cedde849f726f5ebcf6f6c6bc37260e4d2ffef43ed83cb18b97a00dc9bfb8d3c31e2e8b0b1726f751eea35c1414cda2d4373dca6ba68bf22628afd5bfd9048544d32ccab56f625fb3d6f4a69b3d136bfaae266f32799366d234acf27d6f56775583e4fb4956ab67a142f22c56cf82e459ac4ca65fb9294f61a6949b376cfabf268bf27df2d532d158e5bd411b9267c1e2e6d5abe45596122c42ae7cdb7f93056bf4ff9d21abe955bf626f568f4a79954ec129f766f524a6cbe24f9a8d2a9b1f9ffec4be8034262517ac518249deebe1eb7afa1e409ad473af94e57c50363746713fa8d79e83fda0927ce6603e1e090a65713a0ec6f9d0d38b17208da7a35529b917b7437d5a5073f7ea7838cb593acedad1625126260024c207017e23c07f6c2080f574b6ed3f67997ebbf9c6c4da773cf5082388601a6b672b6da5d26b5fba1398980544a2a87bd94ea7dbf1767cf05e2f0a735613754d83843a1d0fbd7b79e83da899c25e3ecef228104fc7fb6d27478b00efbdbc97a7e361839f062e70b46ddecb593add4f6f11e0bbef184c0007351b49782ce00762b88bc996f7925c1c62abab41e462b2d5bd64addf0b70d227c4170a856e710a935d0d628b2621d22a28154f61142644613e86780a1bc2d217200dbd14968382387c48515989ce02000a9354e3b8c011793cde0e8704efc5c1027080008033805c38acd96c0e110e316b43ccd410437faf06b115a31d22076b19195296060e09d8ffe5b35896a4e56c58d21f409a39c40f600c0f0606a4a11a9e364342d260401a09032626060eb55fb2952121bd905e5c8c4bfacf5bdd4bb6bcfced662e898b693cb81867a47bc95617f32ef6a2e154b8a7e5ba184a4ca5ea863aa24ea813fa98b38c382b897694ca2771e9800adf000186dad7760a205565105f10a023c100250fea867386e459110f6320cdbc19d214028c5f893e952d208d007c31ca448f3ba148b814576272c2a958702db8158a771025ed2f68e3c18cb2e04596fc4f6c1f9fd07eb34bbc66bdb74bbf258ee8ed3d1b1b1170dbadb16df688feae0730adf8863a20621cec7d1cf8df4300fcbcdf381dde57abe3fb930caa123109c7998c6676200dfad32608acbdf7d59839395a839fc94e7a52ca0f2c71d72607a626b086c4370a0069e0d4279870ac69b723e71a1a3c2970a658036da40d0e14a450234a9151ae8b318018202c8e3f411b9c28602a059edf81352210bef1bca32c79c7e90649e9c49cbc29c1294f76dc57125bbcb5bd6f97c55b58cdc2b295be18654edf813616b0784a8a3dd317a34c9675608d96340d5e9c38d8d37272c26ce32fb17c6dfe666bcc9c1c267c0998fe1baacb75df25b2bfb161affb1cac31b14d07d60015e02f5f0369e038fe36261c674a48d75aa2419bc07c29e5043c6e4e4a29a594ca8f0341db3cbcc5b96d9352822fe94b8e637989a29aa00c4294d12848d3a5aa4f7cf1d76c2721be2821be2c21bef85350f2a04e9cdb077b04bfee93200bda27aecea236da539086bc95e3401a6e9bdcbca91ee2a89e477fbe06da5800cb9f138922ad484e1814b4b1009e2fbdbf5fda5860dedab989c7480941cc50796017384a8185245c0511b6384a51c50f0c04b3e20b3f473806fd106101c7a025ecc0de51168480b2c00367ef28a8c759acdee1320e387fa8d89663ce39e79cdb9683630535cf9f1f1e3a0c3f013a51b31c122404fbe901f32feff2fff77b807880f8fc38f2e281f22d7ef52a6f7fe54fbc8f38e288238e38e28823c63546df97fce94d9ee4b5377dc411c78a8ae15ee5ad5a145db2b38f2916679d843c3c0d79cb9187e41119834745ad45cf5d0916d13927c01ce71da15cdb75d066480fa17e44dee2848a702dea9afb6a0ae05e2bf288a0845042f422b910fe59558b58dcf5818227fa83c8282194106ac859ab1af4a634cdf33c2f8806411a1bf8c6460ad3a772db8450ae9310ca751242b950aecd4b71dccd366ce0ed9b280767ef284a9105225e11ecdbc63d17c3dd7c126a4ab9db27211923464c4c18fedf53f4b0713df2d089640be5d28864ab511ecaf33c8f1392ad4ea823c2feb5488b79471e110fc9432d46617568c2609f1d73df97092f1ca7008511bc8263d04f0c7345dc4f010d3d534003cfcab742839cfbb9ec8fd805776d1daa443508a8829a41a39e1a2318f76d7170046970b630d4cc151569198dfddd85b37744c33158867eef689b42cdde110d77534748a99fe13f6a8d110c0604d718f97858630404d451b91feed61801d1623188093cb83f05a469168e11ccc388bd1635463dceea9e1f0f093bcc5bde91b7f88fed67cec9d51801d96c8d91cf8f1e16608d514f8f1f27fd5acc5959ba6a8c7a925a46c431ee008a32d154c459d1e546ea4f0562d231f1601311ec2624ec5f2344c759d2088e18c6d608d10932016b8604ed384bc20147fc626b84ec08958035438484e4384bbe0147ec626b84e4c05260cd10981097b3a41b70c46f6b84b87e48c09a213f46469c256338e26b6b8c8cf4408135437a24394bb601478c626b8c927a4e60cd909e97b3241b70c42d6c8d901750056b860019c59c25d780235ed91aa3188f09ac19c2236487b364111cb18aad11b2034809ac190244880e674935e088adad11a263880f08d60cf139e22c99061cf18aad313af2e3036b86fc18729644038ef8c4d6180d0939e28135428e1c394b22e1884bb6c6e8e815657ac8ab88b3e41970c49ead312ac283036b86f028729634038eb8b3354645435c1b5833c405e42c59061c31686b8c806251a685c4849c2589d41809254599ae119244c459920c38e2125b634464880e056b86e804394b5e81233ed91aa3202146265823c40891b3e41870c426b6c6882827caf4909c20ce92473862125b6314444794e9213a909c25c58023d66c8d11d24e94693c6427be445c6364e42c3904476cb23546464376e008d60cd9115f2266c5a923b67cf2983ad8e70eec591e71232e8b7c01fb1ce490b3fc08145186d4d130fe3f128814923df287844519fa8d5b7146ca28248fa396a72b75541712c9cd2aed4e95004ead922e3fe22cefc8431d2d832b6a187f1309123e82a7d481b9972e49724bd48ad8e2540811138b12791884fe00b114880e15b50c9a8408e37409d87f7245d427bef87396c2ec106570efda4ecbe0eed57e105ffc77565fd3e2b777f133dcc5caf71e681b97501e0a2504b2788e72a1581059f455417cae319f376c2d1057f398edf6f0d15995087bd953bafab65bffbd2fab41becd467c1222ea57fde7ba6d26dcd049e82474122ab9bccb8b8b7df1e2e2c3bf70f91717181717985fb9c0c0fc4b0569605e6e5eb9b8bcf0e15fb8b8b8b8b864200949b671442697133a09791d27d471608d2ccb3ecbb21aa406a9433f7cae433fd4203fd84ab46d5c298234d7c524cb5eb6ed65cb4c4cb22c7399e1fb873d7cf41ebe871eb6a7281c0a00bee5bdfeb890130a334e88e384b67b637aeee9cda6a74ff2752d791290a6366e90867befc47e37b1eaa8a44c74d6a920758a462000004000e313002020140c088482d1784028d5b4157b14800f95b6586c5416c8498c21648821060000000000000000200104f460c46872819068fb6fb014a2e054049f1f162263687278b85cce911378f2dfa186da6b2b993ea85df4e74426e3e4a37cae4204f75f5ba18779dc15274e84a8f7461c05721b750590f9d5a7bd2cc88f149f615cc1f39980944fb383a1865f687206286a0ea4d8a5709d278f19402a806c70f4f692a553d0e41858b35a111a98361a118715141ca9ff97de202817a0bf1afd9bc598da55f5babbfb8b4740841c3edadf5eeae85bd7e30f48b7b65e18d50d43720998ac61b7076f47d46824c15250101a93418197746f997721eca8c98c6eca21a94cb2c3c641e2bd5c331ee82b105f59bf6e2ee18be4d96b4cc88fbabb43956ffa46e220a98a74829c7e83e87c5c5de7d62eb475510acceb5f06e195e11623ef8c685ab146571046bdfc3dd79bdf6e70359f99778ea1ea08ff372a0f0ae857f9d6c942d86e4d2eef542d770679d28c27a341edebd374aba33caeb998308b419b4b1e840f0ad6b690cac2b09b8e0267b9be78673e2840e760cfb9463814dadf31f66ce7e23e6dbbbbaa9388c8f76f59342468d0589cd39af9fbbb9f71bbc7cb788737cc3f090e84d484c05330e48694e1d90768cd141354a957c44321699543e8b2d41038b6e77c56e35ddd9f86579ef881464350da4eed3a4468428be72bf71d50bbc637b389d072f503a3a085cf0d15bced70881d4682d844fe4dd345b65c30f2257b0bbed39620db0a1d72485ae9d7156d7b0e1eaf82d0e426ec1167e5414f9d56b6bdb186da31b625f78b366a9840cacb4802f8842778bd9a5bda2340a45af16006805b23bdf35fbae15866b76050e7ed3c0f1ad2280ffa90eb63e7275ad5be97981cfd1d6a018bc3e7fc84e6928064887a92140b4c9ebce13cca2ed0c46102a3775942adab86ded59ac24d8805e2db8f0be1720b25b7057a782cea0c3882d84bdc3275be4b22c746eae010c919a965e8fb3432795fe3b59be78e08ac60ca7bb5099e792e9a02fad0249a37ef5c3b313a29068162d9b1074338c5c1778a26547da7000bc937ccb08a8ff5ece398484a5509cf201c73c26c754a86b38010d7f02d66e13a50647ee197b15e85f50e45e8eb0314c1b01ef6f5018d0d47e8298dbfc183ff9635b0af335ef6d924250833b775f2301f8ca0d17fad3cf9baddd4dc9bcb1253a56633cc85c61a311d036f806f46a97767320c207d48c7a8c3d7072ccb04c178c41fd416abff03d102de92cd528b53666c928c21e77c788a613a266fb2180ece0126da66d01de0008cd2da33f17c19199b1f129ad35f6a9480be599543f654823261d8ba03d06ddef7e83a797d3dfdcaa7365f03c5d22f0d271b258d5fa42619a0a409663e2e2708d10035451004d310d0dd3bdc8f2ecdd9d7ecac3e625d1fe010a19db6e9adfa1082950e8459cb30c8b95e9402d5bfa584beb19da3897142f898c1cfd56719dee6acfff273a769bf5febb9fcec94ebe94cfbf11d8f7c47bf9aafffb8e37a3bd6f6f14f77dcfdfd6afaf695479ececeddd9baee1e303e5abdf15e9cb9ed8cfddcb2b3fdcf07a6eb037cecd3d7a2d669f6ebfe8fcc0fadcac5a5e576a96609ae35d62e9dea8d9d1c1b422a1c52625c23ae2d81657408a7ad221d18c8e922f868e251b66a7853ee94fb130886640ca2e19b7c4a3bc4c5a418ef638f5195c34f9fa38996ff48c2dfb1a3344535b836568b008569268e71d375c60cc1fdd549b6c59bce12599f7a85cc1d8e99c69e1c2906ec135b1e5a0d6c387dec8e609d1068f112d9d89be69c4519865b0cfe5aa89d86ea390e0b238b7a23ea16311520adb9199d702b8831e7218af537177b01af6df21e0a16b2f9c8ffad2e5f226b3031c026cd0f3ec64deebf940cdc3466898a7200573f5941942965631fe8b5ff8513a67c60b996c10bc88f9ee8bf76c63e4656cd0e64295f6ea3caa0f77e178e68becd7089cbaec9e9a1ad3c64fa822db59194e420cf61583e48646124a288ccb08cb324762c601c871c1ef566a247c864b34e7ce5bc901c9f2d16ff8ccce16e861dc9d20e539ab6f36bf470807b3e36877b6c5d229b9f88a31b608cd1611a991ff9a463f347a6fcf66304a77f9b8c494e078a004e87706f32c8065720c4a5160f3b5871ad15544824284c23bf139ab9f267b1e9081f8444450274f9c524f86726198280dfd1114b9368119606e6c25bdd08df1f65d81e93f6fb30a022ab1a9b9a37102e0bc1a1c9066b893db225cd08e34d9a4ca124016880b27d58db7309667e33025f6b3a7cd2e808650c8c0f6242196000f02f3144e1f5eea6b49304a5c8880e912dd0dc52adaeffb6df53b046ec50d485e9b543ce416e1ad2420b21e15f3ff573714ce7bb55cafa0ec786a24844db8146e7f3faea35b3c461eca8169a6bab198a158e86f6577053325da1dc93b627bd088ffbaa655ea1f8d27e9b587ad5a58337a7d32f810ba01a0bdddc5bde3b9b956c52feafd2ae2466ec9b3dc03c11ccca6924ec62e66d5b906a31dff1f463e420c55cb0fbbf0ee92ecec8081252e0b4df5c94304958dc97bbc98b253e9e6066759f2001d71924e01a02d9d9a5ad6e9b3ca8899742810124e028c7caef4f13fcc108751802db507ff4e0080e13cd7443bd43cc5ef6e59bbf77b29b8ed47222c4cf2ffb251981284ce13d8dc24ec614c99fe2ce9fc0c3c5e94bc2249e10d5372bb34599dc5ab37b5a2a8b244967772b96a600f92242d79f5b6a9f094e185e3f3fd33469ee42eb1615af16ab09d03d5c33ff1509f0b8b6b1f6ef25b00c3fdc8da24f964ecc96f881614417ea8a04b816887739d70cf0daec62f91fa232309286de643717dfb97824485251fa03acd53175d43bb0fc9523c3e258d5c57d0c22be5cae37b0e7b7aa65269e34596540324f9ba92f1e189c4ea0d25b4a0185de8bd8130a76753318a502481922c38c2478d224d293f08a888ed08a0478e6b52276cb962b0f6a4885d762f34a29b2b5bd72870a41ba1a8721a4962de9969db5c390e76d11f13c883287dbd33e81143cfeb0bedb50d73d98413bc712fdaa0421c29f888709bbb61f9a281a10a7e4bd3aed1f41a7b2b830e90950bf129ddc3aa0bf52e85db0ad808afd30388bf6c38bf6e67411518964e91f7320c58b08f36d19b4f63d6efb275e1a10e40dd2f0a6bd23872bd96a5e07f514fcf341c77d3074c2306fbf7ff2f4c4a99b9981d96006f7365281042cb676729d0c87e722ff4494861a11f43d5a57efbbb66d768126986fc6fbefc28e71a5db4016c4a3563ce4fbcf637d4a676a49aa8efe39ab0d80d1d30d05930d195656ee16101190ad5679b8ea36e3c9c58b2433a047cc8f4438359226aecdff3e0cc34f470bb125245d7f170391cc6d91d28b20133a85f810cad9bb237cb0183380667a7baee6a4e6bb2ad7505d240b2664a324ba971f7d728c2cd0a59120c757ff77bf6947c5021c043b32d009103cd9fe08f8d450755e8689c8c76dd53314bc9db0250e001d3782c695385360e1b952c03270c592b21c07866897c621dacc3a93199bd972570adb4b5b5ccd932a04008ba834b9f8b0f3531587bab6ed38511b032ce751fa76c9c6337a2558c2343612264d4ea86e5ed2007111dabd7d5cfc8871f8ea34b5eb2d10e8f16160f23ba6a290eb0972c686109a78d1159e44bec103f8a655b8e072e12d3030fe42140ad06a95de05960099859de4392a93949768150ba0586882977f7786f5e0639696ca14775e3b33327913c5b791ea328714714f68a904e1b4777784998fde18733b3e13824d9cbd05eaac48693421c06906ba7040554854b199dc9a29dda915024db2106d0f8263c23414bc938d4ab20bc431eee3bd730bf2bc4fdb90b8ad4f272aa4adbd163c761f6618254d4731ecdade6c90b06578be6fc2dd10c72ff014ee05460e0f4037e90368977887e0b4642a2685fb14c032fa965d9ff3aba061234edecc075af22b3e4e649e9a2304d3e45df43be9cbab5fec933ecb60434c00c30d7a16fbf00a0b4ee0e5ca0f2701dbda4c14e9ab8e499f01c1985bf0403154e6f830cdeb813359a487a99ef4592530e78f2a73f63cf831fafedd68406711aa44e583522ac39846ed6178ec7e9eb1fe940702c263ba26ee2b776e0d058d19ee228fed785ce0d9802f477847cd32ffd089316eadb3cec49dd8480163271d3c39bf5989c5878ccafccdd4fcca7d6a0137ca322d21e5df8cd287ac3149e04630cf7481c85c934289114c40c9af53c91d7bcc47af2669aacd0f03b42bb3b9424983c5ed3157aa6a17609265c6627e284db9b921acdea9198498f555e9fdbc4432dfdf02064c62246b72d2ad550d99c7e81a74f985e75dfbbdd87dcadc50e6556e4d95745147572aacec2f023461c9c079b05512a694c7da6607491420a9e32b2a84352ad47196db24493e1e30da60a65ee1e9bebbf14e6e5d9a6d067e5120bb7c576c5eb7233b4edb536c2890afe5a626f84c7218e40ddb88bbb1033f4f855f59bba8f4bbe083ec55f75083ca094d5623a31bd907c6e52fabc23ae6ac23348caa261e7369c6cb6f0978c95d889b9b9dd0d4dd579393d7e7de64900576b1ef067596b39e5aa3bcd044db55a65d460d6696442eac2ca7e7c21bdcd119a63435e0dd67670d5b29d0c030e5a2a0e1f8aacfd7039ada0d4c95f2c2c438d2ebf6103d1a72c57d07e444b6e2e50b966c6137e7bb64b0a56a6bf3a8d9648f075842c96e4c72779f684f75fe3aa1f92e445eff174d22cb9695127502bd357f664e4545e1539aa8dff3d6d733bcdfb61bcb87337bdc52fa4d67d13db896bb8d9c59b5a44a0ad1a473898fccedd2848dfb4968a888b2c15bd5aac31d0e25b6ae4c5a554b22f0279a6f49cdb326df74335e35e01513892a1731de4b4b261c276cad33530d5afb7f196ec764b28fa0eda44d417186d50fb49df168cde17cddae510deff6d699fade450e6802020ecf74a6dc7ca80427c8db9093a7b631126408d18bba8b0578e9b1984bf670a2410308b4b5c0113ebbb355af089e3c4ace2b6aac26a0a6a5746a83c05a10314cf364da8830d2fb95664a4258d5fe56ffeb7ba9670667549ba7264f0eb80048f6ca595ac562bb619fe502919f94caf5126713779226ba2b50342c305a30904406f6c89f258921c65befdf34d08de183bf4c398b3cb7580745a6681d72a3b4347f6696aed683129cb3f825b3b74fc37fa6b4875e3a0a9103e78504d45d73809160b10003c45828611d3539174b454058ca45b3ae1157484f87902822c2b3c4f8b241c3fde45df3b12e164dc56b629f0a380ee1befbc709a56dbb3a046eba6ef14f297894ae5e79cf00d1cee9ffd135e189405d2ba7489fd602e95404819ea2c6e84611927d5e1a29e4f8152a1386a0a6ac69cd88454b2cdc88e10a7e4f2371852fe5eb3cff1161536304235d0020af05d83439e6e51a3bedc68a5cc77b9550be1a8ba5049a1e73c1db7ad50f50d8c42b570d99b5f1f02dca35e7adf5ca4cba5fcb8a6ddc9a7ca4789935c0d358f18f34f931d2891d1d2c73212032eaa8cbc59ee426f4b9a6da387d45f4a1723f3ba11bd8d67c79333589682409b4517f560784ca548a50bd0a4cca4725b1a3883da59d4e7548be69bfb8f90b1b9864e08c98b8222095bcac3b0f1173332f3668e440df34a46a3ae3cfc2025080c4db1a2b93abdd090dd090c5d2bf3597df4fa8ffc53b5af38858fc15f5f4724310c14478b1adc7672933e629b13e5073ace50db7593692bbb00146fd81995dc871984eb4a9d1a803b0ae86509c750838f4a58c10a74b56c2e41a87743faeee805927157203e57ea18cb8b20869f34ecc8c9678e2cec1306ab9c93a5ea85f2a6213e418d5f30ed44cf0d01e0687179e17f284bce67320e0d570e8a52fac1088e1e0bbed82ad0c51b6fbce8a45ec14a2bc7382c26d24a470f6d0967160960a3f5789b7cd39c374793d641b9002e5befcb156b6c7a8c12d6f0f54d180119958e55bb10d3c2b5924cd64105779488bf4d31f9459945ba24771d3c489c880891deb09509a6a100ec0c4ce9e177c9be68f1c0188841bd91843169c2d6a39f11d03c841ea0f759411578cd3eb0aaee20d38237f418f482b118ae3c6ac6d3067ab54e1437301f4a8e33752c739f01622690c1ec42033af397077007a0c5d1ba11cbfe5e57a2877011b381859e148d4b6bbb093f56d58d0d351416e5f497a74fabd868cc5be43449371ce51ef21a184e50c5258d48a675636d1d48a104de6fd54e347b410fd63077de3e218ce95e50ab057c0bdfa22af7c488ebbacaaf82b88f364848c0b408677529cba46375fdce99619a7688ba9b9e62d96cb65291d3f793b51a033a9a7fb6eda772d83effca113fff76841efd9ffcbf01a03522ea9d82b8798e6583f2188c290bd7fa962ecf8e57b323c5cfd4ac63ca4255746b8843ea26f6772bb287efbd7641430063016b89fd48da5a9727ab8caa58b0e83263d3f87c9ea7ceb09cae5826b20967d9dc26c819883592411b5261e78d4756b4da7a4b7e5f10a407dbb704ae122c379e4e1d3e129954f6273b04d7209f765ef3c8bc44a009456e1da98bea4c4555f3889b94f48931340207c695bbdec93ab23179d218b5e9c264d846a48a21b5279262f832d78f382bd057dfd21ab5a7929bc460ebc34cab4ddcc5c2f43efb8025d01da84dea6a64a273b0f5a05fc63ce863f63ad3cb775f54d7ec60088c0bb107f9dbfc5f63b2a1580c94ab659830f9b7cbdef3716317fdfd31365f051935eb75f6df21133037c548138e87943dd9e4d60f2d13b237f54e13868ceab7401d576661b41ea2c749f9f969a3f7c1472a3318254752650ee1e2d54b2525f7e31e6e3d803d6ab0700037a3a22effab36131d420d64821052dec3460ee22af46041ffc0fe22cabcc54c55157b3090d16a4b949b29761d565d7774b85584d881425e026e1c8166ca6c914842745fb61ae454246adb1679162742fc207104b2203a44722f83d7fd0624e9ab68592c54fe1ab3e2550faba52c8d2676a4da0044bb8935cf66ecb5a7d67597e41f2a6a56f336a674813a3f10eb49f03a74ae35d24ffd2e927c150751f8b4b001ee514ab37a73d5c2d6121338cf4772aa3d8ea17798a68911dd5dbbb527f0927cee515c335f3a52ea166a344a582a25c29d6de08808043e48dc362ff952b3dbe0271943ad769fc771f290c5ca4d2352b770f62e8ddb33d368305b1d16633d0954ab26729839271fde816c70b00d8e89c4b213b403bfe4febb0bee3755bb600bafc96cb30be38cacd1cc1e21afb6385064787b34ecb8a65b5206c920b103a1b0ff8c9a129547f4ff42b5237141a7190816e3acb039d7f47848af536f81c6bf5dc2dffd986220563ea9138fecd89c31bb1073a4ef4d027e1336f28232dc882f17fa84bc7b60017f0456eaa07386c73dca970ce14547792405ce9987296024e74bbcd4b78052137518b5b66991bcbe942a176e035bc4f895eefbeb760e2489c4e5cd9df1a9470f4661865418480277e4d173bc81a9791c77973c880f2214e6f51e8d829f42a80cc78e07ce960d0ac107e39fc2947ec1e553c2be533939f845b59703e44dbb418664b84ed40a2878761ea0419694b0786c9b7bcae52136325fd50215c0f37c3bd457641176bc4e35898a745fbbcb8ac13a17a3246b69806cb5d8d16d59096f6bae9935679dfd99478a5a1fdb4e51d78d2757cab4c9ad339fe57d0010588940350d5c1ca8dcd25cf1683f2fa3c83c48cf1646784581455f1c2574fd1801d61a1f8cbbff4edd5aee8eb66cb7764c5bdc288873bb775f85e4430bae20948427c68e7007f05a6051f193f3b5e6b20ba707896129394cbb0680ec89f9a83530d088b667b48f4019495b3a1ed1d1e2e36afd2ca5bc566b82a7e870b15dd2ce3950cafe66979de9e350b3a2b3cb8cb5a592d09f8fbce70fc87ffcc4b98c8074f98a144446eb624ec08673d20e5aeae06561979fbb03e0fde258179550b2feca19121463368a189b26a0a8d4a90a3ac3369935f112b96034a2e1e348db99f715796a836cdc16ab15dcc61919ea3d8a9a565a7312785c0753b6f93eae7485d941b78d5d398465657f093b6312887751a95b05f0a5a3f1c4b36ac7e608a7ec7b2db00b5dfa074db3e65aebd4ec15c9b127aacd1d2c056a37a3a49a7d507261e1d4a2ff12bfc7dc780e0684f483bb816a437d1aa8f7c071f91d0843a9e22614066ad3a3be35b363ec017a48065349157ba89a0ca852b3a1be935df537a948867cf4ec139d328909769a42fd6b77f9293b597ac5eb25476404d66dde8d232325abe144514643a8533106f9156fcdf08859a36979da32a8c1001808f07407017875abff2f0280ac1288a98340ce584b844a323af3c835ecb91bcd17624e213e4d9ecc5d5cd4d8759e9be297702feea6fb7a70afdebe3e2483cbafa60bbd066fbe69059199ef0ac3b47573b4505d8ee83169060cfd431a7959380e228eab0a84aea3ba709e79f9f312711519874e5fbbe30da9ffb9db33994ad076ab37d4b6bac93c0e259a7f8f163fddcb219fd91079a08f31fdc2d83f704332358b8b84784ed604bb4fe5f0cfb582eec629ac316d6cc030c552d752f26792f6b79532a2261ac43f11596c17e9f8427122b406d7c0aee043c04e2361e434cb0ec75df23aa13b0a3398308f1458d06b585010b9b407e7cfec5616eb83226c815cc7e91b5f31dd09e4640bd715ad43010a744270987d42a710cf476d872a7b11095bb80605c1c100e6b9ea23c0052b8c0b746a914f8634f04e9c51932f078c2bc1b81c478698650472ecaf7165c172c8af5b22e8dc53a69969bf1e8c8e1ee804579a81963fdfb80ee0eae0842f9316853d5a0d312bc084240b4b6fe5381336dba0a0d7f5ac721a8e3edecc0af5f2b6567b553973186dd56db37ed93e2437958781640a87cbb9791da6a59efa6824b54821d88443bf4c634ada9a081e92c5a5cce0c8fd48f1b57dc64437b10651151393f6542e369aa21455c02aa406d133591cad37eb9f2c6f45478ac7b51e50d464881b630316de6554f68c2b7d85cdad1ba2bf2ce7469df4b93f678e9a79db6bb22a3755be4dc69d2be3f3dedf88ecf6a74ee14590f3dd09bbdc157be5423b2187457e43b74811eecc8ee8679110af3f9c5700b34fb30792a8198455a41bf8722e8bd1dcd22c1dbc8fc3a1aaed60f01b2bc1dd1b21ffa8f1ebceb22ebb09bd446bfc700f26629d1d75a8bc1ff5aca810e9b27447724390585380df8114a640f793c4a6cae760d669fe40ae6dacd440e30b6da39ba5cd7a3f8f2173eebb7652f3dcf635a944ac784d890d6c57bb384669b5e6b9ad8f85737b11693e3466407b4d74ad96d82bdc64f67d6a151225aa8b081b906391ee6484605fa0e22f0041b958f98ad3e2664b787424e1fbcedcda13c85b7176f3c35ff8ab70731fc563feb507e1e5c1e58c04a530d5b6ba105e93a3754e19dfcea3ff05b26f4e313f5cbf6b329f766e19da886c272fb10103b5141ae32064f294b43d2ef511ebf743f31fb72cb5f83899572da03a4213845ae1d698bb12993b13238e3e5ab6447e218e2b519fda439ed422d47a018d1e08600de708e8ca6ac025dece0efd00c1448829f430ecc1ae73cf618b71fd77af26032d2bd34559b766a8a75728a6fc9eff073dfefa312b2213465f5125a5c811d231a4050ec4b92a88a7d13aee1c55925543afb7013c87fe113f62df3dfd3ad55665cc7d7673e7942709b8886cce99511c4166c9c70f4ae115c5582d72036ba2f23cb5108989185dd4b1678ed6567e1f88aa675d81c8006409baeae83c74b78e5d979fdd94a1056962ef902a96ad01a2fee8bff536d00d7cfd0c2da43b80734e23da1b6de8a41b7ef1de41b1c83b6d9e4fd4bfefe417600618502cc08f5c7825cd7f3e643c912104c661ad4e324e8a830a21d2dacd8c1702f29bced42801b890646b9cf295748be06c237b217750c28d544b4028351f0e6799fe9d93d14e312c4eaacc20e3a9577e9601d8add855ad3aed89b689b6ee9c88fb13e1f71e8f462f319e69e8edb2304bbe7ef99fef4664324779fea3dff8ae800b1b76ed85a5d9a640ee9d0f5a60b4d630e1ea2ff85345f2783f429ca75a1397be895902d7474b28b8f8edd587fa63474041a9116b20e58110408c6a3c3c570efc7391d50d8bd667e723862722e30a2762c5dc195b2d7eaf3eb4fe25fe2908e691d6caa709da68de605256916a9ea564e756d9efbaf57ec5d93ca7eb15dd56909ec77bd4379fd520121bd67af33f60bc4dd6f2cb68bfe9a767a6658b0c687b2c3da424cf3426c8525c92832199cea25fe937a3f4b9470c7df40b6265f733ecaa1e23db0ca778e2f80ca76af2cc4a55f4ac232e2d00797111760455d066c283f60a5b3d1eb73e968b0c7f166bcd1c14dad2e5fff53e196ec4849650a62a6fe21db8f5b47d27c850c5df383fbb5f6b76fa56256e9fa1e5b5c0acc46c99109061f732254c666ed72a5b9332f271e0984dc4a4084145ef8f9ec2008865f214943aeafe356cd7fdfb65552ac85dc6781c2eb6c04edfc183a3956157710a5972d2a0e2a9335d6b5ef9a70717554549aaa08b19285784f31178b1e14ac2832005338fc2c36785c1545d5ec5d6b591b665589df800239f0febcca26b9aa8c860bf36257a2428fbe1fce376db1104d6d985adb1cc9172405cf79cb100de842206859a8abb01f3e104d969e6cc5922d309eac40f612e43dec7763c5ceef49c1d62b3f12ef228f1c0ce381a042f0f0a7e08197c8724eaf1e1dd3825e51941b17d8d07d74a6168679f47c26ef22e4c59219a777393887e459e177342d63004cd71f7167c652d110b485ea73e1d21708f97b3c88470e61096886e1f309da2cf661b631690c19f1a5f0012bab3a1db1dc9ee84500c9288f48bef51b0afa5182759369cd67fff3eea19637b3e52401a980b98241cfd8dd6a94e462069c75f2bceb51853fdb2cb2e2f19cb7144d357916da444a91604653608a0e2476dd0b44c18e5af602765b5f90e201431f709a395796c6464f1a53058146a830966320e7a40942fd34d12dc066f965830d10b8af62672695cdc6e05ed21d1bf70d515b24d16c36730d03ad095b20847092e646908c1969127d2b574a9f67cfd83af170e964eecbc7fd907c27cd87c1c933be80544f6edd3a64363abe0411dd1ab7028d5bd0bc5c5b7ff1eff2373e7237085c9e77c4472c2d9e5ba98032cf4dba063a20f6687d4d8da9036a0cc0690ee4feed3ca5fb33060a1b7026b7cc67ba55a2da776eaa1254b5206bd2f0def408f4437646a9cad2da6494c6b81755c19d7b2d1c27c151d9d0041d9c9e58474ec4555e99e3c5aa221f81db4cf8b1ca09cf963ef0958a119c232cbaee0dc0392c807051a40d96b6cc59333ade1baf6dd991aab3285e8a5620cd1049634f8968f471cea2a3e4105508d934b82002e01c3f1685122404d2bc6e5c5ea7bdf3a9fcdfe7ff32bb8de268e5ab33a696c6fcdba17d6f61ea61498d6be287fe10311a87f0f1ff6a19575c110827c4d8749015ef0d6023c08d741ce148f1f41678772a20b2fa378c1ef76ebbe620d819338d49f3720fa81eac90cae260a2ac259e30afb44ccb9f9f41b3332b2a76387a219b6bf74ab3f442159f06f773810eb4b4393b88203668fe868ea22df2612c0a0ee0a98204e02d084590bb933216817dda6a16c105fbd744308a5a34b0dc330b1729c60797c37d6f7608fae3663eec1678ffca433365728e161afb813b21f6de49edb17ec449b5c50b60e4c3fd344d5ef3f656b95438eaf6f771f202082381ada3eb3ca272aa78c967c5713498f85861756ba8763b259ca113558a5a084a277b824cb3e0c766e78dc49b7b0f3d625083277f560e5bd3cdb839acba6c917d749189071c798874f568a5b45158f5fa6546de1230fdad800b37d2f1e47f38dfec2e06bd2621d6db76af36f8d0af4a9ed1bab0b0271aae5aba12a869480edccbbe9d6c7178831db1e0f4bd6ce79a20599264dec297ceeaf6a74929ae7490f9c9262cc1fde481b8f40dd17428ca80679e7effa6a9fca904f490968ebf40ef25659c8b6d25610178e428326405b49fc4e59a9f26824c71031c9dd70538e5d32fe6495b61c923ed3ee48ffe907100741de9556edd94417f4ff02459fb5bb63c1bcf11b86617019e5d4a2f8992784d91874656de1fc463e0ed4377d39decd6ea3cb9012d6b8c53c328c0f3fc5b200f4fe2258136f64445c3c1037a4d5a46aa9aa208fd5c5aeb99f183379f1156c10a50510864a76113ebbebd74c14d55aabc53ff3f81f72b18bd02ddca2acaa4583460ff5253573466ec4e59f144a4f13a3def5831e8935ac4893f18a581b0dc3f3a17f427796021fee28cf972158ed8e039aa2f21b5ce7f91d681b5181fa431964b25b0d7fea64e8217d5db3ebfdc9beadb825e5cc73fed692f16a1c4be6eef598365552f44074b70e7d59fc3c697964f0c00549ded7a99417ddd03430b95f3f6af88e1c0cf1d501bb0eddd6f9016aec2c95da968dfb38838376f96c3cae8b0206707a70741bda6ecac4f4ce1ef8e90a6a85ea5885a3e5e78a287065cff6160e1853263ddf5f22bf905f3959391ef2ded811518346e38a74f2a54b96d398b00beb0bd0a71c795a8d1075383a29662c6f09e70cb4211a9c152e6b46adeee0e1b2fccafced37b93238eb09b7ae137b625f0a96e6bbe0933968282a3795418e44f8276918cd9f09b089187dcbc98cc14b63d097a813d87708f873b156fcbf25c1dc93f3d05022ddd2bd941979f365e9317636210e28be3e3bbf153c0a54722c5a4c613bd67212fe6ffef41621a2d8fc51c105a398c4e76deea0e08947b108a0f148bbc267815a596bcb402dccc00586a812115f4cc7e53d274274aeabdabc98c10549af03641febbc5e35ee7a10c8682aeeef3890ff9c85cc3230f35af005a6215b1a3b8542bee5169e07376f7aa7893766cd7b6bf0bf73cbbee7d12b3d1f2a3c3fd17f3611bf1ff45b3c3a44315a782f036ba7d17d02129f7291cb3d964e0706dcaf6c4836f311654bbf0fc15cc2a9ebc11e572623fd1a00e923c40000b4b0cb1b7f5d5114e0a0c43599efebbf807997b371b8ada562570a02fc228e978abc5423c427c8573d0de878f893790b2d575cb9a4913a09e575e0231e3507591f39140528ca7d0a161f74ab6193a6f54ea77a3135a63bdbecdb2bc470fdabd0fb5c3b4ba14d0601b4c83f8be2481f02935bbfba0671d30050b6fdddde111b1119f381e009cc18cb6415f3a335806d3003c078d29453b1cc277edf433b28d5baa0a9b11e2b82c27106d12b8d73e0899cea9e95520e0f3cf47912b904ab0263f128e22134ca6950c64eb576697f48a6929054b655db73ade2633f42724d8b82964441fb407a02c91533ea143e0b7e5b625d57719f7a05a63f9385b1cf0fb542bfd82768ec91bfa17d38365b759dab0417432d4d0d1463dd20dde87b9798550a45efab020bd8e024ea930bec54af917c2a58debb550bfbde25fe27ff50038085fbeb824fe2c3b98bb3f435b2620d7c8330d3f482f6bde797dabc00088f539db9ae4e1b71321558254396a01fa7ee4131746fd6d45fb18fe8eb5f25cb6290426e608565b4214c61bf6b386d77bbc814fa25c862deb05af83800c3934933015370b667c619d40679510bb39bbf08e9684d468eec8737e4b84b4a25b7270e5972a96f28a9f959a8504d96d7cdf6cc1c56b818228dff569dfe475e5cc51bd7a274fc98d89c8ff38b25bcf94696346d109d2fd85c1988afca18b78bbc4b654db04f85d8fc2b94f789612b5e63978e2b5097ec54cafe64c7457af4e1ea5003153cac7c73aa07a6a00b7736b3edc39047ef3ee035227ecfdf76de5c5005e91b5447f6fcbda61ed63ec0fff16388cc6d0e43aa207edf08b77efc77ae37364f5536c1b4a7410e605ba6e5c79877007bcbe1f2665d1e4493a89c6674c3dd4d26620cdf27cff00850513288cea85d2df64a130c881fca2c0732da7dfef0acf557bcb7275a880de24fd699a430f757b69228fb1f3575712fcdf1fd2e9abfc6ff78a56b116149a7447503f49967774004b20f0d1cb6132021e3ba57aa1c3ab4637ea920b95b348842e18087d20bed6d6839c2c7babbd746c123d61ca68eedbee9d04ed638e2e22f15ef93a0027168fbbeb1fd81867f59e6f017e78c91f81c2fbfa7d9be2c255c05c947c0672cdc1f51e8c1f00519d1dc3e1368ae5dd0048bb01cbcec8ee65ed06959fa65fafb53f00d8c60d593d4f9272164a9983bc6666b929ae27e7d8b92aa4aa47bdcdc726633a41e84c6bd89042db7f89337156586b0c2ff1a58ff73378a0ea8b6d1cb27022596bb7372080fb3b7f69cfe4f49534825ed6ad2b11bb5b5e1cbbc072450a8094d27581a52aa90eba59329a69d4efebacd26d6c32d7d5c241937b3192fe97205188e2a2cf1676edc4c5708d70058b356f696be5a75c9317240444667480caf581f9ea0b4a1e8c4d1357237c82a8c0355209ec6891979d5611d112042c01b5df984564b938937992e47d6cd9cad500b62b8d986d4b22614feb93635708513c2fcbbccc784c8558e3b1ed10c7370ea4edfb15b65fd171c2a6f44e6ae4b66d3a839fe70f60290568fc05704ca2fbd164967415b46342fed39814c3dbc862726ae6486e53c56324e91625143b5e8b4917dc1243bea9f6cbc55c4a5aeab5b4946e261905a20ea7012a966dbcc75fbf510fbb3f3d98d21a058b7429400ddf823324db2c9cc89ec9f33b3a0650e7b63c9583860e02adeb410001dbaf4f19f06113a145bb7070365abcb8a5f32be2775781adb00e6de5109c30140fea98fba4db3a598c5d30f7d468f37a3ff53c20244fad4b53c35862241e9cdf94e41f51f88040554e69a9921451a0518c4dde47389d568857da31d397b0cfaada243d426499d9e7865e4e6a584531b1a52c9ded76877491183aed3c18bc1624e3375725e9887f759f3c2e97ec2f66c9dc501579fd4c3bc5901f0ab413331d40bbe8bfe4f5c8a56186efc1f9b1d9026c9518d68e910d37a79c9c14651a72ea99b25aa760424a1c8ee6563c835e040c1ec4a212a0acee487e2957608908b50d3c68b05aff03ff9af80cc4609a8294dd753796e2b01f585afd4ee377f0579eead7d6fda9dc1b1236881160461e91b13157e337e6e38867ff269b4984696837dcff8ba2b5470939863763380df4374399f536b3c00abc4abcb7826ebe6280af46eb36854be82390abd82bb02a0846c52b5f8ef9a806775d9b08dd7b372e2d8b7181286f766a4846b5ec143e3feab20928e947bd542f32bdaaa1e92917aa5b15661b185efc80592b4ff0816e9c17d88db04b94be99ee3eec92c7299ae979485a3dccda4b26032abe06aff8c45d4595bcd9c2131c6356e96891dee38ad7e67c71f32e9b1cc93a195354a334245d5f1385bffc29a52598dcab17dafd28914a4b342985d4d9b1ccd0fbcbe23a502708ab19095af549d86eae13df2de0a7176ab8c39c319d52054f0e4bb58ab600598159ee25ab7075262ee755cf8946fa3a90f21ac6b5a0a9ed56213a34d4823f10dc5f16b6fce1dcbe136779ad55b28c6550f74b28e1f630218748a98072b80745ad0fe60afd28e275e27304fc8a3f0d2daa9dbe028744096847093f754b2221646ba6d6886080b64cf59afca172fb41a450395d25eefddc2fdce38188ae5a3969b5fbea39ffdd40328502b1ff83e1b9fb8f4fcbd3eab72fea5aaf9486e9f5889bbe16388ca3a8e274e5ceab096311d581e12b4e0bcdad581da26687a9207226350525552c58bba53c3c500caf32f46d609a08c2d73ef279aaa21c78d6549c1985a8a6179ea38c2836d842649df07ca19afd97dcacf201dbdbd068c40ed5fc83a228d8fc409291ab98e7e7b7ac6211baffe7e2124f05ad44dad7c34b72d175e3d4ddfe473d1b3c6eb45ead97835653a25901fda18fc11f964a6074da57a11389dc0572ad26241d797e8eb05728b1a9719c27aefccb23d04b62806227aa463b6969c9405d6d27c53de323fecbe4e317a60eed228b23df6ea024a70aeb69ea6299d2c7419ec370793a70ec82866303ed037a789124d41a5d9b007f0974dd0a201c26c773aba1a9c7620bdd97cd6b9253f62549281180c771343c6be84b61d9766a2a5cf948273793c92a66d4315699bcfec4cb1b2e8febb3eff7bb3d87bd900d905902276e07a8b6d2f263bbc73ad363cc26f02b5c123e89e36718fcb4f97c3e651044335ddcf930893e6a89d07e8bc6a3c5365eef94d7312f1903ca07ca25460db077eb1cdfa94e92101aa452c2fd91cbe00f7072211bf7f14d3d8c5bf158dc6359e2ed3ff754296df335ad437b77f69ee957e8388a9dfcaef6521819667a05cef193d722be7da3b097c039a25079417d48f46ef505080f92c0f949b30d556ea1b4e364e9a03040886f1cd3ac93083175c3b4f60c69ed1269199a2a38dad26b7cd1410cbd4987f1a5093a4d81adc28d7a0cdf34174a6eb008aee2fb49acdbdf41feb53143ed0fbda1d752e22f6012cb86f27afd5d856cf2324187093d0d7e22942ed5ff604c8c9a3aaae0b4ddaf9eed2605ec84b69cc09deed743a773067cad190f8ad374d177b03ce5dcf49a7f250e09967058c880bfbf87ac9f8be96e86b94c6d2caadcb00f163822bb4670e25151468579bf993b7ae809b7f25eb2f06a61bdc8bd500dd928ddd9ed61ff74541d69bf4087a6576363e350130802236fd69bc086cd074614dabfa50b1cd1b209be7344b1f7bde3049a6679f94b2fd20845ffd94be53a36b845cf27f94c42418423f51a71714425eb0e1a6fe17598e90c5f1573c0029c0980c87e16235e013b8e5c79b6975d889189a94b6c852cac62b3a4a3a5d382006accf95430bb9446b78ab00aa77cedf8bd6153afea39eed20144f8d29208b301c8333b168e2edd0f6f5bd970fc9a9607b838e105bb36213321bd14b27abd023eeb67f6d1d6cb1b6ee91d7ea001820bd1b1015ec643ae67d8b8abe338a78f684ce85b8970c18911455826f8dd037a47c0beec90e545c81a0cea9cc733473121f9100e02be782f820357df2896a44952e84aec41b619fef6db6062071576a1e03b326b4e7048552ec85bb04bd71c6945a2912c22d2c50937b47ba914effdc9c8ef9da6ec73d256aa418a1b086e25dbe3da54b5a1b87b446cb83c10cc33f62d3e235440941ae471964090744c6d41f63075a4832fae6f79807a05f8a418a7c34c668ed4cf2153d88d82408b23f9017b380adac112777a02ee9e3077501db5f711597ad0c2a74e56c4753ccfe0e6854fa3eb895ff404afbb500a6456177e57f9c128b00e94aed6892bfafbce99266fd00d5574ff318a58fce725d20e3611c55e55700560a2c0348e78bf8f4afdf2b2e641b6f021841e57a0cc2d8f4dc7e84e8f8f682cb974bb3531c89acc6dbafde2180bfd97cb9348d20f7f13122fac4878f1c63a412f9b85393ff22d02060e19e92c43ec0c709a874cc6c3edbb29a65f5555361a4e3091a55565ebda0df04530c761c3a07115e0a3bc393bfad08d1f65ee131d844f7c112def2725be109681cae451d1e1d6ca02d5430f4fd88f340443fd4102cc1eabc4083fa9eba2c58cbfa986b2a765019856e5af990370e0ce97a48d3970c8b604b54ef17f228ef536b5dd8f470b67f95f77796d332cf2f51f3a94648878d40e6ea43427b55099f20135d3dd307e7c5d150830919ede95a7dc8094cbe9061f6954bc402b7045d626c6e5408227167320204be74193237b7aeb58b4f87c70c56458c2517b0d26c03aa2979be309f4b570fd4213ca4519637abdf4889c33e88ce8f562e885e84b0553f571823404b061dd63d0cb57f27b08ef3ecfe1a3f5d3b7c26260c3ec0568ad06fd35178b03edc4e53e025486d59385025ac57b35a8bef1c56772df8f3e9f008ddd7170c00f5c8adbb79d72ad111462506844f3f752f8f09a6d30be19e880c1cef9ad9116ffbad58323379e848b8610b702a7522a2ec3deac8e4f90833c7337daa562d468894e59076d836c2ae6adb85d69112f206034c86afc7aa317a9747ea1ca45a55a4c701acde724bc2bb17f83a09daaac6c3a1ec2628b96d4484be71bb49e190035158b54f2455ace98cc0d7fe4d6c896a0a95eab2a31162ffc2899b22cef0917fa47ce1cdd42b818eaa3c07e460c2fd6adff034a30914ee5cf9057ffb19ddb4216aab4ceb351de719bc90a0727f7b147383f35d607a207edcabcb2a3759418139644024da7dc0ea5b7ccdcf1e8921241eef853057c4be619861f68709687c9d60c5b96c5e689a9866e66adb6144ccbd7e5193644f03a4ab2da3e011dc3ae0e838f61c340fa0598aa494389f50f7d6be50d998522e9620c35e9ff8986333276ae6c96f34da13b277cc36281d64f647957e66b2d47b35060510a7254460434a5170030fed9dd1e5d156301b88b2aec8616d9f5272503668413872b96c05699aecf7c10b3b1e1361383bf6526f19fb133ddf4269b2ffd267e56330649ffaeb02dbc613c2a927206aae65156ec8c63e38ae5afeac19cd4071b7187e79029a9041da4d033261aee310279f0789e9d1d3b853dc6c5f5d5f8220c05b3f1c69ff38c354cecd536e9bcfb42e32cbbd8dcf80aa7629528eb81eca61176e83b996e6a59d2955710bb4df930925a6b38aa5df31681aad7f28751b160b3736a5e2d5710348a71ee7f7c99cc954869ccc9e090199de40f33cf7ac5e0ad83edb3fff8028f32d92b95cfa5733d090047dc9c5639dc6641b22f7b2c1a2278abe784b9af828e1bdb8bfc6aebe1c8039563330dacca5fa2ceb68455adf8c3a283dfb39bb83c5382fbcd7e23ee1828a95b5d3c984673a5f31f221a14fd51e5282a05a3792580e2f38514d9c95a20258299523ab0e7500c918d22051b61c4d391b394380d77264ff68e23d39b03e225a3dc801e67c144ee842f4dadd92cc4f248de1bb7a9b8a6d7bd71c75f430cd76951f9af6d881e44570f01d0fed9fb5bb96f76fc1eb88f4d5fdcc326ab258e98e7b8cf50e2344f1ae180a0ea926d7ffa29029928e7309a54cc84aa26a89ad0719bd29f77a84228bacfd540dca83928a56c3cd900544b37044f302630077a5a7358e1a6ea6a79b6626b94ffd81c15849b2a18c281bc191f22a8cb04c04f285d29098c6a40d84ada527d6f984b198c5e5c1d9cc40d37bc080057676b784f4da9c8b0a45c9222e2d2c8836dfcd53cdd9582d1d499d35eb6eb289d3f12252953809a91cc273349411e51907405c88b8913d8e385078106b808a1280b868095a1cc5e07dff7c1c46871335aec1c1e9be562e4d959cc0687dd6232587c1698ff299f7be9410d8bf834ad8f99bea3d584e17cf6ef97bffd9ef21793595584698af533f6077a264be88195bd4a1e43a660013a763e6dcb95acd2db384413fdad93f8b47b6d03a3bed994f40df71416e4600c729eff4103d38b37247c141d0347472113189e6242c5cb4ec1d4a68da7c6abdbd17ae7dc4602f68d6868ce6758b90454218fc5e61646a3b2f7d257be009bbe3f18d361d2f2001b709111019f8a79f92bb2dcbe904ba4fe8abbb27f252d4b74fd9e79eb5dfadea924267537ae9b0f26b7832c3f6351a3924b31f8c79686da6d7de7b13c63ec4aac2d55141aef6eb5d66dfc58d81d55325be49d49247699267b87728780293ee2bc20c12d6a01c80d4eb6a3c0ede0ba771fec9a22cd60d73c26be1f3e7f61b4c61d7dcceb7fba2727acc726ad0840b3a1268068b3734bf7ae54db4b3e40c6000bab05a5ef002b1f1284c6350d6075d4f1e8e0b192507fef82e14e2ae250fdf8bd5b6421854d2cdb5cd145e487405d55e5e022e44fea9b8079c58d034d46200fc7a0e29d8678204b08ea016b6f28790bb247873017fe83c88debdca1727ecdf8cf804aca12fb9029df51a4100a64dfcf284978238c96c8439d4980a540503992481bbd0096a092cb648f9c6dc493ef0d381b96e6b80dba4c48ac21d80603fb912654576ecf405c5f12fbbd3c55e9a636b78e58552fb2ca83b9cdbed91882609b4b7f69f185f344de37f2ae614232afe848cb33976e66c9178a20088c54b3bec69840c711950ad2d2073313bcb7e72eeb567f9d1218cc6136f41ba15d91aedbc6a87e0bea6d05cb3f257f2f7c3798b02edbca79d5f5568521682b22c540b29cfd93d8cdc0ac5f8385125fc84972b1afaa7e60671680d54d4dd6bd312c4640c104b488137dbd5e50492961ee3653896c262fd99f94653aa97b050a07ea30a4cbc291983c4bc4974497a63cf7bb4c294812c69206dcbc7ff65c1bdf0a9508177c85f10aee3e5ffb95a7560d18a27ad9d9eebe1990452f2d1ca126a281e55db6d2349fd615f19ec1620d53cbf87c0af5f57729ee95a0923c6b109be9061be4d9bfee05175403028302f4649b6fcd8ac284e0e792bcaeeca7de41bab46f2367084d95007ac243ad25e1be4d5cad7f68ae20b354759f745f6da855060d00d26ccc9efd6d95498e59caacdc725cf533cfdb531f8f6b0a5c8e96a6e118c7995f43c4ea18d41fa7a298c8dd8a2ff01c0f31d2ef32bf3911c5c5522cb80fa2c266bebd2e22c580419228346e3e425f831c60ac9e8b8537f30fe2b5653e0309e9bcd8075c3ec12cb2829a7edfd2d6e3104563903ab60df05b1db8c037449d93c5fbf27d36c0c3d8c2b9510bf89df6680e332a23146431f42b01b1b039b9c0713c89980d28809dec40dec9ee39742aceec481fc5eb52798880bba6afd36eaafd24732afd1d8aafc324ccdf00aeed402044592156a9d712f03d4379e3a8b31a11a38f2647eb9bd16ae7f8d8592703ebcfe1f93142500fbcc85e6e2634e702fe5b6007e7ae554dd88f83af8fb6041ae8b20a681bc9f4a9db78f1ad04ccf60bdc27f83adeaa476cb90d41c842f114ab3708e94ed6450b593a7c0d817739ccdbb5d37282cbc4b3608b66fbb4c0d9e7b2e4106d729cefb4b64a89efba27bacda1df09aa6593ab7034ad06c1382a406ed802c2e021e180642a0719a26c609d9bb42d5998b8259a0511faa52fd37af9dcd93ae2ba2c22105bc5bf2ce2c2889b7d4f19a9e2bd6e8567564f4ba0cbd237665e8ba90606fc9786365918ff863d3962454c51afa9220874f9674c59877bed9b087469c0175dc249160730170db0e6a732762a547870bb4578617f1ef2db224e0ede99ea226c6a8036e8d66264143f35ebfa92a4bfd0af88b08d2f7638b0d5ca7174fa64b929999e93c34e4359b0319fc16414969256c1edb57010abc671e3f19a38e6b56aa0c7265a76022b8eb8ebeaec5f04b4b67aded448a0a69f80ce0db9cc59726983184f413bbb94ea9eeaea89c069281dbd874a83b2289430f7f79f582c0aa8636909d05f0d3e38cbe7bb791e99bf793e80d379229c838dda22cc6d4842adcf9dee7b0dd58f786dadc1338e3cd8da45ab5ad9f4af96c7746a5ee90f4319408a7be38325ba9693780dceb569a39c65d6b8c994b2d5f11a83550edcdc129cd9f75431802295a8da43b29067bd6474bb22d65fa65653802834024c362b3a4ca42516ecb149c08e2869bd75ad808f6b24ce2b6ee1da90dfcd2da22f7073844e8620e1f93fcf465a8b9dab1aaac568cdd41241a004253a2cef8fa69ff0f2d7cd0238e9dd1c99f8dd74c2b2fd578f722145bf1507f44bfca596c0620396f42ab80432b0d8de3835948a1588765c95a6c6f9cb908373e354ab3d4963ea36a82bf52220db4e9c50b0d1c345cd0ea067e89d739535b76ec9139d285f79fe6da1e804c889246e3d45859ff9ec33bff8834e7323390ecdee453178c11f42da916203af80a0ea956a232f017986ae36df462f74d13b278012bb70d4b9b46ee2e5b8608e5dd3fc49cab82cc89db1b1580d8bba3f6ecbf3fc1a1e2bd099c086f7351bdfb2a85560cd35c1153aba46ef27dd7e323c3209a85eed6f3e410d214193ff3e0a5f458992b01562a9cd236676868d62c9a1cae178d40f0493328a931dbacf46ad783986326eeb004add0595a827591cd969fa9247df0724e1ab1f6590d2c855177dc77a9165950ad21036a262e83608c6b13452ac19e965aacc2610bb1d90977d3f0701770044fe5833423d07ebe80f811e106c7eef284e2d336725fb566d241daebcaea2fc4cc5e56a96e9a29996d3d34f5a4071d1dac34d1ea712d07e91ba05f6fbeb3ae0e759bbe5e9847e40a7ef44011795efadda38c61f43f90e2b77f60308fa6cf89dc41808604d6fce7c81c3b3838ec1a2a202b156317c1529af15ca2f3031b03b5338298181346391ab941002e0c63488283ec323a778c1f0b97fdba022af40784e62949e66fa6eba1b0c0cd0d5ecdc7ac2bfa64bd60f5fc2e649e5e4410f910832654b1708dfa210018bb42d263bfa8cedab338a7e2d8b5ead0a2d4b1ee75632bef89bb5a4a64a307cbddcfff2b121256f9f9044e4b4e04c2bcf862f97a563d927f860dbd91accb40c6b8503fc21d5f1e806f7be2c8abf4b8bd5aff0dfcd2d59f995de78ffebddacfb0767b2b74a64e85af5c994ea1b8da6a5f3b25ecb02c9a8d02cb43b11e9f3edf3fe2d1f29e45a5e1db692adf02c4313099786647f86e663514ae2d7b8d564af1d6fcc4649ce0864a8d604f53ceae9fd097d404bd2cacb0db28df304dbaccae3259a0d8834db9f99e1e6103fa6a530aca3a29d334a57514072151d62af063873fa0a73c5177f73d4439c1c59181895f85d8da8a9885bfd0359a557b8bb8c121c98173a16b2eb0ab1c20fc33ac61c90e6a111295d913dd1a51045d8916bbc362dc4215802a3185607da0e6e91a6dcc0c13b71244b78cc426562ad845e76b4e8cca9f2d444193826ca2cab8dff70e85a059ba6e4dbdff2fddc30d4fee5a458c5c5f151e8389be8ecbeb8b2a5e25f46098989550bf0b1c8132592567366f27db34e6a11dce68fabb0324bce624e054dec0a144101c24f6b17d1a95d347fce8379fbc493e957c8443cd0e9b1cc8e28e44b1b2f3ae793837daee4064ff13b4a30299f5ae54d26e9e9385df93f3bafe548befb5457d129d4d1873f216656886b74c73cc52a76a4f238a83290f7c329578e80bbfb4d7f19135c1f97eda27b46fa1ca02340e0b3443f44c25a500e89ceb49cc0236576fb39f397223b9061f731d9d39b40e0b4e4e5123301439e589432c263c72163c841edaea4a1d74d74466949fa99764811448ebcd1f352836bc14e657480837f139234482d6c51abca9632365a532dcacb0b5749f7734944dc0c7a850caf3541744364e1ae2a810b092ef9fe87c1463dbcc331b6a4bc01233f5d90747d272e0fa3c16e92f466c3e73d78ecd344a979f131932eff363d1f741a17bdc9b98adbd14da94dd4e6f2a5782863da58d8833ee29ef3ef038899aec8b6a3f11e45363c5263888a465a145fd05881622586f40ee78b084808307c3218537f70b66a98b3f16875cb2262bbacf8e15359202fb49fd1f8a060fba0b608cbd7384a7a1f143d01542bee6955579f4c0d18e995b3f69b0d1240c6859d0e3d054e87623836d6d0f3997c4bb331267317832ad8479d8d1461c8f1bcaba5ae0f3d2950cbb706a70467ecb422099f33ab378f9c504b968f3fba52851cced9a865a7ce99a0c3e8d4198663162b165780a0107551cacfe000e03d427c6a73763f035f2b131cb49885f5638ad27940223bab57b2861755444356e77af13ab2b700394dea5c41406da03807006c641666413d84bc4246e4c350d15b367da40ab1e4f0d1285188cc826c47a68a179b6e1cfb388b3d85945291b6b829f4272b476dec4e8ca7957de74a10b9cbc9a0d8215ab10ede8931664f45a539967ce933f5022cbadbdaa1e320acadcb0109d34268bfca9c673acfad1c84bb36989be690f89b8066266a23930034e5e2d036861f3de28cf04c80a1b8e351e184026eea735961c946d3aed5ae82e73f0ba213ea162b88dd241b7c7497494b44646b2d90e5244e34d3960b7584238a56204c72bf2f299a928ad6752cf93c778b8d4a054611d2cbbb66569458ed8f6586b5e002f552299c86151ea6de8a06a1d4eec0086095b76216628e1fe409756ec7da143321cc093e531747f8488aee32903d919f303350aff931f9d293d0ef804db714404aa475d518e6a0f54240311730eef3cec07117827c81371f39f3a86f695ffb1735fb2838202f1060b5f3fa629a0cdb8b1f2ff2b16f21b6d0d947683d713b63a680536bab671a99375432422a19568caad2563fa7331ef226547e43834692c9a515d214a32c8e91b8c083c44ffab03ed03c5172badd8b641c68e2e62182adb705bf1b2125d0031906a0d2d0ecdb8481e4418671471f42c852d889f38b3d8c24ab006cec27ef9db052c1cd741331d186720e5f1ce14143a6d63563ebef5a87e8c6f21c23a11d1b4cdb7e7aaa8f41949ff04c256c59823606c9484bbf372f44309fb648ab5a502f3fd9b11ae9e991a0344ad4968dec3a0a393476d862f08fa045030b399688dd642cd277f70d122c52492be37f39fd6a085796f42292ac7c88688949d36b423f0c45dfb74f8a6dd606f6fb3a6dc3ebe75e6587cc0f36b8f3714cc4d14af1497f5fdd19a3067cfb2df50fd3b56dd10e87b507bf3024e41c3cd6743ee1b8cfa4c38ed11764898176e8db01dc9d452c4af034b9bd90858fa2872373692fb200a4425c57be39d9d44ba4930805bf19eb17ae453579436e47847a2c648c818cf13ad9771683430f09efc19c268a9928335c90800c343121f7a7964b06c9401d8f7fae8541356fdb77a4c866f8c341a521d9c3df4cc1d7ad7fd9243121e1935837f0c3d303d8f6f89b2021ea44c5343ec814725c0057d43f4ea061587d3d903f03cd564a1ec103c55dcab409771a58186fb0d4b75e8d2ddb662b856a391d86c54d57612336c5b81d613887272407b6cb8d613210dbb216b7934b70a6d1b7a28b519cf97492533e56986f4358a66447df57590b341e89ee10b83b0e233d99ffc3fcabd84a6aa44653714191c07edb9302d78377e4c622f8bf48be770130e6cbd04d2b25a6c409586d4009cabc11c24c20106e657a185a0a1bbc067d8751b599a8c8830db674a50df566cc014db224b21243a3627970406c2653b0c42920e9893d5a8af7d89258358395eb54e9cfc223b27ab6bfd460473fde39aaed4dd1055e550bde84019a10656a592ebc09dcc453f77ad9ec625543d126bf91190afd4ff21bb27b216ab5ae7d75ae4ef250ab262fb8ccc5ca579a03914530528c9a76fb66bc41e56c0b8d868f0b58571f532c2512efc0906d9491135b5bed1ef0f11579b1a3267157160b687b4533ad8ad5ee1ff70beb867b4f99310d7d60e75c6233312afc8ee6f9ad796cc9ab53a1d40e763316833e56adbc8892940ba37799e3690741791a1c85074885aeac96ef06b1e7f0542eaa85bcbac57e3a7c568cb4980d5bd2f15f2105823fe360e1d42e302918c483113741a9af27b8be5670fea1321d6d29001307b66429f56f81ff0ac03afe1860b4f1c395c16ce2a4eaced98a233d953a7d7d30ab3b3583022640eb2f9882064bd99a46daa060af209b06e38ef3632530d0eec4050487788206fa1ab51abc97c517706e70895dcb028aec413fee8b9298776c160d063a3ad64e64f15f836deccdc6818a69745e05c9063a0c568fdeec344036ee0cb41d215f7ef8c225094b5bfea26a554c3b307f883722058e74c26047ac313ab05a619f733c4ebde53618f7e97a333089a2cea541943a805b60562b4c1949197e92a22d8aa52f44488f8b02e10c37ebc2043835f46b5cb01db934ce7e7222d8af5c3d9f97063a47792c8f4760d6bb87ea6444db2c06a979176c805e2cf4eaed781b9cb91bc01f468aacf1ae35fc3720cdc35ddbe32fed36e974c7e2ffd350ac3b1b56d564c9151cc310f7fb84078e8ad627c452c5f237f213914accb7eac2e5f28616a0f77dcf524cfca415b30498e582bf76dd67b13e932b4084547c3969b3503f4ad85904cbf6ccef3b5ab30733c9daba1bf38d3b7a97a6990cd699e1147ac5b273c9a8cf2716232e480e2e6fafd0c80b61af16b492eab4f57c8fa2ba9ddf9b07d7eb9c9e087fdd3c30975d1072aaefd5eb69ae962d3e80eecae0dd2d7511380912f26ad28798eebd4c568c2e65f498ffc395768f842aa8ad0fced5670113e0cd76001316302527eb52a5c6d1d59691a998081f3308aea31ccb0f66a6f5343d869dad1163aa6cbd306a8f87e4e27a00786478f8878371e503ed79b14b0e992cd0484a923630a5e6736fe0061327b3fd98c11c8736142fd836c2026421229c6bb8d3b16b53b648c5efc9634bc72303bff2de9c17da25a9347d3e773a04e9f74781117d83692166473469fcfc02230843cd00512f6c0b3f941e6eeb6aa242fdd2422ebaf310bc12f663a5152bf66049de3391fb195555deae16b91e4e7dcd3a8a4ef23182c53c54462f2e2238f3190437859883410fde92a178c34941eb0bbe212b5311e32265ed8116150bde31f7ec9922e97e6bff31f7579a05c8dc7d8104a1959978481615b226a9e20db3c05dcae121adda89fbbaf380461f2d062c306495ed935d99dfa34ea3ee140d1cbd68d7a4137ea8feaf254cda99989e8ec9da24873fde4e8555b24d0d3a430b6f53bb30796f7bebaa76378832a205d359e3ecfb4ee4ea9812f0ac720b245623e804c36cdf4beace478751afefc6344a877a298c8ca0e80f5bc0626005215e3f3c18b9146b15527435a9f583f0dd3602ae5d02c93a74aac694ae354105153444d5d0127c0c0f90124d98de154e46d1406903507b775993fcb110254f9c4614563a18b951406fcf338e00689bbf1470bf847b14e9cba0a2b2ceda54223af9185c41de2cd88542dcbe2e5e31449a8260cfb0303834dc515b35045a653ec700c89cc7861ad0339912a7372ac9dadb3a42466e6f90b8af6acbab8a86f46417b6db454f255555220461611a412d3ffbb877d717edd73415a6c3f929f1656bb06bc034a48838389e15a8007f449e1c4d89843be0c92af2d2f80ec8d878578d78501002641a3a3a69e34916b62b58d44c059306a54079fac0f32563256e94ff1feed84e642cb1cc147c18dd29a2825c940f2abdc9674d968602caf62d808a7bd0f666160f3e0b7513d3cc16f668d0b17d1f619ec48bdcc73b7e3932b2072d50ccb305c5ee1f29009462f23560bea58433366d05111e6039880ef872af63d98ef88b4f568a8ffb25f2c0b0d0ab9618f926307a10d66cae0fc6779cd6d2cb8b81ab671b36f4a50609305330f209205bd25c7ca8f7d4abb6df51350e9b3094d0a4d7ef8d0ed5c39740b2023cc46a1bd21d23fd5b92b1d9f8bcec3522eb22ed41e5cf7eb7d13e1da424745369a576e8b7fe82863c96ada7421fcb59afaac1f845744e4e8bdf5bc12276ec76cf86159f081f6c9f2278b3efc3aa77ead96a3661a627cff12a6e3f264942907ef3f497d9b9b6fe85ee2790b898ac15f98b1661824862ee67cb928f98a936ba612c3c81e5f829ac10756abfac3ae7dba584a181adddc866d1b5346888201b820dafdd0af621f4a6ac8480d470681076bba50f1e327c8776432ca3e5d6c42179d27abd5073e6aa7e525a5e4492ff6ba709c5a5e76023e5f94762ae10bb2b8fce0f3a801ebab43dd8e122410c9562b838d788fffa0e77f9c83f0928132a503680148753f05f047baa3669dbd7d30c5c1e08b2b2d376ec7df7fbeb9da764736f511c100bb85e2234ec039aea81c3f7d0d3d94508cfbbd63547f21a407161b1459cdb0d42c3de212c886d3222148c709887f3e99dd9f7064e72ddf621bebfa9161064e90b9ebdec699b5684e45a641d08e453b9baa6d0a69b79c1668d30a70f2a4ab584bfe6109d290eaf5735dd1a8f265861954efad4e47eff783352a7711460683bcc8c8c7d8f9346884919824e4dc6b57d68c58d6e1ee182f1dd8626b4799817b6dd18425c72fa04c60e1a7730962e449de074e5e78888540293378187590aa77479b948667b2c68168b258096f947c0d0ee0278ca15afc1f2a059928a7ff34d171945864e7a6f5e7317e253be3c28ba7fde08e3981858060242082e1caf91dbfc7d022d5de39ffa7101424fc48f20d8e962c31623ec54ec54f02502f89ecc527fe6274832602b9b403ffe24b75999647564763c2a644859407ad0269a835b2814e804a8d76245259385e100afd8321e272bf134bfabb1da606df98e1c695f8f72ae521925c9a5fcaf4039c8b3f63dcb82ae3352aebf7ac52bbedcefe9b8c21be3a439a113110199989468b86d366f2f90434317a245f9b4615ca5878c73a8e190f7a56c6e7989a34c1c20ff4f8fbaa210878c446ce684a703ae926a03f39c0fd4712aa71aa2cb4414833460d9e40dc9f7725011e071d49c5c4dd5df81b0c81e84c27a6b05c4fc5488f60bd89e80d8e85c0c6042bc8e4e45aeb45093aacecb50ca2c406557ea0c6470c2948bd857cd29b1c0a97d6f7a631c9c331921383f461426fb48d101f10a78bed6ab88859f6007744d1c163d99306b06ba9a2434d461589671a9534d5715160c20857e235addbc113247324f314e74f6eb52954815f1356cbdb9426dcd66a3f04642c325110d814bd6302f462971d7c883b665fe01e99e24ae5cdf9e6fdf253652ecbbd19b2c26a4f8bb19c60c6b108ae663f89a1bbbef98f6504d47c1cf4554d543a813a1ecdb86ff686c2b61f08abca68eed858a913cfefa9835395a23d5da62a1679dfd1c198af4415aabed638f82c62bbb8a0bed579a34bfd9d7e320269bf4cced496baab420da2ac2312793126911dc196d0c99b700ee2acc6827a84d010ef8eb2656542727ffd4ceee548b71200520998cd436c3c5da8bac3cb5168750982930198ad7ccf71737ac1735e3b8e81f44985deccaade5d7f09acab927abf06e132731cac1db18364a5a2b687bbaac518824de431e61f26c56056631b8521144fc9d96a3e70f9433549a0c1f1224292456c0ca29e4032f738876558302d42bde9c4c3b9fd296be36e943989404d80414068402dfc24161d12d8a0d567b5ff4d1dafe1265d7afbf6d439bbdf9ad458350febf08a5715bab33895cd12de4311a044f5e89682d052b250354c1e286f14479cd36857a5613a193e67006eb2a3e42a6c2855d11c84bf8c3a7637655440d7a20852570800dea26e66e8ca4f684089e3ae029f195b06a2afbdc46599288929239dfb92deeb5b673d63869f77c8ba9e4a9341999c868cc6a2a7b12768bc7fc48605e54e5d98ddbeac70bdb225d1d513268f39f06103b3ca2f6443b2c25a75c2b628761ae3a0aa03dbe241b45c3d519888c14b4b52ae9fad0021cb2e314f7c4ee38a50fc12dade3781ec900128325daf51396e3941de422dc2d1e5134865d4d11f3ffeb3b525453c083207d178e437fc2800b0c24b1cc7497765acae82509f4538842ec56390c07a454715a1f1c5068b2b660926aaf94830bd3dc6a67cdedd61ae8db10013e518fdb99fd1a25ba230b05ff2815728558deeb726d9fce9916066e690bfe48eb75aeb1b635037324924b27bd2a0803f5164f707bf631a5b0025b4935e0b981b6d7c48137687a490b5528e97d0af8952abdec34bada76649eca887fd4e0a4b593b881901d4c8fddcf51338738b91db0c219c643f21de0924a30e2cb18ed67483e42bb41c731728312c589415e6b1274a0c06eaaf18d8ae01235a02782e019bd17c9989e24196fe3bf5a9310f204d0dcd5fa930d44fb45a2b0ccee4450d536b144ac4796ff16aaeb2a247db6fea3e6abad441b363cf4521ed852368d4fa1a2c638d81441211251c7fd15100f67759edffba7ef115d535839eb5a355956d159ce258a3616c2da8ba42ec0fabb4ee408cad172a2190ca54402a0f740c47e8a7e4172f1446012bdfdd9c3f16188673a48f2a09e42c98967c26ff2f0db44a8cd5240c14809dd0eb6c42a4aae6310e1dc596bae6cdfaa16718a3b8ac5e7a19da13cda9eee6d480a356da60902dcfb744aca3dd49ba8805122ddd154af22e3829fc4ec934aeeb5c2e63c5b35c6be9bca01bd1c19fff51d2e575353af5fa5f7ec6fcaf11db9db2aca89b4d717bd8291a86400fe4deeb05ca754fb8cddd815413f1f0bebe2097aac69bd7cae30aa9242953594d789722d5e558585b6c930388446cbb89b711ebf879155a8b16c59a3c3c1c6d3e810097cc83dafbaff490839f21b7e782d7991c9e5f1eb03a4d881c65ea60137bf29cb11f4e050a6b1d0089b247cac05b173b1908b290076c10856db99c043178480ac4c32617124166bc03a1b73f46277c31bf1cea0a36734295e5fd43137a165812eb29925c945b26e931685b8f79b92c23a47356ea607ff7edda0b82d969183601787934ac2c1f4a13076e99bf6326976be84798ea3ab88e3060f99e38b7617a185e2b44d2a0499590a816eaafb34b511e354b668abe3c4d216df8997d406cdf81a2c2962a19de1b7bfb0ff0c6dc44f517856d6bc76631e79618ebc4d447b065d40d6391d5f04eeab18d3b4bbda227731ce71eadf1615c98eb610ad96113cadd0cad085ab33b89f27a52bbde9f76b02a53b5df55fdd92adbcd7e11adfaff0c56bc5c7aa0fb55034713f1f0a79791010f61b5a887cb37483bb4b14accffe08136f90f7647fd709a7c3a4acc75183438e1a99401907cb9a561ddc8d8e6c29cc22a64ad8ddac801926cc661605b61b1310fdf1c76f0dc05a90a016dd7ea42d16c043fb81d9f596349c788e5a637212e45c916020587b927cb364cceba73c652f0284527b0ba8658e030dec41d0adae82b11c75514c81cf2258d7d336deda7d73c21d65abad1874a9fb4226251977de53296f660dab44aa3a33b1fd5664bee34c78a5858711e921d5c7e685b15b1489801245a16d4d8629909931124b84b83e199f69a22d02d6d58d1f17d8df417b5d8248c21010b837b4fc7318bcfe9ba390eb4237491a010d6fcefbbb9b627fc5231039d0904fe8463ee735a06d4d9eb26ba13a6efd513c45e37fb57bc9da4d29253279467e6c67135b035f64572605d0eda9d08b35ba923efce7d3beba08f5495ba664c380ae55c784e982a6f47c5a913e8c30c8abb9c2f89532f7fa525fa0905ee375ebcfc588afc5fbe3c237fa9d64bbc35e76cb7f5bb68681d171206818374974f453ecf0d5f994986a29b72cb7a53e68b7eb5a63e0d001684a0b126ffaca13e3b80e63fb4a40f221e646b84059bca4d6bed116f65884a3cc3158ba2f3122c4dd82a4e8e4c9aa45a3753fea01e0e54f8cb93cd04ba78f6457b817bba6b8342c6bfde24f3859e22bbf0492145e2bf094551fe590a03acf36942ff4f425554749ab802ec96a7a7394aec2c15917abee56196c1a6edacc58252a8826901a0ceef8d72b13de6664a1c48d9cc701030d731da131d88f8aa5853ce9f063370f837313f8d84a16b25ff04b965d621bb41abec4e87f74ec8e27677acb1ae9f4778f1b66a532545c1a99cf3ef9a690b58a2f6289f528f34b821a0e565a5a7c1752d2c0173b612bb54bbab05ba733b4f886fdcc7881562a847f09a27357a4c09da3000d162a48f4af15b2b323b545aed5df16cc0cfbd5f69b5e01c8d2506479771dcca203e7702ae6c2dd9d307621438266da5fc3a2c10f535171d528eae93ba42a114247ccc59ad173cd12fef14bbf6deb237c07bde39eb45bed54c44b36c3c66c8857c212088d5d0384e6c18fb86e716c264a8bdfea541ddb04039a24098eb469c738b48cccb723059bb29e873c9730585fdd3df68be3c14dfd9f5db18c52001787ac9742149d31985f435ea558507e4e931d4712f5b46a0ac78fdc93767b996cd4996bb4690af21873eac4284b4fbb463273cf942fe23d15599bf289a044adc35929419208af8637e3af752e1c9b3d1a5bfb948df2bf6b992ade8e932a8cb38913825d549d749fbe5a28b49e4eeed27517868150d153da59f6cdf34288c843749fd64bb8c9c9b61b0c03a1fb0e60f3f44c553f876111c03058adb974c617d8034d506103dd50f644f72f2805aeef0dc6f68af61fa892ee85828bb52c9b37bcbbaa6a457435429148ca40cf4e428f985486e1642efe8d68c210ce20e786ffad0518724d978b00999adfc162beb5bd060c622d9e6fdfb0218aa24b309f20f9739d1dc54fc3bb5e55bf3216f567ca5133422d81c4e967af6bd670a4feba5e8a538c2911654cf49426d0b07a92ebf13c0b0a76978b717cde0d13a75fdabf80f5f5abb61682d83260e24ea4eb63647136c484af383bf0d9adb67501f580aeee1bbd4b8f761f4f9c7e33b7f7bba22a683746e8960db1dd8df2380590d840728b1c58920556112fbe52141d72de69e49418dbe7be3f341cc962448eededff2a29c1f6f5ef690fd97ea94ae6c063fec4f8dc027506cc26df9da4af3c9b65721d85f8784057e76564bd2acbff03fd0b11c9504a71047041e6592cdc0038565d210c701770c900a9ffeccabd51d59c2db9581c75825342f5e9ac8a41e5d5dcfe9e0eaf02e2b427a95050b2ec7be4c16b9f14b6a22abfd377de2f7698bc3bec523c5c1e10427ca1f0914863be76cf932ecb665666e1a5df8846c84682d8a61aca942e1cafeda7ea330e162e8869a64569b6f4f1c0ad6893629810917385122673b3d22fa188fab59dd9622b489ed7ca7dd89b09132f4f03955ee9a1547ecdfa76b46fc05888f43bd5ca05226033355cb361b8ce936e37e4ac660770eddfe47795cd6ca771f96d9694e928a8e9563b3b1a32b080322095ae3fe9bc59b4b48ba5f0bba23aa52fa20a2e901cadf961eab2b5566b181558fce9415682396d4f4817413584763cbfa453621d2e43d4facad254416a2ed05862ee665a9184cc9a622cd37a18fc56bf6367e4db55f91bb65ce3b232946125996392e266ce8cd05036482b7ae73f35eef2abd7bc7c200b0f3633934908e4c311a898c24c9b6f0050816cbc6d3236e3e0ec5a25247c9e52766c7af7a39d170ad03e40752e534cfb3e2834b36a5e44b10f3d2889fdf5e52d22341a8161fb4bb2cca9dbce0e3a0025836042396e500aaf37c286710b4ca800447438d68b4061dc4484777a86b0af317318af4b53c563fa51ccc2e96a5202cbe875b50346c971220b297cc3fe30223226c05d1d2e008bc543452734feb5dc6d90416374bc5a8118c40f5a4b85948625b3713f5cc40d331d261e6a80f1b13ca2a8c626cf4ad76267c38872f16da5d45bda3ec20e1cb50fb462da0df0278004820880deb5224e8c5229785be4b5c37c4d9da9edbcbb1bcc7fbf483a6da76b6c58c21f3956cf1af677eca86d6b4a652035286000fc1f986acdc0ea61ac29737e5c03a455a98b8a6c0e81ee094986e5b9bb5228ee700148c8e985951b11b67edd9ee2ddeb93a968b398973a802f34db461ff91ae5e270fa9b1a95c3af30af79d21fbccf72263efa9f66a4f1c8736de8dfba69e1986b64097bfb3da141d91f6bc123c0d8b6ac0e4745bcc5e4ff2c9f3199ce02a537ef01b63cbc8ec150f5734f9a6cfeca13769fb66702bdf06d73838060bd905b2dd3a3e567187412555818dd79902901d08559b4220cd5b552c6690376d85862b8421a9f5a93d61300d49de10f06e5aedfceec5aaf34a6053b2964c0a0e0139b9cd488a1f73b7ffc7b0405510f8de06926afe2e734368f536256502c9b07b3232c0b3f23ad4427936202730709bce6a186512ab39d9473ca17d52011f3829390296e18e95505f968730c7cbb7df05fe9e937d6f247f45b8a3df253d88a9c6e5d1a09ae8ba1674b79b291075ac509c03452010f941fb266f7e62fd527c79c9ecfdc661da1c4473e058a4be2a904c244507c670748bc8a4b64234193b86e54815d9bdb1c7591c298fa10a875dedfb1e026c1295831878773a2e8b894640aa36117e6bed1727aef225f469160a5880425716189480c72c2a95d6623a81268337716b4010ced4af5ede11e48a31d8968f14505561097d0bb11bda2065fb90aa8cf36c6e024ac46410b3fcd54937d4741ce878a337257e7ceeb3567cf11f8cd082256361532f6696cd7081be18d6844c78dd0bf9899c740afec3209dc09ec9e4f0fa9b0e0d46735254a5a2092aa2b1df65b31e2c9040b0645f8a0beb93c0462659f409f1b3106c80bc8e84179467ef838c7562081e2c9a5a887ee755c13fe2a4e748ee02f3dbc7f2c97125722eb4d1912e3994930a0bfaad985d03a329812e97fb5a9594c71a1b451f61207cacdc78537ef75a8e956ceb45d60de2d98edfa314b7485a3950c92a998b43e7b521f7af4c67c8150f4c4c88074456deee0d55ee9fe3d7aff1b4280f2ac344583d15cb29f17dfb39c08986c22f289835e2d397cd1b0ea4c74d543e391045c56beb9489cefb1a0659433e8d6272f11a5a62debba883ed91285ac45f1893fd9d776d7b8fdc6832766d5f9161e264b4f3294eaee74d3adb22a84342d0feb6cd799acff0f024e20fc151b602ca4f7f61c7457ca002513ffe696d711d8f29d6f9f5b0fd357ecaf2ee9dc4f7d139acc2e9d50c611b292361a3a59f560319adc3880f149bc0bb978675a378c2eba4ddd9b8da6b06ccd36bdaa15a9df6912fa02eb5e26ab097183ef5832b5c4881d614f7a565cb21ef904d7782ae2ce514d7ecf3d941fc8cbc2c32ad073e0bf5e8d3f6890b68dd3fa574862ff28ba859819517b76c775540027ac151ab7e06572c05e4a252562c3956a121d8ff9ec927786144e3ff89e17f36c13e529dec6a8caaa327eb1ad8f5f85d362185e35088964924641e9f7215d5fc1e48205656cc5004a96e460a0c249c671a885ffd403a5bde07de0f3a7bf33827848a6c4041d82d908f31f0e5138b8a43044469b40d8fa7a934229791795c2bd6d6c554ba1abe516dbeced67f8c36af6f28dcaf0fb721d1722e2ca545df672211922fdd59484bf1a32f5a5892b1fb4a1a04c920aa585d169e8fe172557cf30e085c33bf1e7cd79a88b1b4805ac5f092c66fada64c7c6d295f6ac12c8e23a49144dca5d11b0bcc10e11d4ef900a64ffe03c4118e1ebe73ac958618bb09dde13e8403388428613cbd0044b6cbd843a68277ed3f660f36d27bdda2e200fa55c4edc742325d7f1a58605e8fffa6021a8d008ea6752ab1e48ce6290a6e411b46e61daa32370841818308ca3e2bd6db030b0baa361134f633011fa5cc38070aa9d3447612cb6c2e29d9990aad2954a06961206deb7b5820eccb49ab810dee5f199243b8603bf878729f2de6e9e368d867e981649d692906e7a63ce03df67d5b93cdffaf75bd14e55674dc187b608d85a8dde6b237dbac5b564aef5713771acaa68ebbf5f1940fede5089e52d26bf0582358a675803601001f0a743f6ca6e908329dcc75ec000306d662db931cd948b031edd54db90117282f325a5434e0456a65b0b1fe01dace1009ab7421d4eea611a66b179fa61e5f2d3b66933a0f410aeb65fa3251b7f259e1e8603d36b6262a0aa92305e3d050d6e6393acdaf78a04d20c60fa13153501a7e139748074df20c944351e4612dae00c88b06051b9242a2edf6c9b377379c0a4f02d728222ea4b041587a97297aa26d845ca2679ea0c8e806d2033810047605829f50118a29fcf4816e46c7f53018c4f044dd5542d8a214a7a1971e05fab5bcd481e0b749d07d0cae60be4d22b3e4d315a6d33aec5859996fb4a014b1756e7e605925f24b602fc8718c9bf2fe22a9157da4476e388d9870c81ce843099bb9d4ba2357e1ebc00246a017f7f7e3141ef24e77b57db417ed2812d5ad0c81a7366c7cd5304f86978d3c79276442b492b740e3d7a5eed55a9a7028e5f8c801a6c36af4ee843dcf9956e54fe11baf1d1548b06d18edc22fabe762a329cc9e51faabf760f5585aa7115fd6d55a4263ad9458fba484232b4d9f0a513d222209021e30e73b38876814e88c03897c2b638e7927ac70b0077b29179483b95b8d463943dfad06d5ce899c704fb7cab61985aa2a2906cbfd0232372325195daf8c657c49f33493be2a4eed12cd916291f0ff2c4c47faae91b9d3edbde5357d5070f485268187a2618498b23a6c5f23214bca84db1d9f610427820b8810c9ab4004519be77d42e8c771aa51026b75e01c9f1aaa723c198f1f023088ac23f64506ce56dd51a6400c955ab475ab17c0d7eaba4aec082ce07d0c7aab6796e0dd892438520abfec56c0b97d0f3cf583c1398dd1af2b26b087fd94a9a9ffd31c0562aeacdc88f77a5a244b9a18a9b0097d10756c4935ea17ec2c6f5d4bd0fe96d84332bde6291a36db012483dde603ebedc47bbe6c0a226d4e3da35dd2484415e4f4da6d7ebbe05203ce36c8898d799fd7ae290f0db36d41490998ca6d77a675a7d93d22fb583dc6d3cd3123efda5b2b40975bad38f054337c71f73a2840a20ea5676ae5124e473843a0437d465e8f7f1a53d4549be80ea424bb782f7aaad98260a4c0a0a27f88b48a58abbc2e44dd9e8e08f716195fa6e1c12e4fda69595fa269657bb04903a2bf57d50ac5b56f6623d90cc8aacf3fd47e89415e025970dfb80fd9403693875fff212ac54b0ac4fe431474baae8e99f6a58eb8900dd3cc1e7a68149204e1d03fb8651c540c72c64f6f02de328692ddc6a2279b0b58519a7eebb7d0506d5d519f02d276a806f5c92b5949da37bec068a2d449b88b78c6e8454052543540afaf51f90eda25e5ba175a7b68de58b5fe1e2feafd67131a725ecce3114364d7e2185e85b73be09cfd7731e3f1f1747837f77dc7f32e871ab84bba7eb4caffbb5cbb1c9ffef9e3986f5d61f09a7d1329c31181e5c743500216b787c1bbaf2ee5cd090b1646ff5be6bc458d0e3ba671df6fe3ec168795e27b5c8c9624b907269184b6a7e19510f2eab7cbe8e872ca44e864b4e679c43784557c802bfe765af7379c55f38c2c0f1b2479ebf48464a1e8d1d983a9950a3acdbe837315a6099c3ab02afccccd3c70dc2ce07909acc6a3dfa6cbcece590237d87013d442b1e46797c41a24f2639ca3f72c19e6a4c6069e7644b5bf2128f6520a87e76d2a950cac1022f24ab1f9f7d1fb29ae7027281ffa42cfdb20c90e2f5e0bc37cf0b7dbfc5677f90b66ce31cb8fc6aed47b2fd9a2f30498b4ea71a055dd3c85dd33f8ac87a590492221852e737f71ab74f089fae190c41bc71133af805dab41925048f96f6d9bcf6616396a44e3de23508c9661916748de6dce7ba3d06a04319d4291691d7295508ec0a0b9a7c623f62652f0d323ea19285a6a397094b6c7248598565149eb8e4d997d2caeaac41de1e0aee209c2d1be644f648023770b80a04e572d2780f18a306e9567b70cd2337484502ebdcd7c08a3a4004b48870a675990a64822163b153e85647befe790c504e9895d1f3538db5abb147b7f85ac496c02d2c82180389946c1504a523fac20a9fee60ec9f5afc0de5480103c37e5be51bdb2dac8fdc9938e29f01d5225431f6f8dd69638279f7ea4d931f503483aac138ac289451c325ee20bef22bb0eceff05e3b4d1afcb7d0806c0cc3709e60700d29df49ce4b2d32f7568158a5a5b60b00b3767005230a16c0ea78d64c3da0923476b18ca99718486595291480e5259977b2ab63fd5a093339a1c5f410305fad4b3db5cfa14637de7545009df16ef416af4c301b3f6e04b732094933ddeb2576d8a094d94a44cc836085277d3ae203ae3cc096f3d94f173900a3f0638a820961de896727664c294256f3ec3d94a0bd08ce93d8dfc4c09442c8cab7d92948a80848f14f869afa23511da74a7d3a32c4a206eec0710e0a5ba5a66be2f76ca25bdfcdb881d9cb999695e1e8a2789c561e1fced26434d826388863c5993aea32972e87e134bf074e2cbc09a47196e223cefcae702d7cc7c03ed7c08649cdb5bec7d3df86ef4556a26b3323740ce64b0ba5a2c407ebc73b21116e8073a8674d8a323baba9d9ec621e0c25a53510a6264cd38e002efcd66b20f5596ce069208835757dc73c37e82b584e290e60fbfdb3867f9e3931cb0a2a09c91ce4db50e2f62989e3cb20ada0c16dbd1075501d3e9ab67989019052fb2ee34f95f6710259d05d16ab4e2ef34fb665b57ea202c8347250bc2d161fdb923f2d616334ceacbd573218e1d50fd2339c25d231813e9f126ec4f67140c1d67f072bae8ef227a74e40e8e044ada345521e89ae50ef52905f8d5d8ffa7ce46d77581df1b2b669adcbac9d905350cefe5c9bca004db794c956d391903209b2e7e07d1cb5c0b628e2087f1df77498c269bcd5a0974b8065a15738de848f7a79023395302a57842eb978cdb0d82bcd6430e3fea8aa7d216376ef4ccade37ccee147fe794fee98a25f85020e837968d9277f4a4cae001db8c09399ccc27b06deebf9f16377e899dc4b33e2b1f9dbf8189c2191986e4c0d2068ea68b3305b8add208e0eafb9d29dffda26e358e310e1140ee3b9c62d12def6cb89c0a2a3d32cc799cbc1257c61aa1196c7c03c999f3e26ebe61b209a08198800db913ef9e2bc0f8005240bb53fed73d46ff8a5e67a6c3d28fe22b6de72c22b59cb73b75f3836ebf7e2618cea63128b375e2cc0b724fc1d4af9246e95a7f4ccf4da25bbc80518191fb5ca6be699de2b2617ca77da9d8e273f2b701f1c2311d73a23073f0d93c2afd5cf5e9c840fe7d9049d63a5ac45f943b72b90ac954ab3372cf6f39217f143e2088cf09d5d83124b435bb48d8cfb620f38587fd11882086f295fe72013c221a51213d5cb8dae70cf9fc5376aaac8d476d78f82a5d909c7d111c53df8ea9c1011d0ab577467accba834ba04d79b47f4ec5c195841e7146150b9a3098c0b7b4a516adbfc50e7b042dcf93134060bf8d98a1dd246201173bbc800c3be0478750b2dd842d3d8ff4b3ca1d652aa451b2dcc30686d1605bb3cc77bd1c06f21697bcb03f8665af04ad84597078ed72c42a726120b09cbfa64affc052479d13d245a6795b1418d8a0ed52556b01f17caeedd2e2d9b7be0281544b9ecee4aa2305ca1075aa8eb1bb2ba6e87b5045ce8590a1ac4009df43186f0ac443f6ac6bedea09c18c1f63e2da8aea4a014eeb3b3fd6f548a4d8c64f9153efaea7229574a2615ae34ea0d79841e2fd9f07414c625ecb1ddcd42d4158112c6865dc6fd2b807272d87fa560ef54fadd34942475c6d010fb2f5f0607517241c03e692454a5176651a0c952c089b6d6f2621abed764c02231dbe6165e0c055c39167c5505f874a723d53f2c945ec06a898fa04167ff3c6eec9236405d4184b4bda012a753fcdb188b746775c86f39735342f03123b3b4ac31a9e18fb181df2083e0e73df1bf213f0682e9e28627a20497f4cd148d5aace3f82ecbf3f305d079ef0cb88f15e89533d7508e0b9e6413a907525dbec29bbea36a20f639344337c116bcfa3d42b0796b840714a5856b822a74f06c9c3fed39500c8082ff0039177bb4d4e7d8a75960da5210d82fb33e9539cd09c495569d5bd8b507430e2f6e074649a2620f0e010c7329f7a66605f20139eef0150caece07db1ae3ff20bfbb964ab4d42bea2ce0de404e0d78997b3dd5239f18119402f8df7fc8991bed64cab1328eea0e375aeb9831419c28bc835a7ea64727a58168889664b78c99cf267ed3487a6921a481ff4dc3f07ef5b0ab8c1d8febbadbbe5908e56e84af31b3ccb3271d13de6c7f050774d1a0385efa4dc4966cf63e79049dcbb7ad589f0d4b64b370509e836bcb3ae4c585ac8f61478ea97806c5193de6f4040ba085824f0ba2dc7d2f207712ad1861a32305ed1fca221dcccc2cd974dfba8d38dc0c29353ae1b5342bc4b42dda0c04d1c180fb3dfe5728dad470ad1f902195a953393e85655b6442d111fd361a6dc07db353613c2ec84a684ec840a9b7ce9fbe6c4c58551a5bd5c334f67b23e300fa578e5b9d9223b64396a04808be47fc15190b508ac8b54eccacb256ea3e492b6348c830956d23a5ee0554144927ba74f6f22f11986e61a103a829da4e7c4519d14dea09d7ca4c643158234db618cb10c5dec49b20bb535440ce51a118127165242d6172f32895e71ffa009092b98691a172b1349e8fae31151c59d9b97842bbb73428db189ec61d96de1f1bf200f9c5a02f24e03c088965fe46ce3637d15ef4d4edea56c1ddf35014bcafd6f5639051670960da04834c85771b21fd0bec7569bbb98be165fa7c48141b284f1ebef4561aa1efd46ae1ce95b9a8cd2dba912e8ba4c9077867ad916aa03dd23426226d4de72418eb7d2e6c61942c76e4fd45252fe43c869584f598419975cec81d6a1d3a1586474cf17ff5afda6324e59612ec4891162daa9f8062280d99bf688b2fe0062c0c83ffefc7041ebda35a37d072c04dda9e0829347fc6c37d9a7a79b55d4321a426fa29669dd923d20727350b065621313545b81b895b0c33c79668cc8d77ec00e2ae48f85bbdffef5927b33c6f15c0bb8d8f835810d156cd8c3a81537e0a8a8046e3ad56e681b80d20bbc6129647072518713dc2ebfba61ed9ad88075b374b088a09296b0357735761b9b77a25b706335dafd6e9f418afad82010c47d266358436ed7a50bf5c135e4bbc77249136be35b66899e7796c84394a14c29e6a3a4e31db922d8ad68589a931893123f3dd02d85a1b1eb5967384913d17736b5938c9844295d30e7d126a45daf7fe40e93f686267f7d123863eb31349ea524af20cf814dfa2ccd46da459ea4db0ec8a4cd7d187988f276d486848ae9016cdf419e989500092de9b78bd1cfcce0c4ee61c72fd3f8085c55836716bd8aa286fff1eac1ed519cbec9cae375f78e57bf6fe5e2c9e157598bdcd0ac0c5864cf6a36706032e3d02953665afd56d3ad55121963deb0e401830d5892bfc0419c545d982928043987764aa73feed73ab22060401b2bcbb4bd4bcdd41462efd48f389c43659cf0ecff1635fa164c073db57431293f8d790361118d524540a2b5f56e09c28fb12ff8532a2a56e4f5a4f4cfa677cd880b372abcb5b110efd0464a1ca3ae153731f2613cd80c0875a6245b61f35c77588d71e0d924bd961027e87582040249a00cf3482040262899bedc7e672bfa293676f64f5ff43e62877f646717733b8dd223d532910d5cd84ec1a338e6f1e64195dc83edb5bfea213f4bba0e6905de7bbffc743d654df1c9f306415dc4eb97782a64e49067e1ad22165cac46daf14aff3a4a01612f527030b8c06b0f74e203e12bfc6f73f53e8ec5f6d53b0fb8806c1d70e1506e7949c0dd60a188e1ee2b681f4a536b108485bd5c39b27ef9d6ea0f4426ee63c38a489c5adbec274878e55e33489108e31dedde1ad90a4134b77734f363b42746b8be05202416f17387335fd5c25c4f60a72c229c1d4d6fe9ffac33504d49c302369d8bd83afe7a6b2735136f076125e09c5d2a42b91028fa0688b90a9b27c7d72853da50c149a0f72f165b8274c30a32de8635d0bc8b82e2c125518599d2c670f8cff21c8720a5e68efe3a13d6a12f62b97fe000ff6fbd2daa5ee79df426ebee379efbf718a5e2c4f9481c0f42d9cf6d28284c75c50388691eb8c4831cdf1cdf2eb09f98aa3a8b9db8492959156b1bce5a4e848082a0c011ce69f4f9462a10a01df69a5988dac8d1f6273c8f86dfe8c74a1448e3dfde015c5e7c05c8de487b18bb0b83035fd4c38b7f85c966e4ed97dc090673c657b4e84f89bef4bc703d2dd1b5cff4a58beb5ee577547d6da46ea087490829c2a0e89775dd2f5a220beb9603b5ccbe5732c614aa185d624558f657c518141061a9f409a9181dd477ed19b9ecc2244c489929345de6b5c050379b07e8bc669e4b11b881ee3d2dce726a5998a2a1142d96ea05a76e054b3de1a6a87abf3b1523d33e9092e1d7267f3ed6af50b91d3a4a4eac72960cafcccf2a498d468fb2c8eff881094d554fde991626cc05f28d0e421a0584cd6c72d8204450211ace40b5534deb989248b7d89e0b01f66aa7f9ddb84c9a656d9842cccc6e2a5b16200af395502b81c0e93f262ed6b86d366c569b2dac264ae464da92389e59137d8be8d4918ed32e8faa69aaf8268bed54c683e007c3acbdf2769a456379e94885c718908e01d5aa33fa1cb06750cd039e71fe220cf6a51b3f71349a0b5601ac79aaab065033f1cf01abcb5ae87ef6f40cdc5082708b43b4dcf02a54b585d01968af9c06cf5ebfd6bceb1d233e68de75e14e9d30de58758f96896a5bd24b18d218ee103827b0af05ac98b8bdcd2098a02cd594e8f1e67ded4fde1654d87d509d62118f3a1c5e0bf6172de01c7d89f3c26593d99d1e847226332c6885fe60953953440371ecdc132c44e4977b2f670b03b41fc310b931cbbe51c7a4424897940d50327905c504fb159efa278bdf0a4c88391ab182281c7c8b2b2b3113f7ee19fd37b85758686591c4190d123e7dd3b46de632220d4cee01ca4f16d973c20e2ddd497899cb21958ffb75019ac32f38e362216579839385816376b6c8cb37fd64c915225392c902f2196a0112f3a277cc480aa2bd22f305624dfbdf22744749888080f5c0f1103fcf3382354a9de32665eafa95f72fa4ce1c938368c310fd9946b24be5fc1b1048e1c9f2ec1f036292f649e4094c8046412bc2b5e97cbba1e8355011b52297e33b82a1a4e2888a27a19a43923da3f1c288017cf8ffc53b1256a860f092e66a7a76c31ea1157c8108c16ded0b7cbd9078637a5898b9bfe1806b55e962d7f36f5730776ecbd405ea9230c504918a760371428e431f4ce72c2333ce151294f73d3ef1e0e813dba2a283307860a73f5c5c1eacba9368dd2ef6822b57e64f954b060d8f4776eb5f0b64350370607c25564bc045c0c53a12aecd4f7eb4e9e8b26aefc3f71dca52b7e5f9a6cf5902159b8bdaa22dc84772880131a3bb23fd74a306073c31d51671d2f5a5efdb268cac169c23a903d38a30049f6493aebd878d800b72b4bfac015a45a9e78ce83e15e0095704bed52091ab77cb9b9b04a596c67aa91c0cc4190044dab036de58b164c3b44f94608cbe789282ea80148bdc6c51b13c777ace88e27812fa9f257eb2911c1f3ed175fa6cc89acd112ee177019ff24eed27f5031feb27596f3929510d7531bb9671f23c5c2366a64f70a3fb9e1b0756bf08ca932ada698185532a564cee121e8f0d9db5e60b77fb688ec5b11cf028a26ae32353438fc34005c9c0eba16703fe491e4774a6acb3da1116e724c57c00ecb603b5ba4e0a3c02bf2b5de910a225499c5c89cbe295140bc493d9eda8eb9dcc40c0c2c12d264dfd4919669c379e6f680f0d9f62f2d667994e1da93edc2ccd48c56205cb6a45bed25fb1aedbc27fc4bd02ce5775a497637959cf3d2b6adf4e47ab63ea831589fe52e861a2d521bbcf0ccd6eb309477f72a190fc35e7f610d2d6635da708b182b7e9b18feb88fdbab3b94e3912b8a1ec30f12a9755d6d3ff290b3aa08a194818f08267a7c79e7f880338593c72ca6c7d67adc9d61002f4446b635bf820b0fb98fe99fe81d71784d8a7f9ec03e18cc0d2aae4f3494e99aa864fa7de2af9855743561b6d61fa119a7a919a340079e3ee18212cd6c67159147a2a08fe19db95dc8e4e021b8a523b67c1a6015f33b23e93905eff0799e234da84f9cfb18456465f6739febb8d3599ac9334030bf583b03eedbb621fafd6db132f138cd55cf7c555ae952de36de4391f7a0bda3aa535f5c30aadd1c7907f658446e1138bafcf5c9a816250450c215cadaaa10ade1c712979a90a6647606d1d0bd744c43f655cf5d03d7b7684bd8c43da32874e4fe881800ac294090758bd7c33a6423183f8b55dfff68647602aa3f8d55bc683ec1c24a9e557e72f3e57fb7229f314728c1ef6bdeeaddc35b97babda47d1ac64a90f9fd3ae9dba95e8fecc2bbc4353275da2e27460ff1060aa77ccdb5e3964f261b941e7b52e67604e3c134f187867c2449b5e8a0a9b4c0894c220352deb7de09f8884d2043a8573a1af9255f2d3b1a1ad680398bbac5203aa0337c217d9d7c0c42705ecb00162e83480a6412d24510b35142552a9462cc413789b463ed945e7cc2e9e8e1a01cd11095f9a919e8ae35c25b11e0f6461b605b9b0f2cbe7048c9717d58f12c4aed8f28c0ec1817c0a8ef3b019d17094987bd725847e3e1bb3bdd763e0ee9588c394c54b260f779c889ce37ef976521fc91071479b1f48b12c53b28c464f871aa4171195b1d39f3c3daa1f5935c9f0b9d295c9151edb97f7327beadc87924cfac6412c9ef71f43bcbac6090defccb65404cbec9e3eb372f4c6c2ab3fb30d5b229db29f42dd66d2d229f37c1cc5ac764a2d74182931492caf0a7734aab8629c72914cc784ade9c45880cbd6af4ac342cf7c626c6e4de66b940e2c58d37c780552be548f601cefd8c1898f828039a3c1fbda1199c10392a25d156da6c11eae689816b8c88e207388e6dbc70a8ddc247ba6e857e07a15795d03e834bbec0695d46fbec77d4fbeed2a1abe63c744ca7ff2e85e4f613654479e35c9b11d81c200522228aec9fd145a8f5ce67973a1885ddd16f7cfbaf9f74ae724497617647c4e5b64538816aba1fbe0cd729d57a2363d263315a97e92e17d7faeb09c6f39e7b0e99f79189f84b90425097b29fad5184211b6d417b26d89606b48da95c75652079695b268d2ac5690cd1d8946efb2b2c6304d54330335ba7f9874e48061fd4c6b27487ed6b1a396986397876aaf370e0b224fbad1c576e55293a0dd71d2069783c2e00aa05b1bb4c6e306dc44d8936ae21107f01621d19de9808f7a8c25eb1a3afe5b91d87e4993d7ebc9f23196062fc48090b353b7c68fd6d943bc50a407703bfe45050238788d397d4a2455dee9c953732aec28dc42ed9c82c6f79231d1ae4a795ea7e289d7ce2af5dc76fbbc791c8feda19bfe2d68fc760202b62c07453563d549d2587510d6b8ba25bd171d3f589d0bc820891b734ae794e8a13b7a1f90df485ee4067dacc48ecac4e7c22df013f1a8cf1f57f5ff3b1e30522d61928176bd56fc490970917ed1c909ed570628df2a99da10cd5d72b1f0fc962621a0da47da8a0aab7754e1fb5ed05c03dd48926d7c7c80b0d2e784b87194cbd8a240928f1b693aa03b8f57c46bd432710e70e2c442c643237b1baaea2a814d00d2d91a7ca4e39a625e54390a731a68edd84fc43853baeaea40b828058107b7dd1b0186c39f438c67aa6ce3cb03d80af9b0750f4b4adc2d05de18c4530c55305e15251df93841cc441862dcd6019aff21d932744660c5160e77a065e83861cc304e0195eb0a221e4f43c9d55991026672a8388e4fc0ba4cd3933cc336d86bc5660e07655ff41b69ad6d4236d9846c42f6de72ef280c810c220c31324fa76ebd9aa7267c3026dcc122e06928b184ccaf8483cbb004031f5f9aa589a78d9aa69efe5c4a4b784026bf2c61e04bf45c9e202e51cc7159f6ca7408670962b8c93bdc579afe0eb7d2349dcbf4134f1807972986ef6519be68ee3d56487f40e9bd242d3f4dab7dd5d76ff3729b360c0ab7d34af25a73f1f4539ecbf513ae56118dbb3ebcf5d72bf2d5347532b95aefe2d6afd0e680af9546554a5c96d84673315ad8906bbdd35cec0d95dc14775ceeb4ac71796e369ece139a27475babec64b21aaeb4163fc98222f96921bf2a78fcc8aa8a15e8e49be9b15bec36bbc54e2becb63ac54e5d5c171e6e0773e9a2ef3089d953cfecb95c1dc3258b29f6923d3c86bd244f3deb4af24364eb52b22e16cf40b92e3c5c98189861a8570c044ac9858b7b49d56bced2ed1e5edcc13c8356af4eb22e1797aaea15adaa1bfa0d81b61899a9e81de8f7b5dae62fa8744f3d74cf65ed205cba180797352c02fd55a097aa530f75a5eac4ba80f06b6efaec7c516b716479ca35e57abd42c12ccbb0cc6216bbf4c2e8b3f5ee4596b7248661988fb5d7ac8bbdac0f6ed744728c97163022bd8261913dc21ec370296b22bd52c276ba480897308c83cbd8318c75954eafc0bc85d48b9d62a799adac8dcdf2a32c7f0591e5eb2b00b29b5df63eb398cd81ddda5718cd6c86ddaba65c76a39d7160996699bedcb93b41f698619e71f87a5997120e2e5b0edbb063f4f615a3dbbbc3a54a1947d9535ccab0216cae7a3d18f27686ba073d5eeb15987bd94743b4edc840bfa10de6ab3abd1bbda80add2f01f3c5f61568ebaa67b72c0e7ba30a160cc9af0df955b1029e5c0570bd5e295db9b319523762ee9cc8300b51ad4a082126d6b46aece2ee04b9c27493719a32629d133562993d6631bdb68e569b1c7d7277651d32ae0e415c86fa52baa927cf578a8a2c934e54993ed1d03d68c2d4efabbc26f5689c4cd3b3e9d92b69e7482dbd1c438254f123cb09d0675be42c03d9ad353139891e5a31851e195eabe2899cfcb8905f152cc02203a07200c0b873f10301044acac989c951ac8b09e92626a49289c9b98c7292094ae9a484e2830f25984b3ea09c9c9c9c3cfee424a50a71411b849be5eb30eceb920b17309764d9276b71c069badd5e36b1373293b77473d6c2d7a357469d4df023997cfa8c1926f6d6fe3ae99a7521e192c538b86c6f5f73d6c549af76ab4eda5c6cafb9ead71deeb59548bffe9abb48e772e92ef06bcee21209e3e07229466693cf7830e0574c706909994dbe23cb269ded4db64713ccd9224617bd0ae09a74228934e9500aa31ea2a85b1fdc4e5e9129ea595cd12bf10a694462f168bc4c1d545282bb92bbb0afa760ecb353973b99c501755ec6ec0dfbeccf4e16275619177c342c106ed735f4526f6b67eed5917e7218d24d1e8dd2a977148f06caa95714fb9393b6d206f3b5394c6e4d6e5ffb226df628dbcbf62dbd04cca4778f5e19e1cec547a7a001ea1097bd016c11a3d718177c34de6955025df88484213d066693bbc0f009ea6dd32b247c823b928f5e31c130a49b9cfab53828c984e5828f461130a3c7c00c9f88406ed73c3245f58f5ee9b4d7afc06887a79e591cf48676db822f4eac4ea713a6cd59dcd9bf4723fb14449e7cc8d3284fb78f05f64415ea13ee2cd62123d73ffb835bef82a294ca1564eaa22d0666c9a37bc8153c15ea30c8d443b8a335c8d441b8bb328a4cfde28e443ddb248f0783c258ffe89b8afb474fffc8cff4f6e449dd7a45611c5cce375314a518d2138899007fe2ccc413b7ae696ee7854e4accc9fd58261c96fb3e44c79d2bfee40927b2409f56e977b467706870e80e0a724773d740dc3dac0fee23b28591eef1e490dc9736d246da70cdc5993cf108b182487e39be66f5c5e35a7a07fcc9a5fed6180797e52345c15087b4fb450aa69b6fba7522808798a37037e11d1806be1f63505fae91024f06e5674514b670616266660605f9816470fbeffd253cd0c9340e2ca14d7d1990b73bf9798a58340b4aa3d4502286be129229eaf227c8d6bef63c0694d862de4da73a8a9aa6074c9b63cb13772947511425539e290c7d842f6230cfed656bd3c165ac12d183919c921f113d500124bffcf2a47eeb8d5152a0b8d6a91cd66128dc71d97a9401ce648bc0c2bad81ed89bdb512ec75e8155c688d1a7f40af559ea5fa57efd73b5a1cc9458dde2141edc521145c04c71a94f658679badcb08d5ed3e3af367a34ac95924a296f79e015191ac9f07256118388f2aa88414f8e435c34b2dcf91898e5b95ee9ac17bd122f638847833efe008f46f5f85a6d3bb26c6d3487fc243f4d6f693a65f230c79ee09b98cc05ed0da438529a72c7ba4da594542d752b6d60fbc87737ee6c8e6a5f4c3efdd6481f2fcff78404adb564043a168a53cb3441f53c2581903a297d3445c23698b8eb7c9daa2e4039e8269e1486b94e5f323a82626983185ca2a7604e66559ae8881bf3fda6a648dd64b3f6a5f4be4ad4610ecdb0e7fa803b120aeeae0bdc5149613b0f3395e6219c996609f75d9c609c553b17bdba9b659a7042d6481ffd4902c95d7d4cc3c43b91fbaaa72e7dc01af314963f7217b323e60e4eeaf5fa843b6993eb637afaebe9fa147361987efc749feea151457e3ad5c1ee8e786ed2078c514fdaec5ba2c9f6f2ddba976b9aabf225b8a323dc5d12e90fe18eb3ac8b59bf18663e7bdf06b046a55d8cec7a66fbb6de63c92c0b97b0dfd7c399c8f2c3e50f18890ee26cef7e7f0c7b4e2910f807fca24abfc6c86c1d7431c8e6c6cc6cbd8b99397bbdbd655facc364b88395cd7165ebb0a765f7e48a4476695d2be58b99d24e0c7b3bf7b1b44415f9de5b998eb0b7e6c436d8a49be191f6b9568f0d608d1a296d7275511bb7bd684e56a4a7020f2fbd7aa583b1b93c7b729deab651d1baccad8379567bea32d9564aca48634729e51451dcf8e92f1164735f7f5c74103e8048240e6ef00288246526d3c8cf0a2b10c9555e72528f7a5b3c35a79c53da993b1f8dee8a548ee9717a8cd4b4c517cd4125e2bbd2fbc338b8fcde74dde196e2db4af15d7ce4b2cc312fde2b055f3735b1d71c1ada27bfecf36e36e478da2c5007fac018ed0275a08e0fac015f8c6845ee18638c3a32aaf058641672ffe1f760ece07650677a4f7bb93c3f411fd28dd047d6e81e309f881e9264eaf2e28e66b8bb18f681447a58bfbac71bb8e739a1cf538914c236bc0eca21c737863a0f46bcddc19d5ee76bac93813a3a2e1d5c96599618fac44ec2173358b5a0be940ef6ad2a644013afab358bd5c99d8c1c6feed717cff44d7170cd457c494b9778ed64e428c3861114e0800e2678d4fcc0a142a78811bb4d112d8ee98d3b9cb9e6b4ebcead73bf185dff0459363c6292320649f2bb7907ccd344518be3d49c60b44770b87bf1e00ae65ff48ac5d187531532e8f123536fda1b37e7e84f3be4a4a8cb89a2e20f79da17203285770091e5a7a5b61730c7474b8ae2762999f472f30ef89325ecc972824ff6b451719aa8384d700f2f700f99a28aa0de9f5a22a5804cedcb023285772c20cb47d8129b5804fde2f1e7fa89155a1794e63a46d27b9e3a751289c638b5105c291d8dd03e3e3e3362d45e35353f3b395fa03fd60e4fa63c8ff25473a87eba4a58abadf6aa18a5d6e50a6e57d5e49f0aa4bd45a283444df1b0706626e6ea0b8fa5f2500a219d52784f9049a8c24e951b35618fe61ad2d8b0b1419b9af910a8a6a69243f553a719a50d4813a0009f1d24f8ecd857a3caa94248c0a58dad46083dd3734ef989faf1f19964a4e4e9bcd4ca57f665f6cca9e4ad68a4878767cafbaa6bf2b17e2a1ed8dd9cce0950001422845a77878a442a9eaa0bb95f67bd2eeb227f4d6b27070ef046c69f095fd35293b5cfc2a6b49180194c3e35dbacf2e413e3a78cf392575273ca93094f0a3907c6a013097506b93f2560a3ee1422e9b4a6292355c5c75189b4a937b5a68644ea1f362d65e7c49923e5c43a9f1e233c3b3a422a0d72e8142555d59a922b3ee1464b599758a975dd449b6893838343e95673658be83c4d3e95755971264992581369228d556d76d1adea6923467e62fb34e7f3aabdb22b6e30cf4ddec6229e7c1e8c2963749b71eb2b9ae7c7e4f308d0c7ae7bc916dccedaa19bcc549523711aa7755a08143b51073307353538b85da477766c05ed058922c8c78577ce570dfedc39a313ae8c4fb8d46bc945b7ced1daf8b8d6655e161b5d14dee0b60d6e67fd64eba7573a6b273f1a6f8ab606b781f44ddfc037c147e3b94c9788ad8f0b5fb579d2898b08253545a813851085ec34474119a584b0a39c0f76c4269629b8f371c649d91042c99a3be70c599e02dd011dbdd2c92d72f77a8208c9ddf3915b8a853f1e0c68c5954fe995575f64814fa55f75f724034f05fe084412a1dcc2902243727d1bb8cf0a1714690191fcb6c8cf8a278ae49a75b44eb95da7f84a7bbb0948c445f394a7433ad14f5807a944318e99e9299ec9d3a57579d65f5eb670a91e0647993c6dddd57531d64645994a0618437ec23047dec0c74f7e55d4d06419f95521032319cabea8146e6743be2d6479d99736f2cb2e5ac20861449151783cfd04f8e935f54db8fb40ee4a930e529e2d89a04eefa9ede2e0d2d23cfde8d3569a177d9a9f99fa9d2f499699be34611c3353a730131513cdd18f3651bd7ebd86de3d260a7750647354ea21fb52bbc745815c289d0a5feb1d8d4623eb55a3d1fcbd73546118d1ad3ba99353f804779d45ef1a0c5398a246d67158d647d79e13b31bd3a95387a3eebe255eeadae8750bd917780a64738c7e824df3da97e93033c795a7774eccf0c4124fd447a199aded65114551141ec93431e7bb07f5d93f72a78d36987b273225ebebd1a87de44e9b53a58dae89a6f698ce548c318af07cbc714f691f6d134565ead6c5daabaa3d7eced11c4d5cba9fd026b2744e0eb4b9f6b9855eadced1ded11864a1374d0c600dadaa154674ecd33b1da4678f101d7b4b6397b0aa3555422ddb3a999c3d5a97ec3554494ca43db43d4c033ddb2cde4ab92b4d6e845d669e3ec9ed36177af61adaeab38dba0beb63fe3a6251200cbbf7e2693461f605747bd92beffa7535cd75866bbab52e93f65ab5d047f78eeefc1dbd258ea68736983a1a8da687460f4df724f4d15b7a3a19d5918b50bd8bebc8bdefe634e7bc1886be7ece3a7d443fe152fdd5a6e99f6e170a4da367f7a00db32f2e3e599be3ea60be9d1359e24e54d14a9a8672af8aa23dee68b784bb1b77b266591fb4d249a689d1e857cff4d1f593bbec6e30a13b91276dca7e7ff5c01ab3bb7c72978de67524bb5dcc0877d7919c7d74fa111ebd1b510c333df4d1bc48efba4746e948bb11fa34daee3637995f4378be07c6c87eb2616f8920934d0365b16454329a7d956cd97506d0b3098b9ee920e58961de91449f2525b8741f7ae603da903ac6ce999ee9785be4f9d1b51006d9dc4e07091be1d0740d77dd2367efa0cde8f1d719a687b0d128c35e5917ac8a66be25c8a25779e92065d13391e8827ed129f2c8d39f7ca75ead4fbfce006b5c47ae75a196c22b133d3bb6b575c15e45a3d717daeed6913e90e7f6f2f2e86d8db0ac8ff0bdf5fa6747a3bfbc3cc2a5d06146a71e1a9dfa0853a797c9a2197a4bcc2edadedc749032085f678031b2dfadbb72966dd7b1cdd6ad8a16c8e65297779960740187c0a1a847f9206cf85cde903bcd937a25be3b9c2d3bc9e31e03848087c7bddcc52cdfb979e4973223176a356bd543da092d04e6b413860ce9214f5e12f6e041eda964a858bc4a86577b6a0f1bf0a342cc15eba0e3ba92b8789031c209348405a8d608f76515be223b384078ccf4603144888d0f243f3c4582e0d0f038d2a333e4874d122457f0c878f1603ca9c5f411a90b4f9120389246f238d2a33324fe883649905cc19313c4e708111df8638b2457e45784db7888775b84fb1e8cc733670c91df25848d8768eebd6debe40bae51461931190fc67b85d38b4d4dac74636adc397151a1aba0224b214c9011875a6b639a18e73c35a794526229ab18adb774d7545635b75733e9a4a8535bf78031e49ba66340d1192735a7d97f97a9e0cca9f58aefb940889968eeed5c47ae335c3d4d739da169ae23d7912a48254585d3d2951430067c44c0c738377a5305895590e63a7677e34f2d2a5cc2bd4bb8fdee5ecd419adce968a904da5c0aea8b5e5102be2b75e36bce127ccb4f19037dea6b1af3111661fe7589fe85dae01edabe3c5c5a42e6f71d597ef8d6212e2d2133fc8e4c264bbc84cdd187788958378b620ac34c3130cf18981b5b106e3192e20b4490516b2a9b3cfb26cf772792ba32f2b4c99f5ce3057d1ecbf554e65f92943cdf0b09b1803df088a681e8e9e54ccf776be6e3160de1218453d3cc4fc923cff92a266995d9b357a6bf89d4d35fa5d78b2c6f8a3f11972292e6e69b26ce8ae34f7336cf5f482ef578fb58e24f549934e4a70c42cee489bb519eb369a0ca3c8974ef4f9e9fdec9a09111e77cdcde34b046fc7ccbe0b1609fef17bc95eab3af7799490744ee9a263e8e3ab6514f857adcec46fdda32f5b6d4464d9f2aeb12699ca818270fd59791b802132fdfe9f568d098d367073798bbbbd86f4c278447a8b2c6aeff5aaec427ff2e84f00e3345caf89923beeb537c4171e1cbc55a73f2c1983bb2dcbf3a76a32092600db885db5d59d2e82c7fb599978059ca9bd755f24446fae6cb12c7f385341a6eb188e718893023b5750ff67cd5126969e20cca50100ea13e9a392324e7e4e8d3b393e426bf09c4b855b98ae89c115917298fd06306d09cd128991392427acc20afcc1981ac8b8c50c82cf6945ceb227b0a3f708826b275b2def98183b4ad438a3f58920c7b80c4a321af9f938637d6ba481c241e0df8ee71216750b813cb7a5392315e510998fb2f2519e29741e1962a2c6ef2d1be54598362c890273c411e098546239089a689b49b985c268f462727241209242a199968599665269a89563212e100074e68020884615708e9e4fac9c85a6bad1d69a4d1356d04aa234d1b8d1effa3825c81742c900e69341abd4434d21e04132e14958c469aa6699a68242a196959966559763513ed26265ac948242a198d344dd334d1c805e94454e2e24454322281402412084422814024d2487bc968a469a19115100ea3fec1e7beb325bc4c096f08f7c578df729091c5902c863ce6972c7888f48a4c16441a06497202f2aba24718ea65ab7511c98248163c537cc96267da5eb2e0e971a73f2bb2d8c9cfbebc6451a4b9c713e369164462af44969456e95371a743bb2362a8c59db0c6852c095912eea4427ddccd4422943992a110a8e7d140c92f0332197491e832b962204db350e78e2c14f11504d240a2516814bad90d9598fc30b1d0463427aec1255958a35d191246577684922bcbc98c40229db8289d685911b2295c5c5990d20fa25922c25a4da864833451257e6471881eba665d4225224c2d9c692ecef8f0c335b79a9fc8d54cee301d508d1080a8aa0cc40e7000db0ffc008078412d282ac323f1a1cdc60cd1d68096146b049e3e91a5e4f1708b47a35778309e5689c7786c0b6e10971b82b05c100f06c9e2007ddec41611842d4274d0eb766544b8f11a4faf602c128542a15008240a02240acd1036b911c2886471843eba897519853025591710d67886000000884433f4676f4c3984df8331432fa2136e08040021402290289382b3500421841001080037a992a9930de1c277d80b159392918a26525141c1e645a16b18f42242f8522c604f3979def0e04c39263fa2fec10e93c69a69f91e8d9c4763a6bbbbbbfb9982b25a70be0c875a554f1ecdd13c4cf108e1be8a4e9a4c6b624fad96ace8fb11045b64afbcd78dc9cef62a625e92ca96bac15c6dd2feb8afe5c1809ff0d1b86ab5b6968d085804740084c08301cf45961c4f05c2c307860c3f51f88a90e92266c3699ae634bd6d3ea664aae78a839c93f6e55f9299f8447d91650aea95da60dea6984e6d4adc90b9a17c85df53214196d50d2aa9c500cd143b6664182ecb1051ed90d55930c58e193926120016113b894394a7d75aa7ebeaaabbad89516ced8d986128ec5ed4144f5828e2f41ed7f1b39a7e43ced7dd47a86f029442eb52b13caac44c14edcd53d7e2a04e4f591c1b688d848203883dec610f70522a69ae38c08622e8ec5a1cb12f0f31a5a0156da14ceb82b7ba655de20e2edca8c41d75f90963ede864a6955906bae2e35e7d1c3c8d2c190a7c03d1f544cd49ce23306962656c684d84c0289c615de9589fa6e91185545117d27baa1625d5891e87f5e995c561823c3f4daba29375a173966e548fafb016f11252e6172f719820cbb07919c864b3bc939738e20d09aab9fd9767c34c088b54f2c12b4f30b8c974c8127435a735f7b498d1dcb3314327cb78d1dc4b399c42edee96b2aa8d0108638c31c2ae664ee294e63a1d2fa669d2b73445494924ca28a920753020a92089444924c628a97c1f99d605be3b6a2129d9518baaabc886e813d950452da49caacfadbaf50a454a29d30d8b70bb3e923b1df38775b1f1c3c60f1b39b061d33d367260e3878d1ff792b16046856a83dceee9b8b4e0e41883cc774b848bdb477344b83337aec9568adb758fdce9785b6419e310ba47d3340f0a34d75608b7717c532059529c2c317ed13805e7c2772919de377ecdc197fb8da18d15c2ed604e7e134e19604185102ca810f26016f5757d5debdb200aee8b4f4a88bb263028832b727c2442457e590a3af987fcac90c24d8e8139be9b26eb153c972988717099c232bf0703e20ebea7c48e2c2f21f3f525a8a480353ae8a22757ef74bc1eabaaa85b170592e39459467929ff36f8f8289066795d49016bdc5441f27b8f3c1a7401e401bdf28023f16820f148da51b8d7bdc86fc6109d0d222c17ca98c7d31291e0401214773aa635dceee63b55d79aeb99a74f1c73c4b7f624fbc6443d6e5a35b5dc797ee6862fbbc18daf70a7b5c4251c339372be9706271d4b3debef5aafbcb8b571cd51a7283b06f972dfda5eb662107df4fb0aaf2602986d18483779761d5716cd2c7a8a68bb9ac31edab4e6b067db6d0ebb267ae8d7f6f2b2f64a59966559b8d37135a16dda47a351e8d3ba847049d3ae8d4696a6ddda90b5d7b4d0d639a1956c2fdb925bd64bec45b7367b91f5d13659176b5917bd6c5934975816954b4aec479b75d156729bc3b0dfede596c692b094a5282b5acb52ea9d8ed753ef66af6dd9a1c54e5d52d4ed3d758d74b5df8340a092c3d8d1ed4b8e5d265bd7b60ee6982c7ac936b2b42df46745da269345a17beb822e3dbdda426b316d4e06e66a511645518a9e528a290c032b122c304081e6a6a9be8e5e1b8f2922e469ea948a71fa682ec2ee4b0c778ac0189f457129bcf0d54a79279c26b8d3dc04893c18f1f036d77cdbd8c00dd64c8f505c999acc0289980e6d6aac0ba46c646a884cbde8523285329da23ac608a57c3a195aaa4eb0486f214306771291c9264f449a9bbec5edde815e79f907743c9e2462de919922b9833448201159201122d95a7191e895f71a30dd8807fc556861fa429eb2c8d32986441e8ce9447a069ba2379693bf3f08fabd17824007dd8baf936edb136d4abbc2a617dd44afaf4ed783105e0729831e41106619e8b5d69ee6322a6f9d13b993c931c3d87bcbb0675b1fcbb24a065bc46be918e5bbef468c09cbdea01986baeebdcbad9d88d2ad6201029ddaee15c9dbd0479fd7c9c6e3e42c381127788ad1a8f6a85f73da6462864c4c36eba1adbe52947509fd418803ad8b09fc757aead37f37486d5757438bf4bbc16c85def7a0eb2065ebd3c53866bebf98895fd688972b2eddc3c057bfb0faf5d0d6dd7991c00baab57f0fb78657890b7ffba092c36d74d0a655eb2df19ad6a5be641b410d5eb85b7bed6d07952f275c400daaf5be37f8dba00d3b688b2ef6d0ba28619fbd5e17b42ff2d8a17db1cf1eda9e062f28a6866d28dbb45e788594d2834e5d267743d80d61b7f6054ae12735ad4fb2a82fe5aa1826abedbe6ced75c15f5b1132c38ae52b8bb2b9f49455c9b84d1bbdc17df4a9029021b9c649b58fdb34cddd54d5bba68137cdc9faab6eda95e56f9db6db3d9a7b4da3833b43c69a49c2e0d1a89787b0c63e71a94f5beb01c6907380359d8707433ecbc1bd09026bd4449b5ee95fddc5d2345145f680018c01ac412f0f697aa5da2d4848584a2edf00239a6574496a965873293aa7e11f19be634dfc49a4ae4d53298d3535d9051445e8220c272cc30202419221a464aeb126da642971b22cb9a207c6e83a08b9811073406d55a1ae50eac60beb214da6b864ed6dadb8c6eed8cf1651fdfa7bbd8285e8056fe8d4ba6011c209fa0051630408ecd0ba84e8759bb39f6f6c7bb9b29488ba887089c20e3b1da44c4d269aab97d68807133fbd31288a1bbfc5ae487abb88c4e108cdf5d56e30f6d5626a775099a272759136dad3adbe255a990ced8d4a865798ddeb99dd40a70f6dd45b227cb5d6055eb0a5e3b3eb20e576695c8a18c764a2b9ecb2b9cc8546dce9b8b22d3291ede186bdf634075d2ade4165db39912b8cb5620163c008df2e4a5887f6a57ab16e6db4b96a2335276fbd00f1a35d90f917de1d5428a1b091982572e3945056014f2c2f43488c1cb10723bea5ed143a2cc7979765733266a22d723b2d4b2dce1883c6c2ed27bb8790e1e0d2688ddc7945a6625b30dcecfdccfabca497f5685d3afbbcaedbad93c9b6efbd7f79f9e212e830f7fd8bdf41b72e93a9184c2657d875eab25bafbc0b439bfa6e51eb425154f54744e85448be923279da607e1cf5678f8879a23c9e8947b5456e3ca9be940c07577ee6402cb4c8355e8f9b6f7b44cc11d3e6a270dbc883f19a28c93f22a83fdccdc8ef32a68c877f8027aa7c160bef59f1021ae4a7013a23350d885a6fe56e7248dcbd85efbd0f74908b78ef756fbd3e8ce7d6575fe6825baf3a2fac46d06daeb25ead11ee7d91a9f5a51e242919a71e3c9638331de1e4dd0de2cc4416188448963fc11d090299692091264b08a405f73a559dce78341e0b7c2a27af0a02a2a24fde4d43ac1e087149a44f87708f90e585783735214b3915c957287163cb1773cd9d3ce5f56da00c17510f3a08d72ac4d6c17c62e194e64e2ed8d7c9ebdda69b29a3b9d5e9ed09ae1e9fb2bd2c4137658319ce44d9238ff48a8f1c82c92b241540727c8d553dc915946b95eb0f97f9b14c37dc7bb7d64a41afaf401c5a971fcec01a29978729802a782b425c72ef288bcabb4b23a39e4a8d8fab4fd9de8b519f6df52af55cad105421b420fcaef5ecd5d6554fb1bebdbe62d90d804a00ded24208017a0aee60be4f88ccb2ac1cdb33dc815e0f033ace528278a5aea08c9804b1a504405e65eb24ad225f63bdb5d1e6ea610ac40902814020420869164ea788bc028b5ef1e144b2dcc93c591ac9f242482a24155248b60366d09790b97e47962b06c0bbe9667bc54bc00cfab345808ebb98e550d12bd6254e64a25740b84b39e8f2150413c4636016e229183e7185d86410d025853417bae41049854bf6c4f5e1f658660511a233edf48a0f928a3c24cb894896071d3e713b89f302c230a0e3c3c89ce66490e6e4df9c70b24cb9101bb7b516ad227132e95d9cc943a01048054e0c027754a660088405d77a9554f44acae5c94eadd7eb9aa926aac8d3143cdd4c3537c31d95bf90007179bcc5c0bce198ad5eefa69be9e6d10032e1f40a10979f82f48a45330a0a29a3fc3d946f52881cd29cac37374060494573f2f6ef241543a8bfe9958639e2ebe5cd0464c279341e8ef8fa6a0998abb7441f3694adbb77eba496bbe9463b91546449da4cb69b9b2c3fda94a0a82894446479d12af205073a405d5e474bb3d01936fefac510f2d50c5b18dbbe556a9eeb52aa4d36376de1233f6a93b2b94767523a0036a8ef665824fff041ca1f5a54010743204af7441f6ba3163d91eecc51439f4e8a3edacbb2a1e8249312eca24aa609da3426a936987a27b27401fbd5f4a62eaa7621add74b1f2e2b1fa216b9e525ee531d572731c530f296c8c886523d4de26640fc1a6974aaaaa8057de8b22f3ebc2b7d12349ffc35cb09103f6014dc513a5913ee60d532f940514af8cabae787655954a609277aa24f4c92bbf91898ea4ee496d6a30fac214fe34feee614b5c8f4d392518b3cad4f1386e95753ac5a5a15cbe80363ccbbd8ecc9d67d5edc5112eee835c1ddc51d8984bbe38e13e18e0355a06a5118eaf23da71647ea11dce9b8aa45310cd5bd5a94ba048170e97af6f9962422cbf18d2a31fe71a300c0f0e698c6d89ff258864136957d9187a9a83cbc89bf31b201d69036c370d74732bc219162d53d9475b1d445558be2a05e519f147555b7e8d4f591dc7fa4c886a8d23329a5d3b3e400288aea32b9b798992b1cd90063ccb744aa4586b6f1bb518b3cb7249a6ba2b978383393883fef47664b411582e0e4fe4920f9d76284a4ded246e07e3b2fcf4de1d72a2f9ab352b8dddbc9f26f0f5926a1459637a20136d060a306a7614b2b5f91686efe01cd1921bbbbbbf1079a9b72821ff8e94073b37b487cf4caa431f34c34b10367e6218f667944cc9a3c6de0ca6484119346160e5223982bc873e2980763de0ab73f1d62d99d2113cdc520813713a4a4c8c9d3f41c31d0dcf42cf294863c4d73c853059eca4481076382407a65e2d12b2f0fd2f44a8f5e29517fb97b4460cd74e8a3591e1113e491a713c9c38fdc419c3c9d89e94d4c5b039a9b0e2dfc61adb8dd8934a0571efc44a27f64812b782ad361406b902718459e4e4d90c78331bda5b3b5c28d6f1e3067087dbd62d169d2cda298758be292252d6a9d520a2deb16a5b6bb638c317ecaebaaf1b2b23559d99c55ff268aa2aeebfacbcbd7f578c55bbb5932d9da745cb9c2951430c604244f6f89d40f6833b74832e7ec39e79c344f3823ce9e3dbbe79c9f73ce39dfcd7830e62d912ba7da1796d1dc9c55e8f99732631470e60597d29c9c8f7922204b2e9c004f467673e357e43190815e29cd73a003314dc0cb9f5fe2a0c686566a87dbd12c6964991155e429bd12c2f75ef7824616043c15f929dc2bc41953b8f1bd3d19cdbd78d1135fe0052cba50862a658cb96734273f4496335a450e6177eefcd4805e7979193ea04b41a2272f6e8b6a5f2251275744efea53eaf6a2be4ba9e75ef44aedec969292634aaf88a0c5b1802ce2ea5f7d4bc7c07c6fc51341f2bc42a0d7277ee47bc43de82d5d53600d25608ea99df2684898734aaf28d139a6b328e5d188393e88b722aa9ff6a554f10d58ba21facc32db1b17b4399e4e161d04023d9d0cea20e81046e819c9b52fb34e17685ba2334809d09588a119be18a1c790720edd1c1984e1e342f7d4e28819f4da0fc696d88e9841f83d18216c4473f142a25762eeee8db81b12303ffb80e6ae76dfdddef59a0512314f5f0c9cf56e4c48315cab4bc993457b7cd5361eda597022343cc57de87356b366675edb4a13938878ad428132ccf89447e385f0d55c49f45712e16a1e04c21dd4c9d4755c39445935dc17f1b7a6702f729431448e336cf40ae811c3b05028f4979743b8243a0c06457143785ef436d076b72e26945d26dfed614358dcc19c5cc9646abd1823f52e2547aa9ad394f35114a84735b891524aa94280fc8e80fcbebd159972df911eb10f78067e51a593915fe3f76074004079c76514dc3751256eaf46638804c688db041e17ffe3d5beb01f3ac841f7cd7481a78204d64002c6888f6f10a2861c5f861c2540871c6f95683024c2b6088bdbe6c53cbda5219247637aacf085e1e0caad813c9b2b7acf3b3b537adc3737b8d52711a6520918da3a993bb82151026e37251bd4a2b9786deb622466839b6bcf676dd007fedcebfec6d15b3b099d74935275f1d3387dd3406207c9b1aa24e50099182902994cf10880c88d4ba2bea893c832096c8a6e5ea294ab4b5ce15245bda24e5bb475d4add069375d55f75685aa1879bd314ce814c3b8784b79e2e2d64b9bc551df6f7bc30596cd9de05b13135b72ad966c9d1359939a3629ed3d4bb4db53da5bdac7c4ac75b2471a1edd8ede9bace6e1b59f7dfb7950cf066136b8251c304f87a1435cba515fdde9b7fede57a2fa7b5f753727917d388a0a45095d6e1d766aaabfbfb8ab2e9a7007e9a65d6e14a54eb5ce99e8d3342f73e8afb950488461aad70adf5b37779792ad63d62beb62af5a31fcf1d9c1854fa28978263a7824471ea8436407ce3c1a4568582411b18328c8f1b005394228728438c85127c6215b20896f40af74d4885e994e91882c401ce51df521e2287dc0140ff1626219cda5e494e660f79c3401d230a35766afcc98743aa5550eb72f65a4604f86544e3851dd13bc31bef8705f1e53480c699a83357d00f81e3e6e07618c315ed11ca4018f2245a822ad024fe12e36f1855ba22e93a9e914fd4431a402c31c0a431c38038bcce07690a68896214d64b1d12af090523792483fc7c9681b4d74749a648c119770c858ba4165180a7fa003b971065ae65b03696860210d3683dbd980b7d18007502003bdf2f2c4323af0814ee25948536303718690d1f111e21898fb1814b7bb32bc9ae5118192f202f65c3df50971fb13caeb13471e4fe5e59717bce0a9bcdc652f2ed8e2a9bc3ce16e7e9226398220778c71638144c45f26b9bf83a8932509070707070a9a77b56d1bfa1355e429b4813f36d006fefcfc501774818dd354cc4e72697336c86d1c1ccbb258b8b0933444c063e9244f45dea56f841f196be0ccf03090b870afd078782cd0a64f1e4b1b892af23288c0fde03a20d1e0be20ab20cb2d4b952c0990c44864691c1c23384670707a903304213af0274977646923462e097791e6789abbc248648938883d18c28d47c8f28d8d7492fe49d22b1ded22bd02299c73ceb70ff9ea90e56507793098846234dd03f2f0d821cb24dd4bd24972f60348102804ea34dcc95e6d126612c0dc3891858483d33859be92224b27892af29492b23c723b9205e21eee4d1259449734d4499264a9021fdab667292067ee067f401bf8b305fce91524d0de059da0b4765a97aaa29452fac6fd0c6edd65b72e26db67dbc3ac4cb69b8e2b5f14489d6e6dd3ba541346692e0a17622ad1703b455e4dca4195ff63a16f9a8ce4ae7b27b2d0ee91cd43e9bd24d2cf71547294823a5c9d9611f294bb324833aec3ede48ee3c16470bbe893236a13172728e7b8e8d33528b89351c2dde339c13e6fc705ee8ebba743d27037a3717745d887a3a6c9d3042353e891c76a702410ca43f14c3c3c9125527a6f7d5802913832484d64e9233c15f9264ca1af90e5273cb19adbc99b9b5ee9a804022980019f0c58977f00f742c61033ae972fbb52bafe729d2292b8859ca134b246daec3c1a1616494852995022bd225faf5e7994475b9b357b621b24b2c1213f2ef60e0ec952a739793bdc50f3b064703bb89329d0dc94873ba2fff04e860fef3894773f794772f19dae91f103ee6474b1a6e38e82bb9fe08e745de0eed6bcc7126b5a455e147d4051dcae892c92deee525c7373f372177d6a769a93bf892c92e7ca939f604944ee14694ef268d666d3703ba9e323752411b903fab4af3950f7658f2ed674fd06f9a3577cb4883f11494c12b798a197279797363bf1cfda79d6ceb3ac6dd4350f86bcb5c27dcd9570f7b0e048b87b57d43cfa883f80f4cab35ef2f74a6ee1be40bc847417dbc956a2fef2b3a423f2fd864723dea2db7c9daccbfc34554128a55e9e4c3e3f6f627d6ed3adadc28131e6a9695a5590c9a24e858da5f358d789b66e00593e240fda3a2973660d69164904d6d89ccb1de4d140e00ef298fe60be3698d31cade01fb41102337c47e54fa9014053a91d6e8ca7124f630c6b86db97d9abebfa555515fdb5bdebb1dee4a36b5b07ba5672ddc4c4c5b19fbce4c2e4264f3111897eb2dde6442f79e826076d2f2f97bc46eb6282dfbd4c9a2829b946b85432fae8ba30288a2bff9a33793419fd2a29799665d94b4a4c4a4c48a45fd79f35218db6eca3eb2626d9757d74932cfb75917e5d2d71079549a45176d2cb9a6c4e746ceb6e16d1e6442dad55d7abaccaaa0e2557bf3a66576655a21ada3268efabcbec15e8d5cdaaaae45528749148646262f297974d70897418936737c1af39936727fd5e265f5b77e5eb255b0773c9471b69db3a9a2fedcf8e2e93475ae857486485300459bf1bc8e666c7b2ceae0cd3e65ac65ed5abb774876259d5e5836219b675f515befa51bf951583e89db67525af1505dd64a49d5ed28b3638041269ceba89756d1b5df492aa3a7ccd89aed12cabb20c97b4ec5955490b8ae28af0455927932f868d304c341289b0d02b5128c39e65d54555f54c8461afaa9048f4aa6a893ba81ccab08bb6ead986bd90759005739ab32e93af0ada2362c6905aa7dbcbd5b2f06b501437763c2543b52a659fb8d56b955bec4d08d8ed56a7f76c91598539e7ac1e6dac142f937fd4cbe4c6160b5d03e91c208dd32cd8ad1fcd5936cd5942a0391116f5485ba531655d321ddc863a9d63592bd6ed656bbd6bf068d85b6f1bc01af5d6abedd9b2b69e018c6175cfd61b37140f86f52c07d7fa912deb28b086656957adb1c65b18a675a8375401e7487dbd22e7843deeec5e736f9626c64c4c3db70fe820f5b4b9af344def99e7f492b49d98884bb89e3db3b716f6b02c6c73d46c5df6e565f9f75eb6d2c55eaf35abb55698f9aa5ab32c56eb2d0d5d006bd4470bba9db087c535eb2c862ec02d6d71691efba5ac5bdcddb06e6f6fb16ae32976fb72ddd60bbb115f8ff852d8bae8906c66d6de5a8cc934611fad78486373478f592bbbc50e69600deb58076b7247a345b1d3cc823d6c4718fbfa98c57afb2d6e99ccd966ed67c5167d056fad35a35e551965dfd2192e51c74e7f23cbf1b5a7d93b1def64c63eed4b761858657fb4bf327b0c9b999a32d59520d7d778590b537f658baf5a6f3799a9fa2cebd005b0c6853d72c5f0b3f3147b7db864c4cbd85f5ec6b0c767d8e3b12893adcd36cc5eb893991eba00c698b0c4548444be0a0bea4172cde25f4a1779f294bd5e577c0ffb8b90263794396a7e997da12bdd93a20ad22bef51364f75d1863d6ed5eb46757cd8a2de297a53e1bc53959027edab8cb7e4ad9c48c158b69202d6a01e9f15bdf8dea32a75ea1d512d0a97ece1abd6692bde23ee6ebcc71cef117655900c31fb221fed836f9ec81273ded58de461281cad88c0732171cc79b813c1ca48c331c7c2c29ad94ed9c618238e97f1f2c9ee0439e65709c95d75181f7588036bbc435ce5e4aea2a8bf57f1b1ab8290e0a9f423f0589288483c1aa24b0c825047252186399c6995a68fdb56c5186f69f50a07c688afec0b7d7db53deca1cd3aedae7c37da3a24782cade94496a8d3563c9668051659f6702665773d2acb7089dec22277cd0367a2158f053ef154ba79e46da8abd371611b120f86f5695fa8c354b883d2e6b8ac77049e8ac5932d2c7b5e25057659f6da66a653a601ae7da8f48c95d5552c19a211000000001314402030140c070463b158382a9765397b14800c9bae526c509b66498e53c81863900120300000020000c1244800b5aff221b79000fb1315ba51b9b2cddfa045fecc9eb7daa0bcd30545994d6b81def239441d8853d9a1f557714ff8a3747403740da96f299a327661b427344e438f631fd7adb24bcdd6b3391534ef69def83131b9d11059809991b081022d039433b28717f4b8eb469830018f1c1b2511ee1fd11e73895d2314b6becb5a49dc237c88f7a1732f73db6161185847d4b94f1059f3d3c05a3835895ba4a92da1bdd68d5f6ba40702e7e24165efd89ec31c969d3c9be5cc8876a28aaab5d1974ebf05ab799a5e524615fc90524aaf12e99b4e4da114c7d4a85b7fd37b80fa4d036de13b6ed4033ecff504c59da3a891c4059de49b5bb98a8a88b0568e25f21b9ee2ae50ea1b1ec1426b4f69256d6002bfb419b0de702d27f1ea05544b2c4ff7bb9ae9084818307f9d8209c17033bdedc5e9a9c7ad8d99c487128cb4b7387982756c801451253ebaea3585f2846543af415fd6bb92561ae201bd10529a7a7838673cd6f53f983f7251209ac5d886cc85240077d0b76cfbdee27429730d582356168533a170bb5d36471d43236cfda9d55437299231813ea4beaca8b0e21d111c37011c11982ba2591c6936cb5d48391f092c5287dad64709f6a57aa4ad169c8283551f5af1b4f81cc90bb085aac5539baf380227ec1abe808b2c801d16e4d4fc390302293af69b39e4f2def0b3de389603b9332612f2a51c52df7fc0ce724fdac5b067488bb5c3e8a3c130206180ed4e4b8337ac52f4b542a01fb378354cff0a9cdf1dc181c9a9b7317fdd3502cc0ae5c93910cf41241222fd7e577e5655aa4dbd4accae7a899ca489d3ec80e102da05deb54421410e6f0d1fcc68fe87405ed5a62d9d1dfd6317c5902697077fdea865e9e938678862c482ee2735cb55826d348f7e9c6b56338ef78eee735bbe16e2b103f4cad79c14b83112a778aee2e55764ffb6d081fb641ab92939f6c4bc25bc6495aa1fbee59e81ea3bb720098114c121460bdd9867601219a791aa8b82e07a6d9f8230f0a22700ee0777fac4733608aea3b2b4bcbfadc0e2d9f1d5427887a56f5660934e55e965247fdbc8076e50a06913f939adc0a782a27c105e20fa21e09adface39863de7228227d4ab399d14148ad0558315c79f00af3abba4d18ebf8bdfaf8c4f66cc35e2aec95f531297fe61ecf2b6e51623f89cdcd42b06eacb9dcca6e62e97fadf703aeb38f8bd1c2bd043c4b2bc3e8e476afea18953a2e1923f9d3c60ca95eb29b446a00aa1478639491ed9796a6f40ab97f08bc26749412083be65a48de879f175baa7c8d987350353809adb7a180732ae74e907a44be9cabb1a6f07eac20270e63c4876f3bd3bfb60ebb8870a153facf76bae1edad40388f0ee10c08879d75410063c17774d7c9e4074dc96106d378a42fd2555e413e0827d67ae890db6cabf9d3430cf481abb2124ee4d4e7194e789735c98946f5287eb7a36cd1d3437aa124cf09c3690822cabcf7d1eaef8fd653043285d20187443ab113680090633f5f155ed5017561fa0aad8db34512b2fdf5a1a7a5a0157058437dd979230b93e57eff8f0515c437f040feb9bec366f8d3bb29adb03bd3852c9d1a808b947421f32b32282044b8c8aa0ee434b3c18011e92e240f79e41e7f7a3cd1992da8cdc7adf217cd671c37d01700e5f09e97923ce1df1e281149091b21dcea344f68dabdce855fe30e96966f1ce94461325bc8b311b842f866d30cafb8ce6fba0fad84c0a2dccab8744ac00d06d1ee02fbd38b43162a4fc58265c9ebabb54e8fb98f9472ebed0128f8abd0fa15259ebac26509b520812747cab31a07d437d26a86d82b5a8810e6c83a0facafccd5dddfa4a4a24885af7d6c30e897d5f47834facec1dc22f6ed0f92a65229b75ebe3eee34d610df7da8a1e7a0ceaf49e6f8f427ecf3385d8b0fa8615dedb5d1117438c7f1edd7ab0e34172f44293e85518e56ac88894029b73275e0df7aac58d0d285684f6d593e4debcfb7553c2139adbf516d0d608291fa3e570539e67a2d40a49dfcffb7481ce67e9b9739a8f708994aeed94222824f5fc50d965468794fe09658a086852cef4bc53fd6af89d81d8564d794b64fb1d18ffb88fcd40157b32c1c9db45dd71c1074104ff3ebb3847a1dc6b792919d1fad142819575928dcef261cbe78c8e7e0f1418ed3ea7411caf6f1312a29e1b6e6c7c1bfb3f772a0196f2ab8876f282000562dbb37db083d169536dee71ff682cc7850fc70fa7717367c25226fa600665ca7e99f147faf35659ceee8fe2f4938e7d9ddc957cda663ce198b543a55b74c7dad8194157bdd680b69a9dbc6e5d8ca7931165a6c8fdda192fbebb03e472a2dd3b444a9823cd4387d6a42e0d5a7d44aed54195362e9bf5f7d6b880f740994f10c3dc265c23adb33f30ca386ab90b2f7f430caaaf12a1959ae0bfe1743d0b0fb27747e147682346994e2bab55213b9bbaea1f336dc10ba0414b64353d37bd48f7ac1e865147cc7a1c5a86bac41fdd08f87704b08ffadf7dbc4594dcaf1703873c2cb817a706bb14efb8017e4f13bdee2e2d71012c0b104354b5e32fa2cdf8db5aa327713f6cf6e962982d808629a69bba07ce63a15c5ad097794df0b94358a49f69c1e0e7011aeecc4c47a6a59ec81127d7284cc7b321f2f5d632efe763815e77b1073d1f160c04daa0f478c3b56538c6c1460a5d027fc55d95f558d70b009064540d62284703379245b353c276f3f055e0cbfc5fa8ce22fd5cc740a9da3760f8929c95aad1d17369901d274868a1449677f4ba56c566db6e2cc45a957e98242db5129c20cd509796da0e4b785418544dbe6f179b3e2116867a241c67b5a46930d38200a8167abd625bc7226ddfd3b4b14f9a4086eee36358ed78a9ee44d31ceda216626e8fbadd0467a928b383a5c45203519637d1cf7db6eae20708ebe6ab9d19362dede563f9a68a007c605078481b26a6f120d0e9573d55ab39fabf4da9cbd4d5fd9f196c43a40d216197cb12b0c4b1e01010732eba06238ede36b20fd94aa161e0377fc1b9e6609a1a59d448a2de555dcba680f40b2c9c00670d9aec07826ee141fa4f74f602b7c850786c6d6b0d36b249126ffb4162127617a10c37ca411aef1c46dfc6a3a0ef247698279227c2f2ff56f6fd09f7bf7511062a5346288286494d20ab5eda405436b5bc41f7f5b88b1a12d673b281f8e5fb51d260d4312b692ae6e70a6009326978cc69afa77d420d22f3a796b2144bb2a2d17443ace86b58d3d7a6a3f6ff03663c01ae8c01288b083d7f3405acd41e3567dc8659049d569657c7a73d1c2b525db8854b91df59f7d9482aad4a0a273d3080c686148be174cf7a18baa73360e927346d0a7413937054cb415b4c0e7f7f1dc2ab459be09f1a61f5a00fdf7c39f1990dd81a9e94e7f2b8b351b810798c1af0706b972aff8ab705394019a50c829a621d0a13020b989c64f9174ffe02309cec18a9f7de675cafa003f38cc5f6c6cacfbf3b429dbe3fe44b9e0f89c6aee4d04e11c2b891a5e48c02d850d404cc4b1e0aa6cb5c79cbac5635f8e7e898da4e40a85035d818e4057507dd10049e77372a159616a99991a0c566bef8701df8665234c48135c799b14009d1de10fd00ac0deab32ef815b909ec42cf3391e503f4fcb28d4bb82cf98c4c305e2198903c29f9764505b62ceb186f39361999c36f7479afb0d1366701cc9f4efd0aa35380417ecec931cd0d05f04dc59d09179860cfe2a4ecdd4de2795fcbc414bc28255fd7382ea68fb6d9ef32e3f8fda27048d29c9aebd8a96ddda49d15f6e6a16ce84a6a2e0c6687099a02fe5f53d7db5d8e70749c62256d9d1509e630e2200e87e20b2242dd375cfa1b2884e8874d2d300c13977bebff486ffb3d376bd39a678e6908780ee894e54c40457d3be4c2e3f3d7589d36b8bd90c66e9aa28428e88032b536b01ff4991d8f455562e468ab544243e4059d0fce3ce912fde4ce96f5c5d86be74b400f352cccd2bda34b98d902656225dcca0bf1215d9c4f3a04ee07a102f79607d894c15b520cf94bc20539e30a3139618f0b2ae991944eac33555806ace8815ef2d4942408a0c7dbac667f55464e94d029552666aca6cd78a4f2745f8995e4d7df39c554a4fea3f122b90a8145f134d82e0e426048f7601e5b814318627260aa7e492452584904659a035db933fab03307922c5850f9c3e3f80153ca2f07c105562f1fd9110cf1997e582d894c2256a9d9573bb4489a8474aa41e3693cf1e0a822bef4cf65b11f5a4a8029ba02c0c42a9fbd30b18c701bb695b6c49108a529e83d7adcc984efde72b148bbf9d0d410ac3815c67bb7235279b39263192ec419cd0d1d21dba8ca77dec960941ecec3a73ca78f7d921e2742324299e42e36145272d73f3daaa3b32cb64dc73e7e11ae0724c36444a7f3593f90f57394155ae50cc75c7b3be2cd2b77698d70bcf480d476ff5addbbb62d8c692effff0e839ccff56b39b1f2f3e42c07ef091973e32ad8e576dd62bc5db188246c49dc4e225f8e9b3444496521eacf492bca814b856a092022adc4b357dea27f3b509ef706195aaeafb674f316201592169d15b7e34b6b7dcd3624c4d2a2f3aaa280cf6bc62fc4b625d592e1cbc0e045ea972bcf577e61a54fe508746ac4db594b63ea1479d9213704067771a46c000bf73ca439b138c89462e4b71e60b465863e5a830f987a2f4c8148a729b447fcb0970378090653ee0da33ea42579bb094508ae023b4a1bef594f80a4664d9f8192c8caba682de15f9054085526f475017e0744235633ed6427a1acb49617d864f754ce006a5f3d9b886a969f0dab7c9a0e25c26e52ed01789c521e4a8484c7ac187ab77830d93b37ba7775fe4901f955a189d6d12acc6d774d8a62c32825300638efa3ca2745e7253a6c958a6e528f3e1d2d6d07b7e09a8d6010f8d2c2fbd6f74df3e975e939d13a966f3b4f2a947fed907495985a8bead785312a1639d7d72c4f6bea24990a8c8cca9bbe213d0078453fc6cba19eb9d56383a29842b2887f13adc50f1f070c548156792d40befa3f9b0d03c9e01f14a3ee54832f64f2ea07553fdc2391ef2e11db2a984224cd6d72a96322b39f256f86f5e41cefa96899930cc9b4a5d0a0c3dd51d17a4f0decd6592bb2c56dd4549e6d015accaf663def3da3a096334456d8a55565e8e88af26336c13556b3317d3f3c403744c0622b34cb32e6f0e326a3c900c0341264e47774bb1ecc90abd8d095d0aeaf2959e1d3c102e14ae57c76f3463f39ea8d24ae6a4c0fef2a4976dbf43d4bef935ee62ec91a6e3ecbb0341b0798e700907b18486811672b4731e67b841cfcfd40d657254f9870f8025dc6234ac6ea919f1a0b98f3e91ee81da4b21ad806b8e516bd36c71caf57c147dfc68118e63e75881f3116f2b16a8a04a688245dd4ce602d57a8e1fece5300a88ed5c7bfdef5827e01c1538c652d684fa8a62490897e5a06c3eef44b981423189de5103577ce10c5fbaf024526d2ec86303f3bb347277b133311cb3f4a3b88fefb48bcb1adf7d56d3c266d9c9f2472dcbfeab72476372eb39d94ff204c7b00c20cf62295cb247f0780f3f0c191c699e27ad98bd6ad7d902d61c017ffeddc7809eec2f7e80c3798daa49a98109b9967c5f98d2877904a8bc4f2e7b6402f80b67493838050b51f4c1604b64ad9544b0d8363a2634fa1c225f56330f6b3814e04ea164e1584f93885a37252241118da29b510fdaa614d122da442385e61eae903d63fe5983233814a91ab9a99446d156724996ee2bfbb91c85bbe8869a463b02bef01565d2d1fca5d87ae23939bb532473c16fb7f8150a32202f5ee2eb015168f0249ed84b7a65506e2fa3dc4c0e81ef4cd4becd4a616a6c2312f5213e91dbdfb35344c5d9c7435cab45193fd499fa6f5e31ab83d00ba5bc58aae10cd0715ea6110af6f84d249795a187a95dcbff80daa1749383b310e6c1ee068247a9a2e2c321a81596a2b99a0c6296c9c9b86525394313a38ba1aacfbfe75b48727060e14985187ba0242012d0c22c9b7508194a8c04e825ec9734f62816d4c2d3836f085b9a4d6bb97f7af0ec2a85041948a5bfd2bebb5a1a5339ce729ed0965d2ff1598f3e1e533b95266c4655613c4e21abd7bb0ac82ddc8b4d58331c10c31c8726a981eb3d30f4e28e9863814f42bcdb1666cfa6729db5206317db924f669482766561ad27259112aeb6ba8970fd52fee40208afed5fca1e679942c532456e1aac12a242b3f56f55b592fd569fb384291a0b4ff0d8682e2d9caa8d46386f0ffa8a30aa9541380801f27f5b60246c574b1ca170dd2ea886bfe473ad6e055d09bb62ff5850410e7b231aeea855da2aa8a41b79ff88ecc025902d5298ddeb2a84f2caa44f7fce1912de93750c51c3751f352a5034d253f986699495c1fd794bf0c8be082132943c1896959f231804762f5559b336de265e0370c719cd9ede74524f81dcb8b113a10e29df401290276c786cd4cc09d5d7e51492a054b087d25001c13bdc4bf88100c13d9221e2551ce580e9ed18cebd617aff59fe07eb683a72bfb8d716e84a66a252807fc2c67a452ab3452569a9bd95012a5f94f7e24bb6fa5e83a53713ec4dd8f9b50865730b71fe236aa94f6bd2d34a8c97f4ba56ca4bd803cfac2a9f0953420e4fe2eb6862e041b5540592d9200a09f5e320e9a6ddbc34585810912d0dccc79697064241a9d960d88a941075580053b89728f0e1e893f31b71b12da846bae282b62ca40f9dc61598b2ee2c32dd7708064ab0ac6941528e99a36c3431c5988949973599e47c4988655f5ec961646e9933af5bc9490d159f90a0fb61fd81c8eb8b4771298592e20f3af206aab923a862a3d9570344d21e271588984019e7eff9a8d581442f954c4770eac33e2e251f0c6c8e10662837feffc8245cb11920f7629718d6b985651616e9efbf30c5130bfd0111922889ae233631b11014f1206705d7a93c0f14994f68a82a14e93528350f01189a024391c97ed78222a2300482499a916a2812cc234863a467f923e046446067cf1f31f120a1d546a834a7c360e53fe5c9f0c8d712064860bfaefb7f02a0f3026bb45e4fe73c893c702c86e4bb6a3a5420af1f11c27b43090bf5701810f514eb6ac78165854181f0f1dd3ee0b53263ac31b5dc50f3653eea8df19476688f15f9603612a92d9e098aeca8a5ea8142336fd2b8252d6c2404ab3888500722117d23f50d6231f6876d6b6f2a26eb6b4e58c08877ef647d11be216c15b021e5e33f28a7e5660dbdba11ab3850b0393fce875a0a6ac79fcb21c7451d94e35bdbcbf4d778a80e9d7f51e6b18ebb9e70a454b3b0a26415f1184d67df86be84e68f27e5688b75b5d5748229b4cce523b09deda1b00362eb65298b03a99b60f58483d025c8a5a721dd9a41cd5a248b9d42bfd72202d4012b8b395264d765dae581d182b8e199e48f139174088bea5a1deabd1713464be68240dfdbd662251e2d264b29358c20f646c61fd86ec06d824c2271fb0318f10a27dcd97a9b0e2d3a04c795ad3e0d8e6e9f37a393880d7d3fece448d02d8defc51d8525032931754eca9756bfa267700d8538113b11dd8d704a24225f29ceda521abd31d06bc34e8bf6373d3d5c7b59b0835b099830ad6a61ee3a4fd5cbb92a2f66bc8b30cd40c89cd434e833d104c6daf9df3d67a84800800bbf46a75862ae4b13e0323358e492ec085b914a2fbff3d28e98d339a616f258f9efdc8068be066360848fb02be144fff1197f7ed3a7fc8d9311913aeb9dd4954519adb2300ce2ef744ba0528ec3948f1336df9121292b85cd95fa5a6f990b6a690d3c3bad16359cf77e4329e2fc89054ac03faf94ec4f69cd549606e09660c23f92a2cbf2bb2bd46dc13dc99f772eef219bd41c24d50be0706724fe20cd1e1c26226fe3460bf41cc057c782bc89f3e5a9b74202c9842638882dfd5ff8248d1c2071ff8fc52d22405c1fd91d99e4f1ec0170a1bd4479c560c8ed684a345fb8b5ccbe461252190c362936999eda71772497bce26205def90fafa4411d057e6039216630caa963a7196a1746b59e73b91e0f328c592ecac14cc38d466dd97792a5ae03060b5e26050abab52df9863e1f24d8914447b71c39a8a42a38241dcefa154e69ef201ebec2e2df37143a528bbe324e5b2d4687b2b6da4b7c898baebf42e71e3e645e280bc84080b5f0641518f7f97e89ebe074be229625d596d321cf0cad8e358a1ae130e0d56453b8beccee1a8f4c5c5abe542b18e6c5e58abe3e6eb7188c54ce02afd9092bb2a22d2419e0eba9df7e0ac2ac8a7d6144e62b2f28a4083b6d4bad4134ca50e725c1d82d288d15ae044c41c49a71c6f4e68175a0fcfd41f8f4a0d7f6fd64276719970644709808a528d1bad143be33482922ad7d31345f76290038fbaaf54aa8ad795ceab8df11070a063b79012c831837f4e1b969b685d8d88e440211c679a264df692cf4959ac96ccd1fb976b009cb472a13a8f7b853d16a4adb06d195a6e60dbc9dafb4a103fdbb06a4ff4baaa193046aca8f69f3efe19be810d08bc6b83c11087954475d0e38e2f9829566072c3e69d3347ac3e4f25310d88b9072a9c48278834e70901fc7a082f5b5e0f09a3f85a3253603a7d10011aa11fc30d5293c4d57fe56992342a2e66eb60346f2d7f6c4d18dd8cc6d7683aee6473a3f0f9ea8e6fd1f02391f823c5f045cdb20cc6dff0ea2269544d9dcad8e76794c57a5f87e610bfc3bd22b07d7f94f00786c1cc6c92d001855989b831bbf7fe5d189686f6ae52ae67f91f8f87bad86f978fc5278a060df3c0948a2febe4639dea548d8eced34292bead3d74a7348132d6604b9b6f68546f35e1977eb2e45ce609a0a25db364f2350db7632f7dee01bca235b6e44e27072cc66853c6969638e0cf958e66307c6636ec5a2c1ce37a0ce35c79e2204cb1ace371115124e8249aa228173477f44be82abaa6862ad982f5b7a6d87948fdb67376105d981e22644c57822cd9801eb644bbf581b3163688052b72550b121e3b6134234f3dbe69620b4fb9e2a1bb2d1ae85d4097a4386bc884e70190a4ad97fc47b8bfbfddbfd5d629e05b49f06a52876530a7aad3753c3bab87afa23cc85c21f94aa60e0cb25f220ff00a576e341df2d1917dec00aa8553fef603f1c1dd24aef491b932b6df84d784abeada098583e7b2ccc8d400408240b3fd58f4dabb56c648a5c3cef3019ccab07ee1930a7db4dc97e1845097bafffd58b9d22fa9ddcb9b704214fb7362132f3d094ddf959a159be08c1ef279465ca2f56fd7f2a23216346f91b8b0230a35cd75f8c694174e416054d2919350bff89ebcd1b67fcfcb7f821034eff4b839e85cefd86d1b995115eb8f782cdac6390cf3e284587ae3ac91b46843e51c7e32bcb98c6f3e6a68f53a2299ace4ac5a8f89ad3c8e9dd8f970763114fd0e61318c81517d4c7fbfcdb95d9eecc89792afcfa718ab46e947013247966188295370551c85aeb2ad091495c54fb4a341d45e4317650d498468407a5e1199088a057eac11f0f76efaff375e166833e0933de0cb6e978b7d55a51e4e57afe9a7df7330a170e30554c9bf2d36ed12191fe73e3a310c0cdeb3a47d940471cb04c563097bcfa93db221a7660f0233a8123e68b1b66df074bf566871ee0365bcc68ed170cccd943dea019fea530580e8eb98822fd28fee056b70b56b65b1282846a4f77a3c0ffdf97f2f20a6b72f870d6dc38b6692752c15dbee1776c39f804d74356cb4137fc65e16fd6bac017dd7667c9a10eb2d088d06f0e03a989e21b31bcdf30fa1b6e7de5487f30c45a28ff32b26c7307f6755ea7b5af20f4643dcce820c47e3c512350aa0b59a3918d2d842706078aa1f896971bcdb8addc668199029d26a543144d03d1fd65b49308b5b3ce0a0c167560a198682d5ae25f34554aa6f12f0595b363a34b1eb8563f6f535802b135908617c242eebb50b8cbc2cc6813c4f104b7c37e7ff34048304370ab13d30e8fe19a28bac5549f6e2931e9a3f8d442799d00ae94af7c6e3600cf35ac06d9fa50b2c4b7d4ef88514acdd8ef7200b2c0a91e05120ae8ec53b1d9d6636594205bff6f84ed927768352daf0fd9bd6e83e720e0cfd1cd73178f179bdc6a02042fb120ab33688bae58d6e380113f3cb6b21fabf2526460defd9c03c5c7a219055e1e4ca471c41710691872fbfcac1f50c8a1fe7d7dec17d66c33bd0bccc314a0b4e9a2631885a1f3df67dcba0f0e28300d7fb7b1f989221ef1a9d8b21b6cd08e1e1d6b4efb6600cfc46c87f3e12471f51a0f96afb200d41a441590afbd72d1e9e677df236ab6c112021ce5d0bbb529416bc1e3bb7d7d411ea98ae647a4b48e866f240673bd616b752bb3ba611878b4507b0959c2be4327dda8faf21e5f3bd10de804b518bc7ba1067bfc88aab2189e50a876a83f311e08e2948ba7f5055816cee44979616570b0acbb3aee9d45b91fd0928ff3a4b4761d71062e64826bd7337ab9c00fd1af0a30be04bf35a730cc076dc075f4bb25e68d28ccacf0f7b03d208162a1fca8d4722c8020492c4d403aad2a693384d438595dcaf405059f41348d722bff9a4be0c9e7f53b6fc9193312dc568c5c27e78d6bb0123329fe562b34e1bdd1e6a05ee1d976c14591336c4acf9e6e246268053441205bdea11090685ec2afaaddce46262d9c3f3f02dddb7402dc74d42fa25756738ee0fb1dd503e16267ab574833cd5014ec8deb322d0af6aefe3840f9ae81cf2d87adab820580e266c32ad6df2b966bc06954a0e62936974e6c5dd85d8b431f5208370c92c37fdad9fb78e891a14cd218e7ecc7d01601855464aaacd68d91700ccd2dc8be2e21ce6520bc8f219974cafc642041a63cfeed5fa331154e24a0413e67138017b31f4979565e63c852b7b6721d724c405f78e1f6b9dffba93f3de845596ff5c2b4241522dc592da4175999446ca2fc1d07781df2c2b01449540d2bb16d4375fbd5c98d8590909b872bc0ee18f50283a763b0d26944a5ef14087d37a1cbce9a914c2b35a5eaa2d5e129ce5a606041779a241e36ac0925b7c2e85f1c5eac5cc2326bfe3a514781feb269bb905f5bf766e7737b7579e160f3595ff9b9bbddb0fdf69d2c5b63f0de6263f0547bc288feee890cd0dcc3554286807ffa27f9aaddee0e0607e189951dc5017d6b4290cd44b4d87c470beaf52e8fc1aa7a226072fe0259db9942a90f0b691802a518d6109202300a002f40a1f66530dcceb9ab4ed4798ab94658fba2206f1468cc07cbdf075c9e62af29306acc39a83e844c61428d49c69228f9f052312967b7968751ff3f9f4aec3651353a0163dcf28746c7d6b0abbdf96edc932941329dc71b4936a37534ddcba36408878133a6da6ec8939c08a158fa505da4b4e5d5952368a9b4d1328cf81b040a4e8c01267def160579053da33eef8a8589516c5b90f24033c349b6ca3607009a12e63f94de3d97b39ffe77d01382703e303fdb687908e747906c9d968f8ce8890a5c0b9edac2dda1741bdd1bd27403e1cac94ddb64eff7070b8e0537e226058f60f92c0b23dc6f8b40d9b10584bc44a6928fd312cfa208998dc1361a7ce99919ef210351f21e186aed994347627fe573a15b6f7dd48a6cce38944c75f3d53dc2f1ff2e56ef36f4fe6d3c214f8abdaca68be78257fd3a87c8bbca13429ad7d77ac09e3ea6e9aaf23f3d9ad02f0328246983b93aa0a4a7ba91fe82861b7978e49d823e48bf063005b4eb81a24a8fec76aad56b18b4344073bb6fae7d96010922e2a1519b29ecff9b531f5310eb6b396c3e53e1245494981cb9f5ce2fcce77d12a134fcdaf5ec3fb1818732e77ea8e4bda4be8a63442e50839b2e91cd5c432755eda3b4e9a3c0e2159b0ee9be60203dc6d80f05807fc2189d9b25aa3eb20368ade9161deeca609928a0878599a66ba10ee1c82f476f47ea278d67c6153c126a640c53e2b0dc59e3c19914e0397b2b54c65f72345aa2f18572e7184d65248f49376fc1b48e3bce390ed455da1ad06888bcd1cb7bcac6f9f367eaa00ef6891470c43255766a7a6dda124a6d7c4edad5117cb3b070ed9213a55da93f85b03eff0040649e7b9c5aeb65fbeda528252bd31a41891a99f5915291050b59ecd234c2c4a860f1f459f10095c8866e1754f69050c327fb4589c00507ef8765e87393ee57d4298e005fff5dd473866b2111f194f3143b688095a1397acc2f96e8460f86ae96179caf1073bd0d239e19a41d533710c920ef4164feefa168e9c19df6795a4564b0d532b423f5dd16b7eb61588a7480fea0f6f212e04fe8053728567547d011eb145863a934c31d7c069ee286e3f1581abba4aa6fd95f72c5c81792ff90627d1fc4dbadf623e80350c06b0b138ac5ad4f88ca8599b04c65acf7e8b3b0791092eb93b9685847a2d7bb2e5327236e3b869e4df5bcb3d76ba63c3a44223a779e7937ecd7ab974e07a8a3f381844536ba91e85fd14bff200a9bbdd5914417aa3c22e5777ea5000724298c3a4e2937a6c0e1e443350b786f09d91bacb247900f651c3d7be974ec4e757ec449b047beca1dce60f8551ee8c2a594b1277969a488bed1466cba20e8283d618b1b1ef5885d3cc2e72cbf0e393d4117781ce8611d1adc8aaf15f841dd284c4182b2263b598754ba30ad3826dceac537f02669e25afd70847296ac3d79209f4b4f135abbd4c1f4ac9ed4801e9b2647b4bcc1b0c23d90d41d30207d704ca9da15ecb90fba069e677165b4822e9a6f8e53c730693ec4b83491c8628f78ef84f8405b36d9a9f1354fccd82b12a5d66bc27ce300af332135fa420d86f8b02980c88c2192048a94470300300223b3c4478d7c68e4eb2678b99c0fe8b233404a9aea84976926c417e0a55c3bdd8812a53261c261d9bd410207475fb9ee5a745768ab32234957440b7a23a4784d5c300d09845d27ccf7d63e2340bf14bf5580b32f06bc98cf1b06be0762fb8e2effcdb94be17a6f0df70fdac6ac15e5cf116605fe407a4210eea9dfb313a4f5ec84e35f795bf2067d029feb44796fa298bbd4ccff932aca8ef63f74d1114f919b550b713e11012e578d2d551182ea02f9d531d0a75f7068881c1a8e0f68ae841abcdecf6225e7cde2d565312cdb926459aee06f963e66230e376e991663b354360f0b73fba4e7ac5507a54b8d03c117189b4f100926a1459a9fe8ff537e480274f769cc6e91c699093f3e57d55583b1120d66e7678de4a1c4f0d1a623ce7020559acabf583df422db2005b7899c80e589e1b5c8acdd38ae90ec8cd864cb8275a001fe4f0581051fa5eda2ac7a5c27f0b13c0639f3c13ed7e01134588efa49c64ea2b5962d56f04fb5a8d376b9de831ca297e778c3477d3281a6a2d968fe85449631401e04710ec4211cf0d6c9314586bee9ace8b195e86b197ded4ca22dbe678194dc8200e9e90aab3853bf93f1d82ac34d2acc64005663d261900fce8345d817290321b6b69fc911791f9b75369f418ccad0391f756fecceccdb8546ddd07b3da45d634efffb15a79887dda85b61a92a8b7d31e48c3a24c551367c83de8691aa626f75c0821c0a51e7dce91512cae90f55fbc07a084541e6c2d9244ec2a04db1f87d04e1e9626f1a1643f61c9624743b6ea2404332bbccd3bd5181ac0405af9791bd8454a45eedc8062f47d53c43432ed44fb04f95d4140ad78ed4ef6691b46c96a6897430b0219dabbcca3522b0d651b34578da4867d327fd4fffa6bda30350b394bd7318075377ccbb85ea795362b4682baa59493125caf0e4b30444ab2a9ee900779d14583d2afa0c39ee95cec03b87b3a3ed7b51d8f7888b94fc11513f171e1e0fdcb026da852fac5a2c4d12d088743cb473d8cd99182a96aaeabf18274ea5ac94f339f4f241406fecb496127f4f781ee5ed94061b167ecbaef10f95407b3094f87422400e442f8f1ff4ddbf81952c80a61439ec83f0ee7ca37090f43ec076ce819167637cb2450feabb704a62ed45d1cf2d1dbd11ef55c8c89508791ee5804afef460a6f6174e922e715204c83755e07bb8e1f4ae6a7d9fa9681f6213cc3731ac47bff8df3adac67673f95a91f7033cf4030fa6324d25a4c65bd2f91aa9971e4cf5026cc5ee96b1fb0b71a5eb6ab0e158f30421579fa6a0188adaaa47e19172e0055ef33d9d65e70ce8bcc7ea53ca49bcf523bf0cbe443df12e4379f27f757fa055f771291118e845cb9f85e3cf1e2b5d618e6c2a9de1c5889e910d0b20422f4c54b606b716bd8f545530ae42eab8eede18c4b902ebb4884e0287629680104404d846ae7c9ec897badc2148562b6f38fc503e9b3800a7ca7f72202f4bc9b995e02862266cbc9789c8c2c3df7b18b03b11538f07ca29566f3e9c411d6fc4e448407e7cea93e7bc2c7302141ce4bfe03f61ff063b5a4093ef56dbe1d3db803d4fe7966bf23c55d6eb2cc889a666560ede5df0c85a633d540b26ff0024557fd97928d2a838a7fe0c208c9a167338bca621e29ec94b81bdea6505c130ffe6478f1e961913ce0b4f60b99952505a6f0592413628cf58a4e204fef85e2e2983d5120311efa61582a9bda34e3971469460c32718cc6c879d4e8e8f3c12412b68663c0faf42a8e5983dac7ef6bfa8b589eae1955a669f9e85c00237692c9c198143e2d4205921e4b6f25f88cdd6eb42c0d9dc120c75b1aeed5048a5adf04e132f1b712f093887aa9c509489a1239909ca39959b8241d8138502cc8501f063c42443856d07515447196b84673d97ecf0f7c3a46bbb0342dba3cc755c7d91fa721c0d52b1562e6d3a9a433571c75551d794163c9cc811495c508cbbf029b0400a4ebd0699b0a2f5b7fb5ddd1846c15a949dc09db494393977842cdba3528af48d8d516a6e2ae31f2ed0f4c363f0e3bcf810b188f1cd6d786c711ec15f359d0451de79d0828c0d72fe639c9d5076d692b36d3cbacab204d39b3cedc95207da13c41891400e1596bf6680080c08ebcecd6dba65887c780a43e14f73666b47974aa78840055c410cc5e0404ec1a491cdbc056d4576e6d5ec2e5d5a936b4e5edc54d17ce9b1126cb2e660b5fd7989c0342034fe5cdcaadc7a700d1a17c126fb884418a62cc3ef0457c66f55cb78be99dcfa85fb2f607359837ec05b9b9041d6badc038abec51a3c8eea636e1c7c49f8fc1b3167eba483a97294649051b26917076ad10e1438bec577e577a36b5621c7ad606a9db42f7a7ab2142505875daa430c62aa18eabcd5ff6c8feb8374b9fbcbac8c2e880c96bd85f42348ea47a340ff0fb48f5a9f08210fc3a2d28317122d4675f99eae9a5700dba91d595048c5e72f70f2fc6b9369404b7ccb99c0256a6c1f5a01cc4ebeadb4dd25a5d380f398824024666a098745cb019e9140b7ef6907037e65f09b68621b0db3390406544407bb88728f31270d33a9673b2ab589f3f123270a6ea4d21b0446f252cdf81633e011a9b8d66f40ac8fae2abe7ac9aa0d5009a352cdb3c42eb9636f93f86e67531201e32eb00329add1e4d40121c8175954ea0d8c5dca03eb98872e67e438b4acf3491c876c39df622bc59b73fad563b9f83e4335b480323640d04052af341a8efb7682eed6ec750df956086a67cef0c16748d90499744d9459b3871adbb042a186a64abe97f4d87d0d47a1e1a08a16158752489040d901f284243da8d7cab96dd9559c9c76ce14651cb3f3be402e8e294dc36593356ba23a517071af04d0b57dc07ee2cc043223e067717a414f44bed54408f5ff1d43cafd3a93bf4ee0ae6483a14add40f3d830982c92a32b856a765d1ce37ab4bcb4e6094643ebfec7eca9059542f45c5acf8d607d0c7f00b84b49ddf765d02ae20d025f4783412eca396dc70290348b6d0cf494cd65273aa7890d4a587aed12ade34d4c0a13f9567424f29483cf3ef3cdfecfdeec6f90ec4e310eeb8eb25df1dad9ea0b40623c50c1357997591bdf42e52d957a24e5f446d2c3b21a6b4acccaa48a8b8cbe1265048ff6540b01cbb70bcc9f1bbc9087dcae68a2cdd0ee55d8207c65daec58923997f18ece57e9a7b5c5b6c5353db929e1a11944fc169e0930e15725efeee1875ffd862af390653f71b67c1e4c3bfdba055bb2df6a50a69703059989dcc108e9e14dc37cbc5a8904e94841db4ba5e64754d7cee67fc9fe02bcce134f08fe7cd806cf6a8d850f5292ef570b3b3ce37b7c76de84391ac3fe55ca260273703b11d8abe7b78186e8ae5ec778f65c12da40e8eac580a70d83e6a3b0817d9710daeba299cc4de255086c4a0898645b347b05ccbff9ec111cbceea523f3c098ccde3807df84daab9789bf85386e9933ef04a20cc79c2212d98f4ab0e5822102cc62195439514afa020045dd9bab4e89279472f240119d601e885ada824ea192725fbc78d325c82b15710cd903919850554b68174b3b8469d02eb1e5c65342e9cefe0c15c3b51436b2bfb9cca56594f78d7ed5bb0d2e272d21c529bcce613e1199c8ff6300615268e883f3b5ad879fd09f5886b97516e048d1fa4cd54d7e668709bcef06baa4b47a26b6b025b46a8e914b901c8c2c1296a8121f6bcea1631b3e724fdce92f53c054ed15e31ea29edb2b1821a3ecf4eec9ae45424d14bb4f7a4294ee7673036f086f15aa20f4151559766195dfc26ef3743ecc8d6b97910ab056c73ec37454df9acf15f104c0f47c85b1351e54041db97e0c31374694ddf5a88accff9e9b475140a88d9f5bb6a825e6573f56dbe7574250db6c3d9f2c5efd651883f21024beda4cb4330ded857a891ab008ae2b238eb59d4893217e4180fdce196f439fc53e56bc5d4453417deb2c0d89aaddc47aba000469dbef4be4a036a3967394c60713fdd2bc5b03cceda2c8d071792c2fefd11d63d35a2dd66c5fc3859b6984724d471e4c33850a814955a8b0a6ebc1df4690cd1e68431f808bde1eb2bc8776028c4484158439053cc6113c68355fb8f409d30528971ecaa0064c87028e8b8974c73e46aa68e9b04258865905af74ffc998a39160acf68effff4ee0714945d8f9de31b80a49860a87303b0e512ff01bbb2cca2c90981c51a9d52ed7e091e9e049e2fab3671a0be428a69e53eab57c5501f288e36a347fc3f06c89b179a741e59919cbf0574a8017f825fe050489f6aea012fdeb4c3484fe455d4d056a8bf34e03f30b866032e250f3a8ed6a060415b172d84cb29c964442963c31b3e242c520a792f95ab218b4c9acc13484b9a2062685bdee7520c79e9c3115a479b742c6fb6b6cb088c74784c7ab1457fbd753c0ca1220c4712494adb4d1804c5dae3e49c9023885ef263090b4a8c11688e00d1fc63f083f2d1089964bc4b164cc6d9b79568fa4d6ae2f4714a5521680e27ef0c4bf0ae5f7c8daa1ad39e24a6c065e021d166ba05b1b20535374b20f5c611d6c04b1e7b9d71caf09076d0117480ed377b86d92e992183e1ad81a99b65ed4c190e7f9df647f34c83c1990d7263117f2a44cd64000414623985b0b2d15846f1488a33ba0daf5a941403802d0d3624b105ce30b7f346af5e53c7a7b826c167a4a38ff3ddca79027619d20e2a7f871b9c4a042dc529981040a39cc1a65ba1db8b620466e863d6cfdd6b3060c7781455dc9a1aa16370e41912ea43db1ed519e35207a2f8b3e27abed020a300087230e2f1b4048a593bf8d0066212b5836ced6d56292d3017f46f2c44c1693fce19ab69046dd964b0d2f0f24f5164325d9c145a2285c7f07e80615a579fb86a996d64b6ac8ec544c5cd8094dbe72c2d548503c2a5df80d94f2fe821716a18f3a471e63364a4e40f7e0eaf70912af81eaa9d7797f8ad34c81daa4f0374b1989e895962ce9c4e004c9cd9dbd068a41e50c4f3f349097fec249cb1f04bd060245d4eade4fb4c0584482a214a38c8e99eef99a793417934854cde716f875a2df6b20460d20a9a871358058822db19e1fd74c9bdf4667ea2836b483c06ac2ab7a0d10f79850cda9e9d3e0352064558d14ac821304f18b8f9f16c1eefb05b4b4976b7dc01ff51bfbd724c0e2a115806e9136832ec64767a958b101838a0a3c2692bfbb6afa12488556b2015876b28ab55b663f89a7a0731e12b28138dd2f50a275abe153caf4abc950c8a7c5f4c4a506aed02640b736c3874125dc39ed4d31dcc0b84bb947c3e506d7f40d78051ac529047d5771919e277d8d0f391d6f086c208257d923cf43ccfd89d05aa5044e9de9a1334e36c1f161e71a947f776baa2964034051012f30a61804e6afbaae2fda68a8b627d239e1e34e81c375e0e5d0badd10b79b50c01fa1d81da65932ff651536e58d86653795d2957601230fda9a64a36b10582acd82d9607bce4d0607e2cf773c71f9e537b049f88e0c946942f9bd3207c96be9d0a05e053a62966b59f27bbf716063cd0e28965d0873d503eaac70f9e0915ebbcbcb852ddd1823f2a67453298e80265a7e1ab4c936b1c9e2ca87ec1b58d1da0eccefa4a3c176e134bc0603d6e2ec3580f315b703128133ecd39b7740a8343015070637d37f9b3345df12d7cad114de6b76dd182a5dcfec9da01ce2737ff8559bd6b3a7d6da5cd520aa034d4898848c0957ced6a0ea33794436925e7c71665771c1e9310997fc5d4348787cae234442c707775fb64bf78f735e7a0477f82d96372fc0e5d8ce04975924f6d05aee980a8bc383b31f551816d6d5a3790f732656e93299af92cc9f608310030f072ab027548116e4a92c5a88830caec966095742aed0249a40e5dc7f73e5c1b752ac6b8d664b0c03590ef398eb6553af67dcb8f71ce852df0e55ede5e4bdd8da169c70751da50e5a22d52fbcd570e0b22504c6795a0ee211f6d780fbea2635181fb5d8cb71af5ddef8c26a9c2890a4a5c55f6bf322072444a35f09777b2f8912cbe6de0f8cec0bf4a5d12a571778fc591dc7aaca757c37015c20e1558e0ef16cd16a536cbb440bfb81ea63848dc67d74ee0862ba93b292d3839179d676af053886372ead8d0c10ef15313340310c83167c80fc846f9b677a7f4798377132a7443c4b1ebe4531ae61eb0a8f807932b7d88c70b01d088a439f69e2f898b0d3640042c7fe75050a29f8ab021161c65f8c139d5926d3818cd322c7d4421652f45a87d418e13a1cd5b8b4e32a9f633056aac1810de39bb702344ce61525dab67f33966a707be62ff78e9582d1dead72ccf4ea9ad8fe7f546aecb17dbc03d28ec7caec6d989e6122ea06e9ed6ca95aa3d84438de45158348090b59b552324fa99917336465d25e78ccdab5db0e0834f8e120c34aa9ff917df48b7bd6947ce748d86d41ea14cb4e49868b1ee448c2bf6abbdb6a8da3530c7bfb7a955d2feae6ea59d6c45e2bcc4d5fd4c5845180ae0415b3547d60aeeba1fdaa4380647d4ddc33054a9521562b5b0a0498ad8a23e535914e56b6a2f259e5ca53e42b699143a724a885f132e3ee0a7d8a2a2b01585b74d50da415c960b625a3f0584b60e8caa9dab099e1ba00d3b0a36e348a3cb592500c0118b470f6e3b36a27cc6cb52b1efa4e87e0e5151188649790b04ba112d9cbd7ce38e2069d894110a9cd242b7574850fee71d0a64d251febefed08da0a5ef05c350bf633b520c7850193adc126ffbf14a58a3b8875282025a5b8b783841a461e3f65a90a735af632c7050d7a7aa8c252ca2d646fd02254fc0c5f8d12ba4c38394fbdc395d8653ffe4ecb1614c64065f3c738a2fa402c1939f45434218f245bc0333a6a9ed72ac21c659edcdd380a643092ac6344d0d10aa2460f7784f7c81001d3dad8b8eff535fa305acdba969a5f9b9fa46f09c3767b6e99160837ca3e65abb7251b4e0bb13665216209f5c3050063fb9746579b69a3d33e7cd61111434f616af2b239ebbdebd0015196320db080a0f24c1b1e9c21cc4821211c4e8008b977551ee8e6d45e930844e2feb9a1642d6808123a85de80b4c182b61f07d80e7b62c6b251417808686ebcd65ebd3a21d1eaba7b1a5ef0c1a9d53daf9f0d5f051be5c89e23f9e3f876b26498433f52d24345ab21631719412bfc4d398493eecbc2d559a93fb529b7048b32763098bf9da0da28fcadbc58354a4d4f7ef4016397870ce89b686e131f31f73a663dddcd8daa99b1135dbfd9fbf9325cc878e5f3eb3c4cba79dc402a75f79a7ea6084b70dd08a9591427b8f6795203b530db5d36a7aa899dde432717b979757587135c9d060c94ea359494c8872a4f7fdd42f61d424c23e6a1a70836e893c6106f8caf282636d5512d5f0f50a7884d356a9110552bab0e7cbb7f13edddc60909264258bbc80e1fee9a07a53b2f5e505fb62768f7ad777f3dcf29754c8e8f16e406fc27e8f546a3570a021178705497a7daf0acdb5a97192b66b025d6615e99f76ef099dafb07bcef84ca10bf18a0fa80d59e3f861cf42e30fdf87a5fb1615ec753128e3bd2251996f891e0e1938c52de8ad121c6e0b0b162f4912217fc3c0dda41b6049cb4c77d6f27e621b1363d3070cf19cf76d2993da51c417e53ab025ac769bdee58e0937f17132ba0c8ffed736ad53f4e3147caf00614fd1ad4b316d38d27d4b24c828b8461e924c031e2c50e8fc46ac22c9511b9b0a25a3298a2d1c038dabc23b0ad36ccf220ec68afc7f1942c8b15d9a329b049201b8a10901c03ddd3a01bc8942ae717895c9a632c202987c271b41518c6bf58aa7d293f71865608b97cb3348b123b7635307b73284a46d5f1bbd2767da964632c69d109aa98e520a420c2030767e2b0149c2733dd32108c555bd7e9959dc360da380085968e22455a98829b3a42eb08789075358a8e9a204e3555f2b08070e5db6a993a7082ea68114db1a6692b2f07605cf1a8c7302e040e39897427f0045d20ff4163763174278a8fd7d48b5554d444b358933b1fcd19721995d9c868caeddf972db8892d0ac40e42bd3b1c4055a91d378882de3148dc0337dab6cd5e7033ec0015fb322ba34ba400f2b28bdfc44ee77c67b617c8e80fbf50aaee90100b1a23d8e71fb5991b890b499e969521467710c27c1b566804070732b87ed6e72b18a114498551388581b62995a2989699b26087ebdae73406296929655214a710b76583bdd48fd7e70d5b660accaf2140be6d9692037d577e27dc49ac32aaff288b20d258815274bc41d76f0562169e9f69155b003d395c44e937de1208af64753e0e62329aa6663228a3a45dded975a180d78e64663c4a43176630cf05bed1b41a3bd67567c5de3cdaae5e42a4fdb1b6e3c2747d437a8381bd0c62afe053f5fe133f14b557b2e81dfc5d0aafbce68d1104f92e56674d9f227c5b45d5ff6abf57a731e44fb960a18b35b139e87b6e7583316ec6ff0064d81e395e833a3d61d14dc15bf70b197ae1a39e47d5d3892bea389b1a46472fb13416f906f22cf11d9c49c2a9858b678cbe7637df3998b2b3c5b3ff0a55c141e2e818817999c5057aca609ff426807322ed5a125165bda722716444ef0b8dbcdb9b18bf79dc6ee5f2bf9b78a99e7de84986b533a1f38186c16258ea818561f667590583925cd85614c83f5a78109d650f1917096b3d163a634a67c7e1a1301b9d8b4ad5445b815936b94364d459951fbe1a73d7c1db035dd1ae0223234254da1bcc1f680f95c57b60c5bf11638cdeea307101f633d8614981b09b3458ece96b497d1880883768af286e2f753e951c5e5c8e3c1bae1e34c49875f9a44d422c96d237ec4c082b6cb9043510c9e45caf686d315f7b01e4dc8af39a59961f6b9c8aad40465b94f02530b7391369c615c9264c94514a43d55c304453c61c566851a84033fb37ee12fd670c390d395c5c52515381443a45b8fc9c5e6520644bb7825e8808958b29d5c660013c02a0d98bb524724dad4543c7bb9474fe5e780d28f8e22d63ee5a29b8ad6622e768a9d251a0ba56842bb959d7ad8d1eeb94aad44b2f28e4de14adb6820d365e0c05ac61df8be2aec6a0198b56de4d5aa65f1b75fd4e0f99d0e3fb858d9ad8c1f51070890d601060f973a04558d8a55391dde3237c021849420e764fc44a85208c3c3e1d9fe360d420492cf8331baa589a65fb97cdc8e657fb055582e09d4b79f8f5061517a521937a2a8f720a557b9dde0cf2650205a76b693104efab544f9867bc18b36616fd6afb20b869986cbcd2a32eb4ba0e30d4e94d683cebaa80d1440e25f23b1fa51eb9c946c54fcbf4ecf0ab9533c544339f27d13e3a0751c91eab087b09083e546794679d8a1a1557178983bb1dfb7e2d08428d4c4555b325f13a78b205f930f52ac25474defe830ffbcba7a2eda6f037b4234103a875e1b804b31e23750191a3ace7c1617197c9b6d9d88f3decc9d1fbee35542388061aacbddea228a731c1ae00fc7775756f519b87652c0710dda46aa8d63292b5151a6d9de9b1501e3b7b96cc58cf874651cc1023e9b97c23130ec51c3131be14213d2c759fc715a27b281ebbfde9ed0bbdac19a10f02e3ed5ce52938a1abdb2de12668a1fac534230751450ef5a3f195849002d14307d0e326477bf8248c09a0679e97e6bf2ca86d8ed24f64d03ad9051e3d21f22e9850ae10721d7b0434477dbb8a6ed63631492bb03c0904ddfba80aa8d5c75f638e40491445e66a8eaacf504edf47b58de15d2c62456878d10b63fb8f3fa390377e67b7c94d12e48b6fcb0be9c24826e8ab10532d39bee9b4c008089987de481a165fa8df9894d828fd633e5b5389f793fdb4b08723dee5c3405abf878753c51feaa4f5550e1e0e2542d4cfafa4b159db6053347343fa57f031f4fd19e5129e18ca1246485a4c0007cc8cb1d5f0825115707b364823d7e54610e25e1eff07769e002d8d4e3eedb34ab497bd3e4e4c7d4894570805e75fb98aaed00873526b2c33af88e0d5fa39aa26bf63cb597774fa0ff46389afd9c49c8b4bc111cd0bfefce791d94325e255f31e456685acc051649e35e1116409163bfff7bb084a2b5ab835af12bf6a8f6e3735261e3aefe8c4146e0f65fffe050393e58ea30f157ae9bc973d2631934a409144862b587c547fa73fe2c9d15b2b902b532db7335f3e56a00cdaad3b39f7190fa6d21bdd05a64f49786c238554ca51038bd67cb2653384e9eead82cc43846ec66b65bc78f72350f2528c03cbbd45ed11438134342cf384168cb28fe9cd1b9407062f526b87910677a3fb63306210f378db1f07b879915f072526b6930022305bdbdf6b011b18ad8d510c1424efde2a6b5f9b23acfec05960366dc164fea1b9bdf8abcaedac46a4eea146878d2a2a90769336f6046a8a2c0add69fabcc22658d8b73c6055631f72c9b8f8ce0aad9aa714c89757df70e984030e3e60d9bda3c4f14c1c84f8072272ef94f8b085bd2293edc69e4d9b649a15e3b4156424db19cab9dfc8532f94feadeadbd466da62ee003e7bff9095204baba5ca6430357f8ad08cdb06c268d8c29467b13eef5d2506d231faec44651cfbb728420e54d7bf431a8fad1920e4cee9f9631fe7c441b5a605c8f42f0af8f7686d06502c25220d9f58854f070de20b9a5318ed0bdeb6950afa67325bb7a1c9d103e966d1adb0709fd18d929b622cc948ead87764b3bd705b27fb0f5bff3acaaf642f541f0f7ff20f86c925bdf2c2fa1a3450d0dd4ae1bdba17966e3f3b581a9e1ba19f490ab88669670ec4a62466c01da37b90367a33c56e7fdbeba8dff5a1de0ceb55b11b5dec8af711dc28bf71c40ba9a4659fde3ef4ce376e0c89de783e31a5807f280e29f5728b2f87dc5b9ecce3e54e1c4d6c533df220b6e1e15904b8cdca5b486be2bea2162c261974612aa46ea0716350d18f5371bdd243a76d0e95b50dbe89561c8f8f3eb5f4bd8098c2cfb65c731c0cc86698243b0c178b09c6bcb6b51ab14283ad6990050db1a001d668c01a8d58a2116b34c682c658d1102b1a638d06ac51fbaae6eb26534d151d5d785cc9cc022561400423a2d108a54ea6ec2d339ddcf818d39e05f8336f99df6becd8091c88e6469c451ab044832897e24ce298491c318143103da7714d364d498b356695064492ce26f27d127554cb6a5db8aed06dde44b0f2d4d4318c4122b49bda2beadd59b306c6ae0765cb9df0122b23320a702efac3f744c0c980ff2579aa01fd9e5ad5a6832d4f741227e12f4a6a55ff55c48688f036765e220b87ac5fe0577085598bc5cfb77acf000c2c3a5167993d69d3062d503351f647cf3a2a8a054b8722ea77edc94851d7038af9b34cd2cb292831a1a3acc5afb5e94b73579f74b88ec2b1d8a22dd0e09b69daae4866328965fcd72a648c5201acf074be7410e171d3a969e0cc29718e6e6d8df5c979476d92392cfb0ccd1cc4805f3a52911514cf383981134671928436d4cd2f7070d156462e5dddd3e78b9717cb05ccc384eaccae69686537936c9147d711626c689dc8050f3f867b72972c9dad5d604ce09047681303fd4e57c13c3405a060fe597666300f41b770413fb391b6043a8580703b8645d1d02fb0d55821ca5146b7033032af6ea1a466efe2f292befd89359e13745add7c792c1f3b7a5bd1a8ca9d8241b0b849758166c6fbedbc58b2c4aec2ebe2acb47cab9c0540b901fea0020ceb187f4b1ee447df61ac63177d1a96ee37bb517e63f24872f6fdec23f8377e536f461f9b52e11f1af1d62b621bfd4e86ee1fdd7072138c2f4b928e49222df43b6a3f7065282273c1d55b5ee6de5f01f95af8a28f7d210b19add5392027d01b1075485f371b4bb805a76b5fd1ddbd134cae39187672774ed68c2beb7f2e1b5f732551c08d04956511413725df4757724b020fcba0f2647f57f249c75d588e058187fd94464a92993c61b8c96e4c311ad81d10cd2c4ab0da61d79f0a868795753dece6f3613b4d2136b1dca53be25720c254fceb490b752bed883414faa54d548a1e3e0c57728aea848e6d2cbcf4eecdc2ae671bcc8ce1b858ee9455f55165bac1b4a616de5ddf676322c42ed8e932802fffc0653506efb3af60d759e476c1a0232a1afbdef419f03ba2cd39a0dd9adb78817e21e38bcc43117e40d7000861ae6c8ecd30392c7ea0015f1010ed5ffdb536db62c67ef352752360ffdf17b27025cbc020376a3020a21cf7e59b87110f86c49b7746d06e1a6038141419ce1d8343a3cb421bf1a480331880a86fee033f59a45671f93bde41949321208ce96d77f43f8d7ae55a5917d0ddd3d359f43c447a99d79d73deabb5cf472411b73b630befed6fde033ba77b7a97ddb74ce47255c8a5f9dbb84b6cdb1178eba6e6035300288e3bf8ee4885362bdde656bb0fe0f195c17fa3f28bbe011ca5d4b4d593cdc85d0701ea251bf7d78bba5572a9216c5b8eaecaf11cce1f444ff121674a3d5bd4aeba9e19275f514279fb79bde5210b71e218e10c0bd40fca6229c31ef1bb0ab62314c3bdc196351e8435b66ea35790338e9e6a7792787f633cbc7b2a718b223630d91d6ad858f182a484035d8245b789a60c69c923561792f4331ee6fef78430e78e45a53f0ebf1360a3d68f6d0ae0a9d1dd3ba19df0f1b40406c7cb44dc27d2385a69e38afe7809b9da9042de0e56c4ad0f51ef896be7ce25793075692696fb00a3451e06035cf21c8e1af07f76d7072620e73bfd6510c34c0908b5b147476ae7873744290b86781b2672475e90006ddff74eba420cd701ed78fbc939df0b318b2675728de6af5a8839c30e3d25882e6531f228e43cfe2df8aaaa242213ebf224da6560ef43c8e81bf0943395641fea419f405601667069eaeaf594904db1f8aad934274ba91e3b51513d3e1d572496d05aadab3850683fc7aa40188b498e0b918938b4b3725abc10fe49ef2fb93676455b64f094aad0e2df282b73cfd4241252a5a2cbc286ffb163250cec8fd1b3f35001d760ca8b3705b1ed03393acd6769d3bb2ee80462c7c9ba1b53d929e2a07c261a5460eb5fb914a77c1022f0968c8487f2c632073254ee52665e6aed4455af3c3b855a5586859616e211aefd77acc45e1382f4d622166b7171f0238d3953851164a633d5ad6b66cd3bee1d2677046d99147afb23cbdd7032368ce43f5d96ef6c8c438074cca0b9b3bada5ffd79b8ea00ad8e7ba98ca4e64743c8cf459a7e16f324dfc491c32a8e14eaabdf35bdf8fee2ce625ce9a6a595b4a78cfb666d5e6ca09748d33163cf952a7da4d27af63186532fc2b0cafe41813035404e9a57495ed5d4b45eafa056c18e67ed0a389a282cae583ca36f616e9a84ed5ae5e213a16b07c36b6391c2f2c269ac7c6c2754a8284999492f056327592795202d2735483bceeef953ffcba1f0428ef3d3408fc3760f27ddeb053bc26e3109e29a0dfca1b67e2f32ba1b74c2683ff9ae697ab6e0e2c24417ffb2883c1192cc250b8c332aba04ed1af09c6d34f554b40b57fa201fa53c9c84cdf3218dfb44a455d321bdc4ea18284f227defdc9cc1f5ca010b20f23dacf24e1557141532c62468e94e1187fbda944bce6452e6c6fb883c39db0ea1e8c71db30f90e6b43e12223fb698627c5f46edde673895434f4d084f755b3e4e54c080d654554a57d3718c25696fcdac0c63c1089b10a8b26113acd31f86129f7656563f36168d8d7e6cd816c7a555c6662d0d2d8b57b54a04a8dcb7ac8eaa2f5d11571177e081256a30810b76aa81fb2c809bc370400cc11d1fe69cd1d144fc120648870712691a2e3506ec900ca1cf23ae75ccd5502e443510fb5b82fedc8b15014e769484d91da9995ad5b2650514ac9f09d2afd6d81770203b92e99654c83010821536cc582584436e41b640426c580438915dce8720b8306135ed9a95392457e2dab0e1cf407f880529666122e0a4e6e8be68beb5e9da34c5d8220ad4e61790e020564b2e2f190c6dd0251337e609f9fad17c4b88a0efdae5cbbcc8ea4c70cf1bae3f20784bb310c119d045fdb20510889048ceb2636a22af0df34665b29635f1553792024008b393b5fddc375743a38b49ea65a623d82610dc3f058d0b9d901981bd31a7502a13e5a7833f6ef4387cd4df7b7a62896e6b9d9f014a25fb41e79448974a6840ed006be2c4614555c38325ba22dfa626e60d46d564294f4464cee164ab7e9b419cdcb18ebd0a490106545f2905de19ecd7772968aa80e5d8ad2c748e0d1bb43f18a2e33faf5734c187432ffa11dfe2d00e06ef8e9b0cbf72743349161f184a2bf0744bde5d19c80944d08d8e962580fa3b0a518393d2d3ab4366a29085060a5181b0c362fb189fd8c78703ca77ab5254d143d38dcfbb8b0ad6c2636384d398754cd2aff4b24ee4194d7961b8c31980be3e5579a51b0d1ca184fd50223906d5181f5c117806582c30046efe2fa4b7eab07b47b84974defb1fcfba1600ead5d8aa88008eacf5639851a4ee34d73149bce2380e58fa9bdb35ed7833a99818c7034b9e7ed30b49f87cd0fc062e842cb4c38a80a0607c50138d2354a2d35841e908f38ce5a6a0180c21034079a0f905dc0459b41bff084c73309cce8f334b29b50af5e9c7a2861854274b4a8ea7eab4e48978aa8e463d2ac15f3dd5cc2359f3d8b881f754e4b0e56b86054a5f853920c5bb17ba08d85c0b18a0d798bacd1a6973464a645a910378d570a0675868bb9e73ea5e64bf7f8f438626a769b80a549abfbb4152a51f45c4e0f97c052665767bb94cad19856352ab3ebe6634ae96874e0f59f27cc256c91e7637aece4b94f1751006dcb017d10f555884bf189eb587e541f58a726b7c91561428cc630655ff7be7f814c12cfe5c1c5a99c5f495b855cdafb18df2c7b9cb9878fa560e1b226d41cc30d3f8222952b21af6ab8ca6ef2ba0542be064f0884409cce6f274852e1a979286bb97e036e97b240b62cb0ff7c545f5bf0098f1677aaf6d7a2f532458c5e3fe16a67cefc2b08f3d440bbd699a8785b5f849820672ebab6efbe92aeb5f2321f2aacfee87850ba8c7e17cbccc242facb2a89123efee57b8ebd12c9c4d25681e09770e057d04638d7fffa5f812eaeb27d8af1f10895c51d8801b350b8485c887c86751917133a2710a84053a32d07410d6d3b3cd8c88013ae84058907e72737e12400c57020dde778f0c381c5d947a8e92eeae4ac75e751f93964e2e108d9a61dfd6dc52c1a959818280bf82bb027e9893fdbb5209fdc3173f06f3a20558af597305660dcb8563c778b53a58508b90ab0e16d4f6a0bb3de85ca603ecf284713118416a18532b8499f857a0450cc37289294f9508666e1f38e9c43300eb84f8b245323b9a1068cfc4c55232fa9b74144983057e65c4cf71d18560880a6265c29eccb54fe6387a45ad49f60c266498212c0d16e841cf63e0a55d15d7c988b4f49d4a0c0e5625e30021213c97eca4e4f2e4c36f962370dbbc1d692849fb302cf8a95bc33047dc86006956777b4783629afc55b7e01cca869e0f4fb2e2b601700e747e832b213bed30c14e64041ddad9c282da3fd4a6e314f784e7dc39c3e752d8fb15eeb3fca42a2cd09459b47ee2a181025481f68b4364e278920aa32a2c5cabab8d5f260ee3fc8d997e5daf9f722d68fbe7c8d153f2fb41e1ae2e13a2ff51f7b9ba83271ef4b446390e60d14164fe1c68194606c3f1a7fdd4a45561216acb210f2bd6ae4aab6490fd83dd16dbba6fd349074f2d03da8c24fec3dc5eda776d01886636a629f6a5c51bd4fb876ad69bc04a524658885c587ff1ec33f188b0b0a4c479afff4e5d6c50c1c49169206a4c30ee73783a61e94c964487b7286e05b9aee6f35cb73ec68e00d8c805df4c9f4c25ba9e9b38ba5bd2bdaeaba9febe666c8f768263c8248e35b02c5375b1c632e35cc52d6ed2fa0ff0031c902eba11f5687a918f7aa1f5eae62a110bebb46081e7253dcc55b4b790349ee66df2575a6990841fb039274905203a9d8ff3c91a018040811fa67a4fa902e2fb6e076c2451f672951573307fb4fd538cc5f8a0bbd62fbdc87404a779c57f84f86f06f4d111c4fd3326f6512616003881c076057754d720acfb2f8bf4974dbe1a01b6c39b2caf773a03fac726c396d9e4129fc729c0e0d8693ddb69e75bb9213a48afd1718f56a10deb933508fb7059ca39cd40801f3124aca93bcbfc2390d9e5e857e502b602d3b911f764783c6f7c77b74a945ca1b08043d47a3a49dad7912fede9a598dd7fa5e061759bd52641308e706e3cc18b1c61e82e50c88cdc23ec271e8aec3d8443a5af0f99d3f15a631d0dbebb78756600606a5a8ef000bed8fea0447f73d320ffdfc4e69abc987e653ed962c0b8a6dd5263c6abc3ac80c3309259cb0d87ef67f12db3e0a4582260e0f80aec25a639d5a079af0e7504695bb6c45bc5792b287ba81839c0d15f87cd9dc537d22a96dc7067603c8b56b453ef65f66328adca9d83dfbf5ff2b23bfbd24d0ecc8030b58bed59ed36880393b7e6b820e1993d17d7dc2f53ba5914c3cfeaf51d94744003d98ab1f5d315fb4abbcb41cc46c640a9135e69da0f3cfd8970874a0bd61368a5ee157b731f64e53fe3e65c96b2f1b218d83f8772e60417e7a3ac975045a69bf31e13d3b2b35db7a219b84641d8bb8aa75da318fa0a768d4555d343f06ce0b3d09f9b3bda35d077886140c5a231981e712d4c95624c26a003eeffc710cce8dbc9d8c54f19d5c9a0a61994df49087df825622f82b3f8eeab4a1c7ca6b4a7f2ee991dd601c2483bae92ffb3c96388b3dfd75d8dd2e9d2dcb2fc9b8e863c0e620ac1f583daa995eefcf862f3f7854d37e15955f53705623cd124fabaf1835cdecf772fe580ee7449ee8d39cfa05342a9b4526dd63af5bf5bb5460b576d41bdacdd261968fee3329df0ed07848aceaa7a8ec21b7bba05c33d780d867d2d17ead491ccb93a81799c83e986bf1a4461b7ad055d324dc0eb5eb7d920350c21e82a8702cf9f53c8da690ebac660fd410dd06e679438e3f8feb90c323c9524c0eaba695f08dfcf0d844f3c7f3a6f19abd665d7100a0540764b4030b68af20c763f7d05a466be4787c19a080834739f1bb279e6b24c82448b0cc8e613b579c9b702e26c6417e56cbf003e8055ae127c1ada984c433a4d43675b7223f729b809cf451a5a75c06fb71a633ede657c976987901ec81effdae85bbe1dba43f81571a721de925ff0473713160038777ee9d77dd6c52695c68d27518c3b4ae855ccd67c00371d86f32c1869dd99c7788880bb4dbb59071d15476d06cea9f2fdd530c22a1c6f44f9b3f7c7e080be15a235b632e5efbc3330c4dd0d7c332a2444d663762b802eff8e3238cbd7b67189ed406b1ee65ec41358a2a193086860f22c421cdc9cdb979947e06e3e1ab7fedbede4514597ae09e455c0753cb73b9a5080c2a9d5e743819f51dc9ce83d93b32927140f6f12c47e4b442f86384fc45cc3d595ef093c4e0de93cf20ea888d9ffe643e973d79177450d3423a19ae6d4aa55225d06b9d1f6aaa3397074f93592132f1921399afc498af9f66ec599a9c4e531ef56190bcc53ec53406315ea16485c94a96a46d482db4d218b1e8463cf51ca46718df7920fd973d08c683a354066e8f0412b43b9befd6251386517755e4f8c718753f4d4d2e20e74c54eb61e74fbd8a38fe654f78fda17db737b5ab94afa8f3b633b2481b176cea914d07c1d9eeea375ee88df17c9832aaf37785fad75c536b5a186affcba77265ce32762f4211449a42147f7bc476e1d8bec4e3321a7f863fa1839f42e0651d50dc124cebcb89a5ce57164c36507db82317876e1648f9c79a14840192f55fc58ba27ccf0cc769597df617f4a39c6039170328cb10cf1f24b95c58fe4fe45579a0ca00dd080cee03b21f17d9f444fff33ca9eca0a7762ece509047b3cf3035fc34142cf509a57d16f86a72ed97662f50dcd296fb44163e90bb00eef9518aae2ee6e3f0e27c79dd414619bc3d5e0cfa786ddc34deef518113e7502cc2052162e31bb8ca1af942e487f1fd0b93bb531caffb0ce30ef8c41d3ad419fdfbd08a880f4b489eeb8ab34b3ca6c10e1e89e8a32e74bbcce952c14b72a8286b3e68f01f6313721c105b50ef8451c0819e2823f8b897584ce8840d7cb49fc36b19305d10121b89e15b99e6436481034f0a6c13c49f5e335d2127c2b4a8c032c77e9d746743f049c8b549c241a257de4875e8cbc073c8b5d4f94caad9646a42c20e74fe57b3747c2f90c5b31d09726f69556ad8df8dde3d8dea4bb98dcd754da1eade898f76622e9395851b42c5f90a759443280f345e78d618f033833306ad87d11675c7379d78e78534fe0f253efee38020aef60d929a6421ec86b0cba08fdfb829ce62aa2c6de8b811193573b8555e28c99ac2b56df4831f3a14b39b9c1eab7fc6e854d2f8529157cc8dfa2cdc75dcef8618aaf5d45d67d9f008563af14ed70a828dc5bff3225d8c58aa85acb0e9d6ea6ca8d827953db7ca5115452468eb9c7bdd1db741b8e2a49b9e574f3a5955fef642528c943b4637cafb0df2b4eee09430e06c605d7c80eacaaf14171a43267ddfe294731d93d8e9d92f9170f7299626520b097e501791e3640058b99f68e1c2f1a42917b0c90039da8c2d7af14e098c69e98eb1342d191641e4b6a8c5f6748f566b14439185b6b2573d2eba3b53432004265284296b5cdd69dd5497672d2d55e2de6bf08c5b8b63478600d6300fc7a25ebe204babd62c29a070459383b58c15a7c79581552789ccf482aa2acbaf5d0ab3689b21685326ec86882c8db5a45b53d9715fd27a6a85faf24cc52c02a7b65d628096f3aecd24210eeb12559b084d150b4a2ba5d76f9dd7cd81148468be10c125c7822c62fba9a16e2b76c221a9580e307d8929fbcc85efcf5199ff8e297495f2cde83950df4877c4c92fed8b2548ef6c0fc7852f754f7e8c396a426ee585a018d54db4b1fe5a81fbceefa73271b65cc492980f779dc927d47ea101e6a440ab23a0f5d8d5f75f0840025e7bc6f2dc65309cec0da706401891adaa4550d696bb92eff6c5533fff7fafed4107eb3e3825cc0e7d59fcc40c58eda6454250eafb797f624ab0d2261277a9af32e3bdda85a180372b749f45fde4cecad27733cd3d85ec49233a9314309f3716d8936c0b16601c5e146138c536927692b50e71909449d50f6a078dc85b0141ee8e29f6123c2d8666ce419c1a286387ded9f96af96a6c9a9c387b7ddcefc901226471b68eb631699281000c6367d42a392ee01916509d566390cd8fe6402a4085fc132a3a0c21ce39a183322315cb2e6417f040c25141eda855edc419f2c20919f4665843309003e4ad47d9a43f2ce219f509fcc92ad5b2002c40abbe5d32dbe3153f05ec32793f12c66563241d23f40959ef545b1c9f66ffe7dd11574a9f408538ed6a17fb9763b87e4b6525b5768335b85ef03fffe3d3008a902e284163adb0573c6b1cef999651c33779754aaa222f6ab563431a816c7a9a90938820174338c91ec486de804f78ed4a009eb9f26d32c87dd28af90cb16c3618d8378b616ceac1e77089f95c1ba6daec546f0da0b3465a4716f6855801ec905af3fb74aaad4f48c24a2b88151803e3186b1f386ff166736be92f4655c2978cea6168fd28baaf80d74203b602e0b7a82b3dac51f60c3c0ab8e6053890bbf723fbdfbeb2fa0e3909b6a2e029e4ba85524307eda8e1631b011a4e0a8baeff8a1e057843a86c088c53edac3c5695c147991735135258e888cec7855600b56a97d07170cea4458e231ca5def802875500cfea958ab7a21ddeb8520294defa87d841cebd6692489f867818013d7768828adab58abd4e8e91ac3940158c24328666d13e08622e1bbf8cd40c5315a840b08167da5ac7c32f66bfd0c54777a7e85bc11d557195e08129f329b179eada1f07b7901f34e8adbffd54e60c04628a19431ff1e185d4f9bd1a29d3ae02326b79c0043e48d436d2ddc09b7aaaf4cd494e4dce12b6439b94def3141531faf4026280c820b8875b4331e2c2922822a4cb808eaf70b677bc1351c8c939fcff2af5bbaa09ec4cfcd5c3283027fe5fe60cb3ef7a36b6b10bbd031de8665461f941a2630f7123af76280620080133907590e1df3fdc977d93721bb2d884027e7b105981b958b91bfafe229eec5ae8afb3e1d308b25d4b1118ad66b73a03db6574f1f58d969f37206d7eb7270ed300918fb4dad2524a8228ab25995c90483600eec37e7652862a320ab9a8b3d84f15567af80dfec9c4ba10fba5134651f3e26b30d29105fc6e8658c3e24ca09cd9b6b0bbd5aa26fdc2cb04bbd499e0077852d454876da5c9696cfd459537b51358249a5d7c57cfdb5de7d4622b30106ceb6a8faa7c40ae25341c2a6a520d936f94f5e7f5c1cf039465dda6b128fbc441b5ed0426cd8db68c7ab92439756ca7dd4e81e2d9f2e3e5514bcdc1569a4c69078d6dcc57eb33efcc23f5e00d14fe785ba7682ea37e59c3ccb7f984a1d06705b39e8f60964b6a49454237fd0b31ccafb04b1b4b70177a02f979568a7b3f8c110d43c5eab78a10315ff89dbf99e42a0abe516da8ff65acb58ba5933b5af21743724523a6e32101cedbcdb71dba24ae1573431ba4a71d49dcfa72ec27bc77aa95b16a41e01265fe44089c5afa983f92237fccb279b4102712ce1dd36de2a0f7323fd65a7055b2d691eef7d3f1355301fa33632a08f2cf5523925f2e3ab18fae5fb9930c3cc426b8f7ad4f2ca98acbadb58d0cbeb2e193baa1618ec78e0e7b864bf514d65811f03666fa60ce9585490dcc300c643fe8a62b8dc8e92720ea70c673e7a8d19adfd5f5a5f5473a9aaea851c421d2d7992e0670e4c05a9c1bb2064109f30486600e51ad476137cf659cb3c46e622ec88797c6af0e2c30e14b3c46cc24a6d04724122b53860a245e34acd38183917d7f22ab0ec5dfe282af2aaf2753178b7d308070dccc9ae0a331b36a8951d6d8f840cb6e85366d60988e8b33cfd89400eec9fa29f610b25072be388732c7d3fc6828e6332182a7880e093f834881b08990061f475db5afd9b587e3c74b73f4f86b0317d67d50a0147e02ee4f7b12aa030b2de2496e01da1f0d623acef6e9f447f751fa58df02acf4ee35681008513e1b9628f8890b26173cbf0e611a18762489f34678045bdb51ca8ce8bf90ec1366a6e0d754b2e34790b4490eff3968c138119d139d9859c30bfd4bdfcf7a266406f484d752b9c66c981c5d591d8c919495fc65886077e147fd15a0839158a0ea66d3b4fdf74c2d80af8c3e63289025acec0712e63da8ba73438068ee709ef562a03756c1d16310d149fc44c20858ebf59db8af7d1ffd99ad50faadd37535c5b368e292b5d6d654c858e00a14840b56b232b7262247d99aeccfd529e9e182811bbce683386bdaf51c3e0605e4417b2023465903d15e61522d34ed14e38c2e81ab7cfea9c484adf682e07fc6400716f3f3faa462beb5ac19b707aeb432b5856270ebeecc3f86f5682f1bf1e4abf755a244e49652461bc94ccd0dacd0805ddbaddf5061ae30152668b37119b5ff5988a98ea4c032294946e3a23a6538025f3bef5cffff51f980765e0763e1dde6c78b23f96d45777869d0280ee45fd733c926782ab06408ac28697599c7da1cc9e2e23f106c57201873aa30501cbccbfb6e81a302309eb204da90c91434e3f31b59b7b3d58ef7ea658cc92e49a280a52a4c0c7dd8c362452bed15307798fb33a5558c335f8b3c28c22915c5c473e84bdb95b53f190d684649c0dc79327a8978a3c1f966f2816cda08a3228fb46eee4da81462b44ba26255f8c7018880a7c14b0243ddc4ba4b0b0f99c72134b6fe8d164c385c07938f942f9b0acd8552b218b5b377c4929bf4211df4c710644c4194487a18ef4347e5129de9c12e99e17c918ef70d0306adc84c020f6402353624f7792ce8239cc482208f8377212bcfb0cae7d7760f5e60d29310070439a2c736e9a662c1d54ea935f38446403aecca9a2cdb34a444e8bd424f17bf032a0fb4faa81e8df297de5fb5d552e3c8b40c5558ab6732834d83e1a311b9840b4b6a5331764e0a1a673498190a330afea100f5902d440d46aca61a0a396123a86806d10432385d863c9a75a4b1f9a50d2d271c1148a3144017ebf1d2ffb4b7fc258aa18e6aad872b9023d37052bc6905997722bc6fac27418c5b3b529d243210aafc16960fd7b941321c9f361e9097920d35293cb0d0887e461f2662719f460d2ff18b00847905a07e1f6f3c442379f513249c8388c88571552b26bbee256fd8986dd2c122ce9c08872d14f1b34f403f6737c17ec34ec99be0174f10a9de4455e91f8cae4356680e74c065671806a9b9d44bbd0050dd4016ce3c7dbc1d3857ca35cdf70e6a6dd8ee974e11dc869d2baf82dea31e092df130f3f88ce30cfa9378b4f14d04dfb7bb3aec83c68c862f16be54cedd89c56f401588081d3639d3aa7629419794aa4f0f1ba337ca95456bffe08c6bd68c7c7b3c7fac830551d041e585efba1e87197021bc36d1db8d48cb497e4a296e829b376eb8376c1a77b54e4ad4ff43d96b663e9e3d55bc45eb9055d4175146156c0da117b76b586fde64d476643dd871d8dbb5018532108f5e570eb9a566b7bb773e222a0e43de5b9ec4e4b8a5ddca300352eda71c7e11f9fe3a8f2d1e3fa66fb746930e81c6ce5bebe8b39d7126a744981bb6787ebb5cb266a5ee1258b6e0a7104c7a1ae0dc8eb53f912243f90aa33f06e630c7aadc9d0f7238808cff357d924d25d7bf36e80cecc1637ae9e5d80e79acc30a786dd45c7e1460929606e928f3a897559b6609a6e2235cd2947e0c58de9eb849cc17eb4de5bfae428b668c60181c3f2840bc24cba6651f6f1444230e93ace889a9e19aac2ea321f7029719a0da641b66f68f83f70280e21a2ee7a9b330141aea342bb105a6e91a459e62170de78afd139d78747999801ddd90fe1293bc8a250b75332484f3f9550588362aa21afb242f98532385b27b3ab41fc54aee30e35bb9e9a7c58ec3196cb47eb958a18e8105a23c3c56e1c310a8bcd76d0023f2986c01f26b7a5d2c6f9b025aebef5da69c289750bd19940f34cf6bb1066e409ea0d1aa0a28c0befd11698689bd48666a5994ac765989e6e6bd723667f85ad8c43328bdee488242e5d78082f76de1ab9c043932587deafd9635b0ebdc273d37411a48542c8d4dc6675314d73592f99e8550045a088ef5374f4803e823c2b7e8fc1d5193b50718d475ec85c02538e3007f553b88df7f5c5a273f30847384fcd965ec18fcc0cf88118b61cbd3322f565a64e0d9243799c1b22dff5f794ecf27df0b698a4db0ee2dde841be432a23825a0990ccbb280c785e0cf128207c03a838f7597d563f1c9337c9726273affdcbfe620125d0f4aa1688296c07b444d06fad1e4f0b97fef5a94064aee870fd0f1b43ed8790bad1e3c36fcba07b1f924deae0288113572abe2039c9cd6ee592b7f47f545609bf0ff573c9dccceec93d1bbbfdf99b96d87e8a668ef5e64d422fdcd3b75f945e2a1dce0884d57dd89958edbeaf82b3c4770631f2149c7f191267f91160743d7d8b166274168030c0741f304d38f02f698ef4c3f9d58ceb4c1f975895a88310c4730f9026aa833dd1cd0f5d9fd1233b3d5477fc7a8d6ec128ae6e8922d441c0c9541a5075a2bb25f20a43e1ceb3f58338ab2ad6e5aaf523beabc4bc33c770dc8eed86e3e26ce3737f067846a0adb571203e8609c76259e4bbc4aafa23d807d493eab1fce07906d31464d5f0df4756cea279d710d135e611379e7c8b2c5b0a5a3a38409e21af90797e5a44eb9a571fa4482d828ade47309dfe6da1b66611ac4f2e28f861f39187662c2f6e033d170e91519425fbd1a554ff2ab36e09339ba565587dfe9d46cef37516c9ac41dc54dec9457c6f4520534bb124a9ab99603e046fdf1974964b38668d0156dd639d4f40f7d686818385171241a5d76f01299409a5d518d8c24bb7d474552371a3f18d08d90dbe9f1adfbe5e561966c069c069eee5f7c5b488d238826f79b4fe564a107c8ba86d0108b592e21cc65f0198dbede778917264ae769800e54dfbf2ff5dcc110e92c809c802c739b946830f54249008353b817e24c840755cf9acdb26229c1b6b81cc8d3a11279b038f7036133012778cc575fe79d35672d3de1276a57ffd7bcdcd1122463e1d3d082c5f16f08be0411ba67d25f7f8ad4f5f80269275880420e67dfba4052e79e2324bb172e3cd3c857bcbb793d5e09c70a91e2b50b793be0e10c53857693ae679f62af68b734e4a41c6f7c5374c27f17d7928a29c05a0cf8cbd74bcf760eec0a6109b9bacddc2372666e4e7ea98a2c0df52e165b40332a62ac74b8d4077e3238ed2698a07bea1f238f54c235f3296096640cf0e25f5f4c108c4282284dbbb90d636188d7740488451f5368ae6da7b20200dda6061d85c81b1502b69db8b740fa840968a5af10202352e0ab764ad0dc3c568b01e1509e2b6d859b1e960e3a0b0d3f700582a303c42638d6a346e7825b3e8f24c81fb345bccbaa86069ad4b09f624d6210e68d7805695b415d56140a797145d0efd9cd06d108efd370e5c0edaee5120f9168ae21ee7c64fb29660817c7f8c73cab385fc67fa9000d2ac5e36382bbd6af34323daa37e13d2725d395193f0e6d1cd08d700c345aceb3c915fdf739fc31ee0ecd9ce23228f06f80b2d2b3a537982955c21213db114c6bb4e31df23503c46fb5dd7546e5b2694d0b325c92c2189dc8cf6fa862d6a4a9bad406c645208a3c35932c2f1bc4e408d0072b1856193486f2a97bcbe9ce82e01793fa44aa8af91cbdc03f09379a0fbe4ea0f3f758fc55caeef8867ce236ea86bb87660d3065f50203ed952fd8655e364b680537e8ef54c60153bf964f87ab983c3f605b640f2d848437b8b6623b300dbe318040f458891d99d3d28bf9819f248656117c8879365a4fdf80c5fe06fdbc06fa7e11b84e6648b46ac6274a4af548894606571811c1aa389198120f94619989bbf681cf677503d08db59e7b55235c86f2c48a4ef3a744f3439caecb8cb1168045cd602265b07c7c26a9f432cc3e6266a22b269053dfce48528a3a270438a526ec8464f37048b60bd7d454fc3dcd5b1bf9bea590d9f89b4814440daff9d8513095e215799a645042e520ff0d8b02352491c03193bce8cfc08cd47a994c5fffda39bc728153b20e804c8b389f6ec646d768828136ba0f232290f59c35c0e34d724f6431cb5f7dabc48d24a4af5610353c47cba81e3b0763df6025ace5a0e367ef6ff5460c728b90e89c61ae88aee98966f94446b6bea22122bf166ca8c44e672a3d295a82a1b40914b621c5a4a311782a01426bc1ef04632f194807bdf3b083054f12060b44fb53f9d1e291657da9cc19836b32ffd549847c216370781bb935ba0734874cf7c3f06744f38dd9a5c763577e263d0674dafd9bb19df2831b0ed9f788c39708878146f74d991115898f6a3717577ed129cd637e76527ccf77be04d2b3af524fa30bd8dd2c5be363582e1a4267cc9ab468b56efefe6a325bc30410060ae0a7401fff234ece7e27cda99d3c6183e487bc921ccf08f01f6271b134655272002c0819683d0f4df4d829652c44748ecfbdde8ae49fa47c01780fec7c8f9622f15b244ec0224007b25f9aeb0fbc4fc831c62cc93046dcc5bd8ee2b9254aa36505d0dd6422052afc8c0221fa9d6467447bd187ce64bacff3d3a6872de232babe316cc17254085f31ff8057792b08f0d16f42ad2c409fe932b4d116ace526b9d041b5aec969607b2efe35ceaefdd69692e3ff3e7721b584a16f1e28a37823a8dcb5b0a23f17f6545d9fa6eeeb86885b685aa4c263f81e4596d9e17ddf4bc9ba1350476eab20d40bc729fd4277630b1359117e3116c8a146c694e14b1a56ced0cc54924f8271e94eac3ce17d0dcf6ae51b807a8243838105cc763c3cec5b4669bbfd501d24f648cc2b2f6050dacf0af6f1be45b602525c8ce5c34200889b338cf301b6e19148d5d456eb99f0d101c695cfb0218fc2a0140cd42983af9badd6ec1deb3854f2e06079d525d5c371f2144e0d6ef98b2ce1b3e233ed48474533881831694e9bb176b4e949546bd09146ebcb046c82dd7b1ae74a6a01ba850ef9ed877418c36f47a5490f2237d7bfe3dbf6fde7fa2aaf282475eaa0eba538b8b74edcec806be5da3f8f22ce05744c3d6112929157d359f451caec048b64d704a59367362bd178313855447303467babe705177c1e7a0c5c2702beb6f54643f43b5eee0c0d6c438c9fb209aebb49930b9a4d85a4f3a248f8731d608a1d7444e6ec99ce3a68c091b5891b16d7027d48a76891d5dd675c7e7c94e7b8de00ab2832da0ce8d1d42f1894666bbbe51e538389de17e290a1dca5943627dec2be82f510dbc70f9ffb31046ec334327411ba7e5386284759271dd44d0901248bd400e76c17caa9d1ec4959de1830da9f469314fe2891ec9defb8a7a1cdb7fbb070b2d82c83c39bb1b659030802b5394e464ea6910a2e2de69b0466b2e97a65578fe781d00979a6b3a605f89059c611bc0a1ad2f9f6eac5e51704167876a0996d76c2211a1ccdd68448e60302af2f76a69bea6186a62347aebd08e420061779a45354cb80f0507e7dceedd56dee3750598ecac3858f89c093a7a0129fce52b9661fea290cb8714327a76179050702942867c40ce62baae094018fcdd5d7fee0f4d3f323896531c7ba34363f9ee77a28dd14548ef043f33ad7a7ee67ad4b66742cbbd0418ab8b50c8db69bfd93055430d2173e3529a462aff59e24cc1eed342123db7d1164bc245e0030e6b4155e301b7c48abfb9c4326b3538f6b43bf1a046ed4b893133f704754bf8e5681e998f93150729b35d7e3ef6224c4029ebcfeace7c4c9a1dd924461ca473480b2673008d77045496b061f0503d648d14b1bcae39624f8f122aaf792c4dd6b160999455912af5ab895435fd4728a7001648df9475c7c020c5e20c991c743d8ee9fb0c8888a8cc679d32ad2bf32542583269240a4258bfab4f4a50d64f4c6cf8c0603941d2b328b8343e658cd9b23f0044dc11cee3c087f322cfc90cb0a98af502edc3799dfab434b9ea4cba3dee037cf6d8040e93c79d841489948b6958dbf222f9ffc88b18d995f6e0ea87cd9f080ec3a3be7a280cf3f08b389137734a7e49a45c7553442b15c174188afead0a9d8727e863bfdd49b66d07ea6dcbc17ea4ab8a405dfc9171169bd244b32b4938041f28d200a39718400bf40776ba5644d5f470d6b3f6bd612d6528f9e3026aa2464dd33c0521960109960ecac7304189e300337b32d2c463d40bb114f930ca372524a341153278ffb1b90acd83025022197f9e8e17b19094b919eefe0c41af5c3146244ec6d60a2d5a242f8b12628ba0c57d8aa130fbb070072604f8918981ccbeaf212eb7b7084ebb3de3d6c0b5649b779a5ce94f4ebbde061b982c406a1b031cee955d486bbd6cf9a6d7540fd035186f72c0c80cbd0638228ddc6427fc7d6561bfb712f4a7c74c675945320bf5e75c970bc6c830e86c839958c69a4c810e68419a0dc5b2808deb85a65401c2c187117114e6f791bdfade9358e86494e449c5b11d46e7f2f6cef0fd54b34063e84097e9c4c1cef75192ac4029a6d1cef27a971b163b10d585757d101c956b1392c3a685d9172f4a9b345a677414cae69626b7bdbf8d72c0ece53802507a690c6082fca665c808124455908e005b4f43b808ab36b5551b68acc880db7853ea3971e6ce23765d44e8a15a48400b0841b7d4e3568ba47bb7b235893327084eda983413293584be1c27dbb832dc398f7702f52c957593f82eb3c479a8290d3e9a5d2a74e98da445427c9decd29dab5d0d6084e5127e49137aae1438f2ab6956e84edfc9fb55eed840cfc0f0b23d2edcbd78bebc6b20e0170408ac39f82d5b86c62e48ef681b234fa1c0a37b545afdaba06315f9460ee31e7a967b0053ee46212850b4ae048536d4c2b13ae9b557d0b85e19da2bd16b17b3a707d061036a770a3806a18cb5f6b795dcd05830e05b23fc904a07837ed049361cbf206b2d8d780157a2b263fda05681058607a95e2b4d7f8b7dea2d05499c63b678b387d0e681553cf4e39ec3a7b0df94b09d51d193a49e211fb11a85d87db802bf18ec1e4560e8f2e8f1fdc96656663801f81b6c2b93b1dba124da071c5a7490408bd54293469573a240f4adfa6f5ef02308ebee4aea4cb6d07d980fc25cc1939264d9c78f4ee6f8725a2361607988fba647a6d6ce5d99db5da67af4b2202375b34a4675c7c0c323b00892b380fb505ec0793d8cea4921b8e2418e25b83497a8b90d1f9436ee5c0c65f3d6b82984429729d6739f53325e4e7ce5d4fb0fc88aa913ef04d3040bf84ff5ffd4d430fcc1c12593116b7d950b5ab6876c7596601dc7d13d76b3b4a64c94c1bd680cdfa3dff1bee31de2654a1bb3cb7c6210dcbf1cd0f9c67da6ac5cf93c61fa3ba414a92960bb928a3b79f0ae207a18e2a0dc68e095017bf12f91bdd40c6c770f4a9406861a7c5d6ab0e1f38e46175627d8ea56516b40345c06af559a0d42e84891614b7b12275be8269a1a748a4f8ac394382c167b65ee2277ea766986c3dbc628f5de8981fe15d6835e2fdfe4960087bf1e426dfe70477c713b526ace16999851d6104ee41374c5f9df540442e5247f344bb78ec73394e3825ea02a6c89be734f5cc46fe0589b62d24de060613a99b90452af3aac1486a407f6a86a2674ad506d36a02351c69aeefd5f95735be4d8ab81e39a1a87ee8693b4f60731769d056d7710ee9da8bd5fc07bb680f236d5fb84186fd83227ad67b48aff2ac94059fbfa17bf3afea18adbd84b96532a47a176bd0af7f240c57c2afa359010699c191e22e1085ba4a8353be37640db82fd78ff03dbeda9e154f82c376fd26c816b74f6b4dda5c8641a1734f1edf6d13670a7271635255c8948a014cafc8b70cfa8077cc66c1e60739d8400169c014eab66aa4203b606a695276680604461ae457f70ff7610d5f7c1d8bd805caf1aa76e7fef6fa8ac1f4e9f2e34f95764ab9d80e59935cb83e6698678dfc03e018b7278a418e47a04fa913fb3542020914d07a509d2269a3487d8c522a4c878c0d48ff3ac6069ee3208fa09a422902b83913d0c038e7296acb60166055d4cb2ee67d5a3841b88bcbee7ab1efb821d72b3421a28108908917bcbdd6d4bb9a59449cad80ad70ae60a3abc3a7e27e1ed74285b9ad6b6ad08b715494d9becb6c595b4acd62abfd60ab3c496df9dd46da6b997bce425bfb714b7bcb7f45d57baddd370bc7977fd966ce63ebbfbf8397c4befd9c497bb2109fe3af65b7aceefcfdf4afaa3578736db585a2710e167fb993911601bdcb10a22b888d0da04d8b10a1d206a6d66a9bd41f6a53408106f71b1e82167145dba537f4ae46386f6e3c7ec436ec85adbc3cb6cc0b8f627def68e35b76dbfc5b93db76d1c879fdb4ca8532a06f5dea7fc519febb0d33d545bfbccb1be3a96748f205bbef5e7ac48719e6bb09cfdc38e5518216617c168cb18ec58051162de4b699f7a8b8bd1fa3f3e98b0f456ca6aefdb4affc4e42a697f9db3c21404081793bf85f67f384cf7714b9ae996f44dd266a9a3bbd2ce6cedab69cb9b3ea979db4cf2b7df5ceb4bb7afdf7d98db7458d22907a5e5ac90305299d65c272f4d153a3c9ee586342ea67146dc1037144ff077aeede7c7703accf6ddb57ba6fc9acac9f4f74f9fa6bd29ab689cbefa769fc995b1ee1193b62d3da76d3afc39e557ce0a0ebb9502acc6663a5b1d690bec56adbe9c0b72e838d7b2a06a9b94958b49189693dec2c9d1c1c9d169e1c05a402d8cb342c2b01c916de1e8ecbc88c0745890a5ac3a3b2f2230ce0a1c1d2238393b9c155cac7acb71328e9dad6d7d66dba9729c39559c1530231aa7f118f88cc78086e6877b4c4c4ccc0fefc2365fb6a4be525f0e0672cba918e4d06d72f7820c73bf6e7f9f865b8dfbad4a4e8741361d87a0fb6a698363e32c3738ce92c50e0671d35a87b6fc999cbd9412c759c2ef5e6023ede7388bce8ebfb6221286a6ef0d67ce9e1fc58ea5b5f451075d86cecc6d66861375b4221b0f1cc400e3c21b52a8c3e215f7fd3d70c4d536e28e91308c846c9fba4d9c020a2137db7f9b1c4642a6f779fc675fe9a3fd89e8e2800883460b5b7e18b5f0340211945fbf222228e90ec92347c25cc7070848ca2b53de634f24f6d4b21b0efa53cf5fcac1a9695266d2f1117208c65e6c70deeb9cb3dca952ddfb94d2399feea9dfc11d53a5be70159f2a1e51b6e2113c1c3c4296d72805e5d586a1941f72cbc9051e9fd77526eb6ab799120721bbcd64cd9da93359f7a78e9c2bab751c94380e4af927125749e33494fe722874e420c58cd026b3cfa982c0169d455f624e1a425134d5fcd018a5618f18bbd3e3388fdb30de9dde1e7fdc9c946eafe538382ff76da54f525c9afea5cfc6ea4a9beca7904208c535ac0da54ee8329eac429ea554282946c43b948b1c69b2fc06c5f8e9b97e1d744dd3e1113c70a6e5e12a33b3b1c274491e5d4c0e1d29c6a46a3bd264c9a46be767967ae6ae7ba87ed84210b6e0421c9c524a2b254e0e6552179343992437bcfdac71d76afbb8afc86ea148b952badbdc21dfd82187315653368ff9f7e6ac924131bf711c47728d54422a514fd928af369001c9c17abfb86596d2f58cc150d821873208298848aee4d7228993f26c393893b2fd70b6f6dc564f1907a72379d2376364dc67fc07c865b0e4ea26311272f61a14af7d84b34c0185ce9e930768c6bceacfd2cf973d8ee4e08fb394b4273938915676ca4c1d6799af2d93762875f654a972be376795ea826eb3b30db0e31443aed89b9435ae325fe6a822cf0e634c0a719b1c5799cfa32292e7ce9e3fc790e5469255d38fc6264d6268a8d8918a277a36ecee48c50c74d690fd6760e3028a4161c72980202487b3ac86a83b628bdc7165026166c7297e20b3c30bb45dcad4d60c4d8d74099136ab19251107fd652893b6bfc7c41619e30acec9e18b9d8232b94cc12da5d468dc9266195c43ca1c65ba22a2496b44a7a494d23a658f544e8e83f1c6e58ece910b2a4f25368592bca5b43ead0f437d571d9dd5c3d71ebe1923993d700d12bd9a7ac666ca475d6596ac7ef59baabeeaa3b3a826a5544fafc336be6e3ecafbcceabd455363defb6d23b1d6c29c446d2d49b55ac398fc094975f1243af47df22e74e8db644e7b62424f4edefec8534dc3672c85a2d456129239f27da1dcdf77d8868b9f2ee68fbca595db282a45e7db12cce4e4e48bdbc4c4060132bf8e5417623f18126a4247ded2b72395e4f5c888a523245fffbd3a479e9a9c908c683a475e7faaa731bf8f8efc6b4fd76aab25f9fa234fc351df42879985a63ff2f51b79d55b7bf219d6119b28fd239fd2272a1509c917b789c988c9a3dee447504fc34d4c4850df75ef2d7ce2724a3ad0c473fec9533af18809952637542a950af5269fca6380f2a98f07bdfa56251f370afdec33b74bac8d798b8444734328148c88833526a6e3333566b2522cd5352673a570316f2171561c25e9ccd8bd2499cb09a058106705508ab36285f2a839e2446cc42485f28572a3fcea35a90af228e1dca8b7787572622b09e556f44f9ee4a3b39cd8153d39d1e1fbe4a983272f71895ed1d0674c7e64e48b0e96c89250ee932721513dfd42d56723ee920678de9390446cf226daa483fc41f69f7c263ff2265f90ad2a1979922fe4ba4f7d284d4d1f97530e526fce58d7446c12754dc462352615d3d1fe030b36fa3165080f2929f989e910d5094a26dbaf3f1fa6eadb43b5533f7c5b3da4f52faaafb846cae4ab8967356769d5f367b23857a9f527957ad4db2f85aa2ba020e4abc99cf993d37d8c4f738d2c455c7130c6ecd287f367c7752851528b3aab1a4d958f7293a856fb73da8f0a51aa69108d8559ccf6af4693357f5cc5dfe70f0f0b08124efccb56441680475bd39320c8a6d3c7dc2313e6f499864f2672e852782c41ce827a7729624b9423992421398573e7a77855390757f5e7a7741824852a81837396c0c1e985fce32c40ce2a79d742b0d9720b3b4e01458f37adb57a957a18faa9c73f76fdd44455d41764574f7fddd3121d5da58b57623de78f4c0eeffc992fb6ffe5726a4ebdaf83abf9d9db2c2711391c8cbfaab123aec48f31273a6cde13710dcc861c03c3710d6c94e3ddf27239a542f9158d334a376cfef2040765e77196ed65e9e58f03390bf7f23d48c859bc972f831c141a9281e28a9431b6c3942de7e67dd9735fe925de3ee8c6674f318468c7298060b467ec38c5109abd659cc4d828cbfd5b9695c0413964d3bed6cfde9e94cef8e2476cd15e5efb1f4e0e1e92a7ae75ee882bb36a592471b294a1dd5687110e5b7e26b50a65353f52e98a980d596e8fd9a10daf2197a457e184a21da98801cde5aeb8e20a3bec38a407671f16b37fc72a9e10db5bfcc08f8e6c7bc5d5df6699d543ee473ca4f52f572fc1bd4441b110f4b3bd1a8252aa271680a0c352eb576bad756654c3a93eebd75a697c2be913eaf61ca821d30fa321d7fa19fdc8713b15e61de3574da73bcd7697d7b86b3b4e0397532a6d23fecb07a396ae1dd190bf9524b225cff650f26cd7565218a61ccdfdd8debcf8a16cfd16ef6b5bac48e4feba508c75b846bc5fe47eb3d6daed83c962c9da6db35b11e962ffc26c9f459c7de116dbf7331be3f6598cf7a9a5947ed4620cb758b8c56ce08f18ebd0bc69638a14f527ee52d4b4b9343e3e99b40d47b365510b02240addad6887f37f380c47edbdda6f42d2856e433b9c976e31eda7bb0eb7d89ef7efdf1b9ffb3bafabc8bf917ee1dc36216983fb2f7ddad36fee7c8b48976e8baf3bba6998cacd2249618f782f17afd6abecb5160de7aee9daf2b722dbe33f31b942bab52f611bf76136cdbd76e5dfb9bdbc3a244190adc856aaa1c52ca3f7fec444d0efc1d1ec935be560fc4839ba15912e728b6d9f3a3bba088292254cd8664e7dae9fb7d4976387ceafc304933f878313749589faf0647a697a914ff9e5f432b3606653eec664a5e440fd4c71f0457e148ce9f3c3a0fe0b4d7fca2165c171bbbbe00f51a80ff7e6ac52c510d44a1f6e6f5f7ed1dd7dbed57e037fd0ad69efc3db9ad6b412920eb17fc84dc1e9856d3b89de0f973a6222a68681712260a6e6e44c9e818c42a6ff834618a59b50540205028820aa9659204220360d07dd7e37cbee0ef28d9e9efb52defb975efa7486835ea9d10f8a4aaa1711d99b17538844a0ed39bc4a223176d459b298bdd459021167a935a26445d5863b93673f0890faaadeb3ed07c3fd12bba6a4956f232d499a92255de24476fc5a350de3873f9eeb3849a35e717f4f593a116ca3e46389f625b0784c15f7f8f3699595649325ac83d6127a497428776a6845a552894a29a59452f6c0602b25a50e93187f25a24327b2e326ad94f86595324a19ab943b250e6b5f82bf248cfa17dbc0a94fe376d452e7769ea697e2a7a55f82f6b454e2e897beab79c060fe399cd3f335ee37ed35ee621d3c4abe044d752caea1d97ba72689ecea4b902e3a4e241a99240108373ef0c18d0fa0c099ef6dbf79304396883f2f51d03ba736bf4ca73e4d7b1a73524a8f30c2c1f83c22cf8c983dbf1b925742d03d3320a284492207658dcab7a7c99e24dfc8d7e53c08ce97164bf47bf4d0b43b5f5145bea68bb0a6abababd23818445290abc42092c2fbed989ac68cc369348d28cd96ef724e3d8b2acd64d11da749c2c70fafce4fc1f6bcdf24fd2f891f72dffb94c856c36aa36dafc168443abebd51d8fd5dc3165b2bd99ab74d1f461685fd8c2cdb6b4312867c4d7f46145764d110f7a5930e3317d2a14a4389aa56a7105bb2975f693a96d5f69b9e4330d79e739ad83cb7363fc39fbfb0c5b63a09b9394a4444fec990d4fd9969f7831cfa6b673f5dce2a21f9120d82a8223fd3d4411236d88ce894be420c33afb03edd71f02b4cd594c8cb414977aacd16af8cb3d39e86d7a7434676324ac459e6d574e76bfd4beab7f9f23ea43bd47b4d89382857f7437ab3b3e5d31b67c9d1a144882d767bbbe95052978e7ba9ebda5021f5ab37ae425d5b17841ce71021fc293d5ff3a5cdfdd4d5e9ab63a6e7cb41195bd6d0e25526a6ad93903bf457388b68b509e9cd96f2eb8db3c89c2dbf13429e1f7748615bc696080b31282fbeefaaf7ec37e74904e350d973c8419904ddf2c6c1ca33bff23828ab4d5c916f9361b2ff21b7f6e12c8299b3681e21cd39944a7fbfd0ea92a63007a53669389fc2b48c27d3b4270839a49bc292a09308e51942fed31e6799afcae32cf7e5d79e6a3359f20d5145beacc36522bf60cbb7a181fcf99a39ab54ff95c6596ae4a42ee390c78c26cb951055e46bd794a7894a12392bbeb0743dc8548bb4762b1c74674f77a67dc82b7608646b8f8483d441e9afb822372db6d03dafd8a18c2b537b190ece4ccf8759e1c83ec79723081e64736aeaa0079c65d5c36e25aa113c8e7016134d96576c6f392853a6cf97b3ac4a2f5b449c6555d24380bbf42539e3206c4221b6c823c4956f8783db73dfa6e94e6c29f96bb2eefd57a9eebdf7e5e3325f12867cfba16febb3b5911d5bd3f4c80724c84bca710d5a6222f54082bca45ed10a5b7b8985adfda65f5b7ee9f3d1d9618ff8b34f90fab8e78e944ebdf665a92f4e150d05317b3e8da93d20bea4fe085b7eea6322480ccc86a625b30215c4bc3411e425a3b146238ca83f285ff9d962ca26b3183b7b8f1167e4e2ca06ff55aaec5965719f638b117125fb6e0839e4aecc5e66df01a09db1664c950d4497084818d967cf23b6d8cf666c332290a96496452eec8c5e98cccd8e30999a26e0ec5845135c3b8cb19dd9777ce906b2c36dd712c4c4c4ac60872588898979c1aecfc596499335b1c5944d86ab44a97a57f9b6fcec88a942b3ccf58fa895685a29329d51a9c442cc2db58cb842375f627b20ae501e51e4500611123d60001082e892f247c496ace579cb0067943725c69600d899263b43656df34b94d2cf90a03ca8f7449e20e68ffb2110fa41d8e4888483daffb07163b35bf65dce72df0f6729c18f1db5d60dd7c8b81b7f2ecade31597eb3ea070483b891c359a836b5b9c2217ffed4e108541b667e90edb8c67cb9550e0271bfebe0e4aed6d141a97216df4ea5fc2c4d753bc8a16afb90d24f5649ab54aa10d4a8d8e8e795ea836c950ee536d94e9f6f93ec335c7f8b10907fc2d9a7b7dfe9907ea7df64ce7f4df943d34793f7a69f3026efbde8e9d0f3fe7aeffda6453cb779d97b93a723e020fd1c38fa781fc6cfe12cf912879038bc3fe9d076ddc93f3c9d4ea7150ed59bbc890e553ac8de4e9fefd3d36bf2854a488df33e95c535bc377d23bf6d9ce91bf99310d9fb54a76fee922fee0d73dea7fa8885387d739bbcff4177f7c19cbe7bd5179edefb1ade536c63eed3636c83260d5119bd3b75efbb7b4ea3f38b28e11a3e70d536b8c71fa38bf7271dfaec7ec2246123ee2b39cf33455515257b9b7241ed4529c626839b8181e8b68db87f78db46dc4138d8c51a67e7db54eb7b2d7dbe33492e9d5eee12ccc9c712e1f6a527f95638ea7b9fc4e94b327f2dba5dbfebf6266157dcef77eafb2db13feaabe11f63dcaf1ed7e61ecb989d3ff9847daa9f805d2b76edfb9d4f4564457427ad3dea93d706d7e9f00bb7f73c7ad2618f7deabe30b5f157acc3843ffee983e974e60d217ffbfc75560bc13dfe3b59f185de0763ccd814b661fcf197bed087e01e537183d6ee3899b3cff4e5eefdee67f7d4c1d97d74b0cb626cc91f9e9ec8a79fa68f5f28b7a9f4deb4df753ff3671f7f4e39ef337df7e52f091957baff41b7f7a56fa35d57b18db87de74f5eb1e5172ea1822d63aa80018d631bdefbf65ec335bcd7283efdb6fd46e3ec4e4fc3f3574f30f94fdf7de1e76389158ed37b9f447ed3e3dfbaed37fe14c0629f9e058b08dbf88b57ecfcad7024609f3e01fbf4de97801d71e6ef43ee9386f1efbefb7dbfee6f176fa7ddf774a8dadfbe3adbb8eeb7eebbddd3ea78d3a15ce1c09f1f7b1fe3cae9f4855dd8bde92516a2fbbcc2e13df7618f9466bf11a476d86367ba472a253f8644ae90a28ea02db7dc5b848046c50d88f6fdb96553df9d026a4468d7b6264769e08590eeb007e794eaafd11952293a32e2c5e92491a4208d78502729c0aa67724a970ca3e5c39e2d24d2490ab08a42791f357ed4771fa525118a076b7904abf228e63f9d4ea7ce74eade84d2d2083feaa551a6a62f09d9492349941121927dcdbcc6fac917cc6e9b873a6512491ac92399841ff5fee1ef3a7cea50a6ec9ffd4d26531776af9d3246bdeb55a719106463bdc2dde3ee4ddda9fbeabdc97bd417a2507f7a8bb1f7a8c728eb796fea50dea966f79e7e3b5dd49f3ad49f2eaad3e1cdeee9747a99ef9fee9f9e3b71a89730f8f16f1895fd86439cf1e994b3c9743a3d0aed9e6ebfe9103fea330aa5f39bba3f9d4cdd9b4c9f9aa8b0fb527e14a57ff2bc377959c3e0cfbed33fe8c67afbfa5abd36cb5e35c8f269dcc82169a44b6787901fcea22f3b3836614c9289c213af1dca9a161fc62cb09833a24106d52f62e8c460a2d341a61184b394deff460ee7de335cfa49357e1afe343ce78fb833994c6f236e93e9abe9eb9b74fdd3db9c4fa6fc79d9972061e09deecb0e467a392ae7ac37acaefa068d24647f777777f7d43ec90c06f8d6ba0945eb2e65e65e0a02a4b415719d3be7cfd1f0ee721c9e97fbeef1873baec35873772bb215e9c19c3608102dd334ab050162b5adc8da38354dcb5ed3341c5c6eb361674b7fd2755ed775da4399de9a3ed39f544e3aa4595f1d3fbbe91e3129c5dda49c8300a95b51dd86b6d856c40b026413f24c9b90b70d9936cfd3e11693ad5c37cfe46593a773de9e72dc56642bb215d98a6c45ec91cdf64cd3580e02e4ca38ef168b52ffb8f7da2f5dfc9a6ccdcbd970ba3bc5cced6c32e990ee1c494767c85957d74e75555775ede02f6e8f87a7070ab1a09f29ba4ee3cf3787546b9090906acd9e256973237540642747ee80e374d0515050d051dc5b52928c998374491ad9aa43a9a45f40afd70b68cfdf6a50dcc251d15017ae6bb26ecca43bd225aa729ed415fadc54868c016cf9f34716605a1dc3f756e262523786cb7efcc6dc98ce08d95f664fbf3133c5b527cd8c09ad151d153904b7e4a2b5c2de19f9c6dc981bb3a78b8d4918f3c3ba635c65ba44507efd141041f971b216105562f527deb30a3bb6a7ac353a2a724863ead35d75b8c4a65ae38094346883d32fbd0fed396709234cf7170f397d58bff45bfd30c618cfd7343de99890e3477c1d8c3ee4ee3efd9dd69df6dd97be7edd17d6efee8e5125ecb48f49c3257e407ca9407657dff3381d5ec7357638215ff2e71a3b4c9a09d30309f22244fdad66bff2befb1dbb5b79de7bb576da87f6217e25e61e7202d3c71d26cd049025ae788218d820873ad8e18a17d33711e4c5a49b407dd6dac77c2e5a61cb8ff75bc99729434c8ffa96902f4cc42b5e4eba65f262d22d307d134b3411e4259b4c2693c9647a2766bc987e099396919169cd78c9df025ff2cbb4542ff95bf725bf8c871413a37a61c226c5c4bce49771027c6162de21e625bf13335eb2ee9690272b65075fc8422b8a9927b4f0829ab1828a580ea060069e972037325790e9814f12197e5eae0d9ca0851858a1042fb4e0a5f3921c383a6433bc674650ca0e51f6049d25c68da9623bcc791fe3fc587a6fce5a5dc6a08a3fbcad6d3f6a9ae7bdfb1365f027fc097fc29ff09a4be4773cc77e8cdc973ee47ef3c2897594ded39d97de4b5f4b5fdf72dcd67d520b2b2cacb00a0b2b0c1cba5808df3a0e73a32267f1bf8e9461aa9eff814df0350d067377777777777777afb0d287fe5bb518873fa6311ea118380eda5f553d7db0576be96b2d3d7e8f06eded3f5afaa817685248632c43bc0d17f0ec1f76a4c205aebde5dccd1b075536d5deb57712ce6eee8bbb7be570da64380e854f1ddafbb4c1d168505c81c596ad4281d6a14ae4df65df4defbbed4bdb97b62f6def75bfe1f787f1ccec293ffa5bcc1e7fd3ebfce9431a7d868f7c2accb54b47840ca33d27398d43d34a782fdf1f8575f8cb1c008c43655719076da784ecffddefb8af66309c67ce592ae16e04e3b8b4663fc1edc3e772e975587aa95d7326ba7df8f0f6fc0c14f235aa999cc9c8246d2be32ab6faf8d59bceb22ccbb22ccbb22ccbb22cfb115c234b611ddbcfeea54cf7f3b90f650bc7d4a197fdab9fbffadb47bf7be59ff74d5ffab8f73e25f2a6bfd59e3a85fd2567e1a93d273cc4f6292137a74ddfe4c1377d1057ac500c9fd0f3300e4f2b2177feba2464ff69135bb0e6416c897bde380b9d3cb3c7592af7e253542851eb909067a9f454eec823944a72a724774a72a72477b67d2f95b0165e072fd6e1694e2b2137d661e933c6d17d098683c9ffa3f449502ab4e92a93b5ef45508c1948e0f6c32684c7a86938fd81c39fdddb4783a817e2ca17240cfb34469192621cbc71448bb6b5bf69b54ec1e767db6af46145daf64b18876bbac2c9a86778f13da878c8233be21dbf465685d529f05b500d4f061518b216b6ad55d85b7bea74c6d806224b4615ededf3882dddbf8989c91443cd6a4ad0ddbd0fef76dfc53abadff40816e287dc9de642235a63629470f4a34226dc46630edad782e890abd80f0a69504883320da23cdd11b2f6770b39488392bab759b6a98db3a4a0a4763891a8cc0bfb990eb52f3dae3c275ce9ab47d5c8c1a24af4d59eb8629ffbea14e28a7defab5490306cfdf994b81b5ba41bf6636e2bd36cfb992bb3b19d4e6cb1db7e6d398b36f767553877854d2aa30b0d9230ecf748d92b25e8ceefc3bbdd0f322cb6dc6dbff2c4966c4fa3215518f216b260856db310a9d8f62750f421f7f6612d3a5215e5a12964b4eddb0d3659910649559e3ae47458b77f904cb9d18366274826d9f038d18c0ed0448a2d42620b857ddc53ac03bfb6c242acb86d77b564df4b3eae627fc69010f8a13fa799e8ca1357ecd3afc286d0c1b6d56cc0947e7b4d06614eafb4c77afa6cfb434e6f4b7a08eaed5fef4369f0c27e78e050b010ae61baff21250bb2a657da73d346db4e4f1b7feea6328aca65d00bfbd366b262b88ac3728feae76db6fded05d7d5f78f3efeeae6e41ee27dc8adbdcabeb5f643705bfb618c6d87b6ad451bc67ff2683a3b68dfbef6746b574f9bc1361fc2055b4c093d763fc8324664e4d4f3b432ba48154418b145321157b48ce976e6f398f7ce4b5fcab88dd36b8d904319346e4ec66c15441953630be2139bca1bc8a12ddda56f17006df7c0110e52cf53f24839f83b1c943a66269583487895364847470a2948418ad6d115ac20849490d26cfb5bfc68bf9404caafdebe9c91f6658db398bc7d694bde92bc7d792371648eb3a0de9efee52c44244cf2706f5ffa00c920292463cefab72f896491b3bc3555ecd36c57d2b61fad5d7d8bd5b7b8eff7be5f2972fd202c7efbb4f78f87a7f4eb773fcb50e6af3e6fcd7b73ebe46351f2a91ee5df7bacf557d0b6bffaee9eb16565bf23426e617ffbdf4a3eb9572d1ee535ac63f52dfeaebec56fdea2a4c5a784dc252cbeb9f322c2c347655aae625f6e8e33591e882ab1e5164d1bad5d957c57e350beb857dfddf3c4be897d95fd12fb24f647eca7eca3ec9fbe093483a6d03763dd3787be49643fb35fbf799444633e2ae32af6b78fce38685f7e36e496ef9d1878e6cdb43f715e6cfbf769b866ff12e17fb5bf5787f75e4dbb33c741abe3a0759e6d737cecfdd0adb0afceb08efbee6fdf7d2a1ee2fab594c6c43d2ea87eaa7e66efd97bf6b165cad83289f928ce42e32cab3ff96af2f55d88b3a8bebedb907c1df99afa8afa7afa6afafa5edf61cee32cddd7faeee33f0ee4415edf63ef445ee4ac4973b4eb7425ed6ab36bfd6dcb32167f3f7ffbf1502a3df76d8ff3e7bde9cb7ffa4c8ffa4e9ffa503ff2a59ee41bf99292a73e968899adc9ba37af566ff29dbcea33f9f9c5169f4c143cbc13ffd2e2bb22e41967dda9526badb5560a44b7b0eb7744c8f351eadf16aacf0712288fb10ed5cfe7543f552cbe99a3b3c3c33793684c2bb66449c88df2c58f5ee928dfcd56dfcc71b0fec9374dbeb9e3607dd5375f0ed62ff9261107eb937c13e660fd916ff238583ff5cd1e07eba3bee9e360fdd3377f1cac6ffa26d00c72b0bef74da11973700e4da26f164d23078f269283f55b7c33c955646eca90e95091b310cdbdb357818287831e88497fe4ee72d715d7323011525a29e7cdc4299243da6acd1b9a4a9fd8998eecbd354369624b1c22d3f45db6dcab74ed8a877029a594dafdeb899fa4d8a4bbcc31649640f3823b7a47e34aca8e9ee2607c1129ed5638a48e295b557989e96f748b0e461a35751d63d3df28a5dffd7cba99f2cff4cffe87b34ed17b71fa62b8cae69a9ba6fc857973ef7df80b5b6860f6ddf70e66371cccb2f0409c25c77cba9a1c87e22c19510f3cc490813396cb691407b34f8921c71da676d67d90cf06fd497ffed474e31c4182e458f973dcca758a83d9bf83d9c867a90c958da4ee45e57cca8090b1efcb70d25b67cde8d34d75b8c49eb4d6fae18c17258a828900b7ccf7de7befa63a0412ad2945450b5a3b8c3ff133ee6db819e07861f8c36eefc6907df3fcc31f16268661fbb9fddc36a22c7f7e8cdc87daf6a1297275e8ce90c3df7635afb5d65ad04b6f7f03638bdcf6a3cabe44ccdf56d77e0ab8e9d5fdabc1bf57bfd8f1d1ce2767ff11468dd01a8a41454b68d737c259e8ae4cecec1acad8f5eb9592fef66f2b6d79daf264cba922f764c9a852bfd65a9fea70c6ae11b66bfdee26d77f911203ccb123b6c45d3f66bab40fba894c4751d271d65a6badf59d98f152bf0920f75b50f2d2c41299b5d65a6bdf89192ff69b0052da010f8e70831a3ca10a362f40ae5e2206e1d8a109a0a12ddc218a973c55e4bdf7de7bafa54d64cfb22ccbb22cabba89e82afa4e1539e79c73ce7762c6cbd44de8207309eba928b64d7a9c2690524a29654a4a57844cffa5cb953068fc81a966c4b822530769e852c615ea72c6618b7bf36ac4941409c62bb68c2b32aed4f0edd530e920fb8717dbd091fed0dfbc49df3fa4545f1c92becdd996f208a13162c488b149a9c37d370d37c520fb905b860fba5fec30c603d1e874cf190211d27d627265fac22523d58171646fb9a0173f293d2873c6f00fdc3e9ed2229c45bec9957fbed430d9dff72fa47f3fc338321f5209b9adae0f53b3a02da6845e6cd7dfa44f5a337bb5d2c6e1cecba6132a354252a2323959c1ba20b3edffde78e0dc412c7f63c1c518bd0e7f84093d90cac7d5a30aad0cd6ec992a33fe367b86bc1f09a33ed10c14552ac7951ff17ea48b29c2a81f2367efc71259225be42c185ff6b40340e74307762adf753d7429df6d442da2eefb8e6b752ebedb7a7a7a7a3afddd36b40d75dd86838383d3f1f0ddc6c3d3b5f86e6b755dd7b1f86ebbb9e9ba121111115167f2dd26d375abef4a3d3d3d3dddc977a5a1ae2be1e0e0e07423df957878ba92ef4aadaeeb3a92ef4a37375da711111119752f854a325d87fa4eebe9e9e9e94edf694312461dea3a0d070707a7d39ea7d3787e384b6b4d955652abebba174174d16eec77df7d8fd8e2f5f4f474bfc359b767aad4a16e080707a7bb381df7ddfc8ea7fb1ea2cbe5f9eea3b7ba6e6e195dee4d47bfeb3a1550872a1f00d0034ee978b2f76d5c8ba321fa8888b8d6aecfc245a77b867abe9e9efa3c3ce661c3e1d97078d870361c9e5d1fa505c7626b6d375b8b87adb5b5b69b5d7f85b299106d32442644449bccae7fb22a9df40cf598f4d437516923251c9e12ce4809078767d757955c9252eb66a4d42ab56e76fd929435694425994e233269444425995d9f04959db41e6da8d37a4c5a4fcfd0ae3f92aba6e1683c9d86a3e168381acfae9fb23c996a2ded466b692dada5ddecfa9bf7752fb5ecba9a59737b867a7a7a867c7372561c1e1c1c1c9e5d7f7ebeb7d4b47bf64c569e36e799efd67ddc8bdbf9f26471422c51ceae37360dbb7e37450e2f11d12d729600fec65996e88700f4805f3cbe322a187cfc34c659d6450a00b00f8f6d90c642ceb22ed710ae18db1dfc2f67654848b08a2bc6b606e39f35ceca8282a6908a2bc6d91146317256f67a21555c31ce80b08fb33217904b08e36c67a70a9ed8a2c271564542d2417a619cd560fc2ee3ac1a3413e43518d7239c8a39abbe5e442f238c2b10c62f8938abba248fcb07bfc42f8f102bce8f5fba9c459190a40d120e92cec62f71ad099a2af56f4caaf845105de8117e249cc57bfc3d628b7c11bd62f877388bbea64ac58f23ba50a0c80304fe17cea2ae1c37620b7dfca0b36ca10f1b7f0fd185eee0bfce9a4853a53ede3825b6748ff1634de390e9a6b0fdc2125d991e74a8eae103a0c3fc03918a96d915d41c4d5cd95d14b2e783b54100d03da468fb72a1b5ae8ffa3a16d65a16d6dad3e31699cd58649935f1c09d64597692655946d95659969d6459e6999448b2ac7ea7d24a90b21a2412a4fa78e49e828e824e4141f5b99445d517d0e9557f3365b7baea4ead5fcad5224d16e7aa352a5546aa1cf568103d0aaa7fa390e70ead107d01bd5e2fa09f57d6ae455d3bf53ffa9b91a538c905c6a1b23b215c0d57c248f88873713549ae528578ea62a3dcd5744276ad33a3e1b3681acd231bbe7152ebdeb46eebb6ae8a7a371e8eb3048093284672162b617c72c855ea6f93f34bc4cda854444844959bd9f57de324ae8668b23897cf4817ee8908a37ed521ba4444bbd220aed40fb918ecfa258e060a99f37e72cc31c79ffad50a394b888dec50fd6d63ce52b1113e72d6cad7c7495d4c27b3d9e99a1ccd9c43d2254b18f5739e3d43f7e6ac523dce66b411f4e768266b8bd9391dec8aaa256ce3b78d7177b0da11210f59f9fb5287f868d7dfaecb196fd53e09e4607d017c32c855eafd520ed65ff954ae529f7e9f62bb986934592915f87262a3ec0457e3ace99a5cc6d1a4389a5d7fbae6b4d92967e12357a95ff3ae9b6a6ce460fda38c8d76f562a0c3e0608b5acc9eef5c2c9662d9d854995f7130716474b12e09c3c6262bdad7cb25b7e84550be5632a35f8c4bb0917bc597ac9f175131f4270ca8cebe8cc3d9b7e52c367b3ebd31f3afccbc337bce4d312df240073890b201173c3490018d01232e6081af408b2228300116128800041e80e280d50e1d0d382122c7100c50e128b9614308921a412ce025b5513414900013024e40b8b4e4037833582cd8000428808c0174dc16038600567e08c00bad7455401f00d043663dd0010e6c808706328001232e60810a144181094820021078800376e8680011398660008e1b3684a811c4025e360d0524000140b8b41c60068bc500320a408001c4802180951701f84105f401003db8f8e24ef171f1c99de2f33305a25850157ae8a147e3689c9c1ff010d919929272e3a2c517f7cbb4f8e47e99960a6c5c344cb87011c322c62236148699745424867fa116ab2f6e14221b85084c09413f3d4c68d1e275e23a7109a9c14ece8d0d50506a56aa23d511521b685a316f58ad8c487e487e80ac503424840595caa7249593cad181a207f6124249094ecbd49a69e246480d0b522999d3e71b15771eca43446388413222030a15db71b95c3bb08d613c4d9042403e4ff0edc5cd0911627383970e4e0e3ccfa521694831090e35333272e0b8a30b748182b2604414d3c2b6fdc4c862c858f1a101e285a5379115a3031fd21c0e7c487736f0363a882e39787c4877b0fd236b87063ea4ad0c7c486930f0214d721617ef3fe7105d7a18f1e1acc3f6effda750642171810fe790053e9c4515f8701eb1d842749133457c38bb00145b505e91256928f0e1844de0c3d923810fe74f0b9913011ede7fd64496d481c08753c8033e9c370ef09f341306d145faecf870ca60fbcf99d8a2328a2cf9a3e343476ac0873386085fa121bac8a21c1fba1a88628b894f6449a3213e7420067ce842389c848ae8e233373ef42ab6a7a28df7570d2f797fe74174f19c203e741fb84c64b98ecf6cf79aeda7f79776882eee23614c1a1fca2bb6e75864f98f023e944409f8501a21e0515e882e5e04c487120c41b1c54424b2dcc8e543c9237d0ef0a104da7e84e8326792e08aac49c3fa50dab07c28710cf0decbf850d260fbcb27a2cbccf911595367aa8431299432bb00313e8c6cd8fe22882ed347d2c416fcfe48f4882d17c6879148001fc6d8caef88acf95385ed8f23ba4c950f230f1001f81791358da6cadc5ab477f0431fb6fbf051d543ca8773ee1ea20ba549892d95d6f8db0ee8c90167d9800e553b8774b1423c764c968d69e027031a03ba8774b14146e8d0371293655f17d0e1b5809e5f816834235d2c5011333493655d14d0e19d008d046872a48bdd89408ece64654810d079808e03747ca48badd9e1f3335959908e9f06fc10a143d57c59245db2a31c3af4f9d268fe1d428797011a870e5519d08dcc65438757089a1a3439d225db092267cf8ab4009d179dade3235db21a1a3e7bbeff4c560d9a2a0af849c00f0274a8da5e245d6a05c2dd68b2ea9c912eb5ce1ce9525d748b1b1dc08d66cc5c960e2f8b0eb301b40c1dfaa6483ed2a5d64818f369d02c922eb4003a04d019804e0c1f183a540960e5850e7dbe68a40b05a22eba2361cc0f80fe411ba9689066fba0431500740f3a45d708499769348d84fe8b5bffc8ad7f80b611b5022da24354080b5b7e38dd9092e2130b8ac562417b6e173972bbc8d181a207f61282d6fafb7cbfb5d65a8bf2c5cd02e5939b056dd119dac4967f4385d01aca827f2d5d3bd6655dd6b5c3c317778ba1dd6288680c5b7e0c92111958b088f1f0f94641b235484848b666cf7d0293fb64c2661384807ce61350502691a0a3a023932fee95dcab2964dacc1bccd7d4993833072727dac4f796bd805eaf17d08e9b04890429090e7366cac841a53adaae9dccb5b3e79700c95d0214940523a298164848f4cf96be5348590d121252dc279dd3e73b1e858ff33811972295f29ca0a31a54836ad0d18e1b85f219a7f116e0b88dbbfc05a79336f9deea0be8f57a0111754445659009a9dca8548cb7a541f0989919010000122315000030100e064442c15030d4754db60314800c8ea85060569b88c32445811032c6208300800c00000800000803008074cb0d3325c150dcc38715e51bcccc8cfeba0e33e630b73606434b1a7df34bbc7b01fe4951c1500b481dc2dc5405b01d9e27979f1f7f1859422251c624b2c58584a884ec3e53aa328bb2512d1245b1cc28d333a6c1a164f4232ae2503228bfa74c30d0c2b21e47243efec3afe54dbe3203115a34670220e08ff1fbffca4f76dfe137e81a9498d41430cfa5841a42c95f0003a35285128fbbcc9132a03181782a72ce4cacb5f366e548a5617849d2abedf460c2f5baf3f77b27d5cc3098ee4dc1d352839f2e62356ef3e0a18c97e58f7374b10929530da985b0881a146acb979fe09dbd75f9238f91cc0170cad87641fa7ec32e17806e31bda5e2d77b89deae6f0c8c3fff5558ddc936d840d8c9fcbeeb6c51ff4b6811e72f177d0b8eb92a92cf7fd3b75f03a634ef0a34babf93c869d4668798c02e7f936f630bdef5b185ddbe4e152832dcec74e05d2a61f167b9be8af561a27e80435d9f17019f823ddc9885046a78e446cfbc7bee9769048807ec28b05cabe0a86cd59acb7b332b1cc0db02d953a9714800a897fe88253e3a6820e0d1378da47a1c65e69c2a8443440e86206475b9a5cdc690584341ccd93d8df75975fbe60fac5f9a709b974d5ab9664e65f7f45046e003873feea0ca543e6c63930eff631c284fa862c08a44f9dc2a423491ccc8ff9e53bb58f16762cc5311e84c4240a74070e08abcb983846515ab97d3000d1af465d2b7bcd05d075aebfde643582f49b8ab4a38615ab83a64452a443c920f849860c7b00e3d3d93cc1203bb25716e46760a9e348b4784ef6bf2ad10cd4df87a5b8d896924230e249c7f8186141be8c1627de71bdef3ee6caca575acdbbafb74e1b945d95fc7107ae6d4cc71ff031ff8a80f3ef4811f7de8c71ff2b10f7de8831ff8e8473ff2411f7ddc473f980f797ee8168dcaa35e385b534ad99b38973d4298f8a809219e9cdd9aa7b4190dc520086e449ca79bb544a33340b99b1e14b1d824b4ff992e283276ae46e167989202ed092b60230c5825e72407c3e1e928e0ee760b20f19caac07384b3d6ccd5693d059208b3d742780833d982902741a035183549fa36a8fc015f633e3831d34aa57cb12f1736cabb95b6e1d265606daa304ca8e131dd10f1365c00e8cc61b77da5be3cb463d349a77b12e6c588efd65a30da5adc68a5dc71791cff4f6ac1b9b6785ea00218c38330cbd04178c635d39b6f848b67ab544bcee7b2357044dc5d83c57b8a786a29ba52e561d18dc12e52cd26fc933fc1f18a08ef58c21e26b78644c19cdf6afc43e36f1005137f55bfbf2c443f90302541f4a1c8c5d30ea2a6fed934f75f89f19bfaf10ca23af5b778a12560c53188633c34284a7c0b70c0a41a4447c2ef85e11844caf13776feaf36f32ffbfacaacc62f4055ec164458f5bfd4fc6f08e64f324c2f888edca1a6dc00c4e9d420f2a8bf2fd07e964eff5763ec41e4457f5302c64859ff0ab31c09881805230a33ac4406d1a1fe1d0d14824874965aa8b0b99b6c70484e5104419a13868d10fc3d34483f051109ffff84fa3b75e2afdefa174475f4ec50a00922a56687dbc06ef6c4aeef17447bcc9dd21a44a4797be53e3460c329ce4629c075be3c0b4901d11c83fc206a366833dae4f1865241cdad15cc964c6fec6250100555007083a8c5300005ff156b2b2c82089b7f25719000e4b74fb7c9f2af48f9f4320ea28696c631e0e5ba49a0a9c3e2e9628dc428612eca6a561edc11460e7b2d846179a99d1394d7b7c32e2095ef21ede5f80c1b3d856d52d043cb09687037d1bd6236d41a74a78d0b8dd8e9a4cd9529fc79b29673c2e99fb49f72766d8b50a8687bab89574227502a26ee2315599095568bc55e2ad3cb5c8d6004bc9c5602d6486c94796ab918649b75c90779ba0f8a45e976aa4248e369a6a014b5c99ae8f604aee1303c70436c8d00b7902db8184ad4c1b89b29ccd068f53029f4b40ea5d773c688c4c62e23d1554a148ddbdff21498e248af387b2a0ceac4123cbd99a7e94f2b30473890401b9b461e6d3323315980ae303462681566c2d02f96a9b8d1dd9972ad9f6f3ef361be4b6a7b704cacbbfc40996df982c9df92c660ba3d91b4f6f4ff7fec49c0c64fbb3dc94261d42d99d2a19f8b122303a63f2e450282bb61025aeb65ac168f74f8a67149f52d821630fa3bd70851b12931e3444e09a8b363df548ecebeda7d0bc1f4d68e47ce053b9e4571ecf06ce6b82d9d6466423375f58979104a6c9506d99c59c12abd1d16f906e91220e2c3ff1af1a50d8d3c3656798a19598c2e063c8f504e58c280edf135aa5c931195c0c7114b91846080ef742ac7fb05986319df8a198845bffb0d87718a744ee208653f4980ecfa6fc83f444200960352fe5fe711878606282a8b63b533b5005dfc975c00705a9900abd44ff17b5d71d831801b6b1cf921220290a7ff2d060c8002905e33aedf4f76c651c4ff6de871b4c3c8fa2f70ec816230aab8ff87eb0c12b84f5e52e3e192ee7f6206127b43f6b7717c0e2c8a63020199ff420732e2a2de2f8cffc92b58e0bbb69fd4244826cc8c7fa459c8d7e6423f07fe5593011969feb3ac9c49090aff4b3008909b855fe0fcc77d1081e8f97d6d620a1a71efbfb75c1f30a7bcc71ff896f6056ea420e519f8cc5e29a227f6e7de18c46fddf80195cd8eabd04905f499b96eafe8f635faee2d25b7940a8a8f3cd016d8523a40e2fc95c2e5bd013ae6971f8cbc0da1abf2edfdcdbc4dc813e09698b46d072cae7ca4c4716b0760ccf1907c876f5ffd4ec384ed7829642e817a8421739a2eb3e5eb594a698433bd26e28f08a0cc76a574f66c1baa8c64fed442b745a3b2ff6cc0d0b536b0dd3680ee2138ef521e1b259149a6c5cd8c5469d72ad209284d93c2d266f5b46bbaa0321d0b09171b9c60737b0e52e6fc94d320234b2410689fe5b68ece9c561a3a8ec83737a8fca8fab712ea10394558916f162662cac8d67a091af2c241391d98a317f76d196bf0a68569d83299551741a37c7059aa01e479c63e8de51f5af25ec80dc8cacb05a7e885923cd38b6479e5e80c8c52272d58a564e131c1fe101b4cc158ba0ac5722ea4e9eb15ddd08b9079bd0f9284c6cd3665a8f0a4c13f64f0bc1e99de79a121b54d454fff51e0500f6dd53949824b4b5160a81ea5f928058db1bfb5047d5238458303260300a011fb5e28e903d580166c26fb74b75ee7aca906c6effa286b9310a7eb94dbfa8879a10db090be64afcf7dcc018ed7fc0cbbbf0904626bf5262caee17ab5ed46179188c7fbaae103b1db6f99abc50de7379e8ad116470014b643f9a6ff6144e914bc1b4bf100d6ebc83c46e11476802552e1c8ab738e686a2a917564457f57e7a8506c622e2b1304192d085778635cda960500b15adbb286962c403e0ae5073ed5879640eddba9e7bde909bbf746fcced3d6bd9ccecd7dbad84bcbf3a240e91a9baeb70151f4aba1aab49f128493af086a10c4f60f21c24dc30b9ae044bb63a10400a86466d1e9f5b7755893cad058a8110324cb2a2b836dc9f51ee9f09582cee54906e00958680f04a60b7189fce933fd48839f6b6d8a216c5e1275722f878340976cc8f0a44c273f98864ad58bc7deb9397bbaf1dc9f82c5d3416c0fccec818c729ac808088debd1fc03ed8f5dc2c0b55c1d0ddb4bff8fb9cf9707970cba9274993a7c494dd19b7697adcde4eb91049b75f0f58e40c25a0751ab1742136caa4ed417520294fe730bac6080627a584765f123c472f17b2d9a9f8ccc04640290f1dd86d4b9fb475ede2c4be27ed6e2223b99c2f44dcabcacc835cf2476fcbfe4de8481e85a3b241fb25326121d1ce88588103a78d5ccf3143aa83c9706c1555d37cf1dc70f2e0c5318224ee26ba60fd9618e988bd1851318d244ff9ef3ba027db49c27ddac1c3418f840a2596912e743e028304168e213d3ccc0f72fca1e6226489c8956f200eef1cc3912aba05acbe073a271ea14f499f48ac15b31ff5c5570ba25b676d2de9b50a2280284a10369b2da4d07d207bcb6972e77a9f1ce76f2e44d6f678c685e59d129a60cd7d41328153804b927368168bebc0ab95b75a772247a3f6d1c81674afae42dc062c33d34aea7a4318fb6ced599729db4b77f181fa8873493615622b42e93553538254ffdab1d92d5e45be9432e715cc0d188033b6668a054b1ea54e8c606c7795e9585d65c4ded3fe66906d916c60f0e80dc0ed1b8963143b0bc60fea3576260861fdc15849a3e4da9e64a9658b3c75d980746a6bfe747c1ea3c442343848925f268c0263ad8c71092b200839c413c4c2742010b26894956600a247968a8ea841d1703193b30b008409ecd222af80b62f86210a7cab52f7e57da29c8a68233db1932df20aa1aa3a4bc378deb4be81a19c96c4853782ea19d6d7334d70df91f0f2050604fbe5889bcc04ce3fa50874502e11d360cd4817bdb47f34f0213dc8071813ff193ed014de879a99a01be64ef33d6f14b4ff62e6eadc0c4b0992864a8eadd73b96840ea8a3438d8cb653955863f5d2e16e68a38164c8ad2825ed2a285ec3d65064f106c04d552211298bb12d411e88c404f8932a77080f4a4aa25c029c14f12314de900ea485b279033028e25649aea81ea905441b0a3041d4d6632a503019d26619de209c19d12311d7b29ae347509c24068e4b071b8eb93e48ac98aa9b8a3d23af8047a6a4f136cafc00c0cfc8acf52d03bfcc3b752d10b3da48b0ea58a5ed0878ea5426fd2474729450f744267a9a19774a3a714d113bad0b554e845bae82885e83537136b49e82d191d25a1c7dc2696a5d0b134fa94869eb999184b4067e9e829197aa1f4142b8955ae0da14030d77582e6dc7bc52de1e476c758935de64aaaf44d56bd75e9602c435d9220cc6c613ad75bafb9eb385d6e821e28f3ba40d50de0955e720ee3bb581d4ad88b8454d79830dd17dbdedde338ee6d1a61b2eba048d4dea4ceccdcbd73a4e1d627db92633203e3d2dd29a11cdb5ebae1f15cdb35626ae7489929bda15e0387eec16c209b7f90e327cc3446ba0b1d36e7b5acf7e45efd8a1b578721c53189c9f114ee74584c03a5b339767bb9aeee5a4059e527c2685cbabb0a9621140e41e495ac38b18fcbce24a48884eb558e6d6d111ead3e2a2dd74200e129a2266b8da249066ba0ed8d75d02ad69d8d7a1823e3525d29819c568ad2407b3a8ebb157a429b1931deb48e89b289a2103b2af95eb8a939ee6c1961aac3a1ac16b998a2d9042059f61174d34d56a1610a85f158714d2b81400990d3d1eb1b6d16e0040e85e997ed60399f529c62f390f098ced25a9888bb58a3e1e99d7918662bf65afda51e1a3eda8be5e909ed0f17247239d3bec790627c001775b22aa83f0c3911c6c553cb50cb400bceda085ade02c8d5ac05f4115f898cf73a9b7fc1f1494e07f2bf3540c73f92dab2ec7622464fd2c5930fbf88a93986a7c591bd7aac8fcbc60da4cc82a1109b4cdc8a8af81df76112ec3744f931fe0c6e8de63cd2c591baf0677f405fc88ba0cd05ee86ba29d50d5d38d24ab4a27045aadeff4206f80e17b30674e81d4f03f9d6117f9626a1bd222ef6d99bc08cd12d61a4926a7bbe5ddf3b8245c2bd13871a05bbc20e05a263ea851a2d3d706855d6a32269d51f25fdcd7b7d4305e24f1816718049bf29771bd2e4ff1f2d00060463740322a31f7cd0ea1f17b6848d42dfc2fa60efa0c03021e66cefe882ca09131162d7724d0ad10d1ac7627811f082c6bada8f7663b594bd73d5f100b05bc5aa965da4fc536db342c4486d70a682c0fbc56aaae90368075b916a76c916618763d5da3c0bae5818483fca4c44d8162286a8e6c3f98f1873e8deaf57e55ea4f00acac30f2ed0fdc0a0cd02cc0bd82047685759edfe090cb25670f93085524027523d48869eacc6a47c6f0e8e04ffe079295a82dbc652e4178d4de3000ffcc14928d9958636502b66a7319ec282ae5ecda6ad8e930266412ded58c0219947bc366b4e1ac0a067031cfd62f62213031833dc73ea19505b83d5aef5a4fbe3740752914f166e76605312a110ffcf29820b3e06590311fc4bd935220cce9e2511d4bd67312f77dd6f3b79d050f2049c017ebb9f5cfee51b5d6c0177ba123836f9e5d2a6aced9861a0c69fd4439340ce4d764f1d0cc8e4b0e2f86493679dad390caf851bc24ca1034ed4dfe8fc42acde308c80702de9a9b5016c7daa67cf4c7407e0d4eb78be0d697f6d997339a0d7daa36edac664289f754483a0bc4741d5669bd99671aec3ab4c5c6476907508e8c0ce7f2807a8fc0a1b905fd7e913d38f6cbb7da28d39efd6fdbc1a4ff4b2b321b4010dda44d304345084a5299596d7bdb3590f9e2752b06cdb4a482982aa07ae2e040f0a9c7b4f1715aee14c9a2a74387610dbbaf2a894e8959df35505c775547d28fb4795ce51c7cb67f38bcae615e809a166163556c18131f382229038a1b850206a60c288039a31061da8e2dcffa7aa7f91ed943c0a1f54733a2e65dcf20dd77eb3a2556ca27a50f8ba1785db8bb05b8ffb312a1283cea441f09eed564919ef11bfc44aac349123459e6c6b44c4b2d0b6297eb2c577d08ef05f3eb47d9a918226cff37798fe0e9da1e39376590e4e59aa1a0222f53cbe36eca875b4d46b0552ab7ef32715bd32eb62c2d77cdc40fed4a9866fdc7fcb2d21794abac8d743b4817caca5a45ff1ab8fe1115565eddee162b5a417cd4e63ce4cad69d3054a4701aa7bdf34897324dfc3783ab85631c52bb1c626b0060a95620a3527f224961b198f347b5694f32d11553d5fea1a5f3bb3d98a92fe69d6d6ba43753357ddd47359ca4f21a686ded5e35dec8a04a033691dfc4d5be4f74afb14de308c475796d6357b9207e189a4f7de1b92ca6bb079138a261dc0877511824c8f9ba0974229481ed4b537eda692fd1ada243452c726bf5c71d1db72ad0f52b99874316f1a85254ba65b8f538d22fda9c151a85637252bb1de447eef3547aab738dcdc25c7996280811b05c574c3206bb04512d545c4014fc0f42fe8133ad7b6d7c175980b0056d8836469d7321eb1a7fc02519fdd3766d1322b5abd892fb4cd9bab2ba84bbaa32ffc6c41b19e17e6bac4f7cc1a398243f8bdc9d3ef576e554eec71bde694ec035e953e84c7802a15354a48a9306e3d288d29c089373d36bd517892e38aacfb095053b67410154e3b65bf95e6304f2fe4af6ba39d3a68c88a96b94c92d4bc313eb64f3cccb330a46393f09b13320a3bd2b56049b7c38f6fceb817d79a17263f4574bee89ad2cc8841039f296891f0818d8c19ca0c54f00ed4972efaabbf36662826b2d17cd0f723069db9f6d9d8a49b3978348f3fdaa743e367a3069e634a3f4c6521990173419754b6366c5347f264d0c8222fe58a02a16170cfd442878e942f94160c03124d7fef93c1e040bd369865c553b8ff9d50743813d9990453c4c59c530ca391c13fb808b575ad0834af2c4a71f97969e561bdae1fe8f543c9b7deaf5fb41f5f3403cb1962720081e50b4dbc6837cd9d13045999d77dfd4a7fe4e5a75034e6b3884079dd70c1e498bbfde807adc1c7bcaeea2373277f07af5af0f692ee04014ca95d960709d4737541db28a004ee3024bf8e063cd58f2f6ed570150f12aeb9e20488569c3626789b2528f2e6e85f6ad24468a57b5887cc8f47b0f16977419d52971d71fb4fd9ac025c6e49f3d22c490a10debb8baf10677c17b6e3b7010abe44e99847a21f6b8a418b1832f6335805c1640ace807a68099189bfde323f14fa7e433c5e99b8702ce203830add3c962643b56bc1bc96c22dd537b94699844d86b7ebca271ed834297584b54ba7a5f49616fd81c1a604d8351182ef6e9288b40f776341ba844edcaf323bfa61cac9e38b655a952bf24cff87a1d462d947cce41983773f4eee440f7e6a0c32bbb400b4d70f8096cd8e76d60eadb2bc12f4c097056487b1302605b1f7dc12b17c84a7478960a9fba5a1eb99f9c0f9a31b5eaa968597e7dcb1fc0e76920094a9d78b710a4bd6fc56f19ff9a73c111cd96c20f6d904171e6bdafed797fc2c2f3c2e4c83b799b0780865b07724631543304be35a441bcc07b02eae120f37612882acec836997e7c44a0e7182169cda127c247ec8f120ef0ecc896b6fe9a06b7ab4b79685e883eef546a6aaca52cb9e89f0e39187c36fc0e10dd98486a93ed47736214e9ec919dbda8ced60467449735550a418cd25910ac97a52f989f9c9ca2b6ca4eeec2d4549fb751657d6af8d588800624903b2b57591e20698ea1772db5ba8ffb9a1446ce74f41a16044d4c06bb7f50a55acf35361ba205b74b0d766e983f1b11cf269a40c28c8a41f9095f01c5cd05c0957ee6ef8546cdcb494bb5d8aa8ba28362c773dad59a2e4252e5413a0642d565c0508210c60168da2c4846c66bdb4af87f0806e81c898732315b52f71182cb0d70f0216ca55b8e4909ca33c7730b24b8b98b3cba7f7f261a7f68949f0051c30518e229156692349bdd4727076cd8eddb307e860887bca6181cebdb752e4ca320010ec8ee7d62306241625a41cad558813932d0356aa1b8e0f2b9707552c7847b4da85f9828d0e980c0583698f9a20124da53eb9476d6c0c72b8ddc6a39da17ddaf04d69d72646141269b063dad1b4961fe85d31a1001c0ff126f7d9507a63c57ce93bb115a422a713b6ecb11d4510df559e59f2243d4857b6eefb241632a1f7656536c174986c2b5c182f97500a1291c7cea2c335cc67b32d51a7cb636a4e4d4f071b04077e8384d46e5fc4d7ddb174a47250f717ab0072ce88558697a3b4686a0f0ac7b7a45e6b4b1450eac6fb9cb3ca4647df17e687899628481ce3cff3cd23692622fe3b3b2dd0cd690755178116c8bf81c56005e2419dfcbec9d9cf17883b827120359f74f1c4fcd36f7461f675a23ace4f5485c0ce6d365253d4160f0eac1be0ed7447f2c6a3e6236a3eca29081141f2ce0ac0b5c8fea587b240f81e0f8050d23d86f0e89f4cdd4696521e3f60ba90af5c0185db1327268f0315fe3856cb327e2e1e29d4c57aaad5111a04846db80917815931df7b76c723e7467f49198eb903ece9c7b8ef5e8ae7703e203516240a1f0a0f7eba2b4e3e2e4c815b0dc4c5c8d83baccad4f9907c44aca2a3c6eeccfad6b20326a88a5d8668ea4bac88c9c1fe2ea9646b1dea009b4ec19e1f17b6d884346f24f865b1105dd9dd16a1bb4ad55be6092280554e99862dd6ded5a09fbf28f24b102ba11b0645e436f4ece842cf088ad5bf962557af41be678b826414b58b1dd7f352abdba4258c9b0220a486cc7b79fb5d2d115577a008fbcb36fa7f881a357693fd23b66a9e1365fe98ed11eb4ae9df59e83c33dc8770392c0873a4aed3f174fce8c80348ad5cc69498f4c0d7843a77ccc6e2e860294dcf7b46e6160a67491a40c85126f5bca0fd9c04a08b523691b951555bcc9e2d7a102c33bcde43ac7eb4c9c75b9d59bff4931549836031c47f43ea0e64bf36c97ad49eecc4c278b005956e96d03caa643e9a3fa86e06f2c260d7d2e8ed0db7a56758d39f3933b8c5dfe5c1f9532d85607d53b1ef9bf11aa11556388de8b3b9cfcd85923d4bc5cc9435b806715f7b976cee4e6e20ac47b4c0da66bb6205b7ed9c4ced9ea63006e9d8d713f8f3fb734867713a3ed97e2f51325e0830c1503bf8f5d8b952cf0cdf491fb4956bca6a781a7f265768957daa0452464f7f136bc45e05c39f670e338cd26b0b424338c66a21e7bdaed5a7d88d54792693dbe29d59c95851aecb65306fa2ad998afc4d1d61053c72fa4264122c542600339fa143738bc89f280833177a36e7f7037e1db452aacf793dfb33ae56845afc49e82924e532d36aec82802405957254864d2177f6d3011c6b1e928408d763359fcf9476cf04304cb4969a71f1eb71d9bdb782b7f673838115949412b9f0820f053b75fd93ecf021253d6f329133ea88131a1f00bd01336a74556163d1e4b017ee9235e84abe76720b94589f08841e9207dd17fd48c5cefb3c81febb41ec9052cc032636eb73e3459a1f0db739c6d7691fd10dab91ec641933c1cad842bb712beaf570dedbcb4d01e6de7e722349377db237be7c490a6ce1c0055e8091ce021a7b15e4db7286037c3c37fd05c6bc9d645fe5be2691ed30f10572c14b279adf5626b3036b0cc3a16761020782a48fc10eb9a0e12677feb6311761d653d09fab7c30f0a07897de0e87fbbbd1f92a44c3602abeee607e9ebebe83611cf6b9cb5c3cacbb11059ec2e2d23faff52394f912eccf4c6f0105e622147e12d2b7cd88af567103e74a8f42c3bf82d01c6011f51583c502b473ae5daedf7db94b24e97ae2293e91b8efa9297465cc277e60c2cf895755b45c9f8b561432a5c38b58da5b01c4820ef2c4544822c7b3a924ae534d3ebeb211697d247242d8e5d58ab590c2a731703f22be7a5bcd8d5072a0d0b1e646ee40b8327d94c20ec970684d9d40eb11fcc681879d572a16853978bfcdb2900a0da7e48ca8741cfdeaa3362a0fe2e03c33133aa321ed5016a89e470f0ff79f06382821a0bb518c3c3d1398d46a6dfb2b1de705951ecc5dd7806d2c15a37c65b84c341a028a37dade8d3cea57519bf9317e470ba158e1057a52c804d74a42a2a8a539263424ee57e294f015d7fc26414101343e718b4b8ba0fc894f509667cbc26cca4e2b59163b91c2136206536174a45dad04b3b18fd3fd5c5c88a3bd45472f69753aab3e1ee99c51d03221efa1a2ac08d1b953c5fc414bbd520b66d14f50fbaef62dbab55de6ab59edd26bd9644d50eb7bf5607da05079eecb45168a2d1b076241c02fd7bbc8621f000417929c78663e240ce38e882dd9289a06c6b6c49458c99b606bb5b36b5e89c76f56bdd7f0ff88eea6a547c64ae3d4f721d5aaa971e7cf35bc984c0fe09bc1facb5316d5b3dc24295edeeae4ade4d3649ee667a84f162d9bcbac31b41b62bf13ec20e49ccc07fa8e58a7dcabb3c94e68fa097e02822148c314c5fc7a29de0450941092222433d7735a8601462a2b95123e469e0ae17b670278d431666322898d261da7f76a2212b2f408f82394180ffdeb12677fca724f48b2a7424b21263e3a3c3053c9d3aa07a74edf4ba105d6d4c90d7736bd5025f52063d92c712fb09bf56060e5fd759c85531591d04e982347cd469008c0ad44c152f77f8b917e8c3fe59b38c78c85cdeeaa450c7307c1080f680a84620a07941e82355a1a0a19608bdd5afe54ae141f8f48320d610bc120f6fb33273dce4a2aa9aa9a8cd720c77c9385023c615336cb7099221bad395ce19c121754d31235249effa03e06abf3c8398a1cec01cc81ef745530012f2f0a85f84c95029da16fcccded903c96c0877e8111cdbf84223ed341372ccdc300d74c473c6537c1bb1511a87a66115b85a61aefc51928c7e8cfe22c5a6121ca06872b1ab445d89662c00f11e52a9a561f2a6e9048770d143cf9f7f78b068c03fdc8699946045dbe1608420db3a132e92e9901b0d7d7bf06c73a3a96e9e1c6ab48bad7a31994c53b3930337c2a683642a12ea8849d372d0dd82b5e0b357e3e28ec4bd265da3ae3b26bd5e7336ef9c7a0db07db704c884de02ffdb01bdeef9e22cee9dcac6208707f0cf42486bf91d007305e9c6376f0329034182a186908f35abbfbabe65edf036c658e64074fa0f3406fcba733cc9d45c649a742a5a6189dfc609880b218959a469b786a5743e048ea854316204c0d8dbe0c4f137ca088d47d1f3185204c989521ffb255b701f3bfeb5254560b9b5fd73be9947e6b3e15146407e358e460ef6056c2be830750a3127fdd58dbc0f37d1adaeaf405002ecb0bfc510083dbfb953bdf235a3b9ef83c754b4ff07a4b4416289e9f919b08030d7d93ee829c6c0f7a473ca8d68cfb1af5027979f0af9daed53531f3c9c202280abc6c36d9418758993921b45faef7127cbf86da4ff1bd60f37dc777fddebf95f6353177e3cf8fbd411b71df28a3bd1df21b68caa1617d114021ddcde0f0ce366f6986b1bc6f15f217eccf17631c5361214f4446750a0f43efcbe873eeba46d6ca64943ba03bbc299e0ed019d332a811a3a5ced1d8f181e58f879e22a198d7456f2c7b69a0513fbe9a84cc59f24ae9b1d2cf527d24b976ef54425fc405533cb505f58d880e587177d9e491d939c94291aa4c7060177dc97311d5d3bfb5f7c940d82ef2a6538dfde64de844f109e4fa9929cc9d868f05a3b97de091827c7cf38d425a8848564c8d3a44d0cf148abd8ce36c1cb2d00c51807714d342ebfbe4794260147f30bb0abaa1ae43cbacbe224d91ac552f1bdb01c326d12609200a0757c76d8dbf9427ba3abf053ed93a759552f9835d87c32b649104c3eb04d532246798924e15406e7884a96a33c25326efed3d416257b3d712af997c48493407d304c61fdc4b7893eb3cca04d572b99c8c991b5c38a56bb34aa903f0b195f7b19a96570e503d728d154accc328c9fa0ad6306bc8f9d1af871c8efd9f5b72f859cc90701a3ea237576117acb346785163549e02d13708ca83027aa66ad458f5d315525b93b905b077984720760be134d2a66eee272af5a1646ee3c83c8fbca09958b330608fc6d2692e0b80778b3c8b8fc367c0c3b459a495450580981841b6ad523f1763fc80e4a38dd37ca833113c3c3451a9af4db61dd982f767d007b3c93a17f06f98415b43cf50d8a0c9187e553fe9a011cb1dde8a3458de7976655f96da247e307a2d1f56e611443dde89bcb20068afa5fd4ec323efd1f5314b6eafb276bbe9713940ad1f45c51b49b653c4ec3e07c4c8e3c24788a377f27c2bd280251905177143c0f64c00abb5ffa5da707d217891eb388818e29b3bce6a8f0f6d2516375a1d333e3c9e07f5131c4608088f294bc86b560272fd9d50c328be6cef51d35f04b9ea238e60b27f6ce9b5b4b9c6b0dc1edcc457b017c62ef0bc1059d81050f9a08cdd87a4e9b8b06045cebc203029443a6364581921b035fcedad99b4ed8d82f80f624e73f8657cbe3d8cff6a975a6c81440798126b436533e97b4213c9669ada9f15ba63494db58cf8589e83cb014e64d303e710380de7bec972cc4e05ec586f91af39dce6dff0e5bb7087f9ca6044a7d8150480190ae1502eb653b17d383f0cf3204b16c7a03c88d3a4b0c085636ce8b5d77b2c740e8924a67a89ae3b66fbfad12d369e6a6f417f32ca8ac56c83004c14e141a01e4935ae7f89cdac48938b6d9c6db42039b25b07f34b7b8ebd355b5785a321dc20f2c921eb747c415011ab91a5d54b075fe198bdd703c09795547a1543094a7c4c67ca00a29e6e2e752e7337e77ff2e66b722ae222f292818a8c5a2d5ce858e7ed53f5f55d76a05ef3ebf3e24bc1435d3a01b16130801ffd11db03d61b5882d9eae4da752e49972cf8505cba26d01f515833f04173d5b1d4215ba78e58db0d9547ea73658c8c8bdacd4631f9e23dccafc4611e662a3e1c8400d2f4106325253ff54e244dcc004f6ac53e91f50a272a9141b9c92a016c463834f9fc6194c44468c7d5ef661e51070c26b827f351120f9b948934e6368ba78b88ef851968463cb402c72754cf197a138c308c6012503564cf11e292267996d64dbc0253985db2c591c14d27bd69940c89ea54d902c2523c9e05c6303b186371ba674a06051d8aae78ebe1ac6572d6cb57d488824e582557d85844ffcde60689723b204979cb2ea824bf5b7a9908584be24afb57f796123d0016ed949624f9a0cb17b005a85997a1947003cc42ad06950a012165a7d9b800e21cfd2e948f26b81e592d0dad1838fd36b6fadd69543b3375f6bc9e2759691f282eb49ebebf16221767b08a999437845f69a9e96f6575a9fa82c055b2b3422a88c818f1c5aaa1c54575bb060e8646c85173261c2016432fd59cdaeaafbbe801a362acb3bc3c3dc325f23195ca14f6a7e74f0d310be59bf6b427758322e9fff2fa211451182d2ae3bd41936510b15e7a4fcd6d9131e80aaac703a36904e8729e34a380de374c785856c88ed78077611dff1afb5bc67bffc89692df4f2fc0717702901635bc552e96d94b113100be30c55e8b5cb0096d651182263697558ef599e68b68e221f299d39b2acc44a9b86d4276f31d2c09c7394e03c0441ee318eada464c3a2db68d6feca225ba90f06c63d4e3046ed761a7acfd2e72850b185604d388a0e8b6d7168a1b5d03d344f5f51f64ad3272919246e6a69233d4dbb0bfee09d9e0a28a2add6cad3fbadcd4b3a8b0e2e917e85e9fe3524203cae91787ee11e5f980819bd5fc706e2a68b66476383a6213da7b2401c2cc2f446ba1501eb71154230a745dcb3c50d3214699214b411ad9bc54d15991ff2fb4c48cd56c03f75f116c008df517c4163adfbaab360899133379b9091c341a6668fac978b15bc20284dac8991bbf0a010bc1ac6b5a7e59888806874d22e3c714f1d0e6d897b04047a3053dd7cbaa9888b963a3dd42ff164c07c2603a6c14861fb2f1a0cc20c34746d2ca00cb9a717979a81988c1cb4270943522e7afa1d2a722f0e988ea96d8ac9cc8ac72876449db5dfe0491270ec7e4b381ae195304898ab73f03efd56a578200bd540a759efc865569fd18aa4dd386cf62ff341de7d524189692bbd91ce4c64c1217cf53d542e34cdb996c35166077725791afb635f3da4046a2ccaa8f1358dd1ccd8e1d44a78db8afe8e36da048ff9bccdab5c2cfcdadfcbba5c81e3fd570bc15d06ea6609020188b6b61904eb2685eba7b21f520c70e3ff505365785beca76512f7d526022db53f47567f74e3cbd707a760dfe5d705b046e122f3e2280412bb89d93fd0b4ae4b6530dd77f695b0ddaf3b89f31c14608fa0981ef6cc6eef8c21f4a027c9b25ca56f1127ae3e925e2940a70fab6d8c84758f465ab1d4f1ebaa9ac2582df983e272f5b9eb66b5000c2dcc4ab23dd8ac0ab91280c2a6d7279cb50312170a390c04dcef9bb9c31d70249400c81d9357f4681ce4af9d5b3d15a3d24dde2c978d9eaa460e130ed2a3699375e1237639f6115252def47702b9c2554f39229c92854569d64a892de5c20dc9f26999bdac63fd32da43627847d557e5773adf529f3ffef4ba62446bb8bf619bf44b49b4c8923b131c213d57cad471ab5c47e2c229b415d713f381fe79146a86ae2885b4d340cabedbe285f00ba40b81109a300129aa481322eea721633602516aa5846c4e738371590ec3103e0ad7373da66b250ec07dd172d4506628c608e985506acc04d77c227ab524a2aaa4ff91154512609987c6d1c9081c4f798ca4b0aa8fe230bd6fae6ff2c02dd99f98ce742cafa2b7a229370f16811a6beec818bdef05bb9417279f3946d513f00123d8689e514cd58451192e4ed4e516ac2dd0306fe530fab5590474f02b7b1eddd65dbd1584070a4615fbcbea3723c644a188e1c462787e24d75fb0061e42f5f70224cf9aade8bff23b32fc6c31a6fbbf0522aca76e6f08f5d6cdd8d252ef7cd7efb962bbb0c8272216560f72e604e6da891c44c7a38dbca7e7af0a41a990a4c843799a0a9b3b18867b8e1ef6e42d419f3b05dd618e1366489c35cb7983d87bcdf8b39ebef4d52f18d1f62dff1e038d58b61c16fbfae987d6f168b782c23fee170f3f04e4bea2256d2801058ac92a11410891f4d0d68196292313a943848398728885a2af11debc25854a08b4b9a2d054b5375ef4f3d9ad89724309714a25456f33404610ba0f866674f530c8e9ea8efa09196f63661f3d6ca921b7bcdb9c698c4760a330f82f5629d321b3fea7b71999b2c5e20b32e206cd4fe60ad30aa1af3d0dcbcb9911a9b24d9021fd48efd5e88e52dee0d84f5d3c5301281c41d9020a3372ad1ccb0b2c384808bb7005fb38ec8f30a59c175cb38231dd6eeb63947b085c10844e3362a5c36cfee88855e6034c0d9b9cbb65ce9d27535be0c63fddac60ff6a4059676e8c85fd0913bc7ba0c0dcafa059021865ca1118309988d3ab334f869315a527fb69c5d56bd7e65a242a81b9ecac15efac82f1ef1d362add7ec8571226a436f3b2eb37eeb22a496f0cf2102057e94617e469d89c6d4778b0d9286e088259f10c1e2a4517081d972750b05fbd77b3f48aef1113cd965ade505f60695909c307840bd9342f675cca47a50640187fbe0e728a143295d67b1df4bb7a19cb64c322a7b87e1754510c8d6cdee59072ff91cb27dbe9e0cc689c59113ff1a416c62b821638b0d991e8b9c4d85dd718472c1da582b5d3ff747066cec801a43d2b6685e5c15e500963580e56b858fd90d23609107af01bf666cc3927d669ca29115fc87cef33f8d7bf091da1f5f840212ff85486975cc96234e8c9fff64b1903a0af7c81e912a262dfef7be7ccf8082d2f4b198c3f667489e0cc4e642cbf58db12e605fbd253aec009ced4ceb08f512d97df0548eea40824bca10050a89727c5b00dbbd7dfddb97cdb031f5a051b363efd32dcacac1451d7b47ca430450dc2c1566386d31d19df1ca72f289fa4f49ce7c50efd08a6bd668107c83eded561d01d06a0821804972d879595db43bc2732e9175ab6cffbbfe88e7fdbf0e3f38650058cc3b1cd340c6f209177253ad8cae11ce5e0c9af3685af37ae9be6faa596bf9e3ca0bb393562b556a7df248c404a6a98a2e98046c684711b0e6a16bcede9964b9a46831e3ae9b6b81ed1dce2099015e9e0d59e64ce780140f604841722b733eaad2e25a46825195320fccc8b2595faa08137c509deed96e7d31ab3487f79db028051c365740b22a75d2bb79e67275284bb838d49de1d7496a5217e0768786b57eb6670ccd86b2b15c5177dc8a458fbe354133784dd5ab49d80ba9444ab7a16e3b4986ea725908b0774a9d56acc5131f5a6cc33ba61406746684b6e7cbf03182c740d2f908f2eff5a1f684a83d1b1f08b96f49f7d101fb0bc8f60015b52f71baa1513f153df099c464f32ba4097911b6ae6ccdea54c51b649d34b1d2470a09206461873142db2a5a7dac415c82a2c6e8f1dbbeed6401594b4241a1301417fa35117ed682f0f04bae146100a2630bd9a0487a8c8ab5dbe66a304d5e590344c2044c3c1f31fde60ede8ab274f7f801a798e9ca0e8b45f25cb248681041c96b59098b8e234eef612035607c19b88ddc8feeab2adf41721925f584de33cea97bf32928bc909b6077bad00a2bbb7fdbde1851caa39da1b8c6d831ae89765490811b8d2a2812a9a0453a72fc4bdf5428613800dfa279e179dca9009062df415725148b3ac2afb6fe80b7f922083ddb89ae4c6b87a38d4ef6612a9a2aeb230726e42aa9844cfdce51eeb270237b962c6654cc8b35bb3c11ab88b550a66a041a51a4262239f85a31189d5629a045a4555ab8acce96c544f57d93f92c05ec48901bc9801a90febbe15a9b218b8f085c3065ee57c3a6d16ff7ad0b380eb0219479d1e9fec66661330a2e6aa40e8142cae8b234af3ea37815395668e424b27cdd96eec0cd54e1eecdaa2778ab280a33255846dff96eacb6987354d2d6a6af1ef625a2a7542a26c8186f2fb73baea630c75734669dfe3c3e58c0a1c0215cb91c52674c0eba2839b906a949e7b1b166273a26de851069373916677bf54aeab7fef5426bb65cd0e9abdc7ba684c2e2489568e9460281919705495d8b4f122613fe161ad8f52f160e8a2afb42335e14117a37c2a540d5903bf087d15e84e825c116913d08af57104c2e9d49e8e15240e8eb1c99c041ec894ccda902d4f78666d9461b94d2afbb5df1b76900c024a53a038645408b09009b1a02d09a6048125cf5b6d2b5cc8174bc376a1f2021d550d18d7c31b941585f3dcc46b1f19403da1e21e58c1567003d6b2c5459904d40b39afd175a29a2466ae127e06bd89c65ed3239015384b2c22bd971cb77019f4340bd1eb2fe26167d468e866d081cd9c5e0315ad936e8d07bcfe00fbbc8e5b301e41ac1551b10d2ed2813b0483d2e560f957e8a84e3b7e9c1cdd4a0e01380576be6b424f711cb83d849d162b6770f91a8cf1aca4a38123ea495782434e8087e0151e5cabc6a381a27553133492e788ffe47a227c44c0712de764e3eaec56b1d05549095473bc5169bf495eb8e619fe51a6efa9ceab578a1e5813090d8d3daecc6d84375ca1383a24fa8fe284d706c81cf47610cda9bd0c5832f4e569d14ace0f34b1e7f35fe734a23eabfad7903d5112ec191f04640c242c8eb83680aa1228525ee124fc01a24548c50ea1212fbd74c32ee420ab2f3dc887105e3d309dd9872a2f8d4705b042da267192c966fd0b39ba4ddafb4b46962168afc60c3e6aea499d4218d0e36b3e2b6365f6b006b90c6dbd851c5f5a8b05394c746e48d6cec20620d42140a736f2b0beefd597d64125d0a0b72fed1c06385198781c4bf6653540fe7df0d61e7e63948259060a0a00bca2ff1bf4e445196e54c3f88c7e077e192de9d094d0d656552641d000ff0f0f8559a6a7ce80be11d86f625260cd76fd72f767919cbcc211e985d8936734d04e9fe007615832edc2ac0ee858e3bd734e31ba3fa978b8094c49afb2017f0a4001eb6d2a4037c95a988d5a443821d883f1a0a44af65a5a3e8228da0de5af19928d05f98185c4b05a3d1917521f6a38c89ba4b04e1064d12dc80a6829104bcc75981031b7cc2022629b8042351d7a0b8a623a4bc9c70fb6e70c0ae9e5aa07e85d8aad64171bedc79a57ee5a1aacc73e6042a72dec149f554633316f46a35cb76c1053ca89d978d00ef52db7f590c4ebf9c169e34adede27f66b885b0054a7b74ec05f7556925955f764bc64b5bd4fae26ecaec14393d23a5ad5a657965a528e79af653bdecd7c299b0172880278cf27cd605bc088fbe646cc519362798b3ce72d22510963a8f6292e0da3ae83604e5a4bf5f65750140ea21e4bab25cce8270d0fff53426a529389cad5cc1669f5159f30186534cd772f319ea7f78dcb7f62081de7fae7f5832d0bb116ca5490c17fe6973935abacedfcadfc7e089b21e0efe750229f1b2022b73f78f8f351eecffa2ffeed746c3e98d8e1d4087acf4433d77dba0879727d2006ccf1993eeb365fc5e283314126a4e5ae5b1a0d46abdaa8b88585740d911a216d28587f0469a03d0f11718483c71e8c11dcea13bedfe6b893212a8b2a016cac1aedce4f0d2b10f782de62f8404d2e639e0c68249c846d73b9ec09fa7525308c89f1f54fd6aacdec1f8d01ab669f882b61f2cc42352abb87076e4726af376b51ae736145aa169943f7d6072098f0335305f5241d24e300d2460471741280fd4f95e8e972435c93debc964265bc52d464d7d53c3e6a942e6b86070bc0ef531052920a6f8ab0745fe4c0822f9451e5ff901c342f2c8d4e62560d32f6cdaa78d8df352bb588a59c59e5a82407607b638b5a6ce50a25575ff33f239bcf296403e74c7da0e4275f4d840eba78d815afe319802098bf7b197cb2a6dbe2c2a7ac33fd1eb0f59ae68dd6e09e29bd78b62a2ce6f9342fc8e3aed5f643dffd0495c4d90ca9b6a0a839e83c0e8ec0e3ca43b481e0441c7f09e1a588909a1a2ac0221a973de38018f673c61d2d20603559d174956ea81c762fe8e952e6082ca7516c01d1639c10023cc95daed12f2c4bbd64863c1e3166d66426f401d74ac0f6618d5b5261fdd4bc92628e1536774026b649dc2925ac77b0cdb02e2a41e8a67075b0ff9b288bfe68efb3fc0741002daecc962dc791ca030994a47db7a292a699da1247e2e4136fc557d416082f5944c0050d53075c2fc426880a7faba53c8c2d70a56e40c6d160b64110e0210ef048574b050af521aa23efa48d97aaa71504916e0e7cf3a8dbd1a57e24494aff2ee65265cf233c8c231e39ebd5437b0627d406d9265dbc6b0050ca63ecc9a7952c676b4a57ca3c2581427b2126ed0fac39ee2e4ded3e6b09a981a2aa380fb08468f4a0aa3f4e67e2e49d87b9dd85312e744d81d311c528107313682ded22f9de5fb0f9e83bef9b06d0b3c16bd4ca1d0545e28422a39b4651b49d535c3ad0e4eac583d4f17dd261b942b1d145ada36f718271604d083d75089cd7fdcc50aaaf3a025a82c40f65c28d99bebcd3d4dae80b6ec09936444d6576eb52adfcb1463503de8a11ab35f7f6b173488a7dc7e30c5b9788181aa1361aec95f333f921b9bcf730e264884f261d52b14e44bb2d5052f36d279e228548b568c8c70cfb03fbf6957ecea2569d351bce5fcfb5f2acc4105cbf09bcfd8daeb95bb32d039754987c3b03c861f54498e43c0749b9bad4fc3a4551277a245ee9dbef97464a6857f5854afe8bc035ee97c7064c41b5b0c058284e0e7328b85082cbafe6d22778b032d2d318fa8726015bade5e31f09974fd244f34a9c4daaea9f9294df6aa5d8509932fbf323d6a37defa77836a6386bd0abbfd8266c1465ea387f0a6c3180c7fc070545ec4a340320766486229abcd521f4f573f53f55b4c626fd3a1b405cd7b5ee0a9ca2d1e75de6bc2f1e8bd0db58c8d3a3c1c842f1098b4a3127e78b18dfc83553dfe98afe5dac03a29c0ec783630a7641c285c0c86d31a19fc435bdc0a7ad779c9d2870281fcbe74df3f54eb02e266638a1d274af1e8fd186e655ed1062c3713873ec1785a442c33314a05c4d1f6e8e78b194652b097261ada85fc9752a2249ca3bb65f6c9dafc4823bc99ff6404ec0253d14d68d4607415bea18a2cb05ce941d5a435ac9f42db9c3ace1fb0dbd4a9e7d8bca44e80d4b956ff1bd216b402264992bd160bd019c7c1261b888a69edc060065e898e6f2142094d3308f100a37d69d40cdca86105aa52ffec6cab4357779f12e0ae890fcb2ff25104732c92e51847075736a29708c87b119a13431ca20b1b37906737d37fd63889362f89c0657d009a63a45c7596685a86f2d46fd1c0106b88e944b0a7d50fcd11f2e6ba0ef89ba9a429335bc482c405db79dc333e3b794c922b7177714c49128b1f103550ce613bbd46c8294fc539dc9c1a00cc9b042ea03074109cca948e31fedbc39436d46c7f252448786f1119abb62de3e07e2f34a047364034808d3470510328ccfc4e346ef725e7a0b12912da015abf21522384a81092dfab3373c7945ab4e06c4e20b34a39b762fd0b2fc06690d68e93a0a1595acee0ecd2b8f0e071c8e15a3ed3e46d5604645b9352ea7433d6f722b294a42779d947336ad590d0b872d902327d76fa1c88139c6752c5ab8541e3e80eebe2ed7c1f469c5e28f9624a72a393af3ce10c3b59b7d659115c6d9da13c1031350cdd08b2c5493b21023e35edc5d0952f31176924b8cdbd2269235edb2c80b9db9883d6429dd0423696512eb00683a29b21cd9cb7caac9a04704ded65d98e4e543da1afdeb6b1cd3e23fdecbdaad693a0c1188eae0e24408a0451c0424bb8f4a96f0106a416aa9d100d2b6b740bc45890cc78fb927b123c52766e2c64e4b468e458e79b247963e59054eabafc02d4769eef096c65a5b280af9566203d4c2d1aa54cc6b4bcee5e9ec0d608449dca4b10bca413240402545f1b3b67dc32ca00dc85ee38aa8a70e485ebe2e6d21b04cda20b57a1d609b9e0906bd97a96c653dd449c9a6ab25c7325d61683279629b6c316ed485216505f6896b9714bbc9880f48fdd9f09034a9b53931008ca2e6695c577016b143b161bfc4fe6fc61843cb8c77758ea4372e724152d59f30678f451150629cc278774e8510f520b7245dd4b41ace0666800b29178383016b620751b62f2d69d33875a4371338b7cc5748fc0dc73e440da682461b630cba641a3f47f504fefc1420b7aeef61e40f1e77f2083c0c589048880f5b35f8e70d7deb42c662f2b23caf07a1a34c53995b0e1c466604cf1aa00b075bbc40c474d04ac3dffd9a5d72854a4e2dcf9be09860dfd2d83220cb5ad8ef4e39504148ec8361bd88b1b133da84444273a1ea24739665bff1b9be5276c3729ea4b3c244c7b7568dffcdc8b09812dbeab17921763b442cd4e59e535bf4cbf79302959224d7ef38f962a8c8a99980a4b2d0367cee26cdc6effc41376eb1fd03f80538536457fd277b19c412b32eb615094db5d66858f8ff095f09412d3d4507396e4ba25aed6c601a09dd201cd2002a85136af817fedf7064d4f05bb659fceb9b0a119c80caf84596648cc4a2fbdbf91e8e1a3bce23743804e6b1546e0588acf684070b1813fe69a3b9ac896a22670e00206828d631519c80ff73eda31c3948899bf85694fc6166a945bf3b5fc804181ddde22e7cdcb1de68200c8231b264b30f69a01c9bfd8a9f1bf514dd2a69cf6a7551b1f6ce7703ced9e1b215ff1e6b39c59b67c9828f6a3e046cdfe6ed4dc355bb8dc00aa010ceb4e9fa5d3dd790464d67efa1e8f030f9e53afc81eb9b1dcc3cc57d71d27dcea00e94abb29e9d8b55310e819c151d0df806581f2452081a25722889ff30263cd03029d7a1d61aff1a705e555aa46b2687506faa6472943ab6b5be89a060c11f972ac0566c026eea513d904cbcbacaf4b6855189b760e0ba53345dcb7976a8410e0023080e8606e3e3ee3f00350b42a5268bab477cd3d78ffcd8c96d042684cc27144fb72cec10a2b99b02f23ad22ac9298e7f38d59668a81b4723ba38286b95e2b62a4d58ff9c9d3a5871fab5ea95793cd7851eb48bc22ad8cac42c5132b10825f815a9ab36e8eb402725132538685ac9d168ade992cf3f2fc91c529aad0ecd56bc324235ee02de2bec3bb6648ab2f3363a2ea377c1a281a079c7ebe214b8f2ca4d55c59d9aaeddff53cb8eb2f732e8a0cfefd9c5d7d39b108fd90ba1f998715baf10e2ec7f2f7aa3a99b9edae8667dd4c451d49215eca6dd039f8146af42994cfaede20229c6c456fccae1003b0881421ccbf56995d8dfbaa724961c3b03edf0b4189ff03a43bb6a302e96d02f4e1cddd3e274deca100d79b5dc160a4eb14a31f7b21a97491c9e185bbd0e3eafd8d8e4bab8e62835d1813ffcdae72405140a6e42f76f9a4efddf7ecaafb6a9eef62b7f2733fec16f1bfa809482a857f760539ac315cf0e54f387c46035066dbc13088e9ca871b51842785195726aacdae4ebba5cf6c8294db8e4f70bb50491a6cb35ad85d27780f9444136fe297fb6148f575cf48d4ceae78acf71a18ed2b50ceae4eb97743dd7ed276bd81f34d0dc8b9f65c84d3d9c93ec2b3ab6b79389c8ed915f0413c60a1b780a17749dc8d6095c094d0d955ae2385ec65493b125702c56fdb6657249bc96c5857b8eb6391e24182bb8a912b1228f969afde10ae965dfb8233beaf42afefc0f35af5a03d50ddff32e546682ff7cd3d4d41f3de58e94b098f09168d6f701656b0807bc1a26f5224491e2c7476836c361432d8c5244b6171700bf684559ef92d3c9473051dad5fd95a0ccb8721ae4e2f64ba8e42b2ad15e3b9c65f9cf246d39811856ea03d5c795abf21bcecc549c4134417fef33fd24476a3060c961c68d07577bac97d5418f22957308c35138cc17f1507697a7f05122d32738a1fb7a9ee9cb3df267b00426df8b4a1a7c826fb1a057ab3aa5d3488b96d1123519e5ccbee7893b5e2fa5c59c3d253b4d1d84a71dbf871db91bb32f2013c0821254256c9cf8c2bc91aa6f867313bba9550c54219d74e7d787c54b86716872defe72385fa249d6a0aea208ec031e4cd4657bd13e528aea42bd23d561ea83557d2184285c8ca309aee421fc5dc364fdf0c64e240eea54ff6d8f16c97f8ef25ccd8830746cf8f9d7c94d4977456d6286207eda4b315d02521ad29f7532f344143f54681ee292eb3506cce03c8af1fa5f56f324f9974a0eb723d9059ea65f6e1b620cca1092be07cc901f8a2a9993b8b85e7f67a002e054d30b48247036758af3fbd249e86ccae3a9966bdec9fd2c10527a527f1b4973f8431ceaa1673d34371138c9d839fda8f0e92dafe2f367c673428f8b8986619bbd861ffb4778718c0c117be74dd0fba64c6649a992e727b072bc0356a6ad2e10e480c5ab2f1d9597302397e6a66dbebf6afbbafa09904b587d8471bcead65c9701d947fc7e67eab4b44b35840693107295d58e9db63c18174cb37b58dff7c1051c65af2989c059e3f887726a5f707002ea0022b240e8fe4583bd7197cdaf1013112e60fe5f005cc07d488311fcf51a05ffb91573ada8fa826fe87aa67d3b0b0176f2ee16ace2590ce8a707108caec696660a4333233137a00dda4d33a2609431c8d3786d82b706f5b60ae1b31102aab1874855f7c9697b08766f1557677e4d4413378550f081383ecab009c1cbe0f0111bd01e82371d99e3408a08b51ca81fd36ca0970628de19210f352e67e798e716a56aea3002d1aa384213630119105f02ae7d39ed40072ab6fa324d88280864c07d8becffe698f9b0ab3436ead3703a3cddef801022fe2f086e09ebdf053c96cfb03048b60616f67ecc1b36680e313dec85cec491bd30b0beec76d2405d49c1b10553b3c029b072d72673687180fc755f19fd8a9b3dd2110d4da74d43f50c3582ba31dfa797a21e8a76ba90b2a5dad84b08a84f16f399051a411007ca5fde6b5e4c9a2cec32a3f3e910878a9d3fd3383505edd41524644b423e18729956a74a0d1f7e74ab81ed14fd9f135f7924a29cdecc2d48526e856c2bdd2eddaff05f6e99ac503b02ec63d96dd5e180488350c824772ee8ca0972235877e101b5936e61748ced33d54097840e0f95b65c9bc65425db46688bcda1b03c2199881faa31f142280e1e9a3b614e48f4a98151f6ccf06ddf3e6d431452a6f5813e85e43e3a05882ba9b1a6d0d0b6a4043c18f0cf6021a3cd96666b58f85b10a3141754dbf29e86fdbf1b098b43e9023053b5e9ee47e214f58a610a65bc221c1946207b4e86e2013ff37cc762ead237222e8611c51b37864e32456265be2808ecf26998cc48cbb302555de5000cdcca724e333437d3a1b69c2980a1052e35e7b93a6bc56e3ad10ce6dcc8d77510241113a0822b060dabb0877ac15c2c0bfed9706f6aed60c178d4f6c75f3c2f3a1d4ad987c963c86e5c34885567012e11494f11b8499e976376f6905fdd3d369a63527b45a610007164dcc1cbbf0a4ac294ad1b5b2b177511f21c6688a8c0f0c69baa2a1a7d40a03e7212e24b61140125cf3dd628342240d5fe24027896214205fc39cfa3ba48b320240fd356ec7cae69561668c8cb08c1252cd30cb5e0b687ff656f3e1ad14e6bec6054d56db3d04bb7f8c4a82b0c887b79c7973b2a7ffffae67d6da9c87f4f4677fd19c81fd85be89b9d671ebde85906fa1c95b143355c4115c1333defe29ee2f21a7192370694f9528fcdcf4e51d30827a60060a6a4a53009b0afa28935f90193608f765c3b2043b121de27939eb7ab6af82845569d9f80c2768e9737e6fff52ee933d1edc2a4d24b11cc6ffcde6929851decf6c89a87fd5b89e8fd7ed3a48d205bbd38fc3b4b3f93bec126d19cda0f3084566c37e1e667709183fa0ed0832655c585b690af5738657958cc384246d7ade7197151dc7d67df4aefbc90d223e166a79d82a7877d446efcb0704598e0f85af1d17a734400fe6531bbaee1e595d8605702b8041c4359975485e028967dce99d7a2ba6352e48203a4a3ca2d43eaeb0ed2687340b933b4b79d68cd4558329ee6384062b3aca68e6b0ba347b48c04e9ac4e736566194b5a9732d1e7c3592c71823a3057417d591386dec9c421b17fa453a100de038291a8d3be614043c87160b0205258ec28490c6761479b6ab7dbda7ff6ac004d94db2be4e57c558e07cee33d37eb2c91da9ccb1aa62ed9b9560629dbc15285e3d9b16cb531030a121da79769d0bbee08e03b79a129fe1fae9876fb1019594c45c74c7d0c7f6c381cb96f8190971f05cff91dd4b8d6895bb6181be1fb31a11e75f803d2f67e386d6c17774f90d59430fc09700e7db857a750e82ca6c3ae8b90990e27574670ea222659faef81b088d376044f3604f32df53fc0a46ee842ea3b95012c21ee62225a05f985ea34858d4192fb1503f5086c416aef3360511748eb0d96980cc71701d0d807d3d8126cf670c82628f62328bd97cfd2af1b58aa91811c4522b3d1cd1a5a940070be3e1f758dbb08ce86dc4dc88c08cf3e44dcae1b2d1e48e8225a4d35f545257f7ed3a6da1fe8103ad84904e796a795861af057a2275406d6fa827874bee0b12f328b5d6aa762102c2f78cf0618452744bf439098f02a333aa573a37f8879accc1eab0b3347240af0c07ae9a03a6dde4bb0e3c7e7761b83f2bd2bebd3d3b93aa261bb0a7a9ec58de6d788b0d534d71e1b36b9f77ab8415273a184921097542e613caf4b305e0c43ad63015e1fb1c1f5cf8efbf2d20e1b154ddb86fbc18c17153c236602ff5dee6971733f0418cffc2ebbb50115f199a161383fcd91014b4e461be0da1f6f88b411ac1cbea5748944a9e30db0db3a4c6fc5fa4026f61b72cde50cd2fe04ac66322b451e6daf9de17f33a2553a0a0186899af1467a605269ff7984ccffc8f6bccaa27575f8061be0fb3b3805a0b236b04ac4eeb05a30d896e869164744f3cd7b8926aa8b2cddb3c9a93ee4ff090e1ec85be564796e245eeea191e651ca49e79611ef3d8bb0f601330316ff4b5ad7d5e648ba3a0289b229e17295362e1bad0cc26a29527c7dcd66b6c5a917813d30c854f15e54376fe0ca73fd416ff1ce627bbf189782525bd049f1b74e6e4805fe0c3afdcfd0da82d7a54a85ed996c271bcab2508714704f2e2e1411dac6e4e1cc1ca2ed07b8be5bed41d371a38a2282d68cf1e3e3749c82a2172ac1de5e29d725828271df9d96f0113faab2f813e59a1ac0e0a98d02f03c607d50ab5b1da6ffa9251a0c46a56886f9faac4ecb86a9c62fe259cd6ca5c1be0d1c13e114634063913a56084bc883c41d0e3d3ccded8ba89c27d485607dacc99470bd39ff5e270094d2494493ae88bc5a4dfec9ca629324c47554a50423e1cba2ede1fc3b517a39c21d597f03693cedbaadd4eccf0f2bc301d430ba852061ebdbb4548084b5af225d0dd45d2b5be775bbce34b20160fa6ad2e1222bd82ac9b6dbe24953d91d41e8dee9e68d36cafe36ed0c283926f4f057e055ba3f7d56da4f68e15b8ce95be3687ce7bf416201144827fae4699618aa0b9794a1ade8b7eda6a90bc8a813a898335f622650ae2a60b7729396eb2d209fdac8a8aa6789bea251b79bf0de8953368d8dc250d2e40ffae0966479543048bb77bec94aaea3e2a3665a8a7821d795ae147904f651e13296b97d33796240f7bf0e8a3ed86fda790fa81a5f33f44ad5fb965a89a99ea630a28211189a473cf34c840f5fe3df83a8d807ab44e2f04a57340b02eda084e0ebd8814649df95afb91ada0551486a9f79d6caa93ad6604309c9ea61dbeecd95c3910de1651a10a1ad40cf7e75486256c29c5d5d73fb8540a56a872fa9db1c124d0ce86231f3634fc598bbbcd252aeba93cfc9dbe2de708bcf7ba0283ae345fa2ecdad141455c1133d1ac0236c53f717d2078d439d632e314113535a8f407858d4c092c136141f647e8ca9ec573b238580b90650ba64159e5c22664f02ba403694bb8f07cf921bb50b03670934a8aab2876c32347f477ba7f4102fa5e7cbff364c965e2891893ce3856ed75bff17ee90f406b6e3fdbe8aa2822005ab42c1a2b1bf87f2446c03d5554e8511dd680052065aa5c24103b0267be0ac4119bb2d1dd9240df93f817f241452cf5fcdbb06a3a922cc3cc14e9b9585e7170e05a0856b1b9e3bc83fcef7fbfbf836eab4fccbfab6784e9069a4be7894ece5d2a936ffa4d64aa0ba5ac3c2ac97a3210e545fb343e74d6963741c8806ce905f1884e7e615d8242d2112726491788084bad995ffd54d5d38ab7360a26e98647ae77db9722a46a4e33b21ab947b36cc495b13538868ee921d6fc82a491e252447a62939bb01407196c53575f2ae4b00bab9e98a891e54d1c00fb837c9676d6062da36c0794d880e3c42554f305bfedf2dcba7fcbd2edb4659cdbb3dc373559ee0deaea633f853286156ba522aa4996485eb124018c474d0be47344683dbc958dfdc00728504de69e100b8551f6b97510974c21bb8b9526439182d346e9406c1078e8bb7daaae88bb86d6ffdb5fb0ad280b849f7125099e2ff841d0a97873512c90e9e5a5ce64d00bc4a2fad3743c318674a0f6639af333f0e77d62c26cd0bd7545621e7a6bba88a1f1cccb2fccc32c48edec1fb7aa9e75d5d21a5b85420e2072d66f0338ca6549523490d2e24faba2c5d07c55c885cbe9a55343d41d575be006db1b2ae891fac710467089e70b1184489ea0d95fb66933a39efe73279d1946f4bcd046c82ef038db8e8cd91216e602aa300d1ddaf8f4815a93a0bdd03878bdf7015a1fa26d8124a504c6519b4a23072070cd923339bb9a56a9815b64bd42a9357e169b3e7099ea8ec97de8ccfe82b160a72472840da43681771f60dd2b098982cba3f4fa0e55d3e8652fa2580ad7a20ab27ef2399fc82dffd15524701e17c0a5f50cbaed0159e408bde79b73e4274d2844f50e0e37303bc1a703fddf08b1bdacbf69b82f264264ce141d038a26f2d785ace313dcdc0a6fa7581260dc8166bae0e967ee34b302eb63aca3f8ffe6457aee365059064ab60e0a377344a872269726b197e5fdb4362204c80bdf73f0a0edc7f64b785717a199a3e1d8c90827314369cd03e5f17b2d8acb52a55aa6a0b04a2196355932a63cb34aab1df8dc30f1deaa1830bc38540bd10f8127e6f2c6894bb886de93b959be7818860311229f0134586278f5acabbd84131697ae18d4e091408f3ba0060bfff4fbf0da178f357dd1609b994654a3cd020f6eaa5e8f7063bbc60cc58a80c5120d58d7ae28676b3955be5d617585d495c91c46118a12b9cc9f64feaf77682b0bc8064a982c7aae43d5da44af3d653f21a6f5d0f9497856553ae9bee48878be7b80f515d496f6f7ad63f68b6c1449b657c9200812591a9f24209b8018a870393a49989ba0ebc4b816c811e6d5b7df22fa4054277617407b93661b2308758d8472ada45c36138f199c187314718bceae934c5e6aa47e8c3dca13216c3b512ef31e7a4704e71cac103dd49f335703f226711e3d0bdab8cd421acaf54b3e53bbf3d754288c745f1132d2cbacb540de606a2205955ded5893effca1ec92da677ae4c9d80f3ea5a631b96422a9445d7560d33c83327d4374529f94fedaa68dc928022cb4838b684034ba8b1b84b1ec392e7e18f11e695fcde01390a6114e9af6dd1090b48a3db0a256d7016132e741e95f9df7b38366d8db803509b27cab20384769222e339c4cf35a40edd036a10ec81b5950c8bd12fda440b1aa47247ef29db62c2d486b95c5a75a5191251b6ed19f0e608fa3d2cf6da063d9809922338d7d38cfa260707b592707784aed2b488b2e64bd22a9c256b04c086f69e40c678d6f7f0048fcf2c4ba41895aaf402757fba6a0fdf673d306f86c6f724d981bfeacb08988951d94eff7363d60c24ccd75057e62b848b8ba7fe4ec05819057a9392de62c607dc1592026d716ffd3ee87b98adbd17c45189516775fee220958a0b460d5834eb5633b21298e53c0264da8d6dd4fd4e75ba5016c47d183209dd4eab153e69cb2f9bb7e62ac1da3a1659cceb53f5e02e28f845371bee77aecfe0d83c053e4f04d47dc9b0ab5bbe6ee160482f62da0ca6ac51e68e718c77f0bb647e95d160102e7b82144d175498f63f0cab5989087563887789065ca2e013f6a218b2c860431c52949156b40e223443c895f1de6e65e41d3aacbc27641c3c788b9490c11fb4732ec59c737f530914892deb1e901532d6fd78b4bd87609c7675fee598294087b2ca2458476f6ad4cf0d25d35b50318e2885dbf8ba271044ded909267a8e319fb192e1da7cf40ba67cc0822a4d5fd7b02217b77233265a4546358019fe51f12f84584cbc6bb061270a7f462271982d209c84bb8e498d462c37a5e59a2f20160fe6c50fe236724dde1d27f33be581f5109e473bc8eb5c3c78231394dc958ec05099ea2b6f29bef9d193044470b21289b8f162126f0291ea571a3501e76ff22b6696365f11ca61b2da6ee63e4a5569f0f6d2ad7008314d609934800072165172a7e2e551a9dc20deb64fff874ad1c488ca2c031b1b944f2e70d3b912db0e5b8646de79232058583ec79c43c2f2f20cd0925051d2367f86b39e4e0b2586639f38ec350c103db2a08f9356a33848378798579216947f47b9af69402e55709361b644c30cff56e4777cb0ffa00a20325206c386b63c0c850323699c8e04f3ef467308a42457a05a74bf642b4c153adf646797b1416c66d7377a4bad2bba08088c3ab6def68616c000a6c70895a5e7f62228a471a0b008eb463dd9bfd39c94941947cf2cde697c982edcf4575a450a2842b54523d3607f2529ac5eb1474f8646d3afc8cfaed09ea3774b2512086ee7fa591970e6d7bd9c6d3bab1a4a358bee82d0bc81c98d7aed6248b649b2f4b54a635a6ae4a8367d242eb60ae43dc1a0406608ec7311e8c9652aff5954bb712421e957781959124a89623654e64448d0ecf93f23ece458e9823b22872fa2b96d60c82391125f4756fd1be89d2462188d2f6ddb21b4eb8087edba0159b23026978bc0dad801c7414c70f7c88506c0539cba13e9fc7b19b513f50c14f5064ddcdc440a7a3e018481781d9bdea6d2a29ea22336232c8ac4ed1123417b85a6d680a955b4edfab9bc72158ff50728f145b88b86b377bea9d60bd70a7a46446a3148f9982f8d95e786123cee29463d2a2898297198d15b14f767dc18e66bb800ecabf39a19fb8784683cb44d82666155839de0da4be3e894d840a06ee0528b76145320c658a4a0a6da2116f9d43031642930237b519fd48539f12c8adc71874167a7ea7dd82ead011ed3b1e4223013767d4f046afc9fa8bac2945b2a559f7c83d0f298db6da6880c58d56e77d309d3201a8b9d15f3138bbb4e440546c9e9b8c55b5b9db26b9585f8c21b5bfe7b608045f032205aa0c8ef970e98599d9db2bdeb7932603157f95eea94e88e588919f460dc106407d0251d61b42c287dd2fd03075254a29c88d7cec284500550879b4c157619ebff3518ab738ac3e8f16ad39346f5bb7bd537c555cf8815772e41625982f156be3e12d6d1e0cb95a77e748f9102807b3cc18c47b587fb1949329528958ed00a6c8ba284760396594a6f3c71f75dfe639e8ecbdf3501c6fa37cb9100301767f606130daa7f35e7d6514f5a67d73a656df992773bad31d10a7577d371d48a1ac9ad0f1cb58f0b931914982529af82f4a96278a1c3ad9092302c027b43fa1a6e29fc021f9e9527c23e7e1887c878c1edda80302645b3d375d31b575481227ad6ca668efa5db65d4cc28a424f5b68631830f19362fb90294c211d4ff82fe0a6126fb50dc29a55b569ec7e80361ec2d29e9d6d6cf2cda195e2de254f314636f00ee347ceecc3c2948b8346bcc3eb0e70ccc31b1bfa322efb23177c2d10d1373491d4bd308d038625d13501030d5bb49b943306b65a9d9a3298ecc92c34090f902308d630a142210d8cda6b61198b0a360e3676512a09b7e21cc63890c139aec4839d38e36c840fd0caac955d89144aa82f1c667da3ce9a8ec03cb56c97b55bae50a92b877cf53014a9d1b488633d1627249ed11ac4a1bd5e583ff1089375a1ed8d52038d6907d8df3bde6438040c2c3af802e23f9730db87d54651dbe4a3306391c02c767f9866e942960705761a60b1043be17d56c5a0d4b5cf560dc40821019979ef1ec430a513bf42bfad255835e149abc5b066d5bf2c05c5f5f1a2d86859523597555f348c6725863f0ad0c1593c7506ca59beaff03e8045263e3108114b9a25bf0fe85c0ebc1fe78e00a72fc22fa7899c4a8e4f9e92217654e44214cd4069627d734e2bf288e50fc140fbe4d59fc018e5c287f23e784c0fc2466a1f254af95fc10e620a4ad57adea7dca47f0247414ccc20c0842d47f4cf276766095c3f296c5f9ab9ce810473e62f3901e06f82b3457a0893291480b8d2ba1d82f8c0d66a9dd0566ef13891375e108c61d62f0eacda7e4be4d3687b5032508ba6d106ac3d036db4bdd235b11c4d1e976807a52bc1174b2329ad5b61645dc7438c448616ff84707d98db3f71de9a738b4c11dee1b4230104c7dcabb851f92cec559e41db99adf87bef2f460db83fe6d7b86e076d15b37fb1539dbd9a1a24010a0cf00639badbd8fac095f58061d2bb9d3903d3fab89b9a372cdf344c3aa49d83444878a9f2ddde99d4dbe518b807bd07bc6e10a217c0cb120b35472844c50dec1f9818a420df14eca2667d88523b17c30b433f05b7c028055f4a6fac1c7151d97b89da0e5938815e1ce9152b3e7e5b25103c25f20cf9adde40b073be240d2053660f765ad452be457d17730a437618582bd65babfc3aa506ecd99101db3e1ad1f42af4e4dca531f64002e35ffe9cace68249c6e05d7b1356f33d6ccb74541de30b48e36286cea9d8ca3eb6ea862fdf8a422078a340a57044515071b52459008d8193a47b55942538cfaf8db1156d8b54f2fd2d3b71963cdc6c069502b4e7ee804256326c672d2c9399ebb5d8b66c6e5b265da2a2512a7303d96358acc761de83d1ca454352c22377d93525ddc10a2c824bc82756bf28453e1160924a7ceb386ca4e310de2225e954465a95f1321750e73ab60c18a4c15334974b304e722b48bd4b6e594b306db120fc4ab57a01ea3c0515b68160af095f21e7f47a13d226684a4976682291fe2078ebfe0003102cea234f69361bdc4c7be57da53687cc042aeb409da02838b025ebd9148bb2bd9c0ef7d6280b167f53152d42886e6b00a0b9f6c37c8d1cc1885cc15349d88047b140579f5e99e5d4d7b25a6e040d75a490d8b6141d41be945bd0f299559d17709cdacada18875c4c8113d125df776d344e03011d847664d7c9285d8e6fc81de89a4bb1447b3e81b2a73934c22e99d96dd2c188970750ec80a0561b7726891d5c3377fe5200c791d0da26955513a9421c17a08e48489147c7b0d60104040737305d906517290dae5b410188093490f6fd1ffe2e1c6fb584a9970a45c2c462892a142903c91d29fccf5ad29982a409916d110e1cbe3e5dcf6053468e5733f6f92339c28860fcf3bf454d129b32b273fa20c1585504989d2f70547f65ab6dd50bfd3528448d8e14e2f016f5f3f98614e8a686a6b4f228624188657d376a444602a8b15a318cee707c6ae9b54066a2e0a7a3d0b28f332c9684b737ec8c56f8f60a4c0d0356fb84c9957593c189c647762f8a72fbe413271eb467df759976e3248e6b1c28c930b1875c2bab7c42390f1e26a4aae682a9718d12e347b1a484cab31f1143bfd66d4d4bd9679514bbc580b972153f4dd6ff8b80d561fad83028ccfb90b74b7faa8d38aec282ba5d1c6a193813e2fac611013e58b13d839dfb7655391cdc524e0ab3563c01a2cf4fe72389b9742d66eabcd4e42584c706e6a841a78cd72bd256338a5826cb315c9a7a97767842e745039529942a008c84758aa18ad9c15a622e7dda9448c1c961bece7df51be5f85b64c145b4a1b5c39e48d133f152571c4f4d4164dc14b40432cc14e822c08845d8b609b96c9f944a9e105fcf3f4f60f027337acec38e29050414d368f7af62990d6855c9f8c1b873882781fe1308dafac1dd1637c48f0647ce9c6b13e97d1d89b7016bcb7ed9e4a4e8c9530612f9d08b1f45e5b522b7965a0ba966e400503f742142ec4f29257957c9345234bf075ed33a352a4e5b7e06ba4615fc76722dcfdb047cbc91be51b0b713f9654015dbb0fd09eed4cae2fe5aa922f5c7229263259b2526c619c730848b967147438f5400f50ea0a6f89862097db116f854592119dd9da58f92a9c7ec2d1c71eeddda2fa048c0e21f9de0e08dc6fa67b568682477500004b01c0ede47b3f09d0828f59983531fa79b897b084b5b887a0910314ca7c37a159029b16aaaef0380767e1e94da56cc0ce067752aaed07bcb03880825cff9081ca9fd04fca68b57e304a86d464c7c016058db60fb316e67a2e6f524ef0a09d61f32ded420528ef54c89226a808bbc154cbe82719491b5f69ffd7632e7aa75844fab47fb04587b742f958eec33ddf2b0cde4345d0ae6fda9174ef98804e49e5cb23083a2fc5061e2133ab55d75719830e8b211fd46cfdaaf7da28834bda5f70d1a2f21f31eb837c8bce1325be5ba10b5b218b0b19f10eb4ab4df1533bceeff80ab85d80f2792f88cb59406f19b019b505582b87a94699a74a888d254eb748b75f1958423ff1428e19bb24d64645af5c4295e498e375b15ec0bc4d36865c0a2bfd78f78b1751968d8166303edf66e1b3562e9a833e1c60d1229b376d702ba06b8cea1b59841161af7e6fe99e1739d806ea0ff82dd408f27a52281fbe2384413cc81a930e124f7a4c96079a1a376ba3a331039c0ff6f53792ffdf40db36a96aefa31fffb46073973c3ef1ef7ec3a7dfd9aa0f22a1f6641051e7d4372a720007d26336c079e2b79be3e2d22161128b04887da36fc38b5940948d00e02ceb9ba22be7a324b16111f5ee04d64b9db8f8cde77232fdc457883a3a989a5348055a94a360976cc9297a9d28268a8a32e7482a9c3feae59a3227f9849cc1c34561b0c722cd08bcb5304ec95e9989906009e1ecab691bb8dcfb4616a864a33f606251bd7c2c5806bd7d25b82dffb5054b7f82542f5ae0f8727f07fb3a39bf4a091699ea448c00ffe1bc72bd8bd4cbe61af1cc48327ed32de5fb1e952e595ba7b36541062fa10b40d91f32dac9ac9f448b131b7446d3e57a20a31edc06ed6b045804640b99ed9a49967a48efde7db2996280c57e22c567aa0394b6f91874a6113e568089fc234a644f09612c543262fab3c305376710b98fc3a63e895c52198fcc42602dad190d124562558ed8a0bc6487f1dc21c357fbcbaa4a82c9790d31ca7b86ece0b9470492302dd8472139d791ddd6263e8ad8ae509a7821f2ccc5c81ae3ab15d5e1c4d18e1d878845e0ac001b5621f97e72215b6ac206a6690778673f5239835ba4c170e3022251a98059128c9ce05473120e058763161742d417148c994a427cf96f98737f4e140abbbb5de12f0e808ee1e326dad7109b87a0cc1d5fb85b9882c2bdba5cef6a9c74df718e72a3354408621b37e4ac64a51bfcce7b097671886f7c774220af99d450c461dcd3e1304c0768b41f44d322c70942cc34605d9a70e2f18a7b2a28a0a56b37007141d6b81d498c15287718860dde1f37b8a270dfe9ad18d0a2d34c7c129b86e35d53b008e182d61dd3cd7b4b8d57c5b8a1f9ab7f895fb590eee3927aaed4a8237889c59055d22b4d8ae6f60d79ee27433488ef08b3fc3344314c5b6f011e888a6c6205c15c354e45fc541a1660f2a717d2e423ff867e9f4f2156f8121952bbfa488d0e5d22c1c5c505a335d6778f79ea09a7d9f2f78a0acb6b5c882b7b2dfc3419ac2f78852e7407924b58f17e14593629e24bb1fab376292ea849af1d2e7a6be63783747dd50b442503ba73fe775a409819251d6dfdf24b14a1fbec5b2464610ab1f8f321ecb821912d0d15a9755f5feb5e2c4d63006694dbeb2ae6f111b6cfb489bd40d3f7c4e925e3b115d0ec2020dca937da7ab2c0d78cddb0adb5b61b218434b2f7de7bcb2d036807c7074407cebdbb5889a7e212410421c32449ce1288e3e2d42bcac58b7f2fee827a510446fd454745ec5dbe7779797ef2ee50b98fd14727cd6e91878f58c82143a4c4e25d3e8c445654798d8e218d6e72529d6df44805ab21dbb08a61f5c2aa85d50aab20ac52589d5895588d4f20565f1be22c0fac458675a9da6861350a3a0d9e798787e199786a359f62fa91bf05103d1185fcddc1c2577f95d9456697074b6b4fe5cae1c26a1484fd001aa168b08c83651996fa9dc195c962cbaa57faf05878b0586aab1ab2ed865d400fd9aa6253305bd5cbc965ab6a25b16c552b27a4b25505f9806c55a91cca5675769169ab2ab190b6aaf14955a192fada1076719607bb807ea37f6017d06575b6aa6d59d8056435da7a6810d2a75662ad5c389c0b52038dc0233c430f0f99e0992cc02a38c66a348d240b0b5d8b61c815f2d669b880b02ead2ba5ec96d44ad3daa3adf4655d5132e1e1ab586f2b7135ae051eb1b08893223a7dca82764d5f7405d18ff4d2d18fef653938af083c831d4e9d1e218b75cfdac7da369e95aeb049933e3decc231619127e380661b4a037edb8910bfdd840141400764b0c83d35e017c2646200a54164dc2db0611168a409baf21a7b5811ef3d88b0d1ca82ca837e61914a5a6f651e16a92bf3f7b432ab0c9e6c931eedc7cec70bc7fb5543e11f4ea3c9e918903ceca1071196d9857409317a598fbe04a22ffb52d61e21fb229ebdada74ff06600088cd90a9ccd8f5d267c2369530cea600e2c3c754b5f66775a1c138f853091aa958cdc1c767fd899c93f2bfb1202f9a1390045c52c5575cc594b825f6becbab3fd32aefa7163d8a96bd1a1b78a299de90dd7027986141a4265747e55d566e7631708312450f72a9628c459024ba51289f411e923d247f22aa5bfd25fe9efa56341a0b164559ea4bb5e522a65a58f3ac9e31906a2542a65a4763aed76da3d69c7d3cee71a5956c561fdddcd6982a7f92a89f48a5aa12bc753d227930e4e77b70efd19552eacf6c3a463440ec79dee1cdd71a627ee3ceee4e38287427eb1bac539e76a3e843b15233a92b1ada6f3d390c0323c137ae92aa473c7582a3fa4a6436a3aa45f11492744226597070be93d4296949d2fba849027951e4bbfd13be27390b21d21d24b2152b6427a8924aa6d489f46a3d168d48858956d8dae71167e88b3199df4eb58602f21481f596e48c71c3210a4ec7d9a1aa69374924e42445a7887d331a5dfd092290613151cee2695572ff806b42cab8251493b73386b017669446cd5d335767f58973922ec02ffbaa68f60991687eef0f22d6ae31695cf984afec50b955f91ca2f157baea2a2f21e21aba2720e71140b4fe145432cfc11425e2533a25d3a3ae635da411a49e5c21a5523a62545995262602be169284b649ac9108da67700dfa47bc054d86955b24e0205659e896e49c34f1caa63da71434c48da087c8e881b8283a653fa28d3a1b56b3a482711ed0d28c414e32ca6182a179d2f1fdc1067e38874cc285b297de48674cc4aa99158f822de09aa88ba4608ec9a9a9a1a9546f912a2c53a267dea4e02beabfcb6125688d25f4dc7a81cbe8374123c730151fa7bdd83d10e98868a7826b4d3491afea9d4527d2d2c950aed0d0a6fa2b455547e4d2abf57797543fa14df4240e16fd3a1bea3741fcd4afe29c207b56a5b91b7be448b43ab942de1e2f0a46a01768177750b5ab0f0a219f414729135222db29b69842231b970ddd805c4b00cfbb3d89555805de0ad665b0ecf80321fa82c367bf7236a03bca06a6fc69b6f3e799ae103889da7ea8d80853fd996e1e3d976aa42ca1af1b2fb2ccfe818d70e73839d36dd6fbbd91cb7ee0dff20b41a74ee0d8410e0585a719f9c655958117e61ac3b4c678efbd41dc27935d8d7cf62797f17c2c234955fde6f43e28610d896dd1dbecdd91eb7d98e4ff1ec6424b7c4bff8175fec57103e08f9c125200c59f7de0fbefe81e9923140cb5034d18425381775323eb3f415fd2950347105144d64018a26a6e08b59b83979e74e1d135f396bfecdbe9c7f67f82e0500b190016c2f1fb8b750b1dc478156dc52a071475fbec35fd7a1838e8e5e4d67a36bcbca6e03d5986577fe0292c4f2e543cba2a2aaf7785466c40b4bbdc77b0676ccbbea55eff1d5fc7c35b31e94e886bbd1a35a9d079024a11a0b33f7ca550f5510befa6d167c751884cf90450fa47f2009d90312407a2065eed5e7196c8c3ddacdc1b6877c97ab3ebc832cd0e7790049625d9c2e33e285c57edd7491f449bd3a478a590f2c5b4209d24ba552a9542a954a2412894422910e821a3d90fe839451d7d24aa552a9542a1d04357a2865264c08b41d74b6576bad31cfb8a05ba00b2489b53ea75577f4577450d639d1104abd6561ef8c3d061df331bb5436b325486f5236edc380b4f1988d99eb6c4506b1a263da771ed2c6cc08d7462dfa40459d8c73ce4561f9554a299975b8dcc4f2e5ab2abb44c818638c31468a92524a29a5e4c7dc526597087ba91f104228a594524af9cedc7235e09c737de6168a2ae1a207249c73ce39e7babbe37fc00c893e7cefbd1d76b81cb0973a880940e9708158be807019b30ed44140340bb2202a560ec423f1c385085860c2892ba490c1931ee00f204b4ce10132dcc0053638a2093d38e7dc03ed8e88cd6b388d499f969c805bde6d786112d1364426d13c3fef2fc890f757cdea84f4e9edd8fbb7c33352f00ce8cfbd2b50838c68b0abf76cc67b92883e4ddaa07310ba076b541a004d42a6184bcdc140a063a84f397300b131e68887547c4e07661e988bc051a0a73ea9fafaf42e84f5d2b09086eb2659de1f96ca669fe48fbda7df794b563ece492945c15839df1795319dd43cf31c21db9b8b8f51b68cf2d2ed80f75143e7df21cf50b740a7a88c6d5f42c847f918a511adfd3927159cbf2ebe5decfec952772bfd172bac3bd88924962d74a28865cbb66a6697d7a7f7fb605d79ee729f80ccd65570adf5bbfb3bdb53a331a0d77219906ecd0811481e704355a196bd6e2d49c52c57624bd00bc4ba1a7681af5a64cb3498393f06995108110b1f8f601a7873133f60e1630d3403c32c2c3cc4028e8161192c3c9c02c1c0500c161e4a815e60f8050b0f7f2017185e61e16114a805865bb0f0d007628161162c3cec81576078c803a9c0d00a161e4281516078f8043e81e114161e3a8152303cdc8151304d74c22f1032c1c2c32610094c139ff00b3c54027c826922147e818750587898038bc03491875fe0a1112c3c35c134b1a78708161e32e11919878741609ae8c32ff07008161e2ee1991c0e0f7dc034310abfc043205878a8846770383cdc01d3c41f7e81873db0f03009cfb01c1ee28069a214863ab034710abf20e1991b0ee10d2c3ca401d3442cf80566874b587838031f7ee1993efc84812f98af900bd5d34a6db8c806510da7a1061a564eb3f2db96e6cc316e23c66f5b1b672e4001ce6c00039cf9000738f38d1b67b6f6cc3df4706604202001674e008e33e3f0e1cc3e9c39478e1f74280088059cf98733eb38b302ce0cc49917f08a87cf6a3dd679acc68f2a76953a7aa974aaa6cba8a7e750651c879ac3592a0ebfa1b23cab37bc6bf6d7fe02ea753e584c91f213c5a78707ca13273b4d747270982c519204c99168e4a69970dc8d85d445c1a0a0cdba5f58243e1c98037d2cc494407d2295f9ccece1e03c1c1b1b1b1b1f1f379f099cf3e116e8b6c032efe784020bdf084cef03f4e70b5c03c43bb2c80af5a258789c392928bbd46465d7f4cb8c07f4c2223314422e587888d333b0c2c600c2f0394ffbec30a14a2644f27ee48f349928953ffd70fae1e074765d120b8fb3800a445540d5517fa839aa0f15474d40bd118a854740eda1da7aa31ea01aa0de9873230e4dbd71c98d4a62921b91c423371ab9f066da17cfaa0be29260177896ea8454974395519d0dbbc09faabba9453400d4eb90b0f001a8d72961e167d4eb4870dd092cbc00ea7529b0f02f15a65ef7020baf43bd2e06167e00f53a1a587802d4eb98b0f034ea7538b0f03bd4eb7660e163ea753eb82e081636715d11ae7be23a245c17c575525cf70417050ba960e16780d8fa67eb2b028b985c91d7695d4fa37938ed05de518169a211235680c233a428304d3c72640a16de3de19916871109125849c13431491227ecf00c1505d344254a98d084674048609ab86489127478e63dc134910913287278868722304dc4c131020ecf584d304dccc92102139e9941609aa8a333040bef96f08c0f982636692ff04d8060e19d92b8d35ee00e1ce18069a2132698263ea101d3442831609ac8d35e20cfa81ce1999291223c63ba131d405902debd8069620f0b9826fab4179802a68951dacb099826feb41778c3332b316ab80def713088b2821f14b80fc0d3c429ed0522c134118bf60279a61ede1dc134ce074e71237021b0f0550d9586db506b38a9c2788b4a7a555bfcd58653b53aa8523c3ccb6eb8818505071c72c841868cd3a9a505000008400066cc70711180005e5e60607418000168ecb0030d5fa9316eaa2ba5eaa2eb8b8faacab13a7aacd86bedcf791eaa7559eb611179289fc4c22559f6708cdc708391232c2c4790e08003922439e49044890c194a969c4e4b98b4b430c101000070720210801c9d1933749ab8b834d9118000769cbcbc3c3e8139cc6f47283af00ce0f0b187003e34a2ec701da00c80c712a08786cf0e512c7cfc89912233a5060f313f32526afcb6e5e12f78a8175af91a55a6decbcac7d41dea55b1f2342a01eaa5c1ca0fa0de6ae575a817072b0f535fea75b1f202a857072bef52ef0e567e46bd3c58f900d45b002b0f00f9967af9092b7faa979160e565d4cb5158f91cea6529ac3c0ef5b2d4cb51b0f237d4cb54b0f259bd7c052bcfecc22ef2b54e76917fb5d845de864ad945be865a6217791aaa895de463d418ec22bf52cf2ef2a6cac22ef22eea895de44b7506bbc8ab541876911f551aec228fd51aec221fab0d76919ff546027e601779505d00bbc853b501ec225f5508b08b7c8b1a017691f230ea10ecc252764b6c09ea6c055232134127d38b3973da08a6d817cb4f8c2088ad1eace493edb5295c921722d9604e9f3a04a757d30ba61a0fcf6855b04ceb01b7c0df70c3ca0a89646fe3a9ec6d3c32aea65be0f9e1f4a9e7e19ca21c53028d53ec94c6033327e40e49c78cae021d110b6b9c8ca3d464c27942880d37735bd1f1e45d8dc3a9a12e89a9068eab71f1eb9ab828289c5893440d6ce20363c02df0534e3f2f52e4c2224cec8006a1088745a0117681ce27090d2c3c94f22826089b4cf1c49b30f980e2c0c217611798042a7f69d88a1f804448124f8cc0c7b2587e620439b69188408ae53e8fde284862178e87f3725ccd9087d331415c123ca304cfc4c3b7153414b4218d2662d174d0966830b0100bb6525aa711840b1445b97aa7751a68be98ab0f6763f69c682feff5897daa8a6388d818e9aad42cddb8be87844f167eb8d0852e74810b51baaafa466c7c2462d97290ca3958575a6b948f67adbb0b4775c9fb78f639073a7ccefa8b575c01e2c4a066445b719782a7dae3e174f7d45e96cdb01a94a2063f575cf1738508825851052baa608515561cb1c28a23561ca1820a9e6ee75c73ddddd2ba774f799b939e9e9e9e9e9e9e9e9e9e9e1e2aa8a0a28a2aaaa8a28a2aaaa8a28a2aaaa8a20a2aa8a0820a2a3a5ab355d7459dc66ed535ad00b2a645e9c4e69c735ea77e2f4a5ffd5d3a2e9a816e511465d5e6fab262b7ea9a569873ce392dea947bbbbe2c8813dfba63530e6431885aa4d7c2a22a7cacef4dda8a9a73ce69351a6b529635e79c95b32ceb137bd3cf4651a7d19a93a26676ad4fcac5565dd805026196656193beba627561b34d8a5d55a494524a29a594524a29a5d79c97853deca1ea9a13f439419f156856216cce5fd36a3416139665619665591666599768341251b34adbaaaba335e78538944551144551d49c4c4c6bce39ad392dcbb2e6b4a837a5c5ca0aa0392b100804b228752b76abae698589519f18e8028140208b8240d4af39e79c73ce39e79c73cec30bc7acd4faa4a85fd15a154747ca9d3aea563301aaa85fafaab6de9e740ccd56e62dd1e8f2216c24b20e9af31735ad69c1c9763a394d1d56e0b1a465be14d00f04d69bf566bdc5574ba0dca77859f01c05bdb771a5adb46cb6f65fd99d9352533dcd536cb1ef98ce568268b7dee7b39c78866db4b2aa558daad9eb3ed6c49d5922142aee98959ef1dedf7befbde79c73cfbdf7f79e7befbdf7de7b4f05556b4b07b4fb8d06afce705c855a1696ebfd71848eaeb1fd1bdd56deeb0e1dfccc881ed2f65b16968f50558d32bf22ef068b294f9c2849e2863821517c74728c7491aec102ca93254a1a9136e487c70f2c39a08ddf102a66b9588deddfd88a73a030f675eb81f6c11b22f64e59637bfa39a1d722d2a0d8fb88b4465fe3683f4e867be8371e77e7e911b16c5ae6fab188748c2362fbd78f73b05b6b8f9d9b7ce277f7e47b32ada7f1bcec350c49d528bf43570e28431edb26279373a6558a717a3a8e468d773a028bd0968136d382b1d0c6c93c1dd7d29fd3e6e9e8e84c9962f51fce8c29853e2c2ceb04f111f27e8858fe8bd2324fa75bfa4d7153a6409b973575cd395924016d24b48149e011274f26e5e449c87a3c3af0caf1eb8a9815756c7b6c0e9b82de69ab6a64353aba74b458983ebd26240b736be84416538ca7a30476e95ff976baa51f12f8a51d06057aa9255998f572ecf4a95dd2b6ae3d9cebf78e1d0d84d25efab73dfb78e5806259e3e6b06703a1341ae8a4bdf4955d935b624365506c1f2e71326f0a74d268e013538b4f875dea6b32053e990765d7e4b29e4f2c06051adbde70afb29d3a331ae0c38649e30972a449ff1059d276c648a5c227f7a7e3641eb7b8778ce6f7c4b6655d9fba721cdab4b8a20b2bbe9a514c06958318e4a161fe401b7bdf5382c7b213969f50e2c656d81368cb9c1327f4b69ef6ec9dd7b239a06d590381c3712d6d39277d87e31ccc706c43f7a45bfaed9cd87e3b277deab7f913868a599c40af659d4855b33029e8e51dec0d70a0df936586579181712d8ef4ecf2a861a71528b3ca21730ebee4cb4b78c97dcab8545738f4ea358c732cca2ea5596d58b3b0f78543dab0d86575170e1a7d925caf05b91d6cb0625aa07c87bd28163b59ecd57bed713ffe0f2bfbd4a7e633bbc8cbec02714e5e662758a9f3732b7c3ee814ff6425db67c494d90c7829dd3177dd68f815f9b822337e116d39ab45b4edf1a3c65a7cab16d17c7076592ccb2c1e4e6ae3e9fb8da62460e59d61f9c2586eaf1bbfc78ed4aa1740c124a789657e10558ded8663bbabb37f96624fa87dcc75f6a99d19f2c0b976d1a3f6558d56d6cbe9d373e7c610434271e6ccaee93921f3d225617a670f07c7470b765e41b8631db3f2ee61772c839d5993659a875b9e0f4fe3194277b4dfdee679387d6a991342af56a41d4e9f9ebb29c28768f4d680e88015bdd5dba00635a81501ba3b55a9ff42575d140aefdcb3a12e21aa85ff7161bab72353c83ae938e6dd65cf865ddecdcf2342fa35b9168f7495ece1c031f04cff8584f8340f6db4d146db4bf7876dea7aa95e1b2ccd8a689664f3dc47a0b7d16874d733aa2e8afb6894b99eb7c30e1be570511e95b99e3ebd28cee70b54e47cfaf42efa8d6e5594b9287dea06b2780a554344b73c18d077c180b66d7faf18b4c48bbb176f9582428f61a7eaa558e674faf4a64e939de7a45b769cce4dd53c415c122f329ee6691e1eabd51d7d1f4ee0938ed941ddf1b82bf00c46d54b8876d7ee5cbb7bbb50d6a4635ab602e18d7b01cb30bb1c1baebbe19bac887693fd3de998eb9cd8d731fc4409de8362df3128f49dedbbeec7bee77eb029d028d4632e1f27c405a19376cfa5a3c516f19a933eb148e9d37b3becf276b8f7e0dd11c704cf808e1dcb6e0351edeea74fef52aa9b22057a1d11f7b36363dfddefb3b7799e94ebed026e799fc1bc01ed817d43b0ddf384f03c2955c87a382f87ba700432ec5adaef0b2723ef64a804f4fe2c2d63721953187b27c3ccaff49e0eb63341557db20f3e9a6d8e9aa0f3adb71e57103333e29d1971b9cc87f6b872505da1a68ed84f1c418974d587f81602ea635ebf32204ed6fbe4c35cb97ed51e2d88f62e5d06443cafcccb537565ca3823636e275098a5e2aa59d5e4ea3c34a083654caea57a75669314a728d8ea57b0d57956bf2cc5564d1e6163398ae5276a90d8aa5d33bbde3c0de85a4386f3cfceecfea8aab314959ea8b1b1d7868e8d8eb9d4563109e8987ef51f9ca9bdb2662946a5032a3fdf33bbb3814efd87ea0ba8aa5662962a46894c849371e1645abc72515bd4cb8968d790fe24e9b2b6bdee247659dbb19a43bec93728df47c497629fc0c666818ddc30ae254e8a6591bae42b276337169b699518cef73679862dd10b7195b22bbf435eca17a50d999d137946a4ae0965778eb24b4bd9a559cde59238d5581405632f0f162ba910d75b6644b3f298ab431e6f81965194101a0fe3641a4eb7c4df64a2b12de9537c48090af3f8db96c8a83cbe931072132966caa14c6c6cfca561659a8d6b89315ea536c0b5c463f5c91a7c727792c426a7481379d51a342a102834027a5f7f80c96d4b96d4d8178538096d7cc70b87cc60fae432097083cf35774d1be918173a7383e953cb24d0a7382dd1f9890f34b1b76bda12284c7e70723a264622661c3d7e545a42e5a15a44b35856813ec5b721443899e9aaf8219c8c4a26e325b0b3e38084ba869c2996fa6d113b29aab9f92bb2ed4706e2b080ab5ca3a8374ab6780bf08c9066730196a9e15ae6e76d43ecbc8d886d37385e98f3b71d117b4e09f469d6a831a7a9468e5b4a52af9845977d2cc033cecef398977209eba59eff0966ce1976be15895334d7429702d8ca26db6b8dad39e773b09d076265bdb7f20e61db67956fe81e7d4077e1684e069099df5f9fdc09de8db6dc7bb06d5b0f46ac64b51e05ec7bbcd53eb782aab2ac3eb5e6606ab40c113525538c770cd5ee60b51c94a0f7418f5cabca7de28b81589ef0adde7091ad3e39f79c0fa49ba120f43eeba6059f6b52314bc734989229c6594e332a1cddaf7a8cf157776bddad35b345fbcd899007a8e38e2c4f8a9007e865b1b0b9d768844ddfcbf15a7357a03e4fc11b1daaa10f4208ca404c9d9ab223dc09e560cb77ae39da978e78f90ac67ccbf72b2a6e991702017db0faa159ebb986969bd7e79cbf1e0fc4c2eaeaf5c1a08a876541590ba1bd482516c20b87ccac1012a63703126061e7e527a53033d0fba61533a8437ece9ef2b525f09954b57307626385f5b6215e1f42fb8660831e955b6f62fb366eecca100babd2abe6b16133b2babb5d39e8a5751b362db071d3d885a3c9aba22eaaa3cb7e8847da51884786785a88c742cbfa04c201eb20eb201f3d2d10e8b54f590444ca76cc3bd1e56fb48d16341ad09b659d2f2144d9b5eab57163db2d2b6b0759cdb22ccbb22cd72eadf996ad38d315c22ccb7a6b10c8c68d8d1bdbd89543e5ed52e916d90e25af92896ce8f501df2d694915183fd2ea3f19ca185e19a8c974ad41ab0f84033f786cd8b44b1b47eca5eea37780fec336eb6f5e1b368dc67adb28622f25af0d4afe4e1b37963acf4beb9292eda0cb4b6a4ed01bd55abb035199556dd8b497d14995744a9b47c5c6c9c0d8992a3616c2c3d87132304c94b60cbe54ea9e9ad20f44f52e95b215eca44bd3120b0fe3c7c9d01ad7024f6b60fcc0f881f163e16db4e03044364dea78e5e8ef0865b05d446b60d3cc460b4ca64be56b2c84d162365ad0685a6b190f7863439707bca9de6f972c335d0b8ca11e332fab67b1eedb3db68aafacf6b1d569f6eeb1d18246d36cc5b6aafe669531b571638ad1a716a34f108a28a8ce6af1895652f4027a20b66a97a0fb8096ca6cb4a0bdc8df7093e3ca9052ab4090c252da73ecacaeabbb7bf432d78dbdcfca56e70a74187574ac82da45305644d99d9c5d9375d99561dfab4a44fb94fee1f4e9dbf9619b5b50daa28b744477b445b64374cc894643ef6ed3f0c64e4376db8afe72ac8b91ad64f76680917566caba3b73a7b5bafd76ddfdeef31504963d27b2dbace8d90af676d0105494363cd4dd774d644341ed24123719356434f0c4c8563277d061886c567e198a4ae5a6435ca865ece70408244584899a3bbb33bf9d1d2dfec3ba479923d031a0b77e7b3a20a6ed027410ed9763413fd5172286693c83f24153ec98c1329f5f0dfbf8fcd8995e9cb9b60803650f07461dfd45e92e6a8b508575082902fc9863ae0c7b6186a0b22be33789b26ba2d9a5cd2216b5c69cad84dee2d88770326d888cdf64a2ccf3f8188f19b6fdf29891896ca80f679bc33e92578ef61da22c5e420c717fae5ae7b24bc29edd0c00b1fcd1751d5e382e1aba1b784e349a19967f194a12d90efad09d7bc887a3cf8642a735cc2f02cf8946d326c012e01979475f0ebf9b7d0062bb6b0d621dbbb0a31c83c13ae682758c05eb980ad66597c78caa511086b5d65aebb736450f3b0d61bfe1b05afdaa56f6fa3439da5b59f85cd6a36531712cdf002446bbe10c95fc03129c8ea8b4ac36b5490d99a20101000004007314000030140a850383b160249247f4300f14000e8aa85266509c89a32086614819630c000008000000000000018c4a8200e010440b8f063d76996cb7ae3a07e035d1d39d9f4a213b168675ec2b1c390676ce607a1fc8e8cb70294378f9a658cef1010e2c1fa5d41448908ca360dc573a72a6e68eb3d390bfd3e773d8ca46de51a9b194b12f525299b7d4819df475da1896bcdd963ed7f97671ecfa5f8754e662814634d975a97605b96c9895af94b92c13bb64818ca232021ca375a190543db255bad0471c50d60c54091d7813a5de6e17fc488825cead46c992e737576e89fc07411e3e528bd0b344a3fdcfcf0e52cbe1f667d7c5a1506fda5ef7cb73005843a9387f05a30cc71d1ebc6aadb21045fc1d9a2f39b70c6e3f80075dd29dc0b45b8d72bda52ae21f24273717e79c7e351c225a012c7c32ba1c211b6b1972827c58df08fc1b95801b1521ff5844ea061591cd2d97a10b0a306e81bd1429105424a89e482454db95a423f53c70c202a022c904c81cd2c15b356585a1ccd65a576bf32b2b80353e8def8dae2dec69a32c5c095b4cedaf2a56e70f062126138c9f265c46bafff9a70ed7f0202f73975d3b95a756d7b863a55f5077a84d0d6c1474e62c12f12e64d839e0553a58947473fd32d584c598017301607e09421ae511fb717420a64566b818f0f1af415f7fe17721daa0ce032fc5034933eda371eb49b9bb0a3d9d454f7503d6bbf5df91d7b97fcf0ef8fe1806a838243bab7ae73ec04551a0b5fea718c873ed3fafd35d4a8ded0526fc1688394558c96592e30d94bdc924d778dfc6afb46bfc54d8b7607dbf330368d0880371e2e6369ab767d004b1ca828c825ef4319d16bf4536485893be41992550836ff8f6470887e3501b3eb5e5993c7f8cae51673508f934a2db426355031a91757f044db5b3036dff48aa714d274bed1691446f9a5f64e810f5d38c0e567040223b87435e681b91c2c95a1e9de9acd99e16e04d3793c207f09005988636551be87e49b641242cfbad07b0a093279b33504725ad217dca0942c340e92cb8ebf4dee24571369957c0153aa5f15730eded48338cf42bf22dfee3da951ecdcac02cec13f5908e2e6c04130e8465e2ba0aa8d5199c5ac04c40cad53c57baa213df7d853cbf4e62e816ffbed812b35627879a4fd3f113ba7786b81e9eda6f0639416e2189c0cc805d078079b5e3286456c9df4f50772fdae21461512ad5fc5e2f9c427a52003ba81d4118fe350b488c7cdc5e373c6d11d3061e23f0316da3da1076d607a44b83c2c31c7a852a6db1f92c7e45318f8a2551ca2273402aee0e8cb43473d4538bb1bae603a13931f96f94ff94dcd5aa70aff9a6f05b26a97fbc3b08f695085aff69cc9c388545f3d3fb1b9c273104787630e0536dd71eb2e9b2b6d38077de3f1f18a096a0984e4ae22e4cbe30a7c6863a00f93913daeb6df8f2828b2d36013d073b0adeff16ca149eb788429a76e56b4eef7e5c4e25ee4033635ccf809aaac5271ac1f4299c9f4e4e765c8891eeadfe7c49b464c2c5df4155b0668fee688ba9cf26e0fcbaa61849c0566bdd410ab236da05c4452a4fb722ba1553a4ca801b34521ae914748705cdb880e936af5d3d11b99f199776c44a640827529c44b62aa24492b48be4185c9b25c85faf80578d1962d15024b065623e3346857edad48b7bed1f1ab9428bcb077e5148d74a4bd72403cbc3642b71b15851a92f2ea8b88163101103d1c29a9eae527268012e706c3347f07d83148db972a1621399e9b1469f883649d28bb25525ab6125def46ce747e2b7849f3794da0564f0100e4339d0c8ea09728d10513f0cad36542017a512eab5fcb2ddde14a06efb395d9475e57c3245ca1b3356239f5142b74e8e548d24264879404cefd08234fbc90e56fa54540b622f7eeb7e3f1540ad580e1dde6f56a2d785a4bb922b0a732347a7ceb5792480376f31b2ed69dc2ef1e54323cdc98849de918993ed1bae4bb4b994852ff8953edb15190474822d6b0e569322fac57ae22e6bc0477b17790272cfdb426d6632e0582e6c534da8975e63f6e447699b7f0466a7598544ff3ed8662899b25ff85fee4512b3d8581112bb8e0ed367869c14c46c2d3e704fe2f6b3527ab2889f72db8e3b45617a2af174b7f5febc2c071b2d313195deae2188f7500bea7635699bc68bcc1e2e27d7a40eb6b506a14caf2985f33314e52d5713b3e628be36908a850fee34da0ab2c55202d2367f40dfb005780662dfe4f18d5c1154524303257cccbb520f9573562a1f8c91d9da8db67e8ec72ee0e41b7d7ee4d11b399cf4f6d7671cafca10483c74297271a3af7476d4d222b351dea9656d20da6fce986eb81cf4881ed8f1dfd62c2c91c32ba5940dad3676d40e282419a04c9c0e78bb89aa3ba74c1b8f0e9d0f5621fc093f4d8e2697adeba9f602847b64056db1d69a8089de1935e163d20bc7bc9c225e680e4be6a59c239993d746626d9dd3963a78362a304ac4b4645e3436c3367d2448f13427b8d423672a452dd6bf26fb4a5340f4dceefe06197c067090fedf12efc252367273e1516e7c5f98a5132ef1af5bd2cf761faf4a429d6537b4636a0774475dd21a58effa9ca6e049330bfaa332eca34039d225f0a7fa1c9807b441ac239368b58fd538d23b8cd3dd3fe1a9124bc1345e21cab7e49ec8fdb594ba0dd036da2d052fcc681f4e27661f28045d093ae2d4da90541285b012a6bf00325323218573a68003e25661d36ecfb89c6789f0d79b58be99920555be8ab3bb7fe0faccf660458c62b1f6744496cd953cda2948a475ebe192df915ee40338a13a0b30fe256bc01c2ad4762fb3b686f96c3181df93656c82c91ee266093a303365cd0f801f746c2891a1f509ea4b831ad9f3239332e4c16747b66f3a0fc4fd29c87826fd90ddfd03510fd071656444ec850134408ec525214d729f55e798ec9d9c83972cd944928a056e8dc489b4097d605bc3593afc45c083101b60efc298e128e4981481d300049a9255a037008730289c03e99b7604ace629de06752f2e3ecb8e52a97a949ca6cc66b3c3d78f4b468e3d6c52794588ecee6e32673165969acebc3aefc2f298df04e6ee7ebfa682ee808244dedd2422f486e4cd9595caa85af9e24d2207f12686d7c2d5491e7307c638307ec9e579b1368dad3fa014dc231f90a6e147bf5e6c26ce6c8b633c9d3e0b2f77f824de7592d566825ebd0236248bb93569ac581ff1baf3adfc97e5400e6a91517518d15bf33c69565a0b45ad63c626e4c3db66040a1cd59bfce7cc6d9284b65fdf2267891b460b01a0ad28b8f6907043f24dd6a0060d29683e890b70ff0597315e0b165447c9f63c15c10c733b44dc6d5e5d48bb389c85fdc24094252dd3e208e062bd2a8405729d8699efb9d06797d2798485fe79dbd5c4dd342188470fb02c9bc13c0899155d4336ad9b8dd9686048b801904bea85852388f84e7b03e17b88106c755916aa0f3c14158d8e5d57523d1e082e3dcd7f5f726f9c54ac36b80a37142ef3760b59f03fa591e45afd4759959d3da0a1dfc784ccd2c17f3798176c72ad101e1974500495863698d192604ac794ab6c4658dcc1e6119bbb5144cd513047d10864c85ae9802f7a97b5f0f75d7c242a4c631aa17cc74c1388f2a4852bd8ee8177e500155625dee8ec1944a8c9a12821af634c53ad95579bd20ea84fb57fbaaf21882ed5289a3b56012ae093a4ca817a3c76c8939f1e2be7088579c0138125a0205d32da3c76b473b4e950ea502dddd1ecbe92799e91062ca4cf99b170dd7a30f70cd3d44e46eb6e21bfc66250e810d557fd2888debe04e6d16fa679eebf4f38e4386937ca7ac25cf2e853a24dd54b37dd741a82943986623c8d034f05500819bfde90d766adad185f6b8ad52d3cbc66865f88b1ccf8d01e97f592c50897352143a0acd4990d7f2c0cc6c5e7553136338860e49c3350e75f5ac7d35a23b70b04d1b3651676d3d544801a6bf76d94aecc6bf1ef6da657c5ddf40a8f730db8431f4eb0157f75b472583d353598a26fd98e118bf70e9ddf5bef293c20c7a395e44d019d8ae64f3915496f3adf15e43e860a282f618f4a944459d8f146724b42a6d161994e775c6da2ceeb7b54bf5b692bc12681497d543eb36619ab3bc3fcbb4b41d2df9193e12a85fc83c48a906f79bdcf35857b3904cd953d466dd0b335fc577b3c23e91947aabe6aff63c752dadc2be880fc312e56b03173ac50a016a8873a10bfac48bf485371813f16cb3f72543c269e6003ca0775d4dda97df082f106f86a05e47c18fb8983a20d5b6e12182eadcd3440df502db0b4792eea770600dbed890dcd6f4767fc95a0c0420e7dfd2f11aea0562f3c0074ac2b48b24611d73c85175bff9811b81a8bbb361ff35e0a4c157d4e874fe723ca02fbe1ce81dca56644002479361024992df002d100e995c4a1ba51a2784da336cc4c201a4898b769260fdbeddb4791ee06597f12e63a9585ef7d4a7fe0eec7bac313476c3c33055d1c4752111e2a45e6c22ce8e16b618aece2cf5e2a0c1a48ab726bfe1db183b99386bc4e418af4dea39c211e70107a45a423902939127d90b3bb6fc0f9f9a3fe187adbf447b2f1c06be7d4f411008f5880cebcaeb55d2d884fe5569957139fde0dacc922b9c52b6e1163f8740d344df3fa280816e74c15ccaa7e5b56b258cb4d0be74e55f854ae99de80d14d2d83570040f582d6b9c501076883a3588a151282116a267e1731a679e1b07fce8e57eac7a2672627c2d0b7df2c6bdc251e5e02af3eda1478f0b61d580219c20a6f7904dc21bc7c5bf7b82b5c06ef6d4509fa9eb45ca8abb2ccd5d5a4cd8a1227f027a5150e5a220082aee729a67c08af811e6a2b6915d348ee50001416b37835e3b16a4191545f03021fbe49172519f6fca828419459d8a8a140b34d3dd226d5b543765f998aaefe4e552d1168919c93e0d4b686f26cccf4d3c12254218b8dda9a64389e120966f1c01afa06cb12b56099e5491dd3ae59667225d82675c1dfba31d9fac454ea8f0c9c4df1218a523815c565712de9754b15428c393a0a723d27d745af576a315670b970202b76869794c6eab43f854e5961c54ea8016798eb1ce84789c2a4b0127e6f4a8e0c36c468d62fe42c6ef71c74f388bbcf1a4b5d9f5a626d33ea70690aa71c6565d58cb782ba761c0553e7a2bfdd8be2b3cae3b00786bf9c175393f9da83ccf06520e101e064081b7e623c64f4895db2e7999d42495a1a6c908a2ad93635e1d55df83349115262b95eb90815c38c4f7aa38523964a56297447ede8b3f1d834a1d5590d3f5c7ff49ac954b16a7970b9a33890950198cd4b253887b62a26803acf5ed2f819b8c34976789d0358ab6a4a8efc66244889767f6a83d95124f915c25b09abaa6b8a29ca219894ea4ad39adf7589a8c93ee4d8b8953d0d93600edaf2e350f3989b46d9511cb47f2c217be8370e001b64a0887e5c4145f951fe3246e7b4b648ad445c73f562979ff4560abbc6a806688ad89963964ca9d28ce39e2eef1827982f0deb78e3468da82694d314cb959abb5d0085bf11606b9518c75062db4b270e718ca380a79399121bfbf96f126bed0ed230c0647489d49885f0684df7cbf1272d35090164e0195edfadb3e484d1dccf895a8af5ccb5e7c2cb81c2e0e809394f212a3dfd2b97ee509f44f51355b12813b2056305343f7e821b6c3e17714bbe120b3f5210ecb0c5c8b570f1550edc01a5fc9ff294325d012da42207866a09319c34a580189f4e0e12454ce9616c147cb69c7810f0ffc73fcfa9769ef9ace841e006d4c6053c1740e6e8a66af25e26b392869cad5ba28904eb5e03cf1271875b4f905a41a25dc2847165abdf3b57c6e216116d20f44c7e72ad8aae8c3a03e331465fa1addb2327d3f63811b0e84f89e9ba843872e6802915b20b0c4c53a29889c54bf45114e600292df5137969fb5bc93eddad1083bca400a34ee13879252caf07034aadb899ba2859502bb8e96069b01523ea58281062a00801e2530d09897d411fffe0bf84c21c4d630198e7cab332e443d1c2c80668a898fa182807ecc91aa923e4aa65709f7f3a9c02b3d39a0b4220c68e2256bde8ed52d1bdbf9bc1aea3531ae8dda2f1464dcdc8f7426d554cea60681bc97c7f67ad5e578cb9a0aab42446e359c11d8a37061070068150b6f7990f5d729f4e02cabe8a90f1d91622f93eb45d6e9f13fd3eea48bad61d61e83a9115a827a63a44fba11e1bbdcd32f150f90216235f445b3e31e573edda1ca1d06715748fd33b55b8d1d182f5293078fc033d0c8fed04412e2d51a8237cafb691f1aa4b0f6771321fee828a6280660eccb781d3c818943a88b9390b1dd4bf7c94bda769f204417d929318ac8c7cf9674a3581313b01a90fa5323f8609db19ab9dca6032ecb874801e18526e61c61a9b2ec749a8cf92809630381963feff1abcfc1e6c2e9f5cb46b61f72b727af65595d1e3ccb6cfec7d18c012c81961d0ecabdde4b876af140e2d1b76fe3a1d321176f1b92c242f3e8d6ca66a445f11401b9d339a1959c7a968d999738f015dc84f0dbffe492215899db47f6ba830e76db8929b4a3e24a04ead2ceb6b28ca5ab657c246b7a9fb6702aac4d87aa63624259580f23b31a2dc8b5b4f50c71e2053d5cd53b3f779a1386694b70f1c89413cf9ff65ee85e5cb52420f8e5a5713d6a25f9cf8b06c14b2f824c68b8764237cd9fdf6508c6cd3dbdc1aa5ed9bf206402dc8980707280c649b3312cb241bd2fa4a22d67eb13159ac6a5a4e8308ed6d296fe8ba1a70583d9d903b2317c3da1f6b99942debbc65d7b8b44b74066e22826cf4c6d38efb6e4acf7d4be312daaecf0f2b77189674dbe2c1874bc6a43a21ce445f8ff803f9d054fadce55b24e32a72feafe2e2b550cdd4bf9ca58ea58c5f2fd2d101de70f9d563645164f465222058bfefbf4ea5586f7d28b55339b92646d76b6952bc8b0d7a08fff46d9cf396988cfd460b5c4783ba311606e3b8fe4cf431e628dcc2878cee3869c2d625b12096c44e7a7054b138876d3295c8359ffd2839c85e81ff7b6ec17f1d2ed35b303047bf0750756081d2042ddf674ed6b46bf1cb399fb888e32b41a034cfd6d3e701db1900a0d4dc6c384d5370676bd1e417261b97a5fdb068cb519502d15cdda944c5fb6ce6154414f83f6d83c38ac7122579b2501ea3ab379964a338730b63e883424eb12be3bc7617376652cd052fe54f257260761d7ce51342c750e3f54b45a7b72ceaccb9a41918382b167a6c7ee352c2f2c5d7352e8ae44d0c3ce3eecac507ea52057fc4d144e2729fd017135e6d5d33ccf56e2c0af94d8c8fbc7530cf28ae81c229ea1d16f7d593e9fda212ff141c44e0d1eef4d86f993b475c937bfad5e809381b30a8259a2d7fccf6a5a4e1d8ccc3476c87a7c33b1edad6484ebdf158690095d23f1cd2b0e8d8677b3bba9ed8cd515cdb4883c377281509ab6b0201f1ab21098c215e4bb9f80ab6c4f5859b28e128fd5ec9487a4c771a42e9986d1900e6b0b506c233fe779da7560837d57e02711711d4c9684128aab40ed25e0a3007f422c7f41785cc2cce9ed247587d5865c6ad10b64da503c8a7518ade9f3e25ac6365a613cc20485aed75f429bba5ce848367390b5ca1375ad7c0939483627b69459c512553028b42c522f633953ef8ee5ef86940aa67c6453a970569152e2628586798f241918d9ed0779a38add0ff0c392d465a8d481fb83393308ba46a80af963805c5f9dcb74497aecc2911460ea8813deae46ca408a497df20b33d01bb2fc392c4a6010713201c7af6174d4948c5352815edab6e47ea5e3c289d4b90b3b54b768bc3f56b96c78b863c080c8742151841afaf97f28029f4c597b454da825e38d649711a8d18028adbbf14eb7256c8c77aa0002767428ec06c39a267c3f28f22f95e357abe8bf5f402a37a07dc7aab27a51740b27cbd966efbade8b5dbbdfa51af2fa85799e7bb240e641475a11fab5fd951354249ca4e923bfa43a1860c7fe070e3ed2fd25e6e570135a0ba4f3a720a6ad2e69d4507a97647fc84b4b8a2dd11f9492ff03172b6d1a9c0630e7df8b1690f7f8bb7b0da0ced8e980f7803ce578acf3fbc87a4c1bcb7213df3377c6a14c3758462190216cb035f16436ff933e66fd5a1cb98c6b159ec904d9b21b216fcfce6cdc171c443a990792da56fdc3f9a38e45408d5a556648866c4be3ad08bf8b3532b24d2404287a0104df2c9e02d8fbb33412df51218dba7bb002782b2db17c95582b2da3b8393227ad0567b55d85e809ea47b65a75e5b37daf311db572fa4642f8660fd446dcf627a55efec5b5eaf19f6eadfbd9cac971de83572bd13ab97a0f46e21ac406d0cc4bcba0988c528f6dce865d3c260e904ef6722e74ef4b359e4d510b61a6290ce0b81ebca96e71b31d260aa10de8382a3ecc80fc801f0e20066c8fe40f9539e3d424cc418056322c4281c132946614ce418856222c4981c9b4e7a61acd7e57a914c6c1962148e8914a33026728c42311162148e8914a33026728c49b121a017c4f5224d2f8ef56ab05ecc881cb95de9185a6ab4ee81c67c8679d5824ab5f39febf0e7db374e8ef74771a68a2d17fe20c2d0debb5d4173ca75ecd4c934377eee54676647b02bbe13d5fe783dd9a92b1ff648ef53a323b62729eb752ca8d925c6bdfc9f39de62156f7f12bb89e25a77c4894d1c510aee812cd50114f977810df3da11ac5659c22c300f97ddaa7b7243528e14905e81c67f356699de2ef7a54d5c6fd5390177644f819af5722e41e5fc8a8808df6fd5e948d685442e5e24fce8af5925eba2c79ad81c929234f8326ce361b84f02248db0d4ff15df980c7f3f24e3d1aa73cab14e1e922ef69ae3bf9e75c7b598f47093e1a50e5f2ab99ea3715e85202382b84dbc11633e1ddfd0d51903b0fbc7dce8bd68a2afceb36eefd95dc98ae15907c5f886667979722fab4d3738174bb4ee7ef5eb40d1464c0912005c64315b77c4406f2658e7bd5f839194f49c96705ae0da7dadb3bca3a22e76e91699a82353cf30ba4e6ee3246a34b98e12a9b101689de8246dd5eb4c965b07b3559446872644a1e6556d86537dbeb575b1965f67beb0d38e58a7b705382b99ece24a0a7ba9b66e0e64c16e9cbe1ad7c79c4a75bd1b45b9f1ea9ff063382de6a739bb59ff2049e1f3257013abb8ae0a69d6b1d6036b9e57be46a0d2168a146beac7d1796294e97c3dcdb4fa32c74ccc78c0031aacebb8b28bd01a1868d5c57d04113cee08069306d28575dda50cd6bc6f598e2839063a8a5dbeb7b6cf72442c134f2422db0525af78194267c9ab0acc7fb87583f5335b67d72db9592f1f34281c17ba17e1118b0690a1b986264a77ab7066d79d7ad8da13f7c089e9dd33bbaee0267c3cf42bfa2eeba0e53ab6ac0179a2aeebcea580987e5fb7179df52b70c53d3ffe9c956100763a1bc7604b6c1520a49d7421bb4e2106e797849bccfb78981a97b505912037a1947614389889ec3a3eaa2e369dedd4ecba343d7e3aaacd5bec8667d7addc81a75a1255d875e00e4c4a8698c28c5ade384942d2fa38b4b24c446258a6317504fab86f1c675e57fb7af042ac15248c604c53c2b4f41cd39de742101d9a8a9b997e3c1ff223a83694540f4b347a0e3d0f9b0dd5d767ae8303064acacf2c611c139350dddb74932279e2e6b431c9d83a893a9c23a2b9b8f8693416d13982825e518cfe4d9247b6d2d3ee57bf3a6d9b686d71e8e5a1a06a61b0678a00e32f6cbdc2e9a16647a10683bad47260547d2fb4d6a8ebf8a1fe945a8fd661e55001e40bc19726d6cc40f04495f3a1331a260733cb1e6dd9e3f8db6e9cea7770054ff901507d557fad6f13e288d8080273181bbb09a31c3a31e12a4786d4df3fd404f9e7ae73f59ebddaecabe63e27b8fef07f0df997df9181030f928abed826039186b69cba9d27a26e7e6b855773ea7bb8d66b369557ef9e7e3dc43e56cee215462d4a857310538bc5411422c5fd69dcba08fc0760ea77a452d6a522352e63af6c35f049a33560007f4505675899c7e29e344aa6fc8a2f3ad9a474fa536969d259e6d72b89f15c188d3e9f61a217375260004a4934f41cee0e6718936e6d0d68a2ea3ff8cb895bcedce484fdb0e294332f39b0ec84cd459b4f4eb8454e0e69ca066bbe70328743647543be1c48c7d9f53d5ff138a3df5b654401f5e7c9dd8a55d5ff4061c1bd75f638944e81019f6715d2781cfb370fd4e3fea0c7d5344a3efa32404a5ae3533ee5babb63d6b334a14c269aa4ee286674b24accc5510e2bd65be0466e1669a7aac949984cfb3bdbbe76b5b62cd8a7e95a4bf52af2d8da548e38ea3321b6087e8db8361ffe5d2bd55b9606fbd6b58cc9a53990258cbf8a9e281ae0e1d68f09fe38a96da90f7059a4b927fe48c10a819c2b4afd561f20945a516f5d4184ac119403efc61204be353e544a56b93d43e111363b25b629b2477039af727ce489b9c5d5e6abec20c6d5864d30a33dac2947c1d77a4cf37e38608f301ab0cbdeee08f7523af5065f5b1d181f5d7b018c763c1bf33bbdfda4bb0c429f5b624f47c38683948588625e7bd29788d71fdf255dd127c2800be348c7f1279dbbc664a90b29be7d9e86a7a414d6fa422a6b94d592c658ae2d4c18b8b66b100d084bb89bd52460fb42e73561af2bab2842baac072bc92c1dd3b15654cfd890c9e2199649a82d3e016c6deb443153e6c8bd384b08516fae2c48b4363d5e4a39add5f7144939c7f87c0560328c09921089256004be775ccf8d992e034ff1f66aafff246d51634844434a282ce2a29efca86c2071ae41cee525786e13845e65b0a4ac476ce445d7e7c017af160695fcb8ed1219cd2a5de541e8af7e292905c7b69dd000bab3384b4cc096bc0d474729b04e797433bcc12ea3a87f54fa03ee1e89677c5490bf81cd14f11fd9763718db460a2ec6b32cfd74f9587a7ed42505b0c78573159139c0935272ef6232e4cf248cebce7277bb5e2d8b1311475597ea125d44f20747c34c47bef0ea6c328ab0fa3556ffefa635f8f9bf8100aa6f02e2246e230114ed462702952f8a597dff7136f28f145521504200ab71fbcc2a9a782c244d37a47e4ac74cc5bcd61df2fc517d508f8d73c22d09b072bbe8f1f198324a0a6cf39a7b8cc4690bec47cfc1fb79a6029834558a74032ec65d26157a52f62a40a5490e5fe9e6f21ec1bede91571b6ed14d8b68ff9d3d3c0e63fc67244e9d30b3abdf169a64d8e57927eae7430517686825aaef7bf46e7218c5c15ed7ef518a2e24f1624870ab132eb2cd09b0bbf7af31cdc3e1a09d4b8c961c635290574bcdb30a0bb3f4460bc5d1c1cc034e591d9e242b11dc648b943e908e945116dea80f79c5f108f83aee76d1bd6c6319b99d980fcfc352cf063ab62b5a186dc3873c8d5b2cebafc3374882558f6494605c0ecebe967fa3a8d0da9030a207d14d9ee9960ddf1a1623172d22b08330caefd039f3f1c28390d330d27030598533cc0ee5c03afda932dcb0e9d2262fbc470c8166b9e35afddd318f184215ce37d2e17ca8a199a6a02897d8173783f1a6217200962cb25c9e29f070e9c7db3c19abad35036e48fca67a745cbf6cb9e71ee90623c2c0d4dda96916437286889ffbb6fe4e1e5fa60a5d2ee5bf11c4d40775db0ff608fd1dbae38797daae5f31028b23ea587da2fdd77628a076c0af13fb9b08c26139aa2f32bfa09be6fafe21e6e80778a7bc5f0bd28e99796647d8e9124f5ffec4951e891fd1361d0975c4a900b3ea4779770cd7221d53fe5cad6580a494c57c7caccda9196368db5d37ab084dc24376db1f79a6d95edb143866a2db3962b1d15dab4ca64839bacbb605af4ea5940e2e3c0ae074a541de92a6ef6b316ca5e0deeef1889e3c42990ba891c0cbab1159a0b9bc07c7a116f0e91b43c340dade96d0d088ade85c0221c1dac80ec53de3b48989e45ba1ce90b86341728913c224a45a2709e1199376f2ed25e4543d3a10a451c2331648db4035684de2d8eed72e4e41675cbbb05a8340e8eddc77acaf9ced81bf7202f4e69db3ba3026497d175fbe1025ae85f5c0ac30f83591d3cfa7a1ed6036c2a0673fb38e4773d4f10e5b201253fd1a4a624548f994cb86185328dc7dca7693447e6075e346587993d0c4facec266a4db1e242415ce8dd8e4de1398ffd884563d98ec94bccaaa6e507b3c5a65d98984de09e1d4be5bdb42f31a2b078f57e0b60c0e4ecbcf7ad4d8cfaa2335ea8b62eb1ae257faa183e588da9da05ed14eec1a4f5d0c04e622f9a6a05efe75cc8a51bf11a0e72fc916cff4f561bd6a23967624e46c592889f79b546a94ac37a2f51219762de069df084411b51b0d6e151daa3ff040a7bd04e2818a82c9cf12168112e6c43a03334cd88e82fcce546ae4c685859ec7092cc866941777b30c7021912ce120e74a9f92204515e3d12156950f4a0c2b47719318de776d65599a3f1aebcf8b089a0427aa5e812da5c1b1b10da45589910c7732b9839f483384869a6310e6055c1e6c7421f0960f566d07a640c09441a0d302888898c436d4f412ba37c4c28eb6e299d17c8bbad56549df10f1636cd090acb8ee82cf1c92b77a364b27a136e418661517115d60fe0458109e17e189e83ca6c67749888e85e8e14f67e94615aef4d6bc69ec00c8f40dc4a3b63a23970c00c6aafd4e2ae57a25c00b7efcffc9d1a3fca5040b9b6d68ec99a29598e6c97d20fd015d11884810017fc32ddcdaf662c5c7e6f1209cdad672b2d5581b02a5ee53017d5dca311258a00b442b81f65650b3365c27003fdbdfb054365e954a16e9ca11502c7118cbd98bf344402c9216760e764ed96814988e32e582e059277ab4020579d01e5e82b594d2cba52af5f17a4ec0f0eb9cb5df7ba1bdbf41be52e85a8eb891d7ebc550700cccd210c0aa5104c54e93e19d672cf172b7c7fac750604b7911fa5f3b473016e1399d1dbe7beb10f8cd05092412c33fe3feb3d844d2704e5ebf5a2afc64a23686f001da7cb348d9ec013618bbd7e97c07bf27b289791ae351dc5641a30870eda193ef5ccb6dd52517b7a5ba3c7e25fdb096d48ab6db4c8a5b1d9d27bf62e6bd94a3529c54b9530fb26ac5492f5dbee046e88643b3cd0792de7f376a3a47cf9e53ffc5a78ad1f5f493b89fff44b79d434b7a3bd1155cefb2c1b8d392a937ce8b52d22bd77717994440f132d3773dae85d5a636009e1ba82b63114e913ff22f8126b6722d7c50fd2ddeb6a0005b084bfa5ca2f0336b9d891362842a461d5d1a9717ac731ad61bfc5514de773a81164d81d7fbc4dae92a43fc2f1ab3c2ba194e56f7f43a2a80e18d3d55b680b3a45761673a51b71277bf5b81f8b5fbe78e9c778eaa6e7f125c9210b98cdaef9c2712baf27dfdcb72f000761e88d810a988f3de7cff68853cdc7031fe9fe7a366e20c650c3c36cb0f29bf4ea3e6b9b688bc4fde7b7c1833b1bdc9acf90ec9a337dc1295deb5535492590d108f806747935c6b4d03659d3c519c36af4fd3783b4f482b4d562a0a4db1d6124cf64e72ec396008a2aa4a78d90d7e0fad4d43d3204da11eebd36b308cdd6882fd92cc792e236b00ad9fe23ea2e7845888a9fc2a17c32195cd68a4198b5f31f77721ef501ca97deebf1583ee8c42495d093c2aa00a003852dcfd49767c780bb3de7510fc98bc2625a924bbe7885891b592541dc95f679b185e24bbb035835c2c2175b2e663a2978e5828267995943d3416718a940d831c59e83ca863eccef60a1dd99fbe6f7831ec4433f618f54b681b693944b81b395bd14e7326d27ce3a419646e7e5f6413f1b21f7a8d1a5e91dc4d6eba2a6d375ee2a28f4574707ff9c3686d6892a70914eea2774c564d064e244c5cc92847eff7210b1038a5142e7bc7e0c0d42bd405920722850baf3243b039de4388721fa203709b389fb978584bb41bbb8991750f1eebfe5a7ccfac1d0352695075d5baf4d244a618ee8af9674dec6252cabe9a1dc5783f1a60d780e5536b0e7e5eb19bb0188557c4bc1e6caacbbcaa6ad815309dc59a10518355f2b450b50f49ca0e39a2322dc6aa8123efcd66cf5c575f502befe20a7a6f7125ef81708b822907192cc518e8d4be97fb4f65ef1a4016c9e8ead9ba9f6af22edbca5be62f12ea35a31c8f6444e0c590ee58a1b397eeb0d851245234e6d18c5ab621da33456c042d4342a62f245315df90826ec4e2a156b850c7e1c2113ad5f2ba292cf3a5f2884115a3932e23c181e8b0c4346d6504305543cfb8bcf58a1cb5c417f800e3880d6baad05a5eea20a8d719a929f1ac716f285e1d75fff2257f83289ee42c91168fb808a6cef23dc78ba4ff8aaaf7a249247bf88ba52d411ab189439205a981ec7e577f83834aa71dc148a3165404436999f29a4404b3e12eaf9cb993f9ecc8b2c5ae0bd0e023b9fb893da5aeba67b84ad6095814540cf15b65615ea29930480eeb516159e86267a58f3bd0495800d06122a5fd97d742a10b7a1830f8fea29f9c3ae5adbcac0ca26a3d32513c0d8709dd564363be5daab3fbe12a8e921287a0d1e7104298da042eb3269ae29548542b21488bd5254220eb6eda2c8fda1b7fff800ebe44a8dbe391164c9a905a71d3b1fd2ce0aded407e3ee3fdce58f5798a13fd27530c6d68989d6699d3a1b078499928eb0c9602923a350c7348a0d799f89f57e53946868f4ebd19bfdeeb97202a7dcea27984e4064dc6f23f055533bb29bb051d4de19b2cab87677ce376e01e1ca89f2ccaf24dcc53ef3ad708d8e78f9f7be5312283cc846b59634483c2f2326c821be7d1346002b4a2c5eac3b6b7a02834e81367edc1e3823a9a54d2fc99f8daf612feebc80f3463123d73873f4c2482425a9f5ce5be3e98472a7c342515e028a449f4afff0b773db11527c94c09b87d83bffe194de27d8012938db22956a8c1d0237d8134126de76593b0a7c64a70e35250fbca2b2cfa300e481b76a22686c2ddf2706d1f9a5d4d4c1858447c9345669cc8a22090363a0434900ebb22230ea22f7322dd938da8554be87a9d1aa1842140afb71fa3f0f04bc36ffb2186ec08a93bd0f91960800d3cc6a411cc9eeecc04e8ee4299a83433ce84c41a6d08aa1b1c69ba3f675a096441ed82f9c70bb88513400148de36110f6a7525c3818d38c3e62cc974a3a8baf916c7a6fd437ea547706ce829400bca79a44d5bd5902877f6c5077458d5b0d1270b1d1bb47dad4a8de1685fa5c16b1ce50d34850d7e59196c9bcecb3595e077e70dbf504c5ff83d3f1b0941e7efbb86c5a96f5a0fd8d4ae9fcba9c61ba45a9adb8b9b3bcb5a0fa8c4e98da62c74d336b41e00c023d76116223b718d800262226dfb1068c9bd853313805d19866be2082a4338195520715bacd06f3f53d65991126264ae05718f7463fa2d819d81ffd5996c6b9fa87ba7c2730de07cd541ddaf2ee89e29bb1d675b0208d7dae8bca4bef6096eedb9ca6ec2e9c544bb253284dd547470dc9038edeb3e130106d58c3956c2384ccdfa49016e5f9cbcbd419f73665bbbbb7d70af3b36aebe9d986a9adc5bc0330b727eae3343a3f3913492dcc9e9a61052372743af800082cd296ea5ea352177c3d737c8d8315e48651a7ddafe7ea0aeadb3cf0e2ac92ea532a161391e5cc1fce6e559a738fb4b171820b194801c54ed45efd59910af2ccea502df8e2ddc52254f379558b0924ccbfff08cd55793bb37d93db12bfacb43606b3404570d9efbbd862e9ffd4620d36c2bfa05993e63b902c3275560909d6d0551a60e46a41f235cadf9c7290797022c49c030570691af799a92487153f30f520ba20c0e8c1eb308dbcc304d2f53644b37bbc165bfcd650c07fb22d7c758b551fb0610dc30c7a6b5ab20b8caea5713bd7fac6450df39f74c403c5f800c0e14dd87e38f19266d5eb364170249668bf1ec42a8cdd6b6cf2e10859ddac6d985d385a76d3bbbf0dab6b5edb30b4461a7b67176e174e169dbce2ebcde362ca5818c8c875d1a0ea9312c3d23a57911765826fb16b9855d6eaa7ad8deb0cb7fb41916023d4560c7bedc31fd60261fdaf25c9f178d9b9838932b2f737f8b620253cc552f8b68bc229602349281dd09fef302eaf87fcbc8e0b72caf2e678c6ee1455a26a4557f31368e37aebd13fbd2132f50250f1083b45016605a553c9d6cabe64e0b162b6d443ce489a0674763df09bdacd320fb8fbe6565d8a5f1ec08b92245a891ac2062fe7c7e51cde8927a460dd92f2481fba583196ff9fad2e0b618ef563d2cde6cc089de7c1cfc1ef49dc6b8ec19c53ae100c2ab79b6e4461fc75d19e03e7b335168cf0d9a460366c64da54921f6a5e28aa518643056f9021c99aee93ac9466794083bda0710388e29c68c879816ba8c3a61cc9c215473519f4a91c8438251f800d4fbd3f2fc693d1630019fe557aacf250b5ea700d634789982d8d3c07d0e644f02b19c892b5a6cd0d413dc5f041d6784574adb226ee20af2485fd58bcf309596277f7d4688a846e39eb58a4b764355ef55441bb1d975c211e1a470923c4700c3d91c102c0c7b3a8137fbb3fbddb04a538c2a0e5956ac5985a732e41b6ad39e7038d49c01cd7e1779a19b67e5d4d1de220da2799a1ad938a09e9de00554a8923fd40a6fd49f4371077be959e23eb014087b91a0a700041a3f8a43464504c67cce61787c28f114f3cb57b2515ea6859ae443e4c8a1cb694121299c618cb416f77d0b9ee6441c964a62fc89229a9c000c99627aa1827dc077b408ae7a68e112f5e4ada90e1c38c0644469e0feb75902a5d77a934d28c4f890e6d8ea9d033a822fd787fc6654a2f0d5a6dad60d4a2da4e56116a6566bd29c93d0d4e45189550fec55f1825b00ff366b90fac414cd895454dddbde50098b72b920992c57dd76d0d19b21977f4d555e795454a89a00436b14c4661079b43d14b0367b4127bee184179076e077378be9020b15267d87eb255effb0eb72bd71c390a653cb5c65f3e1034cd2c4f3e0f1064f8e19899c9a70e9470c0d1d5383d71b5eb8fefa12678cc183c1c29ec463de9f94e6fb5e15a0a3d43619b29319f05e9567a125138d3787f646f49081d9c0dfeadefe89f26e3f024109fd036b16563b0fb5bb29694d3b17f54633d9903d97c34857bc756be94ae91b49d312c82612f427ce06f6f1f762deef4249a26a364df8ff63886f04d689b6888eb9a6fc5a641e52c304705f4c80d5a3a58433044b00c989904fc8d878bb2a2b20150f03cb2b6838181d69f07a95038c016c40dbf1117c5d4871c41a6400e5b7440087fdb5dac9f4ed0416e0718003cb48d8c459e8040d0c77a88262f3ffb3df098bd6c181ba292efc4780b511db806540ae3c4b4e5f73946d9a02a984016080a0f0e270d00517044135aee934632245da84a9be80a9d8b0c71c93ca4af34c99fde7a507d383f9afde024c3af372fac2cbffc1670b1304e0e8210a097eb7d0228fce12e608e1d1431412fc6ea1459ed0b0e025a64f6855c8b97ec0452bb7b5cb92827148af7090de954ebbafa647a6b8c0059ce6a0b7a8abd9b5b3e19a63914a2ea1e91b58bc639d224d29adb492ad3320ab54139e15592c2b043f54ad4ea8d8e57d07c4e2e990e8c0f431787c23e226ccde37832e9ea73c31f86be92740c223a5b4478cea0e24b0d2e06962949af8dd2991e3425895a44ac6e9b42162a881ae06820110c6c131009a2970c64131039e3170864131019a3150e6c131019e31be39f051ccb762c2d7bef9ecbb7bb4d7f51709de1ac27c2760cfe846286f5f1b6790c5aa23e69b6339f8cfcbbf7d04355d8e0132e614b748fdff5637634eaaca9cce6ca900fcd0238098ab283417b7e7387c3bcaaf5ae07cdc1ae3e0ad30376b8173716b8c83b7c2dcac05cec5ad310e2e2d04b156099ad8d4b23d02dd3bb00fde9948993d1e1888cb73b724be96625912e86cdb050c574e686268af834844cee803add9e3873780abc17d3cffff363ceec814e0fca50f7721c9d34caa153586f5f3c16fac12716e2602d3fb44839fa737d77e195a39b78f765e68754fd333d70009535a823a0701950ce70d64bb0a6a25b8649da44e478bbe61e8d4ab023f1b1258a6fbc0ebb82b3b5f1f6b75e4825d5634a29d9f2e52f79a67aa8c97d6838aef9c3b5251453ba10c84a19d764024bd6b778f74020cac974f8c640b2c2b46dea6cd412c8b0dbd02068d415a427638bfd3b40cf42eb70596d548b059ffd826f08bb0f269d82d068e82a68faf3ba613cf6a49aa2920b12331e0fae32e6726cf39661cd5a431b070a6093be13273508085a359ae0c70d31284640f8cb8527dfe7a548820f8d98b82676e4ef6a9fff3e0c3d6d5608b4d4f0982df1d37ba62b07adaf0168e18a6ae99769c3c2b320f47ecae2bb47354b0480aa1dbe611c55b40a972f55512c5a3fefcd10a0092b4523dbf5c76bd4a6d6101d1a2a4f55f2e9ba0f6d9425647a7300b5767a549f2199e3e83357411a442c2c7bab1deddcfb3464a56449cba7dcd51baf59d7e5d2859cfeeb334beffffe8856ff0ca14a265f111743839b5c33a408e815a65619638e0e33e63f1ec6b403da279c4cf8353ad7b4134857d35a25615aac85e41bbd9cf34f1d718d4b840132103f530bddf40c8efa897a20fa980773e12ae9e00c030e416c37242a3842fccfa8730131b9ced6e8ba8687141798607e6cfd9c544e97e34d0cb443a91099efa95bad840f4d115a311f328ea9c36e09899d60cae4a7ebde3ebbbf1e3345f6bed10ae418495aa0b2944d674a989320441af1d070fc5093430c23f32701ffada1092393da1269f29ab3f16fb2c74d4a29c58a12bcf5427f4fa4845a2176c38cc46da50a717f46a4f424a3d1503e3ee59519af7d61c4da863d7d0212d56eaee28899b6b6321a767c2a07f65e45a3c244850aafe005acfba812da09529960d6d94fe90b3fea0e6850c45ea7e46f625970d93c372317f700962eda4ba3efbc7aefa5079de634c198f145c47819d8d0bb5e7c320181a7ae4c8a7c8dcdaa9bdf7378d27a826f5cd9beb0890002f0c3774e74dff37673080fc7e48a5058a365cf521e96f44e491b994a4f8813e59a6142e4528f2b22a670515938837ccb391c592913587ae1faf2121e9b070d98edc3aed74c0978a8226602ff6ebe07de1572ab6f44855ce740c24cf92f8d83aad6b2cdd7cbac967e28a4df70503d35d484ed12cde84f06b202f1d900b5344bb0e946b3841ff68ac9f1bc46d23c3bd8932471c34325f6d23d44a796dff13ccf92f63835ee6858f2c77a18fc3852857b83d83606a3a2f67bd8145b0b81e568acaf0318830cbbe108bdea53a5ca1a08413915acab4cb7b8383b1e9e736ac8fb37b5c0734767240e8f5b989d5faf9c4ad66eb44a43e37014fbf9ff0d20c9d80d1f7262ef4ebb800716f8d823bf7f5f6beaa9c7d08f60f2a0e4a05fc080f7af996ca03857766582846013f90470f4a5b579873794440c119c82c440a7cf37e7ba7d7854155709164b8484c174be8826da9d99a72e7e2bb44cd2b28d175b659df943145d2123e535f5e6457fdf0d3f554e0c21688a3482a413a3905268843ebceb25f67edb7d3dce03d1ccdd6c9445f7d52b92b4aa1ae0e9b623e5178b99e27cbb3afd951dc5b93c06d7ae2b9cb8c03f1de0737041cbf405ff4e08cfb25bbb74632ef96ba99c68700e34883c2c74bf2515321503042696a80abdc1f663879b8f484c477e0480ef297781dee73d198810ae57676e0b17741cc34128da32bd5923b02a1dc3e0d2281493dafb48743ace40fb7205472642ea9ef2b93478eb8b81f2c716b917b529f18f2d4f4ade124eb27d5dafa7f56da9e87120b7877f0416a8013ad84b0fbfb877a347bd867a45904abbc8b4b8d704f4c79d185c9b5deb0e85e8fe57f8a881c4c8c25c65b2ff3b2d47ceebf1b80363c6023e0fdfc87af0cd2fb110d0ad0680091c61b4559480ce237e10017817ca9a003f522e9ca5ccaa4f5eeac7110617bb1e41c5701c4029fc39be46675c64fbf14221a67ec820f390723ebdcb3b291b6b3245fa210219ff238cdedd4bdb67cb286050370c34837e3376f3e923c1e3d72567893118a1448af0dcbde8c91b3d1eb0526d3367bdcbe4f70f1b88e0fab9e8202252680f017392ee3524e963ed3e5107372b6c86c839afa2705dca250d3032abf05623995782ee3ced2ed51f93f436617c297e6f36df53ee4c041614d5f0518608081c668b1cc429eab83600b285c081286f5d96d81a85ed2a671c7dafe11804f821eddb40edd5bdad3007c1bf81b58573d9a55d30f3167b2b33973a392892def55d798ff3ebaeadb2ed1e4aa1dabb574b79c0aa883d0a6e276bcfd868812209ac77ada9c02693a06644a77985c24e5739ff9473aeae6e90d66e1f30ad18f2cfb3e1a55cf2c608f7dd907ae908a698415a27eb27bf5112b06d3e29390183b4d0e10276a75c0988788f840db376b705781940ccc32003e86ce1759671ac999a8d33afc26aa35599833986042c9bd89039f6a46b73078b3c6b38d522be1121becbe81d666bc00ae23ec6e4e40873ad458cbebdfa9bb99bdb3d3a36940c860e022dc7b060ac0de7718f9cbb4308fc5d913e8171c6e052fc173d1b40340e5f74f730e655463c58678999d48b76acf01e2705d9c6e224b5cd7b7227d303ee42aca0364e50fc35502fe3e53176ffca7c72ebd0818def39ac75e55632523509f9ad545dd6749d96c0adf87a8e074337e70b281e4a7ab9b42927a9c394e1d17405ac2ddface1d9d7ced5e2870b1cf772a82fb58c893a55e8db1a022d6010cbee762713b1acf53814555d29313acc41dc3427e5b69f01ec41046b8108b5f260a7c333d02be36d4cdfe0cb852c2adabf3fc404ec6774a7c610f5b0d99aa517593b7546d05aa6f8d0238c58317daa9f7b11a74f2df80ff6a091fd0dd29c060ccab0197f07602d64e3876f4374222f649ccf5908602ab8738152824b1aedd1f79d6ca0e31585c2ae261454635180de13b1d78b83cb8c40ba15d6bdc51158c4929854cd6b8fed251087b9a70de7a1c757be64cb02783c1c5960e926d4839c509354320b24c4df86e4f266bc1d3016e3de72ab01e8d5f5a435a5930251208c6b9c7c50d27648408625a82d7eacc9833ebcc88ca1aa130434db2880b4773a185b0c0d3bda6b24a178fa2b8a19c2e293fb5fbe0acbb07a3037e989d42c5b9fae05f39c6a72bf7b1f2d5fe7550b2e7346cd4fa4a98296028ff3b853100662c6f8a6ec96702887203417f3bff2974360c5da352f897f5c4a811292ca032e984d9c6ec9f6ecd8fde9cf9ad5f3c61c794416dd9b8988e3259184d6e6bf1d0208589efa7e119f672d8bc44e9a7e3aa55afdedaa9fffe15dc0326e988409709c8b693438b335a36651f22fb913512febef8e63b854702531c71f8b70cbf57d88ce7ee33c8341a08851a59abb9ff663668b48b0d8486f98722d44cf728e460357a1844cf4f0facf355a655c995a634565a93947cbffe2c1df6f5730adbaf4fd37561b750f3c7a4889085a06506217adf4f1a5be9c22b730378a0c07c2729c4f65f6e64eaa773828395ee91320da0c792ba7e16598a5b79b58da06b1e7d8c42657ff9137af5cd5eee297578abe530c356a3e8195ae9e1853a93d6f6965de5dca7922b5567bbca0d713d3196c5d6a43bcaa36bc6d561e0ec4814237ed8d8ded38f72fedf569e04afc2251a619d9c559249fdad5463a2f45586a0cbc2a33090cf25d566ea52f5b8b9be4bae3de13cc1e40286648a5fb8c4ace6bb32e80daadc6da9e280d5518f27f06e8d34a1b7e9922d0700eecf87409563b24914ef13f2dbff90c333af30dd0f6122a9bb747f01f7390a6cd4051eb8260b8606db2d8ec00a960cc615e18fc952f21f773254d94637ca9ce3a371a46c1dbfaef7e3235810c8944877650b922f0bf2ffa66391abcc9901c95fb60dd2212de8523fa18b13e8064b7d5098846905af08b38e2aa0360883612538d3384032d05de32fe1886cbeb2841fe8d8bd1d230e6d514fb0e04fdc8619167e6053caae3c703372ce58820983d249428e28cc8b47687749e8bf44c3a3ef6b70632dc0ad842856e80310c3531950e400466e35f7c91cdb711a4563511109ca3a742e9beaaa777b6c16295ca7595e7ff5603446f4d8c30a51b9b6073c30b6ba8dbfd1912c94ecac39abb47b146273a61a938b24819acc08550d48647852ea206d3d96399b6c2b1a767b83ecd35b5fce52106185e03813a853f3748d89d6cfbb5fcc70af9f6e52c56f3dd9741740aed76965cb94692e18c3454aaa94bc5871a2e93c203d1e67ff7445f1594efc0ca86a7cd26985d44bdc093e29a953023fe17ed29cc26da50153507ed80eb54dd9ea756faf097970b2920100f71761a403fcb2fa5a9282479a69ccce015301402c8df89e8d2d4f6a55e684998f7dbac2b97df8837cbc84022178b93f7d014006c494ce7eb5b56771e47e0da8af608cf1123420c86b717b672cfeebe12fe57a8474bd55f67f20a253a53270d66be202e5d0b2291eae95443e035e30ba08e60b2e9ff390ebe67ec3e6dc70d907ac08e650b64cac197454d6ae34b1a0dad0a78459dc4421ab61694081ae748a68e38cee873a0d029eb364e8ada51072d9b6b1c208d08dea48bd1190f81ec7456f8ca69081631b67f28f97d5401d9975cca8e33d590b3bc0334540e6212ebb890f250f1bfe39e47b01cecf05f17e0ba2a417e47b7cea42fcbf3e7d1b45fee3798bf41bb20cd67bcef9bef4820a79a4e331ad5f5ec74939c6836b7b6bfca3f329a3d6adf6ecfaea5a39417d0524f95db13654bb50011de46f930b637f9b3672ad63983f7b679e38b227d39923d122f2338a7cf1f8d46eb14aafd8159b1775a7cace31299797421291a9cdf394decefe1e44415ddc8d6acdeb293bcc122eadb1f14254334f9c3669fc739416eb202aa2902a7af4e3111ec80017e1d2cf6e1cd8f920f6bfbcb3f9070b3bad13eb060d9fe0dced5f6ffa35d4c79760d7ab8a714b18d551608587dba349603e67047612eba2cc4be8ad817037350d94258afa38ce8aae081e661f51db51435633f80d573b41966482b46a7dd760500c115a889010e90e51100d967bec0cd3f4e445e6c6bf4b5f7d7437b0d4c8a9e376f8f068e1d2d71123fdda1d1dc222fa33141a36bc9e1bd87c8365e5396fb5b0551e4bdcd065fca7c7e522a538e8d1b4f172898f3623775658e2e53eec81a70f8eee4b627c7ad3fec22a5754385815ea2a00466b8eb40d009d85a730dd7e5b6f46ceee0f7233025d6d0fc4687ee2c23baf2b7916fd315a157d2dcae6b2e80d49ea625762e7a2685d2eb735491aa803a727e57b3c294319fb2f6ee8c67ee7659a8181bacf3e4d12bbda326d73644a6bbb64e16644b485fceedf792c57331853a9967b67608a7a17d6c5c860f1c8dc750818c0845a94fda3f1297a8d253eab459370c12657441b2b682a800cd4da4c64e4fe2a48122019a0841b81500b2245e363e6b95dfb019620df724ce62bdc9b2f4c531a66c673ba8c635079ade8feff6058ef57b0d7972728a663c57392168b68eab9ef7ba1d627a47d508da8322576eed774fc5c0564ac0f061a1bfee4bc8fe61408dd51418580fe84cdfa177f59080146495ce70be104a9d853babd07819064b37db58ecfbb438930dfd61cc6123d90018da13373a2828da38a0b42e733a3801904d9842f443919b8f37ef71851f24265ae5df1b2627e983b994d5ab797910b9d418416ca24124c18449cf777fa08871c83a6a565ce1d3de9b468f4c7a29e004c3fb024d0be6707a3d5b8d3fd45996745ab59226a2862411bc48673d5b1dc7c42e7a5f7dc1cf3f5547ca5dd92ce7aa082dfd987621bf8817825499e598f202a6cd840e6f3c9a49751ca4470f39bfae51f90db718f4b67ed50e8f914d631d4c3f4491ecfcfe6a6257a9bf46ccdc5c78160af59b1e61eb14fecbac0c66d829ab9cd6fb3d301750a63ebd3c7d8e049ccab6dfbc907b50854a8603a12ab4cbf643fc4a7a24d9e397ceacb1ecfb2a1428889822f76167bf62ec7e81b26388066dd760077b77ea503e2a96eeadb71faf6bef8416c124f46d6f1f0bbf23a13f890f4d7400725813f8909a74a73f5b6e7e1e280ee014e697ebbcd62a7d6d14616902807781aa65680dfd2868782b31e0fadd68c184d5d6c57f5d11436a8555dbc9627651869ea6d796f057855c862a74dd8dfe66a5dd3daa0f5d8794dfc970bbec34f2407c80d5a82735b8a44622b3b8c0671b467909fbf8a6385a15a01cfd4838f0d9a3dfa87a7030379a52d178fa8137b15a2d1ca315193529b83852e595c9cb99bb338e3f3c3132ebc03dc9323faaa9b92407578d5ee6aeadead3cf23b2f71dc68cafcad3787651cf4eebba5a234d90ef47819b74755a2e083a6f91573c2d59588968c3b5a84387ec5e498defea88be3020fb4077233ed54d0f87c467cf304d3b94c840b9de46c335963a6bf7cf775ee24d71f79359439679dccdd547f1ea773600e30b57bd12b874a846b2659f35987ab8f8e8e3e35dbd0d336aa809cc52b8f8e2919af30b79a6a1890e57dcb4054dac5bc9e37861c2647b379192f09182f3d37e5aa409796cc945a3fa028e016a09a37b514f2b53c37f0c96377605338219d67c122d269276b02f233291277e67d05c21f1895f5400a60b15d81fa75a03dfebf836868333d22787ea7f2131d8cd318a48641739982ec2dcff25e30d4669f18e98d3cf95af1e7b1677e6c0f6407aae0acdfce4cf0d57c809ad3c0fdb06f2fe9593101b7d1cc2481301fe2c1a88555e229c167e924d6284d983f39de3b05e6c5c789f14b252b8077c684f991595ceb633ae5cc53f80cc58877b97b17a0874b43877961093fe3d6a6b39110cc4bcae803e8bea134c163c8702f6073ac539478a09c784265fdc6257a9b2b84d169856422a4688909152d88ef04f2436a34c33f1a8d2da41864c1a05ed6c29c5d28f2f28072c6eb1930b589c63b9aa45b67d44c07d9c560fc8f0041952ed27932d4360210857430b1d8347ba59b2f5d579882dcce666407cae64ed9247ae3e2cc79bebcb5893665cd8a7448cf3ab7108e971fe31f87d1b0ba939847611e4619c53d3ba3fac5d6b71efca6b50ab58e474c90630b9db80829e6f845e343e3d81a9e459ee573a24c63371ac57ac79bbbd2273592bdf33d6c1e2c9fd172cdc98710605b045d3d5aa3390907f4f189432ea2f2609a27edcbb5110c0ae43803e1d5d2992cae6d4b3cfcc57a3986510139ce0ca9a1abacc18b9a1099d4ce6f4433a65d39db841889e09907db8d5ee77129e50ebe4bec32981638faa35264686a052226cfed09c31a7e9bc4a2818c007c0bcd79b3189c3db1b779926b0b63fcb52d752fc2df3f0f8ffc6fba2b71c1a37b908a1dc518aa517404ccd4273f926b41a8d3813804f35641a934423075dd1fdd401da83c96fb5f021e64ac03faedba9958205a55710e191591500ea913b0f75880c3b762389351c57641e518965f2889c369b76114e0e4864723dd4e2a5702317ec3581a64866168eaee2b746551e4553c0d82c012c72092fcb77f55af2d3ed7767777f796524a29033809b409b409645068e43deaa63963ece9421c139e6e5fd2c8c3e5f6757d4fbc83d376ee8b5dd79a73cee95661ef1e955b23615cd5497cb412219ecf1021bb265171b5a83eef2c93d7868376545b273171e68e30d6155b18b42f1eadb5b6565b6dc53b382b38662f972338ab46ba33cfaf7b4035a78a7b0326b9b1eb534c41051555549144c9ea647b289824745ab77941e0f77940406190368176fddaf5cbf1f5d0f8e6f3ea20097af53145b551746a8f1e99ff64837f82d8fbc090cc6fdaa348e63ff73892f9cd3d96a53d9664fe72937b34c9fce31e4f32bfb82b2d7fb8c13d9ec8fcdf1e51647e6f8f27647ebdc714dea38a64a1a44eaaeaac31d7ed795ba8e0cc7b059638b067ff5c1c3ff43461708277c6dad561bbfa984b25a8af070573083dce21d15e9cb5f781a1389265c93c4d2627d4490a4595b262bd607e3b0ababd5c2dd62ac5df857141dae84885923a419d1e6d599c971484712713d3e9a12a66a924555656b84f97448edf0a4b8a75f4a5dae0d10e7347a91de67810e65076aa25b56baee6bcb23da9014ee7c479b3078aacd2349d4e5eb56abd56bc0a8b4bea123343ca6a5a90b71b748742a25b94a4d3e9743a9cbb5da3dbed76bb5d24474849bb97abc55ae572b95c2ee5a65a314325817677de543f8e4b2f90aec808c9914ea7d3e974381c0e87c3e1a3dc0dcae572b9dc1dca5da2abbb452a149d4ea7d3a570381c0e7782cae572b91ccccd49678bac1192239c4e87c3e170381c3e4ac24747f7e24e26261c0e87c39df8081fe1239306c7c4e240a0203b94f341a7d3e9743a1c8e5d1c0e87c3d9226b64911c2199259d4ea7d395381c0e87235bb830f98077f696939292703a9d4e67816c901db2394b448e3a9d4ea71371724e198873ea54453909c7d2d45da53a4f10e94c52f90d3cc59cf4793949e7249c93720e899d385f9026a0f31aedeb3a48664bef1d71aa11c6d508446dbef54eb9b5d191d3ba4d1bedebe38b52dd29773d72c22877f53106798deeec64571fc5b0448edeadc619c69c6bb5155b9545c26822715e1f3d4f7b682d8105fa2c52ce21a8b1d6e5f08dadc2438d848be0a21b82b888cee9208c873618dacf668b6dae8a7ba39bd0b910d5397c243f2ebae93d731817b9a9c645886a8efd61936c5a073be7eeecf38c23f45c337953fbe19e184d169ce1676482a74ed237ac3a1d14513b53b9edb2b8cdfbdc26aab8adc4b23331e6b655cee8751c81c0372f9e638ee2e2ab97d15d468fe9dc15173fc5474dea2ed4990a5d4159d00f55115116eab3448a23e13415959b2359bfafac6151d449ba0b75b6e2d93d16b76930ec3c0615b76933b0dce65d20c56d5e06b6b7819d3da09d45bb7b4e5174d1343d34ad9b5ecd746fa9502709ae8c0e82199735d34d6ffc5454549c15963a54ae22ba698ede43f453e3a4a49b7a2b3efaa7429d649a8ee688b27c74b1d4a1721305b223fae9e4f83849446d26eae297cbb236963bb6471cc7511cb128beeca6620aeb6b1d5de56b4d531b8c3d3acbd73afaa87a9c2a45eca5d8a38fa6ab1ee7a6a3dbdc7404c1d1b3df233a296b25e4288e1e963571343d6f13b519b159de66378ba9e23ac91b7267e30acacaca8a9b6fa2b29b9a28ce4d73cda4d7272e507467d90623c5457267367db43378b27cdde4a36e1afaca076185627e3e8fdd2ad406204014d406dace8c1443455b56bdada9e92c9f6b3afaf72059d3d1597f56544d478fbdaac6461fc731db9acd9a79f737a444ae899f9b4fd0ede6f399a04b8f2059efad48ee355f6ecb1acc6dd8172a9ebd061c75c61243b9a04014ca5954409798699a1a54691157b86ff7f189dbcf16ddf7789ad2344d5b5a3c5dc1c2e23a77a672bbf9fc802c207a45d3479d3b9ab4ca8a8f1f913b63f1ecdfd0bd897976f0ce44c749541eef7237967dc55f2227749ee9d955743e0288ac81bc829d4b906f1903f9a6a2926f2af9a6e236d55e9157b88a631616f276f3f9014d14751d6e9afeb7682bf16e9ecf9d8978e5e66e9a7d85ce9d99a84dc54f2aa8d5c069c3597996c7494ea4cb4decc56de14c7fa1a6f905d562a8b1ec19fd00900baa8118ba64e79c6467b2dbeeae5ea831d96d3aa9866f31b300db72c7c431d11ea6bff7c03b9c0445568db38ab3a0b8ed16d95b90272249e52b7aaba04020916f482a9ec395a71ca9f4914a05d549fa88c572501ffdcbd1c7e1b1db51183fd64a26e9247aa795dcd335b9a67b6323fbfce072d449a08916e9a4179a6f3aa916ddf4187659eb249d44efbe13bbf2b6e9a494b7a1c27c43c99e7a1b79f2365576d407f1e19836f00935292a43928fe5be78c2994de74d413283537c99049b30d6b1d6abc1f2466cebdc14df59ce3abb5fbb25707364bf2ccf5537c57ed1d6a7511aa02b118aa1185ea0db69bb44bc4ba4e6b8a0e658c79e12397b36ecc0e10a21c9b1846de9e692ad67db40e2ac37a571673037cd36d2d45da53acf2272c9c9fad0943c830ece4561b49ea6ee2a8cddcb169cd62bcef5c630089ea74ae58e821883605963eecd472ce8775685a831d66f0d8d796a8eb515e8a63c35a71eed1e6e9a1dbf888350dc2d4d2938470f6b8c9ec4c5652d743305a7ad52613db3aa1412e0b9d6e77ac6e1662970b8327f307b0a93336a3b796a8c759bfb5830e2120c8f10307ce5de98634512d69aa4f33ea623e134135da254e2921035e76e6fc4ad7705e11b1b38861d3c4f95a71a0ddad8f33c8c51242277e82ae162f43cd206bea9b35a648bb0b548f67895286b1e6a267189dc19e8dee79e83fff928faf7361fb26d897ca0879f77e92ba13db45f226378fa906dcfcf12c7490c9410833ba4356aebd9ae1f93dedb78ecee91f6f07cccba04deb4246bf97d6459fbaabd4af0582237c5570a35065fd20c67765d4792ac65ced9af127f95b829d6a1f7c86e3d04d11bd9f65c2a6e4a9ae1b43b22978a9be29b8b84832393a5a93b11221bfb3d527282d6f3b3ae927bc37e7d8e2e90bd4336ce5e83a0c411ec3a8923b084e244aa1689a502bbc5d841105ff004b110294eabedc4d1f1c103534b7da55063d8b1b07117f639868deb3daa31464ecf3888bcae2b944d38b3e30f04ad97a8eddc65798573fc746823b756b5c4f148bca6697a8dba4dd33fd33f33f49e0d82e79ba028decf7e9fce1eb844dc5956a9aa4a55bd1611c5b0ded9751c8279db327fa17fa1275abf21f4e336f45a8a1f29d6847e9c36ba7ea1f1ba2e77ae872e5ed7fea1d968d421610bb746ddd771be59c7d64c24cebadf6224acad4ab6d540bd21415088d6d65ea2ebf9f5ac07da258c2318b0d7993de82c8f711e9654636864374143a62b1c99be70fa7553d2393393a6ee2ad5799a864cbb7d5df6acd56ea544861070b5dbad94dc64b8b016c28ba80005881002c8104086f8d2a1b4da5b7aed96d56eb51b028810cef2db1563f9ed8a41ba340fcf6ae7129b3163064aea6406ea3463866cabe8964541232956bb222ca89e20ae4d011113141a8a0e0c31819075c66901ea43e7b67614023a0783b1a6a7c959fc4dfc5f7bb01594d48bb54a5f5a62ae164c4c2a95926a158b974aa592ceb9e4953c0178b98483837370439abc9436419d56380ec22bbe569a1636387b9e795f6f77e94c5d88f2eb259b91d93a890c843d259bc9e5ce0b980dfb5a63b2afbcad3335cd8ef27ab3a6d9597faaac9a66573dacc6e4b1a619a5a667766dba86f1b23ffdf50365b80cc1e16664c0502726e4e747262614778a7df02d0686469a5ec53d221cbb4a762998176d7232a5503809efc872677ce29c417a1928e673502ac5e4010dd27b159d59d658e8be476e8adde48160ec284657afa6b88f8f6a2f2a8e8e6e156679912ed279d620bdfffd7a8c044f81a96841c2b12353779e65ede416b929f6b3bcba9b625d8df4de31153b7817393115b88a9bbe507c140493f4fe25e32999eb44eaa84b84d33f9d4589a3e4d96950e58ef6928f2739cfc89cca1d1ba4f72ed40d7d82031bc8d3a3be5a815e9cd0fdc131ec2e7f8380d23b94b275ea29137a6f28a590ddd99d4a6503e9bdca26b14929aa1ca4f7a91b48ef4fb64e9d94250800e93971535c648424eb702c2b41e43aba293e72b94c20943e0a80f4b4c909f503103c5548764be7227db4b00a7bbd06603a525464530383f1388be874352c5e30f1dd2b014873b358399b3880395ad1ff4c4569bf7c46ba31ecabcf4db0502999e8246327346a8988328d0cdc19cd399028d44dde5dffbbf7e53e797d6e82e8a679f5b68914d4e66c4e259bf9c19903e93d89e2241cc34868b9136e9ca4d361442100e9a550bc07b7d681f4522805204dbcadbf9a5aca5a0a8a916ce024b7e092b69438f086c14eaf2959b4943bd94b27a9d4494a9b9c1c55964067c7ae9fc60ad5d1e51a16698cb4e789c7ca1a8aa75236e9ccae834fc60290dee7edac87f142715258d0a47238863df6d9f559f7b9888bb3562dae1df540c09d820ab5f8e981805b850aa53ebabccf12d9a526715a1a9a1287e7da65e54ecfceaedda5dc79a9f696ccd07c1334c5d963ca5a4663e58e6e2941e083f400a4f7f7c507d27bbb354c02f01429141f9da018090e645e623ffc00fb012575f203eaf4c30f9eeb3fd1920d3dd1f26d791487f25036f23cd44745b2f378841d9460679d2b92002031d6151b4bd0be3e22092f929b5e51b7b1eb24e777a7b852dcf4be7cc6bb9cc6b758b068683368d476562f9b81bd80897969e1c25f32e80b1797bbb06939ab863683466d67d59ae12dd7d73dae56ab9567a25732af6785ba3c0f87f901f8cb0bc0631e076ff101709bff1c5cf60470165fb7cba02f570b00cf4a628686458587bfb91dfeea2ed12562a9a951a1a8a0a4cc0c0d4a6aa5dc5121615018bfe3618f6b8a1de64f35c51ef32835c5fef2ac9a626ff1b01a83cd9a6214c7017e7bce52def0dd63856c01bfa64e5a585cfe7f456ca328da926e151595949c7996d3fc0a01df00f7e119e0dfb7601e925658ab95a4063c0b286828b7027b1a7ce671729ce663f8015e01cee23daf79ec32e8cbd562b95aaf1a0d1df87121b5905e481a0944424ae158565e0f3cb0943be3132f240b3894a6ee2a15c6433ba9cd83ef55769079179f296b303edaf3c56b596be1e30ca9bfe6e0ef8cdfa3fbf5d7e776af90f2feb4b079b9432eaee682b26e4017e8b2286f504d0d0b1994054d8dcdcb666c5c60625e5a40c162f9b07e6aca1a0c65dd6a4abb6341b6fce572b18199456a4897c3c4bcb478a1ac24ca9dd87641593f4170f91c0ef336f8cbd7e0318fc35bfc0db7a1f91afeafc365fe72b56e666adce0ccfc6b7fffda58059dc590dfbb6e64c8ef5b1bfc8a6313e32f2f18978b0b8b7453a4940d7eb5ba52c81259a21722a9da2d2b5eb08051e3af18650d36be20710ef00c70161fc3e6b1b77896c7fc0b7f79170ee33902fe87d37619f4e5f2bc858150e039f0dc4f070cf00d7006bca525e06d90906dc0db17a51dbae98d51ed2db59e86bb7e86bf9ec680afb4961fde8370cc85e4bce3dccc7e84e086b080582d6614337fe3b2c7f17fec349fe32c3e86d73ccb6ddef316efc2633ef49795cba02fd7ca5b2c57eb85c33aa150e3783a9d4ea70f9d852f5cc08aa07041e294351734983e17e58ede2eca5a8e0c12f6db679e06194ef33aaed6cbd57ad1487bc238adacc538adac91b78bd3645a36352ed03d0c53e2d0fef94b59fb5087993760f15ef37e83ed74395ab9a3b70b0a03c62661afe3331fc365bff27f1a9c46e6b1d7bcf7c2637ee62f1f3accdfb88ba32f578be56abd5cadd710245be5b6140ee481013d3c2b57eee8cdba15d99385d3286b324ea3ac91778d8f33d017dac1dd8887cff10ccd8759c8d02877f4ae4159b7a219322fd483a32fc483b3781772d3eb34efb71ad303ea381cab415d87ff01693ca00e8463a994d78aa0a041ea7183ffb0a287bd7638a150a7d3e9743a9d24f1b3c3b36e3826043704686766dcafb73e56c8cf8fad515adcf720ec83dcf4ba8d928871c6eb7ff0e1c80710b01b365f7d78a8a1acc5a0ac5b0d3684746a2877d450e2c01b86c360ad76de76b7e735943bd8573ed6a87183843df6999fb9ec6ffc7fe5348fc3e273bce65db8cdb3bcc587eee2322f578be56abd60627c45090f392e1e968402a09b99e7c0731df8295be80bd528887e68c8aa2bafeaf033650ddb604359731a978bb76cfe61ba99870d7d48c012e0c020d3cc4c9abaab54e76962f32c9767dd84b47816aeca6a5e2f9b296b1fc69edb30e2205bfc8ac774f81d9ce65b643ce6a5c34b0fee7a20e076418578f0968aeb0702eed8ed08960fb0fc00a1a0a677264ddd552a241f125b0a177b58fab02437bd5e8087b53c0c4914fdfa8a8705b13c0c0869fcf60fbea99505052c40e5cc4c9abaab54e7e94819b74b6e4be1583796cf4dafbf943baffd288c7563dd6accf517d68d75ab39b5da5bc2ffaf6d7bf81387e79fc794b50f752977b04b0902975295c33492a304018d1b6a3a6af86b475983993700400c8c8e9758dab28265454507aa032575a20375d2a14356fafca5c3571af8759f77863d67a1f9a6ab1d0f5da1e09d220c7f5837d6ed48918831c69966c1ec347cbf1bde0de1b46efb6e62ee2631c2fa3399c81aa773ac552aa37cb30f4c61b5f706e9d36b3dbd267264f672d7321194d347ae9114f706df6bd1aaf1973da00a0494da2012117005539e1645d5aef7f3ba30d6151b996b0213e11cf66e160fd9b656697b64cd8552e8d088d4212ebc1e0eb9372491d0c8d385469e2e34f274a191a70b8d3c1d4603e477ed2d795ec6660e0bb9229d8b6ace0bdf7c6051cd01b2d144b1abbd81f54c71e9e191ce59e106398363288ae10892f806046bad395ead391a5f93f194fa193331c56e7c388608c193591af788226bcd194731043f6f2c95a76e22df7ca342657bdb19cdb57af85a5cf22319eb913cf18d4fe822388a5f6963fe96152c2b3efe297a2a1bddefb097abb54792cccf5aedb1649ea389cc9f3ad9e11f21a2e9499a9e50272914550ab962b55c2f12e68f9239e79c3dafb4f02b4dbbe7587f9ebff4628befbd71bdeb7161ac02c0d8cc30ee9de570d3eb3cd4f4da90c0e5a1ce26006387656d874f58c3031d099016ba0ff6e74ea0ce6c076a8abe15aab119549aeb44e01bfb736736c876a0ce6c0bea2e6c0207fb7ac54ba83330c2be7ea370dd08093e2b2d2883956683eecc8661187e59c4dadb21f8915dd0350c83864d9561acb3be20146acd0161b44a95d6197fee1f897fdcf95160798630c014c70646cdd1645a63ae87697a6dd539dc9efeca2d7a26778a6f44d426dbec6b63b3efacd457483af3a571ff04fdca70cc060d1b6a4e8671d3706314a74c0207870fc6194fa648671739c13b8bd9f5071f8130fd44dd99d08fd34ed7ae6af9ca9d9552207c10c399dd568f7e289ddac59b9e3e80a1589242a79fa2904903d5917d3ad8871f80f8d2add3dde32b7154ddc6288c704684f1ea0cae3a954e6cdb08c2697d86345d4c54e7c6aedf98f779e50da31871ce3632190c1c9cacf18a7b46b554def781a3c618fcb014e3f77d38cc99c4a99c31ea6457591af357a598c21a3876bd7261df7a857d6f5dc2e9b66a8413054df42ca17547a6e9b889a8314f9ca452a7a9ceb0572874ea8c7a433a6a573fa92fb20d6557122562085b6f226eda831d1145d4594661a450dcaa348a3a9d9c3e935dfd4f50f96de8e7f8bbf139fe524aaf298e5d27bfe29890e358175635e764923271506268723a4d53cb459a527ed718e96048beaa143a4f53a9f40a7a63ad453ad86f2a6d444322ec10c6e890adee5ab6cd0ee19b5d63d7a33882c555a415ec8c3ba33ae6488ee50b06d69a931a43f0f3c492142f8a0f8a300c25f56299ab34b6a2c5d5727939cf131ba59e899b39c8334dd3344dd3344d172e34110e8ca7565ecae2230c0ccc699aa7699a2ca9c93c65b69792cdece090dac4649eae639026dafbfa953b59c765080e372303863b26e4e74726261469e90cd2e4555c7f8b119223a42a6e5a84632998171a282dec798763b71fdc132c3fb8a0d690ce6524fd2ae83651e52a725246ca4936489d91aa4872d35bde61939d22b09c8414e3a91893799a7946e6e442d540ea6f999c68161813161816cf2407a95fb54d5254fa53293a48fd27db5b95281000a9ffb45b9a4857e4a6476e8a911c21e1983632d14ee8a217978ca489329226d2b8928f3890fa4d76cb6b24463856849da822c9eea63a1c23ca489aa87cbdf49bb447c260facf22a37bfdd76b22276e6af29fa4b463af77375684a57537c5bae8446b25d6090fb5444499468644a42be204910e9a483ba18be82213adcb483fd04f22252551a27f70ec866355dc74a76f483be80fb7c90e062051ef276f7baf2220d18d6107bda5ac69224db4c2649e264a2a95224200eb73154919493ba189b42e6600939c3d94cf55c4f0eb85583cf69a48eb74118e612dc54d318bc557de8a161fd3343d9de7a965c57ba942c231ec2012514e62d17f5f10e0c128205761929332d20216b00094d4c90250a7052c409f6e32f3799ada68632fc951d441fac806edecd9c0044776d6d90679b7b007bd00d0400690d040109e231cb0001b037af87800047a98800f104134e0870422308167f120be468647e06d1c02dfc21ff033f7f137dee371dcf631dc01ffc2ad069e026e917822dc66e0ed2dc857c079be08b73e47b88068000316a03d002ed7a87b28c193d42f035524cd27c06b1e012e7b1f9cc51fc065bc01dc3fbff91f7cf60a28000630e02f848448800f331be73dff410118f8043ceb868067f9f0ac033c4b88019e85630db9dec516c8df21a11b84634197a8ccb14ca73d9138ff790b199e8b4ff3963b28523f8ccaca0bf1d4d0c3db3a53f3271632501a949a62f4fc1c63c72c72ace1656b8cb2becff5d52ce9964b4a4a8a2bb657abd54b26a69bc562953bdf8ea2c5d328f016b0b7165952112d5aabf583bd2858fe8696dffc0dc7f91c4e8107023a0dffd12ce015f8215cff8a228a70188dcc2dd9e56ca0e4d66e30ed4cbba1a11c5a40baf130221b4ec2c817a942ba484da67e766aae16f6842877c6bdda3dd122f5b3b06e3735ed4c3bd3ceb433ed4c3b1ea8a80c09c19165cd6bd17c5cf181cee25b2ee3692e745b2537ddddf4eeaecf4d6fb7fbe3811fbada95b72c9556fc8ef130252f8a7877f1a0fe03dbdd4a251fd26d60856f170f4f0b8cf573629475a3f91cbce609e0b2e7e12c7e002ee371e0c1b1dbbc00dc75810be4c0e3f31d7458b2cbb90dec057e95030104f0ac212626a76a6fe9d3ffda292ad38a6bbb58c8d676f1f0bce85fb1e0416d118e5d54296475408c2cd24d41ed492e959249c552282ee4892af593fab9331b99237333a4cdb76a50e08df0179fe3868ca7398b9fe1321a4ef39f17f1439c3e0c8e447c8f1bf196666f6f65a5902d41d0f3f606d1b8de85bf3ec70360c4571acc831c08c740cf6706ad052b77be1d85cdd3665f03e76df88b96c700593c8d9aaf398d890b0810473d7798c97739c82169c1a591760a8bc5c2dd6280f88ffbf8cdc6c3761df8c90ded5c0ba2ef60bb9d0aba73a13b8dfa2ef5b3dafdd098418b816246468685494646ea97ed99991a92e5017003ceefc871c306fa2f1500ec7858920c7c48c70d9e732e38528e1b36d03ff74b65c6e52a6b9fbbca1a79868f3372e567388dec3f67f13597f134627c0e87f1347ff137e0fc0dbf791b3efb1adee277dce65dcef2a0d7f03a1c46f3ff66d2d45da5425fae75a02c180c5ded66ac7637d072dcb05163877c699f1f213434342d4896dfe1364fc35b7c0e9f3dcd6ffe06c7791d4e811fc28978206e6f2f84cf78ad9ab3f89d1a4ef333bc8837c22bf016705d441133be1b365e2a45680777e8b821c70d1b2f9519bfdafd4a89efd46868d0f583030a12e2594334305859fb1c56d6c8343cf618ef398cfffcc5836e6f0fc489f82170bee52d9ee6457c8f57e08d70fda51042c03e23976b5acba5bd0f14a2c7080b0c0164b52bbaf9182f705c415c856706150a42030c1a590bd17550ac5afc76f1f0f0fc6a87632c1f21b8218f5da8a01f8a51904565e53f97caf790c3b7e203887f1ceebf6bf8cff57b5bf61548ea4706e4758470700c6707b6c152e2c0fbc32d772971808e3d56eeb0943b9f833ee6e494b5cff5cb36e8385fe3c5df7018fff2186fc3697897cbf8194ef32d5ff9dd72bd1cc9b550d3eb9786db666ce9bbcddd3404330dfdec8bae762f97b6e7ca7feebf9d86f73cee397867e3cd8f3f118b5ef38b5e4711ad6177187a88f6d83a77c4f6851dc370620f5d7be89ea73daddd26baed735bf6d0f1b340f1cb1e0e7f04c13af2d6fe036b9bc16f899124d41c38f2c69e15461fa7eaa636ad466670db3695595d765395108aecbbb119f67519be29cda3d3071b7000a2071f4698c8ed23379676dd0610461515ada2d30d4a422bbb1a89e2089825d8b400b5ab91a20fd07084550e4e444800c50fa9640ba523229c76403291b2ab112323589581b5ab91278e8c3c51b48d18ddaa0a2575823a9998524a1e07c699d37a35c244d0101191cec8108a64bfd6de8a2daed67677053f10ad41dcea40605b570f77ada15261571f7b60b7bbd69c98fdf9f891f8abcd88cdaa01bb6cdbeefe700fec77d7faa24e91db1f6acb20769b368d4e5b456dd573588f98d836ac5db63fafe50da6d1f9a11ebe4683b8db26db42a1d72aeccff5a7356aebb161dad8a69fc523a4856ef7a5022df4cae3bb42ae45f880f63cb0026fd792470c1f1f7cbb963cf21494e031b3841f84bb963cf0145a1081b86bc983256806508c4982e0042390bb963c5c1e70c1901594b7053e5f10820f4abb963c5250a0c11148e6ae250f4b851964e1052658b2e4dcb5e4619202145e708623822c81fd4d5be3c82cedd8593bda593b8eb0b4f00700440f3d8809f4eccf035069e34e0f3074f24be29365580a91ae834b17124931f4d28b4e92aeff474dffd8e92154f2ba7d00d942226afae73a987451a4953c446f22fe20b003c0f4d047fc3832902d14fa584b1e68791369245ae650a2379166ba88de449a888366db8448f7d193c4160a499287597211bd552a68e510a46069c79b553d6fbc77885e8d30a1c46655b41a61626857234cb8608f1e895fe847062df45a737686625063eab6dd173b434375a6ee8adaf22d6f785ec330fc20a167a087765a608912872668a2b843973abc32871a131ca185a8113658c106263862051b988008b4b0460fa1d0ebf651c416ba695aa823e54395954e7a101d9b6c87b51a9d5e69a4dbced2892e81dd636c1b90d3f65185f002236ccf4d4f0a22011cab475e69e4d0166df58924046ddd0307ded581986c1f19e907bbfed8313af6f22de091baaced3822033d342496d0de430b5d973868d0b6f416677538267a69241ee942a3231b6483706eb3414132d0435b02bb290467b5c1d83d809cb60fd80d984083204be0407ac92b8e95d020f786963fdb766f24ea7369a1579a88561ceb51519ebc3dd4565da33d6af4ecea4050db87005890815dbd3e7186dbae28abfa1047b66d8821ec7a84a5891e3e129726a2aceaa2fb80b7db0d7f1037d000549af8c35cb2ab8f45352766003db470d717fab1a1855e4b001c5197ec5ce78a7fc4b78416a2208ed5074b52084b2944f38991d401996f50e21abc1231d828b2be12496cd44dab11254c647d233270c146999c94f8b1a73229df14a5e4a40c52803f73da6e112ae8ce6c57b76f2583111910ddabab39f6344b65bdd6a484bd5a5db2596063f41e7df7a5841187b39e8c19051b45cf5a1c5bea180238bb8775ac73a6c174daf4b5c189633638f8c604e2eca62f7d7ad3ec38fbbca35b94476fcf6d89c3024b962c29dadaf3bab14300676bb447bee6cd27c0335075679507ef1b559795e0dbcb20b97326f39833d069bae825cfa8cd732fe57c82244a7553f077bebfcea333cfc53d257bbd308ef64c61acf63e52e75e9b3ddf9c6dd567eba6f5a6b70a1c132251880087d4a669246164bb258aa09ffef987f1978e63e93f0f9bdeead1c74df2dc5de232832469376a86f2efcbfb3b214b7ff21537cbdae72612741358ca1bf55e63b49f1e85e43c4dd7c1e7978ec7b2ac8d5b7ffe4a37cbb1fc47bd0a49054b27f8e4c11bfb46d175dea26e69d1bd15b7e0f7797b787bee9538bcbcf1fbe9863fa85a9001097659736490811884c1075b7c8e19b555297a68cf1ad5a171532f3f8d9b7a37c6d69d8d6e4767e1b03eba456db6ef615fe7a6dee9ad3bd3a3ad679be011e527b78935d175b0f825b73611e5e4c997dc267a2e394a47ebcebc96b55ac96d28963a50dbb351a8adac69d7c13b8eb034f206782af58ce58d1a3392d957dc667af6fcb98882a50ed0c7920649d77ee2e2dbb27f27280b07ca4b8ef212eaeb064b193549953a469be89fa7507ffae96d26a8ad67f3d80df6281d745ceef4ec33657e8f12bacb27c710ccd7e28b4bd93cc2e9b92d6797b162ac4677aedda82b7a60bcd6cc997523df36deb5bc71deb04b3e881f35e976db3c263b74cc43ee50023b07f143c6be35463b8fb7bf20befa03f643c6b63546fb0fbbc4860aa3fd7b5ccf66cbf3e7632ef3e7b5b4c1dbb9afb36b1f537f7de5c8cecec271dd8d0c39b13f122c47ffc41a4aebfac92d8aeb37fdbec95b7766bac5a50e1d3d78e5ceeace9bd41a13ba2e7564b75ded1a65a1a03b3d1be52c1c2937f1949bb8898f21a93f1f6169ad3b4b7dbd25e92b77567fd82df4a3f2d2a75c2c6be81753bca483f1e92a6fdd59e9734b1bcb1a7a4c3dca7b987c7ebe4ddbb09750f28340757c8e3d7c9c9b620fc52d089cd5c8d0146059438f0f76ad3063e8a06c02f67a69df9ed4155b301ab16fcfbedbba456d46607cdfe29859c20f966cabfdea8cdaacfbe8a141d2c628043cc846853e23b6f52ab06dc641b6d5a804302a14a4ba11a6d1500f6eb40fbd55bfa88d88ed3b9cd568ac5e5772bef5d8b0b36e881ba33fcc5dbd2e61cb50ec77c9ae5f6b8c25817f9e0c50f80923006d7cda18e38d31c628d4f7aa15bb3e51042f14e18809635db1e1935b4fef1add6a4e764b853dcff32ad1f9cb18e3ba60358847f2cc26e4fe40d49d61cf8536683f8b3778bf8b3f1cf690cb1c9084a80daa31d7adfe10dc9fb7c73cead123f5638bdf2661818032cb060d61b546b1a4d15cba331459ef4cb44470d8617422863a220ece498acc39952a83a8792864eb43a18672281b99ecc42c9d28286510358bda2a1cbba2094c9a9e4ab2a452e14c5e1a7e9c267a4d6d900d7a21b1d2ec90cde13dda119396c88d65d4069da6921e453225afc851770261d4daf33e30fcc0d0db1de11bbc84bac408380ad9b11146b2c337b8489fb8c84bc21ee825dd19fe30f6bc259e18c0507f9fa7bfacf388a0dbf703635d519df500effa562d9a73b01b1a4791479dd689466291884474c211923b13939c5067e217c49c4f3cc237e2f873d32fd4d9288ae328eef0cd38fedcd93876a0cec6511cc771ac310319a3df217c832393e18c41f8468663191c83ee4c26938da30ec1ece995d665218cba6f0a3607ab76d6f8d35aebfcb9167e4f8260c641fa471c82edd04808e7b575cca58ce2ab77dee20cc4a12acaa0de800ea22ad106dbaa82543708a226a8244cd9aa82d631432202000000003316000020100a86c442b12c8b924490c50714001076a05c5a4a1d88635190c3288a621832081940080100081818a0a199014de5438c2510b0eeea60a775540f78b1cd1d211611de70ad4521ac5261533442b96b22407a85193880aa823155439935a9f854375e852ae8b0c9c2b3b6ca26b6948125a6c8531a4b13de2b913bcd2b8979cf128d2819561c58f2e13b4f8d061c025fd1771c1c4875184856630f6d07b0ef7d4017ddc8c34a5e417ccd27abe13d9a74aa2007e30bdebfa51e9f1f4605bfb3f0cfbdc8739ee2242490ef7065a54c57b63e839f0c0419412d431319c10e3447221a9633600b73a47b91fab5e99a4d0b579a0bea210b78f6e0342936a071254eefad34efd8284d5ea9c35a1c792e709aeb6f25682455b972baec2325b01bd94e47cac3e8894910ecf6721c4d8d9c33fbfb80e540e575081658b90f8bfbf778fda37c00e1aaebc7ff64b24ed6f2d2a3370926d05e5de5f9a792f9e45d3bd38824de113bf68ed8d1ae5a2ff623e9edf29c4d555956551df14cf455678e11a22426ecc6759834a2f4c46f1866ff1f03fe330de34088e968ccacab8ea364e11b548b748bed9d01ceb6335d14189c67a02220d7102767fbe4a58a51351bf51a40e5af6355ca007c94f362a7539c26b22f09e55a0ac142dda0f4b7c285281936235fdd1ea8580ee319cb7d4e667fd92a36bf19f08435af838d9920f2d51c968c74956354c6be4b6da91fdbd05c12241121c3873d701ab75e45820d4251fab08a5ea17c63bd46a7b28411d1c3727c29c0ded0094c1896945b9a273a76205b7c269fd154b6b6227f1440fe53c1ce058cb5886e0887b09bf5be6ebec059212cd039e8258507fab6d067aa92f4ed6213bdc69decf79ef2277427dd77a92b1392fc68fed6672d3407b03b61d0076c4a3394eea3eeb283f2444084ecc224d2c06225127895b9d3e68822c9b1a219a0a3628de48d0f027432e94631ffd78c6b7e5740a20f8ccd3fb31f4a54b38fb9301a20ede6e6d83e37affe15d564e434124c2ad84436ce30465420a09b222cdb78a08a38d4a450847712fbd9d3069d07290f67884c33a0b5b7d01939a3071ac4c61efb24682b52d07ba5bcd605d6eaa3413fb4bdd19346d6e879ec7d679df535d393631a7878dd862e656702e5b723b7a3779033afb61531b15af2dfb68375d4901abfa05e464b82ea9504f3e4f7a4ffafeefea1b9cfa1e7f04a967cc8e323d0cc9802a0f05baa2836817bd7ba3aef0ba29858dffdd9b4455afb8b9631a0a3babc1d36d4efc436be6b80f29e533fa73ba0934da0c6a637251e05982c7a330c3b43a770313207a239d1114d4bd79e6aacc5f6988bcfa8a15411b8f9ad97d48ffc64117b12794034f5cedd9b1e39301a223cec997df9ac257951c50e9d4f0b41867c6245f999954164fe365fe46ef0b207965c5d4e301cb9a6dbd98d289a42fdd23cfc2d6328c9a10c159f3d7e5a77c7d136895ad70ae6f4bd8dfb091a28f903064cabeb00140f73affe16723bd398ef1e69fca2fad4e9d7179911923379a0bdacac4027183678475053824caeff181f42b98860216701dc7c302d509de15e6c06f4d7a44668dc0d14a969fa09fb1d960d5627fef12782608be8b579e526c0dca0c3c5bf7c0daf12e91edf5324816b16a07d739c8702796367d34d2b1a2c3ccaa6458522aab754c6293a7007bc1147a8bc1dbc3e13809acf916955b5591384a530eb8e437725de32d65750641033f7d1620f0a9755b40d3bbe55c1f0130975094f17f1320a29f6bf5c3557fe0d6e1494656f9ce9ee46b4bb6219e4ab5d227d4ae69c50b46c815f22b8c483f7c5fa52a3d643bd96c41e38b5265e11d61182df1b7b09ab6e541c827b804b128a0bc3821d698133f2c13a1c38fdf27c9d203ebc15b7850356d6aafd03806a17288a693a7e669cd159f21b0615f9ed963c6a9b529b8480480f8e0a0b7422571512c73e3ab546a588309b28889f13b84bd81497c56ceb92ffde0a5315d564306ac4808b03ba8b308b386ae453994cb8e7118c916670283a9a70ef3c3dad9424db69d9a0526fb03c009aecc6f98563e315c8786a3ea804e0110179aaa6ec97c19af133e6ef718677008b08ba831e8829ba99b1bcb9c9e960791747720fa22ec9d99426f136dccc0ead1e84aa39499518da753b8bdfd4b140f5d1d16862ed58da2122ff92be6f6f0195005896b8b20c780ee718181e04960da593feed130d1b430828619d72c6e51fa14e8a8cf84aba6981ce567342722b3e677e7a0689554974a3081098866ad6dfeb1e92621845557a5da9093943db83fbd6569a3a0485994f3f6ba5fbb718949b82cb002dd73cacf29560e9f256dde3ae79179159697995cac8a4ec16da0a9e630237d639508befc789432028064c83261a1d1f5d788ea9a69402ad35ae130126c75ed4385b0f4ceb9437d0d5a01af71d0276de1d3bab52c64e6998d62a9d2e48f0439ad6d60710c581e669a01c008fe9906f5a5916379116b2ceb91d9c18ee8977f306270c0673c804d0ba24f051f8e89ac6037762625126e4623d5844423662f2db4215e8b96df897625b71b6d01a71a33947cf7ce31c64687c89ba42f2fe4c74cc0821e0bc827522e7604d52e17cf25156d617d9b8f8b94b58d843d2cd35e2af9ae1b8e56c562538791e97b5f97192d99017e3f49d698217ed8c5e2d1713b14c8d6eba5b720a416ed334a601d8621bf4f266be188daf80f25456c26336fc930f1a3befdcea73b006f3e494cd18599c15c79d25ecaad3d1190c644785bd9cf4c69431f49a2c224db2cc9590a320001582195523fe4f4d6a68e77c02e2f1a34dc7f4757fd82f383db3dbb44702f224b2d65e97a73a9d370d43c3b437f4c7b7841a3d0b9ace6e36f0f53ea89eb6af78252bcc26ce5ec09a12529cd30ebaac857f618e45121756a0697cf98e8053daed1c6445f062b640f47adbf6ebfc218f826a4b34186647f4f7ecda1699be1373af0ab2a95aeec8c6771a6cc68812ed65eeb3831b8ec326e023c28c064902f9db1497c47a4cad0024f183c39725e6e58d39056f3e49f62c4e5a05beec524f3ab4031671505274c19d3bdec1e7ac97fa926c776bc8500eece2fe92263081bca3e5c50996f26106e12b97021e9e387a315c80806a699f914fceaeb1ad202774c6be1831105d66595401d172703556de1d2000eb8bb2d09ad3ca13cc9d024393edd1e22dc66e1258a7bad9b466a49626513e46a1048319d6144f81711107e738d73e2a2f5f462a6ae4e26aa593303e8099393bfb9cff9617f015cde7d6d8fcc7947450673708c9cc44e28bb30c24f542a34b37ace4a796697fe1bd04e5924d981d6235c906bdeec670a47acd028ff615054224ecccdbcc916a464ee264c82bdef563408f3a881d3e11aa8394efb104cc8f109eca08b450a07d722b7c007e9df2c8361ba48f181ee2742a6b5a0b57ad53835369d736e4fa65c0a8a773d8990c210b2d86799c9be7268aa8008ccd9e06f9f1e71aab08db56930d9f908ee76a5d6a0cb1d84480e6d76efbfb1f5fdbba0e896559681e750667d7112a832a90671665b1a16c66eace931d6061374fa2239eb6227784dfc2d2cf57f22c605667cf9086148332e81f92b0aee539c1a13f5529498f4e77100c491e40ea6eb9c7a364a7b82e24feff82fed321c853039f3e493880f1b0fcabaf52a4d7681807fc043b724e5d56ad63b152d55efcf6f9ffec3b64c4bc790eb0d7d5cb54654ea65e8e96724700d2cea17f27ac5c660ea75341e6cd6bc7fc02e2e1a4bf1f6b5097468fcb7d129eef6a8498a5c35d545627ba13d37e6db3b42b1296aca97320dafb03dc1a2d9216ae6b73e4b60159d99e9562593d21157e9d4f7aa519ce9954383f665fd5ceaf4efe4aa761f56bf2aa7008d024d6ed8a1b986a166d821b7df3b564a156f9377a9cc98caf74cce1998bb9634403cb0fc8d8b8041acbea39a1a4e324d89200fe6ca917fccc44cbebdda0c781dde804a6d5e548be787341934d7a3fd40945953599293f3325c4185e01a547c77be8005c42ac91c17e2c35ad51ac60c186b37a975b63f8ba297c3879c499fbc7e20ecd9e1ec43b885c49c7415f9c85c5f625166462c4275454ff7cf8c11ab5bf67b49428273f74a88661a1690494a1c46a47d2395b4bcc8733afad93c634ae35ccce33ee6a49a4394b6c35631829775f847c19fe51cc51576280af21af1db338df28be55f57e8143cac849311247c7626928bccfe800a2bf1d79e4d131c6a9c8239621def01f6e85f5bc3860a414bbd1492d1b05b2d2aece48f711d634a796cbe498d9accceda7b3ffc376015d3318d007656708f8008af60c9f6c615f8b4fadca7f001ab8e5fb3966afe64a1c6c669f12b3c7563e050529440077c2bef6c7d77bce8d81f32c3bb3d7ff1403f215d626490dc71ad7cb07447090e8e8742be190229b81fd62d533459c7ac286af8d25d9e07b4a6f83683acff6d1146f7f9806a8aa273891a18a811bc77cba23b8bf3916c69d85155400f62969ca1007ad77b6733f0a42ab612546085b4f988532253ea57a8538c820188120199ea87dc0c50c11208a89b4b1c5f026ef9de0f085273980cc3eba6854baf39371becf2c8ecf402329ffceafa0997aaf6c46278e8993a508eb13343ee78382422b23ab279a3bdbe3e7251c13f9424ea241438d453cc201dbbeb81ae1605e7c963a929f3b54a635623b2e63c9c8792169f46d4e28b7178283fab866f18de35530dfbb586e8651f0ce0322e21e92a3f6d92bbeb8927dc9a88b340202e493ed0a6ea8da997069ddaec75ebbff7f2744582f25e1116ad57fd83b7df83032299b1f108ada892e9c101268d4a1431c21e1231d427fd5845113c03f5f81ab6923e7d0bec39a16bf9f3a74212324adb07c6125e19731d17aa070791f6447969ef99913c79765f201a6cc3c627516e81b536b633595c9790e59edba7b229e7446ce5eeea1cde80fed9d6653ca8188f6c2934d380f93d35ce82f40e69f40a66597a1b025b5002c1b83f588bf887dbd7a34486141b889f2821f6cd626c8f141e09b2843d7ce07712208718550689f0c1f4971eeab88d5e18c641b900589f74b226da97845bfc780b54747760fdd69bdc67bd025820bb84c971b88c4f73f3738dac6d2d82201f861a3b5904e0619822e20553cd11d511344d919f85c6091d11fd7c528164cdd7abc10b3dd3402ed48c528a09cacbc9274b9e9545951333ee154bcb9ada6ca6a1faa876a35234e95898c834c8cc9659518e70a0b09502bbb3cf231447878ef974ef250e1a95a024553cc9596d05bc45e9c558afd6cb8f959325d934b642fd33897963b6b17a35d95451ebea90964d0f051282d6d0727d66e8fd08585db9f95e269cf99a3c16679933586c7aca494bc79ed9cdb8210a9e5a063c73d0c9089f3f0ce5baa426c0bb1544732c98da62135349996f715087c8d72d577841428803dbaf3b86e0f4fbaf74ed49049d6b1f83cec5e08bb624f7817676c622628248d6016a92470e53b97489c78b60a487b10008fb972043b7771c0de736456ac314de01ab5ae22a5e863dc5449806e02f91d5e412f9099c72808a40552acdef7b575c135b99bf47a8be9580e6a99a192fa841a71c7b29dabdf00135634ee72fdd270c91e91ca9932ede2300ce3a864931208674fb7713082c2b16fe521f11fedb1b761bd0c316b12793d1c7f9328cf4e6a7b7d2bbd28bbddde95eec22c433efbc59fe4dfd9d06e552abb3a64edf252df9d043e55b3f5c5c97ea0f49a4a12a3b06e9271c12376c7ef4af395b87a1328ea3943f4bed9d823bc8706c799c351aabb56a5178238a526a822f06d8f21a17e90ada7b62277ec0f8054532b853290eeb8b0ff8b2b19a8bb01686dcce0fd2b60e7fb81ca63e44c4126d8411cfdd8fbef410b548496019f36609a9b5d4c1a8705b3b162f5740ab91ed44b120efc296959e71e20984b1f9e06ba88920086523f80d2859f2400dc3cb1bee5954a1c99d47eec5f0c0ea7f3971d4aceda3de571e3bef7fded3d4b33b57e745260cb4b6cbe36d6fe7b4ed271d0f9d04e72be6e18fa029a55ba6703f349f0efb482b14f1822257a444e43b41ca2a25c949c1ad7a3d5b5712325f697043c885312069660a400551212abd488c1156a3eba95647960bd46568851641a33395a89f1c91399b48560e1f80e2746057a11d756d0b0d07eaa57ca1c95d80fb42711df2e6703a03344b28082eb5aabb275c3b5e0e3be2e2f808ea74cacf906f8fdaa9b374272de200d50b8f22bbfe6c90ca9124a6755283e32022137277d5471669b33476f3974bcb43f7a09417ef55fa23c5d1dba7206ca3e739279bbeb233d2e5d899cdd96d1f66545d5ef85635ec51e1b92e17042f56b071445b15c304df68747365637dee43658d8dfa61087f013f8805a029d115bd5190da815f9b4bf188d2a123e15d4099431e0100c784449a69f022d1ffbc2d6666147a07bdf7dae1dc9dfb3c577a365a3d83c31db7e9bbfa3351057d5ea8446137aec9567b9d3d2b3cb9c2f265b3ee246ae8922c2782040afbbe4352136b1c6594ab31033e5acfd7386f02237ec2849ee997afed7bcc72d249276e6c0f616cd14f4060371696c82e5bf54b264585e2ca30c8284387202f5abb0539ec26a9cd4a0978cafbec34ce4f811718a13710a70cb27222becf0228e3e164571beffcd05d8d70b5e8970df674c817b12a530b8d078afa44f7f1dc79e9466d351d4c2608fa80805504eff869815cc2ec32ebc71b3d41db99f42664f8b05be17a115ff76da0c7c318eadf67c3e78a9828f37b693c7e3168bac25bddc9dbdf68337aa4560894578e21bdce07d3d88a7eb4c578db279c6c5d699941bd4c22134549078545755690ea6a94c8cf40e95c4da544c0c0c6da87973c1b178d116703741cd25e226348b221a2fbb19aa26a8002dc4139746a76a75d0cece439bb9f4969a8b2b57ed74cba5d4b9a008603263c14b78e37d2e99b770b8f93faab7bc3554d4bdc57c88a66bc1b2663add242568eddeb78e9ee7a7d7b78809cd26982b0fa113c435c9cbd20227123e09442461b148b5584b49d755bd8aa0664ac2dad71d5bd0be7f8c64781b1d4717183ffc0ada7fae1cdda80c1bd2e2e1be3d15cd7b54fd4197afae006d4fbf0a86d2639efc992f59272de26a80b3cd237642c3ea6bf2dbe74a2195416cb4632e573f7a1775abff79ea5e5a385e2fd6a06734498286b3e347b46919d0817bc7c2a1dca8273a56a75a815c849287d825de8b64357559fba98fd343447f48815a73c90093feefe3c99a2a75579739737a06072de06f2016aa9751f0973aadc3c655cfde729ada5003822ef87cd773d0e1375cb47ac2e29b3a57f65d3f214c5535a4a45726f3526d586247f9d7b7cae01388a41c7974d9c7a53ab7f1f8a9327d268f3f020580c3703948d3852e30ec138156cdf4ab3d3e1bdfcd0b586f210e6c1c58b79fcc10182a1de8b89c2e0ded3b81dce97ec2325d590bebf2bb5a827c76c1f5e11d21ecb30f8e01893e5a16e7207a42430fc444df4cb0f32955740b663f72bb771dd52479019e5228c5d0c644cb6f00726cbb9399d6bdcd40ef912f269bb0893ab6e8126490069f860c90f816ac8d44caec7419eeaa6fef884e87b87f538bfd906bd794c766446495594f94ffa437649aadaf34ad214eda1de682ba5187399db41b5299a2730509a37d11d8acd880e93b1f9e32e446f7b1f27c73e8a0cca58e8d5e280f460243c1dcd8e3867e3ed1d74ff56119e19c6b45c84889526bedd847060559ddfab50243dae6b89d9271183654830f9d466edc798585dd4625966048f5ef4b8cbc3af125949a515db2ef43438d55cda97452d702286b9779193f927ce836c6947630854f1149a1b71e1b394728df4f0507a49cc2111e43f2c1ba913bd0102142daee2e2e55a2438e1a54484a941959478bdced254d19a68346ef332590d9f4d4a0d5e7e82f21a2667b2e3a297c5bed77991b37982f441244ac992f09f3172d9e93915dd0cbfc25fce77980fbbebb3b2be52e6f160aa7497b4a249164f0484c29d3f537c521126d3029c66ac18bd9fb7098998940174f8732c70ff5514b142c1f4999e047dca03b72ca1a3b73bbf137911404042da9f214044cd34412966633199087f4efa024d99efc115c05d1bf3101bcbfdd68aa4747862ad2e761dff63f78040dc805ef191c302ab637d6d6c227650e49eecb7a65eb98f598204f821854bc1334a341a73f39243cae164a97af500d21eac61e1921139fb0571c685029a6ae88dcbb5502028d26ba140a23efc063c1f382e75bb43482e363fe3c257db061a0fd680636d887254c4fc8c346c9bb08e3839d0db501d9ac7d4ea57036a96b0fd2dd809b26d6f08fc06990ac9bce3b987b05bf5f35df89bdb087c92829c31cfa760d323150a27d88b6486b37cb2060af1cd336454acdc2549034ec13bb4512e4aa65f360be17d78d7f46d3a1ae692f0729a93815737ffb8a55062d8ae3f603fbe50aa640df9385abb9f4b5cde3e259d3df8992f3929820b399e02b9ec6888b656ea22f9e0b6a76a939a34659a65ca7030faa06395c30c742c5508d434591b621225d26d07e7b81ec64fd5fed05054b5e4c0a131ca1cdc6a00e89398d616451e5096eeaed362bebef70db8d3069a7cb9d2c33a7d093d0ab0b6ddff535bc94824012fd1065838ebcc5576f4d92854e7eacd1405a2c74ac68138ee68e9372dc73a4029de2d87b6b8f71732ada2d9b96c107fe51199a082993592ed7a5dc538b09c2740ff2193f4abda93f28df6c655aa8421018531b870d4aed5c4b7d9b5139d5f7ee9ff6299bc823828b583791baf4b24cd2a1a91831b504a076480b255b3879ddb1620f2592d3a07cd56680fd081826d3b931aad02155997756d91c528ef9e1c5e73e64655d741fb4d9dde96b559b0296e5c0df756c63e95f67c4b1ca4ed4abf3ffc7a43ad8a2100a87f608f8dde03befa2bccfb2975fcddd02a32452a5f8b81e8706c5d0d268251ccccad8683643e182e987be82acbb0ffebda847b55246cec5cf1455fae4105018e938c88dda3e3af91b94111e379d38d7782c12f02fce6cc3c8bbef277195dec25c435918fc89d22ea33bff036d8070f9372851e9011127353b5558087d3492cdc77334667ac258275c076aeab6deac7e1b9ae9c379e573bbc0ab10a369181edcd8c6c3b68aa4024c9f546a60c80149e6f08ff01a2f67f9d1de195fa8483acef39ea55cf5f3ba37139450eada6bc9fcd804a051af9627424b75a8596b92c3a36dbdcacd3554a4d3e4863da57775d599a940ede351aad8f020f50ae46765abdde407e8e8ab91d05b6a081e420f041e70f75551c66055f096ec31f0c6ec9ea0bdce2a00982d13d7657adcfd20ca715927dc0c88a20b780d55351b2a1dbe5be2d9368beec15817ac094ede3b88feb3fa86835bf4991df5e1069f08bae11a16b1b52b06d4b826d8745b2c5a734e5e4f0917058416a0472d6bcd5bce6b5be6155b983aa1b17ea21c9e0f4eaa3dd5a60e6d80d3f2311a50d7e5544e40e7fcd71cbfa2c3a545957cc781a2abf1a07d2be832c7f269a5a7e17d5e7eacecd67b1afc165aabb61ea21581e69a6126c07f31c43de761d0920fd4ae885e89a06b23c8d0ae2b4a5303aa005512574d9e5535c82a5a400656d4586b280a86076b1974b435b0d84bd0cc4c815f7ccada5701aa54d72040358ee55625b36fac665ca62299bcd4d6bb90a01b8e7f3668e65abdda9b52af545b644528b950601dd2865f90df2e71010c1e48c0bfa1566a793027292e2cb50d79b8d441a64b4e27b9f75e2ec5dde818ab8ad8d8f1b1cdf301f3403fc279d5da246e289cdedbad2403afd1d26070a150cc891b7c00a6beac891bd05281fc1ae862101cc84c23eab72c95652831de2ffc6233aa4055a46c97a170c5ba440bea86eefc73122e358da8c0b7a614d61f5891a1c757bebc0101c1cc8ffe837c03cf97d23c794b20a88b0607269374d9361897dd9e73f20df83ae6bcf286d20b2e53dee619358ee85548bf620d387075d9a6153ebbe4cc4fb50107ec86e75646e18d49bd13aa018702f2094e893a0fab9a3799accd47dce19f5bd91d241cb098ccdd580fa43eb9261ce6bdca556d01b7de77d7862d16e3e8f675e6d6c1c70cd3860ece4506546993e98a830b829fe75396eda20b641387de8c035b413d03604fd857a8e0e0e950e1239d5dfde57a5c2fc86dae75e5256433abcf387c2f34789e245b55ee33bb26714b0dee04673b5b5f52bb7fbbcb58868e41b2169d5aa552de5316a8ad430e8e7f79e920ccc7b144c0a2e03e1cba210be1afb26febe1a61c56ac2d9c423465145a5420480ede403c07122907778a5500a14c1d8142dc9e88715a97bb03c36234683970c75021a0d208c761409db8532a5103ae268f39f076048a0a186edae5e53f9b5bbc7bff63e9b3d721ed0f54f339558d46bfcb7628ab3507feecdbd07617d526433ecc27b82b1ab06064b127413930db658e1d75c554cd14a3e9c4fcba3f054544a0139d548a454572399126f72b8f39fce51e2343ae188752beacc90697609a6210ad4f28e936e58a6b1cdd9835bbc2b90e0e871939be8dd373184a751fe13dac10055efdbb5d906b6257b7539b384b3f6bd20e2c6fd7c81091985cb10a9f4ff5c1164abfab5cf1782521962bf6a2e2930e6e62b910de7d42d8e3169cd333f64ea11151e074a50ba17e0bab566cfdaf9cf7fbf3784b002c2d0c3ad1f92a6e2b41cb01eafb75b07d574f00eb8a8734c6d1b09e4be197bb450d87191f7927975e6863f50f5c00714b6a0ece7ea28edf6f9d5bdca6d71c988fd764bdea119d01200fff35a6d85ec40a58cefb6046993a1e7a358735f0d774fe9b2d870f5615a4f825abbf089b5c7ccfc1d5bdd79fe33474f148fc348c8dfc2fe720630140047de189e6f36fe4852d8cfa5e0c303ce1a18df71c96d0dc41ec993557895f158fa6996b82ab924336c48ae8f04940983066609a96de73f01a9d5f637ef671d0c11c1cc6ab1ac6ca55fbfbef6b99b542d5903f6e5db3b74d83a493610f7569a515fbb09b031b1faf39fa877d1e8a513226d4de437382e9e63edb4a9dd9f6185c5f752b630c5a04a7fe55768e40245bcfadfa55e6b6d4e75cf7ccc0c3867f876a84bfde69177681cdc2e58ab4468625ac3594f1563de6942786f8dfb56d095f17c325f1b0bec4b326c085d78064d35674e12de397af4c77045258650bd356a4606cc22093850c8c7d012ab273a3d90b59098a9258847b49152c0ee9ff25bfb3b9c966f1e355d686a1e7f2a5983b001798205a4affb7ca9fc57b5288d4f24be7873234ce239ad0767c05c10682aca9feb2a0c51489ea8421b823e62e1ceace18f393ea25b2abf33293b65ad258d3d3200c3c3a34db6571f286821a49631eb04710946fc02583fea2ad63cfa29cc46227ca4a6d06496e48771fa03414d1dcdc9c191fb8787f8c22449db5baaaaa94f3057ba4a7b8d1fd64f7fb0ddd91f28039d251dcc07db2fbfd760f55a22074c7945abae4aa8034045b0387e54872946f947d54f6d0d1dd2a273dacceb046a7b621b275cf912ac412dfcba96b6fdc7d039b938f7baa2bf79062d752434e069d15452c94ce0bc03d78e7513cbb85f1512ee7456dd756f9d9e88d93c38757bef05a081f3ac9de4540185c61e5d5384cbc3b52b35252f17dc74b1c0323cd43272ffd5869da361e1da652f1cd3d1226899af10765096b698728c57ee2d745d421d3a600c31b21fcf842e8877506ea8d38ee36ec42140fdcf03e4c4db3488d4c0c3bc4333f5035208ca2e7d38cd4d8046d2ad280e6b61b20b66a0d1034aa22e75eaf65cd2ff5600f8c688b1be07ad223f97949c23a49e84927bd9db64d400919f3d99a956c61ab0e0a9e8a551efe8f7f5164ea3a1dacd950c21a555e3e33f92788608b0ccf5b1186741537d1a93d98c1b53b52a242ef6ddc87b1bc960f437f782b7ad0be60382b7f1cfd87e1f3672b4156860c1938cf4372ef8369aaff374839e7978a4b1ea2a70578ec2cfbd9020f3b1041b3fc0fa24ddbc9f00b9123f94a54b006463c61a3bcaa8c868a61422c733af6f4cb131f57ec8fe16e840cc0dd835c917a879074ec6a96f6da1f21454064de38a19aeb3606ae52335957a22572c5c87fad2a0b3f62acd09ee21fb8d887c8152b1b4c2816ef7c97daf1dae27935a2054dd4b47c72638c974e3fffcdb5937be2f91961d74f7e60a6c2f52f7776cd8f47359ea810f6de4ceeb767bf6983297c194caeb8b4b7456f8d190855f3f6bccb509260fcd75ca48cf3f2eec9157596f46626e49d8c1b32523db240e9af981681e51d27af5b7a214f4738aea544e9268dd89455359786eff74b0d92963a69a44f625be22e0d263ec13519b432d5fbbe0564a961adce96c53c1e810a276868624562fa66f5d29a9b785bb17cc4addd795d8178fe7c5eedbc1373a30aa88e5efab71824529a205595ffaded9424076ec33963ea96cd7c562a44227cc98831a1a38b587dd0d15c38a92046952dbc5c4c42575cfa868afd67ef3cbcf25936a7b59a593506f9814d5cc03606a94ab5a59ad6d67ac14c3c5547e6415244483e52ef775938dbb549a2b4449a692d5162d512a48f86042e14982ea65c191ea68b319a599ad849b714e764adf82bf287058b65e4d532ece1fed9d015d7c1f3524af24585255934463e0afd2c98040c85fa95a56879c305bdb5390becf48759d074206501ba729d19065f60a14216086652f906853288264a204200bccd8eb81e0fb59485ef1efa93e300228101d17a55764becdcac666e81a589e592ae550aeead1b70b6ba228cd546b6ce895600f6acf30df075f526ca10de24d36b37dddca49bc82582d522cea1ddb13723067f3ed777ec6e87a11bc3888c5eb137f4de400ea716e6d6e2bdb1cec9d3980596981a75660119105ab35a5e3298a963c44d5118820129f82c88583ca8a30366e00bc87d2a64d859f7246c397e172b405e8ca935ba01c410fdbae2e9317e888804c5f52fdec0c165df3a9c7d6f15db34c4e535bdaa4a81956c056e82c7cbdebdbc7419cadbd71523830f4babfa50178a177b4ecf7472126395e97ecee2d1b069658f2a82010d5385cbbfad2b0033c8095c90069dc1cc20187d7103ab7934f480482cfc2b538c3ef5152bef18bba555eb01e070b10beb64f1488a31292d6087461b6ace459d0af669818e199e7b0e4c3a8db2462ae355a3216219e2410cc1d02abbc1b07330055694fafae6193ac6811601c8137e9c16573cda4442abaca7fb04375a6cc3f57662786d9ec3df4fc4bca85db37e65f6db641dae317bec7166a91d51b2e6ae58f73cc4991c6cac28d34fda7a0706b74c16d96f0a132b1bcc1326708acddc5a7ee3b97f29f08407c939f1c91537c5aacfd66cb45ce877b1b6d3322981b52ec1cfae2635323f5b23519d063f7ce0173d5c113cba42884b34b4cab668afddf094a03f8d804241a849e3a0676ce632d91993e6db7d67fcd14eb3b219d67b31dd42a1982b89254ddca91eb460fc116478c5b84c6d722c44653a85d2bdc035d1285468f102fe540e0fd43ed58f16b9ff8046642a37e703cfe94284b84115bbe1cd7132c1ef845a4724c631c3c658dacd79b0b696b16378c5b80f22f38fc961dabb649dc6ff5761414e1fb8e054275e3ea035d16831aac56e104427a2205f60079017c7022a1c8a11960aaf6875edf5f83c617a3c95b7866d89665c27a61f99e936f2d2de871c093880f3d6213cfea86694c02e16609a685fb443f82b9032c91cf2b9e7a1f41060492a886360b5827e45d700e1ff21f38af10358511f4c819f35598b1e48a652dcbd3dc4c0558a235246ae1070b0545ee3b47ac7ee84f7005cb10f900d129e5ff056d9316e46589cbdc992b4f1f82f9bfdda47da4380c405f138ecea3cd64e44d52bea1ed35ddbe017ae5296009c3929d862d0ec8b386970025896289c048a75db49b76f6dd389f9610b3311f8d0bac73e6500f1fee1fe1f1f6595c1f502c8173ab93f07a2ff9345bd623c55e90de62d821cad2f72e724485c05af132cb81c8c7e972d067e93cce2bfae2b74815877761041155e15deb6057131e240a0ebb83d2cfe9dee87585a0385a1587c8de8396bfcfb6c8dd7679fe20f4acd966abfa4bc7e15bb681afc2b9bbc22ad807d30dede5260c77657523384eb178bc699609aaabd9984b80092a5a59c862d4c1fa26613a9199ad68115afdd502204059dde20b72067d1bb6e265f97df33e02ca948ed9548cd7a608cbd197d99b62ebc9b2a31a8d2e9b85683b74e3bef66f47f29a347002adacf7c30df853c7068a98f4daf3b79a2e419933ed7659f9ebbbc3a473bfdd0df0a1854344f8a393c7209a08cec8b87da76390cc88668dce0340f032fff091f1a607006caf3fa084ab420ef8219b93d33320bedc53aa62b604f2564aa6c0f2a4806bb0ca90afd397dc06b178d2cd66f4353d043b372008b4d236d88163977228839f779e234273394e968bd1f423175b37e00d530611e3e18977af348bc5b7da76d13bd9c042d58ab24967a78850f4ed6b69de973172925422fb5fade14f42ec7df8684b9b667e554ea9643d8fd7feb46d9450490a61be9c84a41b1b8f97ffe9015c849aed646c33ef318186edfd793c468e1d459459683daed9691bdf5b24c02344e4a837d03aefd1289dd12f8f3270f30e8985dac41969f65e1cc99b53f7f715d2925bd332f5cfba98e489d59dc60386db10257d004b842be1d8e340951e6613187ac7cb0ec01d11d9d769894fbcaf42bfa2f8eb73aa24d2644709a6c4796cc17e4e994942d4a96a7376776d4a6c979f4c702f8467b8271ea970ac96c9578c2beff5aec2c86cca92c641fce3bbf01282144c2fe91807de694dfe2eb17681f68b698f7b2bf071c9930e1b8712a5c1c41781667ca4964464692df604dcf979e05f5e921f25afd699811a93857dd6d07863f17ade165642edec47eb9585906225494017d76ee2c9ddf03096f84ac5de840e3f2561a3391513732edda28ef75c039e078578295d58ad11e6d63f2827aa6c9ba6c2322c79a22e99ed7b4c391f0def400f7256fe84993be4eb09b2ef1fd1f01dd1c2a31e6283f9e71ac625d12b5372df30085ba1da0d738a0c7c7d9980bfb0646af81c9f73df930316f3de63c7c29b0b62723d6b53ed715925afd5d51123f664bc6132e37b3b1222d07476fe234e7b7f4b9ba27b9ecbe0f6aee024af7c79ee4c607ad1f153a16054ceb1289d3eaaf2b907523a234a21b79251d9540c31edb9a85b9d2f8ac22c94eeb6c56705504f58b724176eb43b71428664305e8da0340abb3bd26e6a42e81a276c10f9a910958212df70252ba6da34c57e828107bf1ff20ddf014286239b6431b38a7af20d35aa4d44d99bd959bffb99c062b54f060f7a67bb0cc3ea1127f9565660ed7cd7aa3a05480a038890532fb1387a8b66d669ae2f415836bae24e223188d2dbf9a94038b7a958d08edf48a1a191ee716e906c3a11db4c2c6d02ae46ffa77381f9d3cb80569aa3fd298684018065636990b2c966aaa3f8df7ce6ea89af0e213e603b49a734dbf3bd211454c213bb2059251fdb9f7b020f6ad89875f277e695938e2af28f1bd6cf08c2f70609da46b81351b9ead10f005a660f273d4fa4d6b66ce31c6df1bcbd186a54c6de515f92897054731a65ce501cd748f81751827d83bbd23050022f85025f7ec8b1d8d90a43ff3f34eafe73d70d80669dc608716bf419d0e18957abd5cd30ecdfa8b4e9ba1a7d08632665306a31943afec28fe9b8e7e540dbd9c70156095fe4feaedcfed444da05d7fc9c7006a2105c56b4e45f377676ba63aabd59a19c45cd41fbc60c4f1e0fc6151cc4049afda5f1218b113ddfce47f9d186b1f613e0a3caa0c1f8d65ae3fcac414dc2257215444ec0bf2a298784586373a5088524548bb83fce891448194941a90ae9954dec3a0b729fd56fc9890f7d1ce416535d2d25931f564a3a70a4c61b915d31220a74a5bb088e12067cad83937f0031c34cb0ff7085aeb0463a81b691e166b48114173ae93348184aeb84282beeb3c97fb69f791a8d65a213691e7203a341792186a2c8110e8ff3595f3df20328a361b98b262501e6442ad60d2db8d12b35267e244e398431199a93eb73d8cca81333942363cd90f765c0d9f912bb473e9ee4c1a65f40e08274e99d12526f3d8912effea0fe3c9162505dcabc5f66b49c108d6847189087282d4948145f42f34b6d7e7c73bf062a765f5530881596910af7879f093be3c81e761fd866b3c32933eca2c45cb8dba562a21adb128aa66690379472abe2ecadc8f078aae63812eee4706466bd2d35a96c85871f84e23f2029a08a80c3b1e8955d0edddc47e87d7d590f8bde51b476a882c6f5173ff158a40d9891518004bd110aadcacbf9e7df498d149ee1a7b0723b046427bd6ec312da55f9df55f5d4713ab8e056cd9abfdce0e4ab4ce468246c83abe914d1451677ebfe5a023c0dfae4673eb4dace0e84ffa68c23ca67c1a7a0e3f04563a73f36a2b4131122ebdf308187ae26a0e2a2bf5cd86c5359be63b9e346da58f83d134bb18f640078b5b33430b33e5cc27b55164126278c0208b74946fb49fea4abfa28a100044819ee20ded57dce87758c43d0a8cf430f5042e0a1116c8286fd03ed54e1632c00b727b77013c0ca3dc3da343d151f401be37ad16b360d6ca7b11c52e0186e21072d9a543ef8a8e6920bc6a027c61c2382a53da59c168141ff0b355dcce801a203415ca996e95107799e90a746816c6bdd38db6889d5515cdb877847d81812a65fd69c41ee076efbaa7abd36d9e24077c805c0851eb8e255a1daee806dcd99d1c119c84abfdaae79f0bd2d79649fcaf245ed05df2c4ec7c24e6295e355c94b8536b5b4edfb11836f7b735a0dad3de6d7883f97a617b2e1e9e18aceb08acefb13008974accca9e5d3bfd6ffc9755ec71ade09535d492213f2adbad7499065c2132a847834d074acad087625abbb4c0257eb5cd4a9cae1a2ef0ea816c53ef7c60cce1f2308dba65849e61a93148ee9b0615f36dddbb8e32a3fc030f3cbb178131d747bdf4a6ab2585f8270164722d83bc38e5953b93f900b842885f40b38b81a0987ad6eb3c099871f42f529b217baef3ee5d2c3cf29aa7a32bc51c0ec6b820e0e49220f45bb9eeb72903d6340015c8e84839a5628e7ad23b00cd74ed49c806f4321754e5bdf3434f7e76b099ef9222aaecd65e4e9bc91d9458ece2b0f9c5747ff94f027f1e37b6009c401d43cca299d0970206bc02b51ae9bcf4e900a2d00ea6c7bc777aefef40a013d7054bf2805b6a2671796b7527a919effcfc3f4bd64667b6bf2340558de2a0ca42b0a7cef774a168064138239473bc154c7472dac1243a0589a0e823ba16ff06e7bd8be8e5b804a680d9edbd73ccf340f5e07e1749f3a9b19fe48d5291a8ec582094661067f3bd3b2e7a66b63d308b4f67e8a3b3fcee2cb9df2d88ad569324d490c1086fc6afbd7a746963c867ed2e643b5bf229d3a9493d2ccc7155fea5f7d10969dc16c7a2b97fd2f76ee3f31de010fd6f7cf2c9d7e12e47cfa08a6687e25ec3096546575fe5162724048bfd55243182f0430b19e2dba1c38c0770fedd9ea7feb950d2c807e520c6775a8784ec49ba8ded2a2709f5ccd75e96ff01cd904cc5ec3429b02447f54f885c5d062a2456ed66adc3075c1a6876ba2589e7318e82e8d2ed54e216d16ab7f61658e0bb83a44014171e16e3895acde93abd40e04c605de0bba337a58f879059a1df825dfee742c93bc2bd039a9db865e85e38248867ff8131ebbeabec0d347712bdf8743ec101cdf6e84dfaa1b8fadfeb63ca04d2782892addb8b9545bf13df191ff7085d02baddd73ca610c7f91dac02e5d81e996468d8c43b6790c3c1d35a18b89113d797489d69c069427d1596bf1f046e024685317cb7c642fad89bd882ba216ae1ef0b7794398919dba0cbcf9d5aedd1a0ad213e5663811b8f262af370653f549c1729ec4c2c738c1227e3c9ef189f95f19f8ce889db10bd7ff2df1db33647908b859efac3fd96947d411aead35ebce625350ec1d27b19470060d6d0e08cd8c06482e4b04c95eb4c4dd001e949e4f184f6d0bf17e360a0ece1bd761d1652af79dfbce3e45a3c52c1221c667b095c5e5cd6f3e104832ec0491007359f29d5b8a497b9a7fc95620d973b7d38bbe4a37390c8d63a0fd97543423717e0657ac0ba737be750022c10d1cc2eab92702691a948d33eb5b57372b51314b54b0b8de4a17b68a6d5fff53ab5ac17371b2ec98fb6eebbed03402a6d0a7268f19da261c6d059866435f25931c38de766ff53dbdae52f5858cc9116a3711656a39e61361c8361b57ef133eb052f67fd31d64c2b450e0e53463617d6ee4af1b76054e352eddfef511b056d5890a0aa219aadacb14f772f36ddc9e654000d4f40b8781f23351f50cdc8e9e27b9ea2834754457131373f9605c82d98185f45063c2a4c6e1770da36b61809b59b3be62e5e17df454f8010c0d1cd42b289597abfbeea949284c4912541ce2b3e14d8257d91b09a58c67762f64a4f4be3bbe8cf5b5b8fa1349e6cb0fe83caad14c98d2cc9709ddbb69406050536ce95ca6c4a22a23fb2c2b87def3d9478808a1f002c13e90adec487a1f66f0f8642b5652d4b99b65b4d246b756a8fd7408ff52f2644ddcde693bba89dde31ea4eca60d248358dfc33d7415d0fde823a70608c0c5fe6b10dab14ecbe2024f68eae8c8c14c8a1b9cb60851bbb343fcf2081ade4acfee8c19077e5b7d35cf8e382ce59b644084a708580a69a1afd2fb5a7fab9ad2bb5dc6583aad2e04db606ff3834eb8f9e3ae93cd5ec118d46b8031fcdc52183f6482f2239172004e784370c9c90fe94ad3ae5515cdfaf0d4568b68273600340604ffc35a7b4aa731ee39734716d47ffdd2b38e2afaac706e6ab6007cc7322eb75a96f260c2fbe1b80f0b74eaf33e1f98671f7089aadf90661e38f99bddc0c6a11a79805291983618f5f58cf6c051dc4903da80324fc432492443b08abc7f1f26d2cef63097de50552da777206f967a6d9aa8356d46d0510dca1bf8b29f6cee936dccc8266065375d5827cf8ccd88df200f959a0969f77584cfcc54683495ac3feb306a0856b293fba941351ee48f8b329ee5c763d29ec11365dbe797e8dc4a240f0a3a56d839ef120a7ccbe782e47b1d1de72d7a62a3d335425de09c218766dfc2f40311c7f2fb4d739b09084c21672b6d64efb254cb64fad2e1485e3a2835b6aec19394c8c75e64cdc0278da6e4b3798cbb1df3b1034b64b23e9ed66b3f3b4c740e7af3138b90fd51272b232c5f91f434aa0d8093b33b39a20a279336a53c7d2820de79074768fd3eda1965109c9b13a70e9023dbeebed8522161a946f13f4d8caf2a3874ea51aaf5f67e69b680d5f34d735bd96ada7c4c46b24e67ed4ef7a0088c684aa8cc7699432cd7df04dc426cb98be9da8a03028fa7bf037a9677374f49a4e498803d20e7f744f94dca6b87cf529db8cf3b41882ad1fc6eeb6434d82d6880ba2e8422534803975d9830c372b538399131001c2ea1149eea7dbebb4fac6bea0011c625f93c443ae39a30c9615d1a0f6922a8702be8cb67de296d4026e320bfa51c8e6a3c7b84eea41a800a3df78c921afba79ac313a3629a2e0789214552c10c0851437ac8757ca314fdf7610555ae566ad1216de52b946c509af4aa445b8b879d414047d9b7e12bdaf28c75c3e8948ea234c94dcb803bd3907c945eabdf8cc0f7d5accf1ebfe8754a025e32a6d39d68a26330bad8e19319e05f25a58c8034348f4ca7a8018364c78a00a10572ed36b158d0ca4836c00df79d97f063551e7416909bdd24c9cd5fb574e3df0b446df4dcdf65b2f599a2abdfd6ea4c6683d046f27afacba0c72172b7bef847aed886be24bd97758db2252eebd3e14c82458a275cf5fd59fd3ff33f376d7eb7ac92d99331c5641b390c936b34e78f855db60365c47c0e546a4641dd783e6a7add6acd3dcef1fd03258549bbbd37200cde2e24766e6524c9b813e509c6f27f3a351a6d488ec11a5065957adc3f9e5a05480be87304643093d9c9d829b6969d12b6b03e89b1cb7fd3b809ff1e8f6318dbdf0357787f5cc5f5acf9ea6eca4d762b1dae186d4848ff02c3decea4bc1d54c5695a1928ce7ce866564f18bdea34ca045e06c6c446d9b1e3a68c6e9317152789053335447ed8159cbbccde35f1bd30f62e030e763ee607e6c74f3d5efc67df5c1c7898bb69231b64838a1a54b4a19f9ccf18b4332b2cf0695affdf9b117b7ebffaff9eef996654ad7524de40cdb725c37f2f6cf9a33ee8a35a293ccfba19a3dfc28f7e9407ca6871d5da21f1b6bc96f5801b86d9ab69cb4dab12c50872bff2fbadbb9e6d27f6d9e9780f1a2db7bd00f6d10c1fb8f47f84947b5dfacfda9758201884a67dc4fa78d193d60d78b0a3cb90e9cb1314b60c389c9fe2b933d1e83add54e000759ea95100ab2d43b31d404ed37e62b0d74a126078bd96734645af4a013368132adb66e941202f58f1e8811634bf6941ee8811f280b1c5be05209c5787f6919473745609157b560054d2d7fc0c44fec2136276230cb59cbdb14d49fa9746f61684d718c0c46e37d9414f81628180af462784588d07a5d84ed05956411435bdcfce0477c1289d97a0da926ea3d81ed41842e0829bfceb37ea0460c7d86ac084480dacf9ef16b0bf2d2647410f07bf044296b1ef01853cd6353dde4b462efdfbeb3ed6a0bf7d87f6122d296087a190bee579db9102b47619dbaf7a20bf7c824643966300fa4c6c331580d39b204b060f39fad24ebed65e8ec91afaa6575b0b32d923d2964b9512b7b2c98fbb8d0824e689b06b6f502e53b07981516cb2cf4e5f6e7c3cccd2aee045898515e09b0805379ecbb63fbd141ea6eae4b7e948bda33ed32b828bfa9794a4d130bc57c101391a6e7222867a41fa8f839356446a8925246f22dd74baede6755849956ad5521bdd13fd9e31b90515327a435f7db25a712bc1f010861031c40f2ee9644235929f07e21c3c61f05db394440ba0d32a46ceed3bdf4e2ad92e4ace1ec60f59aad82f49ecd7da0d6b1de4bf39888388923d75e2bce843d9765890f2e2ff3e0b0119b6270f8de6fcb1bf144e071d4e7e5bd928f5c3c4170481befc155f76635cd821473ad5b6cb969ce40b3669c6d226720209b598be48eea78b79e936446d9024894f8924b7ec84b4c46ea7681f83de44f82b71c2ba0b2d173318af7d38941e5e82a81f46ff7f141f4590c8329c9654a2775122f9940acb4dd3c69735c9a65f8abebf1a02f60333551b16041659de229228ae4a31f9424a98f143a0d5f8090730ed2426ebbca568223852fb088a13c39db183c650a99d62d6a9496182c82558fdf7ad1305799fd0e539599909637557f53fa2e89cb8e263d0cbd73560dc0027b3c4afc12fb96468786f122e0cac455b0a98a69ee0c202052f88835d0b55ed57415ed3c08bc5677bdb8dc62783de261185d67f205d1bc0f81cdfe23d6a6e40a4408310536c9a22c2c9573c93e0c313043468b56ad0510d672fcc126c753de79e3cd57cf8bbcc2a74e46f7606b2fda9298cd415675c0a5968992361e27321a84fa5dff761f1f94cb1f4c992c9dd12320bbf167580b4a6357dbfbfc4d6a2070e416b7e8d846e7073ebc01ad1232ca25068995722b9a2aee12745132fcb94644769ff8244fa6c2e7482f598ecdc5b1b2cacfba1557914e57393bbdcace8d53ccf18a79ea5c173570ebd4858f7cc010abbfdd8f0b2ae2c33326964f14a3b34ec71e9036a8de110d593c1ed745dd73080a2296ea6e1add758e473abf441b55f096ca4bbbb687134eef74f99406c1d00a5d278414640d0054074ebc9aebc2f2c53ead1c31546362b94254400d362391f10b9f843128e04eb50b5250a0027cee10e154d0668613439121ca852a511cf123bec52de3ccfa831dfc58237444da6efe997ddf3a27dd96aa11a1fcf90a045e0f674935a3ad2ec1bf982deec3d9b41f55be2f6f25852d758000f680b6c6a4a4d6ba199100301e8375daf57e261ab5851e5a1e25fef574f04f304745cf30f569ea7ee161a43d89661a11032c0410b27d83ca7a056712482be59a0a70a87d532f3ab5c0edd7a7d6234adbc7dc951fd0e432eec9391b708280de32ddc88bf2bd54c2e85b07f120ef42a2bb9fccac9d98d8b4e4c491cd2e4217439be0d726600cee9c80ef4b6d3b73b72b31b3d5916db9235d5d765dae07fb07120bbeef00b44e3b78700b152693fe79b96469e03169c30eff3dce0a2b41aa313ef58016d3428b36c365d29b140dc7446ed49d5802b48dfaa953435bffe9784fd83eac971d22ec1b9ff091caa0407c4ed5514a00412c573aea613123ce8e7ac68ef434bf7bb89b675061c4c4f3bde0762c9357c4058322b3b11a9e8b39023780e5bbbf65ea13776033da49cf0c74d61b3218224c9a31e2c3b978411d3a686fb69530585dc69b9b9496a678bf63477cccb0c3dc8ca3623e7667d0c229cdef7678cf0456a4719eaba87cf14c922353d6a3a340172b9d586a935ab2593ac90b766370091dcbe59836197176826e5ba308c71de83b87a121f2fb6a15a654342cd9798ea78160751416ed250b2f4769f29ff2b408cfdfa23106a53d34a621911a8a9357c0d83dd96f02ad2508602019154cf37508f75f10f39c992512faa761dcc0330108737ca3ec47cc9de21a13be64478794601900bec72fc08f3dc9ecd9c5685e5e730ebb55f30476c3bda086888d8b228189d3f3c1a5c957c7eb7776b4614dab41f42e81c6d3710321a67f5d1b3822653146ad27c4694048c157f213837bc21db57d4aceb058f2ac6baf12a5a9c4bb4357eeb5769843f18a14f2941cde7d11c18934829506171118b70adf9e0ca1410aeab53b980a8421bab07270af849323aaf6655bda0983a5b1ebe0df74a623893dbae25c050e12c88d53852fc6fff9dc47ccc3d975030faf47886e580dd96b16b6e2adafd2d04185b58ff14f9f6d99652dab4acb01cf326c59367063b9d0ea8824146a808b1c756fa6dd47cad499c5fad0dd3039b71cf7ace778ad2773ccc8374e2928abfca8cc0bfaa1c7fa946d34fbb3b903b2c646d8bb4628e4cff2e568480486e9a396035c121cc04a41f551fde0c623d1e328634e2ee374e26a091dbd5e3c6db97b60e769c887cc26c5f04d6229bb40c4db04d7642e5c0a89d5098402667ba9fa8b23385643fc81f658617ff8648774df9d5c795aef0bb84bf6c21498ed41dbd2ee84829a6ba915d37b10dd099c3b66aaf67b6f76476ddd7c68b1497ae8282433fdfdc4d036e61e19c5e16582c1e1c4e3323a7e667b348e9a34ed00689e62b936db391bdde1148b9ba948396cd365b56d06e96dec0cebeda77ffdcadc071a74acafa0f9b7e788d481c59ab9e4398ee73db18a6281af5414351809b716a30d37f37dbee38458c9583a9e44fd43c17b747c86e419958c775675adaecaa611af212635de2634d4006cb7ae5179799cd57c87e3ddcf5ecbf95ef772c3221316240a7d99455b45572fa4e8184ddf27d6754d5da6731b506702603c97a21b0033ed5ce0146a7c46602bd300307067fcc9076002c95ba4cfa767f8bd16490503dbaa46c80ef5093d470006004344f6f1f3f7fbd4f097e9953cabb2a050997f81e306ca96cf38cb808811f2a5224d4e23cd48d5d788bea46c660614f89d77ee22d0f1339ba85f5a84e49eb2035366eeef2dc35fdd449c2cfe754de7184dc59246ba0945db5a04e2c626af3e661fa79b55fd0b407f7f1f7a4685281fcf2ee9a40eceb8a755541a30647cdd2c23da8d73d9b9adc417864ad2b9b696b3157b5cc7254384b9e49a347e17911bb77048353b08627bdb2f8542578158e6585b511ea9ffdb5c0ee7546f0137a907d9de0fa61e10daaa680fcdcce35dd1190c6d750c7676cb7566b8b9823a04ee6bc3045a108a2bb342adbe70035272634cdc289ad81a0c37855edd942dde7dafd7a399e94d2f900c156859910f8e196e34fd698e62d96d77a6c1a9e4b4940f4646666acacede7bcfd1b389a3744b02baccbb299365b8e210bd258ddf16b1c9482d2664d6b50d8dff69d910bd3149ead45d5bb14ba427df1af880b0015eaecd8289c131b1354875836d82c300d87ca941cdb629957d13c0681ba2b3b6396d038844e54aa9b4ab37011f792d19027553eff0e46c0557eed9c0d83c7ee7597c2af1f4f2d9b610703cec11d0be5de37c54d5a7893e8bacc10871b882080cf4b66754ab7e1f2b8e827cd66f1e230ea7a841d181d91db5e752993eb56175e9cc68d1ac8059fb36ab829fdaf485f49fa266e2449a02180673bb38b39716f54da59d87fcf2d5ff573bc3b45cd7556a189e7ca1fb1a134a752543f43c17d31f3070c3a3022c39322bf844cd99ce6a1eae914daa431b7135d5f4695e5d11cd7e1ef0710583688d356a23652f539c1dfdb46389461ca6e9730182e836732dfcc691ed3b30d6f09bc04e6377f80d055513725acbfd65ec034f9321c0beb4ec0ddc821995f7e5742c911fcf9b713c445f91b3347f2e72f7e63b5436634daaabe92696d733b5222951d2a4c4f926f4ee53a83bc35a4fd6b3315893ec5ba658b46899b9cc26b59bd7c309c7bcab7197d3bc4232399d13f384ac965f51d588c92ef33c48f250fbef3b51535506537015520b8a7d9aa519b328f76cfa26bfdf265a9fc905652c133553c83bf9b55f3b783831e8947c7f4e6234dda30cbd6d8bc5dddcb3d186c2c4ab032eefd9a87b2d912cadb3983b38ee242be55f10c0e7ae2c3b728f1ec30adb6b82b2eef67efb2587686260a4f2d49018b31a057c3680131488a0f7462ae436fafc8a7d83809602b4b9ddbb4f6b61648036bddd0612fd452aade8b6763a7903125bd93752471b097aacfeb267c5bb067b6c5da6d5d90018d20eb90efe38235c84b4f8367169c37c93013393108369d30ee800edef9dd01a2b08e5c9ca80c2b0270f28ac5af471d0d1c015d55ac32dcb92c1c94158d457710c66a8baec5688fac774763ea36565d1eba0f4953c630f061a4e9de3e81012c55646ca0ff40db616654d76cfc631c8785f34fcd121f1a2530d3a20cb486ac632a54909b6fee54b6cedfa7b0c201e57f8bb4f33f618ec98065709fa49ca85775440fdc1ca23bd1b81a68e90470ce5418d433400c0d40b048de29bb5610587d4b775d1065d45167c5217b58617b74761936a0eb1a5e9ac243edf3a4c3717c200728f2161e07270ca82bc231d19526bed3695f7e0acd02fa271f7c1ff04e26c407c4c08538a9ff4652f4787e500869b269928da294fca781d40d3754b28866275ac1071c1f5a4e66504426074830c37938a0d9d4f1fd83cdd994cf274644a9b4571b27226d1328a8fd040126d7d9f3498381b375ef68195560d6b8bd4357f0e96c3867d81a811ea32ec32a68251f312f00328439f6cd3c2753cf5277cb19ae108f7139c3f5a17cac1cf23830bbca050e6214afec7a0fe5a32fa3af86fdbf4f7ddf11fe6dd15b0c3bafd0613056490cf6a9c54dba2e74aeb9579eef9d4bddef4d49f5c235993c74945794046c40fe5a130b04dfec89495dcc08efd8e3c888657ff89caac3755629afc34cc5325286e2d632e4b0ed1350c811a9b1d498bdf4cc03f3f119819d06aeae1d8cc0e84eabba495bc3472a64b4d0eb1ef79c85cdc8f0e727c401b11663ec58991606569081160da9a670e38a09b5bc1dd56416f77666db6b542288fdf7e36339f99061d36858e71c7b46f21c5960100806ab68816d2766e66cccccc4ed74dfe4654398167ae44434fb9759c501515fc1f5f427f9a6d27c4aab23a32a3f1f1abfb61430b86808c3267d42ae2e9c4e806724a4e1ce9309be8f6e58a0b82439fee4c4c577ef9f049789ed75eb3f4379b76126b63343ed46583cc144593b255bfd852ab8d9d70e0329a6eecb1a50cc5903df446cdaf210321c62e60520eb218c16d0bb1b3a5604abd0d2c828323bc0882e48d66d2291550917962e6fcb2708c4cabc528b87fbd2fe65831d1918c5e82ef8f473540a68694d5f104936485d5567538dbb83b64896f6a0eea0186750ac9b3dd385e52c334c09d297c6be47198b164906f351cdcf478467c214a5a40c8a424c62ea595beaf35b6ececcf9adc6c54a52612dc7bb2ba3a43391afc349971429788bd91403271376759306270363f9d47f369f0baec6f675c2088cd030bbbad9a6048a103682553031d741e515c93590985e266ddbec63ef1cdf405342f272ed65d491055c1e3d38ad65ea7226c94e91e92b9eace3c6d46a6f3371ef1b099aeb51a3c7a4eda4b5472fd4da514168acf5f1aa71fcba7defe1bfca7e0eb30762e9c679a530354ba83ce97ce396602d0d446da5a87829da2a4f60efa02ce05fdfec2739a21fa78f80426735851a2688e400134a16c3cd2636d355606134eac9e8da9689e364dbc9f89c115da50f95553a055b422ca4e82d15c8b61357bc0c58c3f8547e6a56aefc8662e9dc8d98df140c743363df4565ac812b874522b32ca2e14b9985a099a9f3eccbb5ff8fddfeab8ef125dcbe93227f828cf1d3bbd210b2a95540fb33ff5be4b8c0233cd2b0d4b278609595fceff05ed3254c64a27b6d02d005759aedfb3496f5dac1d30292c91dbc7d718920de9a08ad30958b1bca406d03a3eb8367096122849b528518d85a5b53e60e201ad0a442a2435eb3f3b8792258e590dff697931ca38c535023997acc2d6a23cdd0ad0f2d9d440ec87ab7c8829bc790fb6949c5daff684882feb25100dd890f930b68d60cb4e21e4362f63a40a2c8fc521a17f9c84b662434dc9bc0d96ca789f5ab08e0d5c78d4d4053e7b76db136e8f8a8383f0824520fc9122a6919bc3373b78c79ed65d7112075f2520998a7024d5f42204cb6fec96e5da75a80a26d3ca3d8f092fd1dc8113a8440aa8ebdb9526ea7793882e23132e4b3c95cc6bcf303247beaf55ed789955b64acbf0d1d9c5d0b3527b07fe37e293ceb48293df4801cebb58b5b568b42126825b5d61dd7b696e5009050ece0a12d5708150f6bb070bfee7620e5dd23d6793faca0530d607f767949f6536e39589fa9fffbf4990e92ea64d24a5ee42894786f445da57955c0f10af8cec67323a6d0358a2761e251eca905e2d096a19ea1133bd3da5a6a074a1dbf5f66aaa898d030a9ca35fa980cf4dc6f8d782e2c63edb34f5c6538c143308f5344616d79e29f16e2dc82ecad7ff5b1ea626f573b75ce56d10791e40c85d4219e9c7ec23f154ded42760c2f52002356b3aa770a60e844473b9ad96b8a32552b0ce1b12e6137e3de785d7f07dd13df43e36beab440f497a90b4d3c45f5d3901f616afa5bf3efe483e8886bc941cc0a628c2cefd1f733c5f428524c0d6fc8529d8a2262087d02cbf9edcb297782d273c7267fd8d8df4a1456401680ad2ef080cf12c6ef92f3b23212592e66a1da1b06382c3397a799cf88da32097b47a41481c074665d3e61d1d9c39c5ffc5d8ef092f0a006f91bb1eed17c5478a05d674292717324bda743545e71aba2c4ea2de0e9b1883a619d45da140a52e04f81cbf152fcd915e73539a2b09b8b5f7d60ef00563fe7b73449686f084dd81c098196939183d9804e4c469829cce6a8ba051d64aee973992e41c2ea7300e3d9b0794728dd3bc5f5a437eddf3837ef01b364e6cb6a416153426f520d33c06f74286e59b8414a8d165d68ba5f7a6811f75f721a091286ed18d5ca56091767df91c4fa5bf08930a7dcc3d6c36399cab8897a48c070913ba322365d321b1ef336c17928318c35e97d63736633cf0983b25db180f7f5fc6c396960f322a2be4e5df51b495b8776956190c04714b46b3c17f494b2e65ff8434ba8c7107b7da30fca1323f6d94ed597efebe65449d6c9fe593f2e8dc8494e11c516fcfdfa5e5ff3eba966f16d189ce71ef89595b7ed434f107d3cb8749fa84847680fd1fdf53c13755263d5db8e1968f77382fb853979e544382c6c33bfdc51f646a7e1fae70bc1e5077c51021e37fd6eae7960d232cbdff51bee476e2d3f71b6aba679edfed0a0b562ff87bc6523434c09bb2005b370f1c3a3c6f10abfff0d7148f2986e7f7c6a3fecd7a41e0afcf9c4f921c7ec2f6b1837f38b20c111164b6ff48c7f8aa366547bb41205427be702459a29a1cf842b9e3f313501df86ade658d48f5da26017914a11240295f79567c282645942f467c9483b25afacbb70dbf9b05da1e2e5a1f4dac110c03cd4641b3e98d9630bddf48c15ec8e9da23bc25e05dd0e094b1892f3c3a6f09a3483f0d850c02f8dbe3d59fe9a851fa04d4255bdb4d848aafec13e7063fe6e103c94fa45d24c90882a8a6535c3de657eaad543af4b3ffde66ef422ca0294b624b3b22c27857f40a57a92220ecb3853dfe4f1d94fd9415a15d495f8e293922106eee7410725f4f7b2f6906a0a919007f5972e123def176a17462041e6384e60e561038cc6a737c1e9b3beddd1f692896083bb47fc417d1ca7e1b4266fe066bfa5aa2da915e464ef1c376cb465b0b9bbf8a4d7bd38b1d8a21e778f01caf3d76a1901b5b93c239219d53442770f4b6d192f5d226524a9902980e230f110fd8f45be67bdd0c59b51b2207f29e8a47013575dfe47d4b3f3de977338f375e3ef1dc04734e4d7e0ccc4ce67bbbee6f57dadc045d13346b9de9ba2ef366a8d6995ef3c0f4da35fd1b87eed393697ee39047999fd769d07c013b69fc55117e1f86ee618454aa12c45f8da7bbb7133fff0141f10b5561287e2ea16fe87bd5386a71b5fac0573d6b1c520d8daaef637ddfab54e357dea8fe73adc64fe8fb583636ac7114ba2af06b29d5872ccc62b158acebe04a253482606a687cd57f2ea1b154852ad57f2a30fc3e7114fa48707cd523c1e4383482ef1a47218f143f2f6a91ab51a86b5dfda56854aa9a9a50bca2288aa20e9a51fc14198e3524b9527db8da6163b38324cd90bc244992a48a66144abd4a55338a3f8ee3a84a95526e19b10c0a4d55e9be23845b226b5c22ee188b66c40f674495ea79a86ae42d63f2188958bffa9035001628744df1439a4b43434343e3185cd58c42aa17778ce3b746959812ff5395526e99b10c0a4df147a16b8635e2e7125295230df8d18ca558a64aef71a7cb57e1192240ef536089f3cfcc7b0faac415487665edcb1a8ed97d65ce33ae2fa45316b3e66ffb31f1e3fb35a72816d62ec03da9fbd9a786c77b1765e28e8bce4ba705c6d9c1c3d589c185f7741b702dcee8ccf880c3c4ce030e4b91e1b0ae0363746274643a0e74617460741be834d065a00be3b016996e8d5a1702137f87063eb2e3b12a14c715ab033b324fe6b6664cfc2957cd0e1e2955288e2b96efe0962ba50a451e3c78745d572ec1a324776880010fd70eed8e81683440101441d87dd8b99e3435984dfdee3abffe3abdaa3999daf471e8ca7853a44a1581df2f6185843c33c803c1fb7dd8f372d769adbb9c3d8ccd1a2876ae4f06f29a3530a5e39fbd20cf9472cb78a6cbf34c4f08d0d4a6ce42e20f2ff6eee7688831af77c57435ac8579350e038779f5677de1f0c6a06b9aee6440d5182a317701dec73a6a1507f8d461f93c34c488e9b296ac4547612d3019f3923e6224f866c8bf7b217777f79cb3bbee70d7755d8731080ee9d725cee21d83f42804baebae74f98e945b46a8fbdcc1944aa50a532915380a6553ca2df3f3937352aa2eb4b1098b3a3195ea3ad510fe2eecb4d61dd65dca3d548d18bb88be2b92a438127def8963d13796597fa8b1832b3d0a49b965c6a03028648542538766574ac93f0a5d53680c4a99526e1907c7ae3575d9fa0e494318e6fe8eafe980e9a114b8d00bc6c19f18b88c7b68a114dea334c66762fcc442f609bde41c1c6aa1e43d21175e4c975785e7e0dfe1f2422ebcc78b80e368817b3c2e180757e1302a3c0a78537852785f1c36018779f124e0302fd9c773141e145e172f021e04bc271c463e7e8f8bc35aa1972b6a5e16476a1e93b9552e962c600be2c09f52892f2863e2cf6c4be3ca2d31b55c527c073fe95ad97614777cb8e355a91d0f7ede8e724acdbd22c3ef704dc95d89f34c551a4d98f83350a1e11941d6ae162e7708eca38373f2e72139e39c717632f9270ca303876e74970a2baae81cbf2649efbbd7fa5efc1affe3cc0a85667ea150287c013b658c8708b17f443795ca8f73ce395f0757f91df41ddf71fc589bb596897dc769f0902e5d2edff1c733b925340eddf2fa8eefe85188fc3159decf4fce71af060aad3016ddfcc6a01a8c797852a314d209f2e60baab00aeb72c8eba4dc32a62e6f8654a6945ba62d63b211662d5c0efbc25791197c7f7c8ba43efc184020a82debda92ddb736e6f7eb8b7fc94f03a576beef5cd877bebfae0f2f81e6d7cd98a0eb5d1df807eee33924983883efdff4ffcaec224dd0a5bd1450e889a10b040a3f31747d402128862e0f284c89a1ab030a5562e8d240612886ae0c148a5ea7fa44d5cae5a2314797e79c16cbc43438a7873866200c1486d771a8572b73748540a2cb81542e9b9ce3b906621c9cf54a3f69239a9e4b77e1a73dadc304f1374778c3c4e95e8c4531eb2e63f00669337fd8f95027d499d8c9ec6eee2bf9e7bf42de0d0adf7b5f947af0bf328f429def086933e7ac49120485f24dd1f7de137da557dae49c2ebfcef975f6a12c94bf2bc19cb33766577609b9d99537fa95f2107efdd925843fe8de083938e620d055545ed04e1aab7a08c34b628c2fc638b82cc5cb44e6829de8b2832d73b91ce00207eed961fa1cd8c78bf25cc3f8b5ccc3cafd6bd90170809ec118ba47ac690f8ba805e3bc17957d4072e54581516054cf132c84f740711cfc21987d3c1024491b9b7f1cd08bd2c20414ef111b10e54a15e139f86b5ca91f3c07bfd800ef49ede0384ce09e54168c53442a010e23c261e1e34f0de1b0d4e34f09e1b0201c0684c352a91f442dd907f4c161ad1e1c36e3301d8f3fb583c3461d727018ebf1a7b2388c14b5dc11b07c1246b0f000d17c2db500137fca087c84e6f1876388c0c40f82f7f33a700dd377c210b8ef8862b00e570bae02b862be835fbbd0305d02700d8000517c473497c0c20354f32ad712587e806a3e05d6fcb7442ed998ba5ca2a67421352f01ea22e00fbbfb9935342ef33e96ec13866e6479c3c458c2398c8062c2c435d43c2c220f5eb28468904790351cb3e6636431f1b3e0b0ce09b3761dcc2f8a5c66f0aa0221fe9085ffde4b3ac6d1d97118332f691141621cec229720f3d3e3b041356689c3b8be2b029c75eeb4f6a2a2baaeeb4ccff33c2f8c79fd416c841164c84445dd2ce6b8845400799b7c0ede0c99baeb12ea77bf576310c4193f4e22f43e64910b101a62dd307127f3c6f3324d1695eefb5f7732ef28a47220a82be07f7f45758302f8df17816591aa0453258847a194d038744b2f3d70cc3f32e9baacb5d6a3d04704fef7dd58049636a54dce09bdd1f3b27eb01b853c2733fcc6fcb58820456f14ea1e0bdda1f29631bf51489bdde39b02539fd7e9ec37b5d27f4d1f83bcd7654c1f9d78a55f33e30e7f63847ec15128685573328708f187413572c4a298853c146c6c348d0b813426cda847a1cc0a0a594fa0aee45cf946a152649149a44621d548e3352721b224539eba38ebcefb5242770a7d35b611c9fc696d76aeeb79218b755b5a9660ed1964698769dfb9acdb53f361d2e09c8f04b5b6b939834139dff7c719b4b42cc1a91bb234eed137432953ff357559a3e25d30011d99fc74afa831ff76a552fe37c7a025fa7377cd8bb3eebc0f4ca942715cb1c8d68c0e9a9a1d3c6c30c8e0a6c792aed4c077ee6fe03b9703dfb95d38c618ff15660dcf61e2afe99864f01b188e28acc9acef8f937d561f663cba1c4874c5f0405bee879eb7257f985d79cca6e7f1e49cbc727956b93cca259aa20b4a155ea82d1eb825ff96ef43f775c9c64cd56a4c1ee67d6d5ecf795573c1fc4ad277ae6a54dd0cbdbe2e9738e65015a652aa55ed05f3963f39ae3005a63e4fe53bb7fbc9395aca0b4f662ef53703de94ea9a5e199ad9754d107b7284516eb392a2c7125568a00d1c62b8e28a130d64cc81822b4fb840032e80f23a7d930494170974b1c502a000aa916072884243993e6060e00811448511a28a6c3a981bb6c8376c91c31cb1714605dab861082cc4f03c2f6320bc57c7c48f69fe1806336a061e4c5cb3f9018c0c53bcf6cf59a5ea9cccebaab5a68704832e27f353ea721ce187ac94e7e994f77daf552c3d769d089a597f2e27d3269aba03faf33a283664f01105d5011f1a0a8c59a3c9a2ddeb9008c20360b8487145095e00460136983983814ac2cc1d9839e71cc50e5d687a1665baf880131e06310e098a9fce39e752c7878d09cc9c73ced7cc36e0f7c03836d9c707ce599411c3ccf9c59cf3fbb83e7ca85c38553e60d67c0c0182616aadb556993a7b5e152b76f03ccff3aa405183e784a9bdefd39dd69ac646f3f0e01e9d3db04a027228abd89043952b58aa3c5d798a2386a714c8f0640228f0e90b73c674304f1478914b77b317c30e32a4740c31d800ae20cb47021a3c3662e83aa03def0a066af0b7a206ef0a143580b9a244161836f094845923554938fd8044192f2d08838d144861c52b80c60e4634600716d0200490bfd36c62180c08a3013631f565351860764000753e787e8644f10ce1c93e9f3b25badc3d4ff9f37384ee481a9b2e6b31bb37b3fe1ad8755fce588d1bccce04bb2731cefd3af8a9bd0f9e2cd4b0400be7963c363c43602055a667918608cc1acf0a869bf58bbceff789d0df75eb8a0b665c0993e50a1833d600ba626600023b7421a6052cb002c8bd754bc7389806264c0dbabe3cb80747d10095718ce8965746d13084a9a3ac841e904e3e3a285ddd971a635d3e9993801ef8fe9e4b9c83e480fc1e6a4bf73e401536003f406a406a10065db3c7cda7bb0f7c97b802f286bcf14a9bf273cef73839e7fb3e92c67d7c4184196040ba0e6d48a82dd826747c04ff0d59feb8e441de47825fb89748b8c31ceabeef33c2738f35075943766f42087e80a4d1915d34b38871488c137af6f191cb2f82ac89ddf7c02f46c5f086e951323c99f96dbcefc19f9fa4c13e0ee44b607920afd441668cd10883ae3943426df156d8225d9bfe65f0bbee311732fb406dd1afaff7687d4df7f2c6ecee9521ecdec32b2049f2467be5e79cee71724ef7505b2e4b05648d34796e969045ae42c7ae30bce4d52b126a0b8845c00fb5c53f867f75e0f7c1fb36d79160a77bef1406c8028413592c2146045f806aa459a5878c2652c0850732bac002c8df91b28f13102250838637561044101900aad9989e7e323dcf733114d0c50a941881153b7801f2ca1f337b0dc7cc3c663ee38a1542a025890f3cb101167c71bdabb5b41155cb001727c0e20a0d84808d33c0320298c38b233400810d28808c2fccd4125c6cc9a10b2b36942004403ca6fb7bead483186920410518095ca18367610617b37b11f7706076ffb827bfc009092f5010c504b0e8401465564098a9259a08bd771f350f733b1a97e7517932b3aba65d7f008e6b3e995e8a34307818bd05e9e5ced9283306015ec811040e6200755dd7755d59b3fd98ba14af1524489a9e85196d989ee95998b18359d3245ec2bb99053700e917f5f7f85c929ecbc645e3031b58b21063cc0cbad3394a9324cd687a1662a461b24c07f3f400b346ca91dfddb1eb267503de7cee18bbdccc187bb802d2cd8b1fdb701de6f79addd7b489f377d9cbb9ebaeeea450d1d9cb7fafa94bd09fb58f2cc290319164ed64ea6ce20c84313b11df22b5d4b7daac7ddf823715dfb4aab77d63d79777eed8e5ee529c741b7767d7976c2fc5984e996ab39d3f9ad6733d426d3f642bfbe308b51da1b61fb93469674a2e456d3b29939a2aa5b99d213db19e9f293b3c2f117c5e407eb0297ad26436556d7fe0722d9b5b7fac7b664373473ff64da5fd70c739ee18c71d7fe0eedadd45770c80cf036e841ef5f4647afecc084118b686c81fe6724909a14bc99d0d84b252e5e2c73a6b9da1085b40dc7b95ee2b79ef4baed65a7bffa5f4f7aef383e0df5ccbfaded739632ab5fb9ea6b284dbfce08319a4f231b99f762979a952c9d3df81ef64d6f07b4a5e2905bf3f97b0f5c3bd17d7c04f3d7685a1fb5036bbb5d54bf8bdefb44b8a8da9e4bd9baa520a1533f5d825c526f5a0fe0b9652a8749f3fd77429c5ddc4b80236e4fb835d8b07ec3e3a239de8c20f64055f20fcf7c3ac45118bd8bdf226e87b4fe92b9768c2ef954b34e527c10a94fea7fcf7314e3d1e9fa45ebba05c08ffa644a7a7a7d015030940f9552e282c17287f0c2400e9cfa295fcf74717d4f8581e287cd005f594ff965056f287e5537e550985e581c4a7fcf84597951185fcf99fe07751e5c272b15ca0d4872ea8184800523d960b14be16c5d285100a84e24062e9c296a2f0efbba07a0cd4a5bcbf40ad1c48295ec6f44aa5259af02fd1a45f3fc17fc71b14f4e32fca7f1f1c9f64ecc11082d9870a9517f0e77fe1be7e2a5b8abe573d15282c0fd41579dffd0ba907dfa9c4f0405d49e58554d9bd57bee03d586279a0fc5ff98277bf2bf3fbbfe0dd14e8ba5c58341496186e0c5ba490705d31b8a0b06c914282793f065d6e91428299dfa356085b4280a1e2e98d2b4cffdbc5f4efa04cff2f09b303b3050f6617bac3966eba25375df9255cf3fa3736b94dbab2e674e36527fffbb7d5e6d7e47b77e964d7a63736b94dbcf70f07dddc5bea98fe3a267eef7636dcaf54b96eeeafde8142178b25feaa7461f522f90ee442f8e3aba07ab27481f5aa1f4b17b614b15ef52eb43e0c5d37b75cad5e2c6fee8fef0444457c567973cb1b14c2677d51f8acbfb72c52fd585261bdeaa9b43eacf11df06fee7fcec9ef0424ba6e6eb916894f8236e39325152a4e3a01b14a2a5b6a4bb0be7c623dab7cc105244f7eab141f244b128b00feea595fe3d961c52a9fe49c560f1ec6e50424ba9c80420ff1752ddd12b2eb3e893f9654a8e0724e7ea3724acec9bf1239102de7e49742e440ab2772a0f13e892c34a460f35e236e1623b4183184572fba584b52af5db75c92824dfd2cd78d1ad722d6af4a2a5456bf2a2fab247220a8eb859559ef40abaf5d2e667e24997581c22b8e17c8c75bd2f80ef8dde8bf0fa42a411bdd306013335d9767b23733a3c5ccbc7663666646bb21cecc88332228aa728b5c8de08cf8216e6112b3f00a8f58543da8c7e8317a4ceb7e6370ceef647868379ca8b8e1f9e7ef260fffca9a13151eafc56837be771e8f24f370d5f41c3cb2c9e39a3c348f37dcbfb2a6c968323cbeefb3fdd87e3c1e3cfcd3f1b53ed6377e1f8f991f83a779cf3e19fccc93bf1279bcea3570f1f81e2e1e7fe3e2f119b8783c06362ecf393ccada8ed2f663d680a50e12db989f0d1ecbda975faad463f4183d468ff19c76e05412974cd58ce3387635aa71ec3ef0c74f93d164f498b1e67e4dcd6b37eed7e839ccdaf87d3535ff7d5a0cee199ff5da8d5be4d36f98b5915553c3fa6aee7f6559d364ccf1e747ff25bd9ab2c63add0769ca1aa8a39ca97d0de7b2caf1bfb2c6638ae1a7c7e831251885575db772105cadc0cf4ba95eb55a81aa5fadc01aee0204c70741f0c515b812555f66bd48beb8129f14c55275bb8023985721f8e3083ec65ff017fc057ff998f8becff90b432f0cbfd03ff40fb37f88bbf8be30fcefbb5cf015a197de7f1f2e09df47adbd9a4dfc0cbccfe287dff78de32a3fe9e3eb70791ec7af19593d1ff91f49b69ec675bb88a54d3453deeb985195adf61e7ff98cbfd064128354b4c2b00b7117ad30ec5af88a1047e12ff80bebc3562bfccba5f5d84bab86bbf056187ecf0a9f85af68858f04b7eeb3ca0c52dfb19ed50a75b8583fe3f29cc32abfdbc54c7dcd269ae087642892e16bfc057fc15ff0177285bf383c4ce891d987754bd72d2c57046f29ce40d678c06f065229f59d59e331c54f81aa510913d105be8fe2bd26785325fef2f9085d383a3da18e6321af59e3e93efc055f21830f9d6f06f29a351ef37e4af5e2e7fc4af097fb432c55aa9f2e788618c15fee8f8bbda4c2cbe5cb2df281e5cae58925fe7249b0cc5388a487386543e83e3468a332f2e32c506cd1f0b54692a606b2e6687c38904aacef5acf1ac9996fdd56ebc71fdf0d528b61957accfdca2216a214b11005f7784e43f7e9312d0490de5fb3e6688011e5c381bcf98d66341bee213f3fae9d827b567accfd41962c56cde73072c34756a9ddb83fba4782cd55f7e9314e3f66ad7bd6c9f4bef6632396351e1cb0fcc0fb947a41e8e3ba04cf85450379dfb98a4820cf97f0745973ef0999739e30053c45fea0bd5c40cc13590bd682b528e3ee0e47082e13180873ee12fadba005a6915a09b326820ed31f45431593e60a11de8bb3f64f043f30890adc7bc19402a272ce29151254745da70a8f98e2fbbe2f148df8924aa552e2588497300cc75502a218c725e338ae58ae89c05dc40bc60b9715088690c00ca0e912b012451cacd52886aa9478730942ff8b7337baebce4bd04427de7b6fe769213e2472cede97313044d775dd07aac08b0faefb8129d16feec295321d8c171b3a2f2501115f1c44683a1828ceb8f7e20c8518ee3b190440682da67944ea1f4cd3c17481c2dd47bfda073052247102d525433e29c2f842fd3fa9c568328e4ff01d7c5d4fb4649f22289e941b361ecd63efbf54a88335e2983c66c6efc6fd713f2d06e3d4505e2ca596eca3a3ac81368fc3638a7a0c95f2d363ee8f7b73eb0a7982c31cc915a66b61640c79bffb9a1113fbc033588545784577cf387311e23bf97a1f89c327d987e5b3fa9c7acfe3f839075495b53b85a90a7fe5729c1396b5dbc5547d8fef57622ff7072e8dcafc24e7e45459f331cc5c7a3ff8cb15821f5329c1ff727fe0ff5e30bd560c644d4854cf875f08f6e220f177f9c9a4b03746172c0be08271abb197cb250a47692ac85c9f999172cbb05c35fcf96612fc106b70a61b99b839d37a3de3daf13afeca7883c28ed7f1453bcad6ebf8a29ab2f5340fa6de041f831fde990f41f07e1ff6bcdc755aeb2e670f63b39be9bc6fb5defbfc97748dbf7a249874b11e49f695cbf6638ea51e737fdca0ce043f740565137c952be89ae0a75ca44bca2d6382be93dfd3e102f3bfa09d58b86b010f3a2801c50e0d28420c2f4d783d6ce0c51a69c0502507304eb840c00206b4c00a3010688307a724a4c0c0d31424c862c453143f63c2a53052c0012a36700618a82635aae8228b313350a0090554919d822893460d32a4c086123cb1f40e62fcc08232aa2861011ee270c3898a16f090850251c830869523ac2c20ef70440b8e0863650b207a606207333f6801f0f33a9d71d6c1747f57bbaeeb3a06c4f04318440461831a43a840079cc50d6b7881630927cad8613a1823d4c882e45cc0567081097429a3060f60e81c5eb0040868b802864b19739c61acb165072e88280201592ed4104058208604e020430e5698507cf779f68a80e187cb0b12d08231e10f171f26800005c8400128ca30230123d0451c61ea179f94f122470736e0822e6e00fae1c205fc8ad0a1082c668d04adc8df106144f0b5d63aa5b5d775351c336b500f91854a634da3bdaed35a6badb5eeb23b98a3b4aca1841133dcf04606340e37081d9c40820c18262003694343e60f93a00d28cc80400992f05286039f35c9e5838041fffb7829c430112502214ed08307fc3dc9f33ccff3bc110261065bd0020b06c428a38b2f6db831def064021e4490041c69546183077e5a835fd779433440242373c95c54e61dbb1c17e90559d39ed9e5cef49deb323bfd4dddb74cadb5d61dcdbdf722c125e83b3934af67deecd2e605c10c33c6f87a0e57f84bfc2098fa84b839e79c7d0075ce39e7c7c1e2236d481a1f26d03650d9c1021cd042460ae060c16a08080f4ce1012178380105b260c01adaa6878fab4a757180f6545d0f8ca36b509d20634b96359a78c1530d4260e4c0c51822c8640101cf74303970f172004d2ee6edaa480101821d3070adcb90c1e6023319fc78805fa7830d5eb6d15aef30b5aed13435d00001840e2066c83223c70d2d13d440b28100561933acb2f0617ca207514b113a845ab2e0a092a387d4181bc03370f8383083374510dd0f0dc841ffa00310d9e3d04276ee43096cb89ed9c0d201b1021d76b8c9925529d007224ced69ad754a24e5c0b20519480051051061e82e1230b5d62c53d3606aadbd0c0a7600c10c5c1cc1030580740f9bacb5d65a6badcb9a0f1b1f41c0e043fbf0a1862f68c0e2234af7e082212194106381196680401728ce087d90c011488869830636e0706344009007a088830a34ce500102a010c3f33ccff3bcd074303d789141ddc304c02ef595202922c1a9ec799ee7e5ae872740a72714c851011b9ae0220b2d3ccff33cafd3369fe960ba7c89000f62b4a7713a06e49c3baf89afb301dfa647ce3923f169d086044533a050428d2f8a480205542001768181110f8832c3041598401143649bb7e981d383109f5fe1c5070f83362428f6c0c3e775363d70a230f38b3a3a60bcd830c3e88659f31182ac4a7958cc985fd7753d6c7a3cf8815d5a19b42141911c928724017a3a639bae73a2cbaf938738200fc18142cb8763c3a3f30345115dd7759d91214670b2cf10287630bb6e48873364c84f6dc8ca0c1e0d7a1d1434e49cf3e3f87817dc00ae40866f0c969c73d7755d171098397764745dd7755d3260e69c73ce66eeba74d1759fe7a01ea34a1a1560228d38a0c8103173ce4d74f9e2032a8063860a58c91df9bacc34d987e7e59c73ce397b60ba5801f5f9ff7d7866ed79c6e81cd4e871cdda0fcfbb4779603a981cc4982bd3c16431c2acd174c9294f531183eb5c66094461769dce5a6b1dc41a1da83b4df37d5dd7755dd7755f07268834cc0e06a0aeebbaaea461990e26082e3c68f1aca85266a4b2e779a40d0d496303ba0ba0e0b0620d1560a9018c28dad06880337400c3146b8ce009322070c4f703055c40b085951e5ef003191e1615dee000153ff820860336104518a6e7bde8791ecf8fd656a832d8798f13e56388cb41451055b4a000022fe8e1cbcbf0c2122ee832022f7aa0a28a0c85a8bbdc457165d5e33dcff33c3163c444e1010f5cc1a2f374d6594f91040c6590110115c071030f5a523a062725def8620608aab4d144193bcce151364e84b56be6f0620c3ac6faba6ecee02db3eb7a405e3c3b2993ba1ed1d893d6c3490e9e707726d586b4ee25f5ff69ecc9242945d7160a0c16c3b1adecc4ddd42430986ccf54998a940eedd9b926e152206ad9d304b445d32103a0b63345839634d97038f3087bda64b175e3a69cb729e7edc894f32643d9145ddb293bb6d9f368dd4fd8158e04119233c2b2a72d8992753f6161b0d8edd2caf6baaab26fd5f4f70d6dd3dcfa48e8cf762bdbb829fb59f47fd38abe88516c5563b34d63d114457a20775fc99cd420cbefa357db9fed96ddedeff57cb6b5e54ea43dfb6d3b42d9744361d717dba2379e1791203b3b4adcfd3a4e32b36d54002d2d09dd4ceb5e3aa1c5e5d6554d12343b81f65e83642c7a83c1d8742ba92d0cc6c260edaae2703936b66fe78ac4e6dab385b265e9693b81f6468ab14d27ae6955db73969e4d6ce7ba7127d8cedbaa3a619bce2730db5edab6184c75c26e01d0d893498a9eb423476c679baa0640579576c4886cab80a4aaeb132830d846d7368663cff69cb5e95e372d4593d89b92f68cb5e966d3a1d9b9694e9464aa0d28655267b1d966d92d5357dc913d5393a80083194955b4c59db067aa2c36436de7528c69a7b8dbcac4886cab7024857d8bcdd69309975391d2219b4d4d321bdaab2a8bb17b096dd11bbaa66812ba9eb0777b26ed3529c98cb5ec696b5974ca8eb1b6334d4259d6869eed5602a5cd9db06f3976af38759dcd6c2a8ddd2bad8dcdd28d6373ecd99e4a9250a4544db2733b8782bba78e4b4a51db110a651fc999eda419ba1e993846645b0536c6b27b4d4ad1a616959db833b6733b27254693b5278e4567b373d3623229b79894db0cca6ecf164a528a269d2cbb9ba4688a9eb7bdb62a8dc59d291bdbedd9b2b1a6d3b65718ecb65bb6898de162edb6d94e5c8ccdd972b79cecc8ebcc86cef57c62047736d97b2d024a4a5135a9cda931dc6da5c570b75c9be654592c89bdc570b75ccc76b66abbdb73864b2109eeb632f105b8fbeae40050772772d2c6e6ee62cff57cf2e9de4ced3efacd9e7b95a5e837d96ca70c4dd5564dd5dbabedb3b3bd5325996a3bfa135eb3ddb6e8eda6ca6e009464e7d1cfb6cda6aebf8f3e3d65df9eb45676b2e9b9b69f6e9cfaaa13ef03277974695575fd9d74ae6acb6297933ca6acfbe8964b71df74da36d175770c9ce4a1c4dd3f48d9adce7e766edab7e95ecf27eebee3ee3cee5e83b732d0f26a378bb6a8ed4cd7dd4ed96f4bd5155d4a979440091d65844102122260630b263a608400359e130885aa05c51739bc1406c0690aa2e87105045e3c605d310108579631480f4474e9b283021b1f6cbc08a309252f68a008012398e1b9098c66e9c6e14ea3a7b528d3af1bb5ade7fed94ef73e7af683a6b54db73b10ee5ec55b1bcc665bca1769d3cdee15f7fbe85b36777bdb4ed393267bdc6da5fd6cafa74db6672d7a436dee18c81d9b54dc3112770f72ff827077276f95a1c41d9370048fa0e4ee1a13c9014dddc93c19f977fb5cbb1ee1fa67c49d75adfb39eb763beeea8241b48f671ef4061f06c14ee77b9d077e39f68b8226e1fa57a4739677fddedb75437088fdde9b31937bbf8befcd9e01f0c5f7c33b88eef5eee7f88eaf8c3d0f47f55763acb35c7d2f565d15e09bf2ee6a9cf7bd357c2f0653c037f8624fe34b027caf872f0a97c7bd198316e8f2b7ba3beebd1713c13560be445c7c3d7c2fceb18bb52a35048bf708783b1f7984fb61ac816415c63787d5730fa0818441f90976ed5889ab338eeef0cddef570d5b88e9d2449bf7ef5c577cc053108f7e20ee37caf90fbe38257c418632fc9fd00638d2f4f7e85188000b8e34c06f887db610caebef93a7e825f75b563d4f337ba36647759e03a922c70beded5df1d6fd6823108cbf7275f8cf563318573bb7b3f1e0d84039e8b551e88bf7b6117630f64efa6b0ce4bb7c4b97bf3ce4d85f882dfc548f0067803ac41f6ec97753d8cefa8c9ac310618e3eb5d8d74533e6ed8e1dbdd95cf0d1efac214be47a0f8e18bc205efcdf8eacbe46a8089e01e38c41fee6ebef8e20bbb1ae0107ffae62edfeb73f3c5b9a92bde7b8bdc0db02a7f17d417df0bbbd7db8169aec6b7d397080e6fc61bdc9c31d6585f2218df0cb0eaa62ea8f1bd177635c0aa2f5f0dea7bafcf5f1b1040233984eee69bbadae6a652b09000371bdc0ef4c5d8c3dfbe640d4fc8e45e7cf1bd77c73fc7f9009c2e19018cf117c01162c208c0b5861b2b9c6a3c208534d0f02217190ee5880c6c28e7174e74c4144410b9d4135038a246e6c939048909476c900226670f1e2247d8fc2072ae1ae093c6e8c3c7a5ba3d695c17f418954940cfbfc05f46726cb063c404d6416301aacef3801082113a26e0c0e8450e9ec78c1ba1a30537ea72f0d730b86777f70edcfda80587fb017251d8f5b571a78cddee51fc89bbbbe0648b85b33d67b191956f32154fda86276d8207c2df4f0555c8053c759df801808c2afa08209a879844033c043c6913523b543d6c60784a09400f206f10b69e0806813f9e2a17b151755c3c815e9e68a25449f9642250209ef1d49579eac40c38f024b625154f299b15fe8a743f3a1eb0d48418fc6045d7f0c472b15c79a7f503b46995b1d28500fe7c46322b1b019378ca4d80fcf0549e039e72e865a0754220f96a51eba882ba103e017819782aaf26d28834299bd48e4f00d90556bc0c32172b9d164f1ed4f4ed631e68a06122cb6be99b777212fd44e4e1e16f85efe673d2d5acae17e64e8b39679cbf0ce694aa87ce5f0adf0ceb89aaf579dfcd9f1ea27fe80b62906faaa438e81af0b472409596a76f402556f41956cad87b9917b4d181313210660b2d72495072c8b2048884117cd4d404637e7c40b2c08f000338c149192fc0d0000738f068f90149106788f105982a24e0c4123f5e00f021d7e2c0ae2a38019932c200030b289c5e28409401b0708213a1200e36e0b1630a299c9c78c00b2ec434e8a1a61cacce3043caeda9cc0b58b0822804e0b1a32506982caca84202513c81c30d33c40a2080154e7032f48517596080025a9878808c2fc0605105150b4882862b309c808c18615441c51410807adab3a125ad910c1b6b9cb10516527ce9d2440e36ec59ac005108b0c2d09222b09cd6f885175b1021440e507b5680000c052d29e26cacf1851717c8428a2f5d9e6842871ba05a08c0d00845603e4380e4ccb4b49761630d332eb045165848f1e5892674c8e1061ba0d488b51085841faf39e430a104d6ea033db2d440030b2bf02061030d4d53b6a4cae41760177472e038c0066806e026f0123708069279ee2bdcc921e4dfc101ee716fbe0c3206d746f3b83b523a666632a959e28a1c331031087ba85aa90ff43eec795d97af7b502a0fb878fa525f4aafc09e2f9535108baa3829411c4f05fe689175b5e8c534531e734b8f0143104fde0a7f29ad336af0f38027950ae24cebacaae021375d0afa7a462af03482094a5a3060add226e4b0e0290456400853e576b0160748aa609d41dec15dd7912e84309e3c8f832750352ca02b59a88a0c4f18a4561069441a0304d5e04056b58227236d4ac84807f24be5b153d233d45005d42b4f83cb1252a50d24522070000a84e387150e3b24ad8f882e6113808b151d1d8e2a4805002f8a06e12362650247085961000e3b481ea851660202ae780a734842c03006615d157ae4221f063d55541f114f05aeb2cf9050d64015b48227d53734420199dc2c0952a5988850664626f0c443ebf4a83c988ed153854bca022ce0490532d9e08886a72e93ddf550f0545d110f842340612ef501c8c4537d188c4a523eb493140f9a1e00c86007086008251001a08a0a7c7d4246213e434f3e517f1974b0dc9312f5078fe44b7d2afda32b41ff20b9dd4d76753b7852a02c135952c40654ed48f95449e2241c02e2681fda87c7802710565a491742b741ca87eec1029235b0f2f4fa713352ded1b93b4059801da85053271e10268a8b130c4802014e2e4c619590b6cca8005106c0820a29407962420098c07e84e000c0830e5e6781451913b8d10609473c2833c0e03302035d2cb10014969000d3a0460cbd2ba6f8b28589259250c01146109102ce073f5e42045104a5cc1c6f1c0dc00463aa88a92d1d7040918e14517d4ce490c527d581319a600246a487074da802bf1e37128822ca9e9de0240043414b604380e4ccb456a34ec00d33c8308386081470e2010c705a41059f1e1b1a9d81302950e1c8083da9cf7b22862f1040c2871d683840110948000e27383952e403f1ca91e3c07068323f068bd16de0343a342e19580ccc81541822183803f80b3c057e223b819574edfab81c801a743d460c300f5c73695a3aba19dcbaa45ee1b053e11408e2efebb0bef95ecfdd55dee306703244623b3adb145d713ff64c95a1694ec7fda654516bcbaab2b0e87b4eaa4e77079d5409c0dd01e0a44a08a9c271a347523fe771fef70cfd16fd224debb99e34d99fe8b74d47512916903e9c70f795932911b8d127a5e8a6317d0ece08463e4593f6510bafd78b00b424f788e07817e4eeadb7b490ae33f61b8293200aa091146dd93d7b9aac3d6fdfaae9b35b9d7d0ece96ad3995053700419fa5bb3d9ffdc4ccd24d7e517c493cad4d4ab7ed91d4df32d4c6feaa22ad67cbfe4e4acf35f5f29408da01eebe736bbb59db8974474004c81ff975cdc94078983beaee3827bd2d6eb9b405958e0a07c7857741a5a33ac0ff01feffdf1d1b71c745dc318c8887e561514cf087915e8e37e3eea4931e767f98ea612dd2b6fdab8c5a5a12bafeb748db66c49e238c5006d94de1fe2cdae68efe5974d3da87b1b334a71e3d92fa6d4e7d77fca3827d7bfe6c2bc9d0f4c4754f4e0098bb67e06417c56d47679bbb75a63f6cb68fbe6976eed576b6b926abbaae4b98d4755581ba1eeeaf17bbbe66eaed477b43daab2afb9cd435b43ee0c5df88910782f3ee9e7277d6dd597052bbfc08b501d96177dbd4aeead149ba4fd1da9d270a1cee1e8505155428223318ee5eba3b76326be15e1eb9631f77dce38e4570f72177ddd2d9c71578883b16e28e83b86320ee98c71dff70c72f77bce38e752ece43f70be5ee037012bbb167aa6ccf785e22bc78767e44608f7e2001e1e11101c879741424c8cc070852cf8e8abed8dd9eabecd5b4b62c9ab4d71f6ad27acaf014dea2361cfb46ed69b4c3493cc4dd679cc459dc6de7927adb6b4b0924eecec3495c0077a7711207c0dd4798b26729ba6e36459f45713eddb637f2fbe867b69c4a633fc7dd83b85fd5dd536f7d000c771c82fbbbe399bbdf9cbc3cb437a4eb85bb5f0c82afeabaee4fcf9fed74cdb57b6dd37ddb36dc0dfd163dd7f69352b46dcfdbaa22fde9170977579df421dc7d74f2bebbd7387943779f6d1b7a223dbbdba6a37f24f553156dcfb28d63a7b4b72d4b55273058d196a56afa855d5fb3742bc9cea3d846d7b647c88b6767a7284d76de767670ec6cab29bbbed875a3eb7a1e0159f7c5b8849b6930b04986f6aade7eafa7cbc11386a4911e44d218ecb6e13e022d27931ce0eeb673b3ee449201928c1ef6ce84cb5d01aeb79d9b4d51a42677af39398016b83b90934842b83b09462e55b6eed9aa7e52aaae4cff3aec464fa29c19c32924d1dd5fb374b3e7b67d7bfe3e6a4a692de691f3c206c3fde50ee2a155ad9deb5ed514bdc562297a9ba5a852ecc84dc682ed6cd39389e95c672d5a9ba1272e4d813d519b294371aa0cc5a945ed86b2676a1376efa07643d9b6a373a7b0aab6935df7129aa6b0b6ac7a8bb567cc663b65ab8ab253cedb5e4293daad2443db36dd280e95ed75e39ada983ae5bcb1294c41cd764359b76d969e4c36143667c3ad3928b33487b4899a724049293ab3a94c763b650951ba65ec56b29edb9624294559d596a4c56d99cc4c37ee04a6ed04775b99ac1b69cf768bb22a6e2b613ad719ad455738925b5b768890a523466e321660b0204b37190bb1d9926d3bcaa94a509cb9c2092f1477feba955695298684a4bed6adc49eedef2021a96f84c5d98dbe8c62a96af429faed66d520636eb8661b5d03337177ed9808bbd1d69c723681c18a3e65b7adddecffb9e6ced835223664d4aa362846dfaa361649fd5565d12574f6e76c9fb69ccc76ca5e6ddf7db85f36842eeedecace74c766e96663ea6cd66e7607178bc57037d9149c67256a29fa6cd3c9643bd9dbb99e381f214280a06c130cc6b653f6abddecab2d9b7b1da375279de9d9c4e89b8e6c43dc6f1a2eb6692bb1e8ed81a840012ce4eeda31111907ba00f982cc4983244092bb8b45d9147d9ecd9e6beee469a76c1529455bf6e7c5b3b3a3dad8586e363bdb74b7291adb4be7b6b1676c96aa47b126597bced0597aca62b6a373dda92db794c2d8a65dc20bc59dff6ada4a1fc2339d2b6a8bbd64a8ed28875b62829904cacf767ba6bb3d65a92a23fa17fb463f486dcee867a86d1f9de8d2cf36abae6adbb6ec665bb5692bfd6e857eb6374b634f5aac6577123a6b73381a7b326955758dd1d89309edc8ba67e7660283c950a029454ab22ddb38285bd6a6fbd6743ed949eb494bb2ee59baa1a8eb1e40aa3a615176a75ba8a9456d67bbaa4d78820411c274ce864e96ddeb6c66a2ad2dd7a48db24649a32045398a12254a19c5dd91b8832e21eee0cb0bdd3de6640a5338bbbed6cd06b9cee23a08772f809329e80001f2e27901d94955b616dbb375b3ebba44e984254429a836d2c9b27b23d9ce5c2b3b9352b4e9c4c568ecc9e426636186c64e80c1f64d95b539f526632146634f5acbaa329bed94417180bb43a102a504a237d4d428b695ced6e8935254e96c9b662751144446fe62da2993fae7cf4edacb49221cf7170a2140418bfbebf6e7afaa0c6dcf9bdae6cef47c5a524e5d69ed0c49ddb422145af774ff388982ebc9189e93aeea11ceb728abbe52f3c9538ed14dc6c22cdd50d8dc6e91549c74dd4ccfee1df404c9092338e18713841c8a934ede7062c4dee991bae29e4df752baee2535e96d672e3d9be070ea6ab3a14c4db623946555dc6f5acbe6d47527a5e72ca7cda96afbb373af4929fa27ceabc9c6e6547469af38d969c339b939b1f117ad4599ce2663f8b957227727e26413a8262f13cab0e5d8a6a39fed7627cd72e9496b7f4d7a16358102a409adbf5816a7b6267c2570f12d650a7b32a5e723a95fc291008861d9197bd202c0253d67fba606e0c90327030034e486bb173939a4c55f4639af331b32da6baefda593f6690e2937fb7d54c4c8663b9318fdf96a9ba23f4b734bea2d3d8764432b265edc5fa98acb9d3f4bcf23b57d1d9df5a64a59e2ee2738c9248ab3b95f81c907421a10a2e2af36a7fe6cdfd096d6aeeaebccfe445bf475d6bdb4d3a6731f7dd3797b16a515fdebcfbd84be5007eeae8293411898e56cb2146555d9b32d7a6351f3d5a23fdbab9aaab4cdc49eb41b7ada92a0e71376efa0348526a2b38582820d3d839214a55be92cda2c51d3469b66e76689d214da744331978ceeee6dba97da742f2d71770e9c548286bfdcdd88934ab4b88e1224eefbb6aaed89b6e80c3d7139297b6de2641231ab8aa4b63b7b4dc2c553f4b6ee76cfd80f3670320916f757929fdcdfd41589f62dfa5b96a2ec8d93494897eda46a0a14c681a6bc5295c6a24cdf9463b39d389f32a99b560464a324536d6fb3a1ed6c6f992cc7aa69ee37adc814e32fa45445cda857538bbbed36ddecef23138b6cafa69149be729a2461e19154f457dc94dda2afa4d7c641c149245cd8bd91d4d9ebb83b13279118bd66bbdd2beef791ed68e98d8c4c701209d8949ebfaa482c8af4e96f5a110951eefe9aa53915e9f791eccff6dcb4d62401ea5925996a6bbf880424e41132eeeb4642ca1d6dd989631f497d25d969fbf359dc495bf79357528aa6e8e7a8b357dbd77ea138bf732cad557fdf54f6d993a9c8dd03e0e4112daeee28c9362dc9911ff7474242674f6bd1a6f4bcbdaa16b9bb8f9323c0e1afd9468d8cbe688433dc7d052747c082beda26a5689b53d74752bfe9647a35fd73ddb4f6379b3b65fb68dde94e7a1df6649aed152d1a21ca2d97ee3732fa4d2b9aedd9912336db99e4c8b3e7171939126b8d4c51818e1cc9c1317293b1d0b27b76db2d1adb1be948d37aa2321469a7fbe82663e1c81415c8c80f69c45f2d1881e064112d803859048b1761a108cfab05231b278b90af168c7e38091bc35f2d18c19870772761535e2d18c19ebc5a30d2c049188ebbbf5a3082a9fcd582d12cdd2c0cf6c48800bf37941b7ada64b1d98edd645362ed2c4de2e44f05dcfdb56db675e3be4dcff3d9143ddb544db2ae3b65528fbc4ece4f1020b9d799ed599a538158599be6d4dbc94e399bac1b451a5af72dc7a66a92d9aaca3691094447f6bad1f57624e727f73a3f399ca6d83e6a3a6feb9e6d365571ec5edb9cba6f68bb97d05676c658b43d9b66e7264a4ad159ba9f34ad3b87c26b55696f3b8f549bd0ef56bdedf5cf4fd59f6d25996afbbd9e6c529a0bfa57537a3e12fa3a3be96cd9673fb8bdac4557155d717f3e7bfe6cb334194a637a9dd96e71b7ddb6e72cddec9fdf9eeb7ea3204272469f9eaf33dbed29436db89c927fa9ed6f25d4c6f49be95f48eadf36adfdd9bead2a528afe667a36ddb2bd7ecbaab767cfd76177527ad2646b4e7db57df6f77ab63775454a67fbf7d249b3d9cc7f3dfb6c4e45d773e999d454e937136bc20c655355c6aa34a667d34d6b5fc768a7aa13a3471afad7b3e83749c2c2abed2bf9578ecd76b6e823a10fe45b3657cbb1399c9f6d1cee5c5b16a5b5ff48eaced94e15feb5a227ee738c58a39feda5d75171d893f63d2204f9205be9b41d35ed12fec5e2ceb5fd76b3ecf94929ca6e34555f4debce49b1a1e7d2f92dbbdbd3a645b0c476ca541358364d81288576afb2544dd2aa4e369b423a344b736a50ab3a5192a926a449e85ef7920aa5559d98ac924c35814935a15d55dcb6eda2367782926cd392ccf611bacad8a31c14d58909b313e8044a87d876b3acd9949e4d54b5685569b2f4dc44499a5adc6dc9b61da1edba97d2a15675a2c47674a629d8d0a0bde66ce819344b379414b60150f696bba153ce9bdabeedcc49d90640d9bd3e8bfe2d81bbb7e064083bdc935020552d529dd86cb9a0981adb6d4eb6a7ec9507c8ceb66d766755655b969e399645632d9babcdce58bb59762fad9bdd6b9ab3d9cebd84dace186e6fa5586ccb561589d69e7b1663526db633b66ea416b5a16d2e164340cbfd16c0dd5127733a771fc1c91fa4bbb3eaba0df04929da644bd59f9ddbf66afb6c8b1e3d8a8494637fb65b2494c6b69b6d9aa2ae6dbad92353496c0389c558eeee82970649288bb6b6dc2d88909d9da414b525a5e7ac693d6fe88a8b2da92b0e77c6667b457153366ecb64e7aa22b59b6dd7cde662b3d989e6a41ce5d8a35cbad7d9ec6467b68dced098ecdc48b176b331db96a5a72c6996abc55a76e7a4ec753db74dc61ee5d858bbd958bbd9f58ccd66678bb6e99ea1e79a3b77c2b85f2fdc935a684c51946edc09aa93212f9ed7cfce4d360506bbc9a6c43ec019012f71f79be41e71f79993383feeb33d4397d4d99ea9b2747f93ed6ccfd97f110fee6cd91bdaeea43587639bb652acdd2c10f6281d32d9f575634f261182ec6cd989b4b38363d9f575f4136407773b5b76dfd0d674f20337dc7daf6a9a34346b65bbb6d736ddb72d4b736a9a9e7bcde1d61c2eb6db73af3276a33b369b9decfa3a6a9aa2aeb89d59acc986c39db9d86e73679beea51d9b8222ed1567b3a14a4ab24d93c5da9c4a6b51a658bb5976279db818eedcb458bb59a5f5bced955d5f471e4480cdfd3efadb6e876e6a9b9eb427b1d8c3f64ca5c9cebda6b99fed75b7e97e588acaf64c4de2ee39ee778bbb2739e9018fb3eb8bc8abe725646767db4e19bbd3d4a2eb89c31ef8b8c17f0423ff3023a36fd913f75b969e4bb3f43c72e4276744b65598d94e98a526dbeea4f52c6ad3bdaeb9244decba5124b4559decd986b277d2d94249429ba42acaae5b850eb4604fa6b7d94e9912273b9822e464073827edcf4fd1db6ed1dfb6a41465df244b32eefe62dbdc115972717757d3595983bba7e064e9e3feb2d936137bbe4eba97d0a44f4ad1965d51a44752ff5f4d365b0ee9653374f6ec7e24f55973b6836ebb1dbaed76885dd5755d426bd115b60d775393ccf66ed3219aac3d81da74a3b2d404a202bbd973db36d1943d4b87dcfd03275d077077274eba76dc5f2dbb939272ecb7b424f4f61bd7d49e9bd6ea6c5a9bee5b2e693d7fd3daddaa4efe35dbb4674fdab3cfb49da42acab21b0ad376d2234290bd575a91d22993ed127a440872d2a0f4881044652ada4aa70d288810a693088810a693884708d349442408d349f41384e924f209c27412f504613a894408c274120d09c274120909c274120509c27412f104613a898800613a897e80309d443e40984ea21e204c27910840984ea22140984e222140984ea22040984e222040984e22224c27d10fd349e4c37412f5309d4422309d4443984e22214c275110a6930808d349c4c374126d254332166db27790bbe3b89f4e723086bb339d6b909790a18da8146d7485454c32e594a111190000000003150020381c108a0683e180208649eeed0114800a7bbc4e624a15ca83518ec33088828c31c020400c30001800424353e3000fad6d555244426786c2764cc76ad55c31310c571d7f2ed1ae1c5020377296dd44e2cf3d659d01075025af7afff82bcbe25d941214800c75b7eebfb570868bcf74b79dc53ade15375117b07f1557ddbe21f9f21978e202767684e4891c9e490b335c9d4a845a79b7f60fd73f48cbf3f68754850f8ebe05793f6d6d8c93d56ec2877a77d46f5bf54edce942d49dbea98e6513b07a599067e649b3d5dc7712349a9494c78f015e3cc49d4f36bac732f8898166efb44fa1bd25470579a7a46b36b95b4d5e03c267594126c3bc2efa0737eff6db6a604e04f14828288e9253929b5e1dc13c7a4598bfe7e5d946b5a28aec41befcdd937e129e8469fd13e1c9b8416f8d2e5d9f2225b8da1c8cd6ee230e0d3371cb125ae4f2b2ffc4c04c742614acc30838b8755479ef7c07c1f1c6b362a0e36154c5ab79b98bf7e2338c8c27007ada70821753a10b7cd111e6299089e4ded88d4c166aeaab6dcceaaed53924f326df4c4831298145a053d65c8e3d74114fa7ae154a77d701d391eb1848d179c13564d99933e62469e49b27884bd997b26e6f54abf0c901b8dd8de11a1d30dc62280da2f0eacfceeea618f9511690c48e0e17f396a7507ec594f0586f5063bdcfd37011a01443f161e0bf99dd86f6337a183a43832a91c215d747cd18a0838b371683ce250d9883767c8a06f875587b85b50ad19510e28e5c57d3780ae7e4ac4da07b619a710cc6381caf1cef54382b09f3020feee7e16fcae7ec24f80e097ff271b9b5ab3f27248642cefd9e1a13c71fe57c01fb56b0b70d9f5cc023e74a06ce36538235676be2922c2af94b62cf432eef19b3609e0e6148a052a394f862e9a216585abbe51ca85445b993345d172700f3a6a509ddf1dd299567ea48f217cf833ca600c5944109861217e38fc4317ad2c657558ad9cda8535d37a084609b0c21d700fe012c6ee9fcfed03fd6646fb1fb8ea7314ca72f4cfd5e01fc8c882cdcaf8b387707f0c0a3f14aea9f860dccf40be7cf79e89347245a7803518dba82569c9413766abbccd312c1abd37a2b29a31917988f61f62c4b45e42db546d9dfc1f82827ea5d2114b8dba25f1d253c6f38a2bf4b56d7c8fe9004b0e6f55986b12c27049440a00d36375c60f15162b89f7d999315307209c9f7a492b58dcb500a12fd2d25e70cd4d35744ca72d779ec9ae13d4d63c1cce36c5721fb547c374b59ce9c96a0a2acd1ca6b155c9c281c807f67619547517d1a74e24c5bbd9be4dcd7aaf18fc10d3485d348159662fb6f77f161722611959d450eea9dc9245d1dba90da478b9781f1584126da0ffdbff337b67e05b4e790102c59f1e6abc90797c06b012db0bf1c4eb9a7ebef563cfedc05c554988f196203a5365f4eedb5d86916c4febcff3fdf49879074d4209bceafb98230780e78027694cbf39e5076b67dbc79a643415d49512f21371e1e73b97d8f9403b461151df3f3666930a5394ca56fffaf5fc0a44f893dd0ae4d7e4afbc3e332bfba3153ae2f15fd878bd8513a7d139c1fb973e32c840b82f19edede10c4fa905de2703a78ef5f81d0f56e2a8d2bde2ae12a51a8d959f9500ac73d1785179fb3058a1880a6b4a81c04f05ebeff7c7a65f410f2526ba5df7d8d4ecdc9f6fddbebe04a15cc603fde60c17b2c836baec4a6dce6f85a7a057a9a4b56c996d5ffb76491bc81e4ebb1a9b4403215cfd961efb0dd4c6dc97777455babab7d5eb48b4ce770f251f2824db8a11afb66893bfcaddb26c023a9a7b8a166a7ff1709f160c211da7afb337d4cbd823316ac7b73a6b5dd4c7c1f180043cd313d8b1db9a2d6acd0465e0b975837ebcd85032f055ebb0b68c89d2826b17749cfa7a3498892d4ddef51bfeb9d5e0944804a8087387367eebb8cb965c90ebd2645c765d47ae2ca6f32878d4399cd3158261c3ce7c7d398c784b99b7956d4867dc3c2c39977c708d8f9307560918e3c8682c729b3820c3651be98e3e093a2d93d113e540c0363da34b83887cb8bbf93fc9d307807526d7aeefdb0432ff80ebe06be91dd97c7417ea9ed3c6b0a71ca64591ebe056904883347c657ee6a715ff4c5a3982548b9f7867ad0bb49e22e9f8f6bd2f56904102434302dd14847e9f40fef12f77505b932d4a900fa3d008ec590e46bc4c6f2b48c685e4b6253d2a33eac15f2fe5e966d550c9b9bcdfa329e13533d3f2a3874e283fb6430c7acb81b6710836fb205578c35675cf54da9de6634568b849d3f36d4e2c773bc66e7925ba80984fed71f98a61f8fd8bf0bd908fbe61becc0ec049f6ecade38cfec100027b298d4de76c2e3339936d759011d36fa8471ab033d0f858dd1d7230986957fc3ad59bc6b3d4e1ab2ea569058ec8dfe3f87bc34841ac53f9ce7ac384c377a139f520f1b4a4f8c89c1d452b1895d4452820c98cc0b7736e35c1f52279b8a50c64bdd9136179ea0b1492d21d2e9f6d378d4ddfdf77c3e0b87b391e897241422a1e22f4851698397be29fedff277eebbb60ff86ce376ca6f3cda73b87d5aef4511c8004a95b482cb13ee83415d7bb7f43dab84a48e4afc6fc03e4c8b2eea4f936b7538617b86c1548356d62324679de6ae4948f3f7a2a0478e6fdfc668ea8e311f4fa7b8d0d466d7c05bcc25e825a93e8cdbacda6eb2273b72c6e7a53fab252007858c87609cdca1c343a6d0ca1a3a8f2a457fe3966756ae5c14b88dffcfa50dac0f6e1a33e12dfd0084c3eadfbc39004acf67bd69a68220f98854c781b95b139368cf3e70abb1ef8d8a0866a079662afc6ec108c2402b4ab254a2055281d54a89cb945453f95cdcc1c94a1d1705e9b94a0a61be1ea2b35e8b5fe4366d583224efbe9ee3e9e8d8137bc0dd822103883bf4fc9056122513b2c00c857c052434fba6f44f6df4f2606a69a31eeab3dab7a0ee0568827cd51c4d0431e182e6eca202d5c339f478c2b892d867d9b0a685a293699518df6dc2d06320a07e313288e92191f723c97858c6c308f67602c8a85d6324282e614612b9190005a7587c9a0af368a015117f7f534748581a0251621b90c53a9c7124bf80e1647b3592d05d9104a1da9f33dcb8563380e78d36b269c53e5830416bb45ae827f4798370717fe073b50ebc7c6eb9c97ad105c6dcd2f76468f71f0daca3826b5185259d01246fb21a16cd13e9a50788649b1e8878b1645713663675d273ac47af6e54d58512103132c6caca58cc9d546915298fecea4c2e276b6f5b09f968a39a535562184010f36e280903412a222dc395f7de757066efa335c69650cdf0cb223f0a9b6ecdc9be0ee0cfddbb7cac608938b282767ad11114d0396680967e51d263f33639e75359dabc0de8cf6a648587724bb9c626a32f319e7b8c5708b656a0d5dc7687e9ca1542d87f04a7d488d394cfc162d23320d800fef6cbc8e317b9a5bcb7e67bc678d7b6ea1e4a077f3861d65dbd0d40f0ccc7918272a3a024cb6f894f1e18254955d737102507b9cb2f6d694c0e8e7185228fd52b485a0b562f457481d5f549fb9039958487061cd730b8c80c1704cd3acff64cfc925a962511e74ffee8be80b0bcf149568e3c777884b8bcb736c3372b034e9f80df5dd3eba9464350c69eb3cd4274ba4aecd604fceb3f2a80121f53a70a497cb2387635acb4dba547fd6319782cd5966bbbf24bc6e2cd0667a416414342a48dc6fc4101872519f62e55b55be84ba04a30799a696db3390e18ef9fa39afc2e7c498475c66d0e40c186b7982e7911008d52b820f8c623866451226549435d1476259038f6c1e687fceb0a6036b00d497a144a4f9cc4dc3c64cedafdc38196f4d2d0b8cff81810ad664075865663d37eecf67727c56aafebb8a8a5ad79efc5ac41e95aa9a43e94b276e167ebf3ecbaf8a60db3a1e34cbb1ac6fc056fe9daa3659e666cdf16e93457846b8822dc9c4987adbb2676670bb94fb20e34e88b1ccddaaeb990cda1f8c7364108c62e84ed9e2d3138f3a231fe2874058d93277550aa11c939e4226b4beb352f9bfefe610c0fb8ab4df7b348bf54c708bee81254835484236cfc78a17a176188a89c46a094f1df4cb18eb93c0d07340667e0f397b028161641f5d75a7208aa8927c98367fcd1d10cc3ed6b7fce6073751cd50b9fd073150a7f141c435909eb2ece98f8ba88e40b103689a7a79241658cb552265499769a2262c2132dfacd430701eb31ef0f4a8dfc7be221af90e5d1c6208ac5437edb87edcae9e84ee6f2cc3f4138ad6bc87862afc9fbbfe16598aa394b5a638e7d7519ba5a65730d4cc76923a102a57fe47cee35d56f6f37906b5045454eb7b744520a302e383bb81bf51ad7171068732b1a670218ad19c7cd28d2929a8d448a92a72c8eeaed4f8175828e59c05196e2ea8d96f5e31ed08a156846ad9eb10c63f45ffa34b14901cf1f5d99d87503cab8145ce43530fd970bb7242074d2f48070c1ce98c8d1cc55eaa67161c00828e84c1f6384acf5e6ba18f54f8f41965c5d6223219589ca237c3234286468269b6141211483bebac9ccbed68697bb0aeb6b3d4736a862d817819b0b1398c842cb68cce95993c07e0417689ba710aacc051544c44294ad96a3b4bd07737f96170022fb190408461d130a9e0862d5e06ea6e5dada20cbf3967452e8d94694f09ec5e5b1324bd3c2fd3f00368423d635cc7d37b078588fd5671752d38840fd83a8f0c0c9f1a3ae64e68c368df81b27f46929205d5c1bebd0b4f3171f76b0e6571ac9ef948b8aeba1c79a285ed8d283d17ee1701559d4c107036915ed23ddf849a685d81d601ff0354b97b8f02872768473505024e336b257bc1e175e89ee072ae34cb060b3c1c33552d899438369ad4b71a3aa4dc0287d967069a41305ade70d13246395ee8f3942081f26a86a6ce7bc910d77d494f85766cb7bb85a3d8e2cfc1f30b05cde42a9a4e44e104d93db25af6e8c11920ff1ffe81c397f5dc3251a5c86228cde1c7d5151d24fb8cf4d1492dcc2cc3905067d9d0853621ceac66cc37205e0a7bc613923515cd675c44bbde2199b610b707daff2000300c1c36de10755d3694e1ee9d6fafeceb1d2b4eabaadde9714833448ea629f3ba17725bda7645eb11e51fda0d345eb7a61f97716bfb4c2097048bc2b4bb5e1e4a87be78866b5ec061ef23f56fb6cbbe97e8a9d43837b1c22b5f36394e53de49b9bc076a8699de4c1319af969340e9297504b12d05f4ebe75580e43deb7b3cac6befa5cd88bbad506c09f27c501f6192f335f052d0a89566689df0857e2417f59258d103238c49e372fa01f885cbd434fac3c6c3dcdef63180710e6109768d94640a63276526bfad7ae11ce4a36b423c4fac4f84eba2d004120c4bacdbf4c62b8c3d7f86b4d3f1ac507773983c9ff3d7c6d7cc2f4d4b3fd62c6148f75eaea4fa6f8dbe829a87117384c23cfbcd214a0f1bcf3966749feaad7ea462bacd6a5bb4bf548bab1496249b1e16170c7a1e8f3665b229b460e37d803848d00f9643b8e43f365d64c160e9721c1a5aed34d745386f77439902cddb28da004f82dedd8f9e0045ce49ecd0dc0ee177895c3dc12b6ea2bb419e02991d32ad51142893040a55d223ef64af4303bea2b6ff15ec2d63060def59e03279a1339908eac1933c67e9cde533330c17e3524d8ca6e83c0c953a6f530bb4eb0c4713f4781fa8d6ad041b7f65724f3be7c60fc64eb147ec540f7abb4cfd798a1fe724800c32c19a8c8f12aa51f7f7240c64ed7d916118da4295f707609789b065dbaa49478400d6b90373b9a7aabde32a077eabbe80e54054bbfa9ee95ca7728d632ccac510c56b9623353f90f29709013ff9dbc451e16d709584e11154ed88eab183ba15a00b673bd342ec88bc27b73aa3b31f65ae0d3d8006105a59cb17eedf7ed7fe835f27fb5c5df0d9979b9cf47ebdee4ca375b0098b9ae0c79425668127143b77c4244a051e0332ca557bfefda8620a74d054389a995b68ded1f91dfe5eae4813f2975825e52475ff36f1cb37a7170b3a5631416ea9362ad6963763d0d86a374d5146a1abdd1744d4b33492196245818b6caf03bf98f3c8ae6c6528d88eface9836330b84469db118a5974dca97f55bad01dea4662ba21d4ac44a8376ad8d45faa6bbd6643ed7f43efd2eb65cff2dbe299dc9f8279cec727c2dcd4bfcc708727fd25df625bc5f7a6ff6dd1d0d5ff70f20be585dd9ee11f17edee0c0093c68df2c1ff2ed5bfb612fb902ded5e6aef061960fc564495aa41e6f1236d15bb1deba6f517a72793e785f32bdedc5f8fa17f5819f76be5d84f80ff5b37b8edc350ec77e0fbf76c297f9c9454ef2564c731f2e4e8881ebb72834df62958bb261b7a5a02feb1a944fdbbf2e8742a6232f0e58684833b407ce9e25c7daa253fef8c0b03d4d03fc25ce521bd06c3058a6ae804ce3dd757adffc6b2b85f4d7401d5cec7eb888b428453365f3fc258f8415e7df2147560378331f747608176383f4f1fef6ae89ad3745266ce67c6753562e5d61bf87737bbd1d8a7f45f321bec75e13f452eb4c3856083a9112dc7e00002cd74c08239e45abfc6ffecb3c3e2e780cc7b17ae5dff8fbec52c7c883206b349e53a26e8870d2e5b0e0817fd74bd770db58099fa3afb0bdfeb205fc0ba5f0d13458d8da46f3eb73df26e37ed1363fabc16b68accfbfedadb9735a0f711aeb1c6de12bbcdab8f1af43b379bb57c9362077cfddc88d9206aecb4cc971cb1a3423daf20862270dba88b39f7a680c37df466cf66091e75825dfb5e16d0a7f29d19ec29f8baca33edb5f54a348333a591d4e33c8bf2303891cc652b43fe0c3be50ebc74cbed09e33ec0b406accba17a2b30075d761da8f34fe2b76765b8d93f8e83ba37977f30d37e1a38bc588aa48a0dcd619bbfda4c7fdb449b45ba1279e371451e2880eb022f728f8fd01629130c15f04868bfd2160b3a4d9276118d41d8782996e34177f1d5122264e29d970bb60b8ee1e6d6d23595812f7a0e7080b7c28a224fb2f938638acfd31e0182750a4d12c481015c50e380eb094590bc02653237d6721df8ed79403d406c1aa513d38717c567eeddb8c9f1a15b2a03c65300b7ea1008c02778da3c833bd0a28b8595c207250824180eb35e29291ce76640750fb70ed6a4161ed97337df68007adc127547449963bc8fe604d375df50b3e064e282fb1c30fdadc7e49a45fa6dbf7737e6541f60d41fd6a205d35aca27755bdbce49d5cc35942091edd42d1a8bcbf8b18e2494e0b33f58b05eb59062cd20f15797bcf80c09dd26ba59566e7361c70fd0f7b421d1dc5d2c05ce9fa0a30ac92bea2709e5ad935aa3a2bec26fac8f3206bba713aa022b2f82df10b13df73be4ae9ed2367ea8ca59b58385c2c7729e5e16880cf174f55b60b0875eef76293af61ede12679c168775f91af271f82f0f8a414347be801305cf99e40ae302f52c9041609d5e98b21823ca9fdcab64f0c66d3efcba7bf8dab11843b1c7e1c3a811a6ff3f2230b1a1da86202c85d9bd58117988ed2075d56fe3c1645915b60c697fe42bb39a89cacd165ceaa3b9f15ee58af76e8f2204e1057ef782b144d4f326e08299822fc738ae49fb69636f1e8f9d21e744cf48848ecd7e398f45ec589d5d09bd763c280cbc09293379be25774a808840257dc11afd332ddab6a7ebb85670f066d3cc0c70072249bdb9a64e6c4a5d030f12119b37941c736d75fe1b7d22447c99b7fc88e2e4eb4a03ee9fac078d7e6452565ce529e744fa7942fa6ee77da6cb90ad030fb698f8d2ee8b93044bed9cfdc48d5081e8db6dd099882a525381270c367dfb42d12d018104e8a8b4e47742875d5de562ce2f4073df7d85a6f61856c094e70562068c5ffba375216581452884562c9c8f4dcc37466e6acdf0c1bb83f38026819b16bc627c753efde8e7f460fa37a1f600e349c4b4a3e7243376acc48eac0b19a8d7b2a8903947f78435603c885df546c28f72381c14ef551e390db4ff3f743b6166686b7fba876c58947a7a48e726b1c445edf20f5f568f623f41e197a315fe687463730e474855e943b884d919e5c8cd8f79837d5c7878c9a06fd305e17252909f1103f026482ebc9139117b25c0925ceb7076be3ff5eae74385f73de0e70359d8d155d66ee479a065abcd9791103189d07ad58865de7c40bffbcc91fd6cc7172084c94e31d3135df359526edebb0640cd631db2310a690253bca9ac93cc68a802834f6d8f8d06c86bf287d545a467b812f29378cca69f13d29c44fb7e20baee730d3e84bdcaf2691d7c15f164c84c0dac680c6558c2854bc95731ba01b646bf9382d1804825df3872ec95a0e56beb05da4101a227572031d1f3d301bfbc734958e88e4e89d439c899462faea23ef0dc03fc012e1a3ae0476b01e72fae78ae0752328b50e1dd02ae1fc100f2804e067bb6c6f46631f17172dc8443153c5a2e81acbbba4cd54042b0d3b0451de2441862a596f505bec95833b198f518ea06855bc2270338ba00c331346b8b722b98288dfebd7988d000b9c0b2fba8437562205239c4f47b9e6d9d9865f33ca8e569258b61141e0a766ed666b8418ada18b28e92d2befdf59bcc776dd3c67cfca24de0257c918671406460f3f920d0b0a4efcb945b9a6506e9d1e6ba28c846076bf6a548e537730aa860e83cf5e3b15d2fd897e49be3a1eb30d8011543ed10a922d0d9a05feb65a1cd1aac495f163818b08e8ec977942ee8f88ad6ef6ed5835818bc564ac74b03612fb240a235f0ec6f30be048a97c742f34a532b3c9dd6818895747fe27dcc7af498dd02169061376cdce155d40a874c59703ac7303c19239005c7c21ec061388a0537b28bb037bb733a0c94fc044c6f9b540d257b7103b5439e9875473e4b1b25bdf44197e0a1acf26245038d405991be3f652585c247b1720abb658ea8405f11d856ffb455b4e119f31035c0590bfd660e49afdb642527d452949290f614edef943cfa0a07a64d73a0e926047b98deae2170768da9c32f2da67006322ff0a0b16a4012952c2c47f8884a9327618e73b5bb7c4887cd4bcd65af9a9cd51efa4a5e3fe25b4853516905e49c48638e56d8182d69956100895a73fd041b46676f64b3439a6e19b8fe7574d64dc7f935f13f6103e84ad89579fa8453ddd1ab5edab172b494c3fefbdb01f909fcb520bcc20a06c1cb6ff9f110c4d1605150f33db713d0475894589a3b78858b4d32031443bbf61a489643a925eb450348d7944cb12bb080a42cb80b957b67b073a30fb39cc7d55f8940e43c16d5cfe9d375f5ceb08ae42ffb65ef12e76f8f37a50f595c284e4dd5bf4e9101c8d3382d3ce39930162c1ada7e2cc0803a620bd3a6400ca2f58e7680d8167b07e3c40fbd17efe2a900ce8174a51d353ab4fc1022d398f14985c60f2e5aee7ce23202365eeb289a0b94812ac6595ad09afdba4654b09f5706c48b24a5024a0024653dcbf23bf6510120192bfaaad784dfa01bb39a8aee2a388bbf4ffa2f718beebafdd787504e86838ae8ebf3f52c0d7f3a343f6d9e8205cdd4a1bb9b374eef54259abd93b229d4666bf1b7b61f86e2c83148112453ad3f1af19170d6e0e850f33cbfdf23e567051a80aa325c053c417723abc41fd6d5448b510c7457afe515985da3167f3b0a78ba96216ac754869e0accb8b02688f7950907542a81ea12cea20268b3a9eb607063fdfe3ded2cd15d3201ef6b574f18228b15a8492c74f7d01aaf830243fe4ea6a683f7c8c14084ee622c8b670df6d11b524f0f3b000c07d3e9a6f6033f9292aabb3825edfae5cf5a064e55ac12d470b84593ab1ef2d77f3c3206db6c1a79130b9231f37fb04de13b6789e87b666b197c5be7dcccf8148552ff1bf27717d14ce53acf424b7f7289e45026177c7c0786ab4f17bbbd5af07aed6a10c181d9a31e1a14b683d8f50bbe41f6cfd0f5c95f60bf9edfafe71890b664dae76ec4c7c8dfdaeb7a4f05c804377785dab69abef1fbd85919fef6660183851e34425561a31bcfa496f0866cf9b709fb4ebf84f5caaf9fa177138ea2e69fc7fb51a41563e383ba5e9cfc8c761ac1a5d9680c9888b5dcf5379e60778f05f54d4a46c404d98b8bb231158c8789a0cff370b18a4888fd8510d79d8fa4038f50b21da0c186fd9c5d36b43b0ff29abb80be046a6d0f0d07701ae3547a896b243d1cb7b2fcf75bece4112894d49c7102e3d20d4d4c04c3e5d8f86397627f4bea6c055e7d5d46021ec4ba2ec1a7490de614da627f4fd0a97990512454e516b2426a9a1a7f40fae4714ea32aaec52bdbc4ef236ebfe27575c99f0cef5a47f461ffe2592fb268c5c017765717865c9e7245b3b2f6937bd56836fe47068dd1feaedd38e23859def1e133fbd1e6fb9dacbdee4e28262e92709d27af31be0ea0244c1ee5431d828864f1db6ac46232817c26b09d90306bf40eae51aa0d87828b021310636e981f44b52998ce1616180f7722a62d3230a792f1d77c925eaa48b4bf630ecc7b0e5e40dc050f739440e4ab46af73d5f2dde01bd0839b1f002e451a515171a909f5cca0d0e7a91b87ff54f5011eccf6870f66f6332766d14077e88ce471dc7c70e9c7d8eb113e735af4a91a95c8259ac3c92ee11541ddfadfb27e4dc5bde33678c66e5d3accabe16ba39bee82d5b08bb5fefaef0d6bf0f81a4a66bdf2f78f19f035843b1aca11b3396a930a4111ab2c894796594b219d56de51aae50627a48850a1a729479342614949412a2c027ae3ca3882781cb3e50b2a5241db35b69d9d217e55eb917958bcaf5653f2424cf9afcd8b8006eacfc43547f46009363e4b31e75a8bd74acad314f7c4d1f614e57e335e181572437d76108bafeed9e92702dd1929c18f70ee37907d3015abc68925d129d41480479b693bfa2534e29835f44cbedb84a54a20d1755d32f1795fe4359f0868905b6d12fb4ca795e8c5ee97dc2a662e85ee84fb9dac187f288dced8e2fc0eda58a91e152602c1a47b11479e8f342abb228dddc4040306fb37b2f7bbdeed9af519ea3268e538b0e94259dedd97a20e96713cbbd09f735de42aae27b8e273f9d9ef57035911fac399e779e7a918c8e4796dd9b706ab240ce47738a6ad9c4d5d81698ae1a4eddc28e519893ef6d66079a840b83cdcc138628621938c16cda08b5eaa93f2b71495a15a904df96a91931ba5d29e5b4961e68552a4605f14bb2b355b2c87b02f4223684b343ab0a1284dc31e34a65f6d8153235f3b5af614880a37bde57d73667acdfcd28f2deccb08296264918b5890b991e12e464c3f090e078cd51fa72a7c235b7e571122392c1de4ee3f1e6c99fea365c7d4ee8d3dd23b7377b6befbef7a9ae45de09b7f89b1a46fb2755902d4f6d69b0e6f6a90ea4db30b8a8452e07941ff1d85de3d619fbf47696dd804bcfe94bae32819f5885408d8cc55affcd67acf26ac036a510f642d75d8ddd7d2937b9d4942394c5e8e75424539bab8d507a5edf3f42d5b9d866f1f0bca38b942c9592d524f7cef5d7e8d95238b7bc840742b312ed90cb28ce404e09834e069e2913440d2fe5def83f704e095c94f1d46413cc00b32c98e6c5a91d6e2a3045ca1c48516e3e1e76e17ec0ff0460db880451fc4a1b72f760ae1a106b89125bd5c49dc92a83ba817f5e20aad81ce5d295ba46fd82b35e182568f9a9396b5d43394977ae28aacb99e9bb723760ee7a5d6b82059860127f8b7ac9f7bcd2b0fad9f27962571be7d609473b77106698ba3a24900bd5b13444ec33240c283736f01ebb7e3c559f8ffa553b3c56d7fa364838f2fc1d2ba07d94ca75f77c23876329a2ffbf296b9fccb938592fa757c284c0378cd9556c071d67515ec38d198bc3f0c1191d2aaef05669286ea380a722bc26a12daf551dabdb02de2c56fb26cdf47d90f561387d54ec845788d7d77e0c1020f0558150fa42578c97ec88a64d61c81abce403eac09d084a7719d8cce5dc2fbd1ab156e51974c91f00d559f05468d5e394c4929c689e6ef7567234aaa507309ed0db260a85fe0635d0558b51015b08a065b0bb6ef9223138b00b0ea84c72135b1ef78c706d38898f3c1699288a8b7b678ce7a125f5f51cc217df58d5cd2ffc812a3b34490fecfaf439109c92dcdd12602c7592e7ad07bd90d21c69cab34a3efd7bcc3fb35af987a728dc46321910a8d04fce622b431225452bb516733624e5fecfd53d7c77f795eccdd3b9278b8571609f60381eacc79315b7d9c56ede41139aa50bd1a4168805a09939a7c2a321e29a924d954bd3ed9a6a9ea16f29c93f90e15234d7e49072accf691dca7dec99d662a87bc1f57e0ea02c7e82a84fdc564ed9b61d6b86c4b427f151626f839dee8ce7586f0e27f5280dc8b0cb0249a85b44dd3eecdcbcc277e30f8e5d1a75b7628754686122a78184605a9b61f30b1864701edb8a067d1f12549cc057cac3c0c00c7474d952b413fb8a3cf5ac1bef8a9438bae71a9974c977ea4096664fee8ebe7e86233772550e3d998e6130b5d261d8b81e7139cc3679944d83c264bb8355508a8a4e94ab32266d7098cc5391d6820a7b80a49a659537ef9d48cb8e845b0bcd944dc657f7170a16d8701e6c3d808fc26d65907ac1a66a4fec8661a3226a9ff2422af952b5127ce656b1227502619ecd416f6f9edfd12e7afdda6c148fc515135b5ea405befb7b5fd528915bda8f7cbeca4a512f2cfbd88f72142208154e70c910a8be7f04ca670377e8cdb3d3dfac6b390a1733cd4da8762856a8fbd6203c30f555eafdf52ac57f5639545f2802ac069c0b6d782ac4c656766b5b68d8658ac62957df7ac1b73ac97fbb8df633efb16a134de474a0cd973adc23df7c71426bfdaf5fb353919896015ab0ca51c23311dc7186dd1d06b1fc687fa86ec2424c01dde8611e40e165bf01bfc6ea1a007873a63237b511a3c9da183aa49c78acb21b7b147fb390f67c2fe4a8d465f1df8a18da76e84e3de96adb0c6a42d2f3a05596637e2b056474f35fdd30ffe987a1b7bef9d363b6c461525139afd172a8d7053ce057fb8dd41d73bba500a56e73dfd5132455cb654949f92e75b086b9f8dcfaeeba9d2ab43bdeac71f5e67c45931fcb63a2fdf57726bcf6112197d6d9ac470e9acb88188b1b027089c71241180eb59d6593db262cf423195383ee83cb61d09fad7fd772eeb781183c44bb39fd9497124e9fcc608e42a630d235d50ee53d8fe43d57c97e6d93a17ab60854f2c7c653a64a21dd193e9922246399bcf017a3df313ceeb3d383a207c2d41a6a4d224ae83a032fbe29f05003b95762af8881855a9110448fdfa0a8055ba153e4da131c10d64289119aea8d46536f4ef54a8064fa1f78bdc240b038063187f651648ff679f95eda621dbd492a9f1b7dc5c2113f2bbd963fda193081f21ae5bb0b97197c83cfa68a1e473ca62c209dd8194e83e4afcaf68c7c8d96a3de31bb12ec633980ff8742507aaa6ae87c08a6bac31af47d51ba9533d79c9d9e44cc19ae72600140fe2ab36dc170fefc3a40cb8ee230a151a82402d9ddaf8f6176008859df59afe9511aad6b87faea2a32a3ce4ccbc6b9214024d962d2938daf51d373f6e253c3d2261c94a22e96cd28154701fa68518431d1879e587ae2027adac3f20ee5245b71ba46e6d382d3f01902f02ea090e0d552f8d1ef4661c0ce1a9427d361d23b96dc2fcdf6e120fe15dfe4b3b081f726376502516e42a7e0601bb0197f81bdf26bdbc55e93543f45af8a4e8962b187d0243a5360f5b6da327f2940180039e795cf4e80ead99a4c567fc12bf1db3c24fe91986370017bf603e8817944b125f05890bf8053593281c10228760f00512ffedc97d7a7f783821fefe2d90873ef52968a0f85135004906cfd00847e2eff35a36dac7234f1182c3205e5cad92e74066ca685e65b54ab761b4d610ec08ad753407e92725d9588c1b2cba4c6cc64dd6e899c73e85e8e8bf2fc2fd126388816747a90e552fe62f420fbe7928d2eda93357ab0da830051edc5d792729b236e89c1d8a4c5bb8bb951c0a9e56492e318b21fee6b5f1e102d769d43cbdd09ec77d864b0dc1ef4bfc27892cf02f42490e96b4b27ec40d6ef457b97a8a580509e9971a1df84b59bc300cf7b446dff6f3a81f9bc104dd961790fe2fc47f9d1481bd9404cc0fd8623002fea80d81f03ca62b02a62e46409a87ad71f87a42b8931110f113fb7e23fb6b19313feff625dd20c32c54ad66660c78ed5f3f7d66ae9949d32a9a64dec9b8f053a3661decc68b9f610c119946c7f108507571fd9f3df23f74c7c90d29d0e0036c61cf765c3baa5b8056e7227dde0af734d3f4ab7c1e00e3c46aa5f850730ef923b90700312ac1e0b54aa0e8833ec612c3eae5abbf542f836ec0af37e0445353d3185dcefa50416022a388f6d399354a7f8b5fbd16fc4574eacbd8b98a9e2988d0c84090e7ea14cf735510deb9a330de1ae78b77b3ddec539ea79a36e5052631784d6028b36beca1b1925198cd433f83a692db69ff58f6a80d0cc5ea3486c3915d48d23e28682be879a9dd067e4c280f3bb6c5b2390f6ea996ab2479ee63647655034f1306d3d2e487b32bf5ab48a2d03fc01d7973769dd5c2a6cfd62ab35b7602964a1f3006f3a69478ca68bebc309634917ae03682493dad02115c1a90487cdafd93701716220caf731baaf4312113fff720efd62b57a621be8ec0fd6a3da97b88d76d0072409222f56a47af1400bb45eb772f898f6be0da444d3310fbaefc65dcd26e3ec99ad1858f03f7f8c3b4964a90b1acc47bdd45d610fcbf64fed1d2fb5037a61958ddb0b05c91c40031d8b911ba1516e97b4bb893e1eda4bd3a8c4d709d76cbe2e07e95d1742b57d164fa5a997fea9ba5e6653e3d2043030760651f2fba1396f6e58941c91b5602c42c3fd71a2fd36a7da21bac72409b58143117942b4be4ab55f60a94251e81d056b2fa6117b3402d25bdd57ab30e3b7785c1eb4a80a37fbe5575c8e5ba8dbce3d4d14de538f17ae09dba4e6c54c7219ccc32d3c84c526eebb429ea2b886101477f60cdd7eeb452e8bbeec4471723b0bbe955ee8649df6ab7bbd214204fc0bf2775ec3deabea20ec4fcf111039fcec224159f3240735746fb0608dc0bc93fb9e49363ddb82fb8456242c9b012a04d76b348bae85b4f18139873a4e45b72e231a1a37101943f077926ff3fe8155260e3b50e8715473e3cc99b6f07319c18278f13ef0948a41a8b84d207c358584514f4b80f14161a5c39d37a59f1bc10f383fad77c075faae37df2ac6403efb0a52e5f927291db171de7d124079b5cc106d98bc19bcf484b5b8e33d57f5d7015a7639efdeaf53c73e6283bc7d07c3ab986bd93ce5cf943f853e144f0b27f5ea2617b91e8de54f3c736d4a99d60498ebcb50ebb04ffb0d619e38872737f10997657183cfa9c822f6a11053308cf86354e55e88ed66b8861e184f0f85d07d2e1dbc1dd5c8880a6edeb523ecfa070c379bb9a2bd6b540b93372a42c030d4956e31c21959eedbba64860ac7a35996e113d64e705afa0080eefa3ad2a3610a20c56be5cd14121131be5498471b52a94fd8d465e17611599e04f4632c5af8c678a5f196502ff32ca247e649409fcc82813de4fc699ea3e19cd147e329249fc653493f8c97826f197914ce32fa399767f190f26b8c6cd308926e608430f6f838996b25cbf2164d8de246caa260cd9275b659668ce1c12a7715385a2accb62c24e03eb2a20386ae96da4905c89b8d8d067ec0d20d9a79066ee9660646cff58ae51b54875cc7bd08dfe0487123cfa9ec7278a9df77cad36d69d52d3e746569669eb49a193a687a810d1ba19c737ca900541732f1ddf28fd175bbff946c80b84b921631a93183a6b6ab0fe854c383a15bd4622b151eb5871c63969936ee460e92ec4360f5179a0ca90b302a4537953c6b2401bb1f3736a6bfc4952c3e14b156c10e5091695cbf3fb71c1ef1be6a54a450cbe97c8df4a467a09b529c6dab49790981236891017007add3690ec2199f4ff19cd2bfdb7baedde1e61245faccd5ae9d14a5c4ac088b6e4a947284c7919b8554e2eb7401992611cdd58384a434ce157478e8eae4c933fd25276c3e24a3bd3e04d9f41584ae64e32d4eaa4645410bd174fefad4e28e8d4b5d24304987e276d5adbefbb9f503c994b00f5495684c6c037e8a303615153f224a382360574698c839da777f1c0293cf0e694f2d8abcf85043960eb7c2d76a84e7c34163cc32fcdc9b23fbb9e7a2ec4e7ab87ede0673f388813e55a6e46ee1fd4336cee402da66d4be95255288e011ba5eca115aef09573ca516385a711fa8fb223b402b57b254a1a75c7ccc18fa0d6ed2f13cf239ca1425c24914ed918e8cc64ce053aee6d8bc6800ca0ec18c89fa41806c3c2c7c777369ffed3e5163f3258636c4dfb69b6e90a676c62a3b068a9e08c9162171d4ae8c834d4b2116441b1c3341e8dea658975f6c1d3633853a496a39b9cda9e32df3c844013be4b76c440940fa6cd3cad1b535b788acf2eb9bb3198e0836e7e87c7ce5275eae024b34e37e6cb05fedd01cd271c6be0e437e8c3dac85e4170e778bfd6ea076bd386fe410e621c64b5228b4bccf76122629a3415fbacc35bb28fd18affe7b0aa258ec66105a1f1300211022419e0bbe81e8d84235207baceef4c4803aa56fcd9afc4a825297eca79d494bd62461b711528748f64360969f5d4051303ea32c8fe4c9246768b5592d781e71a1de03686a2a1c376e60a1ab660ae7fba6b1c3a18de2c52f85f95e9edcb489a785c9e7742681d466e4052d14c185c454269d970055dd73c79860bcaabea79750f07faed190d938ae2bc67296730a2fd101e1c3be2c968fe15ca04cee1b4b32877f5c78c7088a673b6d7df928d6e02856b90a7750d5a8a2e7c9388336dfe045a41a1355425a566fac6c0083b58238c85f8a6a4ff6f3b1e347793488340125a63d89080ada42a71310a9a9523c0d859df12f1d7fc133e436700b65f7f860530415145b1c61759518b8a2784cc7bf12650a1f2f18423fb900563b6a6f74fa41db385ff6740836410b84c6cf0fa991295aaf50a4da34988bd439a31a3d87f8d12baebb45d30ae4cfbf7210aab6e5ea133e9b6676dc6d8190878f042cb9838d350397b1450231ec279be4d980e2c97393b8c998ba6c9481bf3bdf5803ba681f0e5ff23cb68691ea22f72ef98f900fba1594f68d035b71328f8910a12936566c34960a30efeb0eb61c2fdd9ffd70cba3072fd0afb7aaddb3a9de15da5428241ce3d597aa93dce4f6a6bd77c3537000593362a7c1a2a7e37f2f0fa39c95bbdc6949fc18969020061274b10b33b8232cbe0311665496e1d24a1b44c22e6ff947a347a3221e2f17f94006f4ce276c22cf4aa02cbf04e0bcb010b841231130e4340f7de01b7e667dfd67a6d201e17d741edd204611d9ce0ef132700d895f4e698693abebddaa7732adc60fc39206b02f791b30de8956680a84522a855bb597173ac096f2d733a519d5ccf6180b05fe3a6c20037f2f74b5a99a611eef72dbdea15cbde0a4873df888b0ae78e2b9e55a228a248a150b6a9cf19d1e3b14d0104d2ddea10c1fe6aaee32ab86ff74fa8e5587c4b2f29d10817cf54c7c4f87a824321b337179a299d2db843263068845749753b1c4f27c94bbe552c4c5b580f6cfdeae2c474c164d06e6aec631bdd02a9923bd97356899317743ca00590202e285334f943f9398a92d7770fedfaa17cda648e23b879be3c9893fe05790938b340f43557cb449303b9c4bd283139b5061d922004b06557899dc776d7a0c3e0db90c88a7be575fc814d63051c125a2d4ad14782a39a8b58bca582b070a7292bcfdb804b327cc1e5bc86642b9d2f5234bd8cd3040845a40837494cbea15a4ada3c507e885cb2a726ec5b5815052705f5bd29d5d82891b1423d4cdf0509058bc2eb064a6a639594597fb6f74d49a6832d3c74526aeeea5f4008eb28bb333e15c305e672448c1410028bf2f9b2e0dfa2cde2bdbe055a74cd55a468dfa70d7a192b6ce493b29172fbd0e2725695921576addb0c0bb0a108e39ef82e40c2b5e1f754ce68d0b131adbc3f729becdc51b46f596e25e31f7960639596b19b6f2a9088fe3cb150c8259ae8dd350d22ed79af31f9c50bc979bbe96dea8814521b61d496c612bd5a5d6b05388654c6e6c61524f193465a6d5efa06e05f4e26dd3e213fa7415555743d102aa6d0532e4be7256926422a2e10f7e2445d24ca87dcef79f761d8d5a49c75dacca8b8ddcdba9c57d7fa15770668b48da95d69c50d376607983630841947a71ddd086f42365bfd853a60d2a42e6c55638156cce1dc701382165154602b5e8c39ae754ce328f85b61f32aac1d2f6258733c00ba6b3edb733183499f22af5454441903cecc4494ee788231804ae25dfd1cc3f281ae64562cf7bdd44808e3563b237212a0ef8a5ea221a6ed19139f0d7eb311a09c523f5d34039e5f90de0c7c3219280bae79c4086f25a802ded46d69059108ff62d1a78c11d5f93df8c76c7414606ebf8c95da4eab7bb2b720b5a9ee3767a7dc56faef518c809ac6621412116d490c550a4bf721d225c3595bab72e248069412722c08a838fa6fb090ecef12386e04f313b91ac6a38475525936d9debbd337552d2be74b2ba87c37cbb4e6d28578bb1559ded291d5c66b0a076b2508a875232e20ea75e873dae737668c040a39c8d215a260c997cad058e1bd42fc631fe453eb8905b0dea737c4a13512e616385fc5d219ed09f06f165008dce1f6ed9bfa75004990350b24dacb0cbe451a14bae9ff07005231f8258dcbaa6f768b0e62008d2e13b8839079de1ed6b9000a8e0c7800dbd2871e3ac6b590fef0d5b17af461676704b41f878f7e850b89fd1f1f6c0f85ed40652d896321547ea8dbecdd264e76ea3abdacd4fd7e01923ccbf669f18205941d03360c0acae92330470c0164491a26c2153b35d5fd74179928995889fcd5d08373ebd4efebe2889047d6f7e1741243c5123dda63e5fdb6e885b874991d1c8929a273f09cd21f5164d25b1f0fe20c784e7ce29797e90b437b34289a8e85cc78e423f4048fa94b000e2b63d678983bf68a0cac7ab257f54a80cc3edaa959ea85873f93c2e11c98bf944ee66983387764a7cfc40e345f42d3109b5deca45f7b1dcdbf48d3b02b7a649a053b430729a3c8426fc8d3ab193367c4265913f9557ab0f9e049cb3b930774cf331ab7b17a6d3eb44d43629b44d02d8682727f441132bd199062194941fde2f1b37b663889b580e01eb28bb1ac03ea809127f1e4a3589a8ff03b47db7cfe9134203a7f565cd7579bb87441e57f208c17eef58e7a2bad11f4d9a106ee0a6066dc61f8c990d414f9a7c2ef1a91ab90c835ee2bdf77a4eb3728b52455cb998457f04f9c40af459a391611a88a77b091f6bc27fae83787cf2a25d33b1d98f69a9b08167d930632076eca61287172076d484003cc8f14a43812da5e63b0700af3757a64378402fd14ae6c5a1e6da20baca4b046418593b5c694a5b764a3639e17204f666da53a2c0e770b80677432f4e81d92801806192bbd224516028c6667d97b14df5d6e5a3e07989222fda28951f06bde933f52e61629d443b3bf80f751aa6e105627b219833a927366515fa78ca074f3b99f4b2dc20e1c94793e580e6f5524d456d253eb510b15c232533783b4f5a881c122457d43a7b7a65768e66e760501a43631a9d5b5d8110448f1c0a3a97a11382789eef8616a451d1433101f9753197d591ac71c528975ab0d3e5d27f72856c122309dae3cfc09cfc114248da35ebc212fc809db0760b513d1aa2d98ca8769414ee4834e9a66ffe90d8929200a3993d77fb5105fb3de7aed70373017906223d44c6bcf0c7072dddd0c34357dbf46b253e72699eb12eaecda7fa0fdb63d59baebaec3d3ae1a4d9ccc43646d8c4a24e2b5d08bcf67611760faaae613d336240ab9175521cf05a3ea2c5db77e71c93fe6e3952c80d300d1efefb9054e610098b9bcd31bff49af046f92deee5102fc63d20f37384e6703f5e5755efc242a295f4a0607c53be896fd80dc0196ea383cd13f792227ae855e3b52dcc2289c75eb7cf46918aba3d2ac433da2dae5b95c99f7b75028b686cc4e41a0226f53d359d885e7d3d719a756f31c25f750f3621595ddfc731d12a31d2571d0430e5e803c96d5d6a12577a4cbc668aca8df9c9ec840fab0f87193f11251ee01faa58605a5cb1cf3a3fe34c091ab1e7bfd04e4466bfd8ee4b00dd500aa786df408e492cfd3d6da50e66a05e7d795a1ae522c8e62531c9c83bf4178bb7e93389cc912d3d36a28ec71cc6b8af8d6d5eac01b1c03210a58ece2328c7086f5b8ebac5970440b46844757a702b34627fcafb12c8a91d42deec9323e8a012f987df27e60422ef15a4dd41e51fa5c7131863c62eb97daf54123c539b209ad41bf09440d571921a747ae75d2056ae288a71246abe0415f8468344beea8789a95d2a4fcffb8ddba078bf589a7985a923d0ceab885a674cf3200f2a6a10e285876aa85c759ea5bb0966d0e55c1c10ad84d4918a304e62d75582d83b34d80bcef2132552b2d5021cb9d10228dd58c7a5ebf2373b47282cfa8a97dee0eac95eda3891725cf66d547c689436ae761719b40c8348ff65aad71ee7155cd5dc477b6d13d4257bd668bbe46195dd44fbbfdcc0f64cb587b54420be90fbc71be8350fb4a8cced069abe85c054247d47a9af80893aa27137e00d3b85585f9982b9f6ed2397ba69d6d2b8295300c599fc0adec3114f6890f7dac00c03d99043e5051cdf3eaba88fbb0473271d4d0524c582ef4816f441b0c52057dd83a6823ef3aa058bed78cd31c0ccf63e3fb24327240388e6f586ee25f194af6f15d3f5a9085a052a0536d630c968b3c251d31324c7a76d7dbb40182a6de4ad787bbb7731f2f06e0ee2d1bc6ebee51c6ed9e6a25932b75360ce14cc4b8bdbaef4d816eb7dbb369c09c0431111322423b74af7ec3c86d4a158edc7bf85b9abbb03e24940b3c46fdbf0fe58bf7e24453098b08be6fd9d18055ed00209127ff9f25f9e3ab987ac0b7d52f1ec07bf3512a424228895bbe346e383de4885a0d4830b056b36310195216e66da8b43bd9a7e5e473c4e880bc9709f4de394fb47b4134d2c388e79d9f6fc6d18e27434783c7005d000e32c910fb4b2616a4374a566871be8fae8508660b161565566b6994ca43ce5ae41df19dda3bbeb9a80e42dd7fa9cace3040afb05178fc284c86c9cef7e691091e0a712bfb0347378bec5fc269d3e193fd1386a60a2ec47770267baab8b1f1f6659fb34c5cae9218b5dd0ad126e63170088b60c7b466fd3525eb4dc2b76a2f0ce09c667a3dc78459ecb4008ee575df98de954f33ae09e2d82f5b3fe6e02d1beddd9535bc781ce66949d1e56f6a490350369e741cb74cb033657b7a24538ff5c75001c9df58735106c55d1ece9e38b6a45b9a33b0a34828a8b96a7a2070bde8fb77aab814527546dfda818dcded48894ec4d9c625ab834e8d66f94d02f70032717ef2428e1df652273413cfd80ae296debb542aeb44509261716203191e56ccb1d0edb12998b2bcceab6df853fa921c1d3ebcc5b33d8a1d96a21f3ff4a5055a1478ebd14c1b60279f219a7a556e52b0b464b997d60b5e5de72cbb34108131dc416c7e0a845a3478287df84b08a62675756221009713a730ae64802da89268c32841650872649840e1259f81103154bd89ca9815361dd793c213620bd276dd300366c63845b8c5f4a642b394a24582d40de5862f7d857a523cab413248b2ca74b3ee0b217a3b6918fc2ed2250a9538031995910453547453fd09cf9e7aa5df2b3a7fd5bdc0a6804196091b2e8db1e4759e14823609ed9c74735167beac451f5a09d167082b2d1622abb62ba3a4c92f7f3b27095e1998c22a31a3e7f0d04913276e8d8ef7b5b5f1046fa37cc69ddc4656d7964c0ea30bb56ee4bc21a34b0caf3b10db40f0f5ed1812e00793777dcdbc53a0dd4e14e9f54f2d90e7d00787a42920e11d51f3993198edb8f2dcf5a6b047b3489d4e2829937e325ad4cf4bb829bcf3127bcbe57723eebdbe25752009745d4bb29655364ebb3f74ae950a690579a97a0c815e2c30ede53ce68a8604505c0e828f7ba775be975febfc09f3eafe750e8091b8039bb1ce347cdb1359aa5f8ab00d10669387fda0628c8e32d1b49bd8606005bc491ada5880fccef3891d6cd12e1f38833c7141623c11aa2dcf43714c48ab14952ed6c77098605d0ce1746ccaa3f959cb2c696e67c1c28155450d940f8f053f3dbf0d68e8c7a6dccdd7cc40c8d3b43f15f561455647f704099f1aacf2d755f01a57184e148ac2a494de6a8e88a5549995b146e7b12a62d211b6a9b82581d70630d0d951ea6c8547d5dc3ee5aaf365553141ced6a64f80bdf029a34924c42e4be189367622eeae4accbc05e5976f549edf0a07e1f8a8590faf8bf70401d1e7a2429f9f32d7a4426fd6a074bf79ae86342a12e43ffa7691b237c0125056d5b2e06a14f890430fe1745f7b807576204888087a6f55606732c4d9d0a608959c1bda07c09e6f2bcbc0b4acc06269e5bb6346b9244689a292362ac7fcc48ded19bfe61a19257b04116e1f3adbd9e862aae615b66c5c60a8c19f12bd4452ed329c40d87a13ebb47472b517e457e8540d4e0a3f2b1b28a79e6cdd8480f3685d3e6561529ca70652892e3e90f94c8187dbe51082d3338f675094e9f0911d8f3083a2abf3dca339afacce713a35fa21025b8ff4b0f474daa2f324e6266de9d0667a4fe880f47c1c906257ef89ad765a625238852504d7b31f831b4778ed5b313b0379406f6e67363664ea80e349801a79e7956e8bac0bf0f081848616813d1a74d12cecb42244d95da0da6c1ff6ebdb088d04fcd6e4d587d2806b5112f703319bee20abfcbe5466d999475f8038dc868ee23541114f93021a28cb3ae095095f1e51f0e641b43efbbfff8eac64c9c98bb8bd727a198ed1c2b192d2bed587e8ede6055363989a03079b477569e602dea2df34d6936c20419769cb3402eba1c296943ed0931d0c4db8d5f784f02f79931762d3e5dc7bf9ef06d52b5aa6588bc1d12c03f9d2b8cf5d4e98602e56fc5267016899e26024b143a8d2a05e9405083bc791a12a80fe4c3b4aa8293b89eda6f3dce04cf38c80acff9f708a163587b27521c64b02082d5d081b00160ad629a7b57bcc42a046be42a7876eb5cb10f54d4f75f45527419938ef5337cab7510e7fc2f2b0b1394dcc697ac7a0efcac30ddf7624bd89e5098b18e27d7d8df42f33a36fa4d0bfeb0bd48164ce5050504d2ba3064e7ad733397790430ff1acef53662e9888f377f9339f0bbaa39eeae51e4871d139f33aaebd37a00b0abd37b1f3769a73bbade0b8ffb5f36f5d09f614154f439842a031d8e45f41c067bcf82f56a71f5e2c77cd0d424388f90dfd0be185801cc12a11506c2df01038529753f5e08d7e43f540faca34d6418e912864b7b09651d6313e18120c5f2a69c2cfc1fa96890602cc2cb7f0b692d66cae6a1029fe4c0ab84becb707d9b85bc49f1c45cdddbf9c0b70fd0768e540067c0cfd15b03f6db72c7bc5191a3fedff65204b6de1b542699fb840f049050c260b6646a7c05fb4ca377a3ffa0bc7743e89e9e480a9c5036bcea8be9d1ae8538de6a6252fed40f9041db00258d6f657b048f1e5171aafc26777c5e30f77476663c3d51f9df072a2c9251e626dae722ee1255804f8b63be2d89623ab6b4d147e3c304835f6e3c2c5f6479c0282605ca62812285b69189e89c39ed23f924d771c501f8a5046d11bc4da3dde6a7fc3831a767c0fb2c7eff375b7f7551a9cbef5ed82b3213d31bdde44868198e6c2076e82ba21dcf7c99e5da1e5e400ad3951c09d07e6b3de4966afb0295dc9b825dd411c3a69b233ffe6454dd00377a4413815b5ca86a5dae74d97d42d4e3ab14479a39b7e87fdf26601cc00b9e08bd72800283eb2467fb6f1f2da847ef288375f0500a571e5a972a71b75159563115dea4b7fbde7c8c0360f7d1a0308934f09979661102592113e51b78d2d233c7b9dac16b030c6b403e6a51ce23f130d3764d734c426f3a5dedf41d4f33f0c354828b49d99fde94437998259d22c11a4137180c373b8e8ec99b5b49165d282babd074238492a35ad54120b65a50f9a79cb0a943e38b996bb9f5cb0cfa839189d78cf694caf31075d27fc5bfb06b5bfe73bc55765ec898affd2c7d52d069d0e3ad359e44aaba9eaf602ce33d4bbebe2b775d5057017ed588f50b16ba547edd48364040fb0f74edfe3b8e3d95544721691978c81142a60cf32034551d2c73ddf5c52f4c25e55ff9968fb75ab43c0501f087e1ed01a6b5c4e803aef2110135f3a61ed6191b6ce5e8b482281b076066c4484882d5611b58d99d0a829ca486f405224e2119100be27a2906767776c312161c60c0f84d01c2363ad09c1726896fcdcbc29694c91b5494dce68b0b00341959fba57dca6051ad691e44df6a4cb27e079a7a68cfc2ca86b28750755704118aa6a20561b20389d983e57582513cdb765312315974cec211de61a6220905374205156978391d88b206b91388ea38120c040835bcdc2f1679d072e5f1d3d727da9ec84fb16ea77da06368d1c47eedd8baa41f2282881443ce8e6ba178e225e4a97c66341f5090276a1316da5985754a9a791b58e84518248d68681737bfb843d56bd9508cb2d5bdc1683f64b6e98ba13038d3aaeb179c267404ef9c5ed4016c00023e133d452e0e167868612a8cc84f802e65ee76d6611595fe1f2229e9f87220d1d915face1882ef69bcb5c2a24e0f9e6c156b2330223e0dcfc465bf74a993ff307d930c8b9a42843a08602a1a80672391f941b13aaaabb9b729d61742067fdaf9d812f4731fd87950ac77dc347f4139c546f80ee4553e73d69e9bc9736bd77d2a4fb5eda74df499fee7b69d27f2f6dfaefa50d42100240f779aa8c9322b7083f2321cfa3a38497ff336c1d019d9379e9717992f97b7c7ecccee7289cf1c7adf98ecc2e747edf8d0a5838daefdacbb09ed51930b4748e73aa5584edfbc8c36a90736a65d2ad2beb2cfef5ae38d221e6fb028e1fc497f2200ca30ea0ec1f28d9b708f434412860c2d0476ab71c06d6d29b0b640119546d0d6c2a9c6e09177f416dda348bf5f391518abed3ee08f5106f093a88ca6ffc814f08499f67154b04fcf400d62060b3fba7dc73487f4346f94da4c9b18a1c224af0c82c84fa9007430495ce2a1975515f0f4e32086238185f8883de29eae0cbec12a8300012e5d03fe7e11c38247c3b8a4323ca87dab67f942fd7474de4061be76fd4c8f47b383e3b165686a108d53dd823022e0567e6b405f4c0e7f97298869992c5a5afb0aaf441f78f95a898078181d0007f1d04fcfe252d96b06d594e73d28cd9554d52758f4a9627c3f64594e4afee406791fa2f6d94f608ba5b3aa53caff1332a04705a83b448e143e443f55774303f348a0ab069c0561ca3989f913bfc463431ca89f3f68561fb880a83e80fe30844774c195c039d8123de6631923d5b3d1de1ba07817cbe6cc20bebc827fad3a26e7f26aaaa9b15f9442fbc2fb5d07a59219a7cf99a1a86ceaa2a1b305e5d7a7ce4eb1739bf30ded11f28083de711991a6ec3277ddf672c4e9054346c0f8516702bdcc18da2d3b888c87f89871b27203bd2e216de3d7475e821dc42a1906861059884dcd11b5ad03c5270b53f277de4bd0b2f68702e01fdf94fef6cf746a8501c89a22a78371a5482490056a8d0d895300df8d965ee6e299a5d86b0262ad05b80467c41fbcfb9f68caf2656d49951509bfaccc8a520162ee69c009c95f951e2259d39089764a0c3c284ce63560dd4dc66b08cf36fbc5e664953bf783710f92f8761df768d79c89fc8a8b39ede631b39848cb4d0609a263fa4db47862a45947d2a8bd6f1eba7794ff4fc1d8c9589e17906ab036f3da5e74601f797041a4883f40cbd0878b492b9fedb1d7b26bb0e3d5b3563352868e1037d611a5d919a82c5f8f4cb096909ae62770b8fc710c8b84e1982b582fd4ddf15e4fd3cc8acf5a16c3b2d0afe5b101e6981481fe399de6037168ea7c45f5a2cf20876b16ab3723fc89cef8de58e90882361a1f433368fe9b6b42e9ee5be35b8a411804ca7b04a45d58973a1ac9cad03bc692a030a16b2f2bb392f9dc658c8100c1485c5f2b6079a8d6694ab4c41ea25f9fd1b45763f192a261ee53170c1be07dbb9ec820f42be143608676640101b9e7d81739248fb0efcbe2ff65fe69f176c6f752a41285924371854e67e627c94a90d86be0174bfadc507e83bb24ee008a028f0c3d8c728fe6f776cd81c0b261daca665920a7086b7e690774f9290fe8477c30d30fd3ffceb6a94fb39d15208c0443d81488b801b53595c5469a530fd5048f0127ccbf2ba52e31df4d10c62a9825825f5645ffb8ce483228c5078c6ab81a327e4165e27d5f24b704d5111364f5d8b9929b0207f031f49d113384ba23cb612817eba7052c257873705e28b9087f07173c9557bd230ca83c7c3618daec31fde0dd3791c66c36a4afc609cc2769bb4c5898ca8244780342d9f754777020945dbe707d28289fe35ec9ab25c88cefeb77ab9caada6a1da715c34a931b86c526371c1a4c6e052f0f9d61e5b2501273feaf673cdf5741775c66af34d787f7a3724726997e574d0c6bbfd348f3d4018e611f2ac73ecf97d03621a695565a2715ecf01ec22abacac76368cb433ec151ddfd660c4967df0e7449af5e99c17c7e1e492c508ba86cda0e4c58820d1c0d803194ab720a2cfe73a35aed26ac2eec00812c84da9a7a4b847f27d69d939e2b36475b0efd5fbaea095869e217893d54e8c7be52c9796cb462290be432fc1addb138166304d825fa1e8a2d6b2933a8152835ef5d7af580449fe99103c884f71ca97b0d556a8e9fecfd9fdf85ad3d9e566f082f947d337095f087c301404c0fb514dee398f9a543cb9274ec49292f0f13cda1f0aef7119edd7750ba109e3a00075bd44160a6931fffae69682c0c9dc3c5cc27c47e7f6b1d58153bd032933f3f569c6764f5addda9958e6be3ea2458b4240ac5323124c5c2d6af3a5cb3b75f793a225c386747a6dc697e9998b8250ed585b1b92c80fa0f77a995fcfd74ebfcd7ce343ed29ce687879824b6ca01362505fa8b9b7fa72c514b641fbf1a9bd55880d52f8cdd11ad5405241b09230f1a4a9ee506cb75fcb148f781b8a03bad4dab5437a4a401def03a60715053218ab92702e5b75983f9420d13b420ec4acf0c43f3dc8d11642c1bc8b45a3387d93a52a882bc3025a5cd21cb85cbbc841e634c80a652ff35d3c3a6f88ab937c97a979750127171914350f28a368023c96b39cf6c63909965c12f787d5d835c0560531c87df4a76a6b2d15cde0a052a2a9b006c2e8c8887b5eff825afe66af1520d803d7a63b0ab66bbdb2f0ab0c3859a56d129c71a9ff6a4bf26e739009f68119a6e21916d8c888875bf96c5f02b6c75e175a3155dc8b9691908b39914a8dcb9aff1e960afc551b4fb5c78e872c0335e5543836ce101554958f9166c757275c2a948778ccd3cef5e60cd9f1482410d3ded02a00b662c202af9a1be29f8e3fe2689b7fc529abadd3837b5e1fa57df8f99f47786fe33e8d0492587164623591e05b27451bd8c39d37b3b0c6dfada364caa18832c3c83bc83047e9fe460e8d1becdc8f40ffd4a7d8117df3bcf449abaa039f2b2a78765404bc5324adc15845ce28b27a0e0551c0c59c282c1a98640ecc3c442dcbedfdef973af4abd3f3ad7f26abcb606de8c33fe956e80a3111b02c4996f04088bb7e784b8849a64393d5c43a5bcfe63a5598b332a9bce0bcf436349942b0209dd405968f482ce5cd07a126c7ce1ef4da3a838ea3b8382e0a4bd72059d3fd60504aa8b0aeee68c7ace4ae8ad58fed60c76139ae35b7d0514a57c26af925e932d1b0a89f34a4b2a17c33c8642254951d3e53f81c6b2888cda24cd7d937715d0bb8fccc31eeee3d32d93d7d22d9965b635679e6219e8bda8a92c8da0fce46a9bff2e648c2c44b17d5a79c63d774efc526f91883a78a9511b9ebbf4bbae78f65b60e9db73b1f4127a7a611e804051b20cc1f961775cba1b0fa4eb5aef33878c864e20b35320a3440ae43214e31f6e1b653c8c9ac99a40c1b5d9a9e6219cba5c85d83e2677da0c13cc1b30d8f232eea3950ae34b07a11d198298ef645e7fcc0baa1a3d06342eb046d5332995607c05f20f283a620abd8d42b001d25b0117f4edc26c0aee7880d61c0c90609c99a51eadcec8ea20fa27226e6dc13f5da3057d6b5380a3150a84714e4a01142d1a5ba87fb81b495983c2fb8325e11217e45deb0a97bdd8da8d846759ce8f57c557c1d3a220f51847685f46ada96a899c4f8797316cb697dedd56d610658b5ccdb2faf9ab7ab0092e5044242c759b527001714a5a1e85dac3d2aeea0054579492766a8f5c58ac62eb3b9e9a2cbec91769752cc6a82f8ddc7e9ee97049f719193bee48bf11de2cc78758c01f27d035188a01979a3155768a26510ac9a1b3e6dd17791cf50212b2c0c078dc2de2ba23541049ab8f9c17d9806984003eebd355a1cd8d4b79c93227a250304b9799c87da37afeb077e8bdc123a2dcda733ae0fd7c01b3a7bbf3641d0cb23f1cb78ecfa639d52355f53accb284a9ef98ccf50bdefe0746b2d8d0736e2e7a77336e859cf2ed72b0342ad02069ae6254a7693e0d7c5655e8c79026c6d70d6068866b695843e70891fe7c87183f2f42fedac3ae24a2ff1b63a72ac4f77c7d53889d56627249b49570b1a67a6d4e89e503b2ce1f8eef53221421e5692462dcae7c40e576ca1d949f57ed6bb021ee5487de2ea042bfe4d56fe15a0c405fec90559d9c69039d2f4e4123aa3cff062f2e3811c0854be4d2ea1da41159dac58ceaf00ae929259c8dc4a5c35cabeea287795b5d318be361e70aa4c05bf1618e189aba5696825d3096f8e22a6c51c5455d2ea26953fef614c4ef655b02548b8788eb628ebaedb40c4562053eb89d8d7270a94a4191b123a1b2bfecd605e23a2355471067ebe876f1c3e1020b5e60189c52434428e866902f952c2269024545d210c9b9a50a3b41175148b36dc926a610ae9f827822a9562baa40829287580041f69a22898697f0ac3193b20951ef40d47cab50f0b8389c6bb8ccc90f67330371283bfeec4b7f391d9b9bf7f4ecb39c453e41b63d23ba0ee73a1a71f6b7fbc6de2271a656f0f61b2f671efbc36bdf3d86438e6b997ed3a2ceccbf65a1cd73b6f4def3c3557635e04906589af52af5ffd2b1b24fe5d3cc2576278177c626f3a304def3c343c333c32bdf3c6f4ce13d33b2f4cef307c81be7aef9d07a601cf4bbf6ad1260ba952bd52ef11f85a58913f7de7686982c132d8a7efbcc76a6ac16090b4730f24493b27e582783007f9152c7dfe89ffb6cb4ad8f816fcb75d56a29165efbc2e5cba7cdb7638eedbc6727b4d987b6399bbe26fb22773d78f7b32d993f9c2ce7af795b9c3ba3ae90bab407e057defa546bd77dcae6fe32ba70723141d4c10e1caf7e5f4ded65724ddb7284deff21ffadcbfc003d852406dc1e87365b46041ca3491a7e56a812cbdf3b0f4ce23e04aef9d2e8e0d87beaccc8dc59a263fd10efeff2258cc8dffcf65f0cf5f244917c7fe9f81760e04fe3f1fef617e67b4c21b008d57179d0dc4e9d20b27817801c92fbccb0410f20bef3a7e3ae0110602cb069b5ab4206f63dc004a087ffba2031471fd85decec10a9f2af7deedda814fddea3db76ba2b1068a09717fd68328a7424ffa52b2f4a19c7c281a3b87f3a1c2d287969d7c331b7be13b83bd97f27148db6ba7bde63353f9cc2cbde833cf7ca6974f05a4b236dea49dd376384dfa5430e95d056abc8db8cfbd19a4124d99f324f8caae6ec6f31ae37d3a9ecd6bfbe2d4c9afd95e4323edb93208ccc9ffdf82e46c93704c8e997d618edb353df7edbcd068d7a646a348e32ec9f2be7d4ce2f2aff33829d75ef6f690c4bd9d2dccfdf0df441bf6a48d07ff179c1f7ab2cc674fe61f17d2fefec42f2cfeb99aa689a4cfe582c11ca45c7b9cc6e97a2c80da8e23cb4fdff9895c2ef8e1daf6710d3bb6fbb5dccf8cad2c2c0c381c7ebbb0b0b0b0229e432e07f9855f24983d47e2bf8e9eab6d1b27f131b2946b9bc6653caf691fffd926f1e2ff74a55c90ceb6cfc060bb4ebe6d3bb24623f3dacbb9bd3696db6b3ef7666d4732f9e7344c0bedbb0d670017b3bb3f5dec6f3832f9e33484b94cdbc9b58781f2c78d62b2ffc2311bc650f65fe881f61c50163bf3b72f02e37a0c5530c8abd23b8f4aefbc29bdf3a4f4ce8bd23b4f80de79507ae73de99de7a4775e93de794c7ae72de99da7a4775e92de79487ae71de99d67a4775e91de79447ae70de99d27a4775e90de79407ae7fde89de7a377deb177de5def3cbbde7975bdf38cbdf3f2de7978efbcbb775e8fde79c5de7976efbcfa80de051187bd1be2d1f1e83d6d0c6e8d0d079a1bdb191954a3b106fcc1187b7bfba901cddcc6e2da68006d8ca905c960dc7b9d07b597b383debb10bf4bdf968fdebb10f73ef732d9af6a78f9217f099fac69922e8efdb82ebf10ae9c6d92cdc741142edfdeae6fe2c0a653e94f7c1c6efa8d830bdf864e47f8ebff9914c6f45790fc7f1e2b71bc48d3c322d1078372916884c9a3fd4696c1229ddbf81037922bbc52902b4814640ab28b6c4116e91c98ffe10aaf229d77c5431f035b90c7fc0f55a820ff6dd773f4578e1bef60304896453a87c92faf229d779160c7e1ed8734b136de60796ddf7330487abcb6e99ab68b744efaa1cfe1603048deb46d9328d2f94dd791207f6e2c12ed38181c23ff9f8143ff87ffcfc0ffe7229d8b89fdff02edff19f8ff8bce6bb5e3accbb50ddf79a2ddafb338f4eec31285d5c78735a563054d1f96cfa7a89772413240b9b6619fefacfb48b85e2a9bacd7c7d70bd27ba7d17dbd2e36123f7eba2fcc31543ac23e0c76fa188629b8dd5ff36128da3cc89a43f76150eb63f22f1669bab7da26b3fb6b66767f4d96bf2c8fd9fdb50bbe0be64ff35980e4b3c0c4820d9f85e21fd2423bd257c18e0d93c7d86eadc29418dd57c1ed1d3f41e7695f859e8f42250a6f7a698646d6f92830e925597b1b9d42d70451bd9fe8be097d680614e86ed2f2271269f21824713b96ff5d2c170ce69069b23ce23e8d2cfd11a63d59d3385d77f78dc4201ec4836489935ef2ff3ae6746d2412edb88b94ff171de368b54d6667a7d9361cd1be5fe0749a0d8796db6bb9bd66d3c31f8ee28def0111df8333df030e3e0711f40e0412e33b21ee853e072a7a89b7a9b99d91f5585effb7d886af81a28ee7746dfb1a80e9be06c6de4bf9ceab9564ee8b5e2e18cc01d3778c7f799e6db02faf387a3adb34cdb3cb169691e58fe9dcaef33f37a4fd7c1be7e3d0e7432391c6c9234cfe3f93b29dcfb85a990d72aea6dbf29826fafa28e37039eded86b60d93ff98d3607ec5afed7b5ed37565ed9ab4b3ef3912271ae3c832182483746cc17fd77ee88d3d6cbbdcb6e30f93b3fd87434fc4c9ffc1ee5f67df9e288ceb0fc305bd3d3cfaa2ff45bb3988b7a995d9206b5a76933d19064c2b7cdc19dce8bd0f7b4f4e4b5858fcebc2c2e41c0716f17fdbf12ab90f5755b8404f2f8376bf0e92175cb0660381e56dcf643048fa32922e8ef9db38e66f63eef1397be8c9affcb685786ed7244890376d9cfbb787c170b4b6b1e37098db459278db335adb586d178dc0dac7e53cfc784e7f1af7df8ebc83b9275bb420833869c465daaef3313d670f617b88e743da08df60b8271a71dc935ff2dc1f9634c8d2d7740dbb4d1eda76366d8793df2ecfe9fbdfbefe75f77f6bc371fc540f4f7ba62ee89d686a9102a6ec7459ae6db21e5d5c7aef6bef9912f6de47c8a6ce4c7595f264249276f699fc7123b0949e522e294fa4b490b2ebb51dfb7fe733d46aff89248ae3f00f6d1cc571e849b520d57bef41764581c151957a2fff9c1f5566d4dba815bdc43df9f17b0eecd7f44cfedb5623cb6fece18b3679ccf37f17bf106e54842e8a53efbd1465a78bbad17be915bceda0f1f6314ecba4db9ff36dbfb99a163521949dde7b290f6d12f7c23b14925e8602001427b0ef893ece69bb2e82cad27b897f634dd79fcced1a545b297f589ec0be8be4d8047d7a9f60ca9c6f9be04f80e153a6decbb99a3edef9bf73fcd70d3f4eac1bda5ff2ff79ed6f6f9c23f3db0b63e35bfee77cf1fba0dfc2c2e0fe9c2f7e22d23fe1882b8fc3201e1686078df6f138fcf4dc1fe272fd49af2ef91bc9e3ff1afa981692352dcce39a8d2c6b1f1b63d80b27671b1ffa1c970bce6cf5bff36ac11c353d93386d670fc9e370e889b73ddff4f741e3df68db73e418490f8b44facf793bf7c598aebbe7ec3c497a1df322f183d576dd25d7386df6eb68fc36e246df368487f4ed6fbb48fc70b2bdf6e77c9bbdf687b02ffaef96db6b68f6fd7d1cb922d2af7080cde9bde777bfaefb77b1a6e73e2cd7ffeecb35da9ff36d62622cd66ea30d0be7e85f038fb2ffb798d8f741bf915f2cd094869dd768e4976b2cfa2fcc713ffc3ee8b7a2ff67df07fdf6e77c9ba64dbdcb68b55d567ee337f6b87f3ecb7f6ecec395c7dad343dbbe71213098e335ede73c89e3bfbe7f1d69c465b2befd1fda7691946d61fec9bbfcfba071609d5d04de79626edb3710b87696e3347eff36313816f9c781ffdf391c1696ffb7fbd7766cc72f63669bd9ee5f34bec97f66c361e31b7efc327ceecd8a33db6dbfa0b36d32fcfe3fb76bf2ab26dbc8d22893f2c76ffbbebf3dac3f9168c7fffec287b49fc9db26f3182d3716bf7cac3d59db388fb9f20b83c11c0dff745efb2049290925b8dee5747c51cad04b2304164020a9cbe920659acca1a3542bb341f28410f4187ef224f1de17e8bdd3f59ed054a78b63fe368e95fe367a5298d376b78de33ffe3589d6364696f8a781b93dc4736f935fc7a1bf8d633299db43b277de5c4a8c6ddc9f1e16ff8bfceeafe16d3464da4cae6db232dc98e3f6196ecc7dfe6b34f9cff9ba3ffc6ef97f93693321eecf7033f9fef54f1b0ec764ffcf7e4cd7ddffedff17c7fbd7d1c36f26dfdeceeeafa9f9b43f2cd237dcf1fe75768cd3663ef766b2ff67443bc78d65325a9118dba0bb3df1feb98fc3e934fccb76193e9cf39f38f7df6a1af8a7cde4daa6fd3f8b7ba8f5209ae5b84fab6dda0c4d69d870f2d10f3f7efc3264fabe7f1d5b9118dbc071b522f13ecb6be3cf9e6bb4dc1ebed9d96bbde5cd3020b1e9bde7f610a771f9ff201111c6b927e23431ec512ae027edb9a6c9d907a19bef7aefc2de73642abffbbf779e1cf7ce837be7f9de794160efbc1dbdf3e47a3a7ae7e500d33b0f47efdd43ef57617aefc6de6be04d8feb8fe31fd8affe6dcf5f1224489030a1f664c7fca665f2df6c649dd3b71d3996d5084989df6670f2d019e34be08c17060c2a6008d224de8d4e3dafffbfe5212d8c43f5deeb7a6f9115fccfddbfceb651fc394e4793451beeea45299374d19341bad81e920149bcb473f278fb3abccced9abc6d12ffa47118178b63e427da6a6161707676ade8432917cc3f0e215123fbc3571212113b2ec6e208b795786de7b4bf8d635f2fc8f213e97c08d3f86ddbe146bcfef5c76d614cde46fb0659e2c6dcdfbe58f4a46cdf4512050a3b4f7e32b2c4659bbe7fd1b68564f0cfc0da16c6fe93b34d92f597ed3af88d771e24edbc2e8e2c7f5c7f638f8f93be775e1c4aceb6ef7dae771dbd77afde99f4de2115bfcb2f8c7d4c17db43b0346de66a7aaea60dbde9b5fd89366e88482f0db5956386b87a591be78665767fad109a5e162a76bb3f177251168a4013b20393f9899ab42344a413727bb7ebb141957aef7d1018bb416dbd3c7abbfbcbb5f1487e91f69aa054bdf78ed3c761cd2648512f6f9b44c90f0b02d34bd2ebdf36b18b3cfe5a90db8757c8623930d09b404c7a0f142ce582814a3ca76b63e925a37d7d75cd760a520d92e56dcf1eaf7fd1b6b3d3e2eebc1a8db9dabee3ecb5bb46bbbf7cb37dfab6edfe0bdb86b3d7e40fa7b6a7f72e26c622af69bbf889345cfd8576b73d76e7d5f09af6c43f43fe7479e1394d7ed53489fb2e9224c7fc54a27d91f403c64fb1773f6d7dac4faade4bb9f6b92f8ef5c1fb4ce913ecfd08e3deae8ff96f3e957a2f833f98d3645efc71ec716fc7c74e2ff908ff3df3318140a59cf6c49b1c43204befbd8bcc6f7b0c01612f6f3adc8f21b0d57bd016dad1d9f650aebdd9b14dfeff6e93ff9bfce9ecbaef061bdfcaf2ffa627951e3b7ab2f412c76123ae8748a9a72b0fa4daaef1b73c76f24c3143cb53ecbdccd3557b12bf8d716ce78950d3707814e5f5277e3c68cab91acf5defa5fcf198bd93a5fc85b1ff379e08bd97f5a7f3b9b07747d47fd1bb03e9ce9b3b446a3bfbce596ed777bae83b117aefc77ccdcea0f21b719cbe7fd10e13fcdb19f65e8a898979f9dc9b915f5db011c72784858991b80f0b8363011b7138163ef76673ffaed355a7d351d4e9a0a173d74bb9209d333abd39a24ab9e0a05eca05e780e9386cc4e7144bb9e01c177d0e875eca0545c9190446ce5d97d326878cc3a9f738834ab9e0ff731c3071ee781b701a878d78efbc1ae4fdbf0c76ac3d9ed3c6615cd3e4d71d3dcfa5fc3d4eced5f45739577ef26bb6c9634edfad11efbc1a89df79b55f04838d7859fbdb0c0d3f117bd888fffc78ff624ce39eac647056fe9a1ecafecbc55f34e672c1b0b01c479278c7f927bfc8afe39d7d178f76247e1cd2f2c769e4b5a7e7bcb6e3635effda1ed6454f5423cb9bfec21c37e6765df4443238b3793a181c921fbf7f5d5efbdb16da9144728c0c06493bae6d3ab789e4908e6bf238fc74f4b06be865dc9373344c1eedb5af991e23cb1a36e2247e22bffbc273fa480236e224c85f47e743b0fb178d387985882552061b980db63838b2248fb7279ea0bf5e90e55c93388d46fe727bcd5ec3ddec351ab9bd6676db2f7e6dc796db6bf69afc7f1d0de34817d3f9dbff2f727b0d878d6f575f5f59bd77dc68ffdabeef9f71869d9df6736f36b3e54636d9b661d476762de30f614ffbb6ff5f88e1e4d76dcf356dcf35da31c763dc79b5daa6f3ff6779f8e917329a3dd7686e637777f43c1bdff04fb71dc5f09f1fc958106d1cf8ff3ddbb93cb4ed7e7da6ad3493aa77f8cb327acf8cfceff82b183423346366e7edca5850064defbdfcc5632ed7a51d7f9c2c635706c7ed21991b6db29eabe92fd2ce1e7e98cc8d70991ed67b64ecf4deed9c0c935e12c9b8bd31a97a2fbd209563c004c71029c71c61321f1be37e31a94a2fb98b94c5bc29bd6e9c2692b73d8bb9ebbdfcf72ca68bee22c35000cb3fbeed17f2b7f34238f9cb9f4eaee918ff6e68f2777b23937f5ed36af217e27ef876e7bef8dde41cb7d372dc68267f3b5bae7f6052f5de7b17eb3d306f7a2f8362f2d03e836331b3d59087b6104c1127ebc8313067bdfb7c088643ef65f00b27b22f7dba9d3d24eb7db92b3f3dd3b24dfc32f4f79708bd9ca385a46de75e14f55e068377df4b98de7b49d3a9f0f9f0cb622ce25f232c0ceeff7b06dafdda2caf3f31c78d3ce4b19b96bd90bd940b7649d56550972cbd2e5ddc522ed82542ef5c26a17131d4f13baf561eeba137ca741d2dd7f49d57abefbc5a49e7f827e72f991cf16b3ba76fa35de767d23623c37e4d0f49a29de7361959daf7f741d3e46db4e93a2ffc70fee78e9e881bed231a59bed96624e9c9a291ac7fd10ea3c3e9fb36da4732f7a48d93b67cffba6f679f9141f903ff6d8c3f5ed3c14fd63efeb2efef8326511c8743ff6f14a4d13e92331a3982cded87835c1b3b8323dd7e70633f3718e48f8c847ba3a14696f52fda354d64906904090408297fb28518090408e9d585d3e5fff72c7fa25f234bba7fcfa4fc05bf0dc9633d4696c66090f424fe71236ee7e4f1f6775e7f99c6e76a7be8c96090c43ffe85cfb3fd657fe7443232f81634da37c86030480621493131163ef766e4d7dd467e89cdc3ffc682480bdf8a5eedcff9162449923f4892fc43ba48b463bb0e06833f1200d2ce8745a2bffb32e9733c2f713ca76b2369df1f87cf87df4cfeb9afa3f3d87f3334fcfbf8ff7e81cb43fbcc7fb33f34ca5f18bfcdd5748ec35eae7ff1eef7abd170facef1ef76cc699936f6a0e76a1cf1b937731b93d1e8623b0dc76fbad84e93ffbf677cce0f5fccf9e15c7f1ff63de3bf78ccc3c27864240680d47bf7e46d6f0d404688fb2f03c8666706e82a6b9b2e538513962a79ff75345815b7f752c6d7aa70e8e5d0c762773619eed1f44e8509152a2e955e9f924998d3761e381c7ae0afa3735f47df5f06e21e58e2f217c6b91f0e7d59e7a2428e878db8dd9c29bd4fe726a552374323d77a52a6f45e1269123f91d3a48d935fbf8e1e92b95d7f19528a2559a485b81417a7ed35291566dbbe8bf8f1cb080b838b02a94739a03c7eba14645046fb3282c74fe783b51d24f1fccf91391a590ae3db7f9c3cdebea6619af4a4d08e947d6cdf364ee6c54ff7eb86b0c76939a6f1e3a7c34f7c1c27e3645af861728ebced9826dab51d7f72aea68fc3fbcb3959e2f61a7efc32ecb5e39721cb68f2cf3d1ddb383e66aff1467479480bcb8cf2af69c8bf9ea3df72db76b3f36e764d0c0302d7d8d0dedc7e35803f18636e6c706f4060581fd1738204bfcbfb17875f0804a26034e07a29ff1e644977db76a49d933c483b27efacde73d2d5c930d81ec2e41adb5b8c1100740e73ef359972fc74c0a18fed6e34d3d7f4285598543acb13ecbbf5ce9bd13bafad771e5befbcb5de796abdf3d26e1b181656db44a21d036dd9d30dede2a7b38bc7dc16dafddb5804de3613b22fa954fedb981b673fb684ccd771b8c45ee2f652aebd37ced130d1e3b47c846f63911c5bb261cc4d96c764b9ecdfc636f92b99829ff8c563ee7fbda7c445efbdc4ffdc1fd275f45d24f19cf631feed7a38f4654a86b69d7f258174bcf3e43cfc38299725c9d28f498ab95d9349c8db26e5ff6f241774fcee0b717f361cfab2fbd776be88b3a7312c0c4e0c8ec5cc5634d2d9761a1217487abd1fe154ca058f0c3a02863e7277a4ed48979154dd48a3522ed8afae7ca2fd46e2c0399ac7bfc915262946ae90bf103716c91c37c670d9a010f76741f22b18246b5f7ab167f198779141d293425f931f06fb443a6fbbf36aa5cf7d57fd87a5575749a620d13448d2f99c0cde761efb175fb85108479660ff2e923e1824673bc76be3b048a2a92c7bf2fec58f7bb2f2f8e9825e5db3fd7dd0f8d0cbb2276b9cbeedf918cff6f1d37591b22712875f487efddb93388e7ffacebe8bf3f0bfd96b724de30f615fd3c8ed351ed789ac7e05f7deebde0332082d4d305cfe402050c5b138946de2d10fbf3cfcf22f1ee16a7bfe66c73bfb6e13e25e38f4ff168e7d630fba368685ddf67d7f392c0cce9e6b3451fdc7a0de7baf6db266fb812618fcc1a4e8edeab11f367aef9d347beff5d88f099dc4bddd98fce5eff687435a86dd5f937fee651cff716c7cf3c1a4f4d1f57b474efdf86445ef1ddb7aef65d02683ffb6cb86431fd3bf23d97b878dc7007aefce4e2f712ffc321dd3c6b7bb609fbb8d77d1bebf0fb0fa8e855daad2eed7f12fe2445fdb25eafded77fc32c48e9f0e3f7e3ad8887fd98ec58e5f06f1e7b45dd1eeac9772413b0ebdba4a75763a93ba609d8b5eca05eb7addc8c9a8a6cd5ddfdeee9fd3792269e7350d7bdc7f37b28c7f11278ff9fd8bf65d2449b82b8e9388fdb0f86fd25ddfe668fccbf8890f8384cdca4f67d7d53459fbd8e75e16e2fe4cfeb5f12e9239fee5a1dd4516ffa723926a697125fe8db887c930dc04499664f013edb7205906ffbf853989e7764dce34e9d5457e7ce85f90254e93c1a08d93b2f186cb713fdb64f0137d1d0cfedbcedfc832c7ed216e14e67373f49ddb77bfb6633a6847ce74d0eb4b0c8ec56dbfe80a0af13fdbc238fff36ce374ed85f127c6fece3f7de724feebfe901ec660b9708e1e92784ce7383d1c8eb1c07f1eff3ad2ffbb8b24fd5c4d178b5e8d2c739c1e9241313816419228fb7fd7f6c77d4cd6f46c83e5469bb4e7c8dcaeef6c32b2fc3e681caca6c93f77fb21e96bd86d386d87f66f7b26fe9c0efbc1b1ad91254edaf8d0935f66644996c1fcbf91253957d31ff6c24fd4c42e12274bbce8d5beee2fccff9c9d93b9b138f45e358ddb7064698676fba131a6f3db17c9e1d03817fd1786d534e43f57d3c2dc5e1b0e7dd927da6575eceffcee67c3d970b8fcffda27fab5f817df1880782041ef3dd87b261a08891e276fa36caf7dd98ec38e45fbceeb0ff4775ed36142dc9f8585c109712f94edb28f7b61dbc7bdb088c774d1cef13baf8d76d9fcdd707bbefffd7d006bbb3e064bbe94661094091376e9859bdd06e193396f5a09069966a80d9ac380a42a587824c8092a82e05227170b4b71018d0c04054618521cd88a8d3babbc200842c660432a394e6d74ac4dca12b42a0f07594d9405b66182b8201430616074c24709003910c20d1437a43c1b301d6670ea22e581a1140e4fc6f0e95a03200e8c1ccf063368a2ee2c3112fc3b903e4819ca79364920948a22820e8304af1b826454ba42678850c10ea60e246e221e37af0422764bcade31824064f01005817294a030445fc355101d17534f03054336fc0c554c68222ac58314413a1df4505ae3673d629a94868899a335884465c0d2a1868a4250a718a07a8b05008513bdbb087c80680cf3d85c875249626321622bc7151d07347c2820240c0c53553804512dad0252353083db2c451ec88db5e9e0a70781d6006c170fc036aa830d737bdca85b17849a21ca821dad7e28a99f38a02208a985a584a4132a86a0845c1b7625528588f87e752c25e193e51431501b136a5222cc1ec4f051d440ab1c24d05a44e0c89210fc91060f87cef8b468cd8120cb59c3e97b1d7d0638fa7421834feecb11407aee745a62e543da932cb43b73e02c8b16099232a90c1e0d63c4181b59a1e2a18dd138c437d41984f5a108aa496567d0e2a8a0d8d34529d0fba1021aca9597021a281eecae5c401dfdd950e2713449100b258e8000d5f4f8f313623d19b406d397f88b6f55071a2716e832010836f98bb02c5f6409ac9ca2512108a11f1bf6783130c84707104bd4c84d1a83a5118cb52acf85d702183116818223e4c3b16e4e0838814b5252ddbe1941381112d4b527140736061204a0ca54a4335826a8dd09643e5937bd64f653dc7c3a3a4160805120be0810c632452e5b707ce8f0999fe458e08803a61d204abdd1c23108ed0c8e1aa85440902501264c7f4a999d8109fb74f6ab02e500110f84a91bd8218ef51d2f2245e8e4834e87206aa3ba04e3e652215f32300235a84a06590c0726352c3ba758655253568238d66b3b2db5b5403300aa562146249ac1a56e75908047870b5c7ce2c38a002e4238bd1364886009930c84103949512c0d863e59c0d593331c4eaac522749992f4b3450deab4850746862b414c0b17e0aa4488b325a9a7e517d54d5ad567428f496360a49c19e0c2e7e1820242642d614cc1b9520b8078a37bd8212442a13029f492225bdc18b2d4d5b5329d60c20cbaf12c5a4043099b13d97d484ec4910326c7203464204072430991fee141994f7069200b91c2c80f4e91e95d035d1d51653abcf4f821a7cd0195b6de7da102dd4814448600174c71d12077d1fb87031c51c061d0dd25b0385ac0e0397597402530c1390878c1883348ae8276ab83265486e05e1d6062af51807490e1b3e6ce296f6489292e3140cc242c40216701462834848113c208cc644a880d76cae2680f320345918870c05295e8485aa243e396c8fc2d48cd488a25523829dad209121006779034b9e81ccc5c22f1821097609b24bd67d99933c741ad210e020d7a172140282611de70b91102d37b07b11b2f182812486a44a467382b55a0e9d108206a7aef9dd8a4420456119349ef1d1ce881891592ab4d2e7a8636a6eaa00cd43bbdf79ea0f8eae24db1d2fbd65dd9d1812e72c8deb5c078822288410191de1395e8815a03557af7b085c991a5506dbd6b1900e26e0e1417dd670353904a8bde3df821cead0dea5d831a97041298de7d808e6d2522fd03dd29136aef1af42410624aef5826974c2e3a882d2b627adf7056c7a9772c3040b28340f47bdff00849ef59588a7a0f818448e7c0a3f72c26bd8b70d13b64e8bdf7de7befbdf78eb54603144043367c24d8502543459225cc061a0fa83005e311284306b45eaeca205008448ab715a36e20ea24648b832446309440b05664705007893c400a7909ef8116e48206420e3c6814a58b122ac18736b52d0fccf80084edac099c381a5a8d8965cf63f47d88e0085003030650c0402142e8099380080d632044ada9c248025475ca98a12bb49ef0c0c01f3ab26382c958464aef819e3f3d7c3025f9c1843951082d39f268b0aa5aa295074b0b0802c0a47e4810974092323b4e1e5004a98056cc63c0d6a53673cc58a161a9574194136d3419d58a0ba45161f2618e1badf784a325880506d115a5399d00b8d4616b891010adec6c40eb64716364369228f5acb859c487d10501c078d5050af149025d863b9196d882169d11d2467666ce5008d481d30c2f197702ed89e182d095296d0bd8e99de89d44701fd8356190553ed0226986164384655e009459e275010289cf08221dd22891bd951a668874c4ec810ba024a02402cc062c4ea2606cf9b8346461a921139795c0053a0608f82ac6a02380214f6accd4e13007eb810216d48122279f629aaeb4c9212cd56062e7a38c9def6911054c189920596a755a31d89cf968287871e4e232b300079251015de21808202b85b48108a6c84808af0845ccda281005525f00c4d9d14c0c960365da0a7dda7284d1892c52935148d3862917c8ac3af3272e4b9f300f2a79d9f305448eb5d6c277c0044244113acb1288f8004bf8a4a829058646768d208880401a706de0b95113318711a1275f205cd4c9e100ec03a01b95e6c69ce5990015d7944c67a03b5f051cbe5c04b260ccf1d4459212c0070a1aeebcb46da8a62c6240820c54d20b972e7cd0a080022556230425f18d3943166d61c01765c596768ce68ac38a83cfbe1426d61a55c888031f2062a5555eb40c3dd0448f87ba0509253554b41b2d1c6c1163c426858f4bd33ac0a94a6d1e0502a0080433195bb46a117f5295b2e1805a1d361e4d6b47912d4267e2d4315560085302cb710b0e3a247a084450e42604049d401d216cae38c06920c3044f1acc812093c09a6947dcd50e08626c754da000914c164e95ed98f3c90f9d2b937a37ac6c294ae9ba13c3c3194715160835196c557fd20e20b5894b185624aa1a65b43a3c498552a2644098238582a459bfd6708800454100581e6d6982690f882c23765e54d6a91b9b10d0e4872d2940bf4e275d580ea4de7837607a1cc11307813a2d26303b2242850e1f5b6702604a1374f32d08af90c90aa2e5501bd1861b091e18b6eaf2724b38c8f50064266e229179632246ea28875388dc055b0b3591a8a80979ac19c0810489ac08684e254e0615a0c893f500b3b56a6c28b4a80527301f7e901c07b0705728d21a107b9420825d077a64c2824a91a355546a601190bb908b976c5221a4024b4a76f870b48185af2dd74357b260c79d2d2728e8f00404052d32543c21b911c60aaf4695fa020acbc4044a24a5689d04e0ababd62d3ba5e10d1a4e545ab5fa737c14194bf2008ed4071d8c48d019d22a00120e8ca0a20946a7d28787c1a90330b45a621424c702159f48c969e842522ac400ade8b757cc6b01a7d2948703cca8d0e4b62a431361c2201f96c2e0f8d8ce4c0a75e98b1334070ff6a421920dd01a43a501ba07960c25bd381b82e97b2279a850172310a33467581b222d19d42798d1db4408941e33344414d6385999d4adbc698dd0c3838e860e176b24c4e0c9e0e2cedc168f14491ea088d3e6d7c8106a69dbe4a76724470a40a437582d286018015c34c5810c6246b5fac4800e0d87d416495047d08aa183213743383988f361888741a6c41d9e5b4f841a86510ca48c4ac4e550202c0384c9339c20df2630c341951d6995aac55d13063a989c849cae4c91a091dc8a8234476c7e228290384202cf292e34210194aa5421ae46969b95ca29390eb06d406d4a35844087000e5afe508093c080e4068f30142c91406645883ea91c0c9d06f8b60231f2ae43166264b9645b13525c447c496b4cb40c61b2c6e14197ccc62e3b11801b09147c28f18043403820c8a32759a330985033c77e645601560289a298a1f3a92ecd1d0a385fd3930f1bea18dc6df2192b6f8e56393e41b04b20de90ac610ac2c05168e8cf1c15eeab030b0e85b3b680184f110cb901a7c51100226990200039314664987180920902caa54f8a3e8c91b2522001c19429352ee012f58153039fa6b788895386b670b072583460f91868000a8aa018a7452551804c5d2089802b651e50dd71e050250b37be4c9162810524cc8acf47a32eb24284383d1d36fc270290e9a2e54013b40bc304e21a117262a07a5848c0039b272107602192a0b5498da2c6c20cd5e72ba542858c3e25dabc21e2008a33373f5a35ec0a2c08f14645870f6130e491e67a6cb1a1a0ea8e261d619462426f6ebe2bb5de9a254032a85045c69017b9465931c028cae088ced161452a0bac929c42e30002adc1560506702839a1c027e4c4bd6507d7965f0f8611b614741c28040ad299305b8e22a890e1066c890232535aa889c240130f45cb5a073bcf16396a72d4b4d0249eee84e2234684213546c2f811411c434ecc68e80c709245290615320fc879c0957207c6ab4c8d0e874720d80b5996b25ec4a93128b532824b44054c47a86489948543f0cb878ba317314b786151582b265f30b0f0704828e30e260e64584a08f1e111881105127c8cec402317c20d4b171015bfbb25883cd930056e3956292f47b52e4fe8e02ac529d1c581524d36bc51b2214c03502f5070a014ca415b910e0497335d9abcf07a24e7cb864e81c84051825584d31fa3a14826145daa49e931f1a8d1061270a92c31456f927c8861009d29c0a00f9d2c3000d205240f9889e572fc2e8013868535496d93842c099b586ddda0b00794021ab0580913341477c8af02136aad0d8fba0f2d8e84ecb002e3e323888414246c2890e533330c91e5e5012c6ca294c073caeec797861e841259940cb0070b1c03bc0e68e0062a0f5622806285c665b3cacb9629114ede187d2c925c017a01300c614411a401e8b841d37a62a6023aa586304c0090e4821d3237246d819a72477e03c3462836b3db8ca8e8d66b600b8700d417962b86f89422e2624eb526f89ea33475f6fc10334054b06d489fad3455342ac0956013e9428e4f77f29737bda287064ec8c10225c2992adc90d8a50532402151a847983df6841cad22042e70f9d3c18014412e4cf82a748894830426a85246aa67e147d9152807ab3e1bcab664f8c1c32e43cf015507a022c5aa08224311070af86975d0eadd8998130a810a5c37c4b475473844e08023e0c418ba3652c08a13305d51189595259f04291000694720f38305889cb1e320a48ad61a2a3622b0481ac2c408c9005c082f6c0162e66039116411908798340ed26491b044968123e4cecd981f62caa419e36483a702d024020181864869389eb065a83004a1a9c81b2f130d2e5328f5284938806109d69b1ea30812d12812e989193d0d084a3367830ead0891ca50589a514e195278ad9000916ec9e8313a5540261fea920b1054a1c00a4054dd09c99148a261b09130010bf06848f4c949991258226000e328c1080561693e1cd9d466ad5ee5805987381997e2107af32d2a1e9ae160c79942521c49a9dbe41a698051a1d57f4167c69ef4508a86c988e60192a200c4b2c49abe88f071f141aeca16df9c91134b4488d99214d931f1e1f91146cb0f0c47b8e9028545095ce1a1c16bab8987338f1c20928128828c7812d812c7a7e8b5d2dad262ca882a1669ace089a0ed431e2db148de458f31759e3052258116320074da8a3245d5942815cad48352c9ddc217a69e96ad2d15d810b4e9b7d8224624020b0c19f878b254a05445202600ef02394146568750ef007550d8b911c524a382a6c2a447bdf5c8056e3ee2b4a920f0da2221c2843319c8305930d721e80095969c2b43312cb47578f312e682921d08b9a4113cb10f53c88840936410031bcc4870f3494086688c1c445984deba187123480146324e427d94cce81cf2a0417209c7b1ce1908562ccc33995c84e854c5cc87934389ad12410cb160008229596e5bce30e0c5800d665cfde50183145b1c4e905109f400c703171063bc1074e4540421ce2cb65d32caca0a265c201de55237b020607365490e051794596108322871e0b08180385e0e58cdb380113c4d4238820004881f9ffe900af3d3e90f00748a19ca953258445cd523f90e7aa7c6883ce486494b364450944aadc5a621736bd4787102d148820f861cb041013c708c002b72e0123100f0b1ba3476810d1d9298b0fa206a4fdc5a0d0d42b860fda8732cba1664be3eb519e1e94388b20d5b317c1b1e58b0e09e80c463f655910054b18ee1261ed455c6611319112d546478546832e9c60578d0374a23b2480f460190486103f7e6072704383992208e93cfebee76c0901c506a3dec662899e1689416ee48ca1431315e951035506293a6b4365b8a0ea5f95a0c3937ae62d89e122548bd3f43c074bd01f5a60e9805927449e1695386522298a09350e8c8d48477a2419da608b6546ce2118095dc54084f646f14b002464b4f4e9498393d84380cf026c1cd0f209882198c4343576b2cd861e7c4a1ad2d1d20ee3a5411b4ea8f860ad8f9e4438229c5e54804aae32a948b1d40ad1028391152018a4256056cc4020853cac71047936604d9634a100755716a899c146f883864a5cc24b01eaa44b46d4694112bd8737cee2482bb5bc02ecbc821b510d70905c03c6a34c28aa1221338c443c62e6873d691608190972a565e2d041020d60f4842b80ccd5891df05510526cb421e3a01e6d61cb5c252a0cbd09a9e061b1840f1a2e8870414041ed5ddac48d03900a1400ea9c2283a15a00480c3b0678d8340585b68081134585a758a035c13474e2e71d940567656e8c3963df70e9a4d1a18972320b01a6d5d30e60f9b052868b001f8321883952281299334dd607375e34f942d47c4bcd04067ce1c2da0a80d576f52944c7602e9831c93c051e7d3873f1f0260b568559b283e04f69cba3ba014155533ceb42a8300ca514349bc1d517a536767c6d72a832315583ce08990080a162e56b4a410202412853c407c70bf227520f0f380004704309cc1a0516aa5a961a984a3fbed0d24b001b66ea0387ac86253800169173875b9e0a2aa14cab8a1f74946a536529acc80bb2e15f0e94a1a155a27764082548aae0c9e381f8a9cc993e563ab072b0583f9428a17f092185f1a48377a4afe74a0857c75384a02f59331e1849b01cdfd05d0a43a2220b949e0a8cb21380f3a2c9202434e035c9b16982393f60b60128c1e005aa030e0a0ed45d00319b00646a7b40c5f4344397881a4810e2e52e520a003264a1dda2f9f1e643131014885bd7f80d9b1414492259b2288a98082ca8804c316136397ac38b9a86f62929dad347793e21534231cc0b87d09295e3131e22d518a4378b65c0a3168aee3a5021e3b0d9a3f14f091804c52560b17e81f41a6921492708cd48e22448843852901e0c75167583c81d4a60028162b426090c3d666a3f65170b3808c8a3614038b902238555ab34267d45cb4da1223e2c2062066932850406bd50c928a580431cc2c0291a386565e97034819e19c285abab429c1baa18548484815d826dfe348f2dce03484cae1e2cf057647ff227a24e46992e0c31ab4572acf95b83b4cc6d4c8188019e3ebd42a46161a2d6a303ad5a5088dcc6cd6f0f98010e301850d135278831c551a20e2a15589298a03158fd6a8c0a0c06de784926f48903548805a682ab48a9634e784ce212d4a3ac44431652118444f026e6344798887b8d4100aa767a74b8a53330383f678f16920b2a3951b3538bce2182c035177444b0759c7a7001abdb0427176de3035e2da8ad365c526d2090e0dc80466841048f8ea19a04a87026faae46d40656072e544013d1924a18a83ea431d9f03b416355713d8a5d8c23a05c6d4254c8ed812e8198c081b9deac9700089960bb6835191885460a04892ad0c3b1265e2e33641503d83ec39884053b043dd114a2a4c087044cb24cc000107309588465c8e2a10653ee2b2e34f0709262a0ab2306179a0c35108257ef2bc6c651028a0020e93f4083245c14cd78d02c21829e5981d115a29548dba20e58028729a40b9552d3291455c01844dd3219116b30154821e00c00687332739ccde826543825030de61f45586c0c1869496d08503ea587beb8281eac54ac566839a0740cda3e54d29555f1520d940e71108f2cef0aa13111026aabbb70408325030093709e27d922bc85a03468da504d2053f531ef043540d0b8cd1f85466435714ac1ea7b28e94ae3e146160cddc021f48c1c172e1b661a3869f58cc0b0d637eb036b8614543b06b5917821f1d22093a68e85200020cd06838602048cb51203f31f0c3ef8a88c4839a17667624a5ddf5d0d3fad690986e2a31e83a956a82c1100c2d311ab424002165edf220d31bba37043848a2e0614b2c9762d0e0eccb07255d6dbef810f9c64288d81081a536710f460e0c8fd0915a54be99499172d8d0b376964810991fa7ad537c7a57da48959ebc2406770488837b0e60e121e78645ee0d4497a5b75435bc6861586566ea4c0bf50c267c8b1305c3dfd6db05049c0c5428c2c02429118c5121d4e8e54126512271860100501c2778d0911090814a171a353ccd5080ee1407210c2265f274a0d3400d1b3326d840a47618b9114c84a2e7fbd369cda6479658c4fdf0d93d50e447060d69991a11208a648878a38106188571a083873e51d814303643c8d91b1932ce9cb08980df1c10d787813293223db023c4169b4b595ddcd875908e40508386109e458ad85ce090648b025c943184aeb85de0b504c9235f0833c1285e07a4e5a9e04c9e5482b982a3ac1317d88884c13e05044d03bd07a5410f368cb2c0ee0d2083942446135c4489c3030104281f311ad90911aa8aa0438ae04c80a609d69c0a7502a5b268e4d1538967ab4d6a6c80d99cd4a9809402051b0e0c285cad590322ec12312bcf02eba9b8100c10fdd17005cb6c01ae2f1ac108eed4b8ff04b5ac85d0e0e8aa4dcbe3ced6093618ee547cc294f9f0c4088724bfb9201c2c596c744239b9e07b74b2bdc90872a9590d7d8b68d041d390b66a4c570817901304206878e10900491e2ab5a040aa4420534422134990ca7c5ae41b9a386117c7c54602b2b1c9dc9c1c065a8254c0a10176a43e15a48a273f63611a78702de8a2e60e538c031e4065064e15093f1f832e644e9e44716340a1ad41a5053f435a664806002b6f1c39f484f111866783d8d695327552f9b8208ad41a42900809bb58e8755952c58234b41a58d6ec38112402b82b430212d8e11191834d0b0256387237f01cd08102001a407306c5926601201072de78017bafa3df4438c4cb141037484d01d54152863319ac3cfdf9a244e57a63af5e60dc3ae0d8c1ca4c1c18737ec01e78c2cb23cc89784301026dc10e63708e6f6d00f92610c95aa00096140b0c842e786a94a6a59399291cfeb848c08da1ac3c6e660801fbfc3635042945a7220581a4e644db8f3a6f849019cb8afba3054d94333c6c5451735b80cd441a0e60715c601d30c30c149d4a678a5812f516e2257b1b76642200859c850138071b21d62539132e6c610b1249082523938e32fc6ce012a642153200e46684c0125b79e4050e882384d8e82c62a396995bb0f06141891cd62dc7c0a2b23560360135fd0e9de1156cb870eac58b46043419d1527a14008e29aa3e2c3a000ba4267a52d0491e21c270ae2d160303bc6caaa1b56544293395bc84f829d380648b923029b65c752a4ec99242d063800f25fe08d1ea8afcf915e420e0c29185543e2c5a8a8075f27518724214059c920ccaa3b56a480447f90a10825113a862ce8475f2008492038ff6e0a9e3c88db088a11912c8f84a0a9c4c38b2728026b0ab1922b0cc40d03a46b1644279297db13356667ec4c664eb11a902f4187016b7c48cdb853e0200c0a317081598391308c0ca11540acdb5c192c8906a0e934b425148bc2a511e94d4656bb6584b9e3e947d95f17137242194d088801eacb668541a0b360d9f945d29f2800b820c3e2280e146ab83162d0590ec8a9ef5de79dd470f01de99f96dc3636d6242dce3c4dace9687b61ddf79e2fd8b40a2b1bef3c42fdbf51f028f37509817bf0c04de79e25c4dc7f511f761616c1d4ef4b76f238beb233ec6a381069d50518572a4908bbc17797e9062a4d52268c8d1241f5b5a6c3ae5a28f152f99584461734fe0c4a78b026a2224106a885a8548a1102825e6864f79a0c59d050aaa98ecf3552474e4b79671421311f314a3ce6e98415000efe3a0c7179c37a73ab4205a5c2d50800266b8c405503b31d22a2d4807084c6a8a83188dab274b4b191d602cf0081313012ce008abca4f23118f3ca638062a18a0c4d78562869ea924d30389180c214f01aa338320530bb6565120791952518285072b617c8c993834c98dc19a728f49a107220a6ffd48f77db2e3775903ef9fd340a27dcfc0f8177115f1afa304a4f72ea37dd92e0b0bab7f5d5effbaba9f4cdb35c2c27e11089c8026f6c5e2b687be2c2c6c4258181007d65f966921902e7a6011c76fd81d37dd6ca41ad5cb11fb6c74b2e1800d4136f0d858d37b7fd07d36ca74626c23bfb3e71aed8dc1231b5dbe383b403a1916e7a293617115c8b04664580d2e64580db97732ac86dac9b01a3406916134a0f44e86e1c74f07a461830cf3d1f8c0890c837b4386c199f5dee17a6498dc7d6f64de8664588eee7b8be07353d47b27c3dcb8f44e86f9dc5cb7069d0c9bc1a577196d9d667095f8fdf34ff4751869e7b2278bc354a8c055dc7da0bf8d9e18dfd9f3d89bbf8d63f9ddcfdfc6b12231b6418c6d10631b346e5b50efbc400af4ce4ba0771ea03fbdf3fcf4e1d33b0f813dbdf3f4e4e9f5d55aef1862f47aef573e35528e42c17874c74e010b7aef3c986e618fba3440a7de3b831b45b7350d646855aaf7de008d98346d597906b5bdf7ab00aae4609bd2a48b9edefbd5134f22bc6e072cd6f4de7969bf00323d39f10455ef9d81961445a0b064d1b3a8f7fea0802ba9ae1a85b172d17be7613a4505c805582eb5bdf7065b8210b4080df1a0d47bbffa160add6220ed79d47bbf6a04a30ae810a0c7a40e161626d6562c8ed97061615c24ee59a815e9fdf865c8b71de3b40c1b85393d77ff3ca7edf23fe789b4989c89922b5c630e16f79fabe919589c2b0e694ffc77f49d7b22fced8e7e58c469d9133d6ea403fe61d1fec5e38ddfb98a63b187e961e060bf3aaef0eabdcb755f9ad7599a60b96ddffe9ff9dbb7fd8ac4fbac0cad48bccfcadc865ef6dfed78e7f54ff6df4d2db76db7de7978ecdcb1538747a7bfe1c974e7d1283f6e0f63f22effc639922cda769c8409a5fcc917122694f87c43ce0e6ef8618bacf75eeaeaabac5f5970f56052ef851c4de99d37e7d78042035dba8fdee30105d4c088d778725ab58a7b41805a77f783644d97755ecdf30fa8ecb0f1c0a4e7e3b07ed055ced5f66d4796386cc48571ed6fb20767b018846860caab0b88d32378717ae71d1001429b6cf7ce83d33bef0dcf80de796ebe98b9353dace91a5778ca2a953ac67ac742fb3b5f31f4765edb244c34deb110371681765ed3402378f0617d7bf2d7d930da97ed3532b31f74b7fde27824c3f3db176fe3b0ed38acd97ceee5e39771fc74267afc3254f6eecb758da66bb517c2fddb56b38bf6dd96e3fea7e56344bbfe32d1aeef17f8fd61e257fb316dd738de46dcff1baea689f2d8c7eb3f7fb3a1a7635a36c618e2f4dc4f13c61feed7d1f7a7a36b5b2da76b1a329a7196e94fb4df7e6daf8939791b6e5cfd35075b824cf8fa6a21d682f4ba93e9ae7cfe69616e375b3eff349224c9093fc83b9906fe39f9031fbc121e4470a0aa500bb1f90f09b5609182acff100894873683490f7081f021c765b2450b32be71d824c51c707094f7debf6cd724182e2709d68214967f4efe9d48f73560e5061c5ad958db5819c982bc93e97e55f4357aa0ab287ae289debba02d264c9026d96204997f7c9e6dafde1d8839003361826c2146caf5ef0dfe3490d3204a83180dd01a9c3558e163a4e3b671153fa6878c5c74dc4deee7e83a5fab5011f4ea2afadbae36868505633cc5c3c2d4b44e4dc3c2d03ab4861a1696d6c9686a8db486fc716358982ae7b6ecaaa6a898dc49aec8c122bec7c2c254d99e6b3431345cacfe695fb6e1a357938d37dc9b58fdd33ed1afdd79357baed16e9b87277ea2afe9629fbffd21eccd6a1a6df61a5d6ca7e55f2db7d7f0ff5f0cfd37b3d7ee7ef2d068c77da25ffb0d87c617f21f0ec770b1f4ce1365b4a3fce55fd3080bbb7fd1888b797da1293e1c1ad78ef51831b6717fdcf8b656d332f022f1269385358da2bfe17e1d8dd7bf78f7b36d38fcff177335bdf68df65dd3c86fbb68f67dd06ff84f1eda677f087b1b4ef664c3216ebcf39a464d834d1ed271dfecc5cc361c8e0d8763f2908e13cbe33139f674e5d41fa3c1f6902cbf7ddb51b6c964b4a36c938989a1290b34a591e3b55de6a2a7d135aaac510e4d6534badbb6cbff1a9a1a798485a1756161317aef0cba8f1025428d7a27c6774508e9785b6343832b5ba3110368634c2dfe75403affedc4dee25f0777c0a0003a7e97b82773df46e77fdccfe9db4ef6ff9e6dfb06ceff46ebc2c28af1af81d3c5319c2efab97a5824d245dcce66817fd9ae81f855aa4060d4fcbf731c86986cd76958581891223f8024d0a8779fe3dd0b7e971226d4b65cfbda1eeb9d27a7bbdd98a4f76e771fa02de0ff4379689fd1a8bf0ffb7ef173ffef323b7bf8c98ec39a8d466dd3bfa13ffa347bcd2da789749a195bd9da0fe8c6e6e6f603fed26898b1a9016d8ca98585795c8e7f6f3fdb867feee77cd1be8b69757faeb68762731eae0dedc7b7d17ebb69d86bb7ecc9644f86e33fbad81e9209f39b9e6dfb6e933dd9bf8db931a7c7ea4f67c3e1b8bda626c622fe35f0397b98dbb65bd1f83ffeddee7ff44372e8ebb1db18c7b69d3d9ceb31fcb6d7fed028db4452f66445239d8dd39e58db4618ff332d7b615e1bc97ffb17786d9ca371f9e71e5f41972489fb0ffb21897ba317defdfca6e1b8f6640d7b7591be4613e2feccdfdfdfbf755dd7755d55555555555555354dd3344dd3344d51144551144551f43ccff33ccff33c4dd4444dd4444dd4444dd4444dd444dff77ddff77ddfd7755dd7755dd775dbb66ddbb66ddb9665599665599665d7755dd7755dd75555555555555555d3344dd3344dd31445511445511445cff33ccff33c4dd3344dd3344df37cdff77ddff77d5fd7755dd7755dd76ddbb66ddbb66d5b966559966559965dd7755dd7755d57555555555555554dd3344dd3344d53144551144551143dcff33ccff33ccdf3755b765553f45423a2f51b3e3870f75711d368bfa6e7eadfd0ffb77fb7117f8ed67d6f7aef570b10716f47da6785f0bb3cc2401cf745e0d0e77e3e7a3a1b27bf5814f11a3264daaec1a6b2b2dc0f07da1bd0ec87032d6d0ccdedf706fcb9d1801b5b8381f6e67139fe6559769e0d9f1b436e08799565d945fedcdadcf5edcdc7f1ceaece98e3778fa25d13e978d0c2391c376cc4d5a001f7e636a36d4d2d4d468c33182f7e666564632a4ab0af5629509018418ad8a0a155ababd9ce8bc73bbeed18ac880fd03bd1be5fd47f08b47360d10874e79cc670e8896fb60d47d682a7e5cf9dab430c28f2b1199ae5f6f00dcfed219edbc33760b1e8c3c2de735dd11b0f0bf3b7d18bdd391e46c4bd1d0bfbfe388e64b54de3741d6d26d7345cf4a421ff3bfa4504303e35a27aef6161c0224e92b73dafb981df2550fe77f4aca260319d7fa230a76f0f5694c000cd950b5ed7d5a37ec500a2ab4163d0f4f0bb94fdbfb1ce70b9ed58854d771dc67b36d6396c9cbf1cc3fe755b765553f4347918781478bc2b0bae509581d4874363ed2bf3a6f71e0c92794ddb65a6745f19b9f75e3ce6be326c59a6abf7ee45867d7d75f9ca38207341276ba27168c724f96bbab66fdc1389f6dd17ced9f76dc46b7be835d734988a14e46d936b7e8dccedb92ef2e7744dcf64eeede18cffdc36f6206bfac39feef8e9bc5e9ca669d401669aa669d4d14592411241e4be82614132fe3c609bacfded8b2fd87e43d8fc10c1824d9e0ea91b94a9100053bc869085cda88d3880678805141e3035903245c823b84b1f14dd91848851c316c3450e4b42889364a8e9033010d26262c1a41bb90861f061d5ab05d59b200b5819a4c30b4a5a902c760fde8c683121485c85aecf1696154154b4b199a78c4a054495851a76705382802430614d2040285c20532234a14b045701901b67c85e7058420110ae240b78f1f100f843141d053816b8693ff098513a924280173f9230d0c46bd262d18fb6449ed6302c927e6c69fa8d407563878f4c491a78f88231c4079c960502c0f0fbf8f1c449d06d63fb7821610511b038283e7c602e989db0291e1f50054db0f3a1763433e5cb8a2a835a1c6f0b692ad080398f2c2c650dc9532347081ec80ee9a0e0ea6e1190b51863c7dc5d97bb393b77e8048346f4fea8b26385e642dde44587dda0302d803e09796337009c81cb1ed4841d90011c9805478a765d89ea9ea8e082a3ae940329c44009a255c7c70f251e3e7c9eba267399400d5a535107f716c206183128752499903669ac1c193b3158652943a15146398958add945e8632462e653a8429c33c618d388529b01148c5a6c9386e07c58e411548083fe6915e76b6014e9c440162fb971d10234721f1cf231638f49140cca905308f5818038334a7047362ead39ba35c0c354a2434250ae081f16b0a7c10d5704672d998a72d421c2796b02e04080146e446b6e2c35a126564c35b9613e10c29451d0e80663756ff932eaad072a567f347410e0811e805015021f8f2ef5884207cf2a2a37e87ad8a8a2e21ccb50a30700684af8e9937cc550b8bd45b52241f18e97092d406ae08a48484f665c989415db8a1d00e9213248c7101b1317021011351cb2dfb4b07dc011e63c3862c5fe79084341c7a5cefeaa25351811a4024fa92ec36513160b8a0ca97bd42bd48448c16e29f5831170fe38f95381c84091c8054e439e2a973411e7346b0891b17922a2236a846dc10118aee2013025959d762828d0b0ca143c05b8821818ca0d4f0012c25268b1d295e219da61cb28e810e001c1aa210fd4d031a131e444e9f2d0bdd96531d555c3a41351c28f1233a2d27870f274e5261160028f38a154b0964c041e43701e68483a30f2412785075d09ee89108c99235a0d49c902a2b05174be89c3a347300eda859d4a6cd8ac19404ff033e7a34d0c38c206e69258b0a7011cc23022bcc0acccce8474bf50bb2acc8270f514e1ab909547c22b268ce222d865cd1dba1062d4192e4f7304f43800c727104de6bca928060010a3d1dc179e20991c98299929b0004b271e5ddcf90f4c09549e37aa660178b4c2042c22658e9b493072944a0a85161f9408047008b9f3df4e87af75aae2f48fc040d23325e8d35f83c4680d0ecff039b431422a9352265fda83aa125b81950d20e0c6aca7520df978279bb56579a93f81e4ded78aca4bf82576a0520d1b642e58c564e2dcbdd83287c6c5386c88db2f939844b1035811bc85448856997a23f8c3a7b76010235471d40a3e90a7e275e04d4a431698f226fe342a615f0028482ab827b824e81604d140dccf509d09809b2651a293001c058cb32153a8b038278042a08ce120e7e9069ee5006609b0966d0418b083d2190d0d9be286ec48f340cddd1dac433b720734c082921ced70d1c08c4b0dc89a1d12c0101f58f258728d8c7260663660726e1290e3d1a2d2d9154c44399595da0308dae2e4baa1e22219f85147214a5b9db0dc72e8b802448747c15c5900cdd49102894ae2121ab51c14e4f0c325c65b029ab0e48002567667c50428396ae420112148998d0b8ce0f81409769003cc0b8e3a388cd89da93241a038d49e9c39d561101b8e1b9638eda1d5743874c3cd980a0c7552dadcb8bb51e6e7c6050b7c776763ab0d4883220502a3a2b0318691259788571e1bf61dda542753c0c64b67a3819a1c3c950b15a748ccebd41f3850e2b4acc210aa0ba74a717221dcc4860988c499352ae0a2e7869db01635148861c2086485550d2a114c7c59d4335423878b16878eac61d528416354d1909c222b001a796828710bf5409083181a332495d210e705271a709ae00e406b53c20aa0207041e060c061e1912027a818e26d12054618529cf8ed4c2a394e6d74b0bde1601b26880b52e14dcc0d1437a47c9bb7084fc6f0e95ae372632446827f071208b72f6eb49bea210a02e528416e7d06211f33ac60e9504345316846f02e021f201ac419287eb49dd22a20550333b8ad4f9b13601b0d2c25249d5031a46dc4af8ea5247cb4b07962a3e3e1d0199f160d6c45d8d2d8d62cadb1a9808672e5adb06657e2713449508b35b22783d660fa22af59507ba42646ad5673d918481080aa536a0c6e7ac9eca9a42502612c53e4e2212d4b5a9ca642862a190964c9989246068e31195c0bc41015034f8c2431661410032d138e0647071a10b4176869670f1ccfccf8b37bd3598b326710602c82e10586f0128cf405ab17835e0cb0e105f08557a79fa95f9f5f13de0f6efd9154cc3a99cd31236226c3ac2c82b235657565636515c81c9189212392b5643c30401211a28fe51192184bd1588984482a1e8098487171c305570f4054efbd4b71907bd57f08b4fb75d7f1f6c0db0b63204e97f3f0e33cde830b0f2ee07759df3fcf7d51c59de3c5eec33205bfcbe3d08cd09a5f9b6b1a6cae69f2cb47c005c108990808d2bfdcbe67699627d897ef9fd3313d2cdefd3ad258ffa227dafd9a80dec92b98f2d8df5e180feabd07c9fbcffdbca67d570c0892b5ff43db868ffebebd5703e0ee53aea8370e2b6f84b92faa38e6678982d9734d830dca71a31b29cc7d911c0ec7c2c21aac58d31dd47150c72ccdf775dff665dff555dff445dff335dfd775ddd665ddd555ddd445ddd335ddb775dbb665dbb555dbb445dbb335db9775d99665d99555d99445d99335d97775d77665d77555d77445d77335d75775d55665d55555d55445d55335d53775d33665d33555d33445d33335d31775d11665d11555d11445d11335d1f774cff664cff554cff444cff334cfd774cdd664cdd554cdd444cdd3344d0e7226ac7d2a03e27617c15907c91ce965015a71d7e0121bc18898b2a1d6268c24c28b0247f60872c0e46c81b73e3fe244a2a0830c06d873d8800881425d4a80d78f5419589cd9218028064e861252e8b81ba1a2829e992493d80d2eb59e4624de04b7a00ceab0894598553ac08254304103b5794a042e32d859b526a3ed6105c7b164dc2c14e9bd0156416a0b63f53ddca53a923f2a60de5202978a43054b8414a6fa2c828382a28596cbe6a523bf6354436eee821a0979e49e2a48135c9a124ce3c3e4768f0803d3f1e0954383bbe9eac291079ddad6440de2b4f018605681db9c5822370fbe2300968d0f2ea168d0d8273480e09553985aed10e541118b222ee8a304ad7aa8508d0c19dad2e0c29c9bf10802f50bb801450d0b313f7c874a25f134e8cba84e1144d0026ed51aa10f3f44b06093a71fd630b8b2204f8929d73028532100a6745dd2c39bbbe00a1f1028b0c266d4461cc0c346688b92584dab184c40a0f080a981942943d0a47ae400826f666103dca50f8a6e075ae109b26900a7139747586ad862b8c8118116af4914033f4c821c414c92a1a60fc093c28042872f5c2c5c89b201130b26ddb8a50c970811a40179a40652d68755af165406d47903616b0c16ac505921ac0cd2e10525ed460732a8865c9e3888e060f7e0cd8816122a45d0a68028104c2a75c8aa42d7670bcb8a2db5486da9188c34f910d1c6669e322a150a0d5ea5424020e2118a0e166ad8c14d0562e2cbd39549c8104a701926ac090408853b8c74015927cb9c56d68bd0842e119c2a5106985b5f474f45b6c319b2171c9650a096a903201f3ad668da9321c9025e7c3cd841a60e8c44573484f254a84747018e05ae0c3aaa1e04a0e68e4fa806b6cc281d4921c06f5494e29f24402b4d24b41868e23569c140140a028488f1a895a7b55e224f6b1896489024b480d3c0514b130a5b9a7e2350ddd861c2a8c248a8ae5368b0b49234f0f0054348121450847cde50dd41e36b5920000c7f4ba305a905832affe6e18993a0dba64600d420b5ab83149e080d125610018b7b6288d40be80d46992d693e3017cc4ed8d88e72781ac3100990161f544113ec7ca4394991e8c2900c10c04a0d53beaca832a8c58a1a01881dea39d883009685341568c0981798b5fac50a0cc8593e58ca1a92a745060893454c5a046c10706cf0407648070557649bdaac8dd9740fcfb080acc5183be68477e2ee0f77ba6a8001310093386acc32790e3e1f2af013892bdd9026cc0bae549d2968ffcda02d1924008435c1a011bd3faa5c84d5e90306482f0f2f049a0b7593971c5a5041999bfbda44a50b87302d803e0931c00d704c924f007cca8564c119b8ec414d94e8c0e6a5c61100a6c82218c0815970a4b822c701048862601191301c12d53d51c1e506210d5d777dce482a602bcb811462a004c90006022582ba12b4332d117e28f1f0e1f114b08a4c8f028a4617243acc65023568adb4241f89a2652281742dc35b081b60c49e706aa3c5ecdc58293d7a6442daa4b172f4862ff95f630a0410658bc12a4b190a894a92a44cdd868df0df6448c46acd2e421f1e0ccc2811b78318c244cfcca7508538e789746606161c51983c6d8d6944a9cd80098150945943c2b6a9111b2db64943703e2b18c853e766808b9854c357010efaa7557c418502a61249498383e50146914e0c64f112a4030b3c990ec8b076446bd10234721f1ce40ce6152451eacab03e638f49140cca3a5286c3c742dad1898a87501f08883393c4cb22af395c02c86a8c68b07169cdd1adc1900b4b1200d1a213099eaf121d12827245bfcc4bbf6105c7e9ea43017b1adc7044c4843965dcb40ace0cadc192a928471da2b54da8a82891cbecc061ad098003014e28a30478c60b1d2e03d48188f1c35305a71a31452d154e2e303b7b36d4849a5831c5a448a93663701c890bc40a8b0f8430651430dae21537c7128fcd971304ab7bcb97516e5424f1694277a9c48ace06567f34741040d2194badc28c90b1f57764a12a043e1e59fa34478b9a1c165a203285a0836715951b741968fcd19ae00b14012b385451718e65a09106021582b8b812661764a129e1a74ff2c1c10194098b0d08458444e0f616d50aa725461845005149859cba0e5e26b400a979fbb2e5810742d24851904006d293191726649a34a0793154fc0364d0dba2a128c89b28c45d58265b00611a830e80f41019a443081613098849d3c2d93090810b0188881a0cb111c1608e04357f449de905f9f5e0c262d1e4005a2e0c0d611f255b7084390f8e58c1704412211e8931758296873014745ceaee449720a89c54af303d4b5640e90992424a85395fe4944c19b1e6a1c1882015784a3260306175c104222b9a16974d582c2832c41e12b31012d35184f1c570a374c19c9612a2e2dad41e521a6a1ed48448c1ee2863b64a5842532004a84b1a46c0f9e3e40f85396e90cc81a028d3134e3e3951d6150bd8093ce922f725d20c16783ec069c853e5922608bf41570e4d295201200d69d6102263f3f4360063e728d2d5151a6b448db02d38092b0ce20c8075766506078207c0945476dab757c40c3a0e6c01a364832a818b40aa147800ec80330af8b0a46911d6143c05b8821800322ac71d1e83e6243182902307284a0523dec8570e082c845a016a0320212c8516ebd6024d2e71a05082d0932c9ea11db68ce207a49aed853da39610820704ab863c5003ecf346c8230e46d0d070a031e444e9f20c4174a315968fab464ab2ecb298eaaaa1424b8f0c872e0cbaaa5b24a2841f256644a575c9019515c3812da3da3878ba72930820010f0a1b18ec0c40fc58c80aa582b564200c1a51a9828d496601451199c8b31b0f6e07121daa14a5948362ad03920e8c7cd049c960a605911e0850c0442c03ed866c508d0a3d24ac3a8e5629c0a03db8274230668ef02e59fad921129aa26c91942c200a1365e7021373a44aeda31819367178f408c601464012115a44bed8ace8d9a9c486cd9a1b271028caa4e690a82684b6fcccf96813e30d04e71a0bb31f5b7517b4e69258b0a7011c32709059c5e08a9b0420f944788159999db1383bb28a8b1d1f06953cfc42edaa300b602e18a908f2c9f220d5f214e1ab9095477173186e6ca1951a50e063c2282e821d161bb7bb8d1b291dba50f97021c4a8335c9ddab4d50112438814d888861e07e0f80482891333aacc1559ee39abcf5414030088c1488c08b03e2ada744d41f5014f904c0ecc92283a2d21eaa065410e1f0d1660e9c4a34beb801f232ddaa8e921f7b1604aa0f2bc51f5e34a65c5c504079c102078b4c2042c2225c53a8200309150c859b581c9213a072c5081c4944d6be2449007d02a2c468e5249a1c08213fea9890e3904b072081108e01072e7f14f6dd0588103c04918870e5feb54b5498a28271394d519696441160c243d53823ee1261a70c26547a21ea1109018adc1e1599e7ad0503340214c9bd0706863845426a58c841f1f8db2087544e0c9da83aa125b619d3337e6e31181695644107063d6538946280a5bd6789c65f1b1a4c32f839b19c78e946d400f50608e167cc9d096e5a5fe04ca01054a8e126a25aca9f7b5a2f2127a3160cc1820201ed9600bd1a1520d1b642e56655af4e5eb82277d8460c910e7eec596b913099a2171a68d08c5ea491980ce80247ed809503626f83cca41b635c4ed9749cc02089ccdc8ea81924ad1450b45d376e254e63f3843d6e7549426317aa7de80a148246d8b44080bd841214c040f2442b4cad419c939f2731426d616175a72326941d2d3c8ad9d00c19522d342e49343e243515f1224813c89ecbcaed64cf0308811aa382a850b88aa648c92b44260a721acec4b8a0e47f113304739b41280a3ca3768dd1340903b36314f7c96ec1445097ec09b94862c28754097356c8af8c8d970a5e14fa312f6057f4ec508855b98bdd85c61ad75486e60e1c9350045c7043b236acc81201117d635aa0b1cea852a357dd6380a1bd6d8944b4ec0f140ea4b492295a3c402ab4c8d275fdc4c69c871c093352942d24c100dc4fd0cd5f924aa4a9d5f8c21e671d3864994e8240045f5310279846975c30211591b32850a8b73a2cb6502b5a9d50f156921a08ce120e7a947012a1cc9a86028958c361c8a468e98f4e088800f04628a63c024c46509b0966d0418b0d52ad35a1f234e8894449cd1d0b0294e08152d35a6b9b6cc52ab0e0fd4dcddc13274a60da936b72a5ce664c9e08006585092231108e4c08d641a50b5e93530e35203b2262d0b9a178a2dbf2aa33a80213eb0e4b132989064eca5b26714c94024ce9db3953fe0c9520216068032a6f6663660726e005d0ac589cba3342d3aaaad1695ceae601a7ed1e4a2025268fc16ae0cacd41e40d05643d30c4457a24cb065e948cf5071910cfccece580fb33bee6c0ebb4569ab13961b8e3ec239616d4fce30a9a135e42ccf98a41f88c82916e0623e11b17c28982b0ba0a978a4e68290171b004e8c1e90a8242ea1497be266810b68847c2903a581810e4e74c8162c9e40a2708755a644a37c5c62bc25a0094b3c268b8515439e2af8f900567667c584278bbc2401c34309021f893438e16245c58a311732b57183e2708003c08a10a4ccc60546ee3655590f4eb5f1f03f44821de400eb72448e1f3b1448b8a9c262839687160897101eaaab60044e4fd098587667aa4c10e796548834119538224d807872e65487416c405340c658ea5143cba30d623e2590014c00432828f461ce89bb1f59589cf6d06a3a1c9a811134a0720b34e88110632a30d4496953cc5261d4933a64f20138a825caa4ba4799a8340187a3af23538c593a3a7902ebeae349536d806f0f6b2145080b7c7767632a9b319864b05d01e0cc8cc3a04881c0a82800a0d3c622003546c0b4598c2cb944bcf2b02950e1825679b6c4018ab8439bea640aa4d53fca9f4a5508561dfc88297de531e6c91504ea5410cc9425839a1c3c950325010b3b4381fca610593d31af537fe03c9980902a9b814d9f3860e8b00a43a82e9c28597ae04fda910a6c4aa56528849bd830c1104e6fb614858e44fd19d30b73ca4e16d7fcd607c88d09eefa6ca1b3c545cf0d3b612ddc100d00482b4a570580560c1346202bab243d4a238480425a81115f04135f16f50c697831828423468a055b3cb86871e8c89a6f4f8b2b441234e850a58ad621562d564817cc555b28908a3218c97c4543728a2c3101b018c062cb454f6e010f9bd630ba0b510848894c5f141cd27441100d6ea11e087208738127107baab4484240219fa4521ae2bcd8b48a09262c68ce764d031f0608e1c44e0f5cc518910f5e84141b261a1ee050ab32a5a304a2519f82ab28a28858686d4a580104c41385134812588042292720c8dc8809ad6987f7e6e7e5578d4f7875cf16f5de3d0df8cdaa775dd8a3b3fff0ccfe93e7e687c2e67a7af99ff05f513555d503786d7ef157d1f574dbd464cdb5f52b9b5f7ba2f03bbbe9fca2adabceed9a5f1ab3abaacef1fc4dd7f46fcc0597c65596e7093c5594a7e6a7b66b9ab6aaea533875d719e5a5f9fd1876e19475597736d3774dd1fc4cf94d637875577345d3d345cbd2059ee9d9aee1005e0dc03bf393e3d7cf6bfaa2ea3fbfe9cfb5f33cddf0ccfc5af7a3718ccab3ccceafebd9b26cf5f0cafc50173d5fd7fdefcc9e2c9bc6647e72fcd778fd311cbf1e4ed759d89ee9c9c2e08df9c13e66e5f3f4ea89baa83ccb769979eee189f9996ddac26eda9aed8fdfd4b77578617eac0cb32b6bbade6cd5d73451d34dc203f38351cfb26aecbeaf5fdf18f6bc2f3fd5b7ad2b9facfbbade95d718e779f9a1ac67637745ddf46dd3ffbaaf8b85d7e5b79af12b7bf96559d95ce3962dcb14e571f9a16c0ab7aec9b2ac7baa5f5d7deecdcab20b6fcbcf6d5b5696db9fce2e7bf20af8c9ae29b3ea9f4f9ffaf955df75c8d3f28bd3f545d1d66d7fdcaea6ccf2b2fc4c547dd7394d5f0f9fa7899ebf2c5fe0b98587e5679edffd2febe3f994d734655fe0894ae111f03bdb3376631fab3e45cf345d51f4ca0f76dfd74465f7cb672c7b7335adfcd6af7ef84d59dfb6e7d9aaebfb8537c0cf8ce7554e51f34de1b475bdc9abf2835f5896e759fef11afb76f5547edfc3f18baef2bcbea80bb7316fcaeffdef475934864f0fc3f1da0ac093f27b57d7c3299ccef2fa59f94c5173092fca2f565378554f7866d737455f14e509f093d5f68ddd6ffe178ed58fca280ae537ab687cb2663cb32ceacefe449ffc4c39f6a87ab626fbaaaddb9a4e7ee8d9c66bec4fd3cb300abb1e459bfc52197dd3949d59f894d1f6fc328a9f3b784c7ea8db9e6a9cbeb0fc4d399ecd253fd355dd574659945d5d9785794a7eadfc53f8fcb27755ffa62f9a9ae125f9bdfec368ebca2fdbba710cab6c78487eab0aaf6c2ca33e56dfd96d659777e4779aed6fe59fbaa7eaffb99e6278467effb3ab3cab673cc76eabb66eca2bf28be1d5bfa96caee8ccc228eb8547e4f7ce6bfa61d7fcabfb5793455bfd52b63d59b94de5777ed9f6ab60ae58fdcc379d3f9a9ae99aae6ebba6ab7eeeea61363ecfd49c7dabaa6a7ac14f5ed9ffbfe9538faa707b9e5bae2cf87d779dd1573e53d975d99f9eee0b3cd50a7eaa8ca272abaeaa2aa7f13bcbaa7ee9a9c6a81bcb66dafa3476592a57a97ef08caeb3c9b6e9abc2efec4d54bf346ddd13756596fd6f8bca28053fd3ff369de79fc6e96c9a667beae755d64d63d87ddf1876cdd474d77000f32b53bf1f7fd6bf697bc66bbafa9315b627ba96fac9ee6aceb3eae3793e7d9caa29a9df7cbe712c7fd97c4f566dbb1af58b53f44dd355765bf6fdafbbeab812f5fbade953156d4ff5fcf19ab269a89fcb7ef4fcb3ff73bc7aafbe2aa8df8c7e37fda6299febacb2333bc1cff5ac4fdb76fde9fa9a6d6b7efac1aacaba2c2cb7712bcb2bfb534f3f3695dfd5b3eb8bfe754e6157d8ae6da75f1cbfec9ac22e8aaaf3eaaea7043f59555d579ee3ef51d934dd97d32ff629daba722b7bf5b7f0dff433cd759e51b39d53337d5717d6f49b65f8855d977de339d36f75fddab62ccac63e5ed973667385e9b7b232fc5b15fd731cb75f362ffd5ad6bfff35e5f78c637486554bbf788557b37dd313fe2d9a72c9ad91ebdf46dc1ec65c706be402ba689fab087eace9cd793de5b4d2cf3c7faab6ac8acea9ba9e5e5e7345e9f75b733dcdb75dd7f63ce73315b667eade7911821f2aab2e3ab7b06fe1ef53d74ffab93f6de3f7447dfcceb13ccfeafbc0ef45d114655d595e5798357dfa4afabdac09a7a70bab6f8abe2f2aab6aa49f8f5dd99551736e4d34f6f05c9679a9bec033ff38ee5735cb95033f3f9f1e8e61544e7fabb62f5a96e6093cdd3157907eaa4767f6fd291bb72afb9ef10b3cdd30578f7e6c1aa7bf85d9dffad64c65394d1dfd5af49fea9cb627fae3165d55e0f9a60dfc4e143de1ef7ef4cfa789a66d59a656ae1afde018f59f55dff7943d2a7fb82c53463f5636657446d1378dcf59657f9a2efaa1b2abbe9e9dd9d73c6716fdaf01570cfcdcd83ce3f7655dd485cfd394f1b2344fe099bab952f463e13566bfcbc6eee9bff94db6b75dc301acaf12fd5a3736dd34fd1e465f7475d5057ee93cbb32aaa6aacb7a7545dfb24ccd13789a279ae60ad14f8561797ebf2bb76dfbb6672c6cb9dad2b8ca1265efbc9806af0efd54d66ccd794ecdbfc270eb57626ca32c55770d07b0eecad00f9dcff49de7f8c3b20cbbc29cb653dbf34dcf423ff9fca89ca2acfc617386db3f8c7f1df03d57f75cc3017c7145e837c32dcb7a15fd2decc6e89c0efab1e66afef6756339564f15f5aa2ae887b66edb9ee92aab710a3cd340bf559dd15935633485d3d75dff70e8b9e0d2b8ca12ad2bcbf3049e681d7a96b952e007c366fbdbb98d51544d638f0adbd3cedf047efe3465d64461934d51359eab81c4f8ce448b2bba8603787605e887cef3fbc6a89765146d61d544affefc3eea619455bf67d7f4754f3fbff3bf5ef6eeecdff8654db9cfef3d3ffb9e6afbc2f2f9591fb3956559bac09325c677ee952b3ebf3535e7ffa2a9f9baf2cc9a6a59b27565f9024fb60ee57285c00f75cf0fb3e8ffeebbe7f7ddd66c5fd4345f179d5bd3855b5b22577a7e683aff553e5f934d67f36c81a790ab3c3ffffeb47dd1f59c5bd4a37e7e9b7485e7c7aae7ebd1944567b56de1532e4bf5049e9daeeefce2b7fd3efd327ac6b2abc6719b1b17195719d718575b9a6abcb2f38353d874df186ed17885d3d6acf383618fbaab4751d5d3f9c129fad31fbfecf7f25fd359462bcbb27c81a779bee81a0ee0d59bab393ff4645fd5cb1e7ecd199571da3df1219d1b5b5cc9f9c52f8ab22eead9b57d4f739ecdf3cacb559cdf9a9e1e3de3347e4f1655bfdb9e8aae0ef8a168ecb2efc9b631dbaea6fcaa2b3e2c12e915ceaf6de55596e31365e1d87f6fbef9a97f4563bffe977dbd876558d89e40bb5fb3a730f76daa30f745f598a3e6b98603487665c02ff5f20a7f577dd3b47dfd1b0bdbd39eeb970b0e0657f1085796c0133d81a7dbe8cacdeff4eeaac233ec9ef3dbcaea5b96c0b23ccf351cc02b28576d7e2c0c7b5385d7f8cbfe9de7380d72c5e637b7ebeaa62cdaa6b1875ff9aff9fdf975bf2cff79764ff69f5ecd2f45df3546e7ff579765d7994df3fb272aa36cbab2683b9f2ecc0adbf3bd2a7285e637bfecbba6a78ba62d2ba7aa477d5c9df9adab6cbea8ba9affc768aaa6b899df97dd545ee31fcb1f765bf72df343e5797e4fbfc22beca2eac992f9c5de9cfdeb3feb5dd6c7b12c6ccff37835e6e75f9835d35985d3f3c3b09785ed99feb812f333555546e3d47dd557f5b03b0bdbd34cefaec2fc7ebaaae6ccbaefdac2adb9b6c2f63c51fb0accef6c65b565cf147561f7546356d89e5f7ede84bd89ca2c7aca70eb5d57d89e2b8a5f79f9a171fbdbf5f5ec4f55339e6dbbcbcfafb02ccfa6eb3d3baba93bbce2f24be5365553f85de5187ee31516b6e74bbcdaf2f31e664ff5cbb22cc7726cc67305fc7efb7ab485cd0fabf28a7a1367795c69f9995f56e71696d1384d61f76dff8ddbc2f6544ff5a4bbcaf27b5b73f6af2bff7546d9577eb1fc7efbfef79d51747567364d4d027eecec59384edbd66dd1f4cbf095dfdbceef7f7daac2f1dbbaee09e3caca2f964fb8455ff47ff34dbf390ff0f3aec9ca293cb3308bb6f17a56f99966aac6ec9ab2669b9e711b0bdb33bda2f27bd1b54d65754ed7f9fd2b1a0bdbd345e06aca6f355d14765d177dd1d7bb6fbbae77aea4fc5035f51f5e67b98de1734653617bff2f8c7d59599699ad7ae74506aaaea2fce0cfc6f2ec5d385e5defe554809fdcb6a98fdd533e55785edff30acaaf55637786dfd59565566ee7f5c9ef9be9fa9aa78c7e75fd71eacd13c795931fcbb2adebba323cc3a937d9153d2b4b2eb8b4b23cdb3b2f5e35f9a1f3f9caaa4fdbd77bd3afa6b03d87431fabf50bf4bc62f293d9f7bbf1bbbe72ecd70fcfe919d3c3b7b5b22c4b563d4ff6be5af2fb7f865dd774cdd7f4b13ba7c2f65c6b3f6cfbb2bde6c272bb8603985e29f9cd73eacd5796553fb7b2cca6c2f664b9e060709565fc65b834aeb22c81c0d3547295e4779ab19aa2f2fbd3765ed5af0adb33ff73e99910f7c21f9d2b243f739de319f65f9e5918465555d89eed5959c26e655c675c655c6f5c70695c649fbee14a22f0e71e3dd77000afc45c1df9b56c8c9e6bbaa69f6d5734f5c2f62ccbf8d71dbf0c21eecfcab8c8ccd4ca1296815c70695cc09a6ed9f3ce8b5785ae8cc4f685ab223f38f56d2bbfec77e5f5954fd4444df44cd770008557447ef27baa2b3cafebfca2703c9fc2f604dab22b37e4e76739f6ed39a7be75e10fa7c2f664cf59c8ef7fd98c5b7736ffea9eee9f93fffd892b6a07f9b96f2acfe77fcd583dfdd9c2c2f61cfa9fe340baa1115e4f2e381876d95c4dbfe897ed5afd407e671cfff65457364e4f177d5d617bd6d10167ff8740f5e482835143c6ec7f5a19576e542bcbfbd3dd9e387fb72fdb6b67e58aaee7c943f4e307aff3cac6ea8fd5565d5f5815b6a71107c6e9b9d6f6b0ac2c6b709571c9e0824be32acba227966559b2ef1a0ee055141fbff7c3abfb9efe4c636fbaad491f7f6c6a9ae92b9f266a7af4544ff78d68df2fcab22cff6db344639dd277bfd5b7ad9759987de1bb7f767f3b3b6d87dd0ff6727c9aec4fcfb56d7fbcaa2c5cf79b3d2cbfed9bb2f3673d6bf7ebf4fe6f77fe769eed9de3e96bfc996b0bff987ddd33f62cb0fec3f63c16ed78e5925723171c17bc1ab95ef4e73f785e7d0a9feafbc6ef97dff40cffb5fff4b1d9a2702cc72b7cce5ef8e2feb9f0ea573fa3aaabbaafabba5c7030b8ee64342eb834ae3f577bb7b2fc73b5bfcb122fda67bb860328f7f8cd6ccabeecd9caa78baeb3bc02dff3cef1b5f843531435e5196565b675df175ddfd6fe99eac9cea91bc7ee0a7b3486cf3bc7d3fa37aff399be296aaaadebc26b2a6ccffcee03e78cf09781ecc9050783ebf642146f6f2f8cd537e22f65e1179e573456d5394ed533c7d5351cc0dff0f7cab06c7e597efd6fe1373587b60d9fd1fdda73fdfe54e554456156555923f0e3b72faaa7cae337a3ad9f5b18855b36f5b319bbe84934d62990fecdf0bc7af8a3f1f9a2b0fc9ec2f65c739c4e7b85bf17feb2ea59d53d63afaee7ffc3a211ce9cfba96fbba2f35f5b7475513676d373fec9ea7ab2f367ddf88455b5fdbf9fb63f6de7396ee17fb2694ccb3ff77c55588dbf397f7676bdf9f3a297c764df56962ebb86033817ffda1645e12fcbef9fe5f7fbe1a7e7f5ed3cf1fbbb39716601ffd6184665d9fc2efbc2ab9ba6c2f674e7dcf8e279ecde399ea6fee7a63e65bd6f67757661f98585ed0934d3b1e00f56e55666cff54d617955d155d89e40141d0e7facbec05fba9eff4cbf1bc32babceeecaaee100ead8f163e7754e5539354ff784d9f42dcbe1f0c726bb86037843eef75df69ff24fe7b9fdff6c4dd4858e9f29cfef97db3fa32ffb4f753575e448d1f2a7be2afa519365ff8fdf34763d8edff7feb76ceca6ea39bf72ac7e1f344ea32cedfbfba8edba2c89c6fac6cf45ffd9a2f129bb287cceab8b8fbd366cfc52d75c55754de33345d7d3345535eef755f55dbd7bae69fcbaa629bf70e38251e387ba71fc4ff8744ff8b3aaecdf15347e2a0b9ffe4555d4cfb1f95f54d89eb22fa625dcef3d531736d9366dd1f89b3f96ebaf92bdfdceffe5398ddf1895db765d51617ba22fdc7e26dbae2e8bb66dfbaea7cac6c2f61cfa7beefb227ade3f7ff1e6c4397567fcfcaac6b2daa2e9bca2edfba6c2f65459233027ce6ddbef8c65b535d7b6f5673cfb7715b627db4f6de3176d59d87dd378765157d89ef51f0259745dcdd67ea6cab2e9fc7dea4f786d6756d89e320dfcc5637eacc7caf2587b38365dc301fca90181396ebc7d69bf16f6a81caf668abe736ab2b3b03d7f5cdbef8f6bb6fa05ebe2453b95f1f3709aa6a80cb3f069aea80b9f668c9f19bf27dc9ea7ffdf455b154e51b45f1ba767eb9ef16caaeb5f3d1ad3b9cf71f43ccf7e1e5565b55dffecc2edccc6eaebc2f8cdab29bba7775b8f7e383665617bca76d88b5fdba6efe99aefcb9eeb1cb3ae6cff7eeae965173ee13935dff9c3e8699afd7cabceb1bbb2ab6aa2f1ea4f617ba668d9ef7b39fd661bbf2f6a7aefbee87992fddcd75c4fd754e53446d3d45c85edb97e8dfdcef7f5a97fbf2bb328ebd553d89e45fb96cdd7c5ef34d3af7a3945e7b89dbffa0adb735824d240f9df5e88bb671bc08f9d613fc366bcae6f0bab306ce728ba42ecf7c2a8ca7ad6ab5e955d157685ed99df36ec0168f1f3a7ebbe3f46bd0bc3e89f5921de9e2c8bdf6f5173565bd33ce734fee8296ccf5fdbc31858ffba0fb489f65d3cd1750d07306cc58f8565f4fb373567545ebf5785ede9fedb2ebb7d0d18554f760d07b00dfbc9ad8f5f73665f1975ff4ffd3cdbc09c1e16f137edfd995e9ed75685e5b73553185dd1dc5fcab6b3fff189be2eaacae69c9e2c7bc6bf2e456b7fb0ebb629cbb2ac0bbfa60b97e5cbaee100c2eccf8cd119f6a8eca6e809af2ebce6c4395d7f2e0baf5e45d559f672dac6a6b03d85b8b108bced19c89e69eaef3461d9bb6aacc6af89ae5e16b6e7ed85b17902d31faac62aec9aeba9bee779fa54d89e778e03df9fd3775c5996a5bbaee100caa1bfb7f5f19b9aef9ac6b00caf7ece087fdca7eb1a0ea0dbf99b4ff3ff194d3d6ca2f089c2c2f604a6673e34e2ff6651f3e7e79565e5f68dd9375de7d80bdb7335a1e237bb26eafed535d9198ed15315b627103dd99c38a76cf9fbb2fcaee82ac3e62bcbae7b0adbd3cebee780270af683d5787d4fd68d4fb73dd7cf0adb53aebd2d9f68cb0507836b8cab8c0b8e0b2e8d2bfe35ecbcdb7be3ebb7a6272bc326fcfed484e3b8956bdaae36da35d03dc352fc7caab272dbb2ed6a7a189ecf940b0e06179a1a6f7b2ecb9c38975c266ae41a168934175c1a17105d8b443a251aeb3427ce298ce227cfde653deabeaa69a6ac6c0adb3327cec0b99aa67bff6dc7ea1a0ea0e9f54bd53fc7aaf95b177d3faacac2f604b667bbaee100ba5d44db060ee51b089470e206e2c61b08dc327102ede19c3dec5082e42201400a34499c18d1457689f80a7102048a0fa607afad131df00e1cb636d0c51e1e0e6d141a64ffef2dadbb5f6738817fae43d6897fc0eaf2a145123d0f18ce0f174a5840e59fdf7d14154ee0177ea030e746208809314e13494840239c400020a0443b06fe1b083ce9d8152dc61f07b60f423870d1936ca0b2c03bdb2e07c1003857d342dc0b49de87ab134804de76eee3fcee87e83e2f3d5656ae3ed1d70d7aac0ae1a0d0054d1235d67911f4ceabd43b8f52ef3c087ae74dea9df740ef3c49bdf322f5ce73a0771ea4de798f7ae739ea9dd740efbc46bdf318f5ce5bd43b8f015ea2de790bf4ce43d43bef50ef3c43bc371e120a5d90a44f63570fc67c7a24759f9e02ba4fcf8d17224cf40daf4f0f59f7e5b9a0fbf2f8e9be3c62ba2fcf5df7e571ebbe3c69f7e5f9d07d784e751f1e3ddd87874b84b6ce22abfb003de8be3f1474df1f4fddf72753f7fd71a0fbfe20eabe3f7ebaefcf9ceefb53c64205df1a54dd67e877df1a50117aa5a3de2b15f55e69c841061168dd274245ef9d46ba4f8487ee1311c11701abfb22f0ba0f02a8ee830041f74150a0fb20d8e93e085bba0f0291ee83c0a3f7a034e83e0839ba0fc259f74150bb0f4257f741e0d07d10aebaef81a85ecf82870d157c50cade83d2d57b503cf4de2ff45819e93d5677efb1927b8f139cdee364a6f73845e93d4e407a8f535def719a7b8f935cef718aeb3d4e69147a0f12a0d07b8052f51ea04ebd078852ef017a042881de036440ef01ead27b80a0f41ea01fbd0768d87b8074f4de316061a05081422f4894de0b72a4fb1285e8bd203e7a2f88dd7b41e682d8b8f2213041f721e0a8fb1040a06f4080acfb10d8d07d7b22e8be3d78ba6f0f98eedb43a4fbf6cc75df1eb3fbf660e83e3d15a43841b65a367ae98bb443efa1ad7a0fe5d47be8a5de431f755f220abd8726d07ba89dde43ddf41e9aa5f7d025bd871e7b0fad7b0f957b0f8deb3d3446efa12c7a0f6d7b0f15d17ba885de431df4de5941ef9da1306c39a8e0a360c10116852b79ef5df1bd77e5adf7aec0e8bdb4edbd2b2c7aef4a89debbc2a1f7ae3ce83d2ba57acf0a04bd770917306cc0d23a7275a9f7ab017abf2aebbd977a63d02002031e0308bc07101e507830c237e2ecfd9cd1cf9e1a14bda786ec3d3559bda7a641efa529d57b692ef55e9a47bd970650efa5a1d37b69c0f45e9a23bd97e647efa531f65e9ab9de4b53a3f7d2a0f55e9a16bd9706acf7d288e8bd34bdde4bf3a0f7d05cd07b6848f51e9a4ebd1704d87b682061e865d010a1f70b167a0fc38408602a54c8da1a0ad07b4320bd372cf6ded0f7de70adf78667ef0d37f4de300218f7ea8d03072e7a6760f6decd96c01032a433418bc0c5172fbd735972d6939ce5fda6d5c87c4d932b50b20459ff61fd87aba5432d2830d5db7403cedeb54ce9526af4b600221083dfe51086e9086611cc8c4450571344da73a507bfb58891451f03ed7ebdc00350775faec77aef6e947ae9599e60f1af1b0e3d51cef0be7fb13d1c8ed573f4d07f1f349e1beda34f630361c77dff82643d61128afa88fb26d989efb129be495df6a5de7b044b7daea681431f42157e97454f746db436581bab0dd5466a03b571daf8f73f4353f674d5a3bfef31f9d7f4fce59a464de77f383492fddb2eab693bce69329906128dbf383bb663db4dae7f8eff384ff4b8518610f7c2fbc301a443a8345129d6919a041942c81802836a0600200163110030382c1c8ec7c331d16c4e8f0114800264a672a6521b0ad424c9614a31640c013000006040004064460d4020604c91dbf556b4b72c5800ede52ccb3cd7fe5f4fecb7b817f064571880e895de38ebd1c3aaf8fda00b8259e2fdcf546cdbd14b7269be90639433ad79fa32ec7ed15b5e4aac1f16d6893d0665c2e8922e21e329219760ec4cc72c86b14f899418c0cfd0e069a89ecc1bb087bc3a9a66a7037b1eef3ae29b4f0b21880154a6b34a234d9968590eaf5dd2a0a83cf93f5d500f605f95fb4584ebe45ab25a5c6db3a16802fc6cd2b14b2ed2a92885906f68063c137172fa448b154e5a9db2babe411cc01d5e809f2b013c354d7d38364f4c9abb29bdef73ccbff449b4b15969a13c75bfb31f1932f53e6ee74ad9abc03762ef80c59aa77ff2633a7599de53d23f7508c099880f36f37891ea9584fef6659c8d05c18ec9e7a3fc03a5a845b08ab49afeb37f52637c4b4854294339fe6ff15b4a58d13684bdab74dafa5d11b9e01ee23d5647215b881fc4a86307b5c0a2d0fbce0e924ed7458ab790a267ff7fe1a68d392084a51ddab31396ae6224287b8bec46e13e2365feac664b752bd5e70e854bbf70ba43431f00f573ea85bb9c43f21fc99bccf19e4eff3eb3830c4e9f5e18bd2fec502adf4a3ce8c5b9757f4a05c03d5b54c41c41aa45f2da8d65c2aab437c1cc5c0bcf48cf0a82016b8e4c31c3e6860a8abe5952c510def5b9ec3a81628189ec61e01c6802afc365ed7ad8ccacf684b79c0bbfff5509a5eb261ff14acf7d906e895971a3dc583d35524aefb4a648b51c456f295055bd9436dfada4a23745001c8aa3180b9c6e16582c5f966890ca1fd5cce849458f046831a1fe3d9a79507f6d9eaa6e20e9cf920673332a7e992a8862761db8d1c11cfdc5cb0c0b1030a94752ac681ae5f6a41b5c73d3b82d921e5f2a248d7586a37f3e38119424ee7d102237205cdbf1a08dbca83be26705c2a2f330ecc3d065c232a8186123b6ebbece41cf45f47866a6f5185cf235450304faa8136d0322c27f5adc47ad0cbdf7a32556dc37c00508808fbb64965e29712fc466592c882ecc4e3ff0d81c33d7685e68e96816aba6fd951a4948e155cb6f8188e5df0dd33db06a73f77bc4fea5844d8a931a6a831ea3a167747821614560f5a3cc2036be5e944f8a8968512f9661416a315131611b77d0d191287aedd829f31538693149dae3fc1a4ffd47dfb88612b68aa474449ff9b5f4a16046ffe3750c79094c24f4da31546ca2e1f9df3299ad8c131b499d9817d3fff03a1e0ba3029bd2c703c38a89f837a8ccfcfe72652b0cf3f50e2ff3a1689e5ee409cbf803d36d49c727f490369c1c1a310a4217df341bf9cbedc6107220265a1779fe94684308c3aa34316e05bdf79204864c7e42cbe5f41543e43f3f1242ae3159a1e4033738d2ecc5752d8137f6617e9b1d9dbd8fa320cf575fa2451bc6bacb2df35d959e7d5a25a7018e8541def3290a9b084494eb6297f336326f4d403d85c80cfc4198db84f6ed08bb37146852345ef49f27ee1cf47303bbc85af0fe1746f53111a87fafe2051601baada53c75251c5ffce6aec153a632dc940dad16c346faa4a8cdeb17f946b118f76d55ca9cc381d28f598bd0525e87632ba957e9133d34689f1bc83fb2489c03268bc57dea0d3528e22f97acf01359163423aaba0c45c1968d587b07f849a3e4128aac52f2df70dd7e65e67ee8d23ec3d4a585157d8a969a468c68ddc263c190442232062877926f66514071007cc85e72b5762b8138c31256fac0a1ba04b373716ee8898d73e0475d2a1aa416983db3d60d9167d58bf4c0f3649733b45753eaaaa14baf44bd98dd2bdda4add0982fc95f1108a37d6b4200925a43268bd92df0eebb7f9cd376d6b34487ebdce1e8aa5341aef689075f38f5a6144d06e9b1cb18da76eef9fbb83124d2a73b0e2986083dd929ec35963e46176d0a2dce113a4713b1f312bbc29c0edc276da5b1734c344eaaf13b0468029f8c9a32e19d4c5a5282342c8d8a0dc2089695a880391da5a47b77e097cc2f3b15c6df59f0f52d51c6d3ea0e6f35e692b5050069f30d3df6710b097d155b1af2608bddbcb016ae85252d234122a27920a3713ed04d414f07cae73eb6034d16a7d5145dc680bd98c95a19e181c16d68c1879ad2e28efe02d75b7f800ccfc72d00a805eb91a74d69e8df0ab58eb955db761a179c4d9bf92573f559fe88918c31c7fe753897f418b25dd801f2a2a7d667b200dca52a4c488ecb3bf48328651888d7ea349a8ef8f36e447bd9b2284668bc43ea7d4af7ad0b4c0364c5f04092ffe2cf5ad3d8d6ea8b9ebd61043b2faefd56a6e0fd7fe3b753202c8cc089de02a4f2d246fdb9e185fba5f2a4ead6684a4629f4beb6d9485cceb57dc1e513eabd1d909ea2fa1d69c8d7db482e906711ac61773021fc437d7488750b06a33f1dbef9cdb7ac714d35b5c943f6c30b7fd552f5fed022c2c63a74401fe29e54e74f204bf56a4c3478d7b24054c5a37b5a5b8717399680629918ca1de7b2f8a0735b5760f1d551574c2807ecf2d53153edcb83038bf16e9e851287921e3178975fc767a3827edee74b21d74db10b385483cec1e26582988ce908cc2d19aa9c6b82c420222afb731e4ee782e2269c762f64a3dd51c1c81a67ae0a3151a558469b89dd16f5e3160068d9fdcf5bb7652da1b6ce0e30e2d9731f1a6029c68954e2d2bccc1751867cedf1bf3ef9497e6064b0c91e1c5894d4b38fd54edaf370b3cfaa852647e2539ec397c6feaa1232835c67f4e930f28303d099800bff0d3eb8302763ff77fbf7221dcc52ad31a5da23ba3fc00c17047a99dad5645a4ba92c6eb569ae9779b3ef2e48d99847126a862fdc7498a62cdac3cc7d71e28d4cdba8bc5d8e483227bf523921d0fcbb639a6d5637ddce8b3157e55505eed5bb7a548a1dc35f50a2f6d86e25f4f8e21fa0bf4f0ff71b804687f7ead82ff754e3994be4a771cd5d4e848be4c517d33d54c7f5f28d69c23245efc0d784dc1263a633a867a2d9c0421b7dd74aa6ebf59856af626a7ee291487441d53c11fa0bb3df4b682738cca2ca1be4726dd6dcb56127450cae144c807d823367ffe603447fb81f97400743a3d55640c6b8a8ef8181f89d09706c2d7962562f3651abf24ebcaa2adebb0aaeba6288e90d6cbb7075e9007c53e4577167c8c45073447385aadc0ddce9917c40b7f398a4598c2c2d538af58de664150cc8557022cff54c8b90193186ecc3d3774662baeadb12395734ea6bae8920013784230ceddb3a0e1aaa8d4e5a7e1d5b32f4df31f2db659002932dc5d2cc2dfa115c2582a3559539abbb534fc83c57cbfa6d1be4408313a8e978e47a5c9db660f49de679696e7035627bc0b8aa8f9ac00f05cfa54f64cc0b079d68cdc9f69b86a93974bacd72587b34d2334e198521ef4ae4e3e881196ff12eda6f6da4c4a701f719e54593b11a9a4fcfa4020215d0dcab7007d451fe4c2714d17328adb36a30402248dfcf033dde53a61420ca9129128388c4fb2c1c7fce71ba1b23b0968f69f58a5aa38bb3a687a41c0839c679c5c3cdc118f99b310ada0bfb0e76179282f18c0a8d004706185c79571f80302f6918bcf4ede1800a670d47d4cb11c4bda14f5ea3cdf79cbe0838d4fa8d9b62ee0da331d08e627da53bbd1b4bb7a5243eee57a6892a3e1bcbad896bd302b4edd68b0b5b7b2f8458a88d479735e738ec19018698f88b2f00587806c7fb67d4f44bb195cc92cbb71406bfedf7c8c3a31774e0b7b06da3b37e772dc44631bf451367f7f33c746c887c578ca2e19a9b1612f58e0248f4eff8dff468c008e0fa021641fb0006aae0a65e839e295ba750820876b8cc2620326b91461838903f3981493c29453f62107fc344d06faa8ac0d67016552ed005a6382b07353bb3b278eb3e19623e896fe8553ce798b4287a3056cac6c0e5baaea7ee44ff31d5f1b4b78553e2a34dd16c02db0eb5a45d1113de7cf9d7bd1cbab02288431ef609a72b216e47a5caee47bf457a484bbb0451ff86d37c52e0bf34bd5abf124e457a088ed057f8314952ddf6af714286577dad1a5adbfc46dac52a3cd0a327b5f2ea90d449940a8a950ae333468d9cd8e79c36725495bec88825081cbee07a625aa25a1dee757edabb490060feeb1265e78045fcac4746f5763e653557717889f60be78f7ec9f23dfe2c3843d0f38e9721d90ec620d22f3d928377d5f740ddaaaf63fdb0a74626bb4b8242378bd845870d742c0f9c32222792aacff37c9248e2f1e092da1e11d905d02d21d5daf41dcca76399511827576f1d7592548a30993da2140057e7fc6b0e140c8011b386abaab6b53620fb45eb28bccd1a4878ada1b70fb18221719958e766177c34b59f2623cd133902e59ae9dbd130849678f12e2786295bf2b2d37968b5ba1f544aa362924867d462d43ac3bf13a85b6779a77d401bd4dfdabbee1fe8efd6b7e7f8ac364cd28b1027f00e5af94486182b562735673883c80fc9aed667e465c0a26e9bfa111fb608db433cc23f5bb90bd6d911134d62bf48c03d896eae6d3a4c02328d697c9f1260b11c32f6bd80be24fac5370a78bbd9f57d9b80c59ac5715f95dc977c5af3742321990380318be4c3df1c52547fe0a2d20067ed8c9f90cecfa77ca2e72b3f25d498a853891c9c5af4e8671017e5a75c511f113ea33b3c82d931922f7109e1e60e003ab87fa54f5c1e5672ce88d57cb394144314d95261dd04d46aa0e88dfc32e8bb15fa39db1dfde9cf7d867415429a989aec3e47dbd3f6d8508627ba61eebe811d725d3a85f489da85f42584ee066f8d1afa909fe0b5506b2afe3fc615600238870323a2685d3d5166bd09c4b87cd6390e910e6d1f314d1b4c4a90fa85c724f818ba48314be2a822c2d4bb5bfbfed6fe19c22f931e272b92f6b7947bed9500d09a40b7a264ead6572e7926b577c56798ae656b838656efae11dc68db0e59d072b8af6018385abf4187a26de5d9ad8e77b83e8f01f8a41df362b1431f74947a674b0f8ccdc6a0bac863330f3f311a95b38637ccc6091bde5db765eed7429127b36f67d2b4bdacf4e7bd721e77e37ae6a51c90ac89a5523e1e0b636b1ffde26abc21d133efe73a5f16c6277d38bee6f98916ef21f87fad2597aee4c432b9f89eccbf9c6b7347a8e6fb41fbdc01c829eb864e86bceaeaef04c95da6ff9a726eadb076fdd24467fd656fcdeba2cb706ba09943538dce13c7887513e6d3107f539ad547015e8e462ec4eecd6bcb7bad83cc17c261ed5b5371c11225ef82dcab9d8928d67511c930fe07e8c467b9248dfe28d0c248f4af9631c8a419f0ae9651df1dcc98e75e2eacbc3e379ced255bc47948bafcc32692d902bccfc4325adf3383f810f2ed03f30919867f6b606bd1858e0de3f8bcafe095aa3bfecb1b9d5b790fa34480c3cef18b73a0690d0dd9ffbe8e17cd24f26ea7432b3e41ccd96cefc92ff87fe8436833ae8fe3f6b7e439e64bb9f57670117ab3ca295bf02172e17c6eb41a4272d38f78040f559f1bea11fcd982e4574a33929f217d3aa8eda1e3a8cee920e9603deabaad6ec9f4a5a90fbe6ec05c2c1c0698d127d1a347aa5fed7ebef96901933ec4dfb1cfc379baaa5a7e97d51f6a33e0616f7a4eefd8568f3c9cf92edb9d4c8b24e5eec158642ceb91cb92e3b2526ecfcc1f8ce8f5639ddceb9a52a2da5b193d941777b5870565534f4f3c96873aee1ffff0dc86cefd859a7350431dba1a0b51237319a2e73a1f5466e69d2eaaf6d2701aa0f2f8f795c8737707a39978d1771f05e2b2ca4f439be6cf3f18ada7246c9a033da6d0b7dc172a2d94c1ff90807c49c24ffc97c58be072c87dbd71f4828332badc891f5e43d6ffffdcd8613923dc82e98adb1bda3e74dbd543ae24a8b33a5d2fb468df787ad7c0372566af76ce77b8a18cda361cba5a58c1fa792ca4660f29c9b5270e2136956f0ec1f9b672f589a06bc580ac09a5ecace20788c45763b3af1492f5d3f8a2d5d9599f0e94bd2e8eb48af211ac9401b59bcf12e914473e3eadeed7757a1a6bc5eb7413cb91bb4f1406023b6aab1fd5cfa8843e4dfa74028f506bd7133d962f0a313ab768877f414e7d585d9743f4198642d787fe40114b92a2e25957a8d14b8d8f0a5f005a945b997ff163962aa7e66071e6e3787e184a9eace9b4c775dd1e87117e033a8e8ba9e7dd47f9b7bf4e40da22ecff3f514a1bff8b930a94b80f8aaa47adb74574a7fd396b8572a97721bd3ab82edd37c2cda4225d6b3d84cc92f6fdafc6b1b1df1807089f3ffada80392f9bcc858af3cf22b1c9aada7bb6f2add61131c3a71c1df7aa47e3127207484dd99cbcbc98a08e08f30cd109fb26a41f8c8efc52acdba3224f68bf8ab7960b064d7bee73bef5c57dc7b9fe5b8e5d28d63694ba7a80d98c460a21f9d5438b8cf13f154310d9fa81a753bbc07f87413479c775464bc7da04d71df6dc18bf1ea9e63a52a23b15665fb7db86f7e34172d98f735b9b819bb96186ea68338b785f79ac19d0a55cbcaff41fad7f1307b70afd42ac736d7cd7e419be55347fad6806da380859fe56caa3fd42ed33244f6f1ba69ee37f3b8decd32e55b681dec7b8379a0e9eef8f74e0715dfecf194eab99e6f06e519484c5d8029039b5c4a192171159230b045594415a22daa230a8a174c6a2ef5b29278040212c6420ea78c81b2f37cb8d783e2c8e10bcf72e977f137d2ba47ac00f263b2c0fcea7bcbf7ce432221e655cdc3e16b074a54321f9d105c5722e9effacfcacae6d5a4697c531aeee59cf43604510c34b2cf8d0ce43fc54c14081963c73a35add148b4d91fb02a1ca077fca2b2fb453405d67ec3a039cdfb976e66e3df22c5c99cb9955ae5dc909610056f6865e2c50dbe4bfe7efa080292dfd2f2a3e2714efdc7782c2253759f3b91bdd4809421f72c1e5bc66209b92141ce7c7bf1724ed7f881db00ca6822d74e6e99fdc7a7b44f9a81503b238ec5f2f6321b33c0ab60b60d34c13b9a2da13c68ed218758fb3f21d67661d773faacea51cef787988c4cef6aef7cd89ac626b063639aba1a466a53b890f63345b0d197cd7ca36343d12ef314dacf3e02e1a236d1121add527a070b69c49fb5775e4205ebc274428bbd515faf1331de54a05245ff5f402be9c6aef3a050ea79d2b87d93e1a8850124d2606800b23049981afdeb2deb9b8d292038b49f05d1c6e33a053a289a8f0aea24a3730896658e8ad894ba76d42b9412d1def126b6944330b6a44396d5e76d2462b7469a3cbe8d656981e698720fbc8586b6ca054c3912f389b8f6c44625c2a5e60ae3a9ed5589ce312e595d7bad275bd80f4cc938e98581619e341d37ba95b6f5db5bb7a5acf358468ccbf12a0aba706def5e399c3985bba83738af3f314001c028cea1a9e9b30abf945041f466bfcae3311be08d2f707ce6441a16b600a0b202f66716c80fc005eb57f84a448a0f6ef6679e98db057f0d7dcbd1e5277fba562a62c990768d29de489588046658d37fd71d8df2bd81d2467aa030b209c5ba5a4cce0991e5cdc9bd2e3a9ae3e9eec7de8e0af674a0c2ab3da856bd133738d27c30534a6f4ffa42da9a61633e5b99e425095c6994fbbaf54adc29c1bfecc265275e7a5671a308ae7123d10c55585d5acdae1bf9eadcdb9074f374dfe1c6a1958ca3b98e50bc21459bf9a70b91a4329e03708ce20cc06cf3ef27bbedf7054cb94fb30bfab9285dac24f4fc5099a9c75847571c92f1d818a7f75edf25c15c40ee5fb7c064761954e9de443ffe5e7aefdf10d0cc2b3bde4fed1dbf8b9aab6ef314faf2470043b4a08a53bba91143eff046c7ece2cf27dbb5e434c847330b334abefee0f7e776377fdbddc9f9627837d1cd8efacb33ee83776c1d4606896df901c69fbe4a66fa1bb6f0ce7580f663c2e837e0bd57f7dbed2dbccf11e9878010aa18de483b903c1d78d52ed418c822f55867718e80924c8308568f685812c330d4dbde85c15efeaa5fcf84db10e5c041105ed611453a152c5f6718fca9fb058d0b77062d6d8b3a07baa67800c55b4a9761870b98831be0d3562a7789c59c839c0854171cb1ce1495d534024185005a4e556a388bcb51be5d0775489b7ecc889f15ae361e57aeaee502ddc6cb1ca024cd57bc23bd66af0698d1bedde42a4c4766535a2d8c8e86437ef53e394cb82d0c8418b5eb5b5ccdb4eff6ee751d0543ce4a9c725bdddacf7ecf971ef8715d1db106fee9d683ec6f22ef71172d4ed7f65eae0ce2b91152f4c9681452707553a64d1f38586398452cbb155902f99a1a1c5c527caafbb57c05c45c6172b1702fc732d645c279780e11d82d62e4ae47b55f4cd62d78492fab335abe0342e269d83e26a59d3b027f96a5c1d36048d22856234d2433f89829eae88257c48f9c1030e6bbcec2f893967dcdcbda74d25a738c8035dc3b55d7f32e1f09e551e2151eba527b01709a300e0579f7ba034f8a37a8e90404df5fc1b2da8a449d5a51b6f85b787c936cbb3751a1c4ce0049875cc836c274201daac2846575ad5207112e05524c44d773a81aee03d675b6879fc621c1f4bef32d5df902ae1f8e8624ffd80803ddc86d469bf02762fb3d6d457afb855026b8b0ca8cac91246cfec1deda7a939168f8ff14119b504317ea2865f04e081bd897d6a4d10297abe36aebcb855809d2cfae2101d7e7775f5cf274613f66865db5b9a132eb7de366c0fef85db48e4a2499e761bdaf43951da6ad1b577d38b8d133b5a621caab45760ea7007aa9af9a32c1a1f9c05e18f313c05b9c002622b1c696019fc01e49e4209a0b84e4218c94817a084370899c6240223a0af980c52a8442ad00d18964169c408e2112d8701e447460287a1e23ebb1420248717143ea3120410c623501613a4600aea23849d8c44214af102916f401a3062fa0ac8220d45a8321d606119974680285ea2b2982104a35837319844a41651841f80bc4692c122d055941c51680295d1050e8fa124a248711197c10c3230657508c14da60be192b69619e486b3cd126d3566a38a2d9bd750583353ad44d488fee7cec4cc2b00a112ad2c3d20e1332d91502471102e9b61680128af9728bc4948294e29ce40c96940327084e92b403e69a8c456420f78b80c4b4a0441dc84cbcc0c42704aeb25164e12d28b52886b10321a930c38323a8a934b1a5a2295d0cf741a89c848b510844f03ce384d9a4ce52e3b87a023394f208250568f802041898ce28ec41a1ada8f4ffc1ffd3343e0ce8b3958e42ee2d416b8944d0e4523425802a574e5c8f0096a22c88c8c9f9cc91e710aca95d02276f8398b24c670d49161e27ebbc45d5953936d9ce76871145d75006db9d39c0f570ac337574f07ad9df7b3c3f39b876c4b90a63dd942d642448e9e1ab4528b673a9a5ca22e3617ef3a729b6d4c83c902f329907949f8a0e244e9759632802c476ed6e6a12c1bb71709366930e381ac6ba811cef870c87338ef7f5a8d5f2a1a336038d77e2c90e77fe7a10bc0ff040c61a53be4ce9cc14a7ffd4deacf1759bdec73a07f5031f65d2d8f5fb49a6186fab17134fed2f99da23c3ef947b97566c55346fa1dcb39683baa04cbe5edf753480e2ac79df58823dd8ca3a9c79015ba398cd1177193cea8553b90fb815eca60ea49ffafd36e22688af5b7e5d1e8a295d0f69ddaeb27ee209339e509969acfc3aa59b6393e24264f373e236c6dde129d51b4a6db43f361f161c0ae8bf5410267c2331cf3cd74f0b9d0a34cb8baf418fa32c7808903eeecba8fe69d92f62ec5765f17171cfc5e23f2eabcde7b8b85b9cabe661171dda638810d1cf143de05b6bb0752ac5b206ef749c3c9a05bfe06d8bbc56c5c49f1a07d6f45fc4c2fd41d1578ec386fe4037a93749d4792332a900fa7d984a37b534c1b36c03f268cf1b3d8a82e234025828e1da55fa1eed05ee7f22cd76addd7cd628b961b57e15e5b21e0aa1f6369f5c03360db22fcb3203a5c8b8a76053a7f4f71c7115b27474e50c7846ae7d50b635f64774dcf5d15b460c1d86051d1864715c0a35b718c553f1af01ed8742e4711429082f0c56d0536ea62f6b5b1e53f8a7e600bd95c0c9d4b8cf46df742772129325255500060c83ff3f6e0f8657e0a716906b7396e1b7fe46222e9fd263a2e69368aa340ad897c3d963635da2b0c601fde5aaa6dcac4969d7f79e72c3b12a491e61a0ea0972c9b0d6e91d4090e0f32eba3b0842c4819940cced45433b0fc9b9cf07ad2323eea02b70acc28690cc46d3253f46b0d5d47501b5c5f7668560ae199f30b5204e89f268dfdc204284d75466de2a84e28a33c3114a88941a1e08bd472950245a60a40d229b2ff8815b27f9ac5f9956bfc8817cca25fbbb484610d152b52c8b8f22919aeffe48cf597a64dfdc206642d6d73d50d71c95b8102473256854356e91893d46d2f76d057ed3657f06094bc02a8792457f6b02f7cfccab758fa40066adfa4fa872080755740564209c42b830ce9e07821044c09479542205a58871892a786b8cb21013ddc5c106129e26e49c44413ab2b8a5caa88b62c52ac8b0b84113c65dcaa3482d5c6bac491983ae2238f1cf471ba40024721b725125f8d2c5824a957491c3249ad4e6e144a2028e538a9444b2b6b88255f6a89442e59d4cb05c1049362ae904ce09a59976892564d8c6493bb6eceb67082a18ce6514d808556e842bde1e496e345eb83fbff2af2071dcf72a37c7f8124305c5e276489789cf768608b37dd1dea9a66ec0fcf4ba55b26669bf2bdd958a84fbea0ff4a7b5f20db3e415a83b59f18eb41c7a26830cad58e52f6cca5d7a8c7b5881409f9f8c8a8b326c0ea40d3beef58ee441747ca88f9e313e11656ad185b5e668655840fbc4b330a10073f26779fc418d7f2ea1d676e343792dc3417250e170048f834d3a86b5e4be26ea1a77c350f7a7678e36b3bc2171cdc9685441d3d079122aa5ded316337d6ddf01239a436d20ce817f4fabf8d26dc006fe873f060fef6b61d1e3f9c87cfc6b23e2a2c2ae42e2e13024519b04a4d36e6b0e01a0f73e198063876e3edd4e66cb854594e0063fcf571ef9aa3b2d3e3c99a6259f7390cac612056a7f790e18a21d0adc365864da8a3a10f863e32f4f9f61897ade73234167e97b1bc69b8893b0e3bca156a04948f8020789d784bde623409d2d7401b0c7032a20481437a1da0dae4afaa378b9e724559ea0e5567f4fb30bc40db81aece2211be34e322d596556b6a4b8df098f51681ce277d2c7d9d6a8581babed73f2191ee1294b690b6fa7078034acc2bf00000cfc49e40c7bf64f3b81419e2f252e15b8777d983140a8eb4da079c1759d596e009602ff7ba0055d31d7fccbce52ab61dbc4440518b131351f0de147d6fe8157fc816e85ecfc9561218eef7f2c85fc844b618b403eac64878235847bbef67e8183d67ff8035535b2187ccb5d64819ba9c3cb44e83b4425b198f95b50b659ac4d8ecb4469fd8dfa77733d937974939692c50689e4f189d18e661486f4a73746cd1476c65169f48950b265baac243a62e121b1737b8bd121b10d579d94161130a5c7df24063ba8fae403777d22905523f0a210b991247a6283e096d999e40b3f2a936225a28aff1c7b8cea02e716ab4a895207b5806419fbbc0041637b773346265849dc913a430603a140ca492e98ed82e4808c221d84513af6124d914afaf4f469357ea9c68ad26fc93dd7930bafca012adde566b077605d77a70ce0b82fc644d9bab45be28d2d9a63a0a87d50706a860a9111e2dd1b213207d057c514e9bb678bd6aee15045d5aafadb6905b0bb9a910333be412a1225e7bea0429dea9676e4591abbe146359c058b80392a07e1df2ba95bf6f11b30f8b8010f77a469a9b407716452d4eb962fb75a833218841aa3b8c74da97abe7648a96c510be9f2125ecf6f4e765be3460372d9f9d813ed91e1ea813df194dda484d4dfbb05180bac4ab37250ea06b171568cb23fbcd74923a400242d07d119447f1d446e288df76bb967a6f04c7d837dc128c63acd1246e2a5e25eb6d7a516186b306b9afa5fb7c7fd46fc43e6eceaa7d6566dd20d0782836d23410803917e805b89da30024dbdcb0ab0104daaf9c1681c571cbfe6fecc30324011f60ce8851f8bfa43c5b03ff5a9aff5adeb0552b5fba6634bd50e0f07fe6818def32b644a3d20322037d907c61f3a61c316dea35ea62bd154e6800def208e7bb0143905481f702b3c5f8055d043728774745f90ed3970d525a38ddfd4551629ab6e2f38953bfb6ce40cb7ada7ba652884b8dde0af9c6fbf5bbdee2a2e6222e16785cbbbb2b99fef10dca89b5f47ba0ad1c3d47d609d7c6fb80d5df3cc503174276585cd0d47ef7cc777c69c4546d88bf9050fdce05aa36c2d4c57d0a5d8ca69bcf9e130be799ad336b971f7974a3a714d983ecf02e2017349488b1b2d35de684ae0088d8d359935327f19c48b94cb405330bb5f655eed47253cec1207f58a27aa047f6b5246114e0b855b3f0baebf11e1045741a32413bd53147e9780eb72a04c5dceb3711f2276f3674d52ee3fcfe238e32e6420fa87408fe1f956f2e7cbacfef979f7b5b98fadf8bd4dc1fdb24daf747d96ae4fc5d9aa4b4fbc83a1e708bae164edb2b1ed09ad387eb0b9839a7682390412c5a2439091fd43b317d78dfacb0e698b504ad32eac3f12b8867faa588f7b2841ee7c98bb0d075f557c530e8de2c9641aefb577b2a2c5f31188f595546c7cfe6f52e290aa701d78500a02326ef7901d78340fa054d73f86a970e7cc5d853fae54980217f66889ffb18888feb9abf6d8a8a19f302896fb83c4eec0386134ab47c0f716176b2f0e864ac8d3ee97d93af84d9130dbf4b281ddec1fbc0aaaaa345079f97198660437c8ba4d7ba80cea5aab178c1dcf00d725542961150e7a9612c16248e44429681ae1f41487f84c7afe7ab63211d3506ab9bd606da496125e93d7dc460d0a7b6e9a14e7489cfb31a14152dcd39fd520c6b62c8427fad3b1604af6ea8631a8185f3fdede488a3fbaed77badd27dc5d7334e43f104707eda89a79a53cd3467cf4e4c37db9bb4109ae6f38c17f9ea7ea11613e4ca531e3b4fbcf93b8f14720e014e84f29036dd9cf86e392312e67d1b489803263904ba76c31a1fac959c10cf2e98f3ff0ddd651bcec4898da3d43bf64d46f83623ff1dea8660ee6c2cba139cb7ed31a5ceae49a5dddaf94c7eb188687402db583bd2e685c92f9f763a713b8cbbc633190028bb3d1b2af9cd4ae42361dc7bd4290fcc6bd023065e6c2587e29e0a4bf7c46e7f1c356d9dbaf1241b76bad0017fd691ae88de05cff31d1335e3ed146476e8385d3b83f5d16e2bafd2799ee76eb9b1667af6f54b98fafd0a9d5cb144045b870f1298fc62c46e414da512aab13d7287100cc10bfd1104c1ad75f59b3f98950cce8c5935efaef8cbe3fac8e56d000c0321e7ee938402ea9174ec3cbdc42b3910edce9a3e8356fd6034feaa7c98bb70064b0807198e8ceedabcf764e08184ec75adc78ecf671de43369c7bf335823d7cec596c79ad0cbecd8c56ad53206bd8c45b5d78eecef3507b98b37d6dfff8f81ade54156ee8062eafca429bb4d23828e260001092e0ab496bbb1fc78a33861486c0243d6f077c7c6617ce9e9fbcfc81d7c7b27a279236388bdc13e8b030c6397d48e31f05e859cff8248f08ef8c17a1e69e8a0fe12cc4a3d3ccb980d545a4ad7354d0c8ccb9c853bfa73477745782411e54a478e080ae549a0959b681231945fc860cacaa7da0ed0b1770046c2bfa5cecd555ec894435458cd02738f2d32639f649ff5026464f67ffacb7584417106f762314bcaa472e07f2a5cbc2bb7b03dcf39d13ea7b5749ce1a632147805435d50ebbd2965391eef59f064b7ce8db5c32fe38a7ff4306504056af9fcb3f212e656f7b80e873f4c35bfa47fac40b8558577cad5ddb17623f9c963cd4857d3e93f28f7d5e1ef1aba25f872c284f62f917ed0d7d97d40cb3701b88fb63710f173551b31b66c9121c5558302b6567cacd354d691bce5854128f0a62c96d6cdcdf911f069adad74c154d5df663f19a9bcca16c1877cbec11e4a22986659ca60adf9055141873487a115c30eb5f30b931436cd9abced3376e4cb74a07324757299057b2298da6ddb313dfdec0ac64ac8ae3366ce2212250fb64139c5256f029bd6eba925b251fe577b3883d33378906bb4651965ae4ebbc145d86a378b73d5963ac901290da40b73e265fd7ad594ea48e74300052900345a6836040b45e55d40d603459b3d25f08d74c05de576075ade6271361dff757ea61b46259eed97bb1ae6a5c1e37693ce68ea999f67ce3b60e4dfa3ae1ec0820b9882d33014b341cfc5cbd10ec3e217055477f10b98d0dde2a2713e8c7eb04dfc7f851c3ec5d816f0ca53e18920eb1fc9281a18767b42d420ba438d77af5494374954d2be885572a9d7453abdff71ed218696114c47b544677e57cf50b6960461b27bb628ef8c6b37d08f61fc78748d0d8fa3a66012ee24fd403cc1eff0daacec41cf64fddbe95acf19738a75245f41f815a9415a813e6451a7486f9b3df0a150d52f9544db4537db82105d47c55f51226655004f1d4c7ecd01d0086cec9d85f1e00667c1e54b69537d91877b36a6b563a8bc33f13432f7bf780eda46fa6d854f4bb0fa543cf40d9dfb091e9663bfd78522a9c7ca58caa36fe298013a48cf033eed60d1188ec797957a6903e459737b52db46c0e594f6757ab5a01927769b2edf24cf8eb45b97545726a33b9814b9d01993ddfaffa6b01d10a02293f3d53a61cc05498c7ad087d5743e8cbc3b566cb3b4deca277eed7660b46b7b3481ec9eb6362d532c5f88a0ed05336441727f8e9e9917b7ec525df587930b43e9d4a08667be9754db97360c3d4d148e8fcf39c07ba7453285de4ae7e4731014b9db47c66ef46dcf91c3dfbd011bc67568d2661e415e2b96830a8be9f91f59b8cf0dd3fbae925af531e86eacba66793f2399a68016fea8f586ece0b5121792b5439ba42d09c489f1c06576f784dc487ab02d5d2b0c6221bb8557633641d9e27923f6f682a6b506e78a08f5bc8becc6381f8c52f7ec17dd0b36a9be768fb811fb600a9ce246d829b527eab774f3a857e5b87f28c9f67a0fe190100af22dc230f97b26c3923390f758ae5ef1ad05c987210cdc65b47e096847581fb2a9979977ca7666d407627157bf06cead4dd6fbc856d8ec54862ec9d2950751a5a1e479602c4d557496fe979ba52878e5842a02aed9ad1dbbf745d97fe1bd5ee1f72efa6d65f77a56c3ac6d42bbc01c4fd5504773124bd7b9e595f808d028b3c7c60ecd4b5a208d158474b6bcc8fbdc61b6bcdc0fc6230ad81f75b93c4bb5d30d73402abd212d9392c2a1b3ef733d9bbc2c1324fb3c98f72ace60a7f8f4622c1771de46e80d87342da6927060f593d4f7101b1895593a796efdf00ab1e41f02e76c0161e2cde8a60357149f179e6327ad5b0cfbf16ab5b78a44745909e8f7c7aff3c449e4183c844e75d345b8a16193ab847c645a61e415247ee41114aa88082124650a8987c8899884838b2a885c9e4d34a3bbb2bdc994704946b2db383a3f77afd48d6310a6b920315f719773ae310bbaf86d2ad87443d9f356a9b06ce3524f41760afc718f3294fcb163d8a0fa66291ff3565eada10776202e08060a1efa25b2e49e7faf3c676cd3490bc901f42939779fee0c6b369dfd1841e9236589f44c78a44a45fda4bf6864dcb2b0de8dbdd2ae00b765041d59bbe94682d6aea7687b94b98a968843c10f854b92fa9048656e88d1fee766c771a7f98d083908f3764baf9cc564fa834331d0fddf5c106e28d4c27651ee7699cd6741f55481e1d0b56ed27299c8e833819a615974171703abc57b392ad7ba36c0b0f42e90e6d3122c607f7d2e5e21f56189545b0c3c0ffeac3611e3a05fed982c87dd9533b2e5a0bd50b028e8148d23bddb950e3130b6a3a0eb93b7a68644d344244fba0d7acc7c83cbba7b7db963f835e00172c7be9f920a755cca73149ad2b3f04ef2a62964f4c32a84e40e8e262024274c7a3f305e0d5c8150682aeddf77b1b4189c9310410c4e1c9343ad19cc42f771a5c3baab59d2c500e1a7a22a87ccc270fd37dd00a2b2ab4347fe29f67701226d60eb009f7f012e93f6d656d612a60f4f6d767582a5784c8aa40ecc16a76458825e9816f1e967c42fc854282752d9976ad7fcc1e455c13b3381c9e03c650b4555836a373767dda2db4141d757bc9fdb66124272af38e2f8729998a6cd2fe095734f37c4b5aa2d09abd966cf6a70138cf7c664423f25efc5b479c986360e42561e87912940fd662700eb8e422c08d7f04ed8e6b89b31858142017d553ff66a0875a9b8476605fd9bf87f5e64d3d84c5a92abced709a6826a3820a97a6c9b1042bf4c36fbff3877b3e1331c70853b0943c15b07c13b58b54f65508aabf775cc3134c23238eac2820ee6488068d63d5bb2ce21dba4ff04f0458eebcd24176afa04a2977a3d9416141cfef94b05052666205972bd893e24852838f34421bbfc320e5501bd389fde4ca6611fc0de13bad0670093d4d171cd6dd89ca9a247f8ae15d41f3cc6489328d21c83cbc5b59ac916ca649d9754a7189d278f925802ef8099401018a2451160e09ba95f8c15273c7cd80ec5a99e3d3f1707a6f0ae6ec4c91ae7b49ad77c4c9c0035bf2d93be638196d883b941cfa910f5b255d26b21a306926ef19aed64169178ee285d053d84ebe5a64f23c9082174d05152e61e48ddb4b60f63a5adf41452dabbe252532b88a3e01318322c70e7e335dcc8f08b23b58461a09dbca87dd2e2afadfdc6eae4515f4348ef1967a0a20e4acfd113132fecfae006ef37a5a0913fc89e07c7b370c7cb1458537cabfec0ed217fbab1b03b210402f68adf9790a84202e3d789517687c7ff1c8839f3877b79d1f848962e1914abaf03a717e1bf12d0a3b20388070c41973f7a648b4fca8f7b7ebe70df51e57e06857f0c2da7ea8746c830b63ff92f5030e3db9c550c36d64e97318ff0b7aefc10d22435e9c0cc3a5f7bdb804e0d0195ce67864ef876b6b5678ee0bd96052a53f49b8d39e3cc69cb58968f0ab6e80a927758e4328002fd111c09ed261e3a766769aee66d483cf2e02e7795bd12a3b3a300099e1df09a1c78171980fe4c0e7734c6d3313e51ee6baf29390a1d730fe74d1553ad63c335f314bba190568346aa968151fefb5ba675940c170db83293926ecd182009ce01fb1013baff1c1ea4e5b723d7aefce71a117e4f2cbb9b9748b6df46d6ec100626f7591f75876bb0a3b158f0f14472eebabb6e638877a8098056a94f9f0cb9d227b51228be9bd01356130c89c6a5679820597e33abb472f522ab45e19d5e4f911a21a2b9301bbdf302d8788a7be347527ed2ba58705b8cb973031476c8261fd8219c981265fe2169020f45b2f5e06fd033cb0fbd27b0d93f978aef9982da6754add3c6e907d91e9569100e327daa7f5a92d9236856747dae1c35ba028239d0c782b72c07cf7799a57dd70d8551e4254346f81c4ed0210e058623489e304a9e13f3b880b2401664b2d4055c4cc3c74424dc6812fc6b81cc06408116ae59cdab9606c39c348ff970f0d671205d112584114078557cc03d3bd1acadd01cd7e74bd51823db71f5afc9d12753a85c0f8fd8dd9711a5cbf5309712b598cabbd5f789345127b280e973600c896cb17e94eb8dbb7a3a11242685bc5d321bbc2f65b052838eef9f69e238eee3035b054ca72c22a254938fb76195cb1d8756bcc4703019e6801cd47332e0c650dae2101962e0462ca57d71e3ea4a77ae05914da77101d7e383d591aae1a6314e33ff10e568171ee3b60bc6ee6d9a6a6b9306015c03fc37a20b5c65e91d8eac1ac3b3593f0a633f0f434a76f9344509402f0815dbc93e89836aa5c1a7c854e4503007533f5e7660b07a12803d718ba4da8974714f4fadaf0ffc89e60f1ea0174be4e4fd9521a09318a0fecd0b43e2ee8468aa04484e2092ca194acb18681b6dd84acc87f0c5e1fb2b0310713b290b0d373f393df2f024a1c7e0c185809f0f21723388ae15526c5daa7d8a6c471c83459c0f41ceec84677e09ea49a789c832bc2542c933a214215a121ac491e43e80d669f9fa8aca0d42f2cc2043f9fd1349e76678ce6f79eb3eaf961fb83ea307f7ddb032ca874baa40f4be73f6ec87b1712566df8b1cbfe5591628a7012c5096d383735412c42311a93482f956f1d74ee4458deb6e1d3dc3547dd472cbf3a075c1c82831ee84aaafe1dc246343d264b34dd236b71786ca2de103ad505aa5253c679fc9407c0b93c64b1cf2ce50d7c7f2c0d5e14f73e1bc03b14800fd18ece040bc2e03b6436b6377d8a528707882042aae2562c04ac7256bb8171b23b8fd15bedca50862c9d9574388cc99f0e4003ffe65d3852e1fc6a836528fde6b98743c34e58210f8667a88212d93ea66ce128b1eba292ddb22fb90e97c92049fe25574d2812f8392e60b37b6624d8e47da2dd0343a66a9e2a6bc2e4710f6fd457b0e15b8c0aa2f11d966bf95a61b8e58bd1d4501094f1a63253fd5ac588b4d51e0cbdb580cbd1381f1dc702ed677324f95a561f6031bc46e14c79767408012f93e1f17813816cb1bde16f1113a6d6b6de6acbc8b868aeccd98c8d86b60b357841fbf28cabcaf94b565ed5804fd5954d33c6ec6ca0885819f5ed47a31e8ae582c147492e7550306ea8836d0681ab6b3c32d624e9db32c4cfe6d01d246cf0217271bada4a7fb655c853528ff28ac56b414b8fa0508a43d97618ddd92a342f2ea69794cde3cf75973467804f5cb76d9e2ec2888a19e95b2ef0a09f64f2ca961fb88e0b3989c80dee10b443587e336ed6ec55bf175cf254db5eef3eaee5e5771bbf06e39fe4f6bded6ee365a621540d978c3b21ed6f71b5ef6df29ca3d33ca21ef108dd4ab835825367fdcee65edb17345c67950ee205ae44a1ba4b79c5b02a4654f437fb44c98626ba9b8ccad75bdf53cfbd0ced33060eae8fb79c2770b927564673c3a93643b38163d6b72d2d98167041b261f9bbbcf1bfca69ffc5c5ed26591b9d08e6e954e21299ddc7d11df47fafdea3c5a78a7677c4b9b046acb8d1bfc430d3560bba314d9a73aba9af562eed567c2ce75c5463f52a1add4bff28dbbd42857623f7bb7326997517004c13243bc0ee255084d2546914423f6d68fccd6201339983c3a56a0acf386bcf557ab594ad22e28eb56b08fd98a90a407a443d067775ef833aaf4cb7743dd91934bc8bd9a5d17cfd24587f51a0844304bbc98ee6cd5b5e858b0344bfd16ade640d9ebc1570f7f9602da052dfe997bbb9d99bc1ed51c2b636a2424ef415530562042483a06771d180a1110f7b8267589722ec4f5c0a2739f0364fc926239285a2da0f6bdc3b504114175e0c34e29673a84c05808addc3a4e48f8391d2969d50acf0a17c829a353e8276dc70148a24063f35fd0483ae3e13649007ec8c29535c675021c6f8ce9e091e0f12f7ed311d82accd0b7279e49cc6878d1184920f781a499806572d443eb9475397e4362932811b20a1b1b819b80d4ef98603bba038e2a2677616f8087d1832125e0ec38304c04277efcdac7a837c40f3284a83a2ddd956327e9f4e46a8284ab6d3b75f47c66f6a5a82acf40d15f6f9d046c28f4a8c1c408f6c6c7664426491facdc371bd4a66f008967efbd8262c43541d50088dc2943e0a99ceaa94b86be84f6ac4f61605c5e6ef8d4203f316035376ce9aed32b921fab07b3cd97ba1e0054f4cfee742d14463f1c7b000577891c42e3d0d159a71ca82ebb0b6579d769d72e0ec4a9017881b60c4e1c25f2c873cdf9df4f2c689db1687eb05b8dca1779c69bf0786f2abd441a78716209c7c9b8438b2d23ff3b4aecc7acef3eb3f6d6348e257098574f174e54c47f48677a4b53f7cbb65b58fcd4f2de739807da7e0d2049ccf7203f13a7869d490a4f70c32a9b13cba0b1fed31227b0ba49afcff23f1f468d26b5f6a8dfc61d679cc7a12e831382cf23519911d13a5b90f27c08d9d9b2741dad88417fae4ca694dfce0e7cfe0980e8cb980249c71d880c830704b9bea742c45344aaf6764124508b113db8115d6166c527425ad214e3ef4836638966b58742ad85750bc17ade634b6057054d88099c0106405bbc0dbabfa36039de592621e1167b9b895ddd32e7a1420d55c88aa7c656003023ea3d485396464d4caa7eab6358a833a44645d3e1a01b4eb6c2b1083dccb7a46e52f05ad9df8eb944e09ad636755cc3301b1d4226889dad1a4db85a47d39ee9c73471238238090c3afa8e2b47b54c6de0dcc76a9903ffa12c060b3b1f818b6c3c4f12bb6411a65685a9b0e889e1104dc1364a860450ae8612d73b712f4796f6f08c20cbb3071b7c38064753c66a07360f1c7f2ecab67387dc9f9a40fa9aeb904c2d464717860cd0b19b5cdc0c234104144f43709f022c19aafbb3e1c53abc083492412131c59869a92f68cb842948d9688e492b823a5ec453deabf93a8cf63cbbdec4c3d08f1e1770785271a8dfd0bd3a5aa6d04eded1956c8123913d147f8812105939ab4dd2b80141f80cc0422c759a994c3db115398ff803a270662588f6a23c5718bde38e9f0bc1767d5a279e101fb35c70ab30d8e84b504355ce1bc89af23fd369c23d6066d9b2234edf2c759ad69a31cd8204104cbd1b3e848bf5129af3e6f0116adfac93b188a8c97f41057c03035d555deebcb3ec29c4631d3e6be89f316a1f6f323f530c55784762fedf40ac3be4ff6dac9a7182dbbb66c73e74f893c25528db3d520227f21c147c10df9a2824ea3808f76ba25e36ca06a789b912db33cdcb59cff3bbbfaf9192b7d7748ce7ce6fe61cf2cdea914e1e38ee6a7070ae151d3aa94d86345012b173d172d51c41a82e7eb49ea7fb501f72f277dff1956be74d0b090d323d38240575d8ce9723c4cc9dcf11b0ce983221b86f4c7982d9e08b866cffbeeca58b16e472fdfff4daa0cb82973622daf1a5ed71fc3f3b90b66fa1c7caf2eb31c5cbbb7bb35ae2b8ba179ed05c9425505a8d6ea169bed39e91d75ff04174a2611f62a372a345d84f94d5d052c64ac19adefb9c0928355e8909b432e8fd84fd0e239a90454ebcf5b6cc8912abfa9543592d516f3b76f1ce67e335e63cae5b5e29ba731beb618de38c5d3fd6717c9646515e9d5031d05d98c1b5f55e899accc56e4080de313327a3c6e8035f0780ef37b98bf7a4cd5257d86eafcca00638e43983b679adc653f8c7e746ed9ff59afa37f64b2fd2f9af8004f209cb400a94aa92e6e9df9fd18d03c05e8086f48fd306f94d76ec3ae8e08f5befbae28fce42b6faf48ee786d6a404475fa53b362a3350b893788d44c4e3351a36cf6f40f88954793240b03bdfd2078cca5cf341c1a8359771448fadf4fcef5e04157dc528f281f5fca30e58e1701f2b280f7d9c1d1607e3a62a3ed462960fe47802ad8a8fce04e719fe0567c298163280c059472efa33c04acb53ec506628f144dc3a8fbe72adf0d4b214aab14b5b3274167472a95b494242af20070d09c9c0b8b08efca65c65f37dc6d276322d3c2ebb5c8fb7b5ced251a4513b4ab889bd72c36309e46e4e3a60e2754ee8c525db0cb0c7fdc1038a677934675d164ae66511a4834904f595ec39ecab04ca5fa02c36f59216b715da10cbcc3aaaca09ad25022faad87abfea3d885ea68909252a5fe8fe39aae1fc394905fb91302af950c2a228544d664e8a173417d5c484bc402f69b9e3a3abf3fa74bb1b7b0eb6c8ab0b90d8065236d971429ef382e68d6194d71d4dd8345ce3a22e5dc14ebbf7d402c59c6bdff5d7d94861a814b2ee7d9f6b19b54fae2bb792a3c52abf736ce4cdd266da0f1807d4aa0b50da34001373c03a8d9673bf3e10bd8c630e97730a38de32b4cf15766757044d7642168419dc12dd4285d62b1ea4f00bd133b16d48fb5d81e10ab8b1109e0b2574430b4be463ca66b4ac08471b877122ecbf661de113a95c6982af38edf8bb5ff7635da62712a718c700b7a382c3c63ef2cc0ea10ae2fb8a4761323186f24669296332ec1597d97387293ecaf0fa573813766d57f5f2675d9e32527771dac4ba1a891412266386ae32cd697aee4659076d00821234e193e688a6a973627f1a4e3fa90a5181c434152aa9fa60156d5e053bcf6316c2a688cc9f42c2a155dc12a5668504bbf863dbd3d9002c2a94a5aadf139489531203c46302bcd68a72f2b66aa56326a39c863402df8d46c0201220595950d1f96e101a153d71d89f72b5ce35a404e8444dcc3d0b4eee189670f44626c72e535f5c5229cb5f3223d4ad01a8df72c847a32c5e624615d6e24c4896e0baa0e5149cae14b8b0197bd9c0d53993062959d664a6d6c24126ea1b9d2c9c97da4d04e09119a6037dfc48279550321ab7c7d777f31c2e9326ed5aa2d2de2f144ad1b26521d89c56329202f623ffda1ee87ce8fc373a7e41a2bd9f02c9e232648abb229c99416c330e0f6ca10fa189f0e10a7eca663845608317b34421f4bbfb44524a68a9c9ad007d0b7c3bed115efa4d268834bdd6446721d60e5c9ebef44264ad4c57d7ef20b8751e90c8421b5a0bc3c2262e1324b71ada9903dcbf10f90590689262e4c0fa282f24673ba4333467a8bd176408f67b00a3c16696ddf69de72ce428b272fd60f086290d670812506d4353264d0e0a5340ad411862d2bac1a3980220cbcdf3390bafd861617b8f70c66eda6928148d843681df576c1116821a5cab3ed6767adf29b723415ba361f7cd4318a9bfea7161253c25fb3254bb88b372659f4d0b9179f48668ca495b99bad48fa4fbc176e1db55c03631d0dc6b17033f3db4b5ea758ab8eb4651e004911f22505679d2c8a1676f97e3b993d665548c01ab42dcf78ed0b93bc4fe74c387bd31fc0409ccc3739d3bc5cb15a34dabbb566c9d570e3d0d1c24ee3f56d743cc0439ac071dbffc491f4c5255834938750c41e28fd54c124ddc8f31bbcf0f0d9aeb13ef58babe918d597960041ac80ac03ab8e4649a01dcc3593093898c646183e4ba2f3af37387759dcbbdef94bd329fec4072e700359d57f4d4c6d7270a589cf9d5c26428d5ebc02550c1d9d82670b8024d8841057f3d85e4cd758c3552534d2f0b3d246121e014a7ef5aca39d760dae5a252564863e3017e6b285547371bfde928e7588a6d907552e31a047fe2753cbbf3215b50418602f595c2165f0573a0f45c8fa44947c2c3de031b58163cb9621e9513489d49fb880aa6b20b0bbafc4da88122e193c3d93b5f998c6504d63b5c347adcfe879b7adecfd20b5476834616bd1123a4c2c9023fd339844ead4844a147b0fd4678b02bb324548debfda963670f4d4b2ad4ecbad109d19d02dbe0439ca68521a8533361f5f4943496829b983b745d3975a39b55a107b8dba2ca2b96827c81daf0154b6f5bd97e65c45038e3b3ce77ecdd920e56614dcb683a5f90097959f73c861362562a4673cd8f852caf057006dfc6f9c3618d3c33d497acac2414d2242ad007743c7efa4b00dc3632f9a44fd1bdd96722ab61bf1bd5bb81b32c77053851e8cb5bc810622b6dc39d62e52904c2f6cf9dddaf45be556ec6eb4fe481993b382f6de470b521e408286079b353da4dc92a17b1b2ffbf30fc8740e257e7b2409a02265bb4524d8b1c56590e8da18b551533eb33d96e3cf535cd50bafefef0916741122da620b5161a5b4ccf03499fc22309449e4d0ee11b44a373f27d2874866aed6300b3f98d2a0f21cbc313f2288a95892df83691d24b6f304d25ab3ef8ea8f95cd67bdb02977446ba7a8ac06fb6337f9fd7dcf9d48432a47a2c26dee9471252e3aea1129b5dbdb1c89dec95e51f870d10a9724f6d0179f548ff04e6b15efb4c9a86524951c433852a852526d308eb7799002f94809409a80510c81746927651a46d4c5a664d56b642575c50bc9722d5648b2d63916eb60c0129372faf9c52153cdea6f899826ccd8195b99315aa71e3dce35ac87a7ee8ea2830f28c1e4f42f6ed9808b229eec441dbb91c770cc17f8dd9e672b49d573820a0dca7123bd112da282337590b82e149dd0968a4e15c5d13f4d09bd5125f2c86ac50bd59865183b0008fc497b4c4a0ebd4fbb517409f138ad85d8d818a9e849cb1a1998c6c735d692eebcd76ff060e05286fd3a1c1317bfa860cb296e9c34797706dad0b3d4b989846de1c322a53fc12baeb3ac2f41ef780247854779c0b3f187d02a767a718d8d64c3653a3fd063eab280a4d9c8dff263eb3704f3db30cad2a05f72b657f1d81c895031c0b894977cacc618942e25330c6d56736affc61815798a7eb98c18cb3f00db5da5df122cac899b973cc21d8a4f526d1b76698d40195c8ea2c2fb1f561ff5dbba09715b4e7cfd13adfaa82d0a7d5334c11d291b26811a4f21a823fd84191df959e7b1538eff36c2ecdfd81761a95be1873f6c6fcfcf01fcc9182f3ba07a9297ebe9d51d86fc970dfbed49eaeddcff81070ccf766a3fdf5c34b464b086523ac786410526273ef14f7d3827f23cd938676847a4eda93d8e1a52a8e5638b8c39eafb04592fcfecdd68183f1036e70d27525ab010a2dcfb7fad9df5e60fd962e2b5039a873eb33d85387e8202ef670232243dcb08895ae11bdabb7eb92ade29c2dac1ee5e132ba1546ad23981e0bafc34a9d74aac1fece1d018dc7f04a48bee769eb45660cad4fef33a21146bde4ff9b95965447f0b0a92e79a16370891c09cc99979607ebcb085995bab1301afb7a6729e16e3e1666bd861951ca238f882a0e14f5787ddb5cb978edb755df38bb133c451c354e0787d810c8c20fcd2130806bc3280cb3aadfae4456a6c105ad629670733173a26ec6dfa477a8cb74c8f5da56bcef21a3dbcc22765758f197868d45fde1c6d0e71f81b3068a14e0a3f6771fcda2d84c55951e96e90b160792c8068d2a161f406122991f067853dbe79cc2c5400b7ade3e36df029a92adec86fd49ddc23aba2846608c840f0d7ff96b307c88b5da0b7433d34f7adc06cee2c5e295277a0e3bb3fbbf6829bac3fdc73c9af9719df85f43424954ad3cd8ba7d93b24ed8c7dba58206701c80986ad8c1a91e8c07e755fe4860d90a10a2bbdd4a446f08283612c843f6963e87b4297068c7d758953772ee5dee5bcc32959de876a2dc1c855039dca3fc1705abf3c5914075b2a53be607bcebc27a5e0238d6c71a8cd32b288ff2893452846035d112792e4975211788917afa358526901cad92617be9dd6231aeda8a800287408fc664a5db7746c89674a798a7151c2a880eb4545c075764d1c8d307947ac2e50abe8ce633b2a6209a85163e3e676790fc9ca73a8cb8634f38619eae0a4a170b071870a526477efd67b02193f77408a0f63e62302d36ce6ea9dbe797bb2040eee719e0913ed9b2d2081bd787731b106e5a82e4ed37fba6b43abc978354a86869669a71f4152e0f09a1db1196afa4467d2fe59d185babf053ff7e6e031034246c2847afca4d6911e9248d5d29b23ae6d700a2bf74a3978b3961b9a7be71feecda769f85973afb84b502017531cc9cbc16b4a04ccaea061f0f3678faac2f6b32230cd5c8d312af733c1619c16a01f2af2034c76dff3edb9c4609c716918cd0e590460fe490c3e326ec521515ac91846769a691291c576da6c2e0f4aeadc06a48805488427c4c486008d3687aa48dc46be88a94e82b74633e3e1e63ca45f7baf89e62f4be4cbfe616e82bad0b93dd038f32454654d63b7be09e0d4cf0e4e634d31af37b8f718ce098a6eed60d1fdd106890ca2646328ec4096acbc99ac07421d72ba47621917b45e3b6585b06cd62d8405c976e845d36c1f0c2f59c2c1126cf7c5b4a55b613dbd467ddae939d67c76ad2b9fd9bef0d1f7a831e5b656829ccb5e8cac7e5632695079b0279b7c9d2637845d2cee961e80f0d40c4e41c362cd2c0e32451ccbeb8429b30c09d054309a885965456b5913bd2a204211f3f36fe7e27e82e29d982335e6abc268dc93399d92485a4387ebe9c4fbfdb4afd2006c4f855b37ffaecfd254e517cffff9363b811599ef833d6a204073d7c2aad424e7da781bc1c803964a0683d1ac71590cebf88438179b1943a0d4c2eb8531adf12537bf934a8ac624cde30fb8579c04a9ef522e90a206c4a7e87c00196cde6e2252d4fe826d3913176f8c0fc6a6f1344b7603489da5c3b01d99b5c49990e5066538c48013227d89a1cc7d681900ccce199eaf6bcb0d5720afcb15019999d85a07582692be54263cb49b4fd31a3126e4dcc2758ed385841d51dce90a04e4a298c14e0c981c2b9bbaaade121ea36247f9082aebb51562108f10ddee2fdbd65b8238ac9b97643cc92e69a7e19315a6cb9875cee36f973b34de0fc7b303c9beccc6e5fc3d00c0ac219bf1673e421c5b8de1affb060d28a72cae8e864aae7a9a808018e72ea09bc43faac09aacfe7738bf738241458976acf0c5ad4f3421fb9952f78363a27298cb653dbb54289f0bf391e565890c6816476d7dd088beb3a4b724f84151422b560089e72d33e284127ac09454c15a1fca5bfe4a1e10430423a4666956442dede97e931762cca45927ef079dbb61824895a30f22f904cfc4e83d68bd4133a720182010ecda087e07d60f726dcbaca43f703aa8c00b3d5c36052e8386b0b590bb3899807972a52e086c43943c24cc9d163e70816f51517fc93594df98511552611db4742273dace6fabbae40c51801d7ef45907f329ca6ed55eb43da08b3e4503ede23e20599527b0ccb79ebde181ad5a59aa3d0f77d6e4c9b2852322862418cb3d9a7ea549037e8b54ad46f93918f8784af604fbe57572159979eaf1be6c4168f3789099ee0937314bc0ec7a48a4b495ece16e75348447d2403ad3dc4f8583cc39e1f46966da8999d0f41cd0c731911beb14810f4224f9c1b949ca75f79981c01684b031a79e1af0cce080a3f93575e8b245d1f639d5476f167242844263485df04c4db1fa7ae6414a44085cf6aa9ad91a069804adbb04fe22daa973629dfe6dd0203f53a546ca8530a811cd0c3d77b50468f3ef38027452d52035c4187d9d96900fe09e2a115ba46de4d29ca927f5e67a332a728896aafcf0f3a9aa60316c0828978c919e64656b617f76f488abdf250beec58d90f9480c7f85d589577892666a456d16718b9433f9a713c98c11eca0f2746db383c1117871b67fa7b13942d38d05f7e0f0179b5124267435a8fa62689d2a67ffef886bd9004fd439a5861ab0f3a5b4bdc29ea3d6aa0e50c3f93f101cd06c0e2495b30c8d3d6e7708d8f5615b04e7a06cf98a58611a1c37e5ed4e86096ef6b7b2cd75514140d681d9ffebce9d61fca4e4c9f721e23211b6d271b0ee64db53942835da43d472e3ad066f400f7f5cdd7702f7089e3172cce192bbfd5fdda918d941f26dcb8f39b1e0e9da326e4b8afb4b6196ca1690a0592cedb6770a8d9239ab94d0d00b77ac074ac428ec7f1a5bed0f320333fc8340ac6b46952f694405d2c183a53f3d75c932e15a1506ab83718395a32d0ed088f3fe012dabfed987e48b77569416730b9195113dde652810bbc6c0046e7aa63448a681c949c338dc4c0dd616bf30d276cb7702c99d48482789282303238fec9fd5fd60ef2e25f69a2aa01291ffc0478541968e252b6034a16cd10a7d4bf1fc99cb20f2ffcf14ba2236f033a6f432908e562fc0c0c14548a438382196f5be2f864ab9a006d9d617696be47c0f87f9ef364a2748443aed37aa44e891643de5f755302078e0406c1d2127e037fc63dc35da4d4ad1ec5f40386ed93de5edd9b6e2369bb6935cf2c4e96ddcb7dc4df952a568f53d6e4245ac7e8ae37c7a8e03dc9fb0b0c0297a9757b7ef55a6649302e7bca8ebb280d1b6c991b59c2fac48bff5a01f27c350327a0d472d076839f1e7eecc5d9a9f5d7ec203bcea9cf229927dd2cbe8881eeced15c941fc0a7e8828f905f34ae04e354cc9950739f3a797ade1dc069f6e4917661dc54da9f2fcb4a9860359e74a995ac906fa1c34b04a9a4321048581857456c6002032bf7ae0e99c9ef07e32acc6852f5986dd5201d1ae680c22428a69003ec2615b3fc9d88bf296402540dc264d1ebaf1800a1a17fead6ed8b9c290396f189cfaeb4c3a24cfa3f9aefa63c9912d76f3219cf1d386b6c50324ef856934763a40c3532ccb1ba2a757d016de2fc9b87f067203f178f4ee26cab848a21ccb4dbf42d82bb6b10fa5e40ad1875261a674fa12ef2cbd6c7d678b17f57e1a224d30f184b4e28f6ec188abdb8d98a2eea8cef4e67666555db9f595a451ff913187518f49211e78804e527fcd741eebafd00b5dbfa2ad0a5d8f753dd18fa9229d0097fe3ba07b549a2652438fb0f107ab0a57647101030ad9f6863b162fbc2250958250f7bd46adff6422f0d563d97fed8c40b7062b5cf3389337a573d6e959b1ab648f8cf5763916820ca5ffd94b328eded46fabb48ba29b390a4434886149da8b9086b1b980cb1703c2d050b9e2fa0dd31532baad12516a26b714d7f7ad93146cfb4aa13f9da8b046d76f3b0929d3ce0c2d774949f66406553863893b1a07dd72b7d0fb8fcd38e854d22060e58e66d28e537461f0f374c7ca1d1305f81c079e28f13b327595314f4bf9b7dccb56a5b749ebde0cc8095918a209e880f140e5efce3e48bb447c7cf3445c730a29e443b87d46b371db183b701398696572ec1ab76be84c1e665ac65a2ccede7be4819e986c2f4e1009b025519ca04dd5596af053b93edc008fb2d17d0c1a45c2590ad3e3ae33a2b9670120b208177a7a7f49d878c4ac69692b6042d44656ed3a4c8885f0cbcda15fd12e709757853a0f41466ee4bb7f515ae927ba299b875d56d9b8621aa58a508bb9db57cbd43f0d8721c22178267861a4e14ce269cc8eebbfde87ae5a1f07580ba88a59cc735046cd396f310e494448a92f858061f77f3faa58d65f5eb392cc9261c854431fc2cf7c2aa4a1e2d3960a068e8e5c1bef190c202e454dbaebac61cf41c342d01e66159f11ca0dc9ec2629bec07a41eb0b1a2f45b5554e3283059844720059808c3eaa0b8b8dd569a2badb57a23d097686ba061b4934e044e96477df980ff80e48f21031f887b6ba3df3518640241f8db507381239d48ea55af318e6954a35f8002d55d20bb06150399ce1273236963902769a72b85bf16394368d29aeb04b3a90c705a1898636795faa30c3e204ba5c4d9185c5c577495380ee39637f851750682267e7ca121cd1d6fc7e135645e58b80c2e2dd25a255195dc35a6c690235a8978633d094c9634d46383c042207dac32ad1c930149503e0694744999c2c41799d8a67318d4a4ba09e33dd1e8d10600402725caef66a579e2e93e1c84c4b2fcf20e094e337cf236a34156ed14655cb191038cccfad71736291167e287bb7941728ebef774aec847b5532e6cf68b980fc2bc0ef66a54c1644ff903f3b872c25795d8e38932425846c022776b8ebac8f276d04d9ac0a85fdb992be8c62bf5c118b63dd194aef7fe6a8706fe6fe7689f5c812f5ccadc3985ef6312b1c6f6929608ee1bf92b84fc436dcfe34a4179fb362acd61c50eea323144d21adf51ae6e779ad11e1de0c3bfa31fef866231aec7e18212471fe9242f23e20b3cbced45198f4c104e2d4f5be1b78995e99a430039da2ca3ea7da163f5003ee58942809bd3face4e240f1e770ed17617f343f528188be64c2a13866955ff142d8de445159abbef4c0bb9df1ac1aa40c3cbaceda790558536d1db26f5bb692d9f5523b5c2205b8fbebd6c0a67c7164d6dcbc65a2c3129b3da9549b21e3442ed666054a91e682f057fe6ca9f7cc5b7eae982c4aa11839753a9dd5e1fb8e086ac8a0f1df293304991f800b033fdf736802571607f86f4dca083bc27540e128e65f6d42e2b88b2ad053353ce3f7bf9abb33ee0c59b618ff71ff5b47a518c4e0f22fe782f3d0bedfe0f152d75b78638b0ae90bc7118396d39ce5b116a381da034c6d70570802dde18bfba829982989b5d46c371e7682c623f1accd52a82b09c68ff50fca07f63a9ec569555add0950c64ca93a73dba6206c2eab182790af5937be7d2807616e1a62aa8b942e24d3d7c3094a428d2e8254a0c0aa810e2b43ec26c62f9c9e6d0ca2e279cb351543a9d5dc9dea37b1fed70a2933e910ce4aa2245fde80a86d20a8027a583aa181bdd4efb25a011535aba8543b0c34d7055799115190a4eee26d6fb2bff05f5b808f8c6509402a1df785184dc7fc405332663340fbd2eb8ae630b6f60c78383c4ab57a241febdccc645203f5c32f73d31962fe2bbf7be55171115a34d234ff700de7cddfd5f43d1fa2f279593babad715023f8021290ffac9b19dac0cb5c9a25f793e0895bb86dceda58ceaba38c3e0b0c440dc25480619561521314e33f4750723a4ae8d14c39ab3a382922e5eade7d13f9ff0414df827edc77e13ec7c6bbe9277da311c959ff7f9944770cb6b5176f5cd6f2e8f9bcd6414e80610dc83f4f2674b77d85cccdebc9c9acfb8e18828894f5b5b6864de96ff87eedb0ed82c8cc950dc3d3dd9d760b48a2d9292805703123f60f7abeda8f78516bb739ca61448f82a1a7b6fb548f8f18c3f20a3313346233a947184f2584a1b3d59f2573a3baebd45248648d9adfabb144fb6f9c3984f001178d6a9c1b1a929c3fee15b398a66ed2567c4a57fba57fcc6b77c0347387e56c573dcd65a89327327814e135e87f3fc947eaf3339452b1eb97f3def404051b1ce0e0fbc5c7c98bb241778deaa8a00314469c3638b2f27ca6780cd31cb0398bf626e12a6d0a17bf9e6a24a44d286bb79a40350f20c4218845a6d92937e0434d16625715f78f59ba2886099f3b463c86bd6773c5ec66f98469ac2c227aa22c567a95e7786c5095c2ae7dd407d71b005506757346a72c803bd8be23dff2e1dbfabe31c0f35424bc97262597f9556e0461e322d3cc1577a77611be3938f32e660fc1f0b4f5e9a7e4dba22d7b8b4ea3cd619b7d23b81bed26051ba346a9e4da832704771379776d327a507225486dd5a2cd315769c336de51f52f307e15b6a0405054202932c618a63314f4413ad09a0e567863d131d1db864384fd571a1f59518e3e4ba468a98bd610bf08a5751049b11883db0129c74d01b99d9412f0a2ce2f55232adb4a95d8fd0fab4c902fca92aa98ee1aec78d98101c5981ee560f073914c9a7cf542cbe014263996b716508f7525ec476dbc5656ef228351de47f78be49b5dfc0d8e4884a708b9ebb554786205ddfb753be0874898b2ec41547fc5e7bd300abeaa0443291368908e1117d636f890c3415f92f543078ea53043104d8b4cd0767dc181b9cc97e9330da183ffc60b5333e6f07083547998f487acc75b7176f64594060804f4c639c5607c305d90e866b7d1d7e8c2ee4660009ead109f3004228ee483d607b5b801ecb8890ecd491f376b0447c87d1cf31b7fd522e8c8cbe315066d7d8f55e2b9df3547c50fe4cc5bd63a7279ac3abab91dbae5827d94dfa809df56f2d5399aaab9b79a1c2a6b12a5f5a9203016b33e6da36079dde14c43fa4533ffd243e467e9c504b294b0a63c9b6e638de2e1d752bfdd87e68f10cd305cfa1afe3248aa9fa10a36bdaf41251c42084feb74b5c5b4c5d8424387e11b3d3294dd2e58410d71c9927388d944d9c24de03efb435c34a2be01303d07aff53db79b5ec080e4ec19840bea0210014ff55dd68c2b3e47afa53ac20969c80ccb3294e87d2129709b11d987fe39be97f1997bc7cb43e3aec053c18057d1fc728eb45de16b434dcd0f8ddd0debd18bd61f5a25824f06ad682c307bda8712ec3b417d3a8d1f6b918299d774bf13a3d5e66e5b0383191b4cf8eb3ccff3ea674820b246d45db712dc8817a48ee9f3ac5f6e5e5d02467e391024d5e98441a4969c763f5e0e61c57cd58dbc064b610078a7eaee1a7eab9fd29ec11f3f12c9a7dc7862a1be6822ed09602388629b78f0aec2c8958066145f97aa7e400d21e64b82d4d306979c68bf6e19501d0952eee3f52e4dd3da26b4c98311dacd2826480315855fb75e0a2f40c4a9c3f46edbe5b4ee8d3e9108a0b71462f5d264ad417cfca403b89340e1528f7a68fc862a64238ee361c63b145d467999a0adc682193217e5dac5d4fe01e50087bdaf38a5264108721a69e00f08720f6efc16675fe288a9312c9381f9643c7675ab967da4a5be6d16d641ecc1df47b49a3d27257a825c67384b8caccbe7a1771872ce5239745617797d2a16d012007b5d9de990356b5f1880414f69c3354db9571025853017cf958621260cf8b23ed8042601f93de4ee6c25ce36b73081420637497c830deda1cdccee42e60a9ef8be144a0f14cff27a503dda7da653c9eb6032691ca1d7112099df77a85250594af01610354c84c0cb4c7e4bea6e6001cdd4a80f143a365efd5c2defd5fee964bc62ac0ed68f3c6cdb8b06ba23add24430821f80ba3d5d9cb46676f1c7f61e0ee4a44aec82ea40369a029d64b78ddb9fd96cb3981a5fd919234ea2710a21e2475ec254ce49775e00d125a2f607b90d482790ad86ce1db4615ecbc2796b9706501f8042bd829449710e035028fa646ff79dc8d5498f7f1e323d4791c64cd81137e57c55aab45b69d06c12d4252eba3a4dadb622f71959185b5144f789bc50bce76181e441deb70ca86b26ab6b25bf564d4ddb1dee1a8b5ca6ab110bd5146405c497ea963610c1e8849c87163da3e01f729750238496eb22a65124c86dd488410cb7e2defd7b4ffd3970a40035274c3ca10bc96c255e4012a78b705515cfadbf7e62f7afb2d788f2feae918a57e7be67286a4c8a84619dfdf380dfb43a07f23e0f63fa71a7fdc8854920fe7c88039efea5fefe3df2390176eb598cef05fefe4bb170a6c04965b2ca57a8117e399300bef731ad415c02e3739004d233423c5a270ceec9a199af05cdd561e54f57537112709e865e430f1dc7288af3ad094675f094c81f32594ab6620038a574dcf4cee5ca17dd8f1202080d53c5641b7b61537c798d82a8ecfe9e58139258e766d9cc3638e5268455b993cdd4b2dc6b9a0b54ded6acb2ef61eda07e2ed1469bcde72557cfa78859c29b2c16228974993ca7ba18c0115964d712b2e4f4de52209d45acf10899bf8cc22509d0cc27d3a42e7b71ff5154bd2f4e9de9a127492e37080bcdd3f89655380e141a64e0cd23fde69a75150db227b2fc83475a301c9d36f2413015f096727c21a91e09adbb2c9d182228fabaa4f1003c2b860cf131ba22a685ac460adec1614e6923fc3c1203bedd44b30c3d60b224c301ff000000000000000000208ab546706b2da11291929452b90c1a6cc069714652a624534a91ec0ede05ce4c7c3a33f1e9cc1c34d208219897cf0cc50c780c7789902a87e80002ef965bc6a8eaff019bd14784698a596b14d1d6d0e1034677e75c0bbae4cb949467878e1e70e9733fa5fc4c16dd5372e0d0c10336a459d467e983f6b45bc70ed852d57ff23476d4de221f3a74c0884e324f65ceccd86229e68097a5944e2f57b805a9eac0012775892c5959339f991d3760437f07917ff7a9d51f59cbd461032e7fe61853d73b8bceda29e9a801ab3da5d4a94eabcad28eac6d8d0e1a30f23363cadba6a28cffc89a990f3a66c0be564ae8f68d3219320e74c880d3faaaef97f693976b6774c4804dab41dbf4e5369d11d030c064b27c043452ae161d30e0fc569467775db7a45a0b2844c70b38b5a44d9ed6f282fc56870bf8b72c3d63eba092ca515b2491bb1914984c94d0d1023eb450aa4f98aad2d96430d0c10236850a224dd525912ab22a74ac80dda0d3bb149da2c2f4237b4516225b74a8803fdd57a7c57e47b33852c1e514ecbe7674d2cb71a082d1762e4f68886ced1f740a6ef3a7fc39dba7bb8a99a6e0a33cf51a935a4b2da514fca607a57eff21113848c1e9aca8d3ad4e9674161147c1a68ee9e38d523a5e228a82d549a3da183ae98e23146cbc1875969ed50ae9de85e040c1e6649b5450b5320bf73ec1b6b0b4d2372633791f4ff0aadbc63528d995d5da094e67fc1013f5a773908313bcba081bafbb1c53d2e1d80423aad9993948b5594a444d302ed5cc936e5139fac69109567d5cddfee9f5e2a9706082d75a486d39634a2735cf7109b6e3e9944679ae14a6b604ffa35fa8c61e25d58e58093e43c99517d5f28b881c946083a5746f5fae59af67129c78f7eb7e9a6c114f126cccacf3ba8ca751a594094482db8c9762aedad7ae960157e08004db21b5ab6e309929968f6085bee8d2fed2a2ec9401381cc1da0ba5fc74fe6b9dab46e06804236336fda042c67d37318237f5a9e2af1499414639816311aca8d4cf3ae7290dd9e25004ff32e551774206a5524b042fbe3af5640ead4c8710c109bd0fd24cea96d62f8e43b042651552b73ee81c64380cc17e7235dab468a1ad5185e0378e1c9deb4bc5741b071c846084ce9e925097cc73e53806c1e775911ebb9554eb1b41b0a533ca8f69b554a174130836ef68dbd1db6a1e5d23f03503069a881d1c3800c159ca595daaabfc81cfbd6ade1dfb89db8871fcc0ca786934ea68b9f9b2367c0236bca40f9cfc38f641b3cc69d359060e3e705178109d772b94a6d11e382dae5275053532dda685160d23091c7ae02de7d2b7b9ad6e1ae271e48115efcb79ef47b4bd161eb8dc2946adb5b9d5db4402c71d184dfa515c9a6e9176d2b003df52f86617935275528fac211438eac08f8a2932a708d336a3c0410776c585e91cfa317b23724fe098039fe5caac525fbea6df236b4b050e3930cac592365f1baf8d4e81230ebc52995b79c54b1a143122382970c081bb4f4249ad36bd94c9e378039f83f9c96fcd0dcb311c6e605d834e0d5d1fb37c1a59436ae06803aff752d037b25508a99d81830decc976f5975bfbe52e47d6ecd8c0b106ee5e6d65536a55538e856091801211984c03871af8d4d6fad72853257911b1e11d58b3e1094035e04803bbe54aa8d21d1535ae37e04003ab964ba653d3ac339e0c2838cec027212fbde7bc99df4f3330a6975e06d3dd3b1f4796a30cecc552964e3488adaf1c64705cc8df5615ba1b1c63e0a4560da5c972c78a510e317051ca8a5acab52f6867c4a8e20803173baa9872b24b16756b64f390d8a811020e30f09eda3d4268f6a5bc620e38bec06793a3d9843c9951c94c2693c96462b64d72a3370b1c5e609576aa8a522ca98b9d2eb0524c2b7f2dd73da7242e30b6e36117a59a5e2e6db16818800c1c5be0f3a98a9993d03a425b1a0bd3060e2df09ab276a765a1846e3bb266568214c09105ce82cbd68e69437fc3b5102c1270001112378be0c00217a3d242ef6b2d25f466644dc4865a0816568478089448e2198c90c22110b02244111c57e0ebf2476f0f5253259504f80d2dda90d04056e0d35d8c6f1f9a5daf5222f3024715b8a8f7d2e5a9d7af5646056ed4bfdb267dfd2c7a8e29b0b6f27dd46a3ea5d71b59b37143c6b171c30133106038a4c0cb149d756a7bde46978c182325931094e488021f3234ead44cf7d1f4c81a89dbd0c249ce62340916060546e6cba35eb8886ae83c814ba6a57fe6a07394269c4c2613b573022f75e7acea83ba53deda1049374af642b048c0029ac099e6f32f0d5287686c64edaca430815fd1d2727add3996c06e6bc5f05da13b46ed8d1a4ae0553f3f092d85ca2ff49115d9e34802ffa1df738c4108ad2e9533165042720306ba220b912d3890c0a8d1d23ce772ff57e66442f2001b33bc03317e060d2522438d60329941a344e5c0710436c75ec9a0de57980c0f871178514adf8bf06d8bc08adaf0ed5ddd770b7a010711588b25374c67ade466a3c231042ed69fce369a6356917208813bd1aded25aa693ae3080297dc6eb7f2b7bc572107102c5db9366e28211a33387ec007fd5aaafbac52fc770e1f706a3aa78af0cd5f527d038e1eb0abd95d0955ea4bb9c6c1033e7d6e15b4766a95328563079ca51d1f8d49a666af68514252003535638b921c00870eb89844691625b567c6e4643299e4c91cf07949fdbd958e32b71071c0dd870eaeaf94d6adb32570dc808f4a684d4ae6f3ac5ba7030e1bf03dfa5d79b9cb2093364adc465bb1028e1a70c92b6ed020c437d7cb93c90c3868c08bdad1d0e9bc2ce9f88ad8093866c0895629cbe0f144ad90cb80d7c1830695b4fd67f91f470cd8ac5d3ce56d1e99ebe48001a75b9eecf7d8f9a3a9a40d385ec0895abd251633b51ced0de3010e17f0a93559fe1ce36a1d3f395ac099262ffdca7f39b70a0bb88b4ac79c319f1c2b604db392e3dafcf4aa1c0e15b05a53260f52a8ec97f954707993d6f36db56df947055fc9a5e765bd42e8c59c42dbd5aa2a8505d5149c880a325f8a276e1e530a56aaf292ba62d6ac9423059b5b3fc9cdb3ac447da36065f667cf90f97e7a1105ef9592798bf62cdbdf50f0efa9a3ce954665cd1b28d818b5cbd62edb63c5cc2718e142bd50de299d129327b84f9d9b53fed7eb979d603c8a7a887e54f92be504ef5bf1c63f3cb350cf267857523c09d9a939c58a2638a9c39568d2410aa58399e0cfd44d864615cca406136cdb97b9add2f79e4997608594a95b68f9a946972cc19fa991fd1595aecb9b4af072fc44c5f3cb14328612acd9bd67bddbdda38493e04764904a74f586d64f129c5aae515d518904df79179366ef1f998404b74a794b8fadbcc6b747f0afb205a12a970c5f8d23b8cf14a5ae0faaca5caa116cde77bdfe9ba52ba97245425c46b0ee212b05b7acf4557e117ccc8d4a57de88681c15c18f5cdd153da6c5b7d3c89a86609100922a12c169d5203daf7dd0752322421588605fc95b15b42a19539d87e0567df3b7770b75a9637650852158a14cb96859eac964323922664c211811964e3445ad9ad21a594302a882107ce977367bf3afbc392db468049889a049105d9185085731083e09fd29b7921ed4ae96c811042fb3768f6b2f57cf0f04e339346aed48d11bd1a00a4070be41dfe80fa662f668498f4060456c8b2afec07994eaea5a796f8e493fb029968dab9715a5298be9032f65ba7f7fc6f8c0a68ca34f86b6b70dd3f1a08a3d7041cd835ea1e48dcca21e78ad43e90e3ae3dfc7d511a9220f8c309d954ca9f5a675a119a9020fbc0edea1d3bbac1bbf91e9dd81b3ac9d4b9976329994d8882123861693c956610746e5a42f3288efa999eac0bf6a8ecb1c3a7bbe7c323113b133862ae8c0ca18d48a27d5f9399d93892a8921633251253164a4ea15aa9803bf27d5752711debe3993c964828ad5a00a39f0abf247fefba995a79e1f541107366a5253ef0f7ed23423c68888932046091cf8df55cdfffe516e2a95b416301010aa7803173f6b4a3a424affa0966cd110984c2613113b6e6055329d858c9b5bb4a7897645162203a8a20d6cca6fea76a5cebeabc9102c1210528306c90126931a3448d66452b248fa4602487c8bb6428b6603df49e6555369ea85cc1b005d91850809aa58039b4d06ddb27dd5feb42ad4c09e7f54579116b5a467640d2d20044608163268902040798d094c26280d8cbcd8f15f65512a9af6488e94b4026cb49a410346ea086888008bc964a4a447269383065694320fb522a3ea32cfc09f7f5cf1f06590d040800c121a8fce09559881534a068d1edbb246b54776324186c4460dd440156560935465a675320dd54217b8220b912caa2003179434f7e8f1edff75558c81555a5d8bde34aa4c53f48a2c4456156260b3a225614253a41cf5c89a0c1a249fcb2dab08039f548e5949a9788fbf22364868948898b34142a324ab00032f6bb37b90372aa66a236b1d9811638b558cc46d2c80868d190b3057a3656006aaf8029b717b75550a65ba59911a2d63155085175893a2b55bc1a3543a35b6b081b605c93907a8a20b9c0e51dbe0226599b247d66a20090d08d0b031630193c9cea00a2ef0dff9b29f34574d2793b4104c2688c4460d3c41155be0959eb9ce57a36cf3a6049c36157b4d088f9a3d9ae1410a4645f939bed0b993de7d148c65b5af4cc7986a4c2a0ace63d2f22de65bf09c0e05afbdce467bc5bc99f5a0e04db69d46a192ce4d39f4f804a742870cae532821ba829ee057aaf8fdff771e9de06b83cc5a06d5c1846547d6b4b82143242730994c262ef0e004abc99376552ad4e52f6d82d751075dfb7ea34baf34c188885067515acce0518f4c70afdc2e89d4c1928e6282cdda41bb5c3b7956f625381d84969ba7d0c9d267c33ba034de8627a00e1e9660c5d225ade32e63d2fb8b14f3a804abf34b136d25843af56452a2cb83125c90297970cb52c84edaa403336284c0207140088c90102cac984c5ac44ee13109defc635cad349aa57147d644205212438688fbbb2320044648490862348977a067b403dc11d0811931dc7ff5e021093e45fd52458f955c7f6acdb8418344648b24926823463a6722256959784482119e5995d4f05ca95c48f02f555fbdd2293fbbe7f1083e7dccb25588b692b91f596b12115c8d26b1c06472030f47705ab4b2a8ee35a133d4467063b175fd9b45ad764b46f0ab37e9dbbe949e3448c3101e8b6054c7cde9d73eadc86dc443119c2efd9de32aa8c8f047d60ecf0d1810b02204460804ac30791e8960fbbc4b6c4367ee30868c185a88e021221a1e8860c7ed54fa6fe811a63a049f4269a5fa73925a7f66643b302346893b0226130f437059c7a829d69db42d8b4721f2f098c92f17a3e418c08310ecebae151ddda3fe98e42435cece20f8dbb60f11f26f5d2236483c04336220033c04c1c7fcd35c2d7a5a8eeb1108d695d652e6ac3ca6b4257800827d9d52e5d6b45e41a9a4b5287fe0d4a7dcea9298ae4b0f4608498c864049890d2f292185871ff8ce5153a34e59e674d17811b4127581b57c8f3eb0de414ce5d05a2a95f38750f0e003db7b52083db615a3bc6f0f6c8ed1844969593c3df027833a7125aea91d9e39c1230fbc52955493fadc1cb987400b1ae75cc0030fbcf012167589109e95740736d767e9c14cea7e8d7ad8818f9dbea592eb119d94eac0658daeffcc53529f3e746075ce1b1736a294dfc7630e7c78961e432bad2178c881d532dfaa99d069de6b123ce2c06ae95e1555df1f2a070e6c0b75a2725eec130be2c0e30dbc2a99a95f6f8e2d94d2038ce0e106bebd73a9becd3244a6d0c0a30dac25712ddfe2a9a8a18511e2c1063e4f2ffdc8dcb2bc656b60e508fd514c75728f416ae063b7b2a02f0997cafe3430ae57a7ce59b6213c4403b75957bdb4fc91325f0f08c1c28a101b3468484089e07106366e7ac71359ae8328150984c00829110881801521ea61063eea92a12affca1cf45506465384c8cf5f1bae3132f023d453da865e94ca1d03bfda53a7cab9973495626033b3561644c534ae8521522e040b2b42426098bac1230cac6cfd521f324bb9ce8daca12dc04310c34677c0af984c42b0480005663c6032e386c80c1a93898c18304248dc060d2c2693122d6ac88871f08a2c4438a6e001062eea513a4999bb1a4a1d29692d4a52091e5f602cd8e9d64795b3d2a9177899829866e524ed84d8056e5b8850af3a69cbf9c30576e3459dccbc354b6f5b60f3d3bf9d7be87dea688117255f2afbacf3aaabb2c04879ea6c94688cab42f6040f2cf0fa294ad7f93e93a9ff0a7c6fd0f320845852b65a819177da85b786b9bea44715788d2aa38fbbe9eaff5081ff96aa265b0b8f1957236bfa3148bc0257642112c3630abcd2ec5f3178c6d5312b055eabf690aecb734bdb51e062868c2d94bca063050a9cbfe7ff53a1f7b20c3e81fb93f6b51d3a236b2276c3c3098cd4d3d641f587597c8dacf907da46f2c0a309bcc7fff45283942dfd1c590f26b0c1a45052c9d7d729374be05f485d52791c9d950c1a595be7a1043ecb8e7f427eca4ab45412b81885c5b2552b4c4b2181f74ccdd5517d37787e047ea48b542f4ba29e2123f03a792cd12e1581d3d9727efd15854c7d791081754ffef599b3ee1cb51e43e02f68b9d9d7f2ebe7ef2104b6cd53ccd599dc4dba47107891dddd9e56880a2a6764ed69888c94b402723d80c0f8e64e1f2c69a9d5ca0fb8d17e39dae327a39b3ee08366cdaa5e547ac0e97bb3d89ee5885295070f78db556a757be3c9fc8fac39c98d1a67b70336ddd3976a954c2999e4a1032ea74daba4d672f333e891034693a74a224cefffba34d6b90e78e0808db9b9f1b3664fa64d55f0b8019b4bf458d6aba754c5cc990df853726cdc848bc7a05e03426084d8133c6ac0cbfc19930b1da53ebe5a78d0803ddd1794fbe98c1bbc91351212f79801a7f2eb9ea994551afd461679c880bf8bb995b0fdecdb5c2d041e31e074e9d6296a3c27f777642dcfa0c00306bcefc7d317a57e5bf0780127c4726c3f0b6a3fbfa4000d1b33167045162210f07001a7765a457d97a34afa198f16f0aa53ba4ada5f67bd92070b384f4acb525928adb552f73c56c068d128a6b5879aecdf0a0f15b029943acd5759f3643702b77143c6b14b059f2cee486dafc64f9f7051c1a9fa16d1fad4bda27c640d4fc1c8f3f22494c5ec235aa6e09514157cdf831066674929385f3f99eb59d345759082f397a1db398bfacbddc89a93740d27a9814c86ba80171b05af4da8f3e0dd22c3e51da2605c55d0cd9c5a066d6d644d613820048605d68c1b340c40e3672ce042c1ff464bab2395abe8d19135efc08c1e5123706306147c2c137e5f3a6b1d9f60dd84e57c5affcd53623cc1b7ccdb425db8dcbed5b0041d9de074f011a1d525ade31d43a4c4fd39c18be54bea46c5cde9a4f68a2c443ed0b109ced57705ffd5573a003a34c1aa14f4a7368b1f74a56a6c81c5647245162229e8c804fba5e99ff365feb0c4fd1351d08109467de998d876476dd7c8aa8e4b304ad89652d74a9f465362095edb5dfbffff4eb668646dc4460c11a8a13da0a312acd4d30c2e7c95942da504e352bd6dcaea82fac85023c8ed98049fdb3fe3c8f128b4bc2b92e04baf8ea582169abb957335da010750abd1328a4582eda0734d55e4906055e94b4fea6db3561f7c04e76d59ad097d4949993a47f06f1a33a9979ab34ef18e46b0abe9e32ba13a2623f87e15baee93afe5a872b808bee37fabdc913225d35204a753e524c563498f3a1b828e44b0ab1f7c54cedf424a84c63a886095fcbdd1a24d4acd2f0a1d87e076f47cb5501f4f5a33041ba4f48c3a4a1ff52c8eac7907487a4459073a0ac18bccc16ffc549e68c60cbf018218332830622386052693c984071d846094f45c4fe9ce65783b083eeffaaec8b451b3e78cecaa200efadbed694985190836c5a8a24b8358569ebc1018207400821519dc4bffe93aed76c71f18257df7a579c6506a1c59db82c4c6162458e075f8815bf16f4f71548aeee0c81a081c04ac45c7b05143c6d92bb210f140471ff88d97556f058b254ce7032b9346f9a2554c931bdd03a359844a2285ab1172d4039f5cba07d779737bd0f2c0e9f374297f9f32b70f1ed82cfad46553f1e2edeb0e9c96ab53f54799cc691d59134943d26107c69408b9adb59d572c0b1d75e0727a15a45b3a6166b10e3a70b659773cdb27f5143407360bed4a42ef97e6556fd490032744a58fa7d85f6ab33870a39598d42355998c593870de19ba54efabd74135b226848e37f0a2af5b32756c751eba81b79c929e5032b6695376b4811f213c46ad41e68a890dfca7ace9d47a56bd730d8cad304faa392af7bba88153417abe2ff314742e0d9c68e5991d262ba74afc6ca0030d6cf84b535a6e87f2fccfc02ba17a35a5b56d514966e07296089583d20f5269cac0679585f9b8eaefd1970cacd2bb64f79d4efffd876fe81803ab65142d4a0a75a25f1a59a3c16713e8100367715ff8e9a9e8abefc89a12a0230cacc6d89ddaf48abd3cd7c0c0aaa816d523aa62facc17f81c957e99524b559e6444b620b151cc0bac5ef3a0ad9edaa57df7858e2e7039275bd34232746bb40cece0025f519aa9a464054bde405b28d722750848bcc46e0b5505113ab6c06750a5da25e5a874c20e2df042b6dc7f1d5d5a70a191b5650c6581959bd2885629e816d95a336e9c007460814baa426b995ccf9cf5c85acbb0abd1c56ab40c14e9b802affdb2ffb7f28cac699162a81bcb496c28af31991c5a153fe8b0027751fb55477e46d68edb681b371ca03be3c61f0a745481cfcf2df5319d9296a6830abc5e2fef182e2be553cd98025faad1bbf776958a76081d52e0a5de34ca4f85a2c08a4e3f0b9a3eb7788dccb4a0030a8cbab7a8d2ad8adfb22d363a9ec0c8f528de318950a985236b22349692a0c3096cfa18daaee34bcb16b3ec6e7434818f6fbade7da392b29891b5624b2386488d12eb6002a7d2666c21329688961d4be057bb84727996cf94e9846091001b3e810e253052d7b9da7c31a8dccec89ac88c5649602dc9358b7af9c55da948e0ed95dcf6533245e921921b2533dcec3a8ec0064f1b956b289533741881dda8ad64ebd4f4bf551c3a8ac0aa1a19d25df4ade62c2270d284b41c84794b993243e0b62ef6add4964d06770434486a0881bfb8af7e478686df6a6ce80802974d490fa105aa89a636a93aea8f28186179a4ce1a2a34db2b14eca83bed97f4f75bd640c1a5e459fc63ec3ec1e7984ee4a57c7b82affc3b5aebbd34bfb1139c50765f516aa5bb5777c109f6bd548eec51a53506e126f8704f7af5a3a65a2c35c1e796316a29eb4bd5ca33c1cad50dfdd2e1bd310a13acbacb8eab75eb53fb127c52fb9dcbb36a8c956209566b519169ae32473555826f57d5fd69930b8f1e25b8686f4ab554d4097d9904bb4a294ddec1925019240946c7dba02f474d52662712dce5cc68a7bf36ff4b9060377b47932b5f464d9f47b02fed345da9d42131b870046332555049fcb369f51bc1c7142a269df5a6f0f518c1eb86c5d057725f7f8be0d2ea5656662345f0779babaee2cabd984f0497d483d0af6e5d4f062182cdf73ac928cab2e51c3d04a32ac80d1e2a7dcb0c0dc19f56693ccbd2f9f29a85e0fb94cac1eb345fd08e10dc47aff7ce3154b76406c12631b7d3398da8c78d20d8944676d0b4f94030324f840ee222eba448c416e1e002108cfa1bbf242a7fc5b1ffc0c81ff9eabd51e9d3ce0f6ca7dbd1ec7732638ef6816f7d59e996361fd82cd74b7984b84bdded8191af55fecf59bf3226f5c067d4a79ea3f450224224b8c803b74297f21c957aa5c34428b8c003af29bd0e952ba58a19545cdc81b1d3d9a993c778ab2a7660932c4ff1bf55d7f48d580756e4e9985a50311d440736def64635ae35cafc55022ee6c0794bd1598ad092032f637e2f19b42b330e9caaf49e7fecd6a39282039fad5445750ddedaee1b38af1c752ba1627453d5851b380deab375671dbe77bb6803ab5a5d63e5a82dba842ed8c0b84c77c16f2f66485dac81d39e3f0b57d37722a52ed4c00ab758510893214d49b94803afde25335568e9d1655ca08157c1530afa3cbdc960bb3803174ca724a48be66727d5e0c20c6c26ffd651bae90569d6c04519d8fb6d6f19b45a29bd3e1764e0556f8da97b29b5ead018b813733d95969214e28981979ac7524ed7ba1fba30f02e540cd5499570d558155c8081dbed93d264e7dc2cff0becea3d5fa933aa18548e1778b71b1579a36d63f92ebac0eabc6c9bd467555315175ce055e7962ff30895e1ea16188ba5774af62ba5366a81335761ffbe72b38594115c64817fa53d2d6529f73eb7b0c08f881095594acd75f515b8a8be7408ad5e5b05df0aac6a9d7579c56ce3eef9818b2af02abf65d55a8348db2015d874a75629d52d43a6e9620a9cab5025ee5d96851247d69608d22ce0420afcc7e4f2636fca45145817711dd39330a13177800c5c4081152253bee8f71fad655c3c818fa5a5b53eaf4d32756d70e1044e848a773a76c156d804f665105a654f2a4af7980b26b01b4be87cef42089772174be056ab51193be8d7593725705e6fab6fb4ce319b4a0c910f687123ed69e122097c6e7f8e16167473d4b84002273595e8601fb3bcd323b01eeea35576eac208fcc954a1b6354dedb25c148157426e8c323b4cf596d6ea3205174460b596baabcb52defb281743604d7e9e58526b0c174260a58c1d2a25a999fe5582c0078bc144efe2674f1d174060454fa7561d856bdb9a868b1fb09d4dd7630a5eea55e80324344460c3af385c0b98d101449570e103ce3f34a5eaac52b41c84111282851521250510299c70d1034ede98aaaf6815c1050fb835d14c5159c77d8dd9017bcafe82995bf43d950e78a184cc5fa6ec1c3072a4c5129e515b0c4ab3121738e093a80b39aede0d781944e6ea8f595cc7930b1bf0eed9a4f02def132db9a80123e358d4b5a3b5c50ed180972a9deb4e5d4fd59b8b19703255ba261983aa10a11b20706380102cac28c0880b19b0f93c64bca032e8d249d6550c2d26a062685152808cc1eea9aee73fbe0b1830ee669ff5e8d56fd690a190e4017a451622222e5ec0252d743419946aede66452a365884c263c70e102ce9577d051a6cbbb6af581b67122e0a2059cae10b28290392c6074c6b715ae3255efee62059cbb3ccfda5737e78ebb5001a35aba255ab808098d35f6910a7e5373df28552293328dac8990d010593387c46dc448181fa8e0d47edd9dd96fbb529f62d78cc6872918bdace3f93cd5c956b231a35557e05c8d9681a56073db828a12f9a23d11eb190f185124ed25fa870f52b0b2d534ae76dbeedd46c17d68d9a63efb6dce976ce10d10056bf153ca29e5b84a974a28189951f6af6b6e86b6236b67256732d40840c1c5f233552d5a260d163e3ec187d69016b39bde8a9a8d92ac005ee1c3139cccebfd5f71d40946bf5e61716db34969d828587c7082f1732deb4f08fddaa53e36c145f150ad184c83ec8c26f8d8a1d274ac24f4f36701336e8c4c40c5d04c30ea3253a728858d5842e367c43021582420a400c8ccccccccd059355ac0f08109bee3db685ef0a8b46596053e2ec1a9ad2cde39ca98a274d112ec6896b54134aed4311f591163ae9560fc3b6a6d9949c5144d1f94609526a15a45a52b4ce5120d2d3a20f23109f62de54fea2ea768fa4512b09260652aa1d5de4b7d49ab98e02312dcbd904afdc8b859e8038a8616f70145c30a912bb21011c10724f81e1d63eba7a847709f75ea2085c5d4bc1a912d486c9c2318f9af2ee7eb4ceaf434b236994c26c56cf0d108f654aad9c6d01fa32719c1291d9a9ad4a9fe0ecd2c82752547ab349149336e5a68d13042b0b062c4460c0ba87d2882135abb8dc7749a9644f0296b66a5d5bdf0a84d477c20823d15552aae12baf2854af07108f6735b901f95db059d1982dbd741e95ded18fcb43e0ac14693ff2563b0514286108c125a676d51b7ceaa93239b828f41b0ebba1a3ceb66b7ba56109c8ca72f07a9bbf3eb0e04176dcbb5b0bdcf1c521f80e085b69c9b2fbacefd3253818f3f70224f0a253cf669c8a41ff8cd6afc758e1574daf8d107c6356f6e1dfc3f67ed8dac2d043ef8c06ba996b5a39eb562c8bf27707b60c365f6a43c7ea7249eddad343df06e52b4e69c35c34bf2230fecfb77774a494aadbf8cac911c127ce0814f66ae3c68b8262d5a67858f3b30bed236ba1cf93f424bb303af6c3d74b4556a63f647d6cc42b048c08c074c26336850e1a30ebc69bf1473329d8407251d78293533ea6c71b5905a227ccc817da5830b7deaca569a7d3ee4c06ab55aaf1574b298e2329a04019389b18f38b075398616f37829aac495063ee0c0a551fb290a295ed92b49818f37b0af6fd3ff46d5524c374a44969b49e0c30d9c5e9daabce3defe8613f868035b9a554d592ce0fe93c9072693121b33da46c92236b05abfad0efd9b79c394b906c6dfa44ba19f5f835f10d5c0ba1a1d854c4a95071bd5e0230d8c4a175b29592a8567990f347067f1d2cbcca8bc335d821f67e054980cae6263a33f65640f79e0c30c6adda8e49ada33b25622429276818f32703ac5bca03468e7a0cb354706360b53116d2ef48786808f31f0deab5b8a8a92d8a8f12106569eaa3495d5bec9cef908039f745ee51e73d9986a7b451622fe01062ec7504947e5d7af7f45257c7c8151e94aa30c2eb4d2cb0bbcc8acb5aa069d2ac9d04717d878dea74be5577a2fffc105ce4cca374f6947dc02ef42542c99b49032068d16f8285410f2e35b32b3c0b8bb54b255dad0eafd0716580fa6f583afaaf0ac0a1f5760a3ee523e5aeb5f86d20aeb9c3d262d7d145e1518d56f265cf3f969b42015d895514f77c6565227f7a6c025cb19328e794e0adcc92cdb93f7ebdfbe18055ec62cb43adbd3ea756a64ed030a6cd768798c999b46059fc09dced0a15d6b6fe3894e60b3342d3dc81e69fac52670fbad7cf5856e12aeb226031f4ce05fe51dd51d75cef755a2123e96c077cad23fbf5529299e12d8fb31712dd7965b6712f8d6ff607ba7456b7e4e0b1f4860b5588c7e52dfafb23c8c838015211f47609436cdf154cd4323704265562929152fc5f49e113e8ac06b19f75baad4d27011111873153f67fb13eeab95c1c710384b237fa5060d0a81dba846fdaf879e78d288f0110456457d59679992e9fd0504c694d026b6da6a5da6fc8057fd173725e1f2016bf194ea4fa384c2470f58d5949b94bbfa57d07ff080cfa654aa96dd9d2ea51010022364012533f8d801b71a84f0cf72a4578cdfe04307dc2a5d3125cfd1aa62aa091f3960cc2f68145da73f69cc59c2070ef853d17f6b73936a537fdc809317b49d5ef7d1ccf1c306bc5cd37293b71f848f1af0de59682f95b2dcecae0f1a70f92fab7a534d9fa17fcc8055135e4a7d6b8e8c103e64c029cf24ae3e4df3ea2d3f62c097251f35422badf5a40f18705aef7372cb3ab51e9d8f17702eb45217734f5984d2870bd4a0c9470b58a14f9d7fd90561b2fd6001a3da55aaf4fa93e9a0a29d0f3e56c0c6549d2d37b8d6cba10f15f0613eb27564caad4d425378a4828f2a2febac69b350938c1b25e946c91a7380072a38e1dabe5d860b8f76512b760a46e6daf40efbd6da3ba6604cb4b68eda2c9aa94b119c60b3121e3fff2619a4d22ab709ee46a82c85fad20b4d70b1336ece9f1f5fcace48492b200446c815239a095647f3d55a9b98603d87ac71f7ee17ad92c18b4bf0eaf3eb9e8eaba5847232394bf0723c980ea2828ebba90e81110223040b2b28309964175e5482cd54c2c7559bc60f8f8889e00525b86c6e2af89acea85d4e82cbfe9ae1b943f4a9921a192f24c1b88e412835d3651b8556bb889948305248b39cfba1f1b2e84082fd959f9eecd5f578fd08deeefe7252156aef5d189309175e388291a236b34afab5b7fa9de1452318579953b9ae28573368cc3032bc600427bf532ecbc27b742b0d1c5e2c82959ea2d0d25f4a9a8c998818aae18522f8a8d4de63f6682927dd86cae14522589dbe6550d9f5925669113b86083626fd41ad5ef96432995c493140bc38045b71b4585242f7d7d6355e18821f971b2a07d7160f2f0ac18be73d4fc95b6b75ee1adee105213865a2ef2b7f3a086ed4b7d5a53d69abb582e073aea83f6798eb8f36107cd82677a9ba4ab67880e04cc88c31a9fa2475b97fe04f2a7dfb9c738aee427ee064da2b9d298fcb24634078d10756b4a8f4d1c14669caf8c0e87a95bd54e6edc68b09c28b3db03a9966061f111d75ad07be7db46b9ff4e4523779e054b36fdccd71a5592cf1c09ad4294bede82cca477760632ed1b3dfde68b137b784177660d4e2b62b0dcd51e6fc19e1451df8d28ff9c9e44a5fef1ce1051db8d57e19a49f8ee975690ebcf6e74d8d5aba8e3fdee0851c78f3689e2674ec0da92c36781107ce530c4b51552ef966c281cdd598837ed99ff3a6dfc08eca3244bde9a4855fdcc0be88c71fd91b940aa20f5eb48131f58ad992e6072fd8c0bd4e223c7e36a146a7a9f0620d7ceafc6dda2df927b5ab81d794622e6dd7a45e96155ea48151af63de7bfbc17bc3c20b34b0529530a9e6a5339b0589f0e20c8cd6fbd758ee5b9682ccc0768c52b474f5e1762a59841765e0ee752b5b4c8d396d90d2f8bb176460c45c65a5d93d268417636037879b4525a6e469a11878a53fb6bcf452950557c5f0220cfcbed69ae346bd573786e10518187f197cf3be94498aaf3a78f105ee47bad427a53ca5e45ee07c544d65e15a9770d7eee0451758d31d37c68b596ec7950bfce80adb17423554785be0df33673a598cff1b1308c1c28a9063a6f0420b8c99d639e54f9f73a8290bfceb522d4f691d7d1b8305bed3764de36767e6f415b814a487c8eca4eee5c80aecc6e4776ad9cf64295581735541ff594c6ad55ba8c09e692c213c6f53e02f6715661b5f83689d8895e185147899f44af9526ab66c5951e0c7d6ffde7269cd495894f0020abc6baae6de2cfb71a9102cac08994c9ec0bb4eadb3ab969f7bc8098c6c51ff6a738c2e1a6f022f5b6f36999eab4dae2130420eb6e1051318d94a8ef929ad65c2b2044e5caa51c192f0d617182130ce162f94c0e8f89637ea9dea14a349e06252636652a490c087d615b54bcd1138977b5a545c4468d93202a321d2cbc373dd842762fb861745603faa4d9f53fbc6b82522305aece4d62af923bb6583861613984c44ecb8e0c510385d8faf94a8326d2d0a81f1d40f519179d495d48b20f05ad39810a62e3a26028191f155fc0c5b7fc0bb6e29da47573ee0bc4b5bb5666a19b4df0356ad6a88c957ae535578c0b88f9061afa34a2ea376c0b6ab2e9545371d70aaf37b3ad15b4965a51c707a32afe73c5113d3f1c20b1cf0ca825499a965392c3f994c26ca861737e04e6fe6524acbb6552763c20b1bb02aa8b7a97f935eb77ee0450dd8dcf255b69361265585067cfe4d3ea672542a938a0de1c50c585359438a68ef0693bf90012f4d84fef4bb5a28616ac28b18f09bce82d4661a430ad1bc80012b947c8faab77643682f78f102465475d0c2dc548c9fb2f7c2059cd629d7cf526c91b60a5eb4801d1db9317579f6161d1114bc6001236e31c83d5d69a49f2b622978b1025e64743753ffa94b765ea8804bb6edaeea9f7aaea204905430de7e595ed4b9ae82a8e0b26765318abdf6eaeb145c5299517c6445995d05c414aca814de2977fac71fa98ab1050820a5e085ed0abb18f2e58f66866b216243d929008414dc596cb9e7ea2c897646c177923abe5252d7ff28818882152a7c456306a1d59842c1661ae55a5c6b7735060a368fb7e6ce51e5243f2762ea24209fe0f38a1e2ffda642695ccda0714511403cc19810a1472b4b2d354d27d8cda8d59679ce4965d4c81a490c11b38501c2097ed43d5b471945b9ab37c18bcb742555525559a62800d1043b9e326ec81edb8daa162099e04c459d2a660b52f6aa98e0b4e74c1b2dd495109e4bf031a86059a8f0d8ef424bb0513cc92873e8a8a2973500a904abb2ccaa72abeb8c490a84128c6899ee21a45e3f4b5e918508034026c16e1442ead08a9a31a5926065f4dacf298350520e1209eeb49a8ce5eafba33f209060531695215d07edfaaa312cac08b9220446c803426084b00c121a0ff2082e2bad1f640b0fa1f4e8083e7b89ccaa5552b12482348213fa7365fd6c797359de2530994c262ac604a90084116c65ed214df96a8f4286208be07c734ab5de426a2dcc45802882bb7b11d2e47f5e194d04afe1e29753e86add0e12020411bcebcca979bb560a6519591389f15f43c602b6304049494360d18031994c14e4106ca79896948a6dd679236b7e250031042773361d1a74d50a91a342b0a294b691aee37aec0e84109c26ad51fbf5ebd2ec47d662b81e4006c1af14223449d5af54bc0882531b5d319d652ffd2d108cddea092f91ed264340b075f2d3fcd4be8cc9f3074e68bdb718c5b2e9ea2233627c9001c40f8c8be67e4d7a79b44f0ad8682d103099cc701b365a8bec03a3ec65fbed9bf8c00715a2dd62b63a6b86b300640fdc96906d1e83207a60d553f28ba5727bff089207ee3554d0a51a324846d0cc0340f0c0be6e9ec552e239069d3bb0f13bf575caee6f516a07c693baf1cfe9939100a903f7c2e3becccb2a425703420776e3fbe9dfceafc784e6c0ffc8551dfde38e452139b0ab3cf5a8649fe94cba0711207160b5c5f2676151aa2f191cf8537aef3b4707f20646db0b2155ce4be739ee06c64743fd736e13aa62206de05e7a3e6f55ef5aa66603afe2a26d27f6715fbe062ee78ff134756b1d61f10ea881175349884ac94be83ac108c101481a183db9d93ef6978ea386117258e3ac072068e093a891de1553bf8b6905c819b80fdafd3ef556eea0998195bbad527d6ba96a9032b02de38a4e6f2532705b31af56fc2c5455670c8c909b621096bb63c9241031b01bb51453b55165942b4818580dea596816aa9a49050206568b8ae2ee32e5bc9805f902abd54ebaeb7a2929a55e60f7bb941c11bd3a9fb20bfce66ef7e966565031102e709f4c2b7910a962ae1c640bfce5905b2b4de8a76946d6cc0e881658bb519b9466a9eb5347d6f2072059606408115599842058604b694ff5f0ac1f950be40aac16d39f4b370b62052e5bd0bacff5df8bf6aac0a74a164d998ea3523449dcc60d2b0ef00f20f1111b3158530c2054e0b36ad093d1734af6e929f063fa9d2cadca39e282488111d54ac895494bddada3c0baccf146372529533b50e0923e152a35ebf71ccf1a22365a44c46dd098612130429c043126d08186c05e833c819359698d96377f537831007102ff9e7b5f677e7972d4921b5d43a42406428f00690297538c5a42b5e67b6b060d5dde8119331e3099d0c0820609495f3199280284096c964ae6a81d9ad26b13c8125857adc792adfe18fca3042eaa1c5c46a95b69340a24096c48993e2ea350baf30f82045ea4666e4b21744cb5408ec0b85c13aa31f55ca8c5086ccb1495102a2b39ca3345e0c4536875372e835d7e32594080108135332157df95f6514120436053ae509d4ce5faa77b640dcd001102b7e934beca32b3e63b08bc7a51414fa68a318e3e013ce521304320406053ecd8b5a1a57c19ba14407ec00ab9b7a6c6467da73701101f307af485095df1b45452901ef0ca4f542fc8246adc03e101abf579de0d15bb3e45236b93c96432994c265af00f203be0b6a28ea6ddbb6dbda20356a4c6574f9a2e8bc972c0a6129d42f5855697351cf031a6a0e2c99cde3ab30ae40605994d18d3a36f4294d6cc290a2507406cc005252f678fa26f39066bc0e907a9b4cc4ddac22b34e0b4dee90ef51164066c7ae6a7ce2343ad584064c06b955f57495dc185f40f24067cbb9dcc2c4477cb98bd8301e3aea2aaec8d1dd5f5772fe092e5949a7f2f86c698d204101730aea26b0769e3aa238402480b1879aa43294f9f84cc196405101630eadaa2d6ea6f94ac0ba20f4056c06b06df529af4a9da7007202a602bedcb4d51a6ecf459a960454b3d2dd4ea2e2fb50b54f06b975feb57969d95e3e214bcbcac356ad742e866dc852938d7af2dd3fb25a3ba4bc1c6bc51e9ac31349d3c49c1a6e74cc2d2e6172952a360740190c4a8f45146a3501c0c05822084410000a3e7dd0073120000000c148fc6431291603a2e3b1480044a3a305c3438242e1e120d06649138240a07c3a150300c454118035110c4b134c773a4034cc89c9d7724a9d6126750f1d5e05161227e40d761aa3afe55bde0076c7dd00c2ef6b6474b208ac30868bd8e316e3d48039449ba572a0ae9587ab02a20d2d49e9dac008ce700c868b5dbdfa9331938501fe5e7febfd56e6a1d3d5e0e0bc2e7ad84b83467558106181e2fffeb167a331ffb5e167bc302bccd7a846b83dac079f4c1a54b1ad0794728ec6a68edcdc4416a464e1bcc46814c4f5bd4ef85888a05c494e864c5bea83d14a43b0ef6133c9921ebee92fcff2cd910f1bf255228048e0c11743611c306e1c8872097892e6e40da854484d920441ec894956bcd46886e49de6a4a968f86889a60982111fc7800ce9572332228d474e74aa1d94a1e45da8b4be4fdf21c1bb29269808206a0ca022ca2240d8b08a129f427cbfe38f9b117b5ff78e4176cc2604d22e68ea88fc8b9c42801bb7432b55391ccb96681669f00ff258360c34af28f0a1dbd757d7f4c87b73dfe8e024980e70767e363aad0431c6fcd7b27f94dce853393f759a0ff1fc03fca40d834a6fce3763ffb46dbfca0b461dbeaef1874006f5708f5d0d61dbd3b5ce31ac14fbaba7eca92e856b6cfab86448cf976b7b02b0b0ec66a00b722ccc499ade612097b990df94d6dd9fa5e9b157d1d834be0ea99f277361985729fda5399b3cb55b00d0b3ce0d3a48e36033aff1adfb9d98cea413b59e610fbb94113aafeacb9e91378477466640d071ac740c7e655318069f3d3730079c20239669f2752600cb282b4ca28cfe323a4e16c01fb825289c070808604cc918e96809e48e587b2a0e6a61088147524b4e59cddd5c2f2f445369fcceba29cc0904dd2e1b76ae421993192784a712796e9c1a45406048b60f68a726d06985db813788637a6f7de3bc5975c7cb04a4593530812d9a3057a40a286255d603d22184113187fae13e5460e0406c0cc0a90f2914a643035e5455846ca2973332221e267295b05a7e0589cd58ed872ddfd6814cad389946472a8b60b74ff76b6f6abc5feba8522b3ecbef67d822da7ec2fdc114f3f2096cbefafbd21d40fde1190ed303f49828ac6c1246b93159d5598a8a42a4945b856e098890a39469ace4d912f0f07ba054c01295981a1988063130d31ab46d0b098e22adecab9faac07854475c6110035e06a3279d3280fe6070f379347e200917482a4de30ec89ca3143b1a4dec1d25978c71942fa2eb153093fc6e3da334c43a2a642459bae5ed227689d95d3a338e9a0177615ccf02f559bb00b91545277476d756d5a9a5de8002688f82d4d5055186bb9ecd85f944fed04cf56bd3316c24a279080c53183fc247e48ef20b655fbea5c7dd9d0bf1dd3a536249803b7b80bdc717a99b8c07d17af322b6a95d5074aca9b27303e3d5efffb3fd68ef390efbec93cf2460113d0de8d35f018d06c8466c7c2cd87daa22da1fba51f92d91b0f625dffcc4136a3a3cc3a53e4a3d4a71821c00b46f60d9819ad34bcdf31f64d2b73d60c9da7f0ae312eafea696c51f32c9f151dfd9e6ecbe93968044f21eb5fe236e8fdbdb95c1514f16bd463d2a48fd71536280f1faa3d7ba756c9ff037eb0686a072c4bc9c9b202a2c0b0d478cd287139fed5b04366990800feca20007c76d472782204754e6bbb81a4285fd03b28c85e3ab22863dda9ca3b7f6c2df76b77621ae260ed2b79dfa1db586ef6704827ac1e76ed8de52170b8a892a3c25c8634d55e6c8c94f200d74e841ae481f2a793e3cd4c97be6a87d1e716f59ca8e23e5a5d82d6a88766aff41ea8e8bfa71ca8b19b769966ed48c0d3891e0c38f473e442618199d15d66148bc84f7d7d870e07c5be3defa0d267b09837251e195999511b15e31d51c1c0ff5f46a134827c376cfa8743de6541ec2322b33c90685f5a78e5ef52727ac0bf318ef9a8dd1c3134754eb956425aa08d5a1883d367cf0abc51a46f060b59205a227c7b4b7d5606466312c606ab75d028ba880b7591c964928df70c053ae3c9c3624aa29da58b73eeaa9086d4c6c42b1e24f653b16d7be8595a86b5f0dd9fa14914ac79e2bebb17d7b95e756330726bb39dbfa307cb2df4e5cc5067386781447842635ac4e9cb52f4a470e898e4fe331aa097294f3d73845e1b4d087821843ea973477101c02e708e25394c4fe70c0beb8cb10f090b2bd00a44302404ec723cdef70f9bd9fe0f1749a226a165b23732b60738f6e6a30ce952e3b6aada87938e2c5fb0cd528d610eb5f689d57f8a7071df4b663edcd9659ce021839c852941a87770c26e3b985a6e45ffeae8291f8887e0e71327f2812953e2dc5996ea04799a50d27c15fcf320514438b1a3bca769572e12f0f67ec578e4730cab25152ca12423743ba03635f0088b4415cd99c727eeff5839dba65e64608bb30ad9253a313e2f05b051226b6683c76cf5381120aac6669dc8c71875038046041645471f723b7437d600713a54057b18df61e65fc94c7ac57b904fa0fbc23a0f0f1b020400fbe5c4b5f1d52a5acdc75b134811601508387a717f1a93d2520451d9b1a198a63fbb03bd71e7ec41fe331771cb0af682d5617b4248ef6821cd3cf2ad94bc534b138369606aadcd0017e05085026e72b52397ce0ba458d002bb007160740f2ea95e9695cac390aeb5492577e3664e585e336bbdefdb355e2e5a26c19d4151a1ee4f8fd89df5e3afc74b3bd16cc8772579ac936a36e7195fe1436b6b8f2c83868d63a807dd79c47af12747b7bf1de335e32c3603f9f4923da0d5151bc33a72b1c6f233a7f674decdc43f8f41bc677da92a8bbb45bf09b591c7bb9cbd3a1d8e70cfd7b6ccfeb5b839b084d70a8821a421300b22018d5ddfcace73f419cc75a86413192789e15d35ec56633c77921949dfd6fa70e50a4c6666a8fcf873d9ed730db203a0995dc6e19f39d29c609aaee548582c0f23e1d57df187a04855bd21d32d9f3218021874b0872f6154ef97a1c56aacd461e7a17904ffaf26bc4ab000a336a677a9450a99a93684c8976a619a324823e6e6a73b17940cb145e12d8123447f4af5bb7e7466c05a88a19e4a820458540f58cbb253444d845d28b56ab898967687593daed2dedf88fb6782a7b97ebf77d7eedd697a132b5db7a471aa035881d390285c8859a1343aba29f9263c737ed4e12853e1c8a837f72de7b7cab484aef863f91fb006552897961873407d019f3d72b42395b3ba75d78988751530e0704a52bf46f2840e821794ee76b0ce7713ec168399f4328da9012bd81d5a0f3c4c9c91256e082cae9019c31eb37407bff237784a6fecb06739cb11859ac402423c1a098fd0d3e6e9e20550e9ed9c6cff4300b194a985ea2994a51f8cd20a2df3bb37baa5f74d8137ecd6d7ed31053a9dcaee064a3e6f8473f3e031ea56a10e5e871cc3011f0f8a868d22ee5cda78a22c27ed3e907b8fd367a13039cf497342b609034314f2d6685ea1eec2f7f7a30b2fca732ebc81d644645759315fae7ebd789734ce83817b59b663fe4edf83b3b1c3e8c9e79c969415fa7f1765a8be4de0abe4d991ccd57bc8d921b20cc1a425966c9d24f077614dcc15f5d3b561553b53aa2e6beb2930523b199412cdb6f2390a10631dd59f8e16901cdd52bf60bffe939989d644e1d2969c35b07cb26cf0d7bba3e90a98e2e9428129a6544e440ac7abdc5d72217e093e3c00af30b17b0936ab75d8b7e44ea9aef1c884975d666fa58578919f1fcefa90482c379e02e2c50d955836c529c37e1474bf5f3c1c0ec335de2b89ff179c913b494a9f6bf2c8e5ff2b1f701bf1248ce8a54c613a52129c430203c6615a2ca2e5d25c176837c3a61af5f83474a30d660eaf1442e919afb6632e999f94a4c4b00bcfc943e51d88139efea41c8acff24a19c59c2da706d34cb01c7a65c6071206a48b75f3552b236a494481ae12d24b57f34aa1b0f81494250906b9d326758542bd288a03427cdb2491c525db0ba255b45d4a87e8366c33d833df7f98597a998c0cd0722692ca38705696cb68eb199c712959c0c1a8ab06f3b25f73ce40b888547ad31207a9eac8312212be1dc51b4863b8d2e0219559eed306328cd7d122197fe523c858d43fe68feae14cfe07b3f4a2fe1ae30a2677063268fa024e8eb175464d4ffdb5354bbcb34655a3e62e81a5e961c0360b408d3862be24c523dcdb147b480a19dbfb794eca1e163dae99034b9340a300baa1b0e9d63da24ee0a9ba697d0d96eea8fa8deebc36d65b96f4978a0f5660de2c0688ef9820815aabed9fd1900afcd129476bc57a4bd1fa5f4596741c684a4c2dd883531dfc738258d20ba3c914c3bfa9dd82b62fcb63d61f4881b8ccb841f17e99d7517aa59bd791a8f66afb09a0bcc0b1095fe90ecc11e9c936f7db30a0a01c1e20712c782c71b70fa6c280f2f8aa78307f7855ee35e26d14d27cf75ab4d88bc47a25ac9e5866fe5b83fd4841fc35adc21ddf207126dafd4ab88a565e44476c04648c9c6083536c2b9cfbde66086ed1714e3c3fab1b14219e87d35c6c9b4997568823132d0cd2a24cef7b1af27238c9a286b029504123744c96c440462aff5f76450c57294b99f7deaab9c47c1c1ba32dca49c334a0d09324427f5b33bcb9994ba41819baf2ca8e7f1d23b37688d5f43ad6dd8be6d057d987b5d3387bff4fbbaaef143b430d8ffd2f92705cfeaeb227769f558dba6c37b506c407368f789ed7615527147cf71881f5b0db02beece717063ec97d737716c17ffea2ce03a2d2f68702ef63fdf80bc7811386fa93c80adb21f2b9c68f1dd59c9f9a143cef0d896143051479ad75090d179dbe4edf65f69ade77b9bf2b624ee74d2ea4eef6026268c4024561d168101c8640387c366404be186471ce8dc16470e7fd0603c883455c653a9c8f1e62dc55c17986841493b9d2967f48946b5fc75ff837f218e65229e682034c2aa61cbf3e1288200aebc71e7cd621086014e44400344c6fb6787a3482f4deecedff42a06e646aac5d4be3574efba47b88f76693f830661f5c961125587148bed34c86c9b9b2a76caa9ff5fc3381576e38fbc2a104217868a7deaea962c21df76cd1f622981ea52909e61ad4a4fd9584f58ec1072d2ba9c2351540fef08fc4b3a4ed8a1413dc28d418c64fe6061656a9b7e7b2330a41811b9cf57001aa263563ed69802a3e9b985810b4e40e0884c071d9fe760b6127b221aa2563aad4bc91c76705824a18a984867d70ab6c5ac255860a4a44e6e7f051616b7aea00b988501f351a5a3a373f86a3a034846630a054a08c174b750e0b2fe68b575679f7b7126c1b86a1f41591da69a8bcd4d919d71fced94dbb188881ee124aa02c083faf098670d154178d9be684fae1be431c9cac1c0aea4974ead8b83dcd7d3113d78b4a7ea1338c99d2e0d5c21e8574722e37d9ecdc008da63e88ba7a419f0196147066a443e074631bb00fc956e0cf9ac099eb55742bb7fcbb2111b032ae359d0b0350c734f3cf43af19f73526472d089e5ade31a4ee11f31b52cd53621c35529317e57a6f8e60a8f0389a727d674eaf7c17479ed121afaf88b2f0d5fbb7686b089e784ab778fb29b0f2486c02e620a62893973c82f2ff3a575793a5cfe9c2e8f86c8aa2cb85277b2796139cd220e4947fd9b1078a67c64456bc1940a5e6e7621af23217d819dc6937ddc9bf82b605e98de6d5d8083434807478a89c0b02a0cfcc7fc98bd05410bc1ba5aa502f2d38da737a2a8f91f081d3b56f067cad6ec6856a9023dee1021d4d128c90ea7ffd59f27555c51282b876df6f8c610c369d95ab7b1020a5dab65251016d514a7d03dd48cfb0d0192c0a0f57f5ae3735eacdfbc1db2da1593b9d7f254e8c728d809af8e0aba9486874f968029b072182adaff3d88b54487941832779bc412010e9aba3449da013cc6c12f34bcd51391d58daf5701e1b3379ba5c1d7ab669a8a5acf3fe827388bf9c6f4db806f47825f83944f0155e6c062fe114f21e3b2b09877a78dde7e9b8f7bfb1246fc5c25acdf1a3196259d5603519555224155051c677d70e8a76edf375ed4226f9d6f7fd9d248ad7b386513ecd466c645f54dc3a67c0f72dcaee39d1ecc01bc62284fac471b2d6f7a66956648028c38e39a5d4f7aa88d1978a95e0b3fcdb98e558914950899346294b910a35569f6032aec75be3b2bdd24d136de5aa6e1c18c6f57874292c452226b50006d6779d21de5fa9ad1b105bceb2a26e2aba3936a3164d0687bba58faa659cd4ce7b1305b71a462390d3d6ffd134ed32a555fcff1a1177ede4259bea96aa16999937bd4a3fa56a585096e67c59f3c6ab1f01470f4a92c32131eba60871885cca2ba328f7d57cd5984a4b8d7f4f1f540151f30bf3778141c35cf863bc701511ecad7d548838a0f51399ccb94bfcb2f48f35fe49b94b0f572a56a5955b39a990ce956f8b8ef1f4f2472efc63e5826d58087d3e30f5694a8b2319213b202f2e4e842da0b61468f16ef10f105133f6beab918f7fe1de8c92f78723cc87d023666fbbc615ca3e29d4cd06fbdc3f67814ed4942e85701c038a326459ac7061307cbd6aa9575162a01267adf48a56af486ef879dfdb7133860ddf409204de853a83fc4c079145e22b680f7e753bd4ad5ebb5191b0b346e189fda126eccf4206bb17701e8db66b678a7ec29a6ce931b0a86426223fe2aa8a01310363a0a81bfe1384a4a89c6540e4540dd055af072e8cd51eb609ad92a0b4a979d84c7cc5aa86181016389d7c53849c8842130d80e6071bd542dcc4052a97e70875d177040a85ab82812c88e5468aaddf14f2a1fe9f020ac21ac2fc00cdc293d1e911095b981748ec87f40e479aa9b30836d4c0d81d2ce00c1d15a96fb4b8f96ca1ddcd4be4ab7b61f6c648ec8cd848efb88359f0316943fb5b844bfe9f6258fab4381739c4e1c2f33f88c860967384f8acfbbfc125a98bae8d8a92ea25089e9aa49872e9eb9f750cfc5e3ad6f5cb797d8560164a163493409b9c7f36f1c673798ddd83272a2a2c7a74dc9c63b1dc77408bde869d8e8bc2c19275cd468a3ae542e86cafc241602af8c46ece63fad06f210e4d20879924340886d67b3c4a491d4dd54c47c769dbb7bbc91745baae16d823a36c2db88e9044254e1ca8e29444c658c52116e0e52af3198fe77973cb481206ac00d8da29b54b62dcebdd9ac4676c15a009810354f5346a81811380f86fc8fb8207196f0831f20683210416cac3d74bbfa69165ab694420843e902c1842748e7ae8aa08e8f6972ad8f9f0f97a2b6e7bd63b1a9552d260dcd4a5039c50d6c35e326900ab75874854aabd87ac4f370d32f0700ff512912cab1c5d4c4461aa48675908321b144ab361fb044a74879fb079c8ba7f415d9bfde4926e3e83fb0226040154ae6e31d6c290a503e445174a98d699fdf3a055c0bd94aa8b12fe2c10afa4c7b5984831ef24329922c32589235fc7f694a4de00a494846243a28d7eef0215a3112b9c30f4301d66911a9246bb6e7819982ca1e06d9e80fe3d6e012df31577b3b29ae523f7eb275df8dfa983871858b2288e11cbda9eba6e9bd5dc9d4a0222295bfd508259fbd53b813a9eb35cc467a14fb3f56fb048e1f8be0c74b7517529e666fb98a4677b1bc39a8e4ff63e2e1d280d26caeebb7c600829facc51a02e56a4b3936da43df5b72fbce9b50f6ff8303b482c8cf09b651824b0faa0dd87c78063bfc28fb747c9dabd29905cdbcc0af38a312522729fac46310564b26ba11caa5579427b38571aed8df3e8f820429f1d9d8ccad1cf01eb05e15c4fe69e6cc00c485aa5fc213b257e22288fea1ac1762db2d6083a381a084be3c0976747eb47d61c5af366fe4527281daddc35bf415d25441ed2c4e3018ad6e2c816edb0ab0cf5fe6642e1c935328120b869f51a94241f456485a11c9ec210da7cb0bcf02d112ae72e617b72383dd0281de4230232e6716a8cae9447cd43045f81cd3ae0bbbd7b74dda9594fa3919c942e84db0b0343e6eea1815611ab22d24a8a2279001bf6f856b09d86a661430a9c700864052d657404cc2f54547d452ca152132c7e0059bc6052b889ad29180036d3e201c441b9c1b9df0987e6527aac45b5ca025a069c8d9427872d1993d5b644420ea9000d0066fd4792c04f5ab743242c0de9b1ed56b3ba7bf8aa2420c1084a033d7b1a8bafa620754e79697ce4aa56dc4fb29bb74aa317102b0716f59a6cc9a6d4e44c4f52d16a28070bcfad4c5f88479663df1a8fb2242590a1b04473e90aea8afc6d35f86ccac5527ae22d463a001cbdf19354c921e7d3509e4b4590de6e64389a3777765e87a0b04b52e975b133d46008dfe1448ccc9a6c0de0334b276616067c27d4c393968f1cf660e40c910d4450bf9687d6ddb81bac64d52074a90477e67eb4ff802c5a60008c150500e35f9f3e4c7cb8c690212009901a74d3edd526112e015d9062bee8dcecc1207f335953123cee0720a5c0cbe759edafd42378e19d1da9a3ef927a8791fbadcd38a0af7a227487c34bb8a25c15ffb44b58104046cb4c9212278246801292c34fc97c8db3fd82722ae766632925f53240db60a677dc9f77266b1f1b8a420e558624e5ce95ddd50ff0b9742d42740046302d7df5e85fc228438c68b7eb3dfebe2c7470cbd42e2b56e4b1143ef291b2c8b9555e3a1f45a7dc24ba800b55825b1d67a039ed782447cf3215f65e74e05adbee922826eafc4d75a93b98b37fa7df5a9db55351b5bcacd7b6b8c7c6a86bb8a02aa1e7ce99890b7fd8504925c4a228e1d3e6b0a1c3b14a3c22cb61a78761ac99c6d19ec5ba9c26ba273d35e698714a4a97b0a7ed301c6a452920358d66b48018e5baf595304cc0cff2468a24979521e1abee4d99b503bbb224c0589694eba7c3f05bee5dc53491fa0087af8c6ab272ec36ec0761fa7de69f8cba4cb5661f42e79a174d8559817ddf0c68628e15d1d166ed6be49c7943950478cdedc5c07894ee443f629307f7a40a8a49a042e7db875b5141086f0bb35032889ae9555112372620dcf8761bb7b6e65e3a887a832d5cd661e596f6b5b5645bb6c82ef65664e00238ab1cf4552d770da89c406b4932ce407802ce7486b12f34c98ce9025316b91d1ae3c13077e87cd91d3432ece0c3b4ce4957ea2a3d63e5e93f6c6a92d28e42c4a52810294819224cac9e2b0c21001a3ceb1497436745d2745a75ad3f58915a0fb3c0c2a01dd197786579dfcab7a2288d6cbf2a979018a50231443e77372c3d2e8a4c4344d1d38d80548376becccc4a91fcdea24181a334ae85ad84927adcdf446d8925a9e34b908cbaa93465d7f11bbcca2dcec6d6a9bcd4533f22c99e8022f8ef93a18fe9a89519ecf8459fc6f0733853d67c5a4013196094eb8c26ff93ce4c42ade8dedbd1193cdd8d287385c37e20a47fb07630dd1cc0dea43a4829e734ab60b7aa9d3509560282eae75b67665de72c2ad305641f8904b74ec400e23b351578c1931f299d5e86e6c0cca276d4c191427398746b0f7bd58786442d4987904ed8e0daa05e72a07e4723ed2371562dee352448524b23cc20bc1b61909227b90afb3ac490ae70b7fb2f82b48df6171f9fc2a2b96496e9192b96928b35ea9ce00043f5a29b48cb2197cec099b5494f6c9e0176cb52fa738f0c768d2760f7e86a6693e9e2544dd43a960ce7e63ddc05abf828ad91a4bf3fcb06e9d73fc2ec31f9f4a638613efb13a56250cc0bb66a1dd024a73fb2637138a3870c131710f663f610768007612f61483cbdff7fe2234ec8b4112d34dc5f61f503c305ca6b42aa7cee3641f991eb85c107935732ced84c01dba38885f6fd2bbe1e0d26ea04b16829100c02301796a8559c2eef8fa68739e93b82971ed35d1beb9fbf2824a78083632e36e6acf1242428e5bfa96969fda73db8180f68f6228fd3c128030ed7467a5955e8c0ebf2670fff89100c3d4146a480c4f37a087a2f7afd4c7947073780a3169cefe00642ecd5831782ccd4a6d13518d2495e46212e5881efd1195ec889b4d0ffc49800a5e2792226f18ab1eb69e140ecbfc008b4f59f3e164301b3d92780a20ca0c58f48468beb119629e9cd4685eda8dd39d4401067efd0c73cd7438a9e98d6b228b282d22d5f59487bb6d60a3d433eee597a0f3c3a0953b838ce6197967c1ae44c35a657fe9d7588a1cef2682fc0f7469b68ffb34635399f9292a8688727cd6016c48a94caa6280e58a3971713875cae6afa9a1ec637fbede9308e9c25731f63a9fbc4287c9a9ff324fa877428de1f828d0d14fe53657241b63cde3699c6c8c6df586ad1004fe607fc318732b3eaa7ad0a8851c2a41dcd96e6f1d82daa27d307d7c59a6a9d19bbaa7fd720cd6b280eb409bad0d0610e7cf3270ef0fde16117e3df396980d69c5f8e047ed5be617b52e368a0c6338f1a3982a936b348d9c47750b968a36a9c1f06c8d0e0337615677b27ac6ad56bdc57e555d58a4c2160278a95fc004c62f168fb9cf70a3f4edb2f7f9fb17901904f7994c398ccb922ba90527ade8c43af41845a7b77e34abeb909d95a32c2d14a6d7743ad91ced91bc1ccae073ad79a45c29c4f1a8fd544da6b75ea185269d4c05eaa0251a6e0cedba1ea0b46fc112b43a32118c30c2b6dba70c6a1024cf6badaad7483243ace3a5e9ef362cd8d678635a6d8ba65532dd6e44ecf650895801fe6d6a2997f81946330b2d5a5be6ceed0d38e9cd8a8dda7949bd08fc30a3e3ea88591a0715235743bc1ce157bf2181107905bc20cc8455597d5b301642cc187d92addd199c35daa78abaa9d7fa7ab2ca1fac1c1fc7dac502d2b3f4599cd7527b560dc69c41b11222ef2b3162ea993b5a3cde67092aaff0e2191dab55224b6afd20d6d5143c874b742d48ecb8c122ae2a746acd6f8d2e12c082d80b96eca4aee401f820a38e2e7f5cc7bbc81714ab4711f5b7fd702b26c25917f3c9c9dc0fa9e78f008d1356b5545a315d716601d8fb18a9043dae117c7f2370dd323c72140ae0e318bddac9bd1bf74ed17124401bbe259f3507c851769e32875aeb577e24afc45289289676c8875e6829fc04ea1f6d4ae9ce79b91362c9117b4e9a3a12b0021b0ee61b6d2dc41913d4204e2a6cee3b0479124a0eff42196e5ced3859118308c03f23ada615066246480f1ffe4252b6de82b6b6ff27aa01c0d0d0690a4b5959768b5aad340e19aa8b466ce2b4d9c7ca9094ae10608efeb2245e88929586ce2708ad9adcb49b8936e1ddb3ae1ccedf5c1c2a2613eb319e600ee024fd130519f4981b2061b301843cd034caef5407c3912938d1342e0108fa4150f5872344b61ed74a81a1a0bdbc79bf6176e015ca5b2daedadd68ae28ef31843bbdf13983398d404d9d6deeced15492f92d84ae389344d266ddf2baecc684aa8ad2ac6b4885d82e264209ad904c570c8745c9f6fcc91baaf499da9a99b0dc6da8da682de10f71fe82c957539cbe16800a04bd8786617b2d3344903399f59284a8a08b398a500710dc8523644dfe70820a4927fe2f52173fd7c32661e7bfec5c92202e90ce6494e6759c979c99cf2c266270c9557c1f0aba6674c74035281698007555372d9eade152cae282816b678729f2d6dcaf9a3f8292bf6c98bd734259aa660bce4db2b606ad3e31b1b8937499cd04915e5331fd0106e7cdb2615ce5c0384752fe52fe0e26ebf6d3e6f189293bba1827404462b8c4d212e8ab337409e797548e06c70d184578f03b98977bdefe8b29e9787fd44d811cd708ff10aa3567b235e745b0fa2a5ed8bc8ec8a9867e9efee4a1f8e7eafcffd05d8f1eddc6a4cb7cc9284d934404a0d3857faaaf01ee9eb44e5b41e79d807a9f65d2181bb8f024f0023590be08bf35585d0957d8bf007047a16729b5133fc405d21dcbe6930e19e5fdf6e1dc6839dd3893a298500e4ad18a83d6f43e74cea68ff1ead6998faf6a0722233ea02f2177d93b515f3bb127cdf389873130638c0ac073766e969a632a5ceddb710c18ed89066d8511609ba7bbb86324e429e28976b1a1f4f6026a69a3f1ac4f30db2929f54dda36752eb715dc643b5e32a278ffb1cd7642ba77c6ae217c4a2be8c6213263cf5068106fee7943824ba8fe311e89a8a3e273259b1cbf35502c07863b6f74b245cee7a84bf15b6e7bf65efa8b4f1f4d565578854cfd202319440e832152f717cf4c9fa99990aa369a2fc0c09005fbbfc6840e98744e1d4dfcbab6c36a413c11237213577c49bca466780b5c487d09c5eacb400d38cd2d93065b762fe89c9d9c538acae5adf048663dbea78cf7f810d0dc386314fe79c415b58d8c21f05b4553bfc49f911c27a9e9ade20608580b4f2ba69520531d4016d204cfe59a99c34d82d9393ebc61ef0e18ad56e3743a5f862b2970982a5f90875dba298d48ee959c2571d5dc0621fd00b5df403e6cb528219be7b8909e183941a24789547f82daeb48e33334c049ca23a9ceb2e249cd3dd1cc8e13e90d460218500db501727664014759c694ad7d98ffe2a7c92bf7aa9c0ce189bd2e42a4cf7190683f14ba46985ddccb042d67d045924a213670433d9e9840090e70be033b8ad3e566d3b9afa91335ee154254849c3677d93079089f5670b1c407e39d02e53a058191693bf1f27e77b940837474eaa785417d9285442ba01e728938d3a23b0943f84e4b2029c0275c320639632e410db24465c5dc5586e74ddc0684ad2326941257d01151472dbb6e0ce854e4f1b0c7728310a3565b87737e85a4b4e99cac96e0cafd0222581310ed3740a721a427456f49a921f7138fb4be07d75f2adc813a6a93181a3e5d5cabb29697158cad6d6a32645797d4fc9cd8dc2856ec53d27aea5c1210749b12fd5d7076cd7edb44b8cba459e1e17d6a29451544037cf62a990cb35bd6e70ebea1fb5c454751f66a82ceca78771a860ce281c22e5f1917f2910f1e00b02d1f110af41d14363031c38eb5f129381bd61e7cc52046ae2b0c96004cd6bdab8575d6bff447ee2e61262cba8a686348e54e16d62105786234167a25e9123c815320bf8aac363343db4620e1d399068349eb31b149af1439ac1a9cc3f0e6e8db102247372df351667e86fe735118c3cb20ff39dbc4fffc09505792be7d67459b37b9a064698b300f6595c8e8aaf9d8e7debf5956166923d2aaec8d1ab20ac207ce47b4924269278c7d174db8fa9a0217435782af78778994e8b411780da6ebd0c6836d699ae2d374801b3a40b0c515b71c3fbc6ad76f473be166761ce252478e46c566fde3ed15bb51bbec0db628f508b81bc54cf97878e3d661d29f4f7126b164ef1dc14ba546f2112f76e140f34c73cd0a6ee9ca3d1cd5712a7a7a4cfb4ee553611ff42b4b2b185523dff11b7a77773d83d5d89d0d461a518d6552312d406807d9d72821d7b6263d130c7058bbdeedcf8f7520416a13f03011417086b56368d6f7083758079c4bdc01ba82af6ac7e627501c3fbcbdc66d432986f5b4715cadddb50831672d87c7612d9486e9135dc8ed3ea8ad89b3ea7cf42769bbb5234bcedddc4241647827bd5041aa100ae7a0bbb0594cc058d7ea03cdce625832e3e06f5a41e65e5f585b7cc4e542cd9617ac0abf33e49af4a27407f0fca20964fe4a442285a8d5d72fef9638b6eca9d1cc6322c2300d38599010dcd1192648b759ff6fe77045056111c26c22de9ab88500716241d83ed0729c671230d461c7f2f0246ecded0bc7078daf91c9f5818f5dceabc30abb2a245c50071e058d7e521eaf0224a6b98054a0030cee412105291c1749e1a83a21cd690e07fdaa5a882aeb629a5d0eb7d7a7e9d03507b56c86d30972001003cf289f598441f8b05c3b1c6795ce0b02d7b260343265c18f9efcabf1abd8a8a3dd39c5760809e02eca3f2fec96434e3646261c4b87d9923f93198cf6e448943b86ce27c909a34d931d663cae3149064278da609d7f53da77eeb438d99616c7058fcc0e75c427aa8a47dc67374e32c06e623509f7bb859a82b3932784094b6401ee15e5b947de631e48413a3f7b31ff6ee29a50f7a60702e9e356eeb4e6e8314e344dcaf5b1cf887dba9f1b92831975e27a551df6daa69602269a33173502c12751e206e0710615820f90ab56699a38bcebd85938e0005d52f03c74de0622554e0d9e5464759c022270a061d541add244db3f08c75a9c8d32246fada43972aac80eb9b54a773c7aed40dfd15415ce98474f5dc3238e2f942ef66e0a614692773799ec154fe2be142fe3503a73fde4c284ad9ec2d58ccf2139f7648a2cced95e4aea15a62480681221523f32683937c116a2c8c4bbceaae8c48213a59bbe0b8109e935c2c5df7d5e5b7190193704c5e3452279657db772adde8e8e943409aa8ffb9d0468cc72005115890145f969a459f4392d3c657a0e5006e3fb4f5fef24e64b1ab785f21160b870c0e3df3ea4a25e97c6dd8958f09c79c8b6f26f13aa713ce3cc1b20c67e1371df8d90980fc427c094515f8366fe24b98fa669230c7e6218f42f875acaba0b8a3807475313fdf39b0c079fa5d4a1e0dc7f3692b703f468fdfedb9345f69d3a5fefb6e00f7711621b5a6186d24ff9240a286adc4a07e0026073bdf70e8fa051c988ddbe008685cad3c013d0ef00eac10389efbfa069a79970d563410840d20f013b1db10bc04e73f7b2e0024ca1451f1f4d6ddf524e99a73a6cb3aa81714da646b3d5d71c6e2509dd3be3037e13bc86f3c0b86e6c6a187d51753b478776598929b7bc6f503f482e97d20b94717deb30d6242f1acd669f400d814f8d46efc0e2217138e7651d96397e48941573bafdcd46bd49ebf3f22d37402e649df9046eec9e66d182cd58885faa155ab1fd10f813ee39ce76575482ccb2d84e75420d5e5b629935332e0d13fcaa0a3be4fac4636472549e709f88ca382af5e5c029f8537374501d17b1bc0fe3c3d698ccb4ba333fad7f012919528f594a8dbdd49239670dca94f938fa25298c78aa35a10cd67edc3ffece81a7c66b1d2c29cc7700e6d76c6b263fec352a9abf8d2ce960e675bbb36f21021f12ebb23c42c015be37c1a1b90d40757e304a01878464908ae7a3b20c9cfa1769ecf010611f525708a79a42de600296a85c46ba568a4e4affd09c30b5f9b8cbe0a8e17be98a92522943d38f54bdacc18563ecd71d77453fe7c08a273cde33a6c74432135538b9cf6c1913fcb1c67253508780e73421aeb5bd3a2acb55428a40016cbc20217032d8a87bde13192e09f9e113d5f3a3bb2f28706641e9c8434ed44c6d054dd52234b68d86c46df9c25deb313e4271607c40b35dfc82e2847e2fef50221a7fc51cc902d381f0976dbda114e5f9038115b3748daf6a69244653cf58c2920e97f748bb029a569ccca468c44f07ba674273b0d23588394a8b4bd7df059188b558f4effaf9490156d619a2b638054dc04f110d33aa945e820e505651336ce6da7579855b41c965da71af3ccaa85ec010618ca0851f0e9faeb5ed850590bc7357d60522c06d1b63bb45e605bd7acd2278ea4642d4b04703854342538f61a95902a6f7b39635b53504dec1f75efcb343b42f5edda7dfd254f70da0e64837509e5091d4a9bb00ca57a11b7d9fe0685feaaec9afd8fb39abc946a892c34cb2bba6619842173ce422e7d473164c57472929d20010d5fb39fad31424a27b009dedd5e7c106190aa9a4101396f03f6117d7828a61eb2073d176271cca5f1330602bf62dda29fe83c99ab9783a807fed170dc0b302ef2faa9c97b34c414d82fd8c9b70e86b9dfb4bfe5f10c0f38016a62840e34887e1acedb886f7706ab902fde752928df19819853cc9c2b66d7afd82131c35815a91ec09ac14682b101bb3da639d633cc905861d894304e6227c26cc36a83d904eb800d1e63387665989358916588b2c560c6f43fe3a60d166320766a1821a745faa4d605e67e5147e24eaebdd32923cb092b35a0b5950237d481706951c4a0ef88f6e8cb7566a06c5bb479b8dd311d87cd1e21f279382e5238f6fcc8be0e0ca4f068e794dbf8f6b13188ec9d131300aff00e814f7ae7b9b6ef3764606a898e58b37aee2c12b698833dbe1103e78abc29cbdada14200c559a6f5e9ebeb84774ad5d84a50f4b5ad39bc2ca1d561c3d2a7d9dec72cbbb5f15c1ff4cf6f00c3c92851b1173ce91552c170280e2bc2e241607d23801ae87151a3de5fae9ca94d5c60faaad2f67b2e5c7c0c544094b0004198d86a8405b44cc6404c800e56544573425201ce7e0c24c3a045d1a63f9dee880349bcd9353dc85df95ef71a8b54664263651a305a5a8670cb080e93b51c669c37ee5c4dd74f7ed95d728e3df615e6055d1fa631ef92e19e30dcaafe89422c7123386e99edb173708aba2dc1fc1491f3b9175bbeaf7c4a6a972951c3bb38002ddede0afe1eb35ec812518cc4aaf1b13ee8377607ce2ecadd14d2991a93a1634c47c44cf87f6122e860589c6529ee65397725405d010852acf52209bfb3b9fb0d16bcf51d95414cfb4bdbdbbb228af72e61ab4b0c96496a8446221afb809365035e19a577beb267bc60f6635678356e25cab4aec4cc03175925b691ecfc7b8bd198a31a5cdd9d699f591905b601f149935c538cf4659479eac8924d9f056a1025b90364202cda6977de216a77614f05f94755044d3107bb99cd89d5206f5c6a6237a73203832bd22e52dd33198807c69eacd39ab72cf96f7aa0493ecb9843d9b1038c0d0aba8441bee85992d06e1d261ce59e0fe47c98b0f127ee9dfb14a09560ce5be6ccb6700870ff2ef8886268d34982117aa4902764fa5af4686481e09896917bc8fdcd468bd13cf622bceb972096f2d51612d59db86033a957d5808e540b7217bb3dc448a5497427955eced417da5f7e435e4f71edd46707d3fd17466c8613e4952fd34eddd84c67ffe94351a2978a4b99e03bb97326f4a409a93968f3a49c49a9042d62db60a7b7cd86d42b2f08fea9c7073a0c4ffefcacd7a05cf3e0e7d6841ab9b7c32559b8262d39f3cb6de38a328d202b2468e6358a4594dc83d36ac3a2e819bb182af0db45c9f4f98cb6ddc34d1c10d723386c1193d2da6c5416963626ce324972f45d018d92697417b360b4664f5bf023e7004b10b3730eeb4d0013cc3333cc3333c1a7cc15910355a23dbacf94b824c69cbf27c62114ed22f28294999644aa2811f00f63d0221fea989087a0f7d0beb0b840b9ae036ad4c27b392ad6bed4cf0b2ddcf837671a5b39c9364430561d8480118609861a6b2430726e00b1f98e0a474b15567599ac86df9b8041fa2bda4963596e0c5b47b42db675914b72bc1d9b8aefc961bda750ba204ab4cbeb8999ab9ac3a0b728c61038c8f49b02f9d6a3057b5a5f43b50ccfe865a3a7c4882cd2865ce185d9bfae84f52ca8e1c2650f98804a7f32ba5494dcba132cb0724d857af3bbfe46a0f4abc3b7c3c8293f742ebd6a89a546a47f02b3db7d0f2efa589d7083ee711b57fe9c5284c6304ef39a7d4927e0d523ba3554cfe9789123e1671cba9f429f93945b03aa37ef1e57698e2f091085e945fbe193a88e0d6a3bf27fd82978bccc721d82cca9cb39ef057172243f027d4e5297d6f388a498e9464821c639c1832301100203e0ac1cb59aba82ad1f8a17442b05ad6d76db2468b12fec72038cdc9759645eb38f021084ecb71a36b39cbf84184816045a631d5e39de12f0b083ebbd34d6749caaf171da0b80e5044505272b20345a54b4a566e7cfc818deea6aa9def596bd449322363a58c9494120840111f7ee065fdfac25fa9d2f2acd4075e3d4be7f2ca8c19d2d6c1680b1f7c60b50acfddac4d4b953a43f48f3d706eeffe62f4ed6f5d4f927d9ab9f5a1075eac8f326a7174304dea3cf062b9205ac8133277a8375427e2030f9ca6cba4296378ba51f7f071074ee5bddeacb54c1b13d981ede89e1f8367fa8b4227c930c718c910f151075eceb577665aeead311c7cd0818debe29bda94318e6a7dcc81d1f2662c2d6b5c29422907c6543d47f52aa3c7288f039bfae9a956f3695da99364267e2365b9410e943252529409c2547cc081f70d42b5924aafe61c1c010b6ce8e1e30dbc1a6daa3b081d3dd9981f6ee005cd59dfab762dae37f86803abab3377f8cb546719292927371ce52e0d1f6c60cd4db4544f26b50f1a1f6b6085dd8a521d744e99bf9364a906c6646b73ffd6e2e8320d9c0c3a66d5f5e248efac9364e8030d8cc6d213ae329feae018609cec4081c1ca8d1b20b001860d1b60d800c3c631f671065e7639b8fee052af2ef32419173eccc0eba4b41c6588ced27d94815152f9b9485dbb39a597850f32f0bdc95b7aa9ccc57d19032f426a90671acc4fe629860c4c5cf021063ee6578ff52f66312d7a92aca464e59ce0230c8c8f287f4f52b9686d3ec0c06d67dda05fbdef5df3054ee820ba6c8554a2f6f9f002a33a77f505f7b6914935f8e802ab32731e59639b232217581df77d852e13eede6f817dad5798fefcf3575b0b6c2aa9ffa5cfcdf225a118288d5651e97c959405c747167859576d949ffda2fa8e055eabd2ae25b5597c194b57e093dd8bf5715db42d2d2bf0a3c245edcac58e2dd72a303278cc59fd07a9b5eb830afc86da2c4b7daab3384a480c1998cce0630a7cce626acf9a2fc88dad31c6982de2630df6b40cfa5679ea430a8c8d2c7d4164a67a29458117b46af9429f0651a6f401054674b81275ebd25d684fe0a4ab96528896a7edb23e9cc0aeebcf2964d7caac5627c9ee6c90418256d9f1d10476b3e5a4aa852ced9fe524d9199fc33e98c0ea696e9dd1346b77f36309bcd42cb56ba9e58da7f9a1045606194d061db54c3e92c0491b0f1763a70d3a5f1b6490a0a464a58c949493277c20812d6dabc9cdd5ba8cf711780d369e748e52c816e6871138d3527a9aab4bbae45f045efa90aed406ad5e54bd0a1f44e065289df4ade97d509d958f21b04167f9a6b4dc84c0bf8b6efed3621f41e03cf7fc7316f63d3aeb0308fc08ffacea55b8a6674a4ac4f0a10623c293667f4ff78213e55afabe73bed1dbb5c18317acd0f1e5bda855ba56d72e182d4ba559b554aed4a7c030b13278e882d78f2ab3d3576b569d5cf02da66bf174a4f0b60d176c6ada4c17f37af8676ec19f7aa9eb5f4c15172537810d3054f0e0610b5e4a57225c55ef3dd7b5603c879dfccdd7cc59a5057bb6b234e697446b179d052fb6b6a9091dcb05f14e16ac52aa34d8c997bb58b04a54c6dacc315f6be91d2cd8d4d9c5f8f26dcb77fe79c1e3158c944afeead49cc4a4e6ce15bc745f2175fc846affef5ac1bfa06cdc34a3b8cbe277ace0a5b0974fcacfad82ad9722b52c07a141c6a88235cd4179a82c2d5d2e53c1482d4b7b0e9a65765422a282d1e65a5e97a56941bf86780ade74c894e31fb59c3e341ea6606434a543c445f4058f527052cb3c75599674da8c23928235d7ab94f49843a9f3208ee27cf59216d456bfa2e0955e150fa2692858d37af73444d5a77241a060b47d6ccfc275b4cb297a7c827f97a383527a237a82133ff70ef275d34eef0427221accb348115d174e307aebe2f7418bdf426713fcc6740f2d6b46136c27ef249a21a3668fcec904efe2282dfc75e7d899c204e37ff2ce4c78cadee025d82c279db5f4ca5fec96846809debc63f6e9777df44c2578ad35e86a51778beb983c28c1bb2cbb98efc5b357f55ac36312ac94374a0bad5cf6b83234828724585fcda576f3c612614682d39973678bfe3b72b4182578408297efaa3eb775d62b3b28783c8253a55e5ea95eaf8c4194040f47b01f3c9a6bb59d3af8c9a311fc07132d473775ddcecee0c108be36aa6ca5a965d07270117cd0721475ba5e8fd0ef3cc143118cd2622e47f3cf72e89744b0a9a5cd9d6446993e4328292f402686c303116c0bd5e95afc0f0fc1caf6d3a6763d43f05a3a9d594309cfd6973b781482f10f9ab46c1b73bd6921049f2ee8e43a87102a473808368b71e346ed04c147a9be2e4fbacba27ab135780482f1349e955e51faa268e7e0010856941e9d055b595af5a6c22525adf2281e7fe0ebc595c2755a136efb81917bdb4a43ef6939675df0e803afe6e297ea9099d328f9c0f86f7ed69e5f556b760ffc79eec910aa5c9f6cd103af377d856d5a7b596bf2c07976a9a5be363c306a5d54959f05951fbc8341fdbdbd989b1d781bfd7daf4ae7a85099e05107ce056fd1558d6755fa5b82071dd88f9a2b33ca8cb1c56d0e7c76b832d71b3b8e149203dbe993bb283d8c03e7f28bdda965ad6b74d4113ce0c0ab3e7d9f65feb42ba4c7e30dbcd0f55a9e7a0d757043f070031b45896a4177ba868adac0e9129a7348d5d9c0bda471859f69f184f0ac8175d72b639650d1a76b35b05ad68c79b59cde5e0e7aa481cd3d29947e5739ae231a38754ad428fda029789c813fa9ae2f0bd9e28f7031039f1d44ba9c84bbe99c2f032b6fb45c705d9181915a1e5ab51cd3f49f63e06bcb7547674162e0d536cffd56b701868d1540788481137a74b297f91b559ec0c027cdb270ddd99566907f81d1c2be64909a469a8a54f0f002df510b9edee2698e51ef02db4abbf851ee4935aae2022f7ebb79f5b627cddb16f8ed16c7838c7dea9d24070f2db05ad6628eb6bad4be8b9a207864819784d249a5e624f23f080b8c962fc8ac2e352be19e2b70aaa7b3d279d5b3cbb402db1be548535fabc06956e9ff674afd7347054e67b1fbc5ac25ff251921784c8151e6499310ae4147cfc282c71aac165d559ac876598a3601c1430a7cd2fed95c7a0c5d5f14d817940c336f515d561e283022c27db5a8bb1c470686c911c2e309fcbbded3ecd9a9256f27f072d82b97baaed7c426b0ad7632b496b5a09a2526f051d9e9fb30a9e95c24068f25702b3fd99fd04f5b6a25b0f17c47c79665fc3dedd1c12309ac50a3b15473c77f59460d0f24702f086d695a4b9da9e5c1e071045e16d35d1c9de56971311b648461d0e0610436c735796fda59f87687563c8ac0e95c4a4bd5ba5bf6fbabe041044e348b2f6e6ebdba052d59f018021f55dca3523a768c997a0881cfcdb25321db94cc790481d5ffd15bc6184d355c7ee0010456a56b8f8e969e5de83cd4e085d4b9b77a1a840e2f0809e805ab5dd2195d4c1d8d62f3821111bfed9242280a09d805aff3764bbbaaf5e9a54d75c16739cbe052689683c717096c8061630460d81081e682737da73e499daac36f5cf02dcb18f79478cadc2e778704dc824f225b5099b1b705abbc656ab9fca705b525a016acf6bc9dd36b7d3135b401c61d2201b460b3fc9d931ca53ec7471db3e0364b0bca847469a23c59f0d2457dde5f7e2c58d9d9d3a6ba2435e8cf1286d0a4c50d519f4670f662cb185cb6ace4a63705218ce04dff2bd1ada432972e5c04bfe99fb42c8f4b19b4a88483104570fe2fc66c4a7ab69f9a501092083ecb12ef14720f41049feee55f8db1360bc2c50c8d430ec187d8ba8e56bac3e4b7e36fa036c820818d475121034788213811425d9f0b5942cbb9722b042fbecb6e15f33dd11f633b4208c1893e2984c756a55cd61142c820d893eff52a3f75f7ae6c081104675aa7e597fc3b46fd4e92a1ad9040705a52da4f576779aee56a47080104274bb71c757fda8716ff03af3bb6b9cc7c1ebb34674108f10377abed3579fc339989e7e8e5554c6ed15c481f1811524493d098b32c274d42f8c068e9a7cee49dba293c493d08d903fff9252f1d74c3bc4df6217a604dcbbbe3482dbf62ee5176a02421240f9cd0d24d37fb8a6731f38e073e9a7c61bba25968fa310c2177e0368792ab7e53069942315126a792b2a3056fa26325043bd0e092921d68bc1542ecc0b6a0e4770b1763bd56aa032f47a5ee2b42798c1242e8c0bdd2fcd0427bb4e4ef1c1891c9c5131d5246fd9224089103efd175e997e9751c5fc58155526eaf961e5cdafca21b84c081d32a342619577396d5f8065eb335cbf1059de3b86f087103bf26eeae253b95103da40dacf697397496b4eef64f8e33c6b811c2064e93ca1852e934640daccc392afd5a94eeb7cc122342d4c0099d5a3aa1ab39c2f427c95410868d3684a4813f2dec4ec54474baa404cd10820636691773d2abdb74502e2167e0734eedfcd2c95129fa1033b09ba54bae1dd26d5f1b5206c6a3d04aae6b0e5a8a4b0819380fcdded267fc6dc19463e06599ec4c6a6b634421440c6c7814712dc91b6d6f1858d932546f8e2564262a292667b44ada0942c0c07ee96e793af5d35b3229215fe04508a177637dd607215ee084693bd79dcf358b2d3d6382902eb0a9c5965f84942a4f996e788e2ec1182c2809e1026f5a7c59ba8c2efda87892ec7780b2621bb205e36acc92e897836008d1022f9bee119a258fab859f05f6b34ffc3f699921a4586077a5dc973eb82c6de715186f2d9fd49feab5163756e05b2aff903a8bf7d26609a902fbf173e9ff298ddefa102ab0e9648c2ba3d24f81535f2f376dd3d19ab306ffa55d8e7491141817f44ad5975b4d741605464743a8b5db57a32e2150e0a496cbe94c4cd4e51df2043e77b5a465943ae6eb98102730a63999d27cd15d6526a4097c4ee3319752f3cffb843081f5f4fc1d3a0769a35a4b60ecf34677faceefd10a51021f64dccd13dbd1db584812f80f91f9597452da5d4c08121861a32f3b9e8b9d7492072147604c488d5a5c2793172146e05c6a796cbd434beb31252525480f01901052045e837097a347b9db0a4f564a4a56fe06296b841081d749adcc4a68ab37e1870c8171df72d7bf39949b9eb712220476b54b2373d66aed525e0e4282c0af877695d935d528971020b0ee2d35fcb4f849b29323440dce3ba308bdd95fa88ee37798a0a464042cb051520206905ef0392ee63493ab438ae377a0989cd12a682d00e105a7596906f5ac2775f6bf7276c18b6c59cc5950591836c808e38c66013a2d01882ef872d7f1655976b946f52b7de30567ff86522839100e4072c126d150ee5a4cff18a327c94c3e478a1d0892a91832303901082ef828b524e37db6db1b794a0ebb05af1aa5bbee7c79752791310214d800c34609406cc1a8dd14575799dcf6ad059b844e42293b4c6000420bd6dc5bfe6f90ed2e894e92ada9a033360bb66588d4da62723987ea24598ebea1a30420b2e05d7649cdb3649ed5b920b160cbf48eab2d97a9e59d051058b019c24e4fe816c82bd8f2a4f3cbeddb966a82b8827df37c2e6f9449089d0904482b1829b4988489085fad5b8a00c20aeedc5f16d392091995d22a38cdb2bfc67454f3e9270944152220a97800082a6c809c020320a63020a5b871a3c120c5282e00220a5e4b51a1f44a17fff40f45054040c14b755b2384ccb2e5b13fc1eb95224c4afdf184490e4c2600d2890880704202209be0d5c52434b6a0fdb5189ae458263856fa0c93dfd12a3b561035b192c6a380022099a0000826d87dcd5aa49b99a697f91c280a47ca72862e618201104b54820fd342fa66b85c953a20946035987c695db56779e593e0c75c9641a792a6f17d494c0024120f008104a3aaa1640a9df4be500204c8234c2000e208078034829732eb4cad5c50a1c2250d29803082b373293fe650832c821f5b293fc8f4ed822a4f928128827d9983b8ac3537089044f02b7ffd5e5afdb7a93f496610221a022087e03c47a499d413a159e6d80b4ca08262724c07a88262a263e58018c2e40b9042b0c105b7cfd8b5265bf224d98d1b6d924ec73b1a20846000c820d855f6ba3b67700f2082605de8acedcdc9b47d4d079040f07216b7a595e75a72b9650710402800e40f20207e30a900481f1600c207141d2068153340c000903d305a9870f1544bc485aa0756a8973b6b175ff0953a397a59c903e3bd5a67df77579a2a1ef8deddfc32b38be37abb03a783b6a04a8b769b74d00eacaa972f7f740bb2745307d65f4e6adbafe5286a9e244b3140e8c0a6d4ec83cc81f7f596a3d9c99367cb81d339836dca975433e84d19207160b4e49e1edd0307de4fcbeae975c61e11be8151da827aff13ea37b56ee03b6ad5fd93b7a6a50669031b958caae4af78144a0ac206feb3482195eaada4c46465e555501a9a2b2b08b2064ef9689df3b96dd49ce99d0840d4c06ddaee96b43769e0b4bbada87f4b264fbda0dc5066a800040dec8b3afd48a9f5af960f809c815526fb4db75c372d3c666083d2d6a33ef6e748175f005206564f66ade5a0490751aa3b1780908111f98246f72cede4ed50691d07ad31b049282935a5eb2062e083ec6fa1b3ba3cca460f12065e76f1d4cbab9b2ec3e50639526e808081ad532eea8c3ab34cd14f92a1f12705205f60954c3d295b7cb14be7e04059debdc06a8daec1948b2fd3b8aca0e8203700d2057644e56b7acdebea430c03840b6c4be9f7239392e6eae52459198dc3d81658fddbd75a96544b6759c6f81c639001a205beb3e0c2b75dc65753b3c06fd6a2718374b1c028b5a994dad8720b99bf0227b57ecedc2c35a84f4f92fd590ebe05ab2056e0e39f1472835e55ad671578a953fdeee7a7ddaca1022b5dd699459b7fef8b9a022f7d543ddd1da164b83409206bf02eaf9d8c6d7b9a562d054eb8ea95e9e29e9673688649ee3003878d11b0c0064814585d2fdf7e4cd575211a804081114277697fa55c0e1f419ec089cba875694bbd2f99d0728038817db3df16f47bc9d4e22abfa2d22a387bbf10803481ddffb831af4cd2c8d1680c1026307aaa93b8e654ead474e6204be0ee2519844bf6dad2a527204ae04b9eaa119ec54092c06d8ac8ac5b274f9299a081b2ce3a0082046e54bd93962507bf72045668b8b8f175e97e8f1d046204f65468693a991a2d45e724798e4f0c52043eabd4514729358472bd1944605ff36b214c6b59d0ca73831c982043e044b6dcee59cb0a81d77266218450aa554c27087c66dd2e772a2d20f0a1a5fb3121b3ef6635881abc4ca745e5e90f3a85965eb02f5a26759e232ff82cdebbd0ea64bb60bd566b4396decffea20b5ef76a2d6452a5ddbdca05e32f2617cd3437b966df82929277fbc0055f1b2e46735f7f97ba91b298e80a3e6ec1ea9751a8539975d2ab99a4bd5f8a210393f4610b6ebc764d3486e693ca5f51691d6b830c12f4b3a0a4a416ac76dd310b7a574bc7d14932347a478e34565026faa085b2ecbfb5904ae724198a4919ff3a120b4460f77e2af898059b0571a15e4aad85cba5b1ec053796f78f237cc8824d2363d2d532dbe69c89052f44dfb32c5acb7cc042d34af88d5a6e6c2dfbb4ec5a07a18f57a4b492e5c31528ada43f5ac1c764a3a544bf74ea69c11d567066bae5983677a534b60afeb5987569bdbbd668aa82d12d73f6e8ee53a2b754f052ed6dbf286f4bc74605a7f3b7e93cd527b2c5167c9c82d1747f793d9b67edb19212cd15650a3eb3d4b9b418b3a0f5a9313e4ac1a76a8fab223794eb9a2b2b26293bf234575ab028f82005fb9af3b7b3ccee90e68afa1805a3a3d61c3db3adb9b2a21af810059f34cb55a1ee756edb829212955f29297957f98f50f0594aa1b47442cb5a108fbf8e5e56de64a9a9fc0a1a50f0b7e6fa4979dbd7979fe074a3dca4a97a4f70b6b9a6f9772ed7da094e9e797be72c7bd29288136c5add51e596be09467b0679f77dbc6e59293d4f777151080edcc7ee902eab96b494396fe05f6e4947a5ed94d6ae7103ff2d3c93cb5aebfe0edbc097788e9f474847d8c0caacaa43d4e84f32ca8cac8171a5dea30eada994fc8ca8814da1ab6fdb4aefeadc481a38b5a3a6b35c772c5d8ea0813317caa38b59ad4ee58f9c81177b73410ba9471c3103ab52bdac5ed0d64819185d2943a86d5973dae4f260840c9ceaf2b5d5a055be6db23a063e9e5497e5f84aa11b1303ab5edb8a1ca1944e42280c6cbfda4eaefa2b2eaad28181376d975d76965b9bcebec027a566c2858e5199fe47bcc0bd243747d92a44a5cc47bac0698d2a838a6614cd4a2e70a6ea848929d362d051b7c04ad15195ccb252b61f8446b4c067cb99eb64ceb959ca029fcd4597b5de78be5773308205bed5b9ced3265ba9d247aec0694e9be4deab46acc09799da1cd3659d370847aac098d4ba596cf96529b713c20815d82cb949780b3228fff60c235360f5dd6bfc2c8bd97b700d4eb5329944bf7d7f909e388c48817597773fa3b62866a384361205fe858c77324d6d26991128f0e79af35b78697bd08c3c819746cabb7bd9ddc25cca187102bf2fd5dd88f2e077bb19234de05e5ed7eba693e917cd0813b8d57a5f6a3c741693ba32b204be6559e7a08536d759fa72c068185102e7a6dab2a85cfe17549bcae88741f29124309ecb33b7679d4c99c63be5064ac10812f8729d3bbdcba59ae3a6c30c933252526ea8adc006186b23476093270f5acbe7ff19422346605433dbaa9623376bfd4811d8ce2eba983355b4410609d27814e81821022f5a34a993a83a043e6b1b73f5927ad762a9831121f0f1e3d8b8e0ea5acb2f41e0bf655a5332c776ccc7f1e98c1120b0ee5188a88a964495d60c236af01f75eecfcfdc9fb516915eb0fad495a98c72d44e080d115eb05a996795ad6ed50795d176c1bd963b95bee4ad88e882d3606ebb2e3b4b9fe59c0000412417ec676d41a933d79a85d44932e5262b6d6c0504211081ffd23a5a90c6a3c00722b860a4678c5b5ad6ee4ad722b760a3de1cfd75707d1de6493251498984882df8da6dc1b73eb83aa1b42609915a30263f74b9ec2e84c7d288d0825b2fd7b552b72c3dc64e92cd82d7ee597273bb0ea1b37ce53d25c759424416acd0598ea26b5f291b993146091e45850c4088c482f1e8b2958b3afd74765a1081052fc3e5cf9d2685105ebe82174adee95c2332aa96ba829372b51c63adecdd16b682512665fdbfc6ecea7e56b099ff9d35fc55bcb555b0bb2973525a965c4f7eaa60f466e936678a0e0d2ea9e04e7ad041a84a4ad2f820820afe3ebaa8750b5f4ffa5370a675c6d014d114bc34a569d5be5bd2fc2a05a356b8bde44a470a56fdcb63a23a9fb770146cee68ca3ceecb56261205afb5a6636a35fb1ccd50b02ed3293bf9c14ec81528b8f756ca0513e159ff27f2093eae6b144fa7338ae878827ba9d56e92418b4a7527f818659674efaab99d8813ac72e91e6f65b809b646bbe89a522b71595644139c96ee1d95d4b255869b648451525252b20202914cb019b4e39a965c30c1ed885ca56551b8fdc8d68e17229760958b6efa64eee8dba513818825389783dc7349cb5909991983482538f55a96b5d272bbd64619084428c148ff0ee5ae99776c04e35154c83078024082c824f898e528fda58f6a65266507da7b8a18474524c14b23f7e556f7a9228322c1291531edd6abe5ee28020956e64da349a6896c45cd2358d91a6346db7cf7a24e8e33525820e208466e4c2fe779f76d944943a411ac470d95a9a56c9941cba1408411dcc9e8e931baa435e58bd98a2c8277d329d47bd9a80ffd249989e7e81b7da8868822d8ceccf2c89825995e4433249208366feb4ba1e7df651a292a3b56de1322582d8469599fc8ce41a827c9cca02072085e68fe671da3de2ca3d639113104fbab74a6d7a75eb215d1405985e06f7532ed9e5284606fb32c28293be67d29640e182360810d48880c82552665bf14b105c14bf245a163521409041f5ffb67bd19771140b05a2c2ffdb965565ad4aaa4989c1288fc8197838e5ade9223836eaf66fc8e34427043c40fac8d16858c99b3c47d24d20756456aa9ddbda1398bc010e1036faea7eab5e8e9525b640f6c7ef9353766d9dfeee780881e785f1dd3bfeade60b27b9563649cd12cb03ba355c210c9039bdc6b5fd4f82d5a68272b5d028403113cf019736ba5a5b44dadd228ae41e40eac0829437f4c4ae8b4c21b2926c90ebc2c7db7ef55646af6769881e3062275e0464bb6db2ed49dc8f324d9e210a1032fb7efa930ad2aec95a3554c6c0e8c10cad54dca17d3537923109103e3a173fad00ea165d7e5382325310e7c77478d71f74fcbd38271b2d225d0d3d1384e2002074e3fa4f294da5779cb02069137b0ee1fa3268f1a34c44531b13144dcc0be6e5954e749ab887a120c9136f09da55f6be9f3780a9b0d6c94b72fbbdec870cdaf81f30cd36542a4349d5303aff531bbef979605ffa48197dffe45cba774489784065e7834cfeda3be94e8cfc0af867892723d3fabdb64cdc0794af5ddc97d936b4d186b9e2052065e16fdb9651fed7b51c9980819b82dd5265f54ca45d182e9296298639131705a481995f0cefa950c5225220656efe3e9966a1d94dcc238b624100903efa2dea5532f26b5241130f0a290aa65d331ca2c63e6e4e045b0fc0becde8c1cbc9b2caf835581c81738d952fdb9dc207aa5d40bbcbbdc4c6ff20557f5d20576b4eacb41b56ca225e3027fbe22858dfc34eaa2c816f82cb3a8abf43c5b8592d1021b45a7461da931559e59e0c5e4df8beb1c529f100b8cba1a3f2d2e2d720576bb5d16d4c6139a65cb0aaca7667539ba73d3738fa24246182255e0a4f9b7cc0f1e15d8d6a8c5248316d35b0a9da4a4bf03e5884c814fdafe258da55a3a3d8aca0e9301913578a5a369d469f48d5929703a68a98578d778ae1d05de4c6b317e8e21b424f42250e08374517b7d546b883c815b5b21f65aceac31a7292b39521633742b860c4c4e20e2047e5dde154247cb72e9a709bc5cd283feac56b5bc322630f649d53668b804be5c68d1e57e54abaa5102ebaf4ac9e0b2ecb29655912470a31eb4b4cfa5f7462582043e065ff58d2245b534123902afe59b256f71f42246e065ad37d536c7a839f422f082aaf08fbaaf3963274204ce83283fad9d615ad04486c08bf1d3bb74dadf7fb588107871fd35b78d5edf7d6d201204467ac62c2b0fcf104480c07b34cff4e8deba6447041135389932edcdb6d387bc437ac1c70fc2f5c8d287f082d741672d9aa7dc927a2442c82e7893aa5c14fe1e436774c1773673f19c21b45befcf0523947996859e0897366a84e082113ab6ec7bb7d5a2105ab9059f75ddc8af935a767b05e5c6ef4039b1059fb38ad232d7590bceeb57af87d2795d1665468a89f7abd082b16ff972bcd3a2b4201e84cc8231a574ce2854713b59703f2ea59716a6fd2eca19272416ac965dda6f6e397366677c8e378405b71a8390dd22ec4cf6afe03bbed6cd5a0ca693d67105af32a71731912942bd92b582776d6a84cb372e6a51a12784b082cfe972b99cc5356fe1626e158c48e57aea5969d1f347159cacdb2c5ccb7d2ab891d9b1655b7b312f054d0841052fea63942f7e927a3216720a46482dfef62684bee43921c414ac9626b4ac6932e94625c5d89582f7e449bbda92d2852691828dae3a77db8bd672892769474a8a0a164246c14b9ee926a47e8bf56dae183230b91051f05a145accb275ebedee6f2e65e530c18211120a5e36a1ed058fea73091b149c9e4cd7a853e7e859ec137c7796f00ebab476f4049b3beb106f9d99caed04ef25c75edae82783aa39c19e6a998bfe1ba366dd2638a9c24e666126846a4b13ac967332d192a995a6d7410a8e5731c943b6038d471984648211c2b3fa1cd5ee5b68414cf0636ba6d6a3468dc113720976a4b892daffb4d096156209fe657e47195b7d922cc719ad63c5ac12ace6a445f3a8934691a79364376ea09441093e68063d1c4226c1a95a8d6a5f377596ddbb25844882fd20e52bada7e3328a569ba099b13d844482510d3ee251bda81d5b35844082ff987529e5a6f165e4408fe06469174d57f906d33a8ee095703f17b0cbc05906f0cc4d60b91a647f6a81094460d9b162864a01029086ca00480056547e31c353547424a0032b283a1a2400670040003270463c0080951555420001f48ef6920204a077b4a7a8941c00000368400254be8ca577ac98988c0020000a38800e1c5b6083f060fb5a1c757ab34e92e9c0b168815be1e9f9375b1e9362160ef00516f88cb6f1f35f8e9ea4128ec791d017574843c762056e94cbbaf7d4b8669f27c9d2d0b1e0781c08c7e3c82faa80283b3c0507151065870e50dc0c1393047c31053ef8fec7ef189e243d33e30cc7ab98e800c54d7c791d2b6b3b72a0e04a0e941d3750be58034d10f08514106587cac9ca0d1393047c110544d971e364a54d4c12f0051476fc0a8ec761802f9ec0669ede5e6d5aa8fefb0b27f02f5b16bfd7558baeea5dd19162628c035f348117e48b791f954be1a6d5c19f1b8d822325471a375254f03f02bd95117cc104ee733a99f4e60ba55cbf04ee339b4c3a474c6707298153bb6974fc2c8bdde14a0227b4996dd64d6a842abf40022f7314fa9386fc929dffe2089c52a995dd98d01746e07452952ee67621b5ee22f01df7848b3a7ad2b1435f1021a94abe204b8e76bacec9fe6208acb7e898dab5caa0a215022b7cd5aa3719b390990a029f2ee966b97c73f63c0202f7a2fcf3cbede6bfae2fd4605bfb57b6bc318a5052bde08532a1b2b4ec4ae76be1052f5a4b6ad7ab233b47bbe03e74daeb8eaa3ba95d17bc0e7eba330ab5a656940b76b4e8a6652f8b3a2a71c1be98ca252935c9979fbe05db2e7e7ce9fc6cf34d5b70eaa35797c6fb975d550bced568cd204bf6ad56d202a95909affafab957b4ceda3c8b6416ec7f7e905906dd2cfa2291052bd7c55cc7a094f6af28166c49ed5c8f755a7aa13c49564693010bd65ec811dd42a98fa393bc826ff9b316cdb2eb8cc4157cf41757ffebf0d25989a415eceb1232e596e8bcaf3409125630da32e9a4346bedf1b555b0295b9b8f1ef92fb78e2a78b3cdd23f75cca95af09c5470dfb9d34bd9edb7793f24a860f4efe7ef2cb34ec10995652f0719cb955c99821765e999bd9d667459a5e07b547bbf8eda5222450a4626fd1b5cc385eee8a3e0056d49c8dfd244c1485b9deb4dc64c9fdf50f0492bcddd7a9e6571a5a0e075ea9750a7356a49d127782dd5ee51bbc6e8ad95238d154fa4ee75b3d00e529d60d347914a6f6798e96c0a249ce0bcdb34c64dbdad8d2228906c82f10e1542eb4adb8ca2144834c1994ce97a9fd3cb942e138c7e761937a3fee02e6282cfa384ee952b3b5bbbc881e4128cf616b5aad34d9d5c95c412ec8b7f7fb2b464ea5e84580946b9acb3fc3e1725f8a4dea6646649c449b031890e77417b889260a5cbb156be89aa760d31128c162e4b1f5f9992f51d2224f8ec3268377d2af5eadc23f8d55a4797453bd362143a826fedbf25bf3bc446f05e3287bddbcba459102223f87ab973163c467ba5eb28902c8297429d543accf45fa314c14a2dd929d78fa6fd454912c127eda1db3a6bd2fabd6302092238e9b229dd4278f61fad2e901c82ff1aa1e5acdb62ab54278921d8205447371dcf2ed42f042fb8f298daca734742085ef75bbdd4eda8e19d154806c1b6fc183c4bfa4f09db90088215ba93dea4dd2509042f9a36cad190f93184f7031240b0771e42e69c5d66162a2048fec0c6a0c27567cef6fb6b22f103afdaf5db673a53ef5bd720e903235b536d9a67befc9a840f8cafbd5077d16d9ea7044193ec815d91295f14e12dfa2e891e18994ca44e9d41454ba63cb05268f9c54f13f235fe78e075d9bad8e2f96e643c478aca32496290dc81fde4b2e538a645edc0b8d07773f30d5ad6fa5407c6440ba62eebd5aecf111d38fdff514d789773e0337b5489b071d9a4eac881d5b2f075176a435598481207b6348bd1d3d607e1c0bb641f42bfa7eb175a6fe0e576cf5a48b575ef326e604b698ba1a5ccf592c81c1a90b4818f99c6d427992b546a900d8cf6aacc50f92ed76b0ed7c027d5318b50ded156fe246a6035737671947e19ff83276989409206f6bd379dc67639e8f8224103634294beecf27850a2223903a3c26b84c6cc3a86694f92ada0a451018919d81bf3d74d327d2865e6202903e7be1b3c9e4ca3a32e123230ee5198a7b9cb423206b6ce5c68d6b9eb65374f0c6cccbb41b998a1a133e748c2c0676f9b6db6d1e5e289040cdcbbf0d61aa3f4cfe199e0b840f2054637e7eebb7669e93d3c122ff01b33ea156a5a27c94c50182008c118619000254917389945e92fbdb36b2c9d840bbc989ab5bfe620922df041988efca095da6cfb8c14304a4ace48515121d102ab51b53017a3970965936481117ab3a8c5f4312458603c543b97d42eb63a13c91518d7ddd9b43617345c5e870e33acc0badeeca4856d8eba9dca9f9172e3d44052057eb3d7cfbcfb75e8f246935081974747f52e0b19a23bc6039229b03742eddcb4697974bf063f2ed9feade78ff682d806122930a65bf014aa2d48f1a889ed80240afc66d09e95549964ea8a040a9c96a3f5b620c75df0903c814d420a59673bdea9c556489cc0c85aa134cc43e714cf49b2004913588f2d32aed4b2283db99030818f194c89aabd0c5ea7dcc0c4244b60fded6d55a615427698021225f0f7b974abbfa71432ea184912d86477af65e5aa69ff41290309bca83fad3a15a27e63b772043e46a5f5e8332132b433029bdabcdd93672c256a17901481132d0a29da2e75c99813031222f0a984729da3b75afe9621b0b12597a3e868aeff1f1221f0fa84b02d35adb49dac062441e0755d939ed424bb17900081d5275d99cbff252383440db6fb75ffc6d36ab47c5ae905a3ad95ddaad2eca27479c18b51ae69d3a268179c8eebfaca452d6d165a5d70db6d9fb4ea970b763d876652516a5298b8e065fe8e8a7790fe2b8fdc82935a33d58b35da82131199fd835acd0523b5e05de71c65ecef17b26e5a30deeb234c53ed7dd642c62cb8cd27f74ce3b8a0c5f41823b2e064cc49df471d548bf993241889856596c08233ad2e5467fde9362bad2c137425187905abb524854a5d7fc415dc86d4752eebacd19516b58213a5df65d9e5a35f23ace0b4a5cb276ea79fc57215ba185dd0bec2a5aae07b579454dacc5ef79b4652c1fbef772add4dd39e194105ab577688faacb55eb9f78a2f9f3f183905dfef39964bd35a363ba1f125282941e34f464cc1462db7dc39a6d6482d5263a414dc69f318d328ed5e72c31152f03aa6af10fe7214baa54f52c9c828180ffabebaf9b39c5c296fa2926223a26043bd750ee6ff493234fe44652414ece7285b699d5b32295a188c808215edf5afa596394bd12758f9a2502e86929983fd239ee0b58f76414bdf419a52473ac1dde773dd99e5e818db114eb0ebe1f945a5fd7f32cf91b27282914d30a2b4a60ddd11917d8f6882f5a842947816752651a69309c625d3ba5dd00462902185114cb0264bd7adb96af6a419b9049fa5ce5f72e59a48d91ab104a74be8d041ff4b2ef33e49962ac1f7ad50a2df958e9e2d4ab01ff7b5362f175bea5b979149706a946b0da15cd4bfae931dad829292931d3d22093e7892657f72b5fe1b8d4482f36e41a5acbf53a64d941c287db28c4082bdefb4e75ffb516552498e9147f0b2a0cbfec5b55e5941d991a371681a3b76bc8a0e64461a2a28860c4c3e30e20846aa70a13a4a6fa4119c549fdf3fb75c55a52c29413c8c30828d326b31e4bf2cd7d4ef16c109b9397fa7085e752cd5b6223aa9d677896063eedbfff451cb98308c20820f7d2b5d16c43c57662119460ec1e91799e5ceea5fe38d8886e05d4ea5f96d755e2de48885e05c7394a105d5e6b27b8884e0fd74e84e2f6bfdb2387a616410bc365f0dd32cc70c79436144107c26fff72cb310caf4371208b6b3a59694abd5a2df86531801041b42b7963f668df10577e40fbca7d3db29aadf45ab47fcc0aa8fbaf45ed44288129ed3073e4611f9a33dc33ba4f8c0665e2d4d5c9432c76d218eec8111a64cca3dfd42374bf5c0492dc9efdc74afd5c7f3c0ca60df39fd359acc4a786063084f9db5e4e9c56cde812d6d2b75b79cdb813f112137ead4a02dd73a70da3fcb945916d3e62374e0366be7eeeed7502ace8135d9d165e72c4af95267440e6c7cb9fdde5a6b8cc4218e10a8045186f250200e0643a1400c03001c56bb06017312080020281a8d8663129154d5a61f1400045140264444302a2e20160b47448140300c85028140201088612886a2180a03819247dd06822fbe2a97396a9c6bf8c1d11b10e16002ce853ecca01d6381a6e8876cad9a2eeffbef0ca2e99f1fc7251b01f460d17388c012a41a72aa4146f87e7aca97fedbdefaeb9bb718b467e1a77f7ca6583fffc1405ed1072c7704341bfaa92dbb53bcb51a882d4f7e9fd7dc37bf4851e3a10b15d75115e50ac94700215aec70c2b7b5a2724dfb1459e96999ca1599975743953d67b448f150f53fb533665307cd019cf50d728603eaab9e973e4c1ec7f436faf22a4f965ebdac69e8a29500beb7634b6a79d5d369b38bb9b6d463aee4660eac5a022ef04951cc643257e90b6ca3ce891ee396c0c52508d5bc366d1ac2ebe791aa5e8e5c1490a550e634a54275eec6005224a6e7be6ee02d35701990aca5c2279f44d57829f3c9f577313c98824aafa26b8e38d8cbe24823ba454f7d497129f0ea243b644280a9467263c17c1b23a80388e13dc7ed89ba335b603fb06c1e5ef025cfd1fb835b402681af00229ac36725137aafaba52725ed0f6a24f8fce129f20243d54884fa05eae592de32041ceae1870a204ec2eed8c6ee008383245a2690e2ea0bed4c43c8c811c3ac33ce437fab5bf19dc830b9ee8553ab4106a70fb5e6d4795ca52f8c8177d721a27559010995b1e864e0533c2df8f503df98232199bc7184d9f83c903c5d9d39180c0b38bcbad091a753a58f0964d2eb8736baf0552f3dfbfc209c285fbeb86736a0bd404b84dc04ffb3c90ff46ef51a1dc973d0be99e2842c536931f7936cab22dfec35acf19df7a1b2a1860680951bba87eb59b8d4f11d2e3dbc85c8e9a6121afb41daddd6997210ced801fe95b177f6e123531227b5b6f7de414f7a57ee089aa5f59af64053c1a85031d04b46c6e1f3a8f1713550b2e686cbabc563af23835820d68aaa2cee1e70574336d902d83446382a7e9abe213e0ae6f784764745cb7236eadac167520d7f14cdb99e79918a50f6454e82fd1c29e125c23589b6d298297327c180db9016bc4569843a9237f94526801c27ee280ab1387d724c48811e36dd56dac5d24f6385fb114687c065cc36168c89ce6008e2ea38318aa04774c411c0d72d6346c0e39151b67e02ffc3dc8c56a254eb6849fe8aadb62b3fb322090623f1bd141f56f001855f94ad424b5dc917c66049b174c993af70ba2e506176917d01a1e94ec0e7d086b8addf426650b8f504e7885d538183d40a5de29153b843b512711ecdc34e4b8aa080e9b89a1b5a8faac4e3b82d2566955e800a7547a1f74b6f63d6fa715c21c4a914710c3a56eed6468061b0884777785938396cf6427cdbcc9221a2ae652edb07faa54678b95959fa54ce55b065e420a656b171dd8bb4bf65ab4ce1fef7fca80fc75d749d9357e117eeac03ff58a741e98e0460f895b82edf1aa089fd57854f5dc4b055d9c155a07bee0f3962e654a55f023a834a6ca54ee47c2f828cb21d7727bd2a3cfba0f5f0d29509b8369b0ce3162cb02a1c6ba168d39346d5b6419b6dd11ebfa20a51b13121de56202ace6aa2a1696681222a1339494ee37f532982796ef26e91d23e0fd0c73c1a1a2040a2c3ecfa2dc2069fc9a778d999b2d4be69a8f640508197cd662de5c84e9811c6774c7c04157dcedde866cdea760dcf499a38eaf282c0ee918e51050c37c5761f58aaf8173eb090940c3571e840131613172e64da669ead18915cd0817763aa6a3e35d4c8733e44d8b6702252282ba056e0a2de6859dcf78b183c92d3e68dd3e2b01d87f9824fc869a780649f60bda5b5fa7bababa49a4f456763edf5d261bdaefd24b0c680d1abae3437ad3c0552f8afadd3e55b108904bbeb5f20a8503cce435c341b963173d10d9801d1c6f7658ef783030d8e5045af6474f1cd0de3ecbf402f79ffdf65d6257f8543f2c0f770d50169d7cfba011ca6c210ada2556e4cfdbc06611a25207a52264841184e5b1169813c1d990508406f0dacd69c978609d3f9c661f9506e16da1877a82078162321735b2666c9cbad5aa4c3df95ca36ca3ab5e6f2f54e8eecede2c8279f721cb6c9e734e0a528e85f28a6c73b67372fa5e165f0278e5cd0719d01c3eee0d72d324e21220529043068d82df0944c9ca71a86dfa33c05fcfc7c98a4606883fb94aaa0d7489430df56a35d04a9c5779beee50d73648f288a5a92190b5403a30a950c274f87634d7e44f23bf26db352d8dbaef085450b95482ca0623096b9c048990e8e27084a1310e9b6dcbfebe8bea95d1b4c7978db772cc2d5e3989e08f9bee61bbad126c48e8de11f068f1b4ddd3a0f8224e4294f073f387d24f65eaa305ad820a2021153979f2fcfbc5c2f60b0115e380e12443c9443549516dbea27f812edde32ce5336cada26e2f07e6014c25366179d33f4fa26f666c58539d3a1c39f8174aa84359ab00deb85031b0730591d96a28a35f73d775bbc85c5402f7952817bb6f33541f58d438777c6448bdb889a1e6e5c28c1459c4256d47f7ef9e5ffaa87a1bf2323375a5af6d3219d498f9fb13a1da1ea0ce5ea5d4b78cc9a34c89f98c1bcaf73d76ef6c4e672d06e60877ce7d0b888909e0ed258e3a24bc8a87e3e0f5fcd8cd685b371ddfaa59d63aff17a8b043ab35b380921ed2e05bc25b2bb45667d72e658a4138ab5e70c5018c4080ebe9cbe6e19a71bacb6ed7194f72fc5b04f28a39ed969b8335840f5085c0dc72895f461720c73e99e1a56b3f199ba58e1704d87602997853ad0b4d1722ea3f0f0be45790dd69eefd150a7ad8982e789566f9ce09144d5f0daff2bbe306eb5630a9ee9666c50bbdb0255bd820a2ed7b820099a5ce938510db629786dc0ed7a1428a5b01fbaf3ad2f4834fcd9d963c3de46e7ae10d57baee2a341a94c5ad926cee9a65a52daae14998136d8db8c2151c088035e27031091d96d7ff38143dba946041096f07b4f21a22c978f92c9eb4e4b84a7247d32eb5f5da0d10e94d1d28157e58d007a3b1a10992251a8020f82c9e6e0b480b805613d0c675bb8a621efa602e8952dfcf4315e8c53e917d1e8d73854c69e2725ce2ef660636ddec04f76c22da5b110423b6f3e00b7f8220dd8d135afa693d7a27bdd0a12c62b75d90b0576e78c048bd9d8829679a18faa227671bfd00d084a7b45a304000dd4260d96cbfe5702e825963eaa74deca740478d4ca7be7f6bb512fdc79811eafa3f4d2d71d9e3c4a4ab86634baeed275545d2eccf590053460b2e88580f423998acb2cfd1c45855b33a7038e18d3ea789a6bf1ed3af83dbbd4a757b89744c1f0419b1419e40a3a147a2e662c16658b44fe0cb4849c38342d3b14103cecf3b24b70b046ae8fa19c2af802a67fa2f34c5e81f3739ece14847018d2501b56b7ab9d4ade7ba251b7a0e9c4c267e346b8c8df93e99b0d7cde6ea61b4e630e9afeaf6ba396327251150dfaf98d7b3a1d7578c87bc4587f8d2bfca698f0a35cec03fd79abf9151e30bd8a7846294696c3839df449262690c1c7d0bf6a117b47b8320efa3b2aaa2483a37770aeb09d1e35f0e1ef70d26f428700528fabfd2ea0546307ea9adf5b28fb2489796f4486dcb4ae86ee7438f3f9c3fff683e6c660a56f90db97c799453677f9df9753ccd9ab1de69b9e76149b71b44eb8bc822dd634e6185b53f96b4a12c78253bd0247a45de39d74439e0c441329a6610eabc514dd9f4743e962c9b4781363e9bc7f13504cf600b1437c7edc31dceec2891cd286af49e31e65ed7e25e8bc5316a742fe16383aa71243c6111b144aa5ef0a963c2ecaa122623c3d921f513c570db2b47f9fb5679ca7cbc1e1abc3eb59d9eed6dd00a5bb3f05b0afa2c9409f08c5b8bc35629c5e2eec0693367034ad178f6001aa0b92d0002ac30c955ad45ca54da94f3d94a75024fa8b3fd0b8e0eaa458aacc06cdcacde70c90cc7bc2c779b17b61437237aa20f0620d0057846a9eb41a76f737f082515fc2aa5ba80c510ecefa4f3ebcaac32bf73a47b33d7352df0fc39cc477b8f2c9964d7267114aae1a68b2273d892f9c7f3d2487ea8b6d481e0c6894b8d1c70c858d6281f18330f2cc7b5d855986b9f75a5e6012c1f9f32b7ddce5b019a0420450606d71fcdfa6c6283d365919e3b46d1880cd9d4ccd5484e251933726c95e8c105aea2d2703a1ac4b0f42e8243c0b7e7eaedada5d95a6e6401efb895c5e6aa3238e4806ad3a4b95064795e670433c4c1a31feee4a8f8cdcfe8c59a1da97e07f353895fb8a723edced184f0d52a815839bda91476314f452cf8b3196fd5ced5012c7aa972d1a542b72b8a940a0c52db5871a7b87184fe0c9d143515041648a1355cd10d5a68becd2d0ae2594cad646fe6a8a248a98b71237e7678c2849c459f9e5236313a820f791e0b68fe7bbf2a5b2a16c9e54201fd416c9128d7c142337dcd69025597d306a436eead88e241cd405eb2ea8205b7b6db53b9d39e562db6cecbccf21fbaf30cc56f9c4e0fd1331d2a15df53766c16c9d44574e68abc16157b81a1460f4fac8fb0b2d51e294565feb05eec9e2e80f467976a6eea7c1296c9d4d00ee3daa7f1fca7470112fed2ab5ff4e53a6e906d9b5e006695f48d12b7f39be071f681f2d2cdfb84606982eeb9c4d95851865fc8451bc2178a21896c632b1c6bf634f9e837981a210ae68d0618456789a90827140683ed1ec812c44cc3fd1b7d5f22f706f7bf1f29c9a43f857f37aab694524954b6fe2802490083c4b7a5fe4375d9b11236fa7b6240a858f3e0a9e39441282bcd8d20ff050f13b1f5616c29da5eec87474c873a0c2d0dcc7690a829cc333c08cb8f58ad46a2d1add1800996cc0dc8a9baab023fbd7e61fe72c47865c8621ff011ab40429fac01cb7697c7a10fbc43401d9605c27c7e5ffa7ac0506b12368573708a069788e5861856ddf9f0ec2003309c1e978ffb0951bd3266372c02ee26a23dd7258331f6e2058eac96945391a30ea1f05914d0177b66be1ef54873b4320b42703fd8c1d568d68e6a985a5151e524dc40961e3ca851a308a170d3700cfc144497b998f00a1a0a8c76715c8ab2678b7dd43bb8dc03f02977bf1626b8628d309b3196232ad2560d12be5ce9fc38dbe7a39ff4ea7415ef441f88ac0a93f15b143cb7ad168dbe45d5d02d38f2e8e3297294a0094041c0c39cd7b1396d27522c12868949f7505ee5d983a62b7e49da6a8506a037b9f748b2bd8d816f68d8d397001a5977dcfbd5dd643f09635619430d7ee23346c82d8292a91518a6fda9e8e6b0793272e47481606834df3459dc36c7782688b9b07594c93f1ca8edd1549ec2b4fb2e05282550b25d1c31f72e6fb9188a04831a1f6d163ba94e4a623457185539792a08a1852e103139308b0ab1bc1ea98abb232e9add912dba517853393f14580764559a3df53b4846392f5ee0c045d65c8563b7ff52729865e810346a01d29008b85befab2d37e9b687407b2a8e9ffe217851227109bfb9a295d1e80970633cab115f8a56839c9eab5915b42d5bafa60c26d1b26a23be0b568d6b61e0b74a7f2db8c009dfd1c8c89f3073bf54bdd3548de220eb987b349d79a48e4f25d2bc339430cd4337a6347ffcfc14db3b36658db33554c53acb1a5ce504d28f4e744881d3b09221f9ce95d429a2c41e6ade05ed148d220b4b7a6f9c90149983d03a8d4e5f6367ec885645611216c2b056858afccccb32d1cc548b334a07586a4d2d4bb19f618b85359906ee37223e266ba3719ac9db73cb6b43157d83fa1cc232583ddd099a4f58284368683bccbad16290d9739b409f8b1c4e6673d81d7ac982890be66bef502c33c2a518b69b5962fc9346cc5c310a91d89318556f589032dc4577627a99b657119ce861e6a3577ee0ef138f8afd8ea2a596b6d75b9d35177fe311500b1865b1381dc6719ddaaa880cd22d143319164f5462623511712adb678e1b7aca19add91b4c53502ff3a51d2e48f92c2d3e8a07c0361c11215015fe597e54358515d0412b44e771ec6f933805a9e68ccd7e30eca53edecfa1a3c258cdabddc5c71a415c6e322285ba110051cd151bd49fac422f31ea120922696b5c4d29470069336ea81e4a0e47a19f1232169b73aa6ec25dec51f01985f1dbaf05af8bbacbb36a969e18f3e893fd849b119aa32e9017293ff7138d63f69ff8a8016024aeab1fbb41d8798ecb7762825ee08a1f3294de953d938206f17538cc0cc5f795b1ae7e2bdd1f85edd3e2115eb1c1fa784412f8c05147878333a5e664ae4badc9cc368406fccee9dab103b29d15139a50553fd1cb5a258fd197cafc86b7ee9caf79010b7842beab995b3938970927710412876569dbfb8edca0713ac18f492c6637acbbe3b1df72cdd9b70dc28e1bd8d6a3fc3db249212c4a9966be5cff90d6f3fb3eed9ec25267c5e32a0dcc3b722a50d272f7ba0ad31e41991dab02e0704de819b9fe96ce2172fe706dbeb781229ae3693d45e51774575166b0ff1463cbbb69c982656d84954178bfe9212041d5cd869c927e42ba336eaab331df1ec75d0e3703ab6d351d69542d8f7c101ea7a088c171fbd680444337b6a807bffd82629fab0001a6df3ba5f7443df6a30374d68f7e2a248298522f89ad6f627474a041a13f858119fd526eeaf358031f9925d1a095e83c1775b7e961108baaccf09463213132e64aa4b7495ce6b75278e72971dbb8790e06ace907ed15782409bd852874bb33901d9e6e9f2db801abe431244375e55f0dbdfd8c5abf9e878c2b8f9304a435302f7857c51420164f420010ad6c6608b52358869d5d41dcb167fd343805e1379f5734128c943bca2ac4a8992900d809ff42c663b4ae95f68dc0fd4f7d9600d082be668597253968dd2943fa163612881e0dcea30c7610273f3c14f0431ac2eaf185bcc7815db25f03c64a894099e2495e7e6cb1e9acf0ba44f5c7c6ca3f2c4632a58911c760a6403afadd5c8ec40982f54010940e1ee70be8a6fb68af7d8d37c61b2e18bcca5b99de944077780fdbe330d82b9bbfbe0e72bfbb267ecbc9ad03f9de34639dc4ad60eee09c17182a1ba31b2a3c3a5f1c390cafdab471c01deca30838a457495366f924e05c01ddc9fa26882879e37e6a46e87e18ca506632ec18e6c12ce6b44f8b7a94b51ed2cace0c11854589cca0159e8c64b1da2cfa03b06585828f8eeccaf5cb7693553ac0738d6cfde3ac3e300571d17373fb8f1bd35033f040f3cb59e99f00d4afcfeec4fac63c92145a21aa8daf44ae7cc9f17269524acc94e396bef2573f3823f8c1a6f0aaa7372e136d0c36235b50b279b5b23a538648542ceaca3203e34426f343766a1068cb93add97657e51348fcd78802ecf94afbf4ea5c951d82a8d735e35ed73e7aaa94a084041582833e5e3b6360d9db031b0ac4d7616e449699bb52d6be46d0bac3073c3f789fb91cd327a2834bcb9c153952a6774afcbbb7ea964a0e03f5e9a5ee4672570f432c2463f1ef220fca58ce7a66208e24cee2939398e2421cfdf0e5648a5d6a8994e628ba8b3fce26423824828dcfcd28f1ce1c5b8f2512d955d9a5ec815ef46776836159b33d652cb30fbcd3092c904d0654227a5c997273454a770dea69832233b2313f39946026acdae8cb9e25ed685219c6683cfa2c1c765ae54984ab832bc5185e861fbdcb3e97aa0566fc44fde60ca1c61622ee361644796706a61c88492a7cdac8a71804963f5724d41e5f30f444aad092eaf95566cb471d5d9504ff88961684573ae863137ac5e12bceb2ccfb7d1bf0552c2188fcd1ef02ad749ce5617e48d270660921e4f15a54209b3958d11260129c25d31d5420a3df3e4227d5261fd553ab8f36c82e16aec4e4148ce47c6bb3531533f9e5d9d06b31a408ced402efcf95cd08ab8553130bd59085ad192f381c9d0a14cb90e2a16bcce95ab5437d488fdd84d8533997cbbc38d7ac7c86271685c2e0aaca4945c7055800223bc6b047d61ea0aa3d02d367d552de22028a01f058d2458fc64c843c5a747111c89725cee6a97d18d72a15924d92e90ea381056df82d4341359ceed5b10701a23e293aa460a528f11dd2a37b671994a9fbe1552466d18ccdeeccacb129fed2dd85a26a3ec0117744a68cce91b251c453f5a87115795d74878dfcbc0b3a858f170c72215bb25b82122b03491616f225171ec283e22b95820bc10b0a180a14c2c4da008072f598fea80c3ff174e7f3ee51410119c91ca464184458c499e1382a9e95ba826092147d95ce7e9d27a0d3267368e43bfdbe300db2ec50c27d4171ad393370065ed3d372740e6f383f0b1c94719f538e337746b30d179f1da65583c4b1d133552ae4985731f0ef05fd2e280a70f9714d8055805b61a43d56b29feba04f3997ee2338b0fde98340945c4e5d0c43d7dba301a43dd93226a8fd55e577216efbbdb174c2ebd968ae70453506920fa558c3cd492c0ff8860cf8e7a7b8e67bb078368b11142561a47186d7dea84fe249b21d67d27c61d5c5024c4e2b515f6585b3d33642be52ff2c509bb02c4dd713000d98d2062938813b8309b4e2f135ef6dcad8705eecccd14ba19a983e0e122d971bbf536e86b3d79756e0b82c7dbc7e72f84130d773983a7ebbc91e12022bc1a1c24e248dead54d40ee05662a5821a28975aa8fc80b518eae74b0bae62bdc9c4955279116adb769d680be30a85dd45c6f128c452397827240af1fe6922eb8106db8b9e62df083d75cdeddb3c1ec88a51b60b270959448b39353af3972ba094bb7ae3c91a22a4698ca86cc27e4141f955a0f5647e4c02a12440222af34803bb11dd7028b4af78ec03fc6488090c21877a8f39b395863983c47c0edb0423f7aba508f981e95ecda6715f3995a6fd09751ada4eccc73914201bd15468a25f8700183a2fc23a5e60891af7f578c61dcb03442cafe416b880c77bb4ae2f934705a78923aa08f388d8293d3e3d56066457cd166cd82ef4713808e28d63c0499e515954d6e359344a53898db882e7c76252a906e2231c27d5136d8c7e409171b5fc963a44c90434f2a90a8a928fcb8c8f2ccc99906dc7e1f81bedba321201c53b340adb81732e559b39686734b8f99f94a82bc2c9a4aadf7cd5121204359b4b58de2aa87068cc7724e53b7a2680ebe16b99aa00d09e4903c1c45af0f8bb149a85914709d07defb2f2ceafab015d9a2b61282d70447da4930ef3a88d92cc9b546a296f35fc04d6f416ae46812ced1e5ba8baabb3e347a791cfa5211bf4134133eae70a3583b200e31bca875ab978c4bf724671432120ac8b233b07b2440b7b2fc74cd922e81982a5584713978827064cce2e26626396a6207218480e6eefc68d30f721b8f900685bab9f04405808a1df22e1c03b04d11e40ec4707718516076029f1d774b2e84c435bd219538de68ef8882821123f7aa5277c18c0783cb2be1c1c1351b23cd707123ad0d23e24f38b0b2d76bc9d1da912d30b1f1f324a33cbd38e06e35d0a16310f83aa7293525e0814806b77b1872a311bafb14b818fff7e9de735e3465268912f832932d011cfdf3b8d9739cf27332326294b589ec3d549147bc876fd7f6b94bd9bc42eb43cbbd194e97b9b39ac0ff884ecbd18c1d0d378e8684db27f661906043df4a40daf8ab3fddcdaa56aa53cddc2649a76e44df967d2699d93fe1a124e9727600b3c1c6d00f51d2ebb39f96e14f5beb36204bfd7e406a099990f1e6b518a589d8c77d325a290fd415ee2c216d4de92d16f0f2e7eeda3baa24f85acf5bb4396ca190c701e3ec719009bd911ac14774c6ccc1a1e0ce84e7ce0b4da5c1244316cd1f4f0005fb6566bec6f91fbd460b707e4f6d40f108950b86d1bdbf5ab8ada17b85c16aaf4181324606395fee45b70ec5c1a633115ba620e4f975c205d784a1f16650dcf5bfbba40b642121710184315f048218b5c4a6402357be2af093e38464002205f812d21d8ebcde7b13df465d573d1d4d272d23dff5294b9fb9adef107fb2fc768d80454c8b69bc60b264b7959356eee038570e69c1ec9c72e171014dfd90c0733cfd5842cbe7cc46c3e00ae0c9226b03465dc63e69aa57af0f4634cd8839dcfcd81950515273e0ba206d6e1cd80717a0d39bacfbc7abc25aa1b70d4fe6d3bb508cc0fa133e93a2c6bf0d072f3f37b16ab158b7aa8f5968d20a6dad5ac7947e0aac0f327852f453abbdc2903fd403085b8c9e353e9854c99ed3fc61267559b885db1a0941c52faf4ebd0a679e083fb649254b7c555a4c78f98d7b05254baf1d0a6656c9eba38028bebbd4d50adac2c37731d2cc40751d30988f386dba7a088aa62fec7d911e14ccf7c3e95aa5642ab24c0de2c80d0b9fc846935396a752d78f406ead32bf23db88c1697fe3f5ef84c770beb7aea7d2fa51079500ea23c967195f0d4925fba82e04a01eda1e38618ec289e41e69b2a447ad9d12af6bc4c5ee7c5069a933f3b09132a45669f712df525d8ca08839e5940cb534ee26897d9da71304a6b6701266f5bb8ce2e6e5cfdbfc403d8c65a56e37755b54c9f916f0beefee389606aa3b6ff44e0ef90e77d15f1dfcf9affcd0c9917df92e71e56e47fad50b704a12a91db0f3cc21fbb4a2ae6429714c0aa16812e27f9e8a0446239ea442c12a5ea3ea60804e94ee2fd74172310340b2e87921f76ebcd978e6aa29ef3bd51dc235944b9ea519518981e62e3814d221058460f78551300671c9a2be2d163840604077eed122b832a8b8886d98454f40cd6e8f93374eb9a935d686e11163403021514f6962cf379bd082568b272551bdd1174c91b3090c513d8f14d2deba2d38750f4003b5d294abdb9405b0061ebf497c9b603bc17287a02c07027df8406c0cc2ed457ec1f65a1d02b0bf4d3ae1f34482680b76839f7dca853ed5be73d4388d21dc9d5b09b94b307dc5098842000c5f12f3119c2d1c1c35275f4fee7ee1d57e8bbb04955080648b16009b5700b84c58fc02f3a2851788050bdd0bafe01fc560cc5f5b84c7d365f803908c424e731192e96b7b9cb52702a64c1356ec48d5787a087fabfd2124614103e125c62e1d48641d2e6ea6ffc255875a4a986f4a176fdff044a429fb19b3889e80a5c8898c413725f54adeaf23c5606b2c4e47612905a3a588a76b62def0a8e38d7e604d81f8c635190a035a20a7c6ca729fab69bd15b77dd21afbade460d1dbbfbf8d6d476e9dbdd7bffbd3b475c1dda9a38746713aaf403a4960464365c3e9f698872be5a15f75b0ae94736518680fda1e701a8b2bf83d57568b722da2395e0d662da495ad989446fd2bc833ebbbd3624ed746388579a372d0a1c5ea411c1d180abcde3ad5faba90e4d4397b6275f46101945db198cc9664bd1e30d15844225fd2c26bec1f9a4b8443c9fdf666d976952993408cdbd86902d435a72ee4d5e1ab733fde92c8b939e1f4dba523325fced083669398365f1c5c4847f8902855222d06e0132645dc64ff7c30825f6feb36eebeac50fc2bafe0018ac193ab5aeb9cc21665349b99e6fff18826fb766be9367a8aac7913df63d12bf684ad82a422f8198409d8be6342ad9d8a045dc8913a3b5d5ace19e1fc01cfb4e4b7980c0d76adff3729259e7d2718a26ba999e0bacc4d71d523dc9ebea6694f87c276087a9a037dec28cf85c826b5ab379dbaf09ced4de525bad8fbc15d4733ce9485e49d1fa98ffeeffd9c93fa5d709e392dfd14c247cd2a27863b31e0f50ccf9ea43dce490b6e68fd9362f65c35d8e71e6cd065da13996bd0ade38761943834496e7a63f64212d0ef4d7eb87f5efcda71a2047ad77771a6e66200ad41872215184fdbf91a9e1817dc23dfb9ad38c70f685c94cdae8f2840604cf42f4743746feaeab6d671155385259baa2f08a28d621b6cc9bcecddfe3d659d0fc6bcd85ae32872d6e7923e33e48318cfc6de888fed6825f3eb05121d16f26c94d25992733aa7f38d6d6eab8ef739860a6b6e654eaf89f40066b8a2e6ac27583e924f8a36eace9733ee8b7592d433cae457cd51755997d4fad335cb03119f1be1e0ceaf1f86a60619633345b0a4ed63bb1c8f59e61285f6afa5c953288f2d229aab62c79874bac59503e0be754b737f93d8d26862ffa564f9f6ca3df554aef16183652b651dbd0e0e5774c2ed89aa1f91155b0d746c069a1f7b8ed0ef4ddfa1a63da72078cc827a093c06ff6d330de30bd9c89fac1d50cb8de80321da17ebf251cde69e6719b94af3a78ab7a77463f4357ef72571cc5a9aed8fc4a831b837d8bb7c4da5617d057254c97a099e7baf3a26f36c45b3d14fb597468dfafda966f5f4793ebda8f000073b0c6b8550c5c561ba6407936ff5aed96eb7798ac42b23a7f0b065c31a551772cb39400ae3b3f9a52990318f2064385aea687aa54de4dadf741533d80a1d01d2ea98f2419e81ece4de00b4f9cb2e97f542b2d25649bf0ade81652ea7a6e12f6c281841c182da45881c48f134847fe6310a1a14773552c9c299302d8489dcd880b15c6320db6cc02379065c485679fc92ef21afde0cc1d01ac4b6fe0a5b00740883493cd296f9f349fb982e172d60df1d8a00af73a1c626a76e54ea0a6f094b2ade96c0f527933f384426634535e7fa55896e2bb6aadbd6895ba1f4e79d3796134f84b133d4bfd6e39d79afbc58a038f070189ebfe68ce3f226e39aaf08dccfa4885cee1bd5dfec8ac140647cca7b85ec4973bad899d06e348c0806a291e3ce4c09103e364208a06f09ca6b9c75ba9c98c2e986402bec9e31fbb929c24e94e21a9d04eb86e6e60a1ac2ba9036fa18aadda28e8bd5d4b1c842840d55b8fbc365ec7e23f5e9a9af407f5a1081eef1dd204747504f5f1643870a403700391c46b01c7dcd66bfc0e45ab5eb5effd183d8856f6b0ac1e627b33e2858b516144e70be0d0f2ff75fc550704dc8b65bdc403dc4c869a086619113ef69f811ad861c82b5763f8ca11f1cd476e4045af96b7a62d910931f89c521f96b8e80cf5599caeb217d73110ddfcdeab20038e39a84b6e2183a3197413000e93aa255caa039768e0595ac9c234b7f64b3281e1a1d16e642ee218c0c370f44e90acd7e9da0cac47c7ab1675733636d73143a344dc3f9b57fd3ac67ee5b1f2b369c18a8d8248a73e36be818ea2efa51185b72a85730745ee612e05793388ab3b3af3759c084b9e81faa099a024834a7fbf38f757b532caa16028ed4f0e26efb508793e6046c594eeb2f5a217cdf2f94bd165d88572feacc6f406d4ef409ad42978ecad4632b8c2f6675c71730d841739ab2e9c8f555529b16d248f16dbc12617006cfcdc5b7652b53824b45455f1c3918541bfe829b699a78655e80cab829d4384b68e6aeec3c5c32b8b5dcaf44b4709d4a4c0a30824f6e11a3cd1056cabdf1ec9d9635b4ceb668fbff1ff697d73af694212096af601022649b61bd97e6f8c3d61e60535aabbe594c0d3acd3035b4b4b66d5a2183ee0db0698e173e80e491be68154ea7fd62eb4acbf0afed3687eab641ab0547b2847182a272fa02d6237735ab0817f26f22e08d5490c7941b8e44e06a3d7b36fb370e91814b995ea9e92a0eeb4bb3dec0fb9c63677ed9f9a621df51985469a85e0267b7d316044c6fe195112d6131a2c76e306bf4e31839d874f071c81f734b971a20e0020407d0a2335e7b2e6f84a82898da32119ef72628571438ec736019cc193deb59f9db09c7133aad71ff00f3b5cd1c10213af02d15dd74a816ca6c7ab20d51c7f27a36a949c24a11ba6ff0a71868e5e74782bbb2c6ea65c94c1cda6c2896a0680197f4cd09744abdb4c84a67c6f27b5c794ee5a7c29ac754d7f354f403db011f0bd40943e34a1f9f692824867b98cb38fd58e2533adc5468978a85344bf953edd49c71c3458bfc9ffe42fde433267488650c6e3f92bdde25229059d80ef804a523dd7521095eaf8e2630692f3e3953481fe27bacf84c29a45d72a81a469671c2b6d0cd7aa6ad1865840c404f3c3b7642844e068e42f9c4d78200d356554e4e854475d2dbbb04329e5e577e834828522f358a6a9a48c06faef731952aee790c5511054e2e567718c64de715f6786acf0564415a157679874aae128e1e95fd1d8af690dd26258463b27c2489b3586183dad5ee8283666a24b0721473c8cad6d2c9a046ade361a3d9ce2c458a839d869cf883b3492de7c14891e7a34c3c9f0cd31707c2f867172b282ad00be2823b3508d7df324c972ed091235cdcb301af0f4a9a9ce34ea24e8a12c827831c5631c74e8a3f33fb00ceed39eed40c37c9187b388b2dcf710541f954f4081a4ee43681489998b162f9fab1903e352f90001c1425f0c30eec310a5687b2f5d4f57b3de754e98c85cdeaa7f0bef9805dd1918643fa8ce15b55d2b92c720c3907c66abb8966f63c39d467e0850fd69f05015a03cc1a30284df637c8a145cee4e6e8ffea498b781e0e30c234685843ccee199098a1aa861fa48dc09201ce43926897b679f420ac21da7d85e8fba33c32d2132f5aaef532211de0f905f51988ae18d18d2bd32cb5f948ab0103cadc850e8cee64403efbcf7ae4d83ec9eb884ec06c16bf4f042519922ba661398ec8ad7e9bf39db83ce68d724cc3603b6070fcba48aaea7011eec0f6688a616381716569d9e7f4b130971cfed9815c00ecac819e5d15e235a9304660d07aea61830a6a5466807cf17e9fc179dff67fd232ed6d457d04790073c2714fb9c30106b2d015ddcfeac614f499d5d59f8d65a09c51f44c83ed8f0ef7cf80a4acf5d0ec7fbc322f8302acfcf7eece15863b24536f5a113bf92041d0a1f1d4500e4010183acb3b3974a6f93c593258be1880511e7c516cb51050ab22752c6d6ee88d0a3cd798c10359c07", - "patch": { - "balances": { - "balances": [] - }, - "collatorSelection": { - "candidacyBond": 533333328, - "desiredCandidates": 0, - "invulnerables": [ - "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", - "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", - "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", - "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", - "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", - "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", - "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", - "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", - "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT" - ] - }, - "parachainInfo": { - "parachainId": 1004 - }, - "polkadotXcm": { - "safeXcmVersion": 3 - }, - "session": { - "keys": [ - [ - "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", - "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", - { - "aura": "FF4CWRg8eGk8zEmGxswx4ppBQN96HdZhkV35YJU6rfXabpV" - } - ], - [ - "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", - "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", - { - "aura": "HEuPjdpQ3yv45zwk6h6985PNK8wszRyeAjDd4GJW5dZEpNp" - } - ], - [ - "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", - "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", - { - "aura": "H4s9sGNMvzdjFMKi8qMBqnxhGJR6T7Ytx6foFz9CVhGVyQn" - } - ], - [ - "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", - "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", - { - "aura": "Eis5y75gUQtH712YCyF5q6PjE8UsZzFJ4q3tSYQv2QifZKT" - } - ], - [ - "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", - "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", - { - "aura": "E7XKeXCdv3PF1UMmBMU8qH536LKvpwHcgFCVSUbYwK8QrqY" - } - ], - [ - "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", - "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", - { - "aura": "Cm8X6ekpTVidkFPUmDF7dHFLeWQyrdGW1RhEeuijeR2Pntd" - } - ], - [ - "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", - "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", - { - "aura": "GRvavY8h77mnRHbEQsFvUzWpw3kvH8164aVUgKqoyMW8rpV" - } - ], - [ - "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", - "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", - { - "aura": "HeSr4JUpXgrfKNwZGcJYU5FSn3znDoZaXnYxWB168bw5WUM" - } - ], - [ - "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", - "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", - { - "aura": "HppWoUUWibaZn3zgmcaWZY3BLbZzRktLiNK5e6DUBxHuniE" - } - ] - ] - } - } + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xec030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x2400c6f7906ecf1460717a95098a86e69df61cf7d72c2a29232b602acbfc131b25026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee282160e8199042942b28db8753a29cf4ade28435e4594cd014657d3aa94bf821c0a423a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51d46f22cb677963c38e1adf0e1f79c9039164a3eaeaa810a9a18588be6483ca35d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099f00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x5005ca1f000000000000000000000000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000008243cd7379c4", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da918e162b79f1c44eab552eb92cbb903b10e8199042942b28db8753a29cf4ade28435e4594cd014657d3aa94bf821c0a42": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96639be2514832922403288b3139bacc5f00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9835fb70434ad8c544e7161ee304031d7026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da984a8eecbf1a9cc434fb17f34f62d64d0d46f22cb677963c38e1adf0e1f79c9039164a3eaeaa810a9a18588be6483ca35": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da992f26db9e1a10596464efc932b402ef1e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da998f5524a460ad187fe23dfbea8165c7ed4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da99f3d89a197a09a38c501b45a40acfb1c00c6f7906ecf1460717a95098a86e69df61cf7d72c2a29232b602acbfc131b25": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b2f4429c50834c52a099157f11c40a473a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9dc607cc9989171316a1164a926215f70c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x42283d003470656f706c652d6b7573616d61", + "0x2aeddc77fe58c98d50bd37f1b90840f94e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd005874bf04ce0e06b71250106878940e68e5085853077037f7e0ac00e39f3ce5d32e68cd9920c41d6c0ef827f2d41f397370f8585ab3819e905b19509709f6cc0c0dc5faff31c72dca4555fb9fa2d2f837217befbde59652ca94522e14a311af113edc879f1e0f12254a64c3b592d338129b6bbebe8f07891a4ac439e9e448e470ccd7e7e341025222a851a2f71c5222e896e6441a257a740976a2e7394e7224682891c9e43628118d976adc8613d9a044a6ce4d4e64c3332ff90d5fe71e0f121725babcdb311325d2e196bb8eb7e526276a375122291d52a2cba113991c7324a29f28518d1ace51226c52a2e9359813d538468934cd8930b7f119083da34452fa4589344a84e39743cda113650e29919c7122e93c9c3a11744a896ad4701a4a44e396e53994a8468ed358344e9dc8724a8972a696e344b3a34ba06628d18cd3d0b8cd0c0d8d0ef7ebf21c9cebc2ae594363b241d2a0d5f3b2a13d8c46966a64d6cf442af5abb1a0062f8b0693990d938d575322c96b4e0d83160d29833666662259fdfa2ad5481a4dd298b4a7d303625daac11c45a2978ece8c09d3260f1e4ed4ce83c7b4614387d3009fd390f5e8e14497f7e851635925d7e13cb2cb79481a6870a21aa741878657a281aec37b9848dec3514e64c3513c783811e63c280f4739d1943a3a588deb701a248dd3d03a3a3a3d9cc8f21e94484787a4398a521c27ca1c67ba0ee791e3386e03e53c9cc8e43c68a06187534a44833b751e4e74b93b11d4d1f9cc4c9b5c87ebe0e0b8e7e4b88de3b8e33811c9719eebf88e13957c8783dc38ca894a8ee2ce1de53b4e64c3dd899ef3a0e1e64687dff0f01b27aaf11b7622cc6f9cdad8b8e750221c4a84e3ee36396ee34499dbb01349a74e831341a78177e83891e53a9468878eeba0443b3c27c7697022cd7538d1f41d4ad4a3877794c88612d9f8cc8cdf50a2d3c96d28d18dcfccb88d13d1b80d253ad9f8c98932dab33bec9da33ce31c87129d28d1c9713ccb5c87135dae831271ee3a9c08a343ec0e3be72827ba6811bbc38ea2443de812cc03734a89aecb6b50a21a8e51c79c68d21f304a74617e43892ecfa6674e54431bb03bec374e444315b03bec3450221d1adf41897450221d4e3b4ae4385c0725da2c4821c317655e0006144cf1a94982124f8451862eb4008924f82051e33d6f676dd0cd41f7edace3a0fe76d64d74ee0e7b0e4e8ddf50221b1b7ea244aa2058a1852e5e6a70033082e053a372c1114e38c1164d208397287c6a9ca8861295287783ceb7b36e83eedbf1412bead749f4e4441a156277d84d9488862ec13e48685e8312957c862e11c4070992739448d3bc44895434b892c6151a9039630b5ef021ed13c658318313b880cc1664f021391189125934c8464f6f675da3fb766ca035875f873487a64976873da344185d02e58304f48b12ede0832cb850c5194a1883039f4997701f24746821061e10c1094994410b3e48b45b4e645122497d77d88922e5dece3aa4fb766aa035c8af3f8ada1df675d52bead10040420a24c6d8e1faf97bfede43428a7fefbdf724db1d6eb580e189f74ea13a5521d7a9769d2985ccb76b9d7adfecdfd3bb3d0811d9ef162184617db7eef71ebf4e6b54fb0f8ebbdb731eb3cf678a63841d3abfcadf8fb98b6c3fe366eed5b64266a72aff731c382290ceac35eee06b2be4098f7921eba3d428654fe3eefd16456a613e8a465a214fd8e8850ef0ecedbb1d8146bc15e18c9e5d337af6f692edcf4ed5f6e7dbce5e5ff63a1f5cfb3bd21ef4e86cd47a02b2f8bb05054ebc2927db1d0e7a904ed59943a72ae79d8a8e43a7e0c71250f9e8399dead4fbaa7d0df2d1b779daa76a5f4f1f9deb547b7453f4e85aa7d8a3af4ea441bbfadda162662919fbead420ff3ce36e3f638d7f60a318ba6f47a05b7436ad43efd92f37752a9399c4305a31bf1c935aa7a43fe73a85f9f34c76fc19d66da3b6519af346a41f364aa355f3cb65b7af7543ef31cf48b2dbcfba7dac439d9e7df747cd7976a6d5f2e8cfb3c76c75fb57370fc03ebba1f8cca66fcf366b6d3722d299d6f9ecdbbd6de50c7bd5fe7906b785335aa3741af5dc726f94057fbda77bde76dba876d8557e212e53a64c99afaa5f975d1d7abfce7436aa9db79fa591728d6aef69cde49d5a7f8eead47e4ea7fc9ffb5821ef9f579d7fbe3a0fe32845b63a956bafb377dad7b3e5c105e1762545caef6a0452be96be5d00bfab23ba7c6f3f4038f6f6ed94e5edb053cfdb67a7f6dbb3de7e2cbadcf3d7ed5b1d7fc6dbf3ec75432cf4031b05bd08f7cf7953c06ea3aaf61c69557d9ccfea2afc0a7de8bdf4dd7ea2f77496ed4644d20a5ffa74ababfe96bfaed65a9f1043d422def26d94e53d6f764244ffdcea6ace43cf5893ddfeebf6773b023f7642ef9fc36e1bc5bedbcfa3b051ec4d83b8df1d2a8b5f12d9768a977f3d2b6da7f6d7b753ed75fe3accb85bae3dcb5a63eef9cd4c150efa73f6de7e982ed7feba6dd4f3acb51b2250f0627fecef06e936aaa777fb818d7a3dcd1b0faa6fdfed47c5cc6164ab53fd9f678be2b2e5c16da32af7c3cedb90228c8c8c8c78f6acb5ed14fb3aec54fbfa6eb351cf7b9a3bad51cf7f70d5f4cfdba1d7f9cf3353a7b651ebcf4f9de27f9ed329f6e7196ba74eed3fdf0d7651743c14d5fcf6f94d718cb4436f8774889f296cd4fa6e45d89bd676f69eeee9d579cdcc854930c5eeea88d5b3e7b00efb9f358063e7df1ec0fa6ed9f2c055eddbb54eed962060f1ed5ca776458229beddd4a9f5f653a7d8db735807fef6d5691ae4bf3b54cc06c87687db951154bece5fe73ab55b8280c5afcf4e2d1746a8f2eb5aa7f8d7b779d6a79a7e7d759606f9ef0e15f301b2b581abdcb3a33a55b567673f75aaa29e9ddd47a7f8d9b94eedea882ccf6eea543ffb360ffbd49c67d73ab5cebe3a4c8382fcee50313f20db1edcfa5a1c19e6c11963601c18b82f7024e098e096e0a6704a704970487052b811704770467046a532a53394d22899a1548612194a644a63289d510243c90ba52f94a2501ae3e1e0dde0d9e0617957a6131305f304138ae902ab05160b660b341f6859683fd0b2683a201d411a02090cc90b2433485a20298124464906a518949a2895a024456906a511948c2095219d818406c90ca432946a50a2c1b44296850c0bd38ca9452626fb423626eb42c6856c4b7684cd0c5b1936326c64b6316c62d8c2b08161fbc2e6858d0b9b199b98cd0adb14b6305b1436286c60b62f1b13b631b6246c5db630363036246c47d8bcd8b8d8b6d8569b10b6206c40d87eb061b159b1ed60d3c1966512a1f4040d8b39867406090c243290c890c6401203290ca5284a30289da074b4254132a2a4020d08590c4a52c8aec0455192524a41c9a8f404298d9213251464514c25e610b2176429d0a4c8a46830b219f01137c12698623805bc02a020802065a1870420c087c8909f1e03e8b080220a4891be30000104a004859911cc1c3163c48c1157863b03970687066706ae0c1c196e0c1c1938317061e0cee0b6c069818302f7857b02e7851b8313833302f705c785d3c21581db82d3825b7130e05e4001ae89d29852174a6694b2509ac207a204712d201161bb62a3629bb28d603b82a7601cf00dd8068c85af700d98062c05cf8065c031602b1c05c3805fc050b00bb805cc02aeb2e4c540ab42cb41e98b768312985218ed4883426322db426646a685ac093764342889c9ac6450642ec85a90b120ab92ad2053016606ac0c9818b82e382e382f38227047e0b660676060c0be80790133834b02a7048e0cae091c13b02c6058c0c46057c0ac805501a30216052c0cb6050c0a1818ec0ba6052c0c5c181c1238319c1338305c16b82b7056e0aac095c151819b0227052e0cc6046c0998185812b02e18181812b02fb02d1817ee09ce09cc084c84e702cc0b0e0b9814302e60637066604ac08e803d017302d604cc0b460636068c0c468627059606860656063b4366941d9119c145815b023605ac0bd908b032b03199940c897e42964436a58485d2164a5ac0bac0b8c0b46045c0b6287101d3025b6144c0868009e1f100cb020b020604ec0718167d04cc07580f301e60576056603bc0748065c1aac0728051814d81e1a0a180dda0bdc0b0340db02bbd05ab0146034c0a6c06980cb0186056b0283018602fc05c804181b500630156055b01a6022c055d057b02730243017602ec086b02330156028c0a46028c096c096c4a7fc192288181218149c146c03bc08ee0a0c08cae32dc09ae335c695c685c66b8ca7091e122d32fb8c67089e10ac375c60586eb0b9717ae3157172e2e5c5bb8ccb8b47065e1c2c225e6bac26585ab0a57191715ae295c52b8c25c51b8a07081b99e7039e16ac2e5e522e362c2b5846b8c4b0997185712ae2e6fca15c605c68584eb8beb0897112e2f2e2ed796ab8b8b8b4bcb558487c4b5c5a5c5b5ba88700de112c295c515840b08d70f2e2c2e1f5c3db878705d715971ede0d2c195e5aae2cac145c535c58583eb06970d2e2cd795ab060dc545834b8a6b06970c1e0bae185c56ae282e18b40bae175c505c2eb85a70b1e0aa72ade05971a9e04ac1f5c4e5c48582a7c47574357199e02ac145e522c1b5c435a5b35c4a3010ae242e242e29d708ae232e233a8c56c23c432fa19930d398684c334c32330cf30ca6627a616ea114c6c4c28c9479349b98269825985426092613afca5c624ee1274a5778573c1ab4142c8085f1a0782db8be702a28598143019782c7c45be219f18cba4c9fa1d36834da0c5d86264393e931b4183a0c7d4683a1bfd05ee831dd85e6426fa1cd682d74161a0b2da6afd056e82a74194d859e4283692f4d4627a1c76831ba0b6683d6d25c349727a573d054f4148d83be01e782b64163e92b5d839601a64457d131682b1d45c3a05bd02ce815644af0105808ef08ce827fc041602cd807dc03ce01f380ad601d40f100abe089100632f00357820948c0480d910a19ff7276e5ea0704458906900ca10448082448327e41340142a264484910489060cb404c34a064a809111b40320404d09325413459820489cd8f1f9a16485a1670342c2c07966ca08913a02125404f8080b2040a501320223a9a18209038d94093224c983841c01010404c983841800dda1582685660c24409104c98284140158418e240132026652c10d006903819423224040796007960479bc24261b244c910501048808036d0438bc23ad9409325483ef0048808a10f2869806b505820209a38698244099225433c10104d9c3060a809114e8000e27168608270020450103ab4272c940f0005218102e50340469a385902050a10043acd09eb812543fc13a0a0274e2670a4d3bc2cd09092209630511205091011404438c087208038c001253ed8a091b150828000120208252c94a126404f808468b2c435319a2cd9008ed665815802a5c9922743450021f9009321865082e40950104c9610e113048413263e395a180be546f3629520c9d1b66c079028195212849221a01e66342e40b084899225434b9a2cb1a169b141403861a2012440434400015404500d6db5404f9c2040d388b04d9c0c41049220982c214203489a280102c992217ea809500738000481208082208209104d963489809227447c0f6d080b0568c9d092274e84182242098d26846de264c990922744048164c809132848960cf14a9e10f136bad904abcb162818e15795edcac8e859f56c642c2396c143b00567666666dc216fce63e67d3d67c62b5fef3ee65e69bdb5aec75956a6bdf8369a2e66194d6bed63b9cbcd2b795787ec850fbedd071f678fad66f9e02e7cf10017c7ccfc9e65c1f776a5f560c3edbdded32c8bf9ada5bdbdf6f58bfbb46cb9d7b29697dfdc7e72d9e265ed69d6a5599ad597d4acedebf5f526ef3e299f25e59cb3b77b3237e3e00c6049b9da6559ef65f0b1f5981f3febbaacf7de7b6c6d05d876574ad92bd7daf798e7e465f97a9b9f0d66b3186318ef62d86218b6d862bb8b6118864938574a29e74ec96bd5d448b9434dcdf294bbbb532e64b8524e3833b9732543b82b57c296dd4db27877b775e0ad79371273f74c7c2b44beed8ebb52f64a295b6ea97b7bbbb77ba55c967257cade96cdfb5e33491240f6f2ebe57d9b83e47d8f59cae6e6b74fca96bb7399e7cec9bbcb524ade65c97277b38ce53e9ad5c1fbb21b6f27cc78f6f15ecc248b997b9b9bf7edaebce65a37fb52ccf0c696765f9b7679003870b65b0ede1c33cd52000190cddccbfc76776f30377397b6be817737e3e5c9cb162fefe320cc8ffb35d7db4078e5f6b398a5b5bb26de9d6b69bbcc9c6d2f899744da98b4bdbbf5e47d00789377b9e76eeff20f9e73ce655e669ebb4d9252ca4dc285737b77e75a1bbbb767b7157997b97b59f27277eff2dcdede5d5edeed65def97a6577afd6d27a5a66bd8bb3628cccd6aee47749292533c3d7d6aed59a7ccbaffbedbe65962ca5c5524acb87c599b44142c852c21bee9692e505f9a6861de66df91ef37bf17a39cb2be54a282db88f5b6eece6c870657835b63ff0c44907803a206fec0d1c70c20409079a2ce100079c30b129394d114041345982a4c912254200b1810d38a10260c264495010548f1e281e281b3e6cf4a0a1069d20a520982c11020824434c8850b201a020769e281982d2a304c5c6e6260808251a60c2c4c9931a7628017a7273020a4232540450931c401cb0a9016508ca92228072e210104aa03451f26408c9d0920e74c009cac60660c906809e0c41699e28016202044e29882640430ca104091007943c71320485ee0d434a9e003501e2000ddd0660c88993274882007a0214c41327404b9e0cd55004901039341b182202c95093254f8638ed0d1d5832d4848827488080b2a40334004fa0e0ec0d1fd8c0922740519010e086010c20004100edc036004100418102f464880e380102c913a0284e80007a82440994208000427243506a00011802082028489c0c0df1812740f0e4c8210037380e29244538f1c0108e1aa9010400490080829430d100120e345922041425427803013dd9404e9426406fee0d489a385902e5095014241d40f2c4c99012209c3061a204c950114039a234017a3d3422f4aa54aa2cc9aa5458925549956a1615a9649222de242abe8a8a8aac22d5ae4aa52a7a49b68b601215171575d14b52c4aaa2a29744c545aa4ea2e2a24eb2aaa222952a2659d595648b5445aa57c42a4e52a42a52a954f12529e2a2a24eb245aa4eb2459c44c5459c648b8a8a8a547126d9a2a24ea2e24db245452a15545949545ca4924954ac62554ca26295aa93ec2651b14a0593ac8a93ac4aa57a4956a5ea243d0f0abcbbdc01284a36657c1563bc007eb75461e5b3cde057a6156e57b95711156dbb5545f0ec16fdf59ec7ddfbd7050911bde5fbdb55aef2ed702bf21e3a5bb4f2c30afff2f5ca74a9dc7eac1fcb77db19afd24b5e339fbecdc3b9b5636dae0df55b8e3969a70ebdb73c9268dd2f9b26698dde3ebb992a5c462b167d7a6f44aa2ae851c9de171dea7f3ed927adfbe5a1b74583d8a547e7ad08bba45aa3f6615352472ba818f3ddef162abef8d514584a24af9cf46a9abe6991366cdfcdf22c6b8d37a60bbb88b3cb39aab8eaffa0f6b67deef689b820cbe357ffcc3b7561251c72e84ab4aa3ef3cb2fdf2de39f8bfed02876f8d68b24d9e5984e39592f8c45fb3032130c24d26d940838e9d594d3a9cb9f1371fcaed3290bcbfc791092bfca5f990906923195af43fdd8162ab2f8ea3b381557fc731d1fbb6194a730106875959ff443a3e09148ea60a338becfbc0e3ddfba6d5474ad838d8ab442bf99690137d49fd18a495af9a547b75016ad431d295d9db7f145832d3fd0327b87eb54f4e754ca18e383fc6e99420a2a9f2d0f8eb3f82d533cf1febbe506677cb6d96ad6768414bbca5fa3d7985d9d3fa5774bd77c3b35e397c34e95fca21777f926a1c70b6e447e6026e0f6d3a7463d6a6ad4abd1e57835fdf3996e1b359de3e12d2f3d92c76eebea7ee1a367d7baca547eb40cfaf31f3a05bd9da7b00efbededd0398bcfbab9fd808043b1d7a94d5a550fdf72eeeaa4f13af4be1d7a95d0af8ea6dbde617fdb91ec1b46b7ba2abbba5f1e52668281b0f7f40f9dda87ce4cb00efbd0e5f603e9724ce5b98e694440e5d32e82e7483caac4017cda9b1635ebc8b869555526d83f87dedb91e88f56e8915e910e3722fb57a6b88fa445980f15cfdf66e47a486b037ef7c7f5cd5ad3aafade47aa11f8d2f20a5956bdee2732d8031b3ddc8e702fe983ef41fa1e3b91ed36c643d7b43c8400f4cb9d90e22f083cf1d03727ae78e8d32b0ebf5e77f82df9e6bb7eead4f4f51cd7e994e6eba84e5dbe1e24874e5d1d8cf1450bc3ba7d6b4ed7f64bd37b1ac748e6127a96917cb71eb20c23656e791635df8f1a1d6279f488b9d5f147e99156fe4cd3aeed08748d0649afd0a1a8fef2b91d81a27acc832e879ed17a3946a3ecf652bdec36d73a158e91e89b47df1ca355f558a99b8e056d0ea3973a2952a448297912bb3730fb24b17b437d7fd1ead3f38488bed4adcf543d147a3f332fe0367f9b11e897bfadc8f48bd6cd27c5b93c73e9bd15d928ce458d686eb9e69643cfb42c48eba1358d3fd27af9c41c27fafef4abc3897488f4e993ee637e3d16af20ab5e73faf34885b84cf47704faa4d5f2cb31e68f1d7f11abb0ce9e3842e3b1cb19ce076ee16f516a94367e6d85ec2ea9b723d0c8e8d7797dfde7c9dcaefb0ad7e361effe900e9d3bcbdbdf3684dda2d5278e118bb263cf31db76ee60a35ab6cbed08f6ebd80aa90cb723d9fe685f8aed8f66a397ddee8f6e23bec7436a6a2db2e7afab00c70e8170757e734c58e9f84d15e0d8b79f3874156479e96f6a3f2499f20c1bf0430ab03cf8e5a13a85233d7a033a55757ee854452511a253f5b45c78e814efea09311fb1e7727ddd2f657cfcba66f0449f0aff71fd91a53fe9bbec43f2975fa753425ce6c9fa907ce9bc1941f2edb27db9e9ae0f7edb0f7bc65d90dc7870de86bce76c85e0a51389400445b3e8a56f57150fed4193d6e7eb550e91fe8cb43f2a02ee9e67dc6de4394b6a844f9db23c7ace36e1a0731abf5b82800567da951365bcece2739d5ae9d1b3de7848238d339ce1772bb33ed665c7657e37a3f5d146463c7bbf31d7964c88bf358fde1d14fe8b06b15fbe822cde86df2d529ce16b7f74ee9ef0fe883e345f68cb7ce6bb0dd11cc332a618bfd655e9d1af6e3d5b0840d73cdb0b70bb5ac117fffcbabaa8f56e5d2f7fde9b11239a5f9e418d372256e657a739dc8ccc21d399eefe60ef69adab4d797fb05f9e75b59f7dfd8a325fe89dc1e8d7adae0eb14a726321db21dac57c24e3a19113aeabf85d59b1c17714bf2b1830f1a8dfd50b80f0ec4eb8b7c5ef8a05649eb5fcaeaa5cf13e7e572bf8f22ba48560bf0c447a69856c1a3c92779eaf2fbb943d5260617f48dfe0f748718505b22f696d5a8b3e4a3f079ef0b35f268ccb346d857481042a2f54fa28f3d99f4bd6617fbff657f9cfb3a7c5ad4886c6d15722681c15915f893841174808f342499ec7c0e0858a485f87a6008553145f87b044914de1eb1009a610bf4269020f6c004297af50b0e8f2ecbc1599464645de5664cb3c7bdc8af80bf14bcf6467f166247ad35a03a397de6e6d43a443ef795d556f91f1158aeaa55b9dd0962953a6551dc5060d8c1ecec0cb77df7dd69ad54532be3b1dcf1b11ff76d945b101e9501b71e9b10b6a979e75d71b112e13dd8a14a708f4e844a0473a94ed4a0a347ea8dfa2b53d0a7f74d5771fbbee7b28fbf605a38d56cb8f10347a1b066211bfc832967560315f7ebd99677dd631d6011afd7a66696f1bb25fac39e7943de7e339238ac49ead40cab35bced0b3d8d16fce98089a5b1dbbd60559cefe36229611cbd9da26dcae9a78e231b79c8f70bb92c28cc75ef32c7b1a6f4466bd3cc8ea2ae69667568753041a19fde6f0dfefe656d7bf794f5b5adcfd51f276ab2379a9ab16dc86584ea2dedb10cb39ef795c8763c472925b4ea21d8e11ec2dc7dea237fb034ab7bc3de31ecffa40b73a53a3a0979cd4edef8faab9b51dc15ef39b15023d6e4770f607748dde90481d1bfd6e44d8e8ca8cf734f7786628ec1de8b044ebfcca05598e79b57c79501101c330cc7b3a831a6f43d8adb715b11c0b22ed0fe8a5fd018d1eee0fd8010e1a19f19b6757b6d192effeb84a4ebabafa3e735246ba32dfba27a492e63d5dd29c946d9a5f9946777d64f47afb57b76e55f695946bd473faed5b5b54321f38f8bb32411a3e70f177650232bb3f768709c47cceefca045f3cf4fa283f6fe8107a2cfa17cb7848855e99323088096db2601cd547d9e56e47168ca397f44a56f43576b1c98271f4d12b085e46d9a40052561fe91511144dba45fc73f6ac61f77cb70a5c1141d196e173f95e31c251021a3c61e5090d56aae0623434c496f1578c8090b1855194024859155141f0f1882dc3e7a2465b860ffbf32b4637a0a0831160c1c8c867a9088a2635820e691de29fcf48010a3538831423239fdd7aa0f9d8f206d9d1b7aff7f8badbed03ad902741fe0a74d55ac19f2fa4914a49e2874ff429343e543a65faf69b9923ae32f9f5205f4d5fb70a0d90123ba6d2a8f6ca55a6f2ed75abf0ed44d0b9b71306287c10850fb2843132f289febc72df3eaf33823830c10c8e9081107ca424f1c3e7f9141a1f282589f6913ec5003ecf6337c5003e4454f8f09ca8016fa7fd75f9f6e84454f8203d52a29eb7d32e2911153e447f94c8df4e7ba441eaae56cfeb76593128e1c5952d38e106521063c6096e7d5429f84208308081165e7600069ff5815e837cfb6e3eb89191cf732a9deaf1edb07bddbe9da3df1d4550c50da9781076d199ad18ad1823ccd9f87755822d3f1d1dfe087199872e694ea322840f7687f17c5748f4f52c3e7ed39ff427fd59fe7ccae74ffa7b2f935a60ec56ceb44b67e938d0f9fb716011a4c78ee58c1d3fec76f545e5fef983ffde7b3e35201cbb9c611f823df3eff6d36f5f371fc9a467196f3f98670eddea34df15b279f46ceb545f336b0bb27c3debb2df5509ae78b83f626fd7ae75965f1d7ffb76d3b56efa45847dbda727adebd3b3ed6ae6ebd9d366d79bf376fb5b17343d28f376accbdee5590f9a6799f3ae1014d56f5e3d608634ca3c94ed82e509267ea33573cc7b5e96456d767d39cca436bbf6dd8818d1682de22fcf3cdb8dc8d2ea711b8239e6cfdb4f4683b021982fc57cb722f32f1a34bdbd4e23edd3af6ebf5b55c63009d9ae10e9eb31931d0e8d8a3e840fd2a8e8bbd59c8ffe760342d3729a07f3e83bac10df1fd3a3fbe814d7a8797974acdbde99aed33c13e7238fa977a6475f28bee2f0d17156087fccae2ea751d3dfefaa0441e0327206faf4e7bfab124cf9136fd3712c7fdf8f6351212ef396efaa0458fc76918319bca9e38be6346a5a5ddc1febbb41d9f1bf2bd923f268effad8ed48bfaef24b1e29984ba1e2f9e5eb597675bbeace5a7bdad56d18a3b8f100b723ef9f63ddfa7416b7fff902544dfc3c1264c730a0e7a7bfcd4897def28c548b8e58eb4d013ddadb14d0f3d37b23d2e4858adef2dd8a685547f6b4de16a08ae2a7674f83db109595174af2d3b36612a91659591f99a5c9cd9a1a36af6e7db24bc3baf5b9baf5e9ad48bba4959bf7916ad1effea8bb3ac1132f1debb8ab7323232323239f22d01f7d9b5011528e30c2e89f6ca3a44b5a5f6f47a0bf0f7a1e7d3705ec5b9488d30f9d5ed2dd1ff539bf17c40e3b1c23f503dfbebfdb4f7b4f17b54a762433c9f4e03a9daa409ebdea3cbbb562823bf540b262c50496a329b6fbc13280db9509b27836fae759697d752a1b7d7bc6c3da760ee082d8888fdebf5c8851e6f9d97b33c2462f7dbb28b008f7ebcf778554e83845b08754a8f4eb4bc607f948eba3d07bcb7cd6da760de0d8f9a958e74dc885b87f34878d7e77a822b70db20a705906845b37d1643e7090cb56ce688d82be26574003c440390674e873eee3d9dea9dc577fe9d9ee70d14f3d9daa53019daa5c924e49dfa153f0a5ff70c54bbf40a7decbb75e5ee6f072bf78e9d07b9a8ad14b29a594be3a9206ed9836232b6239f40c76adc1ce826ef5349c97f734ecf8a74bbfbcaa2e3933ab8bc20fbb28fc96670c3bcbb36edf1f30c8eac1f20cba500ecc367b1aecaccead9eb4c29f2eddea5e435aa7b35bdef366b72f44f4ed6fb5d573d2d915366a7a6f43f837871d9cb40ef50b311abfdbcfe656572d8fc23d136864c4d7e942161a4694f928f3a7c3ae6afe3c76419847cf324827842e34a51c61c43f8922fff228d64351fd45e1f329648d79cde163ded3b31ff3ad137a8f519c22bcfae870fb89fe3ae83d0ff3d845e97f9e75f3fab886f047c73a68d1ca6ff9d555beba2ab5ebbafca2d37b9e94ef2b14d5b343d7e810e81f69b56810a442445fdfb317e1bebda7b30e96d6f470a0b343ef0e077abbe519ecd833de14d063393becb621ed96c322ed96e52cc4659e0c69bb1519a248929f3ed783a05b9ecdaec287fe2efa4468c71819fd508d9ffede90f6f3c81058f744e800dffb03fa907ccc6b3ff4ab7b82f990fce9bb1941f297f7f4ec8474fce558277480e7fd7175425ce62f9f5de58717ddf5017b1b121d3a6f3f9256d54b87dd9c1dbbd5edafc7ae6e3ff0c9cb58f34206cef88b9ec56e9f378e43568b4f562a9279e69986f96a8e697e398675a646ad5f1dd7adb367591785bff267ce5d14fe2ccb3cebe56d4862dad3591724fde23a95b9e5ebbc6525fe6cb79f95335ca3300ff29af3f6c3b4e7f53477953f48fae52b84dfea7c7fac739d0af2eb59c7356ae75b46a45fb4847974e89af3f600ce317a6ad4ba464ddba895ce9e65bb5db4aafe72ade34eeb2ae617462b7ccc33e7ee75e5d7bc2e404584dff5a1d18af9c3ba7dacdbe7eb794fb7107ccb7bbaa733d9d5e8ecb3c3612ac46fd11c2d46466fc38fb7ba9c46f14795c5110b19849d03b820e83dbefe6e090216bb426a908faa5804fb98c5e815d25af4d0ebd5c352e123bd327dbbe9b193001032b428e3b30ebb4af43088c996f1964baf451f7d57875d2075bba841981fe2b768932de3855e99322fe91511142d18473e931a2d184795e823add0ebf5cf7b1eec7a7cc6daecd677abc08271e4b33dbe8855b15b0c128ce9274d78e9c7b3238c559632786006349cf009c09626565ab444410a61f82c4785d31ac56efd7621052ecfcf99a0c2b8258b3138485096ada67a37dba87e10c28e7f370b644988e9a6c8180ade16e00204209982a1f734a493aecee34076806d5429e30270bb2d40f51052157302eae9dffa7c0e7daaf64e640a281eb7cedcb6b7c6dc7a6f3ca8beb6072d152afaf5e56aa0c414bf2b25a87c2d3d741b7eb76461c69720cc9863670e6e3ca85ef5ecddcd54c9def613fb69323a73ecb1eb20117ee93d3d3b8533845fbaa4f3d963c7bf3a9006717d447600f6f5ac14c4dd4c0b98e9ee906c9fdbd514343efeaea640f13b936d01b4cf4acc496ffa1c46dff64ee10c697ffea4b3c34ed5e841cfa14b973e3bd5922ea77d4ff7b48a997b906d01b8acb49dda951259fc73c8830a3af4acb403f7bc5da8e8a1103f6b20b34c5ef27d3b35780dee8f0709cd9158821d876f3b1235be6fc706b781e4482cc1be6f27314af9deeb86155a1246d8afa1170bbeed545b5342df8d56c83c3bf6335e764f66c746dfddae9210f3bbf14a892c5eca977e6943269dbbf041684929a5654108df8b7346191f8ce2f98ca50ae79cbe3cf343a3a49be0d4e6f663993a351dfa29675edbcf9c31c68fdb8f6559d69c3146eda18c5d85dce517adf09a741b15a5252b7c18a16469942d0ac63841e689299f6d126eb778a2ca6725e90baf688e75fc373355389c22d031878ed120cc2daf58744ba31be07695832b5ee7779583a35f24dc6e8182302f5d85751562d8b47cdf8ce55de1abdeda7eae465975a8ff22f2254ba7f6314ae44b9646ed57ce9e3f912f586491be4fe4cb149de227f2058b46ed5f57e619ad30c3e824f2258bd911f97245a3887cc1d229d5eff7b63d43e48b148ddaff32c56e46ac3265ca9ce12d4ae40b9646edf734273b0e21835d94f092a11184cba153bdf1f60384abdca9bd8374aabf3d87e6f1f69ee6719f7605748a8715f2be94c33df1eda353da6f14f6cbf39429508b63e4f6236687e6599f309263dc8ef1ed20b1975608104ed21c8228f1c5b7e30077f8f6ede8769146ec0d5b641076cbe54d8d5a1abbb93fdab3ddee46082e7bade7b55f2b64bf3d764c02239ee36255c6f71455aa90e25bcc4680db550ec47cfbaea698f2555be180ccd749808cc83e3b37eaf11b2063297c045777f5eb9b5959211a8e4ac36ffdf1dbe3a3571ca270df5edfafcf0bf375ce6423ea301f4f90b7135df33a33abea600ff2787e783bd1a746ebe4325ab920af43d2aae36b908f1b5cd30a69d8619dd628e857371b05a143efeec910b740e0a3a6fd01bda7e7e3b1b13bd0a3efa676511587875e7bfc88343c8c38b2a7bd2eeb2eca7ccb7f783c6cf476a2cfc971191bc56ae3a5d1477f5b11ff1af4ed195c6e52464dfb43728b928e75daa2a45fdd5c94f4d9c14549b7badd21264e1b32e143daf4ca14f7d9687c5dff051a15fd87f5c256665b58780bae9a624ea786fa1ffca1fe226d6434d4f0d921645e42b69d7af041ca8b8a21f8f6f8dd45e92740e27bd80ebf3d6be943f3797fc4fec83dbc97d0b3a8bd280d258d7461a7e06b55e4de41f48ce7f2f5f7b61fb8429e2fdc2b976752bb3ad83b742d6b6b00ec013ce6ae4cf6c9989b8d8a8dba3aad7762a67ab432d73115ee799d44b445597eea54856fd153a3a25722fab86bfbe949e76684cb942953e62df8bb5914a708fb73a6b051d11f8dd29fc324e0eae9a301a6b8cff4e8a7c97dd41a159d47c03d7f0d71906dc74b70eb59f75b08777f2cbff748db44b63cb839c4ad9632647ebaef98bf6477fdc8b7f1a07a9be799e7eb99d97785c4679741b439ab70d3afe972e341f5d333a849ce6185f45b960b4180e5996fc7726bc3bcb565bc199c16272fdef2ba498841706894e5bdfd5cd48714aeceeae32d9f97cfc971d77ccbe546c4797ab63ba3354a7acde12d67cf6185bcb77c874e3db72c29e1ea583468c744197cf9c70033def2fee29f675ab278cb5b7ae6d16bf42745b887d2fe60e65daad187f81f65b7baacb33a9c22cf2d7f34286bb75c6e45326fb7a250e9a1f81e79143adc8e58de1146e16f879e95a6679bf9e516e6703b223da351de91e8fc7c4bfbbb4d8a53c4f2e7160d921406b50ff1c721428f0af1379d18c31564ab5379f5704ee7f7b474cae2027f3e9f6f4ee7b715e138b54861bf94ced2d9a222b5ed54171ee3172e677233f25c46286211c69819a3cf9b91e79625a547e9118d151a53647b8129def209c55bcfa316543eba9ca93133e33a3934db105ebd45abc69379851f7d69cd3a2954d4e81d145d7ac66d46584adf8a4497bedb155dc68b465a2defef79da4927c80e0af021099322a41c418185afe854ff66367ad3566668d7bca16da782a4c76b7a074db7bc9ea4376f46580bcb729e5ca3d8ea3623cf2585f0f17624f1caea2d0b9d1919fda4bba80a8f106dfce745a09151947e02847de8f44c2b147a65d068a367fac4f2a1095d16816f15118191e85ba850f9e7aaef8d88ca9fd4ba5ff34292d07b4bd2657f5b0f91c2c9afb2b8cf90ad43ab5ba859decf1dc76c761805f09b61f9e39be9fc16532ecf3d8d627f0ebbaa82734e27b23f5df5ecd3926c75cf65a77a8eafcbb3cbede7d12f9e7dbdf84b7e5d64ab532fa387bef3577b7e5e82939e31c34649efe6f7204988cb3c4e91c8fe9e69257af68eb71fcb33e668324b769696a7d57496168b8bb56ad429c7c95738f0a28512be7ce9570b31a2f0d942600a2eb2581427b994f1cf39c3343e62293ca5797438743e6228580a9e829fe02a6c85b13c746d1bd26fe39986726ee74b879db298391ae7edc7e41a58216fc3a103b1a9b7281b0e3d09ebb00bc486435f1da71aaef436bccec77c97c7da1d1b8e0579deac6ea68a74de245d8eaf8d07d510bff11a5dade1d2337ece21c73173a451f839dfb6219ccfecc686a7f8f1c029389cd364c7531a0569b49a8ea7304b99c2953c3a94e2a11459201670d5a99243c752e1140fdd7a5ee1150f7d2bcce2a1cf28c1d51dc346071b653977b35196732e69e51adb90fe1bba8db27084f82d8f025fba50a97d3bf25cd228fc16ad9cb3c76d087b10e7d36b6c448224c72f6297e6c9e1da8d0d76d9c1a31ea351d07574eda577a0674fbb40a7385aa5730e9d66231264e3439495e0ea8ef1d06d3a78d4db9020ce250d1ae287541a053d336956c70fabc8d3cb1baffed2865754950b568158dec906ad28ce2d48e2299dbae1d0339b68c1671349d6a96b2e8d829ea3eb2f7a0762f9cd6b8761286c745ca5e327a690488e036e43e25b94a524c1b1db703845f348a1e2463a740845a79ed4383c397468054ad1291c870eb174cac6613cc3a6bbe1a70efe4d772587cbeeca14f7c9e1abaff18c87dcdf50d955eda56756169db24911f13fd578852fe74b7f36b49ea856f3b609a3dc380ed9556bf5d05a7de1a58c31161a539eb03205165aba7c1133cfe8548e4e0a15f2e6c621174d4c79e9393db0dfd04a7bb0b0a8269959da8d8edbedc67bbab71f1bbfd1f5671207dd055273dc46d1e7e4f88d1ef86b3aa122a3b73c839b117649ab7f8ee7b84ddc8c5858340abaa415360afa0db5b26814749b6e3f6e8b0457ad2b1e3af4dd6cfc6d46d873688dc27fa3e3df42058a26aa60920bcbb34cbbd1edcfad0867b90db734c6b4de70a84d4764dfc66fbafdaca35623c7c78d888e975448c74bb7e9f89b44437ab81129955efa0dd7d888702fc46386f80b711829fdc6b38cb7a76bf4a379b2b3fca6ab5ce66fdcda88709997d26d78b60d91ce6eda8cf0dfe8f86f3a03bcb51139c04b2a74809736fbb821c98642e98f225f7a8d0defe92c3ac50f9ddfbaa253361cba8545a7d8a15b59746a6d74346eea20148db2d228e8335de59ff16c462363336666c548df15c21467c6e1c797cecb93e4ed40976e05a1a1b00a4be1ea86a9706e472e2ea0f8e7ecbcf5f084f86bd4f09eb73fd3ed7375bf78e8a4aec28da53c74adabda5758a59eb0ee89f575c3d49cafb0ca439f49a2b3d729bd72d68679e83f74ea39741f2ea0d33cd013c0c36a0a2c4e1f73be9ebee63c645ae747afdce7742ad2ca539e1dba11b58d9efd32ba698f2263eea8517037a610c6c85d3bec58c8fae60ef3dc653cc7b8fd70116f41e89635f721fb6eb221540103811e9d3b0819aa8081b04709692da29d3b58a513b260d711baecdf4e9b1cabaccc56a7c2a3879ef1122d8575d8325466e277c9d4fe6a8087feb0407d7d55827c7d55eaebf2d05f9576e8cfcbe381bd03fd74e2b82a33ccc30ac59cde189d470665f441bec2290f8fe0b6915821bd2d60bf0ec1df588b9b47cfc9f1de7e723ce36d4bf2b68ec6779bd1b74ef53431d653fbec5ea7994c9af734971b94c1e5b5777fcee521c0ed961c60f1d9770eab5821c6086ef32c9bd1789bcf37efe98c66fbd968687cce9e369968684c3426addb9f9a6fbef96e26cfb66e3e676ef3b7cd6d9bd3b74ddb369f5d555953db9f6eea367f3fd3b79fccb9ed67f39ce6612ca0cfe6e18c8c8c8cf0810eddd4a91c877eea14c92daf385c5e7d3cc4bcfa57f8d006adaab7e1b3ab715377c369b81b1b936b9d9a3e3b65e3d3b3d769dc366a9a16b0ffda8c7f9dc56ee2a0711cbe9dc2e11556a981eb6e5a8722ad9cd355fe1cafb11dc9fecd6c4474784edc8f737f3aacd2a9e8d3b9ed6796aa3c1a668038003ccb1eb5715357b937cde734269ae73426ef79269b2ee8c68bfe997298bacaf0df741b93dbbc87e3932607b57193f7345401eb40e3f3f9111b5afb6fdc69edc7a9b0cacfe78fde7886e36fbef71e8edff87bef864215d0ca8fe3383e29ce8dd3bc2a3bdef93e9e1dbe8f8787fff0e793d622cfa73f9f34366ed3cd54e14c7ef20aab3c8debe82abf0ee73622eeb3e434feaad8e06387d6f94cbe43f34ca48dc8f32093fbf6681c7a7b313da7d9f1e561f21d26da695c706e6eba7d9cae7ee0a767cb8dd34dcf368bdaa434febacabd8a68bae9991c3e31ddf42a9482a60bb2f1a27f38265a556ff2d7cd93d3387c8275784e5321145f4f269c9e86db91da6fe339dcc64f9ed1b8c9442bacf2271fea9f269f6f721a37996868d0741b37f9a9674c3e63a27508eed659b97a7a93ef9a7cb722363e4ddd848fd34de7ed48fce93736f4c12718c8c9737438bce7e9d041e151a34eded3581e4f7be99cee701d1e4e03ca677e38105a513bee1e048807d90142dd33a891a00a70f8694edf4eddcc49eb10bc9969015787e08cbf83063dc7e1d3ebc9b367e4f98e3bc571dff193b797c7d358de0e7400d08afa412b8a7314ad7e83f3a0f5e43b68e5a8775e02a0e33e68e56ea0fb7668701b683d4d3fbd9d1e5e03adf3b9296f073ae73710fe0e4779ed30bf4367aa7043f13baf43f177f8c971b8b611e93c6807adfcd37978b61dd1bef337658737fce9285a3bcc9fbcc79bf2d01bcb0e87dd741e3876380d8d6587ebd0caeda07528fef493535a270ec7b61f1c2fcaf7fa815d9e7d3b39bc9e7e3ab73c5de5edc0940e9f0e3785e3d3e7a6687cbab629934f7f5b0f38bca34331e37e4daa21f8f7b62211be17c9b679eaa90c1baf2da6cd88de613a75e3d1a10a5807fee8a48e1f1e756a3f7a4eb7bf9dd2e1d161a770684c1e235d0e5639794febe8984ca3a0e3748c46a3a0d3746dd428e8a6aea5340a7a57a9e1d077d23abf86e7e82a0ffd54e5ebc971baaa7a1ce7ed07c7b367f2cc447114b06f7222fb263af302cedfe4aa7f5de5ea3fddd4d5e9271c4ee33dad7a9a6e283e0e0a55c0404edef34e5d749c2e2792793cece5ed408773d6783bf594dddc78c6da4dc7efc58b171b32361eb71b2aa627e13e54d8649636b721d377854cbafb63fa8df3f673f33a7ee69eb397e7737a79d3bd3cf46b1b62721a67ee394db7fbe3b9a9dbfd216d66aa70363efd713636feb61f9b472b13ed4d3ebda6c6fa534dcdf39e3e75b5e8697cb79f77a3dbafe9b65137bca69bbe1bcd8daef27393cfeeb9a9e3290c643a4d57f969bcb79f47d74d4eb36f763dcf4443abea697c764ca551d3df0f0d15b2dee43dfd3a93eff663a2f152c75baea8c25bc933de7ea6eff653721b5de6b3db2775fba64e739a6ef3d8edd7e82af795c93cf499c6f2d0b9aefad757e5a1973a22fb1be97907bbd9a8c7584cc7689ddc73bb534f3f697352a8d82d5430e52d5a4f5f198b87fcb15bd8aa1f1d001d5c336610c2ac0baad29f173d43e930839ef5b348b1e7e559a6b9956534cb2ed7ba20ccda32cbba5cb35cbbb2cc7b7ac330b7b8cd35af25dfae9eb97cdbe845a16fa4adb90cf35ab232df9cb4d1aa6597e5edd8352d5a9f4b2d93a0832e927647cfba75b0d241151d4cf900fc6ec9324677fbd6be45dfb6dea2e5fd7e8bdb10d55bf0ebd2e7727d5bdfe4b6be49ef79b2fd7541f0bd64df3697f2bda38d0abd67ae9bafef16b7edf46246eb506f9a47af4df22d48d2ca59bf924be7e47449a2439797343af43ea3d1b16bd269d2b6b6b05831c5d7f0bbc58a1d8c7936c1ef161d84f9ac343b559fe3b4ef5bbe9ef93a73d3b34c52927357b9670cc318938e415217542f8f5ef4922fc730f812f6bca3fe4885de57e6ceaaf067a657a6f2cd4cb8f42c2b394622612412e63d0fabd24b5dd0e6fbdcbde748b4aa9ee41877153e4b2f615ea2fbb84a12157a4ff29ee6ba5af441ec9bef766473cc7bdabde4b5867343cfe231459257e99c9bbaed1d8eca195af7cb4fe7a2733474a89f4437af35e8503f4649ce71b496e8503f9324e6d037a975b03ba23d46eb35a98916792e990906626a14476acd208b962c507c5682ed43fdcc5d0eb03cea774b0e8cb250f91ebf5baa0836a72c59b264c952636464646464f4ed377470308d21d3463d8557930bd7e5e465b55aad56aba3a3a3a3a3a317264b5bc992254b962c8da5b33416bdba3166cc9831636cac56abd5ca74747474744453234b962c59b264f9f6991a0640b3e22eec250c1fad56abd5eae8e8e8e8e8e8851943a68d7a4a1f7595196eb55aad56a5a3a3a3a323d20bf3c2bc302fcc0bb30149d5e0a35985ad60c99264b55aad56aba3d5d1d1d1d11173e12eec258c986d0cd556abd56a951d1d1d1d1d1d7d3b26009e99242b66c9b0111c3366c547abd56ac555d80a63e12c8c0576ad56abd56af5ed3395031764e6c0ad4e5ce098970485723f9d386e8ae1c69c968c1bf194c99d7cc231161c23e19808c74038e6c13139680c068e00a56f8f56de4e4545af7ecd1cbe7ddfaebc2e17afdba57da395c713bbbc9d768dd65927462b37693d495a3dd2ea9056d43f5a515fa395df3e76a14200d29c1c773ab957d4776fbf543821dbaf673a68dda553367e3dbb48d1173e69943191311e841042ee1632c320dbc74385742aa0cbeec95b5491e8c3f5cf033bcf792b72f5f6c3142a8472f8a0a1f7d151aff2b15c766b75522c4f820aa11c7ee875b263bea1aa5ef5d27bde5b9fee64578b7a3342134991b23ff888208c2f76bc3f221551faa1cb08e9d2d8308a6c75aa75f4ed99849af6ad69dd3ca8de696fcfdedb7e508d6a29df637efcf8794fa3fed12a3dcee8a35393f69be249f1a0d8bcbe27485e1f957f5ef2faa4fcf346a3795e982643db2b9397259b9d0f1d26b8e95507d5a87e615e89d649a295db683d69b4baf48c56549030df64bec22a37fea20f4b2f31c56ff4de975252262fcbbfaee20a14fc8bef39a48f3679597e1bd5d3cb5cb847b751d6d1ef0e1589e518ceed8f757642b4acfdf12c8bc2f7203f0ec6c752c6f8de7b48ab073e760e4dc841fb48f70a19c4e2d9a79867b75e956797cde5d9233b642ccffed87bbbbb77773de3666fee5eb7aac8fa7472d7119bbee70ddfb4de7b4df9bdf71ea4efbdf7da3242865dbbbb6bb58c70777777775dc7fc7e5ebbbbe7dbe1eeeeee7e2c23715b52c82e14b413efbdf776b7bdebf6c7ca084d269a1cb8e1cbe1f7bdf75e905ff6c29bf5e4f71e86f990d68307e17b5a1af27befc517e394c82088624418e9ee0f0c05199301b3fcfaba2557bf1ee1fa2383c9a80fb3ec8f1dbcf7de7befbdf75eef73a207f3681ac0d0813b22959de553c79503c391e56838db0dc9a674e26a666ed4984ba399341bda0dad463b69361a69d3b06b5a32c2d773f69813458abe29cba7b4501fe9bcc690b9eb881c5782d37af0f5b64308e5f7eeeeb64308217c43bc7c77aac7130c6fcafe80fd04c7bed2b3b7373ec246c986103adc88d47ca4fdc0c83a05dbdddddde5d7dbcaaf5b637e5daec775b8feba53d0dddd1709a74885f2dda551ebd695ac7b3705e1ebd5217a95524a19af48bf323ddb3ee2a0d08533bdcd8736f2999eed16f7f15c74caf499de525e995ea55b9ec96e364aca6bdf4e11ffa25b746631c6a0a1fe47a3bcbff281e934df9b0fd0c888371fd8c8c867fa6e3eecca67d27d64801042c9a79343f828f7b0f441d01f7c938777675a2fc58b5a8f10f6a3dd04cfd9a9f50c76b35116097aa410c2267677d7fa47fb096ee620cb98fbe94216980bdc36aa490b82aeaa4cbef71e6f44c068e9c84509c87c017eb9a0d2844cdb324c2302468b962ef2492702868bec8880e922b97c418980e9a275aaeaf8f6e7cfe7dc7e5e4af5dba9e5d171de0227bdddda84b621fd289bc1496a6a543b6f5ca3ba8b16305980c9024c1660be4081d1d23c0e6605e60b305dc07059659105182c1ccc0a8c8e15b26f91b1d2620629dc77a9aaccb220941b1130583a85e50a2260a6b03a2260aea0c259be5bc04cf1bb112102c6a244c05c31a147ee2d2260ac0d6a8163df2b1e1630568e940163058c153059c060012305982c60ae0033051829c0580163050c140f8c1460acbcb845b63ab566cc3fce02075d7ab63c46efbc46c98ec7801adc86b4d350fe52f9e7a49589ccf2d0e5171e030b1c7c5ea0f7f4cd4c154e56f135bcce136c437262c761f6c7f38c1b46a9dddce0748cc515cef276b270d978d5a8d5d4588c0d63793bcf49db15b6f2769e67d7a59dfeb915bbd35b13bbc141c155b854c96cfc73d31833db4fa4a62e5e70fc44a39ecf6c7c74a4692c66d3f80a5628695c054e638edb7e66b4340a0a5c9d592d4d3f520d7ad3d14ce99f9356a4554d98b7f3bcd4a8d2ccaa26cce3317589b4268ca9cbd1cc36e4f43556ca98d1980a35349e02c761384d7b16f3786ec6bc29385d1143bc1d3063fe798d959a2e2bc49491325246ca481929e34c477cd3f194b7f36c363662231b37b4d865afc4d7d08c7ee6a8515120ad6aaeeb023f780922491826389b1062fe797643e332a60f395b039e199615e70e39cc2e013d2b1e1af51cc7a6801b299fa5b042261a2b64ff398f39a3339cae888ae85be356741bbf11bde6e4996bcc9dfc06adf0ad99232efabe69b9e838361e5438ddfa98726c4522d569548ecdb9dc7441decef31c1baa51cf736c46de4fd334e5d87eaccc46632970a62e9dbad19833798c1e8bc8b7e8ee8fc86d0cc359dba8da643e7a45bd89c3ac10f8cf6574cae4cf590c9bd1a9e9cfe10a8e592136fe329f93e332afa7e77c33af9ecabca29eebf233bedb101b1f698d952870dba81b1e777fdc308dd199bc34ca444d5d4c5d3486028739cef653e31c6685e4fc1bc36158cce3c1f167eab23d5397cdf7f198babc9de79bdf74f3ed3cdfedcabe9de73dfddcd4e5f15061e3cf4d5e3a75c39f9bbe74eae4cf4d611ecfcd8d8e3f470c016f45e28dcee6b3a7dde84e5f8313b51bdd8db751aa42379db53b96e3307d36b51b1dcd679776a3abf119a6dde8669efb4cd36e74a5cf48a4cf48da8d6efbaca4dde8b4cf38ed46977d36a3dde8b0cf68b49b6e7d6e74d76734da8d6e5a9fd9d06e74f2b31bda8d2e7e56a3dde8e06727ed46f73eb3d16e74fdd90d363837a41b6e7de046274d2e4db482c0a6eb45596eb315816fc3b39b854d32dde86eba88f787e536db8f0dcfa05693f337dd8c96de797eb3fd9ce8ccaa51cf67709a374292c96bbafd1b1dceaf8d68519ceef4769edbd87e26dd8dc170cbe1c8a1c5ae73b00e2d76399ff9ae55ad3775d99de7357c97e7c62fdf4d459f593d9e1b4a5af5cef3475aadbe70ec190d5dcd0d1b9d89a6eba2c34e4d13ddedc7a2e9f6e113feca612a8ff9e75c57a1967f5e22adfe39696645e69f6b5d3591f16f8cafa62ed5f4e59f5753979ff6b819998d1a83bdf017d8a94921cb2c46d84a172cf3778b14a7481399e56bc6d4f40e26a484b2e34541192184d28256c7fb0346296374d94060e680b00db106b963a12637a107766910c5edae36fd840ac2e998a951038769bb2c171c3d4d4079901c4e3574e498711df00925dae9f8e0fcc44f78efedf0eb42693a281596f5b265bde4e8441b50fbde7b2fcb9cc0b13fed7a3fe1f0226c420e3be01004c5fd68200ac8a1093914c0049c59a9c2476f671f90afefbdb70400fc8fd389e3d699d6e746747c50651febbc3f6c8835c81d4b8c23d414a3077679e181694c060d99ced7dd5d8d3b5999be63d3580ba74527a751d3a227c7c2a19ec3e79757089f437f1e04af0e36aa2b693c06744e6325e89899536a6091830604518c5803878926c78463437befbd77a346e32544104431e2e9c606e7066777352e71f58b43d3a2183438b41a3a72ccb88e2a9c6bcf797f30a1443bf82eafefbd775579129dc24ce0d86b3cda76680c8665d5f9a8a6a3f11268e0715d3d50d7b5e39ca6699aa6699ab4818815b6eaa286255c57b441e3254410443122843e345ec25a614dcb01bb3c18608cc1b147d45b2e75fc734cd3eb75f9e5ec4157cfb398a05e844f099a0621fc81906611aff8754d8b5092708ac809c42cbf1eb1fc03c00f2000080282284604a2bdf7820001c00f1f36d4b083eac183069d1db4731d397004d9a10cd9e27cdddd7d37bb6d33e1096a5bf3757757c61b96b4f1de9abeeeee4e8dc1e0b7faf5ecd21eb03e0f8bb7b3ded38c049a4bca1a1936a3651ab462e5b94de34aa48d9b12cbc37222913459a5ca6f12365845e35ef6f5bdf766b4c5beeeeed6b868b4375f66d21e8cd6af363b551dfafa73f6200806f734de1febf26b3e20b990371e7cd1eb7bef452b1e6b34eec2b1bf855e77778f7efd4108213c65efc606e7945383e3468ef9782c6f1b3a4c4ed3d5a0333b389d120d241e5b0f0d95ed60355c364c1fd60f09800804067937740004704382be6f87c3e0e09f706efabb7d6c8e169dc3e0f8eb7c9c22f09ff73f5a811ed275303876f86257b95fd8d5f937368d73c39be568bb2dad445d7eb3fc734602c7fe98bc2cbf8eb3fdacb316aee9ebe0ebe673ce72706e6c4e35376c98686acc7025d2a665d8352d19e16bde1c12b7b325db4d41f85a876efea027fc4266a7b2d26e6abdb6c3ef0f6a6f5adb3b1f1c7fd3d94646abefc79d46f638c8714f43de5f91a7c723a90f1f0ff90baefaf87e3cb2eb77048ea111b8ba5f3c0f9daa7b04232b649f737a873d6e3f8f9ebce0b41d9e7d72696e55bd03f3b011fb763e82e090a9b0ac972debe59f2f6c2256d8aa0b6cf5cff9bd0f7491597e9db9582632cb3b6be1aa8f67afa77fceddee831d87489fc4870e2993b7c58b31e8366ab78b2441a7d6df7b1da3bf17a1f6ba99c3f0f66b66e676e6addfa33846fed121fe5e31d1c9c1c20b65e8408c2f27fe399c568ece43bfe44a3bad781006c93d9a63caf1d51526e06123232323247c9e6bcdb33ecf4d9d823cab03e90a9ab0ee74f3abc50ebcf0f277e5c594af26bf1acac089962084318223231c6481c51463a5e16c91022a7cc10b0eccb89203ec4a81184a90b8488219208410729ca9e6978b3088f034bf5c2441cc576ef6e0e62beacbe4c08cd50a9eb082177cd1aa34b1650b13b6e003246aba60940614be408229946153322289218cf185208c410aa0ad42192e300186195ad0041931982723566c61852a541153c505a55f2e9460c4c35f2e9450e58a474b5a51e6e19440075654c10531c0410fac40026705185ab3802838b1658a1198710422c8282e6082162464e942145fd4a007172be862c78d4d021558c620410bac488117cb850faec000092b3001136058d1024dcb15baccd828410c9ea045155b5c49e30811729ce9c6efca0a295f3929a508608821ed200ca501fcae76b0fa1dbf5caca00bd4b3c3e79e7dd927fb693720644cb853a3d84f379ab0c208a898c10a246cc1c7341f8fea8a323441cb1434c68411069ff5dd00271fc718638cac0557a1ece6ce2f175e7cf9fee5c2084e7c855c0db2183ba19f752984046bc0477f1dd308bdb2ec88f037aa28fe6d14fe5128aa7ffea8021ad5acfa0434aabd9404aebdae966fbfc119cff0f9c2477186ac7f4fefa2d66317bbfd6cd747ac3fbc9e411ab4fef615215b1edcae3edb1d6ebbb84119289a2e6ed06c04d7ce7013d0a977844f5d2ea646b113ae700505553cb1040ec0f8ecacf1524a8b064e206305093265baf8487aa25ca358e7dfd71c7098410bc400450c840003323e95fba745129870c59632c4e08a18f8ece3712a44410331541063822d7cb6caa953dc3f7716fcf3f978381e2c21082b29539820069f5dcddf4ecde7e6771185a319e409f97220010b4f500205475d84d9c1d10b76945454dc400657aa08430f6460031f28fd514e762793f4ca99f6edc088528c333a3f1e0e9ef1707b08218410728d628ee34cdbaf962c5cf095835ac8ea7a61a3d5e3f2ebcb3a6048fc7a0372783cd0677d0dc02487f9be480d29bc7082490e63747103297ebbb0819500fc7681850bcf53a8f867adf198b77c42ed75d2af2e12990ff90a8efdeab8e565c4523ab590d6a1975d1d9112381c0e83c3657cbff4ba68bce58db2780a532989c145b7ea7c31cf53de72a24e5d6e391b49f1b1aecb79fbb9e872de3d5a87f8c7b52f7c9d656a94d6284b0c6e7a9d6f5996ff70814e41b73c09ebc0fc9633198208ae7fbbc062c6433fbdc565b06b96d71d56be63fcca1c12d03cd367b79cc0cacffc6e39cac14a0758c8a04b3a3bae510cbd4e22d1d43b3c3459e4800aab2e53a488f1a9a77f5c8841836bcb1329f847fae7a8c7037d9e07e11e8f019eb08230b468e2085e90e1f3686592c33fcec2ed5713cff4615f93e9d43bec5c05b72f805f2d4198f233bf2b1d78f96a7a4d28fd76e10589968d8512f4756bfb617e653c289b27778cb1351863f482352d0bc3ac69f9e218c3b2e69cd3b2ae3931ec9a976559d69cd31a018431769bcd3c9c1a47865e7007e1e6cc6954f4a1cdbce6a793c699622c0321b4bcea98208411426959324a08218c313a9441b63cb8e8cbd2e5ee9bb940a3a6579d977eb9e9d4a9e8323a8c5107e56377e972eff9ecd6b22c6b3f6ecc79392debbaa6354d2f99eb94e5193b079157c85667b6a5592c9d0631c569cb2f8f7e5153a32677ccf3baae6b4e2ccbb00b9b73ceebba260d72b983e666292dd4b3945246eed81db9de89969cd39216e43e76c3ee96318af9f235fcaeb26439238b952ace786b83efbd39e6f53216205708219bf1cc0c9fef7b1032f36ec7d8af9737099625e56a814f0c583e83ddcfebebf2e519211a85798550335dd7c58f75dd0d61774308df9bdd3de17cb28bdde428864bc6fd4bcad9a898c3cdec437f754a79f19cd725a5b4649731775dd6b46454410cd370938f3733c827a5554ddf2ba594b223ec1804f9e4f3dde816bda755b25bb8c3fb7b4fc618a3cba8c48957aa53450d828e29433334234d4002b3154030381c148dc643822869ba0314800f91ae504e9c0d83499005218aa220a40c22c01000080043008c6ab609820f066add6b28cdba8be815ccd6ef959445d8275b5675c6028a89310e3187c708fec4e9fcf41329bee07292d3cdaadde2d9374cc5dcf7a38c7d7866582d164be8a3ccaceb16933e07dcf0c0f05b25b3e402071cb4a9c865cc7288332ab02f3ded698b52a29f4cf0d5426bb72e9116dacd56db726d3ef9e03a72af78f332d53b06f467e2b10d833e47f46a46ba125c7294bc65d43b366826e8fd93419471641a8375920710811a40bb2547cc717496a9fe31a06c7ac640308cabac71fbaa2c697945c692243651ba1f3cafc62cfac7c005fc755b2bf24b9d0b9c8443b922c20a61cfbf3e3a951dbbd99457c7f4d9ba16ac063087f2f9803e95d49845ccbb52a720c9d48379af070bf409ae4e6699ea1b073437c185ba977c82f8950ca72b424916ae4e0281577f682c1a4e9321fc6280650385d4cbed5b909123197496617bb621f428ee7d37e923877f5142edde47cd244f624f161fc9d1a24ffdc256d0da0cb9c1a30381967e9c78f289d34243d400b95972ccae37df9a6033c82a486b0ed8b3e29c8727b971a6218c10bfee18403799c643e8e15a403e607f0a4a663020a1ff38a170c4ee856056525abf4c0d68df71474607613e5f7bf551208a3a0cd6cf98ca670b2d9d3ecf01a749ac18c18adbc4efc458d7f9d3555bb3566934600805ebf344da292a09de69e4e5f0056219eb1d071aa66e1c84068eeb2c41064f8edca07b050e5cdc39aee4aed6656c6e955b19828058f46572c5cf70188ce5efa809c2a9bc777715f6d1fd0fad03f0591d1a433e169e989266ba71548033ea9c2442c9948c5de82c8c460001cd1319c19ffb33124e104a67989f3131c4c2995928a2e4da23e38413bff541292596b924fb169c4368d4aaebf2812af053329162a13196dd00cfa9f3400fdaee9d48d6c3877625a8a74b8ca58ac4597816ff248ac3586d47cd07152f8ab695a1724cc3d3ef605b08a5fd00fca21ec823a0cfbb38cfd93228fac2e02af2d3dd760c08f5d628c5873c26b43b49ca192e8e7387239f43d633ea8a23f3baa2a46e6c01fffca4923f54e33c63782fd79b57ba7c69d6df8ee34c276c9215d881e811b40109262b81b57efa011f31e80ac18627913beef70daf0998e85351b9b6c2d26026a04df52b25d516a1c390c8ddaf99d19102a0782823b5fa3413f8169309ee79d425a71d63f1599027b5868b7f17c3e6286eaeaac60148ca4e27831a08dbddd3d7a4a811b91d4c0b4fb9a0a07a5e9ab2a2bfa623a26ea107cc8eaca6893b32232ba8189fc19501d4103a3d9a31e187965c20cf7624c71742c221a02dc82beedfd015f5cc5d4c22f8887a944cca0ead74ae680aad7eb53975b193c74e011e2e56508fb6092587225f9c9d8e669c163988a38b30b8ca32e7f99450b642196071ab88a03cbd05395c213e6c214cc2011c2a02b7dfe580488995cbb7514a21e66ce54f1f601874225c5bbd778ca0654c2a42e30f89314880ad841694fd0e98d69c66a1ad5542b05fa265cf16dfa318bf20e653f9e776e68fd7f46f9ff7d13fb7b138c4d9e1d63004212d235f4fa6d71cf47884f48eeacac798d31cbd298f471241e191a90ec727d0ef5ec34657df515d7323cc2bd6742004bacfc9b9dafd08a0bbf46af3d27f4ffe6568267859233f51e7cebd567f4072dcb8219239cd975e4430ee8704c509830ef51c541a87a0f21b25fd080a2d3ef6d2f187aeaa382b05a398162da094f99d169ed00b832c2a9c3221b4fccaf993972bcb4ad3f791822f868a2f9bea16659017c01dde70e53e63156390b7c96345c01bf0190b1468784275593db2ca286f4f27a4380b51278502a33727768873b8714b28a5a205828e6a8e81ba474b224e6a7fe99349bf39635e6dd765b2d43f9047380755b0f42f1e38eb5bbd171a706716534890796165ed6f15927b3c9fd42866e8e9547d52cb94fe5d2be17e49a4577429a38387f6fb90414b6943942cfffaf3f5160e37d111c55303f2b6c5206b72b2b4fe9d9e996d1ce75b9ec8835e56cda0a06c80d0e0df0486e535b32c6d2cf541398b511b87eea58cd2bec28045592e0d128f53b920316992d6d11ede5d219068348beeecf9638444c30e4653dd217e621a71b74c14217cf7d8a8ac9bdecfc1364b0241674e93fe628b62f478b9ac6604e8991b93540511bcd2cb800da0661acc9f07154cc8ac62fa5224cdad5f443558682886f4f4c672ad29736de832ca1f672dc3b4cd471133b9d316ad7f76fa093d5f35ee263825139345063d6ef1b233f8f86337a9e89fc32c4ce24fe844627560a3463c40f284de989ec6ddc8dcb507cccf5549846fe6db98d06c84946cbf9a12f49d14a050b4ff88af29a72fdd730fc795efeef169ddfc6c1d664f20d86d5ee71d946c9771680dbe230241ed71c888befb370e68926454941218994ec2bed35ea670c8f6f3f6f402baf79030715b51073b0ad0f84e315ac9bacbc6d23d248b0a192c1f47f1a92fe9724a13f0ed9427f1b9d20255ee203f7afc2fec3160e655ac8a4a494970b60d1efdb3239f4077026ffec798be36ca2d5493ca20a4b518cc3b7007e849fe6c23468ab312055e4ace0a75e4e0f29bb268d2da42723296c56bc48e58001ce177221403f923da65bf0a862b553c7e6258236a1e1d51e2484ae68ff411a26a45239f49c750b91ce3e98c3c9751467318b29b01cffd8c48dc34a7354dfc5ec89d18b089c6fee4be38372882081b70f6b1325ca646c010b6cf0e307f7431dbfdb867ffa3f689879e0bcb523f74d44c01f1a42e03c06aa147d95b62a4b2096311d05e63319d4bb6bc126153807ba11d69adcad6e132df9343a36fe8bdc644dc12b6c008a1e740733daeaee7dcfc4ce2dbe250f52a02ba1d05c1401573d8ae9a0516d58267fc681301613340dc2c4e8acbad3b8d6a9f12ed92e1d93b5e04e9cc4ba0450d512f3fb4d558427599fe3f41d7005c4946cf6210a0949fd9b6ffe01a4c7dad4a15b4b99cb21230b0fab502af39792500eaef5eda1712119c7bf5b80f47d75fa0048628a79d64bdb10b8cee4d1fb67d2aa35fed7fc699405498c563d5ff695ef6f0afb1b870f7d2ced0894d1a2c2a5a66e529f49e0aa4161caae69cd55500cd320230f348e2bb53c175a6570534630464e621c5e2a2cef4c8a4ee47f28946256778c7e4843b4edef0fce40f6fa33ce0de9407874bdf8f3965df647be07706a4e59b4edb104c001eaeb481fb9115c15123a4e085fa30b841c21bdc47ac0f1eb5a1083794c3844b22a91fa8f652f40150157ae76744bcda58788e9a209400dbb9c5511c1c9aee9285a6c7673df7c33121c5aa06bd18021351080211592102dc23c33f24c3f2eefe10828a3ae6f565f6f983f1fae6274c6a59c5df295289308adae83927a66623c8b4985bdf9ecaeb2ec693c7a6ec9efaeb5c7bc8a6890b3ad164489709fdbd9b12e1c40005a112a983785ee5b2bf83c09ea4e902c96c8e308a9a966665381f135202f8683125a84b04951055be4b8b818438445eb7a20e8215302bd198c69fc6668481187aed83ee496fa7f662f19368a9728d8191a6e1c437df07691c0a3a4298e8ea7e625a754fcb9031a3ab5cb0c4f76f74797b292aabdc0e2c797f9ea5515ad8c2b42ea3dc8fe1c258d1d15292fd9ad7a12d62181d8796f8f2fd3995603fba961dce3069dfd6e621128e050ec15a3cb401a7b7ca16fa632bfc5b59d243c874a7a491792013410a596de384c30fa599511a8f94c8a450ab1b0542a0f3701811cdaa1365cb1939634b34ab09f4aeb46285a4aea091f7dc03dd07bc2579012e0ad743b8211d2435aee5e7277317cdd4f5fdd1f18d3f31259b5dc4135eedd895e924e910e622cfd7afcac13b03d9ba40319ba453c9d5296fe62b99b187b730acb7481b15b32bb241c73e65b420bccc95606cc32cb9a11384ec589218a16145d97f6d13b61e18b670633945d258ab6134cd006ae598cb2e445135a2dde37e8fdccd93d39fc9c09fad3a36bc36445efab63dd65f481f0858328c3fd602f30ec43ad1e386746d3b6edeb3e2c87bd5d1841b4e07b4453f6992ba6422dc885eeb8dd90c6442086298f26bc8b4ed290b80dffa53ae2054c33552b6b7cb6a5f82a4378939f524948ef9b2f5c9bce724dd88a50d70de61438d3e65081d210fd24b1ae92e03381c338e5ff5d2a9bf839beef034f0fc0a41519cdcc8900295fde4471a94752cb998e619bab7737c8172f5598c941ab8129d38979c88e06f6e851f0ad438d8572c5475434513fdcdd99f8e0849f472d51aa20259ecd64a45125d4b37781456152dea2c174d760981c470587e76a0be59063e405ed73b6722ec9961c7a6266bf125641b8f96e35157834e593a5e4e457f50efbaea4c767079e883080694e2f79432867558caee3ae685b14c011bf2f59f9d43d0cb1ef0c4245ef26c8b90fd69a9c78094398283e9fd220bf8a16d76b96466a63a9d4d3f92ddf0601dc24f775078331fc3669d64adf6849b6a253be66563365e4b5ae2612a9a5c77ea24e51aec80f0da1ccaee81aa820921376ed90871ea1bd80ac69232bf461b4800b8a0c42f1445e9c06e613242647456fdc3cd2141283ad6624e9da6739b3febb6a26a5b7284c3c7bc5a84c73ac12a7045eedf91c608783236845c6d68bc510c2e986871fc9fd21a3a579d759b39b1d002030fd6ab799a3e5955dc6c5291767a4900d18709b98e9a569712ea4a2e69143b7725041c0e0157a16ad269edd06a406176c19068d8201900387bb4bd8c89b152bfa3d47eaf8374f1a46a36f650705453e46e4a32c20e04e7fc090a4fcc8d3823acb539f943cf4dead779b25cdb8e16a2be4929bf18c6393219c952090dba2d6c35b87149312a54d9949e0cbd023e105d57683aabb62337351a70f572e3cca716fbb40fe7b05876332ce8236b30a49ff073c21524f05adb89e42a7a1fc471de3a0ef6aa80e94a0e58958c0dfab688361b43aa3490413d4cbe2cd874495811ecf0b8c3acc345a714d51f92a73fc8507babd77eb80dc1fb9b4d840a950feb6e6a61796dc666090eac2bcf771b3e4ed25b7e88ce254aca73813c60920589cb74b91722e0ed7170c0b28b27c505c4b4f8f2f52c5858fcd5dbd4e6b3f61543076edfcb3c72e2a7f1fd05c853acb16a3b83485f8cde6cb36415001446a6546480731ae6ca314526c0804c6276b0ec842965636854f4344e80d2207bcbce18a00142020057a27057258bfc5170cc5f094a15968531098f232e1d9a90ea2c6453bda88b91218e2abd10722c1350ca188624197041877106dcd46bc86ae305b995943e931006483a1e02a204585cc6746a480ca2d2e5b2950952e4264276cd24a02c618bb9b53e2bf6c7ac5327bd03fc6186e4712313cce77db5df66c821730555591339e12ca949ea0a3b88a16b6cc534d3f913323a07dd2b87a47695e6b56d1675d78561d99913a951bd5da9b6ae54a532cc2f8cc3e59de18f4684b907d00f23606789ad30014c1bcf13022726c9cc8f902a73758795214a973c23e956df5009eaa339d580e691902ce0a522f92b8721bc093f5514a071413f4faa5da03f42b6edde89b68891a646f9634f2f92040b0e51d01995b78273925683ced5bb47051437b03f6a224eb8c644deb42a50924545de7ca06e7ec980432ae0b9f5edcad6fd7948477f0389af4890a67fddaa7d1bf4cba3f5ad2063e4047491852c60ee626cfb6eb0ab206b1db520023cbabbc2c902d9016c574e6fdf340a22bc0152c43e4d17c974dfaacbc6ea7427ba24a2c80953b1ff77b260c1648c6bd06491f0afec7ee945c6f6bfceb8af2aff7fc5ad5c2f696bdfb7955435777b1eaf5a32fae51d0e60bbc89123fb5a7ddb6ea825331b27aa83f7025a26751c21deb585beeee49d369afc141fbaaa4e3539430473aef7f555a2b18c7d4090d9b4373e73a1f6d3a867c35679f6e129ad0453ee71e25381f937b53d8c43cf5afd77dfe05e80e87805b2042a2ac04f518997cdc54412af888dc274e16b27d3c3eec54e0e7591e38550f8efeda758103a994ff3eda27ee57c8c27d26549e55c64b1a243ae44f6a94f5e0773a4c46c8971d0b8ee0449795cab0eb4f2274b145f3ce3cecd8a0e99dc4672743a1b324c744d3e67ea67b3717a4082b665f47e70a91ebdc14b46ff031ef39f8b1ee705488ca3acd1e3ab7c863c33d16b53864f539265a4eae865b312c0cbebde885e0602bc2bb0f3c1a4a35c023d4c1953af230db47c528052c70653ba01aff0e66ee6e478698157181bf0726016e9e3a039b0541f1aa5b734259f333e8109feffb2f3873f3d091b3c0d2bbb89df7e0ac886e0024ba40a063640bf6247025d83f708728a6259eb4577f9f9e838dac3b3817de87865d58fde73fd73a144851ec7977fcdf3e8c58f2d4ae00ca4fd0ff4e7880f6e48b1a70afe7aa21708f805d07b5fceffcd9f5bccedaa3b7081495b00a0bb5b48677b20430bf5982cd780a11313716bbf69a9db63f560dc97cfe60dace7794373cf75c9d1e46d7d87216b1ce28a53fb850a9b527663e3587290c2f63c1331798d697712ce04c04020ba94e78fec53e03315438b1c364725cae7c5def7d26c23092c8799695b14c584b42b8a0e8045aabebe4c5f5d375f0b51dfeb7f69968e345bc126a03ed056bc23e419f70192a1084ff74a55191e6ebeb40a5393adfb734a350fd54c21e3ddd95cab096973f091c4b33247f2e62ffd7d1d607197b89cc375b0b73de76493e8fc57d5793842ab9dbb68fe6cd505be10fe0e9f43bad2362c305c550484ff73a1353e4ccd35d7ed295d137370ab123cf3a259ff74bbcc1d9e372eafb27ff0099fb0717fe4683b78ba51e0ed6a66875d789183870ec5c3b1662d3c1a66cac50ec25c3cad1443082c3addf32a3aaa9fc4753237914075b17bc31afc28cbe90eaf2781710f1b1f6fa0f4a0076f8c35f9b2ef007030a37a1fdcb907a60612710f53d7f45ad3c1aabc3f939d5d88c31c131d26d4a1cc724d231b8b87b3f1f962c685ba4dcb008410285efa1926de0583628722a3f4039885467dc8810424104ab9ddfc2d24c88f6e1386d37858c3c106572e71b82b69cd9b9bef17084c7e9bb617359e300e1e784800560c8445c140177830f12be2356630d025d50818c47f62dfc553c4fa857b05c544782c01b91d839dc985bd2d0894e74065ac606eed06b86943a5702b1a86b5bb350013df3e224deed381b2c70934d7dcc5cc25edc52545b2c1c44460634dabbe5a7ef369c45c074be0b307d2bcc536a12b880b7d5929bd7069327a8c9db8b7efd17ebe5d425872631a041cdb07e5da2a5918a48079d8b5949e661c42cd0bd984bfbda7308457f45f8d051820211ae5a8b94644910a6d1fcfd79c0500bae1c2f6a71c653817bad82c53f18292c7e17bdb48464cd645332c24407a627cc9732bc7c48c4f71d38c71e9171135210c4f32b5814b9495164992ae13a3f33b5d94b8e562a6d24f604321d287edaf8fa3abf6b5dc1eb32acb845ceeefe731e04d1203b68801dd6ea1d881c314af6dfa10568a5c0543df037cd5a4bcee39b9ac54d7ef6b703d04b637c1e31c13958bde453a734a5a9eb689325a35944152a964de386e2041c365e72f536a3c032339cf558277f3d1c874663a7ca908942f342147afaa43e7749cdb1dfb87630ad65c4daf7fc57ce091375a1a8bd4c717d9eaeb64bb7356ee2cd3edec0a7c2aeb9e13f0a183eaca3afb90f4b9ac6a8bc3ff06a11d6250003e8759ef50ff9279e293a8509d3b7c87f7f91358a39d8d77a74bae68d63eb85d34dde707fb2e221add5d9db68aa2780b977b83c2fae8fbc6da5b562d4fb56298ebab32099bfdeb28784b2e89605f0b60070e372d13656a5d04f86de8776e7ae4aab0e4ef7e2555a02613dd7b82eeee68fa05099aaa37f380e91ef7817837de077cfb3668377172ae4cf19502f19dd9294c67eb3dbcb1a3868dbcd61acb11ffa584615a5a218fabd152acc8931f685e6b2f660c7d8f5b24d3abb9950c975b0a878bb95c25785b79a087bbbd8655ce0119b9f8f0fd94243772cdb13943eb36eaa1535e74eb77b0cce0ea7e5f05a96c212719cb945233a552a68df1e3aca0fb5e9e334de3e081359148e6c78216eb549b208a7c161e782e2731b55986cbc640b2cdebb21aaa85683d73b9703424f5ce80a4c9b1befb96197a07a6874c312822936481592a66077c150b76000b24fac99251b4fc072233414053a2d87a96fc16bfd281ce0a8b1bc86254fb53ccd50c12c04a4fff99961fae7e647bcfa4ed76b4fcdf914617d8feb0fda84c95a3435905bbdde9b0ba71160bbb95a57b942d799223fbf2a05239c68be8050fa514f285e71470b1d0e92600f80cf780477d7482cc7ba4b4416a93c026cd06926d345b4836916c90d9a0b245678bca06992d920d349b4836d06ca18d09f21dc6832175053ea43247a95afaf2f6739bf9df32e249ea6e2d58c3a631df0f5d7db2f34a38c99920b3fa39b8f907c4b9c537356053554cc6c60dc965c1953352373dc75e385169f9a62a3341bb2f4ca183061770b8abc581c2cd6781404429cb3f2ed64b1af327699f9814e14e6323eae1a64109235b2b058f2e19b65be3f09d475d4ae5945179e37b89693df2b9897b70052323145e158f4b8e23804910436b7e3b0d545d233c6dbc98c1f1d411354b409972aefc184803e442d89479ceea67ccc568297031f41441bb97ea5691dcff490fe35449920afc14a3833769cb24e3ed292ae4e266b9744aebc552dfac971c3d985b205e12d0e9bb4a35afd2c46c8790de9a34a1451f07a553244bc286e222bae82f7e2d064408b3aee853f54a45c056d68fa5e132fdf96448f687e5aba5e9543fed3ddd680fee02eeac3a2d721b5e3836bb742b0bc72eb9ac6f5583bdc08599452704cd6fe630a4a46edaaadb8be6682af6999a2a3cb7f37ec39def416514b2f7a8b3f53a29c37f8168bd2e9ce8061e36c2183609041ccc8b0fa562dbb40f6726d8daea31e2fc9ccc969a7ebe1a731c6fe9af545005432c6a62a524e3c865a32990a7f04098432330c2ea262c2c2546e87236ce2b90f398d0fe4d960d7508d92ffa10f95e1f1bcdf77a3445fb83b8e5e61d1b64d20e90e504ef120b6cefb912134165bd8915f223dc56c1953f57374a01f5f5a89cdc33b47d3fe2e56e41b11b37606c90a398ee12bcd2077256c5d478d81c8bee0ecc91f2b7ea1f74c200eb429e8cb7d91e494df9a4f18430e7d5a2008d2844247795d185ab332a10e261744a1d80d2c42cf3ed6218e7c36332b9494c374d5ff8c838136272906c5b5b6d1b1a6cb2b1d6133b8d88f48c0913219dbcd33b33d4f474b2707a4c33c3ec31449ad634bc904207024986e4e61b7eb1bb1bb3eb43e46c8721c5e3a78a8aacada3f7411403624645271e455c60a5376ebff5b449fdc7548fb52eb0dfa88664a58ac037c477803857e05fce009f10fb4e5c0e7abe5c1da63cc8d49176dcea9db4d3cb1771dae2a6a9c175a157220df36c0eefd320d2fd1345d1be9542b224a33bdb476d42bc1e6adb49e85d284507c294a968e9dc6b221ba4da186bbb03504d9a87ca044b28665ed402178db2cd98becb8811a6089d793b336af3e20b20e9e6f12cf42cb06446518c93771754f3debd34224e0d7febad821a50129c75cb7bb30e5b8fea59e845ec578c1ba8f096151124229c32e1d7a1dd879b7c8f0731ab04493cb2a02786d31864c52c8d9e488d5f42ea0f0b5e02285ddab35979d6f0ba9a8b56ba2ae1b510dea7b00c6040b7f92bd3bd72b6a7f6cf52bf114a70f14758dd56dc98212b3f745a7bae4cb119d49d3031eb4bb6859019bccfaa4976aa800e2294df8ba0843df7b4f25e39529e283a9e2b7b3ae669ea5b9e01c17db2d59dfe5167e6bea5312302260fe44601b5ec3a562722be64810613305abf8b1b27ed818d75de815f021acce3ac09d70ec91e4ae22a083d5d04dfaef74c0f0e95a43cc3412738c96db90feee22c639f7808d5315e7fb8c6c5a5751d195eb8257590e52dae22ed09f4d5f5434220a816c0ae41e5edc237070bffa9a4bbf82e0bfc0c61775400849ee00a7aaffadec4a96c163e7e912503ecaf27d434fac56382fc72b845054de72b1b60310eaf67b0874461e8e0f0e3a067b311421e636c9fd137d16118d68871cad085b8c7223bb18ab838f8d145061616f679e1c4f631c4d6446233d0a38a88d21d0efebf27d269409044c869aea0a03041575c135badab12ae651adfa583affbd1a99af43cb1c0f574a003407ab93c6d542a196b4993de7645c794112d098dfbe1d639ee8ac6fa311464c50740d1fc89a6fc8270d182bc3100cd5b392b727e6747829033f479d015aa039a372a04cacba802ee82146093bbd4ea07001d01ea785948e568939d0067a1edb4db684062d0df3eef53686660d21a82d976bcd9ab9f6406b87d950e19313980feb25f667949495cd70904451bbf29dd90d7cbc5b252bdda4c61e0b81a3ba5721652863348acb30d1a1cb3ed68b63642bb308bbf2092cdabae919806a7451042546a528d9a5ff524a13341755a98ed47e881f2265d791ff6292b1a231dc2640b74776631633133ae4161eb657a96c7d37d6358d644b74c0789c483ac5284f7d6eefca2fd0b09a2d954810a470ee5acd8f0bec619f0c1aae436e33c01694fa39be3e666d864f1c4b2b1ddf73ca0c904f507f480a0cebeaeb5f56d1b0ad304920ed27475896404176e3f38a9029f4fbee2b0ba3f31013385d6a639e8ccebf65b8b6963b4a415d60a8b7b51a0b7bdb14192597c2337d0d8070b62b225230747f65b94814c5fa57b12d3ec9cc4b23683a9e807a8c82ec7968d15b78ce039bc9ebf2641c472086f02e183fb3606dd8e9e6072be189409428f904ed53581047f35f24719b3ec0146047833c6a3382a9d4190c80a453087f18b94cc8e365e4aec98c83765c800c377f6918ccd9d94b82ebac7ea917cba912a9c2c16559dede7502522809c7ded28fc8afdbdb109ffb14dc38d8294227e212b1d62d2389de45be17e1d69b2ad3c45b868293e139c7a914bac05b1673624c2478c80454cfc784e0a42e79133d87f000941f13743238971c2bfcb195ed3c4b81f851d4b185b4c620fb51024797bd44b8feffcc64d404bb8e96322699bf090b3d79341e506ebe495f1f8f0a80ec41aa3799c64acd878c49dcf8557b87b0f7067a6f362a5d54c2729bff285d874b87b3623e0744393ed8a549eec810c00d1ad4ab5974bb31872252e9a3d897285467faa5b4b8696b1eb62a929a6c8802510d501cd6ef8e27dd3201aadc6d40e8363c11b0d0af6714cc90d49fc40a363a94dd4de2d39ba6aa4b1e5521beb9394dee7cb37fcddfa6ef79e8389bc9edd47d1ca317c2fefebc6ed5c5aa5248e1747e02cd6718f06d7654b2f8700f6884bb9e8a981e87a748fbc6d5ea2efb63de532317202032cf0980aced40850d8d17a712ad654e2b8a15fc68e1f3d1ade04f2ea5f0dcae5f2404467f3ad161da42af60d0f38e37a328d471a4a75f26ce2674a748b396a75473ca07d21a2cdc0a494f8f7c72883f979c6e4b8303f4448ac159b14a121c6c217b31bccefc30d1b0b76d1bc3c6303e405d98827621723982cfbc02cf9a584207e674af1a7fec755c6c88748e1e0d9dd7811951014850cb8e4f3221c06ec067edfcd6028762af1103dde0a5fce9f597351ef4bb28d60406e5a120b99e2453c6623c41bc53312ecc5a48e0d8d1a24b312dfbbff515bfcccc8ff0970eac768562bdc86fa41ba71588f66cd0463e0a210bc39e2786b361153c914cc036698fee73ec5763c9a791bc9f00c45d17271caeba7639ed96c1f2240ad35db6c345db130d2fcb3c158cbec99a8d85746e2f1ea486de69efb20111e17fe7c372742030c9f95ea317335e77d0e4a072e0c45a5cd7af9e90640fefadecf2343efbc587a5a0870ab291784b84e5a2daa49b040ac36c1224e8c29a13b030d03a2442c755969ac660ad40595c57d2829315d84a901513ff6870722115d80e35315aa7432c4ab120155b84f00d350ebd556e1230ca61860ff792d2eba2aa8e57e284cb2885d66754de91b3aff24fd7a8cda9a0006eda18cadf44fb0fc12bc55dc957f23514ca7770a4f7613c6c1e47afa3e38b0cc5e820d208624b08c007cc64fd6da1002c1e8041e59d0661f73ae7f49cf056a93dfc9007b3c66137575f74b809830f73c06c66d2001c5ac255f112a8454c7027c7bef9cb8705170a1e56e3614fa1c06217c6f309492d0bcc32b9f679c2a0fd7bf0d50cd7a9d0903edab6f7b255a4cbb12453d912cffa395d18a2e42428f32c8a4cc7e73084e5ee9e91e13bad923a4fabcbde69820656463630e957e82b5a26e8eb94e01a7f1057a74daa4f7dc188fdf23a4a2870418413a36950b8aedc290289441aabb1b0ddd77704521bba94997b69a61294f8e52422fee256db2e3bb172f104af144fec3a9b9e0dc01b1ee91f4db390eaace8fabd9d98f9ddf893e8c40b73d68ae7b7e6ecde869be70cc5c5d83c9d1b28f79a0cf994708133e94908db032d02b0d99b806aa2ea7b99eacc17dac02953d32741138c2f8f9a2bd1abd26add412840b39ae394a92cd00c226705ce183c0c8f04004901248f285d6d5311599d1a707e2bf38601c0dfba157fdfb4e649cfd79b21f0c3a61ac993a20b2c468eb1cb3b5279f1c3396de6ed334a5370f4d3a47b43e3dd1b7aabd8d761f16788ca488f222b53e6685dc1e50a62c5860a665df9343bb0b1dc60c1d3f5c1ca4530928ab3a354f4d9aec524ca5c77c6b8ed20699b35ba13d5e24db4048faed988a08963e60eb1b9a747964f9725cd047a8e07ab1b58b1485f1bdf859801ff33fcda6caf0b38bbe588d3c2730bd110a9e277bb5925c24672f14ba3a22195d259296b455742934a1f526458114c330ae4c03f9264fb88ca19c961284bfd1ebe2b9f9bb601299f8fb825e8b458a4bece6a6ffef7491cfa8c40484b887a32f479a1655cd5f2b23027a0507fe8282aec18f1659d2f5f42556a52944e01d9850ff526d5cd3e94ebbe8d0487377364eab1fba21aa2238f4e495794d66064588b4605ef306215ece798ad358d126bc6651b69d735bbabe01427487a266f85eac3cc266c4bfe02ba9ab69cc45c5c8ed1b6b4d448fcd32d69a61b444c7f7db98e0757351ca40d882076a5605ed1d56771b2f1027ea31277a12b961af0e24d51299b2261a7bacc41a288099ce838c6febeafeb8476c1591a63de62d007b924fd2f6f827b057f2814c564bd4ec61f63c602905e9abc9059a204a4761c0cc88c66d584bdad5cba0d38a685e0518c01b2c584d7fe6366ed51ce7814e893a06213f5e130e4e45b950762bf745d15e3ec15fc48be6f92f0ba670345b0baaba62f1981d2fbcc2f02dd899eed969c65b65049cf5f8d3f1a8fdab83e68aef33d72fdd0ab7ed005cdf2e519550432cd62ad3a06f55561007781aae10b8ef2738dd319ff1cc3f12de3a28218d181ebefb55018c92a0500ad60d3a28c194dc25c141d3c5d13b3ef63616a8c60e8762571c4864c9600d9a44f241110516efbf060b43ad98677ed524f03b548022fb4b49234c2924ae7c47e8356da5b1fc8238161d24c2caed187386697c74bb0659f0beaa48ed161111f7667c532560191c0aec3e8f4489b0c350f04390854f80d0499c3c9a76acfff7e520edf21cf4f1826e2124985336450a75e14e91925c1b107c02209fa7b152123c4fe0c8bcfd30df1743da4212fabaa9bf66dd8b94a2c280b893464bd676bc2bcfc9b1c63b0b532dd5722c15af9304c8d85fa5e61cad3616b9377cd51ed4003fddead3ce3190905ff70e23003c587a63ef07efcbee2814c60b19bfc3c12a903b464d2c1eee02a77778ea69e7e80915804630dc6f5e51abfda299e006367595df0e980d37676e9460388ef463c8491fda0bc945356e8453663aed6df123103ecc85d4f14488c1d3c6be682632787c080025008e5368e200d40cb302c8649124418108be52c11d4258a32126bdb480d7cc4a18f9c690c5bc871fa782e9dd3f0bf095dad946c7d4f9e6428a5007c6af03484b4d8c59350084544d760888bddaca441b14198dc2bce66a084900c2e68d34f323ff233c061dd46d3a274c02b48f2d9ad17cbe964337d94cd6241c456d0b83ec3ea5805bb55b0737b7aec3d16b63ebab120ffd58339c63254c0ca3305bd57c68dee3c5ff079c431c244f0f96c5c377ea606910a37ab576274a91532f5626bd8426d4cbb649d7f8b9285dcd2a7a69fdbc2735bd26f720b927732832f541e3759cb33760896ad61435bb372c2471ed038dcdb9718a21bbf47ff3d7e09322b312f28af2accc1c050c1d70730209f0776ad9646396988de022e68a751d19d36f4e9862c3c77942714a9f1578ed108d5e87b9b909819280e239e4986fe408e82538bfc61e62ee425e430e3e6e935eba05eed13a70b0ab4270e8b828cfc9c3657e75ee35266c8467866f23ac8ca6b25409f8f6f0ab59a1053897021e3d6b8b077948fcfd9e4b0126c566456aa176f1bb9296974bf9f2e139ee05690c603394251c0b7262221559bff51e7c1f4b7738776db31f6cf29ddf55ed0f6f1f018c4ef0e4dbe67e9c09b5667e30ee03b37fd9dd9462faa21e35709d00823747a3b4511122580b50b4bfd297a1c8eb0cb754530ec28c52e6981298c6cb28d82eeb0e346607c635630fd265664f18627dd09dd161ff4bab5e5ccf121c3bc6feeea85ddf641dae30c0131115174a659ea20e9a900d3f4a696f2e51b1218d1b574818c7151caf1042d3a9d301a8f99b8dfaec12ca8d3ae1c62630c9ffe09946597709d03d5290e80e23a4af5880b0b9037e0976ecf6ceda171ede91d88fe6dff4f64f3f97ed996f380168ef58d9e1c78f9c1c3bd17eb753518138c51b6838dcf3f1bb44a965990ddafc6daab0b29f39396b4c6923c909a547191bc2d6be40a171b87dd2409434dfab1b1c5830f3e26ae4fba365835d1a7dc412dc429bc708ceb855baef9def2aad63e23cc568ede236810e4f2e62d04ec84c6fe8d79de81a25c9bde9bedb4b399bd24e00f8d998c89e3fcb4f8034d11bfcaac0180684e16b6bc5eb09c6087692dd1b55376a0a4639a7d9929ce40b830eb90996d8c7be097c5e2821b3d4e4f0881aeac9f00ba52d1d09c436c309d418a0b119840fa62dd969566fc83bb23079df588d8790116faa18b09b857276d9656ccfc197d41a2b0ed2a961e0aed6f4222e4261cb2eda4a9e5f820bd94ab8e3f26eca73f218e83fde47511f55f6d2abbcae3622f025ad163620d7964b8510617e7bc8e3378419c4bf25282a6210923d22b3f4ed8912a4fd5e86d1d045729361c59ff13cef3f286d149a6db04b16902dbc2a00cce9ab76c7c20bb79ace3666978216354cd931ebf54641ef1ddb59384f84c32236ae71c60f12c2eb553cd7d6b87fc7fce1fd76dbfd0e28cb3bfedeb1e5ec51c02ec85b991c250adf0eb3ed5a6afb1e8546560ea0709168231cb2e682aef6829e27e426769a15ce709dccfdcf363af410fd5218ab81e9bb696962f39c121311fa64e0fd112aacf38f9d69fd1fd0b371686aae98e838081fbcde79d2446d5b4852f28b9559368d2a6663d6643c1fce6347c53040db0ae18139459655e53f8df6a895c59059aae14724b36c90dc61c4bacac15c11e3012f8c4c477b2f1bb9d4004ce230d22aa4e13301d40391f7a10042459345bf80ece98f6ba88437982dd044df82508747bc20518c0b048d2194c922fd9b08106c55acf0100e56a10045a24bf0df7dc84c62de3ace584055e0d2b68ecb6d51a52fd96269da94bb122723d2c358354e79585de9189ad6b26ed101cd5a468902f9fb70d810ec6986a95b4f0fd33141502822d048b41725199096d096f0a2ac35ec0d8079a90360c56ca07f84fbac4aa0748f0ea2a70fbd547462fa924d414480551012c7983cec08da5c3da2282ec75fc61d99120e8343ac1966ec72d4d0386c738465f765a1cfc40df5787af7583ac3bd64cbb7ede9c99f475d3e9701fee864133c80cddd60836dfa441a96981b9da19e4301dc4d0e14b109aa4c0cf9581b49427561c3c3997f29014448634cc738582caa3c52a4741f3f4657e8215e4cc9817aeb6612577d2a955fabf27c4c6bde3bdbff20369f25f7ec82be0cae0459e5c28d946e85620c1ccd939a62248a85efa3215ac372719ed1caf4ef9939281000ed0a36c10d13cea99f82eb024d8b4db3847a577835d053016307f2860acf730217b7d35c88170763e8da89722d57e7da9c64776d991e6b4c096c9cc4911b841c2a230a8e7c84e591a1b898eaf1e951cddccd1d43db28264ecadb9735afdfe747a79750e96a9f7ad264a0b65020daf06dde4ec72edfc032ca347dee9a24a39cc37c58d738bcc2e3f277c5753b118a2e597c14dca4cf60c42ca03507e973dd62346d0c516420de8a52191aa6b22936d70de89afbf40c31d999118f80073e402dc457744ac6f546bdbde6dd09b377c3d7fac1dd6638191ae7256c8754781351558a94ee20237ab0d1082e526f83acf18e83326fa58f6d8b074db0f44d7ea467fbbf3a25ed0710623434d7449814d7af3d14bff68c6948ef3a0390ad094709f5c274d767b9d919306619d8235eaa1280bbb7decb937b0a86df32d59d2223cca045a8e9b30062db72fbcb89c040cf0574732002747526e9152e268162a5263f5b2b84653759fc72b61a4eb756da8dfda1e4570e753b73538c561f9b8850215cf06853096e8ec4207b533c7683d63a4b0cbca23afea585ceae2358123c49e5010e810194dc536b03b9047325a613aecec54355846e808c2f4e770479e4cee8c142cc0d57c6496ef354c14ac6946422c34d2cc5aed9c7eb33dfd2702d1b957700f56beb3fe8e97cf379817042f0b5d2ad3d87aa0f86f6ab063953515f6ad45e14e455e49be57d255c7f1c02e62402f3c2f3512e95b953116ca21145441e12afdd6b31513fa4a8d12f04b58bb7a6b031567f99a165668a95580936e132fd478b6ab8cf124ec2f556508506cd6c2e8def50db963a4f5251d1088df02c2f378c690ed4683ee77030059839e403a9057acf2c1c4b503d5fd69f8e9b7f0a42cf5744d287d8bfe55fef35b7d1dd7f47cf9a4fdc417ce1ea649164d1296a7941d7c577bb62da4d163ebdf23b138e5782eed79402ab571eb3b7b87bf7b94e107fb15618ac7bbebc18b525ab98dd7e8cf212d28cf43bcef9377aec74c9c5cb6dea82fc6d079f11b40002a9fb4750506dfde021262523bede54f188994a1e1c2dd69185759933f70d70a9e9591dd3b57544a3780e94c39016801e690d60858cbf98becfd3669e9d029537bafa66f886474b5cbadb0f5a4117cad7e8c80eb190408fe89e6cdb44da4e773b4233070f49560af4f4580f941c1449d60843abf8f4d82ee20c8083582a0fde9852f70fbb45ad122de71207192fe9407e3bef28e2a74ca4b2838662fedebe7094aa798e4c84f2ec6e35d1e4ecdea8dbd12b0646f36a4db41751fa6fb64db45de4a4e19e20634c8911f9b6219f2d8e237f7f879b41b403aedf954c68318b2c7a28ce9b58c4cc7bb0b3c5263185a5336360e6063961d9b871812cf43ab44628d5025dccb0b6632acbacc84e0bd015807bed39b57093318b4b842f3366c1b31e6df20f7bbca88f07afc66702c56c39be5bc453b8f0b7253780a45069c0e0102d04a615e9cab183398931a489e481a73387bca41498fd1aa9cedeb41cd19804a43a76d219fbdf7ea6712cbf5a94465f73455bf02a3f47ab88dc31b3ce0294142f51ccf1545d9ddf5611b50301c4f760214738cf3e49e58d1f66a6dbc1482a63495b9bd56d73f45985f6eb94250ec8efc30c76aede199747fa9890781111c34447f6c85dacc4f3333f4fa8142671b63edb2fc5055b3248dd334060ae3764891e63dcaa9c7e5b714990a22f2c3bc2c3bd042b50052d90782953114f8c4113144372afe7de8cefbf30b38ee5700218c0c4a2655efe912e8770910c4349f2e16bfcb94ee133ddb746b23c320edbe71a2794d2fb1db59d83663166b61e2ad4ed99b50b8f801590bbaa534390e507c3cb79bcd1fa1c2ab5bc1c7d92ac95ba5ae7d17cb57b9e0e509ccb531b7d967a4bb41b21b337340c0efcee314ac6ce65d7c9e12f15464d1d8721ee604ce1cc662844462234e19358674e58c14dc37e6d44533051013b5b910589e2af1b77c331715e9b6dce4589205d824ee159e104e14683aa947651b162be5afa0193a0ea0056741b716a5e2519d935b1f2eb0318549f6eeb890a00b39e343869d9c06d7b3c5cc81147f186aaf1943cb0adc23d5f92557b11cfb8f3a34da213c5a9f6788ad203fe8909bd0637175133034ac503a39f374c07ef0e70e7f390fdbc80a53e045cfd55a062c71d31bf043cfa72ee9159da989bb1ccd23fc2d70b5981289a576f4545b03c57f20bfc12d5395ba282693b4fb75b138312830cf10666302385b4a23b950e99e1e04974c5573ab656138e50565e3b9e23a6693163d3513072d8b50656de1575e624c21982f1c843f2ec2748eee62f32c6375af6f7227a2b7ad604a03583d799605a810e0056e5cb0ee11a8879422131e4640574f89013f23376f4f891a37787290286a47d97de7a15e126356dfb6d8f4d90f4c7209eb8cd740ec6ed58f3edd1e488047dc0d1a53e845c33ef98b8b4ad0236886e38ea45ac604935dc1b8801c9234a9a2dff9e558e7952998f1336ef646812af82b8d246f658b04c25c7997b1818f6f6063dfd7f40dc5ac6c3ba610f69079fc06aaaf292bd6e982f1e5e9e6e4d6f9760d9bd8cea777fc7a0f037556013d3ab2fcc727615f27c74640844df6158d364f566412869fad5d46bdb7eb377b7e6d2885d2685408aa61cb1962fd00e081011443b1d2d26fe087b077298193b8118c84e69ff8e0989175bc37465aa01751a8a6a763422dd3d121a357d6d7812f3b0f509b5fef30a22af0cfa7077fea0deb6ed8ad8ac0e8f8bddb64a80fec23058b5436692ff95bd98c89ff7e2ad1567264a131b765e0574395b80bbea65bdf51fbb0c5a219b4c0b32e2a1f6216b32cc631411248b2d3dd94ad64e73d2f204b64a0300e0a6cf152ac83385b19e73eadf7a10f568a451f26bf68b23f9260e4d16109d03e49da0835a0dd5fe31162807368265f8be93ec9ee134167c15e58a51b6bf7ea3cc35ff854ce9199df78d1ebcf7089ca6716ffedff3bc70a37d00956e13d61843f9ee88c232c5711825880088cd06f68a324ddbc9f5e09abac2e9b5f05fb02ae39b4a4dcfd1ede6a95fe8aba153e4e13be760a124a0aecadeac43a1ec88055d659f57a8fd4185fee6b8b4f3d2a5b6b6bf470bcadfeb49bd4086cc1abdb50b6fe0cdbd9963598fd8899a544e0eaf561aa6fc57efe29bfbf792498dfdc820b299a0acfe6f73eaf3abf8521745d82cc19d86824916091bc4712629ab42c556371d084bb88bff921a86a5a4641254c230ac46ae09bd09a93e3fd65524cc0d139a9f4f055e36cecce5f19ec4b1e6123c053fa3c18a1b01048529238013e754a9bd5d8c6749dfa972ecbcc490c737ab2c1629f02a7ca31a9be0e78520266412d8c2975a48336848cf2ce57575b86c99e8a184fc9129a22e516a10800003fa7a7e3c5f055fb466ad754673b7caaa7d77b67586a587973e7ac26f8a052ea7bcd63405f072a576ea2aed2b9c7020cf228eb1e318eee4848866716563255d243415a993e06e0ae39a614baf41fc46ffc664a93cdd35ad860254e6b3f5fd7865d3609360511f0aea219460b62f63c0234954d066e26f311d80c21550310406e1e388b40a95673b23a9a2940eb9f9d6d9a01266c947d8ac8892781c29dba3986bd70110e1eda8334aaf5bcfcead3237f80cc836f50432ce9219af286b65cb143aa5c7ccb68c472347da911600bed06345db94f92206395eaa89f9b78f40f35f2a4423f9e1719dd00cec493b6da6c4aca74cdb840730d1c3b7da33b6ddb0b4e7e40bb28677aeca671391f7ace5583a386f19958c2de27baf8c62a5df7f930e326c6390f9a97ed6f86858d58030c74efcfe7888abd849474897832991608a3bd2cde18b0744b00fc56a807bc3955f7e1c54bbd520a28f718524f544c243626427ba98b518630db09048c41b3faa6335418e8c97bfc9cd2525729125dca32871c110ddc3e773cc1ba5246977399a572cc591e3a772de94845e869aa35d9498325f329c8ca3058a42e8f296196202333804df4a2b51bc75c9decb0bd95b5efad4091596eaeb532a5dceac286366584b49fb99775bffc5bb2dd4cb5a528e68a59602d6eeede65ae09d203f856b2afc100a2c563ca55b094440ffa66b3323715788611b2cfc64338bfaf3f2b4d86420bb8fbcba3eddb555d39b65ecfdc2d62c8df6bbeffa8adc889485ed054d9359e2451c33b0a7c9e96432fa9b42c1327385ac6072d37a195e0add065f3d19c268807db8f2f2fdf052314bc3927c6d82eb1b0e42bd14a06e4b5194932c3ccb409a2f1efeb392b1e01cd8d2c9eca6e25c6bf340f5d04163c1d88b8388c7075760f1a748996e782ba2f00869a3a2207c14229a0c344bebbc7d46cca60b608968aee68c846e7156baad9809cab789b5284bca024ce67e10874340bab6c60b311566724b0d7104aeef5a90a77a793760b91266861200302a6bd8f3daa81bdb99f8b75ab88c205ee196123ebdc7f69c945f8b1411a16767ec008458ff5aca2e01143614c3a965746bb5b26168924a76be1e6b7a75ca49283be06089d93a6f0efd81e5450502ce69f1ed906483503e6e6c5c0c02ff2d507419a73eeae9e0a8af465442c09c7df4f867ecd169a8e8a1d7dfeb74ac89dfd70c0cbca1f592bc85ebfc3c32a4f7eb5d9495282244a31d4b627ad0d694499cd70069d698c470e75adbc8bb2ca25e722f47956ca21a4fe25663abc8fc946bde366a683e3195b8254f7100c814e30f1a4a283d01816c8916be67621808d87538d1c94b4f55ddb2c97f9e5f4965d48706780fa485cdd4464dda50f3d08a5f8abd73b691d27a5c9417ccbb922cf71734a025ff0af5d591b4695922d9c3af0f50dc535e10e595d1397c992063872d24ee24e12940c999f7b96603daec6d97ebe2e15f3d9f15ba62ade8c2bd3a3a87ccb7b01c6ba07073c69bedad64c608ee6daf4ea355ce7cfbb92d91d8c63425bbddc40c62964e9fdf9977440eeb26d741ead758f299c07df8afe15cb59cc4673c75da916d45b53e0ffb4526f52b4e060bbd227fd32cc454a1ed2183d97d796bdaf0d031b3d08302017ede20b85440fac0e08cba1b6cdc4a7a663d8ebbfb2fd05c238d7ad4ec8457ca815469e15a72771ca745a0aba9c72943aeef46d1b6d07ed3f2938508c68e875d44d7283edd31370540f1c2c7a652d782409787988eb7d653a2800f3851428e9c4d5d02fb936baeb80249b9dd2490926a4055221ca2ee4f2cb990f1521c8c45709449f0980030577948796806fe4fe8d985a7df95daedf2f9a6ceec4dfd9531539acca4cb6d3690d53925bb270a7da17480f933619c6f51d5dda54696854ee2c0dfa1aeea077d573d6c39485cadabbbb32d7965ea58d0ae1e933c428de80a19a0c5ec9321f29b47d4002e8a2f42fff07a3117db71023230a9c061314edd4325190304899ff428814c8724ca32c05c24d3a75f0ade2da029eac88ad6c24af68f382bfc14bb2bbafdc6062d1a89c009c8ac123dd0220a37637a411fa239446cfd88e84ec5d19ed97460035a023c844aca07e399847142e76fc1728259a90fd6fe79e79ab631e9016e0c8736fd1834b00e2b5aadf69f98597b7d3532277887319bf407023f072e4d67025bc0a9cd780d71aea2dfc094832012955c89d313d818947ddc6117eac0d48663c8497d4e101a6b4a8e8f56c64405ca242e95bc98e34dd5b2725bb909b72e2a04d25ae712c01cb94d7a6fd1949ba7411634068a62aedb773db5aa0e19390ad87d5040939f94554da78e5a6a8d6ac80d1184a1aa0441840e1df68638ca5b8934210811b5a6501c9ebcf8b3c70476caf228f5a9c24c38689f48b2509c9deb0d1e2989b0153a7c29ab250c5e6dd308bb2314db2303d3835512688592c18e310822e98902fe079219cda5833c9e74a4859d886c2928d89a4550650dcf131722ab7bd5de95c8202704eb89f95ed389e9a58f8a120b6dc2d0e1f9889dd18e06d6744e2beb6ec89cf611a10d3b600c7244e61da0ff4c893df344de0a4129de2edaf7fc311c0a3a1f83893c0348758ade5798946b591609941900cd0bbb5cccb4883dca7b084e8fd63e82c8550c631484967b705ad1f2b0f410b1cb88e39b399d420233f5bf767b5b32ec24021f4cb03fbcc01236d63ca2a7a3b080375298e90b4087086a3109a4d3ea581f2aebcd0fda092e261c894582a8b2402d612847f09c7bbb6596bcec1b2e4075011d1cea59376708a07152591e1190027338d13e78b3f141f1bfb040b563642e59961ffc89081d9ebb7bc1f22bacef114023e1d69afb070fc956360e6a445cfab8a6a8084ed1998a200de719334abe1e0ffb2286a8b1a86af138dd4f7cd7f97bc011f802b6000b07c83a7549e16c8a2019a7e5f6e3d4bf62c5452d3c14fbc0d9c0469fe1f524732b716859f70722c603eabab46f4fc9e43d63d8499f76c293ab128b8b1b9c861d7a3094eaa1ea243766de5895a1f7c672ea8497f8d3b31737e506996513f47826bc1da0f12bf5f818337d973179c65c9b36365cfc898f820a66358dad386a335e9b16f2943318816d9afdfed2144fc5c4bf453cf0068fa9bbcdb3c47c48921d9ca5fce62fd54093377efb18c389f7ec5b6c389b3a34d9bc049d78d2e5d177aad3e6cf2463022386ce4873d9a36aa730fbbe711bf27616394fa78b50d7b0140dd5af6ceb2cc852d5e1800c5d442b3f7c7c4864cb5d2dfd4bb9d6aae8c80c0dc40ea95ba6b1ebd851732d07d9b24420d633902159e47023de97f0d0ee4523f0e80978f695ad0a0074ab83596d3fe9d73ff960ec75f4b3b53d65acd12b1ba51c1f1ecb4818eca3b224c6425ba84c953b6cc275bf1877df05eb03fff06043d3daea3706009030eefb0fcf077c5c3af9d7580dd7a3728ad3f884d881eff0872358a59ed428ef9d16192ad8c78a7c1b16ed93e32054c7758e5c2b6176e92f6ecfa7badb7a43f17d0ee41a2fca201b55860059ec2d14f0fbf96a170a3899f2b5ba69852ed9817e625579e9c4837989581eadbb0980178890eb7c20c22202bea07369f1b790e2b862b2d99c3c10985242c14065b8ce3226bce13390ffc2ffd5a77830d19a0dc36b804aa527cbb00d7cb9f152b7cda2a211374affb6624b9241f25d955c55f4d7b2b4f0d151aeffdf5221b9b9c940eca4a5ed343d9ddd2538a59057f0d263e1fee0721626828959a62894c37043e3e605f8d1fc54610e9ad2bb876bb21a038fd6fea25472c5367b9126e7070c2b982468cc36a170bb50611f8d821aaf45372712c7396ec7093cf082fe5e9743602f4d409af6629424027c8dbae051105d3e9a61955a1925397d83611cb08b79fd40945a0f82bf5c858257750e20d29f5d3e7758376c15f4aab1d55529ba9ebfbc6f16d26ca84999160a48d3c74eda7d9e649724330c9bb0bba29edfc57347928c8145ce83028b696d305f07fa5892a4b0a7cae4b5a800740b6c796f738e922c61da3b8ea5a7072656cde49d27ed311fc9b5e53bbb3a9b6723f4a8e132e01e549163efac48e88b7184280087c0f34d66e807b49ed18f4bda5354194a061086f75e3d9690f31e278ddf237b70851dff2cbf97bd146e18a237ea4d711fefe86b66132fa730878c4806270f964071c9a7a000dc7c7653f7f467edec78c8e67a7817230f90db1ad4a88ffd7d6788a4d1dac930ba80d51b99faaf30de9ee4c4b06a13f580583547f931e3c56aaaeb4aab3ee0c6f0a5859b1ef3686e5b0c30b6dc5dbb5c97d120303a078b423792c67c7c3b3d56e41254c95b031574efa593a32131e5307e88dc602b5d0ad723e3133c7910dab490a5cda24d16742a71b2d6b07db17cf4996deb1b39b7b0420764c063d73951c4a3e334f548a58ce0c41cce721a5b61b5cdc5493017782579923b2e5574aa5c1bf15c50370f8931ca7fc64a489568b5f6866d61e1cb0681070b6374fed2e14732a1b1ea0db02e82d9a77e35850129c04ce155195cf49412e0db24a86d5ac334d9aca7311e8dd54e534ee05a87346cbc32207a05502e7e12292a598eefe052cd62bcaeca3a8c3954ad94beb37cd1cbff292dfe10ed140db0b4de4c48f44655b15da52e6fec1d59b32ea2340ff9668fa9891c8802f4b3f0f2da2cb54ed8a706c4c4fa1dc55c6c1ddef64ac84b7ffeaed8ef8f1389116ee85c2ac88ca048ac265cc6960667aa9e0964c26fce428a69753822e684ade5c3e3f561d6d95d14c35a46f91049869b1414ccc6f89c5a8dcf413f61bd342e6f3e4266c6fc57e8af900328961e0e7784f7388e89b44b9603cd5c2966da57ad8e7dc8898e695b7da273563494ad783b09161fbec2dccbc5c269914b85de7ef74e19b9eeb0523219a3a16711a1509c87cefed00fd6f2a4f1417863d005721a5265dd6568e29f61e5494a4c44ec8fd49be089b585f1cd8f45111359b438680d1eaed5728232496676dc3067f78ef4f60caee231580b73ab7345bdfd10ee9300faf491ac0fc53e8a7294b38e97901d07ea5874f5891270440ae59df7037e796884adc02885659b27aa0de815e740f43a026001555a77a2ba454046edf145236cbaab5870aef0b044425fd4f9a210fb694e05f11436d322b04c01d3e08240a3ade47ef395337328b648cc08c1f790722317113b9c92bf6034ddaaf95711ad3b116fec5ac883eeceef8ed7acd070043d1edd5fafba2d25d6791e3edfe4e604a7a8f39ff86f595f934b55980544690c033d54bc22fd10d62befca97ddf3049c381cf3a9dba5a4f01b682823175a98c0cdfa60b6a5da000b067f1bb31e678ae18382ec113cf1814ca5fd586bffebb904d3ecdc6ac1d6d92c25909b51901186d40791d7ee3c6aa269a29cbc9c1fef6beacfeda7d4dac60484d383704a354283aed83006236057c4a670c91bb9623e19708089f53c356d87fc1129b3c9e0a2279a97e9b1e42238cd66b6bcb229c80886b003c7467ff07bc866e1220de8600262308f5d46016d55c02131c82da69d43e21b1d5f74d08403fefff8fbca3f4c01029420ec267beb873755d00cb8662a84b4583e243aa8aea09599a4147e11b312deba159647c1bb2e24cf71c0c58003d944a3a9aea50b67cfc6d6062685a2c35b1a1453dd1b2681d09d89b8524246d4dfc83c794a44c28b258aea12f24ba7e8ab3c0e6aee32f06352624fe5fa1ea0c4be8ab9fdd8e3059796407517a0cc3c058a2cdd0aee9ed3979371fb0ea320f0efbb1c7b610f0f8d59243bb69f2c3b98de3e0706e87cd0bd1441f1d59cc8c951aa9e4a53327b13e3177570d6c80de3e2b303f1a2f901227f4dfb0e84a99f55bc0b84cec52241ccb708f485b2ec1268383e8e73665c686dc2a218997a88641f14cce6c309eee29c332e1a36b12845e61e22d8170ab3f070829b38e78c83964d7d9491498f08f683d22c2c9cc12d8633e3a061531f4564d62b32fba160960c0d4f1f70391347349a6a285346dc61369f4489102173394a53a77ed3dee2c81028f15d8a602e1f746133c449dcec6a97f8a520dd354c976dc46301f65335e50b3905495ccb77d8609c403385483901715df306b873f475a86a9e7170a039acc849870345083453889413697180898d9b726d6621ba4e63c9799407fbe38fcf78482616afab82dfb408eeddd89c5662ba420b7ed084fd98bdae125fa6eee8d11a4ea56b9a2be8f85a3654aa7594ac12b6f46fb4000ec59806a22e63d91b710975d36bd28cade89ab48303f89f5e0be85d372da94462ff5e7b0b73541f6593c1ed299557a5173c64da676f2bf7227abd8acee2c52e653f782fa2cce8739422cddefe133bde9df2bc3c4cf0b83e78ddb84362b7f4deee248683ace4a3d8e350eb410f71982de596e97e2c5254e86f3a3e72a8d39434803cceb7b735b8528bca7ee13e70e96094940ff00df4be6cd49b371d5325589760d905fae18f5e0ce0a391e67cf0ea3163406134127ad1da80a0980159303b319e1c30503a0920aad00e2c842e3ba9d2a2407d8432124efe7770dc5fd639a675b61346878acf9b95a71340b673c2bdb16ef22fae43e4cb1880e6130cacd07ab01921ceb402d361e98ad60a68aded2b5d490169649604c5d464a904932740b5580a928a1d2371c601f2a537517e07d907d696b224be0bdc301cb7a04e055747aa72f8f0c5205a6ee071c8df6e8a46fc3a9f06a42c296cc7c88c2847d0afe41893aec771491d8261377c62333678e2381e0222acbc89f0be7106475842169ab77c2838ec2094110821ebb510c65362ff32a62819446f1f45ddfaa45c92a8ff091c12138571019379dc371262e1112eccd82e26dee8e2fe1563e1f563154be40813da54c85d7c81f2a997f7259213ef3977cbd3d26a83a5ac2fe931e279327f204e5943c46464f4c853a9bf9fb47869bff1866182ad34be070eae8d918be31582f9990037edc164ab7588feaf402043214a0d4a919522796ad99a5539a239e4f563a949286f18250921b29aa3f715172135ed444db0c13c23af434b1a267f2bf7dead0efbe91f9da1b39431c05aa612289418ed741a5d90c1dba6fad5bdb23c5e91b413dfe420b4accfdc342fdadb450659410ba60e7901eca151be4d33e33a8264478a0d834167e747e9a88b242f7fb9bbe24b8b171da7aee56f7f466126a50592e3466561414cc93f2d1fd0e98aaee0a54e2f283137867827608b9b8b2cdec71ccb36a1b751e3879e0fb74d9634f690770b675f5549e8062d80cba41572fad0df2964c4c275278aaedb42618847898f602d112c7516c43aadf0616546e801a32ac539e10487e8acdb8559d2b7f549c71c4200824756a6624cd7376e4bfc9239d413fce3a51db700f189f068fb993d90f0f0931d6588de24143b5c2d2b5c0d6560f4822dc02f4dcc6b0564db585a4778b7ecac89105afc5b6e5c77b78f349c903579e34560c9cbf0342a9704d640981f7be3375c93548bf3df73774c71ff68cade815f1a74c1201a0a00a140541f0695d7ae1d94a9c3c651b6dc827b44d5adecd31d35d00e6b45efb3ec1734e7d14ca8b9caffe55a63d044e9bc539757dbdb5c63cb232a05cd41b8100e09b64ca7fd3875e02a7f25e19c183a518598b31cbd038ce292b18d1474fb5a48ac66ec8906c6d6d4bb2e1951b525d90d70f83243c1aebb68b8f7258b77fb30be4acb28f5710c43c723bada758685d9a3f95d4458da37e9cfb2483e0bd90722ed9cb435c37a9fe6d2486c4f267d403518006539ce5aff4c1a8fb90fdfdac34a55fedfbc5ab2e5876f261a76071a65603ad12b8a42c6708450063800bfe40f87bf19af4ce7456d1070114ea2af90ccf373d4544067f21e4b8b113019dc65974633b58904f93caf5f5d68980fac5dc6e6a7010fa8a0ea3d0a11a75d140967c279a0286a4f44c91916618ffe81ddaea9d102f38e19e83fce77a18176648e432843f339891b03df3c3a72d8088a9547114da775d18b9a420c8c3f2355f7029e912623e5da03de10ad8ae6341ce30205382551482c5c99c222ab28fb8e96fab7c7caf3771a7a9babedc4c4ef466f5c37041e0d44eb0c54205a52a50395e2d88bf9cf76cf1643d790ebf3aff01f4ebba5c8b1f53009cb9bdf0d171317362d010f628f90a9079a1a705658993926232cbc23ba5a1ddcd850948a6bcb1662625a4436217bcbbde59652a62465430d8a0c0d0d19ea60224322d30ac0c1ce1a5bacb145f7bc3ecc39e1cfee398b66b793ee8e3ea74b8f1dd7d8a19485ceef7dd2decb7bbad55c4e161f7b6bba17e677dc9797b92eafe3cec7b73e1177887725bd251965541a330ae8421dcd22f88ac0fb4f22f86ac0fbcf26f0c580f79f43f0f580f79f42f00581f79f40f045c4fbcf1ff822f2fe730974bdde7ffa40970eef3f7b6010d7b3fe9b3c9ff4826c23bba4c2279d905d2ea10cf84221bd5262005bfd9f2ccafeb20bf84af9f156bb527200bdfe4f6e91fd6516d09522f4d20806e10183d4f0feb2090c02e43d6528080c82f3fe0d6f28c0fb4be88a79ff0a5f45bc7f075d37bc7f0aba7ebcff0aba66787f17e8b279ff87ae20ef2f035df91d7f4634a24c3fc39e845e57f24447bb07bb92226e122b1ee689dc2456d0509f889bc48918078e153dfe898a33c4df50f3f2d9863f52b3cbeb70934022c6916fb6a4dc8f3a6a57e5e934a0ab3a013d1492bf6a8fc700be6a18f0c75f95c85b42edaa469f9203e8aa6640af59f8abf12efebcdf81bf5fc9e06fa503a39030ea4b19e2746c32f6d6f6e6dbcbddd1b1b374c336ecdaade62ae07fdc20dee622e067b809f820f7006fc335008fbb80afe10af1afef69e8f17d55c0bb18a0262f40884f014124000107b8aa23035c951a2d405c2d2c201825721b29a88fbc75d42d5c27ad9174739363db6478225a28c66d2e17e6199c02dc8635f4637edc14f4e8cf7057d0a36f735da0473fc87d48432b6cd10e7af46f112c6ec8cdd95bd30673618e21bf64ef8fbd9c7c984c58d7caa753451151aac1cb5d9701613d032e05be0177021f81ec6f2e7d085c237a50224a44a09c555932232a40810948408bb93c3c909bc3d770b31d9e015702fff2093c7679104184081d584e2487871d78727841724182419a48150989b574ca9c1641e4c4e9d830ec286aaf1eb9af1cf9ca91afac1ce9e07454594504860eb6875d1d32b1abf91d5cce8fb7b1b379c8e504799b639b57c7d78b2d767186b9cd64a8877a8b6e12a4c8c6491311e5d41475519fc1b59151abc5e5fccd3d6e101110c0ac226f351111ac1e48e344f730315d457bfd2dae858a845ee523e6e5c21c8363a8a9b904f81f77006f737df819ae003ec80dc0db7087b86e0fcfe302f135dc1fde021620c010202eabe787dbb26401020c40003e04e0aa8e865c951a3440dabf871b210d7d1a1926900b93b10b9361f08724cf70399565c3ee0b0d765d729501bb2d79861b44e471f378ab860b8a4bde8a4bedd3d3d340355cfffc6c3972bd30da704131c95b9df443db5699623fb0ab9ae165c3ee0a0d5c4e0c6b89b5d4aeef225d24bb43c8ebeafccde5e16db819eb217029f00fb81578ecaab0321eba065c237e0237e244e046a3a018d730e246246ff5efe0e2d11a473b0c7189f87af1cfabe35daeccbfdc1d0f73ef4fe0429c1d2a7059492c246fe9f07059459725c3e55021accc85d3c1b28a2804402e00be869b83907fdd1dfee6b2de864b3fc8d5e167b837bccdcdffe3e2f035377beca6e4bf41445e020f53b377b91a904052ce41546474848459472ca3cb22835524e4b28872b82d4b00b82d4a2aa994b52a2a2a2a2a2ad9551591617486eaa83d35b0632e478787ca4272787181c1747278d841480e2f2e30980e1d5c8e4c6b8bb93b0fe4f290f3aeabb383901c5e5c6076747278d841480e2f2ed8ed328c0ca73373f7e36fb89c19fe86db91b9e62d9cd986b8443c764f99861b34c4571b6e6a3cef7fb57aa94f71300bc35c30970959afcb727259446314f128d51b4e67e61acc8303c289531c71c411070e91e7c1ed48fa36862de6ea3c90bbc3d770fd795c1ede75739e017702df802b818fc02de269b8f46f6e967f868bc3dbdc1bfec705c0d75c1d1e02b702ff804b81c7ae0986081d8ed2f0f92c7cd22dba6308c9e1c505e688089d9e8fd50556176010987378d8e1b320045f9f1cf0f579c1d7c705c3600ceb00001cf25519f9cce6515e113929f2567f052830010914c183d3993976af0fc2e5d0f041b81d996fb8dce30611f14f84081b8c88cca740605c304699e50b48d305ace97f5d95131aaeaaa812a13a5221792b290257b5e4adfe209ccecc37584594a4db320d37a888ef718388fcebb25c97457431cbc85b379835c4eda9384430ebc85b2ad5dfc0ea7162da5c795c560fa4e9afe1b62c419a5649a5ac8a8a8a8a8aca8a1a45445c1591b7c8303ae3080720d8cd32cc8d4c8686b668d2c40900b84884dd1a7363153970514808bb5886b971898f4feeff1ba7f889b9910a2e02d16cc3104e8808e1726630d29e9056a2bf7f881b7bb8c8d35e733e78c6c111f2638b1dfd1f5c4ed0108f5d9b6c69d8622e7d201787afe102e0795c7fd7cde17bdcec5f57c8df5c1dde86cbfa20f786afb9f987b81007bb33d3708388542299a543d118482bf0f9a4b7c2cb7f352eff793019dfa3dcffdd9edc4484e890c3184500c00169053e6f854f7ac1482e180906234d8c5431128691584bb9ff86ab22625d9513af591da2c5e5509c2d76318fc3e5fc5bd6865d995d97d504d2b40d5f9d387d7fe5397d3f8fcbe201725b926a4f6751a8aef674b5a7ab3d5dede9ba141baeea8cf6fa6b7ecc6073556404b92a2358838adec05cec7176d8a216baef9382dcd6db70bdbfb932fcebd2fc10978877dd99afe1c6f040ae8fc7ae671a6e9003fe6fd0103fc30d2ae2ab031e6688ff716deecbd540cd353888c8bb5c0dd4ecfdbc1aa85986974af9632d41e07e92b7fa1f70bff2b4ebf6b413d0754700bd1e7f5d1f0f03beee112091bf6e91b78cda758faa19d075d3805ed778deff6ad5f5d49eef221d5dd6507bfd3497e580cb6ae2adfe99cb121a81d6a37d7f0cb70509d2f4fbb82d4790a6fffad8efbf4728dabeffa6e199fbfe7bd42e083daea6c6f3fe572b7be1777d72fb6453eb7a57e5a43d98cc03b728419afe064107dbc37a442e67561e17c65f56ac885bbdd541710d2277e5adfefe87f24a1fe597fcc580efbf3cfe6ac0f75becca901970554e9a8caea19f074ec733c52aa2259acc807b9fdc8f6f6f52bb30ec02f3f52b91af5fbf6b57f6f553ed0aea799c22befeaa5d2f5fdfa55d3abefeb74be6ebcbb46bc757fc19f12c766f527b1dbbd061ff5da4fba4bdde617bd83cfa3b5c0ef6f45ea4f65c1e7239306f63879dcb79993be3b5d73a2e109bf63aa8888f4545601c6e606e1011225845c485aebedbe48a7910f27205d043f37091ee937661df7f93eaa5a9d88897b1670d997f014fe61cce0748942746407bfd391c10edf5cf6498ff24f45c5e871b32338c8a48e54445467bfd0cb8aa065cd591b7fa77389d56c6b0aa680b1d6c0fbb3e32036e0f5c0e1d32a9e9e55b19b6cb1fc23cf62f2e435c0778ab7f072e0706c3f676e0845803bbcd43cedf20221e8608ac72d2ad7e1d2e2706ab889ae8e27faa1d9a191b62b001c3bcd8c0a25ab121a562830dd8c35c985f2ecc2e770816979379cba74acafdabfba996723fcbfd58eec7ea22f7afdc4f8594fb53f76bf142ee57b91f2b8adc9f723fd551ee47ddaf850ab9bfbb1fab89dc7fba1f2b8bdc6fbadcfd5a9690fbb7fbb538a1a58d8f75831cf91ce7437d4fd2aeecfbbd4709c52a8661231a910fd0095f3c91bde30b68443fc0286424621c406b0061d6901847c6f087448c83067b0ccf9d35843c9883616b54d11bf691a3700d21090434a42acaad22ea56530134b99d3580a65011e56e38b8eea51d4a19ea60028544888e31e081b53176e7e86043686e8cf4012542e4ef033d72520c69528af4440d25a03449aaf549125214214ad911192ef1a49bd02119caf05b024953b24819765bd7cf71395094327ca4ceb44452867f8223c33f713b2e79a9432da1468a0aaa5351515151314148f32d7194e13bbc350d3a14818c6e408794a0f919d18d204d7f3c5a6aaf1d8eec4bb96951f6264ee4affa83fce5c810be1b59ec469c08639be8e30ce50fe3596aafbfa3c078b4a1362333b2ed4d98f5bd7a3b6f75f556d7189f74bde442d912228fc8f3883c22cf7dd8e8eefb6a6594a10e1aa0321853b13b0ca8a34c9a0ef554a2403008fdfe19a55f59123ae44074c881e89003d12107a2430e44871c28e3a14f8086a6156de43d30887cff3ea35fd55bfd9d1aab270fc5fb6cfc26378644b963f5d77cb2e446898d07c747995072fbb84f7bbdc491da6bcc8a0f334b27c7187fdca72691a07387b24daadc1f13f9464833bf274b864f7fe80ffd69afe9cfaa639b1cd339996c46434cda6b261042082184d29bf890531ef7b9247f2e29d38caffab04728d79b9de199d196653e19110c827d7fb6a45f1b15991125ca8c285166448932234a94196546b91d6f4099514ba7444399cf134ab4194519cafdb6ebbacbfdde10babbbbc4ab968df4d3e59e138e2849261c4a9264489728c9904e91fb3fba244387114f770cc396b1a81d486795a7527c0294fb87862c94f932a01c638c104618a1976344ea5c9464970c5da6faa53df41fed522aba4581c4e8607b3d93da45bf9ffec020d9f74f28fdaa51bad5af861a4f9e4081d251a2e4cf7f1a8e8623535c95da6b0a949b564c31f4291ca8bdf69ff6b0ff64f20d6ba31b1d6ca0a874effddaa8819488a20f448a6e74f0b15a4dac21cd8685321fe52152e21972241f22373adb92568dc59d502a2b77d5e202c3e3ead8e1c3f3415363f3637ba161e369a016eaa16ed2445da454647484e4433c6dc4c3c3c3c3d34748494a4b2eac961c5e1ad0a5b9a115e5c6300dc95fda92b794da657b3437a0cb6a9ab5da92bfaced6997b523802e6b356bb1c8fd76a86be8b73efefac15a0bd1b03737d65a6b6d107c7936ffabaede4c229964897e708a41e4af74acecd9dd5cceed3c6bb5f1464d48ca2bb3a55be4268e57e61e4d482726674658113aff6f027584549a249783cd2cb51d68423007f055bfe295ffa7f520fbaa892e4e7a1a1a2a2a2a8241609c3e7c59347f7e889161e4a970d57991fb2f7342eeff7ee4fe966f0e39ce9086720fc9ee26b15d4e8ad54cb31b673a75a81495d48a8a6595a385e5f28204c423875c582d39562c30312fee03348d90542b29951454ccbb00b90faa3b99feb2a20f55e2364b9572bf76714bf4c18894b40cc33a72c487df121ffbe4feae3e3a6456b9226538f4654348b91fcb86b221968cfae920843460d8a1924330084c869f693c2b3d96a77b52ab6f969165f8333287b27b43d1f90e72fd6f9681658abffe1c9a4396c7d1882d81d8d8e07073d3ee32ff339ee735c7ae7359c9198b66866f27910bc1235b86163ff04809366a9d7995153695de9ab5deb7149079963d534ae92de2667f21bd59ab59d3944f4495ab542b365eebefeabbc9fddd643a681ff107a760ff836c6cff413432f71f3c42eeff6018b971e570b7e195c5d8b3f9084813c3306987822eec75b88137c09796caf057e00df4e97f2c193e3ee23ff8c5cc47b4c7d3c52332005d8e81b4d74518c60d91b9bead5a9d5c0e854154e097634ef897c8cc36fbf0ef2aafecb6c1aff5c6a67573642923a9ad95e57f3619fe8dbfb4af9956313aa5dbdc9c69836ff37937072acbf0237c45207740f6cf40feaab5abf8eb5658048a403df207957ae42f02dd23fc65036cf57721064f197009b921d20a6c96f8c666d82ecf4ca7ed4a08611095d54cf38d2692daa93490824cedbfee85437f363d78ab5d42b4075d4440afbf077f39c05b42b4eb882602ba32008b320eb93304228946f37c2dfb272a8ef60ef097127e44bb624f6700bae208a0d71ff1573b08c61dc01ffd4af82bf6b42b02b53702e88a34805e7f2fc148c31799e4fe276c70b0c8fd71a86b8868c056ef009e84b08e6c44a2dc9848f68f581cf2990ab996a5bf1ab664ca059c1bd2650ae42fed5bd380765b0279f22737446edac71dc057107cbdb73a68f5adb0f9cd448cdaeda93819ae1e044be011b6292291d1230e3c00b18948b4b1305828c36575eb6010bb5d971596c97886ffabcdd84d75407276b5bc75b6316adf0f040718846e13c3d53fd05c4e7d4be967d9a973d9c64df68b7bb86dd9f31787814420b9bd0c244601c2d99e65acda9539c959cd5e3c64f57d855d1b2fe21e280eedb5e39bf61a3a92d9ed020b652cbd598647d0285b8fd0081e2511a1911050b6b2818480008a4b5129dbe951292e01c9202a755113654b65137551546aa21f9f6cb1e9f3d3443e9ee448d956ea489ee4238523c9267228db0c9343b28923c9a19ec993adb6d1cb929fe59a2d4fa6ff55efc943525e9125b783e404f771299aa8bb508a6d0045190051063d42c67012914a0c214d3f18264f96b8c2d82e27c5b2cc445f15d42d67cfec421c79638eafcc1f567fece9578cd179513e9d63120772fefeb17a4737d129bd934d7839c89002134fbe3dc97eb5ab1ffbf8f2a27cba7ee81d63d0d6f92b49fd0cdb566eedbc3db28d3b64b45be38aebd6b0d3528bd96a33ab596bb76d5e56b6dc366f4bb6a66dde1cd99e6cb7cdcb922dcaaad4ebc411a624f2a5b0257f851ba2b2cd9bca369582ca5d3e6553b62ddbbc5cb62ceba2e52c578c666c755819bbc3f2b03e5a9e693e0ea5f8eb40f60969a607b2d720bd6e79f7cf9e70c4ff6ef5434c8ceeab75ebd7aa9bcb719f37255d3e202f21bcd56ffaaf3bfdb7eafe7bd47ba8db5de8adec4f177a4b7bd385deb20ffd6584b7faa653abf65a08ef37c25fcdc1a3fadd4ac3df2a834959aeb807383a214e3f48466ae512f1bcc93ea472ffd6b38c1b6b6e6feb76644e2a87db89b9a39252ef48ab893524cbfd31378643b85b7482b5f1768c31c69b1c3f2a757db794d3366dedc1a634d2195f01b9b607df0416c676394fd4a7c3b89d58ab091ad91a633bc7e544daa63929c5726aad59d65591a309d96de36a6ad5994c768a0c1ffe9cb6d82dc9f991b9835d3f2a856d4a8aca144aa556565856585858522a292c2ca88e8585e5c462e25858587a98b037acb55d65bbbca114629d4b7bfe9d522733ce723916c6ad4d5227cbdbc66d9c69eb4ea7aeab2998922a2a5b5795bacf4625955a59e17252ddca25d5a9545c8ecba4ba954baa63592975f3adb7d3f74cf1b781b875144bbbfa158bc5e5b84bf7f212dbe83e0f2626e69fcb894a1dfdbcacd4ddc718c7c0bcb8b0306ec9b162c1aa9514c65805a7a0708731c6352608693c250716ca7c73287bc442577f4a255209754ea75fe6a69ec755bd8ebbf2f7628f2f7db9e4e54718e45f7ec31b76bc7c095d2c2fbfc20dba502fbf8329e88a79f92be84a79f92ed005f3f21fbe5a2fdf832f1f2fdf06be6278f937f0e5bd7c21d0f5f2f279803dc017cdcb0702be6478893f23f028d7974aea954be2e8ea7f5249761fb9047593385273ea536e12481ca959f5ad9b24c9138f43ff090fc70aec59ff44c571028b238e3870ac58796bb36d5ea96489bcd247486eaacbe3ab52777a6bb7544d8ee9f17566e66d8f9bc40a7fd2e3354e47cb2caf399223f5d0eca4f2c6dcbaae14e4499e247934ce977cc9e6c841332e67cae06ad8233fa296cb99279867f2efb80d6b529ee54ae8a5fcea56e8a57c8edb412fe5636e0a7a290f735da097f2acfb902665835eca0a7a297f8bd8b82137a3de7676de18b229e525ea65ca9bb81c95b727151f6718199dba548b8ca2a20eb5e2392122cafe1505478a6a4b5d999fb747ce71651294289367f64c9ff933a758f2d616dea449f6af292a1b0f20169797f777b9cea43d7f9517ec432d5702c1b4869aa8703a360cf3ee6842e4ada22b8dae3ce3caa32b91bc95923f90c657dbbc3a8456dee872bc8acb89791b3b1816ce2d34a8c79b71250f39eff11e5fe23eed79d08ccf4ce486c0bc8acb818181813e85ffc41475739523874b0e15152ace815cc5b990100b0b6b9bf7e61c57fe4c41851cc252c85b1edfe85a39585e85cb6179695d88c3c2e2495838e7e1c9fe2b96189d56ce8125d016e685a9f95af3b6e626b1a2e1683dab97965a2c97d9c2e550976dde17d6bc2e2e517e9b7998991eb88d82bac85bfe33b7918edaf37ef11c412ddc4441dd242666d54c7a6888ce98bbcdabfa795732bd5cce184a5da6925d2e4c528a028777e78fb7268fb7a0b4b7f4726396e1f64f50fb78cbfd696e0b7903b5e72f2fff9e67638389e09837257b77f64c1e6f2d399429a8106a4fc95b493a5c66c1f2e70bb576dd6af559c71b32a6b79107e4b163470ba5a4a7a7caece0dec61eb0070f1e3eba4ed23ccdb383c7f6367ad0ebd1039e720c7ccc9a139b186589c2a3476cc196e74d2a4cd947941820b9c43285aa80412a1c14c7a5a5dac3dba252a7bd8d3ea00f97b2c5e548a5f63cc619a53d9712eb78ecdea75c66b932a93dffd59550a22c29c5282d382a29b1e89449fe923f491ea7c365f9f385996dde2dafaefcc911732515b28a2b9b786bc85b422d4e27cb72e80d9a2d7561b6994628edf9fb884949ad6ddeec0c2323358e8e9eb4e71f0317912acb8d64c4227f1bc3362f9623138f5b7874e2d8bd3f2f85b94133bfba412dd6caccd7d4db995ff9fa2b9462289f4e3ecc2ddf920f84130092990b715a64e086481c95c8c0c59e22ff1e37fe04451f6ff9c7355a327011a83d19381f3cffcb50531395ba4f26cd1cd36ab5b084d2ad57b5e41843c2609f0406471eacc6668b1dcbdb70392ba54e7e5e66b135dbbc327fcc5d220756c2650b9553ca296cb81c9636ba4f266df37a5edda099cf71837abc8f2b9362b852c95bfe75e6637a3c8c8fa7313c76837a3c9c185e753550730b0ef2f12b3828867fb941ad77b976e626b1e289c799f9c8e9649905572f7471be9cb911fe9818cbcdb28c4176def2713dfff67cf2f8abf5fe32094abb94da15452ef9cb93818aaec17f064ec733c5f26789267b770a75cb9f861c1fdf56d1ae89552b2d548ab76a6161d9796715ed7917baf9dfa422bb507bceba40a0756d524a29e5a55f0397339fde49457bae5a41a5d8e0d09e3b0f42526e90e7a104d0c3ca0d6ab55412ae2e035a88f6dc619e6152d12e3aabf01c73fe9434609886a97ab922550f6445fec8292415edf97b57b6ae1cf2967f0d9c4e2bcfeb237b574ed12d7f1797435faba99abfba10d2a8708f7b84b7fc7f70392b18ca2c7f7046d0b0cddb3300d9e68d99d2e0dae8ca3f75355073c512a83d7f205c0e0b9651bae86f6b88a175e3ddc4dcb0a8566e522a3737f3615e8129a8972918b687657b127717e6d335719bd592a64fee9752c9127894a52d438b156439253cca73283f6010d4db87120b33c41b68ace9b7df5249297fb4a5a661960ffedaeff86b8f24dbfb2d91ed6bd7f6b6ddd343cebe905ee14f66fadb4592ed9558883534c7c7db728598fd36e5c66c5ffb9f9c7d52b6a7cd5a95db3de8ecc3afb77bd061391ef9abababa3fa9f97bf78947229ea6690a63fe5ce6c53dbca66f1b7ca36d3b44b3fd380e74f897cc4b3ca2aab3c7d152ea762a892ba3247952ee57aae5ecaed5ced757b9b85d339fd8663976a4fd37eb342dacb425a8359c5e9c4cf3e55dffee95e402617899fe16f753f999c6393c99a8e1c2e0e3d8f731fa63cecce9e325386fa2c0567d59eee7549e50d6b5f61bef5e3ad7833229353f8ab2951e5462a221013ba2f1ec523352252bbecf7c727edfa8cdc64edaded4e167f2fb5ffeaf6df96e35146f2d7fdfe98148ffc55fbc2c6abf6ecdb8f5c8e76faec72f24fcf597c44a66cbd61120b69af5fb5028d04d0a8ae3dcc5d99eb6909fed672dceb7899dfb086bfd89db89deee777f223d206b3956fdfc4e5589b616a912cb1d9ec377a8b9c9e899cdd0d7f48f22673669f6a4fb110cf5436fada0b699b15a97f42fd707a14fe3ad78f49d9be0ab67fdaaa56fff471cbb287dc004e1a16d24730ebf4db63d95bfc0dc9de7ef676a3f64b3db67d774fdc8ef6d6946d29acb269dba6c269f88bdb66fba79e4e17e66aed5f6bf1866409249b21d92f46c91ff647ba087d26b2cd5ed6b87d448a3764bf61216eef17a168d9f6d86bf88b49197beeb56f41b5a0abf8487358fb4f62cd3e7ded3f0c55fdb5e3b587fee2f1dadbdfee776d6fd67ee47e98d9fe89e22c22c51aec532ef7a86b7a1e57c7efb8322fc4bbdb65380eb587d99afd97d92cabdb67d43e21de8031b1ffd90d17c9f017b39665df9c0fda6ff6b3fb1dc12cfaa7c7ec63df927dfd2f32c9278cfac9b6c79e7b99d3c93ef6a61b9964ec376e27fb221bae59669fe35ee372386d5eaadd8f03597b2b37e77cd0bebebddf114d7b7b65a6f5bb2edfb7bf316997bffd38d42e98edc727c41b62c66f7f723916c32e26c524edb19e5c8edd308b5580fb321f047e1d6f0088932404f7657008f0eb7824d9deafcb36bbdf1139fbedeaa8d86b1749ceee11992b8e4f8835d80b716ce27b2ff456532431ad83c6c96b46e516447128c7c8244728178049f943f2938b989e7bc8e97c3029c7df4cf88349d9f4dc67d7deef26dbf8d595ffb6d47f9dca7fa99447fde792e3bb5afe93c901e63f8ff5dd7f40f2ea23fe72b06ef7a073d6bffffb2be6dd5ddebff33f5d971b9f75617b7f61b7626c72cc2db77bd07dabf75792271ee7e5fd570e93e3d4027361b75e2eec1a72dcd58dcf72e3abeeca4da9dcf82917b687ea2e924ee713fe4c2fb9bbddcf084cca55c3b08b171bb9c9f523e7430a15629c40e6ec529b96a65d38a3f317d2357627833032990516389863582105192020c115a46053041dc0400a2f9220051a69cc00210c2cca905f7cc18c544a0fe81545531c91e18532d2a8a940118c965821045d2c6d81240910d858a38b1ff4e00855c810c7146cb0c408418002c6c4e8133c0a599eb2945262f3076060d6941aaab22be38aecfeabfaa9d52ac32fbe00841f9091bf141324424a442842146db4800c10d0644ae913805e60451661d0c2046bcc208162063ab8228a272298420f742284a2222908b1800b2f5001922652c0022fa054e1032d92100306d678c32705638c000d38280085102c010c3e70428c3454a0833c4bd004e563e98d2564618a204cc10b27aa0cc328c14fde320ca3044a7870aaffe190b790e77449318ad12235723021ae4c8c62188629c933528cd229461379ce39e79c73d229bbfcdd64ffbcec364c58c9fe9f46f6affeb04b752bb2e4afc36880e4066f2ca10655a0a209152b7843250b12b45a4a4b6f20418c183ca1046ed0e084c70926446902859011d8607963b461822c0425a9a209a103a42184285c117484262d6822846a92c54a8f0e80a00a1e1af014410449ad4412d07842d1154a50a468c282d317455fb0f0f0800ac200062d1801080a2c766448f48328792543274d7841b6a7c6648c3146ec73e6ab8abfac7ef6125720393e9d32bdb52bebcf1e7b9bddacb3ff2ec35947b386137fabec2f89d30f2512ec8c5d3fee2e8915f39f781c2bbe7e59fbe5530c6f4822cadb1906911942576ff27ed2d5ff49efa457f72d7f1287ce4d4a77344c1982418410a40007988e9a2118629cf1ed922b1799a8655564f9f2a594f3b58c28db2131fcab95642294a594524ebcea9794388637a4e809a3080a3c4fe07c9d1458ecc8ce86124ab0851940f18612173ccd300c2986a81443390a012261074f480118a4d0061c6cc8900104a51b9c200a32bc6803073eacc0038e60052b7e94602145131d108c104c710537a4001a9ac2a43380418b194001470eccb8c20f70908121c619151fe1048b2df860e88da325275b606122fac1095658748195460c7ed4100a4113204801165d9ca1e3d260c61551888146141de8400d33a4d0841751c0d185164dde50b9c1ea8150818b134cd10535a0b002025160c38b2994600a30d0c0a2e74484c50a52626c60030a39f002880963f07ce10736d30758c068cf393de98e67b0ccd0cccabf68410b9ef0e2c4f5feca65e52f99309a0c25f12294e9979491f1887c804617f993b1992ed0029327262666a04e1912317152853a0140a1ff40cb79e204651c299d91021b00592fa230729836788aa068030c5564714406231862820c4c90e407075c184e74215f7a00c71b58346185132dc280e40921b471f402378848a0051f8060fa000ace450933d0988209d800c3164ed05d0c010b52765d4ab5247f1d36038c4e2fbe088a4286a80b1c0481408648e6c8f08b2f4c21731912f9000a1f87b0a31b327acb8e328bb531a75b2ac37884ce259555089b4a994aa9a4a41ba155b0fa5641173fc2983928367e104218a55137bf4e77e7813470361736ab189dd21b9f20a4995e58e9de10b634390c96a8a0220987261ce548c484496e424fc6c186fee7eeee94fee7eeeef47377772a45b77279191610f5614640f3e0507c83b6affed27092276e70ea6fb8a7e2d8efef3078b5af370bd2b27b4496ef94523a25cb001027fb2520110e07ea73207b1a72b3fc6166390622c336b42512acc01e7e16376bc57cec263144e6393de0c94d4b02019187878707cb309c611a86b0f56559a23090fd232a3bab00f6b50fc262ed8380a81314814919090e129cfe29f1179364df25d1de2f4a8a0e09b89471ec47f8e313e2f44aa7213a67aa38eb29a574b7c229752e875a91b19e66c89652ca295dbaaa8d9c070639a35ffd24c62e76b18b9dc48d14db62aa16c4d89dffe492c8a12fb79c61a9958b96eb8d497894c41ecff51e39426909253ad72b01071831820142cc69ca3ec6cfa29d37cb35dbb6becd4bb3959356bf718af8f3e37149f4d14cf3a9cd90d3a2504400105b9609b9b9c938a86932a90ecbf065dd524652406c6cecc62591135fa65639de204dfa8ce7c92472b0e77ed31ebe0b734090f6d6469f320a75ab7fe372248e54a42215b97f2be23a42192b6792a658dbd485c79350f7d57cd42e556ef9014092b760927d87d2ad7f67e6aedb917593b5723b9ebbb7d936b91ea05f91fdb99dcedd5bed77b4ef1e7243b4ef10a082a123007aebf326d977b0ac3dea6da761ed23a7f356bb3b306baf6156ad986663f616fb81cbdadbeeeeee76777797524a39e79c94520cd37057830efbcaed6c1b8759356f18b793f25c0ac77119e0de6e0f75302ca7bce96239e52211e340e11d2c7710d29cb0e93b56f7454e6ffa0ea35ed0b1869cdef4278ce4df5efdc8edac64cdf4367bbb549494d4a449ec8171297b8c31c6d845d9fdbbbbdbe74f76777729a59c4db2cf499d9ab0c974bb2a3aecabe9d461d6909abbafb9c35f06f2f6ac21359fbee613fe3290b56f6ee7f4a6776ec8091f657f1316d259e1b0ce4ade306ccf622ae4f991fc9630ca467cc8b3e8e23b769f0c753cf1de011314387683c34dcf52bb5437d428374d83d223da051a07fcd14f8bfc4591bc75d42eaad45e1ad045dd805e11ed828791db89a07f015fd89207cad8923132b60408b624f73b96047b22f7633c14c95f4ee3a04b4e91dce512559abe5125aa84511a07ed42d02ac34c9813511f12604348b0f614bbf8cda1ec9c9bb8c86df369876d12aba6b7759b950b00928c7a4127f337af68d3db6c9a3e243bd99bbeb921d99bded2cdb91c2428c72a40ea557e881426cafd2a43406f7db3c90ecdd96f54879eb8ec23a713e3c859c718638cb1b91f54b97bdbddddddeeeeee524a29e79c93528a6119ee74c0bdad5b763b1d706f35ee85340a85b9afdc4ecaa3525018f55c06746072f728ac63b90e2311b9b712e374684622c64133e436bc43b369881bb23dd603ccd96b1fb99d9d1887b55f218410421bb326b9fb638c31c6bc257993a4fe598a452db91d9ab7b7be61b7fe24b9fbe476a6c48aa49494db9173694e8cdb71fa5121242ab7d379fb8e075df6da67dc4eccdb5b6dc3381fb0ccbd357d483286b1af19c39efb9ab91deeb7776e08a71df5fbb4f8d37abcdc479f3cca8d3f3a5f88538961078cb2918a832baa5360985c7421841c5f23824ef8020a8d880c4b34893423ad483bd2d2d08afca52179eba85d9a52075c64610d99552e9c9069097028a5943a96557291844c95e0504a29addfaddaabff75b9d230327d497fa394d2879576f1e96f94523a65b665d84512bc9067865d28818ce904181946318a9d61293502bde95c6a14e10d2f6e300436ceb8c9be041e0415818b29d698010d8ae88c22053ce0c209b4b0021a5cbc20e3c206f72524094c8c200223043dd9019d74d225191722d0a670c58f1fd9bf06613af542a80a958b2632b8060d7ab20004161441698a2048810b821b26578a1b5318630b1a5441033004e128086260128c4c6267582f5460043ae9945dec32f4420530984e7c64010b4159f04116de28726203339c28084c566ac8cab0c21a50ae808617521912050128db0cbb98c214aef057e3c0af50e6e5c37f7ff9c3f7fca5e978fcba0fbf077ffdc307c25f310f5f087fc1bc3c7c23fce5f2f08f70253cf2f8abc75fac872d0f3ffef82bc7c3d5c38f42fe6279f871c85faa871f9bf8ab47ebe1c7a268b43d547998827af871c95fddc36f9eeef197e9e1b78ff78fbfb299ec372482a8a7e78458a27bd3cacaa3e2a9d5f568f5f81915cda73c129c5327c36332fcf64870682e102a1feda42c2b96550e1697d58bcb0b4c4b1233299615cd4f9ab7ac9fb949c44f028920b2d77ee6934022887eff19bc037390fc24845822e6b9cf5e8825fe4d49c45f59f99abf8f04c7c69bc4cc23914410ac20bc4f7d0a7f20e6bd8738321f042b88d4fb781ff803383bde0010c7c7dbc80121f391036207e480f0819d38f158b9ac9ac78f04c7ce5c03409c24dea7de462e8898f77e4688ffd4434e08eebd879c10a64f61d6ccfb23c111d242dabbac99d71e094ecd0542c7dbd64d7d8fbb12717a5c56105ef71e660581bdf71ed6baa72d86df1ee2a8546f5bd7c5e55df00758ac7d59cd0973230ee47282e8bbdcd6bfdc1e0f73210ecc0b69dbba32981544eb655e067f20e65b98158416c36b3dee0ecc0aa2c7b7be853ff0df03b382f0eff13df007bcf787381087c78d38366e3c82640e103c5e487bbd841541442cf880083c383ebef54b30e17d8ff7d1c24c7818760d5f5791e37f80891e98c7d5b0c2121e9cec33211e3b6ef5567c99abe3da782b3ebe3742bc15ff6f0fde8a1f7381f0567c982b84b7e2bf5c07782bbecb35827563cb8d3e396e5cdd08e4adf82cf155370e792bfeca8d4dbc153f752391b7e2abc44fb931c95bf151372a792b7e77e392b7e29f6e9b6ef7782b3e77dbe7b264d8703ca2c1918735f3ac20b2c79eb7e267b8812e4b060c44c5b108c3d188060341f111132bc19ac14048cc0aa21fbfb7e237ee1f6fc5472299f02191726ca1fcd51cb700ca9008083cf9eba11c9f26432220b8917b0806e9204d3440e3546f15a1fb7a481ef96bbeb104c4c3c3c3d30451137f452d626005d190d011528eef4042fe1af217129cf8de04a3c10d6ad053e46eb4e433e42f5864e4af152a7c210b3f3c38118910e240f257c489df4bfebae106464338f19da7e847f27827f90be2788f1190ecc9b195249257312bd5e20b21908ebb558aa89b6d689ee1634ec3088115462033b1165580c28b28a67422e931191269314656c9f08b2708e5afa35db0b11ac071200cbcf0c2093d5a7091444786445ab8408b1244d1b4242c246191461a2100230c1340a9370072c40971aca0c9132ba8810856320cc30468649a61182720816441193f613401c50a425a3c51b34892340431a982073ad801d29227154002139468a102276c2086d015d3891016dc0c4998c247054d28420d4630011c3cd182163150020ac0f0828a13d0139080fee041054544c0c1185ab0c2892dc32e965ef075fe62acde82b7887f96a17f3b131149777c823a18a2905286886a61043259407942460a61e15f300304591839e1850a74906586445924c1d77cd117f6b5622e3f76b0d53fef6442c6222c9471d48e1a49edc12c73d7ae0f096a470d2736c26e9343e8c547d5f6baf61a07758e61b76044eda871467b30ab6448944512327c28032313fc6127ebd6bd572901198431a86830c810cadf0a0c22fce47e979691996e5ddaf8b27ac445fcebfba7c59fee5f679ab30c7ff1e5db17e2118925327d1b3f0345e447b911755936b921f333fccdf9f18bf8d7b8b517313aa9a4dc90223e8b78e4fce72d225f6efd8a38fd91b3b191b2d142e8e06aeb52f1572eb17749ac88dd80d7b44ccb322dcbb44cd328a5af515a5d56353ea59452ba1d993589b5b1ebbe914ac82d95658c2eb03676b0dff117bdf6a49432cbaca536cbb08b61987c2b5b4a4823df45769d90761c743219a3f5932ee91dfb064aa94631a554a39452ade28a39a594522cb365918ac052ec78560b638430c28f30460961062184f57e479cce643a7f66eb5bcbb9c9c9e9481d8973c5eec54f26d387f8fd25104843e9f73bad9fbb3b9c360b0bf17793a3cdbc5e7bf06d47b7be2d91e76358c5b08a61159b55ba497273a316d36a96550db3749b9c34f9a9bbd8f0648a9006fea4b13b3ae9b0d8bd63b748ff8b31628f61ee2becc69c6a1774c1307c24c6ffa17e91f8186e0cab185631acd65ae7c4a27449efc6b05a6bc5f2218df6b53d6d62188661988c31da98137fd36e0c42d75b8c31c27a84cbce19e3fc2fc6d83dbf678cf1e3cbe972ce19638d3fe79c73ce39e79c73ce39e79c73ce39e79c73ce39e7acf588ccb1b66036abb8ca2cf60d59fdac1ee9af5f5fb6576b7d586fad5f718d314eecf08ddce4e8ef238a8532b2c77dcefaf256af9b1b9d7112b1ae9e496ddacbe5f85b6bda22e672debd2d97c355a2d46aebea9169e3a7289d696f4e19249f4cf625fc886f95b1f9edcdef2dbaef264f4cbf6640e8b06d9b73ce59dba31ba5f4e71769a798ce774d4aaa517a7db2bfed12f8953f6f2b8935fe14774f9720d6f8cff75bdba73dafb5baffbcb57ed6671891b15917cb7d86d55adfbf564a29a5544a39a7f6a96f4ffb6fef48f62d4f29a59452e2af72394af0f0f0349169bb28a5e9fc338f6e3359cdfe357bffece96bdc10ffcc9f62f78ed5c896a5fc285dd2bbdb9dfa26ff73770e4af993524a29d5b417e2dcd56a7b765a7b04876c629a922ee99d63df50dbeb1f69e9d1df81ccb49775028034d95b779cb9ccfedbcbb6eaee9eb9bcc9d967abf632235976c2de717452293dd2ee1e9d74df16a19396ffd953126be19b93ce5b7eaa5d2d535d1633d93fd5aec6fe9b734e6a043af16ed2999af34ddaa9d10cdb52edfa5c3ae96472bf4cbb646feda5daeb4ee6944ba0bdf82ea41db3867c31cf23324ba46fbe4492ed9cf42546e99029bf2333cf9f1fa514c87cecfdb2e8d75a6d3ef9f3e91d2265c430ec33028de8cb09b921ac21f393382233123bb3cc901b12e7ed4c718cd9e57f8e9390d9c88d11e82423c9b65d4e8a6d4ae42d2620ca1659860cc3b88192aef02de4768cc87362f3b18fde5cc9df6ecc5cf6106bcde93f9fa57d91eceb6bd9d7cfb0afd8883c8dac3210f9836f6495fb3bbe6bed4016b66bca0dc3b0ee0ca317e69ef32127ff0664dcd9ef8dbfbf5db55f1027be77dff93de777fbcb9ff690e4e912238165dfdaabdf5e84d215ebeebec95f0fb9c8e9edf7d54ef8bbc9a7b78f5d999cb9e47eb134fe3216fcd5bc72bb07ddf6f151d7a5bdf7bff1178b0bf5fe3cb42be5fd7b6897cafb0ba05d9b296572317daa3fe5f6a33afc9d5ebe10cfa72424b7d26ecd2e362293e947ce0797266d4021d3c7aa8ca75a86c1fa43990994b557ca76db4e68745fd5a9b97ea470d3b2d30943c7906805f1078b7ec31f34d23044fa6c2cb41fb78ff6b32ccbb22c833088cb7f3639c39f1120f88b1cf783cd9afd8ddb49f9967769177c98e325941cbfcaf1f62d976353d7e5e9ad2a2915cbea21647d63f8eb561afe3ec39f67f157933f98846ddbb61d69ec16a110b56d1816f31a0af5d90b69ede507147ec15f67eca552d658f8ab415ae1cf5b020bfebe0c15fe5662a480ac0ab6d6e2efb336597b5c047bbaa90c806a9fc5fc863f9935ccaa2c2fb9d38c79d37f17b74df5357e4aca6f3676fff8ab89c12f98b5c22cd87e6551e1cce56adc8ea6fa2ccbbecbde94fdccfe943d97b14855ad1308c330244b682fa14838f25751d8f6128a8c523114ea33a9545f62a14aa55c9fbe4debe640016559fba83df636b9aac822f651311e01a9680944653411a38b6883f69f4dd6ec57d4db2dbb5ffc28ae1845550925d6509757b930bf72e3a77c9fbf9ad24674ab677931ffd554973722067f35de0bfebcff15fe56f9834927fc7547d9293b695a26738659ac8f4fbdd535b9e6bfab99112059fbcf08907cfa97ff6c72d44ebffa4f7aab77f9c9ed685fe4e4f292fb61cb9acdab6573b3fdcfcb81b2f87bc19f4da62fb1e0b2cdccba30d3cce280c442bc81fe7f3fb27df8cd600448cefeb3c9d6e2cf0890bcd90c17d9fef4f63fe9c3f6a7df64669d1e48b637d9e290adb5169221adfda01af657d206064979fb01a53ba8348b180ba39a748a21910100000000d315003020140e8904e3e1384d43d10f14800e84a8544e481ec9c2308851144429660c31840000081063666868260e9508ba105d5b444b511b30e76e69b6b60c4aba29bddb069816740e87e2b6d666fbf09bbc3e512a3e617b35f85c424980e76f56574341f1817986610a2129875f0e782cf4715a41e18c202ad9c5aaface8c912cff8af99a4be08a2457f4de02dee98736f7a98bc33f6a7dbbbcca75e5a70922a3b544af81b28be3a41ba797450a3dc58dffe5866a449f069ebf8aafdffa2506bb8e8f391c063eb86093dff15088fedc24ea87a4a9bf6cb869d0c3cb8529d89ae4463e8f51916d4ad5c3bf2f288338327b69a3e2288352d7d132cb1a81db96dfed08adf8b5a06b739e2910c0c02f7f3b5a3549e0a13275d6e99220d754618479912d76ff7dc166bdc22f6353a722db7cd3592ff5b1d1e93c9ad325b6e5f732eca0f5d241f02a94daad816a0a0fba28536c7c356be3ce1d90c7c7beaee5c83deed1c91646892c2542e7194f1837e8e199c2791ff257f23f3b474c6c22310ebc8fb0ca91549df388568bff86151808656215056c1afeca2ffc455c88885537b4cdb84ca8cc3e55f03c091996c388f94c130ede3212dc7f24b05a0d5871095cd3ccb4dd9049b3b73b03dc3ed3f874c9243014e567326b25b7dac6f1df0dfd69dcaeddb6341f6ce0921a3ddf11f2e66fdd9400cd9d63e03e8cd6a1ff0e00a69366c442e35b9c4a648248a4d3ebe1e29b33d9671f5f5a3d8aa23425192269e5497591d8bbf71f02ae40b74c626d9e0f6a0134ba5432e9ccb10161ef224a053c7c5230a8febd860b849a2817567d6c466d71c40ac7313e1220842bd2b09546f8b7faf1b10534a214efaaa555eba56ba7ae29ac6ebbeefeb6a5c7e857083b11c65b9eb07d54c51fb0c881055997f8e0f1d3ad5ff512a71e1ff040527d25f7df4e9c1e5948b18b83b13f9497a67beb40c63af1161485fe92b570cfa8a54b65b64b9884274e589fe111666bdb4089f126809eb1a547b0de9fc49c4ac23b95d34d4410ae3cd7d8bc87f0d7a05795c7a883596ad6235afe6836e5f0775f073f3c8d363ed4f37b5845eb41e28df1f358f610c004d5bffe8130a8c5bdb55ec5a1352fa4ce9535b7deead8f8c67d2027d20cbe8bf612a28794e1abf25137cee01c6b35491cbb6af806720c83f537c02683ab2e652aa5fe81326af15c7507653566a4ee0151522059a4ba95b59c7ebb3cd8b5ca9b713980c161dfc754ccbebc191a902d8f3c81dfda2a94f793517bd8ae4232d5baa87b59fce61f381ba77aa50c84d96cc20412289af4b9d0048fe40104e102f50057de63f9dd8964a764c0f70126c59e44de43a0d9fc17798a5ae2fa451806f10bc4fbe98c4bd916ea0610d25fd7e78840b8abbb29a3feeda5041c594506e2e7758999d0c10a6587d972fa0e34f1033b1887785268d6355265eadcf6e822533ca1ccbe1f8ba3ad92185e4b9c5784ee56c4c5c0519b5ec5cc95911b1ef65fee57bfa8ba520d37392d10c3f065b62d352d81bf8040bc05d4e44ef07b483a3ee815e362ff3dd7aa65ca4ad0407fdfc82e0f30fdb09b71b94d98bd3df2f5b598055a620a159ad7a21a03e3fee4863cb3dc0952c698fc94d75a00cc03260b651435fe44f6d78c2a5b9fefe0c9e177ebccf420e82c00c2da993d5ca3fdff083fca128f1b2106b8abf081ded1c4e5f30ce92bcb7ae2026b671ac8bd775841dc10bf28fa2a02d065f6a6908e15afa95abcc09873808900843762343094e0c0601ee82ec33406bbad75c0c5f3b909023e8c5faac3b2ab55b883587ae43118f419162d596c6f087f208ecb403942fba9d224982dae763bd1577b10ee0cd825224652a751a133d4586144500ec3eed30d312ca22e620c02892e606117d15876d7153644962fb0f998b0af5efb5640b4d9adc25efffca46cb9b08f8be767d481e4365dfbc97e319a67e15f7133be9312d9c9e055c0939f8a2ec13cdc00787193764add653411445553cb202ad8ba928d8eff4fd1dd45ea00d3bca50dc843f05a8874a2a34fb627875101481cecffc41e201c25336455e7f8812e20c6ba75a7f26bb465d73b1febbc03a00bb4c41e2bc1f358891d04f0d46705dcf318d6049088f60cadcb32032ac870b93ea23786d701f3337a0dcd7af079d451d7474c4a9ddc2a18834be662b224377258b0e99ad92df71630199384b60f727e0360e243c936849ddb1061a3b81cae9bbd545177a18aab38fa6c65dc70f71e74042de4b2f3ad3e0b7cee50637fc8e44a08b112d1088872e2fae115deb44ed3d31ecae688580f49f8a84f3729135319ebe03b4038b2e367c3f252b6e2588cf318a11785409fc6191dab054f2b52dba7314c27fd6777ce3752077c06c46c58cf65e933589323a390b000d6ff926db87c3f90197e902aa44f19b31e8b55b330b1be7a34a1dc59fe16cad36249fcea235b3e3a88f1949b396854055a1e2805b1cc0c83b33c951c9417b326960a2d3a2c4403f5f2f3c8a4a37a05956a789ac7dd6099ce43463ba0973ac151dcb7f50fabce96a96d7d534d3b4cadeaf8d570f61b681a17beba232895218f9751387b250789b58480960f9bd88eefa86fd5db97b4656887fe401ceec1912aa6e4dce56e4be179d655c21dfce2ca9064231d605f112152b5bc032f1714804980e531544b33a6b8cc0fefd9fdf58db5a24dacf4c49dbbefdb3086fc8dbbe7b78a52468292619cc5c30d9eba048cfbc6a634980d8d0b5ccd08e59a0bc3b7436efb253d221842580d5be499d1e29b0a1bc5b06a9463f1c0595cf3fa2b0d46994628187917f5911b9762cd3b58de7b69c072c938f3b1385d8be6fb069a2de93a2f490da6547d0350351c8023c5274f5e3b560951b85133e8f8a930ca11f860b9f04ecc6a8225c3db0cfc9807ed005c724b4a08f90c178ac9097d1cc004d6267ea654e1038ccc45b3f1f0a1d08120c549f9e6204ff62f89035233aefe4312b5a5ed5d17c3a838ac73fe01b33af941cb423230697880f82b48777fc45a697a0810053475d5ecb408c8412436e4087469417edf32894c7f8b796bbd9f5e92c8a94bb0c99f886c3b2323b2c394d7499d4846d2fe3920704989aaec86d7780b2cb0e2ab42eddcb5d1f1bb1e83f93b6a40d58eb7f9bcd1690b6ef1ea5fa30f272390debbbdfbe938a6cc9aca7c5787fe47095f0ab2b15dd9a1e5f2fc2b1cdc119885b7dfe9a9a58615c2434f60ab26341f0cfa7cb6f4bc9a4f9114ba7fbd58469728150a3a33239949038c927de048015c5a9c3a2f8fc1600630783fa9c952d5678479c6fb5eb4ac4a8bf6ac4a0a989e8c03e7c131604eec70723965df30dab3969d3f6951e35ed0ba0fc33ff2115cb4cadab2fbb4c17640cd5179e15190ea635e2634f1ba9d57e396c3c9a5532175124ab1d024e49b8e1bf0565f5ef17f5a297a27c1ef13bc3d02dd41307b09bc9bc0f711685702ed43f05d82be4bc0f608769f23304fe2731a5e529b597f92574ed3b8ae805e29daf5357738d71e10ccdd22b5306592ea2a287cdc45fe6e154109b83711da721c7d853f60734be34edc01648b89db78f1c94e5dd50b4c2e8890dc2d11690926acabf8322f5202e5e4c21c3813f705946f87b6e038f0cfc8ec84bc1530f9f49b8e3a02ca0e2cce22e316270808b4ccf8695a655fb3538d236aa05ae7ff9a32f36f0aecdb85dbaba51ff7621f43ef448a2fe9f220b41f41480421cbcb6d91005a53278aeee5c877d2bec72082c5a0f4189393a0f6e0ae768e2d1958584de3c19dc2284eb446307ed5c47b84a328fd452b571e7e81a213f928b27628f4c084cfa7945b24658a7a8768ca949b85e0a261804bed03f85e956d7c50b10061a80888e3cbb51ee3c1dba943871fda668675426d78b17682ffd88ff9b0db44e4f082605857f0103dbaee2104d85b5ff13fdd8719b04867b9c17e1f215e6de60cc80830ee76bdebf20119c5400100d22b26e748323d99923feebd7031cfbd061ca2b9b74325a9da394f8d4cd2bc387b75fa46d05b322fef2bea0fc968a61d5241ccd3df269ba1dc579f8f2b4a244283f9a69e5d0b643392f35e7d9e9e35bf71f7d15a79897d87c734a46cd6bae38e0c57c42a1116c10d67c5ba5069644da9b468d046666f6e221a9739b43b9060071bff2aa6e80f8cd3c08f913d9c5972a5fa628f17fab01bf925347439a4522c8340a36ff12c21e837b59f0c6d761719df830856a67689f0e2c546c6edcdfdda0e0ee4249deebbd9957a148b615b6429385025f97860d738dfeb792583d34d871cc949269312a1f325c700326f7981676ea4568d3b67e249c310d026bd487ba3d2a8e1b9f6ce9ffdc5bd7621203dfa1ee835088479569f1e183bbd4ecd463c46e469194d6cff96711de2d3748a4a2310f14d006b1cf71a14b8515faafad92f321d5cc686128a4445172f8db1624e522d20563faa6cc0f5e640862e84e171139caa22000199c886b65a951c7a0eebd3a9c8c93d92eeb29147b6d705f6e540c88bc6c847465d8059da590e0dbdf6acd171787a7800a0e13f73df78540898c7561479a0e363ee692a623cfa1f0ba3b1bd046d97bbab28f120a67f27282e21ead4fcabacb84df934b6e2733fb6b50e56936a285cef6b7c617d90ef5ccaa312141d0d8dfc2cb04af483491e875e6f5ebcf7c69257db1f8fae398519807c856cfc3efc5a5a4081187249bf9b7dc3004c6c447e14e1f0209d297ba732b93c053c3085ddd9e8cea7d00ec9612fbb157bf158786732c3c8e3222a202678d0667c96a1e3777278004330b1230536c69e5106d681f349399db18eb9b1a7b8e9ff7ca00287a7c3349ee0d0c779457f63afcdda87557af9e27c7a9a7ed06a362980be999da3c752ff5fb58c22164f607a11d8df7d930190f7c1170d38b3235bfb7c0d9b0e37b3eef0ec5760fbbb80063b50b9a28adf0e5d73130177ecc7507c89ab5b9817dc77e51c57d1743dbb1b2f025eed59e09b190b65bd5ff6aa086e1ca6ea573fd532fe33778ded4a182b2b0aca8b1e3e4dac6aeba0fc56a97154968d0e46ae8c8c015817ca9414bac38bf588cc7221255b6800004ca58a6d2daee6b1856062e7fe426b3f81da51dc34d08e8be33171da4fdeb656cff88fdbd4e1837ebbae4fdc62f032ded2624c44ae98d51e0b445a6164968daabf745796db2d101a9c7f2bd5094a97223fb3200eb09d8432b1c9e1628bcb86f537d9cd953e6a7a8c93917a08e121116ef6bfea23eb495b6a81fa9d53445aab4ffd88ba5be205d9aeadc2de57062797a5211b556f83b0a7ff6af1dd93a77106870ddaaeb0918716fa95f457b2f605e5edca05366babad6232d122b58688d27802df0488ec4dd5cbbdd93147f25a030f9edb2ebee7f72b21e28407e09719c0ab65ca00204782a00f6dfa118a06cf35bed338a6fc7bad734db69d4e8b5cab7a5b627483eb4d0627d8c95dc3384f34f613bd03f8efeb230d3e5aac1461070801372e8d5174f4029340b6425986b312a3c5a9279070588329a888e0cef1fb7fd45915b8f87a06b8a22a22e9f4997d50698d352ad2bad9368650ee7e2fcccae464dc146e9efcc02a2293be575f4024fb2f31a5af8036e7b03d9c99c22564f50bedb3ffe796983e80aa8a69f1808dd858e8941387867d9c61a6db7ecdb28886bdefd02ce6da312647ae82ec5d14a93e0ec47b267b77b4326cc8e25e6947470822d13e7710b2fb429cc9c3a40d91439995d0052a82c0ddfc5259765d43f916f48da4a878c13cc385002410148b71cb781a23c19137926f814e718592fa3174b79d9acb9220ca501626460bf9b7e0c1247fb71a53c6bf2e6113c1adc10127c2f75748b3e1f0d586e648575543a8908e3f1c50a967a888b18b0c81f8c5273379f9a5c34cbfe85c0fcb72f379443621b1595daa34ac490902492d6e9194a23db040c46a945875dfbdc1fc435fb998ec497b88d7c7655261dc0b38e80d80cc16afc79a1deb1d8da07f63d57a0881dcc9b496e18c473ec7a3e1b7f20937c26f9eb7bc78f869d95697d03356589185f87cfcb1f86191c627166d7c624bc337961bbf63b9e1855888240a807d9ad811314aad1a4be2c4f4e00a973e5fe9819a1145d34e351c97931b74aa48b04de58f8bfdf496c0fd8dc87bf3f6c5f24071d189cc88e35148c1fb63f88522ebf8dc8f8f52da880decb6b1533579f04a179964ee9f4c16f8d9073abbc48ff409395ff38a912d0f1895fae4930dd3379d00d479ac751fa489e4566e3f8e8c41e8255f10f5e15854a1a95e45f087f13250926d5e3fbdff8bb75128f391dda108a9e60bc5ef39a38a35dc06e948a915222b3b9e6875998ae54771658a3270f5212c7c0542d6e09d55c277316a4aea5d2b2adf6c0cdd3eccbec41966af3acfdee276db12c00e5bfdfce86b02f6a956a5181387c286589e32a016140e8d0b8bbcbf089e0f09f541b90c7918c819e98f8c6c034a3203b2d5b5610a03736095de9ab2e2e2506c570e007468927cde88f1a8f78adf51bcad7e009ed9d0dc2c3f361f8c046dfa4356761d00bff319e1a41847c92ab81de5c20e21932107b3e679eb2144756cc6f24737748a643a39dd150cd4f1a727ed749a7119ff0a993ac45bed090fb18f5d2aa2bb7ad610cc73502aedd77d7b6c9afc32ad990956531f96cf0a906c0b4af9baaf8f7acc019df8c1acfff89944553b2cc41f0495e2356b1217c7acabae2c4a7724e539d30c0ae6a2957516bbc3f60c7c17d0ce122605c0f43468714102985acf84812f1f8a20029ea7a8a0ff5a9da1478da8cda99d54b5404dc0dee8a0f17005aca3c7825d6a73bb226855d4a9ca245bd2f5cb61e0ac011a54e42764ca600fd1ff20090f2770e9e02d1ef39f757407688c0a7c9a49007854d15282fdb756f4c2f29e37a919242b5735281f57492a0d6cb746389b6e5d261c594f044fb01965b74a11b9aed63d2dd8bc02f47fbae03354bed7b305ffc178853082a9080e6f56167b12ee780b6aa267ff26b94b0bb5387262c1f95eaa0fb284982d4e577b45bcd6085a07d830cced2cd73b6ccb030b0350f0971049e6d3fb916a43bb1ad761ce409df64d54ca591499aef62a79950284991febc6e7f5d386f02c2c81b3e00371e5491a226dfc77c502f5215cadba7ef70ada961a5ddc64080535a03db85fd7eb581f4939076a8756be6fcd3e19697ccb8bf1c9533acf9d487aeae009d1984327176d63edbd5d518cd34011a6b02cbc1170544e2a40d894738d2911d8e6ceb0c6681bab60ccf11043dffa61ad3ea9a11e6ac9556b0d62e0e79388cf89ed70bf98fec949fecc169fead8abc693e5dce6c88e13fb24907ef7ef8197f18301128490680897481138d11164f2bae3f6f53b7683040ccaabbfec3f56a4b439aa2be8ab1f87ce7ab2fbb39d19900138567db5a5ea0de8e7ada9cf6d18e923974783314b51e53347e2c9ca207f78577ab430e2d1038f3c0a205a54625d3bbd17c493d00d4c78dda67c56828da33ae8a0b4836b27bbc31dd9ce49bcf545cc9820baec479a6ec848102c47240e7f1201e4064743533fe44ea68edbf8d1c59b1fc2a9da1809f468ef060a313ed94585d4b1a5cbdf232bee78d6f3b594637b5369cd76eacc7f0dd38cd20ced90819c37736c6c8484af89fca0b330ede4263e365034d25e3fdb37d2fcb5a3a52643116ea43197400c930586ff5ae071a1312b64082433f619d75657bdc372d62ee768aa951b56fe8b3213074e595b3e51944cf9f1eb118b0d99649b36341ba83043adeb65966a1b79960bce3afbd64cfeac47298e4d03655f15e7d11552e39036e71b75ade24b5525fa216fb936a3d074edefad0af62c4edad0b05ab08ebbb7b0f620a7e5814c28cc39032627e3daf911f4db4026ac5331e4e5e4ba4c933ce0b806d97ae09fd99084ba5d34aa4c171f9abc96f832029283680c917154ee08313efbcea05b17a237f46845a774bea6bd91221003e1871d414d502fdf1a65d5a1766c8972c24e831959dd4e67d200d37de99d12ed5633140a100a787a06f10f23bc603b8478f2e3a70e4ae505bae7b0533c3d57a21a17d59d51e93aaa01a49aa492b47c20bf5195938a5b72afc1501b231fa44b4a2baa40206ff5902d7a0ad0ddfab3663e7c99a9e4a63a67214248f79bc827cf6c40286ee16b8807feccd869883488a939840cb5a171cb8b390f234a021f0c69fd6403b1452db3d3c0b381b82261c91c25bd10903f11184af1afb86ee4dd5f4524db05943acc836ef458ceb8c7a34992ea616c106783fdf0bc9da4d1a531b55cc7aa34ea5cfe086c90d10b2340c993574406f9b9ff0f9091c6a64c95a536c5793d9c411dbb4aee6aed04c3e76f4bdb1757ffa9aafb524c10b42fa994b974bb6c008524a1ecf05765fab6285b6d33c92c4fb5584a46d655a5bbac0f7bb03d9cd3ecbe1b4bc5c2496dd54c83daa7d846bbdad26c8d1580b80e6b6b3d6c8e5aab3a4d025fcb5b8be58e955c08991b04c34f610686018b95219e31a2cd0f76aef313fc3ae9391c75c93ef2104d9725940578b4ddf8afbc1ec81804615bd3d2d1122199d409214bed1e4216531b1ceb69f17ef3b15d11108d808f25e0b9721da4cb0a37e2d64d76d995f0a69ecda9047f365381c892c68b52d39c3ff1231fe39cd9be1c08a7d15ca2f79ff9553c8c3c8acaf8a9c58cfec3aa5458c6786faae3905d7689b4c37f2285dbc9e05d06f31ed4f556c541e72ecbe2c34594960517c9781d0e228a32f0e8aa9e0681fb0e1f0d2c19fec2577d5a6a84a5228043bd0e57d5628fbb571203180b587e90998f6f38bdbee3f62f7126d260bf671d8613ac7f9a0db80c7a21430b890d8104c86fc6826d99c7e539cefd9457276221e82d2f25edc371851280d2242fa2d35d28f24858f9bd4af63fbbe179144ec1939be53830d58e99c450f8b4f1322edd9b836c3bcdebca157a74c1b3fb0f06fc51307e80ea4534189e485faf07e9c0dd3485beaeda9ca6d93e5d4e7ff1f2169246fa8ff22c5ead1ba6584f5be392234d66bd186e9f590b80ad0e03b90b3e7136d0302810b895a491ca00e3c94102142408143154de301d362a29e06cd38e09de61fe3ca7d5e121681fea7e43190232f105f739091165b23ae7dec42d373704bd61516e1e9ba173a61b222adbad50c5889ce9c865a51efdffebd06827213aea5e3c5668a4a2f7721d2b34e3dd688e20edd0cf4b48b7e51e7491a1bda9c4d15b4d1aef3b9534c876efeab7a08b9ec22897f691cad2349cd541599a203ad45dfa8ad4a834a41a35876876159ceb1a7c7cac390fa908fec44d86c7864064518211f9971eb0c124a69d96c967840ccc1c61eb2b7e39a95947ec40813ca995a601c3ae7fc1875c72fdcea1e99ae1e6e81799f6d56793f58201e0d895c42b6148477eb89f1f2177dd1951208be963bc308db5e6ecc5462ca68442c40df9e54d6610cab2352e8f987a1962e00e851c4f8b90ad9ec7e834dbafc123bccb56341e4702f20e6aa6d4d189f60520cf020a88a6844d50782cb20f5fea7be0024e004b991b6a564ad6d36961c4080842e607043b8dcf8e7f2e4a9de434a2cf85b8cbd655660adffaa0ca1888ed4c07baf99d163ca27b83f814112a2a2da6e85be7b737bd3448dafae2873176c730ee863169e5e2045d6a60d6d7a7b9bc65ff79b535bd09122f893e2de938d6afd0f9348a9abd08b42ad904b5d55487831ce68c6f471af11490930f7d4d52e53b19c4c4c6864a47533d34ed34b846676ae43d0cf1132a2e97c0212f3dc07857ad972a84dc404dd35cc55e1692fd6c55f5fc469c1c909169124085e063b98d09d997aa0bb93a8edb62f140a2678a230e490b3611d09096a8adbc01fc48c83918d2f5dd6a7dd38101fd19111be9dea5514004a80336541950232d1c02221e935dd79b207d44deea3b40b86b5be430304cfab580fd5c3d921f74d17a6f7c964b4e8d55189f45fd3c5700c5237b90981e9f6902efa6a31981fda143af62f8dccce30e638c094d76898db93d5769e7a49a03d9dd4b97cfde2975c6463e9a63218d117573cec9e58ca8a265e34370f6ecd6278118068a88317aba89277e66e0b98f337448b69c19f3241d359925d39716252536c1a7d40cd9d9cd7ec907e8abf4e66cd74a3770c2a7f0f5a276e7de29c8e16e987b13e4fdcb46bc28290e9c1db52da19b720a8ac0a1b9ee3696a4e9ba19b8be793a64da80b25c898d6397fb658b279181351f27855a4d71504e65d1e04b2a28b1ba8435cad4ac11fe44af55ade14dbdf855cc2d79c165995a7f3bce9a4cab96a38759dd72244100c38d14906fb8702fa399724167f627b979931c8e26d96a4be094656e9fc9c44d9f7cf9583bd7712ad55fdabab735290096e4dd93e47abb0c0efee592a4776306043b81b42d417c659a68479196c8e2d65899aa371a43e65bf6328578ee9e470f55fea5ce8f3900c65cb4d3b3de071fc64b44384aa82445b3a1115150086b1c254dd5e9d52705cd965dc7cfd16cbd7bd34012358efbd2ccf8efc7b5d8fa164fa46a7c1e5a0af4ee447fdc7ff0f6ca83283ce1d891bb820fa4c1ebd9f6b6339b36cbf328567b3459c3f65675e55d8ca3e08560d7aedd34928eb9eb7b4426fd57f7f8b6ee8b6aab3b0faeb25e24795b079cb1e77c2d1b1136891329f4e9bda4f1a26dc2c981870d2827e4369c56609d9580c05a9df2ad88e018d245e9e0510e1ed06b4344b71196b53a34a9e2f82424294f5ae4e95b72f3edfe6452b3769073ccbbcce0ec61e160a49eaf0c547d5ddef166755ef8258dc8d3b98a6cf5ebb5baee886e079a00d16382d99e152a86a874da750ab32bed00cb8506620afaed7411eb8ccea895c875a7dc7db40635cb68e532e8a1a305f706ca86249752251429a7cc174f19ab52a36475bd3435fdeb4c31eb432475a541c7f1d9c354dd0a5ae81ef04ee3d34db782c9d3a18e1ac957925be17fbfc030e40dd7a6d0fedae701621a0801749a074e0c4046739b83bd10ea14d6a8d30b61ff3d4a1c7393d4dc17fe600293881908e5441f8422f4e09e8af763e2cd9e3d8349cf8064de08f009a06e4fffe8212f9adc175beede54bbb1f28e99f13f04ff60ac1a4c447381ac068c018a60159ba57614c357b62b2b8ef1cb9b84e056ffa18bc461a8ce52352f8014d5e63032fad3f43d0cc114acb8d62c242f5a6635da1bb71eb792bf2a0ba957b609274c1d283a6efcb9b9adddd826287dceb589d39b4c8cc41b4cc667a8f18986b96c210895f4bfb80486a67c7e3f80d109a8f6fc5730b418d1cc64caf04a4a988c234edb0fd0b56cad3265e57c2d2b68c482810087d78802681d88c5868b9f2768c13307945933a7b652000b23f2deca0a8fe762f64b266fed6a7e15cf1ba1719e4ec95949cf85d46665c2ad3296ea7b702d260ae491490f6c728e1bc73d8b43b98e41a239d76ed9dd2a31cf61a5aa8e260043a8f2c7acc18d65204b5a40bdf4207c9fb068647b563cfc23c5e2365586227f21b0b34a8223b41d3d0e20130b8529de01ca6f3aa66b07e91f48df14dd50f5fa65feae455d38a65ff490ca764fb6ddaf55f212f5526368247242446e41ddedb27268a30d6363645423e8709383ea4a8fee3b0b3914423ebdd295cd1394a0dcc744ad15116935b1524fc79b89f628a70015717417be5d57ab90fec58d5bd50a90e4fefe261ed75023928087980a603318ac1f5ff6891be900505e194e23da27a32e81188077b1b18662a56649f0647534d9a938fa062cf83a407bae595ed517fe8a5df2378680425a702007226927916ad26651fa88a51f0d76959c93b659b554c25c25715996342838b580d4a262a184b713db29fbc4097e0810f46345b829d550660505c9431c66efc60b718a9ea6ce88225ac311caa43b3a8f81c2b65c68296bfc06fbdc846470a62ed89ef1c177f4e1ca3251f0d208ec880dd8d687afa3d7e6fc7b987c8559902c8195eae1e564a5825bb037592ea9084e798f1f07c0b1b3b702b8a6843b1f2fc7b4edce7b11208fe11d4a146a0e19ee0ce98127bb92282f108ec2dfc77299665c01216d29ab8843c130f42f92bf1b0abc529e419bbc01f5fe0a0b1d0ce60480abcde2d929a4a366346b92880358404a02b85094400c1296361849b67eb4acc4effac0540d621632b53a457340724f7025a3018cf28deb72662f13cd1a9eb977e570fb0a93055e8230c700efeeae40022179cf825eeb5dc03d78fe56ee77107cbfd26675d621cfb41f55e0d35160a12a84eac5823fb1eda80a0e37c4586f1ef65ed876e7924aba0877663182fbf6f9038fcd7d82eaef7fa2035bdddf83839af987fbba676b628938fb5159e219800bb050370b3bf2afc8f2c258235b1dc4d99e60428ac62facc987b6a412766d4f3c5edcbe6ad67e0bc8528511fc504172293d75269cf84435fef814e85e2d93215a01eae9af0cec2d409e336845126482bffffa4451188882fc75a08c59cddcc1cfb15019d34d0d76a76cbe5c02905f391799432b610a7e6259a373acd20a6e36eb85f4db9f8c526bd3645a988a8025a856fec51ead03fe40638d44ea134c0a5dbf57b8332215ba20008585344d81047e4ca0b1d3b132b996e8fec44a55ba8c28b9f412436d63b73d99b8b5c167efd6000edf1a58cb4258ef3f1de22e6a30da3c0d7c7a5841a5ec4e240474b8808dd3f51c00c567dbfccaeacce29147bd1ff433a3e40472bfcf9c1cf8574148f3bffd4386e62fdae7f86c1913c481686784d88ac9107ffe228e7af71e63bfff2730c74389faa81d6d7e1308a5fd7f88b432a6f9508808ac799dfd2390d1a785b0791ce737b6b5c1ad4137b0acdd39f5f9e224583199efa1d37ff1b69da75e2b36b943c160aec6a4794207bf8ac8b44be8146b7048aee2f884c40567162e6144c9d7604593730385a803179f8324398b1f4c3837a535ff9afd16a69ee490f1becb66d1d045fa992d0ffcfe5451fecbff4527c89ed25531b94df33c1a297f0c314e467e02e8cc1c08dbbccb394b17eebc4c40b0e07b670f38ecf59ccdab43efec73d674b0cce9dcd614168980c610a6d33b924f029c027427bd8fe5df703bbecefbc875bc49aa24110fef0b90adf863ccded091d0bd929f314378d3bbc6fbd05589ae7f472b6333b337fcf0dc83de819c32d14f6bc9b8aa048f79d019b232013522bd2f49ad6d67e56b7148239db1bf8896c675bd1f12256b70cde5804ae9f60d13d217a8d717a56da5d00f97616942047719aa98b1bb94bad9d7fa8b980a3bd574dfcc94fef0f804b63a0aae64c4c6f74b504985ceefd5f374fbc29a7b3bc0b7048b40d4e8fd2b52de68a91f73ca0daade64de49361f9bac093a42ffca83398aa3d6c8b2eb5c3e33ff70dccc65ae6f90424874d54a89794b644e11c64a9e07df7b446e2e919efd3d4a185807425763d93f7f416d54748e2c56b42dc5efc035d300cf965ada12dc62e6ce1f3e38f0a413ac8d0a6219695c3b554e243c1a2152a2aa59aa38c7d0067a890ab2632802d8d234d6dba718f38bbd29d3d9a67a7c9c5ace806c2a3541725762f5ef60753d34c7fc407528622bd61dcc16042838dc03fdb6f691df14755b75c6f744f84c54a7f1daf7975a1c45ce397444dfa7b9d4a2ededd5d2d2c4f8ac1e35dfc1ffa25aea129aa61295d9e11325422f6e0aa463ca4a62ddde689ca6d2ae4f1c92e51032b42d6ad499be78436d00b4502b0931e91d421903357f624b8b35652eeb3bec9904094b3f184095b242bf10965d598584fd73168a8b130ef480052763e7572167aa834ce80d8e11f9807ed2cf23b6ab266b1e3aa6746656ba7b4b56eaa8f1ad15969801bcc6b35ffd86d95a0688ecd611cea08a95cc98cf04cd5f0c87d366964346b303d1eb68f4cae75043930172119abd89a5c985ca2ce9d70d08c44e7abaef422f0529c171191d185f0d7321cda7bdf8120cf520544f10cf8f4719ddd68cb1292caedc14f69e4ee9c17f6946d119290c19156e9e057153e4e0caa4d0eb2564694cec93584c097f9d6764334948c8ced4171f7c2c63ee55eb0a605d8d5cabd6c9cfb6a8e80a594076baaca69a061a41051cc1595b2d6c6b7bb031b250208160791738a9b47dac1e7b7d2bb79f3109c0b99e04399320f718290825c43df78b58343fc2ee278069fec5693e6b09c02a4e0aa2dcd77ce9e818ebef8942cd881da6e8f190e6323684236900665d6ae1ab377f67a576f5ee0758e380a5a6512614fc16f63d7833e9681163752d4fcf27aa6abe0ae4152af252875e3042a65ef8e52d44b4fd19f219f3ee29757dc9a15212f7c39ea27a6c9ab3482889f1eb259941274fb22f8eba45d463640674edfdc739192c50734b5e4d132249548eace347a2c406041a25097a73d1d49b3eadb952b9eebd63705997c47f6c306568e19d6d6388eb06534a40da18f2eeb7b9c7ab3ea6c045e79353a84cea4cc65d8a6829526f9db390fae0666badb4ca1ec81fe85bcc4b8a8eaf7c3859d35571346b5eefc8531f559463fc68f0d97f12e117ffc4588153d0f7a9ad069d5d74dd9ddf82891c9f9e39025346270fdaa81310f6bb936c964005532f873feca6130246451c2346c377848652d95249e3329c000ed3b6f2dd3adc6d980eb3c849a9fdfc222b63a4e619cc83240a32cf90d87c2ec2f911e00a2038a5a4c7e426fac4e94c713bb3653a3ae6e35344078b4e62a35166532ab4fd5617e90f8f85240ae23fa7f722765dc665585b85a4120beee51956a116b7bb178dafc7cf46b39fb76fcabacb7534a3ad0e05bbf134db383cfb202a4088e8784fc9745e8874719357d9c14b94ea1f4a8c6748e007747eca808bdc69c48cd3905436a92d032ecce9863dfc8bc90aff3a4368adc203a981da864aba7ac830a68b83bb14317c3281e631c7c713d9600e7cd54de728cef31214912bc2e28f3846f999457cca441c004d850842067e8c1d0878fcbec2e41b56416f45898a922fa9abf4b0f8142ae2ee69d717e6c6a22490628cfe535488928b3651151b6e7fc37cc16c1c02e9bb22771503728ff6760a0c3486c157d339518126194ed31054288245c99608e412f85fd6328e82e82a30d8798dd17a04cba9ac3f2043f5a7fc250a8b09d9e8fc946b6058faed4e64577212b87bc555268fad7d1cca3cc94b00f5df09b8306a19750c6097963d9cbe2a2f8d2dc2cb00614cab48d3ff2a3d4a0058a01ee949e63193b86662c7c642a2e61545fa7d39ba92b306202624529bedfd38f292a2d2abdb117ca0397624f172f49a70a8f6f9280c6182461d9a01d48eb99d30a898a29d0a5c8818eaae1aec4b58607c37133b495750b1480e77d15533f99768306d5961940b2237dda5ca6d73f8a46a5807b5dba817dfcddc79336710c5ca0879119f967cb84b6cb399c01db1815170fb00be2dfea844bca0ce23d7bceb876d343f622e6b1bf929b949b719de1782780f32fca8b1a49953cb04ccb3c73898de20203599fb47c6e9b873d32dd3a58b6173df24d1e8683a4f2ee346184ce95cae5aa99d67ea87b84f21ff86bace154862b975a4e495eba98149b55f31268fdaf65de0a7fe490920d465a3defb33b643b48c4debffdff838290d6c337e20fae8bf202687259e75b365900962052ef404c22ef1d34af8fb119bc1b25c601321def3fe43ba807509c5fd1e3acbce952c7737ecfe9acdf4ee0699c75152ef6d8cc4e5bd8bc8cb42dca8647469cfa5d72f01b62173e7c354af5d350b66665c82c19dd29ff743143e7c724ce31d5c6f6d127c0965a6e52bfca53a5a037c731684969f4dfd8395f739922535cc05114e4db285dbd1f5f14e7290b5e4335cbef5b7c86124317970a9d1635675e0736e6edbc913c297059ac88c0393770cb1b84743ffc178c2a7af37a64fee208518186c0b2ebdb62b26cc42204638110aab27c8447c5a8fb1ccf9a151d4514d6ee0b857db11e51708260f8ae84f8827e7d88bf487366e6cd310a82882a53a84f2018733403c9771993302eb3c1ccaf6363932348152142702967238c85d36b4eab09ca2284ec4156f6710876c36cfcaddb86f5f100ea42242c3266cd8cdbc95538b7c1c1a6e13dc24448add992ed8dde8493e31a432f5a80e226f0b63b364c34e34f82f044414e1b381c21c914718e14d69c7b9f52ab1d3b1908c85c265aa80edef45d005923b5042f9b95b281cc036f7d972d12a04b7197ba12da828a25af6835341f491cb4117e876a21c155434c889aee98b5a3533f1693071d9ce895792f7af21987987d6a8097fec47d91d6f130ec552b8478ea34ceb6eda96c93564a27b4d3813ae8b47fc588a43ccdd32aaa48f5aa2cd3383c6d4c00918fce703467f6f4825334c68ba74ae604566365840b483978049090034ce41134c89e324fb646a80dc30b57ace856ba2b8f6c15a071533ba3a584fbef62b0f7f6459fc3685ff7ec55a2d511347a9f43c5cef678eac4583e865831bb819d5ee9029e628ed2ac988e58f22d2fece9bc67c7b000cdc1598d9b592622bb86e4e78d10e637e1a06f6300cfef8850179f2cbf96a61150cebba8525d98886f1dbfe2674e86f84fa5d5fc2902e481f86f93eb01ac2e830fa28076a2e250c245361b063e4e503b511663c99942a77c8bf5c182d1e2207220cb4aa88638c42d659d9727a02bc88778735003b3a1a96fcb0f1fd71a91ffd48fc8b376eb3eba4572d866497545e1190c23c6c8ca322d3efb051b4ee4af4518cadac5dcbec091c64de6da0284fd5c14571a9dcee7cd8272a564d0bcc92ac55c1bfe763f1fdac117a47d8007c15e01f9e2b2f2e6cc8de76e1bed95dac25459d69da0359dd0b366dcdb16ae9825ff88678f4b4d5ead5f6f4259efe493962219018ae29d0748d092d3b2822e0ce353e56b153bc158a10ab20996b986ce07cf5a2da3f02db5fefe1dd468129c742d303461b6c35d4fe06ed5445e779df6bd681bf3f83a19e75da77ed19e107166b4cbfd71ba648a44693316f421fc730a473f3c080518e8ff9edcc589a01714a91bee251956d7acef265c883c1e560989bc33c4666498c44bf46d5ae229385fd66de5a14c318cf64d070d705578bae3c38c388395b592f57d993fa87cc25e41aab8f7ca88fdc67ec3eadc000ab832be4a28fcdae75f1ca884ab9a7b6d01628813d81730ebcfe0c39215546232d2e7af110381798bd9cfaa57dfa1bdda7cb67b03ecea6cc51c359217fc3bbd6cf1869a3660177ad9af53df44de0240311c95ac1a163afc831ef1b83cc2ca04793f847444fa1797d26d9bba440a0f33b8eba8b680fae0135e6b6b6c5f75641fd3f49d003f106827b02a70d01d0b0ae1dd597e8f0bb1097596edca783e24130a72141e33310ccaf3f7092c68a86c8601ffe0e1f9234697bc1a6e8d59f406adc187a5b5cff18c6070f8a449f4b3df755107021408401d57715d51c5242938f22b1876722d9b127d3d3cead6c850036f11770b4ad0564e8ff829b85a6a31f05961e82a3d57af4ab5a93ff540b2620e0e75868e205eaf2bc9af647c645d905c7972bdb5b9badecc83d088fe625eb1169d3b92d93900f92537fb7c038f1cf1b85124e99123eecd2ea1a16ee7c1ba8713c72655cb50de4b1547a1fb396e6ef57973af2edbe8cb1f635003d7b375a0213f87ca5910adfaa709561bde8af809fcbc95407a8cc0a22df3422e8392e5ea9f14d38ff3dd1e80fb6387356e8d75f894575074985b0295f63960ed61ea908ba8ca4af139cd5cf1623523737b14bf384045f1771dd46d00520bf6c2ee053e4809c59b2fd66eb5a7124264bf1cfe09902607a75be0c346a1d1cb3b91ec4bbc853366fbeb6c43b53d2dce198c6674e880087e836515256146be82d3b8cd8e2717431bd3fa9523092b3423eb89317b437fe145b158f49b7fbdd2079db55081776561363ae446b9e85d02554f19161081c4157fa39fdaf901e99ac7ef4733fed5651523a7a3115a92c7ab3de422fb3ca3ffc4d954f7c04d02b14a191df5448f4915d2b76c3138c54ede8decda9f4d6f9d444759e4485847b602ea3ed5467103a4cc86cd923413ea37f5a5d98386d7e9b83fc8dbad4562db3a4b9b6a823be89e0d39a14a4c706b204d14f215a53236a9d43e48b70203c61a26adf6a7223d6c7b683e214bfc6f865d1006836a229a2fd7f3ad4399cd9845b3cd0317ed86858b54197efad92550ffed3801e98b3558f69d48a7f6b9bafa6b0ca4c343cbd3efbafb25917414481cae973f77be92fcff46faea09834bf12e597096a6bb533f1027a5de8822eb02ebf6a93e80350ca4aa18aa11b5f1544002377f2fc4d02d76bfad43609a96e5f160c2701f0350969d4d63b54a0fc4c46de6c150c5453333d6cbfdcceb7894e3dfeab04a179717b59ecbe29c1926dde869cc592b59689104adb5c275c742094cda372741ee7de156bb4038197499fe44f8ea32a03d78edb6aab0a3e0223883a7a80b9b66c036070f85ba60c233c6cc61e649ae13cb37bfce256266fca18734c482ec9ce931ae5dac988d82360ec3a966a53216bfa5a9bb2fff54103501f92337111edb838af7dabdaf9e545fde8e829d36c4106e07987ec0ddad039b48824d5071578196c0845c5bc223dfb5dcb2c2101caf8435812b420bec73ca0270d8f9b8c0a1540392a6a47bb5ded2687524787501a52b8813b41f267413dc05b1d6e91c3de5678448dbfe0a53e751e0507e7859eedb95945f1ec9a93130a326075c48ddc683268b0c0b301748df4987c9a62d4d32dac517c4ee5ca0d21769d2d996fa70605569b84d07ed235871686a7b0005fa950985597356f3df95373348b8dd42c3de40c363c7bb1f3a5e93688dd8da604709c7a761db935940e8cca99dee0d2cebefe2a477416dd71344f46f15381915c406099b63b7e87520b5eaadc1392e8cbfa55b0952bcde31fe278df9001116faad5082a667736c2c7987f09b02571c80a07c83d0de79b7f7327252f11bd0c8e1aad2cf6561b8bc0f3dc226b9cb285f31df0e27f435a03bd054c9468de0e285571736e3abcd43ccf0935dd9723ac192a5340fa32cf358116b58dd698319aa62d6c689b4172f58fbf7250a86bd4d28a722f5e47fded680d3bd93446a8611d66a228433f2a84d193eec946a2b61abc8b7f2ffee6014ef1e36ab8d300f1f03b668a06bf3b36304fe187202b9629acedc0aab57159ca4ac1044d189ee109b22d05e53b50713f1879ba22a9467ebbc0adca3c9c83a380a76120f83e29e0acbc366fd5e6fe9538dd46707f98ef13f9112c067656938f8d233a2582640a0dd73a0fd727607cae3e058d05ecdf3ba9c0655e084a580efe60166efddef4dfba01644760b21984cd922dd9f9f8bfa8468ad11244731ab770e44d18c75ea4ce32f8e9be5a88dee24288d0f3f37c12e6e5580f79a1214878ecfdd44d72de35626acbac158f08026af40269a605eae34c9d2b5279e736c462bdfc5b9f747968d8835f620e967b2f8fc8f01b690920cd22fa5f2f4c9162b87db3732b12bbd7c5a281c6e45a451c051f44d0c208c856703efd00976ca68e824ea73a42b79f2660c93d8f1f7bc9079723eece362aa26bc99898800704371b2db32738c83acbb0c612ff5c0de39a3d3bd7faa0355f98f7879310415e388961f0fc5e0d414086e934dc84f6ef2b2c72d7125370e0a00929c64b9cdd3459001e0a706b28a492a9db44f8a98e9efdc20871443c9c7b6276841f8bb430fb3a08b6de7797550f6a018fb56d60a3b6e2808090ac3e27583f773e802a5bfab854706b29d151e69885a1c29708ceccd5e37c0852dcb322f1cb1cfdbab45138f680ec6b83e08358b1eddd0b8bc202d2628c1912b40de274ab98d802de870042d103fa8c4d7ab32cf1ba04acc8fcf385abb7000b8715808049743416f66a8601166c4fa64e4174712913a655f8d23d0b3086711eb192c0ae4cd437bf560cf9acc39a0c35cc148446a217ce0bc241ffa8547e323ebf4232d08d6638946a2287b69abe598b5fa17ded452a8fe72528a915bbc2bdceb4b74495161f831e2cd3c18603a1c214cc585447795164261b685070371c211ed0e6db53d6b723c064a93493099ae20b321953a804d80c803ff4f42096c9485ecf58ed0bac831e1ec69a65427b140fcef03ac33175852ec213110aae3e8817a230af42aef8319b3ccd9e4759d57302ce27c16a373de9e0ea637cc363621739870c3b1003494ab02d692b5ed101a4674e46f4a2fa43312dc155e6dd037842a51b4258d1d3282ebf33a1448a94b536ed30166979540b6194eaa60ed5feab43479d7240ea233e755dea98c0488f7c28c2e80594cb1a35478c1010514cbbe810768c4669f9a699bf21ee229cce1823d0d080ac4b25a0341416ae5631be9ef3da91b62bf21d2fb60a9a5f1c988633aee74cb614c4ddd1fb69801bc641c8579b724854f72417739a365d8d4a2c6abd516bc7a29af443b2bbcbed8178666de69c7f24b1bfca939d9f6051322ad9405c79639977096bec8c4a01242c07267cf127d132c8321437f64af53a2f542156facbe284c2f481aff9089f2a3e82e109ddb94e354aecd7ddf0d33c697e6276e6a108db7a5b7aaac1c43c87acbf92543dd56a9ac113828538559ab3df17f8eabdf33800e6b9e2bf1ce84a2df838c6281e5610795f059d67ab41c111aeffe373509743010eea07696becfd26460f42e9e2da9343e8b6a380488f0150922990bc831c34442e2dbf214b3a31d587a6bea41d37f253eaa84eea3cea8866a22d476b20253302027ae986f0ace9cb15fb50c915e2f01e0851e3f42569490da0adbe6f72b434bedea86d3970f28ab85682592a066e750d4fc6ff5542e10749952abd66e10efecf42d8eccc24759685bd6dc5354a00c90852554bba59cae05fa4b6d7dea32edd57d03ad9c2b61e090dfe4090159d21df2d03fabdf7d6d6e4d5c322621f305fe36a2cdeb01f55957025b1040868005e2e9345d12740b50c5b93d77d19f159a4570450fe2cc09032a97e65bfc00fbfa439c1b08695c7fd8205eba6e300888e400f8e6aa0536b7aba8857c467783fef891d8dfbf591693bd0108d118899574ec6997a69e1597e72db349161b4ea59b2969b16317c5f0e991bb0e3f641234652455e79a94d33e900dc62be124f6595c0cf135aef43bfb683b5b2086aca602ec082adb2eea7e027c483f19e139f3c8c68556a47e86071e2a04a4d97a70f4619a92e214f34995eaca3a03c97d0f2f79348c18f22ce59d92a49e7850c90e4d5b2d88a21e9cf685e4ab30f90c2066d420165cd8ec320237c3cf753c85e9d23daa7a89eac386f0180d1f4c959c8ac4b35941032aad8f882319ff4922cfa9351739ea35f62211db0e4b88c993303804fd818319050e8378258b88fdf6a15fdfb62ca490500f8f8af3f823c5628ebfabc27c3137f8c963093adc60ab406e850bb61dfae32638de7666deb7b66742f1206b03cdf2c21b7546092363c7cfb7c78101ac8f9ae172fbf36e889faf0cbbd7839fa903b44a9bd74fbdf9d9d0db2275589ffa6029f52409b29af38795650462379c668ff0b9824067c0d0cfb087831effc9a5c329821844d9a2ad09f510822d8898ce67752ed152a884099189d33d4174fd3d567076d3ffcd24b37a9a6e9e2f29ee31b37fdff5ef593967b346b8e550bdb1a283bd2ed13d8d7dda7b9bb5286ea376e015b317b1cf74b3fb08c6691e9dfcbb7dc1321593eabbff44c0eb1040c227bff9ac3d0336a74960f6fc601a6d27bb74ecf7bd63bcb6299ecbc202838df700548b00dfb0153273e218ae3c2950cfc58730b32c53ed00470b6ce07188ccab335eaefe4ba152b729cf6a7050a0463d1c90ebfa2538066abc97ac40071331052c88364130659b884508df371380adedc4d8e5124e6a42ba65253af0644cfa517acb2b9470ea8cfa131410d57dd722d5a8c887ee08a557e4308217c182a36a1e43a31f600e6991812b28396b905b92b79cb1aeb7c8b73da211b8f99f03554d3f6acec3dfd8af1dfab6993977432bea976c182f8b9bb16b09ca41f57904d4a1d13ba567ae79f0981e89a78d629421a2d07bf4fca5537ea1a6df773618f894349585764cb0f845a9564c509390e2524a0b34ca91d90bdfc963e0f69e7de8a6920caf0abb05c0d9af6f2cbbeeb668eace0a9f358ca0418be0532029c284ad0310a85b0e7b8e4e006621b5b6a0f0d9ece44128fb4229f2f3f9d4c4b2ef291963ec81d2522bbedf0599da691ffb3c1fb6090d845a921806752ea80cc7d4a8fd41b95c68dd20aaa464b9a51d9d2e1892400ac86f2250b65f8db81c1e719602deeb239f1360d47b25c3e8f4d35e963a45f2d1d6e0d36fb6b0eae9aec17c254967cb81ae1152cf85fb0e2c856adfdd5c03380577788132f832df60aae1b31825af8b02101ec2c33125fed6d2db157ce1612de86aa9bb92b268eb0acc2df1cb0ae965930bed610693bf3707c12d41a2d04188f280a71292b78724f01f4fd06e77c4ccf66869ccab42b8130ac0121d4c690477fe0021bdb0a181fde0dc7701c65d31b4c8a0109aebe128d73a052776cbb3159a1152bbf51986c755b6afda974d1008a8d8e426e12cc14f260e1303084025567537d417a45eaf83111660d382bcc91e61b41eb07f9a43a583fb97a12fe95225e38e73af7b2886c55de1f3efc45762bf5a365239be6337c77dcb94086885abdad7362494edaf4b0eab553ebf4401016c1ba86f3b16e8a3af012b777003d8b7bcf6b28f1745a516c413ca8824f9bbdff5d26685243870573eb05aeea8d3a187d82a3da46ad6e789351636e4d6e34adb1202a5b52b86fb48609da1980bf621045f33610883659914a1653dc12b3c70e6cd302bcf52e127b9b3599a8645447a24d1955b87561e82e4c410bb6c522b2bdbe756fd48ca15ca0aa938a1389282de6426d4c77f581bed84c387221e5f055141e744389c72eaac24aedc37eaf6e66156d924c02d2298e585bb9d134ad77933614be395154ae9835f2ff90a47a601014164ee29db285ea6aeea90c18cf56d998f165447d0b5c34e798042de784ccb1f411f8f2376caf19bf4fb111ea79e978cac40a5cf58449e22270ac226660a3804b4c988229512ef412939c338836949271d6c2c5f2c267dd355e5a40d9d416b9ca8409e56ff92244200e44a6bcf238f340dc4fa6bccc31d9478c67693205f48df64408070a8b4ea9faa097ae07878b7b025fcbbf02655938e59e31563ff466d0db889cf2625413b602940e47768d161d5130cbef7a98f37a4200691188557ff17a40192d1057f5e421b7e5894cdb8b3495bf2d81ac8b86bdac0bf8bfe9b8a9680451d635a9a0ca9893d616a09b9dd51d97e7d26d3aa2577918085af0b9d007360aec434411e562c29744a55bda82253d4a29030de460cdb7111c47884585f9d219857c2a2b0fa20d36a59d9e5f81a0ecbb5c6e30c4ac358ed15f32e0a5018def5886b4b2408f0fe39faf08d6ddb9cef2fd81eda374f27a9ebeab53d9454e43322fb3df87f5988a4f5c92cf34c723fd3603800d4d2a9b5148a8f8681793cd15feef7cf824e8f5c27cf1515c578927dd1e3481401b79ac7e67ab99cc53cdfedb0736e8e1e3eec069de6fc98014751c7ad952c0e4fcf1e1e3aab481b1ee67b2bb7bc9a5f38e3ad908071a3c49f6d9ebb926d6d192017ca3c367889cf6f54193bdc2f07de98f01e19f70080b2ab96589a65e1d01e65a24459b79483daf6a3bb9a66324a141e163f6d37f9f477551fd7615d4a6b01ccfd41f1265e4fe72de882042153e29a48f5ecb4418c56c854f1f36579eb8bb0a1ffc94bb5c62c1adbb42df4c854f52d59d81645ac5b95d5a950ba30011dc22a61d4c66d4769b646154f85099f115282ce721362c995a6bfe6d7d45b14060e15f213d967548d668ce7206da093986c9bd746574d0969a6915b1490f3afd7bc685b8debd5f84af02350cf2e83dcd23c28b59bf9fe549543af91173fd1bda7242af2e073265e6b300f4197f157b3dc634f14afe40b8925c0619e19ad32ba0fc98cfcb717908e7b7026e20136142c651c6146abdc5387e6a46f9e4e2bab6772f4f970a0a3ea10be2f911946e1eb30a007885932b72018dac7b9cbdb50b115af7f481974956882c334bd1e22d2872de287609ea9e38b1c979ffb256ef097dd3e419fe142357118a61e491d2cc5711e7eb12bf85168c619816b3e6b3fde23b67da186ef283b09e6cbf8de394a5c564225e1753d1ab633a0fbeba8008c77af937bd393b2f253f0cdb880176331983e72ee2e43ec0e3de3522e57d75aebb30c9ebe48e8a9576dc5597e56322596e6071c41894f2208982f4783f883895a502b8a8825bad08f4a9405bdbb1609326260f6a1268276da28986199a55bd331351b1cbbe657fbeb868dc2e73980c3f5fa217811cd0bf76b1789808f6ae78555417c17bf4a00e022031d03cd543f188385eaaff8e2679044b6913d0a9cf3ae2870f32a540c602fd46672543c803753538dfea1e9b569856774e2dcd1dc38a8a0f2e802f7c9dcc3e23b1615fdca45358320543015a7f4b9975c6be2e0003416505f29aa9908080efa3841f1e8519ed31638b66ebcc7c1c53e792b7c035bfe287b3af524d17edc59b8a90cfd90dd6cb53827c423749a40effcf22d07f31b78221c1915bb852f783b3891a8f1f13c91f32bcad91f728fddd8cfa624960e87748a6a6c70701041fe62f6775517115211c21fd5eadbe7c2c66eddb40b6a79562106c2cb28eb9906b0a7d76c96b795ade983bdf834e3ae4f23dcb5073884a292048322b82faf4e4e569eeb2f73168845e143d3773e346ec1289541f40217ba5d87b998c3796ae8c98fd29392bb176110d6b4b950e93c37832435933366b434e5693ecf84aca9e9fc9c80d2380c111fab4b5f67425c32384137a48e08ac8684874c3f62c6eee8dc8547a484e68b1469dd215811e905c33caad34e44d0c21eeec26ab94f3e65d5c469dc4c6a293ef97b710082dfb0ba3e902a583ec4b0ccb49545b02414acd68b90026b71b94c56aa510b7b4d9041a0c3077a5d693841cfeffc1ccaf39f24e7a4166278df813dddf5fc28b64ad1fec3b3f37df795810adf4f6db5e3a1fee12004133791b1ba38a7c8eb47ac8e271c4ce40b39252fe72eeca65659a7cf7f290da196240dc9b12d93f8c5d0f5c477187d6214843d25c9c68a30394f30655ff2835550ab149251e0950a3574916da5d1873e49be21785014f88d05d2602e23942aae9a40b71055f56999f2410eda0ce080b5c246258e19d00ef773a621f3bc25ac8f856b5e7c3981c5933c7adc7517a034173eb580e864d3e25a54b5bab2ecbc2443efc3593f2b02554c44cd3865fad6d04b6b3ee903024a60a682e91ab282367d63b2607121fffff2e86621a8d810f2779d09ada14860cf5c7e29ebff28ab9490a3a791dbd67121df86e4dda36396dd332259d3b4d1e7e3e362ef05a4ae44e19a959030fde889512e00a97ebceefc1ce519737210dc31673201bb3d759f97cf7a9bb269e7f95b0bf5bca11a268f55c51466d1e2938893baa4d169202e3ee232ab06b4646345d0302570fb9b11a68b9c0225b8ba683c21581a31898b153dfb465606869ac06a0794c6152a2c15ade1fd9d280ca1cb0378f49a8d70c25fa4c3aa46afc1c51f02225045edce0bcd6df3c10a345bffa69a33ec46876ab936c75ad65ea939e85acd901f3a800e8d75294df785b134b4807eb79f115c40d8d543c74790a34e80f427136c3c1a021a7237e88a35e119e3a3d4e90691169a4e8f7125e2fe5ab07dcee4deb7caf759fb6ea675afe6de164256018f35b3fcbc05b51f691f6b1e75bb3c782f09954f212196df7578d6d91bff70a58cfb755c135dfabdd025e48773e6c6915f74d92e851cd80f715e316ac51e73cff86308be14b7fb76f3f7b31556fc27809455c3e7585917cebdfe172daa97936a22ced0f9c41c323708c055c9200e2c84afedb3b741f38f8c158baac84c980ade4b79d76cbe278a48430f792dc871506192c97d84df9e0a13b78f083071a0c4aa5957018f0d57fb7db2ed8d6eaa824783855d8dfa8cd0b7156a673220ae56259c6b6ffd0056b3179135a86d9c46a71ae7e1d5e3445dfcc7077d1b47d3fabb03669fa00a1e60ee80cf781a7137481ce3606d7a0d371c8ab1c6ac0d24a409b9843277bf80d475085a7d1ef53085e5971a96d614438abe7ecb462ab586b4e405bf771bc55df645cf97b46372dcc0a386049b4d915d9a8c94c80f4675b86b5df9c78c46d4cd6f204990d03b88507fc64a390fdc8031e3c280caca9a4a9f8f940383337d0bb839740f02c0d26b9100b0501b6f39dd0239bd02cdae1368a6f86129c48a80741e692910365cb17063aae02145899e91b008108565cff0cb8df621448c01a8d8f078b814a5cbac08b492a21c2bd4802cc1e9227c7430713216dd0b9811008ca1a745ce8008751b54a05fb4bf408c9dd2ad0d6077a01aeff6ae5fcf01546776fccc3ca1198d98b3011585b6d985820fae62f24c9813dadf305a53f1746714c80a120de4fbae4eb4d04db7493d64d8ae6149108c1cc2bdde10eb809208e9105f492c7eb6968e8a61b81ea7c879174e7f3c28b5252b9972f178c5c033c2ab5602b57e8072cee15c9fe92a8eaa35afc4a18b1c6b587c9b072fb5f0c72be93920919f221929b2d60b25680fa3b5140fb44d6ef4bcccb532ecde144ae719a41591020ae4152808294eaf134444d93af4546d161e7766b85f10593b80bbf2aab6959342f2f31aa3a49405a2376d66ff00874585669878096783ebec16a29a481f3affb5e642cf0dd0d7c7d2e4018401781bc9d5959895801ea33544e157d924938fa803008a93095518681a4f151ab898aa80be7f80b19b6f8544c2721cd9c8b58cb16ad2e42edc28c76b1390a76005eb458123bf3f00bdca7d449fca167f77fd1b3c9d5cd68c3a8dd368fb7e3343ecdf510c264e38a3099280b8da39f683808fe7ca3b85237955e6d334a7336d9b7f59abc48425bc6591efabb74deee630c1b4a36b5eb2e019a5ac090a96b4c38dbd1c90fcf8eea7430ed3256055d479340a05813b6cd6249dd8b0347af1263902bac43ad9108e6e0f327906f3c6f75443894ff24e7113554b29baacd4fe4319e0e3f61666b7b7e2428b91e7f672650a255a21e357f4f66817ece1defcdb7a04fe00ed05f264cc6edf428e3c7f65b86d93398efe41c14dc45b35675940d59ebb14c04152ebfffa193d5ed95c961965d49d61bd083cecaff3b3c3165a959704b7ed90792a8fa7f278a48e4dcafa81f2f6759f698899b841a94a3a899e3503adf7b903221d5f6ee0901523971d7b962b860f41eacca25cad025aa4e50addfab7537879671fa6d7b8c646184fe81a0dacf4c291336e3ca5804436a009fa472e999ba8798dfee64e6f9ae29597300161903c8043446338523cb80a212a05a0d435e33e04084fd5d7d0ad882de7b90f2050a9d5b7e994011476abc1680a1cd41197fe0a1aec03f80ae08889a9736d9024d694e977a79bb8eb28847e6eb37f10c07932d788a6f38323d10ae4a3a2935090a85522a13a3439db5f0ecf86eae0110dc064faed1bc8ddd6b984798fbca2e48187f8b07970ebc4b52d4f420b33d5cf80a91fb526ca2571e3648ab41a8c8145099cef99e64c4e739b123a8ce62eb202a9d804574045af38a382161de4c45aa71bbbc40ffc32c89d3286227fa654f214112d5390231cf346a331c28ce7231b3a000f0d58e78c5c07cdb5f9cf1b41c9fba3518db8f4d2ee4abe126c6d276b90f89a383cb392603b9dacbb3ccd9b6c27f1af912e125759922ad0f342a98950565992222b58e3b1f58c87557ab7e1ec91b96482f42f22213d2c0cbc089864c38d0c33fb036767a03a4d662dd42403f3f96ee0ec81d03d4898f158a6936a1d24960d08e1cc88fe93926eae19ce5b512184acc26b512ab52f10bc0dd69c42a8dec248ada0c57bb71aa368cc0a37316aaee69da617f12d572cedc53b722defc09ba91cf9faaffcd538d4675f73387c6b2f79987bb31f6573da9f094decd376e205799ed5f4462e8be09f0da3fa19094857c9b1f37f63f7726cffdf59228f11ef9aafe775b66f1fd7be33a323b8bd5f941d8f7f9505eaee7e178db4556c215675400e3f1a9fddf5f074027cbc3d82dc4c3900c65337304a162212e7240526552603e174ecd54e025ce172ff9a6cb3c5ce48204b27e3f6c2bff0d56c8549e37b8e44d5c49bc7c95056b94cc57a5e431a4a032a0314213657ec3b5ee75961168c29a03ae884d7f47454a5c1540da39f9ad8f930042fee2a3eed80773a02cb58424770ac5356d7c2088a09ac9bff3949eea89120590a791db23a6c578338920bf5f9f6309dae02e5aca91b9154582992fbbd917ecf49d78e2cbc51bf6a1cbb69a7b6fbba1840deab557633df00afa3c6664307125f610c26a13335649e06cd5dfdbe7f692fd3b0f75cbd5f7d4ff6755da2250cdaadd731b38074c8abe02e46ff5f8d57fa5d880b22826402653e2bec162fcaa61df39d6c487af5083c142463a5deb4c553e676df935516085a7dfadc97c05df6fffa3a8ff6a2d7b2fe2372e362f0c6a4052043329a153fa61b44b6f2d6dd3b7075fe2e382e0b5d5b00bf564690ad76d5de314992387471b792a7d1d5e1fb6ca961e5f1744b5932f64379f01fbf7e53badd7625e517ac38d4a58a7666f19f9bb57565976855ed07e416868e45afac2b2d527b664a1a15b6ee98f06855ee8a091e54f3105f64b360ce8f40b9f0803a1007ab56d39f07263ccf82a341fc16cbc9f943408b74c13b29408566710d9ea459b0ffee7ca98b577d9df6bf5e812a94f585515fed466a49aec5e8416464efa66528c95c9a21b9ea0f1f134158b188dd70d1740a4d47d20d783dd43e02e5d04921aadc05e8bc54e52533b653779d374084412f42979b95338d5d08290eadb04c8fe9293de7234dabf3ed32873860f0dbc4649355572e63673d65447771de4e3810b267c64545184c76c0d04c429a05c90bb1ec9a8c43bf86fa8fa5f1018bc6075250b188180bf8b6a0a8e53c50ef5067539e0e2b1d2cb4d1ccb52683e6abfb1319febbcf4623101565a8fb0552dc5076b78d341812dae1ce4cc0f27a5ca48c59683ffe3add4e6a2cd23f1578049bf3ef40b8ed35ce9e107a95732f26e81b14f36c925dfa59c65e401da388f606503c651b332ce43230834ee7418d6fc82d87e3f291210dc98c6219ae31bf8873c28cad26133eb90fd217bd24c4919ca5afe346452ff2be02444e776ec86b19cc38d80962eab9270922b6c0ab1d01c6977352856aebae76e443abfe65edffb82c5100bf429d41d583e4670f64e41dfdc603ff4bb0051227f5566e13ed0335c04e94f125fadf4d6c10101a64181e4398cc14b8169c6cb5170a244536c89beb888b0bb8f447f543dfb48378ebe50f0cb3db3c9f5ce3ee7c1bc15e5de6897d94c4a0e848e591e11a8b647df2e9046f4e7e8f876dcecb71008795d6bb6aa373bb842b9de7832571bc3111c6cce931f03575faa8f1cbc0812e5adfb470ffb483b8950cc4406ace851c2b9c000b813c93da86d76f3c6e6c00d9bad09eeb14ada9e040ff59888b4467bc114e50b636b0e82f56f6affa631890b0031100c2070b5f065fa2428b74765991e0484b8591fb0fa3e5498c61b3cd353749b60723a0981b8ef4c88ac6d9140ed739a0a50ad8ffc67e3a6b1acd28d33333252c8a9107371d32d92bec81b7ff190ed1376727c3d8668d763400fc192d38778e39c57af49f15190ee0e4b45784f8fe3dca9c10ca30f6a3fbe4b48fd570998f4037a9b25e836d66802e47cada3939158104ae21dbca078444080b37b78479a891c902f02f95b555ba54c1ef65b598b500ce1358b77e559a209c3947fe04e3bdfa6809865f4b1d742ac393aa4b2202273b9a1ca8c0f0d861521d97baf901eaeea287650247378842e53de396d36e2efb19da8ff8c80ccd20fba3dbcaf7c8bfe306cbdc9dd5b8d221a2bf97e4690c64785ef3ce12cbacbb814fd6bf242226f0812d9be6e7e09abf7ec0648ef96328d1bd46f025ae379665a30ccd1930e1760d41a9dea165ebca8856b9d3bf1cb8774236ffe887f57c059c423e831345335c05bcf5b15ee28eef4c0fd749df4b4a91a6d8ae06dd2d42de4ee9d50db298e7b32cbf7a42a330880901a227b93bdf796322599021e0706067e06953c43908b38b654501de44eabdb298bf3d3dc912707a62c950f15e1ea20c76e1fc7c555aede00e36cab5074112fcee78782b60ef9aee6795ead62de8745cfc3d5873ccff3b0e825fdb0e761a1eb7596a88a2d56850799981d3024890283508bc98f7190fc61bc647879a18162c5ca0629a94c71f5700881349e986c386e88381936c236356a33ccd8fef3c01f4f0450427c314912b6b4b435638b44981c347268b2b1c393dc1bfb1d55fbfaab3d54d2a4a23c715d35dda033565eb9b9c2820a6c72f8c1c35aef7633d070720347e9e90c8fa4a91a18142c68f1d2c5c90e585b762b89465347bab96131eede8270a1626bc77417df7efe5ff8ba31240d0818b219a6845f30d0a5883740c8b03411523e69a981bb0e6fc141b5c4d440035ffce34014d7726f2961c9b6dc5a71829030f3095931f42c22a207d6f067c3dcb735561b6d2c3eb0d9c82863c42a0d9b266dac8638755b523a72bc904a5e96aa3cf14812b35e79b37e7c1dae17776fb8addc0375b6d6c6c27a235992d8cb32cba9058b6b2dd11ea82f1c28ec17776f382da97f2c2198282ef14f59f6409d3fec1f7ea276ac2f59acb5925e42918242a5811a5133b0c421e284069016b4e2041143eae1c5c9901d55536ace588b773cb6b5e20fffc88085729ab6804891810556232bc899fce5ce6179fd5c70bf9a8a295905b00bc1af80d4beae735723c96f857b7e994e3950e71558451ca8f3f9b1f8705e7658497297c3b2126da5f8661b550fd4f9ff36e21c88e21c98251b4b5546e764937c6846a863bfc79d87a9bb87bb9166f748e0a5c55e1d8d7ce84fa34cc7185eda2f2f6d96ecf9f1d9449080923a57aec5621ecb3148e044d776b8bb51f4d2d6f3668b4310c1e2112c2ec1e20e58fcc2deb1ba02b60000287c7a2a3881a3c044891b0f899dab936313c31af8799dadeff43f103e48bb0a8e0e70204a7ae0a5d23591fbaa4a935c735f0901c41554683f4f00b968850aaae23fefdfe6007f4aa1324557ffaa46f7b606a05c51a4c2d65a1f67754448e2bcc7381f9c551b3be2dc9d085c54ae28524182121718845c9191c1d22503271d6c901cd141e5031a0bca22a13205ae062a385992aae030fb0189062fa517a6aaac39e38219008aca15452a7c509283529a219a8a28e392002e4959c868ddf01203191426f09291f4c40633322e6140b6a608013bb3826535e613822b3668d5e0c44d171f5b38f801268d15580f30585d7a58900136841492334268d042a6f9910363650b48105a2a1840171bc218098286386760512b78d95216430d60aaac9cf0244f42665471f151240b093a0c79a10c91ae315553704ee25c2909c205ca161fb060c02a2d07e56b0995285b149011b9c1cc6ceb4985a62b1b6cd94156c64c5754d795099d2439ca5c21311b228395dc1b314590f16afab2e4a444592454a6d8e005238820691a32b5e56b4a882d36746c45bd61721bc1865298d4139c208ea812012c6b78247d89b2c20e243c5d5b47ae5899a98036844a5fc182b6c385b11e6580b8814451b9a248050f0f4772c86066d5420d5e686e507541e5e801063664a72c122a537c515283982a334ca5f161ca09a91b725fd05ced30c3d48d03844bd78c16645819919281315031b4f0e3a9096d061dd10b9623549824c1398b622343e543871168c8be44d91ca41a4f528cc8305345cb4b9706494d88f4d001864b101eb6b248a84c419968d05033a38735655c0330020cca08244a6c38b16ab262d8560d626280f0b271646b0246824499c1e14c0d1f56376c7894068d170d625a6c98a295c3105da0c29cb4a12a82855a51b9a248051141ac783942f575230a8a892438f4e82149080e5a564a60592454a620e343d753d70f35b6b0b22e50066acacb112c6caac4f9ac7618d321cd8d1f92c860810102366406115770c8bcf1ca22a1324550950b5d6e2083a56ac8959219a8194762d0d221049baea85c51a4c2485999233b96700411c7aaa11459218c8f1b58e8414b8d152a5320d110d565ab8a87ac3347780c5e32e8a0850c0f4e5368ea8a221557ba647893a50d0c5d593a387184694d0b5e6ac0a9519e7d592454a6a8c0492aeb8a882366aa1890002d30cce0238d1522ca272a02c2bd6845918a114059b29444cc531394056477cf31b6428d194f4bb69c01a1e889be31d971fdc4ebfe913e5e77406fc92ae2858d920ea529f35391ddfd035eb9afa535b9372f980e82072078e0ee58c439f6c03d00a10c04c15aadb57eb58f821da53915af700a76508bcef5eba0b635d01ceafcfc942928071d85e2703e9872d05c2af8d83dc52cde1be5a0b554c83e761d37ee4a39e82c15f2fff7b8c84fd2a6b93b88ba8fc975c96159e2c97dd543989c5b3b6bdfbcf90202e643180b4138550e4c0003151d3650c951464c2df71595d8d60b514ab92a33725394aea892642ff7d5901917dcc6ede5723de4fb951b8b7deba07639b5db0a8204082567babad0309181502736682c5c5cc6d0f8f0a58822612a84b9a20ae366069a93f884068f02908624a9e2654d5a8d2b190196143dc4b2e5d0455bf67c7eb98592a70eeaa1164a76b4d921861b96dce04196c5b4e5158ecb5f0751b2dabe0ea2fd64d32a4c32d537d674ddfbb1cae471d734565696fdf15bcf3dd4e3af14cd73cef5f8a9145a5ada3b957a4fec6a15edb00eabe4277ab60f32f851fc8d894d0a506fb7db915b15c6a68fb844ea5b02f558277fd4db438f16a000a65b7c0620538bcf9e4c2d3e7932c5a1c554899b2e3b9f5e0b256a1aa800d96b8cb076f59cdae110148970372f6fb78e831653701a83ce2da6d2ba6c16b5c745e7bc5cc16cb14fa5b5b8f94381c6691ac7a2855d69574a7d6786918a954e384f640fbbc6c4569e4ce2ea30a17f4318d1871d9fd01bf48b07eabc0fac85a2677b400bdce5d013ad8d85102fec050c07aaf8cb862a0e735f3d51c92f688735f1041631bc743c650412aa8465c71df0a1f184aceb9856b9621e8184127ca8736c2020d193f694c8b7dc2472c5997e18860fd5be7abacaeeb8be98220208fe389c5d767748f0dc4a98b0943c7572f548180ee42f6eb867879540820f5d7187e756c204053610906c166cea393d15b7b5d65a6b714842a439902b537cee64da441e3877da036dc9133c7728e9979a953c4f8896fe8339e7096c2d280440f28c913bf2eba07e9bc5a189176f5fbc254f9ad46935aea8c914d7d6b1b1a075b4b61662a6b616b4dfbd4cc19d8e5eea408ebdebb20b024ad4e6d9651c743ee90a4764c74d8b187ab20151515d76a66403a264680c3ad32e7710a539133742da5dba9097ade2492135032f31596e1bc6b961d8ca0ab3b184ca0cb3032f5c662d18d1611566369c1c96c4e460849816cc0b7a28d2a5c392286640989d3ba3b92b0a2d7232c52e6ea61ec87d42e7c7877ce79ffcf1f27e5064c892e945aa94fef8fa9e60ebf57765de5789e9ba785aac0530b4c932c62acd0a960e3a5ab70c88354ab93032472ccdc8c116e9867c37658baa6c4d437c114249cb143750a262f0ae840002885c6b5531b643141b1f2f6cc962d66aebdf7b43911b4a545216735f7d05c9e7b5517df729c6659cc289daec9292a78ada8d71e1cb99fc626edb9f85b5c44542424d666277bc8267ba05e8e3153cf33192496d2c421f210407acc8d52f129cf0a284b16ca4c74593658a9b2c5352f4b2d19afa5bfcd9e2ee8f3d1468f37ba08a914cdce6e3da91ed1ab4e9b89226d024f7df2285aa9270d24cb1adb931f5a1b78e2d769b0bc72658f256f2bf37e8da41ce42d824a551a4b263f7c9eeb9ae24d9cbe453aca735c16207f24a9e1fc5b56d1f58dc59132a7651f1936477795adce15bf1db2060826c73cd2658fcd8baa8b676b608f8500c1c77b697ba9e4f9fec8e69062dfe15fe41adc0e32e27054ac776b5c3d58563132a795f841f88b975ba7a0ea97fb59d27d2e60157af3b8bc4a38c8c216f86f0c23253e37b412cff93393bc24508d4114f68b67490e12571a12d1ab8e42ff7d61237425ffbaa8f1ab9c3f5ebaef8895ff936056e2beacbe3c83ebf5c7a367af0c0d5a5668b889bdc7564482e309112e603c9952c33a4f8f94981c32100b81b80fcf81302b9c0443d2e7ff00fe69272ebb3fcfef1aa961f8e902192a58c9329cfd526ff8f6992262aeb4b121a2f51e657ae244fb7d6cf71c590ffc9fcfffffa5a66e412b9735c4b9d8d6ea2ae4bd5ecb01d45b866d742ba4a9e4dfe77633f50d656d956da5278f6577ea70f741dd7f18eebf813bd5abff331d76e87fdf2e743f576e329eaacf71ed5711ddba25c6bedba0e7787bb5a71d839aed8ebba0eecf0576bed6a31b2254f8a1b531848968a65fee95fa0f48a768548b9cbf0fb3cafebacadf5df9dc7f9e5a75e363e1f5bb2bf0eb256c277fa1dafe39d5ec73bfd8ed771d2b15651ff6acffb75efd76dfc45714f63a4dce4f9455dcad13e576993ed318a698f0bf2bc3e5c1229879ee8e3f5e1360e3f30c7490e644a8268bebf167fd705132cce4bc774f4c9f1b892297886d15fd7872cd9a2f3a56aaec5bf642915135f0aa35469ade69e38b0f69db86a6dd779def78160adf64dd7c7d682f4f1d2c52f07e7a5634bdd92270772e5b2530ee4762a4765622a63aa5c654cde335dc74c654c1d933395315926a6322626ca84a98c89a98c89097cdb75a79779b5b3b6abde7ffe2d5c6a8bf850c55f0e626e2fc54a7b5c3452862156918e29d40c03676f74fc72f889e007828d3be7e4274f0f8c63368096af2260e0c1f1517f51b9329d4ce1535d421cb1c48a0b074d4f54461a1c514ca32321aa29263b5247945f606c9c9946471c78e590331d1f511ed6bc313d032cf3e8164302a8121a19444ca3a39c1f229a1a584e5f5570a098ba761081328d8e6a63a611c747df8f1ea611aa810fb3715fe09852fa56e87bddc636bc22751a2efbf74f2af6d1622761e072c520e8b46c02c552dc49052453cca31d22a628152e5d889846473b4952cc8a8f4a50214203012880ce10a6898d79747367a61f0d994e6919f61319b59422c6922a36323a7a7ce4498c2063567ce4545658321f1b1d20876974e4d1302b69c4f19147c37cd208c58d8f9c4a20fcbad6b133f88167da41140f60488db42626dd5ae2052d03ac9f7225b544ab2871fa72373b7ca9b2410acaac8d23fdb24549ae032f255c666dec718280275bb83c1d39b031e2e3f142113c805f30d4685313c1913a919501316b630658661836414969b252268d1b9b088e1dd89096668639223876b044881e66a823826307467a6499e1dd5263666a07ac86ab1d244470a4497429ca6db27ccb274dbaa00a489392099227648065822409ba2e383614245a4cccda385631c3122672725942beccda78bb32c34abf78d08224c595dd72e149a714c54c088fea1853234d8aab4f8cec0c788499a69a1122e284508e6822236ab1d08211668b319f884a0f205f7ec498358c647e60cd6ae0c3a446dde554439a79e45ddd7035f02144415c7b22438979f4edb061825c34b46e98479fd50f13ec9c7f0f4457845042addf013d1618e1c50371fdd67dadfbe443b9e048a548a3beaa5a6a631e552ed3c843b9142399ffe452f296f392947ba0523ed4b9afaaec984ed122d9718f8bdab9580f6343d4ccf079103b7c5db0c79a702939e2c8027c00a332418c64d2aa0e722af5e4eed029168fc3ee205cbef9457e4c3b5c4718b8ec613f02d6c63402f1111d62c68669c4622433ac8de0587117d2d373ad91357014016c8c6422992bbe36b649c70ea3708402cd1eae1e49a9a4b2ee09a3d3b22549f77a44208d68940d696566ad2e6183a336d870a199e05897b031bfafa57881c2c4ac8d3d634c00655219f3f52238d2ab277172666deca962ba8e3317c2ccda8862c9a7a8094313fa62210c015c34d0ccdad8a60820aee11a696402281324fb8190ccd0b3a08d02c97549326b630f0e6608d2053889536582a3d8c30c29065bae926a623f510fc58db6468725b3e3ccd8e2eaa1248a1f260a246608d66a637f58b7c9b27ff1e16988a6a2c4062b2fd646a1a2abdb649927d326ae215226381e2087195ab136e2d2ea36593e716dbc0ff4b9db64b9c9f279c129f388e74d02ae8e789934eb879509925f8307d8a24399287e4f54c38d7bcce922a3326b63e8c5ecac2761989846de17f3e846c4ac617034f292e0e46a357cd459914a326b585b33a8cc2f1c9892cc9ef27425cda438cad4e4ccda2894c40cbdef6b8a1834b336fad430435b941d69632698d9f8520e72c49ddea089443166e3fb4444539a487599d926cd5ff61329d70ea2b5f18368d16001cd0447510cd1942652a18e581b8d9cc70f68e6514e1073470447a3f6328f5acb887629313a0ad7a0e54c101fb5942a6826481ae9a1182953f2a499441835520190f2c504491e11346a303f249946203e32409a3013243f8a86539a25131cc5296678136ba3518f1521651efd0eb35d83f3464d74987322e5afcd6419f2658263e865861dd2ee777a736ecec9953c3d909fec1f2b3e25b2d326b23590534a29a594d2dbb808c59df8c09f5b6dadb5fe9bc9a798ddf1e74e43bb09c2f07bb8dfc337a157a71675777d6c2cc29a8d45b7ed03308bb6ab736f7deb6f9e5b097713dfcfede27c6eb7fbf1e7af54147157d0737b1d703e1405937b96190016508cdda977f35c85edd4bf36b90e52c7b57b13ebef70cf6afbd0ce32db6c1f80f9c6e4a2ddfbf8da58b40e97a2ddc6e14efd9d9d9d1da76d22e744ca389dece4b9814cc9caa4831a7b5c2cfd4e69e92797c6859a335bfac981811243961b5161947e7215cc6dd5062a0b120e15c6ba9eccb06e7cd10ae341c70c0130d0e0e406315e57d00c20b7569853ee726b7dd941658fc8b852a2c29a264e564bc6648bab0fab6c0f906d1048525b9c94e01055a64a1c283e8ae45026898f0fc5a831aa55ad95be57bf51b18a14a49f7bdf555bbf2afa50edbe7e9566ddb366b763f889a20f9de8926277a7a028d6af665c075197e2c297ab5cfbacf952b93974dafe27c8014e6ad408e082019440506cd2a4a9b469290f79b1dff25b7ecb1ff1622ff6623fc4bfb156e85ab04302003c2450dcc470603fc41b61ed1b2196e2e2de08b1f269f98989f9fc888905611c1c3005e4f8b307fbb33f7bb47ff36bbace769ef53afb605d67adfdff7f379f28ee88e279ffecc1feecc11eeddb749dfd3667d6fed9b77930b03feb3afb67d65a0bf667d6fed99fa515a579b0077bb0377b30517c340ff66cdeccecd93c9b377b360ff6666ff660a2288aa2288a6ff6665fbf56fc45e0ecff5f3c15fe9a5ff36bd67c9c8ff3713e4e569aa6ac21beacf25be5c6e7bf55fece6513be7eadb5d2efbb1787fbb33c8572b976ae83cf428561f7069dadefb8c35f1339f6bee27f4beafcffff0b695c6774dd9d4b51386149f2cdd67a3a94dc98769ed5418d699399e6aaefd6e2c7d5e26a49b1d6c6200f1d7a9d3aa6feb82bc4ffb6be5314681c2be18fb9b445e7942e859d5b570aaded1e6afbd6bdbda9845c718f1fce945afbc5b05961d8b4b11875ffaff576505be04e2be98d9df6bbe327ddddfb21fca54cd31c378c4ecb7402e1aff935bfe6688c4a1141a5d494a04bd325f9212a9aad7aa347f3474221bafa9ff93783ff93842f76bf7a66dfcc7175af6ea97badeaa0af12c4bddd782a7d6badb5d65a6b9fd66acfcef667bb1f653ee4b562a17cbee8d65a6b29131b7e128a8163bb8462e0b8561f29134b9978e96fb1b5d6d6a755071feabaae13bbc11e298eef287bf844ca5edbae7187ebd8b81bbdd1c6a26bc55db514c77822e5c62b1e052f37f6c68a3b16b693e08e0addafc31e0e3bfa752d7313dd066a5cab872dedba7f526bf5f0a3ed94a67925be1bc853038252ea8197fdb5a3e5da6e3a39d576efce8e8d85e8a5b783b95ac2d7c2c393a2cca53884076a0c7efebd16cf0405b69ee8b17df0933b12ccedc813e7dadddd59fe642a0a04b49008d6bed023bb149759d776f5afef7c635ecca5988700359f0ff3e15856aee8fe18ce29983267ac64adb5d65aad5c6ac52f977e8e530cce1af57229ae653e6bad95d65a1f8b1daede915fadb57ed80f628e4ea853bb3be08ed0f7f5039df87e24bc0feb6e3d96b025c46a0755d2c1fe76119f82dbf5ff0177a3cfe5521c7629fe3e31ac59906375ee7badb556f1f3215a6badf5ffff9b45576badf8dbf148505bdf443b05f404ee036badb5fe96efa3df0792282177b88edd6d4136e1ed4deceedf7e205bc2ab89ff2dd77f8b16f1c4576badf5c1b2f3dcef6fd4bf5aefbe1fb5b1e8c8f384dce1c6d53e1daadf1eae5d69e3a7fd5fbf63d4dc4f411611932d3ae3fe13b2ed3c7c765dd7d50e7f316a7efc58fe0a05b4d61a962851b1091b0b17bdc4f9fcae8d450529a0551e77bb0ac4133616fd7d2d705db58d2baec0c6a26bcffb380a4a2da8819fd7853a392f01b1b0a7e62e873a29d49e0f68f64ce60e6a0684ee1e42438527a5ad1452ffe07363927650e3c6ca7d9569c634840eeabc0fa498524c6fde07de5af84ec3b639f5036ba1f84e45b0166620dadea9ad6d4e590b455bce3bcd097b2640cd10f24eb665318bb52c8e600e6dffb7ff688e8e48c79ac34be9adeee14e67653af6785607e51239e4b995b8262878a714b4cda91d74bb5192fa57eb5f6df74ebb17abcda0f3dea957bb9b14bd7c77c74e9eef73bd1c769ecd147f62cf075df64c33059d76cd5330406e3286cd3785ee824cc91462f4fcf7d3e51462d85c82192923f5b8a8f9492fea75bfde7393ef753badf149f1d75a7b1cdb3298c30773db5cb8e75aee32b55cd8ebe1ab02abdca9ff1a8edb43b3cda12d852e87ca3d6f0a36c380ca315c07c76d4c71935192300ec7bdeda460330c22720c271fc7b56d7589e5189e49a4ea658f07c821580b453aeee45014e9687368b339b6fee7e4386d102481a31ec3e65b456abb1efb57f1de8f26d88a4b60f1cef7d0ef6932044bf60375ee072a91478b1b736d9b137e5f4dacb8966b36d72aa6e3e75aa5a3e7306cdc62316aa662a61746973aa8c4ad972431e990492400000000531640002014108b856251926579ae7c14800c66943c504a36924702a1501890e34008e21006421888011086818c81cc31a9900354c13f840fe23e407181ff6075ad623fe9745c2fd3f647daf80fd40da5a656f4719933075cab2f700fc3a8418e75a85acd35fd25d0bf40de882969b5f47334f9839e01332c8171d9b598f723025c6dec10ee44e8b3dadf0fe7b9ce5d5cd730af7df9909d7a5618007e4db814d15387702588839ef301de6073fc83ea4d235b7b2e3084f94d7b79ccbeb89fef4d4f3c2b9db86725ce09e0fd3f3110ffa2e7f6c20bb64df704d9344f34e96fd195472b07fbe3fa5b0202f895a05fa2e05f6bdff0317a04d81594e9f824f925300fbd10e5cc0375901020d7ae2c06291e597fed4a4fd183e031d40ff7c53dea00f25f413dada77e20d274b708b9c004121d3d0bee9bd9d69cdc3d4571ef3d9ecef266044c72bb2a31377f8859ce71e90aee3011dc78634a807b9b3848617c8c65ed5d0a9493408d0022bcb1b9dde9102792e3e6f6938ad68fddd1c076a14fa10ab5adb06d4217c37cc7667d0edf1a52ed1f3669fdf3c609fa732df964b54555e38db9a5344d69eac720b68f378e7b7e1d7d815e3fe1cfb573f9eca6145ba610a466f52d886cb75ecfc027c120b8e3ba23cc62cd6fc837fb48be279a827d7102603f34a60cf7614441f8954ff675d7afe36eeb154de2cd3c52d69c68338a2c0938900f4463b5861b2c5ebc641ee487be13f471d36e56552889b3c1beff9396ec2d9a01f71339f465d30224cd92914ed75b4d1d4544e264192010f08e02b70865f74add1d721acd8104fb6045b9540225ea2548c5926add21ca5a2a2b180fa721e67d4d727a9022f97151f75fbf5ee42b079294cc2dfac98514a5edf2a6fc9f6fae39e2719ae422499909e16d78560dfa433fd8a1e1ff8761ec07c1e2d78be3e34837d7a18f8de15f05b9814bdd0a2db2a776de8187785bc575b95e9a9f90ecd82ac29ca033dfa13fb81272cf762bfeb246cb1171adad0da25a07aac1a75014f1ca9f150c117801bb4468a443a34dbc950d1971c80f4e89bbda9e7ff5106f6b87602130abb854434042cf8fc9496232a1bde643e39abb89edc8486e7dab0742a2b82aa9bff510f076eb8a7f733274b428f59e4427139e617f663e2cebb10e308fee40e7308d125928baeb341da089cc7d0b8214ec9d619f2d11e1094e8bba308594809282792dd4b05aeb9102dd13c91075fb659ac5476a3453b2abb08a120151c71a0fae8ee0fd9f88773fcd29214e623f00017c262e5c701d737b1c768e8845b2e1d02ffa217d1771bc33ff6e87a2861555b3a18597d48b329f7aed52614043fc48ae25d45c561160d5a7a1eca141f0344ca9a600b13ea5518e58fc8dadb13a9093e7b4366b913372158ab2dcc134136c9a152aed47cac1ecdae9efcea4c3eaa3ec0f4a8088116c82bfcd34df46b94a03233a3b309a3ea388fd5f3435d587883feb8d00331a6d1a3e217880ca7bb53c12fe134514c60eeb6b0efb80e5b59ecf0661b739f753dedaa0c8a168fd975859e3503ea739892232e4df7d82095e58974b8ddd3f81f4e7a66e893d3d6db9502ae693d3ddffc561d768f9549004c5e1c705e552ba5cce9430c4a2ef25ab7902119cfd5191a0221db9f9dad1b6d2e86c0252cbe64480de8692306baa70ace83e87668124b08395d3b86fa9fd3eca38005ad8e1c29696961e7eeb36d69f14821a1fbb1682028db0a2e05e6eddb34293650e56a61c16a3607486e77b40557c22e80abad1918414fedda809049375bb0a535342e67006c3f00dda8ce368eb260798444af8c6a991f09bb1aa8f2a7ea675943274b668d5a56c305ad75e426341cd81677cfdb97011e44f1945da5740cea9c204273963ad7234c09af88f7cf08bf151c055ac41ac261638c521ad30172308a38e49a677de392ee09e9df53ca3565ec6aa2b8c236ceb2d7467b7d37ca4f214b4a356c5f1f31a29e94736c13253e09e75b0677183946b6cbfab701c45d529aaa32d7293988bbfb4032dcf79c0c13b9e9c5fb8a09692d6064f73873ec7c29a43daa856435aaa5f23fd918b832877005570d72fd608990dcfe294776c1252b9cf3fcd4e8503f4b12c069cd3ec422f608bf732ff2f44b645343b2a7268f2ea9ec25d3009baea3aa8dbff53851aeff0d6d4a933dba777bdc1ee8364aca06ae0aed88ac8874a26eaf051be33f7523eb59e237047c39ef294f6f4d7e97c55bdb0a341b3d1a133c0e7286ff69af946f68c33ec64d477fc32ccb1bc5e6c1c2d233387af6dd9a34f966d5010d24dc20aacb81f957a6dff1f328b492b1925d9d6c751a73d0a9aebe1896abc051a7575d0d06d951879e708fb555df57ee57ba4629cd766536d71ffac304f871e90412cf6e313ba2cc5bc31f45e5a1e616270dbf82cd1616c25b8dc1946d16a52367d8683181d07abad3e3720d96659900a99d6f76ed7ac61b50e0c9da5d352d83d86f8c50af936ccfc5689e30231959f56505f34474604833d642f6a615a4cbf1304f85ea0056b497f56fccd1fbc84cfd439dcc08b4a33f1046eddc609df7ef6eff607f1f35c0d3735df51e61f1c2570275dd307f997b4f8879b75837697981111c0ebafa2646c372556c49ca89adf0a8dc1715b06a234400efe287c4718c6d578e5234eb584d09608e79a3164e6b2713c22b847ae0cde351d59ba5e884ab02209810c4574833d01e3adae2bfc941b6ff9f8d804176f705153dc1cc82f4e426270880608192513e39c0f6c7f8e732de084974d3dc306f659cccdc438da7c7d385a9275884387a1837016e40d0c121846ac0b650c6bd0e5c6fec840763038d8dd317f6fbd8a8b62ce57375ac0a0167acded643a8802d785e112167bdb466fee68986ded3fec81fa23b7e309af20abfcef73f8d2207ec9b47197f367563ff208b40d6efe600eb2227bc66b00155b4b90d05e16cfb9d89a7211bd09a073f7308490c390e5c5c61bd1ed23d3796b8eb194427c2d9051e1b844a1df755d9e112c7c7b3f4ddc4141601a7e49dad11faf099e586a46f0be15fa1924c0d7e7b101f054280f88b804264ee1c73987a6637118a8811ebae920e2386ec4fac6335ccef3cf014de609f8a171094be6e15335fede024b6a2e7a0581aa82a4f65f41433fe6a18b185e56e1f104052210daccf802837e6687ea9d0033f35af737bdf823fb7fc45047de5ae003f72ee6ed19f290c83353065e720c031cf9b708be3e497e03ccbf33a8029406813b323c4ea8e91eeba291777a1140099eb2369917bdc63bdec43a8488f07967c31cb721bb2cf180032b1ae0c7047d09f549ceddd2711649d9e578ad5ba80cfaa7d44513c6dd6ba187fb12535bd860120acc6096d4fdd35bc20f260c1797427bf2b8c4a426c09bb7e530c95d487c54135dfa30318b83f51f9453752951647dd4b96ea0a2b9f2c28d2cc65b566857b696ca659b3baf7737bc7807195838c1a1b88bcefc9161044ebadff97a1b83e1c3b3c7e3a7ba81d1ef80081cf9bf383af080af35cbcf4b6f4aeec1bace55384ad1d1ce5d23a37fe550b82ed6d98cfe3a601f82ea12a595af984737740440b66efc8a0c1d03d28c55998607da6a9891e1f661d80c2ab5579258cb9a4ae7d5ecfbdfd679086c8b7a2415bfe63ba8c8f47f8aa7ca3fe8ee7b71ba8a0218ece725d7af8b5bcc338f067c1f1331575e6c3256540e80b3585e7d8ddd2801a7fdf2fc62c87f44f6595d7dd573559a70e3fc7bcfc6ec7d781e74f405fde2b9aa70ee9bb1f56cfc01181df6aabb673e332f869b04baa9cdee6eb850b3963ce4004dbe828f0a7bf72da231b767d22b79b9fc93552f11b2c0092b3ad9d1150c1618301898ffe2845619aca1224908134fc704121124ecb766e111460761385c360914ed1a5c62c608a040affced5a4fbfa761fe5365885dae27f88dd757a79b97dc9016f3c2741f7d7718e610a6610b331a161a16d5ea3825b196017b78b0376d191298cd1b0e62d5862990aaa436c9ff427eade34ab35eafa54f675467537eccc14bedc90b6e9f66bdcf42c8ed1a8b062122153c7288f048852e350e14d4ae6d520abd0783de3b136f64c205237581e81f9308cca0f24185fd0cabe3de96de115072af2c10c13b5bb7ff85137c234a05461c111b0206c245b826d700bf30ed9d2d12890748119a34a072bee1aaa225eda445f218210606a80f0e9fbb4ab18d9b3bb2e902d55689a501940f14a60b8da3e9706683ef63f77bd86e46fa75c821cf2c0aac787a5c37094b63c4a914c3118befc3108647fb2616178c7227309db2eeb533648018bd16f3939059033b78fefe5e28ed802edc94b22dc19f61a823a2e5450f5f104247a18ee68f418833dfbcecfae38b2aec42e0045dd286574a796d9df7314fe43cd40518feca4cfcd3b0ba681447742a6a85ff2c3c004ecfab77c26238fffd1462fc5578879f29e271b09c6182ac9ce715cd068fe4a31cf4465691988d47f16f8a7f2117b5d1b1b0b14e76ce191d41e433e0aa548cd1fc3eb91233714414b0064b255f81cde2970d6775ca4cb09ee77a434c11b574a9fc04b742cff8c063ca5146a5c9d7e257c2d2bdfcbfcab4d41cb9ddd389cdf9d408c39fb6ff66798bfba5da5a5b0b6726f5881c383045d39bcabf39a3860277e4946340c135d58c6262585844f2197ab82f95d503fdfcaa066ce0d7ac77a2cd20bd1cba7bf2e2bb0bf8fb4e991a3008c9805926feba3fd44b0710277a7107e16b1ba0096fae7a06696396de606027de91a2ee4bc08d551b3fd088be1fba0668bf8f3aafe750149e01d98056024c40cfb304c0a408b3c9d32f1b680fa149cb1cc1b9ae80505d81240990958ba48186c3b0be2c43e4a03d6001c4f667b3de65540d1f00ecd39be286acdbbc15e48a80b69db4378b743a8a373788e0186b415c09e659d43b990f3c51919c3bbb1fd0c3a9b762b9878cb8922f31d97c05fdf715569b9158ab51e598f7e5ab8ad80a0d6f03ff94978baf97afb8e4114abf6d610b24eaba83ba07b2331712c86dc652d059f8e6022ce1d2b419b34d556c3faba78a45eeab9f812efcdb9ae2d7bbbac581717520aab41625a9ab876088a2e9eba68ac6e22e17536b31765751eb820e48d9e936b3f5323ae4634d8d0cfe6f6a21fd64c4564f8e0937d4fe712c2256b37c4cfe9cc77b9d4ad68d55a9f2b649c162d6640382134c15699d516dd7f24369aa1e8eea2dc0a3b25fa9e216b70e8c904e542bbc113b9dfade8ef09efc914dd0090e87830bfe6410062b929fceebabbded55bee1a36d2813ef149c07b38981893ee7e14fde64b18d5e9f44bc4b583ea21ee856aae520e0c85ab8541586a8518ba2b41d7fb3e0ede484e8754111e17626c36ba6a66025558f53a870797cc59ea296f438282bf6f9f3024e75ef787a0185b51b8aacdedb76684ed5a73510f313e71b0d43622882d87e65a4becaeee900b08b551059f2afea19d42ae231f69ac172bde033a3895d2af0527d18bbdd09dda4699ff41b251080b73611924e7642c4d5c91f48eabeb2f32a7ee5411a009ec50776c8fba93f98fddf524301f5fa15763c746c74aee52823fcc6ca69fa12cf19e5101c418cd623eb6fc01da31327883c387df523dd3f601a9f1eca44588b403873571c0c2f5c91e316d29ebdcad85279ff6b768fefca6970b07da6b008ecc4920298fdf5c61bb01bbda14a6c5d1d5565aadc1a9b40f947633e0766843f3f86fc8700ae38ecadb113357a050184d06d9410e9f44d03341f6ad316fcf06c192311340b77e10a7df6bd71722f055e0430fc681963935e1ffcd17a311f0a42a656649a314744afba9ffff6021bb53a9705d052240bc34e307b04b83a7f43fca1cd5142c77074dbb1f248015b345a19a3b2677253ef80dbd66081ad41826f122d9b5c51bc46f2d3786edf2ec6f44dc1cbbfbf6f5599bc98e0fe0493e7cde17878001ce9ddcfaca5ea7fc1406922416defef86ca7821edfaf0b81683898557282c4895f479aec3a358b5be3bead4b8daa14d5ddc6a5269c7bf9445b84ddfc5962962457bb5aa50acd634084a07edb32513890cab74c13d9ba1957e0f8072ee373a677cb8c4a60e336eb3c75e971a18ae8968671e1315da11a8102dfd8377a9248fdb5d93f5c58287cd3e3d90fe934f2d6801fa59c4344bb421f2d0cfa2089805ea0597d062bc9017e5e553f767df52f81e40230d8ee18a2133a7b6c576dcef9c1d58bdee9328eacaa663c82f865208ba650aef1a82f36440b614766e461199db490106a30b483469239230ba48e0f81fe311224889d5261ebda6b48e01b79522aa93571e2ed09841e141f9179e27cdc2dce2489db674ffe970028b0a8f579af7a1395bf084f81e6020ac161b149b41a185a4fa964dcbcabe9cd160e7d7d5b4342837875763530fe9b473cef967fb6c30918607a869b0a1f24d3b5814a1c5eeb760ace511089322659e1d3bb28bec8653d53d34ff7832636bdf86b94c65d4e1f749ec9e729318716a76e7dd964a8b4964cefbd3b212f0497c07878a5d2bca0bbb5c3526e1dc95f46951138d70be8794457cb3424f1704fdca125debd942d315720532efbbdb02fa6e8c49834a166b5e0cb88cdf89ec9933b867bf35707daa5be9a99830512404a1501c720ecea77306f2e827adccc1eb519aa53be78a54fe2ee4c457b101ba03d1b3ae654303cde2e3605a8c9668eeb322868c35711c387fbdcf432ada6bfd57160d2f1742bb8b5c1e81cd55e34675cc8152e0a1a77d914838d3ce88a2a59121f8162cc576f72cfcef7dc5102d51aa6685f5e95a8f75ccb924f54d850e2bfd110b2d3a7e0df48aeea61a3f9025a15885c225fa76c26e180103a6157172215ccde24a5200772aa2c7cff255e72b2a7c4b6042c0470e2c02dfa74d9a4d705c7af18756345da8aa0e43274ba8b71de50e7d0e2c057c7584e03c65e37e1b28425514d2550f8fda4fa70bff56c801f8767fd19b11ac5a507a0b00cc472c63b4ffc826864f797e6cd5b207716da38ad82acfe2d6f8843ea68867d011bca08f95f8b668bbb86a25027688702d8d43454c7bdfd34cb92a14462e27181cbff678a31dff7a76b37d6229f25da5dd5a107a27ed4f15b33445e05a6a960753c6292f9628b2924b5f0d9f2733b197f2be5f9840e56f4488d7a14a2aea49ab6c604bfec932e998291fa25290ac883ea0c313b8373d68acc6c4787b5c3246be061969ca4f182d4f01c487c80b16414911b9ff3a45444b17fba077dbf96629aee584be9fe8dfba131fc7f0b08d9930f201fa31c7851353da2f7a2af68b750529e70118ee0d39f5577b31a01ac421d89d21696890390afdc3c35ca958464977f82539abc2aa391a32cc11d743000ebad6186cada0472af6d47f67b7c00b2de43afaf64789c31f56a9b009b4bc589cb550a5cc4f24f5ea10209aae601b6e237c0a54ba38107c7d3ca505a2c3a9b09f4e00832187ef119c54553d86a22dad593a5958042c736ac344f8e140a966ef8960978268f2383ea10c714b6a3cf3a251047dbefb4dec77f2c30d1ddb594939fa9719cff248741d82d362c026fd377749d16dcc94a2e1f6ed51d00fa10bb1be2ee584a5424d36362d187f79096eceac551796f2a3bcd78514f42e55c2a291a4b05178d0cc17e1ae95f5b407aacb6cb2f9f31c12c0ebdbd0392e7e8b8e768a732921ff6c2cb28a3cd5a6c9c728a5403b63054316b7897c7cf4968a13805e5b84c4d7d74fc3d5ab486fc7a860839bb64df0c07e533a61488727e02931e5670dfc55f53dc2d99ca4f6534917f134500b5d9ce0db186e96ee7bb1ccb457e123d063da449de0bb62f090f430ac3f7268d9d4ccaf0ae97b311ee817bd12cff9b35ca5df207c4d0a6cfd4a6bb4e6567b79740a53a06882aef88d1ba4fcb76fcdb11da1c3141ec5bd718c0d55925a9325e61b2e491ca4e61d50e43bc3cdb4fb7ed9d1d90d3915617cc9e781df1d7d19b327aff406a413f7ab4a0ff361aeb7734a2032e2c03d21370df5f163215697bbccc12f488c6ec7dbc8bfff529052296ca0979aa322c824a8fe5561ba80864306f8f10eb756244c7091f074574c9dd247345d724c59e0dab2f83e088ab29fbf0654e6d55994640f1caf3307de84a1f05504dcb26a33ce9e4609939a45cdbe4ef016e5ffa53948b88316859bda1000f592c4be967eeaa7df50d1ddf5700d45814091d0ebd2e3888263f80abd63e4f41dc10ca87a460f8df0ea773701b3adf69f831ba915eb1e057b488ec73aef1068728aa4e4e0a1088fb64c3e3a5ef65dc9c67c38e3efd6fbaef16224ae9f42ce79df28e874ca59661d6f6bad5ff570ee2a8a6603ff3b106c6145816b91428c6fde2339eadd69937d7200144310a97ffd2506420557d65ad9a4e50061f6efbbb75d4c0f9a7405b98ecdd681bbe4d85557394194b6bf863126fc39868f32a863a344c13b08a8c6cfa2da4ba05c9c4a6310df6b54943b626d0a0747858bc30351e3edb0720f0a3044a5d428cb0fa5d5dec12082e6370076ff105992ba59485ac502c57d02ce9fa8738102d3702ddcc3df91fb0c5ab56441e918d97d9e274f68d4e20ef791507f249e4e32ab51e41a570da798e5d500a1a5e4a5ec0cf7cd6bfe08193a2dc642f0e859d72a5ada3ace12cd5741d7d0734ac463b0786b26b6e4a1ee51ba7ab6c742c29465267ce7979ae67bd7680a2cde15289f8f38a265a0f48313e0b28155fe619469322162c39cacf242b08256de3e21373746fbd714b874914e40da86d26927d9b1b6a6efd7b1cd0c1c834f048556d0aa1c208e30768811928894a308b44f2df6af50b9927c0f10637948ba2df5434278d306c54115e79833278a317029178eca246de0549e669fd2a8a4079e8894e67244ff8c0159771f3c7dc78b9cca0223b3791e1cf89f405fa490b1aed98d5c8ca1f875fa7b6f846de3d980d64887a1899dc686a72943592b66698ff36180485d83eff5bfe244fec19738387d2663710f101bc4f712e8917b43fd90971d3cc7e62f77fdd605e9d7196c48222c5202fe0e9014de201db19ccf88de4402e25df478eb21e858879899230bf8584ac12968a35cd3233a2f205abc34af5651831f0086cadac7625401fe292b279b9dd730c61446130c05195c77008ab01753099156143b93c0d667bae9964f079454c6caac1800fb48009dc49ea336fb6a0d32b5938c2ce5d19915eb8600801dba143c5ce9aeb7834d44821ea0375cebe9be7483a92ac42825dfc0bcaa234921ae0a5f6bf1c2d313bab3daa1c24410a91f1b83574e963a9755a9adfca807e3f553c607ec20b2d897c3cd57256cea35885fb6e90bed760b4363ddf2b745a6b4261624ea9040525a7be455ccb61a121774922919195c21f07490148737b4b34798d25a9d0694aea62f402902dc05d1ee19d5009554f2a9f42d38d74263175b09f75b84060f7599576c1c161e912da3212aece720655ae34d4bde39c637ba7128b6cdb4c1d821a1915793e5c207ad6fc615d89627e8bab240348be67d6ee275609c0d0cb105cab03e04a2a29c2c498b211f36d3880772f1f9ca10c059b3ef3348aa8c464c428bd247ddc46a878f275436ad30641206465afc26b46e50ad972f615cce2a5ffdf7945c0e900b11975a4e04274c2e67e44dfb65546a61c1d2425cb976817aa6c1c4e260c48c407093003afeadf045be415132670426b68999da575b0065025b75ad3e79ec8ee50124f681f3abb6839112d20a84725a214b4a17275a88525b75d3303e600af45649dceae0cb5f1a44693933dc4694fdda6642ac879cc019a9c90e43b2621597f7ca45250acd99bc6221ea7345ff8928f9e81314c5815e7627a8611f6a3b299024ea26ad9252e7368fc20bb905f64d06e7b25be40bb69bafd433a155b15a18498b708e3008a9168276d8dcdca7c10ac55c79370530087d12e3cee626974eee7f4eb14b29960ffdcd80866e80534245795fb48c7ee8f9b441ea063470466cc009b28184157edd45f805c062a7ee8a39e6cff6946802c105c68c6c63e6584c8b8a1292c40c022dabd48a94863f2d6d5245b8a3228ea9dde8bd3cc97087b1df75851808264bc79fde69f33be39c010126b1d2641b1a1b214d9787f5e0726f9aae53e3fd1484a8ee2b737de089e278fa6b403d4700da19d3f2635929e2c6c4b260b1e16d4ea389b7842b4d980ef0e6f4943626cac4d80255593926ca62561136eea9a9872216bc4417e9a641aebbcfaf1de9b9c4c859546434fae7310906c19e9f3e573810b0ee45f01a2a6e9cb30d84ba81dc325f51e4b829e6a77e9832941a508daf123a6b068002c593ab869d5e6ca7ec003c81ac2fe47ccce1961f78d9671afc38243c4ec331cdd4e365a7532a330c0dc27487ae88ca0a6db396cacd913d19e7239fdeb91d481aeb9189ed82fc4d7868a224b2e2330e5a3cf92caef001b9e6d278a84252f8dadd0e7153a9e1bbbd4f012ddceee9a9dbd22cdcf430eee981fa9607bcfc73ed4a1c1abe9d4a5f0662121cbc46f7f891640c9a624489cfb85ddb05ed4d9fb1c3075cfd803edcb76dc4a0e2be895e18616eafd8c25cf8bdb6c1b6fef33749cd709ba2ecc7850608bd444bdd037c7494b63e6daf48b986286671216f46597c36fd5045fe146778a3f3ccc5e6160106c91531a2e7825d1995ffa69e329123d20bd79b43e069e504af3a5e40e83a93663f014f18026c22fe6f81a97f1c3b3f751bb0a5d0cfa5f2d5969849100ebb10baef0013f6b75fd7217e96e6190ddd0b521302f0ed12bf3cc84a216e00b5337e2e90d200282a818574e7b682dd7efbdcc28e80b57675d95f1f70fc6164741b5bf3538770985bb735b4937e6e0638daadfcfa1042218e59dbd899ee41cad2cc02b8ce6c6d6918093a67664d08124eb32cb5106ae896cc537cb5b559c97f8f44c9376ef4d3ec00fb27b08c2b36f9603cac389a5bd4fb4e91fbc361c1de8b747e30eba3b619fee8e5330ce64bbb9be594298d0c8678a91e58533006f2db0b715adb13aef329ecfd93acbf77dc5e5d40e7e11a5bbb5104b4df6a32d67ad74fe4d2394a5a81a5e3eaea4c8f4a7b11a6b9854250c4ca908bbf01759165f7c42436e68de98936b3a5f36cd2e545b96946440947634d9c8baa37c0d3c161f5095efae9c10c8aa55beb6d7bdde2cf262a5df2b9428763c6e061178fc45401616d1269a985965d1e6780c6e0aea2906760c03efa56632f7354ede700120e0f811a4506be1a0b8a6ee54d22029e7d0afe4aedf9ae5e29e04a0097986d6d29d88c8ca989a5e3b34cc6621bc9e94a3e0a54c9e7da13673a21beb75faa533bffa921367420fbd77c10973cfdcc8bf7f39d9f9be1e080f978c360babcc92949b4f6786518d1f6fa23fbb42194c86cc2cc815964fff2073adc9f34434a5d53cfb2f9cc49bb2a047d30a8d36217bad310e4fef9cc81ea89e750c7e0acdc9e87c81300d09d44541c49449e8775513c087a6d474ebd1a1105d4038d27665a30138f08605b2742ca95d59229592e9c048ac37033e68254f6808a7030300bebfa1254497d2e68d7e3c70aaf990265b6ce2667933346584fa32c966ddba8813c131a7974b06754c64f8e35475d907782e9ecd0c1d0dd2fe1d3f6517c58a1d16ac7a841daf595cc35c6da2ddc52f25dc66225cd6356120b47d99f27a201ff363ed9745edd4857a5b2a98699f680949fe0267578b94241c765527fc76d868874d9eb049683b7978658d780aeab81f593d9295d7ae665f9c2b51c01c0c58206cecec74332301ecc68b9193bed4d3dcbd2a9907266bd25662496f2227ce8ca2f078f6b5eff424c8f975a21d820465ea2da6f0cf612ea7719df0580e9b7bfe445ebdca5e320bb87adabee6f9ad1c9a6f8f5dc5c55ca22d6038b242047844335be682fe25e60c0dd921919242fc620ba5b0a10a25182ff680c62b3d821befe9bda7778931ca0fd5141b8dedb8b25738ec6c7991df71562c08911e4ae89f82f5831e01d236fb9eade10f009994dc2c655e2104bce4d4d503173e00d17a7c9bc5b05e384523bad6c77c5dd8ae5d15560e68bfc34c37979272382111aa2f6227b5119262865afdfbac2737b69eebf00c446b8746b29d5801ea36e9d020e452cce76a7211d9b8112feeca7b6c3c91f8d011a5238d3d862cdbd7118e547c6dec1497fc237bf15f293bff00dbc7c0f0ef18d932535ebd9015c02f2145e4d08b91baa902ac35014284e6e843329c605fc59323c5118bdbad744c289dd2d4f13d5a1384a987462e24af458be445c4401e59594e5e7bc251500c2366b5b0fd50965841ad7d180ce024ce35a178bb147ede76a1ad791e3b6a84c38f7a247d0e7102ed7e1eafb4c1e71d5582576bf8fa10703c925c3ddd040553acf562c2afc6d0df5db197e80c8a4a05b491048ce6abe6583ed5d551553fa5bc3f02633a0b5b4d880649fffb2c7ba1dde4ecf267c0057fc0fb5ecb09ddbdf6ae157294a6e698b84bd1edc89b7608f6aed7b7165212061be0e582e343a2e1d112643584b5c8353e811e97f208c83210acf5e830f283c695a829f4dfbe9d0660ff31724c60232c1de8483e4e08c194a4ff46ec1468f9e9814754c5de6c4bde9e47964da060b2e36e71e282b269cf99f9becf36c24985cf1ced93c5d69713331e903103d30d051b8143d884e3a1bf6a2b8fca18cae644daedaa94a297b9e096655f4b3f6a1f26533c28ec6fef5f2e5981e6e5980ca8311ad6a620988e0f6e20c0b925885baf62c546c27d7d6e9b6d8ecc444a3c9b68c19b050663b0a8f44f38240955f2c8b7795c9b81cece8be9251d0e87e11898ed1e129062375fcf91fb52d1a3a410dcae334cd70f27d81318396611a43ba507a23ec4db0134be080b63360f4f90c6cae5b76c0b3e888d9f9b0052d3c81f5dc07c91815f55679fec375f67248fb1a1666f6528832b1bc7d320c6661e321a397dce728710790a790fee04cd1b4ceb15796628a5d6a6097596f9035ac0485a7586d453f449fd4966be12cfd35f1e058458ccef64120bd4017f607f7a406fd06e3ce84d468a9a273bf854c5aa3041ae50182614adb71e7934b781d8466bab04aa617393f0664c48ecb20465911903fde2d8a0ee5899e27f6fba24c544cab1b03b7d6be7fff468b0c78385b52fdb5cd23f53aed46656cf2b2992fcde2e16272cbee85b5119c91518447292e42fc6422a833caf29a3c8b017ec5ff2384f690df1e5ee383a631e868d7da16c30a4f09ad055cb20d515aa306eaf10b025ffba39eff9cd0089cc234ffd3d7b147caa3dc2bc770b494d3c47a1b8ca07d9b00c296526a66d08d5a5d8fbd498418f8497706866d39e241dc1623e167f84d39d73a62de3f8b6c5c01e0c8296032a301a7525039d281deeca04bce89c1507c01a4f45100316061706c54e54db34f0efd642ffa8b1df7ca9d9d485fee7639a491b35002227783499f727de22450d7479c4a42d8a92ff756004206993ed1d12aaa031934fb3269b075edd82c59fefd459f90db546888768df2ee5acd3bae957174e984c9409f1f8b1c8c81e4e1b3b0828e2347965992777554d697a1f75b8117bbe3e034f437b2c249c30d7d919c792ee116aa59b5fc791e2f2e553c4e4aa571c0deec798e503cd5c58c538c842e95789490b640c36fa8be39ec769412623ecb04b7fca8186101449f0fdf518f7d4950c8d01e6596c529353dc8a88095cb5c3364fa0d1fb6cbea53993457204f00e3c8eca4094b863ecdd74b6c2b122e03fd0531d4685b391bce4b7ce8dfbbe46e5bf087d9a851a77efa97ea9d2f67e92e691fe5fa33199434afe14510b71d45cfb395af0c1039b743306c317c65a7d6323db7d69b93683c6bb1451df9ef9868d076748b197d7ddb745b0934e2f568b6738dcd680e159ab52fed9618383aefa45c33868081fd529584d59733ba74b090785362393ec6ce080ee87f00eb4dbba0e9c7c041828e78906aaca0480711f4ae6710189f1036108ad0cadaf867d7845dbfe627dd4d3ae794a259a37cef68b8f8775cd0808242689632e5dfd9248b617b8c895a5cb2481fdecdc30d26502b08b3507743462288affbfe24684b04614be4da9c32f3a0c30e1812af4f5047d281466fb6e6652a3a2d8c06a2c8836756c53c96080aba7f25ad12bff403276ec069962dc53dae28808988072128503b140125f89da967093f3c035cfae75895499cbd8e12375e05c06a8fb9ff35d7eb05c3db5b4af19602a58ef65fb709284a49777f1486971a645a2814bc94b1a239525181faffcce531ae214dfa237a1ad1aebdb7200ff5c9832d4b4caba4a08adf772e8048cfe61244738d5f9cfc1988080d4352b95f1b2758585f75c4d041c1dbd47ed88f543bf13d07c8872fed70f8698af46775abcdbd45ba020a6b672dec4912ec4897386361501c0391f9a98014a786d06ab240a3f8853e313c81b2aec28fdb0edbbac9f0f4a32b58a41f6efa0bf1c97e993a49aa1e9a6621ab3e5e3d59461bf48dc3c57f8a920c23071ad305ec773e3d785bc597e3b4f4472d6fc819a9ed9db663653849933a76c588a6e6ed867fb3791dd6d8bd9fae18e7ca4e2a3d5617b2d759693ed9374131ecb4047a1e1aeb15363a90a037c74edb7583a507821f0f4720b0948a7fc9d04214a04583c3cefa72cd008450ab4b75cd27be74d120aadc568a9f3be674103e5eeb613866048cc6206129a0c915e26fc4540a63ef8d013d153cd06f28ebf56e02d023d4cc4abdcb9eff9f410f1ed99d8c665f7272f60dd32523ddff895d500d947f39ea20578e97305a7f49983028406809596055c0ddfb77e051a5779057dc82aa9ddaed95274fa51f020fe1e354a2c53d2b7664419bca25aa7bde8d7c9a700cb60baa224c3c8048714b6e8a572a597a184921d11cf0725b8d4ab72f36b1edc449b6314033bc779cd3d6a3396d1b6fbebb067a90883c1956e569bf513dac51bac5e2ba7fe8b1d0e9dea9b0b088296a630351083753bb3c1f12e8dab2a66afecfa7b2ceefe45405e93c97776c61f8a1d577ff94583d96c20bebedf0cb496b11ac4331421dc2529968415472235b69c2d8dc12b9ca5787a9c3a6992fa7722d781a63e5a3c224dc222bccebc21acb227a0b84bb1f5a6e28e47ae8e7c5d0f1421cd6e6afe326cc521eb500c384dc07e423ffe2e5ca6463b85a2ff642c99a28a1c0982571111a8c367e428d5b2caf527ddfb69ace2ff0986b9a1a736b2669ac5c5cf0dc901218e50fe24ec27854e707278767476577f026386fd490caac333bfa90aeb25f6d8bc7065a2601a34c62720368e00d90729e72c36cf6fbfd20390804ac4bd84e8ff9fc78671304d89fea637cc8483b0951083c7f18916f9a01c1ee2261df34fc714f6594b7167ac926861da83737bd682e80ff6ab6036a674c5cba8dcff52f1744e5d901979006bf858ac19f67fc0ac1c78e9b7a049751629d0d45eb4611b906be439f1af44f3bfb10b96318fa633fc09181c7a8ca956763eb8e748d275103871ba4b55b090c8efe11089907540ef2db146634996a695aadd0144564c02e8ca82ea28ec0ca7558869b68ca3a364bf024dee8289b06df76534efd204b42c8427091667a903848d87d693f17be16e4659cedcce271191cb14f90c474d114105b36b5b263d55a93bf1db19f15872cabcdc4557bd529a6f844cb2afe295eb04b62113cbc847841fc8d0a9a874ec2e2a05e0cb8d9e1bfcee0b14f001e56a094f1ce69c1db660244e1014f67954d11e49460a13f1957e31bf38ceb7336fbaad8b2b13b0734581fc3928ac8291a431988aabf51ec1fd24cd49150392674a801e99fcfc89b73e195691e27c0df48828ccd1c4525cc96858b0bcc1affddac86cd903c73df46afd70a5b175705bac486e44392075c6e8e824d4c70de287f962c4d03d23ccfe37d19c30543a043bc69c893c5c12b1e4f5ed387da5f7fb473fd555d2feeb628e104f5b1ab3dc221cde761617eb269c6de587f97efc7e19df6d476e0c99e433a691fe983f203b1b7f195cfc40491f54c90e39db7e997493bf19e19f073f4774ebffc0981754b1388b2fe23d226105217680881c8169fb15f1006a1966c7199915f50f07b93a3eefa5c44bf6aa97c2414ab9b972e36a2f8d36a10de95e9ae361b1171971f1cd486d90a2ed794a10b3b8dc01f951a9cf65228223e46dd0421c260f82dbed4fb81506486813d9d715363629c5bd5066f0b65a68be8ed0ba2940a0cb76ef96275157fa8bbb121655d3ed73a07a65d2bb726c1ab438bbf0dcdd0e39c64d9dc8cd4e05e5a905b92fcc7c97391dfe17c1ac65c858ddc1d78a64fd847f618b0624e2afe79caf5b26bcf9580fd1a9e947e9b23e15dc20acd4540f1d71a42809fd5fdd9c5d20f105833ba270307502649eead1c8c690919f4a8176a74c2c514906a1412cfa014595008853b9d15c3079370f7693159cdbef82a0abfb6d3a8c5a5d8d3a19e97ce0a338e1272b6c5f88cd0d95900882daacc287330c5c327b4916ddec2d7992f23692c70ea644a1e88e9b761c717134058c6c4d69e88ae9daf65ecef41b11ae6da3c4483f0e59c2081627d9b6316e909575068a08dc10a901f403b0ac951d8dd25dbe3113d693d9eebcb91c6bb04ea61e1d79f8fe6a8c909f6d3161c70521547c5f31de58c2330ca4d524195efd9c875d92642ab457437328999c994a249f71e64c91499ba051e5e4b6b9496b24a4fb4a8b77ad6f6ef834b0655c9513c2c480c064ab3e6ba244145882c6ef48547d583519cd7cb770341c402bbc81edf4468c2c66b41872d138989b3678a201945b1cb1b32a5813fd2d0791fd4652dcb39398827cefe023a6640258479d58db88998d55a71c43f9451e2c6fc165bc4bc0bf1d716c57276587b01a12eb2c86bb2c2ff9a6c09440c8b467fa0384c02583281c33693306a9848deb229b79fda5cca47d59dd7a7d2f213ef6d053dcd354cbe83ef69b277c38c667e8e28c262693df13c70093f93770214768231d084a7f894f83f6a711eb3dcbb540c802a40b8da5f80fe8d3aee33266f0a4b15dd6c54f686195d3ea0366b54d8c05685564347ec75c8a89e00ddb2fc87d2a6a8652843e1525e38407ec2bd4a96568a8c7430d53df9bb140830b2b7b3a4a32e9e459d16fdfd5be8d0439595ac2d9a683a6620d5c1c9c85e26ff46a0d9fcffb7445f932c6704d632c670c21753a8c6fed988ffeb5e2a3a2f204cac74a880d7bdb7c8c884f800ee37b4006e7fe21bef1071c3418a8e341c2824cd27e5a5f3835538064c4aad456789708b93296072620532013a631d721359e355c6e0dd16bfa58ea7d0687e24257ba3bca014d59120b907dcc24afd31f21fd98182fcbd5fdb95539ce139aaeeaab2c2a5ae1422058df255bba9259543b952c55474e55775574b4a6e75ad8a2ad1d48feaaa2cab1cea4a29a2a2ab9f4a975a56815b719bb9e20886966c9bb20ec12c156a022ea1e77bfc9bc4fadc952b561d2cbb02c416125adf68c08e68342595afc6a2ddc2dc6b2e08fec918e230a06c9ff09e72ae00b225572ae281e90250b1c00dc3ed23f730bc0081f096da6e3c9c5dc16c29fcae5e4e0705ce389ba8a6698430115601de1fa11040312127d1f4d452d8625b42aa04a6e3773ab5e186168ce2fc1d5f1ba6890edf3d7f139281884015c8757679fe624ca70061bdac42d1d5c7b958e2175dec8281e754062c0c72bb343a8d11b888f4104e840b028ffa22cc6e04a8701cc232f156cb2b4cea5c602078d417c26857843003846b24d342bd412f43f48526932dc908e58b93731370516f2046a950a84f8d8b609d76fc9200eb82840446314d285f98949b402e054606252ac76d247383d19f9608a40af5209e08754ccd81179175d2f10b82569070192d02a365b29a09bd13f8cf82c0820b2da46529100170a2b95d27c67c51800948609ce91b1456123831b7001bf53ec20b03a1ab4945f865b22add0245cb10cf8f5260b48c6c73e3ef7aff4f00088e0346aca344ad5b16c01a212ac1e331e98fd61f2d410dad89810b2c42378d3ebbdf8f81205c018f84c07867426b801f965f80f1439a02a3903ea3fce20093c88508bc2c06200c4e24a7eb069817058d892948805353a09b6bf0d489d88eb425469cca0098a857101f9814682f7a0d8c80b046f3ab3c8c8253a35e4494c06948ff97c7612675e406c0080444cbce363f7e8ffe2790a0700f3433d9026e82e86871f6563d04ad06fe2df24c7c9f725dc31b382890674928476d4983641da7bf43d497482a527cf490aef23e432b3f6c750cfa002ce3e3d546a9fdd884ad38561ed7e6f26056ede8dd23b150857a61cb21ccda3d382fede11b90fe8ca9589daf71a7ca69b07fe5a4ebeb3771b546b240bac914dc6c6e98838119dbe5636fc9a8e9881f2c6517ab69c6f41391a9edd60ece905bfcaf34797de59611db9ca7be451d9d0310d53e17fd15e42f0631af5ec87ca038f0d836bcd390e553824fe6693dd68f7c80827984ddbb8195add28490cef413ef9e2bb5dbbbb6e5792473bfcb5703af353dee817cd1efe6f44d50a35a9e14d9e204611e391501497ca361f61ed16ae5858e8a993459768f6214d8c114c34b0fc9c2285abe11025ca622c4bb2a7e5ff2e15324d9b6be075d78a040b823830d49795189c70203211d368a3025c1c809c8a367c0cae38dbd6d3671c8f805578a9c2171c31abf74662610dbb08546a8854101184d08576839b667dd25254e8f0ce0a20dadac9602b0b58491091d77fcfad9387338fdf85b6662dd26e99f13ff0c379b520ced8ce903c8af77e070b329c560b6c1dbf2c1e3518fbe61f03b521585e3b70d67f07119a8c78c10010b86a18ce3b7c945ecca215ee919a912a25d92a63d0f54725096b5e3e8ca75c1351014df031a0ce79b57201ad6a803ea2ff58753f34b3c1c4f61950fa7c6995bda52c00d19d95cc3489e17025c33c3ee522a8b15098c052c7540c075748060799d9aca94adaa58c1c00f8723285b87db07caa51e0eb5269fbbedbdb7945ba69464a809b009c8091e8553e1473c89afe48c573c8459bef295afbc880ff1d58a6918276774532251af9ad52d161b5858586c980d80700039509e84f5c32f46fbf0d3d152fa0dee559b31ce160650b526f4fb3b0cd96248d2f470f49ab161341cfd8be66dfabb6ff3896ce9afa0e7b408a5459c99cae1134d9764e7dce0d8c86a3ab664f44dc07353c06598dc3bd7612b6951e3ee04975c7f4df7e9eeee23ffd1a7a3fb7a397c3d638595577a0ee3c066d80cc621a5cbe42e4892ff77391cbd068ddbfec5edc7c16182ee9e8679899dc851bf17607c86ac8db80dc3912d51587ff912588b38dce7686f18d7b06e983f69d2d83934c859e77889fbfe9ec998f38a082f49f799cf66db56e347ed10088182060a2529d2249230f2a54d5ddcce2145293d202e6d3ceaf73a07bbcd2aacdc428bd9165ae448137dcdd3ea102d9aaa8904376534a184159e547184099e40830613a84803094eb2a0842236f0411a66e488a1830e8c30c28c18385105244cfd3a78898627390599895ffb1d3d0c9063a2af855dac82dc51baba5801b9fd12904b32204d14052db61cf18744864081978000428601326254d88225e40850fc28421a3d583161085e6c0144870dac072fb5008b298ec8aca490a208a6fe0e784962a1a5ca01c2148e30061a98bca0051e2489d2440f689063eaa780972480040c08ab3038c182164cfdfd4d2aecb86928d07264cecbf76fdb76a58f4ede1e8e73d78d7b297c55b90b76cdee79684f9f5ddc8524351aeeee1d28a7af648b8bd5f9537f0d746eabfc92028cdbae98a6d1b40ab20dc7f8c5303424290252eccfd16204b8e63689c160174f50bafbd4660e97e7706d1acb1c39a404648fbeba2b09e36a6ef62f2e7fbb6a10720432c717339dd8366b452297c8cccc342df6ac47fdae9ee5b01d295ded6a57bbbc5d21fb7cdafce247bc885cea3478d4cf5dcfeb683fde40dac22b3f645becf709330b49120e526cb1455efac217ef28ece2236666e79726a26406c95c5d772bd362333b2bf415103bb6ab5d3099b796d83489e6d5a49a58c765b3709edcbe79b9644b7f276c978ffa27d863c81619d831d9d26d05c6616c57339162bfbc73fc88327ad6ae39851da5cbe57231bbe6129e342e2ff9ca572ef695af4e7794ae27fc39bcf4ef6a46d2333e5d7e96090287872820a701724673923597dbe6cae9e1149e44b528a59c53ca293f3cbf18a6a19460a728fd1c5d25b7fc0976107691ccdc29293539e56b20ff94524b82753489d2a47e92f4549aa4a34994e9523e0ff2fde54b9e02f8d37dba6b3da534f1caedce0d57bec8250f87bc7989610e6318bd218a117f73054c1d3caffb6f125309d3bde7fd3d29f68f24696bb1ff46cf2049df4b1edaf3985fbf574d02a25b0a491281f4b6cddb3696609b18f4dcd1fec0b28ffab7cd5a0785d824ed07ce99b9c43617560353d0a38229f0344e1a48a4f31d38d36ad686d3472e5b56c5b04c8b3d418e82ada467dac1168124b116a4d8df382d6aa191dcfeee23526c1fdaf4853dc48eacea956bf4dda9b3b6751d509a1e04b9cb7d3140c880903215ff0136065895a8871d2d6add697f06b9203938b2a5a714b6573426611870fba70f6c0f2d767f47214bbc841cf573dce7234756a9a2b023e3ac524d1a250c87717ac8410130b0b3757248c06a9abbc65dd924972d6a1ddf18a9c9fad16103c4f5900239985dbda4495a8ed6c1f5f97c4039dca8fff976f0fa7e670d5f52e03133d401f4f2f2a2423b2a9ff6dcadc12c52999dab859f0256f962b4506cb17fc9ed806df26a742828bdb091b983d28627f29869d040e96ab1695889aa85dc7eafa38079a97dc0b2b1e0d1d855cc95d57eec95e77238a1b032663a61717cdbacc591891ce2f4aa57acb986c32a2f7dbe7fdc58f5f209ed7f4a285bca5aca3a876bc383220923fbca5a949763762dd4b4a669b11bec482fb56c2eec9227ecc838576ec164892b6509081f4d27ecd8da47870de3f0c0695c661ced478672fb3ded6548a459c52a79fbd5a451ca6ee7fb7bb56dd68a44cebdf26ce8701700df05388dab7daf5aecef225712e9f4901619a73ba1ec114eaf34c669b147c6b99d83285bf8bbd611f386b07ad5a70612c546169b518244b64821379503a5044b6014c8e146d3786ca5942c33063112e0ce85056edaba01795ec18aa17341d1cc90794c04cb9773786c3d897da60128a5d4e1e54a29894829431550f28c83700d240729a3a78c6b32936ba20910134cb02cb1c40d95aac5e53de8eff9f57767f680fd7acc6108502a20542868398007566bc00378603518985a2b034a290d5c2284259823478e1cb30a54a00215983b76ecd831030210800004acb79bc80611441041b452333c3a3c787c313a9ae4f0f8743481c261e95f24e214bf38d682d20e483aec40010a48c001883880901704083180015a70b8a999dd51a9c105382851801c941045020c2047e6bce970c78d5f30001ddcb841076108064085da60e00a4012367c1235d46037966d0625ae1956d2ae17a752a954cbeb31434a44436a65a546a88530106b6daee7a33373607534c96992d364763dee1f13ecd0a7a3c9ac493320fc3a9a4401270eac0e9b53d80131d84a54be79032b81b4289bcc9ae4d826393a9ae4e8b039bdeeac4bedea913781a2d99c98351d36409a446902a5494ecaa7a3494e9327edba4da07c632bb9aea3494e8bf27a2b69d2d8dfad9ef9172ffd8b44bd79c344e08425d0a2ec61cea9896a50912d92d25aebb67d3a588ab245fe36bbaeb3313afa6eb265a321a265102bc32d26455a3badb5d69b6b7898bb3b8718f18bd1348d525a3705e82065a5dae4d8dea8614aabd1e9f119031b588d766a60c7ce16032b434da334b06cc389841d3bde3c42a43251568634b09d49033b8fb05d0ab7559a4229adb5762cc7715dd7790a88d1d1d793d2aae8e8bb75e60caceb06901c2d6da7862639b7c7b05babe279feb64576ce0976becfe349e9c8cfe7c35dd769ddf4ee3a96292f365a770b316657bac41872e512ae745d61c855114998ca729b86dbb3e63a94ebe1107d5720ba2311a7d3e90e21bafcdb8f29578e9fdb3f863c383ed2a5bf2ba597a10c97078f21b6cb633e7dd9e2df7160cb16ff0df4bbc92d1cb5dfdeb550057ef9cabe7c73f40cfdf9762804df7985e03b2b3835d9d2af8114acb245ba8f3f2ef3cc420633069635f9e9ce114d232cbde34bfa5169510b6fb4d865b83c58b6f4f389c3e0623814bc0cb7711b8d8ab4e7d4dc0b4a0870c300babb5b0021f801b0010035b0d03083c84677b74a08f4b1299eafe375dc56a936bda594524a29a50ce1d468736e73ca3943ad04e29db3fa9cd335fa3f27f5cfd1744eed055a8e3639b01dc1d3a03e438b7cb33157b4ad4608f4b1299eafe36d956ad39bbdd65aeb6b359c4c354dd3dcbb60f9a7b74a67ce39e79cf349703db49d169ea321061a5040030a6878012091cf9fbc34537d9a7d9aac169b90a4698514fbe73686156d735933355bfdf2129bb670ce94cfd6e6a3f67cff94a2be36d8d61aeddd44b2d858676ed79a620feafaa75a54a566126c55d59406d3727c8404aba580f468dc44df711b8fe570477a6a8fddb8233db5c76ab8233db5c754ee484fedb1ce1de9e92507f1c6d7201a6bca7634f4457fd2d894ef9ee6d01995511c3ad3a24a755d2a59bc5acadf4ba1e7f784a0d941eb4a9a1dac70b89246881997cabca4a5bc9ebc14fa94466554565125ebcf0345d2059299c9f1206f6ecacb665a6c970d719c22394866558958696612ebf9e1f3a01f543e145225292fbe8ff8a98bba5eaef71d755dc0fb94f7429d0f1c7fdc6f54c18f3bfffbf13d1b1ab092c60c2097fef4ae5d1d933032894db93c66e7dffb0ec8b23ddfce7b1cc842430fd89fef01e923aefef4cb63fa77ef2578b9295fc1713eb929215542912001e5bdf1398862cbb8b0a3d6d25a12464bc99623b2a489449f8fd4521e161f40fff91da0d0473b5e7cd49fa3e716f6eb34bd13fc38c11ed6d410daad2a2da5a9b495c6ea6e9108499764bf5c09cc697cc9079c2e1fc5648b6cba3a779c312c3ea8fce777a8fc27dcf17950a8b57cd463bb3ea0a669d1d42e2f69b01ef5f708046a2dad85f2569346ada5b5b4192f81502847ad784cb6786c0607a52cd193ed78a926e135455197e6e0f6b37c13f0d46e9bdbb6d1707e9f16eb801aac450d76016666817989cabc1f3db75b9d8514dbcf4875169224a58f8147ad26b917e44479ee486533065aeaf67f3a1f2fe2298ff92847b6cc64cbe8b1bf1ef31c0973862c692d1f27eaf634e276a6d6f212dd428e9a7e717b8686a37684db0f7e13f05c0ea94bb668975e4f001dfe78085dfa35358a786021a60e0ac83b5f87bc33fc38615fbb5b38f2b380effcceffb8f499867366b65c769cad71e2dc7ed18d7177f4d97524cc4c5dd4455d335a8bba8860a9114eae8499da49754612777a819ee8a94940bcd9a7b37cddc6c9d9660abc9a121ae8e54c35a99590242d0b996a92d66a1114d2939f68d8a5857c1968d3e7bda67c74a4b62a4bb660c1a3feaaaaae26dc4a841af2837f3d07fb720eee915693a8abc52c24897621c5937bccbba8455c4daa5448f17bf00c7820031a53111e2538c164848587f9fe7e801c98c63a807a44ca9ae4f684b9ee112cdfd151d3c5435a5c69b0268d7dd26a8af4e9f6774fd874cd57aab6e69d5ad81ced282fcd2de4a8ff8b1418b7271394e8f6375d38743669baa1e3e05f06fbc6248cbcd3359358bee394ddfe1bdf0ef2e67a210be1148a53285910f66454d62479fb8e54569390a3fe256a14b04a45aca6d87dfbe9739bae395d3acc391170808fbe8780cecbfdbefbed13f04d603efdb791c58c60c79aba47ece741bf6dd68a44a0301cc5d10b4bf072e76f1f28c47cfadcb743e77bb8fe2f2c3e7c1ef41ef83c28f480ca4b9f14454f4aac4ae713f0b1f8f07995f700e843df0147d0620788986ca4279b12b4023af4444f1488c740dfef9ec7fc26a452e373b48adb4893c7bc444f35e829464f233ddd1f54c4800738489828430b31342e6646c821c3c917370081f403c6623654766514c74b20d08701d37dba37c08534891f35822e38b1c20d1358a0821729d842155f7882939a23c8cc2679697a1e8ecebc99afe9220171b76770fc97f46aca47da7590bea8ab08d67fa4ae4b5353df09df0b6b4a0a3bd6d44bc238e076e747eb75f3ab017908c09d44405f8580428fc562f70b359813c18e8e7294d370dcb64e385aeb85a8ca83ef585363951942e39c2fc6455f0ce8cc2456bb63bb76a871e7e76898ce4c62fb7e3cf8b501896507edf26b97430a48eea3c3c646bba3c76a2a6673fbebca4b320c3970c24c15418270c488a9bfb2bc24a53084295c410b479882164a30c92e94f1c41144b0c291203b30f55795977e00c14110a02c418b9a5912a6e6598beda809705caa422e87353563c759533555533555653e55484d79c9511f544da11c357172a66bbaa66bba7236aeb34a69a662635a3b1fc80b69cf83baf333659087e70eb15dca208f2136114b477e9378d0e7a17d3f80fb3187cba259eabeb9b05a43e9114721c20131429f0b811c614ddc737f84359d9ac4ef9e95f763c7779dffc21e3ebef77ce77bf830c2fd0f1d7498f95e9abaee7fe8fcd7f92ef4e1f9ef3bdfa3878feebd37b2c3f35f07a4808f5afc3bbaf77ec7f79e971f0b873e749e970de3513f90f9408ed8fc8fb0a61a3ee662d80bf562aae18fb02600d4f81ced415a7495cb842ea4c59e43b0e326e432f7393de323951f3de6326fb90bf43f3a8cdb667ac64bd2d42e1a7a0a453f7ef9f5207a4b7d05d20ed8790000a5c9d449fad544e8243417b7bfd333b24508766cd80764790bd2f02170860781a24fe18f7f82443c9bc9f3000051d6e47d0d70066caaf13580408e7831798fb226cfcb2f05f39985822c34f46610ecd8308f42b670a077a0e78ebe5ac0e8555c1afa0a891d1b16808ef412c7bd4898f909b8f20f207168259f8247fd44300e2d7421ece25370e904a10b418388297cc5a3fecf921370ce6dc6c1674897fe2e8347fd3cb83d932d9eeb21e3c81627594c2c2c8c3b6267669c4e9f52f8aac6240c8edbefac19ebf9fe5ebe566438230d29c44889f1e334c50f9c6081c40848b8991f8b0fdf7bff83e73bcfa077616d034a39f29088fd1cedd534cc4b3d6367667ca54494d50f50476882091953bfcf78690347fca00c57e8c29022f8c0d4ef2b2ffd98410eb290c48bd68b095c98dae58a225724e109408082cad4ef792fb9f7fc0fdd7ba18fefbbf7843e8cecf8be7b1f9ee75e9a58f83dffc3f4812c1cb2f8c0fdf73bb8ff9eff0b7b18e17047f79eb0c7f7ddf7f0f47f60e7cc961db70e105ef190268d8ebafd8e92306e6d07725e87bb1ac77d31fe1c9d1f0bbfbc3bb8f758f86a33bce86900a5c9739027c8d243f71990a6ee7f48f982abc6f4ad80d23403284da21fa72fa6072033f8714a7995e7d0837e4a93373b9fa701b43f03187a11087a1b60caaf802a5f03645305e5fd7c9026209fb740baffbe874e0b145291a980d21402a509044ad30794260b4a539702fe38310d1308766c5810dd646ab0be0247e169ce722671824081c8711df8803be5a6bb833cb81125c028c3f5b8233f0fd89311ff228c3c3fcb0482f5e767a1ffe3d20eb4e840681c77342642b6f84acee48c08221808111c8ec77ce5ab0e70290c36df59dde34f67665c2a367808b37835dda7bbcc89081515151bd3ad70299c88243917c982a3f0d50ad8b7035926077a9efb1fbeef421fdd7fcf853e8cece842961eb867f9e153bee08282a90b59e67b2f4ddffbe0429619b2f8d07de77fe0de0b7d78cf7d27f4616487f7dcfbe87cf7d2e479696a25a07b66aebbaebf601e509a3e509a3aa03479a034c5f4e02b1f5d11f64c8bd38815f96816b1f2caf526a603a3a2bcd43da1b382aa93c2003a18e847faba01f435de478d15d0af7ce87f580943610f5b23ac305028b45bf8a4ca9a74d324c6817909f45c98aa3715e6b12096c3b13eb9fd38f5b9ef22aee6dadcdd7d7c7777f7508821b45b997ac61f570385e009f873ef699ba609519f9f32f3160ac1ef31585b522ec4b9fddfab45956f49070b6d97416993fa5a352dd618ac45ed093bd25707861cf533817563c4bc7322eb60b07b83e32aacc26a85354e9366777777f72c4007024c98d0988ad0aa206202a970213b585793829230320997e6d50be8f73a180e1daf51b6539d552835560bd0614bdfc3e18bd11e874f47dffa2d1db695f5c5d4222d6e215bb8009b06d4cfbdf6c56c740985d197e6849dcffd485fb77f2c11462b0a4a78810c694061eaef70bc1443c40857503dc9029299e9c70d6ea2004516b430430a5598fabb98975cb08a410fa040820a638099fabd2fa65db2a5a3c37db9fcf5c74e9af84392449f3f4592b4e7df240e295deab389c371085a592d360d585b459ab0f3c73ac35aa49e711bc8ed19d6568bcd841d2bcb73912eec9e4a469dd528dba9c50ed6c13a586703ea6a3a98971ad41dac7b499d694fb5a7da53ed2977a9d458b1219a8106961a006043001e0c59aec8ae144011db0fdb4d061c78f2c6e8b14b66d504198b12338142239d2f2204c40b93114e015d988ca0486874896fd206b2f1e3cb95b2970195812469a0493d684092b80cb2872671948ed2a49e8114cb4059decd4818e9c58a97549ab69aceb48d3ffd659550e8516f5279693f293347dfe0c8fef31a10ec484f97a268aa49429a64659aa4bdcab7b59f12a24178749ec710dba5464897fe214497caa013d2530d1f355e45e56bbc8f1aefdff91d35583aa10fa00ffd0fa00ffd50e355422b32c30a2ac860922623fca305a99016552dcab4d85f0364aa4153291f67153b29108aa2a7169dc8cadb00516fb2f12010c8116fb2f1a837adbcfcecb436caed6db6c93e9f1332ce5b909f28b123e3c8fbb11ff309a5b5361c59764879fb361c596c4ac843e50ea1dd1f97659b71a76b6d7caf7cbf36bb3ce61d351c8efb68369f508b05b19ff7d8764e8b3db6ccef0aa8e5684fc02712c67ebfb60559a246488a041854eea8d9909e7c80dec6fb08fdcac97dd878d0fb58f9108bfd1da15f79f9b1d8f0075068e38750b812f6106da10950903081c2978f12569a548aecc0244d46b495fd84ec82c2f2741b7d41a03439d137e4e7d0a48ffd09b293325240282d768b34ac956ce927507468329606b15daac5ea7d8e9e472c0bbf8dff6162611bbf03f436c21e46f87ba83c28ec616407e857be478db7f11cee58f9d04ad8634573df3e4fca33385f9a7af430b2c3868d90e5f3d2d4c3c6b37c3a60439619fac044a4a088fbbd074c015fa7a9165b9a401e52d50a58034401717ddee0c8aab0ece010daed684fc0f91ed8505a9cb50a285d5e953bc3ced18c580fb51c0da745ad08567b1ab495edc291ca50d526933063c8928683b339d1c4b0e5c4b6282dce70bcb48de124e7768e18aa7079f01de9899e64cb7ce77093c91628ec0cbb6b5ad48860b5706c24b7c6c9b0a38c75107aa2277aa241409fa35bd6b296c95807f8e43216ebd886e294483581f652b6c12dc81148182e01145ec872cc50c28c3270102389923492a0055512afa9f642e2560d2f242edd5043ab4d59dc6e915e3a76dbf8d4a346d5c038640dd2df433e318a4f23903723706d042d7610b343b5cd138ad8a53d5cba41321046f1a9457e82cdc1260b222811860fb8e0041305944421238a3190f42088e9c791321c818819496c6ed030f5f38c97a4168ea8f1020b2fd4c089124c7c4b23e8513fe12222c60104bbf4a3e0062eb180a54c24e32c00425a210863803f88f7b00460d851de5cf9d281268d35689d3b6b743ee3a0219ffeb20005ce27c6b1b14b3faf9c055ce229b6137779870e2fb2a55f660a21b7d909e9d28c032882dc0066fb8e1c24663ac172100e526224dc6a821d5f5aad961246d2f21207a9415a415aece7202f2f2f2f22169ea3d117d9e0358c83862aeca2798d8be1353688da733daf9535eab35d9d8419aab04b12b864038f5cc5065f718cbf9802c644bab0129a542258ec76f96b0976de915fd37dbadfbc82d0439ad52b2658204d1ae5ec3689dae08b32c6b87ff9899030f3fb5d204b7df246b111b73b8544f720b56dde2b1b363ced99e5884543b83d3214ea3259e8365e231347b2e447446f89de12b7d00572d6727112edaaa2286e9b0ae3701976713278e4322ab7a9a651aa691678119d9021c365301a4fdcfec938343deaafe92548ecc8afdb5bcc2556b6642b1c79c85c82d5eec8389fcbc2ef48523db4eb0aeb33ad16f9251b60842cf117f54711bffac4af90833179b54b142b11754684eca149e326b6d8e2ddd1e2e5ad47b14771c9153d47d4d15a2976a1476859682d16fb47f03294d7528cc351ec428fe052e5416f9ebb551e704932e36830a40b173cea0fa306b7bf61bd454bad49324df2e76db37614ddfab3e3cf9d7008edced75482f5af5fbfbf18ea94a641fff91ea00f283432bf883a03d32734d2f976a1a4c733dd632005d2627714c974ade55124bd9a9ad393d6a21aa533b4e38d119b9d2d2c693c9d8ce1e46ab19cab55e13691cffbcf2ca4a8cde91e1b658ed62ed06f2db775a64e215335539d99622a93d1312adf8e84f1dcd9ae39c7973b3f47f7c783bcc2ed6ccf3f535bbbbc5da05f4f7e1f27ec7b276c149fe61653c645bb640b12b2d45bc8513b8a9bb3bd1a29a632ef2608e924acf8e439897c1cf46de3968f78c647fe342e97763de425af17d7b408a32e17a5b1e198d6d290704bd0c2891867fce00b5030755f20b2032da860832fb2c032452712ea9a33dbe6fe9e10fcf49d7ee7bd2f2c5fda48bc197cf68935984685a9d56851e051bf334942f6b6848d42562a3af365bfef3c7b2fa98b7178a1d662974d6b51993b0e1332648cc39d481729b016b0b061b2d8a796cac16590279b3419860fb430622ac2638489e923a297a56dadd88b56d30b98ddedfdfcb15d0d04a6d534aa495ef5eab582fc3bcf9df7eff4a9f3639f807c8eb61d4e161d0245c23e27ab4954d643a0489ad4abd652940bf4a60825837da027d918dab4b9d30a938914e74bcb399571f2e6cdc49963481cad62979973c77985db0fa4c5d66a5ad4623d52310e0d0ce9d2afc9ee4c18b2a599b81ed8d1603389edeea8c12e206faef735e5dbf6ee2a2aa0973eeae196e0e57a311d9884613064a9561812ac0f233b420f7a1f2aff791fa107fd11ebc3c8f63e3eaff23e401ffad1639f1dbc67d9c19fbdb0fe3fee4c62edfff07995ff01f47995dff17995dfc21da00f3daa491d2fa4d2ddfed3fb99c44e6f7b0747befec57861a34e3d004739cf5eddb0cd2ea64d4dd9a7d985247513dd380881b08b07398247fdf9e031e859a0b05fdeadd8d5c1ca2dc6307353de7bcf3b1f998419434a270177ac309f5558855598e70136363253110ea50926239ce2dc7cf9375eb256f953164babb5d65aab06d6202dd65a6b65c160158c27b08be7bed4cacc18a8a156514cb631bc3aa9b05a6b0d7d4d8b9e0aa5aaa74e4d02cd40ec62e6020dcb26e7f4e6520ae3e606521cee8e142788f564f5a6f3e7a20a45aec8d9c54be097e498d909d7b504496234e4ab497c6217a6e150e62596d114a3419dc896171d438ab40c1ecdb419fd420f098322450d4c456853586232c20f3ac1a4ddcd6adfdd07ab309c169959f661803ef71e052b8e7f1dec73b52b6c457158719ac4e1ca87ea7bda8ca53f56996c9172cef1b0fd7c1ddca4425ad52bd6eda7d607d6bb1a2c587f0e59b8037edaecee4871bc3bd2af07e923f7670c7431212d361376ec603eb0a9553ee2260e37dd65a312726f9a3452d6ab42ef2fa50deb86b5c2a07e715d962fd80525e370eee54f699226691a037025176a290f25bb88b2b64a9b719795b86664cb9c60074617eb517ff7042ad3c93a980dbeb981c3cba65003403f8a1e80da4c2007a04413e847003400a58309f46300aed486604320edbda62ffe991582953ed28260411f7a2476a4acbbd510c8c27d8dff6102812c5c07eb42a11595ef61e343cfe18e1aaf12f65079d077c00ff62df95ea15028d4f96a28140a854296eda5a947e859362e54bdce7f5ec87b2f04ab0db025612a4cc21c914e9cdcb1c260ac65d1c96877b3026e58d88da349c2bd472565f7f8b3cfb812578bd3a7cfe94b523933477dc2805115c8995286cdd88565f4092e311933c641533c6b56ab98f3b6e7dea6c566cd0eb63df70a698cb2a46449182a58ac5a512bdeca53bdfd3cddd357e87f98583c20fa199e7f0650280aa589431ba16456582364ad8495c5a32134998d6673fb8fd8b18379a95d6dc3d1435d4f387aa7b19b75425418d2b0838d15552bb76d5bdd6aad95f9bb63abf88e94b583bca12f9128a42f0af3eb5bd8a83edd34a9b790e1b839517f4a98526571dbd4884ecdea19770ecb39e7b270966685246d409024ce595e048dd52a0e8552a5b62115dc569b8c6c39b9cd8c477128fee4c68593f344ab2a12a156f5132c93a99cad5051b285d38e784bc270d378387a2c57f2a367118e9e13472e2be5ac94cf782b6f8827d379dd4cb67450ba58cbf6ddee6c675a954573c776a55a465fd485b8ab3c5559340cedfb370f88168edd19a86d7a12be844791aab05917c53b819e4c05bd9537a4c594a73ce5322e2455613058856d325d67be2941d280ad486f437c3bc936946f2a9e3a3c94b68b568dfbf975b0c6d9b69ead3a58076b6de1646e646edb9ee3669df36b976f56f4bfe9703b235455298bb27418e94bdc2c57914259ac0ba5c59eb5d8952561a86075b0ca627530d9127639b2c52a516d2049399024af4d5494aa55acd60cabf48961b093edd4994a453fc1386a12e952aba8457882a865d0a74a45b33cd7764bbcef5e0382bde9709a24c4d63d6952c747e8413e561e87bb1eca4b9e92a3fe5097d3cdbc936865559b97baf60a2b4da190a5879567d9017af76ae539b78fef37818dfb38a1fde46cba9b16719e743050fa485e6eac3577f4d4ade952ec09ecc6e67627f3420aeb42fa2a62474fa53c09982fe11ec5ad02f3cdcb4b9e4af98bbea60e8ada843048aff7b48e36bcb083c996ab59612bcc61fe34ac5b480454835096fc288b7158d6a28cddb99f3eb9e9353434b419b75554c5c18c716c2155b10babe2804bf50a4a99d0645edb73772f6e99c9d28858558bab163b28481cb5b36912cb5aecedbb1a09b381ee485fb4c3b63e83a02bbf1db6dbf51dd4b8e91c7d55589d4569f154574336592ce52f330d183de5a91a9b15f6b97194a5629756b1ea15954563f50a2e49a64ca40b55026dc204a52ffa7277ef782e1e319386f1d886b0773e17c3354857d34141baf4cf4e8ccb33aca98a6a572fa10b49f222b601e930ea19ede2b8d936a81234a50da12f7696311934c538b6905decc26470494b2375bb59b26589341847532199b0828bdbdf2ad9e275cf1f0f3e01b9c1deb83eb70ef7c574cf79dc46a9a02ccaf26ee6a5963961f64e9739ca6a910329cf78d6242770a51b262e94f6c65db5d81eb2ecc0bd2321bbdcffb82f1ef56f9b27c17ab663fbd3c1922d2d636bdc91f23f2009932bbc50028a0a4a4c23bf87544557dbe5e7e7b85771bfaa97fb96c24d4e58498f03e94a4565ea95f432bff61dae54d5ab266954d891bee68f1d8c03298b1669b1d562b32e651569711c27b7e86012e6fbfee8122475822485c138f8c52efdb4c97db5266345b73d6759fef939e75a1433903858b05d9fcc02110d248cef007af8db1332ac458e759ebff342f0733bc39872ac493e632dc2b697b786df53542dd3244f0f6912ab494de0e813bb78bebf18fbad92304bc8520746abd886c7b9f3969202b2ecb03dfff63fae0ce8b99d9f76936971755b25613aa5488b355f2362b9254d4a81d534c975a8dc4ed6d9745dcd89717460c82e0cd912830974b0d01d3b98e763b7dfe37907c7fac5783eee6cba9aae9bc27642ba52fdc0aaaaab8b3b6e546cac6dc84aa6c5de82a092d8c13dd5282fc651cf902e68b08ca89b8b3b8e2ecf6e4e2e14a706c03096356d428aadcd665c23a34db054422000c35a0677865e328b326842150ab519c3589bd5d98575362628d4108b6a1257d3c538af3912a6fde3ea67811f773ea7c9581bb7abf10abd6a155caa1176353dea5f79c245e886089d0d16578a8aaa61079b77f4990aa370bb093cea31bc0f4a3589beac60a196b04b37928af28d9b56d01765d55814b69a63b30404b6c9245bc2a486db386e0b733488cba1e18e358707fe9904cbe0cded7649617bc653334d6a1180afc032b1e3cc6d256da6a5b1857d62176de6a556f9280d2ef5135c78fbc438a88a5dfa29cb47fd0497e815dc8f2d5b2a0a892b387519475d42baf4d7a036d11325617aac28ed8bf17c45a5f8a8e58b498cca341fd8efc8f7eaaf2561b8eebd6fc9edff60639dcfb3f359e0c79d1ef05bf21d91a3fe2f1cbf24b759f273a5dcb1b268c883efd8c134b083c9968fe364ec0cdcd68953084baee0514f16d722e7a8388cfa058635a93a61598d6da7315459cd9941a24ac958eec79a03ce703d03307dd530ee265f4da2ac16c39024aa8414bb49344555b408bbd025b7b910a77a41b654148f9408e336c3a4d8d2c495b22a8ac5a10a4a37eba234697660c8127dc951bf1dc36e4c6e3be96ab62e1676b0163b09f3852cd51605a3ce30a92c1b577edc06f311acb23a586575300e941526cac2edb1935d8e6b15f7630fe1b419485371daac51614761674e8b4f5ac46991e74c79c9c6d7f8715bf9d18ade53a91ebda8e420d6d8b6156b43e10c62b7f7d856598b1da2f7a844cdf357492e15cd000000000073140020200c0a0644e241a95c16d4e20714800c809e4c6e5c1d49b32488619032c618640c21800010100118289859250060ee32c856da863d5f561dbde373353f2146e8c4974213df572fadd0a3ea9d9f75d40d2fe38a94e9a79201f93c3e258e898902c3c95c96116dba9a7fb8e65298b641677c7fd6d2d1d0899e0aa6dcee10c020b76446681b5850453afe37b478964744e5cb2cb3100cc75ac6abca6068336f680732b081b1326a61371ef0587f5d088e01a79ee30f81247f86676f04eb3fe189d09cb8c555ad71f0b00c2df8c23f0cb40b14c38616f2c096b0cb64ad06e32d01217b295b03e701d54b66b7c9c6167920fd6a0853af5bcc4c51b0ebf7ab870ad0e8d2bdb8f53df15582ad90c8efa31a08dc7548ce1faefdec55c67ca9bab28287b4ffc8201da83c9d8e6d52a6bea508a77447a19a871ef49b3728bf5e1826804eeb3aca2d9829316e908abf801a6e8d64bff30af99ff6f960840058593d0a8f1085f4de94ce212892be8d8e6b526d14ae8179263e33ed740dcccc927490d3f436ad751ac8a2d70325b29717d66cbee6a729b90b2e04c41599a8b7a36414392af43ab5b5671456d806d47e1dd2a5744ecfad06802a555543a9f7f9476bb975f922bf6d759bc62aa3fde6f00e992f55f7839cc8e5a3621ba63aa56ef0ee4be106865d126146fbd44d3c9ec6b95db7bc0e26f69b298960d854db8abcdde4a3a1464803a7f85623c2e09a2266ac8ba3435d364c0ed45d4cc6838abf3d81d9d3be7be8c5a7a761f323d66846f4f9d820344cd71a24379c2aa08cf4a278c54d317fa7edae9eaabbd3497b9baf347f36c59bc1a2007f5092b77106238f3b7f76338246724afc3c3e7ab8c5ca30e4dc115392217ac235b498ae24845b162350dbd93c5b0040c532b14ddb5ec7b711849c4159b578edf4a4eaaf3416bc6cc03a9c3a8bd61ea96f3561cd89e8bdc5c1614c9c1bf7b47aaaf2124f8eb6cbaf7896ee0a0d49c500bdf8b5ce52f175a62a37731a2f5e18bd4689d8339e05c0e4e81aaf9a6b2305a0b243fa1edd15e1a0179ce5db03541c3bbe4a55f001b2471ef768846018201dd37a94c9631691dd239d0c98c8c8936201a180360aaa2b47c31899eef5db5d9ec645769cfca210048e293f113c32112f7c0942a3dd25c36df833bfa761c4e664588a67ff6c704df5d1244bd7250fbb613eff831d75584585b94f31250166c61d32014e89a6862e43ddad4225ee124236ff7edff0b877f0c7f1962db1d4921e697c3926230eb0f3d53ce1bc691fb4a4f768c1c30e14a162649254d85a0d5ccec64fc2238be906592933a20e34e7ee4052583cd0d62a2c421b6bf15129a2ca5d27ca2c3aae33473b68b6abb5d0076f3a9a128f25fd3861ac16b689152c0cd46bd32dc29d902b349284af11183e1b0a93cd27ee5184558ae3d9aeb6ce242f88b0c02dcaf0e64c5ea33fe1ad72e1a77035a85cadf52a5faace5015931dc0f3737ea88cf30d374e16ca0f23e119e9af8d30db29f54a18f43d51f1c943ebb60792c78e8c254b2ae21eb3548f18ed4a7114e6dd393134774614301848c3cc64513952db3310c5ec5016330183459729b8f4d76c4a4dabde8a9d664455e4cac86859b6ad34bec4a124ae744a20a7713ba161d7c1a0ba6cd790f1caacb83c1c3c53c9622e4961e104cf982a14c734a9a6ba91943b23155216745331b2f832c6203692f66a1a002a5cbb23e65ec20b045bd0a78071777f0f1edb3da11debd3a4ed4458bb3071641db6e427a2622c080777ef1a833b7d4a0c48dbe809d610f1527a56c5c9ec14b6c0b87d2cee4896a765bdce8b95017470def73a673df49cea4b9680bc150213370dd3891c90f1accd55115169d751b98377eb08bb216b739d5b925e75b278b63cc17a348b3a94242a868d26ad09c8c326c19b0f424052e48c2e5519c4a05e53d42b4b1f5ed0b5371258889d608cec56aad25f144cd5df930b6911aa1230be4144c14086ec7639daf844125b0a02b46f1f9e3176c3fa40a41eca32cef6002d83847d1c99d689292767e0b39ad5b5a4b80af013281132ef0f25df31c1b104c643734de641f6f855ebd44493a80f611dc9897e20051a3165244e9609b09ecec20723967d0c06013882027668fc21f86102c8fa2e8111f6aafc809a7e3e5715fd856f5730568592c9a6fd013bfec2a7cebc10c8a3bcb39f0ce968d9c878e7316b3b62f5daca08ad7d58b473d809d4e13729e72601a8a078745a0361605dce4d277824335787c68adab1e068bd82d2a9f5a76d30cea4f2e238a29362e20829e69a0a7fc6e8c813581360171abf8cd10d1a47c6a0ad17bc1ca0f0258eddc5c2b9237cf217a04c5b58e61f64a7490aa248f984d9bd20af3c9d4baaa1ddf2f7573f8d47e36cdfa4ad73fb7ccd469936e4861ba44bcf7b64a8ee28af27fd417c7f6c5bcf9f8f7b4d863a793dfab414ef4d76544d49dc9ec53bca4a0517aae120aa98757a455d2a66cbeeb033cfcc4bdeed2c69b470484bd1c18c4d0581c10e3e54314407596e145758026d2ef19ca2b8fdf491f3f2a72dbb976d0a4f23d8c9d491e059039a89b33f3ef81c716773f2cd2894031034dbcdcdd292d3677378ecbe23023cf34affe0c282a02727fc352b1c96047058075a49a4c3bbdd3807d5e70d250253c7c42205cbe3224728d13ba76d4a74d1a5132706f16de07d0a69339d03a11352a5ffcf74cab15da3876710c9b1e4ce9ab11186d9e06b827367a3d1d9efbe9ad743e465746e540590e755920117392d1a6124f02afb864896ee6eea8ad3b54becef1df86ade7bfd7fc719a3d145d619b9ad114dc3334a0bf5d63b866881bb7c75085382019416bd2d86b53512d2727c08279de4e1f27d3b56da5ca2ec91f796d284f6014adc635096a334f426ad34d69eda15f1f991aef84279aea1ea50ea21fce95c2fcd903c37df5ac15c4305baf6de5bdd69ddcb72a65f2516efc7595fee603bbc60b11ce8a8203872b47282c2df00e55ae6a881598d852cca9593e3a197bf4ce97a501e0df89ac572dda1615bce63e61529e5825cae983c90cc719771184565434593564489425970b05398cadee275507da078ad2cef60eb25a59dedc18d3af2ab12f5761bff1a708b70e7b6a8d33dc24d140b750ae234f7e841cf9f8433906e7779bb89c4b37a197413ed87770aac0db77fe70b56467c99c2f0dbdecb07755ea6480a49b23ba8c36d94e8ac3486a10dc228090515c967e7e42deeecd53cf86e1b0172c4379f5372bcd607cd031473c26d148e08106c0bd028fbc1df602302844a40e968d9397291dc9acf701d8ca6ee9bde1d8d348ae3291aaff8863f74fa74121cf357a82f436f8795ca23876862a283d3649f4c9337fc664b24aee63d3f0dd0a871b913138f011780470da8db0312f7101e3a00a8f9960bf496aca62e690c03f0e77e0f87d28a26cc13a2dd629af0a35966a467c386ccc169ebe9347cc9010f788222fac05c07b9aa28245ac304a2c417b561f91b1c640294fe23c8d3de434bc5a26f995a2e441c40414ae7750067fa21eb9b9548573e3851e7b36e20ea26c0db4e0c9596c7f1e0ebacc092513495a12a353c9fea004521d6beca6da76c1980a37173b43d5243467b2e2e5c3c7f728b0a4073223439c472b8d03c95b865b0337ffa43862e798d8ee2da29c8c312efd193bca9419beeacfd44b7cf529ca7218bf84a0456b1a1da4b923bdfefcec102bd446af6754a5194b9214cdcd769c01085d6754a89f7b81327f5cc0b015132bf01021d1e1a3f785a3200accce51ba08232c1f6b8f423ad42fd21813475ae56e2b91e25d208930e568125dd8894c7c35d5855a0005531ad79e420fe71175205b85af417e17c67069c9c5f1933c822e3034d6816a37db5f637251438bc61874112f1b313c969a1437c8b8c7d2569def8e2d0f701b6965bb57a8fee3a4a7a908fb2adb80818562fd6f5cb27ea319fce15fe9e00348e228e12b22fe59da24e61e8cd47997cb857e36d613d6edd89932a0b2a511d6aaf4a3cb749871a8bc5cfcdf471c0036b1b8aea7288b5e2d86505c30337c4fedd8ff61bd6ecc36b780afb2205f3e764e93ca33b7ffb8caee4cdde7b096bd48b47af2c16d3dabd41820a63fa4592995cafa810dd5faf3c4ceb42aabe6c2e86a5b126aaca8a3d8ff3db8cd0c8f4e53af4c55e4d1fd65cb9f67dc33f88102d3fcea6d7d076222666489ac0574dcc46f70b32c9ce22bf4a7131e8315e3ff1b2f6c2ee0e8ee27d563eaee5f92aab92092038c7b05f9770207c00d8179d03280427ff3ca69f9df15727181ea0fa81e497e3b785ac3131e030cbca748b09f6882bad2db2cf1243e2f60dba8190efda70c5e2cc1356769fcc3332af93577abfe1d95045003387c711e23b147c8fb984d80abe3e0edd6dafa08dcd99301b5b12ba444026332cd1f27793e4f5b316995a68dd1db3590fa749c1d1636ca80bb0cea50d534c7c2da694a210826db0f748f6abd807bb4bd08bcef400a388a67b52b0960b5caf9d6cc26344ba0aba7e71a29535715c425b2d7b6f84fef710b2b97dc9c9ba4e48f5d982f2e265a0bf029038cef413dffc7abd0d3ec895b172970cdea534d8573683b75d5b631e83f58465632d9b522322ecdee848406d2d3f70a091dc8ed41f322eb86c4239040f893ef5648bc32f624d4165b36009738871a7de66d1e6883687576057ec6d93b8d6d876883406c8de220eb1b7d5d83a1c41dbba68de72eea8debe2c387645fb31d58b618b85b68a21ecac4f007441cb7763dd9190342a42cf822cb2ca71782dab88a21515ad89c7baab79898188568dd7c8ab1187bd28d8622ed6978cdc27c50a0d1844ba98fbf5e6760d84aac04e765db084ee9cf05a48719ba1e6206279ebb2c71c3a6486ce0a9ab2dd842ea6e3580726b7a5ef1c268a06d698a6ae0109c254bc67b3624fa6d58da0016564bb13367b79e169a443ba62e8bde19733479938e9a9e4f40c549c0cdc3c0b34472e89876ecadb8042d9e353040160d4a06b39ba76b2e98a47815e21db0ed71b8ab4e88e8c68bcb3834b7c5d2238a72f5d9e54f1745e9dec8dee6024ea2ec928dd41eb726850339df1cf99ea98f0f863acc95e75f26269496e9f72a32af29b0831ff4463c21a152839197cfcd274a65c47cf86a9a24b81edc57566c2ad0970d39c146c5d1529c278525e62480f38a24af4e6c0f921a78e8f9201b3f65d4d80bbc68e4c08572ae15f560ba1557a5b5a2119ed99e01ef624e266ee54574e20a100a360909571f78fe07d98111019c3c5ad6d8f8716b6ffc44004bd8e670305e1aac3d261314d73bdf16a2d90b1cc73c3f3edefefb7186427429b647f09b929c1923ccad057301a081c7169bda35c27968962ccb3093e183a11e649b15e9f4de556a16d483d4539f33998b96450f88424464f8f28d1a7acddbc0cb697e9d818ed06dcba2e7efd73cefb2cd6ef365245f4c69ffa6859afc48adcf0aceb50560ecb0344a600b00aedb102cd1f90955c4a262107dd334e762dc61e3f2b52afcdd44eea3f6c4faf8d46bff56e64d5b8568698aab7c008e9b5bf6d233df2d4a4e9e858d2c22c222f895d39d78d82b07d57293ffaeb4670894df13b091d81fd774ad4648a711aad4db0213a6d73c61b32d159b22e92268df50066ef2e027dbf14194a9604984ca56da4df355e0c3c8888bb261127e99c94ba05ee7b858b9f0a6a65c87f610e228a49cf61d057c1052cef1b9b9ae5b3ae2ba75cbf0972ce20838cb4bf623e470f941f01d282ce088bf23d28d464e38fd2a0b3d4031d1b7bea3ff2696143f1166e50024a4255330e2de957466249ac56882c401ddbbf74ad9afa18ec1788c182034a467a9bffd901a780913ea80dce8f2b209591b9abe5b048a4071b4f4124bae55d921d1c4e6f1148008f8b8bfb58f0be5f5bd50531b99259f77aabcf380fc962d212d59ad5335bd1a6f4b078078fb6151eba1d56cfb13795db966a939494ceb7ad30f0aafa8032480e4b0973833b82fa9e7732f3d6c63b49ddb5844c29ca42800ad089cb0f1b3c31d0a93135f181d26962ce6c56864c3df64c468a24f91e38b6fa263e710c975cdc9977231f27bbb1cbef141d7b3e73daf4426ea2e6e6bd8c5af42165bd7ca3584ff208504dca4a4c203e8850545b62510cba86941fda0e305553326772655f817658be2c90972f40f4ddde6d046242bd54eb154a34c6b6a9580dea88d5603829d20567101471d59c6f58ea88172a9d2b859c046794cea94d827706e1bf673384f3ade03b713978778be241a082ca81501c16c3cf4498333caf3c8d77e57c5c092fc4a7d8ce856d8c212190e2b8b68564a87dce8698cd56b571797aa64c4afd20397a8814c238f634de6f82c99e1fa433296571bba2ec67d18e15457bea93fce3a54840cd23d5be0b241e7292c55f41409a89e3057f22f563066ab4f4aee31f3f985412de83f824c96a30236cc8187d01109c3cd33ab2e18244424784c58612791f9dfcbe63066a8914fd9c0af26119168e9a98c4f570831e63e6fdc5c7758ee7aed6744883570efd4ad64103c6328a69508bb58c75416757601efaa505ca659963e720bf2f26badd76412cd3383ad0f7818aa3aed89ab635927bd846395052161b63d9012c8f263998a3f22196cdd145d41325e7ecf1b50d400c4769985cd4cac760b4da53b91d2828089352aa5d4ae9a051afceb9bb8c22af081a65d6c4d885aa2975ceac6b728d6b37dde4cbfeb6320d96e98cb97c1cc9832615d3c61ab0d8cabc1651af8b7907144bb9b6dba7b962c647bceebb07597eacffd1303208556d34613d67ad084de06578801afae435ee804d2d966a6c2d55a6256ae1ca59d9cfc2a431cf3ddc4aa079d282ec6dc98cd77d3e044cd2b2bb78b42706d36f4cc066f17b4d13a86a2e6de6534392fd80161f4f577dcc87f23f0ff69d291a4c0f8e5f56f965e31c1d1841cf1ba750a30ed1274e7913722e0ce8730ecd0a9d3f71c0b45c9907f35dad99532027642e5ebf7313a9c43cd3768f56518bd46df64d567e82c34374900e9f74d0b33ea5843f409a133aa899f5a6ce4074f94e7d9dd0534e21cdd338029a519d9410de71286670059ed82039e138028609c00dfc363933754befdf9e5057396d5a2b5a2e515ffc61ac25c94488398a6d121f7dcd181584dddd5aef16843383520a8e920e4b75019131959184b195215d31d8a5ce53bd4da2756d086cc7e81ae341266e481d9827edb8cfd2f6f6248bf745ca17c3db2dcdeff1089b50a8ea062745b81494c454595c6fa8c030e304fcd48974247661cb6a9b869d8d6aca92681d959a229bbdebe91a331a2fe7917d64f72dc55950b9f5e6055805e31f85ea6b4ed8cb102617b564a0ac3127ac60a76bb681270128a1a0ec5030717c750167ce83173dacd3e3da27501837cc2730c320bff75cb6a6d6174f29fbac92df9d61a14de6791754345b49398cedb46c9fce9c90877a03c4f3baa6495286e4651b2c3c82fb2eb224b8ed4883598e15b512c92d9312d74ffe169c0760b1417b8b6a7b847381c751ce5a10183ea5e92ab3bdcff355058c35fc2b86973874051d875e1435111db723c03a42c79798467b0973902bc0c86a697e0584bad0f420fa2ac8a37613af0d0fc29bd9689e6d5e82dd3c828d1f7b9b5e1dd42c390fb89c722a114a919aee18a235c492e6d98a4e681fc40dd50fd646b9c63c9cc80ad696bef2148d58ade69a71e23548c7fa262b140180d81a3c38b52f65a846ff2da3d74498f51771f932b5dae908b1710c0f271714399a142716e603d5eeb7e9da5340b42e1628b730cc36317f36044d609b8a7ce8a91a254351323dd5d7b83a451e45370645a6e241607b51a87277662d467940e18029a5c9e06bbf4cf8189373c0c0446d85b2caba01493969e49f568fd887fce130991baed3203d94150b997f9299accded5168fb42e3feaaf4d381e77895b798526380a675f3006de16838d368fa42c3e8105e8bbe4a85de188c5ea7a00b9d1b127e077f78fec713c1c23b2824ca9d28f61955765180858c33d3e410d6bde54bde6979cbfb0fd0ba2936865da9f22d18141695d384b78c5b1900351ec4482c8cc1bdbdb72d8c27b885107b6f814e18b933eced00adb2303b7d11a67b4ae59894bce79a1fd6d44fab7eb417b45783ffdb8a3067132466c4cc4b3807df55515b291f36952b709845a877a31ee8eba127a6f658d8c1cd1cf081e93034f04c6badde75d816c905f03d71533a94de0e6eb8451e8f5896fcff7944d92b398b90b392b229265e82402305e4b8acbd78f24cbf53ca3c5946397f8d58be956d7b90f49dc6a3b11f208ca5f73e43c5ccd382a4a1104a52847f32f4b6b98b8fde5ee40bf563a60c0533ef669ae9a7264c65bff4793800a500d9a841fb10c2cb24673bdade9c28148d43b61b59336b60b81b550b820d22eab9a932637795199d2f41d8982a65fdcc98acb902c8da955c9089cccedd8001b5e42430d37cf0ff5efd2b117a799a394b81106a75ed295f073552bac57c5bef788e13180a725394559136092bba47947c1c3d5429c184ff7aee1eb18d8556ff748453c060a4f7992188674068cfa051fa877ad33d2a9dc9785ce83a9339d4985640d826ad32078832e7d02aa0adc045f52859929b20f964176a74ae00e50733e214a4057bf1bfc50ceea1c00a5762c2ff890d1d6dac90652e488384a3770bb989c526a5d4c242c1b7b33f47ec950cd3cd991e5508ed02b9be0b04c335c2635a4d412f186325bf493cd18dce5809ae0cdc7464d6387c9c9f0eb704bf51ad4a253815a57299b4f8e0c7bb275a1f4c3a76e8b6540170d797f702b8daf38c486880375945bff0cc104488a9e625962ebc2fcba6e732b09887ecf62047c7466aac241da2f70217c6ab5249fbb7437a1501efe8dfa9d238eb5a50d000a79cf86b9d0c7c6059b3b0ee4db2d05b9ce44d2a36890155c75fb322465e6d15520d44a18524e9329663de0b3be87a8104a47c686ba655912c9adc7ec8515de094758ef566d3333d108292a53052317eca5c2d0230a45219c95a7a75d155e3d4f6cbf013b3a69e78387f7b90ce375836bbbee0e00b761fd3f98e19d683c8118910e22ea06900b1870431d17dacd54d2ee7a8a7823fc96d66bd00d8dee704d8b66afed8154eb8647def347a46a8b6ab00522431ec84e47eac4d4921440d26d602b7ba49553a2a98378a4d890fdb2a42cc6ff82b587ceb659a51993f78124994822881e0a00574a24807c009067220af9533ba1547728a3b07536aaa2732802924938324cb9c3fe0ef3f4fc79832b442fbc1b9556877dff4f0c0ff250d3d14ea2a9d7096db9086c00bc51b70080997094ee410f23edc601f42144ca73172ce29b1ff657bb14a9a1da3ef4538adad59c087eaf512a60b581ea0b5ebd8ab4db25952e6663368083e9afbb3ae0fc29b297a1e84477451f39f728d42cfdd9fe3941fa963ec9c76d481ad289ee41551f77338c91d0995be44941e0f48f2fa48f252380bce111db40f4566a7d2900b2c26873bf93d6f9c6f96e42216cca4e6c40314891caa54053f9b174d4d60d851ec835486d9620ad8c2ef78f7b9f16ae292d190ab9b05ba2a9fc35a2b17dbace6585d3a3e81ff6d08c98cadd42c34605f8d0c0848faa71af3ff1024d6f6c5ff5fd70c41c377deffa76982576ac3151541ccd1be8c7106b77b8187d0466c312500bcabc1ededabd92576e2ba2708070a6c94fbdf0e88988894de79973c123f69b35a6a91dd6854f50471479162de34e5711b698639b43e0a783085f10de7b8b3269951960d9b62463d6fc18cc42a172450898a0032d7e1de9c25d92ccc08054fcf49b2c3887a5e1dad0ea1de57bf9aa88b2741e0278b73c0005780b74117c34fc2821de75b66439cfad2447dd824716a302667665e08e237fda7dc16491045fd32f37fdf3a0ad27b747727f8dee2eb130c0101f5f2b5aaea18c42e2b4b2dda94b6120821128245521f511a68b06744a64d6d973d4f2dbd69f21dd364bc890d11f009d97101273f773f1d157b1582430d631ef0015e6066968e8c1eb30a90e03438124695b64ec5e4dd259b20af03080f1b6b82c38563e1f0302ce0dc94332ad4f040919d74e2622f85d898db3bd16e22fdefa924fbf1d2bdbf3cb755506d0b172869bc7c831ad1b89bd512e59a23118202890bedd0925511976d4cf635f10b64e15592adbb10316e1101318cce7d9475522c53efcb557a7f8aab27c19318e1df624c332f4d9acc684516d92bee8a38e034ad0ac41ff84c597015938d47febf2245a013e1f77c41b47a9e320ff10600c23c66f346a0ff38910c0d8988f9d2086fa0b586be2d323c08ba3d90ddeefe8b6d90791825f3aa56b804a18ea7fca82de958c61ceaa61afda38348c55c501c6acb44697cfefa8d5acdca6571a8844e3bc1c9f694922ca23a7e004e4b60e897ab35718419b44f521dcfefe247e6f10bd6383454d4cf64fb95d548b828e483b82892c38c9c12039689fbe3699cbb0c545ce90d62ab792c7d16c258b893fce3b86e1fe3edaa41fe8338ef63aaa13f7263c8c8f44c440b9554f41046462c7cc488c99773dd6bb1974c8d46c64c29387b960cf07ad022dcb2b66b32ade9a3a87837d3c3b6515efb9af1698000715c03b87be8c05fc2ca6b68b02808497868ddd491e1bb4e39e4bdb7ad65710aafc167d7b5d8b4ff3a0ec9de80d656cf5fa9c27fc22f2dea93a08fd786ec50d6709137d15e46eb312338e8fbf180a901d4f86727c5ea7890f8ecc632bf95af7553bd4c097d0026fb283a531bc1b3d0c7bf8d31c2f6d62d9f16fb88d8fbd17985e68b67e753fcc42793ad3a89fb0b8fef6a4a6fbd000358b501e62c4edfc04efac512fd153f8ff06b344139b6e003d9d06f5de52ea7325631568a21634880f2fa150d0d2810cd316d836fe6ba8a323895bd788f1370efe3062c6a4d4631dd5b50303002595db7bab8a90633f8155547ad0012289a4733208bcd0342b9291dc81d11e53cd3a232433b8215c7dfe3f9ac533f284325ee13a3cc0caceb25f1c033046c93967696232ef9adbc81fc5ebfd5c1a9d13c5cadb57ab430e7da248066de804373a7e1d9a448d8821d39e9b6d237487b83e336e40d6d74159282c1676dd096f762cf1eadfd8cc4adb8778ac7edf68b9b0f2c606daebd3cac82bf8a635d4daa968ef9e0612a36697f33e01642e0bd843d489dd791b62d252cb7be04b0efb9265b565d172533fa9200cea6e20022810de1e2c51455094d5d1e1b6563630be0735f4dfbad82b677c066a36c073a74305001314ad8478261c6d6b088a86fc93cc683eb7bba9447af076abde590f9dc707de803b4b7fedf89b13fa86f0e5b26777dae955ea13937fc7e44585a94ca8b17b4ffc8cd2e185669407c95b6b5ab41c60d1aeaffee86914d521c78d1c3678412926d5c92fd0211081e72355d3aebdd7b70d2f98a1bac383cb9c28316154e11184f5f46149fe1c1978d9f63f2fc3c85cf4117bb016660889fad71542a5c8750eae01d7d9c8f4112ea049d778847f0a0aeef79e887f1f6fc80f778f84805078206783e38ef47a38985e02e09bd2c9f1a0edd4e369db0289ae9c1631f1e980f08b8e9c78dbf3e600ef6e80b026e815d08e42754f1602fd1c7a12ca14046a0bce7724d324bc0c6d46e818abfdbb680a327a046f6ed5234c1f406ed9fcea4690e3a4bb2c926c5f00fc818bb9cd3992f5a539967c976ae3e01077f6d6d318c841eaf1ce98577655dbd29cb516f08f24475b3dd9cf72519d41113ce296ba3791ef77072ed4a55571db30c6185a83e9dba4c34749d737f728482b86bdbcd4a5c53d8c6fcd07eb033bf952a24637a185fdc0cb5073b31b56e1322e8b54aac11f973c947555d4143ca97bdd9970d2fc03378aff04a9832d0529880afa13d198ca17af3317f3eac0695b48b1e9aca7b5b30287d90c53429dfbef2e9866523073af009101f0ec37e1b0da2b8cfeb3a75ed29ce0495f4d9523e152571f2820103eace9f34e0a6a18c4dc0571ba1e0c6bc81438c4f346c11e27c3a064cf49259020b6b0e497d2aebe23690b57f969e34dc95561e35c7959be3ab9b401c85380bb334b7b2a21b7fd77dfcede63ca90c7c3449360cc78d8930f47e91feaab51a18725c83921016c02a43a3d843b9ec101ccaca606da84eafd4ae8568a3bfe1bd340e63ab197c9b2cac0e351c5ff0365804076533a5542e62abc2cbaf427d63590c1fe93ff81236d48bedafe24b98e818b6fdb7b66baac18df7a82a88c16c5f26760bc33650420c1dcfa93c4d0c5b11f0c84d454284a2e1f0910855d3f945d6b7e25420846ab70189566cb3cd5585cc23e985a22e91787d2a295aee791704df4f16f98c18d6ba90f818ffbb481b80e4bbe736346a026fc5982a22afeb89ae75869b0f389ae0ce606d97d1f516bfb1b042a970a448b3b33f3dde6363795f7d94fb8f0828d44b764ea5d3462a012a08c3b97e57ba5e1cd2ea51c3b254e3a03aeb0649bb347d072a4d32c6bc3343dfe082e0cf50459aa334d1d148e3fd9508984335607e29f37305257248a599ca1a0a248d55d6b40d1ed67b000ba0d999ae57fa47581c08a087a291a250924f52cce27f8a1915a50ea40a5133ccfcb5d00ed5523c44f26509459f51c5a88672566e8629667063ce7a0a8d649a33fd3406bf9a843ee8d77f61e660b0e80f98bf688f102c3d15b47e0fb93b31107019ae41942bd453763129239c59bd61ca38b65754f77dc8ee31daf48aa60f915bee18f1d108a2a0803114aaa977d14e1fa59ac0f9b7aba4a1e4c61af3493ea2b4cf31937a02178702ba2bedb86e64e0a6842895cca8e6f9367c71a1874ff2f315aef612da6fcd0bbae2a89b76c5aa3afd76a62ce6e441a996790969953d1ffee1b666459d80c0f139d1605758e346a7acf013a3915aaca3649623aa7750ab0c5f0be4ecf8b52fa56f630c8795027646cf4dd27e93a09caf4f113a8746d9fd996cb751cd1c90fd486adf3b926b0bbeda845a3f6644b9170c54ab288d1d6db3bb0383e6de2ea1eb1727b786300db869e69db05999b286d0d2a742c6526a40e3f9c90220d2b68332ab99d1d7cb2e63b505fa6e00eaffc129d87a44887a83db6806910442f9b810c60b8e4168595ac9cc0fb47810922f3d7e3006f6c1cf29fefdd90d51b807114d02b29c1556f32839610dac92cacb2c693a62bf47ceab91dc5489c423c9c85b9425d84076150941692b992b70ac45a8ba74a8eec119989185037685c063cab4f20c82eadbfb57ff1cf6cd1d86a87ce9158405615acc7d6b04932b520cf1da29e7a8f53c9341a1717a312066a522932e07576439b03a210f5a8b1fe5c0a60e35b85c38200879a33be03a49dcea17cb734e0d6674ad7dd035e8728c78345541cf09034075675a0a687eff89d77bffd6ba38b5f63c51da062601bfc1659c21c14619dce6ee2e032ee7e78a96403494956abf0f589d2d3e6c6f573b2594d15e431b79b7f85b2f4cacfe1cafe284030e384887e03a7e275142a4e104db229c4cc99d44c10401d4230549143320e30957ce9a7711933d655ce99c206b9a8c2b782071b02cfe465582b8ae8285d8d5b2d706ff29c8a83674e3e9e6008bdc5c988b3b68c2d448b808a163d9e230672f9a01f9cd7fded254e1f345286db11f35fc821bfab91e49631f74079fd021ecd7c09fe3dc43b2f32cc1915fcd238f68e52b8d28a56461714984d9c1507f147e5e5360f16d532a9cf57cea12d565f52e951cd8fe45f5292759e436e5c17e810a3daf4cb24ea6cf2b51db633116e67d20e91c02d651180eb83afcfa73a0de99a94267eefea275345a9dba86e9a9cfae31b83b06e9a87cebe99c27ff064e1cb592ce8d26c85307152f3b312e503116d84fdad44084b7af7d84bd77962110ee4293662aa067a209d3fa6f5e461e77b25ea19185df75f9fe35f1e1fb66f267fe253860b9d2af7a5a8dfaf4fe32af36a70e9701db5b6931e2d279f3622c83fa120e8a9c271ea836db95b9692300c66c5829179c6e4cc77cc5277bc1f9d85942f3c23a35ef9d8c6384d2bb5a74927dc8215de2a3dcda5eda2e68e18e0f70355cf62412e07771499c7b15f440358f4802758c9673d0d78234fffbf5a80cd7a81d2365ef567395ec2f8b44c84e4e8933a7f5750766b4c339b3eca6276e7b3cac2d9182ece19edcdd2b09ac26d0eb82f7150059d89d98d9a02a8d24cedb71be0fba1efa75994d3925b668a57f1f73818f2af45c6a2f0bcc2bbb462914b0159018be921d8d7e2b3ff8f4dde49302dc7c534060f0f2a880dfb5dadace83fceff65d4741e234df5f8d42fb2b868e862c3d5719caf88debb2c29e417baaeda27762fc41a5e2b3c395a279d338c8ff492dbf590437a4b181d81a41077d414c74819c9f852bba37683725cb90107e5f90ca5e6d5fc6cb3847678aac80c2ab8ff0d9853c52364888127c2a8e86bdb29405d6f0ae3c6a1794cf040b34e07beab878fc0d221f53e697168b64f22b7967cea874a9ab26b9bd05f41a320c858d9e58783e8c4a7b9a78c44c942d0d97ee6c8007279c912ae403b30a6f0ecd21f927000f64085c37aa8c0afa7b1b3ac8deea4529c28ac68b25c938fa097402eea4a96d5d3cbb2dcf2bcb9ebaab83900e0b394ff1a2db67174a582a47a8bbf0848e99bd56012d9f84099aa67e113493ce33b83d2a8c8f5b76f1d9c2c59273b0dfb691603a2a804060b915af97b1e1f8bc7cba72b3bd70104d120f650d17d2ef32bd74c06208bb1881a98b0620b140ab409569214bd578d24eef1fdbfd3cac566dc4d3c5c713789b8ca2c24b944af86a9cc1a8592e613404409450ff32a83af6170a7f26203b140e04b3e4abcea92827b130416338680f4c2c41460c81ee3a56c7dc7178c043e44c034355c48bc19e88ca170ac3a2bffe3a7d076b112a8279538e00ae75f9670d0a8f4b69d398cfe3097a699948c470509fb5bc8a5eb041879ccc718dc4398728598f6d23e75ac950d6ca40777a4fd47052822860351f15aea7f39671ac0eb09555f4349f7df10b406e1df7ebe2830a5f242fafa42aa8b1451cb7cb1dbbac261a1ce44a392aed4e10fcdb4e860028215fd342ca79f72c9c2c4074c787732f3c97108d3dea8290d914dfbb14de122f75c8f8d8b855fd7de51767d1e73f278510f8e17ac9d76b50754a7530a1cfc82c0e5aabcfb44e1282c10cc89801eaf357f9c97b1576b91b218c209e980b4118db6b9f68ab3ab127d7a4c8e14eb81596d314a4da7722b688299d6f2a7309e2cecf0689f6484faec5a21a1a84e68656a26cc099526baffbd83597f84e6adb66c7dabc838f2902849c2ef3aa8a5550700b644b7725005bdc74a0a6060c5020c1df58a07b300c138262af9987d5d7268b3233d92571341f2ca96fe4baaff3b17d17ff3e23cf6ad70a9a54d141b31b2df54dc848d19638265da4ebc4752e28c84a41275d8a5a2ee3018847c9a88b5919ea5c09f512088c488dcea6cbbcfe192c04d61491daacb245177ca8894f5555b302e0230053b5d7dc50f4ba4876dd90ecaa5eb52faf00bc7e96e970e39230b8c3f9a65ef21008b3e64c977aa438754cb705b84447fbdfbf1eefa89bb3057ead53a8abdd54008e7f390aa371d877e29b668ff50dc115ead64b7f7da803556f8cab2a2570f9f73700e38aefb8ca6886e0dfe59ba31021043824d4f97d93e0c8e836b5b6da0437b43a28f6fbcb39dd34377b8ab1e5798996e99ea0496edd0c749c944af0719136c6845b450c79d68060ebe75afb5b7c311e6ae3584a95e7790bec5487f407676fd95609864f00e9ab0f54c0be276a7529cdb3df28fba81ceae7d1a767e3dcea9a3c05d87ed3d7ea0ba2f06cb9c29920df7ce94c4a333e0d15fd1d20b291c5e58d7adeb4ad354648f63fdd149e909f7d5558adf1a4d18d54cf95a0ebc71aa116ccfcc4c9fb2131cdb80b2ff83426a31ec4b82e6792e7c502cd672c1195adaa64532183fd76d6aa45c9642a7b102335319db1544d285967d1f32a96d68516e62957c04f1be8244b830c8f4f976debd707c2a0d36b75ed295eff1f62ed78c2b8e8a9e6a61b46e8ca6f6c4d7b254aa66d075c26ed9ee7310aaae13d82f9ce0e26d103c6de5b2cd67ee66d0361597bdee7a9a3abf4aed43fb913b849ae447de0e28bdd1d8acbeff08e41d11e98430b7d47a56a609356c6a8ad69b42f78c27b57dc6152e907ce846a006c2635d0a1e629f64908863cbcda38af805869d1e23970460790a2bf596e29492bae384cc67a2223d5e3e1b815af04443c9ad3f951d34452f1ab169c89333e80ae7d9405d8faf89f144858b3b2d25e9ea1809921f1f948cc3ed2f25ccf6dabdcb7242daa94a8a334e73639fa335e55080e50ca8f56c98018095b9ea726c8b3bc39adf29e14c0b4af81d70fb4bbbf888920d05a84d7cad1853a6d8f07b9233ba18406b51e8ac2875e11e14006d035c58b99eecd0cb2f6e37165f911fe81246d0fcba45d394b5691bc0b349157a31a6076705b8e978747998676fee8dbf5b951b33cea9550cc0766f515aa05e30c871c4820b6c0beb193bc8948fc748086727811468845b9c464af277145b3a0fea6e75443549287b729a20ddc3ac9235718b5fcef3f04fb1d6ce518a581e8f7cef0715edb5ea18d5c2e91affd224801927ee0f36eb8c748e640ec5e4691c98d9157d99674d1fd12af5fabd9158aa91817fc66075b5437ba5e7a59c22348b1c70f40fd5374abc0115a609e63936936e59eda24ba6e416581060513a1dd25b2dba4ad77e608afd18c1b470a639322c1e36163a66317f5a35fc1855abe6ce08876360a82590ee04e53ee64ecd0843510080df20a519b3a27f599443b5210cdf4ad11fde31c225f8e83a243d7fb2b9cd697ee02786a573ddd96f6ecb29801af8718d407f646cb4d5d886c9918677f6498e7ff3a00708d796410c94f89310ddded41b8ce074a81ab71a1ec04b90c873036440ddf9a579be6dc22c8793350f201b25cb75b7cead4e2af28803f38f7d0e350b088e4eae6a4e451affec0680084915181bae45ac310e86b038cbfc207009bd01ec4c761aafac1b608e30d2c7c7ed1e77fd52410fd5ab73b52a0c5149164a6d79825c34e04d882cd3ca0c43e4a2b07cd049aef947d4c0afa412c1750438009b598ad550f5093cc3d2539315ba93121a02f500918b0b923fbcffde026270ef74e53be04dc6d8721bcf8c5407b0450bd9b0d22a0bb2bf7f2f0545b40f4e38557f75dea24157e86335283f3996abe1b93f8e12b25cf30b28499018051d1fd95157d4bfd0a2186b0e423a0be50b3e64ab890dded129a5a9c14f7d073ec85165eecaf2dbaa020f62d1027863322aeb71cc00af143a60c2f5b830fab70d199efe1424b1dddbf079705182c8f73c1beb6d2e37bd7139aa8310e54e6e2e8b856f5fe517b311223ac51897a20873480769096c140946503c1050f10feb43bbdb0960ab63b6e931d269acd960b660b5d1e3a220298672f26f05e63c04e329e1a9547a5b4ff90a069175bb688083d73422e8224dff06e02d9e718b8f8985b946aa79dea4c02e5a731c56bf5f05017e8bea812f8ca8564197057c0c96cb8540a00a77762a4fafa9b260a0744fa17cb49e06b4840f6fb746c6f814510952abf769497277ef2e7e1673685fca7190dab13846e210270434bb8201829cb8edb2b14cbd3e0c4a31746b6a2bc54b213577d0a93f671e5c0f55071601ce2f2b7d7ad44e26a2a62e077a4cd954a605e38301cb1c88f2b43aead528e4a68f4a3e45bc84d510b879819f86d25d1b6215be3c24da06b8fcd61816ff5dbcfd8613785ff03198d392282e2361b512e9f8106eb22ea588ea14494ee0aa7e85bdf16f2cca9eb60f62a6e22ac3d19cb6630bc31ea5421a73b2e6b7c72ba483d38584e7dd13e360347026a8dbd940cf6aab82227996ceea3096800313f5debb262396172b31b2a23ac171001a5bba04ae5fe66c1e454327240691a2fe35e2072778da37daaa9b140208e1db0d8974b54687383caf7536a19be342244b3f2080d1459f71057b5bb0cfa1a381c10febf81a073ca08ad4df57dcbdd237561e8b667143f2a085c30121ad48746564dd95dfdf5baca3f9ef12f623d91f81fc24f0f17ac3b6ac903ed4fd225767369344b8a3ba834ac5cbe57c6a6164a0122686e5e5f6803eb53b99b49e0d4eda1bbd2897078c6aa2448c8be206e132b90cb25f0baf9e66795e07110c66b48c0f52a763f9a583b3788eae30f1e9fb4e9000b51471518430af46878e484f6c4b3f416f0f87ec8ba231268819b030e76eee55ae58d3b1caa129c2f8b7a3f78c149ed1f050fad9bb8afa2aa9461ead513fd1bf691ce1235fcae3a4c1a09967dd905130e89acdbbec96e8c84d9c02357ec52bcefe4c234288fd13035414717e28fde4c58ca702a3c54846fb00695c570fe99113e30cc7e54cdc7428e43ee1aba7505ab97e54b7313b39fca2346ef41a865a61d2126bbd14442529e9bf020c653102625cc36514241a0817c7fbcc00c11490aa5553362f31ee7bf26efd38d6a390669579bff44326eae4d4d90af487352fa85c31e8c7af5b47e5ce53e10d2daaf3a20d0cd2db2e7b96f4562fa7f270c724a700f55603ee0d8a5474674572453f9493e19f930818629ffa11f387dcd4b4085a3b47a3d5abb9e408e3465b2a9e047c245e8959605300661109a321afcb3e87200d220a4c9abf864d850e7609c11119a481d0b4086a398190c5dac94c9923e60803dd9d809648ec55f3029978c120980f38d4a3e53ee0301a3f88eef31415e5aac81b021fa3b57409246b844b0cfae549dcb72d5b16f28d2344b52ee35d0cec8f3709678b71440bb33db600c2b925ed50e311200f0b6c20c8b6cc3e8f9e22a1ef16e4e3c9b8075500295b684a0c6964a0c37d851e26e8e4f3e1a37debf81186ecfdf7687c38e9f4258eed6028b993e2cf9b158c14387f602c02aa6354b02de422d597c16f5c0157bc29722575808ed7c83c7b2171a7183599e0aa9fdfb9eca7ee83ca977e63e14f7d1417c6761670ffe568d5f3e8028011442be018742dfc07312fd227351cee2315644a80b86fb94b0d1c25b03a6312377a7bf064d036d2e3c320e80b7b1a67507118c5cd050b3383120d7a0c119b491852e36558794e2c2a1019a210fd5ad22b801e0d82637b22dd92fd38c378f9d7abd364e0ed5f9c36ad26ffe616bf38ab030917575327b1c78b7428a0b197283104126fe219f8041814a204a721444b6d3cd769423d358076fc801ed405550a602f2eb114262ae9d0a26ba143879ac361d94bc2001919c3cd59ab525dbd00360495f2bb01cfdd74c7a0634edd4e82a0eb5e81300352dc07d514f1c078066cd639daf605dd08a6951201c1a8129885740fe90d4f21efdba4c3d96205a4b47d555fcbe88348cdc99a6ae015241cf292acb9f54cdc54885ec4a43ace0d3784e4594114410ef946f402cf08bf16e303ddc7c905e335a37a8359389232bae37dae733b37e2284df96949177f87e3ab237ff7164aae8218eca58715c2aa64d67ef8d612ce27f793c2f3023b9cef8326d2bf2169c7cf1d82e1aa636b76cdd679e9431cfb1ee8b1499d3aca3fa87faa3ec9b187245753f1078dd4a82444e261724d949bb34b1e0d928bd1257f2c972d0993d00153ba0846411cf1a910b2a84820dc2d8b998e3ce2f9d9791d0261d4d584e8a4653a78e4a2ae366d03f3f109f6fb86ee2ee12058a4386a227ccae8771d5787a93ea78706de19030251d72241a48d64fa64b2ec6401f0b766c9d7fe4125cd7ab8a5f35a95cfc8bb38793c1a60ac123c7c7682266a66bed81f08e621af9c364ef20fd3e888e7a48998bac4a3a827c4e883eb52a6ae2af047e9f306da6967107512c002a48cab250aeb375487d977128b790185c1b99e7b7ec5ef7de153c2e242838039e6efdc5d962d962055cd187ddf74c36cd22a032029170b161b57488e07028827293e8055c0612f72a3f2c623c6e58ee6068431e4104a6ff336062e3e592f7e226110764712a01d110f53e2de85d856dc5af21e6bbf80f863f5b3c737beeeb80ea8be69cb706063e922ea48e90b8b81a829ef7b767684d32da1a53b3cd918d76fb4eb85eedc53690039810435371a244409f3e47bdcc2252acd67c8ac971bef26038174586e82b4faabf01df433813365924e459e11bc3a35cb088d933109d4d5f1013124581315979ff53a16b4be478090fe10864245b1f6848c84da341350739bb2e79bdfb2dd7a104f0ffd54f21605cb05f28c9f0519f4ac28598839a990f6e3c8e076bbfe976a3053a5575f4764c16e39aaf8428c8aab41f6a004c9a85afd62dc944226af4a9e0b476cfc305420d74e40c81cb2aef03570bceededeacd421bd4a70515459413c3d3369fc5906b880b41e469fda42f0311efb5438424761c4ed2230f6518e6b9df91b31afca05b1ee2c0b7642f5a0d70975b4b962303bf476d9bc75e886267c3ca8c60d20831e85f05f904ca08b93a27a52e09def31f2dcf18f1ac32d2b7640f207d6284073f2e3d4f8d29144bd2292652c3bcc74cc3ca47cc5e4b26535ba0e807fee6e6e844d0ad1d25b010567c2de8401d460e32ae800d568a5ef5c4a04bf3c907d2b578877b11d5f97e157d435f2096e0e5ad69fb4eb272d68559c472540dbbd3ef0f184ce476a182097800709c8ffc6fbb4cb3c7c185507fa18f97da77811e26ed97ff4dcfef995af5eca676ebe4cc7726fad973d468fefa94b4ef459ce3b1433c576e492e00853f8c8f4f0691b2343cdf35540a510334021e7480831b20e1a377c1c2ba7a16bed0fa3ecec51515bbcfa7c1206efab0e5c94a84922eabc892b383b9b52ffb58f2a2025d1eddabd80b086536603e7adfe1dbdcd2ea1dac86d32b18507a573e010b643ee0830879a50836d8f03b8825fcfa0ca4936a30e4dabce21e0402325f0f96bae344f08d8d5cfbb6b29d54d4b67d2b20e745e5a13789c776e205c23b6d2649a43bddf671668a4916e755b9c0d2ec64c42874a9d373d6477e833f19ba701f4570565595eda243da52b1950aa787a97002bc4e0f4990b61838ff01ef86a89406667a5a9bcf9f920543718df9fedf80aae665cc1121220a31ea1cec8e0126abf1134abee13c0b713c859fc1cea1f8723138537a3b740e7a525b278a4b4ff8f7cf55a371e3b0517a58d42b1bc0686ae5ac4643a7d85ec587de7c1c52f1122e57d1aaa71b22194672932a245adf39ab78925a9ca5a2bc274c8d25d06ba5037a29f73cdc5df9fc0530b51018d4fd29e72ee9b5a4e71d587a4be948e19ca1058d3bc1ef771f264b2909ca49045fd3fc0d985330c57c8e898d1192006910536624dd48eebcf295f28289e1e1747fdb2b22ac2e0b797b41698e1256ca7d9eb1a2abc2cab16ea1fc82e00f0e018ac8c8ff2ae4291fa306db6162b067882a8abf929292ef90cf3c1d5df02680b67b5546c7682518b5f82a430723e57110762b3454d885b7d86802850cc532381af2a86f4ef2697a6810c9f13b54a324f32449ed0b22924277bbd9384933df5b9df5051646f678d5546d1cf2f7cdccfb6720a98afe293405d9e77494e4c04645757a009286ea9e1ddf1b49f913d03d89bf0170950b2b137a22f24d59d9c627aad19cf108ffdb749f5cab44a78d71addc455ca7f27a8931d40c268e88e8acd8672693db89e9d9e72a7c220981bf442496d1d3216ff714e68bf79d251e31be1604fe076ef20149e3491c29c183155db4d111902749633fccbde3b451ba950604a4fb38b1924df296e3a7ef597a8806ad79236ff50c73a83e8cfeaae7d7ab74385cc0485df05dc1f17d07af027320df82ff2ef79f53b98f425d4a17a64361b262c2c33ae01321bff8b44a205655a32dca3eace48053e0aa8981e871dcb413747b28cfc740fe16bf65c8ff2ae4484bc2ff3b83ea780328a983be1ee19e83fd9785a641a9719b2205aadab54a44d6da57c4e6cc12a10d0c0438ea0231f7e2d36138aae18ce55e010ed131b912bd62961a81067b12621c7b2762ee3906ab03c8fefbe83da0d6bbb23bad4f67bf7187390937d99bad1ecaa88146ad97308e01ef4708279593342db000ed3ad7cc6bb1080b921645ad9848966423e56c457b08a0f7551ae7a2bf8e058c152e5b2b37dcc6b3b9a63091af4da3c408aee5b19dfdaae3e4920ac3cd253520904059e46fd8cab9ba51b59faea4fe29c6e25165d1a69efd6c4fd41e86070684e8cf9b2bdcda2bcf59de9e7390b9e02c70cdf801f979654bd300c72439f2c0a5c1d1a34b30c4a6691ef209905e9c005db380be2b3cc9764206eef65b0ea46d5011d83f0ecee4e88bd6a750121e63d7230cecb917b4b58693557e079d0a25bf528f30db753bb2b58f2423613e5f9d8c46a5a95e0c836cfadc4b0f16a35ea0490b90a89eeb00c1740a8005e7330155a53037a67f7b0de41377fa6bacbd60ec07c0f955f74a24915159384d4144c460a57a1809fe1661ff54f4675708bc9c04495255d377a6c760b1b1ea176fcaa5574454364885f8320d17a7cff1dec0dca0a37faa2bf642bce9c7d0212a171fcb2db1ea7a023886369f6a25da84639e84c19e7b82b85a01a6dee90ff38c80945a352b0e4ca75119c11418a68eda3f6d0781ebbb6c91a62d1f34139626fa4a0e63124fc546f5d34e62daa191a79304889dd7b3354d145822f606d1031c6fca142d603a5230b99d26bc34afbe98e21c364bcc9c7d39066655af2c44327a81b9ef26cb0a4c659b880a3cbb659e13fa1c8164a3a373681eee040490cb00fd3a1735e56e87bd0d686eac6827d962e558a9c16b28081c12a5352c53d3cdcf5442d4b01faa381a7fd401a7619de65141f0e16750540849a6a13dc3d155a6d2331c94511e0d07ace054d8388f0149c75e628153269a01402c4f34204e4ad337f41c195270bdd086e7774c37f0f2f91cf1400cf0c72de5b37be53134e631c34bad7ae6c377deb58949ede498b6babcaceb751553ad98f4725c8332777a19cbcad47c6c18d2f216259be39871be5a994036f125b2f0eb123fa9ce56c7b665fc028f940eaf5e5a88544f912fb58189fca52ef4b2722a68b0ce88b45fee6441c4a344e98349595166a07cbe29ec8f13c8c831135e704c359a3d307f79ec84061fdee6704f24bbd50cb0aafc1f2f1ea6c7d3edcef10482bbdfaa0ef4eebf659aff6097155559bc7166b39e058687b186bb392484a51ae7dd990d196f96319b7220ca96e28afbcc2925617815fca8aa62970c73eae1ce62d687a2ae303c77b4de4a8ee54695af02f072c5048b49b685acd24835ac02f54017240e6cbb80ec3e1144561ccb095849a9323922a31ab29a41036bf046b98ffd8d6058a040ae49d896cf7436b034de0bdfd013628d026b08ca8fa22ca7041cc8f9e6d931158346db85a39188da08ab3ab50e34cc86eb393d615f0621cc3c45bd01c2d2f620c21c9fa2f2b5ffba63552862ae260cdc2c5e9d420f07ac4efd7b99b53807589db506d3ba770aa46d0430620ac969cbbbf53d1ad52a9f4dbf6c5eabcdcacf659e88298996441f28804110a72792d226930e607a0c161ff6dc13839f18466e51e62faa600fbe5bc192b1a37788f987a640c5816b4c213cdbd8bafadba340a502353cddee611684831f4133f451f764daa58b22272947b80d4d51e1e32b59258dbb13cf95cf890a486d9c8a8eea1b0ffe923b7213ee70d660c4c763bd84df480ef022279d28a4e4f839cb1145fda5b43722138ae98d92fb1b78d4137f99fcca6fd8394743c874b32a5e995752f60bc147e468cd3221c4523fd7e918c68e705ec3764582dddb47b34feca1b767856f51a2c2d0f18a2290a6da796f8ac425cab3d83f9ef78be25207e402a5f608363ae7c3a7fe233d85c88458a16e1553783ff257fa05de590c2407b0aa8e651a5ee8804f67510bc68505253a7a3304a616a52ad5eba641b62a00ccd7cf74ea16805ccf94ea236747bcfae9d00c82215fe90deadfc15f4266d4175ff43e84b25ce834482902d43f5174a79b7325b250cc932051a75d959d6966d186705b240ee05df503e5a1d5549dbd05719236719b24681b95d5a595693fdd6ea3d93cc5b949de511d9621fcb86e67a91db5483edda6d821f1f3c08fc5757a1d75db70c210dea47948ee428857a7db3ae2c3a12e8007f11fc411521dcfc2dd70a5844b8ffe15b4c7a446977eb7c28dea38d37653148c2e4eb9791239bffc51fcc332b6d6c3284795b9f17c24b2672ad4a3c4f806a78379640b9da08bf841e88f3f2888f1d1e8c21fb9df48033bd219c8c9728a2eac73bbc776b2f9c0b4a173f549ecdab40ec1b62f9828273418f3a303ce1d8cf3dd4a9e2659625127c51b8841c526849a5059f2ab69d2e39978b73db2405fc15f7b5cdae128cbc88d8dc641ea737684f8e528709b8a0d29b3c9af8e6aa4bf691e1aec36b6883c245fcb9fc4b1dbef31427ece9fe0544b4b01c8060d16f701079f1a327e7329478dacb6cc79284ad518ec4b2a17a733615cd9247df12895095d1fccdd3c60141173a625265c7e1a49c40a2c3ddb9bdc00831103b4155a52659813c6b9e7f7514efad8c0825ba51809c4792a5a3ef9ae3bd1d735c22467b463666efac594812e132e804898074e676b3b5871ef2656fe79c8a0dd0ae9ba344c791792612ae9f5e7f0769c792cbc15b310ac3457c62c51ac733b84adef0d4e07a7cbcb35ee595d027771679f3ee486768ecc98f59655b9e42add93c5fc878deacdd98618e7eecb93507b761ccaaa4f848de1816b451b2143a3e50bd1ef3600ae231eada2b665b0a50c956329c28bb16a7b9b0cefaa4628c53c0dc00380ac1175271e1beb01af60e42274903dabcab43aec535ce06733899ff211d0637fd0b8ef96cea3c76571b1e4792f5fbf63f4806defc473e906ce325d608c2f0057507d11917d0c65fc6df4738a996b4c33d9d5488ef734c092c3cc06730febd9475af5753b7417643320ebfc2d8d28050db88a5e04a26b0f0908fd9027a87d173711526ab48a9861242d4eabc21d0506afb45d1519ed439366eba1c3028229acf2f341ca5088d276ecebcaafdd10b81dcb10dbdbe7470b9358b26349f74c7e2cec2e98d974161e926748d90edbb16ada569851b6f806121afcee38ea33c123de3c2abe699ffadc410cc3dd796e53b88bda7124fd824a08004b9c6c84a862231bda0e039335e3d6d5736271a9d09b7ede9636ff4a59335e3e425681253a0f5e7577a23bc8e0ff4bf38d3e2456baeff59c6a7c30d3cdf09aaf3bba992d7acb25fab355f3506233dcc10aae997f629fa5dcd58a11deb613cac0d484b8575984b54deb12557dccbfad1ccff4f8b4ae1a2e920ec0c506c17af3728dbb138679ba7305be9231642325ad27a443b572d452f3b4200a4f73b993340695a74db67deeef2ae838844e73ab7bb9857b565cc906ee957025d9f381671e205fa6503540fec54a1a2d6a310e1333e3734a8686d9b0e379cfc1951a98006e0a883b526fcd4c0ced31b33bac77f539e32be22ae1aeff3f26c098f723b47fef4875c8ea9dbdbade79a814131edd78bd763995ccb89b4d4b290c16c48d04120867441179e1887d0d66aa1702840ebd86c7f10880784727c058938ba8fe9630d1bbaea290ad78dc3097d3c618131df3c0b7c5274c58c2f6ca595510bdacd459e5a1a3fb2f81ade7e8649b46942a1fca2f190a162f6f47ac0f4cb5da2bd6039619e2d5d58c02408923357d209706dc901a1dca9f679ab10976f594a57177c8b2460e3bc2730155c9580bf622f5eb48b13dd1aca124e3f6166e2bf701dc43b3710bbfdead6b4596f8edfd07c7fdf0c387b4cfbb7e24983cedae27954f3fa899ece3be8cd38500f4715705f5ee59b2333e82eb59a6efab51ba561b13693d8820cc1241c34fecc78e2d9dcf1fb7c8bc8ab1bc841d061729866812b394b8d820f5556c3c3f415dd5cd4056f971b4fabef98fe36428122447f45eb3b73c4e283a57180f951a4b3570fdea1e067c08a5b00f627c2e202d84d8dd65db5ad8fda5668f444ab3cf3643b33f1195f682b5804177cba78a569e8601b6dbd17b0a306b9416bc52ed11afe882536d4260ce75fc4d88c0eb5f552522b4909ac3015253a016fbdd2b8969b21a50a724610e2d4cfd632aa7c3a1315c69a8c899830653f012c11d990c5ccc890a8153675a7245538d02a01eed0010c9bf86d4dde15eaa34052e813dcf875770b3a9b614dd91b1b3036bfae2a56b79a98d1c0899fa03b460df5ed6573bba9ce4338306d05a2ec3b08e5943da2d72ccda16c4b8c2d8d9c5ec514da28996b8096efa7174f9bc1e8f8713283dc46967f4286feea7e2e967214fd90959a0ff350bbcfe924fad8702857fc1b920119e9524df53b80605ef73bf226408cd2ffaf2ab9f627db9e1bdc7f6da2c264e4d3e2c2ac6c6e3e46d1c47bed00567e494ae4379e44af5ed88f342a3a7109d13872cc556642cd0d2a52fe1406107c0f52886927e2fd60519e7d08f2e17d73b3a98bc7a97bf916f05967ed549bc04470e0105938462c58fbffab42010b8739c6a4809a44b67864c79096411503b045878c5a9c45d08cc001d43ea4426f3931d0a4b14b1a531296091f07e6c20468bf9ab8b1349a0adfbe855cfc3103c73671ebd044746ba3586064b63d0d72b86fe2f96baa0f1181c727ed4512a3f4a6dfb063751d45d700d0a295b0408cb13f26dc6140d0c110b6fb3d29ba46a1220ee8c965405e836dc9644aace019e93f29a3ce32c2889c8b6a7651ad0f605d97e387f657910e5c7523a13d4d04aff718f7d244b8ed30fb54f4729228fb7a5ae0fb73e5e83eb7da1600b84117078671f706cae13d0788cf4fdffab10d31b0acf3f5cf53314590c089273727a3caf9c14e3088beef5d8d53d1e28e1cd22592caa1661c2ca0814a2279a78f395cd49eee71fca41b0933c1308c985389187bb4ae83de22e6802c337a9e8e3f83820e22fc745a409ec9544736b0527c707fd6149f3adcead32df6c4901faa1e997a2cfa41b9a5e29ba0c7443d32f4597492f34fd52a1cfb8473403f906c5191c460f83940a96799be87278e3f437421f0e230b17ca3beb2fb1df706bc1415cbe2dc50a616c9cdf90a86c5aa3df700d8c53f7e87ef2c100ebf733d36d889a7d9a5e48bc7def45a8992326977fb46848c55c904aa06e18d5e927fee90e348951a0a382fe3757cf810abd04eddb4537d2f577fca8ae5afc20e6391a0fbf1a80a7e6da0a3278a8186e85ad6a5ce99e5bd4ba4af3df19cbadb086c1ff9a6afe86e5466825164d2c45dd038f0dcc5424ecd2eb393642e4c87a82546d85d971421b136ba5986826a24515f7d9b5ee66be4c0e09d6c84e76b59e7013a647dcb93586901663b3737db222a9f9e80354c5bc4835e3a093e5fd9cb9d622b7a88fc90d16c6bbadc9ecadbe70b019024615534a7285ce26f98609fd63c6174663da8cae49f80b66839093e174b8062ea5d754070591c10316e083c6d3418dc256e64373460865e98ff13df792ee5b8b9b26127b1c0742163bfc41dba1bb8a2755df45920cec6e442106e312a03cf63aa1bee9ca8a0dfe4c4b24de5de0e08b83aecd34c455e8481c406c9ab9067904e3c29f42dbcae9c56e5c022a8f8d6eeac684c04f467572d735cf954f4af83def5393708e34dd9b4bceeeeaca638f3f79e47574993283cd0d9088358e03288b1de7d4647287d3bc50191587acf4d6e24628621e67057e925229d92a8bc45e1264be906cb9c6cbe6ccbd158d8aa5c45fc903a434f990964f774e948aeddd1dc4c8789ce9c6a5c9d3b7bb0040262ec6576a7323b9188d4320e5b1d16518e638ad1c796ec730050f9106849fa959b679a5e67c85e415fbc09b29dcc12653696237542053f7264d6212ed947f66277546f7aae47f0f47b710fdb905fe71bffd7d9454d6a5537e278c81619bfd5079aae573adc50e86a6f9e1a21ba7bf16feee074ee904b83d5c2466f31c6fb500dc8235e8dac94f2e47c5d650bdfa56ce59de33743b422cef7b302447836a0a76a83fd9b460708b9e2c9d30f7a0b9c6ef0760e1ae8d0597778fd6ad48a74161900f62b75b181404f7ade13d70bc0561ad6787065aa13da3db51d0048fbe4ffa026736c1589b8029b5e54362a2f37ab9acdb5e866be812861a62daa4370741b1091b07b229e9fffa75db9e66fc2b5c234cc97138b00f6fd6f78a9bc6ddfa16f063cd2d1551212a03fa4edc87419c0c8b5abf837fe623b876addb34a3b0d592b9beec9a7e00b7b46f01a004099f99af656f5731a8c16f65dd3d132459fc578b293637ba80525c9c9f54e050038bed4f2927317c25cf874c425e4a8b61ec0ae1b92419e68a21ee6e9b9058ba2ca5081102c8f37b94230ba9fd2ba1a33e308ec8c725049e4e402188ef37e485d099a56f698a082f05119ea5ff662fb123507de514ec87913ce8d970ec9fc2cfbef6be274a8a58ab0e7e2377ae148edfd162448a429b628107c5e31175e5349c84a986133ac1493d13908f3ca07f0a4ce16e6de564c20ca80f18001add244781598966bdcba2ee1c248091ebab2c45fade1dff388f64524dc2174835a266beeaa7f793b1e10304b5504ba237363c13335078678e2f58e8ced1a98be091699a4b14b6c56d2a8812a86245ce76460a3e5afa8c82dd0dc2490cc5345cf236a47234643664d8d9848aa05f26d8eb192cc5d0a1d8d1cc2a71ba92001c1f843fdf1d01b51a3184c7ff3821f288e0131c8589483cdd9bbd46852091e0a8150a5fbf701fc61acd42df6af14b992aefb051a42c69738c655c58b57a85c20ad07cab86f4a873401926cb404e3387a2e3b9815b0ee54ec0bd93a5d42dc81406d5ccdb01404003a56c9cc1e69d93546973a501896ae87f99d43c4d5d6f7895503875aedd4ea9d03d4a63c3a315f0407b82d56446ebc7c997cfdfa2a49c965492015221279e0ae201e1926b9c9b316ed04e69a32b0cddd00225d18f2445303abb9d02a022f049d9a9e025ef17c3aa144bfb0db06b912fe59c0a61eab86062fdcb5fdb1a43065c5c6e8a683adc633b0a7d475c8582b66c36a1362b28909f48d25df918a2e891901be68a37ccbc6b6e16db6839019656306b76b1c975d8b666906f7c5b06a5e70576a072b2b2bb3cb103878f6600f866a24990a77814165bfc58cc674c333a0980311393068c092dd274902b8cf5cc56837a61fa429fc5468afbf7dd22959299171c15c60c7e5624867ecfd069104479f909da66d3723f3f1522da396ec0446a455ef1d32015c83c4736e64f0ac74fc34235dca8d3a507b481ea46c48f15feb61a9567a6418ad65dee585d74247dd9f0f511cb07aebdf7042b3a3b8a66fb7eca17bc826dc4e3dca3201f044c7dc0767bcf2b158c859546ef6eb79961fcbfb8217123a982dcd634eb084af047d83385d9d036f707dca3d15fb449dc0022ab40aba114126699d02548b5e19c76902304462a6c675d30907aaf1dc5338488490a523ce9810be3e262f9cd6ef86b6c0b52c86506dd5da822822401bc1265f48c988c23e08a20c6567725c38f62ddabf91243bf0b92894010d2eb5da3bb15b4109ac12402952909684f3b4eda7f54903857f3aa7444841f495ed0662062efbeceeea5127547aabf486c59b185aa971eb4073e2c314eb128bdd744ee8be2eddb4a8f47c184e4eb365efdb16f75a9a045d192fb06906f6e3e1b01d37c0bb721bac9fe09114121d2098c093b210d452845bef466e76bac792bcedaad786bceda58f7d69c55b7f6d65c5620485a2641c20f1e927e21bb8f40357c38b3225bc3bc4f1c2789822a18d8a036d57be47d9d1563c55b75d66ec55b7756c68ab7e2acddbab7eaac1a6b6fcd59712b4fadaad7f04a1341700cf32d2ec154e831dc34d83c5e339addaf9c7a3ff3393adb27b23414037a8fd09d22a5b2e8f732ff281a345838cde605cd508f4752b5829ebf8d9f5abcd858239d6501d629668226addf808fd63245470a0ed01243f4ea885af9ecc0c541a7ecba8a0e27480ba318f8e30860c93bc02e6d05032d871c0cf437e41b56f5d5d119c0bd823e653722138413e044db47c92aca92a56fd4b59fb74a2d86e542bbf90b2d1fd8c213289e0ed5abe0a086fcf44534b41859ef26a0d5b434763d17838e7e761e7c1cc888d4cb8b99b8bc3c0b1443df4a5ddbd99f52e36d23c274d55b8a1b705cfcc7c0303d6e157f33245f2bf17a54d89596eaa1c7af16aa624c9c97f4daf6ac1026721e636e8f691ba2fdc73944835fa61c5ddeffe6f6f887eae49edb8c14b0603060c503b0ad7e6ed2ab673d9ee5dbce47891b81fe1064eec1fb16784ee6b81cdb707241351673e96e511623698ecfe5689fadcb53827db5dd38e97fbbec3d6a4df05390f18174b53cd275afe5baaf75edebe706ae008e4a1d0d846f720fd8bd49329e7043a3266fd19618cd69ca809d8265dc1b84200358e889885c3c1b88fc636c48cfeaec9b7f92743a5523d48cd1a249a3267349193bd9090b86b6a4d459e8a873bb2806cd635bec63682d17562e35f89f0e73ddd9dff2453c684babb68103fb043e34bedf6c31f1e15c8b3fe6fd5b40965e93d40bcc3623c3ff00f62ad44c49af99645f1a41c438055e75c44d0e5720da554d07d997c169be8d986dd3958f17845141f42f062f553fbebe51e6357452c31c0a13f51fda0a4f900a51f500404b808128c97126c36497327e88d096910dca4dfb432a8d988663b3b6ac6d7befbdf7de52a69464420e860e3c0e9e8c4f823a86e8dccd8e4374c0d7eae8bb8239f357aa907e828b3154a59f2a0839043276b7f71ea7e712e1d82f21a591266d583c598fd2affc8a15c2a2524d3d547ee587a84615f4582a0f55966fb13c644dd973ec57aaa947cbaf7c8b65983565cf627ba5e327536623d0aa955fb15c14f3a610e1d82f099bab706c1f9fce91108e1226c570bf3aca18d5246c1ca2e323db1f3276bd5f5a489a7e0678aa87ba9bc062c39c70fb898463bfb8f0c1adf306e1d84284dc4f1e0811727674e9ceb2ee4cdbb452e632e2c0f13574a4c1527a072399d31972f8b0551492e647d27ca6f21e19b8c0d68af988b5a8e3b8a99919e3ac5abd828dc8303a82f4c0daaa8e420fb18355aa9c670f13437c93d90bf0fba9c6943d7401bee1184e0e964c2e6b2569829034fd3958e7f24d1b216ff4ab0089f9f54ada38912282b0f125bc10c74d0d4e8fbe91a80c48716be17081455bab687ba56cb12df6438ce43d32708116fb43eed1282eea0c5cc04fd9bb15ba21aaa6c57efe800f29f28d7e1cf7c1d34460b1bf9f006df7f8a9dd8e5b8d3b364fcde55979e51a2868256ddaf3e810e1b6e33df2d42f813a057ecfc0e51245f884dc78701da853db4b9efa5db625a1d0f672262890a92de6a7fe4d88d0053286c4ed4c65e49e7642b8ef7ea4947bcabd0ffa425a6c9a793f66ff438b2b19c3695e352afb7ab2ccc57be4e9fbecbdaff2ea8716c11c645cfa427e685446eb0fbca29c4b8b1df6144c29af7e08856caf1f8470572a09a3e86e572a19228b3b7a0f8c0e11663ff6aa8bee95a08ed9a2f6cda4c5161af2e87b8fa4e92e64ca73208170e0389d6a7d794949e1865c108e32767f701993316f4a4498c58056de4b6eb3e41b6cb7d816db62316e5ddeb6307471f917451c389c5bde04c8435b6bac196d68b55a357cd3f2949440db92adc56444dda9fb885bc57ee4560e64ea073fc9ec03747ac05a14ead3a9bbd349dd63f20ab018b7f200587f70d945294ec475fa49c3e84f14b305e136f4f2134f98e178a245722f42a745223c3c3c8d1a439e468d3888744af6d04ea37c686868c331aaa29ff8412015a5940afdb454fa47da74ff481bfe941be953ca9be85314f2c673e04b14a1768b277416509d9057a111c2718bb15711fa532242beb28db4b8c57cbc6705e1b8b55eb785b6217ac7fe69428708e7d6da7e36d7160463264ca93701ba91167bc8bb875afe1ab7366e71dca2dcc2b1c9988c4d3be2a036e6ce15f1253cb9fd6ec49ba0d48efc5c8fd7391e3b3349c2044be1f67bed3f5270ded3233c6ec8bdebc6e085303625844d50e96e6e28881b0a1a92365d7043cc40b0fcca03e1f22aef6a957779205654dee5472ed62bdfc3e555569e0716bb6291f4b09dca8a45f2832af184102e834f43de7042f2463fdd522b3f862c2ed3457f142f05ff8778990621f83ae41df2d833e656d64a02ca2cae07b19c465a6c46f9d1d3239a3aca6490bf734d4aa4519e16e617a5ef9f569860481437c7f0e304c36d0253425113ba586ffff263d7929e4ae7f220bed1c1fcd45dc1833a1f494383ee0a3d1d0f6ae0035602cb5c62f67052e086ba295cec4bb80917718c328c5a7f79900765d32937c449a1876fa89d49664ff7923453489a2ee826e9a8d8028a9f2370421c74044e71165ef5214993842cbc0be94af0282441a666cff4d1e2b613b76938c2e51f4e425f1a84a434a0466c94059dcb658cb00bee02634b829c5ac82ee8fca9a30b1434793a1f4fadbc4ac7d36257a445ae0b79eaa70247e4448d8ea7e3d159ad6ac8826612ce825393092637e6106612ce82835a2f45ed74b83124cdea762c9063e0ce0540185deee773df36ba40412eca138ebcbdbf0b73b14601a15da744d2704f3ad50135914e75d4762e16971f1de69a13ccc980801f64bb2cac9557791e5c9e65e57960799715cb3dfc2b55aa5c2cddbefb1f43a4b8d90f8dbe67804fbea7525bd55bf46b529a4dd7b4e2c537999d49f8c6ec9956706a3291c4837c32c129cf82993b18674fa91802e826e04a2a8650c1f5648d50bc06e07a8c14f19829f8cd3a5fae29b208fa8171313ef56f1b4f9f5a6b9ee6f11984438e1a3bd70c9aaf468ddcd05df2d38ab09f2611fa8f9d4bdad040da501f692385b4c978206f3a18dfa8017746905d135dda6c743c39b29bd9d984ce0e96fdc80d0911238344756790282ee613f31b70efa14814f691f65c15b828705390a839c40df536a9c38c784f8b4528a5746a93ba80a44d569435d129d9237713264c8456c230a5e3091dc6b2b2d222c329e56299e963f660be0caccc52b9c80af24678190b92a69f61dce4e12cc03298c35e868ccac3c3d3c160b0d88a49132727ea4edd3b30c772437c476e881b6a14109e534c25928649a726509ffabf3bc3553ce17a5304585ee5796079152b443a0f2ebf6285b878a10a2c76542ab687ee085f84a1922a242a9d8f8aa5eba9a9c18143141df54302753c3208fd75e420e3ba3da2b26d2e2edf4e98d9294592169108935c2bc2b9ea5c784296ceb6892f08fd8e1e5481eb3f2369f88778f9679316dbc4414e046bb1cb02ac0a58807da1c780010000000840e7ea5c2f9753e7625c8cd311623169c24d2794d6e0ca04d0c118262469f872cb064af04c313a1f4c306868c01cfa3402f8983a33181b33d174d262518b3086318c9d701386d122e84ea3464ee8f2704259c7fca5c312e2c9e14bf0a0dad16000a00e1e4943efd8f1d8f0d9d0d1608990a90ab698b49155dcfef9054f2a38c53079ea771943e805f7303625844db82e130af43926dc931517a34784316e28ab1c8c1b9a40f3e5a9e90a031537c8816a7418ec67a48d3f853d285eae13643a8166d074b5c8b06b44384e97c3e4fd81111531cd68ac51a8d78b4abe3102e0f2bba783d23967033a259deb0a303ef5afbccab750c39ac89fbfab5d11e68ea7c5aee769d7d3286ab72d0c5ff294753d2df2b4f857deb1e3e9e1f208cca160c7d329fecbb623eafa0861d7c3032bd2a8229d7a557fa724d4ae546205102ebdb20a25766e6b219b0a5c0446bffaf5126a91612a3066ef86cf00060073b837c001be1a1048ca07d96ef8d335859c9dab06089567792056dee55d07e8e1f22b0f04cbab3c102ebff263073b009863f2efa1f22cdf63c5e436022acff23ca83ccb8b1582a407cbb788ef624dfc52d56285b87441075970a262b14f95784208e21d4930447befe60561dfb1a3d4a9ebf0debd77d30ef0fd7580efeeeedf737db0fa17a5eff72c904a76ec316e4b2c4814477a921d9d48f7d5aec727ec94b881bcd13c5bed78282b44b1d3a783f5f04feae38e83c1bce3e8bb53ffc97e1ae59ee9a0eed45dc727f97e0bf83e30071917fcf92eb08ce9d4d1754fedb7a8fdf6f4756c4fed8ca4d17ec89520a5af435e6a1df643a4cf65157c067f538139a03da2f25c3db2f22b76ba9c67ba78a6023eaece3b578df2e7e97a3a9f8e87157e965d967f5aa43108472ed66dd4bad8eef8e80bc2ed76aed8e5d6125c4ae4151245dfd56d315d9cd11817eb74b8d8744d57ac9f70f6946946999dd6d0005e0207c99407c1201ca76b0e216fb8c52d1b77f455a388481b4d8c4ecd9e2ec89b99846ff47fc1a9cee5a7a642cc173a2bf8d4ef3920a33e65ca833c8b69998907798a1bf22c38c549a1bd334a334ac5187a31e11b4e886f0c798a8bf9490a9ce238f42428e430e784e68b13e2cc1074b998a7e6dcc209b79fbe20d46049f8867f3a2b3a578b6fa615e48d1e4fcd39935c1b779c2e578f9d4d244dbba698af1fbe995ac81b57e04945e9d222c2f96307e3e996901d4f67834e0989e2ba56e98e1d4f773c1bc849e70ee629a7823cf583b175211c03e6b0e9baab169fc4244d77774f972b9baeb944054865ba1ce613c6308631eca4e329d9cdb06658338c612b523312247872664471deb814e9477b2590104160a24ac186051fa84895096e351f96d72518dda7547e049710b501fab5214f9566e6d3a869b526b22634e738cda78870beb771d074cf49f54809a73fe731f5203da9c7d4a3f42ccf6285887eead17db64872bb97143d09e1fcf16b702c09475d970939e12bdfdfc1545a87e83298230412e8fa40798e8a2b105d49c5157c6e5c49c5157eee8bd26f9d26fdb86d2f6510ca522b496735739055a04f14499bcdc5ab4b7bb9bfc6d033bbd99734601d655cb763d705fadfaa75e6dcb62efcd1e374109381631ccb7849d6da8fa38d7320380f9c47db388df39fb39d30f328dea2d6d4541e08951f351f176f71f3815829fda8f9703cac3ce979004d6c23b0f2a49fb687ca97a4b81308dcbe2bdab4227eee6745e121fd479952bb2644ddab1b4a9137ac7c4ba10f652b5cef3b7a8b27cf2cc835aecb8236d139676edbb85783dc3bd73d2d32639ef93cd9966c960a2d044f910e4ecf22c231e608e9b98e5b1876500f1f7051c22861bcb9cb28420ffc91c742b36c2544f9c247f9be2f9c9a4f17c51d82cb59ee8151802e6d08ddcb7140d4bd56aa5475dc844f6e7ac7c5264c4b42941c9b8e046b3a45f00d7e727b076e2b95b68d82deac7d49ce4d7f424a8f62f32784f029326e5b9ce1a5842a05db0eba5021f13cc8a5e8034759967d9ae779deeeee9d79deb3e7bda7c30373285defe79671d47bae7aa3793d0e12fda43da98e2af8023f677a476f959ef43d4a567b9295de43fbe6c97a321ef6e91ce484a727c8e37ae536e092cd7cb85ed98067e3d17c5a6cae8214fba1d09ae01b44b41f90fe096f95de81c0a792751e3fb50b0a2742a98799709fa88244513248b169acc5d67428199ab8ce03295e6103a1972a0533c9132a24935f414141de07969ee5c72c88e42c3ff9787216117a9f97b18af459dd6e773f3ea9b2d4d04ff44b95c539c759530edccfd7c1d9ad7bae763f2bbfc0578b9fd7f545bdbc0f0a49f0a8523091704285c4d963ccacf9644de8e8b8f65c47577b499afe321f12a98b356a6c577737e94b25307b6541419ea2b1cd0b89be10852a05ee85986bdfdb7bebf050ad09ad45ade693fdf6a3e6e33ece721ead664d6c2c2324cd11d5775acc9ce53c7deaf71e9f393d94cb2f339bb51896f96ceedd2b26699eb4b8f28a2c71770f03d96f5e654933bfab5d336a472d1be94f1bbaf01dc3a9b252596a4bf86f739b1685cc011f34618511566350c288129a70f285156a50a42383b7618ba18b5569b17f0c6f86c3534386d0023390e189222044d102181447e0220b434c1185113c07f0c3108eef3a28b14227064aae58824500269860a207448841185640f9fa532b8f8032004028b23222042d88c10b618431c50d969881929d2880397f7178aa035b4082158e70814815422a89852d60b1133b02d00e78a0f25aa0c5184c88428c2655a84a5a5081051443d08145a1eaf79ec00511fa9520f81d44d8ef600ef80ee6706f3342c08e11b703afacc2065eb8267eedc1ee1ae1b769f4a347589856be36d43083394758de9b20f8f36ba80187900bbeeff03b06b99e047718628356105f48c20a245c4c4125fb043ead601de9733fc11cf4bdc771fae3bb47745ec5626bfae4ffd5230ce670efdde03f6a97fe98d9843fa50de9a95ffaf4e9b3b45179fa2d6d4a4fedf8e3fbea0d2dfa73d5862d84df8f36dc9a161dac9b142905df7fa5aa9448754a1afa2935acf451eaa53faa97da1a726cb7c11ddb052d8e46713778daf7d91f5f0e928b1e70d1834be7f59ebe67bf107c17478bdfe5c620974a91db7c1072a98fede9f6dc3bb7fd7bb6fd665568181e61798f45fb1a1a356a4f5d7b6a6b68d13f85156a2f2fb3c7acbdcd2c0e9716f9b20bc2b18616679df9cd8b902b35d7044fce6cdced23578bf27e11e268940d8d9a5f0db70d358dda64dbed8a307eaa70062c3081062a7e174fd13071850a66109bc118c450318f0cbc30d2852b0831a13201169238e2658528584f54fcae243c203aa40e4a6b6891af3d923d4edb6d0b4317174ed2f0cbeadd52362753fc1c97227f7cb9e336561c304fce8ca32f0adf100f3c98070fdf10df50fbb9187cf1c029d009f31bfa5c7cf32de11b313f398153a019be27f787166effb764946530038b715b6ee1ca33783fa44dbb463bdcc88bd09415b9247f20fc1387110e3aaf1aa1a03e243ed6f66dc163d2cc8e8ad022af5111be19b5e8a8086b256982d802df6846a08405c081434d8a6793d6e080836fa87500dfe8e7e138708a872997f0c0e300bef9be2396c8e27e2c4933e774973ed7658670fc866e53d676cb00b6865c497c6e0a7481434814286db24ff205297277d4f2d1c807526cc58c468c04b3b4d5289bda4a5bc1b4a316dfd056c0a9108c5a7c53b33d878ef224a44fc2f91fcb8bf047f86d95eff422ec583297b4793288610b229698026b09aa26e8e08b241cd1c50f112254438a50c5113d60607da14415545d812e9c00c56a0c31a860a2b2f1c205002403180bc19321bc8163d4bafd73ce8cd28c6619a519a5a52284fe5e098cadb4d517fb883e30be31bea2fb91e1e58e1fd11c034bd2489a20248d6684bca17335156848dcfed1861bd421de0acc31c2d13ff89ab1b02f6b3ada4a0c21378f36c2e5974c046b42c81418eb534b1bd0bb231b4131b314217b6108b7dbae3bc1206d522e122b01899292871349a381b1463d2983b4d46e4efc73e24e29cd5c2c67b158f6e325cc32c408c76fc9763f960c8dc847f439617dc1e52970a75f9e02570ef3d427469f8a1af569418afd601117a8f311c15ec6bf28d62292262b22021f2936bb41b603a2ac0929868ce70be1a8adc058a7c2d5185e17232e59fdd1f214780679f28144816490a24fe390e2a9140b0279ea6cd402c3ed7f724744dcfe96e98570cc78584417c90e52157a0a6554a453d288b4e1ef470a4933e291365d08c1e71fb7199acfccd76ab9e3c79a5e84d91d3f56d3e9537bbf9a1d4d70b99f45a1f6e3377424e5bb9467700777c19667271742b0e5a94c0979027da44df7200f240ea46f231a9121e4a9ff05da2a3bf25dce6aab2d84da73effdd442e8d96fa8456dc853df12ce7e4339f4fd967c2f69f339f9b490a84f0b44df122227ae46694055b8aea549be1f69f33991345148d4a705ce26b9fd281917f39be8cfa751fc39e9537fca47040b757eae2bac2823268d1a851a453b808346286d3422640ae55b742d06b79f4e9b69216fa0d8ccd535b82e49938570d456da1297a7466ce9c6695e37ff592ebea56a6abe243e9626c5d57a349e1abee1c137fabf243815829a1430078fa4e1c137190fe48dac063c1f11e94314560a2bcc98c5bc7dc6d9967d441fd1a72d71010535ca5d5ed456d967c79a3b662e1ca28bcb95e1a073d2393357006ad05601d056d38bf0bba3b67a692b6933ba338c10e5991a20499ffab5d5a8f5b09126b424b78bb491cb43c11c303e56a388982e3f8947dacca7a92cabc9b20364994d96dd64d90d5986802cc3c182e090a4116af1c8e8e7a822c941bb591155ca93ddb1ddec1b318b35f049c6edf00e338b9fd2e7a13f7dcce769d4b4bd6d61b892a7e66991d5e20e3fef348a7f8e98c53cf6e31981b18fd5220fab45774138d6f41142256178a59230a4b8de9555280105087221512c83d78ea46156e69a7466ae8c283b40363f10026a79f08d10b83b0fbe015ff295056d216dda0b2f42530eedf27317bc63e6923623b6da8a281c3f96b6e24f06da4a00df68ba4f77143067c53e9dd98788e86634e290e99c948735aaad4209e0f66b2bd6887c448da2bfd2c142e8bac2a4933396a251dddd04f89a8a90ab0f42562b1fdc0c2b1890eb43e263b9bf80cc0280f459d0ddb9ace09eb59af89c1348daf4e59e2ad08cc748a328f8ea130f240a2c8314fb339f26c02792a61f8c7d110299e01760eca6be9d8f458510c8bc314f65401d038a4238668ee227f1a7800e1872d9fe58c2ce0dd2e0ab51429dca60a1bbd38c7a131f18410d0878bdc017df801fd1b7057e65283e85a4c9b49037b6c029c91f91a7322a32d714421c32fa01bea1168c4d30268970c0e351f89cd39d524ac339e7fc2dcbb62c33a2b3aa5f4cd28031bef9c69037be30c031dc7e948f48d280218570cc5c44577e2c6739cb85e5595624dbb6cce5ca5ce3c7ba3edd84d66a946b2b6da5ad3c047c3e3f7477b088afc83bc03775c2e932e2e2eecde73272fbbd08bb3b4a2737e5b3226d249c4b849a1169f3236dec88c5eab93428a25320ac41d80ee8ca9e90a20742b83a4072b31af0a97fd47670fb6f00331e4903b66e77946e08f8a64e880030875f06ca8a342a63128e992b0ae1f8b5eeb7f3f1348a7ef6af46f1f76a5188a638266666a6861a6cb0e1868ff559eea969b1b72184d46641130a3545fad43537e0481beffbbd9191468d3c1a2519fd683f7fc8a10bbea68d8a7411f2057f1c15e919196931013857a58005e4e4e0ec47ad4671738bb05f822d3049a386c271c42a72fb3d1c128073550a5880a67d39a003865ced35fa2091a469c2ead18eb4f976463290a84f06df88753fd67cc2f78470cc5cacbba5b22236e371420864661fcb53bcd3a7223cb2d9472c4f8d6c8330b089b4c980248d15242aab428afd1b08bb4d6de6e2221c9905fa348a8d342ab31950e69a42e1c82c1ebed9f8bb414340e61f0e747e0998f4c3f1eba9a87dae7cf941a04e115981a842429f0892ed3510a85348b6ef075d8d929914389d655913b0f24d40021200266196b4d9e169541169a3b111dfcf48f00de40de516087a1f08da0f04ed38e47a366b92058139648b573638b708658bae4c4a1a20204074703685cd6820698e8c3e73796a645dcc72654c8423b3f84626f1bcffbc470173bccc061d0de48d94373a0b843323d246e3321efa23cacd76206f68663f22275f9118408284281f18e40d6da5ad98b59556048f34222babadf8230259e04ea3e67f441fd147f4c9cfebc091eb6b7e42079e9c19b9e3388e7bf7902debf0bb651e3a357656a3343b7aa869c37b5ba7c80849c3d347b0d8df934411211b91a3691a9d539b73f21326531530cce5a8ec6143a04cc10fae8332dda7bbabc6fbbc22b3874911a00e26ac69397e82b4f991a2519313fdd4efa7f02fcfa94d8d6ab387468d2e1de813fb67ef12bb26a8c5173da64567ed87148c806ff4b3cb53c029b6a2c88a11f00d83216f301486a41788bc2149d345102177471e1a7266e540b9cc625204931d66db813a98ec30d9e971f6d7c184c7ab0e263d74157a11b73a98f4701ec86708e9cfb4d8bfd362119ef66c991451a479ee4ea798d5a7661599d3bd87a7451d4c8a68d4101d4c8a60a2c38435d9ea60520465dd998370c4c162b18aecb438c40db178e8ef778ae3afec96b5a64153d14aa592562a955428a5d413527a3ab31a0219f3e80a0b474ba552cbb370b4542aad6859a665d9e6a91eb808b6525bd55259c555794b556753a9acacd8d1f7b910b2f43d78dfabd4af15ba79bd8fa3f48d72d9346dd3b405882f69bc526d95d723a5575159b1fe435428a31b3e4ecf2ccbc1df7dd64de7324db31bdff08da5c0370ce01b2c852015a863c42c49d3357418c0376c84641520a184eca35946b3ccbfc11d5ad5831052a354a334cbb26c3a6754a359c64300155f51f9d1e5aaa8a8b8644b327b3df0d9aa5493f62c3f4455aa26fa7c536ea35c940bfac8533fc8715cd64385d61ea5d20a8bcfd78307a2340becd7f763be37faa63729f56fdbbce999bc9246a946e9763dcc7eaa20ccdef34f86194948dad06f2e64aa7dda8bdb3f040e429e9a350416dc8e40ab7af0538f6ea9b66a0a11be8f8f8fb6699aa6514ab3eff7cc8552aa6d1a951ecb47bd96d1e3b47377452391c09cd17b5c5b65c4aa96daf2a54a64e559c0aca50a296dcf0014c9628812b2248d11928605d200fd2b52162085f49e07f331083ed76c6bd54a0b4bd6c2d2d2f22e2d2dcf524d2e2c2df4338ecbb8a755e0c0c8a5ef85dfbc2098c3e3fbcceebd9792f6dbd831e817a8ba3e02d43e8da39399523a25dfd0972b2a9f955e55c2a12abd4b8bd90ec7b888011570a952d537cb6896d12c5bd262a9ea6caa1ffcb49234ad02169b7556e05c390849d32bcff22c2b3f44e5ada89858ecf37fe055aaa907cbab3c8b154dfc2b966d045a55fa92ed41f6cb7ffcecdb5acc5e823d601fbee9d56d26a202d6441802c2ed56fb486d6bf185ae04c19c8cc11cee816adb87d9f730b263683b2492f520e107adb59b4b9ea4aa27489ee4c5216fb2e70f65aa5f7e6a02dcac667ca3ffe5290dc8533f185b175e63f4d03edb16862e7674f1d19e528d360fdf64fcdfab22e71bfc1e0d9f5779653ecfb8ab52a58a06d8568116fb657b323b443b5bb461ffe5d98e33ac6cf1f4b3c5937db1234bf0012d2ff32d754cc195b932ef6d0c3e60a43f7bb8a4dfc007f89561f0016310bf2d7604e2cafccb6fe003faca8ce092ecf8f241fccabc0473ccfce856cab0e3902b6365fc0bb8a3af8ce72ac38eec0ff3d38ede4b9dcfe1cbcf3abfab41f8729079f99d109a72e0dbf27c5bdeadf86c4d3b66de7fe6dd8edd85f101f3f63d0677743accbc8579fb1298797be475edc33ca98e2a97f4b48e3f2e753bdf54658bd36b3e26c68edb9d763c3d7d93c9ca3ce9719c546b3cad297faae30f95dbf2325faa25e0dbf20deee8dbf20ce630f3f625b8a3e5ad1d61be85c4974475b880a37c09a75b6c1d61bee5bd963af68df124a823c69e7e56faa54afa96961da52751b963bec754795b6a5fafa3cc7b7faa3e60be9abe05dc215b14bff4b245f119dc21bef812d4a1afc9fa80f919b18e32f687ca85b1f66b3c8e7735b4a3786b3c4a1d6b6e8d4fa9e38f5be33f30e7c5ca9057f7ad0c7fa8dc12f09d799cdeb172671eac9dd056ebc8b7bed76ea8a66abc57a3762f2ec2d1347578b2765c0c7fb2ea8472ba275b84a3bffad6c7f15beb90fbaac1b7468d1a35ac0c7d5e56b905a0c1122b98382245b06ebf89bb2598d7876cd1c8ccbc9b50386e30a16d8b70dc60f2a278a52db63d6994b76a94e9fb39221c0f5016c4b852e84aa02cf45c8fc11cd173ff4922e5409f5f07fd71030d2e4fab8bc5118efef2178ad7a892d5212f0a8a67b22694972b35c8a8fba10c43701d610a5880e1040c2c810923c48a3801c6852684f235823bb508f9e55c02018f0316aa9fab77ab83d09463be5af4180ec21b30b8c3cff0e4f26804777e1bf197f36fdbab97084762bc5ca8bb474015c25cb84117825429f09220410515928ea8e8b68c968c8213551ce10635104308469cc00760c07ad002229e329421d68d216f687c7f4706695343dabcb7e3f25eb07943dc1aaecf481490520d5f0001bcff2651f6fd3f89aa3770bcbf4bcc4b940d34efef0ef3d457854e511053145145154a8420d209fa7142c409cea4c576980b6db027af55ecc9e7433f6eb8b2c521772bf29407b618030b2d4c01831ea8c41f4421840d5ea0e4055750f56fb08d68ea346ae5fb86f16342e8f234fce82f6933e3fb0a225e86dbfee360f096166e68fce860d4f8d1b370ff4777727b23da6040484fbf5481943e00ef71dd5e087c940632ad40e893be5401602a994a5b1005d94835487849efb5977e7c771b424448892476900511822084d4c2144bac4882958591262b50fb52c96eb0ad4913c2718395be7f2b95be348216fb875c876d2d37a4c17aab7a2d4178b996920a8ad5eda8a05c3a9eace3e9581dabdb89c562b1582c539121e3fb3b56c7333b3555ec39ee2ee35dc64b304786ca83600ecae3d0008fd3f26b30c7644721d7f4fed3a8696dfc58330ee074fdebf57f39bdff1776aac626e6fde59436f4fda9b41149ef76fc71c39d3ff3a53ace5bf29f99ea2d4a066f79127f79aa7bc958183b862d2d6fc3c5ba5161fb826ff49fead66423da9cf449f2b7d851c61d3b182b639d061b633731240dec05297d5b3f59842eb654c3e73a6e60f099eff79fd64ff82330c700dfa17ca46e47d2ccccd47929e8802177da1f37e490a203a483eb28192acc734e1851516c7606a8dd4e8b3c2d86dc8230e5c78e959aaa9f165b2dc6bc85854b9e241658bcb0185aa9a61cac0f7ffb39541ff3eb93ba24351019600bd9bdd942dac890f42330a74b3241cace3f99525aea7e48b66bb5dc932019bde5ad25434b60a525444b8a38f4aacd78cf3f9e2b55b2581f74f0e7e097532feb42355cff94cf59129327b9da7442963cc99b838528b51a986b79aa63712dae6375ac961955d6a8f27677ec8ec8dbc36a017bfcab6b852db6358346ad515dd2f87f9d92c6a93cf9c760e19b6181b94ae1b40bfdb4ba5697a493a251408d1a39a2ced5285650a346ce09cb5348468e8868a533593c1e00aabc5188d92b81a0b0a464437d29ce2f4015a5381f00357c006ab033529c4f801a23c5f903a82e529c8fa3aa4871fe8d1a4a717ead9f14e7dbba4971be00ea94e27c9a09e6102fd750e50d4095d7c11c3300c8f1312e2ae1c7dfadf3feba2958d0d6108ab8e08223c040346407442431c30db6d0738620b6261bd106db96846317eb62b47b42afc7a00f24e06b7a1e50984d55872c51cfc2954510298b5716439e8dd7f0dbdc25369d8983973fbd728a2740716baa5479b246488282145048e23027b79ff4a4ef482f2fe94952e52492bda1c5fe9c1a76410db5f648cd7717abb1b02e86dc09e7f6d1d401ea6208d75fd2460b1dd47f7498935712422798f4b30221592039f09ddf23ccc17796de2b9724d82324c9762190c7aee5ee3ded436ac993bc3464617aafdc838370dc60b40653180922d5c5ba09779cb48b957e7489f931947998a730b68b91ecb8c9d871a3c1c6d8313459f7e961187a51a3c2d71802816104088c222eaff238eddd5039062bb062a5f2b62bc2712bbafd3c3b4b08c78e25e70ee8802139fa6e4f244d9ba65bd38eefbafdf1015911050d6ef0842caa2084902082b0859f2484884dc11ea9f90de6a91adbc5ba18ac8b6db06e65e519cc61f91baadc220a245c2a3062574e71251018492e12d7c571a50b09eb7a9ecc7b2d3df531a76cb1e583b8f4f8339998f4fc3a48cf3fe47a1d855c7fa681d621d76b90be34586e01df30fdaca364724d8fe331557c533d3da9ca165b2a4c1d879c1ea74ba5c7712e9564aabc2599f7f7fa2b5599aa5359477d1bffdb15e18cf7e4a68450021981e88e1dab63356ab6a4cd0e47246da6f576244d7fbb9d43489aafa95d4f9ffabd8ed5a898efef761a25f3347c7f57a4513d9d111289345fa6366af23beb63aa64d2ede8c04faad48eeccf156871b2ed8cb4d8d4763d2dda949011ace055dc022e80bf10ebb4434158fad15bad4679921f96c7aaa92b7815123a793e4e9378b2cb1683f8a5cf2de01bd356a045af3952f3385e53a5bcf69dc4cc24d27ba5d62bc27a3a2d823a6c978b98ef75822f2f307faa9e583dfa30d534432c3d9146f9702122bd6a948f2335efad5aacb15ccb4f357e9471675c6666669466de931efd64d4b1e6caf8ed8a5046cdfd9f600e1b5f5fe2b48d3ad65c1bbfc16c7c3fd7f254cddb78921db76be36bd8781a2f3d65a3a6ca3ed978af2a92c6868d673b6e367e722d1b75e56bd451068d0a1bdd0ab68e61ada3ffca7f1d19705d5ec64a174b423876b1ebf2a52d28941788090ff700fd14dd9e4061005d9b2b81c2d0b94442444b943cd1848992278a287962e7a2380a21d71341ae96e75250c85b9316f95fbef49e07e6687996f72438e776c516829a5bfa594350737d909e823a5a9e65ac21d9b1e6921ee65deac8d7e5a5a4b9f3471beefc51a5e6c795d48f34d8fc48e3ce4eddfcb8917ee56faa4cb5a171fd471aae7f4d75ff187fd33398a32f0dd6ede8a63a3a17ee85a92f75f42f3d571f2dcff21b98b3f2a3e6b6e8e0bf11b17c0bb5e3ca9dcf8d2ab7f4f447cd6561b15ba96eb079372bba57ab45553e95bac1c62eb635994fef0cea9e5ce9c5900a981003085ecc20881a452072a2066008420b84d0b53ce5a5ae45ea5aec2f2fd97123f9cb27d77005f2dd20db3d52f30cf291d4e3b457e3c9fb28a003865ce71d6e7bd45456b10b42a1d4f7fb2b25d4627babd88f5e45386eb0268dda9c346aec36d846d4a8d18b6e51a31a3576495ed275008b64ec5ab7d5a8f9394b7ee449bae449de207992394b5ef2242fa803b843ea6b7e83792a654d3bc80a78a14409229c7481072a0114a9a42a556379f80b2854020422572a79428c2be34a254e3471fda585b4f13f92fa06799035476a1ea7bd5495b207af6a7ce85656b50bf95fe942527453ecc8465e1b17ab70e41ef797fb4b49a83d08beb6264209eed8a810fb516a10b07e40b68c897de2770511359118e175be408becceec2ff657a3dc1b359d899346b91542117de0f24b9bbef2993419f257a324101326424cae13f9cb87260f427eafc700cd5568d293120e6006759fee6827e7769352ca174317da43d453a6323b63bddbb65f664ffba7bac2f1ef26850c80a270062b9ae0c403980004215e4c7802851854fddf2ffeec09c16712f6cbbbc3d073f9e58c8b738a72c6d3bcb520573a1432cb38cb64371a855ced4e3beab8948ab08843f91d51a3b6d67a1265734af9b2764d1ec79ddf63354adaeed5055d1166df1179d28659caef601d518b7cc70ed635e9881ac57c93b4c8b4d535e988e4ebf24bf943ee927ae514334dd84522f9ba9ee66d9fd799eb719f571cd7eb3c3a27b34c19492bae3781ae977d5449d8df9ee6745249249584fe128ceb699fac920ad7db66dfb6a30fd7fb02dd2bb228e2d2da2cb76deb6c64da41470672a9c542e84ad9dca5a61ddde4f2d3dcd3f59a29acc895108e94e8f29b72e0cb0fa4813bfa8e13d8b8e5f904d214488fdf1dc71ff2c5042986362f221ca98b7b512bc2ec8164b7e62ec9eec70423374803f590ed7a23174a164f6e905e72f9c7ee8e9e4538ba641166efa56c575a5a4598fd90eb913e598174a54f566bda21878680cc3bfe90af1ff275e94f8b2a9fac1428ccde932b2b73c59ba5cb887e773daefb64ad5a5ceffb64ad03b8dee89335e57a289facf47ae1276bbd5eca272b107a83d00b44d2323a6557e514d7fb4c515c7ebef56631afe7cdd2a5677fdb0a7eaa2494e2725b118e747a774f96da88fe481afed1f40659a2a068b7eda8e3d2a2cb5f6f5647fa73f98a2545ad95a7a4158230850eac5044061eac544c81264ca8d0f1c10a5820858abf2bea623eb7a851f22915a11df956798b9e5cceec11eec568913b183fac457e981cfa628c2d96208630b45a205f457c100b83104ffc6008f37ba8cfbdac2bbffde97b52ec6fd0a95fbf12f422ae2b926057f4cc4f5d9e6269c2d0164368a1051f9c41c54f833c051304286a5084222d2802122a7edaa23f56845e8c193c077872869925898391f6b64c759ca4b194994e4ea698b9b9b9f948c6bd6d17c76402c808ffe28cb4e1de468ddb346ed3a13b5f5e31e4e44eda49febc09245a740144667547aba14bf82e63a8b988b76ba46afe209cf69b48288c2a6176bff70341c33ba541e6e7fc9fbf792ae58fa0fc91d1cfef8e4cf4c397aa946aa2d66401f0539e87d1a33c0f291f5a20c04f79149b2253ea886af608caaba4a768ab4ff3274a2b05c7fc9af93f5f9cd6e4bda907833cea12618dcf9bebefd2e1367f2c6d3d9daaf9a2a7eccff9a31c8a1971fcffcbff8c2a55b64a958c2a552f3d355fceedcef7d3d46c8ccaa4332d4ef19188a169de8c3a7a5b4b2fa3aefc57955a91ec205544c24779099ab8e7c13fe579e807bf4e2184fc0d5209c58c1abead28d587cf9a3ccb2344790d0899075f460502490f99071f081a3ee5bd2984f025cdfc990408f5817e6775c8bb3d10427ee61186282f41cd071e4460fee54ddc57c03fe52bd00f3e4a35d19721e387a8c26aa28f327a94ef317a94a78f628520a1b647e965582132d6f4a517428335516be26c04fc53be473f38fa212a8fef5677607087acf2d5aa89c7e87790aa51e9bd3655a982a952f5a2f1203204e95d1ea765cbb33c4e677c632ae94dd5e5616acbbf54964fa92b0f5695cf565e65f4a591ca0acbfc96f92e52c552a56a65f47e9a30d3899089a03cf844c21fbd0479a47c15fd341f6504ce9f3f08b78944d544fcbb6508d725233c3983e306dad9ab5499543187fc2efc92bde04d60888abe9c59221cc04f2269736333ba7c801a4f75ef277e1e65918bfb51beb21f25cc53ec2eecf69b93c890d56ab5b2a145fe1a1c2de220e21d14ca1f7154130fcffb09845082a0e370edb9df242055b46b8d9ff83d27520d59e1f013b70d5be49f4842f963485db335317872667cff584af9f2c48fa3c65338f2c4807740f36854f6da87f2c49fa439a40b4778a7f56104df95526efea16f567608cafe95276b8434de9362f8332f677ef4ff16457f1a8fd362a36a7ca35c7ff951c6f5d1f51f65ae83d74d3fd2703d06fcd1bb6ebadd95f911e63a7765fcf872fd55b4eb2dd7b3fa230be9477aed8f2b77e547955bfad167fc58bafe2d6db2f71f53aeff48da341b97773bd6787faf461569d499ff49a346a521d2b0df4c9d2df673188ee16ff2c4768644e6cabfb76d86ad2f4386861813cc8b4b0bcb8a4a91122b7c70fd4929fea176fd5146ddf507bdebff79dd48d26c95250d9d7593346e694844c264153d505c1abc11c19bfed94b95c9ad2902de6bcf43f7990522fbee350b04921ed9770f8426dfcbaa8987f6a61da44a33f190bdc7a00f39f0e5df41aab6e7e68e8054e5601edb7fc099079196eca3dfb46af237516b8a80a665bf5920b6cfb6cf1e08eeb5972aa9fa408bf3bdea27ade6dba42adbfc347f74a0c5298bba2775ddac51bc8da14a8bd9cf9ac9cb004fc9176f6ef62eb07028cb6426b355c8b7cb10d29736fd7434b2dc904fd98f59d56ea334ad6e446c97c19c6eb33dbc17a2fde8a5ca41138fee7b096e2f64bef79bedd1fd678598b477f153a659d5d65a0d89b89ef6cd46754434aa7566a3b24c1b69b589b8de56b5ffde7b0b7cef59136701f04d9c3545c0fbee7b78df592148b81782f2de733fb24246dffd109556690e7cb9df41aa421ee16f35dbc21afa29e36af61b0fef77902acf0281847b20e67b9d05c2bffb1b7e8ff9a195dec35ffa895efeec33ce6a5af65ecd50b207abf4d3275d28557e55aac0d04f19fd69317bcd4e242d5304e67bdfc3bf7bda6a31fb4d8a9bbdd769da668f7c2a2da32d4fd19e3e659f7d1eed6931fbf066d97ff662f661f62ed94b900791f9fe541b32dbbb81272710fab704ea42d11d7f66a23c203a1aa507bee9216e3fe5d9007318ec051ec36d1cd7e6a2eecabc307c53f6a41fa23265d66481f053be074af6289fd91ee1a77c8a15324a421248caf08491d54a15fe10d5e8c1cf7a3e93f294fda80671e5a84a15833a84b7b347523eab99911633564ac61a33d6ad91c51152e8810ab8f0c4125443746a00c4440c6014612406aa7e5a446321f54228555c0527c260a206ab954aaa9094a0038b903881084560ad56aa093ee0fbeeebfe7f7cd7fb6a09c699d511c7388edd671fb8d9e3f858c3d5dedbbe0fccc9d8abf2763accbb3d577df0bbfd06e66cf6061b6221154338d222947b2098937d7c63393c91b02c1be275b7839f1f289240f1f3d34a5a4597e64a254e2c6188005702456189bbc11a05044890f0925c3ef3b86e3d1f68f14714421a6cbee66bac909ab7f921a9bff91b2b04072c54a91fa21a5d2e87356caa1004fc0d3f33a35263eb229c2bcf535882881430254fa2b0002b943851c517432481c47cafb37accc73c4ecff73ced63f064c721f7f4733ea54328d371c8f5c931ef1cce39275779e78c79dff198989898d367323230d649efad4adf2fdee2a59779af54bd55172bfdd8c57c94de8e1be9a524919e8239242bc32f7d7fe947d2cbd82ed6a2b79a9764bd6ec22cc3fca592cc6513934cd48ff0cae21b9e81396c1be6475479774cee83764d384d9f54fd69ce7c538d79987a7a8f3f99dac5bc558ba7eef4fdcccc33f7f4a798dab1eee94aa0309a5ccfeb8f411da737d9f1866b7ab9c9f42f2f4ddf6272b9a6a72f2d302f2d3024ca4f5f073f2591a80c49c6c697aa2852ca325486d95469d842181be20dd7e569a8a9379faa36f3b924365fdabe3b9260c8e41bf44b243b06b9a4d2538f3f93c976435a600673681742d3934aa00416b8d8c20c34c8c2147438020b24a090842788844168a8517da7e949ef996a37b485d064da82dc713e69d6f1bbf349cf608ed9bd7e7cd764bb212d8435d5669248964b551cfee61de4e1006ff30ef648fd8d15f249a14abd833d6adec60a414012ae2155cde378833914d4f1f2ce2549959ef4a612c9b46911927e3e3fbda9356f5353cfe0034a6fca312fcc9b4c3fe49a5a9ec098bc558bed625dcc855ae401874fbd047938c0d758217c854e1845aa9a97600f9b4f59212623a86c5e823d6e5e08032141044b75a3138e5dec4a92f521a12ee687d323d262ff92dbc53e26e62798c3efb4fe7222ecc7e16d2a7080bf799cf6b22f556d5e8216a8f91b2ba4c1500598aac6a6a67e92240d9d355ea68eb38e3335f307a8ae85501380562a1caa7cad562aaf06870354173f75318fc8edd04f400847aec5b51a356df7844bd2287f6d2f2ea28042c8c80fca90c5189e206206621c6102135e7cf162fa36225dfcaee9678ba697617a996a827999e7bb524d30bff2a7f74a5008477f7936a8e82969437c8fc152a985c697ea8c27493067864744a7e43b2509e6c43c4e93de93d6b483f4f475909e32935a5e82dcd24d6ee9713ca69a9e34ca54b25d0bc88e93e9573e47e671dc546bbc4c95d7461db76e46ed588fd32f75fca1d2b57e3a22ac46491e8ea8c5e6c4e8221c3b22b7bb221a55bfdfeb88342ae5fb3b1d0fc25010a4b89e7fd4671af19e2e72f9b2e5b9f385e5e9f3dbe71f7d27075f120d98524ccb8fe2cbbc9429d3e95fcab734ecb89d2c8cc9c23c7fe9f4a56fa9b2c5d2d8f2334a92be8d181b84de18999ac2138a3648df981f594ef465be411d3ee6cf1b637d983e6696dead95f9f145c68edd845e93f551fa98a7cfe08e92f5319fde18da6283f485790775a0253bface3d8254bbe79a627780eece7d4d9ea4599a738eecb1c5f152e9536acc4bd0597c43fa39fa0ee9bd1b371bd6bb09c98e4c411dbccb96c4757ec3f87736a071c89c73a7543beb3526e653de59313129393156860e74bf989af29e0475f06ec35a9cd68fe01b5e636bbe644797d4f3cb66c6cbb0e396b236fc64e3655a349e56f1bfcadbb1582c96f8d48e33b7633d3f49e5d292a5213b960d1933be411da687f9af7c3b16c9b29dd62467d8717b7919d6c68b9ee8bfd06f79982ac11ce2d3f7b68fc17f986a7ad6767a69f94ff9af7d69b5df9dea4b15ebf863a653de8fe01b7953de77ee3614f2a5f1d1a87c6930eb7a4da3f2e5eabc61ca7378a2f1dd77ffe2335e1e46c6cb68f97fd1c657faa4a794868d225856c70b5ca64c9932b5a69827d9d1a483e9e9bdc0f5373dcb0e99f7181d484f75307de9e9b64d538cdd61b225eb2f635b5a52682d3dd31696a00e2dcfd647cb97ac0f1b3333b7c5da78fb55a46143c6cb9f5e144f2f0ff3127cc0cbc3fc0b0c0c8c06f302f3a7d7604e303466c0d8197fea19cf75c68b773a9d7efe683444dfca78b6a61d34de9fc6cbcb77f425a8038def9ec107d0f8ae7b9ca6f15df72f263b0eb9a62fd571e60297f4311e13030363635ea6ca1663ece872e7a872bda5c5ca3c4c952dcad8982a2363e3491ff335552c55fba4caf236aaf8a65a02ded139d0d8f142d241f6cd419a759cd9e15fb27d671dc55721c978b7332dca789c26591f2f4fe365d451b43f66ee8bedde3e8e8f6a78abbc2a759441d73e4b1d2f70eda78039a71f33b704bc63e5d278ae76349ed66ea84d3f6e2de4ba1de9dbf7ec13c249e2978919372945d2dfd2e374b76a54c98e422e932c47a3cecbb69be2d5fad2789cee5e8db2dfdf09f5cb8e51b9f6657fd7feec5417f353bf7d2b4366dd2ee6a9294ff3c7993bc70b5cff8ef1582a9ecefdae67b9272d1269941c65b7caa16167e4addc13946739272dae1a85628fd4788a1be288b821aec5b93c25b9a8820a927881175cb06304553f17e4a91a863082188a2c39c2041ca8fab916f7b33921e43bf335eeccfbb0fe19dc31f3d6c9ade1ca2b7c5cd7e7894f4b860d989ff1a7978d129fc6c3a4f0843ef8495f7ad2732dd512534a4dcf9564e525bdfb30591f76c81f97f43962def4f27a8cfd71fd4d96f4a64f794f4a60e6d96775f9c5a22b8ec0ae604228f33c0677c4bc979ef44c82c7e9e95faaec03df1da6d20e137f4c1d4d5fe329e800982f3d0519c017e6d9a6f084ef691484005f2ebd0421c01766a45fb2293c21b53f54fe25a803ccb3f501f325eb437cfea13252fb43e5daf869c71f2a57fc1a4fa38ef39edec11c6602ac15a8344db3864d903aa56844000100001314000020100a0744a211a150a4ca6afa14800c899e527a5c9aa85992c31452c61863880c008008080098240900d3c4a0190bc5f8811bd27057cc12c1e23d3b8932872504bd8c1be85aab93a8e94192cd753f76fdd23ed920deb5404c58354a8d688e8eb01322e2c8daa12bbf94096ca649b334780548f9f193fc4449a0d4252c9b0a1901c4670084f28c283bf465c1b688d64d81420a527242ca8a66711617f0b20a74f68bd2d5ac0debfbf8424ece81a1f5fe37629344b496702da8c79e96652514d611d09433d62b104c303a1fdf9b7ac069006f7a2dc4586668e6360c39995e48b901f97f2cd613744625821e4a92ef5e386d3086974f816b284aefa8e341354170e41e89bcab44dd82b433888fa4cc4583265f5afe5c702c87d57bc9efcad6515da0d76e666a54d0c2b45480dec056d2ad180df932fe44add35d275f88424378bdac82bec7f68dc28d6d80200ab508e44024e8575b75a8b183bb595d4d4f651d69070b9950a7fce124d247c4be970f6bd2d03dbd51e63504f580268f56397bcf54e1a13ec443552b2a99d3c55d6f2588a13373174710a95340f58eb9f61a6074139fc1f4a5e43352309528b500589617749187d430b56ee794e7b62be49f017c0033dd423614ff1ed4e5aa3c6c6af20c3653b5ff338ff63aa5bd1d5445f3d10a251703a65c24b20a66793450dc4f5d1ca15abc32f63278c3028a45618f610204e857bcd3b9300d248fc67390d6b16eef25d5b01ac7923ba179de121b02b3a02a7ccc1846da085641cb34147d981b3d7debcf1c98580f2f3706ca6ca777caedb2092421df8e4d12a48cfec7921c6ee5ca04b46282e300cc0a1c005cd61ff86d7875d2d12b6ea2994bd5bfcf8e357b23294ebc279748e9db741013d32516f1b4dbbf62061c55a67ca8c09af75227024cff112f42782fad2ed8b27ee799f76f52447e43cb4bf90f2900ab7add106671525470e89b7953a64d2135ee226156ba3c4d4f50d65505bd8407f339db0fddda432f8ff7633ec7101f144c4d6a55ebdd1647878baea3ac76f8a337eb231122eb28faa28b158302d4e1a1921b160f2516a7575d2452476054b566317ce2d244a84053efe40d5242d7f7b1136bc038d5bc6d785b74daea1b89f06573d4d435861e20a6801f4cadda1428956d588448d6152be60eaa9f82e904b2a030af13d35c2f41154d894a01e6a8a86bcb9d94fda14d8e000200d9e730c73a5df40cf8bee0d9a798823fb99d88a86213d14c2072acf489aa010b8dcf62022438e1e80aeecd5894a984975453d992ab993edcc6683759b95029c60eb4b3346dfea42d5a0b743553c93ac274ec41355dc0f506ca67b54361409e9276a6af1aa575826626245177467aae05a5c6e91b9ea0456b417d217f1bba5cfd0e7768a53b662603ca8fa494e492b0197a7137988cda43656927d00132d4bf24985c62c8cfc387810b008aec84b0885b6516b50a4a78d5cfb89a19170c74dafd87ec13a9f8b287418744137914f91e38fa1d33f4a172ba663e59798da4771e195357b0b467d6fa008d20f85e818a1aa15b77903a8361fd545b180bc1103976fe48b54b2aa7918062ea53225a049feb2ec305378a3fd10bc6f167ef8dd7416768635c647278a9faa8328cb74c5305a7119afe6113fe6cf56fe5982607daa765db4a8b566a3296d8a70cf22e84744aa57097a43a6884c4f41e9119b6f35047f5e7baf2443f9c5d8b868f20ce593b3dc236214efdc3fa2216b4d6113de6687d532fc69963a01b6bcb1fa7ce01c485e675ba1a6b3e917a7250468c4deb31cafb938993f618f555d73f06468c0847120130121436507f88cc0b65e1e78c076fe1b3b62f6e0026c6954a00bf5bc1920f302a60eff32e66282b3e609b3b657821177e0ef0a563bbabd287503bc3e03867abac8e4824a28d4cd1db21a9eb6bc8305d402ebc717445c79a87e38c69562671b72b38f87d269a59f357f483469d64ffda0ecd4b7e60e3e00cb98b5207a84a6af5a544b40933c3196156281bca747326a8364245fc584ab532939559c694d008f979a82a0e4efc767606c958059cbdfae3066568857af4fa0615ba55910d366984bffbda7208fd1d43bc606ca49d00b5126b3fd4763d78f5d310d4f2035cf2dd533b489d32f88b9f521dbba449cb18b7d8a5db472b328f8c6d05b87411e5ed6741931e0a078257b752e96cb7e516e6cdb38da1263955446c38926254425e10eda9564424ea351c00206ae16ea4aa39e382b39b501b4ed60b5514ae347118a6625ac3d3a8f2994189c039099f8a94f4aaefab65c3e4a525669f83796d45eaeec4c92fd4c801d3c09befcc2601a6c54695526bf35f42bc02aa790878ba86d47b9dd3e294c499aedf1905e5c82be87df504bd1aca3c5e5489831010bd025f19eb3998d451fada7a24e0dc3109088f52d7e7b12dac12e6b8e758e668b03de8b9f698c1aa566e0cac7085412ced27b490f586d6153851a3b3c0a918f2770d2a4a7b062b8edc23d8289f99669701ef89a2405dd2cadc10a3cb004bb2b6477b71567d2875da378c4d6e350d6168c50fe4bee44fa4f470a3d6867d6f06f456d080ed11d7130b07e0c6d31cf1f4c496d4419e2789f1f38df66622723ec335876f857c8d7fec1ba3fff4df417f95370996b46532fadba7030d2d85a0aea55648ef52f2e5507432b0ec9b044272a20bedbeca1245a881152dbfaec391f552a3f5d1708553a5a697c2a040ce6186ce23d4f31537a900da219dd06d8e437283b21cdb1e8b380b356f68cc6cb5a71db16f31a8b28c45d52c20e970ae0bccd8f301709eb174b031e535bf6eb68ad65e1720a8ec169321c94db8ea14479f9825bfa4cbce7c762803694defc65205cdf791c4e7fb8445677efd21b4cdd3d6adddb8a03436cbb7becfb0076505ce54d12b1ce7c15ee2f5a37b6def7156c5f1c52057faa6ce020738683af291420102accc1b4f5787759e227f6e49526508a456e044ad02f138376567249f73a025bcd0fced45caf97365c3357f3967fad03c981fd988270b1e1d2eef7ce5cdc5b7e2a9c676a3e424194910f7c4d5edda9077dc3782c56f6c28316c2bd12793819841d47f616f11da6bcf1bcaf787b69b0944df49694b374adbe7aafd885264a0fd6591d5c39bb0d0a3c114f18c32e9b8c159cb22b2cf02dbe04d24f1ed2e55778310f8d69b36d8d3ea664a147a2d32aa2e9ed93c89e493f2562efdd504d5fde20a7b105fa2e6a62f7475e0f59f398247a01c6458d6c688c2fa69606747db84e0605d77d191278804b8ddd09326d5e6c32cbf97237d49982835a5c1370a8d5e709da063d65e79a68642fc8ea5f763fa522b3ba0a215c6c520bc67092cc6b5d0e657026259df38b08e3f12ec78597db084e5d4ccbc36a30d04a7a9d1d49d84c66051fc03668b11bc191ab6e83965d3aad96fff1a1cab60c082a7516eab2879ba625bb9d43e2462a3dc6422f81feb8f77f7e7368bec2bd6c4d2ea831191351aa69adf2698c57f1ec7646b76896e2d713b88a1f80960e7261bebc3f8cea7e7756a905623ebedb64b6f66caad0513d29c7b2fba583252d275aaf2277d154a74f7341b0a1a630dd50ce2029237cf7318ea7604de57a694e01c4217d52c1d6a0e9b19f4317a15a7ae1062a5656fce1518f12d7fab5454d0a03494f596b79106308681c51ef8c2179c71a9950f5f480e785091abad7579f3b56939a02b9ead4941e0f5559e7c5709f8aaf24675af84b171a2e49fa22fd588b761a13e007533dc415431e700ac090d57ed0a2aeae677f441b0f8e02a0d9a1bf8d6b2c59fa48080a5251e4577d78a444dfaac4b07a9b86cd3f0e867ab24816bb505d44ce1cc601e84f5fe0bedb53b984a5f3500536c7c4dbb0bb564a912f512a337126d0cb1fde46e84fbd81520082e1c4826a5cde8750fcf8f37f93dc7837d542744c9b5e661e88360aee0a1020d5be7a8209362ba61e6d4c7a9817fb9a2bc9dc49655310e674b6482f2754d7573b5fd6f2f30608f487aa189c654d04d2636f376f81429896af147afed3f6149bdea363c79db0369d43243f2a57f9177d5b1decef33ac914b365c29256931e499c9f0d864ebb5eceb6b144bdd854bf30753e246a7cb336ccdf83c429abf0a409fc333c1f92a3b8a95b7393abb61acc152f71ead427f90643df8998db83b2c9f280b120d2eaedca8a56ed394ab6c57343ca348604aa9b9b53720e423b2578a100399295235780b817a4c133a7431343a82796d8c3c05e07ee78f6b61051e5970bfe6ae44d53795669a3fac06dc5130386d0a96c2492fde52d072a7b8b2668a1182a32833ade80b4b8ca7202f148ce5a40ea87e28d8a9675b11ec8e5087c0198b49c4455cd92ac3a1e7a457047f247b293775293c63eafad527249221a13c14841d14981dbccd574699247634f464ba58d13f14aadd177aa979ae846c76f214b97eac6506ca0fbe8690ae81d9ba7b109614dcc1580e41670c3e141ca8b7cf5687755af94be8acc791cc3a66a654c371918134acde18d3578851adbae5ce4f0a23b644bf995bd104fff1ac507a27b07fc9a7943cf09f82678aa52a3e6a3d6f0cea46ed3d0a9eb5e184bda5628fba4109727a3d28afe9d810dcc79e7048187405288d04eb79152d9d481107d0a618612ab042f4d2659adfd12766d5a66f04908b9211404a0f17f739a82adb7a18eff9861e5908588760e376cf184bb963dbaab7caed503118da2da8ab7b5ed53c8caa952139f5a059130048805804ec5f5dcd082a441dc0dc9b4602c465bf5358247c694c8cf31952dc6e0fe2f5c7ad7b0ddaa10bd7789788530ad656548e26d436295a0d91931fa0ef45da7fac5b86162d2de8a985dec2858bd47f4e1f6548fb43537aeaddd15e46f4e92a105547c018963eaa249d289f678a8809da09604a538d7461c58c4afcc9cfb9e4e3fb9b8ec4c0a6e29cb0b18f784071cfaafa1b097d71f368f7d9a6e854d778e26b8daa12627d5c7d92049cc7e105dfda31ca2f5bd4cc88e235709032638f448fc4d2b390f35570184e5150196bbd59ff9e8d49468ea5346ce1e1a38f177f9058813e9328da39f2c8abe73a01e20fde7d6938b70a36a5a05fa1aa0174209ea0a18045a57e2cd0d8733812272048fa29086fe85ec26536dd11b5d7f7819ca11b4143649c7ba89ba2e9d05034ca6c4bf5286e8e86d036c6e2b8d01036faf17c3512ae092d4bdf723b7f8f749b6b7413c6aa1c45e7d0d942c2da4c382a8eed145decc1318d1e9362ae979337930e9e9c0ae4425c887ae67e35e7f695d0d27883508efa719eb705af17424948a4067ca68c329bc2280613a3b27d3c5fcdc5cf3dbf5820c0976248fbf6be64c80be8c3b8583a37d6904d39992e08aa2dd45eec9ed00b2c6481c44f4a0e402941b46ac8b9c45e78fe56956c6b203df7cb3de45b59de49f1e8d9313c234ef274d8984674889a386eaa4151bdb2131224d38f81d354fd3c8f9b2d6b7a31e7d3251e5682015fb43858024b1166b7fbb7edff57489c9bf4b59f0ea2692b98579e9769fd678a35172ed98d2024b07f4e8cf4b08804810c07bd56d848a1ac180544a21b0489abab9543a88e1132a9b3c4e8047a23a1c4708f354c7f932a694aafb0264cda749cdc379201e652c2c5dbb9107f227cf44c709afb44417cc87100547d623d23b9120a52591b23e44e6868e89a97ac21a0f4b27a531003a26d6de57d790d624e7495edac913af3f93850983c45a8e8db9d43412539d0c6426268724961a95e56ac01838f3da36f6459823d387c8e29f60d4ed040c6b3844168d177c207bd1f0044d173e732e7172307a4f8cf8ddb6e906ad29212147ebb5739852b97128e5bc32e42ffd16c33359fa03ff42148cddd5b69781dac910517a397de05fab7f52e9034cb73d112a9dcbddff8e65f1f8405210e6a184fa3db4d44b87975a45cdc944ef0d5c2f79714151b25b4d3e199686f925e9b0cf529b89ecaf014755935a377ce021ece521f78cca68a5193f3b95fa81f48f440d0dec37c31f59548637d9a79f92950729c47e386ec9af12e699454d733ad453a21e4547042b18998ca662e4a271aa7e6f093154cd1ffb204ac0a599d77188a72ffcebc5947083f62d86e13e9ea223ad77fcad97ce809a19160bd6eed3a21a8dab9f9f13b0abc316bd3235990baaea94452e37d8406fd4b34cabb020f43e6448f3f663aa73e96548643d8865773235aac4b82654ca88adc06b2bb8941c2a3e2250345dbdb141d58d310d335f5f820624bacd0d05fb13f1c1a125f788c23e09a0cd0a5165dd47598371ef2115af9b6d75edb644f233213348e3e6f80ed38590672a25a89ec111aaacc8a1151deb4e9fe28d33a32095dda42c00ac65617bdabf0cfeead7dab328e5e40222001b5d27d8c41b46b2f9096b301c2eb56bcd9b1148822b9156c8072cea8536e86a643ac7d263026c2844afa47b4c16fc228406df729b001a905e9cff22df19fbf4d2aecd6d0dca9d8627e8df88e47eb54685ae3d957486fe6c2cd70ad5e7e975c23a871e88f613d3828007875308d5534a0801b15171540276134a1b0c40192567e268480ed35488832a1ba6c0599e4e859e9e51a977d84e284c0aea57b7d23f2a643d39b04ddea63d4411e2efa4fa14ef2bf75c68504e34935fa77c3a27dd032c8d14d6c5ff9eff246636a457f8a90b9722cf77ce5049ff234ec7d265b37651c061f3f1b0d4c2eefe594f824a4b22414fec830163470b951b1d96e394149ef67e57c4356fbb630f576f9ad280943deaa6253afc17c299006da5cdec371bf0bbc2958d106f51c9936acd63d1f67b51c912d4972e160b2c83cedfdd2a98c70aa5fe769873bb80b8b6ec0ac66aee0a511d153e4da2f5042d82f1ab03bd229d06109f2865d09daf540c8ec6d3308d706aaa02718b4847073c9c71f44819ead690bcd214190c62507ce7957e4d660fe462231864a6dbbab0cdac3c83549726b78e7e95050cc20e5089f08cef76181cd06ef3d62577873158e0d41d35316447c9e7f9a91bee804811452ff004e84b5ed3051f0248bc8a080582eea2543beb96fbff3402415987c42e06e2108453cd4910ae53df153fe60ad595e919134b6fa88b3c60b85f1a716043db524ac35343c8169c0833e09a6b2b7ffb427402703679e7246b3d92c8dd5d1724b9bd4ecf92ba8ae8a608f8b767280b27956a0a49f2786928d1edfc7e9ff390c3a2b36ff94a6b2490376e09dd5ac1d4b265174aa73b66e593b898d4ecb7f55ba03aad67cddaedc34330c4cf663979d6c7ea4713d120018d1393602de3e7ee7edfab31a63f583f492ad092bd628c06f0fe653bf5041bc3f14c4a9da076ee6f29d602b4ed24c330a63caa027ab04e9875b3b1f4b1bb8a456ec6504e7fbcb169c75a17051c21f02f030fdc0259a91cce06109c1ccc6f3fcd0cb699f6c87981cbed598c58ddd044d7fa0ddd2f6f8a8c19f9527413b996751f6e4f031d47ed28ad99170b8eebee03a306ff22457a49ca239f37763068d91d399e88e4a2e15b02d082130685ddee2d4d69e8004fbcb0ef3af841b04855f43f54b9dcc07e502422b98c46a117d124be78055d6635ce79d7b341c16c60cefec2142c58fb6f80ce09936cfc65794fa61d3b246e0c309f1d7e439f3a40228607121566ca08d37fa2946c02bb252de4110b9d7984e55f1d288aa70462b5d6547a04364e97ea87ae36c006d50b9c7235d5622a7c102af345d1e597baa597341f86e3e65b0345d8207128d826fd2b32ad1d7024ca232cbd9539b8d8db4033dd9877630ea0dc4115290af78bb1065d3a2ba0ca0606889ec970586c6778c7cc506ce2c65f2358863d4d86139e5f451ffd1f385077e801e865396006b817b0f6ed9cf3c5d59cc165431db143e106c1192e8bf936223d347cb4357e301a6e6113d653cf200608c68026a6b371e6f9fe037e5c502185d016049688030022145e4b425e639c095518d07f5d0dd74da5d6154bb1fddcc0bd2024606474a67f70a391e5a37aa2a59fb711b560870d1c9117145258b0b2ae9e29ba232672e95a4a4a8b27765ea453d3f820925cbe532dc098d8995cd39e122fa76dae182269bcbb25dd8e24b1ecd7af33937953e4f34c3b2c3696a55ed0c0838571cf487eeb42a4bae3e5b27bf1b4cc89d62062417e15d4c8b50941c044d43a456cfe9417aad4fade9573a5fd432d4668703b24883e9f3c2ebe8d7636e8329ca10ebc91df57756378cc64097fab75050a9e9f73fb083f7005b69d329b7b3e8ee1c3f48cc54a3109b074a96c16d18fd58ce1e7f9d365bc46b5eb1a7942fb5b8df442ab7666e81c0b16a7fb09b8ba0dfdbcb5d8e533d8308cb206d83701c6128c9b1c5c62ea59c3491693b67555eebb826bbc0295c3e8e5f130cc348bc21433b5b74e46d34da912524520bdfd7724036bced1b8322cbb7faa833e73a28e8a701f60e5ca5c41bf3738ed89ead393063d6664d3dea3b75d60b51dca39615161d2faa9fbc455c38ae373cf6afc7fea12e502fe13120795c256beb8004cf644f80831ea0be0d55016c252aaa1a2cc7c2a712cbaa80da5586867fb3bd0eae76754ab03c455c6d798fadf9120db4953db30438c5e0dea4f03f1d0d5704fd8c655f29d1b2632e4e2147ca413f47775c52ea142cfd4beb990d063eaa18d2be9aa9296580e1b6a214c7a9f868356a4bbaf6f062da082b04745f3fb64ecf930647877215c7a5a4b9055d57eb4208fb96841ee2e09e5e3ba483a4e0e77f8667250d00090fd74cbcb00ba43370e11026f7459593e439739a9fc7359bc4ff719cc7a864d7dda93e7009af7c3e26d09b033aa40477c950a8eb2882f388de12084a4e77613e80ef282d89481da15b43211443742f4cda038ddc28298709ee90505ef3e68e31669b54f6293c53fdedae3732837a980b4484206f6a4172b7323c538c1a0f734abd8186a003c4e5f8a47defba96f7615ca0812c676a5777bec99e249956f860826690c39265b4740f45ce8dba98b983f2291a3c9eceba5cd218fb11193d55f6ab3ea7c6173852fe6eaa9f27b6ec5412876732cfa531646fe19014ef5acce33fb7a336557acf2129acfb43c5b715e5e615a3a8402dd08b04a9d727389f4259fea59a4aec3024a3bf04d133e1df94c836e66102c80337aa7a90981877eb936391b264d770d730e9583166289ce36a6cd5eceb87c76561a2b96702dfa7915b92e0034ce30bab8ea52702b82e6fff86b9ecc1052cf5c41f29ffe348923a3bb0fff2abaca1e997b177da8ff87324342d87ee31a87e70d7dc531b0784ef74099aff1b3998b4c2186a1d783b39d0703ba20b0076ef0091fc087f50ebd1eca6f94a3ffce876ef7508bde21312c3afd0259a82291a6e10fd1eca550aa4159529337c09b5e4abf15eb32f962b87a245fd3e26335b18a15969af4c263d16af7c3305108445a408d0e3eda8806e9f141e49c364b2783db677ebc2b50c9325c2ffe6763033ec9a4435929105c645e09f3367744d90fa1e38a9787346dc1311fbbcb061598e935b3da5cc164d7443067549c5af4d6e76d014775c011510f0055b13ff2e22addc26ace0c9209852d0af4047ec8ccf64720dc2c5c5404d9ffb388fa8ee3b879c870d33ffc440f5d067a1416a4cfc009bac76a7b1a165d4745871640ade788dc79166a1ad496e8d961c3f581c77282d56532ed6924082675291c1c613ee5f6df9694cfe5c3bca477eeb3edd9285b34f8a7c014664d13b80169904119d10c33065c3af64d4760740e2a47212b8c351991aa812122e5ad7007ca8d39c094a80b1232eb9b851204f792a79c9a5e19ebc35cdd3b488bf2240f09d254137af83f6ea23e937effc663b4ff368705217b6ce54ede3d0f46a955549ef03007f05a032e3582ae4f2e49c90224821d8024c397a2dd940a50786e982810205680021c1654f294860a252425e87d8bed810c731ae8794f151418118685782098c21b3cd3634aa9b8712e27dae49b6ab8886301885126dd7ce8a2b40373193b835c1020deb4300da592336aa94918f0c2997e57b147db655d2fd0d8291947a5e1c4bc221d662a80a4841aedd1229da51fdad533ae4aeaeec7681cc67f4df85b20e8812813df7a3ad42783c721dcab8a53079820468ddd553a46ec8bb204cbb5e9fbf5273c4cb03c8e398f5767f87d13c61e0edb7e8f95c9740633ba58937a1eeb9028d8db462015ac530217405695998a84b33b29776dc7515fe897e240dcdf1b593ad582d00718abdd33c74cb2429b3eec4b99250a45ff9704e40a71c9e8a28b534c82726ac361f4029166c3c918323736cfe541b068361ce351cb497221892444e40ddf23a7a72a2ea058cabd967e14372063e19c0a2130974b6b403bebac61dac2309fb135c18d98b3c1d302a1b82375d784b83fb13406cb04ffb5a9a39dd602de0564fef30e4ecc957aecdb80013d6dffa1cbe64e4871baafb96c7fc5df4af4954918be099fdd42dfa689fb61a1d8f0fba0115bdceddb487e3c7667014c79230823b95ca45212bae70b934668e60001142818e63801f56a4d9a527ff7e9d57c0f13788b45fe7a0c4d85c0b29fd0f4444487a2d886f213d986fc4605ddfd26caf5651193aa51c51aa171e09d137faa5647f7b8100b8085a31b98521fb34ab89e260cc61d7c169a5b5d809ce77bad2342aecdae6bfc3edf289fae40e75c53063a8f614272a6ba02cbbbc01f547abfc8d15473825b4cf81ac835af482177d5154911ca3f884dab9093379cd802df5341d1dc8a9462d55cf1de6a3e9e1ecf51035d6843f6bec1183aecd4273a8e197aabb69a64d8cf78b82fee7a0314ffc2b0e0da4bee99bb216c17d8342c8d97b17641c11a0fe90e0a54f0f02dec92def6d7100f4fed5499104b35971318b2d08b0ead45c2c01e480a54ecdc3384d6da1577072418b85bfa82c17797585ab4ab43444b158866d16881d2e87d1b05305302099972816f41c60487c837ce1a4f20703705049a71084e599707044119b7fa420800b535fa12eb278ec10a22dcb93e010fa8f8d973013c0163d9bb1cea9bba2991310a6378289018f18118e103f2ff31a3e76a7cbf347c50450910002c310dc3fcdb4c7654061987b41dfda858491acfab64861e3301e95fc159d9e0dd694d98b33b8247ee567e0785a64988c5900a5e8675d965f07e00796011e42997ca4c4b69227ca6a5c0ad730eb469aa87544c9d88f1f347943a7e4ee4a24c5b8932b3255f4413964ea37b2c87c8144855d44ab5db3ce71f51705e2e4d85724f780f8822fbf4bc3a3e4700aeb80d5062b36513c119dca646c4f0453b96df127e7be203e56251e304c86f6f272ccdb185dbd912ca031d3f76710977f4a2bcbdada6018c120b38b80005143174e02dc9df80e8d1d7c31230332a3882f10d583b317f00418d9dd787f34e68ff6a5fcd2bed1810366c2af4d84ddac57b8a33583080acfe8cb474b7ba201287c395eb06a311d8c367aedcaecb9870bfb7a172cdb037cd5daef2b4bcb9ed89b9437d64d08280041b7e41c34959ef22f5a9591c086c3b8e07a50a8a6aa218124492c897e361e1ccf6d340491c4933f8fc10e4c8994da5875a9c4b6711fd634d933fc3f4109ac5c5fef4b4689b319ecdb3162087e4868af91d1163b316ea50fe8f746647f781636cd11ba36cf8ac202a86c74e8cdad1ebe60836012382255cd290b8cb5f0719d3834c26e47469e235b919a031ce81935b0ae551d21dd6c45b755be86651d590861a43070f3d6a414f0d2ed7223c704eedc0c8cf36b8abfbffa930a3ea70e3ac82c3f91a3096b1cb41e634eb96dae0913b38c6cd8289db68854b79350412ad26002427165aa190900aded563a55cf6a657bfe2d4f0ba3989d7494fc17dcb2926e01400fbf539a0573b122f1f3af2f686f199bb83329c0cdf6029cb9c48d7cb0d5eeb15bdf08089e730288aaeb469985ea395cc06992486894e944635e7001f1833ee01d9312eed3d79d86da7597e6b82c97fd4ba6a87f85ccbf130097842479802839e268f89c1167fd51907e37b3f5a0dc7da6d2cf08065a68d75ed23b4c18d39edb222cd19912c8c181e501ce52fd439043ef428e13875cc1b2d5a5295601e57e1463b9147d8490d1670a22598f001825624eee2809da0b5e02fcdffe127e06e003a8bb089dea9cf0e0fa7c7c31b6fbc0f0fe9d49d68d868146cad910c1e9dfbdefef9aeb9878a62acb0e494e80dacf939b1e7193b042bb7d92c63f61f06e03728ad02517a1b0e37900939d8a1fdfcb553162175e52d4981812d67567f2e1952418953fc217b0f4541bd904b4c2447285aa26df9dd7ed09cfe498f85f8c2b570a560ec69a1c6d1905a4554bb7c70dbf984e34c580608266a9542ca5d73ce70eced3124b29a3ce52ab432568258dfdee926aca5fe94b5ef0c36e21aa9fa842adb5036b3db22ce2a2ababf1294da0bd3d164e325d7f3f21ab01e2be3200e465599aee8733108edd70a00a4c97a3af50280acc8c596d1dac25b70a7ec174147400ef303e5ac3f1e51bbbec467ff7a46daec1d9a8874074013f4b4159032647007ffb8900f92ed7a88c6cb87e1b358cbda798505e9820236b991edb7a1577c1fb93d7536e059a06e534b25a821b285396df34b73b73a47bca2609ddfbaec4da0ffbc81be59c38b0eae29dc699871ba19257123e6d409df3a93ebe487277feb0e362f232754431038b85cafaac8a36fcce05f0e0f3f44642682f85f27b2d1d4e8372266e6f7f7e746129f96d1085b922e68b93376aa1a8b3f3900f3fe70ae276175efa53f36fe8f20ee1ff183541139c0bccdc9ed5d6bf8b704457227b5388f65381df3581fbf1e8de9bd6b48cbbce3d332a2c45b8253fc7c3cc1c620f4675d24faae42d0e54a166df6d44a3b437da0f0b5c1533865b83dc1a92d7c181cafcd4f8f9fc5ab36da18f81124fb506576e29dc5ff317dcb57824496d3df9f70c2703fac289564e0425cbb1d8e4a69714da912ba5a1167ee13c5c597b0fa6587b47ab93297f8dbd34c11d9248a2e5e82fc9244e26899c2d9781f99f63edc7d4837ad0a2b07a2bc00251b6d73434896a7d282f89958bc0622e3f9ed10dc6fd209a6a9188ec8bab674f3c7ebb066df7323fc5c73ff9537abb08391e7560285c691d30a81f734ed32d034d3a64f8c385dd6043a5d709385c6d116c91f9a683b0f6128af9d0af482cae83f11d8de017a9408af6b9bdfe40895673feda7e15974b8b1f11c1f5bb3c60b6d085440bed380e36ec298ba396986ea6b5c34b8c7b68fc90ec54d2bd9e311296ccfd53edf1b57ad4272e44ae19a55485a3ce05a2c1ff7529382ba3261b1e5b2bb990640264dcefacb15870883b0bfa2e636cec0223080fece002e14df7a8b2c1ae448918bc691e383bbffdf4dc9ba2138019f27c2be0afbe339aaa0c1f84ce1289056f5eead9975398f23cd11fa763dad0f44f1d24361a28d03d7cc16e23855e94d7dafe46006481372a650ac139ce046864e7e1a19a9c52e58e37a343673c40697a6f4035ffdae03f54ae00a0d942e83edb891543a7fa8adda5fff4d54a54ccf02526174db511169911ad2172ea41922e429bd2804ac93b90d0b517abe110ac12f21ca409755be746312f4a9c9b81201519a29107a433c0229ac35b7fcb390ae49586165480b48a0157ac8ef4598381dc1aaf5e393021a070723f24db214bb53a0570d83dbe91226d672977c31f064b971781dd7f106db7013e2767237a27154ea537b41966e31cb046b8ccb787632b47318ec4408f5e30a32f3aeebb215ee72d210714db807bc40d2cbc236c800d99ad0370dd40c8dcf5018b5f81e93e001aafdc816cbf15a9f8ccf2a4caba2e9aaa80d4268d3a2fc218fa22f13544b8f2a37243aa9536d3102ad3a7a9acfa39539919d5d3fc32893b6e01aca940bba98a4e7e12718f6c755d73bec071bdfe8e7232c1eb625b85c17bad47a736d50ed3efa1e0c9ed16f1bd26cf9553d65cede6e640547866ac5a46a3eaab499097e3e91f2ea6692951076b175db849c0dcce3508bf31b79f9dcead1de0b1d49f939770820e7775f4e08860cf801060f483bc2573a006074bfe9b25a9cd4f0991e10cb032754a8b60978007c13a9210bca03f9748c85051581f299d34fd1d303e396065fdb539083be7c798924285a68a5e0c33510848db4272b39898ac49190cc60a732dcb68629627d424813648826c999c550149843af62487211d5036b9f145a79edbc1f06bb9e05ebc664f4a4f476124e830b6fb19b67e2818a7e76d792bb8f99a397f1aae58c49c1345681ac4eb683ef703bb3dde85c0608be3ec9cb59409628fe2da025e03d6313ef5d97e5eeaac99fe9ab4344a9b6e0158a0a59e9c607a54b84b8e91a5fbe4003f89da405bac357193a97d349fcd9110928604c742d283019e18aaefdf435619f8018bae112ae9e09b196a711908b75f6adcf0c65b27793da6ac17aa0588fcc435007546841b08dc1fd04fcc8c3513e3a8e95c2a091859d8aa16c92852ece7f62fa315c35366106a9ea5beefc8402b762e2f17c0d64866799ccd3280d931ecd097505b0d87959787722d65f86606b497273fce0d486c3f0115d84648b960eae52d51038f039202661093dc0e0eebce65fbdac8c8d3a203e366a808bf79736e148fc06983e2756f30aa302dadd8cfd7f82177262c2d6555279f8ad6dc95df0be7bf9126b6bda2530aae0b8fcfb96555f10442d3fb166ef50fb44f80f15abbcad582efd0b466d725181507ea2656fc3b1a7cb311adcce9c5814647b2bb5112ee969b13a222b0b2c1a37319e01244d3b6c3146b1a901cdeb0954d1d07563f94c503091deb5130ac0c274d99422a13eecffe738d6ea982aaa5b56f40af822cf978a1f75b4ecaba97d00f882cd2047b1bea7fe9a96661a2696b502691a587d12b07dd8674043fd21e26af7cb42ff304d213a32de0b68c24e5444bc8c30902656f172a70d564da0717ba1fce59008c4f5c425907e8a7c5e30aff583966769cb9c7703f09f8228f6bfaa975e329334f8f6e8cb4a65b28267ecfe1ffd4e3057a5acd8cc1b4853c2123b81f6c473b802842338729aca96693bd31d4b3d2281fe69992ca89a5f87973803359016bc8cf5994c02d1a467728527336ce7da7686cf679fbdbd1f9678bd4cf23b44b88ad0ad7d564a2e89b50c0244cf6fe909fa311aceb5d1255572119818a0e1d00d895a3305d7d081b6c842a25f1d38d62e18cb0f77a1cca6c6768217c12e9e0322ac31784a10ef8b16215bffd6b66040c4b27c8408ed853d5bf17fd8a2340f0a9a62b9b4ad917c85478dc9f542dc511a900537fa4ddec34b6242ecc4f46880c5dd9f918fb4aa371e392687bfc94cbbc732915f865317e522574de45f0154bb12b7ee8b0364a2016a00dfc8bda2a501e1b63f904b4a0069cbf29a34a613fea782e3897f24909de41d2435e2247796726016bd5c41c37b0e05cb05e7593f05a5bdc5aad071be3caa62c8074bf917189711f1f5ebd8c70ee23d3a5dac68ab2b42347de35a04e0f8013e19245594d2a6b2ab0caa35646bcc389ebd925c282323670de26c35a93e3f0c11817ab06e10a3d541ecbb1a4269ba39493a4698c86343f9c41a353d3b098b93c6cf011e2b61b8c10d62847e86556cb527813c6e1065b2cc231c77e5e89c18d93588149cd578cc5783809ba6bc7705e93cbaf1e8525c83c8a4842a72e437e66883389f7fe437f67987cfa08e6abbb98902610f7f06c45414fff4ecae5683e7342c57c637723f40c6a567dc30b192fd412318b815ea56493f3c7cca00620723ffb9208dce861426fb2db74d64e2a30276e4daffa80aef16577424129c187a85349f02b6f5ff112f25f9aa08e3db4929111d868e5bb8794ad27c71074a37f76333417f6c6db3a0f2888e088ef6f3df00b62d8020ed310b0a8c8ab96d9536f325bc7da838ac02f901dc4bf12f99823c0af292bb7635a0cba5e86a8280e526df1c145ddb5554d61d4e6221fe1f583a81234e0da93d976ecc0d72da360d3a5db9cbe46a4e49a6259091beab84ff2db8bb1d8b3aa11770277c19fedf2f1cbb8d7b6e4e45b38bf154bf2ce8ec6b7ee54a1114f58f56eae278e646d8c48d358c0f4e6893faada8cf82769e50f4632dc5096ef2709d0680c4c65ab743486516251c7c3c6e4d6ed1824e4b707cfa66cabef6a607bcf53ea87e9b10cfa1338254f719aae4ff67a1d0cb6788f6cc599b711d37e718fab41685b8312e98c2dc3fabf74a72d7dcdf4fab7a2f165b0088080be83b770eebaea48e2ce8688aa27988e011c13ea473f53e3219bfbc367a2eeb488ef2c2a18f5047c8fa1d19cad331a8973c087aaee676a0db010c4a797bbd28a5934279b954b3cc4537136138f93e7f28958b31f8611c92e7c92c04281e280c9b898224fb435a810d84ecc99036a036713bc42f97c18b9e85488ce42b090e32b61f7b65cd47b22fd6377d21edcb121e9880950c50741f25cf82681c4d6e31c8d54d7ad0285f88c1c233b4714e2ebba5d04ba78cc4cce5078df80a1ea5d265aa5ec3252556a23eb2a37209a0e5d5993266b46a8fec8420ce0854f5d1e4c71eddcdab17ae3b448830bee342f279f98c41812d8441335c9491f09e4eeaa00540e2e55beb5e1d2ea590f18f4a8d41f31934f246913e96151beb599b7c4f1e1f2e5cc90f3c9eff476e75cf0d378ebd371e40bb63fa5109c60fd90b1e605991efe3a15216e3023a9550437c009608fdde2c0005d70b886062115a9f1c0d886795f987cfb5a3f3b6d8edb7ba72aa1089995cc7678619cf67ce06f0e40ca55ceb896b13ae69a1e9f39dfd60e526164193c15b40705a662a36316e7e73c46cadfb1059475bb00778742651f4a0e7660f0eeafe5cf0103f93f45ebc5ffe30893526104651306489df9a7fea563a5c7ad86e979e09a8ce9c841e886262fc14d711b2cb9bf836e8a1a83bcf23dbbc7f96f97954759ee4898fa59f5b839e5db6b8a10075fe8f1e8f2ab26974aa0d5253a3df21695589e20983d92f5d80a263510e16c83140ab733e44c356235e32143512dec0e8eba0992e275dc4de60754e318b5a9a7b4f60a7f8adbaead2a500a5a7499b3b979d84fc32acf27a007e9eb89c407540cc3d01b71f79e0d9f12094c211febb89815878e682e12c212437acc05ad0baff8d5ac35e8dfa829898e8beeb071b0c0bfdaefe4bafe1bacb5fa282593e5c73e9836c4db0880839991b00222589252ce942ae8048e4abea3935696a21179795f00799dce098a513f824c125990428b2e08cc261d69cd36a52655c87b531b35dabff8be8d253924536d6beb98c69e630ea78187b0821a88b2d90c8d8e552c5fcfc97c83a0afa62a4a98f8e4738fbd343fab4580c91ab85897c03da4754532874f88bd5911410aecab4a59bc24908cdb029f85509e8aaaf1e05d38fb73f75ea1b94f212ea3ce8bab6ac2ad35be1d11dbb78d6252485b0fc3764bca78738b02cc791c13b4ec038d489db4b881f078db9767aa33faa1a262f002071640fa5e4f307ef6240284348fa1b1fdb09a3ab5e08ed21f46cdf985eed92d82a4d02a17c0712f8799552dd3acd0b6e6a4f8569d306fb1c5fad404b5be5d577851d9ac60b70a4383cf7e182c710d3b09ff150e22fe379402ea7db3333d1bf236ddf625e4c23e870961dd642c758ce54899581af4e39e269ff481c10aca82175aa6d2c368ba1fcfc2b27d9c9fb4a30a1a2de16a178db90f2297ed9116dbb529e9a75a5008f09e66cee2dbee323879fd78949f2aa0dda0a87dc18bb0d122956da2979035daa362cb8f5c2b3dbf4f35a5a4e25c367d7cf59027b58e6ad2087c6975890c0374e05a928129c2b0a46a002b1414b42a3363ae82a4f772a098341ae1d3ccb2ce5998294e69e8e45d4889da5a13d2920f56a5378112f674f3cd448a42b96810ec898e71d55c13f84bcd1a5a48092edf22046e20000c7d3c1b6a33859662483796b87499a5e38132a43d5f183f21c893a3e16e4033d8ccd6344573f2d8fe71638989fb67233a6980fb8f2d1eed211dffd9b9a6d2e76783659b79b80adeda3646164e82d4b7de0a8c138a31c932076a8c7da7a8daa9a0a5f6cc787f5fe08045d61072cbfb8a8662c9529830eb623735d5cf2098a950c4d4706eabe7053ae03a574157ef15caf7d5b1841135576a12e4da0015e22802f3a102ada8f69051f22326b2283fb61fbf24c71441610dce018eaf861e7398621f55a5ee03719a1ea56cb39a69f4482e0faaae51fe577b08c8bc1b50393d13a47130548e2bc74a46833e339f4450990e4735bc0c3734870e182f9b14fb5ca64e340e423d648cc828c541e4e18567eb5ff6084797add97929871ff06caca2333214860e98445b946fd5910e179a07d2b4f13140c287df1d064f1fcd4a58b333152886a8fdd2063c057cccc310b5881c52be58107aa02a32e1441d67ceaf617d7eaac322bd2e8b1d763417e5d7f92243121eaf753f9ebb682f41abdcce530c64855bfb1eeec7de51d84898d2908647cc4359574268ad600e87792f41874e9827dc90cf8dcbb8f8884e37d8658269d1c4c65db74e9f0fa4573f78cd5cd0d9bab3eb4e5ceb6a3350a4ce33b45af8410ca02050e2dee930b4cf341b497b3aaf9f76d4ccbbc70a0d8ede70a81f13d8720d24dffd8e687cc088647256e9790f5424b34321579c18eb5d211b6eefe90dc4df1877f71f1ce88d1669a6e210d4c9be60d1b911c5f54f47088a55017372abb6dce80cfc42ad63927d93c3bb8d5dd46fa6b8829685f03156cc89bde2f96e42511d7a5a937038802c31763fdaa4e11a0d4661423398b7e77b9c127c615a5e027b62e5ef54a48bd3e82d5dc099f40b3fab8404e2875375f05c604e4a489f31b0de829ee3023c1ceb7cd907d066cb505d1d4fed358e59e4c8d966657f28660c9e2739c6197424dd0cd637db2d5d54eda2d629ec2bcb6d945eb4373ec6661f4e7750e1efb99dbbafcb5ddd8b325c7caa8ebd4752364d1a3e296073c921b876c749a0ca6dd4d8b6ff482a6356a78a58654bee4865a8dca2431cc2c2a6e300508cc43953eb3fd800c7187014009e6f68c77d59812e9b827523e06df7080d89b130f28f8c7dc7801b84b803259e5b384abe7419b688da913cdd93041129c18e844b7752c519528cac13ee30bed5fe6c3b2aed0b21f2e24233e5eab1c7069a63bfd70db91676257b5bcb61ea46aa7e014926b4dded7816643750c48b21895bc92020bfcbd082a9041bf20a3d75730563fa84cfdfbf044bc2e101c4d0ce4e1b389770c384f24320ad4c94924081b1644d0929c8a2a2a9d9c840f5063d882cfec7fec3a80e3174470fbd45e59dee0dec0462c9e73be4f37b00a85e0a4c1745943ed69815a5980d4745db895365f063f92c166576391f91c7c31bad8af9764c2d633cf87b2fd166c8f264ec750c2af810894199c31a96a20e9ebbe159336795caf92a4341d17acb1c0c9f145ccfce0ccd4af05e073bab95b779c3b1203b48715a88c18048ca99cc90c9dc188e2835e6381c3f877a016066885b438c8fed7d76723c444eccc0190484e3df6a4162b29692923634fbdc14558fa3dc803f85906f2d4fbb2563d43e18029a6499c2907eae50bad9fef7237f589742377c4858019a425e280a2aba0622ba0fa31c7dd8fa667b0ecccd0da0665f3c2850d5e8fce05abce66413eebdf953dee519130c409a81d9c5e5eacee94debf64b4fc3a2c2ba40b3a9199826380900f9fd42417a95cf3cde33ee005e8b7226e00b9f0fcd79e9c262eef38003d09a6988c9038e360bcdf16a1c9964d464a047fb7b744b2544a4ff5e7ffcba8efea5b99a2a696cf36053ca8436756309e748b9525d8f3ecc3c908c8d1ba31dbf066961eb46dcae95c132fb054c9567ea1244ef26b9be4241cedc0db24fadb96b603132a8bd780c535e9521e9ca637c6a6816d9bcabc98b6f94a642d62d5a30b2292ad1e0b4f0020d3899600010381f202797100f861045350e7e0a0e5718b4a0c498df2841f48a19d2c4cdfc06b8eb2497f3176e4301548fb3a9269fdda30df143d7441545fc3e26670504a417a183e89ecd500abdfc26a9d5f6583074b5b264d41426fcdafb0972cda46e9f80f67992920126add91b7431e65c58d4ac81e729c8b03bc8babf5138f61b1d476e0662b85732dfee3c56673c54df250a02caafb0eca875f090f85ed7a3d32cf462fe57d484583fa0dbf4c1ecb53d60b3a2e6832a6c2a9f46be32cc9f8b339d9058aae7354924413ecf9f51ea3a987c55d0c30971cab3e23dc4a3d96c07225f501d784647c2909805234fe9d455e91abeee455b0090c6a6321712460233708fa6ba311dbaf4386eec8600cf1a26ef715dc037bee4ff65b231823f8c8e61eddc3a3e6b0161f34be4b7c49fecdb3101b5818c084c8203269fb2600ba41e0154c533cf330453ecc3d10845c04b6a1d5d1539b905f34112b5b5a08faf29a1bf610932dd6b7591a059de8d135e1e06ff683f565be9ef6c7a9b2b287d62bb898f4a21832453b9e7c00a40d2995f0fec9d143b83258ee944db1aefbe02e018acd9a139d42328448bd8e12a4cd82db0aeccda7dfa654f0cf3aa6fd505413e754fb2a3ec7fef7a04ec5a334024c207adb04ec79d404664c679e10fad8984e5a9961eb30e754055ee7dba4b105305d3d82720837078bc1f05eb8ae3119a71f25aa2d600c7340e186b09b9efb1a1e5581565c1a732d49c4b3965e3abc5728ffb4d791c7f9e27141b657409f1da3500ccf423763d305a712422fc92bbfe4e920023ac9b213f51713d201dea3ba620847d8f3ab3110f8c5f011f726cbf30b1755bcfd875e2e56223f21ac51a943507ac3683b0f9fd79dc67cc2d6cb23a25da2a57c8ae7a4e765963ab6dff89c241da0a4b3825ca08b0516c84475727c264da45d2fbdd45146777d2d4ab909bc753d45f63f76b6170ffe3e8e91450af043691a82fda7b42b3104707c6f1bb50bbce6c2e62e34108062d416422014d46ee4ffc0671968584fc9b76863a507d5222f124259e87fd2b49e8493e98989fa58e17bf25a82b2c81b583c27cefa8b8c275e87efa0c718cf2824a0bc768ea57db43290724682ef23b396ad78d4f44938dc82269022b73b28d73b9b757c841e52c4f2a4490cd18ff2abd3b096c32947ba36e464235fb76c94bf2bd909d17abc44819b48afd7c06c998821fb16ae8bcac71c789829b16d4d4c2486f6aea18fc6adf328f4d318f78984982228d25b8ddeab6506150f1a3918537ca0619502ba1830b6a8f70fabbe003361852b358fd66a433cf3f1b103eee4b4484b042d126f3502f27dcae467e884628dfb84189ee3e76c4e9e4f7ce0e11528fea882d0a71657b1b3e7d63f49213dc98a8bb2416d1898f4a06c816808295ba5f556c77cf48ee74b02b385860758405cbe63abaa1781270991d02054186fd261c24f93301e2b41fd93ffa56a536be71b3671729525c9b121abdfc161691192960478c03a1c5e62e9e73620d443d5844432cae4fa4caa346bd05452b9e7bc3e0e8e645c9390bfc870a4dc69aa1c25293bec5761a1341990388641fd30973fcc5a338077dd8ae8686cb5f03a37a81b11cb43d0b909708a3c0266baee4021279acabbc1a736ea20b30b26b73e458db4838ecaad0d485a59c1093fde98a1443eb9a1d1289f0f58162c26b8ee0f66e7659984e2627dbc4f10bf444319ebfb59574aaf362306550e7b48dbd351c2552b40248fa5fe7532a7f1520ca1b0b032c7421a72c02849752c5429fe0b3c41b40c0471ecfe1694bd128d19b73378ded9039e68e429ab121278cef67495a86d4a53b7bcae90bd6d692c182948936aaf64354e5ede46a3bcb26f3f7d7d7c1326c78e4dc0041ce7139ba942bf9a4edae22fb35575a6d46da0df761c69dba99136b709e85cfc259f730eb665cfcbd7e37a46ed8a06fdf4de816c2d2cc7b3abba8ae1cb3e7892dfccacc5db132ce86c8891bf9ee8fe1b8c54979c75b0d858d6ec58628d4ae32b5fb81175e56766e77405d3bad11473c2c737287ddf5e3793e5dc2eb5632d5b166e48ff8f2a50d8664a474b669a5fe2e2877858c6846bd1603696dffa51ef8249407fb69914ae6dda57ad84eca0cba00e63b512ede09036b703ea760cc7ec171d44b41383a78c90aa9fe0b396aee04f4f5bdece127eefa3cedc9d2570d01468ed4e5b117df9a24759c0536d88bddfe134fe6e820e49178842738eb62c81ef9b1a08e9c4478960a6b11aeceadcc98f73d259f8052612ee762ed3e00087886af51a8ab35f2b18c9f53a03225fe82989206559f2858aad52120191404a223c0e95eb81f3cfac84cb9e75adac62c96efbd826d41866533bf89a86e7ece3aaf232d6703022ea7bad7bc7a354d0ea29490a5ae5916a5e99a695591214784b7bec0dd8a8a008a3b7637fddd4fa544ba48bb890c928856c8e2c4b492a2f3f01f331e8eb248661276c2cc636ecadea654d27cfd2ee4d416abe03677a524d4966847d6742e2af3975455f92b158ae30f800710e064611b93814a327f3433809657c28522418a1b1f12c0d30ecb1a5f2b47d406e11469496314042fdb98005109153a0181c1921de515001b8a1690a25b0d62971a2f499ab9307a29ba73aaea04e4049cb0c323001ebb9d0a64907752c2c556387210f49f25151a7de4bc8f1ef87f3e937b5913fa1a86c5924ff16888ceaf6d99b73cb0fd66078e2dca0d6d8dabee74dc1fa9d12cbb9e145fee216959792bb4e36b5781db844a8ccdbe95a9b03fb886c0f3fbb5696180bdab4a0dcfd1d04b8cd6c5709136500c63d1eee6365a2c9445e619958a08967708ec6acf4165e0b14d31e21fa2b53b4a43f5ec8d8291320e69b12cdeb622bec66133a34c66e42aab736725f75c4303cf219544e43cd89f10c683b8ce10f106d319725479d23cb2610d615732d323643a55cbdb49695fd38cf63da13e72e9731c529963d9b0633663e406115239f2b889bd31093aa64e672d3e7a902f18e586d930fb3b1900c35c03f4fe6d7cef92a70f0e4bb833b60d1f1e7eaf8b9d887a4d947ce5ad280dd1ef376795ee8a36faba506d2474dd3b7d493be58ec9a802242a08dc6ee3afbb0c88974c6a96c150ac2d046dd24e5540e926ff79d0ea77ce2124143032c808786a61a04888c6be47e322b5e732ccba44fe670bb8b4fff249fcc630868cfc2f6b6b3f1a57b75f2cd8e4e980a8830472e88aa5763668f85570510d00af6eb63221c73701e0d753f44c8103470fe6907373137d9b0a4bdc3e1f51702245cf48ce547d4953cac76fff310861fc1a8d080d38d88c3d61af09f2ae694e1e2de5ab8a5e8fd57d77dac79b7cf388ca2685dfea1c8f0afb7046b6ada5cbfa7c23a093559f0d701c9ef61fb07ae13201cd3edf01c686c7fb543e06440c1f84785500cbe146a1cf3254dda5842a96620a9b2688798f0189d17cec274ac5cd352be6222873103c80715433573c0e59f052f45f7e154ed5cb5de2dde678f67f2f4fa111803400242c1dbc237023fec1a647a619a01c8c437a5181166886ea6126befcfd3a469764e44dd9f88bc971fe5c4a36fe3b81a2a81ac0a41574c7cb685888f589b3c5c525c8efeb3f485a9713430ce8a5906d4d153c3b2ede75fe159400e9b9c56c541ca6982080b65412559b0f2ba70c644fe2ff900aae64978b3a05a1c891a2b55c7a1dcef02aeef374aca70371e597dafd3c22d79a2227ab42dd7f78b9e2b40f38d11174f8b9b991ac5cfbd38408bf4349470655eaa2cfd69773da11861acdc2d8c2ea2ce36ef45de5650a975a2bc90b311dcd156e0e600af2955f581a1bb1ec90a4abadc6d6742b5ee275feaefd7449596e1564422de0baa8c1a854e05b8454f01f464cd001dd8ce36c2ab70676877fb6e28bc700dba0fa3eb94fb01c558ff358204a6d9a813baf724b215d6bf0c7244f5e4f9f2dc151de7b81e9a48e978a099d3814da8bdc89fcaafafeb1afc031ea8e850ad44afd7d047bf9dfabc62e7139653b97845ac278ecc44f2f0a7d7c59485471b7d4c6818a06e9c715ef7265a12025b30b97450af55d570882b1352c1a23b8ab25fbf3446b1b7258a401ad8a789afbdd4246bc0503d629dcdffb61d36a87e2b56d20a44dfe0717926dc922c4547b00dfdf222c824169db78c7bad2174da03b567e86700b8790302d110fd27228105e7bc98ce76441bf67c45151bc35344d2ae89a321eaaaeb0d0975bf517c667894f29919c17171d98ee4ae293d2fc08a93edc8b2ce562fab901126c13771ed2ad6687c91bc6322316f485abbaa7d06572b22f8590b56298b65ae545274296b17e4d76cf52f4c2c68ca28a141c53e82bd3570cb9cf6ba0b9cfe770b5de63374535d1ce12618e0d4fdbb2067078d33c45684d43209d066defb44cdcb6dde89f4d9676808d95a6a01e7969796ae5fd6c68d26a156a0e415e5029b2bfd77250189b7b84183069a1d42fdbcb1759baa49700d9a8c9462a595e34315ebf03458910b7c3be09452bb4972375af9d50eb4be886598b15a38a84eecc52a7407a3908089475960f37144dcd8f02bd377c38037930e8005947d4431e0e747ee91aa0760d465c17c7163ea94e77c3fef35fd8ac6a099c0d1dab712c69798c55c39e5a66eacb62546fb60dcda0a6f6ea113153bc127d186e03edb0623d12be3fcb50b7d861daeee39fb498dbd179225b451b9ebea99f9aaa649d59e816710fb7ad86ad8064cc61976a711ecaeedc97c65c05200c1835d2ee7ec1479f4a265caad280f7304bc20e7d89073ec4bfc1f789ad4bdc138a12c0959169c1698119b357bd030094194bdccef303061026e833f01655437087bd4accdb8fcb7580a3951ee052d11ece56c3e245f8780ed22ac7fc9a82b837b37c113a6bb3c316bd8fb49ed24aa326e3a8f9c3b93b61aeec6e2aa51a7bd65f482c8cd349b4e3ab387ed684f16d873b2ba39424f5e22f99e736fb64487000cac56da9415c9edd5091befc624dee00fc197f7bc9efeddeab4e7100ef0cb73df42f97f954689053366dd8e070992d15856a16ee4727bb515cf5148e485236cb111b77311b5404aa206231ca4d8e6b8733cd44e464a4eed9e16a5d9a3c51ecab29fc1e0e33000ca6782a0417278e2b3653fbe16c491242f32be3f77822501e396a428474ed1a3f29afb8a94b644bc4f64b7b4a81ccae38857caa949aae2c116c50e29039289950cc4bb7f9cfec3ed47403b6b822cf04119162810959fd856855c80a9e1f6bc195ba4e4ea5a2794ede2d68be36e9e4418ce37b472ba8f944e61ee2f7f3c80607b55915d1ea856665f3bbfa124ebb78d9d5315e843df34c6b482a290984420b532068bea8bb2294388886f7fe1229ad9a14739858f0bb147d95233b2217bebbba1fb02760f428b6a851fd725a8a4864402e2229105fb8224995a8a3ba90851bb00d78017f049da915363258be204d8e4bad5fab960562c69d488e4f2d3b42fd510916f2773fbfd81e6e2030e14379913f3e5e63422f7faec9c639a7e510d53a987126445f740a22716e84aaa1a40ab6b59ab7e82857bb4116cc906e63219f4c49e165e7084900890a3f7498264d1bc10236ec8a0f5f5018591ab3dfc79d840d2285c355c8e30dba08b683f56b8412cc08bbc7f45ce5288b99766d20fd90f0ff04fa83b5282af1ef91b7b9010a606e604623a4e07c109b671bc4a09cb48d6676a55e068080f8193d1d4746cc20b388fe7306491c0188e9b0181c801e62a408f599c11b402758a1f708f2e34f8a4a2987f89b8f9691a90f104ca95f55db87441d53ba2741afe616fee6096ff288339868d09700db087142c69c563966d625b5e5f1f0d432c0ae134983404ff2469bdb119034e8f38c46a00c560e8f1ce47d80b3d0ae3927798afca10c9156e7211facacee0aa6060195e0dbf38243b85cf0dd07eac10f4ac897b04cab51503d616bdd75fe4e9468aed87c9d5786edce899a218c7e869e4969e11cdd0f63a7fc27db8e3b5c72e51da6bab16e46dbb60408216d9b6395aa189354fb52d5ea63933bdbddf7d99edfe7cab599866105798c4f3a9cf4faad54afa8475620722ef02119a9f5839522889f16ca743fc26e18c4ad956eb9b1d4816167df889fd6f61523e1c9a9018b208b6523816ab19e6dc39d73042c9f613baa3292a323cbd4eb055f0a6750a9e32445bc06499f32637fbfea2c31083a083aefcdfb983c9baa09cf98a36fbdcb341d82b0b1560d343598a471852c592721976cffa629a548f3daada23a610162c43f68b96211a333c1033c0607d99c762b550e773a94fb59ce94883b628fefdbab0c1f868f185d8524d5b1995e5ede248ff99d92b29d56c5cf94a4f48033e1588b5159e2286cb7c07cdacb0bc4fb712b213d68aa91cc182b45bfa57d96c7c494de11f7182ab5cd69f61d1ea6156a13c10c6a57cb5ec033db421c5e2037745f1f971c23592d02e1d1c39749dd6747d391211fe9bb11df5962e4ca47cb8802b0ca0408d5f8fc521df9770638c0ecfdd1cb918d25865e3363110f15dee3cf5d5556dba1144467a90f63adc58ddc47a6738931e336b04c13b9ba7e9653cba7771a31a43490e6e5aba42f2cc947c62585be548e106a2a3b60fa42cdfee59e261affa5312edec1a7f23788dc1ddf4880ca510ba9ff7d7a6a2a8a9505401c08799a6f0d1cab916bd865ae03f7898a4258f37a601a3e58e8e8726b96c1c0d30fe61e425b14ecdd899d62af6f08ff9a7f2b8c7a1969d6aea837bafcaa3e504967df9a317c888f38f1d8a5d85709ad78788b3929671a1c37239d579828a19e49a4291b175f59d64677ace0485049747fb00b2e88795e87009c395432492f400d1d7c57b7d984e13c9871bf67e4c1e9924509614c3f21aafcb0d0513d45c2371e4610d2a8411db94d1f07da3ae2102cd7ac99aa06fc047f84c1779fab726fdefa9e1803d26e3c5f390ae610182dc954b21b9229bd4d3625de3b7954808ed3a2bfe9b893c4d18a040f413bd6a331b5116f2683c1a3b985e28d82a26809aecd0667d8357811fdedfd22a341580c2687e2d9cf5522c8921e4ddfad00942d638f6da17a1f4f51e0091a4292b619a49fc20d83fa9cdbfc33c8d18e0b5df3a19f4ccb4182095dabe890f3aaf6f95463997bce607f9abde62162ab867a26a9226eae05e5dbd8329cb05949cfba9bb03f30918ee3bcb4d7d75d601c4652952ee71951ff5b508f2f979044d645631f7c953976fec0319e944a60521f4abc82ab5aa8771e8146a8a400dfbe66d0a949ead5581853b244be70a4ebb21b286c13476a39e546f1f8177deb020170ea81b44e1e54972c7e02e80eb819fd3f6332873c6edc9202147f7a448507a05f0cf7a05062c9744d4c0b3a985a797e9337466dec557a7fcbe52c2228644dd23a6a33cfaa3d07ef9d785109223936ab82aa7d689828bb679793428a0ea897ec8ca22771d95dd6f27266df286f97052b872705bf8dab4ae32967896c4d10f1a9e9d6527b1202a8ccf3fb0ad61c241fe4c388fc5c397952ed5a2717bd1e69b2df37b91f7cbaa9c614eeb953f83c04033a2ff1ff5586ba583616b7ef1300c06eed66b1ddcdac19bc7952eb86828e75b5c31546957a1889fd0dfaef4b179ad810541ad9c3604bdf0b736d850ceb8e25762f9d8f9653a1fde15a60302cefba103e6faddcd92633038623ed9f97b200612c4b2d14cab1e9c40f89c62af1ea6987e63f185270ee51d8f1798ad7bf8e0a9abc486f72af41e3c0a6b15c374a7b180f81f0dd2af9f83c0279256003e407b3094045f44bb35ff1a4118206e046f111abe76c8e97eb374e61d2b1fae022d18fbe80ea0f7aea986c4dea49243c2814c2ac2bda77547335973525e4d87ade040b85647c260c4141b6d151d2698d2b32403da0f3d8db9d37a5a0149ba630e579dfa175087c871760f21b63e3d175c503bccdd7931a8506d3e8bfc7aef4455d616ab43eb4ca5af95ddce9ab990d91181d12dc921c4bfe3b97a97ebc0e86a9b639559ef449b612480548b7a94b648be6fe82b7ac9aebf175292143729a7182549817371b6006ca390e15c16d98c334807fd9462862c5a4b47e2d73b4443c60c901bb0db09cfddc409619269a41d5fec037aaeea43d6cf434ad40fe088175d3f1c58d8ed07324e0499810bafb82780ea67fae113a221b601e3f6bc1ca68fcc1c8806139603902c96d302f132e0b0ef6cdd5ec42f1318a439816c607bae4dde873ea3b6db1d5bb9fe0df3b7f19d9a8b7370f74f614aabc418c12edbebd85347c76eba211407e211e5f54a1fb01e7a1dca37a0bbcbcffee4ab82513bcee48e0500060ede555c10577754043498680a0afa6a7baba66b12fa09f2bf712002882bbc05da551c981b839e9de3a57bba2d4f031e661ae81ac921430fb310abc438d0f0b1b101c667150870a4eae1124248ff78eed633278be4551b2815c42a11969061ade5633b8e18ba49bfa195df06047fa583674020457d0811303d529f400685684d7b9d7a4b7d102fd75b1d1ac98bd6fb0acf7ab4c852382aa2c05f03ac2b7747963c102de0ad2c31d97aba132ac049c6a1cd2c258e8db14947c47c787f840c77917ab3c4f20e11c2d4283ba749a28854db2e6a33d822aca7c5fdda7f6cb3ed1b4b0cba2332ad34e9de71159620b0c569639374b00fe76b39473539b0870ddd2448c3ffd10621c85dd064f439005f31bf2da45d064d432211cb7ef529c58b246a3c179d3f624c9b197283ce74342c069bf51c9fe9f315b8954cdce18f672066585cbb4d44322e343b3b48b030267cc4e0ac536d14481ab19fb16f547a479e3032cf23b72d80e68b30438ae2fedc83630a5e425184e1646c6885d88976cb264179d06f1235cee0c1b3cbe76d8cb57d0efedc14009b0b736f66f127e1e46b8d64ddc5b57999d9ab0a290a9c004f66f3d7bb91503c51d620c1b4618a1623d83a930a11e28081f93b57dcc8c7446ea81750b0f2e6a4b0bb950700bf1b163b295c4e5b172e49ae00e547263d91718fea1bd9b841377db75ecdbc372bbd3fa7818b26f7a0c0fad82d2045aed879d3ce0f4b0d8df110b9b98d6abcecbda223bb0baef38df5baabc048b4c771fd54589635c01edc757574afef8245e1ca111cc09f13d45d175c819527ab2fe0b53cc6483bbc297ec23a63d2f27ae97c0551b403fb0c3545e35e5ed8eb3bece5398382d3e3390add717941d23bc0ea3b2958bf8de7bf2a8b12f8f831b5ea531cf17e4980a86292aa93b7c590bffbddcdbce33f0e050e50da0d7bc28fcb63fe3e21d43f7a02f5eba9514f13fd1cc8f43e08236f987df191203f82f448c647f9bbee8b199655d5d12f51e145cad353cf4d50b9da010cce4279bb34e6c14f7781e039aca5794f22f5a480124461db7d0804d11b1dbbda14a3f348267757bc7a8c821a7e6c143191e2c730d34218bb540201b751a8758a07ff00361d431286cff7e6f78dc9955badd24e24e3b4908aa691f39e2b40a61b407877044825b916db7b2021946bff2f4a1f4f150e5c8da8d4f20457a0d381c2466a9bd8e7718c48a6a2f3efd3ce92e5922834353c7b660d1da002bc21bfad11f97835f882a5adf49bdd2a1289b09f182281b2ac03fc98bcda6dadfb4c548f3aa52f22118794c178e554470405d89b2799a4c58310a704f7ceb18302d47cd8361f28488c74b0e36e134131b72a2e7a574d1e8c7ebb4ce7c09297547db0af92ccbd33e43649ea59ef6743adc8b6a5cf1f53f9d15c7c375638c08a37681ba650fdbd4a025d238d1f338b1fb7aad6a70eb0a309c9ca5aedc015e613a1d50f89a1cdb41c26af43e68f68fbc7f34a9e3fb74fe7aa670e19367e39b56ab173bfd867126b158822d94c8af8336d63faf19c8d03663db66808b54e0322f9a84ad93cc48b6f85ce2391af10f22de32b6efefe120b1813e6a96a1e06ea78c9105d58e3bac38a40717c0dab099c0afc2039a27798b4cf6779a777c01ca94c947744f09ae76b2eb3458287d8d2b8122e706a0b9372b4f3ac0b043a49614e3d42ca04bf281adeacd85b055e8d8266b48389eb5fed5d4c4e31ce89bbf63c8abc2d9d1f094a554980eaaaf7cefadfc9b15b0caa60736f6593196b3b1e30942410d9a17935dbd9dda3dacee72f5c0c70352bd0877fbbe7fd691c501e8c9a1a09474539ae93fe1cc2266f0cab40c8f801c644e2981e6da01b2cb8348bff2cdd658d4395e8af07a2716010929bb719c5eaeb18796f1c3c0c6aa01fc7a7f19b0f5fe5ba19fe34b3563ce4b11feea83c033dc8bc10560ba270781d02ea1f4a9068402b266368ce2303208ec95437c7045fe8a5a3bcc3f902657adee91c019d1967962ad5643da33d8e31972774d9900ba29c8c6191fab38942e7858b7e690829acae1a1e89bc11cc7172cdc04fe44574bd0c459686d49bfe83afcec01fc6388ff16910a282daf7879d0a84f9e01c564c55f9520e188897b0e9ca57c815f253b958bffd4ed9788feebc55f27556e048161f05fa843d087f1a0024d34ad42e494207dcf661b900b944923802f2e9f019b3e2bb807e36f8b690f9831ebddbc04c3b2e58c0dc3ead864f38e8fa745a70466634967b27498284dc141f95df9cafe08017d63cc3ee11fdf0500f72f057b0902b907232396c83c17a7b1fecb3981162b97b8cee2febd33345f76c2b96c846fffe1f76a7a7944022eb0fed70422e33bcf13ff01ebe5da899d2cf9b41753d69e5d0cad17f4c53100027a4afa2440f149ae908c76cc39b956d083987e0f2f2d6c1fb50631a06bf4c1f7492a0643b536e1856301013ae0ddbd8ee597dc14c73992d6c1d06f0fc74c3ff9d730df46278ced893e3418547e477c3edd1c7c738cc2704da1b647b72af8d040a353c625ba5aaa94427ba705c100ebca704408a5318054c3172f00bc14302a54d6c35a07ca49e8791c6f81518c92ae3edf6c9735e940b638c6c2eb0fc56ad642a3d518f7fcf690ab9b42b98bcdec90abc58531474b082c53cc16405009d7c2d68816546e48b97dfa062b85ff33f4d55d89f13ccb1e25b47da70021362a9444767513c4c31629945306311d7774949a602e0cf4355e90c9ec480695db0502b115f6f32d955ba38f4bd46ba411055c5e9351bf66088f353b045147cc066baf3e06555585dc563951101a06ffb5a2efd952ab9329c10861c6a20963b80585a5565d40360da8320c92868324e344e030271780d25279d26a25de688645f971c5a2da944c5a599e5d26c009af012c4d71642e30e2e773835a2a61b74a742548a7b225a3e1d3ab09cb58c0698c1c10e05912b04dd14f46430f2640c9b883679aeda8f04a33f2182692dd7b4dfedf1f2c1a76256404e44acff190888e350e5fca61e77debc4458db6aa7074e7cde92ef4a826dc0fa169b08c4d92154ba6f2f12e7ad51a9c48cfb29493ae586b639ffdda2586acbeccbf015f7a28c992d59737b94c2600313a84ed166fa88ae58250e1d8fbd87a8de4af5f57c01aff6835ecb0a3bd3db0cf8049ea8302c778916ae06a95f1e7c7433fb4233758b944550ec417828470e6784711a484c58b67f251cb5abae41ca58504f45d231f8f0f5ae2b9887338c7a58c246e3fba78b4687c26d222a63732f15e824c73e8aad8044213da0562696d1f217cd0092bf5caf100a452880284aac8922dbaf0166d6bf4dec2b9008ace2f5acf6662b16edabb39fbb02590102f51dc79c06c71e9a3f6b2a26cc2a7cc53fe8f534147240b9355d5aaae6065d0c5c02c2b91dd080ee01b0aeb16fcd5ba8b64c85da1910f06fdb867813461195409635b36d3d3c168bcc65e2d8f9e0f7f7a47131eee64a894bcaf4d36b6310e3c5770b307f51e6b4d82ecd2c03407bf2e51461451a89bb5b9ead142f2e608be3607d317c325207003be3e30ba0c0ee8c3f4ad9ae359c4bd6fc161c73e3d8b69ba785a7c39cdb0e2ea93b018806541de7a0d50b9645003170210833cb56355fbaf4283a866681f2162a749a03173245ce8e7a25ed938b1b4d5cf9009beeb0e4f9d869a8682fb7fba4f5831041bc2c3cea9ecdef396c61e9736cde8fb1fc00805c2140b2ea5bf3411a5633428bda219181c3cb974fc782ea4a2f1486d8ac2b287c0bbb83e74d513276489c8fbc29cbe3b15f928b6474baccc8b711079c3a28cbdd8a53e9fc86449ca68e914e78a616402e98137ddf191265ce4e26b958546925c36c9d8b2a6c2c1727e47ac7842cda8c978e7b0039136772db8da7f1cc9db4943a3f7240293ac3c9433eba90aaf7bec8030396408b858c43a9768bd97262ddcb520bf48fb421d27b1353e0112065a41953ebc46e1505629d61ca024317679a0e7f9c1c741656290e149a3e9248d89030dc147d30f146af2565600f47bf3144cab660166768865cec72a3fd354bc76db4ed32f192656323d3573214e84cdf9a4737d406149448c85062a1243d0458ae21ba3600ed466b21e79907caeb26145cae5e3feb43755925a92eab39c1d5609325b6f3d0b6abc4e84056e8a1b2afc674911e3e5e65d58b7f60394841e511d76cb47544cef8879c1fd7d324a6bf6ff73d827d9f04b135a4f0bb408abcd1d752bfe8eb9947f48b16e01794e3a0ef999a4ea53b24934af4ee6609129ca3087e61a45e9d82a8b4ca182330f328d7241598a2c6b076f8af679bcc8d524901d43c0c8a38dcd3e2b385c0561cb14d8f4b5ef473fc086bc996900f36a279548adf0012174b7d04d27b217b121693e8717e950174f8d0fd2887e50dcb03779343805c071b87966b3372ddc266edffd988cb5f07eb97d486ca0eb9539f84397406083512fb20013e8a241cf7a087b228b0251405bfb71cfcbae32811d1e366a4f512336d627020b5bff6a82e87122a2fd3e3025c4c0e8e414d5a527267a330af649cf2475822064032c6483978a24f8518ec3e7feca64d740ea8a9fe359044f2d86247994d49e652eef690be2bc9f58b8953be3b0c904a2d98c3df30e2a7a88de62673c67f494ca35560e02ea5ce3679b83715488acd06d200601e78247356e56babb3c33ff865f180e34dea1b1ceba972cd8f3cd0858b22c58a7c55b6b4935117690f43c9c5a8f820079a8252d70b0d4fead1a67cd0ac00884c2e204b52664c8fa183f493ba81e2cdd14776c847425d59e57b5bdeb7ac5bc4241a79ffd7d8d677cb6004a641492717da4bdf707e8bb320231413dcc3c3d6b7df6b08c53d86b2a88cea65d039f7d565b4a89697b8225a623437e5f8da8c105ead1603d65e9c669fa09357a97dbe4f6809d3c9a70671f3e72372d8fc91431d55751620da4c8dcde34c05fa6c8a03061ce7718d4682b87518c77104ba5f7c95a9d5141c563e04983697e69f768f97505bc924a6001ee0dcfe6c3e1b736547b27faf0f2e9a858e0b4e7b9a8110372246b0c2304081ef56606110b27f2b063c96c6bd9d4879dc80c67abc0f0d8a3d0c03a0afa478a6f2703b0f80f864c48b47d7f2653e92407741bbb28783158554357ba3e5a28bde4d555a178d62da553587d610fea7221086f69c6f3da50f99f9ce3a0afb96ff7c7d027fbac51952364ea740f1622ffc94530526754b9ec970a5318987dc41ad6416c91973de2b2ed8e899d933aa34667982b342f59b3d8227007c449e00c72001ae38ca1c62fc417b6c34eb5317dcb0f1bf19fdfd07c3e64db040b81b2b12ee863f059e6d1b59c887b322d802ac5bca23a42a7d037c3c0bf4b46d100cfa187cca49ee2dcba97af1de532cce7b05642735317cc52013b517d5a50d5d7cc90045394c8af2ed7c8c492c6ca5a31dfe43614eb10bcb98a3568e7b2ba0c6e6cb36d1a1c940587273033ecf2d251e0e5441e5c3471948f21cbdd8d8a88e33479654f731523a22125ccede6eea38bd97e9ca618940a0a403459aaddb8fbc3a5a2618e7d09310a30218edad7050050add6076d661d982628699701c99988b27f8ab18b951a75c93b9a32eb82a5ce5d82f7769968d7a51c3981f71b7907820504d81785306dc8b4b9e694920ef425129ae710cbeb3aecd549e56cbe16d883fe44b3bf9845c253d91d8fd20280ad9215ceb4651004fb136163243319e9d842291c8439265ba9fdd3b7a610a7142b3e6a46312075d73b73c57269807ba2512a81477b4e8380459239dbac92696be5c7610ac8b8aa4773b94bb26782a2677a012acdbae4904b954bc2ec03a4d81fc68eaf91d8cad2c3af82b4391c203b2d1b628bed45cbe2298e2cf2af835a1f54321a6255b3604ee748826998883c4c76ec63f04b18d73529449e1a9b2f479f090275a7226d9310553dad6f4f5781bbcff713a0ce64999bb3da13df581919c0830edadf5f47e985c3145e22c8257a01582253f3e380848db00dc13116df0aa2178915e0a015f868230d3fff388f45ab35ef1e6a34497fdddc97107bfad7ee0567369d73456d8592b152899ee24f7362506d8be1fe8465f0c26c90cb42c403062aa181a924db9d10060aa7ae9c13fc5d4091ebd6fd38e78d0bdc0fd4a76eb6182a3ea8e6b9c72ce0af8dbc5a08dafbd3664990774d478f027b226dc53c1fc824a80d469d348a1f95d27502d31c96088087f804d379ef25aa9c609d7fe7301e00af8b2b3ce8c20de77dd81012fed4f2649bf33dd4798871f8e2f5ea11f05cb6ca1dec73ef316b43ba75173feba84c37208ea4567ed0fa9f50675a8f4626a745c5fb0ba2aa8f577a542bf398330971733a3bf88e15f7a83e016a81c9f529ddeef04bcc138490d3bca54aecdca2fddab7d78939c6a8818b2c6579dd635bc91c4d62b792d4cfdd95e253f51ff3f5cb775f7ad6e56cdcffc746a385d49865e9d6ecec5afc8e6a8895292c6541fb74a409fa4baca3032dc08f731001c41e281a34a34685c52367ae1099d90dc0837fa42cce2699981430f559c3716f09a1ac549c6f562a0d05cfc1762e68ef769cc6927563f25134999d57074205a039520a9b0b11033581e3da2e6ab70a50dc7bf747e6fa2ba2f4114edb62399827cce00f0304b24ef2a3dbab2f7d1086d14365a599b2325c9e08bf7d5561d9ee55a15c85bf40d8fc4ff8d68fb427a25b3fc4a5af4068339d6ae49c34b4efdf0c0374c82a12130b61edf4bc4356ffbe79c52491e67576f41c6e1212dcf1d4ef488dbd3270ede944f2b14e1951cee2dbb83161584fcbfd661aaba8f7dc18882d0600a00267428d2669b987ee9e416fbd87ac4f417ca0482f1170773d895d496c230ac70512b3b4e771193972f5bbe4cc3d7c9d7af9a174f093d91d8027c13a6ae0dcb174b75dbf334fe0927926dd42e5b99d7bba47b60324bc9b4ef85e71eb0014a407f04a1610a24043b1b97c4aa18180f3d0b50787c9812b9dff0f5efd364cea3a2722658024d22e49b9c521d16abb992931d1f6b0eaab15c318deb41ea9d84f1e0d6d0dac7e0e2fa9dafaf3cb617240efd277416e9038cedd686bdb55dee3f4c22d4c2c6ce2260efc1dbefd6d386d49a2f486fc91020b60f8110e46a5a9602651aaf9207e161c9591e1a1293c0eb9f7e60c7d695a8c04e24ca037620e091aca6f648498e9fcaa68e77aef0c10316910a5f88517c86e134718ff09f5bab2e89a1dd921b86d6ee465f225615ef0e58b36864a9f32a7fd2a343cf1d27822c3f0e9492f9007bde305acdab67ea9c02ff2089fad445bd0fa4719e9d8e4e9b4572c97da5ace29dc03c8b874f9ceb148bd6cb066e0c3c8994d5ed103ec34c5ff9b9a5a8927e746705337af56890369cd286433c059fff834a042417950d82510330f0f8f9468803937dc5c5241a6e1035d5067bc492aa53fb50ba3df43689b0151b099f87153d6333dd0010b148060917f92efa4b7d95a48303a4aee51390d1399191233ba51f54497005ba8a49dedcc36c95115e89e7aec21a40c8216d313fb445d4033e193cfd0f75075d06812a1b2597e2186a7965a4408ec01aeff02d9693092da3da352c53133ca891954a55940f23dc07bcaa13117bb8d13b67545ceadbfca1e2970e9ee6057274f908bb30c668baf6f9e40c83d13cbad5a1012998e6d3f9e0131bb6264f2b31af24c58047c9f299887e06078fcf9f9e84ce6fa2bd9ecc5d985ae0a11bab9dade94ac2e40438c366097a7e801a5b9f1a2b62a07680bd7aebd6df89e90f417cdbdea71352c8d4001f51732bd425cba7f4db38a9324c1cf4ed65a7679f48cc07dbf457aa6713965e1ada4a14ab55a6c87e4be48121af1a05cae342219c49e8af6bc2d101e11f8c63fec76b392d4a06c3f09406701f23e8428b8e3ba2cdc32fc7b434c191bf11cf641c096729047a781eec2dc17a3dd242d493f104181933e090b38b8e8c409834b935ea2b64eab671f050c914c28e8626d55b3d9f294c09d2a8a93518bfba3d0dd3b2c817e22e0c31d34db08d2142fa6501ba5f8993aa47c9eb0ac8aa4e6f1fcf7332853aad878ab5d80af44b73483638a56bf49ee4dd220512cc6a270c90274407f939ff64aaed26e1e55628821b1ea2746f2bee8ab534ba40c30273488d38890765ceb4fb10b1905dec42f457eb2d0282cb6184200c05a3c2ad25818741e8c3681d6797612a00f3e93d96d194b025f5900d4f388b028850e470582e41fdcfb08ca5f4d4a84d4fef70e49fe42e88c9f4ef735fc37bf0fb46288b8ac92fbd991eda3fb3b1f15dd127b63a98b2d671bc93742dc074e08b7e650bd489c09c1c2eb73aacc73b88fbd335cc371b321ee699a811c35e0512b9bd41eeb0e080d4ffa424597f904f21264f71461dacd9f79c88ade17958c7b4a6599c3942ebe1576bd653547284614e67af69390aaf18e36985812897aec8e48555e4e27ccc3462d1c7af4461a4328cf18e178799def3b89bba69aa25d120ed5dcf52efa8bc7ee9d21eebf7a52a9c90762a9b976a61f6cebcf26edb707802a060cdba74162fc318bb1eb0e82a62bbde0d6e54daa00ce598d643b396a1bb3788c2db258ad30834b4b624050a115152389fc01e536c5e47d6e77b8f0e2005239217bf945a895ef233a804ec09493bda3f86435a9e88d4728e82a0539c240326934d1622ac638e5dffc98875dcab7770c0278eae40f9ad22501ab854e373a2a2540bbc4359565b8b78e6598497d3e4969c0b3429cb38f7175a94dea64ef18a30632b918841fef3268d6cfb6d3512aadb7d3bb08ba9b0a912fbfc40e322290b4a5b7745e206790373157a1d0d863b07e599388444831e98054a4f651ddc8db93671f80efa2c06cd2317330243b9a8454fbe3a08520a42f69387609e3d853cc23aece8a03d2a65131feea5624ff980f7932f2cc439212146c06151bb2e78956697f8670e877627212ef712d0b10727ba69904ce9ed1776dd8df44223526e3b82750299e2fc6bace203029b217337851676b313d4db1e6fefc2f86a2e1797ae42bfecaa8651aaebc5ba9b17477bf8cdec5faf8556ead0c2d12d5f3ca9ea95ac2eb04fc7998d3f75ff7a952e6d5456a45ad914f94aeb617145f83055f79a144675c860ae51859e0426d8cab38bc8fabbdc4b3f574c3215f1cbcfff827147390056dab8fc0054b48a6380155bbed65debeb0505b8f00266c0324efb58740ff0d84616d10bc344ee7aeef68ddc00ab24796454df90fb61f0b5c8fc980434c47a5009979651828f66378e30c94df7217db6e4fedf851c99f4206f741d53b27d873a1b5b512cf1c7167a6c52e0dc99d1f6c95bf104a8f6eb85b0a4437574ba9a33a9b618a063f0e8e91f1384af78f945472caf6b413f16500c2ce5303ff827fda480ae567a2ab6f68ee543fea1c40e31b85dc46f4262a937912b5d28b0e01f68c8496a08605345c1672130ff7a9c89b3a7ab074ffbab3966280cdfae557285f784f5fcf37dac71f0f1a0e022694a80beb70abfe76c0879d18135e798740b9fde014126a86eeedea16f81cd42aed944346c81c505cb0483540f1e9a8eb8ce4dbe409f9fb4968d73858b9d78938484595513ea0faee3d764b6f7032d77eed948e33703944bd7cb6334501704443b1f541b97db8aaa3589a4649ed4b23f15d638e56114c0854593af2b49880209a2f3f24833ff4e902b0518b9ae0c519e282c108500a194e412e94533ce39f25263c48a288df007ea991c66808bef2d26bb18838d777eee05b9973f0bb62f427032c443ec48720a939b3571a8b4c14e89b05db9302021a0fda0a620024dd6eb88555f52f75bfa129939f27d2c3011e12055f3ca74481de5a64f0a9cedf0a9ef13d7d076286a7208a33baa36cbc8193639bac73cb892cd562f51aa0f597d576b38cb5fd3a51947159897828b0f07ff862a60a0b17a738c00aed3ed139ffcc9d448fffd37153a7d86ff3b76cc069b073b6cff477fe064df39994ad30ebe5acf5740594a41380bb811c91d6360f0f84b45714c3e69ea8ea1189e032e0400fad57ecdde22dc84a4ebdfc7d00128a83c22c2ee5abad031c5f39b78bf5d00a46585b4e60611132925711a7764adcccf976d6aa3c436746e8136bc87a7bab00a7784d1b3bcb089361770e00c9cc9df8bb14ccd52d1684dac4c7e9f0543ccb05255bd44da6c7a78d7c0c03974f50bd0e856456cb0b23703e72b293207d0deeefe1fdf654408a611693c1105d74cd8adeb23ce44c3338316ba24c782cf1690b47d966f130ad2c03715255663bfe23b95a13398c297a6458c79a5c1ed5898989f4fe5ccf6cd58e3b82cdcf940523fb87f3f0fa342e456bbbb463b5592e2c69c4a961650a629a1f404a11e6175edfdb56221fff6ff6f4251e8d99e66abfcccadd5b6220ee203128d80f963175ce0cb601597310c4199e3f43fa35725703401d31e68150bb1ad837f2588db791c6602c4f8b7dde4b1dfe9cc3dacdb1544bd0df9f8175a6d2962407a169482abeda8cefaa1ae55de6da713953d025f832eff9f2a8ea70f1a89320ad3872b4e6eab2d4afb377ed3824947b0115cde6c30246cdeb11a458091855f771b696572179ed45c0ccfdb5c8d7db6900b784df9abfb6fb2860be875023dfea178966a6e40fbbf98a7e1c1a4a6c2159c789475d1d4caa54ef0fbb3d263390d82b329ecee52a9db295860192aa2db9c7eb1c4d49d2d6fbf0bc463e284af0ccf7a5d30ec0325446d8caf91964b723d8113914c536af082c07566095d3b91203714d7278e8fa4ac0799acd5cbfddc41d4327ef8f735c0f3c1ddde3735412c45d2b9f43db50d425faf9e6c49ae6da27d3d609589705b83e91b077a4dff8e2705311417535dee3910962414692273652e6defea41a0a30a7dd9b961f24f19df773f8d27b3f9a5980c259d34e2689d5629e3eb47bced17997fd9660b91c2cc301d834daa83a2f67999ca14455b21174211a403dfee86d9ea15d650e21b0cebb45d838d8182a5e5a2a99a54ae58e66f47af7529a6b8c558df13cab30af106068d5eb1883e024505440a06a4c5b9786de61153aec3b4ec6dcbeb153bbc42abed9391ec90bffa64d887caae74d6aace6454713914152910627526e282252f869688187a5ce199483e493c2aa2112c430b21b0bc28cd86666694a88e7faadaf6094e74034a550f89c3cda54936bd6cefc0c44e2f6c6bfbf6f8a6895520a5ca7ef3eeae282158242a278dd39b512f749116466a82a5db0e67fa4b7491ea2e0261ae7745d0e2cf38799f231a949d45781036de19d53b97a6e292ec9e81d2ed2efe3302c9412bbee74012da81a65ee2a9c72346c53de3735961bd1870b1d73b53989f05601354c5045e1e04be0c56205e19251df96c99e913e9b43bd2b81a4e883e746567aeb1fb29afb624fa19093b926230f84be1ca723525909145d73410e585449a5f77b68c5aef38824056d6a2bc37d8b0a227b26dbfb5dd1a21a4914dc8de7b6f19e00c920c8f0cdae1bb52eaf037a10e3f73ea0eefb9c01c9ec6cb8fd4fce2f03591656408b84576f12335cb1ccef88793213cec9b96c34788b3e3105ad25958aa98c3df882c1d58310e8f23b2641c7e876ced1c1ede87c699f1ebba9d6b647b7f14f0edfe24e04224401342886b1b472a59d3894508216eeb28e02680c74dd70067b940bc747b9c740f707a65b4548fa30cc0e35a10b7cad5f503f400c2003c66bcfc82b46da56db3db66dab6d3b6b16c1b6adb52dba6c9bcdd9f20aeba9b6d9a781d2e4ac68d995143c6451037886ba5161ac4ede68106d1992eed82fd3c7bad36377a77c85a89524ba989d213a52c94a2284d51da4229d5ae8d5e1a3b6e778d2fb6876ad3bb5b87acd54d75751ee3ead07117b7007fb938ee72739c747f989173e028c035961f72e028804e6641a55a5cba17986c535d9cc7b8393977716ffce50ae02e7700275d02ac6e0620801bd750041880006ee0dca0522d2edd0b8c6ab4a9ae8dc7b83ef87017b787bf5cd65d6eeba46be305a0c5eae15aaac5a57b81517106b069b17ab01180944bf702a38a71a16daa4bf3181700d848fd101ee0c900b88bbbc35f6e8dbbdc9a932e0f9f21239fbafbd3e3e90471969f206e690851f317329acb8c19dd8c192f3366c0cc98a19a312366c60c173366bc9831a36936216e1057e3e176d7d4d8e1d2d060315997b8bdc80d666e2abac55c9b8b1794ea701d626c6a8c19f433ae75707b919b6a6e317473716d2fb04d46460c1c3d961817351ab7ddaac3bd1ee35e9781652e1135cfc0f1215f9fc95a2907558c8b1732bfd86ea76b7a7751b88433c9747a966b3026d34c0cbdb5b82de985eb9124936066b9905ecdb46d777498dbdd09cf8c3417719391dbe776e986af2d879997bfb86017b79be6a51bc1703d927023ac9d367bbd6f77f5d1f54eefb3a66970f5172ec70ab7f562b81e49b2772d7aa78779e5510ecfe8d1eba2c6a8324cde6eb52fb99b81114386b79a816d3a703de8edb24bd660367a5be84da1b2e6629371ef92c34d77e6a30be3322c39c6cd11e22c41dcde1f2170cbd5ce7504dc96ab9f2070f76b308e9a7997c361f0bd06e3767b333960ef35be2c5f99e2da34ab193ad0a0d9a146cd8b4de6a48d5e5c226a7e79b934a277fd74674ab773b9a6eb10371a72a399db0e74ab716d353ca85ce098ebaa7b5d9331e9408366871a353c00a0bb4d63db68b66d876dabb16d35dbc6c3b60160db02b06d77a3b74463c35b773b6fa49ef168b8cc7c693bc0ad46dc6ae4c6c3dc0040b7005c9b8d1e5c4e332f34f275172f95edddac56a3266e3cc80d00730b00dd6c5c5b0f2c966e1a964bb960515bde6e65b931dd25a2e6d3b51ab8f1103700c82d0073b341b71eae8dd53a99eee2e54b83b1d1ab658d07b801206e01985b0f7463b5b0cd86ebb171f8ca646cf4567ab1ccdd19bd6db5992ecb4f574e35b12ca72fb15cdb81cb51c26d5900c0f5489259606e8e05b75cd834d7b75b63f4ae932e2a7ad7ededa8cdb0b72711359770355916dc5a71b3919b0f73bba11bceb5ddc0360150d34d2c31a7eba65f6b0da056d2491677d390ae8f6ea417eea05d226a1ee16a85dd61c6ca9341434305f3d2b9b4d4a83a5ccf90fb01fb7578eb736476e5292672c9da2342a089f4894452083c4a4640598c80600f4422063006f00c31c805162e096a2b64ec421e9e48f4c1336431026a2b62103c430c72c10848fa9c40eb996f06d00828b6209da75958c9e5c0eea337c262ce393ff1a8288b19ed881c4f933c86898e472f6a47d4e489fd4b45c1439ef83c2db0a32bd11b4591b1f3d45a6356397e0494bf541439fe5be53a274dc3052e287908c4165593e1e808d908cc5f2a0a1e32c4e76981fd309e1cdfc5c749e48292e1e7e3b1be9933804c906d155e7e3a319dc85f077126d43450b05488f2340dbc4fee1c5a2bc12c27c6f5c0701b418b2518659453ca3927bd28a5f4baaeebc24a946846c9f0d54a96b2896c128362d0952bd00974d2434394c8723f640db1be8ef8a670d062cc79764bca6d9300f5e2aa75f1f0f0f0f8d45cf39c335e7af80ec22492a045155630f179013f843cec77fdee57f8fea1cf895eb4dd599d5b07165ec6e8f3991833338f31330361c08001672084331815bdb8450fc67362cd8cfc4c133330fec1cfe0ee12e27739c280f108e331aec18871bb99c744d64c8ccb1918b7739c99c15fcd53bc21c382bc56338b6529ff5dac57f20de12107e75574751dbc6e9122a227e33c52441127d8cff33e719c4db0327f33771179af0888273d693f4f9ebe5ebb28a534c33fa333093282496419e4013ea2279d20bf43bec7046ab78a48ac6fe67ba4173d6923cb22b2d518fe19d1889ef446427090e84de8334ac10bac58f1c48a28425a7c342916667898e112281c02e0e8f5ab19e6305fcbb57727d2ad46baf5a5cbd5fa97225b37943de9b268d84602827be93991544995544958658024df116a3390249bb00664320907c9a5dbcf745aba1cea25fc0df14c044c36bd74c821c09e8449e7388ee3542cd80049b209935e3ac9f46e6979c592e5b0925a3e1209b7bce2212d67c1435e5e4df708cdf5a5fb91f0119a61cebdbc7feae0eb0bcc7cc59fd675a5cf522af554e9dc35eea66e8a748ea65e4b279d4b7d9ea65e4b2759fccd14e44678f459b9cfc81a9dab1c573fcf3dab5cad52488799f4121e328a58c503be74f812fe46793464748c343af69ca8912e078f611f99f097249bce72edfd8264cb71f893c9dc4b4795f027f3e2850b1731312a150ccccb4bd7b9b8b4b4a45228140bcbe96432595b2a91481cb76d9a361a65594b0b463df5d55cc232074373c905067f57e6de75f8bb72e9a9d2db057f33979e7acbeda649e16f66eea8cb429de3f077ba7de9a8dbed95f0a7f5eda53f91aedd4422c163a463f81b9d44ba1ce40c90a4732289843f9849f6b2748bbfe752cca5fbfd1063ee8dc343469f868fd03cc2d8fb167b0e927b086c8b2db620ca47268f54867f81a824a49452c238853e3dc45d67ad073f133def5ef4e094292584efba6ad1efbafb56b61a0a424da46107281001138ed049f2240a29409103292861680a3afdf642f74d5522821a1dd27bac8e7c7f8bad4804c43f123e5e545ccd5bd2e78c45f2277d3e88901d20a9cfd028e13a49a4ff48bdf41fa45b5cc2a9b78e901d20af3448a99a22ddd6b96cd59a0a226407c8287528142364a76f7a80c856eaf32daf4895d08de8cd4f1c750708f4396cd2fd833d704913b55ceb6eebb8b8adf302e6e5d0c7fbac38c7c6c607909de80931e19d3443f2f1eee292fec21ee696b40b738ceaa9a30ef398db3ab706c3d5bcb60310a0ea2f6eea91ab8fa95835ca4234cd3cbd41120057f32dd457c87327bb8e1e22bb8ece3eb0d0886a847754a963cfee8e12252e475d49cb61aec98d449a91e7fb3fb055f5980349ddc5ebce8ba72e9278eeaa8b44f5d48e177747aee65dc4f4c031afba4d644f5d24f2a49a7da48e924fbd621fa8c36023e251cf89a4a72e77d44d1de6a2849027dd873ce9199659bb128022bd6c6739dd84a2dbbbcb72977b7acb353d75ed51b7c4cd701748e9347be60e4b921a532a90b226fb7ced568d3166b7d2b0f15ef72322236b1ece4ca426c7dbf806223555661e291d506107446aaa6821ef2577cb9cae95e29f0b47ab26ae6a687c3543b05007f05d278533569185c4d504a2b0f3b84790c88af887c27b45514a5fab97248400b2fc4edf60597661c8f28a2cabdcd1237af218c6113df9e739c506911722bf230f44be5e2f7a551ec84e116cfd74c2b65c5daeea3ccc3e6bef454ff2d02b79296b2aae81c2ca9d7cbddeaf26d7388f11a9a13123c57e3394684ea1a978c0d833b3698e78abb56fd3286b02bb23b2de23a69f7322ab6bfa36fdf73d211b4c91445c426546ebba237af03bd1831712579012892c0c57aebbae5fd8e94bb70877b77935ec1289132882c58444efbe57b308ec09b91f9e872892e5e104228b1e5e0891c8ea5c93250e12bd089bca0362ab87cde13d780bdf2dc9220dc2119ae511cae33c3c3c3046c176ddbbbf8be9ba9877476d9f690979ae28aa0115a04c3901d1508f15538a4869a59e19e5be84504208930841e3e028a26fe4a5a41ec35f6ce9d0ab88f300d881bef9700290e371c4557d00c4814074ab46afe27b4ad3c47fad051d38e2e71161d1fdac7170c01af19d71409c1c58237e3e07e2e0f8010823e27460f1b0c8521df00811217d536b36d2368e847106e0891e76c95d871fb858b46faa928f9b91311553ca9f97e3dd9a8616c1c2fb8c9a683d336b6c551e1e1e1e219d68d3da9193d3ad9a9a6e59b982ad96cdc99c082f9e2ca1ec1b52d6a29545444f3ee222493a8d2e6187e8567791be99f9c687367c204b798d462e0791e8490933c5423a399bb878e214a064780b9d3c891e13d1dbb1235b9d0dea82baa00c99647a082f554074b2b52357f010daaecb504726e1d1e9bc1d720569c428bc456f8350661520d9ed841c73f4aa619421f8448e07126468686808c627704913ec0910a57c6126b295ad204343434319081790900320a12550a8526444949b0aa655d02a32d4b1d2da068ab0271f9b4bd8dc57fac6872504dceb35edc4f5a84d13cfdda96da49235713d4ed986ef28bbcc19fe36b015d92880299a8d4623c7df084f9c204ad00da248d1051d1c2a00c2104ef044080727d089ef0a978043abd066da63cc2ed8ad67e499dc5758ecd725acb7b245cab4d1eb9bfb417fcca869b797f4d2e5be6d8f9c0f7b1236a293ab7afbc8f9289dc34658b9aa2f3dd6532dd88f46aedf72e476b36ba3d1878cde55727ba1e221353206b2566b71d7d8837c5f7a8028479985958744a04f8e4d06ad67a48f798a8da0bfb011560b37421daa05cb85431c681dc3f6b552bc5661b43dd4e307adb3434b3fe7bc91b93d1a35d7e8fca6a9e67bbe9b9a97bdf155b18b7e0a691dfb068350aec322ab1d1659fa9e3dfb5f5f61c3d09de1dd06ef03f005ddba04d2372c59d61ad89fae071742a6df8f703845a6df64f1b263d83bd912229b05ab6042640b2e8142110c9484bfeac915bd06a78061d808ccd486d2f7881e3d94ecd337317934faa0933c822f181d760b2ee915fd6874c8829641a6a7565898b1cb0824a5c43089d9c014d95944e9bb6f96bc6fb6d3ef882cd802226fb784c8afabc8f277d23f1e3e1fb60b2f7a20a774bb69a82dfe643a12c5462087e9e9152c2cb250c80af68355323d7c156825b6601550284aa6a743961e3a61d22c08865641b36095e8d1be199d66a72ca74350327de30f4aa1f7f3c02004abd0d1354dd3344dd3344dd3344dd31e3395191e48df6cdae1a17c623749af7b346afaa6fe3ac925ac1cdaa3ef9a75162d87662d91a7bf3c95b4258dbcdc38ba952cd7c3347ae30c7b9884455c6c618294524a29258c03d017884a95884dbcfcaca9f1bc3f1e203e498410085abc16ef9c829daf4dd38f078879aa541477e724145a40eb86dd1659f206775234752a778c4b6e6c43de07ee367d833be5fe0920d377dfe8b1d1e1f01657f41f01327d175992bb922646daacd845a7bcb611d72349ae9a36ba84c7ae6d1a4aafe5d1ac97b9e26f0319feb0c9bbc1ae434096479f7dd34d2ec785bf1df9b2f1faa6a3317a4dd3d09fdb381d2a4db5611e326b9759a3b4468fcebe51a5720bd6e9d872863b2e073d8dbec94edf9fcc1866237af4d9b5691a7a3a053b4f95d46e9a8f66cc236293e395bbab9918644bd54da306ab5df4a20755b13df8cbbb52d03aa22096c2365b28d8066d76cf9e3bbabb714ef46077376c1a88a3ea29a85091b18b6a9a1851f0f2337771051f3d9b1e393876440f7a9e67436234a287c25028a18b0931806c0d0c183536306a60c4784eb4912143c6b5a9b1510323c6e36d62c888516313037fcf3030eaefbe06fa5e6323f1b44ae0e3af207b26c6805891fc15636465a05b15d737c018679caf15cff899777f55c3b465c5938afde0929de8c9cf89092972797becc0113dd91591ad79c3860d1a34666662cc17933fb824cb2bd8af898476a490d0d504ad539a1c42645d97a4cc652d6ed7ddf28baccd9e304e3931d2fc2d650de66679b98ff1d86f34341a8238b01e288852115943f4894889324681fac6468e7409a555723c85429744ca247a4d28109d92a5bccd89a82b7d5384ca22b22426b73ad2b06da34b644bb5933dc346409dfa243a1a5d4293c8cdf1a819c33f1965a24397c816aa28431571a8222054d18b136a50020c54a42871844e4c72032c085d41a8044980030e74e229100d6a0ea3532e1a8429d010ec578172fc25718ae78a5a1633312c8c981c196f19872143c687c0e3d891430e8ff10f3e67470e8747400e1f02774496f752f74f2643f82243e822431893a196e12843980cb30c2196a14b8657862d19d20c53197e4289a329c353c66e5c0ef1e71d5ef3ee8e1c1c0d34731c393ba097b343063e4675d183f108b6c6864d0e8733cf9979fc8e193cad9226600e3836d0573383a3c74c8e35706606dfcbbc7011a38279e95c5a52281618c540c509de046fe14bf0240e7e83d746f0d9456f849710420942ae91954406cc9ea0e990b9a59c524e18adedbabe501c34ad042d8c32c7a41756bd9079c149d3f4b58d43759694056dd2344b9ac62e61d299b2385135d88f3a41a5648040d34a16568917942ab2368db5d1af89c1e8557d5044164554b91c9b93182b2d2514560ee57e57b71e242c678760bf67398499dc2f713a6272c684d2ecc23cc2cac330c9dd51a13cb30b41540855017d201768162ccc900bf203d3070a0b878294c8d80d0a0afae407600da68ffcc0f4a9504c1f0a34bd30abd428354adfc4a6e9ce39d1a314a314a3f448f4a21004bad531e56226eff8e81b4f0142f46a267f312ed97e3118562bae465cc05a5f0586e5c0248de8a263fed9ae2ffcc1be09fa01d638c61047b65a721d04ac11ebe123a53f401c0330418a1c65a6af5bd3c01b00e2701d04c489b09421135a087b4becb57239b0245d4790610af017338cb469600dc89d801ec6be20ad428764cbc31fb592a93744b1c894525ab15a6ba573ced9dd17a594d64a29a594527a8cd24a2ba5b4564ae96844693ddd4129a4c7d137f05a94adb76e3556d883526aa39edea01427d3dbf44d3d3dfc8cd0694729a5d829a554524a8f51fa7a7d507a4a29a5f7e8e97b86e22125225289286387760836c66b2d619c50381d59aed71a0ef6fabc8c651a6b3bf69195c82283d5b803d09905ab1a026e91ed53b9253787bf1dd92667d75a08889a479f59b032b7cc167f1bc8a3e7c41d1f7d638f95fec94c2a9d74c8fdb0e591bd94ca1432ed253af4d1fcb510111b1ba3dbe4cfcb5accf46a18e36834b34d4261b5d16876d7ae1316d96d66c18eb86f444414595562cbc78e14e0c53ea2577039344ca9442f7239b46bd9f5d134d8e105b280ae81e1285823f3c7f421d9326135e7e4181d3b8fc6e9b1a36fb22734d0e85f4f91b1e3e89b9145595ab71ae1a8870d1f1a87882a80c6c98137b07f5afe6c640c2763b7f9cce9ed62a2879d0ad9510ff6d150df64c7646949d360a750b0d8b32b859a06db891e76787d440f7b7681401c06740decd8b190b17f8d848c4920539ea6c11eb17b34628b52892bec58c574287ad8898632f69ec1f09012d1285a2680bac0240a3e42528a90b98a3ab28c6cb93b2833e5d4439b61e7b984ed74508755a0007aae831a008a00391e9aa1c1d02cdab3458e6cc8f15a8fcd0199c85dbe55aeb2c33c898e2ac3aa067430a967b8a57b129d97bbdc3e73b92f99cb8bc53f2d6fa9180641a0ee7a29aff346ffbad6713900e95f7622dc55405c49f285af77beee10d3af5945f4e290101174e2038be015222b255864a1157b6a066bba13d6b832fc8d9edd62080483a6c0fc41a02f492e61086461903d84f982381fbc70c8e7bd608dcb4228a65b2da66400e44e82164bae6b6330431a72fc8468a8a15dcff295e9555d6fa02e1c9167cf664fcf3eab648c68fbc7f249f48dce82a195d1598e80d187b0fc7400ee19fe58b21cdd7fbac32ab155644db7ef0c3324b252e22651e9704a0301d91bd1b381514a38c33fdda1502704854c183e81e193e85133d82fc9079f1c60c21ad727be608d3963addf72e9d9b5d2854ea257fa074bbfee77247fd7b37afd70dd3e47421f225b2e61e804fa1001a1152522a8d169790a671fcca30b0b5bf10feadb854455a0955a6112d18b49e42331ff741deeb89a30300936eb00b45cf9eae13abd98d6def52264abd4abeb515e385a254d645804d78156620f552091914954c58a119a97e423314fe041640b85b7b882873145d78d95889ae935ecce5ff7b6216b11ca8e9304afb81a880b4599cb015befa09a1eba8a4e3175456b1a597926cb5f9452bcc19a65f5f48397e94872d775bbe8c951111dc38e8c9d8a4152283272360c768ef03432337689d86cd48aa54c64799be5132b6c866bcf28af0de37a6c186700dc34930a557839117db2fc623eaf8683c7461fbd8f8a2dd844ae5a3b1a62d124bbcc9a6439b7ebba606cf5582d72d8a1152c8ab288ac7a78256bdcbfc893e5c82663db3bf735bac5db19de1f6e3bf69961122cd43007717c121d2ee29f129631ec357d63934ba46be54a9ebb140cb675482f9d8b4da2278d20dd06454f5e335dee767308b01942274e36d3e5a0137b9bf0417a091b21a98c81055be890f0e54a3e09fa055b7f5d977a21aa78c099639657c43fdc2f0d6a9195c52c92e2b3f8f8d81357f2b066c8e588d7364ce6d91314afb48285411a078bec757fb6d30b396c84e698fd484149864e9e4416a4024a6c913014ba64a655ec1799f464f926b1b57d26c08240a6887b73f148c41677f9d8c3d17cc1b843b660afaeeb5f5f397125bf43e228fd7b31655d2761b7362c24621c37e8bf1b3a3221b205833af9a0a018242f1824afaeb336432b72251f310cfad9a8b82e0c852015d1bbca307f4126593e32892c2aa5d0ab66e52b5768af5bf90a1382a2273b7f300808961cb12bfe7650645101856ca01369e52cb9a3b062099d8abf6a2ffc759246eea6b9bef91b9145f14fcf5bdbe52afab4b0414a2989f4d090d65a9b48238f85be6ea32cd92df1755d57cf8aca1313e929a3484da001691a79655c0ed816482c123df9231613b1c9f2822c7bf91db295ba349201892c23dc8d1ca9d9025d43fe489731d034b2556402b155048789348d125a38207d43caf2d748d6c29de53f5247712a2158def21f2c6f49fd07aa05777225edbfae74d27322772db49884bd5a5b3a34fdf493e90e81279d64310966fb120f1510a5211ae40eed752d6ea5db19e29cbadd1b3bae00ba863c768fd84c80a69136145316581b6b8fb4b2b7d843ac5198503ac1c29e521a4112b890e11418ab60adfd574dff2ccbbf672ff5afa6e5392d37755197e59eaee9da8cb600f264230c748fc39f57b3e1af264bad8172da8b873c3d2589948cf1c4581f873022638f4132f658d3537a4aad405cc4a6008568402bf6694b56aeba6bb2e429aed1935db0f14de9e7253fa758fba132112f4b2c89a0750c8b9329edc668d309270d4abb60e9630be3e1e1e121820e7db76da05e751be66d340b635dc7c939f1c2eae73ffc93d1aca3f88111f294c236573377a0f54ccc8cec06d0731d8d068c971c10a55cf3a3619b1bda67b8bbdd96abecda6db9cab937ae0d785bc2c89f03f27519b39abf08e4eb910382660cbf69e23569c444bc1c69c42a1e8ff8025eae99f234622b2676f25d6da21a290fa4f0410b31b145597e2e1164024de429d0ad1d64c8354d23bf03c88a2c7db0b4892400e1111087046b2889ac79c9d3b9a1d190e51bcaabfbeafe9492e7e74cd3cc39af6b5e17a59316e5ce210985f40751b821880a4c5061ca8c1aef979e9f0c188db3c11ad7a67e869e40d39abb2e8803a36bc0f76a7ec27fa43c3f54230ade12f284f2ba44bc7c01c998690636b5dae46913679a868837c2970a7eaae07bde50416c93b3c47629b0f09f25ba7650e3c9e71bb1a51d63414d7e5de589b2248a2bf91a85adaf784213d8ae57f4d2e601915573c52bca6de5cef628fd84e4eb2b225f57f61ed1db215b369c8d0d1ad19315069606cf8c024aae93be6f67edf1eae8cc7d1ea175a9c9768ccba17d04731cb5aeebc9aabefbe65aa269eabf1c702e25ba467d1f616b4b51ca577414dd0af25d3968271a8a369c210c9d156c14ba2ea1fe1a82b966a1715a0ac9a049255f5bc8f5b589fd2c9e6bb0303f6b583c945cffd5b42e257a8561239af081fdba11dd9534fc808a0e86bb9b58605b879a20043e3aad0302b9c5163a4dc47fdd96bf4f8b4a227af5823ad855f9b88c50c9636ff9856d5257e52365844abe055328497464904db65dfd753db9aa975358fbec9f97312591758a2c96e9d3abfa79845cefd341619dc8f539c8f557159b2f2dae2cae29950a5b45ae5472fd5ca2e70e7afea02711727d7d81ad39aa0b2c6cd23a90fb518d3e97b0f5a3fa6ba88a4b896e5121b9852722e4a1123b269647c995c5776171f95429d7948b8a4ba3344da550046d21d32884465888a87361da44ae2a294f1efb51a126b95e16c17e748b5cebe9167d035b417a553ff157e916444da68f8d56e4aabeb6e008cbe5ef1c10ec9713b9ba7ef9c855954e3ee9443ae99b110d818d908bd7e611f6bb7c1050fa374fbaae07dc2174740612bd7a1e253c84ac4c2cfcac4761d9247a9505d72ad1abbf381d273c4b57cb1ab695ee2837d74d72ad42d1ab873cf98b4d8cc091742257f5b58e3a4b27f4953a3145c995fe9340d7f4914e646bfad49274922b69f4e92359f057472353b5783a895e25ddc94414ec377d723d13d38946b91ca449924eb0f423b0f17a92eb377c3111bd7aadf1e5d334f522d0e2bb4ace9e136b082c8cd7a0c040415bd978c9349decaa7c60cf8e61dd92d12b7959a25242fcb9d878e915fcad147f2e39bbf5dadb9530dc72058734d08cf2081a6cd8b061c32ef5f56184c4465c5ca80214f14974121075a207248464a0355362f5c213c698af4bfc751947febb1ef1dde245edec3a6b639ddfa237259c6269e4791af6c2465aa24c83d6dd90d4eaebb305e175e712a2276908be2087d7ae2b9bab41c0ab62f708cdf3fac9ec1122a0a20915aaac90e02384ca10851dbeeb9beb12a6618576e372bf91e04314e7254f1f9f5d18e5cc18c6f03725f688fb4a15d878986184935e58d3a03a9873223c81d6a51c59ad96ab899355ec901b8df007b5eeb4ecce4e76b2de19bd9a29c5f2755d19c368ae35cb641e8d3619ebb66d19e93accf5c2b0eb5eb56ed7a5d975e7486ad78ddb75c90b398ecb48d72f659c92043358a1d07a265e8f524a2a25a5d7bcaeee96f06a8853452942d60ef4e25bbe6ba217e3553e6ce916efc85554f9b01603a936b0b23ab14c48a085255e649d9e622fbefe78a43b83c0069d8a03fbd5e478a343d2843c0977aa1fd888243a246ce52ad61b583a04c4b2161bc6383d9021ae4cd8243a4974f2a55d39886c95dacaa66177e6895dd5c44610b0e33ab2639f99e6e680c88ee1f7d7812c21eed63a0244d7865d49e41d22553ce887e124994a3cf1d70120609e4d731de37e9859ca9c23afeb6e6fae3e27da44d6f6781b7de3a3876e2da057b1a6fbabc95cfe6a72c43b35b0d9d7427509ab7d74ecd6dcb1561ba3bd176d6aa2576760353c714de936b618a5d825a57c86d94b62d78575506122a59431d219634bc8b345531584a454a1a80a54602a4d92a0d224895290a2d6ae4d071524b4b845acc626139bb576b784758babf98e1d01a26a24dbfa8694e7777c4496fc3c90c882efe99b46429eaf36b023ad2a61bfe70d153dd50feea4eb1cae51fd209d3b87917027611bb99a6f9d897df81c405e0504fde8233c4455f3085fe02b228fde4023ac0262fb8687d06b18c708efc80f98e76e90d8c33c36bf80ae31f14e0d2cfd0010f214e7d8e8cdf95aaded84bcd7e4ec983b950616b5d519d878a87139b077d6b05ba90e2a4c2e2e4796516992719b0e2a4c72867550f1895e63b8b326af830a12913577e26a62b1859a66b1a483ad6866c1d2f78742e27462d99a446f4e6c629a945c8ee744c9e5e867f376fe79794e942fcf895a9661212fb9af8db6606716ec9c5c8eec73e2984fb9b3c0b81cd9e7121663d2374efa06e7fa4b8b583125b9fe2aaa9b505cd51755a069ea079eb8e106b9361a72fd87cde083abfa0f6b8190a6a9f4cac482fd36a22b4a6cd50b689ea1e6295822d1abef3cfaf6d65e24d32b7d33b35f55e2aa96feddb0ff6cd098896943b72ad0ab7a23e2aa1e3ec9f5df65e546097f1791c5df35d4562ea1b67205e5cae1af0a699afac8fd3073868b88de46b41145af5e8be8d52cbb1482cdb85f3c57a2574faf10e512e9f573c8924ad6746241a5aa88ad97d76fd5cbd9b5b9448faccf7044afbe08203fddeb677478095b84e4f1727d11d9da417dfae6e6ba248889159040091294d0f9604fae2de7619ef80392339c13bd7a98ab0e73d5bfe7eb46e8e9daa6d56ca46d1c09db4a5c8f5fb1d9ebb5ec9e548fb930cfb298c360238a88e9aec24614e9845cef6eebc4dcd699a70c73fa95c81a723a3dfbd4845c7763a269ea4f7773225fee0625aeeae7dd6e707f72bd9c54e143c57bcab524d77f3772662367ef99d8a257bab7ae2871559fa17276d8381b51d7a8cfb8907d469696b3d7c83a7179de3b3728f5fb21db9e48655876a3e59f9733d4bf9bb3979cdd94b3db88ad8d48d644d67cf64cb2e4ecb56f4ecf700a6f4f3cd9c2c6fc6d4f646b1392ab9abaa2c8568e5cd55717fc59148e827a0bfe64f2e9d22b4d53cf93eba1cd3ebb907d76e1742984d3a510ece9b0c806e5ea23345bb40dbdaaf8bb98c8f5292c94ebd524cbbc9828fe6a3dbd82dda444895edd9e8850f2e9777be26e4fa2573fadf06d4f727d4bf6cd49647d31cf57a09cfd23027df2e6e46e3e59b031cf7f9b4fae4e226bb25267d99e882cfafacd27b250af3446d988be2b0ad15625b62e295794e8d5c7fc5d4154cc39e71f1059d72f9f5ce5137b31115b34e212d9aabf7c22cb844abdfee2b9944416cbebaf9ec86a79fd854464d9b071d3512dd76ea98bba5b14d942d547c9f5db93c83a41391d9e9800e99b513ec57c3af96c4c54fc61d9bb5bf44a2b91b3d337746beb89597645e9557d964dfc691711ba45afc855ed2b4a3ecb3f7a856eb4466fcebe7665238c6341a15028140a8542a15028140a8562e14698a75dd948db3852c966236de348258b6d948abdea73222cb2d93c12bd7a219185bd9e4891bea1afad45aea373acd3ebb5110b0b0b0b0b0b0b0b0b0b0b0b0b4b3d9d4ea7d3e9743a9d4ea7d3e974c26836e706e9893ec345f59db367f533eb5cb38f88cde4729c2e24b298f44de7fa23b1d53aad85925c91c8f5140b761e756dded4b5e628a557b05df4eab32221d1abf44aaecf683dd522b688c4557d9d5848f4eaed87f2ea379eb6823abd446c72a4f09644f4ea7322ea6e4ca2574fadb027bc2d895e3d0bde7a3626b99e56c17edfd693eb85c856f7fa2291655fbff14456ccf59b922ccbb23f20b24ecf4e573eb15ef4aed388ad6e7bfd8cd737da2dae8fe91b522932aeb5676736548c1887818a89818a21e33931c6f3bc1b8392713b540c198f8f9121031523234674829dc156604fe869cbd8f410edc9730c163e81c18c7d56ccc29abe817d793967d7bed1b2fc8435e8964dc7186343215cd7f375d993e575c9272c615b0930b8923f9b3c44afe2bf1a957c3f3bfc8ffac648faf5102369c247bf1e09ccb2512dd2344dd86f436ddbfb3372e29f984eb68040dc710504f6142902be753428cc99e529bffd478cdfe291942ecf7d6eff41fd8774fa049582c2249f97b7ce867a416d54ca86da509b67bb1d0edaaeb91d19152d5d15f56c5037ebb38fb04999a04e7c8e958682845efcf35cbcc068a8cbbd7449aa520c942128b2d53a344a9e53c3db9c285b45c39edd7a8590b72f4da28ac4148fe47479cdc545fdc52dd10bb3cc6d426ea6db3a261a25daff9037c9dbcb23393dbe75e0bc2623c53f56075efa848e9c73fe9eed2697c3c8b5514e55ff43defe47fc76991caa1d8e747a2d37e2766446774706ebe8513d10797b20f1db55d95fbc755c5c7b17ffb1fd054662fa76171849133e4c58957d7bfc762427accab0aa6221ece57d6c8fb797dac671246a3117ac85b25c755d0e735bfe7253b717f5ed965eeab0128e2ba1522d2e2cad83e22cccecc18e1225a46f3fedd89b6827571b8512bd894a5263cb19b49e693c291405b0325e9118b5458f06166200da983c13571d5950a74efc0de269915082166bccfbb0d3f7edb03f7f1d8db766ec6cd3fb3cef163d1d6c9109424064743ef0b0aaa9b93545b4b8f26b9ae8557c4f0d106a1194903f1915c32713f648c8a324b21af6744f5674e5e682f8681d5828944590dc75d6ca2aadcdf1b5a97c7711cd3880f9a63ee28a62217265a588edad33cffd87fc26cfc923e13edf6880ad6e28050871aed844b6b677b1046eb802e442a66f28864cafcbfe319e55d94f6f1d5a3ae93fec8974d349f490881e5aa1874235397245a1d8af81764a58b5d3451831c618ff6cbef00ecc89141172f1f0a4585e4ad6844addd67941b1f0f4f0f4408917095342bab08b8429215d90e7e592fe7b8289711897899c466fe0079a86b6e01170454f4fa751fe20cf28beb79d1ff204e1c6f82f0c99c39c322115e8168c42afe86996d92c3e1bc97e3d3ec68801e3cda9307cda91c1d74d40eb4097efac94c82c6145f64d678a93e9e190e530d4ed7f95985e824e281553a247a7102c9c92a10e3d1c92ad9fd2c79e19fa4122ef32fe2873bbffbac8b8ade3ddd699b950e8a150f824c3900926323d3d14a2afd99bdb79fdcd2e7d948a21141917e6de7d59bdb80639adb36d24fc804aee2ce446820fb6c8dadcb6d2f6124652fae6a384b72369399db0dc91d85a2284486ccd2ba19f3fb058363257b77526102ce48ca846ffc1fdffb15de6f5abdb3a9453ed742ebf7e5a122b69e29a71d20f32c9340a4d431f2f248a9e14e08a7ec22b640a859a867e3e6139ed90bbae496e6775edeeacb012fc7b6d8485e0fe03d92e73cf7bebc8f865fc87cc3d8c64bbcc6560244df8d82e7324dcffd6d1e006498f711fa4c730823be917f6713a0c6cc4f6d35b270132986aa77b025aa7fb0f97cef7b6ce676acb5dd498ab9e13314dcedc96e7705d1cdf98dfabfa2fcc65eecb61fef2022be9eef2844bf702a38a71d1e2429584270a9410b098dea79f48256b42a56e4b7a96cb7293f0c4eba4edf33e485875c96fb8f4ed3f48e7b0ea3a12d58555427037fdc7768b91d86f3761244df8b0df8ec4543a5d7448aee84d44999e6425d38d9e8b3c999a6eeb581e58d883214ff4e8e7e5f522091673688116ad45c5c6ae4d5c491bd193346ccc4baf2d92e10f8d891ec51628c6e80229ced0372f72b4dd62d5985adf43208ffab9c4d63a04c4229573cadc59bd5b7b34e63131d3d6e8158384e16e1a3af1b125a65882145744c92dc5154ef20eb9a520ba92eb0f30637687ec1ca619d87e11592b8e56c95cd2413cbae5c91db3ad90e7f4646b875ccd779db571368700992fc833b91f608efd1d7d18a253ee77ff6b219ce729c703e778ed821d49b0691a480459e4061a014fdfc8e78f4456e39ffaf922222bfe6b2df27c91c89282088b7c24b2e6fbf6144488928b889027b21a5f3677ad75c225d8141e295030591886c5f989ebbc6a920bc616683df3d5ccfafee65d3166fa787feab51a4faf8761d8bb1e2f1e314e1c13bdfa5a3314a14c1184cb896ed55ec597de1de631970afae689c8c2a25c52224bf64d4be1823bfc5d3078c130f8bb94e818fc5d39c88fc1b0ab1ed3181673af25f76a123d0a85fd6ac6ae84926648e0ac277a9189ef7a92e3f65d4baed3e393bea9427d9345df688fc79af4cdf6784c0a46d437a4c757257de3a46fece32b157d637a7c2dea9b9e1797798644b6e40cdd924bdad035c8789cd02de9c409159c64c189179c6091836e4921212784a010aa5104e5f81a826ec97a02db821cafd419c82b573456846e4d9f30f89cc1a70d3e95274809414e08a242c660d0ad59a4866ed1289d1345580e8a94a8171c9a60213841bea2d02d0a743551d485c15e0164850a045b841c9520ad7501e5e8ee7071a512d9b30485fa5751ff4a4e52a9544cc9c49b6e9c22d4d222d422d422d4f2e823afb8b8c82b2ef28a8bbce2f24f468ba689ddbb77efa64ff74f66a8696ab5b67b09824f6897c82c8269a282994530b3086616c1cca22cd375d6aaee8ea691e93a6b63806ab5b693c9f49f4cfea8951c254ff46217f399a6897f7165ee07a39700733fa8820f0221472be408872f2af145256419f9c9ddfae2b60e0c764dd67831b99a5c4b6ac7441922ad6766c3771b2ac6cad585f9b66dceff83e168d560354035d193d2899d426fd060bc123d082115b6f13ca5010760444fb6503d61fc9b47cd181359b394a74c9e2ff2e4f27491674c9e5a9eaa3c4779c2e499e5f992e76bdfd04f2c4f973caf3c5bf2a479a6f2f589caa87f72e61f4b9e8f7d837d9af23ce599d5cfdbbe89f1792dc68d41a1b28c878f81928f9111c3b8d5097626077c2ff3c2458c0ae6a57369994fcd25535891a19d47cdb39ce64df376be34cf358d76b38addd834f3d79d7306622dd0befe37fa97fdabff5430a7f2f7cd7ff1b6a3cf488b6ca83e11a7344d5f7009c5626e615a9944c6732d6ef18a6e453064f948d4372d91055b328f98fb41e696d316da72af9ea6a1125712090b2fef1723257ab80e015978288764cbfbea9027219e8ff82b4522f90831fc2e126419454a892ca0c8fae9b98ecce5e594be819797415444d6bc1c5d5e62218b26127d935d7e2e892ceef2934964912e3fa1f44de9f2f3891925b2b6cbcf2afac674f9391459a7cb4f2a91c572a95d7e6a4179222b75799a04f589aceed2e506e6f2744a64c55c9e0645968bcb5f3d7dd37279e944b672b8bc97bf48d0adcbe75241963d7802e25c45e8ab085710a888ad1a254a1551a864791a45e3d42a54ff68129cc8566dd2048a8c92e5e90c1aa73ef104ad4196a74a620bbb7285227185326943e354266fc8f2978f6c614444b2850149202b12a8880a8d8351a1628594d8c27ca2cf94e84385138d8349919f4d640be3912b79f97982c6c192484194af520b2225595e86a1712e2d600d792dc62095d038171548abc4561d8a72888a9ca26241b3c8b2488b2b59febb94443a61c5461c29b35be9c46242a5b4cee5e51ab42e605e391d57761153a3d42a54b80a1897ae3679a236a94d9ec8f205a750572a93ee8acb95ca24cbb746245b354a8d4294e5b51a45b6ea50771d8a12eb90cb3b772c19a53da51da53dd5b10cd18ed2b08a072aa38ecaa8d41d7139aa14096324b560c9b5a4ee82c24352d7527769c13c52584767ed9a86594e18968550c62208d342969fa6cdfa48f1c1a464795a2271180f96c4a6613c581259fecab04aa405119116591e1b11552a40b255ab5c54204eb542d790aff8ab5958fc552cb2945890af5c1d3ac2bdf1fec8c45bc884ccad52e24abe02e17f5dcee1117f15a846318285558acc5572996bdabd978e06b77ba98e16b77ba78e26b77ba58e36b77ba38e766df7429d1c6e1d922b795cfae290781a4d4bac0a88d290789b3b77fe2256f1b099de663abab77522c743fafcaa43b30ec51e86d0cfdcf9a3f3c21ffd15f1107a158f99e7679e5832217da227bf4a94e56b942a05284795a9d835ec1211af63f111c6b4c46640e6f8a687179611ab781881f9ab4359be0ef5cd5064b56c092769089923ae434d232f7da06422b2a8ac4310ebc03f321f92c17d13339e9888a9f08162066298b273f2f5d51ce329add8b4c15ebb95d5601886b59414b78c3226a0ce23578e47ae490512a21044454f137c0070e4b23c3c3c472e28339b7602d1834288d8c8d6f64cde932dedb274e112ee5e994e2a034b297cad453adbd5eeed95fce8421fb2d491afcf8691f480c8c2f003601039e5912b4b22ae1c247a1005efc15bf8aec60b0a50a01777fadaadedba2e6ec34ee925af4bf906ba5eb57f7534bf2e5fb5c6af5ef4aa31a974a8644c75159a1e650ad10c000000009314002028100c084462a1583ca46b93f70114800e8da2566c5299874990a328841c51c00101000000000000800d0105b3b5d9835a4972a5c3b71d3dd93de6065294e6ce6f0ad6fa916b062d212fb3c4799170a032d150a0803d5195896d60415018d4b30facf00945050b7fd700f772e0d98e762129405aff7c5908b717154577f7dee431c49b99eda5408f87688f96583ccc42848bd74a6582ec150a9b158b1c2b98c20f6ce3031033d1f12dcb9e997df8891e05481302731e01f045c7a10fbbf2f076b4f123ca654701e3c097a2ad95433dba8b45f256e8ebe26eae6febae3663b28bee707e02678d453dcff3781aecd79362913dca0a8a4cdf5d71116a57378f3f8658d6491be025a5d9afaf6cf1867266d32be3adf50c88d90da4bde781cc9e0e65364a4fcbeaf286f2b865cbd52602b672c1965dd38f30c8b8318f81d1d47236d8a60efcd4436191f1b298d109154f7672c982c54d37678b3505af5f7407c1ec1983e3e34266074689271d82f1dc94ca66a4d8a6b5153a5d4b5424688e3f7ee5cc3118ba4a409937c819dd0d2766d61cf1be37f5390cfbad6c0dee430c2af7a03178f43a1e1588e7471f7bdf8ff1bc9ca2ca27f087f0f64fb739e144b5f4f9d4dd161d0db28ac230454fb435440809946df1c21220b2a560fc97a0730cef104867413762d53bbc271009d9e0e70dc326fca782c91ba138d3100ad470080ab90479825be079b1fd2422f8695434dba27a2e52b97fc757d4dd53e38f98d584d9932060e06cffcde5f7553691642a37247e74ba0720ee2227daf5956e7ddafe361ba750d52a492d8073c28280ec278e13c317497d9b3f282d8e0a24e992d40f78b08da39ed7e956521084f0ee73731e845522f58d92ca4a16459a5064a5e6e255208571d4efd109405858677a01670cae2241d8379242caec75aaac99a8bfa6c77c5c8fb89b6ca8dd61e15c857a8161303e609bf823889fe3e01a64ef19dde381bd1ac3f79428f892c6e3249d4b95662927001b6d845be7197742cd9e3f85b1b720a2d5fef6e38217b4a62658980ffbdff6a7df4810464130beddc552a7b70d12e869ba9fb44ef2e06f7ab08a6637388c381494a74fe035ae3d177ca18fd79170b320302d6465883d039fac301dbefae55e088f7043b6334de237825bd298cd1fdae0fef757fe0a30bae2f4ee5c27aff0c61f3c1349073bf93c0275e10aa6bc0b1a619f05ae5a4ac2e67932d98b95f35c5aeba612270dd1c67c17af0ea9e752b5c7fb9d060fd8786ba634c3b27644a2cddbfe37e9b96b3a0974a8d1c1a0fd99b3a7d62f94d249f080dfcd9b83418568ddefef42b71f2c1bc8d749c008fc14a07fcf65660aae3dbd0224e36f23a2eec0143c3db7cdf81c0eea2be4d9f8b5e8b012f482575509e28126cc8b335960f8b194b6452b8be3cc0fb5a4bf4dcf0f553502e37a6d8c957ad4c5390b17305aa8530f5cb05d5fa700f182936edcb7646c1d3f0399fd2e53e1b67ebbf97e2c44a278ebfb4b3616a9666eb8654a59326e048fefebaf698832ba595fb2ce57af7c7c43589906c24acb23aa496b83af79f4af444dde5d718187a0e98e8653372fae44a09b852dcc6af32b9257b6603ee9f8f663641c69dbe641b97b82df1391a54efcf7c9bfa90908959191c9a62652571addcec63f70caf75965d97c4aac7dd3158ac004b38a515a9fa58581524c9a78e7295eaab4b79d729c3cc10fddb65edf1b7a60a60e3b25a6c729f8f8c717fcb8f0aafe8bc6e30b9d8efd8c86c394f91ce3165880d40cb2948b639761dad527911c53f79d8e52e325f28b6c21e0d94f9297c3abbd0e6cf82d4677fca03ce0ee77c7e3393b4d268cfd022b8e1c3f4adae0bb201efd18e530aab636241d1e4272372b8f23912c09fa1b7dcefa4f0162da054ac56d112b5b46afd07248fe03d962a975fe640d07ec96d83077c356f4a9f8e744ac9cd8734b79e2aadb99ae4d6f16821dbcb399ab724a80a01dcc242ccc9440f51f4e14617848fd16c0cd94dbf8672b16cb044a4c8b7457728f4d075e3f3d91a92c29f2398049d72267f2285dc84635bda9b929ff7325cae547ad6026edef062325111e79c30a5b260115fc7063efb175c61b72e4b20c88243cc7e090071e17262ba936b7c66edd1292263a83afb4664ad91e1cc14a338d2d49c45fa21e75da8fd1b7bf6936834ffb75abdfbd13b0de53070e641585bff4abab9758650b897cd5cb4445cdf42b38da5ba9871021719ff7b62dcc95fe43bf1bb6966233da4a89980cec943327b7d048810a67877b697f5a1e05b0e9249d5046777b26040aa3daf1dac64b1180e6882429454cb2166bc301017e2b32723a10c284529a81aed31ea35402b864438261a8e9fe93d85873154986065ef03818274807583a1609c1ca4ed0a90d8cf5d4cbdcdba213f56d65696259a56d4b98819346da164bf68b2e28140b000091b5f0fdc89add87cd7e5193a4506a82c2abdc34dd683379909ecde7bf4e51ec997e6c3af8fb1ae54583173371e929209405c51ef77d2250c21b8f54fdf396a5ab548b3953839d88303af5f725b7c89bce1001208de16e3242b025de680975188bc4dbccb40e628d8847ca74fc0de51c3f8758c6c3f9286b4bfcc24d2a16c7dfa525d70e5ea42a68fad72b52b89b757082218371fe218e1441659269b0ba4cab97230e41b18ef437d968d055c6cd0e80837a3df8a43d1c613a20fcd199550a4754a7ae9a4f55255252785170bb5c2065e952d7b8ada3f4e51cee626387aac6da53663b4459d6f3084a40366429cc75730ae04bc78b8b9d39b84027432ed8cebbe7702a1677821a6d47bf0de208494afc065aa4624307a988b304d1a697ccfb5b780356cecc0925d7d3c326651521c74ae857c32a232e0409616fd78db4f1fcb4b5a89cc4c7d3d1311f068db9cd529f11a4373c8c8d9cddfbbb306e5dbaa35d98907cab158cf719cf4e49ade221f822f4e55d6c0ee28969a80f307d95f840008d936b2164f7be81b0e230e5b97667c4f9e8062d86bd3564b146eee7816ca7daaee95f4c6c478b97446b43448566751d5f82897628c9dbad4b97613f8125fbc4899f4aacfe35c3173eb8a51cfc823d9e0675ba21ef9ee98c077f29bfe8090627dc5ede41c22876bd7e8221b12ea386f508192236ffabb14690548ccb36c0898fce90778a7fa06cb669304d06751c246bbb94528272786b6d4112b9961daad62dfa106e609f6065d57519a90edb7d329a3ad100003413e64ca2794801b14d59ac31c8e744927441498a15cb20938854e96963b42de11f6378ce4e8592f5cf3e8a7dd0569f9be5583b22de972d176f3fdf9aba0c4fa802c32b99eaa3a068bc9ca42259db009ac627c5a244b6cfe9ad72cb4c08794f24d482964bb1642c52e819e826690686fe3dc06bbda589114005bb5641f4401b88a9bc518194340352d04600b4fde551d90648db7aec90f9f1d111a55d32fd6b092beb0c77cffb581d4ea9536cfcafc86a53f1391d763bb6d16f7704432180e908e351fd6e27e03a40311ede59b5b2bffe0449f2f4cce9fc3ca2db985dbafd3d0adace005a21a5c5514a28a2083fbab3138d768d5405ee620a2edddab4b5b13c90ae061e8d67e08d672bee3225ba092982f3c49e4c8b4040125006b236361414dd8d4d8e7e8f2f3910b2d65d90ee443e989082a5534f6e8a7c965ac015ee298011e2e687144547d9be749254d25ff28f73943066b81f0883289deda80b8ff208b776da1bf42bac844edf68bf7feaff9e24c028d804ec400be0ebc1f1c5d6709cc83c2856070242595df52da278aa09417f4e0441d382abc64d77d97c7cac9974ff4a9bd4a4f8337b73e24f2f2a014961310bb6eee1d3b626e93f9be330411675c65adb409de5da4a62cf8156a6f2d31e082ddde7aa6176a5868d7e76e37a88a63ed255f8b5d61a301075c500eb92d7901b93efc3fff219ad6e623b29c59670a9733723eb78d83afc9557cb4c7c55084e38325b6b5ce1c8e4c81879411b76fbb4ebbf5124ecce71d6e62af5d62a4459326f4de408474804680eda40e598db1a0cb1547738b68caa03f79cc6da3e7c67044588d349410202673c424bf5e8ef13eac9d912b588f522db73812a2cfec34e91be6faf51ef2567da6670183da4c3b5a55c7584253c7a63499d43a3b16422be35100d8fc5d949b5d29deb095c5640f2231b8e5d256b00241a9e5c29555d16fc5955286a6587a82c84483610f3f21d7ee0c0e3a827db479c4a1ee82722b6f868a937d8b1ac61c9c5fd0cbaf81e1e2c4402cdb4cfc265134e61f0eb9148cfdc708a35b6b2decf3f97fe3fc87ef706dc9c9d2ae6c61589a67ea38c13e1355c8f9196f4dc463e31ec4e66140ed938e4b23f26fb7507dc5937d628ef33eecfed0c61a9b44cbca23b4fb74c003a9927f119fb51944578217fbb37796f1e1bb55fcd359512fceaa718c12ba48ff18ec1c308936bd2353949250c09398c74470adfec2934d12a181f2894f3e0d3f09927aaf136cd0d58b13efbd26dc73dd71bc2f38ce78c3dd0a6be8dc8e0452a3bbf1edd29458ad090833d5e0eebd8be166eab114682b974087f13b480de9a6b3404cff5d742da74406a6897c8a20362d76c62f15e54ad8dab59f585f7aae8250afc12477028db1e90ec58d1f2df223f674d57496d79355860065ee73dec9d7c9cdb52d5d82d2f62167c3fe36477763aafe5b8b1926033684c23d3a2a73564b178d696d6945c2ea880eff5c3ee283aff0a6d679c0e40e31227ee01ffa098eb62d466e1a81ed4fdf0b85202966fda35eafcc80154d648190ac91f06ee9c7cb510e68f9c1b7f00a87c7c7668361e1355c7c57d58a07aaec5715884d80d3b6e6aa5758a7420e44dcad0c2716021c7573091448c40069dc1e5b881cb7c3c9344b7bd6cf47c644ca4957fca5606c59f5750d564e5657757d27dcb2e7b198b64dc19ac56f13fc65ab9b33f7288f2da060a88a7605f619c474fdddd1b14f73c108d68bd9b170816d488b6b0dc4763615a5e17c108e7fc46fe713deedf63a8d8e905592e1d0ed37c2a1c1f0c963264457f6b8c3fc6e68160d4d69cba3929b8f663f9c9510de2cb162c62bf4ea9060cb6ebdf5112e1280f31f7ef98aef681428fe29e6b889b6cbedb96620a7d214f55ff59ebd5089f1f53d55054fa2dc4d9a2759926624186cd83b135f61575385285d729711c8d8e3c93f9969dcf268933295da67407bb7964dc1ea26a9190b7ceea3940a4ca196000c9af5c00af776f83794c09b84b1c91c00b7a3e754aa97dcefed20acb1db447a2da758e4526dd3c584d4846c06d6419725a5e1524e06cc3d1f3121db951f4160cabe93122440b86a1cad33a66cb907d2d8e9ab0e24b684ef5bd65b3ef12c9172173d51927ae36d1097db0247c64bc5fbbc156af0be240fb9ed8105be2d4b716e0243c87181cb9a37fa78b96dfcaa1d6736e1b8cd821aa1e5a7687b76a0f160c950df380ec72124dc7840dc2e716ed66653fce9d96cae6083e74673470127df28458be0b6f530eb26b8f11583d2a0498bd50017b0325c81b5083791345b03739a4953a6669daf20128813fb456c7fb1f0997d04ad99f35520382727b1e39e821e88c1eaecf93368f053c7dd9110bbda0c0e96ad837c060ce5a39d73810a9ea8f3facdb903564f8040474c8b02c7dcbb62565215778133f860effdd6283606dc52e8dc8dcad1f9448bd637c6b9b3958b0803543047bae4c0716d15b706b9839659509924baeeadb3531e06d1cd7d96b0e0460bc168a6637070f24bd9ed2aed36ffc4975913a4be18309dbec2c8d8423608280cd7b401910d77fbd873da1a15f7434f707dd4dec9600ae1ba656349d0dcd9e23d63e777e6264c486928c89fbc013b8361d441d3e033efc5ab0ef6484512194919cae7b6b2ab8e11e598868a0e903be5fefc9b5edf077bd6c9d229a05fee07cd97954e6e4dcf1bd2ab12338de31cbe909b4555b032efaeb4ba1b13c9f65cf7e07695f58fb56743d8901f36a76788c46afdee6e91df30fc8254a865bbb092c9ecfe1273f423be12c8c4ba1c6c8582d1add7d4f3e1d46315b818b05fa81a24d5ee6cb6713c7e05a990a0efb386c423c6e29ece386e877b971c20b85a660db7c50662d446468e824348c75b59a693b925d3c6c0d009e089b4d3986371287c386f0b95f0db906e46f479fbe03861512385f2c2ffc718625e8a510854823a8caa1dc83c926ebd79d29ec067702601025ece790075146a11791ae34f043454525b993014df1fa6991eb7b9e184b1a6c8ddad55ff8d9c7a61901ff506936c5b73081fd810ccccb70ba4bfa040f4c38d29a470d568f4c72c56f96c0ae6f932536caa25a1fab0dc0c25165d7b41d7824d73effd2fb45c5312d660035cc9ca8cb259a6d09b2115d6b6db1ec6ed38a9bedd869f33fc65c128252a69f5c6ed3fac99becb4d37240eb4df4e29bf0594efcc84404f7d252c1d71c03f1079d76d8e53af70d6bdec0af38ffadc42c92639d0d35b315c178f45008817f2bd5e425ae6c0e966d34d386cc6d834af8540409d641b9c62da3be74db84a63fc10e77e0f22789441935926a55a2bacd1bdf00d04df0d006ed3c5215d8cc732feac351e9edc4d988ae2ce121f7207e3c35719f445de3f27e7b8f1268d18d6d8663b0731251d58193645353915649d2c754ce1d04cbb3523519b2e73ea2a480b321f368d45448df9e8c8008a6f01ba85445e2ccecd4c347270b48664cea300e0125157dd72e2362808121f66df061a5eeae246508a68d36bb205e1ab701916836879ab9d5c050b518f619d17ecb031b0c53f26da2d27865377fcbd8e9fc48672b1ac5a76f1207f28fedd26869c70ec3ca91be8f6f0aac3a6dd8ea295610ec88cd3b8bde55f49a3e5d52505b6eb5531fe652c39a89151fd31a9eb13bef527677c85b3c0092ac8ee0814ab533e126c10a422e3209d06e91b26b57f417c49c60fc9f04168dfab9b73fedbffb5f5336b03440d76edd802e7c8de4d68de82a39ec6304d0e9c88c9dee6bc3885ea40772fe25e364f62235368175cb53bdc75eaa126919514eaf6de7171d244c85684fe943d298e3b0187c02d758c9c4bd2356c4de455f70ed86d1c27344240185e7bb58f822893aef765e0334ebd435627d1f4e9a1175e3f6459128065ee2a540a1492b527e41744f6e396b701633e900b9c9a7404a36453bd1ac3dd0d76f12b73c4d08ed996b6bdae13df3bd6b0f0eec1813b9ee3ff389c8d06fc7f23fc743190d8e5313f3b3dfd3d3a2063742681eecd925ac3ff7b2d63fa50013a7a503b1b641b60ed0b8409994e0460fc4da8544c894364e4bd95f34a275172550dcad8f11cb64b066d06d0025c02d87a9a657dca522fe7dce6883daf4c34448f219f74b6ced5322e5ce1c3941f7ca280a1fdc70905f2b6bc195b574aa71ac796ec1ce2f9fe5624236e9bcd35897222bae12c3ff1f4e5a4a433744a019520a84d4da7c2024b3ab40d867eef52b23413d0aebd8cc59a86bd0a0e0b1150986274d457d8542f86ae024ae9b46cb7ddb74b5776705b311049408dfe2e7ad880d98daef3f078a96a1042ff41dc60c34053b970d8657ba61fdeb23b6fa2131a0ecdef46e962950971e80367a58603995b62cc4e9f41d4197ec3bb31fbab53b39064c5014476e26f0836c97a74b1c3e69c39a66607ee123c96d1d20621cb32a04e34eeb40ca83f1959b31995ff4a8d119e4152d152e918c0734b9e7fe522c83054a28b4bb4af374b20abd956a4caa48d857c5ff950fa7b400cb7aab67589f711c0086018837f21b2f55a4f0cd0cc990be88113ecaf2fd93228a969d3a08da5bf9408ed7274db84fdb72794e88298965cb07200e03906950c1855418d71548a1069a41690deae3a500dcff9e7fd31a331ec2640cdb469f72f06b2a0cae00917054fa2a567b1426def8a68df4db9506a54342cb37941764b5f7dd1b8531001fef57d2f708cf04eae38eee13ca98728c9403f7272a57c751488d88471a2f07dbd6ca7666364ae8082df05b1fdf2cc64b03379b9bd36640e405a6c582ed2f987fc3cda58c5938da6d269c6d27180e4d8c309d238a24453bf361486acc07bc02e3e9bd92d663545a3109d69c4e68a29c8d5face1b54e4ea07c442afe06ee0dee9b0d37d20fb11359a89213ab8e1590d4748afef5074341bd14271976d86186102ec23ad15ba21f8c9273d0096ba23b589e3b88a877244659203c07fb68cd82716e29d1e0395824042a80b09794eddb1e30babe73b080249bd9a076c488c67c0520bf00237d72711dbdb72c8540b12296cad8dfeb6ca1158d1c6b60a949172182d720114c5409fb3b1323d84afec10eb0c2c23a5e6fd0c00441bfa1683ac1ca9b26a3839eb40d20f656b69776744c335eeaa1dc75f98e43fb7f6a9a769915bbe465720f6bb19460c39f15af9192b91b6850c6c71b86b6a21b34fa2a22038ca071ca571cae6c331a7d624d362df51835083f16b269e717a72f928139499ac70248d534ff02e820fd0dcf29a8ee5d9ccd7e156b1743d14fd2ab77c79f0e9b38e9c18af9c63ad630983f9b60f190e2ce01536f8219343f47db1600cfa4e1829c48c055f8471ab44a83a07cb389dab5c5138f0bd808f9067aaa64fc4da4aaf60ac3cc61333ecde9331f7093489bdc4bc83b8ccc61b55e03d15944ec40933e77ce9c44fbe3557391f61b80bc7e8f7e00d0037f0020be7f005cda6170d17e1e206fa7e06235d5cb0e521cb2316630c8e00191d660c1d6621e2a63218df58e53c011126f382bc281040b6b4266f6d512468f32166d862181e66bfc2726921cc15ba643d2760818b56a37f0f9d458a20181815486b04d151ca0c5c92b9676757c7cfdd92a914b773700c823d31ed4261eab0e6d589e69fc8dc39c400f3e3b192a10a67a2116e956d91b37b204803735bc2b81161ebec6a2603145e4e8fca2f06b898711a1332cbae1b4a553d206f9aa63fe33e626ff2c43890d78f62b1e8bd9d01b44920b1608bf644e9345bfff55520097e2ca700dbb83ababdac625c3029a781febb133b0ac8f807f5c092da51e758cd40b1c162a6c4fa60d987c8304a79c80632de599d7d8868cb0c244dc2a5ceb4d43d5f7e623645e024a890af8e3e7caa4e7a11e801afaa7450378fe1696605b1b0c3a907230cab4844b4f63027a208b0bb0db50a5c872fc82d187953edc9f5e5abaa8daa396781bc9e2da142a74118c117d1880b02a45cf9c460d9825d541593c70a16502ea622ffaaedafc4f3138b4bcfe8b80dc8248c2d7422a55b204c4eb926a5ba5900ddf024880214f30cd0053f5f70996b4e633667198ea2cbfbc61382af41f312aa7d1b926306e8965b9ba77a2111a7697f183b3d8152594fe510e824069f40ddd8653c763b1010aecc4e27eefdabbb6db13e8bd8504e66d62521969cbc068d66b28cd028ff9ba74873a3375fff8fd61453cf260f653556cb3e2ce3b5a1760fa72633cc9a6ad42fe19b63c81bd536a73423f91e6398a15e2a8a29f39fa1388c90a989fab5c4d7588a81a0c4a6474458133878b6ff2debe5ed3ef79a37b4bbaeb533d3cbdf4b4d244e67d696468b4bd0e57d9bfbd135d4474d328781dc533f1ee55fd76451b897b371fda2e0254ab471a05ce3829ef7faebd9412388c93852238226341b65c13050de9a6bf557fac971e411c1384051f82edd30ec42ef5c398a4072e0ad861c100fa6711715ade39721175704d098f1b5cdf0c90232bba76ee584561f919c35f56eae25f76138aa7df0267c494cbea5c0d7bb00b90ebbed12af1015af73e3e0b35f4b72a5d132209a85bdf4a43045d13f06f5fa6a1d8b3aa9b3b8af9cb010f0ab6b1905ed59a47caaf1dd6f8b4f20571f8dd4ec90855f7e1a5557e8ab768d8cac2c0fe34f967767f50e18b8485bc526c1671919fe217791127203ba3dbe7bae2207b752503d82e2934eff74e3ac4ed421dda267206b60d47739e70612b7635fe919fa6a94d57d1d8b4f8e56676a34ffd6cb08369261c1ae94695ed18b9b2c10582cd714345702b7531ef4af9f36132ee497c7bb71357abff431224464c9c929eaa545db3d745e406e047f7bc1bca5655741187c22487d2b2327ca0ae85c4f4c6e18c873b240380a22521098886ba691d9419e21e9b855c0d594c30376418d3b29729dd1722adc8d7e882f2b70e45b966d05521c529d9fde1932d9828b6bc317be58a7c144687298c7737c420faab79a5730905242eb5a77fec0a889eda79d4c85aa4298b13b727e0dbbaf8c6e2060c1ff91aab1ab04e0923ba25edce2c5ab8ba7803456c8487d76cd05776c6a028792d85429d67422fd7f5de5acfcfba1dc12542c7bbda42f9809af836cecf03c994529800282af4c3d0fd012b1fc45f6d01b21a785bb52e1b6576a6c81bfedd4c4977ed3ca7ecc44cd0eb5cd3da0e781bfe76bdc55dee121e810dfde06ef74581c11bf38affcd01001ef054b3232fccbb9b03c5df0bccc29168ec5695adb26818b0bbc16c80fd6e06df839727e85f910bc30fdcad0d8425474b1400f7010bb606e3111205b09295f017bde58d0064ccad0362811bae6b0d10231582196cde6f64567f8b25276e4744202e0aecfa686f32fbb56ca9581c91e526aa3b25d7254d1613c029a5d115a4ab399b89f08586d244b4c18dda41d2c06bb4fc43cd4f4353edbe9a525b5a5bba219cafa61b98bf4c354b99052d7d26fd47c7e933e46027ef8b4c6ea74d9e86eca16b0d8375f29bb6301f626a3b34f505f5a13283edc02f745dc9a7ac3a94e9852385400f7ea32f76e800a947790cd08cc19661c0c2a522bb143644da7e0609a8c85b9b9c485fdcaf183226310994a264d08d39a5f42756aa6828659a43c10101c5e5ec4e8d6a3859ecaa6fbfb4d316e5f01a9538648b417055f74fb6456fb62f1c294ac6e757951cce8baa4f8de93872132c4f0be372fbd97b6de91aa95266fd4e6badd9ad97cfc7e3709e2b07558abe067515c4f26d221248e4658d812fcef609e8a181bca165aae03f9eb580f35f150d63dc7c91f31b9357d1bdb1b1697e825336953c0ee0cc6a842ee949d262865388129f2bdc994ae8d86c0bf2e89a6f8de9009aceea3b7a3d635673b445501b32cd528e8e0cb06e9e744d073bcd151209a6cf6d96f0ffe03d221d9e2ad941bd57f2a73c281ad64297938153db167f53d3cd0c3eb8b9d9a102d76081ee1c2dbea37e671ca92a4a98c113686f098e56198719f129b9d476a4993b823edea10001545dcef644eb79982765afb9209413311ba28c88d5475fa304a992d2a29c07ef1c1ae60440656ef0a6faced862f0fe290e67acb18c9177008d2f8d5ce84da1deaf638019ea34211688da0f8ecef5f916856b3c831c0635b45dce2368c43a18fb62da2ef093204e4ccd5e5c251416cc2dda95e72a4225a8a8d050780c8b69f0344bf24767517518832e5909254e0ddeaf786b2283c2744b1d445866f30272bbd6356d17961305aaa84bf85768285b62136e41981379ee5171c675aaf42a52be71e28a864388881099f790a0b090c370921b4a44c5efb8f29ad571b1507fed47049045ecd5dbfecf497841daff47c361bc0d5499b3a80b5a299ae3a19ed2ff06c9e4aacc4a0035df7986932cc418b715fa9932425ecad6345fcd63995f6a8f4a959d3fffb37b316023ee241dfa56cb5f901eb9611b2ed7aaaf4ce6519dc1100cce586916f31c33fec4ce7049eb0af9778df8c63bb9f9179051a3a9f158f83a7236471e7d42785e9a3836c905d8c829528e203dab82c0d7d2ad1a95996a2289b40bc44c8e1b00493285b8461e5250044310b764a9df757f732322956dcfd29c6446bbcc8dea6bdfd250d0b82d9e1232947a01cc8674e9c70e17ee28c90e85eda31eebde7186c271c36248eb631ffa895f507807a7f4cdef1987e114f8f7623b4c84719d988ce588aba6b12f1347d526fd288d5f65f27bb71e4189bd98984ef3905e10d66c9895939ef98053fb6e3b0c46292fd8abb9c79a0508049176b29ed694a0e9535b4a25c42bf4a5d88afa89508aa482a2ba16336e44e96b34b2e3d91cf987849ed3671ce2c87c3857eed3a8bbad51cedbabf2f8dad9adf670858058d5bdc37c1021ebedc63952337e18e5a33b09d21b6ea4b836502f8522207a3593f4c269659394880f5d453a50158330a401eb6b4e0f371f7e447a1c9bbf608b34e8574486c8fdf3ed0838fe0aea7fc2901c2f91205988cd446972cc053b15100125532014f1f4c40d31381508a91778690d760635dc267c74a2584906157b4dee696ef4e44beb932949bfc4910085e0aaff97d009db0142e14e4eb7b07ccdda88d8840d358f8cd6f07d1e4ddaa469b5398c8845b40c00cc57b05b2998e49e7b47fd84c5fa120885171f3e2a0415078deee75ff9056241ffd417030834e1a5bebf2e6b8aacf0c612e5d90d53716cf3b2645ba8c250e5d4e403b160b63ec14587c57a5b55108dc4ca0ba1e32d7b526e23ffd50e1f60c4d817ed8ebd4dfa722f692eda8a3541084bc758fc6bfad34eefffc4f65f9fe455b79656fa21d3c254b1b2efb50acf067cde5f83f5c295d8b53f21dca3cdb4b4090141144c9ba95eda3b92f6d2b8d7f0d941748643cb2d76a42d81835f6877058385114856b265f314bad529ccec6c8d480eb4a4a27ba4d63ed7722579912c95db6c09d8ce74a283f6a001ca23211cae3e031e4299cc2e77cfd0a9cb138bdbae9744b279ffe514cdcdf7405a26075f8daf3258cf01bc07688dcf79ee130bea62ae75b621683d18ea665409051530c60745c15bb6fd0c1ec3c64d56cc538b2d0182e21be53c2aa6e76002935463d2951df6c00db316caf061c81058206e1e9f8a9206091880c9eb2038ea01fe85f2e69b7e8d6bf41793e155505d100bcb3a415f0ef4aab81bc2c209b651d71b2b4c72ea8a73a608a0ba759863544e90a2046c19f40e7a2cc44b8d44773ecad4fb675d646ed15ff1fb404f7442d04a0c94f90a8543b9dd2f5e6cf6a58fea908e94a5073119609098ab29278d3e0c6c342c7be803422d245cdc60968bd0b2b52a557123c3db9b915bf17a2300f46f7a8e9c975456537a5472ddb233d5ba0330a39113150d470dc930917802630c8b386e14a46daaa606c6bd908a71dac445fa10e530e869013839d68eaba99bc373a1c68f8ceb781a18eb4c717df20d6ad203cde3321e4402179251a18f9b094e89542378429cbf819d18724b095b09eb19f94a37b49409648d51939af69c1d13b22efe3dcb34a387e232ba82f784235a71279270a5ead07e6202979f277a5b9a433119853c75fb09d0a42267ea6501ecd28940c47ad506d607d6078e5e69bdb3b8fa8d7c5b0b78ffb59a99fae287db44ef88a8bf1b007bb5200b12a1e766d8d346b37c46fe53d02da63d840c31cc1cec5a03469bf71ae6f675a6c82663d0c90bfed794f1529069a0009c6454fe9bc1650c8168a9e10b626d93181a1514e325f28fe3d0b4c07400136bb66eb513ae5a3a39a56d6c695a31eadce7e9f809e72818422b713a1b968eaa704eb939d0740fd8d810b2270dd46182b0c37d27508fc2a7ed30fec8eac2f1f0f8da0b9706f4dbbf93c97f0df6bff8f125dc1f3923a0f2a9bd13871113c829d23530404e7b9b45da5170f28db56302c551023c33fd4e94aa6de0f7e3ad0c0634c1d7899116d5c1ee2e52e0c2ebdb8f3f2c1348666cba7fdaa7881a5abc3b3dd2cfd36b8ecbb86712b5a57f2b2698613eb07afe7bc24d8108349981b7323f860945928aa4f0d3890572d677973b2e9b47d31e0d0d11f203d1257ba9fd02fa0bf5dfcd70f1e54d31e1600640f62eca3782ddac1df7eb3ad8e7bf8322ee4e76dc99c57dd06985bb52b09304aa4232683d035fb997e9b8b5d1bce738f57c469ee1b67547e3b1cbe739d02d86830eebb6f44f28bbe2267543fdb1121011a6e4bbc25e859a504a1ccf73c1f83ac9f174d1de405661c4b75610b7ff6d89618cecb9cd467de98991c7feb7fe7154f940f74b85c96d032bbc5ffd6bb38ebf6c5436a2f67b8d6272e0a69da0d774a7c8df7d6e4aae5a15d27c63719459b32a7eedd5d83cf6a757cfa841c6f70d1cb9347032292c7004d088ab7199f39ac34b2affabc84b37c7818b3196fd4401a38bb35fce5a6eb23d45f53ee292a6f1fa4ea54791ddcfa536fda46aee7442ed8a298930af67b68810cbcc692ee96340f9f565231d8088612fe6a0ef30600342e50caf82e4af23b960e25deb3a7c77535dbe926b2b254eda26a7aebcd5e831ba2030652d416c9493962cf2f34568b436b949675a9c766b5e90ff39544d77d94be59ed01ac18349c5bf4410a68f5b91d36dc8ba2def2ad0fc94be0f1611c5f635d867fb760c38ea3aa0f2bf866a18150c51f348fcdb25462265d6b26de6e183eada69beab6c715d67f348b6b4a89ba75c3dbbc6e12582bd5e10a9533a55a5056ad1072cc1376893cb09273809ee761416b8c34a3b6dc840cf296069c54edf1e0e9989bdf64b2b1432b8f0be1a186f0de2a96550981fadf7976c92cfd231368880edc2ef11ae155f8997bb071b49f1047c71b688e9d469cfcbdf6b1d095dadadc3a8e3b58b458c46a2d79c8a91dc4c412186756162125b7ca1d5a0c9a40e882367d3174568bebe1cb0ccdaa3722fbefda24160791578a582d1b1ce0f4037949354a7b49bb79d19f864dd62e96522f3ece53a78dc7b9325c66fca224d24939800d048126949d63a58353faed178e85df8c567d39ef84625111f04cbfb401628a50b0ac43eebb5a207dde5fbdd7dd5c7a9ddb1a55191670f8d968188df5caf304306a7fa1fcf5c4f42f8218b1ff985df43ec0e32dbb14505931d036cc186f73cf998852e53ee34eb7c76ca87b74069d43c48a46f4ea580805d4347ac22fd05a5280d49c4063237676992155448c1ea3296f7951e8a74bf2eb4b0227502a940957d34674eeb394268331feed2c3c94024944ae22789794b244f836559e6072dbac936419eaceddb85be91003b851702884232e82ae1b86fa07bc2710259759bd302202a0e4480b028a0e900ddd1b1d4251f4118218fab416d8a44a198da682f638862f93c417e4b1c18eb68eba01b1e933094eb02f6170d7941be03ce7fb9f65a680b9f02dc073c9e5eb3b1427710cfe5176ba9664000626b8ff901aa70ceba50f84b8c3378dd013751aac39e09f33976642f498cd902804d0a1a056db7883541f7dfc7046fae6010fe938c988b164c58cc94e97b43f0c785085df5ef2285fdc7b670c1b312c0db8e29fd1fa8108043aa5dc8f4679a0d6b49bdc5f7a9221fc99d80b75f8041208d062117fef46c66bb0cd454063224095affd02172a155683532f1e6855cd0281a859d84a4538b21f45ba684ee8866fba18ba2e4d5d79c08c92256447e33fcd742483a31faf61276c030abcb226436b308b9feccb82e79a6712d1247f5c6e31588caa489844d7f1c241bfa71001b771a1786610d9a57657eeb10bc728f406eac48cf40abfa339979d2a65979deda37f403f72aa27bc1e56f92c35915e9733d854f58ce06b1c210dbced00dc2cc098e3a9fabe5b95890e56fc7e346d7794ab1c915906061c90fc09d053d44979134c67796493432f7b6defac53d07ae33b4a0b926df59897943af8238a88e273ab2d57295cdcace3710150b18b8b434d2a9cfbfe594856fa8cf6008c930ae54f9b4ffd302c808ac6511835fd3566bb9d6cf13e7d30241e30adba399344d19301e5986a448c9bb0e94890c106008918199e7042b400fccd009cb30bb31d07c0ae46397ea26a7de117196aafa22984488cc7c9b565108212e8c87640551374853e6c9b7f8eac97d9d30227c0ba35049fe12693120408969d2975fa1ad687cc6400431e325cf183003cf58525dbbd67e5e9ebcdc264ad9de4689b3e47a0df71fd30b5821932cc122d59ae795d1cad625a492f26a1a09efd8076a34034cc0b4ae226ba566651573af560e40cae4f39d512f972a8e4faed028b762d3b8d5e578c011d0dd193a701f07d1f6dd966076afb8816ae51a930c0f0ecfe4fc9bf1d12450e8788cb5c84b4a0cb15a0312db8a3c89fb45bc29300b6c35b58072269e60223ebaca178b27fc93710c147d4edeb5871f1f76c04b56a27ef3038670739a5797ed82c6697fa688fbc0e5687dab7ec0154d65c40864ae59794f04632e1136e17f9dda4fb88a907522be60543c2590ed863c30882552209036a3ba9f7ff315036afd086a58403c600402cff2c102e5fb837dc912895bdd1dfc6bd70f394f7200e8731e38575d0c1b231e16dd5e4845b6c1558790f13ea503c5c8e50de90b756c2fe92f55837501ba504ef4bd5e0423ca9ac04778b7ee904673f03c3f943679ff147df1efe3540f490c6fb79220a2fb6b7b8fda7ef08e6fdaddbd35fe1f52a1d4b8968fcca96a3e7e99b56aa6504e28570b13e0aa8bc5e7ff98c5b3e2788ea5239113399cc3a81339e4e67e75359086c6493cc7bba654f82872db22c7a4b7827d51eba461e320e01b4f2b00d808fea301094f52f1092f7451c7c6c1d24600af5982d7670f62b61031e813e32371c0e4b79a7ca00c3a80bfa93c5f11f5dcf7ed9c4d81624d47f834f7c92daf77de0bb52866c9393899309e56de131898eeea26c7f0551bb8157c7b818ac1034490bc383512a40c14eef6b0f01f192633d940d8e20b8b6d724def5f24d80e1507b65392842ff76a63b9633a1df7e7377eb1213d029c6e6433d132093d61b5338e0461a5d787fb527d4afb94feb2140d0f2d589b8189fb58a22dcb98f8bd3850c055d17d1dcb053b682502fa069dd87db7dd35f45b7f3e5c138d945169ec65101bca7dc8df2d86808f9673bb7586873369d4ce8b8bb45c20e3153a4d0c2383e32715bb1fa419196cbc0425e32c92d4567fad9c8563f8b7816fab32592f643034f17e73d40915935013a13db9a0cce19765ecf196f9010f28da935bb9257a2feecc396dbe7b8615eeadd1e33986d47eec251ece7d2f766a65614e2666e9fbd4f6707f7571024e9f520aa08095ce192c3622ad994fe31139225563a670da99cb9eff5bba867aec82b2c8548b5f06d7c288fd783c0fc276225475191651cd5978b9ea2ee122565f03b1bbf43471ae3a1f8e7c5f6c72d97d8af78903fa4a15ef8343076d258af585039a56fa6b553c611430b3963e0aa0d22824b8dbf081fb27890121e761d49919346d603ba2f4db73adde50cd045f0d3ed4f23fd2625b1f2e67863068168117571ae516277a62134fbc9cf36e7a16647f902dba7eb3dd063f2b05028bbdb354a2192e5beebe0ce3547c24f7220b20945ec5291c6495af86ba82c4ebedff158448a687e7eb8a0c8aa6be669c80e0d8938cda04f1154ac5cf6980d00b305373f592127e453f8efc0a564a86a1e1ea82cb2c8649b7be2a8cc5059cd59ee9ca03788d79bd67906d9e5faac2ba1752f8d71fc00ac85b4d4362640ed03ef4ede7bd3d8d48056dc7b884970a0322747cc89b271f4002e8e8d5e3606f3e202722b210dcd200de6e76bd18f4bd8aa3b0fdce775a4aeadc49ab8fa33263814f3213cf06b3c94cf28165c4714cbe36267340455a7d10c89e28cee99b3e73f03b1b475cb7368ee2f9b7ca29375ad5c0149af5857b0edc6505a20613b70639a0a0bde9ac81c346e80a8896f0366aeded9ad0091258269bbb3b7b257bf701b07f77e37a3e7823879d788e3808d87401f42d5cd3ebe8a1ae2e559ef2ed23ca100760d23bd924c05cba08be7ee8837088f529c321848e3934a2d5ca7c0d495d0d9ce24f3d3aacd7e7b0fab7b6402a6e966b4b75b6020184b2d0fe47ad01bd0dc5498ae2a47707d876c8f77aceda7e64f8e51822571a2adfe655fe25abb46dbdb95384ccc20f5141ea4a949993840bde1ac259b0becd7463219b5256cec370803cd3c9370eb34da0c5f4596b569614805e420cdb739368e324862b98b21c914b063372116f17e6392e0b316cc664f624062244ecd4c422b8819e626bd8fef92d3e2b043182b8cf764cf0c9d70a082c89f49342a8e08c5006db0216ae82ba62fcdf780a9c5d23c629cc7945c41a19934ac57668ce8f47e6c0d94e85d9219553591f9822c6d85c2d9cd8b134fe26a3327b3f7266a07f896f358fc33f3a6950f6822b4837d3c42e638c184803a1cbcedcce6acc9a6053693b5f8f32fd58858816269346dd9a2423fa34a31611346c3e557b10c946577b4e923390b1052b071f2b963ef0ffe025e9151b318c16729dd8e3ff039dd2b7897031b3367cdd96461ddfaead33741161fbb62f620a92f286e2c0e443d1f5427c452d5a04d61bd6669052cb3543a8ded247a83eb770170c387e88416b616d9add434bee60a2a105c8f42df583db51b4980e72ab40ae70f8d14903aea075574ef49e0226a3a90bd28c09dd559e2ae794f1e6b3e548eb991badae70edaa6d627460f27478526905d1e188d2fcbc8263716171a7131c8fe97e82e00a659ff182ec45c95e989eea2695faceab435cfb611a58e9fc6f772b0dad7518c053f782579a12e4e15bd9544dde97852dc380c8c903f6057a02371a77cd075a900630b63c72039ef386ed2110ed41702a84b841eb94afad1c3c449e5f3ca229cf24ae3b6f51d5f46bd687810ed49146307950bd3de225456125990adb44e36ced2a039413e003ea65698d647bd247d374659e7341a0a347b4302c11e39c2f6d0e4e0299619bbdf98eb5d1dea6d36378b93533e9842ab250ce8e8d7c14f39a633c7bc50f07815a3b4cdb6fb2d2002a50dd1527edc84c34b0d366a85b362326ef00e93cf873f67cf25a8abc272385c806354c343b111ef55974174b90625b08421c295c381d9ca307572fae626252f47cab69e2ac3ade7c8e3510cc3edcf4411bbc4833a67832f4a497a8ec8af67d3f27399feadd583ccae2cb7eb2f168d5f815089de864c938e5c4dba3e002196934a43494e9b966af1cf1f946f616adefc0897157c2e6cf3889545eaf56bb20db8a713c4045519b88668e21f323e70cd4a2b0b501c5024dff373440560d38c38fcee2df5b6ee0c1b0a2d43b36c28db99dbbcd4b6a2331820d0a01f0e73238ed8e5510729a96432da704f221cce18cffdc4280c0de75c3d459dda9828ebaaab97e7f38e4b9f1fbfdfd56d6c8fa2d389736bbc093ec0d15225bb383974aee7e8d29a8aecf77ecd7b36b8613665f785fe2b97b6683e8fd9f0b0fd621be24cad6820c124569146e3ff9058cdb02cab5c514af0d74854ead8844124e557511563a551547089728c129e7ec40fff3d855e058fa006b71e4c03c80c093bd1c9375ead66fc1164fec71ae91991e2448c60b18b0321b4d6639209d0646fdfe25a6be2cdf57329235518b626142d79efa791ea79b43f0b0e198edd64f61eb8051750fda64a46634b0a0d45383638e503e0489f6710480b9550d2c1acf506fb48057525b506a465dd2ce840c86f71d9e8cdd6be9d1011d670d8c13603f5ebad5a375079163d497462c92f4012aaebc20aeda3cd5af9445235f945ddd4f9f0d4fc496627a0318cf8e1b1406540f526cdda97d82f9a1008b16bd83d6b4228a8b7270fe37144f6d1316faa9bb39ecf2724efee1e8929508b6077abb3971b9c0a1144d9f4be10d3a4ee4bfaeb35e8c90bc0e23f19c242c3fc3880beaa632c6ac29622a269fb95e9e7b56c8718b459663cc3b2474968eda766749221dfae1b3ee1528ad95d8355af51f8d8de8483203ad86b7f600d03238a9795800e2820cb741dcf4bdf6bbc6bd84cc92e83ecf3f921e4dfb95746fd8f81b8842369050f8b14a42611f8b60180b17a73615a5bc62b0cb9cbf6701a859d44800debdab5089a24b173ad01dfabc2e37077137bcb2007f025ac0c97f280899a9e88302bcd86b821d1b80c5f4974e183f3382aa00a8979803b3d95adbbe1cfa1ac45615949dc639d743ae7682ce69b9775d17a88fc0a026403c61bb22814001c8af663e3aacd415f7cf03a531d2381b2a39dd180d158d168f483dd90d7057b604107033eb0e3f8ed0e12514ece89d8cd196b0308c4bc78c4cbda566ae3dd975aae6be68ec89990291ea54ded919045ddac4ef22389ed1aa0f12b1ee4c03b8efc5d25684326efaac11f2bec9d40162992063731ac2e7e0bcf6d844cea221803346aaf489dd3532694d1a81b6845807b7a8d0b5fb1452838e9a6161c2d3a1ba47594c214f12f3cd7495de71fbad8db84b54eef2eb757ddfddf6d9a280d1b4377e77312f4969247e6976069e8e02fea2739327082db20684d1efbeebd739b6af2143bb7442ffeb37c872e19716058c9d2e150c9b31dce56e9f0db566d0694492e79c33403f9d17d02113cfdbbb589ace91f0a02720f1aaae8c1c434489030218c68a08cb737dff34a31fe903d6ef7dbdc3b325e03e3c3a7825f4df1964c3572e3d296157a0fee32841ce718d1585684b997bf38bcaaf6220770eb2efc531266d7c80f143db1dc73a92bfafa1fbefff5bbd57fe731f08f58a52d1522d2fcce013f9356df15eb14a32f384d27974cf38a77056ae11462c462f93164f1714463dbe79f912a349b6a017275c47eea4241a60d3c030f97241aee7d7d96d99d4e179afb3040a8050012e3f4abf8ba7a1bd90d6353d8828cb747cc539ab171f929722c38fc1baa9e5c8840a7eb2f34668a998b6b62e03391ebac3ef730e5348178ca482343e7833360672349b64ef9822556e71da7f6381ca18fa9254c36fccff12232446be6d0274f40d23ffeaf15ee014eb2f115f02c95a95d818922217a23a85857fb87064edc1a96c5888c1641773954c74dd6b16fc06979756dc5e2f250ab44bf4954ba0f6d290e6db1f431e0c159e5026e0fe8090f747c7015552e7de9f88a8e5d2668210b62731e65b55d00f543ff28d9e0b925db89b9bba4d2476b14d27923997080c0ca5adb1cedf1df7723ac8487f6a4b25d537713a9c3c49e6aaa4b51269f092fa00d4553e00536783d416248fed70d961f065c60d2530da0af9aef37a41186988a58af099750147506cdeafabb345b871ddd41a0c1411138cb84ecc19875e1cfd7c6eb4c8a7f0e39f943d00b469420b8c782ebf95b88de173d1ca00979a20695d9e2f51574a9a7d2b88c5534002acb1ffcc5f0b7ed8a752d4614489110a554edf570976438c0f566c13f205cdebb2239a3a92f38ab88c0c41f510e7312257ec7f9c28513a37443624b932dc42b1f612068700c9f8c655476486604d8422a4623fb9c84ea531b895166d7ed551ffef163bf5eadb9393548b884ba53880d8272d3c1baa3c19a75a530416095dc0796d175db8b54602c3f24cf34d5750b34351310ce66504662aeadca2ca8ac8d1dbeb3b3cb6c3a435d1f7e5a83974b205a19e418cc5cb709bc553c6dbd9532b4e883991b902067a633fe4a7c55e310054d5a85eaeeb7d105dd35f7baa17c9910fb283b74936feb59ce007c1c016633ec81c6c445e6e01a581418f700841f41b286753267ae3cc94b3271bade223325a59a55ec79bf09e9015ca931808f41379a310de0683b8b517e7270821b048aa85aaabc11a0cf6d6eaef3ba92a53f45494a3d8ce9699b1a8755e4433f2400eafd891a4b9004d422e9f7f69a45aab220026896d2e4e25c1f19620e4e080c83246e1dc063dfd43abc33f8ea94ca4a9cc3ad91637a1b1af47074d12789102376c60ac84634ccfaef71b2e48f67fe4a9b7ea3435a2d7200555801d723440188998470289a9d4aaff19f2bead2437e2dc976518e971084d2c2daa0e36594e338f8bfe6c04e9cd1128c4b9ac8937582040b83b7a320d4351eded8aa724430eebcd0d88e992b4cc2216d42e59bf894acebb4f307052f0bc3ba0ee9b709971ebbdb4d5f546baf36e869a811cb6414e4e176078bd699183cc0515773fe58a2a52cdbb85615d37db68c8b6b8db0318a23acf36bc0db18878dff881b4a2720610db3508b046118b02d2717f3c3e8a93e59c97c488873f7ed5239551a2f0576ec0290c78ae0d4c267245d0bd3c9323db6de57994b90bc50ab1bdf30fa3cca6f83a41333e7e14e96e87174e36e80019d036f750ccbaa8df9fe7ae8ae3a0a09314023be2a140914bf070bd3e2b64bf918d9499690054502f133320af031467e1988159f34acc0281621605407444f9e31366d3654b5c83d5b02854a6318add6ac1d8fd4a942d4e813e222dbf32b002a1e2042eba9401b2888e621571192dd3748670d87d5d737793ba21d6d6e12c94b034c732c1b2aea973d135770016d40630bf12e085f07a1a05d369acfe3fe2267ea9c6e6d2c3438f602af08de5b3e88cda6d3840df2fdb794a30d165715a3c3409ec0a94ff4c416dd8571e7f82cde1cdae90dcb000eb21ac8b44c88349fa67b05d0e07d80236ed17ae6058c4fcca56ebae528e367c1594c0e8b78477b72d084b375c0bcb5febb640a7203125377befc73b2b88c9607ffcac20e68488c456f72fe6d15a1bf7097123027f626b4251bcef06a85eb00da5f80b58978faa1e5e0364050213d7b4defe34d533c60062420a04e8c80d5b684bef193f7aa2a590c42ade9bc9b1184d958b199c4d4b6e0eb487c82029410d3411cccde79b47429a04931717298115149818cb0cc06189be8d5b2cca2b0f1aba7a5945766a740f3092d31eb679794ac532862e6122f3a3dc077a6fc20c214cf4ec93f53a50649f8cfb592a41227c38fef6e0858dc57d08fd2d93515dfd12fd8a05095eae91a2f97fc65de0a14adb5f89465f4ebf8a4ac132afc217ec12d58c2a93443ba48f8199d01457c47b9e7ac9582026b10145deeeef2ea565e4039e37b6961e71b3c032e3eb1d1bca617363b64528222a5c8f48d3915f40575bfad01f94faea11ec40c68446be5909ab11d7545a13d000017f88761e29b07083215f2c2bd74a2bb2fc8dbc54718bcb0007d8d3aff7084c3a41d2123ca7fc70bdfde176dea5ae5f040f311ae6f142a991a4ee7b1edb5400d61561f98242bcf4f9e93f11c09c2d3b6c362f24b97220b22a04236551e84a5e2c2abd35b1ad552f5f77ba6c83f0a55e86e75c1ba73a87fdc2705ef1029143c4620bbd014cdcc71aabd8262fa7de2c879232dade70fb5047a8ad4fbb05ea0f0e89e9cbbb6555ab82235870782fae57365ee987b8de86cc7f6edb015545ce30951ca585aafeaa44cd56198742c5d1108634e1eae12e80be5fe6facedb65fb0a559e8586961724819c63f94241262eefab0e017fc2a8f8d78508d2f8a63b33c444644a8c9f45e7eff2320d84bbc20d2a0724a176db257217ce8358e18ec74f05f77b6a734b1f31f641cb6a4a032c144322ff919b9c2649088a82ce02812214fe0c5f68ecbe065e0425025f5587214386cf8fbef30c55248392f548af6543a167b15d256fd04a55a22b76b1671cf8b769c998be6b33d6fbb63dcb1ed06f2faf6b96b7f841658be2ca67041e1098f3002542f6f5c64b07ded705c3cda01ad68622a9e68472a308ea2a1d5139d16976b0c23ab97f6fb495779f16b403f0d1657b53b4787b35e618a0781b0cb8cc93ba727a588b3aefeb90ce3d2af886d76b3ccd7d984347d69387be000774bb9ed5c33ef58fe8a4cda572f551b825f8d02c5915c406d1ce65d56fc3b75e04107da63a69f272cf37a52e1b2fe341c5b6d600c787a506506f71cf42f093a1a2ab68092d7da83a39d6f1e5379657794c990fbf11506542c3820e52ee370f46e92a4f746af0abf0a634f02ddae2f447da1bb95de7f12f03a986f0d1d597d3313c13b89f5ef58e8eb3aa752d496dc09deab8c67106fcd335236eb421238b5f4bb21f5511cd3a60933f1243c5dbf96c31a16db74e0b545b32ee775e13994eb09aa71423fb0e6abf94a31c400471d469dd0b97f3a45c39aa9c6cf72770fde55972e9ceec0402094c13ebd9f404c11673f7c685ab42d58cb7421998205fb82a13b20f5fd1a5ad08249fe027d03b615a3483b85a90f0ec1e1fa4808d773ac1c2ebcdf64eb076d29cf30b11f3e4dd5f3205691f85b8459e7970dac3484b6cb122ef92e6f32d30ae862f05914f45aa7fee94553b3163cd424d2805dcaba4dc0585f6b5610137e24a9b8659197a7c0b19a887cbd44c588ab6dff6036dc530e18ecd2385fa3901c5ac669dd51c7a8f32b3c508cbf19cab173204b6714884d6d763509791107cf8f77319d9723378f95d1e088f69fc611a2d77313932c14f13453efef2309553af9d7f0a410948f32490e1d604c5cab80b6852144083b60ab3c3f923d6ee4ffe5dd715c1bd7743c097531ad26b4eba14312e00303cf4f97f15135c249a6405a9d303e3b2f61adddf18a0fde0f73606d51b32be437020ceeedbe36f1c417b4913508ebfd9e4e09ebfe8fae66d132eaeb8a5e014dcf25dd569648f8538d7698bef655891e184e0c630ecc541743435b1f59ed537448a5c22ada021d142ddc8f9baa10724491fde9eae5f81f98aa3c2fce9e82df59a5d3f4ed946911fb29e44ab7c7bfc9806563e0e34afc1743aa31273343db5eda8f7529da9dc7082f1e82c6167e1f6ee8bc44521727af5bcf1917e8e4d6181cd0c35f6d0cc7ddee80b9ce6c61dbd6f821b09e77f2cb76a654009f8de18f1f216f712372b411cabab8e39c8266c58b3e790e0d05456eaadb4d017114a604bb4e52aaf25eaa26069a8692d25ea2fcc056929d60ee2de1f7825fb8d2e60b5a106de00e1245df3ed3f3c4041127943b001e532463202b9fae89870f84224a4dbdd2cb53ececa95d0c336b392b249cf782604f4093aaf1982c5ef9c3f52f43afedfd84a528cf6480d22fc0e68815a1e863309064372d8e05585f184d88986054cdcd21aa3475aea56570195855e7aebb9352d6fc5a19b88535313fc02b09fce447a72ca7122d1539ae47e1cc7175d7676d87dd04300af82894c92a5f00c929cd9eeb52c5cc2f25cc2b7a71888764e7e6bf599f52aff77b817f431b23077156146646d57ea04ffd676e0dc7d614607e62f543b1c420c577712a75983dea30d74613925e87b81d68a890b8b5abec28880004eac63ee2f281fac5c6900b893f3cd8f063526d156af821a91d4cde015fddd92d29e1436d781554c6ec68d04906c6897bb06eb4e2b444321bdc61ccfd1def3ea7655aa46888e42f34a18cd6160c80000823284ecaa73d40e2025340d47a3af2562512e3b6e486857f0e845e40635400e940c1d132455296a239294b4a31805f6d0c005cac12f6cbe9a7e5bdc68d36f84b549602107d7aa54118b94319ac1edcbf79280706cdefe33db01c98225c9bc4390da58d0610c5dc68f310acd19bc63464b4089fe195ea51b2ea37b03f7ef1777eab9ff7a168bfa9cd5119459733e4c1a988fe638b64f5b86bb2050d885584e8eb2649362a7a8d4277d7820911f31a261873bbfa6183d50699aeef1e6331da71b1986a3524d055d918cb17cd8ec47719565719064bb171d370bd7b2bfb886997a53505efcfe85ca0d650bb3436eb63b5452143904e76084e04f84dc61bb08fc7a326b970c63183a28650299f52e5e9ad9d188269bd09dec555307d571e6a27c3510c9a043eafc5a3462bd14121588260ec11cc512a8cd46b7849e429be31ca09ab6fe588d37c9849cd9597dde9d51a2a1bf400680595bcf81b9db492999f2768f9a138763693c8a689850814a13ce408f7e3211fc7136c45e46eea9adbcb8588df86642e02bdd8f7703a582bb94cb1455c7011d8c97b90ba798ecb096acb299898bbe6aed725a717592b5b93cc84c2d19f7952387a610e0a11e74366781a2898ee5a0e04e59fb428d14984a6afa5e11b18f0c10a7726424727885542f945221a73f490172472b87986d187154fceb3af0a11730fd344ded9ba60ae90149be21c6a0ae274002f4344d0e1b66879375c54fc71df42947c0746b3700fb3af5545f09b9d4895e7a0faab188fd01a3da4d38ef85a8bfb4fe57fe2a0544cdef3629d88abaf8aeaf3ccc6f1793c9f5fe22076482974a4dd66fe461d8d09cca8413dd5b840c50f9ad22815f473f6fa8b26032c16ccd13a1e9036d3eb7798ad3d180269af9a769887bbebd85e5b0fc7b59c0ffc42659c91a9437451780fea7b5bca036e77deb01bd466fcc19021aa12832ebac2804e48faf67265863da82d3f7d366a0668d9f51863c8cbd467720eba0b69b8c0dd2cb1045c8cb2c015cb61295fd1bb09fae636b250955a028318692372995b23dfc83521c11c4a6b4f2bdc20511f0fa76b2ee93d89c820750babe164274cf8d4147afde4d0da23ab02e18786261edbb6aa2e5a7a2ec8d9d79f72fb001bbd6009e68b8ee7c63088618a392eb424af6ab84331ddea1be805b3726aa64487ea8607ff94819ae8ba073b80cb542fa9a5332dd65c17db7e00cb71aa02fe525112b6e7d8601495be96786b2042d5f45ff719966f886b1574b50183127b6097850fffb81c512205114d70f47f18a12f46071c7e92c8ed9756581437633ba622002b9573a239f4937450f52112edf2796e7c9ef7799b5e3f892c428763023d99e191aee4ed52769af65fd7c48e3a99b43bf74446b767c24ff239699866a3c229a8b0b30a191171941773cbc9bc55f91333f9bb729dffe17789963f1398fba4cc4c591f24c546b7521b455cbe206a43984b956614f64813c3d31b7d9e51fc1667ae687f0b5f6f551a702430fae83eb192f348690a26911881be512a727bc03794b52aa8718c3cba37f0af45ac16e17254a7994c8bb44ba1c1e09533748f493d7360f8966531ef42d4146debe8c5ac59a667fb8601c6406cad4ed7f4e9d83b38feba087ca9055e7b9cc6852819c93e5a408b62276b42c9dcaf455a27b6413494b1523791ee8ea479eafe258506cebed1336647c16b49ad0e5239cca303fd588ae718714952b1109f09dcd27cd0e4c903b3a10e87dd8bf8fb54ca1444f1b480e48fb38777d8e3396aac53386933873cfb3524894318c39d8770e224b4b02376ab3791eb640d9430795f3e2243dd4747804ef11a76a0a3f01712c91e04405478b5a0e75ae8a067aee598a9b2bbaad0637a998ac8e21622f29561d95dba8533c4b1b182989dc1539462e274c1b544bf7668cc21c01ce7051dbc6ee46d389ba26f78856393779de814b744d30f10cfa048fe5b7a523251d74dd1ba7756fa7023a3d482d37b208403fa2f5209d147368026904fd0c9e2492688ab24a995cacb8611d42f95576fd837aa6516f6169c1b0c001a27656c9f9755b8ae549f58c570aaa8b8f7c15addc75613bcd5a968b69ad539df789328803bd51b07dfcc28186234f0b46f33ee7cd8ac35ae162dc146a9d7c8ee4ea10e528befaa57bf91481ec155d3f038539ba025a551fc4d14e81bafd11194f4ec902fd0dd7c7692b7e68396a9c48d15e2185ccf8b1a650fdf40a855b75c613f54da380891c1a0ca83afe56229b410ae013a52c00e07602f8a6a1fca80f2b39cc877b40b1567e9e3157be457ac03ea3f9a598abe1416739a81bc300f45c234f5d6be7a879ae5fbadf333322082c8cf586ab23eacb6ebaaae67697908a675d55671a43ccb2e01ca2bad0317377a21bba15d92583378a9bf66326dcb086e456bed3fa482ee927e3ca86e3bca2682a314539a72d43f61d83836b322933b805dc321a5c1b7530bbb67b81bb902670755abaff43f45f0d2e2f633fb8759192a69baf9d9371ad770cbff10e46575b4a2a88f2bad2c3b8888aa36c5a81a773e6aa23d08d2bf37c4460f16104465cdf2321fe148a7c816fe8079a0ede8f2407867bddc27095315bf6dc50db69278d07958d0f06f1b9a3639e9ac3a3f6b457b7b72b7cc91d9d72e2f9c0ec7bf94dbf39428eeabe26dfad716b07121ff345634e0ba7908700b3e377eaf88ec33d8069ec1ea44fa0805f94e6c29509ef2ed75141a72220c45620811d549d1723f729a43bd06d971c1da2f8227b47fcdce2b6a0329e654cf5e1e3835bb1b67a1e24c9f53bfcc786ac182f87215f4b2b22662f29d2872da7cd48751354c4bd9d38f5279833226fb523f40a4460d292ac8ee39ec2bab44288a6295492662e593d4f1eb8d9ff7e9c830bcd266c46369dc51443dc2dab359016b7c46a5ae5ab3629bfa2eec5802e76052c91d57c4850a8c11f8751eaf7e3e35f22578dcc73c8906a21cfaca576d72c46ea4ce206024379669987fb1a373d8683e27f0111b1e45577ca697724690615e9ee255a9ac2b9028aa95749717d7083aeb262079196ca80118af70544c49257dd29a7dd91a41954e4755c738ada4dc16c198ad5ab84383f73435719b183504bddc008c5f3045a64555fb8457389f856612e60b4e25677362b80b2752e13db375cd15fd662b919ec52b3bd01fb29ff1f191909af4e982598f2c23fca4bb60467b735c16739896a8d44a546565520d02a255215c8a9d60834652321e3f4278285a2bf1e0f38632f1ab720248c9bf90e4a995901c0d9e6df7d9f12f527e26dbfcec8ebc7f8c881722803e5a0ec4131de9f43477b9abd8d4ccdafc7acefd75541c763831e1005ecf4f9566164ee56a9250531a9d524544ece3129d9325a204c9047ffc49185ea5005aa1e549940101cd3c6c4879d63a15fd8b727a4248e517b1a13cf44ef4400eb2b1833fea117ad34514346dfb3bceeb6b43b0a740c1d8470279481e70960702bdd5ec609f9ae8c0843b18d12fc6eecfc7d6602e74778b70554aafddadb514d3de2df1b7b68ff629f956d487d3359da48178b5725067cfd5d613ae82d25c607aed0fa521cc801bfea4dc5541f851635d51005bfcd462bfefd9bcb3e61cc13bcbe68c7c65032b616e531a38dc61e63bd2a0f898cf73473095a19cf56fdc048292d5aa01052287b1c74b0e4ae8143345e2b6845d6c7fa8d35bfa0e26ab82f81149e993ee4784d170b8c4170b5c764c9ef439a85387843c5bf6709c85c2f489213f3c596b8f40945043a53ac53027565b93b4ed61cc17b898edc262fc4b68a1f72dcbd3a436a9a852db776b0eea1c28e2dcc21d22f44f6c0668e1516609f537ef39d74176ceff84c35e44d0b84dcc224da4d8371cc7e5bd3a0babba2d52e1be8ab7cc5217a25c40564ae59fe8d0dc7c7d7f4bf5754e46e3d792611369e48a200f81b14a5a63e46e5c1eb7b60547c20dedf3761d0e0e110f9230a5b18a5ef5e1e737889ae0719358537e9b2fe0d366b081bd6d9c1b9a3ead81d601429ddf688e1f07983ae80bf480384af75da292dd466bb2cbb9cd12a45dccf39357a80e52a90cdcc37703e43f42ed43438b0b2d1f5fa8c4ef696573a3c12aa410d24bcdc9e800e32eb637dacaff50f6b664fc5297788d109e6258b6e8c7c4475405bc5c116bf430e9a78d2ef718f4629f17ce43ce80fec2d4f1d41543503193f49bd9bc216ec482a83c53244db21ab6d9215a0a988878669e2ec0d011f9bbe20d47bb7f5a23029fbde5a9c3cc3b1b703c0f43cd66e678372447b6a48701c8375b83e26de3186526af8525bc12f6d6348e86068b112566aa5ac84956c0bb3a6e487d518bf8d2e48d80ed17e1b9ceb241cfa5072544bb0c5e939da5d03c17d30b746d6d81a5983b0b27d2ae21aa83f99c10a0bcfd34ff30f391aa2a689091c12be396162ea7d80177344bec430a6a297e42417c9b535b3e6d6cc9aac0958b925aa3116a83302a97da0f109fd88b01035629912da5dd351e3b582d6498f70b7e2c69ec886cb7f1252b7fde8632f4f5d7dae636437b45d93bd9fa9f24aea08b4953610017c0eef52e9011799bf115731805c139272f4187176d64c9debaa5011408fad316edb04d5335223b0416031ea1ddd55e118ea013e82fc62e3d31fd866c02caed6c66a594dab6535c26aec55e81e30893792a76315436274c6363a4df5a251c04b423c498e241aa002dd3dc3d89130c6c88901002f549714ba653baeb35f83b9cfcf59763b5239cb6c22d6745ba8f2389fce932853bc59c14db2b423126a93b4390f215196bc7847901a2a35031268a99e2573b10422c2ec322018126d71fb635a63bad79ea489801f23a6e705c4328655e1a5cd0752f5470af790e6b86d0eea77f6985e11ac0e19b1c57ac3b71058cf86097f28f0f2e97552116d2970b3b2ecf90f0d4d8fd29144ccf4176477252e04cbac54d4ed87377a975afa17b1543e2f90860562fa02fcac0c6ec3a4ecfeea013ac45bea2bd19490887de4b3434573d7a32cce478d8f512d80291ac6b32ce21ae7d33a18889e7f44b2d874b2eeebf582b2a3374cb960e2199f672e4f7c5af89584a78a234f5b0e1084298bcb9db15554dd88d028a2e60f0cf8027328aca228311e7d184d5431c16144aa88504fbd501ba3da84ed23d51a0192f35ae12c8454d00be2c3d63e56ac5c4cdadb729e04e7b204258d2e9b21dcfc1bc8a7444436a2bbfd526d628bad472821f31052e8505b0f653c39883b4b42db2117746efaa999b5bbfc8e36db50c5a1292d34246460b343885d8836c2e85352dd2245fef35e2d53e66c3b9be469011520be2fb12ca2509386c1587ed3ec8aea69f0702f726349eede6ce164d24a4b1a462c228fe1728870f7fbeb70957648f92a5c5ae1741afe9d48121ab5b7ab873f0c73f6f9fb5d924367e9739bacef9d97fb2a43ba6de1a54311dd262c7497ba97aa277bfbd07033d77ac5bf550fe96ee2f0a54115f1534b370125ecc85c785b4b40e015d44aa1b1c1784a77fbfa34da643b3081a38df2912aca0e42715b3987b646f5b7c9ea47f9e59ad746da826990458686078912dbcf258eaf629f624b8b8d3c91349c82088a20607fa0f502db2adc1136a7b666b351a831c90a4e511de1424e0c0ee19d4f8883b3769f471691cd709dae926e3d82585bf98ecb32d116c7cfcb285c52c10192b0a076691fa49a6c745d594e9a37cf77b779298db3830c1a9627fe9698d23f48cd6bd0d47602d16c3ec2e7e3ce707a7bfce38d79ac5f372f0bd16942240930fde6c9c4b55416b702916aea8c9829974b53b8f054172c0a5a019a0e71272368b116c015d3a1807d339e41103958fc569df3d77d3bad543996b3c124442a5de5bae99ed1431092808e7f2452f38f782b0ad349d0d200cc8d03c3151c9c6308880b82af8140fee2261d27168a839e15026a908c2a07bce3ccae076185ea7149ac6bdeeccea6e571e3a9416ebce3f907c5b441eea2aa8c081557deb06c3bbda9e17a500101ce4ecc240ebb14a1b9cf892b93d08f0d2037962749a5c760d094520555a54186dc529c215728a6ba632844b02b31687841de09af0d35fddd67b9877b2ee6eca764aa07f97c98c48f8047572dae223901316b57c985c6376f83b80743653fffc73855ee869251fe0e8310baa5f49f2be915ee50afe3530a3ce9f94c5c3c8ccb87630423402acacb4cf02a913b65bfa45aee7e541951457d0f9a0911273580d78d6cba646975e5f29cac2aa592a613d444bf0a5d396ec28c46a8859fe33f2037299ae3d551d66f0673e19298c3eeb9ecddbfc876764c0b039c9171e213625f0b2ab5ad0bb5af0d1ca6a1eedc913061f629a8741353ce6ad3019c7b25b43fd76b5ea81536a0be456680dc66de76821889412f53e2244b22389b949cffe81861f6fcce2c5a549ca9e0ba085ffcc43c804fbb8c36705f9f0ed9d9f2209a618a5a8a32174840373d8b490d7a52bb7567f3b1bfce57b6be4f9b7c4f28e50b0d4a25bc8c0f0565679afa343f9492a74c44564129a79df166c1dfbe078edf259f1cabac9f9abf1ba1af2c9500dba66562d1457e6da5c22337182c318bb1562550cda440f843e2bca185adb4e0222f97bda09f7aebea95125aa7207e497cfdb746bab1fac353966c6002a88f9e8ee9ad710e04b756ebabf182a38677739525ae5b75926c398ceaf6a6f693c75810ecc99270ad8fc5d7ba6056aaaf4c920346707a8078ee1376e22b0e9ca94eb09d6935811087d0b1114d4c4c67544b35cccef54afaa24b459982bdc5c7f4e6f7ea7654732d3193bf9b457833c72fd1881dd29c5f1b5d1325a61ed0662cf39308d27695c9fb847caa5cc7369e1a2f684cb768a3a6980fa6e87a26ef370c8607e74ba9851254e8ee919c42f4a469fb79437027bbfef99f8ae0be0e2cc42f9a1873402df2e0c7c9344bf83906e1c92cf3e164c274e2418c90328294dce926b23f72e4d10ad31dcb83d4f84a6af509dace1c0fa24915d65ff3d95832d575dd87317958bb2b9309b10401e9d8efcf521d5da29caeec81623fd0313801979eb79314fba8583ca50742c6f82c9d16a0b08590674f66370e13992f3b505bd866c4b392704a3c8ad46b8e3cbf3302d2ce4ad2a71463caf680df3877964588ff75ccfa2fd88d8d4f6b5031a8323bcb8632ca2ea824c1bd95a48994282d06c3f6100f306cf466fb8cf8d9e428d8b4560c8ca0d14a72afbbb9f05c19b428a384aaab755abaea552bfc9f67efb379694516d60d1882b3459476af2cbd62e54e13da83109470d04b43f3ee1d9c65680f67510ce3f5b807bab11651940b4c83f60f2e63a06505700f7c948958285b4e9644f5d7ca454e8610d6ce8cbc10a9c96c5921aa8759f943aa8d293243be8659f284b466663285a456e6cb855c1d66ca1c524dccc818d235cc921392f583172d9c483fc0d11496f013deceac9cd8931b755372812b3191d0e513bd79e7bf99cfe16bd22bdd8b4333b4304c3c1dbbd72654133d668b3e53cd986e95c424c02fe6a3da049468fe3441a7d891829f37bd7196fe58a14c968968e97d894d80650368173a4ee02d3a9bef804cef5a7aae1a8a8873666e2a7c1414b83bb10984c1afc5f407e04b5e09d07001a46dc5e38854111e092f5967cfb017e5e71d47073b424d7b32a451ac7dc83edf90bb06339243d3f16c0e621107ca01c7bc719e7958d171f3b8f7b384c387b6f30dfde6737de103b168d7b045e987839fae6dcdc5c152f88ae3ec3c3e5a59a223e54160aab9de3028f41965a3fd00a24d4aa13c9a131553ad5c829d76f8003dc699a47d4556da47f34bfb0881cc1df125b14898b4a8abdb744d35a6ae792c7fc29f6eab9158740a2bb9218132b5535890d2fece04a2c2a03bfb7bfd2b0ab64a87006bb2085061889bd08a049c78ba0e5e4534b552fdc7520dd44e9495f2004da8d019b29e012ab0b2d0286b2850546168ead2fdc4e14099ff5fbfbe03917bf08e3617333fa22aa8e565c92a2a808a8cc5dc961d4be155b14013327e89dc10bfb3240b3f1a4f2de6d2dd3fb7c4fb67659ee6fc0b7e05be51e351212f5accd8d43f19136c975ccc9dcf8e3cc7b82c2ebdfe23c5199bb65ef34e1f3185080f82ec2d26ec0b0b09fe7be63a5422f91e713e17f327307b45af73c4fc8e853f10737153f762be01b121a0f700e4fe44801c2a326303370d44f4610adac4c87ca6537a18121332a31e071c46ccbceff333473277ecabc3b4fc9e71a6cdc93d1a2d73bc36f1d6505cbd18e267f2122910a7e299dd599b4295563377f7ea9c0dcd57d708334c65fa5b36c279aa543a25565b8f70cc5baa5f983c19c3a4077efc747ee3e7c1755fa9223577b4d3430e12bbb1744db121b5210b4d32b7a68fa599223017e555d59ddfa8fcec41e5e8bf2697a7d850acd79fffbe2f620d93070b16457744d20014d57226a00bc5f23d76d2f2ebd580b4c72d7749550fc0a9bf95e5b21ebe37c32777d1e095045fb4bf5db960c2763d11feb8545b63eec00f93779575f848e4687de2e5d821c9fabc61d3a7d511ca2ade6862101bf0d8b8c212c32a67106e31759d8f19529d44e902e129c9865bc440860ee31d08de5727f30d01cbc46a6648f7ef73c13f65b41c9044611fa27a9db794e22c4bdef7c63d40065c83876019ec02e4b11b50a3f657d34608cce2b610ebe48214209b872ed1e576c5e92335e8275b803c2248b6dd79377225631fa9411c950c1daf7521440d6070e700bab38b2ea669439b3f4825e924573e18f246edb7fe2351e56df20d871fe29c154ea9fd981127e5293f933fbe9ed3272dddaae4a5e29510f0e2b893228093ccfa0aad3a73ad02ecadd07f8e41ec4c69c97975c46a606d6358aadfe3815931447d76e7c013c90f3cf7fe24ef6f97bb44c3fd59d09d396203c1959ceee173a7fc3a69ba1b06b36e7b834aa71a6a5821c449a8b7e5c4f9efe37f7f38fb1c768eff02b5d5803781f646765b4a14bd5159cf1cbf0687d307e16e9b2c7c67415638de503f8e400cd69f3a9928655555a9e61cde2c90532efef09871ff26a6218e437472f1e3bec066340f24c4b2804492884c8271639298935c6b5ce63a53d168f0e5e945f08c456e03ecce6f628c7380811121b2495d00cc146ef051625f631c45d3331699447777d4aec2e9f2228868e8ced34f5c43a6a5621d2c2b06da0e7737da276e986b8512b2a08f3621232e57461ef77c84b9a2608e4e0f43da18aaadc2b5b0b72e63eb37533ce6fbd29638082c576d193b7c625f8159084ba181228e518571ecc996920381350bc5eedd74cb407cc1f8d47b1fc7921ec80f500fbf37efcaa80c55c6ecfce5a8b1581a4cd2df597d50ec3c1bb0bd32a54c348b19751df0f3866857d66667574df254e58ad552a9ceb864f3bd06a7780ee2a96606214c6dc841afcbab81daf3f37a6c30ae26eed1301d3f82f308f7f4b1c758a52ee15e63ef7135518e338819c370656a340b490989c4cde0b7550ee5e498980c1f8ed3b5c6d02af62332b86b80e68187dd149d34ed88877e99df3216ecead0a58ef0a1663047518339fa9df8f055a172ef653843048b0a8b5e385334f859d7df51b99ecaac2fd6c8b3306058d22faaa072a1cb52d789cad2b5d547ab44488424eb0235c43549b22f20a9d9b3868add1159344005f8531232eba5e6df546c83ac960dc1822941d56e94e1eda2c1f5e15ea300a38461f6e04d648afc541ae07e38b7bf8ebdc1a702937b2462b1883e0ce0b904f29601127c98dac41799826fc4cf237b623ab04e76fa21310e2dc6e081d8aef0f25020c090533a1ff2278bdfcdab66620d99b1202e37d2c76f2a608547cbca13af47034966c00a23e26f2307f9a6669875243d78c00b63cc9f6afb0b4dd7c6693caeac3db1c29f5c77ce33eb812cc1ef1aee470febd4712aadb7fd174d38a71d94394a43d3c338f762bda7ba7716a5a79802e149a3a79d2638425d8b4c041642b9960d988f5705cd3ca850e663561622ca7a0e533f758fcb1eb9a8e47eb2b198d0f8f1e949f3839ee27be73cb896afc8562867062a48b2e6b4308557a16aa9dd478fd0e446efb23e710dac8b9d9126489c2c02dc3b6a4f980105cb9a507c3c9079b1e19a7b072de7d6d0e954e1528f160acfe72260797bf48b25c62e6b465eecaaae02979e4a27bcdefc0cd1e9897708cc7da2f3de1146701252e6f3e69d5fdc0ccc5d6ac2c36e87dd091ce30bf8cda8030d58c557e261022f84b78497400b03cd06a2b6751371e878e8f9145a2e3a494a0be4a3ef3b2584aee67c75188f78e33e663a52151f55885f3173e67fb0064381b0a5e29e83ad8e08922b91db17e85999336a2bdc7103c5b295d01a2b34bba552eaf6fa79dbdc6f671c4afddb650fb6d2db47a7d958cd2e8ba96404f0f35cf62fbf669b443fb7625f99cd3812dcdb8eb04680918901566c25f8f845c2ad6b1610cb2c4389d573a7947baedc54477f42a4ef31f78e005ca6b9fe66e1e79e5daf02a9427b1cddd2c5f91d5521872500f38f20a0893108a78259ea590491be8bac7eac81f34da90a2f1094e533bb923392166595a56efbfc2aa7061c580902347215c4ec470e289de0735747e7a0038acc41185a40011cc1171de7933e78687d5b407c6af9b05f5282bcf55a47bb7c0c384745bf3558a0bbd3389bec1ee29b15ff594acbd7faf267b4359b77bddb216b58f80f7f3e6cc5294a5489af467d719c2c8a7565bfcbe737ea6bd159144d5964d11cc734af237e89d0fa88a58fb867723edd095343c6c976de9d51b5d41064e61e50966c9cf557a6e0aebcc4435edd2616af3756a8e2e5e9a37dd6a79047d1d106c255605b33325754af4a6d06f5047a9e7542d77155262c656b676d65fb109404ca02f4189cac34546f9af23446ef5397132d34795b68b520607b5d6bfca61be88b155d754b535fc4798cffe625b24a69f81607476a28ee70154f819588450a5481744ae0bda6c30b62758147c2722af1c310824f190b0bfa19df0b4824ed2f6d45634fbb07a861ce013a7156c1add2b6861559dbe85a3f0993aa8a7796f8555146c0afced74fea79abc4abbe47ab16b22e919f170ace403e88ad3494b4efbbef00ac249060780cef1222057726aefc75010a477b2ab503ca20621b270f99d4dfa1bf4a4a06f60b6843a87738dfd57769f4d23eda634c8d74c27a67c1490d455a9d09893ea140346691bf5d1412dfb2c2808cb08cddb30c8fe58e8429133f2840372864e4de1809d34b49ffa15b3b48352d554f50305869a872b3e204863b61fe1299d1529548d7c6d885e65058bea4b72db1a5fe9220b0635764c05246e793498c813374d0512f808b2cfaa3ada49300354182f08731987472dd7532f0550d77b960901765791bca85d2b1a5550797c0333f24e8cb2349ea3f2ca372534968a0d134252f44652e46346146d914b634d0b577bc915fcd8526a7a59973a13750227f78a352b2cf9200091074e68c44ab3338be73edd8dcd48229eb8bd303959eab6afa7b3d1d2fc8edc3aafb46284ff7603483d2b52a3113c78af08c0080c183b42282c18303c49104aae2d7c65930d89549077dcdfecce3dbe933b2d837b04ede8a9a8aaa946b35b0e926dd60d8aec41d350e72d4e7fc6474a0e89d3ed83fc001f85fe724ac6bcaa039cb1ac46cdcd1628f9a964ad100fa124b409024646fb9f7de5bca94a40cdb0b0f0cef0bb60271a76a285932491cf4100d349f66c1e35b0e1b88079927a594524a29a59452daaf99831a6983218d4c6f32fd0f25822e33fdf9b9c51625e2d044d0df69e8a334c761f6d2c394528cd28c528dd28d528ed24a694729d8e0f6f2b5dbfe59766d6a841a635a32d9ac67e3c87077b7eead49c9594027ebe0cfbd7d19f6725f1d873a99c7590cd8d131fee5fed7fbdb45c9a102195b914fa373605e76df8beca616eaf0f4cf0f31dee57ff87ff14ebc9316589b51d45b806c22b2fa77882cccc321778860b748b9c217cb2f77253fc60b69b95c1e2e7fbfc7e5efcbbf2f1f0303f97f792031dee585b42493f5be3d1b980f96e551fec3b1830c23abc89416cc7289ee7f9708e655eecb242d51547f922ecff9d4cb243a0766abdf2f8be24e8adb8f9e033aabdffe0538e0392ffea8938f1147c7e6c0821bafe00aa8e820efa5d12c7fd5ad7163a0e0501a9d4426d944288f42999479d6e964df2fc3add160f6309746b3b29f2f577356f62e377bf76e6c79c36083d96b7726c1fa532cfe70f96a690f065a50f6cffa0809636a6aa2b2a865bab2912a9f098beee64025e5d920fdd852b64f8a855af65b832ecfb8236912eb9fdd3fe6d960d72ceffb3548b3b0f39d76d285b872f82326c518e3766a55dca15d977908001b944f23898d4cf38b1a63c218d309199b7294ab77d4091b52a5ec3bb5fdbcdb6b3726e49458247047e094f2e422883ce79c2f6721592182294c140af0436a34f338d45c5c96a509cb054b932bf7a7bc3c07a6c8594c8d0363d429568838305244b08b525eb73e11593052449cba4404dba871ea50834fc49d3a834a24eec47c7f1d529d883bf7fbab0ce20efefeda44dcf9ef18df5f89608a3c07e6c85931883b30df5f6110775ebebf3211775cbebf2e117758bebfbea02a11775abebf0ec59d150c4c51ee8f331faae20c4037ad990f5572585d5d8019fcf303c4b7661e889b16f834bebfce78e1632e11d04d8be6652e11904e8be6655c4c04f42d9a8fa1019be7e3ab812f4f4c444304f4b57e58ef7d0f5f6659fdf46c10d13ccc9196511f6aeede9e9d9cc6c57c3a867e5065e6462980ef69ee0f105aebe7050cc4b76430edc20c4cc388c1940bb1a65f06a618532d5c4cb7f0987e116bfa63600aa4d3626120be4584071e7ab01906532cc49a896916624d7f0f5a7ec1f40ab1a6df05d326ab4b5b2ef522d6f4b35c6a055a05095e9a85c8ea9fb9348cc8ea94261a46a44d30474dd40a932993e7d4a1c8ead7b4b00e51a63aa4327453c06830cb81e589539a624daba80c35a8c2c4ab71b6bf79629522fb21cc51ee0ea392624d3f25823df9b00eb10cc51aa6c6719aa2a22821982996b245d742550e2993dd0295b994262db4e1875f13ba1482394c69425d91d29461ba8468e6799a2acde0d3f73f4b669b7294799a9531204959ba8743cbf309269be589eb50ac71810d599a98c0f8c9f34f43e4f99e11797e97449e5f9d893c9ffbd838f3b7a6a6dcefb29bdcbba1cdda7737fcb80d872e4d789099d21841331a250ae9235f9352ead4062ad6340d29a5f44c084b6fdce8e41bffbecf487e93e52b4f3b551768d04a61438b84b2aacf85a2e24ecced43ab5871e5feb9e53c6f0d239517119aedc186b2028a895316272038152e727f9c2e4c44ca657b90fb230a75ca22f7c71310b93fba7783dc1f67e737cbf3d2b037b061caa5121477e4d2d61d81d52ab82d7043b62d5488c8fdf295727547e47e59abc8fd92db42ee97dcb645ee97589e37c606364cb9528ee28e7c13601a0fb28c2953426b0fd23613e4fe4eb9341ee4fece98727f375684dcdf735e971ad830e55231c51df93e64b4c86c8217b9dffbe843cc87dcef29172d92fb7d3621f7fb5441eef749e75515b141f06ec2544a306173b6db286c987225c51d898410e47e141f215c28579cbce4d0c9ab9f52c7746639cce0b2e804f397cfd4c92bf7fb0d952c71ca8544cab56ddbc9b1bf965dfe8a4ba50b1689c2d4736e5c4f23364cf9045d4f3b75a8e9c9af98b7cddcd1a3122e72acd2092722c7f7a0b8c3492de4f87d1477b6a6c20ba6b8a309e58e993f21c7df1177b08f36c81f142b4c582942e548ca155262a0d2c2f3293f287263dd36b755473d1c2ab9ae30e1065e2922f791dcaf712957e89418682a2d727fa669d67e1f0e3be9082949e9b594f249f9a47c523e291f9f9437bfa63c8972b4bd11eb46ac7c398122b765822d0275e47485530ca292fae1091413a6c3a19239a66a9990fba77cdf6c11b9bf27ea486e7abac229063dd445ed6aa3a346924cb2c9a7818264d26b09250825082508250825082528f7a75ea957ea957aa55ea957ee4fb952ae942be54ab952ae2b3997ac8507d4e1a046a122219de038e969b16d1e50eef73419343b1ce4fe2eabe14d96150999995443f285b4215bf4b95443aaa1dc8fc2247f898989a98949fa3031e57e9423cfb9d18e2cd297f44a2847dfe7466cf66ec46a2b0e49ee8d0bdb0cb4256c1c124d6e5cc8fd35db3edc6690fbe3b6041acaa0239696162d289b02ab02159ac459f6218bcf14b99fd3f0266f7813c6970c6a7123764e968c2d913b4936b125b224f195e51bb1f23ffac313b089e90f5ae777251381c58762169f58c3e2935bbe4a66497a218a2a3f76df8f83f7120791ef7de320447ae47b1fa4bffbe8759de7ade2af5e48cb235ef1f0befbf81d064224e29eee571808cb770fa4e5bd17d2eabcd5f3b4d7ad82b0bcfcbe4188f4b0bcfc202ddfdfde8a47cbf7e7c0f2f2eb7befa7275a7da83ae1557cd4c796775711af7c74ef3d0e2b94f727ef571f5baec50f5577154fb1156fd7604bf31c7ae42b1eff1afc6ffc753abcd25612e679bac6954be6fed3ffc67364ebc52786e68e611a31d3dda73ff6986331aef72fb7fbedca0c73892c00a6bd2c6a3688715dfee5ae5e7adcc3ecc0e195166f8af0903d8eb843f638629e330a3b330fd3b3c1c34ac33b5c568f7d7677fcfca8fcf73f29bff2d5e5c2fceabe7ccbed67b9f2e712b606ff1b7f1dcf9151c93db4dec37c8ff730180891ec81f47b9fe19eee5f3010f9ddf3b4cbf57e75bbff6e6cad76b47cd4afdc13caadafbaa99f3f278fc2ba1d3f3f3f7cea7f7e4e5e88cfd5397952aaba5bed2646ad55ae306748a5edb7fef5c4e17495b75bd537fd084a8dd870e6d52b47baeaa690665984ea5ad05a0bffc96e54770e19a8c61865d7d5b91937da988c32747747a1b2d349f3bcadebb85a2bc775dbe69db22cee48548861317477cf302d8c31c62d8c314697d2638c31c6184fdd12272d6577b7d64ad27dced57c2159f5285ecd527f72fad8382a9f62577028857283295875824339149d65f10963fbd90d870fe6302ab90472972a3d897caf599f2ea58c4d91468c6d899227b0c1e8c90eab92d3beedd3b82fab5847bd93e6a8b632751280c63d7dfa9c9d6c29434bdac858d3d9a42fb8cf9392196a3418431d55d3231368304a2c4e71b3ce9335279d554c2c76a455a8e60467a7611d187343a3c1f8592767d06919bd763732821dd3607c79c2989421e89dc9d80dc8b1c139e75cd1bcfee8c5f84327c78f299caaa2745fca8b014faf6a309e9c2c4a490bdfa96bd04bb9d49075bcd0f91aec1c093e5d562ab74d1739b54d8bd98779165a6481749b0ec66bb9bb18e33e05fb232a398e605409e1fb322a4f1c3e20fbcf39278cd638a1c7d8c9ad7e32f3b013454d1b65949452558a94f846c71dcf77567cec6adaf7c5fa9fb3e2a778aa130a2a654f4e6c0a254f2a2fa553f9ea0af76d2c5a8b4b0db83117fa32613c467cd9ffddfe708a0a257562512a9cd7929e4e9e8df8337e2713e51d2336e73c7537d6f894f3519e8d3b7be67cabdf3eb5537aa3d02a26159acc1d25eae43d3b0722b55b6b54b71c420d65ee70369827166218eb245f5e1e66fea19369e3550eac479656a8a1b4b2d6d8e0a9ffbf9e734e9fd363cb9843ee0c0229c4db97d42414c93da8d42a2d156a902691e38d94372edf6d603d2dd6b81fe57827a6cdce690ec5d894c2ce0f67d6ec67334c7bf640330d238c303440f3bcf12650a8d939fe92f6f79424a0b95d68b4e9776cca993d86ad323c5f66e9398e76ce3ab3e77969e24c9411c17ecfb189ac7e69d3e1e7e058d33accc7ab1c9fb3ff9cbdf695ce9691529ac99ce87c0ce38879fee590b4a438f9a18c8c3532a7254b3e96a0fcf8b5a4baddad531a6be6102f65f430dc4dde048fee2f5d466745c7ee042b7f4a297d5621063df21b03912e9f130321d2335f663ff11110223df28110e9f19718880c7256f68eb30feaa199c9974739fb7a632bc6645807995485ccc6aad07ddf7fff9fcbf7b9bcf7f756e381557da0abe46721c80553645d54f9d50f511f721f761f7a1fd20feb635f4f34cf8ab29da395f9c49d4ecf9df0f4bcef3c555769ad4f2bc73dc6653cee600edddb3d1b137be737c4b2cf394b106bd6659e0dfa9252f974861a999c21866d5ced3a8c04d1974eeca4982aa553f154add2cd1b769eb75f284c8c1b678cb171cb9031dd9dd1b5cc0c68592ddd0b2b9716ec04567e0d4d8799a0a6c384008087ee18a5d4a6c38470a73730741fce8f6e3bd700cc062386a1c34a10800e0bc2ba0ba08b8d336bd488a18b5e8c3a31b01ca4d441071d74967b8c0c1c69b8471a9146a4116b62c4f73567451964f019bae8c54867c04860e51300081b0213e28ba1a3012727a7e3d119c000ba1dcf46dc9121ca19ba16010a004e6b800e0b021b621ea0c384b05810373a4929ad21c698e3e70cddb50623bde17cc732f5196dd41bddbc21cd73d66024b0acc6d1d9e0d988357439ba3bb120b0203a5377fa126545f18d16900e4adfa42eca9fdc14ca05025b275f6de84e2ed0d73a01fad6c9d71bbae839405aeb44070d7826eac0c9f33400bc9ee9e35373f2344eb075d654800276ece08101551e9e8dd8e12a875c619966cffe323a0f1b00d4d0a041750c4635a25cd9bf7a4f2da616731a01353439309a6bc246d06404cbc34431d12c7fead9901835841af21c6a441240d8906be29a38303a8763027323b03ccca1ec40581ea6f74140ab99b5cffe5de778ef0d76534d4a4ce4bdf4261a945d660d8712908f4989b58cfd40ef575491cc921b82224bc984a35c90fdb72803aa05d1c65f6ea822d4d08f9d1fa286328a090ad438400d4a1a94b5c73c075e23f56edc2cf176146bfc39212f01b18b3c9f0665194a0ff301a44f5dd86b2f69509e1e460d65d7b2d6597fd490e7682d7f54918bc08634880e790e8b6b0831c84108861ca9a21501a125b6c8a20a284c3083963f0df2a742fed5a594524a29a594524a4ecacab9a6809933d7b406bdfa704d4fb0f243ae09e54a5181f3ff5ca40320c7c76c603b5a93e3771aea4f9c9f6e8c4bcfefbe6a96e33aee672673bd5f8352fb8cbef603cc36301cedec7e80993ef56c6041e2842866e3d0e83a477ba1a3348b1a2b2a6a1fb76b33dc4d8a65dac639266bd6b8bc5d4bdd31f7cc5d73dfdc39f7eadeb97714fb6f9d133baa859d948bd450c6b26d76613b7bf73426d2fb0406f5696a902937c9d83765ec63931705dbdfa1b64dea49197b1bdbd3bbc2612508fd958fad795738a80499aff2b15569146cd090ceb12f67618fa57c9a85fd772463218d0d29eed060ca98877d58ad59ad5aad5bad5cadb5d6ae56cf3b3d4fa3869c7cb58f7db53746d05af9f6439ac4f73c6d69d07782512e8c2a6a10db81b527f5ed0bb32fdcf68788c534a8412ad431601f7e27971a8104576257f5c3066349c6fe84a950e3c855c5e197b13f3d0d6a9cd3634f8da042ee7998872caf6c964df9874e6a888c7dca07d381ed0f533fb9a941cce3c1c1c8d83b53c69ea77d69087bcc8865596dfffd0f425af459ee6a7b96ff41486bbe7dadec92e7acb696ef99dff21beea1bfc240bea70f8405b3afed43cb646e8d895a9ea7a75dd220665f9e833a6a411dc516451d3588d1215a4483a810cb8dadc92294b1ff709014361e15e52abb8ce585ac7a5a5ab06c7216f6df0b69b1dc1e7216f6dd169216a9bb629eb6b1bdb435bb9dd420f6daed244a4a0d62288f62637bedaa9ae87f5836f978ceaae77b9667c140e67fb87d9c85bd9016f68da471622369f036521f6910437d0d6dec9c540df21c5491d793dfee09675ba86be78d2d5451f798d6a18a369cf201338e2d946a9576db361b1b8e2d5e38b678bd706cf162d2382f87b0fd31085b2cc9d1c3c124e5828cfdb66d8f7936b697e66d39b098ab97b660d2200ef6fa986bdf10875b282d69afcea141cdc23e661c5b28691c99e3d69d7e76614f16d0bc1b27b30b1bda575ef5502167614f5f486bde55cffcef3f0c840ebd101ae42c25d8d0be82e6f46ce0d8a23d2fe5716cc124e5e2d86249835b286db17dccd3c3b185922d941aa77bc338b6506a3066fb4ab9007594b1f7b7afb8d38fa18e6e729f6cd95b30cb1b6e0f8257def08f53f63c1eb650d845197bb7af8c7dea867248c6be4bbde24e912b63df49de42473a476bb5d18ec6f17ea891040165cc2763399445181819eba33692b13026f16985ad94b19747316c1f2c39f9238bc9264c7a89128994b12419fb88c36d8a302ac9b48dcbbaca71f32d0ebfec2738b4df9f70a8ddd50d1ab97b6bbf665d4bdea100a7d3bdd1792f73e7f950f9fe765867d9e4186b54d97e7b37502dde028b03f59cf7f565fba4d80db57c3a5d5bbbab5f83e7acbccac7a46c3f7a3d2bbf83c759f6a387034501f54f5fed0da94fee97d427d6f4f497bfdc73959dbd611f75ae7f3a5d99ede5b287e590d6a0f7d1cbd1b97e957dc3e92d23cbc946c5ab1c349f3ccd275807d473a8cfbea2b06fa6b8a383f79db1efa5c6be62614ccaa7f7274e7ff2d2b34166efa4b67ba1d619fb03344e3fd6360707348ef7fd45d78758ead9a81b0d6a107b0c07b67effe679b875d8e8032346997bd44f2f01dca3bedea8b97e7b3766e46a3fb3cfd35a6ea6b8531ffb5e6a1cefb16f2695c6136e4f663bc8307256df7b263ba3bb8dac9703eb7d9558ecf66edcd34f2c6c336910fb93634d8598620df65aac9127dc4b0d624219fb99850db9a1a58c7d6f4832f6a9310d8a35d86337b0d65919f6f5ce06b36f0f87f472a0afb2f23cdd3794439e8de8757fc7b4c7ee147e20c77ab9ef9b7ddd3c1bf5b95b3ff6a6f9098ddce19a6dbf72636ac8b60e0c6a7f9de0cd8dcb6f6c623c749c255fc759f1eb74aacaa14ece84ec8d9a71d4acdd90b146bedcf1f3c30fce8a12c78d35da86e38636f1d43c1c607892230e0f47e7692d8fed177065aea8709b5fbbeebaaeeb64d44e9a8743c35c945cfba458a67127fa188e3d64c754625bd43a81ace7d0d6e0b84debc97ec340b69eaebb2088544c1183249720641446afd6aa895677513f2471b5aa4b1224b1820b042d05d00a965add67170437455a1deeae2b19416a55ec0853ab665d77a3118010d4aa9aeb8b1af8b4ead67577d5f31dd62210a070a2a815ceee7eef12444b6a018ba0a4af76dd056f68e084161cb5429ba58eb3fcb3cbf302bb22424bbaaa8044502b8a156491d4aaa7aebb71085330b52aaac9154aad6a870cb5ea49121440ad9a7219b52a4a97dd5517adeec6a31370f16a55951349ad9ad26577f544abbb72094dbc78b5aa4ad75d188aa082ab5557b83082d48a1d43d8751704b1085eb85a95850945addad27537561185a0565d75dd8d47d84252abbad020091647adfad275573ae187a25685e9b2bb2242abbb120a11b0c0a7556358e1d5aadf753712c188a556bd5d772312205cad8a8d865a5546d75d21adec0a69d598aebb510853686ad51849b14cdbb8da7927943d49a1c89695cb0b8c9432c65f2c6346cccd697eadd1c3b07ab7a777f37aea6f18480ebf793ddd6b18c80e67f977bf790b88ad1a9ce54f95601b29b630eca99703d39cd5f2e4147a204f3c5b73420e61511c310439748321fbada03ccba7b470a7ea79af827aee4fb786cc867af24edec93b7927eff4e14df656f6391cae70c830f2897b0d87a7b086ac7d5843e63ee61ab2f6a1d56ecd71f29ae5fe844386516fa8a369d67edf3f088637b9ae2cbe21c3c8287c7aed4faf7df5fee48616e55128cf7915e5a150c2d3a3f089903d6105a0bc8775407914d641e5bd1f3a27fc4327a3e0d8e0ca57958fdf92a28267832bf8e77b3864c1b3c1142f0135a5fa942a5555a9548a4b55552a55b954fd52f8fbbe6a6b7df9b5a2debba14ef6bedeb0865c59563efaa77c7494938fee527fc5f2e5fa2b9feba780b93eca473ff1be05dbfc65ef5570f8a5e0f0b3f72a1c3e0a0ec1ec7d0a87e0090e6fb2f7168737debfdce82cef870e8e5a2feabd3e0a873ab9d61b320c9b03db7da8f34347a7861f3a590372d5d60435c6f4c4a190be9df684d5227df9180ea5d6bd9db2c780903c5f871f3f7ebea4524c108a38926310508004861c838002a1fc4576898443882bd3f9f18bec3bc31209cc1f4a24093a4f7728c428872d84ba68716795238c8ce150fb59af4c8a35fe340bed651839d4b08d35aebd8675a08f7dcc616603d501c31a26e23e66cfe1705323fdcab3c1ee6d5500f6d955d90671102e7ff26eccdcc27239243749e9851713eaf531c9fe2b2e4bb8e842e512cd909921a394c368450a50f6675d1d493a949ce52fe3ea7039cb1fbc3a56983c4787152b4c3d666e0f98dba388cbede1ea31c4ed11d4c388db43c88723d9a7717a4c114120cfe9d10408283bf80d657f99db73e42cff19b7c7c859fe31b707c959fe2fb72709c9737a92245192bd0529fb7bde8d2f7fb807900c6ca4a2a88710e21539c85444197818f540d238dffbf748ea91a4717a20c59dd5fbf3f0e1f1d3393c969e872beeb87cca87ade43fec25cda49b58e14a6264852bfbf358f21c1f4934cb5f490a0eb525a1651203875f935804a01c462d90c01cc62b96b27f8b514a7ec13e849ab0e18c17ea0c2f47e7d5cffbad5ab8a4ec1fce50ca4e7d72885aa2a208d5b224fbb3bcb2ff875292fd7918a18e90fd3d09d9e31546d9bfd250b95c12970400ddbc1c1218ba95cb51116bfc63b82522199f7289f0ab64602e09e85b18732f0274b2a96955800ee5caa5251a3aecca4caf8cd59bb80752910d5b9490b27f8b92e770489264ffb0852786cac1c4b06931ac5a58be950c4349c54027f5138b6a195d4ef279fa4466d48d9ecc5cccf7c61652f6e790649e926b5032e184c0f4048e50d938f4e3d327b476d168f13c9a814f4a71bf88c858d320c8fe7276d31577ee3c8542728c3534c885c548b14cc3289d199661dafc38e9f47aa47b3df1a86e5cedbc8ed55daec6f79e345872f998c632c7322c7b1ecfaea6dd2ccb1c9b596b92ab9d534abd936ca78d853e43ac765a6c6dd80e9f7713eb40314cd3b4cf30cd59a70ea572d750ee11155111156da7c59f716e5ae6e96027b0b2e613444fc5184f40153bc9c83a5113d41a1ba7f3bea1ec97ab76f7ee183bba741174776318a518866118866158f4667b0caaec2ca359dfb4a49492027d4bcaf7ada994f2865bd6613e7577779f5adfb4a2f6f16613086cc538813ec6f729e3c7f874051533016602db8f8a3f87c4d49112923ea673626bc7f631f7b44f8b7beb39d9f76b5907faf3e50369adedb5fb03844e6bc3d903692d0e6b98f6db05d26969cf690fa4d3da66d64d0de799e2360fab19563d7fadcbb0d76eb6c3e72920cb184065faf1ee9065c73a509c61df81ec6d8e137b996133082b5fcec6b0c0c471f45ae7382e7b553fa7c43d87c31fdcd77abbc92979273918b2f63c9d51ed05a11784e28ec6fdf6dcbb77e3267352e6ec0521fab2ce2b73ad9c05a252d6212a651832b77d987244bec91c8ea154840d39a5dccfc91983bb8e351c5f60c2b868f16139c29430254db823ec852dc1aa800297c7aae09267f6a1a7c44b9e182589088b2d29490c8a9c5d4c0953c294588e424f0917ec0994244f89972c314a121128492d3e13870265f9ae64fde50f2a699037a14132084ff8a1415c520e63e69c590d9dee9e8102451ced67cf9f2e1cfea04135b09f1a3ad887710a8a349f46e3d00092e77b0e6c489168ec934b20c35b53d084a2864e4f1a94b1056850eeef6e2e298b393f3ec8305a44e803a1b54e7e80d05afdb51a6cb5ccf90142a7e53d90d63a7d4873fc180b00a4b5bc0fbd7cf2214a8e337a4e7b243ac9971c7866530d9ed3af253fa2a133430d9e1a245093f4c9732ac5575caa2b18eb3973ce79038207a8a1c17964c4678fec898a27e8b34731eec9c35cfbe2df2f37b64e3e05d39267119b45eb0f73fb85fba739d6cc977747ab8faae039d276d0be621c31672b0eef70efc780904c9fa727d28e9f9f96fffe87e557bef2c49d539e27dfd7fe767744613dbf7c0edebfe095f62f1f5b399c7ea5e1158f937f791c4efaed07f13f79c1417a012bd86ac7c989cde80ed4ab7c5eb9b155dde5a27e7555bee5a63ccb5551944f9dbcfd6aef494a49b5a4e2b383c759730eb132c72c1f45c8d6a82e6a8c991fe76bfed9e3d0418804c9de2313fd0b70c073b6a7f589b8efa141ca41a0ebbe3e0edb733808f7db571c844890fa458d7edd6e772fe03910e820d020a5f68b5ac51c8eced29c45e377f6fe3f68df3bfc85b4f00ac31826a4351b28c73982d50eef2c9b0fc47bb46f0ca45ffb5f617785e11ddb671f5b1a072ec0e4d3ad8d60b210e98f59aab2942859ae5ade554f26b91b8ba0dc2f8d72cbbea92c57d80a7b55a6f262df97c678595225edb507ffe88fb8f7ee89ead323cfe97095f889540ca4fbed81d4e75e48cbf3741eec2ee82cf7dec7c6ecb997b8677b9e3e42b271f5799a3bb21d790e75551c9bb5f9dfe83c88b3ff00be00f80b1f6bfc5f7bf093ba19c4a87dcf161f88f61bd67a38ae870cfbc27e9ae78037bd05abfdf6a1d63f29cf3d8016ac3cc230d8e0a6c5240742752a65c8b6e8fe3870bfe120db73efdb731fc4eb53eda9f744dd7bb8bb408354bbb56a9af641bcaf1f5b349443481fcfb9406c691768903e68bf1f0feff89c456d08ace32044b20fe2dfbf49fffe1ec72becb7f76fbc9a19eea97885e1158f0d6b3ddbf76f383a875713efe086d8f8f673167d1be49d41f1b94b95caa5311c52d514ac7fa8fa2ef65bb6611f65c6f0c43362de75fec50c27404796982109f6ea1aec3a55e36499866df67356bfbb7ba777ff2fee9c7c76559d6db03fcfe171cdf2784ef4694ff017592c0e2990af2a825f054ed7aa7e78b7b317e8aee6d339c06d3f8164ec2596d359553631c77cceb7c00c79b6fc97959814be9ba83343cc2ae09e23996896fcef9392892cb32799286a507e76e510c984166c189b300e344e0802699c30876ee9e39a16e5c444dbff68507e053c2707f93cf26b907fa333c378ed68969c3a4726be010cf96144e278064c045250be84a6fc1ade3566086b64394383f2751a9435b2cf203dc62c7981129880d081120984b8941459e108114924e1095dc43e2ad33ebeaa7136ae7ef44efe312682fea80b46d0ff745d22e8efdd2f82fedd5545d0bfbaff76b53823e88ec564ec5d3e95ed289d351a3cb1f23ff951be66db8b80d2b6ad89f56c6850906d05dba06a73d518b3c25e48cb3fbeb6e3e707f9dcff207110222b1efdf27b3ee29efa2729b0b1b57df6f4e4fd69fb1ef9db966120d9fb9f4e270b0167d1f7bebbf539adbf677efbcfc7704ff7dd4bff1ef9ce84e10b388b6adacbefd1300d63f80637062231101ece3e3de2065458410c827c7c5ea9566cc556aa155b325661064d72c0440b6630c5135ab1259fc7b9a97d6bef4f370c441e398b3e919e7e8981348ece9a4e5fc3f4d59d55415b622d03d652dafc8ec466635a385fbabbffe8661026963d7dec3da49fdd3929d6e6cf39a5bbcf99f9310dfa94f970fe370812f17282e0053fa641071f0c67f0a735e833ae6dd05d273cc5e8fce92465e877eb33647f50271f45e18be9db123fba98850cb270e247970565aab3fe8853cab0c59dadcb1836058b616fd3ef80d60077b168d38de50cef00828dc69aa6997ee355f631af6ec89ce1196b1a3ba041d9de8d0954a0b3216621832c64e0df6f812e43803251630ca6c2e18f193c6a4336c3d0b4c7215fc3336840489eefb76b50d5607f61bb8da82e99b018b358a7f6340c1b4a9faed1deeed9cf4b431ab9bf6f1627d680dcc6230dab1db1a63fc789f4c00120aefdd0d122c6ae488e318295cfe3fdfed2fb880f86604566c9a19dd9aa4015860872edee0a19a50b4cc82bf9361927f75d492c3f02810b5cc811085d18922b6dc2e2a7a808491950c93dd82c6f6a48ae5a376f3794ebd6cd9be2820972e5ba0602185ac8f4e75dd15765ec6bede6e59872ede6c5bec6d309d7f072df080430bac8b552a566f9d32ed8f04649e25053dde4d038fef184b2272914ef0655977908a835f8d7d7b0c4dbfbd397e770de9f3045da628bc3617bef71e0fec4bdc77d908ee3b88e0b368676c583fbed7bea7759c9bf765b6f4a1a7425cfa14848d9bd4342baabe6eeaa3f7bee7964cf7d4ff61cf6efd17ec3190c2701c8d17b90fdc31bee64ff90e5e6de609d9bd9d604fef1862aca0e41103bfb18271636beccf331ac49196282b297039594a37f9c1e0ecc862d471c6e20c7e8b34fd84f8f7a3864ec1386b168c33a16b21d3ffe1d10223d15858ace423d877b4edf6120f1f4f5bd27d2a37a7f29bfbf477e774fca771848f729f8ad6a5e94772b064264c5633eea7b26f740eacfe730049c95bd7df912570c84e7513da8f7ec51386ef51ddf382b7b20da893d79949b56ea63cb865a46b94088ec486120b2857afb2737c805fea40814963ececab23f4981c59e7e10204416105bf47110fab1154a9fcedbf183fd0fb2458f2e91de97a28225213181c2122e94ae4042855d9d4e4e3c1b44f74f3abf37bf5ca2184f2fd17d974bb48af1ffa7ebf29f4aca4b8cfb374a0c315134c46509a1a5248e804250ee7fc1e14c8aca89bb364a48474bb8507284242a8e4c11c17e1a97ab82f9de54aa0392c228870f721ce520420e24254db3f6939f03488a88a30309a3c6d121e48388a36389081e358e8ea106891073743c11599ea3238752e3e848ca918488a3030bfb3d1026812c617202963ce7260857132b38fcec107420a14348c7123a86743ca1030b1dd89589561cc97d440752ca7d51b92e2bdf1ff17df9bb2a2360b92923b0e16c59b9dcd4cbdc1f9907426b810fc44d2be66164906484209334e3c38ccf8c103340332b98099a199a59c2ce14d9789142a34453832880fe984b738308031431867e952457f9141eb42503438a8a8c8c8c95499271194f069399999999999999999939ddcc90515d5e5e4ef27ddd2eee1246020be125f0107e021761232c056ae223ebb78bfbba4b33770985437b97301258082f8187f013b8084b818db0bfc0a8569ea761ba776972d9c28bcf4b142fae17295e8c5e82f072f492f4824504fb35ed4549d3346bbfef3f27d48466a0ec7b1f5d5c5e8a5e7cb2179f179fd58bcf4b142fae17295e8c5e82f072f482c54bd28b52ee47c9ed65b40228829a00ca374afccd117e1384f5626693948fe1edf001853f8687636695189d5f5486b94452de5e1e545a5ef5b329470eb74032f4060746461a6c2950ffbd94c0f8a289174b5c2839c2b7a8562997a64883271509031b5a2c061891fdceef69c617d45f119fd027840fe9c3e24bfa96f0297d4b9fa67d42421f934f0868b8d196a28022da14316ad0c891b3901a44d26092520c95151d4a3a9474ce8c87f16c60457c419fd0c7834fe8737d42dfd027840fe9c3e24bfa96f0297d52f896fe63ca3f58d9981878995ea2196f2f918c930c14174a17282f1429a02ca164018549e5a3f22182fd9a5501dd00194191fb4330879aa6d130e120da2cbd9ca5e42c9a24344934483447688e688c5c1aa35823456e1a28224d9108f6af68ee308d0b0616c535337178d344ee47e1f02d0e6f94c8edba39c29582c31b225c285da0bc50a480b28492051426958fca0750059467189de477fd76374d449bd34b192694b0f1428888109cb8f0ef95b91deefc56a020a88fcf3dc9d0b834252cf6027bfa98af91a7633abf14c39c904e423825a17c40f9a0844001a156800a420da1965049f93c4715c15c9a228dfab97a3b82893a09e184744af25392774a3a25a59c92544e4948281f98a07c1ac7060a282196a0801ac7860bd40a9450419e6373056a0924a8a1c6b1a1c2a28a72ff4a72f24fd8cff06c10c9fcb497e87e776f5cb1c627d634ccdc42917c03450c4111d111440461d3c4a464f345132f96f2a4a1f941b4313a3a8214840ddbbc62cd9095b9a1cd72c68c2ec6f6dabad896382438216e096e887b22b2b822e78c9aa33e28eee8e46fb7d7d6c5b6c421c109714b704f70469c1438d4301cda6f5b42e1702687db12107774d344b4298a35435c0d166927f250ac618a354c28e14538a382c30f628597929098406109174a5720a1228296e606b1a606d1c65584bb30d9afe7182f73695c97c648834748ce6a981bbd1b365905d31831614f46f604933919d7e27b9291e9fcf6cc4ce757c618776eaa0b96e9259279efe2fb394be2c791a648b3304ce35ac28613ec663c1c5b5e61edc2e496abba2cdd5d618936f24f397cc8e1d338271194df5f69747e6b72ade9fcd2909141cd179aec5d196bfcbe908f0471e455c3166a680283885628bd727f0d4d356c8175d3f965651a88a061e9003e1cc0678606226858cafd07f039800f200c3b47ec30d120040d402ea2dc0fe690c6e517cc323b47ec30e57e1a8068106226001dbd4432de5ea2193f2fd1eaf2b09a1183123134bd6e8062cd4e117127a86f8288ac7ed74cbe694209a123ec0d1140373e4d4b51fce49b10480146b6f92232651b28441b2ee2923ce3d218d10c21daf4cbb8342efc7269906890c49afe994b93e42c1a22e4fe19daea431a2d94108aa129f7ef04354e02967aa7888893002944b09f68e6572ed10cc6099042c4a18922828d43e3b2ee7d2e2f35636951ad70dad65d9a656e74d6cc9bc6ada85a584e597d7171f160e4f5bc69dc8aaa85e5743b6f1ab7a272fbb964f5e59b3173b12702d25af8595aeeca4724831fc316cb365cbc8472f8d1b89cd5ff97c688e6c859fd32de0d989c826d5ed890a5a9d1612fb03739fe0c0f074cde94b0a74ff990c6c5692ff3ad5ede705695ab43a9719210713a6c638de46950fecae5c21895558d183abf38e3747effe925c2d86f8c4c6566441bedc2e4180fc7964f78c2e43a80bad3f96dc9d45e22999f5873160cb6cef2cb92e9ac335402747e55b916a0f38b92ed2592f1f412fdc43c105a6bc6cf190f339b1a474752cf2d441c1d58441fcfc9f172560e214457e3e4406a508a88a3c389081a358e8ea220c49c045021262007508358449c1c4244b05fd3acfd3eea437df2cabd118a35fddfbd2972e3ba2972567fcbbd61e266e82689066f4e9707ecbbaf322ecd0d22ab1f5f1a1e4456ff8c1f20bef59d585a542a4fc3039a1dc49dd4f7d3e880c648dca1df4f23054d0e687040634473031a1bc49deffb696a405384268ab8a3fa7e1a1ad040117754be9fc6157756fe08fe900608b99fe6a80b107369cbe5c65833736384616513cec872fa496ad2942c1f25b59265ccf5d68a4a8aaa85e53bc5dc6eada8a4a862ae6ca15c22a09b96cca764fee4d28989fcf4f66ac0e6d3a3ae06be7cc24432f8277cc932c61842962cbde7e91937b6622ed6927183dd1e6c4622f7ebc0c2889cd438374444f0e539365c44563f14a858f2c2da7c91fba97879087c72038d20f7d76ba3746d926cb46b9343084a7220358ecd1122a8c389243a8a1ac7e68a08520129014b9e6333456409616324f7f7e7006a1c1b1c447002e5fe980cdbbc862c8d2b77a5a1f3bbf1747eb59a3bbf99d6ada81040005e003a182ab7d5d0d0328c86bec09ade6a19bf959b13978bc0e4d2b20a243057647294e3ceca8df9978fdf4a8df37d8cf171f5f13fb67c7c8fef3f8d03f3f15dc873647c043fbe1bf991e7e08fef4839be17c51c1a829ce56f2385087a7c2722e2d82c35c824e63840495bca1edf813c67e6593e6e3131a746530c696497cc83ecaeeef5eb9cd3b3d17da51d7d714ab1c66d785f312c2909ea156b3c1b27eed5a0ffea35cfc69cdc51139e5e21f16cd8afdb76f295ebe8156c8862cafe5c4d7ded3a94e790f060036b62e3c4a4c4060f386646a1beda2eda883ac593f6bacac913961387146bfc63ae37562959787ab562b932571a82dc460a364b0e50f29c1e238d86a0ac2951aad1e4393c966a34fdbcf0327fefcf8cbf5f69135b79f00a23f7d02f73f46cf872630ee9854b44e5652e10df22a2fa199748cadf0bc4b76e0ad0cae743043f9f063f2067f90fb52079adb5ebec8d7e240357db55996b455de9ddd8496b595a5abe8f9e8d96e76919e3ce4ba6f2841f4f788251912be553625d220b882d193e9690c0e42329d6201d114a628889222424f171858f214830a205530f2567bd9630c99ef26ea86417ece368880da31225ebd331f8e3eb52a294659e8dd5671e8ea9ad525432d022c9a76388b4f196e962c4f23160565e8c5470d84a5438ec254cbe6f30ae785db1d403c80148b1e627872830e64531c51aff5553f66f6992fd750cf1c20ad9ffc361b462069f430e496606b73a329463a8d210f4b1b40cd11094b550b94433c01eaf1e4bce72a4cf8721d98df82299195747111dae1ea31e233d478dd3f23c96623cccca8bcb54b22416c127057bdc0368078806a058d34a94f492252f386c26dd64629477e3cbab1a4d1f0bd00e10ead5944a7936e6a374598ea206730c49a1a24865f537b89c553494841053131bc0b8c1e7b2586e68e2869f66f9bb7cf821e5287296cb59398c7218a1e2089e452dd386261bc0e81c1f4a1a87cda449131cfacf103ec427031bda2ccd2441363356f8793a25c50a2b9eae307829e908a987518f2397e68a353d8a7a30d1630887261cc0f0f92902c5104908696144524ccf51cf9124485a700fa0149795ef5bde9fc712be3d46643c1b2b2fe3e198b9e53d07d65bf5406a1c96971830998a2ae5331cc62b98545429b108413262601f422fbcb2ffb579c51ab7dfa77836583ec5c331f3eaab4a6785eb59acff7c88383ca488200f231daebe61e806a11b8cb821c886251b98d8c064439306fd79488184896cd438372811417f244364ff959f1c45395c0de628428591ecde8d94dc826d6872005284814b5a752f1e8e94fc4526006939e4909810a393b6e5637836bed5aae576d98d396a1123e3fa38f2c1727d18c51ad790221f1f3f3e8086086a30e67e3ea87ce0c08711cdf24fc222f5409224fbbd3d469ae53d4640d81c453986e470f910f29144fb408a3b2cbf82c356c244855fde06309ae5af445b6299588114ad487ac161b44229c905dbd0f4493392fe885392fd57afa54fcafe7ff448f9e44ac7810de315313d46a1f571e4c3880f231f413e8cf091848f211d2eef31f21c1f8d8422160943342d7a20f548eaa1d4a0bf0e97e7f450b224fb0afb106ac2862ba3378a35fe3c967830e91cef815464c3559151f65f15b9b27fac33522e918c8fb93d909ce558460f2d62e417dc23c9091bae80645c4e6905e439282667f9030d65f711ca8e6a5a0165ff2a2366460f24cd5272964a92b33621a1a1ed4614206c189f004401a0f8840074274f011da82ba824cd745649cd32a64604000000e314002028180e098582c168344d84d97d14800d829e506a501f09b42489711452c6106400000000c888c088cc3001c78df9401ffa78fac760c56d42327a326cfb3b366ea55072b15c38c8291105b5aab19496cc0f8187582edbdcb332dede99a3ea81e96bed5219b9a0b8cc6abbd72e97b2edb3ccf18da49db564be31d222d9175793b82498369d6dd4a2c06f6088142a32992895ead3d6229632331141ddb9230efbc98cf8205fe268dcbd8b09de249f6df99682257c9ae7d79eeaee7389c56d4ca3110084334f5672c31b2dde9bb2e62d46111850069c5382112fc7839e59504356a9b25487db57673f682cef07c3d71d85fb4980f87106ced9ac3815a3209319d796a111183805cd5b10f4094563a18dfd115d1026859cbd1874b8e7c80862bb4368e5b047bb8539d5063045aea5e2de9f9cfa8cd7a8ac0f01fd44204e45747343c6d4643bbb9b584aa09896abda2fdf29d7da2e5bb9ba03e08295fb63512607ecfe8c772592af033147252e509b1c4a1ea19d0a340f86029e1cce98b44a45e61e658452704d8ad8bd5549187baecce0c785411311c2cfe3eb124b89857cdc0111fe06c31cbd08daefacbec33600a36ff1604425469ff4612e3ee62e265f985a006ea3ed35825450f81b27e584c43d090c879753c0f56228cac8e30e4607d6e2374a2002e7f2b7fd3f6016f9ae1f135cebd2981912f4bb8e848855fb0abe1860d8cd688aa23cd6864771fc2a58991d0d4865f5a25cf80b4d9fcdd9fed16500c41edbfaa39f95a2d69cee419e41d6d1d3dcf4bfe99d6b65643a22b6bead68982cbd754dd3a91ec35d1e9806bf32619b577611cc371fe4f87632acf179fcf40687916c28d4977d485dd1bce99d8c4705c1209e7dd3b17d5614c457fe541a3d72ec044b100b8db235eadec8c3de1e2757e968699e6ad6c3110227a8235a09160d89e6e4273c2b91fc182410aa3c080effec588fc4d6bb21a5b062885a66e2fb20b3c929f34eee957610e63c537bb843246db670336cbda360f289dedcde6121e1bd276a509727321e7b3223582a8511476a3633197c98367bc0471cca54960026206894c9951349f3814c1742a62e2218a3bf87550d2491fdbbc8eb04f8c0d50788007fb10e591eabcbf252024fc9c040717241624d6c132f6ba4bb28024e5063b2181b38550adfe3a8b4b4cf12465e79293e7588120b42e97715d69b8e622774afee269ea1cc3772deacbed5d593bbaea50e30b6e5ce71d7be466735d152ed9a9dbdad233354f4d0601299bfe8edb5dc0fbb5fc4029165283dabddb9968c763b8d8a4ff426de574329b370e8935786b6305a65eecf719cac641f34f8b894dac7199ecd72589048a0029ea55bfdf67314b3a85511251cdfa513573cd8a075d89122db0386d160b37cbbbe09b866ad2ad9abd530109cadbc1c923d282eab69420225a26c71a15cc796d926823947f276e3fc1aa1cf0a4123824b726a59e5aa04726c36b7a5ff2a35e783a60f80181d08f1414651a961ac39c50ecef4ffbf9da13b26ea752662316c06dd97a5453d091eea21061f0cbcf6d2b11d8bf8bc13cf6d909530d8ba2eb4db96bcd0b5873ac9f482763b690fbf6579d31963abfd62879d04268f41f1305cb2f501bf91c04312fd0c5870088e9af41bcca06bd7cf77974c1961214c007080619caf02d6ad986e311cdab3057757db8b2a886b07c294334a888e41ab8950d7f01416962420c2e659d2c497c74f8b8cb3c5ed4bccca16f540885f2992355fdd20ef6287d12173033a4682f64a2575e4b2a38dcec8c2bcacaa19a9bc11be35bfeeb93a376b15904f6207b14a75cc90c32609e8eec257a9b17f9867fd3e32c474032118225c4b9c13787965d6ae6e0933e52d5caa6ea1dd60bdc2038233a7869425917c8cc0e0a6293ba146b3f3f6739ec942a18acf522d36a333d64e6d612a2933bd42e2a86fdd04668e2700ba22318bbfc3f84d2a5ccd5c0e1186b41681c3991405bfc9767b5342e04e9a3f4620180166af04d4766f414019fe1937b56b4ef6076655887c8e6a0c443344be4fa7ab0b87e803465eb4c96008e8a1b95d9b8898fae29404c917b13775b7830fe62705d813d4c465cc620e6658a553cfde13b2cd76176e806b57ca650298cc413c9ae096f045041e2f4bb22f0459dbc7adf14ccd94536ad1d25d3011c88419c55a500ca1211bbab6602fff1195b7a119d9639726d0442f58019f6070621ac85b1d9acb7d3a9e41413de82afff67fa7ae6adb168f30d8d50a0e77de45b55aa6c3c696dab82db53487d4d4bf29305ee959318d233a431aaf878f75edcfcb2fde70e04128537d166fde3b5d29c0900576073ab19a2a9ce28a705b3f8b912a8a2c18b63035924ec3507d22978ca1c97948ba1ef9a0df245db99f401f255310dc115c288e2f16fabb33119e7fd4e81546d825e3eccd0e247fd60dd30328800e44a5696a18ff5cf7b6f8f363a2292f9a6e95e2bf891eef5152e39a0f3a687faba32f4c51a6a878dcb22e22a2525fbc415fae4566484ae5ee560eb80a4dcab5964f06ed124a56d593c01891432396e4a813b3109af1cfcdb065266c5f256ca75ba8bdd42bb99866e34715c26c19b31fb7b2067019601a07b839413d0527eae5b35c1a8f597880f20ea92c94965062e9a151be158c4eca73585aaa5ffcce0f902eb2640788648b2a4b10027d1167f12243651ea1ae07ff842cd8771de4b5c260a8ef5c48f556c805d57922b54314c45340b4a8fef670985570692ac03ccad636c75f258f14dd6f59882c7c4b8408134781c176d8d40b3acb8116aa06fe8ac1e81ccc157342a832483ac9b185eb49d99ae8bfc6b5464f2831232e86ea14198fd7c029813a0ec8660270fd24544712293bdd3a4cf834581fb42268a3d011e53289343fada5b9a0f1cf096fe5fcad244ea4e0b697264c7256a5f6adec7dc6786887b52934b52263dfaa9e6036ca12ad84211c3c9ada6c6a908dfd80d894b13e2e811576890625995070d2940032950a81743392bffcf5aa8a7b0feabf91fbbc715dd028706977e6ef3477ff66dac2d20e6ee194db483a45f6fa697d0c761cdbfcf92f262bc261533ad041ca9907a1cf4c8b287a390ac3833610ab2bfa679597a3e00b15297657443f04cccbe2e7a6f1a259c8c980b5e15a7d8a82db174a968656ba852cbcf9f40e59d29f1ad98a22bb7e672901361f247140934efa03201cb8f938228326c4169f2cc827812c56581729bd3d240e853499d7db25c481f387c61627be577c9f47c25c24e74d51a84e4eaff6923a11e23248ae953007321fca91851e09111ed775f6b45b95fc20d295152fb85ad32016fb0b12c83c02269f028d117e6c23abb989b5d5f837c50caa781bee408ae11d6d156ba4c0354f00d79198066d8e5667ea717f58146d30fa2b188a0e9e3d3abf89b58611b9e424096f394b6c7318a926195a1cbe04e8abe860aff88645f93f941bde85337f531a4fd3ab386e3eb2e6a03ca17d346237033e5f2e7029f6123273274febec1993f621652ca73e279d0295da3720d0617434ccec5575c1351460e289ac3cc540480877c6bda7a7e56b2d88279c0d90fb896c8dffbaecd4bcaafed9fddb3d5add53dde7f77767d5fa9f4856c3f73c8824588107c1eb574af5e0af295ef96401346028fb767c5d2ff01d54d311d95e32bc8a2b1e3da7db3dc0913156d30a359476d363b29d8afe70b931c140aeb8450664b189cd1d10c2391da0c906377460b269cbfd15bf2f28113b1cefe9190b2148d1c0f1a4ad1484c37a0b60255c7cb1b896cc0906a27130a6ae7510f26af0cf6f781f8ef7f452a1068fff0248c18175c674d2743f2aab6593821f743dfa604c68314a091e8b052493f75266ce750d13a044b605458828c1b41cebbf5b0e95e53de03e0c89d292c0c827f67757ca1f3f6db34f7c356af0678a8018fc8991c8f2da2510bd3202b809a7f44d50188c3a8836b0589f1bba937a096c8045aa9d7da547f8b104808d35a672370c5589ebfd656e8e7923ab4e2403abcd233154cce0bad4e646bbb4557bb02e124b4e2999d075342af1f32bb671e1a8fb90dc60059a6ad1c0db18d89a7580038a62bf88621ec128ddfc1005caa722e7b00bfefa4d4e09dce131e2fdfcbd3fca3287f4f9ef7ef0aa93feb9eb44baa188d165d789a09800073b49bdd8a40a285a85af4cb8f21077dafcfaa211672f80b76a8ce2d4e4d4fcaa51870f80bf5d35948693d27e97a279ea20aee2a4debfcf58cc1e5595b8a6b1f50b34f223d8b4a4cdf88bb5a9aa51b5be1a90c618b17d552f1aebdf29493d163adcc26a35c469e22f25a2b7d63bf472f89497e3d8e4ada236674a35cc5e773add9979bb7be1a219eb7b988a2e1c94edf39572850df18268a6a311d3c2ce381999103b3fe3b0b4ab004e767ba0236d8c587b2f16be3b426b940f3352fbde4c9f33dd3ad38c218eab75ca1e59c8ea30090cf73b4337396c0267a0fcb4dd24b5a6929930a89b8470eaba4bbba1a70407dd32a187efcc5a4e20654b6dbc322460510b39be260c4b8e7112f52fd8de27acb8a64dc1efa6ad62bcfbeba2f767e42c2b998cd66353e95320fe8aa37a40223f5dd2d760dfd06034d22dffa64ac550e4464f5a2c750463195cdd44afd311ee03c4f60eff94bbaf2e795fe1b1f251df67e5667955730bdb9716849001411e4b50eac086e84e9ed24f4fbd631ee5fb917b215feee7253b1150eec145a9acfa5d1b664b15c9bc595480d8233066fc2ada14ab38e72c422c6bb6dfe4fa73286b63f769b5aedd8617e3fe0c5464402592e07bb8a1dc8f9baf6985fcb673dff57dc0954da59b5265704397460ef09a98a838b23df415279f47f315030f8d90d2988ac5833bae66c05b06a34029402ac29b8785e06b662b1782c341e11d136b57081b5248c2229c22fc7a8bad1d24aace43a18086d7dd93826fa060977deb9489086287f2807fcd3c035b66d224f41c31c2d3af48d4e2fad497eaa68e698fb33a007f6062ed40a23e3b21bcff5fad035b5260b1b6adbe42e7ed2e6aec098b5ec18281a2ce21636d35014c1c25dc9c5709696d922e9f418c09c7159ff333e81020774ae2e9d5eaf5f5430bd30303c6ba61fc2b897468109f079edd02553b96896e040c681a7a86217e10318173d1b6b1fd24bc5e9435a8baf2c22c310aeab55bf255d3c200883174c267ec06c06f43ea443fca81ae3c43e8cb024b52500400ae08a915cf8c45c84d572239c8abad80f16ede7a267f29b651c163f2bd5e6168a79d56bb219e580142231518f8a432ba7f9e83dc7df7857c118e67edf6494a475299d68b04bd33b7141231e9f2565cf289296cf9ac3c4605a374ca5229cb0f5983967db6fc0dd06c4bcb983960c64cb1757cd3013e82f9c4c480982bec2a2835e7460486ea6fa0018c3dc5ca11099f1aaa7830de111650c85317e15cd7c645b1185ab725aae842beee48e792f5df54b2893cd61048cacfb235ca4ec3106492c38cc4442d24a6c80d4c43e8c461074023877688f72894f84a59b7107ea154a4282de1a2a9f37bf017783c7cec7d59c498e5345a6090b8d390099f210100e66f783bdab0674b5e3e3addc271ae0e06a9424e7207df2dbf6ead20da50be05eed2e7a1dde225c635a461a1265de2e57ab96991911e0845348f3e9ae77b6a5dfa18e7eb57bd3080ee92caff4af87cf972699536f2a8610263512f4c70aa19db479508f2777d280c3a4963a9010864e6542b96d851b7106e6db530aaf33b12a10e471f2927b81ac62b88f1ae88fe10437af3110b8825c2b7491c8d87fe0fe419d0322f26d32c38191190eafd3e44bc11c0ca1937854167324ab114f5aa303d66f1f23fdc4c6305b5e7cd17a9a27f6851df71774429834be1f6ce0cd8523543a9054c4845a1dc07cceb32964c48136d089c51232cd73c38dcb2de304d25270346e00cab624b9701e7c32b305f96eac3aa7705dda60d8839a7420b564383a410c028341ec82b8403a43dd67c3d1ebba63d52234a3087a969034d1876a323585f8a69e292bcf403ed4e4a3645e3b8ecbe2e68fbf7f99c7bed56620a51b0d184666b27bf59ff5f84e84dd8a7e8cda96285b38d4e9340560bafcd082ecb53cdfd9c297579dd35e19957a0b6be302eea24f4bb9afba9ae4ac36ad42428921331f05e1e6718afaa3d13843b4d59cc0ea5168eb00dd2deda168b135e29b518226d360773375c9c0ff6dfa8eda8f990972760092e8e02d05d3b093036c2666b0a4b49741917c1eb29580420eeff998242cad23b3995904c81c2c4c614012e23589e73dc1564aac4abb093f5d313d865e3a4f8934728e4a919599320f7f9faa6a4a4819985b62f8a82076d37d38966e3a67174269ced64d0158479ba672402923b0278037c9737bd2e6dee3e4da01fc4fa8ee61a2c1ecdba9b15234c6f45610049adae4f126277977f26045a935fcc6f8727b4507cbe2b597b88b2bac581cd53752b521faa4a8c6f1cd68a06cbc7d9ad5e7cd3a343f89a2d30d2d644d2ca34b1081c16d5a0e35ee1ee0eafa3a6d147c951592c733402128109e1f7ecbfc4b166ad51d0d669a54636991a176fe6c23b514e052b2a5a8405d307e40900b7fb7416b9934bcb030b1ad843c1ac5b428deb5dd8dfcf713b4807f1d8edae113da864c2975d0ee0ae210c4c9f25e999093ba5ca2b3cb89933dfb9fbd50c38c1c621ed40dfc78169439a61da783138392bd9bbd72c64cfa4c124b0b786567f6d053667f489377217db32feff4de6446541f2dd4ffb9ec4b9274f491fd9de145540649b83b0dbb8ecd3b0588b42aa1d57c03380b259b99093e699fd49a4c08e8d8e0ccc882814b6b51edccae3f90f2c318ca9512067c8a2ae9c20bb7f9101d365845667465e4d68bb7790f0c6d1a174f6e90d8b1c80903a1a6aed65c7a4c4f3191a6b5eb08894368ac11f5e94086970720c24d28780c833c2fb7011f6d0218cfa30b6956868140932be8179248c319249b4a71009eaeef096dac9017adc217c9a387e5d54fbdc5d6e470a9b9ae7ad6052ccef8e6b41fe5b73b9c58d33d4eeb2d86a0bbeacf52d6ae3bb1d8ece8b21094015034931b9e8f235b72d84aa61c5c4e0c5502addca6d542486c437c9e49e4e9c49c05cdae412b93466618091e81fa9d922e671a9e5381a2e47b673b04851c863679f5ba4bdf78c7df7f34db97357b849e55c556b21629705ca7c5ef0d8f4162f295a45b22cfad130612e746735bf4cf8cb86fa76a4c0d69bcf8f616570cf93cafe1c2d52ed3f73f99eb0f047607717386a24fb14e95b9c82e8f0e2289e65df237b8d3690b8d752e9ab2258f7cf97ee3b0cd319a8975f6339245cda0fd56c9b0ee13a0ac1d0567cd78657a71e61d2ea92aa147a9e65713eb878de7ae28b4a3036004d14b18135e8885043fe62007e837587d794fae876c57e5f8f9614e8008288dc4ea63d6f22b1f7ae07f0f82f9b6430104079e3c643aa82288a185b83a9385557d258bb3cf069fe8b076d53fe8bde85a19dff2d4e4282e7d11e64bf19029203fa868265809404f4521915ee31f2d8ddd8a23bb90d51fa813a0e4b77f522b00cc39ec76b4962245c4723dd2df8d7a43a1c7aedcbbf8ae5e5f84e0239cb3f159d398d487857bbbc432e97cda05a50d26298fa599939cf5368451e8d140fdc742041fcbbd2afadac98df6aeef9ad69b18402539d9166203fcf2a76781bac2e1f1edcc3b59fa3a3d398247859b9e4812cb8ce13b41fc185106480c21a3fe309b1786d8e437c77216e155aaca1b1eb3c7f228065283b3409c5df5cbe645a81557d1851df4d6b17ee409c159ce61f502b1db6adbddd9490b6a5cf046823a07b647d6589aef0eb9a2c344dc4b28a5edba808e3d604cd9750ebbea054ae8a01c4d60f8297ecf566fc6cda1827d4f7bc6e600fad179132a608b29fb12030ef926920cdfc67b303dd4a20f4b16397180f64b3a277c24d8ad130b828fe73c2dca2f78e36d57eeb8bb6dc791d91f9745b11c4fd057aea353c1a12c126ff5c1d11795d0e3f957baf21394879ba7bcae75236f94ad08454ba2723a4d31107ac770c56f25f8f051c986c95167583460393cad16afe6441f53821b42697a30019134019d7fc03604cb9f8259cb56243b1d5eabe4450427bff13675aa8fa7e27272e7144f5afcbd0befbcdd18e05a13de49bdcd968364b67a476abfe9af9c842b158b3e5e20002ba69999db00301755e2a43ef63b88a519a8df9894d086f43d72304dab839371eb54f47a569b2b8350fb6ccb3612420115d1ccc2e848398fdf75bec39c8f813a57603517fe9ef11c06c7f47fbe7c4da979ad4ebf8d4e28726b52684022fd5172f5a08cc24532ed734e83421eec8cb6568b39adec40c0563f28af554bef43224e1888f7846b41183f9edab86734a2236cb2d4c292b98bda6c5eb37907a4dfd1b227fdf4bae0be69d8b81bf15d3b0e0bae62a8917030849d508e5ab0bf6656ebb21ee82a987aee8a4f765825c88226003f3da5d317dc90f30e6e86cf9fc9b4006437753055d99ed9755e23aff7beca4e9e349d962c0bc9f54f93d2a8570075f48f07e93a7e7bb18a7fd1350ac2775389ab60fe193abb38343f8250030c3b22514e7f8e06a3da8edc0056ac32f4c74260d32f47a89f409960bd0ba46f21c74fb1d2e64a4c4fbe007019b7aa1e676fbe4f1de7ba629a009170efaee8451d7c8ed8760e9e42c996fb5f0a1c631ff6e6991c3f6a6890b2b23a5e8ef455aff351a5704375d2d56198faa3cb4e8f093403e3b420dee8030fab1b10d5d7e62d2461cd89f5e618b0d75dacb9b57791a971a3d7316c308d81d7a028226e0f5ad6183900d3badf3de98c0ff361a2167115a4281f054fec655bd48bbd1b40b8f23308885c43ebf9f179b0c0ed8e8cb2f8ce8e1b8d231e9aa695599715d0f1a29b016bc004b29cce9c54cf4e6c3bd0ad6cc9d9edc987c3f8c6106c460b33546e5582c7103be05effde56259e05e0af1cc827468f7f1b458e3bb3c84afa94090a017607582882857f3ef96f5c014028a0f4ce8b7089c2c1d5600300e5602ace28022cf711f4915dc6082978e8661aa7b0cd4f179509d555098f7c92bf14ea65d8abf440a3a62f3895b1ae47317cd0d6bb9b1eec9631c44ceb010bfff0f959582727300acfcad2cb05c06e8ecb9000a32bd56b6d001ecca63c05822ccea99db8da6fed843dc1f8fca71dee11cdff18ac6fdcd9115667c06f01118f7df723c9a0171e5eacc8bec627f2c80589408cc72147a20b6ee68fd4a1dc5251574f700d494ecd9de35f46ffce482e607747e862cb55f48ccfd0b59b6d41108d080fc0b64d5d9f55d9a9f9ff3207075d3dca52071b1280de802a340d842348a658a86c13386ca627ea946bf36b16a60407f70519f6f4d13a3ab333eaa65050aaae5d1f26d08edd0d5a3cc089260b7b16514eee4b495a54c9b6129d9519c86309daa500c37e0447316266c3bd0e08952ded88c3a3b3859436bf0bcee35ba4a2a2429dba77f4c47cce51ae6e1f15d35d232de4784f4697f581b44a2bfcaefebdbc7b10506fd3ab5a228e53ae314b9b06e657aebc01e144c876ee1c063828f25c6086d95bffdf11f088a3e78ba8f5a3d211c4d441a31fa1ee0ca52d20f9d1d0d1432ab353fed1c69dbff426af9b1982b8aaf358a4aebc2d32fc8bd450557d760a01ee3da32bbeba02f5a7e687fddea5703e239148578f0cec6b0cdce32f303a40a0bb13c4d5df73f20373ad6cb90ab1f5231ba63519bc0f08e5845109c876d209cc2ecc7c0f48572d43118fdc371c5e3c20fa72e3514fe804cbbbbd9ae87e1680ba3d13fb001be428c2da59518dc3546f76bfbb9b365ddba40d21b2043da0db62d8bae9800f6d7f9f7f4086ecf7d5b784d4c76f94fc63d53e01b99acc301db2900cbba02c87e1fd99ccedcf842e6f34f48e3cba2ec5080e1e7be361246f479998b983b3809822bea37e477e1ecdf58e2ca711eb224707b5b8978274299f78b379178b285fa5c24630d035961a09bfce58b11ca7e03fbca77ffd2dbb485a2144ba90040d64e67c0a7d49084110d29a34a6549b61e8d59be0278e9ec2fb22f2f99bc9bc4ddb1eaa4cebf7221fee8591b87fadec7a52d4b6201c3dc5993caa62c219e18bc10f901d106ecca1e7d5efa8b536c79929a36457f675837917b26b39063e04776c72d3d6f5881d6cb855c5e213077dc7adc175bbcec4ecbcfc89f61184cf49a46ddb625aa45381c50d30e75d23eb0c2058ab71e279f0a4f45773cce4e3f6fad42f2ab193bbbd369ecaaaa409032c35735ffeb16c6900e14a9fc3c62dd133de0383a8e4b84ddb296df6b8d941c6de9b478ac5c9f9fe3106b87f88eb3a04a9ece008fc75c29a518b0dcff5cc1ca265f53fe58fe83db1e69717e9e0e4f8188d000b7dc449828df3afe9d9ba5a279009fa8fde64c826e9a1c619c5b7edea24e29fa7343ed3ed9ac5bf20971dc840d7ee4a92967138d12576a6c41507d0cb917fe8d6baaca956d66e67f13b5b2cc862a97abebec156faeca326863728ef3c2632dd8c8c89ef9a2b85ac969d4b2b3e9bad24b72e9b1eb4d753b9557c1e6a6f2f54c78c4f427cb7e04a9d00b2a29feb7baa2d6d266ead65c0b8b7173a4f27c406814c9b0b1097e912ca1ed780fe88782ed6951db51b857dab5d33c43d461bc7675a352bca560f89672a41aa25e48ece888b2e30eb71070f97ac515cd1acc5b7524fe1720e3d59a4506ddc60803cf7b3b2c1d6202568bbf7178292a8d72c1c2dffda943fa5ef41682840e141981211e247a8a9d89553bce02ddf745b5d9482627b51da9df5a4e1f1ce6d7460baeb6230188aff5a5816f11ead7f46ddbf11da8c69e6db2047a3dfc60f2f32a62d26689bee1b47060dbf1651cbd113ddbafcebb671c87c9c8761c208a6e69134c6d1287707234e80e7b93edc8b614cfc689de086450516cd73d3d1602b40712d2ce33db9928a954bdbddab08b56bf3700960e2aebf2fb3157ce55b9aafa53790b38d009f89b40d630a5d3e60789cd2235997ce3ccf5cb99558fcfe9693999ed35571daa06233b9a1d58fddf6087df42a80b60ff299442f12505e49115814b09eaae24c40e2af52ba2903f8caecd27d055d57715801c62e6cab919ac29c55197aaaee2949201095d83813ce20f00aee61a89c3c4bbaaf7de46ee8a356c2eb18aca186f58df00e5baae220ff51b2beb2da37990d31c6998fcb2d12e7d033211280b50d468091954a739afe238e8004cfc7a620511cefeaeda4767dfae3308000f0faec96377657112d133bcb10fa199c7521a1085b6947a15d9f39fe9e51f87ebdd9ef9e16c569b45ce86639f024b1e3135256b9821091d99ab49514666da5eb7a10126c7a7b9734a5a57d4fc4f333704a27d9e2af36792a36fbd5234751607f90b004f6d964ca8bd8999ca9d3df153f957cf5ca649d9fc8fd8bc90cdff88717cfc0738d9f45aad1870cbee3005455c09a9855c6c7aa0c031609215a4504f976fcdde2e218772ba18b10450f58323b5d5645a7194e0731bbd71fb50ff356a875d391308ca02d003cb7e52c9a299df152c15f5745dad9b11edb1ecd902c8e99e05936b93968a233bc8ce695a87b0a1f8644f9a6cc87e1b481b835345efa854c9c4a69da3ed742579478507cbd16a29c4c44947c2ccc265a094f70f64999a8b879815a8e9431205692d5113dcf905c6c2a03bdab2ebd827eb192dc1d226650ec6174b099ad7b92cec5fbb4f40a95507cc38ae3658e43828f9f4fd886bad201c87b1a969384012dca2a6b529879d2a5009d8cf293dc815afa20eaba5857b58c40da02a72086da733844149717c4096d04742bcb6d0983f3c879dadf6b914149aec14dfc9f3397599eb8f9cfeea937ca2b18cd1e1d56da79e8f8d063cfee135577a7f2c479c0a26edc21efd9f2923d0e2afa643514341640bec278f028a646eb52b5274eae1c32754bf7aba447ed78dd3804edd989b7a677abef11d85557a64d066f0df50c2439a3a7bcd29de5118fc29cc6332aa30e39400613271ae703db1b15a836822b10d2e3de4762a564b65b6cab455dd3337ac6c8f4ae85ded7b5600220168cb9bd069e7d65804225b5b6dbf077ae8fc534f4b80e76769599f64126d63677f260e6521aece993e9c74abe9d4260bd7b7d1d46d8b198fd206c9638fa2d37c3a9a0467df4756e28f51be44052f3a420b16a68db90b0c4de0d6290611185625d99c24071c66d7748b4b2f264ccf7b2ff229f2f8626c938f56036ac923a52ec2b6da95e2f7aa5af250c5a851f963b22b568c69e42485dd4a937c95a23ccdc33239ffd180c9035535a229cbf05d34d9ac5ddd54bb41b08a5a96f0df0282035403bde4e6b7004e551091732f506fdb2a76b012d9e06d8515a8ec31f49a6ea52b9a0b8405628efb53d2bf1123a2cc7d7299bd90da87f908fa977bd8ec78a13a8f8eb81f53020e6d121c63e9e5149daf88fcf92a24e8ab4288424ae6e30a47a71230ae988b4e1f8a79da2f2ed5ae5ff79feb4162df2646e6f633361d14c6b049b9c6ba2b6e04681f594db9a40d10a8a68c50459035b55e876117760c4df119969d3a2ce32aab8b33b0250686926c65095565f09f49683520445c5bf9b2fa6037f94c8de2f237535f9af29156c15f09418737b22d2345377f9cfaf8783172cfd981bde3110578922cea1d22b0a427b1a8e891485bac7da90e52503645da690ff3fc54b9aeed33816c5cddc3bb1970ab992ef64d1e847ac2415d798a59dbf2709b4048ace1afbe62ed6e30811747cbb312586a658fb316253ef6264cdeec7d20b55cec34f5031d7bddb686d3abfbfa1d1ded6c070d37c2eb77389349e18ec8a3546742308536cb73f2f5ee3946392e905325ee24a00ccb4009da85827519aa522428116a9e59cd45bd57223ae181bf2eb1276d79f2901955abebc15caf2ace35c224016005ae49017028d1a74dd5485dd71c32faa7ab2774383126c26ad8590f7fcdb28e8b85e9802debb3d151dfc708a8896503edc71cf917e95ce4d7daaf2bdd931d7b3e0e283202d0fcd929e39cd1398e8867bf675ea9981a99ed6b082f1369fb2c8e29214839d2e3510f3a6a65deb67cc1723202f90f2ee0cc734c17b85e2daf33ffe2d9060e4c819d8252bf2efd667043bad6c933807cd32934c0ba3e54d96118d147f537c6e7d30ecdcc75c9320cdc867784fc5649f439f53a9aed9242578a18dc11c27d8e8e6b175694f4613ee5fc8992dcc5a0f4a7dc60f4405d042e1295f90dda507c2514322ad5223e3e354325ef9ec0b7e7b93723559b88cabe651275001887cb1d1d4afdbcf3bf4208063ad0051ab8db493a6855b507402b57a7b9d98025e49b28799432e9d6d62ba1b75058a4fbb0c16425058dc16be5a423910ab88d8e8d40d7456e94ed228333b20ee4a3567e26b14fa2325278474597e03d34243a9c38407451b8c5f36b5444597bab1fd4754926cf319922b99febffd407a57f0fbd875dfccc0a3d4ee4b83c3e2c4e6176367f1adac5c11da91075c5a43ff0731c80fe2142fa26a77ab9641cfe4369480df5d9b173d963767fd9b8f1f048047570c241bbc522d34172d6dcb89fb09f5193bc34523138766b086e449f094f32f3a9e29536683599024c44f49e6cd1ef313f22fa0a3c668f9208d51049273782436ba40312eaa2e5d62fc351fb18b8bff7d816c91717a0c99c80ae2e0d071bb32a9eba81793e11db418fa80da0319ce53f676c466cbc121221b195f65fcc6689d9ae904839456c3e9d9313119b2153c4260cb4d1fc1ac6d8241bc644dbcbdd8f564aa77ca062376ac88c83d9f284bdac41a048db56738e9e248839b8ce555f0299e0f6fdd4fdc40f9fb968f4bbf580622a91400bfca5db6747c0c85a078ae4baa88378724a71ecf09ff0f5996a4b5a3f7e38501049cf7a3f494c7c241cffb405b57c5450e27ad9c3fe71382d6b19b1373afa7c4b4af5f5f9a82c903424a0ed77a0692e9eead84ef0ad27371bdcfb5cfc1a200ca1e7b65ab40d219f7c3e0cf3396e1c322eb8cb05013c502bdab9271dee27d25e70c7964c847afa4ed49218c83a7748bef43e4681b586f7f8925fda488116e01b3129b7cf125605470c0328504f3f2c2a3c4f7f514c76425a39c87b9ec4e7183e9203d291d1ba4de075d6b19ffa91b6ff1f32d82a69f87bda0eab5dc7950f2fe9e3340802ca091fe96caf2fca80f8a5b55af2117f49e8c1e9a06173ff67e26d767a43e269975eefbc7bc06e6375ada682214ec342dffafbfdccf9c2fa4c612151f654a48d28386cda6a2e3c221f03bd0f5eadec29880eb9c108716f4161e1c9f8bcb138cebe61e72ddd98fcba025d46e7e8dd68b28168227ba5a0fbb5428fcfe8e86f6480cacf64df14ba6c88761af04a0ae405bfa4be3ee906b39067f4385b431b59b9039361c61ad30be54a1233e947ee395d94680c4aeaaa2bd9fbbdbb30b3fc122ddd8d3884ef3809713fb73b489a920b6bf3ea587333c056ec121dfb6dd5606bbf64ff481d745a76cadc0e968b291f8d00dd530d89cdf81982ab31adcea9748f3c45030d449b1a9ef8b72ee51c81aa7013a7f830d5f62ccae67b297460001310d1ad2d3f0a24faee226bef5a9c911be9f81ba742e43bd2818c6f09f8df1da3b08296555d6d4c50761631a56482f4426dac1b8874609174ac9a940b35ff4bde70c5acd7be7f78e8f3ab898874467b62a87b920e365975384acb82adc89320d16ab45b86e2f371d496512df2da0ca836350848a4e2edc079905def0c0c2b8a3a2e31112dd498c72c154ca344e2e927549f9bd6f599546d4c954add509ed3fc2172b30d2f160888528e911be7f3661a9d8afe01f7adca132289fff0742b7bd4e4dd24d8990ee022b7be2d619c7ef1463f87fa447eadeae27c8d174838fa08c16b60df9cb07040926f90c722ddd2a71f173bc34ee7d7bdd8db2a9736c066536f4e9e1e46ab674b882190753ec53457af659fc9173498987fc1446e20795be53ee21dcc22b4a907979a9f4000557b643c3a66b2ce52c9e7a32b4d188f94686e5187360e3c036c78bfe645b9eb04cc34d94398a49225661aaf0a7f1bad24b4da1369e0ed7815d574e11a9265aa327674a612bb7cf374d75021a7ec32b7b67f8d201a3102d34720e4a4304da13aadb9251655d275e6cf50ca9bc915786e6f8a453c083188c70841708a192644cb51083d32016d40401dfbe6a77f44d23d7c792a2c08c8c186d705dcb6c1e2e0ceedb0dbb236ff3eecf0d567494a2b568bb5b7a5fc9541d534ed3ec5fc4becf1038435edefeb70cd9964fb5da4b0c79c7749ed055e1ac907ec1b8dbb191b86677e64f07883ed504725c3d023c4a24de93dbe7d4e4b78f4aabe1dbe8dc921a3d57fe311bc3c5f5a7c266abf94ac431287629d82f86b5a683b085255be651726c00d42b110b75177b0528159f59b548cce501ea3aeaf5b11ce2f4a638bf434adba60953df1988be2b7097845e171502ce4503447ceaab3f4b21e1082cd68603c495573dcbbbb0c32daf7bc97e3dc496772f912b5f56bdb43671ac033ebb72cda0ab7c14057c7dad11338b8a6027d58e28e8bcc8e6a056855891be3856a56b1401c514e9faab2ffc3b6a4a676f04a478edb0fa725a1eccd5250c2f5e501de28874a21d0e65626e2cdf462102ba943e13966734d2f33808e81b093a37b640ecc855dc0a3a33d6e004df97a07eab547502de658ac9f8a663900fa6d0d2452ecc6027260728c0db2dfb9d1fcd04de912ca045a589ea78a5186c2a4afe9feece866f501e9ed752d0fca354e7eade514a0e91f8f10c55e3548b24753599d7df0d16103ffeb2b53916d868474cbd8008ba9373915cd6c4ede4c8da953413c864d2549edc4c2cb0e4970f29716b44c36bf5446139883111bd81e7ed46f89064f16fafe9a84274099fe99efa0aaedc10e8959a0feb0c88a39c7a69a86d8d8ee0195ecbf98ac5cba3a97c1f932bc2a2947919ec58cd78cb8be70f5cf75b1b6aed86a9f6bc2c067fdb5e509cfa51061c15b4206cd5c2c21561181806014ad40a898ce967d0f586e92a50d9198b14576eb133fe70a0bd4fbadaab7c628e5b3d1549892c7e0487456284d501eaf65f26304d021398c06efaec97218ccc4fdc8f1a1bbab8c0d9c640d00e61d72c826fe0dbe2964195ae9d1eb3685e9629509dccfe971fdb792d78f18f038e38f8b8b58c44691dcd9e500c8f4cd49157da20b0981dde7f516946645a77039b4281d76b839d9dbf9de0925dfdd792cb132b2f4fe80b7357d4c612778e39aa974d9733219e8e77a21e57dee79bb6f81e29f0e63c53c6ccca1c259720e1e1911aa4f308e293f193a697f81bd100172bba0f67b8232302d7b0b7c6af1fe02628aee8f3ab19d0771c34591002a9e08980b52d588c801632dc531c1731ac9a76678348ad7889703d84e04b8e962e49beebd5e39b19bde4ea68fd2f067f980887fc374b75406421080315fbd1a289620b9f4e494b8999512bf9ad266e88a2b687abbc7ab403d8e0b26d3c310a7dfe8118f699b97feae06dc10c344eda7a2297436e17a2f33634b66b1fd27d5871bb2139e9e3773cea1f143a09f47609d1f1b86944750a27a025e84761e031e1867794a2cdb9a01862cd56880b085d2d27329a5162866b150d0e54eb291e9dde793246b3deeafceeeed43d8c269b87fa1bb91b421c4e494094ab6b299b28fac2014b8bf08628d56f0325287ba5e3a563a30aeb06b36aca6760a1ce64bd2a2788e5f5eab407e98b0866d56a1135b6c85f4c4b48fce9fb109c0b8531a0c678811571539e81513345f1e63049da83e2e4b49c684aa287a5fb98668ced80e07f7994f7ef6c285d001112434fa380b2d469ba1f60f0458748f27ea18be355aa83cc5c652671a6480fed33c26ad5ca8f8719087dbd0599adddbe158f1a121bb87a69ac70e9fa0c6e4e110cb419fc8c305386dae0e5d1118d4c12e5cb118272544f294007196164492ea0e99960cccffde09179b2e05d4fd64e37e9df23f5bafd2ad930072c7f741537259ee63aa2a33a43827135104e41b9657188a524479bf92042e2908618bccefcf4de62525ea2b90603d7d2f6b69ff21b2746aff511446657bc571f16b20275fc0df5937bb63f904c5c95a1ac8003df3a4cc5c1694da96bdbcc273b7b1445ae16d2b16da8dcddad1347c925732025f1a72065e6c91c7ee4dc8e32f521c6f18f826381762c32711ad758245ef6781d702845bd11958c7a0b8c3c67365e33619d975aa7dc5f7a504f26f5502c846965ef1ad96e2e82f29fd3f2372110176c0934850db1e81542e1f1b566ad430d6437f7b2bf732fabfab4113b84d096c39f3193747447627862d178d1b8f1bdf6d2547e89237a110e44b6ff0a6b53a388b5fdbabb186ae693962a44a111096a15e09d468328c16895eb7490ca391a7e80ba0ec3937f71b2fc70ebc483f55d72aeb97c6d23e6866f074cd14fbcf45ac89f72ac4054f309a4fd962a8ae489aa12a34e48420282ba2d22c413d31c4834700493b65832073165215bc58a72dd3e716d5e8563ff7adc6bf0e0dd79131f69cb507806e693c679e22cc91596c32157ddde871a13d4330d88c230c2ea37d6a7a59f49123337965678b3619950d13c6a00d73604769cdd2ba74db6fe11ac44a3df14634134442db4e33ea9f0da7e6de802d5ac5d6027c015910e98ec2cb0a289023bf38e59136998071c95c52c04bdfb8aa96404a7febf2618609478980fc378c664155e9a7f5ce6ff357bb296df184c53a1b4e416c47191a871036ac4ba82cbd5acb6b92b87e0d382aa9760bc701b9644dcd3099b26d946ae13d9c79bb183bbb93222842770f1d8ebf1581e5f031f79ddcc6d81b1801979d92cfee3b49724085714f67a7f71903f9c3c4c589462a7c5c9353e13724d9741487665abb9249748d688d0776630fcce9c2d4a2811857cf5e7c30bfca1a96b8c2c008cced99970b8ddef0075bb01503aada8624b9e5a6b6a02c1d5a73cfc2dcc978be1aa7bfc8915fd12bf7e7174fc06f316d8db4d9508d7cf995239455dea479367fc92fba438b0390d1837bb41bfaa0fd72f4d8f111327fa853f42959ff73bea059742b4d538c85ed2ed19c92452d11724c8fc37be63ba4a84880db6f7f3dab8a05f68ba49e22d7c238a5b145b6f10ce2bed8f73f6211be868027bf123edf8d27bab6f25e8f1929048e7d7486c8e719f7616e046f5261b1ded9fe62a730f0e47598a083e616bb9add19e335eea0e46ec5fd2f1b609edbcaafa195ee69f1eccb7470b07d2e33bf1f44e1ba2a75a395654248ddf7652b42a5763e35bbc12eea7366c2d39a16d36d31fdffca3120f5cbe465698a1b211c9b9176fb5e8ce102dfe298350476c63d7a5ecb787c3f0ffbc5658dd91bfed078c360c5ac42ea74a0564b80a3972624315d08713edceda22efc788c02cd7839292993cd36f4977d073a57c0e26c1686d00bfbf78cc705794ef660e667bc407dc6b36ab8f48e617c8c0530d45e1612684f4702d1cb46351db61edb00997e6f21550e8200a554d45fd629c830f022a2251464d1dc796028b2903812daa585b4fb431cc42655c30be315daca437d8420edf91302effb473683f91fb68e5b4c89b658d131433ee4502d06d44872a757f3aa6bacb9d86ec2efa453d79b80ebda41d24e282109ebc2b097ba82f305fad5213d7bf291287873fef9884dab08638c7e48fe2a3a7f820dbceb5c726690850176aed8f503223f103aee8f2182e2ea7ae8c16a00c1b40162aa3a556323220e77f9055d1e96ed9355e974dba11a5f98c0c8df01240c20e478e39c059f0941de66982665ebb1afaa2c77e9bc224ad240f51285555b044bdd5689e8a24a447416fa7ba6f50d07f4ed1fd1d4bd0e2bfa109258bcee0dd3cad87081ee94fb5176300b46a53b7bd40017337b9f3d21c461f8cd668070e9ab66845807fb32bac6d00cdbe099da6d0e025d41f8cc1c67d58a3d177de87025c5330953ecafd0a90263d7fc1a8d80a24d3200f0f7e6442f243fbec516dad6d26f9c4f83b615057a784aec10ceeb212da0dc40fe78e6dcc51cdbd2529cc06015548b3bb158c90a28bc3d242f0b37e9990fb8fe8ff3c718ddf99cb39435431d15a5dd783184ee6c6d1871a9f6cf6d2e09b7e4dafb31b054cc057c1d513c019294fb92e89c902a09775e1ddb835029d884f7e88df4024500c940a884a4889cbb27d278e89aa6e347c9bbde7c3a459ca595de23ff753d4b1ea8f9ca23ce9cf8839bb4e03d60b0ea51f4a70633c2d1e0ab72cfce4ab654cd1834ddfb158b7a25e281017e26c2bf3e45ed59296de3d8c70226f5f37023610efcb1910914647ac5be8406490505a91209809da2e77a1da3de5cf4389f61e6e52836d84ceaee644bbc2a0b9a63b9106819d85c718e511cfc392209ec4770605f085341af78cf583bfeb445308aefbc4f388a9cb60dfafec121f667105d392a0989e8b42bfc12672d54f3a1b5a714dd954c0efb07b4e77bf7db4b7d2e0d50646e3a2e640849ae1c125dfe5fc855a64c716c97795293cb62efd5725d3f2e3b3fe00bc59974969b55d1fe99d1fb425c90b9a4530c3253925b425ade5aed0288cb934d1ae860a5719178d5346a3d4bce4ee67b45ecd4e06595d72bf9402548a199f92862b2646e4195ffa8ba244e0f8aad78e065d74b6ceb635099f6868b70155bf3ee39252a005d94271a4649ae3c84e1db013f749b783d0fdaecca5df72797fa4f16a4e6ad6b63bb92c275b411ae7ff4718a55bbe70829e6f7120ad64f396ee60e9b74f30de372200f2542201c96082af70c78e4ce5e381ab701a964c1baba7e7afd705eec3ae49ed68bc5db8d82ee8ea0f70b013ef4361479259467d0c0f2a0856556e1914c5b077999a4ce464f5b943b916c04039361f00a8e97003e23194fd4b93bd13eebc1dbb476b549fdbb2d230f1aacfc861137815a960c271ad3f0a35669b5c003f9d36ff2b1d0216394ca305f7a197b609cca170a8c3e068bcec01aeff257f54a326ee437a1f85df445f8e3e2361ac0ffcab2b034f5838afdeaad510dfd11a928e2e4aa78191adbbae0f2bfd6f5cabd1f45981acb1527c9cac77537c3be0a2984ac222c77958d1898d891ae2a4b1d84f4cc4693662f9d89c171114badcf6175034028be0feb284769b6322e88e3af8c8047cb9a98243d1d7a3d1eb69bc50f0d42e71e3fb5ee023ba238836a51e5bc94b7264396374f1fb0dd2c76ec0cbdbe1060c21707f3510ba9109d3d8c1c8fe127dd6717313dc13b3c786e16e9237377f0f61f4fee04cd8ad59950f946352a01f5180a3fe947190b6c995f02060b37f1df5e1ba05c822243e3831e3f7e5b6a59fa618ac874f6a2e6dbb46edca4d5a2adaa4cd14bcf6053bc025aefefe3d4e38d829691ef44343ea6d9eaa806808a66cc981b2cd16c34e6e729a2e2c2c1a90402004502bf74b701838519873c4566d18e957ba1d10588e5415cffa994b726b06fa05fe21079896094724b9d5aadd3a8620d88a68cf03e28370a235c18da796614cb126a0109b6f36bd073b18f2494b3a597102cfa5286302e7692692909f84a8b9f2218f57d4254f6024ee0c4b45c61b959b0a30f90d9bfa02477891ec5215d4e2125cda02f69399e192de7e78b96db5368397141dabe2fe7f89e4984dc379e937b92be278523ae43a39cd3637e0d86dd83b5f2e99ff3d1757f02e60e1a004573f6ca31a039a029e080424209640cdc9c15c00724b6a1118cc321b374497f726ee269ceca10eee2755340480a010f90abdacf1fb54980b600c465e6c0b5cc4180a2ab98be75a292cf4359b5485aac83b01b71609fae57b861d47a8a59ecc380d4e7acbbd433a4be0a4169d04330b2234865116b3dab9f85468e2e885a8a93b1655ff8a93dd5eeff35b112b06da25428283bdfde087f54a2d427833c1649c4d65f4284caafccff70aad78bc70b6af8d7606ee5705781eb99781886c20a905278519325870d07340b9dc7b5a79142785fc8c0d55254703fd73a2e025366ab6805f126014e0a99bc2517aa5992c52785a9c24dd5aa4086c1956d21440dbbcf4e1040e48f0d73e2012beef0aff19ea58e550ff6f6e4d43070699020d919e0b5d39c46838802ab0ff75ee35ea9d8ef85b42c952c89e6b0de6bed21bccb8adc811254682a01bf5e611742e3b58b1c002f27cdca7fbd9e03a76bc13f8c438d12700b38c09a05aa3c751fd7f928d5840af4c66f9b00a8828a1eca2e93093030ca0e2e1998b16eb7d10aac19ce91ae673d33e21299639fa81f101a1a32e58b0ca0ed109a95820be89e1d439844f965a4141711a9d4a5111d87de62c52d24803651b81d4c823f06594dc3ec04b0ff6b5a7f2230f1e0bc1b0e27134cdfe0a620651f49c4a2a35241d8ab46a901e57408266f7f4a0a57c7c3a1940e74934d18235b15b1a90619965ba4a81b87dd0df84f73d704acb80ac6c1300456887d2a2d6bdabe5d82e944338c980b6beffac5fa03517d063da8667d517074b160a22eac55c97d049cc2e74e0c8793de914d40589a6fcd1809ae876219e29c4540d93a990ff31520ec76f59d872a02f1437111fee64fa8676e5cc125bac59729af6df44c1a7fa6cda471c57f26cd17b12b16bcea983511f1a82dde2112410286f03e7874fb96ae093d9b3527ceba85ede7435981dd869fd074399f12a27b400572bffc84ea2f1ad2fee512f8e421433f8acc0b9ba87f820191347613c3db44bd0f40287cc196d1043ec2d936662b7e04d46950eabaa0fd1e0a5f989fc73fbcc6de8c4900731f11b6653e14330eddfaae8c4fb85ddaf8d6b532df1b1aa14207477b81027bbda10a16358be84504010957d3bfd3ec49f0519c1aaef4cc10a4276742bdfd0211c383d1a013be0ed0374c30419e2670a11f23dc44d4de40886ab47625a25ae8be69d22b8e52a158f204277097ee95a87ddb2256e448016c34fd9f204504d1b15ba82e896285bc6215aba7d53d3a04e0386c0621a60b830ee69a79ca5ca882fde3a7fde557c1b369e25155038a0dc2e7fb482404e6c045fc7ac137cbbcc51b0e89ef98fdfdc635f9d47a2649f2c56939f37fcd4a05e3390bc3b2256b0478845a95b3a42628b823231192cc48f1a400927192b2f29aa40a0bcb3523c797bd5b868bfe31190ee3a8f628a8c3fb410229d00910b5cc5b745a9b5d108384a9ae9e7114c5e3d2b3ee91792e78e0c55fee246d51513c7a35389692faf5e96aba2a6afcdbd820869267bd0f2b97b5a5a74951e122b969f16a2164fc07d4ab3be92de04d6e9f04f82ca2a13aad0995a985692be088bed9a62a69031204dd0cec4dc2429508777bae57cdc4a906ff4f223970ec1603aeee982b156fdaf9c57c395fe5c05dd38fac1c04b7e8e8fe6816d0a16a55fad53e97504166099abc5c188f40abeec5dfff9a4edceed7475330941aae58da83b55282a955c09110eeb527d0a8dfaa85b42354e11127fc70d1f65ff7fdacf780341e6adeb892000b31a0578415607b5d444712ada0f5882b07a09ab865b938989cd2d48ba4f51a988629dfc810ea4039d87a6fe22529ad33da97423a8848cdf17fba5ede2ff509c0bde574120d8d18056ebaeec101ba5449f76b99e4bc706ef9ab107dab1f3c66dd67b8dee91a8720a6f797e90f0296bd28d06c80b597d13d38b93dfe4f54e0caa5e50fb573672db669ed99b99a3a805107fe9d8da689c8dd395f6026b095528baed1dcfb8dd57a38e989de5635e574f69bcbe2e35a0bbfe9e85da6cda443f85634500dbf68d1bccf205483191295881f0fd86f9872d0d573fa35914692ef8bb91a7715c0616642dd8f510edebc5cb7189f902eacb6aa675cab536653a16b43508c36de6ebc30eaead1a932199eb09121af05d0fe3a56a61ef50647ae6eb0ae0b280651a0f4421cc3c5a86cd2c47d5a4c4e23b489edac086890b7163ea0abaaf4046f6db0a5fa3baa8d5d5192cbe2d11440c7de1262e695081d61f90a25959bc5b1dfaa842f456b2c8ab00c6723847723eba7bfceacdaad6570f255dcb702a9fe1a73e736a8952f01a7448862dbaeece0f5c14722d735df1d6752bab4b7e27ba7cbb96f535bff8dd3dde668b7f5433c724017a4ebb1f8d30df6bb69fca282ce16a2dae0c75f544c8a534d8f4edb6aa6ec73da118c1379218ab7cf1ff674e3c0ec982aeaf4a7b4d9bb9162cf991eff22b87b0562687c1cf259be243b89dcffc10106c061194d32f9dc6dcb16632de68af67f436108bbabd09a185120cc1bbaefcb39ee81ff273dfd109af529734958d8e749e474f2151b3c9b4331e83468f8767fa3299e53eceefc08855992f7e8d7ccc137a921fad062bac93e9d490d53434d2c80919e0d46d4922d98d4d43a983929868b42f989322635e91ee4af63b56076cd562962eeeedbacc724a85aefed00f5a96d371660b820737c0ba81ea47c6e7054e9662cbb535271861fa4b89e36a2f37cee85150233a3068c15554652ee508e9be790fae0a145e369722ce3518d15843a872d8bf70af561097d4584fb43fc738e638ea739e2beae1ae8b5f2ae4495548d5be91a25265fd8797ce71de64169dfec305f10e9d8a61cf4af2680060c08747a88cd5af4309ee6f48aca5095cf0ff6ad3d9a47dddb1323d22abb631bfd4b56e71a0e58d4ea54da6fdc7f18409b1f89b6569eeed6ad6235e1a261001c53f0f499780aad446b838bf2f3a8735eac4b7b4d4831019e844c5eb2f820d64b40bdda1b260242b5097a1b1dd24fed4e3afd1551a0636c7a5994557e70446a9238189bc49a51118c2e3649b332c00c667a0fd37f473b212d36d1efc5665f9738cc8fd7caf668e8584473cc12649e5635e243bc2ba10687975689b8f0a3aadf884112636bd7e0c08164a29e083f3eaa82c6052314f21dc4ed478940238a68860c3bb7d8bb1ce1ba64b80bb29d3167abb9b54699673ba7b06176cbcd9d0409c61a94f4e05f6be802ca12e5cd2b211037e558059d604584b0e9bb617421ac0b9015fc4b7070c736ca9e9e605ba0d5718793f08f48ac1077a527127492c18655b4574f6da0483daffd13ba60aef2804728bdfd5e670b589a92cb9aaa0af43b89ae31b5ad0354a5514de1333ecfdd147ed44158debb74fc4235f2e9506feed30fd4eb1f08a9d044e33360384288bd33358f9500a4a321956c1000ee2b86e68dfbba3c665acd8e19846f19ec395f85bca3026b7719b0d0216a63afc28f0a30099d4af6c144c81b86fb9d86af8ae78eda80e8243d3f1737bab5fab7bb486d41f9099986f680f81b21dab3bb593433e55aac4f80981a05ce50d26a658274b8e5a4d91ee3218a708d222a818ffbff57c92c6e2ea1bc90c2e4170cae52cf4f56e005d2f180c31cff6aba82b8aedde10a0250b0c057e9718a9f40f9898547dce74b71bd658add4894a6f3739c767bd60aa6c1e9a133875afb507028298da51c71736ebf7909e64176dc8b12b624ab81673cd25569183ae6314f05add4eb600f0dd9c54ba7a938ef74010f6b85c650322170ec1e5305ad85831470c074798ad45cca5467fdc94ad5779e429fcef1ded22bf074c03714446eba887cc3131562b25ec9aaf702ef8b3927bd2834f30a36c51ca8f26f178fbd19946769eaeb3231bc82375c37a4375075cead79f98f59610ef61c145c336a00af24268d97a4b9c8f8bd6a2b32c3a318a7cd2b97eda63d08967f46eadf8a01cf007377ccb2fea64e3a16169926b26f6eada7f6df11507a751a8eec652d2a6323d4a1b422327ac05bd4c043873b792baa1e9347741d74329b90c3e08c0c14e19785db4035bb825179149c806f091edfc8bd56c7ae9388ed46ed8bf97a8dd3394203589756d81560b299fecfebc460b3f9cfb0c2da5151b353ba477c71d649b85803b664a501a20c4bb3a1380937f5df33cbb406c888c745300011fd54124d360c061b03e7fc6773ef92ab7dfa9384db4e99ce88af4f548013d80edb9b566776f8f55961ac72867da2400e64d1921230c5880da320a9d66043b19ca0f2c4e1b63d28c00f96cc7433b80bd1b4084a0ebdf1e18e60e03848ee087645485fa09cdfc4b7cd710a19442a8f8e5f31f5137f65dee085818b8c42a871b4782a128cbc0aa05d5c386974d159b0fc27da46dd114dedcabf5086bc3c4c74a8b1752790e6dd7c0ca33ddd5fff098a53828f04174adbf880d5ea7a9a1aacd38ab0a7d0fb6ffa0f625a4a760c4ffac7f0514327e7ce876b567fc9838c30516ffbe771df08fa43ddc3f51a90beb1f57c0c6d6ebc0638cdf8b6c32828c2f057f6bb21b630d337719aa97e3653da552a505997e866816eca23a420811d13710cb064ffcc6d5f80afbc540d122d7cae1c27d06f470ba67666569029714e1e162f24209bd0fca6d4b87b738d38225e3fe2bc27cc54032e9aa93aaadcabef3d0946f113aa10eb392e60afcf748cb8051d230e7c15f3cb13e69df753cd49490b2847f8d2f05833f613e8e9b4343d7f1f229ab8c3f29bf399ab8d0c140f7ded5e838452c80df413990ff93bc868fc5b55ad48f0086bd9806e18910aa17eb2a4db6640d0686df67647a04eb10bf3891efab15e9ec674cefb4de9137d9fc4c32c942900bb19eb8da6dc4d43cffb44df4c123a41a0176e63f42033d574437ca21f05254ebf4e1fbde8a780093fc1bdfb44cf8afcb893d2a79df92c9f45cf9fc839d283366c8944143ed18b98bd15f7bcad992374434d5a51102df4109a49e7674820e089beb3d687accca1c8108dde5b8adfe9be3aa5623e317e07664306e3e4df344978c91eb8e206862eb31e5bcf34bb0df524bb9d262f31e0da023c6520461aa952ff94fe03a97a443f3e306bcc8ba8e945ad98e0dd2e35915b1f61a22a03360e4b57871126543447e20619f336cb346cba6718780c8a4a09fb87b296be77500f795ce03087011a1a7effbc5042ad1948e3f55c26e3ab077b7e7c9d9c505a0524883ef3e1be434d39dd540bb70aafb1a4b54cd251186d907ec4c36f3f2a00644778a7aac451d329998e2ee8d81706294d3c1c859acabd28143c6acfaae7ca13ed01861c35fd5f6e5a10d70df0c96353bd0fd0b5fb0953b74a62509193bd8cad15d362b3fe16d03fc397c213d50593724f0716dbcf6c1caed5614fad5ed3ad4ef59e52baa9497e0721b2a388709e83fe3062602c4f8e9baa60a94f12203fe5ed09496533c5b224029f502f140956ac952cc7ba40dccb9edc5c0f400e9145eaca21d626d9290eac36672d714a195122fdae726445db03c04185647cf67803f63f29c91e7cad63498f62125e596661f8301514b94aaa2aa48381f73f1d8cf2939ae238a58389b9e1518e93c8c6beed86775bf0d2c56f6fa4cbd1bb8f8ee6335f357bc6291f32f5f8b2df44ed38f63b01da54a37d062e9885e7ddebb0f481fc67f27d292376416d4c4699c69fe67fba1b1c787d17fdd1691a9edcf4097093a0ddf2c20a810178e3cc5dcddbf75cf19b40d9e6d173acf511868ba0d6137aef16bd2003fdab021037cc99f10ea00c16e7a8135e627af68e95c89abdb42d54151fa8b4d55e95d990514d898a18487ffc076d42099d84f3d9c4b56313ed64b046a09ccc9d1d87e3b725dcb583dd62cf22f01c6244304db65dab2571cb67f681a253c4424db602f719be7acb5b79bd7d0521d86fd8d2123ad1cf29be3b331b920b1227eeb4c45462a72801abc4b4259b609646125f8df9bc12c9474d9c850683a211237bedbf65d1447e98a10aee1e512caddd9f991f84712c64520a9774704068db976f6913fa7af71692f5cb40f9eb920849f8f40b914434985ace87a87e8fdf3d6099089a65296415d35472e59048962d1e4d7fa71a124b589513e29cab28f37ee8b074be564cc320814f5125ba75d847ed1a60f9f6f684ea53a306bc378dafc6ae9a2b6865d3ed478c45b6413d55848e4dea932ff93f0c92a4d733b4cb869b443cd4803cfc60d49fa29007f1627b96caad3c459b1df115ada00969235d604f6d02f93416c235769a6ab15362ea72d1788eb1e16fa7f597e9527cc910929b93036621a8c1c556ae804e0549fd89250fd38bc0455a0cd5d5f8134191a37df5973ced0658365110275151dc2056725cb98d8b1b7cc1977986eb10ddda4619b30f66566ed47cc2775b6da24e510a2c935ec6476c2ba87a1564a4d11bd42f06568014a69e6fcd7f15424ec5a7f45702fa7bf3906318c27716d2bab83e3f1f4d58d387986706a3c0e68d55012fbb62f44da2af2182c05266465df15a7b60ea962784dc9ae864bd62b1a82ac2097605ef2c9d50a7642a78455091a51c940a1fc638718bdcc7053f0c8b1578bfdb73394c4292cd11f66b12c6225cec86f28a1b03b20a4e4aa499efb977a4c45806cf5bda095839c2ebde1035ff8758abab0cb7ded5302109f1cb9d3632a53fd88aa720916fad3b83d2a3c44acfd15914fdff9b1e50fec5bc5b13e84971c9d7a97b10778140aee79e391851ef93d815d270cf62f53e3114f71f1de01b3fef02ae17e485085182d679cafa61e4ed6a55e77d780865f23de0475aa9502abd524d15b517cbfeaaa07e453f6ec057615f221e70bcef75e63e148bf20515c5437fb14e90e8264b95911423995904dd340fe22f1a5effeae9fc4aed2a2c3af0d187f93c9d88ca9600029506c5dfe65ea49617eca06f9f32ad40d9db474c02c1d9a261d252b4804db3f25bbbf4e2dfc0f59a67c432b9a0ef666d21d66f3d63c01e2f948bf5b41165fb7628d35fa3686278a693b322cc520d260716b90e4b0946298ecee138d2086d05d6067e71c8cfb396215ff3897542d62af1bb47f52449a93ac2ab6ddf918026702711d3e65cec1819486ed8a307e937dba7ed370870ad41fe87ca8cce8bf957a254535e7828a2d5f6e5f550904e361cc9cb3544333d15b706dda5e687fa3f4b67c56394f8020021f625076205e7ae74b198bbe484e1b341875a6686e4a4206b8aa7297d5e69368dcd5dcb710c56e4e93c3e10bc2050621b527b35e9ed5c3bf25b75b37a34e9f95e6339429fc430c0a342152caa75ee04162b8d6f0833a0cc53366dba60fe218ae299ef28b7f304b8c007e581abf58ec1bfa9ae7b692556c6effde247a209f61eb706134cd86082a317664b97d8d3f5e315ea4d90f7b2c7115f35bea02c829b326384d500f773509e6bacd037c6c52bc2211a26b34c8dbcd68279d2660f1f164dee0770090675e76147e39eda3bf0564639c42c01f0b8b1c55f007746fde94acf5b6094164e8f66fef42bdd0a18b110007dd6bc2ab3ffa8936f7db0d71abef105cd1cebfca4a748e48b3a13b534df1d6fc185fd70615060b1a801ee11045e20f59b41df6a3adcb9b461d0d1ab7a228689c2965e1bcdd69bb5b7d922a0d392de3f1d16e22bee6990d3dffa79a029589b3e3118c832d5d454e20c5415f0db501f111e7c5d34c7fec4219e7c5473cf82038d2a2d941ce6e0731f000c28dfdc2b66358cbda11cfa51c702a68ed0428159a7860f3d217b648ecc5d80e2d55272044e20ed74a6dd946803ad464d929d8b90ebc985c6009d450579d051f2071268beec218d4b506d2f042c741977c3e697cf21e798df862f7701944247227959616774969b589d25fbba883d9bf07ae547f955254d292c9d162d74b1fb6149effc464b26bd5ad95f27299596d7072542f4b9aea989de00ca885c06d1188b4c2728ab4e92eca5848544b9dd691adee53b62a15e1adce09c898ccc25299d63597655ab54fa4add731b06538b817007b341e08255ca512c54fd4cdc38da76d092f80195c79e9a45df27695ad1b231b2145ece4747cddbffeca2b10395ee521a0234bbf65815541ff438819aec0aa306582e41e280c132c950506dd3080c86fce369d58050157b0f96a66ab5fd12cc464b4736da6c8533c94c5cebc317eefc80fbf075532f9ae9850481e2ce6a3bc35a418dc3e7d051d5d6dab984d04d402e7747bca353a327941edaf7e766bc00cb6480b0e62b786263ce3a519d54d4c05aaa180b1e137e9dc8bbbd87a65d0831f6461a4e8926fbc09fc4f6eae50e3230cd6c3e2d0da679893fe359e544ab7cbdb1caf979bad2c2d7d6bae6e00de32f90c142b8605f5e96ed49d2827d2bc3c8aa2166be1963e79436fdf6726c447b9e9f10925a56d55d58d792c67314b6551d480595724eecdb5140941e8658c5b90cb49ddbb01783d8133063c06727aefdf361891a8d191cfa17027f6601255a3f66fd5eb9513635d86c7aefb452001885231b251d00dab2b386d00cc8b63bb9225de2c6c4385c8357a7d115c0acc05288f4a3d14bf619794d7984f5372ebfe702ebf49029270b19b611fc2a9c8870d725aedb7170b1993ea2db81a5637c08bededeeb87fa30170016f299558b89ad8fa6363cfa4040f77b14a1801b09833ddb0646d8fac24db338d733d354b36a04b370a305194a1120ff0f9da0ad435968bb4bdc25c2641200641ac28a4e4005b106c2f2711df758db221e3ac9d229bb166a58158842b764f2e51181386cf903f241cfbeb58030eda24d1048096d789f0d20dcb0e6edaa7b598fa08f188bad86a07f4be68dc4e0b934ec5996acca69ca634fb03bf7e7ec689415db3cebdf6778f2419edb8531cc8a24d3e9779abbf9094dc317546494bf2c36d8a211808008fe1104a2739140d0519d42f053c62e939b7043ec1c95cb40cbf61a02881373968c799a23d92e58468409736f30668bcc11bd6c2d63ec0d860f681d1a1a48283507f48ac9eb5fef2d7d0c2df3a03241f10c8608e74978ce0adefd68c7529d1541206ed201623664168ba27dbd9bbc73520434b33302024518b7c136e5aa49497e09e12c038d1115183a24dc7027df1cc1b9f96a209412ba23310c7604597eafec99645c5cd5d5a118907b31143f2cb9f205af6550211a014895fee3fc3fa97df2b70388baa9484051f5b698d3dacbec9eeb3bdd2c4ecfbd29e82206d5dba0fdeb3ddc543b1dc245a215d9527c5362bcc1b882f8768e11463254dcc80d039e7f716bf6fdcf147ecda59ceed818ad14482f8941596dbd84360180643f0651cbb71621fe1eafdf8864f114f714d090586a07a71bd7218c578d4efe3a177d479c594c39531bd7c6ead7b4145de4f096fe202eecc5e9a45c50e62cd59499c0655d892a87de9d2b845efefc1bd3468ec6357fbc67f2befbc68ad6512b1e8991c2216566714754ed31335e8ddbe1a6013c708f224cbc1218709bd5025caff91209667b86481cdeced74848fc5e537db0a7e7022e93bf2af604318fa4aa02d4000e7d67ea41b33ea363c6e5d09389f880bbf08873c4f729d58df28d7b3513f21d8ec8b3139c9e2a8e48515fb98fab72074ac057e5da0adf71f16b26136df96430b27991438396c11762c4efcac53f1c9181f2da0ea4718b2d7d722e0b9fd87c13adfffa5a3dc804644f5c54631db4caad83e6e1bc574feb205e8c693d46e3831e30661c9fc6339e5eeea9d930b1a16a75443c7421b121adeef74fe0470fc52cdac928436ca1b85ad84d0a8828fb852ec819b3a35501e8c57b90decef7aca84b138a0b605ed0fcf89d2130fac8deae128f37bf47f1aa3818253921160934c526d0f304618aa79300f4d2d98c0fda77416b444e307c4f1d17dbad7108c02924bc6cf4b16c79c0cd96848af351d49d10d12f237bb332839402126c1dbb480c18fc1e3ae6358c1d14bcb028bbe99e75e33efc323205bd6eb1f17dc2996b86a6b1f53927da426af8823b4c25313e08d0796b1a01a9cc93af796eb3dc1c006f74532e066ff3414b257f1024c893f335b2f9053e883c80d9e7bd068a0e80b7c1cb6fb4810637fb24e6dd5ad826e5a49cce4319969b64628f0161d31eab11ee6a08b1a17495440943dec17bdc9b9ffa3d5252e8ac20f71f973a7342caf89e8902ddb594facc1a8e0315fc57429f3d9a9c15ea03ccaf8a07e54fb0a1d1435d4f3d72fda546150670b70268fe8623e78b80bff64a8e0434d8f2073d8cd7ca15a95ae70264bbb66eebe9bfc91f508f75dd40111d403fdb4031c9845a7e6c3c64a4dee1c2bce054f026da7cd2f3f21fd43724b4700142fdf3e6433bf5b0daf9b9f001e908b8d45f0f087233bcec0e1a9a1b46a27b200b7c43c958014380e2733515184790cf4682c473b03af671a2fd5d5d944296b69ada972d8d0159b64ac2cf8eff54a31f5ed2b22add56e5145d640512de36057badcee7619140060c147b76c9539151aded6cf6c65142da5964717cb59f74641f7775483f877eb6ecd64044f0ed538aaede3bf3cf7474b9033a6f4260283764913cb5b23d529fdffb201781c71481b2876238341934c32e2f90e597aab1f1fc9a7738f94344c150a82c9d51527bf9fbb898b4df6eb7b578f26ad595b76ad87583647e6958cd553cd214cac36322d7e256595f727de225481f10f200c3f2041512e430e60322eafa80c427defd6789f905925e610514a08ecd80a60ded9f1420b66f5a85c8582f68c14c451b8072b9f32122469a7e08af135ba33516a92c0cfd490e17b70ee003d6ff28c86f9e2bcebf4ca37571403f8c82ed27f20dd1044987cbaccdb5e60ff58d222aa199098fda7d5ac61fb510ca7d66eb19ac7a7ed9a06878818a15fdbef9a62afe2e0b7077f173a4f19a3454a213ad9070dbc6f07c040171f5fa1dbdc3f636e50131fd40eb09ffc4b663ca816f29c499e23ca9350749522b6ca308d8389b818dbb469877052ec98d53bc7b52e1b70bfd29565b27c71bda20061c2500f1979df2e15011ba595bffac36aaf168b9a5716e347f5f325f07f073cc4fae1c83bc88fdc1bf0f6e67a983e89c7aea43c2b53887ee88afc22d0544e11027126c3098076c7aa3628c02eb16f3ce17a608e603e0de3a0b11c035308685d710c61c93e0741b06ba5203f69b97e1fb4bb7ec87cf2143613b5ac6bff02e6cc2d8931eb9b555c647bb314d2333bed22ceabf8f59845b24ceec3bbd5a9a9f6299d4c3bca6789bccab305ce4049f50f675ab79d055d62e1da3516b203a0265056aabed84553fb30f47810bf546ea5c7f04d7aaec5e98ddac484087ebf2d0d7831994d0f664bc5a88f115d19b750eaabe38901e75f49c1ab65dc6b8e725cec59fa9a230b9df560f3182aef143eb38a03be2d04aba606dbbd6a5fd0503089dbce9c438f3d7e8a198002c4d469ef060ec241dd88d8ca3f873eb7c00a12c98498b8c2484015091c1d45b29845d2126f62688002e94c5d02771c4400460543388ec629b5ff2750c5fe3525c782577655c52d0866d2113377edd5089cc929fa224fce1363325d7e44d0ed5beae842d87e34c316d90ae97f169d081bd9745301a8a36ba0130304a4298b73e1a50e4fb155552601118b55fe4f85fe21b697a8e8d8a151e1d3aace19611d3542e1ce6725f12cb56ca69be6d6a3c3bddd9edc36ee92b9aa976003dcd0c299095c5a20d72b30861839f192de2e56659e967604d030f2484c6adf32e182d2e1504811fca3ccebac6953c83eae631df69bc1481f95b95280611335ebf7c919b4083a38a2d6dc386a0aa2b6661801d2668e680929ffadddf9798813d5dec9431dfc95b5e97bb46bfa15b49cbabe3c226610d86710820500c02c4ac56fa058f4c2bc1424619e5d67312dc136bc8c31ef9df21179b12395ef6ae06388e4a9d61532c7c91c8119c12625ab221f1d656b25ff2218808efaf0194cefcb5811427c4392cc07c594c6fe24e01b6c00f0a46543120e46eb3e07eb8bc50efe05dac61179a181f29ef07e9d5cf5296fe8533e26083c0ecbe486792386dd8dac286b042b973a7cb72d66450be04ddbbc6f6dbb99367a9032713b7781ea75bae9afefef37f1ecfed52f63fe59e1c53e848080397b64d43c08c4fd84ec75610a60cecf513531cada1b0ec8054bbb657eff69597eda88cf2dc68b86ecdd14822bc2c2ad210b764aac97d72bde4e413cea5208449dc6bf722566c33901b4cbe0e506246775d3f7dc4ebab8f38abffe7fa55662f3b9aaae8965145ac924ca3891514e0ca56d722c34ac47d00a3f6b630c428f777749d0489bf34dea1f21ec44247761b2a0b485debb38c4bd75ab10dd59cda6cea7767e74b94c65031a3106047cfc292e9f33c01658b245e9f12f63d5074871c8b8ad6173e383dd4851749dc4e75c13b031c577c2251141a6321916034a6014e91b36ccf610e043b87ac479f6f3d60a6dfe3fa962b13fc6544a39a15b11c5d2c5967b1edad2287ed30daaebc44dff8402cb4bc62ddc1eb86d234d7819ec6716904c6a9c008a86a6bc182e376baabebc8d03a9a9e38fa3699cd85e2f0faa42110f48661c72e4ffd7f9e3b5deec81f32f515b3e978133085ae0c7003d8c240405553814fffcab4b18717560fc5f206bcb5867447da42757d249f2f324bd9f3163283d36307e1d23518cd8923c85d15869b5e8537fe20961651038d7f8af2d9c68695504e301c2e9ba868d3d4588252ee6ecb7b01c3c92637367f1480f6f90c74035273bc880533dcb41d1f36a79cde306585dadfe27b4d0b127322b21169fb99e814841b962215a23c90fac1250b20ec4d990a6bf630072fdcbaad413c50d0bcc1eb2a9e99577d3ebb39868a38ff8ff0afdd0fde1dbd9c972ec61bf417e313ed448e1bd851f62ddece269a058fd2b83102254a72be60ae916f4b65660f828df3098c592a3a5099e95a9b0add6b6b8e5184244d1e27f1ac8e571b96f239d6911690b67d085d7f25f65c47da3d1d0508a21e8dadb98645e23abb5c1f417daf51a6da77753b1cfbf1302c09ad435b677d9a1841979e58969ff301ddc25800a41b949f715b24cd0c01136ad53ff1a630bdbee863243941e3fc7ad742d0c8b9ba14d4322e7d35541b4a5272223c9e98d6379cbae07c07b2feab6c4b32b15990fb950076919b370de1df2b99486b66f06f6b9dcf805ae7000ea8cddfcbe1e233e5dc9ef319d3f7da20dc1c93ab6dd3ac27dfef960c03170cef8000a06407b8488c7cb617ba00a7ecadbf7336646f750f50a9ae1dca8f2a38e779ab7565b25d61eaa9b8a2267a046b5cc1817aba85d4f1da008cd395c2bfd15bf719db5ac0589a31051984543df3db3fb2721237d75b7697014dc3832c216875be0642883ea80131580490dbb54f91e6df2d6c4caeca0400b60344c761e5295939fc48c3cca8e3a6c9b0408785f5e10a33d74abedfeaba9b3b6e103c42de5cf1c843c61b8fd86dadc6d2e89afd6db58b443579b7abf12299ccc498e514ea27b279656d960566256050eaed6093e62f70a9d20a383ad09c6210e20dfe09d2ce3c04a566dcf55f1ff3139ebe0a1f37afb6059c28c6d97dd3eb73cb9c2a440910d2a7b0892aa9bedcb268418e8af082a232df3d2d5a8b781bfc08a00cf523e65730a4d5e8e94344452c5316af888acb73619ffb483e281451bb905eaea6366d87eab844d9bfd567a9386828162491b1b28acc3868d2482c7cfe010897e56c1a4f2111502314820de957724c7343891e696c21dff807a97f6bf4f821139e2e5e835da18acbf80c137bdc8b4a748240f692b8f76a01544428f37a0284d8cc2bc95557a0c83f985273b225bf86788b7250597ee5f380310c840a56054c1bca933e9f40b354269508dce4cdcb8c32705969422202ca899153099b06c6f59d467db1dafb377c209548de2b11b5b03391219f6c6a4bab61ac38776d501d747623cf2cae5d870e055300ce4a6a351895c6352e13c8b8d3d66ffb0cfa0cbfdabeb467edc9d7ff45af8da3e8c7087bbd64a17c3f0e2751498c780211c314f363d728dabb26a9ad97d9ab2b9ff8e555339e9d082b22ee2d0709e363dec9eae602cb1d2653959a191af20b76d77ce5d04fdf15144504ca659fb1592058e138073e96804cfb0af21fc428b285a9c1eaa3dad8314c4e29cc51339fdbb5b1e3f454fdcbc5a205a53b4d5db8bc07c011c0fe1ecf6a5837c211455fb955650443ab35c6212458d8c07f3722826fbbdb56766f99929401ad0b700b760a3335db935b14dc949f1c11d9bfe5a4ce101f3d6108ea9813061d0c31ac9bd4d993e43ef8325036d40e3458502e1a20140a8542a15034345a4aa5d28f8f6832d9bc894cc0dde1c176d9395f3cb562f98479e26dcc560c862018768dfa8913062e4de6981306dd07039d574b57b2ceb2f913ad282d5c6b4aeba755a5956b01390bd52a22fbb7a0b488f8b762bdbaefae7aa9dd98b5e6dc2f914aaeda7ab9675a2a954aa512901289a4e5a596fd5f6a2fb697db0bee4bf1226abca6e984f9624d9fd40b9297d90b1bc3d99c75de9c658373d6891db058215c9608506dc13caba65272a4c8102056081f3b4b448b8de1b2bf8de19c85e29a378f2b7130c15104470d870c8462050a152852a04081e2040a0dca9127baec3f83ce67d8f1b8785e343424cff82653c81664226d84997cd19631345a046bdec6ecd1f9d12927755e48942d5a6b49abd62bd39f387b92d8276b1af5d3283bd5541f7314f2027b89bdc84a2925931257d65e5e2f3b945b4a2d2596d24a49a5bc954e4659f61f65a39031d6ac9bb765cca34030e6f479fd0e0a7b627c8d3f6c4efff10596a0eb9a3e27505fd0e8129d8847449b381377a216118b6845a4224a11a1883551893fe8025f20ec0bfa763530e8f235c1b7a68fcd579d170c41cdea49029e3cd82e3b27de1f061d688e8d9e3057bc8df97f32efb33055a4cc16cd534d48b375eb165903469e395bb56f48997eb84f099f940ff74d197db9efca0724dae8bcb287728c872b537bfb6a9fedbb795b3c2bdececb7db4efc857e41bf201f97c7c3b783a0f0bd6f9c15fc787bde9bc747ee8c07484e8c47488e8c89c55f32fff279a34b199676b49f3c49c2d9a27a54c2d6d15f3fe76498b27c69a14f6a6c63c614e017a80ee013b08b81ea0e401431e407b408c0a10152b54a8509142050a152754985099512952a700657f1d403a743a760b70a958319e4c9f9a9ab345f354cdd6c2353aa5519fd479226b84b9758b95693de2a643870e1d3aaef4aa9ca2438702742860ca942953a64c9932450947dcb2bf0d36d8c0623c61a2f81bb2462a9f5e9c194fa40d9b1c6386594c892dc693e973f3d76cd15a4b1af5b7315bb6d6ad4563b6aab472ad5aebe705e50c379f0137c3cf0cb9da0abdff0c5766009a214baf44ef4f96c8fe3358a933c4f79fc14765d55a002d9555eb0caf2f80aeb6609e6553314195fc9153917248f6af4f8064776527624b48005bf62780cd5937ef4f801b0170ce5af1fe04f8115d8c36e68a67619a7fc244f1221aaa78815fa078017ede8beb289a17fd62e6c5c9f4c2be78f1e245455522ef59dcfcc9f4f937993e2bce93a7ee974c9ff3ade9a3e27cfdcecd99c28379eabe799264ccb630eec7a080316fade2dc7f312faee2dcb731bd13a627f3d4fdd2f490347a7f647a34d2f46a5e9346efd7981ecaf46e9eba2f7a37c8f7bd2315c6fd90e9cd2a0e9a5e26f94af1ec10a31ea7c680108c00cd15ef8d624423f975e67b45f352c2a021d1e66b0ac8c305c93941783f727dcf475de5c464bee620e1b9b6dcb4d8b0d4ace4d0a8b072669e72b44b4d39aaca35eaa88abac2bc7953c5af702cc4c2c0b146711015c532c74ad49463a046311560c040d1ffd32967a6235d1686585b3923b36655aeb5657bc81ef265bbc16a04921a90d0be96d520abc108e8693542480d426a8835cbfcd4357d522f9a34fca0e145832b07971cbb46837459802a4e0ec5dfac307b587c0f78077d15e6ebb4839e2bbe07d58ef9680e2c15461057720e2b545861a22993070801e00e0b1994691d028dc8109e64ff1d9aefd4766c9e47f2e4206152a6395800bb37cd5f61feab3053bc889a3de8f93da87654fc8a8fa1490cb6188888e126830f32b86480c91004fcb04c86d8ceac94a21e852a007f1526cf146a8e95aae31f024904783be8c993ab39fe5f0cca3467164393186c3110515735fca085cf189a64ff186ece427732f85059aa29c8e072962a2703ac5739311982d4554e1031dc6062b8c570fb62b8c5709321b633b333543f3b486aa89566218e2d361126b4b32d5a0cb48a9333eb95f72d5bebd6a2b5300e8542231d20e8d87488d00182ce6de5c3cab582ad82ac622d243a361d22746e2b1f56ae156c1544e7a673d3b9e9dc746e3ab755ac85a4854405908aa0ecaf024885ae575e5869f4e7738aa32896e7ccdff3b5f0bbf7c26bc1749942306be6cd2cc2540a31cac4a9b872fadd7bc1749942306be6cd2cc274a6304aa6cb74b95c28d365e2545c39a9b8423295420c9e3397e6442e2783c5fc5de5892cd9ff44ee8433295ffc17c5720493947fcd1caef8303b484e245329c4604895cb02742557717258a9475822fb9f643092c90998331361cad08d4199d2e05439d59566999fd254c9fe34389a9f5e792f8ae348daf032cd3773ef577ea5a13173a0b931494954126989949444761250c9a7242bd14a3b20994ae189528d264acdcf0a330749a73c2767f6cd9048a452a954229d290cd289930454aad144a94245e66b4e9a2838186819ca887e62a0c963a5c2b852c2a0219367d72897465daf14cdc9e363fe8ce973fe274499be70bd70c18001c55eb098ec8738ce3c49f2d03c49dab89934cd172e2ce4aa723932c889d550abe107a65288c12f67d6a510839fd931e8cec5aee2782d82ac46ac060bb3c6ab464fd77035ea8fc2983c413c59788078ae346a65894b9e3c4294698e598b510b3f4dcdb27f2ae62c14ef9f9239cbc61fe68abd3c056b92fdba5c59f59313cb0902e7ccd02ee84e95532d018a30a1af869a8511050a56e5ccd02eaa25c09c99983383c9998572665fceac73665e0d357f7284c19170de93f1e3604633c7ace2c42a8ee738526539c7909a034815927f8e9072c332273526b4d9dbacd0edb8f07ca14bf64fc913647f514c11b02c4518c9fe34c09c86180db25e8dd0dd17f2bc4bfa375fbf73f32ab0103b83ac42e6c8254820918f4826a289761062508441896a30512c8cd38b9e17ae469950f2e478aef000f5caab6267903f1646ae57aa9f46c925ea4ae504d397aa647f12c8a7b272645065ceca89798a26da4178a630f099a22f9ee9098604429d2490a896a34a8e9f1c533a07aee2dc60a2d8193b48c81f3b238794aa724294fcd3ab1c502aea4ffe09264a3e8212b2bfe9fcc9e1c2b1ab383278392bc70e3505850b8e2d15b5c1c8a92a17aa723807aa7245b2bfa8ca0dc9fe30aa1ce6c95da938fe3b48ec0c9e285418fe3c53388780642c3fcd99e528fecae589eea2e09a65faa4f0c10a1f9b5761dee058af6aa8351a445dd5f0838aca9c85ee3ca54465a9a6a0cae5c41ac554a8ab9c2060a0e9bf7c7a2ab14cc6cc41baec0cd58f8551c30faa647fcf41c595435671fc63cc1caf8ae38fee9c95a3484d4d219673ceca01a4a68238c28f9c58af72f8a8a89f290c28d99d3c93ecff72a62725d9bf3cd3f20847b2ef321172aefc260f90c9a36b9ea08ae3affab13378b4506154227021fb5fd54f76d1990356718e28d39c9919635671fc5798d5c625e34f739664ff9c99b3fefd7368a4ed09e985081159b3cc5761f25ce9943f0cc9f39d3c392f09654ac260a490164d37668a176768c615a6f92acc33c58fa64d7ef3ba5c3ba8c993134d9e2c8df2e87876640d183974f2001129537246845cf62791b43f39eb95573649c925d95f34d578976a4832353135b6c6ce60b07e9ea946647fc7e73f4568a67ecbf74f22199fa0692bce7db3344f5ef3d47d1bd36d9eba1fcd88b107aa2b8024644b02c6922be96b357d7d8f48af66bebe27eb95ccd7f78cacf8fa5e7d6f8957f36cdecd1b526788522f885cbd50d1aeef01a9abbb6bb4ff25f376886df15c5ab2f7aa2e0f565be3d7bfb9da02ab50a92b8fd6e80fa6e4fa574a5d79d53342f56cd55342fdcba4ae3c5cdf9f8bbbb6daaad516feeafdf42429bf87dfb179d4a72c323963f4670d8bafafa2ce407dad4169db849171b870f08071f93a91e4e9442ad56abd4235f10040b3f87e200e43a2ae443d69aec89ee99342e4834265536541a5537941b5cbf121c79503cb096222bdcc89fd3821853983426573966a8799ca56c446aa6c4054361f2a9b2a0b2a9dca0baa5d8e0f39ae9c2039b09c58ee47fd6834baa92297a68f797e0fd8c63cf5a0da5971ee763a2017b9dc5dda398328535c9a29b2599ec815b34690d896d89ae4fa126896c559caa013979e5cdfc276f4eafb2a3fe514a5ac4f0690eb8bbf39d59432cd6a59e35ca552a95c75f429167d5af65bbf3471242247174314b627369bcd6603130283c16027be1ada121a8d4643b97a5c2e976bc58e5c2e4753953259a552899e0bc9d1459a10cfd89ed86c36db0926040683c14ca1126d098d46a3bd88c9160683c1603698e776905e7362cdd55ce8304c8e2e923028637b62b3d96c31302130180c0693f39ce73ce739d7da6c369b0d0683c16030dc36d0c510bf805f697b62b3d96c239810180c0683e57e918e67753a9d4e776dd66613436bc3d6666da0d57d2e8658f48548db139bcd669321f396c9aeceea7456a70bb2bacfca423de6d46b999c7adde3d5dda0abbbbaabbbbaabf32665e37a45ca75941b87fe9f4e7d5b167e8a5b86e6b465a1d3c3352af364463a3cd3719491a9a9b9b9799153af71cef2a674aabfcacf95dcbadc5e9335c8ec9d1e4ee6e1c8fcb94456014edab2d89fcf57ed97dd87467fa7dc6d501e712771a3a359773c13d71a3de2d1744910adae04c1c8bddbf200cb1d829f879108739e7b153181e5422f51adac3839f4a3531d7a35da211b230c07604d77c8c1d0ac69d4499ed00343100cc11004cdeaa0d7d62ba8038f746fbbdf5315a351cf964aca14bda647cba8b3306aade95d2b8346c551a25b424997bdf6b552482790d941cc959816c014e1850bf7de1a490ae904323b88b912d382ecdf3045c8fefdc285ecdf35ec8959f6924a9982d10f445944425425880ef4322ba9942918fd40944524c4f56a8c18bb8c34d18ac8023b44c863a411639791265a1159e07d2822b28741210d3013ac96b06f2122c2a0900698091f48e30358fbb0b40ddb1df601ac7d583088673e1864f78af0158076f6c1c02ba2060e4f5cfc09d9bf7e6749f6c345246dd4964d0d7b4d53ee916d4996247b4956715c96dd7ea9a40bed2988eb794ab277def3d2ee7bedd7fb407cbeab0a62bd49655c33cfb443e895dd2bea21973599a315d494ffc91cf95057231e56300262a482da2adf7ff463f4436d91ef3f4a416d89de7fe4a3b6c6f71fbd463e845ccebac1473d8c50505bf8fd47fe231e6a2be6fd4727a82d99f71fed505ba4f71fb9702e63fab4e43f82b50ca6f3f435345fa21e06f523f2fc40f981530e4f1fd4cc27e171ca31a81bbe0fe1425242490829a1e2f8d798a15cebf89f4a26b35a01a432194573f6f03b3067e8092f674889f20c25313a43552a8ebfe80c35813c434e18cf109573267486985071c2338444c5717c86967086a6549c2f9fcc101235e56f32434ad49483f90b2951cb1ff70fe19c65bde2fc74e5fe10ce5923d7c835728d5cdfe75f83fe9d314a5c23578c7f3a72659f652be3227528c84947865e3ce7591fb93f7df1423b783e4238d1961d728f6e1ea31bdd9c15b39319dd72c7e870b99fc6fa7f4e63cc6beda988684bcc6e748bd19d649fbfaec70475aa63747e9e74570962bd496b727745fbfbca247b5feb8ff52118c83309040f81f141024949cfb4c9303fce32bd3cd56f8ae586f9c9fd9eabc77335eaf534ea9ddeab5194121fb39c9a5e303f2697a7bc1345fb4cecf25ede09e2609e0b344d3d9d6a932b09a5fdd4e4c26172588dcbab81f8d91b9a3d3c8cf0832f6293870df4aa45c6f57e9ff77ddfd7f7fa4589dc4433585bc7c35eaf0885e34ec0ebe1dd3910abd72fa1acaa72d64896666d850e6251fcc0107bdebd9e77ef773d917f0f7847fc90d9f392b1237e0f7827f4327cb4a368e217de195f347b7a90b13396a57b1545fe75a5f2d15479ca8a2b15ab2cb3e8e2153df173f7333dc3f2fb6ac85651749f46f7677ea2d993e47bf14b96f5d952e5a9067f7c5134eb8ef8651cfa1e543be293efd5aa6ad549c36c5f1c6501a4e4bdb7efbdf7da2a8a4653954f67b632f933af180a4db3e2bc68624f9539246d88f93b5333dbc7b65116c3119336445395ad0d315f317b665a6dd98ef9c3e04b8847be16a838dc6510c4d0ec4982bfb7a6e89962bee6f5da5daf280501aea18c4d7b6dcd7abd5714e63187e6a953f79479b03b08e5c94d9c1c327b925cd19d6407408691ebf798077c7c33806600cd16f8de7bd1c3f7726c1497a17971e4644c86a09ba159368abf923872726d14a7fedfa7e1f9d9ef1cbdd0acf7c3b13cd57c211377aaff4a29f12742e1f8b2f79dbd336d40be27763395cbcfc8a9a659de575baefa14cbf64bcb03daab309b4e5f4d1895454df5a3eaea1b0600705eb868515be0f7a76a0b7ff7b3a82d1537294ef36d0c698cd2a7abdcaf6a194adf2f7a5e2e914c342cce39c46048149163d924991830dbff30cc8b69fd666bb3e8f4e4e9473174faf003e5074ef93b7d4e27a9ea785f324befacd7fcb2c9ec4952424bde2cdbb72fd3588a1d22e79164621e55c5e8150d4a7efd196e38abe6ebdf20de983d494e2faa3269c4889d99a56761a6a8a9317b92582228b73154101f2cd012e4c5025d105b10264194043912a448902141800471b1600b10b66c73d6cdcd598f73d60a2bc47dd46016881d54800508970a8080a801a10488234014016208104080f0a1829d0ab4f8a8f9a8f9b0f9b8f9c0390bc5c53f5ed6b43e68b78bebb5e565e5b57be57cd07c1cf151c4c7101f407cf8f0b1c34bf7c2d243eba1f5d47a6c3db72eb6ecdfc3d5e3d503d623d683480f590f233d663d90f4a0f5a8750922fbf718e285b6c7bab6ec4cb0f3826e267062822326b09960d6c4ae092d4d6069c24a13549a90d20494266a4d28d9b2cbfe22d88dc03582d708605a78657f1e371e381e3f3c723caef000e29185878e47108f9d075c414b647f1e56be5009427005db8e87ed6302c6c34707b4f078754017640b6212a424e8485091a0214140825c59d872055bf6d7804d03370de034f0c3042c8da5b27496224969e992b49636496de98d891b64fff4489d21eac874668dea20d1a1e9d4749a34caa3d10d44e1a543d359d2ac56954eb9b35ab4181897e5e9f5e0ad4afc54404a0598540057811a13afac6262072c5bb068c182058b152c54b0dcb03889c22bfb4f6002139880ecea72b1ec8fc30f0e391c8070d0e11084c30e072e3b5c3b7a76bc76c09c8552220bd91f072d18932648638ade9a3e3a3fba270989e2c104ae9df35366e87bc4f2674cd43d6fa83947aff3027f854f0ae03004871d7088e1e05202a70414259c28c14409254a1c51a2881230257c34e127fb43e007023908008d3f8d56c9016569e9ccd6aea5a4b5838ae31fdeb345ab38de84170420f07208c09cf51040717f3bd9b2d726d4b27f6dc22b248a31efdb983d4924d0a8bf582dd9a21404f99e3b4ed81890176c89c15eb0b3b15bcc498c494c49ec48ac486c48ec15dbc106b9e59bb36e70cefa1f1b24e72c142569830d2fa22368341b968c463136c86c3062832c020ea84788fd8cea117ed810ab814a0d4e6af8a9c17604ec081f47ec60c41623b41881c5082b46e08c8092239643966396e3072ca63c822b872b478fcccb45a24c2b94201c386060489ed1c390366e8e1953187427cc9bb731577cca7cd46cc15a445a3223ad98ce6b072d257586f8b5152a474d7a25ea1539d6b46860d8b9abf5ead58c8e1b8086b80d811be267081f45b40cf12aa2bb4043301942c91047862832c49021800ce12ab24508217e9c8522264666c6003754ae5b0b9d8e2b8693184762d862cc62ec6268898125869518546248890125462d8612952bfbab5caa970ae66296fd5be85aec5cb85cf4b878b9f8e102e642888b980b990b1eb2bf8b1dea0cf1656c8479043df22d08921e098a31267e9dd888497386f1a40182ffd302a8c59116405acc5ac05ae45a506921a50594164e5a3069a1a485acc51015402a76262cfbff4fee813ecbeb3ea857a2e7d2abd17c3d15b2ff63a9334412a9345a5d99c3cda9ceeb544f6e4dd164227960d9da544748769d1ff69a3ea8b73175603ab1d641e9bcdc93d22bcb6a2d69d1ecd9a2a16e7f7bdcfb40a1e55f28746f7b26afe48f7c911ff240de85620b0a8542954a27be640382ef05953127104459983004b58ebf8d09c3aed13f61f6b45cad039e745e2d201f9b55675a9e38d313cc999efe46738267aa6a4cf2f8832b08491ecf7d7556b030aecc7f248f57d36974befccbcbcbcbcba7a57bcd53fd280c0c3d8ae650c8f33c2f4173f49e19e3e608f49aab50f4ff742acbc6358ccbf274fa475195ca7bd133cdff47418a3fbf491402ccffd7619ed5533a529cf73cefcb53d6fa3769c3eb5b3a69e3ba87ef47dea8d93b5f84286f267de93dd2c647da00c1f3d62a8e8b03a3afa6eb30c6188f4cae73dd9de95428fa5f869e90b22ccb2f3ffdf25334558d30c61863fce2c8f3de7bd1fbd17b18efc9d00391284d9f7a42542a148539d3ffd3293c63ce66dd9817afea057ae339cf11c97942c23c42a23c7dea09f97ec6ac5974cb92fb63f08b5972dd4b4eefec3afe710c1493451704726957f78017e8fbae6e1cc7514646c665bef6fbbf59c73157af6dad7bd3be3cf572a636bfc438c801ef9a9df1fd7dcff3c2d0bf33cddef996d6b5be9e79bff6b8bd82f9fa36fcaec5c4841ff34df2c49cb56c9df97f1f7f6dd6f9a9ad896325fded08fa282de0bd47dae0652ba457b05ebd25d2abebd9f27df90fef7ea892d7634c1bc4dc3eb0306c064f4bf3174fd37b1c66dde5ae46bdbfe729f4b5432f5a1201dee8ba5e85b913d03bf625fe35f1bf6977bcf1342f924edd5af594b31c63dd49848232bdb31ce2fbd875ae2befac51efaf775ea00f6f6e8671598efece90d4669ef781e0477e7a75fffdd7e52cf3bb7cf19af7ffdef7fe34bf7b5ea0afb946fbb119e68f09a5e8d39bcbfd34fcdfec9dd24c4f39751d2df7943b4bc79dbe4b6a4d6cbdba4fa258dce79d9da57d6067d41c82e6bd8efdebdb7f93c4276e94e4b1b5f3d83580282fca7bf37bece07ff375fc9b67099278f8f44e1dffe69b6709feac5ccac715c75fa6d12eaf509e6aae50a62f811b7ae57e5e2f02afa2d1ab5bf3576d5a8614945aca14dbfab88ab6d4951705df878f02f0f1eb90c47b1dbe0f5f07f0f1f7f7e1ebf83e3c75808fcfeaa91e1bfdba50deefeb7d5b20a63c6adbccb447b63674b6998e998788b105c1fe3ef7bc7bafe7fe3538864cd087d266d1ecfb4de2c067ff7dcf664be2c06705f1d3f0f6818551bfcd8a731bcd95c4d66720fad7effbed33e03bebd9f6ac9efa1715942f2ae8958d01174e20cbfe9688770f0f76fcedb8c41051b27f0c3bc3667febfa9d6e6b0416eecfd88f5d38f97bf173c00dfd1d61f1efcb94e0f8f7ffa657a2bf677a01343be0336fe042a943a4e35ef386463b74920793a64c39fa94a7721447fc219207d71d2cf6874c9fd1db1f1ebf0d1f5b12c77d4c832adff3050a7adf7b3dbff7330368be240d03f0481920bef705aef5861aa9ec802e218cd0a8c5e8bc01778396520c89e0776fe805dc2b149e4dae28da67f2299b6e2993326882230e7c240ef17b2947591c4599cc22298ac66b8a591c892f231866f165bc2606b31833ca90c4d2681a2f8a864674cfafe278ef8920fb5b1d0f85056bf22963654029e05ea13c6f7bdfdbd9b7b5406ccb2b3ec52a3e2d6f7e858a9b333d65772b2382d6835289679950ce9ca52302762604cfce9a9ca90e5829820f9ea93542f366773603bfc78603402b8426ed45e927d7f6ece855d76a6db7fbbd9ef77d0e2baf3bc6221ba5d1fe8f09655a734f76b4077ea78df26447a3fda9ed796b04f4c5c9593b9e589bad67edf7c8f6bca146bf681455a3b3ff0d63a3ad6af4cbd8df6bae29b0a3e666cec23b5d6f97a7b646d8619fa82e20a322517adbcea39f96c684321ddb9e36ea0bdca8f51ee55f733a001b357b99ca181bb5e5901a051efce08008414879026ec759f62b6edf7195b3bebefdf254f14e7ba1e68f08655a77f9bfeedecf3486bd85fffd17e29c85d2f191a2cde1ce6ae8c14fe2a70ed17f6709be177d09c0d4d246f1472b73164ac788fcd1f7d8b18fcd1274aa539967a24c6f081a7d52c676dfe9e48bdf21e854bf8d555bbd752773c3cfb4240fc0c3e626d2a8b5fff25657de8f88f29ed645811b8e1f44791ffaba233a43cf00d1874e1d92e8003ff43a6006e870da98b3c6d3de074d6c7e432847274a87a87aea9ee4896200f8f8f1a9c3379e281da1173f74dad8896200fed0874e1dc2b4241df031203cededb4354fa119b4d16ee39b5877e8ea0e9d93281a6afebed0436b6badd87e5f114a7b366a23895c5ea2fcea7968f64c8f45aee40142f9eb81569eef4be24af63c89dc8fbb9f3f409d449624ae54f96932892ad5656111acd47552c4939cc3cd17d62bfcf7c507cdbf69f47e75377328650e98c095c3ee91d1462fac74acaa65ef5eb9efa0a7bab1ec9fe702ba65bfa37b9ec5ddf72bbbeeb56e77dd668ccfeabddbaedbf4c23ccf7b11c9e34581e5fb6248d4ffe2660ed82e199fdee3afe401b099e20cde9a9b5e79173cd5fc2ddf27f47fbf9e4d8b918128ba0fcaeedaa87a9fd5da7e9b3bb4654f0ba59fd232d7c78d760b6c740ecbf52ff9f52f1a43f4b450822fda192e366a6676b94bd0c7be8cd0add1993f95a00dc7cda128299e019ad1392b849b01c2b9137b8261ab3b323977999ccbe450641920219469e8f6fdf566600ddeb2cd95e409e1bc10ee1bf94026973b34b34c0e15c71749d35618a11fcd5407cfa1b7240ecf183c7bd81c9a81d556f8232a33404a5aceb41932a20254d2cc1c9e660edd42b7461b9f1d8a320394bb86996d62a11bd02d14a557a08ffd178d9e2a796ab4df2f1365db8c76346284c72cba7d7f9b492b6a2a6903b27f4d85f9be3dbfcff33cef13c550288a6ac5b965133ffcf0c30f3ffcf083678d781f123dd366d1c75012f03d33071cd756d423410edff7def779e0f75dcffbbeee5cef7e201836f87d9fbb83dfe721f87dd98322566725b95f1f27f9feda8a7aefd1681d169fb6a63c0fc47fdd3b53db8373beb487f5ebe0077e37c9073a7f9ebfe0e301f8ddfb2df96e57f41b41f6b720bef7c5bbdeade3581f6355ca9c9121738150e65e0feba065f7b4329d8bd7cc55e59565653c286d8bc4fb4308875bc60988c39bc31ff00f9ec31ff00fa004765c800240d88c00e900f0047fb0b0d0fde1db817d32071ef06f64ca0b5c3ccac450a9eea783d25e7f81a236df1f5b86d7ef84be7ad7b3fd70da8a63b39ff7074b13e5e09a61fda9b82cbaedafb8992c8bb76537d49695b9ac88d5ddbed9182c8ba0078b59d8e739078201f11c786bf6d2ae8972b75749be6e73561c48dbda894e8b95d9223748e9eb9d39d87cabebfe8df9f9947c4a483ddec49b78136fe24dbc8937f9681fad6c91334251ad386e719f6dd7ab929b9a0bee69ffe14288d41afb62dfcc655053fd26d35f50531ea4a20e6b54061e0317c28978100e031fe2b1da7a416d7d1fcddd05de0217e2419c05b555b65e683137e235c8fd2ef33eda47f33ccf33994ca6fba6eb71f99eef072a4486972b8b94296a93e9d0143c2d94d6137bf4b450564bda689151f070c036e1852e99c77d9bb1593a0da47c6bb400459adca40d34dfc677d6b6fa45f54de43d289753969ee28d8b91bb3aab779e6a5c9e7e95f62e8db1731619a553fd535c555e576059c82092cbec494e454712da85b890b72265eae944ecd5afc89f4697b26847cf3465d0f43cddccd35d5110b1de34f126de0466d3b9689e83ddbe1f9e11c9d14b0c8ad289a6e6068599025d81bac001c088ba3a018c3da559b5af7496a036d22c1592bc44d544f5441525d76f990d6ad60ecb25d73dfda38510c9f52dcbc260360acc4e81d92ab02b59ac9066599b256203269805cc92fdbba798350ba8cbe56e3f98b3aeecd3d686b66dfb6d41fb35a92ceb4d6e5b053ccf50df98d1eacad08b6de27caf78b1775fb77ab528f9892bbb68bb73b6daf221b55beb0f9ac2f014863361481386a830ac09c313616813865fc5096a540467a0088226380365f73b83af4e795727d03e1df822fffb5e7e7ccffbba94e1a74dfb9a28c31679a3c8f3c6d33e913951dee963fa9a634e9fd2e823475ff8fa7c483027ea3b6d9497b3360ada4246ce14832008865ea5ce5f8cc6af06b5d62e95653a6fb83edc15d4a0bc517192d0e2366902ca4023e04c342a5f60626448a0ac5761febe50d65c22dd6bf612d297ae017a492d37adde0c70a357b73f0cc3300cc3300c49a550087e18e31992a421491449d690e40992b421491424f924f9e119024ffce1100c41b7259e7e32056b60ec4a6ed19fd67503dcc1aee401cd5028d6eec753da0b65e9499f621cc8328927137701f55ed228307e8c4d8c4f8c53607c83b10a8c57606c9b64f041901482df18ffbda36bb60d8fccd404390c9935df0e89e67d300ccd7aaf2863c3f82946f26dc138f4f5a6f8be9bef53f17d2bbe8fc5f7a1df97fa3e706cf17db8e2f0f4f9ed520c82a78d9a9f7414548bc010fc36c3272f49921f68daa8a8f0b4ae46bf7338c0f829788ace2a8e46af89f2e7f4a6f7c7fe7887b984aeda12dffb4421a0f4a4337cf1472373343a47a314a3d1cd68a462345a311ab1188d9a28ddc9f376a3deb8505ad80f03f40a74107c31258a2d44d18528be10451c51048028c21045952886a2f145d50b9ed0f911518e674fa3193449334565804d1aad619cb3702c86bbecdbde57d42f9ae9e8d56c1b4dc12739dc2bcafd9efb1c63bdaa604dc666b33fdf0fca97eef9f1d393fbb95d5801b3a0e96dffed4299362cdbaf24d397cc938ed29fce12e820bde92c01fec1b8a675cc2833dea0127cf069ca6f0b65f8e1f9ba25f64f0b25e94b6f7ad3e99a48f70b2ad3329f666a73c9f6edaed11f08c9d5083e886501e46a042657f23fc695b657e30cc903fe2de5fec94269cfd267a5bcff2244197e3f69237cafb645698f7c9a3535a2587bd5b64ba4af5f3271ce53f6966d099a240fd8a4517feb0fde2bbd026a1bdab7ca5d422d4fce3291befbac3ff9fe54d6c959a7134fb9b97bbb5828c12a9456d62b9cec8f8d340b4f199164d7b2ba2593d44beed3e8fad39324f4d0f740fab0bb9b88ac75fcad4932f1cc538e4f77f5ea9edddda0ef74e5fdd477cea569a08966e7e265193ac330b4a57d72851287eb550ad6f2945e757a815306bfd1ecdff746fd116b6af0099227341e8003b64bfe4039c301efd225973f7af147f14fb992ef3df81db67971f9650aa4a75c36da3cd6bcc0698a1546b346648e28c2d50540f617eb4f76b1c10ebbc3b719ecf09e35276c50bc79a6b8babbbbbaabcb658b63eec6ea76a3d12a949566ebd513afad3157b269b42329c133c534ab2b8728fbb14d162d9945678171597ade9ef540512f19e55b6bf20d5116d9b9d18de61b59cab469beeb947f37695ad3dcda9ad6a76d49a7fc2f15ca7e19d0b9348a7e4c94a81a613e6bb0941f50e91169d67b466a0bbca0effa552f0315cfd1da7c97eb7b4c94e08b36678535b94d16d9f6541dce36dca1b5216b456b476b496b45d68eac2dadbd7dbd0a43e2487a648e2c411f7ec2c25362c4700ce370ece626a738860b4da1b4df397c23bdb2e70b50f6e3f68993bafa4a59accee2ba76f314ae6968e7b2bfad82516b53d6b6b0d685b52facc5b11600d6c2b0167716a02cddb430c49fe22a210e61fca1b0a71ffbeda6e89996aa106e504c71339b21a1f9f53e1087a19ba6f97b4bbc9ad7e47a1f88c39048c3e172381ca8c2d9749648a84c278532c53896ca53de2c199e72d0884c0638ab382e03e9c70f5dc9fe98452a9d780a064f8cfba2e0bb66d1b8aedab2fed6667b9b779230974e39ceff3bd32f7de8c4675a7e78a6780069d330ae69271c3695e5c9eeae942928cb8e63b72d0862100c4130048222088e204882a0e8da2e1bb532590ccf62315bcb6a8bc51812e105097509d90e208d011d40b6a9d1eaca6e31baf8aa0b173863ed9585a1a2b941e5cd37a8a419bd56f60dc0589d65612e97ab879dfa5fae2f63fc96006b19c500930ea87ed3cfbce9eb0e494709c500920e28d29f9ef475a774f6d8e933b5b66c366dc66c13458375e5dbacd20a85c3953f2b58f641a1ec6f1ac6b769afb252dad6f19f316db932c531dff52ed6be8bb5ef62edbbdba74499fa0e26d7d293ceae3903486f3a6fbeabad58b3ba9b746a4b8d8ccccd69d3527f42097e6a6d5acafb2d00ab2b77ea8badb15696e9ab35426599ce527904e9b448647f71c6e83151c6e4fa188771599e4eff345485711e1365d33c753d26cadb495c1ccb96457a92d9344ffd345aa5aced8428cdc25f13cad4fef8a894f724d5015c1a3754e800621065b01fbe256d541c02d4b06baf6418bf9ff23e48d6d85103f5213dc6e11f2653648cd66c9ab3c09a97415dc3a0699f541c22541c7fb0e62c5b049bf277cb046b840de77db5b646bb94a9d3faa7ab34cbf4feeddf356795de7537a8a83f397bd164de2e2b4ecb7c3a67a177d6efba10860f89205cafda47528bb5adf775ef7e1ef899fda20dfb7c9efef0edd7b6303441b65f73f866d8f9b60f2c0cfb65d3da07b8ae42f258fb6dda3743008220ae827f1af529b74facc3386bcf7ed24c3d8f670e3628ed5b46f3145b25d7ab3e6dd46cdf71965edd1313d1f50a654f1c6b54d6288ab9647f558f8c34fc91bd8465ef131bc9a190ecff2da14cf1a738e638cbb28f71f68217b412e855eab81b11d881719df2a675ca1f3ca794d6fec0f5aa2aa1bc6f47573ed14882bde1388689f4ea8a0408431a6198c370270c0b10863384214f8d108cf52accfe7dfacc4bdaa99c7d1e2b0ecd1f93b2fff6925ef5ce58fb6b0166180930d65e7dae4f929f94f2c60d322c6beb945b5c76b7b7ecf596258770d4552ba906a8ab5e52517f7c360d07d67ad5a04d2c00c63360cc83710d8c6d607c03631c18e7c0b83f14914a620d16a5075fce2a9da08c04ca5e0f9a6106419b4fe9455b5a2bda18efe7c09aef9c453a710cacf9d7206ba0f95acb23814671156bb10fe941b36bd671ec46038e56718e28538cd3615caf42e0b7eb556affbe839f5ea0fee4fb3bf3d351f974123081ce2cd9ffd3f5aa1d89ec958571152ba17a3b81a73f23cafe9ed2ab3eafe33e24e06a8b94fdf14f6d79f60f65b535664752a6a191ec2f8af7de0effa2bacf10367d4a6f4d1fd2dff02f95dfe9f40f9ab5fb436fdb864e1fd3d3686beace595ba559a5b3ec54a7bac63e78ba39d9b041f278f77e386491453bc652b93f87661c7316c959a4f386c7329afbf4217d68f60d77d2897f80b28b3d36ad694ec3b82825fed0f77f6fcd1c40f0ac11e632fc32c6f50afcd00c738aab34094f69d49b74e6f6afff8a376e90f68b281f65cf1a61c6b846611ae34a9289e30832a41c1f11ca0f4a794f64ff4cd3d0307eb7326dda9266dd685aafdcfd3f2394b8ec6f43d290ded0a8d790356e9b678a1b152b58a029172f7000004395231a0540003174562c1930b466940388410602d0b009b50c9010eb8dc74469ffeaced466d157d06bb2cbf4ed6b9e7eaf875fc92c76c6f7aebb9fc6c8de8b9b1332d983c9b856f0481bfcbdbf5974d893b9df992f7b3573b38cbd020a4392272479eed3701ce2cd598de24cb14da7a3a8844c7449452b19a201000000008315000028100a870483e168228671aef714800d76a85268509e49a31cc8739842c61885803106000000000080c401382a2002da1f5388ae64ba89ac390c5bcc9a5000eecc8e8a504c9d1d5c55a32cd239b8d4f247d3566dbbec5e23f78780f0f9404ec2b3950068e604bc993141deb302784c8e3be976bfee21c94b4dcfd0a951402be863ee48022a4dd6a771d7e7a32b303bae737d4de993944aa157f36be9e0968de5237b05b266fa0839dc7788ac1ff5028bbb1cc5ae97081c83bfda3aac3ee70cdafd1c0f3003f844fc348c01a33dcb55cf44751601f0aedb5a18a2d91a012b08ae1c580b2b84838b2cb976eb208b417e81ec975cd464ff407b309ff6f16341343d93b304be8bec59ff4231fba457fad203cf89214bb57e5bdafdd21b6495dc804b232a55eae703fc124721392333f695142352ad3971e5028b6df91b574633d50b447b6bdda7d477f5e0976f14ccead18811bb49c42a16debdeb54909dbb0aa202f62e2d9ebb99513830aa9f9f327be65f43a6a15ca9c68b5a2d8278a4e4c9482c07a45153014c7ea5a4a4ad7fd3a653b366fec44b7f262517f6a5a5dd7bc7628e32ea99b5b2ee753f9d22c6acfcc283e66499e82c9bea1f791e5468391261dca2e4c7f306a570dc3e961ca6cc73580a29e66262d7e84dcbab35a872e551b17753868097971b03f02939db70d84b5cc36e15f0d161390c1be1c4dae2003f03f4bebf025946fc30cdebf92b6ba6779ce07164e569285b82e9c13ba75b3abaf70f81e77cf1a297c303877dced71dede0b7355d05be27a27b20aef51eb46a731640431444248aebdefcb4c1306787b8c46e55b585eac5bbb51968855c43260ba79ade4d80b5682cb967eb9fe5ea8e15fd84a77d6d57f2814e01e5a3693e80c469dfa610aa6635dc9552019d2f178a92bb27e307b6c58f7f6416326691dc928811f599ef405ff2a43950836e9e75e495eec33a74338b904971edb41a902dc130362aa80ac806f0053c4ae19bc0eb922da43e8f0040f9a2e9835656c62ed8c607ced9340996ca1e86e9069ea69ba3d464fa85c97fb535b57259130c70195c4dd3bcaf52b862446e9f7a7db1fc12bdbd839e819098e4f3dad8765040e8a11f7861211135d71a96a39103e9c1fa2542f3ab202a4bb6c262d3876d2837fd01b9fee36c431075b2ff54ee3788ab640eda5dc60888b1f109ce13c047e88ab8d0fe1037bc603c55f95c9bf03c824cdb3ee63d9e5a9947ee6bb3891084a6946214f7e5b2d485cd2f362182f082e6ffed560462081c347f7c1cc1b1b8da914cf8c4ac2e7b75e7036fca27e21b6950630d36be8d5c5d9b6075096e2c27f3a8d78ada566742f36dc0273411857adc93eb2ade0f143afe2d13fbe8bcde5af412a58c814c81493a91be3c4549f38ce22d110a731bbc87ae0d98078299f859815d5ef6c877ad231b41966601e4b3cca5a0aa48691742881695eee9481c05cf8e76a79123d76099b9c8ae9256f017682c53ee1bba5f1b1b419bf02a74b6ba3952ab21da23dbbe06799855df7230e3fff8993e9057999e42a910dafbf1672efc079975ac2b1a83ad39fb8fd27a983dd1bdd6bee2ac8b1bb2dd7e9502c5fc0c02b27f9e0eb013cf9bd9e76e72d91c7f2428493a9b7d0272de6f3c89b3d760f1f28f0ad0b3d621ed389703005fb06431df0522222ffec44daf384687fd1bc0582e1eed78690451063a6c6eecd02b91395c34da64316951d788d8f51132a1801045ae0606f90d9e080cad44068281d5c5a95c305019e33dba7174e71831cdabf1eec8758397fb08c7c81bfe526001990581bc049446f95b021a1ba1ded237908eaeb714c39c320fdd65bde9946018c0594efc9218c36f5a54b08ddcc7f654a9d54acbbf611b680b5cc34d0b27b5dead1afda7546bc88e1882a27b705a6771e258717315b469296d7ef467c1e898e4f6121944172ad1aca6320ea8148620e9d05593f8ea0b0660052d8f6fbd792b518f9b6fd2d780ead130b99951ce96f6dc35d6f9750f4e4b9786bed59e4f4192a823b6d20f01f76df393d93dc99c90bd5697c6cee5a2ac7982b177be053b090f42b594de75a31628958006152267c17b915d26eb11f2f15a915aa46cff3734a236c155f86c79b39274681df30d81300ce9904a49ddbe81a7d1af908cb6dca66af7465be34e88a81351b88ea5aa8bd2d5574e5afec6306927f91704d132ad39cf62bc8d11dad44741e886eda445ef247fb531ced65770f3b79980661367c3df87af8d75277a3640c85376d75e590c2c7f9b42a067cb7a26f87f0e5677aecacc8b8b56a567ca65b3c0bd3bfaaa93ad0c3d18e76e4c544044311a49fd523324cf579b050e11c2d1480b86252594298bab4d596d08df2a04c8acca123555ab5b57e3723c368e8ebbc8b303643f67d62086d182859d91ebb3b121b4095d42e7d653b55e0f295b1a1f89e0d770642f03acf5317900ddf8dd0b79b3bed95c575e4586e2670d025c699e91d33a51121b2d8c004dfba2a6cb1c2f84e1dc078c2284912e80c3a6e37496783eae82d1492b66ce57cecc475751a5d9a1281a644fd450a334dffb84e2cc828f19fbcc3dc33208f26022ac6398cc2e02a9040fa103fe82b6a4d62fa9ae8fcd86a82d78159e597c531a22378de8d69684776bf25fd375dc4922db1d1008300741a1cb9b57d388f8e1195d4994ec327be3895c93fa66c1b3f7bdd6371f018c01a9721d72d3ee67fc753b58412a8a85b9d03c061b0f52e90148513feaf4d017839d2093d12f96717bc1a2123e820787c9efc64c99645c5386c591d92e1446cbb2560e060e2efccb2cd7f7fa52270012f40cfa2d2e1a6158870ad8348014342ef7361756fff43162000155f0622838c1cd340bd2ac2530d1b80d39e59dad77a846d079ea68c0cec73cc52049b854c6b39d12fbeafa5b404dfbdbe26e2de8a3dca02180d86fd11880c11517ad282c61172580ce5d52732219890e6e0bb5e599b375b406eb64bafcfc29d63967065d692ed73143290eb164edb111fa6a9c0ea3afb9fa9519cd8544d9b29fa6a449610e35ec36659a4b5332fcd27d4991289a0013e39cf6bfec18572814c8f129f95ce9433521865e8ce940994edbc67410930d4ed83fb2a541f844af541fea416ca4c303237fd2df072d0fd214b7fe024b8c99333ff0972d2c1db332cfe5bebff91d80211278f12fdd7102a68e00df0172a388a94c4741b951e20f9f68c6f4461c450f052c87084530b199ea307a7b67cfc32ae29353865960badc648d9a50ac4d3a3a6728934ce6550087aa48e31f0d9697d5669f3b6a3561846f72b0fd80660010b6b9b1d54b3f313babd526eab334a994305962cdb33337fa77fc459309441de8a27a9e3f3ebc664743024e8308da7f1c3fa5f6e4a65b1a56458fea9faf6d1afed32a925307d04a234ea2467624b2440a8609ffe669a246ad4b65a880bb5441a1f0380562d677491d50e967d115bdfb526f314e3b2404dd339b8854bd27b6c388f7a45ed1e66877b7d3c4b5fc83eaa7adace192599be8b91bede3e7b12f1acd7680cdce9d5e4a77a4333baa640f68055b1330c628a2d0a2f86e041a14e99e813777f2eb41729bf40bbfe35a4355939a4278dba9ca1b04708c57bab9177e12f2d591f0d433098b18c42b8a003fd0b71a299f050485639242557cf34a7e7a76316fea844eaf6b720665aa125826ff08ab18360db4651249de20292ed61115268f55a95923c2bedfd36bb93e36b143f7a25ef042d095b9360839d3a3fb8f624ae3c33df6c461bcab4ca4e587d2a2a6e704b3cd3f6721bd27b0386871cfc9b83a653d6d4113a3f6b53f4670b06795cfaf4b85eb70d00fee6d146cf20367f2d7a7e7d9b407cc123c5414b80eb2be81d10001e3fcca3822b4193d3770a21838461e3d16d148cb40570397789e72c3cf6e9d7077b50800947fe2f38ca289b2241cace258dcebada2b50911ee671c7027883198839cd8793a40a1b3a0c413978546636f5e5b17b5b21f55865d7bfdf3dc020b5e20e3e16781c2f847ff8ff996b144361dd4719132014ced4d9fa8b7ffd51082ad649143769b2b80451b36e95fe2d51d45b8df51ecd192ce513e670dfebc80ed59b646dc0321a0b96d11a8f2c8c6228c620cce72cb30993a8986bc85f08554b74a7128151bc16d64c5ce6dfdde88102c668860a589474f7c68e790118db54e05213d12ca4df0b82bb79390abfc00ad2c5a4c6ee59670826edf484c8dbe7b08f329f92912cba6156cf7f1ed54d0743083c7a00e529fb4c757db4c9070266cd208b29378a155ed5bd571e5051e18f1c6ace9823c65da31334d278b0891e2ff63df5bc0bc1f9acccaabdec6d56b06270e5dab6fc346230898d4c4d958d6959c7773244719e03c5a6433c0f33b929ac12701d049d741e1521fa5438c689524472e9268e625617696edcab3c16b7489bb0f71686f18ff2a528980c0183eba8293843131bd68b18364d1a28313190426e9d401a02fb2ff4a23aaf1461ad458232262b3f1caf4963520755b7284d052f4838a4883661c8cb6a3e77f708477d359727fe324194516829b163c2bf8edd58e8f89e8476ecdae4f690e578e059d188f3a1e532737278f8a8a6872beb66deebcb94ae97d34c89c45a3edd2cd9f24eedc94599aa1aa793d345485b9146b25c9039d912d3cb57027e1e5187ad173278910efcb2a16bb32be0befa5308fa27ace0e09281015c9d3f3398a6cfe5c9d77b2d7fef347661bd9597d758a5a47d572892092aaa370f7aa611b48383f057ff76929bda9353ca12b488b7415ba1ed43e343b9e3d4f8932b4c0f3b850e8dbfa2ab12951c8d3307a9dbb0dfd4385cddaf720c182529950a56b60acd76277112a64e72bb010ffbf5bd102ad275db3bdb6e3349814e3ef71c6cd94d93581d225be776441d6fc9207b75cd25fbb9f671faa95d6d221be33ba34c166ed4dfd8092603b8f468733da2e3dff4b8b54e5927b4e744893e2b77ec9131791239c35c023f5dd8a4e3baf10ac4923c785c98cf3ee511e48a02465fd64b4743c025de6a749d86d23734e8fc167c812141e7ccf9f3a8b09285c9574a4416e5d2ff58851f383221954c051c3b63fb4fa31aed7e9836eff6f87a90a5315a214dc8a875bb63e9e22d0a71c7d44203954ee38dc7c1b9bb176d02d6cb274aaeadc844b623dff53edb6f471474994d100d768a31b34f6f49e2b1728b9c5fdc79f609e966ab656931955c9cf40df00726bdc70da16b2937242938834b7a8e4db5592773f43f127059091fb0119bbc1c2774f86448b5a2a54192bfa1f9c8e8bb8e149d12cd86c2d8e64e13c86c8e6c8e6b5519d53e3664015f0099d6e42c6a0d32ddbccd0867231b5530317340de033629f3b785b225f3acddfabb02389e0ee4e430fed330ec1c2172ac13677eac2a76bc3f72ec597aa42588ec8c0761438b21a29151c33147cf5dc4c0bbbad169a4f1d163b7ba072443ec53bca85e2995cfb15413a5519cbb3477f103544deb67186986f7cf9b46c05ad6177a8d9eaa4aa3bda891aded9f740693797343dea1777efd510a8943a8cd6b13ff47bc724b6329bf5a92c902901d1652691a92f3cd61e32b5e8d03adf638492a02023579de7d9d1e3bf1095d241f958ba6a76ad204e97aff6ea5391eaac2ad354fc6cafa0aa360dfd1866fd56620a91c128bc632dbdb2fe4fc5085a9cf0c1ed7b1f2faebe72ff18e7e9fb5d2d903e41a30b720179abd0b738e840871e7ed0417d101f601b1c44836706aa5c314eb94b9fa7d375076b7975ca23baf1861ad8708d70e1c036dc7ca37c2e01683e5cd034ce6814340d0755fd6ba5f33b316e88ea6d08c642060ae149d6cfc11956d8d29c5fbcfd3391e46e6992578e4e1dcfa3cd2b2c9ed1926260163f81c9fcc598eb87c10249544194408bb2911dd4e23333d3923eb06ca0957e569c8ab495341202143e1d1b72c776d1c86953809519b8fca1ebd58b3575084c7e13a734277724823cc14274cb7b1a5536de1996d39b21dd9a7baa8cc8b702d11dfd6e09f23fc442de329a6b6edffea5549800ebca8f15a2a6171c84e99b8a602a4e5b6037a9dff9284c5b7dabed443b1124106f378a1d3d3fb1d6dee5ccb7ffec609a22330e6efa3a138ec98b276b594b6a6e9d870ea6f14eeb59834b97a3e460410714c1bdaee50659be7f8b5b085912789d2f5d6a7124bf34c914113f68f64d378d02fd2bb56770e724bdb86907cd0afa5d0874193bf77382cbc84df0d31aa8add50d6122b159c579b7eb44e888de4457d5b56595fbb1b911b608ef0ab5a0573d54b382cf64707553b96eb951dab8c6125c8d0e302f4646b14b4095fe61e63192e8b1a512d48582b8bb6057239f18c1632772d042fdc5485855af188a92a2c8e9c54f8a0a2329e9ca37f26e098123054bbf345c97d8aa6bba737e83e9ac0e74c9f46ad0eaee2f4bbda2c63cce342a69c915125eda824d124c4780701a38d000bf2884bb0980c1816e2ab5f4088e31f46071a1d51c5cf8ea9fd4288ba39ece03ec53f1078876e4e867123ab3cebffd512900345d61c7a7ab726388bd99c528ee108cbe10eea1b2a07bb04257a9880a959428702f5e4b57a942e5084a0953e844c2085ff1a9ec640999b9825e0dd9caff7bed244af7b230b521ff2a5b96583c03f0793e0e2840242cedb538ecf6dbf874f9d9b13215d5ba2b20df9fa854237289592c5486fb55da6eaf36e943f7b4e5b8da98fad114fc48c9b87b7785668fb1035b715ae406b7326fa1c09cc39e8ef3b4eccabc29a00a5bea6d81c8015c40b22b42700b39995e31a0147705be35f81ab9749b7d733fde53e6a6787fc5923bd220db824b827bc3984bdab706667895007c170275071977ced7ba4d2d6a843736e0f3b8d6a136e8185b734545ddbda26f41a3ae60bea99852218a1d8598679f12418ab67ea36ca2d8b5c6c56da1b1247dcba9dc78f5771faef73f8ab1e2d9928ac2293be0cf25ffa7d06273daceeeccd1abc556c37a5ba3353a6ab478d4aaa7be9cf17bf88423d5f09e1c1dbb43e1969797101961022ba91264412af038cf0cb83232e169ad5a81ad8280dc4e8e3cd1c7783a363d22639e827e6136d467b4cdcdc703cc0f9891580ba177787c6c1a0502ba3b24006b98eb837b7fa6a4da0d426727896cb4263cff64f32147f36305c44bca25f2aa48b4653ea6b058eab63a755d536453f23d532434b8267150f7523b03dd27df3091a8e6fc2ca2ca0a2b777ecfc3ae76866daf5949589d313b3bcab65958eaa202a69a82ef308e1e4de3173a65acdfc881f4789d9c3a2b9cc087b10f9320368d52e01e019e2a6d591973ad4c1f5c1a6d92b2ad97dff3251293b5324c6069551919405eb7aab9b814e9b9c602873c1ff36a160e76690bc7b474164143adcb4c04492a650561d98e325cb7837f5260747428a54d00165291133443824249a1b3d6c5aa9ce6af035cb8138c17ffca1266dfebd75460b46c71209ee8aefec0ffb0d98dbdf9665e5353e97743eda612f2f9a93b54db8afe9996a038e7729b40c53fdcf89526386bd1128d23bcda07d5e70f5d8cc84579eb58933787d0971daada661188604cef7377de0048c3ac9c91ca5048be97a964bf7abed0405a56ea4d67b6bb6cbb0f976dc445bb679b46fafc2e303227ded01780aad98548d261dc5c4b0622ebec416919b00eea064c26f4895ddf1de28ae4c60edba0711957ad08a36d76b467f2469548cc80afb97e2d637c73fd8b4cf9cad57f8b1109051def98479a6904e1e19e786f7947f90237275a92f185c4b36ad4d4d7cea6917eed6121874c157d365ccea51bf9dbfdf81042b7cd60c9eba1c14c7dc4cd6c67c2f73f5594fb4b25eebfb6f132c9cceec0bd39809430791a9349aeeecc64c40fd0eb74ff191bca5068bc89ff64d4099b4ccf21cb39a2efb3af814cd152bf6d178fd4b66cfe2d79b383db14da666c5f9624894e8911087a493f75e186823aaafd635b363e621238d5ce418d1f4ff3ba3b17046d2ade0f1dc8dff5392c80fefd6b6e2b078df426f43a0a5f7fbdf636a739a23ca947e8e8a88875c5003153419effeb2bdf9b8a837aa94e0938a6412ae209910cf255ba4592827823d1d0b0a0e5536ed2ce284aa6374ce657808a9cbfc4d6498379896da575b63b1d5289f1015673ceb79f2916c6ca0fc1d261372df6bec751d879a0a8927cd2516a6b9b8668c6c33e4df7a568893259d3aa84c506d0d1ac0f4a4a7750cfe1fdbc5bc7013a0d65813313bcb10c4914a96340f7a3d01655b8105ae9c489a96c78d2a3d18723f72d3e5ae4b145fb834340b5837accd50712281214f019a48b43fa9a4fda635e60e044f135e75b5be995c9f3db4aaced2477f71af73fafa7d6adf88cfc9f31ff70df34145a3c152ecd5e8d96b1663c6ce0f385210adb30ec6a68a9777a31f79f003b82ff639a4118a3219769fea674803ca452fa553acf55786eb843b7d3a254539540101a8f2219afe882a8f5723f52efd1b732d8d7e5a70cac72475f9b3bc5b6a4bd0467eccc95c923b2d421c5bfa21497464d046276d01eca782677041ee44abda38bbf6133aaf572528128bba8c2d3ec60176f47a31e6eaf6c270e9646a08a28843e378c3ca3a34f316ab9d44d20d11512f16a4329e99c422681974cf9e720b33a931314696f62c55d3ae8d105638b72607129d6389b56cb58d9f54e350c0aaa8c80dec5cbc6a71606784bbad8ecb4f80b98b768c6ebd84eac481e15234d814e7ee654c0f08f13d1740c2c804ce56dbdb431e675c3e01ad3fb16407dcf190acacb32e1c07328172981bed16b2bb2a146b431780d0846238b543202fe8ec3f5abb1156b87dd42664ba7bace6927d2a4e66b144c2048e833e7b24d992bd4280dd14ebf8b7b3115594d7fe238f03d21746367c5b04a9ee57280bf9dd79d80c16af87cd0806c21011a2fa0086901d855a0eb6c2bfd6685ce0ba3abeb4fbca9ae1b65821319884dcb0f6e33dd939150b545684cc9e001a41859bea5e65579a8f55565c5856fff99de25006938df236a3a5ae58be81d3e0b7e314206b3ed4b53323865cc1ee7b3cf055f6f0042ad0bd3f313a4209fe06e6d0c6d6575899f496f891656ae1339f952d40ea817c9ca1f186c93f03ded0027f70f0ae816e44b7ccf7697cd743700cfc34c5377fc6643f7afad370d6f38436cb1552195dd493274cca9bf25d020e1f7c44ea57dcfa0e4755462a6542121621f823026d285dc3d70bdcb789c7599dfe31ab9c44ea1d8ee2188293e20c4feb0021423db9b6fbb471f0b0c567e8aa08e85cea6ef32f4a2c4f598d5d00ca3257f6f48b45ebcc96d3502bed81c8eb7d3e47ae4e29b87798cf1242f989b444380d9a4f5c3082a98589a34c6435c4e0bbf5f3789455241e6125471ef5b2cd3629d1492fcbd05d1893781be1d9fd73e05bc0fa08916d09742a6b1f76aafc20373f3ee1104a5dd4bdbe3a288be36af75382e8e92457955e0d75a9a26230487b0db1afe6ad640b91a4ddb12615d0a5673da20db94ceac39a67d99f177aea4ce03ce29377c9aea8094aa4a9a524105458bb5dfa476943c2261b97751d210695a819ec8add51a01683a458f145c367ff050f93605113ec11db7b34dd21e1ef2514e1316ad88f83987dbdc08c86ead4294b30cce32ad255acd1c0cca61aaa68c9187e52cc8127bf6e0c92ba3904d0549b97c3f2c6ebd2f0249118144cb1220291bb055cee5c3ea959fc32ce71480252d884af24055b8e5414c39591cc9b7132bbc3721cf243749b5366192362cb791d2ec1b755ed20517d159d3d62da1e145ef2356b0c3e730c2f2c8543c25e9f49ff87a3580679333da8d510d4168fba091df58fa5011bf3c4b14370c1df22f2bcc1f10a979cfefe82427ce691db487449357cd831118616d45c54bbfc379305e963601ca59382add0c225bf5ad85be77c1ee703a0925eb2757e4743683a7d133583330034bc43b2ed104ead06bb93176f0500981faa443f5ebff6ac5c8489a2e17d5cb9b142975493d6d4e75912ed0233c8a13f5113ce951c4733c40b849b792375209920a4da00df178e8e6c33f30b9ed953718aa0acd2588ae4d764ba6c167c19702805edb063f935a2fc0777dbb7c92da6a5e3d78f9c53dd59b32e4caaa458830ef1e4834a92f3f43025fad779c00e4c55af995672b7586a0b53260c266676c1643d42b6ea458981f84de79349df39e140dfa1f1cf56695c2e9f4cdd39d13d6954715142fab844ab020037b5ecb43c0f917e099e823e1f4ea9bf54cca63f2a0519be649eac3940782826ac1628cbadf9a868f9867e3a32a7eb631b7e85d4ad92948108d760f223135d4580c67db1b65db8f4cd6c5570b8c6a7d11053a63434d22118217f9509647465490ef7d3a9a548c9cb19ee563f51db68a9c1ce539b0073a8b8e90d9e3b2f578b34ee83b84707b269c77145ab7c9774d5838acd0774a547ea5c206ed5ba539ad04979674f96e7516d7db0d66e2869f034fd04f40e856f64c1e3ae9267fcfe27c8d2390b9bedb0498a6d10a4d84641abdc512b1c4ac96c916d0dce819de264044474459b8ad41f402682283e9ee5a14bc84830fa7b02e1247cad0f96e64c50e762f8811c20cf408c571e86d9562811e40ca116d7307a66ceef53706c854af92a6040eb03f61123ce500903695ef5c0de81eba22c6244de0fdc2f40841f4303810e978c95966d76146b37c56a7e3a2d772619d0dd4d9c26ebe231d008811c32ae4abcbe3710873039638882205163b8a2e1207f641869a9483bc70f95f17f4d6482be20ba2221c3a45dbb2719d7867be3c11638a4bde00d73a2666de9eee6ef12618542e9da414a31b49564d6bd09036dcc95b4305bd583dd6981ebdc5d8bee084403e3cd7f17a9ac418919d1d05d3d0a5ae142f0bd6e044a7f7392118077a53cf45add0214fb16d0f5ec2c372177a23e3d390620ba4eee8b2e0f4741a1c349a640f5a83faf949cafc9494eb85a23d18972eb6911b0db9971e4d305e40039e93c53f3f0187fe50f01aaa26ce263826070b2e020dc65786230243211549fa42b849b503b1a3b9e787592993cb9e733b0465706105270ecf721d28db1aa438dbbd58957153ad54794912b76188848d2f3f05c203f8605315c9e0717ede874bded459e28a6e10a9fc422d7b45fdfbf7416723da55f05ade50a5a2494b822048dc657f7da0a7b476d52dfd943f1ae166d56d3466aac2251f2ba5d8215df9644c94ae0a87cfc2e4ab2ac36a1193062e615fbd55e357402afca2b4617013d5944e4223297c5e6be42c94c1a8539a281991120648678720f28295c23f1470228760859a2cc8b7619416b2f77850d40f3bfe05a486a6e469f195c6c4a6f2ffe362e0f7599faa819a41ab5b36ddddf7e958c6830bee98e07ec5972dccaa89eba5c36edca3ba1f46b50a1efe5b5ecedcaebc88e95ad1203d29d428496558d2c695ab05364d9b150cf35e7e88bd889da56e3d4e2d4978b2d75e6ddd0ff8c8226e52cd02a77f65733738dc88b92aa20a038d32a3ed023eed2de4ec7b6bce35bed900170eee09119dacc11f8946f7663387c3fc7a604034ba8beb4a4addd67b19c4e3f7e967e34ae8504f1e8cdd03514f7a0ae5ae6db9e6b56642cad5029b3c2bfd16f38825d0127d5ac3e05c7985a75a7800a9ad9062d955a87ae9de66485aaf80001c6da491b5909fb765f26b08e61dde05a07369e291a7d8ee0848b2c29b10f36de71e98445496e4590c16b96bad2decd3451dc389a1ceee6431053520e2bd65c52a4ab9dc64a572ab78fbde4098ba9b9b064eb08768d201afe2eacd75e579f60fbfca1d23fdefd01208c30ed45eb108a80d201af8536ef30681dc34969b65dfc9781d4d22c4287baf414c2f0988ec353b54021c1004331ae832471e0d9f98a8f5d2e50dfe9f9e243004955953817450c1cec3ad92c0e3b0372a43c8600f0bd7a7861f44bade9498d4e7e042efef99169833780a336dc339b2f8de0d17415653a7a01f0dfd7e2487e9990faa61ecb8940847c7114f95c74e07c1272051242a4862e77164e9e4c2448d98ab94f6038c03580e79d5008e9e027819331d9ef3247e45fbdb49845789465294771bef51f8d004dcac53dd31305380cc6efe81c28f371cf0d2ed2a5106369c120df6fba8baf12788856d293f629d8f5055082bad348358aa2375ecc3feab691fb31ed10b2263f6215cdda7da1ac21bef0796c384a15a32210c9b0e65a07177b327aad96d8fdb3d8ace00f27a304ef1664ab535b7d68f40907e1899240f7133be79c0736176263873c5d3319664560ca66d3dc44587930d346a5f45fb4fcae6c7d6f81b09a7d8312e21ec0ae34ccc7f23d2132c1b1e1136268502d8917cb367e51fb5e1e5f181c44296396fc35edd3b365ef84c53af8ac44cb6c95274030a2c33da141b4f923d574b250a7de661ab8f09d0f74039dd777f2f4c9b6c2cceccff2bd44990400abc8564675e517996b721b2326dafd61028e5e9cb188a34d031aa9914aa774a88610e3f9b5a759b6a1cf38d98ae379d4fbc40ba9c43534b2e77765025c53f6feccf40dca40a2b6af38a773a2a5109ec96d119c84ccb4e540bb61abb33cc967941ec6f65ab0e4d8550d0c0f39842a7fac308934fed5586a9501549b405932cdc815213559215ac81bc9d99e459ad192169d06ca336b12314036142b2385fd8181a4195a64170d1d9284f87b988c678efeea588f0199c65ce3f19849909a90985878ca3bc1ca7b0afe75792e48900b6f9cb3b370128a20862e2e19e7f34c4d325bd544c528e0667f35c421e3db83556fb7561d65c0c57c487176c15a569e0b00436ab177a2d58dbbe722c84accdd66b7e678c83b9c000126c037052498f794ed5f1f8164bcf9124871aa3f06ce5ae9a6034d0072d6e6c2698caff2ff4a7a3b34ac28889f2abdc8210aaa843d866cca9f5ca8cfdd3d27b3a0f217dc041eb5c4ab081254deba207aa40594ca9e674627ea426b8be01555365ce585d7535c7616ec7eb08731d3e156c58a59da889de6a2ff3248ed3c087ce85ffd6390dc832479f52ec40b1ecef41d8a9a4bb9b4d9d886950ae8ad4827071dc58d8ea62536794d29adc28a333c954850a4e62986bf448cc988147a2b2c970c023c1c227fcf74389fb568f5a9c32cbe6ba5a003df0572254aff89ae024ab16d1c5541d155604934208c6245977530a7eff4b570d7ca6dcec686558c12f0a31fee8773140b7a2283c6cafb45f9c66f8382a386b5bd511433140778389e8f1c3a10267d6cd02130c5ea1d72b02620d95b6483e00b9fb19f52d9005d446c061eda90823a79069126c409f76bcd0c18bce3c68ce713b8e4c0bcc694d65d6848c11f149698b88a7e408ce2f26c155ec3513b2f07f61c836cca206bd49a95a8661f684bd879abd33af9f320a510e12d8969631a9bd4e53889d2e5416356e3966272b3921d5905e1422c35b940d8362e2b8c5d711284d5c549bc496cc392ae511a49683a44fa14cb3a8d738777aa413130316273555370580d7febda7f46e112ee231ed6f4a31c2de2f18e43c2ca299c4e282d733bc8743d3cfe84a317f02f0b301993002d12eff8a80ad3f41e5975166e08dc27a02f827b831c930fe70b680c2ef471c4b270105d609d25000a98cac8d11105bb5cb861998a632ae21a0bca9e8c8ea492f7c9391a0c2485061a69b8e59d5d9732d42de52085e17dec7389e5647cd08f357b828dd53ea9963ff108a6c209dc0adf7aacc13c9060b006cbeb78701a23dc1726701b89b29e6244dca64db006edec88a7d9b5139db8a46d4107d94cdbc684a97d514a9e729add6531ebaa73083033343d5c17895a188af53da5b3d452c2abdc1acf227e395f0a6294a637346c7c9b0635dbe8c056befd8871b7d02f099dde77b68983605f50b80eade7f069ba2ada62f8aebf4bf8bfa0f8d1ae4d3233859fda4c17bfb4fcb6e6f35429c11e6e650fd4c4067469c999f8a4ca94543f6ec3781406d6c792f515755492d11491321097057ce08f04747194bfe86712d2f9eaa991a01ebea00636373217215df046c416a3d008e5ea9a6a28174f2180eb8e1453b0d61a4b9f34f1ec46f72845838e97bae9a63441860d59644b0b6e0ed4cc69ea2b6eaed2590555ba7e20e74eacfad46b9eb4da8d99a2a3ae2ca9cae22692226a840368966a5ec1049ccf35c51e5a622abbb41608601cca19b8f310f459c822b35dd5df6c1b49b970298152568669fba3c3bf30e268568b4388a48da93d8205d155bda4c1147360a3eed78213dcfb800234c67756b107073f1c7145e490add12885a4b689d22b521a9f852f5d54acef918bc410439533504c227d14291610910445fdfbe027f3fbc5fa780c5154b3d536f2beec381364c47b29ad244a43e1edb926b9a18468af437895f5c61a2934019de616de5bc0493483f7966266e6a41346924494ea44c7d99afe2ba1af78ab92b648fab892afb83c8cd98f8d6ec875d7b40c2befbd9258a2350bc14d5bc5438c646a32b10c933ca197a4313a34442f0f51287280e7328fec50e0e54f487441ee1efbca93a5a11aea7548457954ca64f95e233f56b95cab03e2e48c50bff32350faf9b99e903ab183447cd25997c2945b591e23cbc3b920f586e3a202cd62797be7f46696e59fe0b4b733d7ddd6b21393bbd24976d40be8597247cab9d588e1f81417807840bc6280cc24f5563c398d49bf9d3a97b542e7fe2853ed818795ed994014ed0dd0fd3cba275279d8cfd0c9371003cb9116b99aa2190044de990c90c14d2d991334d921c4445f80b85585f1c5bcb17867cc6d382b34d1ffcc555b6c5bb0ba80e2810300557cd38e15c052070e7b045b4142454064602562a002cc1ffb754cbcd12f95f6614fbd16e203e4212585f7aec79262f17d49e647e04d79c22985b9f1b1c018dfa7f0005dcd3ba13e4a8cf6a5c0d85d881598fe62a07ec434015afd203467bc8dd6e21a462ac654323a8aa38d3e688bb75e4dd6fb809f77f455da9d352de0b2d7d433b0b9b483f6b0fc71a20c75af73a66a617ed2ceb814420b3379b78121118cd0528b997bbd58924875619888112d46ff88b4b21a2e2c017b4d792ea61fcaf0496a1bb545b813a45243309c541a35aaa95891853619289dfd59a91f41984572b8d77f3c9b63f66474387a97b080c6243086d020bb01f579d1fad0ace7ec98cc0a9d53e912896bb6f37b2465fde1aa6a1797d7b2a979fccf9e30af086422a0d2da14df00eb88a8f04526c3b75977fab71a0d658ad103075abe6b4efe45e44e345b8791dd454112b22d361f9c143022da5422be2330ef23577ddddc27ec14f0b54464e2514553a40d771e38b966ad2091db9a9c010214df6243151272c5700ef98e618dc181d5bab3781de7e50d7021e93ffea1986c0c0ec3124fc9d5485ef680872b98bc9e29640f31c7da2a7d3f0bcdb1911cd09ee2e093a5f5d9f69902cbe554e3a51b0c1c2874dde2b52f362bdfc535f00251a9ede275afefe7676bbb28dc8ac148c3ff36e807904f5d3b79e06d4181a5f856e8e81b84d8f7e0811085881034dad007c93d09d2a77c1a9c30d59f965e9a01b5920ccc17e4bad7bdfa4c316b7ce9a0fd7deb40504c06a6a01ca292fdac76dadfb9f46f0f32ff78b8fa070ddb65f253a49a9cf85b04a6d9619ed67fb7498f78d73b5d9d74de259add3790de452e5907f05f00c81f1b216a9da28bc698634908681b2a6b2116dcf9fb42c1f608bbb7c80493267a284a202b2db4942db0eccf7a4c86ea6c027e31d2b12d27626f46455e6dfb5675ce556b74b38757a555920790fb3dc3743150d73694441a1a529b09a7c958154ed4d61c3c77e2968e4018052607171843f753dc297774a58b47b6d805d04218544b9fb01a3c171ce3d0fa91b3e352d58cda2d89b521b6d8d403d802708cde711c6ad0916988c2cff24389b1602928da0e2731468f295051673f895a325f7995082eb2388efce7c1652419da2a6e4aa06d5c3d70fa2465bfb1282938f8f14092950380e822a9391d40f62e4ae9dff0814173b10d238b1a4f835780ff7a5ecaccf41391112a4773676f379ddaf9b6f9f12dcede9bdd6ee4aeb3eaa5227f01dd20429e10475776c741433070fa3a3c418c4372208eb3f970062a452505c8b27fa68c067d74c0f70e6b3a1475171be57f01f0867a70056a97bc40a5580a3d50cc258e2902adb403cb3911c026aa2ffd45168195f8aed3d5f69492942e588877e6f0675918cd47199bb743c3e2cfcbb5edd894bed56d80f0f98ca8c1b86e13b95d210f2593ec837ab80fc8fa10584448e999e68a1423dba89eb3f286beb0324fd3204e0a5fcfca4368d0da4503bf9c71bd496928ea7419b3f40ac85dcda38786b903d8f07550c18a4b9489b35b2a0bfcd0332a961799757f661906654ce005817200b190d33dacb40f6166a3f28f53a95eb1d794960dd7e2a928199b7d33df21527eb71d350806fdd59d29cb9b169c5dc0fa252210690f796e74c432f9ec171fee92713827759a7bbb0cd7826792025398210f6ee2a1a2c9ce7639f0a2c2bb0f7744fe1c041a477ad5af22734a2e2b76d121353d8745b89092fb025c7947181d55f42b2eee0b5a7b5053170a55b96803ad0363d6a2a3127ab9915456d0a7a4022fdca0aa5fc91349fb25b4645bca353192f43c4b1f5db4c3ac9d8c41696e6a0be7e2abef44c50d5307fb7608b402018a4e8801d256c962d2716460600575f7f5762a374095e4227a4a700294acbaba69baed01732943c15f758c69c21f4d804f56c5df503800063092be427fd34385e0c7b1df9fa99d6d429919fc7f7416c898ee8643c936cc38396958a9c8e544cb9aecd2161a309b0437899c11b7535b026772859583a2305a863553ab02e0d701e35e0cb97fb352e87520e75e17f4b895ef1b905cd3fa049712ca635eeb95a0ca0565a0c52095d52a06a50ffaab55b300f943a2a4214f21812a741d23702c16093e4ea9b6379c885114440fada79acdee53c79c0105938561686c0037980276343e0953ba271094050071aafe217a91fca3d009750994dac3483544d8a52c3e92feab6eff2553e9278928a5948e22da8af5b41ce0b55745b9cd35a065bcbba34fcc40b08c0e42ec15ed6fdbd8f3e24e1c417912fa24f473b9d4d83c549d7dde2a3298ca9194b0ddfa5416848f6ad02bbf8737493eddeb36d49b509e43cc59a46a8537ad972601343ca873228c39f2e0b55ad71d8b1e63f1568d8bab314d37b70c29d99c0e451deb8e837751360524d0507f93eae98418eafb74a930b07c0631762ed744b641b16b1726cc11e960f76739a08de532ef7ec6a13e7ebd5dc651e164b259ba635327f1c8ce0c2d2c34f7cd78d2a75d5038226d171e39c481c840a68aa6ef261da91cb570c0aaa3438d7de6f9ae9da9ae3662b6e8cedf853e08d6a25eaef2ee7bacbb7eef0189ea111e3727279788e90f69c2d628c62fa0afd4d4677a5ed0169602c2f0fe5884cab4b95eca827c8bb698cab4951765fbf74214c39c82c2df3cb322df69061ad0e963a8af4e3dee5aa6f3ab039345f725617ab1477b2ff4cc204ad6cd21d6ad6e1695a9c42eb2e0bdd6c6898d1c2566a607bf6f55355dd4592100278f2b6a29fc74a6e7e56e6ce3f5ec56073c491df3b1a08512dc5375d5eaf423dbbc08bc1a724eaffdea87310d6b148a127746f6dc3d3e5a4eb2f38b31bf4c88bc1e8f2822b534d51beb82d46dc23f1be349668056e04533bbfa55c12f5fcb0a227d74483e6c52025d3182482f7c485fa0b1091b19cc8e375a469b0098cc1eb1dab7d9e6b7133c18390dc07bc37176710da43b3e78844376054a8271eaa09170e742611143b486912d1ef7657b708f227a96951940b93e37c5e4034e927f58c221b8eef9c4faae5b8e835e3864eeb07d2f51f6efcd0faa4628fa6e1fc49edcb889f1b8e39f2e14faa228e7edfe4dd89043801cd433ca7689326185ddaf24edf7aded5e3e08873a4bea3c27b63bce91a7f52a9e54cc732d5a2862ab42dd69134f628742c9ffb3e3ca715996a767c47ca47d143eba9bf4d0bded68028ace5240e327114502acde512ece1493538d2f8112de48a33112f4c9f8c4f91c62ee8018995ed6407ab551bc6a7e818bfaa0374c821d0c9eefff229d293d85054a37b4307caa1d162d483f93354840fc751d1f9296a113d453d34928bc7293ec585ce6c0bb799bdf429762ae475bbcd7676d7535f2edba649c3bf4bc0873982561b2d04abf33114587b0d743dbda3b3264f99b39b986780dc95133f45fa0eacd897645d039f42c06e22ebd673607c941ae6ad9bc39181a51d454b3c55649cff3246d93deac2f7d8391cd30dc88dbdc11fd4a39eb22361044fa99f629ced97fd81c30757913a4f9844fde0e5d9cba88c215e5eea28229b0c5e15907397e695dc8f43ccc0a1d2942603040642fd143d6cdc4cc51c2ea9afbf5a5ca8f28740c986e4e475f953bcc61fb479ea93e607fb5db1506248cd0479e10bad80faf2d237beca53cc3aac860ebcf95f435f909712d69f8012266f9c0e5e63c8462431b806479178e523fa22d22463dcb837addb90e355666e488e5567101db83416844c1d3f6a6ead922fa7da77b50e897c9d5f4c61bc990931245ea1e8c0c367ebe781246bf8c3ce470422b90dc7b1e5e43f998132c4fd3054b4cc806b56c037583043a9add953d9392c23b323a85c419fa30767fccc8274201571fa80f64d03b7ad0fbc47a61430acdbf2c6979c88d183187d42d5be6a53d281689a7b809a23a85729b13031a8f6d7ae133c2fafc021490712d14637e5337f585a4e9d2ba72f85afa947e9c0a37f5f13834d7f66259572f6335544ff7d6775772830c2e8f61dd948d70d1c6601ff0e87de2fb305e365c0265353449b941aba5be360d363936cce5c4769360a581deb5279bcefbd98cb7add5d01324486f8b226994315cd1ece41a2405e1712d57e6784b8fcb5417fc558bb2afd25e89f2beeadfde1a4cf48e11e4cb48d0550c4ad2ee0eb1c1025adf98f553603808b2c52a827e7c42abeeb67acdfb150e06dd1d7f5e24cb68a06d584d92ac686fe83095f56b4990456c16387ff66d1ed2a1ec6b32838db78e02a3503448143ea0727007715d154af07a8bc9bd845948a75f02288a57f2bac03a7f9d0eec0fac0b17855cdaa0a4934c90af382ab6767c18e6dc31df4b83d3e253e2dc265d2c974c057bf112d1158d167a4412bfa8498fcf2cbdbe4fe3949bec45a613fde516427f1d896a5e047f4722ef8199adc4bfca451583960128723a4f438a7bc98df50e5bce0579472f592e5e7b09e6ee218bd603b50c66fb4722df47ba032e4fccc13ae2dee24a2804eae453f4728560e30a5c245ea3d7a14d1c919140c3fde6e7193122e95d70a6886bc9f05844b851132afee1b718e7a42ff7cef5c558e32ad8e542f603d612c343cda25d5d16aa1646e197a68b3c3d8234a347eb8126eedcb7fcc5edf0f3ad713c12b73a7f30395d769b0caded5f383f0e564f08874e357c39e510947c0cbc88c9dee58d97b3dbf08df4e06ab081d9d1f545ea7c14476f7b52aec2d4278b35ef6e3f53a3f50799d06afec5d3dbf08df27838b48976f75ec719170fd2d4766ec74c7cadee9f941f872327844ba3aab612f54c6096bd9c7ecf5fd46e73e116c64ba0729614f0ec7e5b314a1d8891d91d967ac1a7b6154385d962abd5170d94f1d64b521e2108018c156dc5cdad3d8bea055824536fb59ef30b3add12d7dd73a94b232584740f1052b6f1e72d9efbe46286b4d804e8187d6e92d58f064777d44ca41b9449983ed29ea5052b5217eee0baf527285c162f41e9095b477be97d76231c2fca9d1e56b6bf4cc57771f46401c46ee0d23920ce3dc0be32b0ae37a4e183defe6c2e4f92da505b6a10946e407c66904c6d70c189761deb1e500c2257f51442548c3a824b68e7ed152965fccefd57943f4457a3033d467592f66e51ee392719b3e907cb18dea2739843ae1df77de7af12b74b2ce0665465c4c99414c27f0bcf69ac4590f13861a5ea1633f5613795b5be04099faa15f7aec59b268cfd173aaa009888038c16c3df52bfe4c5715161c15e1f71668d08f2e6727fbd3a21019a37010bf65550d73a24869f5ab0982bbe317360d8bb5ff180189e106ca0234c68e06889f1edf3b597e228617e316c07449ee0c43d68f052a60f487eaeda9af6294c014bd710caac4df4f4c462e04e6b5743e4eac4545df818ded5e9b927ebd1cc160b0901f7201daff76c5f87c94f3627a5b7b878d2ca7c027deff4155fbae727da827db64cf2992d9b10bf47ecca23801ea607b4ace41f1c09ac31dea535581680f8dfcde88bc31976e73403e77cb4e15cf6a4d9e2355c7e7b306e065b41747804f08ddd3f63f76a18b1d4caa7b2411e046bf145bf4eab2d7ab64a11ed864f2aacb90ab719625af54796e8a0dc600d3ed12d9553835403444b39f3e68eac4e71e04fe3e0dd052b4fed5ee65aa28daaca9eb9a871999a4c7344f0ec332bc59447240bcc193252a07220d7d4ed2253d86fd05779e89570afba0e9657dba7d5eef0059b5b6e0654ce09423488e2e3c5ccc6abd75babd4c8888a9625e9e00dde99a7a99cdf4cfadf2c717ccb2d7a5c51f6201edc95ff25d206c6b5748812f59c3e48ff38ad2a1668f009dc1389561b40cb0c29e59a6605170ea4a9d2e740a2bd9623b3a17f20a612b756bebb04a3002d3507b9c39ad5a59ecd8de7ddbc516d2d72eb946b9e7b6701ef52e74fa44c05dc2e5a19e022e8fd0b122eaba0eef9f81d0c99dddf463d771a26ec1aaa6a3a773e0141e62eb7438822c2c86d7d23c66f3f37c010bb56adc0b1716583c890af517f05118204a1950871a385ba37bdea070e38065939edfd50d96616c4d437aa66177384013e522c9e40123cde09a385d5513f2a277f68e8f0967c62825f6e2a3c8a0f509d416b3dfa0c35091ff220146b76099f582b1b5d302f43d5be1f8ca11a007caafd5f3df9a8959b3367a98f8593d4055f6aa0df43c43f10b20abc1afac4250c4bc3702474fa29f950755655cda869e4744b1981f2b4d64d61ef78e39509eb88d08a6bd82a0e295fa24810bf6622384995bf32d146ee4b7c7b227853bd670ac4c4374d262f746ae195dd7aa198c857e3c9268e241deff9e1fddd416341ef6460f659c0fd9923f02f1b2a76a31c93e05d1cd4851e8d03ee43cf70f6131b5d2b81489bd27e1447db5b0d02d198bfcb76662d6ac551a065de04ae94eeae9ade7a95bbe601d3b9bebca2f612f492496f967cd04d71ac2b82554e8119bdc99d7d1241a6b008d080b86f60753c61d422ca9b1d137e7a560162c4330a3caddd10be1cbbebe5576ab603ab720ca0e6236d79b40eb37855fc2e950e3c4df7d22602d4c4e0c91a6646b879bcd799076c1456b43e16375feb236d156dc0116e63e2b0e54cbbcb4d11a0f48de3456b530fba69cbaf99e656fe5fb28a547c72f34de075e3ba603ab77e9ae7daece3cd7d9c97c49804e5ce0be0f6006e92730bf0f4da9f735eb7ecff08db6539c0df0cb26f288419a6ddd59452c67846edd2b10691d72b5188e961faf09beb1443e56075733463d9b5b4ef00051acf0db8a135a11271cd1ae70a428cdccdd774db75cd660b779605d831f40cefc6abb7dd78326b9e586a921df3053e5061a8f24ff55ab9bfc16d47b968f2c032b4e3c2b598e7cac3d3381b2068d2d16cfc5daff60e956fcf6bd716cb8b57c56c95f6b4f60b537bfdb5000a1b60cc1b5f260aaaa7af5095abc0170c7d8be86741958df145d1ed147b1adca79d807e9c15876ca02384db0c6c8ebc75ca28ca4d820ba86791c9bd2587f5e111e4c57dc608f648b1d25d8455bf6cf4f2c9907b039713b78bf2cbcb14f954dbc0d9dc6614d93d946d00698c56b9f51e7825b56b4977d87c10522a43f68b9e42ef9679b4efb23c3fa26be5917d03d5c48f27a6469e6992d3c3f3e2e3a4b5901fbab1cf870cadca233197cf8b8b1582211aa741b4c10387e89d423309e36d4237dd97ff25f89d7ae370d8142e91d2ecd834bc183239ef740afeecd6024b75552c473b03f745253c05ec2cecec9bb750436f69d93ab368bc1f724b128534a2c883dfa516cfd4b4fab2917ed06ab6a13c21a0aab4ba7eaa517374051a21525b91535a41c318885593ee51a17580e66859554b673da8ff34dc89e2484a5c4a2b0171692be5f5d204a0f2fed0cabb78f78c06e15ee7df9560e0fa5cf8a70219ea6c4b675d36aeecc5a40cf02526e747f7e51845d096a5a1f7f134e264c10fd0b8bacbc079c7fbfcb03c2eb0dd4685bdf7003555f8420f4586c5ad0220ea93b175954411749f11884b6627e8f19c57ead6ac607053d24bd8e8099a184618b88b737ccf43d901e42cae0fdffe2d46b998e7ea94e7ae144cd366a96ac02f60290d699bbb7e9d158cf9c4198ab5007b56bb63ab3a6af232d5bade6a8bc7b65135edb14296b9c4b79ce21e172dab3b1976a4404317eb77e52bc0438c6084a4a83146200957e76f3576ff92927a30e55ce092e1e6251dfd40d561d53815c0978d4c2274da4d04ff33fa430ad11533c0964a5c9e9d980028139e4b4950add940ee68d23c0ce76283973dfeaf0091ddafbf227ebd32094565b1b44061ef65b4ca9c45576b5bc9bba8c2e6100b35c0792d0ef203e34a7a308654be09a0cef50a4054c347ad0f50df5e75317eefe4bbce0d4a9e56e8aef11b595e281ddc71133804d1dc1d6c0f00a4742585dad1d71cca0274e2b178c094bbb111471e797040c21b42d97057186a2290928bfc584690743b45f27d601a964815f8348125a31efd5b425890e263b2193ba3ea9580c7fed787cb22212688ed95fd632b35bda28ca245110dbbfd164e0463708ac201fd41a032255383e1c3519c055783b1247b3cf50772868d7858302848bb6da5a4bc45d6b01e3d73a647e8a469a27f989e526c50b0a2f36c0e8d028c4b8cb7a89e1521cb35f95453b8768584dba78caef9046809411763f24c1809f20543c1a14097d7f4306255fcc37c894730f85c6c7807edb081448f139ebad37887586406cf449fb3ffddb3e465faf904e29dc031b04e4c63150e905cb9c3ca94d69d7672af8caf25e02d1ab1922d91ff1fb3122fb1f7da2c055a60007361191a3c87bcee9a547b78edccf137851fcde433c5d004c0744875c1303d86fe9d79de72f053b618218f2a4973eb3d1a1144629b7f006bce84048d2c2fe4f9fa1bcd9af3cb041e0036d24aae78757d14de71d225cac69e541e4d0ffaab25ea04474fc7cc6d43a21283c8d53a19c724af0b998446a0e861db63f95f9472576b8132376bb6d3298f46f5a67a97f33ab0dbf36bfcb6523e2ca441ff45a8d846d0775494b23b83830cfcac4ad8bbe18b9c98021b4fb2f42c6f7b14eb367a7ff6aa2bb8984a7062323f1e606d62b333e65e4cf83bb9ab27f804eaab939f8c1831f70d8c1b64f5b8e075d1d49fa9c8b5508a3f7adbc1111dcd61a7280c7af1e7a80f7a29b540c741e92574e5357690a53e0755a0095e4327b38d311fa2ee95495b4dcdf2f7e774088a7509febcd5de8bde1fa98b084fa11e941dacb147d71e7e86b667abe4725689d25ed6b6cb4a64cb3d137815d9b61040aaf0411e57cef804a2f0e7e298120c8c23e87a2c3bbb957962caa09513a7d4d1f4ba2b94e8d6c41ca4d139aa774f8353d07b1c225c8e60f7cbe87b55c5645fbec1e4bd33149900e328ee783dd82a3a244278e003495cdbe7a0322813170dba23407bb8d901b5d391a70388f67de09d01afba8de62969ae600833e2bc2bc9c9c5af2e3691f537659fd00a0856c382a6af33f05425f8aeec350f466700f241ec550abb0627585a216588a70461d568594f29a67902dc0249a9a836ef20907307978ba94756d0f3f2c30259bc08a0504d700a84d3b6e7316aadaf59785f958048eed585cfb94c00523cf54ca1c85d4f95f8608b099b36aa56514aac15033b33362aaf258972bc7909df804a09abbc6a3dbba7b71e5c741bb8acda056615927a81a12a5bb44b0c38aa5db1dc83d253a720d69f90daa27903ac6adde9381b9513e51c845785c618365571b2ba64b1944a520df7b37d073e1f48f416f2e41c5faa1768c8494823403bee8961bd5d6707becebfb7d9ebdec2f1bc24e323bc1b274d305cc186859d4538683b01f08a9d20b795add74a395d739a0f12065122c83fbbd4c63842d241db525d4cf8f9ab831abd62900e376f02c5cff334d0dd0c06da9f08529413a1eccbc27c6ca5265004e886b19bf599a2919a385ab3401c0447595cfd47296ea7399938ae61b4cc1ebcd5ce945c6de8f3d74c2f8c596bd9cd1f0b2a8b104171c30567eb13ee7a483c9e640b13a92eed35fec4412d5ad16185a6954645c24ee238979b47372dde3fa987d54c87f82cfd671d233171a73b406f927353a9ff9044bd1087a141eeb3d418c52e68e090239730bc9ebbd416e58d893367ff4f44588be4b9ec58314fe54bae474ea96ec176e8400f14af52f1e57bac6b680c67fa7a5b17424be0875f706f48351056351c6781ea0eccd869382428718edb24cd6b119dc608d0be4894896441a28ef7276ae815230a383fb36c1df8b3fc13da5e85defd71871c2312e8f88c1fd214f9d35c819dc052bba99238e236965ccb2a709cf7714102ba002cd90d523797981c25374e5d64cc6affb7659eed1e7c40282e04a642aee08dd717de0914431181a536e6eea3e4c25d15ab2250cf442cd99664960159c0dfa6de719cfb3aaa8f9388a73d1a5a95a55892d2fc677ea661004350511cdbf8d3ac6a611922b814a413c108be36ea31387836c252eb68aecddb9d809278e4600ecb3529f537d8e594f35c1569471eab176f3e5883c6440a4439dfdcd81519355c780246101d036a7e6d52279a4e4b30a412562dd8e3a44216eb44ec428f870bf8617ce024a97c2972efa6780e2055ece826431b909aff64529fb173fe5ff1fa1139d57ce926c87a285edd1056f8a5300ca63c3835b16419af7035e08d8d562c0cebf6f6a2051d03119d683e0c5a0acf4b306b6dcaf8ee9729d05f5b1957d038c2af7b6fac080ce4e98100f6b47cbe79aeb3a779a57446118e4ccd69e2ecb0640a58414ab7a1b5b2ae9adba6dafdfd6741480402ed9d80a0dbe9c34490f267ef2d498d7084af1fa00d63166453886bba0df5b26709fbc028205aa087ec2aaf16542addd45d9147de8241bc32896dfd7dcd7d923d8612a61216c9ed428f1b723a68350ba06b804a5f54e071a0ec889f2dd572f8b9f8ab54687287b9d557d3868a41b05af5ee1a30b9847f4afca9c3c646e4d7d645a9d1a6f4b6970db88ae81db823332f75e55562e0266faa87d03236348476fa0e229456ae3410a35f514eee9cd70399f776ad970091bdf1ef92a372e6cb632d8fbbf4e9b2fc4372c999e4e25eeb46acf36124da3294bc4a7e0b4adfe1b24eb8ea19a524cab86b99ee99ecfc989b8a1e4aa939476a0d8674293d8ebdb8177a67abd089d44a8a79b34b32f3a33d1b9fa49be859eb80882fcd62678d44dc5aee708f11069cde845b27c7b65bbf34b28512c286fd964e7e65d89e11b2027512d431ca35eff7999f7cfd3dcc63bb55d995cbdb94c06c23f62acea3735c45a5fb5195f1c2d614dcf54e6fd8a4fae99970dbccff0eb8a9762e551c5589df8aad314348f03afead27dd3e5356611a9912cef86c537f3123f91582328e4d9aaee7f9a7906acd654742277a7f05ca845c862d4109355f71b166f5e4a844d1f010b9309e9f3d7b1f296d1c27cbd0bed54bc9a398cd7e9a6ab0994c1570a22993314e2ee1e87780ab70a1c5e0c53714ca8b94e985d79cea3456af19fa48c39ec3125147b2c87a7e31a63fe25327ea0b2a0b303bc17c4bb4de1021f5a4e795abbb2f1a4f64733cf68686527a76065a3feb6fae9c897c2c09f2b42760e1cf17422f10c5a76f66376a6ac74d2593a09aa4590280c7b483fa6bacef0ce917cf5e32575787a84f8528f2904e21b63619491e36634c9b0575929a285764d263a196125eb0fa996f0d46162fd36cd7db16761281a5ebd6dfdbd8b8dbb5cbb7c847648c7e8369ac7dfca9a3ae63232f8a79ce54c69a98627fa443c4da4e16c5b498b783257c29e7434b93e42feee8f1bc79570ba15e6c6189aab53018585b6415ac8f95b07c7e9a501a3c6cbf7aa1695c4a7aa6c2e264c6df523260a1cf68f0f1402926a6a795c8b5e5bc2f7042d0305310e2d0a4373c3086451b727a5d9b54d4598889fb283fff65fda9b68b44521b195d7cbc1bb84cbfcd1ecc8f4ce21037877deaeaf20eb931dca0cffea454a3ab9869ce6bfd650b43397c4e3afe00bbeae268f0e55cda98eed7cd5986e9e74aae14f800bc0e96fd25a60dc2d6b6b59c7e8af754fae88e6395c5c180a8b8621a12fc953f533d9272bf8e72a13a58cbf039eec4086d2d1edd799f5a68e9d20832332a05f13a27cb000f9b6f5bce3413f7b64867a7c05a6f649fd3dae545455ddb8a66c506f4f585bfdc408dd7c7e6b96c2801b61a31decc9a183930419fa5493ee6fe820d85a996f2835ecd3d5329f5919b5bcfd9eaffb25eebaf7de492c59a228a45b2557b531636fb4f48e59360ec7f7c4aa4c37951fe0438d84573a3f6ccd653f1ae0ce9eb12bdab98e30876d0be46bff6c628167f9030ce54648c64cc4b51c02096ed20a49851aeeb3c680d3d8734435deb18adf3be6bea6edb935a2124fc5160cbb13eeb55e57f64231d8b18bed643fd90474e3e2a4311a86f269022585562fe0717ebba9f6725787d309b5596d2709a6545f50ac599727e2971bd43870759232972c7c49fadf906ee9dd411a3af87365dbb2d1ea39c41682632aa5014fc93acbbd2a8acd97720b860f25c9f09fbd2e2c1c3a28818ef6dd23820effc0326f93b46abdbbc4a5f38e6cc99fefb4f0c0177528aba2ad1815465e2e533f8ebbe4f8b328c45fddcb7ab7fda4827ea83e86b621d5a0e1fcc8cf02b758f1b472c5e35807974b1d7cc9f5de7169f0580d78a4f0c8fb0d8e766f938d7691fb7689bd225a9c824e82a912ba9a5898652ebbc37b90cb79899b30ba6bf90bdd32af65ca241d2885834c693ac8b3cae9a635ed0f74ff3ae29346e1e2cfd65f678e60643dd9ccd4552280c1480df6a755c5b277652389c3bb17dfca2265fa71258ccfe02c91a2363a22884d954b0ab71974cf3f3d958d7cfdc44677f219be61b09c894e0801fd8a5ba3ef585ccdd0bcd780f814c584fff874a21a310f1d1bbabb1325d74e771863c09690c8d40160465ecf98118a327c6b6e8b30fd744a613ed807132a6463f3439bf9e3f47e589e9a42f00a70473323201411b8c30eb3508720e4ca04cbaf08008633f188ae126810250c86cf28c636a5ce342b59e22c7ae4f494733ab03dd67593b8336476d18a6c917ef0dd7263b195a0748f16dd884d69213255317c27ae624ddb465f085b76f2ef71f631f56ca4e99d03de891c8fa6790beaecd089bddfa8b40e34f90bd03f05a5abd694cf25aaecaf75c1682ecb0d1db4ddc66e471c3693155e7279bba33de1a2baddddbe25d3d1f3949ca9c2a987a538d07f8e6dbb51c82f5e133e6b91b1158ede8aea996f5b033e2343e9029387cf0c5d74be48ac3d053ebbc0ae5c6bca90a0675bf5bfb4695544ab37d4e88d45bbe112bfc5c8e887815a2b896575cb50c446abed078d4e52735acaf5aae6522da74a014533465f1bc25d7eb44e5599bd0a37ec4e98f49ce33e8de332fb46198762711486c96fc44fcc3dad45f5e5183ab6fad8bba272f0159e7ab8d240be61fc24b7fbbe93e41b2a54aec57de6e8ed9e4d9c6bbf69e645007afecb06235f5c213e567843f053567ec97d706aa8c4df6054f40d9df8deadf5392a0928e25885eb6adb4e2cf4af1d4de89a219c70e6a33ed1e4b84f8fb4818dcacdcc3106836fa2975fe05892c54aff2b939aef2784a3aa609daa939fc4eea879fa3833a2c2f6d7fab5d2aee506b1cc4bc734b2f84c2a21972f3a5c3b2a9c526eba2036899f22e3d202479a9098b5ba00c3999de146752398d78caeada62bc36e49d0e7956644b23baa8bce82de168736941d94eb15db30f10f82724016b071b16372c1da0c4287004f68e7f457e17fd7a38ef41a327026f48d3a306c0dbc3e9c6c34a0213832619afd5582b48f548ba8b11142e06efbf801f1209c97b3b0e9cc87539eaa3ed938a0ecf9847203e3687165802c83c7656863066266cc4472a9cd06cfd93c82d2d47c5dac04ce6b1683cea98eb310a7261022ac502af7d17a66bbe213f2d1e0a08ae4217e3143906cc471445f761d524b47fc54552943551e3d356c3155af591997bcf3c2aa5d8f0be2b32a6ce825f07e14dd73c4f20b34eee5080da88dca3ec2ad6c517556a204750cd8df39895dd0232bb3bb51aaa1da6bf89c755a8dd34e47cbac8c5ba8169d9b25c60167599692324b835605c5c10cec6b3c07319a7f1e0b80787446333add4dea03c306fb110997a434a0187fbfbb4ca9858c8eb9b4133b8f89a49b9a0d106ab4c3ad3ec6a6ee4353462267b40eb10d6aecfa0e0c9af47d8d49c3a149f5f5ccc05c657dd2e563c76b8323ab327b46d9b802dfd5ac4c3a2f0226bf8769186b8a825325b649c5ea4e035ba1ac889b1759fdeb2d9bed480e4e5a1061759f07ef0e0140b86b60bc0870c646fbf013ddd2c8a37c9e20b5460650c110fc3f9291f6b2bb0704db09f9518570556fc2377242a3470535994102f41fe3d8f7640477f5fa5c119b0c48d30ff1d121bedbd9e75ed32e3fcf646749c9b74666a6a90ae94a5ac0e4bfedc12ceaa0b38e8e2b6e9787b93f19afe70a546a764651b08ff29d4ad9c1537e722a7b5be51b6565695ef9c3b16c822cfff61dc35d5243ae9d5ec9133d9875aa79f92c34f05d652ac4abcd6574f94a4f191493defce835c6d0d6b673808796b084f48ef003273f2dc4b3d328d0fb3b5de085c01d1a32d865fbcdf2394b3da8cd861883e729d29d51ff09a473bddf4e12423f551d435b2117887f767821d0e58bfad88c4f87ff164db2e67cee8c34d96787f36315c3495ffa46a0998bc6d52f7c60db61d8640105e65a34e742734f51b8a2b0805bc171a02bd0e8107ba96eb6d081a3fe19302f2db342df14cb43d628fd27693da4500d501baad387f27a58da2a32b8f10c0df9bdec76386fa600bf084f95e8ff35d11f9055b512126ce68445387a6ced4c99f03a76e3ce1405c55bd2c716af031e4d86e38054c54ec9af3f44300e4e693bf1004d2cd8af2fa45e7d65edbf5ebcf17473cad9b9ba3d8f4c9d3a4ad6845bea3c1c822a015725fef4dc58e6fe0286a73db9d4dc49558d3ec5097b7e49a8bde33b414d72558a28dda46a6c3d3dbd31d042f737b23ad1d60ae54cb95914b4c657670a5e6cb25989a52a41dec978d9bf4d0ac17be1b9f789ee8f84d2dd3effb6f9bb6dfcdbb6d494ed627d1ed2788fd7ecfa5dadeaf7c47dec460a50354f836570916735ccac08b7ff197963002fb0e3fe6a33326589b17abc28bc0e24e2341a600f4f32597e9d53d7bc33fcaf49c9ac8eab0e6aaaab703a078a85563d41c1f57160c722c21e9b5540af2424b836aa6ac1e805f75243e2f9fa4326af4063f04be178c9e3fb0ac1c08fd773551e2fdb0691d4600def252aa9044b6d66a5de95ebdd83f1d25290e3c82d2a5aed89918be3cde7548becaf729197c8bda0587e9516e47ba319965b8d75d3242db88aba6abfd72ca5718ce01ea52a781dcc7b1c1335f72d0e17c5a0e105e041175166115ecd801281cba7021902835724a6b200964b97971a4c5a4572ff85e665e87cedde753aa37d460f787fa3978f36e763b98c06d10cdaf102f567f08e6aa02fa9fb7fc41a47cdeae1fa78cce5f5453d57a22330131afe84de9cabd5236147ff4c181f4faa6692377348ac46c2f9dfdc8c919d3b11a43efa60850066cf8084157f3427ecfeb3b1c8cb13b3e526beec11a2670e9761b2ba10bdec6529bfabfd8d335d6312eab6c8bd94c565704e7cc7727120f899955ac066bf8d32b5ac573528f92aa463611af9a816abbafd7deba2dc178c42044ffbf73738c28c48fb4f0571e200727b4a0db2e9fe07e41802fa7582bd35bd99a2e9ff218506e2c94ab01f12097352a5d1a573cc552ea6ade041d83e27c474ab993b1b3408bfba160d06810197a8a7710e7ec238904399e916131129711082cbbfe4fd800cf28363613d0b33f8453d44b78bbc287de383673a8408078d9d477599cb050a7817088d170aab5b8816c0a61a56f27940e83520aa0d3bbc8512484256eb9453ed1d650d6a09f4811858ed6e8b477a4e6b39dde18ca2342b3aebf86aed979340498f2af002e6b4d85c17bbe0395f73e3c5e3e6d482bc07cad004203d9392a0b12c6aa5162244a94a2aace447c1f09fec81b0bd496700951f977068365c4cdcb3eb74c80fcab44aa30f45e0260a8fc3db9811bb23b0f1cbc040421a2ce28c3de4016356625e864b77efa761bac4846c6b7c74e2e97e9ff89a7f19a61d142ff0ea4a86f4f6814ffaeca33ebc9ffbce30a5878d006291d730c4ba079a33c5b968bc7b718eac9087996098e75c184b5018cac845bdf01b58c8b7c1a3ab00ab42ccd4022fad902f73047cd94d7c3ff27d93b791f444a958bfeb9a54e320acec100b1ea1b767ff8b859b9aac33e741c0b6af14b4f9f98ecde5ee8a55078431c7cea61ab7ade8c355306abac2b514d235918819946c1ac625123f6a2ba5b4f04a7d0621d25d953fde645c623653f43a04dd89de1dc84a200da3ae6c6b7238404a32c2c0e4cfbaf9718eeac4596fdb611f345d43b619446232f19f472de71e2ff220956c83a536e752161c18a80d2807cac0c6c23b8b82903f852d2f81a148bce8d3f69f86bbc2fef3a057db7342a6be647cae5d63b5b2fbeb8e1f0f05aead63c9d612b79b44acd4a1fe22aaae338fe1c219a7fa32cce0be0d1081da215555b11f4875483cbd0fb9f2186ec7b1323970a5824c63ca7b406e28f597f1c4e85dbcc3b6c5e024971f87c7e117723583f9bd86004941aa21a53bb3f13a75a01673f247970f0e14b924b318b291a20a762c147cb567a04191ff30c09146e1bc89ec7e46e40ea3c6ad63bd0ee1adc2f8efc91b7cdf06d0537dfefb86a515a7a676b1c3af107ebd9697084a504cb0d98343f596e23ad739de530f92a716e544c85f2aa01e226d4e15f359451d7baf5e5197950d242766c610bc0010a94e4ca5620ccc3d4df386392352064c68182b71b6984733a7402a8b2e15b2d488f416928201a141165e4c20419f52d26fb5ab386bb6413ed47bb3fc1f61c5623a5edc139ac1cdc0686ef2195cc2522413a4420700d81fd1486c5c97810b0279b761de14dc35742c11a5d29693665a7350dc98d00d7c3cc325a3d10ea385f4288359e541db4f08553c87f65d37c355d8ce38c9c806f7c8903cdba6ec426e2ad26084908290df2002b574605c10018a9d31f47912133d1b333d323cfd0af3f06c0bc60ddf39b20feadca4f7e4dfa32d2208e92b79b5d2fdcb1f2de7259159eb0f8cd758249fed36181e1b40797b0a2087b3c46c44550cc521c8b82534740be884d229e88ff9540df848556fce11c731d4651ce85f1036f5bba3fb17bbc396d00727e5cd2675e51dba6044d3db02ba554ceac99fd63139de61ffe501b9eb6501a0649eb49e3c83d73bc6bf2a8e712e6bb47804e69714f93bdcf4bb2727f1d15eea9968b58c977d37ee25a89eef96a34ada4304a72ab14fd40b117e42829083957b151c69c2e240ab90fce6958afd595c0cfbb15fd79db993b38fcc1c304b475adf1322866fda3283f3e47a2f589270478a4fea0d881b36106318735738eebc26f10a7aaff0dfa6d51ee25db3149cbf09216801ebba21de80c530240ae1d1d0f9a9adc8113ad50b06e181aa1cf699f0e4cdd035f5c5cb309d48b48893f1c15cbc20be701cc8e93d6edc16e4d21a160f64870d48859b5b000f5ea9363f692a00ceb677757579a6f825b0367fa005ee9b742056f46028954d56209d2b7a80e95c3c842f122135e502ecc75e54beef5ba524f19f8bfdcaaa70b7a431c60fac0ea183c3baa6464982cb8b988750a4f950f456efb367842826c3ba8677548a9457af2739307119d2fdd011f145c786673ae8a1f315dc7ee21f87d71118a9312d07ddc40813383293566e27d524ad5dd8d8e5bd36e9bd002644f9e0a1dc235e5bcad06090fd491cfa43477f0c5f27561b8d08fab49725866cea4268ee969fb5634eaae762c9e30012307ebe625153f32c908b827924822e5de8bbc0c0fd66e07afc4003baa74b724690197c4f4f378d8ae1674f33a873abcaf2a97829b7ef86f8b1ac43649d330865c9271db4c6c6f6adef84aeea3313475714ad021a80961c78bcd5ef047b85cdfb761e7937ee11862bcb1e053bb6a24fe0cae27078054e2877b523f895a10b599ea058b7926465cbbe53f5722283b308bb31b0d4fc22334e42d23a869c43533810c89b5f8a6962d44a1ecc7b3ca5cc5f93949dcf78c1919a9e70b2715cfb7b81891a4d359f118b47afb9e454dd432b4cf7d0e289eea195153fc1730b9b5ef89615b997f33289126fe9e6612dbd1d5431c70506f32398856df30e0b2fb39b4eaca965b2db8790416890ffc675074edf2adfe108d1cdc3b3fca34836ceddd840fb5c5d68abf02c6bbd906ace8569ffe0934c810966f9d7a8df876cd3531987822f9930d4006a9664d3651dc8fa0656cbf2181df23a73cb8ac07160bd6fb1b5ebb5e3200be69e6f945bdebb1304d6100812623cfc9a5f63b7fd77ade4c0daa699bd19449022387b5ddbe7fba8108b0df02454826648dd21cc60ac576f74bedb31b4133e2750f044b03070551ff2aefed6a4932b40fa0dc54b6129a8a5efaaac2de3f4224012d9e9001e2370f5061ddd48df5d35bc7e5a23d23065f566ab08c76d78ecfbbcb2c7a4aec5e9c64d04c5b65b9b7b5bc7d7ed25899006fd1e35fc09009b373db7c1add3309af695af4043885d4d619a7f2d705a01c30f756ffeb98a20c8adc23ddbe6548c0265e37e8ab7139e4ff7089b69e7f4763ce259db57fe1f7b7be3ec02d2062ca724c562b4a9a93646e95e84ce3470d0765fdf6ec8797be64aaf7a10708221295434a54404fdf6ff9ddb30cf69d4137b01d8d1925c684f88f3529bfe2cd81f54080095186941ae653e74394664373b9168b331714fed135fd27f4a4011e416c74e437acf70461140fd11b46305de4b84070d53205c154d73d97061298338c3955571a419aeac8a8387d8b0f8e00c499ce1c27264cd3bd5916764f5812a0054804807b8e463296df32d73d9c45feb243db301c0221b9052c7ebe3dbefb5bf1b69dd444448c80e2c0d8f0c050d351a05f37011778110c22215f67bef3dd8f71333f7909454b8788316424a2ebec3576fda2dffaa9b817423d12b0f33fa7a6196de49e5fccb7a08c0c74b55512aea51f024ae182fd31e02c8fd4ace3b4f6f755f2b7a379c00fad74d7102e857d52d5ccd54f2f46ea4fca21348241289448a558cf155355bb4a452a9140c8a5061733fc4855993033980a6b023879a542a55851532f7b5138c41d2c8a8c209ba6099c8940d3e5c7852934aa5aca8c172df2387984aa55231c822b369431127a9546a05459650731fabc21fe0a0934aa56cb08329d49a27b953a954aa065ab8a62085224e52a9140b58be6051a10665d049a5522e1003cdfd4a068d934aa56c7031d1729f66d136a9540a0675c8dd9f4b80508724a954ea063be00328f725145e4d2a957a412a95031570f1924aa55cf0540a06d00a3c30c353a9140d8b0ebaaa20e9ce6ff1d5122db2c87dac7750d5a4524726ee49ca126330b02e6f31bf2988a10f19d62c213796840c5246c52456c4505d570e47fd24a9f175cb770f20e36cf018431786c82fc608f10e13d823f34020cac19c1c20409c171108746dfa733f1a4984392de71cae2accb9cc870359c58839267dd7a7172386b71705cc421c4e6e13549ceb9112c8fdbc421afb79541293c45be5ecaf29a443fe1c36813a5109f686f3736804d23479af87513617f9f3be79bf1e657cb2e3c4ba9cf0f38764a7fa8434f6bd52ecdd8fe73b3a7a3e07d227cf3f9fcf3d0fc9839ebb1c0b4804629edf3097c9e8e4cde96c90e66e6d53a333ef8ac43252c00931c4d9f976ae9c0bcc9ea70df5bd0bb3b044fa2d519d4b75ce391723847ca8cf89752258ca79b3f239b110ab4eed4272c9f1a50885ea5c581ae608118bcb2d44d568d3ab30c5304f9ac1c61f65389029736c9652ca476047eba1d65802eb6c3829ba54925ac03a7948e710d4faec43d54f4c4959458e324736d4faec7bbfe788f4fb40d3db0434c1f7094897e0a77338e08f36c1376185ed6fa492bb0b49ca99c9f47b0fd68055652d09556a132c391b32b0fd0d93a7f817637c2f937f59bcbcb442cca54f7d52bf9888a277a9ecee044459b874bd98889f0bde0d781be38bf1c5d8dd8f994cc75286d5d20b4b524017bc1893bb81850c91d829391bf09008962663524559cac13e52e97a533b4fff639e569f24eb135b0751f413bb1ff5b3e20a9ae075a16853ff9d12f262cdac334f8b544d27c6aa2ed5c4863ba872c5a34fdf1d8e99633ccef879973541c5ca63bce6bc15d181a45ce540481f7d473b881201117ec4f8e82258c12bf62a32065eb178458417a0f294ff50c129ff31fae5e5f382c9cb91721403611f0da4f154241210688af7e4647b071bfa8e1e5df47828208af40851ec37983f248bb7071261e76cd4e80a3a682a750974b7e738e478149753cadb372cbfde2c395c294eaec831e5ef0ad2e343a9344dce7bf73169537cca7d4d9ce4689dd82b8a1997e9e753ee522ed6a6d7a6272acd0af497f3f877d444f68322fae8c63641cd7eb6a7647b369bc5aca84befee51a04f7144a2795cc43f58d24707128146a53c94cab9e852bcca7d386d8a377eb0b14befc68a46a5d08c1e512efaa84546ba14e3cb41b9db4392a36cb2e3c5a34394d8e5f724fdd6b8c2d05557d53e58d123cae39fce23f5a71f450ffacd76299ea54bf1d8b3a35cf4cdca8d59a03b88d26e15454fa74bf1e590c16ed6551245cc9f1ccfdd30272880679c903eb9962b7d975decba2e2fd6998c7536a275365ee7cc642a29ad977272bb1cda330f56deca81b72a195fec183df2d58d995ed75b949fd2d2c808448db9abca5af8e00b8cb3305b7431c360dd7b3c6abff65dc0021ac26c26c21863742c1ed75dc42f221d6293f8456c129d442796655531beac077c842fc94b42071818887210c2d24ba9ffeee4bdf7056631a50f49cfc708238c30c20850d42e2c6336539fbdba1c9fe8123c05ba042fe4ae4b56555555e6f9580d14ca960069d1be7fb62322185b7492e5296c29b35bc52e2c169dc4f8c5cb4da49beb9d8bd572a858eb2b8743084cfc227ef16e48479a151119d62fde8d17bf70e2b487656149db79b797b779d1e3dda2c532b5de1f29f136e4ba5e391ca05fd6c2db93f5319b91f7bc769344a2cb32aa5837a5df01b5ba24bfd34f3d855d6b7b2ed6255885c166b86daaca663a4291d8b1634ea89794899aab7cf57cac060a8950309a21a05fbdc7a7459652463a08ea0b0b95ca18efa169ded93cbd60e5dd0fa00484f1883cad47239cebeb3a5841537c75611caafa7c09a22a2c6ad33c9ed3621cc884ba81973de09e5d911dae9c8d5c3b63a2f316825cc9d48875d6a3ca554228a584b2e173504218adcd9edc78bb4026d2ef354d7e773996c06e36df5784c660ab724b01ef9a0610d5b94c1f169c94524afb9fbc04667a58b1648735d62fba483d5897e4adb32c4d255b525213d8f8470351454878392fb34b49830a5d56d655ef5a07e8d8330c6483c9f2a54a1a2ea294a5744d308b943f8012770927afa64b12c279a7e425e9927c496a962481ae9d8b9c44aca65da8f3ce65fb192cbd3bbd9b19e85fae5254064b65bdac5864557f4b6a8ca119b132d5d54f7ca87a57b112d0141fb185e56025cb8659f0eaebaac0852ee4ebaa24615944e8d78651ca381bb38b9b2ee80e16baa8c98d8774967136e26b655d15eb2bf243beb287338c8b1c3dcee33980b3115f2126af145d8a87778a977a54b429de9281b052bc54e3ed559163fc134a44ab5673471c82ed6cfd7afc8da4ed8744b0f09bcbce467cfceb8c3757861c1d1872dc9c1672fc66edb0b01986857f07106139beb31d7190538978b923caae54b0a9c9f3d52db15628b1da4d9ed76e204afbbc860351f6f35a0e44c54f21f2bcd64473a2ddc1e1c02ebf693eb0dbcdc9f337e7eadc350841e37094f274f4b91d6c2ab197920a834aac0f2c3dbde5beb1dc0c91596eb6142579dedd20728a9294544cd96d9493ca330aa39c3c4f04113bd5ddcc1a206f3fb306c46b98087b6ba4a4404b609fc5a991b13824b09badc1d9ac4d626b200a89c3917dde06c1e1c06e6bac8dc98a36cd2bf2cc3c1fab814222a8c4c203207b3e560385442832522546fad403c8288bd3a6f99c3cad6f35aec8d35674ca083ba7bcefcbddd7402111ca2845009a65812c2b645922cb42b1ac9165a55816c9b28878522305519d04113b44ecd43052a3265ec1461fd8218a1051e370b8c06f4234d9c0cbf5f1baf56cc65e617360459f2c237dba2c187690e72189e57ad79415d996575ba999ba261579be6791a982c9822b499ec7c9f3edb9f50d54ce46db32b8989494c5b15df4c9f3799be3707c524a70863c5faae1f9e75dbaf589a989a981164602c7f38fe5f9a4a4524af0b2e5eacd191ef23c96873c2fbccdd4ab5e43cf8926cf9f6870dc381c34f2fcc9c8e98a53cd05618510833083d003e107420ba106a156230031353135998827b508bd88d8b935525d9a313595a6ec46c40e113b2fa64900dfcfdb4b923c5f4528a314924a8c950dbc3062821053d327f8f9182c6290381c55cc10a012fb9cccd71a33703116e7dd9870ab51835c8326cf1a56e4f98a725da3eb4ab92ed275a95c578ceb5a61f101113b10f53e5fa38a3e5979fe2589c361caf3355235a8c873ab5124cfd71910b64078082f8418421a10ba4018047cc5b218067b9823fa1b8cdc99ef5b048e7d41e270c0cfbfec381cd6e78f108f90372276f27c7f94381bf3d20b76274f29ba34ad97caf316e79120cfcf670230e42991e4f99d26ee90a7fb95c9582f5b47eca17036e68413c2e99ce4f9251c8eeaee13010e3b9b1a0084519dcbf6fc622c2a5827355a5222bffa66e576b4931a39be94490e879d537661fb3be093b1317ede21b2659197837888504a7a19296dd9a4dcb8d4257937b7244a89034d509dcbe6a2b5736600066fd5a9f5ee392d9735de94c87d186b42082184eff3d1b710983c4bf074d2178f509d4b9c119246958e94d8bd1b12ab2a0c13bfd95730153e529dde075c20ce06049e09bec2524818c78657c40b25b274384d4028e21005147dca34012f1050bc7a979aa830c4a1b99440a8840b2595cb642a1c67c3bae912b4b8d8dc0dce8b29526ba5b1bebe478bd058034df0d62bdc49704ddf527737bd96bb7137b04b4ae0e0e0c80136a99c8d4de662880c9bcc26a61ca70d0a9e3a3a38d98bebf5badbc3717d6531de19b9428c62d6b57265b3246f01772a24b1ca2256496285a4c2e2a257655df3a29e7ebc9f6c31502b993a4b688d75e916d44607a2e8122e9a641831551286554249d70caf84159a16b1b151a2243e2f9a64a8648b880449d39af762bfd8fd30c5a20463bfd8340baa45cd755d530c4d776011d87407a2da499be077526dbdba175b8553a3937492d8969225ba04ff5ec4a174a0748861592b96c56259322c6b8665b558d62deb5a16be7136de92f9bc786e473f9be9c4493ffca44b905231c1e8d2dcc1916cb017de1e17d05a1209c608213412af8858442be04ec490090e0ec48931468aab9a67d35746ee22c3575dbca6dfb6ead697e813ac6a8a74e98a4ed234eed4c4587d1b65e73e1f2a2289454a998b6eecde0d5a139140d474f2b688c47242c1b81b963777f39ecb690ce528982a8126f86fb6c88bb1b07b3724ae6abaf4036703fedd0a08af5a4286b77055840cb3ca08dd813bb97128187ddade29181d99044929f02e2ef10e6f2f32f0560ae22d783b8637123e096ff6a31c1aff0cbc5518bb36cd1002db18c43b62d7261907c54fcaab9bf2da0d618c52ce4969555991cdbc3c229247aef2a4dc41d309a040024dd17ac115bf884e34fa2ccc843112331e2f8f0eb3199947d7ef23032ee04ca67899cdc03c9ab9802bc5370f5c297e8e5ee9e889ae7136e2abacaa5cdd2abb2296529aab4bf39b73e6aea4941946cc8a31e67841087375619613abdd9dabdb79663c46d8685e745fae3eade852fc28a5e2d14680f44934c4e556652937d2697c2b65393fc48d6d9aa771e7f19d13ab6eca81f4c9b2b208c74f9a3ea53ca2845642219550e8f57dde96f74df438c8e2608cbe69796cb9a7e5282d6769f94acb63b45c25e51981c92d3c486fc929d7aecbd9953d7dc372635c95bbbde4ad6f424db369796b9a4deb53cbafc7964712de84c0c416d897b1b7603a79c69f5dc15e55cfaa47e532ce82720bc23b95807fa9f4f2127a0ade94c85bca85c0e4d06190d05d863d44a15028147a4086df1e9053422117fcc3890cefa029140a8970ca4340320c85429b12197e5322a7e8a060979fa243c88137e79c73f4d047b7c7ed4c84d50cf4404b0e7dd3728feeca0282b8cb7f04811d34b9e01f58cc78c8e9acb311ba3c5e18a143518b8acafc0c95cf5051411102b385b01098ac825d973c9f286f619128380e81126f32705c9998948018273d06894422c5207d85b442c22a09d7afd4acaeacac1cbebb05da31e80faff4c03e8f65d92b0d7b95bdc25e55cf422118252a0acbe8152506e97864c9a81e1416bcfd5884b712047dde4d084c48c35e3dbba66dd9b5570d66323025f4ce6815763e843798ecf429d7681516f40d2683b49b92828364c74042607286abb77c076cdbf2cfdd94c82d8f99ccca0c180c6bc11ea530f473ce395b5e5b280b2c86d11574a630995e22b96920aa6fda14bbfba6696e685a482da216dcd2d2d2d2f2ce645afa660576eb1b2760dc7081d3450e131d2f9ad0a14f176fa2dcf2f78cd0d0ccc30c29d0a739e7ac0e13dd4745bd2b0f5d957b21b1108410ce29b0cc7ac42c9a532412fd25a987159fc665e833e531313c60738cd067c5338443585e086d9e13a08de8b6e0ede596cfbbb2f2fa56b2b222b3b272ebcca2bf2982436cf5dc90bce78654f07827fa749a6d0364b6cc4ca6e5533c27767a40e620f310bf548cb1aaaaecb9d59c94d2ecb994523ae7cc9e3babaa925266cf959665c518b3e7c6ebba2084d97361adb5bbb3e736a4b129c7523cf029a147a04b72c6096723be81f4490af1d15da35c8e72d7a820bed93c12e2c636c14bd726970b2906a272ad0c49342ebed2dd908f514357521ea2cb3b0abdbee5bad0bdf2e82c7723e5118e225e99fe7afc4b51d12751ad1505f665ebd44a21a1c9aa76eda128e312e52b2c9ff1fa20a1a73cf4f91abaf2f3421fa3a7fc6e4e64f95155b9d08ae829785b9949f9c45b2874979dc855f528ed39a194314609e1ec7ea43f9594932840bae8a1fb72e8be4c8a81452a787322a7bc30b2e81feb521e73e20490f8087891237cad2feb41fa147d86665e187924a55c11611e2f8c3cc21b786154d5a3b4e78452c6182584b35b8aaef25a8d54443776297497cd883e725d0a7dc443f4d145b87236421fbd30f20e18baf2a4bb894e2fb32558947899e5f250660a7839a4809772b7d04758336243f8d9250ec2f2110e825d0e91213c446616ecbad4225fad4bec9e4bbccdc07108cc1230f1ca5d960094af7c0479657e45de95d061cacae57ce810056f22c82bf7bcca12d079e53201f32128720ade3c1f02f3cab70865ac6019f7c8b8bc32f0360466e9398459822494a04b8a02bbe2e36594bf8cf289fff04a0f6be2edcaa1d035946b0f5db3ae690f1ddecd893ca78805aea8880e8424c2a3faa9fdf3141494bfcc87754dc35be828285be828af28776b98cdc0daa3cf9bf29e4fd901e1bcfde80609bd121da58aee32263a8b7090d0ad8987c81cc21ae8da2c3f7773c29359d75f66fdba8d83fbe6c2bb3dc3585596146f729458eb4cfa860abbb99c1b98ab4b240381a8a6a9a485a4f9482310687aa9ec0490198b0abbb5923e6df14dd3276985912b6ab0e81392ce6265de652d7e9ce63c108703939f535e988585a9199d019a1a8bd8aa7294be395b4a1863845076e7ade2f1a1452291f75a0542f0c2d27f3c1e293fa24b794f96cdb8d3c73e4de9daa64f998c9ccf642276f77aad125bd1c9d3e864fc0e18efd65c583708f61164193dee56bcb5c47930cb490bfb473a8cb96f436290ead8a56c27540eaf60a787f20e6f3d1cb5e2e92f2c9bb1773563823a19a9b58e5e116fcf92d29d56eeca9931e79cc3f4f26ed63dba6f22c82ecbe6226ff0433a88f5116427ab5f2a3718ad4b0f3dc4433abb5fba5b8f32c6a344b7eee4dd9c73ee98254fb319f7eb4f62f88ff67741ef1bbae7d6c718b147eb980f792b46bc529d1e5ecd08158265eca0eba0c9a3ddd8a60c6f42b0ed6931431fc4c2d861c60496298dc7ae2b65aeb60fc45c7d1b12618565ebd5ebc322bc849574f24f0bf9eae5e869d115aedaaf15c3bb61437275ebd66a55ab5ad5aa56b5aa55ad0a2dcbaad6557d475fd7b2b04c31bcdbdb025e12a91e8c82bcbc1168b211d961a10839f6f38ac963d7755dd775e1f73c593683f2f8f89a3ceb346ee817caf19d7f02a25eeeff192c3148a3f76d91b1a292f25a2b4a29ad6e90ea4494563007a95e9910fd8b17432f1f8d8bf0d6b99e06de3a8f1ee9c5782cefbdf770ad5e2b1f784554b95cbb831e7b07b3d23fa68312d0e3fafb7b933ecd881dd2f9d55bdf50322c6302cbd7e53ce826bcbd94f0561a4208bc9182b8cbbbf5f950cd66e48354bcbd8c092ccbbf9ceb7d1d74fd733db3d73d17d6e4fbb42c5953c92cba2ecf2c7aef3dbc452253c8cb92f149deac0fe920281f417e31eb0133bd2cbc59dbdbd1316362eb8c72fc2d3ac9d6bc45a5b46e6083bca35c5e3752044d8d2232c5b2f304a471945f37be8c099477bdca6650fe1d90c60d1d5fd151aecba0bbbd5c7b3d4700706393272edeaae3adb233f06659f0467ae9e52587fe526baddacb5f3e55adb5d6aa799e7d83c919de84c06409a8f7687825bba806bee49450725e8de7d74557336285c0640bfa75eca19bcdd80701e1cdfee5685da446a75c76726bd734cfaf5bbc718048f6fc836187990c5665ce66ceb60fe4ba15e1725d04210e528f0981c9990fac1e663d64aef7dc98b3fbae03e0f56145bc864b4c25e15e7e1735aa7a6c62659728df07806b2dacea52bfb6cfc9cbe952df7e6161c3525fc9d673d228fb3679771913558adcaf3ae912910ce15dec520cea169de48ff6aa618f8672d04f205ac1f6a0ff10e1107cec68e52b94d5cc642e4dd3362ddbc3d3aa9af1bc6cb3aa55396a34476de6a8c91cb598a30673d43a474dd3ac476a1eec9c8dbefbbcd8334f6ecc7d07ac9787ccf4d7b54eb10dddb869790491c8a72513abc6be6f6532f4ef8270ce3927adeecb4ea0b26dc246e7c546cad8032275dee3e76d024897e25f11f5bd26ba1437c7c407cc0e1f117d47cbfba34b6d82c12f5d9a51b09bcd714e29a594eef3c239e1dda39c16422b71135d02d246c41f5d8a8766880ea7be891f40e6adf784389c5c1f85cc42c460240fe95c1dfe889722601c8eebee9bb359e2aabc1b4cc6ecb71af9bd80e4f484421e2941337bf6d65ef9ec3be014026359cf7af26e32894cf2879d8fd481a814dc0434553b7db268fee04e960c9c4563c9c09d408f6f02a240b13fadd90b3f8548eb9257e6e345610a51e8cf47eabc8d9407174f95932efd3deb6ed140540aae76ac22551edcc96201ca957070a678d1957670a668d14053913e491d8b05ee24dbe04af131cb36380907779a833b5d7b4dfb6857668b26da1b9bc40bb3d479f9ddce52e73dde97251c1cca0e363b691d2f877304d8509c3ba24eead1ee6846b9220dbbda449fb4c7ffe893b58f289a116baf1df47a598fc5ae4bae4b10c7e1d01e4f6760ad86b7f979ec9f0b3f3709468e7b100293641977ab5c5fcdc732cfc76ad912208c6608a8ee88e849885e4517489be2cba25b449be211d15f204a84a54ed4115dcb8a3635b66890c478a923bd6854116d8a7ff8c507990c7dbf179be85377fed1a7a62738a365d777d56b18e5dcaa0c1f96b77236c860e1dbaac129d0c9f2efa2ef3d9aebdffde45a61b406f6248924c3cbcb2410152f2f6d7c6037529604c8f22496bbf409bbfc8be3e2069ae4b723b29417ad97b5d65a6badb5d65a6bed8f689374f9e04de2640fde8ab0128674591e07bb6159de353c3d7de9a54f3532fd948f7db2320458d5a427d140ea605d4d01eb52531ad88780240ee45e50a2c7eaf3ed524094f688b7aa12591b229140bf2d952abc9566aef0ba2456bdc2acc3813d5ed7758d30cb53f1b5b200fbcf7f58fcc10e9a7e388867152cc51b3cc4264c52dbc2f956e523f226896f458d82f615512a05a6ee9dce5bbd2c266fe52173cb45af214c882bcfb82e7faecbb45b39922bbdffb2b8d2c39ce9cd9d5933779c70f95cfb10593eb2e348dc224f0289e740023b672af22476e0e74cf49a0672d4dca39e0a89eb92c8715d12eec927b97036b8e06e78414ec1c92a381b7289bcd96991ac229345e4b57275254ad6a342c9642ab50407a4c3d4bfaed471366e6cf2c4e2c5c835b81b7dd90620e4fee8c9288b3b3b9936d149c98ec49c1c30b2e8c489bc3304555e198fe4c051253b1295b84049ec228b38382a198452381724608eeb92f82c72a5da84c58bb174dc8d22198bdc67c9646abd57cd850512019872fc75a8b9034dfd1c2824be913c8f47e2eab839ae83a6500aba2579ce6f570d16b0d65c78b3210c9a3bee33775a727b2efccd898ee2e58a2199d1a6643275942d4104fb28f3f1494115d690312c6a91636431268991c9ccc7889875659e0af4d166d890e9d7858615220f71966c66665c9fd8489b117e927b081a2e3575edd0a8a96b47e5a62be70283c695738191fbeeda54f2b2b9efbbbe47c90f92e56bb9787bf9f72dbf788b79c6755d49ba40724521f4015da92b75a5ae2b344fa6f3e4a3a3f3a4b2301b263636d266490d44492eac2d5e8c9c82bbd1974caceca20ace466f3173c43fb0f022267925f3514515ec488ed72b6de48deca24b3aae6492e32e39b0e4a23d50650ccb25190f99a50d16b6ca58e9e7461eebd951399dc321447639bec5d0f10d9491f87665f746e2eab839ae731360e2bedaee6117c44e9e7ff9fccfaa8ccec2f219f81f1a6f11e242981ec45d8678e973d03fa7571bfdf3f9104ee44d5f2e915cd883feb9f6a1bb4191432ef3a18556661c84b71526ee3fa053bcadccc03d2e765dfa80ee3214993ef41d3074b7d06368af95ce38fd30611ffae77eabf2ca0cdcc3e290f6b99fff6ea18b4cb7a67fae9df44a3105bcfcb1a6ef68d0dd40b758336241784824dd654c98fec1414cb738c810ff9cde0d8487c46cc2ae4b425c1be2a2975c46ff0c21048dabfc83b7205c5c288d04d078cb69b4d096cf6d015d0bb5fc430fba46a3e52a2dffd08342785369197d4e3fb805e3abe07f2ec6dbcb1f6dc6b58ff66755ae7dae72ed323eda47c63f3ef85ffe296ef9c32b3d46146f579ef12033cef2d159669c65741696cfa07783e26ad206865a4eef36246696c738e8ffcb7c8cce7216bccdf8ef36e37ffddd3a835e2113f0d7ded31bba76379bb587f00e08dab4affcde20338e627f8a6d975aacc541667cf496bb697848cc3330cb45df01655c9b3f2eaf881ee36e5064d187c86454484ef21098479f91f540c9a3d77b3399948fac255d6a944bef0dca3ff4964d0fece8a39cce28b719e512c9570e445d357d12bd6f2dd1b0b411d9b4a965443b9a0686338c593516923e39b9840776bb6aae2cfab455a97c6151a5687c2e8dcc89233a8ee9d0712f266dea0791c95c978ef6cfe7589f42ffe0edd2a9d1b0b411827d93364f808e69ff80348c7d07a4d9e73bfaa2d6d98f8587441f4884114618997ea54776fa0c0ff140cc187631df0c0a2257cd85c5854408ccea5c39d20647fe42d2a5ecf2ec42e630e993c41716f2aaa13bb07d6953df18f63ed581a5b5d65ff7d299227bee1aa5e31ebc5dc75e319a034bb30a4b9b29b26fd2468a1d1bf395733545e938f6f79275dc0b499fdca5546437d925f3513ddee792bd22d2069ec0a12e34b82b0551570eac4a1b10ebbab852fdbc9ab3515f87c084c8e2bcb48128d0850677e540947326eb8d737d85375b2390af534c1fa7c8d7e9258d5da23f9203cb25990cc4d2e65981a5cda3194225c68a8b1e49e5140200d8cdf622631b4e968e4bc9ae26c95d91644785dcdf6aadb15c8c65f36e7425220244644072ae1a598f3b6f74d5c55c69fe5deb4af3f507b506a244ce64233b6f964dee3b011b598f9b6315801f01c89ab87123938934c75ca7c8d669a9e2673db991c9c8256e644ad497974ce66232e7006a0e131debb151396ee14d08a69323bfc86192e3562adad4f808982ef561ae1c263ad5fa7c0e80bd64ce46e65a035173a74d5d65016432b3ce7ba5b0465d35d0d4f517295f45ee95bac2c65371d540544dd5542d028310c279026432f1f36635e55253bf1793eb5e3a574e8dd24be6c3fa95baa8b88a440bc76a4959de663e0020062188a1882e910490bdbcc401b00c20233524808800993d92e331477c8e22b21ed67cd2a55497fa46643213cf1d1c58acb7b993fb4664d58d7597559d300fbd34653211c74a44353f569ba01912a1cc51ca244d9518fd0820618d4462faa5410f2400884108632041f8de1f8410c2d71f0384f4433ac33b08894c4107f807f37cb47aee5b74e2308510dad21d1c89ee202ac60acb3dd5b195eba029c675d0a4721d349152ae10980a4514c21b097ff076bc9530bc0981b9b010984cadcf430bc62fe217ce8606a1aef478ff34146c55519ab78ace9cb76a4a192384339b819db3190b857ef95dbd05186a3dd84ba6b32dcbb22cebf39489d0ca02528e7208a4a0641f5d743b132b285280cb447890b3cb47110f297a9d0ef693d243a426678799e8220b6f446872f61d9de1ad3e7449ce061cdd631f9a7db409b278b3782391fe7ae10a6f2f2896aa6468036a5a537bc067f75959807cfc0f89a37baedb86e182ee56010c088b2cc800e64dd0371767effe9040140a165555c85a108984e48936f52b054a3f8954dd3514ce8b87849232a5503c2cfa448136f5df43f290f4857a595cf82181025696e4a4620a3cd128fbfe8bbd0fbfebc2ef7d7b48a28814c98679ba5ac2b6c50acee7aaf7ca5595aba4a8de4adeab1c2b28ff2a37a4f3c3b37a05512048b15bb755d383ae8399d28b3caff49f576f8bfc095dd726fbf1e08ade7ad0d52ebc9a119be1ebf3f018be5ef1f6b4e86c662312e4c2db3b147258e120eff4ef144788459f9e4bea065ee6c0cb92c75559d9e1c4bb778f97c505386892994ca5d9ac2c8c5a3cacf3b8269e71ae54650b98a115b36ac6000cbbaeac9fab3c349bc130e33167ecc416cbb06cc6c2b7664d50718213540f86653c6c6c32d4bab4abbe5a6bad9f8fc5ac8a5d990c5d0096cdd09c6532a08c0199e7793c1e8fc7da4ac3308ab1b391653274019f6c8666fa1ac26c2613ca18e020deb219ed699aa669ae2b0fbd96f1a899e20ac23e198f9aad89d98c477f8b15d55e86957bf3553ed44aa67aef7537c43018b31e9855e38a128e48b66ac3ec47673314461289019f7b2060ad65c5acbeca7eaef2d4efe87a481f7395afba2fbb4b67409f7b7e02edf673cfed0fcd92d98c3669d6e3bd99cd585a8932a5d9cca7c2aacb80cf3db7b21f1e98aabaee0cf6fa2beb8159d90c56653328346302c3ced9a8d98c28570cab6eb6bdbc3032965923d82c9b79b9f6cb1cbc3cd99f552f8cec3226b0972bde86581b78615c74257e06fe9d485e89f8238844aeae42b8735aa6b71caa3abdbb5e5d36f3c15d55d65ea7d9dd0b237b3c1e8fc7e3a9d80166400761d7a599d0414a64ed20bc39b1236b78b377f6c67feecb9e6f44a0c4f036bacecdebc25b6539d3bce8529a9221d45aaaa1760a6c55513aa7943142f8680aeccbcec1e3174696c1ab1333f5ab196cbceae711ec75de0874a9ff60ebaf22601a85bdbfe3007daa50d9ef8f0ba44d4d5477776953d7e8d366631751060bd3a67ecb6f45e4abbe2ffa59e1ed882e75115dea1d50278e41cae71e0aab581a8561282a76c9afc613b0aaac25919accc156704e12a98a4f588f22be95dc0ff3b0b2ebd2a49442c136d128123445d47166acbc83897542b2ea7d653ed127507ea24fda137db2198aead1925eca78ab2c6b5a16b5accab22ccbba2cab5a1666594ff4c9939fe853f6449fb0fc449f6a7ea24fd7137db2accab3d2e3caf47376cd1584ee280703c447c560ab7eb2c5586df1b38a96b311717c8ddfae2cad6021b6554825f6c5d3ea92b67892f049dc81700f7613517a4a5bca532cea524b8959bad4cfd9d844ef1ba574562cf49234b1c4972fe7517a51975844a41ccbd227791691cb9ba882a23ed1aaa2797b59667a22b9d22bad604b149728a5cf8fca1ae57440acaa83efb9e7a6670b92e5931326c92e5da278a547a478abc00a3d914cf18d2b2fc34cf14a0f22b90a7b25acc26e9226bfd7387165e5700f14aa9b27dd5ea794524a29a594524a299db0dad173ce7769bcf0114208e1eb6ef8e0ebceee611e9de1ecea09d5d58e57976445e79c73ce3aad0c0117b53cdd8f989ee05f5559104e6b7664e2f1b692d94cc44709dba64b704e182f91bb92dfa5c7a373639a4508a6b21c43479d48f37c106a9a5743692cfcf6ae9846244d5c71f965339d814c0147770922e5f33d1f609cbe9153008973ce39e79c73ce39e79ca1510a76730c70c2d95b98a51a8d12e2f32477ea9b203e43a1f998275e992792e74a8f39e38c31e5ce2c44e82e41cc091f0d445549382152e6839877e92d0081a8529be67ccc514e17a30c396cd6a844a4170b73c48ccbb5d6bb9c7d73382f2383c862a4fbaea8f5624fb9a2a7e460798af264c9b365d6c845e43927dea6c0a4d73a2f2985447a6c32fa1c1d1691536aa4b0e494142ca73c36ead5dcf5a97a4acae128e5708453ee4c497974323399997247dfd18d9d74639348070cabc7de9574b7174f274327a04c951833fb5665a49c7d2365194efe886842a2900a9da489824dadd2258cac1834c68c8132e70a2944f3f3a24f33748f8007d861b384125d82372a73e6b70687831efe3971389c2806e9a1948f48186584b79843a28b3219118bc8252123eb31435846f69b171959c907cc544445323299d0163aa239e70c85666886e656a22c1385ce94eb9feb737daecff5b93e76d2258c3ee7536668a2d090136a0c0c36c15a8f91cdb064eda64b50c6bc30bf2610a5023107519a4d8c5b1d81221c1c118e96f3041c52f6d0c022039bb765bc3935edcea1545e693610a5823d365b65d3258fcd53462817857e6b9ed24f1aa220cd7e3c19562f8d8b0c5f75c164c628e3a8670801bedf03e3759340242372827571ca8efdde79dd04fb1ac3304b2bb15b8d4c04110e878311439d85091663c97d18fbcd295f64509d105616b9520f07a61c0efaf89844a6f28b281a2646bc883176139e5b1e21bf6f577e46c85b4582fcbeb932e4d4a549e8504333b195a40457771188a25db4e99d098d1746e890df2918f9bd27f961216f52054d90a92210539c2558d8b15f74d173a5aec8f5131faf9b988ae6eecbf330baee1cfbe4a1d5ad55563476e9b93e58f77728822c7b529ac95425687abfed6edcca61ce3a1b9a33cdbfa9f2b004728f3ff7a0a71a419673baeba1dfd18f0895cfc5f32612523296c04a89d1ab820c4ff126c4ede42bd8f82dce545d82d5b7a7021a03fba2783e2ab8e3a35ad20318e458adf4e8c7bb9d4ecd07a50051f1ee303e3438977e6d81fab15c09ca10bcf8b49091e572f6f2313e41443af6fa0b534aa5cc8c92528a87f86809238c30e6e527c6b007a485b18a1d0ba37899c6c03ab7033b95833adffbcc1c4f44be0ed49e42a6421432fca34286af9f97610af02280529e73ce79e7a6200537059889c807a7605594d2bb2a487588a34663a9a354b68431c61823cc31c618adf82a9ec618a38c7408d5b96cd6e198772841229411368c314619238d305615c5dccbb59273c6b72c41c532a5af4c4061dd07e5afeb3226a0c8f2138abcb90f893608b14ff32852bda2ebc2b44f4ba4d920f39fd35b0f84b7aee8e3b9d8e9c4eeeb3171742e9b978feaa239df18aef4b80e7f61ac4b31cb8abe981f16ff69d90d21ecee6e9b542a3524bef7def6f29b0237063ff5ba2e7dfed900f4dc8365bbc56caba75a6cafb5efd96f61efdbd1ef73ad7a4377af887b2b78a1c3b74586af2bb85bfdbc1aafbdbcef596d0cfbb316c36e6740cf24b6619edb6bd7f38e812eba5a0e2ce8f6d877340fd02f7c0405c736c977917dd811948350506e6c53bd4fd6c42ba091b6e2e58aeb5f11fcaaf87c7b55e44dbedad76f1f5cb1ac78c32e3ae8f5a20b02c55cafe10dcb557b7d86b16f42b01cb39c09621f33868384f0f632e8987dbccc0f84837c8efd8383d8cb8c49cde2ed5591abe75aaf174ac9436600cb41de3bc3e4dff597c96077d9061efc7b2b7831ee55916da83d4878a14aa8aad02deca3a390ae625dbb655deb9f6b2d1289c5e5241697ebdaebdd86e4fa4a7d586b050144b2a5718048f6e00eb4640baf64d633eb1e6c0dc9dab5579bfde381969731a1ddb23c2b15238048bef0caf5209ed75f9ed77b3e9f5bb75bbdc3eec16edd1e5ed67561cd88d5b0100c5a3808760f0e42ba102c5bffdc4dc3967477158b64e16d645f2d48bbada05bdaada5d58f150a3d3e14b28f7db2d67abc3db5aca584aaaab4ea7a55ddedcafeae8a3722791b923f3140d8e3b97d8cef80f662ffdc4d0856a3a621808896dd7341ffdc7a7b372cdb434fbda7fef3ea39c876b69a122eaf680f62fff94a0ffbcf2dc6eec1f2852b673f0423b5e706a4feb87bb2ebe783da87b85fe56cf47dcf9321de2ee0a626ead27b93a0f6eb6701efe5ce207531c618fb551e1a28e3dd697e73c75c45ead2ab1c2f63aca049527a49b183a6e6820d131c1cd1fbd6352127201bcd3a9dcf8b27bbdb1ed8779c3e651dbb801828bb18638c3146189beae63dcbb38920cbc6db902c718c22426887faa494b2dbbd8644e2eb7a51d1f1354e9c8814c7ccb0eaa9aa9aaac6a54e01c8ce263b3738537f9381b252423c4b079a5c4c65f36e74a5e32a9deb04bd599bcaee7aafaa9efaea9561d8096c8a6a618952463eb02f8f2e1a757d462a373894b48233f56d2a9b1a9b9ed8452ab14cc6925610d1532ceb7129cc6e6a405895dd73dc97049a904013e8852a0af604bc4c70a55ce9418723ce177ae938ce4e4ee973e564f21ed1f19903c9913622a584d97ca45da453a938f39454c871ca5cdf2bbd5b3487c9e647f19ca73766683d8bce57d0c94e9326f3d64ecad279b7b38efb7220ce101c8cca2e2c1d26161b72df9abfae7a8f60d70348fccab141e23e1df7c853d22e5092a7a4105fb1d259a50805cb711d249852ed81b4a935d2060a8089869df5d02acdba34ce2c73dc4adaccfae7592fafcc55eab89a0672eca159b773acb21e52c77549483c772efa58298ac32123bb1c4f91ee7672dc8a459bfa7307eed85ad35a9048d6c2f8ebda23e32805730ec78cfcb21e51768e3b4e9c3469a2a393938383236faa0f60208e67d18a219143c76b4d4b76b7e23677e6934ce113acf52cbb4c46d224dd10834920121ba8042aa9ae5bb395f1e8d7afc6282f4853049a8ad418e99291192f29e707bbae952b12f725a1e3b6936e024d4d72a77aa74b3bb9a3b331a7c871c67add2a63d7a539fb60d67d73e6d8274fd623e6eaf5e36c7bac995d9f2acb735d5945e9c5eb438eeb9c002cec63b1a802bb5d39d78db9de233a2eef911cb873b49256d238d074d3bf72fa64dd7af54982b548b05b4de59aead376d56487c3e5f9a44d7d2d9339826d265d9a3b9d53411e6b51b0eb420dab58e6e4297d7df009f6ba9d2d9ac43e5a04502623adf50a9d60ad571427d6b273e7fd63333c0c653216a645b0ef5584d5cbf2c84f3931e770fca95847c1b1386b8e0b718ec01b780375604e4368d16ac9b668a4d5a26e8ace130439de95667ef20f3b1bb363b0c042870367f7eac5c4bb5f2f66de1dcb7197df9537b2617c02776026f33025827d87d3890ca4935259e593551616d20136915f9981bd40141544009d0a248e82276102e87e449fa2d8000c238c1cff6864f74a4462712941940eaa2dd1c48bb1647e47763cc7f5e8b854e44cef9d3e3febb4fe45892becca1b0b3b29e1b4b422714db02395c40e1ce35d7624a6d01053d10834d1a0c1c2434c5e9be38a9c69ce39a52bc92a2bde4290e7732599e775494d2ee912b5668c4772c41258cf617ef2a6b9e802870ec1a3e34a90b4e99210aceb520e99c9c8396594596d24642a4c91582c0896c27e2c9e3bec47ef384ae38ce4cee68bd1a218526550bdbbe874450bf39c2a548e3b67e39253960e4b76afd495937a2fc7954cda64d3a525d59537b5535709a49456965876ab3cb1d36ca673bcb4044fb5cf85aecefbb9570d44a5c0099d9038f06156ed22474e4cab2a93b95ecd28e48754198b9a9a984544d2af6ae70a21bc52a74b4c729c8d0ae755062eced0452565ee1c47a05de76ec4ce2f422bf321a9357f65338d6517e60bced76ca6737e8fd2b91206f23cbb636252cfc56485359bc7b2fb32c8d2793157cebba14391584c8f582775ae6472a5cd25d1e06ea801b3e4b31ba79c326a0b66a251a31852e52166cba940c189e0390a4a4910c1c582745c9f4cbb7757628926fa14c5065e18ee3f8040141544081d054f22c7a940c19340c215d988c8b30834b5c9c54c2c6a1ce2ba8c049a261225b9a715ea637597528dfa25fa94795e2fc4e1d05eeb87f4e9f3fa47e370845e67bcfe19e9937dfdd3c2e1b8afa6d7bf2dfaf4d7bf1c8743e5d5e595c6ebdf13876388d777aa4ff8f54d459f84787d2f71385a5edf5670a8a9034d7dc4b7e642ccb7eea2a65173676b24a5206a176914c551db08205c0cdda200df5e18b9521b986f8f0ea86f0f8c32b818cae4f4ed9d2157aa63c4b77753c4b787a30417439f10e0db6342ae9500be3d2cf24bfd83818ba9aeb8f1edc920d74bd1a82a0036ea31e062aa2d6a7c7376c8f53f1a55d940536f8e0900dec3c5544c36b7855c2b4cae7f6954a5034d31be0d91eb837031d5937aac5156fd7331d60d2acaa70e44cd01fc08bc559f1c83b74fdee664f262ac1cb81ca421f7690d8e9a51cd162fe67a327a01704dc1d8a0f0663365f262ae9d77c27daa6304b645e0272fe6028300f889cd00f04d2af592bae2c55c5b5c5be4fe8d2b725fa900d4d8a8d9e2c55c57d4d8c206a22c1d226c0060c3e4c5584f5298646b4527dbfce4c5584cde8d3e9327b96fa520caaa81377831d616ef46df5a9295ca28f80695086f952de1cd926c98e41ab12aefa8aab6a832a9444946b12c2d6412d1756591492448723f94eb61e6e3f9618945cd640d866532a1ea8272cb3db263c78e0b7187547916d9813bd523aed4af35a977a3a6aecc83b383a3510527b1e0b6e04afd1d577ac199c8e0cee0d4e0e0702410b9cf07674abd18d9440ed90404eba60b2d95df2b8c18914b725c24ae6b2336d945ce69934e4ae60a6b59c6436690c7e648ff5ea9b4e2461d26394b6eb8e8c2d9100319fc90fb1ecf277b6cc643664dd332ed735026931df4aa61f2627307d69aa7239974898b2eddc8251025713ab149a8148d35e54d2e999a11010008004314000028140c878462b1703c28aa8aac0f14000e93b452704e1888418cc31032ca1840400400000000000000060138d50e273debf883c241e499633a066dc70dccccb3f2240b1702a0f51cf21862644e535ee0f45ce1d3e848cd708c75aa82cdd1fb85bfb0fef2d19495625233e315ab40f5acbba50db520c6b0deb9d11ab5856c0b89d95586d378ff1bdb99a663d0b59da31d8f21480131faddc0ad5af5c0c0f4ed7b86aa34735048a0334a8f0986e7e8cb6fa79cd9870584f57e53d00d8d0254ca26310b488d80651524208d8e88b591dcc708f00722b78ce81476830e53a3dee5a5bc71e61f8f1f1f7cad33a8cb077b5b37f762511ec760d5d02877aad7a6820ec8948003ed336820d9e35309eff1096cf19ad5282f92a6a849dd2c8cb54ba8dfe31cd6cfb541beab0b143641b193e736308bb7c642e18eb7d6d0bf41d925d93148e7264da3f74eeb59c7a075a323bd2ed9734bb269624ca8a96a592614c7f584386e53d57df3257eb0c178d73e2b5601b43d3a68c265068932c8acc148fbad47eae4c81eedee89def3a30cfffd2cbe47f8689906ae863efe3a19d35606e13afa447a1974244ad45cb3b30b04e6925bba528f25eaa34706090ee3c28bff62eff24f1fbb92a0a4dfcea17b03f9b3d301c4598d5d148a36b7a4f2bf67066b567d4da69d0feb65d073a5ddc873b82403369932be44e1385b673e4e80d035367cbc9741fff71a9ba7bdda4f7b9979ad2750fe0b2435006cbae0b6bca68fc9244f8e7123e21d92171300e2df3aa63619038d4c0c1b58aed9775cec21a9a54b3d4cc0e3bf0b832d6ddb161196b8a8496769e10cf9dffd4147d5f7db6b0af98a389f08b1993e9020a8c73d9ce2e2d6e794d607add6278d0d23b08ee95de925305af78b9bc546b97bbab3193915afbe819b4486528a9f3256ecfcbf9a942b6edf78c0a442e197064ff345f8b01042e05fd993f74fce3fa814012cac0d4718909b9d88ce5cadbdd07511a906d31925409baffbe95f2208eb22b02d5f38222fe4249aa4a618db6ca7ca95d5556599e96c1bf92ce7e5a98602b99605df9756b2b39522bd20c1686e4b64f3820460ec84392a1de97db1cf98038c0595ae1e2d182e25bea5aaf2f3e160fe89081c5847d11dc39286d8df81555199b91b7fb2d9245bcc0f25633adf1b1cb3bfd3e3fcbcd76f176818d3294893267bbdbe7e714caf94ea75530a9ad786816c4a7ef0a1987031ecd6ffc1eb2b12ee8f4a2f29e8c5c5f563386a84ff80d0052000702c51d670095bae1a980e02162515d263120883555483c4c90374c361db9b2066c3ac85ce11678ee5309b146b5e5323b1039587598d0467f2faae4d727dd3524173558aba39aa83f363c47f5c9aaf8a945fd7c144209a6287fb24e3c82ca13a63920436d9112b3b9636e2754acd5cf503ace2398f3cde7adb38c0c4d221694e1b5f209c0e9de5b54587387e12c4b8448acc5e0e6c235fe1960dfd10809b2132739187c669650cd854536e21dd7b17bd13447fabbbe311851eebfaa90af490705099fea4fe792835f7d76ee2bd287d91fc353e4599370c82a6e42f599df76993d12b0eed800f430d06e1f70bfc1af464aa3fc852716b8851861775d18d40db747b48a4c8dec3676788a3132239e169eef60a5dbf48c28873240b456a0b8a8a6cfd58a185c2483fed74e9c714084fb922e0839397dd1357294b69b634b547e9354cba9d5ab185c93d6c19583698c65036db6bb6c26947767cdebd111afd1002afd3cb9c7da664070ca9069bec5bfa04d0769b5a1c57abd5e122a6069ad03109849e38742bdd23025cfdf72a6ac492238fe49ceaec05c87e3465a9dbe57e339494b7a6c93ac18c4ca5202d2fc936e336069c2eb19924d163a4bd41c203acdb714713c09305f389cbe37093bdbaf8852986b8416580ef24f4cb88a901aff3ebb816b942c4afc5437d5074fcfbfe1ca570c7494e9b9e1f6803d9d2ca7e28f96ccb48cb7d5094661e0c1d0274920d15865e432b8e64e1b086e4ae5e3064bf18d2c0bb2fe1c8b432bb0024dafb14cc5414de74830a9fefdc7762d77a255cb77a84ba8c10533587bb2dd5cea07111d4ddada416b638376e11d810f49072e81e79c3bd7f95e2fc03a88e2cc922ce2655ab5178a6d648ef0c7a69bd577206c89f5d056e06b82821d1127228d9edbdb051d1857e4da224ee7f614b906aa8bf49a0108b53ddc2fed4a2351419a92667fb9522dd5f8128f3c5c989af070951a8eb598a6233d30d83d5ff1c3985f6df4cad430865d1398d50f16c692721d3a512e9f946e2bf7add6bb162574f5c3a2d08f42f6b9b06307a52667eece4e2fb727173817178a7902470eeddf94619e20971dac549ece635ab3b963d44d9f23fc79ac4ed27ac4bec43c319b765f3eb7bc0c2e9d488a4c598388367b8a380bacb78cae1da70f5c4487bc875031472d296301a2e1739cdb5598113187f3c467a79741ab04a113cc2f86c6996318af42a776d6bcb5340726b8c9a2fdd0e71f3cf5ea4738ab874948dac19062734f922409d00f7c31461efc6695134425a3ef04d20921bb2a0ad06dfc47d0fc590fac921ca21e16241287049680570b5cd683cc25326b3d06628d20c29606adf14b27885bc982eae0d2422f9290974d30f69862c1a81591089eff178464f17d45ffb22ea5e5d961241dbbdd3479aa1f9d40ca723ba8a72e58bd3240b1c21852e84407d20234aaffe9bccf6e0fc7404c75416021cd44b1649a0c83fb88e3c052a26f8267ab3d4fc78182858fd44d0baa38c7372cdccecbd9ecce9b8001a981b5092d4d0f8373e12f1b03c5ad50f08e69f6d737fe44ac74560600df210d7238c01ccad891fbb693eff4906d7a8c3c22be2d9d76cb04eda19557e9dbdd92d4e159abb994f0e9b6624af9abfc0c956ffadcb7851a8adcf7de622836f1a52ca641d701a406fce6efd32db6cd1f87fdc961fabe152d9b893dcf1b0139b234c80ad332e738d50b924bf4d8e1c649d995a04207ab488b56dc182a43bb554864eaf2d52f06e44060320903e948f6a0cb05b57eb400812aaa7112220e59c60e05bc9292a6c09d90e53408917a9ac1b871c6fa10f91a89912cc814234b20e6c81b2824db49624bad3695b2380bf10005f53ae97a9bcbc9dc26e4dc15ce62c3802c2e9875b5378210604e112c2df9778e20f49c770892073ef53390307256d9ba79c9bf171335320ce131aa0becdd192ec8e29c8c898772a0c12faa763a8af6bbdbe734c520a4b41eb73128115be2df7793c1b5dd12062065bf168ccde14650de4af0a8e3455a235984c4e9f112ff6881451129535c0653dfc389531cb0a2ec1bad8a3a66689230a96243941e1cfe840c9e3df70b82fe53a6264c3ae622dc26b6d0ff0d40ad46f20cce70ce10073305aff8f1fbf497d301db97a1f2015acff4dc29476fd651d44a57e6ef65ca93c7f0f2e204bc3713cada245eea53a0100c5d8eea0eeff21ab13c8654820d56ec0d9be141e639e5a0abf7e1e2eda0bb8236eb5c22afbae084ee0d7551bcd79137e48995d02b6ead8682f5f78475968108987180945fdfe1af15c70e1e1a3fd6948886713085a2ce807cfe4cf04a1f55d1c92a8cc4755b709fe7d37521aa066fa337030ff04add2245ef9a38d431aa3d513763de5d628b277e6e7bd84afc10afcbc97ac6d2375e45511f61f71d8997efd5d08e89c18e54c4bb1b522eba1e4f8194d17fdb7fff509e5c13c90398eccbc7e124adc640a520ebb0261a01f8b40180e3e79d6113f6658349fd849313f6da061489f4c7cd3b1b23a55efa14a7c739f100aca7d6ed9bf674e37824cd4504755367d0c3fc351d0dc232a284ac293ec4833a085191ededac974a221ef2fc5ccbd11cb37e992cb4bae115452f41682268160200fb65e45479c1925da5c241ba69379f1702014a5cbdab17e1b0ab831e09a2485ff2c3ae9673babc89f676aff171fb06b9bc644f81e33dea8c30e461fa306b221038ed6de0fa1d63807783fdca4ae5d6bb6e6e7f5cd373710eb9943136458baf9a43a910fdb270fcc76ffd1fd22dd994d60d9a7ee297a40ad1f79dde05b9c297a476c326e740c993d8dc3a2ed823870e06d4298fa4ff2e5f411104317341f7518a0a9cc69482faecdd184f724fb53e65ef32c71ec4e101cb7c6b3c375c2904b8921271d39a2323297ddcbbbb2ff61e46cc6e59419f2a4f68f6f50c8498a9f8949bfad6b5ce4a40f02c36c805af40486dd9da3d8a2cfac3ed6229f7f1ef8b7bc9e5c5e2cbfbcd202cccbe6500fab6be7762c8d8b520b0c8911cc32ffac11b4e3d3a265236752b585f04f18b0ccd561d95b35ddf49c77bf22ef84c18b112136bd15bc5c2cbc83108803ca0ee96434362520915f2f922f1f4e087d67c7760b5150a386ddd7217ebb6ebca2a326c3fd76bda399c5591634743604309257ff815af3689b9bde4fcc68dc7f6bc0e02cd33670e6e2beaea5c8ba7315b988b83b892c53d26d6ca2bb8afc0bbf3b89ed2af22a3575f309a1b20bbf3b69fd10cef58238a6916889015633d4bbd32d91c5c83ab3042870c93c66f13a0b02da500294655ffadcf63b5cbd8afcb17a4dddcbaec681b5fbf59c942d6b8815c86bcec99c461eb4d8f019e4032503f65f58d0dbffb1fa9768b0d6da7f9f50a4760c15512453dab09efa87d229bb0581a8c22bd578efe852dea14005d1cdc5010c1a5b31848aaf021240ee2d2eeea094435362093ded4492128aca9dc88896bf3cf6a9b2b1eeb9feec0e8ac43f054af247fed758610ba357a71edc52f63ce6fde8189bfc1e71cd1ec0a21bd8e6217aa7b1e0d3c0b8805ae1dc24f93fa5083aa3775d9245a5838baa2fa9d48a7e6bea033c427702d6a7665dea01eebe5ff08279cff0f81da07268b1830d2bc10df085125f1ff5b898308b40d4e68af55e4dfffee7553cb099ef7d7b6cb540ce71418560e9c81331dc073fbfb5e4a86408a1c693b5becc54d7db4ec993b520ad90d99125aff0f0ed30fd34bf32b0c30728afe6e9f0c251923b791a58413f347183381cd5b2f87084ce92569027d96c680d21b19f26c4fbbea15f4a53fa2544ccd6445e990929a0e8a0ac5da6b65ab0a639a2d79a5ce3c4347f5dc02403facd06acd0339db1b903c89d84b3e7ca48972f28a2aaec1f0a6f136da70ea46d5b7aa3777a6cf7b614c1bebb5daa616ee5a48d22b0c21224102d0e08844e45d247999bb9955e33c2fc8aa35918be8d4d5816fa1eedfd562238cc3033bbef143ddce9f580af37feea591d335379229896f8851f075f0ce0b5d1b5d949319bf4e0e1ffb6f092d12638ece073ed415fa7a21c7a549408589a15a627ffb2ccd76bd6b4d0626138fb703771e96759d32c9818cd4768d01f1954065e0028b67d7f4170189f9dd52d1a145563f98c868c35d92091153ce36671841efc4771ebd95de470042c92fe6464912bf1793b7a9b262e7f58c1d925ace1520c2693449146cfcd0d12172be763ae7a7b5b9ad2fbdd22d9fc0a1a6eb1440297a55d97f340c9dc947e7cbc91422f68f332b93a7c60c719d6c9a26a3e7a40b2c1329e77d11a4024835a98aea1dfb240d2e3d8d5611bfb3d4ca02aa47d7885705e92db2dc8acfc49efb8f3268ab1f6a242e2c14676c2687fff871c983d02ca4cd16989a0de22df1f6aeb0460b78259868dea040862c7678476a9c8684a888ad36d6eae56a64589a165a94714067b52b226ff5013a2cf7291fb9db5e94293b73f529d86584c5f5800b3dcaf489869f793fb7f38aec596863fd0fc9a2629bb8130c82b04a5afd27939ebce98e37aef190c9de0bd418e748a6d3ab7ec150640ffbb8fb4728aae129e384a9b1ef61815c33740514f12964f47cba148b419fe86e2a0a30559c3d088f623115e8a5ae517542ceb217f006cc892fa5ada272fc9c3a992b5c095d4b5b8848da33bb04e28355a31c11b150be802a4dbc0818205ca5295aecba3dffb66898f4b801de1785591647e15e5b9e13d39020d721fd8a62339f2b52ca4af31485d656410f28c9f465dd88936c5753449fb264327e87e5324a003d0916008bce94493ee38fae4c2533507156e4c899556b4e2fb4dd4f0a3de450ee9436a16e9c78d6fd1e865b8c8a227b26a51bc65010a4dae1c71328fb9c839164000d8b5fd885bea5b3ef53bf9fad44c5eb17681c2f82ce2f2be5254dc36521a60500a08d8acc73f4739f6cfdad926b64fd6f67c02d5b061635ec60c921b0c12cf86c59f8f0086a6791f9885a0b0ff3ea943c4111dc2bf8706891e27dbdba24fd39f9d53ec5eef1bb0a7d524b28587bff68cb1191923e880ea75b7a54df8ea8e9c02298088008a18482c12c0a54bb25e800a8b0eca772cdf39aea4f5fe3a5c196f490e7613f22363517eecbb8d116cfd3842a7d83cb136d67d2a88c8c857dd8e8ab7592ddcbaf52b58e562259fc4955c1b6251b4605e126916c975cb7ff043b01c1d2a992c1d7ba9618ca9cfa38f558554c423488be28fbae395de74e3b42174a761c63c72a42d55a246113b4367b2f3e1d051351611c36b4df53cf9ecc8b73bd906acdc51bf1c91e42e6307396daa5a8cfb0ca10d3017c0b30da21aa211fb15bc87ef3d06624ebdc2a963dc22282281239ae82bd709f37e3c190a4574881ba54466e731cbb747a74fe33ab59d292cd8272480bf0a2e5948094aeee16c1f1b4f31f32cc5b9a98a050addf351bd548382ed2113c5fe44bcd862e6118d9d6a85b57af1cd7ae376695c0af274c82d8062e759b4c32c18e22cd6b671777fcbac8ea3f9df598ac00025555d3284bc80866f273709b66738ef3ef429c6994791e1b5994af2d643da718806e14c8ea2950f883dce766aec6addaf8c3b0ec7937be72cd425f61cd0a274c29f426dc98137b6815e914ec288c927e6d680a70447522840e10440db83e51e7c6c6b8fdc0fc86e97f65528877e9b27ba9b031842c55be285a01f561223cf2770102b52c99a1bc89cb7b6d51252361de271521272855dd7008698c6695283807a56269dcf6785ee923abde26e9a7a4a037402a8ebc337585cc84f7e55545967b6892017deae4913724ca18cc966fc376c196062d7853ef4e258f53e30e088c180178d79dfb429abb8ca8be38c13dfb1858134157d61c5a7874a7b0656a7ca02ace23a94cc4f9a8fd3fd23340e24da5d8523cb2b0f61bd774a99d743640333781e5af61c445c271960eb6984cb8aec4414d2beffe8d965867a852a0d3618c62f0e18180ab721bd1fe3b2539099743273a502d26883aeb1c948306bf85224b594f9b0b7cc9e8951ee7341e4e5e7c102c4c07174a011de9df5a1a21562832cb53cb32820c3ddb691fd4830c624b29a85322f267687889967372d632d82f5add045c5c2a36f53f4f087bd030910200ca099105f00a06b975de24be0dace7787cd57aa0e6bf4f4897e6b6bf4746b548ca9a02beae2999776a85d00b123529d100224e0bac23ea1222401b1d34fd419219dbed6ccda99d36153e4a3dda7ad1c844320486bc81c22cf4e3d88bfebdfd87549d89039511583aaf6183dc5db5ea2bf19145b0b89501b2b381d0442427786d41e42176b86f2ffdfbb197c0f7b1ae2024f1012af9967a45ab38df8d3851a9e66e51a4e61a1c1238164ca113362232e3eed30dad61be62bb22d71e6134ed4bd726905de91a09aacd62329e16749ef7a95e8c80c25ed2a44412591ea9c88602596930085a356a396dad0c87ec914d9a72a6ddda2b1496c56fe83d02e2c5eb3c737da9f56b6ab071a556cc81b8aea2171197ce681f14159a5f8b5461a0f584ae423624f7335cfcba819870f7ee0c81dfd72ae62bd32bb9d5c4157fbba9bbd763f2f717fd6c1b6a94c56ce712c4833ba3f4a8fa3bd88b7049dcbe9db1298a34c25cf5614aa47dcb4e4a848410fc56c8e6de95bb52cfc5b58a9ed8d84bc6f0ad3875c82af16084ef4e17d2104c90c8c1054b8da508e4afbe9ac9faa50a3c18c3f22d6ee0ccf555da940ae04501096a4edde6d718aa1896c0ed3e8afbd7780c01b6ee57aeb219a90ff0bf3a6911c052f2a8c2afd0f0871c340282e98db77fb298e9acaef389295386e847ef0baae76c69e702fd98e43c4271778bfecf2bf3d61d8be058f0c594eaf51e4d17169b864508355b7a805a1f207d7e9edd000e8d71b5c1a7edc6c462c01baef0fb4f9677e6867d3cb59a86d3f9311a4247f65b2bbfd84f15803163c7ebe98b243f75e62504800cff6ee1a285d0c0a008c7f622286ae614e4c0458cc4174077cedcc69d506165480937adc2fa949eef76de88d0cba905baedab76355c48acf01ac8f91744520f4e3c0f1ea7740a42a0bcda06116fb8cec5a7f5e2ac4f348759ab217147aa19a23579903daf96de0ee331a2053be4295a2c9d2e15aeb593f92beadf55b3a93e7b07ad71cdedd85309185950b973f1b35fc57570efe929032f9e9f36cc06bcd11b15e38ba8ecd73790faf6257616d39ec971692637eba91a83af1fd4c24a8bbfe083bdac7f1fed1681f3bb71e5c4d109d6d68aaf7ee431b8082c31b402760c148b8f471724ff7b67e7232c311d004c4123ed1140142447957d592e818a12585b25374a0e2021b0ad870e1655972c64ed0af5c0c8d5a2960fe24433bd497083baf999a3d87e8f6985ccfa8af2491fa1830e8c7d0d502ccca18692243455f2cab9886c8a7810e57ad36c6b3310eee7ee2f7c74ef657caa16389907c4cf46a23bba718a44731516ed7d38f236e97aaa82600e13a04c125895c8ccb82075be9bd457424efe46b2a9083885c4205a459a16fb2042f63201212f8252960794d7e21feade077514809fba043bfa6b6db4f0387186ae9cc91399a08609b69dc78e601b63d27006bb9b5e46d88b3df7258f05fe22203b2cdb153add5ef01a01339590128ab84df50ae39bd6af0d8922a576fba5c45ec2f9eafd9b9b85df023d9df3a0f190738df4abb04f25f0df2219d4204f75e4a44a2d2b0ade0e79f70840b72fc904c51235fc7952bf8225c9cb278192944346a2f13601b2eafd8250c4c319f85749dd9ba06a5a8234d6a48a941fbd8b342fcfdab3ce55e9a612ca8a07a09546a842d35a9a45368316582d1887238a162d801d36fca79cde1a64d945a2d840a351f68106ebec6c2c308e9a2f92447741062da4664a15a03dd29ea2fc9508b9511f282d82da1e40f029c44fcff44dfddd02e85e9ca0a88d32a2603ec80440954afbbcc58e43c74b99f36ce59e9290300975bd6af5e3731ac781ac938845653eacb6a1261f54f2a125cc1ae6c8c2469fafa2500aaaff7333cc9553dde495cf8d11a217922bfb9aa5bd778e35a825a202cfa9cb5cd5ed1a2ee2d3a8892024384d1b9bc40a36e8a0435d68d0f2da4dff4c1e0a87851dcc8ca375206452608827950948a8ac0846b52c0bb4005c545608effceb0646a408d4338107cf7d777ac0de2827bb76a9c0b285cf03226cdfe2bd3b87421a50a22fe281e87a3d8aa73c76309b0156ce2088f81994bca6a370bd746a462e439ec4ad1e34e384c513f6325ed8dd2400f8fbc3bdff75f9a120aa3f1ff97c1229284d16d0f4ef3424df3369d933ea84a9970aa34254d5902466d60edf30a7628d63a1d802873195e794d43fa36117d70a4c1a1e60083c318bb4004a18572115585acaadc980392f38d4c06e41d5070342413015dee054773ac9b65a99efc7aabd829716a73fd01c1e7d3c3e9631c25d5fdcb950c66aead2d9e1690ffcdd83baf16b8b55d5662a4fa64c2a8f8d1d0c050c508d28d3f0617e628d659653c1fe16588e577551398addfcad305940d2583dd736088ab814c94557ad2e2420c94b28c82c5668e4e5e29fcd9a1b8491544fa5b7ac522efdddf20bc47b760e51fc5bcb67daeb20509dcaa3b4d6ef15914eef6b7c30f8bbbbf8050e8fc0b9c439f091577d59352f34ae5d8a30c8d7c7b5090c3408f476ab6e4e858d3431c7d6a19a1b2384d0a9d75ab2036f26feb4638fd2ce2842a0eaa8a87c6ccd09173a50ecc5062cc44426312aefa4c62d0bc7a36b5af02c355c2a9259c118f4a48264df807430176cb9f1909dffaee7cdbaf8ab26fc0fd72f07f6b48fb672116ec5a109443574d27ed01f758152506a2011fc439201f7e21f05a77edaaab59291bde3a07cc6b7c2b501f190cf992ceebc23012abd09f35c831450332cda70beddf69fcdaedc4d00657e83c106b1c25bd90d66e47190140423fdc5d6cf78329ea9ebc7a2542712eb3214697c5f078df868e541564b7c28e4fc83e49eb979b0b31bffb6983f486d5bb349e85b304f0ba6fa970948b0d9278f0dab657ca46362706e6814eee239a8f9f17291ec4230eaed8fed3993839f78740d3670f2a31f12605240b13dbc5d63b19c91698c8af28dba2a9aad525cc5732399dc65c0bf267a73c6af2cc304167171600fec5a57dd81292936a8a126113d769b88e63012cd56b874e3f6e7a9a05d2aa7792ad73ac44cb10d504ee0ae68ae870e012375d39d4d4a0592409abd54f368ed3367acdf7239f778fdd391b90ba8edd9c1f909ad0ee6c9d5366e126706956a67b1a04117fbe052fd1dc52daf93fd5c39334cdecadf9eb065b4cc78d94fd8aadf36cbc0b95f50aed1e10a8c080dd35f8a783bc9909790b3f8bb431763cea0b3b1b9acc4611bedb6e7913cf47654ad470da96cd9fa4a5f7e7ccddaf5a956d5539d868a97b4adb55a3f51215d568a9c8af1de998b52ea8296aa040d39588c64b159f166c8431091217ab8ad571074fe9a9ac47b1afc4b3152873b61b94709c60ec9370f4e6777d5ab2336b03ad7ec2dfbf2f8376e232ae747a8f857ab04bddbbdddbd2f93bb58ccaa8c5e3662faf8625ef9485f5d4612c97ab0ddd123f499e3408834235f6143413d5adeb35b3743de15010036471d83162d1a4c773a9820780351d78498811513354252d6852dca09663cfa35488b0208683390dcdf28ae852ddb95870853602bcd7301835218529e7b9668a9f1d88db740e9ffb1247822f53f754e4d745fe20ddcaca38e53c460106651afac8d1af7a2abd972e8b11233cab3884d126f1c192239ea1016a2d7cc1c41d394fba8f3f2380323f5ab83c293406500f7c5240a089fc2a1ed792ef2a8fb23d2123430501a3a6897246f2debee4f751adf36d74e4dce5416f9c8e245ce853b48cd76e9ff08776f42a6774472cb3c159db879641ef3ba8f65621e6f013b5447ead2b2e5018f48e0c75272f59a0b2291d62f48c57807e661d55ac3670016de598417fc120616f340ce34c94f78c58a014b52ef7a060211a4717fc90dc8826b787d2b8c7ae986612dc08696497e8349a8b1a30bd16bb6568ed3727490438e2696c8c807db01d7a80468632bff0104ec337d28b60ba2606b8b247445f7366866312cf9f8619de93e16a59bcc1f100517d92a506a7f48b114ccd9c9b33ee914ca60c5675975a648ae6584a7fd08031815ee5e81a9968b071ac7f15d0a9c91a882ebcdf769c65f474b0c6ce53eb9f229b66d3c25ae9ab01db63012f133a06cd40536e8759ab420c4134c2015789b8cc75b006c758c6021ff25f93580710a2a26050fb0564a75b0be6b4fa500fb156dab25f2ce4668b66ac32644e5d64d9df7ce1e0a54565935bb05fee44b72caa82fd13401309b12949b3f36c007a273fc6091c8ee79cb74c40f709acc577a3fc6dfc69efac8f88831d3eea3927c1bbf4934379142f0e71e105f9676c64e8010a728637527e6ec8c2e7b8e9d91e21990b9f5d8cf084de384973175f604564ada603c30118427af3ae45ab9e2f8ce27a310001585981a4038e70858196cb80fa56aba626df9ee60a5389da75377b2ac3670d844462eb2c1faf6e8dad29815e2fcbd86d009206580b63bcd6516093ad7fd85318ced1863511e226a5d3eac7445d6def980355248d14080c81e6773432b0ea6e376350f13230a364a1112f39dc92ce03f08346d3399a046f55c32bdd76c47113dd9cd446aedbdf7eed01eb2810a91381ada7f179be045cf77c41c6108e380dccbbe8a90701bed76be3f833aa31bde878c13c4c07a262be8a600ce3082ec50a466c4616b509b5c2490062a7b2135f1636cf35375ac46fed211ee7351facb968665f72ee521106a2dc9047c968b421946b4281e6d5a5320a7697427f3ec24807f734f1470dfd591856d3dcc7c61cf0368338e494f9a9300d459718365d5b76172707b213bcf456263321a2ed3d7d46c1d17ac8d3c18a372476ded9d9521a9aa5eeb622aa2b3a7e4bdbccbc65663e58d4cd20120e888072be42d2b2dd43a05da2ed0225149c360342a14e640daa698e5629440d0e5932520fcb330a1153a4a5f1ed0b9b60f9d190ef18c49ff35f0c648e84d8b935e1822272981761e07d81c8c47e3dc9d9d780b34b815c71c8392ae99d4cc96baf5cf972bc7376c9249067d9fc4d09a0704e9b2f3ad97484f7d7520eb809211c9b3c720f2a8d2b5b5f4e136979adbc0234457c98a2f1ef4cbcbaa6dd253f2b3663fbd97c99944e8b8573bf21cb9ef31e56511bb831acb60b98d1c30227cb329438bb73d452dfef61e4fe971d1de33731c39e80882e0fe95fdfc23dfe9e73a0252667714e15b1d420690818512d2657d137709976b54320c1010cf33a8d849ca3d8ecf842c78e1f1dd8f19f7799ba0c4f238516a6e10094c292469a68ee54b899d864d2eb9819e0f6e8583e234c17c75fa9089d191413ecb7348b77d4d102beb0fedefd70354203ea75f77d06cd616b117b237fe835ee2ad8c62797dbddffc5c829f86550ad3f444391ed10960207f983d45f703de919f537190691e1a8a8bf8594bfe7287e04f7e771bb60f54949547a89d7a2603e4a02d6764d5aa00517e1f54ffdac49ed9e1eb945468ab46cdce4e38b7a9fc006a6160cd45db536c00dedc6fd623f857d776a411bc0da9faa94b2e79984a34ec85778ae4bcb707e4ebf7dc64c3b795592ae1f893f35b4011eb2adab320c4d6dbefe19aac861c8f7122b56b65d874b8adedb00216041280a539c6997b9a4acbae25d16baa8526ca9fe20a8df11645ec1e857889f4267d9c2bda2dd065824c0f89824b3a714343e0c3e540941b9e5d49909267c41938322d64b4307b8ebe99fc58acfc1d90a47813425f13ecafbade6ca125c8876153718e093d408eecc2dc959a36abd756d95d62fe6c9cd9ed50ea2c613814ec3562f18b6aa0340b5b8bac706f0b1b2116aed5241caa1e7bfbc75c9757ca0608766205074ad04f6a9647f60b37ab0fc9403d632952bfe4862db5a3c55fd8db34ef3d189d351263210b6db81df58c5cb91272590a847fd7777ba12ef5a37bc2bf28123638ea496750e855130ca6dd679ed10c876c300adcff11740f7a5c55fc9882c7a3b608ae9e5326dbbc0ff9b8472fa7136ad79a0247a300f711a235c2828f60d638882066848b137a4b53cf91e98b57c83f2173891704ec7762135e6cbd837638ae5c8ea1165d934560045e84100f2ee3520be2cec9fb18e2b7923f52517a466a2f46993c51df39f31765acce26d656a6918d783582ba6ffebfa3e52168218678b04a208fe341d49bec239e4cd19713b746417a858b5ed7d244241a982141f8e7af0d63dc13d2ed9f0acbe1016618ee80104a11b68ceb6e6a74ca2ee836d8eb7e965e1a10125502b7378946a09c9e38f0ac273ed22aa800e31d29cde41939ef081a4e258acfeef94bd24570b2375527ae706c1cfaeca94be73ae6bf148dd3ed483cde03133e44d42319d9483144ec2a3e622dc53d699d2b387b8adec6f8a4e9a716fe7d9faf378d70940af7e49b07ee19d2e6c175af1b44a4c3c3bd0f5fb12df1bd6ab0dc08e7bed02853836ebf714e20ec704f323e08f61a0dcbac4e2b88233d6009913c40d35dcc3872b0768a7ee3f3d6480ef3d4545167999f03a07ca5dd91b8d3b283a735348640b7c28bbc4ee3e98cea5d9c5fb1aeebabfef749a71df8cfe45c16094d337e2fa6500d3cb2f9c607e0f2da50dd8f2bd388d4fdf37e7cd173d5036465c708cffae088b88885d1c2242a309f6ea7aec41d61dba088f0a2e8dd4c0b20eaf9bf5a6adab41351c352197471823960dadd1aff9659129d9f88c31bce15836a0d6a1a44734ecc37831a34e360870c22322a83436bfed5abb2b1c422d26f7f142f552d1888afc2e9e7be8bd3150d4edd81d295374431ac7edcfb9f3ac47d23d8c997ea6263ebc6b204ef774029a88f99a3f5187ed70c5791d948012a97d91d7c127f36e331bb11f9010de96e45176092c85d183d83570cdd624388349fae564ab9196277986469b8b4bbd3ad3cc819282097764340a0e641dad93f5ca04a8eb3ddd9e88f97e1a4b6f5dcbba37d9951946d07531c039f23b4e86d3e6b688f1af20625fb9d8eea6a3205dd8850e24db354c716844c1a847368a0352f0186c474b8d744c1c1ec04e0fa2af5cdb00d4c5b1bc4e1381299843fb9dc3b7395cd11138597e062f4431c595d53299504b696b4fde937cf85f86ba639f5424f0cf322654dc8c4df4a578964b8ba81701e534e2d008be300d8886d5d611bca420d321552f9556c78c074446b8139a2d7e7b5119bc2dea23d3bc36edd21e0402e8e273216b5bf80959c2828d8f55edb62f45e86e2bb2e30f5b08a0bdf1b70599cbaacdffafcc7e6ab437a24e9ef68da47fb5a3cabcb69536eb76e703d83ba254f4e010e8b3708a91ffbb20f6f3441740170eb9ae46a87a42f2d5bc851ea7fb38ccc3444da8b475a2d240978358125aa5da59223b66e04a4898c096f23938565743d5681f2f7f0e4440870681240f8f73f8dd793a6e9dc1bb09f329bfe7af16b22c53cbf5a44761c086f9c9f4acff40a2d6cfd0568669f704c4eaece984afc204a8b866e9d9476d84b1181f9043a5d256045c1a62c4f890a66146cddc2cc98a3126935ffdb03a65079faae8f7dd3819fd330972c6f5e2b231ed4a56567b347edd20cf4e29621475fe8ee1a651c08a6e696bedea0e24be403ef20054c959fc70b7960a910e5aa2fb9274fab96beb8d909e00b5c09f55b1a189a200595debaffb2cb8a93f44c35fadff20415168497c7cb5ce199189eb78e0337411e80fff6b9d7220bca14960c3968c5200791c44709a84c3e0fc33b747d359ebc4a0d23e93e200a684de63dc2ad4ba18edd3ce91a244d74c67bbf07d9b66872cf4dbaa5d73d48c2afa52286bbc37a41eb1b04957fe7e368ff3f2b400f284286c6316d037803dfa38fd1d9e99098d7d31eaedc3be4efc9ac137b0c07ca2e8647f11650996692aaa13064a340055d4a442199bfbd30420e4fac470a676898e1bc5179da0e090df35f50d0e1105561feea1cd4e70b164fe578e5d3281d649bcad181ca488c57f52462c475846f9d0caf25fe8ebd0cdb75a7f80d59b32d9858f99d371ddab92929211227506d56467f8f80b1aef68306409d2b4df61dfd91a958b87251d159e3c64621dbbdf697e1ed5aa9217cba28b99d642b447027b6f39a4d5690759030d65807c32a579142e8ecfa88d3537bd77f102f2f8e8b4f579603608c9e18bbb6bfd96ad8f4c3c8a2c41f304bcf97652ac2522fdee9f639827f0f1b8b66bcd9be1138cd79ad09a88467697f73dce6a913fb7b6732b8768e97a448b59cda85c2b9a61b2d8864406208c59a87fc603dc0787b9310cc01750e9419aa857f2eb4331535995f3b602aeb7839a70781b7546fe69c96c68a41337aa38afeaf4b1103285e5a8b6a7c850f666a0054ad8e9f09e1b76eed856cd69612bad9e83597b8c686a38281d7f16de59e6fe9986c392eb0c7346078371906bf948120148432c09588b7104c094e3c93c0eac6598c1222804e271b77d61b48b2d578bd97f9a223c491fd22f09baa8a49fa1c172da453fba5c6c32aa2b104696e49b83f4a5355526d416253013679f40cdf156948d63b99cd46ff83cc1976f26d249c6ad970e2e84afb93723520c379fa801b1bd47280e861343b41e7bb945ebf1958cbe4cbe8d709cc06b5da414632ad78f30d5df6cc6735c1e88b6474cd60fa87922fbaf79003f0db09dd6aa9b95d1de947b7ccc8f0227ddc23a6d13eb5b621191d6f8347fe5c5416281790837b73b203a8be8c9dc8554707c5538e1685c25ede7b305b821889aa37f03429f6087621d4dd768e94a7b7e01fdef00d86261220a16a63c8a415870191afe9b5e83ef926efbe9f6ef5c24f999599beb76545342d0f2d58adf2b42b61a553574bcf15a4d9918bc612c69580c19f67d7dc72820ce01f129811408c5d188c2eeab1356fd1e215ad5441f7ee4c3c86ec91d74a246b9be1955042010f0643943cb052d8909bfa7b3ef556b0757ee6c54dace72fb7175769ca79dc32adb8c653fb3c68e4cd899cfec49a6ef8affbabde705ba6d43ce374ade9a95909510e85b487b0d2bc39e5d5226905cb7b7f30a81a7f22e40a758f00361a12b778f4965545118a3d9669f0c970f8815813ab54194070bbd03c83482544cd0bb2c4b70260654f5e9c3a00216724169bf40ca3fc4963d3e4de54d93546892ff4323be43c031907381e3ddcf46c2610bb05bf7e7a61460b83863fcfc3ea96ba920925c73156f67cf916e98b3c281962982edde930979d2b06c1331ae544fc16a715a0af3302e5267acc1a0c3be6d7f8dbe4edd3a64572ef85e0c879bcf4bab222606eaab0c3bc3ff2475257842c4d601e3dbf3ec45ff9b20b1e392111b3ccadb6ac20fe1f7424c6203340d9a08631f9a4ce463bd1adc94a4fea3c675fed051a2f8c7457e06e8fd787108f35fa1c1db8bc6a84dca1484f0cbaa07bd2dc7acf0005918561c40bdbf686843f4a74c067a7a432fbca61bca642119fbc9f03228205f25dc29df7787ff2e0881315aec457d00439e456791d98efecedff15692d83451abc8e7474a17a2f7e45992b2e8ddd6cb88f1c64f09ab0e9894e6e3954f7c88209984f4e8568cc9a4f50384c9604d03671282f57940217dc93920e7bb79520d0ed1bb63a3f300752ba8903b58bc5b04200059429a0de627383b5a091a0bf4993e5d08fbaa95d82833680813ba4dc68619160a7baed58fc1793fd2fdedb4fca73f2f983fe8a0bf6374012d35b07b7e8a08cca52e1aa8eaa44b019b38b5e81f4cda65c49e8824116e4670ae391cbbfba6d251c168bea0b79a2920ea2c3a99cd3b481a89752b36bf4ed837aef1819d0229e0f2429b5b780bc9cb506dc2f1d9ac3ee0852bc13ea6f0140677ee6063f66d8db18a645d5f7a8aba6381411e119cda48d700db73ee0a19f3e3cd857b15d7a5523d132cae293d3f248c1795db57b8a37dc9c078595546e2824884cf29c9939b859670399b3677d31046791c0516f91bbc639fd50a4846f8c90acde8ca204dc2f8801273ee82cfaa1b736ce46f80a9ff8a34b1cb1f7b4a62678ae375ddc26518d6072736a03bc3601077ab869441001a6eb5714b31edf7f6d235d5696b93bca11b3b3b094b716bcc5efe56222579c2480dcfd3325eb08305b20eed9fa01e596bfe1c8f74465b8bd798b3f0b0a3fed134e1a8715f6faa364725248bdd0843a37e0d0d1630488b60371968e34c03b67b9ceb2a8b84aa300028e1557c3b2d525029ebb4ec3a9df174e507f3b1f1c3fa637721c9a523d0fc51d45c5b42bff3f32b1a9c122fb239f17442f472805d3b4c15526fd58eb64b9b4c3f0e0cbcdbb42ec9f9f5691135cf2866e001d60f8c0ce2ca0b3e0eedde3f9bd2753d8343e70b2edec66c0bcb79a1af6678b1483244b56059d9b0bb000ce85c160d20babb10f1ba06e4c4d29e3f843d93067e972d127984c88ea3d94a7cfc7ba6a7cfeb5f6a718005198a0542426921014bcefc49aa521cc38106c05ec3f820bed5bd86af587a6a837d262f8585831fcd93b08089655f7feec0379c628401d4fc84cc323e1d51766596dd77754e1fef9e262bc85a7c1dbe188353431bf77a26a4f6878854f2c389a0d40eb0e6ce157761c180ddf8ecb95ab3cbedf862be60e4830634bec1fc2e549cf7d98066d01bcf7fdc7785402b49fac85771b01c09ff926be8a22ff8f134090d01933d0538f080f583df6505198a542915e2cea08d5784c6145499687c3c511bca17085454ce3763143c4320d3284047c4019c445b1b35f06d5d4ac1aaa8ddaf709cac176c5ff3f6a06b90df22e2b4fa9b0f3ee62dd45d3ce8f032df8aa025c7d696fc695ef091cbf9045692b71a056e47e58837e77e07af6dcf1986f0cec4815c048c0de291aa2125a9576648b6ed9a21606abc7faeeed9e3e805c8ba0f598ec486b4f6fa1195fda8134b0d836f18fce857de892380fe1923908a840eb73062fe5a4e660e5bca8f70e4ba6fd6beda158ab686b4e206ee24bb79075b797ffffccc44c7bef74980831aee490513a73515b0647bffc1c7829d4958328b418767bc4c6d4246b8e04117f04a261f179959b07e9718ca0bec72d6d7ae1fd60ecf653b53b1007bf4642b67aace194b4dea7eb3212a3e20200c65e417e784c21786426c5d7d0d25241d991018e7653330d2005c0ff237da49d216c0c3832791fa71c0276ba23edaaed66281edc6086452b403609e6510efb7f303aa5fe5eaf5578f51751aad09727839700678c5de19ba2373279bf200b830b260ac04ce30435125630af0cd19de56596994e55ea4d3f77570950928908ba94929c726fcefc431a33dcc349201771009c54e983cd2984c4cc09e3d3469133b35690e01f698b6d9567e2e8082d74fea838344717cf58951ae8003cb74849985dd0a7a53167db673fbd4d1404201173fe2fb0a01e88eb32f57ae28b01ad2fe954c6d6421aaae983f2bf09af296ef66661dc578648d83df9721758f16f147e96aaa115d70959b3bd32006805298aab2df99536df46bd830c6c414a2d517de0f0ea3bef7d336383fee8cbe8fa21d4b4e8ef89cdac3964ebd7e1a179855ec7c936c3e38b9120d74153348b53dcb45d1928ad356ed87b2de87937c83b180d9d908dad5688da5b8e636e746405e5b7d601a5bfe2fc3a8bf41bab97cebbabd4725c3a56c0dffd52727c02240d1f9bb330c85a939f0b6a0a9f704dd5cc271f0e7f57e0d92429737d1161cb6e6b9e5341d7695c47cfb3fa5e6f91f0f05371b81559b069c51089af04c3e89ec53d38b7ca241c8902df785cb54bcbcd1742f6a6f42073c49fc46558b991e25f803c3fc0c9e6c69d4155fb50d412dade9db97d4fe8fb1c198f4c718433cb0bdcdc1e0d7a557b9f04f0081e05c05dfabc2ab2775bd0e6bc23a561f22bfd6fa9e6af74416f7dad62f8e271fe9145f514dbf0a2a6efc22b4d6e21b232491e2e0d2facff4545fb9c4411b6d803eca32848ed64a98a08ed8547527647226b6492b5a23f63da87b910578125dcd095e7b94e94151f02049aa2b8f96f150950c5ad1576a762b70443d87b87fc784edcce361b6416b2d332172ec4ff19b6c30da432e611b7950f34043b6c664685a632c610e61f7aeb33714bdde7a09d5e33896fa1a5ac5feffa8e8b78dd472c0caae69af698679b84800e6eb0e3831fd7d224d8f60e24c5153c0ba8a38ed052c64d3db67ba983363ef774bc82ff6037559f53f30a0830f917b445dda1a8738bcabfcead133cdec5068a6891837c83a3a08afd8c7cb6bde4ded7a0d49ce5c32d1c8a585200b37c7187903f792698ae6126f9c9871de5e95a9bd20ca0f1e2ba3cf43021b0266314b87f951a1f7433a3ceca1b545f5d90d422045c3cb3550a8dbe77bdbd6d00a7f66eadde33a96af8c84874a66a6840a28a53b539951893ade1500d108343738add97004f069d80e26a86a7cf216deeaeccf651e690a4f03b437f2c25ba30ed7825a3a64ca0ca380f60ee311462a8b6d541014265f01a87f83d0caacc7e4a8072fed55290a98561440cf9c3e47e284feb623d09fdd1ecd66b7edf7537fdcbe4a5e66154fb03a7d5b0c423faf2f1b60eccb396814d6921cd9ad30d3d776e3f01480d68005e300b6f2aee1242319479136cf838104bb0a2a0db9f0e5c8c7252b9b0260651e0bbec32b73e7941dfb6f4a175c7f45baf8fa37881df1c63783874d81fbe4ba8cefaf749a6e65d426841e471a16df30be651e5c61b4d748816c0754f61c539b4408e219f4eaa2857261751e1e4d23efaee9e290230d5f590d9a9cbd69bd4b4973ac16a4bbd5daab4883c649d0d663ed56a756d9402bd0e867b3bac907adeae972694452dfdc39710bed96e7cfd7656d2f373b8e3515180b83e21db08a57646c85684a9797cf85fc07ad1f4ec949a33f22cfb8d910f406f5fad966928e9ff573fc7dbba68a23cc933ebb92fbb3e5734b70e8d58c6b9ea0ee696066135125590a30f60675d7b5c89123b73c670a36152d4fffc1afe853766c9326d38890a72c136f83c8efa3d17242982db8775c309d6bb9d946cba6720f9c5e287f44a9a46b8e553eb8284aa51faba95f13418811f50c803586523e9571c0707c1e21d16586263e5ad1abca02781ec2ed97a5464bc8f8c139743037458c65388b9dce6fb44af736e5074be93eb7835896b049874803efcaf94db06e45d7c1375a39486b11c5e9ade762c116c75e6836d0f8c3c1592cac62b09d12f7cc405e0a32cbca0826cace70a0c10eba046864e0199ff930403af56a4161eeebd776a3cbad1e14759337d030e563481a47c010f61c4d9dc970ff7eda4564673c577198cf4bede3fbda365918f43fc1cf58776d6ddf947670a406bd9421d8d067c98882550e5c7b2aaa5530ef6a7a8430c944ad6f2d604eb3cb1e5c40b67146684f8441e83fa4671eea8443b86edb8318d3032c81383d3de1b815b7a0277a536b53a909242501a6272094049c3a815025205d02841ed8f662eb104d4330b0f7134e33cfc0ac29ed01dbea4990300e527b50ec6f0715a1ce49982c8b5b114741f5fe1d1d7773bee92c3bb0ed185c36043738e50c8d32b91a7fa0f7fb0a089f5404d00863a6cc902dd61b9911c7edb7848df62d9ef459aa55e5a5b47c77c3b607681a7cb713b7336c261ef7da8a8b214537dff4be7eb9b0c796d8b2b3cdbcf15edb66a0dbb0b8adee102b0240f5367cad3498039e376e7645b8efc7c51243c0c0498b858d074e63dde1c062d189d0ac82745d54074e5e5fafadf2ffc3a3597598dfe1ae2cca5235378a37a9f4b63a955edb41afaae29de5bdf9a9dfe2894aa64adafb8e8735b8d81f8e13e1f759faa32657f6796521ea39ff125b133b4974a6e0e60e1fe6eab9f8bac7681bf1ac5bb06997c62b768d5d12380011d04480128bc955268f3f7a27eb21d334280a73fef25411bc84b58229e26ec95e00a6590b329253940bd0af00e8f541989c5778154bbd5e1bf3fb817b94f32927c1cdc5b74c289ef9735e63e063f5659900399e1b52e699352bbfc5d295dc1167307b56da082df3068ab56c2db7aef020fb5232f40e74251e66b4dc49282238efba0569f3fff509ce63c4b0221be7b17c106cbaf9d711d4304cd33b73827f4fbe73de65edafb9528a75fca330eca2cd28a230df671a13535113238832096f049d2d93c59f45344c3f9c0e477a81bdd7f550e6aab94ed4945708b1b54a0173d14ec50c73566e9e92f5e9c949a3816466a47b4cb23cfa9f0f957ac8c7462292823f833160e97f43da91f5df2d693443d6493b845e81cffd1b2335f0a6bd940c7139a3a507966a5b0ac91b40b64408bc2c72aa172c1735b58596469e9adab628957ea391c1d8a488ece31935f87b9cef9969f88c5011b23af2f73f1b07dea4ab44c9105e49eb116840f86ccdc1db5a2add1db04765b7f396258e300f2e3a0836f99f0110ced856f91e949f70cbc911f59b43fb204bf7fb0df18120c9e83fb5689c97f771f39dfd7f1bd899f4699c51c976ae2df39018c801a2577864b5c286eff350466809b53a86a0b275722b8311faa4b72f475457bdd26e5ed87f5ed88bc993765d330436eac5f28a9182605a8920c0a4ffaeed01f18882ded867836c57be74d3c1cf3933e4d1cf7990572b33af07cb9bdeeff22e3054566a3dc9499d3643ce18e846f881d086364f4dec799d2c94aff758c148f070f5c6b9de0ae3c9aec9950b0ae9a19ed7b612ea1d70c905df5f4ad7b61a2310f0029c060d96d30a3ff7587d961a237a18a0c2bd9740b9e0ce904cd00531658d12305081b27473254bcc73031ba9bba2aab97b758c0636edcd0dec2e28a3abc42c376324aeaf816f5bd2dbeeb7019c0171cc66e5ce6c91e3b1ac7a6ef170a9a7587b772b699785d1248689b03ad0b619f837b5926614cacd6bc83165a951310aa2372c88a2d5445ebfd0134ccedb904bd483932c10b6597cf0caacd78c3aae3a93f7f40c0ce2c203eb2234c7b402e1d1f4c09d8381b384355b427d1d6448604d86a96c822b1c2c508132d17aebe016de75e3cd29d8abd69e1893534deba5f645b00665713a976cf5d790f4d2a3073b914ef32971b362e66c6d2b468b39acc4f79c2a85a5b5da4065981356fdc506420fbbfc122f8103ad27d1b0386e7126de5fb299a0a8df5f725f016b8210bdb9ba6eff6a8d760b892d478d23399a9813b9dbd4b95e14afef41fa8be1262128eb4b176c602c9c036059c16a8d1f5f74cf28b2ec95f2fd7caf8e8a6bfbd6357615ac0aaf958a3d79773833d6ad61cb1c938de87ba18badb8456f6c4532a4b62888bce4039d2a4dda301101a69c6d2dddbfe7aecd83c3b193fce5b52f925a04bfbc68ea21513d98b8e9926ab4642dd4714d69ebb0839ee919036c4869eaeb6227dbcd28a75d695c6e74977a3dd415bf5f9ca87992b6f77e4e515e4a96c01bddf1bf0a37bbbcfa5d4d8559f6cc20e2e93aeb306b2b65d8024f725c5556f6f2d21a534a77aaee6cb214a01327364a10e271a5ef7f16b7fecb105c8fbd10c92ac642cd67981c8d2c83f5b6f8755a39bde893138a66c16d9e68129fedb70f17181cea252ad8747b81654c654b7f3252b599d1ca302c55acb1de005eb424504828cd16d052a5052f09bd658674f5e92ae75955717f5809a082da19338a8f90803f0665a7d5d855fc011dd9eda4c0e9494f36675e62026dd5f6099d91481ef86a4ef8cc15a84578583af5a4bbd29604f676631ad0bc5c0000c91bb49213416442624507c4d0a27c133ed05154b09a4b7b49675621c973c9a054bd5a6b29da527d3e66849aaa4d28e63baa887b55d65492ffe2653785dee793b0389380c6a7b25f9ca0691b315c8354f3dc2958d78478f2c341ae0cfadc8dd211fea5c3ae7aa8d7efb76f442a1586e99e1c3b22272d1dd41cca12d8f1756754952614a42be57d0820489e00bfa16edd028d78c58f1a79fd134060c056f0bf35cb48ecf00d058514d8dac617911b30e532d4c2f7b5caee6aee33111bab83858d0388000dff1e282dc2f2ff0ee473e16199c05d0690b910c5937a7f99d5dac70151aa21a5d66ced85cb50e9280a39a41fa82180738d2f593360a7b01bd724b9bd782bab1c1524e7e6878a4ed9380fb0e0e8f0a5f070aa3c9406b081caf347996cbc4be6062bbe762fc2673b399eb95942d29bf6719dde4b2ed3ebb189dcb22b47805fbf7859d5222719fb9d99463b8aedfb49ec12988a00d0d69e530d7c49ed6041a3212e96f6d2a0f6226478c4126ab9dead9ea4c5b61ba4cecdaa9bb0b4fca4e4ec6af9194afd3c986f8cc908d61d63d92021c45d55ef84c3ae8301a83c37d12ac008abaa0adf09067cb69a72d479da960503fd599cf9c425df3748d1d0c5901b75a96d50a03b42229758edd4bb1ee8b2c52c977ba13e2fa9ff25f79b59ce17c87909cc561b65650a085402d3c98af3577e5b6d35f3fbbf68ed9e33b4bf8c6afbd99bdfcc7a2d19fbdfb6bed6988e2a1cf3e4c2df91cd947f8ec8f0a0bdf4282c6ec86af29063282714a8e50efd15429d3713a8f88db928ecbc997658588f6d3aa01be3c2e34478b0ccf6d281cee6c41276126cb8254a11ff5009b3a7dd22e1f2a42f94820efe75f3ca4d6807ff977b1f898ab59b67d79fd8ba011932b9973a9414ec704b69fff4c868e5719c42eeec930f5f77895fb4c08231e0fa64f4c2bf4630547891a4be6633fea8cc610c880159244bd772ddcb6682b3b9e630c5817838dbfea7bd6232a24aeaec42319446b57ccf65c9c846907ee5e5007d68bb141c6f1454d41f1c5cdb141de3bcd66869e01e3578338d2f23f4dcaee31fab013f40b3f67ae23a616483cf6c78d6dad9b690fcfd518ba36bcd916777f3de4e43db6d98adcf89c0f106fa1596ad967f3d434ec220b900952040afce7e187b57f5806c23466494bc87e3f9a22f90e8ea5f7316f0437e150e76f509e18a9ca23e5fce71a72139ee5573a0283e79553a1116248721c9805d99fc262057f8b551f51a611c374a006039bc931ac5f10ec1d1c0bee600fbfd50c66657479f42cd0fa6c3391c27d82005afc5c99018bf690db041442e6414df1c13c7c56704759040d0533fb120676bc60079bdb56b8f2ad617bc3d2ff1043279fabff3a1c8fa1266dfc1ab309559b66ebf51912533d2d0c317f6a3eb9db371ca66518e1d13a65842ccf3fc3f0a7ace56bfeefaa24a8341126edb88b4d170d4e732afe81eab64346ffe9131706b93e908614d9f18cfd6595592d1cc8d70ce79e205ac5986772c6a227e63ba74114b860cf13fbe4cc284a88d6063c02e582f204bd619a33f6ac6e684a8b2c845cc9199951a0eeb064bf08ba82fe9b13d34194da04b48b8803b9e70b05e9e8b5ea016588592a41498a284736b0f84c5a11a2c4303891552374c4b8e50084d1d5387975fd3e5a863e7800b732df1f4019a99fb55e6e1443b68aea3a62ae599d7285f648755889bbb1d8f3e9a22a4166db5c92487623cee59caab7770b8816f7e2d0e968667ac0d408fa44fa67eaa67c15c3cc9c72b90555167d90689f7ece445dee70101a566313ae5e56cd3a1a62694a3a9cb99091b40475f42bf02d1a0f91ca35876ef5bcca40ed6d748326ea3460f44f1f8f024e689c527552f8f1ab9316b04f9020b733fc6c4af8fcc6e183e746398b0126b65de52abdf6246f114460778a7c7a746bc4f4fb37ef9335aaa73a734e83ab97dbb166bf794ba5b26fca086903a6e2b4a182bf85717ef7295682d0865b647cf9d50523cd432a54895340fa4cd7366d4e043885aced3151c83a152ebfddbae16531dc34315cc0933a290f2dca9410c993b4a55eb923927c904f330538090abbb0e61b296bbb0193b647c76a7c71cd5655ec351bbd36a0d88c4b559056d5e46e6eb8db3521286007923a037296876f060f8b11b4243215bcdc5b3237ccececa4e5ee55b9aab4bd182b7a778fc21bdef0476068ce6e010f8fe7e1c9ab3b95dc88f4270e7992b39b399d30fa155dcb3c4e2007df65f132a9e0bd2b0d294c1c954d2821e0c64f4979392d850f7978171bcf991ff3c2e8f13301d592a1cc0191adfed98018796f987f0bad5a479e91641f8eb78dbafa6cbb0f6f46aac78608cc83e66f60dc6980f535db290606fc698417015742d36331198d54f48440881f404f24a8f840aa17478983580cf47e4ded987868ccf75cdee293d2546df683ab1d3dfe7cb427ad310bb1631bcf4eaae2832ed7bc08149e9bdf9b445ddb9e60ed51a9fed4d7b174a47051de8da15a91d6fa6fa11a0dab57917aa2c5dda70bad8c6214192ac35a17f56e626409413f9d85373018b82d004d6f615740199a82cd0b5959130790a9faf310dfd40f7393604f4335f9dc83a779292354565123afe452f3452a430762b5be26817ba311087521337a18292df25920c51705fbf28d77717a55818a2568400264a439c7fef553cf8f8963b9cc2528ace84f48209a5e5227e189cd2e40e424c113e9bcb60b9c9f8cc5210df4c39172b1997936d2a71be4c893e277dbde57e17599ada580f17556d5c090c2bd743c89d875d2ec3710b43c4a76bdb0881e1cbf5206dc182c1302cf97765d72b0f3aea5eb9802094ad14b3ea6d65ca2e0848a145b6d5ed44996d92d9b865ff2aef6656c625c51a8c85b1abe88a7454578211bde51991116ada408a41edbfd4598a15fca8b9780b1db44d930c94a7d3ff8c98a1af9d221daa3fca5634ce645c8f5e68dcc51502cf00bebd7fe7a7fc4a9b8b43236aa0bd03f5745c3044792773e51990f393ee2baf6bc8faf22cfadc76492f39c20980d58de7e062fc7fadc18b2b5e60a560e24a69d1f3d8d0811e252ba6bbc45f6c6552f7682c95eaf1594cb1aa470c79296e55a3a2629d873409ae4629e097c24f7c7efb265d9e9108c2f508af20b1c3eca09dd09f1efb78d57ac03674a588088dbbbfab8ca2becf11af57bea562e37aacaba1bc2182d8b8fb9f601819f7a731c8059a541ad6c9f26794aeabe590fc551b426da1f822512cfc85100c9462a732e9b427aa2da09f7d377d06ab61766685cd6604909ea07b459033f403a5545123b4126b3b2ce127c67ad916b240b79d7549d4d4bb255f1ec944d7334db9bd7c391d3388bd56ab57d3bd82a3580fe544ef042a105d70e204471b5d51afc9371a2987421418c770c6148978fff1b07842a87f5dbbc751563fd48582bb1a5497f77777e776bf7ff96783f6d5826a98c89b9bb38ae489f31ca7e43bed43b02347275f209d9d558174779cc8ca7a2ad14ba9a2f266be9c2acbaba7893b47255e8746b5f85bfeb53dad9f2cc77c88253f0f7ea61e10dccbd04376021b9d2f6c3d7a91a52d5143439f9facc8c15b5c446eec27c7d48c952ebe733033ec0454ac0e8243811d08fb14a2409d4caa50dbed581468c52332a2ee667f8295c3751aaac8589afe2137c04a1dd5925bf209bab95bc41bd654bcc21b14a92c8b910053019b2ded8b7e4c8c62210c7821cb3c2848f1f8fc9018f41daa75fd6d24af657f759de7613cc0fcea483c39cf2fe719f314a2da4f74abac1d96c309efb9b06302c339b86fe5114f7f023ec18de84010cee0662a142c17a76e04da800aaede345ebdc06ba329cbd93fb6edc002d05f54aff2f98bbf2973288aedc5fe79c57efaeb3f580b391f7ab30370032400f320ab28a122d0ad82a54db988439d5a15697596a28f7d4ca441052de328ee638ac25c0b8048f7181b1813073dacdd7f8406a865c6dec299243a77e64d1a53d5f4503d0dc958b45dfbe7cc232a36f734ebfbd0a193eb556267c5fd13e1ef21f21c9975ad3d7e3917316b7aa4203ed0c61cbec8a1c081263bff7b57bde5cb1ed548088a52efd578f72ba26496047e6896459fa39ce04766a92ca2e19dc2b42c92934e4fc05e2e9b4a71faedc30300ba4e50c872a02fff31d9f5be901f1c7c4ae5190237c2cb29b1da62eff892ae0bcafb6078e3a3a4d340e2226d1a4262a1300a0373895a6738ee6e283103ac3479d6a83ba3aa454cae3f2834821aade458a259fdfa04034127dc8846d8a89ac85de7ae547571fb5806bd3e05ee24914157992e4cb069b29075c5451b15cddaa8a4ab2a5f4f622e6692e261de01621c48c3e61b74cec0a8df4870c0d101ce2b97a48d03e8fa256b16f906550b7397a7d0b11b10f703d44367d181d5cd5f5367793244778e8660c0bea399da6b329d2f9a3b4927ba4c4b7eaea94a14ad404c343dd66baa4ab734e034990a98abdcaeda1dc28cbbbe069c54cfad48606d3dab6f22004e8252ffae786f9db810daf3efaab83cc2355d4d790701b3056c8c0408ad94a62acc47d5675c19afeca84dff8224f4e9fc975041c74665aaf540e3e187aa4466d463afa5106431cfa681251fbc9c4bb419f00cca686ee386045c96ca1f17a8b6d4227cb1c25fd6908c2a5c70f8e3b20639c70510bb6436696b828d5e0c6d70a23af712680c145800e422cb3d3f7cb854d244040697e6b717d4a220be607ae8f3b09ab0e4c0845712a280f948d1c4a92e0e9b7d1c67bc632b9aa8663a04263671fee5cf2133696ee6b67929666f1d57bfeb687712dc67d60a6d8a54678e5913f987d8b500b8f39f5cbc20593794b0d16888431757da3712cac467eea7f8fbd90d03f0a030e9bc2b6db0688f85fcee9e710ad82ad54bc73886d16a865d46b6c2e341c7e1ae6eec2e98c5191ec356a6c9eee3d74263d946cd0069abb4d5776dc3a2de681c79ad132a363e93f5bd2e5d0af7c79340b6f304a3dc210158b1bb47e1e2b7dac620cdd98e5134e535055c5e8c3fb14f42b04db53c0bdb6502bef14438e56c49c536fcb528684ddac13b06e94945d67d88a2c038450f35a04187818baea4623d995cee7eba2353fe3efba57fa67e8bc2528eb72735abc5294c1439a3a4ef94f2f94b542412bad8c658785707b341173bc47551e0b29ad67d80ce0df46a5d536cc8b94d818e3a20e37395a372713f1ab91bb857510a1b227f1f10f60ee255bb71a73d873d9b17c56744397182c6e79adab7898c4e177b6be147790a48c6d34401c2b669882b6ae3cc33ab8be45313290824cde4220e141319a3399e0ed8fe763351dcd6aa2eddd167d568ba60d920a9f8337731fa54736c69109631d5043e750a530a59207981de7396d78efaeeaf7e883643c74de47f5153f9df6a1affb39ac4ff56b3d85fd44cf6a79acfc92326582bdaa93568bc0b5675aaf9e5d7f8d764cf68ae6762b1ee01c94cad9811931a643a8a53f1694e272408a00f49e40c8e1860a540750a8eeeb5f84a6f9e042109eb4094843c98fa8f45f58f97c07d86f150173c47ad52cf9fc80d30dda7008125d0b185c4e196249aeb88d738b61a47e11ca063f492337c95253414861e53b20e277e7ac6a0d1becf45c42cebba1cbb8db1b1bacd53161054be000bcbdc457d1f5d02c81635806556125eb66b4da4bb196645a321fcaf4212aadafb8beb229abeb9fcc57955f04ee17e067aeb352037e69c0b0805c705a002e7024041e315a2e4818888bf9e188a278c3bcdf29f4d9600721a038b451850870d122b810eb822ae661b7e66590bac71769c56f3ccb9055375799e8604f0077dad996a7c53d2ac00661e7b437a2fbdd34de97953c8a98bcea5b98569b0125fdf77bf32ca3642f0627b9a9d2d3e865eddc4da498df10eb89078be54b7d5fd243848fc74f01c30b910e2117db301224f1bff6340be6761260847b756326297c87f02b6d6527c5e4b6bc7008a62e65395beae6cc4301070e536cfac799641e164b072787eacca84471a010c956179e55e60a878969383f4b90434ef6777a7721f7ba5298a73e8eac6527c19d1e4fe2925a6ce24550f69e7c5ed5d164d7ca905e46a5952fe67d5a3b0a1f2b9e13137fe951d8c0183d4393576fafdb343e595ba379ad48dfb0dc8c6ed0664e3561bf865ded6627c8ddc215f130c744648d22a2ee49978ac748d5f992be1f29c243167b4c5c158245a04b15525003e0c0e80995a5d5688a6e35fbade661ced5b9658a946458f571016c111c4b040f1895308e5d96192df22561fc6ccff7a2529e72fe3114f251363a1b1c4f739345ce74266cb4e9466c65bfb11e3d4c6be3d3457c779405c782398c7711d028b8a71f4ca2662bc6198826477f406c20ac9a742342b8b8e87d73a63eaa7415a76829eee2e33a9704f62de1b8021ad724eb836d1474475a94b16d6f45311ccb645897b87753857f80e13622c7eca10bdc0f40f00b42e9709a239e3fec188cfe54f939df177b37583764eb0a3b260e77a2b3c56c3b0bf00b940ce6d1ea0250ea6ab59b79ba900f6b9f184b42b6cc1fc209993a53beffa5ff59dde4051c49077acd5915e6b7f27ff082a0b48c4f003584de6aa45c2fa60632373d4c6318ab463fb284d928f6a6f7146a0318882c9d72ccd815d805ec676a4aa56b1a6179b3af8f55242c3448b1fe85f1e345633cd5dd55770e19fb1417c25c21c0ab35ee111575a41f6ae411a4bf254fefc65ba64f9a5fb9de71477a471c64df2fdf0304eb6cbbd2f41c7bf27052370041188efa845b0fc10c2625920fc92e5caa9dc2c3b84305a1600dfaae5aa1c5932797dfe0f042c33302ab36ccb127a87cc3fcbdd90fa45c0459033a23414b950251773623dd72e6afdb818a31409d3916aaf3e2a88e5c3a5232df9580370796338cef6d1b80cb2697d71793e39e756d13d68d3e7bcb58d818623f6d93dca315f4400af50748a8daab983cbc0af1a17b0303e18d417b11ba39469344cf569b530e894f19da893357ca4d22a47ebdfe8f5d2aa0ea673a398704544fb259aa283a823bf1529df11e5f75ad4064b930c9f4180a12fe0ec279abedfddbae9d90011043aa8fcdeb7817568d77ccd8c128f2185b685bbb361efe5122487f6a8e9b0903e0ab784f085b9e2a1fb26d82924c87145f40b15dfa8f19911d3df14162cd3ee5ac1a8b96c67f4475e888e053f1ce3126b8a8d379c3ebf9864156b180f76fd66b09d7335dab5240b1f5c56fda050a5caed8141c37cb47be124297995a1f895365f353566805a3ceb695763bd969f3ecc4073adc718a4a42afa71f1792fbaa4c7e7e4e6a9442202aea00da540c1e1f748d49120bd6d2f57c1f31ed2255976332dcda08242817101a080b120703e5d889719afdfc93698fbd77275c01d59bd452947acf4e71c1349f225bfd0c813843b6e01a338fd7a75c8e8e7d0071a3713e91e4cfd9d185f0b66681597913fbd6a8cbfec6d8df981f2c62380bfbb08456664541ec0f6654a96528d606f56d791a0624801a1a6ce6b3c5751623d1e8d06170503d48a8ea05f499c7e5841f6bf972ee2fad19b4d30b5f4dc9c58cdf302ad7615f8f3ed0627b9b3d36a550784e614ee3a77149fac57ed4f572db901c80f4ed9342b60ff73ff21a3cdfe850140df71ae480b0e048b050f70e34810c365e89664c8e908d024546adc0d91f684243254fbc736d83b59db0f26a7ce81d6e93473671a339505643079de1bb1dc0605a4050782c5820341e289af9027bf55a73c6b7e3fb3d6bb7f2ad0b498a350920e336def2b7a41a4c95d1aca92cc2b57e7599235feb1aa73acab4f1dd0c7541a604169bff2efa6b1cc79cb78e2db90160461fdba08cd6bf6304501dd27c17a86ce38ce65b56721e22264fc0ad28c39d1479105633af5ac9301c446068fc12d98c7f2c2568255bf379a4100e74fefd23fc1ec86b47750ad67604eabc72f39e2581ab4091da4382954d7765046d9b299c3a2007b4b7195f526e0b8918c19c9b877368048114805390360a40ea9e0c6cfe869524856684d1901b71c42b6864c9ed84f9992bc6158bb8d0aea2cf278426305f0d1b7ed768d9aa8e6c3677dcaa6183d173a0296dc00190df15fc1b5c97b88128cf5e22fcaaa04da9bf3643e0516295da085d6bb1e7b5063ef5259a4046814e2425534abb04b630d6e0880831ba3c7d70383b65acb4b53888deef4b893b807966e81f36fe1178d59ff639eafe0d0cd7e014d151b831b004d6c3cb2fe763c9b16855367b3bd3f9f522a3d882b8d18f6ec2014177bada729633b03d5235562f7ea95d90016d273b9b26833267f79adcaa57fd695fd915a33c94050e9a31607c0314b54bb04fbc8faca55038f54947492da3c61f6794bab4589b9ad472b722b8bc161d3b481034385af3b767fcde2532138626b705c587402bc8e615b1f8363d895fa890da55bbe8c1bddaa01e8391f97a1733055bd63270d25b59c9c0c75fad1c3d7f5776b165e8a210488e9804bb9162ef35341aaa8a7eaeaeb7d70fd5451f5c82cd95a91f56d549ad4c19f3541f3d74cd595f6c294d45978a556601199138e314d1a5b4d47d9bb9abdf23d95c5ed6a47626d3ca5f8ce0bb5f84b7ab65016d64433fe7b9c58a7eed48736f6cdfa699dce7da90f72c3e1a78b458b1477430f98a9afe929d48c8f6aef29758a4107b2a69b9e2acbcf98d8c75b2cb0825a50c6e789e13db3be7a61f02e5b57d97c96526f8d7a1ab94aeee242a287a327a33da03b07c508c842d449d12977b0083e3caf626dda45574caaf4e79471218e85709d9b8e237759bdc4a9da15aeabd9847c2b92979a5e316e59f02d6b5add450f79bca119652edfb74e8916474945b7632206755d6982c38b17b77de8a6b137fb2302a382a100b1e080a0fce36121f3d47f7082721d1fced3dc42ec44d71c03edc6021bb52eab17fbec5bcef272df448f11d356f89c36c5ae35f0cba8e4d8b64263d8784e04066f6443afb464e0658a6b9013c5b1df591100382d878a939d1a940e7d4351552100a477d00a95400229efa42c4c2f3069448836dd9fbcbd81b9a198449f63e123c761a3821684989bd23d021307733e3bfb7b947612ac916c494ef2bf2107af8803394154f4ea8a2804513d5793b50d04773b0775334a03f248382e57b0f1b958e89c3fd638a310d029fb7744f4ae898381a5813f5d8dce759bcc66845cbf7e9921d705a6f2985c12a8c7196c7cd3a79b7fcdf8bdee646bb9cd97add2fd69ac15bc0c6e06bb65d5696a37b4e8d19aca4cbbb6da5adefa56313a92e9ad0ac85edf8480bdec19e2c8319d04ee5e0fa68c84e45063e881c6387a711375fdd1b7973aee94385a9e3e36b27974af1a8887ec7c164c92dc79c53011de99f74fc2b434cad4a7a4b3a49068c33f6fbb720be89c7847d34b79dcb92aaa49b37265c7709ff09d7ebc9966af8edaf5dae173b9c7e7d1438fc1a8bf197f51fd52bc53c1b8ec80b093c7ed5efe6c9efba60721118f576c5faeb306f688941dfbe038a3c4ff6ffa7a2a7bab99e597c2e941f80e2ce07f1ded918ffb803ca1f7e8b2ce162a418a3ad86cf674dced158d69cb799e0ae07e95a863594449c65dda69b981dfd3e78a4c55d20e8df178f7fa82864cfbeb6622f9331288f87deeafefc5177efcba63a299f6f7110c62affc80a7ab94176656c237d062da9c39dd533fe9e674c3110660efa187f018eb32e06179af3e3ce521fa39691f95fe643cee859190fc580cb3ba67e47f1cd450dee80c15257405c8a80c052efb466e2b4eb0ff49e0e9ecb2120a3cecb2cb3f99be6222509e66785f3e422d4e09efcc991b8abd45161bc4dbfca8a974608aca98a519b0708d251cf7d32c3675cf7c8a53c3a9e783c7c9f4a32f224109ea094d3620ccaf726c475ec74d8e828cf59962773a7251c0b924dc1dbf5568c9f147a596b375bb69991e5bb7e37d2f6dd3afcd131e42e1200998ad7ce441cfc7fc38ecf2109ddb379c91492b0a90bb6a6a2ac7387c388227b41b6efaf6877e57cfbbc91bd297834b5e536295eae56266b614a1b12a512e8e4a087f16c84fd297c8e0e5624b22103341ce38fd345f701c21d01d823c572be66896ab4c16d4dc4ae3d0eaa5fdce4e925fac7d29eaed4a035960bfee58fc7ed3354e81f86e7bd03484ac6bfe39afd7567418151a6c6ed6e72cb36eca8c7903f917953e704adfe9ca7841e23579a8210de671f41511ddd0f2f3fc857b3a1af974c868f5c89ac41d26ab0014896c1ddd8c0fdbcc53738c07afa21d5532439404c61c2385047f84d65d4fb2fa2519b1e7f83a17bfea474a8ea7fcafa54f3e22bf1d718c825520205b97cf90de11d4139cb12602651b3a7cc3f7248c7d35551036ec2d833c4a718991498e11b129dcd646727023c88db3d94dd06d417f55ceaf2caa645eefa29baa8dac33224ff9703010654a7bd7d82e7255d2d7e5a5f2e7d8d7b21ea84ca8cfcaacf69f4f97db54b18ccab973dc9dc9a567230748de75efdf9b36842153a194b2073ad38f25542855c3ff47f4faa58f6b75089590d875f688560fca8689ce6ab84bb90fc3211530e92dff18bc5bce8b25ac5ee1c41d4d3dd6075c9a2d45ecdf428370bf8048c045929b601856ed452090d350ac48fb5ab6974699869e0d1699d69e943cda3cf4378e2d1f577144300e98e5fc568f6a3f0d3de3d41a7ab7f34c23e57d5e44e31c38fb7a5a484a7f266f971ce093208f7db32ec6d74f12564ed1932da42211179952120246c584e82bc1ac48807e0abcd6d6be7081d7b8c208f2a20d8971cf9809d4356e08e42d5d36f9503e5acc857dec8660c3e1cb3736f30e1997e895c6b7b2b09a79a43c19bf7fe3830d51999fdcabdca557114a38feeb6c52ca5ebb11f9f3e24b166b82b10983a6869b2076a94c3cdf9072dbcb7302fb414d369ccd7ba10e20b3e5c41b606066099866a41b182568a6d56132f46e87e123f5e0d38ce4474365fbd044dedd0092734617004bd7961d754725b630efe0ec3bd646d39fb04ff70b72be589a9ea2beedac7729c0726ad9539ea29762b160090e01f069b7b4c98f486cf9d6835461c3c054604b19e2b56b365ab9291fa46560ad493b104dd2e4a18c655b9df4aec0f43ec9a7d61439406839646d00ccd83628c540cf0ddaba61daca59c51b0832b9cd6dc408e914d806a7002bd269768584edc0c2f408d92a5a889cb0e3c6115f8fabd021048ad847f768c09f1576a669f5dc0109a4fdb85ab9038c8558e9b22416a0af4d65096edd57dc8b58c6fc01709a2c771f09b1bce9ca6092f390152b5da766e4bac3d18397783f068438d485376ae648a751146760a49324fa1d5d1bab4c8be3213902ddd17e406ec7e4fbcb16c2c770514083ccccdc8bfb84992712277aeaed021e1a02c8035f0f972177cb6e8d3da13c4d271cb05193a2cf6d1b37a9dd3f5e548f917deaab00ae070c9c672dd647b8f8a1a6bb7ca8b64e98b7382a999815a5a3e499e95306a9073db2dbee51dfb6c01d7c77e8d741993de9f4aa9fa27177d905f244fb377a921dc46c5408d38160bf57cae99523d0da92d123eed7d8efcf9a0bc737fa08d539d6db4bda158904a8e3b50789dd4bbb9af309706120bd1d559c73a87223369bb34751ed05bf7ba17bb29c3925c91c5e25ccc2ea99dbe05004233a20a6af929acabc755b49c25faf5f3eb3d92e329c867ed1c6324e9fc140f7a0f0298f3a5779e20e227e29b67243d58af8bdbc8dac0b3dbb262132dcd041b425c2af431fdb05ad47414154b00667270e6713514ca5cd96dddac337045e3dec1f24f6a8ad675ff74113b8a8295178e390fc05195129af7707e19569898692f3d5bd15f89ffd257e88a493ef90820523405eb29f5a40809fcf1daa5789d08f931bc0d01dab493d0a6fa95713876ee1ea5c0ae85d41c38b547bb0e0df63e6c867f51aa1652da9a428337871a5b0380ba6f557607549608e3e53d7a4ee8c60cfee0fd6abba58a52c04a6c6253a7196d69354de7aed75aa5e03648fa69c2bc9df6fb2c91884ccbf04a44814076e2d110d60470f42150c2793ccdffd8afcb1f6b0308fb04e8c1599974599fb690a770c3d8a7ae9c2cb54b0aae4d6cbd08369143fbfa9e102d1b378708e78e911996f276b06449b343eb1792871dce959700cda88b219e3a6b4b958a1aea153b48eb6f2f580097ee16706bcc7419bfb4a857ce7041eb8e107c48901baf91390cef5a23316d063e377e6f5850387bcd5df07fa16e3bb3abc8df15bbe11df3204764817684c78de687ab027a31f84dbec207b8789d8e63fd685a91174dd16fbbc9b880fb6774ab685aa04a6ef41a5610d37d371876be261bbe071b93ec87ae2bb38a9f178a7ad769a63c5190a30648fbb0c0dbf9fc0aeecb977417099312264f17a33acbc993a3e1a0d4efcd88da7fc2dc2b353ca724513543bd0eadbf0578ba96e4bf9c5bdbbeca4ca7d9207e14deb6e9960f51a2fc442cad6957e62fce38bb4440ece194f66dd9e70caaee43b0fc56aa22835aa18a8e3771105e3be696399067c3a127b8e8fdf0847827ad04daa3ef5c2af177aea1259bd8db216c0a33c3206edc78852b118383ef9e5127f21515d1509f57f4f83fb862bd405aa1bc6afa826339f22ae2f150c9eec361f82f006bbb419e3b4276e544f42bbea09a5663d38d302530f2268c1864149071cff20bc975506c2869423e20d6ec3b4c173b279d3acbb51801da6314ccd97e4898557ab1b7fbd37fa1def6619488c78e05197f5c4df99b1cf4ebcc8e88037f85f0a90e2dbe59fc9493112ad5ff8bfa4167b4adb2984ad429cc14aa43ed76cc6173cf85d34849d977415f4f53795a0f15241fedf4725a95df69bdff4b5777aa59f13a12ce0c9f0073d4002c6489c3530310108f6ad17550013879add2755f73e34c71874a4ce3487cdfb04b0214a5e19800abd26a382f05d76bb51504a5710d04351f81ba9d63bb0ada3a8ee4db71a00632ab8e6379ccdd1da819f6a7b1c04434f4ae1de1e8f3a4bde615703845aeeb510402dc93e1d3629a2d18dafe2e2585224fb575abb0f4aeb6be84ab4d008266516fc62d69c43296d15fce0878ce5b7f338b29864cfdcfb8f3b8d03d4f5131cf7bb893d12f4fefebaf48d78acd7fcd794ee22189e1cc656e857906d1d90603e8e2c03766e17483fca3dafe430ad60357d7bb0db4bd02ecdc6c49def3e6ab68d4bc025137487687a646985683b5d8921d61886827f7d08fedd6373599dd99259bc48add0aa4e81c867fba37904cd9485f7636b60514a8705e93f066d6f12f3570b5f096ce8990f37f1ea33db5f1b441bfabf627d72b602924320047a044edbd990b20e2ced24d0857caa36d9d02f088240d63dd43b9ae0e1d51c5b114d868b2ce2fbc60e6ef2f820320c3f77916512ea819ee7402e99b4ba6aa72e622a7996e4c720466435bc0890bf7dbf86fdaa33fbfa7585f4778753569723e46303605dd66303d25784327decf53de5883deaff1c75ff3d70fe3c76f83bbafe1cfbff79e25aed78b1542d821db0b57f983989403c5ab579228183e2715bb9725c1dad7eb5ea2b90c7735966c730b050a3c5c147495807aed2876694897d12790cab7c39cf253f6f6887dc462ea6923c2c90925c604a9fa8cdce03613b93b3de372305bac20e08b24d3ad09e0af3139645a15a779b28c366091abfd3958b576d61fc48a44915950c0f2bef1ccf07fc678c8e24baf49d8cb5509a3a8fe13b867c77147a9d7d49594a383d4a6395d6836d7089d58b29e2b4f27227431e9e11ed276bcea79f28cf3b1d94e2dd4d43f166f908e7a7274a9f6af99be1d4163f815e166f4128a1b5529f112a6dcf4089a91f1c0455135cc2b51e2bd473b5df179e18dc2bd4e720f32658c1f429be85bc1506c7e12825380309c9dadcf8506bd959c03349780d59c6558894ebd4c95d15151c0b400a3e3a83ab0433cc4b8d6c8ff35ff949d86043eac180607c1cf0e04be463ab21cfe32058d901c1cff815ccc8e2f0f16c85887bc323ecb3e1ce968a1b04b0b66141a9ca32c3349373267a89e7ad825242feb5edf306c96d73e651df3a4fea2bb6db37331a6ac24071edf3a1e797c8c0e9ca5c1c7f3e5f2619844b3adf279465ce21a664aad8d26c244748d6be926fdb723f199d4fbdb82c4526b1ba7585ee5f69b7c0254a2a293f7775e85eb1338ca813eb35d96e3dc5402086bd97ef9b383c4c918b609c31530bdd5af317d1257ad578af42915d12e6e50825a58eda8a98436c09d41fe94f265a444d031e90dd1a13f5dbc6918680d0936daf76e4fa297ae46999f7a16ff466d8e472e70b50f5cf1a287d6ee336126eda157bf7d78364bcc4e31f128763e855ac0de2cf47353b059c336a0069deaa84cd9930da88b8ea3aef544628092de0cd874844537daa71d6ae5b8046ca14895631907138fd559f57914b702879c9699881be3b8a8abcc6b99c1ed068f691ec66482a131698959b8272c5d6025e35d5735b38047dc6edaa2938c97d5624cadea7d68abcf61c8cd8caf21fef61eeb3f74dfd3806bbe425d17c0ed5261370c97fdf3dd563ba871f4dba9ed4f5c0793e7b4c56c3340de252cf63e58f5809aeadcfa0905850c373cadd501f9a518f4f0efd3ebc84ef9a28813b9ac52919be5478d833bbd76fa367387248e2a91cff45664e689c5da1f60ea0f8c2229aa744bec767419dc0a86150c575ba416b3b0334b5ee2d4d0434a9bf5c71cd96bd20620d29259afaab65c4019de0c1e8b09a0b4eccaeed8d943ca1e2399d06e88e5b56d27cb9545c5145a688938f7c4b5941907edb32f62375a64c0c118473cfd692a369560ae147d66a2ec0a59fbea460735e276b9598711dafc7cc9df2c37600ddb10af1bbfe9e919a82a3725bf3cdcc7c29ce0c37fa588eff17a009fb771016acd3918dfc1b92bb6dd201008c08a59a4fb922e1b7db26f6138f433d61d6ddfd2c9254b8e7b75eccf49a494661c89997ab1220c68ec4fccb152d9d66849dc416368aa3914aee0bbc4b1c4f3ac6442e9b02ac77ea65b1ed770602df3b4e5df0006126068e9727b6ea4365f95e7246889eb0e2c6403ef857af642d13b8feeceff2f14523ae78b5ba6b31affb3a2f85709e818d6646046e87e0904b6dfc204f793fcd7f541487fd924de3bf293ffbee92360d269a27dbcea413a6ccac2b0c1ab4830564646c594853023bd3422ab3074fb20ec287842553a539554e0c30c455b71ca73ca7e657837b0432cfb79a1a4709a0865d7d3444ee9ceacea7bbcca6500afe77378ec89969893b7d3c7aa03376d512d93ae0941136d7c5c231d799d799c156071eae0750cdc07472d6db1499cac956c95ff8ab9c46d46fe6c39165466adce0359d1588e9d763e189dfef4cfafd664d72ab5015d5fda401af2230f28597f868c600fea6d85be5a72d9920e8ef975a449a6ade7eaf4e058e8e1b9b233508adeab766a86745a4bc5ffbf93f77bc72cf8e19a46c8f153695f72068e24b645ecad90def88ed8c0b395351c0fd2e2016d2ce1dd4fcf3867bc4a09227d86b5528282e381090169cc1bc994426c6ab67e10a7e7dbf695489d13ab1c1570600db9e698a14d0b19020a0e147c2e9ea55a7377e751488b0cdc915ed7c82488f3a2f799944768066c5556c67e5602234d96601d054ee2e98860e5c014eccdd57c464954df632e07c6b4c74f600eb04b2ae879c208315a0a88fa928edf73d2b8e75ca9535521d1f48b2d909dbe1a9cc7e052a6bde73776f4ead567681cd07f1c259622ad2393dd99da619604510e6a8a3c58cb891469e134790fc6e0aaecc1ea6d8536f5576d76bd26c776dc8a9f330f33d0d88840db09e5f5cbd9c02e042176e437c379be2866b1d3d73fdee0ecef3fca72a1011c989d05654e26c7e31af2bb6837018a12793676092e20eefca3d69f5323ae74a44f9c18914b62ab97464c4adb2be6ce560f673288b406a4be5b05ef4cda93ff84fab44ce5145f0b357f53c11ef05b7d0192ff727101f71877a7f882b622bd292956a5c8bb15077db3f199de2e63f18a607755a53f37d27ec3a829092be347bfbabeb50fd163372b809b7fc3b5a1b7ffa3a8f1ef41a18fddffd2b76cf4addbce2b8698a937d7f1d83eb1a389efe0abdf98fffdcbec26eaf889b2b7f379b02b1f709ed1996eaf14ac8acfe04506cddaac95e08aafd785ac380ab9071a264775789a55d6860edf15ce5ed32443251a4a41141049af7b0d66dd300a10cc2224ebca0aa1207b2fe0a6b587a052bcf060aac6d114bd5a2608842da2281c50c0787529b25b4b4e8dcbc7277afc09d2b0e379320587d52f08314f7414f2cdc07ef9b03305da333eee294cff0e890cc7c64c55aac56eb0ac6f27f6feb0bd2613444529484819afb853449107bdacdb42acbcb5d6c64131426b32495db8bbbbcbd6cbe69ab59eb32d7f58ab7ede6f1bab8dc617ddab73ffc890b7eab5e2733a1f0092f134a2e774c83084b1110cd92eb4b7cd5e17b846aadab5b1678b9c91e5c9f7e810e6a119ea6d3bc41c0bd2dc92b0c6f7558450262523b930663eb52fa8bb7823d2aa501e7094d7dd1cfdd179d663fa75c21dfafb54671c4a083c6e3b9e813feacd887db1d527acdeea73f839ccfa37bf1ddd71ad7f2c9af594efcd14dc6b815af6375d6a757fb36ca3e553f77c8d4169cb3289307ba55e17dcb1f5640ff5ea8d62672f8ff610a6b697e8f4dded192dfdb86d76f9be1a9d5aa1c8f7bcf4ee781078842523cc7c2b4cbf0abc95e01242875a72e056b6dbc51410e5d11d04e249acea0607b7a725f767afa84e544fe71d0dd1260eaad9eacb16b5450a325bb3e989b56e8e695776365b993e260f1cbca8ff4c1ad5c8a8e695792c251ba06d779204821316e56d8a247b55d2bfd94b1dc51d1460ac7f9d23e01869093e8a4561ff237c7825119a3b73583d796e9699def61cbee1d0b050c375d88f81c98126e792101e424ad976688cd9916c0d3fac6b8e0b870cee63c71393dbf3335bd3d91bb36f723243057a7634790a60457513e7c05221871d84ce78daf566a71ea1fa6c9608817996a6f306c33ef5b60aa4609b86a98ed129a403e82436828350dcb938fb7d1a1cbecc1d4b6730494811e63be96a898a21d3d0ad459d08bac975c222c26c92791ad0448fa4d9aae3d8fd9da8ae5be27a6827d20f70783d5a13e829ae210525a9b220a48b9fc32fb12f5158293ec2c5a652a4e32623503ecf0835b182de14133c40519c007e66987ed06ed9b801007958eac55b1a050605a9099b663c09b05178a8f8885058ee70d0678ba4ec81e13ac70e46bbdb7d4acb98aab240d44a5966ed1c31dad7a667c4969a0cc02b3386729bbd84c37236935db1e0b0749a8a20e1855aa32fbfbe1fc483d3039776086f0a479a998d2fe9bdce367d9b1ac6795f089059aeb39695d72ec8227920cef0c04eb1d90fa8b41363ed9048f16c86cd41576006ec389c8b66822f2bf9aa1d61284835b6c1b662c685c0bb520684a1ad56259ecfcccb7d85416ed36691a7ab497d0f50e00226b97c7d1c31031909b9346b3b4b5ed4ccbfd3f174defe4aac5a088999a206b8fd0737a426ef945532049cd3ccaad15be33ba0df3c089c380fb6843749cb80002fd752ab4168412d5fc51b96783294167f29a1f85101e42c93cf1b9c6bed214166cc836c04f70aa9ec9b9e27d46855ccdb6e58c4d05d24228309d9e5f4e6ef390d750e454d3e3030dc8026cfa4f1f972a7b3cf108224ea6225607d13ef7e62cca420fa523b166d03b51f12c9d9622571d6948089208c16dbc46c9101083e251ff7bbc4c76cbdfc7563a70f086011c158905dc5b334d1589a142ecf902ac60dbc2923d127b75aefbbefe1d827884dd7a721a4c1cb4088803710d553c442b1d4b5ac732f44b277a364d709b666a1a40f39007572e3fe44d9dc43e58d6424a3be07f62841e3d65d34b8eb331d86d6af43167a9c0652be245321109a8d60be0abc99351b5c8fa1bbd9d25805ca1d0f76633fe199a5d05fb2cc280ab340059941ff92088c60222bb243b6fa7906b922833f261d070ccf3f67fab450efcb42cc3074d82f23419eff74d7ee6d2a37686c1293d55a5eec9a0de8cbbfccbd3188d5042011b9511fcfc64baf3dcac7f98db070cf3983a7365141369c74b449822ae6a3e0b6fa186ad910b1bbcabe84e18372b8509d8eb3e86611373088d2d66cc051d15da040e34a3f63cc657e355ed37552060ddac9dc07193fd4b30d0eb49ce2f6bc2c7f6ac070e204c7a5011fc153bad34613aab3a7947124ecc8bc965ca3096556b584087ac26d04b753b3d940743a51c16caac635ef16b11e7c2e312fec248408635845e88f0e539c2acf387c7bdce51872fe7020daa1d86bce2db23d825e4684f059dbd435235908e0333c43c60d033d3238fb39666c3b712aa25b0c1bb2091421fd3c9453b6975461694552a520892afc9703756a6ab0de751164abaccaf0bcc5d68b1203325231a2f62c1f92135eed3077271a5b19f1b84125aa38a06f2805eaa2010f77a40d92e79b39fa17c03ae00e13b93c69da4ca204f5ac020683fd40ecdf3e93ec07c41ffbafef915c05f90fa017e1aab1ade28d866a4a99c9b8de6e52b2b608fb08b6c9e1cd025e920fad5706910d83b9449f2b8906e6e4bd3ea63b2a1916f03984f1ff8bd2c8ad8e1bb4cf1660e62210aa5d059a96610dd9fe03b5610d8484fadf07d1e1cfdd595cffdeb412bb011bf2a9c73d0abd5bfcbfd1dfb9fca7e9189d7bf77367c846a9c04b26417db7de136e9a1b1258b6563e7d76331f7286ebe53261eda52ad4c36c4aec7d8ea0e2481e6d1a0c079c3dcf8287aaaf8f4b6be981e953f713a26a24e103578efd813e2531d225366e09a6d67dededd2b65dcb3fc90c2787673be199dfa326756b1e812fb3af2f08389d86ab3d9b22e5b4e56211ec43207b5a252e61c68e3647dbfffb8b123649579ef43827f2c86e9b5140f9c7bcf531863c92b13e6b9940c26ecd494de41943ff4c3cbd8f241387d923c0286c23c08d98242cc250db681de56ec0a7cd0fed158ff6f6cebf958db2f283c9017875381b9913cc125fbcad9fefac3e666342f0ac440c7b62e688a16108b79804c14f5e12b55f5cfe1db84ce2e07e6f496bfbf67c1a66b9a0e83f2fd93f0a253795dd6d2016522e68508ea8b13f132712465d7ace5081c4c606eca92cdb87cf59df3fdbfd187af5ce1e423492a74f3f721a1826d193f48efdc22046c510b65612b70c04dd194203953af0defcb220abde505940b0f1d00f82bb5ebc32c6d6c0f64c535595c417cb0b04092057efe9cdcb2e01aa8b4b9721352f7e2abed6c123990718fe277725948a64b38f1373a1e20991dafb314d55cc457af41d4bffea656e9e953762f5b1b7f623313d6adf56f82cbf9b5db683986dfed960e4bff07021d09bc25aa554aa964c9e9203782e72a0d3bf4b625da5cc708a9b47c64bd41cd2d02cd700b78a19028e6384145c7fa2090ea60c591ee288d3e3c1daa4bbea54fd4de1354dd320d16284f3fc73a135c8c33fd171e9733b5d9a0c3a48fa91ea5eb808f6ef695826dbaa5fe3f206672c02bb539a5f15f550e7fd2eb5e325fd7d602bffba54ecac155feb578816efa57e5fd100319b9e7b718f118f337ffe8935950bacf73132f75f105b82bb247aa95351c8eba423d170b76f7b6e2907edc14efc175e27fcd434b9c72000dc94ff9ce9118319e62f39c672ff6e75ede825ebfbc8489b195ba87d8a798e067da6f683dab2c7f197b93c57b2db6a1ea3720bf71b02122df0135ac154f873ca8c2f971c3f39640c99d3ecdaf0892f0b475c555863638c0429e5b5930d103dd977286720acfbb330be6c820e572f135037b5aec9178469f0fd2a2554e0b6dd01df8ae6643dfdf30990637cfcef62b2fb1757b98dedfde0d40f5f262049fcd9242a1fd4398fc89ecf9598a8298f36996d02c641618ac838a99c97227ba74407c68f3a80074c6e586386f1278e5803a1d8dec2e03a8aff3061452cac13adb474d32c629b3c3614f411e3d07787ffda8f5bc74b8da69106f78cc6992d9d3386e3454d9a8914ef193f07fb25e05bd871fa6e368314505dbee3cde069a2a2b6b95a33e40f8308dc2c9451c799a6c622d688c8941f0febc5785ddd2db72737c46d0d39827f0d5882f56f12024a1239643a5a4cc69af60551c4d8cd9ea39955232a789166fb2bffe8a0057154f2dc35415c17bef67c0e961381fdb11b9b1b572ede0106bfa8848a35bb33130f97262cfc48c69ff240b2d83c3a904ba790ec7400bb3b9937166325710a05d1e1e4c6ae6cd2399aa69f1ddebc223049764a2700479ce1a682f73a4e53d83dbc3f5eb56232f2dd1087893033445033ad226945b305855550779c43cb39cfdcd3ed39e09d33ca685fd9f092c9c081c2801834a7f3811ee30fa080a9e403e742c8b70cce05978308a3744b6a669c2f99e6df734dd3b354dd3348dcf92d63b695b57f57ddfbefff7f6ff96526e29e50e2d0936094a09327f83df145184d7f06ee8808029823e265a569acfae800414a1430e08c0e1008fea6e7894c775ec3a07f1b7777bf0ace7fa40115a9a1f7d86050859cf08adf2828dbf61cbcb4d5e0cd597c77c2a545f2f6ff11eaebcc670f63a43f5d50ad5d76b743c3a6996e40b8f3de3d7f8f26cda604e9250ca722ccd56d3149d3475259146332f3cc7ebd801739b1ffde6731ce75f2a46a010f8857e8d30d2e467709987e1333fc3690ff3daeb38cdcbe0393e08aff9d16d5e8ef3da5bbccd613e86bb7c8ec7bc0c7ff917387cff891042b82c7de19f3345d0c7c40c32f8ccf05496c6d2562e9964bcab480c1b2c95f58c085e158f375cc137c15d35a8aaeeadd679aa5c411549699aa66d84b5ca12fd729887c97c4ed7f449de16b96af0ee5c1587e3b9399ca9d3dd1e77476afd7af3b222420081483d270be2aeead383692123fb09572e706a920502cbff707574c78c8183232f8f5d86e6662b4e51dc155ede001ef30570972780c3fc00bcc50bc069be86d79e86d3de069ff998cb7c00dce29cc4e20c40801a9f9dc6cb7e6c7899ef5d411487eea0399407d5a13c4eb151a3421bfbd8bac76c326d7a053b9936cc2a4d5e6bfe1065dab0ffeab277b1df0503446a81f0eca64c9efdc1b31f1bf4bbea2f655a21288446d6fca1cae459df6ae5fb5bab4da7b788135db15ea5aae55ae556b94bbb95bed217b228651e26a3e66b709b97c16f9e06c7791d6ff1390ef32fdce5478f7918fef22f17e275a0de755c26c314411f131478221cc7db9c1d6f5393672d1444bc858264c60ad9bbf88781e401e0383ecc9931c47b8feff0ac061968d09961b5faf1f550a9d4688442a150a8179ae3d1a13caeba570c9ce1556338ed65ccb07918cebf601e46ccdbfce5948308c2d3f105f3a013be2128b82c4682a2a86ec7a33bd7e1194feeaabee3b860b8b25af982234f6f2db2f4a6c6d29be7d4833bf5e02ae71a73305ee4c8debdc4e4fb5d567bbefc4d9bf6376588265f830c3338cdd3a0334346fa2435d030830c3a3364a4bf923c0c06cb71522d4b3ec75f1e7bcc8feef2da611e06cebffc06e6352fc30cafbd8c99b7b9ccc7dce4b3bff033b84c4f11f43191bacb3c9c2145ff67f09dfaf69f61a739ef2a92ba82572de294e17de71d77d52241280cc978994fb8d2eb29cbb22c4b9769182f62b0f3e524242a4a93a7c165fe85cfbc8ed37ef4dacbe0343f83e7781c4e810fc277fc0d6fb179ec380f6bf1301ce66deef2ee311fc35f86f00abc0edf4f5a4b9e27849308e1698ebf7b4cf794f0290c99e44c8e9821237d922021de2593798c86d257fa82c1195e0654c27b32e8b8cfa73023759f8cd47d69eabe4fdd4792ba6fa7eef3e01a8cf1ae2228ce06e3c54832928c2d59ec9587d08123881ec9e832d3a6711efbcd8f6ef3da6bfee53b3e08a7c0e3f01cafc3691ee6339fe3423c115e811fc2f79b376e688f398987393287c9f266f96d95736d215cb94ef2ae2cb88aa038f4c6a3443c3ac4a33a1ec5f168108fca5cc19d7356d6fee6bde69d4716b4404bcab340ea3a3cbb38a9e3ae7a6d52cf5d75d50b57aeff5ce00caf5a52ce906baebd8cf6325fb87251a9d4088542a15028d50b10ef0ae219bac3a3e3f1388524ddc1a5a6b5b172ffb8deb8ea759292d79e7e0cbe5792bf4197f830f40f83fbaf2fbcf6fd7a75f9308890c87a730557b953ee9a98b655ce248877c1a3a901cfae9b4061a24d4cdb56517159b5cb7c8ecfd41e3bcdcbf0968f79cdebb8cdbffce66738ce676ff12ffc65f4fd794d1fc7b8c2f2cb871c0a53047d4cc0f05b4bea37f561a92be8739a82977633f5569d971179d98c9749211b9211c3364590091f8c344d3ff5f4d64a5fbc2b98f3ae2231152a4cdbe8e44b59b23acebbcbde05edb19bfc4af33260b872fd4d4990fcbaa987e4d76b2ff391f5842ba3d15932f54aa65ec9d42b997a2553af64727914e70ac6bcabc8a32d1ecdc93cca1362277914e72a7255dde25538ceb3f8cdafb8cdab78cda778ec5978fe154ef3285efbecb49ff9ccab2ef327be1faf25cfbbe142bc57e03fc73f05fe496e784c100e83c3d3979417847fcac3e1fe38c69545c54d3d976692bb498434932342b5876ba50f3721acb913a110aeb90fcf8097e643262b84348742a8de1655756fb5ced3d45bafe9476779d9cacba4507919f065446442e1ca7593234c72f7faec65eacb743e77c27d43654b8baabab75a65e95be5d6eb2ade15741551732aebe9eda68dc4c959fed86a49d2db8e11c78fb6adc2e48541bc0a283c886bae209e5d1fc7f30cb6ac286eebe0c6abe64a69f238cf4c1ea3b4987cc9f38070122052579114d3865357d0154499cda83333ac956a26859a99118d7bfb4af2e12afb708dfd0be6fb35a27fdb538cb882a80ff59165c1d79beb6f3214dc6432b8a1422dd908642bb88959586faee058fe4dd6819b0c04379909d6eb84f5e60ada440f6f904b1bfdea714471aea02bb85ef1ef13f867bd6e92da21816b45a0c4de015ec18e01143f3109532fd43edc23c25ddcc32cd83f1684210e59d05a45ba189c53c02cd831c02cd84de09da8e70ad98a223dea1f59495bea6fad2cf157ab6ac5e20e67d96aadb5d65a6b3d7e98a3b5d65a6bad750556d1c315bb5debb61b8f236681f6ac8fd83bb8b4ec57db1102d8176e9d901ce42048906c05279c10f2031ff480089b079b07a1d64ede5845d1e8e5ba77f9a2f9c28e1525bd87918f4e8e461f78586fa1fb50ee18d92b039f219f216b9a66132b9f934f132bd5e9e4d3844ae5a17952ad3c3455406c4dcaad4fca59a2e9a4cbca4a6f64ca34d3546a9a6e81984d9843664ad5848feac7f466572b204dacdcfaac5643ab26542a55133eee530e2202e127eecfc90527b7404ea9f5c937968ffcb4f293dfb29face3b374bbb4939f38bdb9ac27bf293fb999aa6e2a3fddd251a5d487723d478e12a53796397293e9e27aa63d94487e9a8e42a53797d5aed21b7ecba6269ab035a4d347a6e7f51ca9d21b774d954c5b4a6fd6673d79d8846d39913ffa6914c9f4666d63292dbd78d51149e210d71e4ccf1e9a31486ecfd3ad694379e949a793ed5472522a5e95d7f2d28bd2f1ce4c1f7d765ecb4fefe292a4b3f5e39d8ddcfc6bc6c83e7ad368678952e4a1be21aee3559bf0595ddcd52545b16bb09fd84fe03c0316106bed6214a7107d3ae56c22ed158542162fa07ed7ea2a47ca3d32628ee32651fa5b2b6a8b4aa5914e533f149ca7a9db343885f60cb60c48e5fe299556703a4d2692269d9ad513031898cafd82d3fa2def72999ff1d9d7388dbcae3ccfc658e35ab143c29d705fee88969b7af3564d8ae24c70ebf55b49919222218b50c6e2654456bc0c88c4ae4673e288dc2b4553583af328cef5e80e8d47776834d425c6f70f4a2ffb61214993e93ccff33c4f3c501cba83e6501e5dd80203db58469379128ff9d4615ef59757e134be86bbfc89b7bc89b37cc9caf30ee0b2e7d17095e7dde03abce7f0eee33f38bc031dc061343cc586a3dce0afc731aeb39467c3d1c731aea9e7c731aeaaefdfa599e04c2e10846b3ef481b066c2011dae99e44c7649843413248286828282828256badecb802a5e4644163c79d990c9054c70262feb2979d9ce874c3860923341c26467923e44fa10e943a40f913e440ead97e4b7956ebde84e8a6ffff61495d1e61bfec428d7c675948be2509c0fc5f9505c6eeb80c6d72ecd0a5e0d87d548d11d16a62d96a2381457b3a2b22265a6aa383129215991ae60ad542b52a8152b60345c16edf9fc781168cf0a70b09399400659407332108c00054e107269a2a02122510ec5a1b82040263d6b484284698701aefdc01422d0e4552e5bb14a31f474a92933d82b0cb25394ce1195aba856ca49d587abea4dbc849d20893d117ae21b05e5e46475b28abd5d55143116bbac95f92e5bb162a8aba51a21c94c283c74ba51749af1e472a2114ac53b29978a59d0cb07cf58ab9355ef05c3427808cf7038c80497d3f11077620f0e221922c55057cb49d78846a1b050505cbe326dae974b556331576cb5623939127b1c34240a200ea254a47808cfb0aaae56a8fa61ce8ab54a7190ec144bb110c9a2aed4152cf552a53e75d78ae22e94131455f5e1ca535575c55ac5d098ce2d4b6435e2aebd829297d8137d2210d1053f3cfb71551fd885f57a620f67327b1128e5451ffc238a211f9ef57090d88bc554986432f57467ad66b1177b3fae2a43e9ff2850a435e5c5a13b03820a89beabfaac862e4d742df6449f0844fc21f6ae8a5347bdaf5e64bdf8430422fa883ed7480b076da15c598f638f857014588ac7413cc3409c0e61608a8ab59ab156ab14d6aaa544bd7b7eed7a1e8ab39ea7b65228be4f2a1265640406e5c39c911355265bb156620f7d3ce4aa38157fdc19c641e28f4b135d8e5df4b956ac550b1a1bc143b0100ceb79281e7bde89a7bcd8f3e199cfcf13a80ba5ba6a24d54259adc45eaf87855e6064f0102cb44a71100ea2d168ac958a9642d168eb59127fc49ef80b8344d10e924b4315c81d2e308ea1373665ecf446b38e3e92668c71dc576bfc591445acefdde57ed168efd14551aca36fcf43eb98deb463bfcd587da059af8b43b03de178b3b6c113eb3d6ad336ee9d73493a99251479ba6872515df39873c6d9c7afa1344b4e66d3369a4e1eaa85329da6d299964ad366a6e1699e4e25c7241f95d290949a6239d2a44e47b98601d8208ac4559b30843fd8025934b25738f188c4a71326cbadf179474261707c82041e0883f88783e020b69b92fcc9fd53ffdab10d614d0c85c2a110180645b73cc25a4a4893b9182b51ad4c602ed3888a17aae2a2d710d6566ccfba1d07d98f85009ddb6f38c88a7f291632d32c949bfc36fd046ee8700d8f24e96d3ccf569ade5afee9cd55150791179762c642b0cf79cbbb938bc7e27b449f38c9f23b4b601f2c8e7b58b098f5c9631fc63f5884c12e0bee21ee763aabacb192bf61cbe9aa1743f5f4d58fa17a3aeccf503dddf5a9503d7de45fa17a3aeb3d5c39cb503d5ba17a9e2e965c2c3959da599f2e965c3cc7130a0f9d6e14a1663cb99c689452f10ec661df2352559e9ec4f3abc8beec937f8052ad22aa4d9ea8d0976347ff1279a517d87af11784674243c0186417cef0aa2622500ce2763eaf7cd6992250b88259657e1212cc4ba62d5d5ba91bc4f50aff58cf3bf99da4467c259e7c9833120ec1bc995ba033fbed0699603014568a4248488a3b749e2ed88b406210518828240eed938a540cc2422ba0d409b555aa97eabc4f9ce6fd699954a908243bc152f107b4da2e485d9f942aa34c9b86a588e47fa9f2bb584e58d2abe3dddcedd9ed7ce6ed5d15f756fb84e3d960ab95bf65895820b04524ff6a44e5da4ca0256952e647ada88fabfeb82af6f901c2331f9ef5b86aeff5765d791bc4b33f95b74350bc5ee3789ead96bbaa8a19580478927c7cb9877b0809eac1b3ddda6ab9af2f2dc064a12c16cb6fb2412c9005dab098872e93e53f9ff8f9d93119f9ee214aa9ff619f773dae1a4bd19c5128adb244643e72d2a661fa2f0405fbc8671faedc73559c7baaa04b137269435c70556c7d7cb60301bdc8494b1292e45d9a9ab6dc937d5c15e71e629a77574d2953d7ff9edf5c559f579f7b641fb977d5dc638184add4fa7cac7bdf8c61ae2250b9ae5e04127f2f0a11870ce19928846741ae1a7455eca990164e1faef687ed892c0fdb03fb28316d4f8fe551b981b1af5e07b627402e65eadd5b3954719ab9eb79b99494670f51be5369a81da5653e336db298940f73642a4c1d318d21dbc0abe1c78399c355b10a1306bcc6625a85695355d3b6da5bb5f32ec6f56290599a7bdc19167f238e51305ca0d4d9ccb4ad7c6f95932e27d7dbc0521a51f496ceab1783cc56cf9b39ec79278ef259c5e71e9c7b78e6cb4066232a5c7f2be5a97094eae4ec779698a9d2300ba7f5198a69433999b255a8adfe89677a66f22c14ef33b32502e119f6713ccf5b0bc58cd1b28abf7d83131498941815a099d58b27f167da54a948e4b4244bcaac56abb156aa5a0a55ab655f512751f47c96c49b5992a35bdee59f153b16711021b64733018220b667b483e4d6a084892e1c79e446d25a710927760f85dc205715b26fd0d6c106b23b8e3dff84358b01c79e7dc29acd800580b046f408693cd076708063cfba90b600c79e73218bdb2de3d42c38154424ecdfc8013ce6f08804767105216ddcf5e0d807c70f706c43162f38f61bd6d870ec62489b80bd40486b404893008d018efd15d27e70ec1ed222e0d84b421a04c6f406b9423270eefbbb42ae7a5db64fe04d5c021fe33f3c8c47e05b38045ec61ff033eec3d3bc87aff9ed69dc017fe33c7c8ddb0c7c0eb718780ab8ddf91d16f80a38102f84db0bfcce1225246e8df89d9d168f79035e5267808bdf18d7f7053c8edf1857f71ddee6025d9aa967eb20a49992d83f5c33f5460e84355313c61cae9984c6dda59980231221cd6485fddbbffddbbffddb3fd376003c89c7f0a9c3f0efebbbbb7899b3f898af70594992cca58b8bcbcd832faf83c77c0eeef2087098c7c15bfc017014e0b44f80cfbc7be5bf4255e4e65b11054c9fb5054e6b5a6dea9e9c6a2c051eda22cf4634e2341f8b3fc2f2e6f58ef4ba27095a944deca468fe356da3741be1d43d463145c289e8e48ace22eef1f1010873f44ee854f3ec8999897f7e34ca114eeb3805ab983631dd4638ad8b2da2ab983ad79a36118a13035931b1cfc7624f5658466d438e368f7758a7ebf58cb71cebc62e72bbeeadb7d676d45ba4310b0a895b706a5f29c937c56c3dc5b4695285c5a524bf0c02813887713217334b493eb9ae8c38afb0b88c827ebf2121a1984c84b5bc8c46634c49e2bccdb9f9ebe3f301e1d9cf55713ecc29cd17c315932cc9d1f88289f9a5247fcc3025f95bd4168d29f5ef0aac18c7843297a4cb54c3c494f6cc3e53929fb188451bcff8ef8fdb0bc3179c8632a5a881f356f2912fe6e7d9a457876736b9db9302bd8b81d73d043d676ad8858e607b8e4edaf0b228c9bfaba8c5d12ec2386e9d8e806cdb476cb924cd9064ef999d5c916d3c5b22ecee10ce5bc9b7967c9776cbc11cb479dd23e8bc3bbb8b1b59a2631105eb4deff04def4a311d01ad684c149770bdf9c5158b79bfc06c9bdcb3cb365f127267d7f3ae9577272efd6c915fd0861a26666b9b1bddd33d7a57faed17ad39e70c33c33d5dd116b58de837e24838136d4d18b68c7ec5b1f4cb7925f30902a6ce2986aa287abbde7c9863f32222160814d7f0d2c65414539280a41f907ea4c63676bcc1c9bd600e9ae48f2b4eadcd0ff16c1013678cc643dc981813bb8c29e302dd9fbbb58c5e3db05e9fd13238ad0bae7a7dc6b43e3326765a5e47adb5fed16a25cdc45e33655c71fd897650ad6662a7316560dbf3adb7c7f6d0ac28694cec2bc6bcf39d77bd79ab3b4b9ecd95af91780d82b0a5c7e8b58fde9d5df7594f9fde852b3e92ef464ac17a7d057616e4db55f4bc1b1f8d38a51f9edd92cfb65cd7389fe3071bfde3ce6c8d068106a29160a17742a8d9baa6e645469ca1d9d83c0f9897039e5dd729386935129004b4ee03d22fff8c608182607f76607d6cd0c239699665344f5569cdbb5ac98767a468bbc18620bc6a8db52659c503ac380d5744d73b1d621c565c724204251faee95d38bb367e5d2311d66cd21cf43498c41a1c400d762df970adf40b4b3f086b19df5aa522acb7a484f5ead24f05e1cad54dd8d9d5bb3b93c28f094046c83e3b68d960bdae61b0cb59ef7250b5de7250ef82a0777ad7f4ce8a58939820f94a42a52092074a3f928ea48981c69c315a61eaf8aac5cfa12834435554452f01c155fae19a2a9ce93649b7de140716a68e8f35a64d845163baf8b1b1316dd85a1755511ae61e36a62ddbd8e89b22a7f5bc967eb89677e358faadd7714c9bf8230921055d1ac62312708bc62705917e2421405c2bf9ee88b4aea68d84718bf4bbea25af59f295947cabe7221a97832a4115937e2421a4207204cb601953bbe85ac4115bbc5ab848b9b0368e6d70d8fc0d67a2afa6ce68738fdc63dac434efcadd7a3dc71c8f385f8c44e38bec349ab0642299a589348d44a3696b533689f8da1852f61290c5b53548826909bb441886611886360644b420aee14806a3cf8d6368fd62adfbfdacbeed838c3bc350b4a50c63b7d9ade85b712a6a19b697943dccb80bd4230a1289824443ae909c87f98b7f398c47ddf6d963fce8359e86df21baf4312961ea25000704e4a0438d9a8d97152e2ebf655c8edfc42cbcf09b4805187e139d60f39b888418269f690aa621d3164c416f6139e1b64d0db11b66525450646aae10fd7788f6db151294de2137fcce123298dbf89d255646aff1ef19187368f8cccc6f8cebcb6b62505f01e337c635973eeb7553efd2f6ef2a11d2f60f42d5876b3bc83485b0367ec034846ba36eec316d21a48d49b4a839e94df517e9cd5b30d25bebb4a5265f8cd4e41b7b27dc25c95be2f2f52f6e49ea5d96a56ff605f0942780a3bc005ce50710f300f06c83b7bc01fcc501bef20ef0b1008e02a0a565b5c1000ec8f1e878ec00f0680f128b0ba9c4b2b58dbf3edeede1d9fd31afcf554b30bb6421b990509b1a62299f0a55ed2adf0a55ed28ff0a55ed32efe18a1ec3993e43556b91ceaf22274925b93f6535894ca6cde564098544dae76c2d9546930df23c452c2b1c01bf00c7e177f004b874f806a8b001ac61c22b802257031eddf5f47c3e1840638fe32c4fe32d2fba7104bc02fc05efe0fb4f6ad8a8b1c2856de0dcb0e89d2469329d2a6c280f8d43432b5d4984f50d36ba6032f6c6ded81b7b636fecad5614c785fd24ad998f98b61427ed89e2a16993b1d1f81ab0bf3b97e7aa3999189414c5dd1495d9eefab83db057b9ffd77f5e0d1dde53cfe1d9c5d5d001c160a60dbe4a477962660cbcc68230190e8d49d11eb2598ae6662f83a77c0c8ef22fb8cac3e032afe3313fc3e565b83f0ddef233380f0ee341861934f8e4501c1ac3a33c303caa7be1511e3a8feed01e46c8f8944567376d23abdc0ffb3075ad2acfb3e1f687672426cf02e11990150a0ab2403bf4fa308ff687677d4c4c4c9bcce424b6d25d5ac8220c57d284c5cbbb7098c7f19817b95c875f80e7f00cf0fd2897082777040edf00dfe16d4e02def6f0ec0ecfae37e0adcff6a0e8ddd0f81a3e7e0ccf6f73f461f8eb5f38ec737c870f736e18f0def31e3c73f1ce733de7b81216a4abc70bc59d942c5ff396a761e12f7fe330eff29815aef2338ef2359ef2349f2900cd0ac0e574bb9ed477ae731ecfb178c721b1f309577ce46b081d820de5a1710835a443718fe678743cd0dd557ba4d846a29a360989692b89fdea2c8fd3c25ddec50d0b9a170a5b5db4c0416277c382e685c24acc18794d7115d3a6e22aa60c719d3919aa9434bec6caf368c4c0e48e98c08d33b441d11cfacbfb8ee390d8f958868ec88d2a331b2e9ce56fbce5b1fbe3b8cbb77004fc0e8ec32bc013f037f88aa8c6559ee6283fe3295ff3d9afc8e11720fb1a2b6cf87648b0a079a1301f0adab9331725452eed56b285922dc882382ffbb9f1b1a079a1b073458d3653e3c25994471b0c58c00e0af0e11879b5e78bb398b615673165882b8cb9fef36ab8ec79361c562346d793848dd008980b0c6fac432f10ae1411b65c7f797407cda13cba1dda83f6505f021ef5618149515cb9ae3cef06ffe7d9f097779e771c4cea391abec3b39697f9b0b40091ebe82f030a57aeb7a05229128542a15028558f5c8d477178c6a3e3b17361d92f5a612fb217cbe3c2ec1516238bb971f7eb3586c68e0d19d3a692a2381b99193c1736e0d97519b386abca9830e0d5c646e6e5c5b4f168784c197bed2c4ff396afb93f7697a7f17f91bf3c0b87f9151e13a7ec27ad4b7e1b3bb0c6786596f5e1591f10b63f57dde588ed8d2753fed66adaa2558fdd680749210a5240a1542a7349ca4c78821386f28a3572d6e7f8219b481fc9911cc9911cc931a53b995679c4b4b894aa24d24b9c2214ef90c355b1100fe3005e660da67cb239e2f4305c64d8116746ad4e244b9552b929653a79cab49d60999563a64ec631ec123355945beba8b7e1cac963a60dd584915346a54e59e5d81cc7711c497a0993ca945342826c2826b84c5bca73ced964caa66cca281737b7b20deef8cd5d9e4b3b39f656ea971af229a1541431646b4e750c56af53f0ba309bf72a3321e75269ef1513dc744a43d3662a91cc921c89c6bf5d21a99fce2c20eac68ab8e29a73167bc059c499dc18bb769dcd1876843919a7e5113967ecd85ad2749ace92a92714b2d29c52a8b334e3b66e6881d0d8f3e424694f2e62e0bc5920eb650288aae597c57215cb4972c4ede962390ce6a4cc477793c449489efa97b8c968dd7e66f9387a0930c4e5d0f1c3aa358ad230f2d1a637944c75466978d5315c7f58addfb4a34e92d66e1f45ae7d44c9544794eaeca3977fd3aef26cc64072916773865d493ea6d9479cdcd69cc1aea388e43bf5110f4d1a483ea63d905c94f650e237c4db4e6f882b4989abdce46fe2fa8e4d18583efa35754a52f1aa24a9bb7c4c6fa98b577d195c0677d3fd6f44aca675d3dc9eb58fa68f6ebacb47d347eb5ba73797dfc031587e1bcd54e6aef16536bd91aecf6e4f97e7d15d9e3d36e631e6e35aba4d4db729aac372eb2cb7e96db492de03e9b012c67218e93096c3604efeb0da91c873606dba8539eabb2cdd9a30b0744a87a537d2cb5bc2fe46de2e0d58645f5bd7fb96fde5a3ef81f495c84b1d9b9e57354b1a4867f92da737c4954c61ae721738f627aa72d2b4b94658eee29a3aaa95e52a1f4d5bcb59eee2b6de06adfe66d7951db2f2714c6fd60a61f9cd0a596f90d0ca5d6017d7feb9ae7ec7fa637f547edd06e51c2ad52e2d10eb021d4b386ff6c732b15ebf4c948eb247e8b8b39393b84b1b53ed39e7f47672727c8beb39c727e2c4e1704594d94927914c9b8e711c738cc8ece1eaa319c30e33a7ce538b74c6638e4b3be12ce6d1c511d5d93efa4e5f638a435cc575647fec135705b2434242392ecde6561d9716aed6fe641a6e67341aadcb4f38fa1c3ab48bdee274ace398de449e43868eab5e92494a4b1a46376d24892cb9ea75d35d645731c7a58dfcba8eec23176fedc4478e5d4ec6711cc772cca38a7ad5abaea30e5cb3b8db5355a01b06c36014a7b53b4aaefb800c4b6e25fc03faf1f1f57a4a3fd891a3168d706c6e4a3f31ebcd425f7b6c6517395232dd88cc92943ac156a8d3c606276888480eca4399884864738383f3376ff33abe71d9fa70cd3d640f49be206cb94ebe60bb3896842cb4cf08598c7c7b0c355c1ae9db7d08599cbefd874b23f9f61b9766fa76ab0b59987cbbdd29df25dfa8ef93ef0df3fdf2ddf2ed77af7cbb7c9341bb66b3d879b77ffb966dbb49e05eb163bbe4d934bbd4eddaa6edf2c79ed9a56fcbec985d06d930bbfc6d97ddb24b2936cb2e817b65ab6c9367a76c53b751f66c9b3fb6ba4fb68a6dfab6c93683ec924db2cddf369fb0d3ed6410ae913f3564100b5288ad31a3109a5108c27a9d04e25ae9b78204c648208fad29fd88390dcf7abdd4e15a69aca5b751f7c3d6947abd315806b135251f30e40fae95743af2e7e7876b24a0cbaf450a5b53e229f1acd7594a29d6eb2510d748bf125802796c0d498a141e1dae917c28ba99ee87ad2105517f9054a4bef52488ad21fdb02dd74d82acd7cd1fae9940f309b686c4635b7625e96f254979d6ebe9137e67f36e148d38452749a65539f2c24eaa8899316cb02459bf2221e19175aa92129e9ccb39d6a74c4c72c6651ceb51ebf6932227a6180caa306da7ab489d5ab468e1abbf31ae530869252184eaf5d22f0777412184342d8250255bacda69b0ea17aca4c53b5ca30967faa6c7dce2cf6f852f0f67da45af862bdacd570955ede5bb8432a1aabde4d329abf65b2905ebd564f8b36622501666a5b71d2ed86bf294220204a270f48fd5a762c47a933a9b993693cf504ad69fabe87add3382b516c52171c8e7aa407c3d7a7cfc085796384108d6eb33522d595f5ac959c97a528cbcaaa8a8982a2b2ba6adf41553c65d454eae94ac2ff30e977eb6e53af6790dc4ec957e62ba225229594fb2b8bca5a55c995e9252df3ae52131ef80eb4e1c4939ca5ba693782d1c07c76d704acf794e8bd486b3d24d6b8947614eb952bef611aea05e97206cb99e7ade7a9d6462d72e0a514888f5a275cc3144677431c5a020d7f36c7af47ef8eecc275ce9b9b3ab773fae9988add12b085b5a8085f5fa8b10f1e752b27efff8c0983cd1e70b220201b15eaf3bc6d4115795933025eb7388679967938a3b51f7c3147bbd9919d3462262adb51928538e842b0eb6f930a79583701ec235d22f13b135245f501eca446c24208948cea5493af3cee6068774d171fee66d4c25df0e9280d96f242091bcc3b5704c53533a9269ab758af82760571290448414bc3418d3b65f467f19f728f2cc98624ecc6dd724c93c5129f45482bd4654ab96d39832f4faba47f5ba47e987add120d07a174b7fdcb505eb957a2327f4758f920f58f055f251ca4a9c3a5cd33b9d2e447b584b6e4b2ed4654b2994f6c1835b836b69032693f49382f4337f529c6449f205496f1ac899fa828c44e30f928ea4fba14d20894703394d2089272bd13284c5b3f1fd7a77d51efdc3a7c9119b54fb486b3435edac17553a451169d3c99277b9977dd9a734a64828d2dca392a666e33a920e58f2917c2460e947a41f26fdacb5790de4ce763d74cf4afaf92038daa2358f56bd47fb77c9b745273d269f147d295445371f15aaa29380b8c61245dd33bdf62196a3bcf7389a36d3474d9efa7191ab0683e28e9887b0614bc62bd63e404e128b4c14f860e2c7287e5ec5d4efb045cc2491a9838758f10d574e221fe1752472d294319677cd245409435e470f2f6d2c91085748321589cad2db1545f2d99a1cb42d409f11b6124eebf31a88de99af7d046d8d5641d872dd099f784a115948be8323ca221e47daa6bc214be669dad9e6c770b6bddcdbc92f09d5fd0a67db8adcbab5dbfac88a30110cc4c08cc9e7b570114e8b14ff7818084808075d158b7c14895491db7c2a9c893c9e7aa8046b190cb31a3234000000000000b3160000181008040483d1340de24852ed1480146ba4605650974a84590cc3300a43c8186208010410006008088cccd40d18862dc5f935fb7e7360353550c2f5ae1f5435fb845eff001653c7899afee19bdef63d9e3aea1e193328a402ab0518d701f0451e892fe53bf923ec9157b3f3045b09d7bd08469f7d515b992a7987164aed86ea1e3a722dfdb80080a8452ef73d2c02db412d10b29768c317464a53b09be44fe7103fb5ac4c9458416a5ca858ba15e2d15b6b45d96fb503103342662f9d01601ba2b387acaeec3795c457e9c72efba998e1a057e441baec9f8bc40932199c5442e99acef6125d3dd2fa6c882367bf9f62a78c1e641962df0965f2fced906efb9ef6440aed2377a987ad0386ced44514edaf847b83b9080e85e825193c1ee3164c1eb32ced37bca619f9f4715b6acad8b2d17a5acedfde7425793ec2e511628c0338c8e1e37a9ab08c732f11ed5b8c637a8d52a98721f892a93c336aae6818a3d573f46c43fc221894f0fa4ef812eec8f671a0f98a90477e75d2d5ff4415877bc8734df3866529c83b735bd0102400fb8215f7a67c3ba1f981e27c392d656c62d9f60bcb07f2cd643c9b16827ca19669fae34b1bc750435332b9b90fad4a83d1a14cd7372737dcaebf3266276cf65b91dce930e04028c41637789767c14bd5f515ca2fd7969727b7baf780ce1997f73aa05797fe2f863f17f64f6dc3051932fb133a9a55186f3dfbb782094988bc9803f61cf6c3f3930dc9d92f4beac76debb09f21307a30e982e8fd79194bf82dda05cb228db62290a9c53cc04ae364e8bbaf31a27ba15cb1bf190c5f3594c1e40a6303c8df5fb27fb620f06777ee11263d1b51121b84dca16c142621c0aada9b60117ae422614c1b45f008611fbfcc7d5b4290367fc34b2ea44e110864078e4f5523385dd92c93ef12d900833e88dcfa29bf7d963b4feea0d07b3d8d8bb6b19c75c1c71b1a0fcefaea788343eae57213f34cbf38c0b6100a9e9b19180cddf56cb17b2317c226eda212739a6fd0f233c6495f0a411c3dd847b4378b034b4e96ca7f05e07e400f7c512c3aa4f4f52ac62e8b2af517ef50d0f945801d7a80c26486452f8dd4e450d533396e4c0139e928ae8845a7f0839890feb7e31bcd1da17dcfeacc54dfeb2ffcef5729e5b9b496cbfbd8c11fbd905885eeded3eccc7f39e2f023878e131cd728bb390d909306f7b3053e8b187defb85c08ee2220f97e04746b1cf11e3a3116cd6b4536eaacd4155b64821a5f8e6c54ca5d7cc28b66f1600d9818b313c977d28255f45688a82a29022a22a5844a6b1aac4d0a05eadac025162013515051c0df4e7580b501870f03f4b7b951f3ab0d03cb5606189e72d83b7f83dbed5b9ec30876a52cf38a701b1cbcc624a44ea9a271167b819ea213a731ff355075b959b187dd42788c50d1aee8a40ffe4e1c872daf2957dfd25a712692bb185062852cca74d4401f2e7cef7285bae1c6483696496fc3501e83040376ecd330995586829c32a64dd135fc1a33e8e6b638152bc6bce5f963f99820b2f9b1d44472228d4d003780a81b4800794d3175862859374e775ddc060883baa146048c9d7b9d56042ada0b4f3f428f0400a6474993f910d1fddfe69b922f4245a09dfeef4531a4a0cb58d50edc15ca891c2c3b2118b6e88950d1c0e102418e5cdd0b5e6b850d92201c2ec0d54f4130a9fe177414555e057840114c51ef98b8319a29230c45264345e113751a2acbaf7746b9080769831c144d1ae7646810fe69c03312a895968e642b4769150f83df087e435e54e9b949ef7bd01bb055ecfa95e8ff0ef613b9e6ab0f2817892d669d89a3ea7d43b26ef44705bda9a1a2a8b906d9c2bd9584e6aed8a0fd824e87b9fc254188869b7fc53e70c2cbfc501110927251003491f24f6c2161cb6263a11529ebe023e7f84541508d044f1af5c5277bff100b52111501769e28d9f66ef8d890affc777b5b242a62910b512ad12532b168f6e764989858e90a0e6043c8b769126562c73d1c7254aa80439ec49eaee890917373e57aa2bc34ba7b3091cefb7807445aa08804e0d46ab008fd9f7fe800edd0344df52a1174485b6c88b3958834658906e5f3690460d91cb5846985c1a442e6952f80b0176a8928ed5e1261319b8c23726bbe2429182248ed505545051f3f03b83a4d3be2e0d7534b6616147f30603a63093b67e3b45d5d2a03fc16a222ce99a7863acd9570bc2a488a847691ea8ce48e099e113098fccc7526ae4b754b9e3c50c126e5c99e037c170e5188ffb1284029a849999143a38a70eac8f2cf23da590679956f83b365975390e47f202a216f6b7dd01df846b76bf12e17dd1bb110ae82862a42ca524f150d67eb3a7f144fa1d0324a8cf497829352150d2812aea989f0af544a49ed3dcd1be8a764e39304122067f2f0b22ac00a9f607dc781d4df02b0a6683fe855244d0f8d50166d930d3f6eea54f900364503e01425edcfe3db25c6d89b5a0bc4023c21e853725c0a204b2573e7a7cd7a52c25dcc2c71edb0bd9b322d6a036628124ff8dd0e244515bca1a22852e6a1f47189de5c5e2155ab1e138023cb4052e72b9c83f1f669d761a3aa563d2cfe876ba5a5ffee072a2221c929bd50662d000e53a47e3acc43ab63fbbb34cb5c841ea01e98883c080c716c02d713c404e8e32420929c044d2811ac1698abcdd23f0e5626102b87755d2f6737d6f59af3854476512a15400e5760dd6825968d6495523d7a321f52cd797258bf26583f4c85c58751b78e9444924c9b945b8d951e8613953abb3c5bf35183394ad547c2fa2caf5a7bf38c4094cf126cf610e27e21c94a9e4b6e4c4545de7062a00e6797bba308356acb318242b0922761754c8a0c685038f3e6efaf64cb1705120173a99a45fb290a04287d743cf29225547287d7ee6ad3d43cc8e396be975d777edddc990f69228d04e7309ec9644527e1c9f2f52e3150f0132607764cca35015883b18bad12b7531883ea932246004f69c893e57ee20fb6777dc61032452fed65bcabb0e1d4c04f5dce668de4afe97aeaf64a2a7fbcb586a55b22f169bbde1a5d914a4ffc0889a8d636496971e653cfd86e6fae38d2f8af401139328778e93f2b0ee8d0fe5f715fb58189c19345b10e23e9f330bb28fcc5798a3688d05acbc79c04ced0435a75e79c22e01542cdef70ccad17d2404bc616354cc4b2f411938bddc0d549c5fd85dfc2689545b75e8d281195eb8b65294873cde6bb41b4f2340cb550eadd1ecda8d0cbf2b839f2a997f3c3c339e37e60c5e118ea5c04c24ea1804d03faa394a5cc099e33ad14900e4339c80ddc7d68108fc968296c73b430a8c2ded3761aa8aa48b52e58ed136bdaf298425a16a361d5e764248db952b23264c5b29efe97dd2a1e4062d7ae008878d66105da48863eec8901536804895aa3c3b71aff5c0341821a133176ff4865be86ad25bcd21a14f641cc55399f27cb2d5b79a9621831c60bbed3eac2d7a15e0ace730e432e229b2ac1cf0f20c09b5bdbf9b79aa9bf4aff49a1ab91e113b956a8abd9742d8fba603377d967897fc7eb1bfa028ead453747d91f904f79eed52654236468d76a29be4b3acf4c19d847ae48b59949401d69f8b26f885d234fc0ee73bbda0d5d96ac7d90205a1f82d491dc3519275b999ed4ef4dc26c421ab87b4ad3530e46f640a6ffaf63a8e3f2a4ac7bc62ea20d27e0ff333b68b45bc36e85d0af10680ae36bd79ac55bcd7ab04028f858ea876f98e7f488fe0cf18aa113ae09116ab8a592c2539a94942aebcc2526fbefe7e1fa604703ac55b7cc441faecd6e506a26bced636c2dfc5b8d206b50155b72730c822aa8e18fb3c2e2092bdb6c73f616cec5d48f654e1e3512b3554c1284465bacd2077d4ee3642b6b0c52ab140b51945400916d8219d1bbc34454d63fccce62bfea09bf3dd6f3ca38f6d66646f2a6a27be26712d980a93888a1ca976553cf5638e234d0c6601f759e15f7069f001641de1ad15cff2191de6cf2fb020933eda496edcf01199786016c427b802003afcdd536cea6c23803354af3a264b921e782d423e4e827bb5c9a81236dc25225e7417833a357ad7ab2fc419660151fcba26076b380f25e5dcf34f4bfcb845b0011ed0b29caf21be80a1bd1b7843119eadb4ae74fd6ecc50c5ed69a00ee552ab693fc6a4f42369aed8b69caee8da83acfdce46ba43f2a985b99f910ce32b772c181f58a89223f1463ca4f3abebd22ac19bb2f487ef523ddcad0be89f3e13ead62e12885ddca80dd990a373d84255ba53cfd28d05e7d6a3858f4919549e42f65f400521da3be1b129d0c2e730767a0d49d2c08f8134095509a944f1a8dfd7b8ee20fbc7e2d2222f1275a760675d5f54c4035c6141d5a459805a15adfd8b2acac0bce6a1055f5b5250b1ced957e8c2e65e00c4a16a21c7b1bc5f323f709de538185a9bd4fb05837861b2c3fa9c6d8a2416876273f534dd8ccd80eac251366327e971ddda1cf1f414c0c0280647acf0660181acdaae87dcdf30e9e5d7cf527fcd8e42778104178b85214fc45179a487b0b0aba7a2ce3c9c42852e5693091229faac719e9e3eb7485af8f45a5cfdbe02c41d0678fedca2fef9065b36b151e2d2612138c31b161dd084bdfa9d6af8d70e8334a71252af3679c8c77f31fc51508b78f09e44043b7102aa2b8f28484210a8368cf6edea0c43102aa73252414cff2a9be73ead31cc93f5cf85e992a4ba16ce8d2ab03681b3e222dc1aaf0a173baa67c4cff5c72600e8809388be24a9db482b45eaeb7e7af6ea606ba72bb14e6fe56c2e82d29fcf66536f9583375bfbe4d572de1bef5a68e895aac6c81b6a1687a59ef7335b8c47c9e887305902876b2e046e68ac6762c145fa5215bb59f9e2f3cf871a6c69a52e06002c587761fa47909c281061e27b962e6e0c6478344d0c977f8af5e738552cd7fa26aae80e7f2ade661ac1ecc1715e2d57c92cbc0534b5123c2a1bcfd2ef9d0500221c9cf8ca7d0ad01f9a08d5b5a601bb48d4ac5de65d379dc13b62b5970581a0fe622e123c61b180037c5fbbf57835df65843c1b440e5232fa1f6f3e6da5de468cd15d6889dc2b9a2f631e953af0dd272bf85992b162244ce32293caac97cf049fa920309d5b0d554ced5af2a17eb2ae3d930e2ae467c8fe8a8d282d9db791e77bedeaaf7307e389da300378a01ccf384588c46a13cc9e588f09b97893582055b8a32c293b3dc2f4be67fa02ac078406330b95215f75cbde3155e64853aecb992c6d821f4028b0b2525d4f15893c32f71f188fe8f84ca5b7713916ba1b7a99ee5dfbcb75d385084b92b826775b2b074cf75aeaedc4a617f0d98d47aec440e9983c28643a4a9665ad46240221fc8a80933944a9b07a6d0867f3b7082b27ad4730b964f1b15d1a300d9939f63d17d2b405abf599a6405bbaf6699c014ccfa2b480b02b9400da1cb7f38f7476ff0fdb31cc881ea4dba12c8d1f330d31a871ac86932a4685e6b1f448142b6bfa60b80caefec77959bbc419a7400270fe024e30589120c2bc33988713f4c2115a0eea08a29c2ec18307d2160b2371441f93e974c41597a39724f551cfc38037dcf0955dcc938fdb79a294c7437c40254b1f51b596aa4562c9d2cc6529896324f0790c7c08aeb1007d3d0ca6aa399e2f93326204340b30eea28a3dd040a78cd14d9552842ce920328804b2062012c36db3012cb9fae1b5107020035583c94097056ac83d9486087d7f3d6382408deed0269e945c914a81f950f7dbd536f8f6e2a253c3c192d238c0a63d6bd434b06a0b308b14c20857d94551437583e9bf824058f585e780f7b4e13e400551a449ce2d93011c990ac3a363d37360063c042e40f97de5f1462451c187a0a1a276986a154e9539277ed5d4ef8d67f0afdf7d565d93580d4447f25abddc71ea9d3d976633034702a7ee779723147ae109d1d1689850e8a26099985f9eed8210469ac21e1015a70586b06b1162a8a526c50a3b173143ae1ec1b48426519914e36e3e75838089292457ae234cd1f8e1cba5aa8f802a2a0609107c94d22cfb2f175d2733fefc1c101053ec8bb416d7845bc09889f47b141da438037bb412fad3e591c2ae2e67e6b9b533681a1762138e10ec4dc9184df278d8185bf8cab821bc87503f1f205de61871acdaefb0d5790cdca602eba7fea8296667782af389f887cd8b22e035d1157a3fac9970937b6d2bf96ee0922940bdc3cfff01406a2af6e73f06fae7030145b75c0d317823d7ae6dd860f63f57fc50ea62fe0f67f49f5917dd4436fbbe0685c48d076a666221128fd5c14b359bc5194a9340beaeb8ca6d0061c4cf5b4208177d00df84d15b682792d5a11a50283b3799e1df9c00a2675945a0b1e56d8da2375d7fa1356895c31affa239c27e8f0ae561132624461efdd18ada99981826b78c77360c44e0147714169bb3e578cde281a0b889ea99396d1ba82942bf00d4605ef0b296d349ddae31e226cb2f05513b7fd11e701e1e2e6176a9462f36c062d9e8cc9bbc0cd309015796dddd46d85fccd305f412f27a51f14d3931360cf328908fa65a366b24222f8a35c007253cf0e3c8c9c86924b435cb8cbdd45616cd1a7cea2c488c07eb2f568f0fb53def90d7e0e7aa852a438ce9b6774bb104176bcae194573449c2664d438bd8257525658cbe1194bc111298d13e3ce53076f89a01fe8e623762a109779a523772cabcf6860ca3916a6d78acd053ba2d350c0dd64d90ded66724fb9a86262513474747670c11723fcce6251caa9db1968f9e7e5821046020c2bfe6870c7cc26f06a94c24ef8400a1979bd9a0bdbe447033c6a7e79d67df8ce8f06a62e8b7ebdc5b6f0d3c360f2ea98a068ae5a874bb79418031132e5981c50fdbcab0752b45c077b6899be332a8fb6a6059d1b617f985bf8e7d36b0acdc28d864103af30f84f31273a34a39063822576834466afd941c0dcd8f888d9653063376e5babe0da15657b62ae0b114091f40953cb908b032448f94fb1eda3124b6b95c272e2158ada2337ee6d590f8e132c4391dd54e52b6a33c4a49a4a5485aa80284592118505f7fbb0d206b874a27190d81a36eda21103a648cf39ad4652d1b0c4f3c09a48b47cda55680de03e63a05dda52547f0312ce04349ecaffd4aac020c8cc688266aae7fcb9432308c402c6c0f526e55742717ddc516c494b702f3c9b4243113aca359672a0faa2e36fce73fe9f2792c7b1bfb95597e7ab5c9850cad3a4aa4b2b91c4daa72c36339e4dfa18806267e8cc39b7374f8827a2164b8e3b7c6afd2f38cbc0bf60a7d88c5d714605cd7e6344dcc9284d0af4fbe134721d6de8a1739a7261aff5dd5a069c4b13eb8b7e344c05fb377e35313d7d098dc80cd1a5681f7653098c511ed186c98ec0bd5dafb62b05ad1297fddddce93bd50807027c412455a7856f50e3613e541ead7eedb25d9113bb382598edd198673b15c60c3c22efef17a12bf3f895a890d3a76ce86caaed275ce05842611202ed97ce0e4ad7d7844a03b49f4da024964ca2e7becc6820b01e9558e52ddd2faffbd11715af7e2177b921ad48513150e564a88373a4803cd74d321370144d087473c786132cfdbb9d0dc4b722f1b9add63bcf172d68bb183bf1c8d097df3c82168988861299505227da7d8632e159de0a0f64730ad5ffec5a9406e0d50a150871789f1fbda292630b9a0d50397dc262bcf74eee6ed71b4c4b25bc826c52c5f9f5c543dc9e64dc92b60522dda59f4e736f0910cfe7fa614957f4f81c11bf9d182875b7a8f879ee8ec5d1eca9c15e122bdd0570098b8a0d11b832ea5c0f67badbb407260d2eb27f514f508824fcdf3275e15ab8634da694f5967d4c390c761a5d807c7b0ec247279fa0580793a1e37495ab3214bc95942ba21957a62c54237f4b841df4baaf839776228898ec7ecf92986e97de7a1e586da04fe65f952dfb457ec27f6da7e1922f90424ba1a2dcc438506a403cf06c6d8fcd9ffda8dd333b15160e5f6181aacf5c770a02e09dc37c0a460b75e1996d1185fbaf31b41548c444148ff826e5148495726c2282c8e460032a9dc8997c9bcdd8109cc5e8ed3eff28c79c393f6e95391627ffcd46364a2cf7b7956ce2df05920579dd9c359e8c315b5a48a66798d19b93054cacc8ebe033796e14a28ba81e3cb3bda134229d3fe2f01e37701b9378584fb253e1837b89196f7c8a0f85b0f31e885b122ac5d238faf7960a6f08aead141c1d4e6b37ac084ea7d66e7e93792698c60df503aaaf1e30d0e59c1db888d3da2d10b8c25b80b9835abb87557d0c87cdc709ebb5f7472ab916dd13d92587c2e8f3707b7d58495fb483f44af02573a53a9f949dadc3b325606f10450febf41883157667b39b97d9d8d39ecdacce2d93d5ca8044ec3fb7bb1cd57fa9c9115143c9bd677a7fb498556cf856fbeb4e26d0483b9055e60f3898e4553c79070fb53a209bd8481464b16aa2653064d67f454b59192f56d4a33714de77f686d4de44de60576c910028c350228bc3a7c7cbdb5d49de1b7025126ac1c44d3c70c819caf9ada8a22885bbfd5349236e811145b81b92446b96c5b0348e8772295b41632ffe1472a17b768165e647f1c4483790f86e4c0c0afbaa9a9391248808202815021dc01f77efac00a3bae0bf6cf4bd8fbbf995a161c3715a9d95bb6f714193a3490ce1da04764f82659cb3e717eac4f27493c92e1516ac3c09f4f40cdd74f2077458c604ec0b32698e3a03ffeb0cc9b3de4675de7917a0f78652c25b14859ec5c3c358ec50f951171662240be7d84919fc0f6594f4598a4ee7cf8cea8c2081c026aa584caba9cc0351641effa5be6721eee2a541df87857c2ba0c413deefff0f3d5e3abe5d36df580d74dc35002adb2c9bc535d04e76c3e670df7692d0a0c224c394a558b345ad250345c8a0511919e6d6c12ff222b69a8ccc58dead166c8a085c62c458bff131b170ead59c610a2640f104506f87f6dedbe47603432a6ab4a8648b861081e9538ea6d8cfee9e4787a4510609ab7a838811b11197c07264972912f3a7aa9160c997e195180ec8276aa7f1de02f1f15d1f020418d4ea4e82611a809baf8c393aaf214d79cda3d8ba8af0daceba1e3324c410b31f13db2f759fabed4e4202e0d3fe47806986d6dfc15a4231864d32f9adcb2cc02e5e9087cff2ad6ba2c4aa43b1bba94422f692fd4bf14662fab117c36d3dcfc44a8a9133724a62147f815103a0c95bf9abe5d5caf46c96546e538d96c5f039585a70321e381ca5c1ac4719b2ce5692c93a13fe7a20eb00ad0d807c0564590520812e06fdf642c6222a4b432ca04952331c17d9210e6c8d05c403d4bad4edc927d3ab078245275f1c849ed5ce5d8402bc6bc5d0c006518cd4f18ee2046fdc81385539a2b7bf7c1e509fedc25c381f362e431da78bab872606e086d29461cffee1780b4f88b8484f806ed953d2c1d46c90cafb8f94153b5609e1988665dba652dd3be0dc0bf62f371b92d220e384e3c32a2f9516dbaa0b2c6b474f9951e2362c3bf240589c770eb3c97dd37ce0388ed23bb2bde1692546653e5ace03879020f90db633491ea75e47128ba28c623c81c296e914a018c688ba80e66a156d93c7bca84fb80171372c790807c3398f81c02824be898c266077758a7153fb0dae3068f9eb72d6a1737234b228153588797d73d17d315bddaa17ba378ff9b99127db874e156308d5ffc091138d9d6a929ea983e05ff8e95e50f01a0f3291af52abe465a426ec21deacc0217f8a21853fdc9894a5977170f3ad2d024f53975d6cef7ccfc496c238f41b3f6a1dd9029f28802b192715c755172c342037fea4e5088d1ce796210e4184b118ebc3719cbfed500528e6c4c35c973ff7cdd5443654df3be08b9c9cb93104178987307341579b444987d33c2a295dd477c4f8e4659feb4accb016b40c6b4e0b966eb82a9c1b2734aa688d438a23ab331fe775aa80067aaf56d7044af4298d83c8e7f5c8043a390d014eb142c72fc71a790bad660e69322ecd9c5c1c6e3ffd11e3c623e02ae6238288d5d0a01df64a413a00ed2955e3aae8093b46837738755fe8467662402ac3089744c9e61acefcbee8068509b02fd372f0ef9954e09ec3b61a84d1518893244d01e671c57b2a72d3edd802af7f341852fcb381ff5f330406395d2be5152ea077702ca3b1659c5faf62aac5d06a2560bd4ab91d1c2db5ba5578bd55d57dabaca3195ce5efbd101c90ae6a0c82a67a5889b858d5b0ad59293bcb9da37f998e361e0b568c548ee024f3df4855f84aba062bb4de2649be3e1f70f72cb315bcebb6ea98feec223b201ab86419551edbd28dbebbebc51156456d44b564147706297bc7810990e493a20d3ab3b6473e7bc4996f0424f0cad8e4dfad72b3b20202a8aa8b21c8a554aafa83947801ea21971a27af94f397e1cac4379a5fd21789294b3cfee0af0cc8e1557298d01e39294248cfbbb31ffc8f75921d654a9f12536720fb6f7065650584286a23b2d9ba4643909b7e0aed7320d8956f990ae5142e36a8d571ab2a134edeb5edf7d1e338c406a754645d40bcc5e6b4e6b42fe459a84101b85adad5c2a62e5d9799f2e6ae91fbcac73a5abd13c6438b62e657d93a2d9295996888a52b76ade1caee2c7fae234407534040cc1a7f9728e5efed979ee880a091ae14579eb2c12d688212a1004021bb28579e72839b649211f59912756014b7bb8802d63382c078d264f6aa1e4ab73f87c688596925d950ab49e3ba656aadb44ac408182a4748d3eb211ee6d61b48648121b105fc6e5b09916945cadfbcbc38c8651226e43632a3a429980cbf9b37bbf5a71a84109bf572f29e676af31412abdeb58083fb653fbf6c5d409664afd73935c4eafc404a4d87b980257fb5ff6a6125860271e3fc9b52e517d81995e5706272558af54898891bcedf422110bd408af8570f41fd7d91190ddb0ffe07b008553fa70c67e97a24d39b37599b7deae12e84941cff247b4f21ee5f99727de35c26fb8d937a5e7301606d53026c020b834d9c50d04dcdfa3862809ef009e38162a9a1bc1dc8db46e7460a1915698d3a16582104eed98cacde0199b4752c3b476071db1c417516cb2c7197057f33e8ee71ba08ff92c4b187ea4832f9208f30976c9c072441da0a6ba0f4d5d0f194d6886e3be357d53ed96de3382e10dc4ef18983646c03b1f457ea9868c8ca01df314d8e402c31090b3bf79ce7ab2710e931cbef36e0216db5ad3ba06a85310b4c58d96a03719d7aaf13987ac2e49527bde17e452c967146879cecc7a27e5ff3c49920c8af5e4703be9c1a507c6c454af964a8bcb8f3a7c1cf4349a71ca8de3d9ca26cb8f367f3255821c020282f5aa26b9e1d8b9d7fb20f6c49a49452005b6276d65826aee75ddf680f21f7c82763aeca4bc011ff8c0c6d50f9888cefee95b9415bb33f6d037d848b365e0efab724594982a233c2d434adafa1536f327b226635bbb608481658dddecc43044c74b57a094bde268d81a62a466590f30cac3b63d0c5a7295234eb278c079df04bce379d41f635cea671176bc8b7042e7a7a3a136abda65c69208ae27f3570b888b8d11a0825db510f8cf4a40378fad7f2943fb5824b03dd0e50a4d9d1d6dd806f69e5805286db275c1d33d372c18e7b5343aae22092742a26284591bf29d0ac715abfd4f00293a6de0b03e11e40ba7c1a72f7157be807f0e6df6b40b34c017109d82f9ba2b031685636a4a4d0bd88cfeadfbaf84ac278687c85048ea56729ec422d8f5e6f87ab510cee57fde724da8ba46f1cba0c360b74ab1830e5cf6e2101d84ad878aee2e9e01c2249cd2a3c67c1597ab2463dfdbefa8647846ccd916499b3532c874ca90bea57ba04cef248a2724a6be8509d9364568f48b7d093d3c5dd0c88dbb3651b41a30b35627cbc978225469f88028e107ea8d7b030882d5902cbbbce7442a0b6ddba572ad507de07c006323632616c64f28bbd245acdf18066de849ce98e7d819bffaaedcdd0694309414b08723f9cea59dd28c303dea54ee01278c9abc5dab7320617595cc71ac012abd2b16f36a6a2195221ea19c3a90e66f2c177a886d01ebdc29b4931c973c0daa8d6ca4455015544c46c1602bf94f9dbdab3f913130849a0a636e8d9cbcc0f118c00219308585f1788b5e79bac2fec20226a8f24d3f0cbf676bcb1ff1565dc7e08e3e13a618ac3314e4b8fa97c751f489d99f6d4c03ed1449da7cea151d6ea9f09051b123089a57967afdbe80fa35dea120dc2784660223d63b8f3b0a903120ed843aaf47126469518b2f2a9686ec46d4250089db3ba80c562553f93aace5153415164c0844397ad80f2e40fd037d447776811fd7feb8ff56f0e5b662d4ce4efd7c75d0bf58beade3b5000df62b070dfac75f74030000ca89891bf9830b4c7bedf7a268e9b9d711feb2ff186c29d2aa6520f4f716c6b1cd23db285337cf87044194c454f1866278c87fb97127251973a5cf9aa75d31032189512dbb2fccfa2fba5e8805439d71d1bb1663f1910f23db76cfbc1792374d9d0aaefa9c31780b5bd3452bfc87ba21e6b0ebbb865dc4bf98f2cdf8f86cdb04b9253b0b715dfcc988b66a65abc2f01338a711e154ac1a77aa29484f1406c12de8480906062a11e0856114390f2f8411ef8e40c1b6b4f4fef45ad5a69a9451bcc40903f36d35438c7548abf89a0656f6b0a26f25bb6885c4137cb21ed494b2bf97f191199c12ef9df790aafc5538c67db53be0ec4be4991172eb3c294eec119dd7c05931e70e124e003cddc68deab4a594f9776e7bb50cdb84667bf884601fdc9f564ff3b01619b473ab713cd2572645fb5ed69760d41ac0a3ef0a1c134722e5d3aaddc30a608089eaa648bf1ec4df569c7e1421e88d822a6748e8abe512b1e4d8565682d5aca5530ae6ce354c6451e6b6fa169c7ed49e50e31517df10b4d7199b8a4d81294455003fb214a14e30d8981c1054f42eb3545b248357bc7961490e926939af32b694630682a9c3ea6426a666c567b43a68ecc43ffea89ccea9ae33ec6c355d815a465254c1c52da5773cc84d4b3a04f198c0dc1ff68270dff42b3b88b89e503f9ed1cb54378cbca25ede066335fb0410e4eba014ab13dbf202424e5e7a7d982f6827e576be0297d71e281be17fd71445c02ce199978a042fdf2644102f7669230ed09c2a028c25a383c1d41a9c7c8438390c18057b4c6c60e284e856b2c657093d7c4480061b8e4191afacc5c3a9c9c00a22b6b0846e82b6d8ed874cd3b1e58b592c1939c4e1680aaca46606aeffe149968d720a0031cd5998aaf04dd448ac588a4d52a8fc975adf86accb940d944b7a15b09d77c0c0ae39643b01646b4673c2c7eb7a80513f0f2eb089ac73530799ed36af18c655ca1d03dcb7239cd52ace692824a7b1411a20866830d8ac3346b32171d1c3df23a1c54b04ee5c28c28dba469625489ddfefe46e5c03c534342694327118d72e65aee34ba24672dfe282786a4088f37c99c7ab89d447195275417803752f0794d95ed132b84f7ed3a3be7c25a33d508e2d6c638be023316cc2fa71e7a26b742689aab080d131444d70617ce5b74b944421d5d00245dbbf45fa50be9de6100799f40e6d40444254669b389a1aee473787a971cb23a69669fe20e193c30c26736df43160f684fca1e58bc238d806440b08684487d329b90f91cb90c7bb46c8c2d1339d01e4650e3a5822689b0718c608c6c5b62af0759147c93dc5805115e62267d307853b38fae2007bebace241e30768b437906a642ddcdc4d4ba58b031e92763e3e3b7b4498a38d3b12c3720c927f74a1ebb2c0e98c34dc94fd7eb088d1f4dd1a75e71e7e756dd7ccb587db2e50c7aaf74ebbc61e5803bd26ba3f1f39f774907439b5548b21de7913c9e0334a9ea571816c3480920e35acbb7386724bfc67b52d8ce7538fd59590f9fda7fa5b43a4e9e812dcd7b1a63166276459ef2f90175e0fde587e7d5893a3d1eee88024c57e4a905a55eda8a9d8d8525496c703ca11509ed7881aa6a23b2521e8519eca895d9b33124919728378a12be21adfeac26446aa50fe56f4136147a89d49219860e22e49c35e04f331dfd26687c7170091f937f1db00297e0f60058043121d5e2ed1938a63c217d6c629dfb6ce96b88024a5399ea1a09f063d3b3fff81155f5cdd32f482e738d38a64a8e7841b2a731b0726d31834d2137d9eb17f4177ab3c39ac8010db5af96f5e86459ca87eac280e4fa3079677cd0428a68cf17c0904786903e162d5244a2b93cc8a721379610d87d2b48627f1dfbdffbe833049db160936348604752ceca919ce7e3e9ce0706f7b97e800e846cbbc5ed0a69eebb00f3d1aa9924dbc85f397b20c6dc65f47c8492ec90f7cafd8f21a02b37ce25ab502dbeb5c74c80d047a2a64b47eb51db203f685d17a193c90450e0f6929e2220a50b872ef93d2e755a8f1fb91cf6cb017fcad2a02d254e53968714d27ab72a5fa7ddc7a3edc9aaf123910a779ba55a41f61a73968ee33162ea1ed200ccedcd0db56a9f9aacfe1d474cbd472cc1be7a71275699a7b6d46e4788d57f7f028be3c20f52a1ee819adb6edd5d472e13766063a441569a1ae43af69621d7ea0df2d7311f544ff257fbab5fc78857739ff59621deb8262acd67c87ec484fead08a781be753c3c5b6f60241f949acb55c6201b92566c1d362edcaa6e1b524e340251bf069f8e392addc3d0222e3dc7d373181fb59516697dd6920f8b8552506d916613cf112846908efb244fcd03383d79ec57fe549556b0a55c29f6479d924b322c6d8dec71b4afd988160eecff1ad83af3a1de9b0ec75c2f4cd5c3a4116b62e19a58068600a5473178c8db9fa9366fb203c904b70ee49184ed35ce117f9d031a611f17c484386282fd77d28c2f0b48b1ca39fe089f46d8ac48e428485ad1fbf749d23c38a75b0a3cab0e58b5ff9336f7a658bc5d17a03e8dd61b3f5310739ccf7c1624d59f30aebd3d8dae64e78963ba3386b42a873e63734bcaea275339f9fe9c7c4d963bd7edb7dd6b83298af7920c64d68d4dfee094c5b7c5febb1263266dd3c3d5e8fa8cfca55fff1e7c172767d96614e0f3cd7e525843af9bd3158fdc2e6a5d039c22cd79111c49374167ec713061efd6c2eba9cd62ecfdc56e30a6f030b4c6fe6ddc4e14846c533f85408c7243c49682269282e165623d0207142ac00c3a35584c45e9804c2e62a92aae454e634b84e55e3eee8ff96723a3193ff564b359b2364a9eeb81406b59cc467d79f492b56c542616cde0141f0c5dc0679d15feafd174960f0051428411d9920abcacd12215879f73505b85e84e20b2262d587b7830f78864b958226a054260601c61117a9437daf42e94c85ab290f6a0a45925044554d10e7665dc878af547e6863a07a77008852d5b93c38e5ea456f7b8f1a9cb648765582ecc00988da02031d89ff591e0a8167ed09d0396c84fc7271b9343a50012dcc38c61c93b3da50021f6ca358104272d1f4b5bae4ec0e661d465086b17f49b25277fe7920408517730b90f21defe2428afd40deda1025526f49e0fea20274226c1e6515aa5364fbd4a3ec5928fbd1a22487a796ee1ecdf85fb66b18047b0cc8708f0a2e83978fe23d38f2dffd710049a589d82e4292179a99887e867a09eddc3834a920aab6918bb3d9fedb2dedd6611bc06a228558a583143c1cc8e0bef0c42766fc3e365fa5e1f89dbaafa4c7fc0553885d6e0bcee04ef8b888b2fe8bd8223790e79dd6590e0806c0407a1b2edae037bcfeb3b9ec6a026812c0a2c491155e1c769676c8aff0323cfa9fb687eed859e3cbf215224931ae53db0409ac5ce4bc7f15219ebdada51729e6fc48ce8b4a9619a7f22b790beecbfac5d3dcd5135447338918aef8f66d22ca205ad072aaa4428af531f6cb9fc68be4aef95bbb5d53d3492b5011b639cc4ae3b4c6c0575fa94fcfa17be322d20a0e98a72602f1a7ca0e7de98f107548ab5f936ec0d390d413c36d50ef03debacdf0a5de88e0e1c20e08e4230f19c5283f4207579a0f6c64c74769798e97f1a450dee3e685ec972b6bdbd64deaa575016eb294548cfe6476220c63b32c1f5364a5e583c63489e9c9a133cd69e667fe0029dc4f83c03f3fe09a3af0b2170a319dc5d2bd906acbcd243d249268115d8cd90cd1e60498d73674b145c246a421f71fc75efafa7303e1f7114ba2779487a41eebc67d080886f2e9f94531a0104c824ba7cdf68e9b77c34b294325a64c236018c3f86825f05ab354b23ba8ed9cc533563fd03e46d8c68b3226c6abb531fa437a8ed220f8d3cc464d34a894fdcfcb45537dd18531f2e8ccf0f05750c43fb4799b35697049dbe2dc89427fdc481b0c6d570394aa1a0d05cf23a6f3c81b9144d35519ec2951c815079b55a75a98590e1e4844b8a6c165ddd6719019a78917e5bbcf0c3c94691e60161596767c40e1faea3e45f5dc8ff073275c01b70e6676dbcd6bd6a2d03632c0cceec23237ba6eea536fb23dab72db4b11b39bfd42d060f938e0e191678d1d4e3305944c3744eb23675c8590c93f3ce753ed01cb267ec9eaf14bf33105805f99bcb625a5c5bfcf76db700828301cd80c696c75b252891c50981d413e10abd05aef1cf3c20955184c8fc83ac9c9e17ab047f9b9f362a08ca1ba29207a370d19950394da688cd4cf417ee2cef0fc8e1d7006d05aa3af734c75375f5a5747e646d7d4b63a696b39e4f2ca69254d39ab63cef70096bdfcf49c3d10308ba71aca668acbd6910550514e57bdbe7bb2d349dae469f12f62f056b9809109c1399ed097f662400134e7fc6d431dc8c31b7c0acb7112319cce45d843ba6fc8c01303feb9df901d856cda64a7a3c69a0d508096c90a3f4e5d110969e0c1010c2637d4b0e3be1008b7526bfbdfc6d80e0708abd9c81bc0ee1f3543672295e81349c81c141061ee225a83018d8a802f3bd82913933939cdf8da1c948b8a33e51881d12c49c3d044718852f1f8808a2b5bba8351f7a53f41c635bc31f7d3e1b7433a1f65e9e20e89fbcc5cb2538d08069e2d62e8156035c10c02c9b7cba1c12a438726de1151530c592552bcc108616443a0af5d0f1ceca0a0b4f31e94c151b2038c1b010c05f0314b23623ec9536262c3992189ba64be4d4f3fc5d86b182b14311559db0cc9c1b320e63ec6933e8d94e11e82ede6f3edfd80701bfcd7b82ba144b59348d92b86b28abd25899a3317e12a31f048235ef017213542a80b8726987458db021b3dce00fafd0d8aacf6fbb4fe51e8ec7ec0b1f870404fa4456adc44859284a866eda9db73b882aae45095f3b61efc533b31b3895b1b2d1636259bffb96eba66eeb924c1b4e067a80aa70d7ec9a46e5985befb3b22d15235b0afeb3508c1f0e0d2ee8c6c308ee87cc1961b06958694686e75f3f6838308f794c40d0da767e8de0460571e895ef6298239f4d1d62524b499fc3454c0b3ed160ec1a65275978222c9124b5b81c4922ef06aead3283e03842441d854c080e72a40064cf027d930b291ba98a26fe48b3e77a7a267690e1256d8a4c2e2e20b8ac4a9c4867614c993048f908f0b3f12e2c88921cc21905fa981e2487d052c67a11e8e0209b8fd95c40d06d4aa1e25493b8aa36085a7c08c5c551c82b43793a8dd4bffc36579b05068c03d037d001ed8a5243f9f56a5101b1e857f6682066c4e47372a0bb88537a11dd8d2489dfbab2d11fbf0c60dabf3abb785cffad05027cb5b7ab5a76735ab5f7180ed0414cc44025aa07ea0b35d5804c9ab2c58be279a0cca81c2c2d21ac45418fbade0ab97331aaa1d172dac9ae25075142208f466d54267a40707b472e7895a33da69e029e2a9bcf45669f7c8bb597a20d79e4d6c30caaf96dedc2454cb510412e2de98fc7ba584684b34be8dfcb28e6735ac0ed6a37a156b63b6f674e55fbb74bdbd8594582e520b450b742007b4c083105808622eb72e750b1ac9c170045329e28ceb997804ea143520525c3c42204512fe670710c8bd7268348d6ab2d32227024b0dc1da07ddf61e647e6e4e6a299482038e27a9b9e16c7ca073eb8a0a807aece823eac0a6ea2a3acf1ea954b4eeb53fd5d853c98154479f36b6f43e598d9df9bfc924b4bbb9b6a98df0b602c86080e134711328530714199c0e1c47e68d91c2761195272ce889bdd1e1af97644b786ca6256f5250d2fec5ff100ff70f233466a4a1d3b4635eedf1b6638388318c7d9e0b01fea40a1ef89bdd211302e9848c01074340769c3c938dadc4673a8182fb029c9fa67b70bc661839cbcf2b6f218300f25d092a380ed0f99f2fb7c9c4f490fd16f996d2b710115cbe71b5326d58609008f0e7a39a61b7c105a0042586a458427477966466239e6838cb7fdf812225c65287806cd90cd03d6087c7db16f3582275427242435028a33bb24943e03a218f6e63c1647fe5420ffe8902c0c6cb0f9be988c884670a1ff6f7e1329ab970f55da10a555e90852de99838976f81079e9988c5cc811e2bee090e1846892fa04e7da1461b0b1e6bbf03fcd05cff95da2c980f55f43dd6b208fd6b802b78ac3455cb31a46c6e7c4efff4fec32358ac40fe3db3e28b1bb298429e2de55182eae2f0a9c859d9b27b3694d219999fb9cc566386f0db782e798b9ab60916c37f7738c671cbfc58890294c5ae20773a4cfeecb21591181251bc2dfa8d5591d331dc90e3e9d30700a2a04d74051481c3a0315f7cc72ba7a5132e1a5872cbb33e7dc1e71401891ab0378c4ef4de3b322b6dd16fff1998f92b69ecbd3305855a460ed4407cf49647c4206aa926440459838cf6b06e5d32ed23a9171cdca8c7c58550758cf09e62fe281d4cfec78f8662f56084ee5e783ebafef67b0e8c61e967abe6c626be8f0e74ed4de20337a88b95cba6e9675969821d90d5d75bdfc1ccdfcace6c6549c71d9bef94cdc3b3fff18f859bb472649dd498e44946a054f355fe83d0367940204f10f8110415639c7ad967511686b9908d6b50095c113ea4ce60d5ae1a6b8e294badc3813452a940794b28b72855376b84d26d48a12632d4e515ae7e1441375fa6ce8b1afe8bca030b7e604ac74a6a07f079cfdb0c29b0b3f5f504bdc402e452fe63181dc6339066311bc5b80a4062695178e5d8ca4cd8d8ed7a577626e0a1352666635ed29753a7a1681f267144cbe19821ce8ce20d2ebe64c44b409f4f98116e2751e1c6c984e5ac0a66139bc002126d53c181027c9fc4ae0d430c7d0a040748020e0600fa73db12bbf7bd1dc07269e7939f998379e2faf7f96881e9c564e5e79c55a4d8fd532023912c1eadb8c642c8e4540300b0ce9ea211753f29513ec5e7443a62afdd24feac431179f8848ac5a3982dd08126b79c989c54abe1b953695f4e0734aba343ef8fd604e8d04c52270450f2092ee01e1a20654b178101542c7d6d8c3f5a3e3e3ad162d253703141295ce00cff2c91df16a96523b4cd0da6a528e028e3155076db5a8c9d476a4985f05b94264a59b08d14919516fb78be0f523184d1f424d62bd169c3298c0dbb4a01d4eb138984858ed3bf68bce4a9152b53507533003c85792e321a7262184b7266dd4d72e206c492223b484605ac62485cdd4998848e48f6c4afa8360a0eee72286589adb67e2f25290800a4adf779fc0414e70588431c37474176627c0d4814580389881700c3220bf2acf3890308966af1bdbf6bcb8565c31450ba8998476a31b0e1489c9986dce41892d84e1262850f2026139ecbee8834bfcba3a399c85ad5e85175d7837a06c4acc2520f9653e0497ce23fb91b600cb65620682a21b58ea9d37c55ca4059ea0a3f95523df92b8e995bb07aa46d94a52bfb5201ae53421a58b5f051ba8373719fb4990d3effc5bc80772b131e1c8d0b99ce35775100b07b63cc148c72bdfc55e858307edb9b09a0622a9c29ee503402a0223e898f7f6a64d90a41e43a118cac298060678d94eb500e86c6a834df03e3238012e9e85ef5a12f08e4d506045c9513429906b986f78bf4e9584053d83b00439d56dd8ee4383c16c870c983c2ea4734fa593c6de5dea87d80d6af221dac346d2a9e2e0a44da6c996e3841d6e3f5e1aa5eb89e9abe563f4f80b0a61e80ddcaae1b67839fc6f2cf87d2ca864756e9f7d63f66d43961ff44090069022cf92ce2ded3ad30a7ec082a633a225c206f96cb3ccf0542e2a3d9474c20f24a230da7d330da09e3a233816d2c8b30a9f053ec5f45acd57496a634ab94ba805d3c94ac8443024938cdf73c18a5d04c900350efa05718608edd88486f90331d414c8d1bf02e771708841557299f14a04a4c67bbf095767ca323f92614989ea0fa7591a580a93dbdf8dbd79064f9a38605958d69faf03c7f9d0ef46aff6f499a9d8734e15ace75119defc988154cf178af4f486787ad0817ca5e83c52026633b8fa38ae1f2ce8690932ba3e21e2b49e0a245c88151e35fe5ab1a6f3b72cb923da546bf34c0b6b9c97646454e2014c881385184849dc040e2c4594cdc3336fa42b928e7723b7b074a9ac1a5438fdb71ad719066aefc1dbb075e86ccf1422d009754d85be2bdca4d9ab9f98d936113bf226cd95e998adc376f7caf934c934bd70fa5a639b35fd32cbb7eb539e6eed86d4121d543b34408ccd9440ee83fef7c16c6846408b0050bc62fa7c6ccb4fbef9fe28990ed091b605269f2388fe89c1471072dff3096baffe78c2c22aaa5864123cb56eded8b0b27df8f9053666e6ae829930e0368098acab324b400fc450e32613c20dfe14330292315159bf31e62bf13594d3778240627189584c4ce2080e27b22bfa35ca6c08f1af7ed433b7e4cc13d4c489a772ebf44e06d4b69d210bf73a97befbe9fccf99fdccfd51fdef2b9d4576be661406c6250a5bea23ee98bd519f862d8921c7712401d6179208248277897de1af001ded857f66763215fa0799a20d2f7e3d9c5dac1beab4531b76f700b298510eb6790922760a17d14e32371ea7c3c29170a5f459143aef8782901871298a3e55424550ec9d1e4c3a6333f255090f4c1487dcb1ca1088f67b02979b276ca6f717d649ccd66baa08e86d89870c772eae401d950fdf4c853c8d31da9fbffd57537e2593ec2c56805c78794246a5ec0af8105491ff0bc146638003a55a229ea0219d1e38021729d6fcd7b92cd38c99116225960ba6ed06dd8bbb3e9be7a2d62db4d6aa2dda623cf800fb70d3a5362769e50c1bee0786249f32bc01277accb0c27f34c4cb05820841995d7887aebc7035416701fbf78350c4098ce4bf3e04bd372141d8509ad237bf97f04824e3b08e2f4877ca002722c90ecd051081befe7381018b289402a22e87eac9e3a341e44c2f031dda23e89457c5ab7d2a63e797d34f21200b1fcab654e1ad74926b8a6afc884be439922ff88cc0721a29819b0a91fce5cc2a75d036596facdf63e60d6faabf42beb9c9910ce8cf372d00ba7954d4f483b7b423fdca1c527da547f2f245a2ac208f34a631634d4754d5aa9170b5948f721448929a4f7fd1b46bc597eea8fb8386764203ee148690c7a9a4135cc8420aa8db957923a6f116d62320c23c3b443f3004055ea1450267dc5fb2b06237cac2168a7784f5c20832f327f007725bef6041a3cb5e327f20fbe92297a9900b0a8f69be1f393768a6d28f2807fa2e50123f3cc320f963d66d16de0fd61a61743541800462029175551ca37c5ca07ca6c0c9c54ccb783da221f0dc9b3bc9cbb704c0f28a258165be898d4124b0f2d6328290a1ebf14d7150139df213e078f8883628c25435076733bb5ccdf2b96109a7f9f0fc06c99d46b9f5f3fe7dd51b7dcbe6ec04a4724760350699e62c09d0e9036ad6f1d1b8815278a552ded18f4b4015f092a3b43747c96ac373184784893f1be0d5c038053582130aa3b80f121833f120ee68ac3768ecd6c3405f31034426f94063bb5ff9b473dd6332544bc53ce4525f3e1e36eb85924f1261534fbd3b40fd4ef0df0b308b55997f7196ce2a581370534c3ba43b5bc7e17b752f0dd0d360e79fb8ce297c3c076f242a28322dd679c483a3a4f28e2d80d4a348235e25722166769a55e78619c67bed07233fe1b6daa3141c59d6d413accb5d1c7dc716deb455df275440507735b70e1f0e2844f4cf46a5dc7a574bf6b5ac6ef35763ef566dc051884126cf8739345653509e5ba5c5e2ec1b2ec2e9771189b7a44b31aaae807d73bc4d79db144fa91801f6b387631231acb57f81e00cd816443a50dcef30a9feeaf8bf13160e043c5be0ed87725feef83bc88fd63ac9a822e01dbf03827e3e15e0ae0ac0aaa7c24d0e6177ed931aefa2933e1a65bcf838c7a0698a7dc22f5c65796ab873a7bc38d523102839ba3540549f46a0230c16457502f01db922dd380120d4b104d49f5602609eba16fbff60ab893b6d0ce9ba5646219796ebd01b3d02c10c196874064a050e477b0948492f8ef63000c4b69790d12f4f7f61c7e9ebe445181f3f6f3ab6aaf7718c9725d956b067f94cfb4b5a82a9cbbbd27d2f410ab9b4f9199b015e16685230d683bd6b2c2c6da7d5693ac145cdc3dad356ada4c7a54a8f92d20e6aa8160256a246a54657a582ad574be2d4dfc5c4692696df514c18dcc87946f9ec8e8f4bce932f0125445f4b1a65d5307b59acdcddf1eef355eb028f0aa08aa498ec0f5c0fdf4cb51e5fa5517492768f95e94b40f15521ed636bd1b5b23933e661568d5a3ee9723dec615a0c76dd7a170d34163c1b01df3968d81b0b401e0ac9707edbbc2d6b443632c63bc49e99c410472e69684baba99a0117243a8150a4a14ba134ec657ff3612f1a9274e3e25ee5dd0f7b6370a26befaf27a5941b6dd6eaa4d4427b3c3e08f145d7eff09ba6f950676255f57f29ec39cd389b3015ab5e21b7df27e12167baecb264477e1587b1867a66c341c76597757737710a85d10c2d52f427c3c596fc85c3d3f9a3480763ad68c9e2f40910788f586da3912e36b99509c4062df0c0eeb4b239f768821291e4447bf6b15d039f939b65f54229fc6da0c99e00f4616f828a01eec09880de70b58b9f71eeaf049abe7e29d059545b12b8ff6573b7f6501fe9a51b8922ffe942e5a6f4c120b03849a9a8635d2714119c9a45eedd78405145bc021e8a0ece09a2a246e8d85044706a5eb96ffa2310f89d2c4514ddd74ccca4f0cd1ae2835ffa2310f89d2c54d4b40e1c8a144e53911b2b9f84d420defe86a2837382a8a8113a3614119c9a47ee5d1d40bca25e58d53e07a2c71605e2899988ba3d0804a0d2cb4f0d3aca93b4881a837189af99ad09e3c2594aea4a02ed463b0f039a8ec91eb92cfdfe6dc8cde331df7dfcfb054221713ba0d3a3fc22c521b1aed81d36f35c5464a3a0862c1b8313b7fd1412b64b33b13df753beb13f8e0edb7fa41090030ce8a3c129b7c8328e23261603bd80ea3bc20d9927402c5853e1078125055388583308e532755359987e222f073aaeb617a30fd9cfab25f23fd85bfc033fc66f5324592709508779dfca931c7e6b47d56079a250aa0e57f5fd4484647bb218ede3d10ab524668687f4b7ae01e1ce19b64ba831b575568ead23d3685ef0388b023b81743f29bd655045c2d4269d6d9ad76ca0b3996f0175b76c64ab5a1b5307819fb33d42dcb32a000ba65c93334cec368f92d97afa77035f3dd25857901294517c109ebb305506d878a0f0dfbc578d26808c03af347cd89b53c46f4830da66497b224a9440643699163b6149a4a00f2e1f8cd0ebaff801c5027bc4eac7e0431def6e1a264b52bfd50728613890d9573a36644db34d70e72101a3baaf0e473e6ed740bd5a6774e090a98e7bf4e282c4937461dc1c3c7dcc2b54cd75bbe9728f438e7173eed50a69deab21bb7498f01f1629fad01db383ece88d141860872165205d6f62433187cf0864132cce01a83c3ec6c2b2e0ab5747b48a1cc327cded9dc928a5cb500af0a0b3f60fd1785c3876a4a0d8e227a7959203c635baf04a00ae93de3526b2be9d9137d6fc933a2ddb259017a7ffe1a1e66f74003051abd5045b9cab528726aa863a70e0f809f7a40b4bda7af5e3acde8dd48cc7a670bbe2710caeb5f5a26c4231b84a4ded6109928791f56d128048305c63d65283e418900f4b8947e558b7667b34df0fa71c13a3e2a0e71418414a381b96f7efc6e0d029c5fabb10a02978f848f60779823ffc62ffce765a07f21e831e9113b905bc3086933fa34c761ecc626c379f076a293806655799289f0b2d950ee736b7b8e23f74caffb44635a9e0185c9fac9422beeb74916232e1ea9f9a7721b13032609dcce3d01b7463704d25ef6b1eb1b7e6dfedd7416201ece9fafd0f3f294afd3ad9aa9ac72ca43906d4702e844917dcdee36b054b4a6270e8e246f40f03ea5896795a309a516d0e019b507ca2d8838c3bc0a205906bb676da8f18f9ae64639c0acfad195a1b12be5d2cf782c63ff137faaf064b33b88c5a728005dd23fd4726a775688febf3fb2ed7ff52a96d646d64bdfe36b25edab6b2b794524a19c50785070707dc97749817182d726b27e478ab666e033ccc2ec0c73601fe65df78187b003fdb0778d9cee165368e165b009fb7d38be4c83f91bcba29e5ca2a32dfcdea262f192666aeb24da57e66c66431fd53dd247346f489d84d326744b7d8aed9be8166dbf89a3de35dec1aff62e3bcecfeb19b3749ba49d62e1bce0c1933ffda33fcb6c93b006f0119bada985103e7864b8b51c3cdd673584534ee671ba766068c7d13db1bf9779fba49d62ea42b27eb9b33c385238396f52563d470d34bccfe7f62ba17e53bd938dc50e367db8649ee33706464223370646492ebef959fc9ee6f6eee6136f9b26b78318366dfd062bffe64ebebcab9ff7cf3be5947584539335c383268314a2e59c38d898989ca77b26d7c8b7df3317bc60d3f73d9dbd370ff62bb60c4f8d8fe7e37a99be48e23235f22337064e45bf43739d9953509fb5e6cae666f4fb35d31bbdf0d76139d5dcc984c2666c2bcc068d15f39afac4917ab48f675131734339d5d5ed4c8ec121f20589888fe27c693c9643316335f606c4e86ae67ce591313aee7ad038e13eec4c686adc736ed2619c624371490e67a8f85c5ec9e4b8bdd3f66c790f12efbf5347b06cecd9b3be74df6f6372746ba6ab831981c22335c38a40c5a8c1a2eef9b75e4c56d267bfbdf36ff820699ad1ff7991993c5c4768b55d4da69b15b42d06fd536183b8566affc6bcff07acffc6cc35eb6b5cab7d8282619e6c58cb5c8e0b2b76f6191610556aa24e143c55011ca661d29352f01524bd8a63995e7f4c9e6de24739c55143bd99c49e6acb859d74bea7bf5123f430431b9c0055398220c61000318b0c0c2b4052d7ca1c80ba72e84d5f5c4c61521df6d43dd7b31c618638c6d67678861e31098e938e3199ecf661778356c77c2536b72b32108f113dd7ee66f655bf6e9f925907d3a0d54bf5e8d88cdb437c997ecd3ff3579924a8a0c2ca552e9b1e9492a27cfd26e9009e5310c05a5a2e0bcb95c25205c16a461f0a37ddbff26a552a9542a95de844ba5d257d257d27b248c31a74d2b28e0e1d1dd0926c4ce4e3722294762f0509f69f3cf5be5072848080a5b0ac13e45451bde8ab45cac71a5b292521e11a65cacd54a4a49b664603161d4b8e120645927825441dcfc8251285835086b22558aacaed085e24671894e29a8913ba27272a95c215d635d2128eed02d328696c72defb5a8dc92cab6f4a5f42811973009480b53264cb2f7b3562a30949d1e1f2aa84d572a2af865c22913169f70a178c2898bb55a49297f2ecc062c32909c18c03265659572b150a3098b5c16dfeba562720208c82b2929c3257e7e4654c418882de9ab944b292c7257742b78c8e2202c131eb19027948494f4fed32ef96d3f06826de012624beca3e2b248b958ab1513468ddc11d3a61d66c297eb3b7c38ed921fb04fed1f2a2a126cf260a5bcc140da1833a2a8bc4aa4af5f7a95b21431cb841f35ba9e9057b984318e99f078a1805d945fd91808f6c142f00f5e02af4e292ae566442d7169db547698b22981b292326191bbe2642a91f04fbfff79231cc4ed0d42709c5dc2f7c9d4cc5033830cb7cdcf1492b89824281790464282ba302713898b4972baf7de7befbda8ed3d9294e552a81512924f845d140a4c5d5124a93e97bdbdb965ee4d6d323a754b234ba693411141b1361d108002657847842c6e9bb8fef5f26a498b1c5cdb56d0fec8e16b105e0e1b5f7915485b41c961d39b956b517041cbf303015f830811700283a12060d31b18b743f8b03d2626fc00083800027e1ce000282990f64a39c0a6372f1330e7f27ac484dfae6ba149890c183786f044e56e00675bda725fa5d457a7b8545ee509ac0ed9b25c91418617672162d24264e6cd0d838687d92fbec5de5876cdafec195e86dd6d2f58b61c8415882d5b6868aa10b6dc5911e2753533c8701e0859643a164ba69461752510074a988b0c11eeae7c3090b6129321e2ba2b3030303037df8c370e06c602be6c57a69321d2a1e0b2c4c4c4b4d89e73c966deb8980e849f8ce6408c2773799995cc6660e5e1332d76e86106d0079995fd43871c3ec6d3416f2e2868e3fec6595e0690c6f2e2be573f1d36bd61b93460cee52e687ed85c180eb6a40169dceea2ce66337caf7d3796ccc7ec4e86482743b78dcbe1ba70416330352c37a8f5374bcba66fe5389661b4e58bede70558961a86a661c6d980b49715617769a181658506131a5429910614090d3470b7d2f05b7bb904463f1d3be1e3071b7783bc9b0a6a5beaecd34fae7683baa20f841688ecf44f9d7bfa3e2590507353e4b33ccb9f32c8763c17a7c0b46d36773e31f082ac6ca7d65a6badf8de3a04824b71aae7f7b26af321c5566d9e41ce1973dcdd5053489173c65b11768a5cf10cba4e48d7cab1145578f464bb9f0d223cc75969ef0569a52dedbdf76edbddee761fe3cc71ddc8fb4092e638eecf93f216b9456e915be434b10fcd2f900f84b46f31f0684a98b9cf82dc7b9cd6a4cfa3cf1c77c10fe474bcf7a2bccfeb46a44d6f3a4cbb5177f39637fdf7b5ceb97e1e0263ad4d2b3bf9907e9947dca643bf4f29ee1b8f1fa3f746bfd5add29b1c5e13d0e73ae595b6607a31ae13c8b4bc5889f0d3da66cb81adb6d6786f1f6babdf5afb263a0bbd91a565a6f41b0171eba76bcfa08c6e3322a49962bc591acb8fb7fe72ce66af946e1ca798f293afe62b6aedade598602b0534d67adbb8cc042edc70ce5bbe1cd8ea56b9b0d5ad1aa9158b5cb1bd41d8a727e75bfad652ee0aca5941a5a061b54c70444f545105c6b82e210c3fdd49016ecb5f29c4f432a19a281765fc11e3911cfbdda1db1f6f4a1def3fb5e50d83109e25691fffbd96a3340d42fbf57f88d00114c9c9149648e0e78d3acd6df9e7a4725ef0accd0f381787771ff51b4d73c68c993167cc991933c68c316732366748ae6b88af79729a258b79671a5b6bab797ebf2ef05f7ec31e186b3d8edf2b0f516d081f40c2e8c7b31755abdd980861d501755137ca6ffd8e87e377fa67d82f7d942daf0e475bdeaf4b8464c7335fffef4867a3a614003a9df256ce0fb8f2d345cf7c47eed812659dede3cfd97ede45d0ddb8b2b55ee1691658597efc769ff55ade9a41fbf638b46ff7cf1db95b7ee6b740edd6beadbd05664fa7a00db0fad47a056d943ae5a36e6574fd967072b79ece1a63dce17b2fe9acc01d598f74f2e87664bb4abd8d44bfd6fe81b4de52b5204dc706faa9d3290665541eb45b50067dcc4fbae598b6d0bf1bd396fa5e89768a41e0d1c7b5e25a4f70316d498167756c6d00118ffead6116f60aef0a94d62a857ee24e9df04413492c01048d04a5b4d6246cd07908691792e8e9ba4ba205f78eee8f46204ed5e0bd5a48a20423ef08af565a4f4c545bad2988bdf61ad17908a914fdb4c1d532d0175f0c7e54bca09ffae9113e3aca96f88813702ef0eebd470471495960ae0b596f61f3aac03da17b82e3b84b457602775da775d431dcca85204cdcbb95e8289abd507b50a2f667043ee8b586bfd6fa89dfd6f6a9d3a99d511b3beb66a7dfda9eeee81bfddd737b47df704ff70944a7b51bfddd06c1cc0d6701dcf3b7726a4fcf5c87133a10ad8de3c03ded37c21bbd7d2b67d437aea3d433ffa19f3aa19bfdd4a16f7371add55adf0f08ab8ed711f6bbb3c535c045f0eed3933304e2d496bae4e5225bacd5a84a89289293292c91c0cf1b759adb32beb687d0ebe7f71807c18113bb41a1d26ac4064180d821bcfad512c1083f1d654b4a2f3652a202679cb1b842e721a457f433ecb48b02124ce8286ee370a7439078a2f310522bfab9e910249a18753a0409252ac698d344df11dbb66dbaf37ed46ed48daae8f6af0c3e1f236fe46da1dbcf9d0e41e2049d074dea7408121f98e9b4feec91fe884089ea7d1d6db13c84540bddbeed744890233a0f21cdc29023c4d0511aea753ae4082c3a8a3eed470444e8285beac09da42df43d90a6a38ea18320ced61ef8d58d43bfed809052d1ed9f20367db6ec3a1d72c4147d149ac0a327e7c598cb16dfd4e5a90207b1156d44db18b82b852239e79c37fc6d44396f5ed01d47c2bc668c374735089618c37cb1cfc5788970a3e1461f1662ed9c2fe4c2ec038d9a107267a3a00b1b156982ca465510c281341c7a7c3f7afb7d3f0abab3d1d085d9515115a86c14065a8e82ba0d01ad2418ba33f35a59add9320c54563d404bfbd6fc768faa826ebff25819fbe69d792bd8e96a1d09bab72fe836779d57d33bb996b3aee5ac6b395712d0d917828fcb5dd6f5f3469c9977d0edce7ef55aabb55acb251c985ecd967cbc1a0e6bda764cf8f44c7331c518dfcdda9c6ddfbcbbeb0808ce36b682bda7a47741ba47c8d94a374cbabcd2968c6bad1cc7475bff1ce9a0d7b167b4c2888dcbf8725bc6bc2b72ad908b6dbef4e6efbdd7075b0e3c12ddf18dc230e9877ebff24c5bf0dfe84d6f2a95c1b89616762dc63ad966234ea0305b8de0aa14ba7d7cad056a8f95d9af3f468e57da52f3765dc488314d2c85a7f57641de8b39bc4f2ec7ffbd8eb93deaa3eda2bb33312e74c63777748376e6f5f2ce3c1e7363ae88d93a9b9118b91856ff85991736230600b2c5d696a0e4f45f0a79c9935e2e139448ae4ec616ab542a9552a74739519184bce449dbf34cab4dbb884712d529e582724191292429a2469f0b2592ab3145a22a7d26d76905053c3cba238109b1b3d38d50e5edc199362757638b754af588282ca258ac16b9528d4418686cb14e29129548aec653ca844954e46a4c892929e35832c248d245a25022b91ab1e99422511d81a19e04a4a15ea8713ca54c5888e43828167b2f0643c150a209bba4b8a4c0603094882a59912ad184515c104d18c5058eb56917c9d5784a0dd1dab5b7b0b45ae02892ab53ca078a63a0cf0920206f899f9fd13f2577f6614b579765b0526520b60c1252d224fbb7fd28915ce59e1aa4faf8a4c48d816c19349e52242a93885a115128161145b24b5eb5693f892436ad5e2f99970acce52a419a88c2ab538a4465c2e41372ee1971108a632094883257a44ac422e91364359e52fc470943c150a58a68c2a82b48d927ffdcc004c7551966dffefe0ffbe4756c98f761bffc04368c97c06ef111d8310f812df339b6eccf3dfb076c17dfc3a631c9dac58cbda8b91f809d6df63f0dbbe467d8af9fd9dacbf75e732fe061f60e1fdb0af8979d8087f162ffcb36035e66f3f0319bfc165b8777b16937c934bac6e5cef666494beabbff7ecddf6c6fef62390bd25c2c27302f30b239d29224b96d830c3ddf7b57be4f97601d04bbd04467978d33633219126914b3fbcf768e4a8c28032f305a644dd31cdfcdc59127bbc6b7d8357cccc699f1b3ed61d03eb6fbdd29dd446717eea6677d8908c1f9afe47b7df9d3dffd523bb418a51c1747de8d02f302a3453663ac22d1e42373c6cf6473fd4bffdf362df24dad932ecb71bbbba09969971735664c26131333615e60b4d01c08f3679307b45e522be7f213c714427a436fba3fe9cf8c3b337dd7fd0d2bfbbe7b1c9e6965b5771f233443696aef66280ded5df7de7bdc37dab76322c21d288ded9dfdeeeb8e95ddefbefbca6365f5bbcf3e280d1542ef7e01dd6b2c5841bf00e2e03e7c0f0051bb29fda800fa4db80ae108c7081620bcb0ed4f37c027e13c4c237e83f427cea3c47b943e7c52f8a62fedb0e7c6e94ddd9f42cea3871c8591f727598edc653e63cbee636cd999b6ecdec354a04278d222ddef6065a3efbe01761683dbd8b27b3c85cebcb3130bebbefb73a677a5bfb312dfa1bcb31e2eacfbee77b0650745d7bd4d0c2bcbdf3d6983bb86a3a75dd7617ad2f11c992809ef56a2f007dced87f46dadf5398f4a44a1e83ad8d2e2dc4e39bdb3cc7158987dadc35048c8b35d072a8483b6d87e52a02abb1f3f35bdbbdf2c7ac6ffbea48da03874a0fc86d6417886dee87de0ab6421c8cf1a8236bcfe95401cd677bf5a913ccf23c7711cc99dc3455b24f97a706cf11ce4bb5afffdf8e0d9e2a7edae980e9e2feee23035063ed972bdeac51bbe9cef2955515a5f64ed1288333efdc611acfcaca307d254a48b1cffdb67d87578007181fe816f82a7f8e3ce013e109deef3f6ef319873fb6a1cfffbc457bd596bbe57cd88e30a04ff7bd58be37b7fbabeebf819d3c527577c87ed39e8833ffee9e23b6cffc0a7671df749f2153f71174917c8bf376b4cfcdfaa6fedf06d2e6bb3606a0dfdc027c9af05beea5f7cd6c77ad787dbf51ac4f93e078b93cf8136befea95ef51b4853711ac68c2088810e536bc4f1c9a77fc3f8e4383e25bf769a33f96d175fbd6a771c654b51a5d3c9f72c75a954ab2737ca8a4fc11c6ea8a7f8a87d42da6bc79fce417886fd8628d7f3185baec6d1c3fdb4015363f4e3668dd187a931ca77f08b03a6b6e0c147d55340a77f1ff894becdfd74dc9eea5f0ef25d1f0ec2d3ec374695496968bfe43e6b275ff55de77a71f7d43e6f77bdf6096b8efd2c8e2fbe6a9f3a5da5aa1de42d1af5c1c7a90fbe4ea71b24753add3b6c27394c8d89e2db5cd57671d46a35c3c2ee87fd9e2e8c084f0a347a1cacacfbfb313d8aee79957eef591edce67a3a2a90ebb85df5a2596bc4a71f09536b44f03f10dc147c33869e3a303746b559df0ec537c38789b132f1c3b7348a1edaf0ba4af57d2aca616aec9b6165e2df078095b1fe7efa06e10e5606f253a7072b1bf91973a30156f6bdecfbcb616a8c7e9bf594c6f24619ab277fdcdefd52e48f20ce8afcd4ae7ddcaea79fdab593d4f5a93d927bf5748f9fbae2a7b6ede3f69e253e4cada15d7cd73e77581ac6741bab8b086954da35ee3c350cf5a3502fbefeebdef5ffa92f7956eb37f8df83e2d33d7edfb774b87fe33e8e5b64fbbe07b7eac57df2e8e27bdc07d2185be47ffc6cd9583df8b4f3b345f29cd5f7b4f3e8f4c573f526ba47f2e9cac6f7a00dd58b8f5b2b9ea37af1555ce4e3db5c1b0b9eabf752af4afdb74ff0456ef211823f7e4925825bf5bd8a531ba917798ed4ab788ed67fbfc3f6efe93e41bec3f614a7b6fc1f5beffdde274843fff373c7fdf859c2a92d598f777c056fa0dcd5bdcb451f7c0fdcae6fbbc60745d77ff4c7073bd787aeffe88f223f4397fe9e7e2f177f7df8fa6fbfc4a7fcdc71fb47bf0f9f3ec947bfff8a085b34ea833cf515fc511773888fa2a8171ff5a24a07fc11547dea2d48d361078042bd88a3fad6837bdce705faf8d4cac877f11377f0574f6e6acb153f77d87e52e0aabe7b163896636adca66f6d1d1694517bc7da3976d8de710bd44e3f45433fea51fc149ffe56d9a05cf5e05efdb84fdcc75fd9dcf14faaa7a90739b6652a477cfde70edb458e7a8ff6b09fb6699f3cbaf72b9016968ef41db56bfddebeb1718ce8e3febd0e15fcf37bef3d6fdfd03608e99f7409386c794110043fbd29c863d892e23ecab137acccfbfb383c5ad2b7e136278f19316ced6870435d732de3784c0c2bdbf80ffef7b5ce0d3a308418ec0cd1c2097e7073bfeedc190c1eec9c80094f04610556dcdcf7e1fe057c78222cb12d6ee0d19490e2ca5dfcd9ed7ed6d6eddeb7b29b7fa33d635c668cbbb6a5eddb3eb1657d5bd6bff9922d1ab545a3e64e69d746b0582585e2a739e53e8b2d717e953ff397b6c42508ebdbb7b1a695655ceab9a46752cfaf1374fde9eaf9f527d9b3d773abe751cfac9ebbbeff5cf59c3ab99ef99f2a12933f533de73fc59ef39f28f1cf8bf22749cf6fff34f5fc94d2849486f5999fe5e7f7ca6ddad2e6b7d69a56462d7f942db1cafec6f364e6f27bd2f1e3c7a5959d332c5666f9497fcc99d196f8514e4cf8fe92978b6cb156a32a95a91041af617e11457232e50f4bf94960cfefed9e7f945f73f9b7fcd3e9c0a327f91b95db0c0bc3317ec25babf5cb710d223c5d74ec62939d10e8dc37eac2ef5eae8347e77e781bc68f714f789f06dd1e1eee3ed21d4b5b53987e6d65a0ee3a2ed075c7ef81dbf6d1e37d6a2067f082badbb67f9b444f099c7af5ba8e83b4a5fe0fdd7e0128272a9b56e4e234a21fa225fcdcd90be8ce5c41417c7c626a29fbf526dbf57c3fcaee8162e244901238a115f0f410a14d423080f04de3026de105fa620595a9edf0a0701a91cf0b275ebc78e144bfff02c60ae8ccac0206cf9d9943307aaceca507061154f642847e21f442e88510e62f845e08c100623601944dce338d369a9f173f3e3e3f4177460add59ebe7478f462392cc11648264942073041921d90a643cb21e191132203241324a901192ad40c623eb9111212324232423242324232423240382427484e8ce5c45aa5789f7795e29f5f8b3d8b5ed81cf62efec21fb67076d25a03a9dc72d44776d7b60670fd93f3b682b01b577babda3f74ede3be3ded94222aad399c3628808888f9e1d234377e6221a2aa594f62ea2f478ff804d3f12519dce9c473474a4c808d190690516fdbee8d383ea745622348d4a4442444359b0b35714fd3e4b8855c4caf27b9e6a4b61bc9554aafd832a3fc74d442b88432215a21544a2941129202921a91e882856ea47e80279096261f7c5a709e1962a5af1b314353f47161789523fb11f3b4d028580709b66058d19a115d18eec581942d892c7c785f5a8388da8648768c7470f8f8f9d2ff52048533d08e2e00eba76cc223586cda1971f2f3d35806a34d1e9cc6df6c5a7d3f989edc5e704abb1d47c6400e9b9301f28e03195684768453423b6bc6f16a935342b688c8686052f42f4127267ae9f1f9f7e1fd603037267ad1d1e1f4bd4007ae97921827bf18185005633874c2a3cd368b3218a2cd400e2805e7c602130a9f05e7c4c2f3ea3179fedc5c7bef8e0171ff024240add1e5dff0ff8fe49c8ca4cdfb681e4da810f0d6020833e9484290011f9e92982cf7511a59cb80d3d3d44417aeeec05e4ce5c3eb05ade4c52b849144354a0a08344242348404842483de834e79946d2cfde2c42ec10ed1019298aa2d6804586accc2c42059599554045417467e6901174f6f203c89dbdf408b1b21a403da0b21a4da0888888884c442327a952246011b30a669122fd34f4a307355484212586868668600e7d313eb4e5cf179f4eb404a212acb604213b7bbd8fc97be2c7f776013501ab5531d443846914962cfe21da72bf461359e83580accc062cf89c60b53bb3010714560505620edd990d30a0b017228678e9b1321b5840cb5ba4df37f13346a45f582d84d54e58cdc26ab05abf21cb0e8d885674613d3e443e269b668408c80502398132c9400640ececc54d38cdc889c8870f70083b7bfd7d2fb5f77fcab8fa3c96c97e3ddf258f6b35961d268870f0401d038de8ce5c7f9fa5e8ce640c5d5a113d29132db57e8f74fd2765e248bfffffed574f41d9346fd34eb68c9a8c9db1c8872888cf123e20f155912991449196b4b5d394db46d7bfabe4f572912d2404813aa35d800a74f630c6d8c3ef91b2eebefb9ef33c4e6d494d0ee4b8ee3feebfd08be91d09632ff43aeeed8f3acdf193c3946ae6020e82acc55db639e76eeb9ef6cd765dd755b3eb9e3eedbaaed3bceb36ce77d83ed21beadb92e0e8d75093beeffb3069e700a2fb3e1269e6db62baf65ee70cbb0e8f8df4e6b76ddb56dabef4916ca498fef11db6776ffa909f9844b2e10da6c66adff8d971981ad31ca6c650b6acfc0beb4604fc5f7e59fec9ff49899282624b147e7eaf276168df7e66f8e5d78b0c19e251c29c4207451a3fee5a731cc7f5ca6dbb7ede668de10da4558c31de3195db3eef5a33e65ad0468495859ff4fa5a0721fdf3a4d70feb8ff5697d6dd6203c7a327aaa3b8c44fd662c58b9fe92d0370873749ffbf9bde33cf0bf53877b0ad6a7817bc761467434a23823413bce3035968f08b7af5ddfc0fb4623981afbb867638bf041f94504e9f74f5828e8717344471ba6d69c99c3d4187e0ae874dbc9d53cbd7345365436b315e1fd0d07fb386c66588b4fdbb9cfdc66460cfa9383e333788c9396b3edc6fedd42db5bf96b2bdb747f5227b2cddc73fcb3a59de996c7b0a5fd317afb3677568e343fe1a42d8384f44f92d61a5b1bb710a2ba1dff2104be7ef9a8851e784f77fd1ad2af94e60cd2ead3185bd28deea7dbacb1faf8734c0ca55bc53fc098d2edeb3e431d1ef5a9596fdfb6a7bd6e0c521db76f957631b40da46d4f414ab7d79ec7f536f908377e8ef8897b7ebdf11c97777c87edf7357efb30b586e3f92b4c8d65cccffa97c3781503e1136f278f8ebf6ebb764a411b1ce7b1c35ea09ff477d8da84adf8cffa54636bb7fc77c4dc73dce3f7b8ad69ce6f63b9d096faa3ad9c13637e8e3addde2b9cd474db82c22c00681495d634a0c6ec3bd1805ad3d101d0d98cc2ec973c2a45b741696976eb9d25fd81b4a6f6a831fb57e77bf567dda3d600a0066db120e8f6b75a8b286d0171505dd316fc3d721582d2504a533f638edb388ee338cd711dc78d38cee3b88fe3b60e2aa3b40708f84069f05b8e9fd4c83d45165b8aae99931da2688ba5f907a1b602dfcfcaaacc7eceb5e76a7bfddc6bafd75e547d0d83307441e88377edbd381e3db11f26690df40e7b42fbbac710826add0e6008413cdd2b79618efc958734eadbb7fcebf46b78f17d4c23033de74ecbece58d659c3447ad6fb9ced5cec01b7d4769fdd377375de9b4abbd296d10fc4d11df7bdf9db5467f7a9d9b0d3fc9ebdc6cb8d2e4ef5a05286d80f4259e3b6b15e0f4e1e9e94df7d5c7103cd43a45bda282a177afefecc45b37c03ffd89f3383df83a375beb068fd2935ee766fbd32eedd13e2951ef2e7061ddd7da0d9df4a8546cda887ad429221900000002e3160000180c08060302b124c9915815dd031400146c866a564c1889844910c5280a8330c818820c218410600c21644846e80a939c0af29c5f2725b2fab26dd2b96744762875aaffa2a369a49860a2a36aff4d2b2498aa2c5c24d31c7a141bf818ffe04cd7a0cb26466c66e496f18571c71ee513e302041a964473ffb3500092eb6e6c19afafe8a4aaa9c699413979007adfb9ef0ebf4ece24a930f3c8462a31014523cc7bc9788b8bf25ea875e7bf5037f45af0d8921d95af008d30c00684f31451c0b57c27f5d57ed7ca3b5231b7d7293b19bf01a5879515a5ccb87964586712c06f7c36384a805e26197e820f793cabef95292f485e8dafd397c25da945c3d0bcf221a2821259ac2356af74c61fec5a23ef108917127135f855de282a626b2b3f14acae375a3e6668b8c1fcf6a0cee54a408e073294832b3a6b521a1eb4c3371061c7edbd3e2d7828f2ad31812a675255ac78abb7805f0b4c26ac60ee5d6e70d2c8af2efb33ae1ce50d48c889c888e5c34794cd4203f9c8852cc08d8f227e8569f11105eccd85c3330c13db92c644cfd70a5798c99e99ed81991303d2cb5bd866c5e00c2683abe3db0473e3f598615c13cf1236bbc0c8e32bf1457097936bf4bc1c2a4011137d3691a692713d32462bf2ada1a8227ae3b551e68e5c8f67b31509a52711269e3a371cc15bd22062296a95851754f3dfaca806b3f16bb0f2fc33cd26c7d9ca73063d5860ebf466382d880d48c16689212b08d8c10a8bcebb4c46691c3f9e038dc0cb1b8861b78b65744ecce3c7db03d60abb16ed0948e6bc74c1159ee2a48f56547d95835f543ab9eb3bdc41064721ea365917d59aafdf77b06844f73268f62239d2c1fcf1b7c0de46f660e065f2391f232033b7504ca593ce215a969461bd490a26a2140120cf12b68743c492948c5377b47200761a7c5a47ca516d3ea71d031b0a1e1f4a1b3b7c1e88f4d82d6e1335e78893245bf39ae9ee727e1e7c96138b53928ca2fdaea462c0073f76adb194b9782e858b32d4e56265179e0d9a8285d4d358d95afaea445b4d02201e34d5547e487b1aa7bf0b251d8dae86ecfb15c375303615e0bda14440d1827191447c2ae4db3b299b32efa1405a291f1ab89385eb91ea4c853c7b07c18fd051127e0c0e8b500a38116c2dc84e64e0474265466b30371b2cbc19a234e390e0b670648f2317213890d0102513907ab4501960f0a6418c1603f9781414dc672995b91479d6150d3c0794b0b09585abaa5729f26608d7471f34228f206e03a8d6327d780addfd8672a5d31e4c916f8f20befe3f6d0b0a8e3045be532ee486c83dbaf9caa0ca658afc2ba0af7d075922607a105200aaf1640a292c0b1888a5296f0321a38e86232c2276d8a093070286e39efca707cb4d497757ffdf18ce5c10ade02d849698364a5b457fb946434f2a7d18d82268157ccb91520dc5d85513dd61b41c43993bf2ac35971aa19b4c427be4f7919b5838abe9533f8c3c338353c522605852e067ea020029bd49a4e75d90711113a85d8b577e8c110a89ea729786d94351a7fe0f852a497e849d0dc18aba79af6028a1b9fb5fcc2b4a499e2bf0debb7574c24d97eb8cd55b62f828c3549225a5230c0ac62986a478144bb515f404e3ca04bc1e20998898a81d5771354a7edcbb9790f313948ec04ba2b21464abd8a2ada44dbc0b28e585af1545f66fdb29c697b4a568c00d724c8140ee3ea88f404bc60abaedaf5e7461bf2cf9e0d8ca9257dc2bd4351ec660b4106a3a27d4a94e48cba218ad4e96e6b6cbf38bba6d4745784400ba9998914c4a339307a64c4abfd75ff2fc346728e85832e341c6445866f2a36dde6f9df505941ef7bbc7d63e095da15f835d6bd370e02f721dc227da39539ab7f1af2827822e5528a5ad353d4ce205651c728e269785e33d41e2461387a2ce849270bc338875ff8480f087c18e1576ce36afd5972e8d3ee2aff6a256c41ee8f436564f9e18a79332f77e390951ef9032638a8f79b78e74fa0ce935f9c191587114490eb8a9ae9efcb38bfdb972e4f0c15a2eaddd5148b94cc38b42e9dd1b117e8ba76d9c7b933b93308fe6c0af935d7e6c19930ef66143bd8124194ed7394c280a9e6b67739a85bc92d71b974ba06c50963ca07f189bd03bafe5bce92a1088dc9a53e4e76645b86159f2cfde83fc5bf28240c4bc504db3297d81896ec8274faf2c4b96e6ac41f966fe3e42c355b8172ab9ca4544e778a54c4159d8882f16d2f94235ad96b75d0ea84cb7a58c071dcd5c41dd262ad3ac86e449e8e005d17f0a169338113054b10e1c83a3ebabc049db1249504a8a38305437e446f6ca52a0a3a12abace10d2504de9b906ac505bbed35146b8b2db94114f9628d33454c26b599cc982007ab846780d4f8287f6a286ea527d13cdcdf12bfe17fa5984431295bd8315d037a0be74d5502d6334baf38194931556ae973de4c8486631a8975971265943d5db6c360b6061ca5e00e7ef013efb44646bf9e2ce1f7ae4ed7a992af36c0d957eb95df7c84cf4cbb50a73ed8e7c8d26cc46e59e82b9bd660e148cb43a7454b4474b11035574bbfa5fbc2c24e58b8a29b5ac1ec57f8c586df851397c5314ddd08deda9f46510ae2548d842fff54e8861e182dd9b043c541a4eb6d2d83f4a9b9f09ef8f4765b4e3432993d5cc073174b71549a2c8ba66a550e6e3dc5119790e3f680ebfdc8901ab63eab97f311e2acadcce12be82b0960037aa9ba6e974e8020fd2b7bafa581053a0742b62889595cd4375ed34eb3a0f158dd8ff5477ad94fcafd579a868d97fbf62f365693cf05707ba560a32850c4b117aa8fa5a4eadd967a345a92e2f54a849484e19d5babe5c41547ac3996605dfdab36e80c28c52b04593cea223ee11c0755b54de165cbbbfc3974dae0b6523631dde20c3f0a5cc522d895d1fdd7d0d40c12568601b07b9538eda4a0f1579203340c1121b817775bbd92204378bb03c91cfeb5fa347f5c1ace5d9f7b02d29975ace315d5c22c3edc1b348f04be4cecd22fce412931eb2e38c0ff4193247bec5f8e166c582ecba69e7a6e16ea25cccaec4560aee43763f790eeec11ddc9002878d7dffbee273991788e0894b6277316ded5cea272ee08ce5024762a6f194b6dfaf9b498a10b76c8b504f1bbb7f52161377c6fb04efd18750743291200269b4a60121422d69f7399eb2b8cd8ea3f2989771e99b9b55e9b0ac5eb1d268901298710080dc215418776f5be2087d2f8ac8c11bab6c13f0a596629733ec35a3b6e7a8a1cfa7d5d079e2845afd5133eab20b2e9b5bc1fcd7b710f3722642ff2580df10d02b30586c81d964469291503b13d6fd75b813eb0e02ba644825aa94172bc81ce048a2c3fb708746022ab7e2028a7f06df689c8da35418d2d2827857d60f968ed21586a0dba83c022a3d0c8cbab2e2b9f49c95f04f5d722e0bb8dd5f712c3342dd53673473a01928ff0d8fcdf0a9044ff5d4ec2620a9d0a136a49494242d0155c7543a921569b077632c212fe9c1e8e9b88d6115f005f1993faa5cfbccf3c72795009029ea32fe238ada43730a70270155b7f74108fbe1edadfa1a9e5edf7389d60fd6150172c6b07627a56b3fbe4ac3158e26a0eaacd31a4f4eba0069f360bac311dc7b6f084603e845e2f4e824a2a96ba03a0664bb9c6e38eab6174e421e1c62faa88158a3c4886a8d09776cc31cf710c50772ed4bff54a144c35bd8889e3d92854ba53e16c7eaf69b92c9aeaaaa6bc225472ba249eaf7936191faa67e05dfdae6e7b092d10ec73a436efdcdc31dded1868cea5e857475dd653757d89c9e5900779c284424dbdb4fd1edea2a9ff77158aa72286a5695992bab16de1c63f1170ebbc1b277cf6a4b2ef017c1b4028b825a77a228e8a8ba07da813ae7277b931055e5371287aaa1a9b2431b738d959f9a434109067da95b5b5b460068a053b79912223756933994e008a026c696651df497418d3caac42ce9e7ce8583246db2be4dccac9b7a37abb87ef3be2a906e0249ab767ec751f3d325b55e33e1beaaa5d65ff427db858ecc79c368b55146b7a760f6c2589308a84a23406b54a3396b6e0c0e415e07e8d50cd504febc3206510222cc8b37467fc6c323a422e0054a1961f9df7788f3155c2694a9ec42beb62759f437371cc8c36cc4e47b8848bc38d89c63728cb51a1da451c512f1f03fbe43375fac591ebfd18e86f831d7461db3915e8452f8f4644d614a04a163a3c8a08f6154e54a65f9d78f72226edf2e0c0ba33c9f2c8ffcfea78c761145d3f0238c30f2604747a28e1f5e82d30efc613fe51ededa9ecf6d26c1f980798d27db28900ea93c20b9363f68a6e92c9e49928fbb0beb8ccea61dd9b04edd698787ad75a6ae55e1d831d0543157c18cc08e23a633d62d71f285d116631dbf9f4198f3341cee41a70da9e8619265db6f595eac058be799eacd49e82111383392ebb84892156add6a290908111a9843e2528f94518cd84335a23a79a8e95c779c863a669941480f40d0942289b73fb9d2bc99ce9c1047ec3ffb9b336d94fc1c9e5b5eb48392bcf00bbeb1b6ea1f31e01f4ec3f065cb6bad5cbee5a6d3c0f63c7a63a42f0865d38ad0dec32c580e437178a2c464d13da0719b1033adba10915461fe093dd1bdad6fb308fbb6bc1122e0081f0cb2272082cb690cf47b0f6a71658fcd7235517be50cdb14a6caa3698dde8d0531b44b35822e6134beeb8f23ba329d83126d53edcba4ce2eeb6bfcd5303f28199ae5a4adced7883450a63ced636fe968a681e93f61d1b41132daa072b4c9acf424543d13c1a165562bc67da65745c14d8a952ef315ada00c880d4576f0454948d6926106bbb6bd6816fce99283770e65d38906d0a18e1dd3a597fbb87abcc10f9ecc081df3c91e956ce21fd3be5f4ae779dc292d115b723bb16c09b2fd655bd5614ca9a4efc1c95c283b654bb314c4e590685630e8c2384ceb2c8b5ffb70f17e252d45de16eaaa420fdd8e460d61eea59127ea774e13b774f93e8b7d42ae75bffa09ad7b30857d113d81eae3b905408477669e679e41690d7e0ba18535cced84a782d615412b13f4d3957ae848a80d97053c32a6f839e5a38e8b568f5351e4b1d171dbce6c15e5d0f02bf5de06eb290263265910ce8f01f71af1eca030c912b1bb353db2ace9dcdd137d9dd77708561459fa674d546aeb888eb1ac3be96e47e66c70242e782349791f385477664c2ab8e728760735150cbbc75255433c5559d45954f6b73bd5ee3a7b32447d2f17f7ba2cea54126c7a91d4d1bb987e9c1db74f9493b2e2bfb04706e90e4cdc38cec70fb7e5088b658b9c6284e3503f336081423c9b1a83860ae5880b4a3c7e86355ab079641a2b1ce8fe4df5587c51c4fec392f53bdc3b05c65ee38d367859dfb9e2052fd0ffd653e708c05bf21f94d3a6540193214704c84668c92d1716c198cfbdee4aba9b83603f14cd48fa3d3e71aced7415f3d48a9668f0f17a8ad56362da47607cf16125a778c852ac59e6c05225c11f58b49b5b373d629d4dc5903e0a413ec7608b8e06c8d73c14c36be2c1d58035c23ec0576b8cd59f7ebd9e0deb7715e5bc06e7435d5629b0414a2ad2ca1a9b804a11ba9b2e18533d60f208332409ab2a5c46270832e164c39d6ed5a8f18edba9389800701c3ec1dcf405c8ed7c8e68b8c0ec0f0962b23f0c27fcbce4f6f739860a49fb6801242512ac60cc13ce4a5fd28e1593d0f305e66de5bfa5476f704225c736a7239fd68b604e05e0a508c544e161a93c760e3f7839175c56f35cd8b1e7bf7aae1a74425395b42c817cede2f62fee022ea307b50dc8b0b89aa89d9f64409d514e97430d1186ee9cacd54dcc98eebeb5340cf7b7183acd086dce8238360489c4d695f1728cd9c892a6922d262591ec8e4ea82c11a6e47e83dd1aeb9059f5daad1c7156d59627b93b8a7ece9dd480694d8316251a6602d5e1866345d14324406afdd412f471af3dbb1737c2b650d88b91754c35f2a235ff84ce4cece409fb309c0172e35bafbe7ea3ab7640edff45e7cfa1c3e2a39d237c126e54110ae88b427074899e47ef6259856f6a90235506e10cbd6205b9dbcf2e2e8300bbc51df43a501b5596409fe8ebba8de56f7d3a69d80efbfee28f1bae76cbf3479476d90bbdac15c503e967fea76be7da85f7cc98001112630b0a07ea73e900a099eb2c465bf79a1a7b538b3250421876719fc7159fb332d7563106ecef0f9b77aa2f329762787614d748c13a7e7d3c8b048dcd8c24d297a0cc6e1d39f7f27cfc0b31067b5e496a24a1aa1e3f4f58616fcd5f03f87aab843fc5b1100b3d54702d997f83a555931054a88fbae60063d18d012cf254aed1ac17e14e0e01658ea846675a278b6c4ae1a1898875fe9805f97ebd6290965c64042fb6b1926d7a8b3b80525172f40554bf52005d8be5e08eb9060e9138eb8a33196c367d5b938395c6f241ad833c15d1189c984801c034a15c3b96167a4218bdb5232a579d65ffc545c8ca01881c4cc66e2a511df875ecac9346f31cf1458c59f382773e6837f665441258447e47e3cc582bfec1eb3b7601a305ef26d1196ce0f7e5a5183fc0261d8a1f36ff4934ae4482d9461253b316754008abde85d0d89b2c3ae05c6c1fe946e88d9499fdcfa3b4b18148a35d6c3c899f67f979d7a1eda52c16b49f0d1d45c0851366d5ff4000ca6381019fb7ae680623700a570083a7029a0b964100a594a723c20cb762509e0ca4bbd7770d7814d440f60ecda703bb58dcd625966635fcda746d354703d65210f38a7e11faf59743d1f9dca4407fda824d680728f7b2bba63a5dd06d2487a3e0e0421b6a97b2df1a15e59a1fcdc68dee18b4baaf1f51504a0b1888507b71e1d27b016ed0e8d1c83d531069ec305580f8ecd1f67ef8680c1d686a75f31f6bccf27f2dadfb4b5a10870aa4bf7c349fdb3de4643e9a17750ffc11b682327ed3cffeb9e732e27ea5fa4f4ee80bdc88ac115df0535118b685382a01a74a1ad3bcbb590fd3c73b04f959a852f6d4dc0b4ad2625844bfbe2db583072cf4934738b0fb7e28da1dfad7ea0c588120aa07fc88406734b727317df455f30cd028558352f3bea38bf38c4cd79bd0c9f1113d33d425e7fe7c653b9bc17da0009b0c44b17fc7cae01dc839dbca77827eae90d96c64b902ab6119358d59b7614b6f2debd9e2d57fb2514f2653931ef6c322425b14888837cbe6c8194ea845f61580e4e8388f582633035757e950e20e4339f5175cf04cc981fe3cbf5efd9cee297f24b736662e308a5427b3f52cee687a14ea49c0a68b5d3a9bb042b8ed443adf8ad89e74f2996ade88904e8e243a834665ae21286d26b898f4cdfeb823d9114de8c06ba14dce07eb4aa3eca4085e08499ad03464b6dd12645815d93ba6ab92c7819355bb39a1eb2e9a297a9acc019ffe32ac618bc23c46f68dc1dcf3168b902fd679226f1b9c331c0fd2dafb6910a14cc3565087fa26fe1fd69611c9fe1f4e7b20ca83729a0f75534e4b28025912502354e09500f3ccf16725930a314e2265e25c05fcd61cd50c88fa78f2d7da01ea6a8de169d82e418ab4d05b1debe0c1409010926cc4c2d83cdb28625c6f3e751f66667b50c261128cce44e3d39cbfb8b0d84400a8229807db711031d1a51a6381cb8266c27272d93e89968484004de7c06b08351b0d75149663410ec414dfe2c9322b00e854fbb60f9117c468b281a0c7b1b9253b3c9ec6823e72a449c089910fceb558684ed1061ec4ceb1eb09b71ce2a9f47f6c8b3c7598f5b46d21b61578b71e643141fb09be87ec42ece6648303d3ac38f0af52d1939ac718486424832e29ed4c4f072affab0e1fe7bb09a72daa7be51130d34455511628212fccc90b5ff8be95eccb6ea90ec389798748cc54bcad8604c93b44102fcc510334f5f191bdca70f4b3d8fc6b382a6210ce5d61f1fab720baf06790068e685f8b242b7f5a31bca3e32f8507452edf83fbe065d098fee801879d34c4166bc2f834a8d7560a2430028203e66df7d2c8901fafd16e5e9da9058ee9b3f81f7d30e630c401618b0d613bbc967c6dd1c714ef15fe0c4067c542a6cb1fc7dcee5b3862aa792cd90fbfa3137b023174bc0deb1d6cd4200f94b37dd88bc712c00ce33afeffa972647c035e888caa77e92c9de1ee53c147fbe2ba5198d24241205eeda0a9add5ba61a2ad5e3863521beffb59aabf3cd4025a3497831a27b09664521568513fb0f33df612714f7fa353a9cdd1bdea4bf623aa633caaaa61ad066459b4845e6dc2135fd294079f293d63a6c6b918fed75c369fb7df329606c8045aa1ab27f2ac756b22f2af30087bae2767bcddc0580fa3aa467481053722922bd2f84b958dabd6a8c8e0b34127a42184430996b3a8aafe296679274e23c87f202c7e99633844b3f57654d557dd602d9be932f81a4770083ae097560aa20201452dc64d2b79f824a8aad203927dea8c977a48ec257658d3b4568648fe10c2436029433480082400b0cfa9b5b1375ec678c527c45471326d411b7acc649f7fe5fbaff834637ada524bae2b18a87095a83a2c626903187c00a6b3f1cec8afb469f709f04b7184de0fdbe542c4d9a6ae77d46ab9be2597571d319f407e454fa68fed06e3735110ece1cf3ee5ecd8a8965bfc96d7322413ce1153fd262f767681728988d46fc0610fc5dab410a98b6c2baef24c39c9b53c4680b37a831215f59ad902d3fe16541492070ce845a302744a9a68d4fdbb7c8eea591c283ddc304606cfcf84bc88b3afd981145b5494ffa6283fccb70eee9e23bec60b384425cc03b6ccf999b2bc5e6e12830ab249da6ed4a104946ef93664a083da64b62615d26323606f91b814a5e026c28ba71e0947965cc9d98e6864d763580f81a2b22064cc14f70b36c3d75ecf3d0abfacd0694fa0ef07e17aa4712b9803dac9193fdf9e8f47806ef516593a6b837f0a297d3b37a15574df646d2a1d20bf0cbc63e9e0106cc90caf14045af04f286c35cac7329b7ac5a237862f99e16563f0eeef5a3791b7c85e60117ca6591a1c8865928f176a1041f50008144c14b30e76b69a837373c121470dab82c78da14a112047274c6c7b155de8f78ff8e15591e0e74749d21b70f3808c3ab4a6cb476f1c4adb472942059115386afaadb313cebefc4ee30cb9608e1d4ce9f251a7b4d172af6180475bbabe83d08daa374c4af969fe80401d05636fc3c6778102c9af96a56d0c6e2586fe2e336a3a0fc0cf3994f5ad38b0f09024b44ae32bab37e08ec963da798691e9f0fd5b2b8723016ebc7a9a55770d22362c8487c51dfc5d221c87e84c0960ace4b73c591f03a169552ae115a4a781fa100d81b068e6bed8f24231b08b5b1203641d7ecab99ecd1414e0e8431405c817f239cce371810f8cac14ed002505d445c9447992c747325ea74af4adc4c1424a0ea94c1eb5fef0e6acb4ae1db910bff512293cecfe65f4b4ea7210819c5552a3978d5c85748e2a4be4d50d2c45ac1fb381e0da04f4f990b3fe50f381157f0fd1db526f63b5c1b3a008fa6e4ebd524eafd60140e8ee3cfe0ed4c2f56f59e3fd67a0b1e3d77080c67b9d9d1926abc4a0a07d3e87b0ddb7c221d717435fe50c39cc679899e3060215b9602554d3ffe5fb86b31e956a0de2520b849dafcf62d93c81c5e5e0a8652933b095434edac60465c7824da604b6a80ab91aba555efe1d8e8700bfa11c90d8666c9c4f8b06a335f5692d73bd8aa2d6d23baaf532c145b229737e05d64a5528a5242f11094c5cc9ae197d82316bf7fbdc77eb98794fa722bb815c5830d49b5259b5a2a6366d77ee1fa526fc215c1233ef320f673d43e85681b4c6ea3046bb5f84a56e34d051c544fe04aa1b8b3984f37e317c6cec76f0162cc3894e11c7318a6c21f453b1f7964b6b0f2a721197cc971aa0a46a80a4f4f598a61be2a5aa63ed3681d6c12252b3612233d858958d3a3d5da6e5acedbe0acd342bdba90a834e50a8cf5b07acadeb879f0c2df9083cb5c0a885b55c9e274d867315a5f8b1d2bf92e56a63e40b798090914d503aa94638674255f46485546a536b40bf89df8bd98eea5c717872e62822a73fb465e8bce94ef112252521bdd185d48d1b0868bf69e088e05f4df66122508e87c9c671cb2d805a2c3e58aa29955b7a55bf5b1da2557ffa865d73e3c4e8291d81db582921e4b6af03b7eef6534e42fda2856a785f1aa8459d5cec9506e9c9f1c5e3dece63bcce2039ac2907b59607dc7d7185cb6a487ce144de123fa7f80eaa7c00262e88432db4442d21888ca8bc0c955e2d3f45b8b76d0b3ad8b18f491b307b29f7f91b6d9ead89c707853021a1960fb09309398cd77483ea6b2617641811d4307e6631d8ccdfdf6dcfee0fa18756f99150f122168d4728a78ef9fb1012cd930e2be3bc9adf7983ce229d9d9a2d85b6e4261cf44ea86dd51da2b6cb12945078cdcea4cd48095d11d801116c9bbef3363c17c6249be8873750883dde61ad43d592322dc8f3e9cb3e0e0a94aa206c163a7eed9341300f96ac199f025c2043c16f14b7c1ed93a1d607103fd21abd591f65e4c6a4f2b20a992b3dd917381be7f7b9a21b0e8ac4aee220458671a2572b1143d85d37385645b9848b93c1e2ce232cfc8c8db3f22940ed68d90236b0a4a01d44e878822d591544f5322c55b81a19aa7b6f5f04455e9a274a8bcf2bd04148bb0a544111f8c2582f2c0401d9e3e24c2d490115c822461ea936138ffdef9706910b7618243e9461a35782613b8cd16745116de52576c8c8d8ca32db76380c422acd76a9f9881d4b1e85c66c21c6053e6ee1a219e5b7421733594c525d1a80919520cc29a54b1d4998c785ad364e9867d4103be0810cbbb596cd8529ab7ba758f911974187fa5cf4db633e07e7b2d284389ab2b037ab81da6c80ead6ebb78d688b367bd12b6f80ac60d2ba0c42161852a3e9bb17e05db626ca45c53bfcf84da77e39a7a4c56e0889e755835e804bf987f671f96487fef48d4df057c91b5c6a998febae86e39cf36a01a41ac7b6e7a8a097cd3b5a2dc4c628741343104ebd2011728c9e2db2b0975267b5c49deacb0608e02f41b6369c71cba468bb75d186cdb10b4c61a948aa323ab1585e4cb37ea58ad12d7d981c7d3f4d2384549df6df3e996ad999f4b1aae8565767dd9f85fd230ab168cbd0af53b3361e39865ee283b82c2f9a8668d9a75ea6221af28f00da367f103eec98e9234fb31818f04b1bb12a5b968812460070224bede0afaa6b49f6a4602cddecb968595c040505c206f5d2f2117e2eae6a8f0f1d2df435d42bf179399ed4d09025613dc1700b73a2787bab42fd7f5d0fa5ec8c9f06be7a95185be38760405dd8bb6ed1c574b9f2ab866bfb9e7cb3cf6a579997bdc2a68bd216a08c1b8317ba51b421ac14b1110605122503a0314558f7d9ce69fa6a2ed7e555de9336d563a8f103fd28f5fa59561749941a1600cd4b75805dba295fccc65d966d40f6a22e8c3be1b432b0afe7c3709e05a427796053790166202286aae4a527148290638f76a5c326c5300f42800000f59b7b8a6c8b993e05cda80d864293af161c3afbaf5aff343dcd0e86d021ff57da52143ca596726c420d6a1456f8090a3c2e211b53519b3ccf29155f11aefe0eaab2e620fb5368a4e0c3cad8f9244492d0b438374f0cbd5a91134a6c342928e7f11ce3467b5ec98514dff18c8b701403d880d6fed4249a2528e2a4226e9f9d1267eb9701c7f8f8cd1385981e4b9254fbff9309d7fcd68b061e4d62153aa6dd3300a5731622d22ad74dc0515d45a66e44c2ff4b8218d86b32be01fabad359cc1254ef91295b1d48d4b9462e25af1d34df22a518c744af46f7453c5331047c3b0d1ac2096ff89518960d5808ee619b3413b436cd5ba57f5664566811879f3026b2ace18861f6fa3eca21f658c708ad62a8e41bcce2ba2ee74111ce0f822a4016bdd9a2dccfd7a0b888f61bd6286bce409148f4f608809ff0d4899bc5756962ff5742e18184a1ba8754ecb50af4b761011e292ba75bf9b9ddadcb01e0a68d5aaf5a7225b6d627f4869a674d4864a80d540ef918250c07422f342dc2c646929f316df90ddaf2493624af366079ecd38cff236c18c47dd6e6637bc6fe1052216272b53237d512ef5393460d2dd0ec2189464af70f6b9543d39e458efa9ce8030f10c4aae56a53597b3bbcf8328c4097c884a1919da8a62d543227d4b40f91ec941aad219239a1ae3d8424a7d4b50d91e4b44c51cde98808b5604d92e8e16a7b0c84e242f17154c05c0e7fe311fd300b5680357ac6256693344202c25c37bf30d1a49a1003bda0ed1f955eeaa28d9426b074d3c24253ce58cdff25755da02df1f9dbebc71a04c450ecb803872a9d730a27d17423f4992a4b936061c274bb3853647044e097101c79bb6870022eddf1821d9e93ba6b2f4cb001a31d0c29de38544b8c0d8c5ef89ff71878286b729f83841ee50f58d875af6dec9fe6b6aac2cf9a607b348a8e10a1cb756fb7f3ff0c48ebb2798eeb2244f04b404c608c10291188d2b72468bbfe9bece68d4d7e93aafe1985ce86f47a7e139b37c568b42158252904f0411b0dc85cfa53ad5a54cea72096577a7528e1c205e0bb3400a8c6c608b331670822a7c6b690ef037bc1ce4bb692472a091c8689106bb69b6906f592b653d39f8dd4f5e589537c2fee52758f6acc88546809046b440ac0bc9738089c3873afb98ed1a1c0f669eed0e75d5a3adf2b08febe65b3259321a06e20b084d91efcb808f5c7e36f4da319367eb4a0eeab0c2b0c43098e2926753e5264ddfada05e5613c2289d87348928efd1f84208a29b619fdb97eb167bc975ac58ef72caa29e3a7f5ce20b117c3f90f79ebb1a3580797c0dfdf055cd2d5613ca0d5d45932878c9a28a1db4bc3380d521599800195454b4442f37215edad215132618ac9af5f132514b94d724388c2734f946c4bd003992c230ac1615993689eff32c953a3fd921b70d2cb710157b6adfe3203f72f9e74bb61411ff92c07db67a9733d22a2a4270125faf0a46bdddeade908a3b679c2399a1f1878d20b174998acec471adc83e95537f2ad5596de65946c440bd0c6b52ad36928ba9add44c086e599363532e70d71b9564da0cba18409c62b5b69adaa8c17bd64f092cd7ffd6f49b73a50fd1501ada48c3115133e599f49e5021bee01f99915d11018650593e50f4e97b81cb751317a4c430f2d4df5867877e2837881a86d739ac0b1b903410809901911282d9b0e2568ef7d1e0d951c5566437de61eedc01e0ea942f9323085175e999983af668de588d56815ba162d556d85a95518861a0255b07bb0603f5eaafc90ea0f2759354ead24d350a9aad227bdcf5d0a599b9208fb921e74e128c32223933f1ec2caa08595e44ba7c1d854efc1a219090dc5b76bd0dabf17fef4a08ef0b7651316270ccbec50698b2eaf0f032b55695d69c7c0d8ee491fa17154aeb0dc30e3dd121cc1b5ce0b3380859e6407413681422b80a720206fad3f48ca45d2e928ae142d8394205a310b1e739d4413958d77c7ec341ed5345744fff1a43689c4140696d8f7e69b249548d35bba119238cf240df585da982e20dcbe4bcd77cfd75b172c2d7cef0ef80daccee7a6b7898a79e93d9709c5c2f584202f8325d934b6a44fa03e63358592557669b8fe49aa482a0e84b274ff49def87bbc77c2a462a85ae8a491ce33ac2875d61b409f104ad53334648f542b25b7a56b235bf24884b3b2d99b1afa4dde0eb87d91e958ba5e68720178278e3ec87ba9bb19977d05320703315de99035143ab508674efda468a1247c708ce076527da85f0edcef88e11830042c4deb28820695d7cfbba3de0b9722074814ad438a06a88e3ad459d413076c7db4a6b12971e082aac0ff48a924c50bcb0748cfe0dff228768c09a545a10f51c87a2ba4903e4aebe458b3506fc90a9916a56bc5eda7c8d071fbcaaeccb961037a6216e500dab1d8ec36a6c0d3d3db3b71a22ef5f611efe2aa970b0cafd272af8a7862995bf03c981b27ba0ce68b2ccce695dd51ade4302e2acf953395f14de5dc6d2d27a179a2de4ce11aa2b15344ad8effcb8d138a2e7ae845df6385adbd3bd4f4ed0e64dba516b7743f05c7094de1f691c6e50ca364edffbb17525d8325fcaa6c345d898d4ad078859750a4046e6bada45d1b7f96abb68ae450a49f829724a9cd9b0a93112963b496c9227ce963af24ef3d1e4f9103a8d667b0f129104c384d582ad415268e26f9190c210c178c64146920895b735a8a87e5c9224757efbde105ebf8698cd4159a78fdb59ad92c1dfaa998b821ec3869789468d3961ebb4cb5187f54714d624108f8d42aa05fde419164c4836b60b8daca3a8261c9f3b23a45eaa4434511031cce74c71003df83b808331684372b5be0bca6868420a24ba6047a41ce8c5c42604822a56361140fc29d433dbc40391e16e7de303ad9076283ec117b9cf4f2b90c1e2207d9b104a84f4e5c81ae03c679c9c02c9f806a319331f70b1a4ac239ecb0405f03361584c065a620ef6da893c1baa4687a5e2b1e949f7ee46251f6f4e2f1501256cbc2149ef9711695943a8bdb506f20135345a6874aa69a0bb782ec982743f18e2bd775aa7f2c5c5c60840e8a6472560ecf2caa82520a32ae180c3e3ea65968313f6288a87fff051c909871e5db703064892d206485ece64ab7860207862b568fc14c3aef52aa8126b314d8976115ae68f8ecc6c23e7c142734eb948371fc871e871ecc4725753679215234ba9230feb19b6bc2548440a3a85a02c9edb89219827a49a46ec74a7e29b4af328cc15a0f826b1e063e54dc926481f2ecf85c39c67db8d0926ec39493f061b828c8a30fcd983574e5abeb6cb0e84adcd70b882c4a1b66e1b3be9853f5a12bcd88e4ea3088195d69893e812f6877e8daa28077cc6374e5441f4651b54675190234837b7bde0459a783dc4957261d5ec17c2506a0db3ec0a4313813469a260632e054febd8e74c765129370cc2c435c02841084d7a16f2326aacdf402803740d80a51e95d597bf4f96d520b0c857a79096caeadf5a64446a12b31b0e84ada95a6d8069598971aaf90b671f65729227e7f6434a2f2591766263a0873af4107c11b4b194c894ea02cc8de4e8cc4841d1d739255b1ece4e0a43faf5849f31c8c34087498072170c1c86546712aa6e9a85724afa53ba6330d589006db5792568c9de01abc88f161eb1242c19b689d28400563556412290e7b459beabc67ca4bfa2e8d452d0660e85ce2f5d70b8fa9cc94ca9a4c4d333ee30b68c66eaad8ee95df2feab131ad60a05eccbc794451acda0cc2ee95ab800ee91b838cd6052cea4d4000bec205786d6c5d484e8d01db4bd80c0ab414ad610c31df27019cc9d064cc30a914f80817d9381521486fca2c1a072a3ac91873e7b1d15671a242f94a384c854a1f765dc7d38d5655304c116729cabb318486ca9b8070a9148fb819631a40bb280238933d5fc5fb7c65a7790348fcad9faf9c21fa02b10062d9c73ad072a31d942cad92c4fa90fa0a5dc68eeb0482764e9d6804953500a1be122973d2c679df22608598b46a6e37c625d5eb03999a4fbf9293d0ff8510f72bf2b2bfc05d87b6780ca4dd70bdfa139730b9f4cfa56e5417c0c2018be579f68e08c5f63ede8965065fde6290f744081bb2416dc5241f23c2da8df4a1754bf4ebb054e6c6c0a2c601a994840459f91816557426228382b36fd1d16f63ecfb1e7f47bd19dc0816fb129049f8576fce83927cd5d916b1bc32c1f239bc88c84b132ca19f3bf1bc4832166412125929787d1e418b410c84c318000816587fda40c64c801016b20dac2cda430a4b9fb715c3b2b0d81ddd3a5c61e10c04c3c2d1936109c5c0e66f99ddeadf99f1c32902efc51512840e79714207362386e59c49186749388405eabc6a04fbd3892b5a043e7c8521fa03312c6b8b7a360e885da65179382ce38055f3687d7c5e36a26121b79fce1a169569bcefc60dcbfda4868ce79bf1688928a58733cdb3c9a7715bbad09eb5d1b69ed2e65934ff04ba462c62cf6588131f1691dab87d4df65845dee8219752f0bde0a6c8b913606518d8d25a5f3762f11f0021b8243a45292b9dfa8a90631219003cb29c32163f4cb9516b97dcffd7a73bc16b027127808a0e54e82014f45849e2ff129ff6a72b16a83c05388467d0e519633ef130b6f61d70ba584c48f3d2b2bae817f581bd2b97c9c3a344f857302477775ab7b5c532cfeef107cfc562af3d835e2e1641a98692aeb361ea4e1a4762b158951da627938464a19c63590adc73b1080cb4394f0ed2ef0cd5bc757a0ee3983d68e0407582eb11f7105019d9414d291bf72634e195d1e7c532b70203b67fb1346c5c8df9eb00e3c555d15f2c0e69323035ff2bc4a4231cad2dc6820b0a7d58eabe31d53eec5ecd198c743aa776b11e9b2ec6e289eac61a47c6f22987c8146415b6410ac27a67f01339ffdd9e33164215b6c95391682cf354986c1629921a0b0c92bbf9f81a4b3e3062984fb4b1849421fda2cf8c419d9d791abe666cc90d92053b02a53eb4b1603aedc642f59edd907531e7557f05c7c2a13dc06d1c0b7253e2579a25a356ac9ee83896fc2da7f88eb1735bce50aabc91d67e400e5e5976979d7e92a552c4f6e031ea12c631a9b948c7e261be6d5387b789ef886ea9abc4413a96ea9abe44f9e32d1173d062898e27c52ffbc1cca0673278b8102243ba05a452413d496e05f06cece003f6b1180d998ed1711a13de6239cdd320fba5a2de8f7dee6359d905a83f16076001597eb4c449822c670078847be0313069e924bc2e0808b2a484dcbd6b1dd26ef0e1f0d7ca62d241b7c7a1d05f0a19800f3f0431c22782007007b81a37a630e27cc802c7bdb718922121dd1fb2ec49c73491dbaea23079c802f00b59f660d47b972f8022c4d9904485fce121cbfe7674159244168db3a13d2bb2b4299b98d005d5964a2ab2843287b14862e5e230791f81cad28a2c82cf1fef0e8714093b10216a1a59cc003f2100bc234bfb63c43a1959220345161d43bc69caa42cd19b8a2c0cec66a4a3da16682625c050f6c86ec556433b3074b8824dde9b6a7464c1d87f09812aa9b4ff9f510da6c49a9bd3ce8c02a8882f85e903d489950f2c5da73d348338112dfe6a5dd9b6e6d702a20dbc2633dc61559b40c9225a108b6431ddd2ab88fe0619089345271ef35edd1db3c9d0e6dc5da63af90c6f64a6479345b41fe22a5fc5be75472ee760b2ac5b26321652f9be8addcf64d5f82c46169e2f531cbf5471e2ae12007b02094b0138693559b664594e9ba1817d4c9610b19a2cb3bdef6439bf1e98c7454b9698edc0b71b7f4b0f04e29a902760136c62a161534d16ebf31a9adc8060a863050bfa11843dee651b613e8912f5401a1ddf7bb2c01de10f58c707932e01dd0c9174d735350d622091834a49c385ecc922218b19ffc953df9fd18d285ea8c25884e2b7280bcaea3e122d329c2bca420e35327a554c37035eb5280b7edc0acb180ce0b42ff4d963c19a31b12b0030a1283719690391b2604825cefb9560d1152ef045ca22fd00939bf16c5155ced86d3873dca86286d019fcd4bd0c995316a823cdd8735416d7446d6913b2ec2df9cb49571743d98b41c955968fc6362f5e24fca876a395e5e240a17772810b2c4bf3ed602756e1f25e7e26c0b20c469cade9581617803d5b1ab32c94aef6a765b197c2f8b16581b871f07922272248b5c87a7d94111563317e9785027674e8059c22f2b3c122c643064594f990f9a3b4998387ba454ff0216c56da5e9693197b3ce9f4cc35394186bc964032fd78ed6469308b607279311aa678ad752569c8c12c8b8bb3598286209d7191c30e9db973e31d7c8b41922d283237300fe5cd2c17d3b394245d2c82ac167c608b59263ec1f5c72c622dd353bbc73c0ce67d995da21ab1fc62161b138d90da4c04948f20c78f8a1e01a994942015ac20a412898654c68448a51f14a98426b36ca2f85aa58656e55f652ed647031b21ab3e597d1b549b2d03c72ca8765591ff87a3ae659660e32f3d5f661604e05ce8609e84af2c1d2c4cefe6699e338baf5e884964049c595ab72b0821aec05cfeeba3240c9c599ece4501b340a7677e0e726601dcf8bfb3c89fea61b34cd36816b1335c6ceb350b9101bb4551ac9670c8271867e907e5fc95e1420e999c258f7f570e8a72f3e7138f9c667ae6faead31795f3318f8ef23fd2513985a2f451fe9e3ee6247a9ba3379afe1c256056cf84f8dc44abf29fc0e631cc391951d81dc6916a5bf5b1e78bd8f86dc5e3e23fb855e5465cc4033f30a28dabe131fe70cb551b75d925588e8e62d691cd5dc1b2f63538abdd6873a5884a51297c2b8d3712b71dc5a481c788de8fec418adc7c596eb2b95575d22b3b088b25d73d2e428c266746e935134857dfc9222a414d312ab6e9e2bdee714f10a40969eded618bc0b8fd1d06744fe052e9e1ab5e2d8ef618061c56db991f84b4c01e5445d37880ebb6a75658e8847f58c2149e308e6182746ce2cfd48541c7617b41ebd322f13ab02893c56427bf927c973f7f9def876151806870da28bbebc0d42ad856587e4d3a68d961274308bc10cb327274047fadaa616b248dac273df15a6c0b9e182f1a2f278527254a9ca7a21114e99d042117236cf99bf0fd1391587dc41866c0bd5d6212c2426833fc0c25153cfd43c5dd7bc13c15773ff3d3286f63879e087f8c8a967c9b39903ed90124bf88e63bc23fc62f47e22bf7653f840fb01403e96edb2577ebbe612b8faee72188378590bc1c6380b7efba778982e345ac0cc7184a71fbc6716dc9b339104a9e3eb602e96f10fed4bed860fac041ad055f0b33adcb963266a876dc5dfb8e8f4cdb3778cd6334ff9cd37a4e5ddfe24565f4090af99eed223fe6be72a9f324e12a3b0973fa7957cd37d0cf2632fef8458ca6077664eb4cf775b344dd057995fbd6815b1279ac1274b82080c83114a58cc3830222c7a8683247b8ae7db9abaef1b37981d43fde814c021edeeae87f3802b9a1027f5e4ad58a53e02223376b42ed2b3c135c8e7e2d0d19cf07c8a1ced4e1a98cdcfb8123ba80fc980661dc09d9ac17edcbab6d231610246c104252193f528687f95808fc2af1202442a810b385ba232b2388e82faef695118f888a50995d9d47c091f65b8ee02987fbd8978b6535f6ba60691f751a3892b2cd1fe4bf5f5f37a24649d8d7aa916cbfdc61dd24530723507f4c1ab53cc798c3d997d183cd7d1b33da5ce0a3c40f491200ca2cee4b1b9c44f1f32bd6ee2bc9051438c1fb1664187d0b27a8e8b302f40ae34350eb16399facb2a6109c91bf4c79b24657481c8e215e89952676b5fbbef284adde3777f25f0fcfe8007d3d0fdc1683ef2b801afa589e7d5f69d4f3e14a332d7793536b8e61cf795f16a09fb5237e28d3def7e33f012e99df1b10ca81f3800dab912fadc9816dd6082088d0a039369b4b2ceb484e92cc82c6320b07b78773cb08d14dd7531501f4ed76beefeae7347e39ca7b429a7f5fe09389ecd058d0ae8a35aa7a23a3f043d5dfd740e48f2cdbead5da311943c0efa5a3358cc70b5d4d1c1490945295d3ca5934a24b60458a3811207c0b6ba43b7f1bfc3a47a5842b6ed1f8b99c2abdc6278de6c9c424fd7d51e67c0a01bfccd7549904bfaa37a126f15462adc1a11d8c5e0088283c3e92f021714efa7d61be4448235e0aedc94406487b539fc05d07d8543f4d1ad953a79d266400942ffa34b8eb0263ddad9ea0fa3ad79255ece34ae3984789f5efcb9ffde127441a68eb253bf6b0ea530ee99b71a7af72acdf918b9358b8d54b60c334725e23486b01fc061985fb1649d64da2c927682028a149d1031d415b6903fc7ff85700bfa41fec4601ea04edf955dc9a4647a32ed01ef05bdd35d3e23fc20b26e93ecf08f875776755878063b5a7e2b335344f1b541b9a9a909e523d05144f838912268c429d46a7f01d0a4e74b61055d4f7fd888ce0d77edf5a4e0e8c0fc0efd5ce483af09b61a079a56d9dddd40a1b3fe03b9cf02b392e0dc32f97c888a87d6a844403374f0a38111257bd5fb8dc88d8e376794ee2a229e94e03904ad3793deef4150b4606dc9a0ca3f439bc433ad02574ac9303f87ddd07144aa3640956af167e456150875f569e885f6f53fb8f4421ca86269e4ea2a7e6111ad348ba469aac3b3bec6b8a2764a44d7593285de30bd7c181508cdf5769e21debdb8043f61566e877be98d5aa96dd237f0befd73b7ec5f3be046cdcba087913c80fc66a41b5b74cdf6b689e50c3177b6ab2d6779389f9ebdb0c5488fcfe9c70dad8db4f78bd3e3cdb9100dd29ff916ac9f66b8d5f43d849a6a890bc500072077452350d54146fe48fdf0ef7a55ce417f88210fdc4c6b2d0d3b8296189033efe516d73a2926535dba62dcba44803181b59514fcb9a2c1b925fc3c0604a40f1771354d0e5c47c10aa69e35fbf1f81ec9a332e64b5d392811725b6afb24671b0ee47768bd60631bf7292186103406dec577adc46f50e18451f464d50a365776ee619c523ed3a333540b26c96ddc4ee3f3d3b66de1ce328aeee288049b4961af699ed7a8b11290a1cf3eb89660b1060fe0b88e96cb6d87c9b476ac2a2d0c7c308b7284043a475e04591e467518ee74e0a2cc4c558ae5144c37e93231e9e28ed5729271921658485823c186955595ef58179c2d34ef751f882d32d2a42c257a32813eb2d6b0cc425838206636d8a24c45294604a83cf904695fd9f498a344af4f86138dc1da72ba10d9e14907f93732521ff243c1fd1affce3277733abeaa7e8bacc82127b342641a747a8045d7d16900215563e80472ac5d28b59286a219838de582922ee4e526b5aa3d7c8819b43f6f14ab1012915490b3766e4db13b8892ede10b91e0303c6a2d9b29662309696023722cb183223cf92cc946d6a7349269292b5ea5d538a1acd75688b7d20a9ec301990e7551513dc6edcf0c38ce84170ed947aca9381bf4f9958220bc83589669a23335c9101054330477e750289fe559ed84ea0003e0ed8be038202284c82b593d480ff0fe2eefebc1af73fb9be1c3a550e866323ce168ceb84a65550caa45e211b3ba185862d37e0c56e88eac60302fa36d45acc16b4133c1ab27434d274b184c2df114d14ee32dc4e10617e08d38080ec77f9b34c42e30973293c2340470308d18c2798a7e409c3f5e3db54bd304f483a561e151ccb70f47902900327cf33557a8297d95cc148ec31d4df7d319d0b4532c9cd7ded09e75d98ea038e5eb63eed092cfdd14b16039bd530a73d01b24ee0dcf2ee89e8fe181e1b2570fcc32a5b6e0af0c127706bb74821fc44a3dce2893d215a35c69ae3e10ae0cb7d5bfcb2d9971ff4b46c648b9e1a501398c450ecd3a402df1f70fc84747a0458cbb24437f5850b1c1d080263c71aeabd36f489869be41324f6877f07ab2a16436cfbd28643dee800d627e8512f41716ec08a042f6808d87b31d669f2694eb3b095aa990041fee808e627be4a368153f4bda3d021166f78c64b34e329c2c6d89f88cb872ab17f50fb5407adcc412f385ff9ee9d689f1c043652d300000504a0b609335c8ef8e5848e7288abcf5870c800a02808d4a0ae1f1ff3e9f54407a0a06d7f3f13686dc240a230aef849d8d74e0814fea3f067e160831f68874330cc74080afa459a6cbbd51620b9081c0709c08b9452c20bf60629eb12212c28aec9e623fd19b53238280af794177d507c04f719f99a44284cc6560985ba2f16d15128b8e9f4caf30a05c43bdde726648ff68e1f4b5c919a647baba9225a4b08f06d3026d2805522c59ac384ca07f37839978aa1e0b7fbe6891a6f9f83c5404f30df52c75303a6edf4c40ead230935e81dbb280eacb8fc85cdd2c10b52e79793f0c00dba10f109f5cc16dd012e75d9dcc2283eb580c1c9de28ce670c9466c9488fd427b4a8d2ec04bd1394e8bc365b8c8f1f88238b16032c02b7348ad976eb1ab1e4272266151015005c334fe2e5275c22379adf6db7fe4f22072ee1c5ff24a13d7bcde41526d25c148e9580775c3f41a2d7e1e003b02ea595a87f82ff8cc39f35817528931f10800271e222cffad4efcdb17d846b4cf40fc2d39cc23fe417de4713d84bc4ce213de6bcd95b3701018a6199de7980c234ef352548940dc1de4f648b2c875efd24e09fa819c766542350dc2ba434ce7e3e836276addf8036ef611a68c207453fa3f60a330d651477f52d967daf67221497b301169e3942d25d3a483303190a7557c59574ed4dd966a7f24da7d8631747c2af733b616dcd8aecd1273c1b6e6351ba39059baab28f3c4215961a06162c0bd799a20e424da8b867a4c70bab8fa4686152ac6574c939b00f21361c140892c1254f584f4e8065f7ae4b1d845ed71aeb7c5b35089286c293edb4066a8409e45aa22442ad0963c0df0dc26f1efee3a273357ebd373f1353b5bf5011a785a42f45632d9c52fb1bcc20922dfcc046c6aef131fdd053f4287c03c97d0bbb85d35dc592b14a5cd8d4bbdcca85ddfece736dfc0509e20aa64b26f3d220847cef7c57641bfea17930e6a91641f521b12af3594155c201d0911459ba9211c60ef2b2bf4f2baea8563fda690ecbb4da0b76b2c80e7228b008566929a71609381b07b6fc801228a1b16beb8efc55f35727a7c182359d44b51c348903984fd7aa85439f0e96a246b5c80007201d06fee2e936f461c7910b43c8199f9e13ec283acf90d10beb67973d413575f98d84ac57afba17160ade6f100d2c1c7d8f6b3c741f4b25cec964105de11da5b4b802965f5a894a39bfff4ad89749bf307dc982aeb31b6ffdac96b0269004de658b35c8a390d42a0f6e25f14618d68db93b88deeefafa786b6198eac8e3ec91a00d842bf7913e0fd4e4b5a1bd89611704643d537318beb8c5696081deaf2c25763e1724df38a0fc347edbba245907f9e6a393fd51685ed1f57a76f88281f15343a67988cb60a43d9740f48291e50669bdea2abd05370963c31f46aa89391cd84ea64785f83c4551be48ec94c8a3f66d241ba5805a1e2df8c12e2d4e1b16653ed1e766f94d8d8ac4fc0fad1935d0128b1db10a7ab4caf13511a0e7328c88ec5bca68588c7be3289986639c2a23e1354d9171b9ade61448c6118a4112e0304b6235336dc3cf19ff00a38acfc4b9421c812fc75f957770d4691ebbcb8f8f3701393f3d1c237af75a5f2c5a60073ec78d10fbde0566a87ccade4d09ed20c03813d47cbb16eb0612fafef769fc0b5d6f6e5ff8bde4d635f26efc8f073b9065be9ced78e9a91480e1471c10de8244c588b0b5e99baf54364cbc77b8dec9298ecccda4bb23b5853000bf1e17d78f4d1acc8ebec81a547ffc1405efaa1e29ae2640842bc36fd546bb9848c7253cacbc2f3c6d57575dc03969c07103bb85d86623dd8a05f12f1b4ac613adc7bce2f41c54826fbdebaa919e321359fa5faba563ac2031c814ed0dc5f84c614ff54f735f1cd496e86c790e81e96ccc1d2353fd34fd15436cfdff5941189de3086efa3ea9f89253c86de8b58b1fca61022ca710dd1d3435f08368d654360c87eb3985b47d89e2364cefee992f11c0d5eaa899451202f725a04bff122bf0d434247de7737f01d5cbbec44ec044b78e76e32ef09dd357827702772c0ef71ec793104599476ffbd18e2d836bdf5fa3247e8d3e086ef6626bc1c799cf5ff4c6d5cbaae8fd6c754938ad8c8c1c48d68ffd382f9e5876f6e0d8f461dd4c8c51726ea940bb23aeed938ba60f813c2e28d2c9994df90ec0f94f94992f0d4ac512a9f581bf19c933d92ae694b6bb0d6c2fb4e53608a408e6b9f53327695b09102b9c091c0c6af541cb43ae0fdbb4812ac5ab44888449891070db2cae0f4ed1245fcc7b2687545385fb0fae0f4177ee3beb94b61108256eb6f6fab0486d257ecc1ad6de3e6ede77dd67f6689ca5db3912e760d8781766f5067a4b0149c8a83e3c8485e891d9c774f891b0062d6a96dbf11bd47282ede0035de69aa925c787ff9d8b197419d79f6e1b67cc812fbbdd45ed6672e5039478042b6c38f8eb77d8016b88886bb0e7aae4b1a6441fd6704051501f4028d71f99b9b30b9427223e5dd2482d43a970426094c2562ad4a5ba5b2f1941cdc2125371070e9cfb1e4e2744028c1d0f626374a1d1420caa2fe90cb1bd0df1d2693e2e129ceb96aa6f9a089283a07dfe8c684c985807836bdbefa487fdb52bf1b5a824d59b1e055da7977479865094f0413fa897d09dfcbc37f4086c9f2a96c3a5b62ef6514c35e1ce916b27f86b2a267d6b245e10c93109d7e70773cc89180651a7acb3031ca2048e4084fb0e551040b46e7314384e028dcf85d7e8c9c65b87627834c4c22de9ebc65d61161a434a60943c4a7ac61c2e5e8ce72e28b60ed176dfe5a01be333599cedb6efb363e8e7d6a3fca401e0b83fd2dfdb46cbc6eede528adc01c90e940e620fe6efb104d247b01f892a3076d0feae90a3b747b0e7bf5be717b66e33ab63c71246a221bd7b85481fd2443f450cf4ad7d05528fa4fe79b2fdf977dcfe65febdc35059483b066a22bca4d38eb9037049fb0bda65902a71a45fdfe17d12c8424531ec9885f0f95bd96b24e1cc4263c629c2b02fdefad145688cdd8c5a6b74a61be9e4ee4cd314af2f0c785501bb6d7d408f8fbef592e9794cbfd04cebdac3e34e5d7b649bf6f898c3dd762ffb226ab0f3d80671fa0d9e1cf7cea8a31d38f616e807a1028a491d3f7d1c6d7dda37bf8e6b261cd9eeed2fc6be5b103a7e3ae913385bfda283ddb61b4ed744aeba8e03dcbe28e03da2e8db816b7f35d36f742437fb76d0c2b0c74da4d3b56a4bb6ef0b74b4744e1d4fc794145183318fe925eca306feab1d06942449dfba498f28a9f7e96faa99c611254160eff1d1dfb44575d6b9d5e3267550ad73eef4d2fa801e475defb0ffec52f7d9ad4eee3e8fe5da97d5651b4992a4cd76ba8d1c9df45647bff8c956c7512f9d743485d2479b93b676c3e9a3eb1f77240943ce659ffabacb6f2e7bc0e820745ad5cf5505751cc99174750cdd8de49fe59f32f87202a4a32d0c399795bb57fdf1c956bfc023e871247359e68d9ec732ef0536c24f6aa6dfa38f71e0cb639a098f583369262e1e0464a629cb9acec29b5e3a499a28904e65e1492f83580811f42428d5d1f19d75c6b47db1b97b43bca9a3433e004551f0a89f6f880f8fb6afe963baba364995f475b7730715c62ca4f380146d5ff675da102178d0ac63f01cc0694b0c8fd6475a63ce99cc4e92635026c72cb4f3d067350bf160f1594a82ab649050e67918ca3cf3749dd6c35090c9e3e72e092759341e3dd67aab23e9d904dd8e59882c5a776bb6bacd83c599653da82cd992f4d24b375dafe490071df40a39e9261d33c08e5a64bc3e6ba501aeceaef081edb1dd4cf5a4817d45bc2981214d54a47dfb51e6e1d7bedd019968744f2f3d3d4bf25f1afc4afef67347bef6d345fca992786d3794ecaef4db2e75db4ef59edd4ab25968f3d0f95e31c0fa7c3e9fabd318f8b0822e62a8b15cd5d4b7bf208326e2c0754e13f58d0112a0a06d41fbf9837dd9d736cfbc0d2890da4911bf1d28f336902ee2c9f6c5bab6055de66d40816c5fedeccdb7f778caee7a762db08e02f259df381f49ef695b607728209ff5771c7b106c4b822c3462f25bd0443adfce6add8ed51d760febec06d6d916c4ade5a1f3edf3fdf82de40e3b77e8d9bd1cac6d5d5b0c55ee70d3f6f9615677688104280841e27e7c723c3bac8edd8d7edb79cf0e97fe3d44b4102371438cd39119d2dced3268221140be9c24819969e26388bbbd054d24a2070bb2a52aa7366584ee38c6e9885816251d6bbab8dbd39c7b5647b62de06071548ba17a9c0df2f0b4ac937eea60df71eca1a2b290dbfcc5509fc3bf153491eeeb04fdac9300053beccb1809ff32567a4177d8bec7afd7bf027b6b6ded9985cad8d33760800307a23bd86d5841e7bab606d8d5b90837c52cb97724d8a16017220b6dd7ed5e9001fb7e4a596874755fb62de8d831164bed6c51bfb0d8dfece7b9fd35fdf41397455968f4b22cfd2ccbb22447ddbe3a5d1661e2fc86f453c47b74f4a78f2311d921e7efeec953e5719d6b47bdd38e1ad7da76f8dd4f37fdd5d97665f69383c75eee421c7ddef808f7d3da61cb3bc5f6f0dac7536b131c00818cb3eff3cf37219f9aa83705387618836387f1a5c60ee3bfbade14e1d8611c8b6172fe14e39c333e21e728bdf3ab18e30dbb1df3b32dd273ebb1051a07907d6f8cbdd48e53bd3b737bee733cc9582c82c49a491adf18f462a02e038d2590e7878d5f38c735f24f13f20ebfce0ebf34f892cce7ee1581821059082be50e18333d76dfcfec31761464de6e59f01099a75b1ea863ffa08920f095b59c5439ddc8c2f5a5848bbd08bb0b6120119d21708ee110458f71765dce243e688cb11256c249f8f7012b8965df66f7264320602c41c7c90100e0ec19895e489d672c416597f2eec2e61734111e06d7f6d5ad6e6bf189822c84733e9fb0eff9fb7cc2be582abf37c0a3cecf0279c378a889f098ee80fd3cc7866f08768f3a1ed378c41aa322d096852c84dfb3c5632717f61df158c6658f33998b0290c44c080d3544928ab8d859ecbaecd3a121d56a6b82c66fa9d11455535507455da787ae6be92676157b398e2590bf55dc821a7ce9a60afadf14847a42eaaaab5968c8e21d88d5b16f0555281dabb87d41683fbd4c4b1440a0ae8351d7f134a3a5e355f57437fe5e51ac6a5f777a5c53546579f04b812249f224d95585d2c9f6253d2d5128492f77204ad7782541684f7d29b9dd72378e1d46a15c83d7e58e841263126335236529a0fc9a5cf0703ba8187679a1d4634b8edbc1cd1a2d4d846a5eac5c0f905ebc4043640a0b69673c27c54a4c195d55b8b5369be37cefdefd7bc43f6c649aaeb27e9e2be9e769ae0f383df5b42c7ded9527909765beedc6b7edd877ebec5e1527693fc911276125bd53d3f3cc6251ac74ae38e93cdbd724493f7767fe7327c3de8d8f93f00898245d072bfd78c3e538eacc6a2212ce68b8a93271a2cd0e114ad620ad05e3ac10b3e58e3ee2b2119f71f215452dd547b9e5b1f5e8e31e473dfac88eae1b7d1cfd1c7d0c1a75c655f250cf90973ef379a269fb9eaf49d2d5dd3876204bd2045227eb19f4cb02d12d9b85729b33cbf2e894582c06803388c743f0a010427010da838402e0da7300028085847090ceba1db463936c1648e70108b31a687ff691b11a3aa740018dd0303025cfced0967c4c5098a698884c52317c4c6d98d298c6309131813175310d99aa967c4bbea5dfd2d25253d25a8bab163d5a0c5b045bacb5486b31a605590bb0165d2da0b410b6984a5a4b5a53e153f153b164022d090dfb864955493a928449c024b4a43149644960495d495092ae92a4927a984033816662ed84efc40f8ff0fd5013b5444de441511371f81a4b40c5328f1dcbbc5b59e6d9cc326f3dcb3c154d1301ad615f18d81ba14f48aef98d1031c6e713e1f3f97c3e9f0bec4b31676d4eda1be16ba7819006431a1069505c437ced31fc62588aa12906600c50310463888a412a06aa1884310cd73cbdf6187494680d6448f3adc5e02bcb1461000506533020c2406a8d4f4d1b35696ac6a8215303a6a64bcd504d559aefb5b7c0d7825f0b965ad074b6f4da4114417c8118036106e20c041a0835106b20e084f085f869a20d65cabc76106346a39437c633e39df1d0786b9907270b69185e08434403c1e3a965a2231bb983d6444668249c2c8f6884666eb226102ede362096deb532c4325765aaca4c95e951464719a732bf3223c2105fbb098826289ae0cb0463645fafdd852617802e045d907281ca05a10b562e0c5dd07281e842918cc86b77618ab7658a35b500d6c2550b5f2d0cc996c852908d186b33963636668c6cac380645ace9b5b3d0c40290856053160206a38ea48e844630e8de4867b746686318d1cc03440f143df0e58131b125b19f982f6c2d8c18e3e7d4e554e5547412d2f8d118e1d4c629cd698c1399139813d1e92ac62fc62fc6528ca6184038702ae02ba2a1ada0b6c2d80a652b8c49f9da5ae16b85155658a1582c168bc562b128e5ebb5a7f095c2580a296c1573ec3085610a5a3c3829542950a5203492322a1a89198d19957d197df188463518a58d46a98f25a0ec0d4ee6d9326f557f9a08c868cb4868343422e66882fa412d41353d41799a7a223e493db5794a7b1af344f604f6d4f5347caacad194a3a900430f52bc216f0402c6f07c0830e3097953bc1e3c1d3c279e0b5e0a04ac2120ad00c3d75e8061018805287a307bed1ea43c083d0c3d6879207ad8f250f4e0e5e1cbc39887acd7eee18ab7f5c5fb0a2168b64d1e82228c11a14b0433118a1e801e9c3cb8f090c2c30811da889026c298086021045f7b08c110a44210b6c5d7de36b5c036d846b5522d552b6cadda614b6c7fbcf6b6078fc823f28a3c2fde16afc8fb32a2e211330f1319a9a9b83542e3f06b7fedd20eca6e6a47dc49b5be5d9b5dda6ecc8e6c07b6ebda0d77551c7eaf9dc38fc312872623aa8c00a1d1d0d4f18847411e1e70c0612c0145ca3c36f36eb6556dd2444047255efbd10823aa5c6b246594230ad2f938f880ae807a000d8182406b4069406380c880c080ba80a0000981a674bed7aef3e97eba25a32fa32f232a23a1919591119ad46b1ef148ca071ff98e7e474a474b474c474d47368e8047c12315affd28859198d1d7cedacfd54f8f9fe14ff067ed27ed67cc0fd90fd84fd70f941fe1cfd4ceda6bdf59cbf972bfdc128fb863b673b663466329872fc72fc7128e2b1c3d700c710471ace148c3310607190e301c5d38a0e010e298a2b14463c9895404da44802c026b1118931294a2438a9314175252481911052dca9813a44e109e303c81c8dbe2118d784423b5cc538da8cc8cd454b1af31339c136e04ae09e72b42c15de1aa7053b81e381db8255c0a3333b1b1a2579168a4665a11d51469ea0f4d1daa55ea94da43d5a13aa92e545f1b22b1f8655a994323291ed188ca48ca08cd08ce91efe877a464b4663699359ccca6b104f46606cd28538a47cc4bad07e555d9a31c96c1b5b43164605d50ca29ed3c293c28798947e46df18a3c2fde174f8c37c6212319a919a1adadc159d31df4d10f4bd003521e107a60d881b40e807500ad035f61c1301d614e612ec252848dd0d2468b9916322cc1d7ae81a006a43420d4c0d008cd68edc877b474c474f4d31dfdba7e1af8696049034d1a006a000acbd36bd7808e0c40c9c05406881990c2e2bbd2e64ada953157c8ae805de9ba32bc52d5f57bed15f85560a9024d4668466a47bea3dfd1d2918d23a0d1da51d30cf635427bed27fc4e583aa1e904e0095027044f88ca3c9b93a7d77e828eb107a537d523f6a49cf89ab46992d6644c13b226604dba9a0c9b545df95efbfbfef74bdf14c26ec72362a05100dc844ce4d3444744bf7f7147bed76e8466b436aebd8ebf38b4d750c0157c2972f020003b3e3fec0d07007248123551083eba188d2840c423681fb9a23c01733e16a00be9fb220e85521d5074f09995f160e71c5a10886753163a6b989d6546101272d7e94eb4142b29655ee9441ee45c8e5c5614b01a92598a025214a02a3519fb8e5c501480a24070ef7884e0e92e051b2934a5b09482520abf2c9402520abe2c04676d1c001a100b8c2e50080ec20e89839f38dd206f773f9d1bd47a10148136e30835d43e02696f5efb7bca781dfc65ef0b5c9e4c49922449c740d6a417c178f2e8c9e2934132e8e3c4ce93a48fe4487c92b4ca5a6350af4113ba7713ea34d864931796b046d69b3e8326d37419ac3d3343a944477228e088d86f9761c720f88505842322675ffa2eb1a8ac5e60152133c432f2e54b8f61ed95fb9666780506308cfd4c19c69a4c7953448d0b944dce7852345990a6ab69cac709206d4a47dbb444cbd27cc1da335db0f6c82dbfb7b760eded72005a24d2c8c92135c31653c6931fc921ca090d5147865b62bc603a0bd69e89b5e1495f0126b17015bbc0a95202c68afb0e7d0c2763ce9d0b1323d0bc706521e3eebdb70a42600d717a9274107bccf2ad610dd7b069d3c57d8750ccf4640d2982ca468d1e6b5dd272aca56f0aa0ecf88d3555fced2860d3bdd7545151668615901767dc7748fb7c3e5f93bbf7dea8efbd318cdf7b6f134b50107dd010264b89bb374edb972c8e45ee90b3e3399e60ed6dd44d80d1d583de4dfe1dbdc4be1ccbc6b32fd77284c3e15f8c8495be7c3113b681a14a1f5f4cf565f15f6cf5a583f9b2f493d5b9d010992fbdc80408ac0084cd97fea1051e5f3a0a5e98fad265885ae20b62f543fb120b480d5f3a6e0206010b0a0122f5fbd2b130f3462ca92a5f7a0986e446492117bb37dabe6491043f9e9ef44dfa0850d2a888d44a031b5c2f7c70b508e3856c471160f988f37bbb0b9b84271a6b6ce85082638d68bb255ba40c5be44a9221d20fcb9a310b957de92d6c32a83be0a0d0e64036f760f3216df371ec6dbe336f7d9bcd96adac54f902820221cbc6131a5937ceb270687de921182222009a5b3a083e50a48932b02a898ed92e03491265e10a10912727ab8695dfee0194c471e6244e8a164a3f182f86e8d01ec468bcc0f1e3cb981930dae6607b3e263b7066d1007260eded20192c8bacf9a0f5d5e3f7570dbf7d033a226938c862058b0670018680e960d449220016ae33cb0cbf3d03ec991d068eaa4e2c2f7efb0558a9ad2937bcbcd69ebc294b175f1a79f3e5cf9753d4588971c38a192c4132c8b2a59f1660aff812f0db2b5024a967052f2a153ea802da12d0e5cb0f2ca016293e0a78a51061023ad214b3126604560a3857487cc855594a60ac430a45a2ac11b0221442a14a8b03130246fff254916280df7eb255e2fcf607e8cca32a4c503b904c759992814b46a288f88d555923d285c690346e5982b12f49249bca13c862579bdf3d54841e566094c8a223ab0a520b2c22d80185ca8a9a2e53c0b86589b2a4796b4fa1ad7dcfb47d59b47d750ec8c24c845dec7908f4bb28e5b7027e77fd7ebbae8becb737c049730391a2c182491107188baa142a111a70d814677c49b95644288ef832ca977eb23a17fa2115d08449f9d1c005c77085f087cf0dbc504152638d94902813d6dee6010a12818a0c302a6818409a213cdd664022caf7e49b9264b6001e11a614406b8a12ae26ae325fba02867ae85082e6cd1ba5264f949a54016353fba1f6e557862a4e9329f9b1ca0314b47585e808ef0d48b0547cf912464b6cef8d553cd1797971ad2901e6c9d2d658c2d78630ddbf244031b2250a8c2f9d8d52e64bd7b994135fba90142f5ffad096922fdda888480a0ebef4736f5e09bb254ef9fd040ad36f4f00696e610a1e5c8489318a7e3bd1da0b40190d64c88993860b88c2086f4df14409f1f7db1160840c6eefed24acbdedc108f62fd097414da4b23841e164062d2772bef4039026086a7a4c03e85011c3c22ac39285442b2b4beb85d6992fbd00a419228a4a0e352a2f59ba60e04309b74cd2daf0250b3628bc5058d991028593c12c84a5487fc92019454a99ed4b1687a404fdcbf3fbaac66f2dbfafd4fcc61afef61174a494b96548a281e5a5081a938abdc7f6de297e53057f6f30402f6133d024c19ae16e6fc16c4929324866e026c0feca6db9692d49f365152d265a36b48642b4ae94bef4010c0549a9cc1bb799de6659abe8f3f94cb86fa6ca56afb3526e02bef637dbf0e0dffc66e0eb1c7c928884bdbe5e8f4f6a9030ffc565bf7ff1da2867a987da8c21968d32f7c5662cdc9421f65063668a97fb6234ad4c9481c0ad17dbc0c119afffc55128fec54318a02842f932b6c58612f7c55214981305498f35244b46dc170b5f3b56ca4464f0c54caf5f7832aad9fec5d8f7986c7a8388c85fee80bd48cceb7f8f5e9f781135780821110c4225ca0df71d872b38a3a695020d95b020eed46b13af9798c9a1e50b0d2f2e4c6e0e1c33bcc2b85cc15283fbb2afd75e956b0be8dfa02fc70cbf2cfd64c790f9d27564845fba9741fad23d08edb5fcf8f79a51decac431393edd7dea02587ba98f1d9bdcb0f1192a03cdae3c8af5a877587b28cb7e3a42162c9f5bba101bf592548f5d4c9a374d3400db4626a1c42879013ce90038d557dfdc239190cfe72331f4f95c8ce6f37de9414a9928037507fc0b13e73709bf1d84b5b7819a882496196876cec9429de2e3d3f5953d24b732af6ccb76030aa8e943fa7692a7c777bb0185bde39b55bd6c37a0507aea69fbae5eba8847db9703d7b988374d3388a22810dde1379b7eefde9bdbbcdcbda8a7cec14eb77b7d7c5ce7a98f8fcfd2fef9fcfcb8ced39f9f9fb5d7e9d01eff8f99ee807fef2271d82394c2cf83f39ca7381c4e0373b99c6ecaedf0e3f492ee70bb8d3ddeb1d96c5fcfa6b7db6d0d87c3a13dfe9b19bbc36f1bbbddbebea83b609b2d136fb75b1ede56c8421445f52f4d53ed4b77f851922475da777f99a659d41d705a96e5268200020820b47ba83b6037216ffc798bdd15cd3451069e9f1556048ac8d41232f765bf442a92033756818344e2cc8a245c36dc121c87a1f20106aaa8851d79e29bb3568208d1c634e2499293b03221353c080384c349c2c8101dd0da2b771e8c5696d71ea6c66bdfc07220b2a387081c37464600d1422207e30ed238008112152927a4a03892e6be6c5992f8924ac5973b5fd69822d3c52a0b1630c511e31274b8cc86f61f2dc247d3912548b4381d5972dfa124ec99d7f37a441336afdd01acd67ae2610584098c8c26576b9fb5a77b00307a7525607c8facfc3b6a0d4bef22e64b285263577a90b9f9d287aebc10f992e24b8740e68d575fc4be749eb5571e41c962ae4bd50e0aae88bcb1421b51430ef7654ba211cde7f3a170b5d6d8f7bacb6beda7261231834a092251acb6a810bada5b20356eed69f5e521e15fa02029ff7a7806fca824f4a59f2cd5d596375fba972e24e4cb2b2e6ebe74b66874c2a5224b991f41920899e3640e91b20339c6743102a6c4570b5cfae9861dffcdc29b58f1e8b5db76cf9139e8977e8a5101bdf695bc1272a2fcd24f5eab86a571814a19204d4a465c084170326525899a280b85588b258399376e173baa13f644e5b59f9bb4f53c01c28a58a123ec4a08168f3852dc36a49b7102f0dacb232c90d75b441293a42157aa28d52033ca191295eabcc1a221560c83b302b31196c2a21615ed6bdf39ab205f86c51f9299fbb259977936e10ddb977e0ae5e086cac1352c49dc4280d7ae8322f845ad157f4045a5b9afee4b28266a9ea0ac50d560e6be435f96fe21970e014d44127507ec65e9fb8cf3a51765de0887376639f9617ee9ac26124124ac4d590932272d2cee6826a8b58663e9cc8b19b76cdf10a3d9936d0e026b60c7df47d8370b1ffb4b12b350fbce7fb3f0cd429cc75e84cfe7f3a1e5077bfa125e6760263a5dec39c8e37b13adcd1bd826f58129fdd8c2c04bb5e3ac3759aae6a96a54d5aa4ed5264d3a30c6ea7a02767c93cad05aebd5e6f36393269f4d254992b4dd7ec698a669de58109cb0aa8e8e8e0e8b43ad706a9aa6296ea7c90c233beabaaeeb4e6e672ba7de6eb75b8ea74915303c2a0e87c3f1f4f4a8b95c2ed7e3839bc147ede9e9e9f1f971d364868d1f55ef9acc58f221a1aaaaaab626688c5f11375bdb02fdb717ef6057b3ab6ab6b9cdf1288673fbda72fe6053559babb69d9a3fa81f326fe743e6253956cabcec3b9e596c75fb9085f04d6dd91f4777aba7375384fac166fb60b37db0d93ed86c1f6cb60f369b4ece6f6eb3f9abe336d4b5efd8bc6737e60ebefaf69be3706e730c83d6aaefec704dac6e61c8ad37dfc1be7fb720d0ada2ae92ed8ebf3aed4efb8e62afaa690b02f54dfebee150aca2369b9b904db7edb2af3b14f5d4d5ddd9beeaabaaa33dbeee52dfe82ee5397d549d8fea3c3b1fef39016d531f95c777a8a7e7ee55ff749edd3eb54dc7b57fc837d82276f27a42f5bd49b3ec0043081586102a5a9b71003a4631ada494f4fb90a444b6aace26de454eb27d73cea39ba52635d63af3f24d44897393b488b1f64de467d01a1e81d56ddbc4ca12c9e3f9478a1def46605f96270be1a1ad8e4facbcf0b3517dac2788287b6ce6eea52d03ef76d36edabbdca4937b37a5e70e76c309fbb3e72f1a774238d8a3ecf9ec0ad221528ccb4d92eb6e7998a67eec3aec23f6731c6616e9f6b13dc9b0d97958f5f4726c5ff36ccff10d71f4d8c78d94e2f42cc733937abfdaf156dffda71b56bf1863fce2b625c2ae97d1f7e8a4de95dbc4671996e521db078c3f7af60d637b92588bc56359fac6f86cf70a9c7d3c11300e60f41d1936bb2802de787e7cd53f1d9f68589e4de70c8b5f47476748c7795ceb5c73e03e400ef4816fe0e01e68ade35a3b07b4a2a3acf559551dddbd303c8ad176c38feff6dda0c2ea7ac34f8b821e1f86c7fea28ec3dbb50aaaa3aed7b5ddf0d3a2a0b6633b6aefd9bde807ae7ee0bac535dd54adfab85200ff07ef76b5c535b1bb0df181eb16c407aeb62038b8f610eaeb3684fa40ee41073aae390071e0acebf6ddd04107ac8f0f073e1cf8f8f86cd44d1fd79b031f67ddf471bdd1f6657db0d6399bf54ed7bea42649edac939ad4e71956c7b1eb38c63acea383eac0f0f8c7c74ce48e551fc7bb37848aee62d83a7bef5015f6569ddc6935ef38ea1bb72aaa43b62154add309a17e0cf8758a8e4e1d1364785d83478b483fd2aed5dd96615531b9499e3f8b8e727a8e42a4fac2b0d1b5a7339e32eced41dea9f2c1671652d7194a697aed3a26f651f7eaec3505eda9eb386a8eae4ec7b5e3d5d42b0aa783d071ede959967fbe3750619f3e1f0cbadf9f5d0705bd8b217f0bf41c387ffafe6c5d703a0ce79b6f9e90b7ad05fa753a783da1d4b51bceccdb70b62dc0bfdd05f8b763cfceea5e9ed1c9d89993b1b357591db9231d83d6747cf83712bd30820d36b3cfafedec438c25308e582d4141745fdb8f069c2757487c0d8bb8af6dc9032a325654217265aa87fbdabe8064bad63401b3f6c47d6dc1cf6763ce586d714194e3be3621092b21616cdaa05081c47d6dc32d6b9c2d8ffd5de77c5edff52caf6a53d4296a9ca25a54d7a81529cbbf6b13967f57a995987d5dd7b129e0131e494dbaacdc77fd81a0861231be668ca989b9efba8404eb08d9d4308b86fbae45d43c81616669c70c33f75d839f5f158e92394ad238c3f44dd7fe2a8a95273c68480169b8afea9209620644f8e66c8afbaabe62941226488208bddc5705d261e60dd89a2b2aacdc57950015176ccab0789296e5be2a1a2a44b880635fc430b9afaaaaead9ab9a5df957257afdab5af9576dfaac227d76d5c8e77f533855fe4dbbfe4d8bffa6c5ccc379f634154bcbded42cf5800c234d23b8b8c12273df74441b1627be90886255c47dd3a5cf6748f4588224756586fba6469250658902e3a3ea8afba6c1f40dd1050b376a822bdc37155e00ce0f2f1d5e96c45972df7408040582eafe45a550d487a2288aa251fe45cdd01b3a37747efed501eabc3a3ea4261d1d9db157c7ecb3ce195e71e215e77b2e9d6b54fe3db9fe3da7fc7b9ee779e53c6b000b2b645c31da1039e3bee72fa844921b289646086bb8efb944a34c091c535280d090e5be2770e78794549727301762dcf784424364499517323426f73d850470412287991740886bdcf7b48119c7ec314ddfd6bfa6947fcd286f9ae698d8bfa6d967f3ecf398366861bea031a9b9aff9c24594b53044660051b8afb9c49615418283acc4d9cf7d4de027b95264ca92209034ee6b067f3069438314304cbab856b864d1c205cdcb54d17dcda10aca38664a9e7f4b382f945bc80f90715a204b1f529354497c4bb3cf65598e3d09e7a7cc99c08ef35977b000961725292b314f90b82f69e6cae7432d46d71c28ee4b06bfec6f9ea16412e9b393be7f379ccfbe7d48c47f77d3937fb793dfc5ccf3da62bb2cef331aace950b29586e9898cfbee9f8dad281b4b4cbce9f2c37df7d20d967cd912e58caa489a3c65e28d9ab3311beebb856059356a84a50073c47db7b048ca92124e5439d4c870df3d548056c09ccfaf866382eea07d4dfed54d529af8d9b51e73f1fa2c090bd18aaac758940bf7d526c8a4d198aa121699b8af5e1ac038429c01ccf90c67280fad71786cc4611c01fb8be37cf69c7d485affe6a6cf63b12c9f7df6ece5be59ac040c1ac3112faa646471dffc4b1206090d4fba24c9e285e1fc9ccf6e83d1681d47c09e650081028525ec8bca95018590a935412f6445f7c54b2cb446ecd8f242d504ca7d3110c650068da92f43d8fc5c112baa6698620226c9cf2acbe092da7aa2016688fbe2211efb71888b9ae874cf5e6c96f52f26623dbefa17377df6f1c0d96b309630ee2166f279c9679d9d854cb4ddec24404188cc2b7f015fd0789c2043830d2454542c11cd44f1a8e185eb9a88835f9107d50835234ab8aa47d814928f1e5cee2bd441c789af331e63b4c4b8673f86545352bf35306e5013e5a5545309bf740d9589b2906d75548fbf198ef67de9fa17468656d240bda49bbe2489254f49fcd2735148f632fb2a3d5301cbb22c5bf36596ca400c276d8365593a1e83c2656b666899886c2acbb2fcf2f4a5ad2ccbf257fe4ab6f4420557966b6ba50fe9a226a9513623da6669bef45d9665590a7fc02c791f1fcf3bd69e8fd0e747e8e359c7daf311fa8069f13d3d9e816baf47d8e3d30acdeff19c63edf5bc39aa6cea79783ce3587b3c3c3d3ac5d8f378beb1f678783ef857fd32f5aa6fb5cc840d962cf2bceab9c6da5349282f63bfb3e399c6dadb21aa3c44d5b3930a968e15c1c87a7ceaac17124dba74061c1249ceb3be59cf32d61ecb131523c63edb6a8fb1ba58fdba7a665a7b6b3bb2679afae919c60b3dcc4b136063a28c09e1982a5956acc4090b7604524a61c66ad8e89a725dacbd72f5bcb4f656b12c1b823c882509db22e3d32d693e751d17289fba0b71296b3134b2f18df81a86a91871e6be3ad6ea49161c952231b0820061f202e3962ea4aa2cc0b40469a911a6650d561815b11e2bd271ec2c8d52928921625adc77484d6224e741901840ac387153652a4dd354895401c6e555d573d299aa1598b126ec09963953e420a1ea82ae4129aaa9311c5f4bd45d0eaa2a9b0500f435e353dfa99f5f643e755607c6f4730c90501ca264c3861a9b2cee3bf46c555a49e549c789b42fa8b419ae103c4491020565d9f16996e2a7aef31342eace0a65709c883d5949912665854fa09845714c10a932f64bb2c4574fd555dd695fb2984db09e91f095355f58b83ef55c82dd614bf06438d505e6b7634c3aaa47aad0f12bcc942026e4a4e151636765db972c6612aae7116b4f2d4a87b0bca83ef59dfac9e253ac2b4e3ef5ecf369a26db6eebdb3d2f6dc34e6370719b8f7ded96350bf7ff6de1bb8819bdd7b84daefbdf7defb05a7dfe8de7befd4c7619194df3b7befede3b7efbdf7de7b8d675d817ef531c9afbe330f01bfae25d07e4572f2abe3396b6f5d79d0255ec8b8ebea58ceda5bf7da4a54795e057a55ceabaa4a22caab256cbcea38ceda53db9175756dd33499c2e4aaaa63386b4fcd518fb1463cfdce8ee3376b6fc7cdda53492adf966759c76d4e75f5571dafad3d559df22507c9975772c65ccd3182e563c186cc3155640d4b12d55fcaf3e9964f7da77ea6cea6646a5c4ddb51e64c8dad61eded354519346e9a468c11ca488d38c1b106914141dcc2e48a07107555cba6346b2fbd823304a7adbd5dae2888d92282468596101f4e8b381962f2a6a00181f185cb8d1377555fec118df8affac6e9b7effd860c1a164da33d465114dd289aa5047c144551948812511455f1f5e88a1aa140d48150218fa68fa23ea2a8555601e653a34f1d9f597b693055dbd4b199b597f22421f9ed7b67a96871b64929528509202e03dc954041feaf87df568a1d5f5ec5d19195222b2ba90519dd5a0d44c4c6b0666b0f6d52472f2be0745561c151d5c403f4a189b3c2c80f3923a62242064d67881a9f180d4090ec389bc10ca633493480d5c0e2aaa99830f9c7e3f7760c66eded9c0fe572392c1d323e97cbe5b255d6c2029e7d5976ee2b3ebe74fcc54bd1d8367d341d2b9966d9fbc29437cdf11dd7dec43e0c9826d9649aa617a579d3344d93abe94dd3f4d3b4ca1d0009e0df202c6ece28bf9dcd52f6fbebe9b76332a124f6cdc0e058ae01100de03345a2d400040740507b034c431a1e3ed70637687d5aac0c93cf05c141684d33168fad15c82e499c52d44418558bc366cb87e6fb053511b639a91265c9e7e23cf40db5266a22dde55545abe862d75f7a4c4a13194d193274b16fe19826ca71ac967cd8f75013ed146794f996b4d9f6a169a2d1fd2a06814d4bfb97a23c8ffaf87bd4379a75a5cba3588874d1edf4fced98cbdadb59aa10a9589961c58c97d616a1bd7d3eb1b0b5670639a42933c38b12387abc71331552668855e152c443a6ca90e3d06a45d28e186c4ee448e58015676821664b0b14d582826555a1e1cd2f56eac88bbdd32c6baf648365ed9922842819b1424606f0aa0c05374b92805c3394cdd926961242422571440d8c2ca41c236214d3c6ae845c3aaab470cb5407f16b341d5fc1595d5a07f0c24514498b1e2b6baf5c1b40955c074a6e8c80b22349131b34c89315b704bc100395038691b4146e172eae3df4ccb088ca9eb162499810152cba845e188173460d87922b268a81e0282b62cf4f0e94115d5e88a11213801cb0b01969a61479cac01c17ea792c214fd1c33348475b1b8d5a83a36cc916b51137cc1f46b4b0729a9861c3838d0a216129c652d65e69664b94cd8485061027572b7c1861d102cbcbabcd0c47a2c4714d338522c6736602ec8ccb6f67cd2021eacc9f1954c125675c2480b8ef500f311e11564945d0aab46ac05263344dd37ce2a40cd26fdfdbcb8c3561cde00b2bad2c32596f5e61a1228260553951920a626515b46db1696ed4b4b07e5451826ee9427bef6de22a93417134dc683a66e1912eaad9d83946c884cdf538c96285501345734b76ea58c9da4bbf80787470f5dbcce9b7632b74e7741120627912150624cd88fb0ea1297e8179687901ec0a9517ad20930fd3ccb52f594c82918879f1e8a38eabce9da24784262a3c8761d0da2378887138f780f3218df3d1cbe31e87c3e1ca2c25efdfa01343502069a108d3fa4519d96611aab5874b51ecc2091b1ccb1219b2f6d01323de9ce262db7b6f29ac6562ea4d21bb874619242c2b80a8c93169380244061e4ea68c70114b64d97b57397bd3b7e938c8da337166ca3e3163814461ad377fe0110d971b3482105183e3cc0c64daf0b8b121d625660d88d309b774a1bdf7c6953e8c50123db216528c1182072881a48286af1e547c4009d9ec78a02c480f30373c90d4521e2a162d9f30cb88165a23be90a82ad1a284151a86b0c6302945511305c5f4f4bb4896dfdba6a4e44994372c768cb97b9be89b852f509007dcbf477196be8c63458e903929b2e6707da9e5e3f1a5e319a4d2302d2d1e3d7c9cd528b36308d4c9ab3ad3f5e60c99912423c62540e197c70c105e9699a7bdf7de7befbd63ed6da07f83cabc004099236730b2cec8e800a61bd29662f0c032b5c602eb109e7d80e8a6048c32375ca070cb32059e00c8f22f39cc281f3482615ed0f8a801487543040e2d342c25c1aae1c40913c7d530f8fb065e42400b2b485840113266c97d75e688e21c719ebc39c72f42d2cc48197322c7855bba10ead8c6da43d1deacb1c71ca54419ad30af3452ee3bf429c6417686213bfb3a4b3286060c17d79640033bd9801242532ac21635c23940d254e1b2f78ddf47ccfcde33e87166e309a814f5e4ee6d9a7bc6dadb548268a4f11a2fb06a9061d99092619ae909411e69bf3844dcf4b031640e5a82994fcc101b6aac50a431769153192a349030b1203808bb5478b56218b843931a9713d60b769b5463d472efbd5d60f160699b585a421265294aaac6902ba39a14516dc8b828510a6b81d574e40316beb42ac85aa678055b84a186004c4f4a299123b832689aa90a9e176e3c80d1f4db7192ce3471a9cd060e8753a48e7ff805d89ba663146bcf1cb9a244b1b101c5c857138ddf4a7e6f235c6a8238a020414372f746cd749f587b9b674bd052182d2e862ebc5e4c7de9d884599215d1a2b683cd5ad7761ac2a4a7d868e262c3cb165f6a62a4adb5b4e3b7efedb8c40b631c1a6316d271918584c8c16fc7245ac0371fd231dcdb6df837df99a7fb9beb326fe86f4170b8c0bae2224b987b63ffe6d92af552c0bf411ec61b0b42cf7856807f47b5110ed28b99a0825c587a40f510e2a384968f218c2f5a3fd29098018956941c2d20424a6805d1a22564c8978e47acbd729358c4dabb6d1f5cd2c254a0614326d84455358ab189c3b446ac3a5104456f50b505b7511bb0bf1f264921292449b2ea0a470db19410071dfce824cb8fd7f9d14996afd2c598092e373eb23832be2c4b153db8d6accee8c05105b768c2ac93f67cfee8a4cbd2e9a4cbd2e318a42e3f4861f2d52093648c87174f13aeb19d18227c18b1522371e2868c1656bab44bc686265d53a95a5b0c2a56fd14a17a9a1459f8c0d9c94da8a0599b5061f21cfcd8840a963507d30cdea05851264823ad45667acd66c593a531c02940485ce960ecd6dbd3c53aaa205290d0d66918615874a90a13c529c378ed82cbab4a938d176478e510131e3a3a2d9ba48a4e2b091910944c53c9cf8c8f21942035a08c68f98b0ad470a1c609c890cd1a050899d3a54c890c8dcb7d75562b9ef4ad6555e349d2c5932429c249adc70f12619e54947049b224f7ce226a39591edb8f5a56c17f5912cb09d0d25ab8818115c46a4904700d912ba984d21726a42ea3ac547928258fe4444ca9e01ab17446ccf1266ab790ca2d48d0ca52a6844f0c8e26c09249dd7b6fb224778b12bf71bf63fcdea59b11b3e3131a88882962060a1434eeab6351a6c3c2cc5ac268850836866609973551eedee4d62ccbc342cbdb7e7cc262eb5f164573b3ac41969bdce47eb234e3b566eaf1fab5bbd63ec4ea96676b1e1e73a76b21e76f3f3e59fa6d49c700b0e4c96a12c601941aab9ad4a7a943a81b582df63d3ff3949bc79efbd4ece69d7bc792a77a964e9264098274f57cd53fbd34d9ed27cf0816bb4a7ab9ebf9dd8a1883b2b922d5578a6e43bac3e842ae1b7587a2888cb515d294b33e2971b5399cac4afa7baa3c58cefcc6c2e6cddf9be569a5cefd3c3add8f5758b0fccb1343c42f0d0e112d2ba0b20c61f10387ab858f27ac2d2c77f4f1045e983c65f9b2c4898bfbb2e38acd616dc657132462b8d828fd3d7ac7ad1fbd344974fe6678b1062c4b6b4bd55672cb4a22ac989c46245189d3a3696ff8d109590d5ffee8640e9122e938f2f6d6d928bb003f1ec7f4368e63d6e4b8c7716c37f6e1347393e5e9a697e41e578ce64d74bc522c195c252ec01317465efbd63f3f62c908f2ec8f58327068a56369b2faca4b6a6d423edd499234db575796255b6aad4fdd01ebe8f8d669472399cce4c8db24a93de7acdbd1842cc3c996379f79f8397eed2207aca089b63b92befd249f74275d48136d97f4219e1829f01c755007789a3a297688e64607786299224921cc66a273b7e35bf4fa157a8dc50496a4d7c3f4c7ab2b67fe65fdc432d339e3316434c38276ba179d7efa491c3b7d4ce7a79f5e2c3acf110d585454545454545474ee739f9bdd3af63cf51063218ccfed58086316bbb3ce6e21d6f1c96e1d3b14c4bb48c9d2d88f432ba9cfc0b104b2e8ba2d14cc27c6273e35debacce67cb21b3b3e4fa15dc4e2f3dc389f7b482774eaf6894fcc6276ebb60e6fa11dc445983df7b9c78dcf8dcf8dcf8dc7211eb2277beea1223f4fac6359f63c755bb7dd1de321a1a28db10e0bed21acdb434279abc593c57b2c9e45fb3c373ef1a76300581edf9b688f1d9b188df28804c58f38f8a363200dda04d98889329106c47df1f0031d39aa38ad41a1a136220902d7b40173c6c63804588c136c53a486fbe2a28a312795181dff34910c5555c4088770680c895edc2061a124cd1697d1e7f3ad705fbcf6a363b59c62f473f4712c1b73e545188b2e385fae08e1171227a62a24bad0e08e43e3589454530f315e595c0868a2f18b1a2ac0293db8e480b9a30a1c559eb2e658d1f1e502a90db921a746d6d50ceee818692c61ffb882a207b17aeaa3d7408617322fff7ef40f999751fc58e2c48fce8e4ca38f56525ffa2e5de5c93c0ebc745d260a79f89284b7880d518b387a7db979738e3abe960525e44b8c84999ab2a608bff4297110530dd7602d4cdce290c3a466f8eccb17ab655f1ba49fd207fe66a6a62f3d036b7c99a1de1c8ca2ca432fadad2fbdbe14fbd2f318922f79ca379b9d7d99d5b26f0c52ce5ffdcb5ae9cbb289915755cf69d69e7a75e473b95cce857e3c97f3221f9f5373d9444ee7b99c9af33197cb8d6d7e1011bb3107cd0c617227e0c2f5e4b554454b57aeccbf3c63b45431ff92f06af155dfaa8af5e3d52c19af66cd7955d5ca7ad5735a912eeb6aeb753a9dce339a9ffdcb33f62fd0ff3009fecfcf0f9332ff33ccf23f9ed1acbd9f3323da1ad2bb7b36b3f69ccd99f7f1799f8cf43eaafbf8e4dcc767c58822342c7141052485eb9356e4cd15941638c4e4783e07f4b935639fcbe5d8a0f81c1badcf793e535555f553f55c66eda9648a483c4992a407e9ce2c79d287fcc002e9244992a40fd38e24c91f271d6fb5244992248986e9dbd6f398b5d7b6237bfefcfcfcfc7836f3335ebfdb7916b3f676edc89e3e3e9ec3689d71f1ee9ec1ac3d5755555555555555cf656b4f3523f53adf3acf5fd69eae1dd93397eb008e1ac228526dc05ee4724f96e4129fcb79a076850cf1e78406939bf3ec65ede5c8d61e79a6e5f726f1db3dc84326daee76128aca7ee3f688dcdefe829adf5b65b201a565e6971b12b7b2d86f2635c0b83481a97283878b1f62b26c0102a35c167e352415bf7a84b1e2be23d1006b4a44454199b082b385bf7d7c7c7c7c3c8fad3d9f76641d0beac5abaada2597cbe572b95c2e97f3cc65ede5828abc9e7cd275e4599627fd243d6f597ba4d8dadb60ffc1079ec3d6de0743b6bea7a7a7a7a7a7a7c787d818d2b2d6e3b76fdd09f6553464eb3df0c07396b5e7413bb2e7d4f07138d779e6e51ce7411be745558fc3651f0ee72ce0481c0e87d361c48cc52f079517359c8f9a080073581071d02873ca8273b1005c0d21f1a4672cba2bafaaaa9faae72b370f230942a234916af1dbd9aedfae931afbed4257534a5e454ef61c1148d2d0d0e2e243b38586952a6b0fb7e53970f0dcb5f6385c713d0f8feb78783c28f3f0f8c963e349033ce9b9b8f6482a5c45601ec83790e729e756d7eff0fc8e9cdf71cf3cd2773c28efecf8500a77c74f4d64811b605d537e5a626cdc9d23bfae2c57453935dc97fd1ddf5ddbcafe608f5a50747400254914a628607ebb90f0b70f49c9b215fced796bed6de2f8163d497e8d638eb82811d5254c4dd42bf4a40f3de9e358b422c679124a8e27dd84cc23515091329162cb8f3352c6b128454f567e83ef0d9ea1acbd0dedc89e505e6b38afb50779284af3daa6df68ad66799dd3d88dceed643d69dddafc8b87afb778c65ea079d326c81530570f79546939451da1c105ee1043a3862e5e720871df71ed0541205f589c9599d8725fecc3dd40815506cb494cd886ad1ad654fc203211ee40f33c3c9e89e7dadedbfdc98edfefec7876726eb8e224c822ca0e3427eecb7e6e87ef73b9b5cff9e9e2cd9b1c5749b0b839cf4d5cc757075a24398574d6ec491d469ef49c9582ad212ba4d0403a51220ba8f5389dc7b1799c3038e4c90c31278eb838cf587eb5f6b49b24afe33bf3f2f044f3a8ef358fba0ba13ea48b963c7aa4e68346b5dcf87814bd8151c7e8d651234b113253a6bcb4e230f9a5d832f2a40c18266f7e08833ab4c4deb821b361228b85f0c97d47223a0eb5e9ead0c60d13ddd51636afb55e03be5e237bed790949927e929e95f8d6e3709eadd61e2ec9da43d9f8fef47d7a46b2f6ce611b12a66ba2d3f530a48baadefcc0021a6b6e371d33e14e931d9aeee47138cf556b0fd78eecb902ce9b1965664021ba2f1b048c1a05bac4c182f3c2c40c36dced59a8b506c8c1a39e8f0cdd48eac27ac2916344d60e32af750d2de8418c913667c7d218577b36e25a6ae03c497a2e92a96c365b986db5d96c596c02b0f9c8f436df363fd390bdcdd9ac1a7cbc4d0dc5dbd4bcbccda686e66d6a9ebc6d0d8eb77926b2f66c59694e3ccbba2ef3383ccb7a10cbfa90665956eb200faf47ad11fe1db7ced078adfd3c63f6da5934455ebb0e4d93d72ee4f4da878a78bcce429bf33a2b2dcb6bcf43d69e2e8e6fd1ef33297efb3e23e3b79fdbf3d4dadb524556249e030e3c0b597b1c24e1fadb2dcddfdc853c649ef69b0fddae7e7fbba5ddfc83263adddbdff64d042f5caa9821d610c22385322c6faa0847b4b15102d3921233b44874b17133f326a9eac6081f50ee3b12ffe663d8efed3988d63e9205bdd6494cbcf60c441735a2fd00ee2080d315f5de8b7faf8ed9126db355076d9a15d88c314b58c284f1d2a18d35d460660dd04b6a0e0e1f40ce4c5c4912a7449635299a0d708143439314736674f580c012a9af22699818413a43cf7801f104ea37a386125b68419e2469d2cc59ea925116b49991b16548361c22a7cd1b1e5aac66f0129b72da0262443dfbd2878471e0f8b881348608e596ee34000d99a03073660e570e17b632e395ab184cc69a88d4009c416bede43bb47aba77bbedd92a0b619f00152bb11e3fb2ac9e5cb37d5932c8882f7d93b1057971e34b8a176cceb8a57b862a772bf45adfda3c14aa60473ce66dedabfbd2cba7ed3bf4a5128f1f943655a8ac719b5049b3c2e6c9871827d76c4772b7af1010ac2f7de7a7f3c76fcac569cabdb9b3cffee6d4d6fecd91bf1df2b713870ceea07dde5943c3a60d8916692cdcb86fee9704e48b92215d5b61dc2152cca6b448537a72df1c308b8a91351b334859e3beb9602e97cb99fd9b13f36f8efd37974332c0bf3bb8397b0d1727e3326ead02647c98c1e052840b0bf7dd510a1e298ba1c4cd0c68dc770748d6540a618eaa2b25eebb430217130e31628074c570df9d1abc11d290648bda5a9afbee642f61865324a63c61b9efce8ed867dff1caefce4ed967df29665ee961fedd2182f977a7ecdf9da69d9d1b6404f02f0ece3663b7198bc6a2adf13063a50a894c8fb532f7c5957380534864a185c9e1be38a41d4d5b6ea224097be1be38e067364d9c20e9f0297172618031f6d5050c192171dc17277c01149326668d8d09f7c50d1f27f6d9715e678f337b5cd967c715336f7ff917e7e55f1cd9bf38f25f1c8ea9c3bf2c1cf2368714dededbd9677f6f6a9f9df521fdd8bf6c53977f592effb2c4cfceb265ffb266ecd9676759b1199009134486d209182cdc97656305d6f52587192443dc975d4a53c22486951d5c45f765819fb5d470066ccac7d5e5be6c10041464654b56556a0c715f5628d4710686050c34f7658742ffdef2922d2fd9c66caf6d8d832a3168ce4c01a3b1c47d6f5094e23481c282c61a37ee7b5b1a01cd09373952f47802e5be37a09a3235647408295671df9b4f95105e69a283ea8dfbdec65210bdd4e4247913e6beb7e1adec76bb6df9f74614fbf716f6efade986f4d96f3ea7cffedae07c769b0f49cbbfb626b07f6d5fffda889fdd56f4ca36315b19f0dfa7a6a894ca9670a3187408aa211200127316003020100c07c562c1340d032544f914000f6eb6565e4a9788a359142739ca18858c3186100119100018a14d13e058b7ac2e3b5ab64d37a6759387557e2900f571356adf37c600967c2c5af2848a14e78e205123805c5491ec1acf1edc7684200592b96d2abe04d21b163a45504d431e8f01feafdbb490b6dc21f288aab6dbaa531446a182cc72399c564a9b6cb0527852cbfc84c69809b30aa93b2ca29c9d2c2dfbeeeba8d7e8dfb895c72fdef950741cb9a9b7dba8c5b1d4f118c8b11d4df2dc618c512797c70df8abd7a57c7c6392e9f456d29343a88d4aeb751462974ecf71c45a18fd387c83c5d8869bab38af6e5f2cb4b5e1647bf5915c7f8879f50a929b4b5788c3b6fd380ec28576eb128a6a6bb99864aaaac1ca28b73e2858b9e69030e70a66b0160631a59d50823093510d84db33661461280692bcb41fae4eba828744e6388012c3592941cd4bf456cd02bd04e4e69206586a235ba5e8325eba9e55d0e9c497d09c87a837d74dc9d1920e407bd09cdeba51f50fbfcdb57665c823e57e5d1d41372ea5a928a1fb9632699b284df3f4231e2e4685ac1003403788c766210b806b9f8b528e5fcd5da49b4bf15731fac886c220428bb6b30178d57959488f1e79b8c345ba4d4b26bdd54a8edab69a8559a77896bcf93df3bee0bcd0cda3bce41413a82ee6f561ca79521c97fd0ccee54bdb99492515104ab08e9ffd2cd6316748cf4c659bd5f7c0983f67d29ad942d86d88327a3fc2e8dfc4a683d137de3bb1d42915b23b6e076b0733956d9ec8b3240b91aa335ae8b19d19693426474804e2650e5406ed958079a6a495b3ea9fd0454999465fe2fb03571edbd428e7c3a82ea4b24ce82b1170c210c26e900a11e503dd469c2a3a1ea8158b68fc8c06ed6723dc7099e16cfbf7c5b5895a0b9e382719068db01a1afd2d573beb9d06cd1a4769a87fe0ca285d9b5c599eca9fbe98a5511b7f95210e019339dae6f7a4031cd9769463098cf278dd0a49cdb5a8d17856693140deccc7d202005af34f84d08dd6ad4ff41a2aca878d0157274691c45a54da733b2d306a6c200e35ebc30db1837238ba03fab9f4a575991b8a32e3f0482b71eb3a682802ce748095eecdc049569936dd582179ccf3070b63db1a0a45dcb6acf8cf5994913f894cc582b626540516a0642d6d0c3e518ccf0fb42ce37260b1576d87a7bfd786c58cb9728539ac6d2913a0ce9948c33b19331d65000f3d1321066f1909b22a4b1f12a556ca5574f204336ae964271b11152e12d2dea5ba7c76e57408d3f23109ce31a7896f3d383aea1583f86920937644bc7a8c6db81e2f5fba711355eb2c91480d4afff44a59126006ca7a170e56068b838772e84ce669c5d2ebd411c8d848ca13a9a693736236c509269232fd68b2d4156b4d6e15ba22b4fae7704ba13035a0b5cad223f28d396fa7c3cf6c17733aeb7999afc8093d502b1aff7eb9306ea8c80e3b745d05b6c7fde2c6f3acdadc1ac7d47b651768b06826a2ab3f63dc16f5de64548eba9ff8a2fb5eb86abab8e429273034d302bfc5bd29cdd660cb7a6277b5937823501524805f6b063841911e1f615686ebaa6c74b8bd704ff4318353bd124e178ff83186b51291931ae95ce6613b51a275a5bb72d2b1ee5331dd564282e347729dfa9ff954e0494c36fa73dbff1e2f8ccc0c8d20efb30b8d28de4c163e02d40298398b3029be12c4e37642ee99632b2156f7245c5ff3777f3e1451b1ed0ee26a1c6189271c1027642bbe9a7feb8e0fc383adb37b42b75ce7d911b61bcac66dc9a05f2f8feec296eb1250dab1874f6ae61e419167c2faab8425cf3ac9be026f6d383aa5f00969a71220a244c5f7b7dcd440f56dcadaee104771bc1bc097b718f1d8df7221a9cdf25ca12ac86ee971cc4d57f8413c8cdd75fac3c4c83683d042988b6fd80255050ce351fbf9a717b76bcab5433f1183111662881c4d6147876d85678d95f9626dac0cc18049bd2e3e94bfd6907546901292381699ee8a79fda1b017a697295efe2908bb01b19d7ac9147f35397b7d8272fb4070ee3a3fb342f066227b2942401cfe6daddb04f0676d847177f000789d1e759997336c161df9c4d57cb2b7a049365e705e8a65b19428ce30b1564ccfc41b0cea5824e2a0979272c55b5753a6b8ac263d9050c43e64e51efd236a29bc7670ae0f3370d441067b6cf5bdb6f45bc97549ff347b64baa650efa98bd0eadb5d9ec1906bf1b64eb77c6d01b132c6117f1111135802500bd639a352835853bbea17a039b0b4b2aef6249af4d590745b6c027f2fbde7f8111c2429e5594754941c651a93a31a9d9b322552f080a21111e66ff9c19c54f6b6b09ca9c910af9d4ec0d3843e017a790ad1cb6cff80e6356bb442b8867126deb2c171008db94a27be9cc131d1807e33d8b422519b9747aba2b3f22b8a3cf1cfea9abb8e37a5851aa52dda8aa1ce37850b8424516ddd12c74adc147ca191bac0f8df56e4372c7849b463f0d9c1470fcee59473421a494598587d94df7ed4c173ffaadedda28dce512f83b0cf4ff3ab58631a75370a21a05fb1567dcd7b7890faa68ab4fccbdd7fe3875fd5a37a581c7a53f0d18d3dcc94fa829e0e6cb0b68e7c8946749cdea9f7dab92011c99cc39bbfe8ca3d9f1715b0d37ab0b245f7ff11124c09549223461e55e8d55bcc4bf2cbdec751b4a08a816c4d34a14d508d86f1f75018ed7f7649ae803f824662349caa832ec5fab4c46fb6a4914e305d97a017c00dad5b49481d18f3b167867ad6dcc358334caf9a356c18194085134735729d7944d189846b9d503992f189e895d8f6e4a3be4d8cb5ad5b2b5e3571714f675acf8813ece33dbdf0239a48e8cd838b3fecf6529a5d0f0fad1a088ed36a3ebaf51b37bda91bef31b5e17f64c23fa1a392565021f48be5a1cc070fca2c0a8b95d073d688be2ca50a2d391a14eedb7aaf874edab79a08694f8ce2b794c0054852b29e77f82454ba24e1262786663509ed756314018d1109710f3ac45412bc4b4fc7ffb857c0f0b219cdf4d954c49283c95ec369c97e321d9c6f1324ecafd7981f468004293527d311bb096593a22fed4cb5ade2660246961dafdcf8b634c42118760102a96105ff992556906bd769c9508a1d03040f0cc5fcfadfe1057f5d717119f3681ee2ee1f7ab886636b027685274e6e0bf1b788cacce3156cf59f6b89b3b614ae304015d1eb1446dfd4c7bac1f41d7ecba9060fadfebeb98c1eec2cb1cf6f7870c699325d29fef582ea989f6446778b23dc964835dfd8cc702288f244088e4adc1605bb41282bcacc0d9c4b5064f334642c0b1b69e770a281452cdad655ac58f16a9c6636b5d64b4843238bda78da311f7e566f0c91084eba1d40c41948878c5a07a9aa07eb6b95691a860be0f08522ce0336e20baba9e0fb5160e9ee816bf8e429d6a3eae69fe501b86f95b8bc81e1bb8393356d068e36cd291209aa49c06ddf5f1cb48b1c14416e2a00093392de93e1732d6fa7a8c70698bbc835436041c51a4cebbc28e9d899aef095abbaac3866e9441fbd7823317a103436aa6ad81d18f739da0f9f91d188efed1a8d49f1b73828ff9f53901281d9d47df7f216ca3e98a98c0702e14a84ba47d732d7f42a0f285ba28f7707f52bdf3763956262e8dcf67896d90b843842c5e74c00306b0606400d1246a9e60371d953dd95b41ab8381b02350b30e61dd3f0282abacb79f92887b804f1a9d57588f95582453283b26c8c4b61662e487b141f78712bda62531890316b800e07cff59456a9dba205b7e59d8f0f21e858cc1bc9e3479265c6a911cfa19d7b9afb074fb71d79466c92ab78ecd5b5b057f9af3346f81d84667f9122679e2d801757743b6e417610b6d2146ac89a04a3b383a0eb186f493a22273b456bffe2a30365a04b55718df5e99a5b81eeefb9acef2c113f63d30c71f690e80c32847dd99241abe73f7e631b43716e3f5ffed0a0e729dc48ae0758f80ad96222f8c571f12fe3a7536ddf306d81b769de0fe08c494b92d49e6fa9e6e28686403d4f25c25f9294c48b13b6101b2f2aa8a424f92e8ed7539ee15202ab33d66f18ea68463def5d16dfc578d6a71bb2558e0c3dc26c1f340b82a92d5945150514e42b2258b8f2e61ff3e4805d281f79124b4d939abd26e6c574761c80c992c50cc01863be2ba724442608d7927b4af1d1c5e580a77cd5135abb2acdc60d4d480f61bf1c3e30acfe39184fb3a1d03f4b0afc4e19533087dfdcbc97381cbd1a785f6406210a22db1c9c25da95cbd019d99e279251cd0957e11f8d110b85279e4e533612bc16d3855699fafcba2b03af1b495b3e9baa2a6f2c0bae48643c6e05f385292a5be8026b165a517a18d21dfa7a4ddb22e53f14e669a90df14a90310a24ab7ec590a98aac91831fe28e869ab4aa9fc2cb38b2326a46614444c3fe697cc932df7388331872e33554446ad6f8eb5d13c847f108e4d0c2e31a4a288923506bfa3542cd6ac395240391649796810b8af8232b1c3eda5b3913b67c61c3ffcfafcc86ff336630c26f13d08f870dd8b9b4c0c297e4d6a0beff83721f85354a73b5bb9846b2f91218395b313517c99f1959665626f9afe435a735266f2b992174eeaf327219715bd492dc48b92e83ccab9280c683778de9644945db3460b737447fe5e8066c14063c8432dd47f0ed59a2f2771bd75632fc38a499269280d214ee0c6a0b38e7cd4c54a8c823fc077ed6cfb93adc6ad1371a07c3657cd0f686c5f287d3471c9f35f4f9feb2094db9e082393121bcde55b1dae63b1dd142a4e61db470f3c218774239afbcfb3ad422ce92f12e921c85f22c5d840ef3a0fba4062199ef7c52ae911974402289891777e530c9b0f67f42964bb07e7912017de73a787ece4ed713a5418a516a0e12bd236dbd63650995f46976edd473ae2e212bf02287c9ba6c74bd0b23a79209fb13213e370093304687071a99720cc3240d6f4761536b6410710ab5dba3d9b31dfadb9e66cd146cac0a0224a3dccbe9ca5cacbc46b13e5e8e4b992ddc29a7aa92fc9fb4e3657fab2a944146d3cc483b08dcecad59823626b166c78a744db1b8af3b613a40bf88588bc90c230894b7799faf7b11b0e5e61e8f86858b8e3ee347928b68f4c532e65da730d67af5944cbbdf3d3e177d5a5c1c23317fa32b5e9b25266f2d17bdd4dc2c8fe71491548888d157ef57b665fc4bbaedc374215dbe3cd0045164fd4c5b0945a5a13b160a7a6cf8d62ad29e921c68e88466d85fd40d5876d20e8e42d32c2b492a296e92d7bf72a0bb2b013e0e840a6d17017a75e8b34e4e6a25277dd2e8e5f79628a8d0ab20fc3c14696c1c92849aa990c227be0c46066238546c780e53ca33afe50d537511efeb33e7033b0c179d9687373966516b6a0f06cb74c0a45c3063cd9da3c0d687a844a56568095998ee3adb3c9e5a075f7fbfced42da93e316b6121a7a036c2c3667af6dfc1bc2f837c62bcefa3f790a6db865789bc4b62857ce82651ca1a330701dd7562e2816e4ce812b2ad6749b6c9dc094d10a9545a34bdb31410c206ba82fec990bee067ae2329714e006f2af33d27704e09fea0255827cd5b913a15da1176e89d6849562c8d3d6261b65b862289f93dfaee2073a50497e0fa8bbe32648c43065a7f4778a9580dd4ad0963b52e10217c871a5562ebab2655fd57622b98c9582da97b30c00fe22d287b7305ac895facfa885cc327fc6227bde2e820313a085055b87f2dfbd557549e935939e4658c464197a7edb36f74c9fe935473a213c884313d602e3221cc211afee86292175fbd666ac9a32316eaa1fc3ac7e734549650f52752e72e0f629304c5c3f7257cd7bb10b0b6fd9bdba4bf0694ac09a01d18a868c328859ace097cb967cf4d63723410d48d2cb3736908ed2a202a5cc0eba8e58662730f0dfefa964f1e21c7efad735435ad70cb95d2624664b48780f82fefd693e7cba6a3a5020b0e8d841530ae027c9584d3c5b0749d3081dd5f045e0caf5240119b4d01a2aacffd9ccba4a4da5bda629a4cb67092fafc124005b050e71c32d8290a5516c04d8a17842c92a72c04f3fadbc3a9f0fabf78e09d7cd91e6423623e117ee577326d7ca1caed0a2745cc51a4bff5b896f5aed646cba753219a3dcb3259780d9dadd091558d84cf56b3b3b5b9d4524d9a94c5ad282d8b6c24f52bcc6d1c7d30c25eb03492236792946b5e3cf53612bd62939682a92550bcf58c482849ccbe86bc83250a9736dc84e030eb6c323b4601b6cbd9f6da4aaf2b30944fe476b54a18f74a0ad819592c4b48a17e1966b175141b684c2ebcd7262d3afe2c7dd83522e650976e06afeb9416359c6f7ffe6195966c3de379360010a6de782d945ab6059e6328e83e282ba67a39687a804899a3ed718a6e6284acd0aaca0a7992aeb9ad11dd3828071f253b03a6b6a75a90ecbe344fee0a241dd8e6aca6a09d295e13866f9a7274702c0134d7c233eb30c480a615723f3d848ba4b48d846ad192cc0821db83ced3f0121e719cfcc91997cf855c440de0dce896bd10e04a66a46d8ff8bbf5846e68d1658130b1c91670b742153765e70cdeb01990aee542236e48ba7be30f8f37da14f786614c87e2af3860d83d026e55e04a74cf95e98e7e05690145378209c82a05731ba9d0b0360939506a7bd4b8450af04d43061df1ef7076b480685a69e166aaec0f13dee4c3242470bae1f4fa1ff5e7d870133484e84e881ef5ebfd022a3b4edb596968f3e2b6f9ae83a09272e0810be8f6e4bbdc098b1f759d5a8a68588a1e063bbdbc8698d2bc73f2861b6212bb1d82b64e885d7edef0b1e819784bb1991ddf8a7739ea0209c809de31b9069496a77cdc30c7fe26a6e866dbf4965e095facdce8ebf8a5eb2d4e029c925fb878c42779aa4e3c70920774c5f93567ce562540b0646493b55e043a2d35c63cb0e4a38d1994f905ff9a78821e93ea9eae0409fe7fee4de456f2299a6cca6204634db67c20a924f309a6d01f0c7b67c13701b3b29231840aceb76ff03174ad8da2700ceac59409ed071be65fdde4e803ec4a51a8ffa763d399b8916d1068df48888edce8782fa0729cada46905cb2d035c59ddc995b5d0c4e148202b0618b2f1fcfd69e6cf754f8953144db7f409870280f4ea9267428f8a2da10c650037c0e6d1548d07362ff9e76310391ffe5b1f7f46dc0dffe5dfbd530b3a6c34bf198e5e3ce2264052245f1623aaf0543cda8367c8acdb51e10ada6cdb9e4b23822f7e7911228bfa66319622c27555d30d2e65ca76950be09a1bc4dd47716fe312d70b30957bfb0daf081ed02b3f87e345bc7464f8adb3791c0b0a381533548974302f07ad41b865681f27a429cc73a79f1f2b1428d5c4f4d0137e4bd1a19be7581a483762df2632dbf050f169f041dc96021eed50c4db120aadacd3e35a0e848eec69dfbd72c1928a67c5e568e6b5281f20d00dbd80a5188ee935ecf1c4fa22cbe1d90a8e3aa7303d788e45fa66b1bac49614337764bd5ffb272c223109a6f5ee7713ac8cec586722d41362ccd5f62d5456f15b26f5da4731fd10e4717a69942fcf2d3b456f624fbbf37ac92eb6a4457453be45ee170574b5d9e68258ecaaeed00614eb4faa51f745732ce794662daca668e6c7078da1083bc6148781845c491d9ee4ec9bf03fd8cddeb7b693f75f79cee2ca57cbe2b25e070b8413f5919d5252aa70121b1cfa22f08b83085dd3e40d00037a3c6e4f90d230cbdf436031608cdb500853cf2e4214ea9a048d041751e9d975898fe77f6ef669e937d020ec29272f5d6ac96d12c7a024c58e0dbc21568b8c68d8ae5d6e5558f54acef8cc418923e6018606ed3def9673d8f82df1a89741287e330a7a41390761a8a8b44a4eee54a98146215163688e88d5809ad8a6a99222ce9ac3858c5822fad737cf7f3cc982a171ae38b9a9fe20712d95b46e9dcb1e971dfe1a61b2d665258c74bc2e70e2ff62bfd94ebf55ee829178944e10619e79b01175a316edd5144a5dae1700a864a86fd4f6da2b9ad069b04a80c46acc196eee365c33568c6822cf7a231bd88ca4e82123e753a3af69e9f7e4962cd7b7b962034a4eb8f65b185743d094be8c20c56f2da5d1894d6e99779378f55f71add89e60499cfe1596935ab442a01ccdbba01f006e1e0a031351c8bd151cb00e40d2cc45160687c4aa84d97dc02dc93eaa3a5e7c59b92460c67664ab0918ca972010a300543fbc6b94e70d92bf517958f3b90421a2cb963bc96aa7e374516d8f271f44d6fcabfacc63aa402ad710597d842e4ea09523fe7a7261bb053c41562f6c238d1a1a4df57fb0012d36eeb803329135d24516b39756c54852a3d9cb164c852ebdfb1446acafc00811241605d34301a64b72f3f27593eaf3869e1de126f7fd1ed82ce1deb066519d268bea22656765da7ebd9632bdafd5683a9b9dbf829a36abd86bbc58d72e8b8a841f111aa809e0cc1fc60d3a1cd8a95a6635aa7623a94b96cc18df9415fbc73d7ce86308aff3cf96e437dcbf0f230df0d85b4329c8878f90b9b0982aa534cd1bd91d08e89fe7c659c68c218cfeb8508906c1c8de1dafda269e334c9ef1777cb51aa6e9bc052e1658fc7da8bdaf4b62cf9ef7116623a3cc27c6b43966fce0e76a41052b8e16d941483da8748674d97e62880cbff68af4c41540d168001a661768cd1aca6b1b910775233f66906669dc1c9c8c0b409a7231409f383c8f3494dc989f85ff630b2ce6ee7714352e85aacaf207de5e6885559269001a678c5ac8c46623223b389b2794e2be3e6f70cf30f5de4ad973e6061c451b1fecf7286bae8db78c096f4c7f62a0bd1e6f0005839697fa1527f989429f88e3d417568e8bb9bb2f26608c03188ef7159671e1e27989d53f0cf5f104987482fc55894f4cca51cc1bc3a109a573e0b3048ab0ceb5e05da9a39a65c52ed6df8af18a7052aac59210c0b6a81e191771c284b6655fea1343d196501cd821c3a9b57963f2d510d31fa948b0c011488785cbf823393b378ed6aae69063d970649ae56be6c63bc15d5873444cc82f1f2da06e3e53cd82c2f65e39520406312ffe0951ba1603805910c925cdd9fa7372d32759cf5082af7caac753c2b18bfd8e59b84938083112d0e127cea0c67ea3acb332c690d0f2ce42e7e9b108f4d4edc5555ff135b66e5e7ec771690e710fa2063150877a5c0f280c685a055164f5035a4acc8218040aa59726c216d6162b2de401b0d270963f81667fb4e59267f4227c4ac53aeb96daeac12b73a55c39e1e1642feed468e5b3f1d6c49675b0744c35d8c0967a5b90ec356480631f7ebac74d074048767d60259c42a6874c877313e41207e1c115a6214d0d30d3e145f4d11d146d0f72b85c68004c87213729341d5caf3a1dc62b959ed3c10bac97c6858d741ec7c4bf4030d999c217899f0eb7647b855c3a95ecf01a5e23f108f5903e793eb88d391dd4360820debbff4b2729a9cd66f9a78b4759fa731cce13a5420693ae588b8afe04d8b28907997d6d88327c9b40d4b5f8e2fd2e047b4069c7b88fd5e20fca02235a95b8fc73944d2716be50ea9c6609b490701b729e06c38a2fc4c5e13468e1c3d4ceea26214cb5416d6cce2dc2505df86bd367cafecbca789560717f95666c3e7b549e318c14ff2300e33b6edaaa3b47b25a6d62b6d9b10bbcb27778022ac695b3f89f95df4b0db2a78dfa59425d337d8fdb2c7a264d6090a9e6aa89ced22676f08b2d08ceb7b21d5bc79ce40a2a2b1f649534e5301fd0b43071a47596aacdc18d3dc6a4191d47b285bb5ddf6c541c1e57332bf8843bd4ffc2c6a9cd65fe6589f354105c5bb95b4d6a128eebdfea09e9983166c370f9426c589c5b4562e0d17251ae13384b2f1881ccf52c24b888c3f6578628406c0171ae54d413400c8d500eb2e4b600bef7dc68793a883e5cae3a9a556f096d9811586f77a6d104f3ffc744139862db40a0b927f59f0a5f10efc648e4505b3d408741a582800e9ac96cda7dfc390010ae8ae5c74591dd84cad3fc7ce100d0d2ff5a0cef3df26ae93358b4ae4ce7d09469b92a5a69bdfe428d0a0bb687ee766f2220d38edbcfb8cf5111ab085f2bac401b9e1976515084e8652cab0b0e3a70af1147844b6ad93c64f2485f7b6820c8e42cc0041919e90d580eb2b3ac693040c2477cf26ef3849c37d4706ff6e4047f7de44304cfdaf62b89e9d23058e8911fb28dc4268801e7224d5f37dd98700d2ecca29ec2bbbc3ea622353d1d179a297adde585c3efe04d50d8c8401d0b0a76820a9bb721841b24fbb1f01cafb16dadf8199bc30c45780806f842d41c6606ea0ed433e0f2e6074fa406dfe06c8b1df81e4ecc0c8085800f6f017f922714d23919d865a90a8f66a546fd1322ac09a19c363a88b6b439409aacd45092c2217c114e008ef37b0402bfa8662719b589f90419e838e0ff01f5ecc064b3e9768c3328c2e353a198b5677d1cbb7eaecbbe2c463c6a3e56c0d7ab58c12ad7e050923fcd8bc389987238956a2f603cfb24231c059338555fd9f866dcf41ae46a8636d0ceb0007e85ddd012d6b775c5c6b1146b17656e15db4fbe34a6ba2a67338a2b3d9b6da79b50c516e4d5284a0a4537b7a1e9f4ee44bfba2046e0eac5676e34fdb6adafdcc827bff7d0e8e6529741a0b7fcf5bad86f6008b484dd7dd4cdf26d4d11bc4cd1d4eb67b82bc57fa66db70c0c8c80bfb6a26ae116206ab44c8219d246bb22c86d98ea58f28267201d52a4dbe25f7556ae99c2f4f5ccaf43b7a42907b576f8583f1d045cb3b1be617f13b5551fea877e94258009445bc20558cd18838e6b8d541483bf39511e7e4f28aee68981c279d0c399f46b33996d41f2e8c0c6b206b5d5071f92ee3d4aa1ff259e11d6b9c2a687fd821ddf989057fc2e6705842dd95644968df079a71227ad13912300b6100b6860c6bec71cac1a6823cffe9fa0a2a712af55239495648d18d2a602c84009b0149ad316abc2bf5c704a805b4f9a831ef9f5edd002dd913a620280f8598849ec1507683a729d0a439f2ca047e4b1867206b8a420882ea89c747deb425273017a8060584ad126ea2f3b43573e03e268c68b50a3131ffea9f348a0941bd3065e9a0428a2d1a06200f2d2c33e81c4e06b1a63eca68230f010c90192f4c7d9cbcf88d6f194101b2211f40f0b08ccf0869ded40c8a6e22e27ea3a37d71774c442dab232acf15038b1256b0cf60692d25c44bd13f899c33ce81de01dd86c595e7bacb86315d49831fc138ffc3d8e76510b87b38d68416f1604bb515344894607b3ade0caf5b974140a57e3b71b372897ca2c49cced9a3647b68df098bcf0cc1300e7b509cb06928d6375f6f35cdf52dc0788416329958b561d8d8fbfbcadccd3c5d736ded674176c202552a2be9ac78c59d2e7fd6d0ca56506bf1036f07bba5f251256199da5639ac4e5bf4c1a77113fd145364f917e3a9442370b18d9ea0c5d7f1b19edb14a1d8f8bab47d8a95a5e9ece4841810e9d003e46e241d3fd48b5a584671069446c5de347bc452b1f53d34b0156e26bfa420a4e635889af144477bc618307f97cb536c06097f93426c204e296909eb9f652d51e91c93bcf30f9c724bf3e952243968bb274a0470837d55a8ef7c960d7998c6d64763f9c915b20b8214a0ade3ef80bc8cf4a86aad246b7b2f1d8483ed39b2120b431281eaa9b6bd70de08e0b1a6bc56004cc2f6a265aa8ce36050f06c0f3b123bd351a7eda5b20c6c0de448364a08e5786e56b03a2b36795bd9d7df938631161d2edc8ab3acda5aba1a3a117376c32dd5e52fa4a8b074f1be79aae58e20895cea2e89bf703c15b7e44715484a9c3ec94db7c21af42a10d2d7b4039e663a0735d10cd9b8ef6fdbc79e8246573d8a452351f386c136417ef838f535d49fe489d66ccaa3119414d99789572af89169db7c71ac901595ba3dadaaff1c21374cf134d52904b06ead24f6fdfdd360113e1bce0c4ae55a46f099e1598c7e4a9b573819e917c71cb4d622c9073aa6652925b99941405ad26bb69fbaff6708a22ab28d08dcb21e1b1486fc7e755be43319dc67bd3f8583445e31825b74afaf3e7ee6e372285fa8747d61bb15bac66a1b04337d26f73aecbdd1d1cb58763a54f30953dfe00406f959ec76ac95830f03132cc35e18a4a889a8e15d601cac5b918074e1d42145d5a1f9e0c0f7846a4949161b27929d77c3f57d248186213e554131aec0ad196174fad0ea63cca1d24e780ca99eb53508d8d2654118c79bf8de3cd1dc72763b41b98d34193b301e0ef0850f58de4dc45eb42e04cbc8efc31609e248c47aee6abfa71371d4c753cf81653993fe4670b70bcf97db59785b06ac9e87c2ea61a757375fb31f4059d4abbec56b9779dd7da54305dad4a360ddeebb6f8ad95ab5da8f66016fd688c949b9444c9071ccea2a9e40bb7182db0722f5bc00f8798cbdc56bb39a12456d9915cd4b9704e944d4e0dfe82c90e4201654d446c0ecca900cec0637448d1dde776f8bc1f0435eee820141c5b112b4cfd877407fb2cbbd77daeb3a5df7efbfc70c9ae4ef9b60da6caf42572a96fbb5c3705357a42907846c841ed800f5828edac0f32d64ff3f6f6dfe3ab5560f264e00fc38258a08c5f650a1eddb2dea1a6b46861ec1b715642f536aa1a261dafc06d318c1be32e2a32a8b11d11219a84b311c998b028c5fe9aa5f0a195520c6d8d71b9d331dc96214b3140c6b4d0780848419c87bc817bb56bf84744b7d9c220a55585b66a78116c33a533992afca7dccca2caeaaebc3892158110223f906a6069df0d63d2d0e348bb291789621b7668445c78f05044f842d27909756d85eae87e74f38d5822f1437334f224de521114a96debcd8651754a310704eabf2088185029c531e7086a8744d8ed119ffe355604a6a4c0ccb894c61f27133d524e60d62d2cfc78e16b950e567f0274ddb7465660d5e1bf07db6d9ff1a5b228d8b14aaab0092c89a3c3f5089a69a5a8ae65a244fb8d45e02fd6433db161e6adb01b285b2c8005900668b0cf6844dfd8ed206003e60e7895c3d302da723421e8ba9cfa4536094c096c1984e70fda2bb830c9832cc3b40ab6063078012331ab9f922168779c3bda2315c18d543e61b8ef823dab30b3c7cd34ed5109e1181feeab0453f32e0c99902bff305d3830c340b4e50427550fb73d92d2349ec0f9a2b80d073f994a2d7abc4529ddc3a733f0b84060f6e1de4a7e57c28f5cada5958e8a96d2afe03ea07c498ad284af0b5867d0a10a5aa4fd57c6c53a5f22a138e3999ba3950b425514acf03e0a0e78a2b12a455747684ba9e025cc804317f3d9c3c9a3d74fcf720d6dc1a8182016838c186986ff75485b7eae6ba297bc7ddb729f828bdd2c5eab5a2ed5ebb762f3b7022c1467260779654ee91f23b186114e43a47081c12ff57e979943940e59bfc3ffba05e7b56a8bb5be5af893f1492f2eaa86dd815b03b373b5048f38f610f61ae48b1a02b094ebdeb9451a58166e451c749ea83ba55a47031ee2428f8d536515e7b8db3d6d14bed51f4e8e113c2d58b55f3e7d1952ee1e0a0d8bda7dcad13f741ee9a107237cecde77585564d62ed6232c186e7099cf12082ce625731f6577a7c803c70eadf37e4afa9e48ffe3165170eb7020a94bbfd87063407fc31b520b72ae154846ca9a19b43e2ca8fd37e41c6cbb59c386a4f0895cce5ab8c487a6dac220a49a80de153db061614813d5747aa152f646e3ff3621eec385c941265ef7c3cbb3eb2c5519b9685bb12577e4421d6c4c460b463f794d725177b8958e60096ad33fc378fbb64c98d1aef639b9f90a6d5fce70959adb15f23c8daffbed7140534aff784f4e68cfe92914ab2fefe40a37fde503846893ffae4eb80c5a6a03096478961ba341974f83175e4a5f6724351bfb9c3fd2df59c2c7a8e192a20080f2df14cf88a7aba66ed344d6bb38fbec85c38104f6dd9bda48ba67b26f2f1a018ca97612e6a87bd6b919f29e4fb7344998045aef2047ba169b65f9033a7479d9800c58cc1a0061a617e9f4c42316f6c6399d81ad18183c09996a0155d0eb6a5e4546f53d41a7e12c51777439870d442396edd0208a0695cf3d0429d048cdad0eb3ae80aa0e3e56ec5ced00ae7445a4eb822ad1919324346f188e932a51bc9a933214b5138a570028d3ef221ce2c4ca05d3da2cabf2d83b9f06bd11a45beaea6ef158d4a3705409d22fc9b22c2c4e5000710b4ab15529b4c99f06520e8e9ac916c0a9b262d0d2c8d5f18139604a015fea214be20d8591412d343c63478a0969d859d2eed89b14733a1106700a3b14c0d7194f0e4c8958a72400f7ca3074048dc2dabd4e3004a4740456ecc684bcd884c5404338078304fce2f0d54307c1d178ef4ec46a2defa45be09df82fdecbaa6ec4b473eddad6ae30806e2398b4bb346cfd7445e6bc5a8437c3ccd7a331c01232c0716700fd060de01eca2dcc4b08b4b897b42b0e0cd977da3ec9b17d4daf2ec09d329220f03e78761c090e054ccbe8a3527167ce07eae8b2ddcfa944feb3a50aa8c91740228487e1307fa93f410c78e771cd0b4104d7a0ed907b2c3ec27384ebeb84ac84d291881f3d6610a127c3d2a60db2280631cafc7dc66133d904238033326066afe653b04f72467fd42d564198734e95d658a547cc700429b2af2ece3b2aea20b6cc7e184b9c43b9bc3047c39f53d0dd5ded8e2031a6f8480692c2c8f9709f5593863d3328cbb061c29298e348f42a2f4f9abe4ad398fe83b75afcaea8b8bb40837c5ee3d55cf4fd9a66f1aa94f99b81220cf91d48f4097459fab1749bd157099b700d1da625c90f20f76547ee88095a03d9a2e5e1099ec9dc62b14bc79d00867bb6d52c06f4e20bb7ae00590086a9c8cfd28f284d43910340b805039f3766eb140400341a79d54a0dd44a26e2c6686c54315d525544a94921c30584f90b4398ed9b75cee337d421d255afe3fe21aed90f0493c59c990e0b12d5916a347db1dc4ab7a513980270a7247787c8457f286a27389b5fffd1c4d46a4c168a8745ff9028de277a29975ebf695ad00d113b856fba12c3eba8a1e0ea6ebd9dedeb0e92236bf4dffdccf3f13b4683c03ef2351d0cc84ce0bb7a2ba448675956ee0c7d4b3706ce2776311393ab751c6894d1170a88828426592adec2245fa87480860458b97445ae2d6219406abdc93585687cc20e0974d4e8fd758b1357165cd666ee6f6cb6e9c8663b3734d4c51315416f34ab675c13d03f841b8c3cc0f55705883a371b13cb9e5e0b1a8f485f3e82ec81462058cb1fc5a3e3d472a9e90d3af8f5374edaa84c989f397c89547cbbcc6324b982e25714a2cb5e731aaaea80b2ff1cc034f425099831e960ce6ddbdf999195a7bf65d68d1fadae1d633ee077e9916ad023c2ddfa8d33a939f8e39203f2759b46145f94591f1abe79c6315ab46255cb9c168301e166f82e9a32d8f1892ce8e8821765eab1ae93d9f13f3f29098f01897a242abde295b605bce4e54f629d8fc2d1aabd7d0518ff27764c24285d1cb778b35fd913e8406ada62df3755b06d261394da951384824ae62a4a848a3428f4fd89644144e1fc48df3bc57e4c5f84e06457ecf281b4ef99129105b4872d824916c7e5d8aac46c9b798134997de93cfc07ebade243c8288a893e79bf85081c41a73f1e1275e23c58fe8e6314fe7d0fdbf1e8500f0b4947f494000b626e4ebbe88d21feb175164998ac7173dedb585dcad9ee17d9a3eccd1232062b685f313dd25a64644d023d9700fda9c262f9128b41dc238584e20efb25ac668afc6efa820808c7d01dd9e954024ef9f0e0ddc99b70b12ee1e11f8f6715670af12535e850a5d31ab30d743bd63a1177abdb3325e96c768e5c1b997655907659bc30da5804eb3212ce4eaf9fe92d094714da0e8f082e66351bbad5d3cf151ef78585c1df22b88f43306b7b3866cac302d1e12e539921bbc6657e0cc72aec9834b0e2f25be701a25290011109644d3aa27d709198920312a148133355aa94f168b2da62e29d20dbe5a61c240200ad38aac9ca6061f8569c9f9981c818cfd78e0148e50ad26a548a89064302c6456ecc38a9a389629d3353234ec9ba053816d04830353814a2ff2ba201f2bf83e047cfd9080c882debcc45319135af7411db1009838e42c32726b2fda4f43e4294025e2a0ab08d1eea47422cdc1bb661975427f2f88605d733a651c522441f252ed98bc86c85a2328cdaa57728b297a352d167384981eccd8714dd7560d99755537cbd0da7cebe9c87489549e508963767ec6a916b134247b781701d7589e7fef40b46c7088db2296fcdaac8f512409625d15aa647b43ca901f4674e2ff00bb7a7a3b4f8f472479e6125c92d466d2cecb82fb4c01e3467b9da4d2b37f1a0b3c706714af7dd1b728e852d4dd87560153bb233bd68d1ab5cf8491fc55778f053fae174c24a0108542b67145dd04c593705ee9bb08c80e4f5cccbcc96529f0678607a070f338573031240eb11909479a64cf2c650e4c785c1a9ba7381cea43bad24ae50b7a01f6796a4f5c1bf43e4709b2cdfe11f998510dc633cfa27e7c1ea190337988919670df2938853b5763aaf6bc4ee0dfa7cc3a587633106355775f0067ab0de53a5448342510fc3d5395868d254d7594c2a81862d35f608b3f737bb8690ea37e31812358a6b0913d9d8334570312d3d2ea7b50623a006fce1aca2f12165b60de51fa9d8c872c3bebd0363a1e38cf018c4ae50daa061b5fc13923f108a337b77404cccaa8aa1e6d6ea409c6797391c776d0061b22fac1d901bf95934bf4207d9c3f0359ad6af33568acc6a3d635ef9a50f7ab124c0a2d1388af54ab6f8500469935d2508dce7c30c6c57394590bb6e36643e4e6d67e48fd5184b41788ad1a29d9c04bc093aa060a745f820019dc4154984f6945f93bbf500308d060ef3ae102e814c37308d26f10983295f38dd639ace3ca37ee924e2c2387938fb29bbe040ac734e30caf53097b46dc894e9d59910cfa1cf442e956ba1fdaabc0bfbacc5afe7ea67a0db5cf78e26c6b9a88562663a10440cb68d07b4e3fe1883b889565966a13c96e45fd5400ec407336c977f7f53a4cf74eb1d4987cec92d28ddc28e9a196640af4d8d8d585f79dcec7d05e2c9013fbdb3ffc6bf380e4fbac74fe5ceb11d7746348fcf3f085c08426a99bf0f0681bb47725b8c96294a3c017e2b3e06ae27d4f3cdd18c3e5814ce71ac2b21af000b45ca616aec4ad719b90fdf8a7e0834efe9f0f79bd17d8e80f9670043cb896ef07b34d6241e2be12f3bcfc1e648ee44e30cd1b9fbe4164a57b6a1ecc712e74ef12141c785d8f0c132006b77be1d64df52da35df8368c08368d275296e73229bb08bce24c699a381966f8bdf70c378f254df7dfcd0b42682f868f164b0688b8a7d8b7cb485bf02b4067024d15bbcc985e4822e4091a5346ca7aafa91ddac4479e1ec4059c71532025f4e5d6be8af1e4e41bbe9405013dd9178ca6869a3e0787c706830fd541416c8c6bc8725c93472ab7806d0e9b9cbb17a8c290043ddd35fb1128dcfc067d8af67ee0307484a456330a12bc3bd85760e81479282f3c14bc38c6cc61048f7bc1b9a097574243358640fa381619367e3c142323a74872ee5c1c0d777c7f758b59275997f1d4ff0bf007d3c1c1a1829a7d219e33876c52a9af966e8ac7a47e64a095ed2a4f1ec8c948cf046201a96bcf1f5b24a5465f4804d9485b11e15102979e67b358d7f52f31e665e110611b14778de21c739bbd57333e17684553d88000ee1cb63a6ca1f4ff6ba71321e86efc936ecc8575a2fe86e2a6991c35b7ac8733623584ed850a9ed439d963288aee03b845a5b888770cec2c0e1dab03660393f6d4bc4508659ada9351c519158600f1481b1577575dc73871b4471613d86a67fd991f05ab9dac4e9ed0ca28de2f65c44cb3dae4df7f3d3c83b9ca5d5660c412e08687ea5e59f0f6e8c9f8bca48dff612465a2280f8e0b8712004f64c0c2ce37b092a637b88445229869ebdde0ec7d3003899e3415524b90e96d050b63f690a55b8f48b0fe852a7455801951a1de2c606914f8332118cc4fd31471b36f6e51dd66a57873da2faa574894fba6f162bf0cd4e0a772a7ee80957e3cc160fd1ef2753f58f409404b5521e683a5ebe8d1c7df608099c834d990bb2354029d652a15f9f97ecd709abc442150c36ec3c332e1e47457cf7c65738d4841326bda35974c6d53375ea46f6c18f3e60fc38c81aee3b859bacc1a880b0252b7542f26921cd5448465ef27a8000706c3c0f41f35186c6416ca22dcb5305ab2894f99c8c1f52097491a7378edda02559725863f4b26cc9c8235a491d3b431de398c43768eae2c9183bcfd79e8a9f8fcd781f6840ba2874b0efd000992e8e8b6e8bfc9e62ca98af07940ede2732cc0cc9ac5763ecda19268ec5ded06dc4f83ffd30fc050b9b462f802f5f3a4686f608f8be4e69b5e3d7aab235c2ef390dea1502f780aae573c47ddf13658febba5c4cc61f576f3d95fe70a5228de7e31d416e7f38d594d7839e656c941c014dee6a34ab0b523fb78454bf333ece45ae9014529f8dad254b0908457267ceb3b88c6b4640eeec8c583d6f0665b892a42bc70069dc386bce2d303c81aebb50f0a6304ab5f4809170fd39a16591f189aca31ea5962b4500f8c631ed8c91e19b8a0e83444ad695d80e70200eec071274c0420c46ab1ea80aa6048e8081f2fb72d59881c81da4581944501c400f7802ecf9e4ef8871fa3a39f9def4d9d0a811be514deb0b8fa5127ad83f79a474db54d8f8cf67485547fe20a08dbe9b8c0395e84d48eb7b2ea888e21a15af4e782769fbdc8b001d3ac99394f6f75c06d0d788bc09b422bad73569321d8796e899a2ed712f136875892f1adaa2bb2eea94acc7a142f642a5b54d10b7f60f190735d18346ebf7e28587415b4b7842d3868998b6ee479f4b6d4e1f3c985cff0a2efd923946f36674c8fdbe7d2f36dee96a437c42de15a0ac48016643812ca82ebac2bf4a918584eedc6b6d2b0e0f82db5bdc64637c60b5e9334714dff1f0d8e1667e862565eb8dc62a4a8d3e83a69ade2b6de30489546d20fb137442c7ad1365226b892aa84d0ef4702676e4d67b9183bfccfdde0c2089a7168d889f3f8d35543b04c604b0763ea2a26ac3603e1003343c55abc14ccd2a4a552843061c654b891ae014ed4519ac606efc6a24b773afc0ec05bac4f26567bf0d09e7b318aa06d945c848fcd159c92e6ce346b1b8b58cb10510873dbd2f8bb1c6d1b788bf0d54bfb4c148ec1ee026a84f82a281be1ce4e49a464cc5754aa75b1a245ce5c4f375b3ebe96c49ac1d2fbb35196adbb4a85a5a0c45abe2dc8322f3b2ab4c33d10952ddf1d1b6856d26508c62f239ac8f4117788157c64e117f956f630485e9592ba786a86bcd932f206d390b5ba2fd287b7c1b08ef876554a8d91a75bf4cfe251506b8a9a7567735b9f01ba903aadf424d5e0489cb5642ba52cc1c34e418d2ecb53610cf1a2068eaa5fdad5efb4293bd0152c258ec7b83f4bdaaf2f86037d598563be9b710bc3389911ae628166f5df04e43ed8326d236dbffc6d3b2fdcf256bb789d305479e6c165c14233dfb1914ac8b2124fe0f86bb627016afd87115a70125a7735cf50344fd8330699c5c31a52bdfcd0f521026f59cb7c5f85e889eedb7788c5337a9ab075e9324304cfab8d7b8d0d4c15e7035fe1378c69d3789d3641bdda4c4e0d05ef5f949101b6de12e068d12fc567e5af98fc95af452bf4ebe164f96a0dd1f07bafb2a56f4c6a186a4ebcfb0e37f703fca5a1c3e6676eee9c6e802a7852779701db37021dae3615b524d1b915f6c5617127fc5cc30970207ed145978aff565d7d5a2b90000cdefa8f9710f0b986160029fb46cb58701907af8ed126d3ff3d68897946dca61d8a419ee276eaf2e324993706677c72a0f1f8391f10e47e13b99c312491818641c042870645c74d62bd0dafb2005de035dc8d232556063cd438281c2cf0a743f1bdfad27af9108a80b3a97865b24015559f2ec0c32ec4ea494838c2196585c81f837785d8910ea12414c243ec5bcbb81e48f79a98572e9028200b2dbc8b2a83ad7a8c5544524fa7759ce87d073d4a6e2c9cc7d5c1d85e7641f4dca9eaafd5a8c1f1eebe3ba1226db01416bdfb4346d82a4455a0de642236352fcd5585ddd887c507217fafbf4ae896878cc2b8aedf523bcbe92f991a126d25191d79cbe54177251a121e0452d34c209b54d693d4a5224ec1f2e29ebd01badd1ad0e410ebb1f722d7948ca2d0008c07148e7e163f75cdbc611b236d93dd7f4aa30853e269f079865f410868ae0ab6b943ceee4ad043222f06a46055507adf098376d178ddc8504be65e5f2a04d5d104c4a4d0e844b36fcbe38057ec992a393e591054ca048db9a8f3b28f0c2c57e48a10b0cc5116298873df9597198e9435dac00a4e2fefb3041be4de6e083222a036f258b65f0ded28dbbd945feaf70629e2f54338d2792073433972cb129bac7b8403562853a34ce26896807dce55098cb54ad34079761279533ba0a6792d72b72ad36308372b37b7f8f38d59ccd347cd1e7b0f4f506b9869df8a3da59222c0a22c30f333f92bfde7c9c51d11bc456e93d8822b316535612a1a4b1b946e3663fdb756a949fffb32a6bc963127d60ea10407b60c767ff53d16fc9440ed617d86d485c6758182845c6339a8d335cbcba690fd2076cf5253f21b44233db1435dac04918c005fe01399773a039612ac92ff6e6d34b385ddbd1d4a11616e02d2629a41d9dfc30ada6ee33b5f24304432eeb1068fd078773c9a25366e11ae322b73c315ff738fdfa3f30f43c3d5b8e7a429d150a4e122a6ab41e7d02c0a01150b3594e0661bc525fbabf524aa46682b34509132ceb4e443f42e54e48b7560acb5eedb9bc8a0de121409e6d5576571619a37634bf4d2b57f9754fe20bd001a312bec456271f71e6845267b24491686e513e135ebc5811a00bc993868c5526def38e06e4cab9efffc25e3cfafedee6f28c9144ae0c42b9af0c77388e594531a1d818f5c686e68879932e7d3b9432dc23bd81752a46018419ac339501b80b9e8108c0f9dede6d446a579dfc31287b724fbeab5846c91aba2645614c29a03fc356d4a1083563228be6e01e714ab90927691939578ca850df1a87fcefaf3a4cb810de1183feb7e759f0e5d7816d421caa1e0761dc33a1ffc3dc06830188aa7103b844ff9aad146a15dd5148872016fdd7cf70e0e928403e64248a7dbfd4a2e3ea36dd9d5ae050c3ffdc74105574a708ac91295655e91890a522763d2c3cd010405429d7390164ba39e683a36f8b0096347bff7d37c612fbaf768d00a20a7ce6b1c5edd3319438c57fc0dedfd663093cbe2192fcfa576744ed94f22999ae69aba6aed08fb04299bdc97a4c0b882a343e77efcf9f2d5440a7e1327f8560180651557451ef85da9a0d8ad724a3e73e73dae3a0f823f151a4ba473bc77841b6f7c74161762d692188c077dc2d5002edfda700278dbd3c6ab818c48df6ef7f28265214a1ff71943078c81689167ef1db28e688ba76f9b3d81e278a72ec85e3a275eba9fa4ace3337d1a6bad4fe6ddcd61b4c87ec3f4ea14e6108185d52b1e19a144c2747b9f478ff138799a36ad6c54276c395e5c851d5b08051634708ff2b9aa4c95b603c87fbfb2fe9f1bff2842e159a8ecdb8d4bd619382659939d5f9a25985175667f04f30e02cb26dcdff6aa3bc6a7b7fe2c3219b51f612bae0d2dcbe1461d8d64304aae45c257943d8514769e9b564295f79bc2e0d55f9ed97c728eac2d87a341a805135c861e9fed26fb28ade1b74ff0102409efff0652ecb7aac98f3528bf26ad0a504a39a4cf8bb6f104f22b42ea51e75858574575f4f7a851197e0435e0ae470c337a44ea7680bb1ad4d1adc62d5508bb4e6d495d0e5402d8c670668ad296bd66842591c3b2111daf7440c79bd52f177375eedd2719f0743cb8a43b4ac2870b28c8d6d202c69c0e0e95cdc97b74855294377da4a40201832eac25cf55c956cc5fdb3e9f47db6a2b5009e3a765c9d48749059cded992f195c0e2cbd29482ccdaf28cbd60a803c81ee6e033e1f820b70eaae768db7014821b7de48e7a8c68c5ed31d4a1b54045bcbf4ddb380a87b7a3a348e7a39743d9d14528e99c69e579a2e8b840dfd545b2879213ddde6b99a65c3a2f9acad3d1a9ff20cb9506b65e8369778243860524b272354036c0782916f36a6a0688433fa9d4a3ef865210caca7083f735bd922b5ac7b936c67dcf440f1211407ad8acbb2a7f5e6ae718adbc5eaf8461cca69a8a180e816989d06e18679b0075b4c72c1d5f03a5afd0886caa71246e44163651944767dc32dc33aa2a336f63521b72de2209bda136a63e6feaf41b604db570200801bd3d54b5eee518f8d5b5844d8172d13423f90cfb3cdbe6b994499491e24a66d639bb1dbb8ebc2cd10773e709f4046a666369b8db727321dfd40160f4d8e205513d5e4ad5ad77fbe012cbeee28ef0b2dacc88ce1746b7d301f4b263b19c7491d7bfe0561f164d1f2bbfa5b245d0cd44f1cbfa0ee887c3af60929c2d127c41a6ef95a4ba6c65c1ebbdd6cfdfbeda0d696b9c2c62a5257af0332b720037534cb3cbc4b905a0e51ae2235eab4f291908f3e634af54168dbb419b1dab4e69f2afb21f9a7439a4abad39aaf4932955425020d6b453fcc1f571f7a8a0372a46674e2a170f677e8ee265a4b9d92e355215b2747f8292a9a5b3571dd7f0a813317966fcc07c94d92db5c0ac1e8fce19621e8b8612a6a954b02396d29f939b97af576a5cef492b049613e77a75a321514ac6165f371860dbc9df07db4710099458620be6e03e7c59ceb9af15ce7a10f275ea1cec8f1f2512cf2a3c1e1d0b4c207cd2a67cad056347083b7142a3501b458e7c734cb0f8b4386e9a898d61481ba19b8ec48d275f3fba5d36c5f74e4c2383905e68b7e8ba939d9bbfebc0dcfa25380044241b631b75ab93462d1b2530eb638ece89c98401c2d85b9cb731f57a33b6a7a1a855e8e327089f1d9217efa7d93e65f578ec314b84a1b5224446186ea8fd6f3f54e0ea861529e9a6a34f57d45e2b12f41f4fda027297e2266453f68bbac698578f625ab4972c16cd5a64c6628f1c04492529d06356133cec2cec294ea280d1ab1d915cd5076595c657326d837208c80005c8283043f4bbe1b044ffdd2b667530e8a8680d02f4283222897083fade6a0c3b482c1d5034d6914109cb5a38cee4fe667035bae8183c3f03e8193de6c680b4bd69b192b3a4cf2ce7adb795b844614615b3de8fe183ea5a315c488214c1a26caec0933eac5df88215d91fa8c80ad12038c4b840c31c0aa8879b99f61f666888e3bae8a44f98b0980c372a6dd5de7a0801877beb88dfcdaa217d08b55bded7a0d07cc1af2b5cfd2deea1adc6d6601292ae621fb459c16c6a973b8dbca95a7ba5f1b09954e46ba6922031ca5c23f54dd5cdadbf1ba5fcb83959198f98bd6d4308b4ad60206a5bded95dfc2c2254bba8db5ca56364b9f53db5ed7aad63634e8bb7e96757a66edae90a4c4206641fcaba53b2e1342e86a216028198ee7cb0f8a6dba76aad0778ae01ca311810ecd4c4637da69df5ba9d88d23208bca5fe0a488be829c70ef0dca72a18dd4f2b1ec9c427029f54e637ccb96f2030e08cc73273417358f7c18a7a2213c38ba88f37718a75311fd08246ef9a9d2d1ca264386b95651fe2b320fd56a1d50ca72a46926ec50361388b8f554db091c07ddc1b3fd11fccd1b30740b53541284acdb8c6b35855449f7ebbeea82e6bfa5082dde7e28f801c2846927199fe811fc1b7538bf196f5e0a2a9a6141c77c3df27b7ea0ca4f9915b51f83aeda6dd53fbda98440130ff9885da26eae3dd5a6486bb7c4494e7fcdd80021132b1754020d63264b9306da6fea4f8f054719d1fd9de794af72e8827a66a2d986e814a9166cbddc979dc11d19d289b39df19e416ca009543b289ea907a072e784cc144195721392df94978e66ee98ec9a622de1c89ac789c9d1b22a595baafcc39d1fdf8ae236f0168c3a03c0aec518e7946fc844c14ae9b59cc702b7f0ae43b5cfb15c938a1f9d07b56f39762f52834a2d17b2443bec079388f88b2822a240059e1b2660dac32c038257efff4160c95bd1c9894f81f9d2f18e24e53e2003eb035db8212980de51188aaa624fd3b3027ed29514e11aa6b0d458e4a28937ad8d87265b8e42c90d2ba89b7f264f670aae7c122af451ab8719fcb427eaf18165869df02e3366671465ce9f62e89b8b284c6287cae671806a2603a1e9dc0d47058326f10feba79554ddd431f2bc59adbf59a9d44b741412eb46804592088b9011fbbf1e0b21a74f644ef18f63069d55989e0a59d54e282ab5873d0a2928f94372051aae21f2a2e09b8bf7586c5f7343bbe4cc66fe3e93a8a7e585309f94606ec8a4fea99138858f2aa026091c119811544ea1b8478edc31dd05f55d85a2d54a00f24edc07063c357538f75f6d0e51678a79efa8bba1a2d3fb0bae2a31e254c693291bc43d83f9968c45a825ea79164d37d2e2210753c6444310a5a3aca8479da8ba5a270e1399315aa74a7c0bef35158b438ac504267e744d9fa2b2d0640f2d60b5087d5a85d86addb3e8e052266c38383151e08b01dc38a9ac16a35303a513813413b2cc48a48e9976b4c04bcdc3f7bd2e51e123b3b2a804ef5e9544d38dd608d14a6bc84697e5b5418fadb96714bb5c81fd89076afda50653aec5f9d1594c19162635bef5aac9ffd48bfcd0797629f3c35333bef1eb364823c68f8e41e7be5dc2448533d31f79b0be035bde8c62928ea2509c8c9345ac73f2e4b013917945a5bfa6548bdb92547fbe146b091129a40b5ed01fb5da574d4bd8bf1d924f1a628e9602503a6a515ee46fe7a8fdada580b5c80a01c179f1d9d852447f727f2ea67380505201d734d398b48c6d850c1448146dd85e58275e8288f1e2aa9368e8c518b96883fa15cbe84487a20a876d7363418b16cb1410be5a3b22a74c707a51ea232df922779593277ab5ac5ef5b133a2a07de7e4fff55ddf0d776b252ee059803b358083c04b2109879c5c80e0418b6881af6a9895288a4c89c3fcfeb1c047931ef734e8ef88347dac5c6c481c63a47402e438bdd5205bb369eda724a385e5ff1490b457758a1e13cb7ea5767cd059ae25e5ad16859f990f16a158729d087c699cc824d4e8a77dd4b9dabcc7376bd07e69f772fe53e9bcaef809261b450a028c21d5287d9c49ef15adb0b32ae5084201eecfb792c1b28a3e629e213f5f3d8b7887046fb50ba9d8c8df8d6ce5162e53c7dafa787fccb65b8eb13a85f7b89447d778d3494d823d47da5c382d3ee6d68f20596412f39a87ce2d0c63d36a5b78ce8441d6d1a8bcd2fca6cda4a2f96f31a15b3f5583ca107cabc24395bcacaa204156b606e27899ec06ae41c5efe4a96a7d0c8b85041f32f05d89dbdc46ede60d5b63e61162570ef47107c4f50766b3c998e0f726d76dd981fbfae82e73ab351da8ceb9f0af8d58ba5a0464d713ada2d5554b0c8836144b7304aee8617399bdbffcd8966cabc0311f1cc4c673cf3aa99a4e50ae0ea81e07944fdde3704f1ed8402c1d9d8383596ec40a54b65ab7eac3ea6d79f221b73fa9984d2a365e30b03f1700df992f7f49a45db758eddb0b662218fea29e719c6ddcf40f448340a1294461e5069954db14a22fc37021d8313524e6cfdf135a9867222177bdf425bc13c3e2b235cb6eb47f75a61ad3c01ee4c460b5c3055b4d69b7068882b5de74f047fddb2ed7823aa7ef1e81e743da8fa63893dcaf424306ba73c58c51d0105badc78a7ba258fc8e38b5ec4913fda7ad475aad65d5f076f29f5558594c25176364123c95dd2b076895d7c544d442738b9360ec0e62976b43977eb7035ae622fb2f7c51898e6fc45ecf90072d325d8ee04c6ad753308e40dcda0ee0c383c434a1aa799d260c8a198f4e77c06621b26d324a1d94a66a695ef7c5d9f3896c2e67b9946e34b93dec9fc5d94fe81452d9752da4b825a03819a932f528b9b573af003a709307d7a821dad5bb300259821609dd624d937c46f5b208334b70162a6cdc7dafbed66469c554082d1e599ac883def0c0d9146640c021fc15d520d920238fec7dfca62eec61a0686fb6d25645db22fe28f9ec3bfa344cd4bcfc19790a34c59f5fad2eb293bc6529a4381a6db1c611cf3dbdb6269fc0b212e6ef6b98f71c7c87316a77c0e5c982a679d57a1abbabf3c68c6db07c3711ecf86c6be2dfbd3a3932265a95847e368b6d68b2f25306e87eb98290335f09894d941281d76dbb787645a16d9b819ead4af2a321f756e3890b9aabf15269001934d5f13e4c46e622641cac5951bfade26cf3c1919e46cd13bbf4f286c54b8cd8760cfe09f8641f89105616e6610ad0c76313179552583b4c4ec945852fb61b1e006eefd61c173e7e79f4beff35e94f5a0f52681b165111b98844daa71ef4e1895c5d630935e0cd29d06d13462897c043411f1ee5f84bd995436c00b71e14b7b0e4d7891624e598770f6d081872d74f06ada3e913ab848b2c15a418fd1de1cf11e70c806c492a6748dde02a1c2521c30927ef9c4cb8f87f3b9fa73007d754b9a3b8214d4ccaa662855ecae6bab85b00a3de7a19ea14430e5c7510207a4d82b5452add59ad308041257fe230c25ef03c0e72be83853f76518ab56226c4ff6990031d3ad2282e990443f5fd1a61d2e31ff309c4048d69197a26084fc955ba6621c50ae79411f48f425c95d03fb4ca41f20b388cd2c40fa5b3b732f7c6841cfc6de8b9f25268a5dd8315185a294f9480b69b47aad0c30aa8f6f5e10553f0ccc0a7f8b7417ba728d5f6e0ca7c6cabdd405a8441c7eb1e919f35e629094cead144de376c79a46e33c3b43ff6f2e2cbcc8839e8b40d6436e82206a1b032cd894cbec500064ecad0e62d3bad936078beb4e7bb6584e62d3db9c5c5266c1ca08395e045475084bc9e65eeccb54ebf4d4882fc38bb0a067913c6bd256e1f6d194144ebe24188e32f2488cdce78eecb28c03e9a64ca2d1dda72d3a01315a3584a35b9260591980b945e4db3bfadb54ab3c3d092c23721ca5d1b40d5d59312434804998a52970f9e92f9503a0c32d48cd13241a4091571f59b79620d36e068aa69f614d3ab61f5484a9cd0bfb48ba7717180ea32589e19288e49d9ee73e252ea9498676c3c70c5909b86c2042a621322b29aea416cc81ba5f387b0414b621ad03a071b2f15838dadfe5f63a660438c60236922a10173b838b069fb6cb87efc7b5fb371217d0d45418284b296b90f696e4e0302138d4895c8f8f0c6343a5612828b99ab9672dde0c3114cb5262667a364bd216bc45c5091aab1caf9f6121553185d61a3129552ceb4458c7302c986d9a0ce480a896e87a08e43b4ac56a432c283b80ffd12c729e8573cd2f86111db0429c551b01d65aa15c71c228cd9f0c457b5615781c8864eb477167279efb19570278d1c9547c49b963f4861a02922ac1c9f16ffe3711d8b14ca3041d9d640f939eb1e8a76da23a74278cf6544564d0478ee72ff4914ff5b409060ac522be06c0faadc53254e42175505fb1fe3a73d39ea70596dc899bafa6d105b1a49146d2d6cad0752e4575d1919d008e0e42aa1c964dd504fafed3f1e8688557e3a8fcb64319fd410ff110e0115c6d317049c42143ecbc0fd9282a8de23e3e66941e49ee8c3091e3a08078f1aa9815ba55ff15e738c9d430cf091e4b5ff808df73c140f306a94840040e518702adcc3dd661e8a70037a288240624ed1c4f350f45abe6989c3507e4ed1c36804263f336a907e471cdcaa96e1a5fa9f562cc26e36cf8e722c798a4ac2ac7c7ff22480594546226db280d407a4a2b56be0cfa88c5d51500bb462bea89abe349ab2526200e5decab61cf35f3d8b03a2a5953e741d940eb7579cdb1f38b59a42c8c3dab08b297a762c72693f0e0e01054beffc1e4e0288da45d066cdc44ccddc394c2835b3b9b62b01b21166e97944b42c6f0ac5f717a15b4795d16bcf60f65bbf18a4244eb2612dfc0709f95d63055cac502f9ae8155474134f5be0d3f2031e4169aff4a6baa167b79d4ba1b02f635aa06aa1c8cc21b644c9c4d2dd4718f6d23ce2b36adae3e7ee09e2453de051960bd8e9ba268e8afc4d2fc572229c21ccce03a1711089f6444104fce197789891f757a66a915eeae3966a6137b8121a1722d513a95894b40e684613ec8c1bdddc59866c814450224f80725a3ca0312a52fa6dd10d9a75559c250f95df03f4a345f5935d731a3ba4aa79cba08dd2301f23c421628c3cb7d0a0331e4f729085ca1076927ffca469d03a120310965b03b7e5b84e724e6621782af84b7b39e993b2887a123644d7fb15386000347783948da7131fa9e86d688eacfcf297d56f2dc5914dd5f020f544c99bcbed735e2fd1271a22fbd4c06d1019027234ac6f6ffe6754d4aa50b4765449e4061e8a42d02180a245da5e2f27cd0f0b4416949fdc8535981770a1fc6821404e75caa2c862b76ef53d3d0355f9d237727d4d34e6a0cb7e50274f54ddea1f77709d9aa9e1b743395e819541584a6cac2a2de8e49869f0dcd0fd2aa511d8af13d1861b87f895cd13612a904fe5bab3ec753308608d5d5572e48fec40295252a5c8b0612847415c91999eb59bbd5efd5281b7c663ed7eb6d4699977d77a8f397f4efa38925c6ad4d934342c14d134638776ce0438afd04ec98cc0aadff8a472bd0eff1313f70e1bea064c3532759a03c836119b8017c346a8f58dbe9ff7c542385f0ed72a5c70d9990dae5128f80bf7001854162fa9c9ed20876d9e5d8f683826c35aeda6598cecbfce1b71a179ad8213976dc2cd7eac9ad29aae629a9177873be5c68a1d0d708d3d77434d69af27f7ca34431fbff913b206324c85be055a78aec45f7314027904a436d345c47751707010464161520b25a4dee0c16396606bb949db59ea8aab9e46a331b007b51b9500abc7e64c7871cccb835b11914c4e6b6418e8387c90ddda320202b927b6bea5d64b5531d41fe532d93e2cce4fb541603b6c4e61f1b14ff364a166936894aed439a1ba5acdd699ab42158d3d95c2c13f73077f221f7c8d426c89aa26b54b0ad3d4bc9458aec34c84baf93a8bb89d5d82386baeb5aff678181e405132189c6c3b8bced0d6a847e1e1ae79a471fe5af301a3aa000ce87143d74888c5a25ce362b044d3fd2375eac9377837e0ef58dd4f060abac98a0f601db8b6513fa9fb99eb060accf2943ecbb3a2a86a57b08dc655caccbdcbc6db4d533329469fd008dc0db8c4c6fb3445728f289aa087f5421777a979b5af51e3b1981a18f985c0549a57e70f3c6a648cf586b405a09883605a1e88663552262d6b2d85b0c6923f1a6f0a5666ab24538f61f4351280c9ea95cbd423e2723d8e432961cdfbe61f3727face17cfdee2d2ec092078f15977a4274e26155bca985c70beb5bf2b590f5586c98df9b05f2968e27c147ac3ae4ee71a86b109601f74c63aa70c078155125c188ac0c825d3bac144bc120ee3a610acd7c46207494cdd42bb85396daa6cc5b6c56acdc52b1efb43cc633f8f79ace71c07a0a340d6f20c35996f06803c51fd8ada81bf599930069e8ca3aa934ae60e2336b10417df31867d774311bdfc0acc9159fd0bcba71200d6501a2c2a0c33a38c13d2d933a73d834d3e67f8821e3d3a80a13afd4bc04c06480998b806a34969b004c5d3e7de9eb1c72d3b70c1c3704ce6228bf19f6027e6a3799069d3f586f1758800dc57e47d49c0e432787054cafce4689055fba8ffe5337801c0cd4536e54674a4bb4c36662c653e697b1850fcd714825cef7b372a4fd8b4e3352b32fa2b08326682e7a998ef458749dfb3f91b7687057c1d276684378bb7ce98ed683b5a813601953a56f569a098c2cb35763e09739bdde84fb113fd01c60724c52b5db4c0900e0a5220b9e4c7348fa5528217f13f7c8b876f973f65040f18752811fe4c7eff99f70bb5f89145140fb288fa4c96b144c2f6ee5bbca79e2b3edafb4d5b07e0634587c678c963e00dfc5a13022852f4d5b7781abefb49aa0425afb7c4b83495a7c0cadb83f01b86d11ef86b33c6137f24a1cf85a1088c5c32a11b4cc42bc162db49015d2c7e11564132413c3a9ffe5cf0da661a4f024de2e14497bad9b778148c00d214074de19cd86209692425484b2909491d0f3cf79373122957ae43230941c4481587ba5dcf92061fcee87d94360c6e36f8fb499baa6ff1b66d0e5e9fe57d56d35c8daa268cb8981432c1520b51a171e67aa570e95e1c36a54f94cf5eca088b44ece31d69ac56fe8d114c291e8dc830ab13b9ce6afc620c980f2843cd057ae947bdc73d4d3844f1a19dd417633a3c1bb1f08b9066dc059d5f50868535e84c0c4a53952de14be70c994704b309dfeeed912639bec5779bcfbb052ce27c284f54e4b67520ba2dee7ba3f05449135ab94c014ed40223143315670a5c9bb1e24b87f63952044dc6cfca3cbbc78b960d1d9480a526e00a510f3f9f549c6ff1a6b33861897dbb2ed12bcece90a35e7decff9087f20b22c52702f95ad3a4491b65adf808c419893c513e7e05200a4df8325340dfe2c324c018698d35040a9d3566023f49084719a716ed8331a99af7d7c8f1a2f29dc2428f1536fafdce5bf816cf16d355490763261709b2bdddc99459fd24693441818cd143345421ee145c346be54b8866de1327df0245872f77f282d7bec5c3157e3be21feeae58402b58a16cb19861fa9060d6dfecbedf067eff509011fc932d5718df90f23d6459117f328e8db5e080485c108d416c3e8df3d7fcb015f8600c24ce21b90b59c67b02fb188f38081055809c087efcc9248ea72c223f9411fe41082f03f3da2a3cbf3bd6f72d1ed9e2d5e572065cea6778c87f7acc2d974e4f953cddfa8c9ff9cae9718d88204919ba2006624ec247532b3e8630dc09eda5145249ab027fd3d509816ab2a7b20d3398925f93d6fd12928cbb880c7edd6f4df5ff5a0a2304a21517549b40b44ed01c854df02d9e6df2d77593cc38e97865ce883fbd0d148f43a0be41ea08646f01ea42bc8b63bdc18fb81b8be83376dc4d355de067458a9d0165861048cbb1a1e06aeb5bbce35da0cfa04e753554e1fbbec5cb4b5bbe45798f3513e85bfcb430a87ee4ac21283456b90d1f940bea0a6a86a8281fe3f32ca2789045140ffe62f376f22b0f5dc0b06ff12678c7f9109f31691a9b5ac2da5282145316fc81698427308df32493f15262b93ed454f8d8487b11c1bec55be8b0288dcc8c887de4fa3382d5ec919d449d6db1b1f33219900e1fcc2fe13706a23fc032de27d9310ea73daf24dda6e62d9e0573db147adcd0b520c021d6241c96a44380d9559e5586e7e66043f02a347404eda17c966aebf4a978b0eef58d863ee8996da3aff1dfdbda843ca1abf8d42d8e0b3d6b8eef63e5ee1f7f9549ffb46c53cd8ca17d159f713862dca9168f2d56bcf281fe5ca4a1b212244acc608dfd60fc2a7e934d738f9f4a3cb947bc8b87b0fe2bfe31d410798f4a555983d0bb86b039c9dfd606d7490675bfe2f153445cf8109926537d0d9b6811831650ebfa4fca3bb7cac9db1527999d5ba2f6481dd0842a2776201e18870efe0a478e582addf40b24ff02eeaa9f64881fcc675c21fb20fc585d3bb8ffa7a80f78c18f3af42116645b04df0091cd258a8d40ac6e9868a64124b5a3887ee13bd30ea938da4809c617d24a9b5d950862d60122d1739037a03f636af24cb83b9bb086f521173ae3094c7c136c4af2ef57392f73bc7f951e88f9340b028a80c5545b608cd852073400240e61f4239d5308a5a0c525f006364b9bc67f4178155a812c09847de00402f36dc1840db4e92bd0864f835fc55ff029b007ffc02f7a70ec34c28dd2c69c382ede9fb79614fe8d0b01ff0792b6a54c52eedd64078e050c052b053a9ec0801918fd86f17f14287e5dfcea52fcff1ab89955e960b1e108f9fb09263e15666d18575f89134cf081cadefb755b2d1cdfed2e45e512ca7cfc5b028beb35a4f85b8dae41dc5099bc567c309accc6cf7b8f1aeb46f7b4e84a92c6bae7bd860052992a49dadc6ace77a707a7f55ad40670756a06e3a7f97dd775defbb8347e98a992a4710c6daa2469ac5688d1a02b491ab7c92e18718ed3289b1bdd129316802f29c36867c46cd7659d756e11b3c8a6a6995906606e64ca2ca64676e006e6a8c966458e12bc37ab442c12a7caac0db1051eab348148c5e5a9fc118154c2c008c50e5a8b0c9e0cae7068e869b17a4a3a621b31b2c394f46a339255e1782c88713dddb8fec2b1039c247ad87c74b6b4902262560acb588482794e25c53d685b34c3db910725cfc60520ad2e288d170f1342145a1f521c3199906215379c482805c900bf7eb8a68e1387b50d48e15893051a50289b0a2ae68091c3060586868a6c476712cf9b6e0a202967c8203e893ef9b5004cb8183b80e88076a105872f5b800480e3d11014a67201aac354f56b1aabb3d65ac9dcf1161cb3ca833e00a9f801c2b16259dc62964547cc3e88d91031cbb2117488ddb038aeddc8f8b16c66df02bea662be9499f3a0235e7b0764e0804b9616f18ed3250b560e9ce2fac6f51779864309e3a8adcc0408a4022015504c21f4d09c21a5ecc0bac8c51cfbf460b1beb8c7c661b1d861889db21fd584c536c5d9c7ca041789b167d89b8cfb23e118212d0ce8c398d1d4561a254228af58d3cd66b5c8cb2c2aeeb1c4da11afebca8bd3e5d55bcce37489758313816a6a615828ae7068101fd8b002c98cc5324414063c3472ec6011fa800dd50f6995538cb6e60f0b96b634879ac106c65e6c61a980195ba1c200afccaa9ccc23325c92891c3e1b845117379ea652e241650a1ac4622b47111752a72965758dd5b588d775edfd19af13c469128a7c16ab0e2d6ce400b618de7448d55064a9c011c2c559f694013e5b327888ba518f8a60c29a481499e92897e0d88209aea7b8be71fdc5755fbac3d1b000c71e31aea7b8be71fd65d2395ccb42e5cdd5d855e197976427f07895aa5a187a712922b554d4ba76d1158704c8504181925494d091b3d207cb53477ada005c9ccc5739e79c59e808cde663ceb9372189d6c2a3c3bdf5c50619a09980320396a19de9d0dc5c633ab63c8600aebd08577c26be12df5aa1af376028c67e380c854082c2880045d8e06b82f161f37109a6e870afaf157c4f2a49a4269ba4134f4934193cca080388060b6c4b2fc850245fc87cbe0a3be7e12b5149703dd96225cec569122d436cc1177b34298880b20c4726c8c4609521d9e2c1c60a8ba9ada6a76a6606090312529bd452ce6827464905d416c5664580385d4ad9c41f71ba945211e181eb29ae6f5c7f4be44c82eb21710ad5c48a8d69298dad16c5b8e4d88f99732827f9c3bd9149b178326ad959c1213d3ef07bf27a6b9abd1115a94469d68b1c440ddca02b41097075d58480c2a08268284dd13441f4a5c18bacf820a9c3c4d3127d9a150f007436a5f682680603ce2787928414874b2be0521209501b6c34e82ad181ed49284799852175928a86d821a11eb3192928b3a00a7ca9a4a83292aa51801dcc98116519a26f404c1924dbb8329c31d500414e979243169253d98f88e54d8b2d1d1de1d4080c6a746cf012b6107d7c8e8c644c8db0c20003c301c2942b96bcd2922d3d2380d6387e61088239ab71aa51d2cfe69fc0533d62b470ea11d2d9c0551343f3d0b4443171b4b98806792acc1b4943500483474999c20c4a040300cf86a318693a1d867e6b4fdf01c46954cd336a588c2df0b2ba8a481f30244abe10ca72bbdaca30e2dcc679270330a0a2511950b1a8f1385c4fa15fffff936de30cf62d589546aa785dd7be5dde8338551a93e21c4c6cc1d54e9c053a961402ea4ef36a01b7aee94aa2b5deab05f28455559723580bd82038b7a3103dd7272268fb0444e46947113a2e692cfdffffeb0c57a063f7dcf22d32b419bab9871932c4f0e1c30439c3f1f831ba5ec35df003058f2ee841b324d4b974477d808a4f34401f949c27990e8a0e93b8b2d37c41b36394ba41011a26e1a0f8008d3228c42371f8babc1785e7387361e7c72984d6ec005f0971ea84648120e4cbe9dabc826886f0fd3aebd2a646393af506b355d7ebbda7e3b34563d13ddcd7ceea26c4a9135283ef817bb74930170070ad8739def493f5ebd72158c1a664a347b886d5e4483011136f54f5e3352674b5bc01b299a01bb9b667b87cbfd6dd857b0f06eadfa5e8b5a925e7bcf5b15ff3cc7b4b34b5aed2b148a2ce48ac387736e79cf392c8ca7b4b1c8f3c546452b33ae9d4e1b93fa6e4513447f02a89850547d34e5309842e2458d46af43c779b9255069f3cb5a533b9aedee9de5d8aba0c1369735d6bad993908d0b5555bbb7856ce07512c32b44814d4c192c50ea12af2f4526b0ef2babc378ab892a4225abf7e9d75ceb94371b7bb70efc15852216e527fb8fd7579ef1514c464b9c4f7678f38e79c33fcc37aea9c73cef9f971effa15f16303d73d413d8674eea9b8f3d1ed51b7e6bcc4798e029a5bcaec2960bbe6bc64f9973a72b510cd7bad92ac90db9d00d9062dae6416984ad64a48964e9c3372770d59688a4a2293e6ec3f8d3c157db0cdbabcf7a8d7ad766577941d92ad595bffa0985a6b9f49898fdf507d5a99f5c346ed5d45e4bfaaa2ab95cae4abba3f1446aca80ef9d65aa05fbfce39e79cb3ce39fb2e10b4d75e72c9e70eeca63db1a45b31c393c95c94cc7682b6339468de04901f216334ef4d0e77869dfc73323e51c8fe9aa4b4cdfa532e65b51b95f79e70b25e394a0ecc999f89230918b113520cc80f2eb3bf3445dd14c4a9938817acab5ee8395dab7aadacb909ee56e17d523cbe4bf1777633c5ffff3f32b25ddefbc669324693d7732aebc1dddb8812a33903258c3805f40504d1334c866168712ea13893ae0f0e8edd2860d0d5c40dca17732549f705388031befc7b97a20281b4b9ac4b6622e73d10d0987adb8089a87504f3d481c55a33a52dbec27c440c0185d8c93b155bd1b95a6b19c5cca5623dc68cb5d65abbbce59833176523d408e87a42d9cbbf67fdbabc7746dea564adf5fa7c4de1a3267bb018ebae4bb1eeac8ee79cf358b295d01b83c6bab34f96586bad35dc61f529ac186be24f6b8d22c3b992a41d8639f65effd8d24d602beca30053f0a1780533cbf7de9a6775bb5be77276eaddc536ac1fee9c9a4688a074315518ec4707eb045a8c30f6c9cb4189dc3442058d2b2ae2b00071ea64b5b6dbd1bb2b1cef6e736f1f7947fad9b065f97ed1db0d9c392afec2fd1de9654b2d0990373bf2df1f725bf3acb7ce35036eb40fab07eca3005380d70a2550da6a2dd95744babcd1868f26028dc4aee06a27c7fa600abeb2a009d78d192caa191a162ad088196d4702033732a2a0397668a0750584b0be707f47fa593247b70abf3e9882cfacc91eb1ef4ae6817be1fe8ef4b3e7fa4e684ef1ffffffc31a865fb8ac99b412d35139470e28c1f51207c0be0b6a044b4cd8388d02a2c5164a2858f29d8eef52d4369036d7b3d6f17d8399dbffffdff2346de79cba9bedc9dfd822fecebe032827fd623bd67d5ddecb56d4ab8b76ed2edc7bf00de34a92660e7fb49115c37bc924eb5b2bb86b32feef5be7aa0b6873c771ce7934b892a4718e795f772999f7dde3dd42e71b78e95959b1a343130b32feffffff7f1b4777f7e730ae4dd9802b499ac2b7841215c6f5748c98151882ef8e1e074d08cf1d5ecbf141188b08d4c1964c08901715140303f2321491f174a33f06369764f6053b96403ec078b048b9449ddd05399e1f49192e353a17a047db4c4e65697716d36a0c5115a04e0c26be60dc121aa984714b103913079794586215a710f182b7a3d026767126c55882f1cad02d46c7da053aded0629ef9021c505782d576b7fb9ab8effbbaafebbe7a02a18877b71092117629b9e55b687cd0d99de37c85c5cdb38321e64a9242d81cda4c6861f0e5b19bc78af3683d70b5aef1207311de5b735c4952073b27e3c50b99299b59e3e564981e3c83f05e228c4c14cbc432915d4a96c15bc15c1926079cf3cd6ee38a51c68863fc311a193d18934274ce5a8628c24706b10c65209c6baef9bfcc0ccf63b37bc34fbcc128bb17b29c2d3e4c41514445c26c4cdb551aae4274c84008aaf4b563d820f0bc23aa24a95171ffd67ac770c0b38e08462612cb44651eef8a41072d1699126e2c6947156c8f9956a94e28adf4500d477c48cb38ffffcf735ac7b0d86d9d73afcb7b8d9a2b49bad3464ef177dd54fcff2c8a1544ad63a4daf867a8738898f3be3bef2fe79cf3a2944a923277d375becf0e55493e2e467d26ba9727c40c6d76df006f8237c376054ba9c848ad2aeb0687271016ae14061972846d35a1727cd88aa10979de8bf3c481e2445dfebe896876030d8188db45b650ba3237f3cc7b7d923e523e4cf7df0e2239feffdf24c621db0ca5e3998bedcc5377b35be7c975a02eb2cd59679da1feb5dedaad1aca72ac612d7fdc187140fd8428537ad96a94264afaaac171c22b0a4588ea0e9f8656432d1facedd3e2f5f3776271bc372e1a72e86939d75cf3a0a3250f483453694a6f740115ffbf062ebcbc7500832295f8bd4954712bc7b91ee1b6c5b48659e2f18e9185075934021a9636c2d8f6c0f81f05038a6e6dce9f0f38ba4c3a2c82155bef741fbb14554d87d65a4be56e726dce681fb91bcc9dda97db7617ee3dd80653e7b6e2b914049e6e76db28e694ecbf1a870af651ff905826586a3610c164d3f920a94f3b67031bc7b0201023569fda4bff0ec36c49be0105daedafcb7b6f0437d4561181efd7b9bb70efc1d1d76e2a203821359c4058decb06d418fea56d83da6d64bb65cd5255d30749859650ce257ebd61cc3e5d39ab215ed1abae628a952aac4fba6930809209e80354b3e7ea46501104d5e5bd51277b9353b2ff35703e34c7ad41795b52ce4b6c1ec884c8194738a24f9d8c9e3955e04556d1185b880e42fc2677ac31642f582bae297ec05e78a2a8d2be8d8583a495cf56d40b975188c3b6053d38e17b1f10637f0c15049eb7abdb3a5766a8dbcc453860dfdddf912e34e60df4f2bdbe32d1bdb9047853788a79c1c9ea9649ae24ef5aa1a7c2ace5bcb89eb0d9a3d0837bb91b30c58fed7c754e1c8cfecd202f73609851893586282f52cb37311418628968feda3bb79fd5aa8a73ee75b897ec40cc9524e56c526bb9f7b7b9fd0145d520979c73ceeecb73596510f07141badefb0b4ffcf0c20a35b5b1650dca3e42f5c8eee0d8fd2baeca9da88cfb130abaef2fe898fc0a6e21be5b64cef93632e65aa7aa0bbafdaa5cde9affebf25e0d43a9dc9288ee2edc7bb05173af3a1bb3db5f97f76af81f19b6bb70efc1523ac925a7af3e139360dea5e48e6423446fb57338c3b3cd1a5ab05c7f3dc01545570d2b5627242c900c4b2b841a77a7d3ba20a409769bcbc7a5dc2e85b779bb414420996fb7c83f679d755eb9e6abd641361ff4e4a98ead79d6e966371171b7500ff775796ff0dbe7ffef74d9eec2bd071325b5dbffff5bf156942168c953114bc8ff931051bb0bf71e2cd4648d01abd62e4a4470e1de83939c87ebec1a3dc8fcc3fd9915417efd3ff270ad5dfc043dce8aae0b9b56eff6f92e39fcd8a5e4956b17c156d7d94de3e99174f139de5b16dc8d8d11ad6bbb9646528781f0fe94cad5ec27c1144d910d0551b20c2ac3a13910587cf1641945718053d1acb9d65ced1e4bb64c179d217eaab46a6b9e3fddec5e5a4952bee6a7e7598f39377365cdff233c7277e1de83cfa4feff75ce00b235cf2cd993ebf8ff3f63c6af3ce3faff7ffeff3b33abcfc4f7e49c66ff36487240a88332876c05970f1a1a9a5a04ad9c35172c9c50a8b9b56837c9a5a2cb5be3dc1f0d225f0e6d0091148303d09306ac129a0200ea8a1963072a359a19ae64f3c62e7d42ffffdfa4c3bf3162049e2d8e9998cf3926ca71a8c4e89fccd20e92c9c1777b6161881a6dfd099b794c65b2bf9861d3c58579ba6feecdfd99181dcbf9cc31a75be5cc8596e795f72ead2469deffffffff603cc9b58e72d51d1273feffffffcf3c73ce396b96c3d1fc4cfdffffff3fd9ca79d7bf52e8dcfd689afffff0488e2eabeb8307bfdd7b5389ece052bb95449edd45ce82d87cbfce19facf67ec1cb0396be099dd41e7abf1357a43bfacf82c9f1ccb7b59a03afffefd59e7bd7dc23867dd3349969824b32ee85afeaa2d529bdda5ec96f3287fed42e47002e467070a30a2242624f243eb42a7422cc7456c46058c30186d433b89a5967f2eceaf7061055b51430c960d826fee8b0c2f058d8916392f33323869f0d13716ea2b76213f9eef2d04f2d603ef6db2fcf9f3ff2ea38d3b111a5bfefcb9058c2244b4d5541569cd087d7ce8a9cc951143446e40cd34109c73ceb9d09973d790c753d73d9169e69cf316d2c8f94cef745cebdce49c73ce5a6bad13cde596f8d2669df75eeaa8b8aacb7b8dba6813e7aecb5d1354ba82593b3940180fe57babb97cebc7b97be7f95aaf6d5be836a312e79138f70de57b2f739e39be5feb48ad24691b902f891772cef9f7ef6fdbbfdc81e63c018dbdb71bec11ee727e7e046368741ed19b5c946ce6c4e6f815735243dc0a9e0ca59cdcbe82cea71ba00b881c1aa20b900dce928b4c4d4eb105470d8d544b19cdcdb105c6d03da181ba6f128c8408d27daeb7845d74c67befcedb9b657f46ac6eb33b7cbbe09c7360eebfcdcab14dfd945b8ba4f2015e2041bd8c60cf2426e7caba1a4392592ba1e6a5c5c4f3d65c7d777f47fa51e70f3b8efb1171b658818a75ccca172605bd9e7288437edff75754dc1e20e252a1538524432b3a8bff95456af15710ff15026c98ac889e30188a74ee413c177aa763634069addd13aedcaa6b9f7330364613df3ce56dde4933da6ecde594336f4407dcbeddf7dee9b88833ab6d73af63778c626ec44de6edd309a2465792a610ae5530e77f88edb84afcf77c22f6dd83ebc83d923bdd7e7349bce5bf4f62ec7697b2c5a06c003acc25f43a9fd083c764c670c67ec68cde310f7d2c09ce14b4c9d1576272f22cee9efbeba5d328d6fad52dd831f774f4e0302fb8a0c95ac630c65a24d6563ae709b66308ca68e3a77d262561c930a930e64918dbb5d64baeac58eba389eff831e164acb9268988b51a6bad27f83c269c8819df91106fdfb914216e360ca9368586fcecf62a5349d2b513afb737c50cf1cdd905f4c4451418dcfdcd263bff460b7bf2759c313ce91a76bd40b75a4e5e2c2d9956314e9cecfc714788766eaeebf2a62ab7d559e59cbb278827278a3956f82d899027ab659387ddca890919d5fddf0e807d25264e1aa495b45faeeb02600614f17d792e0c70021a08c3083378821e049848a8b46c5d298b044005004319000000001c88a2340cd4566e0e14000625e850749c6478582a8b83227120200a056110c4510cc3310843510843635c3a691d01d066223f6143ac0d72054b8c38861affea6ced44ad7f6241e66d860cd43727ed5436496409505c03388c554ec7b86dbcca4a47ef5a61f8d6bae12dd96394839ad15bc8da254239769cdea88132c6a357f47583bb4195c2a8015160215b8b8fb3fa2c18db7227058a898f176d0241f9ac051c746337aa9c86edccf4ab99e1d185ca5e403d6870228b311ab9e9adbc07c0e8443c3b337942e3788dad087940d68256a3fc6ff73085867578506b33d51eab23607dfbb05d7442937c3d46f6ed96e0810d918294b794bb5dc3fd22663b828646ff40bcd1768a04263342793c0dea6dad08d9d61979dbc2fdbe32cb7b15a9eaa93fd9f1326a00e3a22d9fa875775f9ea013bcd1ebbadfdf7303e2f26b4798ad14c8dd6695659211e5440126cc2a7426f48d7382fff7ab4270650542fa408afba40ef42624036af43afcac84483cb45ee7bc734555309aae7bac5d2de3010679d36db7388f538cd439e81c35b495da3142f99ce884df4f7c90729367a3161c1a67d8e4255025e58b0d45e39423c32ce2bfb444d6768eb10db3bf59015dd2f29cb350583219357f37217498b9eefed726664b426a8a35de64cd2971e39a4d659171aa49c973aacb921fa79096228e7e7c74357b05c339717f68f90d6075cc943db8b28d23123c8fde08cd5d7658cbda88f03edd0286cb0939fd3d0696cfc1d2f2e4779001cfec39dbadad3a5e9647851e0503c124aa1ce695b02ca490f86232f8780883b88d50c2db25eafebf7eb2f3db742e25f148cacc8e054c2fb4b3c980c0ad5199f81cff1d32277341b20ebb80ec5fc51449a5c9c49423fe8c267e2433a3c5cc8f68560f6729f645541c1a2a8ba4855b31e83be0e6432ff5c3b21e720e3b55497e750567bd99c7354253e1ad6f80e987aa62e65fa7bc01f93262b16e8e3a80cd2f78a3e5af301b5321e8e4c618de9c63c64deed08a50c3d6dc931573b3d318e37ccc80fdb01c6939c3998dd58ad6360f63f8c374a672d086e1d139e6bd9e6828885f796651f9d8828e5817d04d75e9c1583ae69e78b18830aa412b146f5df3a7c68120ee25b4a38b3b81d20e653cc539d01a8887390e2ea21a34ba3fb27c8c47097ae77e74b0f11eb9951081599fff0e61dbe2d1f6d2f2e1b6c89a56012b312c16a8594add2f942c3f568b8ee96530128a55d7a6d1c4d16674c2a1a21175d234e23b3ae4c29685f0de0933172111329711b49de48518bea31ed7860bdffd288da9b96b9a09da9d58b1d4a803d9da3502341ada287bb3ec9ff46ed033242353127077880de464c72d0e99bb58667a5b63bd44ede51d88a73a167dee15821459b0513a1c077831d7a53ab00e7f318dcd7208cc25568285029809feea95c513746f35e01e083dbf0350a81af038c6dcc515f2186c96c07d414d3b5fad4feead4c94b69c5284110867bd22340649b3c72ccc0bfee28f43514e1ae298a7247ccb7632da0ba4bafce1f4960b82e88a1f78c929129986b2bb8cffaf0c5622b1e023a530436c2b3ea970b0cc5d86e617aa391e3b729a1249563c94c404f95ae66e985076b0018e81c1ea91eddb5b4136208e7925b9a22c142ae36d136df224476e60ddb679d1a668f95c73773a4749e19ee7c3ecc4d50b7d6e1d723ee91f4039395d10349834bc09f97126275c99b8c5aa3163d6a38343ab7a62ea6c39314adb40c22ab500d02f16e8629292220f6448ac3b98e399567c62cf9edcfccdd95317838902b76460b1da7ec62e29a902c7335772801f64381a3ea2c751bee5da09f1627b06f52b25831be0c73e3663c875d424c1370642a1f8d6c0fe718487678931ce4947a82d36b789c76db5ccd07d336ff66b0c8dd1d8c66b73678d33b85f3f8182776ab199b98d9042c25798dab7680769920dc5406077f8775d75823bfd07627ff80e318212fe44dbbda55508e7c98ba62b93aa90264f16a3be7812b48bb9680682e943a7863f2cecafc8914a729251b95fba4b7d714488896521143bd7e800ebd4256eae25569ed5c0f09d26848a0d76594dadc6ede43d3bd74c3dc45c5d56278467b357024594498e939784d4d54ae7996d3d5b41b090e7b66a34485e08bb4ea9edfce6da9db2b0d0383d6f5afa3e46026b71423211b1723135a884b9c392081361d7e9c60c154d07cb0274cdc0d435ac0f18420e65907cf466269b5077c96341646c903d4a5449a205dfc852d09c4d786c14833c1e0f103d34e30de9dcbc39fe48d9b0fb7453f72cf8c00d2072a145ac2f56196368187244ee2e55ec24594ff88da48a42e2d67bf4bac02b06fbb5034422a6f677695009c866e315df705c7aa251b7b3126bacfa168992179f8e696321bb597215eed41bd580143ac173183baf83abd681b42b96415264e691f378cdaafb4f8b763e43d96e793899d8ae163ae3ac5b53d1d6d96b5ca1203c86a33900a8c8fd0f847d3a5a458f8aaca7bd3c71876a5292a277aa6686e898229e54d43828df932b42e36391a1391b47eeb4c717035501ea33d1f6f7812fad10d5ea4651e7a6e46268258c61419beb3c3e321162a8b2214bb3e2643c3e6b1f5241c1d5b50687477c74952832a7982320f5982dd076eea6650a70f4fcf17ef1b8fcd4b1c48c5daedb0008ca936c90869ca810aa6205288a50f6c37b1a119d318ade905075db2bc81c6ca723f0f9b8a2d391eb1a4a2c54382faf27813cee0e6c708c8169e4bf5cab5e5eeb8e848d579f9b5e3eb015c10a4a988037442435725baeff1ab0f1ef20e070370c51e5b36ada146cd04623866b48c686c8b5e3ed97338685bbc6090605268c1175c766fe65243643b5d6171d4910f91a7114f453cedb990fa5dd22fea1d3e77ceba766431e47572467dfe616e279da122a8039fec24cd9f241e95fa56ced469a420c3174308e66ef248d4366072b8a621970e6c5f34c9d9409c5561c5eab0107b502162b69959000f1b630fdf025597d4b233047bc1ed5cdf2a39c413bdb46447562e6937195cd62941b82a4872b8a34f84e5dcf5b2b9aab2dc81cc4751f7620e9701d51dc8e89ec418e74e274269c22e54d6450993f16dfd9b663506f4d8462fec932ef55453915132b6cfe909b044a0fbbedc085f095953e9b1eceb5573aa82ef5cf2b5c931b0925ed450922b5456e8428161df79e05a8dcfc1e62c8b027686bb826e159a30f296688324102aa369de4661123baf8f24ef51a275c07a3116e96ee8458c09f50b7a84034c5f764d623b25374de595c1d5fc2ebc751c1ce2bade73416aab12ddcf20f490e302fbb9136f56516ee755cf91c06d56367d54c18b988ec23b305c2db5f9e8b99e4ba4284da7f2238a83092a040cd3ca87bb8167601656953e5ba1db4bd06a07d7c8f7e42a5ca5c0dcf62dc8d0c0bfcc83f6220e8afadccb7adae86bc620365f59da7b30a95757458a1b057cd0b6af5accf1e298968d9524b353a3f2bfcedee2e1daf468b3932acbc992db0b5265856e7d80cc605cbe8abbc24e3b50ed976a93dd98312779ae6958e4f86d302dee0d194def8787600fc483928e462a74eba28868b866c1cb3a3803d69b980b63116f68a1a458d9b9bf8e11508bf8d5e52814f67ab4e001240b377a69175f277b5e64cdae543bc126eaa3482286cc3258b1906dd107bc39c2f678804f4ddfc1684433a6c3813fcf162024e2fa8d9b6d3cc46a018fc21f720ccc1014dc5735bc836a2406a0833c917e46027c0c8cf72c9da1caf9b721f16dc5d409f43b7d982c2573870fea5c387189fde2086b4373a9046612e81a19b3206f8e5eebcdbe742e058e5b8102ea994c45dd4aad03f43f81f82e8ff5cc79698f5c5b449cc02018743f6c51689a89d7b060524a163c342ac831e18af45616cc8ec7786def507c037fd657dce71142397e2797d7e2498e4eb835feae43edbe47efe299135f78838c8dcc9e9c12e50d81df1a8acf8b82490abe049a681945137c9dafa3dfc771ed262f8deddf40f3c53b1287d8355efadab03efd9e040db320b2f84804338551c7cb7f35e10c124845b8451ab3cbc53fbee1f09117eefc1112e791e6b578bc827e0588aff910d6ae1c3d44279772230a2848cdc04ec296cca563e886846337393c5b940a9210daa8f98a8d97f4322365d780642884488a22052a01940de3f10a754d68cd3210589ec22dc32a7f410e7fb468f485fd4a01f8601e4ac1dd30f1694c2da649da2ac75bb0bfae2bd22dc470cc38184627bd425fb29edb20c0b1f7ffdb78598ff3d0578330d309ad46db9ea2e1febbe00a44d7e7593c98adf572906395c31c54a1cfd4619d9f81dc3badc71087bfe4f2b3520eca960118cf062672500fd44b80ed990f9d706ab99939c8ce630173ca930ce07a83b5b32fbb7d2cd1187b73cc45403406e295723f1de6666eb73b74b9fc4cec7c060a61c12d8f8fbe4e6d7bfb92f26a90d5231eed8829b0db142bf2984a58d1038a71c1c8ea27ac319c50a14905cd1f75421d20ec3702c813de22aa77f8bc3347af437c73a39cb7088236b46d0e61c82dae8322744dcbb0fe8315e17531f09d1de2593d99599dbd226d6751a1c9fd7a47d214b1c583cde6093359b1402a238abeecf613d8bc8020269fdfa10583720a3572599c9cd9407acfc128549c1c61c88a322447de69caf24351c3828432de6a3d2230ec6234fe3b53c53047a5f28ac325c7cca6b6b0a04826d7e1bcca8738da9c22bd150fba6fafe2c7407404e7d32c507811609cf26f332d207958d348637cb775b0f1a4fa90013e65bb0a7c51a293860639f7a34b6c198cbc0f075b0b672c39feaf85a45a2a9e5cb48f3da619de124d38fd2c0267b171a9587311b71893bfe4e11f9dac5bbeee73036c8cd3f5b12baef22cc99a994b2176c26db00be0c94aad47243fb67c6556dce362d4c6ddbca1ba03fd577b4ad50f569e0a09a3ea8454783ecae590ecb3a560bceb68d62b4dee41a1b345792ef93128fcde44d3e33ea4d74b1fc5101363a427ad33537689e1ca7d46d86b4bb89e772b02b545982babdaa10a9c33f57de9b4bbf4784a14e0e7baafb34cbfcf2b926e6ddac492c04ac9e2a56c9629f9dfdba3f495d676503f1985aec8ca5b577109688187e439c19856e85bbc40bf31dc3c68a9cafdda496c34a6242180ad31b0f44b38cb4b08e70809e13ac6fc1ddf491fff53d8e5aa955586dc5f4d02baf95eee0a649b220c4c9d8d17f95259ca1d44d988998ba17c9d1b138a49a00b9b5792401209b78a332501dcfd30590428c58c5e104882c2268324f41a9295a0223d71a506fc4f4c051e0435168170b49692c6663fe4535e3993cc0030abc90f745b383925061ffdfdecc1047c3156fe3774d7a2297512d5a4339b630cc6d83e49414a157e2d397dbf8a2f78545f761d955b3c4aec20707d6e01eb61acf3c738ffbd1d0c6d5b343c2c179bfe1b3dfb7c43886db8a1b9f57658dee7c063a05badd0ace4dc49cd6b6673310421ebb88daa16620b0be3ed029c4b8d1abcebc4803e7c839a3ba5018d758217bf4d0a99c5647f0cb4dfb9028cfa009f40bcac9af5af0ff980dcc48d50342dada90fc467be18d7ff6281cb1f7022d626480110af49fbd68e49011d2be8cfd35d309fd9542b0450bd1f5f2fb70a44fb961518e279e0629cd6e45a0ba1b69fb017e3b3cb6bade6a564ec41711db077e677d26848db8c0ec174866ad24045d802b58e0817eaa00682f31abe29fe29b445e62bb8c264efd872d8f102df007796acfbc27a91d1bbf698c0593773e0fcb8543fcaac4d7bce7a7810a040d4fc300210f81b575b102f903500e75843d504d5c72393080240333935d007f5ce31a6cea6d3339c9a869bc98637ffc9991a0b0e4554ac16fe1a1ac1cef3cc4540112b89c137f9f5ecf1bcd1aa93ae9b3ecc1d6ae77285cbea2ea2d66b13dbe5c90a3c72f884788cb28887e2d1790ce5c6885570e31f1c903a5841ba83cc6b445a54768974ac1fcc7ce01197234181b51e0788ac852cb63f10cc1e0d46d9f98f5e9f4cb8822975a1193ac68318ae12cd57658c9f050d334d3b66fdea928d0329ffdc8695223b91b81a68e5af8ef40fd67b1a4320147ebbd4d0be5926b9588661af650556a7a62253acaee2a206a3d76a80a9ce623a0180a4a09349889ff4a4e8f15eb7a0aa5e881110a3762e125a1d2e85eac76a5118ee57ba832c531fc815d1dfcc1327bc7efe2422d618a4ece5001ea02c48562161e5a821b21c985d85357f17b755b883505c61933896ce95a967e6e4b758755e94112f686787fc8a15238f407c6730c4446208518c9290ff50b4b5a3aef6a28402af2a52bdae3cfc7fd2ea3a40104746eb31b30ef488f6193faee5d799639edc48d04ef73c0f21ad9f4fcbcde40ee748d0bea1a76e05ea89e6f7721c91000a840983d1d46a82c3737ccaaa6e9e73ac9a65e45fa9b444cabdccc11779a6f2d80b862a593225c8446bd4965a5e5dd7b7f00a32c1e73bb0f86b3bb89199004d183c7321115f98c3a4d2d3e582340491b57218dc222c5b229799d98a3c9df8cc0d2e6e8764d87cc49ca03ab0a0232346a8a99cbf48645d674c57d7238876ff00aa24f24f99ecc360512c0e4e8278ddaac8b3d5901b520c7a390dfd1815faba006a8520327b45e6f2e43e31bfb1cef6e2c85957a71f59cc3083c4a17ea4d875e3d671b352841c2be7bf72583f8c3118e9dfba8723813a0f0f87a147d68898129f634992f1f737e4777f1ed94e45fd98b76293e227710b8c7c151e8ce6c85c7653029102f66c86c448720cdcfaae42f0b3b3362e2afa61501e376bd216a27ced116024f153b1e43aa686355d1b637f0874c3004df666a316633fd1d7dde8787a3778fb03dbb597763c1d1c0efcd954e5f601806425c520ac7231d49c4f1a7690a895e4e6de3703881b4afe9fae750561d3da10e113e2c668ec17a39d63178c57eeb4e3c57e3263dfd7921a8a344fe4baedc598bd280a9ed207d729d1fcf0c8e54a5c49a4c7b3f870e3be9b4a8f135cbfdf1839e70bda1999f5d95723474a15025941f53e666080c2f86421bc0832f469a63a62804eb61236f778637a5fe2a30646227273bc58c0e0a2b3d1cc54cb189abda8c04f6301e244f0e7c2c38bed3d4824bcf1b5f21762b3ee706502cb89cc3c8f38ed97cd368cbaa1ec6f5f4e5d4595f4b932eee213515b38b8a7ac6fb7d1be76ba889c7dc682ab13d4f30716a26041e1fbc4b89d591264d50270ecb3faa5a71752df5fb7f7150ce0d3252578978de35606c905038818f310add748ba2fa214ac842999189cbb23d09c565e3a7b64e26b6b6b5cb14b26c81262a7e179bfb73c929eb698e3a60e20613c3199b91c630989bb18cda716ae24af2b42dee00a2840d8b3c6ba82ac4872b0c41bf0eb453c7155bfec67e22aed45757c8c1b539d8961f5d80b68c88ec77521656f682c540be100671d5e65cb6ac38cc5960cd51819b2b2a55fee96a01fc0e4033d6e45c21422468f6bb3334a4454f90fa6e26629d9a5072f20b697fba2f3c5c85e6559e65868f08833c5e5ce3da90002ba6048850c2523a507341911b2f670c82cc70069f78e4fc93c29327737c1d3b5d5ec3e710f497d7b5b8e2151fe3b19613d4e945ec3786b36a5586f4d21248520945c1e8530f716f7e7d6f74545b49de32d0168551a278fc0c5d04988107555ad1784b118d60e2fed4f75b4f6ec835608254df25f64c6301f2371baf7cce08c81b9d4cda5873e8b9467c0c399cd6da58c4f841e5394339e374188fe3e4555ced74e12666d1167e7bc0a0dca1ba59988dba004b6c4f50cc5fe5c37cfda575bd0d5afd627e5c7475be0da090322583431b3921fea8eff3c4ad66cbd01536c8b593659c962e4b71254ef1e3b16ebb84f50c319f576542235a13567b6587604d8ae9ba2ddacede5e6e0cb7b36c51cf79f56006098d1a74934064db07d476ab9b468533247c69bbca80782a1dcfe1ffc73f771b3977e546fbc72c5abde923067673966e4ddc9b0e953d8e592a3e7b094b49f8ff7f22483180b9ba2e01599832411445bc6695f4b3ad8d8ba8451ac5aa0a7c735663b96c3849cbcc39372c8df1f0b810afcdb818dcf4f199455a655f2b8b5f17d32493a1042114989b882649c1c4bc896aba188bb3e64c1f5345d61148ec3b655b80e562b5b9534b601cd13794858c845c5875ea7dece57c86b134e389c8a8ebb1594462b218b63b00c6540450c0f828eeb9c458a409bd7c5fcf50ede506cd6bdc3180c05c2cf6a996df504179d69e222b38738239671245c652c1e5470c3873cc1156877b8357f62e0e4006d53bd346b9084d73594cc4f266d08642fac91c8caab2a2066142b1120f38521ca459183de91a003523c9d8539bf63c0090b53b0164cb443f581fa4f2a37c5a16300c03aa70b7a27a79698d57d908fa90fdd502e0956e26d3622278100575f87029c2eeed2a8da925497b9eb90a48a4814761637188b571a55dcd738014a985588b956dbbc6111e17bf8554794e2cf856a7e59a5d5fdcbfc7e972e01c0a26fe839e5b6d7cc4cdf4c72fa40af8ef6c3885d6a82ddfefc3918edd9116b71f1bd907323defbab23aced03e7de994fecb01015c8926ab24f46949bb7e94cc079c2a742d5719f09c586c492819ca8107432bda0f5a5799f4591f8e3514877e0bd74c79c80b9d8272fde7ae94a934487a3141559b07e735385146094c65ae3607fb49b5c463bdd89c906f39414caba68442c47e1b87e8b462f800ce093a8ea2d9d76595fed65c54757a40cb0fe493909787259d2018bcf501669e4209e8f4ec4f6758f9af44f01c58ea880b5a41a165c4152dc9f997bd1c8d83a274e235038abe926e19d4f146c7dd4f69846898bcb433b5a165046c05596e7e150cc4df9983f58798d65f40c6dfb1da954d7f928299d7d5a64dc0d731116ff5b7619b89e7db87886db1a1fc727bd7623588076e7507181b5466f76c26ffa366e72c8f6fa6e11b875ee02c60c35e74b6e1b7d406aa50fd62239e991b64ce3df7f71b539a7ca23b36d2db5d86a437a82d62dd5058359855c49d80c6b4af3a9bbaf9df53eecb890850288842b1974c8eb16ed0ded2f8a86e63c63b0138d8456110167f499273ec33598874781c2b6915d466a0314a77d80cc7ccdf00c2f5469e98d058a02bd7a876c3b08c90b71b51fbe3dcb4cf0b357aaf49bb199b472a93a56fad715596d4ba9cf4932558e77ed4eaea83e926e2fa52c86b092b5854b2f8cd4a7bd8e10fa1522c35a76bf08802c54a2a80835e0d4a0241531ebcfb24e4ee93126eb8dbeefa44c81b986aa4edb2cebb6f96403a4d77f9be4bcc8823988290da657b66ca3068a3334f404ecba4f5572d193fd64a4cf51fa97e2d22efada9ebe41c2306181e43d7343c640ccdaa6bf1ff749b49be4b1fa91ccc5456340b55f1815524b1f811ebdabbb5c29d0635d7c40e5d3cbc5c9c65a25a0d7ebbb15235eba8ca9b2f39574ec6d43289e587ee5530d685d7f8d9dc4161519a410781839f9f722d800efa7ca4f47138868dadb0b02b99a99cb2e0b43cc7711ceb134072658922f09ca08e8d3c2a712c4b303599062a25140516370ebe1c49b1a0c86f6c866183518c5d2b60264a674504120d49545a3a614c7792957fc224aa70896a544c2b88311077a48dbfae86719dd8bc01611f8a59f5beda16d45a930e556bbe9db3f04f5ba3eaf06de03b17aa1dd618fe99fafa76060f7f5866eafabb58694369fca4d04bdf4c0dc0cf063ec8b2743b73d44a4fd147234f8b6fba9d018852b078c48beb90dc6eb919fb36f73b59d7033cfbc49feae9aa499cb6b5deccc9a386451ac15d6515a8abf5b584e38a827db24266c4867c6fa0312dd6aa6db7d2a56f3c0a829396b06b9156afe38111a2ca4a6ecc69658ac0fbaaeef83ac559ed3900a9cee9adc6a2284090317a364116f54cb99162c959286fa728153aa27e1ceab99b931bff34cc4b707552ce034a0b8d5c3139c2c121460ab593a0d6d315dc500b553a1aeaec9350f3690524d26f2ff7a3fd4eb30d440cbdcdc5a7ba74fab6a9edc90293bf5fd07a29869f684db4275528b5841f65dec87a2fcbc27db99e735901c79e11fbb14b4654924ea4d68e5e7a39d28ac6ad8a51e1ac441d1417a1fdbf8d01c49225f48046c052309fdf011febfb042f645941b999c6d913b9f55e3b45da313b0b92ac77cfe24e01a5dc041633bc2329819272ac84b050af330d65aadece8af040c98d8bd89b0651f817b8de432ee084b600d8d9f6f1b0c1ad6616aa010d5b95cb4118a9947f035800cb4e3a8a7ece1323068855e88f67e46f764655849fe06b68c3b72e6083df00375d85d35ee506cf84a2b931a5095a875831878a4eadf6c13860a87186d74484a0884215d223189b0d41dfdd1b294c13f28f4ec7c3112b7652f4d6ea81d97590f0775ec49e82e4831c14744df68484c43c3c7d4236e809bfe65476a0aa40e78431819a316010f6a0ba6486e1b40934a024df4b074dcdd3a9aee58cab185332d1f11ed0722f3151189b91222120c5cf3e205b441c5666009bbaf915c5bfdc6410a300a10f8515886397bd6807d8e9b31988a311d4d1cf093412cb3de5ec2d39d988a01e065963fa1a2251b9f1a35ade6dce4bb0aa76306c140991cc74d57a080e321973e67af4afd5dd4c5e102ae4e9ea3d42ceb031206325e4aadacec5200b688b301d481be5973391b756d2a3ff7ac29bdcfc06d318f1d17385b0410b277ae14fe8de37513d8011722d6d28b005cbf8c837e6ca5660847d34280bc8c05345acb091e42cc9f5e075c734a91b39619e34136de38b0cf3da60e114200439860c451723bafbe0583af29e800b4bb245119dbb2a9261c66de780d41c200f931a5e4747383837cdb62675dfebe0c0417d3fc53c2e37f1240816fe13b635a93be447c935c394ec20b77ed7f8b2836326a1c5c088f1387e7a1720bb7a2169cbb9314f89fb0e6e345441ef7a03555cfd7e23c610856211a1198446ff02453e052e2401515583c7ecbe083ae6fa4d3982981a9b501443b195d575d4a04b3d6b196837518b8aedf892afee5e250f554145f67c376cdc87d780bb9249b2e4942e62a5ca9c862caa3ac4986eafb60091779818a90a91d2d874079c743b39981eabe48803da88b5f12cb0448732474e3d10366bd1b5b629a587a820525a39950aa8b2d49bce9a4dccbaea928c50174d731d46763afe86d7fad46f054bb50450ab41547187f0efcbf367138f0194b657766da47da7a3aaf6b15b8166872d6daa726eac2526b51600f585dce01abf2eb0b0067eadd4b23adb8d8e083c7fa735a4dafe08cbd3a3c3532826324c4bb7dca5d78b9952ae2fcd20fc5190e436c9ac60e2d85572f4b21ea5892902dc09441b6542a4546b90c8897b880df1a27f2b13efb8b91d333e8ba9eb40572c60493bfa21abba381ba76c34fd923c54136f76b68d6b1d90791b83e63736c25f9e43aa87fa02a9447b2bcbc6fd0f6d651daba727e32aae7df9837bb2d33aeea2ee1cd3ef4944d5136a0d5c40e1449ef2664d7890ae80da377895c42dc741713fbd08aa42b1e9ca72f0f719e7ddf138fd82d0e463be0499fc285e1c6b554232b6e47b2694a4b0d805bbc84264e4bfcce62745fcd3b4ece14bfd6b3385896c0cc7532604017040580266bee5f2726eaeee0280d7e49c5db3df14d2cc4974ee067d0238db494094103966f90bde892b76af5b6a754e6c36a69c0ce98205d5e505e406f3621d2cf0984f5d0298df8c858425740cf58803e64b72d0b8b329a01219eb48bfa63246fd087015f81557a5f5d44e52ae5ef7a33a72289490d63b238d54555cbab8aa114520717f33a49b79c7e98191ddbf22a67149f8aeeb0c77c49203651b50d2035ac3f06c20d9e9313e954155c4bc9794aa6662c5b4116fa2e3337c2b6ba2a6744269984077b48123b0caf4c0f1dec359fd70f85de4d997662c2231282aafd9b3d256cd48c4fd941c798e264f5b1dcb33bb1237eaa972732d01236ec8502c96ea95fe41604756d2364e4bd21401b76b0de327c562ba316d951232ac5ffa4414e754b573b06ee382061e296f807339ca11219664d7cb989758429fc04f59e2e25170504d038643d0c444931a2368a3b392b5ce30bb116a6dd1ce187ee1e076d84b0cfcfd6183df99b38afe698bcea6e3b5434a6a763b940018d583185e4d8ae884aed6c58f56220ce5fdfd269701614e64c58db7d5b0ea474ae27e5783213e03b33a1110724228692dc080213858c8d7bff12e47f6c9f43f78a51f8795d65927e4828d3bea94bfa9e85e8bee95e35077a3962f0b0ba41f5a3f98c3af9ff24eea6f3527788ea94a210e0fb2d1ac6a371c9e6183dbc8e8c5fa50ccd3384c40a77eed1cc8382405ce76d2dcfa57d954d5ecf59857ec3b4cd4ffcae96257d39deeb75d9b8ac194cde5c4dac2cc611cd7f11e47f6fc2c915501a60e5a37495e18aa14eff3bb3db92b92c7cb165d3f51c4ed94ff7ef79e9f72462a6e00344840a8109399738f4e3c92ae136dc6efffe477932fd241916be0b42697815375ddcaa7f78ef060eaa2a4932d4898ff57a0a2bfd9c18550b7ecc940eb2c0718f44833b5eefa548ae8c976e3ba3c7d9575d29858f59a1ba0061e0e27093bb8a240972568c9ed4dcaf7cf6e59d066fd53f86024f2d3748f756edb841b60969d7710a5839ffaa1c3b716778c7731466461f03ebb4ef8405c0ebf7500f97f99b0f2a42da850a735af22b7a44bf293bdfd340d32615f31047e749e900cd58f3bef7db879dcaed2105ad40fa3303d3eaa755b1fc1ea802b5e8e634e9b22c26c841b496e780aa6a6878b43977bafb0ee53764e4fd3a46123a1bcf12e9815296194e8f8684052c9ca77422960ad769c7129d6224e860b6cfd9c2aabf4f7e6e2ba33f15e543300b59f1a904de3f59cb1b43e534ed4608125635370cb033d3c1e531be06109e904b40fa2513f5ea69b3205d37105b6c445f643c05804bc8fc852089865c435cb0ad9fcd925d264c7c79e6715c38cccdc5339a94a89e067e4f431423a4b33aaa0cf9ca6286d5d703919579576457f9cc7c58ecc23efd6a7d78c53b205802dab6399a734202e4392f692f9d9eb21ff759f33fb9dd86edfc98931aa27c64f2bdd17f0ebf8a2a84383d1fa3ca33a8f5afb6e2eb2b4727c0e7eb48da688b9fcc4db9c63b01ad2269f5a2a94435566862644c6d17f5eb9fe6050cae8da01ec497ca0b77405271797be8cd41ff8e544a2ede4b255fe9ebc6ed5a6e11387694b965b93e7ce81080d8ca4361c96c8c71a1e15865aabfcba9fc3330a19f613c5de51dc84189d33d02b401561e64b24b5fe96e8fba0c713e1249c1737b5c11dd65c107b8aa93f7f608ecda4affbec423e1d8480a24a5b978b300a93d49fb71a81483c4f462b84cb6099fe3c9011f2720fc798d311ae0f1a589fe773a3c39e29ce8f1fbfa715a80b0b4dd71e5aeb438e0945d2502da79f898f3f7e1a102d28d9eefe9b15bacb969a031dc2e1a911201b734b8581fa45d7dce570411e6bc0302ab4950d1b98566872a679ea7a8f3f7523acdf1318732546327372cce2103a7b1a06194cb5dc6fb25e9ed369b4b401159ce1f7c509aea4ecfaa0684b50a2c0d48e7a58123cd3de6775070a7fccf9e71effe8b9672103afed46b040235ea196026c763d0c19cddd5c6ad93b95026092a2a303fb661a60f9f3538583066a4d4037de3c1c5972512249105429503a868b0057b02532e3db9317d342ec03d5b595f49958eb0045860f1e119b17d57281050d3e42ed10f03f65e6219dc7f9c05b7f6043ba5b68ec21040baea9b6e089130310d12a3ad12dc08b69e87759ace55833570e3cf381305d46b40f3210b528f84da5bf97d7f096321c1c79de65eceab8d66085f2e4455ad67269136a64d6251ea84011b9a3b2b9878cb9f07eb1a479374518e158e6782d88c7de9f03f57e8cac76db94e864b6a27ad6fb90917cc5d86d33c430ec5090c4dad90b343fe08101331a3cd3ebfcdf61e4596b271698e3e62a88807ac0dc31c890ce5310cd1e6d57312b8b14849b44cdea94a532382ea8a62ea64e77ad816e9d0d06d174b811eeffeaff827e397f452042333f08fd26152b23aa6a8b5d66dc955a35bf543c0e2b86b50cbd2e4a2296f86dad50ecbcff83b0841ec178dfa835b28fd5624a73e3ddf9621f05e410fad25d6c32fd75edb7a97fa8bed8591160d8790f40766d1c07d8e753ff0e998a48e9ce768d431efff23ee56c7168f2a04d90ed82fd310ae6ab34ee7ce2922581a2ff74deef97bb2655db2981894958f3d30f79a661e6445956841d77c661c308b42c7f2a7b88ba0ce820576e16dfbeba9a8c062891506439f37b567e23cc30892c75babe22bafe4d01abd515d168d32ff8fd36762351a202cc998f0f9fd9d232a5845ddbb053e480bb292f224e3f5047179960f32889b9c5be05128622e50e88267abb6319017e534efaeba7174eb4069657f3325fec91af4901b5ff332008bff58d53afed94928a32f2f8de499eaa2a77bdb9551c2e0a1c4ee7b0c8cab19355895a35d0c69bddc2dfa2296ac1025225a0c628014e0d273e221ee3ecfa810876a49dc09221ad88b7372eb085712ab3e9a445458279d188135d35b74cac5e9284409bebdc97f1a74bc5adb2e26a74ac78bb4eb215806ef43df3e4e68f09f98a7c9fdbeca23ec6cc3b64d6cfe5048b84a8b5d86d61080782632e198f536da9c54e32eaacaef6f594882093f5975894d958773f383c01ad91e0acecbc4f69ef0e302fe583ee0c86a104ce50e3070d108a9bb7dfba722ab9c1c070bfc2eeb049ed4222bae07ce911dcf303d4bf22a79072092804e07d5c8092a5b49296382c4edf34ad692aa1e2676f913ca95099fa6ee447095d45e393152cbdd3dec2b487a68727336c73a955a04d3a1ffee896e06f9270d35d5c8f14732c111edf224d1a6808bc99265486cb10e48fa99b1799b58837d9f800dcb15472b7bf9110cee1dbe4dd4514ead9582ae01b256a5c2230354d9067e022937cb78639884d15d370e891e35026eb21c2d80e54660a09f03f1a91be80af691902562aeecc961f4669bae64a9ee88d818626ab8c93305162b6dff3da4743a38f7cd5f634f56c10daf5d8d5e198a5dc651c7660b8c2a41987a3048866d2b4283cb34c0ef20b158f2d6a33e77dd232cbdac0d17ef1385e5eec702b08707f9388d75b895210f47cf2e6944914770d75ebee781d7d518f414e691ce54169f6a319866105843aaa925ddb0e238f0d23946ab02309ea5181b7236ee2d8487abaef4241c4557dd3108b77eb18829b452bdef12a38d693ddf072c3ada8030066324985f84cce17edea08a039666a102f15053265167c49c8457e8d7d1104fd41664b306e2335ee81738bd0e644ee1b1be7e64e6ebad7b121fae6f4e08cb19b069e920bf059da7c308923f47014184a0368231c4cd701fdefe2353f8275a44b613b935e4a43d184101bbf4a2122313a233090061e42b125697dfa4da8b86475a5d62787bbf634086e57d3e8a0c391f6cf72bfd32ec65f000ff8b593d776040e6919d027a08f3b88f5add8e43aa813255218839c24dbb47a22825b0b63ee0482f94f241f5ad1f0ca0a32ea85e9c0006ea043a68c8a2eeaa7c9dd7e71db74856407b490488ced3d7ad080cbf34ad6e70e93926061325fc293ba36f963b758211dc31df37bf42a6a1844cecc624e710cb102a43c780acea4750afedc005f1c5778b0e1fae48ddf9afaa44938a209c3420abc1813b13f992a3b3574196aa9d27e5f871cb44808dd4a5bddd27ced1627036910a018a2f0289fca5308cd65bc04d6f39bc9b8547b0f19cb48a774864f4d6ee25a6c44ae98abb07b11ec6bd22740592429b4247c7f051d8923939c0e01346b01aafd7c3a515050b53ad7c6b3aa0633da2ce8345d14759117d9ad55aa958a112b34860b1b8e82165c2305a8d48216a7e6478b0d4228c006005a9c2c4a2851aaffc010769fe49082e6028a68558cc92632c99452e4960186036d03a203513f8f5c3509d5feadf650dff976458c47e9b3461a4bea5e3eedbdf7de7bf70b7809ea5df256d0a16ead887c5ae8feeea7aa28ad1f17beab2907ab0063466c7407c56f1ac642b41a02aa85756b3584532389621ef66ecc5a8a00ab3762369c3c979e6b2a3e614a030cd0c29d41c34b0bb22abc644fa03ba3838a65872c05d6896b2578b56284a6406b1ebb44b7684c995a1aa1fc04460a518d94b34237ec7d7d8f80c7c1b0a01ad5dfd89cb529c30470a8aa993c11a23165822c21334a516ffabf2d2f4fe1dbc037aaa3dd4ce14b65aaf12abd77ef5520a9d0e9bd730e152f51a5b7dad76d54a90a2805dffb38dfe37b6ed8fb1b178058b75433193552a6e59e5279744a2688ac664c048029b057a305854584d532e97ca730d37192dfed2ebbbbb2f7a63381e4aaecb2a17ad32634d59bfe49f958b7521325ea8fba95ded86dc9dcf7de7bef6fdd52cd943547dd52cbf4f2f67408cfc92dddbefd752194c1d13767f7de555925ab7a2b0929fd00c6676dde7bef676c74aa2e294f7e5b1ec5ce78ef7df40a570beb369a049716c3db17550c9a2faf142a9e998c045c60af31c6ac5c58126812916b67404e1dd76d34094a44dd46b16d35c7cc88662dd76d5409857fae40dd46bd5ad41f359207c13c903be753e28083711f9644dfd870cf71facb333de57372c83289acd377233ce539b3ef0b835f8ea11f26c1873314c2df65c6cd24f6e86806ea563aa352e2f1fea7bb102e628d5a00d8db0b00eb6c996f3841609b301ff08800c09690f19077325fef40f69c1fae694ca2dd9e87ab8c0e755090ebb4e6c38e788582f1b881d5e1eabc91f36c7c5c933d1d7c741e5dd9158e3b22b9eb860a076b8d98a5af19ba2c9815aa17933c6712d3a4ee24868fc994d1b376a9d839fdf04eec5aee6cb8d941fba43168f8963649fb4758c8f2fff0f74b7e10cafc2b7994421fb2b0eea383389bf89d79bc2f6dd6bfe7a08fb4f198822567f5181c1c883a963ca843b8c7fc2f7164a1e4fe3d3cc4e1e07b96480816e7c0d99b8f0ec3806030e0d950f63e5be2a3c3fff36f12b824c4933bfcce32712ee1dc242d12f79e8dc39348b1f1a55d3f1cdfc3bdafbcbe8bc8f9277102e6a11ffb8fd95774703071b8adfcf947a1e3411d411249b02dedc319d2267f60be1f3508f3b358cffc8520384321fcc5588844383a0f761f3ac8f42c13e7371c90b48e8f38ac7f57bfef55f6d8eb9041d32aab05978f5b920e097e2a7efda13a1461336d4956726f5f0e51aa1cec76a8db6996a84612b9930c4c47cbad9d159c2e17cd93cdb0a25479e67e68feee2df7de72dc79d75dbdf7de46284712e9cd0c962d8dfcaa8b4b862348e5dfce39e7afefbefbe793e39905cfbd73ce39e79c73def9af5babe74987c12b8821e8455c1fb76e04dcd3dc07694f23b90fd2dd7bff79ddb610c4e0767af8c65e04c96b4f6f1ffb2ef27a7a23791d1ce12ed8540928bacea2683851504569d0323e67595c4b2b5862f4962a57520e82b4407d41c9f4ff7e39fe7154081bef5dc4fce9b978b5534cfb247e216539efb12c0499331ef9b3fc63ab154630a861c8fce9b968e504e1158543fc59feb11e89d5ebf5307f7a2e86857031e601325d22d1fa427a2eeee94c0875a823f8bf146d2aa556495780304212b1f119f8b3fce32c9890b52e62fef45cc4aa2ba27d12acae10b39cf788450532e68c47fe2cff182bc7188624a4e74fcf45bd912fa8610819086c140e317f7a2e569d6278bd1efe2cffb8fa03f262cc0364fef45ccc23d9fa18fe59fe31954b44d617cef45cdcd4a4906a07a002527f7585560cb688ebf6eaea8bf61aee2df2f95bb757592e5c37d8d311bb10b830d72d04e94db7340f4a2d113983cce0ca0c747fc13d06e9d64ec9e28ae336d5b765d2479426c07cb531a92a6d46267cc4844d121441b6672df2886ca1c8162cae6d91c13de28e20e56090fe41ba24487710a44d08d23304e92033480789821ab85eaf640b619e7cebfdbf335d9c8b2f97526f28b79a422bca9adabb6736bc4829e160924e94024d3c4faabdc12ffff8a334f3c868bcbcb02a91e29a4d10f8576d82396ad94a92bd2cbc28b9e8dc70e2d646577bb76cd380a639cdbde0134b5e9357af54091f0a7bd20fece1cf67f7182c721a3917f9f123fdd6fa81909c8c169aaa4eb6fb1b78ff59fef1fbbeef9bd4dcee4ccf45eec4d5dff7cbef0b1f7d4b83ed464c5a0bb69fa598ac89ee467328a7af89cce4f5ef9556d37d6718f63d4683ff9296f5a6bf7128728c22b121cda891c6f88e82162d0e52f052b2854198cbfdbf7b707c843a6fd4e0fd33307f7a2eb6688a53abe922aab2dc687c92f9d373916a2cee2ce73db2a0831373c623cfc0ba194842facff28f9fcc391950c390f9d373718593ee1a85434c31c97579bd1ee64fcf45292a1c0c0f903fcb3f8eb2e671b17ce1fce9b90895168735c361ff59fe719ddd950f4ccfc5fd9494b3f29d7bef83fee82483174944383e59ef9e3f3d1751d49b8eef3adc3fcb29903d635c507c5cc8d89921ba80138461f559c9a47a004db68ff37bef77efbdf708a34e5b09e36cfc755bdd61a991c6922f92b5a5e90bbf291c96aa9d873f0e52ae7d737a604c2e2773bc1a4453efbaadea94a19508df4dd3ecfeddfbe55d8747e8bdf7ded3ded331ddf9e69b1bb9df5ea7e6b3d49ee6de5781eceab7461a4bfa680efb9deade30e7b39ff7de7befbd53c562841289f30f4d3dac91445a68b8795a1960d1c0bdacec0a18d1af2ad43c0a1282d2b93bace50dc54c762567991501c94809a3cde5c8e77b31a528d7b4ac28f4a87d20381dbd106b5a91753737143ed1ee97ca11bb77f78789372ca72849599bad197c25645ba8e0e8548d9223dcafc1904e0e5ad605d20b2995b8f795dd4b6ba16675718b4a9f43e331aedba854458d34c60d853629f879ae37fd6da8c98b0362533bc145a467c28eb20b25aaa84505544bb72ae4d93095d4a2f2bd35619ff21e30434ac20b5a3a9963c1e2ece54c3c45effd5dea5a1126c513c896136685b24233b8217763ac6e0cab7ce931e9dd770e6dece2b5d6b7026b4ebd690dac29ce64224c087e5836e0705ad0d9dca125e3be963a707f5b3094cdb0ea6a512e85ec56303be1f57375aa3eadb810526ed5ddd489284da8b414a984151db17eca193a2818253aa64fd30e48464e8f8d6f8e21075cb7531568933b177693a20ce86d4696953bd7eef9c545f9ad498d89294df1d680b05240c971c99d5004f872d444a7a473a9f9b1425bbeb87ac68da0242a438b6922597df7efffa2a0c6769415285da113041dc255f1d530a9a0966029bb9fd81f522e19ac3f38bfbaa7e15b8da732a63821a9c02f19455f5a2148b73f48cfcf3cefbd0d3766cdb040b2302967905bec0663df98ec84a4b04bb7c5fb5bc290c9a1a6d80b2a8bdbac64983396564ec28e825c3cd96003a2428be6ba5ea236061062caca18b9c911a5080a72f94c17e7e213ef27dcfddb35e90e5453dfc90a0c210fb7c6514cecae0ee739b3e4f2f7c42e2b8529daa26209353dd8c85e549548ca5d9182755b6daad5c3baad36b142295025d692bac26e70adb96b24ac153d6ffed4e0a466f9cb74d505a8ea02b4adad4dcddb427b5cf8447dad3d6b84e0baa596b514f9385ff80ffee350b7564126fe7c5270d1027954705d3532ec9d8a1a4451b528d755e3b861a3c9d2a1c82cfd1c1dcf39a76362119207fd8b4efce1bcbe0624c03c264f9ad5cadf5be275d382417a7d7c2b4fd8a6d7bffef56e918b94c82eabfbecb5e674cc3997e31f076d2bcea66448bd88ba8262f1d4e464d4748209e7863999a53915157f4a78496f4868476146d6a22a51d5d0530a241441423a41723340722b27029d793f713e6a3d623c5d3b593ad09c281c2513286e786c9a35712dcd38149abd9939269b0c590c1666eb45ea32d5b2c432b4e2b3b451817b51c2254bf425eb526c0451cc82275f812e00adfe9e7e4cd9a23e279f89bdb718bd37659edf8d3b3cb73b1a76607530e8a87354724e714770406f396e6ecc36b7a50dc01a37d8e0d6d26035b1b42bda168de9d9d3aca9ec882c686c47ac39a3cd25ac2d09969571f7f5e6958615bb5ebbb6624cad4f184d2f8e5c0471ed6c35b56cb864d9486265ab77d4b7ab342bb1e955ba15ad31fd2df49941130647170459b0534193821a2e13d4484a908de00e82b707d21c106be0cac0d602d392a7024d091c21103462e780a608361712b6e4316bc05d016f04a419c506b88e6c894ce9674853882301828a3b013441acb900b0969cb31fee3cbc81a411c53a5c3fb63ca6f2b3a389e3884350bc336c7ea1da0baca6fc80af9ea7eb6dfc38971c47a0edf948cf4531d9755db7e438c28223f6fdaf2b22bb34f2c7ae04aeebba9d3b90c655bb34775dd7a51d705d07b8f2cb5dba4bba0b5f1e83058bf76f676ae945dcc922f39bda7b99f7de63c8bc2ffc5bee3bf17b3fcf2927961ecae1ba95c650a99132fd0c4a6da12eb7eb8617bebf1cfff88596e68a579dd8d527ea665d4240a4d45c5e955a56213dd373719bfc514d7362d0a69c512b88ad82020d0da5732d4ca668180222633423c50b4688ab6a2b1388cac114594185e06e40f1ceb55191f6d2f25080aea2270428716622eb84d7de5e5d5ed4068e0e61bd640afd6fef239d3160e7a4350be839634b025aad0f63dd72ceb91cd51c40768a19316a11f179a16d58425a42f8285504d08b29c2b904005603e2aa0940cfd4cb4ccb47bae728e6834ccf32b16787e981eebd37d59c735a7621d83408ef9cf3b78873ce8f34fd875e887d2427a7430e0bf3231be331f722afb5748cb170506f38dc6013e3fcd00c719832c2ac0d2c07f34d98c9bc26be587c8f8a4de779e1266872b67cd387d38ff24d1ccc7cb3b6d2f986d2b4cf952e397aa980a694eeb03971cdeded64dd7be788e253166155c1314d7ad58956fbbaadeac4b9fce572b5a7639ea53c162f3462f0c49975ec14eb52dd32f029cd07ad811ebb2c510f96130c216bc74629e14f455a8d40ab568b8ee8a63fdc6938fc7f37fc5fb92bdb56970dd573e8e76b9fd47befb3a9128fca0a67dabd7339dcb40d4c15613956415a46494e6701811b00d549058fd9a8c48c9e886606640700631904008060204681204aa212c70d1400071fac605478446c5050481209c4c58030100a8481214118088401208662488eee389239dd00be5b346fbf2664dad4959b426ef3d36e12a3e69c69d34a362dfd3143123335e526a9d3f4bc9b88b83937d56c944d5bbf09326d76a52629a7f9b59ba9f0666e02666b11e6d26f82459a9bb949c86dfaae266adc9495361bcbe6e56b82459bba5353ca69fa5a4d224ce6bc884cdba279fb376191a6aedc2c749b9e76131537e54d9b8ca279f9374392a6aed424ec96f9b5cf44859a99c8662bd1dcec6b8653da6cca4d524ef3733551a1a65cda642d376d5f336452e66e0a9394d3f4bd9a54a829136d1a89e6a5bf09993477e7a694d3f4b49b89a829136db2ca336dbf32c125cdcda959e8067d46856393e95b4d46d9b4fc9b604973776e16759b9e7613316ae6a24d56a2b9f5c00c8b9ed99d9a859dcdafd544859a336993956c5afe26c8b4a9999a25bbcddfdd44849b3293a6916c5afa66c22264eeca4d6957f3f76e52a1a65c9204135889d6a06f4141df525b832e837196a3a406f5982b9601e8a9261ebc295a34b9cce6e869c6cb9a3eda4c230ecc6fbba92535c9394dafab89869ab3d266936cda794d7069b34d6e12719b2fab990637f392665b01e6ce3f131cd2dc4a9b649ca6df6a22c54d79b4d95436af7e1314d2d4353765dca697dd2441cd5968d3549a79f791098736f564cd32b7e96735d1505356d26413cdbbbf198e6eea494da24ef3673591e0600ed0c36a3ac1deccb7792616d4245b347d46d3885fc103713f5e56280e98b62bc29c532722cc57e313a3d4b393ba20569acd8a5b71d8cb6e394e597778334da6f7f1b377d02c7a2a0c8bf4f4e3728807a9fb73a8edeb0986fba42278739d41d03bb8e2a7c9bc8afa82599048162a663e9a18b11d14cf75cdb8c92a8cb207abdfac596081af5bce65561c489372aa9dbae688b650a82c2a07aef53e3f6eeebacd5ae1582d8fe200bea9a949cbfde1874ed55f3f174b19c532d3d276f10568d1c7dc9fe44f6ffbcb8f2654db1347e40bd880673ee4b531443d4483d9bc072e6f276acb9eab50ce524e9b1f2d09e75ba4a736026f329ec2e85007e0faf8ffd6fb1ba995e0b4727e788ac285599ef767a62626ab47471eac597ae632aded3752f92782ed7a2a80d74bc2299389500b58d550975faa36190b78e492af8f1d9890b460a0a4cf862658be95b123724c8a2c43b9a93b7cf67d7e8131314101d12c4ed552eb3dbe856a120958faaeeb8913e7e2ddfda1f20a195f0186cb09d554fafc0a2c77556af9dfc96358b049513efec322f222bbe05b90bdbe5c2038369babf365a2354f659a889607fd55b8500cb129b7c0844587af94d239a08e8073f4c86ccbe536c5842887532ed943e35a990b2097238c5da385f0ebb228b1d7a042d472ad4bea0597342cae2a20645229a99651667b80a07bd70f6d8b1879eed078e04ab1bb2c708b39901d4e9beb62be66f1bb2f946792cdedb518f86343403f4091a66ba3c7e90119177f8d639f33afd7acf941e89501f075c9ecbad963afdcbfc0b58649933b7c005c0277f67e2c7ca0fc1bee8957270801fec39706669a38755ef8e12b31decda15ae4310fa4a1a078f5bd8070fb4eba2c9974ee34aa410723ce6dde7845290a5038de09d547961ee51c10eb3adf6cc02dfb1ebf3c4cc7568bbbafa18bbe30edf19bd055b9b2a259c1b5e3dbc1bbafd941df104d6cf7b8e8eef1e3d56bcf7d6f75cc0dad4060ee87491698010f320276834be7923b5af621e463779d743d6f1fa2be281e4227ab3b427290514a61546e996b642a69e6d00929a64b6dafdb31d31047df71f99ad441028cb19299e4e105b8557d23c005b5bc736d914e10cd3bf437d9d72d2b1db0c70efd8268c477c7bbada14b93826ac4ae3dfe6d8f6eb405d18c433b9c3bd5e8a253c3b471dd960fa5961409305eda6c01c16f7d9e339aef287a0e67ef56b5c85a35fc222cf61a8aa08bf2b64e7892d2bbfda477aad682530d37c90426a6df1d2c9ae22ed8adc6fa79f723483c998bb9f8c4e85b357e3055690e0c59858fcd8e14a310dd6305cbde2923b939d29ac6ea2a075904fa8a44cf42cb8beee4a13b2a56ff1ede64415a900c380bd14e5d60ef52220be08ca8558a79d2bf53704e645714ad8204ed4960d31cfd3a91120d52163a099222faf273e322417bf9cf94f656b4054a78815bd693ebe28b12c4fc27f8e6d2f57418a7a788bf6a3d56bf9e3f5034fdacff7f1d30115fd768d438f95d673fc2170a349b028ab4361aab73ffd6d3002c379bfc206731c5a683c16dcaab24d36e7462dee0379605245434ec861056e30652bfedf5c05103a9c6d3154a8505541bb7521055864344d4acc04917c64881b2c482a3bed3c5749338e161a41f8b8a0062bbf014e67388d248d90cb8396a50016a98c0811ad8358820e4344a5f198e775e3792de29dbf0632825fa41feaac5b600d3a8cce527fa7b16b7631fff7dcdfa6a9c24e06c8d42d9dc5393c7219c0532b83791b5fac3a8bab223e903c41872d80d686b9dffc95cd80e57f8d09b91280bf17b8689a8660446a3142b4bb074e6ca48e98995d519db88eb67ecd3cbb201eff9e22e05bfa272cd0b451befef2b98ecb696b58f367f15b902c54f110a8eb49408ff8825e565e40945f96b408af7d90f650dfc16e565b10f60fa437b876d3a7d2bf2899164494e411e12a9da4e0a278aef0498290ca21f75dda41778c235afa2a151570e5552006c94d988cccae21be79ac257dec863a933749eb8b6460f9b9b3893eb4214cb48647c29d4d6fa9e1c52e410d94430e203104230033e2519b5ee6842c85e514bba120bee8dbe31a0c736e8d8f9a166a5f0f169cd12e786828c419bf25f76777ebec41f73c447a5606fff65e919bcea32aa1c541a706ef93f810a6b68f09c7ddb0f394a17a804ffbbbaa173a19f75224e420a2e486417d4dc27e9ea6730f1beae46cad66ee05531003e64c0a625ded44a3cc44b47c02e47912028e224ee2d6a499f55f1a5abcdeb7027694315ecf231729c2cbadbf56faca50e34ec3244e3031b133e70f4c1afa8b5e64e6eb39d17023138cb0f7cbf781bceca17209cc8edfb624cb239dcac20b40ffd9a67f7cb1c1a865bd097e831e3427df50add2a17c918646ac8736440869332a11f8e1052d6d45f069e8084121b72eaca06f7c4e900caa57406690f20945e6b2f6f9017bcbb4d867cf1445e2eb7845b9c454b7e6681ba3a36c8cd51e66a6ca9efe42d59e59d39a8841eca1512bc44b7901ad4bba1d1693791991c42bf41a9a94e12a86e900ecba31f7347ed8c95b5878e24a2012daaf09c587ab610f50d30f010f439955ed48015b3aeb121298bff5f400ed805c4eed6bc8accaa073c36dfb3b9f581bf10c078e1545b77fd65560b8500e9b1e3dd2b38056fc0ea571bb08e6a430826db8a6f8bc104354c963ca04ed6df2e3f7854a28bf8ed429b99f7121e0418dd7116e72a4fcbc5161f67d43c1e5bffb9f7a726725c090cf4a2432eb90feef702cb2cf792814ef8e5f77a046a469f6f7ccf98711867d678b0109e3bbe4959b6935e204659606a6122d6ff97282c544d56f205dc56d73814c8264de227ffb6daf3ccc2dd42f5e409ac29ffac93ac1f6d9c031190c695e17e7ec5bbe35bf42bbe94550bacc61466bc7185d12a73d385751dad2a7992a4613e4e0646ae3a7a85d313b24534aa822f2c61b4e1bb8a3218c79ee81cfb2236c3edab34451a41fb444376bd42d5622fe855ec0e4be387e760fdb2af0e9c3d5e3bc4dafec564668aa9f25f45a1ffc3e1bf2ce606163f680d7b5f7f666adf9662508ea09d4e305167ebef85cab8375ae0db1b28ca20f62e85098259b20f247bf32dae75ce613dc8d5005829ee24fd9787890e8af716a5374e70faabd91fd6d8614704197bd75a8efcdfc6d1c2e05cb52c75be19852667998d0932cbc931bc393aab7cefec8e64d64144448e752aab91b4437f186969739d734547c48c9ca01d7e8349352e26e23e4b9420c2224023586143a45018088b9f589a7aa0670ab82b8496f2a361fba8047d2daca42f1eb311990b48eabf6d90ede124cc64d89b590a82842c4726a1d7482a69677dd8b1ad6343a25a294e19274dd0dbfce74b8c3668bca3b9f5d21c667edae8ca19a2ec243ddd44ecb9883ede90f055d5a6c33116791b6e95585513fc90269df23fa841b5fbc1d6e5f32548ae6ec366e67e3122af9c613ff0fb4c59e7a052b6f0d88aaf26a28eb800543c99802e09af0c4bb00534f032c1d2915b13d121d3375c5cd5e481a78ef1291a4b15f1a0e9e6c335a6d43d47809c512d55841ac67c503f8615f06705be14ebb6fc845189fa7517120aa30e81302eda0e50e724a96497d889994385e745125ed76c048fae8279053470d0f3a6608a815e9d7053c1d80c21a2dbac23df98c8fbe5498732a905fe451752f99a7e17ab12fb3d808501fc27013600e9e6083e9a75173c2cc25f4b1f0d50431867369033498aaf0edd43e7f368dabf8df07d99b4866bd59f966e9a6848f1deeca9fb211132c1c2e103980d48ff5317211540fdc24caff7eaffb88b50d4fc5b1fdfbb2ff34313eb7d856aad66feff66c149b0ec3152025438b259186b7ceb1ec48686437957ad6701f6d8826f6eca9f2463b4f0c351bbda30a86727853588fba6e77414792f07d8d54a316cfb17a84dab0cbc9d4c0440cc744c58c7924dced27aff6ca520be21caf68daf250622260556ec6b00aebe1e0c2baa66ba2b7033e4864d4bfc5d30bc16fd2f1bd194c6b69cccf645a60a7333d58d60291a771eb7376b5262c1369e0c4270ee629d58c77e2c11689c01b6ead5a738353a75f4fbe47763203f9fad4716399e1c47d34c7ae3c9f825424fa4d0b74eb7d62cbc7fb1079b5c3b9314bddcf403b26fe5ee2bb9af4c9e61c2b3604b9c0738d7abca83866ef4dbab83aa70844419a4e655c68c872a26018c1d6ccaf60d8744b36861efefd2891c1d3b244f1f102313a5968c1ba2a47c4c828f8ae38750f7dec29d3a8d9428cb369af16e6e70f598f58a48738211b29111c9434409204efca0c7794e3f23f7cc88d0aac0c2ecbfe16620472dc68f830f894b01ff9d150c82d08519996c598a950da22b2ac75892979816517a9b812e39b05b80c7cd237545e408ecda959aef5913aeb8a17354e88a5d888bc8a0e313514c0f03abe5b66db43689de6873c3880c9d352f1a44b076d3cfd10ba7b27aab51775cf3c8a84f03b7851b9831ff87caf6db61b60a647c9f665828017b70623bfa674fa32e29e4215fde1ca374e8374b46d4285452ae89bc052b92da9e47e632b4c356c689ba02664ba616d32d4ad4721e27380858230a7929b641f7750c444f51402ec9fd9b2e1252b271b486db5258b013ed719e9176d036e90f853bc9d6c81b58479f8927bfc73160f97b7865f66b0a47a108cc8f43b91b84f4151a7f0f2f99c72e2d5134e53bdc2bddd05a44cf961921b904c5aaef4468e4ae74232b858b52c3b93c2b9825c93d6548e1f48ff3f2021869b08b15f3bac458cb0cb8084658d97a2b427898706b7a91905ee77105295cd9d41e30ae6d3d1a255ec9c6f921b704d782e9fc7b34924f0ac30719f58c5ced3d3e6656e2d6d8beea3e74b5d308bbfb4001516544a3d4eec773568d3e57b231357ee7b9688deb851cbacd1fb846f8d4268165d458831d88b7c45305291b5c88a2331b915208c0f2ad11f772703f09cacb33e3fc102b6a3896e271643d70846f54766db86e8528f1bd1297089323646a23f2406c114725287ff14afaea2485c3853894c9e3c2222a1411167e47a6e62c9a2effce23220901ad463c069f6941e6383b631727f4dc33dc18c824577e11c2f9079069e138dff49a1380a6e95ba750e32c3744aa4a58831f871cffb405c5f644c6c94e4159114983d1b4d182af995e443cb4387a2b5fc8132f4009511bb910171fd7212918c1c889cdb3b9ceaedd0bb13f2f56082913179ac81bf011236a0a362036f42d102c5630a40d05a644f0429a2e9411e6a0d3ff1b6688e17b6a956f0ca165c520ba6a1fc38bd0cd3049614851e280f050a3f6ad56df153443f89d321ce2423e864dd143c5fc5c137369d51c5134a6218a78c001a20c3743624101d1e6b498219e4983b0c731acdc0e467e8710c6ef2d16a2e24943cfb51b42d30cab9203f5fe1d337351cd21da0e95e09ccf20780d1d2a35c89a4fab9c41e356233a0fb71a3c8c293642ecacc391db54db477b2f88d5af8d93cd8540887e9f0ff160053511db65e921f3dd4a200e2d8cc74150daaa8f2a702547fe10371d39068105f2a1f29dd2409bf3b3de3467446cf180733fd6514421aaa4917cf12b0189b678848b9ab3113b5ccc9b450ed0aade232d8a844f55418b069edd653eccbaeb58c9e206ab0064d518011e5054067686175daf358094a445353024c3fa77e4c1be2cb8233a21d7ecfaced3fa125624a192bef374c1e5573771b1d44a03249539423236e582d0f535a17bfe2b22885afe4433aeeb42fe4ca54c90e4dd1cb0a7d5ad2af27bef0fee2aede1117669f5e4d2fff3e40cb60ef33842d210ede1f1bcc98a552c0b6f5e9e403c9bb957a44db15c017b7c9724e5bf333d3027c2237b398fcd111ad6c3e4bda931d893255eff057e75fdbb7b995c28a9de6bbae5bd37137cefa0bf159a43b2bd4e5fb3deaa56a37787c099c7208320af5ae91ade18e9bb3b68da538c13b8800c17dece8e6238a3e10c7715364f06cef0dbe606da90520bae682dd015c484ee3c76312a3b6cbcc3d180d7a2e042a06939b970f294dc8384bf599782d1bbc28cb1cb146d0d11a4dddd7e1f6e32133e2b641cb0120bfd51f07c6f01d2bc459342292eb81802d4e7ed74d3a1fd3fc892f1b0c89409d403e8430c72ca7a587260600135e39784dcb4eeb136753cb21f78a5d67cefa3949af547c2da385f845690fda3e93734c19c0dc80d79cb8741811ea017a70e850357f57f4948d3a06985df569a422216870fb482874148034a0fc0f063eec2665848841e5661ec96118d0c0e93902855299dba11278206a61f8e366ad6a2620f1437fecce6646eabc21f3b7157a354eacc7d5106f6084235dc04e40d2fbc6d94a90617b7e4a6421a27b31ce7b139209258b42ab32c7a573d28974ca359ac4f6458b5001103de354b1cb6ffa9706b4cf3136875eda80b6c811700e0a246aba26c0bb396bce6ea21e9276d0d26529e3b55839a3257814420fa720dac32552e75bc766a3772bc5760161f89f93360ec257802b9fcdf0f115da962171eeb2b5ef855c6740118c8848271af549990022fcc85909f96e48ccd9bce518466a9eab68ce3a560e7f535a6e9d5742b0c42fde9c78b4d2c438645eca91243643a1cad30f6088978d291c55bfe70a553a94e7db431db88048a880f311d576195d59849c741c8a1d3fd02a78bdd237be6d6d2518a3a08f264d531876e9cf71a988f4d1dc6c2e26511b517ea380a3874373f13753032833ec4e874320919355d6e9e3ae56463ec2f511706ea30ab8a7d94ef12587fb63ac4b61e6d117c08d529ce0fe547437939679c2f62659bba7af00461245863a8b3d6cca0d9e59cd5a1a6ec697a79ead8d3c343d85820b1d3da02d102901d1d3885656161877b3f782327b43b2a942772cf97252b3bd2dd1930224aaed8c9b420280f3134bfd5e8b754ba8bc50e7d171102903b2a0d61f87f8e89395473285f77a8a214cb2a9a3babb014c8cf9ab74868029474a6331d4cf19d77ae2e7375fd3603a0a0b2dc1ddaaa4ed284f947771bb17f6c9f95419e774a501a5000d9a8a80c7d09053c8b1bcdd0adbe4435d75e29d8bfd44aeb5e421374740923e5d92157eee20e1d475cab68b7d334f88e78f47e65e4ee54231174ed2a162a19188cf11c4cb4e8e3d23be89aee2e9ef0d5f936416ac9ad89e0545b9ce40e485b3d7917006820d3dda9c596429fb4fa3d8d227fe19f88a04711c3c63aad343be72c290e259c7dafcc6cda5301517f4ea18b43eadad1a3f5dff3c7cc0cf950f42de4b5250d29874393b858f30654fc56fc97493864d942ac48ad04133eb93a7be178be46f38a5ef0f3d28c358b383e28bb8f1548a1a93d652816eb3b2e755843d8560f5ad463e44d7660d034980b68dd55a66f2a1b09a429aac534605f9461b7b2f2d6b521c34d78621551973c577b19b149fba2cd0a01ab52611e89046b3404fabc40464c00c2f10b61eb04bd490e9a4a735ac45e7cf1fc57cddb56eb797ab1903b7476ef04ddb73579dbdf29ebb2bcc409f048cc68ca5c5b483ba579826e8fe0595dd0a058e5779094f8dda0f3fec5ac1f69099c23d21c25c498a8ab4a5d488954dcf997600aa9ca213f22d4b30691c589ffdd5638441caafce3f87f29068c03eb04c8ec999982ad09761c22c313a6f14d6e14357fd6814923e2b258006ae4616e8af2b45a36ec0aac4bbd1534b709dc0271a5ea6edad1be398696f5688f5d81f553328178344b1a5bf0330ad2cd604dc7b37f2901229a4a21443833766d624027f5d1c45e4ec328aaaaf0d56afce05d0f63725d7805d63ddf8cbcaffeca9d3f013edede3447f2de7cfc64ffabde9786baf031fd2f44da6124abf4f48c2782456367a10992fbcc9411fb8c3884392d4c35f7ab59825b880ee0be92be80d15f3024a626e3b21155ac4d33bdf0929b0be9f11c489f145a1216ae90868c4c761882240f2d53932b44bcadd21dd7014f2c69db7160a419429e66d7444e733db165b1c7364524d6b7d26492bbf21f8a54fd65c5605202cb4bc6d3228be83959b48aa430122162b13292cf10df66209498745efaa0ab726a0178b5a0157e47c2a91b88780fde1ea652de6cf2fca39415ac19e3eecdb650ea97e6d7e438ed8e71bfc57a118d6b4a7eb331792aa79cb6614cb4fdf05bd8ef3efedd5f44b8c341684724c89c163d198a96d27f0c1f289c577da6a0423848685969fe0bf1273e95deeee598301628470caf0f52f5af6af7467d0e7c58070f43306e338269138209c904bfb968d394ab3570e44882ab0d17c411e544c235448e16c52c9dbdc39196ebb7fdc432b3f5c263e9d9b1185663d57df65d7cc902f20e99a12e4c186937e6bcaf6b4b542768531bdc98422a61ca7f74e7f131f58ca7b4d6f158d665c0d03ec5ca87e25314c53e2dfd590a9ddc413738dc8dbb90a1e77e8b2f97e16f48c09e52f8f2a454b2ef67a19f2155c83aa9e1fdd9cfb2fbacc2ea79a4037603e282227bd6ba2a73f6b440e9e51b9081a6e2eb8f32159943efc35d03623ea32b529ed3e28e3ef97a6280d0a9f026604f7c1ab4995cf7505e77049240a78fcc34a8a31dc1a45e8558f6330dbe2d7430c4bf46c0cbe4db704128477af97f1be4f3633c004c757d130c96e23d3bfbf217bbf673c002c7b390c47988c489785c8cb2eb15e146a895fb3051597f76562289813f6c71ce18100638c89ac881b2b1ed30de78441ee8f2cb46059f017776d580f9861acef1587dc878b2b8bb12076731a7a19e05926f922b8de06b500560fdcec7287492160ece909c510bb1f2047cdd810006782296f7d7b120b6b9adbd5004341a792b6456f239250a1f4bd61502e46d4bce8b7d0d6251d8adb492e3d2d2e0014b329a48963c5ad8c496b7b06821f9b85441e3341f1e195f16b8a4ee828e0891621821742c3ffcc42bbe4c0f82a5c0ae5bae556bcd39cf10df2ee0bf10ffae6074b84b572c0520aebbc13211a406bd4d4054db8a0ffb377e0eba46e4089610842daf2dd59d7037f1b0e58cb79f301384637d425248d6f4fd9cbb87fce6f1a676faba08a0179bf3744cdf68beaea8a25df1f346af21891fa5e38fa86efcf6b513c4f2ca20df8060e78ca138a41faed1bb023fddded97321fd4508898d0c449c8865126a03ca2a17256415e6a62890e18938360be0f5095d283531925d3e1cc300b3041add4644d2b35edf42dc7e3b31b820ce7875ec72f34bc8391063f6f2fd1250e9a01c95b4750d164dca78a37dc827e38a1061b7806e53fc986fc716116d4fa4b836946f2929e8a3c416ec2c75ca5f4a5aef82dd47a4877acf5d2a5d3928b405c81df4de5f6eda7aa8b58b204598eff38f1be79e39b5194f7fdc38f72bdb2ba853d4064a694e6f8c673dda9c7bda2f0f77a33a405f70005d4d141a96a2a0a6b2693b18c7c2fea1b8e92bf7114787f4facb5d1d534f40769b6857bff8313388b89209fdfe8e3ed493ca132eb90b168ebc3448fa0680a4f2209fc2bac035d638d1afa123a3c46526c4a369e2b19b185b775d12f965c4be5be203c15124280fe0783a1c1f116d70d06fa54bc9a9f31615d1f7824f3343a9e31d69acd64f41bcebb5112ca3a36dd9a713ec66a6989fd99c2a34a49a4f51f4da1adb5c1196394919155bf9035f61450645f77942d4ee2527e656e2f1b8e5170764a158e19d4f21d42e83e0ef2b81e9f0ac81a176a79ceca28016fb48d5a69bab3421d7819ecc96eaca09c0b1b41ccd98691c62f1e657f52926d9132f9b53c4724a67ee026c4cc60cb333a500f438dd23300344eeb4a775dcac8018b4abadc46960f7aaa213806b646750ba9bd4efb4fc5a665a9cc45a3d118dac47fa09e733022ea6809442ae2ef4784d102d1bbf39c3ae02511888c27934d908c02be546e1cb34c6d138af7b4010aaf0528113e0a2c5f7180d980e913914af436bb06b12efea3ece6db048ea9564d15d578f90cc47cbd5c00c72dcc6b45b186a265c37468d126675a407b002a60da8e551b101106a6eeca3a2e3fe2bdb7b6f5c1ab09540e6c40952c086eba541cdcc8b70b885a09d05a1707c0ec7d7cae6b62e27d67649fdf918c6250f9f1691b67d07314f34580b9b76fb8c6277e1d536ae9aaa70c9fa3b37685ae78edf57623552309645b250d4a9927a7970f03d8f6c5a76958ec3758a40e8d78cc9b6de0f89b75c03b3386c4baa0609d3d1dd1d3335e347c106b16d5474b616624db3d8c3c1802ba20627d73473c0082fd57f89149e0c0fac285b80b0a601e961ec672652bea3719bf5a75590e66b6e4f2065928ceb004aa7b42551700e6d7517809894607c06924cd8e4165c80adf1254b9a50df2f0525884a9c12aeb8009904c4dbb276b52e26b666544e26b02f14cc0db59369902bbb551cb6a077e97ad55fec6c0b1f681444ca2463510b560249023b02366c40df1f24bac312f258944d5f504e241c2b007845849628b7b71d1daf18afa2103af0cd2ec75bcc1d5150b747969566e4e5239317d366dc4a6630be1ec66a55c3fefc33e6dffe9fbec7f1c2b79e75d548c337c75bccfff3aa8c00bbb7afec82ef8ea574ab2cdbf3a7000324d2d3f255d615a581558e62b25cdaa412644bd7af0daf7201a3d1427171864ca17a32e09413d2b098a2556e585aff7743cf59ebeb4b18d6468f8ea791eaff6ddedbbe81ee2426cc8ea398daddb5d65abbc7d3d861d45abbbbbbf67fa90ddfcbf116dd49bac125bac30e0fa720a17eb57edda979fc305eac680d30b17487a4a25d33c2284529473071274d93b00b0f4311f12dd5fe9fba3c1371f732ecf8e1be6b3a091c2fdedefe11d188b9cb3978ec557ddcb08f93176b77272948ce82a4389900921cde0f0dd54a08b6eb4d9cb60573ce097fd0c0cab62cd956b258ded73d9c937e1f42f30bd9197e7e86bc107f2e042467134747926920a78e1faed6d11718ab66c57225a94d7a3071b2b343d71f342c584e068f914cdd8365041d5a2ea910818c3051c0a9ac2d05590d969578ec5d91c8e347d19843007f3f043c3a70884b3cf6ac7262477cfce8386e65fd2d8ebe8df5bb67b9a9bcb78a27e2eec80ea80e872e664e4e8585dc480c772be2e4d0e250c075bd55b959db46b041d784d472d266d0e25854c4959ce599ad2853231b4bb11dbb12c3a22071221a3604b66382e6cba504dcc9160ec48b45171b17d9d697364b0b2a6b8a95745564d55365430533f596947a4346d141b965cdb06057ad55eac9a9aae46444fd99369b9624dc5298dc4446d82dc1893806525844f99bf44b24a086043385d09c9088b01c24e6014c1e1354721f9048a6bf000e456a32273433cdd199a12026b962b5a952ad2d6529e44e8f5b929d988a9c1619163ea4297de1e4847d29395b924eb93382996c11f342d4c8ad8435ac0e47280913f7fbd2912d45148d5c85585bfa977688248b6c455ad4b789ee0eae1047c393826ca1857596d080951ec84d4b9435db179024a8ef02eb7f39e5ca4cdbca17099833ab01e683902f159025105e6849cfabb3e8bafc3a7e148d1af2b2feffff0b0ec7de940a73141e7b536a89daab996021b889a93d293ef389854982a4e8cc27b347eda14632b2d6dafdfdddb33b5b079420ebf62102377bb6217089eed0b32680fe0fb81a2698ddcd5a09b33be052311af09db3528e21d1c3f7887e9f9d81def61de5dc50daac75d6295cc049e7b4426667943f4832bf17e9105a924af32aedcaba64f87e055e65f684448745f2ebe5456e63975e5b1c991088b73aa81e6c8b97e2fb62d3863901a3eef01c167ccf1d7abbc30b05970104ccce067434cfff582de067476048f41bdd347cb5463a406ba0a001afcbf1166f8005b82fd11d62953f02ac452e1cdea69b071812ad570dad5d80576b6c556670a266f1fbb56badadc90f01b85610e0fff68691e80e7fdbfd9fde323670bcc57f28a1df538a9461efa92bf8796bf48cbeb7d65a6badf5084917a3392b185e8e1cfaccb82569e9690742c78a6aab35d644c3900845a6f5920bc0f304e0e2e9ffde938cf03d67f4b66fa81daddf1dc745fc69440323bbd655baa030841349a6f60da609c69904b274004deb926b41c21641473651296120d44e98bc4842b878ba7cf8e7051071764f186a9a4e2a7e46acc07698da96a78f0677291ec0cec490bc5c50533b9a8a9bce5c377aa6db923a2714a40d4e0b16eba428072ba56a8347d8446601a1ccc4d5953db390b8b0484614b0c302dd98d89a99cbd83382b6295c9a9112c8d4868e54d7768b64daf4c1e91dcc444549e5b1f00839210bc8e9dafe5425d3625e468046ff5d648cc79221c3257f1c66c9cdb5b77e5c94866dcf57248f3b4461c7186369d5b1bbbb94e9f8d831c6581a3571dc81e32dbe52e667ac2fdeffd78e1dbb14e7fffdb1b4e597ddfd1d3f5e1707184dcbf835b9fef70cf6db43a2d3a1401251b9d67860338339b19d6c5328158d454ece2763fc02344a860753249373e683d9629cb62dda490c3eda2b4fcfa8fd7f779ae1dfb87d6fd7ffff8f14cc4477f8ff8fdd23ea83517c043a30fe3788a33241fcff1edd39feebffd1110c5f6ffb8e02fdffffffffffffbf1cc5e78b16a56da1b21b632194c10731af0604373176aa2060236b5173c64742fbbd1ae7d7d821c0b177752e5fe4389c6862317c4dbe75ce1716e4c90c95a86153d94a71c4d8871d023153714691cd6949b1b9f546f8c681a618d5c72d286e09dfbc608415a22c038b42455cf73eab0035f634b622e9670643a547aca402da98148d00435b5b7163e4d9b363a8d211638cb1c773439f4b2547814409e88a4b69878413f9abc993e6996c95aca4e02d8ff6ffffff038f1f4523d4fd757777777777778fe7c6b126517d7bbbc11db46bca8ab6f9482579ae34212671d9a757ea00d6b1ffbb61d654173a506bcd517cbe2e26f48c73d65a6bad37f27edfcbf1167dc3854b74873fadb526c14e6badb5d646a23bfc6dcff0fd1bdecf66f3c49ad2acd535fa81820574e3120707e3faffff7f48741f47f105e1a8e566acaab4960600925a36a46a0a69f7844463c601cc75ef330aa130e7d3a6a40d08ad20e546aa83d285a2a2f47227b62b84cb5758746a898211c2c8f214143556364d0366272e73dc9b38c3c5efa93a63bc7593f6e8781a73667a9cf35256723c24628cb163ec9f947376c78e1d3bc638e39c7334e79c73ce3963c78e3d3af45edfe79c73ceae75ce39e79cb3fe9cb331bf4663474dcb04da57f73e9f1c31c618638cb114e36bcdd75178ec5d955333fceeb5a41c9c16eb1b5ad902472a65216327ea3c586d316e72c18cd984b420a249d151b26518f9be8656a8519944915c6b84946341bb0e28c153311af09d3dbc767def2c5c200c4f2ab61595faf0c34f11aeb9e8d512568b0cdfafc0db81d5934b0c3b54663fb8484c264c040dcf16162868008b0f668ddef6fd398b38fb695241f3a62ce15e198830d0ba62027a823b71136a18120370b56b6004852fc0cfd92bc886c86d050d2f6699e30e99a0028a8888042d0d8f032a5ed98856b5e70ac2f5524a95a65252a8bda9704dad6aaaf28aae401bb0d0964d6ccb7364b47d197ace6ea6bad07daab51e7182426464b6eda9424137e0a0972b8d8a123a2259ad1c6b42017f6fb846a23bfc6dff81c0e424cbfecca99c9568a86c00c646a2046c6a666aab85a3b46d52158d50080c84a1158abba854ad9e470020982d00f3191c401cc7a120c759b51514000920d24058904034404c540c8a83c2004118068602c13020140a00200863480ce949d031b70400f1c3b9c8a4976d6f525fcc4dd8bd539e9aed3dcf2b46ea0c0954c9cdcf859f9acbe04af3438b7687b61882f9cb465ce0d636ef6030be0f62c8a432051425871fe924ed3004c0f8c652edd37ce454c4dbdc420c82dc809246810cccc6106e022f32a199dd15f6392aece8c0689aa511d8de1a1d1aaf5792470bbcb44cd108667dfe4c805dc20fc3089c3c9bd2217e9880af5f614c5cbdb339f417ebea7138c306c99b4e7ac091f56c22313b723d7a0e44132939293554d5b724fd6c56c83aa218ceda32a0dc8694066d2613df367ef78904424cd02605cfc47f703000741699da207bfcdf221f21bf4c9942356a72a6bcd105de3ca2613a5a698e7eb02afac0f9c54dc5c0ac87f12e50e78e60752275e992791866556f64c7816771a2230fb51cd887ae9b1afddf6f67c1b727512144e82f61403e1544f7715fbc81e4ddda7baf3c6b709e6343945317f05cdb01df0e0913c3b7aff0e6f6a8d44aeff8d4b736b5dde92580266854d6308b0eb668a8c272f30ba436b9049af6768bf290aa317dff50edea8f085c8b3be2c01c209f4574c8f4faad05de817403a80b22b5db1c0c1dd95152c7430dcef6c5ed06efbb963310948faf3671c8852c7c55345c0d9e592e325e35cf044535380d02c59372c00eda2be5a498dc59cda91aac61d0d8a645e5a77792a8f44856ab88edcbdab337245f96a3fb3a540d86498d6bcfc1a02883489d2f51628ea9c17c6e6e6f9e05563b2241969d2530ab0667d32fbe6cf357222a3b0dba4f25ecd6bc78f90f41812f13f84a0c7c8f1be97c8129473788e252f6eb86b8c61bf5efde3f7f9db4c813187f2113d6ff92b1f7acd15db0c9b5c3b7031a1fb89c4b509a89d9e15f77bc6f5f66e24a796d2949daf0f3699cf5ed4ee03a32b42b32f1522ea6effd1485aed30044d171dcc3be79836d67d8d9ebfda8cec523f40c20fa81085e167041341168b79b4127471d02575dd195db75e071ff63eb46bc3f0741dc23a1cc4ccf04fe45166724fbc107a7a3efcdfbec88b7a25df05d277cba1b185ee8d10ebbd6475b03bcabeaab3607a1f21acf34c726ce5b279af1f1a675bd90ff399cdaac7802a2195539adac02911e4f8e0d466ea182b3017449c6c8c36652bb050897fe050ba6bdf444ace5abe07d1f74ed758bae6fb37094f883938187099700e9333f864110e8ac0e553b416ee60f3aac241cdb5503b53a3759263ac85bfef5b9d73f280217e8f2377f591f5c4e3d220248f982991dd5d8f4189de346f393271ae5ff3961cccc7d1a79013aab63d9af1cc63f305a546fd4b25fcc01ef9c61eeb9e2feaf11b564ed107ae2cd51e942e4583b386c06a2e74e4b090cca69ce9509ecb4544eab63ca29bfa2abc5f6a072fef24e4b07bf3cab73654fb637378a58f072d0fb1ca0f411db3bda6971a5879b134b3738604708774c9c15065910d1958a7ab6e2a2fcd549ca0b774c103d953f11106690d358254eed5f5dc1893432aa43c952f86a6da092d04b452706318bce0458b40fd61ccdeb46ae40240d727796ce20554ec2b7de415eb89ec53083dcda72c8d3786d5dfa3ed6408354c3a1c4c00378927d1aa6f40cb2bdb03142bb959b418623669237f1d0203581244c22846eb5c90c455da86598913548c4e6e3438a28ccb053ee4b06ee9ae43baad8175f8db8be41a273b235f3c97132210925d4862f5ab4fc2c70263de0a55d48fbc4a042b47e728adb256238c89e5e82a98f9f0925ad87ed9815ba457cad89007970814d17ab28ce26ebf7201557b2c331ebd54d70da9004d0172297b110af864c80cc28cb41425e71f3a2faa2025e2f6d81c2d3284afdc6519f7da4fe7c38c874b05b3377dac6bb089a1ce4a43d303657166ca4300e40b5e36c741a7206c85488f1545747764c2b187770902b0d81b059f375888394609e992a3807dc5d29bd85ee2a1c2404909f0190fd3b352b843e37c850f35ebf645de81f5f76e0ac1e2412b3a39835fe3bb8f6647406c3fc719fcfb07d2598e61497392132b677b00aa50fec1771af426f1fbe4fb007399721d886e72bf0152c40d4488729c0c848fa525cb4f53434e006ca02fa4de3f1413a2eaa2f05f2b9774dc1d8624d2816f6201ba1ea356850df0c5241426917d86c1b28eac209cc686aa20f524722a4c05a17c2e4e70fb22932b180dd880c02738d4746c4294b8de18486961531bfbf930f529983c5028809df17d879a0fc2326fdde677fdc0751916a300354442a8b42c2de26abe95666da70849fb7d46e19202b34d3fd02c37f7f4f0640d023dfd76e56d7b41dc15f19202f630ba94cd14d290f5e18a9e398efd011438cbbff7800e5efc1ca5fc51ba00d4a9a60bdd32feba334e92c3426a10f8ed711f942b92633bbcb0fa1997f6db6a58df6a4ff15621926dbaefbcc6230693e1bbad5664cd00f12d2430ce5baaf9980cbbcac9d713f15d0a0a97af02e630b2f5128c0b06cf3a445eb62911f1744ed5ab8e46b0d3ddf2acced6c47120c922475e2cce3fd05bcae89e5909e8b3e2bbd0d9b813da4d34b5c4be0494fdc715d4b2915dbb154f832650c7fb6d0c4834eee1dee5bf7387dc83b1aa276ef1b44b9889a47c32b663d5e1ca724e9832d5e14d5ef4ed86a913af60d90859f15968abca9124da5b6f5c7e47a50877727444471dc4c218c63bebc298c5e4c0f98f5397500d2d4ebac3c1d7d9af48dbea025b1c2477bb155182c3ec72dcbf6998aea65b1b0b5dd171267903b3c8a16209e57768172bb6259745172c8c53fcdd0a8eaf0d7c043ca7f94f637d1d0f3c7d4eaced74da183c9cb79e35be9e1f0104b4558b32824efed8fa8a7d525fa5b5606cc0376090910d724e1134bbf41c0b9967efa60c6761af048d44fe4a06faa470c51c48c11784a31910af37dd16e60d80da583e2eaea428c20b5f0e75d0ff0e37818a5d2b3c27da2d0f8f78811026a5b494097a90100a08cec0eb2466a312c07fae483438b9411f298c885cad572a5202879be02841a13694da3c6501298634b7dfa0d6ba1b33ecf8dbe88a7fbf34b25239d9c13161c4e046576d3df141faf230a91eec9775cf7308c114e68471de510b070cbb53605a5c04dd386740a112fb1daea286569f75b927d3020f846ae5c3b8968f461bf403ff6ab237d16968696f4e25b4789ed9e97cd51550743e4988a6ffba82c714b7449b6bd9b888361cc99df147fb5bacc458377ef6e25bee5fca31f312645431465dc846a41b8fbaf964b04450c712f2f1b85ffdb5bf4fd8a8505cd559b678df09d70e97d852026607f8e7dc646b1d15b74441fbb55afa97aa25419ff8d07725d7edc4227fa79be12842f946223202f3f68be267edfd43115d6689d1bbfc0ded4f242347a21c53285215a8585ccf8bd46055311576280e82da6ce830353f3c50668cb79096f083d2a6fd109e870ab26f92206e836df2343cf1bf3736a291892fb1863983ee45075e755caf3e611fdbc23c6407ae6e71feadde0bd591d3b9e394d840715bf91aa102cae1352d14c6e9d424ba8c5ed0ee871325bbc2276d541590434a70d7d0cb6206ab52d6d8f46042f5324266de5285fa424dec52ec24f9549b7e84d01e0f2bdc8cd73f321d759e43235051f89338e2cbecd20e1fecb4c386fbe72553d696e747ea7ca0c50c6e0390a91861425a8d8259864fcc16ba03e2244ca917adf3af2005ab5421f52214c04e5830e2244626d6e8743ab15d95d637847411e7223ee34c855715bb1d335b30192b76fc746904c46b08f07ddc9b0ce8a52f47e27d058061a2bd46575eace1c6ce795b8f2abdec250537913ea35b9f86a3072e635426e52ccf47a603ab3a55987034cb1be6508db00ae2291e2c054142f395583c6665c4fb54351949c60d4809c8523fde2409f1d51fa81a370703dcb0459ca32b5a754a615d89f8028ad304451cbc6912b778ed79390c358353c84c8919f1b2b404c467b4bcaffb56f3ace83bc86d81150184322709e17ed29175c82ae4081b3de5bebe3154b6c616208f058a1009d44a849a1e474a1777a75a40161077cfd351dddd74626aa568ed465365c76cab547af4c63da7e264e7d73244ba3c31f9689ad5c9918840b0f45d6b0fb74a5aeec5c3fc6a45fee03461a6e782b21ad631a2473d6dd5f89cf96e43e7119c15a67d6915183ff0232e188984cfc29bcc4aea86b21bd1c7af3835eb6a468bce1156da026fa9adb8f84327411ca44d9b798bab2162ab8ca6edc2e93d28d16f231cdd851d00b3b29e04d1d828db325f61777f68cf01c4f64e66d4cd51beb61e786c5041fba20a9dd92884e118e226485674229ecb3b82c50aca8f5f2b72a3d723c46d99c9382bc368e2a3c8f38363d02bae55039ed83e6194404d357d65ddfffbc0a69d667c41118fa17982147497048340acc629a722549255523a102535612e275cd54f2e5683333ccbc8480888949e72e08883a0d744eba32b5441a24267da5427b6f60fae574c96b9e1225199e48f2b08f7bec805f59ef047d3dfd8455a805485084582d4039200b1da5ca3426d9b1e005280339d827523a66b83a65bd16093a99700a5c0db84cc46ed32b73a5e703ba57dec9a3ba0e3bb9e733061b4a748a6639bcd61b2e44ff52144c28f9a6d2310a2f434b2978b3ab42487920f11893fce837c54e889de299430e460cfbc9d74c822315250a04f0722fbd33e2c0ed24a700cef71b3502ec43100f435b31106affd3cf13e6a156ba3a7495f2c0e306dc023ae5def46e1f81dc43d6d0d5885a0deab08299b3be11427a25bb4a2aab891b00c13561d6630651a5de27b910ecca81b4cc23498abd846f0c1371d46895cee61536a140a038e9491b5a4e582291ea276cbf417cac045052e1a3e124b460a67637d207c5edd55ea4aef64878d8a4ed629e2f08c1667948d35d5474ef4631bfc80416c2cc66d9335a9a24e160a5a2f7ea3c7a5de49baeca1029503cedb12c59d73492a11fdebcf1b4c6760ab88434b6737ff3ddda2d0f802b6bf3a4f979003e479038df7a1a0c0a1d3cfa970a247c5a882b60c660063b3f046733da06a0aef5440e688deb2926a7a203dba244fc22cc8008b80239c0f773f4de01744d4eb67cc75a01d3486641b1a88493c0b40c7e5f33ea6e319c97c9b6085c5059b40cbfa94b08a813fdc342defef9e270711e4128e23cd97e2e949a44856e02bab15d6c716f7f58891842da3accbad8ca03065361dcb8acf07c1ace4abdbb10cd0226e21aaeb9458409e6eca569536662e7863e66b0cddb51952212d0c568945fb773f751943651577160d8984adb8a16d0412ce2302eab0f5441af31b82eb4a73271afba359b170bd3dd97687a8d25513153b0f148ebb5f2a4e267ad994536d727920ac7d672a2aed49d7e4aff38ac506a9ccb43ea3198951c701a06b9213a44414db58af9d5c9c9390b5652c8edc6c1150588e84b08741ae6de65205b799f488fbdb328102db06cef7859feb8f92b0e95d1570c4cbb8b0ad7c88a3b995c5a8a00e8d8b2537cc350886c7ad1282b1b06ce2d519677f7e9e32f03d54ce8dc65bda9320cfa2e15f3900c11b902a285dcd53c6092c2262119d705e5556b9b312e1544bd89bbb2b0754dbc273057e63cb603dab8aca39d1b6390d48cf15aa98c586ad736b0ae19c1f14011e70ef7eec655e3684f55710e360e286083edd619ebda5a2e05e60f915ea696a9a246abd6284801868da26c477b21506add26b2ae1262012fb57e37071e75a6a5bd1206ce49163bd66e90d1fbb7c4ead51e8ca168dc882857ee1cad4bb38173c7739fa5a088267a4baa56f590fa05451da888d4342634ce0e3e60ac7c4def1e6042c4d7b8fb2b27d25f0496b15d8124bd8c35c49ca796148b64afe6230357a947a3bf42a2de141d191b0515b13c14cc351e893407966be479ab233aecc4c9e2e004a59fc8260e58523c406643462223ade6d74f1ca2594aa1940895111775a47d438d1674c3feb8f00057be94b83e3e65b542ce0e4a5c5ebb459708ffc345d22b0b32eb990f39cfe2ccaf0ffd26388d64afed0ad8efb59b1d16505da173d4780df17f69eb9f186fe4cb43a031723069e1c9fb54831bcecf09c3e959c50dfd3c4f078f1a2281c321cc97fbe38fee54e6afa2c92b704127a077b6e94d3b11a2aacdd5ef3c096d8031e918246147fa188b99cee5339d6f6be47ed8fda22ab58874b75b28e57b40424a94147db5be9457238a8767a1aa2839c6ba274b3434b6aa4810fd0ec34a9a53c0225a0de2ce1d86077198be8cd1761b00052ce23e041cf3c538e90b1c6b5f6afaa29242a8d03ca42f128439e611248a4bf40569e399b99eb7f99e2fc200d8a7823dee1ba02f72c3b9eb3cf176d6c0641808aa575386632d4a02711140e41986a880e84ceeacfdc7175f25b1d1d6799d3d3dac5e56da16ba70bb25efbc0a49421f0b4f400824b968cbf7842d109c8298c40fefaf314bc4ec828dbec984f6609062a5b382169f06bf9b10cca91cc9153e3e7161164a2038b7b10b38dc0d3a14a9d7ddd0a9ff7650bbec6be3d41c2b3d1957d05f7902dce3706d8052706613a2e624dec4d48e9e0cdec7afa6ab2f594d47839526203ef92de202dc5bf48957109a2aa0d8f10ba18c9e1965ccebc3b4977b8bbe34c103ae2c5d7d71a136a6f6945f03e9d01fc57525f473dd228acc6ff99ae1a2094b5a965cbbf81db7d640eb0240531ac98b11eed61a1aadc970af7a5da782867e9948302fdb237491261017385281c7f8ba24648808b3f06e5004a5692a6e0f8b375ade33f8732930e57e26253af1809d0bd6b40a760e354096ec80abc3dce7fbbf76792860fd87bdc3a58d0376333ffd0a529a3dd55be79ec63747677be71f485bff02669b354de6cdd76d93906846749a0a566162facaec389b04a34d5bbc79326fba6e9b24c96654a7a9b06a62fa9b1d479368a46989354f66ca74dc84494836a33a4d857513d3d7ec389a04469a9658f364de74dd3449896654b7a9b46a62fa9a9d4e310946cab4c49b27f3a6ebb6494836a3ba4d25eb26aeafd9713409469b9658f36cd674dc340909654674c2545837717dcd8eb34930d2b4c49a27664dc74d93906c46759a4aab26aebfd9753409469669898f79366fba6e9b84c42b702a62fc29041a9353b75b2052b29a745554217e6957e25aa9dc5922518b78b7ae9b0267ba1fb83785fd91f7679e2f596b68f13a821ba27715533ef6eef673a30c0582be98d5f3b81748070f75d2f7516d3bea5e1e6f9ffa7d5edb5a4b885a238490bde5de01ca0b610b7a0b41290095b06ad516d59b4375014479a8a796bebc7d8e96bd7e94a1408934d6a9b29c4307a8b3a53e444448410515474e2ce580062d090e39ec6005340461841217e1ebf5d7ff8abd5eb1bf6e3fd98c8ea433334850b85092024a0a9bd4809555a67cc937b2ac32e529d7226e4540d5229c14d1a4a8891dc0786232737052924a4f66930caacc4f08675dca1ff983e334075f5f73297f0470ee47c75597f267004f5dca1f117e74de3a220c40470e01046026c30180106ed8a8227f623e3f4b207f665c9826903fab4ff13fdde7270cf2e77502f903933f369f9f31c89fd8e7a70cf2477e7e2e913f389f9f47f2a7c6e7e70cf2e7e6f31305f227e7f39306f9f3fb69b10c1e670d79b6f0386d689d855d789c2ac893068ff3863c413c4e1cf2bcacc1e3cc21cf1570f7f03875f0aec2e36c92e753789c3be4f9e171f2f0bdf1387bc8f34ba93caec60648e362b5642c6665fa9c55a6bfa911667a1c55a68f5d2975d8dc4feaa087d1bfba2ba50ef1d67046c70d0a272aa4bc5d311b89cb1443b6520f67cc5a0c4f2990483c340178767c5a4ae9ad65e6719ecf574c009e1db8a8addc10c3cefde4ac5670be8235d4cff97d29086900c4931716141de1e006862d6ab0431730c0b8e005144f96b4200865dcb298075110d432191ea841249922fb21b3a630a5f61409975b2d5a5b2d1c557270c1133cfcc008232a25ea8831bc804282074f7ce1c5931a540f4ba620528a01194304e10533ba84a1cd83d3ba0e4e14587ad7eb9d5d46a0fca5eeacdc2585ea1e7a9a1a99baeba0eb4e1b0db63f12653a6bb3e699dece3d12d532922ecfc87cd6a88c8c8ccc55200aecccae99778febf3b34bfbd8eaa2ae76f9705dce642ef3c6e38bd65aeb575395abe365329db1470f0e3f554bd174ad995a36ff1a5f20eeda53671dfceecca909e2a51d5d24bb6907ee272d9b77e176d24d79d623ec386d4e28c6aa3bf37a654e6fccfb284f1999aecb33ef44135861c284c933eff0cea29996b431076938735be1775baf60157dc47c5fcc14a72cab4c69a21721cb2a536ab96bd467161d65babab375bba9b4e5eff5dad59df9c3295aeb2dfd74eb2c50ed64b3394da82cf3f634a3b6d46e24d3e961df6aad4073ebb2752afa685d658bc42759c588a22c453b831d672d570cd628967e95674deaa096b638ab163b4adb90d7cb5a699b5b5e55a65297b4724f4de9a4ba45a42db7ce6105b44c4a4ac1532aae5041a50a155db2ac4285153e595679d29267ad7bbcdb3c5179926263a3e201794090070fc803825ff53a11fc6743affa87e454bf5ed67e6f708636bfd23d369f97b59170d9261585125f6481c60f645ca1226349054ae060c9135e7056a292b875f1c513337c740c307880e1882d8838524185c2dadc3ba558346126dba4525f7ffdd1d778e391debbcae61409976dbc14b579cae65304627317e5b2d42b347793901b538a79b8d6536f99f747ee8d479ecf7b8dea7d56b3deafb9630b23e9dcba0a8f35a7801051bd660f1369e171d668adc0cae09a8f1caec163cd345322dcbda73ec5201c26a23a973dcc638a906261249d47a29c52610f8f3cb9c1f7ade2bbf0348851a83c52a97a692ec514fd78f2298f39c2d78928803c29d9854b5d905e9a4b1d1e4ef44143732b7deace148f29c2bdf7e570ab0e44557dc79a390e48cdb98fd5137fd49c3bf8855354dd5b61e66ef1e09592470d4f068feccc33171f059828be4ccb3a01f6d7eba91a631fbeb5fa666454aaa7ee389453dfeb02f088a4e90788b2874190931ba70e445377f41ebbdfc18ac7156a66e12673af9f220af48d2bccc30b20ca9c4a7553afb9a377f19cc8009aabce8925cc4c737ac77e0af755a5faaa68467a15ae344f612234576122de45d299e20f8b5f5d2a9a3023832beb148fadd796b54e709de03ae8ba630b7d41f07ba7fe81dfdb059ef50fac293cb28e846670ac3406c43167c59cde185ceba765bdb25e8f5371c0a3c69f181664e6fd99371e55394524f59709b0bffe3a508fa9ef2a95ea5fab0ed699bf5e4fa9f0d859f55692fcd5709eea34775dcaeeb9177b8b86e6aa2bb38b06b3309b9bf9eb85c7d40288be3bd6fc9d36fdaaaa716d1998fa0c7ed18c736dbeb931f131a20f563773a00e32936107676e1f76ebccc5f71dbfcfccdcc3eef865582dd7eaf4495b58b34a334eb1be58e3bd020d13264c675ae3df5dc1cbbd0202c284b139ec1265899174b6a971eb6db0e4b1e3445030850e65e0000c9725243046184c5efcf0840b2e785c199dc9efd0a1337b776a8144d4122c680022a9890556be6c9122c6520f5ca0d508638c1ac0304113a6256cd11428b6181161850d6893faa014a8bba1ba65aef52bb05e14bed76bbb74175384fa8f7e777570869da4a15a56570dd574052faf561ffdcedd5127a7a6d746b59a8f5d9b53a88fdcf9ec7ed12438e7aca9f084b2a53ec759cb56ec3850efb8b3369f5a36afaa42d8af65739c506a14cb9dfb0e0f1978c7e9347ee3cc524407487751f5dde6c0d428faa56f337fed25d3efabf9be8f35184937d48f995532acd319ebfabe736bcee34a39db716b6aee7dd66662b095c1a375b9febd855918099729cdbd77ea349822e132782e770dbd87a9e7f2528dc786cadfa7baab7fb7ae3eb3b28a962e799c46b28a162e79e6094a1116b4e30e90b41d3bc6a01df77406ca7a6bdef77b432565900bc57b27d29d473b787c67e7f2b83baea4331ad5bba1ba50a92ec5c62bd0ac127da868eab5ca6e5b9fa6babb0b540aa89bae6a6a17356fa8eea9af798b3e6a926a6eed2e542a55e3ee628a403fe96c862decc29406830fafcc33f75ed308fc77af4695bacce9f8fcd5a89ef22ee9fc3e23bf57fe6e7f805d635dd2b72ee90b8faf57f6b08753584aaf6b3278762d7faf94f8037c8bdff4ec17d677f6e6e751f78078ecf77435a3ee69f9d379be6dddc51c41e686ca400d85ed7e5969ebe4d44170ac3955638a52ba25414d249bcd092acb5394ce7bc89c74c61eb9d64ae9e55e6fab56a0b9ef121940942b7675b4eae46ec77910d580f8e18b28529268a20bd10b34786184134d59a4b032af539f47ee457440b0f2b8f54b7d68088a108fefc0433bce030ff150e1b1855bae2752faf0183403a23c64deb1c250ee5e3914ea0a34f3b892b6e34a9a14bb3a91a6cc024c14a32da200618b19681300549e3c51840ca000c30bda7cbd126899ec2c9b68410beaa5046a99142bb8456102063f582a401a2670a106209c6851c55cc28b0d52a2a8c005232cac0db8e080c90f4a98d1027089350013a43c3f8bdac7c70e4d7a26b38f1d9cb44ce689447d3a2044942e30e8418a1764a04d06ccc0075144dd60861112b4f9599b9f46452d9bf57dfab2b2891650c164c50b54204313b47a396b325899c7596b8e48a7a7132e34343434b4b26c82082636033a62c82df2bc9cffe65fde173ba85c9d9979a9b264620636c8e34ca572db00a7fab88eab3655051a49ac2caba01143973aaa606a0f7925d327a030cb2a5138c0c2ca1532f862822f3d08c1650624ca840fd0d82284931a9c968031c39082460c615cf14314d40a04b6d4e0490a248458820959bb0e085e11edba94f5660d33008298a59519dcb6789ee7794b64a8b14e3530e5d279d999d4573b5b038c6a0717ba884183105e62a8420233d0984205891280b14469115f9e6e788207189ce41752801962862c9a50a2410466d07083188aa28079f2961041193e70028b253466a8c245888c254e5750c0c318b6951251456c51e28b1f8049c3055dd7755dd77151e8e7759d93c7714a7495721c15aeeb8ea81da51c2783a695560ae5288d2a9ccc0088339290685ce901081cf000091d808106a5f40625b8b8e0d1c75ef5f33856db2f840094131c31d58ac4903243254a0f6e4248595aa28929ddfc2b4629a5f43bc2862b404451e44210ae10c1a248d8b8941103315cc0a28989091a41d48ebba1d383c749a707cbd5e8a1fabafaf2cee8beaeebce09231bc3135298e0a9e988234b9c9e5822e9079b0e4174f8018a891862882245658408370882096c7065076150f1bc26b4845c8da995d2ceb3adfa755df7434de52cc7794922ab7e499ee7c97075556bad5ce5aa95ca71615739517e9f0da0133d78de085750e0e48c1f3ce15464a7dcfc2006286882c50b30a2ba0e0c65a8e779d78158c11b29a14403155037b0420c9a2282b2fc60830e54b680c104b229ac029dcdabfe7decf17dd2be14b284a97f505bf284099934d5274df5247436dfb2c14a9aa4811826a47aeaaaa7709551d596e7551f6b963c0f6bdc595ad6ddedcea3ed4de9a6ced556bde4b9e475691987842787c439519f1044018288264a3ef880046dbeb3cc77d314270b82368060cf1b11edbb30a16f469d8826c516ec87bce2c50a9810d577d5250d26a47bea29acc47b37ce5b9e62ff7d89500c0b4284c3b0202c7426422faf78b182667ae5152f45f9bb92e619998109e994a4de09514293620a4c30a16ffec36de43da59052820979fffee1a146a21dae595a8b0579b063734a1f11d73237c88353acfcccf2272ac10bba3801172f9c51822468314c6162b0898182a72368f2f605cac7f2cc1da4668a972c9552079c72045b1ba253a2f59d12f5a19dd2143b2f73a7d43d334fa09ee1b4f960555be44f0172bf6381ec94e44ff71364e95a95dc46e42622371ebfce05b93fbaf27c8cec916fc91feff356fed08b0f3ff1383f4e5b4dee227da8139d7131833272d3e9c5cbde05228fc0beae043a9bdc1de91177f49ec62e2af7e98aded662c74e891a719758075718366fbf7aebe15b183657675d8a41b0eee02d2e328117264c181a9423482c0c2f2b5eca7469d3147f74876f5ddd7aa3b39ad4013545e8cf0a46eeb76e0d4312a06fb912c89115c31296be91e495a04ccd4d991856ab6d0a37850b77c4e4a618217fb8bfaab050e4be9c352bb9e79cb3451f757e5d77cb4c3589fa886ffb66816ee1a0e4be5d926402151ebf0f7bf855c329479867e1cb6377cb7db0c379a70ea4087d4efc316d5dd745605af6a5d670de5ad66d247530d9b1fb92db03a7adb5721cc74d1be7a34e5b1f0c98bf29dbe655ae78e440ee6e5247bf69a0cc5662e1824ab6c9128b0e9eb20d7dd896b132fd69d41c81e269a369c89f89e7165207f7c3de194567b56ac5698ad0ef6a9509b9ea6ab5ab55a715768242035ba3c8cd25ade08509422dd70b33c17bf7ce3483a9701e4162f3dcc2263aa0692c3c6f498cf5e22b06a958ea850383b92fd3362f07c5dd5ad64addd34e9ae9c99446a23eac7f9fb5afd77f847be5a25ad64cb9ff3d9192fbaca49ec239bdac6d8a6d0a378573caf2b42573365a15c2726030f7a5657d28dc17b1019256b15870da7955b9d61c9c9b18ac86cdabc645332313d3b2ac951882aad4e7755ca53da58e7929b22ea765e1179df5e7ea765eb725b713f5797dd6563cbe7275ca7d10775996b03d3b272dbbd98e09090b7632774f3cbc041ea8a70dc4b2675da714d583fa807f65591ea72cd328ead351510da03410778dcefa4758a46c4408367944a9b6c102f9492b5ff29f1f73709fcd611bca907100e58d91d6c0ae033d4a3d8f7a1ef53c4abdee159c6265066db092cec676c2e2c5d662479d8fda22ac0c42105c224216566a341113d174786260479d3c67444c69e20917650ca1c5484d8817fc70258a1667d0e6757a748fccd208283b0053061543b4400c128ec6a859c11404a31c8840c9051c7a880107693c3d315925d1240b140f5c6a48b24145185e1c5153220733a6bc010f7e30c2055ba400ea0b10a0bec042c5124d6a473968e086265b8c71c512267e5471818a2b4d7e6002c949492a3de1c105881fc6f8c115348896f8204b1730b0008aa21e66ad7283c2890a79c544e232c5484095276198018411675c2171e084963380104605b626e4acc5f0940289c4034c28fcea2b3cb47a78229a786142a278221a6bc55af58a655b2dcb5a81938266dc52234811c529cf1124ada1f87d5afaddd60ed6de7ab48c07eb6ce95bdf242dbc923645d5e90766f6d1dac18a19069e1ebc6c420732b214818879c9e8b4f040ed19800952fe96c2dfee81612af5864a5d66f05cea159c612a480ac7bcbc7243e5e9e1fed25ec2f796b0b76c69d9fc4bb0b4079d4dfa29935e0b08972c2d939928cf39df0388faace659ab2be5aca98933b218d212801ed0858b15a3206088810a6d5ea7477f69d97c91dc45e9e4a9e3e1b146b5ec26c5f6bf8030b094d6dc4566727335f72d4a4a5a031b080720ac00420b6dcaa16dd9d03893fb9bdd3475abe863258bcc647a551219f504441210480df655b668dabea491251e7574f2f831c9233d5a3a92d3ca529639ad2c39e539a358270d12618f20b199d2d064e4254f1f499ba93bcee4d4c1b0ebba0e3dcfa3e1f77df53b2702f9b0943afaf3209d4da98aa96545503e4c9db48c3e6902cc7f5bd8911e39f9aecc324bd9e27769a6489549f77c556545265f52f72065900bbf0b7e2959fbe354563ca80ab99082e1773bd75abf8361f8dd993f2965e394852290993f555da5defdc352ea008bda098b1946390910eaa47b1acf1a35ea9e21ac10363c08c582d356a076c1b6777a3dd0489988921b2bd3a3277694514759fc849a29db141b4069229e363aebeeee685ff9fb30e5782e9296c9dfb2b4c2c4841ee599e428cf0f75cfa447337f8d948f7c60e6143ea2fa0f9b0cde1ff3957a039a26690a8ffdee40b4c70e1769a4a82c5fb191d60ef6601076248a22ca395a265f60256da2c9e21db67492bfac8692d2e4ed6b6639e7c447661e43daa11872b1b25957235196bf116b999cb66542d45ab9d872edb0d7a5ebbcaecb16b62dba740942adb46300522c50d0f934e7a47503964e91e51532ac60d1c79c744e793760a91457c868aa3580b21b89eae086462361a1055312c8a26f5004dba7e7c9fdc67283a7dc544bcf177e328777507ac04a2c3780ca5f96335359f7c8d72b33b55e0c8b0d8cb2c4a245964e50f192c1d65b74c05bb8f6ac2b602978632d0b4f89401d2b74e60eae0edeb1850cce1c8e1f68410c2fe58f3deb4aa9c3e211a41e4889a8300b33739db92c35d8927f32788a472c37309aa20905c820965247084439ee406d83a81a40e5d4c1c971549452073d08b2f038330b4b0da24089829558b430caa95b2a86a7417e323d07da03f527fee09e82a5ce7dda8378ecf0e108da3b72f7b883e02552e42753ec819f4c4ff1117a245f96528777ef1e472f59b7aeeea87a3d05c383233d8864291e89c24c4710dfc3aff135aa300b33bf68779d9675d37f3887c773c2cc1c26a18ba5efd7ebfb38ac839f67a697401d36014116d87919d228be7aef4b5d9ecea494722639c97349d2996d993d9d75b707774b58724a81ce5a36c7c994e72753f7503c9bcc27ddd378a97e1ad569946433329f647e880ab46910c05a41ee7e52477f480d15ac44238f616e245ca61c276b133c54f1307b1926b1943a9c28aa41964e14ed20ef4872d2b4657e8a148a9c2d60e91379fc7c9821cc528bc435fc150e1d78f4820b5f111ab5d6948a6611b374a2c84bd7751d75a2b682effb3e2c4ed454406b2f88609658c2a4b16a7dc10a45511459b6092e2e0e58b4b084c922cfc4b45a3386ca8474d22b58b6f821cf804d802b50de6882e777861d3f266a8801162d39c0020b29b4be610a1da4600c148cb182285adf483f497ff6bbec91bb314c080fc9f1cb30a13a345f31118de25196411eba8a21d943c2e5e6660ea0bcf16a59ff46ee1ed37aa7a28f21b93b09a10db1f7c9f37daad4ccd1b2e6e91e6f4ecc02973bdccda094b91cb92b8ee988efbfa88865e796f5e7029daedf98bbacbbab1fbed197be8e54d639f2e79556d038824b173730a1832de5c309a66849238a0d54409b975f0eddddf4dd7452e19494bb9172834c6cadb204972cab2ca125f70b906595256cc8638edccfc1516ebe9b8105795251d6b2b72c05b66ffbafbeec7f5d6765b2c10eeda08136d4c24c103428f42dc86441637d4896d1c5d38d36d4c208524471a2b1de4227431434d058180acc04ea5d1606655577ab2efa508dab77770ccae255b7888eecfe09ab7ae843d54fbd7109974e565c7dfe864ca5c2637f15be41daab9e1d7e86ab109700549db0e0b4dc0b8375092b675dc2cebc32cae281ba6f55c24a113c502ba0eff8d60ef6e31010ab5618a865f3253889176642d7ef2eb30a574a19386b07ff8578c908cb48110cb46cced724ecc72f8faf7f1f88b1ccde3c92b762b1dc9d8951b1e34c9ef33726f72f5d9edc486b63333d853debcb8fdfe4e46d944d250f8f393a3cdee0b08de171267cc5c0dfc82309b93109427ae84c31852c734a6692a2100a45677da7d92444489078a056ddfbd19954810f8968a17c885b1402afc243aa83a0bce36cbae3540ad2a1b329e2d7486b599a092694bae5f086e0413cf475d28968f474466772cea76945cba8903aaa9822f413a8c5ce536ca50ef9713ed55ad7aa2e4f58a4f89eb2d46c0f1da6595b5d5e3613f569a439eb2331d9dc4d7f8d5ece11be5a961741ee76e326e7023b36d2fc38a7e85ae6301775b95b544632eae6bf5ab928ee2377bbbd3cdbc74571514da27a2a4dcac28edc6d5eb151dd33f608515cd4176ef5495b61a390b67a3bcd79569e2bdc53e86c0676565b37512a2ce5a66caaf8234784b5ba08586f7575f509eb70100b4b3a132fb39074a2ad703fd15977ddb94e0a4b0dc00489d6ef267b44eef794390287975655097c531bbde5a669d83a0b6da746421ec0e8455bbdcf6da13e2ddc418978ec8778ec27128c7ad0561f7b890e6acb96eb399122f455d589fa78355a959672ad9d3c198322aad210d4f321b7aad6dc2d7b40e4be97c5d3e25d6919c54b30a1d647efca1d6a5d890babb7304c48eb318fc14aec5b18cabca4d9533168d5f211c43a16ebd5a88fe744cefa4f3e295e2d5309c2ca3c7a4e3a2823db3a489f592467738e200229c2b441e2207be891721ff990fb0735e476c1529a953c4592a1c96a9af7e45ad24839d63d23fd8ccd8413c75e3359f6483fa7ed9e89c3965191c595cef4f508929a976a302193d67dd23a6c14d2ba4b3a83d1cf0c0bc2caf4acbc34820e775e588a851d2b6da47c1a40909efb73cb7307e5cd714336f37823770e09d4524eba92e7b2edbffaf2ebeb3c85aaa62c04fbcd6ff0908dff309c73181eaa254843e98936147b0b50bc13d16e4e747c188609c18e731c3c740f23a2c9df541cf419f54804727feda4963151a2dc05c245a9669524adc2e2fce6b0faa111787144abf8881097f485867321dae48b229068371f1ae2e2862c37dacd25ad7261d23299817039ca603d102e47dd0384cb11102e4dda072933e12233102e4d40a2dc7d7588fc9937373737bf39ce0d9c1ace713e76546e2815936a88fcf990a48e7e4b115533a24cb469daa06e7d1a5533da427d2a67d4af50fd7aa35390a88fa4498a44a3727796dc4d992ae16ba90873953df4b5dea24449cafd08dc34e0e638f843a2b3a0cfe84abdc13950e360d972c867d4076516548557886872045594fbdda5bd8453f471642eb1bfd209267ca8d1a478691bd2ff6e1e819b7f4ef6bf57d2ba7cdff77ddf57e4eda3f3a098c8b935aa96fbad65e9628daa054e1b4e31e660e5c1b6ad7b3c1baeb05282dc6fa8f6f98c7aec2e48a9d42b9df51c9765e69c5faa93c1548cf9f4d14a5dfa1e327d37835206bb8377c41c7765fe90c2980be3f06794533073b075db49ebdc6d272da3616ae2996692e16238ae7b2bd160b9733178b42deed6dc36d69bf510b39ec2ac4f5c03670864f5cec9f77ddf10ea037b1fcf1c762f672c964d27d36967661e5ed555aa57d6673e73ae6d5e92fc39c0943faf23d9f1339a475ff7e8216d52c26e70724ef1d87df6d091fd3917e7de5cd87d8ae6df95e1c04ff431e72753736ba91e19198e76f4a39386b445632895117ab232dd978969c9261effe10e73f855a3468d8336afd9883f52af77f51790d56d5eadc4f529eeb2b412c6339f07c68ba23efdd44f5aaeb4ac3f6d2d2c73679eb9e35794fb3566aea151c90049bd5e2885efb396e69946464373297d86bc762dd76ab51a876d3dde4aacdb5c31e63636977529869fb514b7152debb6b5ecad83f4cedcb6efb3962ec1ba78515b703fb5ac5f8fb0fd7db5d61da797dc4fd50b44e69883aadbb696756959cc6b2e03825a16834b006770e1fe0a3377e7ba3b735542b2f3b276f3401d8a0c104d9861824c7c020d1326870f592b71b85950028b278228a30a295a7c081d6078f242920b4bc0ef3bea3a248ee33efc19e5e82e122e879fd1fd903afc8cbea3eea94d394e3a75b7afdd59e2d773ce5933424acac2ea5618ca215073e167b80af192d169879d8561f3335f7608bbb34bcf7ace2edf840aeb73edf119759983ba7306967b97cfa8070d1e7be8ac8c66f02893c1e35b38c45dd781e99ef07def39c4e390fc01512faa65cfb3cba4f5ac5aeb539887852e7fd803d3b2d6f1a272df8bea1e11b7130f4cf7b0f012ec627ed78cf493f487a800de157ecc0c44e6a51eb4c862053f0081054c2a90c3105f6c63d020053e801f13255ab4b0a2a9043af04286068ac001aa87a62a68805919e5f99c2b69b02b69206883d591429b6650b1c5ad6b95be1b2a090bd6206c67a34983bd080604d060379a349c8fadd4da618888360445e8e638875d66a1a6e1e02123332c1104ede6528405c130ac1e76499359884586d315b41b0cab3808e73797349cdb37b761d7d6465debcfc8073bb6edb3b5d2d7b44a12607201b2aca204520625d8510a76b5765dedbada75b57e075377e6567abd5a4985212dc3c00cecf3f819559fd3fa2d76e9baee840e2fb900a51ef68602a7b024f468594bdb90ee19fb185040cb5a3ab513d89572f6b5acbefee8963c01860e7215a9d451ff9ddeb1482e32d346dfed5acbba6b436c34c83f23236ba4d44f8c9660ed4489fa740dd6b5fe8cbaa70c283da0c1961b0eb72d8e54a1039816d410c40e34d87c40e4e48a14a6190031c51359d01aca9518a03821c3cdc912970f4b46b8c04b16b52968cdc50d8c78508517232bb850210b273e34a15285132b1a1005058316347a7084348128804822aa0916b631bce081144ca294b8f2830bba7f4ed80a72ffb274513ac6107285ca3d53421eb917e99169db7223b5acff1961b160ecd62c48464e349b0c94b8228c17aa189104f7d8ad4953b038d1a4e8a37e461f934b0f3b32a23e43609f918f21565c2088275892a8a5d183135abfa3dad65036bd811a2e6fb906d5a74015c0d10b5442cbea48942587f157836c473bef3db8d447ee1d06b9cad57a221cced1b25aff6dc10362a07bb8d93454a17b8a70148fe0fb6091994c652dabe786c872709403393cd61ca40308275cc0210a8734be3ca83e857aa0fa12ea0f7edf57b9944a012dab97a00455b804a096d5571ea5d33905e8606d903399c72f67b144be32505720708aadef1ba88576b4c352de519eca771f2995a7f244684ff9f56bf7750ffd64879dac74cabaaa19ec4406745902e94cc7283263c5a4f90b7b36e52aed496b775c77b3e368953f72a459fe7097ef56929de7eacdf334137593a3e224cfbf62dd53a95891e76b78a5499d7885e9841637276cc09441f0ca486c9e7301567ed892bb07b62ca0b274ca82491ee712793e479655b240223bdd90d247a747965247fa04d11ca1f4a941f2493e19914f495a36650b08972e7994b7c64664b02305c2641ae42e64297a5ef8bd6faaebebd0efc3a195b9084af7961969d54109721e1ec3ec3d49f7341e6b703792e4442a46f2a561bdd4c1cfc7f72f0dfbdd0892249ec800a21ae699bd7797e07c620449922b7636e1c934996a2a454506106515a62999bd3b2753cb66909a39bc143e6999cf4c0a939866d24c62c28e37f23c68c58eb562b1325956c9c2876cb3a4050c2f904205366092635cf121071980392a4305b4792349e6ac1949e214be7085085bee29f20a11529a0a574337519f6ab3357513f599d506a6c08edd649b229d6af0c5d10f74f08216511e90032e515cc1440e5ee0c394ef9baf50d4c73b5163a1ee2a3cf41a7a11c1ba3f240a81e141587b17d618d600efdf85745761252a25508454f8a34a249d716458efdd61fdef92066b21a97f5889f8d48580e1c14740f5efd3e84a0a133289a0628817bc307164d8f0b3a4541258c54a1acc6683275f7ca034a730495a0b862e5bf0c056a38d73cacc72c9b0b03e114dd239b7d0a68df322f5494b5d0914a15049f81d2664080a2c487507489a0a4b3a13d245dd10c60e3b64a9d568323a9b1f326a9af81654ff30ac0f3efc38b7e4f9d60d56d27ac8a82c89c114537411b1921654b896c2b0c641b2c06041925a2e6130a9e5a5e3b78327d2f8c2f17b71fc75c7224872ecf7397722d1cb8a9bbefe7e9cb713703c46247699ef5b4401cc308a83e078ec381ebb1483bcf2183b8e03f58d1d0726123b817bc730cc8426c26122f4f68d8db44c36b9397779171e8b20c937a75dfd28ceb97337774e114625995e4e1146121c198952192753cac4073bb38dd7d8784f8b6ddcc6e63931efd771dc03e021dc388d8d1bb7a8db1730b7a8db173046b854adb917769154d8bd3790d4fbd79ad38460e37d3c6200841002c6f13a8e170e1c3870bc701ce3c0386cc4e0c031c731ef1b9303628c5fafeada1dfbc4b020364e6f2327e736366e632348ce6d9e63e33636cfb14632c58921a9d9e6291bb7b1c1638e0d6d685b16cbb98dc7ee5831929a73b0cd6b0e4455d7da5c99c39aa76aee893e302c084db671a0aeb9f1181ec31c3b38d658a59c1451e06cceeb54c4b1d739c27decdd1c01c763213c16a3371e9ec3849c07efdc8fce76ce73d075ee0038c87377389e1d17d714f2dc9dd95431e5ba3081e6dc9900534301876229b38f576c2e79c18270d9752ebb5caf47bacd287aef3958ad56cb2ccc3ca350c0c1f75eac91996d5c5ee69cbe4e6d3ce6a08d1b735550b2363e4a281b3e303ec1756e69e7382eac1ec765be1756f10f1cf91eecb03f297646cd5bcb387169e79263e500451f4b3bafa2091cae77e69d9cdb710e80833bf79e1ab54cbe8564ef65cef967ef65440610e52b693937c8c53c47a20f1d9da65bd337917cc8649e4bec488db2fc28cb1207cf2f37b34936cd24cc8d61e93b144fa05f81860993713c0ce1f29e480d6ddc5f8a407e1b076a9c73eee6e4b42ce7e3cc39dc5d97483d77b0deb86e5c1816a4ef3a90be2be7068ff52cccec3ace893250bb5e15dfaeb9620fe17e5247ecf7a6a48ed8e9ad5384d871dc6e8a103b10b5716506c01dc31b772c125226f62a744fcc2f6f84d2ff98a62ca64dc400bb29cea5e8a3fb381f67d32d2abcd1a50538b8c190c41619449c831616b4739803246de73021973be7b93de84c7ee74a3a5b3d7103142010e1a456a3f17ce720ddb93c74876787b6738d567085cb195f1c39a1a145136e5e398af3226176dd5c166606efc263cdaedf9cde51671c47fa9bbbc2508e8c834255a17b702e732e716eec8a9426b93fe3441f393eeeecf4c6e8ecb1e3dc48f7cc2e7170289d21cead995e290299bd4f64f67e1569ad5895736397620e2ed232393b50cf29b3a9093b7bece36ccab728d9a56fd184fecc8567978305a1a324ca38b3d99db94818fb8cc68e9373fad93532bb32cb5468d9fc52298e17ce726e11d9e5a2ec28a15c076a23588596c917f99eec28a18ca850448244b90809999e28d73ba38a5a26efbae19c9aa6e079639a49b8994828218bb4f926489ffee6148fb265b1533ccee49b13e8fbdc25d21c876140385c8484ecc223779cd713e5ce39156a997c5018f60927074b2a57ba4766f999656a994fdd03a332cb79bbf54cfefbec685faf2794ba1b1cc22854dad525736fcfa3d7533cce2ca200e68a53a8ed51a1ae5b03d37bef653e8d52b8f7f3de7b655cae145c53067c9776feda39787363383784a7441f5d6bad15d3a750298e9f7bbdf1fa11c7d18f995d97edc3f3f1e6f463088fd5d78a73fc9cefe09cfb2be7f57a8391d09cf3d86d25d9103092ce391f8fb9c7e86bcec1446e700ecd7d0323e94c1ffb880323e97cf3181e2597dc8d8389dc3ce70613a1e7720e46d2f9de503c659847b9ba6e0d3015d6a84173b0419edb73508a3f709ef3be37780c6bcffa38b7e7ee9ce7ee1ce7e6c4766e4fcf772ecfab277623df1ca461cfe53918c2cdf9cd8d1de7e6cc8bf39d4b80f0ca9e8d36bf08d0c77167beb97d9e4b80ef5c1e9c73a02640831dee5c9edf1ca8715c99732ecec19b3b86f9e63cb7f6ec3738648ee376beb934af71659ea191919189394dcc6b3eed2be6b0c31ea37fdfdff80d1bc7211c0031ef39457e4a9137e7def7e6ae3b22c9ae9b7aeac2b09c737884a180f3e67270101c2c5bd6f4ae0351d71d5db7a139a78dc2cd5d6f9ce360580e0e728325eec7eee83a0d8edfe07873afafb9e91b1c37b89564395c24ac694c04c76f309110de2fc2e12261c68165cb6ebc86709a03e08e35e353d104314808b8b6ec06feeb8d471b58b60cbfb60cd313ee652ec513ee657ec716b20c9d62109a65645cf764de57e6af7b326f7ace85c7d7a5f823e663edcbe0ffd57fdf378d81afd76bfff5fa1a5dbbc69b3b96f9c4b02031a78f89c50ee3620e8b39ecb0c3ee18bb2be630d863f5d29ccbf6d939fd70ee976bfdce05a23677c51c06c363cc15de5497ebf4de8437cdc99ccab83091d8633e565c24cc310c3b8dcc309b67eef8ca34b7b923924cf3aa0963626a2521d399cf048e48ccfbd29c5e7b49719130c7c4e02e6addf98525bfbacdd43279f1f69396c910cf1b87860555a9cb244bef52f481adb3a97bbedfa2be3bc1cc2f2d93bf02832c593a657905064619e9f253ecf0bc75b1236592e5291326a7493b972a3439c9cf2c4d5328cd4def8f93cae5fac7cc554a1d9db9db4b3bcf7da79496c9cf26ea33917690b29c482d93e79a8ab88db1a40633a0887e38819420ecc003a530251040942635273110e30c32a47cd7e4db487edee467146ddae9e9022b603d388404f1f5b7815f47c5c284540fbf870fdf58488987bf8717fa1e62d8144a5d1586deaaf51656e211c55c4660e63417d23a0d560245c8bef599cbfad68cb5d96258d0ab66be6a5e83012d4b410258a86543a8cfa4d9d45fc665a3437d24adaf3a3d1a07953031d0b2aac29096b5d87a1dd294eb1bebb4ac42b11deae8ac7a501fd8f42ed4baf779cf7e8587bcdb0fadde3a11adde487d92fa21f52ad4dbfb263b3ec36eeb36d7d678bd06765fb7b93532d70892a7620db2d1913a64c08553f451438ab01e22c5ca2341535ec2c07af948cdb0a057cd5b8435ae3ed824d4470e913f5eaee792e4cf08d9bb1c27d2ca019266838b8a682ef3a299c79c8ab006b4feba50ebaf156ebdb1907d0d1ef2545f5d88ea2bac048a12f0aa0b09c587e094934785982b7367aeeb86ae1e3ae0554f41bca47941de817a26d159bd088a17bcb0f9d589684392ce30088a5fe12111ab4067f5a0a48943e8acce0391f9c84bea98ff4edf71e285098557fdc284f0878364eaf3b00e4743445be68b9442940851c2bd9334d96b72574977eef42aa96f4075400713e2fe5d9810ed30572fc51f9dc9d9d4d61dcc9226695df87921a1889588ef4fac048a90f8be92f9f0921686ac90facc4bcb7af7aef525fbb065ddc79916b61dacf685550c8b00eb7d21f6ad0be9c76025acf75b58091421d6fbf6923663295e6a1da8ed95b47ac396d1ba773deb07a500d4bd041686a52e04fbcc41b18777d240996135bc7aa365ddeb9781a8cfa4e1bc9b46af8f32caa67bcdc19b2b69383336aaaf7bd79dc3b576402deb5ea170b4ebb02b52eecedddc3ece0d656217ca7cff05314645ee600de527034b5fe33817f629828fad9052d11fab0c24c5d24ff10807832f773e8e7c87a570508dea83e5685ee4facc53a0dd6b94fc19417c07247fbedc5179033d11c82a5718d8aef1d85380fde6520cc2e96e6255084b028779784458500d583f3c50c3ae12f1e16b5c2550b82b99b006ccf785e6c5879734cf01537480070bea0eebf7ad3e8f06529bbb72ddd6cc657945fd3004c3db9775ed6ddd982b7363aea4f5ea12d56c7f2deb2a144b3fd6216cd1c4b02a4ada09cd2474d67d9e88d6170a566fb08aeb271e8252b1d0ec3e710974d65d6249674434a2796527856d491df574562fe98daeeb570cc023486e8cb596bbdc1948019884f9346dcf24d8fa136a6e1162e94cc847e50da1b1a8248d53e5a19c850a9a91810000002314002028140e88c442d1603c22a72898f90114000c8fb2466c4e1608a41c86619041c600420c210010036008800c090d0a008fc363e5fda3f1fe768ebe74f5e756aecb1691711b74d60dd7f93452c81046d35c994e4bdf174d8b211928df0b29cebfcb2ed6d42e55a5bd72d4164549208e9f1d937dd335f6ba2fcd5ba0a19fe6c31872f356c469fb746204b6efd00bec048275889133e7684ba2e07432ac97dcb8214db7ce6a945b0a2b550c78e1b0728a5b29f3827ac41265afb24dca18ae6ebdd2363f70c5614bb90ef9764578bb202a582d900ffaf52a35afbdda438ab94ce85910016626b54ad86b8d962ce3878a966b0f09ce4c6ce3818703c330c411621805e5cd6af6e8d62460377bb14736755a58c4619ce7954ca0edd96b1f9f4d8c1b8a5f8293fc566d212199de338cdb1d1d8258acc10b7733fc9e0ca4972846087c24f8323acbb13211e30a991b87a93652ffab53a83a06112ba42d54dfb8f614949fd14edb747cda42e014a93535c2afd8e5405bc8bb6c2579a1b26cfbff420af8b6b0c39a727e10dd07ad9a1a93bd01dcc7240c31d6b9c6acef03c47480db4243dac5f73e2b7b2f5d2619b12282c75362609f57abcb526c4960c1f80db690fd7be7f4d4a2610c909f3c32f7594ccee3a9c06d5c9b411f98f1900f97461497299c2d3c91673e6bc62023ac1d8ada3a78a6a323128802879c0d172acb59b07861246c5bae3c51a6609a3fe66d28559253aaeacab786a2114d94294894888e0351be01e5e4686b2a8ac604b132385e55f4dc49c72071e4052422a5029bba9cd495fcbea65e401891d1b0c6d69523807f98fddcdaa5ed950f79b1be8e74d2ca5251975a446b507fc0bd78f197ce541670200407e68298d5a4024947d3e4f39648a9f70aaab386911c06d8271636370aed099b8550e1db4a4d870f8a0e9c0bb8bc7a6b2285188a105566432c5188e316f6b4faa4c50d4a02297ee007a480444ece37675df0613f94f38ec5fc035199015f30a6f1d8f7073c0b4d8b55b793138080dcbb19018b054be462302157d4f9ecb161196afdb6440683e36641d3c4657608760f4c5eb8f47bb31e9e32ddcd94b2e35f395ea0774360b0fb945dbe915bac23b5ce91b0a4b74d26c32a84c71b5f791f428d14c24ade3519999c4f9add313817221c5e5fd73ec5b8ab699c9bd019212bc599f14c9b33c2f5394668f0ad530e54f2b046e2562df3d693b51a136dac89ac4cab4f49ecf4b289a3936c580482b6c9d02b9797202928152c28889ab1d1c74819670b7d44a3a7b859a6583ac1ab32a0188ef91b122b7e7fe541ece992248cb64d5d03606f4cc6f7bd530ad6586ee40a2f410624b4edf26ee5da33d9c5c5a51c463c0eb3969189d4abccbf72196725d1052634462f8690781408a3a4e769401d2a88db89b27ff160ca6921504200c93ded22d64eb83dbd6a4a09a6e4eca35aafe7a668bbd8bf68a1a7d001b4a77f6675003edd6a79b86f27f47580f80fb238db1e52963d3d4c79d580251e9582aa72b996d799f14ba96d30fd1f9e644251541250bc2123c68110981b27edee2309ae1186c316357973db37c1627ee104ed5840f6c3206acaab20118138e0d58793aac657a706cbdcf650edec3af28ae9888af8af39e6955ab7d3bb2fafa305f4214e415fb19548b71ff51e7ba000ea5254f91f8895298c38fd77a0af0e2870010d01102ea66aa6fc1ce5d42a64f19d4c9f72e6c6834cc5dbbdacafafde8b2a4d298bc1e6d9092431924fcdda87d44d1d16a96bb7e177d1273d3622833b4eab8b3910e8888388d4b51757278845477b2e943058de1fa727b16a96fe5a34f8a4f993514af057650de63508551fb452763a626d6a0a4fd1ebe161c76da6ca85c8c529bdfaa0bca9dd6562e4e418be716810aeed36b83753aaf882eacdbdf5ded99105b9500577d21596d19fb3c9ab5ea5608363d12f950fa2da1cf97c4886947c850846e2e902f79e04a2eadc8b0d9118092ac8fab242b282ea74e5f7eb28dc01e96a7fca1a79894b8a2624a3254bcccc909d28b880c8975e3987c518c05237d6afdb54524682faea1ada7611519892ed5c06f98f5383032ab616ea84f30f21df3f70316a2be889c64800480254d1b9694455f824538117db5662ac3bfa5a1043f90cb28d8a376629155002708e781b7a4b0bdea78aacb15c97cba3e1ba2d7622eecc3b05f3604af69149212beca2795a0d64608d872be91a149eb41c0f8c19e26cff3e67d4580129129ee170ea5d40b528e8debcf0a7ca6836f42668ad4eba1adb90ee8afba5bb28bc676711d5dbe178f5fdf5d6d9c049ebd720923f9280e33acc4efcf1139c0397630c771aa4635a001ebe69718dce169431c0a3f72f6acbb955fa7b41c6b06f2d4c08d7309191fe84d206957bf287f9eacf9bedf0b19c9a392716d1eb97de9a3b16dcf8afcf327183e75f395480c1a50f942fd98dffa4c7404941b47ce62fdae53b4f18d0eaa72158dab250594b1b3c0782d7882ef38fb1114b542fca212048c1193603789336a0ac1b5e4213001fe54bca6e83efc4004327e6c3199a535e5e1096227109fefc4fca3539b3f40768126ed2d90c567d406876565332a0d9b499fe64cbccd49d7cb144f38b8ccb86e7a7b8b067511ae033c6f66772dcb4edaa8b47c5cc1d0ec24b722953562b01914408ca97003773573924adccbfe4accc8db1cc829a97e1afd005a8c0578e53d88ccc1775ba5fe47feeac16a00bc68946708fa099039e8ad5970477672e3d4eca1833648a5c7e2ed341bd3daac0f8306b7a843423bbfa92d5f853d0ab04381c1e7cb1d750d2600971a96c09538f3141bf9606d15449aa5838b82c661058e4c60503f83c14a4a31b44082582de27b2c6f2d434faea98b9d37f77bc0ef2ee88030d241a073d651fb35bbb8ebd27fa5dda84ac95131891cbd9625a15f4047e8cf418f0f0e4435b514ed1ec203932007540d14020ee8e557245cdc77b0cc7c77a6dd45ef72cf7dba6945a174aeb7e2b5b057448773d9ca138aa43aeaa573d7ebdc4b827c820aa2816f15ba188665681b7e934a615c511a1276486607e61aa799552d730c3ea33b8e87abba3c469ef552a2ecf830176f39f25e135e4f93e95911a1607962b18473a647e2996fe104d7930442d90788f1ac56dd3b656c26f00a828ded11fb11b62ac226998ab8838e90ce350fb3e6e721938c9970465c4852dc0811db648d8be148a46435aeab67de98715c5a4330570c579166fab6564709152f9069c71032809fe23c748f95023ece78b288577ecc6970865b42b3153f827c61737ca9d798d239c5dfe955dcc7c3e30ad302d06af86a2f222d9bebc39dd1c4b39b5fbf9ee98061b88d2a817f3c8ccb62f558728c47e50768615c5896c97ab299b1a15ec7d6517f3060867605851e0b60829ac3819c46be2663996fbe51911f7e774da6604289c5bc96d0a56801c3938c2b7c45150a2b513e9a30f149445b34a3e6ed1e0eb07831d07f485f9fa0a53e2bcdc9af00628d42456c016c77a4d71ff2f7a21eea3230efb1a5694b0ceab58918ba8b7a264f43439e138da75969b5689ecb16d07482c166d395abddf9be63e3611befcccc06f62ce071282c617ea119589f29f77a68dd5f0b190ad0c165a9fbdcbc4abc9b1da952028d2fe71ba0efedede0e28045f6d19b95433d37bef85c09cb7b0b671997b512ea729a0f9a908c492e6eef0a2227c71f9dbeedf16178373e89de262fe7a065e0d1a53de3056cdc9d605603e23c091ff6f05818e6807b89c485d06547fafad34a396cf10e2640731321232295fa5113b9cf666951b420abbb9b35edb19f650cde8a167f4e8230b0419135ef4864b24c3192f394bdb3da8fdda60b037ba053d37f7ba349ee11471b82902ebb00b605416c2086562cd834f6c1f0324e65e5dab2c35a1c23cc1d94e4496cbafe88bebee243367ce433be224556854b415e3d70f61a11ea7571ec44090244d9c47831b8b184bcf3d458b212a32994bdfdee51d9644a1ab1d1cea4cab773defca16d49710957e3ec9963452f76c5fcd692c68c357d0275becb7109cb88741839e3e88ebd2af6e1e85c93a5e0a2715f011977292dbd7d618cab54b28359bfd5b15c8809ab27c4ebc11e9aeb93804566e4ed1ba93f44144891ed965a768b32b46bc9908f0e817bba6c4853dacacc98d658fc142908532adb0fc785d853208d99b72203d7bdd02e8820b9320e698abf38a3e3b765d07dab472804a23c0f022707fb98ad077f7f4178a1d5c9c53c1140465634eb11aa2d4f9ec4af9f2e20804806cb8e6f5442b87a0f0b2a4fc623e2d9a8862b90686f29caa28e055f81e532d0a82a00f772c61fe396b4efd78e082fec455c08bbb7153d59556fa0c49542a93308f0beaf21be9b110d33d7e24ba87341ef23f72b6fe0f11c0580c9be17852d0f0e197650aa574e5140a7aeb44159c2a022a69682a4da4a2a50aa5d87f80aaecff078802dba38d3094fc7c6a2f9de618bb29cefb9d606c5301d4a43312864ad4421aa1e649f7419c2abe9feadedde27c4f818dae73510d377617bae9e4e3bf2b044b0b9b3306ece505fb923da2c0ebb646d10bd104a1dc433236e70b7c2e2a16d82bcb66ca5e07761057054b6ec9b070a87cd10aaf146a55477c1e680e1033261ef0f01e96eb586b2c2660cc61ef756a23ff4c3728e792ee85baa0a0147650b8be039a03a8a883527045973ce6fad29c27fca6b34ff446b46ccee2602a0c524cea9108e35e80b538e4dabf422f6e1e99414ae88ee56d12931fd078d3f7b09808535150967e5728e108dc8bfe30b8608ed1f721ce46fdd90c6b5557fbd775cc0e615419472ea37ea5e45ff0c8faad7149cd980c2f25f585fe9d201eaa39b501fa54cefcc62d27259401e2947cbe33529789d9a72eb1092d3059a5b508cdce37e95d85b6b81f0072819028ed8212291d0901d9316c149a5e13547c0cee5ac03002b1e8428f90289605822a09782e2128a1db6f64b8b51c6876ae2f8d0faa405438ddb1116bc513c451569927ae0442401f5c0e63ba0dc6e1062da7ddd0290ee811e4afc0f7c793928dc438cc5d162d12949277b5029d41a5969f95d26c0177f2dd8307d2af79feaaec3362a343f1ad253ce1ae10a2e26b99b2fa79a0633445969710d637df9fdf02e05eddac728614aab845ff71f1f4eb64e430cee3dce6a51dd87333cf61f42208eca7552e318da689270f1fecc279e4874b1c044fb848bc357fd2345a027b36affb24432fa19bd4d1730fa310498e4c3f86635e05aeef7be040576065dd4556002274faa59cd0cfd97e629b2ce512bac2cd13e8d2c1407382b7dab831bfbea1edbb3409b11aa06435f6dc78188b4609afa4183bfdbc88ad1af82f54cf85fc66da15557f8afd7146aabfb17e8441775e73b23a2aec2b51f560c8fd65a2aac0de54167b3f6881e6e8e162efbd78adced295d93d7d60a4435569f4d03b83aeb62f681af139d8106980c9079ef2a177ce49586fe4529ea1a3ab68b67bcf2be5dd04404cd6c3daa0a9479ec7ea440408d0e2d9b402eb754a88f6d16d95bc361af0fc413931c10303c769ac4e4e1a9ad90a62f0e3d79c32f41fecaa13e992623108b1367734f46bf30c9d3a9950f2c861437bf1208b756dbef0337c7c17193786f4eb9c2df344779213e7c65d35e41e4df7bb5a37ce039a7e75521ffb3ef45aef6cebf289cdb5130c36d75827cedfc39a572d10a59b5178f2d9953e41818651724c826b23186a3f4e32fad86267586b417bb90fdd2a549bdcc8b7d73459ad12c0eb45d487b20f40b523329af0df8f437f03112f0a07ed98bc769b4b87d6e821235615bb680e9fb798f3e4deac35d3ce21d055387b769305324231a44b5139fd58c61cfc92041edc7efb032f0d05f7576025ec84e8604a36c219faeb68b595e1ab1d17379453674d0994e78712ce64b97e4d05899f08e952454e22e48188c00eb9863de582481f567ec25a0224b2b6a446c465e368512017274bd13c2a7eecbf6c80427c4918573dcb18b4f1b9a6ea9c07fd7d2c261ff9d9445c7d6788287c20f18f4bacbd7a7ad45f7860b45b27906aade9288c5603104d8d217d08396a33d339316817f9af5ac7d9324e256dca99927fb2237a3f5161671ca800d941d9cf760addef3941458c528dc57f2ce7d1c20591026b2c8e70d711397f4eca3f59bb7b9efd6923b7db68990efae0d4ccd76a4cf8f9475fe020ac67e5424bafcd25aa4073890920ef58fadb28bd1cc5f77f434dcd825c86a1067345e3ba2ce3246ccc82630df34ff085f20568bc00b814622e8d3625d24c22bc1e514e0be61b395d5caf2f6487adb5c4cc064fde41e4bdf1d9468e7647a5170f41970a72e7004b15d18b1133630ca7081aeaab57525cff91e05602c87c3eff3b75560354a1fe2c13cd692da87000cb29cabfd808f5736dabee0a20cd271e10baf33b854ad9c1639a5f791f47c0e55f244b9de43ec1c23648364e0c8b24320a3601a8bfef3770f8f2ebad8af96acca43ff4301bd3ef4c5ed5c9a2fcdd840dffbac72d5fc008311471fdcac9d947a34441c853d4148548fa768292834c9f557dde972aa28b42f0cf2b3d688b53d5071ba5f5a8bb37132dd34dd51aeed46697d82f55d83a6dc5d15a4a483a95702513bc622d046bd8cfb35272536a7a599de4200e51aed2fbba9fe9097630e3965c832425b260e8814deea5decd34956db2753f32c3288b293af39e136e7758aeba0ebd7b3cfdf31b21f47bca59485589cb0e8b5ee8e5a63ea5764867da517ba814885a726d5b1fa740cbb2ed4f638e876645891a5b9f768a32f2a03e052b3b9eeb956635b82d3f9c55e8da481da19539b20a7b53a4d112e74dfe24d2a321a63184a7598ab02ea281eaac6b231c6cf4b3af204754c33509d491d7315e0b7bb63dc543b9881531974dc59fe78a2c7b5e17fc2b03ba0b92e22d211b8b381165d1162b1c0e28760f58cc06f06a29aa40d8b39bab798ed20b6b795e95e35f2843c31b4b03e4729d516e6f0f1335aeff9c00675efce84790a842e9e0efb35f676cc4b4699a0cc33dee81ca260d3d1a072211004b41f271b5dec2b7d3edc51121ac531302b5a32c05e8486ad1913c1fc7811fa2bd4756e8cb7904cbed42122c3a4f72460cb15075cc71633e0e1f42beb25e7d55aea39bdf6abcd01c5fc879b51c9ff0a356bd350fda381ee7af2f5ae65879f73c49f29ebee93d029cedd46d77ff03074feb0cce158b0f0004a1117a153b1745c6f137d970c07b9419e19bde213d227ecb4a14e5a6121f103f1c95216d9ca4d342f8401b99d90a45d4e73b7292a01eaca0d796f9a1c7437ca4bf47320082a3ba2b73c4e9f1412a14e1cbdf03088a13c0e4b3d042c4483e29df59b9f2c9c50a02160b75b137829f14a54d9b32f5eec61c3455b068a184d420be9f868452deda1632a01ba15c43cf509f52d97567688c4b8e90a21580234383739748853f7a5c876fff063e6f45f52ab3cf964f5ee469c91dc47361680ab21f68554dfa25a6efbf8117ec263496d9683539e25c0df67e6ec4e052b6cda3eea7980cb5ab385f2ed30782bb1458a5cbf75c1b2981770cec8db61f1ed99c005ed4cd4414bed07fd05187de3ae4fa999c5a45959527c0f49366e5ee1ee1753272d4130859083e5b8de6f944743a4d86a8b591b184ee2bc533b12fee4075e97a218b3c91ede4ec0123130efa15c34186da611078e0e7045701794ced1a9a8187a24af395cded4e6d3f293573adca4bd595faa4435df00e2b7c0cf943364eca012485371096640bf23b07b199a0ccaedd8ce3642d5ca89fdc710d77efa53e79aef536052185e24de422c161f66effee381d7f52f2d5219ea6c5c5cafe1e5f2e65a0962c57a9077cebde7e4bcc334b9c18bfc3d698fd6a300d39a6591bcbcc1584f282446606ecb4254219651e1fa8df195b419e0147c6d4345b936732154aeccb5f074ba0301b2d53f241f25ba89469c05c01448043284dcb53bd570895341970f57ba0422fcdf1e74278789b3ce7424775152204da0a21146878b927e0bbc63e8e7f22adddc11e72385a5d8ccdb4235842a7790cd9099247238194a1eb2d2cfb34b9fb1214b4d12e9b4f9eeda9f02cae30d7183d2e72c1e078848bce6444141e15e0f13d5c26e09f0eca5dd99f0b3b0386116d2e7e70747a07915a216402bdb3a0f75cbe74c00f4cc61987e44bed4c564197aaca07338f5a94321503da5ba052df028961aaee39845e571f7f279ffbfcf6b98ddfeb60d0f0ccabb902d092ef6697d53c8017d23a258e8a081b183788d63b188a649aeaa30cbd51a7afa668a633b6d325487dfe26289c8a5881924f403dee5b10e0a23bd2920a912c6365a2dc76a39ee6e2dc7489a907e4703cb5f4422c6b73c1f4d56575cd40c89d69e52c6341d11b1c7b356fdbaf1de250a0175a41174c823a78bff73594242b102799219c1d04e750b0242aae6da90073470754befde41475f89ea461d0ffb702865aa9f8bdc18ca2eae7e61c7a57fd56faf7ecfcf26a36fdfaabfbb8673dbd4140027f490d87d6ee60a71b740016c43f53d9b87a868fc852779f09509a23b2d3990eb83b368e9dc9a0b693cf293d5ed02349d811a1fe6cec2668e719fd988891d4746f1e6bfcbb24ec3c8fe8ab4672c4a8758a10ca184278faa486c6e110622040c3ae20167284855a4646364af4d0e69f169b916a2a08290bcbeb3ef5a1240bcab5721630ad3238b56f35584cbc0721300c8c9d1294ea1d55377540a1e3f72048638fdb1481681d3764af8545766b529dbd1e4abc2a9b0ed8eb7f887c0af05c67a8187910e0ce78a54e7ecce08e34cc6d24254a0c494ebca04b1c9daeb43eb05bfd826811f8f61b46606b8a6376ad29e1255c5f12b08007f1fd2e2c66d9b6f5e87dae618219d76aa27a5e70f76d6b697e3ff9d9583c556418f6a31af7294c990314762d94281c97ad8759485d0d078a39bf51ba1fa2efb1e31aa78571d53a302dde9d87b258dd66511e1043416e0ef3e4b5e0d4455f54c367a625276f05581087608f2da44c5f9856dc0b3c8866897a4f102093133f4a79d4b350d4678e72e2be6f1ab01fd7675bd68512815ff792adc3fd5d56c620f6cf980bdf3c65af54d47500429175c8c2d04d0131f87bd8daa54d8208c75e881dcf109b1fd6532886574fe1549f614c25273539b8579e32918d9104221d7397534a4ca123aa6ce3c14eb2508361d1134983a18b94365aaf6164c3b68a68180deeeb86600651c0d48e500d3e5e7a0a1b20d7ec7203a604def3fc5130a8f3b193f4fc87f79246e7b0f2cd4fc3441231a8e0dcca4452dde4f79e54a226816e264ac8404fb3c8c416eeb74559c00eeade4f671d806c62e5a0eb618568b7595c9bc6edafce8f9fbc10847f8a7ac0497b7176cb3d204e479c6c0ae099e0f403d14d583151ba892074b750efb1861c8e98e217894e6dfec1dd8713297f6bea828c26080cecb28ec63eb58b469ef6d719221e21ed9ebb129e2d42cdd02518686f4047c53ee90d7fde1846c5cb5765a2089dd5242d7538e8a009b4689f1323887932f990f54156c3aba94893fc6010e6128d74450223d06b78435a9280a6108a27f80c6e74feb544e0d06b176a7dbd76acdeda6fc0ab93df6b93475ff5cfcf7ad0f900f1d77440e49e245e9f157f167a817d530c5e916ddcd711de7acb49ca9ebcadab784f0f1fd4c478cf4a7a178df19e2db60691c3568113b2fa2ec73ca10db3d8394871f6793317751d2beed6747ab8335065b6d2f6c44305b3f1ac19148b6af332b39b3b7d952aed5a4231cfc784b7d6556bd4d278ac6265df363d516ec92a44f25ea4b2ab4b68afb1892b18a44af49b83e0a02d385eb811105f9c3be3bf1906fdeceb9abab4dececf89361c38fd0eb687619da60d9c015ffcaaaf79340b4fd4e51e70f2d3f2a3f72cf9cd2c21b0d60dd4f02ae967ee4edb68f721886a22142d6b3560bd8140c6f6537e2b2e68dcf55ebc009d3fea68ccf80e75a56b0612ecdb10d43bcfc44271e2bd0a01846f497ad371ccce67cc2fdff8091f0eac1d42ec632300ea0f21fe08833961b1f4e20fecd7595170b57029f64b27e70fbc36c2f613035210f936172096de4ff706580158743dfb0c62cb00154bdc4f5cefb620f6f14c6900b9f72234f0b14a47c74456a49acb5ddb9da6dfcf26f61c77d7c017eabb0145684cf9399a1efcf19dd0ba5d574c6a78de7b9f525edd9b40ab8a83f90f9239206f2c9556012bb51a0481fe363e25371f355ee271d0034cefc6a477e5f872776eb314bc8641fef157acb0dc068864992c75216dcdbb038b9bbbd2532934336720f7dbc16d720f90249a1bcb55aedeeeb80000843afbc8f4be38d39168a754a69b2d3e4feaadabe20512d22d3f98019ce0c462b3177c659f9af196171d21393ef89125749ea1a5677435df2666992cb21f2c271348924c23611b5bea8ef4be650aba0ca7bfa6cef0aa2bb2ffb477f820299ed2fab250f9d73474bb26f2f925bd7a0f8f4f3546249042b742e7b64cd063570d0c4728a490f2e94d991aa364b28e3fec6a324c61d657b7d22e02a38b7ef802d44ad4cebc840e4503576e6f237e843cea5ab7493750d0423e3b70f5f5220a36399ea1fd597e2383dc1481a7c9ca73845561e8fe782fedc133648c1abe797bf981022dcca040566ed745c568d53625ba407bfc4755db33414c0ac1caf9a3c24d5b10f4c924dbbaf0ded27a7b51f27ef3e39c8348c4462da1cea7a67a62e33003c40e1ff81c8a576c2bb630e7e5ea47c936149392dfae66c828e9a944b70f85c5d5641f685a6e5cc080832ea2b06149f4498ad78c0096e36fc59fa7241379da8deecab0fb04b8c776f7aa6697a170d048f1c2b06d002d2f5599a02ab1e7cb262d21e87ac0c9a958aa3acf6d0263adf630d2c83b15e22f3cd7170e6f3f1ea5676e6f9a1f03f8dafd603bfdda23b27d2d151574065c7407988a9dc87eb39ff6cca418473158ec073bec67175ac07e5b3e1a900c3c4d3cb5428269ae84c2ad5f393e2ad7faf952db3e40b47ff3a84f06b37bdc484466f38e1c8234606dc5741361a78cfc0f7d4c18b2b6decfef68015017dd005bac5d9ba5624d56494a2c6333c95547ec8757a7324107280ac5fd5e008ee79ebfe368664d560c9deee8739ceac9713484b738d9dd46844cbfc522b66ed1004a82e193f5b75838f2e63af8e599ca2aa5ef92ba45e580eac931471b73607f9b08bdd087ab00610a220f28c3a88f640550240577f552e47f75b8aa852a056e2231db3e6f9b893b1e12941f3126303e0582d6a17d5d792560336560a4432cd255933cdafcee7be7050023ee2026eb7892115c291dae3149c9e14710454ed7ee16ba791a699eb7135885ff39b4d5f623a25bb5f1862973c582c036f9179b7c17c99ddad7ed91064424ab28e6cdfb08aa53515dc52e1bd7742291f84b20625f18d78d0e0e7d311d33a10f741c8f66a4a2a8037642762c6c868b6efcf1d4c54e3811a4a21074a85582365f206cffbcbb33062ca6f8577a7426841f04838f7bfbec25e3ec99d00510295ac14c5cb9e6611d39121aac48d38b22d0695aa732cd68df3aa072ee2069466b3d550b1c241b93d8f5af01fa833a9c888b9c5c77c0d3f2abc33ce4da374e757c8399fe657da7c64792426040ab41b389feb8d7db96a72a07bfc9612007b45f964f54062897f640ae1c64306a0cfc68a13451b448c2d14d6f23c1200b6578743815650b38b404eb9345c77d95f8b8c3246965550efce0f539aae731894ce50f6d809fe15335453326823dafb60acd081d6b608b6ed88902bf82f1c3bb41243375fb313f9a2e168e04ccdc8c9428c0f69577a1f7f06056c277910017e47c4f18e78775222e1c315660f1040c391b8d75694bf29d2ac8266dc174051d3a4bbc40ff69079bed802814468cb70e6c914fa9de7b9c65200479d83acd13c7d5f1083fa654c92d5fed42c6185fdc651d30ad094e63ae63dd3a211de6bf9918262e1e222a16feb74dcfd87591cc5c77874b09aa60415f60ce3094a231ec4d330ca5e47622d35f30bf6e8cc73e14263be97b788283d35446943e81f1ec005226f84cd1d0b5916243631e5f508623836774f83930ed19093a411b0f343432251215926993ea8308b6144fdbca8b99e34026aa81213b7fe3fe45070a530e71f60818774252e0d99c0681b7a61b6b50d389bd0973fb3c17d621b98c95fabe0aeb7e6c3ca2820143fc59a9a1680308d32d07d3279f64922ead7ef999afebb2fd3788f030c01721a4f5f4e00f281a76aced325375c006dbab8e1821f52fc470c368114cf71766715161986f406bc4a19f9b3a580c4751ee778dd83394cf1109ef38ec140ad80c6684ebb63d246371f400678b6e740e7e7b49656ea17ed607676235610e5bc197d9b09c851a6daad38305045e9b67c97b799809c2d51c6d4476e11f8f30bfb770ae93436ffb901d1355ae0d8e2077f6f0a6b4e76a4fff7c7d25cd4a1b8787702ef18aea8463b58348c520fc114bed99669ae74939f156daa21b95ba8296bc66e437cecc1f37a7a64ecde7f53945acd360e91b49d4f673dd17bd353290f6b8328b9b1c221b440143c7a300216fe639d4c22cf2df67f19bcc30c72179420bd2bd39db1098e4d96e87b3710b52618291549d709bef52102be954ab65dfb1c63e12a8bdff560071980fb83a70e94127c0d563664094ae065178b4bf787753104ab0bd8010d9f88719ad60e9e26b37409c0dc39d1d6072f6d21e26af534c249825a5c1221a94bc8193a2ce18c37b449b955a50f5bb9edc0252ac059c8913a2c5d5405c72124b34be688900b90f42d6abdbae500018bdb00e6e2aa45c92c70578ad7b14a9c5a1072e967ba48c073fe4be07ee30d512a6b3bc1db8a8014066ecc2bad7a1badf26c086bf559d4558687380543d0839999084e44f855294c7d2e714fea0b4940e88277502c8fcaa02c8cd11072781d5e129e0d6fcabe9859600e787c7ad9daf7645a19fdf78a8207ed448a9a411cd5bfd38610077fe801e7dbf4027e115d3a46cec477d7871795c9f42a7c4a33b2caefd22881af5472d9a8e8e8afe9fc4120f0147ccda8cd0e2213e31bfb5d48dae342f24d6df84aa92e2f15f20d0138629231d4f20c61c2e05df5468ff9f056a3ff5cd5bed50ef8fcdaec81f691b553c1b2dedad7cd43c9c7c70b2b7319ba2c1c37438a91e080b00da22df309b5f4bfadc115378e439b08f246450213a9ef3bdbf962a4dd530ed88642eeeabbaf78222dfba87feb9b9193c92efb0cc0f5a8deae25880e9d76bf45a210431a9c4dc05b7d380329304c8e88ecb92cc9b63333a61fa79fc0118c60e819678e698beb140e0d6eb49f540c83f05f14175c243bbb67466d3e7e3c098d362df669e13c85e41b0e51a4a2c64206c9869e71de44e6e0dd06a378ee14dd7638ca210adf90b86cc9b63f5b5d352dbe2216b96e0c7b3e2038da0647780c805c9c87712d57ee3a25963550bfa61377f08530c35075d448220604975ca9a192a82f823b57fd1b6a1f1da2c740cd1ba04212d13a0b64e694c4c987ff9f2aa71a997568fd80f0b7edb1ad5854068ad78cdb6653c088617dfdf89d4143bfc6addec67c0e086c1a80b36a6917ed0117bcd98d807b9e01a73446274db5ef11b8962e5b1a9c44975a62b8b4f7689ed8bdeb72674edc745945715612fd1550d5dd2f3b83dae5017b350d5385882afd967bcd65382dd7eab753812c925d6abf1d07ace8fee34a6fb95a739ebd363786e08c1fb3930010f899fb80f023efa1bfb72228366b5cd8f516b1cb0af29e76f1219155edb5f9de09d1365633543507d91efe648ed9b43057681f10aafecdcd4ea2491c2f86f7e4700e6e80e558724278c650c3a7861d8729bedb8260d3ada9d7e4b9c968c0d5ce55131ddbb98aef2301ae828c300a806c6a7618fa93f5d31357b3d09577f03b9e82af2e302e84ed34986fab847e5daa12d7903441b519d475b4877363c67f1387be53f3c0ebbbe4188de50c77dca40ec69c55ed32cd482c3ab867862dfb46d8392038283dee76f3c8440733391d22182963e6fd87a4daad9a3ac12f1cfd0f1a8f3757221cbecbab7d996e27fc7c048909e0c03fd2106735ada213d3e1a54436f062df4a9a2855e7ef2b35c5343742d91ea22e83cc7ff38f9ad7af91d2b676f33857af59af8dce7fc711a5662ddab4989e98ac47ef7a1890cbe8f5b491bae121af4b18823ef4e884d4c60957b642e8b27729bc2a5c35e43dec0f5e6ea1f7ded7b22b2a8c1851144af323f9c31628533201d5b79c01a5c07d6d5baf6793fc1fdf4635818d6df95b6d91d0f048a8d5d64206e1c5a3eb47016c5b9702e6c9f3b466b2c5b9ea6f3c18442bcba9ad44c14bf3ab9ca2ec4bd75b5256fdff50d8ec26a581418348a88a1f1bdb6d851b5efb84e5464f5e0e0f4ac463c4b1b1f651e786a7e3f00c20a83dc94b89ed615b87e2d268887be5a53383c9acd62577a29509b316f86212a2957262783e4a22fe81eed4ba2796af15aefe345298cd24b5c56b0c6ed914e9ef6cb1cad6ae0d96abde005050746b54a77cffacc955a1db04fe85f9cffe027063d6ab9b6330176cc7b08f0deb5d60e61f86cb2eecf457bc4b5f69707f8f48b41bacbc6d233b2dc47321fc18e4cf7ab21d66eb3e0aae051f24c51f4b96ccd26961de4be52927bdfd3fb6875cd1f7d845c730ae685e5710f919e8c3c23c8564065be23dd3322804a91c010b0f43f7551270fe9f1d652a6c4a1f9c0daec1e2036c93db22b694b240b71a9793d88e02486a9e624e3437748f1c2cc81f41847c06f9df2ce8c2cee548b56adc56eb5708954fe7c9060574bfb63091dd8402a49916956b39468bc9a4d0bd09eb5574b3e26c4415046268179b4ad59e78e7f6e77f9c9a18bdac3b3fe35c2ade8a50e6c71a587b0d0f04c070ed612442ae95d247e4826909361872a6f450d95e4ff837d1fdbef08e48bf9ffdb6f77d1353b21e04c0e3a22d6806c7905a44e16f09954ed0b9f0b918e6a0c89c5e7d02d718bbf69bd332c8c3e105fe234e3777d90382d84e68d6421cd6948674469e66384cbb0ff609b0cff242f0749cf33b3087408dbf856ea70e734b5cde2d4d67842bdc5d2f11e3b5cd855e9b0944c41cff37245205540d74d53e07f1550e91f3c6136eac7d96bc10e70f027f1c751376e01aab061c01f2b45bf5c64abcbeb0255eef431ad9303813814d3ff22ff73b48513293cf43f92373a93f99985c06cab767d3d3724be92a7bff16059fd3638f83828a3ccd0ab017efb80ce105867263603104aa6b1040c162d17517923319427affe4643f8bede7e5e1b5f9909e5008344b092ddb66d01435c8c600b926fd2203a02c9367bc0b6daea71c96dab99cc6d6756fddf1686fd283edcffedfd4be2ac921d4827d5feb8a46a0270ce146c812fb8a003bf6471c6011cc410ce9012097ece29e576626aa24639a6adb0dbc0345b612ffbbfb42b6c7348c41bdb58e44b6e43cec39374fd28e43292607c7aada271faeca4025869bd9da1469f26209636f8eebf545538680bf3ec8cb5a457ab3870ff63ffba246dacbc5ff283f6017b022162ab7fc5695ab7cbda876095b92147662506de0545ab3f3fd9d0b8f43e5d83fa60c3c571da3e6c41238c3b1509de7c411779225d46162ab68e90ed84a15b6db2b878f11d6046d1270dcfcc5e689b62b8ddfd21c981c3cff46ef2459cec6f0b5b1d7865c69af0c534db88e5cc8c63b126e0ab734354877c6fb9357ddea5ac46532a0ad90d36f4a016f600d069ab5db6c42d3343cdccdc2d5f7519b0636cd8bf9ecbc94d17e15b53a1ad9901504cf62dd46669a4701a7f46863f06ec4e0813650b687b50e2c31a989446539d2446df61d2fdf0ca500b7a600588adf60c2bd4060418b7e6fc6242ccd2831b6d61e8e8f70f2e6a1fe8e934d96b4cf90ced2ee01c516fd65b572b551d7c4eb55536bb3bd7125f5e9ecbb8be472f2c3929010d66bd8b0c6e0147b7e5674867ecea66d35b3dc43f90d7f607f5bed8f6fd9d6bceaef1e374c6f0d5aa780bf5e6f6ad7fcebc6864d06a32304ecac161910c2506e1d8e86cd0e67a2b8246714d0ea01c287e6f4d871c3cda8bfa681307b0b1037a3d5cc115d9213ba082d2148d431d4a8f4ad6ff69efdfa6cf6e4fa159c86b6dfbf69d02aa05db14bf6bd8b1af1000b9b359bd03dc6e00f43672a63df7447b936397e8ca1d68303c8807cab75b1f255d419209bf4ec444f0c0b5c6fad273f768cb1e098390290e97edc9a273b89e55b805c032a3672e93929829da491d52696de3d2005448a871c920d5dff6603651d8c8ae08ecf3c3d8cf3d52123c5c80b4c4525208aa74b16fcd484101806c9998e65eb50b7af701f96576ad52436437704a73d4d6e7e61e469bc48034c2abc227275ba0f8a1c1b53330f6de30a2872c97f612789ea50d28319bb97e64c92a87ec95d0ba110c90ec057d5de5e1e36496049eb1ae4156d7b3017a8e6560381c0cc289ce183f3936e42a4aeae643973e220f6b55ff0da9991b1ba301658b103aba8813a20569b4f38d8b7cbab30a0a03554a818c72fdb25e465fe4f4098e9caddd83479cb2f219ef2e9bcf2c23384a7dd94f6e3fc1f1dc58580c614b46f9d3458957b68fd318cf80185991ca6f713368f1f925afcc8d0101da768be9c36022aa5fdfd043299b41286fcf7a92faff043101b21b28196bef0157b28a5f7e0a710633ad17fc4227b6bf748459e1b27d0621f2b9a4c60ae08d8ffae4f746131d1310bf3188f4c26adb030079104fb7f8fcace8c44f4dc0c32901648df5d814704dcbc920175114807f028e4cbaeaa04f39a7722a7e0c188d0949de363232a599827d1fa9eeefbddcb7257ceb616048a6bcfc1b99961762380e3a06b6e5fc35815218f1e7d651b444a1a766270522b2b185cbaee77bea2ed583ede8050db75b2652e44f230271571483f718b1ce6e8bc4d673bbeccd94c49bea3348388016008b7098e6e44da549d603c5350a47ee968711c3e9b3dce4724404a36bb6f44ce04b54bee9e58e1266df6e681a34c21833f3108207fe4288605900056b60aa961874b090bcc0c688b62154be4a5d2ae44422fe10a4864b79d785bc59b943b67f67b31666342ab1a62c4e988d671e2cc7872898b5e9d162a784e806e3f6db2fef8a003814350645be4dd68a84e609c53a03e227436004c9b65ba7da75229fca39426de28051acd6523d185dbe76457ad964b1ba4c27d8d7e2afae03af6fd2b5b992f3d914c2afabc58f4450424ca7a7f977cfc3dcfce3f15f69110a28438bab05595e59e513c14bf0456db986c9ac7398fdcbd2abfe9edfb65341919832ca87cf3841496f466b40f494e9db859cc0f557b40b2fcb6486f86443af373a2293d542aa9ff0ac857977487a09f9370b12cec99df24b6f5377eb9bbe05ed94c13c3038bb3bf6a3f343fc73c2b341370f2cbabfe529bb1012d0eadd04f277566a559385eb379dd176138c135bace69f5ecff8e26c35976a86177adc7084e3e86fbbef1f8992e898ea0aadaac03ac7c709591de2448e1968f95f248cd330e51f889731a011382955fde7cd41010589cfbaeb5f3a635a24fbce3e6440e09a7b840620193e2d4fdc4c5e02f3da8dddf8d1014cbb914ce8c58ff7227d407d5798dcefcae5a1ee8088a72814727d264f67aa0cbe5e41f13354fc9f331f845c399df96d2452eb375283e96dbc8b3de456ce9dbe17a8643009d5b71536f21efd40f23e1274c780ffb023747516298ef2acc011a4caf2b434e99695c7141ad8249247b1fe9a045f9e8f885b01790454bd4697ccf8b94bbb4a487e3dd0d1d6a45acdbc7c9ccbd3e5c08f292ec3b4a449712c4c0b1c275cbcfa8842bb0f4799f0aea6c3245db707f7a3c08814615d00536e26ae652f090ede1e53758ff1ee63313ee7e116f147e043d4dfa6781b23dc202789a7aa3202e8430ae19fd9bb948a08c63da2ea835d6114c6bb9963a1c647f404c0d4c9972792de3fdcfd8eed93b55fee311704a414ae4d4c90d81af3e48176c90880f1b7e218e6c185c3503af71712525d42ea95e5159e88e150a9ebbafff548a77cfba34945b525eea81f0576049791f1c2bea67087affa9685d6077c05797b39a32552de7da7027e43ee58f0a8344ba05ba2a5b005ef5588746c54601818a631686707e1acc26f87acce043211552b4f47ad66c8bddd919dae5f5dc4a59c0438c775586f81a9873102e5c410035f1cb685c0115094d51f4743e4eaf0b2441d17b91053370093b73f890d5bf678b7c56c8fef4cbff904600806714fde8e0c117dbbb18d9579adff966555cc1eb080604ba07d15583e0d2c4a1a78646d870baccc04a3f3dbddf1837c88badde4c6aee82e376dd73fd8cd078611f86021814dccfa5c8c4aaa638ce839d61a502c92dc122c3111933dc6b4f530378292c778df8b8b9e6a696e9fc4b4f251fa0df6d1b012446b5ae2a1ec18c11218912e7ba9e775fe62595aa918856b31bf74cb0c93ab89c3e4d2158d8ef01449fbebf1a1afcec7e54f08bbf355774c3209d9f35ceb43be495a6eab7e316e57f85c1c23aa8c105ef59ac2b34aa4b5d7f75d90829be82ee1205d11a314f4109675275e2922b8c243e050c778f2bd72cc1d16cb7cfb351407a97814bc8369fdc0fd7644d54f2e610242f5455517671cf35ff4046b3bc007e9d38ed050c595e103a6f1ea2d983b610c739d95791b3cd8586f4ef18e9e94760fd75f5f64c75069587a4efe5cf9f43fd9aa9f19f1bc975a0b3ea8523b275ce3a19cf8a1f41ccb638a9cfc520f06e64c21138a2c938ce0298a17ebf4a989660730a529ce44130a5b168f41ac5ba9f44979daba9bc6d2b15dff1b95b619c1fcdcd23b736adb9bb801c0f6b2233939074c5d7614cd43372fd3e3d700c5eed9a689eebf903d3c7be84f09111a9f1585429688a84eff713732b8364622bf9dd46b8ac104d6e0a2a8a6315d4e534a3369358ddda5a3c14d2df901134d4aea4bbd2f7156111646394a2030e8d6e5d74ae3878830676c84d0f18187d087674acc073c4734306502a7f7406d5464353749d9abb05c575358d5a7f6637a3bd5b08d54c96ee7455b7acc603cf20e973a5c5b1de4c1c891a872e1116861f4f09170866a26a255d2f71a04561684cdb4231e3e2ae5950cf746f1fe6ddeb8a450652a8408d4c9aac6f228ac347017eaa92fb3bd75e08564055aae658305a3c17534703412830e77d64f82835677e1679d6d1578e0008b9d5db72a1b6b41a9b441f1f442f4d498fae25cc5b0081c1b65f0a39a2f85a9b52da6ab1dfe53a14d36543ad929cf200a4e2dc314059d7c17a6820ce72e0ba334d86303f95603b67f928310dacd0aed7df8d0fcd77c68e5e82b8408cc6372626ad835fea6ca6bff3b4eb15bdd4199bdf890d05f9a3b44e68ea727c6df354e95c82c30d729f0d6b98f17ef1cf5554043be5f975b07ba869c52fa5098205329f08b4e905c64c0e8c701947b4e4006c64d216de06f4b2e5541c188a7871e083ea95b086ccbffbfde5bef1b7f222974aeae36c24e2308928e2bcf3490e432891eb518cc586346155fe6bb080e51c809217a03c863218c567b2bea370eb8799359bc6ccdf561c922d778d859b46d3a7048571d8628778d98c28da219a26076ec05f6d0d1ae7d711b2dbdd83bdc045a85690128e029609209faa8acdae6e414bda3f81d6eab1fecd6211e4953b24ef14207433d4573d380e5ff1df8ec12ad269013c57ecb11d79738da63df1289bc87f29614f629c0ee528cb8b7734a13ad8445c89b0ee167d7d2f0189e8a43120c6e28fb114092c778ced1840c38d7a27e2192800df96b8182dbf8b883bbedaf3c042f390bf517d5c1e30dd8150d9c88ad9eb4c5cba145a978862c01d04b41251ade57d0a814ae631c1920a255cb16203e51a33d744809f315bae15d3a4fd404697ccafadb308fd047019e787c20bfb2ee7ab17d7dffc7d962b8162d2a15d5af38bc1ba244989531cc046e46da626cd245da1ec349b9a87e1af3cfb9ab2095799eb7e42678a6f520192857f139b0a711f20b23828a34af753be6fa61df1100a2a4d8b473c8762e40ea6c787f7d1ab57d7b42bb5afb3db524cab409fc752620330ec4c1ce10fbdf2d12e684ccb3980ab55a108564e295def99306fbbb7cbb5aac195f8f4e706726e644ad14130e41eba726c54ad30a6da28807c22b442ad361db6cdf041a2083a45bbb8775893a2b486cbc731eb1294a8dfb7edf1deff9a699de7bca8292c230e0f4ee0bed65c241ed8dd20bb21e32f6e72ca22df93c76f82af519ecdea0e6194a718fb2ed7878d81ab53d0529e33a17435df4edcf82f861a6f70a8af3be7a22e961dc1445a65b057f0f4e1f463582e7b34e023150baa1e6bf69614c98793b3be7b136ca1efe44f5ec042a191d6e815b44b70d26cfd91f7c933ce2fa016fec6db4ffd655e2e293962b8d2ffbb8cfae0e90866366a536ceadf67b5f51c63a7b1d23e4b8ac527aea751e27b8f2ba4ae880df66e060903f96a3ef45618261eb1a8892bb244df0b5497b8b3b1753ce3fd0c90394009773f4a9f0e003d7c11a2e2276261f6d807ab44be0301ea7cce24f9b4d40536a81982bb55a5b1aa98593f9ec2c956991dd084ca4982c180ec9a00283b2f59bb8c111eb36e55ece013990d87c000dd68c791bcb8355b62a046cf7e2fce1762a993c4725fb3d655519f53459729da588121cd5b74eed2f84a10fd1c4ff6424684081e0b750c2d65151bd26f9b20484c5a1e41edc6b6e0113a679d1af5b2fab65ad6228bc5ca525ae6757604b85e252015d096f06e3610ca5ef42a07f3331aabe791b0c8dc1f6d034d340a61c1d5dfa6a58cc15c62bbed2bbdc947519f0c03140b1ea5e8dac46052f06ff656859b95783894ec5827101628a5f4bcc647d6093776855de3b3f795c70ccea0a7b5f357c5248268ab87f0773fbf8dee7759691369f1f0de7cd83b730e0e9536c2a72f3e5fb4ee62ee095654521109373b3606d1c8eae7ef54d630c1c07a519502d0378ae4a65181190c326d48a70b3e4c1476529868578395de5e55a26a0ef16f98034731403964403910bc32156e1f2cdd02f450099c6f3b25c0cd0a884120e10aaeae9598824aa93068d9f9141217e2a44c8c9f3277aa745d09b9cd038619c340f5599191957e571dc153ee60c06ba68acdfcf13555140c020991cc8d51d9d56471ac3ac1b7f031ba1ff2024f046f0c03a59a6a6ccfa153250d04da2c95a5ce53ae37551099049659e3b966e29f15d8a26870a4b8369133553b1b86d27d087326288d61a5229c890587567b68a80365fa264966d1015fb60fd191752cece15e26c875e4d92ee8150d2feca8be96ca5ad9410a0459eacdbf7e70fedbb32e92c6580b400e717f51f428c5dd180988fcaf0fe20073b0f28f84d2b852238f1d01ef82e918a2101a454132f85ff966f19056c440b15f10113486dccd00204cdf7bc574ac6f4ab8004e712612f3fca869610d4bb8e81b7a182dbd7884292348f203ac678217ccca57750ebdc33a32506ace43f2340048ea62625dfacf0ff18c37012d05f2fd4963388f6366d9e0644d6bbed0d5bcaac890390db3f7577a4669e6925c42761a18e26f59fc09c9a174c821fb79db46872a6e20cacee0110077e87649c594ab55677376256a45d5f2c51a6a4a9a92ada0113933960d47cc00a8a0da6422c84a368878556dd0fc971aa4fb59c3127464932e1d041dd18c4fedf214ab3492923bcb64264650867afe1730a6b498ccad35f4450a5d42515cbf7728fca23c0d34f85f9190147ca0cc53df21effb9216dbe25ff85706417c6de516a099e8ae9aa87558c95ec297c8557281b5058d13dda783a8d0789fa8c167baddea12c37ba679decec157a613f49c39de15769afd8b6a92988d40924df0a8c87d4501c5ce51118cf241007cca08686d632e127bc2cba312a18b4fdd7409b5a755147c8cbfa03a4b50428b198f8d60493e60baa84dc61e380d93199fbc2022faa2be04db244adf9c2219e6d0cbdf2536cff475d40712663f06c52541f95c99439fec90102da2132b45c1093b756512d2a464b085581102525f647ea20c53b48207c61042973ced197c7690d3052dfd32b088fc0f28eaaac1fd0559421f9127c85d3d7d0a2b4854f74305784328521fba69412147faa1a7890ed4d16b2747330cca81614930e6c22d0fe55b8d5fcebd5cb0e18484c49456835dcecfa2124ab89d426b1491569d688d64a893db1c5d05542c78d29b31c729e94c835e9b76a5951c239f0b4e8abc08466521ecb023c8236e78b2ea13e4303f28beb82b345407456d4eb4edbab8983f35c4b8721c1ffaee026f9705df285ad996e681298cdf9297ed9cea5694d93d86005ee5c5a5d18e1349d91e31a61a0111611c9f9207d5ef9b12ffd4d1edc4abfda3da82da52267cf8693b62282dbd2856520990ce0f44904a7e6209cf63e9c94caa4f6cfa4d5b7453c0b589d2657628bdb1590b47db65add45ecd6625a0bbe2ef1bf0e74a23b1da52837e72087c3627193927d9903af58c889c55c5b7c0e0d3b4c7b7a483d2ee6588a356501e33b3de8d267db29965ec908b14ba6aa426bf7e9dfa3fe1ebc814404fa8c458e78d9299ae593f33472f3ca2f98c68c03ac5dd402c0e9ab9209c04a8ce173d1e0016d1971bc1d6e66a601c49e9b0a11274ceeddf8891428b167896e83fc5ce5601875742d610cecabe7e086a27438a323c0b5755d7eb88206c12c2afada7caddac6125c917454483a1122fe23132cee92e236064b4b4e3693aa3099f0900c5ca84489a9fc7b5d8cbbac8f25ed33eca41bf0cb7194836470747e05a805dfa2c5084158f26c62625f17404b500fd63548ca6d61993807e01bb209540fe1cf3f9921a44ff0b9cf0e88b44a1d100b0429b477c7f6140f3ee140a6821acc5326d57c1a467ffe4444176ce33e5759975eb3b48dd40922f34e623494e7924b892bfc1b4bf085eba201fa2853964cabe0d049f4eee635f027b5b142fe3cd69f10fb59aa40d7b06bf6d9fbc1f05288a6181299f6568ceed998427694ac64a3a45c0786c50e05801c200a35811a0a89e8a5ee135fd8b1bd0eec44b62c69c6ceff7865c952073bd8a9b94e1423526e10fad5871186eb6932771e983d19f6888802be3c0bc2e3a069442057b61dc6124a6288964390fc520e50f447e2727a6e05184b3cece0512074dd700588405566889ed3522d0283daa0909edf0198597b4210356972c4147a089ac407dd4dc09d99db0beb611f8c91bade551c10c831a06f7d7bb0f26f0da1ab14b5e550b1d3b36e2810300dad6355fe90f9f0bea1f1b0a43bb26621f4b3f722d87d9c41cfa2aa0ec2115fa4d44a14e4bb2beb57027e2107827749ddd11970892f625bab53b15a8bceba9865bcc8713392548fe19b4d11eb0fa575a1da42ac86270d0b103471f7d3adc6cd3a4f4cbf858c947d3e36d9f6722302993c64bffb95d4d108ef5fd35bdf8d8fcc8946e6111b139d4c476024b2ca3a9e005735db898253bb6a7665f7bc534fea2c9853ce1d4000e714380f2d5fbed9da7cbb3bfeff44fa2c90742717ef2396ae871a05fa90ba9fb341186e8da40482f2dfaa830f6ad68235b4c0baf9946c2564dea150bad8e9526e84b2eb9d50e629c0451bb80f7f50c0808c50cae713ca1580b0b4e50805f7e833e58b07c4560614e64337f43d90afe5f1cd0653f5cbf13df2cadd63b076c6177a0e6370449326c3537fe808f58384221f8fa1d88cb8e9e2a7b3582725828a39141d0bc99bb403b9c078b551e80c6fc260727204676914eb708f6bb8263c51c8985ec7a1fa2bcb4f96f09e779dcaec6390b954e1d04011b54c4b31ceb3cef764da975c5dbd980a4709677c92c407400cd9cfcf0d254a599f0eb88e50b006e779691dec6560e5476547fafbb694fc7211db68714a6d8a2c84347245a0bc6c8241204c20f79f191ed243e3337872f1278b15a11aa4dcd965803e51a213d016212137dc91c530c2bf56d5fa91184b186cab94209358fec5879c28b0837398cfea655d52559d9ba19c85692b9c3761e9ce50942d44516ad078b5d04a01545a338b8363a850fb192a74f6a9ffad92f68deaa43812d09f9efda111b4f229f86e316a2024e285e27e73fc11ee830905109b794a51bb425416276e431749d7ab1845227dc6ead71f98f9f2e7a7a1060b563093f79f55464f102a8003592cb8cf22e45c9d6aa6fe282baa047792b23764a19608fbe917814ef089aafe418d8f1334201bec245875b73dc1b52565109f1e3925250f28cb39912f123a0dadd13408fbd57d7ec2953f350b02dfb270d71e70c1db9bec4ae5beb762af66e8d3e007b55b7f9c457375379f3a008e81b999c8550dfd38ac997905934e0d854b76ad6d68958d4e3771e43c50ec38798a090f761713f0572ce17eef28b276452660afeaaa478abc4688fbf2afb5ada163b4034d05babf74ad7511868bf9f730f24c3305ac02a1d3480b8308e3552e54514ac25e8187df34b80c494af28c8d8381f120e64788b5715dd3c89ad1f4a8fc7827193856ef738cea7153dff4210ece8e7ba20976f29d6477d1c9aee7553a7865650b9210ac33708c61862e4a9064553d6fc5ecba5e7e6018606031ddf512d78a24a324957290a58f681286e1be50db7a6c9ade2c703e1416db2d54292139796821281d3cccade14640fe03662a21a4a8e0436858ab4562c0c8b974a136a3422a79a2e82bc772654106480d30c7f1b6f579645670c988d13868575a848d4684e36dc261d9e3f4de4810ab9b5e57461c31784c29dc671ffc180bf8f1e841d81d26e7d22c3ed43c0dd2812068031ac6a009d3c793a94940175d2cd4f00572e2f99ee687404bb3beb5e4a53efab3ef38a77ceb8bc25d63cf11606ed352d2912e7d6af8b515ea0173f200369782bcb7d3c982123a40bf5ac574d757feb02901f4b6fb7ca6fe85543e6ece47b230f2260b905da28b55320b49cdfdad2774a9441dbbbaa1aa92c517419a755561532e5e095b9c925a191dcd4ec07c0346ab5fa10f36266bed092247336de747a0ed5a6952217ddd015266b41f29e464be2273a27e44f668c212a2e025d767891f76ee0a2ff12624084a34c9c133bf0817d75f9688f96908a5c8580f0ba47b9d02f2b3d72a905f3c4bdf437721768340644e08a820622f7d8fbf58b0a53691a0a9a5ff335d20cfdefa7eb1d7ea1b56e15f320c498e93fd20c1b8f1e47fcd840303d86956205325f70558b27d104ca1691cf4d04152c12830f5fd2be29d2f79a3c3ddb207463a6cce911086f89287062b04296b30eddc4deb9e41cb5cb52a9abaf9dcd36a43f580b4ad58e9078ddb3a783cc1fd28c5ba74ea70ff7ff3c2beba8c5e466c0b51bd8090f672d5d9d1635cee3cf1ec2051a313921b0c43913e64af1c265578187e72a1df111491820d142599580212ff82ad474382da61ccde20c23c896fa59fba16c3d6c1c0245d284e6e398c5f05e6d10dfd1c24f43dd7f74e405f39166d0f40823060e35ccfa4c4014d74f528c2803199343d4ad0f4942a68cffea5e02ac45e20baa8d1a18d51f8b0e85e19fb94095fcc458e572c94cd84031e950f83ea1d00be5127034951fb9dcd97a0dbbda4bdde8e2520c4aa8520e0d0d3d376a5b5c7c61902f1c43785a3dea4527e8378d7cfffc07b10605a2868ccf0dd7a995ab66d94e5d966273bcf1545c82c1bc659d2694311676945957f8468e23712081ca200240b208ad69697642653a004ce2ad132955909ee71ec6ca15dcacf25da08ba4a4189381d55fc25b39831a43e2622d9a4183b4dd007d816e17293a01e1793b1d49e3653ffa50dd4d7636495f0b9750b9068da012cb86311eca7368c81a2a63b4eb4a55c65007144935203f012417089fc7508eae59e310069a308e1d52cc1012c0c874165086e9c186bc79c5301084b3da5965396322b5beaa403fd2d32876caa960184ed8a4afe1756041fe86de33177f707630f060a2bd59ade7a40f1fa88a5548b283a636890163c90670df44a15c2d6b902ab7b2d8469560e2593ada629245d28290d4d09383b0d36599dc908681173214552131c5f41bac29314892d6988583d03adfc0db1b3b4a50dd8a4c20edd7092649133d4d8b83c2e22c105a814662999da3b70d9b343ee5a2256dcc1acb10b2504058494402debf16b32349de8709e5c4757e2aed5392ac97d86b1acd528ce4eb3b240ff41364a198e7f9ab5ffd702f86c73ca144c8d078cbd998740aedc64a43a04ad40d4167c9a6f354b6dd7e068dd61410d976b8a7c3b00ca4df3e8f21c68054a6540ec6cf1898d52c3da620b6056a03a2ac500d4f0cb9cdf546444bc966f0e6d707ad51c50e267b7af2500c5852460c4a30384958daf2a695e0042c242ee7193aa00a579acb5c4d378daa189f22681c60ba97ae16f6bb0946b0540cc05c285fd69ce7e4acac87d569d0b406804c65abeab9acd95b1a65d661fbc30ffe738d26873e766012c1ad9286e7cff8bc1fe521898042116a042a4732d071762921e1fa6311cdcd0b956408a01fbb7a8c28ec3931528b24c63deb50228a27bafe275ab259579460d13f1fedca422c40d114734dac2ef0df69904858fdbe34313e3f45d2ba05965cb350875f25a996b05042f321f5dc8d361049ccfa3fc39b80244a37edea4220618e31171effc18f1fb32a948c00661a04992ae1b6db6bc9469aa212f0adea4224d71af78f93203380ef47fbad36a56019133960cd24332aa494580e7ef878fb67a490ea12aa0392dbbef5401856abf8f2bf80aeff1d947a20ac01fcf835737d64ebe0cc2ffeb431e18155174552a8dab6fe4208f82c9d84c059e9a9190df6cb12b3e4a0e95a4900800d90d5778444542de39e41e922b3541f51ba16452f4a0a3fbf89fa1c414d890fe3f2e6d428d4532905a20a44b2d7fbb4e36f516c62d6e4ab07f1c6124c7eaf21644c90f07ac4ca5c057f8f380c601017b17cfd816e48e8d3ad8d141c3de42c16cf180e0616e0375971379950d1449d9b7c94dd4bd824bcee250a2d80640b6adcc8b6ef0b6322030549087e64156ae42a54b6113fa805a5b6e2339217e4193f8b0f097f69929ef5f2fbe550404ab28f6c013da687fb9419a736b411b6a94a0dabf4d2a59a559811e9c89ff41e1a1ce875f23cc08fe5a8140051c9ce4a5f1f5231e6c9edceecdecdce82fb1ebe26381d0e356ee39ccf6e60f981c6a6fe22f2ea8317f541f612681f1ad2cb05e816cf0a5d75a0df79fb349490d333554e005db04b6f5a705176e82bf51c5c2ffd8f3f0f217a56619852d87d529bfd374e82cb264b2c72f791d2dc863bf46984610bacad8e3d1ef6cad9c0f0a3ef0aee93d5b5090535fd3a5a34740649f88e21439487a31d6876ef0bf62940a125eefa9a7e853d8df03a36dff59bcaa0438ffa6173c831de19b53bbc3f026d017be6e2f44ae540a66df8773e68b64495c48a7ffd9432f94cc9bc9a9dbc63b4c8365356174332f2a76634e7d8e57ca134e0be2dd5e156775e0ef9175b89580b5ff0ad80d7649c0908cfea22f2b2162d59a02ef3e59db0cf135716bec02cdf2f37f91f144eb006ba128921e3d3f25bc7ede5551fcb9fb92f39bd228df24bdc77ef4f33e85586fa95a2d01fee6a30a829069052bb6a8c85ce95d0bc4838583d540f76135c695c578d64f6ac7f8b2f91f277e839163508f81fac2e0c2622eefb7c802bcacfe9ae1b1cffd39ae7690390499cde940e1be867fca1b555b165da595a7e81a3382c9477c185245f8cf3bb2e5dfb0d4003a60b831ab29f38947d295634ef741d4eade30c5681bd358b82839b1b12bb0bd7edda657d5d9208f27bd744783cdcef886397b34aa586df3705ff18af94f6500af5a0b5ae649dd61d3fb0c93370e5348a6da3a6b3c3d20ba972ab9062045f920d31e420672f269a0757c52e8af4096c746d9515c5b5c0e0be28d45e45904186964d956e6b2ac342c989da546e4aa6f68fab5080ff9c40f3899d7b39d115f03267871aab349a30e88102de046a6ca54b7fcb28a17776986d32ed01645cb96489042a40de467dd84e6015597b4a47f99fc91cf308c33bc3efe83bb95d813f8b73f400392029f98a6504ce94b6ca05f3f73ac1d2e05dd8bfa30960e4340aecf59379574c757f487443dc10f959986353e1de9ea54e023700880ca6ba2a51ac2c7577d0a2cb6339856e4e00d565ba7aa9d6b153f579a049f62f12dc0b2dbfc97f659c16ce804c1eac2d832616209666ae5cddc33e80d28451fa63672a089547f260241c2795191a5e57415c03b3a2ed3c152ffc0c809c0d931f0f7a596d1bbd06cbf8784ecbf8bbe28eff40a84d93da43301dc3376abd520086e260d6004323da4f851246b6ad258fbfe40aef72f6b4620ae5683796418218861e07e0a58ef007fdc274011766c4986014f3649300cc80e6129738d0308b1e04eafbe451278626ce5ea92b2d091335b5809c4afc3ecfae1a4df0a8c4f1ae03f2841907a65c1675635b9cc4cf66e6e9292399267d8efb7155ee60987f00b8ce0e51e1a2cc0656cb771a38d176043720b23e8a1c9bdb15d4a4df5cd192c5371e2530b889277b5000330061085edddd7c08998572582446c19178a3e1dc2b19a53889d659305a036d015d34148e6a0754a9d0fb285992bf0f26d59010154e5430d4c41b0747c812472809a6898acda78a86f4f3fc2e3d948cd7a1216c69af992ab48c9c7caff310da53d21b6a0101b66f961ed35803f8e95906132730b9a8157edccd86909b0083809930bb3c8bc9205d0a5788ba29f1c3bdcacd8b1ac396eae883b3c3c51b4987890003243f7ad6cdef9241c35f8646dd7063f5d3c855e912074257a465fa033cffc98aae553205530af8e8f32dfb7d7ec2ebab3a080871c4f1a500f23cb2cf89edb4b4a1ff0570a9057b680ff982b96211538d8eeca336b7ef1edcad335580c04a7c79759e0f6ccd0af87fd0e46906cd1e09c7935f2510469b95cdcd59d49a9c40d386780ed61cb08113f995760dc2210396bb08afd1498094f228e8c199935f8997df4f4b2ba25e1888e0a1779ff68c38f14692f0faafa3ee701bed93c40db3fd6371a8179bb91e1833252adfd0c06710b7dc9b8e92648267bbc224441ed550e00ccce5b4a5a4ff4dd32bd5100264d35432d80529a486bdafd68a823e291be52d6284bcbb98f4f2153ebe0ffc63cae598ea77d1faa289d5ac73536f25d7e21606c0ebf94e99600edb551890fe47276f7a7d14ca55c4e8879263e7cb8ef0a18a581d26a72372f6ec795134e05cecee4e9c1b328486ab911ed5363578a5ffe3aa0204ba1b263075548be10471c18038f3669041bdde3083a5bcdcd46bba10516d87b1230d18816bb15550836b07aa95a5ddbb9f8365c76ff6e1378d8096fd99ee52684eeb36607933ac681c546f9ed25463a41178fdd2c1724d0a75c1e8ce5a77ce2493a41c9ff4da5151e91a6afe054059cf562ebbe4aa20d2ef71702a51b22985b9b9fe2950a05b3263c175b355739e9971a71f15b7d38b1ac206063b587549e74a541304be696cc89630dec162cea583f1f62292032a06f5d9750b34710acca301f276d07565fd28cf5a6a45e7845473fa73d68a64a6e316856722583ea55726c4de641e61cc51f98a5ca75287b55a6ac180d2fa9cf7273c4badf4a95ea6aa91b75829847daec563b9f23ca683053478f236341488eafdd2d69f334e13a4741e138e0bbe6bba46d7e5a22f2e85b348c2ccde2b9225eb14ce8a896c1cd9aa4a8b74911f5bd7184734efdb2960a5478ad3763da31d0ce06091e2118672a702054c24232860c5e2f5445bac7724aee7f31b6f2719b6c31f7a054a42b32dd2142a0fc28759363e70513f3a3c98c0374576e083c034993b99db9ea0ca8298b9019bb5901e8a6e486681f4e4c2c5ec4ebe7dd1fa12453042ca10d3dd8bb6d9320f417e78aabc5e97930df3e5c8971720cdb2bbbb9a5704a247674380a7425cae4ffdb18cd9b057c8de46cb051bd08353d19bca5a585de9c88ec3ca4c074fb70849993882a353bca9f2411c5bde3911007fb35c6024b0dee905b24c25438c92d7d7b788d9370999725bfbaa01153255cf77875a158c3b213ab8db8b545c99afa9cb89797089007621ce9bf0a4c45b35e0ad83ef213b34fd0a6633adab9bf1006f9b8c747718a0ed6ebc3b6ff2ec45abd8184a00de848fb9d71cb94b57f7d369a83cc87afd72f6ed1a837153cd728aa855bd1779a27810da86fdc22eeb80e01ee7a39b57ed581a88135e95525fbf5d840f3af0d64f9866db18466a58b8e7765aec96bae47bb55e03a8ed25b5e37ed6bf9a2cc7b18657c6c4946cd5b61fcb428b367a9e61b6e7f97ad2f50bd924521ee4619fee5f504d03f9399ba4fb322c8d7e1d6e08883c9cbbd9d50a2b7934ae08d4701c8fd63bdee03de694c3cb4097127800af48380ed3ed4fb3ee07d63922f6d4f377929bd13b7a077d2a31d34ecdd8a182345cf699d10a2c8503dd23b1ff17e35d1d08dfb0e9a11488334ee1ee93d1f78a7363122224a5832863d5a8f1484d5d62d3c32d98dffa43bba500990e7012ac084ddf4a685f70ae9fa704795f0ba69aa8b04199c25835eb869b958c87cacdb341544c4d40fb06ac4dc61a9c46d1ff24e63424cbf60094b0c21fde2e009329f02b97c0938835689d8b44c9a199fa3907ddabb6bf496f81aefbfc6b836c140b9a6a161b3648d8980c74ef390b0ad2060d3dcb3187d1e790c1a839b7b9038cdf01d0b976dcb0fb0c9d1b91038a1d8062237bf84c475313d1040ac1628786538c63b97e94d057edeac71964211f11d15f9b3e3edf333ec8fb459979d624fb9e9b73982a03d229b39b3f139ebc9fa68b1703370e0c7cd950f965ef5f4f2715a47cf6d0edaf73c7037223631208a95ff7d25eddc065978866ebf89c8f91dd2a0107733cfef117de81334f6ecae9d3d2fb2bc4afa33a4fc9a2fc7f2607f0e9daad179453917254494456d31e493393ed3ab1f4822f717e212debd0c31021069d14653c0b503c74ab6bf76fe7d1956677a51e3770f1aa7f4a555af5aef382ab8feb8dfc7223285beabf12dd219a0f4d88cebcc0107a5815e4c49af613e334d95984ccd6fcc519e4c0f4826b68f735d94c6e375ac3207ad1e189027ef1c48e0ccd73ab975c2432f3eec40f76fa60b5bf899ca4d20b6468da8258a4a08e2f2d22d20d031f57a58010653e75df99646e9516a1a043ed8a7862edfa571f3fa50b8a90fe1d48a0260a56bb484ececbdc4de4f25e527386223076f4a516ea93e66bf52bfd44d0e84e4ff95be3944d48c056e83eec252fd3f09666efde32cad279ad7beb8ad4b1f47db4b076d3c2a497babfe7912c6a8d213a0b0cc695d9dda398c8aaf0fee199fe49be48a33ffaecbe2853dfcfa87aad867e241b17d719ffe2d6dd6624bbfe7076440385c6afdf9f4850cc75e2441e0f73774bbd7aa90c6a4f4ddc2bca8acbbfc517d8d43014c38044a9fbfb355305e51493af93830f437b870c9841694647079ac7564742bc5cd88ed8dd08e09bb3917ecd7b783433800a9004010b4ca1bba00895bbdadffc602b7df0126f41e6fc75e1e7f1b5347d7c692d808d9846cb2f7de72ef120b7c0b090b33aa1f50305eb0a4683e7364e6e8e6ce18b9b939fcccc97d59de90dccc1ccd1cb9c1b8860756393a5d15a39a2124705d46a46609f03347cdea6a86668e34ab5b0dcd18691676f8192d6a86800ebf1afa21270032705800f06115a3071a182f66647e54313cc0bcb8c0f72e2d2c29d48aca8c2994117101f268b0c0757308c9b1232f67bea43473f4542572e3b9b1f1081c3ce22090e71032df3c468f977349dfbed273f3c42e40e81057d344a7047ccd50b350405c9ed886cda3cdfb259fb75fba35bff97cf6925be2c1ddc09beda674837dd0f8cc110d2b9a6e3d32739c894dcd6ddbbc816c1e314aa88668dadce496787036dcb5b1b1c15d7cd71829d5bceb460935ebe6908487772eb93b52eeaee5f46ecbddb1e4d67277a9957736f7cc3b54ee2cf78b772bb9b1dc9d4a4ee93787e5dd95bb4bc94d737728b967eeee24f7e5cb29397e67fabb98bb33c9fd7e3926efae94bb2bc9fd075f8ee9306fdcdddce6f6e6a2842eaa850a6a157cf9881c6de66f6c3054ab71e0cc9156d5dc99a3257033ad6675304442cd824705a17634cbc21015e0f007d22ceef0ab183dd0c0783123a38ae101e6c505be3f38a85b90ebbf69eeb35cb9fba8fe4a5f65cbfd943e4affe49aaec9ed47d32fe1c9cdc03a3107413287647812aad5492068f6403a2d633543191600e8ae86607c91341fc47d3b3ff7edf8dcb7d3735bd90e0b8f2803cf735bd9ce8b321d4b8f0cdf52e0ba99a399a3192d62b6ad09710f45cbc00311c201612a0222c354f4629b8a3a9bb08032367c5276fb08e233334711078628080c33739421110a8628c3a386503c502d94106b68a797e800a5dc112d036f84149c068d90f0312f636215773a12c20492ab8c8823ff606baa6e152fe97d52c723b9d61b708b7c9debde107b51f43a7654a8fa5ce13c03f7766edff5a755f5d869bd8db7696c0cfb88345a557bb44c7d8db547abea4ebc473d727d6cd547a1fa3eaaef23f5f6ca8832f5d9a54ce05035865035b2291465eaeb5b0a5cd747b9566c6302e99e2f80ef07ad959f13bad0ca283be73b2072bc22177f8a510810cbb594ddd0942b461bc29e33bb9df6665445bb9eaabae1fca3a957a9f08bd6cd477af817156c097f82ef9585940ddad3a20c53b3ba950c2a72d0056c0738226cb55a2d1c310b56d6d75a0f379eedb50c1ce9da6dc76dded20bb82e893cbf5dedca5659285cf59b01e21675c824bc82d12a0d53c1694fe0b66b45f2d168dfaef65a5b356bf4115fbeaa102d236fa7bcae392be46ab44a4a1ffa53b57726f97ae9fd700018437ec3217939a4fa8975eafd8182abef9e10215a255f0f007f40c08b212fad90e5496e112db3dd1ad1acf95ece763baf115d630837df3d2b7c8a4001c57c3d76beb07c34f5f5ba54552c63eb91f9c2406835586fe3d9689cf1b6d8628b2d36edf31ad6988819885641f9682e19cdea2610f35246ab649ef3a776bdded78551402609983210ad9232b2bc8cc681d132f24e04d9e9fbb66b04462b384285118e00c59d1006220f1ca10b4f5cb17344c4a94f66d6904e04d9896fad1bd069d0011880ec3489b4bd95e0fd448637718df854e64821c5b151703d762f39ded6ebaa56452965ab70c43eeae3cb75e5837a927c1246b29473ce39a73ca550e2c7aa2c0883a79a3cb48743fa9c70070c8241506808c2e0b1a00a9e0afe9190e2cb7f619966351292dc80264eb54e19764915bc1c9a829783a1e0e564f6f0394eda782a479a9fd884616bb3f3d93c96636660c64cba413fea3da0840a1e2b47b3bafacb06c43966a90255d8da6aabe0e5151b5ed7f530d27b34f3399a95a3551406354b9a723fdb66dcb8400a668061cab0059f1638492011718a7844460ffe077e25a3c7d65b0cbabb4f50bee5a1b0efa5c62ab630247790479e873daad0c2913c0f9d9837c8f1a30646227114d7d89ee11c753b762dbbc9c50e2fe924777bdf1f14db376e7c8a32f3dac5e049af014fc248bee11c32486e6282cd93f073fca861f2c6394cae71a792ab4a7f3bfd764c48ba9a2f19397e1051c239e00ee924e7ae067ea2ccbc7c24e122a2cc7c69059c7cbc0672fc48c0dbd9815803f16f6af041f21f803bf1070a017dfb1a7d8b73fc986fa17e86732081a150949987f888514ff80e0abd9df732b10d287b66c13e2aa0d8911f1542d002e74785108832cbaa6675499752a6cc99f2999282c29d8e8c7aeabe9cba9d704bcd39274a4c792a95326f53f3a90bb9d4672aa65232954a792a25535266eac6cb9bfabc29ab4bfadb5246b08274efe36d79427eb4b20ff909e981147214f23bb2108e94d4dc48da0c800282b984b98e6c4db49a2bcf721f96ad6a8c02c225c7dbc68382c2723b1d99c53e8c9a41babc0fa95bb68b0bca51ae1359eeca51aec94917df1218dcc91c731eeee9763af2e9dbc663721b73512e77bb4ddd2e2939e1a1553ae572249b0ff694542af53ec95a89639a65b2b0b0c8b3cc986b03e61bc872feb1c4c494de2c3a3dcff2ee24ee3ac3c8be9418a66bc9826de0c35cbeb350937f9b0160302ee1b36014cc59ee620020f9be7cb3c45c27c674e92e2cc77ce69bc4c252c22c27272c9bc662a3c03030f7657cbb0bc0ee6ecca223c794f350a8210f966b23e61bc82df1a1cb59dec1a1dcb1dc65c65cc694bc83b9cb598e6509b6d18ff97c0783f12dd43e635830c6b7fb3031b85daedd92935c1e0eefc9eb55b94ec48a68d5b66def36193347007f70b12ba517709fd8c6314cb35866a05c6e73c3a898cbbbdc45cebbbc04a6e42af7b50ae62797872b5b855d6e63622c65bf04db784aface1c735fb630e6028ddf17e616766c52970194c70d68ca1c7321be4e6b313795ba11cd62792a0547007f803975144f0a3f0eee7041b9cb636ea723c7bc379e181f96cfebc8f2a234cac57f1b8ccb51ae8edc1747678ce108600c97d46378526fd5717c4b4b4bcbbbfbde975beee3bd1dcca4db3ee9f10ac118f145902e5fbefa161175ac3cca36b9b597064d361e130b744b39e50adc914d4c564c6e943731318926263a7105ee6895c9ca753aaef435b9bc2ba6d38dc764e63aedc205070305058a8861908782657f063904d28750480e0604e2e21dfb45ebe88890563da188139be85a046d67b8c5b88eac2343214082c4f87be3a073007f80268031dedffb030f070e3d99771915cddfa116cdeae1ef1df4725e7e31e056d025e8d84d4481ebe0108f66bd269ab5d1d0d1d3194a2143940f1f341f37ef960f1889188d605e05bd1cfba744b36afe8ea359367fa8bfc75727701177dc24c11d2d3f371ed2e3957fb9f0da5ee2e93d5c5e9a97ebf332cd4f1745f39763dc46ade6da9c74b7b31860bb0d460175a77a5f476621bd06a380641e6deaa65cd4854730c06991dfe5dfa644ab9e91fc8056afc149b4aaaeee59eeccf66feba9828b7123d0aaf71eee11ad7aa7b946d80b3bc3a047f38e44adcf28488988f3769e4fe7fa0418f7e5ca06ae834757a4dcc55dfcddd63570f9c5db2024bbc88f8aa327328c0bb3111198294d53794c2a86842426c6450c9749528ea53cdb78306ae6174d24bf48e16e70f9853c0a9723ca1c93c8fd793b05e5de782edeb74b650e6e3c292e4eb71918c8c20eb2d023bff8db7ab8b73cbbdd0d25f28b7377719990f905b6c1bde5b6e5c65b299990b95322dbe8b3745b4fc7e934cb5fbc9667c45d9fbb4eec58300e255edc975d707826f268d5ebc6b30d5c742236d1aaf70edfe14b1d6e3c31b736e6f776f8f7a7dbe19f60605a5c5e5c30be2f7f19e625f514b611d3b5fcf47bbb96df5b39237edfee767db221eff2783b2e4714dc6959ab286779ad9ab8c35dcb2fcc753a9e6ed78293c091637eef726ddcc89161fe32be376286c1a81939e224628eb13d5f10bf722f0ae8be7fdf3ef72eb883d905bbc4982152dd8d63ee72837157f3e984bb96eb44970bf36df9cd4df5ed629e7acb799687820334cb325857489d8e1b64297a40857cddae364bfed9cb212cb6416f6f83640f379fbeb596b4fde85812cd00f41677f1554cc1898ce1f7682a499552fec977f436e8fbf23d189d01e8690fbd74fabab00ff143810e0cd223cc5794e14f578a680a81a611ad824445344b1a410f4f21e40eaf82e74e5770f027f8578b5ad059c3db18b9be11c89298d79a451ffbeac1c56c1e3bfc1117868db059d61bd0c4f2888687a74634cb88231a77049048624ecc84ccf02a78ee643429ad5c4d99ea18b8ee7f81b0a3a67a81b893b7f25662b4d28b52dc71454644487a71959e6a42b86b1539fbae98b519f6a23d99db9c7c1226291f258651b7b051d6f9ee44afebde0b6b7e2ff96d325ac8b5912ca59452cabf23b0e79c73ce09e1e37db9a91092673cc22a4fa18873bd3f87224efdfbb3c761908ea255f36ff351a3cc9c9f33489066757546d1acf972fa730bab3c83e4d918337a34531524cf19fdf2bcaa592820272021481675c08e1c984342cddad1aceb13bfaf54dc61e028cfb9a355f373880245b97b4f620ecda16e814a252323a352a954322a558a4ba920d601fb2cc96b167cbc361af2d190c4d6cbe9bf6b055cc7618b1bcf3685e4de7a6e9641ae12fd76d26d5cb73ca463d73e5eed3d4fba98dce2b6611f245aab268f15f61a678a9cd5aedb57a96137e01639a5359c42e211982af0f07759611e533c5c781e78c08f8b3cbcc03cb610345c3183ea851e405ececd12c8cb79962d13f4c303708b9d1f32563944be670f20cc1e11620cbe9b3d62ebd1c06bda887050f620827d2fd99cf3c2b0392f592b8430c28853397bef8b323e7f2d39bd9de1e6335f42ff9b9deec53e713ecbb5065c6682613f44b46a8806113f3a78437cb26b3eb427660c572cb8ae9a4c27a62678340be584ca6651773e75eb4d3775210f2720902662fed9e2cf89e9178604f64a03ee64e5f2100a791845b34e962449f2a4db937b3d754d3f5d18450aca8550ac5c0824e61f49bacd28f7e59598ad4da960ac7e66afa79fa69b8e9dfe624d97d12c0cbbc9450199bcdee43a32c6fdb44a62d48c935fbf5e96170f38a472b15a73d0355037609eaf971146d2f5378f68160ae8faca577097fa8551402b2bd7917564236e9f02aebbdc3e23b83745158eb2cb51d24aad081ba95fb8881acd42cdb88e3a0ad790a896a3301cfa75e336e3bacb7b036ab90bee506fc19047ab20ac022753972d97874d34cedc9187f346cba78ae5739b800fcca9b7609e14968f860577a8ffb44ae6d453d8060aa3808e2002e695067eacfce2158a01f7f818e7d0b173b16a47de5e2caf0f7695241450cca9c79cea369059fef251582aa69fa44e1c67848344949127b9855c8b3c0402a1b830088ca255f248484e722a2731bfd6b40bc31d1806c9b3dc7a032eaedcf46ee6d4572eeae4a6b3b060a8f2eb95065c7752a2554640b2c581bc72d345999e84e9ae9c48f9130c877ebdf2e0ba485c257a70d8b3d315fc9e2a251f4d0a772b47e19ff736a0158c02faf5154c44cf88003ea2559701275c672a0a45542ef67961c48143f6843b0e0577a7a11970d8e1d0c5f8ba38c639240c8eb0e302ffe21c048081508f1d7c6200cc848130a936e0b2d3798a3870a8964ea753b3627e3bf23a9b8fcc7088889f212e18e0e2106e355eee02e7785ae0c1ce0b847108011647762e7e5126e6d25d422e2133e97675bb43dd3392e7090e5dc7600ff8041c823c3a0de054abe450ab7838f153ab6446f129e6b0c02f877f2ff0f86fabe1e22f3847cc09765ce05ae31ee31c0f0a74f8426be7626cd6f91e4dc53ae605e79470e88aa156bd897daed80185b0744c0d7ab08672cf83780adfda3873847e80eba7624c9921abdcdaee91c30bcad0f2516554cb88eb60887cd0380c11940f35abc0754f4814f2682051c35cd1ac9236717d42ea14228190e36d2e8f5ece8c5005488ead126d9e909ad8a59ec41cca2ab796888359e52915c89954ded2f2127793ec2b3f41d9a8a0a084e05141a81d19ceb8b97929be6d86cdbba4e6719660a01afc5a8581a3dc2f5d27966e57bacbb5b9ed9a771ca2f49b47540d062ac5dfe0b629b95de9a9ec37d927b639cbcd4d56e2c1b13c621bd96fb00d942731e750ca6d30ca5347a93cdef488bb156c6a8ee3faf37672a668f3791327678a7d9b1bdc9954fa7413ee20677a9bde7fecf8474bd48725871805a4f279954fdc65b9547a4babbca5f496966bfbdeb4b4bca423dfcc799b92cfdb2531876e7a860a50bf0577a5f70ddc86e8c6379fb7e636b79b43d966bec6e63ab16f679bdbd9fcdebcbb29944b3e331eb9e406db285de536388939944bb8e5a9eb442edfdb913cd161e028a71e371ed3e39298439909985554300d3c63a465e0556aeeb93f4c210842de96a21db0f6f5103894100310fa8e1087f4c66c54c41ec881e497a247b3354076135050841e59cca0e4146b52a8a19388b31a8a3210a7660875559eba2b2fb931725c15b50caca9a951b93347ee8c9178926ca1567357457785c55d95a01c7e9572f89aa1939493d7d4f0a8c135434446118746c4f9393c8ccc2f865a35733483054c110c51b34a0e0f7345b322eaaf596f65745758603163147f1e673cc608a91601e0812b86a40db86ee6480b29a03600819121f08873c1cc918b055cb72af291d94701be2a6a1616cdb239fccae8e5cc9bfede0fab211803fe94aa4195bce6f3361755824d3587dcb3880120e4d1c0d7c010c15c0153f468e05743f087f762940e4beffa354c9088f34383e366d48a5f9481099221ca065c876ab90479393232345131a27284f351315231aa95e3504ebc1c98e1ad159cc94dba29943b54ababb993b9e3723773f462a88391bb99a30ee36a862410b028c40da2f19e9e0b82efd0a0717fb4910c8b40356c810947a40d62c8c0f4184fbc1c951d277f2114718268c0bf186ad6e9f02f9a6856cae15ff068164a2c7d854894813741fde6aea4dc9b9f62e449e336de96ace52da37c8594ad8c17695ea74972133c542e4da671e50e0c51c4795f21c2ad105909b5805bed887815b4b205ae9b395a05d53c468f9aa1d35d35d12ab872a228e2cc38fc8a51c429c0e1578eac1c451c1a07b21a6a155ca162e6c8cb29410d6b2d8b9a959a36b58d6aa48d06c99c37bfe9af50b13204ce49e373c667013ee77c443777d5c48a47abe011e456455647aba256c11516b2fb88eb5643f9766e3e58ee3f1f3f5f0d459c1f0c431465a0cf7d4476f081215a406135d42c2cbfbc0f1fe3e8e5dc1c96bce6401abf143d9a2a701d0c918ae8d1c021bb6aa259a5c3af78bc9c1b184d44f468e02dec072304f28c9016b8cf802fc0fdd07d8f56d9bc53317201f268b2c075aba2d5aa478637b9dd8c161d0cd3ed62e8a09340b0a99939cad60a4eded868373f413c08233f86fc5c548d9f07f12052b0f363536d823015998a5486500e058a4d8a0d0b4d4b0f2e31beba406001b818c049f54200181d1eb28a4cccceca8b99140a868d8d8d8d6663f320353c526ecd10ca3d9003f921e74076b20e010620002056317aa081f162464635238607981717f8dea58525855a5139158084280037099110a918a15a41dcf7646c502d54cbe62e40de7a39b55bf9f016781622cd2251fda71367e3aa0867550400d3c9cb29fdf9e4fab0fa01d7ad824a25942a649c77ab2119ef6a86688e1e0d3cc955fd1c573b468f47034f7d50ba6d8d04e5f3b6e45591f65a39ee74baf64ec53ab933468ea4601a21f407d7ad824a8f667e15d4acae6425d4ac6e03d9f41277f32ee5896ddc3ccedb3636998f2082985a10f7e771f3b9b9b9b9b9b9a1373794b4d19811450102404294e165dc2e720087753bacad00c0ed302b7cb85de40069fbe1763587c6cf0d42885551c441b55a06fe74aa548817a176b4ca0a4e46cde6f6e6e696448bb76bb61a3c0fe26d0de8b90f46d5f08135a0031482ecf85cc78e4e0771513582388dd3c0395e1626d809e266fee63347b6e43097e00e0299a4f56860c9e78bb40aa634d12a1e5cc953decddfe099a379678e944a3e6f63be84678cb40a965efae9dd9ca5cf214ab7317f739d9e39025b7a7089f1d5f50103c005eb0547450646060f0188c959092f4b6c426d8a2434915f86145ea7f0a22e480f2faada2c42f809e526e5cb2fcd3a556ce3b9b184f66da3bf249c570b92af04e9755dd566d745df16afa67d8083f94d310523395ed2d4e9456e3ecf0e9a0633bdf608a66d706ef4da7a36cdc4f9486cf35191db66e3c09d80837fb143c308618c72e2ed4595026ea3d8ce8183b771e399620a67c8f2ca57f6b93e5fadcd708b97570563ebe91cf10b564dd9e6a3220ff3364325cb0bbb7e491b07eea297f49aa47a9b5d97243dd934c66ddb5e9bb51d3edb786ec02d2e0d9f8e7247e9af79785dd4bce49cf65df6ce6618bdaefb329417e6eba55973f67598fba272be1435b080483ca534c6a7bd172faa5e53c6f8b088691816297d2fc67e316a319a9a75ca3052fa78e93b6a20e03aa882da09b852867638c118dfdd76ce18b17a75cc2e9f456b9af3d4d3b9aaa864194f3671a72347ac0971f9f4722acf3cbd9c8a4f8fe6fd15e57738ffa689d2f7e89b8f3e19a534356b766b508b83edbf97ee2cc64ed68bca88611986d17e977fb367bcd73bfa87a16a1f75a168cb27a394efc22ced6b944fcaf76c48dd5c0f0b5f55308c5cd15d6a15012bb44ccd92f4ba3adbec46d4a20637a0f772f0151d2356a9cd8c6e97f65e0e96bbec3e70d9bbadad020b455693b766f7d9c86436a55893e9bacdb2ab9dccd011c509b6c89d8e285aad3c8108a4952515ad5696b893ad56bef012435ad91e4746241e69e5ee0969658b51600c18830c70b8eec9a3313509161c2429039792a3fdb3d78909e576369dc873ad2c9bb501e98862a89527a06309405a56b3b79afd05713d69565e9bd92bbbbcbd280d35b3a3b0ec2898596baf7b23662967642c934f0cd2ca16482b5b7c231e696589331823bec218f164e06036c4bd523f80b3216f3349a2693d2c494e1225914817a99248248c64491949ab41ea1c90dfa3c9f6b00a2b00c9b60a2247285a1cb8ecf2526659cb2ccbeecb52cb7a92e4781aff002e3ba5f2da78325c6f77a275305b2c4aa0790c77f2d9fbd8bbec99bd8d0ce8a4bdbf67d9edae67aff5aaf6de88f9ca916d76bb09dfd167f5280c05eb51b4ca6ca5bd7153b3b81cb52bb2766b719775d05aa1286bf858d6c92b630b1c6c7c8f37e5b745fc38538f95f24113c7f5cb3f7314e2c1fc6ee3c0f52ffbae8ba2b2678eabbe93a82a8f82b22f987b629d6665391291e595d1aab84388c6b18fd79189f7a15572e03a2dfb60821e99755a15af95807b42b097c11fba652fcde678bb69f26a22e0deb51df13a2f27cbf1960443a5eae61b2ad68a6862b024a9d3a90c243890dcb0c9566924e0debbbaf5bc2259cad32259e22e725bcf855133e8afc3215fce21e8af5799c1ec659dc54bea74e0205f87ad913a07e46b9ee2f9885827ba556bc53008ad35f6c07590a88343b2149a15b19099d04414b90faf681684196291bb5694a4335af94a293d4ad27a2347264d1229c68992fb3844c075af88955adc64aba00838120beb96602c4a7221fed32c97f76910d12ceefd1acddade2fe27d2ee21ce1e2dd2a3f23ce02adea23220e143aadd747b431d68abb0a641af18557f4cafb5028e2401e3c84babbb5279e803e605cae0f1ebe5d1ff842d6422d6389b94eb3dce803c6070f3ef06dd5b227a2e6814822c5781b298661bd451c492449ba4819e63870f150c25a2b725ca4918b5c8443e6cb0d82450d80be8b1b24f41d180c82efbc0640078b641e8ca5a48445b294b094b0d4980bafb076903266d2ed59ad169d49b7eb804568e3467c18b67dcb342bb163180a08c37cde17b2cdae1602ee4d910427f26b82109cc8b7732627a552d239bf7d7ede5e729b9ac566cdb22dcb724bda2472ce791c5dad361eb3310f73bd5de7ba6d36d332793a4fe5454d49a594b3ce394feb9d33ce37279d70cb308e66d5f7853c0fb9f826d5b24bcb4af00dfab1fd8f41b504894178c4ab81a083cd91bc6d02306798fb7610f07660feb6252600733d4fc975dae5db8d5bfcdbb8ebb4766b5154a3d46ad8945ab63772644a2ba590c86a1fe0b2fc9a1084a05c879058091c5bd54830ada4554872bb69a9d475bac26cbb794ab7907371e1e11eaf1664ad0673e1d185570c3131b945d16090880387b44cc321413ca004cca195a7920f98cfcb072621795bca759a8407285ad0d369950b7376159fcea4cc03269b16afd6011389f60b8bb88d03db9622f393820864e0ee72e35b2e2c2a61adb59dd0502ab9cfc6cb72ba956058a455445b3c2de20b775e2e2c7a51c674879309eac2221e120c89ec5042d5fc986084286495152dde959b361e4804f38a16dc8aa90e1965e9c075af08cca92d623b072e65bb01f3c96d8b3d826d3d9d495fb1476cb62e252ef0941c55e24229dbabf8c0ec033f55e284926cef76041f9853ceb29562c06d47d8b2c5243c981bcf8dad14038e24bf2600810724d9baa894d64a6bad95d27a9229c501cd16468bd71e2139fd6e6db8f2965f13808006ad5e9949e2ad0badde9ab50d01ef0d4120528319480004268c61c7be5cf565bed017ece5e5757c8124a42e47ae1816f5748644f00a3970170e185a2ba535d32c26a5ac52962e7d6f3dcf0e3d38cf5b1c56358fd163283a576ac5b04f3a27e92fb458abaca45a3b89d22c2629cd66cc19a6937ee5de88999e5427a4143bcc749b919231fc2871348bd25b0f71d895ade7d921cf5b1aadde2ae38bf1bd175257813c9368559f2bb98f763edd974ff07d3b26242fd7bf8c0366fafa8a9a54de1b31cf59eb29a5f7e59a23a380eae55133b6cb6f979774de88131335abb39d37c6b97d8341360e5cfdeccf7a51522766efb477f61d86ca704f96511aeec9723ccae29e2ca330dc93e5ce30bf3c6fe4c8120edc6bc20a8e7207b728925f1d7a9e1732761ccdaa75087923cad34b1c1bcf0dd96aa920e3a087b9b7192999e2ae0219abdd3b928412381a870bd222f71bae400832e19227a0a366f8dac13bc1c6e0e01f156ce80ec2db59486682da37705166ed28dfb83213251b09bc316f4cd0bc042cca4c68f9e52c015bf9060132bc6cb53204e25a196620d8ca90c8be6cdbc059fb726dd68b31f2bcf8de8bd1be1e57e8428600f7cc90df6d15b02a1e7ead6203b4f5a56112ac108954d185a32aba40864334580bb967b255742108e4de8b391dc621acf09a29051b4208b9aa7121a3e28847ee62bc0dbb4e631a15702892bb53370e87713875a21805447fbd3b69f618a623a3c9ba0de4ac9bc0063276d235922efb1549cf6ea72353cc06899e84d6d30cc314b672973dce0840b6b8c37e75f4576b90522ceba1efd160f2992591ea693d893d76b3db0b9493b1ec1dfd75921efa8ae2c1489ee1aeb30ecb9e75d46677c3b0637809ec22d193aedc6e07bb790973666f3becd92fec19e62a762660ee609e959bb06661df4b278b72c4e049aa206cb55a2d213b8f489489874f487e1b8c45325614772a4824c3446251c4e9a128135f63511c5aa9e689e3607c0ea763a723d1cb797988b3010f5bf9e50ebe5b19364e8e1f10bf47d344880cb56e075b30076cede84499f888e3cab40f5bb9af4cb10d9ec63798d0118237870c9fc3bd9d89636b27ce217757ee57851ce790fb3d5f60c2533d56cf179af0542f772f0a39be8343728422c82f3f3404cd410a5bac400e2918b213912084341021cac10ea880841d208a10c51a7e60040b473cd88938f061071f383862440d6dd8897fc4795608411355a0031b5ef0012becc4ab228e0e1874a00b28600217e64034831d1729e23084257401047448c34ef4c291106c8002181c61c21c64d15585f8ce6dc7f07019b84e7b555c2194fbab8873fae93d1573c430b0e0de4fa7d41da2c8f6548a1e3891bd769d657c672985dc9b0fbe42b66d45b6510bd94aa26ca9266f4759910352a0e18a1c2f5f0ef6f8f972ea23a679668c0999b1d7bb23df202192a5e8410fae8e99ccb26c66593e64f8799d96f076a30087e557c513b4c8295d9ac2ca1f5764527e55f4800dd976b3b00f82723f25e1ce3bbf2a7c60833c6fb240c611e31683eb4ed3d45cc855fc2892fba997274b17d65a45f1955f153e70224f6c823192229692038f261298a289042638236a86fc4567f7e9d42a530aaed7b7864c0f2f3a2185f105434f5c3dae9611ebee2d4a4d081a3912638c3d7277cd006af1c290e3db028acfc3f9c1f4f89d9753f2f8201e8b3ebe23408e3831728cc9d125c7948e24c75faf5f0ef7f8f858f3154123ad825a0ce108eea2d85ac1dd8953c11d87d2aa27dc552e0577dce92ad50aeb1e5796655976eee2db7bdf45b1d5278eab95e35aad56ab15b3e9c36a856fcaef3d3d16451c985fa55ac9c89d347a7957e3f6f7505cdeae228d220e0c964fbce068f44414f284906d62998c130f361f4f3c767d5e3e3a3a3a0281add1aa3e118f488441ad13b4da091e3c620f9e78228a202408a275b69b96c123ad6a2069592ecc7428e2502251a6bb13c70d7dfe6a3ce03a7a94a916471d2d92839ad5ac4894fb9710d5a27fb56811c8926880aa7ecb2c5e1a1e4dff571681aa3e2542fa094a234d07dc15d42a239e88af77548bdccf7e1471e8d093e9d7caa26d521832a488475492041246271138a2a8844389dc167847e29436a4ae0259cacdc7c709b8f5340f769cec1012aa439612df805bd88ca1dce5a666a15cd7361e9478036ea1d566c5d9722bb548bfd0d78b74b95aabaea36040576b15f607b32d6d126b50709789269b181aca72b7dc97af63a96b4241ea362236b5ea44d384c0a1502144086d79833c2d424bb69e2986520a1440805c5bcf2b83090e263798dca00709608fbeadf3b3e5f235a26c3db485b6e0ae4fb621e6294dd1b2cd277e9e368534d259af79c10b5e178430a497a5b60d3125b673e08e4879d42a699422a1f133a4a4492b8810c1b059a2c927e47ad6a461da10f2319b5343f9bc3eefcacf27fab53e91b10bce2c9e2cd2aa99c553f5f3346a56c99b0289b34877aa7d531179f4686070834c817c522097140805928d1e4d3fc1759448b682445ecfae2602ee7a0b5a5ee0ae2022ea79987b6299ea24fbc81bbc9c57c4c868c6286f7061645ba2659737c0a255aaeb1d2cba28aeadbab0ecd1aafe1092a386ac6092abe02150a201c6e8a75c59e44a353c555f3e814f707732914f94604e66218d648fdc973de40d4c4e8e102477d70ca411c719ad68511a49a30cb54463b993b753c99d348246a016d2481a49a34bd26bca39a5d1d5e3b61062b0958b2fe74dfa795154c6ebbae67c94315e71ce0b426c6f2dbe2e8c6ca3266b7ccb4753773ac6eb8ad7755d935a88b181e4bd40f8a890544a29a504a2555db7edda866bddaebd39926baf41fa46fa856b905c23c1aa28d3a7176a27e11c27ad1e6adbe38a5adbe980d1bee9d56955ab6c1b38fa4e468419562f3aed8c79098451f91e152d5914e78e621d2ce30ddccb9d8c950c4829841976ac5e536699cd32528c8f0a21a284a144b2262dc14ab8022079fe92f232998edf7124ef4ef9ba708763925cd23625123a55bb14b4292dc32abda426a53dbd9ccb27956adbb50d16c2abc5806b20adfca83812ca7d9cfcaaf0c190fc369e1a5d6ad52f2f03f172626e2ad870943b1f729f3bf1e0524a4d560dbe93524a3827bce09c730ad97a54de364345b201be9652caf7761d6e3cf20a725df59a53c334acd639ebbce60c326fa376ad406e43c0e04ef24eb58a32fd12b9cad9351849e0b2772f59d57dc56b5e184fbcdd2ee944441c22f482425a350f8590c020904777ef48661f240c0812659a073c0254f5a13d657b89bb938d580bc1834678340d8304818343b08997034f2f27ce295ed0ca90069192520dab9452795dd725e5f5cbc471b5d6edba64add766316cd32e18e422d56c6f079590fbf2a561548b05b92e292f4da3d24a098334eb745129638c9262355e53ce790529dafa24052935ad556d92010733bc360319704f0a1ef4206734991ec68bd289d54829959472f3320def578b81d637bef77b3d70afdf7db94956d8474b5aab64ab4c36c608b38e0a5b28c7cb6e9c09b51d5cc700c8c717eff6e5803a608458b09df6931f8c1a881a588054ad646bb3011abc9680b7c34599780aa57d5fbfe8b90ce9a4effacdf1037e03d98e3dcf0414a0dde21cf6da15f0762cfe017fdd048480003b1a3e4599f84799786d9b8165883b224240801d7bfb6ce3b9decec663adb442e8c4193b92ba0590369eeb72ebcbfbd3aaf8eb12d12a89352470dd1bf2ca9097789e32a2d460c7d84fd6dccdffb48a883770930626a255b18726e4f937f1935342794d7ad9367073e26d083aa30e91aba4f4a226a47376dd92ca2bdb66d04fed04351adeb681ab938866c11cb3fc0f8dc6e176e2df2b3ab2efd51ccfad5edc42155168ad2e9d68d48c72ce4661f5a230766cd9dd9d02fbfe5a0bb97f280c450883a488835aab1e7e5007f2360e5142096196a1305485475d304619e30c8965ed7ee730d856cc39e7a473ca28a5d62719fe5d709b9172994c5f3075ad81ed6b28e0ba538e5ac7752b1f82e4986316728c7da1937a5119312cc3301489d58b4a29a39431d2cb0636febdc8e8688487b422779a94f20d5a6429a51008a117de40455f114e215584f105c25f1784f0c22a855996499e397f5d7f3a3ddf8baab306030e5ed7b547b0881db3d70e78e4f8eb91f29362072320e518a12abbaecf4bca79d54ae9ede9e9252f7a9dce8a5d765e93d2edfabca82dce3929a534d2d3a6951ed67c4d3b85e4eea5210a1d80bce0055248d144968f6ff3b152482194e3a58f9d97b3150617b8800d43e811c4cead47c2a00c5048437e4f258bbe4022fd98ec004cdc4b6e1279a2908f12ed62cf2e8dee4ca3553f529a386ebefc9352add64b884773a54ef2dda97337cbc679611f277f1b037ae704ff449926e2d66899bee9be0680c683eb9e90924ba3651ac32c1042b3688022bfac5d3aa7256558b53f374abaf144ceda1b2d4622fdc4fca6c8028b2cafdda705699add6e31cdda5b4c8b27d9ded2e576b8f1906ee3db7c945ca7a39d1b0f8986bd70a7747d94dc64ba89090b7da7a4051a877f68b080b36fe321f5e60333e956dba6c8e20a39db922cb925d924d71cc7c126e47879b73c379e29b228c952a9f426a99b4096f344e01f1a5afca91c89c4693fadfae1e87b443bda56abbd360edc1bb2914ecab0ba3daafde85022b97b434ccdfae1da85887d2f1d1cbaa0cd307a5d35e29438099b745d421bccdc0dfa214b5e2a3908be538ab674df4ebc2f4313131fdc4b57e83ba597dc20107ca774a1ef70b76ff6bbc692d24d4a2525f8b1847370f3144d3a9accdba92816ad6c09e3c53e6150a6116ada49cb36ab6d3c37e812dbb56b9797361fa916e4c36a3561d045372064c88075a24148b399a65d9869fc0c39f1b19a36af3d32b71e12212eaa3d0c62188475d2eb6a2be05ee457c5165a99966e8e1f354ae74a988828d38fa57330bbdd23cacd836a80c9b9d72879a9e417ae61720ee7f871dd042b11655a47ee6d891adc4b700e0ebf2883c43603cb17ee88e09eedbc9dd23749bb77e466dbe9e816607734c1c177709bd8ce81dbb699e53745165ad02ccbd6da9a65196e70070c22691876bd8341d72525c9252f49b2697faf9bc669d750ee60100c0a6a718395cd8a5b86557a5d5b5ba9bd66c91ab518e7bc9a505549fca28237a795926e95527b556de399f3da78e6a7d5b0cb395157c4ae0bb5d588611776cdeb9212067e51413cf2361e4be57ddae5658211acc8766e08805b027c6a9ea75b4f6789b38b5e799b514a6ba5d7e99661d73ce9b392485aeb0d68b58bdaf9ebb5466dfb9661d57ede6acfbe56db23c32a24c19433584d04efba66bd2e9bd1ebaad7ed76039b734e7becd2eccec767f36f93e791a7d727a4eaa8044c17b5518e3a45342200001000f314400020140a074542e1683853759d811f14001096a04c684e17886110c32884103286000043004440004440300007a2192a27db2e369a1bcbdb9585b6b8dae05008a6c2cfbb6dd988f6a68a287864374b8eb56c4876a4bcb25c94f212656ce00c35c8e83ae1a0026f8a3c2ee5be9899dcbd03b9d30390ea0ec10994ab5dc4dbe82dac5a1ca7dbf35767514860799b18eca6573a198ca039f0da456ce54102e756863754a55f090f966bc81b1e94e880da0e42d4486784638feb3c32172764aeaa2f567bdcbf29e715acd5f82ebeb73eaa5839ba281a1820cf869fc8779b1af5817823eea96ccd3b6e05961635760c17e0662976dc38401514a7634ec3bcf7fdccd52c6b4072923770130b700662a0914cfdd4da2686b96affe3ccc112f65dc360f22a8ab245f787f49b7bd453b0764576f6f45a97932bb8e52ae75263483e26bbf2ec993c312d17ca23aeb0ff35ba0461cd2368aed61f582f8a066a52caab7315bdcbd02bc28569f60610d37935efc4ea6b12f77eef5563758b994beb9088e3c5eaaefb482daed6e295ac020a07e5a53a60ce425d6dd92d9caf6edc15ea89acac81e862ace1138be58e06d9884b5d3e588eb062075a8098fffff57848477e554bcb08918bf1a83316abdc08e455d1cc015691dc91cb0ea856cda42898a8b1386e0a73dad04f2a8e59bf3c9d74eb374904b3510cc1bb08684d7b7102712671119cac1adc0aae9b017207d4ef1e3936f51d5283574d4974a86883fa36b5bcb7d119319cebc42a35777b6601c47f1441b43974372ee96958f3a9cdceeaf40ef0cc1589625805ca9d1a8c8403ac0a226a495743265bb6308e60ea365106e647cc32405cfe567daff9ca38c2dcc33b50ec285a5cbc00c8e7f44bcdc2d3863f18308f89772c498b2c22d42a8239cf7e3c09c49c8c902c2696643d2076d03bc7cb60ecd2ef6c90475e8ea61646caa108b1540f840a1ac3223483fddefbcd5a98de190690f56f372fa1a34fe7155586a85d50f9dafcea5d4484cc14fa452f8f98ea43023ecc0bcf102cf4cb41f88b1a1103b9acb966a66652f0931f7720d5e971f595026268d9111963ca9da35c01c8b660a85abde589d023c103e3442642d4063ea6897207ef8160efcc19ab8526b6902bb307c05e2a8e210a066d74f00b26ee4669bd55c6d14126afd021f2345d775b0b931cd85052e45c5838b37b045caae4c2652545f7d3b9a5cbf7d51d101dd504ecffc9c37422e221883e61bf5fdae68d9366f5693ffcfbe1628a4ddc75021eb7493522cbe00cb3ec318a06c24b175b69d2a351749af5c43aeff56597aef4e979f8213416c76dd6f02d524aa9e302da3c04e163bc1e1431ecf40eb341e1d3357c1db28cf813ae309bcab205188189c2365724135eadcdcb709b17d7e33e82df8a78d1c66ee4f5d0774673e395126e9c7703fb8b395cfaf95121bf5e4d18f1b69194dcdc7b2a14e8a9fba220baafc713a44103784cac6d4970aea1d65f4d5da5d7d302b01ff0d94602737c76fc3e86587c48e27e4273362b8e6f11b35a6c0708324fa99340fe12ab0cd4887b8e38ace14bae1d19e343ce4fef2c358c6340d51c7e90081d8d155ee614aeea122eed02094fc2c4a896967665e19416b63729489f44c6903857d1787200992b82742160e3e60e501efd2f4b41db9bcd2e246a25a3fcf5fc388b657b2c0426e8530915dfc9a5c94276bb4149d91f77ba7905bfe674936e116fcbfc308758d5b7732a577247941a262271f5b74b3f7b3087f0622b168a53421c0da6e256ef10302558993532e120184419a626315b0c688da2b061022a61ecc068e29013f40e19d06e24248a320b0118e02dd4d3011f5f3747862f400ca0a7613afaaf868e7755532edfee785e96182fee64f7696a89cf25c962355069f30519a1aec9e5ad8f32556515b525529e420ce53a9478a7c33d0123e7a3e2c9b20cc14ed01602004825335cc5138aff2fe27cc5f9114636ea2f24d5ae7caadd59a1fb77de267a582798bb82d2cde4198a0737696a91ee020e7dfce49f6bf178cdc06e11d65e011797c184cf93424140b875c42e2c092f84522ecbcc03238d479fa1c8b4e8792805980b2457824aedcb8cffd3a1f16530c08826649f70cca63296286684f49d22edf00682e73d45c212f91f686a79996f1f7f2ed516ac8652a541daffecd7d3f606b2a3f4cc68a0c1051a2f65d069ebbb408626cf9f142cd0074d8905e18ec22d6e0ddde0328edb30976b48b5e354294bc135387f9914f531ac302071e918747cc2dff5e87b968873719c7cb1daafb19e41bed85ff6983faa22d10336be76585e63d3176a4e025d26f62404e62bca4949c3a165276cd9e6fe3a85ec371f77612414dfc14e032be8f5e8b4ea34e0f26e5de4ed3255e4e8e133b31cea22093979b70eea3bc7fb27e9b99c51eb7054263203b8ebba0f854c8252aa0873c39d1495f328e3a3432c0adb4e77926fff84d51d7eb8f44aa024ef8d0192734dd4c5becc657c35f3004b5af32dd6161ee3de09150cc8467ab2bd8f1040384030fd05c47de7150384f37151832c6b604c2828d05688a0659d70b969681907e0ab193a534044e5b2da6f1b29e67eae2b01a14c4f6894d8579b3b2444e0d60b4c159c437d4e59d462cbb69a17744637f90d13ebd4be880ad6ca161c73c59b47115a2fb0ac96cfeec951d7678bf35ead87ac000dd5be8d0e488ea84af0c5fd65dd42d78c0a10f23df90e0f9e9f2c82ceb311909ebd215877abeffc3d20f0d58b5696a77a42a9db0263cc71d781de755f9d2966d4aac137ffef574bf153011e37a7f288874a9913a0298c7527e8b97f28d809b6878efdd11fa94e5b805c71a4a84509edc68e4e7d0a503ab439c55fed1fc8a5cc3a0a368322700c957bfe79281f2a580f026e001cdb290b707b7280068863f381d5e8d7d1e594975cc9f6df0fc5af90dc6ab9039346b6f066d7d4fefcbe2763569b38d5819cb608f249bf9fe73a6c5a6e4265738949993fdb3aeb5c36f9214b771933bd76cce18abc82be83d768085e5f34a63a4b7de34852f63bd7c519734f5d84bdeb6cf81b45c07139b7c4011e1786977e741fd23cd8c4d154f10b6df7ed3c7a607c88e1000d959dc0f66e406f30e8e4552f217e137db8d87194c944e3edcbaa95a8cf517a0754b7d52882b43b0482e87a4f72a2ffe254a7c76ad7d68090edf373851559461752857147985761e32fc17e5a242cf03e3db45c4f1bac8a3dd490bae760b6475afd1ec624e21414084a6cab45ec0142606192bc8b9ae0738c2a8046bf7d7cbca9e577a072beed18572c8b458e1e7bba2590df8a0fc09f263bedbbb8f4c346d8fec82f6f866c9f9b9908dafcc55fa5c312cce876a6a6eb29a6e191dfcaa238c55ca9afdf0717d48f5037adf4fdb417e4fcb4f6661af80375e2e9a2a2a7219ae5528aadbe81d40e7f9455db8674d4456e8cff92a09c6e35a37f5546b5d3c9f75e37a58a557a6560ef321cdc4ccce66fa9c7bce4d965d2df77cc8b1e82a408ca873c975c5d4f08919649aff466a4de77e6257700097c8ea7f3539910a0e747e312e4623fa620ce4be3dc4272a6101f383b305387f2d0500afbde028b9cbdec43e1fe796e692fd62209189d9e55e10b52b79586b7216cc4d066e75d70dfb787462d503bf0dcc063dc71cd04212e7d9d33eb5493a1921acaf79b64a70b13c08066dc9ec5ccf0a41d1188e1987633d7236a93d280f3727519377f90a96e15709b90436a213596be011780e086cebfb5f6fdd2079878d78e87b0488cb11fb21e403e797073224fef2654545802f580945d0e6dd12237c459027d42c0645107f5720206dc008f7640115b9d29e774e980cd4505084c4bc51125192ce6a19e0aeaab4c55e8fe405a485d446cce3259f626ea6c21516e22a9d7014aca3ae5a0d8151da5dd425a54e049a7fa5f8790b5e7fac7de9a591474b4dd75964b9963b7273de23b6a3d8f5288791305f171ec5cf48001285405561fa638f89e926b8240bc086e59d5e604eda6f525c596342b89be1dd135c8bc626c3aa04ce009cc041f20d1bdf80e9a07935c79501c7ad7e8d9a2c1bc6226992e8d735a4e8cbb18270b2fc9e27348b1108be27df45b8e30e14d5802a50796ec48b75e9a4cd5b14305041a762ad924770eb4d4b445165ca157b31640445b17c4db3400910b4d0adcf10aff62d2f648ee6e7eb5456aa2837b92fab82c78e67600ca306e27a1a08a04b9a7005c19c39a18160c289fb8e530c257f6656ee572dafe5916d3eb48dfa8391bd7e2d628fe68bf39e508e4771e2e9c0e4c987718035147e8a9de19e58c93cfaaa1047c947ed7e3c98dac586da0940f7688d9af6618d5eecaabb88b4993f6afd89566231b8839e6840c5f5bbd64d4e65603ba88b5d2945304394e15561f682e1485819e19c75d48d19997ef188ec139dd49a9ac027abcb534861dc20fb4c6a52c20aca870951fcf575302ecab07485e2ad550b5171493279199cf047348a48fbf00b31386c50d706a81bea53f1188ec73bcad3c08d96634635a483dcb1b8cfdd0c53932c7664e42d7769156909d6c7e29440e41aaa58b4ae6e6b7c575ad6c576cb5627ab240b36aa14ea390fc2bc6ef62b543b4f6ce9b232b0f071fb1596e0a5d8438dfb0433a0cf65bdcef9683013474e6d9f4a113f71b679f4967b7edd02c22b4fa26a03f2dbf4b77cbdcc98ca965159199c2de2f4fa0a109cbc433010b8f77c47de228daec4c9200ed99d5da03bece1272c6f3d5fb2b5ab600ef5f1a00c2a0845fbd1758856534b75ad0628de5905b7a2bc8d95dcca9bf9ca3f008c87b7213bc2af68de80bf989cd9b93ee4f03da2b495f02f823beacca31d260c216e6d1e98133bbe6fe4a3fb8b7cec00a12a50314e705847e69d78b2260e7bc6963bcadcd0ea4d997a828c6ffb4e43303b45196a593b464ad4abb529eff21fd9503829f113100f0e0cbb5175753cc724dea399a7d55c879019a645c08a2c509c1208a71fd2ed96b2eb4ca05ae2aa78b9e20f3bf28afbfe453a513376591d66b11cec3e04361ea1163ef31529855629499c9a22b74c144a40de73d8c1ebdcbf0454e843d7749cd415d5ef6577535628c7fffd76cc50e63df00c3b8c800eb9c3a62a9497f442127c97fb2483fc6749c53aff4a3fac94e1602f275e7a8919ee5b93041b9dac45d24f2fb37b5718536c1a8b5cb98f937e9ff53cc978671b393a8e12a1ec4c302e7f08f21d27166d6efdfa4b792b95843f2a5685d4ea0309f99e92770598223726823868d2d3ba60946fc62f5ff3aebbaf1dc1ad1f6a3c6dedfa308ab278684e87aef79b00ac75e0d9b5d7e1ad344cd238fc66f93acaa7ffa74ae6d6f429cf7c7bd7f1fb0b136fb4d6c160e90dc5f36a47bad117e05bb7c19100a544271ba7a9c7bec0ca51ae8bfc7d5b67ea2fdc9984f253731dc346766de4afc0d0cccc3d6133865c196069284f157ecb18eb399dd397bc4043da41c81eed1a466096b74fd6823ebe709d73b812750347b6d95a557799831218ac4a653776a001271365817a390b31424616310f50da906e0e7082cec366f1baebcbb5c488a72fda461b585e03ef80d37318b029be1d4f07dce2ca38ebeea0b33838216e370273e7417a413e298c59d230115ab09921ca765efa133c4d29453d136558edce4aed21b2073fe382083c17f59cab46a161e695031108fa45c22f779c8c308d89caa463da7e4ea6ef4361c55f2d24b374eaa13410f279239ce2dc5c87f79aa447c99273bb49e181491b5ef04783c78932ab4fd83a6139241a89dda69215cc38387b82fb4ce068e8658b47de2be7ef75d04142e88d705d41850fc0a0f38eeb63488381a53a9d62273526ecaaa6cbd33543d3fc4a5012a4af08095313512d510c2528f67f5578f473ecfbe58039d4512f9283ed8ee408d2cb645563e141cd85fd8c18bc5c07b0e79ee60e08eafc7a63a92024835cdec72d4b7b89e9d7da1b2d22cbad3ae976ea27a0bebd43c4cc3ca9c36382b45c285c44af8a701d6a8b33b31606ed9d03384c5d096f93070b298f6060d85a1f18af97b052e32e75d44a6f018114a1c2c27b690977348d7dee2d0b1f9abde2b5ba9a328ef30ea7797728739d439f554b57acfa23b06f1f02abb9d8c9d2a1257119646a8561912f5e1d649a4411307466020443fe68510d72d4ce2a62a0bc14060a52d0fc2d21f6d3102200f52b21c7b04bcf67a63005ac8a0ec958e6f60692786e8b9022855af7ba450ec5830cbb54d20089d79d8dc9b5ffad8282e0a6236da04da6e12fbad9dc8329e0c711f8d8eb90d840407b9238a0c3c47b1143b2a428fc3839c84113b44f2fe615e44ea418c73f81f9640202f8cd51ec1ee67ecf260a0bf5cb8e25783d553131a781cd790d2476b0289fdbdbc590041138d9fcdccf4bfbffe0e363a2c8403fed886d52cd2d9e70361087bceac4bb1c5849b54d508d3190cfb53241bc9dae03a56e640272de27063669d5f4268ae02edc7cfd44605fd4393aa84eee0c407fd2ea73410d668e691f1797d3f844d78dcad42e2afce1d38a924b093705ad1fca4f6d76f9054e67e726b277f5724c553b74514e06d5c24159112c8a42fd2d920c7fb9643786a3a8793e060e8c6fd9ed38b9b7c4c15e2c4a3e141bcf7213f22b4bf52d4e81cc084595d4868b404c8002b0e0406997861b467f634fb10bf89c27a302830b8d3c7fd198b2aafc17ff289c3a69a137baa9015915b15b0b47b3d9b17040dfd24b618e5e3f979ee1d0129b9c2f03be77c1a10671058bcec8da19ed3ead673f9100289f7532bacddc32016c35feddd34c4c1b3a8d9379664183d9b1936d0168c7d664c098b90f5505cac319433e59ed1292fc1bea80d1b4415c31a94c589fca365d0ef0cb2b05bad9a38680c4085c9f0b24b1752aa01f4ca2aeb8125339e68c1845b4b792a0f11b9b63e00c3e29d3479472e349e4212a68b4dce77fa34d55796d4562a618dcfae3a4b8dc6498bd91a4b293d48df73c9a6b6d43869b560719df5c20e9de123e562273fd423935deb5947a2a240156e6d0ef3ea66d06ba2fd9a47cbe7a79fe7417aec772766a81b4db216b9d74b6cc65390dc08bd30c3dc0f131dfa91eed4f14adc6468e00f4970e991548702c3a7a5e15009efc441cd2a83342113c7008a47f705a84cc9fb047ca24252b390cf2d1dbe59873c31f88ddc4c49db87f52a473fea33e641ee45fe331b39dfd083a0b8a46f466b8c3493c11e6d5d980e574a349e4ff8e535f03618584a6e4e27e6a9091a0ea8645e0af0cff77146a5fde162c5c12d89aba8f3f769a3b7e5400fbf1fd67b3f11d6b4c24c1f8c3c35524a71d4d202a9cdd2b3d64ff8b1a6571700282dc39029fdc6d44c992705383be270612eb2169328b713539cf724aaf64ca361892c512a7c1fc97c1d8a21ff15bf768e78a4f3a1092c0c2f6c63170c17ab6c383562e419cc724134f943d1a15601a8abf2c015fa67ed6c62ac4977bc0bd5934acda7e42daec3ccae222c1f91c461c9754e92f2fee513a8096b299e8be3415c2c5e0ee6686e4fc7fa66672117ca7c4c1ca2ddea40689c03f68c729d565fad2bb5fa270117f0cbc76662448707451d918d91b4ab719a6800b06872245a0bb4ccf9a163b202e5e651cc3324524214f52f3553e758c78dc81ca0615f440c4aa49b1e59a23f36ba83eb884882eb03b34aab2512338492bee72dbbf3f20d6655e8b5ae9771cebf4182ec99fca27215f968b7177cd5af08df161e24c5fcae82764c8019a51ca79c3c9ce2538f357a1b777e10cc90ba6f83da4986b24e6a2c2318a77fb5abb965654e5adeb028189387536665fa341fcab7c4fc0608270a6e21d073f2c184a274a4b7a3e8c7c60d3b0af4685361fab8af8852543fa4e4e933669a1418ee27d751567badf824ebc4ac4f1ebc84809910d232567c8962601e24edaead886df87ffadde67672f347dbbfae8b6b3a3761c5371217a18d7546bafbe7ef1780d0c0a6ea7890b5113606fa35e94d4675f9f7ee2cb2d60307bf470246c3013f51a1ec7a129bf989118086f50b61e28e7117807cdc5b9c9fa163c54eb1acbcafb559a255d92918d9170c69f6f9f497eb6b188e5d6f471e5f9177ba510eea8180afe401ab2ae1e5ac40eb1e4917aacfc38490c7635ae045f1d83e995c05b2e67a0dc84871e3efdca6cbcd94596d56a66024ee3c98aea1279a0ab2922478e36db643521353cb1be9a31accc72c8777e7d8c87045d398dcfe2dd0bb371f9c6520bff0822c3e104d1ecc835b74d7ac91e03e086bb63a4c29b0a38273ad0641ec2fdf735334e2de19dc2f906fbfce342906f41b72451481a657673923b422ae3781a259793b56ad8d075ba8c4c9261934f26703a53869de58fe55e7e75c792fc6482edde4c759095a7c9252dbaaa8b7dc29d9d348e877b876bd7536754df7c894252070b66f764edaa1571a359989b95c6a3d07d09baa554d2e820879c2d6fe903c6c59fb38937867a3b6701a84343bc5d91c410d40df6e856d464e39270d0b6112c62d621359ab46a32d8140178bdbdfe440e6e958aca313c9b70ab17c40d54e06045cd3147cd015778d6d70013abb090e9df5b56f5c59e9f2e634c2c455d887a878ab77270c2ed15c36faa0e9db94880ec30b64af600fe76c2bd5dade82dc5025ebd83834b2c7c1edd5b6726b59fc1a2c5b40a5e4560a26d6b9493f28708d94b42ea422ccb631c8c38185bfb6d2ac120d8b1609afc5dc548e53dec62a4922c9e3665614d6a086c6633bf4f0dd5d51e381e06d81375073fc5ab8d01212775d3e9518c108d10e5ebb6ce6e047a4cdcbdb4edb0dd0e8ae90c28f282dadbbffd2536b2ba06b28430d51ed84f003408f7a409e226a075006dbcb034170534bebcf3085acb1bc9c3dae2c3c3418dcd9b28b808fcc453abbb96dbde5e1e578f45a5a4f4f4d1f6a1f9374242d451d86f5626ec8d22f779f91aba79a24917df703980d842f8109d4db9910638d770edcc984c7b67820e0226dacb3baddbabb43cdb8cf4f2b8483e1439f3072f2db014a3f675bd86f433781d80d52f4944cf2d78e42dd1a8c43e85144605985e71251995831c09697d5c39b3aae9e1baf06859904cd41f184f833f9b619c89fb4be6dc80ce2a28ff90eda120b8869b9523c1c130f065355462256f6020095b2aac4190187292ba1ef904bd4d998f58cda436f3ff496982b33bd373d14cea9b796e8a856321b4bd29b6f4ea2e16cd2ee348d81c82e10795ebe9c0b97f3f636580cdf3a45de7117f6c0ceaaefb8949524963593bca2dedc1d32d433fb2625d15c222abca7b449d4814a7e491ca8c08289990db36984cab0210157e773f07e86ed0d3452231c9966c6228e260d0869ad34f1dd3e1aa6eaebd14a871252351fbdd072b50d4a8242eb5c93fddf0fad17ed84bc98a889fb2c8d4e2fe0e6a2aa4665819a02c229d824261bb5032c184e3c1f84c3363b210b21e702dee6b5348e34f6ccbdaccc217e4c3b936e49a1ca21c2f5c8d1c42219e1f9efc6a57db1e2f475a51846d65cb107f87980992f7aff6e7fac1285fed98af9378f7f1e44d10275f6c0fd054e2a97f72340c1121b501340c3af6dee88e622c02ba348ff13d91277924bb13f1e77f80b388f592a82bb126ed2fd8e2fef64079587c098718adc8fa304542c380a2b9a0d0baeeff7d0559c9f8fd07e33038fdaea821f89157f1f7eea8215dbdee775dc7353adfeae6efb1ce327cd948de0094d786ce25907488d0f2b9656cfc40814ec0d68ba1bfe55de378b8532614c49be91fb27684edf100fb5b445f8ce8278f726c8060666a16cd80ea01d1fcfb0891a9c7bf3227855010a37e78c6a6c05ac9b90c3ad56de4edd63253fb9fcc1804a77628a5d8e2183362b8c0c8c3848bafc2497c6543a8320bd97f50f7d97c888b47cf71d394232a0f6b2554e439a1638f218695e764292115c262f9986694a966986b20713e807f2f6852287e1d2bdb653573cf5bac0af095ae129268c20b5732468b1bb66644db03ad9cb259a283d04750f962f6fe1931ce1c8c84c3ba01ec31e30725b66741da0a5953081cc6161780ca8001b7862eea72aaeddbd57c7d427ee6506ac7d855fe894e3c5aab4043d0dc15bcd0ba1ba45f5a928f42aff24e7a15588ae1ec46833d0fee8a5f89a7fe57fd048569d3a265c4923cd48d6f0c790b81424291b6cb478fd7de929f48596ac437a796d9c0318762672271b1bd0e99891591d40b8ec850913f76f3295bde953bf405934d38aa4bb2aca4219a5de834757770036faee79bda1249a3d775030c6e39533ddeecd170c35d28f9e29d11a685fd743bbcfced45dca8d726f91bafad5b891fa58387e3a86ae876b982183fe3eea5fc42f92af90eea89887cb65685325c7317ea05c254f3825e1fcae91fcd19fc9d07486a8599a675f728a1de546ae74dcc784fba61e80c7e4772425c6fa00b52cbecd3606e610c59ebe393fa7894e8d70e2bd4794f81926287d04537b92c3edc7888bf41092a51493f6ba344272ee5ac10040444a776210bac517b4f7bbe2a6012e8d95008f4af3b2a808dc0bc5890aee026d11b8381264659681c8e00a77cb8d805c0b976b66d7e443a082f99608e539f9e3bf685c601c2617b9a58642959423b9521ba98c9d06c356ea046f26f6a166adf5c4c91d8cf9b094e653e59a0a26fa1f28304e83e1c11439784136f9210aa14c9c9530081f1e61c1a218c065384c7c3355c41486791e1e7c2fd52cdd41cc428de8e2129e3bec0b1c5c36333032e072106440d7d6a81ca03c790510b79376c7e7aa5012680e3d5e33d1a31f522feb4bd9823d5a75162ed454a0f04b6920ea44bfb31648441a1ddeeb95275ea41f4b6783ba08c1d27735c6462114070431f7c8f50f6a6bd16502193a1b63582c1067b435105da467e22d74218e8bb118a985e243711e0a61bbf8f4cda42ebd07a7b1228874455f7b6206132d9d4e5d3b84a48442c9ce472901a7ceb6993a1304acb35e5e9e1462e710d606bff651c8c0c367fc4a622d2747c46bb15612d52ecb113b1f52ed460c62a83897b7146e5ad557d1233d48db65fd65a65d9b01306c227c12b84a7cba94cb47a1aae4d1cd263d554ec948e99a926fac8115ade054a581443d1e2d00e18c2e91d1e99179533684509c17deb71ae051705845c74e980a70d21154db9baf327fb3a9289091a195088b0741103c6317002a07fc23ca419af557dbb3600332e8a3ad20f4b6875e542cbb03b19cea938e6ca74fc21e3eca233eac84bfdcb694530251ada0ac920adf10944318cb0428b75325da055021e2084a39c8b8e7f80f3094a13935a64fae122b5713864507ce6dd9c9db4927d7be39d8eba35c14a1d5783f770cb0be318cbb8851e0d874f8ad5937b7504b9c1a3d0e1d994cf3e1a81c07007f9bd67785462ba0b9ab68a66127d6fd2ee29451945fd7cbd40eca4bb8e7e8582bad50a529c01bca0a31d81d42df534ca687109785ac7b2ce28c58ad9fcee40842053a081f6830559011c36181deee31c58b154c0802bd89e53e83190ee06bc1e12631764f82dde099a9100686f8fff0b03cf5831511c45b267440031fd7fb8f810874d7cbc02df1b82c3920188f78dc59a9837c51bb66a71c3537c95c3eb3260d4a30372af75e91c0ab170ff45f5b8c5c4869cea6899106a0b1ac0cfbcc28e626c11130ec6a489e49b3755102d96b32d2066881c6fd31560a467461ac0cad694ddf392bef9161013979a72104ac8a793cc7b996d95602c8b5e889c9a6f94334a592581f492fa63a51d20e1a024436650a7519ef5520c375f5d0905c7a4c62c5c66619dd8fc767f853f7e4de2a2bdd2168f83764843df51068180f8daa343536e5252491b146893e9f1a295ee6dd78c1b4efe6d99c9c2e10a92beebe5194df750af2c76452aaf026c91fab6585b28f13f35208028172433840289f6bd4314b1dc26458d6e301785058ccb6169e3569ef2efd88a70209f7e3acb85a9e54e10a12b7f5876726fb87eccc586a6f9351313120175977b59a47572c301ec9c3f68f6324f5b029b1ea4db4c8a675e45d982e1ba83787406e45ccddf6474206c3826231bf7542f88ee0e97bd86d6aef2a31ff58216b4a4750d16e92a6cc167096711e960bc12541c266c169c342e730b25f30596d83eaec2fb8d77c413dc2504281f1a80b9d417378bd0b0a35aeded999508304c8fc392862988d9e5d18abfcf36042526d75deb357b3bd7805d922dae7bbf0ec7f7ebc52526426efc7e988a5fa9889b8012164eeda59f55d000accf805035979b3b700de1d007f03e0dd0760970040f99d0fa09ab1f4d019913ae1def0bcafc38f33035b9fbc693661309d525a155fc60afa0fae85c4e6049dddf910776f8a4128a7b31242646875ca556f0ef835ab0bb7465122e810f17e73516b92ca178b72416516d358196ffa54c1ece38622f71cb483ec18611c25d5ca190730067fbf94bfc0159b700ea8c66d290b500b4882f28db1b3e2c0e48388e1710c5b0fe29bc33048a06488871aac8b38bea13054baae51a8f3390408bf9b24437906b7ecd0990f39f99c5755ed65114256d0c6325ddf03d63660b310de0ba1ba9a2b2a26035625bd396446094c628910a24ae2b1ee742a71f15aff81dded2816dd083ba916347c3f6216b4100a0b19d83e0c6d8c0ee7c8772a0b9b13e7b673b1aaed394040ddfd9526121cf8d2e8b4296d3c5a5600a180ce2cbc56f576d99e5f09f6ad1bb1d81f92bf229b2b7ec952fab435cb13d673abb7b42850627b49dd70974e0fbf98010294254990ae526d5b06aef7018df2c58dd10bcae134abbc45106aca026d2269d8ab52b6dc30a0eaf4e0a4441e1fa2ddbe6cb3cf579887d7970e2951b778ffe6071524af160a31a761730944b1f2a1c97f6c8c40601d96f6f0f1c360d5e9586604d9f0f835e3cca313abb1ff7ac903672b17c870a916ec35abaf6993f7367ead387e5c2af9a0d2f55e33f393516cb436dece496a15454c881af6292748fc6ca121cbe7cc2bc67ef2461bc19e4ebf669a2f642c50586bb4cd9053e7422a6b93e2da7f0248ed056e420cc353fdb9b6a609690f33593f6c27a205f5c008bee909d24f948a9796b9e2e1c416ee7e6de7348b3e1eb440862e824eab6193af2f390c0d9f36f8469a5f27ce064afac3250a64081868e1c722ab89d34b4b645349dd14d9938cf3813709a1ce67dab7e1516d3e83a05e2a2b3804cbe19989fc1a513b339020784441ff402db9195c890c9331b526e9162c490564220f1466ec0af4cb61f27a690a00dc740075d44a715fe97066346319e7dc06b822728a3bf64dc5eac37853527a2d68eded6aefe7200c96f7fa8dad3ddaaeacfae20851fa52682652209bb514e26a9fb23924370ae7c63b262b89a6bdd5d7049a047c28fd56f287d7a3523d26e15a54ccca8558899105470b0f174f29165321cf88205580cd88509f5f1a10bd9abaf11214c176bf2537143b5ba3e81811486495f055899f2d8ddf77ce37192bc5d52f5812ff0cdef95e26513275f0b8d476d76b1d8cbc3cb83c2fa2e81a36cf70459094862908115749865cf2b82298e4440c04f920eb9a547c262452d4953ac26e80c9ec6fa61b62b4ff3bbd15842517a28aa786aa6e8b6b937183ac5d08bec887aa8fcb17a64a5bc894fbb5160e836cc2dcdcbb3462d75b632368a167bd3d7ab011b843c4161bf8213596b1c13dc5d3a191aa84a9001bf639239c49283524a74bc2b5bf7fe05e2677a71317b0b5308d716491fb8297e2177589ed48f891a9a34d9b1c8d4e39cf9ca48c0d8ffa3223f6d0626a14b6aade73d01756c643b82baa2c9081366597746c41b4b4d8a30c4d8294254c78022439c92a4524dcacba89481eb84a1c114d3c7bd1aff257bf30d354f748eaf7135ef6023f9aff3b90a2a8d72e3a7783d6c80be418f4600be5ca72a0b664e813fe92714132367e8044c2e27c68605fb8077e9554a99fe3a9b55fff565329cb68964d886ddb1fba8e3d68f4cd5f842f112ffa17b0db2332e63821234e10db72d93d91bf3c31ad25705d25eb23acbbba424b8cd1ddcbe2e85d2153cc3503b92a6acfd9325c0a065b15fc6196a468b52d06749fe2cda01bd150cffb048bb1fc154e43e91c970c6d8513078b06244d2a6d57d29b837eecfa0f53cfdd7cb2849c30015848d3c7e0b1bda1ac85fcc959a148c094c46219aedbd82e3ef0b8854c4fd9395486f756ce19823e8f9d0cdd83a3bad9526bf63689e9faa31e4745f542fc46ceac734d82b2e5bd3ec21b42f466422c4aa799fed308d9cafe570a2f2dbd07309a90afd556dd5d824bf8256c4dc3ae0d8c927725c83796fd9aa790ea2bbae1e3de0dc58e541c5705a04ef59658315e3e263f7436ae9cd6664ea465ba522211c8c9787e78dc12f7e23570739ef468d3a38f65a5cacca2e332449a2edea38949a290bdec01d4af1801f85742bac115152d986d867f5175136f3f53bd822df0b6ef8f7a54cc618a1ae3560307f17d9ebb16aedf221b867ebc063f42a42c3a39f3b91f05f6126a3de2baae19ff1ff9ee35bd9d62161a42fc895236624c818bfee9dd2244597ae14064c80295d14aa2dac4564327ec46d2a07b77df83ad545ce0ae2a2afe672061315e914dc0a44aa4bb43da39a2f8c3d83ab0912eedde12ab3c471c8d6ec8cb48c137d911adf51e2038a1695e1919520f801ce1bafdaa127559a146e3bbfc89e857cc388cbae8312d304e98b466878ad95a58bc70f959b75c221702c13aebec99aab68096ad7c8dc955005b23bfcf0919cbaf5239f8eb40398f1656c7432090e3b7a32c4650dea5fbd170d440809cbd124236b5d1e5fbd396b3422b52fcd87b2956e1c442d665336741581bb369baea7811178a60818c10543eb13a64dbc7f2acfa25bf55ad2465821277602c8069a3249bcc02d4ac84f145b3941f6e63a5308fcbef52610055bb0611c96f8f335284c53a50786e376705d279240b8020c0062c910ed2a4eb4b8280fe10bec4e2d178bf8cbd33cfbad9fa48b510a687b8cc506922386bbf84c2927f30776c465613d15c5ec28e32182e01f27abf6cea73100c8c41926c501d392999bc113ce419a241dd11a0f1b55c0852fa82b224efcc2019bc4dfc34516fa9ad08f9e4903ee44e20e6bba1816e6b97157e9c0fd36fb0ac188e2f9671cb2af1efe777a9a7013af97a4e8ad8731ec2ff6d912da6f5c8cd6f6a528c2a327e48629b5147941b9953227fe4b6ad62114d8f178208496c89143322597693a6520caf903d35e8a44bd08dc84c9c003f70c8b333d887087b870fa21177e889fdc108fb15b0815c345f86090f5fac842cd4a68cf1596cbd643cc07afa021738f6056f913234034cd1945f186063b8a826aee607353b4f0e0df7d02d06620ff2041e9e4e30b2d866f7a449ee123d8c4c5e6758b3739c6c98f410949df426d34091132a2cb2897a70a6d2eb15cf65bc7ed8768de946125e53bcad55043a1374f790cf6221cf08dc0f96a4476c89143bb24391c0195ec6eac06ae623a6ba9ae31b99df6ff2d3865be689306cb002969ba59260674dd95dea78c808043399af426a1a050def6154a37500b19b08224ac4f6c1ec7eacaeb32a4936a421616364794b67c12250d0597544fcfe5387258bc8a1d0587d3a8e20cf17d0eab36bf0f3ffb3d2c36b677364d73cfa2a25e5a825fbcae5f6f37b5ec90f4f7482ee0dabd2e1a46188e1103dbeaa9ad5efea211f2ed4efe5371b32b5d62c51a42a76a3109d4552a7a797addfd1b3b7d2a8a0493c8628c1757001ea983c0338d399b8e28a55573268673a9b35d146a8f2f200e2fd9932f5b2547f3232b626e18cc1e1b35eb2a7d900018920a0cd5bac10a10032770f8bc476da362c7aa2646fb1bcd8574a62661cabfd2c775d223485ff790e3e28b60ea1857066a428c43359bf91da8bc1b825c974b8389549c1110a1ed335a5150986b0182b74fcc58f607bf7102055724112de0187139f560754107555af1f5bfb395499039f3685b45d6dc60d344d88b7a0ca508738c42ed4f7038613b1688c3cd54b59323136c6a9de7d575f30258e81da35fcedeb13ce45bedfd3daa4a8074a766feb4792a435654f9f9e73a000c113b905b9cb56d4f6d193cb34f93324e0717a790618e6f58b33a12bdcc4104de19851e3d9d9e46c0eec98794bce065366f51ed30e69c68ba7499a62b2547921225423b590fbe74b855650c467746584c48f7759f50f6bac62830a31f801dbcd65b2877fd3190c877137b4c72c5d3b6480805ef487e020b0a865e90cbb78de09081b8ead08a5d76e0751e1e9a8010387cd04fbae105a989f4bcec53a584f5efe5ec9892169964bde564c41002ea98700982c2d1be67a01481c5d5e757a12f46cfd3a7998738a519ef837469ef799da6cba0e2508db8606a4c0a987a22d6312e1344c3e2451b269df38f284a56648025b4485a2a118c07619ce858d7712c664b6a2205632fd12e8b1178dc6323a588edc28acae1794f501ec20056ad17bd1204bc28ac5af78563bb4ab9c68c374dcee2088cc47236f4939838fb3e671beba769eb941d250f9c70ad64a05340849635236a64d6e07974bc89d3498a8d1103936774b8fb869ac7e18288071824d866954c1c107541a247103a83e3982250e5583e533083291bec519b40337377116ab77bf4a1ad1a752ca118128d6d4b971af097a2dc38fb19c589a2d2a864dd391eaa925ba1de105a50db517e4005bcfd9d0ad02838eae122dc0239295d65ac26d3db3da8d45c0a1788db9efb953719d5baeb682ba36c513cfeadd7d998f8b8167f35550bf8f60e307feb0b14238c61916c5ce1aa6d9ea205728991b4425554e1f9e6bf5617f27f1c3bb756223a02ab1247fa1b1e04918e761698c1d71638551e49099c69cc7a985b18cc30d75a4465b08b492748b1ac17c2297eebd287fb1b2cb26687780eb8216cd987cc00660771331f5b218cbbf7dfc03c137132296857fb53c5b9120d747069c6f20280054e927631428c9f3af5a3a6d40d4aaa5c9da3b3cc3450f0ea24d173424503cc84ca7119d69f196cf5a129efac544028a45522877cf882fdcf7726ef7967521f1380930607c4ab5c172d7b6e0c22d65a80c2c862cb37069cb6fd69f6d15d68472f69b5ea5331f85a8e17703c63ca2b38c5c25fba37405f7b3ec93ae966a5d3c5954fe1b89b3dbaf475916ae17d90d8152a79cb3d31f578e98856b1370224a38e0c613fce13975fd88f731b49ba9c1fc2652bca7810683afe1a25be30875947ab5da1ae52c6ceedc9212fc291b029bd4f8bc5100d2bbb067dbe0150980e534dc26594b85c538dcb97306e6a0f0c92848660ff9ba1655f0737f617c1177353c4dae81ca9a9bb813dfe6549168c529e37f1da5e1ea633e53ca99e2af3d1378aa969d876d82aa815c179431831fe7766297ccea38de1630c9d4f5b1e63b443d029c93332c065cb4ee5f90c670d90b2d2334826c59b88f5805808822d282b60d99e47153b6137c89cf752888b9e3189610acfd3d2e9c93ef6b544773a8047292654d8c281541e46ef355bab89482af25aaa60593e2ed619655e9887f375a528469515af9c18e997efc12fce5059fa677c82ab86aca4a611ad8e0e5c7c5519d7f7e6c7302ef6f5daf55802de82d3519838ae9f95c1f9527b8591709541f4cc4487cf934e5fb2d15d1f25eabf58320dc359ce490a766922250ea7192d765a4ea849ef252ee0a56e685bf618dd62b07d43f696255c315798aff64e635a6b3bb34e857485f39c5c016a5e13799b8c62ab2c637e25d2ef0d3c5e140f590c7f2517688b7491909a84410ba1c98cdb943eb1f3de23163f505c069820771cf73138f49b0e1f29366f0f7793dfb33df460a2aad65198e75a89eea299f1b3f9de986c0ea51efcf1792d1a5a4017f6cf00da4602292ecbc46d627bef4be41707bd8dea4870d1ec458531383c865e3f91b62e9e4237f033482efee1eec2db0c241b0160f01ec65850269572b28baf3ff047b1a94e9b354a9445b7138a81631f5524f6a9112656d40166662a44f6c382eaa836289004f5cfcecf97b3f2b6b328c572f58ee1a617dc2beb8418ec040d5017d36a5f13c567086d946496e6413ca6f97d65be3f5f447082e4b25cac19c0a53dbb72c3fb51b2033a9213c9271bfdafe8561ebbbac6ecf6d1b9f697f8431d14273008faa9255a179a6342a173b4fdaed5ed30197fea0462100feb11f88e2dd14eb1c52ec2aa2290937029fc24e4c545b621c86413c1b7fff554821709ecb548d67784052f5dc43a2bee9a6a02fc48eb857dac476289219d605d68a8d41b330aea18bd7fa342481a53bae5fdd451d8227da74af424822dc454a89ccdf009ddf448c4a2b7167e74ea22c364d36ca36a497d33de403d3966cd4afc94d6e0bddaba1ba0ca1b77c1a42c5f287711b40683087347f2a0be0af35cf90b8c007f4215bade2331aa093d298eb4ccd934d3d88677274d526f3796b1bbcc50e6a2e5cac0c32de439ac9ca77660be96c3231464956ad65e0943ed02adb7952ddaa269b0fe9d6f32186997a00470b0337b4e4fa087ada0112d48abecbdff7158984a3f77b9448375b202596665921eb02c3a4697670d648c82c4d426e61b7edde2dfd28961efed9a9853020b8e7200796b8360fe6a93503e77eae96c2875e194ac03124afc49b7a484bd1762892ca18f1e505781f281da838318c8e6aa1fd44da9c2541737bd560690ded1f17824f64df9ed4eb99ca733d42a82af08fd809e8ea672ca7a1823514a7c6e0c257316b72d1b54cb60cd2ad75178b9895fde8e420cca9af261310acbf120c08507b96419aa4f2f917e4d6546c026963af8daa4fb264135f726e179fa5dab739f825ccb669c2a3cf376a76f0a188caa3066113e693b7355aebef11eb3357449415ce592aa42076755c31abc6d88ff063529a46b614606b6a927136f98d2c041b30c00908682184fb0230339ccaa5dd31868f7019a90539758c3ed15e1569e6b78ad340bc4b57452d4dcf90feffd1f1eed56a41fe49a1e35081990fe9a837e43015084ce5aff35ea7aa7c8a25970ed0a2553209e86c2b507cb386ec49a423fa54d9969c74b25dc927a0f7052706f26c0d344eb9cabd01f63d9bee2d3ff80d354ea1ceed5ed2d43f534abdb4bc9665a41ad45e8f967cac23b43cf649b60972afc2918b2a7ee94d3a1954c59f18931d7e60f72a2d1b93b1c1359b7dd30aec03926deb7a5986299d18482f50e0778cd1225bb3b177b18a78dac3c1378450d219131821e8e58a3896f84353ed93742c51659184bd992f890e09da854c3b5d605a2bc78be99806ed6a7e688c89f4fd8b51931592a38c887cb37fb0628f9d20f81c86ff6440ca159e24b634e0147510a6664c3fc0528929db031b391e219a35a3daad1949f9476233fc9b7210fc4d27419b8672b218d0e57d7752cfa4eda0acfe2581527ec9f32347284ade77a51959d70ad4530f1723033f7566246a6b842400643a850002bf01852e341d0acf2930f02f78f8e5befcd3ce4392909f80bc19e83f05f038014f0444103fda9e356b9a2710f7836c523b71b998e28e1f1e5b68c473ea4c4258f9aa2096455f58d3c7db04db78b49cdfa6f8031191ce6d4f8c1944ff2ae121c087559131207aeec22eb0b258a5df397aae220296f47642fc2ebff0724152acafbb4cfc2c4a443b1841570034ba24308737ec72a106624cf5f7afa1bd2556b31f95f04d1f474f8f8a390f2e92b8f3bd5a40200dc6ca05e596a9017269874e9c813fdeb80f40e5a963937b7a63f6b62150cbc73da5606d8978581e25cccc729277855382b71a8292056f8bba464e6094a20bac5d92fee7f61165de7c791316176929fd3b5d4cf9b2e774057a97be4b99eebb9e0ca6aeed7cfd2021b3c3680f203f6318794afa313826629e0fe6dedc4bc249420170f5eed2ddc84fcbb590be25cbd1367d156cc610b62623ec034c7fbe917d6e63e9ffdc9f123c2ff3a27c7409b04ce15602bdf6432fc20f27abc5c9c14ea7bf33baf11b196aacc5dec97e33e1abf6c3c2897abcc68ac2c66a88b69b0cb538ba46ac6820d6faf468902355388f90ba12e83c21dbb6b15a22b5d9a226569fb808c38f1dc9c10691a39ff6ea3eb32584091eed20ffac2d88ab628b008556e44851833c84b1cf5a789e04183e4fa0971556c09861a316923dea520918c6c0946b7f2437eb64cd9c5991a785945a539851beaa324ab37829d10e588af087efdc6c74663975434e672a9301e0b24c82bd9edeeed60488e498f58260f4734512e817c4013146674768130322efc4b0054d0b7f4a46763b72d629e28f2f61b35bb22eb7318536461adb180f00250155c51a0360e8bd3de2f22a4c17d23d3d472f00dc35d6a3779fdc62c626d07f30f8a0e0650c37eeccd23e9532d448b9c590e7705feab2deb0ad42295a7dfdedd7ed27e69312743541da1d5c5c99da32ba4c94081c1e01b95448b2928f9d5d99879a285e502d05d98b633cb4a626bc051b1809e5d1b54ed5260c4a790ce9b257843e5264be459a439fda4a286f0faf0320c07cc6ebf0bb84054d0fa1c4ef968d8a6f0395d5ad4888142c2a3c6259fb0c2c3fe502545965caaaf2c926cc1dde1ffc3927496df44bbd721a2bda89fa49602e8b74b42c83a95fa400df454a882ca720c0320faf5cb2d6a9daf824920704ba8b7f7f6a5ccc4f0becc54a765e989efb0f437745975b947c024647481a232ee60806091c9b2760c2e0246f1b90e316c011857e4d8663da3f983ee63cc7a07c9dae119b889293c6abd643894f41e338a10ddd2389df2d898c20b3c42dd8cbd54a2cced1343b9454b7a30915a295342afc711f9e6198721e04d5237d2d367803722ff31a6c9c6d68f5a2fbc41d2631e36a926c2cc5bead6d40063ab4de06f7612d1115be88662b078deae5dcbcfacc0507aa4021fdc5a7f79e40556f78c7868f2f0d24874042e052b58a2c1432d08fd97a385ca92defca75096949624e401e563e93c0f8679dcf954d8904df3ee383ba29e9ea99cf2e189ac253999b465ccd99d17003caab4706c02d38e70172998a25296fb097a127d990cbd7a64065aa4aabe14d896ab79d36fe6fc38c28ae6cd1c448a1e6c5133a181022d83eea257ff79b8f65703e732054015a341d9056b10f5c150d881917f1f170e07eeeec791e79c9f974ceba072f4ecd89a202ba9ac97b38f96dcea5f49542776d8dced2c0af55955fff752b0d224cdb01ddcc02b0144214fb67ec65e4f2f158edaad13fb545e24c526b3debec4505cbf95294765b223a1f772f91c375e9347cedc9b9e6a31000a5c8cab9dab0945901d458ec78afb17a83bdd52422b8dec963906e9ae15a4f088b7e92e935c263e7cd20c8fa011c5c9bc1b311b281bf6d7479aeae20f97902629510b96b762e19df7888b7c80d0bab1552a194b800ab8b071cf1da0249337f75a7b7a503a1441bfd0703c0d88283319c0e6885f1fe262a53d8e8f5fdb0b58c5f9f2204e0b9c22aef8afd396221dd2e3ac84fb71b1f60899e6c1c54581cc56c56d09c9848cd6e5b7edf197950a73a759b6b315f8522f87156c1d74ea1bb5b4f6059f6392e34817feed4fcdf12c42742fd81897f9fe4508bff016486a6efe2ada0f0cddfb3b3de86ee5a8dd59112039bdcb415b34a905353375cb2256ed7e891254cb63072049819ddb92e5d1bb8cbc37e8f41980c6212be741d7ad0292251084956849ec621d2587213c852a8b2db65da8569bae1da4f753e4fba16fafa0269b145209f5be9205867d1b85c996286ca1e734382e9448ea5d648ecb800a890efaf44aeae4def1f4443536aded1e6beac88d1577953756ad00b0eb257370a2efcba1d1e63a939a8bb8e9213edd6cc5c777d7751fcd76ed521629852dfb77f5460322153175ef88ed0c1d7c9fc045812a6e38f06991b2560419008b89e1261c43f503beb4f0893e5901b01e41e95ed881734231e3114f4b9080f89a3e87d87f010f2f9e021fdc9c14394a3c143351428c0157a94ace8f21cc0d60544a16d40b41ec1430ef4768210e52932437ce7d00d555636b79299b292a14330dd21367abc0c8617df4e936e291e87962d1cff6441c9c8bff85a5a56190f6e6cd9cd9e83f3a65c039bc915322b17061d77703ce5b88f25c527de7b6a83c3cb350fdb6103253351695645dd8390cf0e035795aa5d5975c843fc8acc2cb7442ae5d2c94f537a0e6c2aaeaceafc27e6a5715e907f9c5cef4906bae95d68b86367fdefdef193fcb82da8906f379f8330229c9f2df716e6f7f2604941dbafbecfea0188f9231ed44c5c29bab93c58d67fd259f9d4ae47558569be3827db2bf3cc643085d79d1ce0fa4bc4c17cf38bce77caf5084f4f93869243636f53ef4f729f40e1b48c8455340b3b54d476c8c811f1836dec15dcdb8f82d4adfbc9c9bebbefdc3141e502b2da166a75e484972fa5c212e69af64f9a5722aa23217038e6b25b8bb75573b4c70de37087fee00a2574540af19c60056463c52ba240103e6daf65cf535aa504609097a099b9d6f6b64a2a7649cf7c40d3a1ae7ea8a0ef03812305024f35932775ee1d91d3346972363752ef2ee9cbdd2ae49180641f0c56bdbe36b13804b861289886d29a7747703da24de1180d6c39e53c02f25ee15eacf38d82a112018581a41e719acbeb4407c8e442b6fc09ed2d45b21f78d2c3f849bd47cff55c787108b48c273d2fdea3af3fd458d0f07d1f9631ea02243f9e9d63943e6f191edc234053a06de797d87ce6663df4c155b5f379ddf3b9a16eb1b9fbd1a143a52a97aec758cae016c5f08035dcacf6284070d29393513d5842b9c31a9c7e37ebfd689c16e1b3a53e21537bc4777b5ba9f0efa04abc5e8bb4f75a3b3801580169bf9223652cf9fb0473cdb4476df832773238f480349300a31a8c73ff475d14c8e56939d4422ffc388235527a1e990abc6762701ab2f2edcdf9ca7dcf2808558d49190aade3662ac8f1d4c851f567ab9fa09f075a7f031f8595ea25fede0d3156213fac145ddf0e55bd867426cb486bdcda0952ada5f56146cc80b3723d29adaebec2861bc342f2c92f27391d9781d6b46e8c3ee15eefa1b3f8bdbd0e2060f34a276cb5249e384d4244cabbe85543333cb88f12fad0268f8f8b92bd11465417882e1a3bbfa4a609deebd6084526257b086c4d44c996722cef1492f2454cd06f960e31004e1aa8e4892304ee86ffc742a5390c9b5935f25a652e176962f69a5616810c2322d841e19845d6b0f0769e8e1095bceba2828f7d0c3605579314c1bc4430c712e2567668ed9c0d3edc10c9c04393ef1994e892bdcc8639b21aff733f29ad307d6fc2adfbc1353bef16d8da0dcda9f467d8469bf2c14c448a455faa6c1b11760cbae948faff1a51fe72357d4442a4b3fe6820bdaea90f91573c7739af2bf51ebc9c4f5ccdb394f354a94fcf62301b8edff108b4a4c695911a01191f86590896e97718581ae4d05cf2881f93c75b3018fc7069493f8d4555f8b8307d372a1f17f3d000a9051de20c85682c1335a2103305bf412c92bb44f25a1192a1e331927ea7519c79f000f133cf5c48f873acacad613468a177cd006dc34be1627194c4a880979bbdf1806305fc3162fe868e767ada150ec3c6f4e08941b3c56e62c6f8c7969318f1dc31027b0521f189f689c6185f043774617fc3b14b6a0383f1131ab0b6c1734f8327a335b46ec61fb8ea88481f52ba7402327825316681093b006e1210c35f5d2ea8417e7b62d36156367e4930415adbe6a2d8cac4fad6e52867af6de0ac099e5ba6af80c2341770e3db015f02fa463432eaf4a383988b25164ec9bde9a14fe15f125866fd019f0552a196d11ee24116360bf2f5d2a811d511c40070e72bb39a8fb2ed67392eca828a4f4e59be699a8de5dd5097dfc350d9d5ca0d0f9c2c7a763ac6026303b393a579d6904e3a2c3cd4ed549f7bbae16987fc3a04c0c74b432c8caf06df86c4420d7de25a08b4ee194638065d0f79d8dae92b6af2fea6bf2f8b10559787a3b414fa56c93503a2c0b79170176e1d1e6d4284e0f91086cf75970303c133913ae37b31ed491dd0e6329f27a529bcb775152414a26efa170a269fc2f44e9b1a3c1146b8f1c881c6e301583d404423cba3360c6d0dee56eef84a6c1e189d2b76d7f45f48ac3939fdae1a60e5fbec52ad1240c85947ac04df934ed541a5702376122f628df84c4c3462fe6aaf93e3bfb7dacaa9843e0dbecfd0c51045d9a0c13f37f92af44cc2a1d964aaea28efe313b8c4f0bcaf16f16762b7a8d0dc495b583385821bb9bc86594801acf63f56ecbdac5e0b0b6a4018a941782cdc54f3db435c1f2a4a6cbd6ba294356f9341921b9be5b67de44654f0f07cde28a654db30904426e03a166ca724e19ced33acf2cf579c7467b4f8e51c62a8aaf12fc87741835c797a7eba9f212287a789bb41d7c4c8c18b70e7aaf57f4f69ced9e314cabb08cdbce04b054dd417bd963645e031d15a0d570f00ce8add1153901262cc63d3641ef72a9457967c16e90d7fe6a8a9635c02011d91f3fe5ffa85cc7ef925a4e3e2c4b140088420eeff595587572c4693c459c5d7fe3bb7fc2abb0b837c742d8008588f4dd5ee95abf4e4235eace2d3551b9a5d0d83f1f81b778d6072cca3bb1d31ddd321fa7f5b7659422a06147a6999928b53f9b1647f0d2cdddfaa616fd22dadb9aed39e39d0fe6afbafc91e8aea9d90da754bafe876b8d09aed1d34b236a5644bab6e523c13e1fb8f1035604d4688f7cfa72901186157ce1fac2cde7a0bd56621190ca61e4f8f3119128e0f44275bc9d759dc63c7c3b033120934d36179cd2c955f2c0f14967be990d968814cef6b4998701954702f6967593abf27d5f7add54615331753b6b73707053348287138b28d6067d13cd3e7402c258fa19bdfbd0ac5d010981d8c2c4d02fc591bd9b3a2c004ff175ed212906f6cdcdca14d631987551cdb0cc3cde932a4ccfff0245b6f9e1b6aa0087a0a8f87761b0a7b1dc189f45ff11c46bab1c6079fb81a9cddeb19d525531d00954e30b2592ce41c74f2bb268fed3064363da5d947a3ff761cc8e40519feff7dbdf4ea6775ff44bb4285e8953406cba9abfb17b6a58a45a4600afead1abb2faa66bb287ae536c1c1889e932e17dba8b39ff3d5d853dc4b16ec9bd16b8dd6e6a802f037c8ce966e97f7579f9c038a1e662b79ddf5d8a6118de4b858a07162699932986ae8d99d682c411e57dd616153a13d6a28d993404ee2b8daff4d143a101eba5515bd12edc88c4fb1a4e319e4e56849a7b5cb90bf280d123d48b53ff2bff4110d2fe9cafb3e919f291d856afb8111b044fd1d55a6fc9bfa5835dbcff3701b98e2745b9e104a1da7f3651b3794bc839eff962d5b7179e5c3652de0b0646b2aff13711b1ba659420c39ec6b5d54fb8f319d4c28a7f29dc9dc5cb1d075bde5059ddfd206460aae70648f9be114bfe91db115935d3b299747e28333964a2e393240a12eb697e41d91f87fe0f39b8467760720b512cd32862b26368ad616587e318a67357b716624271cd5128dc168ed99aa9e6f2f81273eb3e80ec9cefb3a3b028ef90de3e7737e5b7a4fe89416ad8493ea72d3b5f5ba3a182c11ac8dc17e88fe2ae34cb64637e996b3aad66f5912970e20136624b0456c533b491e15580a05d165ad242e2b9ffe7bdfc3d1018af45db64d8bc578284b035688bd9bedda808c67fb6060a7d7e80ec29c895e75da1eee043d97e6f14f60b6f64ab090273226bbd40c606e507e4fed9522c826b78f08218ebee0c680e13923c7ed1a87e0e19a229c7ccff9a05034b5f4efd363d53b9516ad34ae506381fa0620fdf895137c457713f422d5e3eb609eb1bae04ddabf3792ae4bda4d8981994156e35e03f7a32b73f27fd92e58fb499bb5a87598eaf8dfc9b3769df62608599b0faf07ba7ebfafa2308e738213c27d5633c1b0023b56a7598236b2c2784a04f7c23dc6e22623488923cd907d454c1903472138842cc64af181a0ecb118aba6e907da4ae2dca78e3b30787781fb6f16e84b89de42eb802a01a21fbba8d9eaa239074ad8f1420f6bbf6ce437f4b874bea84cb42c386c4980026c471769abc7ba26b10a622c3083b7cea18f5689bfffb6c8ece418160c1cecdf1d7b6aed8ef29d2d3cd5fc83921da4be20557a4aead77a2031727a955207d5e3f239b341db951a54aacf20798629638d18031218d492bb20e1a3594b34eb9aefd46ac69624909086b90d85db56c13ed67f89299dffd9ab4af3f0919c7efb368232cce4046b680cc50e683a8da7366e08f9c352f14985117ec3996530093982cc2e883314e4c4de59a02d9aa2b66ca7f635e5adeb74014d8e1b96d82f2668317af601376d56682f78fe7200f45a2c9f40b6c19d8815c14d0fd53f286e2d354953df50a364f7de563a256b8d031b210068ac1b305c3ff041c2873f520e6771b0d6571c44a68a037d290e90cbdb197a25cbe243addc68a66fa628d72d2bd807f71223410955bbf5c344cdb43492de7f3714f26ebcff26673098fb125b2326f870a50b44449edbf0e69e0fd19e16520bb51048d2aef6171b2e21e61b462f9fb22b3f63d376eb9687d6d3221c17e67e8b491adc8a2a0306d5c4a7c3b136483f6df900b9e2065e89f17d33e8a29923f5291a51868b88b8478765bd5bcab474a7ee92c0af34b76e4b7bb680936914ebeaae64d705d49c648b50d0b64f90f656968ca7f06954707db8fb073393a7c68d6e6a96771d969246ba4893a924389ffb85f71b5492b8c13943c3e1efbbc79b9341bbaeb01fc0dde58beaf271140e61cf47d7e50a81621330dfcc2c6505dc614cfdac32fa702694ae02780a8158f60aaddd1152a78e2154dab37fe93eab02256b3eadd099aefc66b1225b1a829617ef086c95a082c096ab31265ff1939d2a1b553e206fb77bfe0f36815fb069f5505df09efb66652107056a5174e83340f146a95adcef67d193629b92a85ce41349b62829181366d5955dfa049a40b91353ed857d49cca9a44a99c0d4fecdc144952588aa7a4260b7053417387bd6e6d5620b4b7c68d6f08334f18876169ead4e17aabfc0585c81c92ae0ff23cd056b72cefcd21b13928b0ea9d46b7eea6a324d2c56729a022c136ad8e89a1735c6733613fe69fa62f677028c86142f04c3f1ba15eed49b2eef483cd65d90685490c152e2612969d0126a7f036c676377188a9aa10ea54c955e16891728208fd3d0e5b0fc7dd52b4baa255fa6fd25a6812a1e6f4c710235f5660552bdb63e91ebaf631f86657dc0072c3817def1b1c552dda0cca79a612548f2c60a953f360e0dcab84f90d31950a664c6cea0ccd3a15ef58fe5f48ada893f67c5c3a0ccbb818a2191c4878684e89d924507c64e250f6b3256401fe718cdc5306714ab773648f9b5c46307d7b6ca363471b488975ddf7bf53c567d78020cac83e95232b40170a4ac3a925986acdadef91af59d6a51ac5d0e6069c44c10c1a7d2cd39c602dd8a82dce84ef82d2265e2d5d507d73de2e700f6db2c1ec74964a0d5643282a99ee8f4cfae0a0febdd2346f749338763e387c7a9c5e2f3a67a34a9f075bd1640858234d1a4f001f590a90cf32047d51bf0ecbc5acb907532ddf432e367e61447a6702644cfbf808586cd270c2454b81053f30043b9c465273f71048d901b462559308bda5670e7b7546072d09988da4fda82c71c1fa7aacfaec7c51a65b47bade117c31ecd2798888c369d847affdb10f089017c74bc15091ab3791cb318198cf401ec995fd94ccdbc65858e044c277a78cefd18ce4342901574efa08af136301f85c10e34b62ccf07f61c4e8b26e3ce3dcaec74e9e0cf76a9f37c22ce380d46ea6afeb1eb6fe9655c4e46ef95ec6cd82bb9b7243d59153b22098e20e2c794a39b15de5102cebe539ea29163555ceb27296b9148964c88b96df1a41e3f89153748e8f01186596dcf4c11518712fc4aa0b42bd7140aa7d11fe199384ea9b1e3bce03b897ccc4bcc5fc7227340f0d395d2bc3a3958416d98e24f072b0eaaa01668c2104b674e3cc7e401159543bac42ca796eecf702c3e5a99fdd332a514cd0cc8d0203e1802dfb56c6375f0feba14d15e14766219530f5f9f1302a513ced124538fbaff0f8cd15aa4cbcc48a1281aaf9a93167282c19878b136c7369f670f8eee00bd91234d0e5903613dea67835a84d83c066b84bde219c5b67ef80d315cccdacb8ab5b10164f4245963294beaa4afbc1f7481d27fdbcab9c55aeafaf792e40383aad6a6d1d9adf74df6ec34829ce3b4fe719e6f0b900b568c1d37e17487f4638aa82dbdbfd99ee53b226a5ca64bf3a72b55f141397531553053807b63f14f5c02f331acc8cebcb3aae70e3a6e318d08123840c42f20ccaa348c508dbc828865ae70b012e62893de103b6d71a8975a07ade819303bb8282891a57935ba7b8ef8d5998ba89006cb2b808c3e740b102a3f99ae270b5ab5d13c0b3c99ccb4303e4cf48491a5629172410c36ee3652183ab8167f7745bf78040423d61a5e523c6715f23049c53c412699e1b3586b9cf785282d620c67e67abcf074f3f730057dfe412537df5406868cb44f5709849ad236fd47ac2158355233d7b477214bbed003d2e1ba9fdc8d17fdd4400c0cb5f22fb763f3240b54ca9a2f87a5ca3932e8e8e44606abe5364165f3ff987939736678913f2f8af47e6f31162dbd9044151947044a7f5470093fea5a04259db7968a5c2e667412747d9fc5f78161ca870c130d3696a4ab7be5348277bc98340b91d9fe1a84043b5b4acf20fd8f682959cf6007fb41d34ede3e268f999aab106998ebb51fe5bf61e984999cab7fcad9e9229effb34021267fcf83489eca75222179e82f9840f3facb4f1e7a95e5e923d4e1bba69cab919c148668891ab354f333524d7d259f76a2d7d08b2d1813fc64e724e74431f44788a8242b7c5e58d67339379dd0c5bc5c1b104bb54a76a64edaa5d33d43dfc5e68cf8b54c64dd3171583b42d2db612f5de32bbe0d912cb5fe763a0f70615c0892a0440a6236666263f412b473c8526130b13ed762e05ebdfd334b14e9a8bcc9e688519ec3cee23e9052d8dbd22eda205043ea2e1cf5dcda3de0c8081e202f4a918b74180dcab91733731a26f0e07430c14e51fe98805d79b8f31ea672a8d38ee7506156a24c184df6cb5ff4963c1e3ca1eb4703cc9ad995d7a60857941fbe5a75194bde9641bb7ede873502ddfeb55c21f75bd4e1eae2d970f03fb0bd86b787eabd547b0c3d088f1dc61e99371646c71ccef0135bd3d47245993e437bb50cd3b3c5fd1226eaddfe338e8b2c2a3f7e62343128815954683eefdef7d46feae0d1e04be28c72089aeb9bf1c774b10c66ee8d13cc8daa96c0d8bd10700e04bd71a03ba827db9964c4b095f0c9dce7366e59e2574e281cb9d2fa640ef7714d4e78bf2387e9d85764303414525ba38525fa5a18d604792fdd72b567a43de18cd9a7bdcce4c641d174a82445256e5343b64d7634231644f491c6c8705b13a96fa232cb9c647b30efc675a496abed20338e27f5d8fa9fd2ac251c7861c5a8edaa71da9154138338b63a45c04187c473b03d128b0e27d637fe1d9b46910393be99985043c933ec4e0ac9bf69374394506b21719468e21f90f40f952704ac01307f5b66f94c030a8838fc22dff22d93c84fa582cad1c6b43f59f178267683e10d7d1d32676a1d2feb5aa2ee32ffa74138a38bf90e2912b7e3bf16493c341141ba0acde8e0bcef447e30efd9cedbec1ce7c0722487fd3cf95d5f1a989fa3bf9ce5c1c130f22367f783f1d443c4ccef7f3e87e87b422b9b490c5834f89ee91eea7110e5ba164821fa9380911ac05238d47dcf70ba859ae3de007950b59a118b3fe961039c30ca6dc0c1093860e5e9b5bbf80be3012071129f5432fc9b9703d7047aed5b4a606c10b2998a3a0ec64a98031c0f8c16c690355778768fda5c7a83dd0e375f832c2ad0c100ef7d418199e44136ee8d8aafb11cdd3b6eb1d8aee009891c365c19a0e4b4b940702d8ae14fe15575850b5cb52ca46d3341dfa09d6dee48d84262b2f6eb4d889fb006b677eaab0e756c5eba43fa7b1b6fc379af8d7408d0fd4b67bcef3f255460aedf77823abf33a5d76cd7a543617968de717c8da8ccdeeb780f5ef406f72f73626d7a825ed6491826dae80c2c4fc5de8c668ffaacf33364b8e2fce426a46b053d63c72ddcb2719eb0b7a616a5e8232f00c8bec022173c0b9d079190427bdf39a0937f8620d57a09bb3a145ef21a31cc50ee3904667ea309ae1a53fbb97188ee0a3558479d42900286f04f0175202f4fd67150f24e5fba4047d377cb9d0701ba7b82f878f831c83a1425dc6a8280fa2f44ae98e313b9ea33be47f0bc9ae857a771c1013cdb0b3b25a660de32f205fca12ca6af1fd45555aa08d86be255761b985186a205eea9a00adc7b2b8e15406b09aea7c56437af90716de7c6c0cb52a0f12f8b7c9051b0bd8c9cdf4519d81919ac40028d161f65ae1c15b453ca124d15eca45053b3347ede7705958ae89afcd1a1cdf59f8ff968494e718ff06c2729af74820f7dcaa122b15847f093f1546a3213213793aa45eb65f61a8c4627f8ddad33eaaed0d6778f86921156bef86558d0628e8375b9d6b0471d7f5232a9598aef90bdc7403088b68eebee8e8c759df23a2c8fb085350921ca6e63401e2af6cc4248afb96a83d54da0c5cc798c55561dae52af246ffd774ace5b4608774a282cbdbf26eb901091730f27f7dd4ba60a6affb84bb2aa31e8a1ccc6ba3f0af8f9b1dcdc16986a4f16d4403bfdd76e4817ec3a815c146b0217f8fa1cea0a35dfaa4c5ec6dcb04c2185d539733bf2bdf7745d93fc110a187c199d9a3647eeb4b3af8cb99ef1b21d46dea830ad4c399953a25e940b7515febb8b7f8bb6869c7d6a1bac37c0c8d1ed55406ab08fe12153f79fa1983a132775c7514e779edc3bc8607e6612f42df9ad27cc2da5a32b2ef1668207c09a251296b445fad5d24e4871a2da4d6f33f26899bdabea1a7015ac02953c75006215e45c281097b54cd46634b18dcfe7cc7760823509fee0c52a8d8bc0124eb9588514d9888084a978c5bbedf53e3e76b4287e241bad64d983f7625fa90b3a43e76d4d4e7f6d98db404c38271520360f0d43bc96bd69113465054f0af6cd632facf119860f97c1877cec6b1fc141f0af094e2fd60c782cb2dc128a6402199829f1e72a86b20fbd740edcbb22d630f17d4ca36337a9b4147abaa73c15d8cef47093b126c5eb0d5c4c9496aec26da27a818576c1f2dc1456ad078c5f299675692b9812245e4901e54944a02a479c34da31e1e17610b84e991e8009dbcaa27526260839a60da4624c9bd71cc328a658c001b1a5b07314c929be9c0134d7f378ae1a11888467a24c962ad452c8b574b0558c1cdb63f9fdc0849e69416ca828b24b12e6239cb0cc02fba2d6d7d4cd7d6fa7d3b6b3295d89fc4bbfcfc7a03daa2ed4e9d01069162a9a3c252d1ce019487cd4fa5da6150967359ed72f732ea9a82e768f5bd97bdae88864f0515e85ff28b83e7b477d644b3233a29461560f46aa15b7ba3ff366fd5f01d67222cb0a18eefe686605d98ab1d60f1d927bb21a9c80777d937cff0a2aac3cd2b6aba9bc11dfb30423540e41a9e2a263f3eb66959df403e3e22a89c43e7bde56935f4071a548b7896a56e6f07597c4f628c0b329904144c080b927e774d5095ddb28a93e68e32074e944f137786849d3d1f7d075cd3e967606157a178d1c4fbf5941bc50eedf039aedb7fdb47acb32bbecf7f669cb4b1a7cd894e3414df23198356dec101f12c92861ae5d09ccec67eb934939bf81dbd56707bde1e6dc86c36095fff70df92242546e10e1d97abaec3a23b74833ebcb1182578b583407aed08385950fd88a0418109b9067190b21dcfb275bb5d3d4d157122b103e24588743d844f3cfcc6b48ea841588bbb6764222c2585df23e778ea65dd8361e6a3c55a1c164f097ed52ebca76a744698cd0f4023f122b9ba40baf2ecc7abd2a56abf70078c9926d23bed406b3193e5e178c6b05d79cb02e10aae260365b9b75510733931112acdc7651ebe8a56c13763e65234e7867cd0011b31271a043898109dd58e37801ee717830b413989157208ac167493a394dd514bed2cc8acb06891fd556e3b667f8328746bb1bf01664e5805f317983d6c01bcc4bc942a3465f516ed2d7d358184dc81060830241ee948e547b17a857ee618b152a87e990b76e2b26308613b8c7cd472d3bde1c0dec854bf1fad179cc0484f46899e1418f535807891e650441bf7742408de296ae0b465538a4859b4dcf40a20b57598caafbe7fb56eaf0201e9fbedafb98b103e0be13f4c84faae5aa43e2735331552bf74a3443cbc663755ffadef1a216e513d93f145b5b6033db5af4dde3a618b43c41101d8644b1a1c3506fb2af4d52718a08474bacce05fed644290f54201e954d07b92e31a8932bffcd226553bb95fecc9927fbe0d4bd0f5b964451c1a8b4d43f1bac6f384c0b684978ac24b96f45be47c18982b162c187c8bf88ddb0552a41a04cf0682424a4edbdf7de7b4b29539201de0ea50e2c0f1ea6bc00ece761ca0361531ea67c8c85b1281ea6fc0f76f330e51ba479d96c7e9c926255be45f6f362716182e21b95f75ec5c5aa7c006892aa6f8bcd8d5b3e5a2dce68fa9ce9ccaab56cd94fd2b24fd202e0496c56e1708959edcfd3d5b7f80669007063ed1500ec6cb11187ed83f5286afc9ce97814557ece743c8aca491be3aa13f030cbb2eeeeee19b3cfdea1a837dfd0b0a631a1e11bf929299ff2f26d6efc1f6d1c6a2d265bfc61c0c0dd9f29d528d83e68351e56d3b19a4f4cb6b61cd7b69c986d8c62896939f773a693631b9f8a904cdb4b07f7b603c36640b2c533a2eda5fd944ada8f26e4acfebaff349e486233201e6647b08bc8b1d89c252d31b51ed8ffd3846ecaca73dffd3662d04624b276e24ec779643d994ec4998b26c996100fe3fd2910cfcf8e50cf916cc164cb7f8a9cc8290c8909adfe246182e21b9227798fe4e42bea4f5f3fe5adeca7d6df9c85fa5adf3b5919a3762006a67f3a3141f18df66d8a304cd625c643d37b118c31de1b14c7d7b4fb1eca1858de3989c0fd19ea4f1575370feb97ecf4b03e683f0feb673fb295f296fa5ef20dd298d44bf233e40c27b12a5f627306a4e259952b84eda4e8a17521d96abd3ffd116558bcf6325ee6fd678cba642bc6aac5a7f2040ae57f8e45b4c703e50974c37df75eaa6f2622064e7da77e864cd916d7460cdcdfa26329dbe236928746e28bbf0cdb2e193b00db3f4d245bbc48e52c1811a9b3fd52ca9f21637cefa58d9ffbb39f8c2843721689e693fd6440349e0c48b606f0fe59916cb584d83421d9e23346f6c3ca7e60643f73c85959be9c42ce920fdb5e20b8bd60ceca4ab108ee2f454d481ae193f727824f4c6ede4a503248ff006ccbc6d2a430a268148be09cfd60bfd19de5ae1775f693a9babbbbb528370fe59d48453c7423fc59a17691874be07e437fff06240047e20e9ba3febbb96bca43ae56bb79c87d7f3a82fbdf80fd7300647c20c2f8679f53a98f9f511e67169cf25551b7add6981595edc4e6fafdc9864fa2a8259fe3d0c9a3ac47514d4e1f97aa2878fbd5e682b767b1bd6ae54f6cea5736ab30f72c6c0e31f72a9b633077b38d1833b582623d0aed54736c1fc0db0d89fa6a8487f51d8a7a4f271a5c076212bee17efe66b9139b63502bc7c05b8ec15b04caa1cbe9b70d6f1fde52788bce5a7d46c1dbcd270f7ec9f6517c7177798b7792bc48493d25b6318b08d4f3e33eb57bac0afb255b9cc73bd9c624d6a3a8d97bfca7c76138648bbb50d67b3cf4ef24d3bb23a1ba8ee7bdec21948df86404dbef4db37689a9831dc886766223ee2dfbceb2041c71016fc5c73131ae6d97ad2a972893f2feb70331f0cdca7f9fff9dc5729fed6fe5399bb7bbf22b17878a4db1ad23bef4bbb0d1b6f43e2bd48d090d679c1c7cc3bdf79bed1cbc7dc75dafbe47c2e2a30ceaf4abf76f1fba47b65cbcf7e4ca926343e0a79c75f2fedbc927a0c7bf2bd4bc0d6194f722787b533462badbca7aa83a21c2db9b94146d4f82b247f0f63ed8e82d2f6cf416161bbdc5858dde726df4ed33f799f6269b678e4391e808e7686f68987e67f30d0d6f76db70d62f6d23019964c1d3f104ed97fdeecad1713ba75dce9a33c735e9fd9650b32a87b3321768c10a6bc0feaa4fa8e6ced9de50654e1168778c5916b32c66598c59c7cee697840d0d78e8df41bae8080c29ecb9f3d04670d21442c8c1feaacfc12e637777374aca23820e2a6afe70cd59836480cf8012479499aff55123c956fd2e7d7f27798e6c994e7d93c0109db0038e3f8295cdbde959a271ee1ee7711e3060e7d1d132ba47c3f8b727658feb2ed1384b1e38778f93d57cfa3b0caa44518112a85fba4dd477cd191da577629b313d687ba6c123e64cbd4ea4c034537a9ff1ee4db62310a58fdd734078374fe71142959f9d47f2c81e1ebae4a1f5a89207f6239f6930019b12310f787b6d93570279bed9c0f37739693667b794524ad932e2d6e92352d251ab28fa1623b3e088892d24648bc79027db3cb49f3b1b8fb3c023c4d07f78e8a7a74fafc6e3e18e4f9d5ff3c359ddc3fb0891d53e6268a364f9f789a252f9c9f68fb7f8b78f28e3bd7f0b21ca7cefdf41e81e51c6f4fe14a4015375fbee4da5cfdb74a4a07d44d0f68f6d202e84b74f066efee519edc4ee61972748c3518d87b3260fdd34970ea47028714895aa5639a3c62331631185e1a1c754f93162e0bf00a63f4b5eaa821759729683fdabcc9ee3bc2ecbba2eebbaacebb2ace35ecac9d98de3388ee3b6ffc00d6f993ed298d447deb27dbfd7443c8ee3b86f24cef4dcb5e1af26f2839a7d6e239c243bf0e6dafd77bd9b3f37120f03e48ce94aa1a0193293445bc4deddc95d1bfeb2916388254530fb6e07fc85630bd54804e736923485da9fe5686bf07a26b20ca1e676f57bfe6abb76b80e186a128e374feced9282bbbcf5399bbff010041d277e46fe14c285f09fd8db41a0a3b6176d0dc7f2080668bfddd08f71b2e06c54a84d418083e31b20bf34c23e450f18768fd1b9248654d42d7f6cf9b1a5efaaffb1123870c3a1629ff508f64fa13cb1655996dd4c55957e4ae3ec0daaea202ae97657f2ce4f06f5c3aa9260c053006107fe80a0037bbf90a399064bb0c2710a240499264aa3cded1dbbe79c936a33fbf9d37f7eaf3c6aeeb43b46efe9ef6dc3b9a16eac6cb77ea999770b00de664f37d47e9f3223c24191148e530022640a4de831450eda6092724ef971257dfaa665d1ed9445ccf79772befc0615c04997b163dc5e5a7104da88479d1544e80217bc2c033f25d4f89ed4a2bb7bcd0fd8fda3cb28dd6526e58c9dd988a50d37434e0c3a38bf41053858a308f931914a01089b26a55946b38cc62ccba4f46c9b0dd3ee4794720532a74e3fd2e994729b9645ec33cbec8a6694caf74d93d3a98dac97c6e62cbf7eaff4ee66b07d96ad7d8333e20e0f101344440843c6f6fe0d6819b2ebec38d90ac3f0db680000cb272a12b1230cfdb632865a6ca1f44d9872dbcfed8fe0ee04b6bbc4d34d7292bb749372f64d00111efa11484c6086d625dcb66ddbb66d3365c19b420e5e918a22ece0f3fc558d0ecfab8409c76ff50930ad4c4c9c5d25641e1aa683e830e03ca3146da062879091d7efb5ad21f380071c1f40707caf035784e0480dc7990927b8bb7777bbb7bb0ba094717ab8201a71280bd8a988617f1af10d68c06e0620d85f0c3d1862073338211afdc0fe85580513b09085f8052143ea1085724e806fc8149637e33461c800c430801650aa95728d297c10b150054c15e11b6aee152b4208ddd04205559c6eb012842845ce09f00d4f61bfd90341664c297f200a271bb08660aff18ad0d8ba205d76a51c02228d0c34b21a60a739c0fe83804c67b3a246f69853ce39a794734a29e7ec2a4a19cb256047800908bb0cf61b71646b4110327ddd7b38db6bde4de0cdf460ff7cb0c14d89ed665e261acbcff235c92a6dab1addd7f4c7f892fd0cd9df6f7665e33d58dade14c11a9d136ffabe79e296cec486b9e76e8dc9c486b7bf797b1b32580969b29d07bcdd4b8372508023b880e80296b29739f185be777bf6fda6871e719e5fd58c20e5f64d7bdaa973f60ce280850e8ac31382e28084398527fc088a4310da06c5c106599665120c2a1c838ce0c1b7387490912238c59562c3c4a78117595a867f9c477cf0f68ebdd932b26f198e0120714a36c9a50cc78f2d83caf8f744cd36195fac8c30b1c55fa2ac944810fbcd5a84d93e4698ecdf37fe546e7e9778ac7d2b11f380079cbdd7e48bb5a74b3091e1ed6f6c580903e0ed767cc1deec58c331bd2e1e4ac9e2a1fc515970d327deb64e38e690e2b871387e8c32c286d1629078841d075112ceca3129c70534e0ac36a2593f74e8dfe1e6d2325e228cff908b0b0cf6cf00b82e4968407e769192522aa94bcb88d8c5656a9f5d344d4aeda594d225e7c342cd71f999cb99bdf73a6e73f79fe12e8b98b108e93de17d3ee88d52ad888c92c08b2cda0056fe39001ffcb839cbddaeb699758ef9b9d77133cbb6ac676633b7520670623800ef0f4a0fe6940b4a985a20941e9401c8910a24f0b88ffb0001670c437050811a84780e00be8308c0c001c01a9e049cdd9bec4190dd10ace0f94d901f59680ec7d97cd240e248059d1a78e8ee3cd8ddbd083f7ae07d3ca62f0875fef6ef833a3f93d9c778933d554076371cdaedd371bff9a8d91bf105a16a4478b493dd83edbdd7d95577dddedc38adeb7aebb6ed353b57202062bef60888d87bed418023042b58bb375ef6bd8d0e7bef69a08d86a319a2c0c15002a219a2c0c115b0d77ddd77d8bb5bf7db3bcba3b72ce5076c2af0224bae98be97810d6e1e08665f69f33c10f440f03750a3f8138217849ae777db4bf09be866e47b76dbbcf48ec4cecce78320d4ede5d398db0682366b0faeb4ccf36dcb5fe9c1f7ec6a7629035735b4e75e7b6e036dd31278b311f8db3cabd9ec58e39e856656c889a57b2c40f61108b58fa8df8e952a0740df7fa3dd52fa90e72ad9a2a9e0094df0221067be6b02efe3cc97bd3600950c80fcf83fa8de7b34c766431b10c123580c99210a1c0c99210a1ccc783f7d40bd776e8a1f30d7716011361b81b7f7b6d634aa757fa6655996cdcfb80de4341f7453569e1a719cf16f4d7bd95a6f3932d77ee5daaf38ed5753db34cfaefca5f6f207acfdd4aef6d9773740820e4c7ffe2a5bcd9ffed31bc2f24f5ebe17c127efbdfccc363e82bf2f416104c7e048051441d8d33e695d4e1cf5a6f4dfe7d2bbfc0f246246a9542a95feb3d161ee35e76ed67ebb3e5412ac89b8896ee609ee6587a70fce7a60ef391dd87b13143a38fb954de9e9672fbf71303764247fdafaf5d78134d3034b600dd8bd57fa3ccfabe1fdc99bc01af2bfec7bf9add5684f4da69bb9a72f4fbee2994f1ef8c006fc127460842e90e10954f0ccc4d872fa0fac616f4e4eef815f83344efee4e5cb3fd9ec7fe2f3bbcce5f95f9eefcd9053be7733c7d91bfa22a8913df81eca9a80f68624c697eee433b088f9a6ff4a7f62b35dd994befbd277ef6de034f969bdbf293da8bd77337defb9bb32b9347070ea5735505f7ad497bef4967b94f5b8efacf7a0cddc7b26071b1067587c67513e5c3102315ff5d472f7c67b5abf8245649f298b929fe12950bd133102916766c8125b8383539b0d6fbc8fb8da1bcf6457365ee9c6008bc86e3fbd375e2300270a4d20000707cf6b02138013851a6dae6acc1cd80438723f6d1398c3c11ef70e763732bc841206c0dfdfc8b0121a8ef1c5f499006f4aac60eea3d704defe8640856fa83077b79be967201133708c2e34b4a70131e84c9c31fdaa1f09d9e24b1cd1bdf70d883346dc1c44e0cc7c0f16dd95113a48be7befbf273a30b3a2d7081da57fc208f0e6689c991c85704ef7a71c92477d048d20b9ab23504ff2a84b49ee0a023d83fa9e415d9c19cfe2cc747675c4e9bb3f65f7e3912dbdaa7157f33b9693831d28276715ff7b986cade25d31a0fbd343c03b9dbefbe82f8ffc3d9b846cf1ef2cace68884933a7964e995de136a976e942de0fdc16e2a2a3a4232c54c4935478210a83c10d8644bf6df8ecd70ccecfcc13e5f1e1d0dc9a3a4529229c7e47216b7e365d231ed48134f94691c869a71f007d2709a17869a3dfd0ea4a1f1aee26f1f31a559428bf48787eea1e663843cb23d2618bda61ea925f5c04a422522d95a41a07baffb28547484148b329de37b13a0a0fbefae20e0fdf75f8eeebfbbf580467477e3912d9e7d6252514b3ba59d124fa907f6038484144b2ae5945ca5d70ff6ff010285888a8ebe2fd40cba4017f8ea2cce0cb803f2803db215671a3b4f9471ec8fa365a472b03f09a20cfdaef1698c31c618638c31c618638c31c618638c31c618bb2d29c65677b524fa1167c65fc6646bc66d47b67c3df1250a55debc09edc856b693555a52b8235bddd6b93a57278fe411110ffd9172c39450239e5454f992407227de4cdd2079b053a11f79d4b99c956b0cb0e7ce8577c82322b2883c9a46f368167534fd231665a46c75ef4fdd105ba61ed962f28c05d8b313c4cf940e3277923c9247d94e77b9a222f99a296b5a92a908bb9664eac9aa1a4d3dd8a396b419d992b6587c71ae08fb3fee5b4aca9d0b2997925cde3dcecaed9fe4acdc3df8c8ed1f75f3184ff0c9c02f3dcc85e89ff80deb9f18fb63c33cf49fbefde31371606f865442c31a8e33f7bf8c3ffb22317f869c57344cfc2568e283a0b17cf769d84fceb08d0f4b4f0835374f448932dafba7449920b59e62c79f80b71a161f892b5a064d84c956f596542f81c4472c849a6bdc5e8235f4f3b6db37d8a0e94b36c70fb199d2c3bcf74ad5a704932d5925ac24611ee6e834c0664a5fe58755555280a66938999452ce29bff9691d683d2db69772129bfbf6d3c6ec379bf5046b58a870cc2688e1e6e9c8235bdee32dde3db961eed362befb5422e860ff140a186a6d1d38f76c491f6f7109a4858f07869add47c2824898fb348f0ff66f1e1390d736d9926d9b8dec9b7ab7d19bb74abfa348d8487d2c884945e5bab87411028c26a2833d4a29a57db9084e0e85a3dbd3ffed7a93d2f994d2ef2b562fede9f428df4748f415283a2857701cc762c5fe7b4d9f5a1f2adce71223e911a547941e517a44e9d151cb20e2216d22d3bbb415a3f427aaa7467c0c1989e0d2e5be458b3bdf88162d6eb6f1e1d2b778f0b2b8363ecce2730bee4f9edad34e55dd1b12b3f8e7fe66fb8959dc1b136ae3cb363eecfd8994f986bca2af6819256e7b8a29c76d44f05c9952f34d9eda0ea4f04df726efcd4f65bd3fb1a56badcafb50f9520356fe7f82341ea5f453d9f927b6f42ad69ecc67c0caffcf703aef0c2f591ff6575ad8fb794bf7d4cb3ecfe4553526dffd0c3fb13e54baee55ec07d23079bbf22a56c713a5161f4194a7dfb700ff7b24ae8844f00cef426d0c7e63f067f8fc34939df46bea4d648ba7275f427994d5b3f87833e54b4bc19ff355b1a3eda7b5a193bb2b04782f7f03010ef6b20d2c3fdbc0db6fcf65ee51ef79928915ec6d3fbb9f1ce5fcaeba8b001cecddd30eea267ffed7cd7bdaa9734e93edbb7bdaa9db2dc2e4bb7ba3fa6923b5a9fefb1416e04f15cac99f7edebc62c1e274f2a5932f9d94a82dcdd2d3eda4f4a7d2d35309a4b445e9b6f8538ba7b60535399d7e9e7e7e099db4e4eb425dd9f4cbab32f9d45dd5005f3e6862f2a90dfc9489c94ff053efc50998a47087b9ecce395fcad2bc99c5739fb564278f7a16369fbcb7d9809ffad4cd2673bb32a7b0742c6d3e7992f7df88507d4e6195c983f9e4da4861939bfaaf628ab2d906fefe03694e36529889c620f89f8d6187009f956fe4e0fe7befb331aca8e0e7184378e825d9751a98001c4cbbfeba0ed3fb58abe1318668a9fcf79bb3bcb5f2df0c5f899d8bb322d7dd3ce75639ae278abb0842139070a40247299ad003dc2a1f59743ca1bd133fa3f2ddddbd7a15fb44bf09621388e1acfe1b1323c6c47b8187e1a123c1fdeadbc6b0e12f9ce98889e142f8841123012d849ab79557f9959be387d8cccaab7cdf1c57ef652b14abcaaecacbbd12af8f0ff2d0817e26823d838898182a36c6162b88e01047202b5a80bd1853239015467004b222e80547a02042700c10b115f3b363042ae820095b3032a3612252caa7940205b162ca79fb0ae9acecfa13115bcf8a1efa4cff042212f188c8527de7546714ee13ee380718aa97da03ee2d2597b26988c84a7dff8c7880c862f1fd25b185844ce3fe2d7e5186e4fbc12883f2178ebfba290f51a26a45a5aab5458b6f67cd47792f731c1c74e0d56fefe342f9ed294823821c57a7bdd97ef55b8335b65fbdb7d994ff00ae3285b3f9c3bd8a8162730cf77115b795f683f30d4f090d139ffbb6f139db3e0dd351090dd3cffda6b5121ad6b8e7ac16551f4fbe8535798fe9dfb61ab38273cc4cfdf62c6cc495d36cbe3131f7dc0d5783b3f3399bdb26fbfe54e7c64a447b63b2b0510a5565bb87898eedd404283004fb5731602f815790017bef788b6f20b600c5d691853b08c501fbaf013b12b961b18d88e0f6b8af89987b1c1c719c7650a568c20d70c4c16d6f48acddbea26126bd5f0ae53690ec2d37d0059c956360207184fd27108908a1ca06422248cd31457136118ab3c0413432849eadbbbbbbe77ff386917704cf08755251bd276a04fb73fc0ade470fdd3d76dc373bc64ce3be4d62affbb8af9b5ec779a58e2ff1236ed9130c5e7c519b254f20e77121fc33eb3d2e84bff769a1462b34eee99a1296d18465cf709b1daf4e3434bc42e1c63be4adf1c5dfb1f7a366b25565f5c935d50304fb7b8f8982fac2ee8a2fd97fb1e9922dfe1dcbb5933a49deec39b9e278b3bb72add99d3941354f1fec3f7d7ccb72708f2b6f58f6fdb619cbc9c9818127fd2625a51bb5527ec4262f8034729b3149b74d3e9537caa772c636db51db4514d973b372dbbaa776ebba9fe1db7b5ef6f506d26c947e3fc329fd2ccb721358a38dd469b92ded2b3eb37dd430dbb63d92879bd679b7bb9f870d82a5164a293579f03dd0ce2ed43731791c5c32f9b8c1e0924f953c09aaa49afae3ba9b71e0eeb7adc676d37df633d629a1e1afdbb6ecd8d37eb374fbcc760ed2d0fbd9ee3d9b6535b837b18d4bec128d73146af0234c0cc9cd610b06ff71aee0052ff81d5b1504413b138083b3ebf4ae6c26a63f312dcd89bd066b36ac5d22e24b8d1c850cf06e8881869831845fd082c98a9a6370b6012347a1cd7a94bee775ef81000753cffbae121aeeb6d7e867560369b6ce66f43536340ca576c63ca4bfd9ec6926afcac3fe923659810a005610a10baa6d6a9a26df67fab7e9618ee1dfe7ca756107dad63e7b1a3fbbdbf4dbc4c4e15cbac08bced27efb997577b7b775072212bee99737b7959c8ed8e2376fb82662a7e1d87bd36e66232261bf6cf062ec28a594b2c8080fbd2045421ec347d0f1443f8c8f2cd1663f2de267f9ed72232f0e0ffd6fc426100e1cf60331d6ea19200bc3d6ee9733539cdd0cc8439c654ba8d9632d6213c8944194b1bd54de7fee4c1ece727116cbfbab58b0e9337f268fb302f0fe12c959f6fd65111973d6bfbf34e22c00bcbf4c92479cd5f23dbcffd4e1ac17efc3fbcf1dce0adf7fbea20c8bdf664003ecff5551331d1510f6bc18639432c61c1707474d5342622d8299bf5a30502f4d523767f44afbfeda3ec6f813a489a5dbf674fad4fb0e189c5e3a103ed994875d1eb616a9e93b1ada63f2481ebed358de1d2d236279fde561cc375c7a2c79d4473f653fa69b37ee4130df90f8f4f2e61bf3e4b4534dee8d89637dedbbe47217f513c77b53e3cc3726a6dfa8cf3764c3286ed3bda11f5fbbc99ee2781d06272debeb306818f9d2a6deebbe52e9677877408573cadfc4f7e2d7f7e4376d9db67b966dbdb4a7cfec7b5af726f67bcec647d9d3c3b0ad12f044081a19b55ffc137b7a216cebbbf435f04ff6e45b56889a9237bdeac4c617226a282b1f86654d548935995e7b4aa3e44df4c4ca17c2b2de442bb19365abb7445adfc4d6d48f263b511686adde323fdafa538847d993e72cf8265bf2d1ced47b2436549e7a8741cb88389552423df92c0a389c35850f1eb8bb845be311631910ecb5fbae24f7efcf69f211f5b5e4f4e0a74af1b38fd1c66f2b637c2e03ca7e32209e05614f026bfd333c6a156b77850010e0e07943b082e35d99fe262681fb93c099f62ea4e99b89154cbf3fde6c43bbab79118083e95dd1bf99af3d9daffdbc2fdf64b396801311577e172d8df494b3a7f7b453b36b43d5c57b73fa796fb88fd6860ac76b43854f57de6c43554a9d7ce44a504ff2f1663095422900f5f56738cae62670adb6662fb5df400548547d92dfeac7ec6a3793fc0d894f3e4f939b7170bd264ff233fca38d323ec9cb6f11656cf1510975658353dfb7e47bdeccbfa98f6011277fff9efcbd3f93c0590a25bb51b7d69babac1ffd9a7cf62693f79975f12636db50e1d4734f2d138d5336277fefcdf353d7e699250270e4adaf59d3b7f65a5f99b9ffe1abbd99ff9d3e95fd8d2cf9be25afdd92d3bd99253673d7860acf7bdffb19b285ad3846fc83cd30b0f72e6c4e027bdf81342436549889d6bc976ff0e45fac66a4b7578acd2a9cf29fd592bef72c526da668310ffd3f2cd40d96b5588d66240be2e1e6a3ddfc5a6bda0f76fca9f06771f0f692db56abd04b28a619715637369972b237996eacd1642746d950e17e146803002b886005eebbb2c138b8917266f673b421c5b2aa28c6aed1c39b6d8438037aefeb49a85913da5e4574909c15652bce6c5b8c4a853385b1c05c6ccab6bd8bcbcf7097df3ec5be7cca4f6705f129bf39eb7eca7fce527dca5767917ccaa79c05c4a7bcca59319ff228ce82a93fd45a6bad9f0b179ffab6a927b1b931c9579b63e0fa9fcd44e0effbfbabb35428cff239d3b1c18249fea24c34ed9bdba62325eaa3f55e43d9f8f0e927d66ce432a3ec2823e2ac93ac88b34aef2525252825d0c6b8d890e53dfce1496cc45ffde15dd8dc3f3c0569ee8db54958b0ea49401b941f379001ab262651ddea61cacff9c32727cfd90669b4f893003cb5ab9389eb500de2ac8f66f59fdd02603fdbe223c8fdd642b205c40711f3decdb54309e116e902002d282178496c360df9d0d6668a332ae72a3f8ec56a42ae28131b24a2b197492222cd8fb90b701507d73b6dd0301910760a04e5b3c6e38127a8bd4d8a95e83ce4b82e6c73d5f4158532791c5cf2267f0405c7209f2be020251441b501fb93e018e47306ac841e388348414978053521865f700c6a0210f662cba0a63e4b97118e6690bd231e4d839ac108740423ec0f160163a011f9543ee538502315a8e0832f8e54a0c20b07e14107734fbd68811aa748c111f6e28d1aa7d07184e7ff2cc208114cbf4ba830c58e172f409a952ce3384a41d3d7b569b5af0d39ebbbd1c57b9fd586ac16f47dd682843c741049a24c2798be046b9ce013e992d37aab9fe12c709f70731844eace72efa5eac778fa3c34799207914a3b4aaf928eb3668987ca962b56f9a8f226367a486253cec2c1f52b98f2b07e0469566c35f2f0a891648b2b427d9426ed6b5194a7cfc3f925b12863dfc3fa9cadcf15c9bf79bb5c5189ab793cbf7fc5ce6f519a29ee27f7d35924cffdc67d8d32b6e4e97b1d48436b382679cf5a253e50a2807e4aefaa64453f4b578dfe92bba257c27694aef4b92698b7b88f207eda4a324d4a4a487e9a949058b088e927086b02e22df382393573459c91b332c99738eb86842be2be106556efefadac12265cf2241b58045d408d54083ad2bfb211937c127824c732d198e482463cd4c75dd30f128f243d4b1907b713b57d9ce58214beaad66dcb435dcda7bf9ad726c4f486209276e4ae401a2d86875a5f7ed662990bdb5805b4df1dea098e5468c1119cbda32c7b43e02ccb585070f6794bbada64c122d2255b60cc5bbcc41313536f0ec357d1fba2e90b221da9d93bfa729c95290cbb9c95359e230f297624480bf2560fad648d47e3d17a78eb24245bfc897e603f15f9ac9418c11c97db0897d4220f5bf029c714f4d324e4e10e0f513d8e781461d48908e334b143ebe1a1b3542c4e2817e6be630bc561ee661b21a62f9f038be0ae6988c80ef50634d2f8b343bde1fe461775de9bdeebacca9bbc95c964fa1077ef993adb99fea4c3f4fe9dfd55f7f6661c6cdf7bcdd6227b57ddb509b1e99e748031d088b3b2e94dda73ef99acca73b61655a33ad41567b22bee572bee436c7a2dafb86b1362d355a26358091dcefa95e969578b3cf495e9da84f81462ce252d51c9158148cea2de916c715411ce4dbc30f7992b3a32996efe006d6207e65e2681b9d72c7773f625362655ade76a3c1e3aca052a00ac419f7b4a9f32d198de930e3a54ee3388a4f1d0f7d8f2aa7734bfa46a2af2d029ac8235a8408520583e5dd984a71c230f5dca7bd2e1a173dc3505f1f0630169b4f8edb5a23652f25e5bad4823fae650ef678de87e72a8b916b120beb874c5a15eab05b1d146707f47412455882992a77d9b6df12c303d61ca618ae9777453902267d168f1dd66fa196e22cada83486011539049c834245dd4d5922e6fe1acfd19de048e4439c4dc739792bcb54a58259ac09c25798e23b11162692bf6fce348ba3d465ad2b820b87ed6621e9106e98d35068348fffe49b215677ebb399c20127729d6ae77e444a5cf3de8f5f78fa5c99b7c462abd37a6373df79ec904d2a84aecc49fcd1567940bfb9f80299ca5ebbd2313306fd93484fd556c9e3138c4b916a9de5bf94aec3ce56844ae15392bd29f4c61ee21ce14e64fe4987ec9e266154e7d8e4535a9f7c0d30e6aeab92b77787853ef2388f788d049ddec2f6c8258037ca61f0469b86f9b4d10b37112c083e0690772078834af74c917881493dcc889b0621f2b8134209287d2b5630d354b97dc912ed9f28ebc23e93a450f8948809009a4999f1431c76ddbb66ddbc671b4724560116f51c1c14710cf0571513bbcc5bd9820803011000c0a437d1e4194a1f1348ca71e4794a9ef1da15e2817f719e542edf08eb498c6d33250288da769501cb7a15c1ea648be4106f84ccc777def57369d6f3ac775d328efbbffde0022c5a40b49b66a114aa8659c841ac6bf168148a85a74126a1931c294bed65a543a09617f01d887a1227949f213ac715c7da8dc50734c328961434c100f0410df3340040184003e260820de67da2500d49f7c0a6853f226af02d2c0c1a837b1d9b1c9374803f53140b880b03102914dfee4aa8036258ffa159006753348c3e4b6eb8248f1c53f464271bd5da40d35c72404a062accfa0be5da8fe1c438036a6af8f02d2d4dbaedb39a52ed2492a0f4472a15ca81da897b3e29c9b768076cdf0900d35c724d008f6cf5c1158048c816ba8392681ae972d9648c41045309070f43bea07ef1e2aa2037a02f129fdf85340a10347202fe8bcc0710a9811f65a07a5d5e3629c36fa8747dfec028937fb80ec2a8edd5d03fd00f54f03f19e02d5a1d29cae81b2ce72f3b51f20a0ce80fa474af9d9ed1fa0fe692020f173ff24d152ae3249b5db2e12077f456a9ee1c7985ff3c43d3cece922a422468890adfe11ea9fa226f263d31660c1f1867ef78035a84d09e26d9f1f484849dca21ed4dc3d7c7ab4113ced120db4829c96360239819473d269182e2cf21b679618d5c5db480c8c0f1604fb57e923cb584296b0710c334b386b20851a24e128051d2318064729e804e13672d6e48c6abf84f5e8c991b3c323a8853cbcc31d86b48e919591018a34b0010769f20256031efa4b3b686e9052ca98b594b2bbbb1bd66d07198fe6677d74cd50b3ec3d32d4dc413d2485c89a3624a1b3eed734edb5be37f23b7ca3354e77dfdc04b68964c0b36d60bc20451e9ac0d96ff4ded88855bcf0bc1d8855e41c38bb59e22a5e9a9452cad316a49452d24c6ffa7dc037d428ca2c11837d803138b790c76922477b1fc1fb5d1d4ebccc7cef2299f1de63b0510a93e0eca32793fbb39ba5cc7d7313b8231970b721fb0edf81fda780f148692100e30529f230c37ddb9c03f78d8d48249fb08c5408e108df689cdd0e4422f8fa304113b18ad74c77736215af19139637f7a7b037bf4e02b18ad70c7773748fe3c063093d5802ecc87b9b338b000320a0e0074f98d1e1c4cb0cf72e92994e87133ee3bdab0033dc7fd65580192f871151b6789fe308efb99be32ff739124539aca00a3ed60006228c610b8f5383a127f08007521421010e3371a63be27372681256c8055c2e806f508f0c5586218787a72f74d16d220ffd1d84a94da4430a3922f256cfb8f01d86827207c52c5fde30dc410221231ec1b0bcf2066c82a9082e77e82167f595c1b9bf83863a287710f6ef213b38abbf73b047a0ee914424827d9b391273ff681fecfdd27ca609463ce708b0ca4251f4034ba5fa75dec77dbd1147ced7cfb53bc68f31c68b23e7f49d534d319aeae7f8387262528eefe3c9de98b8547a8fb9bf9e3ed7c7516352cde1a19f4c36734938fcc6c4251b1ff670f0f638d8eb6aaaf5f4dee9743a9d4ea793c9544d76f330e66191239dd446acbb3cd4e139b28523c7a8e21843457947755a4f0cd51b52730ba9b9913c2a6a75500a8f52e7711ff8cecbc80b5e207fbced1b437565af45999ef138abf85ccc2a3ef73833315691fe111bbd399e88f708fadccd91e36e5bdfde691c68b7b3db2e99b73823a350b374459996bf444b97b3b2bfa44bee30c2cf16fbd5ae577cf12292fc5df1459b81a44060c08831c587be7594c28b2f6ac5de861c6388194f0c61ff030c798ec7e4cf8aa78d56fe7cb93a82be7c7a7d088687a1f4f12da4e69818181e933fb6d89a1fe34f20b08dad28e329c696942e5746f48d52e0936ca2bdb590059e27747afc202243cd1be6e1c1b383853a81a4983fb019393cb09d8da79166bb4f8185facb6a63c237fe35ca96affbfb3ebec49756d43ca515f5f39b4f38fbcb77dfe69cd35bcac18b2c79cbe1a1c4115f24f7337c07cb3e92add78e6c912fa994f272377bf98e6c653b13e63fb009f39e09cbce33738474c2e80f0aa33d335cded92303da787af4983d4453072e348b889c35858c3cc88c7d63a8ee4232480a49207f1a3f89cc16adfab5c799c991fdfc23b29faf5da118b2c5b32cc6c3428d7722a121bef8c79938436366e4cf89145f7cf6c8162f922d2e54e431fe922d473587e18cb54f2fc8389fc52502b15646bcf8f811f7cff9c27e0faef83dfc77e8ac9e5d0b6ff5a180292515d34a7d5a72b2a84be2223349b168aa136e6311b6fd7f67f553393f94adc3c3978eb33ac67867d53173668ccde2e2da5f51494159b560a13a312989312a8a805324a8533595c0cfebb84dcbec6c59258b773e06501521a93daba3ba102a17c29f7e9ef566f5ec13dff7c374c6ef7e86ab9c152f4d5555bcbf8134f33ba8c6a8fa3f5a9aece35d65df78098a6f4c3cb5efc620a1e6185c678cb7e6ccd32a253073bce8c37b9ff1a704138013f30644879e57bebcdb949d271360382bc7c0885104a0f74cdf67541f77f65aab7f6b2f7e8db5e20bd6f8dd7bbd7d8eeff10e116308cff3bc6887f030c6101e4833b909220007c7cf3198863e6769e28d71966f34f2db7af393cd810dd2c87790267e667d7cef7df7a67f3ebddbbc9f87afdadfb246df79bfd85eba9b0b36a49a74a408daf74bfba49c73ce39e7d43419bbe367afa95a38644b91235afc2cfb1c67651998525231add43f59d42571b1a9522c253d98bce0bea50f1e65baef538b8e325106e53bc7c3d89ad6499e136fc73c74a41c97eb7096bb8cf8f0a2071617d7fe8a4a0a8a8d2bdb2d2c8b7e559ff49bf497f4a7fa4950fda73681a6185fe24b1fe9c771bdea7842bb9de4a1e7b81046356ff2e75f4d8b378a9a3ba93f93df72b694f2e288d3b4058ffb54f79e12fe351187f1a53f66168cd23dce4c7c16160e85850565d368f6f555b5bfc9aeadb2c7d3f1849c2fec3b31eaec8831be5cd9e76e89e4ac185f5e2231febc2d8f3e2dd42c3bdef83c687cf9f2c84324996dc4eb42924712c946238243b6f47589248f1acf97b3f10ac708a6631f2ecc02c72910f1685fd782ced5306d39dc7755e3be6c7c1807e3600e9c9786e3ec364f7cf1f73c1f35673b385a062a07fba8f20a79d4307e1465c61065fa3fd874755044d66441b6238f3a57e7ea5cf228dbd991473b59dfe9f27a6ade869a48c439b1739540902676aecd08fb07f1b60f6c417cf1075d0de39f84fd8f18f1d08b9862d84d482e900551467f67537a69132afa60df17220b84228647b2d55dd0253fbfe7923f18b86d5fadde05bfa3ee1ec50bc2e28b3fe8ca76228f6ce16430a028d3b18f0702abf912285b4d69ea81fd0011459936bd6209c754e4a3e28832f1fd471065c831c4972b1ac681f87898fdc0f19b3d1eded848d0b93a976cad8ce8fcbb57b7d3f1743d1d2cca7467bdefbbea0fbdcfb1eabb04d83dcecce3ccf45da20171a674736cd7693f1efa67459090b0d3f40569b01101e5110d9553a333a8d2481615797452f9afa300efc4cfa440e6210f334f74523e1292729ef6a16c11e0e3c798612ad58ff13d93a56f7d18e087a0415a7b92a35366f3bb241f32265ba64bb6e48032c8c130200e14e42d43f17f6aa94d776e935290c6c7101305157c6f7e262b29100fa230f075c11754986cf9a1300f6340411a8d466cf266b8e46080b26912fc32a42c49cbd15c25af9ae46f1a37b30efc3818078bbdba184754b21de6625c4ca87b08fbbdb837d0a09852ca610acbba0d67d96b204df71a58e3786ad8b31456a3d8344ba310c329c4d0ffd225442ac40702332f48485e6dc2342ec3bf6dd24e9dd76bf2983b3bd83f6e4442f1c5e7a70a40ae10b4514b71b514d630de3222f6a75c6b252b7107d34cdf3dfd388bc8b0773b9a052bc8ab715fc9367e8ea86574420d23c411bdc017d0d0bc0beea843db0f27d4322816220c10cd42274485bc9d899f7ac7154aa832339315ee829ad77d3565e5e24b4efc4c015c990d923257a6d330263662bad3932561ce39e79ca69ff36fd4948f32ab9fdf3f40a68b9ff7e78b9ff6670f3f674634e7cc90e669fa3059e6d45e73924cedc79c1a6ccea90dcda911cd39b522736ab139e7b663ceed35e7dc7eccb9c1e69cdbd04ccd16533537a27932b72293c52c995b6c722d98a8f919916c653f51e66613ced950cbe05e1061fc5f50c54bb6bcd7005eaf1f2da32b42f2317ec064ab8bb5602cd850cbe89086702704832808a296d11111c0cddec180f881c56260b4d88e96d1fdf881fd7fd8f1922d2ef6f27afd6819dd8e00fc80c916470400580b6ca86570455244b2c5a98870c55b9196c10df5c95604fb6f31d9e25ad032b81f0d83c4628bfd68c176ba79f381e522ddfc4638fbbcd09a70dc0fdad383435bd2753d284f68539ec783eeec604b82294833dfe631bd54e703e98bbefe4190a6f4600a0aaf581f0630800168520c22cbbb410cfdbd57176b982e46c910c510c310437f942862b884e88418fa1bc0d228c4162ac42bc42c442fdc800dd8ff0c31d632681118de805de5c66a3f4e59d51d2e178ec2bea53e3f14080d228ae1ed86f604c48706c5a6378134e09bea17da8aefa43a680e8dc25228220c9187431e0af9fc00098a2f5350c1c485d6843dd317dad209a441310a850251de938034dd938035245f68bf0c497aaf9e34c552a221201e05f25e9324b45eaaa404a459f912b0a6e473d1e1b711a7583a24f4a3932105c9efdee47bcf2bc996522ddd4c7fbabb3bb656da6814f18542419f10619cfe780824be4401fb674869c0fe25200d8ab37b6426258596c3269b111370c662df8af531840f509090b710c5971fd886339d9641b51061fc29176c80fd4f8a9c80130929b45a11910af431858488a8c07974f28536c39305f6545f68295ee1ee8f8f21ee84813e668f1b6affb433089c4040ab1548d3e974af16df2d808d33a19543d838d371b14ca765704411a64bc2b1cc85d2bd3a9d6ec7599496a404024b3b44aeb8009f55e0cb2f8025801d22a58bc96ec7bb57d7e968efddacfa6eca8df2aff6f59aaef6a59b57320cded77fd7bbf27aafee6355e14c9798dd0e0baaca668f1834797850beae53a3a694af282a2b17d7c4f6f0e25728ac07eb75455a068582e41671fce2ba8821c53a241315944ea823723ba1b013ea88ac2e85b9a0364cb6bc570783bd5456df2995d5a5b0c6b04fe9ba21ec413b9d112a588ac5c058b7c3e47d44454a442051918edb604330d850467f344b7db8976c5120dc8f9641a1a04395bb9906bdb047115f9cfb7129cc05264678f585b6f18af531c44f4b611efe80dc107fad0f573833c4a540bcc5dfe4d214184c25c53b9a94e48776621736626913a774d11febb2241cb51638bec75686245bdc3b43929fc9be1a7d513796ae2635489ec56adad77a089fe55dbc781fb4afaf69dfd644f29af62f603f301f20b01f980f059292f26ff307f0db98565f575eabab5b6345abff33e4dbfc7f625259d5d752fe5fcb1b5ead6e8d94fb26cd6aaf62f3ff290c5fab6ffa12cda6682961aef5de28227cedde849f726f5ebcf6f6c6bc37260e4d2ffef43ed83cb18b97a00dc9bfb8d3c31e2e8b0b1726f751eea35c1414cda2d4373dca6ba68bf22628afd5bfd9048544d32ccab56f625fb3d6f4a69b3d136bfaae266f32799366d234acf27d6f56775583e4fb4956ab67a142f22c56cf82e459ac4ca65fb9294f61a6949b376cfabf268bf27df2d532d158e5bd411b9267c1e2e6d5abe45596122c42ae7cdb7f93056bf4ff9d21abe955bf626f568f4a79954ec129f766f524a6cbe24f9a8d2a9b1f9ffec4be8034262517ac518249deebe1eb7afa1e409ad473af94e57c50363746713fa8d79e83fda0927ce6603e1e090a65713a0ec6f9d0d38b17208da7a35529b917b7437d5a5073f7ea7838cb593acedad1625126260024c207017e23c07f6c2080f574b6ed3f67997ebbf9c6c4da773cf5082388601a6b672b6da5d26b5fba1398980544a2a87bd94ea7dbf1767cf05e2f0a735613754d83843a1d0fbd7b79e83da899c25e3ecef228104fc7fb6d27478b00efbdbc97a7e361839f062e70b46ddecb593add4f6f11e0bbef184c0007351b49782ce00762b88bc996f7925c1c62abab41e462b2d5bd64addf0b70d227c4170a856e710a935d0d628b2621d22a28154f61142644613e86780a1bc2d217200dbd14968382387c48515989ce02000a9354e3b8c011793cde0e8704efc5c1027080008033805c38acd96c0e110e316b43ccd410437faf06b115a31d22076b19195296060e09d8ffe5b35896a4e56c58d21f409a39c40f600c0f0606a4a11a9e364342d260401a09032626060eb55fb2952121bd905e5c8c4bfacf5bdd4bb6bcfced662e898b693cb81867a47bc95617f32ef6a2e154b8a7e5ba184a4ca5ea863aa24ea813fa98b38c382b897694ca2771e9800adf000186dad7760a205565105f10a023c100250fea867386e459110f6320cdbc19d214028c5f893e952d208d007c31ca448f3ba148b814576272c2a958702db8158a771025ed2f68e3c18cb2e04596fc4f6c1f9fd07eb34bbc66bdb74bbf258ee8ed3d1b1b1170dbadb16df688feae0730adf8863a20621cec7d1cf8df4300fcbcdf381dde57abe3fb930caa123109c7998c6676200dfad32608acbdf7d59839395a839fc94e7a52ca0f2c71d72607a626b086c4370a0069e0d4279870ac69b723e71a1a3c2970a658036da40d0e14a450234a9151ae8b318018202c8e3f411b9c28602a059edf81352210bef1bca32c79c7e90649e9c49cbc29c1294f76dc57125bbcb5bd6f97c55b58cdc2b295be18654edf813616b0784a8a3dd317a34c9675608d96340d5e9c38d8d37272c26ce32fb17c6dfe666bcc9c1c267c0998fe1baacb75df25b2bfb161affb1cac31b14d07d60015e02f5f0369e038fe36261c674a48d75aa2419bc07c29e5043c6e4e4a29a594ca8f0341db3cbcc5b96d9352822fe94b8e637989a29aa00c4294d12848d3a5aa4f7cf1d76c2721be2821be2c21bef85350f2a04e9cdb077b04bfee93200bda27aecea236da539086bc95e3401a6e9bdcbca91ee2a89e477fbe06da5800cb9f138922ad484e1814b4b1009e2fbdbf5fda5860dedab989c7480941cc50796017384a8185245c0511b6384a51c50f0c04b3e20b3f473806fd106101c7a025ecc0de51168480b2c00367ef28a8c759acdee1320e387fa8d89663ce39e79cdb9683630535cf9f1f1e3a0c3f013a51b31c122404fbe901f32feff2fff77b807880f8fc38f2e281f22d7ef52a6f7fe54fbc8f38e288238e38e28823c63546df97fce94d9ee4b5377dc411c78a8ae15ee5ad5a145db2b38f2916679d843c3c0d79cb9187e41119834745ad45cf5d0916d13927c01ce71da15cdb75d066480fa17e44dee2848a702dea9afb6a0ae05e2bf288a0845042f422b910fe59558b58dcf5818227fa83c8282194106ac859ab1af4a634cdf33c2f8806411a1bf8c6460ad3a772db8450ae9310ca751242b950aecd4b71dccd366ce0ed9b280767ef284a9105225e11ecdbc63d17c3dd7c126a4ab9db27211923464c4c18fedf53f4b0713df2d089640be5d28864ab511ecaf33c8f1392ad4ea823c2feb5488b79471e110fc9432d46617568c2609f1d73df97092f1ca7008511bc8263d04f0c7345dc4f010d3d534003cfcab742839cfbb9ec8fd805776d1daa443508a8829a41a39e1a2318f76d7170046970b630d4cc151569198dfddd85b37744c33158867eef689b42cdde110d77534748a99fe13f6a8d110c0604d718f97858630404d451b91feed61801d1623188093cb83f05a469168e11ccc388bd1635463dceea9e1f0f093bcc5bde91b7f88fed67cec9d51801d96c8d91cf8f1e16608d514f8f1f27fd5acc5959ba6a8c7a925a46c431ee008a32d154c459d1e546ea4f0562d231f1601311ec2624ec5f2344c759d2088e18c6d608d10932016b8604ed384bc20147fc626b84ec08958035438484e4384bbe0147ec626b84e4c05260cd10981097b3a41b70c46f6b84b87e48c09a213f46469c256338e26b6b8c8cf4408135437a24394bb601478c626b8c927a4e60cd909e97b3241b70c42d6c8d901750056b860019c59c25d780235ed91aa3188f09ac19c2236487b364111cb18aad11b2034809ac190244880e674935e088adad11a263880f08d60cf139e22c99061cf18aad313af2e3036b86fc18729644038ef8c4d6180d0939e28135428e1c394b22e1884bb6c6e8e815657ac8ab88b3e41970c49ead312ac283036b86f028729634038eb8b3354645435c1b5833c405e42c59061c31686b8c806251a685c4849c2589d41809254599ae119244c459920c38e2125b634464880e056b86e804394b5e81233ed91aa3202146265823c40891b3e41870c426b6c6882827caf4909c20ce92473862125b6314444794e9213a909c25c58023d66c8d11d24e94693c6427be445c6364e42c3904476cb23546464376e008d60cd9115f2266c5a923b67cf2983ad8e70eec591e71232e8b7c01fb1ce490b3fc08145186d4d130fe3f128814923df287844519fa8d5b7146ca28248fa396a72b75541712c9cd2aed4e95004ead922e3fe22cefc8431d2d832b6a187f1309123e82a7d481b9972e49724bd48ad8e2540811138b12791884fe00b114880e15b50c9a8408e37409d87f7245d427bef87396c2ec106570efda4ecbe0eed57e105ffc77565fd3e2b777f133dcc5caf71e681b97501e0a2504b2788e72a1581059f455417cae319f376c2d1057f398edf6f0d15995087bd953bafab65bffbd2fab41becd467c1222ea57fde7ba6d26dcd049e82474122ab9bccb8b8b7df1e2e2c3bf70f91717181717985fb9c0c0fc4b0569605e6e5eb9b8bcf0e15fb8b8b8b8b864200949b671442697133a09791d27d471608d2ccb3ecbb21aa406a9433f7cae433fd4203fd84ab46d5c298234d7c524cb5eb6ed65cb4c4cb22c7399e1fb873d7cf41ebe871eb6a7281c0a00bee5bdfeb890130a334e88e384b67b637aeee9cda6a74ff2752d791290a6366e90867befc47e37b1eaa8a44c74d6a920758a462000004000e313002020140c088482d1784028d5b4157b14800f95b6586c5416c8498c21648821060000000000000000200104f460c46872819068fb6fb014a2e054049f1f162263687278b85cce911378f2dfa186da6b2b993ea85df4e74426e3e4a37cae4204f75f5ba18779dc15274e84a8f7461c05721b750590f9d5a7bd2cc88f149f615cc1f39980944fb383a1865f687206286a0ea4d8a5709d278f19402a806c70f4f692a553d0e41858b35a111a98361a118715141ca9ff97de202817a0bf1afd9bc598da55f5babbfb8b4740841c3edadf5eeae85bd7e30f48b7b65e18d50d43720998ac61b7076f47d46824c15250101a93418197746f997721eca8c98c6eca21a94cb2c3c641e2bd5c331ee82b105f59bf6e2ee18be4d96b4cc88fbabb43956ffa46e220a98a74829c7e83e87c5c5de7d62eb475510acceb5f06e195e11623ef8c685ab146571046bdfc3dd79bdf6e70359f99778ea1ea08ff372a0f0ae857f9d6c942d86e4d2eef542d770679d28c27a341edebd374aba33caeb998308b419b4b1e840f0ad6b690cac2b09b8e0267b9be78673e2840e760cfb9463814dadf31f66ce7e23e6dbbbbaa9388c8f76f59342468d0589cd39af9fbbb9f71bbc7cb788737cc3f090e84d484c05330e48694e1d90768cd141354a957c44321699543e8b2d41038b6e77c56e35ddd9f86579ef881464350da4eed3a4468428be72bf71d50bbc637b389d072f503a3a085cf0d15bced70881d4682d844fe4dd345b65c30f2257b0bbed39620db0a1d72485ae9d7156d7b0e1eaf82d0e426ec1167e5414f9d56b6bdb186da31b625f78b366a9840cacb4802f8842778bd9a5bda2340a45af16006805b23bdf35fbae15866b76050e7ed3c0f1ad2280ffa90eb63e7275ad5be97981cfd1d6a018bc3e7fc84e6928064887a92140b4c9ebce13cca2ed0c46102a3775942adab86ded59ac24d8805e2db8f0be1720b25b7057a782cea0c3882d84bdc3275be4b22c746eae010c919a965e8fb3432795fe3b59be78e08ac60ca7bb5099e792e9a02fad0249a37ef5c3b313a29068162d9b1074338c5c1778a26547da7000bc937ccb08a8ff5ece398484a5509cf201c73c26c754a86b38010d7f02d66e13a50647ee197b15e85f50e45e8eb0314c1b01ef6f5018d0d47e8298dbfc183ff9635b0af335ef6d924250833b775f2301f8ca0d17fad3cf9baddd4dc9bcb1253a56633cc85c61a311d036f806f46a97767320c207d48c7a8c3d7072ccb04c178c41fd416abff03d102de92cd528b53666c928c21e77c788a613a266fb2180ece0126da66d01de0008cd2da33f17c19199b1f129ad35f6a9480be599543f654823261d8ba03d06ddef7e83a797d3dfdcaa7365f03c5d22f0d271b258d5fa42619a0a409663e2e2708d10035451004d310d0dd3bdc8f2ecdd9d7ecac3e625d1fe010a19db6e9adfa1082950e8459cb30c8b95e9402d5bfa584beb19da3897142f898c1cfd56719dee6acfff273a769bf5febb9fcec94ebe94cfbf11d8f7c47bf9aafffb8e37a3bd6f6f14f77dcfdfd6afaf695479ececeddd9baee1e303e5abdf15e9cb9ed8cfddcb2b3fdcf07a6eb037cecd3d7a2d669f6ebfe8fcc0fadcac5a5e576a96609ae35d62e9dea8d9d1c1b422a1c52625c23ae2d81657408a7ad221d18c8e922f868e251b66a7853ee94fb130886640ca2e19b7c4a3bc4c5a418ef638f5195c34f9fa38996ff48c2dfb1a3344535b836568b008569268e71d375c60cc1fdd549b6c59bce12599f7a85cc1d8e99c69e1c2906ec135b1e5a0d6c387dec8e609d1068f112d9d89be69c4519865b0cfe5aa89d86ea390e0b238b7a23ea16311520adb9199d702b8831e7218af537177b01af6df21e0a16b2f9c8ffad2e5f226b3031c026cd0f3ec64deebf940cdc3466898a7200573f5941942965631fe8b5ff8513a67c60b996c10bc88f9ee8bf76c63e4656cd0e64295f6ea3caa0f77e178e68becd7089cbaec9e9a1ad3c64fa822db59194e420cf61583e48646124a288ccb08cb324762c601c871c1ef566a247c864b34e7ce5bc901c9f2d16ff8ccce16e861dc9d20e539ab6f36bf470807b3e36877b6c5d229b9f88a31b608cd1611a991ff9a463f347a6fcf66304a77f9b8c494e078a004e87706f32c8065720c4a5160f3b5871ad15544824284c23bf139ab9f267b1e9081f8444450274f9c524f86726198280dfd1114b9368119606e6c25bdd08df1f65d81e93f6fb30a022ab1a9b9a37102e0bc1a1c9066b893db225cd08e34d9a4ca124016880b27d58db7309667e33025f6b3a7cd2e808650c8c0f6242196000f02f3144e1f5eea6b49304a5c8880e912dd0dc52adaeffb6df53b046ec50d485e9b543ce416e1ad2420b21e15f3ff573714ce7bb55cafa0ec786a24844db8146e7f3faea35b3c461eca8169a6bab198a158e86f6577053325da1dc93b627bd088ffbaa655ea1f8d27e9b587ad5a58337a7d32f810ba01a0bdddc5bde3b9b956c52feafd2ae2466ec9b3dc03c11ccca6924ec62e66d5b906a31dff1f463e420c55cb0fbbf0ee92ecec8081252e0b4df5c94304958dc97bbc98b253e9e6066759f2001d71924e01a02d9d9a5ad6e9b3ca8899742810124e028c7caef4f13fcc108751802db507ff4e0080e13cd7443bd43cc5ef6e59bbf77b29b8ed47222c4cf2ffb251981284ce13d8dc24ec614c99fe2ce9fc0c3c5e94bc2249e10d5372bb34599dc5ab37b5a2a8b244967772b96a600f92242d79f5b6a9f094e185e3f3fd33469ee42eb1615af16ab09d03d5c33ff1509f0b8b6b1f6ef25b00c3fdc8da24f964ecc96f881614417ea8a04b816887739d70cf0daec62f91fa232309286de643717dfb97824485251fa03acd53175d43bb0fc9523c3e258d5c57d0c22be5cae37b0e7b7aa65269e34596540324f9ba92f1e189c4ea0d25b4a0185de8bd8130a76753318a502481922c38c2478d224d293f08a888ed08a0478e6b52276cb962b0f6a4885d762f34a29b2b5bd72870a41ba1a8721a4962de9969db5c390e76d11f13c883287dbd33e81143cfeb0bedb50d73d98413bc712fdaa0421c29f888709bbb61f9a281a10a7e4bd3aed1f41a7b2b830e90950bf129ddc3aa0bf52e85db0ad808afd30388bf6c38bf6e67411518964e91f7320c58b08f36d19b4f63d6efb275e1a10e40dd2f0a6bd23872bd96a5e07f514fcf341c77d3074c2306fbf7ff2f4c4a99b9981d96006f7365281042cb676729d0c87e722ff4494861a11f43d5a57efbbb66d768126986fc6fbefc28e71a5db4016c4a3563ce4fbcf637d4a676a49aa8efe39ab0d80d1d30d05930d195656ee16101190ad5679b8ea36e3c9c58b2433a047cc8f4438359226aecdff3e0cc34f470bb125245d7f170391cc6d91d28b20133a85f810cad9bb237cb0183380667a7baee6a4e6bb2ad7505d240b2664a324ba971f7d728c2cd0a59120c757ff77bf6947c5021c043b32d009103cd9fe08f8d450755e8689c8c76dd53314bc9db0250e001d3782c695385360e1b952c03270c592b21c07866897c621dacc3a93199bd972570adb4b5b5ccd932a04008ba834b9f8b0f3531587bab6ed38511b032ce751fa76c9c6337a2558c2343612264d4ea86e5ed2007111dabd7d5cfc8871f8ea34b5eb2d10e8f16160f23ba6a290eb0972c686109a78d1159e44bec103f8a655b8e072e12d3030fe42140ad06a95de05960099859de4392a93949768150ba0586882977f7786f5e0639696ca14775e3b33327913c5b791ea328714714f68a904e1b4777784998fde18733b3e13824d9cbd05eaac48693421c06906ba7040554854b199dc9a29dda915024db2106d0f8263c23414bc938d4ab20bc431eee3bd730bf2bc4fdb90b8ad4f272aa4adbd163c761f6618254d4731ecdade6c90b06578be6fc2dd10c72ff014ee05460e0f4037e90368977887e0b4642a2685fb14c032fa965d9ff3aba061234edecc075af22b3e4e649e9a2304d3e45df43be9cbab5fec933ecb60434c00c30d7a16fbf00a0b4ee0e5ca0f2701dbda4c14e9ab8e499f01c1985bf0403154e6f830cdeb813359a487a99ef4592530e78f2a73f63cf831fafedd68406711aa44e583522ac39846ed6178ec7e9eb1fe940702c263ba26ee2b776e0d058d19ee228fed785ce0d9802f477847cd32ffd089316eadb3cec49dd8480163271d3c39bf5989c5878ccafccdd4fcca7d6a0137ca322d21e5df8cd287ac3149e04630cf7481c85c934289114c40c9af53c91d7bcc47af2669aacd0f03b42bb3b9424983c5ed3157aa6a17609265c6627e284db9b921acdea9198498f555e9fdbc4432dfdf02064c62246b72d2ad550d99c7e81a74f985e75dfbbdd87dcadc50e6556e4d95745147572aacec2f023461c9c079b05512a694c7da6607491420a9e32b2a84352ad47196db24493e1e30da60a65ee1e9bebbf14e6e5d9a6d067e5120bb7c576c5eb7233b4edb536c2890afe5a626f84c7218e40ddb88bbb1033f4f855f59bba8f4bbe083ec55f75083ca094d5623a31bd907c6e52fabc23ae6ac23348caa261e7369c6cb6f0978c95d889b9b9dd0d4dd579393d7e7de64900576b1ef067596b39e5aa3bcd044db55a65d460d6696442eac2ca7e7c21bdcd119a63435e0dd67670d5b29d0c030e5a2a0e1f8aacfd7039ada0d4c95f2c2c438d2ebf6103d1a72c57d07e444b6e2e50b966c6137e7bb64b0a56a6bf3a8d9648f075842c96e4c72779f684f75fe3aa1f92e445eff174d22cb9695127502bd357f664e4545e1539aa8dff3d6d733bcdfb61bcb87337bdc52fa4d67d13db896bb8d9c59b5a44a0ad1a473898fccedd2848dfb4968a888b2c15bd5aac31d0e25b6ae4c5a554b22f0279a6f49cdb326df74335e35e01513892a1731de4b4b261c276cad33530d5afb7f196ec764b28fa0eda44d417186d50fb49df168cde17cddae510deff6d699fade450e6802020ecf74a6dc7ca80427c8db9093a7b631126408d18bba8b0578e9b1984bf670a2410308b4b5c0113ebbb355af089e3c4ace2b6aac26a0a6a5746a83c05a10314cf364da8830d2fb95664a4258d5fe56ffeb7ba9670667549ba7264f0eb80048f6ca595ac562bb619fe502919f94caf5126713779226ba2b50342c305a30904406f6c89f258921c65befdf34d08de183bf4c398b3cb7580745a6681d72a3b4347f6696aed683129cb3f825b3b74fc37fa6b4875e3a0a9103e78504d45d73809160b10003c45828611d3539174b454058ca45b3ae1157484f87902822c2b3c4f8b241c3fde45df3b12e164dc56b629f0a380ee1befbc709a56dbb3a046eba6ef14f297894ae5e79cf00d1cee9ffd135e189405d2ba7489fd602e95404819ea2c6e84611927d5e1a29e4f8152a1386a0a6ac69cd88454b2cdc88e10a7e4f2371852fe5eb3cff1161536304235d0020af05d83439e6e51a3bedc68a5cc77b9550be1a8ba5049a1e73c1db7ad50f50d8c42b570d99b5f1f02dca35e7adf5ca4cba5fcb8a6ddc9a7ca4789935c0d358f18f34f931d2891d1d2c73212032eaa8cbc59ee426f4b9a6da387d45f4a1723f3ba11bd8d67c79333589682409b4517f560784ca548a50bd0a4cca4725b1a3883da59d4e7548be69bfb8f90b1b9864e08c98b8222095bcac3b0f1173332f3668e440df34a46a3ae3cfc2025080c4db1a2b93abdd090dd090c5d2bf3597df4fa8ffc53b5af38858fc15f5f4724310c14478b1adc7672933e629b13e5073ace50db7593692bbb00146fd81995dc871984eb4a9d1a803b0ae86509c750838f4a58c10a74b56c2e41a87743faeee805927157203e57ea18cb8b20869f34ecc8c9678e2cec1306ab9c93a5ea85f2a6213e418d5f30ed44cf0d01e0687179e17f284bce67320e0d570e8a52fac1088e1e0bbed82ad0c51b6fbce8a45ec14a2bc7382c26d24a470f6d0967160960a3f5789b7cd39c374793d641b9002e5befcb156b6c7a8c12d6f0f54d180119958e55bb10d3c2b5924cd64105779488bf4d31f9459945ba24771d3c489c880891deb09509a6a100ec0c4ce9e177c9be68f1c0188841bd91843169c2d6a39f11d03c841ea0f759411578cd3eb0aaee20d38237f418f482b118ae3c6ac6d3067ab54e1437301f4a8e33752c739f01622690c1ec42033af397077007a0c5d1ba11cbfe5e57a2877011b381859e148d4b6bbb093f56d58d0d351416e5f497a74fabd868cc5be43449371ce51ef21a184e50c5258d48a675636d1d48a104de6fd54e347b410fd63077de3e218ce95e50ab057c0bdfa22af7c488ebbacaaf82b88f364848c0b408677529cba46375fdce99619a7688ba9b9e62d96cb65291d3f793b51a033a9a7fb6eda772d83effca113fff76841efd9ffcbf01a03522ea9d82b8798e6583f2188c290bd7fa962ecf8e57b323c5cfd4ac63ca4255746b8843ea26f6772bb287efbd7641430063016b89fd48da5a9727ab8caa58b0e83263d3f87c9ea7ceb09cae5826b20967d9dc26c819883592411b5261e78d4756b4da7a4b7e5f10a407dbb704ae122c379e4e1d3e129954f6273b04d7209f765ef3c8bc44a009456e1da98bea4c4555f3889b94f48931340207c695bbdec93ab23179d218b5e9c264d846a48a21b5279262f832d78f382bd057dfd21ab5a7929bc460ebc34cab4ddcc5c2f43efb8025d01da84dea6a64a273b0f5a05fc63ce863f63ad3cb775f54d7ec60088c0bb107f9dbfc5f63b2a1580c94ab659830f9b7cbdef3716317fdfd31365f051935eb75f6df21133037c548138e87943dd9e4d60f2d13b237f54e13868ceab7401d576661b41ea2c749f9f969a3f7c1472a3318254752650ee1e2d54b2525f7e31e6e3d803d6ab0700037a3a22effab36131d420d64821052dec3460ee22af46041ffc0fe22cabcc54c55157b3090d16a4b949b29761d565d7774b85584d881425e026e1c8166ca6c914842745fb61ae454246adb1679162742fc207104b2203a44722f83d7fd0624e9ab68592c54fe1ab3e2550faba52c8d2676a4da0044bb8935cf66ecb5a7d67597e41f2a6a56f336a674813a3f10eb49f03a74ae35d24ffd2e927c150751f8b4b001ee514ab37a73d5c2d6121338cf4772aa3d8ea17798a68911dd5dbbb527f0927cee515c335f3a52ea166a344a582a25c29d6de08808043e48dc362ff952b3dbe0271943ad769fc771f290c5ca4d2352b770f62e8ddb33d368305b1d16633d0954ab26729839271fde816c70b00d8e89c4b213b403bfe4febb0bee3755bb600bafc96cb30be38cacd1cc1e21afb6385064787b34ecb8a65b5206c920b103a1b0ff8c9a129547f4ff42b5237141a7190816e3acb039d7f47848af536f81c6bf5dc2dffd986220563ea9138fecd89c31bb1073a4ef4d027e1336f28232dc882f17fa84bc7b60017f0456eaa07386c73dca970ce14547792405ce9987296024e74bbcd4b78052137518b5b66991bcbe942a176e035bc4f895eefbeb760e2489c4e5cd9df1a9470f4661865418480277e4d173bc81a9791c77973c880f2214e6f51e8d829f42a80cc78e07ce960d0ac107e39fc2947ec1e553c2be533939f845b59703e44dbb418664b84ed40a2878761ea0419694b0786c9b7bcae52136325fd50215c0f37c3bd457641176bc4e35898a745fbbcb8ac13a17a3246b69806cb5d8d16d59096f6bae9935679dfd99478a5a1fdb4e51d78d2757cab4c9ad339fe57d0010588940350d5c1ca8dcd25cf1683f2fa3c83c48cf1646784581455f1c2574fd1801d61a1f8cbbff4edd5aee8eb66cb7764c5bdc288873bb775f85e4430bae20948427c68e7007f05a6051f193f3b5e6b20ba707896129394cbb0680ec89f9a83530d088b667b48f4019495b3a1ed1d1e2e36afd2ca5bc566b82a7e870b15dd2ce3950cafe66979de9e350b3a2b3cb8cb5a592d09f8fbce70fc87ffcc4b98c8074f98a144446eb624ec08673d20e5aeae06561979fbb03e0fde258179550b2feca19121463368a189b26a0a8d4a90a3ac3369935f112b96034a2e1e348db99f715796a836cdc16ab15dcc61919ea3d8a9a565a7312785c0753b6f93eae7485d941b78d5d398465657f093b6312887751a95b05f0a5a3f1c4b36ac7e608a7ec7b2db00b5dfa074db3e65aebd4ec15c9b127aacd1d2c056a37a3a49a7d507261e1d4a2ff12bfc7dc780e0684f483bb816a437d1aa8f7c071f91d0843a9e22614066ad3a3be35b363ec017a48065349157ba89a0ca852b3a1be935df537a948867cf4ec139d328909769a42fd6b77f9293b597ac5eb25476404d66dde8d232325abe144514643a8533106f9156fcdf08859a36979da32a8c1001808f07407017875abff2f0280ac1288a98340ce584b844a323af3c835ecb91bcd17624e213e4d9ecc5d5cd4d8759e9be297702feea6fb7a70afdebe3e2483cbafa60bbd066fbe69059199ef0ac3b47573b4505d8ee83169060cfd431a7959380e228eab0a84aea3ba709e79f9f312711519874e5fbbe30da9ffb9db33994ad076ab37d4b6bac93c0e259a7f8f163fddcb219fd91079a08f31fdc2d83f704332358b8b84784ed604bb4fe5f0cfb582eec629ac316d6cc030c552d752f26792f6b79532a2261ac43f11596c17e9f8427122b406d7c0aee043c04e2361e434cb0ec75df23aa13b0a3398308f1458d06b585010b9b407e7cfec5616eb83226c815cc7e91b5f31dd09e4640bd715ad43010a744270987d42a710cf476d872a7b11095bb80605c1c100e6b9ea23c0052b8c0b746a914f8634f04e9c51932f078c2bc1b81c478698650472ecaf7165c172c8af5b22e8dc53a69969bf1e8c8e1ee804579a81963fdfb80ee0eae0842f9316853d5a0d312bc084240b4b6fe5381336dba0a0d7f5ac721a8e3edecc0af5f2b6567b553973186dd56db37ed93e2437958781640a87cbb9791da6a59efa6824b54821d88443bf4c634ada9a081e92c5a5cce0c8fd48f1b57dc64437b10651151393f6542e369aa21455c02aa406d133591cad37eb9f2c6f45478ac7b51e50d464881b630316de6554f68c2b7d85cdad1ba2bf2ce7469df4b93f678e9a79db6bb22a3755be4dc69d2be3f3dedf88ecf6a74ee14590f3dd09bbdc157be5423b2187457e43b74811eecc8ee8679110af3f9c5700b34fb30792a8198455a41bf8722e8bd1dcd22c1dbc8fc3a1aaed60f01b2bc1dd1b21ffa8f1ebceb22ebb09bd446bfc700f26629d1d75a8bc1ff5aca810e9b27447724390585380df8114a640f793c4a6cae760d669fe40ae6dacd440e30b6da39ba5cd7a3f8f2173eebb7652f3dcf635a944ac784d890d6c57bb384669b5e6b9ad8f85737b11693e3466407b4d74ad96d82bdc64f67d6a151225aa8b081b906391ee6484605fa0e22f0041b958f98ad3e2664b787424e1fbcedcda13c85b7176f3c35ff8ab70731fc563feb507e1e5c1e58c04a530d5b6ba105e93a3754e19dfcea3ff05b26f4e313f5cbf6b329f766e19da886c272fb10103b5141ae32064f294b43d2ef511ebf743f31fb72cb5f83899572da03a4213845ae1d698bb12993b13238e3e5ab6447e218e2b519fda439ed422d47a018d1e08600de708e8ca6ac025dece0efd00c1448829f430ecc1ae73cf618b71fd77af26032d2bd34559b766a8a75728a6fc9eff073dfefa312b2213465f5125a5c811d231a4050ec4b92a88a7d13aee1c55925543afb7013c87fe113f62df3dfd3ad55665cc7d7673e7942709b8886cce99511c4166c9c70f4ae115c5582d72036ba2f23cb5108989185dd4b1678ed6567e1f88aa675d81c8006409baeae83c74b78e5d979fdd94a1056962ef902a96ad01a2fee8bff536d00d7cfd0c2da43b80734e23da1b6de8a41b7ef1de41b1c83b6d9e4fd4bfefe417600618502cc08f5c7825cd7f3e643c912104c661ad4e324e8a830a21d2dacd8c1702f29bced42801b890646b9cf295748be06c237b217750c28d544b4028351f0e6799fe9d93d14e312c4eaacc20e3a9577e9601d8add855ad3aed89b689b6ee9c88fb13e1f71e8f462f319e69e8edb2304bbe7ef99fef4664324779fea3dff8ae800b1b76ed85a5d9a640ee9d0f5a60b4d630e1ea2ff85345f2783f429ca75a1397be895902d7474b28b8f8edd587fa63474041a9116b20e58110408c6a3c3c570efc7391d50d8bd667e723862722e30a2762c5dc195b2d7eaf3eb4fe25fe2908e691d6caa709da68de605256916a9ea564e756d9efbaf57ec5d93ca7eb15dd56909ec77bd4379fd520121bd67af33f60bc4dd6f2cb68bfe9a767a6658b0c687b2c3da424cf3426c8525c92832199cea25fe937a3f4b9470c7df40b6265f733ecaa1e23db0ca778e2f80ca76af2cc4a55f4ac232e2d00797111760455d066c283f60a5b3d1eb73e968b0c7f166bcd1c14dad2e5fff53e196ec4849650a62a6fe21db8f5b47d27c850c5df383fbb5f6b76fa56256e9fa1e5b5c0acc46c99109061f732254c666ed72a5b9332f271e0984dc4a4084145ef8f9ec2008865f214943aeafe356cd7fdfb65552ac85dc6781c2eb6c04edfc183a3956157710a5972d2a0e2a9335d6b5ef9a70717554549aaa08b19285784f31178b1e14ac2832005338fc2c36785c1545d5ec5d6b591b665589df800239f0febcca26b9aa8c860bf36257a2428fbe1fce376db1104d6d985adb1cc9172405cf79cb100de842206859a8abb01f3e104d969e6cc5922d309eac40f612e43dec7763c5ceef49c1d62b3f12ef228f1c0ce381a042f0f0a7e08197c8724eaf1e1dd3825e51941b17d8d07d74a6168679f47c26ef22e4c59219a777393887e459e177342d63004cd71f7167c652d110b485ea73e1d21708f97b3c88470e61096886e1f309da2cf661b631690c19f1a5f0012bab3a1db1dc9ee84500c9288f48bef51b0afa5182759369cd67fff3eea19637b3e52401a980b98241cfd8dd6a94e462069c75f2bceb51853fdb2cb2e2f19cb7144d357916da444a91604653608a0e2476dd0b44c18e5af602765b5f90e201431f709a395796c6464f1a53058146a830966320e7a40942fd34d12dc066f965830d10b8af62672695cdc6e05ed21d1bf70d515b24d16c36730d03ad095b20847092e646908c1969127d2b574a9f67cfd83af170e964eecbc7fd907c27cd87c1c933be80544f6edd3a64363abe0411dd1ab7028d5bd0bc5c5b7ff1eff2373e7237085c9e77c4472c2d9e5ba98032cf4dba063a20f6687d4d8da9036a0cc0690ee4feed3ca5fb33060a1b7026b7cc67ba55a2da776eaa1254b5206bd2f0def408f4437646a9cad2da6494c6b81755c19d7b2d1c27c151d9d0041d9c9e58474ec4555e99e3c5aa221f81db4cf8b1ca09cf963ef0958a119c232cbaee0dc0392c807051a40d96b6cc59333ade1baf6dd991aab3285e8a5620cd1049634f8968f471cea2a3e4105508d934b82002e01c3f1685122404d2bc6e5c5ea7bdf3a9fcdfe7ff32bb8de268e5ab33a696c6fcdba17d6f61ea61498d6be287fe10311a87f0f1ff6a19575c110827c4d8749015ef0d6023c08d741ce148f1f41678772a20b2fa378c1ef76ebbe620d819338d49f3720fa81eac90cae260a2ac259e30afb44ccb9f9f41b3332b2a76387a219b6bf74ab3f442159f06f773810eb4b4393b88203668fe868ea22df2612c0a0ee0a98204e02d084590bb933216817dda6a16c105fbd744308a5a34b0dc330b1729c60797c37d6f7608fae3663eec1678ffca433365728e161afb813b21f6de49edb17ec449b5c50b60e4c3fd344d5ef3f656b95438eaf6f771f202082381ada3eb3ca272aa78c967c5713498f85861756ba8763b259ca113558a5a084a277b824cb3e0c766e78dc49b7b0f3d625083277f560e5bd3cdb839acba6c917d749189071c798874f568a5b45158f5fa6546de1230fdad800b37d2f1e47f38dfec2e06bd2621d6db76af36f8d0af4a9ed1bab0b0271aae5aba12a869480edccbbe9d6c7178831db1e0f4bd6ce79a20599264dec297ceeaf6a74929ae7490f9c9262cc1fde481b8f40dd17428ca80679e7effa6a9fca904f490968ebf40ef25659c8b6d25610178e428326405b49fc4e59a9f26824c71031c9dd70538e5d32fe6495b61c923ed3ee48ffe907100741de9556edd94417f4ff02459fb5bb63c1bcf11b86617019e5d4a2f8992784d91874656de1fc463e0ed4377d39decd6ea3cb9012d6b8c53c328c0f3fc5b200f4fe2258136f64445c3c1037a4d5a46aa9aa208fd5c5aeb99f183379f1156c10a50510864a76113ebbebd74c14d55aabc53ff3f81f72b18bd02ddca2acaa4583460ff5253573466ec4e59f144a4f13a3def5831e8935ac4893f18a581b0dc3f3a17f427796021fee28cf972158ed8e039aa2f21b5ce7f91d681b5181fa431964b25b0d7fea64e8217d5db3ebfdc9beadb825e5cc73fed692f16a1c4be6eef598365552f44074b70e7d59fc3c697964f0c00549ded7a99417ddd03430b95f3f6af88e1c0cf1d501bb0eddd6f9016aec2c95da968dfb38838376f96c3cae8b0206707a70741bda6ecac4f4ce1ef8e90a6a85ea5885a3e5e78a287065cff6160e1853263ddf5f22bf905f3959391ef2ded811518346e38a74f2a54b96d398b00beb0bd0a71c795a8d1075383a29662c6f09e70cb4211a9c152e6b46adeee0e1b2fccafced37b93238eb09b7ae137b625f0a96e6bbe0933968282a3795418e44f8276918cd9f09b089187dcbc98cc14b63d097a813d87708f873b156fcbf25c1dc93f3d05022ddd2bd941979f365e9317636210e28be3e3bbf153c0a54722c5a4c613bd67212fe6ffef41621a2d8fc51c105a398c4e76deea0e08947b108a0f148bbc267815a596bcb402dccc00586a812115f4cc7e53d274274aeabdabc98c10549af03641febbc5e35ee7a10c8682aeeef3890ff9c85cc3230f35af005a6215b1a3b8542bee5169e07376f7aa7893766cd7b6bf0bf73cbbee7d12b3d1f2a3c3fd17f3611bf1ff45b3c3a44315a782f036ba7d17d02129f7291cb3d964e0706dcaf6c4836f311654bbf0fc15cc2a9ebc11e572623fd1a00e923c40000b4b0cb1b7f5d5114e0a0c43599efebbf807997b371b8ada562570a02fc228e978abc5423c427c8573d0de878f893790b2d575cb9a4913a09e575e0231e3507591f39140528ca7d0a161f74ab6193a6f54ea77a3135a63bdbecdb2bc470fdabd0fb5c3b4ba14d0601b4c83f8be2481f02935bbfba0671d30050b6fdddde111b1119f381e009cc18cb6415f3a335806d3003c078d29453b1cc277edf433b28d5baa0a9b11e2b82c27106d12b8d73e0899cea9e95520e0f3cf47912b904ab0263f128e22134ca6950c64eb576697f48a6929054b655db73ade2633f42724d8b82964441fb407a02c91533ea143e0b7e5b625d57719f7a05a63f9385b1cf0fb542bfd82768ec91bfa17d38365b759dab0417432d4d0d1463dd20dde87b9798550a45efab020bd8e024ea930bec54af917c2a58debb550bfbde25fe27ff50038085fbeb824fe2c3b98bb3f435b2620d7c8330d3f482f6bde797dabc00088f539db9ae4e1b71321558254396a01fa7ee4131746fd6d45fb18fe8eb5f25cb6290426e608565b4214c61bf6b386d77bbc814fa25c862deb05af83800c3934933015370b667c619d40679510bb39bbf08e9684d468eec8737e4b84b4a25b7270e5972a96f28a9f959a8504d96d7cdf6cc1c56b818228dff569dfe475e5cc51bd7a274fc98d89c8ff38b25bcf94696346d109d2fd85c1988afca18b78bbc4b654db04f85d8fc2b94f789612b5e63978e2b5097ec54cafe64c7457af4e1ea5003153cac7c73aa07a6a00b7736b3edc39047ef3ee035227ecfdf76de5c5005e91b5447f6fcbda61ed63ec0fff16388cc6d0e43aa207edf08b77efc77ae37364f5536c1b4a7410e605ba6e5c79877007bcbe1f2665d1e4493a89c6674c3dd4d26620cdf27cff00850513288cea85d2df64a130c881fca2c0732da7dfef0acf557bcb7275a880de24fd699a430f757b69228fb1f3575712fcdf1fd2e9abfc6ff78a56b116149a7447503f49967774004b20f0d1cb6132021e3ba57aa1c3ab4637ea920b95b348842e18087d20bed6d6839c2c7babbd746c123d61ca68eedbee9d04ed638e2e22f15ef93a0027168fbbeb1fd81867f59e6f017e78c91f81c2fbfa7d9be2c255c05c947c0672cdc1f51e8c1f00519d1dc3e1368ae5dd0048bb01cbcec8ee65ed06959fa65fafb53f00d8c60d593d4f9272164a9983bc6666b929ae27e7d8b92aa4aa47bdcdc726633a41e84c6bd89042db7f89337156586b0c2ff1a58ff73378a0ea8b6d1cb27022596bb7372080fb3b7f69cfe4f49534825ed6ad2b11bb5b5e1cbbc072450a8094d27581a52aa90eba59329a69d4efebacd26d6c32d7d5c241937b3192fe97205188e2a2cf1676edc4c5708d70058b356f696be5a75c9317240444667480caf581f9ea0b4a1e8c4d1357237c82a8c0355209ec6891979d5611d112042c01b5df984564b938937992e47d6cd9cad500b62b8d986d4b22614feb93635708513c2fcbbccc784c8558e3b1ed10c7370ea4edfb15b65fd171c2a6f44e6ae4b66d3a839fe70f60290568fc05704ca2fbd164967415b46342fed39814c3dbc862726ae6486e53c56324e91625143b5e8b4917dc1243bea9f6cbc55c4a5aeab5b4946e261905a20ea7012a966dbcc75fbf510fbb3f3d98d21a058b7429400ddf823324db2c9cc89ec9f33b3a0650e7b63c9583860e02adeb410001dbaf4f19f06113a145bb7070365abcb8a5f32be2775781adb00e6de5109c30140fea98fba4db3a598c5d30f7d468f37a3ff53c20244fad4b53c35862241e9cdf94e41f51f88040554e69a9921451a0518c4dde47389d568857da31d397b0cfaada243d426499d9e7865e4e6a584531b1a52c9ded76877491183aed3c18bc1624e3375725e9887f759f3c2e97ec2f66c9dc501579fd4c3bc5901f0ab413331d40bbe8bfe4f5c8a56186efc1f9b1d9026c9518d68e910d37a79c9c14651a72ea99b25aa760424a1c8ee6563c835e040c1ec4a212a0acee487e2957608908b50d3c68b05aff03ff9af80cc4609a8294dd753796e2b01f585afd4ee377f0579eead7d6fda9dc1b1236881160461e91b13157e337e6e38867ff269b4984696837dcff8ba2b5470939863763380df4374399f536b3c00abc4abcb7826ebe6280af46eb36854be82390abd82bb02a0846c52b5f8ef9a806775d9b08dd7b372e2d8b7181286f766a4846b5ec143e3feab20928e947bd542f32bdaaa1e92917aa5b15661b185efc80592b4ff0816e9c17d88db04b94be99ee3eec92c7299ae979485a3dccda4b26032abe06aff8c45d4595bcd9c2131c6356e96891dee38ad7e67c71f32e9b1cc93a195354a334245d5f1385bffc29a52598dcab17dafd28914a4b342985d4d9b1ccd0fbcbe23a502708ab19095af549d86eae13df2de0a7176ab8c39c319d52054f0e4bb58ab600598159ee25ab7075262ee755cf8946fa3a90f21ac6b5a0a9ed56213a34d4823f10dc5f16b6fce1dcbe136779ad55b28c6550f74b28e1f630218748a98072b80745ad0fe60afd28e275e27304fc8a3f0d2daa9dbe028744096847093f754b2221646ba6d6886080b64cf59afca172fb41a450395d25eefddc2fdce38188ae5a3969b5fbea39ffdd40328502b1ff83e1b9fb8f4fcbd3eab72fea5aaf9486e9f5889bbe16388ca3a8e274e5ceab096311d581e12b4e0bcdad581da26687a9207226350525552c58bba53c3c500caf32f46d609a08c2d73ef279aaa21c78d6549c1985a8a6179ea38c2836d842649df07ca19afd97dcacf201dbdbd068c40ed5fc83a228d8fc409291ab98e7e7b7ac6211baffe7e2124f05ad44dad7c34b72d175e3d4ddfe473d1b3c6eb45ead97835653a25901fda18fc11f964a6074da57a11389dc0572ad26241d797e8eb05728b1a9719c27aefccb23d04b62806227aa463b6969c9405d6d27c53de323fecbe4e317a60eed228b23df6ea024a70aeb69ea6299d2c7419ec370793a70ec82866303ed037a789124d41a5d9b007f0974dd0a201c26c773aba1a9c7620bdd97cd6b9253f62549281180c771343c6be84b61d9766a2a5cf948273793c92a66d4315699bcfec4cb1b2e8febb3eff7bb3d87bd900d905902276e07a8b6d2f263bbc73ad363cc26f02b5c123e89e36718fcb4f97c3e651044335ddcf930893e6a89d07e8bc6a3c5365eef94d7312f1903ca07ca25460db077eb1cdfa94e92101aa452c2fd91cbe00f7072211bf7f14d3d8c5bf158dc6359e2ed3ff754296df335ad437b77f69ee957e8388a9dfcaef6521819667a05cef193d722be7da3b097c039a25079417d48f46ef505080f92c0f949b30d556ea1b4e364e9a03040886f1cd3ac93083175c3b4f60c69ed1269199a2a38dad26b7cd1410cbd4987f1a5093a4d81adc28d7a0cdf34174a6eb008aee2fb49acdbdf41feb53143ed0fbda1d752e22f6012cb86f27afd5d856cf2324187093d0d7e22942ed5ff604c8c9a3aaae0b4ddaf9eed2605ec84b69cc09deed743a773067cad190f8ad374d177b03ce5dcf49a7f250e09967058c880bfbf87ac9f8be96e86b94c6d2caadcb00f163822bb4670e25151468579bf993b7ae809b7f25eb2f06a61bdc8bd500dd928ddd9ed61ff74541d69bf4087a6576363e350130802236fd69bc086cd074614dabfa50b1cd1b209be7344b1f7bde3049a6679f94b2fd20845ffd94be53a36b845cf27f94c42418423f51a71714425eb0e1a6fe17598e90c5f1573c0029c0980c87e16235e013b8e5c79b6975d889189a94b6c852cac62b3a4a3a5d382006accf95430bb9446b78ab00aa77cedf8bd6153afea39eed20144f8d29208b301c8333b168e2edd0f6f5bd970fc9a9607b838e105bb36213321bd14b27abd023eeb67f6d1d6cb1b6ee91d7ea001820bd1b1015ec643ae67d8b8abe338a78f684ce85b8970c18911455826f8dd037a47c0beec90e545c81a0cea9cc733473121f9100e02be782f820357df2896a44952e84aec41b619fef6db6062071576a1e03b326b4e7048552ec85bb04bd71c6945a2912c22d2c50937b47ba914effdc9c8ef9da6ec73d256aa418a1b086e25dbe3da54b5a1b87b446cb83c10cc33f62d3e235440941ae471964090744c6d41f63075a4832fae6f79807a05f8a418a7c34c668ed4cf2153d88d82408b23f9017b380adac112777a02ee9e3077501db5f711597ad0c2a74e56c4753ccfe0e6854fa3eb895ff404afbb500a6456177e57f9c128b00e94aed6892bfafbce99266fd00d5574ff318a58fce725d20e3611c55e55700560a2c0348e78bf8f4afdf2b2e641b6f021841e57a0cc2d8f4dc7e84e8f8f682cb974bb3531c89acc6dbafde2180bfd97cb9348d20f7f13122fac4878f1c63a412f9b85393ff22d02060e19e92c43ec0c709a874cc6c3edbb29a65f5555361a4e3091a55565ebda0df04530c761c3a07115e0a3bc393bfad08d1f65ee131d844f7c112def2725be109681cae451d1e1d6ca02d5430f4fd88f340443fd4102cc1eabc4083fa9eba2c58cbfa986b2a765019856e5af990370e0ce97a48d3970c8b604b54ef17f228ef536b5dd8f470b67f95f77796d332cf2f51f3a94648878d40e6ea43427b55099f20135d3dd307e7c5d150830919ede95a7dc8094cbe9061f6954bc402b7045d626c6e5408227167320204be74193237b7aeb58b4f87c70c56458c2517b0d26c03aa2979be309f4b570fd4213ca4519637abdf4889c33e88ce8f562e885e84b0553f571823404b061dd63d0cb57f27b08ef3ecfe1a3f5d3b7c26260c3ec0568ad06fd35178b03edc4e53e025486d59385025ac57b35a8bef1c56772df8f3e9f008ddd7170c00f5c8adbb79d72ad111462506844f3f752f8f09a6d30be19e880c1cef9ad9116ffbad58323379e848b8610b702a7522a2ec3deac8e4f90833c7337daa562d468894e59076d836c2ae6adb85d69112f206034c86afc7aa317a9747ea1ca45a55a4c701acde724bc2bb17f83a09daaac6c3a1ec2628b96d4484be71bb49e190035158b54f2455ace98cc0d7fe4d6c896a0a95eab2a31162ffc2899b22cef0917fa47ce1cdd42b818eaa3c07e460c2fd6adff034a30914ee5cf9057ffb19ddb4216aab4ceb351de719bc90a0727f7b147383f35d607a207edcabcb2a3759418139644024da7dc0ea5b7ccdcf1e8921241eef853057c4be619861f68709687c9d60c5b96c5e689a9866e66adb6144ccbd7e5193644f03a4ab2da3e011dc3ae0e838f61c340fa0598aa494389f50f7d6be50d998522e9620c35e9ff8986333276ae6c96f34da13b277cc36281d64f647957e66b2d47b35060510a7254460434a5170030fed9dd1e5d156301b88b2aec8616d9f5272503668413872b96c05699aecf7c10b3b1e1361383bf6526f19fb133ddf4269b2ffd267e56330649ffaeb02dbc613c2a927206aae65156ec8c63e38ae5afeac19cd4071b7187e79029a9041da4d033261aee310279f0789e9d1d3b853dc6c5f5d5f8220c05b3f1c69ff38c354cecd536e9bcfb42e32cbbd8dcf80aa7629528eb81eca61176e83b996e6a59d2955710bb4df930925a6b38aa5df31681aad7f28751b160b3736a5e2d5710348a71ee7f7c99cc954869ccc9e090199de40f33cf7ac5e0ad83edb3fff8028f32d92b95cfa5733d090047dc9c5639dc6641b22f7b2c1a2278abe784b9af828e1bdb8bfc6aebe1c8039563330dacca5fa2ceb68455adf8c3a283dfb39bb83c5382fbcd7e23ee1828a95b5d3c984673a5f31f221a14fd51e5282a05a3792580e2f38514d9c95a20258299523ab0e7500c918d22051b61c4d391b394380d77264ff68e23d39b03e225a3dc801e67c144ee842f4dadd92cc4f248de1bb7a9b8a6d7bd71c75f430cd76951f9af6d881e44570f01d0fed9fb5bb96f76fc1eb88f4d5fdcc326ab258e98e7b8cf50e2344f1ae180a0ea926d7ffa29029928e7309a54cc84aa26a89ad0719bd29f77a84228bacfd540dca83928a56c3cd900544b37044f302630077a5a7358e1a6ea6a79b6626b94ffd81c15849b2a18c281bc191f22a8cb04c04f285d29098c6a40d84ada527d6f984b198c5e5c1d9cc40d37bc080057676b784f4da9c8b0a45c9222e2d2c8836dfcd53cdd9582d1d499d35eb6eb289d3f12252953809a91cc273349411e51907405c88b8913d8e385078106b808a1280b868095a1cc5e07dff7c1c46871335aec1c1e9be562e4d959cc0687dd6232587c1698ff299f7be9410d8bf834ad8f99bea3d584e17cf6ef97bffd9ef21793595584698af533f6077a264be88195bd4a1e43a660013a763e6dcb95acd2db384413fdad93f8b47b6d03a3bed994f40df71416e4600c729eff4103d38b37247c141d0347472113189e6242c5cb4ec1d4a68da7c6abdbd17ae7dc4602f68d6868ce6758b90454218fc5e61646a3b2f7d257be009bbe3f18d361d2f2001b709111019f8a79f92bb2dcbe904ba4fe8abbb27f252d4b74fd9e79eb5dfadea924267537ae9b0f26b7832c3f6351a3924b31f8c79686da6d7de7b13c63ec4aac2d55141aef6eb5d66dfc58d81d55325be49d49247699267b87728780293ee2bc20c12d6a01c80d4eb6a3c0ede0ba771fec9a22cd60d73c26be1f3e7f61b4c61d7dcceb7fba2727acc726ad0840b3a1268068b3734bf7ae54db4b3e40c6000bab05a5ef002b1f1284c6350d6075d4f1e8e0b192507fef82e14e2ae250fdf8bd5b6421854d2cdb5cd145e487405d55e5e022e44fea9b8079c58d034d46200fc7a0e29d8678204b08ea016b6f28790bb247873017fe83c88debdca1727ecdf8cf804aca12fb9029df51a4100a64dfcf284978238c96c8439d4980a540503992481bbd0096a092cb648f9c6dc493ef0d381b96e6b80dba4c48ac21d80603fb912654576ecf405c5f12fbbd3c55e9a636b78e58552fb2ca83b9cdbed91882609b4b7f69f185f344de37f2ae614232afe848cb33976e66c9178a20088c54b3bec69840c711950ad2d2073313bcb7e72eeb567f9d1218cc6136f41ba15d91aedbc6a87e0bea6d05cb3f257f2f7c3798b02edbca79d5f5568521682b22c540b29cfd93d8cdc0ac5f8385125fc84972b1afaa7e60671680d54d4dd6bd312c4640c104b488137dbd5e50492961ee3653896c262fd99f94653aa97b050a07ea30a4cbc291983c4bc4974497a63cf7bb4c294812c69206dcbc7ff65c1bdf0a9508177c85f10aee3e5ffb95a7560d18a27ad9d9eebe1990452f2d1ca126a281e55db6d2349fd615f19ec1620d53cbf87c0af5f57729ee95a0923c6b109be9061be4d9bfee05175403028302f4649b6fcd8ac284e0e792bcaeeca7de41bab46f2367084d95007ac243ad25e1be4d5cad7f68ae20b354759f745f6da855060d00d26ccc9efd6d95498e59caacdc725cf533cfdb531f8f6b0a5c8e96a6e118c7995f43c4ea18d41fa7a298c8dd8a2ff01c0f31d2ef32bf3911c5c5522cb80fa2c266bebd2e22c580419228346e3e425f831c60ac9e8b8537f30fe2b5653e0309e9bcd8075c3ec12cb2829a7edfd2d6e3104563903ab60df05b1db8c037449d93c5fbf27d36c0c3d8c2b9510bf89df6680e332a23146431f42b01b1b039b9c0713c89980d28809dec40dec9ee39742aceec481fc5eb52798880bba6afd36eaafd24732afd1d8aafc324ccdf00aeed402044592156a9d712f03d4379e3a8b31a11a38f2647eb9bd16ae7f8d8592703ebcfe1f93142500fbcc85e6e2634e702fe5b6007e7ae554dd88f83af8fb6041ae8b20a681bc9f4a9db78f1ad04ccf60bdc27f83adeaa476cb90d41c842f114ab3708e94ed6450b593a7c0d817739ccdbb5d37282cbc4b3608b66fbb4c0d9e7b2e4106d729cefb4b64a89efba27bacda1df09aa6593ab7034ad06c1382a406ed802c2e021e180642a0719a26c609d9bb42d5998b8259a0511faa52fd37af9dcd93ae2ba2c22105bc5bf2ce2c2889b7d4f19a9e2bd6e8567564f4ba0cbd237665e8ba90606fc9786365918ff863d3962454c51afa9220874f9674c59877bed9b087469c0175dc249160730170db0e6a732762a547870bb4578617f1ef2db224e0ede99ea226c6a8036e8d66264143f35ebfa92a4bfd0af88b08d2f7638b0d5ca7174fa64b929999e93c34e4359b0319fc16414969256c1edb57010abc671e3f19a38e6b56aa0c7265a76022b8eb8ebeaec5f04b4b67aded448a0a69f80ce0db9cc59726983184f413bbb94ea9eeaea89c069281dbd874a83b2289430f7f79f582c0aa8636909d05f0d3e38cbe7bb791e99bf793e80d379229c838dda22cc6d4842adcf9dee7b0dd58f786dadc1338e3cd8da45ab5ad9f4af96c7746a5ee90f4319408a7be38325ba9693780dceb569a39c65d6b8c994b2d5f11a83550edcdc129cd9f75431802295a8da43b29067bd6474bb22d65fa65653802834024c362b3a4ca42516ecb149c08e2869bd75ad808f6b24ce2b6ee1da90dfcd2da22f7073844e8620e1f93fcf465a8b9dab1aaac568cdd41241a004253a2cef8fa69ff0f2d7cd0238e9dd1c99f8dd74c2b2fd578f722145bf1507f44bfca596c0620396f42ab80432b0d8de3835948a1588765c95a6c6f9cb908373e354ab3d4963ea36a82bf52220db4e9c50b0d1c345cd0ea067e89d739535b76ec9139d285f79fe6da1e804c889246e3d45859ff9ec33bff8834e7323390ecdee453178c11f42da916203af80a0ea956a232f017986ae36df462f74d13b278012bb70d4b9b46ee2e5b8608e5dd3fc49cab82cc89db1b1580d8bba3f6ecbf3fc1a1e2bd099c086f7351bdfb2a85560cd35c1153aba46ef27dd7e323c3209a85eed6f3e410d214193ff3e0a5f458992b01562a9cd236676868d62c9a1cae178d40f0493328a931dbacf46ad783986326eeb004add0595a827591cd969fa9247df0724e1ab1f6590d2c855177dc77a9165950ad21036a262e83608c6b13452ac19e965aacc2610bb1d90977d3f0701770044fe5833423d07ebe80f811e106c7eef284e2d336725fb566d241daebcaea2fc4cc5e56a96e9a29996d3d34f5a4071d1dac34d1ea712d07e91ba05f6fbeb3ae0e759bbe5e9847e40a7ef44011795efadda38c61f43f90e2b77f60308fa6cf89dc41808604d6fce7c81c3b3838ec1a2a202b156317c1529af15ca2f3031b03b5338298181346391ab941002e0c63488283ec323a778c1f0b97fdba022af40784e62949e66fa6eba1b0c0cd0d5ecdc7ac2bfa64bd60f5fc2e649e5e4410f910832654b1708dfa210018bb42d263bfa8cedab338a7e2d8b5ead0a2d4b1ee75632bef89bb5a4a64a307cbddcfff2b121256f9f9044e4b4e04c2bcf862f97a563d927f860dbd91accb40c6b8503fc21d5f1e806f7be2c8abf4b8bd5aff0dfcd2d59f995de78ffebddacfb0767b2b74a64e85af5c994ea1b8da6a5f3b25ecb02c9a8d02cb43b11e9f3edf3fe2d1f29e45a5e1db692adf02c4313099786647f86e663514ae2d7b8d564af1d6fcc4649ce0864a8d604f53ceae9fd097d404bd2cacb0db28df304dbaccae3259a0d8834db9f99e1e6103fa6a530aca3a29d334a57514072151d62af063873fa0a73c5177f73d4439c1c59181895f85d8da8a9885bfd0359a557b8bb8c121c98173a16b2eb0ab1c20fc33ac61c90e6a111295d913dd1a51045d8916bbc362dc4215802a3185607da0e6e91a6dcc0c13b71244b78cc426562ad845e76b4e8cca9f2d444193826ca2cab8dff70e85a059ba6e4dbdff2fddc30d4fee5a458c5c5f151e8389be8ecbeb8b2a5e25f46098989550bf0b1c8132592567366f27db34e6a11dce68fabb0324bce624e054dec0a144101c24f6b17d1a95d347fce8379fbc493e957c8443cd0e9b1cc8e28e44b1b2f3ae793837daee4064ff13b4a30299f5ae54d26e9e9385df93f3bafe548befb5457d129d4d1873f216656886b74c73cc52a76a4f238a83290f7c329578e80bbfb4d7f19135c1f97eda27b46fa1ca02340e0b3443f44c25a500e89ceb49cc0236576fb39f397223b9061f731d9d39b40e0b4e4e5123301439e589432c263c72163c841edaea4a1d74d74466949fa99764811448ebcd1f352836bc14e657480837f139234482d6c51abca9632365a532dcacb0b5749f7734944dc0c7a850caf3541744364e1ae2a810b092ef9fe87c1463dbcc331b6a4bc01233f5d90747d272e0fa3c16e92f466c3e73d78ecd344a979f131932eff363d1f741a17bdc9b98adbd14da94dd4e6f2a5782863da58d8833ee29ef3ef038899aec8b6a3f11e45363c5263888a465a145fd05881622586f40ee78b084808307c3218537f70b66a98b3f16875cb2262bbacf8e15359202fb49fd1f8a060fba0b608cbd7384a7a1f143d01542bee6955579f4c0d18e995b3f69b0d1240c6859d0e3d054e87623836d6d0f3997c4bb331267317832ad8479d8d1461c8f1bcaba5ae0f3d2950cbb706a70467ecb422099f33ab378f9c504b968f3fba52851cced9a865a7ce99a0c3e8d4198663162b165780a0107551cacfe000e03d427c6a73763f035f2b131cb49885f5638ad27940223bab57b2861755444356e77af13ab2b700394dea5c41406da03807006c641666413d84bc4246e4c350d15b367da40ab1e4f0d1285188cc826c47a68a179b6e1cfb388b3d85945291b6b829f4272b476dec4e8ca7957de74a10b9cbc9a0d8215ab10ede8931664f45a539967ce933f5022cbadbdaa1e320acadcb0109d34268bfca9c673acfad1c84bb36989be690f89b8066266a23930034e5e2d036861f3de28cf04c80a1b8e351e184026eea735961c946d3aed5ae82e73f0ba213ea162b88dd241b7c7497494b44646b2d90e5244e34d3960b7584238a56204c72bf2f299a928ad6752cf93c778b8d4a054611d2cbbb66569458ed8f6586b5e002f552299c86151ea6de8a06a1d4eec0086095b76216628e1fe409756ec7da143321cc093e531747f8488aee32903d919f303350aff931f9d293d0ef804db714404aa475d518e6a0f54240311730eef3cec07117827c81371f39f3a86f695ffb1735fb2838202f1060b5f3fa629a0cdb8b1f2ff2b16f21b6d0d947683d713b63a680536bab671a99375432422a19568caad2563fa7331ef226547e43834692c9a515d214a32c8e91b8c083c44ffab03ed03c5172badd8b641c68e2e62182adb705bf1b2125d0031906a0d2d0ecdb8481e4418671471f42c852d889f38b3d8c24ab006cec27ef9db052c1cd741331d186720e5f1ce14143a6d63563ebef5a87e8c6f21c23a11d1b4cdb7e7aaa8f41949ff04c256c59823606c9484bbf372f44309fb648ab5a502f3fd9b11ae9e991a0344ad4968dec3a0a393476d862f08fa045030b399688dd642cd277f70d122c52492be37f39fd6a085796f42292ac7c88688949d36b423f0c45dfb74f8a6dd606f6fb3a6dc3ebe75e6587cc0f36b8f3714cc4d14af1497f5fdd19a3067cfb2df50fd3b56dd10e87b507bf3024e41c3cd6743ee1b8cfa4c38ed11764898176e8db01dc9d452c4af034b9bd90858fa2872373692fb200a4425c57be39d9d44ba4930805bf19eb17ae453579436e47847a2c648c818cf13ad9771683430f09efc19c268a9928335c90800c343121f7a7964b06c9401d8f7fae8541356fdb77a4c866f8c341a521d9c3df4cc1d7ad7fd9243121e1935837f0c3d303d8f6f89b2021ea44c5343ec814725c0057d43f4ea061587d3d903f03cd564a1ec103c55dcab409771a58186fb0d4b75e8d2ddb662b856a391d86c54d57612336c5b81d613887272407b6cb8d613210dbb216b7934b70a6d1b7a28b519cf97492533e56986f4358a66447df57590b341e89ee10b83b0e233d99ffc3fcabd84a6aa44653714191c07edb9302d78377e4c622f8bf48be770130e6cbd04d2b25a6c409586d4009cabc11c24c20106e657a185a0a1bbc067d8751b599a8c8830db674a50df566cc014db224b21243a3627970406c2653b0c42920e9893d5a8af7d89258358395eb54e9cfc223b27ab6bfd460473fde39aaed4dd1055e550bde84019a10656a592ebc09dcc453f77ad9ec625543d126bf91190afd4ff21bb27b216ab5ae7d75ae4ef250ab262fb8ccc5ca579a03914530528c9a76fb66bc41e56c0b8d868f0b58571f532c2512efc0906d9491135b5bed1ef0f11579b1a3267157160b687b4533ad8ad5ee1ff70beb867b4f99310d7d60e75c6233312afc8ee6f9ad796cc9ab53a1d40e763316833e56adbc8892940ba37799e3690741791a1c85074885aeac96ef06b1e7f0542eaa85bcbac57e3a7c568cb4980d5bd2f15f2105823fe360e1d42e302918c483113741a9af27b8be5670fea1321d6d29001307b66429f56f81ff0ac03afe1860b4f1c395c16ce2a4eaced98a233d953a7d7d30ab3b3583022640eb2f9882064bd99a46daa060af209b06e38ef3632530d0eec4050487788206fa1ab51abc97c517706e70895dcb028aec413fee8b9298776c160d063a3ad64e64f15f836deccdc6818a69745e05c9063a0c568fdeec344036ee0cb41d215f7ef8c225094b5bfea26a554c3b307f883722058e74c26047ac313ab05a619f733c4ebde53618f7e97a333089a2cea541943a805b60562b4c1949197e92a22d8aa52f44488f8b02e10c37ebc2043835f46b5cb01db934ce7e7222d8af5c3d9f97063a47792c8f4760d6bb87ea6444db2c06a979176c805e2cf4eaed781b9cb91bc01f468aacf1ae35fc3720cdc35ddbe32fed36e974c7e2ffd350ac3b1b56d564c9151cc310f7fb84078e8ad627c452c5f237f213914accb7eac2e5f28616a0f77dcf524cfca415b30498e582bf76dd67b13e932b4084547c3969b3503f4ad85904cbf6ccef3b5ab30733c9daba1bf38d3b7a97a6990cd699e1147ac5b273c9a8cf2716232e480e2e6fafd0c80b61af16b492eab4f57c8fa2ba9ddf9b07d7eb9c9e087fdd3c30975d1072aaefd5eb69ae962d3e80eecae0dd2d7511380912f26ad28798eebd4c568c2e65f498ffc395768f842aa8ad0fced5670113e0cd76001316302527eb52a5c6d1d59691a998081f3308aea31ccb0f66a6f5343d869dad1163aa6cbd306a8f87e4e27a00786478f8878371e503ed79b14b0e992cd0484a923630a5e6736fe0061327b3fd98c11c8736142fd836c2026421229c6bb8d3b16b53b648c5efc9634bc72303bff2de9c17da25a9347d3e773a04e9f74781117d83692166473469fcfc02230843cd00512f6c0b3f941e6eeb6aa242fdd2422ebaf310bc12f663a5152bf66049de3391fb195555deae16b91e4e7dcd3a8a4ef23182c53c54462f2e2238f3190437859883410fde92a178c34941eb0bbe212b5311e32265ed8116150bde31f7ec9922e97e6bff31f7579a05c8dc7d8104a1959978481615b226a9e20db3c05dcae121adda89fbbaf380461f2d062c306495ed935d99dfa34ea3ee140d1cbd68d7a4137ea8feaf254cda99989e8ec9da24873fde4e8555b24d0d3a430b6f53bb30796f7bebaa76378832a205d359e3ecfb4ee4ea9812f0ac720b245623e804c36cdf4beace478751afefc6344a877a298c8ca0e80f5bc0626005215e3f3c18b9146b15527435a9f583f0dd3602ae5d02c93a74aac694ae354105153444d5d0127c0c0f90124d98de154e46d1406903507b775993fcb110254f9c4614563a18b951406fcf338e00689bbf1470bf847b14e9cba0a2b2ceda54223af9185c41de2cd88542dcbe2e5e31449a8260cfb0303834dc515b35045a653ec700c89cc7861ad0339912a7372ac9dadb3a42466e6f90b8af6acbab8a86f46417b6db454f255555220461611a412d3ffbb877d717edd73415a6c3f929f1656bb06bc034a48838389e15a8007f449e1c4d89843be0c92af2d2f80ec8d878578d78501002641a3a3a69e34916b62b58d44c059306a54079fac0f32563256e94ff1feed84e642cb1cc147c18dd29a2825c940f2abdc9674d968602caf62d808a7bd0f666160f3e0b7513d3cc16f668d0b17d1f619ec48bdcc73b7e3932b2072d50ccb305c5ee1f29009462f23560bea58433366d05111e6039880ef872af63d98ef88b4f568a8ffb25f2c0b0d0ab9618f926307a10d66cae0fc6779cd6d2cb8b81ab671b36f4a50609305330f209205bd25c7ca8f7d4abb6df51350e9b3094d0a4d7ef8d0ed5c39740b2023cc46a1bd21d23fd5b92b1d9f8bcec3522eb22ed41e5cf7eb7d13e1da424745369a576e8b7fe82863c96ada7421fcb59afaac1f845744e4e8bdf5bc12276ec76cf86159f081f6c9f2278b3efc3aa77ead96a3661a627cff12a6e3f264942907ef3f497d9b9b6fe85ee2790b898ac15f98b1661824862ee67cb928f98a936ba612c3c81e5f829ac10756abfac3ae7dba584a181adddc866d1b5346888201b820dafdd0af621f4a6ac8480d470681076bba50f1e327c8776432ca3e5d6c42179d27abd5073e6aa7e525a5e4492ff6ba709c5a5e76023e5f94762ae10bb2b8fce0f3a801ebab43dd8e122410c9562b838d788fffa0e77f9c83f0928132a503680148753f05f047baa3669dbd7d30c5c1e08b2b2d376ec7df7fbeb9da764736f511c100bb85e2234ec039aea81c3f7d0d3d94508cfbbd63547f21a407161b1459cdb0d42c3de212c886d3222148c709887f3e99dd9f7064e72ddf621bebfa9161064e90b9ebdec699b5684e45a641d08e453b9baa6d0a69b79c1668d30a70f2a4ab584bfe6109d290eaf5735dd1a8f265861954efad4e47eff783352a7711460683bcc8c8c7d8f9346884919824e4dc6b57d68c58d6e1ee182f1dd8626b4799817b6dd18425c72fa04c60e1a7730962e449de074e5e78888540293378187590aa77479b948667b2c68168b258096f947c0d0ee0278ca15afc1f2a059928a7ff34d171945864e7a6f5e7317e253be3c28ba7fde08e3981858060242082e1caf91dbfc7d022d5de39ffa7101424fc48f20d8e962c31623ec54ec54f02502f89ecc527fe6274832602b9b403ffe24b75999647564763c2a644859407ad0269a835b2814e804a8d76245259385e100afd8321e272bf134bfabb1da606df98e1c695f8f72ae521925c9a5fcaf4039c8b3f63dcb82ae3352aebf7ac52bbedcefe9b8c21be3a439a113110199989468b86d366f2f90434317a245f9b4615ca5878c73a8e190f7a56c6e7989a34c1c20ff4f8fbaa210878c446ce684a703ae926a03f39c0fd4712aa71aa2cb4414833460d9e40dc9f7725011e071d49c5c4dd5df81b0c81e84c27a6b05c4fc5488f60bd89e80d8e85c0c6042bc8e4e45aeb45093aacecb50ca2c406557ea0c6470c2948bd857cd29b1c0a97d6f7a631c9c331921383f461426fb48d101f10a78bed6ab88859f6007744d1c163d99306b06ba9a2434d461589671a9534d5715160c20857e235addbc113247324f314e74f6eb52954815f1356cbdb9426dcd66a3f04642c325110d814bd6302f462971d7c883b665fe01e99e24ae5cdf9e6fdf253652ecbbd19b2c26a4f8bb19c60c6b108ae663f89a1bbbef98f6504d47c1cf4554d543a813a1ecdb86ff686c2b61f08abca68eed858a913cfefa9835395a23d5da62a1679dfd1c198af4415aabed638f82c62bbb8a0bed579a34bfd9d7e320269bf4cced496baab420da2ac2312793126911dc196d0c99b700ee2acc6827a84d010ef8eb2656542727ffd4ceee548b71200520998cd436c3c5da8bac3cb5168750982930198ad7ccf71737ac1735e3b8e81f44985deccaade5d7f09acab927abf06e132731cac1db18364a5a2b687bbaac518824de431e61f26c56056631b8521144fc9d96a3e70f9433549a0c1f1224292456c0ca29e4032f738876558302d42bde9c4c3b9fd296be36e943989404d80414068402dfc24161d12d8a0d567b5ff4d1dafe1265d7afbf6d439bbdf9ad458350febf08a5715bab33895cd12de4311a044f5e89682d052b250354c1e286f14479cd36857a5613a193e67006eb2a3e42a6c2855d11c84bf8c3a7637655440d7a20852570800dea26e66e8ca4f684089e3ae029f195b06a2afbdc46599288929239dfb92deeb5b673d63869f77c8ba9e4a9341999c868cc6a2a7b12768bc7fc48605e54e5d98ddbeac70bdb225d1d513268f39f06103b3ca2f6443b2c25a75c2b628761ae3a0aa03dbe241b45c3d519888c14b4b52ae9fad0021cb2e314f7c4ee38a50fc12dade3781ec900128325daf51396e3941de422dc2d1e5134865d4d11f3ffeb3b525453c083207d178e437fc2800b0c24b1cc7497765acae82509f4538842ec56390c07a454715a1f1c5068b2b660926aaf94830bd3dc6a67cdedd61ae8db10013e518fdb99fd1a25ba230b05ff2815728558deeb726d9fce9916066e690bfe48eb75aeb1b635037324924b27bd2a0803f5164f707bf631a5b0025b4935e0b981b6d7c48137687a490b5528e97d0af8952abdec34bada76649eca887fd4e0a4b593b881901d4c8fddcf51338738b91db0c219c643f21de0924a30e2cb18ed67483e42bb41c731728312c589415e6b1274a0c06eaaf18d8ae01235a02782e019bd17c9989e24196fe3bf5a9310f204d0dcd5fa930d44fb45a2b0ccee4450d536b144ac4796ff16aaeb2a247db6fea3e6abad441b363cf4521ed852368d4fa1a2c638d81441211251c7fd15100f67759edffba7ef115d535839eb5a355956d159ce258a3616c2da8ba42ec0fabb4ee408cad172a2190ca54402a0f740c47e8a7e4172f1446012bdfdd9c3f16188673a48f2a09e42c98967c26ff2f0db44a8cd5240c14809dd0eb6c42a4aae6310e1dc596bae6cdfaa16718a3b8ac5e7a19da13cda9eee6d480a356da60902dcfb744aca3dd49ba8805122ddd154af22e3829fc4ec934aeeb5c2e63c5b35c6be9bca01bd1c19fff51d2e575353af5fa5f7ec6fcaf11db9db2aca89b4d717bd8291a86400fe4deeb05ca754fb8cddd815413f1f0bebe2097aac69bd7cae30aa9242953594d789722d5e558585b6c930388446cbb89b711ebf879155a8b16c59a3c3c1c6d3e810097cc83dafbaff490839f21b7e782d7991c9e5f1eb03a4d881c65ea60137bf29cb11f4e050a6b1d0089b247cac05b173b1908b290076c10856db99c043178480ac4c32617124166bc03a1b73f46277c31bf1cea0a36734295e5fd43137a165812eb29925c945b26e931685b8f79b92c23a47356ea607ff7edda0b82d969183601787934ac2c1f4a13076e99bf6326976be84798ea3ab88e3060f99e38b7617a185e2b44d2a0499590a816eaafb34b511e354b668abe3c4d216df8997d406cdf81a2c2962a19de1b7bfb0ff0c6dc44f517856d6bc76631e79618ebc4d447b065d40d6391d5f04eeab18d3b4bbda227731ce71eadf1615c98eb610ad96113cadd0cad085ab33b89f27a52bbde9f76b02a53b5df55fdd92adbcd7e11adfaff0c56bc5c7aa0fb55034713f1f0a79791010f61b5a887cb37483bb4b14accffe08136f90f7647fd709a7c3a4acc75183438e1a99401907cb9a561ddc8d8e6c29cc22a64ad8ddac801926cc661605b61b1310fdf1c76f0dc05a90a016dd7ea42d16c043fb81d9f596349c788e5a637212e45c916020587b927cb364cceba73c652f0284527b0ba8658e030dec41d0adae82b11c75514c81cf2258d7d336deda7d73c21d65abad1874a9fb4226251977de53296f660dab44aa3a33b1fd5664bee34c78a5858711e921d5c7e685b15b1489801245a16d4d8629909931124b84b83e199f69a22d02d6d58d1f17d8df417b5d8248c21010b837b4fc7318bcfe9ba390eb4237491a010d6fcefbbb9b627fc5231039d0904fe8463ee735a06d4d9eb26ba13a6efd513c45e37fb57bc9da4d29253279467e6c67135b035f64572605d0eda9d08b35ba923efce7d3beba08f5495ba664c380ae55c784e982a6f47c5a913e8c30c8abb9c2f89532f7fa525fa0905ee375ebcfc588afc5fbe3c237fa9d64bbc35e76cb7f5bb68681d171206818374974f453ecf0d5f994986a29b72cb7a53e68b7eb5a63e0d001684a0b126ffaca13e3b80e63fb4a40f221e646b84059bca4d6bed116f65884a3cc3158ba2f3122c4dd82a4e8e4c9aa45a3753fea01e0e54f8cb93cd04ba78f6457b817bba6b8342c6bfde24f3859e22bbf0492145e2bf094551fe590a03acf36942ff4f425554749ab802ec96a7a7394aec2c15917abee56196c1a6edacc58252a8826901a0ceef8d72b13de6664a1c48d9cc701030d731da131d88f8aa5853ce9f063370f837313f8d84a16b25ff04b965d621bb41abec4e87f74ec8e27677acb1ae9f4778f1b66a532545c1a99cf3ef9a690b58a2f6289f528f34b821a0e565a5a7c1752d2c0173b612bb54bbab05ba733b4f886fdcc7881562a847f09a27357a4c09da3000d162a48f4af15b2b323b545aed5df16cc0cfbd5f69b5e01c8d2506479771dcca203e7702ae6c2dd9d307621438266da5fc3a2c10f535171d528eae93ba42a114247ccc59ad173cd12fef14bbf6deb237c07bde39eb45bed54c44b36c3c66c8857c212088d5d0384e6c18fb86e716c264a8bdfea541ddb04039a24098eb469c738b48cccb723059bb29e873c9730585fdd3df68be3c14dfd9f5db18c52001787ac9742149d31985f435ea558507e4e931d4712f5b46a0ac78fdc93767b996cd4996bb4690af21873eac4284b4fbb463273cf942fe23d15599bf289a044adc35929419208af8637e3af752e1c9b3d1a5bfb948df2bf6b992ade8e932a8cb38913825d549d749fbe5a28b49e4eeed27517868150d153da59f6cdf34288c843749fd64bb8c9c9b61b0c03a1fb0e60f3f44c553f876111c03058adb974c617d8034d506103dd50f644f72f2805aeef0dc6f68af61fa892ee85828bb52c9b37bcbbaa6a457435429148ca40cf4e428f985486e1642efe8d68c210ce20e786ffad0518724d978b00999adfc162beb5bd060c622d9e6fdfb0218aa24b309f20f9739d1dc54fc3bb5e55bf3216f567ca5133422d81c4e967af6bd670a4feba5e8a538c2911654cf49426d0b07a92ebf13c0b0a76978b717cde0d13a75fdabf80f5f5abb61682d83260e24ea4eb63647136c484af383bf0d9adb67501f580aeee1bbd4b8f761f4f9c7e33b7f7bba22a683746e8960db1dd8df2380590d840728b1c58920556112fbe52141d72de69e49418dbe7be3f341cc962448eededff2a29c1f6f5ef690fd97ea94ae6c063fec4f8dc027506cc26df9da4af3c9b65721d85f8784057e76564bd2acbff03fd0b11c9504a71047041e6592cdc0038565d210c701770c900a9ffeccabd51d59c2db9581c75825342f5e9ac8a41e5d5dcfe9e0eaf02e2b427a95050b2ec7be4c16b9f14b6a22abfd377de2f7698bc3bec523c5c1e10427ca1f0914863be76cf932ecb665666e1a5df8846c84682d8a61aca942e1cafeda7ea330e162e8869a64569b6f4f1c0ad6893629810917385122673b3d22fa188fab59dd9622b489ed7ca7dd89b09132f4f03955ee9a1547ecdfa76b46fc05888f43bd5ca05226033355cb361b8ce936e37e4ac660770eddfe47795cd6ca771f96d9694e928a8e9563b3b1a32b080322095ae3fe9bc59b4b48ba5f0bba23aa52fa20a2e901cadf961eab2b5566b181558fce9415682396d4f4817413584763cbfa453621d2e43d4facad254416a2ed05862ee665a9184cc9a622cd37a18fc56bf6367e4db55f91bb65ce3b232946125996392e266ce8cd05036482b7ae73f35eef2abd7bc7c200b0f3633934908e4c311a898c24c9b6f0050816cbc6d3236e3e0ec5a25247c9e52766c7af7a39d170ad03e40752e534cfb3e2834b36a5e44b10f3d2889fdf5e52d22341a8161fb4bb2cca9dbce0e3a0025836042396e500aaf37c286710b4ca800447438d68b4061dc4484777a86b0af317318af4b53c563fa51ccc2e96a5202cbe875b50346c971220b297cc3fe30223226c05d1d2e008bc543452734feb5dc6d90416374bc5a8118c40f5a4b85948625b3713f5cc40d331d261e6a80f1b13ca2a8c626cf4ad76267c38872f16da5d45bda3ec20e1cb50fb462da0df0278004820880deb5224e8c5229785be4b5c37c4d9da9edbcbb1bcc7fbf483a6da76b6c58c21f3956cf1af677eca86d6b4a652035286000fc1f986acdc0ea61ac29737e5c03a455a98b8a6c0e81ee094986e5b9bb5228ee700148c8e985951b11b67edd9ee2ddeb93a968b398973a802f34db461ff91ae5e270fa9b1a95c3af30af79d21fbccf72263efa9f66a4f1c8736de8dfba69e1986b64097bfb3da141d91f6bc123c0d8b6ac0e4745bcc5e4ff2c9f3199ce02a537ef01b63cbc8ec150f5734f9a6cfeca13769fb66702bdf06d73838060bd905b2dd3a3e567187412555818dd79902901d08559b4220cd5b552c6690376d85862b8421a9f5a93d61300d49de10f06e5aedfceec5aaf34a6053b2964c0a0e0139b9cd488a1f73b7ffc7b0405510f8de06926afe2e734368f536256502c9b07b3232c0b3f23ad4427936202730709bce6a186512ab39d9473ca17d52011f3829390296e18e95505f968730c7cbb7df05fe9e937d6f247f45b8a3df253d88a9c6e5d1a09ae8ba1674b79b291075ac509c03452010f941fb266f7e62fd527c79c9ecfdc661da1c4473e058a4be2a904c244507c670748bc8a4b64234193b86e54815d9bdb1c7591c298fa10a875dedfb1e026c1295831878773a2e8b894640aa36117e6bed1727aef225f469160a5880425716189480c72c2a95d6623a81268337716b4010ced4af5ede11e48a31d8968f14505561097d0bb11bda2065fb90aa8cf36c6e024ac46410b3fcd54937d4741ce878a337257e7ceeb3567cf11f8cd082256361532f6696cd7081be18d6844c78dd0bf9899c740afec3209dc09ec9e4f0fa9b0e0d46735254a5a2092aa2b1df65b31e2c9040b0645f8a0beb93c0462659f409f1b3106c80bc8e84179467ef838c7562081e2c9a5a887ee755c13fe2a4e748ee02f3dbc7f2c97125722eb4d1912e3994930a0bfaad985d03a329812e97fb5a9594c71a1b451f61207cacdc78537ef75a8e956ceb45d60de2d98edfa314b7485a3950c92a998b43e7b521f7af4c67c8150f4c4c88074456deee0d55ee9fe3d7aff1b4280f2ac344583d15cb29f17dfb39c08986c22f289835e2d397cd1b0ea4c74d543e391045c56beb9489cefb1a0659433e8d6272f11a5a62debba883ed91285ac45f1893fd9d776d7b8fdc6832766d5f9161e264b4f3294eaee74d3adb22a84342d0feb6cd799acff0f024e20fc151b602ca4f7f61c7457ca002513ffe696d711d8f29d6f9f5b0fd357ecaf2ee9dc4f7d139acc2e9d50c611b292361a3a59f560319adc3880f149bc0bb978675a378c2eba4ddd9b8da6b06ccd36bdaa15a9df6912fa02eb5e26ab097183ef5832b5c4881d614f7a565cb21ef904d7782ae2ce514d7ecf3d941fc8cbc2c32ad073e0bf5e8d3f6890b68dd3fa574862ff28ba859819517b76c775540027ac151ab7e06572c05e4a252562c3956a121d8ff9ec927786144e3ff89e17f36c13e529dec6a8caaa327eb1ad8f5f85d362185e35088964924641e9f7215d5fc1e48205656cc5004a96e460a0c249c671a885ffd403a5bde07de0f3a7bf33827848a6c4041d82d908f31f0e5138b8a43044469b40d8fa7a934229791795c2bd6d6c554ba1abe516dbeced67f8c36af6f28dcaf0fb721d1722e2ca545df672211922fdd59484bf1a32f5a5892b1fb4a1a04c920aa585d169e8fe172557cf30e085c33bf1e7cd79a88b1b4805ac5f092c66fada64c7c6d295f6ac12c8e23a49144dca5d11b0bcc10e11d4ef900a64ffe03c4118e1ebe73ac958618bb09dde13e8403388428613cbd0044b6cbd843a68277ed3f660f36d27bdda2e200fa55c4edc742325d7f1a58605e8fffa6021a8d008ea6752ab1e48ce6290a6e411b46e61daa32370841818308ca3e2bd6db030b0baa361134f633011fa5cc38070aa9d3447612cb6c2e29d9990aad2954a06961206deb7b5820eccb49ab810dee5f199243b8603bf878729f2de6e9e368d867e981649d692906e7a63ce03df67d5b93cdffaf75bd14e55674dc187b608d85a8dde6b237dbac5b564aef5713771acaa68ebbf5f1940fede5089e52d26bf0582358a675803601001f0a743f6ca6e908329dcc75ec000306d662db931cd948b031edd54db90117282f325a5434e0456a65b0b1fe01dace1009ab7421d4eea611a66b179fa61e5f2d3b66933a0f410aeb65fa3251b7f259e1e8603d36b6262a0aa92305e3d050d6e6393acdaf78a04d20c60fa13153501a7e139748074df20c944351e4612dae00c88b06051b9242a2edf6c9b377379c0a4f02d728222ea4b041587a97297aa26d845ca2679ea0c8e806d2033810047605829f50118a29fcf4816e46c7f53018c4f044dd5542d8a214a7a1971e05fab5bcd481e0b749d07d0cae60be4d22b3e4d315a6d33aec5859996fb4a014b1756e7e605925f24b602fc8718c9bf2fe22a9157da4476e388d9870c81ce843099bb9d4ba2357e1ebc00246a017f7f7e3141ef24e77b57db417ed2812d5ad0c81a7366c7cd5304f86978d3c79276442b492b740e3d7a5eed55a9a7028e5f8c801a6c36af4ee843dcf9956e54fe11baf1d1548b06d18edc22fabe762a329cc9e51faabf760f5585aa7115fd6d55a4263ad9458fba484232b4d9f0a513d222209021e30e73b38876814e88c03897c2b638e7927ac70b0077b29179483b95b8d463943dfad06d5ce899c704fb7cab61985aa2a2906cbfd0232372325195daf8c657c49f33493be2a4eed12cd916291f0ff2c4c47faae91b9d3edbde5357d5070f485268187a2618498b23a6c5f23214bca84db1d9f610427820b8810c9ab4004519be77d42e8c771aa51026b75e01c9f1aaa723c198f1f023088ac23f64506ce56dd51a6400c955ab475ab17c0d7eaba4aec082ce07d0c7aab6796e0dd892438520abfec56c0b97d0f3cf583c1398dd1af2b26b087fd94a9a9ffd31c0562aeacdc88f77a5a244b9a18a9b0097d10756c4935ea17ec2c6f5d4bd0fe96d84332bde6291a36db012483dde603ebedc47bbe6c0a226d4e3da35dd2484415e4f4da6d7ebbe05203ce36c8898d799fd7ae290f0db36d41490998ca6d77a675a7d93d22fb583dc6d3cd3123efda5b2b40975bad38f054337c71f73a2840a20ea5676ae5124e473843a0437d465e8f7f1a53d4549be80ea424bb782f7aaad98260a4c0a0a27f88b48a58abbc2e44dd9e8e08f716195fa6e1c12e4fda69595fa269657bb04903a2bf57d50ac5b56f6623d90cc8aacf3fd47e89415e025970dfb80fd9403693875fff212ac54b0ac4fe431474baae8e99f6a58eb8900dd3cc1e7a68149204e1d03fb8651c540c72c64f6f02de328692ddc6a2279b0b58519a7eebb7d0506d5d519f02d276a806f5c92b5949da37bec068a2d449b88b78c6e8454052543540afaf51f90eda25e5ba175a7b68de58b5fe1e2feafd67131a725ecce3114364d7e2185e85b73be09cfd7731e3f1f1747837f77dc7f32e871ab84bba7eb4caffbb5cbb1c9ffef9e3986f5d61f09a7d1329c31181e5c743500216b787c1bbaf2ee5cd090b1646ff5be6bc458d0e3ba671df6fe3ec168795e27b5c8c9624b907269184b6a7e19510f2eab7cbe8e872ca44e864b4e679c43784557c802bfe765af7379c55f38c2c0f1b2479ebf48464a1e8d1d983a9950a3acdbe837315a6099c3ab02afccccd3c70dc2ce07909acc6a3dfa6cbcece590237d87013d442b1e46797c41a24f2639ca3f72c19e6a4c6069e7644b5bf2128f6520a87e76d2a950cac1022f24ab1f9f7d1fb29ae7027281ffa42cfdb20c90e2f5e0bc37cf0b7dbfc5677f90b66ce31cb8fc6aed47b2fd9a2f30498b4ea71a055dd3c85dd33f8ac87a590492221852e737f71ab74f089fae190c41bc71133af805dab41925048f96f6d9bcf6616396a44e3de23508c9661916748de6dce7ba3d06a04319d4291691d7295508ec0a0b9a7c623f62652f0d323ea19285a6a397094b6c7248598565149eb8e4d997d2caeaac41de1e0aee209c2d1be644f648023770b80a04e572d2780f18a306e9567b70cd2337484502ebdcd7c08a3a4004b48870a675990a64822163b153e85647befe790c504e9895d1f3538db5abb147b7f85ac496c02d2c82180389946c1504a523fac20a9fee60ec9f5afc0de5480103c37e5be51bdb2dac8fdc9938e29f01d5225431f6f8dd69638279f7ea4d931f503483aac138ac289451c325ee20bef22bb0eceff05e3b4d1afcb7d0806c0cc3709e60700d29df49ce4b2d32f7568158a5a5b60b00b3767005230a16c0ea78d64c3da0923476b18ca99718486595291480e5259977b2ab63fd5a093339a1c5f410305fad4b3db5cfa14637de7545009df16ef416af4c301b3f6e04b732094933ddeb2576d8a094d94a44cc836085277d3ae203ae3cc096f3d94f173900a3f0638a820961de896727664c294256f3ec3d94a0bd08ce93d8dfc4c09442c8cab7d92948a80848f14f869afa23511da74a7d3a32c4a206eec0710e0a5ba5a66be2f76ca25bdfcdb881d9cb999695e1e8a2789c561e1fced26434d826388863c5993aea32972e87e134bf074e2cbc09a47196e223cefcae702d7cc7c03ed7c08649cdb5bec7d3df86ef4556a26b3323740ce64b0ba5a2c407ebc73b21116e8073a8674d8a323baba9d9ec621e0c25a53510a6264cd38e002efcd66b20f5596ce069208835757dc73c37e82b584e290e60fbfdb3867f9e3931cb0a2a09c91ce4db50e2f62989e3cb20ada0c16dbd1075501d3e9ab67989019052fb2ee34f95f6710259d05d16ab4e2ef34fb665b57ea202c8347250bc2d161fdb923f2d616334ceacbd573218e1d50fd2339c25d231813e9f126ec4f67140c1d67f072bae8ef227a74e40e8e044ada345521e89ae50ef52905f8d5d8ffa7ce46d77581df1b2b669adcbac9d905350cefe5c9bca004db794c956d391903209b2e7e07d1cb5c0b628e2087f1df77498c269bcd5a0974b8065a15738de848f7a79023395302a57842eb978cdb0d82bcd6430e3fea8aa7d216376ef4ccade37ccee147fe794fee98a25f85020e837968d9277f4a4cae001db8c09399ccc27b06deebf9f16377e899dc4b33e2b1f9dbf8189c2191986e4c0d2068ea68b3305b8add208e0eafb9d29dffda26e358e310e1140ee3b9c62d12def6cb89c0a2a3d32cc799cbc1257c61aa1196c7c03c999f3e26ebe61b209a08198800db913ef9e2bc0f8005240bb53fed73d46ff8a5e67a6c3d28fe22b6de72c22b59cb73b75f3836ebf7e2618cea63128b375e2cc0b724fc1d4af9246e95a7f4ccf4da25bbc80518191fb5ca6be699de2b2617ca77da9d8e273f2b701f1c2311d73a23073f0d93c2afd5cf5e9c840fe7d9049d63a5ac45f943b72b90ac954ab3372cf6f39217f143e2088cf09d5d83124b435bb48d8cfb620f38587fd11882086f295fe72013c221a51213d5cb8dae70cf9fc5376aaac8d476d78f82a5d909c7d111c53df8ea9c1011d0ab577467accba834ba04d79b47f4ec5c195841e7146150b9a3098c0b7b4a516adbfc50e7b042dcf93134060bf8d98a1dd246201173bbc800c3be0478750b2dd842d3d8ff4b3ca1d652aa451b2dcc30686d1605bb3cc77bd1c06f21697bcb03f8665af04ad84597078ed72c42a726120b09cbfa64affc052479d13d245a6795b1418d8a0ed52556b01f17caeedd2e2d9b7be0281544b9ecee4aa2305ca1075aa8eb1bb2ba6e87b5045ce8590a1ac4009df43186f0ac443f6ac6bedea09c18c1f63e2da8aea4a014eeb3b3fd6f548a4d8c64f9153efaea7229574a2615ae34ea0d79841e2fd9f07414c625ecb1ddcd42d4158112c6865dc6fd2b807272d87fa560ef54fadd34942475c6d010fb2f5f0607517241c03e692454a5176651a0c952c089b6d6f2621abed764c02231dbe6165e0c055c39167c5505f874a723d53f2c945ec06a898fa04167ff3c6eec9236405d4184b4bda012a753fcdb188b746775c86f39735342f03123b3b4ac31a9e18fb181df2083e0e73df1bf213f0682e9e28627a20497f4cd148d5aace3f82ecbf3f305d079ef0cb88f15e89533d7508e0b9e6413a907525dbec29bbea36a20f639344337c116bcfa3d42b0796b840714a5856b822a74f06c9c3fed39500c8082ff0039177bb4d4e7d8a75960da5210d82fb33e9539cd09c495569d5bd8b507430e2f6e074649a2620f0e010c7329f7a66605f20139eef0150caece07db1ae3ff20bfbb964ab4d42bea2ce0de404e0d78997b3dd5239f18119402f8df7fc8991bed64cab1328eea0e375aeb9831419c28bc835a7ea64727a58168889664b78c99cf267ed3487a6921a481ff4dc3f07ef5b0ab8c1d8febbadbbe5908e56e84af31b3ccb3271d13de6c7f050774d1a0385efa4dc4966cf63e79049dcbb7ad589f0d4b64b370509e836bcb3ae4c585ac8f61478ea97806c5193de6f4040ba085824f0ba2dc7d2f207712ad1861a32305ed1fca221dcccc2cd974dfba8d38dc0c29353ae1b5342bc4b42dda0c04d1c180fb3dfe5728dad470ad1f902195a953393e85655b6442d111fd361a6dc07db353613c2ec84a684ec840a9b7ce9fbe6c4c58551a5bd5c334f67b23e300fa578e5b9d9223b64396a04808be47fc15190b508ac8b54eccacb256ea3e492b6348c830956d23a5ee0554144927ba74f6f22f11986e61a103a829da4e7c4519d14dea09d7ca4c643158234db618cb10c5dec49b20bb535440ce51a118127165242d6172f32895e71ffa009092b98691a172b1349e8fae31151c59d9b97842bbb73428db189ec61d96de1f1bf200f9c5a02f24e03c088965fe46ce3637d15ef4d4edea56c1ddf35014bcafd6f5639051670960da04834c85771b21fd0bec7569bbb98be165fa7c48141b284f1ebef4561aa1efd46ae1ce95b9a8cd2dba912e8ba4c9077867ad916aa03dd23426226d4de72418eb7d2e6c61942c76e4fd45252fe43c869584f598419975cec81d6a1d3a1586474cf17ff5afda6324e59612ec4891162daa9f8062280d99bf688b2fe0062c0c83ffefc7041ebda35a37d072c04dda9e0829347fc6c37d9a7a79b55d4321a426fa29669dd923d20727350b065621313545b81b895b0c33c79668cc8d77ec00e2ae48f85bbdffef5927b33c6f15c0bb8d8f835810d156cd8c3a81537e0a8a8046e3ad56e681b80d20bbc6129647072518713dc2ebfba61ed9ad88075b374b088a09296b0357735761b9b77a25b706335dafd6e9f418afad82010c47d266358436ed7a50bf5c135e4bbc77249136be35b66899e7796c84394a14c29e6a3a4e31db922d8ad68589a931893123f3dd02d85a1b1eb5967384913d17736b5938c9844295d30e7d126a45daf7fe40e93f686267f7d123863eb31349ea524af20cf814dfa2ccd46da459ea4db0ec8a4cd7d187988f276d486848ae9016cdf419e989500092de9b78bd1cfcce0c4ee61c72fd3f8085c55836716bd8aa286fff1eac1ed519cbec9cae375f78e57bf6fe5e2c9e157598bdcd0ac0c5864cf6a36706032e3d02953665afd56d3ad55121963deb0e401830d5892bfc0419c545d982928043987764aa73feed73ab22060401b2bcbb4bd4bcdd41462efd48f389c43659cf0ecff1635fa164c073db57431293f8d790361118d524540a2b5f56e09c28fb12ff8532a2a56e4f5a4f4cfa677cd880b372abcb5b110efd0464a1ca3ae153731f2613cd80c0875a6245b61f35c77588d71e0d924bd961027e87582040249a00cf3482040262899bedc7e672bfa293676f64f5ff43e62877f646717733b8dd223d532910d5cd84ec1a338e6f1e64195dc83edb5bfea213f4bba0e6905de7bbffc743d654df1c9f306415dc4eb97782a64e49067e1ad22165cac46daf14aff3a4a01612f527030b8c06b0f74e203e12bfc6f73f53e8ec5f6d53b0fb8806c1d70e1506e7949c0dd60a188e1ee2b681f4a536b108485bd5c39b27ef9d6ea0f4426ee63c38a489c5adbec274878e55e33489108e31dedde1ad90a4134b77734f363b42746b8be05202416f17387335fd5c25c4f60a72c229c1d4d6fe9ffac33504d49c302369d8bd83afe7a6b2735136f076125e09c5d2a42b91028fa0688b90a9b27c7d72853da50c149a0f72f165b8274c30a32de8635d0bc8b82e2c125518599d2c670f8cff21c8720a5e68efe3a13d6a12f62b97fe000ff6fbd2daa5ee79df426ebee379efbf718a5e2c4f9481c0f42d9cf6d28284c75c50388691eb8c4831cdf1cdf2eb09f98aa3a8b9db8492959156b1bce5a4e848082a0c011ce69f4f9462a10a01df69a5988dac8d1f6273c8f86dfe8c74a1448e3dfde015c5e7c05c8de487b18bb0b83035fd4c38b7f85c966e4ed97dc090673c657b4e84f89bef4bc703d2dd1b5cff4a58beb5ee577547d6da46ea087490829c2a0e89775dd2f5a220beb9603b5ccbe5732c614aa185d624558f657c518141061a9f409a9181dd477ed19b9ecc2244c489929345de6b5c050379b07e8bc669e4b11b881ee3d2dce726a5998a2a1142d96ea05a76e054b3de1a6a87abf3b1523d33e9092e1d7267f3ed6af50b91d3a4a4eac72960cafcccf2a498d468fb2c8eff881094d554fde991626cc05f28d0e421a0584cd6c72d8204450211ace40b5534deb989248b7d89e0b01f66aa7f9ddb84c9a656d9842cccc6e2a5b16200af395502b81c0e93f262ed6b86d366c569b2dac264ae464da92389e59137d8be8d4918ed32e8faa69aaf8268bed54c683e007c3acbdf2769a456379e94885c718908e01d5aa33fa1cb06750cd039e71fe220cf6a51b3f71349a0b5601ac79aaab065033f1cf01abcb5ae87ef6f40cdc5082708b43b4dcf02a54b585d01968af9c06cf5ebfd6bceb1d233e68de75e14e9d30de58758f96896a5bd24b18d218ee103827b0af05ac98b8bdcd2098a02cd594e8f1e67ded4fde1654d87d509d62118f3a1c5e0bf6172de01c7d89f3c26593d99d1e847226332c6885fe60953953440371ecdc132c44e4977b2f670b03b41fc310b931cbbe51c7a4424897940d50327905c504fb159efa278bdf0a4c88391ab182281c7c8b2b2b3113f7ee19fd37b85758686591c4190d123e7dd3b46de632220d4cee01ca4f16d973c20e2ddd497899cb21958ffb75019ac32f38e362216579839385816376b6c8cb37fd64c915225392c902f2196a0112f3a277cc480aa2bd22f305624dfbdf22744749888080f5c0f1103fcf3382354a9de32665eafa95f72fa4ce1c938368c310fd9946b24be5fc1b1048e1c9f2ec1f036292f649e4094c8046412bc2b5e97cbba1e8355011b52297e33b82a1a4e2888a27a19a43923da3f1c288017cf8ffc53b1256a860f092e66a7a76c31ea1157c8108c16ded0b7cbd9078637a5898b9bfe1806b55e962d7f36f5730776ecbd405ea9230c504918a760371428e431f4ce72c2333ce151294f73d3ef1e0e813dba2a283307860a73f5c5c1eacba9368dd2ef6822b57e64f954b060d8f4776eb5f0b64350370607c25564bc045c0c53a12aecd4f7eb4e9e8b26aefc3f71dca52b7e5f9a6cf5902159b8bdaa22dc84772880131a3bb23fd74a306073c31d51671d2f5a5efdb268cac169c23a903d38a30049f6493aebd878d800b72b4bfac015a45a9e78ce83e15e0095704bed52091ab77cb9b9b04a596c67aa91c0cc4190044dab036de58b164c3b44f94608cbe789282ea80148bdc6c51b13c777ace88e27812fa9f257eb2911c1f3ed175fa6cc89acd112ee177019ff24eed27f5031feb27596f3929510d7531bb9671f23c5c2366a64f70a3fb9e1b0756bf08ca932ada698185532a564cee121e8f0d9db5e60b77fb688ec5b11cf028a26ae32353438fc34005c9c0eba16703fe491e4774a6acb3da1116e724c57c00ecb603b5ba4e0a3c02bf2b5de910a225499c5c89cbe295140bc493d9eda8eb9dcc40c0c2c12d264dfd4919669c379e6f680f0d9f62f2d667994e1da93edc2ccd48c56205cb6a45bed25fb1aedbc27fc4bd02ce5775a497637959cf3d2b6adf4e47ab63ea831589fe52e861a2d521bbcf0ccd6eb309477f72a190fc35e7f610d2d6635da708b182b7e9b18feb88fdbab3b94e3912b8a1ec30f12a9755d6d3ff290b3aa08a194818f08267a7c79e7f880338593c72ca6c7d67adc9d61002f4446b635bf820b0fb98fe99fe81d71784d8a7f9ec03e18cc0d2aae4f3494e99aa864fa7de2af9855743561b6d61fa119a7a919a340079e3ee18212cd6c67159147a2a08fe19db95dc8e4e021b8a523b67c1a6015f33b23e93905eff0799e234da84f9cfb18456465f6739febb8d3599ac9334030bf583b03eedbb621fafd6db132f138cd55cf7c555ae952de36de4391f7a0bda3aa535f5c30aadd1c7907f658446e1138bafcf5c9a816250450c215cadaaa10ade1c712979a90a6647606d1d0bd744c43f655cf5d03d7b7684bd8c43da32874e4fe881800ac294090758bd7c33a6423183f8b55dfff68647602aa3f8d55bc683ec1c24a9e557e72f3e57fb7229f314728c1ef6bdeeaddc35b97babda47d1ac64a90f9fd3ae9dba95e8fecc2bbc4353275da2e27460ff1060aa77ccdb5e3964f261b941e7b52e67604e3c134f187867c2449b5e8a0a9b4c0894c220352deb7de09f8884d2043a8573a1af9255f2d3b1a1ad680398bbac5203aa0337c217d9d7c0c42705ecb00162e83480a6412d24510b35142552a9462cc413789b463ed945e7cc2e9e8e1a01cd11095f9a919e8ae35c25b11e0f6461b605b9b0f2cbe7048c9717d58f12c4aed8f28c0ec1817c0a8ef3b019d17094987bd725847e3e1bb3bdd763e0ee9588c394c54b260f779c889ce37ef976521fc91071479b1f48b12c53b28c464f871aa4171195b1d39f3c3daa1f5935c9f0b9d295c9151edb97f7327beadc87924cfac6412c9ef71f43bcbac6090defccb65404cbec9e3eb372f4c6c2ab3fb30d5b229db29f42dd66d2d229f37c1cc5ac764a2d74182931492caf0a7734aab8629c72914cc784ade9c45880cbd6af4ac342cf7c626c6e4de66b940e2c58d37c780552be548f601cefd8c1898f828039a3c1fbda1199c10392a25d156da6c11eae689816b8c88e207388e6dbc70a8ddc247ba6e857e07a15795d03e834bbec0695d46fbec77d4fbeed2a1abe63c744ca7ff2e85e4f613654479e35c9b11d81c200522228aec9fd145a8f5ce67973a1885ddd16f7cfbaf9f74ae724497617647c4e5b64538816aba1fbe0cd729d57a2363d263315a97e92e17d7faeb09c6f39e7b0e99f79189f84b90425097b29fad5184211b6d417b26d89606b48da95c75652079695b268d2ac5690cd1d8946efb2b2c6304d54330335ba7f9874e48061fd4c6b27487ed6b1a396986397876aaf370e0b224fbad1c576e55293a0dd71d2069783c2e00aa05b1bb4c6e306dc44d8936ae21107f01621d19de9808f7a8c25eb1a3afe5b91d87e4993d7ebc9f23196062fc48090b353b7c68fd6d943bc50a407703bfe45050238788d397d4a2455dee9c953732aec28dc42ed9c82c6f79231d1ae4a795ea7e289d7ce2af5dc76fbbc791c8feda19bfe2d68fc760202b62c07453563d549d2587510d6b8ba25bd171d3f589d0bc820891b734ae794e8a13b7a1f90df485ee4067dacc48ecac4e7c22df013f1a8cf1f57f5ff3b1e30522d61928176bd56fc490970917ed1c909ed570628df2a99da10cd5d72b1f0fc962621a0da47da8a0aab7754e1fb5ed05c03dd48926d7c7c80b0d2e784b87194cbd8a240928f1b693aa03b8f57c46bd432710e70e2c442c643237b1baaea2a814d00d2d91a7ca4e39a625e54390a731a68edd84fc43853baeaea40b828058107b7dd1b0186c39f438c67aa6ce3cb03d80af9b0750f4b4adc2d05de18c4530c55305e15251df93841cc441862dcd6019aff21d932744660c5160e77a065e83861cc304e0195eb0a221e4f43c9d55991026672a8388e4fc0ba4cd3933cc336d86bc5660e07655ff41b69ad6d4236d9846c42f6de72ef280c810c220c31324fa76ebd9aa7267c3026dcc122e06928b184ccaf8483cbb004031f5f9aa589a78d9aa69efe5c4a4b784026bf2c61e04bf45c9e202e51cc7159f6ca7408670962b8c93bdc579afe0eb7d2349dcbf4134f1807972986ef6519be68ee3d56487f40e9bd242d3f4dab7dd5d76ff3729b360c0ab7d34af25a73f1f4539ecbf513ae56118dbb3ebcf5d72bf2d5347532b95aefe2d6afd0e680af9546554a5c96d84673315ad8906bbdd35cec0d95dc14775ceeb4ac71796e369ece139a27475babec64b21aaeb4163fc98222f96921bf2a78fcc8aa8a15e8e49be9b15bec36bbc54e2becb63ac54e5d5c171e6e0773e9a2ef3089d953cfecb95c1dc3258b29f6923d3c86bd244f3deb4af24364eb52b22e16cf40b92e3c5c98189861a8570c044ac9858b7b49d56bced2ed1e5edcc13c8356af4eb22e1797aaea15adaa1bfa0d81b61899a9e81de8f7b5dae62fa8744f3d74cf65ed205cba180797352c02fd55a097aa530f75a5eac4ba80f06b6efaec7c516b716479ca35e57abd42c12ccbb0cc6216bbf4c2e8b3f5ee4596b7248661988fb5d7ac8bbdac0f6ed744728c97163022bd8261913dc21ec370296b22bd52c276ba480897308c83cbd8318c75954eafc0bc85d48b9d62a799adac8dcdf2a32c7f0591e5eb2b00b29b5df63eb398cd81ddda5718cd6c86ddaba65c76a39d7160996699bedcb93b41f698619e71f87a5997120e2e5b0edbb063f4f615a3dbbbc3a54a1947d9535ccab0216cae7a3d18f27686ba073d5eeb15987bd94743b4edc840bfa10de6ab3abd1bbda80add2f01f3c5f61568ebaa67b72c0e7ba30a160cc9af0df955b1029e5c0570bd5e295db9b319523762ee9cc8300b51ad4a082126d6b46aece2ee04b9c27493719a32629d133562993d6631bdb68e569b1c7d7277651d32ae0e415c86fa52baa927cf578a8a2c934e54993ed1d03d68c2d4efabbc26f5689c4cd3b3e9d92b69e7482dbd1c438254f123cb09d0675be42c03d9ad353139891e5a31851e195eabe2899cfcb8905f152cc02203a07200c0b873f10301044acac989c951ac8b09e92626a49289c9b98c7292094ae9a484e2830f25984b3ea09c9c9c9c3cfee424a50a71411b849be5eb30eceb920b17309764d9276b71c069badd5e36b1373293b77473d6c2d7a357469d4df023997cfa8c1926f6d6fe3ae99a7521e192c538b86c6f5f73d6c549af76ab4eda5c6cafb9ead71deeb59548bffe9abb48e772e92ef06bcee21209e3e07229466693cf7830e0574c706909994dbe23cb269ded4db64713ccd9224617bd0ae09a74228934e9500aa31ea2a85b1fdc4e5e9129ea595cd12bf10a694462f168bc4c1d545282bb92bbb0afa760ecb353973b99c501755ec6ec0dfbeccf4e16275619177c342c106ed735f4526f6b67eed5917e7218d24d1e8dd2a977148f06caa95714fb9393b6d206f3b5394c6e4d6e5ffb226df628dbcbf62dbd04cca4778f5e19e1cec547a7a001ea1097bd016c11a3d718177c34de6955025df88484213d066693bbc0f009ea6dd32b247c823b928f5e31c130a49b9cfab53828c984e5828f461130a3c7c00c9f88406ed73c3245f58f5ee9b4d7afc06887a79e591cf48676db822f4eac4ea713a6cd59dcd9bf4723fb14449e7cc8d3284fb78f05f64415ea13ee2cd62123d73ffb835bef82a294ca1564eaa22d0666c9a37bc8153c15ea30c8d443b8a335c8d441b8bb328a4cfde28e443ddb248f0783c258ffe89b8afb474fffc8cff4f6e449dd7a45611c5cce375314a518d2138899007fe2ccc413b7ae696ee7854e4accc9fd58261c96fb3e44c79d2bfee40927b2409f56e977b467706870e80e0a724773d740dc3dac0fee23b28591eef1e490dc9736d246da70cdc5993cf108b182487e39be66f5c5e35a7a07fcc9a5fed6180797e52345c15087b4fb450aa69b6fba7522808798a37037e11d1806be1f63505fae91024f06e5674514b670616266660605f9816470fbeffd253cd0c9340e2ca14d7d1990b73bf9798a58340b4aa3d4502286be129229eaf227c8d6bef63c0694d862de4da73a8a9aa6074c9b63cb13772947511425539e290c7d842f6230cfed656bd3c165ac12d183919c921f113d500124bffcf2a47eeb8d5152a0b8d6a91cd66128dc71d97a9401ce648bc0c2bad81ed89bdb512ec75e8155c688d1a7f40af559ea5fa57efd73b5a1cc9458dde2141edc521145c04c71a94f658679badcb08d5ed3e3af367a34ac95924a296f79e015191ac9f07256118388f2aa88414f8e435c34b2dcf91898e5b95ee9ac17bd122f638847833efe008f46f5f85a6d3bb26c6d3487fc243f4d6f693a65f230c79ee09b98cc05ed0da438529a72c7ba4da594542d752b6d60fbc87737ee6c8e6a5f4c3efdd6481f2fcff78404adb564043a168a53cb3441f53c2581903a297d3445c23698b8eb7c9daa2e4039e8269e1486b94e5f323a82626983185ca2a7604e66559ae8881bf3fda6a648dd64b3f6a5f4be4ad4610ecdb0e7fa803b120aeeae0bdc5149613b0f3395e6219c996609f75d9c609c553b17bdba9b659a7042d6481ffd4902c95d7d4cc3c43b91fbaaa72e7dc01af314963f7217b323e60e4eeaf5fa843b6993eb637afaebe9fa147361987efc749feea151457e3ad5c1ee8e786ed2078c514fdaec5ba2c9f6f2ddba976b9aabf225b8a323dc5d12e90fe18eb3ac8b59bf18663e7bdf06b046a55d8cec7a66fbb6de63c92c0b97b0dfd7c399c8f2c3e50f18890ee26cef7e7f0c7b4e2910f807fca24abfc6c86c1d7431c8e6c6cc6cbd8b99397bbdbd655facc364b88395cd7165ebb0a765f7e48a4476695d2be58b99d24e0c7b3bf7b1b44415f9de5b998eb0b7e6c436d8a49be191f6b9568f0d608d1a296d7275511bb7bd684e56a4a7020f2fbd7aa583b1b93c7b729deab651d1baccad8379567bea32d9564aca48634729e51451dcf8e92f1164735f7f5c74103e8048240e6ef00288246526d3c8cf0a2b10c9555e72528f7a5b3c35a79c53da993b1f8dee8a548ee9717a8cd4b4c517cd4125e2bbd2fbc338b8fcde74dde196e2db4af15d7ce4b2cc312fde2b055f3735b1d71c1ada27bfecf36e36e478da2c5007fac018ed0275a08e0fac015f8c6845ee18638c3a32aaf058641672ffe1f760ece07650677a4f7bb93c3f411fd28dd047d6e81e309f881e9264eaf2e28e66b8bb18f681447a58bfbac71bb8e739a1cf538914c236bc0eca21c737863a0f46bcddc19d5ee76bac93813a3a2e1d5c96599618fac44ec2173358b5a0be940ef6ad2a644013afab358bd5c99d8c1c6feed717cff44d7170cd457c494b9778ed64e428c3861114e0800e2678d4fcc0a142a78811bb4d112d8ee98d3b9cb9e6b4ebcead73bf185dff0459363c6292320649f2bb7907ccd344518be3d49c60b44770b87bf1e00ae65ff48ac5d187531532e8f123536fda1b37e7e84f3be4a4a8cb89a2e20f79da17203285770091e5a7a5b61730c7474b8ae2762999f472f30ef89325ecc972824ff6b451719aa8384d700f2f700f99a28aa0de9f5a22a5804cedcb023285772c20cb47d8129b5804fde2f1e7fa89155a1794e63a46d27b9e3a751289c638b5105c291d8dd03e3e3e3362d45e35353f3b395fa03fd60e4fa63c8ff25473a87eba4a58abadf6aa18a5d6e50a6e57d5e49f0aa4bd45a283444df1b0706626e6ea0b8fa5f2500a219d52784f9049a8c24e951b35618fe61ad2d8b0b1419b9af910a8a6a69243f553a719a50d4813a0009f1d24f8ecd857a3caa94248c0a58dad46083dd3734ef989faf1f19964a4e4e9bcd4ca57f665f6cca9e4ad68a4878767cafbaa6bf2b17e2a1ed8dd9cce0950001422845a77878a442a9eaa0bb95f67bd2eeb227f4d6b27070ef046c69f095fd35293b5cfc2a6b49180194c3e35dbacf2e413e3a78cf392575273ca93094f0a3907c6a013097506b93f2560a3ee1422e9b4a6292355c5c75189b4a937b5a68644ea1f362d65e7c49923e5c43a9f1e233c3b3a422a0d72e8142555d59a922b3ee1464b599758a975dd449b6893838343e95673658be83c4d3e95755971264992581369228d556d76d1adea6923467e62fb34e7f3aabdb22b6e30cf4ddec6229e7c1e8c2963749b71eb2b9ae7c7e4f308d0c7ae7bc916dccedaa19bcc549523711aa7755a08143b51073307353538b85da477766c05ed058922c8c78577ce570dfedc39a313ae8c4fb8d46bc945b7ced1daf8b8d6655e161b5d14dee0b60d6e67fd64eba7573a6b273f1a6f8ab606b781f44ddfc037c147e3b94c9788ad8f0b5fb579d2898b08253545a813851085ec34474119a584b0a39c0f76c4269629b8f371c649d91042c99a3be70c599e02dd011dbdd2c92d72f77a8208c9ddf3915b8a853f1e0c68c5954fe995575f64814fa55f75f724034f05fe084412a1dcc2902243727d1bb8cf0a1714690191fcb6c8cf8a278ae49a75b44eb95da7f84a7bbb0948c445f394a7433ad14f5807a944318e99e9299ec9d3a57579d65f5eb670a91e0647993c6dddd57531d64645994a0618437ec23047dec0c74f7e55d4d06419f95521032319cabea8146e6743be2d6479d99736f2cb2e5ac20861449151783cfd04f8e935f54db8fb40ee4a930e529e2d89a04eefa9ede2e0d2d23cfde8d3569a177d9a9f99fa9d2f499699be34611c3353a730131513cdd18f3651bd7ebd86de3d260a7750647354ea21fb52bbc745815c289d0a5feb1d8d4623eb55a3d1fcbd73546118d1ad3ba99353f804779d45ef1a0c5398a246d67158d647d79e13b31bd3a95387a3eebe255eeadae8750bd917780a64738c7e824df3da97e93033c795a7774eccf0c4124fd447a199aded65114551141ec93431e7bb07f5d93f72a78d36987b273225ebebd1a87de44e9b53a58dae89a6f698ce548c318af07cbc714f691f6d134565ead6c5daabaa3d7eced11c4d5cba9fd026b2744e0eb4b9f6b9855eadced1ded11864a1374d0c600dadaa154674ecd33b1da4678f101d7b4b6397b0aa3555422ddb3a999c3d5a97ec3554494ca43db43d4c033ddb2cde4ab92b4d6e845d669e3ec9ed36177af61adaeab38dba0beb63fe3a6251200cbbf7e2693461f605747bd92beffa7535cd75866bbab52e93f65ab5d047f78eeefc1dbd258ea68736983a1a8da687460f4df724f4d15b7a3a19d5918b50bd8bebc8bdefe634e7bc1886be7ece3a7d443fe152fdd5a6e99f6e170a4da367f7a00db32f2e3e599be3ea60be9d1359e24e54d14a9a8672af8aa23dee68b784bb1b77b266591fb4d249a689d1e857cff4d1f593bbec6e30a13b91276dca7e7ff5c01ab3bb7c72978de67524bb5dcc0877d7919c7d74fa111ebd1b510c333df4d1bc48efba4746e948bb11fa34daee3637995f4378be07c6c87eb2616f8920934d0365b16454329a7d956cd97506d0b3098b9ee920e58961de91449f2525b8741f7ae603da903ac6ce999ee9785be4f9d1b51006d9dc4e07091be1d0740d77dd2367efa0cde8f1d719a687b0d128c35e5917ac8a66be25c8a25779e92065d13391e8827ed129f2c8d39f7ca75ead4fbfce006b5c47ae75a196c22b133d3bb6b575c15e45a3d717daeed6913e90e7f6f2f2e86d8db0ac8ff0bdf5fa6747a3bfbc3cc2a5d06146a71e1a9dfa0853a797c9a2197a4bcc2edadedc749032085f678031b2dfadbb72966dd7b1cdd6ad8a16c8e65297779960740187c0a1a847f9206cf85cde903bcd937a25be3b9c2d3bc9e31e03848087c7bddcc52cdfb979e4973223176a356bd543da092d04e6b413860ce9214f5e12f6e041eda964a858bc4a86577b6a0f1bf0a342cc15eba0e3ba92b8789031c209348405a8d608f76515be223b384078ccf4603144888d0f243f3c4582e0d0f038d2a333e4874d122457f0c878f1603ca9c5f411a90b4f9120389246f238d2a33324fe883649905cc19313c4e708111df8638b2457e45784db7888775b84fb1e8cc733670c91df25848d8768eebd6debe40bae51461931190fc67b85d38b4d4dac74636adc397151a1aba0224b214c9011875a6b639a18e73c35a794526229ab18adb774d7545635b75733e9a4a8535bf78031e49ba66340d1192735a7d97f97a9e0cca9f58aefb940889968eeed5c47ae335c3d4d739da169ae23d7912a48254585d3d2951430067c44c0c738377a5305895590e63a7677e34f2d2a5cc2bd4bb8fdee5ecd419adce968a904da5c0aea8b5e5102be2b75e36bce127ccb4f19037dea6b1af3111661fe7589fe85dae01edabe3c5c5a42e6f71d597ef8d6212e2d2133fc8e4c264bbc84cdd187788958378b620ac34c3130cf18981b5b106e3192e20b4490516b2a9b3cfb26cf772792ba32f2b4c99f5ce3057d1ecbf554e65f92943cdf0b09b1803df088a681e8e9e54ccf776be6e3160de1218453d3cc4fc923cff92a266995d9b357a6bf89d4d35fa5d78b2c6f8a3f11972292e6e69b26ce8ae34f7336cf5f482ef578fb58e24f549934e4a70c42cee489bb519eb369a0ca3c8974ef4f9e9fdec9a09111e77cdcde34b046fc7ccbe0b1609fef17bc95eab3af7799490744ee9a263e8e3ab6514f857adcec46fdda32f5b6d4464d9f2aeb12699ca818270fd59791b802132fdfe9f568d098d367073798bbbbd86f4c278447a8b2c6aeff5aaec427ff2e84f00e3345caf89923beeb537c4171e1cbc55a73f2c1983bb2dcbf3a76a32092600db885db5d59d2e82c7fb599978059ca9bd755f24446fae6cb12c7f385341a6eb188e718893023b5750ff67cd5126969e20cca50100ea13e9a392324e7e4e8d3b393e426bf09c4b855b98ae89c115917298fd06306d09cd128991392427acc20afcc1981ac8b8c50c82cf6945ceb227b0a3f708826b275b2def98183b4ad438a3f58920c7b80c4a321af9f938637d6ba481c241e0df8ee71216750b813cb7a5392315e510998fb2f2519e29741e1962a2c6ef2d1be54598362c890273c411e098546239089a689b49b985c268f462727241209242a199968599665269a89563212e100074e68020884615708e9e4fac9c85a6bad1d69a4d1356d04aa234d1b8d1effa3825c81742c900e69341abd4434d21e04132e14958c469aa6699a68242a196959966559763513ed26265ac948242a198d344dd334d1c805e94454e2e24454322281402412084422814024d2487bc968a469a19115100ea3fec1e7beb325bc4c096f08f7c578df729091c5902c863ce6972c7888f48a4c16441a06497202f2aba24718ea65ab7511c98248163c537cc96267da5eb2e0e971a73f2bb2d8c9cfbebc6451a4b9c713e369164462af44969456e95371a743bb2362a8c59db0c6852c095912eea4427ddccd4422943992a110a8e7d140c92f0332197491e832b962204db350e78e2c14f11504d240a2516814bad90d9598fc30b1d0463427aec1255958a35d191246577684922bcbc98c40229db8289d685911b2295c5c5990d20fa25922c25a4da864833451257e6471881eba665d4225224c2d9c692ecef8f0c335b79a9fc8d54cee301d508d1080a8aa0cc40e7000db0ffc008078412d282ac323f1a1cdc60cd1d68096146b049e3e91a5e4f1708b47a35778309e5689c7786c0b6e10971b82b05c100f06c9e2007ddec41611842d4274d0eb766544b8f11a4faf602c128542a15008240a02240acd1036b911c2886471843eba897519853025591710d67886000000884433f4676f4c3984df8331432fa2136e08040021402290289382b3500421841001080037a992a9930de1c277d80b159392918a26525141c1e645a16b18f42242f8522c604f3979def0e04c39263fa2fec10e93c69a69f91e8d9c4763a6bbbbbbfb9982b25a70be0c875a554f1ecdd13c4cf108e1be8a4e9a4c6b624fad96ace8fb11045b64afbcd78dc9cef62a625e92ca96bac15c6dd2feb8afe5c1809ff0d1b86ab5b6968d085804740084c08301cf45961c4f05c2c307860c3f51f88a90e92266c3699ae634bd6d3ea664aae78a839c93f6e55f9299f8447d91650aea95da60dea6984e6d4adc90b9a17c85df53214196d50d2aa9c500cd143b6664182ecb1051ed90d55930c58e193926120016113b894394a7d75aa7ebeaaabbad89516ced8d986128ec5ed4144f5828e2f41ed7f1b39a7e43ced7dd47a86f029442eb52b13caac44c14edcd53d7e2a04e4f591c1b688d848203883dec610f70522a69ae38c08622e8ec5a1cb12f0f31a5a0156da14ceb82b7ba655de20e2edca8c41d75f90963ede864a6955906bae2e35e7d1c3c8d2c190a7c03d1f544cd49ce23306962656c684d84c0289c615de9589fa6e91185545117d27baa1625d5891e87f5e995c561823c3f4daba29375a173966e548fafb016f11252e6172f719820cbb07919c864b3bc939738e20d09aab9fd9767c34c088b54f2c12b4f30b8c974c8127435a735f7b498d1dcb3314327cb78d1dc4b399c42edee96b2aa8d0108638c31c2ae664ee294e63a1d2fa669d2b73445494924ca28a920753020a92089444924c628a97c1f99d605be3b6a2129d9518baaabc886e813d950452da49caacfadbaf50a454a29d30d8b70bb3e923b1df38775b1f1c3c60f1b39b061d33d367260e3878d1ff792b16046856a83dceee9b8b4e0e41883cc774b848bdb477344b83337aec9568adb758fdce9785b6419e310ba47d3340f0a34d75608b7717c532059529c2c317ed13805e7c2772919de377ecdc197fb8da18d15c2ed604e7e134e19604185102ca810f26016f5757d5debdb200aee8b4f4a88bb263028832b727c2442457e590a3af987fcac90c24d8e8139be9b26eb153c972988717099c232bf0703e20ebea7c48e2c2f21f3f525a8a480353ae8a22757ef74bc1eabaaa85b170592e39459467929ff36f8f8289066795d49016bdc5441f27b8f3c1a7401e401bdf28023f16820f148da51b8d7bdc86fc6109d0d222c17ca98c7d31291e0401214773aa635dceee63b55d79aeb99a74f1c73c4b7f624fbc6443d6e5a35b5dc797ee6862fbbc18daf70a7b5c4251c339372be9706271d4b3debef5aafbcb8b571cd51a7283b06f972dfda5eb662107df4fb0aaf2602986d18483779761d5716cd2c7a8a68bb9ac31edab4e6b067db6d0ebb267ae8d7f6f2b2f64a59966559b8d37135a16dda47a351e8d3ba847049d3ae8d4696a6ddda90b5d7b4d0d639a1956c2fdb925bd64bec45b7367b91f5d13659176b5917bd6c5934975816954b4aec479b75d156729bc3b0dfede596c692b094a5282b5acb52ea9d8ed753ef66af6dd9a1c54e5d52d4ed3d758d74b5df8340a092c3d8d1ed4b8e5d265bd7b60ee6982c7ac936b2b42df46745da269345a17beb822e3dbdda426b316d4e06e66a511645518a9e528a290c032b122c304081e6a6a9be8e5e1b8f2922e469ea948a71fa682ec2ee4b0c778ac0189f457129bcf0d54a79279c26b8d3dc04893c18f1f036d77cdbd8c00dd64c8f505c999acc0289980e6d6aac0ba46c646a884cbde8523285329da23ac608a57c3a195aaa4eb0486f214306771291c9264f449a9bbec5edde815e79f907743c9e2462de919922b9833448201159201122d95a7191e895f71a30dd8807fc556861fa429eb2c8d32986441e8ce9447a069ba2379693bf3f08fabd17824007dd8baf936edb136d4abbc2a617dd44afaf4ed783105e0729831e41106619e8b5d69ee6322a6f9d13b993c931c3d87bcbb0675b1fcbb24a065bc46be918e5bbef468c09cbdea01986baeebdcbad9d88d2ad6201029ddaee15c9dbd0479fd7c9c6e3e42c381127788ad1a8f6a85f73da6462864c4c36eba1adbe52947509fd418803ad8b09fc757aead37f37486d5757438bf4bbc16c85def7a0eb2065ebd3c53866bebf98895fd688972b2eddc3c057bfb0faf5d0d6dd7991c00baab57f0fb78657890b7ffba092c36d74d0a655eb2df19ad6a5be641b410d5eb85b7bed6d07952f275c400daaf5be37f8dba00d3b688b2ef6d0ba28619fbd5e17b42ff2d8a17db1cf1eda9e062f28a6866d28dbb45e788594d2834e5d267743d80d61b7f6054ae12735ad4fb2a82fe5aa1826abedbe6ced75c15f5b1132c38ae52b8bb2b9f49455c9b84d1bbdc17df4a9029021b9c649b58fdb34cddd54d5bba68137cdc9faab6eda95e56f9db6db3d9a7b4da3833b43c69a49c2e0d1a89787b0c63e71a94f5beb01c6907380359d8707433ecbc1bd09026bd4449b5ee95fddc5d2345145f680018c01ac412f0f697aa5da2d4848584a2edf00239a6574496a965873293aa7e11f19be634dfc49a4ae4d53298d3535d9051445e8220c272cc30202419221a464aeb126da642971b22cb9a207c6e83a08b9811073406d55a1ae50eac60beb214da6b864ed6dadb8c6eed8cf1651fdfa7bbd8285e8056fe8d4ba6011c209fa0051630408ecd0ba84e8759bb39f6f6c7bb9b29488ba887089c20e3b1da44c4d269aab97d68807133fbd31288a1bbfc5ae487abb88c4e108cdf5d56e30f6d5626a775099a272759136dad3adbe255a990ced8d4a865798ddeb99dd40a70f6dd45b227cb5d6055eb0a5e3b3eb20e576695c8a18c764a2b9ecb2b9cc8546dce9b8b22d3291ede186bdf634075d2ade4165db39912b8cb5620163c008df2e4a5887f6a57ab16e6db4b96a2335276fbd00f1a35d90f917de1d5428a1b091982572e3945056014f2c2f43488c1cb10723bea5ed143a2cc7979765733266a22d723b2d4b2dce1883c6c2ed27bb8790e1e0d2688ddc7945a6625b30dcecfdccfabca497f5685d3afbbcaedbad93c9b6efbd7f79f9e212e830f7fd8bdf41b72e93a9184c2657d875eab25bafbc0b439bfa6e51eb425154f54744e85448be923279da607e1cf5678f8879a23c9e8947b5456e3ca9be940c07577ee6402cb4c8355e8f9b6f7b44cc11d3e6a270dbc883f19a28c93f22a83fdccdc8ef32a68c877f8027aa7c160bef59f1021ae4a7013a23350d885a6fe56e7248dcbd85efbd0f74908b78ef756fbd3e8ce7d6575fe6825baf3a2fac46d06daeb25ead11ee7d91a9f5a51e242919a71e3c9638331de1e4dd0de2cc4416188448963fc11d090299692091264b08a405f73a559dce78341e0b7c2a27af0a02a2a24fde4d43ac1e087149a44f87708f90e585783735214b3915c957287163cb1773cd9d3ce5f56da00c17510f3a08d72ac4d6c17c62e194e64e2ed8d7c9ebdda69b29a3b9d5e9ed09ae1e9fb2bd2c4137658319ce44d9238ff48a8f1c82c92b241540727c8d553dc915946b95eb0f97f9b14c37dc7bb7d64a41afaf401c5a971fcec01a29978729802a782b425c72ef288bcabb4b23a39e4a8d8fab4fd9de8b519f6df52af55cad105421b420fcaef5ecd5d6554fb1bebdbe62d90d804a00ded24208017a0aee60be4f88ccb2ac1cdb33dc815e0f033ace528278a5aea08c9804b1a504405e65eb24ad225f63bdb5d1e6ea610ac40902814020420869164ea788bc028b5ef1e144b2dcc93c591ac9f242482a24155248b60366d09790b97e47962b06c0bbe9667bc54bc00cfab345808ebb98e550d12bd6254e64a25740b84b39e8f2150413c4636016e229183e7185d86410d025853417bae41049854bf6c4f5e1f658660511a233edf48a0f928a3c24cb894896071d3e713b89f302c230a0e3c3c89ce66490e6e4df9c70b24cb9101bb7b516ad227132e95d9cc943a01048054e0c027754a660088405d77a9554f44acae5c94eadd7eb9aa926aac8d3143cdd4c3537c31d95bf90007179bcc5c0bce198ad5eefa69be9e6d10032e1f40a10979f82f48a45330a0a29a3fc3d946f52881cd29cac37374060494573f2f6ef241543a8bfe9958639e2ebe5cd0464c279341e8ef8fa6a0998abb7441f3694adbb77eba496bbe9463b91546449da4cb69b9b2c3fda94a0a82894446479d12af205073a405d5e474bb3d01936fefac510f2d50c5b18dbbe556a9eeb52aa4d36376de1233f6a93b2b94767523a0036a8ef665824fff041ca1f5a54010743204af7441f6ba3163d91eecc51439f4e8a3edacbb2a1e8249312eca24aa609da3426a936987a27b27401fbd5f4a62eaa7621add74b1f2e2b1fa216b9e525ee531d572731c530f296c8c886523d4de26640fc1a6974aaaaa8057de8b22f3ebc2b7d12349ffc35cb09103f6014dc513a5913ee60d532f940514af8cabae787655954a609277aa24f4c92bbf91898ea4ee496d6a30fac214fe34feee614b5c8f4d392518b3cad4f1386e95753ac5a5a15cbe80363ccbbd8ecc9d67d5edc5112eee835c1ddc51d8984bbe38e13e18e0355a06a5118eaf23da71647ea11dce9b8aa45310cd5bd5a94ba048170e97af6f9962422cbf18d2a31fe71a300c0f0e698c6d89ff258864136957d9187a9a83cbc89bf31b201d69036c370d74732bc219162d53d9475b1d445558be2a05e519f147555b7e8d4f591dc7fa4c886a8d23329a5d3b3e400288aea32b9b798992b1cd90063ccb744aa4586b6f1bb518b3cb7249a6ba2b978383393883fef47664b411582e0e4fe4920f9d76284a4ded246e07e3b2fcf4de1d72a2f9ab352b8dddbc9f26f0f5926a1459637a20136d060a306a7614b2b5f91686efe01cd1921bbbbbbf1079a9b72821ff8e94073b37b487cf4caa431f34c34b10367e6218f667944cc9a3c6de0ca6484119346160e5223982bc873e2980763de0ab73f1d62d99d2113cdc520813713a4a4c8c9d3f41c31d0dcf42cf294863c4d73c853059eca4481076382407a65e2d12b2f0fd2f44a8f5e29517fb97b4460cd74e8a3591e1113e491a713c9c38fdc419c3c9d89e94d4c5b039a9b0e2dfc61adb8dd8934a0571efc44a27f64812b782ad361406b902718459e4e4d90c78331bda5b3b5c28d6f1e3067087dbd62d169d2cda298758be292252d6a9d520a2deb16a5b6bb638c317ecaebaaf1b2b23559d99c55ff268aa2aeebfacbcbd7f578c55bbb5932d9da745cb9c2951430c604244f6f89d40f6833b74832e7ec39e79c344f3823ce9e3dbbe79c9f73ce39dfcd7830e62d912ba7da1796d1dc9c55e8f99732631470e60597d29c9c8f7922204b2e9c004f467673e357e43190815e29cd73a003314dc0cb9f5fe2a0c686566a87dbd12c6964991155e429bd12c2f75ef7824616043c15f929dc2bc41953b8f1bd3d19cdbd78d1135fe0052cba50862a658cb96734273f4496335a450e6177eefcd4805e7979193ea04b41a2272f6e8b6a5f2251275744efea53eaf6a2be4ba9e75ef44aedec969292634aaf88a0c5b1802ce2ea5f7d4bc7c07c6fc51341f2bc42a0d7277ee47bc43de82d5d53600d25608ea99df2684898734aaf28d139a6b328e5d188393e88b722aa9ff6a554f10d58ba21facc32db1b17b4399e4e161d04023d9d0cea20e81046e819c9b52fb34e17685ba2334809d09588a119be18a1c790720edd1c1984e1e342f7d4e28819f4da0fc696d88e9841f83d18216c4473f142a25762eeee8db81b12303ffb80e6ae76dfdddef59a0512314f5f0c9cf56e4c48315cab4bc993457b7cd5361eda597022343cc57de87356b366675edb4a13938878ad428132ccf89447e385f0d55c49f45712e16a1e04c21dd4c9d4755c39445935dc17f1b7a6702f729431448e336cf40ae811c3b05028f4979743b8243a0c06457143785ef436d076b72e26945d26dfed614358dcc19c5cc9646abd1823f52e2547aa9ad394f35114a84735b891524aa94280fc8e80fcbebd159972df911eb10f78067e51a593915fe3f76074004079c76514dc3751256eaf46638804c688db041e17ffe3d5beb01f3ac841f7cd7481a78204d64002c6888f6f10a2861c5f861c2540871c6f95683024c2b6088bdbe6c53cbda5219247637aacf085e1e0caad813c9b2b7acf3b3b537adc3737b8d52711a6520918da3a993bb82151026e37251bd4a2b9786deb622466839b6bcf676dd007fedcebfec6d15b3b099d74935275f1d3387dd3406207c9b1aa24e50099182902994cf10880c88d4ba2bea893c832096c8a6e5ea294ab4b5ce15245bda24e5bb475d4add069375d55f75685aa1879bd314ce814c3b8784b79e2e2d64b9bc551df6f7bc30596cd9de05b13135b72ad966c9d1359939a3629ed3d4bb4db53da5bdac7c4ac75b2471a1edd8ede9bace6e1b59f7dfb7950cf066136b8251c304f87a1435cba515fdde9b7fede57a2fa7b5f753727917d388a0a45095d6e1d766aaabfbfb8ab2e9a7007e9a65d6e14a54eb5ce99e8d3342f73e8afb950488461aad70adf5b37779792ad63d62beb62af5a31fcf1d9c1854fa28978263a7824471ea8436407ce3c1a4568582411b18328c8f1b005394228728438c85127c6215b20896f40af74d4885e994e91882c401ce51df521e2287dc0140ff1626219cda5e494e660f79c3401d230a35766afcc98743aa5550eb72f65a4604f86544e3851dd13bc31bef8705f1e53480c699a83357d00f81e3e6e07618c315ed11ca4018f2245a822ad024fe12e36f1855ba22e93a9e914fd4431a402c31c0a431c38038bcce07690a68896214d64b1d12af090523792483fc7c9681b4d74749a648c119770c858ba4165180a7fa003b971065ae65b03696860210d3683dbd980b7d18007502003bdf2f2c4323af0814ee25948536303718690d1f111e21898fb1814b7bb32bc9ae5118192f202f65c3df50971fb13caeb13471e4fe5e59717bce0a9bcdc652f2ed8e2a9bc3ce16e7e9226398220778c71638144c45f26b9bf83a8932509070707070a9a77b56d1bfa1355e429b4813f36d006fefcfc501774818dd354cc4e72697336c86d1c1ccbb258b8b0933444c063e9244f45dea56f841f196be0ccf03090b870afd078782cd0a64f1e4b1b892af23288c0fde03a20d1e0be20ab20cb2d4b952c0990c44864691c1c23384670707a903304213af0274977646923462e097791e6789abbc248648938883d18c28d47c8f28d8d7492fe49d22b1ded22bd02299c73ceb70ff9ea90e56507793098846234dd03f2f0d821cb24dd4bd24972f60348102804ea34dcc95e6d126612c0dc3891858483d33859be92224b27892af29492b23c723b9205e21eee4d1259449734d4499264a9021fdab667292067ee067f401bf8b305fce91524d0de059da0b4765a97aaa29452fac6fd0c6edd65b72e26db67dbc3ac4cb69b8e2b5f14489d6e6dd3ba541346692e0a17622ad1703b455e4dca4195ff63a16f9a8ce4ae7b27b2d0ee91cd43e9bd24d2cf71547294823a5c9d9611f294bb324833aec3ede48ee3c16470bbe893236a13172728e7b8e8d33528b89351c2dde339c13e6fc705ee8ebba743d27037a3717745d887a3a6c9d3042353e891c76a702410ca43f14c3c3c9125527a6f7d5802913832484d64e9233c15f9264ca1af90e5273cb19adbc99b9b5ee9a804022980019f0c58977f00f742c61033ae972fbb52bafe729d2292b8859ca134b246daec3c1a1616494852995022bd225faf5e7994475b9b357b621b24b2c1213f2ef60e0ec952a739793bdc50f3b064703bb89329d0dc94873ba2fff04e860fef3894773f794772f19dae91f103ee6474b1a6e38e82bb9fe08e745de0eed6bcc7126b5a455e147d4051dcae892c92deee525c7373f372177d6a769a93bf892c92e7ca939f604944ee14694ef268d666d3703ba9e323752411b903fab4af3950f7658f2ed674fd06f9a3577cb4883f11494c12b798a197279797363bf1cfda79d6ceb3ac6dd4350f86bcb5c27dcd9570f7b0e048b87b57d43cfa883f80f4cab35ef2f74a6ee1be40bc847417dbc956a2fef2b3a423f2fd864723dea2db7c9daccbfc34554128a55e9e4c3e3f6f627d6ed3adadc28131e6a9695a5590c9a24e858da5f358d789b66e00593e240fda3a2973660d69164904d6d89ccb1de4d140e00ef298fe60be3698d31cade01fb41102337c47e54fa9014053a91d6e8ca7124f630c6b86db97d9abebfa555515fdb5bdebb1dee4a36b5b07ba5672ddc4c4c5b19fbce4c2e4264f3111897eb2dde6442f79e826076d2f2f97bc46eb6282dfbd4c9a2829b946b85432fae8ba30288a2bff9a33793419fd2a29799665d94b4a4c4a4c48a45fd79f35218db6eca3eb2626d9757d74932cfb75917e5d2d71079549a45176d2cb9a6c4e746ceb6e16d1e6442dad55d7abaccaaa0e2557bf3a66576655a21ada3268efabcbec15e8d5cdaaaae45528749148646262f297974d70897418936737c1af39936727fd5e265f5b77e5eb255b0773c9471b69db3a9a2fedcf8e2e93475ae857486485300459bf1bc8e666c7b2ceae0cd3e65ac65ed5abb774876259d5e5836219b675f515befa51bf951583e89db67525af1505dd64a49d5ed28b3638041269ceba89756d1b5df492aa3a7ccd89aed12cabb20c97b4ec5955490b8ae28af0455927932f868d304c341289b0d02b5128c39e65d54555f54c8461afaa9048f4aa6a893ba81ccab08bb6ead986bd90759005739ab32e93af0ada2362c6905aa7dbcbd5b2f06b501437763c2543b52a659fb8d56b955bec4d08d8ed56a7f76c91598539e7ac1e6dac142f937fd4cbe4c6160b5d03e91c208dd32cd8ad1fcd5936cd5942a0391116f5485ba531655d321ddc863a9d63592bd6ed656bbd6bf068d85b6f1bc01af5d6abedd9b2b69e018c6175cfd61b37140f86f52c07d7fa912deb28b086656957adb1c65b18a675a8375401e7487dbd22e7843deeec5e736f9626c64c4c3db70fe820f5b4b9af344def99e7f492b49d98884bb89e3db3b716f6b02c6c73d46c5df6e565f9f75eb6d2c55eaf35abb55698f9aa5ab32c56eb2d0d5d006bd4470bba9db087c535eb2c862ec02d6d71691efba5ac5bdcddb06e6f6fb16ae32976fb72ddd60bbb115f8ff852d8bae8906c66d6de5a8cc934611fad78486373478f592bbbc50e69600deb58076b7247a345b1d3cc823d6c4718fbfa98c57afb2d6e99ccd966ed67c5167d056fad35a35e551965dfd2192e51c74e7f23cbf1b5a7d93b1def64c63eed4b761858657fb4bf327b0c9b999a32d59520d7d778590b537f658baf5a6f3799a9fa2cebd005b0c6853d72c5f0b3f3147b7db864c4cbd85f5ec6b0c767d8e3b12893adcd36cc5eb893991eba00c698b0c4548444be0a0bea4172cde25f4a1779f294bd5e577c0ffb8b90263794396a7e997da12bdd93a20ad22bef51364f75d1863d6ed5eb46757cd8a2de297a53e1bc53959027edab8cb7e4ad9c48c158b69202d6a01e9f15bdf8dea32a75ea1d512d0a97ece1abd6692bde23ee6ebcc71cef117655900c31fb221fed836f9ec81273ded58de461281cad88c0732171cc79b813c1ca48c331c7c2c29ad94ed9c618238e97f1f2c9ee0439e65709c95d75181f7588036bbc435ce5e4aea2a8bf57f1b1ab8290e0a9f423f0589288483c1aa24b0c825047252186399c6995a68fdb56c5186f69f50a07c688afec0b7d7db53deca1cd3aedae7c37da3a24782cade94496a8d3563c9668051659f6702665773d2acb7089dec22277cd0367a2158f053ef154ba79e46da8abd371611b120f86f5695fa8c354b883d2e6b8ac77049e8ac5932d2c7b5e25057659f6da66a653a601ae7da8f48c95d5552c19a211000000001314402030140c070463b158382a9765397b14800c9bae526c509b66498e53c81863900120300000020000c1244800b5aff221b79000fb1315ba51b9b2cddfa045fecc9eb7daa0bcd30545994d6b81def239441d8853d9a1f557714ff8a3747403740da96f299a327661b427344e438f631fd7adb24bcdd6b3391534ef69def83131b9d11059809991b081022d039433b28717f4b8eb469830018f1c1b2511ee1fd11e73895d2314b6becb5a49dc237c88f7a1732f73db6161185847d4b94f1059f3d3c05a3835895ba4a92da1bdd68d5f6ba40702e7e24165efd89ec31c969d3c9be5cc8876a28aaab5d1974ebf05ab799a5e524615fc90524aaf12e99b4e4da114c7d4a85b7fd37b80fa4d036de13b6ed4033ecff504c59da3a891c4059de49b5bb98a8a88b0568e25f21b9ee2ae50ea1b1ec1426b4f69256d6002bfb419b0de702d27f1ea05544b2c4ff7bb9ae9084818307f9d8209c17033bdedc5e9a9c7ad8d99c487128cb4b7387982756c801451253ebaea3585f2846543af415fd6bb92561ae201bd10529a7a7838673cd6f53f983f7251209ac5d886cc85240077d0b76cfbdee27429730d582356168533a170bb5d36471d43236cfda9d55437299231813ea4beaca8b0e21d111c37011c11982ba2591c6936cb5d48391f092c5287dad64709f6a57aa4ad169c8283551f5af1b4f81cc90bb085aac5539baf380227ec1abe808b2c801d16e4d4fc390302293af69b39e4f2def0b3de389603b9332612f2a51c52df7fc0ce724fdac5b067488bb5c3e8a3c130206180ed4e4b8337ac52f4b542a01fb378354cff0a9cdf1dc181c9a9b7317fdd3502cc0ae5c93910cf41241222fd7e577e5655aa4dbd4accae7a899ca489d3ec80e102da05deb54421410e6f0d1fcc68fe87405ed5a62d9d1dfd6317c5902697077fdea865e9e938678862c482ee2735cb55826d348f7e9c6b56338ef78eee735bbe16e2b103f4cad79c14b83112a778aee2e55764ffb6d081fb641ab92939f6c4bc25bc6495aa1fbee59e81ea3bb720098114c121460bdd9867601219a791aa8b82e07a6d9f8230f0a22700ee0777fac4733608aea3b2b4bcbfadc0e2d9f1d5427887a56f5660934e55e965247fdbc8076e50a06913f939adc0a782a27c105e20fa21e09adface39863de7228227d4ab399d14148ad0558315c79f00af3abba4d18ebf8bdfaf8c4f66cc35e2aec95f531297fe61ecf2b6e51623f89cdcd42b06eacb9dcca6e62e97fadf703aeb38f8bd1c2bd043c4b2bc3e8e476afea18953a2e1923f9d3c60ca95eb29b446a00aa1478639491ed9796a6f40ab97f08bc26749412083be65a48de879f175baa7c8d987350353809adb7a180732ae74e907a44be9cabb1a6f07eac20270e63c4876f3bd3bfb60ebb8870a153facf76bae1edad40388f0ee10c08879d75410063c17774d7c9e4074dc96106d378a42fd2555e413e0827d67ae890db6cabf9d3430cf481abb2124ee4d4e7194e789735c98946f5287eb7a36cd1d3437aa124cf09c3690822cabcf7d1eaef8fd653043285d20187443ab113680090633f5f155ed5017561fa0aad8db34512b2fdf5a1a7a5a0157058437dd979230b93e57eff8f0515c437f040feb9bec366f8d3bb29adb03bd3852c9d1a808b947421f32b32282044b8c8aa0ee434b3c18011e92e240f79e41e7f7a3cd1992da8cdc7adf217cd671c37d01700e5f09e97923ce1df1e281149091b21dcea344f68dabdce855fe30e96966f1ce94461325bc8b311b842f866d30cafb8ce6fba0fad84c0a2dccab8744ac00d06d1ee02fbd38b43162a4fc58265c9ebabb54e8fb98f9472ebed0128f8abd0fa15259ebac26509b520812747cab31a07d437d26a86d82b5a8810e6c83a0facafccd5dddfa4a4a24885af7d6c30e897d5f47834facec1dc22f6ed0f92a65229b75ebe3eee34d610df7da8a1e7a0ceaf49e6f8f427ecf3385d8b0fa8615dedb5d1117438c7f1edd7ab0e34172f44293e85518e56ac88894029b73275e0df7aac58d0d285684f6d593e4debcfb7553c2139adbf516d0d608291fa3e570539e67a2d40a49dfcffb7481ce67e9b9739a8f708994aeed94222824f5fc50d965468794fe09658a086852cef4bc53fd6af89d81d8564d794b64fb1d18ffb88fcd40157b32c1c9db45dd71c1074104ff3ebb3847a1dc6b792919d1fad142819575928dcef261cbe78c8e7e0f1418ed3ea7411caf6f1312a29e1b6e6c7c1bfb3f772a0196f2ab8876f282000562dbb37db083d169536dee71ff682cc7850fc70fa7717367c25226fa600665ca7e99f147faf35659ceee8fe2f4938e7d9ddc957cda663ce198b543a55b74c7dad8194157bdd680b69a9dbc6e5d8ca7931165a6c8fdda192fbebb03e472a2dd3b444a9823cd4387d6a42e0d5a7d44aed54195362e9bf5f7d6b880f740994f10c3dc265c23adb33f30ca386ab90b2f7f430caaaf12a1959ae0bfe1743d0b0fb27747e147682346994e2bab55213b9bbaea1f336dc10ba0414b64353d37bd48f7ac1e865147cc7a1c5a86bac41fdd08f87704b08ffadf7dbc4594dcaf1703873c2cb817a706bb14efb8017e4f13bdee2e2d71012c0b104354b5e32fa2cdf8db5aa327713f6cf6e962982d808629a69bba07ce63a15c5ad097794df0b94358a49f69c1e0e7011aeecc4c47a6a59ec81127d7284cc7b321f2f5d632efe763815e77b1073d1f160c04daa0f478c3b56538c6c1460a5d027fc55d95f558d70b009064540d62284703379245b353c276f3f055e0cbfc5fa8ce22fd5cc740a9da3760f8929c95aad1d17369901d274868a1449677f4ba56c566db6e2cc45a957e98242db5129c20cd509796da0e4b785418544dbe6f179b3e2116867a241c67b5a46930d38200a8167abd625bc7226ddfd3b4b14f9a4086eee36358ed78a9ee44d31ceda216626e8fbadd0467a928b383a5c45203519637d1cf7db6eae20708ebe6ab9d19362dede563f9a68a007c605078481b26a6f120d0e9573d55ab39fabf4da9cbd4d5fd9f196c43a40d216197cb12b0c4b1e01010732eba06238ede36b20fd94aa161e0377fc1b9e6609a1a59d448a2de555dcba680f40b2c9c00670d9aec07826ee141fa4f74f602b7c850786c6d6b0d36b249126ffb4162127617a10c37ca411aef1c46dfc6a3a0ef247698279227c2f2ff56f6fd09f7bf7511062a5346288286494d20ab5eda405436b5bc41f7f5b88b1a12d673b281f8e5fb51d260d4312b692ae6e70a6009326978cc69afa77d420d22f3a796b2144bb2a2d17443ace86b58d3d7a6a3f6ff03663c01ae8c01288b083d7f3405acd41e3567dc8659049d569657c7a73d1c2b525db8854b91df59f7d9482aad4a0a273d3080c686148be174cf7a18baa73360e927346d0a7413937054cb415b4c0e7f7f1dc2ab459be09f1a61f5a00fdf7c39f1990dd81a9e94e7f2b8b351b810798c1af0706b972aff8ab705394019a50c829a621d0a13020b989c64f9174ffe02309cec18a9f7de675cafa003f38cc5f6c6cacfbf3b429dbe3fe44b9e0f89c6aee4d04e11c2b891a5e48c02d850d404cc4b1e0aa6cb5c79cbac5635f8e7e898da4e40a85035d818e4057507dd10049e77372a159616a99991a0c566bef8701df8665234c48135c799b14009d1de10fd00ac0deab32ef815b909ec42cf3391e503f4fcb28d4bb82cf98c4c305e2198903c29f9764505b62ceb186f39361999c36f7479afb0d1366701cc9f4efd0aa35380417ecec931cd0d05f04dc59d09179860cfe2a4ecdd4de2795fcbc414bc28255fd7382ea68fb6d9ef32e3f8fda27048d29c9aebd8a96ddda49d15f6e6a16ce84a6a2e0c6687099a02fe5f53d7db5d8e70749c62256d9d1509e630e2200e87e20b2242dd375cfa1b2884e8874d2d300c13977bebff486ffb3d376bd39a678e6908780ee894e54c40457d3be4c2e3f3d7589d36b8bd90c66e9aa28428e88032b536b01ff4991d8f455562e468ab544243e4059d0fce3ce912fde4ce96f5c5d86be74b400f352cccd2bda34b98d902656225dcca0bf1215d9c4f3a04ee07a102f79607d894c15b520cf94bc20539e30a3139618f0b2ae991944eac33555806ace8815ef2d4942408a0c7dbac667f55464e94d029552666aca6cd78a4f2745f8995e4d7df39c554a4fea3f122b90a8145f134d82e0e426048f7601e5b814318627260aa7e492452584904659a035db933fab03307922c5850f9c3e3f80153ca2f07c105562f1fd9110cf1997e582d894c2256a9d9573bb4489a8474aa41e3693cf1e0a822bef4cf65b11f5a4a8029ba02c0c42a9fbd30b18c701bb695b6c49108a529e83d7adcc984efde72b148bbf9d0d410ac3815c67bb7235279b39263192ec419cd0d1d21dba8ca77dec960941ecec3a73ca78f7d921e2742324299e42e36145272d73f3daaa3b32cb64dc73e7e11ae0724c36444a7f3593f90f57394155ae50cc75c7b3be2cd2b77698d70bcf480d476ff5addbbb62d8c692effff0e839ccff56b39b1f2f3e42c07ef091973e32ad8e576dd62bc5db188246c49dc4e225f8e9b3444496521eacf492bca814b856a092022adc4b357dea27f3b509ef706195aaeafb674f316201592169d15b7e34b6b7dcd3624c4d2a2f3aaa280cf6bc62fc4b625d592e1cbc0e045ea972bcf577e61a54fe508746ac4db594b63ea1479d9213704067771a46c000bf73ca439b138c89462e4b71e60b465863e5a830f987a2f4c8148a729b447fcb0970378090653ee0da33ea42579bb094508ae023b4a1bef594f80a4664d9f8192c8caba682de15f9054085526f475017e0744235633ed6427a1acb49617d864f754ce006a5f3d9b886a969f0dab7c9a0e25c26e52ed01789c521e4a8484c7ac187ab77830d93b37ba7775fe4901f955a189d6d12acc6d774d8a62c32825300638efa3ca2745e7253a6c958a6e528f3e1d2d6d07b7e09a8d6010f8d2c2fbd6f74df3e975e939d13a966f3b4f2a947fed907495985a8bead785312a1639d7d72c4f6bea24990a8c8cca9bbe213d0078453fc6cba19eb9d56383a29842b2887f13adc50f1f070c548156792d40befa3f9b0d03c9e01f14a3ee54832f64f2ea07553fdc2391ef2e11db2a984224cd6d72a96322b39f256f86f5e41cefa96899930cc9b4a5d0a0c3dd51d17a4f0decd6592bb2c56dd4549e6d015accaf663def3da3a096334456d8a55565e8e88af26336c13556b3317d3f3c403744c0622b34cb32e6f0e326a3c900c0341264e47774bb1ecc90abd8d095d0aeaf2959e1d3c102e14ae57c76f3463f39ea8d24ae6a4c0fef2a4976dbf43d4bef935ee62ec91a6e3ecbb0341b0798e700907b18486811672b4731e67b841cfcfd40d657254f9870f8025dc6234ac6ea919f1a0b98f3e91ee81da4b21ad806b8e516bd36c71caf57c147dfc68118e63e75881f3116f2b16a8a04a688245dd4ce602d57a8e1fece5300a88ed5c7bfdef5827e01c1538c652d684fa8a62490897e5a06c3eef44b981423189de5103577ce10c5fbaf024526d2ec86303f3bb347277b133311cb3f4a3b88fefb48bcb1adf7d56d3c266d9c9f2472dcbfeab72476372eb39d94ff204c7b00c20cf62295cb247f0780f3f0c191c699e27ad98bd6ad7d902d61c017ffeddc7809eec2f7e80c3798daa49a98109b9967c5f98d2877904a8bc4f2e7b6402f80b67493838050b51f4c1604b64ad9544b0d8363a2634fa1c225f56330f6b3814e04ea164e1584f93885a37252241118da29b510fdaa614d122da442385e61eae903d63fe5983233814a91ab9a99446d156724996ee2bfbb91c85bbe8869a463b02bef01565d2d1fca5d87ae23939bb532473c16fb7f8150a32202f5ee2eb015168f0249ed84b7a65506e2fa3dc4c0e81ef4cd4becd4a616a6c2312f5213e91dbdfb35344c5d9c7435cab45193fd499fa6f5e31ab83d00ba5bc58aae10cd0715ea6110af6f84d249795a187a95dcbff80daa1749383b310e6c1ee068247a9a2e2c321a81596a2b99a0c6296c9c9b86525394313a38ba1aacfbfe75b48727060e14985187ba0242012d0c22c9b7508194a8c04e825ec9734f62816d4c2d3836f085b9a4d6bb97f7af0ec2a85041948a5bfd2bebb5a1a5339ce729ed0965d2ff1598f3e1e533b95266c4655613c4e21abd7bb0ac82ddc8b4d58331c10c31c8726a981eb3d30f4e28e9863814f42bcdb1666cfa6729db5206317db924f669482766561ad27259112aeb6ba8970fd52fee40208afed5fca1e679942c532456e1aac12a242b3f56f55b592fd569fb384291a0b4ff0d8682e2d9caa8d46386f0ffa8a30aa9541380801f27f5b60246c574b1ca170dd2ea886bfe473ad6e055d09bb62ff5850410e7b231aeea855da2aa8a41b79ff88ecc025902d5298ddeb2a84f2caa44f7fce1912de93750c51c3751f352a5034d253f986699495c1fd794bf0c8be082132943c1896959f231804762f5559b336de265e0370c719cd9ede74524f81dcb8b113a10e29df401290276c786cd4cc09d5d7e51492a054b087d25001c13bdc4bf88100c13d9221e2551ce580e9ed18cebd617aff59fe07eb683a72bfb8d716e84a66a252807fc2c67a452ab3452569a9bd95012a5f94f7e24bb6fa5e83a53713ec4dd8f9b50865730b71fe236aa94f6bd2d34a8c97f4ba56ca4bd803cfac2a9f0953420e4fe2eb6862e041b5540592d9200a09f5e320e9a6ddbc34585810912d0dccc79697064241a9d960d88a941075580053b89728f0e1e893f31b71b12da846bae282b62ca40f9dc61598b2ee2c32dd7708064ab0ac6941528e99a36c3431c5988949973599e47c4988655f5ec961646e9933af5bc9490d159f90a0fb61fd81c8eb8b4771298592e20f3af206aab923a862a3d9570344d21e271588984019e7eff9a8d581442f954c4770eac33e2e251f0c6c8e10662837feffc8245cb11920f7629718d6b985651616e9efbf30c5130bfd0111922889ae233631b11014f1206705d7a93c0f14994f68a82a14e93528350f01189a024391c97ed78222a2300482499a916a2812cc234863a467f923e046446067cf1f31f120a1d546a834a7c360e53fe5c9f0c8d712064860bfaefb7f02a0f3026bb45e4fe73c893c702c86e4bb6a3a5420af1f11c27b43090bf5701810f514eb6ac78165854181f0f1dd3ee0b53263ac31b5dc50f3653eea8df19476688f15f9603612a92d9e098aeca8a5ea8142336fd2b8252d6c2404ab3888500722117d23f50d6231f6876d6b6f2a26eb6b4e58c08877ef647d11be216c15b021e5e33f28a7e5660dbdba11ab3850b0393fce875a0a6ac79fcb21c7451d94e35bdbcbf4d778a80e9d7f51e6b18ebb9e70a454b3b0a26415f1184d67df86be84e68f27e5688b75b5d5748229b4cce523b09deda1b00362eb65298b03a99b60f58483d025c8a5a721dd9a41cd5a248b9d42bfd72202d4012b8b395264d765dae581d182b8e199e48f139174088bea5a1deabd1713464be68240dfdbd662251e2d264b29358c20f646c61fd86ec06d824c2271fb0318f10a27dcd97a9b0e2d3a04c795ad3e0d8e6e9f37a393880d7d3fece448d02d8defc51d8525032931754eca9756bfa267700d8538113b11dd8d704a24225f29ceda521abd31d06bc34e8bf6373d3d5c7b59b0835b099830ad6a61ee3a4fd5cbb92a2f66bc8b30cd40c89cd434e833d104c6daf9df3d67a84800800bbf46a75862ae4b13e0323358e492ec085b914a2fbff3d28e98d339a616f258f9efdc8068be066360848fb02be144fff1197f7ed3a7fc8d9311913aeb9dd4954519adb2300ce2ef744ba0528ec3948f1336df9121292b85cd95fa5a6f990b6a690d3c3bad16359cf77e4329e2fc89054ac03faf94ec4f69cd549606e09660c23f92a2cbf2bb2bd46dc13dc99f772eef219bd41c24d50be0706724fe20cd1e1c26226fe3460bf41cc057c782bc89f3e5a9b74202c9842638882dfd5ff8248d1c2071ff8fc52d22405c1fd91d99e4f1ec0170a1bd4479c560c8ed684a345fb8b5ccbe461252190c362936999eda71772497bce26205def90fafa4411d057e6039216630caa963a7196a1746b59e73b91e0f328c592ecac14cc38d466dd97792a5ae03060b5e26050abab52df9863e1f24d8914447b71c39a8a42a38241dcefa154e69ef201ebec2e2df37143a528bbe324e5b2d4687b2b6da4b7c898baebf42e71e3e645e280bc84080b5f0641518f7f97e89ebe074be229625d596d321cf0cad8e358a1ae130e0d56453b8beccee1a8f4c5c5abe542b18e6c5e58abe3e6eb7188c54ce02afd9092bb2a22d2419e0eba9df7e0ac2ac8a7d6144e62b2f28a4083b6d4bad4134ca50e725c1d82d288d15ae044c41c49a71c6f4e68175a0fcfd41f8f4a0d7f6fd64276719970644709808a528d1bad143be33482922ad7d31345f76290038fbaaf54aa8ad795ceab8df11070a063b79012c831837f4e1b969b685d8d88e440211c679a264df692cf4959ac96ccd1fb976b009cb472a13a8f7b853d16a4adb06d195a6e60dbc9dafb4a103fdbb06a4ff4baaa193046aca8f69f3efe19be810d08bc6b83c11087954475d0e38e2f9829566072c3e69d3347ac3e4f25310d88b9072a9c48278834e70901fc7a082f5b5e0f09a3f85a3253603a7d10011aa11fc30d5293c4d57fe56992342a2e66eb60346f2d7f6c4d18dd8cc6d7683aee6473a3f0f9ea8e6fd1f02391f823c5f045cdb20cc6dff0ea2269544d9dcad8e76794c57a5f87e610bfc3bd22b07d7f94f00786c1cc6c92d001855989b831bbf7fe5d189686f6ae52ae67f91f8f87bad86f978fc5278a060df3c0948a2febe4639dea548d8eced34292bead3d74a7348132d6604b9b6f68546f35e1977eb2e45ce609a0a25db364f2350db7632f7dee01bca235b6e44e27072cc66853c6969638e0cf958e66307c6636ec5a2c1ce37a0ce35c79e2204cb1ace371115124e8249aa228173477f44be82abaa6862ad982f5b7a6d87948fdb67376105d981e22644c57822cd9801eb644bbf581b3163688052b72550b121e3b6134234f3dbe69620b4fb9e2a1bb2d1ae85d4097a4386bc884e70190a4ad97fc47b8bfbfddbfd5d629e05b49f06a52876530a7aad3753c3bab87afa23cc85c21f94aa60e0cb25f220ff00a576e341df2d1917dec00aa8553fef603f1c1dd24aef491b932b6df84d784abeada098583e7b2ccc8d400408240b3fd58f4dabb56c648a5c3cef3019ccab07ee1930a7db4dc97e1845097bafffd58b9d22fa9ddcb9b704214fb7362132f3d094ddf959a159be08c1ef279465ca2f56fd7f2a23216346f91b8b0230a35cd75f8c694174e416054d2919350bff89ebcd1b67fcfcb7f821034eff4b839e85cefd86d1b995115eb8f782cdac6390cf3e284587ae3ac91b46843e51c7e32bcb98c6f3e6a68f53a2299ace4ac5a8f89ad3c8e9dd8f970763114fd0e61318c81517d4c7fbfcdb95d9eecc89792afcfa718ab46e947013247966188295370551c85aeb2ad091495c54fb4a341d45e4317650d498468407a5e1199088a057eac11f0f76efaff375e166833e0933de0cb6e978b7d55a51e4e57afe9a7df7330a170e30554c9bf2d36ed12191fe73e3a310c0cdeb3a47d940471cb04c563097bcfa93db221a7660f0233a8123e68b1b66df074bf566871ee0365bcc68ed170cccd943dea019fea530580e8eb98822fd28fee056b70b56b65b1282846a4f77a3c0ffdf97f2f20a6b72f870d6dc38b6692752c15dbee1776c39f804d74356cb4137fc65e16fd6bac017dd7667c9a10eb2d088d06f0e03a989e21b31bcdf30fa1b6e7de5487f30c45a28ff32b26c7307f6755ea7b5af20f4643dcce820c47e3c512350aa0b59a3918d2d842706078aa1f896971bcdb8addc668199029d26a543144d03d1fd65b49308b5b3ce0a0c167560a198682d5ae25f34554aa6f12f0595b363a34b1eb8563f6f535802b135908617c242eebb50b8cbc2cc6813c4f104b7c37e7ff34048304370ab13d30e8fe19a28bac5549f6e2931e9a3f8d442799d00ae94af7c6e3600cf35ac06d9fa50b2c4b7d4ef88514acdd8ef7200b2c0a91e05120ae8ec53b1d9d6636594205bff6f84ed927768352daf0fd9bd6e83e720e0cfd1cd73178f179bdc6a02042fb120ab33688bae58d6e380113f3cb6b21fabf2526460defd9c03c5c7a219055e1e4ca471c41710691872fbfcac1f50c8a1fe7d7dec17d66c33bd0bccc314a0b4e9a2631885a1f3df67dcba0f0e28300d7fb7b1f989221ef1a9d8b21b6cd08e1e1d6b4efb6600cfc46c87f3e12471f51a0f96afb200d41a441590afbd72d1e9e677df236ab6c112021ce5d0bbb529416bc1e3bb7d7d411ea98ae647a4b48e866f240673bd616b752bb3ba611878b4507b0959c2be4327dda8faf21e5f3bd10de804b518bc7ba1067bfc88aab2189e50a876a83f311e08e2948ba7f5055816cee44979616570b0acbb3aee9d45b91fd0928ff3a4b4761d71062e64826bd7337ab9c00fd1af0a30be04bf35a730cc076dc075f4bb25e68d28ccacf0f7b03d208162a1fca8d4722c8020492c4d403aad2a693384d438595dcaf405059f41348d722bff9a4be0c9e7f53b6fc9193312dc568c5c27e78d6bb0123329fe562b34e1bdd1e6a05ee1d976c14591336c4acf9e6e246268053441205bdea11090685ec2afaaddce46262d9c3f3f02dddb7402dc74d42fa25756738ee0fb1dd503e16267ab574833cd5014ec8deb322d0af6aefe3840f9ae81cf2d87adab820580e266c32ad6df2b966bc06954a0e62936974e6c5dd85d8b431f5208370c92c37fdad9fb78e891a14cd218e7ecc7d01601855464aaacd68d91700ccd2dc8be2e21ce6520bc8f219974cafc642041a63cfeed5fa331154e24a0413e67138017b31f4979565e63c852b7b6721d724c405f78e1f6b9dffba93f3de845596ff5c2b4241522dc592da4175999446ca2fc1d07781df2c2b01449540d2bb16d4375fbd5c98d8590909b872bc0ee18f50283a763b0d26944a5ef14087d37a1cbce9a914c2b35a5eaa2d5e129ce5a606041779a241e36ac0925b7c2e85f1c5eac5cc2326bfe3a514781feb269bb905f5bf766e7737b7579e160f3595ff9b9bbddb0fdf69d2c5b63f0de6263f0547bc288feee890cd0dcc3554286807ffa27f9aaddee0e0607e189951dc5017d6b4290cd44b4d87c470beaf52e8fc1aa7a226072fe0259db9942a90f0b691802a518d6109202300a002f40a1f66530dcceb9ab4ed4798ab94658fba2206f1468cc07cbdf075c9e62af29306acc39a83e844c61428d49c69228f9f052312967b7968751ff3f9f4aec3651353a0163dcf28746c7d6b0abbdf96edc932941329dc71b4936a37534ddcba36408878133a6da6ec8939c08a158fa505da4b4e5d5952368a9b4d1328cf81b040a4e8c01267def160579053da33eef8a8589516c5b90f24033c349b6ca3607009a12e63f94de3d97b39ffe77d01382703e303fdb687908e747906c9d968f8ce8890a5c0b9edac2dda1741bdd1bd27403e1cac94ddb64eff7070b8e0537e226058f60f92c0b23dc6f8b40d9b10584bc44a6928fd312cfa208998dc1361a7ce99919ef210351f21e186aed994347627fe573a15b6f7dd48a6cce38944c75f3d53dc2f1ff2e56ef36f4fe6d3c214f8abdaca68be78257fd3a87c8bbca13429ad7d77ac09e3ea6e9aaf23f3d9ad02f0328246983b93aa0a4a7ba91fe82861b7978e49d823e48bf063005b4eb81a24a8fec76aad56b18b4344073bb6fae7d96010922e2a1519b29ecff9b531f5310eb6b396c3e53e1245494981cb9f5ce2fcce77d12a134fcdaf5ec3fb1818732e77ea8e4bda4be8a63442e50839b2e91cd5c432755eda3b4e9a3c0e2159b0ee9be60203dc6d80f05807fc2189d9b25aa3eb20368ade9161deeca609928a0878599a66ba10ee1c82f476f47ea278d67c6153c126a640c53e2b0dc59e3c19914e0397b2b54c65f72345aa2f18572e7184d65248f49376fc1b48e3bce390ed455da1ad06888bcd1cb7bcac6f9f367eaa00ef6891470c43255766a7a6dda124a6d7c4edad5117cb3b070ed9213a55da93f85b03eff0040649e7b9c5aeb65fbeda528252bd31a41891a99f5915291050b59ecd234c2c4a860f1f459f10095c8866e1754f69050c327fb4589c00507ef8765e87393ee57d4298e005fff5dd473866b2111f194f3143b688095a1397acc2f96e8460f86ae96179caf1073bd0d239e19a41d533710c920ef4164feefa168e9c19df6795a4564b0d532b423f5dd16b7eb61588a7480fea0f6f212e04fe8053728567547d011eb145863a934c31d7c069ee286e3f1581abba4aa6fd95f72c5c81792ff90627d1fc4dbadf623e80350c06b0b138ac5ad4f88ca8599b04c65acf7e8b3b0791092eb93b9685847a2d7bb2e5327236e3b869e4df5bcb3d76ba63c3a44223a779e7937ecd7ab974e07a8a3f381844536ba91e85fd14bff200a9bbdd5914417aa3c22e5777ea5000724298c3a4e2937a6c0e1e443350b786f09d91bacb247900f651c3d7be974ec4e757ec449b047beca1dce60f8551ee8c2a594b1277969a488bed1466cba20e8283d618b1b1ef5885d3cc2e72cbf0e393d4117781ce8611d1adc8aaf15f841dd284c4182b2263b598754ba30ad3826dceac537f02669e25afd70847296ac3d79209f4b4f135abbd4c1f4ac9ed4801e9b2647b4bcc1b0c23d90d41d30207d704ca9da15ecb90fba069e677165b4822e9a6f8e53c730693ec4b83491c8628f78ef84f8405b36d9a9f1354fccd82b12a5d66bc27ce300af332135fa420d86f8b02980c88c2192048a94470300300223b3c4478d7c68e4eb2678b99c0fe8b233404a9aea84976926c417e0a55c3bdd8812a53261c261d9bd410207475fb9ee5a745768ab32234957440b7a23a4784d5c300d09845d27ccf7d63e2340bf14bf5580b32f06bc98cf1b06be0762fb8e2effcdb94be17a6f0df70fdac6ac15e5cf116605fe407a4210eea9dfb313a4f5ec84e35f795bf2067d029feb44796fa298bbd4ccff932aca8ef63f74d1114f919b550b713e11012e578d2d551182ea02f9d531d0a75f7068881c1a8e0f68ae841abcdecf6225e7cde2d565312cdb926459aee06f963e66230e376e991663b354360f0b73fba4e7ac5507a54b8d03c117189b4f100926a1459a9fe8ff537e480274f769cc6e91c699093f3e57d55583b1120d66e7678de4a1c4f0d1a623ce7020559acabf583df422db2005b7899c80e589e1b5c8acdd38ae90ec8cd864cb8275a001fe4f0581051fa5eda2ac7a5c27f0b13c0639f3c13ed7e01134588efa49c64ea2b5962d56f04fb5a8d376b9de831ca297e778c3477d3281a6a2d968fe85449631401e04710ec4211cf0d6c9314586bee9ace8b195e86b197ded4ca22dbe678194dc8200e9e90aab3853bf93f1d82ac34d2acc64005663d261900fce8345d817290321b6b69fc911791f9b75369f418ccad0391f756fecceccdb8546ddd07b3da45d634efffb15a79887dda85b61a92a8b7d31e48c3a24c551367c83de8691aa626f75c0821c0a51e7dce91512cae90f55fbc07a084541e6c2d9244ec2a04db1f87d04e1e9626f1a1643f61c9624743b6ea2404332bbccd3bd5181ac0405af9791bd8454a45eedc8062f47d53c43432ed44fb04f95d4140ad78ed4ef6691b46c96a6897430b0219dabbcca3522b0d651b34578da4867d327fd4fffa6bda30350b394bd7318075377ccbb85ea795362b4682baa59493125caf0e4b30444ab2a9ee900779d14583d2afa0c39ee95cec03b87b3a3ed7b51d8f7888b94fc11513f171e1e0fdcb026da852fac5a2c4d12d088743cb473d8cd99182a96aaeabf18274ea5ac94f339f4f241406fecb496127f4f781ee5ed94061b167ecbaef10f95407b3094f87422400e442f8f1ff4ddbf81952c80a61439ec83f0ee7ca37090f43ec076ce819167637cb2450feabb704a62ed45d1cf2d1dbd11ef55c8c89508791ee5804afef460a6f6174e922e715204c83755e07bb8e1f4ae6a7d9fa9681f6213cc3731ac47bff8df3adac67673f95a91f7033cf4030fa6324d25a4c65bd2f91aa9971e4cf5026cc5ee96b1fb0b71a5eb6ab0e158f30421579fa6a0188adaaa47e19172e0055ef33d9d65e70ce8bcc7ea53ca49bcf523bf0cbe443df12e4379f27f757fa055f771291118e845cb9f85e3cf1e2b5d618e6c2a9de1c5889e910d0b20422f4c54b606b716bd8f545530ae42eab8eede18c4b902ebb4884e0287629680104404d846ae7c9ec897badc2148562b6f38fc503e9b3800a7ca7f72202f4bc9b995e02862266cbc9789c8c2c3df7b18b03b11538f07ca29566f3e9c411d6fc4e448407e7cea93e7bc2c7302141ce4bfe03f61ff063b5a4093ef56dbe1d3db803d4fe7966bf23c55d6eb2cc889a666560ede5df0c85a633d540b26ff0024557fd97928d2a838a7fe0c208c9a167338bca621e29ec94b81bdea6505c130ffe6478f1e961913ce0b4f60b99952505a6f0592413628cf58a4e204fef85e2e2983d5120311efa61582a9bda34e3971469460c32718cc6c879d4e8e8f3c12412b68663c0faf42a8e5983dac7ef6bfa8b589eae1955a669f9e85c00237692c9c198143e2d4205921e4b6f25f88cdd6eb42c0d9dc120c75b1aeed5048a5adf04e132f1b712f093887aa9c509489a1239909ca39959b8241d8138502cc8501f063c42443856d07515447196b84673d97ecf0f7c3a46bbb0342dba3cc755c7d91fa721c0d52b1562e6d3a9a433571c75551d794163c9cc811495c508cbbf029b0400a4ebd0699b0a2f5b7fb5ddd1846c15a949dc09db494393977842cdba3528af48d8d516a6e2ae31f2ed0f4c363f0e3bcf810b188f1cd6d786c711ec15f359d0451de79d0828c0d72fe639c9d5076d692b36d3cbacab204d39b3cedc95207da13c41891400e1596bf6680080c08ebcecd6dba65887c780a43e14f73666b47974aa78840055c410cc5e0404ec1a491cdbc056d4576e6d5ec2e5d5a936b4e5edc54d17ce9b1126cb2e660b5fd7989c0342034fe5cdcaadc7a700d1a17c126fb884418a62cc3ef0457c66f55cb78be99dcfa85fb2f607359837ec05b9b9041d6badc038abec51a3c8eea636e1c7c49f8fc1b3167eba483a97294649051b26917076ad10e1438bec577e577a36b5621c7ad606a9db42f7a7ab2142505875daa430c62aa18eabcd5ff6c8feb8374b9fbcbac8c2e880c96bd85f42348ea47a340ff0fb48f5a9f08210fc3a2d28317122d4675f99eae9a5700dba91d595048c5e72f70f2fc6b9369404b7ccb99c0256a6c1f5a01cc4ebeadb4dd25a5d380f398824024666a098745cb019e9140b7ef6907037e65f09b68621b0db3390406544407bb88728f31270d33a9673b2ab589f3f123270a6ea4d21b0446f252cdf81633e011a9b8d66f40ac8fae2abe7ac9aa0d5009a352cdb3c42eb9636f93f86e67531201e32eb00329add1e4d40121c8175954ea0d8c5dca03eb98872e67e438b4acf3491c876c39df622bc59b73fad563b9f83e4335b480323640d04052af341a8efb7682eed6ec750df956086a67cef0c16748d90499744d9459b3871adbb042a186a64abe97f4d87d0d47a1e1a08a16158752489040d901f284243da8d7cab96dd9559c9c76ce14651cb3f3be402e8e294dc36593356ba23a517071af04d0b57dc07ee2cc043223e067717a414f44bed54408f5ff1d43cafd3a93bf4ee0ae6483a14add40f3d830982c92a32b856a765d1ce37ab4bcb4e6094643ebfec7eca9059542f45c5acf8d607d0c7f00b84b49ddf765d02ae20d025f4783412eca396dc70290348b6d0cf494cd65273aa7890d4a587aed12ade34d4c0a13f9567424f29483cf3ef3cdfecfdeec6f90ec4e310eeb8eb25df1dad9ea0b40623c50c1357997591bdf42e52d957a24e5f446d2c3b21a6b4acccaa48a8b8cbe1265048ff6540b01cbb70bcc9f1bbc9087dcae68a2cdd0ee55d8207c65daec58923997f18ece57e9a7b5c5b6c5353db929e1a11944fc169e0930e15725efeee1875ffd862af390653f71b67c1e4c3bfdba055bb2df6a50a69703059989dcc108e9e14dc37cbc5a8904e94841db4ba5e64754d7cee67fc9fe02bcce134f08fe7cd806cf6a8d850f5292ef570b3b3ce37b7c76de84391ac3fe55ca260273703b11d8abe7b78186e8ae5ec778f65c12da40e8eac580a70d83e6a3b0817d9710daeba299cc4de255086c4a0898645b347b05ccbff9ec111cbceea523f3c098ccde3807df84daab9789bf85386e9933ef04a20cc79c2212d98f4ab0e5822102cc62195439514afa020045dd9bab4e89279472f240119d601e885ada824ea192725fbc78d325c82b15710cd903919850554b68174b3b8469d02eb1e5c65342e9cefe0c15c3b51436b2bfb9cca56594f78d7ed5bb0d2e272d21c529bcce613e1199c8ff6300615268e883f3b5ad879fd09f5886b97516e048d1fa4cd54d7e668709bcef06baa4b47a26b6b025b46a8e914b901c8c2c1296a8121f6bcea1631b3e724fdce92f53c054ed15e31ea29edb2b1821a3ecf4eec9ae45424d14bb4f7a4294ee7673036f086f15aa20f4151559766195dfc26ef3743ecc8d6b97910ab056c73ec37454df9acf15f104c0f47c85b1351e54041db97e0c31374694ddf5a88accff9e9b475140a88d9f5bb6a825e6573f56dbe7574250db6c3d9f2c5efd651883f21024beda4cb4330ded857a891ab008ae2b238eb59d4893217e4180fdce196f439fc53e56bc5d4453417deb2c0d89aaddc47aba000469dbef4be4a036a3967394c60713fdd2bc5b03cceda2c8d071792c2fefd11d63d35a2dd66c5fc3859b6984724d471e4c33850a814955a8b0a6ebc1df4690cd1e68431f808bde1eb2bc8776028c4484158439053cc6113c68355fb8f409d30528971ecaa0064c87028e8b8974c73e46aa68e9b04258865905af74ffc998a39160acf68effff4ee0714945d8f9de31b80a49860a87303b0e512ff01bbb2cca2c90981c51a9d52ed7e091e9e049e2fab3671a0be428a69e53eab57c5501f288e36a347fc3f06c89b179a741e59919cbf0574a8017f825fe050489f6aea012fdeb4c3484fe455d4d056a8bf34e03f30b866032e250f3a8ed6a060415b172d84cb29c964442963c31b3e242c520a792f95ab218b4c9acc13484b9a2062685bdee7520c79e9c3115a479b742c6fb6b6cb088c74784c7ab1457fbd753c0ca1220c4712494adb4d1804c5dae3e49c9023885ef263090b4a8c11688e00d1fc63f083f2d1089964bc4b164cc6d9b79568fa4d6ae2f4714a5521680e27ef0c4bf0ae5f7c8daa1ad39e24a6c065e021d166ba05b1b20535374b20f5c611d6c04b1e7b9d71caf09076d0117480ed377b86d92e992183e1ad81a99b65ed4c190e7f9df647f34c83c1990d7263117f2a44cd64000414623985b0b2d15846f1488a33ba0daf5a941403802d0d3624b105ce30b7f346af5e53c7a7b826c167a4a38ff3ddca79027619d20e2a7f871b9c4a042dc529981040a39cc1a65ba1db8b620466e863d6cfdd6b3060c7781455dc9a1aa16370e41912ea43db1ed519e35207a2f8b3e27abed020a300087230e2f1b4048a593bf8d0066212b5836ced6d56292d3017f46f2c44c1693fce19ab69046dd964b0d2f0f24f5164325d9c145a2285c7f07e80615a579fb86a996d64b6ac8ec544c5cd8094dbe72c2d548503c2a5df80d94f2fe821716a18f3a471e63364a4e40f7e0eaf70912af81eaa9d7797f8ad34c81daa4f0374b1989e895962ce9c4e004c9cd9dbd068a41e50c4f3f349097fec249cb1f04bd060245d4eade4fb4c0584482a214a38c8e99eef99a793417934854cde716f875a2df6b20460d20a9a871358058822db19e1fd74c9bdf4667ea2836b483c06ac2ab7a0d10f79850cda9e9d3e0352064558d14ac821304f18b8f9f16c1eefb05b4b4976b7dc01ff51bfbd724c0e2a115806e9136832ec64767a958b101838a0a3c2692bfbb6afa12488556b2015876b28ab55b663f89a7a0731e12b28138dd2f50a275abe153caf4abc950c8a7c5f4c4a506aed02640b736c3874125dc39ed4d31dcc0b84bb947c3e506d7f40d78051ac529047d5771919e277d8d0f391d6f086c208257d923cf43ccfd89d05aa5044e9de9a1334e36c1f161e71a947f776baa2964034051012f30a61804e6afbaae2fda68a8b627d239e1e34e81c375e0e5d0badd10b79b50c01fa1d81da65932ff651536e58d86653795d2957601230fda9a64a36b10582acd82d9607bce4d0607e2cf773c71f9e537b049f88e0c946942f9bd3207c96be9d0a05e053a62966b59f27bbf716063cd0e28965d0873d503eaac70f9e0915ebbcbcb852ddd1823f2a67453298e80265a7e1ab4c936b1c9e2ca87ec1b58d1da0eccefa4a3c176e134bc0603d6e2ec3580f315b703128133ecd39b7740a8343015070637d37f9b3345df12d7cad114de6b76dd182a5dcfec9da01ce2737ff8559bd6b3a7d6da5cd520aa034d4898848c0957ced6a0ea33794436925e7c71665771c1e9310997fc5d4348787cae234442c707775fb64bf78f735e7a0477f82d96372fc0e5d8ce04975924f6d05aee980a8bc383b31f551816d6d5a3790f732656e93299af92cc9f608310030f072ab027548116e4a92c5a88830caec966095742aed0249a40e5dc7f73e5c1b752ac6b8d664b0c03590ef398eb6553af67dcb8f71ce852df0e55ede5e4bdd8da169c70751da50e5a22d52fbcd570e0b22504c6795a0ee211f6d780fbea2635181fb5d8cb71af5ddef8c26a9c2890a4a5c55f6bf322072444a35f09777b2f8912cbe6de0f8cec0bf4a5d12a571778fc591dc7aaca757c37015c20e1558e0ef16cd16a536cbb440bfb81ea63848dc67d74ee0862ba93b292d3839179d676af053886372ead8d0c10ef15313340310c83167c80fc846f9b677a7f4798377132a7443c4b1ebe4531ae61eb0a8f807932b7d88c70b01d088a439f69e2f898b0d3640042c7fe75050a29f8ab021161c65f8c139d5926d3818cd322c7d4421652f45a87d418e13a1cd5b8b4e32a9f633056aac1810de39bb702344ce61525dab67f33966a707be62ff78e9582d1dead72ccf4ea9ad8fe7f546aecb17dbc03d28ec7caec6d989e6122ea06e9ed6ca95aa3d84438de45158348090b59b552324fa99917336465d25e78ccdab5db0e0834f8e120c34aa9ff917df48b7bd6947ce748d86d41ea14cb4e49868b1ee448c2bf6abbdb6a8da3530c7bfb7a955d2feae6ea59d6c45e2bcc4d5fd4c5845180ae0415b3547d60aeeba1fdaa4380647d4ddc33054a9521562b5b0a0498ad8a23e535914e56b6a2f259e5ca53e42b699143a724a885f132e3ee0a7d8a2a2b01585b74d50da415c960b625a3f0584b60e8caa9dab099e1ba00d3b0a36e348a3cb592500c0118b470f6e3b36a27cc6cb52b1efa4e87e0e5151188649790b04ba112d9cbd7ce38e2069d894110a9cd242b7574850fee71d0a64d251febefed08da0a5ef05c350bf633b520c7850193adc126ffbf14a58a3b8875282025a5b8b783841a461e3f65a90a735af632c7050d7a7aa8c252ca2d646fd02254fc0c5f8d12ba4c38394fbdc395d8653ffe4ecb1614c64065f3c738a2fa402c1939f45434218f245bc0333a6a9ed72ac21c659edcdd380a643092ac6344d0d10aa2460f7784f7c81001d3dad8b8eff535fa305acdba969a5f9b9fa46f09c3767b6e99160837ca3e65abb7251b4e0bb13665216209f5c3050063fb9746579b69a3d33e7cd61111434f616af2b239ebbdebd0015196320db080a0f24c1b1e9c21cc4821211c4e8008b977551ee8e6d45e930844e2feb9a1642d6808123a85de80b4c182b61f07d80e7b62c6b251417808686ebcd65ebd3a21d1eaba7b1a5ef0c1a9d53daf9f0d5f051be5c89e23f9e3f876b26498433f52d24345ab21631719412bfc4d398493eecbc2d559a93fb529b7048b32763098bf9da0da28fcadbc58354a4d4f7ef4016397870ce89b686e131f31f73a663dddcd8daa99b1135dbfd9fbf9325cc878e5f3eb3c4cba79dc402a75f79a7ea6084b70dd08a9591427b8f6795203b530db5d36a7aa899dde432717b979757587135c9d060c94ea359494c8872a4f7fdd42f61d424c23e6a1a70836e893c6106f8caf282636d5512d5f0f50a7884d356a9110552bab0e7cbb7f13edddc60909264258bbc80e1fee9a07a53b2f5e505fb62768f7ad777f3dcf29754c8e8f16e406fc27e8f546a3570a021178705497a7daf0acdb5a97192b66b025d6615e99f76ef099dafb07bcef84ca10bf18a0fa80d59e3f861cf42e30fdf87a5fb1615ec753128e3bd2251996f891e0e1938c52de8ad121c6e0b0b162f4912217fc3c0dda41b6049cb4c77d6f27e621b1363d3070cf19cf76d2993da51c417e53ab025ac769bdee58e0937f17132ba0c8ffed736ad53f4e3147caf00614fd1ad4b316d38d27d4b24c828b8461e924c031e2c50e8fc46ac22c9511b9b0a25a3298a2d1c038dabc23b0ad36ccf220ec68afc7f1942c8b15d9a329b049201b8a10901c03ddd3a01bc8942ae717895c9a632c202987c271b41518c6bf58aa7d293f71865608b97cb3348b123b7635307b73284a46d5f1bbd2767da964632c69d109aa98e520a420c2030767e2b0149c2733dd32108c555bd7e9959dc360da380085968e22455a98829b3a42eb08789075358a8e9a204e3555f2b08070e5db6a993a7082ea68114db1a6692b2f07605cf1a8c7302e040e39897427f0045d20ff4163763174278a8fd7d48b5554d444b358933b1fcd19721995d9c868caeddf972db8892d0ac40e42bd3b1c4055a91d378882de3148dc0337dab6cd5e7033ec0015fb322ba34ba400f2b28bdfc44ee77c67b617c8e80fbf50aaee90100b1a23d8e71fb5991b890b499e969521467710c27c1b566804070732b87ed6e72b18a114498551388581b62995a2989699b26087ebdae73406296929655214a710b76583bdd48fd7e70d5b660accaf2140be6d9692037d577e27dc49ac32aaff288b20d258815274bc41d76f0562169e9f69155b003d395c44e937de1208af64753e0e62329aa6663228a3a45dded975a180d78e64663c4a43176630cf05bed1b41a3bd67567c5de3cdaae5e42a4fdb1b6e3c2747d437a8381bd0c62afe053f5fe133f14b557b2e81dfc5d0aafbce68d1104f92e56674d9f227c5b45d5ff6abf57a731e44fb960a18b35b139e87b6e7583316ec6ff0064d81e395e833a3d61d14dc15bf70b197ae1a39e47d5d3892bea389b1a46472fb13416f906f22cf11d9c49c2a9858b678cbe7637df3998b2b3c5b3ff0a55c141e2e818817999c5057aca609ff426807322ed5a125165bda722716444ef0b8dbcdb9b18bf79dc6ee5f2bf9b78a99e7de84986b533a1f38186c16258ea818561f667590583925cd85614c83f5a78109d650f1917096b3d163a634a67c7e1a1301b9d8b4ad5445b815936b94364d459951fbe1a73d7c1db035dd1ae0223234254da1bcc1f680f95c57b60c5bf11638cdeea307101f633d8614981b09b3458ece96b497d1880883768af286e2f753e951c5e5c8e3c1bae1e34c49875f9a44d422c96d237ec4c082b6cb9043510c9e45caf686d315f7b01e4dc8af39a59961f6b9c8aad40465b94f02530b7391369c615c9264c94514a43d55c304453c61c566851a84033fb37ee12fd670c390d395c5c52515381443a45b8fc9c5e6520644bb7825e8808958b29d5c660013c02a0d98bb524724dad4543c7bb9474fe5e780d28f8e22d63ee5a29b8ad6622e768a9d251a0ba56842bb959d7ad8d1eeb94aad44b2f28e4de14adb6820d365e0c05ac61df8be2aec6a0198b56de4d5aa65f1b75fd4e0f99d0e3fb858d9ad8c1f51070890d601060f973a04558d8a55391dde3237c021849420e764fc44a85208c3c3e1d9fe360d420492cf8331baa589a65fb97cdc8e657fb055582e09d4b79f8f5061517a521937a2a8f720a557b9dde0cf2650205a76b693104efab544f9867bc18b36616fd6afb20b869986cbcd2a32eb4ba0e30d4e94d683cebaa80d1440e25f23b1fa51eb9c946c54fcbf4ecf0ab9533c544339f27d13e3a0751c91eab087b09083e546794679d8a1a1557178983bb1dfb7e2d08428d4c4555b325f13a78b205f930f52ac25474defe830ffbcba7a2eda6f037b4234103a875e1b804b31e23750191a3ace7c1617197c9b6d9d88f3decc9d1fbee35542388061aacbddea228a731c1ae00fc7775756f519b87652c0710dda46aa8d63292b5151a6d9de9b1501e3b7b96cc58cf874651cc1023e9b97c23130ec51c3131be14213d2c759fc715a27b281ebbfde9ed0bbdac19a10f02e3ed5ce52938a1abdb2de12668a1fac534230751450ef5a3f195849002d14307d0e326477bf8248c09a0679e97e6bf2ca86d8ed24f64d03ad9051e3d21f22e9850ae10721d7b0434477dbb8a6ed63631492bb03c0904ddfba80aa8d5c75f638e40491445e66a8eaacf504edf47b58de15d2c62456878d10b63fb8f3fa390377e67b7c94d12e48b6fcb0be9c24826e8ab10532d39bee9b4c008089987de481a165fa8df9894d828fd633e5b5389f793fdb4b08723dee5c3405abf878753c51feaa4f5550e1e0e2542d4cfafa4b159db6053347343fa57f031f4fd19e5129e18ca1246485a4c0007cc8cb1d5f0825115707b364823d7e54610e25e1eff07769e002d8d4e3eedb34ab497bd3e4e4c7d4894570805e75fb98aaed00873526b2c33af88e0d5fa39aa26bf63cb597774fa0ff46389afd9c49c8b4bc111cd0bfefce791d94325e255f31e456685acc051649e35e1116409163bfff7bb084a2b5ab835af12bf6a8f6e3735261e3aefe8c4146e0f65fffe050393e58ea30f157ae9bc973d2631934a409144862b587c547fa73fe2c9d15b2b902b532db7335f3e56a00cdaad3b39f7190fa6d21bdd05a64f49786c238554ca51038bd67cb2653384e9eead82cc43846ec66b65bc78f72350f2528c03cbbd45ed11438134342cf384168cb28fe9cd1b9407062f526b87910677a3fb63306210f378db1f07b879915f072526b6930022305bdbdf6b011b18ad8d510c1424efde2a6b5f9b23acfec05960366dc164fea1b9bdf8abcaedac46a4eea146878d2a2a90769336f6046a8a2c0add69fabcc22658d8b73c6055631f72c9b8f8ce0aad9aa714c89757df70e984030e3e60d9bda3c4f14c1c84f8072272ef94f8b085bd2293edc69e4d9b649a15e3b4156424db19cab9dfc8532f94feadeadbd466da62ee003e7bff9095204baba5ca6430357f8ad08cdb06c268d8c29467b13eef5d2506d231faec44651cfbb728420e54d7bf431a8fad1920e4cee9f9631fe7c441b5a605c8f42f0af8f7686d06502c25220d9f58854f070de20b9a5318ed0bdeb6950afa67325bb7a1c9d103e966d1adb0709fd18d929b622cc948ead87764b3bd705b27fb0f5bff3acaaf642f541f0f7ff20f86c925bdf2c2fa1a3450d0dd4ae1bdba17966e3f3b581a9e1ba19f490ab88669670ec4a62466c01da37b90367a33c56e7fdbeba8dff5a1de0ceb55b11b5dec8af711dc28bf71c40ba9a4659fde3ef4ce376e0c89de783e31a5807f280e29f5728b2f87dc5b9ecce3e54e1c4d6c533df220b6e1e15904b8cdca5b486be2bea2162c261974612aa46ea0716350d18f5371bdd243a76d0e95b50dbe89561c8f8f3eb5f4bd8098c2cfb65c731c0cc86698243b0c178b09c6bcb6b51ab14283ad6990050db1a001d668c01a8d58a2116b34c682c658d1102b1a638d06ac51fbaae6eb26534d151d5d785cc9cc022561400423a2d108a54ea6ec2d339ddcf818d39e05f8336f99df6becd8091c88e6469c451ab044832897e24ce298491c318143103da7714d364d498b356695064492ce26f27d127554cb6a5db8aed06dde44b0f2d4d4318c4122b49bda2beadd59b306c6ae0765cb9df0122b23320a702efac3f744c0c980ff2579aa01fd9e5ad5a6832d4f741227e12f4a6a55ff55c48688f036765e220b87ac5fe0577085598bc5cfb77acf000c2c3a5167993d69d3062d503351f647cf3a2a8a054b8722ea77edc94851d7038af9b34cd2cb292831a1a3acc5afb5e94b73579f74b88ec2b1d8a22dd0e09b69daae4866328965fcd72a648c5201acf074be7410e171d3a969e0cc29718e6e6d8df5c979476d92392cfb0ccd1cc4805f3a52911514cf383981134671928436d4cd2f7070d156462e5dddd3e78b9717cb05ccc384eaccae69686537936c9147d711626c689dc8050f3f867b72972c9dad5d604ce09047681303fd4e57c13c3405a060fe597666300f41b770413fb391b6043a8580703b8645d1d02fb0d55821ca5146b7033032af6ea1a466efe2f292befd89359e13745add7c792c1f3b7a5bd1a8ca9d8241b0b849758166c6fbedbc58b2c4aec2ebe2acb47cab9c0540b901fea0020ceb187f4b1ee447df61ac63177d1a96ee37bb517e63f24872f6fdec23f8377e536f461f9b52e11f1af1d62b621bfd4e86ee1fdd7072138c2f4b928e49222df43b6a3f7065282273c1d55b5ee6de5f01f95af8a28f7d210b19add5392027d01b1075485f371b4bb805a76b5fd1ddbd134cae39187672774ed68c2beb7f2e1b5f732551c08d04956511413725df4757724b020fcba0f2647f57f249c75d588e058187fd94464a92993c61b8c96e4c311ad81d10cd2c4ab0da61d79f0a868795753dece6f3613b4d2136b1dca53be25720c254fceb490b752bed883414faa54d548a1e3e0c57728aea848e6d2cbcf4eecdc2ae671bcc8ce1b858ee9455f55165bac1b4a616de5ddf676322c42ed8e932802fffc0653506efb3af60d759e476c1a0232a1afbdef419f03ba2cd39a0dd9adb78817e21e38bcc43117e40d7000861ae6c8ecd30392c7ea0015f1010ed5ffdb536db62c67ef352752360ffdf17b27025cbc020376a3020a21cf7e59b87110f86c49b7746d06e1a6038141419ce1d8343a3cb421bf1a480331880a86fee033f59a45671f93bde41949321208ce96d77f43f8d7ae55a5917d0ddd3d359f43c447a99d79d73deabb5cf472411b73b630befed6fde033ba77b7a97ddb74ce47255c8a5f9dbb84b6cdb1178eba6e6035300288e3bf8ee4885362bdde656bb0fe0f195c17fa3f28bbe011ca5d4b4d593cdc85d0701ea251bf7d78bba5572a9216c5b8eaecaf11cce1f444ff121674a3d5bd4aeba9e19275f514279fb79bde5210b71e218e10c0bd40fca6229c31ef1bb0ab62314c3bdc196351e8435b66ea35790338e9e6a7792787f633cbc7b2a718b223630d91d6ad858f182a484035d8245b789a60c69c923561792f4331ee6fef78430e78e45a53f0ebf1360a3d68f6d0ae0a9d1dd3ba19df0f1b40406c7cb44dc27d2385a69e38afe7809b9da9042de0e56c4ad0f51ef896be7ce25793075692696fb00a3451e06035cf21c8e1af07f76d7072620e73bfd6510c34c0908b5b147476ae7873744290b86781b2672475e90006ddff74eba420cd701ed78fbc939df0b318b2675728de6af5a8839c30e3d25882e6531f228e43cfe2df8aaaa242213ebf224da6560ef43c8e81bf0943395641fea419f405601667069eaeaf594904db1f8aad934274ba91e3b51513d3e1d572496d05aadab3850683fc7aa40188b498e0b918938b4b3725abc10fe49ef2fb93676455b64f094aad0e2df282b73cfd4241252a5a2cbc286ffb163250cec8fd1b3f35001d760ca8b3705b1ed03393acd6769d3bb2ee80462c7c9ba1b53d929e2a07c261a5460eb5fb914a77c1022f0968c8487f2c632073254ee52665e6aed4455af3c3b855a5586859616e211aefd77acc45e1382f4d622166b7171f0238d3953851164a633d5ad6b66cd3bee1d2677046d99147afb23cbdd7032368ce43f5d96ef6c8c438074cca0b9b3bada5ffd79b8ea00ad8e7ba98ca4e64743c8cf459a7e16f324dfc491c32a8e14eaabdf35bdf8fee2ce625ce9a6a595b4a78cfb666d5e6ca09748d33163cf952a7da4d27af63186532fc2b0cafe41813035404e9a57495ed5d4b45eafa056c18e67ed0a389a282cae583ca36f616e9a84ed5ae5e213a16b07c36b6391c2f2c269ac7c6c2754a8284999492f056327592795202d2735483bceeef953ffcba1f0428ef3d3408fc3760f27ddeb053bc26e3109e29a0dfca1b67e2f32ba1b74c2683ff9ae697ab6e0e2c24417ffb2883c1192cc250b8c332aba04ed1af09c6d34f554b40b57fa201fa53c9c84cdf3218dfb44a455d321bdc4ea18284f227defdc9cc1f5ca010b20f23dacf24e1557141532c62468e94e1187fbda944bce6452e6c6fb883c39db0ea1e8c71db30f90e6b43e12223fb698627c5f46edde673895434f4d084f755b3e4e54c080d654554a57d3718c25696fcdac0c63c1089b10a8b26113acd31f86129f7656563f36168d8d7e6cd816c7a555c6662d0d2d8b57b54a04a8dcb7ac8eaa2f5d11571177e081256a30810b76aa81fb2c809bc370400cc11d1fe69cd1d144fc120648870712691a2e3506ec900ca1cf23ae75ccd5502e443510fb5b82fedc8b15014e769484d91da9995ad5b2650514ac9f09d2afd6d81770203b92e99654c83010821536cc582584436e41b640426c580438915dce8720b8306135ed9a95392457e2dab0e1cf407f880529666122e0a4e6e8be68beb5e9da34c5d8220ad4e61790e020564b2e2f190c6dd0251337e609f9fad17c4b88a0efdae5cbbcc8ea4c70cf1bae3f20784bb310c119d045fdb20510889048ceb2636a22af0df34665b29635f1553792024008b393b5fddc375743a38b49ea65a623d82610dc3f058d0b9d901981bd31a7502a13e5a7833f6ef4387cd4df7b7a62896e6b9d9f014a25fb41e79448974a6840ed006be2c4614555c38325ba22dfa626e60d46d564294f4464cee164ab7e9b419cdcb18ebd0a490106545f2905de19ecd7772968aa80e5d8ad2c748e0d1bb43f18a2e33faf5734c187432ffa11dfe2d00e06ef8e9b0cbf72743349161f184a2bf0744bde5d19c80944d08d8e962580fa3b0a518393d2d3ab4366a29085060a5181b0c362fb189fd8c78703ca77ab5254d143d38dcfbb8b0ad6c2636384d398754cd2aff4b24ee4194d7961b8c31980be3e5579a51b0d1ca184fd50223906d5181f5c117806582c30046efe2fa4b7eab07b47b84974defb1fcfba1600ead5d8aa88008eacf5639851a4ee34d73149bce2380e58fa9bdb35ed7833a99818c7034b9e7ed30b49f87cd0fc062e842cb4c38a80a0607c50138d2354a2d35841e908f38ce5a6a0180c21034079a0f905dc0459b41bff084c73309cce8f334b29b50af5e9c7a2861854274b4a8ea7eab4e48978aa8e463d2ac15f3dd5cc2359f3d8b881f754e4b0e56b86054a5f853920c5bb17ba08d85c0b18a0d798bacd1a6973464a645a910378d570a0675868bb9e73ea5e64bf7f8f438626a769b80a549abfbb4152a51f45c4e0f97c052665767bb94cad19856352ab3ebe6634ae96874e0f59f27cc256c91e7637aece4b94f1751006dcb017d10f555884bf189eb587e541f58a726b7c91561428cc630655ff7be7f814c12cfe5c1c5a99c5f495b855cdafb18df2c7b9cb9878fa560e1b226d41cc30d3f8222952b21af6ab8ca6ef2ba0542be064f0884409cce6f274852e1a979286bb97e036e97b240b62cb0ff7c545f5bf0098f1677aaf6d7a2f532458c5e3fe16a67cefc2b08f3d440bbd699a8785b5f849820672ebab6efbe92aeb5f2321f2aacfee87850ba8c7e17cbccc242facb2a89123efee57b8ebd12c9c4d25681e09770e057d04638d7fffa5f812eaeb27d8af1f10895c51d8801b350b8485c887c86751917133a2710a84053a32d07410d6d3b3cd8c88013ae84058907e72737e12400c57020dde778f0c381c5d947a8e92eeae4ac75e751f93964e2e108d9a61dfd6dc52c1a959818280bf82bb027e9893fdbb5209fdc3173f06f3a20558af597305660dcb8563c778b53a58508b90ab0e16d4f6a0bb3de85ca603ecf284713118416a18532b8499f857a0450cc37289294f9508666e1f38e9c43300eb84f8b245323b9a1068cfc4c55232fa9b74144983057e65c4cf71d18560880a6265c29eccb54fe6387a45ad49f60c266498212c0d16e841cf63e0a55d15d7c988b4f49d4a0c0e5625e30021213c97eca4e4f2e4c36f962370dbbc1d692849fb302cf8a95bc33047dc86006956777b4783629afc55b7e01cca869e0f4fb2e2b601700e747e832b213bed30c14e64041ddad9c282da3fd4a6e314f784e7dc39c3e752d8fb15eeb3fca42a2cd09459b47ee2a181025481f68b4364e278920aa32a2c5cabab8d5f260ee3fc8d997e5daf9f722d68fbe7c8d153f2fb41e1ae2e13a2ff51f7b9ba83271ef4b446390e60d14164fe1c68194606c3f1a7fdd4a45561216acb210f2bd6ae4aab6490fd83dd16dbba6fd349074f2d03da8c24fec3dc5eda776d01886636a629f6a5c51bd4fb876ad69bc04a524658885c587ff1ec33f188b0b0a4c479afff4e5d6c50c1c49169206a4c30ee73783a61e94c964487b7286e05b9aee6f35cb73ec68e00d8c805df4c9f4c25ba9e9b38ba5bd2bdaeaba9febe666c8f768263c8248e35b02c5375b1c632e35cc52d6ed2fa0ff0031c902eba11f5687a918f7aa1f5eae62a110bebb46081e7253dcc55b4b790349ee66df2575a6990841fb039274905203a9d8ff3c91a018040811fa67a4fa902e2fb6e076c2451f672951573307fb4fd538cc5f8a0bbd62fbdc87404a779c57f84f86f06f4d111c4fd3326f6512616003881c076057754d720acfb2f8bf4974dbe1a01b6c39b2caf773a03fac726c396d9e4129fc729c0e0d8693ddb69e75bb9213a48afd1718f56a10deb933508fb7059ca39cd40801f3124aca93bcbfc2390d9e5e857e502b602d3b911f764783c6f7c77b74a945ca1b08043d47a3a49dad7912fede9a598dd7fa5e061759bd52641308e706e3cc18b1c61e82e50c88cdc23ec271e8aec3d8443a5af0f99d3f15a631d0dbebb78756600606a5a8ef000bed8fea0447f73d320ffdfc4e69abc987e653ed962c0b8a6dd5263c6abc3ac80c3309259cb0d87ef67f12db3e0a4582260e0f80aec25a639d5a079af0e7504695bb6c45bc5792b287ba81839c0d15f87cd9dc537d22a96dc7067603c8b56b453ef65f66328adca9d83dfbf5ff2b23bfbd24d0ecc8030b58bed59ed36880393b7e6b820e1993d17d7dc2f53ba5914c3cfeaf51d94744003d98ab1f5d315fb4abbcb41cc46c640a9135e69da0f3cfd8970874a0bd61368a5ee157b731f64e53fe3e65c96b2f1b218d83f8772e60417e7a3ac975045a69bf31e13d3b2b35db7a219b84641d8bb8aa75da318fa0a768d4555d343f06ce0b3d09f9b3bda35d077886140c5a231981e712d4c95624c26a003eeffc710cce8dbc9d8c54f19d5c9a0a61994df49087df825622f82b3f8eeab4a1c7ca6b4a7f2ee991dd601c2483bae92ffb3c96388b3dfd75d8dd2e9d2dcb2fc9b8e863c0e620ac1f583daa995eefcf862f3f7854d37e15955f53705623cd124fabaf1835cdecf772fe580ee7449ee8d39cfa05342a9b4526dd63af5bf5bb5460b576d41bdacdd261968fee3329df0ed07848aceaa7a8ec21b7bba05c33d780d867d2d17ead491ccb93a81799c83e986bf1a4461b7ad055d324dc0eb5eb7d920350c21e82a8702cf9f53c8da690ebac660fd410dd06e679438e3f8feb90c323c9524c0eaba695f08dfcf0d844f3c7f3a6f19abd665d7100a0540764b4030b68af20c763f7d05a466be4787c19a080834739f1bb279e6b24c82448b0cc8e613b579c9b702e26c6417e56cbf003e8055ae127c1ada984c433a4d43675b7223f729b809cf451a5a75c06fb71a633ede657c976987901ec81effdae85bbe1dba43f81571a721de925ff0473713160038777ee9d77dd6c52695c68d27518c3b4ae855ccd67c00371d86f32c1869dd99c7788880bb4dbb59071d15476d06cea9f2fdd530c22a1c6f44f9b3f7c7e080be15a235b632e5efbc3330c4dd0d7c332a2444d663762b802eff8e3238cbd7b67189ed406b1ee65ec41358a2a193086860f22c421cdc9cdb979947e06e3e1ab7fedbede4514597ae09e455c0753cb73b9a5080c2a9d5e743819f51dc9ce83d93b32927140f6f12c47e4b442f86384fc45cc3d595ef093c4e0de93cf20ea888d9ffe643e973d79177450d3423a19ae6d4aa55225d06b9d1f6aaa3397074f93592132f1921399afc498af9f66ec599a9c4e531ef56190bcc53ec53406315ea16485c94a96a46d482db4d218b1e8463cf51ca46718df7920fd973d08c683a354066e8f0412b43b9befd6251386517755e4f8c718753f4d4d2e20e74c54eb61e74fbd8a38fe654f78fda17db737b5ab94afa8f3b633b2481b176cea914d07c1d9eeea375ee88df17c9832aaf37785fad75c536b5a186affcba77265ce32762f4211449a42147f7bc476e1d8bec4e3321a7f863fa1839f42e0651d50dc124cebcb89a5ce57164c36507db82317876e1648f9c79a14840192f55fc58ba27ccf0cc769597df617f4a39c6039170328cb10cf1f24b95c58fe4fe45579a0ca00dd080cee03b21f17d9f444fff33ca9eca0a7762ece509047b3cf3035fc34142cf509a57d16f86a72ed97662f50dcd296fb44163e90bb00eef9518aae2ee6e3f0e27c79dd414619bc3d5e0cfa786ddc34deef518113e7502cc2052162e31bb8ca1af942e487f1fd0b93bb531caffb0ce30ef8c41d3ad419fdfbd08a880f4b489eeb8ab34b3ca6c10e1e89e8a32e74bbcce952c14b72a8286b3e68f01f6313721c105b50ef8451c0819e2823f8b897584ce8840d7cb49fc36b19305d10121b89e15b99e6436481034f0a6c13c49f5e335d2127c2b4a8c032c77e9d746743f049c8b549c241a257de4875e8cbc073c8b5d4f94caad9646a42c20e74fe57b3747c2f90c5b31d09726f69556ad8df8dde3d8dea4bb98dcd754da1eade898f76622e9395851b42c5f90a759443280f345e78d618f033833306ad87d11675c7379d78e78534fe0f253efee38020aef60d929a6421ec86b0cba08fdfb829ce62aa2c6de8b811193573b8555e28c99ac2b56df4831f3a14b39b9c1eab7fc6e854d2f8529157cc8dfa2cdc75dcef8618aaf5d45d67d9f008563af14ed70a828dc5bff3225d8c58aa85acb0e9d6ea6ca8d827953db7ca5115452468eb9c7bdd1db741b8e2a49b9e574f3a5955fef642528c943b4637cafb0df2b4eee09430e06c605d7c80eacaaf14171a43267ddfe294731d93d8e9d92f9170f7299626520b097e501791e3640058b99f68e1c2f1a42917b0c90039da8c2d7af14e098c69e98eb1342d191641e4b6a8c5f6748f566b14439185b6b2573d2eba3b53432004265284296b5cdd69dd5497672d2d55e2de6bf08c5b8b63478600d6300fc7a25ebe204babd62c29a070459383b58c15a7c79581552789ccf482aa2acbaf5d0ab3689b21685326ec86882c8db5a45b53d9715fd27a6a85faf24cc52c02a7b65d628096f3aecd24210eeb12559b084d150b4a2ba5d76f9dd7cd81148468be10c125c7822c62fba9a16e2b76c221a9580e307d8929fbcc85efcf5199ff8e297495f2cde83950df4877c4c92fed8b2548ef6c0fc7852f754f7e8c396a426ee585a018d54db4b1fe5a81fbceefa73271b65cc492980f779dc927d47ea101e6a440ab23a0f5d8d5f75f0840025e7bc6f2dc65309cec0da706401891adaa4550d696bb92eff6c5533fff7fafed4107eb3e3825cc0e7d59fcc40c58eda6454250eafb797f624ab0d2261277a9af32e3bdda85a180372b749f45fde4cecad27733cd3d85ec49233a9314309f3716d8936c0b16601c5e146138c536927692b50e71909449d50f6a078dc85b0141ee8e29f6123c2d8666ce419c1a286387ded9f96af96a6c9a9c387b7ddcefc901226471b68eb631699281000c6367d42a392ee01916509d566390cd8fe6402a4085fc132a3a0c21ce39a183322315cb2e6417f040c25141eda855edc419f2c20919f4665843309003e4ad47d9a43f2ce219f509fcc92ad5b2002c40abbe5d32dbe3153f05ec32793f12c66563241d23f40959ef545b1c9f66ffe7dd11574a9f408538ed6a17fb9763b87e4b6525b5768335b85ef03fffe3d3008a902e284163adb0573c6b1cef999651c33779754aaa222f6ab563431a816c7a9a90938820174338c91ec486de804f78ed4a009eb9f26d32c87dd28af90cb16c3618d8378b616ceac1e77089f95c1ba6daec546f0da0b3465a4716f6855801ec905af3fb74aaad4f48c24a2b88151803e3186b1f386ff166736be92f4655c2978cea6168fd28baaf80d74203b602e0b7a82b3dac51f60c3c0ab8e6053890bbf723fbdfbeb2fa0e3909b6a2e029e4ba85524307eda8e1631b011a4e0a8baeff8a1e057843a86c088c53edac3c5695c147991735135258e888cec7855600b56a97d07170cea4458e231ca5def802875500cfea958ab7a21ddeb8520294defa87d841cebd6692489f867818013d7768828adab58abd4e8e91ac3940158c24328666d13e08622e1bbf8cd40c5315a840b08167da5ac7c32f66bfd0c54777a7e85bc11d557195e08129f329b179eada1f07b7901f34e8adbffd54e60c04628a19431ff1e185d4f9bd1a29d3ae02326b79c0043e48d436d2ddc09b7aaaf4cd494e4dce12b6439b94def3141531faf4026280c820b8875b4331e2c2922822a4cb808eaf70b677bc1351c8c939fcff2af5bbaa09ec4cfcd5c3283027fe5fe60cb3ef7a36b6b10bbd031de8665461f941a2630f7123af76280620080133907590e1df3fdc977d93721bb2d884027e7b105981b958b91bfafe229eec5ae8afb3e1d308b25d4b1118ad66b73a03db6574f1f58d969f37206d7eb7270ed300918fb4dad2524a8228ab25995c90483600eec37e7652862a320ab9a8b3d84f15567af80dfec9c4ba10fba5134651f3e26b30d29105fc6e8658c3e24ca09cd9b6b0bbd5aa26fdc2cb04bbd499e0077852d454876da5c9696cfd459537b51358249a5d7c57cfdb5de7d4622b30106ceb6a8faa7c40ae25341c2a6a520d936f94f5e7f5c1cf039465dda6b128fbc441b5ed0426cd8db68c7ab92439756ca7dd4e81e2d9f2e3e5514bcdc1569a4c69078d6dcc57eb33efcc23f5e00d14fe785ba7682ea37e59c3ccb7f984a1d06705b39e8f60964b6a49454237fd0b31ccafb04b1b4b70177a02f979568a7b3f8c110d43c5eab78a10315ff89dbf99e42a0abe516da8ff65acb58ba5933b5af21743724523a6e32101cedbcdb71dba24ae1573431ba4a71d49dcfa72ec27bc77aa95b16a41e01265fe44089c5afa983f92237fccb279b4102712ce1dd36de2a0f7323fd65a7055b2d691eef7d3f1355301fa33632a08f2cf5523925f2e3ab18fae5fb9930c3cc426b8f7ad4f2ca98acbadb58d0cbeb2e193baa1618ec78e0e7b864bf514d65811f03666fa60ce9585490dcc300c643fe8a62b8dc8e92720ea70c673e7a8d19adfd5f5a5f5473a9aaea851c421d2d7992e0670e4c05a9c1bb2064109f30486600e51ad476137cf659cb3c46e622ec88797c6af0e2c30e14b3c46cc24a6d04724122b53860a245e34acd38183917d7f22ab0ec5dfe282af2aaf2753178b7d308070dccc9ae0a331b36a8951d6d8f840cb6e85366d60988e8b33cfd89400eec9fa29f610b25072be388732c7d3fc6828e6332182a7880e093f834881b08990061f475db5afd9b587e3c74b73f4f86b0317d67d50a0147e02ee4f7b12aa030b2de2496e01da1f0d623acef6e9f447f751fa58df02acf4ee35681008513e1b9628f8890b26173cbf0e611a18762489f34678045bdb51ca8ce8bf90ec1366a6e0d754b2e34790b4490eff3968c138119d139d9859c30bfd4bdfcf7a266406f484d752b9c66c981c5d591d8c919495fc65886077e147fd15a0839158a0ea66d3b4fdf74c2d80af8c3e63289025acec0712e63da8ba73438068ee709ef562a03756c1d16310d149fc44c20858ebf59db8af7d1ffd99ad50faadd37535c5b368e292b5d6d654c858e00a14840b56b232b7262247d99aeccfd529e9e182811bbce683386bdaf51c3e0605e4417b2023465903d15e61522d34ed14e38c2e81ab7cfea9c484adf682e07fc6400716f3f3faa462beb5ac19b707aeb432b5856270ebeecc3f86f5682f1bf1e4abf755a244e49652461bc94ccd0dacd0805ddbaddf5061ae30152668b37119b5ff5988a98ea4c032294946e3a23a6538025f3bef5cffff51f980765e0763e1dde6c78b23f96d45777869d0280ee45fd733c926782ab06408ac28697599c7da1cc9e2e23f106c57201873aa30501cbccbfb6e81a302309eb204da90c91434e3f31b59b7b3d58ef7ea658cc92e49a280a52a4c0c7dd8c362452bed15307798fb33a5558c335f8b3c28c22915c5c473e84bdb95b53f190d684649c0dc79327a8978a3c1f966f2816cda08a3228fb46eee4da81462b44ba26255f8c7018880a7c14b0243ddc4ba4b0b0f99c72134b6fe8d164c385c07938f942f9b0acd8552b218b5b377c4929bf4211df4c710644c4194487a18ef4347e5129de9c12e99e17c918ef70d0306adc84c020f6402353624f7792ce8239cc482208f8377212bcfb0cae7d7760f5e60d29310070439a2c736e9a662c1d54ea935f38446403aecca9a2cdb34a444e8bd424f17bf032a0fb4faa81e8df297de5fb5d552e3c8b40c5558ab6732834d83e1a311b9840b4b6a5331764e0a1a673498190a330afea100f5902d440d46aca61a0a396123a86806d10432385d863c9a75a4b1f9a50d2d271c1148a3144017ebf1d2ffb4b7fc258aa18e6aad872b9023d37052bc6905997722bc6fac27418c5b3b529d243210aafc16960fd7b941321c9f361e9097920d35293cb0d0887e461f2662719f460d2ff18b00847905a07e1f6f3c442379f513249c8388c88571552b26bbee256fd8986dd2c122ce9c08872d14f1b34f403f6737c17ec34ec99be0174f10a9de4455e91f8cae4356680e74c065671806a9b9d44bbd0050dd4016ce3c7dbc1d3857ca35cdf70e6a6dd8ee974e11dc869d2baf82dea31e092df130f3f88ce30cfa9378b4f14d04dfb7bb3aec83c68c862f16be54cedd89c56f401588081d3639d3aa7629419794aa4f0f1ba337ca95456bffe08c6bd68c7c7b3c7fac830551d041e585efba1e87197021bc36d1db8d48cb497e4a296e829b376eb8376c1a77b54e4ad4ff43d96b663e9e3d55bc45eb9055d4175146156c0da117b76b586fde64d476643dd871d8dbb5018532108f5e570eb9a566b7bb773e222a0e43de5b9ec4e4b8a5ddca300352eda71c7e11f9fe3a8f2d1e3fa66fb746930e81c6ce5bebe8b39d7126a744981bb6787ebb5cb266a5ee1258b6e0a7104c7a1ae0dc8eb53f912243f90aa33f06e630c7aadc9d0f7238808cff357d924d25d7bf36e80cecc1637ae9e5d80e79acc30a786dd45c7e1460929606e928f3a897559b6609a6e2235cd2947e0c58de9eb849cc17eb4de5bfae428b668c60181c3f2840bc24cba6651f6f1444230e93ace889a9e19aac2ea321f7029719a0da641b66f68f83f70280e21a2ee7a9b330141aea342bb105a6e91a459e62170de78afd139d78747999801ddd90fe1293bc8a250b75332484f3f9550588362aa21afb242f98532385b27b3ab41fc54aee30e35bb9e9a7c58ec3196cb47eb958a18e8105a23c3c56e1c310a8bcd76d0023f2986c01f26b7a5d2c6f9b025aebef5da69c289750bd19940f34cf6bb1066e409ea0d1aa0a28c0befd11698689bd48666a5994ac765989e6e6bd723667f85ad8c43328bdee488242e5d78082f76de1ab9c043932587deafd9635b0ebdc273d37411a48542c8d4dc6675314d73592f99e8550045a088ef5374f4803e823c2b7e8fc1d5193b50718d475ec85c02538e3007f553b88df7f5c5a273f30847384fcd965ec18fcc0cf88118b61cbd3322f565a64e0d9243799c1b22dff5f794ecf27df0b698a4db0ee2dde841be432a23825a0990ccbb280c785e0cf128207c03a838f7597d563f1c9337c9726273affdcbfe620125d0f4aa1688296c07b444d06fad1e4f0b97fef5a94064aee870fd0f1b43ed8790bad1e3c36fcba07b1f924deae0288113572abe2039c9cd6ee592b7f47f545609bf0ff573c9dccceec93d1bbbfdf99b96d87e8a668ef5e64d422fdcd3b75f945e2a1dce0884d57dd89958edbeaf82b3c4770631f2149c7f191267f91160743d7d8b166274168030c0741f304d38f02f698ef4c3f9d58ceb4c1f975895a88310c4730f9026aa833dd1cd0f5d9fd1233b3d5477fc7a8d6ec128ae6e8922d441c0c9541a5075a2bb25f20a43e1ceb3f58338ab2ad6e5aaf523beabc4bc33c770dc8eed86e3e26ce3737f067846a0adb571203e8609c76259e4bbc4aafa23d807d493eab1fce07906d31464d5f0df4756cea279d710d135e611379e7c8b2c5b0a5a3a38409e21af90797e5a44eb9a571fa4482d828ade47309dfe6da1b66611ac4f2e28f861f39187662c2f6e033d170e91519425fbd1a554ff2ab36e09339ba565587dfe9d46cef37516c9ac41dc54dec9457c6f4520534bb124a9ab99603e046fdf1974964b38668d0156dd639d4f40f7d686818385171241a5d76f01299409a5d518d8c24bb7d474552371a3f18d08d90dbe9f1adfbe5e561966c069c069eee5f7c5b488d238826f79b4fe564a107c8ba86d0108b592e21cc65f0198dbede778917264ae769800e54dfbf2ff5dcc110e92c809c802c739b946830f54249008353b817e24c840755cf9acdb26229c1b6b81cc8d3a11279b038f7036133012778cc575fe79d35672d3de1276a57ffd7bcdcd1122463e1d3d082c5f16f08be0411ba67d25f7f8ad4f5f80269275880420e67dfba4052e79e2324bb172e3cd3c857bcbb793d5e09c70a91e2b50b793be0e10c53857693ae679f62af68b734e4a41c6f7c5374c27f17d7928a29c05a0cf8cbd74bcf760eec0a6109b9bacddc2372666e4e7ea98a2c0df52e165b40332a62ac74b8d4077e3238ed2698a07bea1f238f54c235f3296096640cf0e25f5f4c108c4282284dbbb90d636188d7740488451f5368ae6da7b20200dda6061d85c81b1502b69db8b740fa840968a5af10202352e0ab764ad0dc3c568b01e1509e2b6d859b1e960e3a0b0d3f700582a303c42638d6a346e7825b3e8f24c81fb345bccbaa86069ad4b09f624d6210e68d7805695b415d56140a797145d0efd9cd06d108efd370e5c0edaee5120f9168ae21ee7c64fb29660817c7f8c73cab385fc67fa9000d2ac5e36382bbd6af34323daa37e13d2725d395193f0e6d1cd08d700c345aceb3c915fdf739fc31ee0ecd9ce23228f06f80b2d2b3a537982955c21213db114c6bb4e31df23503c46fb5dd7546e5b2694d0b325c92c2189dc8cf6fa862d6a4a9bad406c645208a3c35932c2f1bc4e408d0072b1856193486f2a97bcbe9ce82e01793fa44aa8af91cbdc03f09379a0fbe4ea0f3f758fc55caeef8867ce236ea86bb87660d3065f50203ed952fd8655e364b680537e8ef54c60153bf964f87ab983c3f605b640f2d848437b8b6623b300dbe318040f458891d99d3d28bf9819f248656117c8879365a4fdf80c5fe06fdbc06fa7e11b84e6648b46ac6274a4af548894606571811c1aa389198120f94619989bbf681cf677503d08db59e7b55235c86f2c48a4ef3a744f3439caecb8cb1168045cd602265b07c7c26a9f432cc3e6266a22b269053dfce48528a3a270438a526ec8464f37048b60bd7d454fc3dcd5b1bf9bea590d9f89b4814440daff9d8513095e215799a645042e520ff0d8b02352491c03193bce8cfc08cd47a994c5fffda39bc728153b20e804c8b389f6ec646d768828136ba0f232290f59c35c0e34d724f6431cb5f7dabc48d24a4af5610353c47cba81e3b0763df6025ace5a0e367ef6ff5460c728b90e89c61ae88aee98966f94446b6bea22122bf166ca8c44e672a3d295a82a1b40914b621c5a4a311782a01426bc1ef04632f194807bdf3b083054f12060b44fb53f9d1e291657da9cc19836b32ffd549847c216370781bb935ba0734874cf7c3f06744f38dd9a5c763577e263d0674dafd9bb19df2831b0ed9f788c39708878146f74d991115898f6a3717577ed129cd637e76527ccf77be04d2b3af524fa30bd8dd2c5be363582e1a4267cc9ab468b56efefe6a325bc30410060ae0a7401fff234ece7e27cda99d3c6183e487bc921ccf08f01f6271b134655272002c0819683d0f4df4d829652c44748ecfbdde8ae49fa47c01780fec7c8f9622f15b244ec0224007b25f9aeb0fbc4fc831c62cc93046dcc5bd8ee2b9254aa36505d0dd6422052afc8c0221fa9d6467447bd187ce64bacff3d3a6872de232babe316cc17254085f31ff8057792b08f0d16f42ad2c409fe932b4d116ace526b9d041b5aec969607b2efe35ceaefdd69692e3ff3e7721b584a16f1e28a37823a8dcb5b0a23f17f6545d9fa6eeeb86885b685aa4c263f81e4596d9e17ddf4bc9ba1350476eab20d40bc729fd4277630b1359117e3116c8a146c694e14b1a56ced0cc54924f8271e94eac3ce17d0dcf6ae51b807a8243838105cc763c3cec5b4669bbfd501d24f648cc2b2f6050dacf0af6f1be45b602525c8ce5c34200889b338cf301b6e19148d5d456eb99f0d101c695cfb0218fc2a0140cd42983af9badd6ec1deb3854f2e06079d525d5c371f2144e0d6ef98b2ce1b3e233ed48474533881831694e9bb176b4e949546bd09146ebcb046c82dd7b1ae74a6a01ba850ef9ed877418c36f47a5490f2237d7bfe3dbf6fde7fa2aaf282475eaa0eba538b8b74edcec806be5da3f8f22ce05744c3d6112929157d359f451caec048b64d704a59367362bd178313855447303467babe705177c1e7a0c5c2702beb6f54643f43b5eee0c0d6c438c9fb209aebb49930b9a4d85a4f3a248f8731d608a1d7444e6ec99ce3a68c091b5891b16d7027d48a76891d5dd675c7e7c94e7b8de00ab2832da0ce8d1d42f1894666bbbe51e538389de17e290a1dca5943627dec2be82f510dbc70f9ffb31046ec334327411ba7e5386284759271dd44d0901248bd400e76c17caa9d1ec4959de1830da9f469314fe2891ec9defb8a7a1cdb7fbb070b2d82c83c39bb1b659030802b5394e464ea6910a2e2de69b0466b2e97a65578fe781d00979a6b3a605f89059c611bc0a1ad2f9f6eac5e51704167876a0996d76c2211a1ccdd68448e60302af2f76a69bea6186a62347aebd08e420061779a45354cb80f0507e7dceedd56dee3750598ecac3858f89c093a7a0129fce52b9661fea290cb8714327a76179050702942867c40ce62baae094018fcdd5d7fee0f4d3f323896531c7ba34363f9ee77a28dd14548ef043f33ad7a7ee67ad4b66742cbbd0418ab8b50c8db69bfd93055430d2173e3529a462aff59e24cc1eed342123db7d1164bc245e0030e6b4155e301b7c48abfb9c4326b3538f6b43bf1a046ed4b893133f704754bf8e5681e998f93150729b35d7e3ef6224c4029ebcfeace7c4c9a1dd924461ca473480b2673008d77045496b061f0503d648d14b1bcae39624f8f122aaf792c4dd6b160999455912af5ab895435fd4728a7001648df9475c7c020c5e20c991c743d8ee9fb0c8888a8cc679d32ad2bf32542583269240a4258bfab4f4a50d64f4c6cf8c0603941d2b328b8343e658cd9b23f0044dc11cee3c087f322cfc90cb0a98af502edc3799dfab434b9ea4cba3dee037cf6d8040e93c79d841489948b6958dbf222f9ffc88b18d995f6e0ea87cd9f080ec3a3be7a280cf3f08b389137734a7e49a45c7553442b15c174188afead0a9d8727e863bfdd49b66d07ea6dcbc17ea4ab8a405dfc9171169bd244b32b4938041f28d200a39718400bf40776ba5644d5f470d6b3f6bd612d6528f9e3026aa2464dd33c0521960109960ecac7304189e300337b32d2c463d40bb114f930ca372524a341153278ffb1b90acd83025022197f9e8e17b19094b919eefe0c41af5c3146244ec6d60a2d5a242f8b12628ba0c57d8aa130fbb070072604f8918981ccbeaf212eb7b7084ebb3de3d6c0b5649b779a5ce94f4ebbde061b982c406a1b031cee955d486bbd6cf9a6d7540fd035186f72c0c80cbd0638228ddc6427fc7d6561bfb712f4a7c74c675945320bf5e75c970bc6c830e86c839958c69a4c810e68419a0dc5b2808deb85a65401c2c187117114e6f791bdfade9358e86494e449c5b11d46e7f2f6cef0fd54b34063e84097e9c4c1cef75192ac4029a6d1cef27a971b163b10d585757d101c956b1392c3a685d9172f4a9b345a677414cae69626b7bdbf8d72c0ece53802507a690c6082fca665c808124455908e005b4f43b808ab36b5551b68acc880db7853ea3971e6ce23765d44e8a15a48400b0841b7d4e3568ba47bb7b235893327084eda983413293584be1c27dbb832dc398f7702f52c957593f82eb3c479a8290d3e9a5d2a74e98da445427c9decd29dab5d0d6084e5127e49137aae1438f2ab6956e84edfc9fb55eed840cfc0f0b23d2edcbd78bebc6b20e0170408ac39f82d5b86c62e48ef681b234fa1c0a37b545afdaba06315f9460ee31e7a967b0053ee46212850b4ae048536d4c2b13ae9b557d0b85e19da2bd16b17b3a707d061036a770a3806a18cb5f6b795dcd05830e05b23fc904a07837ed049361cbf206b2d8d780157a2b263fda05681058607a95e2b4d7f8b7dea2d05499c63b678b387d0e681553cf4e39ec3a7b0df94b09d51d193a49e211fb11a85d87db802bf18ec1e4560e8f2e8f1fdc96656663801f81b6c2b93b1dba124da071c5a7490408bd54293469573a240f4adfa6f5ef02308ebee4aea4cb6d07d980fc25cc1939264d9c78f4ee6f8725a2361607988fba647a6d6ce5d99db5da67af4b2202375b34a4675c7c0c323b00892b380fb505ec0793d8cea4921b8e2418e25b83497a8b90d1f9436ee5c0c65f3d6b82984429729d6739f53325e4e7ce5d4fb0fc88aa913ef04d3040bf84ff5ffd4d430fcc1c12593116b7d950b5ab6876c7596601dc7d13d76b3b4a64c94c1bd680cdfa3dff1bee31de2654a1bb3cb7c6210dcbf1cd0f9c67da6ac5cf93c61fa3ba414a92960bb928a3b79f0ae207a18e2a0dc68e095017bf12f91bdd40c6c770f4a9406861a7c5d6ab0e1f38e46175627d8ea56516b40345c06af559a0d42e84891614b7b12275be8269a1a748a4f8ac394382c167b65ee2277ea766986c3dbc628f5de8981fe15d6835e2fdfe4960087bf1e426dfe70477c713b526ace16999851d6104ee41374c5f9df540442e5247f344bb78ec73394e3825ea02a6c89be734f5cc46fe0589b62d24de060613a99b90452af3aac1486a407f6a86a2674ad506d36a02351c69aeefd5f95735be4d8ab81e39a1a87ee8693b4f60731769d056d7710ee9da8bd5fc07bb680f236d5fb84186fd83227ad67b48aff2ac94059fbfa17bf3afea18adbd84b96532a47a176bd0af7f240c57c2afa359010699c191e22e1085ba4a8353be37640db82fd78ff03dbeda9e154f82c376fd26c816b74f6b4dda5c8641a1734f1edf6d13670a7271635255c8948a014cafc8b70cfa8077cc66c1e60739d8400169c014eab66aa4203b606a695276680604461ae457f70ff7610d5f7c1d8bd805caf1aa76e7fef6fa8ac1f4e9f2e34f95764ab9d80e59935cb83e6698678dfc03e018b7278a418e47a04fa913fb3542020914d07a509d2269a3487d8c522a4c878c0d48ff3ac6069ee3208fa09a422902b83913d0c038e7296acb60166055d4cb2ee67d5a3841b88bcbee7ab1efb821d72b3421a28108908917bcbdd6d4bb9a59449cad80ad70ae60a3abc3a7e27e1ed74285b9ad6b6ad08b715494d9becb6c595b4acd62abfd60ab3c496df9dd46da6b997bce425bfb714b7bcb7f45d57baddd370bc7977fd966ce63ebbfbf8397c4befd9c497bb2109fe3af65b7aceefcfdf4afaa3578736db585a2710e167fb993911601bdcb10a22b888d0da04d8b10a1d206a6d66a9bd41f6a53408106f71b1e82167145dba537f4ae46386f6e3c7ec436ec85adbc3cb6cc0b8f627def68e35b76dbfc5b93db76d1c879fdb4ca8532a06f5dea7fc519febb0d33d545bfbccb1be3a96748f205bbef5e7ac48719e6bb09cfdc38e5518216617c168cb18ec58051162de4b699f7a8b8bd1fa3f3e98b0f456ca6aefdb4affc4e42a697f9db3c21404081793bf85f67f384cf7714b9ae996f44dd266a9a3bbd2ce6cedab69cb9b3ea979db4cf2b7df5ceb4bb7afdf7d98db7458d22907a5e5ac90305299d65c272f4d153a3c9ee586342ea67146dc1037144ff077aeede7c7703accf6ddb57ba6fc9acac9f4f74f9fa6bd29ab689cbefa769fc995b1ee1193b62d3da76d3afc39e557ce0a0ebb9502acc6663a5b1d690bec56adbe9c0b72e838d7b2a06a9b94958b49189693dec2c9d1c1c9d169e1c05a402d8cb342c2b01c916de1e8ecbc88c0745890a5ac3a3b2f2230ce0a1c1d2238393b9c155cac7acb71328e9dad6d7d66dba9729c39559c1530231aa7f118f88cc78086e6877b4c4c4ccc0fefc2365fb6a4be525f0e0672cba918e4d06d72f7820c73bf6e7f9f865b8dfbad4a4e8741361d87a0fb6a698363e32c3738ce92c50e0671d35a87b6fc999cbd9412c759c2ef5e6023ede7388bce8ebfb6221286a6ef0d67ce9e1fc58ea5b5f451075d86cecc6d66861375b4221b0f1cc400e3c21b52a8c3e215f7fd3d70c4d536e28e91308c846c9fba4d9c020a2137db7f9b1c4642a6f779fc675fe9a3fd89e8e2800883460b5b7e18b5f0340211945fbf222228e90ec92347c25cc7070848ca2b53de634f24f6d4b21b0efa53cf5fcac1a9695266d2f1117208c65e6c70deeb9cb3dca952ddfb94d2399feea9dfc11d53a5be70159f2a1e51b6e2113c1c3c4296d72805e5d586a1941f72cbc9051e9fd77526eb6ab799120721bbcd64cd9da93359f7a78e9c2bab751c94380e4af927125749e33494fe722874e420c58cd026b3cfa982c0169d455f624e1a425134d5fcd018a5618f18bbd3e3388fdb30de9dde1e7fdc9c946eafe538382ff76da54f525c9afea5cfc6ea4a9beca7904208c535ac0da54ee8329eac429ea554282946c43b948b1c69b2fc06c5f8e9b97e1d744dd3e1113c70a6e5e12a33b3b1c274491e5d4c0e1d29c6a46a3bd264c9a46be767967ae6ae7ba87ed84210b6e0421c9c524a2b254e0e6552179343992437bcfdac71d76afbb8afc86ea148b952badbdc21dfd82187315653368ff9f7e6ac924131bf711c47728d54422a514fd928af369001c9c17abfb86596d2f58cc150d821873208298848aee4d7228993f26c393893b2fd70b6f6dc564f1907a72379d2376364dc67fc07c865b0e4ea26311272f61a14af7d84b34c0185ce9e930768c6bceacfd2cf973d8ee4e08fb394b4273938915676ca4c1d6799af2d93762875f654a972be376795ea826eb3b30db0e31443aed89b9435ae325fe6a822cf0e634c0a719b1c5799cfa32292e7ce9e3fc790e5469255d38fc6264d6268a8d8918a277a36ecee48c50c74d690fd6760e3028a4161c72980202487b3ac86a83b628bdc7165026166c7297e20b3c30bb45dcad4d60c4d8d74099136ab19251107fd652893b6bfc7c41619e30acec9e18b9d8232b94cc12da5d468dc9266195c43ca1c65ba22a2496b44a7a494d23a658f544e8e83f1c6e58ece910b2a4f25368592bca5b43ead0f437d571d9dd5c3d71ebe1923993d700d12bd9a7ac666ca475d6596ac7ef59baabeeaa3b3a826a5544fafc336be6e3ecafbcceabd455363defb6d23b1d6c29c446d2d49b55ac398fc094975f1243af47df22e74e8db644e7b62424f4edefec8534dc3672c85a2d456129239f27da1dcdf77d8868b9f2ee68fbca595db282a45e7db12cce4e4e48bdbc4c4060132bf8e5417623f18126a4247ded2b72395e4f5c888a523245fffbd3a479e9a9c908c683a475e7faaa731bf8f8efc6b4fd76aab25f9fa234fc351df42879985a63ff2f51b79d55b7bf219d6119b28fd239fd2272a1509c917b789c988c9a3dee447504fc34d4c4850df75ef2d7ce2724a3ad0c473fec9533af18809952637542a950af5269fca6380f2a98f07bdfa56251f370afdec33b74bac8d798b8444734328148c88833526a6e3333566b2522cd5352673a570316f2171561c25e9ccd8bd2499cb09a058106705508ab36285f2a839e2446cc42485f28572a3fcea35a90af228e1dca8b7787572622b09e556f44f9ee4a3b39cd8153d39d1e1fbe4a983272f71895ed1d0674c7e64e48b0e96c89250ee932721513dfd42d56723ee920678de9390446cf226daa483fc41f69f7c263ff2265f90ad2a1979922fe4ba4f7d284d4d1f97530e526fce58d7446c12754dc462352615d3d1fe030b36fa3165080f2929f989e910d5094a26dbaf3f1fa6eadb43b5533f7c5b3da4f52faaafb846cae4ab8967356769d5f367b23857a9f527957ad4db2f85aa2ba020e4abc99cf993d37d8c4f738d2c455c7130c6ecd287f367c7752851528b3aab1a4d958f7293a856fb73da8f0a51aa69108d8559ccf6af4693357f5cc5dfe70f0f0b08124efccb56441680475bd39320c8a6d3c7dc2313e6f499864f2672e852782c41ce827a7729624b9423992421398573e7a77855390757f5e7a7741824852a81837396c0c1e985fce32c40ce2a79d742b0d9720b3b4e01458f37adb57a957a18faa9c73f76fdd44455d41764574f7fddd3121d5da58b57623de78f4c0eeffc992fb6ffe5726a4ebdaf83abf9d9db2c2711391c8cbfaab123aec48f31273a6cde13710dcc861c03c3710d6c94e3ddf27239a542f9158d334a376cfef2040765e77196ed65e9e58f03390bf7f23d48c859bc972f831c141a9281e28a9431b6c3942de7e67dd9735fe925de3ee8c6674f318468c7298060b467ec38c5109abd659cc4d828cbfd5b9695c0413964d3bed6cfde9e94cef8e2476cd15e5efb1f4e0e1e92a7ae75ee882bb36a592471b294a1dd5687110e5b7e26b50a65353f52e98a980d596e8fd9a10daf2197a457e184a21da98801cde5aeb8e20a3bec38a407671f16b37fc72a9e10db5bfcc08f8e6c7bc5d5df6699d543ee473ca4f52f572fc1bd4441b110f4b3bd1a8252aa271680a0c352eb576bad756654c3a93eebd75a697c2be913eaf61ca821d30fa321d7fa19fdc8713b15e61de3574da73bcd7697d7b86b3b4e0397532a6d23fecb07a396ae1dd190bf9524b225cff650f26cd7565218a61ccdfdd8debcf8a16cfd16ef6b5bac48e4feba508c75b846bc5fe47eb3d6daed83c962c9da6db35b11e962ffc26c9f459c7de116dbf7331be3f6598cf7a9a5947ed4620cb758b8c56ce08f18ebd0bc69638a14f527ee52d4b4b9343e3e99b40d47b365510b02240addad6887f37f380c47edbdda6f42d2856e433b9c976e31eda7bb0eb7d89ef7efdf1b9ffb3bafabc8bf917ee1dc36216983fb2f7ddad36fee7c8b48976e8baf3bba6998cacd2249618f782f17afd6abecb5160de7aee9daf2b722dbe33f31b942bab52f611bf76136cdbd76e5dfb9bdbc3a244190adc856aaa1c52ca3f7fec444d0efc1d1ec935be560fc4839ba15912e728b6d9f3a3bba088292254cd8664e7dae9fb7d4976387ceafc304933f878313749589faf0647a697a914ff9e5f432b3606653eec664a5e440fd4c71f0457e148ce9f3c3a0fe0b4d7fca2165c171bbbbe00f51a80ff7e6ac52c510d44a1f6e6f5f7ed1dd7dbed57e037fd0ad69efc3db9ad6b412920eb17fc84dc1e9856d3b89de0f973a6222a68681712260a6e6e44c9e818c42a6ff834618a59b50540205028820aa9659204220360d07dd7e37cbee0ef28d9e9efb52defb975efa7486835ea9d10f8a4aaa1711d99b17538844a0ed39bc4a223176d459b298bdd459021167a935a26445d5863b93673f0890faaadeb3ed07c3fd12bba6a4956f232d499a92255de24476fc5a350de3873f9eeb3849a35e717f4f593a116ca3e46389f625b0784c15f7f8f3699595649325ac83d6127a497428776a6845a552894a29a59452f6c0602b25a50e93187f25a24327b2e326ad94f86595324a19ab943b250e6b5f82bf248cfa17dbc0a94fe376d452e7769ea697e2a7a55f82f6b454e2e897beab79c060fe399cd3f335ee37ed35ee621d3c4abe044d752caea1d97ba72689ecea4b902e3a4e241a99240108373ef0c18d0fa0c099ef6dbf79304396883f2f51d03ba736bf4ca73e4d7b1a73524a8f30c2c1f83c22cf8c983dbf1b925742d03d3320a284492207658dcab7a7c99e24dfc8d7e53c08ce97164bf47bf4d0b43b5f5145bea68bb0a6abababd23818445290abc42092c2fbed989ac68cc369348d28cd96ef724e3d8b2acd64d11da749c2c70fafce4fc1f6bcdf24fd2f891f72dffb94c856c36aa36dafc168443abebd51d8fd5dc3165b2bd99ab74d1f461685fd8c2cdb6b4312867c4d7f46145764d110f7a5930e3317d2a14a4389aa56a7105bb2975f693a96d5f69b9e4330d79e739ad83cb7363fc39fbfb0c5b63a09b9394a4444fec990d4fd9969f7831cfa6b673f5dce2a21f9120d82a8223fd3d4411236d88ce894be420c33afb03edd71f02b4cd594c8cb414977aacd16af8cb3d39e86d7a7434676324ac459e6d574e76bfd4beab7f9f23ea43bd47b4d89382857f7437ab3b3e5d31b67c9d1a144882d767bbbe95052978e7ba9ebda5021f5ab37ae425d5b17841ce71021fc293d5ff3a5cdfdd4d5e9ab63a6e7cb41195bd6d0e25526a6ad93903bf457388b68b509e9cd96f2eb8db3c89c2dbf13429e1f7748615bc696080b31282fbeefaaf7ec37e74904e350d973c8419904ddf2c6c1ca33bff23828ab4d5c916f9361b2ff21b7f6e12c8299b3681e21cd39944a7fbfd0ea92a63007a53669389fc2b48c27d3b4270839a49bc292a09308e51942fed31e6799afcae32cf7e5d79e6a3359f20d5145beacc36522bf60cbb7a181fcf99a39ab54ff95c6596ae4a42ee390c78c26cb951055e46bd794a7894a12392bbeb0743dc8548bb4762b1c74674f77a67dc82b7608646b8f8483d441e9afb822372db6d03dafd8a18c2b537b190ece4ccf8759e1c83ec79723081e64736aeaa0079c65d5c36e25aa113c8e7016134d96576c6f392853a6cf97b3ac4a2f5b449c6555d24380bbf42539e3206c4221b6c823c4956f8783db73dfa6e94e6c29f96bb2eefd57a9eebdf7e5e3325f12867cfba16febb3b5911d5bd3f4c80724c84bca710d5a6222f54082bca45ed10a5b7b8985adfda65f5b7ee9f3d1d9618ff8b34f90fab8e78e944ebdf665a92f4e150d05317b3e8da93d20bea4fe085b7eea6322480ccc86a625b30215c4bc3411e425a3b146238ca83f285ff9d962ca26b3183b7b8f1167e4e2ca06ff55aaec5965719f638b117125fb6e0839e4aecc5e66df01a09db1664c950d4497084818d967cf23b6d8cf666c332290a96496452eec8c5e98cccd8e30999a26e0ec5845135c3b8cb19dd9777ce906b2c36dd712c4c4c4ac60872588898979c1aecfc596499335b1c5944d86ab44a97a57f9b6fcec88a942b3ccf58fa895685a29329d51a9c442cc2db58cb842375f627b20ae501e51e4500611123d60001082e892f247c496ace579cb0067943725c69600d899263b43656df34b94d2cf90a03ca8f7449e20e68ffb2110fa41d8e4888483daffb07163b35bf65dce72df0f6729c18f1db5d60dd7c8b81b7f2ecade31597eb3ea070483b891c359a836b5b9c2217ffed4e108541b667e90edb8c67cb9550e0271bfebe0e4aed6d141a97216df4ea5fc2c4d753bc8a16afb90d24f5649ab54aa10d4a8d8e8e795ea836c950ee536d94e9f6f93ec335c7f8b10907fc2d9a7b7dfe9907ea7df64ce7f4df943d34793f7a69f3026efbde8e9d0f3fe7aeffda6453cb779d97b93a723e020fd1c38fa781fc6cfe12cf912879038bc3fe9d076ddc93f3c9d4ea7150ed59bbc890e553ac8de4e9fefd3d36bf2854a488df33e95c535bc377d23bf6d9ce91bf99310d9fb54a76fee922fee0d73dea7fa8885387d739bbcff4177f7c19cbe7bd5179edefb1ade536c63eed3636c83260d5119bd3b75efbb7b4ea3f38b28e11a3e70d536b8c71fa38bf7271dfaec7ec2246123ee2b39cf33455515257b9b7241ed4529c626839b8181e8b68db87f78db46dc4138d8c51a67e7db54eb7b2d7dbe33492e9d5eee12ccc9c712e1f6a527f95638ea7b9fc4e94b327f2dba5dbfebf6266157dcef77eafb2db13feaabe11f63dcaf1ed7e61ecb989d3ff9847daa9f805d2b76edfb9d4f4564457427ad3dea93d706d7e9f00bb7f73c7ad2618f7deabe30b5f157acc3843ffee983e974e60d217ffbfc75560bc13dfe3b59f185de0763ccd814b661fcf197bed087e01e537183d6ee3899b3cff4e5eefdee67f7d4c1d97d74b0cb626cc91f9e9ec8a79fa68f5f28b7a9f4deb4df753ff3671f7f4e39ef337df7e52f091957baff41b7f7a56fa35d57b18db87de74f5eb1e5172ea1822d63aa80018d631bdefbf65ec335bcd7283efdb6fd46e3ec4e4fc3f3574f30f94fdf7de1e76389158ed37b9f447ed3e3dfbaed37fe14c0629f9e058b08dbf88b57ecfcad7024609f3e01fbf4de97801d71e6ef43ee9386f1efbefb7dbfee6f176fa7ddf774a8dadfbe3adbb8eeb7eebbddd3ea78d3a15ce1c09f1f7b1fe3cae9f4855dd8bde92516a2fbbcc2e13df7618f9466bf11a476d86367ba472a253f8644ae90a28ea02db7dc5b848046c50d88f6fdb96553df9d026a4468d7b6264769e08590eeb007e794eaafd11952293a32e2c5e92491a4208d78502729c0aa67724a970ca3e5c39e2d24d2490ab08a42791f357ed4771fa525118a076b7904abf228e63f9d4ea7ce74eade84d2d2083feaa551a6a62f09d9492349941121927dcdbcc6fac917cc6e9b873a6512491ac92399841ff5fee1ef3a7cea50a6ec9ffd4d26531776af9d3246bdeb55a719106463bdc2dde3ee4ddda9fbeabdc97bd417a2507f7a8bb1f7a8c728eb796fea50dea966f79e7e3b5dd49f3ad49f2eaad3e1cdeee9747a99ef9fee9f9e3b71a89730f8f16f1895fd86439cf1e994b3c9743a3d0aed9e6ebfe9103fea330aa5f39bba3f9d4cdd9b4c9f9aa8b0fb527e14a57ff2bc377959c3e0cfbed33fe8c67afbfa5abd36cb5e35c8f269dcc82169a44b6787901fcea22f3b3836614c9289c213af1dca9a161fc62cb09833a24106d52f62e8c460a2d341a61184b394deff460ee7de335cfa49357e1afe343ce78fb833994c6f236e93e9abe9eb9b74fdd3db9c4fa6fc79d9972061e09deecb0e467a392ae7ac37acaefa068d24647f777777f7d43ec90c06f8d6ba0945eb2e65e65e0a02a4b415719d3be7cfd1f0ee721c9e97fbeef1873baec35873772bb215e9c19c3608102dd334ab050162b5adc8da38354dcb5ed3341c5c6eb361674b7fd2755ed775da4399de9a3ed39f544e3aa4595f1d3fbbe91e3129c5dda49c8300a95b51dd86b6d856c40b026413f24c9b90b70d9936cfd3e11693ad5c37cfe46593a773de9e72dc56642bb215d98a6c45ec91cdf64cd3580e02e4ca38ef168b52ffb8f7da2f5dfc9a6ccdcbd970ba3bc5cced6c32e990ee1c494767c85957d74e75555775ede02f6e8f87a7070ab1a09f29ba4ee3cf3787546b9090906acd9e256973237540642747ee80e374d0515050d051dc5b52928c998374491ad9aa43a9a45f40afd70b68cfdf6a50dcc251d15017ae6bb26ecca43bd225aa729ed415fadc54868c016cf9f34716605a1dc3f756e262523786cb7efcc6dc98ce08d95f664fbf3133c5b527cd8c09ad151d153904b7e4a2b5c2de19f9c6dc981bb3a78b8d4918f3c3ba635c65ba44507efd141041f971b216105562f527deb30a3bb6a7ac353a2a724863ead35d75b8c4a65ae38094346883d32fbd0fed396709234cf7170f397d58bff45bfd30c618cfd7343de99890e3477c1d8c3ee4ee3efd9dd69df6dd97be7edd17d6efee8e5125ecb48f49c3257e407ca9407657dff3381d5ec7357638215ff2e71a3b4c9a09d30309f22244fdad66bff2befb1dbb5b79de7bb576da87f6217e25e61e7202d3c71d26cd049025ae788218d820873ad8e18a17d33711e4c5a49b407dd6dac77c2e5a61cb8ff75bc99729434c8ffa96902f4cc42b5e4eba65f262d22d307d134b3411e4259b4c2693c9647a2766bc987e099396919169cd78c9df025ff2cbb4542ff95bf725bf8c871413a37a61c226c5c4bce49771027c6162de21e625bf13335eb2ee9690272b65075fc8422b8a9927b4f0829ab1828a580ea060069e972037325790e9814f12197e5eae0d9ca0851858a1042fb4e0a5f3921c383a6433bc674650ca0e51f6049d25c68da9623bcc791fe3fc587a6fce5a5dc6a08a3fbcad6d3f6a9ae7bdfb1365f027fc097fc29ff09a4be4773cc77e8cdc973ee47ef3c2897594ded39d97de4b5f4b5fdf72dcd67d520b2b2cacb00a0b2b0c1cba5808df3a0e73a32267f1bf8e9461aa9eff814df0350d067377777777777777afb0d287fe5bb518873fa6311ea118380eda5f553d7db0576be96b2d3d7e8f06eded3f5afaa817685248632c43bc0d17f0ec1f76a4c205aebde5dccd1b075536d5deb57712ce6eee8bbb7be570da64380e854f1ddafbb4c1d168505c81c596ad4281d6a14ae4df65df4defbbed4bdb97b62f6def75bfe1f787f1ccec293ffa5bcc1e7fd3ebfce9431a7d868f7c2accb54b47840ca33d27398d43d34a782fdf1f8575f8cb1c008c43655719076da784ecffddefb8af66309c67ce592ae16e04e3b8b4663fc1edc3e772e975587aa95d7326ba7df8f0f6fc0c14f235aa999cc9c8246d2be32ab6faf8d59bceb22ccbb22ccbb22ccbb22cfb115c234b611ddbcfeea54cf7f3b90f650bc7d4a197fdab9fbffadb47bf7be59ff74d5ffab8f73e25f2a6bfd59e3a85fd2567e1a93d273cc4f6292137a74ddfe4c1377d1057ac500c9fd0f3300e4f2b2177feba2464ff69135bb0e6416c897bde380b9d3cb3c7592af7e253542851eb909067a9f454eec823944a72a724774a72a72477b67d2f95b0165e072fd6e1694e2b2137d661e933c6d17d098683c9ffa3f449502ab4e92a93b5ef45508c1948e0f6c32684c7a86938fd81c39fdddb4783a817e2ca17240cfb34469192621cbc71448bb6b5bf69b54ec1e767db6af46145daf64b18876bbac2c9a86778f13da878c8233be21dbf465685d529f05b500d4f061518b216b6ad55d85b7bea74c6d806224b4615ededf3882dddbf8989c91443cd6a4ad0ddbd0fef76dfc53abadff40816e287dc9de642235a63629470f4a34226dc46630edad782e890abd80f0a69504883320da23cdd11b2f6770b39488392bab759b6a98db3a4a0a4763891a8cc0bfb990eb52f3dae3c275ce9ab47d5c8c1a24af4d59eb8629ffbea14e28a7defab5490306cfdf994b81b5ba41bf6636e2bd36cfb992bb3b19d4e6cb1db7e6d398b36f767553877854d2aa30b0d9230ecf748d92b25e8ceefc3bbdd0f322cb6dc6dbff2c4966c4fa3215518f216b260856db310a9d8f62750f421f7f6612d3a5215e5a12964b4eddb0d3659910649559e3ae47458b77f904cb9d18366274826d9f038d18c0ed0448a2d42620b857ddc53ac03bfb6c242acb86d77b564df4b3eae627fc69010f8a13fa799e8ca1357ecd3afc286d0c1b6d56cc0947e7b4d06614eafb4c77afa6cfb434e6f4b7a08eaed5fef4369f0c27e78e050b010ae61baff21250bb2a657da73d346db4e4f1b7feea6328aca65d00bfbd366b262b88ac3728feae76db6fded05d7d5f78f3efeeae6e41ee27dc8adbdcabeb5f643705bfb618c6d87b6ad451bc67ff2683a3b68dfbef6746b574f9bc1361fc2055b4c093d763fc8324664e4d4f3b432ba48154418b145321157b48ce976e6f398f7ce4b5fcab88dd36b8d904319346e4ec66c15441953630be2139bca1bc8a12ddda56f17006df7c0110e52cf53f24839f83b1c943a66269583487895364847470a2948418ad6d115ac20849490d26cfb5bfc68bf9404caafdebe9c91f6658db398bc7d694bde92bc7d792371648eb3a0de9efee52c44244cf2706f5ffa00c920292463cefab72f896491b3bc3555ecd36c57d2b61fad5d7d8bd5b7b8eff7be5f2972fd202c7efbb4f78f87a7f4eb773fcb50e6af3e6fcd7b73ebe46351f2a91ee5df7bacf557d0b6bffaee9eb16565bf23426e617ffbdf4a3eb9572d1ee535ac63f52dfeaebec56fdea2a4c5a784dc252cbeb9f322c2c347655aae625f6e8e33591e882ab1e5164d1bad5d957c57e350beb857dfddf3c4be897d95fd12fb24f647eca7eca3ec9fbe093483a6d03763dd3787be49643fb35fbf799444633e2ae32af6b78fce38685f7e36e496ef9d1878e6cdb43f715e6cfbf769b866ff12e17fb5bf5787f75e4dbb33c741abe3a0759e6d737cecfdd0adb0afceb08efbee6fdf7d2a1ee2fab594c6c43d2ea87eaa7e66efd97bf6b165cad83289f928ce42e32cab3ff96af2f55d88b3a8bebedb907c1df99afa8afa7afa6afafa5edf61cee32cddd7faeee33f0ee4415edf63ef445ee4ac4973b4eb7425ed6ab36bfd6dcb32167f3f7ffbf1502a3df76d8ff3e7bde9cb7ffa4c8ffa4e9ffa503ff2a59ee41bf99292a73e968899adc9ba37af566ff29dbcea33f9f9c5169f4c143cbc13ffd2e2bb22e41967dda9526badb5560a44b7b0eb7744c8f351eadf16aacf0712288fb10ed5cfe7543f552cbe99a3b3c3c33793684c2bb66449c88df2c58f5ee928dfcd56dfcc71b0fec9374dbeb9e3607dd5375f0ed62ff9261107eb937c13e660fd916ff238583ff5cd1e07eba3bee9e360fdd3377f1cac6ffa26d00c72b0bef74da11973700e4da26f164d23078f269283f55b7c33c955646eca90e95091b310cdbdb357818287831e88497fe4ee72d715d7323011525a29e7cdc4299243da6acd1b9a4a9fd8998eecbd354369624b1c22d3f45db6dcab74ed8a877029a594dafdeb899fa4d8a4bbcc31649640f3823b7a47e34aca8e9ee2607c1129ed5638a48e295b557989e96f748b0e461a35751d63d3df28a5dffd7cba99f2cff4cffe87b34ed17b71fa62b8cae69a9ba6fc857973ef7df80b5b6860f6ddf70e66371cccb2f0409c25c77cba9a1c87e22c19510f3cc490813396cb691407b34f8921c71da676d67d90cf06fd497ffed474e31c4182e458f973dcca758a83d9bf83d9c867a90c958da4ee45e57cca8090b1efcb70d25b67cde8d34d75b8c49eb4d6fae18c17258a828900b7ccf7de7befa63a0412ad2945450b5a3b8c3ff133ee6db819e07861f8c36eefc6907df3fcc31f16268661fbb9fddc36a22c7f7e8cdc87daf6a1297275e8ce90c3df7635afb5d65ad04b6f7f03638bdcf6a3cabe44ccdf56d77e0ab8e9d5fdabc1bf57bfd8f1d1ce2767ff11468dd01a8a41454b68d737c259e8ae4cecec1acad8f5eb9592fef66f2b6d79daf264cba922f764c9a852bfd65a9fea70c6ae11b66bfdee26d77f911203ccb123b6c45d3f66bab40fba894c4751d271d65a6badf59d98f152bf0920f75b50f2d2c41299b5d65a6bdf89192ff69b0052da010f8e70831a3ca10a362f40ae5e2206e1d8a109a0a12ddc218a973c55e4bdf7de7bafa54d64cfb22ccbb22cabba89e82afa4e1539e79c73ce7762c6cbd44de8207309eba928b64d7a9c2690524a29654a4a57844cffa5cb953068fc81a966c4b822530769e852c615ea72c6618b7bf36ac4941409c62bb68c2b32aed4f0edd530e920fb8717dbd091fed0dfbc49df3fa4545f1c92becdd996f208a13162c488b149a9c37d370d37c520fb905b860fba5fec30c603d1e874cf190211d27d627265fac22523d58171646fb9a0173f293d2873c6f00fdc3e9ed2229c45bec9957fbed430d9dff72fa47f3fc338321f5209b9adae0f53b3a02da6845e6cd7dfa44f5a337bb5d2c6e1cecba6132a354252a2323959c1ba20b3edffde78e0dc412c7f63c1c518bd0e7f84093d90cac7d5a30aad0cd6ec992a33fe367b86bc1f09a33ed10c14552ac7951ff17ea48b29c2a81f2367efc71259225be42c185ff6b40340e74307762adf753d7429df6d442da2eefb8e6b752ebedb7a7a7a7a3afddd36b40d75dd86838383d3f1f0ddc6c3d3b5f86e6b755dd7b1f86ebbb9e9ba121111115167f2dd26d375abef4a3d3d3d3dddc977a5a1ae2be1e0e0e07423df957878ba92ef4aadaeeb3a92ef4a37375da711111119752f854a325d87fa4eebe9e9e9e94edf694312461dea3a0d070707a7d39ea7d3787e384b6b4d955652abebba174174d16eec77df7d8fd8e2f5f4f474bfc359b767aad4a16e080707a7bb381df7ddfc8ea7fb1ea2cbe5f9eea3b7ba6e6e195dee4d47bfeb3a1550872a1f00d0034ee978b2f76d5c8ba321fa8888b8d6aecfc245a77b867abe9e9efa3c3ce661c3e1d97078d870361c9e5d1fa505c7626b6d375b8b87adb5b5b69b5d7f85b299106d32442644449bccae7fb22a9df40cf598f4d437516923251c9e12ce4809078767d757955c9252eb66a4d42ab56e76fd929435694425994e233269444425995d9f04959db41e6da8d37a4c5a4fcfd0ae3f92aba6e1683c9d86a3e168381acfae9fb23c996a2ded466b692dada5ddecfa9bf7752fb5ecba9a59737b867a7a7a867c7372561c1e1c1c1c9e5d7f7ebeb7d4b47bf64c569e36e799efd67ddc8bdbf9f26471422c51ceae37360dbb7e37450e2f11d12d729600fec65996e88700f4805f3cbe322a187cfc34c659d6450a00b00f8f6d90c642ceb22ed710ae18db1dfc2f67654848b08a2bc6b606e39f35ceca8282a6908a2bc6d91146317256f67a21555c31ce80b08fb33217904b08e36c67a70a9ed8a2c271564542d2417a619cd560fc2ee3ac1a3413e43518d7239c8a39abbe5e442f238c2b10c62f8938abba248fcb07bfc42f8f102bce8f5fba9c459190a40d120e92cec62f71ad099a2af56f4caaf845105de8117e249cc57bfc3d628b7c11bd62f877388bbea64ac58f23ba50a0c80304fe17cea2ae1c37620b7dfca0b36ca10f1b7f0fd185eee0bfce9a4853a53ede3825b6748ff1634de390e9a6b0fdc2125d991e74a8eae103a0c3fc03918a96d915d41c4d5cd95d14b2e783b54100d03da468fb72a1b5ae8ffa3a16d65a16d6dad3e31699cd58649935f1c09d64597692655946d95659969d6459e6999448b2ac7ea7d24a90b21a2412a4fa78e49e828e824e4141f5b99445d517d0e9557f3365b7baea4ead5fcad5224d16e7aa352a5546aa1cf568103d0aaa7fa390e70ead107d01bd5e2fa09f57d6ae455d3bf53ffa9b91a538c905c6a1b23b215c0d57c248f88873713549ae528578ea62a3dcd5744276ad33a3e1b3681acd231bbe7152ebdeb46eebb6ae8a7a371e8eb3048093284672162b617c72c855ea6f93f34bc4cda854444844959bd9f57de324ae8668b23897cf4817ee8908a37ed521ba4444bbd220aed40fb918ecfa258e060a99f37e72cc31c79ffad50a394b888dec50fd6d63ce52b1113e72d6cad7c7495d4c27b3d9e99a1ccd9c43d2254b18f5739e3d43f7e6ac523dce66b411f4e768266b8bd9391dec8aaa256ce3b78d7177b0da11210f59f9fb5287f868d7dfaecb196fd53e09e4607d017c32c855eafd520ed65ff954ae529f7e9f62bb986934592915f87262a3ec0457e3ace99a5cc6d1a4389a5d7fbae6b4d92967e12357a95ff3ae9b6a6ce460fda38c8d76f562a0c3e0608b5acc9eef5c2c9662d9d854995f7130716474b12e09c3c6262bdad7cb25b7e84550be5632a35f8c4bb0917bc597ac9f175131f4270ca8cebe8cc3d9b7e52c367b3ebd31f3afccbc337bce4d312df240073890b201173c3490018d01232e6081af408b2228300116128800041e80e280d50e1d0d382122c7100c50e128b9614308921a412ce025b5513414900013024e40b8b4e4037833582cd8000428808c0174dc16038600567e08c00bad7455401f00d043663dd0010e6c808706328001232e60810a144181094820021078800376e8680011398660008e1b3684a811c4025e360d0524000140b8b41c60068bc500320a408001c4802180951701f84105f401003db8f8e24ef171f1c99de2f33305a25850157ae8a147e3689c9c1ff010d919929272e3a2c517f7cbb4f8e47e99960a6c5c344cb87011c322c62236148699745424867fa116ab2f6e14221b85084c09413f3d4c68d1e275e23a7109a9c14ece8d0d50506a56aa23d511521b685a316f58ad8c487e487e80ac503424840595caa7249593cad181a207f6124249094ecbd49a69e246480d0b522999d3e71b15771eca43446388413222030a15db71b95c3bb08d613c4d9042403e4ff0edc5cd0911627383970e4e0e3ccfa521694831090e35333272e0b8a30b748182b2604414d3c2b6fdc4c862c858f1a101e285a5379115a3031fd21c0e7c487736f0363a882e39787c4877b0fd236b87063ea4ad0c7c486930f0214d721617ef3fe7105d7a18f1e1acc3f6effda750642171810fe790053e9c4515f8701eb1d842749133457c38bb00145b505e91256928f0e1844de0c3d923810fe74f0b9913011ede7fd64496d481c08753c8033e9c370ef09f341306d145faecf870ca60fbcf99d8a2328a2cf9a3e343476ac0873386085fa121bac8a21c1fba1a88628b894f6449a3213e7420067ce842389c848ae8e233373ef42ab6a7a28df7570d2f797fe74174f19c203e741fb84c64b98ecf6cf79aeda7f79776882eee23614c1a1fca2bb6e75864f98f023e944409f8501a21e0515e882e5e04c487120c41b1c54424b2dcc8e543c9237d0ef0a104da7e84e8326792e08aac49c3fa50dab07c28710cf0decbf850d260fbcb27a2cbccf911595367aa8431299432bb00313e8c6cd8fe22882ed347d2c416fcfe48f4882d17c6879148001fc6d8caef88acf95385ed8f23ba4c950f230f1001f81791358da6cadc5ab477f0431fb6fbf051d543ca8773ee1ea20ba549892d95d6f8db0ee8c90167d9800e553b8774b1423c764c968d69e027031a03ba8774b14146e8d0371293655f17d0e1b5809e5f816834235d2c5011333493655d14d0e19d008d046872a48bdd89408ece64654810d079808e03747ca48badd9e1f3335959908e9f06fc10a143d57c59245db2a31c3af4f9d268fe1d428797011a870e5519d08dcc65438757089a1a3439d225db092267cf8ab4009d179dade3235db21a1a3e7bbeff4c560d9a2a0af849c00f0274a8da5e245d6a05c2dd68b2ea9c912eb5ce1ce9525d748b1b1dc08d66cc5c960e2f8b0eb301b40c1dfaa6483ed2a5d64818f369d02c922eb4003a04d019804e0c1f183a540960e5850e7dbe68a40b05a22eba2361cc0f80fe411ba9689066fba0431500740f3a45d708499769348d84fe8b5bffc8ad7f80b611b5022da24354080b5b7e38dd9092e2130b8ac562417b6e173972bbc8d181a207f61282d6fafb7cbfb5d65a8bf2c5cd02e5939b056dd119dac4967f4385d01aca827f2d5d3bd6655dd6b5c3c317778ba1dd6288680c5b7e0c92111958b088f1f0f94641b235484848b666cf7d0293fb64c2661384807ce61350502691a0a3a023932fee95dcab2964dacc1bccd7d4993833072727dac4f796bd805eaf17d08e9b04890429090e7366cac841a53adaae9dccb5b3e79700c95d0214940523a298164848f4cf96be5348590d121252dc279dd3e73b1e858ff33811972295f29ca0a31a54836ad0d18e1b85f219a7f116e0b88dbbfc05a79336f9deea0be8f57a0111754445659009a9dca8548cb7a541f0989919010000122315000030100e064442c15030d4754db60314800c8ea85060569b88c32445811032c6208300800c00000800000803008074cb0d3325c150dcc38715e51bcccc8cfeba0e33e630b73606434b1a7df34bbc7b01fe4951c1500b481dc2dc5405b01d9e27979f1f7f1859422251c624b2c58584a884ec3e53aa328bb2512d1245b1cc28d333a6c1a164f4232ae2503228bfa74c30d0c2b21e47243efec3afe54dbe3203115a34670220e08ff1fbffca4f76dfe137e81a9498d41430cfa5841a42c95f0003a35285128fbbcc9132a03181782a72ce4cacb5f366e548a5617849d2abedf460c2f5baf3f77b27d5cc3098ee4dc1d352839f2e62356ef3e0a18c97e58f7374b10929530da985b0881a146acb979fe09dbd75f9238f91cc0170cad87641fa7ec32e17806e31bda5e2d77b89deae6f0c8c3fff5558ddc936d840d8c9fcbeeb6c51ff4b6811e72f177d0b8eb92a92cf7fd3b75f03a634ef0a34babf93c869d4668798c02e7f936f630bdef5b185ddbe4e152832dcec74e05d2a61f167b9be8af561a27e80435d9f17019f823ddc9885046a78e446cfbc7bee9769048807ec28b05cabe0a86cd59acb7b332b1cc0db02d953a9714800a897fe88253e3a6820e0d1378da47a1c65e69c2a8443440e86206475b9a5cdc690584341ccd93d8df75975fbe60fac5f9a709b974d5ab9664e65f7f45046e003873feea0ca543e6c63930eff631c284fa862c08a44f9dc2a423491ccc8ff9e53bb58f16762cc5311e84c4240a74070e08abcb983846515ab97d3000d1af465d2b7bcd05d075aebfde643582f49b8ab4a38615ab83a64452a443c920f849860c7b00e3d3d93cc1203bb25716e46760a9e348b4784ef6bf2ad10cd4df87a5b8d896924230e249c7f8186141be8c1627de71bdef3ee6caca575acdbbafb74e1b945d95fc7107ae6d4cc71ff031ff8a80f3ef4811f7de8c71ff2b10f7de8831ff8e8473ff2411f7ddc473f980f797ee8168dcaa35e385b534ad99b38973d4298f8a809219e9cdd9aa7b4190dc520086e449ca79bb544a33340b99b1e14b1d824b4ff992e283276ae46e167989202ed092b60230c5825e72407c3e1e928e0ee760b20f19caac07384b3d6ccd5693d059208b3d742780833d982902741a035183549fa36a8fc015f633e3831d34aa57cb12f1736cabb95b6e1d265606daa304ca8e131dd10f1365c00e8cc61b77da5be3cb463d349a77b12e6c588efd65a30da5adc68a5dc71791cff4f6ac1b9b6785ea00218c38330cbd04178c635d39b6f848b67ab544bcee7b2357044dc5d83c57b8a786a29ba52e561d18dc12e52cd26fc933fc1f18a08ef58c21e26b78644c19cdf6afc43e36f1005137f55bfbf2c443f90302541f4a1c8c5d30ea2a6fed934f75f89f19bfaf10ca23af5b778a12560c53188633c34284a7c0b70c0a41a4447c2ef85e11844caf13776feaf36f32ffbfacaacc62f4055ec164458f5bfd4fc6f08e64f324c2f888edca1a6dc00c4e9d420f2a8bf2fd07e964eff5763ec41e4457f5302c64859ff0ab31c09881805230a33ac4406d1a1fe1d0d14824874965aa8b0b99b6c70484e5104419a13868d10fc3d34483f051109ffff84fa3b75e2afdefa174475f4ec50a00922a56687dbc06ef6c4aeef17447bcc9dd21a44a4797be53e3460c329ce4629c075be3c0b4901d11c83fc206a366833dae4f1865241cdad15cc964c6fec6250100555007083a8c5300005ff156b2b2c82089b7f25719000e4b74fb7c9f2af48f9f4320ea28696c631e0e5ba49a0a9c3e2e9628dc428612eca6a561edc11460e7b2d846179a99d1394d7b7c32e2095ef21ede5f80c1b3d856d52d043cb09687037d1bd6236d41a74a78d0b8dd8e9a4cd9529fc79b29673c2e99fb49f72766d8b50a8687bab89574227502a26ee2315599095568bc55e2ad3cb5c8d6004bc9c5602d6486c94796ab918649b75c90779ba0f8a45e976aa4248e369a6a014b5c99ae8f604aee1303c70436c8d00b7902db8184ad4c1b89b29ccd068f53029f4b40ea5d773c688c4c62e23d1554a148ddbdff21498e248af387b2a0ceac4123cbd99a7e94f2b30473890401b9b461e6d3323315980ae303462681566c2d02f96a9b8d1dd9972ad9f6f3ef361be4b6a7b704cacbbfc40996df982c9df92c660ba3d91b4f6f4ff7fec49c0c64fbb3dc94261d42d99d2a19f8b122303a63f2e450282bb61025aeb65ac168f74f8a67149f52d821630fa3bd70851b12931e3444e09a8b363df548ecebeda7d0bc1f4d68e47ce053b9e4571ecf06ce6b82d9d6466423375f58979104a6c9506d99c59c12abd1d16f906e91220e2c3ff1af1a50d8d3c3656798a19598c2e063c8f504e58c280edf135aa5c931195c0c7114b91846080ef742ac7fb05986319df8a198845bffb0d87718a744ee208653f4980ecfa6fc83f444200960352fe5fe711878606282a8b63b533b5005dfc975c00705a9900abd44ff17b5d71d831801b6b1cf921220290a7ff2d060c8002905e33aedf4f76c651c4ff6de871b4c3c8fa2f70ec816230aab8ff87eb0c12b84f5e52e3e192ee7f6206127b43f6b7717c0e2c8a63020199ff420732e2a2de2f8cffc92b58e0bbb69fd4244826cc8c7fa459c8d7e6423f07fe5593011969feb3ac9c49090aff4b3008909b855fe0fcc77d1081e8f97d6d620a1a71efbfb75c1f30a7bcc71ff896f6056ea420e519f8cc5e29a227f6e7de18c46fddf80195cd8eabd04905f499b96eafe8f635faee2d25b7940a8a8f3cd016d8523a40e2fc95c2e5bd013ae6971f8cbc0da1abf2edfdcdbc4dc813e09698b46d072cae7ca4c4716b0760ccf1907c876f5ffd4ec384ed7829642e817a8421739a2eb3e5eb594a698433bd26e28f08a0cc76a574f66c1baa8c64fed442b745a3b2ff6cc0d0b536b0dd3680ee2138ef521e1b259149a6c5cd8c5469d72ad209284d93c2d266f5b46bbaa0321d0b09171b9c60737b0e52e6fc94d320234b2410689fe5b68ece9c561a3a8ec83737a8fca8fab712ea10394558916f162662cac8d67a091af2c241391d98a317f76d196bf0a68569d83299551741a37c7059aa01e479c63e8de51f5af25ec80dc8cacb05a7e885923cd38b6479e5e80c8c52272d58a564e131c1fe101b4cc158ba0ac5722ea4e9eb15ddd08b9079bd0f9284c6cd3665a8f0a4c13f64f0bc1e99de79a121b54d454fff51e0500f6dd53949824b4b5160a81ea5f928058db1bfb5047d5238458303260300a011fb5e28e903d580166c26fb74b75ee7aca906c6effa286b9310a7eb94dbfa8879a10db090be64afcf7dcc018ed7fc0cbbbf0904626bf5262caee17ab5ed46179188c7fbaae103b1db6f99abc50de7379e8ad116470014b643f9a6ff6144e914bc1b4bf100d6ebc83c46e11476802552e1c8ab738e686a2a917564457f57e7a8506c622e2b1304192d085778635cda960500b15adbb286962c403e0ae5073ed5879640eddba9e7bde909bbf746fcced3d6bd9ccecd7dbad84bcbf3a240e91a9baeb70151f4aba1aab49f128493af086a10c4f60f21c24dc30b9ae044bb63a10400a86466d1e9f5b7755893cad058a8110324cb2a2b836dc9f51ee9f09582cee54906e00958680f04a60b7189fce933fd48839f6b6d8a216c5e1275722f878340976cc8f0a44c273f98864ad58bc7deb9397bbaf1dc9f82c5d3416c0fccec818c729ac808088debd1fc03ed8f5dc2c0b55c1d0ddb4bff8fb9cf9707970cba9274993a7c494dd19b7697adcde4eb91049b75f0f58e40c25a0751ab1742136caa4ed417520294fe730bac6080627a584765f123c472f17b2d9a9f8ccc04640290f1dd86d4b9fb475ede2c4be27ed6e2223b99c2f44dcabcacc835cf2476fcbfe4de8481e85a3b241fb25326121d1ce88588103a78d5ccf3143aa83c9706c1555d37cf1dc70f2e0c5318224ee26ba60fd9618e988bd1851318d244ff9ef3ba027db49c27ddac1c3418f840a2596912e743e028304168e213d3ccc0f72fca1e6226489c8956f200eef1cc3912aba05acbe073a271ea14f499f48ac15b31ff5c5570ba25b676d2de9b50a2280284a10369b2da4d07d207bcb6972e77a9f1ce76f2e44d6f678c685e59d129a60cd7d41328153804b927368168bebc0ab95b75a772247a3f6d1c81674afae42dc062c33d34aea7a4318fb6ced599729db4b77f181fa8873493615622b42e93553538254ffdab1d92d5e45be9432e715cc0d188033b6668a054b1ea54e8c606c7795e9585d65c4ded3fe66906d916c60f0e80dc0ed1b8963143b0bc60fea3576260861fdc15849a3e4da9e64a9658b3c75d980746a6bfe747c1ea3c442343848925f268c0263ad8c71092b200839c413c4c2742010b26894956600a247968a8ea841d1703193b30b008409ecd222af80b62f86210a7cab52f7e57da29c8a68233db1932df20aa1aa3a4bc378deb4be81a19c96c4853782ea19d6d7334d70df91f0f2050604fbe5889bcc04ce3fa50874502e11d360cd4817bdb47f34f0213dc8071813ff193ed014de879a99a01be64ef33d6f14b4ff62e6eadc0c4b0992864a8eadd73b96840ea8a3438d8cb653955863f5d2e16e68a38164c8ad2825ed2a285ec3d65064f106c04d552211298bb12d411e88c404f8932a77080f4a4aa25c029c14f12314de900ea485b279033028e25649aea81ea905441b0a3041d4d6632a503019d26619de209c19d12311d7b29ae347509c24068e4b071b8eb93e48ac98aa9b8a3d23af8047a6a4f136cafc00c0cfc8acf52d03bfcc3b752d10b3da48b0ea58a5ed0878ea5426fd2474729450f744267a9a19774a3a714d113bad0b554e845bae82885e83537136b49e82d191d25a1c7dc2696a5d0b134fa94869eb999184b4067e9e829197aa1f4142b8955ae0da14030d77582e6dc7bc52de1e476c758935de64aaaf44d56bd75e9602c435d9220cc6c613ad75bafb9eb385d6e821e28f3ba40d50de0955e720ee3bb581d4ad88b8454d79830dd17dbdedde338ee6d1a61b2eba048d4dea4ceccdcbd73a4e1d627db92633203e3d2dd29a11cdb5ebae1f15cdb35626ae7489929bda15e0387eec16c209b7f90e327cc3446ba0b1d36e7b5acf7e45efd8a1b578721c53189c9f114ee74584c03a5b339767bb9aeee5a4059e527c2685cbabb0a9621140e41e495ac38b18fcbce24a48884eb558e6d6d111ead3e2a2dd74200e129a2266b8da249066ba0ed8d75d02ad69d8d7a1823e3525d29819c568ad2407b3a8ebb157a429b1931deb48e89b289a2103b2af95eb8a939ee6c1961aac3a1ac16b998a2d9042059f61174d34d56a1610a85f158714d2b81400990d3d1eb1b6d16e0040e85e997ed60399f529c62f390f098ced25a9888bb58a3e1e99d7918662bf65afda51e1a3eda8be5e909ed0f17247239d3bec790627c001775b22aa83f0c3911c6c553cb50cb400bceda085ade02c8d5ac05f4115f898cf73a9b7fc1f1494e07f2bf3540c73f92dab2ec7622464fd2c5930fbf88a93986a7c591bd7aac8fcbc60da4cc82a1109b4cdc8a8af81df76112ec3744f931fe0c6e8de63cd2c591baf0677f405fc88ba0cd05ee86ba29d50d5d38d24ab4a27045aadeff4206f80e17b30674e81d4f03f9d6117f9626a1bd222ef6d99bc08cd12d61a4926a7bbe5ddf3b8245c2bd13871a05bbc20e05a263ea851a2d3d706855d6a32269d51f25fdcd7b7d4305e24f1816718049bf29771bd2e4ff1f2d00060463740322a31f7cd0ea1f17b6848d42dfc2fa60efa0c03021e66cefe882ca09131162d7724d0ad10d1ac7627811f082c6bada8f7663b594bd73d5f100b05bc5aa965da4fc536db342c4486d70a682c0fbc56aaae90368075b916a76c916618763d5da3c0bae5818483fca4c44d8162286a8e6c3f98f1873e8deaf57e55ea4f00acac30f2ed0fdc0a0cd02cc0bd82047685759edfe090cb25670f93085524027523d48869eacc6a47c6f0e8e04ffe079295a82dbc652e4178d4de3000ffcc14928d9958636502b66a7319ec282ae5ecda6ad8e930266412ded58c0219947bc366b4e1ac0a067031cfd62f62213031833dc73ea19505b83d5aef5a4fbe3740752914f166e76605312a110ffcf29820b3e06590311fc4bd935220cce9e2511d4bd67312f77dd6f3b79d050f2049c017ebb9f5cfee51b5d6c0177ba123836f9e5d2a6aced9861a0c69fd4439340ce4d764f1d0cc8e4b0e2f86493679dad390caf851bc24ca1034ed4dfe8fc42acde308c80702de9a9b5016c7daa67cf4c7407e0d4eb78be0d697f6d997339a0d7daa36edac664289f754483a0bc4741d5669bd99671aec3ab4c5c6476907508e8c0ce7f2807a8fc0a1b905fd7e913d38f6cbb7da28d39efd6fdbc1a4ff4b2b321b4010dda44d304345084a5299596d7bdb3590f9e2752b06cdb4a482982aa07ae2e040f0a9c7b4f1715aee14c9a2a74387610dbbaf2a894e8959df35505c775547d28fb4795ce51c7cb67f38bcae615e809a166163556c18131f382229038a1b850206a60c288039a31061da8e2dcffa7aa7f91ed943c0a1f54733a2e65dcf20dd77eb3a2556ca27a50f8ba1785db8bb05b8ffb312a1283cea441f09eed564919ef11bfc44aac349123459e6c6b44c4b2d0b6297eb2c577d08ef05f3eb47d9a918226cff37798fe0e9da1e39376590e4e59aa1a0222f53cbe36eca875b4d46b0552ab7ef32715bd32eb62c2d77cdc40fed4a9866fdc7fcb2d21794abac8d743b4817caca5a45ff1ab8fe1115565eddee162b5a417cd4e63ce4cad69d3054a4701aa7bdf34897324dfc3783ab85631c52bb1c626b0060a95620a3527f224961b198f347b5694f32d11553d5fea1a5f3bb3d98a92fe69d6d6ba43753357ddd47359ca4f21a686ded5e35dec8a04a033691dfc4d5be4f74afb14de308c475796d6357b9207e189a4f7de1b92ca6bb079138a261dc0877511824c8f9ba0974229481ed4b537eda692fd1ada243452c726bf5c71d1db72ad0f52b99874316f1a85254ba65b8f538d22fda9c151a85637252bb1de447eef3547aab738dcdc25c7996280811b05c574c3206bb04512d545c4014fc0f42fe8133ad7b6d7c175980b0056d8836469d7321eb1a7fc02519fdd3766d1322b5abd892fb4cd9bab2ba84bbaa32ffc6c41b19e17e6bac4f7cc1a398243f8bdc9d3ef576e554eec71bde694ec035e953e84c7802a15354a48a9306e3d288d29c089373d36bd517892e38aacfb095053b67410154e3b65bf95e6304f2fe4af6ba39d3a68c88a96b94c92d4bc313eb64f3cccb330a46393f09b13320a3bd2b56049b7c38f6fceb817d79a17263f4574bee89ad2cc8841039f296891f0818d8c19ca0c54f00ed4972efaabbf36662826b2d17cd0f723069db9f6d9d8a49b3978348f3fdaa743e367a3069e634a3f4c6521990173419754b6366c5347f264d0c8222fe58a02a16170cfd442878e942f94160c03124d7fef93c1e040bd369865c553b8ff9d50743813d9990453c4c59c530ca391c13fb808b575ad0834af2c4a71f97969e561bdae1fe8f543c9b7deaf5fb41f5f3403cb1962720081e50b4dbc6837cd9d13045999d77dfd4a7fe4e5a75034e6b3884079dd70c1e498bbfde807adc1c7bcaeea2373277f07af5af0f692ee04014ca95d960709d4737541db28a004ee3024bf8e063cd58f2f6ed570150f12aeb9e20488569c3626789b2528f2e6e85f6ad24468a57b5887cc8f47b0f16977419d52971d71fb4fd9ac025c6e49f3d22c490a10debb8baf10677c17b6e3b7010abe44e99847a21f6b8a418b1832f6335805c1640ace807a68099189bfde323f14fa7e433c5e99b8702ce203830add3c962643b56bc1bc96c22dd537b94699844d86b7ebca271ed834297584b54ba7a5f49616fd81c1a604d8351182ef6e9288b40f776341ba844edcaf323bfa61cac9e38b655a952bf24cff87a1d462d947cce41983773f4eee440f7e6a0c32bbb400b4d70f8096cd8e76d60eadb2bc12f4c097056487b1302605b1f7dc12b17c84a7478960a9fba5a1eb99f9c0f9a31b5eaa968597e7dcb1fc0e76920094a9d78b710a4bd6fc56f19ff9a73c111cd96c20f6d904171e6bdafed797fc2c2f3c2e4c83b799b0780865b07724631543304be35a441bcc07b02eae120f37612882acec836997e7c44a0e7182169cda127c247ec8f120ef0ecc896b6fe9a06b7ab4b79685e883eef546a6aaca52cb9e89f0e39187c36fc0e10dd98486a93ed47736214e9ec919dbda8ced60467449735550a418cd25910ac97a52f989f9c9ca2b6ca4eeec2d4549fb751657d6af8d588800624903b2b57591e20698ea1772db5ba8ffb9a1446ce74f41a16044d4c06bb7f50a55acf35361ba205b74b0d766e983f1b11cf269a40c28c8a41f9095f01c5cd05c0957ee6ef8546cdcb494bb5d8aa8ba28362c773dad59a2e4252e5413a0642d565c0508210c60168da2c4846c66bdb4af87f0806e81c898732315b52f71182cb0d70f0216ca55b8e4909ca33c7730b24b8b98b3cba7f7f261a7f68949f0051c30518e229156692349bdd4727076cd8eddb307e860887bca6181cebdb752e4ca320010ec8ee7d62306241625a41cad558813932d0356aa1b8e0f2b9707552c7847b4da85f9828d0e980c0583698f9a20124da53eb9476d6c0c72b8ddc6a39da17ddaf04d69d72646141269b063dad1b4961fe85d31a1001c0ff126f7d9507a63c57ce93bb115a422a713b6ecb11d4510df559e59f2243d4857b6eefb241632a1f7656536c174986c2b5c182f97500a1291c7cea2c335cc67b32d51a7cb636a4e4d4f071b04077e8384d46e5fc4d7ddb174a47250f717ab0072ce88558697a3b4686a0f0ac7b7a45e6b4b1450eac6fb9cb3ca4647df17e687899628481ce3cff3cd23692622fe3b3b2dd0cd690755178116c8bf81c56005e2419dfcbec9d9cf17883b827120359f74f1c4fcd36f7461f675a23ace4f5485c0ce6d365253d4160f0eac1be0ed7447f2c6a3e6236a3eca29081141f2ce0ac0b5c8fea587b240f81e0f8050d23d86f0e89f4cdd4696521e3f60ba90af5c0185db1327268f0315fe3856cb327e2e1e29d4c57aaad5111a04846db80917815931df7b76c723e7467f49198eb903ece9c7b8ef5e8ae7703e203516240a1f0a0f7eba2b4e3e2e4c815b0dc4c5c8d83baccad4f9907c44aca2a3c6eeccfad6b20326a88a5d8668ea4bac88c9c1fe2ea9646b1dea009b4ec19e1f17b6d884346f24f865b1105dd9dd16a1bb4ad55be6092280554e99862dd6ded5a09fbf28f24b102ba11b0645e436f4ece842cf088ad5bf962557af41be678b826414b58b1dd7f352abdba4258c9b0220a486cc7b79fb5d2d115577a008fbcb36fa7f881a357693fd23b66a9e1365fe98ed11eb4ae9df59e83c33dc8770392c0873a4aed3f174fce8c80348ad5cc69498f4c0d7843a77ccc6e2e860294dcf7b46e6160a67491a40c85126f5bca0fd9c04a08b523691b951555bcc9e2d7a102c33bcde43ac7eb4c9c75b9d59bff4931549836031c47f43ea0e64bf36c97ad49eecc4c278b005956e96d03caa643e9a3fa86e06f2c260d7d2e8ed0db7a56758d39f3933b8c5dfe5c1f9532d85607d53b1ef9bf11aa11556388de8b3b9cfcd85923d4bc5cc9435b806715f7b976cee4e6e20ac47b4c0da66bb6205b7ed9c4ced9ea63006e9d8d713f8f3fb734867713a3ed97e2f51325e0830c1503bf8f5d8b952cf0cdf491fb4956bca6a781a7f265768957daa0452464f7f136bc45e05c39f670e338cd26b0b424338c66a21e7bdaed5a7d88d54792693dbe29d59c95851aecb65306fa2ad998afc4d1d61053c72fa4264122c542600339fa143738bc89f280833177a36e7f7037e1db452aacf793dfb33ae56845afc49e82924e532d36aec82802405957254864d2177f6d3011c6b1e928408d763359fcf9476cf04304cb4969a71f1eb71d9bdb782b7f673838115949412b9f0820f053b75fd93ecf021253d6f329133ea88131a1f00bd01336a74556163d1e4b017ee9235e84abe76720b94589f08841e9207dd17fd48c5cefb3c81febb41ec9052cc032636eb73e3459a1f0db739c6d7691fd10dab91ec641933c1cad842bb712beaf570dedbcb4d01e6de7e722349377db237be7c490a6ce1c0055e8091ce021a7b15e4db7286037c3c37fd05c6bc9d645fe5be2691ed30f10572c14b279adf5626b3036b0cc3a16761020782a48fc10eb9a0e12677feb6311761d653d09fab7c30f0a07897de0e87fbbbd1f92a44c3602abeee607e9ebebe83611cf6b9cb5c3cacbb11059ec2e2d23faff52394f912eccf4c6f0105e622147e12d2b7cd88af567103e74a8f42c3bf82d01c6011f51583c502b473ae5daedf7db94b24e97ae2293e91b8efa9297465cc277e60c2cf895755b45c9f8b561432a5c38b58da5b01c4820ef2c4544822c7b3a924ae534d3ebeb211697d247242d8e5d58ab590c2a731703f22be7a5bcd8d5072a0d0b1e646ee40b8327d94c20ec970684d9d40eb11fcc681879d572a16853978bfcdb2900a0da7e48ca8741cfdeaa3362a0fe2e03c33133aa321ed5016a89e470f0ff79f06382821a0bb518c3c3d1398d46a6dfb2b1de705951ecc5dd7806d2c15a37c65b84c341a028a37dade8d3cea57519bf9317e470ba158e1057a52c804d74a42a2a8a539263424ee57e294f015d7fc26414101343e718b4b8ba0fc894f509667cbc26cca4e2b59163b91c2136206536174a45dad04b3b18fd3fd5c5c88a3bd45472f69753aab3e1ee99c51d03221efa1a2ac08d1b953c5fc414bbd520b66d14f50fbaef62dbab55de6ab59edd26bd9644d50eb7bf5607da05079eecb45168a2d1b076241c02fd7bbc8621f000417929c78663e240ce38e882dd9289a06c6b6c49458c99b606bb5b36b5e89c76f56bdd7f0ff88eea6a547c64ae3d4f721d5aaa971e7cf35bc984c0fe09bc1facb5316d5b3dc24295edeeae4ade4d3649ee667a84f162d9bcbac31b41b62bf13ec20e49ccc07fa8e58a7dcabb3c94e68fa097e02822148c314c5fc7a29de0450941092222433d7735a8601462a2b95123e469e0ae17b670278d431666322898d261da7f76a2212b2f408f82394180ffdeb12677fca724f48b2a7424b21263e3a3c3053c9d3aa07a74edf4ba105d6d4c90d7736bd5025f52063d92c712fb09bf56060e5fd759c85531591d04e982347cd469008c0ad44c152f77f8b917e8c3fe59b38c78c85cdeeaa450c7307c1080f680a84620a07941e82355a1a0a19608bdd5afe54ae141f8f48320d610bc120f6fb33273dce4a2aa9aa9a8cd720c77c9385023c615336cb7099221bad395ce19c121754d31235249effa03e06abf3c8398a1cec01cc81ef745530012f2f0a85f84c95029da16fcccded903c96c0877e8111cdbf84223ed341372ccdc300d74c473c6537c1bb1511a87a66115b85a61aefc51928c7e8cfe22c5a6121ca06872b1ab445d89662c00f11e52a9a561f2a6e9048770d143cf9f7f78b068c03fdc8699946045dbe1608420db3a132e92e9901b0d7d7bf06c73a3a96e9e1c6ab48bad7a31994c53b3930337c2a683642a12ea8849d372d0dd82b5e0b357e3e28ec4bd265da3ae3b26bd5e7336ef9c7a0db07db704c884de02ffdb01bdeef9e22cee9dcac6208707f0cf42486bf91d007305e9c6376f0329034182a186908f35abbfbabe65edf036c658e64074fa0f3406fcba733cc9d45c649a742a5a6189dfc609880b218959a469b786a5743e048ea854316204c0d8dbe0c4f137ca088d47d1f3185204c989521ffb255b701f3bfeb5254560b9b5fd73be9947e6b3e15146407e358e460ef6056c2be830750a3127fdd58dbc0f37d1adaeaf405002ecb0bfc510083dbfb953bdf235a3b9ef83c754b4ff07a4b4416289e9f919b08030d7d93ee829c6c0f7a473ca8d68cfb1af5027979f0af9daed53531f3c9c202280abc6c36d9418758993921b45faef7127cbf86da4ff1bd60f37dc777fddebf95f6353177e3cf8fbd411b71df28a3bd1df21b68caa1617d114021ddcde0f0ce366f6986b1bc6f15f217eccf17631c5361214f4446750a0f43efcbe873eeba46d6ca64943ba03bbc299e0ed019d332a811a3a5ced1d8f181e58f879e22a198d7456f2c7b69a0513fbe9a84cc59f24ae9b1d2cf527d24b976ef54425fc405533cb505f58d880e587177d9e491d939c94291aa4c7060177dc97311d5d3bfb5f7c940d82ef2a6538dfde64de844f109e4fa9929cc9d868f05a3b97de091827c7cf38d425a8848564c8d3a44d0cf148abd8ce36c1cb2d00c51807714d342ebfbe4794260147f30bb0abaa1ae43cbacbe224d91ac552f1bdb01c326d12609200a0757c76d8dbf9427ba3abf053ed93a759552f9835d87c32b649104c3eb04d532246798924e15406e7884a96a33c25326efed3d416257b3d712af997c48493407d304c61fdc4b7893eb3cca04d572b99c8c991b5c38a56bb34aa903f0b195f7b19a96570e503d728d154accc328c9fa0ad6306bc8f9d1af871c8efd9f5b72f859cc90701a3ea237576117acb346785163549e02d13708ca83027aa66ad458f5d315525b93b905b077984720760be134d2a66eee272af5a1646ee3c83c8fbca09958b330608fc6d2692e0b80778b3c8b8fc367c0c3b459a495450580981841b6ad523f1763fc80e4a38dd37ca833113c3c3451a9af4db61dd982f767d007b3c93a17f06f98415b43cf50d8a0c9187e553fe9a011cb1dde8a3458de7976655f96da247e307a2d1f56e611443dde89bcb20068afa5fd4ec323efd1f5314b6eafb276bbe9713940ad1f45c51b49b653c4ec3e07c4c8e3c24788a377f27c2bd280251905177143c0f64c00abb5ffa5da707d217891eb388818e29b3bce6a8f0f6d2516375a1d333e3c9e07f5131c4608088f294bc86b560272fd9d50c328be6cef51d35f04b9ea238e60b27f6ce9b5b4b9c6b0dc1edcc457b017c62ef0bc1059d81050f9a08cdd87a4e9b8b06045cebc203029443a6364581921b035fcedad99b4ed8d82f80f624e73f8657cbe3d8cff6a975a6c81440798126b436533e97b4213c9669ada9f15ba63494db58cf8589e83cb014e64d303e710380de7bec972cc4e05ec586f91af39dce6dff0e5bb7087f9ca6044a7d8150480190ae1502eb653b17d383f0cf3204b16c7a03c88d3a4b0c085636ce8b5d77b2c740e8924a67a89ae3b66fbfad12d369e6a6f417f32ca8ac56c83004c14e141a01e4935ae7f89cdac48938b6d9c6db42039b25b07f34b7b8ebd355b5785a321dc20f2c921eb747c415011ab91a5d54b075fe198bdd703c09795547a1543094a7c4c67ca00a29e6e2e752e7337e77ff2e66b722ae222f292818a8c5a2d5ce858e7ed53f5f55d76a05ef3ebf3e24bc1435d3a01b16130801ffd11db03d61b5882d9eae4da752e49972cf8505cba26d01f515833f04173d5b1d4215ba78e58db0d9547ea73658c8c8bdacd4631f9e23dccafc4611e662a3e1c8400d2f4106325253ff54e244dcc004f6ac53e91f50a272a9141b9c92a016c463834f9fc6194c44468c7d5ef661e51070c26b827f351120f9b948934e6368ba78b88ef851968463cb402c72754cf197a138c308c6012503564cf11e292267996d64dbc0253985db2c591c14d27bd69940c89ea54d902c2523c9e05c6303b186371ba674a06051d8aae78ebe1ac6572d6cb57d488824e582557d85844ffcde60689723b204979cb2ea824bf5b7a9908584be24afb57f796123d0016ed949624f9a0cb17b005a85997a1947003cc42ad06950a012165a7d9b800e21cfd2e948f26b81e592d0dad1838fd36b6fadd69543b3375f6bc9e2759691f282eb49ebebf16221767b08a999437845f69a9e96f6575a9fa82c055b2b3422a88c818f1c5aaa1c54575bb060e8646c85173261c2016432fd59cdaeaafbbe801a362acb3bc3c3dc325f23195ca14f6a7e74f0d310be59bf6b427758322e9fff2fa211451182d2ae3bd41936510b15e7a4fcd6d9131e80aaac703a36904e8729e34a380de374c785856c88ed78077611dff1afb5bc67bffc89692df4f2fc0717702901635bc552e96d94b113100be30c55e8b5cb0096d651182263697558ef599e68b68e221f299d39b2acc44a9b86d4276f31d2c09c7394e03c0441ee318eada464c3a2db68d6feca225ba90f06c63d4e3046ed761a7acfd2e72850b185604d388a0e8b6d7168a1b5d03d344f5f51f64ad3272919246e6a69233d4dbb0bfee09d9e0a28a2add6cad3fbadcd4b3a8b0e2e917e85e9fe3524203cae91787ee11e5f980819bd5fc706e2a68b66476383a6213da7b2401c2cc2f446ba1501eb71154230a745dcb3c50d3214699214b411ad9bc54d15991ff2fb4c48cd56c03f75f116c008df517c4163adfbaab360899133379b9091c341a6668fac978b15bc20284dac8991bbf0a010bc1ac6b5a7e59888806874d22e3c714f1d0e6d897b04047a3053dd7cbaa9888b963a3dd42ff164c07c2603a6c14861fb2f1a0cc20c34746d2ca00cb9a717979a81988c1cb4270943522e7afa1d2a722f0e988ea96d8ac9cc8ac72876449db5dfe0491270ec7e4b381ae195304898ab73f03efd56a578200bd540a759efc865569fd18aa4dd386cf62ff341de7d524189692bbd91ce4c64c1217cf53d542e34cdb996c35166077725791afb635f3da4046a2ccaa8f1358dd1ccd8e1d44a78db8afe8e36da048ff9bccdab5c2cfcdadfcbba5c81e3fd570bc15d06ea6609020188b6b61904eb2685eba7b21f520c70e3ff505365785beca76512f7d526022db53f47567f74e3cbd707a760dfe5d705b046e122f3e2280412bb89d93fd0b4ae4b6530dd77f695b0ddaf3b89f31c14608fa0981ef6cc6eef8c21f4a027c9b25ca56f1127ae3e925e2940a70fab6d8c84758f465ab1d4f1ebaa9ac2582df983e272f5b9eb66b5000c2dcc4ab23dd8ac0ab91280c2a6d7279cb50312170a390c04dcef9bb9c31d70249400c81d9357f4681ce4af9d5b3d15a3d24dde2c978d9eaa460e130ed2a3699375e1237639f6115252def47702b9c2554f39229c92854569d64a892de5c20dc9f26999bdac63fd32da43627847d557e5773adf529f3ffef4ba62446bb8bf619bf44b49b4c8923b131c213d57cad471ab5c47e2c229b415d713f381fe79146a86ae2885b4d340cabedbe285f00ba40b81109a300129aa481322eea721633602516aa5846c4e738371590ec3103e0ad7373da66b250ec07dd172d4506628c608e985506acc04d77c227ab524a2aaa4ff91154512609987c6d1c9081c4f798ca4b0aa8fe230bd6fae6ff2c02dd99f98ce742cafa2b7a229370f16811a6beec818bdef05bb9417279f3946d513f00123d8689e514cd58451192e4ed4e516ac2dd0306fe530fab5590474f02b7b1eddd65dbd1584070a4615fbcbea3723c644a188e1c462787e24d75fb0061e42f5f70224cf9aade8bff23b32fc6c31a6fbbf0522aca76e6f08f5d6cdd8d252ef7cd7efb962bbb0c8272216560f72e604e6da891c44c7a38dbca7e7af0a41a990a4c843799a0a9b3b18867b8e1ef6e42d419f3b05dd618e1366489c35cb7983d87bcdf8b39ebef4d52f18d1f62dff1e038d58b61c16fbfae987d6f168b782c23fee170f3f04e4bea2256d2801058ac92a11410891f4d0d68196292313a943848398728885a2af11debc25854a08b4b9a2d054b5375ef4f3d9ad89724309714a25456f33404610ba0f866674f530c8e9ea8efa09196f63661f3d6ca921b7bcdb9c698c4760a330f82f5629d321b3fea7b71999b2c5e20b32e206cd4fe60ad30aa1af3d0dcbcb9911a9b24d9021fd48efd5e88e52dee0d84f5d3c5301281c41d9020a3372ad1ccb0b2c384808bb7005fb38ec8f30a59c175cb38231dd6eeb63947b085c10844e3362a5c36cfee88855e6034c0d9b9cbb65ce9d27535be0c63fddac60ff6a4059676e8c85fd0913bc7ba0c0dcafa059021865ca1118309988d3ab334f869315a527fb69c5d56bd7e65a242a81b9ecac15efac82f1ef1d362add7ec8571226a436f3b2eb37eeb22a496f0cf2102057e94617e469d89c6d4778b0d9286e088259f10c1e2a4517081d972750b05fbd77b3f48aef1113cd965ade505f60695909c307840bd9342f675cca47a50640187fbe0e728a143295d67b1df4bb7a19cb64c322a7b87e1754510c8d6cdee59072ff91cb27dbe9e0cc689c59113ff1a416c62b821638b0d991e8b9c4d85dd718472c1da582b5d3ff747066cec801a43d2b6685e5c15e500963580e56b858fd90d23609107af01bf666cc3927d669ca29115fc87cef33f8d7bf091da1f5f840212ff85486975cc96234e8c9fff64b1903a0af7c81e912a262dfef7be7ccf8082d2f4b198c3f667489e0cc4e642cbf58db12e605fbd253aec009ced4ceb08f512d97df0548eea40824bca10050a89727c5b00dbbd7dfddb97cdb031f5a051b363efd32dcacac1451d7b47ca430450dc2c1566386d31d19df1ca72f289fa4f49ce7c50efd08a6bd668107c83eded561d01d06a0821804972d879595db43bc2732e9175ab6cffbbfe88e7fdbf0e3f38650058cc3b1cd340c6f209177253ad8cae11ce5e0c9af3685af37ae9be6faa596bf9e3ca0bb393562b556a7df248c404a6a98a2e98046c684711b0e6a16bcede9964b9a46831e3ae9b6b81ed1dce2099015e9e0d59e64ce780140f604841722b733eaad2e25a46825195320fccc8b2595faa08137c509deed96e7d31ab3487f79db028051c365740b22a75d2bb79e67275284bb838d49de1d7496a5217e0768786b57eb6670ccd86b2b15c5177dc8a458fbe354133784dd5ab49d80ba9444ab7a16e3b4986ea725908b0774a9d56acc5131f5a6cc33ba61406746684b6e7cbf03182c740d2f908f2eff5a1f684a83d1b1f08b96f49f7d101fb0bc8f60015b52f71baa1513f153df099c464f32ba4097911b6ae6ccdea54c51b649d34b1d2470a09206461873142db2a5a7dac415c82a2c6e8f1dbbeed6401594b4241a1301417fa35117ed682f0f04bae146100a2630bd9a0487a8c8ab5dbe66a304d5e590344c2044c3c1f31fde60ede8ab274f7f801a798e9ca0e8b45f25cb248681041c96b59098b8e234eef612035607c19b88ddc8feeab2adf41721925f584de33cea97bf32928bc909b6077bad00a2bbb7fdbde1851caa39da1b8c6d831ae89765490811b8d2a2812a9a0453a72fc4bdf5428613800dfa279e179dca9009062df415725148b3ac2afb6fe80b7f922083ddb89ae4c6b87a38d4ef6612a9a2aeb230726e42aa9844cfdce51eeb270237b962c6654cc8b35bb3c11ab88b550a66a041a51a4262239f85a31189d5629a045a4555ab8acce96c544f57d93f92c05ec48901bc9801a90febbe15a9b218b8f085c3065ee57c3a6d16ff7ad0b380eb0219479d1e9fec66661330a2e6aa40e8142cae8b234af3ea37815395668e424b27cdd96eec0cd54e1eecdaa2778ab280a33255846dff96eacb6987354d2d6a6af1ef625a2a7542a26c8186f2fb73baea630c75734669dfe3c3e58c0a1c0215cb91c52674c0eba2839b906a949e7b1b166273a26de851069373916677bf54aeab7fef5426bb65cd0e9abdc7ba684c2e2489568e9460281919705495d8b4f122613fe161ad8f52f160e8a2afb42335e14117a37c2a540d5903bf087d15e84e825c116913d08af57104c2e9d49e8e15240e8eb1c99c041ec894ccda902d4f78666d9461b94d2afbb5df1b76900c024a53a038645408b09009b1a02d09a6048125cf5b6d2b5cc8174bc376a1f2021d550d18d7c31b941585f3dcc46b1f19403da1e21e58c1567003d6b2c5459904d40b39afd175a29a2466ae127e06bd89c65ed3239015384b2c22bd971cb77019f4340bd1eb2fe26167d468e866d081cd9c5e0315ad936e8d07bcfe00fbbc8e5b301e41ac1551b10d2ed2813b0483d2e560f957e8a84e3b7e9c1cdd4a0e01380576be6b424f711cb83d849d162b6770f91a8cf1aca4a38123ea495782434e8087e0151e5cabc6a381a27553133492e788ffe47a227c44c0712de764e3eaec56b1d05549095473bc5169bf495eb8e619fe51a6efa9ceab578a1e5813090d8d3daecc6d84375ca1383a24fa8fe284d706c81cf47610cda9bd0c5832f4e569d14ace0f34b1e7f35fe734a23eabfad7903d5112ec191f04640c242c8eb83680aa1228525ee124fc01a24548c50ea1212fbd74c32ee420ab2f3dc887105e3d309dd9872a2f8d4705b042da267192c966fd0b39ba4ddafb4b46962168afc60c3e6aea499d4218d0e36b3e2b6365f6b006b90c6dbd851c5f5a8b05394c746e48d6cec20620d42140a736f2b0beefd597d64125d0a0b72fed1c06385198781c4bf6653540fe7df0d61e7e63948259060a0a00bca2ff1bf4e445196e54c3f88c7e077e192de9d094d0d656552641d000ff0f0f8559a6a7ce80be11d86f625260cd76fd72f767919cbcc211e985d8936734d04e9fe007615832edc2ac0ee858e3bd734e31ba3fa978b8094c49afb2017f0a4001eb6d2a4037c95a988d5a443821d883f1a0a44af65a5a3e8228da0de5af19928d05f98185c4b05a3d1917521f6a38c89ba4b04e1064d12dc80a6829104bcc75981031b7cc2022629b8042351d7a0b8a623a4bc9c70fb6e70c0ae9e5aa07e85d8aad64171bedc79a57ee5a1aacc73e6042a72dec149f554633316f46a35cb76c1053ca89d978d00ef52db7f590c4ebf9c169e34adede27f66b885b0054a7b74ec05f7556925955f764bc64b5bd4fae26ecaec14393d23a5ad5a657965a528e79af653bdecd7c299b0172880278cf27cd605bc088fbe646cc519362798b3ce72d22510963a8f6292e0da3ae83604e5a4bf5f65750140ea21e4bab25cce8270d0fff53426a529389cad5cc1669f5159f30186534cd772f319ea7f78dcb7f62081de7fae7f5832d0bb116ca5490c17fe6973935abacedfcadfc7e089b21e0efe750229f1b2022b73f78f8f351eecffa2ffeed746c3e98d8e1d4087acf4433d77dba0879727d2006ccf1993eeb365fc5e283314126a4e5ae5b1a0d46abdaa8b88585740d911a216d28587f0469a03d0f11718483c71e8c11dcea13bedfe6b893212a8b2a016cac1aedce4f0d2b10f782de62f8404d2e639e0c68249c846d73b9ec09fa7525308c89f1f54fd6aacdec1f8d01ab669f882b61f2cc42352abb87076e4726af376b51ae736145aa169943f7d6072098f0335305f5241d24e300d2460471741280fd4f95e8e972435c93debc964265bc52d464d7d53c3e6a942e6b86070bc0ef531052920a6f8ab0745fe4c0822f9451e5ff901c342f2c8d4e62560d32f6cdaa78d8df352bb588a59c59e5a82407607b638b5a6ce50a25575ff33f239bcf296403e74c7da0e4275f4d840eba78d815afe319802098bf7b197cb2a6dbe2c2a7ac33fd1eb0f59ae68dd6e09e29bd78b62a2ce6f9342fc8e3aed5f643dffd0495c4d90ca9b6a0a839e83c0e8ec0e3ca43b481e0441c7f09e1a588909a1a2ac0221a973de38018f673c61d2d20603559d174956ea81c762fe8e952e6082ca7516c01d1639c10023cc95daed12f2c4bbd64863c1e3166d66426f401d74ac0f6618d5b5261fdd4bc92628e1536774026b649dc2925ac77b0cdb02e2a41e8a67075b0ff9b288bfe68efb3fc0741002daecc962dc791ca030994a47db7a292a699da1247e2e4136fc557d416082f5944c0050d53075c2fc426880a7faba53c8c2d70a56e40c6d160b64110e0210ef048574b050af521aa23efa48d97aaa71504916e0e7cf3a8dbd1a57e24494aff2ee65265cf233c8c231e39ebd5437b0627d406d9265dbc6b0050ca63ecc9a7952c676b4a57ca3c2581427b2126ed0fac39ee2e4ded3e6b09a981a2aa380fb08468f4a0aa3f4e67e2e49d87b9dd85312e744d81d311c528107313682ded22f9de5fb0f9e83bef9b06d0b3c16bd4ca1d0545e28422a39b4651b49d535c3ad0e4eac583d4f17dd261b942b1d145ada36f718271604d083d75089cd7fdcc50aaaf3a025a82c40f65c28d99bebcd3d4dae80b6ec09936444d6576eb52adfcb1463503de8a11ab35f7f6b173488a7dc7e30c5b9788181aa1361aec95f333f921b9bcf730e264884f261d52b14e44bb2d5052f36d279e228548b568c8c70cfb03fbf6957ecea2569d351bce5fcfb5f2acc4105cbf09bcfd8daeb95bb32d039754987c3b03c861f54498e43c0749b9bad4fc3a4551277a245ee9dbef97464a6857f5854afe8bc035ee97c7064c41b5b0c058284e0e7328b85082cbafe6d22778b032d2d318fa8726015bade5e31f09974fd244f34a9c4daaea9f9294df6aa5d8509932fbf323d6a37defa77836a6386bd0abbfd8266c1465ea387f0a6c3180c7fc070545ec4a340320766486229abcd521f4f573f53f55b4c626fd3a1b405cd7b5ee0a9ca2d1e75de6bc2f1e8bd0db58c8d3a3c1c842f1098b4a3127e78b18dfc83553dfe98afe5dac03a29c0ec783630a7641c285c0c86d31a19fc435bdc0a7ad779c9d2870281fcbe74df3f54eb02e266638a1d274af1e8fd186e655ed1062c3713873ec1785a442c33314a05c4d1f6e8e78b194652b097261ada85fc9752a2249ca3bb65f6c9dafc4823bc99ff6404ec0253d14d68d4607415bea18a2cb05ce941d5a435ac9f42db9c3ace1fb0dbd4a9e7d8bca44e80d4b956ff1bd216b402264992bd160bd019c7c1261b888a69edc060065e898e6f2142094d3308f100a37d69d40cdca86105aa52ffec6cab4357779f12e0ae890fcb2ff25104732c92e51847075736a29708c87b119a13431ca20b1b37906737d37fd63889362f89c0657d009a63a45c7596685a86f2d46fd1c0106b88e944b0a7d50fcd11f2e6ba0ef89ba9a429335bc482c405db79dc333e3b794c922b7177714c49128b1f103550ce613bbd46c8294fc539dc9c1a00cc9b042ea03074109cca948e31fedbc39436d46c7f252448786f1119abb62de3e07e2f34a047364034808d3470510328ccfc4e346ef725e7a0b12912da015abf21522384a81092dfab3373c7945ab4e06c4e20b34a39b762fd0b2fc06690d68e93a0a1595acee0ecd2b8f0e071c8e15a3ed3e46d5604645b9352ea7433d6f722b294a42779d947336ad590d0b872d902327d76fa1c88139c6752c5ab8541e3e80eebe2ed7c1f469c5e28f9624a72a393af3ce10c3b59b7d659115c6d9da13c1031350cdd08b2c5493b21023e35edc5d0952f31176924b8cdbd2269235edb2c80b9db9883d6429dd0423696512eb00683a29b21cd9cb7caac9a04704ded65d98e4e543da1afdeb6b1cd3e23fdecbdaad693a0c1188eae0e24408a0451c0424bb8f4a96f0106a416aa9d100d2b6b740bc45890cc78fb927b123c52766e2c64e4b468e458e79b247963e59054eabafc02d4769eef096c65a5b280af9566203d4c2d1aa54cc6b4bcee5e9ec0d608449dca4b10bca413240402545f1b3b67dc32ca00dc85ee38aa8a70e485ebe2e6d21b04cda20b57a1d609b9e0906bd97a96c653dd449c9a6ab25c7325d61683279629b6c316ed485216505f6896b9714bbc9880f48fdd9f09034a9b53931008ca2e6695c577016b143b161bfc4fe6fc61843cb8c77758ea4372e724152d59f30678f451150629cc278774e8510f520b7245dd4b41ace0666800b29178383016b620751b62f2d69d33875a4371338b7cc5748fc0dc73e440da682461b630cba641a3f47f504fefc1420b7aeef61e40f1e77f2083c0c589048880f5b35f8e70d7deb42c662f2b23caf07a1a34c53995b0e1c466604cf1aa00b075bbc40c474d04ac3dffd9a5d72854a4e2dcf9be09860dfd2d83220cb5ad8ef4e39504148ec8361bd88b1b133da84444273a1ea24739665bff1b9be5276c3729ea4b3c244c7b7568dffcdc8b09812dbeab17921763b442cd4e59e535bf4cbf79302959224d7ef38f962a8c8a99980a4b2d0367cee26cdc6effc41376eb1fd03f80538536457fd277b19c412b32eb615094db5d66858f8ff095f09412d3d4507396e4ba25aed6c601a09dd201cd2002a85136af817fedf7064d4f05bb659fceb9b0a119c80caf84596648cc4a2fbdbf91e8e1a3bce23743804e6b1546e0588acf684070b1813fe69a3b9ac896a22670e00206828d631519c80ff73eda31c3948899bf85694fc6166a945bf3b5fc804181ddde22e7cdcb1de68200c8231b264b30f69a01c9bfd8a9f1bf514dd2a69cf6a7551b1f6ce7703ced9e1b215ff1e6b39c59b67c9828f6a3e046cdfe6ed4dc355bb8dc00aa010ceb4e9fa5d3dd790464d67efa1e8f030f9e53afc81eb9b1dcc3cc57d71d27dcea00e94abb29e9d8b55310e819c151d0df806581f2452081a25722889ff30263cd03029d7a1d61aff1a705e555aa46b2687506faa6472943ab6b5be89a060c11f972ac0566c026eea513d904cbcbacaf4b6855189b760e0ba53345dcb7976a8410e0023080e8606e3e3ee3f00350b42a5268bab477cd3d78ffcd8c96d042684cc27144fb72cec10a2b99b02f23ad22ac9298e7f38d59668a81b4723ba38286b95e2b62a4d58ff9c9d3a5871fab5ea95793cd7851eb48bc22ad8cac42c5132b10825f815a9ab36e8eb402725132538685ac9d168ade992cf3f2fc91c529aad0ecd56bc324235ee02de2bec3bb6648ab2f3363a2ea377c1a281a079c7ebe214b8f2ca4d55c59d9aaeddff53cb8eb2f732e8a0cfefd9c5d7d39b108fd90ba1f998715baf10e2ec7f2f7aa3a99b9edae8667dd4c451d49215eca6dd039f8146af42994cfaede20229c6c456fccae1003b0881421ccbf56995d8dfbaa724961c3b03edf0b4189ff03a43bb6a302e96d02f4e1cddd3e274deca100d79b5dc160a4eb14a31f7b21a97491c9e185bbd0e3eafd8d8e4bab8e62835d1813ffcdae72405140a6e42f76f9a4efddf7ecaafb6a9eef62b7f2733fec16f1bfa809482a857f760539ac315cf0e54f387c46035066dbc13088e9ca871b51842785195726aacdae4ebba5cf6c8294db8e4f70bb50491a6cb35ad85d27780f9444136fe297fb6148f575cf48d4ceae78acf71a18ed2b50ceae4eb97743dd7ed276bd81f34d0dc8b9f65c84d3d9c93ec2b3ab6b79389c8ed915f0413c60a1b780a17749dc8d6095c094d0d955ae2385ec65493b125702c56fdb6657249bc96c5857b8eb6391e24182bb8a912b1228f969afde10ae965dfb8233beaf42afefc0f35af5a03d50ddff32e546682ff7cd3d4d41f3de58e94b098f09168d6f701656b0807bc1a26f5224491e2c7476836c361432d8c5244b6171700bf684559ef92d3c9473051dad5fd95a0ccb8721ae4e2f64ba8e42b2ad15e3b9c65f9cf246d39811856ea03d5c795abf21bcecc549c4134417fef33fd24476a3060c961c68d07577bac97d5418f22957308c35138cc17f1507697a7f05122d32738a1fb7a9ee9cb3df267b00426df8b4a1a7c826fb1a057ab3aa5d3488b96d1123519e5ccbee7893b5e2fa5c59c3d253b4d1d84a71dbf871db91bb32f2013c0821254256c9cf8c2bc91aa6f867313bba9550c54219d74e7d787c54b86716872defe72385fa249d6a0aea208ec031e4cd4657bd13e528aea42bd23d561ea83557d2184285c8ca309aee421fc5dc364fdf0c64e240eea54ff6d8f16c97f8ef25ccd8830746cf8f9d7c94d4977456d6286207eda4b315d02521ad29f7532f344143f54681ee292eb3506cce03c8af1fa5f56f324f9974a0eb723d9059ea65f6e1b620cca1092be07cc901f8a2a9993b8b85e7f67a002e054d30b48247036758af3fbd249e86ccae3a9966bdec9fd2c10527a527f1b4973f8431ceaa1673d34371138c9d839fda8f0e92dafe2f367c673428f8b8986619bbd861ffb4778718c0c117be74dd0fba64c6649a992e727b072bc0356a6ad2e10e480c5ab2f1d9597302397e6a66dbebf6afbbafa09904b587d8471bcead65c9701d947fc7e67eab4b44b35840693107295d58e9db63c18174cb37b58dff7c1051c65af2989c059e3f887726a5f707002ea0022b240e8fe4583bd7197cdaf1013112e60fe5f005cc07d488311fcf51a05ffb91573ada8fa826fe87aa67d3b0b0176f2ee16ace2590ce8a707108caec696660a4333233137a00dda4d33a2609431c8d3786d82b706f5b60ae1b31102aab1874855f7c9697b08766f1557677e4d4413378550f081383ecab009c1cbe0f0111bd01e82371d99e3408a08b51ca81fd36ca0970628de19210f352e67e798e716a56aea3002d1aa384213630119105f02ae7d39ed40072ab6fa324d88280864c07d8becffe698f9b0ab3436ead3703a3cddef801022fe2f086e09ebdf053c96cfb03048b60616f67ecc1b36680e313dec85cec491bd30b0beec76d2405d49c1b10553b3c029b072d72673687180fc755f19fd8a9b3dd2110d4da74d43f50c3582ba31dfa797a21e8a76ba90b2a5dad84b08a84f16f399051a411007ca5fde6b5e4c9a2cec32a3f3e910878a9d3fd3383505edd41524644b423e18729956a74a0d1f7e74ab81ed14fd9f135f7924a29cdecc2d48526e856c2bdd2eddaff05f6e99ac503b02ec63d96dd5e180488350c824772ee8ca0972235877e101b5936e61748ced33d54097840e0f95b65c9bc65425db46688bcda1b03c2199881faa31f142280e1e9a3b614e48f4a98151f6ccf06ddf3e6d431452a6f5813e85e43e3a05882ba9b1a6d0d0b6a4043c18f0cf6021a3cd96666b58f85b10a3141754dbf29e86fdbf1b098b43e9023053b5e9ee47e214f58a610a65bc221c1946207b4e86e2013ff37cc762ead237222e8611c51b37864e32456265be2808ecf26998cc48cbb302555de5000cdcca724e333437d3a1b69c2980a1052e35e7b93a6bc56e3ad10ce6dcc8d77510241113a0822b060dabb0877ac15c2c0bfed9706f6aed60c178d4f6c75f3c2f3a1d4ad987c963c86e5c34885567012e11494f11b8499e976376f6905fdd3d369a63527b45a610007164dcc1cbbf0a4ac294ad1b5b2b177511f21c6688a8c0f0c69baa2a1a7d40a03e7212e24b61140125cf3dd628342240d5fe24027896214205fc39cfa3ba48b320240fd356ec7cae69561668c8cb08c1252cd30cb5e0b687ff656f3e1ad14e6bec6054d56db3d04bb7f8c4a82b0c887b79c7973b2a7ffffae67d6da9c87f4f4677fd19c81fd85be89b9d671ebde85906fa1c95b143355c4115c1333defe29ee2f21a7192370694f9528fcdcf4e51d30827a60060a6a4a53009b0afa28935f90193608f765c3b2043b121de27939eb7ab6af82845569d9f80c2768e9737e6fff52ee933d1edc2a4d24b11cc6ffcde6929851decf6c89a87fd5b89e8fd7ed3a48d205bbd38fc3b4b3f93bec126d19cda0f3084566c37e1e667709183fa0ed0832655c585b690af5738657958cc384246d7ade7197151dc7d67df4aefbc90d223e166a79d82a7877d446efcb0704598e0f85af1d17a734400fe6531bbaee1e595d8605702b8041c4359975485e028967dce99d7a2ba6352e48203a4a3ca2d43eaeb0ed2687340b933b4b79d68cd4558329ee6384062b3aca68e6b0ba347b48c04e9ac4e736566194b5a9732d1e7c3592c71823a3057417d591386dec9c421b17fa453a100de038291a8d3be614043c87160b0205258ec28490c6761479b6ab7dbda7ff6ac004d94db2be4e57c558e07cee33d37eb2c91da9ccb1aa62ed9b9560629dbc15285e3d9b16cb531030a121da79769d0bbee08e03b79a129fe1fae9876fb1019594c45c74c7d0c7f6c381cb96f8190971f05cff91dd4b8d6895bb6181be1fb31a11e75f803d2f67e386d6c17774f90d59430fc09700e7db857a750e82ca6c3ae8b90990e27574670ea222659faef81b088d376044f3604f32df53fc0a46ee842ea3b95012c21ee62225a05f985ea34858d4192fb1503f5086c416aef3360511748eb0d96980cc71701d0d807d3d8126cf670c82628f62328bd97cfd2af1b58aa91811c4522b3d1cd1a5a940070be3e1f758dbb08ce86dc4dc88c08cf3e44dcae1b2d1e48e8225a4d35f545257f7ed3a6da1fe8103ad84904e796a795861af057a2275406d6fa827874bee0b12f328b5d6aa762102c2f78cf0618452744bf439098f02a333aa573a37f8879accc1eab0b3347240af0c07ae9a03a6dde4bb0e3c7e7761b83f2bd2bebd3d3b93aa261bb0a7a9ec58de6d788b0d534d71e1b36b9f77ab8415273a184921097542e613caf4b305e0c43ad63015e1fb1c1f5cf8efbf2d20e1b154ddb86fbc18c17153c236602ff5dee6971733f0418cffc2ebbb50115f199a161383fcd91014b4e461be0da1f6f88b411ac1cbea5748944a9e30db0db3a4c6fc5fa4026f61b72cde50cd2fe04ac66322b451e6daf9de17f33a2553a0a0186899af1467a605269ff7984ccffc8f6bccaa27575f8061be0fb3b3805a0b236b04ac4eeb05a30d896e869164744f3cd7b8926aa8b2cddb3c9a93ee4ff090e1ec85be564796e245eeea191e651ca49e79611ef3d8bb0f601330316ff4b5ad7d5e648ba3a0289b229e17295362e1bad0cc26a29527c7dcd66b6c5a917813d30c854f15e54376fe0ca73fd416ff1ce627bbf189782525bd049f1b74e6e4805fe0c3afdcfd0da82d7a54a85ed996c271bcab2508714704f2e2e1411dac6e4e1cc1ca2ed07b8be5bed41d371a38a2282d68cf1e3e3749c82a2172ac1de5e29d725828271df9d96f0113faab2f813e59a1ac0e0a98d02f03c607d50ab5b1da6ffa9251a0c46a56886f9faac4ecb86a9c62fe259cd6ca5c1be0d1c13e114634063913a56084bc883c41d0e3d3ccded8ba89c27d485607dacc99470bd39ff5e270094d2494493ae88bc5a4dfec9ca629324c47554a50423e1cba2ede1fc3b517a39c21d597f03693cedbaadd4eccf0f2bc301d430ba852061ebdbb4548084b5af225d0dd45d2b5be775bbce34b20160fa6ad2e1222bd82ac9b6dbe24953d91d41e8dee9e68d36cafe36ed0c283926f4f057e055ba3f7d56da4f68e15b8ce95be3687ce7bf416201144827fae4699618aa0b9794a1ade8b7eda6a90bc8a813a898335f622650ae2a60b7729396eb2d209fdac8a8aa6789bea251b79bf0de8953368d8dc250d2e40ffae0966479543048bb77bec94aaea3e2a3665a8a7821d795ae147904f651e13296b97d33796240f7bf0e8a3ed86fda790fa81a5f33f44ad5fb965a89a99ea630a28211189a473cf34c840f5fe3df83a8d807ab44e2f04a57340b02eda084e0ebd8814649df95afb91ada0551486a9f79d6caa93ad6604309c9ea61dbeecd95c3910de1651a10a1ad40cf7e75486256c29c5d5d73fb8540a56a872fa9db1c124d0ce86231f3634fc598bbbcd252aeba93cfc9dbe2de708bcf7ba0283ae345fa2ecdad141455c1133d1ac0236c53f717d2078d439d632e314113535a8f407858d4c092c136141f647e8ca9ec573b238580b90650ba64159e5c22664f02ba403694bb8f07cf921bb50b03670934a8aab2876c32347f477ba7f4102fa5e7cbff364c965e2891893ce3856ed75bff17ee90f406b6e3fdbe8aa2822005ab42c1a2b1bf87f2446c03d5554e8511dd680052065aa5c24103b0267be0ac4119bb2d1dd9240df93f817f241452cf5fcdbb06a3a922cc3cc14e9b9585e7170e05a0856b1b9e3bc83fcef7fbfbf836eab4fccbfab6784e9069a4be7894ece5d2a936ffa4d64aa0ba5ac3c2ac97a3210e545fb343e74d6963741c8806ce905f1884e7e615d8242d2112726491788084bad995ffd54d5d38ab7360a26e98647ae77db9722a46a4e33b21ab947b36cc495b13538868ee921d6fc82a491e252447a62939bb01407196c53575f2ae4b00bab9e98a891e54d1c00fb837c9676d6062da36c0794d880e3c42554f305bfedf2dcba7fcbd2edb4659cdbb3dc373559ee0deaea633f853286156ba522aa4996485eb124018c474d0be47344683dbc958dfdc00728504de69e100b8551f6b97510974c21bb8b9526439182d346e9406c1078e8bb7daaae88bb86d6ffdb5fb0ad280b849f7125099e2ff841d0a97873512c90e9e5a5ce64d00bc4a2fad3743c318674a0f6639af333f0e77d62c26cd0bd7545621e7a6bba88a1f1cccb2fccc32c48edec1fb7aa9e75d5d21a5b85420e2072d66f0338ca6549523490d2e24faba2c5d07c55c885cbe9a55343d41d575be006db1b2ae891fac710467089e70b1184489ea0d95fb66933a39efe73279d1946f4bcd046c82ef038db8e8cd91216e602aa300d1ddaf8f4815a93a0bdd03878bdf7015a1fa26d8124a504c6519b4a23072070cd923339bb9a56a9815b64bd42a9357e169b3e7099ea8ec97de8ccfe82b160a72472840da43681771f60dd2b098982cba3f4fa0e55d3e8652fa2580ad7a20ab27ef2399fc82dffd15524701e17c0a5f50cbaed0159e408bde79b73e4274d2844f50e0e37303bc1a703fddf08b1bdacbf69b82f264264ce141d038a26f2d785ace313dcdc0a6fa7581260dc8166bae0e967ee34b302eb63aca3f8ffe6457aee365059064ab60e0a377344a872269726b197e5fdb4362204c80bdf73f0a0edc7f64b785717a199a3e1d8c90827314369cd03e5f17b2d8acb52a55aa6a0b04a2196355932a63cb34aab1df8dc30f1deaa1830bc38540bd10f8127e6f2c6894bb886de93b959be7818860311229f0134586278f5acabbd84131697ae18d4e091408f3ba0060bfff4fbf0da178f357dd1609b994654a3cd020f6eaa5e8f7063bbc60cc58a80c5120d58d7ae28676b3955be5d617585d495c91c46118a12b9cc9f64feaf77682b0bc8064a982c7aae43d5da44af3d653f21a6f5d0f9497856553ae9bee48878be7b80f515d496f6f7ad63f68b6c1449b657c9200812591a9f24209b8018a870393a49989ba0ebc4b816c811e6d5b7df22fa4054277617407b93661b2308758d8472ada45c36138f199c187314718bceae934c5e6aa47e8c3dca13216c3b512ef31e7a4704e71cac103dd49f335703f226711e3d0bdab8cd421acaf54b3e53bbf3d754288c745f1132d2cbacb540de606a2205955ded5893effca1ec92da677ae4c9d80f3ea5a631b96422a9445d7560d33c83327d4374529f94fedaa68dc928022cb4838b684034ba8b1b84b1ec392e7e18f11e695fcde01390a6114e9af6dd1090b48a3db0a256d7016132e741e95f9df7b38366d8db803509b27cab20384769222e339c4cf35a40edd036a10ec81b5950c8bd12fda440b1aa47247ef29db62c2d486b95c5a75a5191251b6ed19f0e608fa3d2cf6da063d9809922338d7d38cfa260707b592707784aed2b488b2e64bd22a9c256b04c086f69e40c678d6f7f0048fcf2c4ba41895aaf402757fba6a0fdf673d306f86c6f724d981bfeacb08988951d94eff7363d60c24ccd75057e62b848b8ba7fe4ec05819057a9392de62c607dc1592026d716ffd3ee87b98adbd17c45189516775fee220958a0b460d5834eb5633b21298e53c0264da8d6dd4fd4e75ba5016c47d183209dd4eab153e69cb2f9bb7e62ac1da3a1659cceb53f5e02e28f845371bee77aecfe0d83c053e4f04d47dc9b0ab5bbe6ee160482f62da0ca6ac51e68e718c77f0bb647e95d160102e7b82144d175498f63f0cab5989087563887789065ca2e013f6a218b2c860431c52949156b40e223443c895f1de6e65e41d3aacbc27641c3c788b9490c11fb4732ec59c737f530914892deb1e901532d6fd78b4bd87609c7675fee598294087b2ca2458476f6ad4cf0d25d35b50318e2885dbf8ba271044ded909267a8e319fb192e1da7cf40ba67cc0822a4d5fd7b02217b77233265a4546358019fe51f12f84584cbc6bb061270a7f462271982d209c84bb8e498d462c37a5e59a2f20160fe6c50fe236724dde1d27f33be581f5109e473bc8eb5c3c78231394dc958ec05099ea2b6f29bef9d193044470b21289b8f162126f0291ea571a3501e76ff22b6696365f11ca61b2da6ee63e4a5569f0f6d2ad7008314d609934800072165172a7e2e551a9dc20deb64fff874ad1c488ca2c031b1b944f2e70d3b912db0e5b8646de79232058583ec79c43c2f2f20cd0925051d2367f86b39e4e0b2586639f38ec350c103db2a08f9356a33848378798579216947f47b9af69402e55709361b644c30cff56e4777cb0ffa00a20325206c386b63c0c850323699c8e04f3ef467308a42457a05a74bf642b4c153adf646797b1416c66d7377a4bad2bba08088c3ab6def68616c000a6c70895a5e7f62228a471a0b008eb463dd9bfd39c94941947cf2cde697c982edcf4575a450a2842b54523d3607f2529ac5eb1474f8646d3afc8cfaed09ea3774b2512086ee7fa591970e6d7bd9c6d3bab1a4a358bee82d0bc81c98d7aed6248b649b2f4b54a635a6ae4a8367d242eb60ae43dc1a0406608ec7311e8c9652aff5954bb712421e957781959124a89623654e64448d0ecf93f23ece458e9823b22872fa2b96d60c82391125f4756fd1be89d2462188d2f6ddb21b4eb8087edba0159b23026978bc0dad801c7414c70f7c88506c0539cba13e9fc7b19b513f50c14f5064ddcdc440a7a3e018481781d9bdea6d2a29ea22336232c8ac4ed1123417b85a6d680a955b4edfab9bc72158ff50728f145b88b86b377bea9d60bd70a7a46446a3148f9982f8d95e786123cee29463d2a2898297198d15b14f767dc18e66bb800ecabf39a19fb8784683cb44d82666155839de0da4be3e894d840a06ee0528b76145320c658a4a0a6da2116f9d43031642930237b519fd48539f12c8adc71874167a7ea7dd82ead011ed3b1e4223013767d4f046afc9fa8bac2945b2a559f7c83d0f298db6da6880c58d56e77d309d3201a8b9d15f3138bbb4e440546c9e9b8c55b5b9db26b9585f8c21b5bfe7b608045f032205aa0c8ef970e98599d9db2bdeb7932603157f95eea94e88e588919f460dc106407d0251d61b42c287dd2fd03075254a29c88d7cec284500550879b4c157619ebff3518ab738ac3e8f16ad39346f5bb7bd537c555cf8815772e41625982f156be3e12d6d1e0cb95a77e748f9102807b3cc18c47b587fb1949329528958ed00a6c8ba284760396594a6f3c71f75dfe639e8ecbdf3501c6fa37cb9100301767f606130daa7f35e7d6514f5a67d73a656df992773bad31d10a7577d371d48a1ac9ad0f1cb58f0b931914982529af82f4a96278a1c3ad9092302c027b43fa1a6e29fc021f9e9527c23e7e1887c878c1edda80302645b3d375d31b575481227ad6ca668efa5db65d4cc28a424f5b68631830f19362fb90294c211d4ff82fe0a6126fb50dc29a55b569ec7e80361ec2d29e9d6d6cf2cda195e2de254f314636f00ee347ceecc3c2948b8346bcc3eb0e70ccc31b1bfa322efb23177c2d10d1373491d4bd308d038625d13501030d5bb49b943306b65a9d9a3298ecc92c34090f902308d630a142210d8cda6b61198b0a360e3676512a09b7e21cc63890c139aec4839d38e36c840fd0caac955d89144aa82f1c667da3ce9a8ec03cb56c97b55bae50a92b877cf53014a9d1b488633d1627249ed11ac4a1bd5e583ff1089375a1ed8d52038d6907d8df3bde6438040c2c3af802e23f9730db87d54651dbe4a3306391c02c767f9866e942960705761a60b1043be17d56c5a0d4b5cf560dc40821019979ef1ec430a513bf42bfad255835e149abc5b066d5bf2c05c5f5f1a2d86859523597555f348c6725863f0ad0c1593c7506ca59beaff03e8045263e3108114b9a25bf0fe85c0ebc1fe78e00a72fc22fa7899c4a8e4f9e92217654e44214cd4069627d734e2bf288e50fc140fbe4d59fc018e5c287f23e784c0fc2466a1f254af95fc10e620a4ad57adea7dca47f0247414ccc20c0842d47f4cf276766095c3f296c5f9ab9ce810473e62f3901e06f82b3457a0893291480b8d2ba1d82f8c0d66a9dd0566ef13891375e108c61d62f0eacda7e4be4d3687b5032508ba6d106ac3d036db4bdd235b11c4d1e976807a52bc1174b2329ad5b61645dc7438c448616ff84707d98db3f71de9a738b4c11dee1b4230104c7dcabb851f92cec559e41db99adf87bef2f460db83fe6d7b86e076d15b37fb1539dbd9a1a24010a0cf00639badbd8fac095f58061d2bb9d3903d3fab89b9a372cdf344c3aa49d83444878a9f2ddde99d4dbe518b807bd07bc6e10a217c0cb120b35472844c50dec1f9818a420df14eca2667d88523b17c30b433f05b7c028055f4a6fac1c7151d97b89da0e5938815e1ce9152b3e7e5b25103c25f20cf9adde40b073be240d2053660f765ad452be457d17730a437618582bd65babfc3aa506ecd99101db3e1ad1f42af4e4dca531f64002e35ffe9cace68249c6e05d7b1356f33d6ccb74541de30b48e36286cea9d8ca3eb6ea862fdf8a422078a340a57044515071b52459008d8193a47b55942538cfaf8db1156d8b54f2fd2d3b71963cdc6c069502b4e7ee804256326c672d2c9399ebb5d8b66c6e5b265da2a2512a7303d96358acc761de83d1ca454352c22377d93525ddc10a2c824bc82756bf28453e1160924a7ceb386ca4e310de2225e954465a95f1321750e73ab60c18a4c15334974b304e722b48bd4b6e594b306db120fc4ab57a01ea3c0515b68160af095f21e7f47a13d226684a4976682291fe2078ebfe0003102cea234f69361bdc4c7be57da53687cc042aeb409da02838b025ebd9148bb2bd9c0ef7d6280b167f53152d42886e6b00a0b9f6c37c8d1cc1885cc15349d88047b140579f5e99e5d4d7b25a6e040d75a490d8b6141d41be945bd0f299559d17709cdacada18875c4c8113d125df776d344e03011d847664d7c9285d8e6fc81de89a4bb1447b3e81b2a73934c22e99d96dd2c188970750ec80a0561b7726891d5c3377fe5200c791d0da26955513a9421c17a08e48489147c7b0d60104040737305d906517290dae5b410188093490f6fd1ffe2e1c6fb584a9970a45c2c462892a142903c91d29fccf5ad29982a409916d110e1cbe3e5dcf6053468e5733f6f92339c28860fcf3bf454d129b32b273fa20c1585504989d2f70547f65ab6dd50bfd3528448d8e14e2f016f5f3f98614e8a686a6b4f228624188657d376a444602a8b15a318cee707c6ae9b54066a2e0a7a3d0b28f332c9684b737ec8c56f8f60a4c0d0356fb84c9957593c189c647762f8a72fbe413271eb467df759976e3248e6b1c28c930b1875c2bab7c42390f1e26a4aae682a9718d12e347b1a484cab31f1143bfd66d4d4bd9679514bbc580b972153f4dd6ff8b80d561fad83028ccfb90b74b7faa8d38aec282ba5d1c6a193813e2fac611013e58b13d839dfb7655391cdc524e0ab3563c01a2cf4fe72389b9742d66eabcd4e42584c706e6a841a78cd72bd256338a5826cb315c9a7a97767842e745039529942a008c84758aa18ad9c15a622e7dda9448c1c961bece7df51be5f85b64c145b4a1b5c39e48d133f152571c4f4d4164dc14b40432cc14e822c08845d8b609b96c9f944a9e105fcf3f4f60f027337acec38e29050414d368f7af62990d6855c9f8c1b873882781fe1308dafac1dd1637c48f0647ce9c6b13e97d1d89b7016bcb7ed9e4a4e8c9530612f9d08b1f45e5b522b7965a0ba966e400503f742142ec4f29257957c9345234bf075ed33a352a4e5b7e06ba4615fc76722dcfdb047cbc91be51b0b713f9654015dbb0fd09eed4cae2fe5aa922f5c7229263259b2526c619c730848b967147438f5400f50ea0a6f89862097db116f854592119dd9da58f92a9c7ec2d1c71eeddda2fa048c0e21f9de0e08dc6fa67b568682477500004b01c0ede47b3f09d0828f59983531fa79b897b084b5b887a0910314ca7c37a159029b16aaaef0380767e1e94da56cc0ce067752aaed07bcb03880825cff9081ca9fd04fca68b57e304a86d464c7c016058db60fb316e67a2e6f524ef0a09d61f32ded420528ef54c89226a808bbc154cbe82719491b5f69ffd7632e7aa75844fab47fb04587b742f958eec33ddf2b0cde4345d0ae6fda9174ef98804e49e5cb23083a2fc5061e2133ab55d75719830e8b211fd46cfdaaf7da28834bda5f70d1a2f21f31eb837c8bce1325be5ba10b5b218b0b19f10eb4ab4df1533bceeff80ab85d80f2792f88cb59406f19b019b505582b87a94699a74a888d254eb748b75f1958423ff1428e19bb24d64645af5c4295e498e375b15ec0bc4d36865c0a2bfd78f78b1751968d8166303edf66e1b3562e9a833e1c60d1229b376d702ba06b8cea1b59841161af7e6fe99e1739d806ea0ff82dd408f27a52281fbe2384413cc81a930e124f7a4c96079a1a376ba3a331039c0ff6f53792ffdf40db36a96aefa31fffb46073973c3ef1ef7ec3a7dfd9aa0f22a1f6641051e7d4372a720007d26336c079e2b79be3e2d22161128b04887da36fc38b5940948d00e02ceb9ba22be7a324b16111f5ee04d64b9db8f8cde77232fdc457883a3a989a5348055a94a360976cc9297a9d28268a8a32e7482a9c3feae59a3227f9849cc1c34561b0c722cd08bcb5304ec95e9989906009e1ecab691bb8dcfb4616a864a33f606251bd7c2c5806bd7d25b82dffb5054b7f82542f5ae0f8727f07fb3a39bf4a091699ea448c00ffe1bc72bd8bd4cbe61af1cc48327ed32de5fb1e952e595ba7b36541062fa10b40d91f32dac9ac9f448b131b7446d3e57a20a31edc06ed6b045804640b99ed9a49967a48efde7db2996280c57e22c567aa0394b6f91874a6113e568089fc234a644f09612c543262fab3c305376710b98fc3a63e895c52198fcc42602dad190d124562558ed8a0bc6487f1dc21c357fbcbaa4a82c9790d31ca7b86ece0b9470492302dd8472139d791ddd6263e8ad8ae509a7821f2ccc5c81ae3ab15d5e1c4d18e1d878845e0ac001b5621f97e72215b6ac206a6690778673f5239835ba4c170e3022251a98059128c9ce05473120e058763161742d417148c994a427cf96f98737f4e140abbbb5de12f0e808ee1e326dad7109b87a0cc1d5fb85b9882c2bdba5cef6a9c74df718e72a3354408621b37e4ac64a51bfcce7b097671886f7c774220af99d450c461dcd3e1304c0768b41f44d322c70942cc34605d9a70e2f18a7b2a28a0a56b37007141d6b81d498c15287718860dde1f37b8a270dfe9ad18d0a2d34c7c129b86e35d53b008e182d61dd3cd7b4b8d57c5b8a1f9ab7f895fb590eee3927aaed4a8237889c59055d22b4d8ae6f60d79ee27433488ef08b3fc3344314c5b6f011e888a6c6205c15c354e45fc541a1660f2a717d2e423ff867e9f4f2156f8121952bbfa488d0e5d22c1c5c505a335d6778f79ea09a7d9f2f78a0acb6b5c882b7b2dfc3419ac2f78852e7407924b58f17e14593629e24bb1fab376292ea849af1d2e7a6be63783747dd50b442503ba73fe775a409819251d6dfdf24b14a1fbec5b2464610ab1f8f321ecb821912d0d15a9755f5feb5e2c4d63006694dbeb2ae6f111b6cfb489bd40d3f7c4e925e3b115d0ec2020dca937da7ab2c0d78cddb0adb5b61b218434b2f7de7bcb2d036807c7074407cebdbb5889a7e212410421c32449ce1288e3e2d42bcac58b7f2fee827a510446fd454745ec5dbe7779797ef2ee50b98fd14727cd6e91878f58c82143a4c4e25d3e8c445654798d8e218d6e72529d6df44805ab21dbb08a61f5c2aa85d50aab20ac52589d5895588d4f20565f1be22c0fac458675a9da6861350a3a0d9e798787e199786a359f62fa91bf05103d1185fcddc1c2577f95d9456697074b6b4fe5cae1c26a1484fd001aa168b08c83651996fa9dc195c962cbaa57faf05878b0586aab1ab2ed865d400fd9aa6253305bd5cbc965ab6a25b16c552b27a4b25505f9806c55a91cca5675769169ab2ab190b6aaf14955a192fada1076719607bb807ea37f6017d06575b6aa6d59d8056435da7a6810d2a75662ad5c389c0b52038dc0233c430f0f99e0992cc02a38c66a348d240b0b5d8b61c815f2d669b880b02ead2ba5ec96d44ad3daa3adf4655d5132e1e1ab586f2b7135ae051eb1b08893223a7dca82764d5f7405d18ff4d2d18fef653938af083c831d4e9d1e218b75cfdac7da369e95aeb049933e3decc231619127e380661b4a037edb8910bfdd840141400764b0c83d35e017c2646200a54164dc2db0611168a409baf21a7b5811ef3d88b0d1ca82ca837e61914a5a6f651e16a92bf3f7b432ab0c9e6c931eedc7cec70bc7fb5543e11f4ea3c9e918903ceca1071196d9857409317a598fbe04a22ffb52d61e21fb229ebdada74ff06600088cd90a9ccd8f5d267c2369530cea600e2c3c754b5f66775a1c138f853091aa958cdc1c767fd899c93f2bfb1202f9a1390045c52c5575cc594b825f6becbab3fd32aefa7163d8a96bd1a1b78a299de90dd7027986141a4265747e55d566e7631708312450f72a9628c459024ba51289f411e923d247f22aa5bfd25fe9efa56341a0b164559ea4bb5e522a65a58f3ac9e31906a2542a65a4763aed76da3d69c7d3cee71a5956c561fdddcd6982a7f92a89f48a5aa12bc753d227930e4e77b70efd19552eacf6c3a463440ec79dee1cdd71a627ee3ceee4e38287427eb1bac539e76a3e843b15233a92b1ada6f3d390c0323c137ae92aa473c7582a3fa4a6436a3aa45f11492744226597070be93d4296949d2fba849027951e4bbfd13be27390b21d21d24b2152b6427a8924aa6d489f46a3d168d48858956d8dae71167e88b3199df4eb58602f21481f596e48c71c3210a4ec7d9a1aa69374924e42445a7887d331a5dfd092290613151cee2695572ff806b42cab8251493b73386b017669446cd5d335767f58973922ec02ffbaa68f60991687eef0f22d6ae31695cf984afec50b955f91ca2f157baea2a2f21e21aba2720e71140b4fe145432cfc11425e2533a25d3a3ae635da411a49e5c21a5523a62545995262602be169284b649ac9108da67700dfa47bc054d86955b24e0205659e896e49c34f1caa63da71434c48da087c8e881b8283a653fa28d3a1b56b3a482711ed0d28c414e32ca6182a179d2f1fdc1067e38874cc285b297de48674cc4aa99158f822de09aa88ba4608ec9a9a9a1a9546f912a2c53a267dea4e02beabfcb6125688d25f4dc7a81cbe8374123c730151fa7bdd83d10e98868a7826b4d3491afea9d4527d2d2c950aed0d0a6fa2b455547e4d2abf57797543fa14df4240e16fd3a1bea3741fcd4afe29c207b56a5b91b7be448b43ab942de1e2f0a46a01768177750b5ab0f0a219f414729135222db29b69842231b970ddd805c4b00cfbb3d89555805de0ad665b0ecf80321fa82c367bf7236a03bca06a6fc69b6f3e799ae103889da7ea8d80853fd996e1e3d976aa42ca1af1b2fb2ccfe818d70e73839d36dd6fbbd91cb7ee0dff20b41a74ee0d8410e0585a719f9c655958117e61ac3b4c678efbd41dc27935d8d7cf62797f17c2c234955fde6f43e28610d896dd1dbecdd91eb7d98e4ff1ec6424b7c4bff8175fec57103e08f9c125200c59f7de0fbefe81e9923140cb5034d18425381775323eb3f415fd2950347105144d64018a26a6e08b59b83979e74e1d135f396bfecdbe9c7f67f82e0500b190016c2f1fb8b750b1dc478156dc52a071475fbec35fd7a1838e8e5e4d67a36bcbca6e03d5986577fe0292c4f2e543cba2a2aaf7785466c40b4bbdc77b0676ccbbea55eff1d5fc7c35b31e94e886bbd1a35a9d079024a11a0b33f7ca550f5510befa6d167c751884cf90450fa47f2009d90312407a2065eed5e7196c8c3ddacdc1b6877c97ab3ebc832cd0e7790049625d9c2e33e285c57edd7491f449bd3a478a590f2c5b4209d24ba552a9542a954a2412894422910e821a3d90fe839451d7d24aa552a9542a1d04357a2865264c08b41d74b6576bad31cfb8a05ba00b2489b53ea75577f4577450d639d1104abd6561ef8c3d061df331bb5436b325486f5236edc380b4f1988d99eb6c4506b1a263da771ed2c6cc08d7462dfa40459d8c73ce4561f9554a299975b8dcc4f2e5ab2abb44c818638c31468a92524a29a5e4c7dc526597087ba91f104228a594524af9cedc7235e09c737de6168a2ae1a207249c73ce39e7babbe37fc00c893e7cefbd1d76b81cb0973a880940e9708158be807019b30ed44140340bb2202a560ec423f1c385085860c2892ba490c1931ee00f204b4ce10132dcc0053638a2093d38e7dc03ed8e88cd6b388d499f969c805bde6d786112d1364426d13c3fef2fc890f757cdea84f4e9edd8fbb7c33352f00ce8cfbd2b50838c68b0abf76cc67b92883e4ddaa07310ba076b541a004d42a6184bcdc140a063a84f397300b131e68887547c4e07661e988bc051a0a73ea9fafaf42e84f5d2b09086eb2659de1f96ca669fe48fbda7df794b563ece492945c15839df1795319dd43cf31c21db9b8b8f51b68cf2d2ed80f75143e7df21cf50b740a7a88c6d5f42c847f918a511adfd3927159cbf2ebe5decfec952772bfd172bac3bd88924962d74a28865cbb66a6697d7a7f7fb605d79ee729f80ccd65570adf5bbfb3bdb53a331a0d77219906ecd0811481e704355a196bd6e2d49c52c57624bd00bc4ba1a7681af5a64cb3498393f06995108110b1f8f601a7873133f60e1630d3403c32c2c3cc4028e8161192c3c9c02c1c0500c161e4a815e60f8050b0f7f2017185e61e16114a805865bb0f0d007628161162c3cec81576078c803a9c0d00a161e4281516078f8043e81e114161e3a8152303cdc8151304d74c22f1032c1c2c32610094c139ff00b3c54027c826922147e818750587898038bc03491875fe0a1112c3c35c134b1a78708161e32e11919878741609ae8c32ff07008161e2ee1991c0e0f7dc034310abfc043205878a8846770383cdc01d3c41f7e81873db0f03009cfb01c1ee28069a214863ab034710abf20e1991b0ee10d2c3ca401d3442cf80566874b587838031f7ee1993efc84812f98af900bd5d34a6db8c806510da7a1061a564eb3f2db96e6cc316e23c66f5b1b672e4001ce6c00039cf9000738f38d1b67b6f6cc3df4706604202001674e008e33e3f0e1cc3e9c39478e1f74280088059cf98733eb38b302ce0cc49917f08a87cf6a3dd679acc68f2a76953a7aa974aaa6cba8a7e750651c879ac3592a0ebfa1b23cab37bc6bf6d7fe02ea753e584c91f213c5a78707ca13273b4d747270982c519204c99168e4a69970dc8d85d445c1a0a0cdba5f58243e1c98037d2cc494407d2295f9ccece1e03c1c1b1b1b1b1f1f379f099cf3e116e8b6c032efe784020bdf084cef03f4e70b5c03c43bb2c80af5a258789c392928bbd46465d7f4cb8c07f4c2223314422e587888d333b0c2c600c2f0394ffbec30a14a2644f27ee48f349928953ffd70fae1e074765d120b8fb3800a445540d5517fa839aa0f15474d40bd118a854740eda1da7aa31ea01aa0de9873230e4dbd71c98d4a62921b91c423371ab9f066da17cfaa0be29260177896ea8454974395519d0dbbc09faabba9453400d4eb90b0f001a8d72961e167d4eb4870dd092cbc00ea7529b0f02f15a65ef7020baf43bd2e06167e00f53a1a587802d4eb98b0f034ea7538b0f03bd4eb7660e163ea753eb82e081636715d11ae7be23a245c17c575525cf70417050ba960e16780d8fa67eb2b028b985c91d7695d4fa37938ed05de518169a211235680c233a428304d3c72640a16de3de19916871109125849c13431491227ecf00c1505d344254a98d084674048609ab86489127478e63dc134910913287278868722304dc4c131020ecf584d304dccc92102139e9941609aa8a333040bef96f08c0f982636692ff04d8060e19d92b8d35ee00e1ce18069a2132698263ea101d3442831609ac8d35e20cfa81ce1999291223c63ba131d405902debd8069620f0b9826fab4179802a68951dacb099826feb41778c3332b316ab80def713088b2821f14b80fc0d3c429ed0522c134118bf60279a61ede1dc134ce074e71237021b0f0550d9586db506b38a9c2788b4a7a555bfcd58653b53aa8523c3ccb6eb8818505071c72c841868cd3a9a505000008400066cc70711180005e5e60607418000168ecb0030d5fa9316eaa2ba5eaa2eb8b8faacab13a7aacd86bedcf791eaa7559eb611179289fc4c22559f6708cdc708391232c2c4790e08003922439e49044890c194a969c4e4b98b4b430c101000070720210801c9d1933749ab8b834d9118000769cbcbc3c3e8139cc6f47283af00ce0f0b187003e34a2ec701da00c80c712a08786cf0e512c7cfc89912233a5060f313f32526afcb6e5e12f78a8175af91a55a6decbcac7d41dea55b1f2342a01eaa5c1ca0fa0de6ae575a817072b0f535fea75b1f202a857072bef52ef0e567e46bd3c58f900d45b002b0f00f9967af9092b7faa979160e565d4cb5158f91cea6529ac3c0ef5b2d4cb51b0f237d4cb54b0f259bd7c052bcfecc22ef2b54e76917fb5d845de864ad945be865a6217791aaa895de463d418ec22bf52cf2ef2a6cac22ef22eea895de44b7506bbc8ab541876911f551aec228fd51aec221fab0d76919ff546027e601779505d00bbc853b501ec225f5508b08b7c8b1a017691f230ea10ecc252764b6c09ea6c055232134127d38b3973da08a6d817cb4f8c2088ad1eace493edb5295c921722d9604e9f3a04a757d30ba61a0fcf6855b04ceb01b7c0df70c3ca0a89646fe3a9ec6d3c32aea65be0f9e1f4a9e7e19ca21c53028d53ec94c6033327e40e49c78cae021d110b6b9c8ca3d464c27942880d37735bd1f1e45d8dc3a9a12e89a9068eab71f1eb9ab828289c5893440d6ce20363c02df0534e3f2f52e4c2224cec8006a1088745a0117681ce27090d2c3c94f22826089b4cf1c49b30f980e2c0c217611798042a7f69d88a1f804448124f8cc0c7b2587e620439b69188408ae53e8fde284862178e87f3725ccd9087d331415c123ca304cfc4c3b7153414b4218d2662d174d0966830b0100bb6525aa711840b1445b97aa7751a68be98ab0f6763f69c682feff5897daa8a6388d818e9aad42cddb8be87844f167eb8d0852e74810b51baaafa466c7c2462d97290ca3958575a6b948f67adbb0b4775c9fb78f639073a7ccefa8b575c01e2c4a066445b719782a7dae3e174f7d45e96cdb01a94a2063f575cf1738508825851052baa608515561cb1c28a23561ca1820a9e6ee75c73ddddd2ba774f799b939e9e9e9e9e9e9e9e9e9e9e1e2aa8a0a28a2aaaa8a28a2aaaa8a28a2aaaa8a20a2aa8a0820a2a3a5ab355d7459dc66ed535ad00b2a645e9c4e69c735ea77e2f4a5ffd5d3a2e9a816e511465d5e6fab262b7ea9a569873ce392dea947bbbbe2c8813dfba63530e6431885aa4d7c2a22a7cacef4dda8a9a73ce69351a6b529635e79c95b32ceb137bd3cf4651a7d19a93a26676ad4fcac5565dd805026196656193beba627561b34d8a5d55a494524a29a594524a29a5d79c97853deca1ea9a13f439419f156856216cce5fd36a3416139665619665591666599768341251b34adbaaaba335e78538944551144551d49c4c4c6bce39ad392dcbb2e6b4a837a5c5ca0aa0392b100804b228752b76abae698589519f18e8028140208b8240d4af39e79c73ce39e79c73cec30bc7acd4faa4a85fd15a154747ca9d3aea563301aaa85fafaab6de9e740ccd56e62dd1e8f2216c24b20e9af31735ad69c1c9763a394d1d56e0b1a465be14d00f04d69bf566bdc5574ba0dca77859f01c05bdb771a5adb46cb6f65fd99d9352533dcd536cb1ef98ce568268b7dee7b39c78866db4b2aa558daad9eb3ed6c49d5922142aee98959ef1dedf7befbde79c73cfbdf7f79e7befbdf7de7b4f05556b4b07b4fb8d06afce705c855a1696ebfd71848eaeb1fd1bdd56deeb0e1dfccc881ed2f65b16968f50558d32bf22ef068b294f9c2849e2863821517c74728c7491aec102ca93254a1a9136e487c70f2c39a08ddf102a66b9588deddfd88a73a030f675eb81f6c11b22f64e59637bfa39a1d722d2a0d8fb88b4465fe3683f4e867be8371e77e7e911b16c5ae6fab188748c2362fbd78f73b05b6b8f9d9b7ce277f7e47b32ada7f1bcec350c49d528bf43570e28431edb26279373a6558a717a3a8e468d773a028bd0968136d382b1d0c6c93c1dd7d29fd3e6e9e8e84c9962f51fce8c29853e2c2ceb04f111f27e8858fe8bd2324fa75bfa4d7153a6409b973575cd395924016d24b48149e011274f26e5e449c87a3c3af0caf1eb8a9815756c7b6c0e9b82de69ab6a64353aba74b458983ebd26240b736be84416538ca7a30476e95ff976baa51f12f8a51d06057aa9255998f572ecf4a95dd2b6ae3d9cebf78e1d0d84d25efab73dfb78e5806259e3e6b06703a1341ae8a4bdf4955d935b624365506c1f2e71326f0a74d268e013538b4f875dea6b32053e990765d7e4b29e4f2c06051adbde70afb29d3a331ae0c38649e30972a449ff1059d276c648a5c227f7a7e3641eb7b8778ce6f7c4b6655d9fba721cdab4b8a20b2bbe9a514c06958318e4a161fe401b7bdf5382c7b213969f50e2c656d81368cb9c1327f4b69ef6ec9dd7b239a06d590381c3712d6d39277d87e31ccc706c43f7a45bfaed9cd87e3b277deab7f913868a599c40af659d4855b33029e8e51dec0d70a0df936586579181712d8ef4ecf2a861a71528b3ca21730ebee4cb4b78c97dcab8545738f4ea358c732cca2ea5596d58b3b0f78543dab0d86575170e1a7d925caf05b91d6cb0625aa07c87bd28163b59ecd57bed713ffe0f2bfbd4a7e633bbc8cbec02714e5e662758a9f3732b7c3ee814ff6425db67c494d90c7829dd3177dd68f815f9b822337e116d39ab45b4edf1a3c65a7cab16d17c7076592ccb2c1e4e6ae3e9fb8da62460e59d61f9c2586eaf1bbfc78ed4aa1740c124a789657e10558ded8663bbabb37f96624fa87dcc75f6a99d19f2c0b976d1a3f6558d56d6cbe9d373e7c610434271e6ccaee93921f3d225617a670f07c7470b765e41b8631db3f2ee61772c839d5993659a875b9e0f4fe3194277b4dfdee679387d6a991342af56a41d4e9f9ebb29c28768f4d680e88015bdd5dba00635a81501ba3b55a9ff42575d140aefdcb3a12e21aa85ff7161bab72353c83ae938e6dd65cf865ddecdcf2342fa35b9168f7495ece1c031f04cff8584f8340f6db4d146db4bf7876dea7aa95e1b2ccd8a689664f3dc47a0b7d16874d733aa2e8afb6894b99eb7c30e1be570511e95b99e3ebd28cee70b54e47cfaf42efa8d6e5594b9287dea06b2780a554344b73c18d077c180b66d7faf18b4c48bbb176f9582428f61a7eaa558e674faf4a64e939de7a45b769cce4dd53c415c122f329ee6691e1eabd51d7d1f4ee0938ed941ddf1b82bf00c46d54b8876d7ee5cbb7bbb50d6a4635ab602e18d7b01cb30bb1c1baebbe19bac887693fd3de998eb9cd8d731fc4409de8362df3128f49dedbbeec7bee77eb029d028d4632e1f27c405a19376cfa5a3c516f19a933eb148e9d37b3becf276b8f7e0dd11c704cf808e1dcb6e0351edeea74fef52aa9b22057a1d11f7b36363dfddefb3b7799e94ebed026e799fc1bc01ed817d43b0ddf384f03c2955c87a382f87ba700432ec5adaef0b2723ef64a804f4fe2c2d63721953187b27c3ccaff49e0eb63341557db20f3e9a6d8e9aa0f3adb71e57103333e29d1971b9cc87f6b872505da1a68ed84f1c418974d587f81602ea635ebf32204ed6fbe4c35cb97ed51e2d88f62e5d06443cafcccb537565ca3823636e275098a5e2aa59d5e4ea3c34a083654caea57a75669314a728d8ea57b0d57956bf2cc5564d1e6163398ae5276a90d8aa5d33bbde3c0de85a4386f3cfceecfea8aab314959ea8b1b1d7868e8d8eb9d4563109e8987ef51f9ca9bdb2662946a5032a3fdf33bbb3814efd87ea0ba8aa5662962a46894c849371e1645abc72515bd4cb8968d790fe24e9b2b6bdee247659dbb19a43bec93728df47c497629fc0c666818ddc30ae254e8a6591bae42b276337169b699518cef73679862dd10b7195b22bbf435eca17a50d999d137946a4ae0965778eb24b4bd9a559cde59238d5581405632f0f162ba910d75b6644b3f298ab431e6f81965194101a0fe3641a4eb7c4df64a2b12de9537c48090af3f8db96c8a83cbe931072132966caa14c6c6cfca561659a8d6b89315ea536c0b5c463f5c91a7c727792c426a7481379d51a342a102834027a5f7f80c96d4b96d4d8178538096d7cc70b87cc60fae432097083cf35774d1be918173a7383e953cb24d0a7382dd1f9890f34b1b76bda12284c7e70723a264622661c3d7e545a42e5a15a44b35856813ec5b721443899e9aaf8219c8c4a26e325b0b3e38084ba869c2996fa6d113b29aab9f92bb2ed4706e2b080ab5ca3a8374ab6780bf08c9066730196a9e15ae6e76d43ecbc8d886d37385e98f3b71d117b4e09f469d6a831a7a9468e5b4a52af9845977d2cc033cecef398977209eba59eff0966ce1976be15895334d7429702d8ca26db6b8dad39e773b09d076265bdb7f20e61db67956fe81e7d4077e1684e069099df5f9fdc09de8db6dc7bb06d5b0f46ac64b51e05ec7bbcd53eb782aab2ac3eb5e6606ab40c113525538c770cd5ee60b51c94a0f7418f5cabca7de28b81589ef0adde7091ad3e39f79c0fa49ba120f43eeba6059f6b52314bc734989229c6594e332a1cddaf7a8cf157776bddad35b345fbcd899007a8e38e2c4f8a9007e865b1b0b9d768844ddfcbf15a7357a03e4fc11b1daaa10f4208ca404c9d9ab223dc09e560cb77ae39da978e78f90ac67ccbf72b2a6e991702017db0faa159ebb986969bd7e79cbf1e0fc4c2eaeaf5c1a08a876541590ba1bd482516c20b87ccac1012a63703126061e7e527a53033d0fba61533a8437ece9ef2b525f09954b57307626385f5b6215e1f42fb8660831e955b6f62fb366eecca100babd2abe6b16133b2babb5d39e8a5751b362db071d3d885a3c9aba22eaaa3cb7e8847da51884786785a88c742cbfa04c201eb20eb201f3d2d10e8b54f590444ca76cc3bd1e56fb48d16341ad09b659d2f2144d9b5eab57163db2d2b6b0759cdb22ccbb22cd72eadf996ad38d315c22ccb7a6b10c8c68d8d1bdbd89543e5ed52e916d90e25af92896ce8f501df2d694915183fd2ea3f19ca185e19a8c974ad41ab0f84033f786cd8b44b1b47eca5eea37780fec336eb6f5e1b368dc67adb28622f25af0d4afe4e1b37963acf4beb9292eda0cb4b6a4ed01bd55abb035199556dd8b497d14995744a9b47c5c6c9c0d8992a3616c2c3d87132304c94b60cbe54ea9e9ad20f44f52e95b215eca44bd3120b0fe3c7c9d01ad7024f6b60fcc0f881f163e16db4e03044364dea78e5e8ef0865b05d446b60d3cc460b4ca64be56b2c84d162365ad0685a6b190f7863439707bca9de6f972c335d0b8ca11e332fab67b1eedb3db68aafacf6b1d569f6eeb1d18246d36cc5b6aafe669531b571638ad1a716a34f108a28a8ce6af1895652f4027a20b66a97a0fb8096ca6cb4a0bdc8df7093e3ca9052ab4090c252da73ecacaeabbb7bf432d78dbdcfca56e70a74187574ac82da45305644d99d9c5d9375d99561dfab4a44fb94fee1f4e9dbf9619b5b50daa28b744477b445b64374cc894643ef6ed3f0c64e4376db8afe72ac8b91ad64f76680917566caba3b73a7b5bafd76ddfdeef31504963d27b2dbace8d90af676d0105494363cd4dd774d644341ed24123719356434f0c4c8563277d061886c567e198a4ae5a6435ca865ece70408244584899a3bbb33bf9d1d2dfec3ba479923d031a0b77e7b3a20a6ed027410ed9763413fd5172286693c83f24153ec98c1329f5f0dfbf8fcd8995e9cb9b60803650f07461dfd45e92e6a8b508575082902fc9863ae0c7b6186a0b22be33789b26ba2d9a5cd2216b5c69cad84dee2d88770326d888cdf64a2ccf3f8188f19b6fdf29891896ca80f679bc33e92578ef61da22c5e420c717fae5ae7b24bc29edd0c00b1fcd1751d5e382e1aba1b784e349a19967f194a12d90efad09d7bc887a3cf8642a735cc2f02cf8946d326c012e01979475f0ebf9b7d0062bb6b0d621dbbb0a31c83c13ae682758c05eb980ad66597c78caa511086b5d65aebb736450f3b0d61bfe1b05afdaa56f6fa3439da5b59f85cd6a36531712cdf002446bbe10c95fc03129c8ea8b4ac36b5490d99a20101000004007314000030140a850383b160249247f4300f14000e8aa85266509c89a32086614819630c000008000000000000018c4a8200e010440b8f063d76996cb7ae3a07e035d1d39d9f4a213b168675ec2b1c390676ce607a1fc8e8cb70294378f9a658cef1010e2c1fa5d41448908ca360dc573a72a6e68eb3d390bfd3e773d8ca46de51a9b194b12f525299b7d4819df475da1896bcdd963ed7f97671ecfa5f8754e662814634d975a97605b96c9895af94b92c13bb64818ca232021ca375a190543db255bad0471c50d60c54091d7813a5de6e17fc488825cead46c992e737576e89fc07411e3e528bd0b344a3fdcfcf0e52cbe1f667d7c5a1506fda5ef7cb73005843a9387f05a30cc71d1ebc6aadb21045fc1d9a2f39b70c6e3f80075dd29dc0b45b8d72bda52ae21f24273717e79c7e351c225a012c7c32ba1c211b6b1972827c58df08fc1b95801b1521ff5844ea061591cd2d97a10b0a306e81bd1429105424a89e482454db95a423f53c70c202a022c904c81cd2c15b356585a1ccd65a576bf32b2b80353e8def8dae2dec69a32c5c095b4cedaf2a56e70f062126138c9f265c46bafff9a70ed7f0202f73975d3b95a756d7b863a55f5077a84d0d6c1474e62c12f12e64d839e0553a58947473fd32d584c598017301607e09421ae511fb717420a64566b818f0f1af415f7fe17721daa0ce032fc5034933eda371eb49b9bb0a3d9d454f7503d6bbf5df91d7b97fcf0ef8fe1806a838243bab7ae73ec04551a0b5fea718c873ed3fafd35d4a8ded0526fc1688394558c96592e30d94bdc924d778dfc6afb46bfc54d8b7607dbf330368d0880371e2e6369ab767d004b1ca828c825ef4319d16bf4536485893be41992550836ff8f6470887e3501b3eb5e5993c7f8cae51673508f934a2db426355031a91757f044db5b3036dff48aa714d274bed1691446f9a5f64e810f5d38c0e567040223b87435e681b91c2c95a1e9de9acd99e16e04d3793c207f09005988636551be87e49b641242cfbad07b0a093279b33504725ad217dca0942c340e92cb8ebf4dee24571369957c0153aa5f15730eded48338cf42bf22dfee3da951ecdcac02cec13f5908e2e6c04130e8465e2ba0aa8d5199c5ac04c40cad53c57baa213df7d853cbf4e62e816ffbed812b35627879a4fd3f113ba7786b81e9eda6f0639416e2189c0cc805d078079b5e3286456c9df4f50772fdae21461512ad5fc5e2f9c427a52003ba81d4118fe350b488c7cdc5e373c6d11d3061e23f0316da3da1076d607a44b83c2c31c7a852a6db1f92c7e45318f8a2551ca2273402aee0e8cb43473d4538bb1bae603a13931f96f94ff94dcd5aa70aff9a6f05b26a97fbc3b08f695085aff69cc9c388545f3d3fb1b9c273104787630e0536dd71eb2e9b2b6d38077de3f1f18a096a0984e4ae22e4cbe30a7c6863a00f93913daeb6df8f2828b2d36013d073b0adeff16ca149eb788429a76e56b4eef7e5c4e25ee4033635ccf809aaac5271ac1f4299c9f4e4e765c8891eeadfe7c49b464c2c5df4155b0668fee688ba9cf26e0fcbaa61849c0566bdd410ab236da05c4452a4fb722ba1553a4ca801b34521ae914748705cdb880e936af5d3d11b99f199776c44a640827529c44b62aa24492b48be4185c9b25c85faf80578d1962d15024b065623e3346857edad48b7bed1f1ab9428bcb077e5148d74a4bd72403cbc3642b71b15851a92f2ea8b88163101103d1c29a9eae527268012e706c3347f07d83148db972a1621399e9b1469f883649d28bb25525ab6125def46ce747e2b7849f3794da0564f0100e4339d0c8ea09728d10513f0cad36542017a512eab5fcb2ddde14a06efb395d9475e57c3245ca1b3356239f5142b74e8e548d24264879404cefd08234fbc90e56fa54540b622f7eeb7e3f1540ad580e1dde6f56a2d785a4bb922b0a732347a7ceb5792480376f31b2ed69dc2ef1e54323cdc98849de918993ed1bae4bb4b994852ff8953edb15190474822d6b0e569322fac57ae22e6bc0477b17790272cfdb426d6632e0582e6c534da8975e63f6e447699b7f0466a7598544ff3ed8662899b25ff85fee4512b3d8581112bb8e0ed367869c14c46c2d3e704fe2f6b3527ab2889f72db8e3b45617a2af174b7f5febc2c071b2d313195deae2188f7500bea7635699bc68bcc1e2e27d7a40eb6b506a14caf2985f33314e52d5713b3e628be36908a850fee34da0ab2c55202d2367f40dfb005780662dfe4f18d5c1154524303257cccbb520f9573562a1f8c91d9da8db67e8ec72ee0e41b7d7ee4d11b399cf4f6d7671cafca10483c74297271a3af7476d4d222b351dea9656d20da6fce986eb81cf4881ed8f1dfd62c2c91c32ba5940dad3676d40e282419a04c9c0e78bb89aa3ba74c1b8f0e9d0f5621fc093f4d8e2697adeba9f602847b64056db1d69a8089de1935e163d20bc7bc9c225e680e4be6a59c239993d746626d9dd3963a78362a304ac4b4645e3436c3367d2448f13427b8d423672a452dd6bf26fb4a5340f4dceefe06197c067090fedf12efc252367273e1516e7c5f98a5132ef1af5bd2cf761faf4a429d6537b4636a0774475dd21a58effa9ca6e049330bfaa332eca34039d225f0a7fa1c9807b441ac239368b58fd538d23b8cd3dd3fe1a9124bc1345e21cab7e49ec8fdb594ba0dd036da2d052fcc681f4e27661f28045d093ae2d4da90541285b012a6bf00325323218573a68003e25661d36ecfb89c6789f0d79b58be99920555be8ab3bb7fe0faccf660458c62b1f6744496cd953cda2948a475ebe192df915ee40338a13a0b30fe256bc01c2ad4762fb3b686f96c3181df93656c82c91ee266093a303365cd0f801f746c2891a1f509ea4b831ad9f3239332e4c16747b66f3a0fc4fd29c87826fd90ddfd03510fd071656444ec850134408ec525214d729f55e798ec9d9c83972cd944928a056e8dc489b4097d605bc3593afc45c083101b60efc298e128e4981481d300049a9255a037008730289c03e99b7604ace629de06752f2e3ecb8e52a97a949ca6cc66b3c3d78f4b468e3d6c52794588ecee6e32673165969acebc3aefc2f298df04e6ee7ebfa682ee808244dedd2422f486e4cd9595caa85af9e24d2207f12686d7c2d5491e7307c638307ec9e579b1368dad3fa014dc231f90a6e147bf5e6c26ce6c8b633c9d3e0b2f77f824de7592d566825ebd0236248bb93569ac581ff1baf3adfc97e5400e6a91517518d15bf33c69565a0b45ad63c626e4c3db66040a1cd59bfce7cc6d9284b65fdf2267891b460b01a0ad28b8f6907043f24dd6a0060d29683e890b70ff0597315e0b165447c9f63c15c10c733b44dc6d5e5d48bb389c85fdc24094252dd3e208e062bd2a8405729d8699efb9d06797d2798485fe79dbd5c4dd342188470fb02c9bc13c0899155d4336ad9b8dd9686048b801904bea85852388f84e7b03e17b88106c755916aa0f3c14158d8e5d57523d1e082e3dcd7f5f726f9c54ac36b80a37142ef3760b59f03fa591e45afd4759959d3da0a1dfc784ccd2c17f3798176c72ad101e1974500495863698d192604ac794ab6c4658dcc1e6119bbb5144cd513047d10864c85ae9802f7a97b5f0f75d7c242a4c631aa17cc74c1388f2a4852bd8ee8177e500155625dee8ec1944a8c9a12821af634c53ad95579bd20ea84fb57fbaaf21882ed5289a3b56012ae093a4ca817a3c76c8939f1e2be7088579c0138125a0205d32da3c76b473b4e950ea502dddd1ecbe92799e91062ca4cf99b170dd7a30f70cd3d44e46eb6e21bfc66250e810d557fd2888debe04e6d16fa679eebf4f38e4386937ca7ac25cf2e853a24dd54b37dd741a82943986623c8d034f05500819bfde90d766adad185f6b8ad52d3cbc66865f88b1ccf8d01e97f592c50897352143a0acd4990d7f2c0cc6c5e7553136338860e49c3350e75f5ac7d35a23b70b04d1b3651676d3d544801a6bf76d94aecc6bf1ef6da657c5ddf40a8f730db8431f4eb0157f75b472583d353598a26fd98e118bf70e9ddf5bef293c20c7a395e44d019d8ae64f3915496f3adf15e43e860a282f618f4a944459d8f146724b42a6d161994e775c6da2ceeb7b54bf5b692bc12681497d543eb36619ab3bc3fcbb4b41d2df9193e12a85fc83c48a906f79bdcf35857b3904cd953d466dd0b335fc577b3c23e91947aabe6aff63c752dadc2be880fc312e56b03173ac50a016a8873a10bfac48bf485371813f16cb3f72543c269e6003ca0775d4dda97df082f106f86a05e47c18fb8983a20d5b6e12182eadcd3440df502db0b4792eea770600dbed890dcd6f4767fc95a0c0420e7dfd2f11aea0562f3c0074ac2b48b24611d73c85175bff9811b81a8bbb361ff35e0a4c157d4e874fe723ca02fbe1ce81dca56644002479361024992df002d100e995c4a1ba51a2784da336cc4c201a4898b769260fdbeddb4791ee06597f12e63a9585ef7d4a7fe0eec7bac313476c3c33055d1c4752111e2a45e6c22ce8e16b618aece2cf5e2a0c1a48ab726bfe1db183b99386bc4e418af4dea39c211e70107a45a423902939127d90b3bb6fc0f9f9a3fe187adbf447b2f1c06be7d4f411008f5880cebcaeb55d2d884fe5569957139fde0dacc922b9c52b6e1163f8740d344df3fa280816e74c15ccaa7e5b56b258cb4d0be74e55f854ae99de80d14d2d83570040f582d6b9c501076883a3588a151282116a267e1731a679e1b07fce8e57eac7a2672627c2d0b7df2c6bdc251e5e02af3eda1478f0b61d580219c20a6f7904dc21bc7c5bf7b82b5c06ef6d4509fa9eb45ca8abb2ccd5d5a4cd8a1227f027a5150e5a220082aee729a67c08af811e6a2b6915d348ee50001416b37835e3b16a4191545f03021fbe49172519f6fca828419459d8a8a140b34d3dd226d5b543765f998aaefe4e552d1168919c93e0d4b686f26cccf4d3c12254218b8dda9a64389e120966f1c01afa06cb12b56099e5491dd3ae59667225d82675c1dfba31d9fac454ea8f0c9c4df1218a523815c565712de9754b15428c393a0a723d27d745af576a315670b970202b76869794c6eab43f854e5961c54ea8016798eb1ce84789c2a4b0127e6f4a8e0c36c468d62fe42c6ef71c74f388bbcf1a4b5d9f5a626d33ea70690aa71c6565d58cb782ba761c0553e7a2bfdd8be2b3cae3b00786bf9c175393f9da83ccf06520e101e064081b7e623c64f4895db2e7999d42495a1a6c908a2ad93635e1d55df83349115262b95eb90815c38c4f7aa38523964a56297447ede8b3f1d834a1d5590d3f5c7ff49ac954b16a7970b9a33890950198cd4b253887b62a26803acf5ed2f819b8c34976789d0358ab6a4a8efc66244889767f6a83d95124f915c25b09abaa6b8a29ca219894ea4ad39adf7589a8c93ee4d8b8953d0d93600edaf2e350f3989b46d9511cb47f2c217be8370e001b64a0887e5c4145f951fe3246e7b4b648ad445c73f562979ff4560abbc6a806688ad89963964ca9d28ce39e2eef1827982f0deb78e3468da82694d314cb959abb5d0085bf11606b9518c75062db4b270e718ca380a79399121bfbf96f126bed0ed230c0647489d49885f0684df7cbf1272d35090164e0195edfadb3e484d1dccf895a8af5ccb5e7c2cb81c2e0e809394f212a3dfd2b97ee509f44f51355b12813b2056305343f7e821b6c3e17714bbe120b3f5210ecb0c5c8b570f1550edc01a5fc9ff294325d012da42207866a09319c34a580189f4e0e12454ce9616c147cb69c7810f0ffc73fcfa9769ef9ace841e006d4c6053c1740e6e8a66af25e26b392869cad5ba28904eb5e03cf1271875b4f905a41a25dc2847165abdf3b57c6e216116d20f44c7e72ad8aae8c3a03e331465fa1addb2327d3f63811b0e84f89e9ba843872e6802915b20b0c4c53a29889c54bf45114e600292df5137969fb5bc93eddad1083bca400a34ee13879252caf07034aadb899ba2859502bb8e96069b01523ea58281062a00801e2530d09897d411fffe0bf84c21c4d630198e7cab332e443d1c2c80668a898fa182807ecc91aa923e4aa65709f7f3a9c02b3d39a0b4220c68e2256bde8ed52d1bdbf9bc1aea3531ae8dda2f1464dcdc8f7426d554cea60681bc97c7f67ad5e578cb9a0aab42446e359c11d8a37061070068150b6f7990f5d729f4e02cabe8a90f1d91622f93eb45d6e9f13fd3eea48bad61d61e83a9115a827a63a44fba11e1bbdcd32f150f90216235f445b3e31e573edda1ca1d06715748fd33b55b8d1d182f5293078fc033d0c8fed04412e2d51a8237cafb691f1aa4b0f6771321fee828a6280660eccb781d3c818943a88b9390b1dd4bf7c94bda769f204417d929318ac8c7cf9674a3581313b01a90fa5323f8609db19ab9dca6032ecb874801e18526e61c61a9b2ec749a8cf92809630381963feff1abcfc1e6c2e9f5cb46b61f72b727af65595d1e3ccb6cfec7d18c012c81961d0ecabdde4b876af140e2d1b76fe3a1d321176f1b92c242f3e8d6ca66a445f11401b9d339a1959c7a968d999738f015dc84f0dbffe492215899db47f6ba830e76db8929b4a3e24a04ead2ceb6b28ca5ab657c246b7a9fb6702aac4d87aa63624259580f23b31a2dc8b5b4f50c71e2053d5cd53b3f779a1386694b70f1c89413cf9ff65ee85e5cb52420f8e5a5713d6a25f9cf8b06c14b2f824c68b8764237cd9fdf6508c6cd3dbdc1aa5ed9bf206402dc8980707280c649b3312cb241bd2fa4a22d67eb13159ac6a5a4e8308ed6d296fe8ba1a70583d9d903b2317c3da1f6b99942debbc65d7b8b44b74066e22826cf4c6d38efb6e4acf7d4be312daaecf0f2b77189674dbe2c1874bc6a43a21ce445f8ff803f9d054fadce55b24e32a72feafe2e2b550cdd4bf9ca58ea58c5f2fd2d101de70f9d563645164f465222058bfefbf4ea5586f7d28b55339b92646d76b6952bc8b0d7a08fff46d9cf396988cfd460b5c4783ba311606e3b8fe4cf431e628dcc2878cee3869c2d625b12096c44e7a7054b138876d3295c8359ffd2839c85e81ff7b6ec17f1d2ed35b303047bf0750756081d2042ddf674ed6b46bf1cb399fb888e32b41a034cfd6d3e701db1900a0d4dc6c384d5370676bd1e417261b97a5fdb068cb519502d15cdda944c5fb6ce6154414f83f6d83c38ac7122579b2501ea3ab379964a338730b63e883424eb12be3bc7617376652cd052fe54f257260761d7ce51342c750e3f54b45a7b72ceaccb9a41918382b167a6c7ee352c2f2c5d7352e8ae44d0c3ce3eecac507ea52057fc4d144e2729fd017135e6d5d33ccf56e2c0af94d8c8fbc7530cf28ae81c229ea1d16f7d593e9fda212ff141c44e0d1eef4d86f993b475c937bfad5e809381b30a8259a2d7fccf6a5a4e1d8ccc3476c87a7c33b1edad6484ebdf158690095d23f1cd2b0e8d8677b3bba9ed8cd515cdb4883c377281509ab6b0201f1ab21098c215e4bb9f80ab6c4f5859b28e128fd5ec9487a4c771a42e9986d1900e6b0b506c233fe779da7560837d57e02711711d4c9684128aab40ed25e0a3007f422c7f41785cc2cce9ed247587d5865c6ad10b64da503c8a7518ade9f3e25ac6365a613cc20485aed75f429bba5ce848367390b5ca1375ad7c0939483627b69459c512553028b42c522f633953ef8ee5ef86940aa67c6453a970569152e2628586798f241918d9ed0779a38add0ff0c392d465a8d481fb83393308ba46a80af963805c5f9dcb74497aecc2911460ea8813deae46ca408a497df20b33d01bb2fc392c4a6010713201c7af6174d4948c5352815edab6e47ea5e3c289d4b90b3b54b768bc3f56b96c78b863c080c8742151841afaf97f28029f4c597b454da825e38d649711a8d18028adbbf14eb7256c8c77aa0002767428ec06c39a267c3f28f22f95e357abe8bf5f402a37a07dc7aab27a51740b27cbd966efbade8b5dbbdfa51af2fa85799e7bb240e641475a11fab5fd951354249ca4e923bfa43a1860c7fe070e3ed2fd25e6e570135a0ba4f3a720a6ad2e69d4507a97647fc84b4b8a2dd11f9492ff03172b6d1a9c0630e7df8b1690f7f8bb7b0da0ced8e980f7803ce578acf3fbc87a4c1bcb7213df3377c6a14c3758462190216cb035f16436ff933e66fd5a1cb98c6b159ec904d9b21b216fcfce6cdc171c443a990792da56fdc3f9a38e45408d5a556648866c4be3ad08bf8b3532b24d2404287a0104df2c9e02d8fbb33412df51218dba7bb002782b2db17c95582b2da3b8393227ad0567b55d85e809ea47b65a75e5b37daf311db572fa4642f8660fd446dcf627a55efec5b5eaf19f6eadfbd9cac971de83572bd13ab97a0f46e21ac406d0cc4bcba0988c528f6dce865d3c260e904ef6722e74ef4b359e4d510b61a6290ce0b81ebca96e71b31d260aa10de8382a3ecc80fc801f0e20066c8fe40f9539e3d424cc418056322c4281c132946614ce418856222c4981c9b4e7a61acd7e57a914c6c1962148e8914a33026728c42311162148e8914a33026728c49b121a017c4f5224d2f8ef56ab05ecc881cb95de9185a6ab4ee81c67c8679d5824ab5f39febf0e7db374e8ef74771a68a2d17fe20c2d0debb5d4173ca75ecd4c934377eee54676647b02bbe13d5fe783dd9a92b1ff648ef53a323b62729eb752ca8d925c6bdfc9f39de62156f7f12bb89e25a77c4894d1c510aee812cd50114f977810df3da11ac5659c22c300f97ddaa7b7243528e14905e81c67f356699de2ef7a54d5c6fd5390177644f819af5722e41e5fc8a8808df6fd5e948d685442e5e24fce8af5925eba2c79ad81c929234f8326ce361b84f02248db0d4ff15df980c7f3f24e3d1aa73cab14e1e922ef69ae3bf9e75c7b598f47093e1a50e5f2ab99ea3715e85202382b84dbc11633e1ddfd0d51903b0fbc7dce8bd68a2afceb36eefd95dc98ae15907c5f886667979722fab4d3738174bb4ee7ef5eb40d1464c0912005c64315b77c4406f2658e7bd5f839194f49c96705ae0da7dadb3bca3a22e76e91699a82353cf30ba4e6ee3246a34b98e12a9b101689de8246dd5eb4c965b07b3559446872644a1e6556d86537dbeb575b1965f67beb0d38e58a7b705382b99ece24a0a7ba9b66e0e64c16e9cbe1ad7c79c4a75bd1b45b9f1ea9ff063382de6a739bb59ff2049e1f3257013abb8ae0a69d6b1d6036b9e57be46a0d2168a146beac7d1796294e97c3dcdb4fa32c74ccc78c0031aacebb8b28bd01a1868d5c57d04113cee08069306d28575dda50cd6bc6f598e2839063a8a5dbeb7b6cf72442c134f2422db0525af78194267c9ab0acc7fb87583f5335b67d72db9592f1f34281c17ba17e1118b0690a1b986264a77ab7066d79d7ad8da13f7c089e9dd33bbaee0267c3cf42bfa2eeba0e53ab6ac0179a2aeebcea580987e5fb7179df52b70c53d3ffe9c956100763a1bc7604b6c1520a49d7421bb4e2106e797849bccfb78981a97b505912037a1947614389889ec3a3eaa2e369dedd4ecba343d7e3aaacd5bec8667d7addc81a75a1255d875e00e4c4a8698c28c5ade384942d2fa38b4b24c446258a6317504fab86f1c675e57fb7af042ac15248c604c53c2b4f41cd39de742101d9a8a9b997e3c1ff223a83694540f4b347a0e3d0f9b0dd5d767ae8303064acacf2c611c139350dddb74932279e2e6b431c9d83a893a9c23a2b9b8f8693416d13982825e518cfe4d9247b6d2d3ee57bf3a6d9b686d71e8e5a1a06a61b0678a00e32f6cbdc2e9a16647a10683bad47260547d2fb4d6a8ebf8a1fe945a8fd661e55001e40bc19726d6cc40f04495f3a1331a260733cb1e6dd9e3f8db6e9cea7770054ff901507d557fad6f13e288d8080273181bbb09a31c3a31e12a4786d4df3fd404f9e7ae73f59ebddaecabe63e27b8fef07f0df997df9181030f928abed826039186b69cba9d27a26e7e6b855773ea7bb8d66b369557ef9e7e3dc43e56cee215462d4a857310538bc5411422c5fd69dcba08fc0760ea77a452d6a522352e63af6c35f049a33560007f4505675899c7e29e344aa6fc8a2f3ad9a474fa536969d259e6d72b89f15c188d3e9f61a217375260004a4934f41cee0e6718936e6d0d68a2ea3ff8cb895bcedce484fdb0e294332f39b0ec84cd459b4f4eb8454e0e69ca066bbe70328743647543be1c48c7d9f53d5ff138a3df5b654401f5e7c9dd8a55d5ff4061c1bd75f638944e81019f6715d2781cfb370fd4e3fea0c7d5344a3efa32404a5ae3533ee5babb63d6b334a14c269aa4ee286674b24accc5510e2bd65be0466e1669a7aac949984cfb3bdbbe76b5b62cd8a7e95a4bf52af2d8da548e38ea3321b6087e8db8361ffe5d2bd55b9606fbd6b58cc9a53990258cbf8a9e281ae0e1d68f09fe38a96da90f7059a4b927fe48c10a819c2b4afd561f20945a516f5d4184ac119403efc61204be353e544a56b93d43e111363b25b629b2477039af727ce489b9c5d5e6abec20c6d5864d30a33dac2947c1d77a4cf37e38608f301ab0cbdeee08f7523af5065f5b1d181f5d7b018c763c1bf33bbdfda4bb0c429f5b624f47c38683948588625e7bd29788d71fdf255dd127c2800be348c7f1279dbbc664a90b29be7d9e86a7a414d6fa422a6b94d592c658ae2d4c18b8b66b100d084bb89bd52460fb42e73561af2bab2842baac072bc92c1dd3b15654cfd890c9e2199649a82d3e016c6deb443153e6c8bd384b08516fae2c48b4363d5e4a39add5f7144939c7f87c0560328c09921089256004be775ccf8d992e034ff1f66aafff246d51634844434a282ce2a29efca86c2071ae41cee525786e13845e65b0a4ac476ce445d7e7c017af160695fcb8ed1219cd2a5de541e8af7e292905c7b69dd000bab3384b4cc096bc0d474729b04e797433bcc12ea3a87f54fa03ee1e89677c5490bf81cd14f11fd9763718db460a2ec6b32cfd74f9587a7ed42505b0c78573159139c0935272ef6232e4cf248cebce7277bb5e2d8b1311475597ea125d44f20747c34c47bef0ea6c328ab0fa3556ffefa635f8f9bf8100aa6f02e2246e230114ed462702952f8a597dff7136f28f145521504200ab71fbcc2a9a782c244d37a47e4ac74cc5bcd61df2fc517d508f8d73c22d09b072bbe8f1f198324a0a6cf39a7b8cc4690bec47cfc1fb79a6029834558a74032ec65d26157a52f62a40a5490e5fe9e6f21ec1bede91571b6ed14d8b68ff9d3d3c0e63fc67244e9d30b3abdf169a64d8e57927eae7430517686825aaef7bf46e7218c5c15ed7ef518a2e24f1624870ab132eb2cd09b0bbf7af31cdc3e1a09d4b8c961c635290574bcdb30a0bb3f4460bc5d1c1cc034e591d9e242b11dc648b943e908e945116dea80f79c5f108f83aee76d1bd6c6319b99d980fcfc352cf063ab62b5a186dc3873c8d5b2cebafc3374882558f6494605c0ecebe967fa3a8d0da9030a207d14d9ee9960ddf1a1623172d22b08330caefd039f3f1c28390d330d27030598533cc0ee5c03afda932dcb0e9d2262fbc470c8166b9e35afddd318f184215ce37d2e17ca8a199a6a02897d8173783f1a6217200962cb25c9e29f070e9c7db3c19abad35036e48fca67a745cbf6cb9e71ee90623c2c0d4dda96916437286889ffbb6fe4e1e5fa60a5d2ee5bf11c4d40775db0ff608fd1dbae38797daae5f31028b23ea587da2fdd77628a076c0af13fb9b08c26139aa2f32bfa09be6fafe21e6e80778a7bc5f0bd28e99796647d8e9124f5ffec4951e891fd1361d0975c4a900b3ea4779770cd7221d53fe5cad6580a494c57c7caccda9196368db5d37ab084dc24376db1f79a6d95edb143866a2db3962b1d15dab4ca64839bacbb605af4ea5940e2e3c0ae074a541de92a6ef6b316ca5e0deeef1889e3c42990ba891c0cbab1159a0b9bc07c7a116f0e91b43c340dade96d0d088ade85c0221c1dac80ec53de3b48989e45ba1ce90b86341728913c224a45a2709e1199376f2ed25e4543d3a10a451c2331648db4035684de2d8eed72e4e41675cbbb05a8340e8eddc77acaf9ced81bf7202f4e69db3ba3026497d175fbe1025ae85f5c0ac30f83591d3cfa7a1ed6036c2a0673fb38e4773d4f10e5b201253fd1a4a624548f994cb86185328dc7dca7693447e6075e346587993d0c4facec266a4db1e242415ce8dd8e4de1398ffd884563d98ec94bccaaa6e507b3c5a65d98984de09e1d4be5bdb42f31a2b078f57e0b60c0e4ecbcf7ad4d8cfaa2335ea8b62eb1ae257faa183e588da9da05ed14eec1a4f5d0c04e622f9a6a05efe75cc8a51bf11a0e72fc916cff4f561bd6a23967624e46c592889f79b546a94ac37a2f51219762de069df084411b51b0d6e151daa3ff040a7bd04e2818a82c9cf12168112e6c43a03334cd88e82fcce546ae4c685859ec7092cc866941777b30c7021912ce120e74a9f92204515e3d12156950f4a0c2b47719318de776d65599a3f1aebcf8b089a0427aa5e812da5c1b1b10da45589910c7732b9839f483384869a6310e6055c1e6c7421f0960f566d07a640c09441a0d302888898c436d4f412ba37c4c28eb6e299d17c8bbad56549df10f1636cd090acb8ee82cf1c92b77a364b27a136e418661517115d60fe0458109e17e189e83ca6c67749888e85e8e14f67e94615aef4d6bc69ec00c8f40dc4a3b63a23970c00c6aafd4e2ae57a25c00b7efcffc9d1a3fca5040b9b6d68ec99a29598e6c97d20fd015d11884810017fc32ddcdaf662c5c7e6f1209cdad672b2d5581b02a5ee53017d5dca311258a00b442b81f65650b3365c27003fdbdfb054365e954a16e9ca11502c7118cbd98bf344402c9216760e764ed96814988e32e582e059277ab4020579d01e5e82b594d2cba52af5f17a4ec0f0eb9cb5df7ba1bdbf41be52e85a8eb891d7ebc550700cccd210c0aa5104c54e93e19d672cf172b7c7fac750604b7911fa5f3b473016e1399d1dbe7beb10f8cd05092412c33fe3feb3d844d2704e5ebf5a2afc64a23686f001da7cb348d9ec013618bbd7e97c07bf27b289791ae351dc5641a30870eda193ef5ccb6dd52517b7a5ba3c7e25fdb096d48ab6db4c8a5b1d9d27bf62e6bd94a3529c54b9530fb26ac5492f5dbee046e88643b3cd0792de7f376a3a47cf9e53ffc5a78ad1f5f493b89fff44b79d434b7a3bd1155cefb2c1b8d392a937ce8b52d22bd77717994440f132d3773dae85d5a636009e1ba82b63114e913ff22f8126b6722d7c50fd2ddeb6a0005b084bfa5ca2f0336b9d891362842a461d5d1a9717ac731ad61bfc5514de773a81164d81d7fbc4dae92a43fc2f1ab3c2ba194e56f7f43a2a80e18d3d55b680b3a45761673a51b71277bf5b81f8b5fbe78e9c778eaa6e7f125c9210b98cdaef9c2712baf27dfdcb72f000761e88d810a988f3de7cff68853cdc7031fe9fe7a366e20c650c3c36cb0f29bf4ea3e6b9b688bc4fde7b7c1833b1bdc9acf90ec9a337dc1295deb5535492590d108f806747935c6b4d03659d3c519c36af4fd3783b4f482b4d562a0a4db1d6124cf64e72ec396008a2aa4a78d90d7e0fad4d43d3204da11eebd36b308cdd6882fd92cc792e236b00ad9fe23ea2e7845888a9fc2a17c32195cd68a4198b5f31f77721ef501ca97deebf1583ee8c42495d093c2aa00a003852dcfd49767c780bb3de7510fc98bc2625a924bbe7885891b592541dc95f679b185e24bbb035835c2c2175b2e663a2978e5828267995943d3416718a940d831c59e83ca863eccef60a1dd99fbe6f7831ec4433f618f54b681b693944b81b395bd14e7326d27ce3a419646e7e5f6413f1b21f7a8d1a5e91dc4d6eba2a6d375ee2a28f4574707ff9c3686d6892a70914eea2774c564d064e244c5cc92847eff7210b1038a5142e7bc7e0c0d42bd405920722850baf3243b039de4388721fa203709b389fb978584bb41bbb8991750f1eebfe5a7ccfac1d0352695075d5baf4d244a618ee8af9674dec6252cabe9a1dc5783f1a60d780e5536b0e7e5eb19bb0188557c4bc1e6caacbbcaa6ad815309dc59a10518355f2b450b50f49ca0e39a2322dc6aa8123efcd66cf5c575f502befe20a7a6f7125ef81708b822907192cc518e8d4be97fb4f65ef1a4016c9e8ead9ba9f6af22edbca5be62f12ea35a31c8f6444e0c590ee58a1b397eeb0d851245234e6d18c5ab621da33456c042d4342a62f245315df90826ec4e2a156b850c7e1c2113ad5f2ba292cf3a5f2884115a3932e23c181e8b0c4346d6504305543cfb8bcf58a1cb5c417f800e3880d6baad05a5eea20a8d719a929f1ac716f285e1d75fff2257f83289ee42c91168fb808a6cef23dc78ba4ff8aaaf7a249247bf88ba52d411ab189439205a981ec7e577f83834aa71dc148a3165404436999f29a4404b3e12eaf9cb993f9ecc8b2c5ae0bd0e023b9fb893da5aeba67b84ad6095814540cf15b65615ea29930480eeb516159e86267a58f3bd0495800d06122a5fd97d742a10b7a1830f8fea29f9c3ae5adbcac0ca26a3d32513c0d8709dd564363be5daab3fbe12a8e921287a0d1e7104298da042eb3269ae29548542b21488bd5254220eb6eda2c8fda1b7fff800ebe44a8dbe391164c9a905a71d3b1fd2ce0aded407e3ee3fdce58f5798a13fd27530c6d68989d6699d3a1b078499928eb0c9602923a350c7348a0d799f89f57e53946868f4ebd19bfdeeb97202a7dcea27984e4064dc6f23f055533bb29bb051d4de19b2cab87677ce376e01e1ca89f2ccaf24dcc53ef3ad708d8e78f9f7be5312283cc846b59634483c2f2326c821be7d1346002b4a2c5eac3b6b7a02834e81367edc1e3823a9a54d2fc99f8daf612feebc80f3463123d73873f4c2482425a9f5ce5be3e98472a7c342515e028a449f4afff0b773db11527c94c09b87d83bffe194de27d8012938db22956a8c1d0237d8134126de76593b0a7c64a70e35250fbca2b2cfa300e481b76a22686c2ddf2706d1f9a5d4d4c1858447c9345669cc8a22090363a0434900ebb22230ea22f7322dd938da8554be87a9d1aa1842140afb71fa3f0f04bc36ffb2186ec08a93bd0f91960800d3cc6a411cc9eeecc04e8ee4299a83433ce84c41a6d08aa1b1c69ba3f675a096441ed82f9c70bb88513400148de36110f6a7525c3818d38c3e62cc974a3a8baf916c7a6fd437ea547706ce829400bca79a44d5bd5902877f6c5077458d5b0d1270b1d1bb47dad4a8de1685fa5c16b1ce50d34850d7e59196c9bcecb3595e077e70dbf504c5ff83d3f1b0941e7efbb86c5a96f5a0fd8d4ae9fcba9c61ba45a9adb8b9b3bcb5a0fa8c4e98da62c74d336b41e00c023d76116223b718d800262226dfb1068c9bd853313805d19866be2082a4338195520715bacd06f3f53d65991126264ae05718f7463fa2d819d81ffd5996c6b9fa87ba7c2730de07cd541ddaf2ee89e29bb1d675b0208d7dae8bca4bef6096eedb9ca6ec2e9c544bb253284dd547470dc9038edeb3e130106d58c3956c2384ccdfa49016e5f9cbcbd419f73665bbbbb7d70af3b36aebe9d986a9adc5bc0330b727eae3343a3f3913492dcc9e9a61052372743af800082cd296ea5ea352177c3d737c8d8315e48651a7ddafe7ea0aeadb3cf0e2ac92ea532a161391e5cc1fce6e559a738fb4b171820b194801c54ed45efd59910af2ccea502df8e2ddc52254f379558b0924ccbfff08cd55793bb37d93db12bfacb43606b3404570d9efbbd862e9ffd4620d36c2bfa05993e63b902c3275560909d6d0551a60e46a41f235cadf9c7290797022c49c030570691af799a92487153f30f520ba20c0e8c1eb308dbcc304d2f53644b37bbc165bfcd650c07fb22d7c758b551fb0610dc30c7a6b5ab20b8caea5713bd7fac6450df39f74c403c5f800c0e14dd87e38f19266d5eb364170249668bf1ec42a8cdd6b6cf2e10859ddac6d985d385a76d3bbbf0dab6b5edb30b4461a7b67176e174e169dbce2ebcde362ca5818c8c875d1a0ea9312c3d23a57911765826fb16b9855d6eaa7ad8deb0cb7fb41916023d4560c7bedc31fd60261fdaf25c9f178d9b9838932b2f737f8b620253cc552f8b68bc229602349281dd09fef302eaf87fcbc8e0b72caf2e678c6ee1455a26a4557f31368e37aebd13fbd2132f50250f1083b45016605a553c9d6cabe64e0b162b6d443ce489a0674763df09bdacd320fb8fbe6565d8a5f1ec08b92245a891ac2062fe7c7e51cde8927a460dd92f2481fba583196ff9fad2e0b618ef563d2cde6cc089de7c1cfc1ef49dc6b8ec19c53ae100c2ab79b6e4461fc75d19e03e7b335168cf0d9a460366c64da54921f6a5e28aa518643056f9021c99aee93ac9466794083bda0710388e29c68c879816ba8c3a61cc9c215473519f4a91c8438251f800d4fbd3f2fc693d1630019fe557aacf250b5ea700d634789982d8d3c07d0e644f02b19c892b5a6cd0d413dc5f041d6784574adb226ee20af2485fd58bcf309596277f7d4688a846e39eb58a4b764355ef55441bb1d975c211e1a470923c4700c3d91c102c0c7b3a8137fbb3fbddb04a538c2a0e5956ac5985a732e41b6ad39e7038d49c01cd7e1779a19b67e5d4d1de220da2799a1ad938a09e9de00554a8923fd40a6fd49f4371077be959e23eb014087b91a0a700041a3f8a43464504c67cce61787c28f114f3cb57b2515ea6859ae443e4c8a1cb694121299c618cb416f77d0b9ee6441c964a62fc89229a9c000c99627aa1827dc077b408ae7a68e112f5e4ada90e1c38c0644469e0feb75902a5d77a934d28c4f890e6d8ea9d033a822fd787fc6654a2f0d5a6dad60d4a2da4e56116a6566bd29c93d0d4e45189550fec55f1825b00ff366b90fac414cd895454dddbde50098b72b920992c57dd76d0d19b21977f4d555e795454a89a00436b14c4661079b43d14b0367b4127bee184179076e077378be9020b15267d87eb255effb0eb72bd71c390a653cb5c65f3e1034cd2c4f3e0f1064f8e19899c9a70e9470c0d1d5383d71b5eb8fefa12678cc183c1c29ec463de9f94e6fb5e15a0a3d43619b29319f05e9567a125138d3787f646f49081d9c0dfeadefe89f26e3f024109fd036b16563b0fb5bb29694d3b17f54633d9903d97c34857bc756be94ae91b49d312c82612f427ce06f6f1f762deef4249a26a364df8ff63886f04d689b6888eb9a6fc5a641e52c304705f4c80d5a3a58433044b00c989904fc8d878bb2a2b20150f03cb2b6838181d69f07a95038c016c40dbf1117c5d4871c41a6400e5b7440087fdb5dac9f4ed0416e0718003cb48d8c459e8040d0c77a88262f3ffb3df098bd6c181ba292efc4780b511db806540ae3c4b4e5f73946d9a02a984016080a0f0e270d00517044135aee934632245da84a9be80a9d8b0c71c93ca4af34c99fde7a507d383f9afde024c3af372fac2cbffc1670b1304e0e8210a097eb7d0228fce12e608e1d1431412fc6ea1459ed0b0e025a64f6855c8b97ec0452bb7b5cb92827148af7090de954ebbafa647a6b8c0059ce6a0b7a8abd9b5b3e19a63914a2ea1e91b58bc639d224d29adb492ad3320ab54139e15592c2b043f54ad4ea8d8e57d07c4e2e990e8c0f431787c23e226ccde37832e9ea73c31f86be92740c223a5b4478cea0e24b0d2e06962949af8dd2991e3425895a44ac6e9b42162a881ae06820110c6c131009a2970c64131039e3170864131019a3150e6c131019e31be39f051ccb762c2d7bef9ecbb7bb4d7f51709de1ac27c2760cfe846286f5f1b6790c5aa23e69b6339f8cfcbbf7d04355d8e0132e614b748fdff5637634eaaca9cce6ca900fcd0238098ab283417b7e7387c3bcaaf5ae07cdc1ae3e0ad30376b8173716b8c83b7c2dcac05cec5ad310e2e2d04b156099ad8d4b23d02dd3bb00fde9948993d1e1888cb73b724be96625912e86cdb050c574e686268af834844cee803add9e3873780abc17d3cffff363ceec814e0fca50f7721c9d34caa153586f5f3c16fac12716e2602d3fb44839fa737d77e195a39b78f765e68754fd333d70009535a823a0701950ce70d64bb0a6a25b8649da44e478bbe61e8d4ab023f1b1258a6fbc0ebb82b3b5f1f6b75e4825d5634a29d9f2e52f79a67aa8c97d6838aef9c3b5251453ba10c84a19d764024bd6b778f74020cac974f8c640b2c2b46dea6cd412c8b0dbd02068d415a427638bfd3b40cf42eb70596d548b059ffd826f08bb0f269d82d068e82a68faf3ba613cf6a49aa2920b12331e0fae32e6726cf39661cd5a431b070a6093be13273508085a359ae0c70d31284640f8cb8527dfe7a548820f8d98b82676e4ef6a9fff3e0c3d6d5608b4d4f0982df1d37ba62b07adaf0168e18a6ae99769c3c2b320f47ecae2bb47354b0480aa1dbe611c55b40a972f55512c5a3fefcd10a0092b4523dbf5c76bd4a6d6101d1a2a4f55f2e9ba0f6d9425647a7300b5767a549f2199e3e83357411a442c2c7bab1deddcfb3464a56449cba7dcd51baf59d7e5d2859cfeeb334beffffe8856ff0ca14a265f111743839b5c33a408e815a65619638e0e33e63f1ec6b403da279c4cf8353ad7b4134857d35a25615aac85e41bbd9cf34f1d718d4b840132103f530bddf40c8efa897a20fa980773e12ae9e00c030e416c37242a3842fccfa8730131b9ced6e8ba8687141798607e6cfd9c544e97e34d0cb443a91099efa95bad840f4d115a311f328ea9c36e09899d60cae4a7ebde3ebbbf1e3345f6bed10ae418495aa0b2944d674a989320441af1d070fc5093430c23f32701ffada1092393da1269f29ab3f16fb2c74d4a29c58a12bcf5427f4fa4845a2176c38cc46da50a717f46a4f424a3d1503e3ee59519af7d61c4da863d7d0212d56eaee28899b6b6321a767c2a07f65e45a3c244850aafe005acfba812da09529960d6d94fe90b3fea0e6850c45ea7e46f625970d93c372317f700962eda4ba3efbc7aefa5079de634c198f145c47819d8d0bb5e7c320181a7ae4c8a7c8dcdaa9bdf7378d27a826f5cd9beb0890002f0c3774e74dff37673080fc7e48a5058a365cf521e96f44e491b994a4f8813e59a6142e4528f2b22a670515938837ccb391c592913587ae1faf2121e9b070d98edc3aed74c0978a8226602ff6ebe07de1572ab6f44855ce740c24cf92f8d83aad6b2cdd7cbac967e28a4df70503d35d484ed12cde84f06b202f1d900b5344bb0e946b3841ff68ac9f1bc46d23c3bd8932471c34325f6d23d44a796dff13ccf92f63835ee6858f2c77a18fc3852857b83d83606a3a2f67bd8145b0b81e568acaf0318830cbbe108bdea53a5ca1a08413915acab4cb7b8383b1e9e736ac8fb37b5c0734767240e8f5b989d5faf9c4ad66eb44a43e37014fbf9ff0d20c9d80d1f7262ef4ebb800716f8d823bf7f5f6beaa9c7d08f60f2a0e4a05fc080f7af996ca03857766582846013f90470f4a5b579873794440c119c82c440a7cf37e7ba7d7854155709164b8484c174be8826da9d99a72e7e2bb44cd2b28d175b659df943145d2123e535f5e6457fdf0d3f554e0c21688a3482a413a3905268843ebceb25f67edb7d3dce03d1ccdd6c9445f7d52b92b4aa1ae0e9b623e5178b99e27cbb3afd951dc5b93c06d7ae2b9cb8c03f1de0737041cbf405ff4e08cfb25bbb74632ef96ba99c68700e34883c2c74bf2515321503042696a80abdc1f663879b8f484c477e0480ef297781dee73d198810ae57676e0b17741cc34128da32bd5923b02a1dc3e0d2281493dafb48743ace40fb7205472642ea9ef2b93478eb8b81f2c716b917b529f18f2d4f4ade124eb27d5dafa7f56da9e87120b7877f0416a8013ad84b0fbfb877a347bd867a45904abbc8b4b8d704f4c79d185c9b5deb0e85e8fe57f8a881c4c8c25c65b2ff3b2d47ceebf1b80363c6023e0fdfc87af0cd2fb110d0ad0680091c61b4559480ce237e10017817ca9a003f522e9ca5ccaa4f5eeac7110617bb1e41c5701c4029fc39be46675c64fbf14221a67ec820f390723ebdcb3b291b6b3245fa210219ff238cdedd4bdb67cb286050370c34837e3376f3e923c1e3d72567893118a1448af0dcbde8c91b3d1eb0526d3367bdcbe4f70f1b88e0fab9e8202252680f017392ee3524e963ed3e5107372b6c86c839afa2705dca250d3032abf05623995782ee3ced2ed51f93f436617c297e6f36df53ee4c041614d5f0518608081c668b1cc429eab83600b285c081286f5d96d81a85ed2a671c7dafe11804f821eddb40edd5bdad3007c1bf81b58573d9a55d30f3167b2b33973a392892def55d798ff3ebaeadb2ed1e4aa1dabb574b79c0aa883d0a6e276bcfd868812209ac77ada9c02693a06644a77985c24e5739ff9473aeae6e90d66e1f30ad18f2cfb3e1a55cf2c608f7dd907ae908a698415a27eb27bf5112b06d3e29390183b4d0e10276a75c0988788f840db376b705781940ccc32003e86ce1759671ac999a8d33afc26aa35599833986042c9bd89039f6a46b73078b3c6b38d522be1121becbe81d666bc00ae23ec6e4e40873ad458cbebdfa9bb99bdb3d3a36940c860e022dc7b060ac0de7718f9cbb4308fc5d913e8171c6e052fc173d1b40340e5f74f730e655463c58678999d48b76acf01e2705d9c6e224b5cd7b7227d303ee42aca0364e50fc35502fe3e53176ffca7c72ebd0818def39ac75e55632523509f9ad545dd6749d96c0adf87a8e074337e70b281e4a7ab9b42927a9c394e1d17405ac2ddface1d9d7ced5e2870b1cf772a82fb58c893a55e8db1a022d6010cbee762713b1acf53814555d29313acc41dc3427e5b69f01ec41046b8108b5f260a7c333d02be36d4cdfe0cb852c2adabf3fc404ec6774a7c610f5b0d99aa517593b7546d05aa6f8d0238c58317daa9f7b11a74f2df80ff6a091fd0dd29c060ccab0197f07602d64e3876f4374222f649ccf5908602ab8738152824b1aedd1f79d6ca0e31585c2ae261454635180de13b1d78b83cb8c40ba15d6bdc51158c4929854cd6b8fed251087b9a70de7a1c757be64cb02783c1c5960e926d4839c509354320b24c4df86e4f266bc1d3016e3de72ab01e8d5f5a435a5930251208c6b9c7c50d27648408625a82d7eacc9833ebcc88ca1aa130434db2880b4773a185b0c0d3bda6b24a178fa2b8a19c2e293fb5fbe0acbb07a3037e989d42c5b9fae05f39c6a72bf7b1f2d5fe7550b2e7346cd4fa4a98296028ff3b853100662c6f8a6ec96702887203417f3bff2974360c5da352f897f5c4a811292ca032e984d9c6ec9f6ecd8fde9cf9ad5f3c61c794416dd9b8988e3259184d6e6bf1d0208589efa7e119f672d8bc44e9a7e3aa55afdedaa9fffe15dc0326e988409709c8b693438b335a36651f22fb913512febef8e63b854702531c71f8b70cbf57d88ce7ee33c8341a08851a59abb9ff663668b48b0d8486f98722d44cf728e460357a1844cf4f0facf355a655c995a634565a93947cbffe2c1df6f5730adbaf4fd37561b750f3c7a4889085a06506217adf4f1a5be9c22b730378a0c07c2729c4f65f6e64eaa773828395ee91320da0c792ba7e16598a5b79b58da06b1e7d8c42657ff9137af5cd5eee297578abe530c356a3e8195ae9e1853a93d6f6965de5dca7922b5567bbca0d713d3196c5d6a43bcaa36bc6d561e0ec4814237ed8d8ded38f72fedf569e04afc2251a619d9c559249fdad5463a2f45586a0cbc2a33090cf25d566ea52f5b8b9be4bae3de13cc1e40286648a5fb8c4ace6bb32e80daadc6da9e280d5518f27f06e8d34a1b7e9922d0700eecf87409563b24914ef13f2dbff90c333af30dd0f6122a9bb747f01f7390a6cd4051eb8260b8606db2d8ec00a960cc615e18fc952f21f773254d94637ca9ce3a371a46c1dbfaef7e3235810c8944877650b922f0bf2ffa66391abcc9901c95fb60dd2212de8523fa18b13e8064b7d5098846905af08b38e2aa0360883612538d3384032d05de32fe1886cbeb2841fe8d8bd1d230e6d514fb0e04fdc8619167e6053caae3c703372ce58820983d249428e28cc8b47687749e8bf44c3a3ef6b70632dc0ad842856e80310c3531950e400466e35f7c91cdb711a4563511109ca3a742e9beaaa777b6c16295ca7595e7ff5603446f4d8c30a51b9b6073c30b6ba8dbfd1912c94ecac39abb47b146273a61a938b24819acc08550d48647852ea206d3d96399b6c2b1a767b83ecd35b5fce52106185e03813a853f3748d89d6cfbb5fcc70af9f6e52c56f3dd9741740aed76965cb94692e18c3454aaa94bc5871a2e93c203d1e67ff7445f1594efc0ca86a7cd26985d44bdc093e29a953023fe17ed29cc26da50153507ed80eb54dd9ea756faf097970b2920100f71761a403fcb2fa5a9282479a69ccce015301402c8df89e8d2d4f6a55e684998f7dbac2b97df8837cbc84022178b93f7d014006c494ce7eb5b56771e47e0da8af608cf1123420c86b717b672cfeebe12fe57a8474bd55f67f20a253a53270d66be202e5d0b2291eae95443e035e30ba08e60b2e9ff390ebe67ec3e6dc70d907ac08e650b64cac197454d6ae34b1a0dad0a78459dc4421ab61694081ae748a68e38cee873a0d029eb364e8ada51072d9b6b1c208d08dea48bd1190f81ec7456f8ca69081631b67f28f97d5401d9975cca8e33d590b3bc0334540e6212ebb890f250f1bfe39e47b01cecf05f17e0ba2a417e47b7cea42fcbf3e7d1b45fee3798bf41bb20cd67bcef9bef4820a79a4e331ad5f5ec74939c6836b7b6bfca3f329a3d6adf6ecfaea5a39417d0524f95db13654bb50011de46f930b637f9b3672ad63983f7b679e38b227d39923d122f2338a7cf1f8d46eb14aafd8159b1775a7cace31299797421291a9cdf394decefe1e44415ddc8d6acdeb293bcc122eadb1f14254334f9c3669fc739416eb202aa2902a7af4e3111ec80017e1d2cf6e1cd8f920f6bfbcb3f9070b3bad13eb060d9fe0dced5f6ffa35d4c79760d7ab8a714b18d551608587dba349603e67047612eba2cc4be8ad817037350d94258afa38ce8aae081e661f51db51435633f80d573b41966482b46a7dd760500c115a889010e90e51100d967bec0cd3f4e445e6c6bf4b5f7d7437b0d4c8a9e376f8f068e1d2d71123fdda1d1dc222fa33141a36bc9e1bd87c8365e5396fb5b0551e4bdcd065fca7c7e522a538e8d1b4f172898f3623775658e2e53eec81a70f8eee4b627c7ad3fec22a5754385815ea2a00466b8eb40d009d85a730dd7e5b6f46ceee0f7233025d6d0fc4687ee2c23baf2b7916fd315a157d2dcae6b2e80d49ea625762e7a2685d2eb735491aa803a727e57b3c294319fb2f6ee8c67ee7659a8181bacf3e4d12bbda326d73644a6bbb64e16644b485fceedf792c57331853a9967b67608a7a17d6c5c860f1c8dc750818c0845a94fda3f1297a8d253eab459370c12657441b2b682a800cd4da4c64e4fe2a48122019a0841b81500b2245e363e6b95dfb019620df724ce62bdc9b2f4c531a66c673ba8c635079ade8feff6058ef57b0d7972728a663c57392168b68eab9ef7ba1d627a47d508da8322576eed774fc5c0564ac0f061a1bfee4bc8fe61408dd51418580fe84cdfa177f59080146495ce70be104a9d853babd07819064b37db58ecfbb438930dfd61cc6123d90018da13373a2828da38a0b42e733a3801904d9842f443919b8f37ef71851f24265ae5df1b2627e983b994d5ab797910b9d418416ca24124c18449cf777fa08871c83a6a565ce1d3de9b468f4c7a29e004c3fb024d0be6707a3d5b8d3fd45996745ab59226a2862411bc48673d5b1dc7c42e7a5f7dc1cf3f5547ca5dd92ce7aa082dfd987621bf8817825499e598f202a6cd840e6f3c9a49751ca4470f39bfae51f90db718f4b67ed50e8f914d631d4c3f4491ecfcfe6a6257a9bf46ccdc5c78160af59b1e61eb14fecbac0c66d829ab9cd6fb3d301750a63ebd3c7d8e049ccab6dfbc907b50854a8603a12ab4cbf643fc4a7a24d9e397ceacb1ecfb2a1428889822f76167bf62ec7e81b26388066dd760077b77ea503e2a96eeadb71faf6bef8416c124f46d6f1f0bbf23a13f890f4d7400725813f8909a74a73f5b6e7e1e280ee014e697ebbcd62a7d6d14616902807781aa65680dfd2868782b31e0fadd68c184d5d6c57f5d11436a8555dbc9627651869ea6d796f057855c862a74dd8dfe66a5dd3daa0f5d8794dfc970bbec34f2407c80d5a82735b8a44622b3b8c0671b467909fbf8a6385a15a01cfd4838f0d9a3dfa87a7030379a52d178fa8137b15a2d1ca315193529b83852e595c9cb99bb338e3f3c3132ebc03dc9323faaa9b92407578d5ee6aeadead3cf23b2f71dc68cafcad3787651cf4eebba5a234d90ef47819b74755a2e083a6f91573c2d59588968c3b5a84387ec5e498defea88be3020fb4077233ed54d0f87c467cf304d3b94c840b9de46c335963a6bf7cf775ee24d71f79359439679dccdd547f1ea773600e30b57bd12b874a846b2659f35987ab8f8e8e3e35dbd0d336aa809cc52b8f8e2919af30b79a6a1890e57dcb4054dac5bc9e37861c2647b379192f09182f3d37e5aa409796cc945a3fa028e016a09a37b514f2b53c37f0c96377605338219d67c122d269276b02f233291277e67d05c21f1895f5400a60b15d81fa75a03dfebf836868333d22787ea7f2131d8cd318a48641739982ec2dcff25e30d4669f18e98d3cf95af1e7b1677e6c0f6407aae0acdfce4cf0d57c809ad3c0fdb06f2fe9593101b7d1cc2481301fe2c1a88555e229c167e924d6284d983f39de3b05e6c5c789f14b252b8077c684f991595ceb633ae5cc53f80cc58877b97b17a0874b43877961093fe3d6a6b39110cc4bcae803e8bea134c163c8702f6073ac539478a09c784265fdc6257a9b2b84d169856422a4688909152d88ef04f2436a34c33f1a8d2da41864c1a05ed6c29c5d28f2f28072c6eb1930b589c63b9aa45b67d44c07d9c560fc8f0041952ed27932d4360210857430b1d8347ba59b2f5d579882dcce666407cae64ed9247ae3e2cc79bebcb5893665cd8a7448cf3ab7108e971fe31f87d1b0ba939847611e4619c53d3ba3fac5d6b71efca6b50ab58e474c90630b9db80829e6f845e343e3d81a9e459ee573a24c63371ac57ac79bbbd2273592bdf33d6c1e2c9fd172cdc98710605b045d3d5aa3390907f4f189432ea2f2609a27edcbb5110c0ae43803e1d5d2992cae6d4b3cfcc57a3986510139ce0ca9a1abacc18b9a1099d4ce6f4433a65d39db841889e09907db8d5ee77129e50ebe4bec32981638faa35264686a052226cfed09c31a7e9bc4a2818c007c0bcd79b3189c3db1b779926b0b63fcb52d752fc2df3f0f8ffc6fba2b71c1a37b908a1dc518aa517404ccd4273f926b41a8d3813804f35641a934423075dd1fdd401da83c96fb5f021e64ac03faedba9958205a55710e191591500ea913b0f75880c3b762389351c57641e518965f2889c369b76114e0e4864723dd4e2a5702317ec3581a64866168eaee2b746551e4553c0d82c012c72092fcb77f55af2d3ed7767777f796524a29033809b409b409645068e43deaa63963ece9421c139e6e5fd2c8c3e5f6757d4fbc83d376ee8b5dd79a73cee95661ef1e955b23615cd5497cb412219ecf1021bb265171b5a83eef2c93d7868376545b273171e68e30d6155b18b42f1eadb5b6565b6dc53b382b38662f972338ab46ba33cfaf7b4035a78a7b0326b9b1eb534c41051555549144c9ea647b289824745ab77941e0f77940406190368176fddaf5cbf1f5d0f8e6f3ea20097af53145b551746a8f1e99ff64837f82d8fbc090cc6fdaa348e63ff73892f9cd3d96a53d9664fe72937b34c9fce31e4f32bfb82b2d7fb8c13d9ec8fcdf1e51647e6f8f27647ebdc714dea38a64a1a44eaaeaac31d7ed795ba8e0cc7b059638b067ff5c1c3ff43461708277c6dad561bbfa984b25a8af070573083dce21d15e9cb5f781a1389265c93c4d2627d4490a4595b262bd607e3b0ababd5c2dd62ac5df857141dae84885923a419d1e6d599c971484712713d3e9a12a66a924555656b84f97448edf0a4b8a75f4a5dae0d10e7347a91de67810e65076aa25b56baee6bcb23da9014ee7c479b3078aacd2349d4e5eb56abd56bc0a8b4bea123343ca6a5a90b71b748742a25b94a4d3e9743a9cbb5da3dbed76bb5d24474849bb97abc55ae572b95c2ee5a65a314325817677de543f8e4b2f90aec808c9914ea7d3e974381c0e87c3e1a3dc0dcae572b9dc1dca5da2abbb452a149d4ea7d3a570381c0e7782cae572b91ccccd49678bac1192239c4e87c3e170381c3e4ac24747f7e24e26261c0e87c39df8081fe1239306c7c4e240a0203b94f341a7d3e9743a1c8e5d1c0e87c3d9226b64911c2199259d4ea7d395381c0e87235bb830f98077f696939292703a9d4e67816c901db2394b448e3a9d4ea71371724e198873ea54453909c7d2d45da53a4f10e94c52f90d3cc59cf4793949e7249c93720e899d385f9026a0f31aedeb3a48664bef1d71aa11c6d508446dbef54eb9b5d191d3ba4d1bedebe38b52dd29773d72c22877f53106798deeec64571fc5b0448edeadc619c69c6bb5155b9545c26822715e1f3d4f7b682d8105fa2c52ce21a8b1d6e5f08dadc2438d848be0a21b82b888cee9208c873618dacf668b6dae8a7ba39bd0b910d5397c243f2ebae93d731817b9a9c645886a8efd61936c5a073be7eeecf38c23f45c337953fbe19e184d169ce1676482a74ed237ac3a1d14513b53b9edb2b8cdfbdc26aab8adc4b23331e6b655cee8751c81c0372f9e638ee2e2ab97d15d468fe9dc15173fc5474dea2ed4990a5d4159d00f55115116eab3448a23e13415959b2359bfafac6151d449ba0b75b6e2d93d16b76930ec3c0615b76933b0dce65d20c56d5e06b6b7819d3da09d45bb7b4e5174d1343d34ad9b5ecd746fa9502709ae8c0e82199735d34d6ffc5454549c15963a54ae22ba698ede43f453e3a4a49b7a2b3efaa7429d649a8ee688b27c74b1d4a1721305b223fae9e4f83849446d26eae297cbb236963bb6471cc7511cb128beeca6620aeb6b1d5de56b4d531b8c3d3acbd73afaa87a9c2a45eca5d8a38fa6ab1ee7a6a3dbdc7404c1d1b3df233a296b25e4288e1e963571343d6f13b519b159de66378ba9e23ac91b7267e30acacaca8a9b6fa2b29b9a28ce4d73cda4d7272e507467d90623c5457267367db43378b27cdde4a36e1afaca076185627e3e8fdd2ad406204014d406dace8c1443455b56bdada9e92c9f6b3afaf72059d3d1597f56544d478fbdaac6461fc731db9acd9a79f737a444ae899f9b4fd0ede6f399a04b8f2059efad48ee355f6ecb1acc6dd8172a9ebd061c75c61243b9a04014ca5954409798699a1a54691157b86ff7f189dbcf16ddf7789ad2344d5b5a3c5dc1c2e23a77a672bbf9fc802c207a45d3479d3b9ab4ca8a8f1f913b63f1ecdfd0bd897976f0ce44c749541eef7237967dc55f2227749ee9d955743e0288ac81bc829d4b906f1903f9a6a2926f2af9a6e236d55e9157b88a631616f276f3f9014d14751d6e9afeb7682bf16e9ecf9d8978e5e66e9a7d85ce9d99a84dc54f2aa8d5c069c3597996c7494ea4cb4decc56de14c7fa1a6f905d562a8b1ec19fd00900baa8118ba64e79c6467b2dbeeae5ea831d96d3aa9866f31b300db72c7c431d11ea6bff7c03b9c0445568db38ab3a0b8ed16d95b90272249e52b7aaba04020916f482a9ec395a71ca9f4914a05d549fa88c572501ffdcbd1c7e1b1db51183fd64a26e9247aa795dcd335b9a67b6323fbfce072d449a08916e9a4179a6f3aa916ddf4187659eb249d44efbe13bbf2b6e9a494b7a1c27c43c99e7a1b79f2365576d407f1e19836f00935292a43928fe5be78c2994de74d413283537c99049b30d6b1d6abc1f2466cebdc14df59ce3abb5fbb25707364bf2ccf5537c57ed1d6a7511aa02b118aa1185ea0db69bb44bc4ba4e6b8a0e658c79e12397b36ecc0e10a21c9b1846de9e692ad67db40e2ac37a571673037cd36d2d45da53acf2272c9c9fad0943c830ece4561b49ea6ee2a8cddcb169cd62bcef5c630089ea74ae58e821883605963eecd472ce8775685a831d66f0d8d796a8eb515e8a63c35a71eed1e6e9a1dbf888350dc2d4d2938470f6b8c9ec4c5652d743305a7ad52613db3aa1412e0b9d6e77ac6e1662970b8327f307b0a93336a3b796a8c759bfb5830e2120c8f10307ce5de98634512d69aa4f33ea623e134135da254e2921035e76e6fc4ad7705e11b1b38861d3c4f95a71a0ddad8f33c8c51242277e82ae162f43cd206bea9b35a648bb0b548f67895286b1e6a267189dc19e8dee79e83fff928faf7361fb26d897ca0879f77e92ba13db45f226378fa906dcfcf12c7490c9410833ba4356aebd9ae1f93dedb78ecee91f6f07cccba04deb4246bf97d6459fbaabd4af0582237c5570a35065fd20c67765d4792ac65ced9af127f95b829d6a1f7c86e3d04d11bd9f65c2a6e4a9ae1b43b22978a9be29b8b84832393a5a93b11221bfb3d527282d6f3b3ae927bc37e7d8e2e90bd4336ce5e83a0c411ec3a8923b084e244aa1689a502bbc5d841105ff004b110294eabedc4d1f1c103534b7da55063d8b1b07117f639868deb3daa31464ecf3888bcae2b944d38b3e30f04ad97a8eddc65798573fc746823b756b5c4f148bca6697a8dba4dd33fd33f33f49e0d82e79ba028decf7e9fce1eb844dc5956a9aa4a55bd1611c5b0ded9751c8279db327fa17fa1275abf21f4e336f45a8a1f29d6847e9c36ba7ea1f1ba2e77ae872e5ed7fea1d968d421610bb746ddd771be59c7d64c24cebadf6224acad4ab6d540bd21415088d6d65ea2ebf9f5ac07da258c2318b0d7993de82c8f711e9654636864374143a62b1c99be70fa7553d2393393a6ee2ad5799a864cbb7d5df6acd56ea544861070b5dbad94dc64b8b016c28ba80005881002c8104086f8d2a1b4da5b7aed96d56eb51b028810cef2db1563f9ed8a41ba340fcf6ae7129b3163064aea6406ea3463866cabe8964541232956bb222ca89e20ae4d011113141a8a0e0c31819075c66901ea43e7b67614023a0783b1a6a7c959fc4dfc5f7bb01594d48bb54a5f5a62ae164c4c2a95926a158b974aa592ceb9e4953c0178b98483837370439abc9436419d56380ec22bbe569a1636387b9e795f6f77e94c5d88f2eb259b91d93a890c843d259bc9e5ce0b980dfb5a63b2afbcad3335cd8ef27ab3a6d9597faaac9a66573dacc6e4b1a619a5a667766dba86f1b23ffdf50365b80cc1e16664c0502726e4e747262614778a7df02d0686469a5ec53d221cbb4a762998176d7232a5503809efc872677ce29c417a1928e673502ac5e4010dd27b159d59d658e8be476e8adde48160ec284657afa6b88f8f6a2f2a8e8e6e156679912ed279d620bdfffd7a8c044f81a96841c2b12353779e65ede416b929f6b3bcba9b625d8df4de31153b7817393115b88a9bbe507c140493f4fe25e32999eb44eaa84b84d33f9d4589a3e4d96950e58ef6928f2739cfc89cca1d1ba4f72ed40d7d82031bc8d3a3be5a815e9cd0fdc131ec2e7f8380d23b94b275ea29137a6f28a590ddd99d4a6503e9bdca26b14929aa1ca4f7a91b48ef4fb64e9d94250800e93971535c648424eb702c2b41e43aba293e72b94c20943e0a80f4b4c909f503103c5548764be7227db4b00a7bbd06603a525464530383f1388be874352c5e30f1dd2b014873b358399b3880395ad1ff4c4569bf7c46ba31ecabcf4db0502999e8246327346a8988328d0cdc19cd399028d44dde5dffbbf7e53e797d6e82e8a679f5b68914d4e66c4e259bf9c19903e93d89e2241cc34868b9136e9ca4d361442100e9a550bc07b7d681f4522805204dbcadbf9a5aca5a0a8a916ce024b7e092b69438f086c14eaf2959b4943bd94b27a9d4494a9b9c1c55964067c7ae9fc60ad5d1e51a16698cb4e789c7ca1a8aa75236e9ccae834fc60290dee7edac87f142715258d0a47238863df6d9f559f7b9888bb3562dae1df540c09d820ab5f8e981805b850aa53ebabccf12d9a526715a1a9a1287e7da65e54ecfceaedda5dc79a9f696ccd07c1334c5d963ca5a4663e58e6e2941e083f400a4f7f7c507d27bbb354c02f01429141f9da018090e645e623ffc00fb012575f203eaf4c30f9eeb3fd1920d3dd1f26d791487f25036f23cd44745b2f378841d9460679d2b92002031d6151b4bd0be3e22092f929b5e51b7b1eb24e777a7b852dcf4be7cc6bb9cc6b758b068683368d476562f9b81bd80897969e1c25f32e80b1797bbb06939ab863683466d67d59ae12dd7d73dae56ab9567a25732af6785ba3c0f87f901f8cb0bc0631e076ff101709bff1c5cf60470165fb7cba02f570b00cf4a628686458587bfb91dfeea2ed12562a9a951a1a8a0a4cc0c0d4a6aa5dc5121615018bfe3618f6b8a1de64f35c51ef32835c5fef2ac9a626ff1b01a83cd9a6214c7017e7bce52def0dd63856c01bfa64e5a585cfe7f456ca328da926e151595949c7996d3fc0a01df00f7e119e0dfb7601e925658ab95a4063c0b286828b7027b1a7ce671729ce663f8015e01cee23daf79ec32e8cbd562b95aaf1a0d1df87121b5905e481a0944424ae158565e0f3cb0943be3132f240b3894a6ee2a15c6433ba9cd83ef55769079179f296b303edaf3c56b596be1e30ca9bfe6e0ef8cdfa3fbf5d7e776af90f2feb4b079b9432eaee682b26e4017e8b2286f504d0d0b1994054d8dcdcb666c5c60625e5a40c162f9b07e6aca1a0c65dd6a4abb6341b6fce572b18199456a4897c3c4bcb478a1ac24ca9dd87641593f4170f91c0ef336f8cbd7e0318fc35bfc0db7a1f91afeafc365fe72b56e666adce0ccfc6b7fffda58059dc590dfbb6e64c8ef5b1bfc8a6313e32f2f18978b0b8b7453a4940d7eb5ba52c81259a21722a9da2d2b5eb08051e3af18650d36be20710ef00c70161fc3e6b1b77896c7fc0b7f79170ee33902fe87d37619f4e5f2bc858150e039f0dc4f070cf00d7006bca525e06d90906dc0db17a51dbae98d51ed2db59e86bb7e86bf9ec680afb4961fde8370cc85e4bce3dccc7e84e086b080582d6614337fe3b2c7f17fec349fe32c3e86d73ccb6ddef316efc2633ef49795cba02fd7ca5b2c57eb85c33aa150e3783a9d4ea70f9d852f5cc08aa07041e294351734983e17e58ede2eca5a8e0c12f6db679e06194ef33aaed6cbd57ad1487bc238adacc538adac91b78bd3645a36352ed03d0c53e2d0fef94b59fb5087993760f15ef37e83ed74395ab9a3b70b0a03c62661afe3331fc365bff27f1a9c46e6b1d7bcf7c2637ee62f1f3accdfb88ba32f578be56abd5cadd710245be5b6140ee481013d3c2b57eee8cdba15d99385d3286b324ea3ac91778d8f33d017dac1dd8887cff10ccd8759c8d02877f4ae4159b7a219322fd483a32fc483b3781772d3eb34efb71ad303ea381cab415d87ff01693ca00e8463a994d78aa0a041ea7183ffb0a287bd7638a150a7d3e9743a9d24f1b3c3b36e3826043704686766dcafb73e56c8cf8fad515adcf720ec83dcf4ba8d928871c6eb7ff0e1c80710b01b365f7d78a8a1acc5a0ac5b0d3684746a2877d450e2c01b86c360ad76de76b7e735943bd8573ed6a87183843df6999fb9ec6ffc7fe5348fc3e273bce65db8cdb3bcc587eee2322f578be56abd60627c45090f392e1e968402a09b99e7c0731df8295be80bd528887e68c8aa2bafeaf033650ddb604359731a978bb76cfe61ba99870d7d48c012e0c020d3cc4c9abaab54e76962f32c9767dd84b47816aeca6a5e2f9b296b1fc69edb30e2205bfc8ac774f81d9ce65b643ce6a5c34b0fee7a20e076418578f0968aeb0702eed8ed08960fb0fc00a1a0a677264ddd552a241f125b0a177b58fab02437bd5e8087b53c0c4914fdfa8a8705b13c0c0869fcf60fbea99505052c40e5cc4c9abaab54e7e94819b74b6e4be1583796cf4dafbf943baffd288c7563dd6accf517d68d75ab39b5da5bc2ffaf6d7bf81387e79fc794b50f752977b04b0902975295c33492a304018d1b6a3a6af86b475983993700400c8c8e9758dab28265454507aa032575a20375d2a14356fafca5c3571af8759f77863d67a1f9a6ab1d0f5da1e09d220c7f5837d6ed48918831c69966c1ec347cbf1bde0de1b46efb6e62ee2631c2fa3399c81aa773ac552aa37cb30f4c61b5f706e9d36b3dbd267264f672d7321194d347ae9114f706df6bd1aaf1973da00a0494da2012117005539e1645d5aef7f3ba30d6151b996b0213e11cf66e160fd9b656697b64cd8552e8d088d4212ebc1e0eb9372491d0c8d385469e2e34f274a191a70b8d3c1d4603e477ed2d795ec6660e0bb9229d8b6ace0bdf7c6051cd01b2d144b1abbd81f54c71e9e191ce59e106398363288ae10892f806046bad395ead391a5f93f194fa193331c56e7c388608c193591af788226bcd194731043f6f2c95a76e22df7ca342657bdb19cdb57af85a5cf22319eb913cf18d4fe822388a5f6963fe96152c2b3efe297a2a1bddefb097abb54792cccf5aedb1649ea389cc9f3ad9e11f21a2e9499a9e50272914550ab962b55c2f12e68f9239e79c3dafb4f02b4dbbe7587f9ebff4628befbd71bdeb7161ac02c0d8cc30ee9de570d3eb3cd4f4da90c0e5a1ce26006387656d874f58c3031d099016ba0ff6e74ea0ce6c076a8abe15aab119549aeb44e01bfb736736c876a0ce6c0bea2e6c0207fb7ac54ba83330c2be7ea370dd08093e2b2d2883956683eecc8661187e59c4dadb21f8915dd0350c83864d9561acb3be20146acd0161b44a95d6197fee1f897fdcf95160798630c014c70646cdd1645a63ae87697a6dd539dc9efeca2d7a26778a6f44d426dbec6b63b3efacd457483af3a571ff04fdca70cc060d1b6a4e8671d3706314a74c0207870fc6194fa648671739c13b8bd9f5071f8130fd44dd99d08fd34ed7ae6af9ca9d9552207c10c399dd568f7e289ddac59b9e3e80a1589242a79fa2904903d5917d3ad8871f80f8d2add3dde32b7154ddc6288c704684f1ea0cae3a954e6cdb08c2697d86345d4c54e7c6aedf98f779e50da31871ce3632190c1c9cacf18a7b46b554def781a3c618fcb014e3f77d38cc99c4a99c31ea6457591af357a598c21a3876bd7261df7a857d6f5dc2e9b66a8413054df42ca17547a6e9b889a8314f9ca452a7a9ceb0572874ea8c7a433a6a573fa92fb20d6557122562085b6f226eda831d1145d4594661a450dcaa348a3a9d9c3e935dfd4f50f96de8e7f8bbf139fe524aaf298e5d27bfe29890e358175635e764923271506268723a4d53cb459a527ed718e96048beaa143a4f53a9f40a7a63ad453ad86f2a6d444322ec10c6e890adee5ab6cd0ee19b5d63d7a33882c555a415ec8c3ba33ae6488ee50b06d69a931a43f0f3c492142f8a0f8a300c25f56299ab34b6a2c5d5727939cf131ba59e899b39c8334dd3344dd3344d172e34110e8ca7565ecae2230c0ccc699aa7699a2ca9c93c65b69792cdece090dac4649eae639026dafbfa953b59c765080e372303863b26e4e74726261469e90cd2e4555c7f8b119223a42a6e5a84632998171a282dec798763b71fdc132c3fb8a0d690ce6524fd2ae83651e52a725246ca4936489d91aa4872d35bde61939d22b09c8414e3a91893799a7946e6e442d540ea6f999c68161813161816cf2407a95fb54d5254fa53293a48fd27db5b95281000a9ffb45b9a4857e4a6476e8a911c21e1983632d14ee8a217978ca489329226d2b8928f3890fa4d76cb6b24463856849da822c9eea63a1c23ca489aa87cbdf49bb447c260facf22a37bfdd76b22276e6af29fa4b463af77375684a57537c5bae8446b25d6090fb5444499468644a42be204910e9a483ba18be82213adcb483fd04f22252551a27f70ec866355dc74a76f483be80fb7c90e062051ef276f7baf2220d18d6107bda5ac69224db4c2649e264a2a95224200eb73154919493ba189b42e6600939c3d94cf55c4f0eb85583cf69a48eb74118e612dc54d318bc557de8a161fd3343d9de7a965c57ba942c231ec2012514e62d17f5f10e0c128205761929332d20216b00094d4c90250a7052c409f6e32f3799ada68632fc951d441fac806edecd9c0044776d6d90679b7b007bd00d0400690d040109e231cb0001b037af87800047a98800f104134e0870422308167f120be468647e06d1c02dfc21ff033f7f137dee371dcf631dc01ffc2ad069e026e917822dc66e0ed2dc857c079be08b73e47b88068000316a03d002ed7a87b28c193d42f035524cd27c06b1e012e7b1f9cc51fc065bc01dc3fbff91f7cf60a28000630e02f848448800f331be73dff410118f8043ceb868067f9f0ac033c4b88019e85630db9dec516c8df21a11b84634197a8ccb14ca73d9138ff790b199e8b4ff3963b28523f8ccaca0bf1d4d0c3db3a53f3271632501a949a62f4fc1c63c72c72ace1656b8cb2becff5d52ce9964b4a4a8a2bb657abd54b26a69bc562953bdf8ea2c5d328f016b0b7165952112d5aabf583bd2858fe8696dffc0dc7f91c4e8107023a0dffd12ce015f8215cff8a228a70188dcc2dd9e56ca0e4d66e30ed4cbba1a11c5a40baf130221b4ec2c817a942ba484da67e766aae16f6842877c6bdda3dd122f5b3b06e3735ed4c3bd3ceb433ed4c3b1ea8a80c09c19165cd6bd17c5cf181cee25b2ee3692e745b2537ddddf4eeaecf4d6fb7fbe3811fbada95b72c9556fc8ef130252f8a7877f1a0fe03dbdd4a251fd26d60856f170f4f0b8cf573629475a3f91cbce609e0b2e7e12c7e002ee371e0c1b1dbbc00dc75810be4c0e3f31d7458b2cbb90dec057e95030104f0ac212626a76a6fe9d3ffda292ad38a6bbb58c8d676f1f0bce85fb1e0416d118e5d54296475408c2cd24d41ed492e959249c552282ee4892af593fab9331b99237333a4cdb76a50e08df0179fe3868ca7398b9fe1321a4ef39f17f1439c3e0c8e447c8f1bf196666f6f65a5902d41d0f3f606d1b8de85bf3ec70360c4571acc831c08c740cf6706ad052b77be1d85cdd3665f03e76df88b96c700593c8d9aaf398d890b0810473d7798c97739c82169c1a591760a8bc5c2dd6280f88ffbf8cdc6c3761df8c90ded5c0ba2ef60bb9d0aba73a13b8dfa2ef5b3dafdd098418b816246468685494646ea97ed99991a92e5017003ceefc871c306fa2f1500ec7858920c7c48c70d9e732e38528e1b36d03ff74b65c6e52a6b9fbbca1a79868f3372e567388dec3f67f13597f134627c0e87f1347ff137e0fc0dbf791b3efb1adee277dce65dcef2a0d7f03a1c46f3ff66d2d45da5425fae75a02c180c5ded66ac7637d072dcb05163877c699f1f213434342d4896dfe1364fc35b7c0e9f3dcd6ffe06c7791d4e811fc28978206e6f2f84cf78ad9ab3f89d1a4ef333bc8837c22bf016705d441133be1b365e2a45680777e8b821c70d1b2f9519bfdafd4a89efd46868d0f583030a12e2594334305859fb1c56d6c8343cf618ef398cfffcc5836e6f0fc489f82170bee52d9ee6457c8f57e08d70fda51042c03e23976b5acba5bd0f14a2c7080b0c0164b52bbaf9182f705c415c856706150a42030c1a590bd17550ac5afc76f1f0f0fc6a87632c1f21b8218f5da8a01f8a51904565e53f97caf790c3b7e203887f1ceebf6bf8cff57b5bf61548ea4706e4758470700c6707b6c152e2c0fbc32d772971808e3d56eeb0943b9f833ee6e494b5cff5cb36e8385fe3c5df7018fff2186fc3697897cbf8194ef32d5ff9dd72bd1cc9b550d3eb9786db666ce9bbcddd3404330dfdec8bae762f97b6e7ca7feebf9d86f73cee397867e3cd8f3f118b5ef38b5e4711ad6177187a88f6d83a77c4f6851dc370620f5d7be89ea73daddd26baed735bf6d0f1b340f1cb1e0e7f04c13af2d6fe036b9bc16f899124d41c38f2c69e15461fa7eaa636ad466670db3695595d765395108aecbbb119f67519be29cda3d3071b7000a2071f4698c8ed23379676dd0610461515ada2d30d4a422bbb1a89e2089825d8b400b5ab91a20fd07084550e4e444800c50fa9640ba523229c76403291b2ab112323589581b5ab91278e8c3c51b48d18ddaa0a2575823a9998524a1e07c699d37a35c244d0101191cec8108a64bfd6de8a2daed67677053f10ad41dcea40605b570f77ada15261571f7b60b7bbd69c98fdf9f891f8abcd88cdaa01bb6cdbeefe700fec77d7faa24e91db1f6acb20769b368d4e5b456dd573588f98d836ac5db63fafe50da6d1f9a11ebe4683b8db26db42a1d72aeccff5a7356aebb161dad8a69fc523a4856ef7a5022df4cae3bb42ae45f880f63cb0026fd792470c1f1f7cbb963cf21494e031b3841f84bb963cf0145a1081b86bc983256806508c4982e0042390bb963c5c1e70c1901594b7053e5f10820f4abb963c5250a0c11148e6ae250f4b851964e1052658b2e4dcb5e4619202145e708623822c81fd4d5be3c82cedd8593bda593b8eb0b4f00700440f3d8809f4eccf035069e34e0f3074f24be29365580a91ae834b17124931f4d28b4e92aeff474dffd8e92154f2ba7d00d942226afae73a987451a4953c446f22fe20b003c0f4d047fc3832902d14fa584b1e68791369245ae650a2379166ba88de449a888366db8448f7d193c4160a499287597211bd552a68e510a46069c79b553d6fbc77885e8d30a1c46655b41a61626857234cb8608f1e895fe847062df45a737686625063eab6dd173b434375a6ee8adaf22d6f785ec330fc20a167a087765a608912872668a2b843973abc32871a131ca185a8113658c106263862051b988008b4b0460fa1d0ebf651c416ba695aa823e54395954e7a101d9b6c87b51a9d5e69a4dbced2892e81dd636c1b90d3f65185f002236ccf4d4f0a22011cab475e69e4d0166df58924046ddd0307ded581986c1f19e907bbfed8313af6f22de091baaced3822033d342496d0de430b5d973868d0b6f416677538267a69241ee942a3231b6483706eb3414132d0435b02bb290467b5c1d83d809cb60fd80d984083204be0407ac92b8e95d020f786963fdb766f24ea7369a1579a88561ceb51519ebc3dd4565da33d6af4ecea4050db87005890815dbd3e7186dbae28abfa1047b66d8821ec7a84a5891e3e129726a2aceaa2fb80b7db0d7f1037d000549af8c35cb2ab8f45352766003db470d717fab1a1855e4b001c5197ec5ce78a7fc4b78416a2208ed5074b52084b2944f38991d401996f50e21abc1231d828b2be12496cd44dab11254c647d233270c146999c94f8b1a73229df14a5e4a40c52803f73da6e112ae8ce6c57b76f2583111910ddabab39f6344b65bdd6a484bd5a5db2596063f41e7df7a5841187b39e8c19051b45cf5a1c5bea180238bb8775ac73a6c174daf4b5c189633638f8c604e2eca62f7d7ad3ec38fbbca35b94476fcf6d89c3024b962c29dadaf3bab14300676bb447bee6cd27c0335075679507ef1b559795e0dbcb20b97326f39833d069bae825cfa8cd732fe57c82244a7553f077bebfcea333cfc53d257bbd308ef64c61acf63e52e75e9b3ddf9c6dd567eba6f5a6b70a1c132251880087d4a669246164bb258aa09ffef987f1978e63e93f0f9bdeead1c74df2dc5de232832469376a86f2efcbfb3b214b7ff21537cbdae72612741358ca1bf55e63b49f1e85e43c4dd7c1e7978ec7b2ac8d5b7ffe4a37cbb1fc47bd0a49054b27f8e4c11bfb46d175dea26e69d1bd15b7e0f7797b787bee9538bcbcf1fbe9863fa85a9001097659736490811884c1075b7c8e19b555297a68cf1ad5a171532f3f8d9b7a37c6d69d8d6e4767e1b03eba456db6ef615fe7a6dee9ad3bd3a3ad679be011e527b78935d175b0f825b73611e5e4c997dc267a2e394a47ebcebc96b55ac96d28963a50dbb351a8adac69d7c13b8eb034f206782af58ce58d1a3392d957dc667af6fcb98882a50ed0c7920649d77ee2e2dbb27f27280b07ca4b8ef212eaeb064b193549953a469be89fa7507ffae96d26a8ad67f3d80df6281d745ceef4ec33657e8f12bacb27c710ccd7e28b4bd93cc2e9b92d6797b162ac4677aedda82b7a60bcd6cc997523df36deb5bc71deb04b3e881f35e976db3c263b74cc43ee50023b07f143c6be35463b8fb7bf20befa03f643c6b63546fb0fbbc4860aa3fd7b5ccf66cbf3e7632ef3e7b5b4c1dbb9afb36b1f537f7de5c8cecec271dd8d0c39b13f122c47ffc41a4aebfac92d8aeb37fdbec95b7766bac5a50e1d3d78e5ceeace9bd41a13ba2e7564b75ded1a65a1a03b3d1be52c1c2937f1949bb8898f21a93f1f6169ad3b4b7dbd25e92b77567fd82df4a3f2d2a75c2c6be81753bca483f1e92a6fdd59e9734b1bcb1a7a4c3dca7b987c7ebe4ddbb09750f28340757c8e3d7c9c9b620fc52d089cd5c8d0146059438f0f76ad3063e8a06c02f67a69df9ed4155b301ab16fcfbedbba456d46607cdfe29859c20f966cabfdea8cdaacfbe8a141d2c628043cc846853e23b6f52ab06dc641b6d5a804302a14a4ba11a6d1500f6eb40fbd55bfa88d88ed3b9cd568ac5e5772bef5d8b0b36e881ba33fcc5dbd2e61cb50ec77c9ae5f6b8c25817f9e0c50f80923006d7cda18e38d31c628d4f7aa15bb3e51042f14e18809635db1e1935b4fef1add6a4e764b853dcff32ad1f9cb18e3ba60358847f2cc26e4fe40d49d61cf8536683f8b3778bf8b3f1cf690cb1c9084a80daa31d7adfe10dc9fb7c73cead123f5638bdf2661818032cb060d61b546b1a4d15cba331459ef4cb44470d8617422863a220ece498acc39952a83a8792864eb43a18672281b99ecc42c9d28286510358bda2a1cbba2094c9a9e4ab2a452e14c5e1a7e9c267a4d6d900d7a21b1d2ec90cde13dda119396c88d65d4069da6921e453225afc851770261d4daf33e30fcc0d0db1de11bbc84bac408380ad9b11146b2c337b8489fb8c84bc21ee825dd19fe30f6bc259e18c0507f9fa7bfacf388a0dbf703635d519df500effa562d9a73b01b1a4791479dd689466291884474c211923b13939c5067e217c49c4f3cc237e2f873d32fd4d9288ae328eef0cd38fedcd93876a0cec6511cc771ac310319a3df217c832393e18c41f8468663191c83ee4c26938da30ec1ece995d665218cba6f0a3607ab76d6f8d35aebfcb9167e4f8260c641fa471c82edd04808e7b575cca58ce2ab77dee20cc4a12acaa0de800ea22ad106dbaa82543708a226a8244cd9aa82d631432202000000003316000020100a86c442b12c8b924490c50714001076a05c5a4a1d88635190c3288a621832081940080100081818a0a199014de5438c2510b0eeea60a775540f78b1cd1d211611de70ad4521ac5261533442b96b22407a85193880aa823155439935a9f854375e852ae8b0c9c2b3b6ca26b6948125a6c8531a4b13de2b913bcd2b8979cf128d2819561c58f2e13b4f8d061c025fd1771c1c4875184856630f6d07b0ef7d4017ddc8c34a5e417ccd27abe13d9a74aa2007e30bdebfa51e9f1f4605bfb3f0cfbdc8739ee2242490ef7065a54c57b63e839f0c0419412d431319c10e3447221a9633600b73a47b91fab5e99a4d0b579a0bea210b78f6e0342936a071254eefad34efd8284d5ea9c35a1c792e709aeb6f25682455b972baec2325b01bd94e47cac3e8894910ecf6721c4d8d9c33fbfb80e540e575081658b90f8bfbf778fda37c00e1aaebc7ff64b24ed6f2d2a3370926d05e5de5f9a792f9e45d3bd38824de113bf68ed8d1ae5a2ff623e9edf29c4d555956551df14cf455678e11a22426ecc6759834a2f4c46f1866ff1f03fe330de34088e968ccacab8ea364e11b548b748bed9d01ceb6335d14189c67a02220d7102767fbe4a58a51351bf51a40e5af6355ca007c94f362a7539c26b22f09e55a0ac142dda0f4b7c285281936235fdd1ea8580ee319cb7d4e667fd92a36bf19f08435af838d9920f2d51c968c74956354c6be4b6da91fdbd05c12241121c3873d701ab75e45820d4251fab08a5ea17c63bd46a7b28411d1c3727c29c0ded0094c1896945b9a273a76205b7c269fd154b6b6227f1440fe53c1ce058cb5886e0887b09bf5be6ebec059212cd039e8258507fab6d067aa92f4ed6213bdc69decf79ef2277427dd77a92b1392fc68fed6672d3407b03b61d0076c4a3394eea3eeb283f2444084ecc224d2c06225127895b9d3e68822c9b1a219a0a3628de48d0f027432e94631ffd78c6b7e5740a20f8ccd3fb31f4a54b38fb9301a20ede6e6d83e37affe15d564e434124c2ad84436ce30465420a09b222cdb78a08a38d4a450847712fbd9d3069d07290f67884c33a0b5b7d01939a3071ac4c61efb24682b52d07ba5bcd605d6eaa3413fb4bdd19346d6e879ec7d679df535d393631a7878dd862e656702e5b723b7a3779033afb61531b15af2dfb68375d4901abfa05e464b82ea9504f3e4f7a4ffafeefea1b9cfa1e7f04a967cc8e323d0cc9802a0f05baa2836817bd7ba3aef0ba29858dffdd9b4455afb8b9631a0a3babc1d36d4efc436be6b80f29e533fa73ba0934da0c6a637251e05982c7a330c3b43a770313207a239d1114d4bd79e6aacc5f6988bcfa8a15411b8f9ad97d48ffc64117b12794034f5cedd9b1e39301a223cec997df9ac257951c50e9d4f0b41867c6245f999954164fe365fe46ef0b207965c5d4e301cb9a6dbd98d289a42fdd23cfc2d6328c9a10c159f3d7e5a77c7d136895ad70ae6f4bd8dfb091a28f903064cabeb00140f73affe16723bd398ef1e69fca2fad4e9d7179911923379a0bdacac4027183678475053824caeff181f42b98860216701dc7c302d509de15e6c06f4d7a44668dc0d14a969fa09fb1d960d5627fef12782608be8b579e526c0dca0c3c5bf7c0daf12e91edf5324816b16a07d739c8702796367d34d2b1a2c3ccaa6458522aab754c6293a7007bc1147a8bc1dbc3e13809acf916955b5591384a530eb8e437725de32d65750641033f7d1620f0a9755b40d3bbe55c1f0130975094f17f1320a29f6bf5c3557fe0d6e1494656f9ce9ee46b4bb6219e4ab5d227d4ae69c50b46c815f22b8c483f7c5fa52a3d643bd96c41e38b5265e11d61182df1b7b09ab6e541c827b804b128a0bc3821d698133f2c13a1c38fdf27c9d203ebc15b7850356d6aafd03806a17288a693a7e669cd159f21b0615f9ed963c6a9b529b8480480f8e0a0b7422571512c73e3ab546a588309b28889f13b84bd81497c56ceb92ffde0a5315d564306ac4808b03ba8b308b386ae453994cb8e7118c916670283a9a70ef3c3dad9424db69d9a0526fb03c009aecc6f98563e315c8786a3ea804e0110179aaa6ec97c19af133e6ef718677008b08ba831e8829ba99b1bcb9c9e960791747720fa22ec9d99426f136dccc0ead1e84aa39499518da753b8bdfd4b140f5d1d16862ed58da2122ff92be6f6f0195005896b8b20c780ee718181e04960da593feed130d1b430828619d72c6e51fa14e8a8cf84aba6981ce567342722b3e677e7a0689554974a3081098866ad6dfeb1e92621845557a5da9093943db83fbd6569a3a0485994f3f6ba5fbb718949b82cb002dd73cacf29560e9f256dde3ae79179159697995cac8a4ec16da0a9e630237d639508befc789432028064c83261a1d1f5d788ea9a69402ad35ae130126c75ed4385b0f4ceb9437d0d5a01af71d0276de1d3bab52c64e6998d62a9d2e48f0439ad6d60710c581e669a01c008fe9906f5a5916379116b2ceb91d9c18ee8977f306270c0673c804d0ba24f051f8e89ac6037762625126e4623d5844423662f2db4215e8b96df897625b71b6d01a71a33947cf7ce31c64687c89ba42f2fe4c74cc0821e0bc827522e7604d52e17cf25156d617d9b8f8b94b58d843d2cd35e2af9ae1b8e56c562538791e97b5f97192d99017e3f49d698217ed8c5e2d1713b14c8d6eba5b720a416ed334a601d8621bf4f266be188daf80f25456c26336fc930f1a3befdcea73b006f3e494cd18599c15c79d25ecaad3d1190c644785bd9cf4c69431f49a2c224db2cc9590a320001582195523fe4f4d6a68e77c02e2f1a34dc7f4757fd82f383db3dbb44702f224b2d65e97a73a9d370d43c3b437f4c7b7841a3d0b9ace6e36f0f53ea89eb6af78252bcc26ce5ec09a12529cd30ebaac857f618e45121756a0697cf98e8053daed1c6445f062b640f47adbf6ebfc218f826a4b34186647f4f7ecda1699be1373af0ab2a95aeec8c6771a6cc68812ed65eeb3831b8ec326e023c28c064902f9db1497c47a4cad0024f183c39725e6e58d39056f3e49f62c4e5a05beec524f3ab4031671505274c19d3bdec1e7ac97fa926c776bc8500eece2fe92263081bca3e5c50996f26106e12b97021e9e387a315c80806a699f914fceaeb1ad202774c6be1831105d66595401d172703556de1d2000eb8bb2d09ad3ca13cc9d024393edd1e22dc66e1258a7bad9b466a49626513e46a1048319d6144f81711107e738d73e2a2f5f462a6ae4e26aa593303e8099393bfb9cff9617f015cde7d6d8fcc7947450673708c9cc44e28bb30c24f542a34b37ace4a796697fe1bd04e5924d981d6235c906bdeec670a47acd028ff615054224ecccdbcc916a464ee264c82bdef563408f3a881d3e11aa8394efb104cc8f109eca08b450a07d722b7c007e9df2c8361ba48f181ee2742a6b5a0b57ad53835369d736e4fa65c0a8a773d8990c210b2d86799c9be7268aa8008ccd9e06f9f1e71aab08db56930d9f908ee76a5d6a0cb1d84480e6d76efbfb1f5fdbba0e896559681e750667d7112a832a90671665b1a16c66eace931d6061374fa2239eb6227784dfc2d2cf57f22c605667cf9086148332e81f92b0aee539c1a13f5529498f4e77100c491e40ea6eb9c7a364a7b82e24feff82fed321c853039f3e493880f1b0fcabaf52a4d7681807fc043b724e5d56ad63b152d55efcf6f9ffec3b64c4bc790eb0d7d5cb54654ea65e8e96724700d2cea17f27ac5c660ea75341e6cd6bc7fc02e2e1a4bf1f6b5097468fcb7d129eef6a8498a5c35d545627ba13d37e6db3b42b1296aca97320dafb03dc1a2d9216ae6b73e4b60159d99e9562593d21157e9d4f7aa519ce9954383f665fd5ceaf4efe4aa761f56bf2aa7008d024d6ed8a1b986a166d821b7df3b564a156f9377a9cc98caf74cce1998bb9634403cb0fc8d8b8041acbea39a1a4e324d89200fe6ca917fccc44cbebdda0c781dde804a6d5e548be787341934d7a3fd40945953599293f3325c4185e01a547c77be8005c42ac91c17e2c35ad51ac60c186b37a975b63f8ba297c3879c499fbc7e20ecd9e1ec43b885c49c7415f9c85c5f625166462c4275454ff7cf8c11ab5bf67b49428273f74a88661a1690494a1c46a47d2395b4bcc8733afad93c634ae35ccce33ee6a49a4394b6c35631829775f847c19fe51cc51576280af21af1db338df28be55f57e8143cac849311247c7626928bccfe800a2bf1d79e4d131c6a9c8239621def01f6e85f5bc3860a414bbd1492d1b05b2d2aece48f711d634a796cbe498d9accceda7b3ffc376015d3318d007656708f8008af60c9f6c615f8b4fadca7f001ab8e5fb3966afe64a1c6c669f12b3c7563e050529440077c2bef6c7d77bce8d81f32c3bb3d7ff1403f215d626490dc71ad7cb07447090e8e8742be190229b81fd62d533459c7ac286af8d25d9e07b4a6f83683acff6d1146f7f9806a8aa273891a18a811bc77cba23b8bf3916c69d85155400f62969ca1007ad77b6733f0a42ab612546085b4f988532253ea57a8538c820188120199ea87dc0c50c11208a89b4b1c5f026ef9de0f085273980cc3eba6854baf39371becf2c8ecf402329ffceafa0997aaf6c46278e8993a508eb13343ee78382422b23ab279a3bdbe3e7251c13f9424ea241438d453cc201dbbeb81ae1605e7c963a929f3b54a635623b2e63c9c8792169f46d4e28b7178283fab866f18de35530dfbb586e8651f0ce0322e21e92a3f6d92bbeb8927dc9a88b340202e493ed0a6ea8da997069ddaec75ebbff7f2744582f25e1116ad57fd83b7df83032299b1f108ada892e9c101268d4a1431c21e1231d427fd5845113c03f5f81ab6923e7d0bec39a16bf9f3a74212324adb07c6125e19731d17aa070791f6447969ef99913c79765f201a6cc3c627516e81b536b633595c9790e59edba7b229e7446ce5eeea1cde80fed9d6653ca8188f6c2934d380f93d35ce82f40e69f40a66597a1b025b5002c1b83f588bf887dbd7a34486141b889f2821f6cd626c8f141e09b2843d7ce07712208718550689f0c1f4971eeab88d5e18c641b900589f74b226da97845bfc780b54747760fdd69bdc67bd025820bb84c971b88c4f73f3738dac6d2d82201f861a3b5904e0619822e20553cd11d511344d919f85c6091d11fd7c528164cdd7abc10b3dd3402ed48c528a09cacbc9274b9e9545951333ee154bcb9ada6ca6a1faa876a35234e95898c834c8cc9659518e70a0b09502bbb3cf231447878ef974ef250e1a95a024553cc9596d05bc45e9c558afd6cb8f959325d934b642fd33897963b6b17a35d95451ebea90964d0f051282d6d0727d66e8fd08585db9f95e269cf99a3c16679933586c7aca494bc79ed9cdb8210a9e5a063c73d0c9089f3f0ce5baa426c0bb1544732c98da62135349996f715087c8d72d577841428803dbaf3b86e0f4fbaf74ed49049d6b1f83cec5e08bb624f7817676c622628248d6016a92470e53b97489c78b60a487b10008fb972043b7771c0de736456ac314de01ab5ae22a5e863dc5449806e02f91d5e412f9099c72808a40552acdef7b575c135b99bf47a8be9580e6a99a192fa841a71c7b29dabdf00135634ee72fdd270c91e91ca9932ede2300ce3a864931208674fb7713082c2b16fe521f11fedb1b761bd0c316b12793d1c7f9328cf4e6a7b7d2bbd28bbddde95eec22c433efbc59fe4dfd9d06e552abb3a64edf252df9d043e55b3f5c5c97ea0f49a4a12a3b06e9271c12376c7ef4af395b87a1328ea3943f4bed9d823bc8706c799c351aabb56a5178238a526a822f06d8f21a17e90ada7b62277ec0f8054532b853290eeb8b0ff8b2b19a8bb01686dcce0fd2b60e7fb81ca63e44c4126d8411cfdd8fbef410b548496019f36609a9b5d4c1a8705b3b162f5740ab91ed44b120efc296959e71e20984b1f9e06ba88920086523f80d2859f2400dc3cb1bee5954a1c99d47eec5f0c0ea7f3971d4aceda3de571e3bef7fded3d4b33b57e745260cb4b6cbe36d6fe7b4ed271d0f9d04e72be6e18fa029a55ba6703f349f0efb482b14f1822257a444e43b41ca2a25c949c1ad7a3d5b5712325f697043c885312069660a400551212abd488c1156a3eba95647960bd46568851641a33395a89f1c91399b48560e1f80e2746057a11d756d0b0d07eaa57ca1c95d80fb42711df2e6703a03344b28082eb5aabb275c3b5e0e3be2e2f808ea74cacf906f8fdaa9b374272de200d50b8f22bbfe6c90ca9124a6755283e32022137277d5471669b33476f3974bcb43f7a09417ef55fa23c5d1dba7206ca3e739279bbeb233d2e5d899cdd96d1f66545d5ef85635ec51e1b92e17042f56b071445b15c304df68747365637dee43658d8dfa61087f013f8805a029d115bd5190da815f9b4bf188d2a123e15d4099431e0100c784449a69f022d1ffbc2d6666147a07bdf7dae1dc9dfb3c577a365a3d83c31db7e9bbfa3351057d5ea8446137aec9567b9d3d2b3cb9c2f265b3ee246ae8922c2782040afbbe4352136b1c6594ab31033e5acfd7386f02237ec2849ee997afed7bcc72d249276e6c0f616cd14f4060371696c82e5bf54b264585e2ca30c8284387202f5abb0539ec26a9cd4a0978cafbec34ce4f811718a13710a70cb27222becf0228e3e164571beffcd05d8d70b5e8970df674c817b12a530b8d078afa44f7f1dc79e9466d351d4c2608fa80805504eff869815cc2ec32ebc71b3d41db99f42664f8b05be17a115ff76da0c7c318eadf67c3e78a9828f37b693c7e3168bac25bddc9dbdf68337aa4560894578e21bdce07d3d88a7eb4c578db279c6c5d699941bd4c22134549078545755690ea6a94c8cf40e95c4da544c0c0c6da87973c1b178d116703741cd25e226348b221a2fbb19aa26a8002dc4139746a76a75d0cece439bb9f4969a8b2b57ed74cba5d4b9a008603263c14b78e37d2e99b770b8f93faab7bc3554d4bdc57c88a66bc1b2663add242568eddeb78e9ee7a7d7b78809cd26982b0fa113c435c9cbd20227123e09442461b148b5584b49d755bd8aa0664ac2dad71d5bd0be7f8c64781b1d4717183ffc0ada7fae1cdda80c1bd2e2e1be3d15cd7b54fd4197afae006d4fbf0a86d2639efc992f59272de26a80b3cd237642c3ea6bf2dbe74a2195416cb4632e573f7a1775abff79ea5e5a385e2fd6a06734498286b3e347b46919d0817bc7c2a1dca8273a56a75a815c849287d825de8b64357559fba98fd343447f48815a73c90093feefe3c99a2a75579739737a06072de06f2016aa9751f0973aadc3c655cfde729ada5003822ef87cd773d0e1375cb47ac2e29b3a57f65d3f214c5535a4a45726f3526d586247f9d7b7cae01388a41c7974d9c7a53ab7f1f8a9327d268f3f020580c3703948d3852e30ec138156cdf4ab3d3e1bdfcd0b586f210e6c1c58b79fcc10182a1de8b89c2e0ded3b81dce97ec2325d590bebf2bb5a827c76c1f5e11d21ecb30f8e01893e5a16e7207a42430fc444df4cb0f32955740b663f72bb771dd52479019e5228c5d0c644cb6f00726cbb9399d6bdcd40ef912f269bb0893ab6e8126490069f860c90f816ac8d44caec7419eeaa6fef884e87b87f538bfd906bd794c766446495594f94ffa437649aadaf34ad214eda1de682ba5187399db41b5299a2730509a37d11d8acd880e93b1f9e32e446f7b1f27c73e8a0cca58e8d5e280f460243c1dcd8e3867e3ed1d74ff56119e19c6b45c84889526bedd847060559ddfab50243dae6b89d9271183654830f9d466edc798585dd4625966048f5ef4b8cbc3af125949a515db2ef43438d55cda97452d702286b9779193f927ce836c6947630854f1149a1b71e1b394728df4f0507a49cc2111e43f2c1ba913bd0102142daee2e2e55a2438e1a54484a941959478bdced254d19a68346ef332590d9f4d4a0d5e7e82f21a2667b2e3a297c5bed77991b37982f441244ac992f09f3172d9e93915dd0cbfc25fce77980fbbebb3b2be52e6f160aa7497b4a249164f0484c29d3f537c521126d3029c66ac18bd9fb7098998940174f8732c70ff5514b142c1f4999e047dca03b72ca1a3b73bbf137911404042da9f214044cd34412966633199087f4efa024d99efc115c05d1bf3101bcbfdd68aa4747862ad2e761dff63f78040dc805ef191c302ab637d6d6c227650e49eecb7a65eb98f598204f821854bc1334a341a73f39243cae164a97af500d21eac61e1921139fb0571c685029a6ae88dcbb5502028d26ba140a23efc063c1f382e75bb43482e363fe3c257db061a0fd680636d887254c4fc8c346c9bb08e3839d0db501d9ac7d4ea57036a96b0fd2dd809b26d6f08fc06990ac9bce3b987b05bf5f35df89bdb087c92829c31cfa760d323150a27d88b6486b37cb2060af1cd336454acdc2549034ec13bb4512e4aa65f360be17d78d7f46d3a1ae692f0729a93815737ffb8a55062d8ae3f603fbe50aa640df9385abb9f4b5cde3e259d3df8992f3929820b399e02b9ec6888b656ea22f9e0b6a76a939a34659a65ca7030faa06395c30c742c5508d434591b621225d26d07e7b81ec64fd5fed05054b5e4c0a131ca1cdc6a00e89398d616451e5096eeaed362bebef70db8d3069a7cb9d2c33a7d093d0ab0b6ddff535bc94824012fd1065838ebcc5576f4d92854e7eacd1405a2c74ac68138ee68e9372dc73a4029de2d87b6b8f71732ada2d9b96c107fe51199a082993592ed7a5dc538b09c2740ff2193f4abda93f28df6c655aa8421018531b870d4aed5c4b7d9b5139d5f7ee9ff6299bc823828b583791baf4b24cd2a1a91831b504a076480b255b3879ddb1620f2592d3a07cd56680fd081826d3b931aad02155997756d91c528ef9e1c5e73e64655d741fb4d9dde96b559b0296e5c0df756c63e95f67c4b1ca4ed4abf3ffc7a43ad8a2100a87f608f8dde03befa2bccfb2975fcddd02a32452a5f8b81e8706c5d0d268251ccccad8683643e182e987be82acbb0ffebda847b55246cec5cf1455fae4105018e938c88dda3e3af91b94111e379d38d7782c12f02fce6cc3c8bbef277195dec25c435918fc89d22ea33bff036d8070f9372851e9011127353b5558087d3492cdc77334667ac258275c076aeab6deac7e1b9ae9c379e573bbc0ab10a369181edcd8c6c3b68aa4024c9f546a60c80149e6f08ff01a2f67f9d1de195fa8483acef39ea55cf5f3ba37139450eada6bc9fcd804a051af9627424b75a8596b92c3a36dbdcacd3554a4d3e4863da57775d599a940ede351aad8f020f50ae46765abdde407e8e8ab91d05b6a081e420f041e70f75551c66055f096ec31f0c6ec9ea0bdce2a00982d13d7657adcfd20ca715927dc0c88a20b780d55351b2a1dbe5be2d9368beec15817ac094ede3b88feb3fa86835bf4991df5e1069f08bae11a16b1b52b06d4b826d8745b2c5a734e5e4f0917058416a0472d6bcd5bce6b5be6155b983aa1b17ea21c9e0f4eaa3dd5a60e6d80d3f2311a50d7e5544e40e7fcd71cbfa2c3a545957cc781a2abf1a07d2be832c7f269a5a7e17d5e7eacecd67b1afc165aabb61ea21581e69a6126c07f31c43de761d0920fd4ae885e89a06b23c8d0ae2b4a5303aa005512574d9e5535c82a5a400656d4586b280a86076b1974b435b0d84bd0cc4c815f7ccada5701aa54d72040358ee55625b36fac665ca62299bcd4d6bb90a01b8e7f3668e65abdda9b52af545b644528b950601dd2865f90df2e71010c1e48c0bfa1566a793027292e2cb50d79b8d441a64b4e27b9f75e2ec5dde818ab8ad8d8f1b1cdf301f3403fc279d5da246e289cdedbad2403afd1d26070a150cc891b7c00a6beac891bd05281fc1ae862101cc84c23eab72c95652831de2ffc6233aa4055a46c97a170c5ba440bea86eefc73122e358da8c0b7a614d61f5891a1c757bebc0101c1cc8ffe837c03cf97d23c794b20a88b0607269374d9361897dd9e73f20df83ae6bcf286d20b2e53dee619358ee85548bf620d387075d9a6153ebbe4cc4fb50107ec86e75646e18d49bd13aa018702f2094e893a0fab9a3799accd47dce19f5bd91d241cb098ccdd580fa43eb9261ce6bdca556d01b7de77d7862d16e3e8f675e6d6c1c70cd3860ece4506546993e98a830b829fe75396eda20b641387de8c035b413d03604fd857a8e0e0e950e1239d5dfde57a5c2fc86dae75e5256433abcf387c2f34789e245b55ee33bb26714b0dee04673b5b5f52bb7fbbcb58868e41b2169d5aa552de5316a8ad430e8e7f79e920ccc7b144c0a2e03e1cba210be1afb26febe1a61c56ac2d9c423465145a5420480ede403c07122907778a5500a14c1d8142dc9e88715a97bb03c36234683970c75021a0d208c761409db8532a5103ae268f39f076048a0a186edae5e53f9b5bbc7bff63e9b3d721ed0f54f339558d46bfcb7628ab3507feecdbd07617d526433ecc27b82b1ab06064b127413930db658e1d75c554cd14a3e9c4fcba3f054544a0139d548a454572399126f72b8f39fce51e2343ae188752beacc90697609a6210ad4f28e936e58a6b1cdd9835bbc2b90e0e871939be8dd373184a751fe13dac10055efdbb5d906b6257b7539b384b3f6bd20e2c6fd7c81091985cb10a9f4ff5c1164abfab5cf1782521962bf6a2e2930e6e62b910de7d42d8e3169cd333f64ea11151e074a50ba17e0bab566cfdaf9cf7fbf3784b002c2d0c3ad1f92a6e2b41cb01eafb75b07d574f00eb8a8734c6d1b09e4be197bb450d87191f7927975e6863f50f5c00714b6a0ece7ea28edf6f9d5bdca6d71c988fd764bdea119d01200fff35a6d85ec40a58cefb6046993a1e7a358735f0d774fe9b2d870f5615a4f825abbf089b5c7ccfc1d5bdd79fe33474f148fc348c8dfc2fe720630140047de189e6f36fe4852d8cfa5e0c303ce1a18df71c96d0dc41ec993557895f158fa6996b82ab924336c48ae8f04940983066609a96de73f01a9d5f637ef671d0c11c1cc6ab1ac6ca55fbfbef6b99b542d5903f6e5db3b74d83a493610f7569a515fbb09b031b1faf39fa877d1e8a513226d4de437382e9e63edb4a9dd9f6185c5f752b630c5a04a7fe55768e40245bcfadfa55e6b6d4e75cf7ccc0c3867f876a84bfde69177681cdc2e58ab4468625ac3594f1563de6942786f8dfb56d095f17c325f1b0bec4b326c085d78064d35674e12de397af4c77045258650bd356a4606cc22093850c8c7d012ab273a3d90b59098a9258847b49152c0ee9ff25bfb3b9c966f1e355d686a1e7f2a5983b001798205a4affb7ca9fc57b5288d4f24be7873234ce239ad0767c05c10682aca9feb2a0c51489ea8421b823e62e1ceace18f393ea25b2abf33293b65ad258d3d3200c3c3a34db6571f286821a49631eb04710946fc02583fea2ad63cfa29cc46227ca4a6d06496e48771fa03414d1dcdc9c191fb8787f8c22449db5baaaaa94f3057ba4a7b8d1fd64f7fb0ddd91f28039d251dcc07db2fbfd760f55a22074c7945abae4aa8034045b0387e54872946f947d54f6d0d1dd2a273dacceb046a7b621b275cf912ac412dfcba96b6fdc7d039b938f7baa2bf79062d752434e069d15452c94ce0bc03d78e7513cbb85f1512ee7456dd756f9d9e88d93c38757bef05a081f3ac9de4540185c61e5d5384cbc3b52b35252f17dc74b1c0323cd43272ffd5869da361e1da652f1cd3d1226899af10765096b698728c57ee2d745d421d3a600c31b21fcf842e8877506ea8d38ee36ec42140fdcf03e4c4db3488d4c0c3bc4333f5035208ca2e7d38cd4d8046d2ad280e6b61b20b66a0d1034aa22e75eaf65cd2ff5600f8c688b1be07ad223f97949c23a49e84927bd9db64d400919f3d99a956c61ab0e0a9e8a551efe8f7f5164ea3a1dacd950c21a555e3e33f92788608b0ccf5b1186741537d1a93d98c1b53b52a242ef6ddc87b1bc960f437f782b7ad0be60382b7f1cfd87e1f3672b4156860c1938cf4372ef8369aaff374839e7978a4b1ea2a70578ec2cfbd9020f3b1041b3fc0fa24ddbc9f00b9123f94a54b006463c61a3bcaa8c868a61422c733af6f4cb131f57ec8fe16e840cc0dd835c917a879074ec6a96f6da1f21454064de38a19aeb3606ae52335957a22572c5c87fad2a0b3f62acd09ee21fb8d887c8152b1b4c2816ef7c97daf1dae27935a2054dd4b47c72638c974e3fffcdb5937be2f91961d74f7e60a6c2f52f7776cd8f47359ea810f6de4ceeb767bf6983297c194caeb8b4b7456f8d190855f3f6bccb509260fcd75ca48cf3f2eec9157596f46626e49d8c1b32523db240e9af981681e51d27af5b7a214f4738aea544e9268dd89455359786eff74b0d92963a69a44f625be22e0d263ec13519b432d5fbbe0564a961adce96c53c1e810a276868624562fa66f5d29a9b785bb17cc4addd795d8178fe7c5eedbc1373a30aa88e5efab71824529a205595ffaded9424076ec33963ea96cd7c562a44227cc98831a1a38b587dd0d15c38a92046952dbc5c4c42575cfa868afd67ef3cbcf25936a7b59a593506f9814d5cc03606a94ab5a59ad6d67ac14c3c5547e6415244483e52ef775938dbb549a2b4449a692d5162d512a48f86042e14982ea65c191ea68b319a599ad849b714e764adf82bf287058b65e4d532ece1fed9d015d7c1f3524af24585255934463e0afd2c98040c85fa95a56879c305bdb5390becf48759d074206501ba729d19065f60a14216086652f906853288264a204200bccd8eb81e0fb59485ef1efa93e300228101d17a55764becdcac666e81a589e592ae550aeead1b70b6ba228cd546b6ce895600f6acf30df075f526ca10de24d36b37dddca49bc82582d522cea1ddb13723067f3ed777ec6e87a11bc3888c5eb137f4de400ea716e6d6e2bdb1cec9d3980596981a75660119105ab35a5e3298a963c44d5118820129f82c88583ca8a30366e00bc87d2a64d859f7246c397e172b405e8ca935ba01c410fdbae2e9317e888804c5f52fdec0c165df3a9c7d6f15db34c4e535bdaa4a81956c056e82c7cbdebdbc7419cadbd71523830f4babfa50178a177b4ecf7472126395e97ecee2d1b069658f2a82010d5385cbbfad2b0033c8095c90069dc1cc20187d7103ab7934f480482cfc2b538c3ef5152bef18bba555eb01e070b10beb64f1488a31292d6087461b6ace459d0af669818e199e7b0e4c3a8db2462ae355a3216219e2410cc1d02abbc1b07330055694fafae6193ac6811601c8137e9c16573cda4442abaca7fb04375a6cc3f57662786d9ec3df4fc4bca85db37e65f6db641dae317bec7166a91d51b2e6ae58f73cc4991c6cac28d34fda7a0706b74c16d96f0a132b1bcc1326708acddc5a7ee3b97f29f08407c939f1c91537c5aacfd66cb45ce877b1b6d3322981b52ec1cfae2635323f5b23519d063f7ce0173d5c113cba42884b34b4cab668afddf094a03f8d804241a849e3a0676ce632d91993e6db7d67fcd14eb3b219d67b31dd42a1982b89254ddca91eb460fc116478c5b84c6d722c44653a85d2bdc035d1285468f102fe540e0fd43ed58f16b9ff8046642a37e703cfe94284b84115bbe1cd7132c1ef845a4724c631c3c658dacd79b0b696b16378c5b80f22f38fc961dabb649dc6ff5761414e1fb8e054275e3ea035d16831aac56e104427a2205f60079017c7022a1c8a11960aaf6875edf5f83c617a3c95b7866d89665c27a61f99e936f2d2de871c093880f3d6213cfea86694c02e16609a685fb443f82b9032c91cf2b9e7a1f41060492a886360b5827e45d700e1ff21f38af10358511f4c819f35598b1e48a652dcbd3dc4c0558a235246ae1070b0545ee3b47ac7ee84f7005cb10f900d129e5ff056d9316e46589cbdc992b4f1f82f9bfdda47da4380c405f138ecea3cd64e44d52bea1ed35ddbe017ae5296009c3929d862d0ec8b386970025896289c048a75db49b76f6dd389f9610b3311f8d0bac73e6500f1fee1fe1f1f6595c1f502c8173ab93f07a2ff9345bd623c55e90de62d821cad2f72e724485c05af132cb81c8c7e972d067e93cce2bfae2b74815877761041155e15deb6057131e240a0ebb83d2cfe9dee87585a0385a1587c8de8396bfcfb6c8dd7679fe20f4acd966abfa4bc7e15bb681afc2b9bbc22ad807d30dede5260c77657523384eb178bc699609aaabd9984b80092a5a59c862d4c1fa26613a9199ad68115afdd502204059dde20b72067d1bb6e265f97df33e02ca948ed9548cd7a608cbd197d99b62ebc9b2a31a8d2e9b85683b74e3bef66f47f29a347002adacf7c30df853c7068a98f4daf3b79a2e419933ed7659f9ebbbc3a473bfdd0df0a1854344f8a393c7209a08cec8b87da76390cc88668dce0340f032fff091f1a607006caf3fa084ab420ef8219b93d33320bedc53aa62b604f2564aa6c0f2a4806bb0ca90afd397dc06b178d2cd66f4353d043b372008b4d236d88163977228839f779e234273394e968bd1f423175b37e00d530611e3e18977af348bc5b7da76d13bd9c042d58ab24967a78850f4ed6b69de973172925422fb5fade14f42ec7df8684b9b667e554ea9643d8fd7feb46d9450490a61be9c84a41b1b8f97ffe9015c849aed646c33ef318186edfd793c468e1d459459683daed9691bdf5b24c02344e4a837d03aefd1289dd12f8f3270f30e8985dac41969f65e1cc99b53f7f715d2925bd332f5cfba98e489d59dc60386db10257d004b842be1d8e340951e6613187ac7cb0ec01d11d9d769894fbcaf42bfa2f8eb73aa24d2644709a6c4796cc17e4e994942d4a96a7376776d4a6c979f4c702f8467b8271ea970ac96c9578c2beff5aec2c86cca92c641fce3bbf01282144c2fe91807de694dfe2eb17681f68b698f7b2bf071c9930e1b8712a5c1c41781667ca4964464692df604dcf979e05f5e921f25afd699811a93857dd6d07863f17ade165642edec47eb9585906225494017d76ee2c9ddf03096f84ac5de840e3f2561a3391513732edda28ef75c039e078578295d58ad11e6d63f2827aa6c9ba6c2322c79a22e99ed7b4c391f0def400f7256fe84993be4eb09b2ef1fd1f01dd1c2a31e6283f9e71ac625d12b5372df30085ba1da0d738a0c7c7d9980bfb0646af81c9f73df930316f3de63c7c29b0b62723d6b53ed715925afd5d51123f664bc6132e37b3b1222d07476fe234e7b7f4b9ba27b9ecbe0f6aee024af7c79ee4c607ad1f153a16054ceb1289d3eaaf2b907523a234a21b79251d9540c31edb9a85b9d2f8ac22c94eeb6c56705504f58b724176eb43b71428664305e8da0340abb3bd26e6a42e81a276c10f9a910958212df70252ba6da34c57e828107bf1ff20ddf014286239b6431b38a7af20d35aa4d44d99bd959bffb99c062b54f060f7a67bb0cc3ea1127f9565660ed7cd7aa3a05480a038890532fb1387a8b66d669ae2f415836bae24e223188d2dbf9a94038b7a958d08edf48a1a191ee716e906c3a11db4c2c6d02ae46ffa77381f9d3cb80569aa3fd298684018065636990b2c966aaa3f8df7ce6ea89af0e213e603b49a734dbf3bd211454c213bb2059251fdb9f7b020f6ad89875f277e695938e2af28f1bd6cf08c2f70609da46b81351b9ead10f005a660f273d4fa4d6b66ce31c6df1bcbd186a54c6de515f92897054731a65ce501cd748f81751827d83bbd23050022f85025f7ec8b1d8d90a43ff3f34eafe73d70d80669dc608716bf419d0e18957abd5cd30ecdfa8b4e9ba1a7d08632665306a31943afec28fe9b8e7e540dbd9c70156095fe4feaedcfed444da05d7fc9c7006a2105c56b4e45f377676ba63aabd59a19c45cd41fbc60c4f1e0fc6151cc4049afda5f1218b113ddfce47f9d186b1f613e0a3caa0c1f8d65ae3fcac414dc2257215444ec0bf2a298784586373a5088524548bb83fce891448194941a90ae9954dec3a0b729fd56fc9890f7d1ce416535d2d25931f564a3a70a4c61b915d31220a74a5bb088e12067cad83937f0031c34cb0ff7085aeb0463a81b691e166b48114173ae93348184aeb84282beeb3c97fb69f791a8d65a213691e7203a341792186a2c8110e8ff3595f3df20328a361b98b262501e6442ad60d2db8d12b35267e244e398431199a93eb73d8cca81333942363cd90f765c0d9f912bb473e9ee4c1a65f40e08274e99d12526f3d8912effea0fe3c9162505dcabc5f66b49c108d6847189087282d4948145f42f34b6d7e7c73bf062a765f5530881596910af7879f093be3c81e761fd866b3c32933eca2c45cb8dba562a21adb128aa66690379472abe2ecadc8f078aae63812eee4706466bd2d35a96c85871f84e23f2029a08a80c3b1e8955d0edddc47e87d7d590f8bde51b476a882c6f5173ff158a40d9891518004bd110aadcacbf9e7df498d149ee1a7b0723b046427bd6ec312da55f9df55f5d4713ab8e056cd9abfdce0e4ab4ce468246c83abe914d1451677ebfe5a023c0dfae4673eb4dace0e84ffa68c23ca67c1a7a0e3f04563a73f36a2b4131122ebdf308187ae26a0e2a2bf5cd86c5359be63b9e346da58f83d134bb18f640078b5b33430b33e5cc27b55164126278c0208b74946fb49fea4abfa28a100044819ee20ded57dce87758c43d0a8cf430f5042e0a1116c8286fd03ed54e1632c00b727b77013c0ca3dc3da343d151f401be37ad16b360d6ca7b11c52e0186e21072d9a543ef8a8e6920bc6a027c61c2382a53da59c168141ff0b355dcce801a203415ca996e95107799e90a746816c6bdd38db6889d5515cdb877847d81812a65fd69c41ee076efbaa7abd36d9e24077c805c0851eb8e255a1daee806dcd99d1c119c84abfdaae79f0bd2d79649fcaf245ed05df2c4ec7c24e6295e355c94b8536b5b4edfb11836f7b735a0dad3de6d7883f97a617b2e1e9e18aceb08acefb13008974accca9e5d3bfd6ffc9755ec71ade09535d492213f2adbad7499065c2132a847834d074acad087625abbb4c0257eb5cd4a9cae1a2ef0ea816c53ef7c60cce1f2308dba65849e61a93148ee9b0615f36dddbb8e32a3fc030f3cbb178131d747bdf4a6ab2585f8270164722d83bc38e5953b93f900b842885f40b38b81a0987ad6eb3c099871f42f529b217baef3ee5d2c3cf29aa7a32bc51c0ec6b820e0e49220f45bb9eeb72903d6340015c8e84839a5628e7ad23b00cd74ed49c806f4321754e5bdf3434f7e76b099ef9222aaecd65e4e9bc91d9458ece2b0f9c5747ff94f027f1e37b6009c401d43cca299d0970206bc02b51ae9bcf4e900a2d00ea6c7bc777aefef40a013d7054bf2805b6a2671796b7527a919effcfc3f4bd64667b6bf2340558de2a0ca42b0a7cef774a168064138239473bc154c7472dac1243a0589a0e823ba16ff06e7bd8be8e5b804a680d9edbd73ccf340f5e07e1749f3a9b19fe48d5291a8ec582094661067f3bd3b2e7a66b63d308b4f67e8a3b3fcee2cb9df2d88ad569324d490c1086fc6afbd7a746963c867ed2e643b5bf229d3a9493d2ccc7155fea5f7d10969dc16c7a2b97fd2f76ee3f31de010fd6f7cf2c9d7e12e47cfa08a6687e25ec3096546575fe5162724048bfd55243182f0430b19e2dba1c38c0770fedd9ea7feb950d2c807e520c6775a8784ec49ba8ded2a2709f5ccd75e96ff01cd904cc5ec3429b02447f54f885c5d062a2456ed66adc3075c1a6876ba2589e7318e82e8d2ed54e216d16ab7f61658e0bb83a44014171e16e3895acde93abd40e04c605de0bba337a58f879059a1df825dfee742c93bc2bd039a9db865e85e38248867ff8131ebbeabec0d347712bdf8743ec101cdf6e84dfaa1b8fadfeb63ca04d2782892addb8b9545bf13df191ff7085d02baddd73ca610c7f91dac02e5d81e996468d8c43b6790c3c1d35a18b89113d797489d69c069427d1596bf1f046e024685317cb7c642fad89bd882ba216ae1ef0b7794398919dba0cbcf9d5aedd1a0ad213e5663811b8f262af370653f549c1729ec4c2c738c1227e3c9ef189f95f19f8ce889db10bd7ff2df1db33647908b859efac3fd96947d411aead35ebce625350ec1d27b19470060d6d0e08cd8c06482e4b04c95eb4c4dd001e949e4f184f6d0bf17e360a0ece1bd761d1652af79dfbce3e45a3c52c1221c667b095c5e5cd6f3e104832ec0491007359f29d5b8a497b9a7fc95620d973b7d38bbe4a37390c8d63a0fd97543423717e0657ac0ba737be750022c10d1cc2eab92702691a948d33eb5b57372b51314b54b0b8de4a17b68a6d5fff53ab5ac17371b2ec98fb6eebbed03402a6d0a7268f19da261c6d059866435f25931c38de766ff53dbdae52f5858cc9116a3711656a39e61361c8361b57ef133eb052f67fd31d64c2b450e0e53463617d6ee4af1b76054e352eddfef511b056d5890a0aa219aadacb14f772f36ddc9e654000d4f40b8781f23351f50cdc8e9e27b9ea2834754457131373f9605c82d98185f45063c2a4c6e1770da36b61809b59b3be62e5e17df454f8010c0d1cd42b289597abfbeea949284c4912541ce2b3e14d8257d91b09a58c67762f64a4f4be3bbe8cf5b5b8fa1349e6cb0fe83caad14c98d2cc9709ddbb69406050536ce95ca6c4a22a23fb2c2b87def3d9478808a1f002c13e90adec487a1f66f0f8642b5652d4b99b65b4d246b756a8fd7408ff52f2644ddcde693bba89dde31ea4eca60d248358dfc33d7415d0fde823a70608c0c5fe6b10dab14ecbe2024f68eae8c8c14c8a1b9cb60851bbb343fcf2081ade4acfee8c19077e5b7d35cf8e382ce59b644084a708580a69a1afd2fb5a7fab9ad2bb5dc6583aad2e04db606ff3834eb8f9e3ae93cd5ec118d46b8031fcdc52183f6482f2239172004e784370c9c90fe94ad3ae5515cdfaf0d4568b68273600340604ffc35a7b4aa731ee39734716d47ffdd2b38e2afaac706e6ab6007cc7322eb75a96f260c2fbe1b80f0b74eaf33e1f98671f7089aadf90661e38f99bddc0c6a11a79805291983618f5f58cf6c051dc4903da80324fc432492443b08abc7f1f26d2cef63097de50552da777206f967a6d9aa8356d46d0510dca1bf8b29f6cee936dccc8266065375d5827cf8ccd88df200f959a0969f77584cfcc54683495ac3feb306a0856b293fba941351ee48f8b329ee5c763d29ec11365dbe797e8dc4a240f0a3a56d839ef120a7ccbe782e47b1d1de72d7a62a3d335425de09c218766dfc2f40311c7f2fb4d739b09084c21672b6d64efb254cb64fad2e1485e3a2835b6aec19394c8c75e64cdc0278da6e4b3798cbb1df3b1034b64b23e9ed66b3f3b4c740e7af3138b90fd51272b232c5f91f434aa0d8093b33b39a20a279336a53c7d2820de79074768fd3eda1965109c9b13a70e9023dbeebed8522161a946f13f4d8caf2a3874ea51aaf5f67e69b680d5f34d735bd96ada7c4c46b24e67ed4ef7a0088c684aa8cc7699432cd7df04dc426cb98be9da8a03028fa7bf037a9677374f49a4e498803d20e7f744f94dca6b87cf529db8cf3b41882ad1fc6eeb6434d82d6880ba2e8422534803975d9830c372b538399131001c2ea1149eea7dbebb4fac6bea0011c625f93c443ae39a30c9615d1a0f6922a8702be8cb67de296d4026e320bfa51c8e6a3c7b84eea41a800a3df78c921afba79ac313a3629a2e0789214552c10c0851437ac8757ca314fdf7610555ae566ad1216de52b946c509af4aa445b8b879d414047d9b7e12bdaf28c75c3e8948ea234c94dcb803bd3907c945eabdf8cc0f7d5accf1ebfe8754a025e32a6d39d68a26330bad8e19319e05f25a58c8034348f4ca7a8018364c78a00a10572ed36b158d0ca4836c00df79d97f063551e7416909bdd24c9cd5fb574e3df0b446df4dcdf65b2f599a2abdfd6ea4c6683d046f27afacba0c72172b7bef847aed886be24bd97758db2252eebd3e14c82458a275cf5fd59fd3ff33f376d7eb7ac92d99331c5641b390c936b34e78f855db60365c47c0e546a4641dd783e6a7add6acd3dcef1fd03258549bbbd37200cde2e24766e6524c9b813e509c6f27f3a351a6d488ec11a5065957adc3f9e5a05480be87304643093d9c9d829b6969d12b6b03e89b1cb7fd3b809ff1e8f6318dbdf0357787f5cc5f5acf9ea6eca4d762b1dae186d4848ff02c3decea4bc1d54c5695a1928ce7ce866564f18bdea34ca045e06c6c446d9b1e3a68c6e9317152789053335447ed8159cbbccde35f1bd30f62e030e763ee607e6c74f3d5efc67df5c1c7898bb69231b64838a1a54b4a19f9ccf18b4332b2cf0695affdf9b117b7ebffaff9eef996654ad7524de40cdb725c37f2f6cf9a33ee8a35a293ccfba19a3dfc28f7e9407ca6871d5da21f1b6bc96f5801b86d9ab69cb4dab12c50872bff2fbadbb9e6d27f6d9e9780f1a2db7bd00f6d10c1fb8f47f84947b5dfacfda9758201884a67dc4fa78d193d60d78b0a3cb90e9cb1314b60c389c9fe2b933d1e83add54e000759ea95100ab2d43b31d404ed37e62b0d74a126078bd96734645af4a013368132adb66e941202f58f1e8811634bf6941ee8811f280b1c5be05209c5787f6919473745609157b560054d2d7fc0c44fec2136276230cb59cbdb14d49fa9746f61684d718c0c46e37d9414f81628180af462784588d07a5d84ed05956411435bdcfce0477c1289d97a0da926ea3d81ed41842e0829bfceb37ea0460c7d86ac084480dacf9ef16b0bf2d2647410f07bf044296b1ef01853cd6353dde4b462efdfbeb3ed6a0bf7d87f6122d296087a190bee579db9102b47619dbaf7a20bf7c824643966300fa4c6c331580d39b204b060f39fad24ebed65e8ec91afaa6575b0b32d923d2964b9512b7b2c98fbb8d0824e689b06b6f502e53b07981516cb2cf4e5f6e7c3cccd2aee045898515e09b0805379ecbb63fbd141ea6eae4b7e948bda33ed32b828bfa9794a4d130bc57c101391a6e7222867a41fa8f839356446a8925246f22dd74baede6755849956ad5521bdd13fd9e31b90515327a435f7db25a712bc1f010861031c40f2ee9644235929f07e21c3c61f05db394440ba0d32a46ceed3bdf4e2ad92e4ace1ec60f59aad82f49ecd7da0d6b1de4bf39888388923d75e2bce843d9765890f2e2ff3e0b0119b6270f8de6fcb1bf144e071d4e7e5bd928f5c3c4170481befc155f76635cd821473ad5b6cb969ce40b3669c6d226720209b598be48eea78b79e936446d9024894f8924b7ec84b4c46ea7681f83de44f82b71c2ba0b2d173318af7d38941e5e82a81f46ff7f141f4590c8329c9654a2775122f9940acb4dd3c69735c9a65f8abebf1a02f60333551b16041659de229228ae4a31f9424a98f143a0d5f8090730ed2426ebbca568223852fb088a13c39db183c650a99d62d6a9496182c82558fdf7ad1305799fd0e539599909637557f53fa2e89cb8e263d0cbd73560dc0027b3c4afc12fb96468786f122e0cac455b0a98a69ee0c202052f88835d0b55ed57415ed3c08bc5677bdb8dc62783de261185d67f205d1bc0f81cdfe23d6a6e40a4408310536c9a22c2c9573c93e0c313043468b56ad0510d672fcc126c753de79e3cd57cf8bbcc2a74e46f7606b2fda9298cd415675c0a5968992361e27321a84fa5dff761f1f94cb1f4c992c9dd12320bbf167580b4a6357dbfbfc4d6a2070e416b7e8d846e7073ebc01ad1232ca25068995722b9a2aee12745132fcb94644769ff8244fa6c2e7482f598ecdc5b1b2cacfba1557914e57393bbdcace8d53ccf18a79ea5c173570ebd4858f7cc010abbfdd8f0b2ae2c33326964f14a3b34ec71e9036a8de110d593c1ed745dd73080a2296ea6e1add758e473abf441b55f096ca4bbbb687134eef74f99406c1d00a5d278414640d0054074ebc9aebc2f2c53ead1c31546362b94254400d362391f10b9f843128e04eb50b5250a0027cee10e154d0668613439121ca852a511cf123bec52de3ccfa831dfc58237444da6efe997ddf3a27dd96aa11a1fcf90a045e0f674935a3ad2ec1bf982deec3d9b41f55be2f6f25852d758000f680b6c6a4a4d6ba199100301e8375daf57e261ab5851e5a1e25fef574f04f304745cf30f569ea7ee161a43d89661a11032c0410b27d83ca7a056712482be59a0a70a87d532f3ab5c0edd7a7d6234adbc7dc951fd0e432eec9391b708280de32ddc88bf2bd54c2e85b07f120ef42a2bb9fccac9d98d8b4e4c491cd2e4217439be0d726600cee9c80ef4b6d3b73b72b31b3d5916db9235d5d765dae07fb07120bbeef00b44e3b78700b152693fe79b96469e03169c30eff3dce0a2b41aa313ef58016d3428b36c365d29b140dc7446ed49d5802b48dfaa953435bffe9784fd83eac971d22ec1b9ff091caa0407c4ed5514a00412c573aea613123ce8e7ac68ef434bf7bb89b675061c4c4f3bde0762c9357c4058322b3b11a9e8b39023780e5bbbf65ea13776033da49cf0c74d61b3218224c9a31e2c3b978411d3a686fb69530585dc69b9b9496a678bf63477cccb0c3dc8ca3623e7667d0c229cdef7678cf0456a4719eaba87cf14c922353d6a3a340172b9d586a935ab2593ac90b766370091dcbe59836197176826e5ba308c71de83b87a121f2fb6a15a654342cd9798ea78160751416ed250b2f4769f29ff2b408cfdfa23106a53d34a621911a8a9357c0d83dd96f02ad2508602019154cf37508f75f10f39c992512faa761dcc0330108737ca3ec47cc9de21a13be64478794601900bec72fc08f3dc9ecd9c5685e5e730ebb55f30476c3bda086888d8b228189d3f3c1a5c957c7eb7776b4614dab41f42e81c6d3710321a67f5d1b3822653146ad27c4694048c157f213837bc21db57d4aceb058f2ac6baf12a5a9c4bb4357eeb5769843f18a14f2941cde7d11c18934829506171118b70adf9e0ca1410aeab53b980a8421bab07270af849323aaf6655bda0983a5b1ebe0df74a623893dbae25c050e12c88d53852fc6fff9dc47ccc3d975030faf47886e580dd96b16b6e2adafd2d04185b58ff14f9f6d99652dab4acb01cf326c59367063b9d0ea8824146a808b1c756fa6dd47cad499c5fad0dd3039b71cf7ace778ad2773ccc8374e2928abfca8cc0bfaa1c7fa946d34fbb3b903b2c646d8bb4628e4cff2e568480486e9a396035c121cc04a41f551fde0c623d1e328634e2ee374e26a091dbd5e3c6db97b60e769c887cc26c5f04d6229bb40c4db04d7642e5c0a89d5098402667ba9fa8b23385643fc81f658617ff8648774df9d5c795aef0bb84bf6c21498ed41dbd2ee84829a6ba915d37b10dd099c3b66aaf67b6f76476ddd7c68b1497ae8282433fdfdc4d036e61e19c5e16582c1e1c4e3323a7e667b348e9a34ed00689e62b936db391bdde1148b9ba948396cd365b56d06e96dec0cebeda77ffdcadc071a74acafa0f9b7e788d481c59ab9e4398ee73db18a6281af5414351809b716a30d37f37dbee38458c9583a9e44fd43c17b747c86e419958c775675adaecaa611af212635de2634d4006cb7ae5179799cd57c87e3ddcf5ecbf95ef772c3221316240a7d99455b45572fa4e8184ddf27d6754d5da6731b506702603c97a21b0033ed5ce0146a7c46602bd300307067fcc9076002c95ba4cfa767f8bd16490503dbaa46c80ef5093d470006004344f6f1f3f7fbd4f097e9953cabb2a050997f81e306ca96cf38cb808811f2a5224d4e23cd48d5d788bea46c660614f89d77ee22d0f1339ba85f5a84e49eb2035366eeef2dc35fdd449c2cfe754de7184dc59246ba0945db5a04e2c626af3e661fa79b55fd0b407f7f1f7a4685281fcf2ee9a40eceb8a755541a30647cdd2c23da8d73d9b9adc417864ad2b9b696b3157b5cc7254384b9e49a347e17911bb77048353b08627bdb2f8542578158e6585b511ea9ffdb5c0ee7546f0137a907d9de0fa61e10daaa680fcdcce35dd1190c6d750c7676cb7566b8b9823a04ee6bc3045a108a2bb342adbe70035272634cdc289ad81a0c37855edd942dde7dafd7a399e94d2f900c156859910f8e196e34fd698e62d96d77a6c1a9e4b4940f4646666acacede7bcfd1b389a3744b02baccbb299365b8e210bd258ddf16b1c9482d2664d6b50d8dff69d910bd3149ead45d5bb14ba427df1af880b0015eaecd8289c131b1354875836d82c300d87ca941cdb629957d13c0681ba2b3b6396d038844e54aa9b4ab37011f792d19027553eff0e46c0557eed9c0d83c7ee7597c2af1f4f2d9b610703cec11d0be5de37c54d5a7893e8bacc10871b882080cf4b66754ab7e1f2b8e827cd66f1e230ea7a841d181d91db5e752993eb56175e9cc68d1ac8059fb36ab829fdaf485f49fa266e2449a02180673bb38b39716f54da59d87fcf2d5ff573bc3b45cd7556a189e7ca1fb1a134a752543f43c17d31f3070c3a3022c39322bf844cd99ce6a1eae914daa431b7135d5f4695e5d11cd7e1ef0710583688d356a23652f539c1dfdb46389461ca6e9730182e836732dfcc691ed3b30d6f09bc04e6377f80d055513725acbfd65ec034f9321c0beb4ec0ddc821995f7e5742c911fcf9b713c445f91b3347f2e72f7e63b5436634daaabe92696d733b5222951d2a4c4f926f4ee53a83bc35a4fd6b3315893ec5ba658b46899b9cc26b59bd7c309c7bcab7197d3bc4232399d13f384ac965f51d588c92ef33c48f250fbef3b51535506537015520b8a7d9aa519b328f76cfa26bfdf265a9fc905652c133553c83bf9b55f3b783831e8947c7f4e6234dda30cbd6d8bc5dddcb3d186c2c4ab032eefd9a87b2d912cadb3983b38ee242be55f10c0e7ae2c3b728f1ec30adb6b82b2eef67efb2587686260a4f2d49018b31a057c3680131488a0f7462ae436fafc8a7d83809602b4b9ddbb4f6b61648036bddd0612fd452aade8b6763a7903125bd93752471b097aacfeb267c5bb067b6c5da6d5d90018d20eb90efe38235c84b4f8367169c37c93013393108369d30ee800edef9dd01a2b08e5c9ca80c2b0270f28ac5af471d0d1c015d55ac32dcb92c1c94158d457710c66a8baec5688fac774763ea36565d1eba0f4953c630f061a4e9de3e81012c55646ca0ff40db616654d76cfc631c8785f34fcd121f1a2530d3a20cb486ac632a54909b6fee54b6cedfa7b0c201e57f8bb4f33f618ec98065709fa49ca85775440fdc1ca23bd1b81a68e90470ce5418d433400c0d40b048de29bb5610587d4b775d1065d45167c5217b58617b74761936a0eb1a5e9ac243edf3a4c3717c200728f2161e07270ca82bc231d19526bed3695f7e0acd02fa271f7c1ff04e26c407c4c08538a9ff4652f4787e500869b269928da294fca781d40d3754b28866275ac1071c1f5a4e66504426074830c37938a0d9d4f1fd83cdd994cf274644a9b4571b27226d1328a8fd040126d7d9f3498381b375ef68195560d6b8bd4357f0e96c3867d81a811ea32ec32a68251f312f00328439f6cd3c2753cf5277cb19ae108f7139c3f5a17cac1cf23830bbca050e6214afec7a0fe5a32fa3af86fdbf4f7ddf11fe6dd15b0c3bafd0613056490cf6a9c54dba2e74aeb9579eef9d4bddef4d49f5c235993c74945794046c40fe5a130b04dfec89495dcc08efd8e3c888657ff89caac3755629afc34cc5325286e2d632e4b0ed1350c811a9b1d498bdf4cc03f3f119819d06aeae1d8cc0e84eabba495bc3472a64b4d0eb1ef79c85cdc8f0e727c401b11663ec58991606569081160da9a670e38a09b5bc1dd56416f77666db6b542288fdf7e36339f99061d36858e71c7b46f21c5960100806ab68816d2766e66cccccc4ed74dfe4654398167ae44434fb9759c501515fc1f5f427f9a6d27c4aab23a32a3f1f1abfb61430b86808c3267d42ae2e9c4e806724a4e1ce9309be8f6e58a0b82439fee4c4c577ef9f049789ed75eb3f4379b76126b63343ed46583cc144593b255bfd852ab8d9d70e0329a6eecb1a50cc5903df446cdaf210321c62e60520eb218c16d0bb1b3a5604abd0d2c828323bc0882e48d66d2291550917962e6fcb2708c4cabc528b87fbd2fe65831d1918c5e82ef8f473540a68694d5f104936485d5567538dbb83b64896f6a0eea0186750ac9b3dd385e52c334c09d297c6be47198b164906f351cdcf478467c214a5a40c8a424c62ea595beaf35b6ececcf9adc6c54a52612dc7bb2ba3a43391afc349971429788bd91403271376759306270363f9d47f369f0baec6f675c2088cd030bbbad9a6048a103682553031d741e515c93590985e266ddbec63ef1cdf405342f272ed65d491055c1e3d38ad65ea7226c94e91e92b9eace3c6d46a6f3371ef1b099aeb51a3c7a4eda4b5472fd4da514168acf5f1aa71fcba7defe1bfca7e0eb30762e9c679a530354ba83ce97ce396602d0d446da5a87829da2a4f60efa02ce05fdfec2739a21fa78f80426735851a2688e400134a16c3cd2636d355606134eac9e8da9689e364dbc9f89c115da50f95553a055b422ca4e82d15c8b61357bc0c58c3f8547e6a56aefc8662e9dc8d98df140c743363df4565ac812b874522b32ca2e14b9985a099a9f3eccbb5ff8fddfeab8ef125dcbe93227f828cf1d3bbd210b2a95540fb33ff5be4b8c0233cd2b0d4b278609595fceff05ed3254c64a27b6d02d005759aedfb3496f5dac1d30292c91dbc7d718920de9a08ad30958b1bca406d03a3eb8367096122849b528518d85a5b53e60e201ad0a442a2435eb3f3b8792258e590dff697931ca38c535023997acc2d6a23cdd0ad0f2d9d440ec87ab7c8829bc790fb6949c5daff684882feb25100dd890f930b68d60cb4e21e4362f63a40a2c8fc521a17f9c84b662434dc9bc0d96ca789f5ab08e0d5c78d4d4053e7b76db136e8f8a8383f0824520fc9122a6919bc3373b78c79ed65d7112075f2520998a7024d5f42204cb6fec96e5da75a80a26d3ca3d8f092fd1dc8113a8440aa8ebdb9526ea7793882e23132e4b3c95cc6bcf303247beaf55ed789955b64acbf0d1d9c5d0b3527b07fe37e293ceb48293df4801cebb58b5b568b42126825b5d61dd7b696e5009050ece0a12d5708150f6bb070bfee7620e5dd23d6793faca0530d607f767949f6536e39589fa9fffbf4990e92ea64d24a5ee42894786f445da57955c0f10af8cec67323a6d0358a2761e251eca905e2d096a19ea1133bd3da5a6a074a1dbf5f66aaa898d030a9ca35fa980cf4dc6f8d782e2c63edb34f5c6538c143308f5344616d79e29f16e2dc82ecad7ff5b1ea626f573b75ce56d10791e40c85d4219e9c7ec23f154ded42760c2f52002356b3aa770a60e844473b9ad96b8a32552b0ce1b12e6137e3de785d7f07dd13df43e36beab440f497a90b4d3c45f5d3901f616afa5bf3efe483e8886bc941cc0a628c2cefd1f733c5f428524c0d6fc8529d8a2262087d02cbf9edcb297782d273c7267fd8d8df4a1456401680ad2ef080cf12c6ef92f3b23212592e66a1da1b06382c3397a799cf88da32097b47a41481c074665d3e61d1d9c39c5ffc5d8ef092f0a006f91bb1eed17c5478a05d674292717324bda743545e71aba2c4ea2de0e9b1883a619d45da140a52e04f81cbf152fcd915e73539a2b09b8b5f7d60ef00563fe7b73449686f084dd81c098196939183d9804e4c469829cce6a8ba051d64aee973992e41c2ea7300e3d9b0794728dd3bc5f5a437eddf3837ef01b364e6cb6a416153426f520d33c06f74286e59b8414a8d165d68ba5f7a6811f75f721a091286ed18d5ca56091767df91c4fa5bf08930a7dcc3d6c36399cab8897a48c070913ba322365d321b1ef336c17928318c35e97d63736633cf0983b25db180f7f5fc6c396960f322a2be4e5df51b495b8776956190c04714b46b3c17f494b2e65ff8434ba8c7107b7da30fca1323f6d94ed597efebe65449d6c9fe593f2e8dc8494e11c516fcfdfa5e5ff3eba966f16d189ce71ef89595b7ed434f107d3cb8749fa84847680fd1fdf53c13755263d5db8e1968f77382fb853979e544382c6c33bfdc51f646a7e1fae70bc1e5077c51021e37fd6eae7960d232cbdff51bee476e2d3f71b6aba679edfed0a0b562ff87bc6523434c09bb2005b370f1c3a3c6f10abfff0d7148f2986e7f7c6a3fecd7a41e0afcf9c4f921c7ec2f6b1837f38b20c111164b6ff48c7f8aa366547bb41205427be702459a29a1cf842b9e3f313501df86ade658d48f5da26017914a11240295f79567c282645942f467c9483b25afacbb70dbf9b05da1e2e5a1f4dac110c03cd4641b3e98d9630bddf48c15ec8e9da23bc25e05dd0e094b1892f3c3a6f09a3483f0d850c02f8dbe3d59fe9a851fa04d4255bdb4d848aafec13e7063fe6e103c94fa45d24c90882a8a6535c3de657eaad543af4b3ffde66ef422ca0294b624b3b22c27857f40a57a92220ecb3853dfe4f1d94fd9415a15d495f8e293922106eee7410725f4f7b2f6906a0a919007f5972e123def176a17462041e6384e60e561038cc6a737c1e9b3beddd1f692896083bb47fc417d1ca7e1b4266fe066bfa5aa2da915e464ef1c376cb465b0b9bbf8a4d7bd38b1d8a21e778f01caf3d76a1901b5b93c239219d53442770f4b6d192f5d226524a9902980e230f110fd8f45be67bdd0c59b51b2207f29e8a47013575dfe47d4b3f3de977338f375e3ef1dc04734e4d7e0ccc4ce67bbbee6f57dadc045d13346b9de9ba2ef366a8d6995ef3c0f4da35fd1b87eed393697ee39047999fd769d07c013b69fc55117e1f86ee618454aa12c45f8da7bbb7133fff0141f10b5561287e2ea16fe87bd5386a71b5fac0573d6b1c520d8daaef637ddfab54e357dea8fe73adc64fe8fb583636ac7114ba2af06b29d5872ccc62b158acebe04a253482606a687cd57f2ea1b154852ad57f2a30fc3e7114fa48707cd523c1e4383482ef1a47218f143f2f6a91ab51a86b5dfda56854aa9a9a50bca2288aa20e9a51fc14198e3524b9527db8da6163b38324cd90bc244992a48a66144abd4a55338a3f8ee3a84a95526e19b10c0a4d55e9be23845b226b5c22ee188b66c40f674495ea79a86ae42d63f2188958bffa9035001628744df1439a4b43434343e3185cd58c42aa17778ce3b746959812ff5395526e99b10c0a4df147a16b8635e2e7125295230df8d18ca558a64aef71a7cb57e1192240ef536089f3cfcc7b0faac415487665edcb1a8ed97d65ce33ae2fa45316b3e66ffb31f1e3fb35a72816d62ec03da9fbd9a786c77b1765e28e8bce4ba705c6d9c1c3d589c185f7741b702dcee8ccf880c3c4ce030e4b91e1b0ae0363746274643a0e74617460741be834d065a00be3b016996e8d5a1702137f87063eb2e3b12a14c715ab033b324fe6b6664cfc2957cd0e1e2955288e2b96efe0962ba50a451e3c78745d572ec1a324776880010fd70eed8e81683440101441d87dd8b99e3435984dfdee3abffe3abdaa3999daf471e8ca7853a44a1581df2f6185843c33c803c1fb7dd8f372d769adbb9c3d8ccd1a2876ae4f06f29a3530a5e39fbd20cf9472cb78a6cbf34c4f08d0d4a6ce42e20f2ff6eee7688831af77c57435ac8579350e038779f5677de1f0c6a06b9aee6440d5182a317701dec73a6a1507f8d461f93c34c488e9b296ac4547612d3019f3923e6224f866c8bf7b217777f79cb3bbee70d7755d8731080ee9d725cee21d83f42804baebae74f98e945b46a8fbdcc1944aa50a532915380a6553ca2df3f3937352aa2eb4b1098b3a3195ea3ad510fe2eecb4d61dd65dca3d548d18bb88be2b92a438127def8963d13796597fa8b1832b3d0a49b965c6a03028648542538766574ac93f0a5d53680c4a99526e1907c7ae3575d9fa0e494318e6fe8eafe980e9a114b8d00bc6c19f18b88c7b68a114dea334c66762fcc442f609bde41c1c6aa1e43d21175e4c975785e7e0dfe1f2422ebcc78b80e368817b3c2e180757e1302a3c0a78537852785f1c36018779f124e0302fd9c773141e145e172f021e04bc271c463e7e8f8bc35aa1972b6a5e16476a1e93b9552e962c600be2c09f52892f2863e2cf6c4be3ca2d31b55c527c073fe95ad97614777cb8e355a91d0f7ede8e724acdbd22c3ef704dc95d89f34c551a4d98f83350a1e11941d6ae162e7708eca38373f2e72139e39c717632f9270ca303876e74970a2baae81cbf2649efbbd7fa5efc1affe3cc0a85667ea150287c013b658c8708b17f443795ca8f73ce395f0757f91df41ddf71fc589bb596897dc769f0902e5d2edff1c733b925340eddf2fa8eefe85188fc3159decf4fce71af060aad3016ddfcc6a01a8c797852a314d209f2e60baab00aeb72c8eba4dc32a62e6f8654a6945ba62d63b211662d5c0efbc25791197c7f7c8ba43efc184020a82debda92ddb736e6f7eb8b7fc94f03a576beef5cd877bebfae0f2f81e6d7cd98a0eb5d1df807eee33924983883efdff4ffcaec224dd0a5bd1450e889a10b040a3f31747d402128862e0f284c89a1ab030a5562e8d240612886ae0c148a5ea7fa44d5cae5a2314797e79c16cbc43438a7873866200c1486d771a8572b73748540a2cb81542e9b9ce3b906621c9cf54a3f69239a9e4b77e1a73dadc304f1374778c3c4e95e8c4531eb2e63f00669337fd8f95027d499d8c9ec6eee2bf9e7bf42de0d0adf7b5f947af0bf328f429def086933e7ac49120485f24dd1f7de137da557dae49c2ebfcef975f6a12c94bf2bc19cb33766577609b9d99537fa95f2107efdd925843fe8de083938e620d055545ed04e1aab7a08c34b628c2fc638b82cc5cb44e6829de8b2832d73b91ce00207eed961fa1cd8c78bf25cc3f8b5ccc3cafd6bd90170809ec118ba47ac690f8ba805e3bc17957d4072e54581516054cf132c84f740711cfc21987d3c1024491b9b7f1cd08bd2c20414ef111b10e54a15e139f86b5ca91f3c07bfd800ef49ede0384ce09e54168c53442a010e23c261e1e34f0de1b0d4e34f09e1b0201c0684c352a91f442dd907f4c161ad1e1c36e3301d8f3fb583c3461d727018ebf1a7b2388c14b5dc11b07c1246b0f000d17c2db500137fca087c84e6f1876388c0c40f82f7f33a700dd377c210b8ef8862b00e570bae02b862be835fbbd0305d02700d8000517c473497c0c20354f32ad712587e806a3e05d6fcb7442ed998ba5ca2a67421352f01ea22e00fbbfb9935342ef33e96ec13866e6479c3c458c2398c8062c2c435d43c2c220f5eb28468904790351cb3e6636431f1b3e0b0ce09b3761dcc2f8a5c66f0aa0221fe9085ffde4b3ac6d1d97118332f691141621cec229720f3d3e3b041356689c3b8be2b029c75eeb4f6a2a2baaeeb4ccff33c2f8c79fd416c841164c84445dd2ce6b8845400799b7c0ede0c99baeb12ea77bf576310c4193f4e22f43e64910b101a62dd307127f3c6f3324d1695eefb5f7732ef28a47220a82be07f7f45758302f8df17816591aa0453258847a194d038744b2f3d70cc3f32e9baacb5d6a3d04704fef7dd58049636a54dce09bdd1f3b27eb01b853c2733fcc6fcb58820456f14ea1e0bdda1f29631bf51489bdde39b02539fd7e9ec37b5d27f4d1f83bcd7654c1f9d78a55f33e30e7f63847ec15128685573328708f187413572c4a298853c146c6c348d0b813426cda847a1cc0a0a594fa0aee45cf946a152649149a44621d548e3352721b224539eba38ebcefb5242770a7d35b611c9fc696d76aeeb79218b755b5a9660ed1964698769dfb9acdb53f361d2e09c8f04b5b6b939834139dff7c719b4b42cc1a91bb234eed137432953ff357559a3e25d30011d99fc74afa831ff76a552fe37c7a025fa7377cd8bb3eebc0f4ca942715cb1c8d68c0e9a9a1d3c6c30c8e0a6c792aed4c077ee6fe03b9703dfb95d38c618ff15660dcf61e2afe99864f01b188e28acc9acef8f937d561f663cba1c4874c5f0405bee879eb7257f985d79cca6e7f1e49cbc727956b93cca259aa20b4a155ea82d1eb825ff96ef43f775c9c64cd56a4c1ee67d6d5ecf795573c1fc4ad277ae6a54dd0cbdbe2e9738e65015a652aa55ed05f3963f39ae3005a63e4fe53bb7fbc9395aca0b4f662ef53703de94ea9a5e199ad9754d107b7284516eb392a2c7125568a00d1c62b8e28a130d64cc81822b4fb840032e80f23a7d930494170974b1c502a000aa916072884243993e6060e00811448511a28a6c3a981bb6c8376c91c31cb1714605dab861082cc4f03c2f6320bc57c7c48f69fe1806336a061e4c5cb3f9018c0c53bcf6cf59a5ea9cccebaab5a68704832e27f353ea721ce187ac94e7e994f77daf552c3d769d089a597f2e27d3269aba03faf33a283664f01105d5011f1a0a8c59a3c9a2ddeb9008c20360b8487145095e00460136983983814ac2cc1d9839e71cc50e5d687a1665baf880131e06310e098a9fce39e752c7878d09cc9c73ced7cc36e0f7c03836d9c707ce599411c3ccf9c59cf3fbb83e7ca85c38553e60d67c0c0182616aadb556993a7b5e152b76f03ccff3aa405183e784a9bdefd39dd69ac646f3f0e01e9d3db04a027228abd89043952b58aa3c5d798a2386a714c8f0640228f0e90b73c674304f1478914b77b317c30e32a4740c31d800ae20cb47021a3c3662e83aa03def0a066af0b7a206ef0a143580b9a244161836f094845923554938fd8044192f2d08838d144861c52b80c60e4634600716d0200490bfd36c62180c08a3013631f565351860764000753e787e8644f10ce1c93e9f3b25badc3d4ff9f37384ee481a9b2e6b31bb37b3fe1ad8755fce588d1bccce04bb2731cefd3af8a9bd0f9e2cd4b0400be7963c363c43602055a667918608cc1acf0a869bf58bbceff789d0df75eb8a0b665c0993e50a1833d600ba626600023b7421a6052cb002c8bd754bc7389806264c0dbabe3cb80747d10095718ce8965746d13084a9a3ac841e904e3e3a285ddd971a635d3e9993801ef8fe9e4b9c83e480fc1e6a4bf73e401536003f406a406a10065db3c7cda7bb0f7c97b802f286bcf14a9bf273cef73839e7fb3e92c67d7c4184196040ba0e6d48a82dd826747c04ff0d59feb8e441de47825fb89748b8c31ceabeef33c2738f35075943766f42087e80a4d1915d34b38871488c137af6f191cb2f82ac89ddf7c02f46c5f086e951323c99f96dbcefc19f9fa4c13e0ee44b607920afd441668cd10883ae3943426df156d8225d9bfe65f0bbee311732fb406dd1afaff7687d4df7f2c6ecee9521ecdec32b2049f2467be5e79cee71724ef7505b2e4b05648d34796e969045ae42c7ae30bce4d52b126a0b8845c00fb5c53f867f75e0f7c1fb36d79160a77bef1406c8028413592c2146045f806aa459a5878c2652c0850732bac002c8df91b28f13102250838637561044101900aad9989e7e323dcf733114d0c50a941881153b7801f2ca1f337b0dc7cc3c663ee38a1542a025890f3cb101167c71bdabb5b41155cb001727c0e20a0d84808d33c0320298c38b233400810d28808c2fccd4125c6cc9a10b2b36942004403ca6fb7bead483186920410518095ca18367610617b37b11f7706076ffb827bfc009092f5010c504b0e8401465564098a9259a08bd771f350f733b1a97e7517932b3aba65d7f008e6b3e995e8a34307818bd05e9e5ced9283306015ec811040e6200755dd7755d59b3fd98ba14af1524489a9e85196d989ee95998b18359d3245ec2bb99053700e917f5f7f85c929ecbc645e3031b58b21063cc0cbad3394a9324cd687a1662a461b24c07f3f400b346ca91dfddb1eb267503de7cee18bbdccc187bb802d2cd8b1fdb701de6f79addd7b489f377d9cbb9ebaeeea450d1d9cb7fafa94bd09fb58f2cc290319164ed64ea6ce20c84313b11df22b5d4b7daac7ddf823715dfb4aab77d63d79777eed8e5ee529c741b7767d7976c2fc5984e996ab39d3f9ad6733d426d3f642bfbe308b51da1b61fb93469674a2e456d3b29939a2aa5b99d213db19e9f293b3c2f117c5e407eb0297ad26436556d7fe0722d9b5b7fac7b664373473ff64da5fd70c739ee18c71d7fe0eedadd45770c80cf036e841ef5f4647afecc084118b686c81fe6724909a14bc99d0d84b252e5e2c73a6b9da1085b40dc7b95ee2b79ef4baed65a7bffa5f4f7aef383e0df5ccbfaded739632ab5fb9ea6b284dbfce08319a4f231b99f762979a952c9d3df81ef64d6f07b4a5e2905bf3f97b0f5c3bd17d7c04f3d7685a1fb5036bbb5d54bf8bdefb44b8a8da9e4bd9baa520a1533f5d825c526f5a0fe0b9652a8749f3fd77429c5ddc4b80236e4fb835d8b07ec3e3a239de8c20f64055f20fcf7c3ac45118bd8bdf226e87b4fe92b9768c2ef954b34e527c10a94fea7fcf7314e3d1e9fa45ebba05c08ffa644a7a7a7d015030940f9552e282c17287f0c2400e9cfa295fcf74717d4f8581e287cd005f594ff965056f287e5537e550985e581c4a7fcf84597951185fcf99fe07751e5c272b15ca0d4872ea8184800523d960b14be16c5d285100a84e24062e9c296a2f0efbba07a0cd4a5bcbf40ad1c48295ec6f44aa5259af02fd1a45f3fc17fc71b14f4e32fca7f1f1c9f64ecc11082d9870a9517f0e77fe1be7e2a5b8abe573d15282c0fd41579dffd0ba907dfa9c4f0405d49e58554d9bd57bee03d586279a0fc5ff98277bf2bf3fbbfe0dd14e8ba5c58341496186e0c5ba490705d31b8a0b06c914282793f065d6e91428299dfa356085b4280a1e2e98d2b4cffdbc5f4efa04cff2f09b303b3050f6617bac3966eba25375df9255cf3fa3736b94dbab2e674e36527fffbb7d5e6d7e47b77e964d7a63736b94dbcf70f07dddc5bea98fe3a267eef7636dcaf54b96eeeafde8142178b25feaa7461f522f90ee442f8e3aba07ab27481f5aa1f4b17b614b15ef52eb43e0c5d37b75cad5e2c6fee8fef0444457c567973cb1b14c2677d51f8acbfb72c52fd585261bdeaa9b43eacf11df06fee7fcec9ef0424ba6e6eb916894f8236e39325152a4e3a01b14a2a5b6a4bb0be7c623dab7cc105244f7eab141f244b128b00feea595fe3d961c52a9fe49c560f1ec6e50424ba9c80420ff1752ddd12b2eb3e893f9654a8e0724e7ea3724acec9bf1239102de7e49742e440ab2772a0f13e892c34a460f35e236e1623b4183184572fba584b52af5db75c92824dfd2cd78d1ad722d6af4a2a5456bf2a2fab247220a8eb859559ef40abaf5d2e667e24997581c22b8e17c8c75bd2f80ef8dde8bf0fa42a411bdd306013335d9767b23733a3c5ccbc7663666646bb21cecc88332228aa728b5c8de08cf8216e6112b3f00a8f58543da8c7e8317a4ceb7e6370ceef647868379ca8b8e1f9e7ef260fffca9a13151eafc56837be771e8f24f370d5f41c3cb2c9e39a3c348f37dcbfb2a6c968323cbeefb3fdd87e3c1e3cfcd3f1b53ed6377e1f8f991f83a779cf3e19fccc93bf1279bcea3570f1f81e2e1e7fe3e2f119b8783c06362ecf393ccada8ed2f663d680a50e12db989f0d1ecbda975faad463f4183d468ff19c76e05412974cd58ce3387635aa71ec3ef0c74f93d164f498b1e67e4dcd6b37eed7e839ccdaf87d3535ff7d5a0cee199ff5da8d5be4d36f98b5915553c3fa6aee7f6559d364ccf1e747ff25bd9ab2c63add0769ca1aa8a39ca97d0de7b2caf1bfb2c6638ae1a7c7e831251885575db772105cadc0cf4ba95eb55a81aa5fadc01aee0204c70741f0c515b812555f66bd48beb8129f14c55275bb8023985721f8e3083ec65ff017fc057ff998f8becff90b432f0cbfd03ff40fb37f88bbf8be30fcefbb5cf015a197de7f1f2e09df47adbd9a4dfc0cbccfe287dff78de32a3fe9e3eb70791ec7af19593d1ff91f49b69ec675bb88a54d3453deeb985195adf61e7ff98cbfd064128354b4c2b00b7117ad30ec5af88a1047e12ff80bebc3562bfccba5f5d84bab86bbf056187ecf0a9f85af68858f04b7eeb3ca0c52dfb19ed50a75b8583fe3f29cc32abfdbc54c7dcd269ae087642892e16bfc057fc15ff0177285bf383c4ce891d987754bd72d2c57046f29ce40d678c06f065229f59d59e331c54f81aa510913d105be8fe2bd26785325fef2f9085d383a3da18e6321af59e3e93efc055f21830f9d6f06f29a351ef37e4af5e2e7fc4af097fb432c55aa9f2e788618c15fee8f8bbda4c2cbe5cb2df281e5cae58925fe7249b0cc5388a487386543e83e3468a332f2e32c506cd1f0b54692a606b2e6687c38904aacef5acf1ac9996fdd56ebc71fdf0d528b61957accfdca2216a214b11005f7784e43f7e9312d0490de5fb3e6688011e5c381bcf98d66341bee213f3fae9d827b567accfd41962c56cde73072c34756a9ddb83fba4782cd55f7e9314e3f66ad7bd6c9f4bef6632396351e1cb0fcc0fb947a41e8e3ba04cf85450379dfb98a4820cf97f0745973ef0999739e30053c45fea0bd5c40cc13590bd682b528e3ee0e47082e13180873ee12fadba005a6915a09b326820ed31f45431593e60a11de8bb3f64f043f30890adc7bc19402a272ce29151254745da70a8f98e2fbbe2f148df8924aa552e2588497300cc75502a218c725e338ae58ae89c05dc40bc60b9715088690c00ca0e912b012451cacd52886aa9478730942ff8b7337baebce4bd04427de7b6fe769213e2472cede97313044d775dd07aac08b0faefb8129d16feec295321d8c171b3a2f2501115f1c44683a1828ceb8f7e20c8518ee3b190440682da67944ea1f4cd3c17481c2dd47bfda073052247102d525433e29c2f842fd3fa9c568328e4ff01d7c5d4fb4649f22289e941b361ecd63efbf54a88335e2983c66c6efc6fd713f2d06e3d4505e2ca596eca3a3ac81368fc3638a7a0c95f2d363ee8f7b73eb0a7982c31cc915a66b61640c79bffb9a1113fbc033588545784577cf387311e23bf97a1f89c327d987e5b3fa9c7acfe3f839075495b53b85a90a7fe5729c1396b5dbc5547d8fef57622ff7072e8dcafc24e7e45459f331cc5c7a3ff8cb15821f5329c1ff727fe0ff5e30bd560c644d4854cf875f08f6e220f177f9c9a4b03746172c0be08271abb197cb250a47692ac85c9f999172cbb05c35fcf96612fc106b70a61b99b839d37a3de3daf13afeca7883c28ed7f1453bcad6ebf8a29ab2f5340fa6de041f831fde990f41f07e1ff6bcdc755aeb2e670f63b39be9bc6fb5defbfc97748dbf7a249874b11e49f695cbf6638ea51e737fdca0ce043f740565137c952be89ae0a75ca44bca2d6382be93dfd3e102f3bfa09d58b86b010f3a2801c50e0d28420c2f4d783d6ce0c51a69c0502507304eb840c00206b4c00a3010688307a724a4c0c0d31424c862c453143f63c2a53052c0012a36700618a82635aae8228b313350a0090554919d822893460d32a4c086123cb1f40e62fcc08232aa2861011ee270c3898a16f090850251c830869523ac2c20ef70440b8e0863650b207a606207333f6801f0f33a9d71d6c1747f57bbaeeb3a06c4f04318440461831a43a840079cc50d6b7881630927cad8613a1823d4c882e45cc0567081097429a3060f60e81c5eb0040868b802864b19739c61acb165072e88280201592ed4104058208604e020430e5698507cf779f68a80e187cb0b12d08231e10f171f26800005c8400128ca30230123d0451c61ea179f94f122470736e0822e6e00fae1c205fc8ad0a1082c668d04adc8df106144f0b5d63aa5b5d775351c336b500f91854a634da3bdaed35a6badb5eeb23b98a3b4aca1841133dcf04606340e37081d9c40820c18262003694343e60f93a00d28cc80400992f05286039f35c9e5838041fffb7829c430112502214ed08307fc3dc9f33ccff3bc110261065bd0020b06c428a38b2f6db831def064021e4490041c69546183077e5a835fd779433440242373c95c54e61dbb1c17e90559d39ed9e5cef49deb323bfd4dddb74cadb5d61dcdbdf722c125e83b3934af67deecd2e605c10c33c6f87a0e57f84bfc2098fa84b839e79c7d0075ce39e7c7c1e2236d481a1f26d03650d9c1021cd042460ae060c16a08080f4ce1012178380105b260c01adaa6878fab4a757180f6545d0f8ca36b509d20634b96359a78c1530d4260e4c0c51822c8640101cf74303970f172004d2ee6edaa480101821d3070adcb90c1e6023319fc78805fa7830d5eb6d15aef30b5aed13435d00001840e2066c83223c70d2d13d440b28100561933acb2f0617ca207514b113a845ab2e0a092a387d4181bc03370f8383083374510dd0f0dc841ffa00310d9e3d04276ee43096cb89ed9c0d201b1021d76b8c9925529d007224ced69ad754a24e5c0b20519480051051061e82e1230b5d62c53d3606aadbd0c0a7600c10c5c1cc1030580740f9bacb5d65a6badcb9a0f1b1f41c0e043fbf0a1862f68c0e2234af7e082212194106381196680401728ce087d90c011488869830636e0706344009007a088830a34ce500102a010c3f33ccff3bcd074303d789141ddc304c02ef595202922c1a9ec799ee7e5ae872740a72714c851011b9ae0220b2d3ccff33cafd3369fe960ba7c89000f62b4a7713a06e49c3baf89afb301dfa647ce3923f169d086044533a050428d2f8a480205542001768181110f8832c3041598401143649bb7e981d383109f5fe1c5070f83362428f6c0c3e775363d70a230f38b3a3a60bcd830c3e88659f31182ac4a7958cc985fd7753d6c7a3cf8815d5a19b42141911c928724017a3a639bae73a2cbaf938738200fc18142cb8763c3a3f30345115dd7759d91214670b2cf10287630bb6e48873364c84f6dc8ca0c1e0d7a1d1434e49cf3e3f87817dc00ae40866f0c969c73d7755d171098397764745dd7755d3260e69c73ce66eeba74d1759fe7a01ea34a1a1560228d38a0c8103173ce4d74f9e2032a8063860a58c91df9bacc34d987e7e59c73ce397b60ba5801f5f9ff7d7866ed79c6e81cd4e871cdda0fcfbb4779603a981cc4982bd3c16431c2acd174c9294f531183eb5c66094461769dce5a6b1dc41a1da83b4df37d5dd7755dd7755f07268834cc0e06a0aeebbaaea461990e26082e3c68f1aca85266a4b2e779a40d0d496303ba0ba0e0b0620d1560a9018c28dad06880337400c3146b8ce009322070c4f703055c40b085951e5ef003191e1615dee000153ff820860336104518a6e7bde8791ecf8fd656a832d8798f13e56388cb41451055b4a000022fe8e1cbcbf0c2122ee832022f7aa0a28a0c85a8bbdc457165d5e33dcff33c3163c444e1010f5cc1a2f374d6594f91040c6590110115c071030f5a523a062725def8620608aab4d144193bcce151364e84b56be6f0620c3ac6faba6ecee02db3eb7a405e3c3b2993ba1ed1d893d6c3490e9e707726d586b4ee25f5ff69ecc9242945d7160a0c16c3b1adecc4ddd42430986ccf54998a940eedd9b926e152206ad9d304b445d32103a0b63345839634d97038f3087bda64b175e3a69cb729e7edc894f32643d9145ddb293bb6d9f368dd4fd8158e04119233c2b2a72d8992753f6161b0d8edd2caf6baaab26fd5f4f70d6dd3dcfa48e8cf762bdbb829fb59f47fd38abe88516c5563b34d63d114457a20775fc99cd420cbefa357db9fed96ddedeff57cb6b5e54ea43dfb6d3b42d9744361d717dba2379e1791203b3b4adcfd3a4e32b36d54002d2d09dd4ceb5e3aa1c5e5d6554d12343b81f65e83642c7a83c1d8742ba92d0cc6c260edaae2703936b66fe78ac4e6dab385b265e9693b81f6468ab14d27ae6955db73969e4d6ce7ba7127d8cedbaa3a619bce2730db5edab6184c75c26e01d0d893498a9eb423476c679baa0640579576c4886cab80a4aaeb132830d846d7368663cff69cb5e95e372d4593d89b92f68cb5e966d3a1d9b9694e9464aa0d28655267b1d966d92d5357dc913d5393a80083194955b4c59db067aa2c36436de7528c69a7b8dbcac4886cab7024857d8bcdd69309975391d2219b4d4d321bdaab2a8bb17b096dd11bbaa66812ba9eb0777b26ed3529c98cb5ec696b5974ca8eb1b6334d4259d6869eed5602a5cd9db06f3976af38759dcd6c2a8ddd2bad8dcdd28d6373ecd99e4a9250a4544db2733b8782bba78e4b4a51db110a651fc999eda419ba1e993846645b0536c6b27b4d4ad1a616959db833b6733b27254693b5278e4567b373d3623229b79894db0cca6ecf164a528a269d2cbb9ba4688a9eb7bdb62a8dc59d291bdbedd9b2b1a6d3b65718ecb65bb6898de162edb6d94e5c8ccdd972b79cecc8ebcc86cef57c62047736d97b2d024a4a5135a9cda931dc6da5c570b75c9be654592c89bdc570b75ccc76b66abbdb73864b2109eeb632f105b8fbeae40050772772d2c6e6ee62cff57cf2e9de4ced3efacd9e7b95a5e837d96ca70c4dd5564dd5dbabedb3b3bd5325996a3bfa135eb3ddb6e8eda6ca6e009464e7d1cfb6cda6aebf8f3e3d65df9eb45676b2e9b9b69f6e9cfaaa13ef03277974695575fd9d74ae6acb6297933ca6acfbe8964b71df74da36d175770c9ce4a1c4dd3f48d9adce7e766edab7e95ecf27eebee3ee3cee5e83b732d0f26a378bb6a8ed4cd7dd4ed96f4bd5155d4a979440091d65844102122260630b263a608400359e130885aa05c51739bc1406c0690aa2e87105045e3c605d310108579631480f4474e9b283021b1f6cbc08a309252f68a008012398e1b9098c66e9c6e14ea3a7b528d3af1bb5ade7fed94ef73e7af683a6b54db73b10ee5ec55b1bcc665bca1769d3cdee15f7fbe85b36777bdb4ed393267bdc6da5fd6cafa74db6672d7a436dee18c81d9b54dc3112770f72ff827077276f95a1c41d9370048fa0e4ee1a13c9014dddc93c19f977fb5cbb1ee1fa67c49d75adfb39eb763beeea8241b48f671ef4061f06c14ee77b9d077e39f68b8226e1fa57a4739677fddedb75437088fdde9b31937bbf8befcd9e01f0c5f7c33b88eef5eee7f88eaf8c3d0f47f55763acb35c7d2f565d15e09bf2ee6a9cf7bd357c2f0653c037f8624fe34b027caf872f0a97c7bd198316e8f2b7ba3beebd1713c13560be445c7c3d7c2fceb18bb52a35048bf708783b1f7984fb61ac816415c63787d5730fa0818441f90976ed5889ab338eeef0cddef570d5b88e9d2449bf7ef5c577cc053108f7e20ee37caf90fbe38257c418632fc9fd00638d2f4f7e85188000b8e34c06f887db610caebef93a7e825f75b563d4f337ba36647759e03a922c70beded5df1d6fd6823108cbf7275f8cf563318573bb7b3f1e0d84039e8b551e88bf7b6117630f64efa6b0ce4bb7c4b97bf3ce4d85f882dfc548f0067803ac41f6ec97753d8cefa8c9ac310618e3eb5d8d74533e6ed8e1dbdd95cf0d1efac214be47a0f8e18bc205efcdf8eacbe46a8089e01e38c41fee6ebef8e20bbb1ae0107ffae62edfeb73f3c5b9a92bde7b8bdc0db02a7f17d417df0bbbd7db8169aec6b7d397080e6fc61bdc9c31d6585f2218df0cb0eaa62ea8f1bd177635c0aa2f5f0dea7bafcf5f1b1040233984eee69bbadae6a652b09000371bdc0ef4c5d8c3dfbe640d4fc8e45e7cf1bd77c73fc7f9009c2e19018cf117c01162c208c0b5861b2b9c6a3c208534d0f02217190ee5880c6c28e7174e74c4144410b9d4135038a246e6c939048909476c900226670f1e2247d8fc2072ae1ae093c6e8c3c7a5ba3d695c17f418954940cfbfc05f46726cb063c404d6416301aacef3801082113a26e0c0e8450e9ec78c1ba1a30537ea72f0d730b86777f70edcfda80587fb017251d8f5b571a78cddee51fc89bbbbe0648b85b33d67b191956f32154fda86276d8207c2df4f0555c8053c759df801808c2afa08209a879844033c043c6913523b543d6c60784a09400f206f10b69e0806813f9e2a17b151755c3c815e9e68a25449f9642250209ef1d49579eac40c38f024b625154f299b15fe8a743f3a1eb0d48418fc6045d7f0c472b15c79a7f503b46995b1d28500fe7c46322b1b019378ca4d80fcf0549e039e72e865a0754220f96a51eba882ba103e017819782aaf26d28834299bd48e4f00d90556bc0c32172b9d164f1ed4f4ed631e68a06122cb6be99b777212fd44e4e1e16f85efe673d2d5acae17e64e8b39679cbf0ce694aa87ce5f0adf0ceb89aaf579dfcd9f1ea27fe80b62906faaa438e81af0b472409596a76f402556f41956cad87b9917b4d181313210660b2d72495072c8b2048884117cd4d404637e7c40b2c08f000338c149192fc0d0000738f068f90149106788f105982a24e0c4123f5e00f021d7e2c0ae2a38019932c200030b289c5e28409401b0708213a1200e36e0b1630a299c9c78c00b2ec434e8a1a61cacce3043caeda9cc0b58b0822804e0b1a32506982caca84202513c81c30d33c40a2080154e7032f48517596080025a9878808c2fc0605105150b4882862b309c808c18615441c51410807adab3a125ad910c1b6b9cb10516527ce9d2440e36ec59ac005108b0c2d09222b09cd6f885175b1021440e507b5680000c052d29e26cacf1851717c8428a2f5d9e6842871ba05a08c0d00845603e4380e4ccb4b49761630d332eb045165848f1e5892674c8e1061ba0d488b51085841faf39e430a104d6ea033db2d440030b2bf02061030d4d53b6a4cae41760177472e038c0066806e026f0123708069279ee2bdcc921e4dfc101ee716fbe0c3206d746f3b83b523a666632a959e28a1c331031087ba85aa90ff43eec795d97af7b502a0fb878fa525f4aafc09e2f9535108baa3829411c4f05fe689175b5e8c534531e734b8f0143104fde0a7f29ad336af0f38027950ae24cebacaae021375d0afa7a462af03482094a5a3060add226e4b0e0290456400853e576b0160748aa609d41dec15dd7912e84309e3c8f832750352ca02b59a88a0c4f18a4561069441a0304d5e04056b58227236d4ac84807f24be5b153d233d45005d42b4f83cb1252a50d24522070000a84e387150e3b24ad8f882e6113808b151d1d8e2a4805002f8a06e12362650247085961000e3b481ea851660202ae780a734842c03006615d157ae4221f063d55541f114f05aeb2cf9050d64015b48227d53734420199dc2c0952a5988850664626f0c443ebf4a83c988ed153854bca022ce0490532d9e08886a72e93ddf550f0545d110f842340612ef501c8c4537d188c4a523eb493140f9a1e00c86007086008251001a08a0a7c7d4246213e434f3e517f1974b0dc9312f5078fe44b7d2afda32b41ff20b9dd4d76753b7852a02c135952c40654ed48f95449e2241c02e2681fda87c7802710565a491742b741ca87eec1029235b0f2f4fa713352ded1b93b4059801da85053271e10268a8b130c4802014e2e4c619590b6cca8005106c0820a29407962420098c07e84e000c0830e5e6781451913b8d10609473c2833c0e03302035d2cb10014969000d3a0460cbd2ba6f8b28589259250c01146109102ce073f5e42045104a5cc1c6f1c0dc00463aa88a92d1d7040918e14517d4ce490c527d581319a600246a487074da802bf1e37128822ca9e9de0240043414b604380e4ccb456a34ec00d33c8308386081470e2010c705a41059f1e1b1a9d81302950e1c8083da9cf7b22862f1040c2871d683840110948000e27383952e403f1ca91e3c07068323f068bd16de0343a342e19580ccc81541822183803f80b3c057e223b819574edfab81c801a743d460c300f5c73695a3aba19dcbaa45ee1b053e11408e2efebb0bef95ecfdd55dee306703244623b3adb145d713ff64c95a1694ec7fda654516bcbaab2b0e87b4eaa4e77079d5409c0dd01e0a44a08a9c271a347523fe771fef70cfd16fd224debb99e34d99fe8b74d47512916903e9c70f795932911b8d127a5e8a6317d0ece08463e4593f6510bafd78b00b424f788e07817e4eeadb7b490ae33f61b8293200aa091146dd93d7b9aac3d6fdfaae9b35b9d7d0ece96ad3995053700419fa5bb3d9ffdc4ccd24d7e517c493cad4d4ab7ed91d4df32d4c6feaa22ad67cbfe4e4acf35f5f29408da01eebe736bbb59db8974474004c81ff975cdc94078983beaee3827bd2d6eb9b405958e0a07c7857741a5a33ac0ff01feffdf1d1b71c745dc318c8887e561514cf087915e8e37e3eea4931e767f98ea612dd2b6fdab8c5a5a12bafeb748db66c49e238c5006d94de1fe2cdae68efe5974d3da87b1b334a71e3d92fa6d4e7d77fca3827d7bfe6c2bc9d0f4c4754f4e0098bb67e06417c56d47679bbb75a63f6cb68fbe6976eed576b6b926abbaae4b98d4755581ba1eeeaf17bbbe66eaed477b43daab2afb9cd435b43ee0c5df88910782f3ee9e7277d6dd597052bbfc08b501d96177dbd4aeead149ba4fd1da9d270a1cee1e8505155428223318ee5eba3b76326be15e1eb9631f77dce38e4570f72177ddd2d9c71578883b16e28e83b86320ee98c71dff70c72f77bce38e752ece43f70be5ee037012bbb167aa6ccf785e22bc78767e44608f7e2001e1e11101c879741424c8cc070852cf8e8abed8dd9eabecd5b4b62c9ab4d71f6ad27acaf014dea2361cfb46ed69b4c3493cc4dd679cc459dc6de7927adb6b4b0924eecec3495c0077a7711207c0dd4798b26729ba6e36459f45713eddb637f2fbe867b69c4a633fc7dd83b85fd5dd536f7d000c771c82fbbbe399bbdf9cbc3cb437a4eb85bb5f0c82afeabaee4fcf9fed74cdb57b6dd37ddb36dc0dfd163dd7f69352b46dcfdbaa22fde9170977579df421dc7d74f2bebbd7387943779f6d1b7a223dbbdba6a37f24f553156dcfb28d63a7b4b72d4b55273058d196a56afa855d5fb3742bc9cea3d846d7b647c88b6767a7284d76de767670ec6cab29bbbed875a3eb7a1e0159f7c5b8849b6930b04986f6aade7eafa7cbc11386a4911e44d218ecb6e13e022d27931ce0eeb673b3ee449201928c1ef6ce84cb5d01aeb79d9b4d51a42677af39398016b83b90934842b83b09462e55b6eed9aa7e52aaae4cff3aec464fa29c19c32924d1dd5fb374b3e7b67d7bfe3e6a4a692de691f3c206c3fde50ee2a155ad9deb5ed514bdc562297a9ba5a852ecc84dc682ed6cd39389e95c672d5a9ba1272e4d813d519b294371aa0cc5a945ed86b2676a1376efa07643d9b6a373a7b0aab6935df7129aa6b0b6ac7a8bb567cc663b65ab8ab253cedb5e4293daad2443db36dd280e95ed75e39ada983ae5bcb1294c41cd764359b76d969e4c36143667c3ad3928b33487b4899a724049293ab3a94c763b650951ba65ec56b29edb9624294559d596a4c56d99cc4c37ee04a6ed04775b99ac1b69cf768bb22a6e2b613ad719ad455738925b5b768890a523466e321660b0204b37190bb1d9926d3bcaa94a509cb9c2092f1477feba955695298684a4bed6adc49eedef2021a96f84c5d98dbe8c62a96af429faed66d520636eb8661b5d03337177ed9808bbd1d69c723681c18a3e65b7adddecffb9e6ced835223664d4aa362846dfaa361649fd5565d12574f6e76c9fb69ccc76ca5e6ddf7db85f36842eeedecace74c766e96663ea6cd66e7607178bc57037d9149c67256a29fa6cd3c9643bd9dbb99e381f214280a06c130cc6b653f6abddecab2d9b7b1da375279de9d9c4e89b8e6c43dc6f1a2eb6692bb1e8ed81a840012ce4eeda31111907ba00f982cc4983244092bb8b45d9147d9ecd9e6beee469a76c1529455bf6e7c5b3b3a3dad8586e363bdb74b7291adb4be7b6b1676c96aa47b126597bced0597aca62b6a373dda92db794c2d8a65dc20bc59dff6ada4a1fc2339d2b6a8bbd64a8ed28875b62829904cacf767ba6bb3d65a92a23fa17fb463f486dcee867a86d1f9de8d2cf36abae6adbb6ec665bb5692bfd6e857eb6374b634f5aac6577123a6b73381a7b326955758dd1d89309edc8ba67e7660283c950a029454ab22ddb38285bd6a6fbd6743ed949eb494bb2ee59baa1a8eb1e40aa3a615176a75ba8a9456d67bbaa4d78820411c274ce864e96ddeb6c66a2ad2dd7a48db24649a32045398a12254a19c5dd91b8832e21eee0cb0bdd3de6640a5338bbbed6cd06b9cee23a08772f809329e80001f2e27901d94955b616dbb375b3ebba44e984254429a836d2c9b27b23d9ce5c2b3b9352b4e9c4c568ecc9e426636186c64e80c1f64d95b539f526632146634f5acbaa329bed94417180bb43a102a504a237d4d428b695ced6e8935254e96c9b662751144446fe62da2993fae7cf4edacb49221cf7170a2140418bfbebf6e7afaa0c6dcf9bdae6cef47c5a524e5d69ed0c49ddb422145af774ff388982ebc9189e93aeea11ceb728abbe52f3c9538ed14dc6c22cdd50d8dc6e91549c74dd4ccfee1df404c9092338e18713841c8a934ede7062c4dee991bae29e4df752baee2535e96d672e3d9be070ea6ab3a14c4db623946555dc6f5acbe6d47527a5e72ca7cda96afbb373af4929fa27ceabc9c6e6547469af38d969c339b939b1f117ad4599ce2663f8b957227727e26413a8262f13cab0e5d8a6a39fed7627cd72e9496b7f4d7a16358102a409adbf5816a7b6267c2570f12d650a7b32a5e723a95fc291008861d9197bd202c0253d67fba606e0c90327030034e486bb173939a4c55f4639af331b32da6baefda593f6690e2937fb7d54c4c8663b9318fdf96a9ba23f4b734bea2d3d8764432b265edc5fa98acb9d3f4bcf23b57d1d9df5a64a59e2ee2738c9248ab3b95f81c907421a10a2e2af36a7fe6cdfd096d6aeeaebccfe445bf475d6bdb4d3a6731f7dd3797b16a515fdebcfbd84be5007eeae8293411898e56cb2146555d9b32d7a6351f3d5a23fdbab9aaab4cdc49eb41b7ada92a0e71376efa0348526a2b38582820d3d839214a55be92cda2c51d3469b66e76689d214da744331978ceeee6dba97da742f2d71770e9c548286bfdcdd88934ab4b88e1224eefbb6aaed89b6e80c3d7139297b6de2641231ab8aa4b63b7b4dc2c553f4b6ee76cfd80f3670320916f757929fdcdfd41589f62dfa5b96a2ec8d93494897eda46a0a14c681a6bc5295c6a24cdf9463b39d389f32a99b560464a324536d6fb3a1ed6c6f992cc7aa69ee37adc814e32fa45445cda857538bbbed36ddecef23138b6cafa69149be729a2461e19154f457dc94dda2afa4d7c641c149245cd8bd91d4d9ebb83b13279118bd66bbdd2beef791ed68e98d8c4c701209d8949ebfaa482c8af4e96f5a110951eefe9aa53915e9f791eccff6dcb4d62401ea5925996a6bbf880424e41132eeeb4642ca1d6dd989631f497d25d969fbf359dc495bf79357528aa6e8e7a8b357dbd77ea138bf732cad557fdf54f6d993a9c8dd03e0e4112daeee28c9362dc9911ff7474242674f6bd1a6f4bcbdaa16b9bb8f9323c0e1afd9468d8cbe688433dc7d052747c082beda26a5689b53d74752bfe9647a35fd73ddb4f6379b3b65fb68dde94e7a1df6649aed152d1a21ca2d97ee3732fa4d2b9aedd9912336db99e4c8b3e7171939126b8d4c51818e1cc9c1317293b1d0b27b76db2d1adb1be948d37aa2321469a7fbe82663e1c81415c8c80f69c45f2d1881e064112d803859048b1761a108cfab05231b278b90af168c7e38091bc35f2d18c19870772761535e2d18c19ebc5a30d2c049188ebbbf5a3082a9fcd582d12cdd2c0cf6c48800bf37941b7ada64b1d98edd645362ed2c4de2e44f05dcfdb56db675e3be4dcff3d9143ddb544db2ae3b65528fbc4ece4f1020b9d799ed599a538158599be6d4dbc94e399bac1b451a5af72dc7a66a92d9aaca3691094447f6bad1f57624e727f73a3f399ca6d83e6a3a6feb9e6d365571ec5edb9cba6f68bb97d05676c658b43d9b66e7264a4ad159ba9f34ad3b87c26b55696f3b8f549bd0ef56bdedf5cf4fd59f6d25996afbbd9e6c529a0bfa57537a3e12fa3a3be96cd9673fb8bdac4557155d717f3e7bfe6cb334194a637a9dd96e71b7ddb6e72cddec9fdf9eeb7ea3204272469f9eaf33dbed29436db89c927fa9ed6f25d4c6f49be95f48eadf36adfdd9bead2a528afe667a36ddb2bd7ecbaab767cfd76177527ad2646b4e7db57df6f77ab63775454a67fbf7d249b3d9cc7f3dfb6c4e45d773e999d454e937136bc20c655355c6aa34a667d34d6b5fc768a7aa13a3471afad7b3e83749c2c2abed2bf9578ecd76b6e823a10fe45b3657cbb1399c9f6d1cee5c5b16a5b5ff48eaced94e15feb5a227ee738c58a39feda5d75171d893f63d2204f9205be9b41d35ed12fec5e2ceb5fd76b3ecf94929ca6e34555f4debce49b1a1e7d2f92dbbdbd3a645b0c476ca541358364d81288576afb2544dd2aa4e369b423a344b736a50ab3a5192a926a449e85ef7920aa5559d98ac924c35814935a15d55dcb6eda2367782926cd392ccf611bacad8a31c14d58909b313e8044a87d876b3acd9949e4d54b5685569b2f4dc44499a5adc6dc9b61da1edba97d2a15675a2c47674a629d8d0a0bde66ce819344b379414b60150f696bba153ce9bdabeedcc49d90640d9bd3e8bfe2d81bbb7e064083bdc935020552d529dd86cb9a0981adb6d4eb6a7ec9507c8ceb66d766755655b969e399645632d9babcdce58bb59762fad9bdd6b9ab3d9cebd84dace186e6fa5586ccb561589d69e7b1663526db633b66ea416b5a16d2e164340cbfd16c0dd5127733a771fc1c91fa4bbb3eaba0df04929da644bd59f9ddbf66afb6c8b1e3d8a8494637fb65b2494c6b69b6d9aa2ae6dbad92353496c0389c558eeee82970649288bb6b6dc2d88909d9da414b525a5e7ac693d6fe88a8b2da92b0e77c6667b457153366ecb64e7aa22b59b6dd7cde662b3d989e6a41ce5d8a35cbad7d9ec6467b68dced098ecdc48b176b331db96a5a72c6996abc55a76e7a4ec753db74dc61ee5d858bbd958bbd9f58ccd66678bb6e99ea1e79a3b77c2b85f2fdc935a684c51946edc09aa93212f9ed7cfce4d360506bbc9a6c43ec019012f71f79be41e71f79993383feeb33d4397d4d99ea9b2747f93ed6ccfd97f110fee6cd91bdaeea43587639bb652acdd2c10f6281d32d9f575634f261182ec6cd989b4b38363d9f575f4136407773b5b76dfd0d674f20337dc7daf6a9a34346b65bbb6d736ddb72d4b736a9a9e7bcde1d61c2eb6db73af3276a33b369b9decfa3a6a9aa2aeb89d59acc986c39db9d86e73679beea51d9b8222ed1567b3a14a4ab24d93c5da9c4a6b51a658bb5976279db818eedcb458bb59a5f5bced955d5f471e4480cdfd3efadb6e876e6a9b9eb427b1d8c3f64ca5c9cebda6b99fed75b7e97e588acaf64c4de2ee39ee778bbb2739e9018fb3eb8bc8abe725646767db4e19bbd3d4a2eb89c31ef8b8c17f0423ff3023a36fd913f75b969e4bb3f43c72e4276744b65598d94e98a526dbeea4f52c6ad3bdaeb9244decba5124b4559decd986b277d2d94249429ba42acaae5b850eb4604fa6b7d94e9912273b9822e464073827edcf4fd1db6ed1dfb6a41465df244b32eefe62dbdc115972717757d3595983bba7e064e9e3feb2d936137bbe4eba97d0a44f4ad1965d51a44752ff5f4d365b0ee9653374f6ec7e24f55973b6836ebb1dbaed76885dd5755d426bd115b60d775393ccf66ed3219aac3d81da74a3b2d404a202bbd973db36d1943d4b87dcfd03275d077077274eba76dc5f2dbb939272ecb7b424f4f61bd7d49e9bd6ea6c5a9bee5b2e693d7fd3daddaa4efe35dbb4674fdab3cfb49da42acab21b0ad376d2234290bd575a91d22993ed127a440872d2a0f4881044652ada4aa70d288810a693088810a693884708d349442408d349f41384e924f209c27412f504613a894408c274120d09c274120909c274120509c27412f104613a898800613a897e80309d443e40984ea21e204c27910840984ea22140984e222140984ea22040984e222040984e22224c27d10fd349e4c37412f5309d4422309d4443984e22214c275110a6930808d349c4c374126d254332166db27790bbe3b89f4e723086bb339d6b909790a18da8146d7485454c32e594a111190000000003150020381c108a0683e180208649eeed0114800a7bbc4e624a15ca83518ec33088828c31c020400c30001800424353e3000fad6d555244426786c2764cc76ad55c31310c571d7f2ed1ae1c5020377296dd44e2cf3d659d01075025af7afff82bcbe25d941214800c75b7eebfb570868bcf74b79dc53ade15375117b07f1557ddbe21f9f21978e202767684e4891c9e490b335c9d4a845a79b7f60fd73f48cbf3f68754850f8ebe05793f6d6d8c93d56ec2877a77d46f5bf54edce942d49dbea98e6513b07a599067e649b3d5dc7712349a9494c78f015e3cc49d4f36bac732f8898166efb44fa1bd25470579a7a46b36b95b4d5e03c267594126c3bc2efa0737eff6db6a604e04f14828288e9253929b5e1dc13c7a4598bfe7e5d946b5a28aec41befcdd937e129e8469fd13e1c9b8416f8d2e5d9f2225b8da1c8cd6ee230e0d3371cb125ae4f2b2ffc4c04c742614acc30838b8755479ef7c07c1f1c6b362a0e36154c5ab79b98bf7e2338c8c27007ada70821753a10b7cd111e6299089e4ded88d4c166aeaab6dcceaaed53924f326df4c4831298145a053d65c8e3d74114fa7ae154a77d701d391eb1848d179c13564d99933e62469e49b27884bd997b26e6f54abf0c901b8dd8de11a1d30dc62280da2f0eacfceeea618f9511690c48e0e17f396a7507ec594f0586f5063bdcfd37011a01443f161e0bf99dd86f6337a183a43832a91c215d747cd18a0838b371683ce250d9883767c8a06f875587b85b50ad19510e28e5c57d3780ae7e4ac4da07b619a710cc6381caf1cef54382b09f3020feee7e16fcae7ec24f80e097ff271b9b5ab3f27248642cefd9e1a13c71fe57c01fb56b0b70d9f5cc023e74a06ce36538235676be2922c2af94b62cf432eef19b3609e0e6148a052a394f862e9a216585abbe51ca85445b993345d172700f3a6a509ddf1dd299567ea48f217cf833ca600c5944109861217e38fc4317ad2c657558ad9cda8535d37a084609b0c21d700fe012c6ee9fcfed03fd6646fb1fb8ea7314ca72f4cfd5e01fc8c882cdcaf8b387707f0c0a3f14aea9f860dccf40be7cf79e89347245a7803518dba82569c9413766abbccd312c1abd37a2b29a31917988f61f62c4b45e42db546d9dfc1f82827ea5d2114b8dba25f1d253c6f38a2bf4b56d7c8fe9004b0e6f55986b12c27049440a00d36375c60f15162b89f7d999315307209c9f7a492b58dcb500a12fd2d25e70cd4d35744ca72d779ec9ae13d4d63c1cce36c5721fb547c374b59ce9c96a0a2acd1ca6b155c9c281c807f67619547517d1a74e24c5bbd9be4dcd7aaf18fc10d3485d348159662fb6f77f161722611959d450eea9dc9245d1dba90da478b9781f1584126da0ffdbff337b67e05b4e790102c59f1e6abc90797c06b012db0bf1c4eb9a7ebef563cfedc05c554988f196203a5365f4eedb5d86916c4febcff3fdf49879074d4209bceafb98230780e78027694cbf39e5076b67dbc79a643415d49512f21371e1e73b97d8f9403b461151df3f3666930a5394ca56fffaf5fc0a44f893dd0ae4d7e4afbc3e332bfba3153ae2f15fd878bd8513a7d139c1fb973e32c840b82f19edede10c4fa905de2703a78ef5f81d0f56e2a8d2bde2ae12a51a8d959f9500ac73d1785179fb3058a1880a6b4a81c04f05ebeff7c7a65f410f2526ba5df7d8d4ecdc9f6fddbebe04a15cc603fde60c17b2c836baec4a6dce6f85a7a057a9a4b56c996d5ffb76491bc81e4ebb1a9b4403215cfd961efb0dd4c6dc97777455babab7d5eb48b4ce770f251f2824db8a11afb66893bfcaddb26c023a9a7b8a166a7ff1709f160c211da7afb337d4cbd823316ac7b73a6b5dd4c7c1f180043cd313d8b1db9a2d6acd0465e0b975837ebcd85032f055ebb0b68c89d2826b17749cfa7a3498892d4ddef51bfeb9d5e0944804a8087387367eebb8cb965c90ebd2645c765d47ae2ca6f32878d4399cd3158261c3ce7c7d398c784b99b7956d4867dc3c2c39977c708d8f9307560918e3c8682c729b3820c3651be98e3e093a2d93d113e540c0363da34b83887cb8bbf93fc9d307807526d7aeefdb0432ff80ebe06be91dd97c7417ea9ed3c6b0a71ca64591ebe056904883347c657ee6a715ff4c5a3982548b9f7867ad0bb49e22e9f8f6bd2f56904102434302dd14847e9f40fef12f77505b932d4a900fa3d008ec590e46bc4c6f2b48c685e4b6253d2a33eac15f2fe5e966d550c9b9bcdfa329e13533d3f2a3874e283fb6430c7acb81b6710836fb205578c35675cf54da9de6634568b849d3f36d4e2c773bc66e7925ba80984fed71f98a61f8fd8bf0bd908fbe61becc0ec049f6ecade38cfec100027b298d4de76c2e3339936d759011d36fa8471ab033d0f858dd1d7230986957fc3ad59bc6b3d4e1ab2ea569058ec8dfe3f87bc34841ac53f9ce7ac384c377a139f520f1b4a4f8c89c1d452b1895d4452820c98cc0b7736e35c1f52279b8a50c64bdd9136179ea0b1492d21d2e9f6d378d4ddfdf77c3e0b87b391e897241422a1e22f4851698397be29fedff277eebbb60ff86ce376ca6f3cda73b87d5aef4511c8004a95b482cb13ee83415d7bb7f43dab84a48e4afc6fc03e4c8b2eea4f936b7538617b86c1548356d62324679de6ae4948f3f7a2a0478e6fdfc668ea8e311f4fa7b8d0d466d7c05bcc25e825a93e8cdbacda6eb2273b72c6e7a53fab252007858c87609cdca1c343a6d0ca1a3a8f2a457fe3966756ae5c14b88dffcfa50dac0f6e1a33e12dfd0084c3eadfbc39004acf67bd69a68220f98854c781b95b139368cf3e70abb1ef8d8a0866a079662afc6ec108c2402b4ab254a2055281d54a89cb945453f95cdcc1c94a1d1705e9b94a0a61be1ea2b35e8b5fe4366d583224efbe9ee3e9e8d8137bc0dd822103883bf4fc9056122513b2c00c857c052434fba6f44f6df4f2606a69a31eeab3dab7a0ee0568827cd51c4d0431e182e6eca202d5c339f478c2b892d867d9b0a685a293699518df6dc2d06320a07e313288e92191f723c97858c6c308f67602c8a85d6324282e614612b9190005a7587c9a0af368a015117f7f534748581a0251621b90c53a9c7124bf80e1647b3592d05d9104a1da9f33dcb8563380e78d36b269c53e5830416bb45ae827f4798370717fe073b50ebc7c6eb9c97ad105c6dcd2f76468f71f0daca3826b5185259d01246fb21a16cd13e9a50788649b1e8878b1645713663675d273ac47af6e54d58512103132c6caca58cc9d546915298fecea4c2e276b6f5b09f968a39a535562184010f36e280903412a222dc395f7de757066efa335c69650cdf0cb223f0a9b6ecdc9be0ee0cfddbb7cac608938b282767ad11114d0396680967e51d263f33639e75359dabc0de8cf6a648587724bb9c626a32f319e7b8c5708b656a0d5dc7687e9ca1542d87f04a7d488d394cfc162d23320d800fef6cbc8e317b9a5bcb7e67bc678d7b6ea1e4a077f3861d65dbd0d40f0ccc7918272a3a024cb6f894f1e18254955d737102507b9cb2f6d694c0e8e7185228fd52b485a0b562f457481d5f549fb9039958487061cd730b8c80c1704cd3acff64cfc925a962511e74ffee8be80b0bcf149568e3c777884b8bcb736c3372b034e9f80df5dd3eba9464350c69eb3cd4274ba4aecd604fceb3f2a80121f53a70a497cb2387635acb4dba547fd6319782cd5966bbbf24bc6e2cd0667a416414342a48dc6fc4101872519f62e55b55be84ba04a30799a696db3390e18ef9fa39afc2e7c498475c66d0e40c186b7982e7911008d52b820f8c623866451226549435d1476259038f6c1e687fceb0a6036b00d497a144a4f9cc4dc3c64cedafdc38196f4d2d0b8cff81810ad664075865663d37eecf67727c56aafebb8a8a5ad79efc5ac41e95aa9a43e94b276e167ebf3ecbaf8a60db3a1e34cbb1ac6fc056fe9daa3659e666cdf16e93457846b8822dc9c4987adbb2676670bb94fb20e34e88b1ccddaaeb990cda1f8c7364108c62e84ed9e2d3138f3a231fe2874058d93277550aa11c939e4226b4beb352f9bfefe610c0fb8ab4df7b348bf54c708bee81254835484236cfc78a17a176188a89c46a094f1df4cb18eb93c0d07340667e0f397b028161641f5d75a7208aa8927c98367fcd1d10cc3ed6b7fce6073751cd50b9fd073150a7f141c435909eb2ece98f8ba88e40b103689a7a79241658cb552265499769a2262c2132dfacd430701eb31ef0f4a8dfc7be221af90e5d1c6208ac5437edb87edcae9e84ee6f2cc3f4138ad6bc87862afc9fbbfe16598aa394b5a638e7d7519ba5a65730d4cc76923a102a57fe47cee35d56f6f37906b5045454eb7b744520a302e383bb81bf51ad7171068732b1a670218ad19c7cd28d2929a8d448a92a72c8eeaed4f8175828e59c05196e2ea8d96f5e31ed08a156846ad9eb10c63f45ffa34b14901cf1f5d99d87503cab8145ce43530fd970bb7242074d2f48070c1ce98c8d1cc55eaa67161c00828e84c1f6384acf5e6ba18f54f8f41965c5d6223219589ca237c3234286468269b6141211483bebac9ccbed68697bb0aeb6b3d4736a862d817819b0b1398c842cb68cce95993c07e0417689ba710aacc051544c44294ad96a3b4bd07737f96170022fb190408461d130a9e0862d5e06ea6e5dada20cbf3967452e8d94694f09ec5e5b1324bd3c2fd3f00368423d635cc7d37b078588fd5671752d38840fd83a8f0c0c9f1a3ae64e68c368df81b27f46929205d5c1bebd0b4f3171f76b0e6571ac9ef948b8aeba1c79a285ed8d283d17ee1701559d4c107036915ed23ddf849a685d81d601ff0354b97b8f02872768473505024e336b257bc1e175e89ee072ae34cb060b3c1c33552d899438369ad4b71a3aa4dc0287d967069a41305ade70d13246395ee8f3942081f26a86a6ce7bc910d77d494f85766cb7bb85a3d8e2cfc1f30b05cde42a9a4e44e104d93db25af6e8c11920ff1ffe81c397f5dc3251a5c86228cde1c7d5151d24fb8cf4d1492dcc2cc3905067d9d0853621ceac66cc37205e0a7bc613923515cd675c44bbde2199b610b707daff2000300c1c36de10755d3694e1ee9d6fafeceb1d2b4eabaadde9714833448ea629f3ba17725bda7645eb11e51fda0d345eb7a61f97716bfb4c2097048bc2b4bb5e1e4a87be78866b5ec061ef23f56fb6cbbe97e8a9d43837b1c22b5f36394e53de49b9bc076a8699de4c1319af969340e9297504b12d05f4ebe75580e43deb7b3cac6befa5cd88bbad506c09f27c501f6192f335f052d0a89566689df0857e2417f59258d103238c49e372fa01f885cbd434fac3c6c3dcdef63180710e6109768d94640a63276526bfad7ae11ce4a36b423c4fac4f84eba2d004120c4bacdbf4c62b8c3d7f86b4d3f1ac507773983c9ff3d7c6d7cc2f4d4b3fd62c6148f75eaea4fa6f8dbe829a87117384c23cfbcd214a0f1bcf3966749feaad7ea462bacd6a5bb4bf548bab1496249b1e16170c7a1e8f3665b229b460e37d803848d00f9643b8e43f365d64c160e9721c1a5aed34d745386f77439902cddb28da004f82dedd8f9e0045ce49ecd0dc0ee177895c3dc12b6ea2bb419e02991d32ad51142893040a55d223ef64af4303bea2b6ff15ec2d63060def59e03279a1339908eac1933c67e9cde533330c17e3524d8ca6e83c0c953a6f530bb4eb0c4713f4781fa8d6ad041b7f65724f3be7c60fc64eb147ec540f7abb4cfd798a1fe724800c32c19a8c8f12aa51f7f7240c64ed7d916118da4295f707609789b065dbaa49478400d6b90373b9a7aabde32a077eabbe80e54054bbfa9ee95ca7728d632ccac510c56b9623353f90f29709013ff9dbc451e16d709584e11154ed88eab183ba15a00b673bd342ec88bc27b73aa3b31f65ae0d3d8006105a59cb17eedf7ed7fe835f27fb5c5df0d9979b9cf47ebdee4ca375b0098b9ae0c79425668127143b77c4244a051e0332ca557bfefda8620a74d054389a995b68ded1f91dfe5eae4813f2975825e52475ff36f1cb37a7170b3a5631416ea9362ad6963763d0d86a374d5146a1abdd1744d4b33492196245818b6caf03bf98f3c8ae6c6528d88eface9836330b84469db118a5974dca97f55bad01dea4662ba21d4ac44a8376ad8d45faa6bbd6643ed7f43efd2eb65cff2dbe299dc9f8279cec727c2dcd4bfcc708727fd25df625bc5f7a6ff6dd1d0d5ff70f20be585dd9ee11f17edee0c0093c68df2c1ff2ed5bfb612fb902ded5e6aef061960fc564495aa41e6f1236d15bb1deba6f517a72793e785f32bdedc5f8fa17f5819f76be5d84f80ff5b37b8edc350ec77e0fbf76c297f9c9454ef2564c731f2e4e8881ebb72834df62958bb261b7a5a02feb1a944fdbbf2e8742a6232f0e58684833b407ce9e25c7daa253fef8c0b03d4d03fc25ce521bd06c3058a6ae804ce3dd757adffc6b2b85f4d7401d5cec7eb888b428453365f3fc258f8415e7df2147560378331f747608176383f4f1fef6ae89ad3745266ce67c6753562e5d61bf87737bbd1d8a7f45f321bec75e13f452eb4c3856083a9112dc7e00002cd74c08239e45abfc6ffecb3c3e2e780cc7b17ae5dff8fbec52c7c883206b349e53a26e8870d2e5b0e0817fd74bd770db58099fa3afb0bdfeb205fc0ba5f0d13458d8da46f3eb73df26e37ed1363fabc16b68accfbfedadb9735a0f711aeb1c6de12bbcdab8f1af43b379bb57c9362077cfddc88d9206aecb4cc971cb1a3423daf20862270dba88b39f7a680c37df466cf66091e75825dfb5e16d0a7f29d19ec29f8baca33edb5f54a348333a591d4e33c8bf2303891cc652b43fe0c3be50ebc74cbed09e33ec0b406accba17a2b30075d761da8f34fe2b76765b8d93f8e83ba37977f30d37e1a38bc588aa48a0dcd619bbfda4c7fdb449b45ba1279e371451e2880eb022f728f8fd01629130c15f04868bfd2160b3a4d9276118d41d8782996e34177f1d5122264e29d970bb60b8ee1e6d6d23595812f7a0e7080b7c28a224fb2f938638acfd31e0182750a4d12c481015c50e380eb094590bc02653237d6721df8ed79403d406c1aa513d38717c567eeddb8c9f1a15b2a03c65300b7ea1008c02778da3c833bd0a28b8595c207250824180eb35e29291ce76640750fb70ed6a4161ed97337df68007adc127547449963bc8fe604d375df50b3e064e282fb1c30fdadc7e49a45fa6dbf7737e6541f60d41fd6a205d35aca27755bdbce49d5cc35942091edd42d1a8bcbf8b18e2494e0b33f58b05eb59062cd20f15797bcf80c09dd26ba59566e7361c70fd0f7b421d1dc5d2c05ce9fa0a30ac92bea2709e5ad935aa3a2bec26fac8f3206bba713aa022b2f82df10b13df73be4ae9ed2367ea8ca59b58385c2c7729e5e16880cf174f55b60b0875eef76293af61ede12679c168775f91af271f82f0f8a414347be801305cf99e40ae302f52c9041609d5e98b21823ca9fdcab64f0c66d3efcba7bf8dab11843b1c7e1c3a811a6ff3f2230b1a1da86202c85d9bd58117988ed2075d56fe3c1645915b60c697fe42bb39a89cacd165ceaa3b9f15ee58af76e8f2204e1057ef782b144d4f326e08299822fc738ae49fb69636f1e8f9d21e744cf48848ecd7e398f45ec589d5d09bd763c280cbc09293379be25774a808840257dc11afd332ddab6a7ebb85670f066d3cc0c70072249bdb9a64e6c4a5d030f12119b37941c736d75fe1b7d22447c99b7fc88e2e4eb4a03ee9fac078d7e6452565ce529e744fa7942fa6ee77da6cb90ad030fb698f8d2ee8b93044bed9cfdc48d5081e8db6dd099882a525381270c367dfb42d12d018104e8a8b4e47742875d5de562ce2f4073df7d85a6f61856c094e70562068c5ffba375216581452884562c9c8f4dcc37466e6acdf0c1bb83f38026819b16bc627c753efde8e7f460fa37a1f600e349c4b4a3e7243376acc48eac0b19a8d7b2a8903947f78435603c885df546c28f72381c14ef551e390db4ff3f743b6166686b7fba876c58947a7a48e726b1c445edf20f5f568f623f41e197a315fe687463730e474855e943b884d919e5c8cd8f79837d5c7878c9a06fd305e17252909f1103f026482ebc9139117b25c0925ceb7076be3ff5eae74385f73de0e70359d8d155d66ee479a065abcd9791103189d07ad58865de7c40bffbcc91fd6cc7172084c94e31d3135df359526edebb0640cd631db2310a690253bca9ac93cc68a802834f6d8f8d06c86bf287d545a467b812f29378cca69f13d29c44fb7e20baee730d3e84bdcaf2691d7c15f164c84c0dac680c6558c2854bc95731ba01b646bf9382d1804825df3872ec95a0e56beb05da4101a227572031d1f3d301bfbc734958e88e4e89d439c899462faea23ef0dc03fc012e1a3ae0476b01e72fae78ae0752328b50e1dd02ae1fc100f2804e067bb6c6f46631f17172dc8443153c5a2e81acbbba4cd54042b0d3b0451de2441862a596f505bec95833b198f518ea06855bc2270338ba00c331346b8b722b98288dfebd7988d000b9c0b2fba8437562205239c4f47b9e6d9d9865f33ca8e569258b61141e0a766ed666b8418ada18b28e92d2befdf59bcc776dd3c67cfca24de0257c918671406460f3f920d0b0a4efcb945b9a6506e9d1e6ba28c846076bf6a548e537730aa860e83cf5e3b15d2fd897e49be3a1eb30d8011543ed10a922d0d9a05feb65a1cd1aac495f163818b08e8ec977942ee8f88ad6ef6ed5835818bc564ac74b03612fb240a235f0ec6f30be048a97c742f34a532b3c9dd6818895747fe27dcc7af498dd02169061376cdce155d40a874c59703ac7303c19239005c7c21ec061388a0537b28bb037bb733a0c94fc044c6f9b540d257b7103b5439e9875473e4b1b25bdf44197e0a1acf26245038d405991be3f652585c247b1720abb658ea8405f11d856ffb455b4e119f31035c0590bfd660e49afdb642527d452949290f614edef943cfa0a07a64d73a0e926047b98deae2170768da9c32f2da67006322ff0a0b16a4012952c2c47f8884a9327618e73b5bb7c4887cd4bcd65af9a9cd51efa4a5e3fe25b4853516905e49c48638e56d8182d69956100895a73fd041b46676f64b3439a6e19b8fe7574d64dc7f935f13f6103e84ad89579fa8453ddd1ab5edab172b494c3fefbdb01f909fcb520bcc20a06c1cb6ff9f110c4d1605150f33db713d0475894589a3b78858b4d32031443bbf61a489643a925eb450348d7944cb12bb080a42cb80b957b67b073a30fb39cc7d55f8940e43c16d5cfe9d375f5ceb08ae42ffb65ef12e76f8f37a50f595c284e4dd5bf4e9101c8d3382d3ce39930162c1ada7e2cc0803a620bd3a6400ca2f58e7680d8167b07e3c40fbd17efe2a900ce8174a51d353ab4fc1022d398f14985c60f2e5aee7ce23202365eeb289a0b94812ac6595ad09afdba4654b09f5706c48b24a5024a0024653dcbf23bf6510120192bfaaad784dfa01bb39a8aee2a388bbf4ffa2f718beebafdd787504e86838ae8ebf3f52c0d7f3a343f6d9e8205cdd4a1bb9b374eef54259abd93b229d4666bf1b7b61f86e2c83148112453ad3f1af19170d6e0e850f33cbfdf23e567051a80aa325c053c417723abc41fd6d5448b510c7457afe515985da3167f3b0a78ba96216ac754869e0accb8b02688f7950907542a81ea12cea20268b3a9eb607063fdfe3ded2cd15d3201ef6b574f18228b15a8492c74f7d01aaf830243fe4ea6a683f7c8c14084ee622c8b670df6d11b524f0f3b000c07d3e9a6f6033f9292aabb3825edfae5cf5a064e55ac12d470b84593ab1ef2d77f3c3206db6c1a79130b9231f37fb04de13b6789e87b666b197c5be7dcccf8148552ff1bf27717d14ce53acf424b7f7289e45026177c7c0786ab4f17bbbd5af07aed6a10c181d9a31e1a14b683d8f50bbe41f6cfd0f5c95f60bf9edfafe71890b664dae76ec4c7c8dfdaeb7a4f05c804377785dab69abef1fbd85919fef6660183851e34425561a31bcfa496f0866cf9b709fb4ebf84f5caaf9fa177138ea2e69fc7fb51a41563e383ba5e9cfc8c761ac1a5d9680c9888b5dcf5379e60778f05f54d4a46c404d98b8bb231158c8789a0cff370b18a4888fd8510d79d8fa4038f50b21da0c186fd9c5d36b43b0ff29abb80be046a6d0f0d07701ae3547a896b243d1cb7b2fcf75bece4112894d49c7102e3d20d4d4c04c3e5d8f86397627f4bea6c055e7d5d46021ec4ba2ec1a7490de614da627f4fd0a97990512454e516b2426a9a1a7f40fae4714ea32aaec52bdbc4ef236ebfe27575c99f0cef5a47f461ffe2592fb268c5c017765717865c9e7245b3b2f6937bd56836fe47068dd1feaedd38e23859def1e133fbd1e6fb9dacbdee4e28262e92709d27af31be0ea0244c1ee5431d828864f1db6ac46232817c26b09d90306bf40eae51aa0d87828b021310636e981f44b52998ce1616180f7722a62d3230a792f1d77c925eaa48b4bf630ecc7b0e5e40dc050f739440e4ab46af73d5f2dde01bd0839b1f002e451a515171a909f5cca0d0e7a91b87ff54f5011eccf6870f66f6332766d14077e88ce471dc7c70e9c7d8eb113e735af4a91a95c8259ac3c92ee11541ddfadfb27e4dc5bde33678c66e5d3accabe16ba39bee82d5b08bb5fefaef0d6bf0f81a4a66bdf2f78f19f035843b1aca11b3396a930a4111ab2c894796594b219d56de51aae50627a48850a1a729479342614949412a2c027ae3ca3882781cb3e50b2a5241db35b69d9d217e55eb917958bcaf5653f2424cf9afcd8b8006eacfc43547f46009363e4b31e75a8bd74acad314f7c4d1f614e57e335e181572437d76108bafeed9e92702dd1929c18f70ee37907d3015abc68925d129d41480479b693bfa2534e29835f44cbedb84a54a20d1755d32f1795fe4359f0868905b6d12fb4ca795e8c5ee97dc2a662e85ee84fb9dac187f288dced8e2fc0eda58a91e152602c1a47b11479e8f342abb228dddc4040306fb37b2f7bbdeed9af519ea3268e538b0e94259dedd97a20e96713cbbd09f735de42aae27b8e273f9d9ef57035911fac399e779e7a918c8e4796dd9b706ab240ce47738a6ad9c4d5d81698ae1a4eddc28e519893ef6d66079a840b83cdcc138628621938c16cda08b5eaa93f2b71495a15a904df96a91931ba5d29e5b4961e68552a4605f14bb2b355b2c87b02f4223684b343ab0a1284dc31e34a65f6d8153235f3b5af614880a37bde57d73667acdfcd28f2deccb08296264918b5890b991e12e464c3f090e078cd51fa72a7c235b7e571122392c1de4ee3f1e6c99fea365c7d4ee8d3dd23b7377b6befbef7a9ae45de09b7f89b1a46fb2755902d4f6d69b0e6f6a90ea4db30b8a8452e07941ff1d85de3d619fbf47696dd804bcfe94bae32819f5885408d8cc55affcd67acf26ac036a510f642d75d8ddd7d2937b9d4942394c5e8e75424539bab8d507a5edf3f42d5b9d866f1f0bca38b942c9592d524f7cef5d7e8d95238b7bc840742b312ed90cb28ce404e09834e069e2913440d2fe5def83f704e095c94f1d46413cc00b32c98e6c5a91d6e2a3045ca1c48516e3e1e76e17ec0ff0460db880451fc4a1b72f760ae1a106b89125bd5c49dc92a83ba817f5e20aad81ce5d295ba46fd82b35e182568f9a9396b5d43394977ae28aacb99e9bb723760ee7a5d6b82059860127f8b7ac9f7bcd2b0fad9f27962571be7d609473b77106698ba3a24900bd5b13444ec33240c283736f01ebb7e3c559f8ffa553b3c56d7fa364838f2fc1d2ba07d94ca75f77c23876329a2ffbf296b9fccb938592fa757c284c0378cd9556c071d67515ec38d198bc3f0c1191d2aaef05669286ea380a722bc26a12daf551dabdb02de2c56fb26cdf47d90f561387d54ec845788d7d77e0c1020f0558150fa42578c97ec88a64d61c81abce403eac09d084a7719d8cce5dc2fbd1ab156e51974c91f00d559f05468d5e394c4929c689e6ef7567234aaa507309ed0db260a85fe0635d0558b51015b08a065b0bb6ef9223138b00b0ea84c72135b1ef78c706d38898f3c1699288a8b7b678ce7a125f5f51cc217df58d5cd2ffc812a3b34490fecfaf439109c92dcdd12602c7592e7ad07bd90d21c69cab34a3efd7bcc3fb35af987a728dc46321910a8d04fce622b431225452bb516733624e5fecfd53d7c77f795eccdd3b9278b8571609f60381eacc79315b7d9c56ede41139aa50bd1a4168805a09939a7c2a321e29a924d954bd3ed9a6a9ea16f29c93f90e15234d7e49072accf691dca7dec99d662a87bc1f57e0ea02c7e82a84fdc564ed9b61d6b86c4b427f151626f839dee8ce7586f0e27f5280dc8b0cb0249a85b44dd3eecdcbcc277e30f8e5d1a75b7628754686122a78184605a9b61f30b1864701edb8a067d1f12549cc057cac3c0c00c7474d952b413fb8a3cf5ac1bef8a9438bae71a9974c977ea4096664fee8ebe7e86233772550e3d998e6130b5d261d8b81e7139cc3679944d83c264bb8355508a8a4e94ab32266d7098cc5391d6820a7b80a49a659537ef9d48cb8e845b0bcd944dc657f7170a16d8701e6c3d808fc26d65907ac1a66a4fec8661a3226a9ff2422af952b5127ce656b1227502619ecd416f6f9edfd12e7afdda6c148fc515135b5ea405befb7b5fd528915bda8f7cbeca4a512f2cfbd88f72142208154e70c910a8be7f04ca670377e8cdb3d3dfac6b390a1733cd4da8762856a8fbd6203c30f555eafdf52ac57f5639545f2802ac069c0b6d782ac4c656766b5b68d8658ac62957df7ac1b73ac97fbb8df633efb16a134de474a0cd973adc23df7c71426bfdaf5fb353919896015ab0ca51c23311dc7186dd1d06b1fc687fa86ec2424c01dde8611e40e165bf01bfc6ea1a007873a63237b511a3c9da183aa49c78acb21b7b147fb390f67c2fe4a8d465f1df8a18da76e84e3de96adb0c6a42d2f3a05596637e2b056474f35fdd30ffe987a1b7bef9d363b6c461525139afd172a8d7053ce057fb8dd41d73bba500a56e73dfd5132455cb654949f92e75b086b9f8dcfaeeba9d2ab43bdeac71f5e67c45931fcb63a2fdf57726bcf6112197d6d9ac470e9acb88188b1b027089c71241180eb59d6593db262cf423195383ee83cb61d09fad7fd772eeb781183c44bb39fd9497124e9fcc608e42a630d235d50ee53d8fe43d57c97e6d93a17ab60854f2c7c653a64a21dd193e9922246399bcf017a3df313ceeb3d383a207c2d41a6a4d224ae83a032fbe29f05003b95762af8881855a9110448fdfa0a8055ba153e4da131c10d64289119aea8d46536f4ef54a8064fa1f78bdc240b038063187f651648ff679f95eda621dbd492a9f1b7dc5c2113f2bbd963fda193081f21ae5bb0b97197c83cfa68a1e473ca62c209dd8194e83e4afcaf68c7c8d96a3de31bb12ec633980ff8742507aaa6ae87c08a6bac31af47d51ba9533d79c9d9e44cc19ae72600140fe2ab36dc170fefc3a40cb8ee230a151a82402d9ddaf8f6176008859df59afe9511aad6b87faea2a32a3ce4ccbc6b9214024d962d2938daf51d373f6e253c3d2261c94a22e96cd28154701fa68518431d1879e587ae2027adac3f20ee5245b71ba46e6d382d3f01902f02ea090e0d552f8d1ef4661c0ce1a9427d361d23b96dc2fcdf6e120fe15dfe4b3b081f726376502516e42a7e0601bb0197f81bdf26bdbc55e93543f45af8a4e8962b187d0243a5360f5b6da327f2940180039e795cf4e80ead99a4c567fc12bf1db3c24fe91986370017bf603e8817944b125f05890bf8053593281c10228760f00512ffedc97d7a7f783821fefe2d90873ef52968a0f85135004906cfd00847e2eff35a36dac7234f1182c3205e5cad92e74066ca685e65b54ab761b4d610ec08ad753407e92725d9588c1b2cba4c6cc64dd6e899c73e85e8e8bf2fc2fd126388816747a90e552fe62f420fbe7928d2eda93357ab0da830051edc5d792729b236e89c1d8a4c5bb8bb951c0a9e56492e318b21fee6b5f1e102d769d43cbdd09ec77d864b0dc1ef4bfc27892cf02f42490e96b4b27ec40d6ef457b97a8a580509e9971a1df84b59bc300cf7b446dff6f3a81f9bc104dd961790fe2fc47f9d1481bd9404cc0fd8623002fea80d81f03ca62b02a62e46409a87ad71f87a42b8931110f113fb7e23fb6b19313feff625dd20c32c54ad66660c78ed5f3f7d66ae9949d32a9a64dec9b8f053a3661decc68b9f610c119946c7f108507571fd9f3df23f74c7c90d29d0e0036c61cf765c3baa5b8056e7227dde0af734d3f4ab7c1e00e3c46aa5f850730ef923b90700312ac1e0b54aa0e8833ec612c3eae5abbf542f836ec0af37e0445353d3185dcefa50416022a388f6d399354a7f8b5fbd16fc4574eacbd8b98a9e2988d0c84090e7ea14cf735510deb9a330de1ae78b77b3ddec539ea79a36e5052631784d6028b36beca1b1925198cd433f83a692db69ff58f6a80d0cc5ea3486c3915d48d23e28682be879a9dd067e4c280f3bb6c5b2390f6ea996ab2479ee63647655034f1306d3d2e487b32bf5ab48a2d03fc01d7973769dd5c2a6cfd62ab35b7602964a1f3006f3a69478ca68bebc309634917ae03682493dad02115c1a90487cdafd93701716220caf731baaf4312113fff720efd62b57a621be8ec0fd6a3da97b88d76d0072409222f56a47af1400bb45eb772f898f6be0da444d3310fbaefc65dcd26e3ec99ad1858f03f7f8c3b4964a90b1acc47bdd45d610fcbf64fed1d2fb5037a61958ddb0b05c91c40031d8b911ba1516e97b4bb893e1eda4bd3a8c4d709d76cbe2e07e95d1742b57d164fa5a997fea9ba5e6653e3d2043030760651f2fba1396f6e58941c91b5602c42c3fd71a2fd36a7da21bac72409b58143117942b4be4ab55f60a94251e81d056b2fa6117b3402d25bdd57ab30e3b7785c1eb4a80a37fbe5575c8e5ba8dbce3d4d14de538f17ae09dba4e6c54c7219ccc32d3c84c526eebb429ea2b886101477f60cdd7eeb452e8bbeec4471723b0bbe955ee8649df6ab7bbd214204fc0bf2775ec3deabea20ec4fcf111039fcec224159f3240735746fb0608dc0bc93fb9e49363ddb82fb8456242c9b012a04d76b348bae85b4f18139873a4e45b72e231a1a37101943f077926ff3fe8155260e3b50e8715473e3cc99b6f07319c18278f13ef0948a41a8b84d207c358584514f4b80f14161a5c39d37a59f1bc10f383fad77c075faae37df2ac6403efb0a52e5f927291db171de7d124079b5cc106d98bc19bcf484b5b8e33d57f5d7015a7639efdeaf53c73e6283bc7d07c3ab986bd93ce5cf943f853e144f0b27f5ea2617b91e8de54f3c736d4a99d60498ebcb50ebb04ffb0d619e38872737f10997657183cfa9c822f6a11053308cf86354e55e88ed66b8861e184f0f85d07d2e1dbc1dd5c8880a6edeb523ecfa070c379bb9a2bd6b540b93372a42c030d4956e31c21959eedbba64860ac7a35996e113d64e705afa0080eefa3ad2a3610a20c56be5cd14121131be5498471b52a94fd8d465e17611599e04f4632c5af8c678a5f196502ff32ca247e649409fcc82813de4fc699ea3e19cd147e329249fc653493f8c97826f197914ce32fa399767f190f26b8c6cd308926e608430f6f838996b25cbf2164d8de246caa260cd9275b659668ce1c12a7715385a2accb62c24e03eb2a20386ae96da4905c89b8d8d067ec0d20d9a79066ee9660646cff58ae51b54875cc7bd08dfe0487123cfa9ec7278a9df77cad36d69d52d3e746569669eb49a193a687a810d1ba19c737ca900541732f1ddf28fd175bbff946c80b84b921631a93183a6b6ab0fe854c383a15bd4622b151eb5871c63969936ee460e92ec4360f5179a0ca90b302a4537953c6b2401bb1f3736a6bfc4952c3e14b156c10e5091695cbf3fb71c1ef1be6a54a450cbe97c8df4a467a09b529c6dab49790981236891017007add3690ec2199f4ff19cd2bfdb7baedde1e61245faccd5ae9d14a5c4ac088b6e4a947284c7919b8554e2eb7401992611cdd58384a434ce157478e8eae4c933fd25276c3e24a3bd3e04d9f41584ae64e32d4eaa4645410bd174fefad4e28e8d4b5d24304987e276d5adbefbb9f503c994b00f5495684c6c037e8a303615153f224a382360574698c839da777f1c0293cf0e694f2d8abcf85043960eb7c2d76a84e7c34163cc32fcdc9b23fbb9e7a2ec4e7ab87ede0673f388813e55a6e46ee1fd4336cee402da66d4be95255288e011ba5eca115aef09573ca516385a711fa8fb223b402b57b254a1a75c7ccc18fa0d6ed2f13cf239ca1425c24914ed918e8cc64ce053aee6d8bc6800ca0ec18c89fa41806c3c2c7c777369ffed3e5163f3258636c4dfb69b6e90a676c62a3b068a9e08c9162171d4ae8c834d4b2116441b1c3341e8dea658975f6c1d3633853a496a39b9cda9e32df3c844013be4b76c440940fa6cd3cad1b535b788acf2eb9bb3198e0836e7e87c7ce5275eae024b34e37e6cb05fedd01cd271c6be0e437e8c3dac85e4170e778bfd6ea076bd386fe410e621c64b5228b4bccf76122629a3415fbacc35bb28fd18affe7b0aa258ec66105a1f1300211022419e0bbe81e8d84235207baceef4c4803aa56fcd9afc4a825297eca79d494bd62461b711528748f64360969f5d4051303ea32c8fe4c9246768b5592d781e71a1de03686a2a1c376e60a1ab660ae7fba6b1c3a18de2c52f85f95e9edcb489a785c9e7742681d466e4052d14c185c454269d970055dd73c79860bcaabea79750f07faed190d938ae2bc67296730a2fd101e1c3be2c968fe15ca04cee1b4b32877f5c78c7088a673b6d7df928d6e02856b90a7750d5a8a2e7c9388336dfe045a41a1355425a566fac6c0083b58238c85f8a6a4ff6f3b1e347793488340125a63d89080ada42a71310a9a9523c0d859df12f1d7fc133e436700b65f7f860530415145b1c61759518b8a2784cc7bf12650a1f2f18423fb900563b6a6f74fa41db385ff6740836410b84c6cf0fa991295aaf50a4da34988bd439a31a3d87f8d12baebb45d30ae4cfbf7210aab6e5ea133e9b6676dc6d8190878f042cb9838d350397b1450231ec279be4d980e2c97393b8c998ba6c9481bf3bdf5803ba681f0e5ff23cb68691ea22f72ef98f900fba1594f68d035b71328f8910a12936566c34960a30efeb0eb61c2fdd9ffd70cba3072fd0afb7aaddb3a9de15da5428241ce3d597aa93dce4f6a6bd77c3537000593362a7c1a2a7e37f2f0fa39c95bbdc6949fc18969020061274b10b33b8232cbe0311665496e1d24a1b44c22e6ff947a347a3221e2f17f94006f4ce276c22cf4aa02cbf04e0bcb010b841231130e4340f7de01b7e667dfd67a6d201e17d741edd204611d9ce0ef132700d895f4e698693abebddaa7732adc60fc39206b02f791b30de8956680a84522a855bb597173ac096f2d733a519d5ccf6180b05fe3a6c20037f2f74b5a99a611eef72dbdea15cbde0a4873df888b0ae78e2b9e55a228a248a150b6a9cf19d1e3b14d0104d2ddea10c1fe6aaee32ab86ff74fa8e5587c4b2f29d10817cf54c7c4f87a824321b337179a299d2db843263068845749753b1c4f27c94bbe552c4c5b580f6cfdeae2c474c164d06e6aec631bdd02a9923bd97356899317743ca00590202e285334f943f9398a92d7770fedfaa17cda648e23b879be3c9893fe05790938b340f43557cb449303b9c4bd283139b5061d922004b06557899dc776d7a0c3e0db90c88a7be575fc814d63051c125a2d4ad14782a39a8b58bca582b070a7292bcfdb804b327cc1e5bc86642b9d2f5234bd8cd3040845a40837494cbea15a4ada3c507e885cb2a726ec5b5815052705f5bd29d5d82891b1423d4cdf0509058bc2eb064a6a639594597fb6f74d49a6832d3c74526aeeea5f4008eb28bb333e15c305e672448c1410028bf2f9b2e0dfa2cde2bdbe055a74cd55a468dfa70d7a192b6ce493b29172fbd0e2725695921576addb0c0bb0a108e39ef82e40c2b5e1f754ce68d0b131adbc3f729becdc51b46f596e25e31f7960639596b19b6f2a9088fe3cb150c8259ae8dd350d22ed79af31f9c50bc979bbe96dea8814521b61d496c612bd5a5d6b05388654c6e6c61524f193465a6d5efa06e05f4e26dd3e213fa7415555743d102aa6d0532e4be7256926422a2e10f7e2445d24ca87dcef79f761d8d5a49c75dacca8b8ddcdba9c57d7fa15770668b48da95d69c50d376607983630841947a71ddd086f42365bfd853a60d2a42e6c55638156cce1dc701382165154602b5e8c39ae754ce328f85b61f32aac1d2f6258733c00ba6b3edb733183499f22af5454441903cecc4494ee788231804ae25dfd1cc3f281ae64562cf7bdd44808e3563b237212a0ef8a5ea221a6ed19139f0d7eb311a09c523f5d34039e5f90de0c7c3219280bae79c4086f25a802ded46d69059108ff62d1a78c11d5f93df8c76c7414606ebf8c95da4eab7bb2b720b5a9ee3767a7dc56faef518c809ac6621412116d490c550a4bf721d225c3595bab72e248069412722c08a838fa6fb090ecef12386e04f313b91ac6a38475525936d9debbd337552d2be74b2ba87c37cbb4e6d28578bb1559ded291d5c66b0a076b2508a875232e20ea75e873dae737668c040a39c8d215a260c997cad058e1bd42fc631fe453eb8905b0dea737c4a13512e616385fc5d219ed09f06f165008dce1f6ed9bfa75004990350b24dacb0cbe451a14bae9ff07005231f8258dcbaa6f768b0e62008d2e13b8839079de1ed6b9000a8e0c7800dbd2871e3ac6b590fef0d5b17af461676704b41f878f7e850b89fd1f1f6c0f85ed40652d896321547ea8dbecdd264e76ea3abdacd4fd7e01923ccbf669f18205941d03360c0acae92330470c0164491a26c2153b35d5fd74179928995889fcd5d08373ebd4efebe2889047d6f7e1741243c5123dda63e5fdb6e885b874991d1c8929a273f09cd21f5164d25b1f0fe20c784e7ce29797e90b437b34289a8e85cc78e423f4048fa94b000e2b63d678983bf68a0cac7ab257f54a80cc3edaa959ea85873f93c2e11c98bf944ee66983387764a7cfc40e345f42d3109b5deca45f7b1dcdbf48d3b02b7a649a053b430729a3c8426fc8d3ab193367c4265913f9557ab0f9e049cb3b930774cf331ab7b17a6d3eb44d43629b44d02d8682727f441132bd199062194941fde2f1b37b663889b580e01eb28bb1ac03ea809127f1e4a3589a8ff03b47db7cfe9134203a7f565cd7579bb87441e57f208c17eef58e7a2bad11f4d9a106ee0a6066dc61f8c990d414f9a7c2ef1a91ab90c835ee2bdf77a4eb3728b52455cb998457f04f9c40af459a391611a88a77b091f6bc27fae83787cf2a25d33b1d98f69a9b08167d930632076eca61287172076d484003cc8f14a43812da5e63b0700af3757a64378402fd14ae6c5a1e6da20baca4b046418593b5c694a5b764a3639e17204f666da53a2c0e770b80677432f4e81d92801806192bbd224516028c6667d97b14df5d6e5a3e07989222fda28951f06bde933f52e61629d443b3bf80f751aa6e105627b219833a927366515fa78ca074f3b99f4b2dc20e1c94793e580e6f5524d456d253eb510b15c232533783b4f5a881c122457d43a7b7a65768e66e760501a43631a9d5b5d8110448f1c0a3a97a11382789eef8616a451d1433101f9753197d591ac71c528975ab0d3e5d27f72856c122309dae3cfc09cfc114248da35ebc212fc809db0760b513d1aa2d98ca8769414ee4834e9a66ffe90d8929200a3993d77fb5105fb3de7aed70373017906223d44c6bcf0c7072dddd0c34357dbf46b253e72699eb12eaecda7fa0fdb63d59baebaec3d3ae1a4d9ccc43646d8c4a24e2b5d08bcf67611760faaae613d336240ab9175521cf05a3ea2c5db77e71c93fe6e3952c80d300d1efefb9054e610098b9bcd31bff49af046f92deee5102fc63d20f37384e6703f5e5755efc242a295f4a0607c53be896fd80dc0196ea383cd13f792227ae855e3b52dcc2289c75eb7cf46918aba3d2ac433da2dae5b95c99f7b75028b686cc4e41a0226f53d359d885e7d3d719a756f31c25f750f3621595ddfc731d12a31d2571d0430e5e803c96d5d6a12577a4cbc668aca8df9c9ec840fab0f87193f11251ee01faa58605a5cb1cf3a3fe34c091ab1e7bfd04e4466bfd8ee4b00dd500aa786df408e492cfd3d6da50e66a05e7d795a1ae522c8e62531c9c83bf4178bb7e93389cc912d3d36a28ec71cc6b8af8d6d5eac01b1c03210a58ece2328c7086f5b8ebac5970440b46844757a702b34627fcafb12c8a91d42deec9323e8a012f987df27e60422ef15a4dd41e51fa5c7131863c62eb97daf54123c539b209ad41bf09440d571921a747ae75d2056ae288a71246abe0415f8468344beea8789a95d2a4fcffb8ddba078bf589a7985a923d0ceab885a674cf3200f2a6a10e285876aa85c759ea5bb0966d0e55c1c10ad84d4918a304e62d75582d83b34d80bcef2132552b2d5021cb9d10228dd58c7a5ebf2373b47282cfa8a97dee0eac95eda3891725cf66d547c689436ae761719b40c8348ff65aad71ee7155cd5dc477b6d13d4257bd668bbe46195dd44fbbfdcc0f64cb587b54420be90fbc71be8350fb4a8cced069abe85c054247d47a9af80893aa27137e00d3b85585f9982b9f6ed2397ba69d6d2b8295300c599fc0adec3114f6890f7dac00c03d99043e5051cdf3eaba88fbb0473271d4d0524c582ef4816f441b0c52057dd83a6823ef3aa058bed78cd31c0ccf63e3fb24327240388e6f586ee25f194af6f15d3f5a9085a052a0536d630c968b3c251d31324c7a76d7dbb40182a6de4ad787bbb7731f2f06e0ee2d1bc6ebee51c6ed9e6a25932b75360ce14cc4b8bdbaef4d816eb7dbb369c09c0431111322423b74af7ec3c86d4a158edc7bf85b9abbb03e24940b3c46fdbf0fe58bf7e24453098b08be6fd9d18055ed00209127ff9f25f9e3ab987ac0b7d52f1ec07bf3512a424228895bbe346e383de4885a0d4830b056b36310195216e66da8b43bd9a7e5e473c4e880bc9709f4de394fb47b4134d2c388e79d9f6fc6d18e27434783c7005d000e32c910fb4b2616a4374a566871be8fae8508660b161565566b6994ca43ce5ae41df19dda3bbeb9a80e42dd7fa9cace3040afb05178fc284c86c9cef7e691091e0a712bfb0347378bec5fc269d3e193fd1386a60a2ec47770267baab8b1f1f6659fb34c5cae9218b5dd0ad126e63170088b60c7b466fd3525eb4dc2b76a2f0ce09c667a3dc78459ecb4008ee575df98de954f33ae09e2d82f5b3fe6e02d1beddd9535bc781ce66949d1e56f6a490350369e741cb74cb033657b7a24538ff5c75001c9df58735106c55d1ece9e38b6a45b9a33b0a34828a8b96a7a2070bde8fb77aab814527546dfda818dcded48894ec4d9c625ab834e8d66f94d02f70032717ef2428e1df652273413cfd80ae296debb542aeb44509261716203191e56ccb1d0edb12998b2bcceab6df853fa921c1d3ebcc5b33d8a1d96a21f3ff4a5055a1478ebd14c1b60279f219a7a556e52b0b464b997d60b5e5de72cbb34108131dc416c7e0a845a3478287df84b08a62675756221009713a730ae64802da89268c32841650872649840e1259f81103154bd89ca9815361dd793c213620bd276dd300366c63845b8c5f4a642b394a24582d40de5862f7d857a523cab413248b2ca74b3ee0b217a3b6918fc2ed2250a9538031995910453547453fd09cf9e7aa5df2b3a7fd5bdc0a6804196091b2e8db1e4759e14823609ed9c74735167beac451f5a09d167082b2d1622abb62ba3a4c92f7f3b27095e1998c22a31a3e7f0d04913276e8d8ef7b5b5f1046fa37cc69ddc4656d7964c0ea30bb56ee4bc21a34b0caf3b10db40f0f5ed1812e00793777dcdbc53a0dd4e14e9f54f2d90e7d00787a42920e11d51f3993198edb8f2dcf5a6b047b3489d4e2829937e325ad4cf4bb829bcf3127bcbe57723eebdbe25752009745d4bb29655364ebb3f74ae950a690579a97a0c815e2c30ede53ce68a8604505c0e828f7ba775be975febfc09f3eafe750e8091b8039bb1ce347cdb1359aa5f8ab00d10669387fda0628c8e32d1b49bd8606005bc491ada5880fccef3891d6cd12e1f38833c7141623c11aa2dcf43714c48ab14952ed6c77098605d0ce1746ccaa3f959cb2c696e67c1c28155450d940f8f053f3dbf0d68e8c7a6dccdd7cc40c8d3b43f15f561455647f704099f1aacf2d755f01a57184e148ac2a494de6a8e88a5549995b146e7b12a62d211b6a9b82581d70630d0d951ea6c8547d5dc3ee5aaf365553141ced6a64f80bdf029a34924c42e4be189367622eeae4accbc05e5976f549edf0a07e1f8a8590faf8bf70401d1e7a2429f9f32d7a4426fd6a074bf79ae86342a12e43ffa7691b237c0125056d5b2e06a14f890430fe1745f7b807576204888087a6f55606732c4d9d0a608959c1bda07c09e6f2bcbc0b4acc06269e5bb6346b9244689a292362ac7fcc48ded19bfe61a19257b04116e1f3adbd9e862aae615b66c5c60a8c19f12bd4452ed329c40d87a13ebb47472b517e457e8540d4e0a3f2b1b28a79e6cdd8480f3685d3e6561529ca70652892e3e90f94c8187dbe51082d3338f675094e9f0911d8f3083a2abf3dca339afacce713a35fa21025b8ff4b0f474daa2f324e6266de9d0667a4fe880f47c1c906257ef89ad765a625238852504d7b31f831b4778ed5b313b0379406f6e67363664ea80e349801a79e7956e8bac0bf0f081848616813d1a74d12cecb42244d95da0da6c1ff6ebdb088d04fcd6e4d587d2806b5112f703319bee20abfcbe5466d999475f8038dc868ee23541114f93021a28cb3ae095095f1e51f0e641b43efbbfff8eac64c9c98bb8bd727a198ed1c2b192d2bed587e8ede6055363989a03079b477569e602dea2df34d6936c20419769cb3402eba1c296943ed0931d0c4db8d5f784f02f79931762d3e5dc7bf9ef06d52b5aa6588bc1d12c03f9d2b8cf5d4e98602e56fc5267016899e26024b143a8d2a05e9405083bc791a12a80fe4c3b4aa8293b89eda6f3dce04cf38c80acff9f708a163587b27521c64b02082d5d081b00160ad629a7b57bcc42a046be42a7876eb5cb10f54d4f75f45527419938ef5337cab7510e7fc2f2b0b1394dcc697ac7a0efcac30ddf7624bd89e5098b18e27d7d8df42f33a36fa4d0bfeb0bd48164ce5050504d2ba3064e7ad733397790430ff1acef53662e9888f377f9339f0bbaa39eeae51e4871d139f33aaebd37a00b0abd37b1f3769a73bbade0b8ffb5f36f5d09f614154f439842a031d8e45f41c067bcf82f56a71f5e2c77cd0d424388f90dfd0be185801cc12a11506c2df01038529753f5e08d7e43f540faca34d6418e912864b7b09651d6313e18120c5f2a69c2cfc1fa96890602cc2cb7f0b692d66cae6a1029fe4c0ab84becb707d9b85bc49f1c45cdddbf9c0b70fd0768e540067c0cfd15b03f6db72c7bc5191a3fedff65204b6de1b542699fb840f049050c260b6646a7c05fb4ca377a3ffa0bc7743e89e9e480a9c5036bcea8be9d1ae8538de6a6252fed40f9041db00258d6f657b048f1e5171aafc26777c5e30f77476663c3d51f9df072a2c9251e626dae722ee1255804f8b63be2d89623ab6b4d147e3c304835f6e3c2c5f6479c0282605ca62812285b69189e89c39ed23f924d771c501f8a5046d11bc4da3dde6a7fc3831a767c0fb2c7eff375b7f7551a9cbef5ed82b3213d31bdde44868198e6c2076e82ba21dcf7c99e5da1e5e400ad3951c09d07e6b3de4966afb0295dc9b825dd411c3a69b233ffe6454dd00377a4413815b5ca86a5dae74d97d42d4e3ab14479a39b7e87fdf26601cc00b9e08bd72800283eb2467fb6f1f2da847ef288375f0500a571e5a972a71b75159563115dea4b7fbde7c8c0360f7d1a0308934f09979661102592113e51b78d2d233c7b9dac16b030c6b403e6a51ce23f130d3764d734c426f3a5dedf41d4f33f0c354828b49d99fde94437998259d22c11a4137180c373b8e8ec99b5b49165d282babd074238492a35ad54120b65a50f9a79cb0a943e38b996bb9f5cb0cfa839189d78cf694caf31075d27fc5bfb06b5bfe73bc55765ec898affd2c7d52d069d0e3ad359e44aaba9eaf602ce33d4bbebe2b775d5057017ed588f50b16ba547edd48364040fb0f74edfe3b8e3d95544721691978c81142a60cf32034551d2c73ddf5c52f4c25e55ff9968fb75ab43c0501f087e1ed01a6b5c4e803aef2110135f3a61ed6191b6ce5e8b482281b076066c4484882d5611b58d99d0a829ca486f405224e2119100be27a2906767776c312161c60c0f84d01c2363ad09c1726896fcdcbc29694c91b5494dce68b0b00341959fba57dca6051ad691e44df6a4cb27e079a7a68cfc2ca86b28750755704118aa6a20561b20389d983e57582513cdb765312315974cec211de61a6220905374205156978391d88b206b91388ea38120c040835bcdc2f1679d072e5f1d3d727da9ec84fb16ea77da06368d1c47eedd8baa41f2282881443ce8e6ba178e225e4a97c66341f5090276a1316da5985754a9a791b58e84518248d68681737bfb843d56bd9508cb2d5bdc1683f64b6e98ba13038d3aaeb179c267404ef9c5ed4016c00023e133d452e0e167868612a8cc84f802e65ee76d6611595fe1f2229e9f87220d1d915face1882ef69bcb5c2a24e0f9e6c156b2330223e0dcfc465bf74a993ff307d930c8b9a42843a08602a1a80672391f941b13aaaabb9b729d61742067fdaf9d812f4731fd87950ac77dc347f4139c546f80ee4553e73d69e9bc9736bd77d2a4fb5eda74df499fee7b69d27f2f6dfaefa50d42100240f779aa8c9322b7083f2321cfa3a38497ff336c1d019d9379e9717992f97b7c7ecccee7289cf1c7adf98ecc2e747edf8d0a5838daefdacbb09ed51930b4748e73aa5584edfbc8c36a90736a65d2ad2beb2cfef5ae38d221e6fb028e1fc497f2200ca30ea0ec1f28d9b708f434412860c2d0476ab71c06d6d29b0b640119546d0d6c2a9c6e09177f416dda348bf5f391518abed3ee08f5106f093a88ca6ffc814f08499f67154b04fcf400d62060b3fba7dc73487f4346f94da4c9b18a1c224af0c82c84fa9007430495ce2a1975515f0f4e32086238185f8883de29eae0cbec12a8300012e5d03fe7e11c38247c3b8a4323ca87dab67f942fd7474de4061be76fd4c8f47b383e3b165686a108d53dd823022e0567e6b405f4c0e7f97298869992c5a5afb0aaf441f78f95a898078181d0007f1d04fcfe252d96b06d594e73d28cd9554d52758f4a9627c3f64594e4afee406791fa2f6d94f608ba5b3aa53caff1332a04705a83b448e143e443f55774303f348a0ab069c0561ca3989f913bfc463431ca89f3f68561fb880a83e80fe30844774c195c039d8123de6631923d5b3d1de1ba07817cbe6cc20bebc827fad3a26e7f26aaaa9b15f9442fbc2fb5d07a59219a7cf99a1a86ceaa2a1b305e5d7a7ce4eb1739bf30ded11f28083de711991a6ec3277ddf672c4e9054346c0f8516702bdcc18da2d3b888c87f89871b27203bd2e216de3d7475e821dc42a1906861059884dcd11b5ad03c5270b53f277de4bd0b2f68702e01fdf94fef6cf746a8501c89a22a78371a5482490056a8d0d895300df8d965ee6e299a5d86b0262ad05b80467c41fbcfb9f68caf2656d49951509bfaccc8a520162ee69c009c95f951e2259d39089764a0c3c284ce63560dd4dc66b08cf36fbc5e664953bf783710f92f8761df768d79c89fc8a8b39ede631b39848cb4d0609a263fa4db47862a45947d2a8bd6f1eba7794ff4fc1d8c9589e17906ab036f3da5e74601f797041a4883f40cbd0878b492b9fedb1d7b26bb0e3d5b3563352868e1037d611a5d919a82c5f8f4cb096909ae62770b8fc710c8b84e1982b582fd4ddf15e4fd3cc8acf5a16c3b2d0afe5b101e6981481fe399de6037168ea7c45f5a2cf20876b16ab3723fc89cef8de58e90882361a1f433368fe9b6b42e9ee5be35b8a411804ca7b04a45d58973a1ac9cad03bc692a030a16b2f2bb392f9dc658c8100c1485c5f2b6079a8d6694ab4c41ea25f9fd1b45763f192a261ee53170c1be07dbb9ec820f42be143608676640101b9e7d81739248fb0efcbe2ff65fe69f176c6f752a41285924371854e67e627c94a90d86be0174bfadc507e83bb24ee008a028f0c3d8c728fe6f776cd81c0b261daca665920a7086b7e690774f9290fe8477c30d30fd3ffceb6a94fb39d15208c0443d81488b801b53595c5469a530fd5048f0127ccbf2ba52e31df4d10c62a9825825f5645ffb8ce483228c5078c6ab81a327e4165e27d5f24b704d5111364f5d8b9929b0207f031f49d113384ba23cb612817eba7052c257873705e28b9087f07173c9557bd230ca83c7c3618daec31fde0dd3791c66c36a4afc609cc2769bb4c5898ca8244780342d9f754777020945dbe707d28289fe35ec9ab25c88cefeb77ab9caada6a1da715c34a931b86c526371c1a4c6e052f0f9d61e5b2501273feaf673cdf5741775c66af34d787f7a3724726997e574d0c6bbfd348f3d4018e611f2ac73ecf97d03621a695565a2715ecf01ec22abacac76368cb433ec151ddfd660c4967df0e7449af5e99c17c7e1e492c508ba86cda0e4c58820d1c0d803194ab720a2cfe73a35aed26ac2eec00812c84da9a7a4b847f27d69d939e2b36475b0efd5fbaea095869e217893d54e8c7be52c9796cb462290be432fc1addb138166304d825fa1e8a2d6b2933a8152835ef5d7af580449fe99103c884f71ca97b0d556a8e9fecfd9fdf85ad3d9e566f082f947d337095f087c301404c0fb514dee398f9a543cb9274ec49292f0f13cda1f0aef7119edd7750ba109e3a00075bd44160a6931fffae69682c0c9dc3c5cc27c47e7f6b1d58153bd032933f3f569c6764f5addda9958e6be3ea2458b4240ac5323124c5c2d6af3a5cb3b75f793a225c386747a6dc697e9998b8250ed585b1b92c80fa0f77a995fcfd74ebfcd7ce343ed29ce687879824b6ca01362505fa8b9b7fa72c514b641fbf1a9bd55880d52f8cdd11ad5405241b09230f1a4a9ee506cb75fcb148f781b8a03bad4dab5437a4a401def03a60715053218ab92702e5b75983f9420d13b420ec4acf0c43f3dc8d11642c1bc8b45a3387d93a52a882bc3025a5cd21cb85cbbc841e634c80a652ff35d3c3a6f88ab937c97a979750127171914350f28a368023c96b39cf6c63909965c12f787d5d835c0560531c87df4a76a6b2d15cde0a052a2a9b006c2e8c8887b5eff825afe66af1520d803d7a63b0ab66bbdb2f0ab0c3859a56d129c71a9ff6a4bf26e739009f68119a6e21916d8c888875bf96c5f02b6c75e175a3155dc8b9691908b39914a8dcb9aff1e960afc551b4fb5c78e872c0335e5543836ce101554958f9166c757275c2a948778ccd3cef5e60cd9f1482410d3ded02a00b662c202af9a1be29f8e3fe2689b7fc529abadd3837b5e1fa57df8f99f47786fe33e8d0492587164623591e05b27451bd8c39d37b3b0c6dfada364caa18832c3c83bc83047e9fe460e8d1becdc8f40ffd4a7d8117df3bcf449abaa039f2b2a78765404bc5324adc15845ce28b27a0e0551c0c59c282c1a98640ecc3c442dcbedfdef973af4abd3f3ad7f26abcb606de8c33fe956e80a3111b02c4996f04088bb7e784b8849a64393d5c43a5bcfe63a5598b332a9bce0bcf436349942b0209dd405968f482ce5cd07a126c7ce1ef4da3a838ea3b8382e0a4bd72059d3fd60504aa8b0aeee68c7ace4ae8ad58fed60c76139ae35b7d0514a57c26af925e932d1b0a89f34a4b2a17c33c8642254951d3e53f81c6b2888cda24cd7d937715d0bb8fccc31eeee3d32d93d7d22d9965b635679e6219e8bda8a92c8da0fce46a9bff2e648c2c44b17d5a79c63d774efc526f91883a78a9511b9ebbf4bbae78f65b60e9db73b1f4127a7a611e804051b20cc1f961775cba1b0fa4eb5aef33878c864e20b35320a3440ae43214e31f6e1b653c8c9ac99a40c1b5d9a9e6219cba5c85d83e2677da0c13cc1b30d8f232eea3950ae34b07a11d198298ef645e7fcc0baa1a3d06342eb046d5332995607c05f20f283a620abd8d42b001d25b0117f4edc26c0aee7880d61c0c90609c99a51eadcec8ea20fa27226e6dc13f5da3057d6b5380a3150a84714e4a01142d1a5ba87fb81b495983c2fb8325e11217e45deb0a97bdd8da8d846759ce8f57c557c1d3a220f51847685f46ada96a899c4f8797316cb697dedd56d610658b5ccdb2faf9ab7ab0092e5044242c759b527001714a5a1e85dac3d2aeea0054579492766a8f5c58ac62eb3b9e9a2cbec91769752cc6a82f8ddc7e9ee97049f719193bee48bf11de2cc78758c01f27d035188a01979a3155768a26510ac9a1b3e6dd17791cf50212b2c0c078dc2de2ba23541049ab8f9c17d9806984003eebd355a1cd8d4b79c93227a250304b9799c87da37afeb077e8bdc123a2dcda733ae0fd7c01b3a7bbf3641d0cb23f1cb78ecfa639d52355f53accb284a9ef98ccf50bdefe0746b2d8d0736e2e7a77336e859cf2ed72b0342ad02069ae6254a7693e0d7c5655e8c79026c6d70d6068866b695843e70891fe7c87183f2f42fedac3ae24a2ff1b63a72ac4f77c7d53889d56627249b49570b1a67a6d4e89e503b2ce1f8eef53221421e5692462dcae7c40e576ca1d949f57ed6bb021ee5487de2ea042bfe4d56fe15a0c405fec90559d9c69039d2f4e4123aa3cff062f2e3811c0854be4d2ea1da41159dac58ceaf00ae929259c8dc4a5c35cabeea287795b5d318be361e70aa4c05bf1618e189aba5696825d3096f8e22a6c51c5455d2ea26953fef614c4ef655b02548b8788eb628ebaedb40c4562053eb89d8d7270a94a4191b123a1b2bfecd605e23a2355471067ebe876f1c3e1020b5e60189c52434428e866902f952c2269024545d210c9b9a50a3b41175148b36dc926a610ae9f827822a9562baa40829287580041f69a22898697f0ac3193b20951ef40d47cab50f0b8389c6bb8ccc90f67330371283bfeec4b7f391d9b9bf7f4ecb39c453e41b63d23ba0ee73a1a71f6b7fbc6de2271a656f0f61b2f671efbc36bdf3d86438e6b997ed3a2ceccbf65a1cd73b6f4def3c3557635e04906589af52af5ffd2b1b24fe5d3cc2576278177c626f3a304def3c343c333c32bdf3c6f4ce13d33b2f4cef307c81be7aef9d07a601cf4bbf6ad1260ba952bd52ef11f85a58913f7de7686982c132d8a7efbcc76a6ac16090b4730f24493b27e582783007f9152c7dfe89ffb6cb4ad8f816fcb75d56a29165efbc2e5cba7cdb7638eedbc6727b4d987b6399bbe26fb22773d78f7b32d993f9c2ce7af795b9c3ba3ae90bab407e057defa546bd77dcae6fe32ba70723141d4c10e1caf7e5f4ded65724ddb7284deff21ffadcbfc003d852406dc1e87365b46041ca3491a7e56a812cbdf3b0f4ce23e04aef9d2e8e0d87beaccc8dc59a263fd10efeff2258cc8dffcf65f0cf5f244917c7fe9f81760e04fe3f1fef617e67b4c21b008d57179d0dc4e9d20b27817801c92fbccb0410f20bef3a7e3ae0110602cb069b5ab4206f63dc004a087ffba2031471fd85decec10a9f2af7deedda814fddea3db76ba2b1068a09717fd68328a7424ffa52b2f4a19c7c281a3b87f3a1c2d287969d7c331b7be13b83bd97f27148db6ba7bde63353f9cc2cbde833cf7ca6974f05a4b236dea49dd376384dfa5430e95d056abc8db8cfbd19a4124d99f324f8caae6ec6f31ae37d3a9ecd6bfbe2d4c9afd95e4323edb93208ccc9ffdf82e46c93704c8e997d618edb353df7edbcd068d7a646a348e32ec9f2be7d4ce2f2aff33829d75ef6f690c4bd9d2dccfdf0df441bf6a48d07ff179c1f7ab2cc674fe61f17d2fefec42f2cfeb99aa689a4cfe582c11ca45c7b9cc6e97a2c80da8e23cb4fdff9895c2ef8e1daf6710d3bb6fbb5dccf8cad2c2c0c381c7ebbb0b0b0b0229e432e07f9855f24983d47e2bf8e9eab6d1b27f131b2946b9bc6653caf691fffd926f1e2ff74a55c90ceb6cfc060bb4ebe6d3bb24623f3dacbb9bd3696db6b3ef7666d4732f9e7344c0bedbb0d670017b3bb3f5dec6f3832f9e33484b94cdbc9b58781f2c78d62b2ffc2311bc650f65fe881f61c50163bf3b72f02e37a0c5530c8abd23b8f4aefbc29bdf3a4f4ce8bd23b4f80de79507ae73de99de7a4775e93de794c7ae72de99da7a4775e92de79487ae71de99d67a4775e91de79447ae70de99d27a4775e90de79407ae7fde89de7a377deb177de5def3cbbde7975bdf38cbdf3f2de7978efbcbb775e8fde79c5de7976efbcfa80de051187bd1be2d1f1e83d6d0c6e8d0d079a1bdb191954a3b106fcc1187b7bfba901cddcc6e2da68006d8ca905c960dc7b9d07b597b383debb10bf4bdf968fdebb10f73ef732d9af6a78f9217f099fac69922e8efdb82ebf10ae9c6d92cdc741142edfdeae6fe2c0a653e94f7c1c6efa8d830bdf864e47f8ebff9914c6f45790fc7f1e2b71bc48d3c322d1078372916884c9a3fd4696c1229ddbf81037922bbc52902b4814640ab28b6c4116e91c98ffe10aaf229d77c5431f035b90c7fc0f55a820ff6dd773f4578e1bef60304896453a87c92faf229d779160c7e1ed8734b136de60796ddf7330487abcb6e99ab68b744efaa1cfe1603048deb46d9328d2f94dd791207f6e2c12ed38181c23ff9f8143ff87ffcfc0ffe7229d8b89fdff02edff19f8ff8bce6bb5e3accbb50ddf79a2ddafb338f4eec31285d5c78735a563054d1f96cfa7a89772413240b9b6619fefacfb48b85e2a9bacd7c7d70bd27ba7d17dbd2e36123f7eba2fcc31543ac23e0c76fa188629b8dd5ff36128da3cc89a43f76150eb63f22f1669bab7da26b3fb6b66767f4d96bf2c8fd9fdb50bbe0be64ff35980e4b3c0c4820d9f85e21fd2423bd257c18e0d93c7d86eadc29418dd57c1ed1d3f41e7695f859e8f42250a6f7a698646d6f92830e925597b1b9d42d70451bd9fe8be097d680614e86ed2f2271269f21824713b96ff5d2c170ce69069b23ce23e8d2cfd11a63d59d3385d77f78dc4201ec4836489935ef2ff3ae6746d2412edb88b94ff171de368b54d6667a7d9361cd1be5fe0749a0d8796db6bb9bd66d3c31f8ee28def0111df8333df030e3e0711f40e0412e33b21ee853e072a7a89b7a9b99d91f5585effb7d886af81a28ee7746dfb1a80e9be06c6de4bf9ceab9564ee8b5e2e18cc01d3778c7f799e6db02faf387a3adb34cdb3cb169691e58fe9dcaef33f37a4fd7c1be7e3d0e7432391c6c9234cfe3f93b29dcfb85a990d72aea6dbf29826fafa28e37039eded86b60d93ff98d3607ec5afed7b5ed37565ed9ab4b3ef3912271ae3c832182483746cc17fd77ee88d3d6cbbdcb6e30f93b3fd87434fc4c9ffc1ee5f67df9e288ceb0fc305bd3d3cfaa2ff45bb3988b7a995d9206b5a76933d19064c2b7cdc19dce8bd0f7b4f4e4b5858fcebc2c2e41c0716f17fdbf12ab90f5755b8404f2f8376bf0e92175cb0660381e56dcf643048fa32922e8ef9db38e66f63eef1397be8c9affcb685786ed7244890376d9cfbb787c170b4b6b1e37098db459278db335adb586d178dc0dac7e53cfc784e7f1af7df8ebc83b9275bb420833869c465daaef3313d670f617b88e743da08df60b8271a71dc935ff2dc1f9634c8d2d7740dbb4d1eda76366d8793df2ecfe9fbdfbefe75f77f6bc371fc540f4f7ba62ee89d686a9102a6ec7459ae6db21e5d5c7aef6bef9912f6de47c8a6ce4c7595f264249276f699fc7123b0949e522e294fa4b490b2ebb51dfb7fe733d46aff89248ae3f00f6d1cc571e849b520d57bef41764581c151957a2fff9c1f5566d4dba815bdc43df9f17b0eecd7f44cfedb5623cb6fece18b3679ccf37f17bf106e54842e8a53efbd1465a78bbad17be915bceda0f1f6314ecba4db9ff36dbfb99a163521949dde7b290f6d12f7c23b14925e8602001427b0ef893ece69bb2e82cad27b897f634dd79fcced1a545b297f589ec0be8be4d8047d7a9f60ca9c6f9be04f80e153a6decbb99a3edef9bf73fcd70d3f4eac1bda5ff2ff79ed6f6f9c23f3db0b63e35bfee77cf1fba0dfc2c2e0fe9c2f7e22d23fe1882b8fc3201e1686078df6f138fcf4dc1fe272fd49af2ef91bc9e3ff1afa981692352dcce39a8d2c6b1f1b63d80b27671b1ffa1c970bce6cf5bff36ac11c353d93386d670fc9e370e889b73ddff4f741e3df68db73e418490f8b44facf793bf7c598aebbe7ec3c497a1df322f183d576dd25d7386df6eb68fc36e246df368487f4ed6fbb48fc70b2bdf6e77c9bbdf687b02ffaef96db6b68f6fd7d1cb922d2af7080cde9bde777bfaefb77b1a6e73e2cd7ffeecb35da9ff36d62622cd66ea30d0be7e85f038fb2ffb798d8f741bf915f2cd094869dd768e4976b2cfa2fcc713ffc3ee8b7a2ff67df07fdf6e77c9ba64dbdcb68b55d567ee337f6b87f3ecb7f6ecec395c7dad343dbbe71213098e335ede73c89e3bfbe7f1d69c465b2befd1fda7691946d61fec9bbfcfba071609d5d04de79626edb3710b87696e3347eff36313816f9c781ffdf391c1696ffb7fbd7766cc72f63669bd9ee5f34bec97f66c361e31b7efc327ceecd8a33db6dbfa0b36d32fcfe3fb76bf2ab26dbc8d22893f2c76ffbbebf3dac3f9168c7fffec287b49fc9db26f3182d3716bf7cac3d59db388fb9f20b83c11c0dff745efb2049290925b8dee5747c51cad04b2304164020a9cbe920659acca1a3542bb341f28410f4187ef224f1de17e8bdd3f59ed054a78b63fe368e95fe367a5298d376b78de33ffe3589d6364696f8a781b93dc4736f935fc7a1bf8d633299db43b277de5c4a8c6ddc9f1e16ff8bfceeafe16d3464da4cae6db232dc98e3f6196ecc7dfe6b34f9cff9ba3ffc6ef97f93693321eecf7033f9fef54f1b0ec764ffcf7e4cd7ddffedff17c7fbd7d1c36f26dfdeceeeafa9f9b43f2cd237dcf1fe75768cd3663ef766b2ff67443bc78d65325a9118dba0bb3df1feb98fc3e934fccb76193e9cf39f38f7df6a1af8a7cde4daa6fd3f8b7ba8f5209ae5b84fab6dda0c4d69d870f2d10f3f7efc3264fabe7f1d5b9118dbc071b522f13ecb6be3cf9e6bb4dc1ebed9d96bbde5cd3020b1e9bde7f610a771f9ff201111c6b927e23431ec512ae027edb9a6c9d907a19bef7aefc2de73642abffbbf779e1cf7ce837be7f9de794160efbc1dbdf3e47a3a7ae7e500d33b0f47efdd43ef57617aefc6de6be04d8feb8fe31fd8affe6dcf5f1224489030a1f664c7fca665f2df6c649dd3b71d3996d5084989df6670f2d019e34be08c17060c2a6008d224de8d4e3dafffbfe5212d8c43f5deeb7a6f9115fccfddbfceb651fc394e4793451beeea45299374d19341bad81e920149bcb473f278fb3abccced9abc6d12ffa47118178b63e427da6a6161707676ade8432917cc3f0e215123fbc3571212113b2ec6e208b795786de7b4bf8d635f2fc8f213e97c08d3f86ddbe146bcfef5c76d614cde46fb0659e2c6dcdfbe58f4a46cdf4512050a3b4f7e32b2c4659bbe7fd1b68564f0cfc0da16c6fe93b34d92f597ed3af88d771e24edbc2e8e2c7f5c7f638f8f93be775e1c4aceb6ef7dae771dbd77afde99f4de2115bfcb2f8c7d4c17db43b0346de66a7aaea60dbde9b5fd89366e88482f0db5956386b87a591be78665767fad109a5e162a76bb3f177251168a4013b20393f9899ab42344a413727bb7ebb141957aef7d1018bb416dbd3c7abbfbcbb5f1487e91f69aa054bdf78ed3c761cd2648512f6f9b44c90f0b02d34bd2ebdf36b18b3cfe5a90db8757c8623930d09b404c7a0f142ce582814a3ca76b63e925a37d7d75cd760a520d92e56dcf1eaf7fd1b6b3d3e2eebc1a8db9dabee3ecb5bb46bbbf7cb37dfab6edfe0bdb86b3d7e40fa7b6a7f72e26c622af69bbf889345cfd8576b73d76e7d5f09af6c43f43fe7479e1394d7ed53489fb2e9224c7fc54a27d91f403c64fb1773f6d7dac4faade4bb9f6b92f8ef5c1fb4ce913ecfd08e3deae8ff96f3e957a2f833f98d3645efc71ec716fc7c74e2ff908ff3df3318140a59cf6c49b1c43204befbd8bcc6f7b0c01612f6f3adc8f21b0d57bd016dad1d9f650aebdd9b14dfeff6e93ff9bfce9ecbaef061bdfcaf2ffa627951e3b7ab2f412c76123ae8748a9a72b0fa4daaef1b73c76f24c3143cb53ecbdccd3557b12bf8d716ce78950d3707814e5f5277e3c68cab91acf5defa5fcf198bd93a5fc85b1ff379e08bd97f5a7f3b9b07747d47fd1bb03e9ce9b3b446a3bfbce596ed777bae83b117aefc77ccdcea0f21b719cbe7fd10e13fcdb19f65e8a898979f9dc9b915f5db011c72784858991b80f0b8363011b7138163ef76673ffaed355a7d351d4e9a0a173d74bb9209d333abd39a24ab9e0a05eca05e780e9386cc4e7144bb9e01c177d0e875eca0545c9190446ce5d97d326878cc3a9f738834ab9e0ff731c3071ee781b701a878d78efbc1ae4fdbf0c76ac3d9ed3c6615cd3e4d71d3dcfa5fc3d4eced5f45739577ef26bb6c9634edfad11efbc1a89df79b55f04838d7859fbdb0c0d3f117bd888fffc78ff624ce39eac647056fe9a1ecafecbc55f34e672c1b0b01c479278c7f927bfc8afe39d7d178f76247e1cd2f2c769e4b5a7e7bcb6e3635effda1ed6454f5423cb9bfec21c37e6765df4443238b3793a181c921fbf7f5d5efbdb16da9144728c0c06493bae6d3ab789e4908e6bf238fc74f4b06be865dc9373344c1eedb5af991e23cb1a36e2247e22bffbc273fa480236e224c85f47e743b0fb178d387985882552061b980db63838b2248fb7279ea0bf5e90e55c93388d46fe727bcd5ec3ddec351ab9bd6676db2f7e6dc796db6bf69afc7f1d0de34817d3f9dbff2f727b0d878d6f575f5f59bd77dc68ffdabeef9f71869d9df6736f36b3e54636d9b661d476762de30f614ffbb6ff5f88e1e4d76dcf356dcf35da31c763dc79b5daa6f3ff6779f8e917329a3dd7686e637777f43c1bdff04fb71dc5f09f1fc958106d1cf8ff3ddbb93cb4ed7e7da6ad3493aa77f8cb327acf8cfceff82b183423346366e7edca5850064defbdfcc5632ed7a51d7f9c2c635706c7ed21991b6db29eabe92fd2ce1e7e98cc8d70991ed67b64ecf4deed9c0c935e12c9b8bd31a97a2fbd209563c004c71029c71c61321f1be37e31a94a2fb98b94c5bc29bd6e9c2692b73d8bb9ebbdfcf72ca68bee22c35000cb3fbeed17f2b7f34238f9cb9f4eaee918ff6e68f2777b23937f5ed36af217e27ef876e7bef8dde41cb7d372dc68267f3b5bae7f6052f5de7b17eb3d306f7a2f8362f2d03e836331b3d59087b6104c1127ebc8313067bdfb7c088643ef65f00b27b22f7dba9d3d24eb7db92b3f3dd3b24dfc32f4f79708bd9ca385a46de75e14f55e068377df4b98de7b49d3a9f0f9f0cb622ce25f232c0ceeff7b06dafdda2caf3f31c78d3ce4b19b96bd90bd940b7649d56550972cbd2e5ddc522ed82542ef5c26a17131d4f13baf561eeba137ca741d2dd7f49d57abefbc5a49e7f827e72f991cf16b3ba76fa35de767d23623c37e4d0f49a29de7361959daf7f741d3e46db4e93a2ffc70fee78e9e881bed231a59bed96624e9c9a291ac7fd10ea3c3e9fb36da4732f7a48d93b67cffba6f679f9141f903ff6d8c3f5ed3c14fd63efeb2efef8326511c8743ff6f14a4d13e92331a3982cded87835c1b3b8323dd7e70633f3718e48f8c847ba3a14696f52fda354d64906904090408297fb28518090408e9d585d3e5fff72c7fa25f234bba7fcfa4fc05bf0dc9633d4696c66090f424fe71236ee7e4f1f6775e7f99c6e76a7be8c96090c43ffe85cfb3fd657fe7443232f81634da37c86030480621493131163ef766e4d7dd467e89cdc3ffc682480bdf8a5eedcff9162449923f4892fc43ba48b463bb0e06833f1200d2ce8745a2bffb32e9733c2f713ca76b2369df1f87cf87df4cfeb9afa3f3d87f3334fcfbf8ff7e81cb43fbcc7fb33f34ca5f18bfcdd5748ec35eae7ff1eef7abd170facef1ef76cc699936f6a0e76a1cf1b937731b93d1e8623b0dc76fbad84e93ffbf677cce0f5fccf9e15c7f1ff63de3bf78ccc3c27864240680d47bf7e46d6f0d404688fb2f03c8666706e82a6b9b2e538513962a79ff75345815b7f752c6d7aa70e8e5d0c762773619eed1f44e8509152a2e955e9f924998d3761e381c7ae0afa3735f47df5f06e21e58e2f217c6b91f0e7d59e7a2428e878db8dd9c29bd4fe726a552374323d77a52a6f45e1269123f91d3a48d935fbf8e1e92b95d7f19528a2559a485b81417a7ed35291566dbbe8bf8f1cb080b838b02a94739a03c7eba14645046fb3282c74fe783b51d24f1fccf91391a590ae3db7f9c3cdebea6619af4a4d08e947d6cdf364ee6c54ff7eb86b0c76939a6f1e3a7c34f7c1c27e3645af861728ebced9826dab51d7f72aea68fc3fbcb3959e2f61a7efc32ecb5e39721cb68f2cf3d1ddb383e66aff1467479480bcb8cf2af69c8bf9ea3df72db76b3f36e764d0c0302d7d8d0dedc7e35803f18636e6c706f4060581fd1738204bfcbfb17875f0804a26034e07a29ff1e644977db76a49d933c483b27efacde73d2d5c930d81ec2e41adb5b8c1100740e73ef359972fc74c0a18fed6e34d3d7f4285598543acb13ecbbf5ce9bd13bafad771e5befbcb5de796abdf3d26e1b181656db44a21d036dd9d30dede2a7b38bc7dc16dafddb5804de3613b22fa954fedb981b673fb684ccd771b8c45ee2f652aebd37ced130d1e3b47c846f63911c5bb261cc4d96c764b9ecdfc636f92b99829ff8c563ee7fbda7c445efbdc4ffdc1fd275f45d24f19cf631feed7a38f4654a86b69d7f258174bcf3e43cfc38299725c9d28f498ab95d9349c8db26e5ff6f241774fcee0b717f361cfab2fbd776be88b3a7312c0c4e0c8ec5cc5634d2d9761a1217487abd1fe154ca058f0c3a02863e7277a4ed48979154dd48a3522ed8afae7ca2fd46e2c0399ac7bfc915262946ae90bf103716c91c37c670d9a010f76741f22b18246b5f7ab167f198779141d293425f931f06fb443a6fbbf36aa5cf7d57fd87a5575749a620d13448d2f99c0cde761efb175fb85108479660ff2e923e1824673bc76be3b048a2a92c7bf2fec58f7bb2f2f8e9825e5db3fd7dd0f8d0cbb2276b9cbeedf918cff6f1d37591b22712875f487efddb93388e7ffacebe8bf3f0bfd96b724de30f615fd3c8ed351ed789ac7e05f7deebde0332082d4d305cfe402050c5b138946de2d10fbf3cfcf22f1ee16a7bfe66c73bfb6e13e25e38f4ff168e7d630fba368685ddf67d7f392c0cce9e6b3451fdc7a0de7baf6db266fb812618fcc1a4e8edeab11f367aef9d347beff5d88f099dc4bddd98fce5eff687435a86dd5f937fee651cff716c7cf3c1a4f4d1f57b474efdf86445ef1ddb7aef65d02683ffb6cb86431fd3bf23d97b878dc7007aefce4e2f712ffc321dd3c6b7bb609fbb8d77d1bebf0fb0fa8e855daad2eed7f12fe2445fdb25eafded77fc32c48e9f0e3f7e3ad8887fd98ec58e5f06f1e7b45dd1eeac9772413b0ebdba4a75763a93ba609d8b5eca05eb7addc8c9a8a6cd5ddfdeee9fd3792269e7350d7bdc7f37b28c7f11278ff9fd8bf65d2449b82b8e9388fdb0f86fd25ddfe668fccbf8890f8384cdca4f67d7d53459fbd8e75e16e2fe4cfeb5f12e9239fee5a1dd4516ffa723926a697125fe8db887c930dc04499664f013edb7205906ffbf853989e7764dce34e9d5457e7ce85f90254e93c1a08d93b2f186cb713fdb64f0137d1d0cfedbcedfc832c7ed216e14e67373f49ddb77bfb6633a6847ce74d0eb4b0c8ec56dbfe80a0af13fdbc238fff36ce374ed85f127c6fece3f7de724feebfe901ec660b9708e1e92784ce7383d1c8eb1c07f1eff3ad2ffbb8b24fd5c4d178b5e8d2c739c1e9241313816419228fb7fd7f6c77d4cd6f46c83e5469bb4e7c8dcaeef6c32b2fc3e681caca6c93f77fb21e96bd86d386d87f66f7b26fe9c0efbc1b1ad91254edaf8d0935f66644996c1fcbf91253957d31ff6c24fd4c42e12274bbce8d5beee2fccff9c9d93b9b138f45e358ddb7064698676fba131a6f3db17c9e1d03817fd1786d534e43f57d3c2dc5e1b0e7dd927da6575eceffcee67c3d970b8fcffda27fab5f817df1880782041ef3dd87b261a08891e276fa36caf7dd98ec38e45fbceeb0ff4775ed36142dc9f8585c109712f94edb28f7b61dbc7bdb088c774d1cef13baf8d76d9fcdd707bbefffd7d006bbb3e064bbe94661094091376e9859bdd06e193396f5a09069966a80d9ac380a42a587824c8092a82e05227170b4b71018d0c04054618521cd88a8d3babbc200842c660432a394e6d74ac4dca12b42a0f07594d9405b66182b8201430616074c24709003910c20d1437a43c1b301d6670ea22e581a1140e4fc6f0e95a03200e8c1ccf063368a2ee2c3112fc3b903e4819ca79364920948a22820e8304af1b826454ba42678850c10ea60e246e221e37af0422764bcade31824064f01005817294a030445fc355101d17534f03054336fc0c554c68222ac58314413a1df4505ae3673d629a94868899a335884465c0d2a1868a4250a718a07a8b05008513bdbb087c80680cf3d85c875249626321622bc7151d07347c2820240c0c53553804512dad0252353083db2c451ec88db5e9e0a70781d6006c170fc036aa830d737bdca85b17849a21ca821dad7e28a99f38a02208a985a584a4132a86a0845c1b7625528588f87e752c25e193e51431501b136a5222cc1ec4f051d440ab1c24d05a44e0c89210fc91060f87cef8b468cd8120cb59c3e97b1d7d0638fa7421834feecb11407aee745a62e543da932cb43b73e02c8b16099232a90c1e0d63c4181b59a1e2a18dd138c437d41984f5a108aa496567d0e2a8a0d8d34529d0fba1021aca9597021a281eecae5c401dfdd950e2713449100b258e8000d5f4f8f313623d19b406d397f88b6f55071a2716e832010836f98bb02c5f6409ac9ca2512108a11f1bf6783130c84707104bd4c84d1a83a5118cb52acf85d702183116818223e4c3b16e4e0838814b5252ddbe1941381112d4b527140736061204a0ca54a4335826a8dd09643e5937bd64f653dc7c3a3a4160805120be0810c632452e5b707ce8f0999fe458e08803a61d204abdd1c23108ed0c8e1aa85440902501264c7f4a999d8109fb74f6ab02e500110f84a91bd8218ef51d2f2245e8e4834e87206aa3ba04e3e652215f32300235a84a06590c0726352c3ba758655253568238d66b3b2db5b5403300aa562146249ac1a56e75908047870b5c7ce2c38a002e4238bd1364886009930c84103949512c0d863e59c0d593331c4eaac522749992f4b3450deab4850746862b414c0b17e0aa4488b325a9a7e517d54d5ad567428f496360a49c19e0c2e7e1820242642d614cc1b9520b8078a37bd8212442a13029f492225bdc18b2d4d5b5329d60c20cbaf12c5a4043099b13d97d484ec4910326c7203464204072430991fee141994f7069200b91c2c80f4e91e95d035d1d51653abcf4f821a7cd0195b6de7da102dd4814448600174c71d12077d1fb87031c51c061d0dd25b0385ac0e0397597402530c1390878c1883348ae8276ab83265486e05e1d6062af51807490e1b3e6ce296f6489292e3140cc242c40216701462834848113c208cc644a880d76cae2680f320345918870c05295e8485aa243e396c8fc2d48cd488a25523829dad209121006779034b9e81ccc5c22f1821097609b24bd67d99933c741ad210e020d7a172140282611de70b91102d37b07b11b2f182812486a44a467382b55a0e9d108206a7aef9dd8a4420456119349ef1d1ce881891592ab4d2e7a8636a6eaa00cd43bbdf79ea0f8eae24db1d2fbd65dd9d1812e72c8deb5c078822288410191de1395e8815a03557af7b085c991a5506dbd6b1900e26e0e1417dd670353904a8bde3df821cead0dea5d831a97041298de7d808e6d2522fd03dd29136aef1af42410624aef5826974c2e3a882d2b627adf7056c7a9772c3040b28340f47bdff00849ef59588a7a0f818448e7c0a3f72c26bd8b70d13b64e8bdf7de7befbdf78eb54603144043367c24d8502543459225cc061a0fa83005e311284306b45eaeca205008448ab715a36e20ea24648b832446309440b05664705007893c400a7909ef8116e48206420e3c6814a58b122ac18736b52d0fccf80084edac099c381a5a8d8965cf63f47d88e0085003030650c0402142e8099380080d632044ada9c248025475ca98a12bb49ef0c0c01f3ab26382c958464aef819e3f3d7c3025f9c1843951082d39f268b0aa5aa295074b0b0802c0a47e4810974092323b4e1e5004a98056cc63c0d6a53673cc58a161a9574194136d3419d58a0ba45161f2618e1badf784a325880506d115a5399d00b8d4616b891010adec6c40eb64716364369228f5acb859c487d10501c078d5050af149025d863b9196d882169d11d2467666ce5008d481d30c2f197702ed89e182d095296d0bd8e99de89d44701fd8356190553ed0226986164384655e009459e275010289cf08221dd22891bd951a668874c4ec810ba024a02402cc062c4ea2606cf9b8346461a921139795c0053a0608f82ac6a02380214f6accd4e13007eb810216d48122279f629aaeb4c9212cd56062e7a38c9def6911054c189920596a755a31d89cf968287871e4e232b300079251015de21808202b85b48108a6c84808af0845ccda281005525f00c4d9d14c0c960365da0a7dda7284d1892c52935148d3862917c8ac3af3272e4b9f300f2a79d9f305448eb5d6c277c0044244113acb1288f8004bf8a4a829058646768d208880401a706de0b95113318711a1275f205cd4c9e100ec03a01b95e6c69ce5990015d7944c67a03b5f051cbe5c04b260ccf1d4459212c0070a1aeebcb46da8a62c6240820c54d20b972e7cd0a080022556230425f18d3943166d61c01765c596768ce68ac38a83cfbe1426d61a55c888031f2062a5555eb40c3dd0448f87ba0509253554b41b2d1c6c1163c426858f4bd33ac0a94a6d1e0502a0080433195bb46a117f5295b2e1805a1d361e4d6b47912d4267e2d4315560085302cb710b0e3a247a084450e42604049d401d216cae38c06920c3044f1acc812093c09a6947dcd50e08626c754da000914c164e95ed98f3c90f9d2b937a37ac6c294ae9ba13c3c3194715160835196c557fd20e20b5894b185624aa1a65b43a3c498552a2644098238582a459bfd6708800454100581e6d6982690f882c23765e54d6a91b9b10d0e4872d2940bf4e275d580ea4de7837607a1cc11307813a2d26303b2242850e1f5b6702604a1374f32d08af90c90aa2e5501bd1861b091e18b6eaf2724b38c8f50064266e229179632246ea28875388dc055b0b3591a8a80979ac19c0810489ac08684e254e0615a0c893f500b3b56a6c28b4a80527301f7e901c07b0705728d21a107b9420825d077a64c2824a91a355546a601190bb908b976c5221a4024b4a76f870b48185af2dd74357b260c79d2d2728e8f00404052d32543c21b911c60aaf4695fa020acbc4044a24a5689d04e0ababd62d3ba5e10d1a4e545ab5fa737c14194bf2008ed4071d8c48d019d22a00120e8ca0a20946a7d28787c1a90330b45a621424c702159f48c969e842522ac400ade8b757cc6b01a7d2948703cca8d0e4b62a431361c2201f96c2e0f8d8ce4c0a75e98b1334070ff6a421920dd01a43a501ba07960c25bd381b82e97b2279a850172310a33467581b222d19d42798d1db4408941e33344414d6385999d4adbc698dd0c3838e860e176b24c4e0c9e0e2cedc168f14491ea088d3e6d7c8106a69dbe4a76724470a40a437582d286018015c34c5810c6246b5fac4800e0d87d416495047d08aa183213743383988f361888741a6c41d9e5b4f841a86510ca48c4ac4e550202c0384c9339c20df2630c341951d6995aac55d13063a989c849cae4c91a091dc8a8234476c7e228290384202cf292e34210194aa5421ae46969b95ca29390eb06d406d4a35844087000e5afe508093c080e4068f30142c91406645883ea91c0c9d06f8b60231f2ae43166264b9645b13525c447c496b4cb40c61b2c6e14197ccc62e3b11801b09147c28f18043403820c8a32759a330985033c77e645601560289a298a1f3a92ecd1d0a385fd3930f1bea18dc6df2192b6f8e56393e41b04b20de90ac610ac2c05168e8cf1c15eeab030b0e85b3b680184f110cb901a7c51100226990200039314664987180920902caa54f8a3e8c91b2522001c19429352ee012f58153039fa6b788895386b670b072583460f91868000a8aa018a7452551804c5d2089802b651e50dd71e050250b37be4c9162810524cc8acf47a32eb24284383d1d36fc270290e9a2e54013b40bc304e21a117262a07a5848c0039b272107602192a0b5498da2c6c20cd5e72ba542858c3e25dabc21e2008a33373f5a35ec0a2c08f14645870f6130e491e67a6cb1a1a0ea8e261d619462426f6ebe2bb5de9a254032a85045c69017b9465931c028cae088ced161452a0bac929c42e30002adc1560506702839a1c027e4c4bd6507d7965f0f8611b614741c28040ad299305b8e22a890e1066c890232535aa889c240130f45cb5a073bcf16396a72d4b4d0249eee84e2234684213546c2f811411c434ecc68e80c709245290615320fc879c0957207c6ab4c8d0e874720d80b5996b25ec4a93128b532824b44054c47a86489948543f0cb878ba317314b786151582b265f30b0f0704828e30e260e64584a08f1e111881105127c8cec402317c20d4b171015bfbb25883cd930056e3956292f47b52e4fe8e02ac529d1c581524d36bc51b2214c03502f5070a014ca415b910e0497335d9abcf07a24e7cb864e81c84051825584d31fa3a14826145daa49e931f1a8d1061270a92c31456f927c8861009d29c0a00f9d2c3000d205240f9889e572fc2e8013868535496d93842c099b586ddda0b00794021ab0580913341477c8af02136aad0d8fba0f2d8e84ecb002e3e323888414246c2890e533330c91e5e5012c6ca294c073caeec797861e841259940cb0070b1c03bc0e68e0062a0f5622806285c665b3cacb9629114ede187d2c925c017a01300c614411a401e8b841d37a62a6023aa586304c0090e4821d3237246d819a72477e03c3462836b3db8ca8e8d66b600b8700d417962b86f89422e2624eb526f89ea33475f6fc10334054b06d489fad3455342ac0956013e9428e4f77f29737bda287064ec8c10225c2992adc90d8a50532402151a847983df6841cad22042e70f9d3c18014412e4cf82a748894830426a85246aa67e147d9152807ab3e1bcab664f8c1c32e43cf015507a022c5aa08224311070af86975d0eadd8998130a810a5c37c4b475473844e08023e0c418ba3652c08a13305d51189595259f04291000694720f38305889cb1e320a48ad61a2a3622b0481ac2c408c9005c082f6c0162e66039116411908798340ed26491b044968123e4cecd981f62caa419e36483a702d024020181864869389eb065a83004a1a9c81b2f130d2e5328f5284938806109d69b1ea30812d12812e989193d0d084a3367830ead0891ca50589a514e195278ad9000916ec9e8313a5540261fea920b1054a1c00a4054dd09c99148a261b09130010bf06848f4c949991258226000e328c1080561693e1cd9d466ad5ee5805987381997e2107af32d2a1e9ae160c79942521c49a9dbe41a698051a1d57f4167c69ef4508a86c988e60192a200c4b2c49abe88f071f141aeca16df9c91134b4488d99214d931f1e1f91146cb0f0c47b8e9028545095ce1a1c16bab8987338f1c20928128828c7812d812c7a7e8b5d2dad262ca882a1669ace089a0ed431e2db148de458f31759e3052258116320074da8a3245d5942815cad48352c9ddc217a69e96ad2d15d810b4e9b7d8224624020b0c19f878b254a05445202600ef02394146568750ef007550d8b911c524a382a6c2a447bdf5c8056e3ee2b4a920f0da2221c2843319c8305930d721e80095969c2b43312cb47578f312e682921d08b9a4113cb10f53c88840936410031bcc4870f3494086688c1c445984deba187123480146324e427d94cce81cf2a0417209c7b1ce1908562ccc33995c84e854c5cc87934389ad12410cb160008229596e5bce30e0c5800d665cfde50183145b1c4e905109f400c703171063bc1074e4540421ce2cb65d32caca0a265c201de55237b020607365490e051794596108322871e0b08180385e0e58cdb380113c4d4238820004881f9ffe900af3d3e90f00748a19ca953258445cd523f90e7aa7c6883ce486494b364450944aadc5a621736bd4787102d148820f861cb041013c708c002b72e0123100f0b1ba3476810d1d9298b0fa206a4fdc5a0d0d42b860fda8732cba1664be3eb519e1e94388b20d5b317c1b1e58b0e09e80c463f655910054b18ee1261ed455c6611319112d546478546832e9c60578d0374a23b2480f460190486103f7e6072704383992208e93cfebee76c0901c506a3dec662899e1689416ee48ca1431315e951035506293a6b4365b8a0ea5f95a0c3937ae62d89e122548bd3f43c074bd01f5a60e9805927449e1695386522298a09350e8c8d48477a2419da608b6546ce2118095dc54084f646f14b002464b4f4e9498393d84380cf026c1cd0f209882198c4343576b2cd861e7c4a1ad2d1d20ee3a5411b4ea8f860ad8f9e4438229c5e54804aae32a948b1d40ad1028391152018a4256056cc4020853cac71047936604d9634a100755716a899c146f883864a5cc24b01eaa44b46d4694112bd8737cee2482bb5bc02ecbc821b510d70905c03c6a34c28aa1221338c443c62e6873d691608190972a565e2d041020d60f4842b80ccd5891df05510526cb421e3a01e6d61cb5c252a0cbd09a9e061b1840f1a2e8870414041ed5ddac48d03900a1400ea9c2283a15a00480c3b0678d8340585b68081134585a758a035c13474e2e71d940567656e8c3963df70e9a4d1a18972320b01a6d5d30e60f9b052868b001f8321883952281299334dd607375e34f942d47c4bcd04067ce1c2da0a80d576f52944c7602e9831c93c051e7d3873f1f0260b568559b283e04f69cba3ba014155533ceb42a8300ca514349bc1d517a536767c6d72a832315583ce08990080a162e56b4a410202412853c407c70bf227520f0f380004704309cc1a0516aa5a961a984a3fbed0d24b001b66ea0387ac86253800169173875b9e0a2aa14cab8a1f74946a536529acc80bb2e15f0e94a1a155a27764082548aae0c9e381f8a9cc993e563ab072b0583f9428a17f092185f1a48377a4afe74a0857c75384a02f59331e1849b01cdfd05d0a43a2220b949e0a8cb21380f3a2c9202434e035c9b16982393f60b60128c1e005aa030e0a0ed45d00319b00646a7b40c5f4344397881a4810e2e52e520a003264a1dda2f9f1e643131014885bd7f80d9b1414492259b2288a98082ca8804c316136397ac38b9a86f62929dad347793e21534231cc0b87d09295e3131e22d518a4378b65c0a3168aee3a5021e3b0d9a3f14f091804c52560b17e81f41a6921492708cd48e22448843852901e0c75167583c81d4a60028162b426090c3d666a3f65170b3808c8a3614038b902238555ab34267d45cb4da1223e2c2062066932850406bd50c928a580431cc2c0291a386565e97034819e19c285abab429c1baa18548484815d826dfe348f2dce03484cae1e2cf057647ff227a24e46992e0c31ab4572acf95b83b4cc6d4c8188019e3ebd42a46161a2d6a303ad5a5088dcc6cd6f0f98010e301850d135278831c551a20e2a15589298a03158fd6a8c0a0c06de784926f48903548805a682ab48a9634e784ce212d4a3ac44431652118444f026e6344798887b8d4100aa767a74b8a53330383f678f16920b2a3951b3538bce2182c035177444b0759c7a7001abdb0427176de3035e2da8ad365c526d2090e0dc80466841048f8ea19a04a87026faae46d40656072e544013d1924a18a83ea431d9f03b416355713d8a5d8c23a05c6d4254c8ed812e8198c081b9deac9700089960bb6835191885460a04892ad0c3b1265e2e33641503d83ec39884053b043dd114a2a4c087044cb24cc000107309588465c8e2a10653ee2b2e34f0709262a0ab2306179a0c35108257ef2bc6c651028a0020e93f4083245c14cd78d02c21829e5981d115a29548dba20e58028729a40b9552d3291455c01844dd3219116b30154821e00c00687332739ccde826543825030de61f45586c0c1869496d08503ea587beb8281eac54ac566839a0740cda3e54d29555f1520d940e71108f2cef0aa13111026aabbb70408325030093709e27d922bc85a03468da504d2053f531ef043540d0b8cd1f85466435714ac1ea7b28e94ae3e146160cddc021f48c1c172e1b661a3869f58cc0b0d637eb036b8614543b06b5917821f1d22093a68e85200020cd06838602048cb51203f31f0c3ef8a88c4839a17667624a5ddf5d0d3fad690986e2a31e83a956a82c1100c2d311ab424002165edf220d31bba37043848a2e0614b2c9762d0e0eccb07255d6dbef810f9c64288d81081a536710f460e0c8fd0915a54be99499172d8d0b376964810991fa7ad537c7a57da48959ebc2406770488837b0e60e121e78645ee0d4497a5b75435bc6861586566ea4c0bf50c267c8b1305c3dfd6db05049c0c5428c2c02429118c5121d4e8e54126512271860100501c2778d0911090814a171a353ccd5080ee1407210c2265f274a0d3400d1b3326d840a47618b9114c84a2e7fbd369cda6479658c4fdf0d93d50e447060d69991a11208a648878a38106188571a083873e51d814303643c8d91b1932ce9cb08980df1c10d787813293223db023c4169b4b595ddcd875908e40508386109e458ad85ce090648b025c943184aeb85de0b504c9235f0833c1285e07a4e5a9e04c9e5482b982a3ac1317d88884c13e05044d03bd07a5410f368cb2c0ee0d2083942446135c4489c3030104281f311ad90911aa8aa0438ae04c80a609d69c0a7502a5b268e4d1538967ab4d6a6c80d99cd4a9809402051b0e0c285cad590322ec12312bcf02eba9b8100c10fdd17005cb6c01ae2f1ac108eed4b8ff04b5ac85d0e0e8aa4dcbe3ced6093618ee547cc294f9f0c4088724bfb9201c2c596c744239b9e07b74b2bdc90872a9590d7d8b68d041d390b66a4c570817901304206878e10900491e2ab5a040aa4420534422134990ca7c5ae41b9a386117c7c54602b2b1c9dc9c1c065a8254c0a10176a43e15a48a273f63611a78702de8a2e60e538c031e4065064e15093f1f832e644e9e44716340a1ad41a5053f435a664806002b6f1c39f484f111866783d8d695327552f9b8208ad41a42900809bb58e8755952c58234b41a58d6ec38112402b82b430212d8e11191834d0b0256387237f01cd08102001a407306c5926601201072de78017bafa3df4438c4cb141037484d01d54152863319ac3cfdf9a244e57a63af5e60dc3ae0d8c1ca4c1c18737ec01e78c2cb23cc89784301026dc10e63708e6f6d00f92610c95aa00096140b0c842e786a94a6a59399291cfeb848c08da1ac3c6e660801fbfc3635042945a7220581a4e644db8f3a6f849019cb8afba3054d94333c6c5451735b80cd441a0e60715c601d30c30c149d4a678a5812f516e2257b1b76642200859c850138071b21d62539132e6c610b1249082523938e32fc6ce012a642153200e46684c0125b79e4050e882384d8e82c62a396995bb0f06141891cd62dc7c0a2b23560360135fd0e9de1156cb870eac58b46043419d1527a14008e29aa3e2c3a000ba4267a52d0491e21c270ae2d160303bc6caaa1b56544293395bc84f829d380648b923029b65c752a4ec99242d063800f25fe08d1ea8afcf915e420e0c29185543e2c5a8a8075f27518724214059c920ccaa3b56a480447f90a10825113a862ce8475f2008492038ff6e0a9e3c88db088a11912c8f84a0a9c4c38b2728026b0ab1922b0cc40d03a46b1644279297db13356667ec4c664eb11a902f4187016b7c48cdb853e0200c0a317081598391308c0ca11540acdb5c192c8906a0e934b425148bc2a511e94d4656bb6584b9e3e947d95f17137242194d088801eacb668541a0b360d9f945d29f2800b820c3e2280e146ab83162d0590ec8a9ef5de79dd470f01de99f96dc3636d6242dce3c4dace9687b61ddf79e2fd8b40a2b1bef3c42fdbf51f028f37509817bf0c04de79e25c4dc7f511f761616c1d4ef4b76f238beb233ec6a381069d50518572a4908bbc17797e9062a4d52268c8d1241f5b5a6c3ae5a28f152f99584461734fe0c4a78b026a2224106a885a8548a1102825e6864f79a0c59d050aaa98ecf3552474e4b79671421311f314a3ce6e98415000efe3a0c7179c37a73ab4205a5c2d50800266b8c405503b31d22a2d4807084c6a8a83188dab274b4b191d602cf0081313012ce008abca4f23118f3ca638062a18a0c4d78562869ea924d30389180c214f01aa338320530bb6565120791952518285072b617c8c993834c98dc19a728f49a107220a6ffd48f77db2e3775903ef9fd340a27dcfc0f8177115f1afa304a4f72ea37dd92e0b0bab7f5d5effbaba9f4cdb35c2c27e11089c8026f6c5e2b687be2c2c6c4258181007d65f966921902e7a6011c76fd81d37dd6ca41ad5cb11fb6c74b2e1800d4136f0d858d37b7fd07d36ca74626c23bfb3e71aed8dc1231b5dbe383b403a1916e7a293617115c8b04664580d2e64580db97732ac86dac9b01a3406916134a0f44e86e1c74f07a461830cf3d1f8c0890c837b4386c199f5dee17a6498dc7d6f64de8664588eee7b8be07353d47b27c3dcb8f44e86f9dc5cb7069d0c9bc1a577196d9d667095f8fdf34ff4751869e7b2278bc354a8c055dc7da0bf8d9e18dfd9f3d89bbf8d63f9ddcfdfc6b12231b6418c6d10631b346e5b50efbc400af4ce4ba0771ea03fbdf3fcf4e1d33b0f813dbdf3f4e4e9f5d55aef1862f47aef573e35528e42c17874c74e010b7aef3c986e618fba3440a7de3b831b45b7350d646855aaf7de008d98346d597906b5bdf7ab00aae4609bd2a48b9edefbd5134f22bc6e072cd6f4de7969bf00323d39f10455ef9d81961445a0b064d1b3a8f7fea0802ba9ae1a85b172d17be7613a4505c805582eb5bdf7065b8210b4080df1a0d47bbffa160add6220ed79d47bbf6a04a30ae810a0c7a40e161626d6562c8ed97061615c24ee59a815e9fdf865c8b71de3b40c1b85393d77ff3ca7edf23fe789b4989c89922b5c630e16f79fabe919589c2b0e694ffc77f49d7b22fced8e7e58c469d9133d6ea403fe61d1fec5e38ddfb98a63b187e961e060bf3aaef0eabdcb755f9ad7599a60b96ddffe9ff9dbb7fd8ac4fbac0cad48bccfcadc865ef6dfed78e7f54ff6df4d2db76db7de7978ecdcb1538747a7bfe1c974e7d1283f6e0f63f22effc639922cda769c8409a5fcc917122694f87c43ce0e6ef8618bacf75eeaeaabac5f5970f56052ef851c4de99d37e7d78042035dba8fdee30105d4c088d778725ab58a7b41805a77f783644d97755ecdf30fa8ecb0f1c0a4e7e3b07ed055ced5f66d4796386cc48571ed6fb20767b018846860caab0b88d32378717ae71d1001429b6cf7ce83d33bef0dcf80de796ebe98b9353dace91a5778ca2a953ac67ac742fb3b5f31f4765edb244c34deb110371681765ed3402378f0617d7bf2d7d930da97ed3532b31f74b7fde27824c3f3db176fe3b0ed38acd97ceee5e39771fc74267afc3254f6eecb758da66bb517c2fddb56b38bf6dd96e3fea7e56344bbfe32d1aeef17f8fd61e257fb316dd738de46dcff1baea689f2d8c7eb3f7fb3a1a7635a36c618e2f4dc4f13c61feed7d1f7a7a36b5b2da76b1a329a7196e94fb4df7e6daf8939791b6e5cfd35075b824cf8fa6a21d682f4ba93e9ae7cfe69616e375b3eff349224c9093fc83b9906fe39f9031fbc121e4470a0aa500bb1f90f09b5609182acff100894873683490f7081f021c765b2450b32be71d824c51c707094f7debf6cd724182e2709d68214967f4efe9d48f73560e5061c5ad958db5819c982bc93e97e55f4357aa0ab287ae289debba02d264c9026d96204997f7c9e6dafde1d8839003361826c2146caf5ef0dfe3490d3204a83180dd01a9c3558e163a4e3b671153fa6878c5c74dc4deee7e83a5fab5011f4ea2afadbae36868505633cc5c3c2d4b44e4dc3c2d03ab4861a1696d6c9686a8db486fc716358982ae7b6ecaaa6a898dc49aec8c122bec7c2c254d99e6b3431345cacfe695fb6e1a357938d37dc9b58fdd33ed1afdd79357baed16e9b87277ea2afe9629fbffd21eccd6a1a6df61a5d6ca7e55f2db7d7f0ff5f0cfd37b3d7ee7ef2d068c77da25ffb0d87c617f21f0ec770b1f4ce1365b4a3fce55fd3080bbb7fd1888b797da1293e1c1ad78ef51831b6717fdcf8b656d332f022f1269385358da2bfe17e1d8dd7bf78f7b36d38fcff177335bdf68df65dd3c86fbb68f67dd06ff84f1eda677f087b1b4ef664c3216ebcf39a464d834d1ed271dfecc5cc361c8e0d8763f2908e13cbe33139f674e5d41fa3c1f6902cbf7ddb51b6c964b4a36c938989a1290b34a591e3b55de6a2a7d135aaac510e4d6534badbb6cbff1a9a1a798485a1756161317aef0cba8f1025428d7a27c6774508e9785b6343832b5ba3110368634c2dfe75403affedc4dee25f0777c0a0003a7e97b82773df46e77fdccfe9db4ef6ff9e6dfb06ceff46ebc2c28af1af81d3c5319c2efab97a5824d245dcce66817fd9ae81f855aa4060d4fcbf731c86986cd76958581891223f8024d0a8779fe3dd0b7e971226d4b65cfbda1eeb9d27a7bbdd98a4f76e771fa02de0ff4379689fd1a8bf0ffb7ef173ffef323b7bf8c98ec39a8d466dd3bfa13ffa347bcd2da789749a195bd9da0fe8c6e6e6f603fed26898b1a9016d8ca98585795c8e7f6f3fdb867feee77cd1be8b69757faeb68762731eae0dedc7b7d17ebb69d86bb7ecc9644f86e33fbad81e9209f39b9e6dfb6e933dd9bf8db931a7c7ea4f67c3e1b8bda626c622fe35f0397b98dbb65bd1f83ffeddee7ff44372e8ebb1db18c7b69d3d9ceb31fcb6d7fed028db4452f66445239d8dd39e58db4618ff332d7b615e1bc97ffb17786d9ca371f9e71e5f41972489fb0ffb21897ba317defdfca6e1b8f6640d7b7591be4613e2feccdfdfdfbf755dd7755d55555555555555354dd3344dd3344d51144551144551f43ccff33ccff33c4dd4444dd4444dd4444dd4444dd444dff77ddff77ddfd7755dd7755dd775dbb66ddbb66ddb9665599665599665d7755dd7755dd75555555555555555d3344dd3344dd31445511445511445cff33ccff33c4dd3344dd3344df37cdff77ddff77d5fd7755dd7755dd76ddbb66ddbb66d5b966559966559965dd7755dd7755d57555555555555554dd3344dd3344d53144551144551143dcff33ccff33ccdf3755b765553f45423a2f51b3e3870f75711d368bfa6e7eadfd0ffb77fb7117f8ed67d6f7aef570b10716f47da6785f0bb3cc2401cf745e0d0e77e3e7a3a1b27bf5814f11a3264daaec1a6b2b2dc0f07da1bd0ec87032d6d0ccdedf706fcb9d1801b5b8381f6e67139fe6559769e0d9f1b436e08799565d945fedcdadcf5edcdc7f1ceaece98e3778fa25d13e978d0c2391c376cc4d5a001f7e636a36d4d2d4d468c33182f7e666564632a4ab0af5629509018418ad8a0a155ababd9ce8bc73bbeed18ac880fd03bd1be5fd47f08b47360d10874e79cc670e8896fb60d47d682a7e5cf9dab430c28f2b1199ae5f6f00dcfed219edbc33760b1e8c3c2de735dd11b0f0bf3b7d18bdd391e46c4bd1d0bfbfe388e64b54de3741d6d26d7345cf4a421ff3bfa4504303e35a27aef6161c0224e92b73dafb981df2550fe77f4aca260319d7fa230a76f0f5694c000cd950b5ed7d5a37ec500a2ab4163d0f4f0bb94fdbfb1ce70b9ed58854d771dc67b36d6396c9cbf1cc3fe755b765553f4347918781478bc2b0bae509581d4874363ed2bf3a6f71e0c92794ddb65a6745f19b9f75e3ce6be326c59a6abf7ee45867d7d75f9ca38207341276ba27168c724f96bbab66fdc1389f6dd17ced9f76dc46b7be835d734988a14e46d936b7e8dccedb92ef2e7744dcf64eeede18cffdc36f6206bfac39feef8e9bc5e9ca669d401669aa669d4d14592411241e4be82614132fe3c609bacfded8b2fd87e43d8fc10c1824d9e0ea91b94a9100053bc869085cda88d3880678805141e3035903245c823b84b1f14dd91848851c316c3450e4b42889364a8e9033010d26262c1a41bb90861f061d5ab05d59b200b5819a4c30b4a5a902c760fde8c683121485c85aecf1696154154b4b199a78c4a054495851a76705382802430614d2040285c20532234a14b045701901b67c85e7058420110ae240b78f1f100f843141d053816b8693ff098513a924280173f9230d0c46bd262d18fb6449ed6302c927e6c69fa8d407563878f4c491a78f88231c4079c960502c0f0fbf8f1c449d06d63fb7821610511b038283e7c602e989db0291e1f50054db0f3a1763433e5cb8a2a835a1c6f0b692ad080398f2c2c650dc9532347081ec80ee9a0e0ea6e1190b51863c7dc5d97bb393b77e8048346f4fea8b26385e642dde44587dda0302d803e09796337009c81cb1ed4841d90011c9805478a765d89ea9ea8e082a3ae940329c44009a255c7c70f251e3e7c9eba267399400d5a535107f716c206183128752499903669ac1c193b3158652943a15146398958add945e8632462e653a8429c33c618d388529b01148c5a6c9386e07c58e411548083fe6915e76b6014e9c440162fb971d10234721f1cf231638f49140cca905308f5818038334a7047362ead39ba35c0c354a2434250ae081f16b0a7c10d5704672d998a72d421c2796b02e04080146e446b6e2c35a126564c35b9613e10c29451d0e80663756ff932eaad072a567f347410e0811e805015021f8f2ef5884207cf2a2a37e87ad8a8a2e21ccb50a30700684af8e9937cc550b8bd45b52241f18e97092d406ae08a48484f665c989415db8a1d00e9213248c7101b1317021011351cb2dfb4b07dc011e63c3862c5fe79084341c7a5cefeaa25351811a4024fa92ec36513160b8a0ca97bd42bd48448c16e29f5831170fe38f95381c84091c8054e439e2a973411e7346b0891b17922a2236a846dc10118aee2013025959d762828d0b0ca143c05b8821818ca0d4f0012c25268b1d295e219da61cb28e810e001c1aa210fd4d031a131e444e9f2d0bdd96531d555c3a41351c28f1233a2d27870f274e5261160028f38a154b0964c041e43701e68483a30f2412785075d09ee89108c99235a0d49c902a2b05174be89c3a347300eda859d4a6cd8ac19404ff033e7a34d0c38c206e69258b0a7011cc23022bcc0acccce8474bf50bb2acc8270f514e1ab909547c22b268ce222d865cd1dba1062d4192e4f7304f43800c727104de6bca928060010a3d1dc179e20991c98299929b0004b271e5ddcf90f4c09549e37aa660178b4c2042c22658e9b493072944a0a85161f9408047008b9f3df4e87af75aae2f48fc040d23325e8d35f83c4680d0ecff039b431422a9352265fda83aa125b81950d20e0c6aca7520df978279bb56579a93f81e4ded78aca4bf82576a0520d1b642e58c564e2dcbdd83287c6c5386c88db2f939844b1035811bc85448856997a23f8c3a7b76010235471d40a3e90a7e275e04d4a431698f226fe342a615f0028482ab827b824e81604d140dccf509d09809b2651a293001c058cb32153a8b038278042a08ce120e7e9069ee5006609b0966d0418b083d2190d0d9be286ec48f340cddd1dac433b720734c082921ced70d1c08c4b0dc89a1d12c0101f58f258728d8c7260663660726e1290e3d1a2d2d9154c44399595da0308dae2e4baa1e22219f85147214a5b9db0dc72e8b802448747c15c5900cdd49102894ae2121ab51c14e4f0c325c65b029ab0e48002567667c50428396ae420112148998d0b8ce0f81409769003cc0b8e3a388cd89da93241a038d49e9c39d561101b8e1b9638eda1d5743874c3cd980a0c7552dadcb8bb51e6e7c6050b7c776763ab0d4883220502a3a2b0318691259788571e1bf61dda542753c0c64b67a3819a1c3c950b15a748ccebd41f3850e2b4acc210aa0ba74a717221dcc4860988c499352ae0a2e7869db01635148861c2086485550d2a114c7c59d4335423878b16878eac61d528416354d1909c222b001a796828710bf5409083181a332495d210e705271a709ae00e406b53c20aa0207041e060c061e1912027a818e26d12054618529cf8ed4c2a394e6d74b0bde1601b26880b52e14dcc0d1437a47c9bb7084fc6f0e95ae372632446827f071208b72f6eb49bea210a02e528416e7d06211f33ac60e9504345316846f02e021f201ac419287eb49dd22a20550333b8ad4f9b13601b0d2c25249d5031a46dc4af8ea5247cb4b07962a3e3e1d0199f160d6c45d8d2d8d62cadb1a9808672e5adb06657e2713449508b35b22783d660fa22af59507ba42646ad5673d918481080aa536a0c6e7ac9eca9a42502612c53e4e2212d4b5a9ca642862a190964c9989246068e31195c0bc41015034f8c2431661410032d138e0647071a10b4176869670f1ccfccf8b37bd3598b326710602c82e10586f0128cf405ab17835e0cb0e105f08557a79fa95f9f5f13de0f6efd9154cc3a99cd31236226c3ac2c82b235657565636515c81c9189212392b5643c30401211a28fe51192184bd1588984482a1e8098487171c305570f4054efbd4b71907bd57f08b4fb75d7f1f6c0db0b63204e97f3f0e33cde830b0f2ee07759df3fcf7d51c59de3c5eec33205bfcbe3d08cd09a5f9b6b1a6cae69f2cb47c005c108990808d2bfdcbe67699627d897ef9fd3313d2cdefd3ad258ffa227dafd9a80dec92b98f2d8df5e180feabd07c9fbcffdbca67d570c0892b5ff43db868ffebebd5703e0ee53aea8370e2b6f84b92faa38e6678982d9734d830dca71a31b29cc7d911c0ec7c2c21aac58d31dd47150c72ccdf775dff665dff555dff445dff335dfd775ddd665ddd555ddd445ddd335ddb775dbb665dbb555dbb445dbb335db9775d99665d99555d99445d99335d97775d77665d77555d77445d77335d75775d55665d55555d55445d55335d53775d33665d33555d33445d33335d31775d11665d11555d11445d11335d1f774cff664cff554cff444cff334cfd774cdd664cdd554cdd444cdd3344d0e7226ac7d2a03e27617c15907c91ce965015a71d7e0121bc18898b2a1d6268c24c28b0247f60872c0e46c81b73e3fe244a2a0830c06d873d8800881425d4a80d78f5419589cd9218028064e861252e8b81ba1a2829e992493d80d2eb59e4624de04b7a00ceab0894598553ac08254304103b5794a042e32d859b526a3ed6105c7b164dc2c14e9bd0156416a0b63f53ddca53a923f2a60de5202978a43054b8414a6fa2c828382a28596cbe6a523bf6354436eee821a0979e49e2a48135c9a124ce3c3e4768f0803d3f1e0954383bbe9eac291079ddad6440de2b4f018605681db9c5822370fbe2300968d0f2ea168d0d8273480e09553985aed10e541118b222ee8a304ad7aa8508d0c19dad2e0c29c9bf10802f50bb801450d0b313f7c874a25f134e8cba84e1144d0026ed51aa10f3f44b06093a71fd630b8b2204f8929d73028532100a6745dd2c39bbbe00a1f1028b0c266d4461cc0c346688b92584dab184c40a0f080a981942943d0a47ae400826f666103dca50f8a6e075ae109b26900a7139747586ad862b8c8118116af4914033f4c821c414c92a1a60fc093c28042872f5c2c5c89b201130b26ddb8a50c970811a40179a40652d68755af165406d47903616b0c16ac505921ac0cd2e10525ed460732a8865c9e3888e060f7e0cd8816122a45d0a68028104c2a75c8aa42d7670bcb8a2db5486da9188c34f910d1c6669e322a150a0d5ea5424020e2118a0e166ad8c14d0562e2cbd39549c8104a701926ac090408853b8c74015927cb9c56d68bd0842e119c2a5106985b5f474f45b6c319b2171c9650a096a903201f3ad668da9321c9025e7c3cd841a60e8c44573484f254a84747018e05ae0c3aaa1e04a0e68e4fa806b6cc281d4921c06f5494e29f24402b4d24b41868e23569c140140a028488f1a895a7b55e224f6b1896489024b480d3c0514b130a5b9a7e2350ddd861c2a8c248a8ae5368b0b49234f0f0054348121450847cde50dd41e36b5920000c7f4ba305a905832affe6e18993a0dba64600d420b5ab83149e080d125610018b7b6288d40be80d46992d693e3017cc4ed8d88e72781ac3100990161f544113ec7ca4394991e8c2900c10c04a0d53beaca832a8c58a1a01881dea39d883009685341568c0981798b5fac50a0cc8593e58ca1a92a745060893454c5a046c10706cf0407648070557649bdaac8dd9740fcfb080acc5183be68477e2ee0f77ba6a8001310093386acc32790e3e1f2af013892bdd9026cc0bae549d2968ffcda02d1924008435c1a011bd3faa5c84d5e90306482f0f2f049a0b7593971c5a5041999bfbda44a50b87302d803e0931c00d704c924f007cca8564c119b8ec414d94e8c0e6a5c61100a6c82218c0815970a4b822c701048862601191301c12d53d51c1e506210d5d777dce482a602bcb811462a004c90006022582ba12b4332d117e28f1f0e1f114b08a4c8f028a4617243acc65023568adb4241f89a2652281742dc35b081b60c49e706aa3c5ecdc58293d7a6442daa4b172f4862ff95f630a0410658bc12a4b190a894a92a44cdd868df0df6448c46acd2e421f1e0ccc2811b78318c244cfcca7508538e789746606161c51983c6d8d6944a9cd80098150945943c2b6a9111b2db64943703e2b18c853e766808b9854c357010efaa7557c418502a61249498383e50146914e0c64f112a4030b3c990ec8b076446bd10234721f1ce40ce6152451eacab03e638f49140cca3a5286c3c742dad1898a87501f08883393c4cb22af395c02c86a8c68b07169cdd1adc1900b4b1200d1a213099eaf121d12827245bfcc4bbf6105c7e9ea43017b1adc7044c4843965dcb40ace0cadc192a928471da2b54da8a82891cbecc061ad098003014e28a30478c60b1d2e03d48188f1c35305a71a31452d154e2e303b7b36d4849a5831c5a448a93663701c890bc40a8b0f8430651430dae21537c7128fcd971304ab7bcb97516e5424f1694277a9c48ace06567f34741040d2194badc28c90b1f57764a12a043e1e59fa34478b9a1c165a203285a0836715951b741968fcd19ae00b14012b385451718e65a09106021582b8b812661764a129e1a74ff2c1c10194098b0d08458444e0f616d50aa725461845005149859cba0e5e26b400a979fbb2e5810742d24851904006d293191726649a34a0793154fc0364d0dba2a128c89b28c45d58265b00611a830e80f41019a443081613098849d3c2d93090810b0188881a0cb111c1608e04357f449de905f9f5e0c262d1e4005a2e0c0d611f255b7084390f8e58c1704412211e8931758296873014745ceaee449720a89c54af303d4b5640e90992424a85395fe4944c19b1e6a1c1882015784a3260306175c104222b9a16974d582c2832c41e12b31012d35184f1c570a374c19c9612a2e2dad41e521a6a1ed48448c1ee2863b64a5842532004a84b1a46c0f9e3e40f85396e90cc81a028d3134e3e3951d6150bd8093ce922f725d20c16783ec069c853e5922608bf41570e4d295201200d69d6102263f3f4360063e728d2d5151a6b448db02d38092b0ce20c8075766506078207c0945476dab757c40c3a0e6c01a364832a818b40aa147800ec80330af8b0a46911d6143c05b8821800322ac71d1e83e6243182902307284a0523dec8570e082c845a016a0320212c8516ebd6024d2e71a05082d0932c9ea11db68ce207a49aed853da39610820704ab863c5003ecf346c8230e46d0d070a031e444e9f20c4174a315968fab464ab2ecb298eaaaa1424b8f0c872e0cbaaa5b24a2841f256644a575c9019515c3812da3da3878ba72930820010f0a1b18ec0c40fc58c80aa582b564200c1a51a9828d496601451199c8b31b0f6e07121daa14a5948362ad03920e8c7cd049c960a605911e0850c0442c03ed866c508d0a3d24ac3a8e5629c0a03db8274230668ef02e59fad921129aa26c91942c200a1365e7021373a44aeda31819367178f408c601464012115a44bed8ace8d9a9c486cd9a1b271028caa4e690a82684b6fcccf96813e30d04e71a0bb31f5b7517b4e69258b0a7011c32709059c5e08a9b0420f944788159999db1383bb28a8b1d1f06953cfc42edaa300b602e18a908f2c9f220d5f214e1ab9095477173186e6ca1951a50e063c2282e821d161bb7bb8d1b291dba50f97021c4a8335c9ddab4d50112438814d888861e07e0f80482891333aacc1559ee39abcf5414030088c1488c08b03e2ada744d41f5014f904c0ecc92283a2d21eaa065410e1f0d1660e9c4a34beb801f232ddaa8e921f7b1604aa0f2bc51f5e34a65c5c504079c102078b4c2042c2225c53a8200309150c859b581c9213a072c5081c4944d6be2449007d02a2c468e5249a1c08213fea9890e3904b072081108e01072e7f14f6dd0588103c04918870e5feb54b5498a28271394d519696441160c243d53823ee1261a70c26547a21ea1109018adc1e1599e7ad0503340214c9bd0706863845426a58c841f1f8db2087544e0c9da83aa125b619d3337e6e31181695644107063d6538946280a5bd6789c65f1b1a4c32f839b19c78e946d400f50608e167cc9d096e5a5fe04ca01054a8e126a25aca9f7b5a2f2127a3160cc1820201ed9600bd1a1520d1b642e56655af4e5eb82277d8460c910e7eec596b913099a2171a68d08c5ea491980ce80247ed809503626f83cca41b635c4ed9749cc02089ccdc8ea81924ad1450b45d376e254e63f3843d6e7549426317aa7de80a148246d8b44080bd841214c040f2442b4cad419c939f2731426d616175a72326941d2d3c8ad9d00c19522d342e49343e243515f1224813c89ecbcaed64cf0308811aa382a850b88aa648c92b44260a721acec4b8a0e47f113304739b41280a3ca3768dd1340903b36314f7c96ec1445097ec09b94862c28754097356c8af8c8d970a5e14fa312f6057f4ec508855b98bdd85c61ad75486e60e1c9350045c7043b236acc81201117d635aa0b1cea852a357dd6380a1bd6d8944b4ec0f140ea4b492295a3c402ab4c8d275fdc4c69c871c093352942d24c100dc4fd0cd5f924aa4a9d5f8c21e671d3864994e8240045f5310279846975c30211591b32850a8b73a2cb6502b5a9d50f156921a08ce120e7a947012a1cc9a86028958c361c8a468e98f4e088800f04628a63c024c46509b0966d0418b0d52ad35a1f234e8894449cd1d0b0294e08152d35a6b9b6cc52ab0e0fd4dcddc13274a60da936b72a5ce664c9e08006585092231108e4c08d641a50b5e93530e35203b2262d0b9a178a2dbf2aa33a80213eb0e4b132989064eca5b26714c94024ce9db3953fe0c9520216068032a6f6663660726e005d0ac589cba3342d3aaaad1695ceae601a7ed1e4a2025268fc16ae0cacd41e40d05643d30c4457a24cb065e948cf5071910cfccece580fb33bee6c0ebb4569ab13961b8e3ec239616d4fce30a9a135e42ccf98a41f88c82916e0623e11b17c28982b0ba0a978a4e68290171b004e8c1e90a8242ea1497be266810b68847c2903a581810e4e74c8162c9e40a2708755a644a37c5c62bc25a0094b3c268b8515439e2af8f900567667c584278bbc2401c34309021f893438e16245c58a311732b57183e2708003c08a10a4ccc60546ee3655590f4eb5f1f03f44821de400eb72448e1f3b1448b8a9c262839687160897101eaaab60044e4fd098587667aa4c10e796548834119538224d807872e65487416c405340c658ea5143cba30d623e2590014c00432828f461ce89bb1f59589cf6d06a3a1c9a811134a0720b34e88110632a30d4496953cc5261d4933a64f20138a825caa4ba4799a8340187a3af23538c593a3a7902ebeae349536d806f0f6b2145080b7c7767632a9b319864b05d01e0cc8cc3a04881c0a82800a0d3c622003546c0b4598c2cb944bcf2b02950e1825679b6c4018ab8439bea640aa4d53fca9f4a5508561dfc88297de531e6c91504ea5410cc9425839a1c3c950325010b3b4381fca610593d31af537fe03c9980902a9b814d9f3860e8b00a43a82e9c28597ae04fda910a6c4aa56528849bd830c1104e6fb614858e44fd19d30b73ca4e16d7fcd607c88d09eefa6ca1b3c545cf0d3b612ddc100d00482b4a570580560c1346202bab243d4a238480425a81115f04135f16f50c697831828423468a055b3cb86871e8c89a6f4f8b2b441234e850a58ad621562d564817cc555b28908a3218c97c4543728a2c3101b018c062cb454f6e010f9bd630ba0b510848894c5f141cd27441100d6ea11e087208738127107baab4484240219fa4521ae2bcd8b48a09262c68ce764d031f0608e1c44e0f5cc518910f5e84141b261a1ee050ab32a5a304a2519f82ab28a28858686d4a580104c41385134812588042292720c8dc8809ad6987f7e6e7e5578d4f7875cf16f5de3d0df8cdaa775dd8a3b3fff0ccfe93e7e687c2e67a7af99ff05f513555d503786d7ef157d1f574dbd464cdb5f52b9b5f7ba2f03bbbe9fca2adabceed9a5f1ab3abaacef1fc4dd7f46fcc0597c65596e7093c5594a7e6a7b66b9ab6aaea533875d719e5a5f9fd1876e19475597736d3774dd1fc4cf94d637875577345d3d345cbd2059ee9d9aee1005e0dc03bf393e3d7cf6bfaa2ea3fbfe9cfb5f33cddf0ccfc5af7a3718ccab3ccceafebd9b26cf5f0cafc50173d5fd7fdefcc9e2c9bc6647e72fcd778fd311cbf1e4ed759d89ee9c9c2e08df9c13e66e5f3f4ea89baa83ccb769979eee189f9996ddac26eda9aed8fdfd4b77578617eac0cb32b6bbade6cd5d73451d34dc203f38351cfb26aecbeaf5fdf18f6bc2f3fd5b7ad2b9facfbbade95d718e779f9a1ac67637745ddf46dd3ffbaaf8b85d7e5b79af12b7bf96559d95ce3962dcb14e571f9a16c0ab7aec9b2ac7baa5f5d7deecdcab20b6fcbcf6d5b5696db9fce2e7bf20af8c9ae29b3ea9f4f9ffaf955df75c8d3f28bd3f545d1d66d7fdcaea6ccf2b2fc4c547dd7394d5f0f9fa7899ebf2c5fe0b98587e5679edffd2febe3f994d734655fe0894ae111f03bdb3376631fab3e45cf345d51f4ca0f76dfd74465f7cb672c7b7335adfcd6af7ef84d59dfb6e7d9aaebfb8537c0cf8ce7554e51f34de1b475bdc9abf2835f5896e759fef11afb76f5547edfc3f18baef2bcbea80bb7316fcaeffdef475934864f0fc3f1da0ac093f27b57d7c3299ccef2fa59f94c5173092fca2f565378554f7866d737455f14e509f093d5f68ddd6ffe178ed58fca280ae537ab687cb2663cb32ceacefe449ffc4c39f6a87ab626fbaaaddb9a4e7ee8d9c66bec4fd3cb300abb1e459bfc52197dd3949d59f894d1f6fc328a9f3b784c7ea8db9e6a9cbeb0fc4d399ecd253fd355dd574659945d5d9785794a7eadfc53f8fcb27755ffa62f9a9ae125f9bdfec368ebca2fdbba710cab6c78487eab0aaf6c2ca33e56dfd96d659777e4779aed6fe59fbaa7eaffb99e6278467effb3ab3cab673cc76eabb66eca2bf28be1d5bfa96caee8ccc228eb8547e4f7ce6bfa61d7fcabfb5793455bfd52b63d59b94de5777ed9f6ab60ae58fdcc379d3f9a9ae99aae6ebba6ab7eeeea61363ecfd49c7dabaa6a7ac14f5ed9ffbfe9538faa707b9e5bae2cf87d779dd1573e53d975d99f9eee0b3cd50a7eaa8ca272abaeaa2aa7f13bcbaa7ee9a9c6a81bcb66dafa3476592a57a97ef08caeb3c9b6e9abc2efec4d54bf346ddd13756596fd6f8bca28053fd3ff369de79fc6e96c9a667beae755d64d63d87ddf1876cdd474d77000f32b53bf1f7fd6bf697bc66bbafa9315b627ba96fac9ee6aceb3eae3793e7d9caa29a9df7cbe712c7fd97c4f566dbb1af58b53f44dd355765bf6fdafbbeab812f5fbade953156d4ff5fcf19ab269a89fcb7ef4fcb3ff73bc7aafbe2aa8df8c7e37fda6299febacb2333bc1cff5ac4fdb76fde9fa9a6d6b7efac1aacaba2c2cb7712bcb2bfb534f3f3695dfd5b3eb8bfe754e6157d8ae6da75f1cbfec9ac22e8aaaf3eaaea7043f59555d579ee3ef51d934dd97d32ff629daba722b7bf5b7f0dff433cd759e51b39d53337d5717d6f49b65f8855d977de339d36f75fddab62ccac63e5ed973667385e9b7b232fc5b15fd731cb75f362ffd5ad6bfff35e5f78c637486554bbf788557b37dd313fe2d9a72c9ad91ebdf46dc1ec65c706be402ba689fab087eace9cd793de5b4d2cf3c7faab6ac8acea9ba9e5e5e7345e9f75b733dcdb75dd7f63ce73315b667eade7911821f2aab2e3ab7b06fe1ef53d74ffab93f6de3f7447dfcceb13ccfeafbc0ef45d114655d595e5798357dfa4afabdac09a7a70bab6f8abe2f2aab6aa49f8f5dd99551736e4d34f6f05c9679a9bec033ff38ee5735cb95033f3f9f1e8e61544e7fabb62f5a96e6093cdd3157907eaa4767f6fd291bb72afb9ef10b3cdd30578f7e6c1aa7bf85d9dffad64c65394d1dfd5af49fea9cb627fae3165d55e0f9a60dfc4e143de1ef7ef4cfa789a66d59a656ae1afde018f59f55dff7943d2a7fb82c53463f5636657446d1378dcf59657f9a2efaa1b2abbe9e9dd9d73c6716fdaf01570cfcdcd83ce3f7655dd485cfd394f1b2344fe099bab952f463e13566bfcbc6eee9bff94db6b75dc301acaf12fd5a3736dd34fd1e465f7475d5057ee93cbb32aaa6aacb7a7545dfb24ccd13789a279ae60ad14f8561797ebf2bb76dfbb6672c6cb9dad2b8ca1265efbc9806af0efd54d66ccd794ecdbfc270eb57626ca32c55770d07b0eecad00f9dcff49de7f8c3b20cbbc29cb653dbf34dcf423ff9fca89ca2acfc617386db3f8c7f1df03d57f75cc3017c7145e837c32dcb7a15fd2decc6e89c0efab1e66afef6756339564f15f5aa2ae887b66edb9ee92aab710a3cd340bf559dd15935633485d3d75dff70e8b9e0d2b8ca12ad2bcbf3049e681d7a96b952e007c366fbdbb98d51544d638f0adbd3cedf047efe3465d64461934d51359eab81c4f8ce448b2bba8603787605e887cef3fbc6a89765146d61d544affefc3eea619455bf67d7f4754f3fbff3bf5ef6eeecdff8654db9cfef3d3ffb9e6afbc2f2f9591fb3956559bac09325c677ee952b3ebf3535e7ffa2a9f9baf2cc9a6a59b27565f9024fb60ee57285c00f75cf0fb3e8ffeebbe7f7ddd66c5fd4345f179d5bd3855b5b22577a7e683aff553e5f934d67f36c81a790ab3c3ffffeb47dd1f59c5bd4a37e7e9b7485e7c7aae7ebd1944567b56de1532e4bf5049e9daeeefce2b7fd3efd327ac6b2abc6719b1b17195719d718575b9a6abcb2f38353d874df186ed17885d3d6acf383618fbaab4751d5d3f9c129fad31fbfecf7f25fd359462bcbb27c81a779bee81a0ee0d59bab393ff4645fd5cb1e7ecd199571da3df1219d1b5b5cc9f9c52f8ab22eead9b57d4f739ecdf3cacb559cdf9a9e1e3de3347e4f1655bfdb9e8aae0ef8a168ecb2efc9b631dbaea6fcaa2b3e2c12e915ceaf6de55596e31365e1d87f6fbef9a97f4563bffe977dbd876558d89e40bb5fb3a730f76daa30f745f598a3e6b98603487665c02ff5f20a7f577dd3b47dfd1b0bdbd39eeb970b0e0657f1085796c0133d81a7dbe8cacdeff4eeaac233ec9ef3dbcaea5b96c0b23ccf351cc02b28576d7e2c0c7b5385d7f8cbfe9de7380d72c5e637b7ebeaa62cdaa6b1875ff9aff9fdf975bf2cff79764ff69f5ecd2f45df3546e7ff579765d7994df3fb272aa36cbab2683b9f2ecc0adbf3bd2a7285e637bfecbba6a78ba62d2ba7aa477d5c9df9adab6cbea8ba9affc768aaa6b899df97dd545ee31fcb1f765bf72df343e5797e4fbfc22beca2eac992f9c5de9cfdeb3feb5dd6c7b12c6ccff37835e6e75f9835d35985d3f3c3b09785ed99feb812f333555546e3d47dd557f5b03b0bdbd34cefaec2fc7ebaaae6ccbaefdac2adb9b6c2f63c51fb0accef6c65b565cf147561f7546356d89e5f7ede84bd89ca2c7aca70eb5d57d89e2b8a5f79f9a171fbdbf5f5ec4f55339e6dbbcbcfafb02ccfa6eb3d3baba93bbce2f24be5365553f85de5187ee31516b6e74bbcdaf2f31e664ff5cbb22cc7726cc67305fc7efb7ab485cd0fabf28a7a1367795c69f9995f56e71696d1384d61f76dff8ddbc2f6544ff5a4bbcaf27b5b73f6af2bff7546d9577eb1fc7efbfef79d51747567364d4d027eecec59384edbd66dd1f4cbf095dfdbceef7f7daac2f1dbbaee09e3caca2f964fb8455ff47ff34dbf390ff0f3aec9ca293cb3308bb6f17a56f99966aac6ec9ab2669b9e711b0bdb33bda2f27bd1b54d65754ed7f9fd2b1a0bdbd345e06aca6f355d14765d177dd1d7bb6fbbae77aea4fc5035f51f5e67b98de1734653617bff2f8c7d59599699ad7ae74506aaaea2fce0cfc6f2ec5d385e5defe554809fdcb6a98fdd533e55785edff30acaaf55637786dfd59565566ee7f5c9ef9be9fa9aa78c7e75fd71eacd13c795931fcbb2adebba323cc3a937d9153d2b4b2eb8b4b23cdb3b2f5e35f9a1f3f9caaa4fdbd77bd3afa6b03d87431fabf50bf4bc62f293d9f7bbf1bbbe72ecd70fcfe919d3c3b7b5b22c4b563d4ff6be5af2fb7f865dd774cdd7f4b13ba7c2f65c6b3f6cfbb2bde6c272bb8603985e29f9cd73eacd5796553fb7b2cca6c2f664b9e060709565fc65b834aeb22c81c0d3547295e4779ab19aa2f2fbd3765ed5af0adb33ff73e99910f7c21f9d2b243f739de319f65f9e5918465555d89eed5959c26e655c675c655c6f5c70695c649fbee14a22f0e71e3dd77000afc45c1df9b56c8c9e6bbaa69f6d5734f5c2f62ccbf8d71dbf0c21eecfcab8c8ccd4ca1296815c70695cc09a6ed9f3ce8b5785ae8cc4f685ab223f38f56d2bbfec77e5f5954fd4444df44cd770008557447ef27baa2b3cafebfca2703c9fc2f604dab22b37e4e76739f6ed39a7be75e10fa7c2f664cf59c8ef7fd98c5b7736ffea9eee9f93fffd892b6a07f9b96f2acfe77fcd583dfdd9c2c2f61cfa9fe340baa1115e4f2e381876d95c4dbfe897ed5afd407e671cfff65457364e4f177d5d617bd6d10167ff8740f5e482835143c6ec7f5a19576e542bcbfbd3dd9e387fb72fdb6b67e58aaee7c943f4e307aff3cac6ea8fd5565d5f5815b6a71107c6e9b9d6f6b0ac2c6b709571c9e0824be32acba227966559b2ef1a0ee055141fbff7c3abfb9efe4c636fbaad491f7f6c6a9ae92b9f266a7af4544ff78d68df2fcab22cff6db344639dd277bfd5b7ad9759987de1bb7f767f3b3b6d87dd0ff6727c9aec4fcfb56d7fbcaa2c5cf79b3d2cbfed9bb2f3673d6bf7ebf4fe6f77fe769eed9de3e96bfc996b0bff987ddd33f62cb0fec3f63c16ed78e5925723171c17bc1ab95ef4e73f785e7d0a9feafbc6ef97dff40cffb5fff4b1d9a2702cc72b7cce5ef8e2feb9f0ea573fa3aaabbaafabba5c7030b8ee64342eb834ae3f577bb7b2fc73b5bfcb122fda67bb860328f7f8cd6ccabeecd9caa78baeb3bc02dff3cef1b5f843531435e5196565b675df175ddfd6fe99eac9cea91bc7ee0a7b3486cf3bc7d3fa37aff399be296aaaadebc26b2a6ccffcee03e78cf09781ecc9050783ebf642146f6f2f8cd537e22f65e1179e573456d5394ed533c7d5351cc0dff0f7cab06c7e597efd6fe1373587b60d9fd1fdda73fdfe54e554456156555923f0e3b72faaa7cae337a3ad9f5b18855b36f5b319bbe84934d62990fecdf0bc7af8a3f1f9a2b0fc9ec2f65c739c4e7b85bf17feb2ea59d53d63afaee7ffc3a211ce9cfba96fbba2f35f5b7475513676d373fec9ea7ab2f367ddf88455b5fdbf9fb63f6de7396ee17fb2694ccb3ff77c55588dbf397f7676bdf9f3a297c764df56962ebb86033817ffda1645e12fcbef9fe5f7fbe1a7e7f5ed3cf1fbbb39716601ffd6184665d9fc2efbc2ab9ba6c2f674e7dcf8e279ecde399ea6fee7a63e65bd6f67757661f98585ed0934d3b1e00f56e55666cff54d617955d155d89e40141d0e7facbec05fba9eff4cbf1bc32babceeecaaee100ead8f163e7754e5539354ff784d9f42dcbe1f0c726bb86037843eef75df69ff24fe7b9fdff6c4dd4858e9f29cfef97db3fa32ffb4f753575e448d1f2a7be2afa519365ff8fdf34763d8edff7feb76ceca6ea39bf72ac7e1f344ea32cedfbfba8edba2c89c6fac6cf45ffd9a2f129bb287cceab8b8fbd366cfc52d75c55754de33345d7d3345535eef755f55dbd7bae69fcbaa629bf70e38251e387ba71fc4ff8744ff8b3aaecdf15347e2a0b9ffe4555d4cfb1f95f54d89eb22fa625dcef3d531736d9366dd1f89b3f96ebaf92bdfdceffe5398ddf1895db765d51617ba22fdc7e26dbae2e8bb66dfbaea7cac6c2f61cfa7beefb227ade3f7ff1e6c4397567fcfcaac6b2daa2e9bca2edfba6c2f65459233027ce6ddbef8c65b535d7b6f5673cfb7715b627db4f6de3176d59d87dd378765157d89ef51f0259745dcdd67ea6cab2e9fc7dea4f786d6756d89e320dfcc5637eacc7caf2587b38365dc301fca90181396ebc7d69bf16f6a81caf668abe736ab2b3b03d7f5cdbef8f6bb6fa05ebe2453b95f1f3709aa6a80cb3f069aea80b9f668c9f19bf27dc9ea7ffdf455b154e51b45f1ba767eb9ef16caaeb5f3d1ad3b9cf71f43ccf7e1e5565b55dffecc2edccc6eaebc2f8cdab29bba7775b8f7e383665617bca76d88b5fdba6efe99aefcb9eeb1cb3ae6cff7eeae965173ee13935dff9c3e8699afd7cabceb1bbb2ab6aa2f1ea4f617ba668d9ef7b39fd661bbf2f6a7aefbee87992fddcd75c4fd754e53446d3d45c85edb97e8dfdcef7f5a97fbf2bb328ebd553d89e45fb96cdd7c5ef34d3af7a3945e7b89dbffa0adb735824d240f9df5e88bb671bc08f9d613fc366bcae6f0bab306ce728ba42ecf7c2a8ca7ad6ab5e955d157685ed99df36ec0168f1f3a7ebbe3f46bd0bc3e89f5921de9e2c8bdf6f5173565bd33ce734fee8296ccf5fdbc31858ffba0fb489f65d3cd1750d07306cc58f8565f4fb373567545ebf5785ede9fedb2ebb7d0d18554f760d07b00dfbc9ad8f5f73665f1975ff4ffd3cdbc09c1e16f137edfd995e9ed75685e5b73553185dd1dc5fcab6b3fff189be2eaacae69c9e2c7bc6bf2e456b7fb0ebb629cbb2ac0bbfa60b97e5cbaee100c2eccf8cd119f6a8eca6e809af2ebce6c4395d7f2e0baf5e45d559f672dac6a6b03d85b8b108bced19c89e69eaef3461d9bb6aacc6af89ae5e16b6e7ed85b17902d31faac62aec9aeba9bee779fa54d89e778e03df9fd3775c5996a5bbaee100caa1bfb7f5f19b9aef9ac6b00caf7ece087fdca7eb1a0ea0dbf99b4ff3ff194d3d6ca2f089c2c2f604a6673e34e2ff6651f3e7e79565e5f68dd9375de7d80bdb7335a1e237bb26eafed535d9198ed15315b627103dd99c38a76cf9fbb2fcaee82ac3e62bcbae7b0adbd3cebee780270af683d5787d4fd68d4fb73dd7cf0adb53aebd2d9f68cb0507836b8cab8c0b8e0b2e8d2bfe35ecbcdb7be3ebb7a6272bc326fcfed484e3b8956bdaae36da35d03dc352fc7caab272dbb2ed6a7a189ecf940b0e06179a1a6f7b2ecb9c38975c266ae41a168934175c1a17105d8b443a251aeb3427ce298ce227cfde653deabeaa69a6ac6c0adb3327cec0b99aa67bff6dc7ea1a0ea0e9f54bd53fc7aaf95b177d3faacac2f604b667bbaee100ba5d44db060ee51b089470e206e2c61b08dc327102ede19c3dec5082e42201400a34499c18d1457689f80a7102048a0fa607afad131df00e1cb636d0c51e1e0e6d141a64ffef2dadbb5f6738817fae43d6897fc0eaf2a145123d0f18ce0f174a5840e59fdf7d14154ee0177ea030e746208809314e13494840239c400020a0443b06fe1b083ce9d8152dc61f07b60f423870d1936ca0b2c03bdb2e07c1003857d342dc0b49de87ab134804de76eee3fcee87e83e2f3d5656ae3ed1d70d7aac0ae1a0d0054d1235d67911f4ceabd43b8f52ef3c087ae74dea9df740ef3c49bdf322f5ce73a0771ea4de798f7ae739ea9dd740efbc46bdf318f5ce5bd43b8f015ea2de790bf4ce43d43bef50ef3c43bc371e120a5d90a44f63570fc67c7a24759f9e02ba4fcf8d17224cf40daf4f0f59f7e5b9a0fbf2f8e9be3c62ba2fcf5df7e571ebbe3c69f7e5f9d07d784e751f1e3ddd87874b84b6ce22abfb003de8be3f1474df1f4fddf72753f7fd71a0fbfe20eabe3f7ebaefcf9ceefb53c64205df1a54dd67e877df1a50117aa5a3de2b15f55e69c841061168dd274245ef9d46ba4f8487ee1311c11701abfb22f0ba0f02a8ee830041f74150a0fb20d8e93e085bba0f0291ee83c0a3f7a034e83e0839ba0fc259f74150bb0f4257f741e0d07d10aebaef81a85ecf82870d157c50cade83d2d57b503cf4de2ff45819e93d5677efb1927b8f139cdee364a6f73845e93d4e407a8f535def719a7b8f935cef718aeb3d4e69147a0f12a0d07b8052f51ea04ebd078852ef017a042881de036440ef01ead27b80a0f41ea01fbd0768d87b8074f4de316061a05081422f4894de0b72a4fb1285e8bd203e7a2f88dd7b41e682d8b8f2213041f721e0a8fb1040a06f4080acfb10d8d07d7b22e8be3d78ba6f0f98eedb43a4fbf6cc75df1eb3fbf660e83e3d15a43841b65a367ae98bb443efa1ad7a0fe5d47be8a5de431f755f220abd8726d07ba89dde43ddf41e9aa5f7d025bd871e7b0fad7b0f957b0f8deb3d3446efa12c7a0f6d7b0f15d17ba885de431df4de5941ef9da1306c39a8e0a360c10116852b79ef5df1bd77e5adf7aec0e8bdb4edbd2b2c7aef4a89debbc2a1f7ae3ce83d2ba57acf0a04bd770917306cc0d23a7275a9f7ab017abf2aebbd977a63d02002031e0308bc07101e507830c237e2ecfd9cd1cf9e1a14bda786ec3d3559bda7a641efa529d57b692ef55e9a47bd970650efa5a1d37b69c0f45e9a23bd97e647efa531f65e9ab9de4b53a3f7d2a0f55e9a16bd9706acf7d288e8bd34bdde4bf3a0f7d05cd07b6848f51e9a4ebd1704d87b682061e865d010a1f70b167a0fc38408602a54c8da1a0ad07b4320bd372cf6ded0f7de70adf78667ef0d37f4de300218f7ea8d03072e7a6760f6decd96c01032a433418bc0c5172fbd735972d6939ce5fda6d5c87c4d932b50b20459ff61fd87aba5432d2830d5db7403cedeb54ce9526af4b600221083dfe51086e9086611cc8c4450571344da73a507bfb58891451f03ed7ebdc00350775faec77aef6e947ae9599e60f1af1b0e3d51cef0be7fb13d1c8ed573f4d07f1f349e1beda34f630361c77dff82643d61128afa88fb26d989efb129be495df6a5de7b044b7daea681431f42157e97454f746db436581bab0dd5466a03b571daf8f73f4353f674d5a3bfef31f9d7f4fce59a464de77f383492fddb2eab693bce69329906128dbf383bb663db4dae7f8eff384ff4b8518610f7c2fbc301a443a8345129d6919a041942c81802836a0600200163110030382c1c8ec7c331d16c4e8f0114800264a672a6521b0ad424c9614a31640c013000006040004064460d4020604c91dbf556b4b72c5800ede52ccb3cd7fe5f4fecb7b817f064571880e895de38ebd1c3aaf8fda00b8259e2fdcf546cdbd14b7269be90639433ad79fa32ec7ed15b5e4aac1f16d6893d0665c2e8922e21e329219760ec4cc72c86b14f899418c0cfd0e069a89ecc1bb087bc3a9a66a7037b1eef3ae29b4f0b21880154a6b34a234d9968590eaf5dd2a0a83cf93f5d500f605f95fb4584ebe45ab25a5c6db3a16802fc6cd2b14b2ed2a92885906f68063c137172fa448b154e5a9db2babe411cc01d5e809f2b013c354d7d38364f4c9abb29bdef73ccbff449b4b15969a13c75bfb31f1932f53e6ee74ad9abc03762ef80c59aa77ff2633a7599de53d23f7508c099880f36f37891ea9584fef6659c8d05c18ec9e7a3fc03a5a845b08ab49afeb37f52637c4b4854294339fe6ff15b4a58d13684bdab74dafa5d11b9e01ee23d5647215b881fc4a86307b5c0a2d0fbce0e924ed7458ab790a267ff7fe1a68d392084a51ddab31396ae6224287b8bec46e13e2365feac664b752bd5e70e854bbf70ba43431f00f573ea85bb9c43f21fc99bccf19e4eff3eb3830c4e9f5e18bd2fec502adf4a3ce8c5b9757f4a05c03d5b54c41c41aa45f2da8d65c2aab437c1cc5c0bcf48cf0a82016b8e4c31c3e6860a8abe5952c510def5b9ec3a81628189ec61e01c6802afc365ed7ad8ccacf684b79c0bbfff5509a5eb261ff14acf7d906e895971a3dc583d35524aefb4a648b51c456f295055bd9436dfada4a23745001c8aa3180b9c6e16582c5f966890ca1fd5cce849458f046831a1fe3d9a79507f6d9eaa6e20e9cf920673332a7e992a8862761db8d1c11cfdc5cb0c0b1030a94752ac681ae5f6a41b5c73d3b82d921e5f2a248d7586a37f3e38119424ee7d102237205cdbf1a08dbca83be26705c2a2f330ecc3d065c232a8186123b6ebbece41cf45f47866a6f5185cf235450304faa8136d0322c27f5adc47ad0cbdf7a32556dc37c00508808fbb64965e29712fc466592c882ecc4e3ff0d81c33d7685e68e96816aba6fd951a4948e155cb6f8188e5df0dd33db06a73f77bc4fea5844d8a931a6a831ea3a167747821614560f5a3cc2036be5e944f8a8968512f9661416a315131611b77d0d191287aedd829f31538693149dae3fc1a4ffd47dfb88612b68aa474449ff9b5f4a16046ffe3750c79094c24f4da31546ca2e1f9df3299ad8c131b499d9817d3fff03a1e0ba3029bd2c703c38a89f837a8ccfcfe72652b0cf3f50e2ff3a1689e5ee409cbf803d36d49c727f490369c1c1a310a4217df341bf9cbedc6107220265a1779fe94684308c3aa34316e05bdf79204864c7e42cbe5f41543e43f3f1242ae3159a1e4033738d2ecc5752d8137f6617e9b1d9dbd8fa320cf575fa2451bc6bacb2df35d959e7d5a25a7018e8541def3290a9b084494eb6297f336326f4d403d85c80cfc4198db84f6ed08bb37146852345ef49f27ee1cf47303bbc85af0fe1746f53111a87fafe2051601baada53c75251c5ffce6aec153a632dc940dad16c346faa4a8cdeb17f946b118f76d55ca9cc381d28f598bd0525e87632ba957e9133d34689f1bc83fb2489c03268bc57dea0d3528e22f97acf01359163423aaba0c45c1968d587b07f849a3e4128aac52f2df70dd7e65e67ee8d23ec3d4a585157d8a969a468c68ddc263c190442232062877926f66514071007cc85e72b5762b8138c31256fac0a1ba04b373716ee8898d73e0475d2a1aa416983db3d60d9167d58bf4c0f3649733b45753eaaaa14baf44bd98dd2bdda4add0982fc95f1108a37d6b4200925a43268bd92df0eebb7f9cd376d6b34487ebdce1e8aa5341aef689075f38f5a6144d06e9b1cb18da76eef9fbb83124d2a73b0e2986083dd929ec35963e46176d0a2dce113a4713b1f312bbc29c0edc276da5b1734c344eaaf13b0468029f8c9a32e19d4c5a5282342c8d8a0dc2089695a880391da5a47b77e097cc2f3b15c6df59f0f52d51c6d3ea0e6f35e692b5050069f30d3df6710b097d155b1af2608bddbcb016ae85252d234122a27920a3713ed04d414f07cae73eb6034d16a7d5145dc680bd98c95a19e181c16d68c1879ad2e28efe02d75b7f800ccfc72d00a805eb91a74d69e8df0ab58eb955db761a179c4d9bf92573f559fe88918c31c7fe753897f418b25dd801f2a2a7d667b200dca52a4c488ecb3bf48328651888d7ea349a8ef8f36e447bd9b2284668bc43ea7d4af7ad0b4c0364c5f04092ffe2cf5ad3d8d6ea8b9ebd61043b2faefd56a6e0fd7fe3b753202c8cc089de02a4f2d246fdb9e185fba5f2a4ead6684a4629f4beb6d9485cceb57dc1e513eabd1d909ea2fa1d69c8d7db482e906711ac61773021fc437d7488750b06a33f1dbef9cdb7ac714d35b5c943f6c30b7fd552f5fed022c2c63a74401fe29e54e74f204bf56a4c3478d7b24054c5a37b5a5b8717399680629918ca1de7b2f8a0735b5760f1d551574c2807ecf2d53153edcb83038bf16e9e851287921e3178975fc767a3827edee74b21d74db10b385483cec1e26582988ce908cc2d19aa9c6b82c420222afb731e4ee782e2269c762f64a3dd51c1c81a67ae0a3151a558469b89dd16f5e3160068d9fdcf5bb7652da1b6ce0e30e2d9731f1a6029c68954e2d2bccc1751867cedf1bf3ef9497e6064b0c91e1c5894d4b38fd54edaf370b3cfaa852647e2539ec397c6feaa1232835c67f4e930f28303d099800bff0d3eb8302763ff77fbf7221dcc52ad31a5da23ba3fc00c17047a99dad5645a4ba92c6eb569ae9779b3ef2e48d99847126a862fdc7498a62cdac3cc7d71e28d4cdba8bc5d8e483227bf523921d0fcbb639a6d5637ddce8b3157e55505eed5bb7a548a1dc35f50a2f6d86e25f4f8e21fa0bf4f0ff71b804687f7ead82ff754e3994be4a771cd5d4e848be4c517d33d54c7f5f28d69c23245efc0d784dc1263a633a867a2d9c0421b7dd74aa6ebf59856af626a7ee291487441d53c11fa0bb3df4b682738cca2ca1be4726dd6dcb56127450cae144c807d823367ffe603447fb81f97400743a3d55640c6b8a8ef8181f89d09706c2d7962562f3651abf24ebcaa2adebb0aaeba6288e90d6cbb7075e9007c53e4577167c8c45073447385aadc0ddce9917c40b7f398a4598c2c2d538af58de664150cc8557022cff54c8b90193186ecc3d3774662baeadb12395734ea6bae8920013784230ceddb3a0e1aaa8d4e5a7e1d5b32f4df31f2db659002932dc5d2cc2dfa115c2582a3559539abbb534fc83c57cbfa6d1be4408313a8e978e47a5c9db660f49de679696e7035627bc0b8aa8f9ac00f05cfa54f64cc0b079d68cdc9f69b86a93974bacd72587b34d2334e198521ef4ae4e3e881196ff12eda6f6da4c4a701f719e54593b11a9a4fcfa4020215d0dcab7007d451fe4c2714d17328adb36a30402248dfcf033dde53a61420ca9129128388c4fb2c1c7fce71ba1b23b0968f69f58a5aa38bb3a687a41c0839c679c5c3cdc118f99b310ada0bfb0e76179282f18c0a8d004706185c79571f80302f6918bcf4ede1800a670d47d4cb11c4bda14f5ea3cdf79cbe0838d4fa8d9b62ee0da331d08e627da53bbd1b4bb7a5243eee57a6892a3e1bcbad896bd302b4edd68b0b5b7b2f8458a88d479735e738ec19018698f88b2f00587806c7fb67d4f44bb195cc92cbb71406bfedf7c8c3a31774e0b7b06da3b37e772dc44631bf451367f7f33c746c887c578ca2e19a9b1612f58e0248f4eff8dff468c008e0fa021641fb0006aae0a65e839e295ba750820876b8cc2620326b91461838903f3981493c29453f62107fc344d06faa8ac0d67016552ed005a6382b07353bb3b278eb3e19623e896fe8553ce798b4287a3056cac6c0e5baaea7ee44ff31d5f1b4b78553e2a34dd16c02db0eb5a45d1113de7cf9d7bd1cbab02288431ef609a72b216e47a5caee47bf457a484bbb0451ff86d37c52e0bf34bd5abf124e457a088ed057f8314952ddf6af714286577dad1a5adbfc46dac52a3cd0a327b5f2ea90d449940a8a950ae333468d9cd8e79c36725495bec88825081cbee07a625aa25a1dee757edabb490060feeb1265e78045fcac4746f5763e653557717889f60be78f7ec9f23dfe2c3843d0f38e9721d90ec620d22f3d928377d5f740ddaaaf63fdb0a74626bb4b8242378bd845870d742c0f9c32222792aacff37c9248e2f1e092da1e11d905d02d21d5daf41dcca76399511827576f1d7592548a30993da2140057e7fc6b0e140c8011b386abaab6b53620fb45eb28bccd1a4878ada1b70fb18221719958e766177c34b59f2623cd133902e59ae9dbd130849678f12e2786295bf2b2d37968b5ba1f544aa362924867d462d43ac3bf13a85b6779a77d401bd4dfdabbee1fe8efd6b7e7f8ac364cd28b1027f00e5af94486182b562735673883c80fc9aed667e465c0a26e9bfa111fb608db433cc23f5bb90bd6d911134d62bf48c03d896eae6d3a4c02328d697c9f1260b11c32f6bd80be24fac5370a78bbd9f57d9b80c59ac5715f95dc977c5af3742321990380318be4c3df1c52547fe0a2d20067ed8c9f90cecfa77ca2e72b3f25d498a853891c9c5af4e8671017e5a75c511f113ea33b3c82d931922f7109e1e60e003ab87fa54f5c1e5672ce88d57cb394144314d95261dd04d46aa0e88dfc32e8bb15fa39db1dfde9cf7d867415429a989aec3e47dbd3f6d8508627ba61eebe811d725d3a85f489da85f42584ee066f8d1afa909fe0b5506b2afe3fc615600238870323a2685d3d5166bd09c4b87cd6390e910e6d1f314d1b4c4a90fa85c724f818ba48314be2a822c2d4bb5bfbfed6fe19c22f931e272b92f6b7947bed9500d09a40b7a264ead6572e7926b577c56798ae656b838656efae11dc68db0e59d072b8af6018385abf4187a26de5d9ad8e77b83e8f01f8a41df362b1431f74947a674b0f8ccdc6a0bac863330f3f311a95b38637ccc6091bde5db765eed7429127b36f67d2b4bdacf4e7bd721e77e37ae6a51c90ac89a5523e1e0b636b1ffde26abc21d133efe73a5f16c6277d38bee6f98916ef21f87fad2597aee4c432b9f89eccbf9c6b7347a8e6fb41fbdc01c829eb864e86bceaeaef04c95da6ff9a726eadb076fdd24467fd656fcdeba2cb706ba09943538dce13c7887513e6d3107f539ad547015e8e462ec4eecd6bcb7bad83cc17c261ed5b5371c11225ef82dcab9d8928d67511c930fe07e8c467b9248dfe28d0c248f4af9631c8a419f0ae9651df1dcc98e75e2eacbc3e379ced255bc47948bafcc32692d902bccfc4325adf3383f810f2ed03f30919867f6b606bd1858e0de3f8bcafe095aa3bfecb1b9d5b790fa34480c3cef18b73a0690d0dd9ffbe8e17cd24f26ea7432b3e41ccd96cefc92ff87fe8436833ae8fe3f6b7e439e64bb9f57670117ab3ca295bf02172e17c6eb41a4272d38f78040f559f1bea11fcd982e4574a33929f217d3aa8eda1e3a8cee920e9603deabaad6ec9f4a5a90fbe6ec05c2c1c0698d127d1a347aa5fed7ebef96901933ec4dfb1cfc379baaa5a7e97d51f6a33e0616f7a4eefd8568f3c9cf92edb9d4c8b24e5eec158642ceb91cb92e3b2526ecfcc1f8ce8f5639ddceb9a52a2da5b193d941777b5870565534f4f3c96873aee1ffff0dc86cefd859a7350431dba1a0b51237319a2e73a1f5466e69d2eaaf6d2701aa0f2f8f795c8737707a39978d1771f05e2b2ca4f439be6cf3f18ada7246c9a033da6d0b7dc172a2d94c1ff90807c49c24ffc97c58be072c87dbd71f4828332badc891f5e43d6ffffdcd8613923dc82e98adb1bda3e74dbd543ae24a8b33a5d2fb468df787ad7c0372566af76ce77b8a18cda361cba5a58c1fa792ca4660f29c9b5270e2136956f0ec1f9b672f589a06bc580ac09a5ecace20788c45763b3af1492f5d3f8a2d5d9599f0e94bd2e8eb48af211ac9401b59bcf12e914473e3eadeed7757a1a6bc5eb7413cb91bb4f1406023b6aab1fd5cfa8843e4dfa74028f506bd7133d962f0a313ab768877f414e7d585d9743f4198642d787fe40114b92a2e25957a8d14b8d8f0a5f005a945b997ff163962aa7e66071e6e3787e184a9eace9b4c775dd1e87117e033a8e8ba9e7dd47f9b7bf4e40da22ecff3f514a1bff8b930a94b80f8aaa47adb74574a7fd396b8572a97721bd3ab82edd37c2cda4225d6b3d84cc92f6fdafc6b1b1df1807089f3ffada80392f9bcc858af3cf22b1c9aada7bb6f2add61131c3a71c1df7aa47e3127207484dd99cbcbc98a08e08f30cd109fb26a41f8c8efc52acdba3224f68bf8ab7960b064d7bee73bef5c57dc7b9fe5b8e5d28d63694ba7a80d98c460a21f9d5438b8cf13f154310d9fa81a753bbc07f87413479c775464bc7da04d71df6dc18bf1ea9e63a52a23b15665fb7db86f7e34172d98f735b9b819bb96186ea68338b785f79ac19d0a55cbcaff41fad7f1307b70afd42ac736d7cd7e419be55347fad6806da380859fe56caa3fd42ed33244f6f1ba69ee37f3b8decd32e55b681dec7b8379a0e9eef8f74e0715dfecf194eab99e6f06e519484c5d8029039b5c4a192171159230b045594415a22daa230a8a174c6a2ef5b29278040212c6420ea78c81b2f37cb8d783e2c8e10bcf72e977f137d2ba47ac00f263b2c0fcea7bcbf7ce432221e655cdc3e16b074a54321f9d105c5722e9effacfcacae6d5a4697c531aeee59cf43604510c34b2cf8d0ce43fc54c14081963c73a35add148b4d91fb02a1ca077fca2b2fb453405d67ec3a039cdfb976e66e3df22c5c99cb9955ae5dc909610056f6865e2c50dbe4bfe7efa080292dfd2f2a3e2714efdc7782c2253759f3b91bdd4809421f72c1e5bc66209b92141ce7c7bf1724ed7f881db00ca6822d74e6e99fdc7a7b44f9a81503b238ec5f2f6321b33c0ab60b60d34c13b9a2da13c68ed218758fb3f21d67661d773faacea51cef787988c4cef6aef7cd89ac626b063639aba1a466a53b890f63345b0d197cd7ca36343d12ef314dacf3e02e1a236d1121add527a070b69c49fb5775e4205ebc274428bbd515faf1331de54a05245ff5f402be9c6aef3a050ea79d2b87d93e1a8850124d2606800b23049981afdeb2deb9b8d292038b49f05d1c6e33a053a289a8f0aea24a3730896658e8ad894ba76d42b9412d1def126b6944330b6a44396d5e76d2462b7469a3cbe8d656981e698720fbc8586b6ca054c3912f389b8f6c44625c2a5e60ae3a9ed5589ce312e595d7bad275bd80f4cc938e98581619e341d37ba95b6f5db5bb7a5acf358468ccbf12a0aba706def5e399c3985bba83738af3f314001c028cea1a9e9b30abf945041f466bfcae3311be08d2f707ce6441a16b600a0b202f66716c80fc005eb57f84a448a0f6ef6679e98db057f0d7dcbd1e5277fba562a62c990768d29de489588046658d37fd71d8df2bd81d2467aa030b209c5ba5a4cce0991e5cdc9bd2e3a9ae3e9eec7de8e0af674a0c2ab3da856bd133738d27c30534a6f4ffa42da9a61633e5b99e425095c6994fbbaf54adc29c1bfecc265275e7a5671a308ae7123d10c55585d5acdae1bf9eadcdb9074f374dfe1c6a1958ca3b98e50bc21459bf9a70b91a4329e03708ce20cc06cf3ef27bbedf7054cb94fb30bfab9285dac24f4fc5099a9c75847571c92f1d818a7f75edf25c15c40ee5fb7c064761954e9de443ffe5e7aefdf10d0cc2b3bde4fed1dbf8b9aab6ef314faf2470043b4a08a53bba91143eff046c7ece2cf27dbb5e434c847330b334abefee0f7e776377fdbddc9f9627837d1cd8efacb33ee83776c1d4606896df901c69fbe4a66fa1bb6f0ce7580f663c2e837e0bd57f7dbed2dbccf11e9878010aa18de483b903c1d78d52ed418c822f55867718e80924c8308568f685812c330d4dbde85c15efeaa5fcf84db10e5c041105ed611453a152c5f6718fca9fb058d0b77062d6d8b3a07baa67800c55b4a9761870b98831be0d3562a7789c59c839c0854171cb1ce1495d534024185005a4e556a388bcb51be5d0775489b7ecc889f15ae361e57aeaee502ddc6cb1ca024cd57bc23bd66af0698d1bedde42a4c4766535a2d8c8e86437ef53e394cb82d0c8418b5eb5b5ccdb4eff6ee751d0543ce4a9c725bdddacf7ecf971ef8715d1db106fee9d683ec6f22ef71172d4ed7f65eae0ce2b91152f4c9681452707553a64d1f38586398452cbb155902f99a1a1c5c527caafbb57c05c45c6172b1702fc732d645c279780e11d82d62e4ae47b55f4cd62d78492fab335abe0342e269d83e26a59d3b027f96a5c1d36048d22856234d2433f89829eae88257c48f9c1030e6bbcec2f893967dcdcbda74d25a738c8035dc3b55d7f32e1f09e551e2151eba527b01709a300e0579f7ba034f8a37a8e90404df5fc1b2da8a449d5a51b6f85b787c936cbb3751a1c4ce0049875cc836c274201daac2846575ad5207112e05524c44d773a81aee03d675b6879fc621c1f4bef32d5df902ae1f8e8624ffd80803ddc86d469bf02762fb3d6d457afb855026b8b0ca8cac91246cfec1deda7a939168f8ff14119b504317ea2865f04e081bd897d6a4d10297abe36aebcb855809d2cfae2101d7e7775f5cf274613f66865db5b9a132eb7de366c0fef85db48e4a2499e761bdaf43951da6ad1b577d38b8d133b5a621caab45760ea7007aa9af9a32c1a1f9c05e18f313c05b9c002622b1c696019fc01e49e4209a0b84e4218c94817a084370899c6240223a0af980c52a8442ad00d18964169c408e2112d8701e447460287a1e23ebb1420248717143ea3120410c623501613a4600aea23849d8c44214af102916f401a3062fa0ac8220d45a8321d606119974680285ea2b2982104a35837319844a41651841f80bc4692c122d055941c51680295d1050e8fa124a248711197c10c3230657508c14da60be192b69619e486b3cd126d3566a38a2d9bd750583353ad44d488fee7cec4cc2b00a112ad2c3d20e1332d91502471102e9b61680128af9728bc4948294e29ce40c96940327084e92b403e69a8c456420f78b80c4b4a0441dc84cbcc0c42704aeb25164e12d28b52886b10321a930c38323a8a934b1a5a2295d0cf741a89c848b510844f03ce384d9a4ce52e3b87a023394f208250568f802041898ce28ec41a1ada8f4ffc1ffd3343e0ce8b3958e42ee2d416b8944d0e4523425802a574e5c8f0096a22c88c8c9f9cc91e710aca95d02276f8398b24c670d49161e27ebbc45d5953936d9ce76871145d75006db9d39c0f570ac337574f07ad9df7b3c3f39b876c4b90a63dd942d642448e9e1ab4528b673a9a5ca22e3617ef3a729b6d4c83c902f329907949f8a0e244e9759632802c476ed6e6a12c1bb71709366930e381ac6ba811cef870c87338ef7f5a8d5f2a1a336038d77e2c90e77fe7a10bc0ff040c61a53be4ce9cc14a7ffd4deacf1759bdec73a07f5031f65d2d8f5fb49a6186fab17134fed2f99da23c3ef947b97566c55346fa1dcb39683baa04cbe5edf753480e2ac79df58823dd8ca3a9c79015ba398cd1177193cea8553b90fb815eca60ea49ffafd36e22688af5b7e5d1e8a295d0f69ddaeb27ee209339e509969acfc3aa59b6393e24264f373e236c6dde129d51b4a6db43f361f161c0ae8bf5410267c2331cf3cd74f0b9d0a34cb8baf418fa32c7808903eeecba8fe69d92f62ec5765f17171cfc5e23f2eabcde7b8b85b9cabe661171dda638810d1cf143de05b6bb0752ac5b206ef749c3c9a05bfe06d8bbc56c5c49f1a07d6f45fc4c2fd41d1578ec386fe4037a93749d4792332a900fa7d984a37b534c1b36c03f268cf1b3d8a82e234025828e1da55fa1eed05ee7f22cd76addd7cd628b961b57e15e5b21e0aa1f6369f5c03360db22fcb3203a5c8b8a76053a7f4f71c7115b27474e50c7846ae7d50b635f64774dcf5d15b460c1d86051d1864715c0a35b718c553f1af01ed8742e4711429082f0c56d0536ea62f6b5b1e53f8a7e600bd95c0c9d4b8cf46df742772129325255500060c83ff3f6e0f8657e0a716906b7396e1b7fe46222e9fd263a2e69368aa340ad897c3d963635da2b0c601fde5aaa6dcac4969d7f79e72c3b12a491e61a0ea0972c9b0d6e91d4090e0f32eba3b0842c4819940cced45433b0fc9b9cf07ad2323eea02b70acc28690cc46d3253f46b0d5d47501b5c5f7668560ae199f30b5204e89f268dfdc204284d75466de2a84e28a33c3114a88941a1e08bd472950245a60a40d229b2ff8815b27f9ac5f9956bfc8817cca25fbbb484610d152b52c8b8f22919aeffe48cf597a64dfdc206642d6d73d50d71c95b8102473256854356e91893d46d2f76d057ed3657f06094bc02a8792457f6b02f7cfccab758fa40066adfa4fa872080755740564209c42b830ce9e07821044c09479542205a58871892a786b8cb21013ddc5c106129e26e49c44413ab2b8a5caa88b62c52ac8b0b84113c65dcaa3482d5c6bac491983ae2238f1cf471ba40024721b725125f8d2c5824a957491c3249ad4e6e144a2028e538a9444b2b6b88255f6a89442e59d4cb05c1049362ae904ce09a59976892564d8c6493bb6eceb67082a18ce6514d808556e842bde1e496e345eb83fbff2af2071dcf72a37c7f8124305c5e276489789cf768608b37dd1dea9a66ec0fcf4ba55b26669bf2bdd958a84fbea0ff4a7b5f20db3e415a83b59f18eb41c7a26830cad58e52f6cca5d7a8c7b5881409f9f8c8a8b326c0ea40d3beef58ee441747ca88f9e313e11656ad185b5e668655840fbc4b330a10073f26779fc418d7f2ea1d676e343792dc3417250e170048f834d3a86b5e4be26ea1a77c350f7a7678e36b3bc2171cdc9685441d3d079122aa5ded316337d6ddf01239a436d20ce817f4fabf8d26dc006fe873f060fef6b61d1e3f9c87cfc6b23e2a2c2ae42e2e13024519b04a4d36e6b0e01a0f73e198063876e3edd4e66cb854594e0063fcf571ef9aa3b2d3e3c99a6259f7390cac612056a7f790e18a21d0adc365864da8a3a10f863e32f4f9f61897ade73234167e97b1bc69b8893b0e3bca156a04948f8020789d784bde623409d2d7401b0c7032a20481437a1da0dae4afaa378b9e724559ea0e5567f4fb30bc40db81aece2211be34e322d596556b6a4b8df098f51681ce277d2c7d9d6a8581babed73f2191ee1294b690b6fa7078034acc2bf00000cfc49e40c7bf64f3b81419e2f252e15b8777d983140a8eb4da079c1759d596e009602ff7ba0055d31d7fccbce52ab61dbc4440518b131351f0de147d6fe8157fc816e85ecfc9561218eef7f2c85fc844b618b403eac64878235847bbef67e8183d67ff8035535b2187ccb5d64819ba9c3cb44e83b4425b198f95b50b659ac4d8ecb4469fd8dfa77733d937974939692c50689e4f189d18e661486f4a73746cd1476c65169f48950b265baac243a62e121b1737b8bd121b10d579d94161130a5c7df24063ba8fae403777d22905523f0a210b991247a6283e096d999e40b3f2a936225a28aff1c7b8cea02e716ab4a895207b5806419fbbc0041637b773346265849dc913a430603a140ca492e98ed82e4808c221d84513af6124d914afaf4f469357ea9c68ad26fc93dd7930bafca012adde566b077605d77a70ce0b82fc644d9bab45be28d2d9a63a0a87d50706a860a9111e2dd1b213207d057c514e9bb678bd6aee15045d5aafadb6905b0bb9a910333be412a1225e7bea0429dea9676e4591abbe146359c058b80392a07e1df2ba95bf6f11b30f8b8010f77a469a9b407716452d4eb962fb75a833218841aa3b8c74da97abe7648a96c510be9f2125ecf6f4e765be3460372d9f9d813ed91e1ea813df194dda484d4dfbb05180bac4ab37250ea06b171568cb23fbcd74923a400242d07d119447f1d446e288df76bb967a6f04c7d837dc128c63acd1246e2a5e25eb6d7a516186b306b9afa5fb7c7fd46fc43e6eceaa7d6566dd20d0782836d23410803917e805b89da30024dbdcb0ab0104daaf9c1681c571cbfe6fecc30324011f60ce8851f8bfa43c5b03ff5a9aff5adeb0552b5fba6634bd50e0f07fe6818def32b644a3d20322037d907c61f3a61c316dea35ea62bd154e6800def208e7bb0143905481f702b3c5f8055d043728774745f90ed3970d525a38ddfd4551629ab6e2f38953bfb6ce40cb7ada7ba652884b8dde0af9c6fbf5bbdee2a2e6222e16785cbbbb2b99fef10dca89b5f47ba0ad1c3d47d609d7c6fb80d5df3cc503174276585cd0d47ef7cc777c69c4546d88bf9050fdce05aa36c2d4c57d0a5d8ca69bcf9e130be799ad336b971f7974a3a714d983ecf02e2017349488b1b2d35de684ae0088d8d359935327f19c48b94cb405330bb5f655eed47253cec1207f58a27aa047f6b5246114e0b855b3f0baebf11e1045741a32413bd53147e9780eb72a04c5dceb3711f2276f3674d52ee3fcfe238e32e6420fa87408fe1f956f2e7cbacfef979f7b5b98fadf8bd4dc1fdb24daf747d96ae4fc5d9aa4b4fbc83a1e708bae164edb2b1ed09ad387eb0b9839a7682390412c5a2439091fd43b317d78dfacb0e698b504ad32eac3f12b8867faa588f7b2841ee7c98bb0d075f557c530e8de2c9641aefb577b2a2c5f31188f595546c7cfe6f52e290aa701d78500a02326ef7901d78340fa054d73f86a970e7cc5d853fae54980217f66889ffb18888feb9abf6d8a8a19f302896fb83c4eec0386134ab47c0f716176b2f0e864ac8d3ee97d93af84d9130dbf4b281ddec1fbc0aaaaa345079f97198660437c8ba4d7ba80cea5aab178c1dcf00d725542961150e7a9612c16248e44429681ae1f41487f84c7afe7ab63211d3506ab9bd606da496125e93d7dc460d0a7b6e9a14e7489cfb31a14152dcd39fd520c6b62c8427fad3b1604af6ea8631a8185f3fdede488a3fbaed77badd27dc5d7334e43f104707eda89a79a53cd3467cf4e4c37db9bb4109ae6f38c17f9ea7ea11613e4ca531e3b4fbcf93b8f14720e014e84f29036dd9cf86e392312e67d1b489803263904ba76c31a1fac959c10cf2e98f3ff0ddd651bcec4898da3d43bf64d46f83623ff1dea8660ee6c2cba139cb7ed31a5ceae49a5dddaf94c7eb188687402db583bd2e685c92f9f763a713b8cbbc633190028bb3d1b2af9cd4ae42361dc7bd4290fcc6bd023065e6c2587e29e0a4bf7c46e7f1c356d9dbaf1241b76bad0017fd691ae88de05cff31d1335e3ed146476e8385d3b83f5d16e2bafd2799ee76eb9b1667af6f54b98fafd0a9d5cb144045b870f1298fc62c46e414da512aab13d7287100cc10bfd1104c1ad75f59b3f98950cce8c5935efaef8cbe3fac8e56d000c0321e7ee938402ea9174ec3cbdc42b3910edce9a3e8356fd6034feaa7c98bb70064b0807198e8ceedabcf764e08184ec75adc78ecf671de43369c7bf335823d7cec596c79ad0cbecd8c56ad53206bd8c45b5d78eecef3507b98b37d6dfff8f81ade54156ee8062eafca429bb4d23828e260001092e0ab496bbb1fc78a33861486c0243d6f077c7c6617ce9e9fbcfc81d7c7b27a279236388bdc13e8b030c6397d48e31f05e859cff8248f08ef8c17a1e69e8a0fe12cc4a3d3ccb980d545a4ad7354d0c8ccb9c853bfa73477745782411e54a478e080ae549a0959b681231945fc860cacaa7da0ed0b1770046c2bfa5cecd555ec894435458cd02738f2d32639f649ff5026464f67ffacb7584417106f762314bcaa472e07f2a5cbc2bb7b03dcf39d13ea7b5749ce1a632147805435d50ebbd2965391eef59f064b7ce8db5c32fe38a7ff4306504056af9fcb3f212e656f7b80e873f4c35bfa47fac40b8558577cad5ddb17623f9c963cd4857d3e93f28f7d5e1ef1aba25f872c284f62f917ed0d7d97d40cb3701b88fb63710f173551b31b66c9121c5558302b6567cacd354d691bce5854128f0a62c96d6cdcdf911f069adad74c154d5df663f19a9bcca16c1877cbec11e4a22986659ca60adf9055141873487a115c30eb5f30b931436cd9abced3376e4cb74a07324757299057b2298da6ddb313dfdec0ac64ac8ae3366ce2212250fb64139c5256f029bd6eba925b251fe577b3883d33378906bb4651965ae4ebbc145d86a378b73d5963ac901290da40b73e265fd7ad594ea48e74300052900345a6836040b45e55d40d603459b3d25f08d74c05de576075ade6271361dff757ea61b46259eed97bb1ae6a5c1e37693ce68ea999f67ce3b60e4dfa3ae1ec0820b9882d33014b341cfc5cbd10ec3e217055477f10b98d0dde2a2713e8c7eb04dfc7f851c3ec5d816f0ca53e18920eb1fc9281a18767b42d420ba438d77af5494374954d2be885572a9d7453abdff71ed218696114c47b544677e57cf50b6960461b27bb628ef8c6b37d08f61fc78748d0d8fa3a66012ee24fd403cc1eff0daacec41cf64fddbe95acf19738a75245f41f815a9415a813e6451a7486f9b3df0a150d52f9544db4537db82105d47c55f51226655004f1d4c7ecd01d0086cec9d85f1e00667c1e54b69537d91877b36a6b563a8bc33f13432f7bf780eda46fa6d854f4bb0fa543cf40d9dfb091e9663bfd78522a9c7ca58caa36fe298013a48cf033eed60d1188ec797957a6903e459737b52db46c0e594f6757ab5a01927769b2edf24cf8eb45b97545726a33b9814b9d01993ddfaffa6b01d10a02293f3d53a61cc05498c7ad087d5743e8cbc3b566cb3b4deca277eed7660b46b7b3481ec9eb6362d532c5f88a0ed05336441727f8e9e9917b7ec525df587930b43e9d4a08667be9754db97360c3d4d148e8fcf39c07ba7453285de4ae7e4731014b9db47c66ef46dcf91c3dfbd011bc67568d2661e415e2b96830a8be9f91f59b8cf0dd3fbae925af531e86eacba66793f2399a68016fea8f586ece0b5121792b5439ba42d09c489f1c06576f784dc487ab02d5d2b0c6221bb8557633641d9e27923f6f682a6b506e78a08f5bc8becc6381f8c52f7ec17dd0b36a9be768fb811fb600a9ce246d829b527eab774f3a857e5b87f28c9f67a0fe190100af22dc230f97b26c3923390f758ae5ef1ad05c987210cdc65b47e096847581fb2a9979977ca7666d407627157bf06cead4dd6fbc856d8ec54862ec9d2950751a5a1e479602c4d557496fe979ba52878e5842a02aed9ad1dbbf745d97fe1bd5ee1f72efa6d65f77a56c3ac6d42bbc01c4fd5504773124bd7b9e595f808d028b3c7c60ecd4b5a208d158474b6bcc8fbdc61b6bcdc0fc6230ad81f75b93c4bb5d30d73402abd212d9392c2a1b3ef733d9bbc2c1324fb3c98f72ace60a7f8f4622c1771de46e80d87342da6927060f593d4f7101b1895593a796efdf00ab1e41f02e76c0161e2cde8a60357149f179e6327ad5b0cfbf16ab5b78a44745909e8f7c7aff3c449e4183c844e75d345b8a16193ab847c645a61e415247ee41114aa88082124650a8987c8899884838b2a885c9e4d34a3bbb2bdc994704946b2db383a3f77afd48d6310a6b920315f719773ae310bbaf86d2ad87443d9f356a9b06ce3524f41760afc718f3294fcb163d8a0fa66291ff3565eada10776202e08060a1efa25b2e49e7faf3c676cd3490bc901f42939779fee0c6b369dfd1841e9236589f44c78a44a45fda4bf6864dcb2b0de8dbdd2ae00b765041d59bbe94682d6aea7687b94b98a968843c10f854b92fa9048656e88d1fee766c771a7f98d083908f3764baf9cc564fa834331d0fddf5c106e28d4c27651ee7699cd6741f55481e1d0b56ed27299c8e833819a615974171703abc57b392ad7ba36c0b0f42e90e6d3122c607f7d2e5e21f56189545b0c3c0ffeac3611e3a05fed982c87dd9533b2e5a0bd50b028e8148d23bddb950e3130b6a3a0eb93b7a68644d344244fba0d7acc7c83cbba7b7db963f835e00172c7be9f920a755cca73149ad2b3f04ef2a62964f4c32a84e40e8e262024274c7a3f305e0d5c8150682aeddf77b1b4189c9310410c4e1c9343ad19cc42f771a5c3baab59d2c500e1a7a22a87ccc270fd37dd00a2b2ab4347fe29f67701226d60eb009f7f012e93f6d656d612a60f4f6d767582a5784c8aa40ecc16a76458825e9816f1e967c42fc854282752d9976ad7fcc1e455c13b3381c9e03c650b4555836a373767dda2db4141d757bc9fdb66124272af38e2f8729998a6cd2fe095734f37c4b5aa2d09abd966cf6a70138cf7c664423f25efc5b479c986360e42561e87912940fd662700eb8e422c08d7f04ed8e6b89b31858142017d553ff66a0875a9b8476605fd9bf87f5e64d3d84c5a92abced709a6826a3820a97a6c9b1042bf4c36fbff3877b3e1331c70853b0943c15b07c13b58b54f65508aabf775cc3134c23238eac2820ee6488068d63d5bb2ce21dba4ff04f0458eebcd24176afa04a2977a3d9416141cfef94b05052666205972bd893e24852838f34421bbfc320e5501bd389fde4ca6611fc0de13bad0670093d4d171cd6dd89ca9a247f8ae15d41f3cc6489328d21c83cbc5b59ac916ca649d9754a7189d278f925802ef8099401018a2451160e09ba95f8c15273c7cd80ec5a99e3d3f1707a6f0ae6ec4c91ae7b49ad77c4c9c0035bf2d93be638196d883b941cfa910f5b255d26b21a306926ef19aed64169178ee285d053d84ebe5a64f23c9082174d05152e61e48ddb4b60f63a5adf41452dabbe252532b88a3e01318322c70e7e335dcc8f08b23b58461a09dbca87dd2e2afadfdc6eae4515f4348ef1967a0a20e4acfd113132fecfae006ef37a5a0913fc89e07c7b370c7cb1458537cabfec0ed217fbab1b03b210402f68adf9790a84202e3d789517687c7ff1c8839f3877b79d1f848962e1914abaf03a717e1bf12d0a3b20388070c41973f7a648b4fca8f7b7ebe70df51e57e06857f0c2da7ea8746c830b63ff92f5030e3db9c550c36d64e97318ff0b7aefc10d22435e9c0cc3a5f7bdb804e0d0195ce67864ef876b6b5678ee0bd96052a53f49b8d39e3cc69cb58968f0ab6e80a927758e4328002fd111c09ed261e3a766769aee66d483cf2e02e7795bd12a3b3a300099e1df09a1c78171980fe4c0e7734c6d3313e51ee6baf29390a1d730fe74d1553ad63c335f314bba190568346aa968151fefb5ba675940c170db83293926ecd182009ce01fb1013baff1c1ea4e5b723d7aefce71a117e4f2cbb9b9748b6df46d6ec100626f7591f75876bb0a3b158f0f14472eebabb6e638877a8098056a94f9f0cb9d227b51228be9bd01356130c89c6a5679820597e33abb472f522ab45e19d5e4f911a21a2b9301bbdf302d8788a7be347527ed2ba58705b8cb973031476c8261fd8219c981265fe2169020f45b2f5e06fd033cb0fbd27b0d93f978aef9982da6754add3c6e907d91e9569100e327daa7f5a92d9236856747dae1c35ba028239d0c782b72c07cf7799a57dd70d8551e4254346f81c4ed0210e058623489e304a9e13f3b880b2401664b2d4055c4cc3c74424dc6812fc6b81cc06408116ae59cdab9606c39c348ff970f0d671205d112584114078557cc03d3bd1acadd01cd7e74bd51823db71f5afc9d12753a85c0f8fd8dd9711a5cbf5309712b598cabbd5f789345127b280e973600c896cb17e94eb8dbb7a3a11242685bc5d321bbc2f65b052838eef9f69e238eee3035b054ca72c22a254938fb76195cb1d8756bcc4703019e6801cd47332e0c650dae2101962e0462ca57d71e3ea4a77ae05914da77101d7e383d591aae1a6314e33ff10e568171ee3b60bc6ee6d9a6a6b9306015c03fc37a20b5c65e91d8eac1ac3b3593f0a633f0f434a76f9344509402f0815dbc93e89836aa5c1a7c854e4503007533f5e7660b07a12803d718ba4da8974714f4fadaf0ffc89e60f1ea0174be4e4fd9521a09318a0fecd0b43e2ee8468aa04484e2092ca194acb18681b6dd84acc87f0c5e1fb2b0310713b290b0d373f393df2f024a1c7e0c185809f0f21723388ae15526c5daa7d8a6c471c83459c0f41ceec84677e09ea49a789c832bc2542c933a214215a121ac491e43e80d669f9fa8aca0d42f2cc2043f9fd1349e76678ce6f79eb3eaf961fb83ea307f7ddb032ca874baa40f4be73f6ec87b1712566df8b1cbfe5591628a7012c5096d383735412c42311a93482f956f1d74ee4458deb6e1d3dc3547dd472cbf3a075c1c82831ee84aaafe1dc246343d264b34dd236b71786ca2de103ad505aa5253c679fc9407c0b93c64b1cf2ce50d7c7f2c0d5e14f73e1bc03b14800fd18ece040bc2e03b6436b6377d8a528707882042aae2562c04ac7256bb8171b23b8fd15bedca50862c9d9574388cc99f0e4003ffe65d3852e1fc6a836528fde6b98743c34e58210f8667a88212d93ea66ce128b1eba292ddb22fb90e97c92049fe25574d2812f8392e60b37b6624d8e47da2dd0343a66a9e2a6bc2e4710f6fd457b0e15b8c0aa2f11d966bf95a61b8e58bd1d4501094f1a63253fd5ac588b4d51e0cbdb580cbd1381f1dc702ed677324f95a561f6031bc46e14c79767408012f93e1f17813816cb1bde16f1113a6d6b6de6acbc8b868aeccd98c8d86b60b357841fbf28cabcaf94b565ed5804fd5954d33c6ec6ca0885819f5ed47a31e8ae582c147492e7550306ea8836d0681ab6b3c32d624e9db32c4cfe6d01d246cf0217271bada4a7fb655c853528ff28ac56b414b8fa0508a43d97618ddd92a342f2ea69794cde3cf75973467804f5cb76d9e2ec2888a19e95b2ef0a09f64f2ca961fb88e0b3989c80dee10b443587e336ed6ec55bf175cf254db5eef3eaee5e5771bbf06e39fe4f6bded6ee365a621540d978c3b21ed6f71b5ef6df29ca3d33ca21ef108dd4ab835825367fdcee65edb17345c67950ee205ae44a1ba4b79c5b02a4654f437fb44c98626ba9b8ccad75bdf53cfbd0ced33060eae8fb79c2770b927564673c3a93643b38163d6b72d2d98167041b261f9bbbcf1bfca69ffc5c5ed26591b9d08e6e954e21299ddc7d11df47fafdea3c5a78a7677c4b9b046acb8d1bfc430d3560bba314d9a73aba9af562eed567c2ce75c5463f52a1add4bff28dbbd42857623f7bb7326997517004c13243bc0ee255084d2546914423f6d68fccd6201339983c3a56a0acf386bcf557ab594ad22e28eb56b08fd98a90a407a443d067775ef833aaf4cb7743dd91934bc8bd9a5d17cfd24587f51a0844304bbc98ee6cd5b5e858b0344bfd16ade640d9ebc1570f7f9602da052dfe997bbb9d99bc1ed51c2b636a2424ef415530562042483a06771d180a1110f7b8267589722ec4f5c0a2739f0364fc926239285a2da0f6bdc3b504114175e0c34e29673a84c05808addc3a4e48f8391d2969d50acf0a17c829a353e8276dc70148a24063f35fd0483ae3e13649007ec8c29535c675021c6f8ce9e091e0f12f7ed311d82accd0b7279e49cc6878d1184920f781a499806572d443eb9475397e4362932811b20a1b1b819b80d4ef98603bba038e2a2677616f8087d1832125e0ec38304c04277efcdac7a837c40f3284a83a2ddd956327e9f4e46a8284ab6d3b75f47c66f6a5a82acf40d15f6f9d046c28f4a8c1c408f6c6c7664426491facdc371bd4a66f008967efbd8262c43541d50088dc2943e0a99ceaa94b86be84f6ac4f61605c5e6ef8d4203f316035376ce9aed32b921fab07b3cd97ba1e0054f4cfee742d14463f1c7b000577891c42e3d0d159a71ca82ebb0b6579d769d72e0ec4a9017881b60c4e1c25f2c873cdf9df4f2c689db1687eb05b8dca1779c69bf0786f2abd441a78716209c7c9b8438b2d23ff3b4aecc7acef3eb3f6d6348e257098574f174e54c47f48677a4b53f7cbb65b58fcd4f2de739807da7e0d2049ccf7203f13a7869d490a4f70c32a9b13cba0b1fed31227b0ba49afcff23f1f468d26b5f6a8dfc61d679cc7a12e831382cf23519911d13a5b90f27c08d9d9b2741dad88417fae4ca694dfce0e7cfe0980e8cb980249c71d880c830704b9bea742c45344aaf6764124508b113db8115d6166c527425ad214e3ef4836638966b58742ad85750bc17ade634b6057054d88099c0106405bbc0dbabfa36039de592621e1167b9b895ddd32e7a1420d55c88aa7c656003023ea3d485396464d4caa7eab6358a833a44645d3e1a01b4eb6c2b1083dccb7a46e52f05ad9df8eb944e09ad636755cc3301b1d4226889dad1a4db85a47d39ee9c73471238238090c3afa8e2b47b54c6de0dcc76a9903ffa12c060b3b1f818b6c3c4f12bb6411a65685a9b0e889e1104dc1364a860450ae8612d73b712f4796f6f08c20cbb3071b7c38064753c66a07360f1c7f2ecab67387dc9f9a40fa9aeb904c2d464717860cd0b19b5cdc0c234104144f43709f022c19aafbb3e1c53abc083492412131c59869a92f68cb842948d9688e492b823a5ec453deabf93a8cf63cbbdec4c3d08f1e1770785271a8dfd0bd3a5aa6d04eded1956c8123913d147f8812105939ab4dd2b80141f80cc0422c759a994c3db115398ff803a270662588f6a23c5718bde38e9f0bc1767d5a279e101fb35c70ab30d8e84b504355ce1bc89af23fd369c23d6066d9b2234edf2c759ad69a31cd8204104cbd1b3e848bf5129af3e6f0116adfac93b188a8c97f41057c03035d555deebcb3ec29c4631d3e6be89f316a1f6f323f530c55784762fedf40ac3be4ff6dac9a7182dbbb66c73e74f893c25528db3d520227f21c147c10df9a2824ea3808f76ba25e36ca06a789b912db33cdcb59cff3bbbfaf9192b7d7748ce7ce6fe61cf2cdea914e1e38ee6a7070ae151d3aa94d86345012b173d172d51c41a82e7eb49ea7fb501f72f277dff1956be74d0b090d323d38240575d8ce9723c4cc9dcf11b0ce983221b86f4c7982d9e08b866cffbeeca58b16e472fdfff4daa0cb82973622daf1a5ed71fc3f3b90b66fa1c7caf2eb31c5cbbb7bb35ae2b8ba179ed05c9425505a8d6ea169bed39e91d75ff04174a2611f62a372a345d84f94d5d052c64ac19adefb9c0928355e8909b432e8fd84fd0e239a90454ebcf5b6cc8912abfa9543592d516f3b76f1ce67e335e63cae5b5e29ba731beb618de38c5d3fd6717c9646515e9d5031d05d98c1b5f55e899accc56e4080de313327a3c6e8035f0780ef37b98bf7a4cd5257d86eafcca00638e43983b679adc653f8c7e746ed9ff59afa37f64b2fd2f9af8004f209cb400a94aa92e6e9df9fd18d03c05e8086f48fd306f94d76ec3ae8e08f5befbae28fce42b6faf48ee786d6a404475fa53b362a3350b893788d44c4e3351a36cf6f40f88954793240b03bdfd2078cca5cf341c1a8359771448fadf4fcef5e04157dc528f281f5fca30e58e1701f2b280f7d9c1d1607e3a62a3ed462960fe47802ad8a8fce04e719fe0567c298163280c059472efa33c04acb53ec506628f144dc3a8fbe72adf0d4b214aab14b5b3274167472a95b494242af20070d09c9c0b8b08efca65c65f37dc6d276322d3c2ebb5c8fb7b5ced251a4513b4ab889bd72c36309e46e4e3a60e2754ee8c525db0cb0c7fdc1038a677934675d164ae66511a4834904f595ec39ecab04ca5fa02c36f59216b715da10cbcc3aaaca09ad25022faad87abfea3d885ea68909252a5fe8fe39aae1fc394905fb91302af950c2a228544d664e8a173417d5c484bc402f69b9e3a3abf3fa74bb1b7b0eb6c8ab0b90d8065236d971429ef382e68d6194d71d4dd8345ce3a22e5dc14ebbf7d402c59c6bdff5d7d94861a814b2ee7d9f6b19b54fae2bb792a3c52abf736ce4cdd266da0f1807d4aa0b50da34001373c03a8d9673bf3e10bd8c630e97730a38de32b4cf15766757044d7642168419dc12dd4285d62b1ea4f00bd133b16d48fb5d81e10ab8b1109e0b2574430b4be463ca66b4ac08471b877122ecbf661de113a95c6982af38edf8bb5ff7635da62712a718c700b7a382c3c63ef2cc0ea10ae2fb8a4761323186f24669296332ec1597d97387293ecaf0fa573813766d57f5f2675d9e32527771dac4ba1a891412266386ae32cd697aee4659076d00821234e193e688a6a973627f1a4e3fa90a5181c434152aa9fa60156d5e053bcf6316c2a688cc9f42c2a155dc12a5668504bbf863dbd3d9002c2a94a5aadf139489531203c46302bcd68a72f2b66aa56326a39c863402df8d46c0201220595950d1f96e101a153d71d89f72b5ce35a404e8444dcc3d0b4eee189670f44626c72e535f5c5229cb5f3223d4ad01a8df72c847a32c5e624615d6e24c4896e0baa0e5149cae14b8b0197bd9c0d53993062959d664a6d6c24126ea1b9d2c9c97da4d04e09119a6037dfc48279550321ab7c7d777f31c2e9326ed5aa2d2de2f144ad1b26521d89c56329202f623ffda1ee87ce8fc373a7e41a2bd9f02c9e232648abb229c99416c330e0f6ca10fa189f0e10a7eca663845608317b34421f4bbfb44524a68a9c9ad007d0b7c3bed115efa4d268834bdd6446721d60e5c9ebef44264ad4c57d7ef20b8751e90c8421b5a0bc3c2262e1324b71ada9903dcbf10f90590689262e4c0fa282f24673ba4333467a8bd176408f67b00a3c16696ddf69de72ce428b272fd60f086290d670812506d4353264d0e0a5340ad411862d2bac1a3980220cbcdf3390bafd861617b8f70c66eda6928148d843681df576c1116821a5cab3ed6767adf29b723415ba361f7cd4318a9bfea7161253c25fb3254bb88b372659f4d0b9179f48668ca495b99bad48fa4fbc176e1db55c03631d0dc6b17033f3db4b5ea758ab8eb4651e004911f22505679d2c8a1676f97e3b993d665548c01ab42dcf78ed0b93bc4fe74c387bd31fc0409ccc3739d3bc5cb15a34dabbb566c9d570e3d0d1c24ee3f56d743cc0439ac071dbffc491f4c5255834938750c41e28fd54c124ddc8f31bbcf0f0d9aeb13ef58babe918d597960041ac80ac03ab8e4649a01dcc3593093898c646183e4ba2f3af37387759dcbbdef94bd329fec4072e700359d57f4d4c6d7270a589cf9d5c26428d5ebc02550c1d9d82670b8024d8841057f3d85e4cd758c3552534d2f0b3d246121e014a7ef5aca39d760dae5a252564863e3017e6b285547371bfde928e7588a6d907552e31a047fe2753cbbf3215b50418602f595c2165f0573a0f45c8fa44947c2c3de031b58163cb9621e9513489d49fb880aa6b20b0bbafc4da88122e193c3d93b5f998c6504d63b5c347adcfe879b7adecfd20b5476834616bd1123a4c2c9023fd339844ead4844a147b0fd4678b02bb324548debfda963670f4d4b2ad4ecbad109d19d02dbe0439ca68521a8533361f5f4943496829b983b745d3975a39b55a107b8dba2ca2b96827c81daf0154b6f5bd97e65c45038e3b3ce77ecdd920e56614dcb683a5f90097959f73c861362562a4673cd8f852caf057006dfc6f9c3618d3c33d497acac2414d2242ad007743c7efa4b00dc3632f9a44fd1bdd96722ab61bf1bd5bb81b32c77053851e8cb5bc810622b6dc39d62e52904c2f6cf9dddaf45be556ec6eb4fe481993b382f6de470b521e408286079b353da4dc92a17b1b2ffbf30fc8740e257e7b2409a02265bb4524d8b1c56590e8da18b551533eb33d96e3cf535cd50bafefef0916741122da620b5161a5b4ccf03499fc22309449e4d0ee11b44a373f27d2874866aed6300b3f98d2a0f21cbc313f2288a95892df83691d24b6f304d25ab3ef8ea8f95cd67bdb02977446ba7a8ac06fb6337f9fd7dcf9d48432a47a2c26dee9471252e3aea1129b5dbdb1c89dec95e51f870d10a9724f6d0179f548ff04e6b15efb4c9a86524951c433852a852526d308eb7799002f94809409a80510c81746927651a46d4c5a664d56b642575c50bc9722d5648b2d63916eb60c0129372faf9c52153cdea6f899826ccd8195b99315aa71e3dce35ac87a7ee8ea2830f28c1e4f42f6ed9808b229eec441dbb91c770cc17f8dd9e672b49d573820a0dca7123bd112da282337590b82e149dd0968a4e15c5d13f4d09bd5125f2c86ac50bd59865183b0008fc497b4c4a0ebd4fbb517409f138ad85d8d818a9e849cb1a1998c6c735d692eebcd76ff060e05286fd3a1c1317bfa860cb296e9c34797706dad0b3d4b989846de1c322a53fc12baeb3ac2f41ef780247854779c0b3f187d02a767a718d8d64c3653a3fd063eab280a4d9c8dff263eb3704f3db30cad2a05f72b657f1d81c895031c0b894977cacc618942e25330c6d56736affc61815798a7eb98c18cb3f00db5da5df122cac899b973cc21d8a4f526d1b76698d40195c8ea2c2fb1f561ff5dbba09715b4e7cfd13adfaa82d0a7d5334c11d291b26811a4f21a823fd84191df959e7b1538eff36c2ecdfd81761a95be1873f6c6fcfcf01fcc9182f3ba07a9297ebe9d51d86fc970dfbed49eaeddcff81070ccf766a3fdf5c34b464b086523ac786410526273ef14f7d3827f23cd938676847a4eda93d8e1a52a8e5638b8c39eafb04592fcfecdd68183f1036e70d27525ab010a2dcfb7fad9df5e60fd962e2b5039a873eb33d85387e8202ef670232243dcb08895ae11bdabb7eb92ade29c2dac1ee5e132ba1546ad23981e0bafc34a9d74aac1fece1d018dc7f04a48bee769eb45660cad4fef33a21146bde4ff9b95965447f0b0a92e79a16370891c09cc99979607ebcb085995bab1301afb7a6729e16e3e1666bd861951ca238f882a0e14f5787ddb5cb978edb755df38bb133c451c354e0787d810c8c20fcd2130806bc3280cb3aadfae4456a6c105ad629670733173a26ec6dfa477a8cb74c8f5da56bcef21a3dbcc22765758f197868d45fde1c6d0e71f81b3068a14e0a3f6771fcda2d84c55951e96e90b160792c8068d2a161f406122991f067853dbe79cc2c5400b7ade3e36df029a92adec86fd49ddc23aba2846608c840f0d7ff96b307c88b5da0b7433d34f7adc06cee2c5e295277a0e3bb3fbbf6829bac3fdc73c9af9719df85f43424954ad3cd8ba7d93b24ed8c7dba58206701c80986ad8c1a91e8c07e755fe4860d90a10a2bbdd4a446f08283612c843f6963e87b4297068c7d758953772ee5dee5bcc32959de876a2dc1c855039dca3fc1705abf3c5914075b2a53be607bcebc27a5e0238d6c71a8cd32b288ff2893452846035d112792e4975211788917afa358526901cad92617be9dd6231aeda8a800287408fc664a5db7746c89674a798a7151c2a880eb4545c075764d1c8d307947ac2e50abe8ce633b2a6209a85163e3e676790fc9ca73a8cb8634f38619eae0a4a170b071870a526477efd67b02193f77408a0f63e62302d36ce6ea9dbe797bb2040eee719e0913ed9b2d2081bd787731b106e5a82e4ed37fba6b43abc978354a86869669a71f4152e0f09a1db1196afa4467d2fe59d185babf053ff7e6e031034246c2847afca4d6911e9248d5d29b23ae6d700a2bf74a3978b3961b9a7be71feecda769f85973afb84b502017531cc9cbc16b4a04ccaea061f0f3678faac2f6b32230cd5c8d312af733c1619c16a01f2af2034c76dff3edb9c4609c716918cd0e590460fe490c3e326ec521515ac91846769a691291c576da6c2e0f4aeadc06a48805488427c4c486008d3687aa48dc46be88a94e82b74633e3e1e63ca45f7baf89e62f4be4cbfe616e82bad0b93dd038f32454654d63b7be09e0d4cf0e4e634d31af37b8f718ce098a6eed60d1fdd106890ca2646328ec4096acbc99ac07421d72ba47621917b45e3b6585b06cd62d8405c976e845d36c1f0c2f59c2c1126cf7c5b4a55b613dbd467ddae939d67c76ad2b9fd9bef0d1f7a831e5b656829ccb5e8cac7e5632695079b0279b7c9d2637845d2cee961e80f0d40c4e41c362cd2c0e32451ccbeb8429b30c09d054309a885965456b5913bd2a204211f3f36fe7e27e82e29d982335e6abc268dc93399d92485a4387ebe9c4fbfdb4afd2006c4f855b37ffaecfd254e517cffff9363b811599ef833d6a204073d7c2aad424e7da781bc1c803964a0683d1ac71590cebf88438179b1943a0d4c2eb8531adf12537bf934a8ac624cde30fb8579c04a9ef522e90a206c4a7e87c00196cde6e2252d4fe826d3913176f8c0fc6a6f1344b7603489da5c3b01d99b5c49990e5066538c48013227d89a1cc7d681900ccce199eaf6bcb0d5720afcb15019999d85a07582692be54263cb49b4fd31a3126e4dcc2758ed385841d51dce90a04e4a298c14e0c981c2b9bbaaade121ea36247f9082aebb51562108f10ddee2fdbd65b8238ac9b97643cc92e69a7e19315a6cb9875cee36f973b34de0fc7b303c9beccc6e5fc3d00c0ac219bf1673e421c5b8de1affb060d28a72cae8e864aae7a9a808018e72ea09bc43faac09aacfe7738bf738241458976acf0c5ad4f3421fb9952f78363a27298cb653dbb54289f0bf391e565890c6816476d7dd088beb3a4b724f84151422b560089e72d33e284127ac09454c15a1fca5bfe4a1e10430423a4666956442dede97e931762cca45927ef079dbb61824895a30f22f904cfc4e83d68bd4133a720182010ecda087e07d60f726dcbaca43f703aa8c00b3d5c36052e8386b0b590bb3899807972a52e086c43943c24cc9d163e70816f51517fc93594df98511552611db4742273dace6fabbae40c51801d7ef45907f329ca6ed55eb43da08b3e4503ede23e20599527b0ccb79ebde181ad5a59aa3d0f77d6e4c9b2852322862418cb3d9a7ea549037e8b54ad46f93918f8784af604fbe57572159979eaf1be6c4168f3789099ee0937314bc0ec7a48a4b495ece16e75348447d2403ad3dc4f8583cc39e1f46966da8999d0f41cd0c731911beb14810f4224f9c1b949ca75f79981c01684b031a79e1af0cce080a3f93575e8b245d1f639d5476f167242844263485df04c4db1fa7ae6414a44085cf6aa9ad91a069804adbb04fe22daa973629dfe6dd0203f53a546ca8530a811cd0c3d77b50468f3ef38027452d52035c4187d9d96900fe09e2a115ba46de4d29ca927f5e67a332a728896aafcf0f3a9aa60316c0828978c919e64656b617f76f488abdf250beec58d90f9480c7f85d589577892666a456d16718b9433f9a713c98c11eca0f2746db383c1117871b67fa7b13942d38d05f7e0f0179b5124267435a8fa62689d2a67ffef886bd9004fd439a5861ab0f3a5b4bdc29ea3d6aa0e50c3f93f101cd06c0e2495b30c8d3d6e7708d8f5615b04e7a06cf98a58611a1c37e5ed4e86096ef6b7b2cd75514140d681d9ffebce9d61fca4e4c9f721e23211b6d271b0ee64db53942835da43d472e3ad066f400f7f5cdd7702f7089e3172cce192bbfd5fdda918d941f26dcb8f39b1e0e9da326e4b8afb4b6196ca1690a0592cedb6770a8d9239ab94d0d00b77ac074ac428ec7f1a5bed0f320333fc8340ac6b46952f694405d2c183a53f3d75c932e15a1506ab83718395a32d0ed088f3fe012dabfed987e48b77569416730b9195113dde652810bbc6c0046e7aa63448a681c949c338dc4c0dd616bf30d276cb7702c99d48482789282303238fec9fd5fd60ef2e25f69a2aa01291ffc0478541968e252b6034a16cd10a7d4bf1fc99cb20f2ffcf14ba2236f033a6f432908e562fc0c0c14548a438382196f5be2f864ab9a006d9d617696be47c0f87f9ef364a2748443aed37aa44e891643de5f755302078e0406c1d2127e037fc63dc35da4d4ad1ec5f40386ed93de5edd9b6e2369bb6935cf2c4e96ddcb7dc4df952a568f53d6e4245ac7e8ae37c7a8e03dc9fb0b0c0297a9757b7ef55a6649302e7bca8ebb280d1b6c991b59c2fac48bff5a01f27c350327a0d472d076839f1e7eecc5d9a9f5d7ec203bcea9cf229927dd2cbe8881eeced15c941fc0a7e8828f905f34ae04e354cc9950739f3a797ade1dc069f6e4917661dc54da9f2fcb4a9860359e74a995ac906fa1c34b04a9a4321048581857456c6002032bf7ae0e99c9ef07e32acc6852f5986dd5201d1ae680c22428a69003ec2615b3fc9d88bf296402540dc264d1ebaf1800a1a17fead6ed8b9c290396f189cfaeb4c3a24cfa3f9aefa63c9912d76f3219cf1d386b6c50324ef856934763a40c3532ccb1ba2a757d016de2fc9b87f067203f178f4ee26cab848a21ccb4dbf42d82bb6b10fa5e40ad1875261a674fa12ef2cbd6c7d678b17f57e1a224d30f184b4e28f6ec188abdb8d98a2eea8cef4e67666555db9f595a451ff913187518f49211e78804e527fcd741eebafd00b5dbfa2ad0a5d8f753dd18fa9229d0097fe3ba07b549a2652438fb0f107ab0a57647101030ad9f6863b162fbc2250958250f7bd46adff6422f0d563d97fed8c40b7062b5cf3389337a573d6e959b1ab648f8cf5763916820ca5ffd94b328eded46fabb48ba29b390a4434886149da8b9086b1b980cb1703c2d050b9e2fa0dd31532baad12516a26b714d7f7ad93146cfb4aa13f9da8b046d76f3b0929d3ce0c2d774949f66406553863893b1a07dd72b7d0fb8fcd38e854d22060e58e66d28e537461f0f374c7ca1d1305f81c079e28f13b327595314f4bf9b7dccb56a5b749ebde0cc8095918a209e880f140e5efce3e48bb447c7cf3445c730a29e443b87d46b371db183b701398696572ec1ab76be84c1e665ac65a2ccede7be4819e986c2f4e1009b025519ca04dd5596af053b93edc008fb2d17d0c1a45c2590ad3e3ae33a2b9670120b208177a7a7f49d878c4ac69692b6042d44656ed3a4c8885f0cbcda15fd12e709757853a0f41466ee4bb7f515ae927ba299b875d56d9b8621aa58a508bb9db57cbd43f0d8721c22178267861a4e14ce269cc8eebbfde87ae5a1f07580ba88a59cc735046cd396f310e494448a92f858061f77f3faa58d65f5eb392cc9261c854431fc2cf7c2aa4a1e2d3960a068e8e5c1bef190c202e454dbaebac61cf41c342d01e66159f11ca0dc9ec2629bec07a41eb0b1a2f45b5554e3283059844720059808c3eaa0b8b8dd569a2badb57a23d097686ba061b4934e044e96477df980ff80e48f21031f887b6ba3df3518640241f8db507381239d48ea55af318e6954a35f8002d55d20bb06150399ce1273236963902769a72b85bf16394368d29aeb04b3a90c705a1898636795faa30c3e204ba5c4d9185c5c577495380ee39637f851750682267e7ca121cd1d6fc7e135645e58b80c2e2dd25a255195dc35a6c690235a8978633d094c9634d46383c042207dac32ad1c930149503e0694744999c2c41799d8a67318d4a4ba09e33dd1e8d10600402725caef66a579e2e93e1c84c4b2fcf20e094e337cf236a34156ed14655cb191038cccfad71736291167e287bb7941728ebef774aec847b5532e6cf68b980fc2bc0ef66a54c1644ff903f3b872c25795d8e38932425846c022776b8ebac8f276d04d9ac0a85fdb992be8c62bf5c118b63dd194aef7fe6a8706fe6fe7689f5c812f5ccadc3985ef6312b1c6f6929608ee1bf92b84fc436dcfe34a4179fb362acd61c50eea323144d21adf51ae6e779ad11e1de0c3bfa31fef866231aec7e18212471fe9242f23e20b3cbced45198f4c104e2d4f5be1b78995e99a430039da2ca3ea7da163f5003ee58942809bd3face4e240f1e770ed17617f343f528188be64c2a13866955ff142d8de445159abbef4c0bb9df1ac1aa40c3cbaceda790558536d1db26f5bb692d9f5523b5c2205b8fbebd6c0a67c7164d6dcbc65a2c3129b3da9549b21e3442ed666054a91e682f057fe6ca9f7cc5b7eae982c4aa11839753a9dd5e1fb8e086ac8a0f1df293304991f800b033fdf736802571607f86f4dca083bc27540e128e65f6d42e2b88b2ad053353ce3f7bf9abb33ee0c59b618ff71ff5b47a518c4e0f22fe782f3d0bedfe0f152d75b78638b0ae90bc7118396d39ce5b116a381da034c6d70570802dde18bfba829982989b5d46c371e7682c623f1accd52a82b09c68ff50fca07f63a9ec569555add0950c64ca93a73dba6206c2eab182790af5937be7d2807616e1a62aa8b942e24d3d7c3094a428d2e8254a0c0aa810e2b43ec26c62f9c9e6d0ca2e279cb351543a9d5dc9dea37b1fed70a2933e910ce4aa2245fde80a86d20a8027a583aa181bdd4efb25a011535aba8543b0c34d7055799115190a4eee26d6fb2bff05f5b808f8c6509402a1df785184dc7fc405332663340fbd2eb8ae630b6f60c78383c4ab57a241febdccc645203f5c32f73d31962fe2bbf7be55171115a34d234ff700de7cddfd5f43d1fa2f279593babad715023f8021290ffac9b19dac0cb5c9a25f793e0895bb86dceda58ceaba38c3e0b0c440dc25480619561521314e33f4750723a4ae8d14c39ab3a382922e5eade7d13f9ff0414df827edc77e13ec7c6bbe9277da311c959ff7f9944770cb6b5176f5cd6f2e8f9bcd6414e80610dc83f4f2674b77d85cccdebc9c9acfb8e18828894f5b5b6864de96ff87eedb0ed82c8cc950dc3d3dd9d760b48a2d9292805703123f60f7abeda8f78516bb739ca61448f82a1a7b6fb548f8f18c3f20a3313346233a947184f2584a1b3d59f2573a3baebd45248648d9adfabb144fb6f9c3984f001178d6a9c1b1a929c3fee15b398a66ed2567c4a57fba57fcc6b77c0347387e56c573dcd65a89327327814e135e87f3fc947eaf3339452b1eb97f3def404051b1ce0e0fbc5c7c98bb241778deaa8a00314469c3638b2f27ca6780cd31cb0398bf626e12a6d0a17bf9e6a24a44d286bb79a40350f20c4218845a6d92937e0434d16625715f78f59ba2886099f3b463c86bd6773c5ec66f98469ac2c227aa22c567a95e7786c5095c2ae7dd407d71b005506757346a72c803bd8be23dff2e1dbfabe31c0f35424bc97262597f9556e0461e322d3cc1577a77611be3938f32e660fc1f0b4f5e9a7e4dba22d7b8b4ea3cd619b7d23b81bed26051ba346a9e4da832704771379776d327a507225486dd5a2cd315769c336de51f52f307e15b6a0405054202932c618a63314f4413ad09a0e567863d131d1db864384fd571a1f59518e3e4ba468a98bd610bf08a5751049b11883db0129c74d01b99d9412f0a2ce2f55232adb4a95d8fd0fab4c902fca92aa98ee1aec78d98101c5981ee560f073914c9a7cf542cbe014263996b716508f7525ec476dbc5656ef228351de47f78be49b5dfc0d8e4884a708b9ebb554786205ddfb753be0874898b2ec41547fc5e7bd300abeaa0443291368908e1117d636f890c3415f92f543078ea53043104d8b4cd0767dc181b9cc97e9330da183ffc60b5333e6f07083547998f487acc75b7176f64594060804f4c639c5607c305d90e866b7d1d7e8c2ee4660009ead109f3004228ee483d607b5b801ecb8890ecd491f376b0447c87d1cf31b7fd522e8c8cbe315066d7d8f55e2b9df3547c50fe4cc5bd63a7279ac3abab91dbae5827d94dfa809df56f2d5399aaab9b79a1c2a6b12a5f5a9203016b33e6da36079dde14c43fa4533ffd243e467e9c504b294b0a63c9b6e638de2e1d752bfdd87e68f10cd305cfa1afe3248aa9fa10a36bdaf41251c42084feb74b5c5b4c5d8424387e11b3d3294dd2e58410d71c9927388d944d9c24de03efb435c34a2be01303d07aff53db79b5ec080e4ec19840bea0210014ff55dd68c2b3e47afa53ac20969c80ccb3294e87d2129709b11d987fe39be97f1997bc7cb43e3aec053c18057d1fc728eb45de16b434dcd0f8ddd0debd18bd61f5a25824f06ad682c307bda8712ec3b417d3a8d1f6b918299d774bf13a3d5e66e5b0383191b4cf8eb3ccff3ea674820b246d45db712dc8817a48ee9f3ac5f6e5e5d02467e391024d5e98441a4969c763f5e0e61c57cd58dbc064b610078a7eaee1a7eab9fd29ec11f3f12c9a7dc7862a1be6822ed09602388629b78f0aec2c8958066145f97aa7e400d21e64b82d4d306979c68bf6e19501d0952eee3f52e4dd3da26b4c98311dacd2826480315855fb75e0a2f40c4a9c3f46edbe5b4ee8d3e9108a0b71462f5d264ad417cfca403b89340e1528f7a68fc862a64238ee361c63b145d467999a0adc682193217e5dac5d4fe01e50087bdaf38a5264108721a69e00f08720f6efc16675fe288a9312c9381f9643c7675ab967da4a5be6d16d641ecc1df47b49a3d27257a825c67384b8caccbe7a1771872ce5239745617797d2a16d012007b5d9de990356b5f1880414f69c3354db9571025853017cf958621260cf8b23ed8042601f93de4ee6c25ce36b73081420637497c830deda1cdccee42e60a9ef8be144a0f14cff27a503dda7da653c9eb6032691ca1d7112099df77a85250594af01610354c84c0cb4c7e4bea6e6001cdd4a80f143a365efd5c2defd5fee964bc62ac0ed68f3c6cdb8b06ba23add24430821f80ba3d5d9cb46676f1c7f61e0ee4a44aec82ea40369a029d64b78ddb9fd96cb3981a5fd919234ea2710a21e2475ec254ce49775e00d125a2f607b90d482790ad86ce1db4615ecbc2796b9706501f8042bd829449710e035028fa646ff79dc8d5498f7f1e323d4791c64cd81137e57c55aab45b69d06c12d4252eba3a4dadb622f71959185b5144f789bc50bce76181e441deb70ca86b26ab6b25bf564d4ddb1dee1a8b5ca6ab110bd5146405c497ea963610c1e8849c87163da3e01f729750238496eb22a65124c86dd488410cb7e2defd7b4ffd3970a40035274c3ca10bc96c255e4012a78b705515cfadbf7e62f7afb2d788f2feae918a57e7be67286a4c8a84619dfdf380dfb43a07f23e0f63fa71a7fdc8854920fe7c88039efea5fefe3df2390176eb598cef05fefe4bb170a6c04965b2ca57a8117e399300bef731ad415c02e3739004d233423c5a270ceec9a199af05cdd561e54f57537112709e865e430f1dc7288af3ad094675f094c81f32594ab6620038a574dcf4cee5ca17dd8f1202080d53c5641b7b61537c798d82a8ecfe9e58139258e766d9cc3638e5268455b993cdd4b2dc6b9a0b54ded6acb2ef61eda07e2ed1469bcde72557cfa78859c29b2c16228974993ca7ba18c0115964d712b2e4f4de52209d45acf10899bf8cc22509d0cc27d3a42e7b71ff5154bd2f4e9de9a127492e37080bcdd3f89655380e141a64e0cd23fde69a75150db227b2fc83475a301c9d36f2413015f096727c21a91e09adbb2c9d182228fabaa4f1003c2b860cf131ba22a685ac460adec1614e6923fc3c1203bedd44b30c3d60b224c301ff000000000000000000208ab546706b2da11291929452b90c1a6cc069714652a624534a91ec0ede05ce4c7c3a33f1e9cc1c34d208219897cf0cc50c780c7789902a87e80002ef965bc6a8eaff019bd14784698a596b14d1d6d0e1034677e75c0bbae4cb949467878e1e70e9733fa5fc4c16dd5372e0d0c10336a459d467e983f6b45bc70ed852d57ff23476d4de221f3a74c0884e324f65ceccd86229e68097a5944e2f57b805a9eac0012775892c5959339f991d3760437f07917ff7a9d51f59cbd461032e7fe61853d73b8bceda29e9a801ab3da5d4a94eabcad28eac6d8d0e1a30f23363cadba6a28cffc89a990f3a66c0be564ae8f68d3219320e74c880d3faaaef97f693976b6774c4804dab41dbf4e5369d11d030c064b27c043452ae161d30e0fc569467775db7a45a0b2844c70b38b5a44d9ed6f282fc56870bf8b72c3d63eba092ca515b2491bb1914984c94d0d1023eb450aa4f98aad2d96430d0c10236850a224dd525912ab22a74ac80dda0d3bb149da2c2f4237b4516225b74a8803fdd57a7c57e47b33852c1e514ecbe7674d2cb71a082d1762e4f68886ced1f740a6ef3a7fc39dba7bb8a99a6e0a33cf51a935a4b2da514fca607a57eff21113848c1e9aca8d3ad4e9674161147c1a68ee9e38d523a5e228a82d549a3da183ae98e23146cbc1875969ed50ae9de85e040c1e6649b5450b5320bf73ec1b6b0b4d2372633791f4ff0aadbc63528d995d5da094e67fc1013f5a773908313bcba081bafbb1c53d2e1d80423aad9993948b5594a444d302ed5cc936e5139fac69109567d5cddfee9f5e2a9706082d75a486d39634a2735cf7109b6e3e9944679ae14a6b604ffa35fa8c61e25d58e58093e43c99517d5f28b881c946083a5746f5fae59af67129c78f7eb7e9a6c114f126cccacf3ba8ca751a594094482db8c9762aedad7ae960157e08004db21b5ab6e309929968f6085bee8d2fed2a2ec9401381cc1da0ba5fc74fe6b9dab46e06804236336fda042c67d37318237f5a9e2af1499414639816311aca8d4cf3ae7290dd9e25004ff32e551774206a5524b042fbe3af5640ead4c8710c109bd0fd24cea96d62f8e43b042651552b73ee81c64380cc17e7235dab468a1ad5185e0378e1c9deb4bc5741b071c846084ce9e925097cc73e53806c1e775911ebb9554eb1b41b0a533ca8f69b554a174130836ef68dbd1db6a1e5d23f03503069a881d1c3800c159ca595daaabfc81cfbd6ade1dfb89db8871fcc0ca786934ea68b9f9b2367c0236bca40f9cfc38f641b3cc69d359060e3e705178109d772b94a6d11e382dae5275053532dda685160d23091c7ae02de7d2b7b9ad6e1ae271e48115efcb79ef47b4bd161eb8dc2946adb5b9d5db4402c71d184dfa515c9a6e9176d2b003df52f86617935275528fac211438eac08f8a2932a708d336a3c0410776c585e91cfa317b23724fe098039fe5caac525fbea6df236b4b050e3930cac592365f1baf8d4e81230ebc52995b79c54b1a143122382970c081bb4f4249ad36bd94c9e378039f83f9c96fcd0dcb311c6e605d834e0d5d1fb37c1a59436ae06803aff752d037b25508a99d81830decc976f5975bfbe52e47d6ecd8c0b106ee5e6d65536a55538e856091801211984c03871af8d4d6fad72853257911b1e11d58b3e1094035e04803bbe54aa8d21d1535ae37e04003ab964ba653d3ac339e0c2838cec027212fbde7bc99df4f3330a6975e06d3dd3b1f4796a30cecc552964e3488adaf1c64705cc8df5615ba1b1c63e0a4560da5c972c78a510e317051ca8a5acab52f6867c4a8e20803173baa9872b24b16756b64f390d8a811020e30f09eda3d4268f6a5bc620e38bec06793a3d9843c9951c94c2693c96462b64d72a3370b1c5e609576aa8a522ca98b9d2eb0524c2b7f2dd73da7242e30b6e36117a59a5e2e6db16818800c1c5be0f3a98a9993d03a425b1a0bd3060e2df09ab276a765a1846e3bb266568214c09105ce82cbd68e69437fc3b5102c1270001112378be0c00217a3d242ef6b2d25f466644dc4865a0816568478089448e2198c90c22110b02244111c57e0ebf2476f0f5253259504f80d2dda90d04056e0d35d8c6f1f9a5daf5222f3024715b8a8f7d2e5a9d7af5646056ed4bfdb267dfd2c7a8e29b0b6f27dd46a3ea5d71b59b37143c6b171c30133106038a4c0cb149d756a7bde46978c182325931094e488021f3234ead44cf7d1f4c81a89dbd0c249ce62340916060546e6cba35eb8886ae83c814ba6a57fe6a07394269c4c2613b573022f75e7acea83ba53deda1049374af642b048c0029ac099e6f32f0d5287686c64edaca430815fd1d2727add3996c06e6bc5f05da13b46ed8d1a4ae0553f3f092d85ca2ff49115d9e34802ffa1df738c4108ad2e9533165042720306ba220b912d3890c0a8d1d23ce772ff57e66442f2001b33bc03317e060d2522438d60329941a344e5c0710436c75ec9a0de57980c0f871178514adf8bf06d8bc08adaf0ed5ddd770b7a010711588b25374c67ade466a3c231042ed69fce369a6356917208813bd1aded25aa693ae3080297dc6eb7f2b7bc572107102c5db9366e28211a33387ec007fd5aaafbac52fc770e1f706a3aa78af0cd5f527d038e1eb0abd95d0955ea4bb9c6c1033e7d6e15b4766a95328563079ca51d1f8d49a666af68514252003535638b921c00870eb89844691625b567c6e4643299e4c91cf07949fdbd958e32b71071c0dd870eaeaf94d6adb32570dc808f4a684d4ae6f3ac5ba7030e1bf03dfa5d79b9cb2093364adc465bb1028e1a70c92b6ed020c437d7cb93c90c3868c08bdad1d0e9bc2ce9f88ad8093866c0895629cbe0f144ad90cb80d7c1830695b4fd67f91f470cd8ac5d3ce56d1e99ebe48001a75b9eecf7d8f9a3a9a40d385ec0895abd251633b51ced0de3010e17f0a93559fe1ce36a1d3f395ac099262ffdca7f39b70a0bb88b4ac79c319f1c2b604db392e3dafcf4aa1c0e15b05a53260f52a8ec97f954707993d6f36db56df947055fc9a5e765bd42e8c59c42dbd5aa2a8505d5149c880a325f8a276e1e530a56aaf292ba62d6ac9423059b5b3fc9cdb3ac447da36065f667cf90f97e7a1105ef9592798bf62cdbdf50f0efa9a3ce954665cd1b28d818b5cbd62edb63c5cc2718e142bd50de299d129327b84f9d9b53fed7eb979d603c8a7a887e54f92be504ef5bf1c63f3cb350cf267857523c09d9a939c58a2638a9c39568d2410aa58399e0cfd44d864615cca406136cdb97b9add2f79e4997608594a95b68f9a946972cc19fa991fd1595aecb9b4af072fc44c5f3cb14328612acd9bd67bddbdda38493e04764904a74f586d64f129c5aae515d518904df79179366ef1f998404b74a794b8fadbcc6b747f0afb205a12a970c5f8d23b8cf14a5ae0faaca5caa116cde77bdfe9ba52ba97245425c46b0ee212b05b7acf4557e117ccc8d4a57de88681c15c18f5cdd153da6c5b7d3c89a86609100922a12c169d5203daf7dd0752322421588605fc95b15b42a19539d87e0567df3b7770b75a9637650852158a14cb96859eac964323922664c211811964e3445ad9ad21a594302a882107ce977367bf3afbc392db468049889a049105d9185085731083e09fd29b7921ed4ae96c811042fb3768f6b2f57cf0f04e339346aed48d11bd1a00a4070be41dfe80fa662f668498f4060456c8b2afec07994eaea5a796f8e493fb029968dab9715a5298be9032f65ba7f7fc6f8c0a68ca34f86b6b70dd3f1a08a3d7041cd835ea1e48dcca21e78ad43e90e3ae3dfc7d511a9220f8c309d954ca9f5a675a119a9020fbc0edea1d3bbac1bbf91e9dd81b3ac9d4b9976329994d8882123861693c956610746e5a42f3288efa999eac0bf6a8ecb1c3a7bbe7c323113b133862ae8c0ca18d48a27d5f9399d93892a8921633251253164a4ea15aa9803bf27d5752711debe3993c964828ad5a00a39f0abf247fefba995a79e1f541107366a5253ef0f7ed23423c68888932046091cf8df55cdfffe516e2a95b416301010aa7803173f6b4a3a424affa0966cd110984c2613113b6e6055329d858c9b5bb4a7897645162203a8a20d6cca6fea76a5cebeabc9102c1210528306c90126931a3448d66452b248fa4602487c8bb6428b6603df49e6555369ea85cc1b005d91850809aa58039b4d06ddb27dd5feb42ad4c09e7f54579116b5a467640d2d20044608163268902040798d094c26280d8cbcd8f15f65512a9af6488e94b4026cb49a410346ea086888008bc964a4a447269383065694320fb522a3ea32cfc09f7f5cf1f06590d040800c121a8fce09559881534a068d1edbb246b54776324186c4460dd440156560935465a675320dd54217b8220b912caa2003179434f7e8f1edff75558c81555a5d8bde34aa4c53f48a2c4456156260b3a225614253a41cf5c89a0c1a249fcb2dab08039f548e5949a9788fbf22364868948898b34142a324ab00032f6bb37b90372aa66a236b1d9811638b558cc46d2c80868d190b3057a3656006aaf8029b717b75550a65ba59911a2d63155085175893a2b55bc1a3543a35b6b081b605c93907a8a20b9c0e51dbe0226599b247d66a20090d08d0b031630193c9cea00a2ef0dff9b29f34574d2793b4104c2688c4460d3c41155be0959eb9ce57a36cf3a6049c36157b4d088f9a3d9ae1410a4645f939bed0b993de7d148c65b5af4cc7986a4c2a0ace63d2f22de65bf09c0e05afbdce467bc5bc99f5a0e04db69d46a192ce4d39f4f804a742870cae532821ba829ee057aaf8fdff771e9de06b83cc5a06d5c1846547d6b4b82143242730994c262ef0e004abc99376552ad4e52f6d82d751075dfb7ea34baf34c188885067515acce0518f4c70afdc2e89d4c1928e6282cdda41bb5c3b7956f625381d84969ba7d0c9d267c33ba034de8627a00e1e9660c5d225ade32e63d2fb8b14f3a804abf34b136d25843af56452a2cb83125c90297970cb52c84edaa403336284c0207140088c90102cac984c5ac44ee13109defc635cad349aa57147d644205212438688fbbb2320044648490862348977a067b403dc11d0811931dc7ff5e021093e45fd52458f955c7f6acdb8418344648b24926823463a6722256959784482119e5995d4f05ca95c48f02f555fbdd2293fbbe7f1083e7dccb25588b692b91f596b12115c8d26b1c06472030f47705ab4b2a8ee35a133d4467063b175fd9b45ad764b46f0ab37e9dbbe949e3448c3101e8b6054c7cde9d73eadc86dc443119c2efd9de32aa8c8f047d60ecf0d1810b02204460804ac30791e8960fbbc4b6c4367ee30868c185a88e021221a1e8860c7ed54fa6fe811a63a049f4269a5fa73925a7f66643b302346893b0226130f437059c7a829d69db42d8b4721f2f098c92f17a3e418c08310ecebae151ddda3fe98e42435cece20f8dbb60f11f26f5d2236483c04336220033c04c1c7fcd35c2d7a5a8eeb1108d695d652e6ac3ca6b4257800827d9d52e5d6b45e41a9a4b5287fe0d4a7dcea9298ae4b0f4608498c864049890d2f292185871ff8ce5153a34e59e674d17811b4127581b57c8f3eb0de414ce5d05a2a95f38750f0e003db7b52083db615a3bc6f0f6c8ed1844969593c3df027833a7125aea91d9e39c1230fbc52955493fadc1cb987400b1ae75cc0030fbcf012167589109e95740736d767e9c14cea7e8d7ad8818f9dbea592eb119d94eac0658daeffcc53529f3e746075ce1b1736a294dfc7630e7c78961e432bad2178c881d532dfaa99d069de6b123ce2c06ae95e1555df1f2a070e6c0b75a2725eec130be2c0e30dbc2a99a95f6f8e2d94d2038ce0e106bebd73a9becd3244a6d0c0a30dac25712ddfe2a9a8a18511e2c1063e4f2ffdc8dcb2bc656b60e508fd514c75728f416ae063b7b2a02f0997cafe3430ae57a7ce59b6213c4403b75957bdb4fc91325f0f08c1c28a101b3468484089e07106366e7ac71359ae8328150984c00829110881801521ea61063eea92a12affca1cf45506465384c8cf5f1bae3132f023d453da865e94ca1d03bfda53a7cab9973495626033b3561644c534ae8521522e040b2b42426098bac1230cac6cfd521f324bb9ce8daca12dc04310c34677c0af984c42b0480005663c6032e386c80c1a93898c18304248dc060d2c2693122d6ac88871f08a2c4438a6e001062eea513a4999bb1a4a1d29692d4a52091e5f602cd8e9d64795b3d2a9177899829866e524ed84d8056e5b8850af3a69cbf9c30576e3459dccbc354b6f5b60f3d3bf9d7be87dea688117255f2afbacf3aaabb2c04879ea6c94688cab42f6040f2cf0fa294ad7f93e93a9ff0a7c6fd0f320845852b65a819177da85b786b9bea44715788d2aa38fbbe9eaff5081ff96aa265b0b8f1957236bfa3148bc0257642112c3630abcd2ec5f3178c6d5312b055eabf690aecb734bdb51e062868c2d94bca063050a9cbfe7ff53a1f7b20c3e81fb93f6b51d3a236b2276c3c3098cd4d3d641f587597c8dacf907da46f2c0a309bcc7fff45283942dfd1c590f26b0c1a45052c9d7d729374be05f485d52791c9d950c1a595be7a1043ecb8e7f427eca4ab45412b81885c5b2552b4c4b2181f74ccdd5517d37787e047ea48b542f4ba29e2123f03a792cd12e1581d3d9727efd15854c7d791081754ffef599b3ee1cb51e43e02f68b9d9d7f2ebe7ef2104b6cd53ccd599dc4dba47107891dddd9e56880a2a6764ed69888c94b402723d80c0f8e64e1f2c69a9d5ca0fb8d17e39dae327a39b3ee08366cdaa5e547ac0e97bb3d89ee5885295070f78db556a757be3c9fc8fac39c98d1a67b70336ddd3976a954c2999e4a1032ea74daba4d672f333e891034693a74a224cefffba34d6b90e78e0808db9b9f1b3664fa64d55f0b8019b4bf458d6aba754c5cc990df853726cdc848bc7a05e03426084d8133c6ac0cbfc19930b1da53ebe5a78d0803ddd1794fbe98c1bbc91351212f79801a7f2eb9ea994551afd461679c880bf8bb995b0fdecdb5c2d041e31e074e9d6296a3c27f777642dcfa0c00306bcefc7d317a57e5bf0780127c4726c3f0b6a3fbfa4000d1b33167045162210f07001a7765a457d97a34afa198f16f0aa53ba4ada5f67bd92070b384f4acb525928adb552f73c56c068d128a6b5879aecdf0a0f15b029943acd5759f3643702b77143c6b14b059f2cee486dafc64f9f7051c1a9fa16d1fad4bda27c640d4fc1c8f3f22494c5ec235aa6e09514157cdf831066674929385f3f99eb59d345759082f397a1db398bfacbddc89a93740d27a9814c86ba80171b05af4da8f3e0dd22c3e51da2605c55d0cd9c5a066d6d644d613820048605d68c1b340c40e3672ce042c1ff464bab2395abe8d19135efc08c1e5123706306147c2c137e5f3a6b1d9f60dd84e57c5affcd53623cc1b7ccdb425db8dcbed5b0041d9de074f011a1d525ade31d43a4c4fd39c18be54bea46c5cde9a4f68a2c443ed0b109ced57705ffd5573a003a34c1aa14f4a7368b1f74a56a6c81c5647245162229e8c804fba5e99ff365feb0c4fd1351d08109467de998d876476dd7c8aa8e4b304ad89652d74a9f465362095edb5dfbffff4eb668646dc4460c11a8a13da0a312acd4d30c2e7c95942da504e352bd6dcaea82fac85023c8ed98049fdb3fe3c8f128b4bc2b92e04baf8ea582169abb957335da010750abd1328a4582eda0734d55e4906055e94b4fea6db3561f7c04e76d59ad097d4949993a47f06f1a33a9979ab34ef18e46b0abe9e32ba13a2623f87e15baee93afe5a872b808bee37fabdc913225d35204a753e524c563498f3a1b828e44b0ab1f7c54cedf424a84c63a886095fcbdd1a24d4acd2f0a1d87e076f47cb5501f4f5a33041ba4f48c3a4a1ff52c8eac7907487a4459073a0ac18bccc16ffc549e68c60cbf018218332830622386052693c984071d846094f45c4fe9ce65783b083eeffaaec8b451b3e78cecaa200efadbed694985190836c5a8a24b8358569ebc1018207400821519dc4bffe93aed76c71f18257df7a579c6506a1c59db82c4c6162458e075f8815bf16f4f71548aeee0c81a081c04ac45c7b05143c6d92bb210f140471ff88d97556f058b254ce7032b9346f9a2554c931bdd03a359844a2285ab1172d4039f5cba07d779737bd0f2c0e9f374297f9f32b70f1ed82cfad46553f1e2edeb0e9c96ab53f54799cc691d59134943d26107c69408b9adb59d572c0b1d75e0727a15a45b3a6166b10e3a70b659773cdb27f5143407360bed4a42ef97e6556fd490032744a58fa7d85f6ab33870a39598d42355998c593870de19ba54efabd74135b226848e37f0a2af5b32756c751eba81b79c929e5032b6695376b4811f213c46ad41e68a890dfca7ace9d47a56bd730d8cad304faa392af7bba88153417abe2ff314742e0d9c68e5991d262ba74afc6ca0030d6cf84b535a6e87f2fccfc02ba17a35a5b56d514966e07296089583d20f5269cac0679585f9b8eaefd1970cacd2bb64f79d4efffd876fe81803ab65142d4a0a75a25f1a59a3c16713e8100367715ff8e9a9e8abefc89a12a0230cacc6d89ddaf48abd3cd7c0c0aaa816d523aa62facc17f81c957e99524b559e6444b620b151cc0bac5ef3a0ad9edaa57df7858e2e7039275bd34232746bb40cece0025f519aa9a464054bde405b28d722750848bcc46e0b5505113ab6c06750a5da25e5a874c20e2df042b6dc7f1d5d5a70a191b5650c6581959bd2885629e816d95a336e9c007460814baa426b995ccf9cf5c85acbb0abd1c56ab40c14e9b802affdb2ffb7f28cac699162a81bcb496c28af31991c5a153fe8b0027751fb55477e46d68edb681b371ca03be3c61f0a745481cfcf2df5319d9296a6830abc5e2fef182e2be553cd98025faad1bbf776958a76081d52e0a5de34ca4f85a2c08a4e3f0b9a3eb7788dccb4a0030a8cbab7a8d2ad8adfb22d363a9ec0c8f528de318950a985236b22349692a0c3096cfa18daaee34bcb16b3ec6e7434818f6fbade7da392b29891b5624b2386488d12eb6002a7d2666c21329688961d4be057bb84727996cf94e9846091001b3e810e253052d7b9da7c31a8dccec89ac88c5649602dc9358b7af9c55da948e0ed95dcf6533245e921921b2533dcec3a8ec0064f1b956b289533741881dda8ad64ebd4f4bf551c3a8ac0aa1a19d25df4ade62c2270d284b41c84794b993243e0b62ef6add4964d06770434486a0881bfb8af7e478686df6a6ce80802974d490fa105aa89a636a93aea8f28186179a4ce1a2a34db2b14eca83bed97f4f75bd640c1a5e459fc63ec3ec1e7984ee4a57c7b82affc3b5aebbd34bfb1139c50765f516aa5bb5777c109f6bd548eec51a53506e126f8704f7af5a3a65a2c35c1e796316a29eb4bd5ca33c1cad50dfdd2e1bd310a13acbacb8eab75eb53fb127c52fb9dcbb36a8c956209566b519169ae32473555826f57d5fd69930b8f1e25b8686f4ab554d4097d9904bb4a294ddec1925019240946c7dba02f474d52662712dce5cc68a7bf36ff4b9060377b47932b5f464d9f47b02fed345da9d42131b870046332555049fcb369f51bc1c7142a269df5a6f0f518c1eb86c5d057725f7f8be0d2ea5656662345f0779babaee2cabd984f0497d483d0af6e5d4f062182cdf73ac928cab2e51c3d04a32ac80d1e2a7dcb0c0dc19f56693ccbd2f9f29a85e0fb94cac1eb345fd08e10dc47aff7ce3154b76406c12631b7d3398da8c78d20d8944676d0b4f94030324f840ee222eba448c416e1e002108cfa1bbf242a7fc5b1ffc0c81ff9eabd51e9d3ce0f6ca7dbd1ec7732638ef6816f7d59e996361fd82cd74b7984b84bdded8191af55fecf59bf3226f5c067d4a79ea3f450224224b8c803b74297f21c957aa5c34428b8c003af29bd0e952ba58a19545cdc81b1d3d9a993c778ab2a7660932c4ff1bf55d7f48d580756e4e9985a50311d440736def64635ae35cafc55022ee6c0794bd1598ad092032f637e2f19b42b330e9caaf49e7fecd6a39282039fad5445750ddedaee1b38af1c752ba1627453d5851b380deab375671dbe77bb6803ab5a5d63e5a82dba842ed8c0b84c77c16f2f66485dac81d39e3f0b57d37722a52ed4c00ab758510893214d49b94803afde25335568e9d1655ca08157c1530afa3cbdc960bb3803174ca724a48be66727d5e0c20c6c26ffd651bae90569d6c04519d8fb6d6f19b45a29bd3e1764e0556f8da97b29b5ead018b813733d95969214e28981979ac7524ed7ba1fba30f02e540cd5499570d558155c8081dbed93d264e7dc2cff0becea3d5fa933aa18548e1778b71b1579a36d63f92ebac0eabc6c9bd467555315175ce055e7962ff30895e1ea16188ba5774af62ba5366a81335761ffbe72b38594115c64817fa53d2d6529f73eb7b0c08f881095594acd75f515b8a8be7408ad5e5b05df0aac6a9d7579c56ce3eef9818b2af02abf65d55a8348db2015d874a75629d52d43a6e9620a9cab5025ee5d96851247d69608d22ce0420afcc7e4f2636fca45145817711dd39330a13177800c5c4081152253bee8f71fad655c3c818fa5a5b53eaf4d32756d70e1044e848a773a76c156d804f665105a654f2a4af7980b26b01b4be87cef42089772174be056ab51193be8d7593725705e6fab6fb4ce319b4a0c910f687123ed69e122097c6e7f8e16167473d4b84002273595e8601fb3bcd323b01eeea35576eac208fcc954a1b6354dedb25c148157426e8c323b4cf596d6ea3205174460b596baabcb52defb281743604d7e9e58526b0c174260a58c1d2a25a999fe5582c0078bc144efe2674f1d174060454fa7561d856bdb9a868b1fb09d4dd7630a5eea55e80324344460c3af385c0b98d101449570e103ce3f34a5eaac52b41c84111282851521250510299c70d1034ede98aaaf6815c1050fb835d14c5159c77d8dd9017bcafe82995bf43d950e78a184cc5fa6ec1c3072a4c5129e515b0c4ab3121738e093a80b39aede0d781944e6ea8f595cc7930b1bf0eed9a4f02def132db9a80123e358d4b5a3b5c50ed180972a9deb4e5d4fd59b8b19703255ba261983aa10a11b20706380102cac28c0880b19b0f93c64bca032e8d249d6550c2d26a062685152808cc1eea9aee73fbe0b1830ee669ff5e8d56fd690a190e4017a451622222e5ec0252d743419946aede66452a365884c263c70e102ce9577d051a6cbbb6af581b67122e0a2059cae10b28290392c6074c6b715ae3255efee62059cbb3ccfda5737e78ebb5001a35aba255ab808098d35f6910a7e5373df28552293328dac8990d010593387c46dc448181fa8e0d47edd9dd96fbb529f62d78cc6872918bdace3f93cd5c956b231a35557e05c8d9681a56073db828a12f9a23d11eb190f185124ed25fa870f52b0b2d534ae76dbeedd46c17d68d9a63efb6dce976ce10d10056bf153ca29e5b84a974a28189951f6af6b6e86b6236b67256732d40840c1c5f233552d5a260d163e3ec187d69016b39bde8a9a8d92ac005ee1c3139cccebfd5f71d40946bf5e61716db34969d828587c7082f1732deb4f08fddaa53e36c145f150ad184c83ec8c26f8d8a1d274ac24f4f36701336e8c4c40c5d04c30ea3253a728858d5842e367c43021582420a400c8ccccccccd059355ac0f08109bee3db685ef0a8b46596053e2ec1a9ad2cde39ca98a274d112ec6896b54134aed4311f591163ae9560fc3b6a6d9949c5144d1f94609526a15a45a52b4ce5120d2d3a20f23109f62de54fea2ea768fa4512b09260652aa1d5de4b7d49ab98e02312dcbd904afdc8b859e8038a8616f70145c30a912bb21011c10724f81e1d63eba7a847709f75ea2085c5d4bc1a912d486c9c2318f9af2ee7eb4ceaf434b236994c26c56cf0d108f654aad9c6d01fa32719c1291d9a9ad4a9fe0ecd2c82752547ab349149336e5a68d13042b0b062c4460c0ba87d2882135abb8dc7749a9644f0296b66a5d5bdf0a84d477c20823d15552aae12baf2854af07108f6735b901f95db059d1982dbd741e95ded18fcb43e0ac14693ff2563b0514286108c125a676d51b7ceaa93239b828f41b0ebba1a3ceb66b7ba56109c8ca72f07a9bbf3eb0e04176dcbb5b0bdcf1c521f80e085b69c9b2fbacefd3253818f3f70224f0a253cf669c8a41ff8cd6afc758e1574daf8d107c6356f6e1dfc3f67ed8dac2d043ef8c06ba996b5a39eb562c8bf27707b60c365f6a43c7ea7249eddad343df06e52b4e69c35c34bf2230fecfb77774a494aadbf8cac911c127ce0814f66ae3c68b8262d5a67858f3b30bed236ba1cf93f424bb303af6c3d74b4556a63f647d6cc42b048c08c074c26336850e1a30ebc69bf1473329d8407251d78293533ea6c71b5905a227ccc817da5830b7deaca569a7d3ee4c06ab55aaf1574b298e2329a04019389b18f38b075398616f37829aac495063ee0c0a551fb290a295ed92b49818f37b0af6fd3ff46d5524c374a44969b49e0c30d9c5e9daabce3defe8613f868035b9a554d592ce0fe93c9072693121b33da46c92236b05abfad0efd9b79c394b906c6dfa44ba19f5f835f10d5c0ba1a1d854c4a95071bd5e0230d8c4a175b29592a8567990f347067f1d2cbcca8bc335d821f67e054980cae6263a33f65640f79e0c30c6adda8e49ada33b25622429276818f32703ac5bca03468e7a0cb354706360b53116d2ef48786808f31f0deab5b8a8a92d8a8f12106569eaa3495d5bec9cef908039f745ee51e73d9986a7b451622fe01062ec7504947e5d7af7f45257c7c8151e94aa30c2eb4d2cb0bbcc8acb5aa069d2ac9d04717d878dea74be5577a2fffc105ce4cca374f6947dc02ef42542c99b49032068d16f8285410f2e35b32b3c0b8bb54b255dad0eafd0716580fa6f583afaaf0ac0a1f5760a3ee523e5aeb5f86d20aeb9c3d262d7d145e1518d56f265cf3f969b42015d895514f77c6565227f7a6c025cb19328e794e0adcc92cdb93f7ebdfbe18055ec62cb43adbd3ea756a64ed030a6cd768798c999b46059fc09dced0a15d6b6fe3894e60b3342d3dc81e69fac52670fbad7cf5856e12aeb226031f4ce05fe51dd51d75cef755a2123e96c077cad23fbf5529299e12d8fb31712dd7965b6712f8d6ff607ba7456b7e4e0b1f4860b5588c7e52dfafb23c8c838015211f47609436cdf154cd4323704265562929152fc5f49e113e8ac06b19f75baad4d27011111873153f67fb13eeab95c1c710384b237fa5060d0a81dba846fdaf879e78d288f0110456457d59679992e9fd0504c694d026b6da6a5da6fc8057fd173725e1f2016bf194ea4fa384c2470f58d5949b94bbfa57d07ff080cfa654aa96dd9d2ea51010022364012533f8d801b71a84f0cf72a4578cdfe04307dc2a5d3125cfd1aa62aa091f3960cc2f68145da73f69cc59c2070ef853d17f6b73936a537fdc809317b49d5ef7d1ccf1c306bc5cd37293b71f848f1af0de59682f95b2dcecae0f1a70f92fab7a534d9fa17fcc8055135e4a7d6b8e8c103e64c029cf24ae3e4df3ea2d3f62c097251f35422badf5a40f18705aef7372cb3ab51e9d8f17702eb45217734f5984d2870bd4a0c9470b58a14f9d7fd90561b2fd6001a3da55aaf4fa93e9a0a29d0f3e56c0c6549d2d37b8d6cba10f15f0613eb27564caad4d425378a4828f2a2febac69b350938c1b25e946c91a7380072a38e1dabe5d860b8f76512b760a46e6daf40efbd6da3ba6604cb4b68eda2c9aa94b119c60b3121e3fff2619a4d22ab709ee46a82c85fad20b4d70b1336ece9f1f5fcace48492b200446c815239a095647f3d55a9b98603d87ac71f7ee17ad92c18b4bf0eaf3eb9e8eaba5847232394bf0723c980ea2828ebba90e81110223040b2b28309964175e5482cd54c2c7559bc60f8f8889e00525b86c6e2af89acea85d4e82cbfe9ae1b943f4a9921a192f24c1b88e412835d3651b8556bb889948305248b39cfba1f1b2e84082fd959f9eecd5f578fd08deeefe7252156aef5d189309175e388291a236b34afab5b7fa9de1452318579953b9ae28573368cc3032bc600427bf532ecbc27b742b0d1c5e2c82959ea2d0d25f4a9a8c998818aae18522f8a8d4de63f6682927dd86cae14522589dbe6550d9f5925669113b86083626fd41ad5ef96432995c493140bc38045b71b4585242f7d7d6355e18821f971b2a07d7160f2f0ac18be73d4fc95b6b75ee1adee105213865a2ef2b7f3a086ed4b7d5a53d69abb582e073aea83f6798eb8f36107cd82677a9ba4ab67880e04cc88c31a9fa2475b97fe04f2a7dfb9c738aee427ee064da2b9d298fcb24634078d10756b4a8f4d1c14669caf8c0e87a95bd54e6edc68b09c28b3db03a9966061f111d75ad07be7db46b9ff4e4523779e054b36fdccd71a5592cf1c09ad4294bede82cca477760632ed1b3dfde68b137b784177660d4e2b62b0dcd51e6fc19e1451df8d28ff9c9e44a5fef1ce1051db8d57e19a49f8ee975690ebcf6e74d8d5aba8e3fdee0851c78f3689e2674ec0da92c36781107ce530c4b51552ef966c281cdd598837ed99ff3a6dfc08eca3244bde9a4855fdcc0be88c71fd91b940aa20f5eb48131f58ad992e6072fd8c0bd4e223c7e36a146a7a9f0620d7ceafc6dda2df927b5ab81d794622e6dd7a45e96155ea48151af63de7bfbc17bc3c20b34b0529530a9e6a5339b0589f0e20c8cd6fbd758ee5b9682ccc0768c52b474f5e1762a59841765e0ee752b5b4c8d396d90d2f8bb176460c45c65a5d93d268417636037879b4525a6e469a11878a53fb6bcf452950557c5f0220cfcbed69ae346bd573786e10518187f197cf3be94498aaf3a78f105ee47bad427a53ca5e45ee07c544d65e15a9770d7eee0451758d31d37c68b596ec7950bfce80adb17423554785be0df33673a598cff1b1308c1c28a9063a6f0420b8c99d639e54f9f73a8290bfceb522d4f691d7d1b8305bed3764de36767e6f415b814a487c8eca4eee5c80aecc6e4776ad9cf64295581735541ff594c6ad55ba8c09e692c213c6f53e02f6715661b5f83689d8895e185147899f44af9526ab66c5951e0c7d6ffde7269cd495894f0020abc6baae6de2cfb71a9102cac08994c9ec0bb4eadb3ab969f7bc8098c6c51ff6a738c2e1a6f022f5b6f36999eab4dae2130420eb6e1051318d94a8ef929ad65c2b2044e5caa51c192f0d617182130ce162f94c0e8f89637ea9dea14a349e06252636652a490c087d615b54bcd1138977b5a545c4468d93202a321d2cbc373dd842762fb861745603faa4d9f53fbc6b82522305aece4d62af923bb6583861613984c44ecb8e0c510385d8faf94a8326d2d0a81f1d40f519179d495d48b20f05ad39810a62e3a26028191f155fc0c5b7fc0bb6e29da47573ee0bc4b5bb5666a19b4df0356ad6a88c957ae535578c0b88f9061afa34a2ea376c0b6ab2e9545371d70aaf37b3ad15b4965a51c707a32afe73c5113d3f1c20b1cf0ca825499a965392c3f994c26ca861737e04e6fe6524acbb6552763c20b1bb02aa8b7a97f935eb77ee0450dd8dcf255b69361265585067cfe4d3ea672542a938a0de1c50c585359438a68ef0693bf90012f4d84fef4bb5a28616ac28b18f09bce82d4661a430ad1bc80012b947c8faab77643682f78f102465475d0c2dc548c9fb2f7c2059cd629d7cf526c91b60a5eb4801d1db9317579f6161d1114bc6001236e31c83d5d69a49f2b622978b1025e64743753ffa94b765ea8804bb6edaeea9f7aaea204905430de7e595ed4b9ae82a8e0b26765318abdf6eaeb145c5299517c6445995d05c414aca814de2977fac71fa98ab1050820a5e085ed0abb18f2e58f66866b216243d929008414dc596cb9e7ea2c897646c177923abe5252d7ff28818882152a7c456306a1d59842c1661ae55a5c6b7735060a368fb7e6ce51e5243f2762ea24209fe0f38a1e2ffda642695ccda0714511403cc19810a1472b4b2d354d27d8cda8d59679ce4965d4c81a490c11b38501c2097ed43d5b471945b9ab37c18bcb742555525559a62800d1043b9e326ec81edb8daa162099e04c459d2a660b52f6aa98e0b4e74c1b2dd495109e4bf031a86059a8f0d8ef424bb0513cc92873e8a8a2973500a904abb2ccaa72abeb8c490a84128c6899ee21a45e3f4b5e918508034026c16e1442ead08a9a31a5926065f4dacf298350520e1209eeb49a8ce5eafba33f209060531695215d07edfaaa312cac08b9220446c803426084b00c121a0ff2082e2bad1f640b0fa1f4e8083e7b89ccaa5552b12482348213fa7365fd6c797359de2530994c262ac604a90084116c65ed214df96a8f4286208be07c734ab5de426a2dcc45802882bb7b11d2e47f5e194d04afe1e29753e86add0e12020411bcebcca979bb560a6519591389f15f43c602b6304049494360d18031994c14e4106ca79896948a6dd679236b7e250031042773361d1a74d50a91a342b0a294b691aee37aec0e84109c26ad51fbf5ebd2ec47d662b81e4006c1af14223449d5af54bc0882531b5d319d652ffd2d108cddea092f91ed264340b075f2d3fcd4be8cc9f3074e68bdb718c5b2e9ea2233627c9001c40f8c8be67e4d7a79b44f0ad8682d103099cc701b365a8bec03a3ec65fbed9bf8c00715a2dd62b63a6b86b300640fdc96906d1e83207a60d553f28ba5727bff089207ee3554d0a51a324846d0cc0340f0c0be6e9ec552e239069d3bb0f13bf575caee6f516a07c693baf1cfe9939100a903f7c2e3becccb2a425703420776e3fbe9dfceafc784e6c0ffc8551dfde38e452139b0ab3cf5a8649fe94cba0711207160b5c5f2676151aa2f191cf8537aef3b4707f20646db0b2155ce4be739ee06c64743fd736e13aa62206de05e7a3e6f55ef5aa66603afe2a26d27f6715fbe062ee78ff134756b1d61f10ea881175349884ac94be83ac108c101481a183db9d93ef6978ea386117258e3ac072068e093a891de1553bf8b6905c819b80fdafd3ef556eea0998195bbad527d6ba96a9032b02de38a4e6f2532705b31af56fc2c5455670c8c909b621096bb63c9241031b01bb51453b55165942b4818580dea596816aa9a49050206568b8ae2ee32e5bc9805f902abd54ebaeb7a2929a55e60f7bb941c11bd3a9fb20bfce66ef7e966565031102e709f4c2b7910a962ae1c640bfce5905b2b4de8a76946d6cc0e881658bb519b9466a9eb5347d6f2072059606408115599842058604b694ff5f0ac1f950be40aac16d39f4b370b62052e5bd0bacff5df8bf6aac0a74a164d998ea3523449dcc60d2b0ef00f20f1111b3158530c2054e0b36ad093d1734af6e929f063fa9d2cadca39e282488111d54ac895494bddada3c0baccf146372529533b50e0923e152a35ebf71ccf1a22365a44c46dd098612130429c043126d08186c05e833c819359698d96377f537831007102ff9e7b5f677e7972d4921b5d43a42406428f00690297538c5a42b5e67b6b060d5dde8119331e3099d0c0820609495f3199280284096c964ae6a81d9ad26b13c8125857adc792adfe18fca3042eaa1c5c46a95b69340a24096c48993e2ea350baf30f82045ea4666e4b21744cb5408ec0b85c13aa31f55ca8c5086ccb1495102a2b39ca3345e0c4536875372e835d7e32594080108135332157df95f6514120436053ae509d4ce5faa77b640dcd001102b7e934beca32b3e63b08bc7a51414fa68a318e3e013ce521304320406053ecd8b5a1a57c19ba14407ec00ab9b7a6c6467da73701101f307af485095df1b45452901ef0ca4f542fc8246adc03e101abf579de0d15bb3e45236b93c96432994c265af00f203be0b6a28ea6ddbb6dbda20356a4c6574f9a2e8bc972c0a6129d42f5855697351cf031a6a0e2c99cde3ab30ae40605994d18d3a36f4294d6cc290a2507406cc005252f678fa26f39066bc0e907a9b4cc4ddac22b34e0b4dee90ef51164066c7ae6a7ce2343ad584064c06b955f57495dc185f40f24067cbb9dcc2c4477cb98bd8301e3aea2aaec8d1dd5f5772fe092e5949a7f2f86c698d204101730aea26b0769e3aa238402480b1879aa43294f9f84cc196405101630eadaa2d6ea6f94ac0ba20f4056c06b06df529af4a9da7007202a602bedcb4d51a6ecf459a960454b3d2dd4ea2e2fb50b54f06b975feb57969d95e3e214bcbcac356ad742e866dc852938d7af2dd3fb25a3ba4bc1c6bc51e9ac31349d3c49c1a6e74cc2d2e6172952a360740190c4a8f45146a3501c0c05822084410000a3e7dd0073120000000c148fc6431291603a2e3b1480044a3a305c3438242e1e120d06649138240a07c3a150300c454118035110c4b134c773a4034cc89c9d7724a9d6126750f1d5e05161227e40d761aa3afe55bde0076c7dd00c2ef6b6474b208ac30868bd8e316e3d48039449ba572a0ae9587ab02a20d2d49e9dac008ce700c868b5dbdfa9331938501fe5e7febfd56e6a1d3d5e0e0bc2e7ad84b83467558106181e2fffeb167a331ffb5e167bc302bccd7a846b83dac079f4c1a54b1ad0794728ec6a68edcdc4416a464e1bcc46814c4f5bd4ef85888a05c494e864c5bea83d14a43b0ef6133c9921ebee92fcff2cd910f1bf255228048e0c11743611c306e1c8872097892e6e40da854484d920441ec894956bcd46886e49de6a4a968f86889a60982111fc7800ce9572332228d474e74aa1d94a1e45da8b4be4fdf21c1bb29269808206a0ca022ca2240d8b08a129f427cbfe38f9b117b5ff78e4176cc2604d22e68ea88fc8b9c42801bb7432b55391ccb96681669f00ff258360c34af28f0a1dbd757d7f4c87b73dfe8e024980e70767e363aad0431c6fcd7b27f94dce853393f759a0ff1fc03fca40d834a6fce3763ffb46dbfca0b461dbeaef1874006f5708f5d0d61dbd3b5ce31ac14fbaba7eca92e856b6cfab86448cf976b7b02b0b0ec66a00b722ccc499ade612097b990df94d6dd9fa5e9b157d1d834be0ea99f277361985729fda5399b3cb55b00d0b3ce0d3a48e36033aff1adfb9d98cea413b59e610fbb94113aafeacb9e91378477466640d071ac740c7e655318069f3d3730079c20239669f2752600cb282b4ca28cfe323a4e16c01fb825289c070808604cc918e96809e48e587b2a0e6a61088147524b4e59cddd5c2f2f445369fcceba29cc0904dd2e1b76ae421993192784a712796e9c1a45406048b60f68a726d06985db813788637a6f7de3bc5975c7cb04a4593530812d9a3057a40a286255d603d22184113187fae13e5460e0406c0cc0a90f2914a643035e5455846ca2973332221e267295b05a7e0589cd58ed872ddfd6814cad389946472a8b60b74ff76b6f6abc5feba8522b3ecbef67d822da7ec2fdc114f3f2096cbefafbd21d40fde1190ed303f49828ac6c1246b93159d5598a8a42a4945b856e098890a39469ace4d912f0f07ba054c01295981a1988063130d31ab46d0b098e22adecab9faac07854475c6110035e06a3279d3280fe6070f379347e200917482a4de30ec89ca3143b1a4dec1d25978c71942fa2eb153093fc6e3da334c43a2a642459bae5ed227689d95d3a338e9a0177615ccf02f559bb00b91545277476d756d5a9a5de8002688f82d4d5055186bb9ecd85f944fed04cf56bd3316c24a279080c53183fc247e48ef20b655fbea5c7dd9d0bf1dd3a536249803b7b80bdc717a99b8c07d17af322b6a95d5074aca9b27303e3d5efffb3fd68ef390efbec93cf2460113d0de8d35f018d06c8466c7c2cd87daa22da1fba51f92d91b0f625dffcc4136a3a3cc3a53e4a3d4a71821c00b46f60d9819ad34bcdf31f64d2b73d60c9da7f0ae312eafea696c51f32c9f151dfd9e6ecbe93968044f21eb5fe236e8fdbdb95c1514f16bd463d2a48fd71536280f1faa3d7ba756c9ff037eb0686a072c4bc9c9b202a2c0b0d478cd287139fed5b04366990800feca20007c76d472782204754e6bbb81a4285fd03b28c85e3ab22863dda9ca3b7f6c2df76b77621ae260ed2b79dfa1db586ef6704827ac1e76ed8de52170b8a892a3c25c8634d55e6c8c94f200d74e841ae481f2a793e3cd4c97be6a87d1e716f59ca8e23e5a5d82d6a88766aff41ea8e8bfa71ca8b19b769966ed48c0d3891e0c38f473e442618199d15d66148bc84f7d7d870e07c5be3defa0d267b09837251e195999511b15e31d51c1c0ff5f46a134827c376cfa8743de6541ec2322b33c90685f5a78e5ef52727ac0bf318ef9a8dd1c3134754eb956425aa08d5a1883d367cf0abc51a46f060b59205a227c7b4b7d5606466312c606ab75d028ba880b7591c964928df70c053ae3c9c3624aa29da58b73eeaa9086d4c6c42b1e24f653b16d7be8595a86b5f0dd9fa14914ac79e2bebb17d7b95e756330726bb39dbfa307cb2df4e5cc5067386781447842635ac4e9cb52f4a470e898e4fe331aa097294f3d73845e1b4d087821843ea973477101c02e708e25394c4fe70c0beb8cb10f090b2bd00a44302404ec723cdef70f9bd9fe0f1749a226a165b23732b60738f6e6a30ce952e3b6aada87938e2c5fb0cd528d610eb5f689d57f8a7071df4b663edcd9659ce021839c852941a87770c26e3b985a6e45ffeae8291f8887e0e71327f2812953e2dc5996ea04799a50d27c15fcf320514438b1a3bca769572e12f0f67ec578e4730cab25152ca12423743ba03635f0088b4415cd99c727eeff5839dba65e64608bb30ad9253a313e2f05b051226b6683c76cf5381120aac6669dc8c71875038046041645471f723b7437d600713a54057b18df61e65fc94c7ac57b904fa0fbc23a0f0f1b020400fbe5c4b5f1d52a5acdc75b134811601508387a717f1a93d2520451d9b1a198a63fbb03bd71e7ec41fe331771cb0af682d5617b4248ef6821cd3cf2ad94bc534b138369606aadcd0017e05085026e72b52397ce0ba458d002bb007160740f2ea95e9695cac390aeb5492577e3664e585e336bbdefdb355e2e5a26c19d4151a1ee4f8fd89df5e3afc74b3bd16cc8772579ac936a36e7195fe1436b6b8f2c83868d63a807dd79c47af12747b7bf1de335e32c3603f9f4923da0d5151bc33a72b1c6f233a7f674decdc43f8f41bc677da92a8bbb45bf09b591c7bb9cbd3a1d8e70cfd7b6ccfeb5b839b084d70a8821a421300b22018d5ddfcace73f419cc75a86413192789e15d35ec56633c77921949dfd6fa70e50a4c6666a8fcf873d9ed730db203a0995dc6e19f39d29c609aaee548582c0f23e1d57df187a04855bd21d32d9f3218021874b0872f6154ef97a1c56aacd461e7a17904ffaf26bc4ab000a336a677a9450a99a93684c8976a619a324823e6e6a73b17940cb145e12d8123447f4af5bb7e7466c05a88a19e4a820458540f58cbb253444d845d28b56ab898967687593daed2dedf88fb6782a7b97ebf77d7eedd697a132b5db7a471aa035881d390285c8859a1343aba29f9263c737ed4e12853e1c8a837f72de7b7cab484aef863f91fb006552897961873407d019f3d72b42395b3ba75d78988751530e0704a52bf46f2840e821794ee76b0ce7713ec168399f4328da9012bd81d5a0f3c4c9c91256e082cae9019c31eb37407bff237784a6fecb06739cb11859ac402423c1a098fd0d3e6e9e20550e9ed9c6cff4300b194a985ea2994a51f8cd20a2df3bb37baa5f74d8137ecd6d7ed31053a9dcaee064a3e6f8473f3e031ea56a10e5e871cc3011f0f8a868d22ee5cda78a22c27ed3e907b8fd367a13039cf497342b609034314f2d6685ea1eec2f7f7a30b2fca732ebc81d644645759315fae7ebd789734ce83817b59b663fe4edf83b3b1c3e8c9e79c969415fa7f1765a8be4de0abe4d991ccd57bc8d921b20cc1a425966c9d24f077614dcc15f5d3b561553b53aa2e6beb2930523b199412cdb6f2390a10631dd59f8e16901cdd52bf60bffe939989d644e1d2969c35b07cb26cf0d7bba3e90a98e2e9428129a6544e440ac7abdc5d72217e093e3c00af30b17b0936ab75d8b7e44ea9aef1c884975d666fa58578919f1fcefa90482c379e02e2c50d955836c529c37e1474bf5f3c1c0ec335de2b89ff179c913b494a9f6bf2c8e5ff2b1f701bf1248ce8a54c613a52129c430203c6615a2ca2e5d25c176837c3a61af5f83474a30d660eaf1442e919afb6632e999f94a4c4b00bcfc943e51d88139efea41c8acff24a19c59c2da706d34cb01c7a65c6071206a48b75f3552b236a494481ae12d24b57f34aa1b0f81494250906b9d326758542bd288a03427cdb2491c525db0ba255b45d4a87e8366c33d833df7f98597a998c0cd0722692ca38705696cb68eb199c712959c0c1a8ab06f3b25f73ce40b888547ad31207a9eac8312212be1dc51b4863b8d2e0219559eed306328cd7d122197fe523c858d43fe68feae14cfe07b3f4a2fe1ae30a2677063268fa024e8eb175464d4ffdb5354bbcb34655a3e62e81a5e961c0360b408d3862be24c523dcdb147b480a19dbfb794eca1e163dae99034b9340a300baa1b0e9d63da24ee0a9ba697d0d96eea8fa8deebc36d65b96f4978a0f5660de2c0688ef9820815aabed9fd1900afcd129476bc57a4bd1fa5f4596741c684a4c2dd883531dfc738258d20ba3c914c3bfa9dd82b62fcb63d61f4881b8ccb841f17e99d7517aa59bd791a8f66afb09a0bcc0b1095fe90ecc11e9c936f7db30a0a01c1e20712c782c71b70fa6c280f2f8aa78307f7855ee35e26d14d27cf75ab4d88bc47a25ac9e5866fe5b83fd4841fc35adc21ddf207126dafd4ab88a565e44476c04648c9c6083536c2b9cfbde66086ed1714e3c3fab1b14219e87d35c6c9b4997568823132d0cd2a24cef7b1af27238c9a286b029504123744c96c440462aff5f76450c57294b99f7deaab9c47c1c1ba32dca49c334a0d09324427f5b33bcb9994ba41819baf2ca8e7f1d23b37688d5f43ad6dd8be6d057d987b5d3387bff4fbbaaef143b430d8ffd2f92705cfeaeb227769f558dba6c37b506c407368f789ed7615527147cf71881f5b0db02beece717063ec97d737716c17ffea2ce03a2d2f68702ef63fdf80bc7811386fa93c80adb21f2b9c68f1dd59c9f9a143cef0d896143051479ad75090d179dbe4edf65f69ade77b9bf2b624ee74d2ea4eef6026268c4024561d168101c8640387c366404be186471ce8dc16470e7fd0603c883455c653a9c8f1e62dc55c17986841493b9d2967f48946b5fc75ff837f218e65229e682034c2aa61cbf3e1288200aebc71e7cd621086014e44400344c6fb6787a3482f4deecedff42a06e646aac5d4be3574efba47b88f76693f830661f5c961125587148bed34c86c9b9b2a76caa9ff5fc3381576e38fbc2a104217868a7deaea962c21df76cd1f622981ea52909e61ad4a4fd9584f58ec1072d2ba9c2351540fef08fc4b3a4ed8a1413dc28d418c64fe6061656a9b7e7b2330a41811b9cf57001aa263563ed69802a3e9b985810b4e40e0884c071d9fe760b6127b221aa2563aad4bc91c76705824a18a984867d70ab6c5ac255860a4a44e6e7f051616b7aea00b988501f351a5a3a373f86a3a034846630a054a08c174b750e0b2fe68b575679f7b7126c1b86a1f41591da69a8bcd4d919d71fced94dbb188881ee124aa02c083faf098670d154178d9be684fae1be431c9cac1c0aea4974ead8b83dcd7d3113d78b4a7ea1338c99d2e0d5c21e8574722e37d9ecdc008da63e88ba7a419f0196147066a443e074631bb00fc956e0cf9ac099eb55742bb7fcbb2111b032ae359d0b0350c734f3cf43af19f73526472d089e5ade31a4ee11f31b52cd53621c35529317e57a6f8e60a8f0389a727d674eaf7c17479ed121afaf88b2f0d5fbb7686b089e784ab778fb29b0f2486c02e620a62893973c82f2ff3a575793a5cfe9c2e8f86c8aa2cb85277b2796139cd220e4947fd9b1078a67c64456bc1940a5e6e7621af23217d819dc6937ddc9bf82b605e98de6d5d8083434807478a89c0b02a0cfcc7fc98bd05410bc1ba5aa502f2d38da737a2a8f91f081d3b56f067cad6ec6856a9023dee1021d4d128c90ea7ffd59f27555c51282b876df6f8c610c369d95ab7b1020a5dab65251016d514a7d03dd48cfb0d0192c0a0f57f5ae3735eacdfbc1db2da1593b9d7f254e8c728d809af8e0aba9486874f968029b072182adaff3d88b54487941832779bc412010e9aba3449da013cc6c12f34bcd51391d58daf5701e1b3379ba5c1d7ab669a8a5acf3fe827388bf9c6f4db806f47825f83944f0155e6c062fe114f21e3b2b09877a78dde7e9b8f7bfb1246fc5c25acdf1a3196259d5603519555224155051c677d70e8a76edf375ed4226f9d6f7fd9d248ad7b386513ecd466c645f54dc3a67c0f72dcaee39d1ecc01bc62284fac471b2d6f7a66956648028c38e39a5d4f7aa88d1978a95e0b3fcdb98e558914950899346294b910a35569f6032aec75be3b2bdd24d136de5aa6e1c18c6f57874292c452226b50006d6779d21de5fa9ad1b105bceb2a26e2aba3936a3164d0687bba58faa659cd4ce7b1305b71a462390d3d6ffd134ed32a555fcff1a1177ede4259bea96aa16999937bd4a3fa56a585096e67c59f3c6ab1f01470f4a92c32131eba60871885cca2ba328f7d57cd5984a4b8d7f4f1f540151f30bf3778141c35cf863bc701511ecad7d548838a0f51399ccb94bfcb2f48f35fe49b94b0f572a56a5955b39a990ce956f8b8ef1f4f2472efc63e5826d58087d3e30f5694a8b2319213b202f2e4e842da0b61468f16ef10f105133f6beab918f7fe1de8c92f78723cc87d023666fbbc615ca3e29d4cd06fbdc3f67814ed4942e85701c038a326459ac7061307cbd6aa9575162a01267adf48a56af486ef879dfdb7133860ddf409204de853a83fc4c079145e22b680f7e753bd4ad5ebb5191b0b346e189fda126eccf4206bb17701e8db66b678a7ec29a6ce931b0a86426223fe2aa8a01310363a0a81bfe1384a4a89c6540e4540dd055af072e8cd51eb609ad92a0b4a979d84c7cc5aa86181016389d7c53849c8842130d80e6071bd542dcc4052a97e70875d177040a85ab82812c88e5468aaddf14f2a1fe9f020ac21ac2fc00cdc293d1e911095b981748ec87f40e479aa9b30836d4c0d81d2ce00c1d15a96fb4b8f96ca1ddcd4be4ab7b61f6c648ec8cd848efb88359f0316943fb5b844bfe9f6258fab4381739c4e1c2f33f88c860967384f8acfbbfc125a98bae8d8a92ea25089e9aa49872e9eb9f750cfc5e3ad6f5cb797d8560164a163493409b9c7f36f1c673798ddd83272a2a2c7a74dc9c63b1dc77408bde869d8e8bc2c19275cd468a3ae542e86cafc241602af8c46ece63fad06f210e4d20879924340886d67b3c4a491d4dd54c47c769dbb7bbc91745baae16d823a36c2db88e9044254e1ca8e29444c658c52116e0e52af3198fe77973cb481206ac00d8da29b54b62dcebdd9ac4676c15a009810354f5346a81811380f86fc8fb8207196f0831f20683210416cac3d74bbfa69165ab694420843e902c1842748e7ae8aa08e8f6972ad8f9f0f97a2b6e7bd63b1a9552d260dcd4a5039c50d6c35e326900ab75874854aabd87ac4f370d32f0700ff512912cab1c5d4c4461aa48675908321b144ab361fb044a74879fb079c8ba7f415d9bfde4926e3e83fb0226040154ae6e31d6c290a503e445174a98d699fdf3a055c0bd94aa8b12fe2c10afa4c7b5984831ef24329922c32589235fc7f694a4de00a494846243a28d7eef0215a3112b9c30f4301d66911a9246bb6e7819982ca1e06d9e80fe3d6e012df31577b3b29ae523f7eb275df8dfa983871858b2288e11cbda9eba6e9bd5dc9d4a0222295bfd508259fbd53b813a9eb35cc467a14fb3f56fb048e1f8be0c74b7517529e666fb98a4677b1bc39a8e4ff63e2e1d280d26caeebb7c600829facc51a02e56a4b3936da43df5b72fbce9b50f6ff8303b482c8cf09b651824b0faa0dd87c78063bfc28fb747c9dabd29905cdbcc0af38a312522729fac46310564b26ba11caa5579427b38571aed8df3e8f820429f1d9d8ccad1cf01eb05e15c4fe69e6cc00c485aa5fc213b257e22288fea1ac1762db2d6083a381a084be3c0976747eb47d61c5af366fe4527281daddc35bf415d25441ed2c4e3018ad6e2c816edb0ab0cf5fe6642e1c935328120b869f51a94241f456485a11c9ec210da7cb0bcf02d112ae72e617b72383dd0281de4230232e6716a8cae9447cd43045f81cd3ae0bbbd7b74dda9594fa3919c942e84db0b0343e6eea1815611ab22d24a8a2279001bf6f856b09d86a661430a9c700864052d657404cc2f54547d452ca152132c7e0059bc6052b889ad29180036d3e201c441b9c1b9df0987e6527aac45b5ca025a069c8d9427872d1993d5b644420ea9000d0066fd4792c04f5ab743242c0de9b1ed56b3ba7bf8aa2420c1084a033d7b1a8bafa620754e79697ce4aa56dc4fb29bb74aa317102b0716f59a6cc9a6d4e44c4f52d16a28070bcfad4c5f88479663df1a8fb2242590a1b04473e90aea8afc6d35f86ccac5527ae22d463a001cbdf19354c921e7d3509e4b4590de6e64389a3777765e87a0b04b52e975b133d46008dfe1448ccc9a6c0de0334b276616067c27d4c393968f1cf660e40c910d4450bf9687d6ddb81bac64d52074a90477e67eb4ff802c5a60008c150500e35f9f3e4c7cb8c690212009901a74d3edd526112e015d9062bee8dcecc1207f335953123cee0720a5c0cbe759edafd42378e19d1da9a3ef927a8791fbadcd38a0af7a227487c34bb8a25c15ffb44b58104046cb4c9212278246801292c34fc97c8db3fd82722ae766632925f53240db60a677dc9f77266b1f1b8a420e558624e5ce95ddd50ff0b9742d42740046302d7df5e85fc228438c68b7eb3dfebe2c7470cbd42e2b56e4b1143ef291b2c8b9555e3a1f45a7dc24ba800b55825b1d67a039ed782447cf3215f65e74e05adbee922826eafc4d75a93b98b37fa7df5a9db55351b5bcacd7b6b8c7c6a86bb8a02aa1e7ce99890b7fd8504925c4a228e1d3e6b0a1c3b14a3c22cb61a78761ac99c6d19ec5ba9c26ba273d35e698714a4a97b0a7ed301c6a452920358d66b48018e5baf595304cc0cff2468a24979521e1abee4d99b503bbb224c0589694eba7c3f05bee5dc53491fa0087af8c6ab272ec36ec0761fa7de69f8cba4cb5661f42e79a174d8559817ddf0c68628e15d1d166ed6be49c7943950478cdedc5c07894ee443f629307f7a40a8a49a042e7db875b5141086f0bb35032889ae9555112372620dcf8761bb7b6e65e3a887a832d5cd661e596f6b5b5645bb6c82ef65664e00238ab1cf4552d770da89c406b4932ce407802ce7486b12f34c98ce9025316b91d1ae3c13077e87cd91d3432ece0c3b4ce4957ea2a3d63e5e93f6c6a92d28e42c4a52810294819224cac9e2b0c21001a3ceb1497436745d2745a75ad3f58915a0fb3c0c2a01dd197786579dfcab7a2288d6cbf2a979018a50231443e77372c3d2e8a4c4344d1d38d80548376becccc4a91fcdea24181a334ae85ad84927adcdf446d8925a9e34b908cbaa93465d7f11bbcca2dcec6d6a9bcd4533f22c99e8022f8ef93a18fe9a89519ecf8459fc6f0733853d67c5a4013196094eb8c26ff93ce4c42ade8dedbd1193cdd8d287385c37e20a47fb07630dd1cc0dea43a4829e734ab60b7aa9d3509560282eae75b67665de72c2ad305641f8904b74ec400e23b351578c1931f299d5e86e6c0cca276d4c191427398746b0f7bd58786442d4987904ed8e0daa05e72a07e4723ed2371562dee352448524b23cc20bc1b61909227b90afb3ac490ae70b7fb2f82b48df6171f9fc2a2b96496e9192b96928b35ea9ce00043f5a29b48cb2197cec099b5494f6c9e0176cb52fa738f0c768d2760f7e86a6693e9e2544dd43a960ce7e63ddc05abf828ad91a4bf3fcb06e9d73fc2ec31f9f4a638613efb13a56250cc0bb66a1dd024a73fb2637138a3870c131710f663f610768007612f61483cbdff7fe2234ec8b4112d34dc5f61f503c305ca6b42aa7cee3641f991eb85c107935732ced84c01dba38885f6fd2bbe1e0d26ea04b16829100c02301796a8559c2eef8fa68739e93b82971ed35d1beb9fbf2824a78083632e36e6acf1242428e5bfa96969fda73db8180f68f6228fd3c128030ed7467a5955e8c0ebf2670fff89100c3d4146a480c4f37a087a2f7afd4c7947073780a3169cefe00642ecd5831782ccd4a6d13518d2495e46212e5881efd1195ec889b4d0ffc49800a5e2792226f18ab1eb69e140ecbfc008b4f59f3e164301b3d92780a20ca0c58f48468beb119629e9cd4685eda8dd39d4401067efd0c73cd7438a9e98d6b228b282d22d5f59487bb6d60a3d433eee597a0f3c3a0953b838ce6197967c1ae44c35a657fe9d7588a1cef2682fc0f7469b68ffb34635399f9292a8688727cd6016c48a94caa6280e58a3971713875cae6afa9a1ec637fbede9308e9c25731f63a9fbc4287c9a9ff324fa877428de1f828d0d14fe53657241b63cde3699c6c8c6df586ad1004fe607fc318732b3eaa7ad0a8851c2a41dcd96e6f1d82daa27d307d7c59a6a9d19bbaa7fd720cd6b280eb409bad0d0610e7cf3270ef0fde16117e3df396980d69c5f8e047ed5be617b52e368a0c6338f1a3982a936b348d9c47750b968a36a9c1f06c8d0e0337615677b27ac6ad56bdc57e555d58a4c2160278a95fc004c62f168fb9cf70a3f4edb2f7f9fb17901904f7994c398ccb922ba90527ade8c43af41845a7b77e34abeb909d95a32c2d14a6d7743ad91ced91bc1ccae073ad79a45c29c4f1a8fd544da6b75ea185269d4c05eaa0251a6e0cedba1ea0b46fc112b43a32118c30c2b6dba70c6a1024cf6badaad7483243ace3a5e9ef362cd8d678635a6d8ba65532dd6e44ecf650895801fe6d6a2997f81946330b2d5a5be6ceed0d38e9cd8a8dda7949bd08fc30a3e3ea88591a0715235743bc1ce157bf2181107905bc20cc8455597d5b301642cc187d92addd199c35daa78abaa9d7fa7ab2ca1fac1c1fc7dac502d2b3f4599cd7527b560dc69c41b11222ef2b3162ea993b5a3cde67092aaff0e2191dab55224b6afd20d6d5143c874b742d48ecb8c122ae2a746acd6f8d2e12c082d80b96eca4aee401f820a38e2e7f5cc7bbc81714ab4711f5b7fd702b26c25917f3c9c9dc0fa9e78f008d1356b5545a315d716601d8fb18a9043dae117c7f2370dd323c72140ae0e318bddac9bd1bf74ed17124401bbe259f3507c851769e32875aeb577e24afc45289289676c8875e6829fc04ea1f6d4ae9ce79b91362c9117b4e9a3a12b0021b0ee61b6d2dc41913d4204e2a6cee3b0479124a0eff42196e5ced3859118308c03f23ada615066246480f1ffe4252b6de82b6b6ff27aa01c0d0d0690a4b5959768b5aad340e19aa8b466ce2b4d9c7ca9094ae10608efeb2245e88929586ce2708ad9adcb49b8936e1ddb3ae1ccedf5c1c2a2613eb319e600ee024fd130519f4981b2061b301843cd034caef5407c3912938d1342e0108fa4150f5872344b61ed74a81a1a0bdbc79bf6176e015ca5b2daedadd68ae28ef31843bbdf13983398d404d9d6deeced15492f92d84ae389344d266ddf2baecc684aa8ad2ac6b4885d82e264209ad904c570c8745c9f6fcc91baaf499da9a99b0dc6da8da682de10f71fe82c957539cbe16800a04bd8786617b2d3344903399f59284a8a08b398a500710dc8523644dfe70820a4927fe2f52173fd7c32661e7bfec5c92202e90ce6494e6759c979c99cf2c266270c9557c1f0aba6674c74035281698007555372d9eade152cae282816b678729f2d6dcaf9a3f8292bf6c98bd734259aa660bce4db2b606ad3e31b1b8937499cd04915e5331fd0106e7cdb2615ce5c0384752fe52fe0e26ebf6d3e6f189293bba1827404462b8c4d212e8ab337409e797548e06c70d184578f03b98977bdefe8b29e9787fd44d811cd708ff10aa3567b235e745b0fa2a5ed8bc8ec8a9867e9efee4a1f8e7eafcffd05d8f1eddc6a4cb7cc9284d934404a0d3857faaaf01ee9eb44e5b41e79d807a9f65d2181bb8f024f0023590be08bf35585d0957d8bf007047a16729b5133fc405d21dcbe6930e19e5fdf6e1dc6839dd3893a298500e4ad18a83d6f43e74cea68ff1ead6998faf6a0722233ea02f2177d93b515f3bb127cdf389873130638c0ac073766e969a632a5ceddb710c18ed89066d8511609ba7bbb86324e429e28976b1a1f4f6026a69a3f1ac4f30db2929f54dda36752eb715dc643b5e32a278ffb1cd7642ba77c6ae217c4a2be8c6213263cf5068106fee7943824ba8fe311e89a8a3e273259b1cbf35502c07863b6f74b245cee7a84bf15b6e7bf65efa8b4f1f4d565578854cfd202319440e832152f717cf4c9fa99990aa369a2fc0c09005fbbfc6840e98744e1d4dfcbab6c36a413c11237213577c49bca466780b5c487d09c5eacb400d38cd2d93065b762fe89c9d9c538acae5adf048663dbea78cf7f810d0dc386314fe79c415b58d8c21f05b4553bfc49f911c27a9e9ade20608580b4f2ba69520531d4016d204cfe59a99c34d82d9393ebc61ef0e18ad56e3743a5f862b2970982a5f90875dba298d48ee959c2571d5dc0621fd00b5df403e6cb528219be7b8909e183941a24789547f82daeb48e33334c049ca23a9ceb2e249cd3dd1cc8e13e90d460218500db501727664014759c694ad7d98ffe2a7c92bf7aa9c0ce189bd2e42a4cf7190683f14ba46985ddccb042d67d045924a213670433d9e9840090e70be033b8ad3e566d3b9afa91335ee154254849c3677d93079089f5670b1c407e39d02e53a058191693bf1f27e77b940837474eaa785417d9285442ba01e728938d3a23b0943f84e4b2029c0275c320639632e410db24465c5dc5586e74ddc0684ad2326941257d01151472dbb6e0ce854e4f1b0c7728310a3565b87737e85a4b4e99cac96e0cafd0222581310ed3740a721a427456f49a921f7138fb4be07d75f2adc813a6a93181a3e5d5cabb29697158cad6d6a32645797d4fc9cd8dc2856ec53d27aea5c1210749b12fd5d7076cd7edb44b8cba459e1e17d6a29451544037cf62a990cb35bd6e70ebea1fb5c454751f66a82ceca78771a860ce281c22e5f1917f2910f1e00b02d1f110af41d14363031c38eb5f129381bd61e7cc52046ae2b0c96004cd6bdab8575d6bff447ee2e61262cba8a686348e54e16d62105786234167a25e9123c815320bf8aac363343db4620e1d399068349eb31b149af1439ac1a9cc3f0e6e8db102247372df351667e86fe735118c3cb20ff39dbc4fffc09505792be7d67459b37b9a064698b300f6595c8e8aaf9d8e7debf5956166923d2aaec8d1ab20ac207ce47b4924269278c7d174db8fa9a0217435782af78778994e8b411780da6ebd0c6836d699ae2d374801b3a40b0c515b71c3fbc6ad76f473be166761ce252478e46c566fde3ed15bb51bbec0db628f508b81bc54cf97878e3d661d29f4f7126b164ef1dc14ba546f2112f76e140f34c73cd0a6ee9ca3d1cd5712a7a7a4cfb4ee553611ff42b4b2b185523dff11b7a77773d83d5d89d0d461a518d6552312d406807d9d72821d7b6263d130c7058bbdeedcf8f7520416a13f03011417086b56368d6f7083758079c4bdc01ba82af6ac7e627501c3fbcbdc66d432986f5b4715cadddb50831672d87c7612d9486e9135dc8ed3ea8ad89b3ea7cf42769bbb5234bcedddc4241647827bd5041aa100ae7a0bbb0594cc058d7ea03cdce625832e3e06f5a41e65e5f585b7cc4e542cd9617ac0abf33e49af4a27407f0fca20964fe4a442285a8d5d72fef9638b6eca9d1cc6322c2300d38599010dcd1192648b759ff6fe77045056111c26c22de9ab88500716241d83ed0729c671230d461c7f2f0246ecded0bc7078daf91c9f5818f5dceabc30abb2a245c50071e058d7e521eaf0224a6b98054a0030cee412105291c1749e1a83a21cd690e07fdaa5a882aeb629a5d0eb7d7a7e9d03507b56c86d30972001003cf289f598441f8b05c3b1c6795ce0b02d7b260343265c18f9efcabf1abd8a8a3dd39c5760809e02eca3f2fec96434e3646261c4b87d9923f93198cf6e448943b86ce27c909a34d931d663cae3149064278da609d7f53da77eeb438d99616c7058fcc0e75c427aa8a47dc67374e32c06e623509f7bb859a82b3932784094b6401ee15e5b947de631e48413a3f7b31ff6ee29a50f7a60702e9e356eeb4e6e8314e344dcaf5b1cf887dba9f1b92831975e27a551df6daa69602269a33173502c12751e206e0710615820f90ab56699a38bcebd85938e0005d52f03c74de0622554e0d9e5464759c022270a061d541add244db3f08c75a9c8d32246fada43972aac80eb9b54a773c7aed40dfd15415ce98474f5dc3238e2f942ef66e0a614692773799ec154fe2be142fe3503a73fde4c284ad9ec2d58ccf2139f7648a2cced95e4aea15a62480681221523f32683937c116a2c8c4bbceaae8c48213a59bbe0b8109e935c2c5df7d5e5b7190193704c5e3452279657db772adde8e8e943409aa8ffb9d0468cc72005115890145f969a459f4392d3c657a0e5006e3fb4f5fef24e64b1ab785f21160b870c0e3df3ea4a25e97c6dd8958f09c79c8b6f26f13aa713ce3cc1b20c67e1371df8d90980fc427c094515f8366fe24b98fa669230c7e6218f42f875acaba0b8a3807475313fdf39b0c079fa5d4a1e0dc7f3692b703f468fdfedb9345f69d3a5fefb6e00f7711621b5a6186d24ff9240a286adc4a07e0026073bdf70e8fa051c988ddbe008685cad3c013d0ef00eac10389efbfa069a79970d563410840d20f013b1db10bc04e73f7b2e0024ca1451f1f4d6ddf524e99a73a6cb3aa81714da646b3d5d71c6e2509dd3be3037e13bc86f3c0b86e6c6a187d51753b478776598929b7bc6f503f482e97d20b94717deb30d6242f1acd669f400d814f8d46efc0e2217138e7651d96397e48941573bafdcd46bd49ebf3f22d37402e649df9046eec9e66d182cd58885faa155ab1fd10f813ee39ce76575482ccb2d84e75420d5e5b629935332e0d13fcaa0a3be4fac4636472549e709f88ca382af5e5c029f8537374501d17b1bc0fe3c3d698ccb4ba333fad7f012919528f594a8dbdd49239670dca94f938fa25298c78aa35a10cd67edc3ffece81a7c66b1d2c29cc7700e6d76c6b263fec352a9abf8d2ce960e675bbb36f21021f12ebb23c42c015be37c1a1b90d40757e304a01878464908ae7a3b20c9cfa1769ecf010611f525708a79a42de600296a85c46ba568a4e4affd09c30b5f9b8cbe0a8e17be98a92522943d38f54bdacc18563ecd71d77453fe7c08a273cde33a6c74432135538b9cf6c1913fcb1c67253508780e73421aeb5bd3a2acb55428a40016cbc20217032d8a87bde13192e09f9e113d5f3a3bb2f28706641e9c8434ed44c6d054dd52234b68d86c46df9c25deb313e4271607c40b35dfc82e2847e2fef50221a7fc51cc902d381f0976dbda114e5f9038115b3748daf6a69244653cf58c2920e97f748bb029a569ccca468c44f07ba674273b0d23588394a8b4bd7df059188b558f4effaf9490156d619a2b638054dc04f110d33aa945e820e505651336ce6da7579855b41c965da71af3ccaa85ec010618ca0851f0e9faeb5ed850590bc7357d60522c06d1b63bb45e605bd7acd2278ea4642d4b04703854342538f61a95902a6f7b39635b53504dec1f75efcb343b42f5edda7dfd254f70da0e64837509e5091d4a9bb00ca57a11b7d9fe0685feaaec9afd8fb39abc946a892c34cb2bba6619842173ce422e7d473164c57472929d20010d5fb39fad31424a27b009dedd5e7c106190aa9a4101396f03f6117d7828a61eb2073d176271cca5f1330602bf62dda29fe83c99ab9783a807fed170dc0b302ef2faa9c97b34c414d82fd8c9b70e86b9dfb4bfe5f10c0f38016a62840e34887e1acedb886f7706ab902fde752928df19819853cc9c2b66d7afd82131c35815a91ec09ac14682b101bb3da639d633cc905861d894304e6227c26cc36a83d904eb800d1e63387665989358916588b2c560c6f43fe3a60d166320766a1821a745faa4d605e67e5147e24eaebdd32923cb092b35a0b5950237d481706951c4a0ef88f6e8cb7566a06c5bb479b8dd311d87cd1e21f279382e5238f6fcc8be0e0ca4f068e794dbf8f6b13188ec9d131300aff00e814f7ae7b9b6ef3764606a898e58b37aee2c12b698833dbe1103e78abc29cbdada14200c559a6f5e9ebeb84774ad5d84a50f4b5ad39bc2ca1d561c3d2a7d9dec72cbbb5f15c1ff4cf6f00c3c92851b1173ce91552c170280e2bc2e241607d23801ae87151a3de5fae9ca94d5c60faaad2f67b2e5c7c0c544094b0004198d86a8405b44cc6404c800e56544573425201ce7e0c24c3a045d1a63f9dee880349bcd9353dc85df95ef71a8b54664263651a305a5a8670cb080e93b51c669c37ee5c4dd74f7ed95d728e3df615e6055d1fa631ef92e19e30dcaafe89422c7123386e99edb173708aba2dc1fc1491f3b9175bbeaf7c4a6a972951c3bb38002ddede0afe1eb35ec812518cc4aaf1b13ee8377607ce2ecadd14d2991a93a1634c47c44cf87f6122e860589c6529ee65397725405d010852acf52209bfb3b9fb0d16bcf51d95414cfb4bdbdbbb228af72e61ab4b0c96496a8446221afb809365035e19a577beb267bc60f6635678356e25cab4aec4cc03175925b691ecfc7b8bd198a31a5cdd9d699f591905b601f149935c538cf4659479eac8924d9f056a1025b90364202cda6977de216a77614f05f94755044d3107bb99cd89d5206f5c6a6237a73203832bd22e52dd33198807c69eacd39ab72cf96f7aa0493ecb9843d9b1038c0d0aba8441bee85992d06e1d261ce59e0fe47c98b0f127ee9dfb14a09560ce5be6ccb6700870ff2ef8886268d34982117aa4902764fa5af4686481e09896917bc8fdcd468bd13cf622bceb972096f2d51612d59db86033a957d5808e540b7217bb3dc448a5497427955eced417da5f7e435e4f71edd46707d3fd17466c8613e4952fd34eddd84c67ffe94351a2978a4b99e03bb97326f4a409a93968f3a49c49a9042d62db60a7b7cd86d42b2f08fea9c7073a0c4ffefcacd7a05cf3e0e7d6841ab9b7c32559b8262d39f3cb6de38a328d202b2468e6358a4594dc83d36ac3a2e819bb182af0db45c9f4f98cb6ddc34d1c10d723386c1193d2da6c5416963626ce324972f45d018d92697417b360b4664f5bf023e7004b10b3730eeb4d0013cc3333cc3333c1a7cc15910355a23dbacf94b824c69cbf27c62114ed22f28294999644aa2811f00f63d0221fea989087a0f7d0beb0b840b9ae036ad4c27b392ad6bed4cf0b2ddcf837671a5b39c9364430561d8480118609861a6b2430726e00b1f98e0a474b15567599ac86df9b8041fa2bda4963596e0c5b47b42db675914b72bc1d9b8aefc961bda750ba204ab4cbeb8999ab9ac3a0b728c61038c8f49b02f9d6a3057b5a5f43b50ccfe865a3a7c4882cd2865ce185d9bfae84f52ca8e1c2650f98804a7f32ba5494dcba132cb0724d857af3bbfe46a0f4abc3b7c3c8293f742ebd6a89a546a47f02b3db7d0f2efa589d7083ee711b57fe9c5284c6304ef39a7d4927e0d523ba3554cfe9789123e1671cba9f429f93945b03aa37ef1e57698e2f091085e945fbe193a88e0d6a3bf27fd82978bccc721d82cca9cb39ef057172243f027d4e5297d6f388a498e9464821c639c1832301100203e0ac1cb59aba82ad1f8a17442b05ad6d76db2468b12fec72038cdc9759645eb38f021084ecb71a36b39cbf84184816045a631d5e39de12f0b083ebbd34d6749caaf171da0b80e5044505272b20345a54b4a566e7cfc818deea6aa9def596bd449322363a58c9494120840111f7ee065fdfac25fa9d2f2acd4075e3d4be7f2ca8c19d2d6c1680b1f7c60b50acfddac4d4b953a43f48f3d706eeffe62f4ed6f5d4f927d9ab9f5a1075eac8f326a7174304dea3cf062b9205ac8133277a8375427e2030f9ca6cba4296378ba51f7f071074ee5bddeacb54c1b13d981ede89e1f8367fa8b4227c930c718c910f151075eceb577665aeead311c7cd0818debe29bda94318e6a7dcc81d1f2662c2d6b5c29422907c6543d47f52aa3c7288f039bfae9a956f3695da99364267e2365b9410e943252529409c2547cc081f70d42b5924aafe61c1c010b6ce8e1e30dbc1a6daa3b081d3dd9981f6ee005cd59dfab762dae37f86803abab3377f8cb546719292927371ce52e0d1f6c60cd4db4544f26b50f1a1f6b6085dd8a521d744e99bf9364a906c6646b73ffd6e2e8320d9c0c3a66d5f5e248efac9364e8030d8cc6d213ae329feae018609cec4081c1ca8d1b20b001860d1b60d800c3c631f671065e7639b8fee052af2ef32419173eccc0eba4b41c6588ced27d94815152f9b9485dbb39a597850f32f0bdc95b7aa9ccc57d19032f426a90671acc4fe629860c4c5cf021063ee6578ff52f66312d7a92aca464e59ce0230c8c8f287f4f52b9686d3ec0c06d67dda05fbdef5df3054ee820ba6c8554a2f6f9f002a33a77f505f7b6914935f8e802ab32731e59639b232217581df77d852e13eede6f817dad5798fefcf3575b0b6c2aa9ffa5cfcdf225a118288d5651e97c959405c747167859576d949ffda2fa8e055eabd2ae25b5597c194b57e093dd8bf5715db42d2d2bf0a3c245edcac58e2dd72a303278cc59fd07a9b5eb830afc86da2c4b7daab3384a480c1998cce0630a7cce626acf9a2fc88dad31c6982de2630df6b40cfa5679ea430a8c8d2c7d4164a67a29458117b46af9429f0651a6f401054674b81275ebd25d684fe0a4ab96528896a7edb23e9cc0aeebcf2964d7caac5627c9ee6c90418256d9f1d10476b3e5a4aa852ced9fe524d9199fc33e98c0ea696e9dd1346b77f36309bcd42cb56ba9e58da7f9a1045606194d061db54c3e92c0491b0f1763a70d3a5f1b6490a0a464a58c949493277c20812d6dabc9cdd5ba8cf711780d369e748e52c816e6871138d3527a9aab4bbae45f045efa90aed406ad5e54bd0a1f44e065289df4ade97d509d958f21b04167f9a6b4dc84c0bf8b6efed3621f41e03cf7fc7316f63d3aeb0308fc08ffacea55b8a6674a4ac4f0a10623c293667f4ff78213e55afabe73bed1dbb5c18317acd0f1e5bda855ba56d72e182d4ba559b554aed4a7c030b13278e882d78f2ab3d3576b569d5cf02da66bf174a4f0b60d176c6ada4c17f37af8676ec19f7aa9eb5f4c15172537810d3054f0e0610b5e4a57225c55ef3dd7b5603c879dfccdd7cc59a5057bb6b234e697446b179d052fb6b6a9091dcb05f14e16ac52aa34d8c997bb58b04a54c6dacc315f6be91d2cd8d4d9c5f8f26dcb77fe79c1e3158c944afeead49cc4a4e6ce15bc745f2175fc846affef5ac1bfa06cdc34a3b8cbe277ace0a5b0974fcacfad82ad9722b52c07a141c6a88235cd4179a82c2d5d2e53c1482d4b7b0e9a65765422a282d1e65a5e97a56941bf86780ade74c894e31fb59c3e341ea6606434a543c445f4058f527052cb3c75599674da8c23928235d7ab94f49843a9f3208ee27cf59216d456bfa2e0955e150fa2692858d37af73444d5a77241a060b47d6ccfc275b4cb297a7c827f97a383527a237a82133ff70ef275d34eef0427221accb348115d174e307aebe2f7418bdf426713fcc6740f2d6b46136c27ef249a21a3668fcec904efe2282dfc75e7d899c204e37ff2ce4c78cadee025d82c279db5f4ca5fec96846809debc63f6e9777df44c2578ad35e86a51778beb983c28c1bb2cbb98efc5b357f55ac36312ac94374a0bad5cf6b83234828724585fcda576f3c612614682d39973678bfe3b72b4182578408297efaa3eb775d62b3b28783c8253a55e5ea95eaf8c4194040f47b01f3c9a6bb59d3af8c9a311fc07132d473775ddcecee0c108be36aa6ca5a965d07270117cd0721475ba5e8fd0ef3cc143118cd2622e47f3cf72e89744b0a9a5cd9d6446993e4328292f402686c303116c0bd5e95afc0f0fc1caf6d3a6763d43f05a3a9d594309cfd6973b781482f10f9ab46c1b73bd6921049f2ee8e43a87102a473808368b71e346ed04c147a9be2e4fbacba27ab135780482f1349e955e51faa268e7e0010856941e9d055b595af5a6c22525adf2281e7fe0ebc595c2755a136efb81917bdb4a43ef6939675df0e803afe6e297ea9099d328f9c0f86f7ed69e5f556b760ffc79eec910aa5c9f6cd103af377d856d5a7b596bf2c07976a9a5be363c306a5d54959f05951fbc8341fdbdbd989b1d781bfd7daf4ae7a85099e05107ce056fd1558d6755fa5b82071dd88f9a2b33ca8cb1c56d0e7c76b832d71b3b8e149203dbe993bb283d8c03e7f28bdda965ad6b74d4113ce0c0ab3e7d9f65feb42ba4c7e30dbcd0f55a9e7a0d757043f070031b45896a4177ba868adac0e9129a7348d5d9c0bda471859f69f184f0ac8175d72b639650d1a76b35b05ad68c79b59cde5e0e7aa481cd3d29947e5739ae231a38754ad428fda029789c813fa9ae2f0bd9e28f7031039f1d44ba9c84bbe99c2f032b6fb45c705d9181915a1e5ab51cd3f49f63e06bcb7547674162e0d536cffd56b701868d1540788481137a74b297f91b559ec0c027cdb270ddd99566907f81d1c2be64909a469a8a54f0f002df510b9edee2698e51ef02db4abbf851ee4935aae2022f7ebb79f5b627cddb16f8ed16c7838c7dea9d24070f2db05ad6628eb6bad4be8b9a207864819784d249a5e624f23f080b8c962fc8ac2e352be19e2b70aaa7b3d279d5b3cbb402db1be548535fabc06956e9ff674afd7347054e67b1fbc5ac25ff251921784c8151e6499310ae4147cfc282c71aac165d559ac876598a3601c1430a7cd2fed95c7a0c5d5f14d817940c336f515d561e283022c27db5a8bb1c470686c911c2e309fcbbded3ecd9a9256f27f072d82b97baaed7c426b0ad7632b496b5a09a2526f051d9e9fb30a9e95c24068f25702b3fd99fd04f5b6a25b0f17c47c79665fc3dedd1c12309ac50a3b15473c77f59460d0f24702f086d695a4b9da9e5c1e071045e16d35d1c9de56971311b648461d0e0610436c735796fda59f87687563c8ac0e95c4a4bd5ba5bf6fbabe041044e348b2f6e6ebdba052d59f018021f55dca3523a768c997a0881cfcdb25321db94cc790481d5ffd15bc6184d355c7ee0010456a56b8f8e969e5de83cd4e085d4b9b77a1a840e2f0809e805ab5dd2195d4c1d8d62f3821111bfed9242280a09d805aff3764bbbaaf5e9a54d75c16739cbe052689683c717096c8061630460d81081e682737da73e499daac36f5cf02dcb18f79478cadc2e778704dc824f225b5099b1b705abbc656ab9fca705b525a016acf6bc9dd36b7d3135b401c61d2201b460b3fc9d931ca53ec7471db3e0364b0bca847469a23c59f0d2457dde5f7e2c58d9d9d3a6ba2435e8cf1286d0a4c50d519f4670f662cb185cb6ace4a63705218ce04dff2bd1ada432972e5c04bfe99fb42c8f4b19b4a88483104570fe2fc66c4a7ab69f9a501092083ecb12ef14720f41049feee55f8db1360bc2c50c8d430ec187d8ba8e56bac3e4b7e36fa036c820818d475121034788213811425d9f0b5942cbb9722b042fbecb6e15f33dd11f633b4208c1893e2984c756a55cd61142c820d893eff52a3f75f7ae6c081104675aa7e597fc3b46fd4e92a1ad9040705a52da4f576779aee56a47080104274bb71c757fda8716ff03af3bb6b9cc7c1ebb34674108f10377abed3579fc339989e7e8e5554c6ed15c481f1811524493d098b32c274d42f8c068e9a7cee49dba293c493d08d903fff9252f1d74c3bc4df6217a604dcbbbe3482dbf62ee5176a02421240f9cd0d24d37fb8a6731f38e073e9a7c61bba25968fa310c2177e0368792ab7e53069942315126a792b2a3056fa26325043bd0e092921d68bc1542ecc0b6a0e4770b1763bd56aa032f47a5ee2b42798c1242e8c0bdd2fcd0427bb4e4ef1c1891c9c5131d5246fd9224089103efd175e997e9751c5fc58155526eaf961e5cdafca21b84c081d32a342619577396d5f8065eb335cbf1059de3b86f087103bf26eeae253b95103da40dacf697397496b4eef64f8e33c6b811c2064e93ca1852e934640daccc392afd5a94eeb7cc122342d4c0099d5a3aa1ab39c2f427c95410868d3684a4813f2dec4ec54474baa404cd10820636691773d2abdb74502e2167e0734eedfcd2c95129fa1033b09ba54bae1dd26d5f1b5206c6a3d04aae6b0e5a8a4b0819380fcdded267fc6dc19463e06599ec4c6a6b634421440c6c7814712dc91b6d6f1858d932546f8e2564262a292667b44ada0942c0c07ee96e793af5d35b3229215fe04508a177637dd607215ee084693bd79dcf358b2d3d6382902eb0a9c5965f84942a4f996e788e2ec1182c2809e1026f5a7c59ba8c2efda87892ec7780b2621bb205e36acc92e897836008d1022f9bee119a258fab859f05f6b34ffc3f699921a4586077a5dc973eb82c6de715186f2d9fd49feab5163756e05b2aff903a8bf7d26609a902fbf173e9ff298ddefa102ab0e9648c2ba3d24f81535f2f376dd3d19ab306ffa55d8e7491141817f44ad5975b4d741605464743a8b5db57a32e2150e0a496cbe94c4cd4e51df2043e77b5a465943ae6eb98102730a63999d27cd15d6526a4097c4ee3319752f3cffb843081f5f4fc1d3a0769a35a4b60ecf34677faceefd10a51021f64dccd13dbd1db584812f80f91f9597452da5d4c08121861a32f3b9e8b9d7492072147604c488d5a5c2793172146e05c6a796cbd434beb31252525480f01901052045e837097a347b9db0a4f564a4a56fe06296b841081d749adcc4a68ab37e1870c8171df72d7bf39949b9eb712220476b54b2373d66aed525e0e4282c0af877695d935d528971020b0ee2d35fcb4f849b29323440dce3ba308bdd95fa88ee37798a0a464042cb051520206905ef0392ee63493ab438ae377a0989cd12a682d00e105a7596906f5ac2775f6bf7276c18b6c59cc5950591836c808e38c66013a2d01882ef872d7f1655976b946f52b7de30567ff86522839100e4072c126d150ee5a4cff18a327c94c3e478a1d0892a91832303901082ef828b524e37db6db1b794a0ebb05af1aa5bbee7c79752791310214d800c34609406cc1a8dd14575799dcf6ad059b844e42293b4c6000420bd6dc5bfe6f90ed2e894e92ada9a033360bb66588d4da62723987ea24598ebea1a30420b2e05d7649cdb3649ed5b920b160cbf48eab2d97a9e59d051058b019c24e4fe816c82bd8f2a4f3cbeddb966a82b8827df37c2e6f9449089d0904482b1829b4988489085fad5b8a00c20aeedc5f16d392091995d22a38cdb2bfc67454f3e9270944152220a97800082a6c809c020320a63020a5b871a3c120c5282e00220a5e4b51a1f44a17fff40f45054040c14b755b2384ccb2e5b13fc1eb95224c4afdf184490e4c2600d2890880704202209be0d5c52434b6a0fdb5189ae458263856fa0c93dfd12a3b561035b192c6a380022099a0000826d87dcd5aa49b99a697f91c280a47ca72862e618201104b54820fd342fa66b85c953a20946035987c695db56779e593e0c75c9641a792a6f17d494c0024120f008104a3aaa1640a9df4be500204c8234c2000e208078034829732eb4cad5c50a1c2250d29803082b373293fe650832c821f5b293fc8f4ed822a4f928128827d9983b8ac3537089044f02b7ffd5e5afdb7a93f496610221a022087e03c47a499d413a159e6d80b4ca08262724c07a88262a263e58018c2e40b9042b0c105b7cfd8b5265bf224d98d1b6d924ec73b1a20846000c820d855f6ba3b67700f2082605de8acedcdc9b47d4d079040f07216b7a595e75a72b9650710402800e40f20207e30a900481f1600c207141d2068153340c000903d305a9870f1544bc485aa0756a8973b6b175ff0953a397a59c903e3bd5a67df77579a2a1ef8deddfc32b38be37abb03a783b6a04a8b769b74d00eacaa972f7f740bb2745307d65f4e6adbafe5286a9e244b3140e8c0a6d4ec83cc81f7f596a3d9c99367cb81d339836dca975433e84d19207160b4e49e1edd0307de4fcbeae975c61e11be8151da827aff13ea37b56ee03b6ad5fd93b7a6a50669031b958caae4af78144a0ac206feb3482195eaada4c46465e555501a9a2b2b08b2064ef9689df3b96dd49ce99d0840d4c06ddaee96b43769e0b4bbada87f4b264fbda0dc5066a800040dec8b3afd48a9f5af960f809c815526fb4db75c372d3c666083d2d6a33ef6e748175f005206564f66ade5a0490751aa3b1780908111f98246f72cede4ed50691d07ad31b049282935a5eb2062e083ec6fa1b3ba3cca460f12065e76f1d4cbab9b2ec3e50639526e808081ad532eea8c3ab34cd14f92a1f12705205f60954c3d295b7cb14be7e04059debdc06a8daec1948b2fd3b8aca0e8203700d2057644e56b7acdebea430c03840b6c4be9f7239392e6eae52459198dc3d81658fddbd75a96544b6759c6f81c639001a205beb3e0c2b75dc65753b3c06fd6a2718374b1c028b5a994dad8720b99bf0227b57ecedc2c35a84f4f92fd590ebe05ab2056e0e39f1472835e55ad671578a953fdeee7a7ddaca1022b5dd699459b7fef8b9a022f7d543ddd1da164b83409206bf02eaf9d8c6d7b9a562d054eb8ea95e9e29e9673688649ee3003878d11b0c0064814585d2fdf7e4cd575211a804081114277697fa55c0e1f419ec089cba875694bbd2f99d0728038817db3df16f47bc9d4e22abfa2d22a387bbf10803481ddffb831af4cd2c8d1680c1026307aaa93b8e654ead474e6204be0ee2519844bf6dad2a527204ae04b9eaa119ec54092c06d8ac8ac5b274f9299a081b2ce3a0082046e54bd93962507bf72045668b8b8f175e97e8f1d046204f65468693a991a2d45e724798e4f0c52043eabd4514729358472bd1944605ff36b214c6b59d0ca73831c982043e044b6dcee59cb0a81d77266218450aa554c27087c66dd2e772a2d20f0a1a5fb3121b3ef6635881abc4ca745e5e90f3a85965eb02f5a26759e232ff82cdebbd0ea64bb60bd566b4396decffea20b5ef76a2d6452a5ddbdca05e32f2617cd3437b966df82929277fbc0055f1b2e46735f7f97ba91b298e80a3e6ec1ea9751a8539975d2ab99a4bd5f8a210393f4610b6ebc764d3486e693ca5f51691d6b830c12f4b3a0a4a416ac76dd310b7a574bc7d14932347a478e34565026faa085b2ecbfb5904ae724198a4919ff3a120b4460f77e2af898059b0571a15e4aad85cba5b1ec053796f78f237cc8824d2363d2d532dbe69c89052f44dfb32c5acb7cc042d34af88d5a6e6c2dfbb4ec5a07a18f57a4b492e5c31528ada43f5ac1c764a3a544bf74ea69c11d567066bae5983677a534b60afeb5987569bdbbd668aa82d12d73f6e8ee53a2b754f052ed6dbf286f4bc74605a7f3b7e93cd527b2c5167c9c82d1747f793d9b67edb19212cd15650a3eb3d4b9b418b3a0f5a9313e4ac1a76a8fab223794eb9a2b2b26293bf234575ab028f82005fb9af3b7b3ccee90e68afa1805a3a3d61c3db3adb9b2a21af810059f34cb55a1ee756edb829212955f29297957f98f50f0594aa1b47442cb5a108fbf8e5e56de64a9a9fc0a1a50f0b7e6fa4979dbd7979fe074a3dca4a97a4f70b6b9a6f9772ed7da094e9e797be72c7bd29288136c5add51e596be09467b0679f77dbc6e59293d4f777151080edcc7ee902eab96b494396fe05f6e4947a5ed94d6ae7103ff2d3c93cb5aebfe0edbc097788e9f474847d8c0caacaa43d4e84f32ca8cac8171a5dea30eada994fc8ca8814da1ab6fdb4aefeadc481a38b5a3a6b35c772c5d8ea0813317caa38b59ad4ee58f9c81177b73410ba9471c3103ab52bdac5ed0d64819185d2943a86d5973dae4f260840c9ceaf2b5d5a055be6db23a063e9e5497e5f84aa11b1303ab5edb8a1ca1944e42280c6cbfda4eaefa2b2eaad28181376d975d76965b9bcebec027a566c2858e5199fe47bcc0bd243747d92a44a5cc47bac0698d2a838a6614cd4a2e70a6ea848929d362d051b7c04ad15195ccb252b61f8446b4c067cb99eb64ceb959ca029fcd4597b5de78be5773308205bed5b9ced3265ba9d247aec0694e9be4deab46acc09799da1cd3659d370847aac098d4ba596cf96529b713c20815d82cb949780b3228fff60c235360f5dd6bfc2c8bd97b700d4eb5329944bf7d7f909e388c48817597773fa3b62866a384361205fe858c77324d6d26991128f0e79af35b78697bd08c3c819746cabb7bd9ddc25cca187102bf2fd5dd88f2e077bb19234de05e5ed7eba693e917cd0813b8d57a5f6a3c741693ba32b204be6559e7a08536d759fa72c068185102e7a6dab2a85cfe17549bcae88741f29124309ecb33b7679d4c99c63be5064ac10812f8729d3bbdcba59ae3a6c30c933252526ea8adc006186b23476093270f5acbe7ff19422346605433dbaa9623376bfd4811d8ce2eba983355b4410609d27814e81821022f5a34a993a83a043e6b1b73f5927ad762a9831121f0f1e3d8b8e0ea5acb2f41e0bf655a5332c776ccc7f1e98c1120b0ee5188a88a964495d60c236af01f75eecfcfdc9fb516915eb0fad495a98c72d44e080d115eb05a996795ad6ed50795d176c1bd963b95bee4ad88e882d3606ebb2e3b4b9fe59c0000412417ec676d41a933d79a85d44932e5262b6d6c0504211081ffd23a5a90c6a3c00722b860a4678c5b5ad6ee4ad722b760a3de1cfd75707d1de6493251498984882df8da6dc1b73eb83aa1b42609915a30263f74b9ec2e84c7d288d0825b2fd7b552b72c3dc64e92cd82d7ee597273bb0ea1b37ce53d25c759424416acd0598ea26b5f291b993146091e45850c4088c482f1e8b2958b3afd74765a1081052fc3e5cf9d2685105ebe82174adee95c2332aa96ba829372b51c63adecdd16b682512665fdbfc6ecea7e56b099ff9d35fc55bcb555b0bb2973525a965c4f7eaa60f466e936678a0e0d2ea9e04e7ad041a84a4ad2f820820afe3ebaa8750b5f4ffa5370a675c6d014d114bc34a569d5be5bd2fc2a05a356b8bde44a470a56fdcb63a23a9fb770146cee68ca3ceecb56261205afb5a6636a35fb1ccd50b02ed3293bf9c14ec81528b8f756ca0513e159ff27f2093eae6b144fa7338ae878827ba9d56e92418b4a7527f818659674efaab99d8813ac72e91e6f65b809b646bbe89a522b71595644139c96ee1d95d4b255869b648451525252b20202914cb019b4e39a965c30c1ed885ca56551b8fdc8d68e17229760958b6efa64eee8dba513818825389783dc7349cb5909991983482538f55a96b5d272bbd64619084428c148ff0ee5ae99776c04e35154c83078024082c824f898e528fda58f6a65266507da7b8a18474524c14b23f7e556f7a9228322c1291531edd6abe5ee28020956e64da349a6896c45cd2358d91a6346db7cf7a24e8e33525820e208466e4c2fe779f76d944943a411ac470d95a9a56c9941cba1408411dcc9e8e931baa435e58bd98a2c8277d329d47bd9a80ffd249989e7e81b7da8868822d8ceccf2c89825995e4433249208366feb4ba1e7df651a292a3b56de1322582d8469599fc8ce41a827c9cca02072085e68fe671da3de2ca3d639113104fbab74a6d7a75eb215d1405985e06f7532ed9e5284606fb32c28293be67d29640e182360810d48880c82552665bf14b105c14bf245a163521409041f5ffb67bd19771140b05a2c2ffdb965565ad4aaa4989c1288fc8197838e5ade9223836eaf66fc8e34427043c40fac8d16858c99b3c47d24d20756456aa9ddbda1398bc010e1036faea7eab5e8e9525b640f6c7ef9353766d9dfeee780881e785f1dd3bfeade60b27b9563649cd12cb03ba355c210c9039bdc6b5fd4f82d5a68272b5d028403113cf019736ba5a5b44dadd228ae41e40eac0829437f4c4ae8b4c21b2926c90ebc2c7db7ef55646af6769881e3062275e0464bb6db2ed49dc8f324d9e210a1032fb7efa930ad2aec95a3554c6c0e8c10cad54dca17d3537923109103e3a173fad00ea165d7e5382325310e7c77478d71f74fcbd38271b2d225d0d3d1384e2002074e3fa4f294da5779cb02069137b0ee1fa3268f1a34c44531b13144dcc0be6e5954e749ab887a120c9136f09da55f6be9f3780a9b0d6c94b72fbbdec870cdaf81f30cd36542a4349d5303aff531bbef979605ffa48197dffe45cba774489784065e7834cfeda3be94e8cfc0af867892723d3fabdb64cdc0794af5ddc97d936b4d186b9e2052065e16fdb9651fed7b51c9980819b82dd5265f54ca45d182e9296298639131705a481995f0cefa950c5225220656efe3e9966a1d94dcc238b624100903efa2dea5532f26b5241130f0a290aa65d331ca2c63e6e4e045b0fc0becde8c1cbc9b2caf835581c81738d952fdb9dc207aa5d40bbcbbdc4c6ff20557f5d20576b4eacb41b56ca225e3027fbe22858dfc34eaa2c816f82cb3a8abf43c5b8592d1021b45a7461da931559e59e0c5e4df8beb1c529f100b8cba1a3f2d2e2d720576bb5d16d4c6139a65cb0aaca7667539ba73d3738fa24246182255e0a4f9b7cc0f1e15d8d6a8c5248316d35b0a9da4a4bf03e5884c814fdafe258da55a3a3d8aca0e9301913578a5a369d469f48d5929703a68a98578d778ae1d05de4c6b317e8e21b424f42250e08374517b7d546b883c815b5b21f65aceac31a7292b39521633742b860c4c4e20e2047e5dde154247cb72e9a709bc5cd283feac56b5bc322630f649d53668b804be5c68d1e57e54abaa5102ebaf4ac9e0b2ecb29655912470a31eb4b4cfa5f7462582043e065ff58d2245b534123902afe59b256f71f42246e065ad37d536c7a839f422f082aaf08fbaaf3963274204ce83283fad9d615ad04486c08bf1d3bb74dadf7fb588107871fd35b78d5edf7d6d201204467ac62c2b0fcf104480c07b34cff4e8deba6447041135389932edcdb6d387bc437ac1c70fc2f5c8d287f082d741672d9aa7dc927a2442c82e7893aa5c14fe1e436774c1773673f19c21b45befcf0523947996859e0897366a84e082113ab6ec7bb7d5a2105ab9059f75ddc8af935a767b05e5c6ef4039b1059fb38ad232d7590bceeb57af87d2795d1665468a89f7abd082b16ff972bcd3a2b4201e84cc8231a574ce2854713b59703f2ea59716a6fd2eca19272416ac965dda6f6e397366677c8e378405b71a8390dd22ec4cf6afe03bbed6cd5a0ca693d67105af32a71731912942bd92b582776d6a84cb372e6a51a12784b082cfe972b99cc5356fe1626e158c48e57aea5969d1f347159cacdb2c5ccb7d2ab891d9b1655b7b312f054d0841052fea63942f7e927a3216720a46482dfef62684bee43921c414ac9626b4ac6932e94625c5d89582f7e449bbda92d2852691828dae3a77db8bd672892769474a8a0a164246c14b9ee926a47e8bf56dae183230b91051f05a145accb275ebedee6f2e65e530c18211120a5e36a1ed058fea73091b149c9e4cd7a853e7e859ec137c7796f00ebab476f4049b3beb106f9d99caed04ef25c75edae82783aa39c19e6a998bfe1ba366dd2638a9c24e666126846a4b13ac967332d192a995a6d7410a8e5731c943b6038d471984648211c2b3fa1cd5ee5b68414cf0636ba6d6a3468dc113720976a4b892daffb4d096156209fe657e47195b7d922cc719ad63c5ac12ace6a445f3a8934691a79364376ea09441093e68063d1c4226c1a95a8d6a5f377596ddbb25844882fd20e52bada7e3328a569ba099b13d844482510d3ee251bda81d5b35844082ff987529e5a6f165e4408fe06469174d57f906d33a8ee095703f17b0cbc05906f0cc4d60b91a647f6a81094460d9b162864a01029086ca00480056547e31c353547424a0032b283a1a2400670040003270463c0080951555420001f48ef6920204a077b4a7a8941c00000368400254be8ca577ac98988c0020000a38800e1c5b6083f060fb5a1c757ab34e92e9c0b168815be1e9f9375b1e9362160ef00516f88cb6f1f35f8e9ea4128ec791d017574843c762056e94cbbaf7d4b8669f27c9d2d0b1e0781c08c7e3c82faa80283b3c0507151065870e50dc0c1393047c31053ef8fec7ef189e243d33e30cc7ab98e800c54d7c791d2b6b3b72a0e04a0e941d3750be58034d10f08514106587cac9ca0d1393047c110544d971e364a54d4c12f0051476fc0a8ec761802f9ec0669ede5e6d5aa8fefb0b27f02f5b16bfd7558baeea5dd19162628c035f348117e48b791f954be1a6d5c19f1b8d822325471a375254f03f02bd95117cc104ee733a99f4e60ba55cbf04ee339b4c3a474c6707298153bb6974fc2c8bdde14a0227b4996dd64d6a842abf40022f7314fa9386fc929dffe2089c52a995dd98d01746e07452952ee67621b5ee22f01df7848b3a7ad2b1435f1021a94abe204b8e76bacec9fe6208acb7e898dab5caa0a215022b7cd5aa3719b390990a029f2ee966b97c73f63c0202f7a2fcf3cbede6bfae2fd4605bfb57b6bc318a5052bde08532a1b2b4ec4ae76be1052f5a4b6ad7ab233b47bbe03e74daeb8eaa3ba95d17bc0e7eba330ab5a656940b76b4e8a6652f8b3a2a71c1be98ca252935c9979fbe05db2e7e7ce9fc6cf34d5b70eaa35797c6fb975d550bced568cd204bf6ad56d202a95909affafab957b4ceda3c8b6416ec7f7e905906dd2cfa2291052bd7c55cc7a094f6af28166c49ed5c8f755a7aa13c49564693010bd65ec811dd42a98fa393bc826ff9b316cdb2eb8cc4157cf41757ffebf0d25989a415eceb1232e596e8bcaf3409125630da32e9a4346bedf1b555b0295b9b8f1ef92fb78e2a78b3cdd23f75cca95af09c5470dfb9d34bd9edb7793f24a860f4efe7ef2cb34ec10995652f0719cb955c99821765e999bd9d667459a5e07b547bbf8eda5222450a4626fd1b5cc385eee8a3e0056d49c8dfd244c1485b9deb4dc64c9fdf50f0492bcddd7a9e6571a5a0e075ea9750a7356a49d127782dd5ee51bbc6e8ad95238d154fa4ee75b3d00e529d60d347914a6f6798e96c0a249ce0bcdb34c64dbdad8d2228906c82f10e1542eb4adb8ca2144834c1994ce97a9fd3cb942e138c7e761937a3fee02e6282cfa384ee952b3b5bbbc881e4128cf616b5aad34d9d5c95c412ec8b7f7fb2b464ea5e84580946b9acb3fc3e1725f8a4dea6646649c449b031890e77417b889260a5cbb156be89aa760d31128c162e4b1f5f9992f51d2224f8ec3268377d2af5eadc23f8d55a4797453bd362143a826fedbf25bf3bc446f05e3287bddbcba459102223f87ab973163c467ba5eb28902c8297429d543accf45fa314c14a2dd929d78fa6fd454912c127eda1db3a6bd2fabd6302092238e9b229dd4278f61fad2e901c82ff1aa1e5acdb62ab54278921d8205447371dcf2ed42f042fb8f298daca734742085ef75bbdd4eda8e19d154806c1b6fc183c4bfa4f09db90088215ba93dea4dd2509042f9a36cad190f93184f7031240b0771e42e69c5d66162a2048fec0c6a0c27567cef6fb6b22f103afdaf5db673a53ef5bd720e903235b536d9a67befc9a840f8cafbd5077d16d9ea7044193ec815d91295f14e12dfa2e891e18994ca44e9d41454ba63cb05268f9c54f13f235fe78e075d9bad8e2f96e643c478aca32496290dc81fde4b2e538a645edc0b8d07773f30d5ad6fa5407c6440ba62eebd5aecf111d38fdff514d789773e0337b5489b071d9a4eac881d5b2f075176a435598481207b6348bd1d3d607e1c0bb641f42bfa7eb175a6fe0e576cf5a48b575ef326e604b698ba1a5ccf592c81c1a90b4818f99c6d427992b546a900d8cf6aacc50f92ed76b0ed7c027d5318b50ded156fe246a6035737671947e19ff83276989409206f6bd379dc67639e8f8224103634294beecf27850a2223903a3c26b84c6cc3a86694f92ada0a451018919d81bf3d74d327d2865e6202903e7be1b3c9e4ca3a32e123230ee5198a7b9cb423206b6ce5c68d6b9eb65374f0c6cccbb41b998a1a133e748c2c0676f9b6db6d1e5e289040cdcbbf0d61aa3f4cfe199e0b840f2054637e7eebb7669e93d3c122ff01b33ea156a5a27c94c50182008c118619000254917389945e92fbdb36b2c9d840bbc989ab5bfe620922df041988efca095da6cfb8c14304a4ace48515121d102ab51b53017a3970965936481117ab3a8c5f4312458603c543b97d42eb63a13c91518d7ddd9b43617345c5e870e33acc0badeeca4856d8eba9dca9f9172e3d44052057eb3d7cfbcfb75e8f246935081974747f52e0b19a23bc6039229b03742eddcb4697974bf063f2ed9feade78ff682d806122930a65bf014aa2d48f1a889ed80240afc66d09e95549964ea8a040a9c96a3f5b620c75df0903c814d420a59673bdea9c556489cc0c85aa134cc43e714cf49b2004913588f2d32aed4b2283db99030818f194c89aabd0c5ea7dcc0c4244b60fded6d55a615427698021225f0f7b974abbfa71432ea184912d86477af65e5aa69ff41290309bca83fad3a15a27e63b772043e46a5f5e8332132b433029bdabcdd93672c256a17901481132d0a29da2e75c99813031222f0a984729da3b75afe9621b0b12597a3e868aeff1f1221f0fa84b02d35adb49dac062441e0755d939ed424bb17900081d5275d99cbff252383440db6fb75ffc6d36ab47c5ae905a3ad95ddaad2eca27479c18b51ae69d3a268179c8eebfaca452d6d165a5d70db6d9fb4ea970b763d876652516a5298b8e065fe8e8a7790fe2b8fdc82935a33d58b35da82131199fd835acd0523b5e05de71c65ecef17b26e5a30deeb234c53ed7dd642c62cb8cd27f74ce3b8a0c5f41823b2e064cc49df471d548bf993241889856596c08233ad2e5467fde9362bad2c137425187905abb524854a5d7fc415dc86d4752eebacd19516b58213a5df65d9e5a35f23ace0b4a5cb276ea79fc57215ba185dd0bec2a5aae07b579454dacc5ef79b4652c1fbef772add4dd39e194105ab577688faacb55eb9f78a2f9f3f183905dfef39964bd35a363ba1f125282941e34f464cc1462db7dc39a6d6482d5263a414dc69f318d328ed5e72c31152f03aa6af10fe7214baa54f52c9c828180ffabebaf9b39c5c296fa2926223a26043bd750ee6ff493234fe44652414ece7285b699d5b32295a188c808215edf5afa596394bd12758f9a2502e86929983fd239ee0b58f76414bdf419a52473ac1dde773dd99e5e818db114eb0ebe1f945a5fd7f32cf91b27282914d30a2b4a60ddd11917d8f6882f5a842947816752651a69309c625d3ba5dd00462902185114cb0264bd7adb96af6a419b9049fa5ce5f72e59a48d91ab104a74be8d041ff4b2ef33e49962ac1f7ad50a2df958e9e2d4ab01ff7b5362f175bea5b979149706a946b0da15cd4bfae931dad829292931d3d22093e7892657f72b5fe1b8d4482f36e41a5acbf53a64d941c287db28c4082bdefb4e75ffb516552498e9147f0b2a0cbfec5b55e5941d991a371681a3b76bc8a0e64461a2a28860c4c3e30e20846aa70a13a4a6fa4119c549fdf3fb75c55a52c29413c8c30828d326b31e4bf2cd7d4ef16c109b9397fa7085e752cd5b6223aa9d677896063eedbfff451cb98308c20820f7d2b5d16c43c57662119460ec1e91799e5ceea5fe38d8886e05d4ea5f96d755e2de48885e05c7394a105d5e6b27b8884e0fd74e84e2f6bfdb2387a616410bc365f0dd32cc70c79436144107c26fff72cb310caf4371208b6b3a59694abd5a2df86531801041b42b7963f668df10577e40fbca7d3db29aadf45ab47fcc0aa8fbaf45ed44288129ed3073e4611f9a33dc33ba4f8c0665e2d4d5c9432c76d218eec8111a64cca3dfd42374bf5c0492dc9efdc74afd5c7f3c0ca60df39fd359acc4a786063084f9db5e4e9c56cde812d6d2b75b79cdb813f112137ead4a02dd73a70da3fcb945916d3e62374e0366be7eeeed7502ace8135d9d165e72c4af95267440e6c7cb9fdde5a6b8cc4218e10a8045186f250200e0643a1400c03001c56bb06017312080020281a8d8663129154d5a61f1400045140264444302a2e20160b47448140300c85028140201088612886a2180a03819247dd06822fbe2a97396a9c6bf8c1d11b10e16002ce853ecca01d6381a6e8876cad9a2eeffbef0ca2e99f1fc7251b01f460d17388c012a41a72aa4146f87e7aca97fedbdefaeb9bb718b467e1a77f7ca6583fffc1405ed1072c7704341bfaa92dbb53bcb51a882d4f7e9fd7dc37bf4851e3a10b15d75115e50ac94700215aec70c2b7b5a2724dfb1459e96999ca1599975743953d67b448f150f53fb533665307cd019cf50d728603eaab9e973e4c1ec7f436faf22a4f965ebdac69e8a29500beb7634b6a79d5d369b38bb9b6d463aee4660eac5a022ef04951cc643257e90b6ca3ce891ee396c0c52508d5bc366d1ac2ebe791aa5e8e5c1490a550e634a54275eec6005224a6e7be6ee02d35701990aca5c2279f44d57829f3c9f577313c98824aafa26b8e38d8cbe24823ba454f7d497129f0ea243b644280a9467263c17c1b23a80388e13dc7ed89ba335b603fb06c1e5ef025cfd1fb835b402681af00229ac36725137aafaba52725ed0f6a24f8fce129f20243d54884fa05eae592de32041ceae1870a204ec2eed8c6ee008383245a2690e2ea0bed4c43c8c811c3ac33ce437fab5bf19dc830b9ee8553ab4106a70fb5e6d4795ca52f8c8177d721a27559010995b1e864e0533c2df8f503df98232199bc7184d9f83c903c5d9d39180c0b38bcbad091a753a58f0964d2eb8736baf0552f3dfbfc209c285fbeb86736a0bd404b84dc04ffb3c90ff46ef51a1dc973d0be99e2842c536931f7936cab22dfec35acf19df7a1b2a1860680951bba87eb59b8d4f11d2e3dbc85c8e9a6121afb41daddd6997210ced801fe95b177f6e123531227b5b6f7de414f7a57ee089aa5f59af64053c1a85031d04b46c6e1f3a8f1713550b2e686cbabc563af23835820d68aaa2cee1e70574336d902d83446382a7e9abe213e0ae6f784764745cb7236eadac167520d7f14cdb99e79918a50f6454e82fd1c29e125c23589b6d298297327c180db9016bc4569843a9237f94526801c27ee280ab1387d724c48811e36dd56dac5d24f6385fb114687c065cc36168c89ce6008e2ea38318aa04774c411c0d72d6346c0e39151b67e02ffc3dc8c56a254eb6849fe8aadb62b3fb322090623f1bd141f56f001855f94ad424b5dc917c66049b174c993af70ba2e506176917d01a1e94ec0e7d086b8addf426650b8f504e7885d538183d40a5de29153b843b512711ecdc34e4b8aa080e9b89a1b5a8faac4e3b82d2566955e800a7547a1f74b6f63d6fa715c21c4a914710c3a56eed6468061b0884777785938396cf6427cdbcc9221a2ae652edb07faa54678b95959fa54ce55b065e420a656b171dd8bb4bf65ab4ce1fef7fca80fc75d749d9357e117eeac03ff58a741e98e0460f895b82edf1aa089fd57854f5dc4b055d9c155a07bee0f3962e654a55f023a834a6ca54ee47c2f828cb21d7727bd2a3cfba0f5f0d29509b8369b0ce3162cb02a1c6ba168d39346d5b6419b6dd11ebfa20a51b13121de56202ace6aa2a1696681222a1339494ee37f532982796ef26e91d23e0fd0c73c1a1a2040a2c3ecfa2dc2069fc9a778d999b2d4be69a8f640508197cd662de5c84e9811c6774c7c04157dcedde866cdea760dcf499a38eaf282c0ee918e51050c37c5761f58aaf8173eb090940c3571e840131613172e64da669ead18915cd0817763aa6a3e35d4c8733e44d8b6702252282ba056e0a2de6859dcf78b183c92d3e68dd3e2b01d87f9824fc869a780649f60bda5b5fa7bababa49a4f456763edf5d261bdaefd24b0c680d1abae3437ad3c0552f8afadd3e55b108904bbeb5f20a8503cce435c341b963173d10d9801d1c6f7658ef783030d8e5045af6474f1cd0de3ecbf402f79ffdf65d6257f8543f2c0f770d50169d7cfba011ca6c210ada2556e4cfdbc06611a25207a52264841184e5b1169813c1d990508406f0dacd69c978609d3f9c661f9506e16da1877a82078162321735b2666c9cbad5aa4c3df95ca36ca3ab5e6f2f54e8eecede2c8279f721cb6c9e734e0a528e85f28a6c73b67372fa5e165f0278e5cd0719d01c3eee0d72d324e21220529043068d82df0944c9ca71a86dfa33c05fcfc7c98a4606883fb94aaa0d7489430df56a35d04a9c5779beee50d73648f288a5a92190b5403a30a950c274f87634d7e44f23bf26db352d8dbaef085450b95482ca0623096b9c048990e8e27084a1310e9b6dcbfebe8bea95d1b4c7978db772cc2d5e3989e08f9bee61bbad126c48e8de11f068f1b4ddd3a0f8224e4294f073f387d24f65eaa305ad820a2021153979f2fcfbc5c2f60b0115e380e12443c9443549516dbea27f812edde32ce5336cada26e2f07e6014c25366179d33f4fa26f666c58539d3a1c39f8174aa84359ab00deb85031b0730591d96a28a35f73d775bbc85c5402f7952817bb6f33541f58d438777c6448bdb889a1e6e5c28c1459c4256d47f7ef9e5ffaa87a1bf2323375a5af6d3219d498f9fb13a1da1ea0ce5ea5d4b78cc9a34c89f98c1bcaf73d76ef6c4e672d06e60877ce7d0b888909e0ed258e3a24bc8a87e3e0f5fcd8cd685b371ddfaa59d63aff17a8b043ab35b380921ed2e05bc25b2bb45667d72e658a4138ab5e70c5018c4080ebe9cbe6e19a71bacb6ed7194f72fc5b04f28a39ed969b8335840f5085c0dc72895f461720c73e99e1a56b3f199ba58e1704d87602997853ad0b4d1722ea3f0f0be45790dd69eefd150a7ad8982e789566f9ce09144d5f0daff2bbe306eb5630a9ee9666c50bbdb0255bd820a2ed7b820099a5ce938510db629786dc0ed7a1428a5b01fbaf3ad2f4834fcd9d963c3de46e7ae10d57baee2a341a94c5ad926cee9a65a52daae14998136d8db8c2151c088035e27031091d96d7ff38143dba946041096f07b4f21a22c978f92c9eb4e4b84a7247d32eb5f5da0d10e94d1d28157e58d007a3b1a10992251a8020f82c9e6e0b480b805613d0c675bb8a621efa602e8952dfcf4315e8c53e917d1e8d73854c69e2725ce2ef660636ddec04f76c22da5b110423b6f3e00b7f8220dd8d135afa693d7a27bdd0a12c62b75d90b0576e78c048bd9d8829679a18faa227671bfd00d084a7b45a304000dd4260d96cbfe5702e825963eaa74deca740478d4ca7be7f6bb512fdc79811eafa3f4d2d71d9e3c4a4ab86634baeed275545d2eccf590053460b2e88580f423998acb2cfd1c45855b33a7038e18d3ea789a6bf1ed3af83dbbd4a757b89744c1f0419b1419e40a3a147a2e662c16658b44fe0cb4849c38342d3b14103cecf3b24b70b046ae8fa19c2af802a67fa2f34c5e81f3739ece14847018d2501b56b7ab9d4ade7ba251b7a0e9c4c267e346b8c8df93e99b0d7cde6ea61b4e630e9afeaf6ba396327251150dfaf98d7b3a1d7578c87bc4587f8d2bfca698f0a35cec03fd79abf9151e30bd8a7846294696c3839df449262690c1c7d0bf6a117b47b8320efa3b2aaa2483a37770aeb09d1e35f0e1ef70d26f428700528fabfd2ea0546307ea9adf5b28fb2489796f4486dcb4ae86ee7438f3f9c3fff683e6c660a56f90db97c799453677f9df9753ccd9ab1de69b9e76149b71b44eb8bc822dd634e6185b53f96b4a12c78253bd0247a45de39d74439e0c441329a6610eabc514dd9f4743e962c9b4781363e9bc7f13504cf600b1437c7edc31dceec2891cd286af49e31e65ed7e25e8bc5316a742fe16383aa71243c6111b144aa5ef0a963c2ecaa122623c3d921f513c570db2b47f9fb5679ca7cbc1e1abc3eb59d9eed6dd00a5bb3f05b0afa2c9409f08c5b8bc35629c5e2eec0693367034ad178f6001aa0b92d0002ac30c955ad45ca54da94f3d94a75024fa8b3fd0b8e0eaa458aacc06cdcacde70c90cc7bc2c779b17b61437237aa20f0620d0057846a9eb41a76f737f082515fc2aa5ba80c510ecefa4f3ebcaac32bf73a47b33d7352df0fc39cc477b8f2c9964d7267114aae1a68b2273d892f9c7f3d2487ea8b6d481e0c6894b8d1c70c858d6281f18330f2cc7b5d855986b9f75a5e6012c1f9f32b7ddce5b019a0420450606d71fcdfa6c6283d365919e3b46d1880cd9d4ccd5484e251933726c95e8c105aea2d2703a1ac4b0f42e8243c0b7e7eaedada5d95a6e6401efb895c5e6aa3238e4806ad3a4b95064795e670433c4c1a31feee4a8f8cdcfe8c59a1da97e07f353895fb8a723edced184f0d52a815839bda91476314f452cf8b3196fd5ced5012c7aa972d1a542b72b8a940a0c52db5871a7b87184fe0c9d143515041648a1355cd10d5a68becd2d0ae2594cad646fe6a8a248a98b71237e7678c2849c459f9e5236313a820f791e0b68fe7bbf2a5b2a16c9e54201fd416c9128d7c142337dcd69025597d306a436eead88e241cd405eb2ea8205b7b6db53b9d39e562db6cecbccf21fbaf30cc56f9c4e0fd1331d2a15df53766c16c9d44574e68abc16157b81a1460f4fac8fb0b2d51e294565feb05eec9e2e80f467976a6eea7c1296c9d4d00ee3daa7f1fca7470112fed2ab5ff4e53a6e906d9b5e006695f48d12b7f39be071f681f2d2cdfb84606982eeb9c4d95851865fc8451bc2178a21896c632b1c6bf634f9e837981a210ae68d0618456789a90827140683ed1ec812c44cc3fd1b7d5f22f706f7bf1f29c9a43f857f37aab694524954b6fe2802490083c4b7a5fe4375d9b11236fa7b6240a858f3e0a9e39441282bcd8d20ff050f13b1f5616c29da5eec87474c873a0c2d0dcc7690a829cc333c08cb8f58ad46a2d1add1800996cc0dc8a9baab023fbd7e61fe72c47865c8621ff011ab40429fac01cb7697c7a10fbc43401d9605c27c7e5ffa7ac0506b12368573708a069788e5861856ddf9f0ec2003309c1e978ffb0951bd3266372c02ee26a23dd7258331f6e2058eac96945391a30ea1f05914d0177b66be1ef54873b4320b42703fd8c1d568d68e6a985a5151e524dc40961e3ca851a308a170d3700cfc144497b998f00a1a0a8c76715c8ab2678b7dd43bb8dc03f02977bf1626b8628d309b3196232ad2560d12be5ce9fc38dbe7a39ff4ea7415ef441f88ac0a93f15b143cb7ad168dbe45d5d02d38f2e8e3297294a0094041c0c39cd7b1396d27522c12868949f7505ee5d983a62b7e49da6a8506a037b9f748b2bd8d816f68d8d397001a5977dcfbd5dd643f09635619430d7ee23346c82d8292a91518a6fda9e8e6b0793272e47481606834df3459dc36c7782688b9b07594c93f1ca8edd1549ec2b4fb2e05282550b25d1c31f72e6fb9188a04831a1f6d163ba94e4a623457185539792a08a1852e103139308b0ab1bc1ea98abb232e9add912dba517853393f14580764559a3df53b4846392f5ee0c045d65c8563b7ff52729865e810346a01d29008b85befab2d37e9b687407b2a8e9ffe217851227109bfb9a295d1e80970633cab115f8a56839c9eab5915b42d5bafa60c26d1b26a23be0b568d6b61e0b74a7f2db8c009dfd1c8c89f3073bf54bdd3548de220eb987b349d79a48e4f25d2bc339430cd4337a6347ffcfc14db3b36658db33554c53acb1a5ce504d28f4e744881d3b09221f9ce95d429a2c41e6ade05ed148d220b4b7a6f9c90149983d03a8d4e5f6367ec885645611216c2b056858afccccb32d1cc548b334a07586a4d2d4bb19f618b85359906ee37223e266ba3719ac9db73cb6b43157d83fa1cc232583ddd099a4f58284368683bccbad16290d9739b409f8b1c4e6673d81d7ac982890be66bef502c33c2a518b69b5962fc9346cc5c310a91d89318556f589032dc4577627a99b657119ce861e6a3577ee0ef138f8afd8ea2a596b6d75b9d35177fe311500b1865b1381dc6719ddaaa880cd22d143319164f5462623511712adb678e1b7aca19add91b4c53502ff3a51d2e48f92c2d3e8a07c0361c11215015fe597e54358515d0412b44e771ec6f933805a9e68ccd7e30eca53edecfa1a3c258cdabddc5c71a415c6e322285ba110051cd151bd49fac422f31ea120922696b5c4d29470069336ea81e4a0e47a19f1232169b73aa6ec25dec51f01985f1dbaf05af8bbacbb36a969e18f3e893fd849b119aa32e9017293ff7138d63f69ff8a8016024aeab1fbb41d8798ecb7762825ee08a1f3294de953d938206f17538cc0cc5f795b1ae7e2bdd1f85edd3e2115eb1c1fa784412f8c05147878333a5e664ae4badc9cc368406fccee9dab103b29d15139a50553fd1cb5a258fd197cafc86b7ee9caf79010b7842beab995b3938970927710412876569dbfb8edca0713ac18f492c6637acbbe3b1df72cdd9b70dc28e1bd8d6a3fc3db249212c4a9966be5cff90d6f3fb3eed9ec25267c5e32a0dcc3b722a50d272f7ba0ad31e41991dab02e0704de819b9fe96ce2172fe706dbeb781229ae3693d45e51774575166b0ff1463cbbb69c982656d84954178bfe9212041d5cd869c927e42ba336eaab331df1ec75d0e3703ab6d351d69542d8f7c101ea7a088c171fbd680444337b6a807bffd82629fab0001a6df3ba5f7443df6a30374d68f7e2a248298522f89ad6f627474a041a13f858119fd526eeaf358031f9925d1a095e83c1775b7e961108baaccf09463213132e64aa4b7495ce6b75278e72971dbb8790e06ace907ed15782409bd852874bb33901d9e6e9f2db801abe431244375e55f0dbdfd8c5abf9e878c2b8f9304a435302f7857c51420164f420010ad6c6608b52358869d5d41dcb167fd343805e1379f5734128c943bca2ac4a8992900d809ff42c663b4ae95f68dc0fd4f7d9600d082be668597253968dd2943fa163612881e0dcea30c7610273f3c14f0431ac2eaf185bcc7815db25f03c64a894099e2495e7e6cb1e9acf0ba44f5c7c6ca3f2c4632a58911c760a6403afadd5c8ec40982f54010940e1ee70be8a6fb68af7d8d37c61b2e18bcca5b99de944077780fdbe330d82b9bbfbe0e72bfbb267ecbc9ad03f9de34639dc4ad60eee09c17182a1ba31b2a3c3a5f1c390cafdab471c01deca30838a457495366f924e05c01ddc9fa26882879e37e6a46e87e18ca506632ec18e6c12ce6b44f8b7a94b51ed2cace0c11854589cca0159e8c64b1da2cfa03b06585828f8eeccaf5cb7693553ac0738d6cfde3ac3e300571d17373fb8f1bd35033f040f3cb59e99f00d4afcfeec4fac63c92145a21aa8daf44ae7cc9f17269524acc94e396bef2573f3823f8c1a6f0aaa7372e136d0c36235b50b279b5b23a538648542ceaca3203e34426f343766a1068cb93add97657e51348fcd78802ecf94afbf4ea5c951d82a8d735e35ed73e7aaa94a084041582833e5e3b6360d9db031b0ac4d7616e449699bb52d6be46d0bac3073c3f789fb91cd327a2834bcb9c153952a6774afcbbb7ea964a0e03f5e9a5ee4672570f432c2463f1ef220fca58ce7a66208e24cee2939398e2421cfdf0e5648a5d6a8994e628ba8b3fce26423824828dcfcd28f1ce1c5b8f2512d955d9a5ec815ef46776836159b33d652cb30fbcd3092c904d0654227a5c997273454a770dea69832233b2313f39946026acdae8cb9e25ed685219c6683cfa2c1c765ae54984ab832bc5185e861fbdcb3e97aa0566fc44fde60ca1c61622ee361644796706a61c88492a7cdac8a71804963f5724d41e5f30f444aad092eaf95566cb471d5d9504ff88961684573ae863137ac5e12bceb2ccfb7d1bf0552c2188fcd1ef02ad749ce5617e48d270660921e4f15a54209b3958d11260129c25d31d5420a3df3e4227d5261fd553ab8f36c82e16aec4e4148ce47c6bb3531533f9e5d9d06b31a408ced402efcf95cd08ab8553130bd59085ad192f381c9d0a14cb90e2a16bcce95ab5437d488fdd84d8533997cbbc38d7ac7c86271685c2e0aaca4945c7055800223bc6b047d61ea0aa3d02d367d552de22028a01f058d2458fc64c843c5a747111c89725cee6a97d18d72a15924d92e90ea381056df82d4341359ceed5b10701a23e293aa460a528f11dd2a37b671994a9fbe1552466d18ccdeeccacb129fed2dd85a26a3ec0117744a68cce91b251c453f5a87115795d74878dfcbc0b3a858f170c72215bb25b82122b03491616f225171ec283e22b95820bc10b0a180a14c2c4da008072f598fea80c3ff174e7f3ee51410119c91ca464184458c499e1382a9e95ba826092147d95ce7e9d27a0d3267368e43bfdbe300db2ec50c27d4171ad393370065ed3d372740e6f383f0b1c94719f538e337746b30d179f1da65583c4b1d133552ae4985731f0ef05fd2e280a70f9714d8055805b61a43d56b29feba04f3997ee2338b0fde98340945c4e5d0c43d7dba301a43dd93226a8fd55e577216efbbdb174c2ebd968ae70453506920fa558c3cd492c0ff8860cf8e7a7b8e67bb078368b11142561a47186d7dea84fe249b21d67d27c61d5c5024c4e2b515f6585b3d33642be52ff2c509bb02c4dd713000d98d2062938813b8309b4e2f135ef6dcad8705eecccd14ba19a983e0e122d971bbf536e86b3d79756e0b82c7dbc7e72f84130d773983a7ebbc91e12022bc1a1c24e248dead54d40ee05662a5821a28975aa8fc80b518eae74b0bae62bdc9c4955279116adb769d680be30a85dd45c6f128c452397827240af1fe6922eb8106db8b9e62df083d75cdeddb3c1ec88a51b60b270959448b39353af3972ba094bb7ae3c91a22a4698ca86cc27e4141f955a0f5647e4c02a12440222af34803bb11dd7028b4af78ec03fc6488090c21877a8f39b395863983c47c0edb0423f7aba508f981e95ecda6715f3995a6fd09751ada4eccc73914201bd15468a25f8700183a2fc23a5e60891af7f578c61dcb03442cafe416b880c77bb4ae2f934705a78923aa08f388d8293d3e3d56066457cd166cd82ef4713808e28d63c0499e515954d6e359344a53898db882e7c76252a906e2231c27d5136d8c7e409171b5fc963a44c90434f2a90a8a928fcb8c8f2ccc99906dc7e1f81bedba321201c53b340adb81732e559b39686734b8f99f94a82bc2c9a4aadf7cd5121204359b4b58de2aa87068cc7724e53b7a2680ebe16b99aa00d09e4903c1c45af0f8bb149a85914709d07defb2f2ceafab015d9a2b61282d70447da4930ef3a88d92cc9b546a296f35fc04d6f416ae46812ced1e5ba8baabb3e347a791cfa5211bf4134133eae70a3583b200e31bca875ab978c4bf724671432120ac8b233b07b2440b7b2fc74cd922e81982a5584713978827064cce2e26626396a6207218480e6eefc68d30f721b8f900685bab9f04405808a1df22e1c03b04d11e40ec4707718516076029f1d774b2e84c435bd219538de68ef8882821123f7aa5277c18c0783cb2be1c1c1351b23cd707123ad0d23e24f38b0b2d76bc9d1da912d30b1f1f324a33cbd38e06e35d0a16310f83aa7293525e0814806b77b1872a311bafb14b818fff7e9de735e3465268912f832932d011cfdf3b8d9739cf27332326294b589ec3d549147bc876fd7f6b94bd9bc42eb43cbbd194e97b9b39ac0ff884ecbd18c1d0d378e8684db27f661906043df4a40daf8ab3fddcdaa56aa53cddc2649a76e44df967d2699d93fe1a124e9727600b3c1c6d00f51d2ebb39f96e14f5beb36204bfd7e406a099990f1e6b518a589d8c77d325a290fd415ee2c216d4de92d16f0f2e7eeda3baa24f85acf5bb4396ca190c701e3ec719009bd911ac14774c6ccc1a1e0ce84e7ce0b4da5c1244316cd1f4f0005fb6566bec6f91fbd460b707e4f6d40f108950b86d1bdbf5ab8ada17b85c16aaf4181324606395fee45b70ec5c1a633115ba620e4f975c205d784a1f16650dcf5bfbba40b642121710184315f048218b5c4a6402357be2af093e38464002205f812d21d8ebcde7b13df465d573d1d4d272d23dff5294b9fb9adef107fb2fc768d80454c8b69bc60b264b7959356eee038570e69c1ec9c72e171014dfd90c0733cfd5842cbe7cc46c3e00ae0c9226b03465dc63e69aa57af0f4634cd8839dcfcd81950515273e0ba206d6e1cd80717a0d39bacfbc7abc25aa1b70d4fe6d3bb508cc0fa133e93a2c6bf0d072f3f37b16ab158b7aa8f5968d20a6dad5ac7947e0aac0f327852f453abbdc2903fd403085b8c9e353e9854c99ed3fc61267559b885db1a0941c52faf4ebd0a679e083fb649254b7c555a4c78f98d7b05254baf1d0a6656c9eba38028bebbd4d50adac2c37731d2cc40751d30988f386dba7a088aa62fec7d911e14ccf7c3e95aa5642ab24c0de2c80d0b9fc846935396a752d78f406ead32bf23db88c1697fe3f5ef84c770beb7aea7d2fa51079500ea23c967195f0d4925fba82e04a01eda1e38618ec289e41e69b2a447ad9d12af6bc4c5ee7c5069a933f3b09132a45669f712df525d8ca08839e5940cb534ee26897d9da71304a6b6701266f5bb8ce2e6e5cfdbfc403d8c65a56e37755b54c9f916f0beefee389606aa3b6ff44e0ef90e77d15f1dfcf9affcd0c9917df92e71e56e47fad50b704a12a91db0f3cc21fbb4a2ae6429714c0aa16812e27f9e8a0446239ea442c12a5ea3ea60804e94ee2fd74172310340b2e87921f76ebcd978e6aa29ef3bd51dc235944b9ea519518981e62e3814d221058460f78551300671c9a2be2d163840604077eed122b832a8b8886d98454f40cd6e8f93374eb9a935d686e11163403021514f6962cf379bd082568b272551bdd1174c91b3090c513d8f14d2deba2d38750f4003b5d294abdb9405b0061ebf497c9b603bc17287a02c07027df8406c0cc2ed457ec1f65a1d02b0bf4d3ae1f34482680b76839f7dca853ed5be73d4388d21dc9d5b09b94b307dc5098842000c5f12f3119c2d1c1c35275f4fee7ee1d57e8bbb04955080648b16009b5700b84c58fc02f3a2851788050bdd0bafe01fc560cc5f5b84c7d365f803908c424e731192e96b7b9cb52702a64c1356ec48d5787a087fabfd2124614103e125c62e1d48641d2e6ea6ffc255875a4a986f4a176fdff044a429fb19b3889e80a5c8898c413725f54adeaf23c5606b2c4e47612905a3a588a76b62def0a8e38d7e604d81f8c635190a035a20a7c6ca729fab69bd15b77dd21afbade460d1dbbfbf8d6d476e9dbdd7bffbd3b475c1dda9a38746713aaf403a4960464365c3e9f698872be5a15f75b0ae94736518680fda1e701a8b2bf83d57568b722da2395e0d662da495ad989446fd2bc833ebbbd3624ed746388579a372d0a1c5ea411c1d180abcde3ad5faba90e4d4397b6275f46101945db198cc9664bd1e30d15844225fd2c26bec1f9a4b8443c9fdf666d976952993408cdbd86902d435a72ee4d5e1ab733fde92c8b939e1f4dba523325fced083669398365f1c5c4847f8902855222d06e0132645dc64ff7c30825f6feb36eebeac50fc2bafe0018ac193ab5aeb9cc21665349b99e6fff18826fb766be9367a8aac7913df63d12bf684ad82a422f8198409d8be6342ad9d8a045dc8913a3b5d5ace19e1fc01cfb4e4b7980c0d76adff3729259e7d2718a26ba999e0bacc4d71d523dc9ebea6694f87c276087a9a037dec28cf85c826b5ab379dbaf09ced4de525bad8fbc15d4733ce9485e49d1fa98ffeeffd9c93fa5d709e392dfd14c247cd2a27863b31e0f50ccf9ea43dce490b6e68fd9362f65c35d8e71e6cd065da13996bd0ade38761943834496e7a63f64212d0ef4d7eb87f5efcda71a2047ad77771a6e66200ad41872215184fdbf91a9e1817dc23dfb9ad38c70f685c94cdae8f2840604cf42f4743746feaeab6d671155385259baa2f08a28d621b6cc9bcecddfe3d659d0fc6bcd85ae32872d6e7923e33e48318cfc6de888fed6825f3eb05121d16f26c94d25992733aa7f38d6d6eab8ef739860a6b6e654eaf89f40066b8a2e6ac27583e924f8a36eace9733ee8b7592d433cae457cd51755997d4fad335cb03119f1be1e0ceaf1f86a60619633345b0a4ed63bb1c8f59e61285f6afa5c953288f2d229aab62c79874bac59503e0be754b737f93d8d26862ffa564f9f6ca3df554aef16183652b651dbd0e0e5774c2ed89aa1f91155b0d746c069a1f7b8ed0ef4ddfa1a63da72078cc827a093c06ff6d330de30bd9c89fac1d50cb8de80321da17ebf251cde69e6719b94af3a78ab7a77463f4357ef72571cc5a9aed8fc4a831b837d8bb7c4da5617d057254c97a099e7baf3a26f36c45b3d14fb597468dfafda966f5f4793ebda8f000073b0c6b8550c5c561ba6407936ff5aed96eb7798ac42b23a7f0b065c31a551772cb39400ae3b3f9a52990318f2064385aea687aa54de4dadf741533d80a1d01d2ea98f2419e81ece4de00b4f9cb2e97f542b2d25649bf0ade81652ea7a6e12f6c281841c182da45881c48f134847fe6310a1a14773552c9c299302d8489dcd880b15c6320db6cc02379065c485679fc92ef21afde0cc1d01ac4b6fe0a5b00740883493cd296f9f349fb982e172d60df1d8a00af73a1c626a76e54ea0a6f094b2ade96c0f527933f384426634535e7fa55896e2bb6aadbd6895ba1f4e79d3796134f84b133d4bfd6e39d79afbc58a038f070189ebfe68ce3f226e39aaf08dccfa4885cee1bd5dfec8ac140647cca7b85ec4973bad899d06e348c0806a291e3ce4c09103e364208a06f09ca6b9c75ba9c98c2e986402bec9e31fbb929c24e94e21a9d04eb86e6e60a1ac2ba9036fa18aadda28e8bd5d4b1c842840d55b8fbc365ec7e23f5e9a9af407f5a1081eef1dd204747504f5f1643870a403700391c46b01c7dcd66bfc0e45ab5eb5effd183d8856f6b0ac1e627b33e2858b516144e70be0d0f2ff75fc550704dc8b65bdc403dc4c869a086619113ef69f811ad861c82b5763f8ca11f1cd476e4045af96b7a62d910931f89c521f96b8e80cf5599caeb217d73110ddfcdeab20038e39a84b6e2183a3197413000e93aa255caa039768e0595ac9c234b7f64b3281e1a1d16e642ee218c0c370f44e90acd7e9da0cac47c7ab1675733636d73143a344dc3f9b57fd3ac67ee5b1f2b369c18a8d8248a73e36be818ea2efa51185b72a85730745ee612e05793388ab3b3af3759c084b9e81faa099a024834a7fbf38f757b532caa16028ed4f0e26efb508793e6046c594eeb2f5a217cdf2f94bd165d88572feacc6f406d4ef409ad42978ecad4632b8c2f6675c71730d841739ab2e9c8f555529b16d248f16dbc12617006cfcdc5b7652b53824b45455f1c3918541bfe829b699a78655e80cab829d4384b68e6aeec3c5c32b8b5dcaf44b4709d4a4c0a30824f6e11a3cd1056cabdf1ec9d9635b4ceb668fbff1ff697d73af694212096af601022649b61bd97e6f8c3d61e60535aabbe594c0d3acd3035b4b4b66d5a2183ee0db0698e173e80e491be68154ea7fd62eb4acbf0afed3687eab641ab0547b2847182a272fa02d6237735ab0817f26f22e08d5490c7941b8e44e06a3d7b36fb370e91814b995ea9e92a0eeb4bb3dec0fb9c63677ed9f9a621df51985469a85e0267b7d316044c6fe195112d6131a2c76e306bf4e31839d874f071c81f734b971a20e0020407d0a2335e7b2e6f84a82898da32119ef72628571438ec736019cc193deb59f9db09c7133aad71ff00f3b5cd1c10213af02d15dd74a816ca6c7ab20d51c7f27a36a949c24a11ba6ff0a71868e5e74782bbb2c6ea65c94c1cda6c2896a0680197f4cd09744abdb4c84a67c6f27b5c794ee5a7c29ac754d7f354f403db011f0bd40943e34a1f9f692824867b98cb38fd58e2533adc5468978a85344bf953edd49c71c3458bfc9ffe42fde433267488650c6e3f92bdde25229059d80ef804a523dd7521095eaf8e2630692f3e3953481fe27bacf84c29a45d72a81a469671c2b6d0cd7aa6ad1865840c404f3c3b7642844e068e42f9c4d78200d356554e4e854475d2dbbb04329e5e577e834828522f358a6a9a48c06faef731952aee790c5511054e2e567718c64de715f6786acf0564415a157679874aae128e1e95fd1d8af690dd26258463b27c2489b3586183dad5ee8283666a24b0721473c8cad6d2c9a046ade361a3d9ce2c458a839d869cf883b3492de7c14891e7a34c3c9f0cd31707c2f867172b282ad00be2823b3508d7df324c972ed091235cdcb301af0f4a9a9ce34ea24e8a12c827831c5631c74e8a3f33fb00ceed39eed40c37c9187b388b2dcf710541f954f4081a4ee43681489998b162f9fab1903e352f90001c1425f0c30eec310a5687b2f5d4f57b3de754e98c85cdeaa7f0bef9805dd1918643fa8ce15b55d2b92c720c3907c66abb8966f63c39d467e0850fd69f05015a03cc1a30284df637c8a145cee4e6e8ffea498b781e0e30c234685843ccee199098a1aa861fa48dc09201ce43926897b679f420ac21da7d85e8fba33c32d2132f5aaef532211de0f905f51988ae18d18d2bd32cb5f948ab0103cadc850e8cee64403efbcf7ae4d83ec9eb884ec06c16bf4f042519922ba661398ec8ad7e9bf39db83ce68d724cc3603b6070fcba48aaea7011eec0f6688a616381716569d9e7f4b130971cfed9815c00ecac819e5d15e235a9304660d07aea61830a6a5466807cf17e9fc179dff67fd232ed6d457d04790073c2714fb9c30106b2d015ddcfeac614f499d5d59f8d65a09c51f44c83ed8f0ef7cf80a4acf5d0ec7fbc322f8302acfcf7eece15863b24536f5a113bf92041d0a1f1d4500e4010183acb3b3974a6f93c593258be1880511e7c516cb51050ab22752c6d6ee88d0a3cd798c10359c07", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x244408941da4daa50e86160889864e6446252ed4723f577aa0f81ed69de5e3bf77083ead3d8118dbbeca37e674f5d9a896280aed62b8bafaf07da69db69f8a6c66ce5e4aeac2a01ef207296337980617eb138104d003f0d6af1343422741c4d108e052d1e8bfff7ae85c5431dfdced574445ecd510e6af5f407d340464ac9b37575efcb324554ab7707a37d994bdcbb038592c0e08e91b93b24508c1a601069d3e7603788559c072033026f1c18995c984c29dfa089dff61cbc77fe44173992557e83c370b0200bfd0c723516b2541396a404a9669ec5310b839a4c87ddba9e217aa89c637915970e9a83c19c2c76dee75aecc916a9b79cf319b27aecfaddf7318c6b64d13a6c5a08d66db11eae72e65034b7d05b980b0b1b5f91168bb68dae76f", + "0x3f1467a096bcd71a5b6a0c8155e20810308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0x3f1467a096bcd71a5b6a0c8155e208103f2edf3bdf381debe331ab7446addfdc": "0x000064a7b3b6e00d0000000000000000", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x244408941da4daa50e86160889864e6446252ed4723f577aa0f81ed69de5e3bf77083ead3d8118dbbeca37e674f5d9a896280aed62b8bafaf07da69db69f8a6c66ce5e4aeac2a01ef207296337980617eb138104d003f0d6af1343422741c4d108e052d1e8bfff7ae85c5431dfdced574445ecd510e6af5f407d340464ac9b37575efcb324554ab7707a37d994bdcbb038592c0e08e91b93b24508c1a601069d3e7603788559c072033026f1c18995c984c29dfa089dff61cbc77fe44173992557e83c370b0200bfd0c723516b2541396a404a9669ec5310b839a4c87ddba9e217aa89c637915970e9a83c19c2c76dee75aecc916a9b79cf319b27aecfaddf7318c6b64d13a6c5a08d66db11eae72e65034b7d05b980b0b1b5f91168bb68dae76f", + "0x6dd12b3ae7975bb95f841f4505bc193c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xb8753e9383841da95f7b8871e5de32694e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb334bd1b4448aed1acf00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212": "0xc6b64d13a6c5a08d66db11eae72e65034b7d05b980b0b1b5f91168bb68dae76f", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3558b17e2d0b3f3f1026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216": "0x083ead3d8118dbbeca37e674f5d9a896280aed62b8bafaf07da69db69f8a6c66", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36823ed8df7d5f458c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51": "0x5efcb324554ab7707a37d994bdcbb038592c0e08e91b93b24508c1a601069d3e", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36a0c0593a5aea5de3a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04": "0xe052d1e8bfff7ae85c5431dfdced574445ecd510e6af5f407d340464ac9b3757", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3753bb535f9a5c087d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460": "0xe83c370b0200bfd0c723516b2541396a404a9669ec5310b839a4c87ddba9e217", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3dc6f27160949ee4e00c6f7906ecf1460717a95098a86e69df61cf7d72c2a29232b602acbfc131b25": "0x4408941da4daa50e86160889864e6446252ed4723f577aa0f81ed69de5e3bf77", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e71f9b191f1e16b3e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099": "0xaa89c637915970e9a83c19c2c76dee75aecc916a9b79cf319b27aecfaddf7318", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e98536500b848d680e8199042942b28db8753a29cf4ade28435e4594cd014657d3aa94bf821c0a42": "0xce5e4aeac2a01ef207296337980617eb138104d003f0d6af1343422741c4d108", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3ecae93125fe97dbcd46f22cb677963c38e1adf0e1f79c9039164a3eaeaa810a9a18588be6483ca35": "0x7603788559c072033026f1c18995c984c29dfa089dff61cbc77fe44173992557", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950077818960c32607d6175726180e052d1e8bfff7ae85c5431dfdced574445ecd510e6af5f407d340464ac9b3757": "0x3a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950242b5016f3cc9b826175726180e83c370b0200bfd0c723516b2541396a404a9669ec5310b839a4c87ddba9e217": "0xd4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195032a9439f746cff1661757261804408941da4daa50e86160889864e6446252ed4723f577aa0f81ed69de5e3bf77": "0x00c6f7906ecf1460717a95098a86e69df61cf7d72c2a29232b602acbfc131b25", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195056e33a029c7758c06175726180ce5e4aeac2a01ef207296337980617eb138104d003f0d6af1343422741c4d108": "0x0e8199042942b28db8753a29cf4ade28435e4594cd014657d3aa94bf821c0a42", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950596f1bd92c5ea6d861757261807603788559c072033026f1c18995c984c29dfa089dff61cbc77fe44173992557": "0xd46f22cb677963c38e1adf0e1f79c9039164a3eaeaa810a9a18588be6483ca35", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505ca046c5184a77e06175726180aa89c637915970e9a83c19c2c76dee75aecc916a9b79cf319b27aecfaddf7318": "0xe5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19506ca8e019c27ba3866175726180c6b64d13a6c5a08d66db11eae72e65034b7d05b980b0b1b5f91168bb68dae76f": "0xf00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19508b8079c9c5350ca761757261805efcb324554ab7707a37d994bdcbb038592c0e08e91b93b24508c1a601069d3e": "0xc46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950b02302af392a80566175726180083ead3d8118dbbeca37e674f5d9a896280aed62b8bafaf07da69db69f8a6c66": "0x026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x2400c6f7906ecf1460717a95098a86e69df61cf7d72c2a29232b602acbfc131b25026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee282160e8199042942b28db8753a29cf4ade28435e4594cd014657d3aa94bf821c0a423a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e51d46f22cb677963c38e1adf0e1f79c9039164a3eaeaa810a9a18588be6483ca35d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099f00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x2400c6f7906ecf1460717a95098a86e69df61cf7d72c2a29232b602acbfc131b254408941da4daa50e86160889864e6446252ed4723f577aa0f81ed69de5e3bf77026d79399d627961c528d648413b2aa54595245d97158a8b90900287dee28216083ead3d8118dbbeca37e674f5d9a896280aed62b8bafaf07da69db69f8a6c660e8199042942b28db8753a29cf4ade28435e4594cd014657d3aa94bf821c0a42ce5e4aeac2a01ef207296337980617eb138104d003f0d6af1343422741c4d1083a6a0745688c52b4709f65fa2e4508dfa0940ccc0d282cd16be9bc043b2f4a04e052d1e8bfff7ae85c5431dfdced574445ecd510e6af5f407d340464ac9b3757c46ff658221e07564fde2764017590264f9dfced3538e283856c43e0ee456e515efcb324554ab7707a37d994bdcbb038592c0e08e91b93b24508c1a601069d3ed46f22cb677963c38e1adf0e1f79c9039164a3eaeaa810a9a18588be6483ca357603788559c072033026f1c18995c984c29dfa089dff61cbc77fe44173992557d4e6d6256f56677bcdbc0543f1a2c40aa82497b33af1748fc10113b1e2a1b460e83c370b0200bfd0c723516b2541396a404a9669ec5310b839a4c87ddba9e217e5c49f7bc76b9e1b91566945e2eb539d960da57ca8e9ccd0e6030e4b11b60099aa89c637915970e9a83c19c2c76dee75aecc916a9b79cf319b27aecfaddf7318f00168a3d082a8ccf93945b1f173fdaecc1ce76fc09bbde18423640194be7212c6b64d13a6c5a08d66db11eae72e65034b7d05b980b0b1b5f91168bb68dae76f", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x03000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} } } -} +} \ No newline at end of file diff --git a/cumulus/parachains/chain-specs/people-westend.json b/cumulus/parachains/chain-specs/people-westend.json index 61a39159ae6d19b062583071665dc68c081b92a8..d6f0e15e0248e967151767c64771c062d5a89741 100644 --- a/cumulus/parachains/chain-specs/people-westend.json +++ b/cumulus/parachains/chain-specs/people-westend.json @@ -7,14 +7,24 @@ "/dns/westend-people-collator-node-0.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWDcLjDLTu9fNhmas9DTWtqdv8eUbFMWQzVwvXRK7QcjHD", "/dns/westend-people-collator-node-1.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWM56JbKWAXsDyWh313z73aKYVMp1Hj2nSnAKY3q6MnoC9", "/dns/westend-people-collator-node-1.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWM56JbKWAXsDyWh313z73aKYVMp1Hj2nSnAKY3q6MnoC9", - "/dns/westend-people-collator-node-2.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWGVYTVKW7tYe51JvetvGvVLDPXzqQX1mueJgz14FgkmHG", - "/dns/westend-people-collator-node-2.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWGVYTVKW7tYe51JvetvGvVLDPXzqQX1mueJgz14FgkmHG", - "/dns/westend-people-collator-node-3.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWCF1eA2Gap69zgXD7Df3e9DqDUsGoByocggTGejoHjK23", - "/dns/westend-people-collator-node-3.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWCF1eA2Gap69zgXD7Df3e9DqDUsGoByocggTGejoHjK23", "/dns/identity-westend.bootnodes.polkadotters.com/tcp/30532/p2p/12D3KooWKr9San6KTM7REJ95cBaDoiciGcWnW8TTftEJgxGF5Ehb", "/dns/identity-westend.bootnodes.polkadotters.com/tcp/30534/wss/p2p/12D3KooWKr9San6KTM7REJ95cBaDoiciGcWnW8TTftEJgxGF5Ehb", + "/dns/people-westend-bootnode.radiumblock.com/tcp/30333/p2p/12D3KooWHb7bp7fvxCwR1i6m8xn4j1ZSVZ6a49TVYbrWSC2sJhn4", + "/dns/people-westend-bootnode.radiumblock.com/tcp/30336/wss/p2p/12D3KooWHb7bp7fvxCwR1i6m8xn4j1ZSVZ6a49TVYbrWSC2sJhn4", "/dns/boot-node.helikon.io/tcp/9520/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c", - "/dns/boot-node.helikon.io/tcp/9522/wss/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c" + "/dns/boot-node.helikon.io/tcp/9522/wss/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c", + "/dns/boot.metaspan.io/tcp/35068/p2p/12D3KooWAtw8ybFXNmNdTUsvt2gfKwtuea9wDQT2b8FpbVNKYGwc", + "/dns/boot.metaspan.io/tcp/35069/wss/p2p/12D3KooWAtw8ybFXNmNdTUsvt2gfKwtuea9wDQT2b8FpbVNKYGwc", + "/dns/boot.stake.plus/tcp/46333/p2p/12D3KooWLNWUF4H5WE3dy2rPB56gVcR48XY2rHwEaZ6pGTK6HYFi", + "/dns/boot.stake.plus/tcp/46334/wss/p2p/12D3KooWLNWUF4H5WE3dy2rPB56gVcR48XY2rHwEaZ6pGTK6HYFi", + "/dns/boot.gatotech.network/tcp/33340/p2p/12D3KooWHwURYtEHpexfrZa8k8hVgVi5FTFr4N8HBnn9kPDsWfgA", + "/dns/boot.gatotech.network/tcp/35340/wss/p2p/12D3KooWHwURYtEHpexfrZa8k8hVgVi5FTFr4N8HBnn9kPDsWfgA", + "/dns/people-westend.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWQrMQFAXxJJJCtVr8nViBR6EDsuT1RyqU3eoCMebRQxTf", + "/dns/people-westend.bootnode.amforc.com/tcp/30346/p2p/12D3KooWQrMQFAXxJJJCtVr8nViBR6EDsuT1RyqU3eoCMebRQxTf", + "/dns/people-westend-bootnode.turboflakes.io/tcp/30650/p2p/12D3KooWQEhmZg3uMkuxVUx3jbsD84zEX4dUKtvHfmCoBWMhybKW", + "/dns/people-westend-bootnode.turboflakes.io/tcp/30750/wss/p2p/12D3KooWQEhmZg3uMkuxVUx3jbsD84zEX4dUKtvHfmCoBWMhybKW", + "/dns/people-westend-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWBdCpCabhgBpLn67LWcXE2JJCCTMhuJHrfDNiTiCCr3KX", + "/dns/people-westend-boot-ng.dwellir.com/tcp/30355/p2p/12D3KooWBdCpCabhgBpLn67LWcXE2JJCCTMhuJHrfDNiTiCCr3KX" ], "telemetryEndpoints": null, "protocolId": null, @@ -33,7 +43,7 @@ "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0100", - "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x100845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f744876aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151bf8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x080845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014af8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x0000000042e478677a0a0600", "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", @@ -41,44 +51,205 @@ "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9446a2e9dc56d0fc437619542d91055bc76aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151b": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da94bb69671d3f9f0999498b683e73934d36ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f7448": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9d541fcf54011c18b8f8c5b4eca08a1290845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f4caf657e712ee5527fb899d47951485f8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", - "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x59933870656f706c652d77657374656e64", - "0x2aeddc77fe58c98d50bd37f1b90840f94e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0xc2663d003870656f706c652d77657374656e64", + "0x2aeddc77fe58c98d50bd37f1b90840f94e7b9012096b41c4eb3aaf947f6ea429": "0x0100", "0x3a63": "0x", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd00582c95057e1687d115511068699374c0c0584cc28185ea3236b649401bcb6091468b5335a83460b397a2b8c2fa04c359796ed1f8e156844e030238c2d7b44a07717524217769c6f69236bedf078f0d7dd21a219b1042c8de5b6e191d18d9147e14bb892a10ecea3ed537da5549e2ab318696e8997dffb6236f4c6b755748372bd01bd3f3f2bbf1b03debee0dd86146b731fa3eb442e42ddaf1f93d8cc25eb5c43ce46962f47fad37c1e3d585f09bb0b9e802806fe289f79ae3f0853c4dd8d4938ec39b37f1e3f3fb0bf23431a4891eb7f9be06f234c1a39e787c34ba8dcc47f43c7ee2514f32416ef3138f6b1fbd09584fd775ae9eb85bf027584f577de2fd743de732dfbee7204f13593d6567feb4a9a77a0bc86b385bb7f9896f534f529eaba7ecdc4f369f6f22fea69e6868aea39ee0b17ac24ee74ff4b39e20fc699ef4198ebb564f523eab27584f3e9e9d83e77ed2ced5939cf9495ee734fcc49d867aa2a1f98e7ada71cb7a4e3dd1e47c87b5e334fc649d867acac160ce4f5890fa4469a69e66be63c749333b76d403c9b2e7f8c8b2996174870d0f19c8598c653ce03577c811951a5f363223bea8c5412eb3764ca9f1b0e171d1918ccc300c4eceda21a3713c30cd46c6e28bb311953ba0dc6103af1a02c04d1ed1791b6468c86aa861c666424c47e727be8e0ec683477d89bb5ed20210809fb2072000d4b246afd7d1b2ebc852e927fa520da56bb4837b7d006c641e80dbf0138fdba0a3f3d3bc0e0d3ab7e1274cd650c3a4af2fc91d2f710d35d410809fac07a09e6aa84106de061a68f0f193761fd8eb7572ee03080f1baef393cd754a25009c867a2a1d080dd7f9293b909fb81ae433336cf3fa1a7cf838909c9c93ee03c87dfc24731fd76bf80d3f8d7ec31b82731b7e1add8617e4406cf80d3ff138909faeeb947070ea71748ef3133dcefb691ee73490480792534f3eeac9c7819c9473d24fda49ef27791a5efa897be901a0869facd7504f00a8e1b59e00f09c9c977e82af3f61bfa19e02108007a927523d913e33739c7abab939a99e703e3373d24f3b4eaaa71bd26f7ed26acfeabc07b90d40341df7514f37f574731fd7b4d79fb2d77ad201e4f5a7598f589d771db7e1a7ac22b13aef36d45300ea134f679e867acab2d3d413cd270d9f3f613588594fd93c4e3d65d7b06b3fd1fac3eabce3fcb4a3f2b03aefa57aaa61c701504fb59eea69a00f524f40fe5a4f9b052a6428634c0cc0a0822a26aa04124891843274e1054d28c1d4047d8f4dbd56e79dd6d3eb79d45d9df71f75a1ce3ec787cd71ea8954f39b7a42fd20075af80246063430e307261b140c9678420ac448830c60aa30d9fc24536b56e7dda69e6aea421d1c6a57eafd6954b9d579ef512fa8b3e7f113ac45acce3b8f7ada519f78a626644e534fa3cfd42786989a80d7514f32a28fea09a5859639b46811071c5bf082092e14c4e4008b14c0200e31c8606a027ef4135789accefba89e4475a18e006a47a4f727ab0e599df7add6409dfd892b93d579d7ea69d6274aa626aa67f5b4030fba70e1067030414c0d4c587de2a6267e8421061d80f10427caa00553137ceba7ab9656e7ddaaa7aa2ed41152bb21bd3fc9fad5798f95833afb3d0a0ae9b09031f3bda069b8f46ab8f4b68041d300c5c65921af2e971e7d47b681de986d85f0b515c287344b77b1d9052dc46dca8954ef656fca0929bae31d78fe06b7de94135b960b333eee165f340d97b6462ef177037a635ad26b85f051aff76f096e534358625f5b449e8f6d916dbea46bc9685c5a2e7535fdfe7a535a84d1345c7a8ff4f5d2f85eca092a6f3033c32e101ec243086110888126b0747771c3de5413437ddee1c720dd0de72554aef4a69868a3bb51c3dbd09b62824bcfd10689bc83ea8e9fe4e7555292d8efb1df91181a1a1a6a8e1d121d1f2bd0cffb7667f5fba3f24617533e84ef7d3e0dbe7a318a1fd0f24ea735f368acb33970d55f9fb84d31b1456f8a89a1ee7e34bf00bda925ca68de7c6a9a5fa3f1ce753ec73bd5f934bcf95c55f5f9b4d7f36dd56745831e904fe4523c12aeabbf8d87edeabbf92c973aad9fac1daae575bd075eb48bddc507c1b6be9b8f7c0fcfb91bacdda9e12fdabdaf57b45b2e21d1d7bbe55277445fefaa2f97ba22fa7a0f84d4aa40a786afe8f6453b9c8e9f4fb3e87645b77753121b4a0a041b3ed2e5d2ab914befd68330982c21ad9ae9eb47bb10f4fbdcc72cea46d00fd2f7dd90c87eb1996ea3f82d991bd40504dca696e02200dcebaed44b4cd125dee1dfc03b0f0b192b64bb8735de19e2c4dc1ab8fdfb625f76bdf4ee7e83ac02e6ee70effbc5e6f2cedbd7fb395aded9e67757cf7783048b9715b23ddf6e301efe1d6e3eafee9341c2022f5cdae643ba5c82af79e3ef16eb72a987e1db7a4035f7f0ebc2dc66fe63ae8b7a0fc9dc6f90a51df7ae0d81f0efbdc7f03dfc203c4308e13b7cccbf9a2b29093f9e5f8d5cda73edf8b0fefc1d616e90ee06e0e6e6c02d97e0db8c20313434a44443de81efe212bf8721d5b8c42f00d7d134ff3dbebb9a3f6be6d36878875fc33baff938bc037de07bb887239df2a3a5a0ae7ebffa555292f7f8f758835ec31a5fed1ec3f7c898db1ba4e39a3f2fdee96e8060c1bd775af310ee5dc9fb0facf1514e6daced1679efe0974bdd6bf8fd8414070efe08acd764edd1d8da1689f2c43490d553748c26d41e85bd4da9b4303d45136d91286fa88114d0effcdd94c4a1b721e186fa5de39d6dfe6e48de50bff7f0d2205c7fb85e20287eccc69cbb32485890e2d2f67269bf9b4fe4d2be871787e70671ddd5f25c9596bf7867534a0cb5bcc63b8f674d1d4dcbcfd106e9def2cb3bf19dd6fb8b77e0f7cb3beffbc83bfc3dc73bdbfbdd90f0bbd7f1bb2189e7f7f00691f5e7bd4050ef3d25f6d980dbd41667f41b6af839da6f90ee0d357ff2f490ee764c777b7e0f5cba0de9ae90fd7cdad25702ee67bfddbda1eef67cee4d6da1837efdce5b9237d4b0766fa8f77337255cc7433a2576ac406f4cc32fed50bddf2dd2c59390641d2bd0a8e1178d1ed2dd8ee96ecfef814bb721dd15b29fac2d7d42e0de5fef0e60ff36a037fc6e405cc38ac3a5f71eeee11eeee11e5eba5cda6f10ae3f6fa817080a3e46633e33b8f7e5d27eb5b93cdcfb7e31204abc141636c880600112051014542ed437aa176a983a859a852aa66ea14a8192a1b651bb50a950d9a841a86554207ccbab50366a0b6819ea09ea50a542bfa84ad4256a139589ea442501bd41ad42dda039a054a056a06b5024d01a502fb409b40d3a05ca05aa020a037a054a0635027501c502adc2dba066d02f740974889e419340994095a04ab818a81c740c6a031a07f582724167407140b5a045a05ba814740c5d01edc2ad40e7f8156898977125dc8c27814ae15fcec5bbb81797e338b8109e83dbe0477819ae8387e143b813a7f22b6e023a84337133bc8967f1125022fc097a042a062d83864185702b07c3ada057d02d688afe805241a7a0601c8b6b71326816540b1d03e542bbd01750199c06d407f7f231aa14b4073505150587e359ea0a2a0b2e06ddc20f2e7e74f1e38a1f5bfc90c10f2d3facf8f1821f55fca0e2470c7e58f971821f28c839430e1c3959c8c1428e1b396de40c21c70a3955c8b9420e15728a9003849c24e44021c78c9c2f3963e43021878c1c25e42c21a74b0e1172bce41c21a7092422e4a491e3849c354856908090c306298c9c20e4080167091c2570864863485b20bd41d2028e13384de050c16102e7091c28705880b3029c2870548093029c2b3828c039018e0970ace09480e4060e169c1690ba40e2028e14a43390e620c9413203a90c243290e2208d8124065218487090c0405a83c406690924344851203981a406a909a433484c202981d4857404120f483d2071218941f201c90b120e48291215a42a4828209d8074856402d210c90a890912159212a414909620397163861b396ecaf0b83c22bc2d6ee2b819c30d186ec87043c68d116ec4b811c28d1736616e6070f3029b28dc547193e5868a1b2b6e627093c50d16a22a44508852204281880ad10a4432106921ca4294457485080b9115a228442d109940f402d11511165109442e10c5402485080622156c4ad892b07dd9cc109d40c40291159116d1145b0b362c1b0b6cd6b091820d1b9c623038080c04eec23f601f700f980bf38077c03ae02f38078c03f682b7f00dd806dc0573c135601a4c2f48276c5ad0830c92049996992f382d1c16333f98e141b6458d1830093a7e60c3021e4298b181c8063dae305a43870f7a983162a30716b6316436e871060909a4347a3441460d7e0276061e62729e40cab2430b3ca2d811051e28d8c1068f2b3bd69019820c117654610715765c61870f76fc60470f7674d9c16547183b523bb2209a0183d9d184466507133d98d0438e1d57dce4804920230599336cbef448428f2ee420618606354ad450c1e6a86183c60a4d097898c1030934506c2fa07982a6ca8c0f6a7e50e3032e06335d381acceca06607353ca8e9810d14b8197059c8d860c712d90d66b8643398e9c18c18150964a270b385bb018f20644b88bcb0d181b6042607060451171a1a5819b03832266ca8b0a962f405110e74a0a1a3093a989075a186891e5e90f142668b0c10647020c345e60b7a06991dc83441ae41ba42c609b405dc19354fa856b80c66caa070cc0461134346839a20d4e4a046079c153340e0aec8b4a80102a785c6852d8e193066749071c15191d5a0e68b9a2e355c38197059b22cb81a7036c0cc2083841e6ff40803e94b6c8188063966c89123678e9a35444cd4a8b19d81ab6867684ad096a031619be3668a1b176c637608618718a2219112dfa262a15e81dba2068c9c3244285437ea11a818382e7aa441bb9839028502f7053745b665b3e2e68a6c8aec053234e881049a2d6856a88982e605ad0b9a981e62b0b10157450f33e4a011e1f8a1452443dc42e442cd12365a645ebc316cd4d0aa10d5604a611a6116617a99644c24cc34e611269859c634434465be31b530b34043829c33781c212e31b1309383191cc84041e6093cbce4488107193c80d0230e1214484fe0be20a3841e637e64e1d185c717d20e3837b82d3f6a5073844c06d9173550c87e3089b04389cc0a992ee610b42d645864593220645db0276069f4643e58c0cd19322ab22b4855b21e645d645cb22a321e90ccb8197333c7468657841f33804a10e580c485cc17ac8b0c188c0c3dca2083460f2e686df41063b3a587164437e8f1051b2f7a80c1e6062412f43803690b4907181b189818060b427c824c1a373ac85c400386268d1e3ea05fd0a2c08308346190c9d2030e1e63c82c81060d6d06d5043953d0aaa021414a4103a3d140b445a2115910dbe801868d0b681699303c8ac0a971b30311173446c856602303192a64b6e011468d82460c3db2d00308978214430a829606090c8a058f21d40cf518c39ba099d1630b34269059838a1981790db435281874f440f3010d19326c9c0a3de6c8584083021e46b0d9c164424e987b815a71226849202581e6043db86454b62d28161e608cbc205385b6c58b20c3841b311c14b827d030f048f11043fb014f4107979f7123d0c0f1198cd29060280faea5871b3457445fc4347af4202a6183a51aa26a482dc82cc837241b39606ebe20c59060c82f640ee418d20c790499923d90489040905c6412a41749048903b9457a2187207d20bbc822c81fc832240fa41064102419320c6904a903f945eee0c60b928a64422e21958861885e886f442c442de4682166218e2146a1aa12a510d7886a4436221a114c2c4134c10f17c42bf1045105518a18454c41b472b3853874c345742232119b88546eba80568055806dc02bc0347ed0e0860b376f40336ebe60359805bc044e02138165f0e4602530137808ac0567c15a6e8ac050e0346e6ec056b8048c0286824d00e4047cc68d0dde1cef0c8f0cecc48d979b2e70149e78e089e195f18ef08cf0ae3c14bc133c243c133c2b493c322af06381a703278f8b224620822841bc2e5e0f240044048c40e0013f28f121490390f0c000050829bd2fcfcb0d3a031000016c9862cd315fef1b410163d8448a101b587284104d8a58b2643e480494264b96644284cc888188274e3eb001d24c18b6034e3800c588264142348932841427529a40697224c80c1c432c31820350903c7962c402828668f2e489110bb061060c4366bef0e48910433c7922c402bc50445007a0347922669b34e1c0122382960415d101274d40a033d38595f2c48910414d8858d2a409076a98e1c21ac101284e9684204a930f002d717244074169e2811008f1c367b6b04d868062049425422c7172443719028a110e0882f201238618a27dccbc418411433421e2c78c16564a089afc2c912225044d924031c28914294d224067b2b0207072444769f213c5080a28a13358d8254d3ed0e4030f008288261de8801040d830e3c64af919a24911435c61a504416912a54911509c7cc60a509c70803453851dc28914284ea20421d16449089e1c7184104ba23421e289930f987e8630e2890967a68d9572334385156209cecc14d6034b840812820821829af8203323051138792284932027509cec9809f381219a20d144c70c1b1bc5880568336bac94264e829c4431a288a00f0831331385856284932021a27c80882541463c91b2c4c9112d44940ff40e9924eccf10463cd9c09226414210e1e489105344fb9a3cd9801041503ec0812541433489e28408284e962cb1f965032b0c1958cee845cd4d0d0df543419bca3a83758677c4b3e28d65d560dddcdcd4c01b23dc8d92574e8ecc2ba5fcc11c1f8c9059c628a584b2c7ee5bb92c25438e52eebe27e54af97823ef9352c68d4f4ab9bbd2922c99e5be9572e54a182fde38ee0577595abb2c9777396617e4786190bbaeb9c1954c438c31ce186705b9c26294d5f536325b2c65dc1819ae8cbbcb9007091f4b8ed64aeb3d29656649b9bb5d2cba584609638c0c2f1b8e0ce5ae8c22de33b3b42c087368686868386e39ee8ee0f5e49bd742ec5d162f73bc38f24ab9bd1899a38c31eeae8819c6c8bb922186edc60bc26d83db06216318f3755df08231c22bb265c528e505a58c1bb661cccc33eec597059923af05e305dfbef71e335f2266666cad853cc21e3c1279f7b1e44a07ef6e662432030000cb1bdfeeaec5ccac6952c6b8cc524ab9555ce86313777775ec32336023330d7c3173906bb55d8656bce0052f8c732e1997779725b388777701f18794a68e3042f9a484114a1937eeca8dd9076fb1274e1ca90018593e8ca5dc6529659897392ec35df8de5ebcd735e1e6035e0ca3c591af0839666608f7e28849292f9a4b4aaed6358210328c31c2181380005e66ec452847d24624826b590b972db8cbd664660c423877987177a5e4dd95a944bbbc16bce2e315897a889e0e36bb221911ecb195e4dd2ac65de6b82be7f21599e32e47b91c2533afc58f254bc945a494707b528e300cc3468c3133c4a2bc38bec88c496bca7749c658c4a2c7fc83232f5b9121478e18efc695cb1b23b35cbede3b40aca9a9a9b1761f64e60b5e17c438462839486486917921b62c17eedb279779e5ca8d91f971e45d22b107c7c87057ee2edc27e332dcb7bb1c19c66586bc92619452ca85d77531bce0362f8871575555315ecc32420cf24a0b46e6dd85bb1b23efe3182f8c73969939b9cbcc115ed74ac9bc316e84f14129a365c117a184f149192333c708618c0c992f4cf2c818258feb8a314629adcb923cda0162001e23c82307203ce07b4f5a963592514a4bca5a0049002ae9b3e2b3dec8baa48c1b4bc9978cef4529d992721bc015e11525b46294bbb292114288c10861dc4b4a4c2425478ecccc5c31b46464b9bb97940c4409204cc099e5104431c2034d3c50653b8026539a3c598284101ef8316407d001239e2ce90014271de880114f6c64ae038926444071b2048a13218a1882031c30a2e2404493284d888862c4921d0310a0899328410128c093274e7e8608a00621a51b4a3b6ed851830d0108c01019229e3829628825414f3e2004079a10a193c38e0f248c004150ce8e0108f019020c6009019afc08f164034b3a00c54911528428e20400a21324449426509a74200a0dda12a08914294da21ce10123865812a5c91423866812658910528818a2c99201fcec188000470cd1440a0f0e079c1c6000063000018868b2c488a02342106508205184089252838c149b2f018c3022cacdcf10426ce0c91323a204a024449328372168f2b324088926507248414d3a60332325488a13249a5441430821058a105182960439f180078c28ed580238e140932847541d518468f26408920c11509a1c7184104b9a74408828460449793b000fe46c93265138b0248a1141420c61c49327429076004d3ce02408ca07a254221c08fa808f29509a401d3b8025508c7022254a93294b906852c49220284ea21cb16408294e3cb0240889263853a0348125ad0abc4242426f85f842090909092d2a5b212121a18d09ea612321a108511864262b1499a09e90100b4126a827846226420f2524042b262b8462262b8442c1893aa1221321a1c96451288c09eaa184509089d01312420909a15015934509a18484504f4888992c2a63827a8fc90a095d4c506f858450a888b298083dd45b268baa509209ea2d13d443a1183259140a858a4c16856226a8877a4c16f59820896bbcdd7d1e9022c406679deb4198e7629dab2369cc43c33ad7654a0b1cdde5d0f2a42df25a1ea3385cba0e57d0c3bf0e1fa6aff3dfdf769d64912ceb9bdae24a6f6a8b289a864bd72bfa1aab385cba2c2a57c87eb7b842f6f53e9464d8c57c3de7db7c328b6e979f931a4175a73db3bed6f71aedacc32dac745c219b11cadfa8758cbee65fd7377a1da3efaadd75519e7f135e136a1765adce4fa82dd5bedb914c7b36a37651fe6e47e6a6617f1b101254965062a8813a1098618e312d65bf6c210514bd97826aac76dad43a247afab0d50e899ed7b66a979b91ac9fbd07ae8f567f3223d9b7029dba839df5ac3fd7f9dd7561ef813d8c9a2f0a616e10172f85e3ee86b4d4d24677352d89f08e7c0ebc93d3728796e72ea5fca6a0cc8edb9d992b696a10a63905478ca9f3f0c3cf68eb97b72ef9b6aa4be1607744dad262a5bb05d3564d0fef74170fd6adefc03b3963b4f5e59d1fdd6d19cb25f91ec6994cad33de12dae2aee19d4dc9e00bbf85cbf10ebc751ade89b7ac6bbcc3b7be41acfab362f80cbba254e4d20f549a48628d26be5c69a2086bb4615aa8d3442b01075194e10619c6108669a10e7f5946e352aca5d2fb429e659d8eeb736f4a0b373a6a1d271ff943de180db5ee4a3bf04053a7f5a3d75a3255d5b824abd69bd2428d8e95864b6f53bd4050f2711c73495ee06870b6c86bbea6c51bcdafa181982cde90828b5c9291c23d2ef0ca69f824f37dc1f10d7a535dac68aea237e58325bad49bea010e90043121a63b5497aabb0fa48008bd1fbd2f3828466f4a0762fa8dd19bfa828bbea137958333de76244342980662d2fb2399182a1a4848d45dd014d6a8a9a2bba02daa9853e82ea8045390dd4949430736f8e04b7752b87ce9fd35341487867ac7f4fef51cbd97570046959668f4fb1c01bd8e9f91ca58bbf7b624f05c3b31ba743412ff5ad20e454a22d1e87889467752501d2f0fb463c68ca11daa597609421c4d9bb644a399fee8b71d79f3239db2e3d5204ef2e6c3c9406f8c849584e41dfec83bac41b3c3e0d241dcb276fc29afe1514d1b52da1c347b8f928fc7308bbca1ceb64891acf7bb3aecc3217eb445760e9eeabdaa078c315648fc167b75e801438cc5613bd68e6b27d453b83b10e5f53b46937153d336050696061af594ab7a3a6cc38ebbab8ee0dee7db8ce0f8ad193cc6db7c80e2d0d086895ca41a551bfb74786ea8d17b7ed9d3210ef57e5a1adc8cac1ad6755d57c5d705df755db2247aafce106999bd292da6681a9cb990e7005576e004136728c21c719888a032042666308517e6a881691fb9f422bf87abdabdab5f2b6522976a1704fb1d3b0def4c6b5a59563bcb3a3cc73bd9e1a7455fcfb71df1d1914bd8ad20d8d9e7e37d50f4b627dd2ef1ce0d1d4ebfc3e3f0ceab5d7579f809dfabe836462f0504c97e34cd48d0eeeabd56cac42d0897e0ad9f4b56e547dabd067afb8a06c1b7f96c9595e3126b346f1cde79c3dfb04560c3209d3d89c52e0f845bbb37d4307ee994d8fb489170bd8770bf68b001de901977c2bd77b1e338fea58514cdd7689cf4306423e6f28e3c8d5d6af9205c74ed4d610105165874c1420cd422edaaf3e3e6033cd708eb0ff758a5e5462dd21f7ebcdc7c60d81c0dd71f787e77c8120b127487d3b2665adaa3dcbbc5f7f0c2775ccbcb6b4f876d7958dfd38191442403e85d21efd00613c6ef18cd3e7c71c519cd87df22d9b1c7ad07f9f8b829e1c3473aa433f8ec6530d36076a85d837f9b91ec70d2f7ac837faf34b825e19ac4f5aa72e299ae27e1c43355d593a86e3d88eb495c415cb71e1f6cc11cca4c72fb4bc3bf6cfe54dd09eb5d6c56a4461ce0e4b3578f1f5de6afcabca24c5caf2ea9506692df2d62bdaa4299a9fa687fa8825d4afa4c18ed024801dda1da8a2d144ad6f31a4592f5141d6e46de7568efe8cf9379eddb59a350e6b7f7401db443b5ccfb68748e6adfad875747f5035c777168e85df41e9ea3b75911a6696f2acb15ae90a283f4a6ac1073451624d1b659dba54d4a9a224a9a9bdcb62dc9762ba874b525c97ea82a13573da14c5975c2fa33492d552cadcef7b4aca74adec2aa2a242b13a3ea27a1eb55ad7253f52a376155e8aa556e92d5892a0a30358132c9cb5b15cffa2301943c694621ee3a7148c84a9a97f2ef55d2941595a5a1fc6e3fc8ba50e712aaf85a632e12dca6ac84694ec920d5db97a603ef30ef301c5d2808133781ed423435db6b6a6cbe55db6b36aa7db2161ff6fd8c52dbc95b10a7244c2420d8c45920899b6b4f82fbcddf06c4cdb57a129d9374ceb75940f41d1fd124441f5d869e449739474fa273dfcd0233b7790fefa0a7d17f5ca327d13554cf679fac49fa9aa332df7e1ad9d413f7ed074de274dacebd9e4d3a6812a793b6a6113d9dfe9ccbd024e893f893c8f94928099cebf88e9f6a7ee2f113cdb97a120121bacc770b82fb4c3da14ca3f7f00d3d3dd3a84a6a0191bc4c4d82bb0c155edaa6374545989ebbf95897144ad6f2164592b5acc24ac33f2ae4b0b4dd2c6073996b74bb88266173d1adcd023332f524fa8eef16b1c049fb8f9f44d7f1dd8098f9564f36d744744d3a6812da67fe832631739befa0499cb4dbdca21daae51684f6999ac4f699cb0d089b8b5e434fdb67aa50123dfee3db2b6a019b8b6a12da479fbb05a1552666ae7d54853293cc372a9499b8dd22b276435a4b15d1b52a9499b4f365e8e81cdd9ee9d1eec8fbf5b84d80ab27ed5b7542f42eaafaf344de7a7599ef1699b51bd2d6b3dabdf3e17b188a7cf59898b94c3d3d13a92651ebe9e62799ff3846af6b948999ff780f7aaa798f5751461553f47c9509b2f49a71a5324196ae2e3b36155c7a95d08f08aeab8926b862454c156a54f146157264b192658a2c5c689aa4a4ab26c1bafaebac2d377adbb0dce8eab0b97743b26d20804a2a4ea18ba1ae6e75d553a4494a92bf284956245d1debab774382031a620cf586040154525d997145f41ff5f44c275a7f703ffd470e578570bedd4715c2e9c23af71d4bf4bb0cad7293cc49b4ca4dda475468f41dbfa942da77c854a1d147df3e434f28934d754254bb005240ff74fb70e83625c550bfcb6f3f530dad72d3e93a31313a55b94948fbf699f7a0271e5548d3bee327211ddf51abdc243a4dad72d34c15d251abdca45527642a130a30c95cfb569918759b8a228e7e3528f63bb6295925f4ab1ee0cce84e6ad9d24ff64b1f95a52f4dbbe8f10b791e6f6d13107d740ef23031baa85691a95d544799e2ab2aeb8f55258032716c123d0a71d7e90d0d71486c6a68a892e44577e226d1ab774774554952f4f78e49439e514d62bbf6f8ebe9f0eae736811f634ca2eddae1068476513d89ae89364da807ea628e072a88a3e1b32ad53253811b0d9fa900cc5c0cbca855d71e3725f0d9e3c6c307b87e8f06716d7d66bc1979437a00bd5b76d9a1fa5d979b92ecddeb9ff7eccaf8afcbce8772f301ea3625f0afcacd677e566f5904f4c6bcedd8b7f317f930c9524a79883d039536e9ebb9db91ec36df48516069f88cb44551a5e12f4dbb76613746b64da4bde7633422e51c0947caf1b1bd2ddbe663dba80f91dc7c1cf3211acd90483ef80c124947249dc749234e7b8fe6078ce3078944371948dadee3dbe746495cf00ee9f2939bf9b979f6213db319b97976b92581cf3e7568cc9a0f9c6d8b8244cbb9c61dc9e8d7b51ced1a573ba0d1467d5420a126fdd14ed3e86b1c12e93dec836e6b3ea4431cbaadb59ca44bd2f69a6f8f56d4c8fbf51e6843bbd737db6fa88d0dddaee94125162ec9f3a0100e2ec96374a3b43bb50ced4ead83762711ed4e300e1847cb4b2cbcc367b43c848377b0cbcf4acbe8f69c59252181ff79bcf5dd78a8b8e09dedf273dbb6f3f64745516c11059728bc4401260a377666556ebaf667afa7675acbed736adbf61e9e9a855d74eca2575d784774f9291289445936e2342d0a922c9bbf9e65d9afda4d8d8e3a394546b7b91e8944dbdfb7fab8e092fc4f33249210faeb6b1dfa29a5744defca48bda914183d59a3af8bea536aefbd87b34dc96e3e9b324196d6e957ab2e5c92e7cd07acb3da81801370fa361fed4248f4fbe9bb13379d7ea1131652bc3164a21f826a68418a21d32b15276efaafdac5f90ae8f5afeff6e0a3d8330a3f69874463dfcd875263efe12ca3b09353b47cd585bf70495e765acbb7a5a53c7f795be4fba225f76fcb3f2e9e805fc60d08fa1f6e40fca7fa57fa2ad50b4408a2485c8316ba9a867b2b5d1a3e6a47506d05c5c3da21e94e51a65caf6a507cf52e7627d4b24302e8475fdf4d89e4cd006b12d62957b5a8fcee5f16a01f320b97367545c333dc8c94a6a8010b00a4a0e14a102b40aad4867f5468c3bfa137fce947c32391d3f0413e1afe089c867f426af8226e1a9e089b866752d3f018e8d1f041f06878207634fc0f340ddfc34cc3f3a0a3e11920d3f03d5cc3ef306a7822a286cf616bf8215ac3df301bbe94357c10ace17f353c8ed5f03555c3d3c886e762c36bb0e12f23dcb09292bce6bfe6c74df5fbc20dc9fb7dca5774e5ab0e561d1f5eee29dc9294a6c87edf2d0936a651d6bbb20871d39b4a55691c1f3e3a74837770707070204e0ece27d47070dec31c979393f3f9348ee6e49c379f9c11158da8484c96a5e36fbebf9e0ed6fbf244f7f18982300d7f433b6ed2778b0ce9d16f805cc1913ea4bb477a0fef161940f367a6dd00b982ab3ea43beeebd99684f48e7b7bcd9fbb193940ef0ab950fc8a7646505d51543f4afa887637e7cf6c53c25dfdfa91aa5e15d58f5eb47b7fdf3e826f5c95b4f21c806d0e90af346df3117d44b739ba3d2f39a48ffbf0e1c387f4f1e33f7cdc878f1f3e7ce05c741c9168be2c6e68f79a749873d17344431ae71de9fc6a33024f7a8d73518d8d0f117cc387482412511f2caaa4243deee33deea3631f36373353347dc82b221f3ea60f1f746a3eeea39292d47cbee6f3138746898df31b124df5c5e8bbf9f0bacaa6cd47b7f9e87344e771e8d533db21ba0f29a81659605efb10d1edcd6726795dbd8771e8f63b46a237ef813774db865a677029be86565bb814df834a2bb43b7546bb5377d517a7e5f1d179d42b0e2ec58feacbc2a5b88332e1607716180b4cc75f71d050261c77577d517dd1f1d619bc23adcc5026dceb4e5ee9f86a0bef8c1e3fa11bbc23239365df92d4d0991bbc933d4e66f6929d379fec3c06efbc731cc77db71ee63e370318845af7b268ee70f3e1fee8b60cdd7e9b129de62a8fc1a5f889610f7bc4bef413d5d5a33d3c3f17035b5ac8d095389aa737752595ea9d2a2978a371be4cd13e7a532990a355e0a5717a532ae0a2a70ecdfadc39b5ddaeda9dfafaa31dd7ef9456b9896a8fd613bd50665a36c0757d4e8dd2353d1a5f5d0ffbd4340ce341ce8a92deb7514d4a72bdfa910bbed1f1efd5abdda9df51fd369f4783b8dfad4d89cefce8f3a32aad70693e7e5a5b921a7a6e9facbd0dc9fbf5b721a9feb6bfaa2e975e0de2d6de5d726c3ea2cfdd46b513ead12bda5d5dfdd18d4641b2fd3a121ddfbebc73d52e0a92eb3247c2fdfa56bbea3aea7269fbf28e4ced805e6fbf6ab75caace8da85681842abad16d11057a3de737baadcdf92d49a9672525c98e3dabd00d2ec563bfe92e393a3e9b8277b0fab2dc5c80ab7e810b5c807bfd637d3bdeba61c2fd5cdfeee01bece58609f71eaffa2cfa01ae83b8aeaa962a379df88b2c48b062c82414dd08e30562989208c109650a72120c313931c4d4c5bbb4c23bf00dde793d456f77504cb3978ee73280403780b0174e0090ee65d1f16f8bca63d4970527a03efe06c815dcc3d2dbddd5f1917748d5b554b9897e49550582a3e7e604d0c73f5af3707897f4666f78971b1299868f1b10f5f47003e2f4bcfd00a47250e7fd6d3fd47a419df7dd7ea075a1ce7b16513e580071bc2cbc831d562058702f4bc7eff58efd55ec8f5ed9eb81703b9b4fcba8d42015658faf7d379fac6ae1b8aa7e5dcfb28b3725a5cede33aabda256553da3b256d9a7f66b7b7648af6b74be075ef311db4fbabdc9ef45b47b41dc2c3f77aef6e8768c9292c063875806a8f5e2b776f2f3af6ae10ea9fcdc4dabdda9b58ca3556ee2be9c00ae9e84465f3640f6d3b201e03925a5eee18cee1f9dd7289fa36b1ad12eb4cf47b7dac57ed7e89551b919a9fe0e69f649aff7c0ec7a7c0fc4e8f645b7990671bf96e7cd47bea25d10cbf7b0047205f7b2f4f6cbd20b4488511a5750c8604b89773020850b3170b427f5a64ef0059b408ede21ab37658230bd9b8a5f7ea3018e7b5326f0d27b6eb275a65db468959b2ccdb2eac9ba100e68883164b2ac6da02b03a59e4f7b59ba206e98a48686d772bd8799eee623c188a34b0d4f1dcff4a2556ebab4abca4dd5abdac5045cf5745dc8fab20138cad1f19335a6fb8bae693725b0f9b102c13163c68ce90ed5f0165d3640b7292baa74107716a844a7617d5976f3e10a6409314a72c585b91a0adecc1582db94152e5af6a64af0a55766c26f906ebf347f420a451cb176a88e87b47bd00b0fe188f0ce1ee775819b0f57c33b5da9f9dd9021bcc3cd27c23c1f1a1a1a32f17b98e7263e0fbcd3c316813dc2e1be683e0defbc262d1b1d93decdc8aad1fb09b5b845d4e41452ab369f2b9656edc03c6b2a0195ea49b90c44b41f6d91adbb42e0b9055c37a48789b8d1fc216f343f07de79af77e8fd22db28e3c57a550882e9008e4ba3f928c0edd60054c758df63400f162e6009ec327951ab9db71e50fdb31548a8f71dff6d7d4180a28cde14145c4428861ac6f9b61e50bd5cea62a3baaa136e3e92b54a9ec623afab8b7748465e57afeaf6bba4af3748ac3f1c67311df0f328102dde5b237329a075ec39e20a1f65c5872719e1c3c3ea4ffe0756bf7887bbd2ba877b18f5def3329702dc1c41a146ec01f5eac5a5f8f839ea0148a8e3be8e750373194208cf8f11c2089b4c8dce0dd20d69f859bbabdf7b7fdf3f01c687e3ee701a3ee1052708ef7437dcc03bf1f0e79dade19777b6ee4a0d799675628c17effcf02f2ebdbf2ff344d681dfc7da5dbd5066b9b4ef622fef6cea892cbd8f3c6bdaefc646f8312eeff00faa7021c11b2468e301e105817b53b8f702ee3d177037ccc7024ed49b2281977e5fd1161d5ff1ec184343a6fd50cfefe728f24ef53d13bd9fbb45449f13a55d44778568b59b40dc4766edb8e7df35da09b5f65ad44911eaf9f8ecbb45b08b5688a876f3f0db31ba2b64ab9d76b8fd28903566cc983374bc463b9491d7f13d3ce976467f629df2ba3a12eeea704b12cfb543357f7bfe51b819a92efaa42424fdb623da7785bcf7c01ed628d01bd3d74594b41db18ed5ee35f68c76afb3cf8a76afab6f8f9b9278ed3d3c1703dca648c0a5e3abcf9daced7664fbac5dec0979cad5a28beadb90c4ae3ee76ea2daa15a748d4eb95afba4ddebf9dd225aedb43f29d2bb42e6e77be0a4f0f36993c2078f9b4fd5a507c6cde741115f1010fac04a2a9941700956956a91b9886aa97293cca7667d8e2a265459c21b3da126b3c429201696e2b5ac571a3e8857a53e2b5c82d9dfa57ca75dc2cbeb706fc9cbc8d1b73fd1e52105820577d520d89b458160c16dcdaa051f7bab3f57ddac775ab564571b92abfec0cbde2a5f879b12d9b03e282eb31e3632afda695d551c9579d50327d42a8de36a34ba2d437554e7a88eef6644a3af7554960ce5bed1a9f5758e46d6b93ee9db8c58bf3edf3e86224da31be9c53aef19a5343514874bef540f51515620d831422a04511b6f64c02e39638c3f5d7578a15859b543b515e327434b24f9c28e7d4eed96855998855918768dfe64d66659d835eb1ad6c35b96dde2b66bef46df30f98e65a6cc86d52e48b43137b377236b7ebb68ab9d3631acae55bb4af61b7195c612d4e800f4a696b0650959faa5a037a5042b3d471789bf6d7d7f5555843a65d95f95ea59bc88fe74d8e585baa28b55115ee19698d5c596f9155b7b503c1caad13391281389b2f7c08c760f0bfdd9befd68073b3b9765d547d94795a802418e7642fdf3be711fbdd371ee7afc320f8d7cec8220771abaacc3d54aa6067163d73919aece886a2705d5e9a841dc59159dbb4ced46a22a3b14da72e96d496667b5c3ae2a4fc32559851e8a63ab065f86aaca7232fdc2e5cb952f7234017a535fbc30a34e9bfcf65765e34d3210ec4d6e46506d7d76b715beaab6fd566d5bb56dd5b6dfaaee61f989b0abf75955b03abcb2d51b205a70ddf6fd6e72db3639eba65dbe63d1b7eaa7aadd9b0c47afce55a21a847da4d520d8b376a88cd68b46dbd8dac20c38cc28a3e728f283b893c045d7d09b4a4212c474017a5349e8d27367b4827855ac850de90fd0a9ad6f2fc73fab766ff7ddabcbaf361fcbc7fa6efb1a9977d5b99bbfbeccc3ddba0c5dd6b1b66b5cca2ed2e9e44775ab5a55836057efe4f917058205376b1077558f54f5a762ac5ebff86cd59ff7eaef95ac1a976647ae22963918bde82562919f8b69d9352d6279555a0e7198c7b57bdb76e4e6d923efc0ed2bdbfc8845db7c78f389670267de5de65d696ef4e6353c767ce6329f733ba41dd7a85306b347293238ba50bfc5798f1967e34ec9563beed1736ac78f76114bf3fbab5d501c75afbed11f73ed2ad449e84118b3e8ae7ad0cfbb5033b4aa6ff05b5d2ec529baabb2779ced95f52cab5dc4d2d583b8399bc93228a18492ffe04c36f38ec354d7957d9727cbb69a77178f77dc0ea823477c6859e74af2f1ead987401e263f6ef3f7a017914e53d271247ff14a94e2e9c0871b3396ce7e4347db91d1b9fef06f2e1a6567027572de5d4dfa320fe9b4fef53f6a7731fc8f0c6e70742dbbfc10c819ff47ed388ca807e457b7895e6e28fbb068115c9227c2f1e328c5911b3e0ed5fe68357f43b749b4fb4d8d57b8549d6708d491b7a9dd5553bbab47ed381eb5e344b5abd951bb1a9ada7da6766f1db52bb54ced4a1c675d1bf7de7b56fdb99e9d8b2cb02ac81dbbd15cab115f3bcb1ed59fedd633ed6559e68375add6ebe2b8ae86675787ffb86fb57b41b2af739584bdbaf52190a75e9e89843add82a1e1ddebbb1a20efb820a7a1be2b5047be7b90eb0252176e985a17ea7435dd6d98ce5efd26c6de2e7ac761daaa52f6f6eada56bb77c5fa76f9c882eca36b56ed82626761bafa959a1aaeb7d5e9aede6a17243b7bf57825b22062c9281322b8247f5169d5c8828743f570b870842ffdde9411c628e34a0fe94d1d214c1be18bb6a137e5050c385a6bf8ab8b195dda00bd2933a83412cee8526f0a095c3412dae8d9ef563a56d6cc2daae353d3bebca39d93f955bbd7cdfa2eda92647d6ddb11d1db9ed77b7f567867f37991462e5d9f9bcf9c7352d1e7bc2a773dcef7783dfe6417ea6bf9ba5e8f3ff8a0783ac4bf79bdbb6ac79d7d543b6eb6d2efd75523ffbd2bd61f7ef6eb9deceed5ee17edb8be2cd449687649f4fb0cea87a53bebf4e7ba50bfb82181ad0531df95ee82180876f77a386e4a785850f42e7bacddb3d2d6f99fa2fa2eab41dc93e63b1eebf5493bae41dc231fb2d7a3c657493d6e21b9fe945c7f0f8277e2e75f95a7c3fbac5dcdad8b465514dfadc72b7635158a440f6edb91eb3fb176efbadee1ec92d1d7832911ee0f87ee55e9ebd67644f4798bbef3a0da775099d350ee23eb3d5014049774cc5052f6f9edd175e87823289e0edd8bbc13fffeea84ad61b7de59bf01a20517c4add51fecd7e73bedf3cd374363d5f8ef6ff341c745f5514c472565b74e8160c105c17eef82608b6e5d0be21e69e7e87289bb0c8d5ce2ae5bdfe8726954bb55a3ad57db91f71f51dd2e37255abf573b29a8bebe5d7b10bcb3adfd41f174d8d61e371fcd4ad318b9543da31797aa6374b94484eb2292d9577d503c1cac6ae6e9f081972fbc64e1a58bbd5e5c50f5a6bc4411c6163148b5d1fbd99b0a4305586f2a8c27e22e84102e136f8ca98b8570853ce6dfd0fc9aa537f04e11fb20cd5f2fcdcd406ad83464050c2184f0828fbe216e535b64b146d3a49ed0345c82358be9849b10ee021d88ebad385ce2238441e509410228133f09f826602581024c7cae42fcfe0ab05fd10e20c61aba7be76e084a5e42bd54f8d2eb9246da9d3a5e422fc498ae3ab4665c89efb08635f477b3400dfd98c0c37382517c8c94547da954b94c5795cb647d692704040f99ae63d40922268b84e4656959abfa83f56d2038d355551568d4b26ab9be68f490f7c0bea84517ea74574be62b3c54445a259ae22105823345781292ac61051ab596f84563a10ef3ab020610fa30450ce0988703153c534c1df4eb37d4b0766f087e177ed17831988f04dc36c13d2ebd8536ec9902bdc6e1d2fbe9a11e2be0f5e4853cd63baeb2ea421df8853ad17a7578be7c4816c05e1d88ebd6755981c05ed55317f2583dd4815180a87ed5130775e0e321b0a61aa8232b9899d664bde31aaea9a26b8ab42b35ed2190e115f375ec9e640d1fcfbd9fb076f1b26aa91eb723db5aaadcd4053cdc92601d6bf743438835bfae1daa9340ef16d922db0c99a5b0610249798dd59f77ec39f8a23b8ef256887cd0d5403b467b967dcac75d75798ceee762205ecbc118ad4d4c6accf0dadf96443bf619b5b71db13e31aa3d6e49aebfbfba2be4755cb14fda3136e56a207886a1de5bb40b7aa8ea7116e60ac1c52c5d5a7a31c68394981451e91bddc9f7deabdebeeafb1e54f5be0ec23b32ca3ea84ab2a4f9157f1fd7dd1b5eede0fb817f315eb9b42098bc365ae2408eae0e3fa4e57a6989032fdd0d6959fa2108dee96a7ac891ddad1a2d5f82f16d0d4081018fc0bff7cd077e8ea0ab9f924842e812c28cf0e162b5e3ff5cb583df775555d5249abf7dde61867f554df2ce97c7e168525be4e88acae67867abcb39ce7086de6dccdeb0afe81bd3bb0ded0dfb1eae280f29d1ef0cc55c6eccd1b7ef696a78673e488977aacf8aa23aa3db2f8aea396776788d92ae63dfdee8f84c8d8ec73e1703f1dd80dbd4962e5d7d6ee1a2e3b7cf4bab68fc9ca857d14e1e1ec3a89c4f93f3adcdd1fc0f29897579cb1259492ecb1259f3fac4b26f635935721d3bf6238f55ed17a66159b52989cfea8f7c172f05d5d5e5a6241ed3fe532989b76a575dabd877625a454714b213bb0378262aa33bb13b80eacfd403359a55a013fc6844d794d1ed0e05049360f5677bf40122036e7b370f794b123f5fd56efbaca479eb5b25cd7a65b72e2bc9655d58edaacfcf9fecb376afbbeadab794d1f19376da49d897845523f2f3b36af3d867dd155281de18ec9fb5cbaed1f9ae5e5faf630edd0ebddf5f4af45e348488d04365ac3d319777761e81cc43253b952ee0274637c53c59831a4637ccd643dc94c035f194cb0d1b8042415f4a86ac1807f4f475b825e1515b9f4f8a3aa12bcc434f5fe7ed0894061242a2f58fb6786b00aa8abe8ca0b2341093be3e45a24e284b57bb3774d75f035060547fb72e2dbb6af7d634312da36bc2e89a7843c2af6ad609b50dac7475e6e8196e4ae261edae8670b954d50e6e4a2210ec1f78b96dd50fd474504d57755708fc797f8f9494a40b41f3b9e26aa80b38bac8e28b94d93f29b8a5b1374d344547efeeeeeeeeee7e7da25c5bd4d091778554d6ab7db645ac7a597fb7ea7bd64f7e21cf9af85c29c97a9f2999355b216c59f40d357f5708b3122d2b5703c761cc2705f73ee7be1c7091ab811cfdbe4166a4b5e59b8fb71eb4337dd7e80f1fe1bfbfb98f06dca6b8b0d2d9f90f0c2f9db5f639a1f6b623d7b1ffcc67d949db6e67cabd595adc1532ba3c53d147b4e3779c11bec8089f7b0fe42829095f74bea8525292acf95973bd592190ad33e459133cd3d145d6a6246bed375b045e6e4a482b045eab376fa8773bf286b4c8bc8739c82353e1a8765757ffe167eff8db030a8c2cebe119f9bc21e1673fa215023f5a2170a8e30a8150b838a4446fd8dceae8bb42b06d7411463bd8f3a2f9a0aa451b8d221a69efe19176d1a61da3ddeb79c3acd8b333ddde953256e5b854d5dab2d288d882c17c52d4200c2d05277b533510b32b84066608e1befae4d60e895ea66fe855146cdbb6699fdfb66ddbbe4136a632e79c73ce39bf41e61c188661d7ad63188661df2098182ccbb22ccbb2ba407963fa9abfdb0a911797e49ffcd237c4c596f2db16f1e12de2c6c4b6880fdc2239cc0d0167599f2378082184102e84d5b55488db540dbeb47cac2a7aa4b2ce5a8c4623d1b76b9f1f8d46a3911a73ceecd8af5b9f73ceb984b9bbbbbb6fd9d25688f54785b8eab2bbdab2ae6d11bef56d8b6c5b676ac1e50f995364033d36103785bbe3de67d6664a58d54e5bce848c745753397f44d6b342c93aa18ee78effe489a1658592f163edb25f59673548b5ecec336a5c7556974b5dec4ac22d835a2665e58743c5d899f2c3a1fa84af62fea66ac04936d55cbb1e6d2d19f94df5a66a30d41b46738d5caa2aecb21adea2dd13ada5943e117b12051389f51823b5e22decd879f3a9ae29afad48ad4fe6af90fdf1e17a75acc62b46dac53fecf37aefc55fefbdf72bf2aff7de2fc6f8e28bffb8a27144499129293e521e7aacbfc9da8b0cf4c64409d28e40c2a4af6b6fd1eefa8c87588d02b46286863a48475f873048eb4bc911198d02a480e615121f547586d128d983aa244b1afb0f2005f45b21316275f786f8cd887c5523bd2efa34fe8b12eb753d0b0e283fe1e7db247d639826fc9ca8be5ec7bf20856c1d72053aed21dd863402c1671d08c7fabcb8747d37239665d5e5d25521ede0a770fd240e29d1dd75204b0e25c6f4940bfb89e7cf5bf5a25a775dd57a771de8a2b284121d654ad5ef53ac96826aeb3dd0a2d52fbabdb4abb20af4e4e818c41d4f42f2523efc8a3eebd5994ee1ebdcf21750079f456fed1ffd79d5a290afdabdefad2381dd4941b591ed587f60fdd9f3fe1d0c7369fa0d7bbf3b5c1a32c74c82e38d0660fa42e6fb06e9b824b82dc262982324d7af5fd87eb12ff6ecbb34a31c764d797d5daf7e3eadba96bd9ed98734f6f7aecf4cabaa24d7671d617fdb8b8283af589d17edae63cf6a87eaec1d7b0fe43933ecbafa1da356b537f065dc1bd848ec8751c87b03bf6b000a8c7e7b03bf0128307af7063e962d469f0a38888463ba6d51215d511c2eed453bf9778b925e057a5d559c318686da86aec098f24a09b81ff91aba93dbdb4db6489421ad658f5a2bfc7db756958a13424cd5abcc98acf00e4d774f5a7e487734dd6d151eb0262ad55f15ae7b56aad0f1a73d0775c230050faae0c196304343a6ea6f5643b10627c062892b8060a2e28410d37b9519d39e8a136cb25e2501a6f78a564980e9d40510efa71fa04efcfb72ea0208eb553df5409d78ab9eba00a2faaba7439df8aa0e59a8934abd77fb65c5400232b46ce1093490c2128068e1d6845a411940a0828a30c0e0000ca635edbb21407c68c8f4acf04e0d1daf30472be68382833a3c66910e49161fa350c33f2a74ecaa78ab42a96a57fd09f4424ccb5abd83b53aa466a0a02bf94ea8bb7728ff0435455b50d68c2b2ddf89a02bab42d9365a5650104025d5b27ed9220838a02146ed90a081171a70d15a4e7ba1d1983163a630615a867c98400b29b244a121cb0dbc0c051db16db496211cd01063680a02a8a490185a33ae98f69d085a2eb16d98b03ab46d98f6dda965eddee1e2d06d6a8b363ae8b596211e6b78c1041686864c5b4f7b21285458918612720c0d99ae3a44a58b7fdd11fb48e1799b000e68843166023252584306676062cc18134d7731e57ef901882078c75a353a7ebe20a51b86747cc9a2dd1fc4a21b1fc4c3211e082ec5fff003e4f97e59b25f3e0427d36d988eefde90a1a8435d960898147104126f4882614ac9f1cef5fdb78885245e7e4a3ae5773b221f2fdf0aaacfc73ba3b69bcf4a198e4befd8abdaa15ad25049bb47a7bceea6bc8ef193f72d4791cc7edee1e10cea382b4a42b26df49ca4b91b12cb8d9e751f0e1db7acaeeaf142d13e1ce461a44fb48eefe11570ef355cdad37069ab57f5a73afcf636c73b437a8fd121fd8ca67a767d37a0ab715608c7a5bd45bf42b66e8d5c3b8d8b6798f21ba4bbc438c175572ac53bd6e3af317e79e19debf1dd5546c7cf2cb6340dbda92c9ee809b3909276808bf0d7af3152570ff257bdbc3c015c29c8735d619df878a536c0c95fa9eb0a97e29b70b29290f0d050c30b0d0df54fed76f494f8e54a929d038c96f5893c89876d795d76504ff174d88ed7e603cf3da1d644d42cda5d573a5e579e0edcf197144b74fc85857760c7cf07f9411153125f4b150598b0bf96f4b545497c92fca6ac7421c91a813561df54164af4a6b2186a24b0e561cb2a94852d221f7f7d813cf3f11718c8f34cf15718c8237afce5c6d3e17afcac4e920741190d8223b48892e49f894d9392647dc075279e69fecf24e90fda2fda8100095d3df684fc164651876ad20fd949d663c3263d603bc9aa3f6c95891d1307f6d8dcaf7b18b6469978a6594955051a8d692d55723061676274069313cf849dca353434945526ac3163c670ef26c4fbc32810de2f31bd40842a94648b8df93e1fea3d03ccfd5b02c648e5dfb3a4ac0e6f49296745719e1591a3908f3e406f4cc757152746fa3a323361be5f5be4d52c8ad0345c82bfb608fc66797385705d2e5df03d2fe07e4af8e0e175581d5687277255f0b03a84f012874b155311255d2953fd5527c5bfe626c518549756c5e15255e3b542f675a4bc84c98f5b8447ef718bbc0af4c6b05c218be2f798982b1fb748f5bddc222f072e492c3d04765a129a86c33cd9e577d8225f21d7e56fe01d8e4b171675b9d4ad1c71f48239a373582125fec275391c893abdfc859330c208454356c87ebe6a215b52e48339390bb7354e21471c60cef8620bbc02adbce1869731b2e02c72a80186cb17ef8a98273c049959b857e3dbb7f207737289a9e0f693196e8cfd6a77aa1142285a2d7383301510461212d9406f4c77aa1d231b81838f3be440c3b3a6f81b3ab611a63b229b7a411031c6f7e47bf2317310ccf2452eecf5447b565e309f941d8a779bdb9063bc88a5aa9846163c1cf6f28f6e8d57220b1e0e6f32968dfb6b2515738350e14bcad2a0a8a23ab033762d3e5689555b92aca3dc8e445ac325669ccb50ae87b63ea2a26fd47a56e035de81bf827855f873f3e17ab980cbeabcb4f968cd1c9ba1cb3ab3b93eeba9c1d5e623cf711545ec39e2ebfda1c169dd130d42291f1fab808b1d0e5ab7433f2b49fd612aeba1ecd03feffc2130057383f00e1f6e1a5c8743f383f04e6571acb3578d11c8ea4ba82bcb27ca75abeec3c1b2a2956989db69fd6012527df51c5552e368d862ae1acd0dbcf0c5045990f1851496307535cd5de0c296152c01c51263aa60e26f119a9977b69211bedad5e4c03bdcef4436d5dc11a13b225040811449b80109b878c3d471cd35f082186cc00326c8200a634c1a10638b3554f0250a5b82605a2970697e1c42b3147ad0fc0bf2c02fc8600c15c4784298284cbca9eee11ee6fa460cdcd59b92c2962e5decee89d6f02ca525a555c147f992c61f46ba0d97f9efc93fc951ca077df87ddfd673696fc5195368430a3e68498360c7c3aaaa64c532c6bab04a9c4f8394cf8f47e2eaeaccd5adae22641ab974ae8f6248214b0ba03715464ccfd191c773d18d8f9512096fbda8b35caa240775b77fa235bf43354b7e62a8408e827bfd7c78fdd880234c1661a460c38b4cf29ae60688165cd08e9ad790dee33c6e7e44e72ebaf6291abd735c9abbcd166c60e97369f89a35b6343c4e90861b92eda3da3dd1aa4d0977915649b322d151abe8a36b32df68a7e3fb06903ef31e9e9526a232dfcd01af49a2cb54205870a26af3619ebb8876412d7ab5f9a07d24f3ee6a914c25cd9cab1d49898ecb7c3ba823cd542432dcb7837a7451a7e395cce5c6c36bd239da719f1508161c579f682df39112d265ea0fe933f5c7e6dc13adb98f6827aa4fb426d5e552cd359bef6f68179bc7e196e49d3b6f486c6ae4524d7d8fba5ce2f1c8251eb593ddeb1d3b9e7d07ed843afb7c1b92d1b54f8dc2ce7ce8b86b4c5a04e3db7ce846e7aec1de51bb243ae3cc87d1b92aaa9d7c10ecac8b5cd23eaacb259a4a73799af77046696af73ad3b44cbb965d5efb45835e67d9390a8e94e435f7d7dc47f56756129237aa5dd6f361c2f40dbda9305ff4646d447fe6b14fde9064cd7d1ec3e8e4a8e81d63a34a639f23da05f5e8cb3b3a3ef3651e9c8f66aa8ccc8eae1d872eeb68db47d8ab8be894d7dce386849b3b76ac76f3dc456f53b2dc73e76abc19e1aae8232a738d765a6b871b92d1656a0fe428b7253a876454352e6d6f51fd997f9d569f683d2bf6e5daa25d4d6f0f3dd17aca43b2a3df6d5813c38c5f7a06a142413ef90b772408ed621e9bcfe6e1d603aae77c2f0b067847012d47cc224c17b144f9288f84fc49528912894c7bda332b345e89315a1b0fdbeff5c0688577ae846079b8a7445c0ef2c42cac231fb97027e0580d3041300f932db23c6f75b82f4645c60a8704ef60f3b23e043c2e8fc41699620bdee15f4a704fb4e4f1eea5a065f7b2cc772f8b8ec1d437766bf3014af29eb5c425eed6e7a3d9977748b366b57bfd361f1e580dc225ee136ada630d8a768570983684c4e90aa7bd7ac760ba8d83ab5a65c970d04acbfa5ab504f91015de01735d0c86c1301806c360be60208ccdcb7e2051559b0ffd7c599c110bd4c112b78025eedd452c60aad9042e1eeb4a6ef472cb13c4cbfeae7e3d8c5d9a1adcfe71f3a10fe2e9302f6f812d925dfe02bb635d067977f1d0f08e2b32f35d1e6b75b0cfdca2704bd827ddc5017bfcd1d869e8d1d8838c1a7bc647de31d33e33eed867655d406800725931cbb22cd60ec3fe33eb31e682b7eca81408652f5c92a7817219ac233fadeb0a2685152b114bc462a5e52316deb1ce13e4f2714be41253318bf845ec12b7885cb4b4b0c737e9eb8825628953c42cd913ed7d4a6cec40a3c66acda6843b56a7bcbecc7b98e68f0aef64977f55ac200179e210d491358e1f78e7d56efe71979fd84f7d5005a204d7c395c62a168d54b029b824b5982562611d797e82bbeee339d915dec1c23b399717943e6c0e4409ae5b2f4347825e73ff8955b8241ff43a52d9275bfef48618c02539578ae6b90b97e483504eb18edca279bc6330efcab3c225f98cbe2a43b50eb57c0ffc41bbd73f6645824b12fb4f3ace91380df1ce2fffa88cde5d3d7a7cb7c777f3c1790f531aa78859b8241f3724204f105047fee2b0fa1a7d3ce75dc4a204762478e7466e4a6c8ebdbab9fce90d6d916df96b4b62736ccaebac76da756cffa0db3994c3a1242a7f436d68d412e43d68c7f1a0dd93a2e577d04ea3a171b4fc0c8d62e9a03234e835577be0927c10508a6ac7f506a6e579803c41aa64ac76ef4add717d71252ebdf8e50703000cd5e7d27804e4e9f1eada17f2f0f8b4e941dfeac0f390d9d5e9b086645cf9d2dde392c282058eaefea6e01d0534192890a3cb185d69cb3b7b715c92e73ef368516e2052705d3d824bd52d1a342dfab66ac4fafb838f111e11f42785e5e1a04ef51a2cdc0b5d91a1abbfebb2209ca14b39c83304ea54afa9a9aa9935acf4f61763f52e8d06c74b07f9d2d5b3cd6efd3d296fa099999999a9535ed3d4dd8c482c0dff635d14e31b525a228ebbd3e5c2552e5cb8cc52432eda965e6a6aef4a0fe96e48774f8234694aec77a051bf77ee50c9f657a7bcb6441aa4dd152e554510c13bdbabcfaa6a82eb4a9a88be2e5caa3e04f2bc14eb547f4d0d57c1ea7c026efb7b61a874f52707efbcba7f6f3c387827be3a73c13bef87e59dadc6eeddbd303559703c4557d5bb1c302c6ca5ab6a4bf0bc676cc132469632b6d8331a56d7b68d480ed3b27603e2041785297a536a84e90474b5a9284861eade1b5d7d5e1ab46457d72b37baba361f5831b04f46c85b3ba17e337f61b6c87675a6b2bb3bfacba15fc5800edabdd6f1b75d54bb6464be292854a9debd305cd4e82226c53bdd7e19e38a17dee99e145dbd3a02ea54af9e14bca343070d97e439aa65c74734caab2ea241afb74ac4952320cfb53af0d51b5667027976d4bdaa63e0a23fc057df2055fde12d23ce31c37cdab9aea6b7e6cb3dff040924cb530375e695504aa3e7909eef560a3d2f31ddc2d1538eb5ac479f1047ef1bbda92758e9f9b62b46edd5c825eb536a16ed72f0b96a0e123e962b2b110949d5d7635fb5136a4bf399df4b862695461cddedd0f37287b933cf001e5e0379e2eabc6bb5d32eab7634dc5e757ee1ba9a9e6754efac797d8bd5cfe56ebdf0b04560cff7c03bf0f39a568d9f75391adeb9ded019e6f2dc0c8809430609be4031cd9f184c5def6a4afd525f600af2bc3658872b987acd7ba3f9184c355fa146cb7e61b8099cf6ee85c1ded958ef6448f0b1e50b0375361f180662b5abe1c234bf30d59f1b5be435d013136fbd7b5868ec310cef586737b64812ecf1baa571c982627a30d9caad9361822bbd6458f9a2bb379361a5caec7d8d4d3f997ec7e982f45e5b9e5dab7d2e1db8f8c7f16d6fc80f79386e64c8c6c3de166e5369b8d1d87f7dbe219b38fa7a27d361fdfe96a708a873fdfd7d3eec61b7ac211d9bb737a48b80dc3eec617fb72c2cc2ed15b145acf0cef6f587c5c9f210813ad7af77ef4a5f6f8a9417bcf4f56ec9d0d77e51c2624289d87cb08a0128a371e9ba240279ae9711e98b89bc31ecd37ab76ef4757e115b04f6f527bc03bf62fa2a69d17e9de6fa7907feba3e8477ac5fbf208f56af2f0e56af2e485f37f4f50d72d59f97a59a63ee2f300f8b14182f3d7dc03cb2803d7a53604c10e5a6c030515573583ab47089a280c53432192f535bfaace036850617346cd06f6adad2c7024eeb4da171853633ecb22a1921bfdd4451cb971f35abf3787a2e2c05a426480dce6b701ea4870706700909a35ac4092ee8c2124800042e0c1521872014a10c4aa8c218bc88821660c069a106b548cd6b706a204f0facc8b8124697242831460e52b05f9c30c51b54b420c11560a0841ab210079003f4f0b02906f0d4bc307051e2892f3c3187125db814fc404c1717f8c00827f842cb424a86484d4d4d0e438e5373419e203cd4bcc4a3378586959a2f570c667a79b4d579df8f9667c8dbff70bddba1c78ed11b243b6a0f88db1416b26899de941b5ff46e66e03aad9fc6f1ce8ef5f79aceaa43b8f4fe844813e1d2cb814b3210591f625122d67b873c1aebbcbfcf74b10115525faa5071c3c4419e0440a105490803054720030d9395ca420b7ad4560a0b4068abad9f7778da7a09f24493f521b57b42448b02a79558e75dd2201cd516f2d4b0ce7b2f03d70de93784085731bd6bcc7399de69986753cf7413066e0dd09b72021a0da437e5842fbaabe94eeb577f3665b12443c6eaf159471607567020050ea6c802325124c67f8b8f64e4f53bf78b405475594772f4e20d2fe0f0420e1c5081558469e6a85cb7e2eb4e6abdfdb6a8a5fa9aa2096707c0b7683390e6fb5803704d1c5cb703f30e3d15e370896bb8c4a78155fb4d18dc82f9610706f04e47a4076622cdef164cc3f36b20cf912d545667658d14abb353acce76e4212ebd0d1319ca31d4f0176f3e5c06379f9921398cb86ac8e693c30e5c82b3b7e6e9e0e35dd57b3d89f5765921f09dacb1591db2ef495b04fb1e678b5cdf13d9e17fcf0af3ecc03af035e4c009e968781dc23e9687db418a864f6686c719c0801d18b0430f03601c3b7abc382a4b66347a59e268781e3a74bc8777609e65808ec34f1f4e54694ee4c73b22dd00743adaf1361b6b1e2fb748cee3aba7838fc75fbc8343fa1f5fb3456e1e6bf764878e1fc225226ce440a4cbda58e71fb5fbd13914c90a81f7411bf07080c7a13d70099e447fe012fc2910acd33715032b04be86f2b042e0df18aee6d18b1435f4a576e0b123c61d766a1ebf5b5dfd86204f90439b3abf90879effd16be872a9c73b083db2e58dd5d906428f6c816375b62b3db2458ed5d99e94d2235e50599d6da65d4df7a01d0ff546a1e179d01db4bb9a860e619e8b0814b86d6b46874c5571f14597315e172ea5b834aa8f0b97e087b8f7ee71e189a61726d207864b3b0cd961072babb352acceb617537891c50dcdda7cacdc66ddaa3fa2c74ad34f0d2ec14945346ec9aa40d593c0f9c23c30eba5e17b00827730c0c30f4130d961871db664b1858b2d5f6ce9122feb9decfdf6949a7c27e316b1daa7ba455f6f34029d9a774b5ad552e5708863c0ddd0718cd5d932ae33b85d9e235b4abb63f9c41bba874bf071813af01cc765bd70592fd7e30279d6d4dd4b42432f0d5faa2117c8f3c05cd5b958ef7af016041cf33f3090e70d411df8abaa1dd7a3addaf5e8ee8169ebefe1693da36fe10ab17ed1b8422cb93ad6214e0b76b4f5adad77af4ac3f8baac533d2a435c826740dde1376170dd03d3f04f8da13678e70ddee98680e19d30bcd3bd2c6ef0ce13c33b1dfcd2dde3d2f043786708f21cf1a28cd5d9335667bb1a526375b617f21cf1a28dd5d9ee1e96c843fd78a817889044f9e0ca5b3a5e7b01179178736c116e781eaa1b079216a47a535410d31d5fe9f82726fe71895ca5230f757c7174acded5fca5d290eeae7ebd5cc22c2c8df2b93eb7cfad9278d8de7e647b3baa35dabdb543da31e1fa69e7ecbb41eb93a21ad220d999758c76ac465befaa7635cd30e02db8ee71897f5ca0e4c25bb03037c824c15ba7f25e7db7089bac4849f01c592742b62aeac465a242c5899b760bd0c9b4bc13434cbb03e8660c20ffc6c0452ec977352c044e26a0ca4d565dd62aba26a85d7f0c9f981ba45b31342b6b84f4d2e0630a8cdfd36c91f7fd8ee5deeac05f21f1158df4d2984609e21687d8afd2409e1dab139fc30f211ddfd5d0d0f11de76369204f09eac86befaef98eebecbb3bbba5ee47773f5a6ad97e757c09f2fc0075e4af593baebb52f603bcae2fb5dbd1f00b12da2c7a956685406e4bf017d5b6046fd16be396b604bf4f8c70cdcdcc15e8b4d56520b8247fe0928c0107cfbfb8d2622ecfc7020e0c1cbd4f63a8b70671ef0a29cd3d15eee631c16d8a0b6f3c2ddcfb07a0107942240c1422d0fac23845f60fbc06b518ad5fe7eaf15a9402677d317a75649ecbc4d79429b2abfa132febc5710916cc1bea36d5ad17540ec47cf144962ec4000106a68ee3dee9fd0f44204f34a1b428430a7e20032e84e1d2c5b4df0ef048881b1a1a52c2d4057ff9b2f2d727567ef03d2c11ae754d8b6b70f25b7a3ff1a5595256b177ab2a0909cb3a85198db95c5561a25c21fce2834788d1aaa4b42e2b462e55bb9521a394d6ad68494b6a518bb1bac2c719151770b451d15d21f0c917912023d75455256546238410c65891c19263ed628c70a74c4308e5254b2821e48dbb7079638c153db25d59307209725f1abef7c6d0e27bef3df9a2d630565a600577ad1d3ac65855b08a558c11aedc8d0b81c010468ea564b6688c114a1821841156affa62c7b02c2965aca28c31ca48c61c2d7ca4525ec77d62d627726bbcc371795f18ebe58c28adadde45f96e7445a3bcb6ac5f94e1e8f93448af14146a74c595e3527c8456d5b8142d4bca48a3bdea4549d351639dd8697d6b0718c0e6352dfbb65d1b7d9272b1aa16aef62c19c428235bd6b7c36929e5b32c29658c52ca28259dcb3b57ede275415945196394d10b8c5183bced25137fc5d81be37bef41186384ef6dac1d4da49d55bb68590be3930f46f8e07befbd171f64c2e3088f6299379acfcc3132f31b83991f4ff8f8bdc7f5d51f4ef22056ac71105cba1eaf488160313fadcd674aeefc47b16b9fd5e6a345f97759da26dfc355359f150379c697393ab23d27a49b8f76c616a8f126e5b551a6082e61e74b797e458160c1cd6bf3a9a4b5f5806a09792ed67918d5b4b8f9c80abba86d3ca337c504ae37c5842d3dc6db7c887072b076343356354d68a3377546aaa637c5042c4dd3bc5d5c42c595592e2dac91af57bd11243f34341424218410be43f898f911a6f16407992a6360f164073482387223e1a1a1a1a12006f39ef08448c30b06c146a2230b32a27842a48fc6fbe3f7becdef6f4a7cbc01720517bf0da34f8cf5c90e3255c6b8a21f8adf2bc15cded146ef45b8f9402e3d7eec84cc5e618f5a7d59e981965073876a291ff60c7b4a824012844bf1d60d1d6bb8147f511c2ec573a9e31f18ee7aa7753cc73ca7239cb8e941f10af01eaf9daaec819d50f3ab5f60b88d8f16bdb8344462818429ca88838c31465c6f47736dd7bed77827f2ab91bf9bf5f9ea463ee34dec4fd2e7040e6edb8f6e3f26703fd66577ef79dec1b2d1948f8eb0ef365f0d824b2fb6557ba0ac220a3f696a70788737ca33a27c7f4de86826d470fe98c03d4b1efe86213910e11dd161f7ba7b503c1cb28a2ac38deebec3cb08d3f0416ed82dab71f389572263bcfc46351ab92463d63dab64d52e8865ed568d0d02b787fd603e6d7947bea8558fbc237a553b28379f27695555957c15a82da8844a1405c2548f928e29443333c2008004631440304820140b87242249d3851f14000eadb64e549fc9c3200862c818638c2106c000000008008c0840027287c87f9613048de68563e7e7b7437c79fba550fa2ed3d3608e505284e2460d180c4d199d905e55a6e3bbe013a98ec4f2e352d1a66164e66db5b714b761efafc342903e27940bc1378c648d7dfb52907cd9a4fbcc5ee6bed43da76cdf14db3d85e3865fec30a53ba6f48efce615ff828132fb4fc9ecde9c422b8f50fae28446dc66f9ede696fcc3458ecda791958182dfb3febd17cc343ecaa6610a5b3f6bd62d2c801461d6b176428a8edf26a03abfaa148298a74a99b7356cb8f51dce8882b545e461646eab96676fea1e8e5c833e82a12f55d108f8088916fb38c8d6e5bcc1b4ef3f5b4a9a1c83a4a9e77806118e2f5251fe7de0007d8c06204b06f6165e2568cfc3901366a86cb36939eb75ae3f717afaf8a259bf8592b07216d2b9159bf6248c6826a12f99a13a65c1cd474722b2bf39d5ef0a06021d2122e826a03e6ef98abb94050a3604f136edbcef14ddb6377d92fb26921f6337d15450756a2fae4a5ba85630f4e80639fbd5ff8b9dfc765b016f83c606371790a81b1b6a9e0cbecabff333a17bd10e8dea7cfc752c685550b30082534cc92e11a4f5734cd77c0d85c9b2c4f25b049794d0cb772dce3c3ec596481f6d7bdb31302aff8795e88c972956ad75cb536c793cc5a7fa90d9c930ed42e21281afbc2ae5861b7fd7ff7e327cec4ae795182edba93c750b75169d8b888f69733dbf05aa7c9b65e1f88d26500a592bcbd612d9dbebffe1e2db42cbad6c5196d3156c2731f13bb2553b802bd19bdd8f8a3f3d0a056f553d5e295c905de0c6e379fba209375a458abedf72e806857f6ac1dc4d625f3e60cf99db90fbba6bd40a119f61d9dc84594e6068eaafb9f8d54b0d8a85372b5a8aaeede30a8d4f1225b052a740cbf22a378f7c737450d17c648519e385566cdc973255847119306c907a73d45ab209b4a6248115824181fdf37b9ca43d2fc06a7148ea6aaa21868c9fa7abeef8c65c94b3c3ac848fa762fa8a1275d78556c81d75aac781905076552cd597cf509b5c93a1b2c71d212418b5e3834dbc2edebd2124dad2758d0ac73c8bdf4af35a8b403aa75066f3ad6fa0b97b784a638cbf49309db666bf7f4fc12da24b9ea26bc844f31ece1a774ab63e0a050ef026257d519f933608d6fa2a7e446e54d8728711909f80497f4e9900bdd85180cbdfd0dca943f75616769c5e328e44a15070bacae0f937e54be526b11036a6c1e5171f6cce4a6f2f1133afb5d22305303d35295b51323290a5512ffd4e452efd56983ee8b1f9f26b1c2d668d9a562a2a50a635950e82835fc0d545579d2206a654e3c05742a6f4d2a9ee1e79857b3ba4c3f7614300dc3cafe42fc51c0c84fe65f780264e13b54d919a9be5af98ff3e9a10cebacd4fffb4c167e422fa923a97fa4033cb693ecf1b646c6877c291778fc9c5fb82bad661b0f2997652b68763aaafbaa0f7e9404411c51b2663ed1667c832b43d061f6d1c971f4e0cb2f0928f6f04423d62a7c21bf0eaa4b47aa8c0624216d81d53cbac59802d6ec196c000420495382c452092dfe80973edca78aca854e8199d615972ef8f9b45b5928642a1ac6ab8f5b6b7a6a118f13d6335d9ea979fa3ba88203c83ea618275c23dbf768bdb3aaa243cd80b95197c5606b8d5fbdb93301714a09326a31a194c623ca006400fb05e137a4dbdb7964bd8675c03786325e7ebb385866061cfc3a63de5008d2f26d660713637234fc9a98dc7cfbb0224b90b678f1f9884b6e01dc9324836caf01856df01275189e1100c0eafba2eb86a59838460158b1791f93081c8422721371e30452f92dc6a218a9040cf5d4834074b6b12facb7b861f4170f097dad305179ece7dc79d8557c21d1152d8dc2cfbc0154a0856a5c3a691ca1ca3736d49a9b67b258f20ecb138593d7f849490b53a462242eec0b1284a1cc0a7dc11ed6785e4cb72cf047e99c42924c78d85371a500868403d954291ecff3ec835e2fa8d5f5c8f3c541904b429cf2a193db54795aa96adfc4a864e178c60deed5890953444a89e29464e70501cb34e9bb478a6820cabef5194b51da62af04bbf7be7d435db924f0b599051a76a29c5d4ca363dc69daa2a658a4b3f8132468d82d63395758fec8ce9d23601ea556fc1b103b9a4edb86d69aa4077ca9f3c6661f971e3b298bf4f55895aa3f1fe34dd3ed8b1e93fbad4c633b0b76b5287303ee592aab454508d415c61abd949386315629c372f7e2e399b060ad3f97704121fdba4ac8d92a88eb4622ac72aec827cfe4f26520a6e41813b7217acfb39724ac5fafe127f16ae9d49c2557ca9666a7ef8774555a17efcf48b6d9fc949d902ac27dcc210939bec103445e3dfebedebcb2c4e948aab90446e8a700e80a64e28d221f9ce15c275af23983270d99c120220c30861ed105a31b65408889001a6f4362c5568a1cdd791c416d9aa0419c05832b1304b97e12ee1d7aa23ece7feca920f6aa04a62554eafbc25b10c4d228c07b27f4376ec4afb27b3a7b175121a912755723712323b557e6fb6f733aed200e38ef49ae1f6516a30bfde2f14f71676453550de682941552dd35aa577d2943f542ae60dec8170839910ba18aadf29672c21b3044a21f8e4c98e3a72b4ed48dafad46b7a6a5d69dfb4b68533d11585285fab843da11bab8d75800b9e85b2b67ad701432b443aa33f9eb4c273048dd0435e586aa8c037a5f691613edc404d0993d59132d46531f62d6c1ab5d6a59d38a14320fb33595d766d7b74c8ac5a1288e8a13a0293f0272674b0e9d9acd1c98e82b0c95f1cdf54941f0f370817a50806bab05e118f430a7773bbdf41bdd04edf5164c196c7864fb4823e7f4f964606ab37628eae39f7c2c27c7b0cb9da230bde1b8599e49ee35064c9716d17f1b89f80d42998ca1b9de653db92255c293a533adcfc5b69aad932e551b7aa8a8c5e456ad1aefd1bd8ea4b13cf273ac3c56a3507cef5cad85f4f5291aa79550f625f57036f5644799a9f4ee8fcf4a2925d957fc74c957f526d320c3c80a87630058dda416ff55e04f290ead1beda72ffe3f77b45d14bd535a12d0ed916fe026e91d9c4126eb28e552dcc0e97fb175e4c53643bf8865b4b620706db81b1a46c72de1ebdc87fc072e0d28c4ad5815d2619e63065d3f33281d5a3512cec577f4b6101e44da4700c8d745a5aef16b10013839a717af6b743057ada2fe6ec130dfee837ad6e62d2c8f7336f49a6fcd46351e0b2fb1408239267c8d205d0f89df47f33dbd0d99e969fc22ba0c7ef5b7c540c81f5931b5fcf08181e8459757251482d32264632109d15164d60d174396d558be5aafe24b4d65f21e1fa730ae31f9564184ab4e5b1419f37381b735015cad34db7f951d0567e41c0861052889bfe5c226157d8ef9ad8d920d6e3be56297a1a05d5710d7503df326a1baacaa557e0839720c10db6d269c91c8974deeb54db57b755752594b93acd1577693cbbdb88df0cf1b593d74f14c42f7d930e86b876e3b1359b4e4dcff27a4a354e2b617a2a8e0018e9500de18b3c98a88e8c2bb4e754ffeb05819394c63214c2d7f480bb4b82f50537af394a0bf63bbc035886f11d73b37f07d8031033031e070bf15d67f35905269e0336e7688f3a5ed516faf30c6c3679596718fb6d217e489ed78ad1034f160c22305668573d4e0947555d3937abb52167400247010b873630e13e425a1de400c6f04270c230e67416c1264f09613e6a50491244e6319934f11fbac884bac85f55aa7d356398e709159d5ab5127d7c66d9031fb73cfd7236c4059b780bc966e540bcc502cd1c9546003cefc009f2821e854e666e388b8480ab5dc1da90faf860b65c06d3199213c995106a40226a011f472974dfc43d3ee5b44561029929a0fa2c6b36d5df995e90224fb8b1aafe1d1986d306b351595742f955b5a6db6330fbda2940b96d34a037ce38a0ce9b66ce97de7f69b5e972307ba982d91e596af53cea70d8fd5859fe5033bc8f6701d2d0699dc8cc8428f6b4387d8a46c9884a7627d745915508a282e75b3cda5ae5ac4af1b892d30417f1800fc6f375955049108a915e0e40c6ea7b7611f8c295adfc2b717d41f66f1a38d1d624f776debcd9d839b66c358fc5142ca92415d3d367eaf20ac4569d601240c0789824c025615ba8e93a7076d86940b8a6974417ec52e92b30d14ea88ce5f9eccf674592f292b64d9e3fd102d28a5002c4681a114c2f895654aedc7902cffc3fc111e587fc1906a9ac72ed83bfd7c5043251b379a76981cd5dea657a5c6965d8ff63644d67bc1a1c10074fb12183cfe38e3b62c775721d917a97e158e10d5acf5db24226d2bb72078f1531056f165d86b87540d223c1e49ce25980bf2ad011c2848f456bc50bf731968d6c23f3bd04e23d6ab3ebe45d52413a8e9b6378f755f1cccce303b0dd070a57e947b060cd9312ebcec6bb20b624e671bb8290c83c2daee1938ecda6d9be61f33324e99501de6ab99634c60885fe5c68ea0284e8058a95fada4ff5d72bc4d6c304d4d00a1515009b8ba1cc2417e101a55522199e7990acf0b27b6b5b76f99cf1221ed15f061cd0022fc8925c90332dcd732708ba3d10447443bf07980471916e146c963f187aa51ce857a61fc12d912b7bdde9cb9278f163a1f41cae50a310136689373934019fbed6c9b7e150873c6c6dfa4a4adae037e1826426f9e942d566978367788e7d8356eb4bb05b707991e4f2d39ff113fe15bf4430e6d42f4ae8aa4b371ac5e263e760754d4f0e0ccd8089ec13586ed7f42dc2db1d1e0788087b673cff266e0c4a1dff4d168aae009bcde51ee222594fb4aa374d1c373bcf402c7ee658de07ded5d256d0430f406a8d6f1b2cabc75551388c181cc49acf44e3e239e8c9573a61ee68fa9659c12bfc20dd76fbd4e18079991abcce3cf658d69ffdc45e3fe8cff431439c65cdcb30f214a63bd008bff3e6c6becbdbfb84c6f745a5c8eca69b21dd57cad3e6e03dc27317998a6e5512f7230278d8b11fe382d2c2f252d9c2678453c9a7d718a0f0e054518f5502622aa5ab52ade7dc35ebd2f820fd62aa2ebb8a640ce953502b09209c9cbfc4b05170013f2b04c7d077d71a2dfc9f9dd7c17575059db23f734aca880181726cec887b9a60d4197d5da604bdb8abf728eedb9a4c77cee938ff90a19229ba8b69d22120dae67b1771df4917d02154e3fe2588f3856c123af717fdec2fa4e1f25190422433a7d64810677f65f8768505657d0a814997fe84eae013d391851b928828a8995608314b30fe46dc2ca96adbbd96b8bb282b4f12b9ae00b2357631f318cc33d23054dd78680ab0a5dceb75691664edd5f722c70e9acb4f215412425256b9fb0c9fee56d655bf440a36a85e51c1de73fd2f490ddb40bda95d7dfbcfc835ce25fbec321923280b72075e12e495e11d51fa19f7a6e6c7d23f2ba157462ebae863634be49430010ccc27a56da89e736cd88efbc0c3e1fdcf81217a96274f18b5146048bbbdd570c174ef142646d2aa593ea5190c1c6884623bb5a6346323e393a7ea6d84ffec6c4bb6816bd25429158b3c0b2aebb19c266d27425515c5e56d89f16c503ceac3054dbdf33f412f30364b67131d855d413eca9966d617c936940161f6022a9be7c46d43a00327b2b8f55ca04e7782b2ac8c84a52b63a7b4cd51dbc03424161c695ddcd9c9c9d22bb79f6860728ede10afa4be592115bb132ba688a2017e82b55c11a57a5eb44e2fe69fc33b93b3ceaad1674b302b5dcfa11292d763a4468fa0673d980ef4f597d8ce148556628378c3604e2f9dc6932004cfb09c51d9d0edb677534b871ff59a86d3cb3393d32b22689207da1383c5d6f3e6acbf73689d6afef135685dd88a391f1b621704c4d29ad7ffc5c15bc6a46a5f0b89f05d6029245a27f4e0c61b33f33b5e90cf25276e04b8e8d71c4a523edf77d7465022566dc98a6c409bdd4e40802acbc3dda25542c8c8b1a288943ccea8130b1db8dfb36b8d46689239f2cb6a41d2ee4b36e3f5e38924fd872efeb5fc5ad70eba86f0ec2fbb957fbb14990e0f97be33e52a1be620166522e808cdc165682e2132fc7c289d89b5d6885a8ce1411428259e879cf72ba6b77674f37b987ef040adbdca531dc2d6e4856b3427a45beeb31c3fda22849762e47571d6f31da97539b0cf7d7da4bfaeb849f073db248cd3bbd489378a0da781c29a07fa0be4ef96e305f1c56870fa9509209abb1e072b2e762d77fb937088e35e53a622bf94b95c43b9918e9b0c52ae2b12e92ff785b63b0d3994cdc193c1f126cd5936a46dd27c740b562ada718efb40f914bd191c63c93a8bcb8b517e019988f73d71880738051697cbf622561d1e66ebaf642f93784f3dbe46b98c73c46d9c63db767fdf95cac6b5533461d4d57115c739f10157a921d082058592a5f45b1cdd7bb471330c5b43bfc162bc7ab6a34376530db52d92b3c310618d18f108da31cfc13e8e258318d0afb351eed4eac3026539a7f7969dc7837ff23384fad76fde19bef9b95f19515e9d7d64d7bc2db28b6c157d502d99175397926f2716627d2f1dec888f62991c6b83f4c64b0cec417a015e1207e6495ddf0cd55270708d4f4d2bba047cca236a7790d78e103e5d2c655617915b49dce7361df221f2a66220aa47ea5b6222ad084a1aff1b069a6d39b7fd4bc16387ba01b7e90eb119232e491627757bbaf805137b67f384820e2ceb1284ed0f3a8c2915e719b6a9b9f5d037b501b1bc7b141f83e21c83ec645bfd46bb60ff49ed0f50443aab45013289e373205d1338292fcd19295a720f48e79162af57ddceacf2f3e09b500b17cfdff8bae9fa4944ab2b4001685e3e2efbf8f0a240040f82d9ed2d9c2b9d3b7b0074bf02e53022ed42b1f80796bb35a0fb863315ae7aa38cc362fd7f1c5ccdd91349603678601620afb4af25040a3a98fd3ee1a1952814a8abe90ac30dc0275df9617b48a1786414fe2e5b049d0eb3e334f8004c48cb47b6e4bc6d9f403a3608deb059700d5b04d1836d40d6d2f57a3d45c8023a01c61ad21f3ce7e5be9e6ffad109dbca6259d622b58850ce5ce41241445a8cf101f661163e6e6f604f83e13cd8772503b7ddf70f0fbd03adb1a21316b655388814f4ae36a30e4474e2c1b72738e99bdcd5b041aa0f8f51818070f42deb497d81f0cabb57a93d0d99a1feda57cacb58dfacbd8f9d26169578c73d6f64be37be534514f971e7574aa3c28059e98047734dda794875819e9f67b535ba9c6dd7f8c9710169fdb8dbd99db88053d1fd5627219219fe2cc816adf7238e522ba8983d1103487effb21e01248a8fe8202aecdece00707aefba439211086ffe1e9202d408d744ba4455ee596314b14148178f79f228310a81c527a7a31fdc4166cf3fc2bea975e51e5f5052ca02e981e75975dd3ec7cf0a9c62bce129ca6b463b4eed8f6a084bd14013eb70e2988df09b791be88dad78dae3e2bc6f2fb1cfacbd5136d9bd7d92e77f25efe9ac61c3b49a051e1902d99b6204e81b21daa397092e494d416cb3abf110cd13a962d21fa9d9239d1b899e454ea350a23ad4e26acdae67056889466a6d343c707b0ac5ad1379049ebd887bcc4755ed04e35c4ae777572332c1a7956d295262c376f07ab002fdeed0e6bf7f16d991165f7baa0b80bb7bfa71a28bf68db872db630bde03fa2db0de90cd4a3b7dbba3e8c3e000cebfd48726bb202cdfd83212409cdc11f3d0d9c08c0d1ef0e063e98ab74420d9c5c923988f137eb0acf2423f96084babbed05ff9258faab04af40901372317c8b2000b73054ea5db478c32becae2ad33f9339c9173386bc0215932cb50f3afe04c77c8c91371dbbc1664bb4f2288f7f89ab1921f5f0e360bc1601fd3931d5470cafca774abc80536092c865c5ede3c083058a847ba813f1e3b433d14d0cb7e7a59e15f09b2bcdbd11aed4e4b26881b8ad450f23b566152fe393d001b359605f6c27144e1154bf803073cd6618c0ed4a1b3d096213a6173e7bba09b71a38740ed907a2a8cddef183994998612c7f7fb97523ebcbab5486df33166f057c6e9022357256d7143f92edd529fe5fe1002359cf14c0b470a1f1821805d4d4c5d2043f64af550fe1146e48b3a11bddfd49c9d4a0ed364dbe8f354dc37b58d506b70bd4bcfb6e4e19cd98456492418e97355d50639864695fc2c8b9fe41a3920b812d40192e1239f312a6d3626625664ff481c46140ba71b66f85b8398477463e653d8a62ba2ee5224e05434bb5f9e45e1000dc1cbbac35d3c3c656a25888ad0fa59cdfcc2594d148d70e5a92cbf70a4dd9383271316ced44a31219f3da11c149a3442050aed96b91c0a655f6c127c6f463748f61faaa02ef06438db8215109aab481ab5f8ebc35b0035ffab6142587921190ac5e76a5c68c8b30f21be547aa112110a9a960de7b5de4bcf16dd92d87f893b202c7710e528f1a099d647d71e4445e6241e53a473865f863f1ad3b8a047c3d25d1936c710347a9270b432e984b6c9e50727f74413a76dab40d59196c916830c2badc0d8b016c1f72093122239bd2c5b23df6c38c296f312b9da7c3ed3caa0b769b97e044463c9442162ee6707631e83f010cdc30dcc7ae0990796261e38db02171ea2b52c65367dc82c88f1118dd8b1f509203ccbf18b4caab303b37e10a8774c2751c83aea69111b7450038f8d35c67bbd5b78a2bbdbffcbb3c77b9da27c74d213b80e66be677b5b931e252a0c8aa010e8c6499b0fe9c97d68d9a6a42c26a5c5575f3ab632a8dac9c236bb422fa97a8c6298ec1d4e94bdc223ab33410160e101064fd6a248065d166ecb3e182eaf289e3bae18cd73f38b3962e55bc638f34df6cbbdb3c01db93cea82a8a2774094add36cef8168bbdd89c2c18219ec5fc814d9937a486181780e5a7a076bae97b55e4a9df91cde2859ee7332d49cd90b7442ff6e6a9d2a976cee36209ead1b23d57cca183ea910070fc0b970bd93fff3b7e94d8afc6dd570cc6d912b25af7822678ece51ef54e4f21db503770bb96ed2adb89b1467131decf2c09b4f7467901c524d49fb88dd1cbc170198bb3211732528e2c7a386c5f6b496001592da563f33ce4438444f691e7b7647df53a478942bc6bd4aa799118f3131c37063cf50d13611ecb0df422c0fe8cc0ab01560ed9af86b082247933168620ed57ba296af90176b78bce15ce913161ab43a1bc0ec65a2c70c0f4220722acd8b8c82a9f970e84ec156525cc62eabf4a41552c80bde034fde5591a5f7a70b4448e5e8bf5ef2389a131d9e627a6e30b914c97f10ac819c78a2c0cceb4a1d7f5c8091315f2756cb9a9e3f9f83e4e0d33a63f39b0754a767bbf8af1531b503529277257c4b3eb7f3f2d2a057aeed008e6020c0d6d248fdccb2cae086eb6dca11e6d88bd6a5d16931e4fdc456152ed48e3a29ae47e3826652655fdc5ffd34d202e8d185827d9038fb2dca3f382670d3f1139707905bc788122c6596c523be876f6d2414d241c68025615271a05cc0b8f8e3c98d495b42dcef94502de8c07efaa785bda05a99592e945616bc0580ee6b4176a1c86b3050260c6d8f0f97325eca7aa3239e14b842421d481b113b73ea81f132b1b9e79348d38288d63e5a9aaa21c57ec0a535613b1c068225566970966c7866512f8ef1a63e90cd1f751e2b581597b5947852ca825e6dfcd417b682b08db2bd17114b9cf969db8d331aa3c45cfff8ab593c432662f87c6068847ba70022f913e62890b8dc121e9f9bbe568f7d00fce5362f4a421f18588378fee46a5fc70c6d8471fb55081223a1600b4c02a2ca7591e061c4ac45d1ab96ad53e6f9ac473ba66e6dfe51c728c794b6459500e9aa9b2ef922f0dc758a2fe4fac636f326a2345641c419d6af6c98b467edc4b12513d7af1de5dc382ec1746690cd1aa848b96130b640692969f273f185c9dda4303cd260329303296587042cc30e64964ead4bb01d4eceb04a0a71f44f5e61acb0fa8c88d0c9307efb1f5d5ccc306f578e7beab89861898bc63b0453561105a1c49a2382cba8fe179f786b53ecba47171257fda994c3921e43aa644da2591152a09b8bc31a494cb53c09f59b7ebd5f22eabb09bbc1b68ea7087c9720020130dad5da1dab70376c682b5cd3e8791ce490f5a01a0eb37fa23f36e1be3723d19010c022c757786a2489ce2d2097a0f17741b9db712da931e8aad48499c4da9a01b699ee23b7a1b7074d4658e062ea90fbe39a78af7fda11e49f465c202a1cec298000941d044e88d850c6a5a7933b8d1f887670b5f50c11561ec05af95a08426d0714425d666df9a4e3fca0b182b530168c224d0676abfeb86840f9b1a319236252cb244f01f7c7040c17f11a2e018ce38fb3f217bc5cc8657c980908e96b6303fa6015605ce598cb3784f47aa35d0bb12288d8b29f25bb024291a0aa2981774138a36382842b6c9971dcb3adf826e46895503b826411bc171c94c7f0b328076f1bc43e74c09d9b01cc405451221264f48a1310628b5763bc0ce0833f8cfb2eb6b6daff38fb57092d2e75f8e68cf9dfe672ed403168689f2e4b0f7f0f38c4eaac673dbb7d67d8d7de4f9bfe4fc2ee53478d89e440f8b86fcfbb0dae8926d8ba3c0763bb3ffee04e2ef88bb0128c47fb09ad9d8f581cc191cb0dc1acd7943ff6ab38755a1eeaab050ba67304210c42b1bc6c0f503b42b5bdceeed408946392e455985bc33eb4dd8c347d6fe9d7c49487f75ea201e7e2b1eedd65b5e77a6a71cd864e79190e9ad628340f293d603a2493774f8edd6a83638400fbd2b8fc9feb719326513485b50053b063382b084009aeedc576ff8f4272fcfbbd1f2351b2531db36c85ed457839bcde79d212b2e582d38b494a38659f6c9f11021f0d553163441d1a48972798ff3d1ae69f6da9368c9754f413b1c742b181949113f593ea3ff1fa5e8e718f1957aaf9194e5d8ea37889aac7a026a7e1818ada03d76cdaedfab84f63907329f9fab8ad093cfd4756e1f375dc775678d685b9ad9dbbb60ed768040cb5be05860a03b0d105037bed76b6e42460c9e5b9e0d890ca82c75f58b5eb56da9c0dff5c412dc5f744b36674902f562d4b2cd003b795f8e5fa800e843628ad90abbbdf8bee6122f512e824d9f9d2f1e90db2a918e59beccf01ffe0df8b1507c28dedd2a300a7d0c7f832f091a0c2eb21d00d9c65361e22fe792a2da70001ba7bc5a449029a622bbebc16500d69453e275b4519a5ffb1425dbb4259225760ff37c0a320922a0b9583c5be8b5cf84cc9effb86bb22e5187235181638a2a581bad728048ac38a846bf569188f0844d9bc5ab7885859cf32e3f689a81acb7214d4e7e6bd3de59b0cc6b55e33d45ecaab3ccdce32a4f0a0bf1eca9ea01533211a16e849ce976d34f0d46a643bd0bd7808a1a6c72d15a3ae1ac6a5c323f1320374b4be8e0e8219f4d8c283f10e15ac409ac4ccb175dc4a5e8606c09efb7b1eb83431f9a8705b87d14df1fad5b976b25bbd2e07a11a206b948b5d1380740134c61eaf411d0497a0465692caa7427f386f765b6a91a986624c23da8928a906d9aa6338f8c1711d32a3b5d9c42546e36258187ae7160343d0cc31d884da55bd1c5864197e7bce2fad8c1d1b56f4cbed2de4b931271e037f1f6b34e205154213884a908a4d90832518305b0f79caa5bb04fc32838267731e9be2bed6fb17f9c33899f091ae40ea3bb021a76253111493aff90ee720108b3007169acf680df55983ad82cb6a88a29b22cf778a176b65571285f0b6d5396368ca75059149cf08cc194c0398740d40f5005d54de53891f26c7c588932485a2e6ba51a0dfea7fec627476e63a5e2bc914190795ff283a70fc697eac719ed9fbfd8d6f5c6df14382672d687eb17c438b8ca1e902632a199abc660d06befb063755331668f46697e1b305f8babe9d489d1e962a5eb869eaeed4243633c3b5df314daa4567d64fc15a4d7ee2771d1ca3a1877e1d4f2f4c839aec10a20648658ecb53efd53cf97219219cb470a6356ebdee9c2ccbb720014f2bcbc19f73872605c3c44bb4119a812aad6bc3007da7541ebd04b74ed8fd014288f5a45be3386d5012d08247c77bd615363c1f9a54120e558857e6605bfea9ec0cd877900d17ed464173a9e97ecea6b4773f86b0ecfe102b45b09577544c1d509c9567872d04cbd64eeb08f61dad432770305c40a202bc069a439b9eab7348cdda91719f0e12fd8188bdf4afd6cce69325aadc9a4f7e9cc4b2c5df6a1ed58d7b6c20621756e3dbef11fb43efae94d65d0974a5e17f398ef99933f219a4625e2eb9fc44b472a19e9ac3fb017a40073ca9de64b23141b6454cdbe9056cb16323d4db6154dcd5b293829d9149b46f2c386569ac78b8d037dc2094f6be6c167b51dc9c7a27e3bdd1c05dbc022edc03778b686ba459ca5c854112453001527062072425a9c11b9124cdfa927fd2c66fe568db28c95f0be8ed381c420dc42990cdadd46a84c8dbc3ba285c363f56ab8d177f4745162e1baf8f387f9ecf690393b4e375bb48496030af86e902fb4c893c254570d9f4d21202949f4bf0d662cdbce12969390e26acff43c888888f6ac855d0f44160bb2f627ff614eb4ae5a8de991378d2cbe82339174dc20e1c768e13d80f892221041ab18a5fb9307d6dfb0b832d3ebd828b22bc493f23ea3193ee1b2810ae4c5f11afe20930064dad77150b652fe3d556413788b6940a2f0c639d483c440ba256f14186d7a091fa9575eaace358d440297860cf1435a7bdfb2041ab60256f13bbba5efc34ae8e80d86eb1d44f63d51f3612bb9d3f509bd2665dc5a9878d0138a5b5779d8f7d394ba2af1a84209336340f1aa9203042b3a210630095a86e28c124af20362a1fbd93e6b21e9899f0ecb9c9f4d610f0a924eae1d4f9f5b326228ee8e2611927596f28233445b4285adb2dab24ce1681204bc603a352a059d4fb6cf2f149ffc9655a48abc0c230ee6ac328803d51f963411ad9d7975ddb50810a957467a439f2913238327c2161b9af0000312600e8c1b4e47b4e642ea71c317d190de4bc7e33bec82f96bb8fb8d2cc89bce4fc92a1236efb8857ca02fec4ba5888864e11b719cc29355954f3b7cc428072916daa9980d2b2344924582a15145812e60b03efb3910be83e00b56c8c0479e7e52dac56a3eca68cb7afc2091fb36f05db992c17c267c1df30abfe52824d545f570fe29f80de5fc80c7ab45123fb3ceecca6999bd76789e877516904f69b2ee237c1dd86c786e70b0c062794a0128784a33a1413c5f19e10aa1458c8764d7b58f0d00a1b1e2cd600a1453ff0247e6879f200bb055cf06f144b55fb0107207924e18b193440a46980af6e298de572fb6a35449e24548abddd8f98f1584b3aff0ee1a284a24021a6f51328710fa4f7100bd39cdeb8068aa8b32a11debae07fd0f89407400f726ae03527c57064d0701ae815ac9db6990e2d5088805ea5f04ccbf426cc1d82816b19ed95e6d9421c06050dc061c7577624eb36b76b12bb496956aaf2a8242ce55214870f02c0648af77ced3339a896dfa814bd8ff207e3ac02b29bd0ac56aba56a44586fe2ae8791eaca54330c0804fefb792c4cd2e5423d0d9a8bab05fa3f706415895b02f17b3d55c8b753b362393be673c4ba19b278b9ea5bc7b10a7f497407837026fc6167009d0705087f861559787aa48896dcfe6cc649de17128a21cc9f8681ec49c31b7b3330455e36c32e9a8ae1e44522073f196fac1b31c5073c9bdaca3988a8cb399deb4d1ce703a3092d18dad9a7371401b7b106bce2be8939bb62d90aff001932dd4724f46a02c41a28ebbc773e6184720e3ba31c1b8ebf3a64f0b5f54534156740ffb07cf2ee51a872b487b42eef3468c132c5eebdedf1ad6ca196bf6e3e3fd8be775640bf619f8d30c4eb61bed95f40a975f979b0ad4be3c1417419485ac8949ee8c5f033c5223b4a3ed4f0656aff690462bbabfe09c8e58f2123692416e3efe611dbe40ed5f2bcd04f1f4723a9b25bfc04af75248b861f0226eadd2656c5ab66b105150635b7c9ee88002b12bc28eeb933a21850235546bb414ae266138fe8a70005f408cd10b5997fc3dc635d28a8df742fb482ec95b0a79ac661c21c70671f5c64c8947b855cca212b29690dd3e36a9e2e33915f4b5c317922a314a7fad0cea19225eee30383029241ef4a3164559cb4a95369fab4d7fadb5683ac827ec7a68439bc8f4ed0bc64ad4197f4ce3203829050e101c9783c7c3484c67c5fd2686587e1aa587f5b2fd9076043f8050b7b835249d997202ed51a666642cab1e555c3cbf06e1a76773100fa6addc54871076ec399cfdea52c0316c77081053fb65ef7d1bca85d17d1a461f14774588f0d79e6e2db341be6a1ada7ed0a270d2742d63151c3bda5dac2cdb0345babc8320cac7af1ceac61ac970b338f863100a5a190c61c72f2949d4ea3fc143ce9dd781e77568bdfd5d01bc3fd0bacde9e27e91754917ae017bc361f34189be55b394964b07a8bca2ef2dee76927ff5aed07c8210b191d296c27a776ea48f087ca425dc4e6e61ee75a8cb5329a955c052cdf2a06c965d1e10439c391d92dc17c06af9191f1e6fef96998fbe9e4b0e1d5d20e28c051d430cb89616e5a8497dc45e3cca9a58e82d570e2175edcc4bb8c1145244145c7dba1201bd085f6a8a068dd8c10415bf490fadd1dcf48765dcb82a303b8b45bb5ea49800ba24da13e43dadaa6c2944cb460e0856a4cba6700544c047a039026204e18326733c25bce40212033700b544e68542ada507de374b2ad545adfc5b92f6171f889d51a86798418205fa6968aa272d43231656f4dc51f26b547dcc09b1e2ad53a5a47af120a0b145b4f6d09cd0b2dfe4f8956abd7b4d7bb81df40a2a068061228ec84912dbbf9ef4795120d34039f7699247b5bee32ec19c8b0da680fe04f4a94f0fcb2aa2eb45e66243ac5d530bb7133ace3804a5ed0ded65b0a839f6e603fe6b67f85b5ccdcb13c96d9c0dce111b38508a026117cef64bf73449425858bc7f3a273c7c84abf4b43cbcbbe8179b33069a774b864e5b444f4424b5b54bc2a9153c5a080c9b6aa607c6123c1f5a99c3636f222bb611cb40dc0bfc7fc6de5074c27ebcc37a425e0b78c142f7656602caffcb4e04143a5c1784cf0fd7afa0822e58a2f44e55697061be3771d4fda8f7c26d66dc759aebdeacae5906ba7bfef2d86f993f25066dbe39ad7ffeaa39f9a07e6ac3a61790910b02ff1ede028cf5537cd7df3a9d8300c4a016d616e5c590d281905dc83e486cd494c08a209fb3673269b9e587f438ee3502c4e8a2f0610e80f2ef0b8fd0b7b8394e81ae5add6d9fb46fca13e4325d887f598203bb182ee574e482099f315e5532a776095d5c613608a98286c66c1bd9183badc8adbe18aa2149066e4f731f4b64e1d5eec5a40dd468e36612523ab9bbff47e13934185d88f45f3d8215da91e5f586c2c89acc22d7020544284ffd4beeea456353e4178dbe46a4d7bc4dc468d0e8ad1968d7013f0febccd57806bce547f2cc1a1134b6dd69923f5e65dbd75d6db25b7126b8b3eb607c037b1f12520951befe87b43d81f35d7f5e46ae81300b793c9a54523f7e8ad10c744175814861897d9144bfe07ad784474059adfb02a20e82e2e65b80570fd76f29d15aaab0daa170b8dd0ec77af340f60524b5eb98b7c06e461ceb798bd270383ce5aa523130e5c2a0b63c16e9b741623457d684551c3dd42b01baeeb8b676e3b70e7f0393ffa94a274b767b2e8048c49be4165381fb59f3215f8404b8a46a2121586fb4793aeeecc0250510771812d9c2c25d538373921d5e8b4eea4e087992a603a3d93a8aa01ae1b5fc72b0c3b300b31f9493292ea574dada2bfec7b507660d9fe564db4d7cb9b648e0f48eb9ce8fb6695b9236da1e014ca1937c834a035a07aa1b74c0b844c74c46ba0ea355b84d0e626aa251d045314457abb38805e823bee76d49e4de5f47ec3e4b4976abef2b137b577d9877a48ac0b582b37b7dc8b2cfa8dcebd85e37129e4f38b3b6ab9b7d362d2e6e4f959c6abf92e32642959c14377411d6490083a059b08654c3821c2cd42e40eb9d9b3038419c53ea3bceeaa5f18d36e7f54c7756652b11954f01b3577c62e2e62302ea8b1ca0085ad024bf716eaa29aef6b45136d2ad5abf7f0ab62a09c6e6bb8c62670fabc4529219b8ca66307014e51e5c772cc1e85f71ae48bfff8dc951bc5b458884032727c402d07147a9ad2c91dcf45bf8af9214cf939aebc1bf7545a4610738c6eaabe2ebda812a6a2bc87a84c12dce005fedbf3a19899d38cc3db22037cc23e10001f13cd868031494667e7277aaf5402c960a9f8a179cd69b3530733e4a8ccbc6e864c178cf83bd35624d291eed2f8b7f127709b7bb5ef5384a9680066ac609796db5548848a197fa2a832e7517d8c019daa0c73a2dff5c38e1272d31e142f98065c0ec5cc9c10bc5038a59036962e6feb6526e587fcfbd5de21a5d762456af3219c7bc37d9cdde4ece04646fcfee3e7282ccf63e78d66d07140d7a7bfe6e0d3ebbd09689c59e20b5f3d9fa139c8421ed601a97e1a66f1fbce5c7e6335c48a87daa58514897f0550c704b4101c39d22aa1a8fe79c082bf27c21541cab0aedcdffb1edf56ea70c48d28372d4e3f494ba48fac58e8300406f244e937bcd9a721a2f3b980c409ec3c909f364fbf79804834eeac5faee884fb6809444701727b5a5decdcb2c10b0826a5024b2b80bd08b7279f355425dc5b621136fd7c533b8a1fde260fa1fd1319bc29fff6db1274e53a70238161c086d15ccdb691f360d8ba12ab4957f05cda37be84e190785d8eac0e49823c7b93b4b73204418c6f8c4f842307f4a010552abd9ec41cebdc7cd3e60de2310f33478e77e1a8adcf6e75828fcd7cdb815467e3dcd96ba76b0356393077264fa1df73db1528c7593c9b792ad51d6d074f3347cbcd099574a9e48a36d90f1f4d5a57e73d8ba3be92b0dc51db3ffd6c6c907b81d5281deeb773a80a97129d617df30970b3260a50634b2370d1e7309eb6c4c99840f9305a449088ddeeb02390314897b890e45e8df99fa270fc9ca04e0e098165130a2cb71da4b9c04e08f4db0e44d596431898cc0f86a5855fa28cea6cee074b2c3fb5d814632e6529bb82b4c49a7882bd42416cb2e48f4d305dea13196d93e8f32a7d68b10ad4c943ab9a0babb31672c7bab90399b44c7abe4a4b26e72ed69a9b45f8722670fd21e65c9614fbf67d4b4425349c499f5c5839db4c7e18809d16eb549a0347a1540ba1e04cc2fc3a0620d044852e09601d383d55f7c6d82f8eb7c5c9453fbef4d5583fe4cbb15e19e2686542e60daaa9335326775879f18c187819761c1e99080947c7089fe6491c75dc55b3aae95ce832fc7787c380ab69665174dae7c888dfabd03aa275bf45cb84fda74c1f7ee8763385985122f04f6b3da99c349b2c2114d3d268f6ee961e23cf18cb364d521b62aa6e37a2346281c292aa109289c324bad87cac5a135425ac0ec27f6d87ec76aef91471455bcee3b885a0cb08e04e6ef48f14d09913d7754033c26b213a055385cccd2524d8e0897f4c3fa64401ade64849dcaa10d92f0a965de11ee7baaf12cd8463e0de510a8dd757f3d1ded1e67159743d1fbf08d8305390ffb05d36fc63e45812d0ee09b977e5b957e59f47ec72466a857299daf47aae072046427ffa3ff450ceee073c0e700ebe33d13ea8d07f4c06a207844083244f4c402f4261f449c5cc8ff862cce3b0f84b586499e981ee8d6d8e6c5201bc47746ada15fa8b4a765fd85f9be4822b0d9717a9174c4527cfc83f001784136b779b7ab3bb3b2bc6d77da13cd9782118e54ace1f9407e65c391a7a41b2fa8db77c42e0615ab1bc42c5e3ba41668156be025b402b380b64f3d9cc0dfad0d01bfb337efbd18965f094f321da6e4aa5dce83fed86ae8b13213fed6734548ca30a9af20592df895713c990d10b22d88b33f3db3ea5cee541033d535e05eef850444adc53ae5ccd2ce7d0666d42d9b4dcbcd208856dd7528ea015d339a5b563a53dfedece26c6b7282f1f6a5cf8655828111be73413774221ef9532ee26939a62dbe435d937eb03d283bd4599c5931d9d2c0997090c6e8bcd42cd6ff1847f935a4f74535f5277cb842c23dcc862702262070bf661509284b3806987d218d4452e7eaa17d31c8f93ecf41603d6819b72ca8ec7769d4963f2789c3b02f595600f64b747b14eb824319bddaa8c55062b5c06843832baba4420a5fb776246ece3105bdbd4a0ceacc87d6a0852755fbebcaed09e5f567b4c02117ed4df0cedece60604f029fe3d80929087e39b381c9a297a832798061ddfc555f737f6bf76393997603cd06ba07daf82c34b41202427d5a3703b43af54a69bf94bd3b46827160d289057538d120bc79c7d75106c158c2385e46c9676a64522b9eba4a3946ceeb9a2d124b8f4420cc8f5e24babc8de331d8d2c960a468261c6331ff4fe13254da0713231e2baaf68d1192e2ea243525c011e2e856142d9e8420d1c8ca65b9e8b142768b436bbf45b5a91b2114dbfeda5698b56c8e660cfcb16c16b6304e2e2c55df4a6dfaac48a704b73916ebf91e1053f7b5584c8116819dd09d95251ecf5143a63529f0028aecd5d3056466720a70dcecdfeec699ae89a10a51691cc86cb56476b1eb481009aa43fc4ced737e113d0ade3e688e0c829106f88d66f9f9280f057dd9c2586cb4025d3091fe5073746b2dfa1a8edf2184ff41de380abd961e9f09c7f4af1dedd9a812ca8f1d62164f8bd3701382f56f448c897a15584860f600c8f11905e092b098cdb91e76b06a771526f4e33fc4d51b39c498a8d72edd9bc732650b23fe3ebf9efaa3a3d7e44bfe083def805a2bf381c4474a610dd4a9eb58316281a1774f6ef12d9aa7788a431e5118c608c4caa05724e2186fd6da199193833453ba4624d0851406a9d817f7107b54109188682bcf8201d2d804733607f07c1dddb2ba7c332e1bc8cf4315577e08cc12255b1d1ace46aeb82eb3e6838932b92fc168206c193d29e4e0f7801b7d9b8c285109291743cc189981062a9959b4d58e325d97597f68c007908bb13cc56d47fd9fbab099c44f4282ebd2e82dbf1117db8b87313bfc42b5082599619f00c85a3b7dc43c6ff00b84d57bc57d06d40ef162b902be483e140efcce462901495233704f15c8f44b9b455b82adcf8db0578a1454a7f458cbf7fd4fdde084f1c9c66f10c194d25826f909a90add0a803ed035ceaa01f685a5d9a95d8828b27a178f7b2b607a0c3c0829ff93ccfe76b394903689e5497b905ae05ae1ed2a2159be8a424fb71808bce19352041f677e52b2f04fa6473757ac10435868b41976358b3986beccbc7f346b586f294e436e2e6f72a045c915141300191715d559154547e1c504d36a1d3011d6c83ac03c5458f0a0b12ad391136cf3b5c35c02759eb437370f0a1b94688e16c6994f10ad9203e2f83239bc315b1feb65c5dd0ac44014f3c81f8a18eb6565075d837e197c71beef1f803a6efb2b80d93dc45f76571533f06fb007a43a80fae45defe2ba859fb0c206c54d1efb39225db05bf6415912a88b697bc574204682f1140706e0795c33279bd0856aac3cd53e34c84a4728fc5bb8c1c720fe6737bad7d080343be24f49263a0ea8e0309753876287f8442c5e6265a753124e78c81a7bc068bb10d79f6e3cccc15989542fc81b1d06e2a24e124ac0650b549a1cad0120695b643c2105e58fe090a0b8586849bd2c471e6def9c36874b9aabae7e29fdce653d3b7bc50a486a22de15ecf1063d9669c594d2f3987cc3e3d64eea80165d0933ab866238d7f099844ebd640f77e842b055347b615b87645aa6d7c17c8683b94b51dc7fd40f0834c466144721c24e48bdae8f8ee27a8c4a211f7385fc27eec2ed911810fe14c882552bacdadf7a5c904a65b341036c64972d3514e05240adf2246d6a982268c1cdcd0ab1707afb04dae643df5b83c840d4f7bd8e27a83c7b1417dc3f707e69ae0d8e71e62609b76b2d8b9c0dc09de0f3e219880e13d6242b07f51f0ed9b733ea1c31673985338157ba8cd2794be714e9815862d0207b765bdad19281301a4dc55c2dc6d4678c825037217cdb16672f936fbdd3a426dc98e636139167054a751fdc8d8fda99e4d3f7b09e0f5d29582f5586f603c81b09d7348fb95c542a19af1f522f94943902002e3810f79562f1c1313672dba19eeb6f955d16d2887c39e4182328150a362f0ce37ff485806e476403afde87bbdcd4466ce071e3ca680f271e8d9d8cf8b80fba0dbfdb9980ac8c56163742e33bdbef54112ff03b55f48a2686f2aa5790be7db7786532edf43a97f184349cf52ceeae3ff091f29e37d8be79e70bfea3b847e3ba16e2ffc528ed1c60ba8222a79ab2d655b25cdb29ff078e30a42b9ec3838638b7a6840a14512a0db590b7f8f98c6b2fa3cec7beccefb032caf928ba04aab83c05630cea824709a19179170ccd2e33ffe04f06a6d1ffedf1dc58921754c0f51d72be197b656a11afdd5bb41d2b195eb65aae5c6844d6217f8f940b529ebf7f643b599c56076b55888395228420214306c6e2a07243278c5b05d5d93dd1aea711932380e529bf501778246cac668c0e21a67cdd114e5dbecae54dd84b42b75f90c4d5aa44e21a87da062cc8303b34984d3d38d7953cfcd8c8e60e54d708b8a5dcd21e4e3c8645287dd79d5c5712f9ecc28d6370476e05fbca067862d27b33662ca705fa06ddce2663548a39fb40b5c50c46ee9ef96514428a2bccbb84494b304f84529cf4a49c801d332ebbd8df34d35c6770903a9972e4884fb617fbb08364c54b3b99aa757253bb8e034c75ad2a89e28ab5e49069bd647315bf2cbc8258d5f81493f3e10c368f2a54be80a9338c6aa8830eb0d494d89effe5adfca95579508bbffaf65d6ff956abe9760061386e83e14fc8db5a166b52c614da71450347b87c74e155f213aedc299ca64bfefe35cdb0c348989101d6e5732af8412b43766973acac8372794d728850ecf0c190bb9e196bc19b1eb2f77de7e32209ecc2e413dc329d24a855208f5b4935d33ef3fd1ce69abeef7a44f70a4ba5aec9d0ee41fd443808149b202c0202d20cb4e6dbb88916ec5f6aad2df7b05c0f81e518a4ae9413011cb05f255c25b7c6d2b1f32b3a50a29ed17f20d4994487918053195da80027efc7c3b9cc6f153c648892f5bbdde666a9120bccc96b3da89cd440ce0feaa2016a8f6a5c5e188b848d20223829bc897c5de73de0ad83e224f49d69120d8e5df2cc09f404f86476e72c9d1dd19bf74c253f308064076696d9810df88c5bc5b823e07ee3028fa8756855423c4b3804482129da8707509a21d68590583bb11f1b1dfe438d02b9f414f2327fa2cba3d1e1c67d4ce11f8a3dc3396085dc704e9e1cf1c9b2ae7b7daf6b48dc44631dc322c400fce6d602e01406ebe78f9ed09f00f1434434f842c1164e0eaeb52f9553acb51e39fa00c7fd2ab7fbc3d120f34808424deac23348d0d7f070d09abf6a0c8d8d6d12a429848aabc4b4504723dca2df2378286562d69c054386c93b20b5987d99b16548895f117ba7b3673c5e4acdf8583c67988c062cc24f00033a585a95ce13d236a03c152aa1e126c550bd30c8a6fc68df6c94e3ea2c40db0da7bcc3bfa7c13eede22458f30cb76e03e139b740fcc857c42f9cde919c49bf8eefd170ac14414da5c0a61ec0322639947e6d6eb208c9b738daecb738f3c9f9c264ca409c7ff62735fd4831353022198559cbd16d35d830d87c7ccfb24bca3eecab793e45b38826d7424b5c6cab8fbdd1dac8350150a64445dcf4f0d56102f3a488888d1bb86719e56705cc160852d92635cbe2eef6f183d9165c7bf3e5c03a33da99b359d1e5093615446e816b58a3e751828384f7d1328668db843bcb37e4678bbf49fa3ae27f0d398d4b009b4b07ec1eb5b8be107ed077647ed75c98d6712af8196dbc0c85d4cd8284635ae24526c4d2c350f4cf3045d4d8a211b999fe0fc41c57fa6294437da9212c098aa35dbcbc09f08017000f981844abb2524f345a6b14e51845d605f19e7b31950c4e2bcc114f4eaaeff17211b6def48a5e9ea389c42ed8e6babf616627d33333f12e7c99f17936d52fc3e3ea1cb534c0f41024f032086d4ebd7d184d7247616fafecf9c24e5df7f2bc48208f65f97382c6b8289d357d5dcedfcea7db84126f9419451923903307dd18296ae24a7ceb64e134d95da6ce8043dab34f2ded8812431426e243395ffa0be421618c99457583201d91c98354f7d74d7c31092ee2f280320ed98c792896c51b2d26a889d6d27c34e1c98d88db36bbb2b9a003a5b635b1ecbe141c2926196f356f52e1eec8530ce630f9d34cbb035c42b3731fce88572f7c25a24079e034b2a198346b20dafadb8adacdb12cda4ae86db162512d166c754b8b7e388730de55bb40ac2ad14a5b848ce715797fa3488d5ef63f58fc2c3c12e61a08953835ce85dcacf21b8d275ea75a9256d3ebe04004a07b21aefdf92a4548cc16c0cb351ccde31bf1bfdb691f9e9a9628d8d5809560cbf8559f91f9613aad68675214fd481f34851a69492a320e8232f3267267c47368e7981f8240c5445942d1546a356203f2629ccbc6baa380ed782ce11eaf2712260c5fb7e2393988d44bde87316c2190f8ae6fcd60f1cc2721c1ebd61f9b6a2e58b1fd84bee94a1785d9e36fa70c3e96353bc058343e2ba61fa4d68a22e95618a70561c5cb56a4cc0b700a1827e4988753b526f842704b6465bc3f4ac39529fa62de016ff0ed1a33fe87b8b6d0ab3e828bb0418b318b90722e8cab4db61c3da6e3639b3de1b29fa2d550cca16484371078aa567c5e8361db0a8ad78a81050c1373e62e48458e23b423be52723272342d1e7787a5aa5a15584a0dc2e9358203bdfd6555f8104bc4b27fc47ecb3f913f5617d4ae18f0a06fe65d85b9356690edc3316b1c35546fe6a89b1550cfaf009c0cdf304d279c77fd1531fb2069e9332cea586ffedde9d4305f53edf89b5d7fc3f4464c4fc39e455ddf4cb4af0fdc2613d05039e49cabad216d71331eb3dfab3559b3f9c1480cfd3c3b5d2fe52123d2a0a03d7ff6c6648307ccdff833123f9c55e8d82fd7009f1db8d8b1d06f2a3a298218a890f53681544f5e9a6e7405c807631ede1c785fb2e2079ff10fcc7539542280c4ef1c46ea006b18e060e6ef97082e2ad2eebc71d6db443a0b263d380656fd9d0abf8c6252298f9ba62119bb04f5e0bdab77745825fc420fb7fce44abad4d223acaecdba12f7c4691d3f0972d4eadf306f2fe1e6d5ca586cfb172e35b8b37683605901b5100da410104a3ef28ae4ca0a5a05000f13be11f1624070ad0d274106706b47701e45e53d39f685f423baea88e7f6bf7b5038f6d461140d5cda53566f6a934fcf3a6e36876e0c253b8b64376c4f3dbb3f0909b7a970e18126ffc6db3047ec0b4b0e5f98221f23bc3b9335e75bf35d0fae20c7118c26e2cdfc405052ec7cb0661732c78ea417e2d759483f61ad7d416355a9c8284fe04834ea0381848fd115b77f6880a0b6f6731dade1f395c2a6d130a3d88ff17462234b187301d8ff184ec5eb1a3b589ea5c85390cd253ce8031453ca2e5d0d0cb1be12fd390bf30cdfabd31831492b433d7651577f5999e74f124d7c0e8d21c3d26da69f95957e9c42d40dd95b140f8c8ba0f4075d63d10bba4e5f3be6225f767cac257f250e9da14bd6998004e513f0789444eee279a18432bc6866fbf378d04117c534a49c33f256ed303c5bd315e0a4457d8a169d40c4edbbc9733b3506b7c6581fd28152a1f6be5292e48e46fb8255b777da30e1d1d3687c4c5e9c7b62341dccefa51138b913e6046fe0570f35599d02395b87c540e5a13e5778624b8c0a4843ce6caa7947f2eda09b997ea558477a3d6c95c397490a152d264a9c4960358e02b737fc4092d68312b35c746fd06faaa200f7f5d942851217d86913aa2a20450f2b0efc688fe5586360c67baf6650d1d37f362a90969adf8501e1c37d4ee0dffc066fe1b15e0ec2db04683a18b3d59f522fb2880771d765eb77aad3845b7e98b3870839fa374fcba973355442c5655768e6f5c1cbea03798a0f31944de5e66b01d40d4b1b051eb3c2db1fbb7cba801e7f2da52532cbf61df1bbe229a9e15d4a5c3c214dda68448f429a1e34354667aebdbbbeaa3813c152bfde4b3cf0015ef52138a1f2d61167cac475b6a2dc5621c145fcebd685faf7b512e5d162cc63a5d3cec12a55c1addacb8a3a8f3898725b476b6deb74a8504022b1bfa1ffdf465ac8a556ce1bcbf43fdf5b5ba1bf3e58ba4a7618acceba5bfb2cd9d5ef8181218c8095ce7425dd65b472f33e32563bdbd4498c9ed9064dc07d32471d886a25c25a3e186c0a6c82f67d6d4f74a2cceaa8eda80abec2d05d41d225b1e7d2d3336db9e682ed8037633c6fbb6d301e8995289f67007022a35991fbe4a0413ba9ba71062e13369b327fa6de6676bddee62f1d06c0c088b4176fa8f396fcefa2705592035cf0bb39a5652e0d456b7112dbcdf0dda5f739596c0e0e6a774e9c96e900346ddfde0e150c36c55c629e10859f57c5db6fec4581970e411fc0dd44d7a41b8888150c54584e92b5c0116b40d9064477dc55db72177d36826ed970092e20180326823dc2028f09bdda510ef635f9ebbff4788449428587b5d9c3f40417ab2cdca83b5a442d3ae937de26ddafcf2b1f02e6f2e8409cda736878a06f1c70a182867fbc97f4d2a5b93eeea7c39db5c5710fce1656364eb68c58003fd3de652c15fbcce30dcb899ed4b3992cffe03528488ef8911695ae45089213598be99e9ccbc1f7926e5c3807c989a6d7dcd923e80dadd606a46a55b16c9c0162c5c74fc54c4205ad4af6ec2e94b38d4fff157126b2a39916f1b50dad846fc6ca2b9b68bd547bcde0db1700154281e1e768c717a86d659808dc6577bbac915180bdf1a9907596114486b61130eba080c00ae323ff19e35a95ee2163aad6bed1002cd840f9264a0303f05783392f3563f4779642f0502f417da703495fcfffc57136711a2355de2ae611fb3a9c40fb9d036887373c5ad2f9dea0e6f4f38ffb9fc880863136e04c7a31bf9d1ac2e83a257cce6ecdf60be7f224b3717739885c35a0de4c70f065c64942862157ecdb5c1ab27be6cf4694b8a2c60edf1d7d716c71017a0452a808d4693432dfdba51c0c0af59591001775cd68e326946cad8d752404983f32418b12a1035f630a22188e45aead00e6e39761a7ae87f7323d19efc58b7beb6584d4f4566ff98ca7b06790bf77a76b3d54fb651e0779b3776434e93a4f936d2f6f6ed01884b2a2c33dea3e2882087d9614351fa39bca80714f89ce1bc711bcc528325d92053ad0f215365b8c875789a46cb8a056b3d80c1107a0d405478195287c1768e749a825036faf64e24707350a07de5d05b551cf37ce12687cc082063a1ddbbd523a755c0f0336710c49afd11632ca93da68c8378f10b7a3c4b44abdf91abe97ea1ad4d75e976a34fbf2e20a1ff5137675ae92980e8e844e42b9a5810f897ff16ddd0741937acfe9eebfccae7b7548fd378699bf284d151c584ee1bd576ed49d0c135bfb4c5b80de479f7283861e665bd2619a6d5bdd581940a7e81e9b58dbb74795560e7c0557f557bbcd6d4bb09e55d7d34379b5a688b7dc4bfc463817ca47f93a0a492aaa7a9dbcbb6a20399009ad8434a1487017b3b92a977f5e35cf12d8e53a92e460c938ee72f491b2e550b2cfea7209d668ff4239fa54b6a7172166aaba37527c9170868a05357f1c365136e7f0cc0e20c8c0899884c919245611568fc23017657fa893db3e0bbf6a730957f9fbd8f4de76d267c9cc4e9a73e40de989bbe1f11de5392c73710370a09581f20c50b4ac763ccb0f016561f8108707edf1b77d66f89aea04ffcfa6b89605fe9811c3878f00e722ff7fcd66fbe5409e6565e616e08c2a246645fe4055a089b382337255f5e54c1766edbe95c7f819e81ea21c030c4bc6b5a551a9d620811070218ac54714fa862ec6f0d9a89d7c3be92c1c9799bb0b44470cd4688ac9e40558f324872cc1f679102f76346713fd27c724566feff416038a310fec496bf258b0af6e6c68e31a180d6a167e8bb1be7ea93753fd76b05b2842dec747ea9e9d563501e8ef0f31caea62b9edaaad4f18631b0ac398b0a751a60ca3c42c6eaa55b0000e16ecc388f10e8c2dc22a692b128c9447e6de00c72648b3092ab4a7a011408dd3f5e87d0d94b7f5c228c7b05aaf0bf2902290e13f6b6c119b4e63edff25494b0dacd488fbdaaa2d057ddbdf3f71130a3c5d620c6d668e27a4b4aab89062d4b42a037a3cea330f7d08a9dd56141218b154eaaf11758231ce82a644a224065fbf24f9507c5981b5f32e16a24889ff172ed451131eba21a86c45ff50bbe10313b008565560e2cbe7e54cdb6b66f7cedc7cbc23b835c61ee312ccea89d5b9442ca85956b65903db6fc71e87aba4a767f0a97bf97ae96acda629d578ce7cfed01fb62d91103165ac67c5cda90e715b4dd6828c5c5506dea7203d6c42ee92246193c4162c796f09f82e1edf16690755b8d2fe68340c6469b651fe7a9c76ba2064a06fc28a4fedeecee068ce0bc4394f6ef0864af8fe021d22a232f9bd1ef4bda7b65af030068d84c06f6dbbf80b42944616c741d516a0378c62e259e0bc7cc44ea06ef2f3080d555b93372c8e0073676c9459bc987df0aecd563a5f748db9328b5c03260e886e4bfe6ce218da2b82aea36a9645057411c03023fa00080547916e52ce2b5517d376e2cf551883e8f87095997c2a041be3691b5cda569ffa9679b6b05666b312e578a11f5b4e4fb1f181632b99c9825d8991bed4fb5bf6678b95424e8b2e68c137806cb0635caa210fda402be5b62081318eedca379b79205aab56b8d959817f1adef2ed4804d404b3accdc53c8082d8eb91afcb164c1c09e4520fd3abbb130d56943ad69517d7512f3a6b5f66b2846d2616ec37f3adbf1bc1406d9e6ef8590f4fe86ec1304288526c35d045468818cceedd5f37c17a753f7c8e8f08d18b2d32bc964fec19408ad7b714afde7db6feebf046fc077a644c550512e94da0dab30d826605ebd19c9f56c6b8b46db17252a783586aa6cbfcd109972fa41100405a6dc92af79fa4180ae2d21a8727a430b9bf2a39a857ed508304de6acb97b7a8b4d2421aef21b15713f91b824ac5fd2292fea4f545ef6a904c4f3914483ed49c5c9e50105c7fc7902e3ed540262f840e260f6aca264f28082e37fe88908c661033809a4891f9bb0182e77328cd5f6356ab6fe06caacd3e01bcb031a2adf58bd1b169f84ea5aaa0743e847f5538f3af83e77d7abc10ad74267fc909258d63547a2127d67dba7561049421f375a37234ecf907a2d167bd6217b19043de2d85a69db28c5f8bd87d6325636d58bcccfb500dbc41704c03a6129c6552c732cc253df355ad0123f57a84d8f051bd3a0d83409c87b2defd6504d21cbeb5cf2824b3d2714bbd46672001495e9015dcefa44674033e1e03b7ee3d338bd9195fcfb37accacb7205a083a8edf1965fb6616960e5c770720842b517d9bde0994f860a55f5699178d92a0cf61dcf38acd805c28d269f71505631b4b017794cee7219ac40f236abdaa129d92653af6729843c809c2f0bcfa0638a862e40dc3f2f4e78270b2606c2af2acd0872929d9acf7388afe988fb73d4da85d009104ee59925d3c99a1e991ce94e2be21536acf5d766cca87b69c5519f0f10e107112e387627e5b7bf35f68492f8c44d74e31194347c0676d838d258dde69f0d02a0db4fdf50aa1ae8754bd7eec5a6ae14cf2e9190ac2caa8d7aa02ee944bd1c0e34d55816068b159aad968326d19843a8ccd55db694ac9553b497725fe6389b581d5addb6b34aaf553c6775b0b432cfeb4a7f6d29c8f06138b3a1f06fa858ec4c66aca958176937280f2c687bd718c0908af035452a797dc0f15d103b8d9a403e1d9d5c44f57ead63c48b258b53e042d047830a3519993160d305afd64c2e150eae7b2aaa21701ae6fbb44a7b38dbfef61900730d4eb0cb933d9b1debc62cd756b1f0093439f7d2149c91a19f1b157008600aa4c732bc3aa133a849ad706e1ee8066f2bedad8760c20e0e1eeca512eda6f2af7e237c36910ecd8a019056371cafeb5aa6d47f5d1a17b31d04108c59e92294bb7d9556b1319f4674ca018cfa01807d3719d40c5ffbe004889ee0e82e6b0da5996ea3701fa4eeff888dd12f8377566edab3d6ee7c4408cb3cb800157e942d6f8b322ca291801e60791020fea1cc653872ece6792ad886f2d718a026bf1d579d5b74ce2cdd75578427c85a0b097c7c8449f6610ce5a683723422704a8b88f0c6ccd278dfaacb248a08b0a37c98ea1f9965d8b2bd5d9e8c9605fbd0f9eb5ce52cb310f9f86bb01db8828e2583351fa41a3285548fc379d8ab1caa2341ee639e81c0de445400f8c85fb0f4b30f896d40f50811254bfe54a71e2118750b3a11eac808284223e51d943b4a10f7b8bc53d1e8402681a163c111cd435773844f07054b30f6b2b0d84506ad7c54981250c5dfd30b04294f31486e92a98eadf2d83dd112768f1037480bb0cb592ecb1787a2ab8b01f7c476c68283ad6ecac67461daeb0696f0c35411575896d866d1c00a2de187a240c575e6ca8648e17ec847f561e6b841087a8371b656de139e69f8a6385a3be14df5dcb5e7e9a6ff071c68986b782ba80a876a089dd836659fa80140fd0b049e3bf8eea39c6f6d7bcbd01671bc023f7648b05ce7389655992219b9695d1632ebb17f42cfeac34d9f371c6274be311568e0a8f7b3ca273200b5eb0f4c6c985dcabe6dfe1a3e03923082b58fb1ca2b6b706d3538283b712ccb105806b248e81bd2929cad22a4a5d1ca5fd2d110b16fcdafa738eb42b82d7e389adb17f4f20bf3b4a4e3e21f390b93b9f33a4e49ea8f00d608e65044889d122a10f939533835aa600f04fa11b3b4a3f3df83073c0bd93da15e37a47679a765c0e6db5871ff413b7f4b325b595a2d8c176ac3221d94a1522b40a88f429744922b68fd30ceb3402265d9f951c491c07c496095a3b06b9f019f94178b954419a5718849afceae5e23a1948aa2001f624f301a20551d456bcfdfb5ff063f1c480a31c58a50f1828457a4aa0ae512957340becd84b542a732a215f70dc6468803458ae41cc786f6ef87d7acfe22abf7107703ca3b41120958bea806591bba5782dd8eef637d2aee2170801e43dd918f211dd0173b3cd3dd4fc96abf8b80cd3effb83379396036bfea0990820b0fbb5b022e406927fa044a99f5bb700d6a3ce122477e0894ebc979b3054a1d76bf039700d9768159882744d4e81c92a1b25c22f55d31c152085c152452b10abaf45f69a493c2892606dd381af28e98cc1072b6c0c0d8b78b8299047d7cffa5c8bf9d896e72471c89f728c3d9850790aa1789a713ab265bbd99f69e75c09568e3b62ff692af57af49b6a6752f7fec6869fafabfc0d20fadbf1e34afd10bf88003a1f03eb6df849ed922cc994fc925dc9ec9ce997e824edff35c76c26a10fc38f15edc8aaca006fea6d39fd3e001ac17adce402106717233327e0a2e956ec0b0ca7ccbd349916c435ab5e8edb1e095e4c5ff435d39b6f3dd793259e3d42c9d449a4869a1cc6ad23c3c1805ce3e3e9452d0e8f30d9ca037ce8b280ba7740743ae50bff809338049ff4879e6e4cdb6b4b6ef5c0702fd39c2badc4ae848c88789da626507ac103ce66787c1cc6e5e9b89e6a79a9325dc996a682fd30f72cb27cb4212276fc200bb8bbd8ea2e1b6c057b7fc0c7470b3063e30cd4d86edad60033c920632ab81c66f8d0fd0c5cefd00e959c31d57bb071ad3d105c8d6f781fd4fc0f423f8dfdd9b5f84040cb1200648688eda9c3405c0bc91f759464b54e20a2e156efced8cd0125571454acd377a394b6844d5aee052d38d3cce12da5189eb58a970232f674c4b54dd15526ab8c1fb2ca11d557305941a6efc38cb698b4a5c414ae58dbc9f315aa22a0e31009c6fe87386d011b55dc14ba51b163464d5c8fd229bceb922d364a8af3ece1d1a165850feb4f05c62ac6e9ae93a0cb2cad9f59361990868a76409037719a65fef1cedb83c053763c20476e1d89d142deb831e116ee3d9058014184c67a2381a9643263ea020f1e719590f34c241592d4a70236000ef97a0c04962030e7ba7b5e3bca4ed26ca084fc85f198a84ae0a7c8c7b0db5f3e5b42b7538b49850c7b1b5d96b542b4d6a971eb91455daa7efe5eec97e0344b54e098bc9d6fba62d36577444855035fef96dae41694a078811d2b3383b3a20a3ea2f1cdcecb00355e7f69e2859a47b3c50ee0c97e7ba4c06af98c95ce0c5beb904d3c533a2212f10b91cba3c487b73930f09b382c5c4cab74a0f53af255b7193ddb47eb0b092f3b96e9e4efe123bebe03b921ad63b033990198f2d5eb8d8ab1b22c3903ec97f53551c8dfecffe7f4e0783f69ec8289b2632071ace2d58905ef7699a35a474a22dae62508afa1639173d00a09a0840e91d0b668040bc148f8cd12790f226f49487bc8395b5454d3e5be41e701f1118212e5893350283b548c63d882974a975358e5a51ff7bf3d048e89abf55495884aea9e42100e722ad1714c36b76ae3a83e03020ce0eb1610d92f1748f99212e7f48e72c4e5988a3dd19649e1eb0551525f7645042f23bca306778cae8eafcbafbe9d5cf34057d2d1859bd73551a158bcf81addcc3a071cafe67b5cf63568306ec657588cfb502bc0135cbc53281b4bc201f3d6eac8ed6243ee172931d8a87344ca9537333542b99b7f424cea489b55515a01a25e26a02385ce4332bb4d96e89c6c28cf44243ddbec01a3f4c5e9fe50baf83297fa1b001185b5783bbcf6f7abaf392f01eaae0d2bf42f8393b077b98d28a80b4344d77f709862e6205fe17ba68c91a1e5f891df244048ef95006652a8a1b72629d1753708f05649dcfb62208e4bc2160f9f7a72f539ac02d17f2412b3ad20504640054c10ddd6480514362a9069d9b9bd0e17e0e2410127e06eab3117854705e35cb6cc29ffe8cc4d97445185fbb27188d68bfe1191b5fda9f6f4d822ff78d00eb54a5b131db51fd8598d04b0ecb5d6c57cdd234b1eb2fd89116e6c881172384775d4f138dc1bc7e769bba0ce22401b7048568d0072a42f68f4f6a89018c8b8416be4ea1c08feebe187ac7845e275bc760ff99bfdc910dba3c5b37183bc1608fb8bdcf92856e3e8c13555f5e7eb07d0f664476b15e15f0b44a1daa766411f89c6b580d5b1066a3e7b5accab1fff24232cd99182172358fdeb0b21fdcb6ecae7335fae75d82e8681990471de4452cf3abeab5813ec63db8f269b9da89f707144e214b3b482b284fb08ae76baa02c8dca944152af0919bbfc1abdf2301af7db76543790db601f1c928810ab4f43756718ffe4f699d3b7afd9e994a6f49197f60cfe3beb77c2f045870923a3b921d5d2c9ae38fb903b0f342e1b90cbc8334cf1fb7917cfd85cbc39cc9fe5a108c2124c2d04204cea02f10850925f5741c2a00e38cc5f26592c3931c2b269460c3f182c62c265d1794fac2a4a2bc6af423536e79475f01192aa5688950130ea3b1b3169e56d4a8f7b9e638539b350e8d1f6ce9ffd3d3b028c781674337a94f4b025ad6f41889f1388a9bec7ed7ad67f42ba830a599ec0465af395c6608f3b03cefc0552793c53ed3cccb06c60ca7ad3624f5dd6275560a786f710475403c223807dc2afbf71c5572d2ab34deeb836cc85a488f4300b261e4bb042a89790c2e188043484a0d200180d0e0b5cf60757ec26b5d932243a5e6c559a1ef748bede96535e2920d83ad7c5f6ccfbca8859e2dd8db7cdf6e36709e017f1f25e3c8d7147f1e22dd3242409fd6fc624b4dc3031e6fa91750e16090c15e6b34b41ac42b281a05b543bda6008d9ba36f5bd43de6f9007a1352a703f9f4474e10457336878ce478159c2f7f1dcc6441700b095e30c78ab72d2205599585f349d9e8a9016f75226c3f23efe715536e15c54c7a73c72b077eefb4f42441067b19190d11bbdf9f8143d6e5083216fecd2db2a615558451e073bfe75ca34a65d0e85407c6449cb6449cacb42493176eac7e832d7ed4ab0a7dfe57927bbd206f510c7e9b14606d18ab1f2334ca91f66e88432e04dea38029d8b1590d8edeeed08bff5f5a1b2ed9663c84f8eb5ec3842a940a90d0d35f5e4ba89d5e5ee4a62a5c1abe0722afbc301e3c8eacb06e24bd6cc75f413504ff09008bcf24fd90b219f775a9105c50aab91721d6e4e13c10f58735623c7f8585a5ea25a225eff4dfec3d9ea40434a0954a812129ec60c10ec3302e41323ca6fb8a91e79411d39496948d1ff2fb2f24e1353e935464617cdfd078ab9ffe4d020b9101e458ded2d9694b8903f788364d3004075f4a6fa72ded0d5635cd9eb6ba38584d7e4f724a3806f2485a9e999710ea4ff39e7c2698761494152d103f3e963a793185275d314b162477bd76c047d495f82ca8ab4947433d3743412b5b9da53e5441da717eb436df983cc662af38ae7b33f0a80e6eb429ab161b73c96a8ce637a99786317a400776f17bbec15f1130324c455c60fe9bb6f7fe5f229d56601936692c0921f39f6f73d52982e96d7f66f7d22623a77c40ad71813f97d63e6c50a65c7d386c657fb1e6afe0b95ee49f0e692086b6b6c3638f88b5279f60bd6b0f8ba631c2953f3f01e546f40154a304ae143990ae713d247336df9767708b8d47d0424655c2d52a91c122376801290e038eb21931b19ff0c250ea2dc7274ec8bc7b7eb8cde84157387c2081dad56c2615213f96603e0b66c9fe01dc5903aabb8e8857209e15a703efc1d16718477d7fdd34ce9f5e6f1743b3fd9bc6fcfd8e636a1734ba887be2c75707887b15f526b028e49487a6729e3c0421e00133eef701ea8038642e6d682f7a19c13e836f21bfedbdf7967b4b99924c01420899088f089bf6b5975d1c83eb98748e4c2281dd1f8cdb98e9fe28833c4e3c767241fa16520ebb6674ea74caed4f49eec3685eadbe5d2f372367e72f5cf191f7f81ff849ea7bf8650141f90de3b004b4b0788bf7c8b6482986a9f87611cb9cbdf6c2253ee35cf336a72d2350f3154fdb44def4144fe45be440e9253e55cc6bfdead5a3d73704135e1253d470933ce6d233d0b9f4ce432abd88eeee726cd7f7b203f3cb7b3c7bd50be9571779224f45e4f578952f5ce21b6450d621f8342750c405f824ea2e09f5460cca8a53677e60009f3c29bd071a2084f04bfa0eec8bdfcb0de6eb3d5ebaf3e9aa41a5253e6d08f3d2b7f4b2c74ad4b430e377404936c9c5c88022217de3bc6d302af3f68d7af23b4f488a6729cefab05950be9f7e610cb9227cba5c877fe7f2935da4db56e28894a72ebd662151c204a8877ee0ec0ce939d25ad2844f50b614cf07149d37e1365048ef22dbd5edb85c7ee1c7c52e01dd137258476f18091df125bfec7288bedd1be1e6ec9d73b78304bf75dede7d21efb88e5cf48812a4ba1d72ebbccd39daede81e06471fe7edd3ae1e9945ae6e87fcbae70b95888f013179e662978094df95a10bd0be23621761b03df3dac8cab46f326e5c3945d2a563de110649f07265fa09356c22df1e3691eee153113eed4c714c856c510835faaa04608b5228a1463fd203046af490a224efb06de1f6ec2bd993416ccb4daee01c2323a98c2446e62f2cc1c74f8a6d4b7c858a611886f11732f1bbed9ab3a739163a26449ba2c491817823fae69833925ad5a0e42b47c65c8846d10c441ca57823926af78595fb9a78294e1b0596220e20e28d1892220df9c3526c168525f894cf0891d70106231011c7ee8dace3227506438ebe79fcbc83cabe0c7afccb27ed0b91881fae132746947e3af7b2a3fef4faf30ba23ff9f5a8f17a024f1a727e594e8638d1f92d458e46fc440df7c84be7801002012396de830f7ca2cef916da90342f59dd7407336f2f2f7d247d8f11833186f465496ab18fe004c8909325aaf45e161a967c641aa64cbf5d30940b6062e737536cf746e48f5fc89827412f8cbb1b12ec98de9f4f143eb8d3d1e32fae999bb16b01b34b400f2cb609b61b29bfb8e01cc1cf674f0946e2c6f42448ff9289e71b3ea2c3187a4e7dfc90b83c09fa7165e6cf287d9b9c12fc976fcb32ae141dd17fade4936423bc5c72eed6481ad9488d4e7dcb5aa3a183c6d3ef081a4fb7660651ff8808f4fe47c49fa79e711b71b009364ef3adbba668ca146ea76bde5ee69a27b52f8c5db780d905f8ed764c0ff97514e0e97744019efa56b9dd9a8d1ab71479805f89ebb18f5edf8ef9495aabf08902e72f7fd971f1a93bbcc218c6d3303ec32e9f4ebd94bfbef8f3a329fb3db018a5c08229377a297da4450d31cad5eeeeadc12eec628e5bd4d01fc3463630c7bc048e4830d7755dd80c9be08b6af0028f182449fe164a0db9c8cc5e99440954c3fab292e49c5352215e0c5e578e68861a92fe22f129e460f8c47eb997c0cbeb884f5e4c0f302c462c5e546c14a3dc4234c72eece381397b887d2ffcd129bf11a594524a29cd328ed98c913967b864a8a1ff9425f0628e696812e475087a6286266628f21b2fc7169d01c7c6a4deb06d492e1a1e20864aa280cca286f5e77452752698ca2835ece7de9ae816d89c7cf14b438dbe956b1272446cdbc53154e9d2a902c830c4244e2fbedcc8f9f198ce1eceefe5863f21bdb10c549041911a390a8132b8974fa12eab0c411fd23200f9d4659961489b210815ead3321479ee72ec179d8bf9419dbe94c1c6c1c6aa67499233331bd7f916bdd9491c603f7e51a585cad7364af36d548ac756eb5191f5cc3f1ca38b8795e421e9f2e824ef7217efa25d8e287354fc078e2c3e714736678f485a9c3df644227c5271c66114c9d9a30ea364c4f090a25c3c73195e6cd2267692177f528d72f9f86bf154547c65c5b9cbb1e2dbfc48b0facefd63e78d443d44231567f1426ebd8ab78affd02bde88415651f96afc6954116b62a7b56a299c6b5d0e4ee4313fa85b10dd27db63fc8d5d87801e5b386226f2ec17b30c6ae8830f9f8e9d009f5edaf7db677f44f0697e92410650f63a62b2e4e517929a5523e680c036a821f7ebfc720a4738b23e30259d4d47a90735fa7aa983d878f944f7e3e42e3927a5949b11d383fa34661e46b32c731dfb99f778ea855ec4479f5e587f661e75bebcc7c7ab7d7697a33f52b84a3ef618b6acd52676ae356ac1b44a3624949d3e2690df89f3ebd209a3e44f9bb8d5a82c280b6ab55aad6c48c3d18024d17c3c7b67437cca9c9d7aa8a5604851c947a74948947e55fe90b01ff9c34c90fc746741d036a5156a6c5d5990962265419e05adcf64418d923f6c629fee4e22d59a053d4b26724842f1914e9efd6212ca26a31818540cc947973e1f59ac833a2516ead4e153e83b7c0ae5cfb37328718e7c8efce19303910120ab24314887c54c7e0c6935949cad29b235fcbc2a3733e86e4c3f311cfa2b7f193044b8487cb00166dec461904b35062bc31e62bfce316ae62c8ef9c4de605f8f53b532ecbc838ac38d2a0ca9f4e1544d95377b1864c7bc59844176aa79121292ba477a60159fd846c9d7d927ce74d290d17e3c3f128e63733e31e4970a4fe87c38552aa0f7c6bcea8d9a2a36b1535a2b89e41e821ff3a34e0cc3fc62c7ba05b4639f12f1e7cb8e971f8fe93d8c5a1bf68da78ccb53a4edc86862db52d8013dbb8e944b9ea74e4c0feac4f990d2257d645eb267dbf0e8797e21d85fe8b28f743ae8cbaf590cb2330f6a1899b09e99500a46d09ff451d6dd1a7721356d5fb0776fb46f9441f84befed802e9d6d4bd988c4e77982f848f54f2f29d29383c35018a8856408cf0f1f9149fc6115d1c9d9a08592a4f533369c4c9ce8b18564088ffc217d30f96115699dce098292a4b51ac240f84713264758bf137562180c93687c6090bf52b4013208b213cdc332cdd7bd514ab6e6da9a69a40a95b6d9ce8060a6c54e56cca6377d18e46b4a6f1e61f9c020b39ed068ac8b3b079b4be71823894d5c066ede3a2eb7487ecd7108c849599649e76f06d51ed2f830a3f1bb28e9a8e92169522abffeb6679e4d4f53851a3d9c01e2176c5b0a57809e7de66f788c6a2acf52642b3be8805676e875b50d3fbf15201ed80033431bd572c6af4f4ff616a0478e3220c568f951b726543b3bd8a8fe60988a1afa00f38c03c7d6ecb36aec99ac465d3e8dc266141f9a58566f8379953a8934bdb5e9f9337fc05059aa15d58773c5f33b572bc3bed28c6c2acdc8a6ea2654ea5593422790670f597e7d4452591c1348dd1a6fe630c8118b5a102d88c6c3a889c35375f9a543737080441cf38918b840b5da2285a563d7c42e42a5f0b4e9c4970604c9d2826a109d9d39831bfcfaacc1e29838f106a7f0346ae6c4149ee799935224a5089fc294253c3b7bca12b666a900841c2d08fb329f9c1964ee4c9d891371cc1acc1bcc19cc9c99f3292c09049654ec74c86f973d5bf34346f161ec44ad8933bd0931f8f5f9c4e2c88ac41baceab490a203bab0cbc78719929eccc7cb8e30c89e15893832237b839da19035a1bf9f1a3dcc582ca97ec1ead9b7c85dd8f475c9430a13b2bb190ff2cb7e565a330b61db5298a29af9ed9df830fbd566eac3a9d232d654a5c41882cc39ecd725c7a0acec4e70a97d5ebe3ea07a60137b0f65087bf82b822dc4bf9b7905db964291e424910f392353644a9ebd322a6bb189bda9c8517d9841e1a1b035fb2c320167ad15a532255992ac951d79f6ec48e6c3a82cc966adac256a59b1e3acad895bd3720a23eff193adcbafe6586290dd478c2ab9cf1d36f2f3bcce60d470913cd71d3b7a04be5d08e75bdc3a91af4f9e46fdd026769fd52a61fdfadcd91accd7f78a670fe514bf2e5b7115d383ba59f8507be28ad587f36715840d7f7d9a6a495c192a33d77665a8dbf0fbad8b3c9ac9dea292dac49cb3ff00841008e08bb7b9397f7ea6c071658be6b7834c6c52db637f3640b6f199b70b4a26326ffe4c264e386f02b529680e3168fafe66932a544f87e7bcf91357cf1ece1f3eb5a3261336f5377fe6cfb3cb6ec7e8fb2b75ce203b7699dea3699390999967d77e32a65e70ec99df62173fa7410d29a3486c62e79119eae84733d89a99e6a9d1b785d4e85b2363e3773ddbfeb68897fe13001fb72676c76e8ffd831add07357a07a9d1bb07357af3a046ef1dd4e8bb35a5dea9d15b07357ae7a0728d831abd756af4be418dde36a8d1bb062d2f31b8ce7191f1b451a43609a96dda826b1ac8e0766b5c7e7d9bc1f50c5eb896010cb75b6303d73837701d031a5cc3c0b97ec2e35af571fd8218ae5d50e2ba0535b8068203b75b0e5cb300e4766bfac431c833df4faa89eb15e8c0b50a00c0f50f1b5c3b21c375133b709d821b5cfb98e11a053c70eb1b0f33377690b101001d4c600e38d428c57c9ed3b8c10698971932482e315a462c2b2a3545d4cd887665e4d78c056dcca4720cfe1067bca2cb38a59763ca3863fcb827116877e30db65d9a816d836170a994735e181d9243e359196deb46a4dad1d6f9f5ddf9f5cdc1c991237faa5686543715ae76ecfc4565275506573ae6ca5eccd1532407118e1123c6e0e72f8cc0ea5946a396182e2d2e2e2e239615171795eae2e292e222ea5c5c5c72d0bab0bea574b7942d5bb68760e4f1d1c9b6a5d428997239ba3bf53bf33b34e54525b783f1500d2ba51ce5e9a11a52cad56ec4ce6ba8d1392f2a2da580299d8eaa92b2c2ccdddcdc0c6e2c2b2c2a952545d4b1b0b0b05c53864a94cd8b4ad65b092761f223e78551496973a47b6134a3d9baa6ed7092e39a23a76d5c2792225173142dd76d0ab79e288868c8afa7f004f9f5ea854ce4d755562b7265a539ae30942028434150d80790cf11243e4792b458385127e6449ca862264e7ebd9b30810254440f343ed07c0f7b642632774b392f795dcdf18adc2de59c172631ac3962725e1786519a6952d39aa386d12cd3b46de33ad975cdb1d3368eeb3a9128a5ca5a9b638d222ea6a470b1aaa870718545b2b0344796156ed70be9b6b4701b2306b72e244922354792cab6c24516c9c2456fd4e9884f475cf45a3a1d918b5e8c4e47fcea225d5c9aa30b15bddcb450d1cb4de881e71683eb3bcc60e3135402f016a5124791b2c45098cfd04c042231e855154aae55dc6901e15a5501ca40520622a0c6da2ba0e084c6ca02cd19f80c73159b60c4097355c58c187a023680ac3f700966c43da368dad4a01a68b48cd26034df5e833002652029c31124b83f724803faee701a992b344c224c23181876cc261869c2d476b8bdf8ad122ea05ebd74f9978c17b5e5a587e0cf1ef2b283bc6c9d978dd3405eb68f97ce438c6a569b82bef6d0885e3d6956733d97625f38f3411fd6a0187f7dfd83c1f6d642d8407ac5442002835e5d40170f0774add6105e46ae15d04584cb08cc906b15775a3cd78a03ba9cb6a8f88b2a25731c6a53bcd4582f256751656b4ef8cb436d8a6fe72e88999f5f5d99f63e418d48c41c09a0537e725ed76784c6da2ba0d0c44bfadbc96f031aab45d55a40f2b151d48666a60706a343d9d9a20850b8f0f2c21aa64423abf4a564f8eba5bb94b23ffef9a0b45eba4c818d74eea593d88852f315b2d92bc990cef8654149c25fbf2c282bd985124c8f164c4a6c050db8e0bc309a9d38f06dfcda18e2bbb4e0f4058910795e9a40e7c178119c4782b9c0e68d4819f8f6911199c755cab5a4b3bd4717650bba1093028309518e6ca1032d7240061feca8418b26399881fc13d8d0ba949dc4f4b7e3c8242e1768160c68a04294214c1185f5049b1d2ae273052dfcc0056420834df4a2461a7f901ca60341522082ce1430480de1050ca9282c81820950448185193a2ca0245192d2282cacd035aafb656d11e4d262fb90c382b56141240bc02feb89164f7e90a4fcb29eb4b6f38106f58726f129dc2c6c307c8a71e3388f71db7c3b6edb32ef65db7844cf3cb27ee697f544f597731ce73a30e7bcc777532e310c1bea4d509bccc34a735d562cc81ecacba74d7cba9630c85e77b12676ea7518cb03fbe5d3d7123e35d065c59e7a8b057dba0bcc090c058bba80f6c25890e3629262f21c03104a1fcfb28967972916006334c074f0ec1d4604c252517e8bc578e31f650305c90ebcf40ad4a88c2e61baba1b0ae43162dd8dccbcc35854e6ecddc50a2165181663e6fda036f4db6628353a03e91f3d5bd3ee83d3d2e1fe19d24d88d0b47c03350a4b61a9540f91d5a8253e4c5a4e9e3d83f233d4845b584a6a9b10cc30e3f282165a2e2f70a00a3e60b002137c20a40a013861c70856ac200d38e00118452a18482e2f0ca9391031182b5001e30629bfac2847d0aed8c2cb43e9e1f4903dbc2e29e764ae6dda4cb6c7b44decf150a25f4808306ff9ed8690a954fded8688a9940de6d113fd76432ccba6fb4e0173101829ed8bae82e66802065328014a22831fac16291f27b4f8628814543cd9bee82abe2b891db060e5851dbcc047ce1186bc488209a038a20430beb8e28b2ca492f0880c544d64b1f2f1a48712849a44c103297664f0238599a4a3e20b2b7cc17a0ce33444c141e6048e5fac8658dc45a9f43457162a80f1ad89a51e2ec7300cc34aec44321734304ea2f880d2c587a52f58a8e6f051a8e2f051a8d6f82854fa285463be67a1ea7d14aace4295c647df328e85ea0d1f7dd33816aa36702c54619e85eacb47df3a8e85ea8c8fbe893816aa323816aa2416aa2e3156e887946ecb47df583816aaa38fbe8d3816aa2c1f7d6be158a8ae7cf42d06c74255e5a36f2e1c0bd5fad13712c74235e5a36f323816aaa28fbecde058a8761f7d7be158a8721f7d83e158a86eda47df6ee058a8661f7da3c1b150758e852ac6b150bdb818aec4d5e070e072c80114b59fa6d3971e794829a504bf3f7afdd8da8a995a995dad4c15b61e438dceccbbbb3a667c6401571be583fafa36ea72f2597b39e050a3f499b76daa9d03d68606d198df26d7def7de6f18d79eff46b9f668fc966d1ad79e0d0ff31bc7b5f7f25bc7b537e33711d79e8cdf52b8f648bf55ae3d97df54b8f6627ccb631e0a3a904a6d7b4b77433f7aa3df465c7b2cbfb570edadfc16836b4fe53717aebdfa1b896b2fe537195c7ba2df6670ed75bfbd70ed71bfc170ed6dbfd9c0b5a7fd7603d75ef61b0dae3dfa9b73ed61bf79dbc7b5377f8be1da93bf95b8f6fab71a5c7bfc1bc8b517753081a2fe6c306f6d042027c8944fa65f1649be6840042804f0f702329452ca15412fa05d7aec1937a879657777cb3e818c1d657797769453a6b6c8b28799191f6868b8bbc4a78e717e3f9953d441b24819eb4bcedddddddded2892e9ca98ad26ba70eacb2e17bb957ba899e8242daf895dd8ee2e17b1599d84856b2ee675ad6c9a0ab77172a77639d6b70ba2aed2a18be797477475a14be18676779b1b52596119b5ace4624ee91282d6b57ac27a8ca166a293b49c43cd442769b959c10b357a4bd1cb8dc40069ce90c12f33220c13addf242f0b13634594bd85064849f8e3c7af5b2b13c460d0f3e5f33d5747f1a18c6ef9e5554a571f62a9568ccf8218d40296f24216b7ee55130963d6ac3c8d2c168bd5a4ac258ba8641b9965dda944f85a4da06b67426154e6e35af5ceb5ea9d6bd53bd7aa77ae55ef5cabdec952d76a275bcd27b028e5a4945276a54a22f5ae216ce2c9e179f6ce691d465d3d171149248736c9617515b85e19a94da47b7ac5205fa9ee893312cdb8ab2c4967adce54192bc3611417246b5dacac75b1b2d6c5ca5a17eb62713b7595a9b85613230679b7bbbbb732c8f287c13a9b5c394e1835e710141f7308888fdf0b07c8efa573e174ce04da59d587bd43fa09c4851d59856d4be1b56a2335049fc18b8378788851978f5e81bd02c15e816094df95ead5f49c74adfa894c05b3b51397aa531fb6ea52cd1f06bde80c2683c166606060604a254a49b5ca9e69b26d69db488569201fc2744451df1f1f36cf75844dcca4723c832e9ead99438cca962c61c2c4891328170bfb32d5d57315b988307bf3f06908a3ae23176b74b1fe49cd2e9e58e81d989f56311346311436b1f39093f601c5c9873ef4cb507c0c7de80d845bf163202fb84a7bd43b3b1b0c0c6f31c6ddb871c187f9e95ae625d0069fbad26d7a37dcc8cf3c219b536fdbbccb1bc223620241ccf8f931400c1b79868479cceb8186c1eb9b591fd40f6ce21cfdf900e393e34a297ad13c70b7f09fd9c371a6c2704ca861e91905432243952d988161358c13e685c5c05a4c50a387a52630a1482fa1465782143d512401092398ef274da4463f428d6e841a7d8bd0ab1a9d084368286af4dd1a18919c91411b85a5cfe9cb635206370a1f815b2e26e487db6c4d37a34236ef27d7cc5f1f0c4988e6fd8444c326b963e6e557629072d760cb89aa36addf58ba433787bbbb4b22d51ad2f5f8b97fd3781e36e40260ea7099b030a8401a861cb41ceb6b45163834508dadb4cb55d20ef598ee2ac1603d49ce53c17629a5f390eda5f8a878e5fa0a341a09bd8165c586114b97637d61462fbb2ddc0c2e64bc24915c7667c888f132a3a5fb25dcdd5d18ae85aa0d0e589bd9d3a630b0d8c0d1b841c569e4548f2b236bcae7715255bf1fbfde57d42e86e3e2f28b72a50fbbbbbbc62e0e59d3ee28e1eeee86926e268ef22974e9ebedd179481a5766bf0b001f60692c2068ac5fd761e77d02806b2b6af4dedddd5d999652dae01a498dd5a78785eafc48851a5d7e4441951f9d856aff15aa50e5ef33d4e82c54e3b350ddab9b0b2eec90ee20c3377688339c085abfde5e3857dfde61a8d133e2469763bda3d4e821ddaf23dd19910f3850658dd2761ab5e970e387872b563f46ae10a9562c912ada6c518b6bc3a2c2b8a5e876f86e071448b2ba1d0a14afa083096cc5ce72c880966a2153769e2990646540120cb28513996a3e3538fc8e7ca6aa51a45dd2ce0c0f0d4bf36994103e9acf0bc120bbb6445bc2a750fb82f685f5f1914142b4899dd25a4924779f1762653a0dd50435968abaad0fb70835ec0fa79688b9b8bbcb91f9d4be5f977bc178894f547b92d1a164a9582a954aa58a3eada8e4a7098bc562b1582a954a25552d553468b8e77d5f4c4ca986ac51a339d65029629b6c504c492020205654812029e6c49dc8137b582c164bb23ec98af9624aa51a3570c021075082607304eb0ca5a92c928f03751120e84e22d54a9b5420d20679ea0725b904c224d02581a6049212a8255029b2e310048721cf9e034f0e5cf4909060a703e4a2174e22cf6eea74c49fabd541eaa04373d4a1bfb9c3207bcac7f4a0f24e9b429094d13c2fcb57c9e4be906a5f582bfd4212f685a4eb0b7dce9d972df067ab460b0ea2deee1e0d38705d0e2dbf9e5d290c08692e0660431b256bb4b9c00c163e1f92bce8f9909260bcf4c200eafb4370ca26f3da28cd59f37e509b26686ca8ffa0365996695e075e1cb0369933b12c9b10500f41e60178994af9fe10f1653f06647cb174127130c7786a89047f12fc42a86fdb4d6a4885943c7bb1f3cc5ef03cb37777f96e8d10ea613b7679e1122f2fc7bebdae8b4712fcf2a3ce42fd07a62b6db0ed9ea46cc6c11eeeeef340227e12cc1e6ef492e0752977d79b775dc654ead7b79d8062fa6edcd61c14984f0f891bf918e6c505e708a6e4a687c41031357dbbdae34df6bd3693dbbcb8a6cb27f75d2a7f7160bbb8e9bd34a073ce89e83ece89d83cc606f5880dca7c9b7c0f9b1e362cfd08ea9be76373cef3c1f9b6498b09528fd8a05f9b5d1e38ba0ca2c7f7da6c25f876e9cd6e47009efab6713b51f6fdc05ba4d77575739b0705f524e8474a63cc784eb16da3a090505c2e3d242ebf99cf3f444c7d714d190888f801c51134cf23897eeae0f7b0c97ccb3c1f993701c511349f44f37071103d9ee34f1b9628a29f12fc584ca5302931df2627a1c064e744b1ed17715b637db14d450dfd4b1f69d0d89afd6b77e6e03cd0b3c1602c31a992c1b0b44f6a585f1496e03f1b0cc612f80196c60282263d04adb09fb0465cab2abd243f24e64bf7a4112ffdedea35d673bca4c8424a29a5642eca949185ea35478c458d2e3fab2bb34ea5e496524ae9de25e5dc95723462a1e96e2eb6cea2465f29a5949469a49cf9ed2ce4ce3933b9bbabfd0752b050b5b4b4b4b4b46c38039adc23c9a82a4b6c8f4569ceda17579a90cdc3a803cec34883cec3f8821779189d107db4fb2af791b64ffbc0f813572b9386b89a1ebafc52ac6571c8a7de058af83122761968d24fbd2118408412ea01f1c322804121a40f3434cddf124ad06f1fc19efa4b8241eec0027d77534d847d135ba12d990c95ccdb1ab98dd2c087a2c55ea79466c6e4c9c8a48c19c5aec999c2198d669a47aa14bba6cc483e32a4f9f59910f47e65a86432aedac44e2b098bab1ce617e6b06a5408d6c46e821e15b0fa099f5883b843c5b36bdf1269a831665bb371b4e5535a28c718dadda5d8eeeed2ee6edaa6eeee4cc3a8d028f6b451b44debcd5a8cd124e512725bc64d5ba913851a1d0ab4bbbba75c19391ab18c9a0b29d4eeee26390d29d4e8dddd9b7d7b7c1a86c8ddc939b99748806013fb916dc3bcece9637ffd7cc92fbd2ec32ed15637ecc3e4a6b587dc671f10479e1d88ecb7519987154a8d745de35ad34aa349b93a3262b46d7fd551c6711d1239da27095c6c527a79fd971008e872c80f08306a777d17eda4dceef9d4b5382322986198413f412d36f204154427b0a640f92483e412234a295b462c2b2a3545d4719b9651ec9ab239ca20cd10b187cdb1477397b3513ecd9841addfb614caa719ed724d6cae49762f3d7aa0bba134d3364e244aa92a2c1ce6ad0dcba8c5c585240346c6cb0c517f7265a44b8f2398b2996387a1574a29e5ce39e737e79cb347caf639594a97334a295bb06d294c59918290b32f6629e3bc3c6e6b2fbe8c3de48fbfe1b3d61776e26272ce39e5ce9de7b93383304a1ba2f1683c292b236c0dc4ccccab5f5fc7d6aff5b92e3b5c206ea04cf472c3035b42e4963bfd92524a29a39452ca29a592dfcc08299e6c4a518592eb87c6d27a34cd0a3d8dd25a6df2e193f6c3a015f6a48d61c19ec7b02e07037c6c3a3ccd9ba0369b6bad46694db41f3e6941da18f6a4ada1e54527d6c4ae79f105cb03bbd6a451336d0ae2534c31b8863d45142cc8ce335a93881367f0ec51c502609f69d4b6e9e0d9e30b626adbb68d531d538dda4cdd0d8d293ed15d506ede0f6ab3797cc1a29cd82e6c5e5a3633a578fee1d9f02452635e055e7aa71461664b71ca6a4b3dfb558259535a14915bce0ba399b6719d28a5aaacb08c5a62b89064cc7881f9d949c915cccb0c1924971837d080d999ad9f182d239695d97a76151afec2ac9d56a9d414d1ceb377eecd88aa0b88591db769de2723aa3016909661ac67a75f0c297e7187aa624a2e4f7f3e5bfd3c3bd605d1f2d94a0da5181fd383ba2ba3861a2d9fb5a860c695abadb1e197db676a6ba477118af0fdb1af5cc9d5d6dc20a59ca9316c4cb43a49658f1da53227816d79f9b471d43c862a3d7a7b37393adf0590b0c7bc5932fc35bf979b18c65f5f787d37393a37393a5de86cecae8b4fd77793a3c3e0fe4d0eceabf82607e76f72825cd74dce0e83fb37393c0cee4bee2627880ea3eadfe4e4f029fec79b1c1c3ef5f87dee76556e72540cee87f52627e7260787c1c56ab06d0fb5bee4624872b184b989612496e4383eedfc480cf6e05a4965df48229d26835a54527d6ee79715c549142fbc2a68f5cbe2c24994275c5098527afd83caeeee9d73ced943b2532bb3b3a79c73b29472a5d4e1f23d6bc0c51f5b938451a425ce047432d334fd51cacd4e9ebdb750f9af18e374c2a86ba74d4df8349d67d5c3ba7cb8a5f37c2969f94b49a3321e36b1673c4a3ee349ed346a1b6213bb0f1e202b9c1e9de720970f37e46af1b7057dc1f3d38bf1cba1305fe7169f5cae256c52922979f62c1bc2a8d6e91cca2d3e919a23b7fa8da149aee84e63d69a229b52ac299f165c6feea246a79768ba94b28bdde75377f710cfafd68aae832dd4902606e6030501a05ba874ccf735452e15cd0000004040009315002028100c8904a3d158220cc30f14000c7fa04a5e4a9e4b234912c3288861180621428c310410800c02244684510ab0cd449cb75694f6a3953a2f124248d26c8237e140c5de51d2da45942e72876ba1c4ff1797c08983e19f58233c216934e42122a86c5b0281f67179c86404d848a4a362c05091c92ee172a320ed6330bc5d12095d5cd73480119eadb0ebf9af6b70409f188c9af4f9651ffcaed07b315df5c5f881bc8da12142532b3807239bcc3e485fabda2d5a1efe4d45487d5b79ff2745594fca67b971757ac87dfa60f9c90bf7772feedfd8a8f9a708161075af3dad05357ebbea6ba51136946d891c382d0884d022cfa15a181d3de8290217508c054642bf86b9ab32f91c1dbc6e0913a3a792d2a17fca72f9ceb76b5f3c94e9f11882a974acf22c1c3a07f0bfd96e6e946946f188438ddf269ecb0c212037bf4675e207d192a7ed30640f2738130a5a6a53a1bb0cc40bd735ed65f8e1c66c43423e31d2e187fc45de3b22b07718c726920032d3e2342a598eba4f0b637dfaaa229d758cb24ebd040b19519f0bad2d001feea2b42697c60458e71f85c6cde143f0d6134c7f327ad5686a431c4efc260e071200e9b5866c32ea382dcb06face99cee8063cd836ef2657378814bae2dba9f747407f6f543cefc5b6e159304ecc1884990f828c385f8457a0b245e5c47b351c06424ea8aa1d794e0d1baccf22745826b18cd4ff1e03e6b1925613169ecbbcfca268ce5b28506ba4e794cae7b68ee0535ecdc8d7474fb163cc3b4ac03a4e15af0abc44ccd7da883adba166f70c964f888e1810da1c724c4231aac04a7fabe300cf0416de9c6cb79928ce5ae4aec45e6ec4000ae20b23c84858e03ca99cef461976fcf40b8ab30b7c4850d248b7b9e2ba27b62181a8c7fa8a5e5d7c30c19282bdc8dfa9ceb51991f7335154a5e6618b6811f9162ddfa46b8f8a4e159d0f7e29eb6f5249f25256fdc0eb139f756b1b059de5adb5239dae4a97d3efbbfb6420c1f367e35498d701cd1558b9c359a5f482e7933462705d043caa7284ce87a43c7b72f1391d24ae0dc17925bf1695a5cdde6f8b88a73604b122c728104ac3f29e0ff60b063541707342af45fec882900cae7b27d970d6a540a6f37536409203bf79370c77420bccf841ac4456ff8d69e2d65f4b5849e25a7c12db56efd90cf8525ec4ff3d5ba23ff2b651e647e472146d7c83e6745c85f6709b5a25b8ec3377f5b6ab55c301a5332b8f2c62c82e419e2843bd1695405ee77aa84b58ada4ffd709f4c51d7780d05c3e3053d847be3b8fa90bdafa54b0b4186c97cf60dae04e97b0ae89a60bc2c92f43f17806203931721ed4137547fd3a3726424fe26ac642092f6924561426a09b117096ba594c5be3d8981d05acfbf336cca1156874ee53879ec966fdf42bd874bad56be690f9afdced68ec88d91f110d209822d7e2545dc1158c962e2d9bb575beef846e1b4e12a9c3a03b20433287fbb7e522836a729c08e7fdd82da2451855b1aeae6bdd01059156d78d468b9cb4f949a0d8284ee4305a3080ccc25a5b488def7a6e9b5278ee7694664e710c48c7e5cb8479edc2e1f85d14f64fa4519c9c5cd6338d033d6ea82f13139741e447ef622101a4091fedfd08289318d482dd98436c2caf11c9fcd06f7221d974d47c574dd5849caa6722b90eb68a42b41f9f4a836de099b52bc408bc68d3764fab0eaaf40b18b615ca52d04a65be23af18920f71c8382d1740f4c19b16c4e53b6917e9ad7f1839ffacd8198b63bbd69370940100f9244f1d9603d3195118efd761d05a49b525e124220abe5ec106d10d9d47fac700ad3e6d3cf793f73ff81aa67a2ad31de42224489ae5e1bffb84aeb19133028035261943cd0a07049a9453aa91369d6534d3615771de6975086c42fad1028ab8bec74c01469108f7fcb1433f49302ec7aaa94f20b2d93df4035aaf5f7d1f58a70bba97b438025a659e99e288a8b1b1754bcfe51b8472ed025d255c11fa36ae464da687e0576549fb324ec2b6b888077ed7d0dc3e2ff1976deb8862a25321087031b6b13ec8099daae50a6138803e5ff6daf62636c65e54b96ab4e52f758dea57ad0920d4a076f1e07079f881f0ba118ca97408cc9710335f6401b420bb41a6e1ed86925144f260b239b01acb18a683d58c8ee497963e6838e8800cd9f5f856b98d5b7b58272868bfdeea1c82b4a0c492988067af1e598825f2ce43fa6e70a6ffc8aee102668e4ba18a0e182e08d7c24c38283c3063598a194fdb1c60eac8c08d7046a85071ee380c03b7f7e391ab8486c2fe111963010bd7f5818b3c16801a09ed8339138a09ad5bdea6fa64ceb0523ab621b429b4c97016a4e875a773140b08784928b53282f51ca03d3e2dc9bb3e638494fa72cc3cf653ec043fca793939fb0ca52d90aa9a54e794b7a9bf1dc200e943a4d50f0a275333faf996175ab2b370097e41b9f9f6cb3c7d73eb91bd861ecd81e5a3ba1f205ee1597f40444025b26e176a51c23957abf656ab932205551630ba565c16d4797b0578e5a18e2704e06f016feb605d2111d4ce977bddbd038db2f388196e704b8a9ed6bda4d7db5ff70a0f412811624f23bb5688ea9110620c164cf15762e0802b8ea0d7598676cd27abbf9abe3c472bb4c798af4785c208b9c23e106334bd35dae56df41c78556864cacdbfcf807eb48dc590fc7a74dd3a51bdc1b19fe4ad619a0fdc1fa799a6c33ecf2fbc4a0fc2ff9c8d22ddf6474eadaf3110dce7b07c87514cd51c71089458c576b2dd841871f5705f54ec1e8c04e5435706a202b3d1f102979dc7fdfcb0c7973385598d0f0c187efaa214fa98c2269ee6934141cb8c0b38b13cd45cb3edcadc41dec95cc6d5e083363a976feb578aa1906a4b3bed5c6c5c9ee79f268252481a279b75d6c3997940a12f6a8083b0d3156e913ff8c273e39e69333ba37d0e17a848811503254b5b8b1bca3ca8b90852895b91758ce0f6887419419cf430544c6ecc1c80d686a8c439fd282f8e05a698c0b8d81421d5c462a54bc64f3e2091456ea019f627e7fc34e5ca2b2a16cde5e009fddd15f51d09b74dea706105294899f73730e0a84f194569c5bf5fb759c122ff6eaba5a18992fece9e9d15c3d714ef6863b5fc6a28608bcdbbbb1f4267c7e9f02e30e178a9fdfb245279389d565180050f590f89298472cc98265b453f4f8884d48ffd8cbb6913a47b0c13cf8f1593a1c1801fb0c6287487070d0633e0b8b2bd8dcd2870bb6f3c3ee1f25a987717240ebd8865c514b0d79242076355bedc436c33fd80b2e7b499c34b11471215351f83d7fbf89a5d302cae111b3a5885e95150f0b0af66083edfca4869c79f07ca7d2d524b82ce12eb6ee25b70192c476fe84e9d9b89888618e15f3afc35e1733637927d0b77c5b3f38b86fcc72b2ef93e332cd034047bb7d424232eb8629a8d875751bdf72aebd6ed19535ac0faa849d031afd1497518ac6fa8ba506071d4962bd6b1d9753a6228ef673856263f4b920a8a4ccd04be4fe6cd61679fcd6224d60ee728d9f7d9098d09f7ccec84dba00e466ba3be6743f99127edc01331eec4cea0bd740d65c316e4e9cc04c519ae2e9e8060ee58ae997e3dc138a822815e71ad259a9ff3f298c1f6607c685a12154d7c520605851cd904ca815e6817da47faab3c8deac607fbd83e9acf9f5435c6bed82b8f0cea8ab873b3517dd0b88b213fa97e1ec09002d8bef3ae761a4eaf80b7262041857c1d1e0ba7ea10e9e4e5fb271731ad72ccd977a89ff91aea413882c49c6d83a38b16058d8c532748b687edaf6ae76ca9e784e9b22ed33e4724b8a33904b51e52eae86cc93abb9bdb05372f50f304cfb10106b512b2334dfd9e10fb490d135d061f63aea8af2b06e4ac3100ade10944d80e6eed2057f86fcaaff910f8afe1c4065ef80e86d89bfcd1dd75d76bd5e97e09fab2e68a3da7978ba72f2d3a928d6fbaf2b378f986e19d1b4e3d216e0ee3c935a73b5f202062d55918e5214a1521af1bcf8bb7d4732d95992200dd0e46afa1c48f22aabf09eda2ca687205028cf7c9b3e69a32383bdf85b5b4f793a82bc3cad80e1011f92dbd93a9c5864dde692572a6ba0ebc895c4d4becb4572b225d28ebda37542eb44cba57d3af5742f39d617e76cc2042ad70fb36bb8a57d1d911237d6276e386d026c33d791ab81ca13010c1059936c372880c54f7572491b41f621c53207efacc7447f2ea72f25c24cb519429e9dcb1e034b83c6b60381341997ceacdb827ead72ec1c184a6237b501cb870b2f63c46ca1a5499721aeec4d695c26bba1142829b822d60149e66b414f4014534583513aaec2e545819e9bd17cddc1888aca8498064a8496dacad0a5d4f6a236d55683d491bb58542e989daa0ad0a4d4f6a035d4dbe092718746c2b47db1b997c8741aa37459bab73b7126adf83ac837e4651df748aaa926dcbfc4311f467d3090f186b626e28d64433826d37a6476d00fc867e5973ebce6be6955cb233358c7f0e0449d3b433ea1156565aab0fd16dfb60b7d75b903569a05e21166fb99a10d5d46104a6aa495a62f33f6ffb32f9ef47999948064f38a636ef70f550e0fa7bb41de18936ade994b43f866150c8679056650c461d1511c1f5698d7623d457a0e54a20b56d0333cda9b14b0134e60c901f5f8c4bb40d8d75d57f2a285d4d20cb0f99df3a93523cec1fb3617a7b9399ae3bbb1d7a66f7fbd862240c3b119e7ba101f39df1c528da17642aec818f176952d2cc4cedd3b5c0af925786fac77673bd7d06f81a27cf7ce09dd11643d3a4f02e3ada82d5b0aa49a5ec2c1fbbb29edeff9833086fed70ee102c667326987ea78fc39c18c093bb2b280dfa14131a3b4bdf4ded712e5836f474d123286007cc6a4260df6a7fdc3337a33467b5430ec1a305df5588013c28ca754992cca29e0e8077626d4effb3bc05011d1ce5ceafa9f998f9baa3f28cdb8ddf8d75a41569fec3981be5a1f7156de67e0c02178e66e6b3b568a66571d90ee0998ba98f309a937354331de7105976c94b4683a034fe3a13fd56f2ce396e8c01ff393416cc00bb7c5499a9ecf9f29ce6ee1aac07cd48f61d07afb41d1dd88a51cdebe3d96cf0c5a0713f786c4ddb681a9637c395240334e221c86a00176f76b5373881d0a45f3d2ad9cc7c3ce6a9ed4f49fc26b8918b1cfe2f1bef2ce55aa9b7036152d2fbe5604a6656ba734c3cbab3db66a15fedeb30c1971110d6d0b6eed00841149dd41be1c6dbad57ee074bbef0215f2483d8e8c498f499ba1311246c9c86a559628f74e93d8485ae0a43163275f99dfd6ce441ef77bc0a5e0a51fe690792e4e78cd968c2ff65ae368557c5a91c15b076580f60a6966cab4b9a8a5a5634cf9d5ecc4b8f7c92c1466489d5b6d3654b22d297ef4bdaf9227ce87bd831fb784a8ad3bb64eaf0fd4d6ae7b9bd1bfe9604f8e7e8cfc70c5e565c21d0a681dfcb6bd28c638f8e0c783d73debfcfebf3b1d12b083c7bfb7036b41f550081b5fb743f4017a49e35790aeeefb2c1e66593dc60ed931b29d5165f4bf33ab3521d95fad1d71e0dba046de8abf0e82942d496e828f79c8b79746df5d08b8db56b4dcadd21d608d6736ccf99c4da7f3a4262a3d8945b7b7ee53e32d30729b2034699fba48f14bc1ee51f4b8e7599cec484fafad637ce7b37f534ff004f08b0d5f861ade0dc9dba2813c9651d749a64c9708c4149cae7c01589cbc7eb78bc479b96a5d511c4499a6bb4caa43fa078327539bfb777a4940e58da845d3d358cb7fa996be534fcdd17afca53f8b75f5c2ba7e1efba1bf55b3afc99620f7f83f544566cd35f90a8754732f2aafb0ff4568e4871e5abfb39aed87ca04e78347c8814947196dae9457e4dafbf9860a26ffc40fbfcde826b4e3e8d691d14c51076f8397716bc1cc7d2426a02cb37de136c5c33eb88beaf6f4ed6b6bf6a6dbe76f9aa7ca21777927d1c7e04d3c439b162efc9715a99508ef57b30da7de07b0e85f5e72ed458075d481310dc8a02c70621ae4eafc2e4bf21966d593df0cea0ebe25f702eeb29c1e17477a0ef0db09f9c206f51b988f000d3fde3252b14c4bf434f1d7a3f95d02db93b472fd04408d8a006ae8c1f4c4aa874eeda7a90fd6a1b31fd41cc6d0b2c1c18e9670a6ec414ea469997d58901de37391ba2baffa0a8ab9a29342ddbc7543ca9cdb6df9c01015cf81c40a61c84bedf72cc21f91ad0a17f03350cbca8af934ca1c12ec68fbc7ccd806148ef6d4407c93289430e4321e04102b0f095e11b9b9e14b835628a1d2058000f2fcdc2f697203fb7269a267ccb2d501877e7ceb3f6b269b04341db31b165a726a51b4d10f81ddb492fef94ba146d01a89c4a45e8fc9d617228400a6892f2d1fc38c008f25712eb381b7b112b9ad30a9418cd64d346ba74394dcff9916303ba118ee95aab51d16d374be82874e66ae11ec56b8a8190bab825ab4edd3ebd5a448de3f68ef7451e70cefd37583f873c98258e7559e26044ee948927b307b9260390831c99ba06d4b1f056f7942e7a70d1672ee2a24784f232578c78984d2c9f1ac82273c0ef3a9cf750d2422ada7dff69ef39cbfb3dbf2c7ca0cde714e25a2a4d2c7b5095591829c2f68a9df4545a51988f1b951782a9256130d21e88cf5627ec67de7ff4304d8ff10a0ed9243439b96e8c56ba4521b335d55d10c7df7e0e4e1dc8304a4ab50869b31008b0b1a80b1e88cc4c0683b7b211045b2b34a94980a7083ea98fedf8465700e1aee06ab57384771f1dd68b32d5d04a59166eb0a5bca94147d8a905bd040901955f39d4bf204ed0b5bb7b13be7a1c04b82040592f310ab10c1bf725338c12283f7021afee58291986f0c95e0af7f5e5288c79e2429144db4ffdc30edd14159159992e9bc63591f146a1589941ca95a7f276601360f0dce435a50685d5ece0f3806746766988a4294407a931c5854594cf15baec264a015ffb86003aaa1b5ceeb845d5c96df3bb2d9123aed48d3bdf22dc75da97bb0e3fff65e06341359022ad0653048e93bd49765f70e24ac29a736d4fbd63699abdb81a0a359be35305cc9b0b1987ecdb13d00562626345144d0755158fafeb6fe51173ba764584fc7aab95a05570b3050c7006b69d97b2399a42b057329648d3c8a6f4fd7a832c26e471660bd8b0c7bed3831850ab130ac0a2cefdd66080158297e435c76fa1eca94c1c0ba4f5c602c0ebcf9d822467faed0d69b064311743caec87425f9948cac5eed0b5b7aa06a6b829e518c66cc3e3d1e1bbeb923142e5d9a50804d29b786ec9a88a5785ea31ae6a5c9bee5a22c417e015fdf38cb05c6c19565c8d745a345e3d61e263e125794cd89c37a0c267b2595ce9e479a7938d9b1d6dd853bea448821a3ed930806c68c9370a888cffda833d1eb2005fe9cab29488fa60f49b0934f08c85f51a9577cb200f52143987bcf2433aaa5ecbdbd68aaeb3786adc5a0e04bfecd8ee6c8104fcaa377b2a3b07a62e5133f73f54316bcbc9671912c1e0f41dd267dbfde50fe3adc4e1de0bdf611ade0c407dbcba1b7824662a88aca018d6e8b2cb42d008b5916c11785bf5932d739582dc707d4e9f825aced1e35c27e483fa32424f4a3e2c12e924e464c00e384342cdb82bf9dea4e0369496a8b54f900170406c6283d646461e1638324e6f9b6c53e8df5f4e8a2899aade3541af39797f07f787c992e69e465e378651b9a4e63212237205e1b12cddfaa10c09198d5334d5cbf6eee2ff333ecdf7700067703c1f79849671613acc584723a2be0454a92b451dc9488dede27387abc745960507626b665cf2f0b4aa5b1c73050db3ac52153f4777dac746b72d095492bbe49eb318ca0e78b997bf123415795466ac33eb90948a5fa3bf3333cc518056b6dccd8d7ce9c4873ff33b571fc60a2ff5459120b9f25b552b9b8677ec0d10897ece4205fb02a2b2a39eb1c4413192a3c07e97176319a14f1cc505a31e88fefd8683914381d987f214d4b08a976fd6c30186d55e3c136211c8a79ef582711277dbae45145e88e0ee28676c183640322ce834e47633f730b9b090afb53197bde057f84508d1913ba742908a0144b9bf1e8b7d721f3cbd9b8f4afea4c9e0c1fc3b8bdddd8ab38dab2c305d18afab2d29f68210382744dd553c67193b58fb3d096397f2d7f7a2223362f0dcebdba9ad876613e5d4374c8602d1b45ab8d27522de3b8a4c7f0fbc0419ec9a1b7b9c1221d222e8fa19a637e0b56b3773c0c50df422acabc2125af18792da2e757ce2220fb92a1416b9c5962f8edff4f3f6f9d8edd4934523071754f06d45ef20df23c90a698a3e557e0488b9c6c887901ba291e7e20ee1c985e592a3ab6c8bf3001f6e9160a5da89bda523d64ee08fd5e8142beff249495bebdfc978adca1988d03632b03967f3a9bef130a1fc1426d89a7ee46a42101c3a1a0da3f6ee8a337dae28587fa0c316667f0c1ef7bdad7df72624bff41918e14d66084115fbe77f1d88d9e82c719790d0e06648ebbc985bd924190f616731cc79216ccd456a5b879b8f78f949810998ff8466d6025cf88b7e47a0de55f7ae2886387774da510bdcbc2677c1cff5372da86ec748f0907de3c6c0e5468f4c0ba978404ef99ad60b52729a0a469331bd206ce59be3ad56578f6afef03cc53e41a13c29f1badd8d0a7b06544a40b2beba80c28a843e3edca635ece5368e4a77cbb0f2a6d3613d38a9697f79f429b9574bb0a9c9edb78e6aa910ab8c0270d9c2752aa8531273199401579e8007a07ae6ea68d3ecac19b01f744004998444932e867a727b9f6343a719eab47108457517f52e469578026cd1619c099bfa524587ce27ddcef8f2d580cc39ec1888f3adca8702cb2f1cc13bb7f0c5a140fea20738a4f6aec766cdf1697c87556ee374137cbbcd3423a43f0b5b64e3d9d770f7c16bc2b143cb61b9cd960e3b50cba46d138df1b2739edb894dfbf02b00ee6cf4f259e2a100cec68e60be5c5676e2e3656799a3e9fb9b7255a5790095264b74b0dba79bb78b58db2225c6ef7275ec20f37e751e57d88a16c8bf0066ef7476619917c3af7e70a65d9ef3e1b6f16b73a4e8105cd64b05cabdba601828dd37e095727e1ae1a267a923113d91b6d2e856129a0251d4fa4c965d59153351b123a867d5e74b03a42a28d7719c51b95b82ac427ea0c8f6d7411c834514d61d090f0d5ab38ddf056e2c5c21c46eee2cec0063fb1f9777c52802a5f370121d43893313a98057e7232a94c9f7902359807e2e3bb89eeb69e4afa3cfd46782ebb177156ada09721d8b80455540ea042ab1c817062fa86f106b146e33166351cc80668d547973c6d6c6c490afb434234f276015a4005da1fe2673dab7602f62d0b941acaf17500048215481144d17b0dc7c0958d3abb8796d03a26ef6ef9d9bc44b18533945005cd2804fb302bb34d53a2b232c65a9fbcb804f6b56a2c1cecdb8645161d76ec0553312cb9b6c54fb1858e4592d0f7b7e19398a26c743ffd554c1e95e805b04c4f705b3006d4d8f67104d022a2099852d4b7cd86d95848337f3a5c47795bd84972cfadda18c9b1b9b31462e6b4b647dd051a11175d4d7373e7954f11f9cfd1e969ef853c1a35fc60b760a66b2fc06c6f3187c88afe7f06558b27e082c501dc64b90c960fde91962f7f9f03e9678a2beaefed8c52ca31faef930b446062c93245581fa91cbc34a6213b7a2441b3f54d41ddefec2e4865a09f13a7eb33a0706244b283ffb9cc2e5fdfa9ac4838284b345d36685402d2a39b4e88758772756d64ea605977adc7789f50297cfcc28e184ccb03ce2dda0250ae32934b954d98cc6ef4409405c4951e44cebbf3e7fb8ad64232f85a465a265a5853587e33ed9a0cfea2d3178a3c8ef64aa3779765d8561d3419cc1fd8552dff46107ee0aeeb2ea3f45daf9cc6715019ab5654a5f69317745619ec8e11433a78aa47a9b52c6594c2d8c96bcd69af9509e9d5df5bcb2a968684b227fc037f25bcbd273c40943eefa46c3c70dc4027823e007a83b78673387bfc325a1d0530b4ad46794844aa02d219b6beb2a717803a124bab86711435496526f78de023b46e261ff835559cdaef38ad9a0f1d10c25104ae5e1ad4ed3997c56f1faa81a8d82c3f44c5b92f23413371fdaf969a5fda789e0bd8fb82e25513ccd81a5c1cf47e2937a9fc00bbde63102aea8b059024535f28344fe121233787abd40be8cda78c5f74a2dc4966f075c5471229fd1f32658d8442baea915f122a9a52f0e6dfbdc270d722027c54737760165b470f1cbf56508fa58995b3616a33db67988c0394b9f6f2b6a1ac9a6c2b027b352aad7b207118ddacf8d4d6de9704e263705be246e777510cfba7d65c868bc4acb322e79160c68b94b48a9f45a55c68536ef8ae52d54ee38c32d43c9bc1b547f4759b3d128924e57f17ea04cca15d93f541a872d2fba2710423a7b344c940ef7b92a6c1615218ab4e60f0d57505b93c271a65b8321e48996f130bbcaa57d579afcf18a0520afba48c54cc25c646671203133f18b42a6b4458e57e4e70204548199cbc755cdb17b293db6cda503612be8d14de2bcf41a9289c4118e41f1e8b535b0fdac95993bad7c980b50f3388105bbd7362ee6b31007dee0d52863b534ffb4f39d3e9c76a6a0c04bfa0de38d49f98d37579767302c8c6b96d4e70d275ea0162b02ed87e045f114994f1a53b14cceb8a31e8fe2d7f80797c2e3cdffb9c953f37d8597c5f1f614f38938214317c0d25c842ea7280868f3d72a5b0f39693d59552e589828dc0dce153b83b3f7d3544ef6bacfcd5bc52be639227612106383090b133f0b113ea0d346a8afc1727f9f7ec720b587086cfc34867daed2004201ad2ac79ba701997fa31accf8de82acc0b082d1008682160362829d4980715dff1e844790e5c786b2cd34c41004eb872d7aea8e9f297966e8899c312096c78db03a57500dd9220b31c228c4a272f1c927b4e6645cdc8c54ceff2805fdf2e2d7f86796945bb4138de76a222644a8951d85a760cbd84224ebf6324e0d52cd08219affb5609abc5f949f5161b4b7b1e2c5fa1d2da6a21f95565aab569b94207264d91be6c5a1c3f3efca27ba1de1ca1a1cf9cf0861f586118b405e1d8065042d253c9b225c45d6a91d564cd899bae531ccabe2006a28bbd6e7b3cd1fdc59bc8f0e44af690aa0d89d0a10fcce58e109e07a6e19415ce30160f230221de83c629ef169e629181659ae32ad36e23116ac08244ac4d67022e647538a85670c13a72f5291247306c1580a539e23094210fb82b0548c5cec2fb091e12fed0e52478a98af21ff7392202b7d90fe4c681fabecee80d8c54ecd3c6a4946515ddf8dc96426f7c3b5ff64f3463c0fd12d5de1c16d2a657c15a34de6a50cc9de01d35142b68625a4683e32c32919e588562c2f6fdb12cc50f28c3fddc7cc654cf00b8d0bd78c986acc40e9688785226717dabd8074b64234a36487e01526fc98d51c1d1b7be8e108f10645d94059c4e5f4b439ce977a3b603225ae5265055ea0c7b3930cb76f66443154ede3664f6a1446467f117f2181c411a57ffe0d76436f80f208581c8552def0cdd8eaa80f8f1766013012796170bd76278286a42bec6436038190b508c7421a744da1f96aa2f14cc0cf82b0e6d1220d5fdd598815d3fa0342a2054d18e9dc3c5c8f05f6c9b3bdf513c8fd16c93cba568b42706fae577ecd280b4d42bc4c3eafff8cebebe5a037db82101457b4cbd02e1604e102389d32319562465141e78da094b8f248d7e3e704cec13030a12f44260dc810f83ae91c5b5f6fd204d2cfb374425d818459f2a5a8f9c0f1b7e03d97292c982e86d0159635202a870aa77d067ba60727845eed6247848400cb0c3a24603627bb4fd113282800b69cec081af5f4e16488177d67a8176976c4010c7bca7a29a98abe39336e616f6689ee2d14b730c9c21b8cce36bc165e5b6b12719864c2716c096a01469eb2f915ec1b1b35893a8dd99a0178692028454be189d767c3dd44327f6a2bfb070b4a1ef793ab56e669982d9ba0345ec970d9fd8fc57bfd2b2d3365ae93188e4ad4cdeb0ef333160c5cc7cb92cfa70496220dad02b81ed06b073579370131e00490077900b3afc1b5f120a0eb63df9c10835e1976e9ac26a656bdd281b1a1feea659a5f74ba656a53223b660d21839f029a3b974e4abc9da0a92fb4c4cc2d0617e9c81dd7466379d81d4941cea9229c055e326edad45c49b4379ee39318012fab011561b80870f598685faf699030733f9f011b850dcba8576998e6ced476b07a45154f51e97efcf0def0d86608c1edf0f232216fde0c6b350a96ccc3bfc3441d764f26e81465abd4a13c01dc813f5a849d2011db25ec41a2d9fd57545205f71a71fa9965d5dcfc100d1d545460a05e9cb072d399fb0da447df7a527bf8d517c4a0e065517dd030c6fcf03f6266f51b2a1b92058675f8c7ef414a6cde5cf506b8823b5bf894f1c05d619737314e432a721d891db72dd4c9e5db89f8fc2b139bb35ea98e8b061dfb10f62c8c2a4ee3866c503024b10b5723b2b86986b75e2a211eb2c5630c9dbb021a94734e6fbcbf793b13cf795a64ef964860c0648d0692c9cf545738e23a0a95891bc19a55fde72e1ef8aee5bf15ea4fb3e0f6c55197187a68de893b61834c172886ffb6f28b5ef9d2a47bae48b11380941d832a83ae99e5c150d66e3df391813f8274a5a0836e3f34804cccb8d5458813fa4705a28cf4c773620854b4fbe38829f3592f44b21349deb55b420c3439dec04c415c71870588d91ff803398d591cd7f0fe993fb475be89eba71e839517577821fe3cf4b6c28f4d651c70c40ab1f0389097c7e1ebfce867ec11b81bafd0fafb252c9801289c64c555cd568707242d94b76be602477f3b0b8134bc36ca5f2db334f20a510ab77ec55986afdd30d15f8436ab3f6944004fe18742abc68af448eada4d377d56690af08b724d8c59d7ccf88e43572642b4177bef0863b5d8898376677bef9741e181966f69c19858e4e9155c4b0ea1f698978e88b50444b3f55587d58a6b887d3b6339388a095d9188006d3cc1dbea161dade011a68d685d2362071ecf5dbc0ea63e8b117e3547465ca70e13d378497ec586560d2a116e3c0fdd0f53236d05cb32265c789c333c28e9ec9fd88dac1929d191886153f97f4336ecb6e8bafccb759d7b74efc1c8fdeaf8ac8936c8bff29285118ae2a9c5d4968832d8c2f14e8adc6df13da3b7306fb6baf1788a3d7a17456cb7020e88a88a7d6ef4b7cbf79dbccb3838788e36affebc473737a5fb11ad622889082a3eb6eee3c5ae3bcbe32ed03c6d066bc219964bb563ccc279826b738e895d62351bec80352d80f1d1a7df3ded8fcf361030d240d7135e9e87d10bf2f7af6747668808e5fa3ba17074f628d7139344dd0a88ad38b89360ec77e9882fa224753e8672c05cbc21a1e1b814a1e3e37b77f38fa2109982cdf87b1a5594f78356171d2ef598dd602bdb2454be006d6a69b45a1d752d68f65d3e872196067f3cd1df45f938c99a2cfe6a8f202be53d8d04575fb9522bd03122f4ece3db258913319f2ebd522ff5dea8df689835d8b87892efee5927d110d6c0bbf70d5a8a8cd359a8a6e79b49414ff67c90f0b9e5a73e5f65fe467b3f7c397b5b0c87e70b9384592f94babcec533c290d29c060bdae6e5e33d660417102c135e0f24918a92baee43b7cbf370bf6768c17aa6047e54ca3b9729da55c1892c507bed76ceed6f9c42aa11789da0bcd3876a70d4886f1c6c477a7c3dba7beb51198d01d72fcd65eceba6bc3918b981f87720649e6564270ab82bd5d4d7e45b8b09fddf121af63ec6034db418cdea9ef1bc54b17debefa6e079b19df744f378efea53ee44ec3f9da53cea10c76d1cd9fd6a7b4cf20db0e810956246d90ea8035b3b4946893119de69b2577e8bca1472e63373e3ea0901f7bb58120994e31897dd68d32805fbaadc76c01f2b282e5ff69a1830ba7e851b0e92e458cab4580c75db6148ac8a1b75cf175013d893b032ae7d2984fc29a0e4d19d4896087a3e9ae9dfd6c22d302a1b8257c8ee4ce12d87fbde4264990be11f7a56e7807f4ff7de69563f10d79028cb8d2f9e320abf5dbfdae638461ccd9f1d3d5f8234d49a944a70f128dc4833167e712d155895e2f62fcd316800a99044d8dd1fea55a7e9dc89afdd748f8ed93e03b17fd4f94ee413b0052d711aad679641ca1f32c5385cc3ed380579a8f47e45d307c0dae663c23b4d62f27f91a81b73491c54b8051c9cb9ed28a0327717e351ff50089657ec86fd99f0e9e963006064e0dcbfda146e209bbd6257adeb50e705cd8880e59540d2e7a50b92c49e261f229d0681db39465af8d49bbb0f89cc214dcf62c16027057df7b67948eb42d4120f8b71df0441efec06312ebba43c7c011ce104d50ec6eb9816e30ffd1978657bd39d2e80fe3fea755f53e14adafa8ee7f926d53e607aef4bcf167e32ec607becf843deab16b2db43ef49eb44aa8eb2b1986fed12e406636d2842ed3939d73af748b34cb4b423e38a3e4ded61ded1f39bd3ac583bc2081e4ef22e2dd41f7af860538920650ae5e431b8f1bc22991b23eed3075586b0c587c8403ef0f6b2116d4bcff4d68583ab14e747554bae19ce8052d2dc0ae6d434414403b8c9fe3055037b6901de030379952df4aa1c061482a97f60e290423e3c965efe757917a42e3a743521546ea2c0921b24c8e525d6a210e5726232ce88d2cc335561ff598479151b1f20ef4fb7e156e6fb7cda1c1bb6058680e46bb0c6bd362d716b38172a7b2cf0ed75faaacf78ac12d9f2161d6f55ec05404dcb91671a57b4042c741c733d704978d7aab3aa5abac4338932f710b913d74f166d9bc8abf6417f4b2f8976c4d5bcdd908b27a05887f7541053f57810d3c1f1c31756ca8eb940d114841f120406b59f5241aa8c45f03addcd2315bd50497170ce28b3b3b809e71980ca1025fd8129ad583cc1acfab9b4c384a7f54d7590794da65792e0a8dba355aba21d6287859868d3ca15d4fc59058757c1782895c0cd51f97ab10cee214c453ba80ea0d1108a5d8360dd39a064513d1b6080055c896966a6590df11ecf0bc773e81fe171924f1d5248b09bdb32155860cde9ab225a429d40c5c9cb702d054381c1ac315f8632f257d0fbbb188b56cc2b8ca695c74cea54eeb7184ea7c6298e1c33c59285f35d729d5059d73d054ce958e6ca36ccdc9a5aefef58618453fb66cb723b80ddf0d0c53925bc6b89b52d58c34318d18aec4df0dab83c67983ee201390b4dde8406c04217cc9ce19d2c9b0f7dd70c08a83e1cc2dd557c4e98e3a73d9b90251c7bc9433b4b450ac524b03995d71845198f0ec100cd283ffa71400c1a46e725628d8e0f4b92029002fda5a4373cd08482aa8ffc01d8e26c7de4f4d2033957853364a115ff0aa8de3bd658ce6186ab86f2de18334267b6a6d6bd45c11d69e155c3b8e849db12a0ce9da90998b405849b025518141532a1daa80b488b9180eab99fa56a86893c89ef49c7e94ff9dd87aeec963fb3f7804013419df1600c187d03bf2e14c8391bd8265f2c1feab0c5900c05715a50b1f7c7200b3dccee7f598f2a89c957ff7924da97c77bb77d25b1ae0d36882abc093435f02fbbe3a3381364188bb712d46fe20a680f6b5a02f28ba73d741481b9294b07156315c3c066b6436624ea20fa38b25024015cee1f342b59be8b7199014cc5b14368509fb4725ea8273bc57214a6529b01d44655943e5d153bafb0a63d60c4074b97de0abb1d178e07f7172bfc0e36e29148903f24fb4cf14388a70fa3a54a30b4ee2dedc1f4f340249dfc73fff7a7da05fc1838d6a099299f5b8bd5cc749123af8b1792ea0505ea5631a3f2f4df52443d2259aacaa2e030fc0cbdaa07592ac1c1b0384ca96d5adc29dd248892fabb076f86802a41994187d94832f4d9beb58eb82c71caf099aca027e0175a8e830ad56b9a60e327da4c7d014865fcc7a7ca0983b8f80da15dcf20900cfc4fa16358d4efee349115f84483ff5c6e5a8e69d06f4ca4121052cc9066f6d6cc6a3df86147a929c649ff3375c767400efdd874a8800816fe3ff43145772f237e8e421f6e6575f48dd20d4d62ffd4117278d66c482d25057e102cc8b43e93d318e9ccba118bce1235579dc552fea9af31916599634cae92a202de9bf4aa08074edeb33011e1f247c0407c0004e00972db36922cb0fa0ecd15cd85875d1b2c859fc4aff1b3122c6078cd843d3f45b9342b5ff6a00e0d03b4da5732254910e03930da1b675b8769b7d18283265e0e2f505f83220e03897b246eab2860506831f229651e897deb8515e49f4dd9d2fb2dc9a5ff2ab5678077b9588983638ddd01704cdb8eb2ae136419a858912e90f1b086e4713be03369ecff9f2fcff3b907e2196d8488cd8104487d47c09b48912cb18b7eb2b7a0d72ee41be5b1ac11447d5d79a1780eae925b88361218a60e1f2853fe9bd3075e750d585687cbf029016f92ecba90270ea5af232fed579f996796b3a0d4d8e825702e9f54f1ce50813747dba881322b8905ecbff25b0db3607c5a051b735006fd9170a5ae43d287ac99f59c8474c585ab0265c702cc0f79a4550030c954595bb0c27984794e76aadb6818aba6875e61467fc1f5a530f3df63c7275c33ae4e9bda8bc92a50b15df96222e676b66ff3336776bef647807e1b209ce539184ce989c8eb79ee54b814ad1427ecf8b108541899ec9cfb9704fa90b06a817e027b982442b356ef263ec372ffa43c7329f280b7071025ebdf4ca65f6ac23f2b4b4a47cd7be02a3389e45541844f694d5ab287597419869149c1e9e569c68d90e8d675ec53ddca1310676de2246cac506c7555433dd89acdc619a8447d9cd57f1da42809cbba0edae0c8f109b04ed471a3403a7a5e5644fd657dfd2ad94c83cbcb176fa147620078b68b694c0049cf8a1cca86f4ce3d5fabfaf9e626269acee15e362a0cc5fd1a167e0b0ad7f60e3f69ebf8100df8e32744901287d85af8c96c867525b56c45a2135b284f800a2d2169962835b02709730cd1571a6380a21bf48f16c22bb1a2a1e6e096c2b9d435c6195aed435cf9b14cc4eb10d2ead88ada0dd3ae3e5febc532ba1e90a61f559d79cd6c23183a3a75021eb1aa915f6e6d9533e7fc8dd7d356e10ecafcd74e95bd1ad85246af518824a19aa6002981bbc2bba318842a5b3b030e319e848e221a274c1ef08c43e7098306ab1c4f0c92af859fba542eb411c2aec1ed69156c103d1d735d002168e8514ccd02283a8a03077d0971d70113f92a5867c04c967057cbeaf459e3a40cfd76717e9e893e706aea58ace024ed3fd9fa172a98c92b18c9c5598a8acb1ad8190caaf71aeb0fdd8da9ba7b9fdd7fb61aa1a20f65f4f9f58f0c73f64648c35495710a38e109bc5988c08c570dd1d0f60e38393c0c301a3f3ef188c2ebcd11f1e3427d34d004537d6d6ed71e8b2c7b9852f835642a94427990a4da3cc3ad27b6c719c9ead4c70fc08bb6f453633a1e9a5bcbd2e2ec3c90096ec479e0a01e3c2d892d425268f2722fe1fd0cb4d47457dfd67b64bfa0b3e8df2430e261c6cb5c2281dd54e438dbfa3c3101977c0a1a2ab060520d73f8e93413d4439f7e7fb96405ce1dc65ee2863dada7ac3c9efd62e960ef420e594ca932b0916471d6cfba9b35c40f4385d11cab1770aa0b0882a0a9c0608c443400b3b0f202652904348c873b25f98fad305d205ba728a628645b092fdde8b49b87bbda63cd0df96092f502ce717fd55a560c3c99fdf69f39fe3c2d14fd96e6f67884701a641b30546479a53c0ff0e54889b52a7aa2ae79a4a3ada0956eedd178ada9c10a3304061ed0c86e42914c0737a0820bf8f49ee1a3f2883c23d1148a0cf39335c26864990ecde6ee03d0021ad4aa912ae15c288e994095a186620d1c180ed9eb1370a5a3a21904beb0a5707ad98944b836a2c7b1904dd76580836ca412558b1ff86642a737100336ba803f6fe6ce50746a1716faadac5f54cf1b5a661a0e28bb3679c0a00a250c0f2027d8061f1838f51aa3f742f46096bdd38d3412c13c809ca3bb33b066f80d7dfab7cdfc424dac616b0e19ce40571b4e23d05c8633c5c9c2fa34315d780392e7f4a0b381af88b58a87e5229d2aeeafaa9da7d725b8ab0f9f7e4316d2f65f698fa516a0ce0973904b193a68724be3261b34f22cd1cc0da8e8ccf617c5a403b6e2924184d0b244897154c182215af02059023e3d69c40c3290021e858b91527a4711550003855dc6249a43ffa9d591eab47fa5b8ab6cd1fee9aa9ed7909266911a70a91edec5684c7bdaae2310d6472544bb196035763e753b7fef4a107b16d669edeb1624b3bbcff51e3a4dbdd8fca4950b7b44328d1f9f60b219704253b94889645bec06d98b1df5e73d5b2898bed9ca495e6f50e51d786e980654373a5d4a6a161ec8ef3e83f409f25f672a06da20ea83c48b6228d91f0be8935e99952a6e83237a60fb29bef246e1728e74a54ac4ab7a40ce8f2a3656ea6b5b7a7ce1f24374f9bf29737b259434df54ab596d4ae0cb109717fccb1229110df8e5af1a82ce24369b9549eb23465f4838283c0d4d0e4851c7454847292439461aa649c9388859871cae69c846665aa0de5c2bcd1bf198860409e7148209e09c19181c1c03d6c19174e9124cab8897c4ed1da5c11eec43255e8c520bc2314283294b55aa28afd7a5028aa7e04814eae0aa3847ca594ed04c39088c98b2b26076cd54a26e5cac5e29f0fca5b7d0d74484130ed6b035fb6553e081d52b0dcbe3bba881686d860e1194993368f7b22ad82ba6219bd250e28a59485fd0e44cb9a65a43e0b8bc04e9e0610031d49ffe658760d2673c85d532c9f67fecc282c87d7d3109039913f0641b01a653f4517ab76d566ba809a6a72399b476a6c89c8ed006c264ac47a00d84f47deb2820e2bc7dc9597c02227534a3a5ec56a30c8886dc4d99830671f7ee698e4075422b31c9d5f043de19b7f9ce5b3218e21d18a8782e2acdb96e7319b56b7c35a95d3199554827bb3f824a9984d2c4ffb80ce4bbcb44c31f4d204a1ea8142e7a67a4d399ae1404148354d53437847a01d5741fb5a11b77a1fdbf07bd0881d6c0fe37e615540e89e2e8972205c9e7d85387faf5b218270f8e91b827fb782553107e02ec40e32a8f9db75f2be0566ffc60219f526b9c8d83e4adccd95e9438169dd85339459cca85e71270928e6ba033ebae6ace3c785b9d6f035bbe635c7fcb8dfd97df5a9c46d1a013607985fe6222132202456862c2c987adbf4bcde89d187ceedd9bf05187398425fd2a638d79e9cbaa603d60935987be9ac13be05e0d87d41dcb957f6840cb874c5f4d369a2200de9f5f5d22d61401a9d2ede69e37ee0dbdec63f8ee6f25bf4f3986773525f972c77fe4773dbd71006108bec2a2a4117985bb6b7a50c285376076f27b921f1089d14f73b4db4ba3dbbfafe47e89418b6a5f3b16c5a5a47a40e73548a35ee306539e16d3e953b77dc3042e6e92cc0ff3513f7dda56b3a96322e056875238d413ba4ae586274d06f8f754ebd74e30e7b1c9a4c21ee4ff19572516c167faca13c84443782db832c8f563ab68fd442fb0e8e63f34fb895303a5d1ceab61b2d84111a46458f0307c92012a0600314dca6a1d4a986da20c0865f0a95812c1bfeed9b7aaaac6a5c6fbbffd186c52cd24c76bc3d0aa7b599f08a95b36e79d11497cb550eebeeed545e373214a86242c306cf5ca6e4f5262197724e8ea54be98bca4d57f12c16dce5d69a83150baca1f50d2c81f201792c7092bb936e2e50f3afffdc4c13dd2609c40562c40d8e4b29234b587d2afb4e26d11423eca998eba93c4ea9c8712a6d9f12a4bfcd3775f4e70b901e8cbec2c465c2ceb8da67e8a969fecb0d5aa1e6e76b961eb6c54f971230b99c8a5660fd6b4b7453174fc4a94e5d6c2b7fa84306c2d85aec5ba537a3dd507f19936d8dbd564f09944e4aa5af2def3296c3aec609faacf2cfac06bca5187eb207d61cb0355c3abb0107e87e6c92aa9b0f028e01c9e092819ab8170990b69ce80d219c1b49bbea19ad9256298c7217c39c27d1c79cdc96b003965eb5e2e5e6163f8401d329c2ca1a16a4010f3f84205c3f61e5f36a49ef19aeb0cfd604ed2fd0b1d2905a29ff2b886b040196964b8781a8508063218844375a43bb7512c8a94929fd5963eb564fda08bd6def50e757b7796666bc1bd1bf0915b43047ab190dd83e3251d294299d0989db3e5bfc29fab0d85b4911525d378e9041d3c0aee493c45402568e8ab05eb39e230e30c7b112d0cb09d6deb63fcc3a953d786f68fc65bbd5eb7a20aa0daf97256f81d83c8c623a86784bc16999cdda368641eff08bb78ca04daab840643ae0e9a59875ce35cb17719a89d37fba9fb571799c7432b6c5211936c7d4db51b0a9423f69c2a071c7cf782ee85a9866b1355f294617e04a1604c1abe5999c92b4b5c1e67cca99bbbfd987a0e0f78ca62d4c81f0c92c5eb8efb14e1524af305c0c52f58384bd8781223dc133821480630466b45bccacc46ad96501ba436a6c8e53fc0c1087139e50e10dde945038f728007892bd44e51129c197ad14f36b228e3620d1be9fcdf40cdb7795e9a9431210bac87b21ef8bd815eced56904a6ba635a5910b934800f0b0ed79ace448d37004d69448c660772759491e85e2664f11b3a6a003275342880794956c6f21782bd18a2d05e33b50e768f2e21062a8be286f4e9480d1fa979cd8564e2a8d75eab7ef2e3d42165721a15af83c2108e80e0cade4ecf073d187148c1052c4ea324dc3953eb98d1597d5ed076862f0246831b5472689be012309100d2fd6f4ee6633bc98753b2ac9cdaf41e1ab7ff950ec26d1c3c2715ccde750c338a68a1fe4eebc30a98e80e19e38d2d26d282a02b699aa3b186c15f632f7a13bc120c0f4578cff74b124830073f9b92dd63a53c1942f663e971d532d0f50e16f12c3d93c880d72c2cb4e01298be0f88cc51f0625ef2ffd35d7c46f9a71333f54c994a835a11042954279b7b7fee4185a9c82877e180df28ffe17370cd9d51a73a1b8f59732af252e36da1658d15a725e82a484e160cf33df072cd99fbf4a592fdd11b8cfbd4b9790384fb55a380e2e7cab92c1dcf8ad09ebbd6556e60fa6baf4ac748c1337eb6b5dec9cebc463886964fab6ed9c3cf7a2fe022cb635b8b6641267b0951344ac0ad0eeefabf004cb6a0d730755873a1f85c258b29164177a0671d10e9dbf2cc0d105e89cacae308173cde57cc1eeb8b3f8b065b12fb3d8e2fcdfcaa610efb4b797bfeb3934de1f8c889aae2d31a304a979e80fde5a3839e86e2680406bdf6e3ab86f3ad1f0cc69f867df00b82bf76fd1471b5356b803323b0a88921128891d594add2189753712fbb58fc55c3188063d33432d0a06e8f3bdfeafcc5e5417d04838bd9e991aa4de152cd78c46dd746831b7d97eaafdb7fabfaaffbbfabfd5ff53eddfd5fea9f6df6affadfeefeaff166a65bf0f88605cae7fc5cbd71e5f6b39cef8ad9a1fd5fb51cd4fd5fd54ddafeafdaaeea7ea7e54eb47757e54f7c3a726ffe272986ea1f97bdecd229b7af2ac7b6ec593e5c3375cc63d93f26ea34d0b7bc6941ef8201d74811de4238fe389ecda7d24517df52d75b5396f20680cac587cca0944db0ea81938f6223dbfcff4815862790456ef02796b15d6d15997d280967ce325115d41f6ac6b7cccdd011f623e8c21ce0e2347677ed2520c08fce6585db88df3dc64b224daff1600af74f169efea16c948a611f9a20c9a36c202b74c7039bd12eb63a8fb84c0c4ab90cc40663f22066cc890d761802ac3ad8799b4867d71b1f7d9db7adfd4c39d4ccc86bb86a07e0ff76f18cef3e2625d2a4b264e1d5e28615c282104f470af3054a19a127d98c8ee865fe2332505dcd60883795c078194f59645bb9513ac7083d5c1b83ad6d9b254f6ba635708d8aec7188ea50077c41394841ffa59ff3daa97b1480545bfb123af53828473b0240283b3ee6e692c201420465646c40d347d2b1c9f6511cf9ea4c35a2f950d39d081695499739480885506fa60cc69f52bc08eb0adcd11e1f1e2e53091dd0cbf112b5491aa970353442f186f5464434e31493bd958fd9cd12e95f15ebfb94658b8885b230ff8ddac59050e1ac24b9891000e3550b9c85f80865107b48ce364af4d2e1bb981dba8f03e296a3eb6548c45c0ee2862e01c206dadb9865baa2e8b9a1265df55aa3187a7cbe90bc93a06c58ee7d0785be665405ef4f94192fe227adce98537e4d1ba9b6d7988d2ac6973f0684e0c1b2e0a3f37602bcc418ea0ae4f94e44ef4a2a30604a506045bca462142b3bff110a20e0d256252929a08262a3f6b0cdf282d8216065fc0630ae7ba435095ba29d6741da094f8735ad28f8f8999f2c8fb1f9b16f2bcdfb8d00110b1fa9c44b5a330ca1d29a193566779d9ad1cd06f601febe41813ed475fc4fdff182f60c2f0b329ca3ecce9953ff12a86f0110f80f8553f24d826b79205d2fc54fa75173c3ad191d118f8f2bd42c64fc06d44bdd7fb38708aab54b7629df427780b4a129dfecb84f144c4891c7ad0d4e379ab64c40bff83b169d6c25934cbc5b2aeb570678d7c340d7122cb70c6132219fb86e6828b57f99072e10f514ac9f95ed7d9477f6bbc953c025344769d83fcef2f634861845b4be3d923cafb4e00aaae383f18c377a2a5ef8c1b0ac17504f437641709301c52b215be3063aee9db2082bd781cafea693f7e0518e00eba6b51bbec447d609054754e641d33a68d86590ad0ce2b4cdeefde31d2724050fff19720dc4db5b26f2c0750afc32b326b25b5a00d70af9325df18ff878b646082c9512c7c04953ab2c20cf6b2a25c8ce3282bb2617468728c2ac3e28a0dfe1f813710feecb4afaa0060765ceca69ddf157cd2949f2a26e8fc825dae7f192f16b7b22ef203b24b53428db85844d8dc1c9ef768ed7cd9aaad01edf4c526edd11bb14f068116313575e14df0634d979cf44427a3a34273e3e0218cbc0a8f1eabe0f5d24a7528b108e4eb36f3dbc530b84b93d9c1674d1d53245d1da07c2a9a859cfe364c80be476aa3091c4c2def68ddac91f8b1ec7772d58b4d7cffea0efb418e820831b4047e1c64953b1f7adfa7f262eee08db3573e2e61d156288c100e5c3ff2b835bd3088024fd4881813d3d015aac2aa397953b4d863ab1ce8749491c23759845c4af4e654ae439e73c35a10f95a6f91bb2978e8d09f90a0d48186c75a7ed1f68863f9f51f8369e4fe44e112cce88183278418ec6f4053877a8202e8452a35e85a3903c0790c0709a146e6b4d94b0ca8788d488a698dc9473967a750ea89d8b7fd79596113a5aa02fb989c63fc0718c62239936e04cefd3e7810f97d53bdd6ca9cebe5bf826079b40716b5f4826818fd085b68f11f55bbbcbb6fce422bcf7dfbb3377e6fb8501f10945a767a7c53569da646b00caeef36815b2f4d242ff5254018361e0e285ff74fe13297286d279e83c4971c84f24b5bb7f55b1804b08fd2de57ee7f4c5b0fcdf1cce9957a60f3db3a3e9b688ab58e57e4f07f4b6e4f35d5b34c4987868243286e026580404cb19e58dec832823e93b7c02f26b17efe3853c9b7c0116dba694b471044120d80f400eec476bc4ba726ae4c7a08d260713e838778acd0c1bf46738d85b174632d5e3c7de65f0fc68a0db69e59da220d51060593f38c5162ead8b46fa00d1dcf5240b3034954c91e6d705f434fa5a4897d439e0075c0f660502e8ba29597dfa041f247bf053a14ed9cbaea27ec1c10b48e62db26900536ed5c4bb6126bfb1096a999dd91de7cbb4062c53bb4bb371834a5f1038a9d052e820f7d040981510adcc7a4795da328cd5e5efde154e24a1b0612f83cb58e781d76df2b6bd1912e17b0b988e9a6939c17d8ba5a0213694f9a488fd83a16df3b891061788df663b83cd050943560c03ca42f847ec478e8217acda9f707af69dbddc41b741c81e24fda221b999780566a75f23540be98023d81a29a3bc1cbc7a3e2544347140a5398bd3dceef698497d34bb7da89404713e0cd51d3de7f0e4021dd4617a99ec4572b74f107365ffde642fe8aa3c371ccb764ad293eeff1e85a423bfeedb96006b29a7879608204df417883c167538aa4546ad00bc534835702ed7a2e13d1ad070c2db04e218d658edf872fb63f01f893ace95c2a351ff60ed08c21680b0bc82ed016a6a919382a6719df3e94c6e225e9d9d702ea4555e4e94ab534de7cfc01e2fb9f09b95f22df52413a69d07548ff09b40285eec630a7254ccfcf9fc9fa5ff4e83cebe12771a880b133cb94e8d0313cac6b1dde2cddde8466c512557ec4f5bdb9b47b9139290e74caed24281c09dca069feedf8975474df38d4b53950c1baa022d1670390aea331904342410b5b2d8ebc76f73cf31643359b908c4434a4e1fc1aa1f2a2491299e2d54a40da0b943d4c084b2fc3062f2ea66f89e0559ec74a62dc10a13c301d5f602c889f06323d16a886726e31e2cd942fc624e83c4ac604199646e4177237b80a1aa5257f4fef03344cb86b011395000adcb8d8dfaa869202571daac77e5f058ec876ada51632f4da6c3a20cd03e104ebc963d9f92f163b74d240654b9b2f4d41dcaa2707bdb4e72459d7b164187340f77b7b769a19e5fdcb865104630a5e8eb4bff7b59198c970e14470196e11daa7686fd2cc4665f6548e9d658353865ba8784aa9d6056bd78f2341bcbe506bcba9210cb646fd64648ca856542af1b63cb2b9f27a1440b26a85d0df0c10d015a3f632877c45f12d97e97b45d38d8c985bf75ae1b0c5920b86c759b5ce6a4e7ff47fac105c56187bb170243174b44eda4e34299485eee29fac74a028cdb74e3eac92611e588a11a2b7ccf2cab7b36402944d765e8e2455a83daa1c39ce7209b778bbf1949ff3649c8b0850c8966ac31fc25a6ff22f97ef7253b1fec33934819b620ff3ddad6591bf132554e3aa4856bfaf95d718296b1d6901d27c103825ee9a209507a53889587a196eb476c218e6db9b437a1ff98471a60bb13e4a282e84c6790f228244e82474c398a354866061da34763fd695c0ecc9a2bf01b8966d0b950cc80fb1a2471b6235f342d48e0bdbbcf2a3793e67a8b50cc01136f965bfa4b9df07602f1c692846820436451abeee11698f8f74c99138c6d4c34c33506b22c5ba54eb580d237d67888bdbc1450a0d08b730a02801eedbc5c05b14342309f2f6184f0d4e29761eb4c0e4a5ef3c313b081ce61b204fd490fd4b3bac34f6c8e4f604079ed178bc4fff13741638b0ccbc828f219be515916130b28cef0292307e3c5b837420c0786865a3cbfbd383317b191b9af117e03ee1de3cd08201eecb5e6e388c92db9eed6e7c96ab90aa666508e550df5e74201f52272689d8eedbe9eb96066bf2efe0a680bb71b88c42148f7fbf28f2bf54280b784d7afadfd60e3d81e528d908cfe9a4cfd10a11be4f5091ea5d0df86984024db481af4655277d52f2a066b5ac22df221956363fe4f56d17c307c8547e5134d02561313880d702d31628b2da1d58569b2a6c371d9111a41a50b638d064aa8eaa2bd91e8664ea323bbe4756e8938c82418609d1cbb5ed1d0b1561c95f6f7cb00b42144082ba40c04b28c80ff0a86afcb5b513c9082e8a9918e6af5f7bcb011a4ce11ce5192b3f7a0cf7e7b165590d5f674d4baa9934ca25f46f2c3e6b4f003ff787b36b4033b09289a6a3956b280a3d1d092f9ea8d79aa5cc86d4a5c0b8f3fd24ccdf88f8befbac3086c48a4a7919a5b2428625946a48eb46bd0f4573823431c0950f239b7ca79b9cee1d4e10f1ac0ed8b7594848c87aa13bde02f17b3a0cfd98f0e83bf1e222a4edcff445459a8e740cfd40dc0cd38f4ee0e92d9f26098f8875ea32d9af4af813e384ba54275beb249882bd783aadc37285d84a464346c40454e13daa137284eb3291bbb6045d8c02662380be8cee0b9be2ecb355a7c7ea242cd0c1cb51ef26a74952bde5fa6abb6ee6fd533c1ced18ec7b91d1c834bb67ec8731171212ae4b092144c21525558295ad42562a86c49463f3f40d4b82ce42e558a35bbdc66e7c09e9ab6bedbfba762969f98f37718c2b15fe445416cc6c64b7b0b05b3f34a1ed9e118c04e5f20628053ddd86239f12c9415ba393183f1ca1ddfd5293168eea9eca5ac57fd7a9779ed2dac577f714774f71e714af2dfe3b4fb9f314d63ebedb2dc553a25064f56dd0234ba955912bd62ddd1722f17898293b9583ce56b5e578e7a9ad6d7c779f62f7a9d76afcbb9ebaf329bb4f5d4de3b7fb144557d9a7ee5bab782d0c72077c22033a9c728e58304c69351d8a715b45b95b8200629094c9c04c09930eceb66efd88c03cee9b9224109041aa6029178997c4fb0eb72a308c8a270d8463d145d9d994c4f737a026fdca73935014f6825ad99c08092d35b2bbedbda594524a199808480847093683336a5c5e9e71002edd1a4b7786cde0f2f2f581fb2e9190c9b087c0d9aa0cc3b02c6f18868f533ce8f94479b7863d4076b404fc5a83d16e497597b4d6977767dca55be3f2788ca1cc675e7d144fdf7e5d7440882bde239a8fb41374a20b22a3f64cc3c7a2cf4edc28b38048e977d641bdb90b22670c6e0f5d363beb8c03995ff10c4ff04c4922f3b1db6b1d9f28dca4f1663cbccf3fd6f2d0cd995949990efdb520b43d61dea50ba286e5fd49762953ffeb180da54a773f63164511bc9929cd9411a7c6173bc619d77b669ef67b7166bab98b1d7bc8c17691b557b7de016baf266a1e723d4236525acf26e8d73ae3dfde7b579d6bcd5c705cac9d316b8176df9c75c618672d10d973c6f88222101dd939244770239a83ec592be3901682cf454cc89f333e87460c822008e631c9a875b56e786370f9c1f8fa2df56cef531370bebc3be32edd1abccb5b814899e2724f03a41038d74c24748c765073350b3dd62aada7b84f91d88c51f6e2ac772d2729adefb3d63a44b1b5d67141ca8a66216545415a6a8267a1b4ae55c05d5988138f431066a7f2ba0c4dc39dbb7ba3d87af87ca6666a9a375bd39a96cc68e8b87b147a0dc37cc9f0cc6f67d9f48000638e8c798c3d3f4685b027fdedc0a634013eaa39cdd370e619c5a8580dc54eeb7aec182cbbde288aed6ec6414622865113dcdc4562a3c42b72e56e2ee72cbad63b1cc9b1041bdedcae1b95797d99a84134bd0f3a51d60ed612ec57d737675bf5d0cd7926ad6662547d485bb8691cc73a43534f110213ccf79bcb5ad75aab09c814973fbc879af5d82f0e6f1f9db194d7c7b08add2af6b966657d6a971e4a197a5a9661228afc23a8cffae1899ae5010a365e60898d7efd165531bb25de5b26cb3ce79cb3d1dbf3034829d267cf688af4d9c573f47a3d0c4b13c97abe2a49bf970c71a5f6f0d9695e2f88ec33afd96b32a79d69cee8358a22a7226462899e20f220c5551e3754f9c5b33efe00d26bd4444643946633d74802fd26b6833352f43a8e68883b9e29d28f9ee2c71a82d1cfd4e8c39b13453435413fe99a2481fea3acb33eff314453f7a1eba5a7e68319aa4c3d78b820425ae8f704d2d73c94f9f5da59dedce821ad3ccd5b348ea3db1907231a7a089c869f7ab85194f465abfcc324c09823644c326bedbdf7ce5a1a0b93be61cd205e2af25bfced1b4d357a02e9711925f14597785c169a6439c9bab1420b55b65e9c097a61a7284f52102472e0846173a4079a267ba68f989b3b3c86f48991022d66eac06067891e372f92d85e5811026b3afdd840f3b55bc3c542bf903c508af078823547a75f2cbdb6bd7ed1f43ac36b3c4dd782404272d4f98a81050b2ab8ac11d3dbd3a68a8b362ef26cb8d32480af3f17543ec3d79f0baaedcb36ae7bb84710a84517bb59b34a0dfea61fd2705bd71dc29b2bb5a7e16bb4cc31ca34fc5bbf4e5c10d66fb9757e4be29e0b1ed84553cdc5ae059b1670ec34c1009219f1510b32638b2a7ffbfa6b51a55d7869bd5a0fad9bd662d1400f2a36555675a46a7c914c72a25864c9e1034b07b6ca708310226ecea62195bcf05108114a7538282199ae9982903c763284088c37daa2c563dc82f718638c75d307a390e828cdfd3d838486c843d50a2caa7ad8b73fd652af5e433474d1331a861fdefad644f7bae8a2a7d984e8227ac55244c9bb358a71d6dd0f7173182d3e5e4f61c04c3105aa135ee55141260cef499a2b499c3819411344053a34a87cf97a13c6c585ca4f89cb8f451a0b7a5ab576de6749e27f9252c74b871ba89d2e350b60234e8c1953baac21a3c3737213e825823e34a6c461216c4f972ecd25dda0739563852d2a44b1a34b8d8e20098518d91565f28b32d86af0244bc781cafcf5c702eaf111c9c287128cbc75ee62d164f7d71f8b1c3e2c476fb1bac165050d3b71e4d42e49a06e608db951064ded32c306d60b31757a2a7469f9358e52172a2f5e52a47438e9aa571272098675e3a42429ecb1f1db01838e3ebad4fc1534441632423804e05589520306296a60d06d748325ec0b447be148bf11027badb1901e392ac6785079d2050259bb39757c7405b2f3a58b056f4cc7d58f189e2727402bc6d4f1408b589d18746030e15125e889e9662909c718ae1c2c6c6479c18b2e355f6331d286c9481e384e2a74da95bcd62ba45edf5eb779ad7536cd0f46e1eceb6f050f330c346e117d4af427888480fa62ad8d84c0d8c9454e44f6b4fa36f8a9605282116ef8fa53a1e235d4d93a13082c900afff003489f227d2dd3aa55c19d415c7c94012f75ac986640b971a54bcdb7ca4b706cf051bdd2c2c9ce0b37a27a72748e74731f6e0e63af571e630f1d639c9770b5184dcdb7f54afded90fc75f3baf9f5b7cbf1415f7fbbdd52b661cd7bef0da3dc2128c78c551b355966baa2e852f3b797f8a8084b181c177edc4861896e7b0dbb7eefad5172a9ac9f1d6aac4469ed3ada5ecb9b13ca7a2ca45107fca2d27cf6a17ba481e71a88d0f1376f21f934f74a34abeafbb3f5e9873f535fc58c60e2326247ef1cb1c3c9cdd5c771fd5ef317dfc7dec14dfad3ef509ca1bf32b0dd550cb0df2dbc531af1d7d7bdf756bf515f1ddcba7aae8e53a3afaf5ead55dbbf16c85889d2bdfbeba4c5596fac37188a5914f1b5e20e45d9282367b41aadb4dd82701987c3d7e2c0c4c2c6c4c0b492de8105ed96fe7a06a5eb1a9636e8f8eb268f43e6c0015fcb6177e564ca552fcbd7c35ef80dfec25eb80b876130dcc563d2e1c4c49b8ab259ebafdf9c753397bf8eb3164eb398bfaeb76eee66df9f32cd37a405601cc751b6bb5197eaf6eed5f55d2d309fd6165717eeedeed66eb7dbed2e5797179898d8ebf57abdde6eb7dbed7615d86c369b00706062e5ce5cca5d269fd6165797cfe7f3f97c3c1e8fc7e3e1aede8deaf57abddea5babd7be5bb5a21f6f97c3e1f8fc7e3f17abd5eafd7f33fa500827c56cb6e59ae2e2f9fcfe7f3f1783c1e8f87bbc0bac4eeee2e5dde65027d3e9fcfe7e3f1783c1e0f77e12edc85bb7017ee3a85860000800004a0820afc3cf1b5e7ed79215394a51ac1e7f3f97c1f589f3832932945af1210f56c84d66edd04f6101cc11907200492ec6c8409ec26b063d7a789ecf91e59dd753b33da758888b2989c89909072983044ca637a542df5a05242227143167cfdf568c1c336820715691bb1a3ebe6ea07fd78c97c5d28e72bee76bb9d0a47127bbb9345f118f229118fdda74602f8f4c3dbb4fa32be23bef77a07f7ef45739b32e8eb6fc7d2dbae115713e908fb76bb9d0a1d044a6ce082a8bf1c607fbff28e0949fce9b8fab46ee958fa4fab57050371d31aa8c2f0572c676d885b517b0edd5c78371a66db081e3baf57cd58cd1f8eac1f0e276f9d5c809429577e38a63c30da1454c8faf1e4e0786a91b39752f6f58723c7e32313c7920c1c2a5e88c110617aae82afbf1b666e60f9d408ec51e320217d20234ac8991c345ec0aa65d03431b1b0860f972632a10bf905a42f1390d187c94ad89e1a5546255332a248e9d8d1224b8b1ea42fe0d5839ef317f2ebef860a61968868098c4b4406d18d2817445984e9b91b393e35d2807e3caa9f8dab2c07ce8a362c887286c31bfbfcf5c713e342b485b455266f2161309b57e5f7992f456c50bd01befe6a8899370449787daf759d9d14b5880ac9dc84e8a1cb440f5d0c51125efb46ab49c2c4b28ba366786e81c6588daa0fdde947632bcce0e24c83737093bc396ebc9d416e3b4beb37dfdf9cecfd68447de99b71f5d8495c909724a8e0695efa9e4900e7b79bcd36a20f487adaede6370f3ad39a57d7e0e3edbc69f010f786735b90e3fc76a624fccdf72c02362fc3302dff860a3d20e96b5e8e5e3a4e04493fa223a8e06ba810cd4d8c5e73dae8b55acd2b09b91a8af35b5abb6970dc99e23c08b540aac4a112d0e037d484061f5113a4dfca33c5a127ccd780dad0f484f9a47923671b5cfb0d4d399866596e7071838b1bc4d26d3eda3688e2cd6d38f1e6b60da228967ec389362fd10c193cc415cf0c369b68b3d95c26dac4164a210ffee66518966ebdfcd5f0fad5985286b771bc590f7f34781fd64edc9992f038dc975e2f880d6edabc7421134dcb2f5d836f38ebcd6940d3f26d1e74dabcde2321d7a0014dc3b7a16906c779900b9df51695684a7aad3aeedc9ee14c4f987f73f276bb7988a6a3dffca4d9d903926eb75b909727ce6d676abecd71cd4d948ef35ae9382f1d87d69bb379cd83d0fbb69b88fa42373761f3d26fa805444aa111362fdd86cebc44676efe888665fd408289cd5b0b62abe77c7367b57dc6d47ea552a6d9a2c05e51a111b59ea8599fddeacfd548f622984bc9372fce7ae3c9556a2a9429f9b43bc3641eb56c8bb80b02570ee1b0935fe6bfb582d840c6a8d008ecd9339a6e29ad27bd4ccd08a44c49b18babfa02695e778981917073e067bf2400dfc4750096b16ebdb5d65aa32771739a6b6f6badc5da43dcad4f5c6ce2a221095a4c640b04412424229b063777cf0fb7e87ad0793b6544b69ba5c64a94da2ce5ddbbd7752b8512e4d9b10f51e43f51b7c08d926811d143dcea225a6f97cd2326c4d50241d0011fa85e6f02f4d0c1ea459b91a96708b28db5f22c92c16d41670736a56c836b709c2dc8fd76e6a19b0373a06f3873b708740d67bd45a3256f677d59ce081fe1dc96c1afdbcef20c7173a0d7ce0d6e0e74da0942899b039d3c4518a15e007a8633bc4560c5472240b732a4dbd56990cafca1edecc0a61c5df4f2246fae66d392065a0ba6669a337a8ba2c8ef6f42be783088a6fee09992df810dedcce0cc4127c732357f4451e4340c4394f4cb436bad97a8a8b5e2adf5070f1040420a6b0c29ad6f5d2d1fd2cd55af5939a20f5f7b5b56b6b28c42234cc89f866e518b8e42236c7e8b26fd880a8d207d1c9d4451e43f81f4a427fd18cec2192a92e31e47df635a7de199e2c2d0c11015613f6f7073756fd71bbd587fbe59487fc57ffd88f89a9d94d64f207dadb586a817e0b4d6a508444c4e10bdce91619e525ad7a9070fe6191fd84d8c735f93a66429350b478ac854a5f50f8f7378bf20503148512f483f549f877b24c22db248625f60612454e1ee91070ba2039b32ffca9448565ff4a10b423b7697c93c7f9d8932f404f9a118a27e7343c6faa19c797e5b1d847b647db848145d441d539ce8d5fa78d1d3a30c2c533d80e8e90288721ecaf483286a5114bdc3993a9b5d51b45614452d8668959d22525d8de1cd85a258657bf6aca06d9f1dd894607e2aa7aed34545d7670e451158a3ed8e2ece6677849bbb6ebb5e56ad9a91f932f23c512f105d143d6789a28b2ec208a28b62546a02f833d72ebacdba20662ebae81515496bd11375eb67f9c733bf4c14c52aba9993442b732144c52004f502ebb8da87377adb11cdc3683beddf104976a544fa115fa297f99d79307495c70d095bcb392eb24f7323c74737c718fbed0c71919d9d151f21ad50a6358b743c7ae8e182484f54af9779e8d88d46c72349a227905ee678e6c16d4a0b8e9765ebe11b3bdba808376771ed823248df6fbbbb45db457377a053923e96b839116eae4e99d637bfbdc399b282e03dafef8beefa55b657247b097c44748bb68761999628997660538ac04776c62ddae4f68c55a695ebf7f6121704e9db451861bb95f99eba96676790a809f92f51bde0ba3e65670736e5cd5acaaddbeee11e55dd76a47b5443a2dfe6b63e2c15638cb1de556b3d5e8d6fce39678dfa871df9f544975a87702512adb5d6b5d6daa4b47ec5d4f0e6ceaae53a6b0b68ac445e3f009f8cdee7befe642cfd0c1dcfe1eb4f86d88f98d453390a3b5da607c1dfa88e472fefe6c0bb4db86f51f06538df684abb791abacdf7de1b4d4dc8f828c8f1cc4b0f3a6f67bd45a50dad89f9c1196ac27a7e103541a2a935c17bfa45d4c475f0a226acebd728aa2d8a6a34bdbcdf2ec318e3f0499d4f123e9ff85ccd4f49f8accf0f989f5113d6338a3dc7107bfffa8331f622baad6faf763693808f777d472470117610b4bdb7d6c9074d9a96f2aca8e263a582a5b29262802d533bdcd8f88252f29c95131cf822ad5c3612312430aa9aac08b3a7e193213ec2dd22eb554760e4b056535a9c798b3a7cfd55f13efcfaab5afa14e7989786c88c19234b543e3efc9c4531a13e3d10dd5cee1ae97aad1d675eedee81084d59bb6e51fdf088d72daa9f86e0998f80cd8ec4f0ba9e29eb5b1dd11be1c245b7c81a7932c2f4a99989707dfdf096c445f5c5535952638cc24a0d5f7f544a54bb4f8d8894e39e1ba5f885a3481ca972fcfa2b82e653935442c674faf229f943b87c6a92bc2c9f92660fac4f4d9207954f49f3c8d5a72669d5e453d22c92e45393f461e453d27c9afad4247f00f99434997c7c6a92543b3e25cd19bc4f4d124ac6a7a439e5e25393045244c5a7a41935f6a949d2e8f32969eed0f3a949eab0f329692629b5d7a72669e3cda7a459d5f5a94936a5f994346b707d6a9242c47c4a9a39b63e35c9205c3e254d195a9f9a2492ac4f496d8488ef53d32432e531c61893a11511518e056b9a436e33a85a2a5e8f2953f2c9126733a858548cb119d42c1578dbc76ebddc330e2c0ca2884559ce194dad635b8215b7b543b688544d814d795d7c31a66931d97220d60bb6ce7904c37a81f52aa5bf10e92f48375a2dc9a00d80da906d43872c134d0eae71426000f07867a1d590e103b8820f9c344614f4e0e922240d99235c98e441c3c44505062a3e453a0c00cd113656738404aae3c3859a325e4f43d6f4888870aa68e9a1e50c8c2c2b50200ed3949a2561fa7819724b7005ca9293363d78576c74b980a1d4034a193b53422f568cc913d5c44e1121a89e20be355fb248cd9182b265b2aad4f4618183c59407baf8b696f6f8fef01002852b11830557548fb13980221066cf8e9d0b2cb8c811e489c375d2a38852cfcc8f2a11a218e11107891637bda82701d0a8c01c42352666e765061d215d58f098f2b2c7ce0d205036179e0c69e305c8949e2a1ca292f85cc0839502102894c6b6f28ab324c7d28c3981ae54b960f323c98b29589e8064305aa0fe8881c1498b180e4b6aeca1a106c6180c27a81aa926cc9216ae7663756670a87ee08801cf1b177e3c9581a4cc6851a2b1e2676501374c4f3482f4e081f9b805495962038ace8fc6103c32a8b430d9681a33a669c31b2449e8d0c9d243050f833239dec4f9d2e2430b13948bc0c28c5311ac3770c27cd081a34f932538a8aaf478d2507362230e56133a46a0aaef4f1b3e70baf05c58e2016526510984f58488992b65aa54e027e6bbb205a505167684bf14baa2e891716607a7ae911a6344290c6b0c8e0e201930e0110392263c235365223075a74c0c1c597cfcc90180147459b1b37284ce1b335259b8141953e7cb0a3f1c504322007304cb102a7ed0fcc820c81a3dbf314d6b56b831b3355ab4784169ca1eaf01c430862986264f6250e13d915c5986a46923a74b8c2513b022e2e34b891d1836b4101f68b2f4a464d901f4d4052a0a193852744cd5006201518513e84e8c16fef8b051c683265871e0307931fda011802a4f98b0d09387c7c7cbcc4e0c1c2c32d43ccd90d530225fd42ca1da92e1438313254d537645946091015ed0bb8126099c303d23492cbe9894963c61c17127062d09468f2d562bbebc6051b3809d0a489a70ac314304065490962c4bc0fce8a8003352c18401cb71a3ab298e9c25205887e9a0232a0b2b6cc9574f01649c80fcd0f325cc8e7da1c1e8a59a415cfffcd9921a5385ebc51c5d6abed497df4eba706a01c791166cc469a3d331645f7f5259b4b4cd24f0919b43523c2151592cae944f89e827458505918691a58a3cf8f52715f5a951763256a29b5de8a20eb81f3ae84815e71e6add758b9e9ab2ebe219825908efeb98af5b56ced73cd63b3636863446f454f78e01aaebf7066464c8f4da932b612af6f0d0c126892a0796933250b6e88103c5ca1908ca4adc67a0a46424117da47ab53da11137f3292f9af994d5933ee92dfa23c6382ae7cc64add65aa37749cbb8b1be1ae71f6108113943e110730654f37c5961089d2d1c5a529cbc48750152c1494f9fcf194ae933ed33a0cf393fd19ef2ec338076edebcfa987b9b9c6b47a8aafdedbb7b5d6f54918a5388731c6262eaa679ab52eb54ce390447d2ce67baf085c54f3d60f2f8b31e00354e60bd60e3775e4d8b0f2d2d1448897364f5b3e7b7e6ae1738ee173ce8040dcd79f138b1fbffe7e88dddbd373858fb6f559adbdb9ee5297bd1a011f817e7d677bba1170d1c547a02e9f2470d1093ba74fa110b26bd7e809a1675dd58d962411e2a2ec208ac2f61c9e29ac42b0779eb0b0d3859e3d050adb410f5114b69f8002983d0a1f69bf7ea9f051f6bb00ccd565cf4b7573b6eaadef2a2e0a610b85907de3a27ba370d1f54c45757bf7ee3b635831b057577dac51bdbda4dfbce675562245e9b30eec6fdb09b73dce7cf4aab3dd66b667b3576f7d5b9f6d67d8e01c14d1709bf9388e34bb35137bebb7bb13432eb02e2f14d86723e837bfa127d81cf4aa9b7909a1106e1ee441e809db6f5e75a377503fe33cc8e6b8202f319e1517e14ea1ec384fd28df844713d8414a48f5ef31052943e7399a328a144cd432f21739a7350a484adc4f69b9350ba39483ae8375448fb065c64a37a8d92d0603d03bac39d4c6f3de814ca28898a8b78f832e122ebb5b3e222142588c07e09257c5075a07f5075372fa184500832af790d3d617499571de8258442a8f9f68d9e30f39a57ddcd3ba8af1dbbcdb78fb6ede059e222ebb653e83ae849ba7ca637eaedec83aa53aad95908a3cbfcce4accbce6b804e932f42e6121ec34272fefadcb4e218c9210511317590fd11c780a5d9484112eb25e7151920e855b52bee1d5586f20bdab461bf0649cf3879bab59883491f3c48e162d78c26899e9c253c5053e554056884064701843ca39e3a4a93550aaa8668cb943a38a910a7b610f58153c7074d9ab9b27a1f07cd0e73f9f730644e6887ccc7832a3ef83bdbacec04a8c9626a01ab7346328711fee87263d8f67e830c61863ffa00192067e4adad75fd39b4f4b0fb990fcfa6be27afdf5d714e6d35c3682254619ab1f3f28ca38214992429f3e704e98b9e3434793939e17a09ac18c076b8c3596780428ca08e8a9b79fa00022f2d034e5cbafbfa62a3ffbe8ab570e3c453931f90d6fcb1a548f42541b0abdcd6027885e03f403d29fa6221fca0b3649953194f54b0fb9a1334d4286889a9c7eabb7f188f3683d872e82248b9ac01e7aaa1dccd675ad18889ee2dffbb788a6d6b36f34b5e3996a07997a64d38c4fcd1e5b7fddd4fa8baf7511247d76d959421fd808a38292dd9592315d6abe9516a0959f17a83e7282a8d0c745135d17adb516c2a26149c070f304430c1c157d4810e32443eb4a94d31297a70b4201c01ea5a00278d3634f1625602cb650347ba4cea4b0e5cfd41e25a22d229ee404baf1a6ca9d29b73a633d3d2f808dc5f952e759d05a6badf558450462630b12266365ca2c2d5942c74b972034aab438e6328d76bb1d8bb04c55192765a694669293355398b610f965e9e06253f32068446b0a6a45162255b4a0beb0c400c3c68c250f697ce08042e266ce10b0500cccb2ad70f8d1c40b56af490b5b4df8fc7153864692a61761743a60a9c0041e0c30a47962868536293091c21506a78d11195f68c0ae80200882a0941e2eaa219d242b6ecca1b15505a68a8c07c12a3d1e8c5115a6480c3f64aa9674368b8a1fda1276fa0a73814c1515533990ac20670a0c3d5cc2fe54f97a7085ad51082b081027362a64647909028217daf0399302183b4f990a1a212c2e0d5858c80366088f2c5a5b354b9b2f2b4b634e6056c2a402f063910474e159625c09a102c4451727575be2c89111664d8f3c587a8874789f7907cf4ea2b5d6a3141c36338220088220a843b089aa822265e74d910e3d7640b9f101884515dd9d3db8ce9495db102e5d58b4a6b89c3e0852d5e5c7e609932bb32a4c90dc91f2e76a0c0b9da01a5b765a7bbe30615589b3f1589554321d9b64040897d8571baf3f51929ec4b8f34219365672f0e44cf91d36e5487903c788d163d2943be80079100564a8d4d9d314a8294a9295216b5ed8e324c78e1b735a00334a990365964409de0227cd941a30479620c166e2e40802256c8892ee0e12153480e04e8f4b130e3e2bc8191a237627c88aa93d31f4f96548a1bae9fac08405e60989933171747556f8edf9578785df23b091c38592b02aaca92b38a32ed264a8f3a4d1737e49802c193b3225c89c2c74f24099d1874f1419177ec0c234984f16059f29f7de7befbdc3aef68f4f92df76947efff612ca8d73e47495b6b2172b6368685912f38543979a5f46a779f0c1a5152c94c01802258dce3ef951e193ef141e512dd40002660e17307da88c8171c325c7459c8de562059c93520bd13a24b5e85a6badb5fe3f5ea248e624197cc644395285a40b9f1878c42005f5420b77b65ce13559e99ae448adc7bc5eeb313eafb5d61a87c3e51a09e880162b479660c9128312012237aca26cf1924405ac3d702ab04c1cb439741004391429410f7556aeb416b17e3f402b6b1ec4583eb0b14a5569e68ab59725634396ec79fa22444fd69a2c2ac8445193c28f0e938d95428ddb92bc3de70a62b17873ed3885b6c721aaac5f6a2996470abdeb350314769f775fc7e405b151bc4f32c4b31176b71b9131c64ed52aa9e1fcd5ada71ab515839a2f8cabaa4f87fc7acefa4b5a259f92b98352bbf56ca2f4d1ce345a6baef420057a447e13da31769d42d46b4ffa3193a08f399f24b811b0813ea343f600d7f76cb728ef0fd90cea5ff1af763c734046cb9bb58c7b4503b60a3c5142d6b767edd843d868750da82c4f0da874cb0406067677d6c91e3140c9a7bb6e79b5059eaeea2ad80b7d50754a61d17521211221602f8251cb848baefff50f36839deeba9055597506a8c282e3d3555d520c375a5d5a5ea2763b5dd555dd8db2173b8d184453d929649de655379eb51ae934f4049a93a557dd09a3cf3c049997e8093597f90c3dc10a849acbfc049b8fb2733c6b4e73106a4e73eb349a93a890f59927e952905e43852c2a3481d16b0ec2e835b7160541e6333445cd659ec2e6a327e992747596a15e10ba90f5241d790a59140508a4976109259a22454926e96c670a2b106c5e435358a5456a5eab790d45e1841046b8083b261dadb828442b4ecb122def02c2d4a888054f65d5cd9cf4717626e9c83349e70179da1de93334458a10e022ec23e022ec245ab109701176141f541d09b8087b091f541dcd3fa8ba19e9a9dd91156c666d94e54531455d9a9367cdc7319fd9c5b384fbd96ba7f5e122ec778602849ad3d01429684e436d0f1761afa11f549d12ad866b5e7534ec2170eddaaad391a7d5d5994571f58270635028bbad3a99468532ea013a429804ded0881f3f447e90420dc7e64cea38a5f66d33a9eb5fa1ec499fd1f474b0d29e1ea604c06334f7ea05568bee13e6d06a3919eb3eba8fce6326cce0d6197fce196734c5f86a9b4330c4453ae730c4f5ea7cd17cc12fd9e23c3acfcd79b2cdda4b7b692feda5bdb497f6d279f41ced15e66c71c55bbf505acf39e79c73ce39e78cc305e17219e68cb59ed23aaeb5ea5ac39b33730673ce39637b31c6586badf3e49c3dc563348355923f48ecd80360b832d58ba26507d6029ca8af212c0c0934441785f7dbc90b6296e40f15c618638c31c618638cabbe53d61f94ddef0918c618d78a317e397befbd6bf574efbd77ad9eeebdf7aeda4e597f4fba7e4ea8c07e4ec4b4aebbd6bdb5de5a6b9df10e70671c650785f73acc0990df53e2af3f274e20be7dfd3951fafdf5e784470d9b63b0a8097c9a4371cad4347515b29ef40e56661cee0bec2b0cec6b4cccde8b71ce1ae7acf5de6026f5de201886221886a228938d188b32d93892e46c24c9d98c46ab89206953b2fe7acd37e5af972597bff7eae6ae5fde9d7175f0ee8cebc47497d274a579d395e6cb8bcbf66c9575627bb6ca4eb9b2546376376695ec6eccceb04b26b85cae98bf5c6a1a1137777db4f7629cb3b617e39cb5de59ef0d82612882a128ca64e348ca46929ccd68b4da8c56ab95a5cd76bb05e170193268d0b0e14c3d25eae09aa987bfb99bbb19356fee6217c15fad7a010c656a66ad8a4186bfae992a061501506161bf266f7c59741e066831b1abc5c0ad331613d35f46cd274cef96e6036e9df1d57cca8b77209636486dc250a673a8ef18521b21197d408ada31d0f811a3c6980a24bad47c26549b49122c1d7fd26889aac1e58891d11659de4004939d064f320cd1f2e66c5985065ed2cb21b08f08d375b381882e8c43a61aa61bb2fc1e152e0af191d12fc952ce391bb93152a2a5646b8310e677e59c087d14e6ac84eb73f650899acf4ee69cc3d00829c9ce89acb4bcce0a6b492eedeb3debaf49d58f960c7b8c31be9b2634427ffe8ce2c7644a52b627b09aaa7a526e118740d2c0aa4a88140249838abb39231a091f6d7091aca63c3e926de0a6ac324bb5d1a137431b68d4c8835b2350fc28813326c707654b0466802985b92282842a89539c96a8542c7875390911b24800000040006316002020100a084442a128c91351fa0114000c739e48564c2894c642b12047411807410cc3300c60883100196490510e1aec00cb2ebf0b4c37be5abba1c40c81c717bec66256961067ffa54ed45a85c447962f41ebf5ec3a41662219e26989d57250e70e428dd66f6036109e90924888fb69e8cf267b4aed0451385ca133bf38aba0dd53149fe44b0dd1a5bf402b72ea037af37278bdbd0d519e072b8a7b00b8c21807a3792e7d57205fdfc0e0473e8654011d73661c010e73b2651f62f4e1bc53eb1f601e96d9a47eedb16506bf0e9fb982dbf601ffcbf8304b1366843a6fc0146c7c7182080fb18e2826492d947288c0fab2e90b754d41023a2642b0ffcbadd0ecaf3721d4add586e69c2faaed83efd41670b04890cac40e53ef9b6720156e6513af0f10c508550c23fcbe41f9a81403369dd199c32a4924430065b20d02221079313f7e5d53843b54c865f6a03c6b9c05721a2acc0c599c297ecd55d41e243731e5b724df175508f42b46bf1dbf3a94b03ca521bd507a42a6e1e5324bba4bdc0e50e21345e2d0a952990cadeb5f6d8c4a7507b22f63f59c5c0990341fbe31808d635ce693122a847536eff49b67660b929f1ec71c4dc778330ae6440e79ebf274a291cf1151fb3b697c3790438fd207ac10dbcce79bc3855e00960bdf0db31c4f25c9c39c75fd71e67f3a09ae637d96876cdac505517ac9510f7cd2af2bd0e0d51b7226c2eb1d8fefe46cb402ed313f8862c0a565c9f3789b604dc60e0a2a4dfcfb0e30f8446b21e8a09f8e04a834412b1dd844b6f287d3c3a12542b4c272444fc9e750a5280b02582d1ff640f81dd644429cd0de199e87721c5a3d35133d2dc011522a96eb6a4e3f3573725550595cac7ecf52ea10c4c472d490d1315f98a3e90b4da9ddd5a7c0102376bc8ab3529aa3bd71488c95df095becb9c20a4e6bb95dd6fee9dc3d1c7cc4e71f7d31cdaac428ad06a6967b26bb266224d65c0383a258b6c38a6a4464d05a35b504d22b3d3e5a923b0b3bedb8ec0e66287ac135720ecd19f36dfacd48d38b124a8383e4efe650ab3043001b811562e9930f84c8866af9ad0937e40e93d11c5bd9a40178fec3c7d6887cff5b5001832bcf37f2c7a905534bb0ecb0623c39b0e5dee94808536754c48b4d1343e3ddf8e8873baecfee8432989900d67d0d55570b4d91e7e37f1ecc82526e7fdea7a47755e69020201402043a0f9ef1743724ae92c7881876e7ef8f20e62593d4170545fcf5f2828bff6959ee240e741c7acc0104cd9e387bad69a28021a48886fb7fa6c73d555d379c35deb9e9217335acdee1d0190a913e39e56c4face8ab75d311e61998d07507f64c3feb0d739563844d777c98ab6a4749d51ef00057578155b4c6a65e855d1f267867a48f05d0d5af17ddb49c5d6e4ac1a8e6b26c003d8b9e1f7ce64b20a41e8610ba74e71a1c01396e7a6c20f5f8095bbf46b0854f01538a2e7f3d67674d85b4c4aba9a681bda1c6a1c5938f582d1da3788f03a68fcc4c3e685a3a11d34f7a49564a7a4e69c3625b647a4187af9131c5f6775c1d2b423b12c1919e2ff634535c9f5065ed68a3b2a30cbe0b85bb464ae25963c8c51109f60e0edea61ca41508f840328ecc8e38359eae15b3f980df54176e1c2ceb8e289661a0696c742d8808843827541cb36f4c57db4b91e4d290f7a3b59d9690912443bdcbf390aafa33b3e2591077af60a31f60c9e504c14072b8f98f4fcf4780f51e80d7d9ed3e4dbcd9036b511d94a0245bf73bb605f02cb07f3721bf35eddf918feb33fdb77ec37eb901b01fe0753d80770440e1e6b08d01da93986956d40d8debb9fc09c4dc57bd6cad8c34fd917eb16a2f44fadfd71b0aa3d5d69c395049a3eb73664fec681207e4484ace84120b97257117e89ec8fdb2c2d0d053c88e1101d8b95361749e75460fcd5f771def99aebe416b4339aceee4c53987037f3dd4de1986b6bf17131a1e4babc7afbb04cd291ffeabe40658612b56d6cc3bcab4ddf2f62d5f7dfc3ebf86c11ea4398520c085376bcfb14c228d5f3b583cd6d65be27df1282500bb249c56778b340aaa52055608c13f5f9e916e58146e2caaf6cdfafd4c37e21eaf8a1a5f0b1b27b4f5ebc29035c9b0a4db8cb8c588a2623bc421b2e961d78ccc67ae4d9b6a3e9983892e372e088fe178ccc8f840d456b3a9143db3d108c4a9cfe60a68faeb9344eb0615d06e2ba45113be468fbbba4a34f1ecc42224001dc3032b78a868bc0dbdc8ce0a27155f0d01e0d982d2f648f6329c5f72c7071a4300b5df4add83f9462f1bc9d70989e8ee3f99fdf5b1e9686213de7c18cc6c704991c6e0b810b0bf40b40a102bf320ee1208c2133f53f2e8dd374196bda04a2051e20919264f1ce7a1d0bd00f1000130645bef9e436614ee3e4499d59f10f65a519eeae672972f2c09ac13f21a3f46f6e57dc309f8d2a9a0b2f1bc391f60cfe68eef9fcfd29c2eecf3b7acb03775cecde44c5a34d06e86fa97f35611b4c4c6902cc19e6f1bb0dfef1b1c1dfcc6040ba5aa1fa8f2bfe48ce60a48a721b090494ec3854c96fa7b4d451ee180c989117ce21b16146b9c1b821049ca7b1192e1f3bd29c98de00bd9ba28e84757b19fd728879be5c0fdcc6ae8da2418ef6242b31550a94125fc99875798be3c5e205295057030b0fee3864ece79ddb695816201c94ff92f13104c2bcd33048156d41035091f3cb4facf9579a924108944fa797d50b17df49d515e1c39f109bd106cf0f9d38ecabb8eaa057a2304efd52fd7b0c3ab642b13dfaffd82036d145a3dc339edd02f97cb2908b55ed16b0257d2b1260afe5484d80ba5f999a65e685b2044d184c4281650759e17d4aeeaeee00addf188f655c0b74dfa99a6d4fd66a4334afd214a13979575e432ea28f8d7298c5522b260aa47ebfa6410617d4b8dc78c2040aeeb34b465ea299f7ac21de79c70db099df55b0c94001f20dc1d50a72f9768fda5dde121546af0b87110fe346bc56520e70b3fe88fb2e0a9b41bdb654b2fbc6e43e36b385d07b825afdd686543ef75e7c36297bd5a60ace0d885ba641e39956e77636514c5580ef566bbcbf24b375eb9656abbfd76d2e35f991287da7498df16486c6bf8c79d327e1fc6ca006bdf16278f1245511cbd01cf0e829394be97299d9d52bc8a8405ebfa524a29f8337e8dc71e97fc5f6e064f0902176f44883907052fe84e7f96a6842f32b62958c62c773e6e598d191f15c13a1c0c2714bc7481372cdfd1e6f08fa223d5dd5eddde9fc80897a29e605987c3325f631ddfe992cefff47c0bfeafd4bdf3be7fe30175fedf23295edd520472c1e59ddccf986df6082d14cb33d1fa49b3d7180bd49ef046e559c70daa6e5f0619c3bab522c62e441f15d93e89be6b2f42e25239e2414a346c55278dd554088bd33e1a11ce4687d3a4134303765b9537e5377a7110255df03c1e5f6f54a0049208f1398c35828ee3e85d454b3fbec37f60bf4df3d49d8f2f28cdbc597fcf578a0c1f7c767753059008eee75d65da9c70a1452fb628c05d2398531a15025333724bfefe8c263237e873db326bfa2f819bf45d5fdc0f0177637837e1f185ba9aed81202cb859cbf14077fde0174c4cea78fd583279da7250f5c78f2f6d7ed9c11a7c932ab707db462c58e34ac0a08fa5350ac6e41d88091a8c77e70f7057a1bc58758b0189817fe89fa446d89e04f09b9c2565f55aca59d57fcc899540fb957a2c4ae469383ad8e15806e91fa6e02e76d138a5a2787d545acc998db67370229f9e958a93819f34b6ad7ada984fd06d3fe784093742fa6aebb7d55e90870a27009c5e1adc2d3d6ddd07fa543baf3e349e68ffecfaa80b62e7e11b925e61ec50cc6c17ffc2aed1ee82b547bcae45cdad940d951a5b2e35d9d2608fef7b5f1ecb9f82b54239acd5af0cb3c528c822dc2a5598257f031ff4b19c4308a1cea4508a0791f1ce0babe05cfbe95357bf736fe5b165c0abad623377f93f3cf8caaf24563e728e93ee13368e7e767c042fb3a28475d7f21be229c6b86f750a9fff417982eefc625e43c530cc6ea59a5e9a6d0e7a8979772bbf4b21efe7db2eb0034668dfbef7da5e05216f91536169200c120d29c64b18fc658af13156fcefa2fb2f262f566c90958dd45c650f38795e29110742f4f8a887e8d810cf58aea583bc1d6e3b801ec636a881b464ac8732a1a131f156e83a598cbc27a4e81d15819f413ec273c7efe24316c67b266dd1376d8d39005bd931b384a289b6ae645a08ea06a521bdf416d8abc39e1cc446a081ec671803cd96ba14a1f6d65ff48626e1a78ff97b70bd7dc9931350344ad480fece772500c0c50d80760cc4092a3cae60537fc1ecf2b2c0fb93c24077528d5a9d78646de21972a2c4ea57768012fcd31862e0a0276a774faf5f973624354e49025eaede002030c901147044dfb96860b7b23855018a20d7dea1915e011491c817894ee0dd97d1b9279d34e99a1a9a8d236b6c67d81be74cf497fc7c4a3a5e6e4f2954b76a9044fefd773e5507a9513910a8c3b300f84e649c6652350b4ab8b520874d812b31213e373aaf29e0cdf2005efc2ab7442a0c0546e9cf215a3d762ae5ca9022d86986c7081b3d553a911246bccc4cabf276873d4bdf65b4487eccb0b1c2275e755fa48e73587c54e433982171e17d95e24c86ab7d677925bbc8c18f6cdf118a5081e27c17509dbf6d854e50747d722478902ed930933ff7bb0c47dc93a465722b3abc175adbf0d73122f0738ea09fb637dbdc532271307e9764ee65a5e16532f03735997961ae6990eaa84abe9d639a7959d83c5aa3f2882dc622ebbaa5808dff1f670e28a61a865e80716a5e9d313d0daa31ed8eed8e2596dc34f4b0111e3b1e9646e135c2b0570909c8bf48e534d681d4d645204e595a07d9784fd365f89cd52f08815b645ff85562796efb2a9c896fe45b445648c1ab31c1e19a568b16ae73a616e53efaabfa4564c75666c04abeb8b1ac9a1c581196730828cb6bd5eb1c592a5935ab5e38c8284a47ac92b8d301899ab56a07a7589a9b53a4b868de2053546b95ee53ac66649f9b097e724e822773b509272492cc544e862269b376417c0112ff6549038d4c79eb5b302cc16fea623716e5bf3003714fad7523c6bd9cd17422fb667419cd001da56430d2c020153d39d0bac05af3924f4099b98f0704b6a84ddd874f1764396a99f00f273ab3a46aafe91250bfabbe29749c3fbae65f95eeb19bb86513a72611cd696fea899da2d6a0847caa7cde652f024ada32d2fbd48e2b8f39e0a7187300069db6569ea2b0a0eceaff4ac09884a6a8200d5c6c4db143344c4dc792517e698f66c2adbb2270c4a9d0836019c41d8160e288494759a45a314186fe32fefc54243df655e0db8ec26c23a826ad38a9d68bd130a100f24f45c5548de04147a674546c132c2d4ea47e30c75704c56d3bc5725e40c10a652e53677012cc45d9251762b841773c04e868a996a4c4b582290f680e4ac9d1f13af033eb8a15e11d61d66b7dc980901bfb8d8697f0d228a54f0d4a6a1b30c5c0ac2fe6fc500d888aa205e63bbbdc2e30438d28e98c2a620c9cef626fe5b43cbf20c4ea40687ccc6ecd3bde28ca44ee627e1f895a34b66078729d47ba3274929f6b7b6497d24ccf544054333089d3b12c5da42bbbb26725f0f8e8771625db5e7f723529842c182d57b395ef1a6fec201ab80c5f4df608086907cd92f2943ae7ddb0d91f4b353cea9be72e8d080cacefef50ccc30170a0f065cfc7a5e0aae2473e5f9e924daeb92b085af2986a0ae5ca79f2ab3cbe40352e353f6c5567d179eb241aa4e1ee664a0a8b4c108512f82520d62e8f63fc43b613962fe32b67c2a202296dccf3ae3456e1af043afd1c3c84a2a4ede7b6a3da244e4d1297277928ab98defd8182d80705887c2bcbd941e45d9a365a9dfcb158487fc9f6ce6dbcd0b49a41809f54c9390e4393a02efd71705075cb16afd2f8869a111fcd9aff7c30641544880fcce09892a259e38f072042bdf432d1ea701b2960d594baeac7d1f6fb2ab2218e29aa6b100421b5faa5107df8fbbfa3d3c9f746d6fb3de5034a14758c154d143e4ce5b3d23591d70eddf12889e89400432ec3ed118803897310500b0d7f532b08f7b3fdf14ebc0ec39892716a63353118af72dc656578b0b03112cc08ef32ab755a46754232a0659a35611245b7d601f4b6f25ac74e30b25a580167f5eb2fca390df0257401da05246643a64de5375d6d038137ffa415135626602e7e7412237ca307a28d226e9c2c886b3e7cf7ed7b60c9abf13dfee4884a3db46f0fcf0aa449c9b83959e865ecd617d1d805f47dfe17b99bf1c665a7f145c8569ab535913364722271c3a3261ece8501dae471bd2c7f303c0b380eb131ac1c167c120c451880560e833e0986220c402b87419f04431106a095c3a04f82a10803b0ccd85380435107ac83878320e699a95d6cbe42785a3a003d1c787811be7904397b0624bc08df3c821cb3bf324e009c4e22d9afcaa07a3e16bb370f8ae342cf8fc59752681ef01c8b4ff8926f6037a824a356b7e5b7da8261ff50ffdbb01de51127b70ce5e66724f06bbb02ad64df314cabc122b74c8fd33f973e1360a163a3f07acafa5248849eb3b6a021cb48905bc316b3c8525eb327a95b6c8ee32c58d21ca4564f42bb362a9c8fd96a3b947c254929b9326d34b873a25fae489de1edf27c814f8adde1f2e2455a7e94a57725be64e7a4419d762d7e47f2c6514aed9ba08dee658c451560a5cf27204739d5c12c66f4ee470a34d5f9c1447879520ed9a0e7bed26a553f2d377c9557b951a96fafa262d72e7d41615f9aee544ca4fb919c9bcee0d6976bc70d234109fbb676aacbadd9f70faa64bd6fae4de4f935b879df962e29f20a7ca557335c34cafd63a1117b6a61854454b642fa6a0ba16afd98b0105dd0d7cf5569592d1917dfa564592d3297cfa5b4585b3297efa274592f9916dfa5b4ac2f3296efa5b4582d9996efa264592d3073c9f7b1adc5105c603959545e5d64ee238b7e647d8421c21275855648df3ad6929c57efc03bcb06c50a1d94ffb2e2127ea2ac08f00a6828e0bcaa3b34207f33d0a8fc98d0a47f4f05624bd53f033ad9dfa4888baaf619a008f85e0ab1dcca1f138a988f389675d4954b7b1cf99c2573a72f51a6c6389d1c56fb2606110b5057456b15c87f561096e54e3fd2cb5321314327c7f0135e3e14a1b11ca98b33fb9351ce0e61888ad42d87f8c9f2e2c49c58147258fd2d2b482baafa18a0c9ff1c8a5c6785ef844ae69738c4c65afd9950489f845657e5cb0ae95881f8b1b271061fb294187f3a71aec06d5348da561076a34720f23bbc59955f569b0e28e27f5971071f519a8d2b75b26ef56f5eb2bcb3d1b4411981c48f39f43202a447d4c161856ed9b17a8b8dc60ed56a9a474fcb82c30adf9243d88a91acfab54273f3fc1d391beef423bd14890ff23bf98e9f825738dc23829f281dd708fdbf12221d8ec31433e542642a701ba98eee312716eaca73eec75f2c60869cac7da2a20fe96c34677d42bf4635330f6fe93cc045efa4cf2e5d6307c7dbcc3ca8e9f016321dd0ed15e8014d70bd79f3b6d35d73499886d7e32983768c7d1fcb24e4647cf3c6bd8275afdd50b7ff388fb7992e75dc315fc4810cb77b049e9bb0ac0b39f37347901f4cc1396203c37d9f57becb5e65a6720425b186a3441b20b8fb0a1fc354f47e22dd1dd292167dffdad7b221201cc2f42421a800c0c16e93ad67fe7b975ea5b7fa630781a6027e16b8a4f9b8ea14cb9d42903406ac633f3ac57c5f5632f645bc71df8837486f6d218792f8e11bbe25bcab315c7081133885de0aef1badf595976a8e04021b58b29957780fe38207eca8cdf228171f0716e063d41e1c38dd6f8ad7441c1b133033478d2090607b5148b2b1e8f900cb4500fd73229c2f6ff5af122a361c986be1fbb812f3bc37be290f4df9aba9d8e00800bc0de2e924844a0062a8e5a661efa4a97c39bdfb2e79df201b0207a91d119b64b7e25cc00c603b253511494416bf27c5e616cc2d43c046e4af9132b616c1c3a3049f096d0fcb5cd56d792f20a5d4db0ed3c0b40af52f5752816b5994233b9a4c6868055a6bf013e5c5e5f1a076b1effb43add14b841b8dd2f7c7b50c2c2faad6a911b62c30e5fa3a6ba2e8e67e0be45d91088167f918505d07f2c7dc7bde5cfb129631fc8b1474e91bacc431362c6742c643917237568b6337a9337831bc96ebd39a717365945163434562c5d49ad894aa1dca65f2135e772714d42009aa58655d03adb7e686854e065f7d9da4914f511076e8f4b08568a86fe083822d6014aff15fa48a9620e2ae8e2c3ca68dde29e182ab339b021fed62fdcdee0ab396ed620b4d015605563ffbc274114eea168e659a5adf4eceb6b541de112522eb5dd301a82ca1f4476984d727e917756a7d33d31c8b6656f4f227bb3ca5090866de243ae5ffea04c4c2611391feb03a59f36e800eb903b841a7d14c5c690651241e4915e8633fcb3e1d80eda4d27bbc866538103e395e3aa030224ef49bad2fe24946f17958b370282e3578204677c48aa07870f9a5ed5f86a14341813b105283c9d2d51dda9f323cd7aabf05f2f36703f1dfe641ac8b9a7b99092283770f900688ded54c1c4e7c52ce47d8cda76e4337aef41a3ef6293ff918aa89dc5b983411b01b749329a61f243f73d0ba63867505d1618773f1706345df61641d77dadf14f4dad223f2680b4546502204876e6cf13ebf40b855e402bab73bf5861a7f8d38543fe4938b8232ea2790cefde77b62c2947d7bc5dae460aad80169dda7b272a61859c5d3cbbeda45605f75b76a3bdfca0b721ba6d195f104186d3d49c51c32c4caf1ca9ca03653a6638eb58cae3a08887d46d03e37462cdb6afc092c217aa0544adafcd5da8c120ffe097434fe148eb0988684a6f2e3c026a7bca09d4db41d78162c507a886c4d1fc675c83fd20ae26d2c0ea8faca968de869967bb5cc16576949d99862b06ba852b99be3a10592a16fdb055f931765552da5e3269be74347bbd8aed139639d79dffc71334997cab2f3457f4b4c281f9eb960d1c68ec915ec64e6ffff6b8de237ba1942f63c74ee785c09c7ea4c8528b385364c5b46e1df4141476b78763cebf544bf79e82bc70e4c567f37a74b21395a9336b41bad41bd129f1636a1b1ec49b0cb0954875392416eef43b537dd89c285c7ec3f7328063f676681c864b67a17c2152e350f9b209b066137358d2da78581a68339a7ba3c57f26c2136d8e4b85c19c55e2de0cc21466c3fb40c041fbf791a5f881a02923608d93d0fbf7fcc16c0f76e4c993f9805fdfb64e2de1c9f985a07863c2903a6b2ed8932444eee12dab8e7a1e127e411551639fdc804f51afc723d559d9cef2f8fed3ff0bb774b62fad6cb81490f46371ae53c33f1820bac90d9511a4b302d8659b4f2f41dd8140e60c34ba4b72eeb65e27f87bdfcf0ac494d9573c7a6a9578fbd2f7c4c7262289223f8d3b19b2853272540e44b14f79a9c50a0d29a197314b346427da0b71ea6ea9cda666c1f256b6ed25d36a40a4ad528633843ed458d4352ea280e972e9dc0fd73af7c4fb85aa05a65c16f45afa0b046a74bb398af7bb568b7e92dc325d62b58c297286c079c5f4d5ea094cab410599ab228ae5bd42cb9b0550c823849fa150d6123e39a9109c1bfe1d5294ccd4d27f0f71e05bb20bb7944303b9e4865173b0276cb7db5d2cd2a4440de531e10b08b91c22875854ca192096c45b73da0a22e0102bbfc971a1d4a16b9567a680d54115cdf68e2e245d928e96f9b292af0fd69a1b63640248b1415a8667cc63d9563d133a04bf842cfbc75205ad569daaa3229c4eea79096bec8489fff611ade6ce7bfec4aafcb06897aaf2f52d9c6a188f628a595c4711c04af6f576ee770e9a7668dd48c5388e78e9d156ed4aa60216ce7273f6c019ad7c7ed192340adcc966b9ac11a4e28d9eb66030372512b97207c5fd1d8c97f59367064f1c7d61c46594efa2ba8559256e4d9b219fcc404cf2e251debde7c0530e16f530fe59123b857f7871b730b53da85541e0e0466558c6dbad40d1b5a59c686ce60785f3ec073488c07930041dab9de0190064d7a3687d75fcf8a40cea7dd98bc1f58120aeb75f8f4fe5b481286974ec6bc219d80844d4ea0e78f3736c9a16eb010e07c889da56e5e3e06864c46431d1742afac1b8cdf5a0c2ad465e04cc33e3530d223ccb66ad5ce97075f5130e8944ad9a6b662e58e44e93752c1923c444eebd6e1eb90c49e916eacd22e17b2249cbd2a0de2a18ba3fd722a5e84ab80f7d7f485650b321d6b7c1da02ca66324c03f77bdde9a5949d7bf3f294a6830601becfc086e8d2a1fe38e401580c86bba602bef865d7652fe713645b7cf385a9e0b8211e60e432e12b9160304c251f2f095db086fd5ed461e1a9e14780d80921c14bc734ae5291a30d04193cfa9ba8d4b9c39871478ef4ab18394e7012bc9abcb44a5f730ccdd74fc1d2729e8ca8ae8803367e2548561a81e4142d7004e5a8bf373ae31efdb3d1e7a4ed81804bb950c5db321815565a8757ba5512700a1cfd976bf1e72c1c6a47a80eb5fbfd2075283ea7d27e6760c060350a6683ac942be25de3f60370e5a416265193c2e4f17f7246be5f7295790ef2c0a5367f1c9a007053c56e2b8923c8fdbdadedf101fc29e4feb1c715bc1a0efdf53e775d02233ff0f3e1d54e97ecfff7b8f14756c78992f6a60368af7ea860eebd699abcccba994dec6759d6b58b6d9371cb4569bd0f5353f88896b1834e99626172645ba8924f6403d947701fff6c60fa92982ae60386572dfbb23cdaa0f928522048833745289fed72a7c7dd3e787dd8672d8240ea26173ae38ae663499bb5ab44709cade8e148bf76f1948cf0cb4c219b2f90fd0d54dbefdc87ed33f5628f541e3d090d8fb5fb29b6870088d81e82d9554a90ff23a8d0ae2dc6325a5bb2482e1a26870e7e4c4127495d5175abcd26b9f2ac936a93bfd6f054832b0b793add4ca31269a2644e0921cd38d490c98acbbe079d723ad5434dc4b737b6014a71b09f2ad5cd6d6c6cf5f79298d3686dd577ab212301efd3ac92637027a5912993a1e4508c3807fd69a6132a7ef21c29b9f8541f6c1390ad1be0301bb6a05f510888a99d9f586d0554dbe8779a92be1f6d695d991177ef3aecfe9ba20ba2a961ecaba3a221dff228186a5cbcf0bc822f50c26a8f17fd6f8aeed5e9e71edbcb59e526f307146ff29045a998b42d3d191d6ec468b6a9d15f79f1258236856f115e4d23a0aab128224d2106c0d6508f7a2b4b48ec5d84e65507994d996d6410385844a58c85ea5786b8cb12ee9c64b17c706a3af3896c008e497d6812253380440f20a8eff448ce06818ca72abb1a628bc653b12862d71d818f209c53ab44bcb3a75a558b79776fc14420a1130eb6f273ad4d7f5a70f5d8150f17909db344f40b19b566eb1abe4d5949cff00daeac422d05a330a5b4be99a95a31e6be176f41a2b8d3a0d0091e78fd56a040ac90958e1e0721412206aab6399c69ee9aabb4e8e7e3cf60e62daea721e76134a758b0177031fb4d56d91efad5da8ed3e0210543bcca4c10fdaeaa0bc2a78797a28c56234d773881b1c86b686e30d80b63ac380f4255517dd3b9640f3664204b8937b31dc015c0a6d7503b2811e96dc860b7cc3b302708ff2e7c2458399e17d81f81fc774a3ba65f480eaea3e3e7f90acbca53aed48df6731d684712487196381a6a6951759cf3875d83fb85144db9affc96be55726750f0e990f0eeeba4016b9a246d4617a2ccd346f364a6b66a382a84b2790ca010900766ad6fdffbe98021b76e9678f2caf75143e7e4fd5a51d2183ed95eb44b816a428d3821b6a4be7052d5167c91d8ce11215b242008aee266a2822e0d41ae5b483f51269c214b25490d3cb7ead19faa5b9d66d7e4cec1682e7c4e6c71fb60a4f79044ab4e9ffdcd9db492c6f83d0d44b688668cd036de4cdb03715ca7e0024cf249348035bb3da9ff08e5dbbf66e075857575e4d993303c6c41be5c89d51b1530bc462330854edad90a12f2ca241ff547da5a36a2b47ad59396a0d5686d98673df7cec32c1e9251e5d06e6f91537a2e2fec8b06e9bdaad9deed790b8f82aa9d320877b476d06041604158b7f6849d96c0845dc611a7c656f2a02fd6ff18a311f751c2f88a29f1c10da268cb724252a4253471812cdf59937ba992e0c525383a4efbe7ec5ccaef1d08b48fc26f4ac19953b335415abed8d9c37e160c64a1ee4183ba89e455cd9287d63a8e735068d920d1b04a35ecb17abdc28bd6427caa0f268ea1b6cb2eb92888b21b5d66d5ee5fc6738d64e8ff8377981470f9db8ec48b7728d789ee1a36ac56d2bff7ceb9bf837d2593d43a37a62f3bfb49ec2d08ba600f3fd4420b2de57b32b188bc7dc3e382335b4d29ca6f710e361d4d10a6f8c862c2b3fb795288ae70b7bb09eb1edb83ba7b681a8fda90052c26c342c45081726141baa2433636a98e75b239e256ac88b1ab6510d2aadbf6ae888b85ced402b3cb2d170429ca1002f4ab3107c050cb462bab70eeb52c2f26ed7fc839692728254a81b3f30b1a6e543574f1993cbf1e10e9e88b9fda7faafc456968e0650bff5a5ced4f9b6adc81ad0bde6c6dbf6225e4e23fe49e1e2d66ae22a81110ed5eb7e91d6cfca6b8ba976c7945859e82a343e9e74c825de9f73ba318fd2329c963e0aa2795324265052d95c448c73112007b3344324fcfef60ad5e47ca30c254c02c7753aeaff2c05df376dd046992694f0f5acf5b57a9b9ba215828c65d4df5a043450389e6ba1aa531b67330410ecd60a4627084b1d3af1cfcea34edab29aab22cb2ba31595b9756b7cec9595b8b36d9c5fc4e6cb90d70dc12e32786831b74c1f98c44fafe8f21a749c5cdcad45cf34d0d73c4626f4059116f1ef43e0d6a873f4c65d562afddba6f8a520f175c2c7534a507d2ca77d3c7491983f76f1b760d61421fb1b8473119b5f2fa79fc7660772696b73a10c8c06bc8ef96009b6a9fb74bd88ff1efe7366423bb1412185855342d54853588024b9e9c6165e1f552a121c97be5e8b6b29e756fb3862bce4c948ec26a5c17a46c41ed326b8c69499311579b5d9639990f8bda677dc90c77eb3f8cdc9b3cb5423477b9b2d97b591b4575b1c6d45468b7db93672683b089a558818c3906eefc2eb892149e617136cc2603e961d098e1d224b757e77997c98bd11ecf47ab9d7efddc1cbf0c372bccb6326fca59d0d9f66a121496353cc23b854438c49e2d9dd1ad7be0b2477f9acef30bb21413f817bcbbe646773657bafe6e7c167b2d29750475c3a4702565d29602b3f13ebaa6253ac02a1d1d5c09b1987f8bc2b5121151a73f9e9719e92bf386c011c5be75278b6d849128075214082490503ef34623157492a1c1cc42cdd61d040ff09bb6f00b540111d1bd3bfb2b94fc3e39bcb1e9f5c56a51aa6da32a19ace83a3c92eee66e6931ffe3b129d89e2c9972aa39eeacabe8f19c2992533f1066c40a29c1022afa5d7b2ada8eb6415a5432a9bdb15aac56e9c8973358473c866bfc2bf0416f640d081200e6c29b3d89eb46314124c855a8f339040aa8a9fc0367f13596fff80e4850853188e07282e7e55361e28d1e0fa683cb8b12e31974183be89eb065dabc4d42cf99dd0b0c3098fa590895659c8886aa224285f3b58be94830c63c2a31244ee57982278446f4bd8c06578c9da7d7c585cbfbb01f6d55c15e7abd5ff5c244c960e569ba691bd047fb8fa55f3afa11c5f28818550da93716f1d4cbe722240cd42855029072a0ba63b8709f13c808aa61acad1414b52c39ff1fac40cea328bc76336dda3c62eb056c5b1f51f12e9c23fd8c0314f16f900d22b4f8521b7872ca022f5b34ef86a87fd7842c1d84d563cfccc5c0c30aa1bdbcbe4e4bbc85a38ea7f537f592eca5e90e66553d399ac7b7404e61f38cf8cd941a1684b2d427f0d42f9cbe8ec643211d2db4e644f845da8853d75427f1208c665c8c3f6e8a400206ddbc622b587517724f469ec4bf2402e5edaf1374f9835a445e25487955d3543ab911ed1b8b08b29e3de011430ba8b16e33aa1370ca48108dcd8be3446ce2c76fa8251918d5840b6f54a0818640ca6c0cb4f8f053ca3e830a977f2bec9f46324c0a29419b8b2556b96a8c024a01b3675441d54bc40f205d3b5f110a5a67c77f2a8ea29823e9d991ead542fa1f940fc5c0471d21bd3a41e69c101c598b8f66dd23795304db904bfe9f9bafa1355a23a80904e104ee77021d1964f5e24add201003e7b61c93b01aed22f83986023142c4bfbcda90486e0a210725f62898e9ecb8699faae311275420a3b9c16c5717e61ae6a9bff4fa59406ed90976cb64b31ffbccb134b731cb02b28e586bb6aad29add374a5294490e309ab9eb2865e053f5334a384aefdeddcf68391103cc8113a436d24d0725e0a52225b1cadc8d9a273801556b3c955a9d16df182e2b03e179c773b52fe8af28e9952cbb707dde0e305569515aee5c58d33ce096798ddb7bb0071e509316377287761c2d5db2b8b9e1ee16398eef932b8673268fc5f6ec460aa278402f79b4bb96c87f3701bca8f4a13b79fe0563aff691de413caacdb71eeb24dac3f8465c012d6092a86f0ee577effb2ccb76a48f83696dc253144e23b0effc7a02d4ab0c7b76fac9312f3364db375b733867d47249b7f70528679c660f3925e4057b9145964af96a56f50c972f1e73a4bcc3d181466ece1e8947671f1dd856e4a71e72834f1dc47234ba058512587d970f09284b3d932433b51b08afdd3285418bfebf04fc84ddf70f1159626f5d31757f58141cd34f4df6fb1917a861fba3cf943f96c10c587b31f2ee7e8c4b3e18094aaae1d2f104623eeda9f2b3231a8816293c5af0bbdb5222c2eda29aa5cde982665ddb7d4ceb7f8c3c649948ff25a271d4a1dc52df0b3ef753a444006d25eb21a7ccb1393d9834b286154a01b18ea2ab869dd7ae0ce4537799913b3418990a1e28037e422d844088b8b9a3b4021394baa2214da8bf30e0914996071ad25d0c3b8d8c1cfca5a012fbbdc2341f20d909d4e77ea407a9b997fff96a2256cb99c464cd3c90b9d25887acc3c579c63fb80a6eb40a0dd68019999247176b662fa54bf05cdf626fb438639b9ada96bfed873c3bfac55fee82a36e73aae27719279ba176090cc021de6bfc0e19acd1f9adeda4c33051b828fd3e41da347a4ed47ab2a4ef5b87b4fe1ba8e88ce6213e2eb72b367a98f30971ade4172dab8a1b98f2e17b0ba9e41f0e4aed198a91a956769fa0b6ead79a80a7805458d73d56b755daf7bc48cc38909ec98b0651a328be37c40a98f431393632a110ca70bff78d972f919339fb48e5a4869209adf5eda891901c56cd8f6d98b0ae745fed23a4d93a0fab3563eb5bb9da0a863434949a66382a56b6b9089938b62df738f0858015b070c55570ff57bc30c76f3843b4d118a1ec380e24b1136780059d8225337e3503f396eed1d66802c7a80dddbea735c40595d9e364805bf97f3478e1ea74b9743d0174ecf1f094eb2d36527fb3ce50e330475907659f2d1b5af087512289b7d44e7c60b09b2156ba6a7416d460a44970a9d989ae097c1ccf482e39dd484ceb66c5ba37d232d5bc88fb2b1ce159970af183fa938ac93931ae98dc04502f6625d86099bc9117854cfcf67014615e6103fc451fe5eea899095556408ac7417db7c34aef0ecfb6d438298efbd9c5c0a8d433ca061ac1e4cf57cf6d568b7381cc8d02cc3c4836aa5548e18b8c6bcfb8cc678926b13f5880dda056f47132bb71afde2ba817436fcaacd31b17e6cf2babefa5dcbf5f210d9a0403a516bbf333fa9437d1f52b769aea7dea53fedb0cfc4de8e67d27b6559c2e73b4b550d78ce2f5a580d9520779b9255fba16946d2be04be897c5333ee0a5e1641ca9e99c10f8b6d1ffaee431814e4d1aca383b4113414aa955aaea8cdfe47389d8e0eed2ced934cc37ebc49f70226ece570d060123cceba76d22100f0189d25876826fd464f4b65f99850749483f1333c710705b76aa7208de070c1a1e4540325bc288d27efa3a0a5e09f87b671f727b88d24bc459935ea295c6453729c5854093f15b93f537a04571ad67888d7815c49b59784bf2029a8e998f5a9aad96ebc66db4104687c4f0f3f859396883ecca4fa14607b1393b13d65ed1d89c6fa97a94f7dc3cdaf160971219e655949993e090ba63b97287000874dac3aa74f33bda1eb583a7c20848c71b1fbca63217deb4209a1d52dedeb7233690cb1424ad10dc0e5879fada96a000cfee90082cdd5f901c7e7175aaa1aa8cf03826ade0415c734cbcfb3aa520cfa92dfa6a1c1c378335095e7d7e4262c33506a03810c279dbb9eb391e1c819e649ae96de1213d3f46c762ed53386ea74696ea6a412dd257122899d0e9b04dd15edc29fa943bd54d0714f68a2e789b564c904bd9f892b0e2b1384c887688c10266effbb8bc8e80c22e444e48fa9e0c3fd914776b6b7dca4acdbbe91142862a8bbfbe123ae536e8c30d4fa42484c4e0ac560a89bbc89aced1796af1b57bb01a2376320ebe48a61b84d7dd7902a4c96ab6d5e047888524ca25ce5b7a7cb6ac4fb8a2d227630de9b6d65c50a1dd9faa69fd00ba08c5ebc9140667e6ac3cc971128597e78041ac2f0420791c6698c2bb4543686c89884e580a9736352a53fe531d03ac98a57341ad66b4c078ecaf8de658a3a4c82409a75512273436cb31c518b962c298ea5026048aa4c77204ff779461ba57705590cf63c11d395196f7cbb9708987cb1ea5c11a046fdb8ca0605eb09646ef7641e5d8032cec9e66020f46f19c76e9e6a91962fdbd018a922c083dd629078e8967ce7a06333f98a49a6ba2c218b666b1886dd04ca4085acff989c3ce968126e4b562131a6b47a4e2cc91b6bddb6bdc218c801c8b3e7ac66a29b526fd49b8802b98170f8b1ec58d4a266a1f86fe2ac975970a83cd6308aca1a513131022594aa68d9633e10ecca19b59aa33d5f23b1b79f5352f8c9910a12995cb0a2fb2e2af817f20b9493a7c4de262000404368f979df1a62a8b42363eb16bd86827032ebaec748cbe73c690eae78cb5521aa46f8a99e992a433a4f72bda591d564c3294feaedb0e7f5915dfbb326a8495c67a254529ba16484a183d8615e25442cf3915d73a9c06d66d684c4cd6338231373afb8118844faa81c8ec8f01903dc162635773d6d61b5c8f9ce0500b989e699d75b160e5dc89bc716ca3895d867f39adc543bdf82263970f40a32634eb3327d8bd63aba21f6984effa4e46093759f63aa82db04b2f4cb1a216a970227620f1b954715f60f7f1b9eb7bacae0fe17144b858c3772ef4dbf48c419db9a49084870d5cd71ad758e9539979c232632c5e9c64da76af66c17fa7f4596494a0899c49b379ddfec460ead01ca4174f4e0392c1518f56b8d0af8b9d22752c36718ce6b063fc351971938514b7de0258819b4d31777e1744fee5aa70cbf0a31723bd88fda28963b2040e41d14d744c772832fe7dee1523296cd323bcd84071f385715207c38451eda2397ce11211788c342b9129a93434d088670d26252ce15544cc543f94be2c884c8532d12581d09d46ceba3513d98d84b1d6f3bcc47bbc1b92b34f9f83726f2d0c4cfab41cfe97feced33912713e9f00014fb22cca4453f4b81a779444f43428b3e8c2b8a071df96398c9076a1ee828733c7627390e0ce558eb352efc9c4009dd9b97f8dbbce285f859a37e5176f0bc9530569d6c3b5c02e6404644192dd2c6c0b13b521bfdb1b67dc171bc6004e278a2b578b3edeb9085d0223d13febffd90f03a3462efae350a919f9328bb8caaf7a5218e789440a409ae74ca6deddfbad54e8fc984406d3a50cbf1854f3663006097951fb3aa42ba933719277461d8b2d6cabff389d2895f5064909120a48923be2c683a1c4f68a03f0c09bc2d8414a658810a2a04ebd77ab288de4c30a95490d0ac14fe5b895289896490558f63bb67c5216c5173e4a6e40ebb46ee30c74b6d4843156bccf26c8eefdbc947a2768e5d36583ff0d74e950766e922fd38e43f5a2933ad69f6fe762e75f6c9d5a727b4002d811f9ba63cfc8beb356e86e95c71d03799ed981684b47f8b7d310b7580dfb4f8e204e797ed967f2b978c7e2dd43eff3d0786a065d928d60668cacf90eef34eee9f09d4fb801c775d6860744eb51d094905d8c7911adfe1faf2c867fe4627d77fcb9914372493a8dd003261f46b2696473134c95c371dfb5bc39909bf9fc390d0926240f97d4b1a69508e58763d6627c50b7f135389519b744bf9f04decbe7e7ece99a4f4c74509164d31c7a52a7c0d1b88f1c43da4554b8039c441e9c675cf034023555f0be2529cbd5c248b5c8c9f2bfe3f016d50b9355f41b0c942d7174328f242ffe7f933385353989d402cdaf0632ea7ea703b44ac05576fc03130ba251ec55af084f5c078dee0c60ff0564b820138a75564d26b96cee84358295560a0877d3802fd06521ea252904433f201767caea11d05677c2d4192ab5bdb6daa6c0df6f4e7c6cae67155284002a3c83844ca6a26b52acb7e4be1a464e42fdf15c9e81dff6681c3e5b824bf34b3e4cfce2ae58b22a4b07d85ee104d9e9eca5b9ff326d844937e396d94bb25080801d92ce8c64da8657e4881c630b95fff5fc786cc3caa9ed6529598e0fb9045049f3db5ad0eba7a157a67a9399158ebc0176ac1b93da76c61628f7954ed92d5a371b9a0104752ba50d4fcf2ff575da5e51bd8b01c808a37c13cc38682e7c37193dae9162df1a3440cec77fb02374c4ef83893db3d79009609fa70859a0f2f8c60a1d5432af00a0533185542bedc65a93a173988ed74f4558eb35d165c4baf3d98b3cc1b73c9582cb8168574c3352a3e6e4d6594f8ab17fe43e9eb55ce1d5ab9e208ac574bfdf2801e45b7a888efb056fa4683d11bae189ce3f90c703b7b4f170b0a2c3b6acfda06997c2fb3c52c0567fc45eadab090f713e7c96ce88180fbb424a2656cc97b1e324dd855576bd54733c65fbff84848c8c170c000061b16b805f5999238343fe04ce5c28a8db2af0a120578b992c53bcbf994cc6530a0f045a316640495df2310752eba23a4aef186368c4e6874984e648fc68e81a87b54158a1b87477d7f2cfd8802a44942252f0b7e54a6e3ad34b8235ba8c3f01313cb375e0e7eb63c0e31e91b8913335d777d912a5201ba496cbb2313a73a1f96f6248a35771cc67622c1fc59b84c1ba040cac4b26baae4b26edfb65b50446f4574b2ee5651d30117fa83f32db653d04eda0fe4f470443ffb0262eedb92fb906b3e97ea8b365924cf75c0a28d97d3460ed23300c29a3a08a7fdf97739c1fb210a43652127e66beece852db543a2886e79d17524766c719b4b0e11096c8819fb6c10f14bd9bc019182734ec0cd1a16152e3e5c31f78fae7c85d4693fa7ea1d166520297de6a0fdd8cf8a3c139ffd61ab4b43279e381504e13e44252aaa415605cb6af99e65c50c984b618ea26dc6f3705d1e7af48902d40d764e8a58fb917ae5cab83b27b20864d60e05036801b6bc8fca352ed0bb99ada1667f482ca0bc13626edfe16aa61c214ae32fa41d14330cc5c6ba502711b32a1b2cfb96cfab76050541bbc2df58e661de408eb3e2795f012bed2d0ef3cdb975c98dd0ca3cc4540ed395201f327fa1d19e969ef418263404d687bdd35d2e413ff70d77785033ac450a1e314ad84de76e3c124eb547629026149c2d1b34a54a5e0710ad1cb261116c2a94e891b5bffafee94ab3b621ea7914986fbe653422829705f2ff99e13aa443c2c359001005e48573e11419ff9e4c5a6462608a5952c3e268508d1804745ec4ba9a536ec7b9eb80b095b41fc12fdf851ef25b07fbc8dfc4cee522ebeabc9f2ce22326b02526fc04d49d410b5c50c9d75f851d599ec506096fe00ccaa78b0e9942342cdaeb56295c2e96850906482c029eae0089069015b76e88056f4da7eed0e9c12a01e0aa626f6bd4bda0b6f5c0bd35101507889052172739739cbaba778eb8cae9a8bf9285178fb0f08bfe28668bbac2e71fa5f9ae9c07f430fdd8bd8233911c4620a9ae8e1d15d032aabe3d6f51cb44f9c0671b8d1f4b6d13d629b73a735156ea11503ad5093bf217f1236c236dc2d1acedc3ba4ef85a9c00e319c618f45c205f5a14d6355653aed2931227a44ac88ac8a0495a9975f33c94896424ea9c145ec261f08488141f957c0485acd0007adee764a0bc3503c90bc5b0e9aa9a4675ba10552ce51ecd68b2c7f73c62db2f985ca03b5b0a0ada0843a88e177cdb058306d2a94d5d090ca9768c269cb662e5a6fab24eea2a4ef6c3adac45404b845cbb83bbf9a938edc73b12ea383beaefcb8de89887bf343338665787749147da4425996e118141ff49c1020aee76c737216109201bf1092508fe2e9dae6aea1888e32b47fabf2c72c15935827cca01bfe216fca72a398d4082fff44d586a12fc3c1da55579a29d0a035b5b717a9d68f893ef5e1ef069f78db6dc358b164b08c1a913236d052918e126a14abd0a45fdeabd70307be58bea683f077985909ac83ba4651ba6418cc258bf4d474062985218b9ae2fe170f4ec737106d88abf10499c4bc31c8a0d087b127a1fbbf516659c39110ef6d9399ca225abdcc1b2960a2dcc019253bdda40b6fe669429603c2aba908744042baf76a32d1de5e47da17c8d717856856f8ce89d14b60ee827baf4f93defa8886dde897617294835bc158975e0656ddcafca210debb0cd45d2ba9a8126b07c5a5485c3380e248d820141fb444b09f3375624f60a8b1a9ddaf1707dea38f14a931ff9d6968d6b1a2110b608a9fc876c0a4c6e0b42222ffce37c2cef6780263f3d738f4c874f4d5aa539227dc7b9378ca242bc4d17aefecb03eacdccda94e428f1421469ddf8b6ae100cfd392eaa47ca70a0a2ff990c92dc19c1629a0315b36b25c34547f0ab199e4279bf724560b4ee55471d576c1d603619561921f74e0119b3d023a8729110165c572a9dc72b1f1e4775eceb46929241f703d5719b8fd108200923acb7891d04d6dfce6463554dab766dfc35e618c3143e80e1aa8c132cf6b74b8c60ebfbac43defd8af5bb7c93631fcd4467cd2f403ce0abc8da461ab48155e9b05ec4f2ec2c617fbb348b1d58deb34c29cdd2722b6fd911d6cf4fcf3f21e43213023eb2636e77803e7d4ff3356cc9ebabd33ed801c344dbc5d77ab8349448f1b806d375d800e9d082e9d8516a81aecd10e8e1a91da89b4047a696a0ad5b78ec0ad8a6cd381fcce260c261b894fe3b43c3cc4b12b9dcbbe2f725d3f262c15c85bb0eb260636f671349f80b22fdab6ea0dc87492a608774d77f7845f0310fb61fc8412c5f2941e2f634e9b1df1e4b1803270a9d0b1f21b64237859f8118859603a3bc5403a598f09a439aaed856f98239638f7504d6310c3d6533b55e96502b34bc16bef85b68b355f4f90e388cb4bdd9dafa9b00e706a4dbd0f670b75514061a3bd41928bd4d3d3b0505fd057a846f4fd63ad2c8af85eb69df9d0baaecf33666cfa24850a935448d071159dd843a17d4b352880e92bd99aacda9dabece1ed0bfd7cbe2c943f1216b210b0187b3b380693643147ed03c3d769977806f938ebd829c973beb19a511b9b5f7ba364f2fd59dc9763ea4e72a3e12db0541373f5e6765c74cf3195176d789ca53d2e253c4b40bfe8807b52a92edcc64216de1aa5018476821bb36299bc48e659d143d4b9bb5ec20090cb1607b868c7eef5d79ff1351b31e8ffbf56381cb89ed3fa4b45394a7535be204c6bb9e62146b64a955891acb8ace3f39e87f9a92a716b29ed52371dda5a401604059ae69cdab47a9e5bf47052f7b0a5e28cc535cb20d414fe9b574aab600042036aa1651c5b44b1f7c5403aab3880edbadc12da65f4bd64698e50b97bbfb47f14b4281382ec4a04356cc4d281c137aae01c151ebef9b7ee472bcf8cd9167ebb339dc6f08faf3c16eb6c9ac2c61e2e3b18174871800d184ca4029ac0abeba8e53422af8767eae4281394aa1c6e6826bbe474c5a507a2f5e17737973ed2c89604f333a5e5bb38666cdbf5025d18c951bf3604451bbb0a1d16c596b348a2396e32919a37e1bf6ac4ac8b790cbc1bd61b01a0ba6e061ef0bca2b356ff9c517e784430d1e83d79660f75ecac4e837d97d7ec1ad957ee8494a0a14e104d24e0e94dc46f1483547ce9a1aae8e310f8479aacd1beb19a63cfd4b557caaca2fd0ccc9b27d83dee963aa551f80f3925361aa67f9d2cd7df6b6dbe1569b4925f0c63e73f273e485c2e1201bb27c69f9b66dba765b366314f417c69b28074db218cbabd0379c5d2a9057881c1b6e5692ba146f91f5d25efc9911212f148787ad90ce33eb1b0e9ade9a707f7ac03e040e0c9bf61e0304f5f70f5da720d23b0d17d6ab141396d3e44de2675514d7b1dde736ed0f8f6e4881c4d608b95a587a12a5a3622bc905d4c1bc438b24b342d24825497b22230d20aed14b2df3a657a3828132caaee2e1f74988b517240d330435132c3724407847f7b18e6552b7a908d790ef632670dc0ea881829fe807c848f17dbf001a6ae6f2cd77f202741cf70dac279452b0a3ff0b4e38822cafd691968dd3f3a079ec8f521e995fe2679fae6a116454f89f258fd12b61610762510e10fa976eecfb59a26f12ff566e8196d980413ba403f834f17ea881b517d21082d3e047222c00168c0048f4c2901e865731f55076bcf5c432fda8ab9d69b9797527cc5863dd387f0371f7f5e569d399d7ed36c0da9eaac4157e2f28cfceeef42806733a6fdaabd41224a08496e9182927370559a9f414a69b8344011d1e0699c0e82c663b75022b56bc0e159b175e0e418ee4845b0e36077a54496f44f2b1a3824f0bf99106f39bf892f5295befaa9cd044bbd289569b515f42c6631c090b592e6a7c6f05ae46009769a7d15076353a586ea27a0935beb16e3cb97aac7ef0a6b441fe306eb91cf27693acfd6011bb67e2ba9911e59be3e6b03b273924bdd95aaf1196430c7d3f19a26f1556839bca318a2635e3210640f10f10578775b9c4efaf43815955da6b2a166c89fb0f9d63c1fc32c5cd6d8ec5879ba84f42c635de1858a78deea28356510190c9a03318830d06c325b589f742bde514be73df6d63cf2d10a3b76a7245f2c6f88e53b2a0e0803a4620bc44b869a7fa24c8cc2d136be2a07eac07beee0e289cfe3353959dfe54c79bea0805265e620c09b48001aa25194357508c54ab038044093430c588c183c2262a84b09134070019c27054190083021b900c0200c25702001ca1d12f35fdcc5c8e46dfce0c26e0cbe820b4624945fcd2bf80ef9f84afa3d61c8e63ca6565a3646b654a29492965370426041f04dca8097fb8f54e680425ff66d97974d2e4fcbbf2d2a4f7de85cce46ec75c328bea6e568035a71172efdf95c6d4a239c3ba69b6362fb311afa1ee30a8afcff2850579d206c2e9022b28caa9f3061b841662af204b389fa56e3dd77b51c61b05d543620151818c92703232a29866477476a01c67bc1042263742c9a90858018e4361433c23364c279bd785ac0b72c5e029fd5a11725dd6f510a4ba873041a019d7b2ecd2b205093bd6dd21c6744fc939e7bfb108c229d355560854519495f484744909458c4e6ce636a1493c3c24b75d125143c49b55e5c11d6d66e3a9f7decf8ab664428ab0c45862c858b03445d06eca70be05ccb88ebe6060ae604e3ce15620e299853552b3c2b862604de5b81d9570d1e9e280c910dc4edb5a0a17d98e50459102f512527241a1326299a1a28825c77eb8c274ae65209ec63ed0d5ecd094515f88c78f1600187383ea4af399b27680d353c3d40a0151f2c0d5dd9af4e81cd910a229a09d1536ae17cca2aaeacf12538836a5ee2c803a6456c07c612695e8d65024b989c8c25a496041c480b8563226a972ce39e7467c8399c10159942b23373a11ad1cb12429950d76e50d2dbba2432d65a794ec5bd7fe77efd22eb46a93b6805e9008428a6939494467670b1d5f6f7136c5fec8c98155c730ac1dc9efd1867943db7bef6273f0873b22177f301e369f27038ba10b36cc32e74fefbdf79cd3caabf7de7b15c6f8c3356bd63eacc3be4cb9cb466c40f293dedf9a75ef60de7b1fc6c4c3a6c24efc3ccabe1e60b1747763ff6cf3c4b77e23be41d53d4de5496129694106eb04992354442d5183131784ecd28adbd9faf88a993a45c06229e79cf314d5595e4b9172cef95c128b21bba2ea4e47e48ed8c61fae2ccb3bdf7374cab0f99a68c90fd99ea536c67896d29e76f25a9a98fa6bfa3b0b0b8b9265c9da7b2753a4f6de8b58a4262fe3aa2c8d8011f5c52d09c5d3045ba999caf2b15ad10cdada058551e872165d67a9f73a40a7959c735e779ce53a24e7412815c847eb2d084703901338376655132acc5dd7e355146994586a54e2c072525860c1a456a20d4dc56bda83c962b362e2b0cf3437a0134726106818360da6ee5cbdf7de85d1a4bcbb532a56f72e257b70015cd6887853e2a9f55b72935e09715587849cf3de56900ed9f32aa90edb8c5eb98091125dd1046185768a2e6d93cef178ac2b479e3834b3140e8809312693147362e6ed4a2bb96322c6c29eadf367ea73d6b4c010b23a9a59aae3a9e1127312336311010783848ae9526669917bdfa37a3f80bea6d28ec81622acc4ce4850c4684565b77316023c3877b8ae90a276ac24412e5b99ed958d4c1b7386d5d9aa6f27f15bcf9b507cb4b1555e5aaaa8536596162466e344add2492a81a48a86787b4b5d044b2f2e5c4ca74621b81864198c4b36292c8daa86acfd7b95d6d40167a084d9da8724948e2a829aab17536e85eab886ec698978561b6b04abe8c35b9b97b04be69f449c739e34dded021ae4a5f7defbeb31fe70e51e0fc6384b2570b46d6cc6e5ad3783dd9639bbda4284dc222983f35ecc33c320470ba604f5c4c49a0a8f8a30b7269f14218c6c23c325f2d69b79ef3d6f272f9f7ece904fcc1625968314f2f98325338543f11d030093789f91c61402f73d1701881da306192f457538e720286831272e6e28241f881a2a49629a45cb84dc3f150d008f14ddb6a9b25f70ad5e1451356121918840f8619210b33e5f265cbc90008bc0c42d960762ca2c425b4a6b3ee752e05c20aecc4ba9ad678b2c84cac6a4f802ca424c18e4b6a33322eb25028384000a11433d1f01eb1b4cce2da839e79ccfb25ad19457c6d8d4d88931aded628936a03176e4a7f4de3fbdf7b4b24f651f689c0105344b2d47286fc8fde5b4126492a2e4e296b400137d6025a885e6d24c8aa8b3664c08aa9ac28ae47eb27aa23e5ebc7d0ee71d01bdee3a7664f14bd2689f1cc1c2e711ee51c545d3ed52e8f24570b374e90154af38ada8899c9a07aca5a465afc8b511351715ea82de2a461c412ada9be0f4139ccd20b52bc4ea434e4f36eeeda982e2e224e67866a2ee6a741b47b2262a31c5eb43f52c6c6c4c6dcb845b1c1a01e680f8867b6f098682b2d0cadac7defb3fcbcbdf8ff8b189c1b123ab95b6237c124f7e62a121b793ee7a4cf55531354d001d68923a9f80b4573def0921aab2fa42c27495e3de5ac6049755682e8454025ee656a02244081a1aa40570bb769b6a40e4468bcaa8eaf5d202431b808a02896d0a316adbf6debb10c489bc99f01714fce142bfa23f8fe7085a29b4a19b67e9c38867e98e73ce79eda59de5bd6456472b6b3a2d8cc1fb66200b39e7bc44736f269fd1fb359bacde521ad07e8d4b63f327e26f7aeffd44de691a2b50ce79b15c035db1a1a979d59363505b5c6772973889e10b5967464512c46493158b092f37262314d765ddd15c00c11fbce7c99cc032239b73ce8db3bc218d6596ae94f9aedaeaab39cff9532e7bd1f16663018a01b38d53a4f15535aa116f9031c998fc512f8a565e382156a334ca6147b6ac584b48372748b24d6b301a6e404bbdf7de5b9af2ee7f2ee9d1e8cc6bee9010d55d49bf8a3c9c7d704e579c89bcb58588a1ae33bc770ca82b97b71b1b298b01b850526ee9549168a1ee6aedafb43c3cabed907609694591f4cc24396496d5626fc67c9c7023eace16f7defb3219bb6c436e6a504bdaec11762cadc5696c0e690d2abad6f1632117ab6f8f4a96424b6e76626936fe79efbd160fafb5867e1dc4a8c6a66ac05e2cb1609c050df52c4b24290a49cdfb27adfc7165efbd0bbdaef2cef147632e09e8b29fa9ecded2cf0a65855aa3d6a9b56abd5ab5af908a74529bea7ec439e79c7320e42c9320643a4733f35cb10a39d69cb7a07e80b2d5ac55695dccae72464a3d291860b68cc4ec34a32f8248646433d2567add047d4aaafbdfbd3be917e22cedbdf72e64b195b775cbb1d27fb0f5e7e5bee39c072c272482d4a6382f5675702f1742f466ae316c14da73c9d82b05958a6e79962e39e7bcec5897217fb3ccb17ceb9f1a9cffc632ac6ed435ee7289dc68c76a2b3cd4025a59a28ab104882f9017eb96f64daaa9047c037befcd4878c6adde7b9cd4ca2fd7918b283e567b3287c30d73b25c8b722f825c4820299e692991159f711f36cdedaacc1cb9bdf71a227e378a89d10b406b6a469e56d07222045b34222da72d135542af9d9503ae29be244e534d68459b2fa90e2e395565cead890f6c4316d0603cbd6d5e4cfd35f58ac660074c4e4b203aa917323ab0942da599841c6a6e97ea0e8348c21b3088650727535f3d5a605d67cb1ab6ed2242471626ab95fe78c1c1c75fecc9bcf7fe37c68521c69039ceb9cc39bfa02dee92131312de06d36f35b99073efbd13e30f573eee7461a1a4288a7c6458dc9c4cf0c0515cb1ac0c6709c5cc5807676a02d544b5495191705d394965386969d021c7a2b222546851c032f3143a8d4ea71eb1556f2983df53f4de7bdfee8447c49fbc97d85eef23204146ad40b281396a72c969c2791a414191963c8bf1defb2c2bfce166b3da7e1eb0d30eab2ac4bafe786fbdf71e9577ef1d8357edbdf7fe7c41b49cc7cf68acec81615b8a207193db293adda0984d5fe8d88c30ccd00038b860b74ea704a982e92b0dc963aa8ec03a7f92716a5aafe66207bffc7df67399963c98e221bd5befbdbfa07d979d6419a779ef7d0b63fce1cadbf54befc9fc512f8a56765ab961eafeb3117354ee60a6ee1788271108a51d1054d09fa4220b0c8e93d3071d0e3aa916244136402f4c9bb215142b94c4a4cc54de5c781f004b73a1c4829d389233c2c1424936cd78ca429cc1c60c2e233b51d22424a62a0eb22d6ed814404e70611c708b90c8ca558869d214e3c044938f928ac40c915a881bccd2e1759c1fa8c466b413ecbdf7de6c4350edc927d48ba9bd127fe4bdf7f1cfff24e5b6585e6eacba6e9c2e48226b6063642314e015efbd47c61fae8fdff094fc31a912892b463dcd60d5b5a55c5b6cac3b9b3308355cdc6062507f5dc92b1d9d1b29755514852a60b846c4254e1536b0f77e967ebea467a071efca904225e10197b7de6cafd83645786ce52e44de2c9d8fc620222a231338909f957d33b21bb03245f2a12273e860950d26cc43e4d829c55ad377076a9ea53c2bacebb5dcc09450139651738e8aedb89375d74892101db131644d704a0b8e9f5cd2a49337982c594d691a9d96a102354b779c73ee45dcedaa38e7bb0dde7bcf42e54216eb6fbb2f92474c2793b1afb998ac8633a6ae87891581c5f25614c2287d969af8a1517d6f32a3bb8e7517f2472b6938e79c733ecb5cedc55a76e4d158cc71bfeea19c33ff09b84c24af492a5e5c14f0026d82e2a9330a726e4104e113d8a47be974a44c4a6cc431a83bcb3857f73e97f4defb75b78b1fa8547ba018dd7befbdf7de7b33bf6927efbdf7be8f04ef7fff4b6b00ff97eede0f61634d7f1f90a6396cf8fe4c6b001cbe354cff0e0e1afe3407f877f0c18dcf83e18d07418d1d940f98016c009c61ff19080138c3fe1b28d0abe120cc02f7cf81efff017b1f06f2be8f734fd374f07d3f775d588e33a08732c61bec79d41de4dfffd08307c677e90a600427fc39b8218e371dec1e3c78d45f9ebfdf00c31e3cfc8759fa9f7fafd7fb9d96408fb7a1017e7737fa202b3757ffda75c669e798ea0b6ad73957ace3aa75016ad7092745d673edff6eabf7b55e40ed3aeb96b5b38e5867a85d27ddb476d619eb5eed9baa39683ae3efbd7770e8bd87e0f7df603bf7142d010fdcb404dea0bb270033be07c27f0642907f0409152858f8303d015f70f87b83430f1f1c62d8fbfbf6f7f9f6f799008e811de6af827abb1b3edf06b1f76d4cf0c37d418309c1215ccfffc254ed2d042904879fae4270e8e12621b8f70efaefeb490040cfdebe6087f8cf7ffbe0706fe0f05777800215ec779882daff37b8a3f510fe26803becaf82da038771fdc67ffbdeef1b6ea8bc31843f1c07877baa867f0660848c5d2dff57fef1f7a021d8c1fffd65ae77244a3774dd6a19eaacc5d0fdaae5a1070db2fcfd1fbe11feb6c0ec8313287cf8cbff3556f8bdefc63b8c1ff07becef83430afc97d6607fff37803190fffb37d4cb00ff5f9f0fb8a7867baa963f84d9ff37d8e1fd105ed9e30383430cbfff83c38ff12f042d042b04df0fef0ac10d7ffa3fd0f09fa639ecdfc1b7fddfc161093ad84eff3dfcfff98fe1ffce072b047bbd3608c09702f085798ffe6f18aaf6dfd31c20fcf9c3c0fd21104f00667c09c0073f0250e36f00373e8421861f70f83180430f2004a0bb019cc1bbf2cfe363a88717d41d03ff3b38fe4b738833be1b67c041fcd17fff1c707088e1c7717f83c35fdde3cef13b8013eaf70f5f8ef7ddbd7fc8e194a9b2f57df71bf4a0a1a679ffa5831d785ffebeeffbbe0e5f50e6f8be2070c8b1f139883b060cff7b78fc7e5dfede8386daf7871e34d4bbffdb080260c7a701dcb24c73f0fd0e3b0de6daf7ba1fefef199080f59b7c83430f1a6af9ff763e8ce076be16f84fd37f3b5f06b8353df51a5f1838437f8faf713b29bc16e8dc63fce1ca1f2eb254da9048ae575072b507c11b0e110bc44de645e879607989f4defb1f2817fe447f7e9672112ed3cacc622f78204ad60615b39592c840734139568950c8ac556dc03bee4b35a63af3fc97cc3647e6280742a2faf4a60406b7553c01eb702971e62d252d68ad98d86a88a28c239848c84884ad3d477461cfd072768ae5fc21d94b38e7b3f4830472356927282121a64cb055670b0f59ce985b0964073322591f30aa9a21b52989921473e5c625a4ed028c03e4e3da244fc5f9fe35216003394d51ecd30e888f61a8640d9ac50c1182e089222993180000030014c491304d24b9840f1400042cb4b89cac4424128d46038138100483016030000c0000000000001406828100623c2364560340d5f52e94e94f9137261ed65cb83b49a8fca5785f054b83872958f0532f7833bcd9c98b02dcdef87c6b06ee61e219658b59d0a7ac3acc2ff84a8c5ce1adc54241d35dc2b6cabe556588d9f07d35597f3e84b1914eafc023285d9f1277665c3bc1c5985379ceb6588806b05f5be87c68ffebf415079dc0d5477484971a680b32059479217a76deb2800e6935bc2dd24cab56597a32cf3f327918015193ab25f38a1df77076adb3a57f59550496372917b2604b8f3fd03e2c7edccedc880d12ce6271adb003094abf92f21173367581c09b62a4c7a055a3cba7bdb102ea9485367fa12472e19de9bc8c1efae578450d6cdbb0baedceb1bbca6cb36b66d1bcaf60e8a2c45da38d5ddc055e620b4f9845d7a5f24056c1a2bb0dc11750fb10ba850151f7928df7e3c4cbf5379fac51b212f3b7d3c09d3663111f9ce83a807bdc1593f69cd2cd52cd3d78eeeff6824313d7f1faf4e2c12fb8ec4af41628d9cdb9af6bf01b39b1ccd32bc7486a8175886e70b3d026a3b1cc319296394bdc22d13c9d8e1fd7701430a42dc49fa2b17077f7cd564e9d70ea6c88ce65f64022a605843bdeda19b9458335e8de7fad538f3bb351ee4b2fce945db92da17bab6292e4b67e5d01d215d3d4307f890b1112702a1a017df96423cc3c44aea13ba1f65a025d6348c324eae701c72f30528407eb949a517ba2d6ffa85b926e7ec4b316525ca9e6c09596b7e05dc4b2c8c3513e5616892fceb2e26e066f4b7e8646a0116ec5e4b0f1d22d12ed87ad831a28a6026d2231d64e0214bf94a7ba60cad87ca0e025eb683ac21a98f228ec624bf381c2e8eaf5b4aa43b821781777b6c858008d452a856367299c6c70227b71a5dbd257987a52d6d198ca15939a9ddc97842f8ff2c284b6aed9344c26c9dfb7b3632baf250863ec686b865d49de383d25028693d9bfab69af8920b1364b6b6d6f597474471bb8db0d0d233377379602cc93a5416cbc67d26c0fbf37d9067771586e973deb3a33cedc21145c973cd8b10ef54c163903cadd675fab45150427d237dbeb47f13680251342d8078d34d4d7aed33b6de32f07123cc0f7d43c48360f71f37e38ef287d13116b7169b743b4f3cfbe104d63ee1b53a6a5b715c8cf2959b561174597b6d33994199636f62c61636b1b5d23affe326c0d66f8b00e98b67b9d537184d88e1968f1a4264834d1b30d6f92ecf3769f9902da3479c2cb7ce03adc6ece11d532e43f1ce205831ab0b660d4405f61d8ed5005740a090a4be756db8d8e7d9cb42d2719ccb6f8a3122e92615c0f9930d54dd81b5bb1c4114ccb4dd18d82676812de5080f499ade6d3b8d03ab4390939d2f9629459e632dbd955366ae69e491dc5ac2552503713296630b904287bedff64cb81d1b275c258509bd0f27b46a8e2359f1e12c93d9bc5edefb46b6649da9b7a861ce710398e50e438c5c8f1e7c8113c45f22cbc506a6c99d640f66962ba9ce51a75b52997ee464eac7cd5eb547e4a9cbe4a96f6ddb61cd476c4c93c926b98b988f605df7472857f82ec1e52421432d9b5424836bca7b6f16f223ebf8044509be4da5b7936fe9ac7198955226eb9fd207ca0d7862e5be98f729269da67c639b00703f600a2e76e784c8f6383ab8b8f95db22dbe081e24dd9bc5a75e5c0f0ceb13ecbb0ef75dba130e003f8791889de81b989d14b4856b6caf201fcaccd83512df4117c07daa65355a7542b0f10e7dc571ded2c07e32186dda8a363b610dca2c2c515262f0eb85de6f961d3e00bb9d170f6a7f47e73ce1ab68445dda59cf6ec7937c5e81937da019e6b91b0be5b0daa3dfbbaa32646da39f1608767dc85d500db95723652fe0697555180fbc052ebf2d4e029ec4badc1b77613afd8de7830232a19f536eab507fbff2dd4aa0900c445cd716bdddf46eb684947afadec8ab11e469902ea4d0f0fbdbaa809e6efd3206210c3a8a40dc05ebce81b1175842ab4c968851ace848b15a9c952d00ab5790558041c6ed7043a624c5c3da4101a6d3cc796863f8789397e518e49facd334ba50a27fab1f49097b89341d025ee455afdd06e073ba7b57ecd2f12500a28156ddea4dec30d439ec6a28bc265674c223ac81e5a6c40f85608ac964995611747ed70cd5e9011924e04b8d4374e60b27cd6eccda7ab738e17b4fd99c24717f1dc3d7e74e38c3a1771020763725fcda9b1c0b1ec95083c9215922f188a6bc6ca54a1f9944abf5280d811adbc8a0e0dda262b86cfc2ce503307a39e7ab1aa2827e91b9a59c6e1a25ea042481d70d8bcc984a46a0c812e58e01f56b349802c0201b66d93043b1eba8157025866e6a3fc512e02efcbf5b972665821860f3780988c419900332fab7ce3639a8180590150cf3db85d7172769709f881c8e373b200eab7e583b3a893fded658bad4040f04e403438ca3e4a53d3db6a864862aca2d69da1361185f2a32be9d655a0990e1888289fa8f60b7afd8cedfee2ac4f68e598287ee82e2e09a30c1c390ed00a5fb50cdb5452b4ac554d10f1b1baae6ade32196edec0fc45f8cd8f379b9822aded3e06789b8b244246d33649071957b2c1a0e4401a6075fcb1089e09ed952ac3623118d9d37877857dc71f2783fabe1c03927abe2859884dba1711600db13d1431fe42cf34548ea5e5999eb9e612453d1fd6a1ed66256e00275de3d0eaa2780e99ef897b4a8dd5b6409116ef652369bb6ba27d80dc1af70c64239b1c45aa311c0bef0525eaefeeccb68c23c947b3d4060113580aa4722945b15f4defffb218c0629182c4942b01b38d63089af83174d6c2b88ec9cfbfb2ba4345d002a9d13682dc4150df2d43f5d3bb65f8d81ff07ef4817354ee12a61b8de6dc01be0c96209b03790f51ced10df0c6f175751dea8b156c49d60d86140c5fe414423cd18d94c31a52542718fcd867e972baf52457767a7525f576fcb9f22833893551fea4342d0cb141d9af4e1443929cd2a42be9b01fdef64f5ec452ab38585fd749200d9569b016a60902bce7285f07210efe5658012b9cb7dd0c556d2ce22c8e95bba95dfa5d1cbb32359e94857b361703f32d7d6a956aa8cc752e3ec767c09e96240d2a158d29600a0db90885eef383bda0c78e2d59d4b6d6e87351aebdb76325470ff94d942c070f464262e8f708f4416665f3f3e38f399f8064cf73433406d251f3db1086863367d94c4bec326166a3269386341610d2a028f407f549df02b18fd8a5fb23625924b62fca9a6a5f76e626513e6f7d9751365706a7b5f00df23c8194bdfbec5239d159a50d4237335e6a8bee3268792977ce3c5b38269d126ee01960a75f233e34dd40fe0ebb94537726e9fc1637a3348805008c03a8f0bec4823007ea442455832d398fd68a87865f529d622280945e0e312db014c17f974d1cc5621c1e11728f3475d437f2183f46029b66eaaa2d1740359e181b9d2e9d94f26127d64bf6279605335a6ff4ded4af96ea1b5da1a62d3bda343a41b1dad80dfdcec8a67627b2f8cfac12f91f278d83de3e2b7eb3405be4b77a9cc59e32e2a3dcfd26f55c11a8805c6f9324ef5ce2253dfb8e07dd24eaf2b3bbfdd2c62c32c79c9e8961dcb952a1b1ee2f69dda8ef3d8f6807a08c776b250ae9063d7975e4d0ee5db01d86393a5c1a3e7ef20f2394d158bd2ccec67b714a782bf7a5f35eee29bf0ecd5830fd10ef528c038da849534043241972931dd3943edc7c3c15109277f7cb2153c11123bedf05aaf9263e0e2ab7962125e585e3fe02e022210f6bf19aa52cee19e34236edf9381e65ec9f838017f8cbf98f3806aa806417dbd753a67452b75eb83a53dfd3fd0d697a7c075611a9ee5d3cccbf9c0c4f30ea8a2be5e4cf7784e0166893b32fac12a6b351a7464e7afda198809155b71c1dbd50d97814ed63e0643d6b8f8a67a320549257af10a94d9b0bf7dd4e4c98545c94ab6daac1795f9162192444c5e8dc1e5db0bdc939d8dcd64118c44a3940f18a76418c6692e87d17cb28dcef47d33f82b86e201b0c1a617d4bf5134296695184431e97064f1f1fdf3f3dd14bcdf27e02aa4dfe0639c306bf0009cb5a75f5eb7041a19f47cf40452c657330fea246d4d6ff91e16c2e615651160cdf96655629b1eb77ee5c055a3a787b5e4db7e34d1d1ddfab92cd74ff74d5731201e884845e3c88aa5e80647884f6a4fa2d66a175d7267df207139937a4468c5535829bf8c4492e81f48bb448e7eafd215e0b44beff1abb43945b7b001a22f228519d25ae79b48a0813154433ca1e0f05409c88d0f1fcf40f863a774855320e7f9c6943d3a5d6501f7dd74abe345706adac655a02b610333b822d6b1eb1dcad670fb2d680809f11ecc1e23acf663b49168280faf4d929b2c7c757da3c1ae98c8205585d60bddd48cfd0c50dd4c088cf65c9fbf9a2f89985132caf2105cb633cdfd889186b46194f34599bf780fceaed3c5c57e9c47657d8cc0e1bdb51c29aa8cc7dba8e1cb98c81054032ef7661f1be28e19891bf4db51e7bed951e48289a9184513a16c20b7d560e0fb2552c308e84cbbbe9add9e6c0684204b88936cfe74dd22bf817bd0886728ae6c322aa6fc550cad3c0f80097985451324d2c202a29af043e166e49c3c1181329771a5abdb5f9e8f24540747915d3062b04353e20aae3c7a380b0f6b23aebeadba2f33ef2208b2ab9905837049a491d77aa84397063b48a8bae90ab2cd3bfb6436206a0328a4c749957e790af914106d59094188018ab5c18857830ddc4d131e44926927253a2115da40c84c0c139a90b0b9def0d4e74de065022c340b2435e65d060eaa4e40dc93cd58ac49e8057edfdf520ba99146396c780e5533b7c76e2ba7da9ad713d411a036e717a313aed1a672d6e3d7d4c6c389dc726aaa3d206b4c6354fa8e2b3537550cdb0b0481e2abd9b529053b9dfb4a61ea301fdc713b058fa559d6c7f4a7e17b308429224a26606b9b838d0bd85390570229b293464d7304010854ab46c2e21aa5ae731c47a0a2c1dd292a4fad858605b2523a2c1a7fdd0198cc01d3ff993923eb022dcf4c4e80d46822631135c5f48f49662d0cf6a6e7f9182a772cf346eafcd2d4c62e7c69d44466e100522ac8a935fe0e826e9e8dca9357e3aa0c7f341270fa857096d997fab5dc0adc792515bbb305ef164ba53ff60c6ac6e005e7c6a6793794e38557d349f5a251240b5f70d9713fdbf01b3107ad60f474641c88865033077ea1ba625c361550a11deebaf90d0eb00d9e76d5267404204c584d7e4b2ea0f185200f1a60a871b88e57588f5aa96763160c2cb8b624c47d9323bacc630aa174af4a68e0cb0e5b31d0f5892eb3bf1aac2375415202065aeaf2c2a9ab9a648e2e1237bdcf2e26697b516f6714de19458021412cc22b91f7a350ec318db77f7f7c342bfcd320bd51c3a26f126eb06c9665599b5825f9b11b765b5f8e3d5e8b2aa6167d53de451b8a90f658a110bd9b89116fff18dc720078167529abfdccf0818b6f2b45c2c386c297d20146617f454f90ca93d847ae06fad1f99084fe32ea5d3c2222798740bdf6495c376a0d2a884e52346dd38a2ce4829d8c949ba35adc2172418557238405c6907f3b07860f9495801a3f43b8615f1c3a2fa4eac4184ee4f4093a15e4b44a300f6b4c2c308720d9bb7a8370ffd04ba3f95b1741e966c5ebf893d7dec4960c94268aff88ac9adfe7ebedf31e528cb24a95248e65815b3346e7a26b62fdf85aec665f2359a25b91c65e289699564ef24ae0b29e95c9e81e4208d12298832152b12d062ea403fae57f745d4a948834c8496bf0619cb7346eb92a53b6e655e908503e5de614c476adb6acd1297af67ea515280e532ef24327bc2a8a43c246e9080497c38f731470081459017dab6cf218ec1fc2718e877849fbdb9799406fe3c4eaca091e40b81cdedcc3330fcbf3d9beb4eef9e7df97c8da1a65809f58dcc51df1051d5a024388934003cf72c62214e5c30a04aa0ca5e7a8c3800a4b2f342e17a2809d18e8cb9e7aa7fbf3180e739ba1285fea5f3a7164c853bc05354a9e14da28052f2976b27249cf4b052f22db63471f2feec2df40812f887ac765742bdf80ed9159a3bd6676c28532adb91c445730c44e2d5fb63b3b12d07644c5b2ae039d09e6dfe79cd604418d29e0a6c915590743d3faef0a3e58250e0eb3ceee8f32e94f7f035e0abcf435d0dba41c3d077053a5082b3ed78ff8644ecd61326b24132683909e78623b8914c6564f211095747b3f7019ed44e2f596ace8413bee42ecea4c796b5739b98910b12d691044b1241e273db64cdfb7c381901dba1169f01f1eb24c3aa527c1d0bc6e008f4b9c6455108a05b174c6c685a17d351e3e866c854c5a75557f74119aa06b4d202c5ab28f6cbf67546d4620de4cc892b184701998a5350327148dd2a938b0f3e19bc18af4749950a84f8ac6bdd2a6c5ce2304e6f7324f1b51068c2c24a73b71d08143337e13488861ca635c4abeb7eaf138c079d8217bcb28a16b363a42099767e6ae323f376225593d896a8e34fc654b28cb563a506394f4cfc3fc711ee3044e9bf851c42e1dbb9d8377eae76d36273a202b3fb0896637cc74663b0c734f1fe191ca2e35094b309a7c48bd9de9cc6aa462dcb0bf284c22f26323bc0d73c5b05589f25e40403e2141859692ec231c65d318e185bf4a3b49f1c49ac4a3c2362ded0b876036eb7f380e2fe33473ca8469a07b269ba5834ec317ae2a6a1363908679a99e1df084b560347eb806c39f3ad04883f46eef8eea0167781105bc90876a4bb4ff073820ee9383d5919e363092aa42be0c08a968ec86e659b923a2f0a98fe09501e2e618e3e64ba32b644d71894232c6679825815cbff1f4c16c1c59c7ece3a591cb215c908136ea3323171fcfdb3404b71947b0ab02ad09ea13d4c783a599b82c3161b6c8e416d1b88c393af892920cb26ed81b58ac7f7c079d210f0b582d08e54ca1e756cd078ac0c404dd33d83d814b8d32bf33f827f7d33fec5b97811d7efec37085f44ca3711ca1e3ff3be7e839228d41cd0e4e15d2c5a097784a5438fc1460bfe9740a66dd1da4db72a8f6efb031a728c9ecc1d4796c88440f37f8fee3558187ccbea35c0e877788620147132424d757f5fb685cddef3ca449025135b89171816724aee2a377b31793a2bee229644a634822c99988bb416491ef9c54b34394d9ed4babcfb3f4e640dcd2659a355162a114005a9c9f18137d9353aaad173d8e5f7f7f7a5b882e9926f6dfd595f17869dfee82562e3f02f9217d19756ba64e9b9ed8eaa597cf23cc2885aed04751843d55fbc592c0b87ed18444be49983d2985d7ca4fc598d9e99579f9cdd2fca289f9d075588557a1005f097286eab6c4ed3855ec2d068034d982b22bf3f3dc601ea693c3a1eb1cdd6339af76bc9e83164d5eeb39d828508742579ec83b40b82a9fb16b28f29c0e25313cd3f2250e209495c721d0774de2a62931d01c8834151dae789a809603651d6c5377245e25285a4387e76289fa3972a2763692d787463c45c6f5120ac845366d4bae48031f1bab79517cfb1ba78acff94b19c44acb2e396385d5b57852067f1f18dded3685c1b2984c41b5e3cc02ddbeba7a1f30055cf286f1d778552bc2e96f4aa8e0f962edcda7c1c2c1313a1259e741a67141b0df394640c7090dd9ce618e4b762ea18b9b676260559640e48c1b805b7378b0b17c8e363f9a04f892e2e9d728e84648ac328553a926bd919b3dee41b5dee1bf34993532716a2ce723c7522599f65ca47ea95907c88affef98cb82ae40db7c3eb281f12531a05141ee3cf2cdbfa5f0df5ea9bf2d2a5cb8656c43dae11ec3f96640c6426b678e714f242fb23f76362370f9aa587a86ba73e2bdaed60fdb826e760810fb69ed813d6c2d9c1dc27e2feacaa44282a4ed0dc6ac86da2c06345013b8a1ddf10ee4b901049bdbe7514faa8fb8ac68c7ba6c21113be7d29b55c09b0309ba6ccb3a1e2244fac0a32dcb426a566f0d454d2b1f926350ae646f801c0a4a6d2a0ec5f7993bfae8995d63d0203cf640c2b9073d509158c70ae876e50046be5076e0341d918f9b892d0a822cee7d9540c64ec83619f0858288a16f797ce4851ded4b385d33ff0e6c407de92778aca3335bf3e5f2056d1df2081b15f03125f79823083fb91e39d33eab17401267bf2805d4ae13710cb02d9c87a109c60fc8e250fc2c957b29110eb634d84a60558925573e31d0908d8d72218a90d002a09298b4aec845306f69e5af6eb3c9f313a73c9b39e5e6ea6f5be0aea82ec5835e15786013186244682b8c215800cb674a2fdad26eba1800f71c9de2f86e0b946975f029c45578080a5b0a216388ee3a2022285a14131239c1059607a3a5187745dd5bceeb3d74813c318c9ca812613d9ad735268682bbc6e62c83e690ae336273b6b348108cd979715a361c15c77a3c56c4a5128c82cf3825c607b6b53a36f99b3001fd223656a0ca8906545e9e4b9833084ed9d3e1e3503e365db2abbfcc7c9273464a1df0fb08ac53e0896b62dd94805cbd291e24cec199102202cc62e0ff5534c02ac3ec853cc0d68b524d65d19cf4583925a9e0a8d4a59308902979ba1ff1f07cc43583ac256c1d07db9819f7cc382e83f80c05778496ff76d0cdea147f1b3488cb3bb205d91f500caabffe00329250a1cb834577726c0471a7ab754b1863357ef7ec8094aabe5317cefe258724d1d759d39ca984ae05c6b6222f97dc0072f0ff7bd1f93d41da39f6192416bed5187fb94f4ede50e351b38d5a8a8cbfad92eea57e8861269b2c8885f49ff62b1a3620c2de2d698407d146135f3b3f2018be9ec80fba813a2e67d780a9f81a05662563b25d629745c349c2fde38002b8427971999cc8c2ef54c968ac009fd95be550252e2ed2aa13e7216e12725a548003893392c53ac209364e54cad3316813c3d433e31a587781d4f28e3dcb4b3f213fd7dfb89a571c0e6b5450a3f8b5c4d112b3f0919313c12e31744f9a63e350d34726d590409bee5e4d170e469d272123d47d7c431fc87bdf6451d407c3a3f6ad392992496a28468870c39bdc641c9332bb2cf6b67d4aa4b823a6642dcbda466a8fd70cf25e7d044c202199c89cff308eeecf230b8f181b7167ff85882cf5e35e17f93768958320c701726d27af2f44e0a84aa672628fb8b4ad030cb4b45fccdb4aa821a0ee3dbebc631db5b84dd14951e83ba9d03929cd6f4326a3247f4418e1712a851ccb340d6a10f5efbd344b6d537389643d460bb1a1f24403b81a16c574697b92e94310c44c8c3ddfae3a722db2447ee4e74f0bb6933caeb1f651c65d8af426e629e8775a47b01c8dc8460fd38aae358c6558cf3034adb7465b27095451eee618b03d48809f895e23d99c35ba135fe4e4624954fd5498db8774690346c822bf3c67a88d47ff6923188b06ce35d81012a507677df2ecd01d2149b5e0273b06b5a2ba6dc7fbf9f241c3d1cefe8f2a40afad444309694151323836eb89b34437cd27311dadcb28afb0c478e5ce25b679c2c0288ec23094aabc8eba5793ab7b71e139a8e2d58d1447d92305c33412158d980d1adc11c3d392592268ca96fb0bde876c4e70ac8387d8a87edf81a20fb70322e3cad6d226c6aef9495f2763c171a0436ac52eef3636c9c22818eb868a2babc963fba01b4684a925354353da3509d3b867e4bf65f46088481af8d3815187752af895b13438f55c25c0abda18ff28be7757845b392434010a020cdacc890ba5b8ce034c4654a06252424cea9a5781c16ac1ab1d058c82451b3a17bfa0c055d97c37bc10d7d05721ccfe2419464b76c50b539b216163df2e40c68166b93d19d3b5da8d0c3f8d688e68a2c58f18507f12d273ed7f2cc5f025c1a5d5a371077d13668d25a4eab7330da72d37b14ec32f8fe54add4f043882cc4d9528c17783466c714653113b0f92d08dc51e232acb86bd91284747e3676848b5f70df05589f0370799addd87649dd5949e381a007b43650dd972aaa407f0211f3fa30d79090e716f601da643b01012c89a5cc5489836c193fad52cd8605023d19fc824c4168a7a7fdaccf4994de0570e1c4460a0b9adf5b0a0c1d0b489358537c7f41c828ce70f06991d21d78052e8690dc0451dee6dd89c02d47aa1db2474481ccf58c578d0deb9487078022c08f6905dd055883fd436fc23fbf49759990a843f506af33c9835241edc7f71ce0ab936e4897400db5a18f31b5cf2e60e327273cf960960ee2b18a94b1598cfd32c0234d66769a277cda989fd02fc7e12c592bf245ea4dc872ce22ce2617fb1f7b3f999ff59a6176d80057140ba7021a20057b2bd9522c8d3922aa090340b11f07e82e54bbec865a8d7db50b973eab8d15513b04553976f4287dee8731bd6e41434f8cfcc3f678ec48166aa9d55c790cfccba92d3e7f85942c27548c88a38acac1229077820013cbb9463fec3b9d9caa85179d84581e4f40985440157e7b89a7a2dc9d09198e149950491c1f988f47fac410b8fd804ad2fd46f601e1579aa505dd24e346707b7bab680efb8504d1505620ac7936ff4fb60026a5668c7ece157f9eb5062e0014e3b26dacab0e6c5a5972714702c8eab47b209fba575f3e4172c60db4fea3ccc67309efd14c0678db7ff2171d125866cb10ed2d558af9062ceab082f0d4d70e12bae06891e886bd04dbdb43c4ec777d7962142c1cb7e6e2803af4236e4d422316125147478ea68acb0734ff258b3b497237fe97da0ee664e73c8215d8ccc6cbf184cccd4e84f39c089bbadd8f6e81bb9163c77a27d220ee1a0ae3a1e307447c204a8c943ed5e3451fc5c4eb8d6d718cff8ce8f0540cde7ca57a6483dbd97704ebde2fc0fe278d24ceaa5ca28b46acb53d92680aa392d2c679366681f1b8f6a0befc969e31588ded6aaf365a4de830a3c6e87b38c2b4436ca844bf7a973c40ffe0fcb7261d7bdec892a76cd85e8c1e46a85672955684254a3bd56469f483647c7532aa7ee8d6c87a9764dd11c5376ba8f258a1ae522f3120868c4a9dbdbe5a79e212ce40dd83978451c8e84954fd3893f082c9828a1d6dcba9333d7443934fb59f41ce972c8bdf96eaac7c594e4636e62211216fc101ef526c7147cf51b903dfe424ff011c6c3060963758e78fe327dbb1a26d2dafdf11cf34355fa269deca2f64847407740fc578cf17092969f6c1b89c55727c7b4c24a67c5da403c89cf503eaf1928f55309a19a50dc96a92167b15af93cb12c06d0886547c9701f2568862d0088b00c864fcb5006b48c25db22a044683071082ef28f0f6c1ad1829793668796dfe0a8a414a752ff0b46cb58ffe6fbb1149a195dddd3b930ca908ad080a0935d58515d7505cd335de535fd339180e65633a576345468c74732351288602116323b59726fae6302da3b7dff015a4c168209a4a0b356ff0ad0be359e929953a39313616d94cadb51cea689232a4a94b0d5fddbab5d65a6b2db6a893031b4bacdc83640fc54ac65f2d24bd8532fc183dc6185f55c518e31573fb0be6f68ee1c02187bf188efff6cd70dc6fdfbadd2b4833cd78f8f1c50340ca16922d94a3d51100ffa20520b6da5a0c0000dcc88c3b43e69b4a07c1784bc6ad8f6fcbdf3bfabff673b8308fc315fd0df7e5635cd29baecbb70be9c38001c4b331dd38a6635a4c537126240550e5b7ac1c4b1b0178ccc718eb3294b012e63246e3e5f693188dfed16d46a3df5e6734fa45d7311a8d61fc93f4f87ee08b49692a9d233a95ae01a9d4da423f43bea62280cb663cec259e2aa23a39171143e447a1051fb57a884529be9a88a36f516a3591da43ecc70863b3cfac187762f79cea2846cbb2e2089facaf2da34a6a21598da3f5d5f2ea16c4a6966f36d6e5ab9d2692e9db6abf56ebd2eef297cbd43b6f175cd9db43bee5ceb0aeccf7103bb23de4454a7153eb72f9591b45b2561fa2b744d8346db3f916e13ff9ee2d977b480fe921447ec667f7dca85b78bca79499248a8ff51d65921cf1051d8aa0f4994dcc24d13d8af550f4f5c6ff40b361d18acca6751049270752ac35e933914c25b052b309582918ea61607753d543d8d46bf7e99349bea64377e933914c25d5fb6ca273b49f1fc467923c9f311b21d8cc7b08309b0fb41f180ed247ecd27eccd81f3bc28754f41f77c266de3f085ffaf88df8fe1389b77605f16b26c9f145b7eae1a28e2d4d094c9c31fe55d5a33627efdb8f4f251e31851f331f06d3296536e1515eae57e151e64f24197eac7a889efa79fb773452f5a2abe6168f22923e1f6836fe2304b371527ecfadf79f66d37edc09b3694ea4d86a6d779d4dfc60411356d5c4a79f55d57254c925ec8ba4947c79949fe684d9740b188ca0ea519acd07daccfbd944257af8b4fe2597c8f4adfb03a351bd1461ab5bc06c18abfe4100060bcaf1e1fb0fcc26e25b783641e31259facc2666128fe25578148f329be81af0c595e6573c0a86a55e1ec56b006e1d45a6f0d5de1a8c33250e8547e137bcc271ecae12857956394551ef4ca893e889c88dbd68ad7ffa45bf68d68b9ae84df8ead670f74ba3f0c97ad1378a7287ee4f4ecd558a6a254c7e9a7ae150748ef8b0ba4791e157ea5194975e7afc51732f79f94bb67ec7ed2ec98d4d30be6a69fdadc499b847e11e45a61e26c234ea77bc18d3c78082ba3294b05710575b8caaead1fed4febd7515a356bf02731d8ab62e0f0d3b14ce2437988f2f6efd76217d98987b5598cb5a49e550f415c4590e054541eb6b155551ad75893b14bd6406616d039c5511fb3a074386125d45e60e8543e116be82b825197e2b71283c8a1d0b70284a5d9ae288a88fb42b1ed4866a6d57ae0849696da9d4ac58f166a55d39d286bc616956fa2f21d8b468430d4bbbd2acb42b3faad095daacb4a176a55d71a123cd4ab3d286a214b2523d6b8eeb8ffaa30a352bcd8a50b3d2acfca842cd4abbd2acd06e4d9a9120aaba9a9127a2b8e3bbc63cc888dfa8705aa4ed37e6d98bcb0dae93e3418d279e2c261b8c6ff124e9eff056a473c46f2fa8a4252fe1ab5d7684e35fad95223ec986636bb03d6d3eb49f88dc28a5efad5ffcd58cf8c3a77f59cd48862f638c1535e1537b8bd9c4185b4b5c6a4560e0209ee5c7864d30769862dcf094e2ab87fee64350e3e91ced29f62643890b8787917ec3a7f6d65b950fb125c69360be158914074cf1d595fe6b1fe9df8063608aaf20cf846913eb361877013cb4bfd84f6b3cb9dbbfb8d597aee8fbc2dae0dbbcb472be6d894ff3e9b722ace957f12bab8a545694e256445a6ca21e7eff379b1d6de67d2bd237885f2ef432d21dec87fd7c2b42dfc2ad48d7086a453a47855335233b5ce63dd58ac0e81830b4e880a2e3c84b7d1d3d22582a35d6914455f5688149e838e2372a1c4851154ed3f9a42b7a78e753ea217c3d1442874f9bedaa877c3d14f744779d1c7f4a5f478f3fd58104564f4476170fd2d1e303a94b4582fea2e34886ef8e61e50edddddb57efd4d4c981dfb3752039b9d3fe78e9f0c9d7a42efab3b58e2379bea3288aa21a3ec1f7cb8732455114f5d4a52d657440e3979f4f5924d6b306f3ac7d0c840fe1bb8e9ece019f42194a581d978e2399fa165bf56879884ff0ab17b5dcaba918e34718f82abd88a5087fb6503ebfbed598faca1bc36f99cca9187c95bae1cfb7f02563ad70aa0e28f0da272e13ffe55a282e13bf5d1bc565e2eb6061f40975543d5a9efebcfe3b1ae98adee556df725b1c7b108c18ed4e9b89df54948b8a92e38b3edef776a7d958246de67dc95ac73bf9bd8e2446d78a4256d491c491dce82544f14976cb91d49144ac2e0a4b7e6f91349bc7a4cdbc2f95ac4592a97724f747a15cc1af2fab1e1d5f4fbe5c8ea2cb7ebc234219fe63d26c18d39144f5153f26f9bd07e94842c711fbc442b14fec131d49740df81204d33760b12a0f0d6a4af2b394c58b06bdcb515ebf59a6e8141ae437284739d9f3b46aadb520d53d59a2d6a4544f358b4489aab75e48d6bf543428532db4fdd55477c3a7ea6a3a3914a4e895784ffe44388aa2523a07f58d0ac15839aa3daca88f7f491a94e1c788638c55ac9e766df9ab77a474aa6216f58efb360a9b5ca8a752a8d62e1a24aa7a58f5adca87e83dcda6f990da61fc5faaea30cd87f2a6f0f5a392b00fad7062e56997eb47dcc769ed17ddf87e61cbbd6abe64b5d692dfb6dbb2e8946eb05aef35577ca23e7ed5d2ea1fb5623a65a779aaf7bc7f74ca8fea45f161d49a5d8ed60fc645ef64f8e8140bd3295d037eac99fa8a2f47a7740e9683b2f7f811efc9efe994a604e609c9fda79fe50a42f8fe9e1c52081f7ccc9d27feabde07f1dc3064f0c09e605555ff143e75c78daf16553ea8ecfd56d543f455f5deefdd380de115bd74b15927c7779c48fb917c223d11eef7821f3fba1158597caa4f8a7e44c3447c79263dcce53c18b719f78d49f5491062d3e8df57efdfe2d2837f11dbdc188ea611330725d2f711b7a482bd1a89a4c29ee4bf372bed486f7dff9e5534f68b12572aad1df69feb4dfc89ff789327ce5c84c2b28bb10e45398546f2f3445261bbff31e928a84aa56b447ce948d18591ab4591db372645174472fb4ed24b2a155983b2fb9d3692af46425df7139d8c3f67c44d226936484a0e496eff1c6e3f530d94cd700f895ba2f9f891d6939b115afdabb41981d296e25ffe7364b5c012663314bea410fb2f97d987a327b98cac7fdf125f96b812bd9f7184e58fde557c8d842c7c1abd1ce153fc97e5c378346a45ea68341a8d9a9127b9b43469469aec80b163c497b3ad48e369459a9126a35664d48a34234d5a91d1a888cdcb0b7ef911be4a30dff8b23198842fd96620be94b5e6d2f2f359b3a1fee16b460e223e9bb287d5994deaadcb78d00fc2055f5248509b919fcbefbdbd8c47257a7b2d2645224b86002e239b6c465a111f12143436a2b36a686a6cc40721a4a9b1e1227c2a9d607b78d9fa8d8f36728ccec577b4b27e5ef9d4f5a8ace2213fce5bb11569b3a6fc5955e6649533497b4f5c939621761dcd86cbb4caaefa105f3672a31fe13b74ecdcbb4cf18951575f6e5f539f7e9fdcbf4c7110cf97c3355da3d9a8e91a103e1a1b35acc6c6a3a9b1015f0d8357d64be585b45e2ecbf8927ebd14e230592da9c6b97619d5b40aac638c113b9723e6c90efbc7f8d72312d9cbf833cea7bec2978bb3befc5133a312becb0c9f28bb24bedce93debe1e113fc979953107b8c4d72b5e45c3fbc403a486dbfc3890c794486bcf7de0e119b193ed37a88abfe7275c6909d2144a2784388bc9d2144a218f2de1b32a3d403dbfe9ad14da487fc583160f2c488c913a3d168f46c099396167cfda84f3cc1a487dc65e309b6843dc164f4ec092623b6843dc1a4879e188dd8e889c896c4674be2b3254b7e727cb6248a1c9f2d61e232f16a26f96af9be2c268ef4a8af9e0eef493419c236920f4758861296c23415be5ade7b9745f844d9175d237cd1e47859f1fb89ce61f1897a11854fef5f16e17e827ab89fe8275cf50e3b9188c2573b974ffd73461c265c3e5e96237ceb9746673f4697f7a2a78e09d2bfcb4858fa8cadaeb5d7b95c79fdb95cd2f7a544ef492e92548af1153e64f2049327ac8fc2909f33723129113f104da58580682aae859a0a10eeba7ce5547421759f160e8b86c5afc407a2835ac865e2d5425e552d04f125473f5d30fc16a4d1198a21c594b62c253ef97c865b53692a55256a2a5428528e4fb5cc8f0fc4c8d4f5a349d9e113f5f3197d75be75996869798a2f528ef0564cd8dfe1af8ac0e85dbec5187f47a3b08a2e7c265a7e87d358ab0b9f82c0e85dec6da1d48dd665c252d567a88ff3a9afee45cad4bbdceacaea33f3a9a75d5deee85b6e114e58323e13f6e3c5612ed333fdd5ad2e13e36730b1f333dd424de54750503643054b8054d0f3b8705a342c1c8b90734243724a3bc4a373cb5ff2b2199632c45795a497ff625f5e42f82f97745d2e63332d97b11958f1fce85cb4ff243ed9773fad9b33baa12ab4eb5095a12a435586aa0c5509121aaad25586b2cb3dd9e558aa122414546528a8ca5090505095a1d65325a84ad7703f449b695f354b2dc3c1722b95ac6d3d6dc6321ccd839af6f557df33fe106d24faea59353f8ef0552a89f0c397b5f0108db506a1e4413d8c7396f264f325b6d495a3dcac5d34435586aa0c5519aa3254a57f44de32449d8331d2489d1cfa34b13e8da5ce515b5353937544fdbaa8e47b544ac349b9533a3954b5a4acfed592b5564dd6b7bebab5c2f79555adca32ec954ea153e89426aa7cef9daef8ee8978f1bdf732c236a9a7288aa2a80fe227fa8cb9536f7d0da22406d22a4adf2de9928af0bd7bb3e4575f2bf9be55b2caab94a54bea6b6d4f6fa5d235a829f1d59fd90caf3a3641a493b353832a965787aa5015aa542a95914e8eefd4a08a6564ddcee86bd0a80e8de855859c88c8898cfe6a3ba26be9b3a25129535baa542a954aa552a954648fad522727be78e574510f19e5dc6b2a34ff4d89fd945129f1839cac676ee41c951247f722229f2a1f2cd18b22359d853b971761ef4884ddc85247f1f5a3c617613ac5ba55a5f8a2a68431925ee40248053b402990029402284028604259b5d60a67ad96d515cabf6cd4d4748dfa229d1ceb692a8450045f545da0652357e72c1758df7d756bba46a514c4d7c43535355dc3e16a1b46a135f8b4b539e19c71eae4b0f954caa457628c5468cafa43f43552cdbd65892ccbb22f8a38fea8e651cbbbb48c2c96985d0a06a5f014521db9e4c2ddbd39276cf3596633c6e6cc99338710b6a7f136e7c4978d39e7a43fabfc4a75604d0da9422324a1adb58f5028cb640624240a1420c935990109c1a2359d9c965d84ef78e864e97472588c15cb3dbd6799b9dceefc5d1dca5773f18a11fe55638cf2a3c83a39be7a3e0c11fdca554a9f5a5ad1af94d65ae9e8a9cb3bbeac8b3be9455424727f97db7245f8b2f08fd2c8ab4aa9899d54453e7f7cb23b1aa493c3a81447afd0204a83e2533c979cef3ccda6777cb2ff552b16f9b4bccbb797b98cbd5cb6f8b230bb125f958a7467d6497ba74ea153e8143ac527ee445785f2d5be7bbe4e0e11be5383e494154b6eef09315785729392c1a8bca7cdc497b27d0ba9ded3ee9747d1c8ce97514a7cc92c7ffee8328733134bcceafb5b578612b6c23f1817393a911fa51ca9873d2e9d1385af763f2f2792db97deb7af543a878c0f237cf8a2d2355a5352796c42169f366891a988d9c892852c80cca4c80224e4483e4066526419ca9451077572d83b46e3d86d1942f6c3a00d1b3810bea4587a76b8a6a6a686b673c8846c3c51b4a839e77c133239a75312421bf9fda36ce4f754e2209e4f7d55fc6c521cc45f47d1a4e91cf32977d998b6f241f58baa1ef59be5f9acc68655e1f4ad2a9c0929b53a3944d038fb91f7442d84f3e5d3481df2e5f2d32db50ffd276cb1f8f24c6de4e912525c23270521fc7e46d339fa67f7e5f2ef2f1b99fa7a2d7ca2be06860bf65af580950f35c3af090155e150acc6cdaa47fdf9ef52f0bedfd1ea65352296614dd7b09e460b9be4bfa70249d4afcfdcc3161f9aa26bbfa489621e9489324df726e93a369006a1ab34a08305898a77503956fbcaea32ef4d35a8f52a517dfdae2e6b03b898932920c9415a863e7cc9122574be00e58a158ce189cf02ea7bc5802a036c01d58b904300b1087280a2bdcd4c468eeb4477576aad6ffd86f575875ff09f754db05a39ef5ed54f5355df44eb9ba8faa659ad0724c7820fa465f8f542d104b2a7faee24ff721f5975d51c1574961b27de1341ddf8781140e2a63dab807801a50a1190805285083d37a22985addf26136cfdf661c820f87a4ff5dd5351b6be5aef2a1cebebbba69ecfcac9d6cf7a2ffa17f517fcabbffebb266aa24c70bea9e7039293ab57555fc97cd5872feb53d9c23fe40a3346e3297ac19f52876ab8064ad1a79ea2a4ec9c8441498eb3524a210e45caf45ed55353956b4eaed85fee2feba989611e543639cc83cacd68b43759b8359677b4ea768697b5675dd17f958ff8145fa2778cd1a89e311ad6d32bc2575ff4df43e937aa7bd1bfe8cf9f150ffafe953a496cf211df7dc4eebbea277465680c5acc270c4a745f62c2a5bb3f3342f636c30b9f19e173a5121266a96040469e90fd25900b9ee4cf0cc8481399ca0cc888cfb381f3205f325901535851032b8a40e2481616e47ed62f73a8f284274e8840042b5c6102e76eb02c84942390d203d6ca22debaf1f5dae793b437fd2d32f1e8ecb9b3f51bfd8c75c3d63debb41e019b1142de3c1fa411ac83206a577b77f7618253f31634f7dcba4c638c316781abcefd559d734f4ab7e69a6b2d867f6badb52f3ce7accbb8ab66079d5b036516707f9ddc7c341c1e59c7b508666439d9c39f4f2164f00a56e2eb337bf9fdfdeffac19c07104a9709b285f9f025b391d1a7bc143e7cf8fdd09f36b1cf3bcbe5ef9154f0ec99cbc8fe7edd563c89d1a2836e10e209dfe7e860940e9a7a788847f072aef6e505af5612c9060d00dcf042aaa436544b2a954a31514ad59274d0010d4132222ec8cab8a0020a89e4dece39e7303a27ff491c9fbedaa2735cc80ac7bf914a319a50e8dc7bffde83ef41085f1a1e8c158eff73514812d1932cdaf053f292120738594b4c8c38ca0aec1c0cc7fcf793e1a0feb11a14d21a9108085de7e960842fbe076184d6c1a09d8b31ca02561d744388a57552fe000cb55aff27432a3d20b7e687216638de972ac9416906eb5c6686cbb42d6c7fcbcfbd6732d145bca3554bea7e3f804cb2d2cbe448a3438e51ca2bac94b1f892a1b9682c7ce9306aa1f0f53f341b127629955a308b3fe3f5b2df162d4a68418525852e3801820a5c40865a62821d51a968408213402811810e1d4a275c84f1bde7b670630892792fb2bc480a135cb70b8293b59bb9293fa49a5d1d72b2bac7921396e4642db52e28258f27bba7a521d63dab7a2871ef9408793c2fc6c0bca083dc2e280487fcb0fb11697139213c9e762206153c1e4a0915315a7cf0ec61b1af08ea55f00121428408b9b19e527ae10ded4aefbb7137ed86ba4aafdfdc54f752e643242f2b6307d6e443747a6f33cb2c5f0f9b6c964fbd67b9a50f86835947407b9aaffecbbe77d8d4832bd5f7d11f0daecfd7cf2032a4b59ab354c2d77beaa97cf78fba6eca29e56756c9872d962d0b73c29ddc375835c05f0f0ee3e6bf2489e8066c08a8a23f6a700e3b778452125113c7d3d500d9cd6477fd872f0da1a38b1f866895457951a244d122424c0046a3bd080b120d6fa7233b1e20afa4ecdc2fe9ddcc5d3f48b93d2c9b94d6ceecde7d331b9936d3debdb45ac86a65a48c288bf225f332c4249824a44792d5920e8004942a8e947f90503f54bca84263a9e1b91ad0294597cd978cbda2cbda0f9a2ca519ac94d5ad918a6f73fc7965106fe6909dfc41f32269b2c38e72a7832827a318b5b16e0b19c4e79743962c595e93e2bd5892c1a31c4b645160946936d5bfd7a1d958ff68da4c8339c635d848d1cc52be7d635d03b09952c9da1d7a6477d9ccfb3a939f34800f364b0c64d7c365efa66510985f962c59e408208b22fd49014348a9c8c7162745ab8f2d5bd1c77786c3fa786bfc672f6334de8b6e331aefadeb8cc6fbea3a46e37dbdf43df57ebe77af4a075f8431e27ef075a0ee0495802eb6051b7a81051303dba2a24a6043f30a134260431de478726b4d487e5f02b2ef0a1b8280dfbc4aaa95f49eec2cb4f6ef3b4ab3a1fee12052a6a9c1bed6bea7356bddb78f92af1204da0d857b480da5c6e29c0b22f393d9b98ccc8ee711a1b9c85ecec77befe4b06d4269c87b9145c988ab116957b87ee9803820ae9db3c23a07ddcfeb847b59f9a87a70ffa4744e3a777a6bb0fddcfb517d302b346185265ccdc17bf85f94c12b1f1ea30e6cac6587db0a4a4f5e9021460b917683f8b02fd66488ec647cc094dba1ce78c9fd65d3b92bd639db6c802841ab2ae590c3c439a22c6c3f104d6601fb883e30b0a33d2e723b396c73ff604d442d00fa026b02bba071f23d8ffe487487c377170811f9d5fca0cdb799e6eafbe6a2c4b693d5bb4f34ce072eb716c4bdee7ef0fd022122b7bb409ae432edb5f66c3ee9dd1762b0a5182ed39c78efa57ccf2a76914ce6e53876380e421cc4f94840962c59f273d9b98c0450114b8896c8d78ffa8305493993b88c733993bc8859d780efee7b78af89244b9fd944d7703f397a72f4e4e8c96124074f0e1aecc0b303cf0e3c3b10d961678723809814ec79739e18e1f3d65afb4ebf4e6c07928e7a7f2a2f8f4bddda2eb56e0f96adafcfaa0738f716b6debd5559d8c403cbd6f760d9c2d643ebe15b587e7c9d7ca9dfd1faa94e9ef747294bf67468bb14ea71081b362074d04167c345dc3535d20bd6bf54436aed052baba5594214233d478c54a12a14254afd36b16452bb5249b24409c557290a13264cba50a9542a55a80b500bb4779cbb216890cb441ae49e63d9a7fb7699cfb80bffddaee1ff2ec4575329d97df77553ba86c3ed83912c915bcdcda6e4334d4eb1de1a9dd207e81cdce814e7a0bb74fa4db10f6227a10f28371d14ba46598574823dcd196955abf8954e5c43318a925280827b3a4829508a924ea0544dd7a0f8d157d3359a86aab91eae7199b6a481cf4ef78e8b42d3d8af0af6ea9e7e429c95be173f3eab68ef68cf6709243e4b20614aa2e0dea3422f8a85dfeeb30492244a903cc1761f794b2049a2844ea141eff5f81ce939b2049d22a9148af55c354ad9de764fb369b57de8149f2f5036e36a3ff1480e1fb17499feaac254192827580624032d320392024aee4c65f4586df5d56fe054f2f68e25259dd29a74be9473ca39e794d6b4acf6dcaa306545f61d86838255ec9eb32f90d62daa2caa47dd3fe9abd59db056d5f30e9f735638f369acf19afaa7b51f25f327149b4b0cc7d5d5ad9f438be97ab6f85905021cfb21e86a55d2ef70da289592d297314a495172c6eb60155415df126d8156b5c585663aa282bad496a7a49a430ebfc3278ec57179fad6c521c54b39a156c5b7b56833f03b4a7b08f35fe565023fbdfdd36c3a8acfc028f9d17844663b9c4e27d34957a467158e0ba59c58dbd2f23bbcb2e2c5ef70d1164a94130b330392a28acc3ad31b6abcd593aa1e9e4d55155e5411079a1910d00c783825d5782928b61fc6ed7c43ad807486f114a6dedb43150e09d72858abaa3fe40929a6fe8d8f83ad705cacd81b3303026a81cbdb2b7aaab2b8b110dd0ebac2f028332029d4f0a2e670e3df705d2a9c16dc416470a1326abc141556660664044ab66ee7d912ef084685f3e2761edd161a838d9f434cc5a3f38ba730ca50ba9d65bca880742e5156d8f8f1675411cf27d8fe0a48e7185f01a301ff869787240935d5787dc76560118c067c7a85ed215390cb08b90c7c1312f6e5e508fa2ce1d3150f9ce953ea5a4f71ac70220e37fcfc1b280e1748cbf46fb8d844f1a4d6cf6f31be738b41adb7dec2b846192b9c48e5ed232e03bf7b8044fa5446a5ee7cea186b8de268ba9e615c965986b92070a4cbb20bcb2d4f65aac47058a25abdad2eeaa589a239991abd7c7a4d23516551938f3a7f5296c2a61ea89f3b9cb2f66baddfef52e10029311c254623a632bff1689374c69e53f457f597f517f554545954ecf9a256773ac132a02564215f0e830c793036648a0b99fa7abb65933f7fca3b9f528a2f2132253ffa30b1f318be0029b88c8989c12d05e6598513c4cb85f99818dfc00ef6ea9d3c84dfb85a4a764f92fd7be7c76fdccecc6dfae66a23d9bfa5f80df7445cc6e5bdc221fd88c63429e6c2c0bcc0b80a13f3f2313030306f7a817131d5fdcbc7dcce1bf01bee656ce810e365084006eba8f7ff1996c8b6bcff8e05f80dd2fbf3d0ac73e087cbf81017dbc0cb7bcc77f6ca474c8ec1971030bfa3c15c0bb8cc0b0e026fa0749b741b8acbf8bbdc6eb9dda47f5cc6df5f749bc9edeab61297f1afb7933492db4bb88cffbcfe43349bde9955acbf5b20880d0461385a48f62bd91b8c5356b4ec3e85d49f18f4381e2384a492212b70219301c50089bbbb8e10b22c81892b8e2045880d373d061654e1640867186205153f8846409e86c58822248f114a181191207978ba797672f7a4b206356c610a265850890287228a143103118420451137fddedddded3ca057cfc0766ef712a7321a5e33038281927c49c9d8902f3783368594383022055b7c010b1e08a10d5c2c9942891159fc4891c47f204306518c78c10c5238020ade041028385852640564d84293241cf652c95ae7b05b9769fe1c5029bbccdef5656d6a04ac0c3122240648602209346530c394315861832dd070e303185cf13c34c04900e48bf4d95fc2c005478c21dff083295150220b32f0e0053797cd2d0b4c40d14211292d30a2c58d0480681f04c3d1b93d0f486eb026f0c020b74ac2c2b626cd29f69ad14744c9eeeeb2888c31dcde7b1fb1230579d9c1075d0ef2b2732e8636044ade2133a02141997a754ca4c0897ed84837b03332531738c1ca1732633257e7eeaa07c9428132bf3102984f4c06d52106a93e9bf18bb60ffadd1c5018827f8ccee1df1f44b389c15a8cd62f993979411072c3977d72c5c82d5da33f860d2564068d0e1efc0603dab9929b0565576225468ce204032aa28b7cd9c80d5444155072dfb8e641f88d8b94fdc6d592fb1b080d3cb973ff06fc863391bb07f9aadd5a4be7c8340d587e6ede6537d42b4ecbe881b5f9718c9d7ed62f5b88f31705653996011d514466402fc06287cc805ec024031df1932f9b1dc8054f808e6092fd492ec5c117f864272b35623f5fae56a10751aee8a00822536e6e6001152ddc40c80a1729b871315091c4053b68c31558b070a3431114a0e08a14dcc00b46dcf8fb165cb870ef39dc5544db2a1fee9b74594311a4224845b04a0227f68c31c618936d863d736962d9146c7832c51ab4f899820d4fb2cf7c6a15702137eff3bb26f7ef6f1eded1c1699a8cfb9bf731b79dd2cdfbb8636fde373c82969920c17b7877e4cd7baf24d0defc59a10d6de8a20b972c2e591ce6bdc7d863ec65777625eb428edf6a93410e02bf73ab7cc464882f21726cf44908d3dc79733242d7e6a4e6ec427e4fa5ad70dc3d7bfe1a63ffae699aa429fa9ba0bff71a8e6bd73d6dedb9668df0e230ad8bec5c8333ac4b88ec70dc02763b97ee578bb0b994534a11cbd26f88babfb667cd796bddaeb36b8db5ffd698738cd558971099311a6df6a38209ba0761bb17f5d494b1616bad7db7d6dcdb11e6dcbbe047e810c66ba2a66c17df43f9e8b7dc669c0909cb4832b00e8176339b589619743fb173781264cced65e5f05c826d9901ad008acc5ed24973bb930acbdee402ebdf546e4fe38bb05ad7055c4a295f5febd2e1017c590861dfdabfdd357973f3a78cb039e7ae391f1e76957b56b1fadebdfa757bf79a22e641bd09f69b5c3f06a4db47f3c7fc9d031c63ad23bb0dc167335ad6e9c44677b7e2e1be79766ae091dd5bd5a300dededf991a7336dfaf699a247b53343de64072b2bbff0e6fd9fa0df6f0d9f7d3d8dec7ac7c68cd3dead7f9ac7c684f931dff93d8356c42e78f943d5818329ca2c167f05df05fd679dd4b28a3f496da4cb3a1d55d4112a0a8ef37aca200bba9f009eab39bfa37d52db599f6b3ed506a0368760a4b63edaa07fcf7f5e6b82782baa92ffb45805512a80fa588f5e9ac3dbf0b90e7ef708981749659eff58383b07b87c3181d90e943966f63fc1ae195adc7d22945253d55e1d81fcb32bbf1bfa15565cda6ddb06a5f85134d2ec2e75c5ff94dc5374d93c737c9e85c7ffba86abd4ef8d36bf2d711c26e68ab78b030b029727caf781420c777550f54c41f5dd583264becc3734d3a95059d5258f72d1f7e96f8a3eb12501e2e6a0a010feee1338085600811e490213ed1772f9a4fecfb1f7a503fff0795e9d3ae7cc4ccaa100109280d60558880c41332a5a83ca9af7c90df20453da4e0bd260aa9ce71f22fd33349538414909c1ca9d8f1616c950f49b51c9ffa56f54065fa03c4d4941fff9a00eb1c3b2e41d90cc6b26c3b98fc03a6eda8444db7853de9108d000000004315000030100a064463e17040d0622cfa01148010849c4c704c96c8e328886194320611630c3000440004404668860d0254a190779a38320a0b241e3f7f71e5218d5062fb260c49d7d85a3ee73d37ccda8669e3ffbdb8cd4560db8091882ae9112309089a22bf2e7252f8395a0a9069c2062e011444c21b8bf0f24a7d2b197f8ab61346c00dc47d7ebaa95cc3ce0f146c06dafcdd450eadc0cab22e73c1f07c6fba19d3fad27e07727913543261e2df5b1e0fe5368fe2e3c1536d6840f57be182ab4b4d39aa35c2e2b797f3e752485a20539a9cdf6ad7ae61bbe6669611c2d883a0471842f1663248db9def9523cb7da235ae72fa594b220d3042753decb4e0101fccc7728fc460b03d81da2ab40424ece586c95bc889305a3c78e4efbcde9231b5f0c05b9cd13bea0f7af0766edff1b6045bfa9859cd9806f21831e88ca1ecea34c8f333e1a00942d6af04c49744049c9bfe9ec30f40bdc3040fcfa425fa5d6d702b8cb1436b287931117616925563525cec0cbb498a68dbe820075c4595d6c0d90d0ec4988fbb3eac178410ff2bf306821eab91af1024d99f22439242ca90883313585c102d85ab65f124be0ebef93662399a974d25c4fd27e1bc8ec68c84fc081c37c63b26ae72f7528d3d4b9e9011d075d0319e10faf3eebce241a2d46985bce5128d9c78d1e8dc209caffb73926e702d13f5eae73e52ed5de611e3c2f13ff38625b285a908e37474352e798f2c267f1829a0dd2587b4f8efb94fc6c7ec087f6eeb8adb5c82e2c3d4da90831082891ca516ef8592abffbe86ca35fd43923775a4c4b774bf5fba921f094c7d1bd06732175681575737413d7351c2b5092f45dfe71a2cdb6d90f882f64d68ac0b6313859fde3e0dbe5ddcbcdd79cc6e1e72b75cd6ddb06bc36e1dc5c8c7d3c65f017410782a2b44def5d445281bb537e74c51bae542c545270c77bd1fc227cf2fca655f6d3e9b37314d804719f7f3410350af6b456a3cd3a1c1254fd326a194e94877b741779ea67149c8a510d43c340c5df61412ea45a895ffb008c67d2f71ab60ffba429da1c20dba2213f2b9c7cd302d4b3cd48307aceb3157b29280b69100826fbc69cf070eef4cdd8a0802e0cae022cfff01093ad850ff0308b0305453fced3640cf27734eb8a5d1705d37ff29f9cc63b5b92012ba798d3afc144073db2c26d1b531ac24c76a47661dece8f26d01bd3040e435917b8245a5f87276be9678430a5870842817033d7849509de1e6d8e1fd2dd133fb1eb436679329a7015dd86ff38e1d0ea0f181688c2dcea978a7f1e873aabd54f486737dc5143e3c3ed2e3e5eab133774a908c0cfa49513addf3c008ff3b8a5925c2a71ab8c32b2eb47bcd917ed33ed62725035f96d419e64dca2af869f2b2d30f98c60c9c3bef35411cb4e3cd5a0746623ea724e8bcaeba3788c30b3aaa2cc0c62b83cfcf92ded68cb991398eeed9339ec080813e99be0679ed323f58e5eb2d98f17b6f4f01ab0dd9f405786078d62b68c94ca1dfaa0955053870d8ec137586bb1f8eb14c485a2b017bf7aaf4d8550716bd7b2412dbaa1191c37d403944a95f6a5ee441b9ed60cb809206cdf68b31005ffbbf9e2908bc2f03bc8ab4bcfc5a618493a325725a771bf93eaa22e6a82a934416d60b80f3ea1adb0387db3552d3bea595097ddf1eb3f725b0c43c24593788b9014af65820dad4c40c5c0bcf03453f84b07420e22c9839dc1323b3d4270a78ba2b0adae28dbee3bd45bf2fe1bb100cafd4b9121a89b2320dd3727ca1481cefa090d50dce9e98e098eb489d4338ecf4632de2cb88ed062e022aa7c626128b994e2a8c522e71ac85695d5edd32b37af904cb13ae4e2d4b2f6ff1fe98c838891c50b2f5480069ad80943093fbc2b5052b44b84d1ae0433bcf90778df979ef63e501e77d09f97cb5bf992900c81f5b0eb065e25dcca3bc09030dc862c39d4062ea9bebf390d4dc358701beb612f5ca9c1ba8ef2a5f7e7dddb161153e00e8fea2fa6ba2ebe661e5e55ca3482b7be307834eebd89caa4d58a6a00f49a280b821ade005ebd5b3eb75eb3303205393ac4396aa4fc1f30093abcab27e0568c8cb65def05a7b7d6d818ddecc355b39333aee1e2f5f6155d3d39b7272d6c24f9e45abfe382f1d568c86f4d64b0e9257c689866be2d67dbc62ce0ff9a941df0020abfdf60f9cd06204416d790037981d68fb07d48d364890cebf72bb1298945c7a3c5262ee97d6404376e0bad3a9f43d503c0c3cf2d253f2c4efa30da73adccbad54f0125517f5aa9fa32174285dad52e4013e71405b8b5eeae0bda69e4d853f84e89926d12822afe47f4096c1e0049262755daa57af1bc9c0e8c24737d93012100e057d9397c780078351fa0181651a16484013ace77161c48bd5d3d3abd9fe427b9cac6f5f04e06a608530a2abca1574653f909312eb1a4a514295c24fa899ddbb5e0c5b17c9e315c6470fa0bdab747a06f21743b7ffece24f0b56d8b05ec71fc4f816d2657c486990872d8fddc14e44fe25f497d1fbbbae0c36a4d6f7113b60fac320c87146dc9995fdede0d38408cacc2e08ac04c98c7ce1f61d60e2b17efc522d5e90cf9c517a1181ce158759c6e0360d1cc1115b795bef68945f469357fba3c521cfec1d5012343b984af47f38e3c92df210dbe51d37b6f755cde9013c30f437bfa8dcf0b0d5902a2b29d2c16f9e509e5a2924ce07f09241a56200b3542c74a7076615499807d2cb612d8377e36d30f222f0b7e1a7c279191e7b1bc0b6765ed5e340f8838806aa260f44e65e2b1bde4c00e56e9c537f1b0db9aa53158f60dd20fa29dc890b2f99b19b2bf65b0b522feaed49b1f37b18541fde161959f250b170988c1e5debd18efa6385e319125ac4280c994f87c03a3b088e7eaf02d04c485edb4900c0eb73d8c23485b2e417fcb3a2d0a1975d498466a07ade753b06931fa237b9820d3108508ab0d81830892a725d90e5235c5029026f66b34b38a72e270b6c10010745636e31fa030801b3117d75b7bb21004b77c563404bdcf58d32b817cdb86383c049e7ab41b3c394a8b21c45a017cd8e0d170a991238dfffbe88120ab12cc3ad37d6fb4563f74e224768549d683ada51f4c9ae918f13420548fad531a5d5351d42ca43fb1377ef68e653f3837a93c6d4600d9a801d2c99ecafebd8a9eb9d49bfd6c3a5f3ec002c5ff3094c4770e5a10c31496e77520eac6c2851f91e6efa8615f2e2b9a58f17c252c3ceb8f5e6888f67e622ac11d48f839170c91577e19345497e3cb04e4d0edc397135fee6f75867df4f3fa47511748d7c9d2ffba82264d122fef13a819852fcffd841babd3a99ae39116b6b0ba7d402ff3d5c432d3402b223b79ac99e8151ca30b3c42dc81abff94adff721b10fded9c1edc053f6c3e81a928d9d96ad5615f7457a19449f019ebe34c0288e0d1e3c9e795869bf6da771e10e40f49dede8fec639cc1c522fb01ac2b003d2587a0a2a6abfaa7257dc64f5e62c970ddae89b656a6f67c6245a691cb4efd65a4bce6eed20ac31033840585451eaf29facab18b9af71ab8d43476e51832dfee00f8306800c240bc5222bb5feb90d88e056d8dc0b65a3ec7f3995e9d5a88ef7b87111c3663b227fd72b9a50f4a7467522ca296ff0957a5d0f5388ae3e0fea08fac6110c9902ad6f7ef6a90ad3fdfea074fea0ceee4181610f3a8b3d903c7b8b53ec7440ed7849c1c6e722db6f2d830ef38768d9b4c626560bdaa8a4dd1691c1a9d0160480fd0f6beea4565fd09839d94af922826ed8597cd91b0eaafe3688024ddabea024e7050f240c73003f7e9cf02f014ad86211d7b7d3954538317e2ffc6b9e6d5c43158f80ff0420e304e4a253854d70275479f9945a35115facef03eb7d8ea9e46cdbbdaad178e252f029c73b6566f47d846ba13a72d5d4033a53124b34840df0cbe934aae8dcf0b0961a3cd4e2c356beaa7818cb6b86fc405044d6ce1b7cdd0ec1e3dd0b81111566a37ffa8f0fe09f2b282e0927728bf526ec94cecaa564cca50ccbc5e33d2fa7df79a71eca8dffcad8e1ffa0df27b9233e2a61d77e9f1dd3239acd5376479aa91e790d26d431e9393590e1ac6039b0beffc5b3a405fc23a6351854dbf26b97fe0a1d73ae4211ef5a2f0d83aa94b292424bcc5b9aa564503fbf5ef7c249242d9b45fca1372849337300f0930ede8e68a14df2928393339b01d927522593b162b33bcfa0ff4fc2227892ec7e3eefede64076ac380064c132e177fb886efbf181b6acb31f40f6ed16f1d88f8e2b992828668cae6958f968cd841bcc35c52bdbeaefee751b5374cca4d3f868962c888dc69d931973742b2dbc13f082f903eb340c57563cb080bab3bd83b19628d99557c3fe71a2f7c8a9c1be17373afb9f99a88fd6d26af05141343ee38db9513742f06d42bbe548b6c3be9e6b67353f6d9c88a1f8d5a278869513e7afd7c039523e220505718fd2fe1def05cc254cd84b8c90646c100ef8ec913da3a4f696e59a7f860d228776179e6d06e0a258b89c6c046a1a1dbea838d9b8c037d417012240c8c0e32b4facec1de8e3402bfd1fd59d94459311c51077b6596f4969183661bfdf1e1c5143634f93b9fd4f3a2ec7b8b412552ddfa2c83c348b74d69cfca14d6213f2599ebf499f4303530273426bd8ba63757bb6ed8ec809b761a27a452d68a973aead0067e3390eb6cdb4d80a09f3545a258ebce703387402d285d58a4713fe01004a9e631889196e9d469fec808749d008fb8f37a597b29ed3ae11f55bf98478fdaf55ebdc0c98cee824e378d1796183c8945921c80053a637ad2c56af490ca1e37f02be2297260efdac2a0ded4c8b25ff945c3a3ad206a02bb52765a3b7a478595f04e1db7c8ddac60dfe4002b0521171d74722d34dddd4ceb2da8191232d9918ae49f0cde9b6a16c4f0d5154f1bc883bdd39d0600675b126fc6470bda1727ed3a601e950f3105fd2eb6a589237b31d6ff27d82d658c44d1783da8fd39a584b1378efc8dd1bfb2bd5285cf295537d37244bd3c19fa5f94d945e51a43da0cfa8a11576af7dcfad3ca7fa331705f7b5b6910c1c4328152584fe4035d5e049a71ca0d585f39329dc444f21cda5f63d86c60c7006e4f7a19b12b8b4f18c2070d19f2023e632beb6a46d5da707ef2a033ec6f21ac4f95563238253099e3ac703752445a332c91d9ffc9bb5e3f5f81183735ac6776e6573a4c32487d3db02377ce1f60220e9b720a8a5d0efcf7373dc0ae469d89818a00c191ed860b049455dc63e97cec840f93d48e3bb3b6ba281dda0c079b4c58bbb0e37958275a48981f0f6b728e259260a65a06f08c9d96f8604f1a1cb1e321ea75621a560a12ce527dc0d7657c3b3a41be2446a7f28b31f69fce28e468e9c34db7adfe888abb4e569158bcf63dbe9c97b7785b83f564425815c768d13aa5f90e78ecc3c9518b1b4f90388fd30a59945b11c88c39e124c5dd6129eaa78e4872c106b342c7470408c14536e22974d7e7a2f92a20fb2f8541819d04c72ebd840130d887f4466a2ca557be00a5283eb7dfa7785813aca0cf35db011a669aecaa3738097033528805adbc50dd096a26d67aef6485efb26246efccdedeedc6f6bc2f0405a2baf2a0ccfc1d94ccc59f7e457d55575b18bc453cd5a11b63a190afd916aa9130ac480cd598ed2430babf9149a2bcec4e7ca40870e9adb9577d223e6c80c1a858fd4910a3eefe0f74e4e7163ee41448bfbbba3cd1a5036e21c7ce103319b0cd0a80c13c53585caf684292da2b85e840454b97ac40acf5708255fc6a5d7f107cff151998ca047db21443392cdfd3648b7b1675ee18aeb200d8fb1525e87964b2a17a8852cc43a93d69090751dca6eca640fa667bc4189e307e130808bfa58bac699cbbb4ec8cfe871dc4f2641f1a92d99540aa54471bb1588acbcdc46f8e4f11e3b117ae12df63ab0ebf2a0035b21cc5b6320349b45a912e3caa1d2a57003b3bc02f78b0782cd7f0a99428504cd4c042b1fc71ac4c3a38c91e7603d598e0da6385c55b1114ecfe99599da2d74a51a01161807a80957178cb7259d78908af4896948a61e33a0a15be8ee8a9c5193aab81a0007367ad93b612ae80145a210e2b525a1dd73580786b797f1cca8d31b66b75cea4fb90305c7d6de5f77d661c7742e01230f57b285d6593fcbe3d30e8b7e3d538288b64660ebc7911f71e83aca040c092e11a2d2c62da6c116bc139aa0b42e84ac1b043b1cb01be8e5c5978d0cb89a44e2f028ea33f9be9e1ed7614efda642fbc20477f2e9a9cca72baa013f82700b372e8a17ab30cf0905ed0cbb6f517b6434895802745bbadffeea6dc178cba6f936dc50d226fd75f381706204b3846e894232fdcad28b55cd54a452621f31d54a7d8a69e554b19ba5217b337f6f7b6ed94cf3a64569ea20b9eed8dbc50d22a774530f50c2de40faa8ebd840791ed21e2ab6a7268ea0819f0dcdf8bcd2a329d3f98b687788804c85121d09ebf069ad7e2a2cbc823279355e7a0ab325d61c78d62f30edd99640e0e9deff8edefda405f1a08668458221f1ea0fc35296231a30a966e11ad51ddcb3bf29557a0b86ee635c47518212c4668b28906259705ab7504809cfbba87c7f20e53206879e0451ca05606f3510bd89ceb5f61138df4a980da6e05db7bb093ee904c2293b7b72d6aa8447ea89ed567e31c3d8727b414c3e080db592126feadd4d11ecc7e3b7651af9a2199afffda9ddb4114595e51dd6e3e12832e6c3d92f491919b170f31f0d1cc4426fb94b595a0ff4024131228364382063b3a01f6495ec8390bf2bbd6880c41b7e5e4641bb2fd773d6d026e99efeb5cebc6b2ba11d856c796fc25910aacb8a90c54e1fc007ece723aff49607d9ae364547a71b056d0b168503d58108fd836debbba0732f46f2f7de9dce0d5c29a9136a40ff420753271f46ae64c7d8bcb97a398ceb6a92e31272b6b155440bd91edf72151c04285d6bf588505ecfe93e013460bdd1bbb17cc44023bf4ac3ce990838361d0e8862b59415e4cbf25dbdc009c4a68f9b58c2f6f4b8174b16589f4e8ea4f19cac1ba7e21a3518f91c10bcf942b21a91b9d0b165c2263ad195923e5716d092a22fae88f6748e52522c2bf48b9dd825dbc1904cd53b9170ce5007fc8673ca8206430d9262462b78398a3e9510182733b1fe227d5f57a105e684b4acb8b3e4187e98ed030f11ce5aa58074599a21010e71f7870f308d51d26dee5e50238bcfb205172475e77b43b160a8b0d874d3b10917339fb1fe158db1c906addaa11232bb09422ef2fedd5990d4c7b375729b5b7d54b831292c27909bd27b40480c5323a878513913ebc9844fc958a7a03877af8895c5d119d832330e9efa594aaa1762815da70eab0ca8e78a5f1022c3969f533b02a201ebe51a05d1c30d0d426771125ef09a9d08aa566b0d2de107b0cccf907c07a5ac3de030788e4b65ae7671f04daaa60351b3d7d6b8d19a4a17fe680434b259e109e5b29035ab85e2229805162b50f6ebfb00eb6592e456f7591d851904a3d5e84267a86e252645ed7b79d11e800d37bd3fd027a890fdd95f649bcea0e54e52cacce67a5f897012ff8a4bc41a2a9a7e835a1b20c9844aff981bad1b57a2841ae2d65774b3062e8802f3e4f56e508bfd4f3b480aa5ff2044dfdfed4d82b43525114d325a93c99ddc1c7708e298066ea1bcd2e012450460a538f2014ea0cb5e591150756f7c8ecb82b9ec9a5ab4a0bf68a1be514d8792e115b0ac2033d61e159473dc32244cbf53981d1cfcf9e409c234f95f355703c12ac9c044919b33060f8a1de59deea74fc9adcf1bda0854c11fec9456b78f53d5e661ae3748e0da7b820fa8d2e49e770466ed6ba4c12296724299e9644601610a46b22d7dcf970d3b063edc22772b38f432cd9078cc9b592d060823a872511e933bc89fff7733cc405394521449a1f2eb106b8a6d89c721b74a503393b52a00d22b4c018aa7a2ae0dc1b64b98c2776a8cce4289c4a6e0d7304080833486e27d70eb6fc0498606b024381cf34f47d667e48a845f9f0e9a4ff888e21d59d141ee03c8e981ec48e7bea81b6ac8f0017a1438e6dd0929893ce8fa94b817bcf137c1226d645dd44dacbf9ee90db916b7412fce40095ed9a3298b1ed49ae9565d691933b59ff28ed2ab1d465089295db5b09f16e1445af6f11803959d238eff0208b17cddc202f0e125150f0c9e389eaaa9f87ee5b04db810e870715744058884aba71f5eadb22d708b193af02b227b1fdcd1e5834611ce54ac7686c2f9d50914bd1b043b933b6f7cd9bdae8c348f99606a3c026413eaffbf7395c0c0e98ae833abe99e9d848f888aabc4ad19e50e6f2aaca49088548231e7935387ec181b29cb1216749f34b86ed5ddac03c3bdf9210755c49727549384a93aafb16c02fccda8cf081223026e8e2f962a228eaff5412dc4eeca7ca1f3f3fa06e57ee3ca57c87083922597555c7bca26459850396cf4f5ac9b79908240878b1374595e16264c8a21e84e9786d6fcd9125bf57fbebca849194f451bf316d27b92f3b034ce3a1fc9fbcb1a9bcf669ba8a6470255d9f2fb5af6ffbd0ca1a5bd7dc1dc153eec0ee46fbe1d72dada7b78e1b8aa42b1cde63b295e0ef8051d94686dfa26070202be8b0dc79d719270007c3da95976a0e40c2318ecdaa7d23074e8bfbdc71c1d4c08dc68bd5e7f6c8d7d1825cd5ded13ca87affeded8008588d398862a29f2b5a090c5cbb17e61ced0d93de6679db5f0073a347ba7881fe40ad4586877f5789cf6fa3caaec1bd93b2c815ce1214d6dc002075b3252720a556e22279b95c763ef4b01a5bb2c1c419d37ec271bec3745219299c298994290c5e910df741d7c51f141251edd91e4dc13ac3deafb043b4e3944fb5029264a6bc65227c47fc7634fa59e3157ec00abfa6a4165ad7703eb2e9604af041e0657a2483b31b8e133ae8616a147d0a3067619dcdb3947787d1d9d4a9e0aee082fc57b98007253a58bec265a57483c9cc9d0b228c5b845f2ab5fb813b71d45a2f490ccfda7823e0820583a50045d2185435c3c6a2758a7a7f47f7c00c3c1011ccd52d5a74224ca0ddc0ee834581dc95b48d248c8be9a8397cfb036641ad29d79ac2492fae44ca4e9c88c5a078bcecb6398fc13baed11e16491c7d2fa8029e7d0cd13c4c59db2e2461aa2359dd71906eed495f225e13cd1785cda23442e834d4804faf488f9ef3a27a77a7ccbb0890b3729a76fba2916fbfc56e056af563fd6d4c9df78c2cc14e5020147e60c59e0ee42437e00f9823291936cd4e5d623ef60226764b072f5d8a4137fe48e545ad5b108be723d858cec6155fa33a7f57e6fb51cbf4572adc74b84c3d0ed044820a74d421e896e824d346a6de3d6484aa2e7bdaf8d83b64db19b23d72f60b2ea4f3b4f16b2fe76a76a99184cda4c1cee8aede8807585d2e6300becd67741d6dcda197d5382487780a11ac4fe9e0e2f0cb8484300843f482ff3aa7057743e55a5395ec65d771715aac715cb0552161d50db1cb0e33207352e6bb7a66a25ed9fe10d1e2759b547c85bbc0d8fbb15b83dbdbc8901fa02bd89c2d6804821d7baa3569f3a450cb1d35f47dfa7e442077d9eb172f3ffbd5c40d1a19ae8721e4c877853116c0234a6429268372c98f4541d5894bb27c4ed3447c249b2e9606de5ccf7132d3a52c0337c1813e337acd2cb703d449c349ca9675738d177f6a9909b9d613bc08c13675539c8e7c552c98a4ae75ff1ef34a3309ce4be605ea270cef6200fb05a8ac3386859ab3d7331fc40f43bf03a034cb5f1dcff31f8f326c24f7c303f151f0d6f12daeddb0151ce2e117dfad83bd8ed2438fa369e921e4eab5462150b4c705d84c558257b8e1410ace13cee58870f8b4fdcea69766a82e54b1f91c0fa649da7164ff6db9ccacb708d5ea8d759f64ba334d1038dff12982c1a1d77bed4790b37d614d12534038cbd834f20a7b1543a363e892342a7cb5112d4b72085f8e46182e853158a50ca941339951f1dceeb9c3e280ada5b077f20de76803c0cd04f06efd6311815e2f54199edfe4575846354fe815a6f2f88da4bc1b27f5ece53b46cc630f479926c1231549be40d05472436d2abe74d3168853140a8dcd6ad150643715af9bf0457a72d4328216850229b3ae302947aae5bf0dbd70b4a6bd3c5bbf52c2aeaddc9f44398d19792a2c1019e3486865462ab4fe70177d3ccd81cbb2d799f559f6fc3257ec8c78d81cda8a8f2671e48bf5d6d8083fac8b2051d06dc540c6c9a950ea6c7a775ca2513d213d11e3f4348bd498e8010ed4ceee0b0348ebc34eabf7ccc70833c3f93f79699e8a5661c707679de233a46fb8ecd08412f5ae648fd7d6fb7db1110238612e138e2692257301f9881fc389633a447157935a56feda347515d15682a9fe8b4ab6af6aad9299fbcad64cef571b06aefdea183b1f50e63597aabe23d95a28408e6d53a94c098cdfdea76965eaac0ac9769e294b0db25ae821ca07d4995afc70e261cd8a5627bfa359bfe671ee25ef727f5e4d005bdf3fe39e47461b0f6f7a387f65218d5b054f217c7aee3dcb3474429d2ac5a41e489451eb35ec56ff200667a4964ef207cbb7b0921c28bf0885c8db9e9ba8c5d63826eae95a43f22682b7ce7cb9f21a5aee3030933b8515325ca80233378934536056cd8b8b9d1a59cfa73ee336fc48ce382ef0f5b9ecfff578c4d68f1de7fb5e33236eeb802ed624ccd5cbc6c009ceba0e2047307d0421c61e0aec01e06403ea655a8ade8daa7d679f00cdcaff95745d32fc2a71c21444400afc707a16426b02ec477b7012c945ce0095db3e44644f35db20e554da1e2f5e034849306b098b06798703ec34f8cd3c63b8a83bcda834f5e529063691a9a5e360cac0a1301055d39b5a83517832466296bfd9aa848b3d200a25e467d539da836f55873fbffa4559e055f3f5b3cb9d7cf4e4b1ad9f79e9b5f208292b05908b0782d30f6b444f5398fb53455de76048a80d86c1a576362d3398a7007259c426adbb80e53486474773c72334fb1aa22ea25649ec852ec78171f84a7668fc5dc393b81abf0878b8bbec17d674895dc3a1a17441f975f3fe666535d18a21bb7aa31dc7615f8c51652e69d3ad29ed85fe120fef3bb442824bd306d5b16a98fedfa7f7d63aaf38cd73b239bc70673c2173a8ab90ffae8ce5dd2a53f2b412f2ebdf39bc9b84a2a3390eb0955d0cae0bcf5a337c620483d81a6ab57156988e2e4b912fd41a5ca666a1781a8a65d068abbc2f0b253bde1bf8e6b7adb9e3b59cdeb3691fcf8156c5c41385fe16389236b1188d78fea20185b2d23732bb86615d2cb979b8929d7498105d3a9d3a0a4ed634c1e68d9563183ae3e500fd2301cab3fc677391c11bb0548b2041df5280560179bad5e255be374a921caf75d9c081e9451a69d6f618e409670d89a342d981a6a97a629dbbfa3ea11b4ae510c3bd9fa03827ed2febe4094b0eda1ffd67a6aaacba3ee740beaed62c9f6ebd29861213a14dc49cf6a456d516caab78d6def3ab54da34e6c4c278055efe21ea36312e531386f5cc7d5331b6444e95b649f86ad6459c9ad648b3dd238f6d38f43c76b5573285c6b30b1342d9af1eabe5eda421fbd2372c255d2adfa689ec224bbd0c9e11e022958f5ea73bf806acd358fe53ae5e32558abd4df66c333125aaffd1c4c055845cc759085a9f68621b439c0229bb45fca16f02039ca1bdaad3c8a5eb9c80df1408166830cab0ba448cdc9f757a21a5370659a2871750c302642b0b5d30d4b1112445d202258629e09dd7a1ba7187aca385c0ddde6e8e276f308bf812ee20f9fe5af4b2db2d5d3a701d0e6f178bfb511b59c2dc02f105980ecab8f622e42cfa4e5077ef2ec6ee454bda48627bfc2843c118cfcc13d0a8fbad1179d0aeb6b1faa4e668e2716314ca19a16d9a64660dcc180e9fbc67248de562a02beb36adeaa23c525261a730aeb6cd7ed1083868e28767e9d55371e70a6d75dab3e3ddcc18012ddd9bbaf3b1bf6a72303ce7027a50b46ce6731de1d359c5a1589a67ac496e1e0458c0537d080d6c20307992f5a4e02225a1c8f6588fffb298026498c1a16e5bdda4b41d4f3aa920c3b64c20f53a12dc489aef74e16a097321368567d2bf17423fb70ed3d1d095098b7c4463de0cf422db2fc0327f96b82d5a25c3fc3e1bf15894f6ecee4a9c16f1149c0f71c080d8cb44d463c241ace4c86931019f89198c485e6c426c79aaf78620e9c3af91abc0c020e9ac6d590ce233154fc050d60f4c6b17fe74c90d6bd2244af2cfb3a6156adb6c5aa97df9cf70c9ebdf9f1b6f2bcaf38db1df4591ff08c433da71e9c6c8048be0d6503f7b322a1554e9c9c5f970375ff57e4334f880db53f7a0c7c00dbaf70fbbeb5afda25129cd38d4038fddf2d6e568c302617ce3d723033601acc94fc3358ceba12d18cf8b3ae21873075fa6db0b5f95f1c8e1cc83b121be2f6b04b57df10dc80c195703a094910bcb3b4aa38c8685ef223205644839ca41a0806cfc1df39c169e5800cf957f100da1d63638ff0448513cf4244c2a1a19765f35f9e53c08e4d0858738659c15763279f8c4c10174ef2c29ec00874a36dc032725549a3b36f04f0d2f9c06199d6017f9df8da8f738d1bb1fadda8e496bd8bc5de0676153e913a618faef9447d82ee3bec657ee49f1cc842fa62a7473464d3f52f5185c316035ba6e9ca7cbc1602c7bfbf06ca4e1dd220f4359d782db687953566715e2ad48a473852884e6818dc80a1a60518e46cefc0efabe8842cf21c35978b76905f2d11e242f68d60809a84e861be4c0a8663e6eb2d8448fdc2c36a2b72ec940b0bc193d39f6b96f67a7c6aee784f4e7ff35a7cb3fefbf936bec178ebcaa01801bfc8122e8d031a8e1b883715496b53a30fbeb19f05274d2f98134f0299b6b76bccdbc96b9589130f94ba527745d2971c1091a45cf62f738909b968c7d032a24e898b598514434320b7a9d4e7ade32c2e648aed75d29fb6080bedea1120a695808eb9bb9c6f635453d89a8fcb1cb0db7665f6367982a645e6d6f32e9b20fed1b6455943a6f778c92a70368341e0f477a5e5cfeb50d76ab857ede16236b256d956c079987c12f2942cb5548ecc505a5a6085963e3158341e6ac88e64a841df6d8404e5176f8fe533df1694ded27cb68dc7ae75b24ec4f55666d2aed30a8a375ca39515958a055ca012f0712f325af5977185236ee6d41b38472bdde0486b80aa7d01f7839356b9e7567f0f32699da9d61d8e57fd051ede4e860ac8c64dd4514390e6b58451be304f583352f0b98b3a22aee804facf15b8e17f1054714ab81d03a0c3c374ec88b84940fece34fbd44c83232f741b045f69c8ff72655dba8db99050ffe3250f95e91b7fd8f75800e04002c8cc09e3e05994238e0dfbe9ecdc3d0793cc63aa82c1fa9b5aed893556298d8855d93381621a6d1e8836ffbd9443d950751aa113f77b2059a49c0b7b55936ed58033aa63aae01faf579ee3160822398a78a3c724ec6aedc7f5e5a55cebab9bc7cc2efa3ef29fb3d1316d2c2032d4ab9dd08b3f3672f52b34605dcc4dd92da25e056ff72f149b2a57eb2a02a7c06ac774be99936f7a95f9fc5cbdc16f2e7bae161d30eb2d6ecb0b6da71ad73b9bee149582e0f115517f123d0b3dbb5149869d48c61ac376f7275ae80a05ca1c96f5be100434696a856cdbfaa097b81c8380f1d3447f7a1b6c906b82cbe0a986c22e4f9d2444efee664258a37a950443a79930008e4f6e5a44a7b9338807f7fb6a3918ebca7fcf92b1784a246689aad8fb6a6b3b757e63e193ee1b21482084275774706f1071dd5496ae90cb4d40f8a95b4a860b7c9e8bda8b7ea047c15672bccb71f6580742f1076bb6d45e9a960f3b183d9430a8f7340f6653ae3d99638821933e87a33926a58cc93827bdbe353afc8665a692fc2857f61e5415498d384851b0744128706ae7506c778cdd53f9423a6f372cc97c6556a520255db3ea4d41940cee03157554bb312212d61f3028145f001d0a5a7b59750630baadcbc21f6c496ba8049dc9b36407ee19869ad48a1cdb3cb0c873c71041007c403fc89cc17aa9399517f404993b5a71f9db978a4c2252f504514ef3afbf0b6f42178750ed217324be3c8295475c608a4c690a758070e324d28a3772a7ebb6234f90cd26aeed577ee28ab2bb58695a93bb18559a6949a3d361c0a37dc8ad4204f79e383aa1d9e8c3c84f55661cbfff834b8b28a1d0b6bf0c809301c9bbb9b48b9bf0630e51122d77605e35554816e31df18f7dd7deed2d1322bcfc0a864603cf7f2d7b52c9f1e2bde5d19549b2e4fc387c414a6461fefb147801d5a3a0a9bfd3cbdd9693da5b03ad6913e9f719a06b7833fa25354623ab55c668fac3bbfb40e6b8d4fa86f8cbbfa03d3c31b0c62d984253f7a20d0eb0d164d96b559fedb561f8bf32f3a4bf2d48f0aa0107c140e5f8c862295517ef4e71cc239eb7e1adc3553fcd612380860fc5f70341b7c1ed31b486265a8cf1841763009c7cd28ebe00113446db2d555d3ede98cf10e33f9e0b3e2aff832fbac89f058b868f2a89d11d93de61f9875cc02261a882431bad701ab1b94ecd4af8e690f3694ea5a25231e2958a8a95e20f6a5fb2142835bb1fa199082e5330f87c62dfa72c154acdee43401309225c4625fa43f8e79861ee42e23d367ecadfb97ca29ba309f043c342282459754c065c7415eab8e8fcc48f0454dac240a468675cd4e1c62080fd0781905057953ab4c50b7541a8b968e234df868ff6163887f691d6d223c530bde158cf01bbae4172db385003130c8c1c51bc94d09140908cd931e4d5a44d87395e8f4b2bb48f7949c1e986c9cf94a0e6ef637b9816146fa3d72ce679a6d7fa8c5426a3abbb78ec46784e2f74a755933d27ae2619bba44611bb8fbee23317bc4617bf3d3f280926501c1f602da2507ed9b79d32817163c6fd8290b26a04bf5c20a46eb97eac203903e988a45e82b5e7509ffc284bd9726693c06f97276f3c4d64d9381e350b4b190d872eed228edd5395fe31b633ff1d4feae5e04055cebd9288d9e8df0f742b3699c0cea4b4bfeba98584ceda9b6d835ee742cd10e230ccb02e0fbec0247929e0b18d544c72b0e54bc8dc41439e7cd018ce3e414f9d7a4635e5d5e7c47ffed8fa3f38210a7090579b288c7b67b0ed7270ebacc9e616ffabd4496fc1f8ffc0f6f95a866961bdace9b25ac07a9d75e67583df5c6051584e2ffd40d7d88712e2ceb7f9cb11240d36d520e3b14f24d08194aacb83173e76a07a63d94d4ee5a8a42a2e3d7c97b397cf394e4acbae4b3908ecc191850c20501818d6443e9b03c300208c05b1e020977c516418cca6f0037c7586ca906ee374d18953582760f138c0e3dffebb61a21e2c7d040c0bd0bc7939896543578445ba43ffbf08d3e2e6ff0246150a6f788e8dda967dbfcad5baaa47e2a7ca908513fcd3d60094c896ade2a9fea3c594743f0c415f4241386f1c17992dad9d9602dd9b439fab38911c82d83c6e56990eaaf58c064a05cd0a33b6b15c2a29ce6ef8f2a240f75c87d8cc5f067e4842fcacf179676dedcde152e665eac1e5db5d099adab6f67b78fb5efbc4990a0153c92f708b7adf85c0b73b07360a1896d486390ac1f25a2198579671bae6c1ab196bb349a3dcf7ff7868fc2a6fe0ca26d8442fe22d6b516a402f1f98047bd0856425e823d6cdc63839cc10e9480f6a5d94bcbe7bc9129688bdcf5c5b21b0effe619f856bf0ca2278b8997a1097fff7c41c16c283d5e9cb7aa0e177e7e51e445b8a193d0756a0db5b14ab7b94df9f34490af0ac482a2dbfbbf7ab87b0f881391eb3a36d6ab1d2862f5700d6f8dc3153247eb647d7a9f19c1477afbe735678c2bb944e6544f70b5870b79ade76976b3655cc711d73283882e4dda615d31ed13349f9f87f1315ca8d8299a3aa61656db49b638d752332f26829cc3a81d40b7b654e2f3103e1c0c7de62759958192459ee9c6e330a36a305994e2ecce9049d5220707d122530e2a2838a7b035ae3f1b046c46de8502c53005da64aa9e2c50266a243d78e259037c163aba5026f9812330fb5eca11fe8b72830d0e1a87538d853fd6eff864af90a4b67e193cbfa2fd6d77588e38844d6552269938e7aaff35322fd6f3ab41cc8eb935ce7baa3ef51723c353e64556fb9f60925acded903d299a323a3c295de2215ae4f6075ae4764b6743486adb790fec70e886867d72b24234fe039c0cb8c2253b4808593be71e5b6ec890286647970e6f0aae50f011c57034a6520093b66edc9c608c3d50077a15a1d09488bbfad5b184332cb6ef20b862e1003da5d6eb6bba5520e7a4dfc630cc05c055671539724d36b9b4ec089435f59b8fe92e676b50a8ef743eee8838d5676b05d966be614eb98509ed7937712bb478244852e8216a0da78297922c7961bf4eb5e1b5d6c710a8a45f894fd18f40083330792faf569ff6e89e57e3646f1cf05a1c357d156c10d7ca74cd91940160ba29402c76dd1c4fc5925c7949d3e82b3c57e65899fd0b721d645a3b91e1c03d78af8f631d971f482e8ede11976f9887d9e7ec76e6e604067897148a1f1a1d35b94a51c574e9142a42e61349f804b1a4b76ec4a47aa30086223c9de43b6074dd09eb67e86d3c631e0b578bed1a1f0c39a382dd719d505c12b002f08161b151dc71ab22d58983095351f2a8b0244fa9f8e1a22ea28c90860ffbfef85c080f569f9bfed4496ef9e66b62d1035df955e194381f23c48a0511a451b21add25cf59d3148a265e8cae3b8285b41dbdcd3e4a9a58823162a2ac3194d28b11b646d13031d3d5cc77046077cc5485effc778a10845d03a4381efb3886b93084b724dd67078f4b0c1355ebb419d373ca16283a9ff18ed12a8a6cf23574bf592359eb0b578f67dec1075c337254f0c6e7545ff172c589271b2337ab06f2309eceda0933b2c151bf617ceb9a77bc2d183e3c0e12261e14e076542e14b857cf83dbf62642f4f67e83c71dce831540565e9eb656588ad54c6bedd50f3b866da212ca492cf143a1e36aaa430d3e9b0ba6cb114cb6986a457f47982ee8238806d61946322227c2372a69889e7f5757da3da4536744fc771b977b1c37a95902adc16f5c5e85d972be85fb16e3e8d30e4a04cc43af082a1c77097db801f012a084d50e23aabf9e68ebf4491428ff8a88ece9d02db1167ca1934f171c41c66f1026bd848d072cbadf7982f6e6c883f0133257945cd087e779b1b6f1c085d38231ed4266f63436296b0a25e65ce1eaebcfb83467dfe85b7af59112e486d1a1c73b860c356da1c90268dde2e0a088b5b60a133cb6811674a3143303d2de7f098a12f0368b3eb32ba53986ac1d631e3cfd69557fac28336e1ec964e77aadfa1427e3ac51fe3746fd782295a1ccc015413f00ba019aa3a0ce15ae65715f29e86ce2c2d530854c46c35d2563fc57ad23ddb3faec90ab1a95836a94b084dfb4c451e15a425ba378c8d6f05c51083da715000ff138176fa56e69eb4535b3910c4833c79a16c18aa2643bc43357a05d2fa9c7428e7f027d39d8bdfd0d3e0b3e2a87c066847b16423f783871d7b0a295a6048859c915bf910762f3acaadd930ffca65825c6ed0b944829c85249ba17ee9ba720290c0a11e15a0a81cc331eadbff9000e22245b13652e944bebe3355921f864b56a332855bf5459dc1ad1d0f1018f6cba305d6a5439c1e174bf5c238f1085931573fa1263f509f6535f93075ce6dd2870254ca19209c4ef97fda9683947e612db31b27c3b1591ea4e14bec4f43e526ffd8e8c0ded27b3de059963237d40f62d0373e83a4db32994f1bb58d22f19f189cdca89c9e123af575eda3da0af86c1f60872a629a3aa0432a3000f0f13e0f2f04582963b4a99c1ab73c030973f41016b002c6cf815f41258ec9ef777c38c00930eba9602f704ffad8403e6224076ef19171e302d9d933567e5ef67bbc8d0aa02fb21c3b360ea918d1d37b9a83ae69711b10ce516a9ea7540554ea6244581f62e17a9bf2890dc2f35c344f57cd17d766896afe074577baa0848439803256f3244bfd236b2f5b97302b2cb0fbdfd1b2829a2954e51e167a9b8f4e76a55eab794c5bcd45b998125dcd661bf55bdc6a6e37433efa931702849570158c97b0915418fa45b9c7625daa7910c274aefaf7b9f20db8d6795106a9df27df340775be546e4a6856f3ce93e6685490b9104db7afe695530b10e7de7b8dcce4829dd7592519b1f33953a32876ced78c4cff3fac91d2e731769e9fb01bb8dcc32d1109ea7a8b7090830f532e66b981e259d8b6e2abe5d58929f315cc921eb6f324e14360d92a81158713d75bedf7293a4183cfb416efb0e1b167e0e0175709959703ffdc0ba232eb6b05ccd2c5096a302cafc2da81914b0b98c48d006be8e5113bb6dbd303d3f4cba1bdebfb0b85421157810daf05650be3404dc86f82896f23987c0dc1f2d77991a721ded00ca154f07f6714c1810da4c4ab046ef3229f8552f4884661c1c95d8213ac57745c635b5643e6eec9b421fcd24eb5cb1acc772193fb4af6efb78ca097e44805631b22013390437509ca1ae6976d08762c329f2591f3659c16a63437e2590f4d51753da271e053e8700ed9d4506c61b4609a3ccc8d43a052f90a755209f492882e09b8f7cc08fa2baf6945ad4cc5392440189ac03a407bc6d97a17f5903ec5ac90f242a09a4c14d7a68db625e57632d852c91851a5686f0f88e07b26fba3d6a1cdffc50c1214f90f2890647802a00e3f6f2a3ea9fac4706a5162d17400e7ae55883e81cf89bec83be51381a96fd01231120534de58ff1022a412a683c62224b607340f1dd22cf92d7d2222da5229a504f8b4ac4561a2b1aca24983d8d1ec666b14d638a32c21000dbf142e392c3dfb50dc7d86df64758a5bd6d1e3cfb712ca6f82ab4d0efad56bfc017b11a1c2535a3d4ee53c5e53c291cfaf9fb80889374e5905d1e5c168a7fa017a32974939b89eafc5ad8a3605aab160335a73da34bcaeedc667724ccd66abf627b6d3d828879963b3fc16333f15d2f89fdf79fc35b593e62f09021e7bf5b4abd5f6ee9540e0ac64a404b402561825892762c49b54b4b90cdd55ca07790b5ae0c120759df06f125d0653bb57b60ca2494d0f2d26879bc5d451cd482f98cfd86602af6ad6400f9330ce1e269da37caddb809705c2e821609e43900011b4a2c749be85288fd2b51d78af19cbe3a955ee90a2159907dc4836f2bd90029f8ef0d38193e2bfad53a002b372684920761bac029902823fa891fc5f8135033144397d088b409a4101fcaf5eb5848351a1eec4d17727ed9dc398abc72b4043f3a3ccc66d0e4191fa4530532d434b4cc3a38876805f1ba6ca4158c268995f8084b9bfa6d1812fd0d969f26d7beb7f0920696449cdcb5e2d00f336588c8ea226a7d96aa4e13a19390a75f5106a695e12e28c333193dba0027582167e9e4c86357736918890e23c673fb7c1a11a5c7440b7817b5cb6e4dc16f7eb290553427cd516eab5b9beed64ee29853a1d9380f802f9313c2f22c14c3a3ea3cc51a31c72fc2f08b829eea7593e51715c2753babc29a77dcd2a5f4a5a0086a9b337947937af460ac0907be153ec4f1ba1a70700ff8528bb04ef24eb6d2581aca9b105604bc71d48c7986200b02a02f78f068bb4b88abec4ca3d9331e5d799dca6b031cd31060c01fe974d58c6e51cfd77347f217fa113040ee6d1cd83f628f1e9533d7c86e057039ec1241aadfdc1a87cf3d7581f89c4c0f85158011838f315d51d290b213b34680bc8149f5cf0248803de2a7e0786460c71f49f323b30d0963b1e25a78b1903260cb1ddb185f7e48060804cb21d6cb3290edf817d7faef5bfe7da20ef5d0726bbdc9f863f9647f9ae9da41ea9362dcb29328853862007ae710baddd457914c988c0ab77f73a62a43d1d4648738195f805b2ba6cc6d10a5cc4d2f96532fad85b3d7db6a0a58449fdee7bc4400ac86b0377b7baebb057f1180e468b3dc896d8303123ceddc1d3ca00713083fca8aa39f1b8f641ff52e96d0997ce2e928e0a8696526c0333e8983a2a807331e52a4a34d165ca878e0a857c2c372357455d46e485f9ed5e6957e0be7b4805422af92591e514b2c8b43298755f52b1f80df9074f850047f3cafe14d3650cf702e61a4a9aee40a0a77da4ee920aea4ae1d02afe73218c0c684e3def652e853b990a09001304dafcc95400da31046a31040b1e8b3417b245a60277895064bfb03dd565a490405a8a55ac9d7312060e44793293cc14752a4eafb702cf327483bf831b55e3faad008ffa3304644d94f02ec3736a99d4ecae244c1965af8823d2570a584c8ddf83d7a1a57f541ecb1626fa3e9590f1c071be678ee00a1fccb31457fbc451ae8e55d3ab4beb8ac5ce227b0d70094fbb06f1356445c6c6f69c32a677975036743e5ba956b0b33ab14d0f28aadbce2fbe7e75ce331c2bd77fa844cbbab51d5b8369e09d92da7bf9b03515a8b1c9bd37043e0c654ec4d0f73348b0394ed88d3bad81006e291e1a8e6621c4337cb8e5de023d22f57ddf75ea7dee2a871792ad487a5e0a804289bb2b156ab42c3c2119cfd3f5ecd4db1db1c6e2316ebf3700dc117f60e8879defa2683d2af9b4745b28e5826132d3c8962d2618bedaf61fae0632692e8fd9338c46b2561a23a8468b7f64cb7f6d61a6925d0104382086dd9adc578adc853c85c68e351f0574f3a3d0e23f0a9d1048c179db6931d3062ae458c1874da931e868f171015794d447c122498fc63bae2e8d7c2c1c74c0baefb159089892efa8d20417ef956b48599cfeb9a6b156b9bd2d8d27d8a8e7c1ef7c3fb7b7c02efa32dddec9fd36d66e6f713c5b6118f1f6a6bee7535770656a66aea17dacbc1c8e56005b9eccb7f729d831b8a76f6fd0622b09c25dd06f6f0ee8fa24786fdc09ef2d633a278bf2a4e1bd19cb7d29de9b3a18ef4d38de1bc64a511192b6d1de75bfde2f9f70697263af59895a0e6006c1cb13579fd9b36323100be6f47d60922d0300a0d076a2cc5df0ec4ed2c046ed1f50412ebdc12b569dcd6fa338a6bb4ab34fe356c10710e9c4a584dcb92bbb132310e93571f807221b47e6ce6988e4ce94a271bedcc6dcd67263a796f89e4405baedf58b12e0c70b16b5bd3adf59a6d69ba7d3284b98bbba673dea1c1d270207ea96db6e7c15b1ff1ca334a8d31b559ff0097986c4de0d3946188abcc1f18d824548592a9600da1e709f80d699f27e15b3dd09fb7c488694ddf93f7fbf9009b903344a818e687c27cc27f1d2caa01b4127ac905e08fae2bcbf2adbd8a809f343c1678bfe085159c3fc4982fdd621d8cb3615816a98d626218d6533367274315f15253ae1b9edfba2a87c0a37cc74aa0e3edcb499ffa9803661072a06e9430438886ddfdbdf8da8520bb8036a275aff315fbc4707d1d9acc17be9e83b7e88abfbd5f41c532b7ed5e0fc32471f1c2aeb13e285ef98bcbd89ece0829eb87320327353ce57039dd66d8d8d6f4d9c8162d35030ba9c4718b602ec61a02f3de9e389ff055ae2aeedfc8b0aac004af68f2b50500ae70b7bc11f355adc49f79fc1b91578babae2a60991988076401619e659e604aa9f1dad3bea2fbbf2d7026041998ba87e16e2e180828b326b2207407f73f55ea03055c39e3a9d156112401b9fd0d343b45043cf7d0231ca04011846c6e58cf140c428bf89e96a8ebca4801d67ad55ebb8272c85cda5b4ce564a2d3c9913501b437109db0c201c25904a1fcef954db5cd2c3fb8c5cd8c37b37b9aaea4d9cb72e4e22e6c4cc070ee77f04a10200c835f7afdcdbbcff9f6a4fbafd6104d92b408ee8ebca40c62779041607a1ee240872043215d3eecaf626214783dbb5e873a8d4fe670132f81c19822c8380b86b1136e5ca76f65fa26158247b5c8c9d567708580076275670b9a27161b7a224ae440950122151959044e4a3f0c21d54fd0d7fe441d7a26aa061ebeeb29e052c0b088ec11593fbb4d20960fc9d516b9e2bba80e4b3bd5b3a6d3cb6c1a4cbea587b6aba4110491137fcd49de21e608982af8facaf61dddb8d03b1b78185e48e5279ebebeca7a3d96b03ede80f0c6ac66287783276b407007a29416998830fdb2ffb3350f33464216fa73b7c4956a180e87ed64bc4394488ed82a0a69d3c0ccdfec3103b5f9d83ed13f56e88d87eacf0696ac436a09bb6ec28a04790b56bf3960caf4d4e7300ae2eb1dd336f17a6f558fee7360c13dbba95b5ff8f2fa79a235f04679b59344a2cce45d19cd8fe16c9365090643bea98eca349b67f43a48d5eb771d1bd7099d83e2dd94ebc976cb7bf62b21dd9e1ecee0201be738fb11df3eed7733e2ef391d9a98a417728e1635fb25f910da2aff243a87e8812740dcb43c347ae84d5a231fbe0a3e6afdaea779bcf02ae1bd7365e33ac94fd4ffc5866d9c9c6918069e650a50dbfe2eb3702af6c7cb5fef777970eb4b4445367e2918c1afa945c80f2f083bde7262473e7407868c4ad46260f2d02aac0edddc40ab647518ccabbf8b2b86cace2bb80e0912c179d020d6f9605c340707a2a360f0f2e517e8cded356ce3109f237056d0cde8fedd07ed17d5af0340a090eb7759163befafbe954cc5b5d95b93562618bde118095c42c4f994907dda1f75ff7de3a359e4c68c4b1e0c9e1c11beac6b15a4fdd712e750f35bfa3f38df24af03729d1d1a4016ebceb2638c3b92701ea8cdadc5e68e208daf774b1834f2525e0f6bd19e783531035c1e2046da988ab112eb5c4a814e48506900c0adacca193d53b5ced55abf5bc755d054793f654809c4aed94461a7d35fb242cd74cbb76f268cd7e425b444c69e1578ec74396daa08c97ecc82c9cc8ee474e8661398f480e27a27d29a2fd6a3639fe611e077aba4f88938f4c4d01006979fb04e153b3d7139893dbe87f3f0b0fa1e7ed58408cab3c91cc1da3becdf3b77137fd137ef231d970a766123e3bc39e70cca647ee97f7dfd7769835f1115d05a4b0860536bb06f9b4254a06ea4369bd964ae1b4c46a283c066acd4eb691cfab8bd71a6745a26bbbea2962a4de40d2647b850f20602ee03f938d6403765025260dba3054eb8aa2c0cc09227f4ad941f1835017a99d27ee82a28e44bee530dfde04edcd047be9bb3ca203f698ae9d186bbc5d00aea1eb192c8269fe6b0a5f0d855877b52e40f477f7b65cf9d5745874ee9fd24fc29da1e82e94cbb5595cd9bde10adbdd433200b27d4ffff0f33ed59da5de3d15f22676f854c95a0b9e5d4572ecdb373056aea4b153d7b50ed2d036b869dfaa53b236695c71203f299616e7d82ed5bbf36aa64f89e8e071efc455348f441ee51a5f30e2d0ee7e7fb41cc37bc94ead20e44990ca906d02116dc58d402628c7f560f3b1c9c21619f3d402b2ff2ea88caaf9268d61fa32c1eec9c54d8862790d0c45949e0c8217bc40efecf754eb92ce79a8b9c8ec510517355b0bd5e5dd23459d1c1260ceb3fd29a3ec9d08b27fab474f6b72f5d6719bab7b985851b10c1f4c7a43e7d650aed44cddca9aa89f546d13b9adc93709d187040081be3c77974a0b6579ae1cfac95ce1d9fa89e223d5cf012de896d743975948e33ad507bc7d6583fdd49987c792b6539b80ab4ec0a484c91cbdfcba5103f60e373385ba9e92d2402e05a83edf00e8d02b0b8d2cf1a62fead7c2d21e623efb627f8e6d3d61e454f6906100de272bac1ea0c2f08c258b10734f9d7977388908ff745b874c471830595c75e687412b0181f5631d82ec59f2dc34e0408f8e483b815ac95e98a3155d7ac0c69e87c571f1d2514716c920cbdda8923d97a0a68e9ab9c833f3879cecfc636806d90d6076a147452dec3c424ca01077aac0780468df586524bfcfa650d8f156159a57f6c97405dc99afb7a2f0596c29a5859cb6a627a49a9d03bfe4e05c40d1eb68830ca030fc70c59e716bb7cc50fa90f3f5ba25174a7e9635cbd8c26548d793056ddafcff42b5a4d7816ab1348a21aaf23f39d2898ab2026aa4146eed1a097d2198f56aae189c56ba9c69190d5fa8ff15b9104b620cb32e9e4f3a1440ae43b5b05aa83a09c8f55012c83523ee150344996df0f9ad93bcab3abcd8b4e6238750946bada6bf58ccfa9d3fafe542cbf56cbd893e7c88cb5ca3e2cdb5449204f0aac971b4e65538d72d2fceb5e738d778c17e35376dc9aae8c91440597ac665dea50e2ac61aed7f85a8242b01135898e56649509b3bf8819bcbd6042d8a1e5ad986b10a75bd2c4776ecb0eabbedf302d5452670767cdd38891ca995bc7d67aa5d197bd29002bd3b7ae34e20c7c33a6ee1b76242994bbc0d4afa541bcf4e5cb1f1ca0ea017f94408d4e1098d1627eb14e4981842191b3f324ad6f804bf7b5ec48443d4256f2487808e8044098a6afd277432c50e3821eeed78db1f7e0f76aace447223585665940f5cfcdf23828c9d363ec2f141086c52695ce8a11ac2104d04f9cd0a6447e91fe5eaa90206aad9ef25a604bc88be6b26a692e73d80a41256c8af7bfb0232ffbba00422c8f31040504dcfe3054c1d19de14590c41b050aaa963102cea20764e5b60df3f466565b598cf3b15cac7ec7c72f09fd1aaa505cad3802f4163923529778434bdd0d29f1718bbc10de71ef3f237fc76cf0180022507c707f034b6280af406506906204c0d885a15bc8d3aa475fc29db78eedf3017253a8c0ec6851636fe7ff49b7e0d431eacba6f235631ac0871389114ad393ef8440caae1394d4eafe80451ec061f54c936882b6b3c55eb8a1e9f45e2569de06bebf1205a70106e8746598fb9b39ff1ab724d893880639f7c8e0d2c328319a186ec828becc08f939ad9f1e15394f850bfcb2c4cd6b8a50a42ce74a5725a3f8be5f321c10278cd2e92c0000004d081c3b9a7319474b6a5100d4ad14bd1693d6d19a74efc2d0b694a0839a224f1a2bc2c871054fbcc212a31457cfcc361e465f6c8e73d14b03a5be6715b8b509715e54c4a1d5d3044a8ec958d5b60772ba318452202e9ab7089d0decdd3842e84e2170185e7f2c96d134083d4e732378d886f6051eebe56db57854ae5483b2b0b3151f925a2c8f1717949423885048ffe61b6df6892b1139846d6268fe36213770f3d23ce5c0e938b8f1ede0357ec54748de283e1f49208ca482b1f80e536582488e6bd341365d7056edcf9a0a0607539b86d673930a7e300e620391d69b38ac3cf258c047521cb58c5b2bc7af1eea181faa6179299be204ca0e111fa1c159d06070365837b6913816ea6e2b8168cfe984a1b5fcaf098beded6861583e6579e3dd29eb5b5b9f600877599dd637dadc62a3df4f498d2946596d9832829dff1e4b8a9a68f62c15406bdac7b536d49e3fc9621d762f540e5ddbaea72f84e27d8a0863a4deed95b354342ebfe311353563b39ea7f0a0caa486bb2053c264e2671c5e42ff64cbd446ca3a25dc05282f93dda3b9e3d1e8a5240a7b46d0c9e330c4980f58e414fed74878313135d2affa5ec1df8eeed82e4d7af3a6bbd7a8527a2088c9425d84b435516bb8e4efa8a9f647cbc459cc13dd6592007e5595d2d2b1d7fe51e6d255e7b06eb16e3be8d41aa26d3603d862a3210565eb2ef66222b2f57947eaa3917b623851242fc8fcaa23cd999e8738d8cdcb3caf1c0ee2aecd1b56fb4199f5acc5b3dac6b55cf5f4152e90e786ae232df6ae16e9d84bcf63b459ee0cd79b5d4b53f0c9d4670310588410b9c15c47b14a859728fc89f1828e4089bfb61f027175f5a03b5f522f45e2adb1050ec3dd877f020bab4947838b70805f29fed026a4c6be4a57ef6b8084a03ce9cae8120e24f4b3e5af9a4d4b91b4cc472ad5793321530a3254aa970c8474d2bd5118ff853ca268e05fbf58aef75813f030f8b1b64945096d251976ba8ddf3df47f0e6e9784893f680619351a03b1882539f219857b363a3a5b42804574ca1807601d8e44369dd5ccc3f25203516740763a507fe596ffdcd76ce0099bd598da8a92a03b2229fb069d377f3644b9f7a1d5086871c5ac90a9abe2cf161c29afdaf5ad0429c81fb6a655e36f693177690b5d239635110a8e831c434a879d19cd6938321662701b5cd0251edf17e1017562a3e476ffb9c796bce80ec47405e3b9d5f676958ba73ab579e06964c150510e1a793e38e7ed17e70b131b6a254464efb2797c294b080c56cb550ccd4048159d3286026557390aec9d2e3bd5a19d4b22cd3fae654ad057a657a7dd2219e8b4b3e06b3462f4c4ba5f5b970ca7e35cafa65eb2727f662e00b682858e809b3c52e71f63911c60e53897423297c7bb53d5f79ad725b72df160f03ece49ba2b2de5a802b657881ec57b9903a2ec72f31e5120197540c1db14e90cc6006ecc19976b972dc4f23c471d0455eea4c3123c0e81582e1110894f5f2e5b6a09a332635b2e851dfcee5326b21eb89b324d7716a87e54c60be34bdc28e99679fdd84e02a1c321680005383d6a844696e3d40cdd10a02669e744ae8aecd2a024bcb5f9959ab3e9105dfc05c9eaecb42e359a1b7befc3e9621ee70bae6948c91e5bab342a4f55dfb000f4e6072c1c514d67e126037f397eae24e63d199bdf7296c65469d38f98e81b4ad392ff9fb36797ef84df054e667f78e7f7b6d1e1cee005da09cf281049af331c4a8af4df5b84246ed0f5e6b107601b59101cd42fd6070b5d41da105a1a62b35ced5f368200949bbec15243695baab46a815e4d0a90ce4dee68d6ca81d0d242a91344bfbe75a1f3ad31662e22158fdd901ae8278a409546ec757e6990a37a00d84d37e20534893c656846289bb015c602576c9f5e79da9acbe4642e84f36071d2863f0e2e0b442afd06db6ac92cdaf4233f2a93f897c71066b2100c9946082a908e095d6ce6b1047e3537128692ee02aee8726333038871a7a95d22ad0ca1d8b45f2f24446632016677c8f188dba2415c5af5da1edb27fb682e6f450c311bd17e783039def9453fcc18de16aee928e8fd7a742d679ef0ec849300ad20141aefdf646617138711443230871d984dc356533654b81942d70d702d73f4cbfa129909a0a19f1e4b18b7a08619028c83f3c9f38e73b07959459f7aa3e4c4029c18caa6b57327be8f94d645d4d66c08e98eae1bda7d5b4049075506f2b974e415b44198bd46af3f554c420d2c360b9b14a0de2a8748c04e7872cf7330d540aac6fd69ee209b2ac74973f27c5198ab4ca4d6945a38a163ae8471410c837565dc64ada0aead26eca9a3db7abfe9e591492fb551ddbc9e853c1335339793265b34b4d8a93b2565282df13a4e280bafcfb2435b6491ee901a541d87386c394df393d99d68a91a8972a053f186ce60aaa5044ae86ce6ce121a9a55d6a155c2daf30fad53c6e6c08e04b26ec16f858977bf7ce3733d3f3b9de166669dfb0a5c31706d24f8ac30c3a396aa35346ef8c642daea8a9c8502aa1ddf82c836cb5693b8bdef8dfa0c5e83b4f57ba3555206408416f27a9277ba5a661c2dae45366e18476b2ac5531231f6fb38bcd18112d18590b923ea59cecdcbef4d0178d565a5cd8813a4891478961e9bdf52a9785a52d45660e20dc7b5b7c2b95a080dc55c4f670271d355b0d5ae835a467ac71603389844d9c8abf76d36bdb7e786196f42b369f1e890e0d4c4eea031e42a708d3ef2089eb88b8700f212d13523ac5c7f48cf0cfb91d8a5e47f6b34886b2843b33e1598520b99301b6ee3a729128b16f4b32f5703728f1122d497b787b84ed45f09b3454dd0426c33ef144141cdcac81e46d499de1676c959f9a917733f4d339efb2e77491df66cd50db55c4eaedc1c8af5ebc19f5315fdd3b33dc5650fd943ebbcb3da12697a1ec905ddc008ad2543ccd0c221e37d9ed8ef34be0c79caba8ff0d8a0ced04685d74611a9ea06b83a1321495ca5c659a9b8e1fcce06d3b211026dcfb586d8c9c7ffc68444d8a230bb2f1e69234901c2d118f42cafd8d3e1df6160b2be5dee31d34aa4a149abb845b23441c0953e54fcad963dae1e0a21dff97b5df4aba27ab63430291b27373a03bb2a1d9b12873b2658c4150ab7ccb589ac277e91837c7aa34328681023d870f3954dd9c7321acded09b8f0c1c42154b8fb220947bf6487dbe11829e1b001140a04e94579c7d76651a462e4108e6031af8c56fb86e029c44c9cd67c2dc93371990fca0c9dd248de6b4594ea82da646559232025f54fe38110f09c8e525a957008ac32b4455ad55f8067c8d2b275fd820df5cace190ac49124b730264990f414b2c42f59dec2efed728430cacfd4a33c648a381286dd8f579c7b71f7d06306cb321947dfbd26c980152692b989c761bb46926e2ad19c4965292070a77f54a1cca3b835a0b2166d0bdabbcc057c0b0c911a3f65e6768c0e9a7901a8fa7fc3418a61b814ef8f14fd56f036701d1e76c3a0e90368779361ae04e36424f26552425caa1b138f97b56b3a08c65978622b546b3ac2945a3a23c634cdebbef93f6ef1ccfd070f16775cdaa10cb983b01b1e6012c382cc5d596b7b0399c2ae9b7cc13289567c80145aa08196a9c6ceaf63b51bfc90f620b726f65110e45966b9cbc64872812c4549c80e483a72dabfc2d29e48d6eb90be3414d20f7b655c7f24f449dfee652ae004246b18d9be79416c0407bbb9f46caa02fb81697fa40e3e4467612eae5b95b1313d522766eb2b51a272fd271cc5e491836f40a8a468cae1723f616ba3154c74e1b8e67c5528d550fb111e02aa39a206a9c5c86492e3498fe560888fbd4dd2a365c9de2987aeb13396eda21a4732168e89f031848f76d8bfa4687f91783bf72c57d6400f741964d1ed9e5996cca8810cc44c864b2e20aed9a0f45453c3691b6c227b8f8afcf8a42e36408d69a8608a803c80537d566abc071f2dc906a686a0947db658a5520e985e4ef7ac9cdf2b15f2c6b84a369a4941b2a371f0ef1d82e367a6badf908c7d95911a504faf4b6d0302b8858f7a0cf1cc22f4c54c558b29b58d5cf7d7a5147ee397cfef1ab3e2cd30ee552240796cfe3fe0a194158f1fd808a9cc6a7e46cb852670afe1bf82626d810284e4a540ad8727d1cf4eddbf7a2386a9cfe94a475148dfae9c97e951614f1b02228369a8531360c2920e3b44fff647ed642477c0c942c036cb26b4f974ee73f51a9ce99a378e35e930b9638a645c9fec76b32e0b18c826940f00a2cbf2a365b0057b29af378ef1de85c4ca5926f9939036545a4bbc74b0a8036118574a05a35e34e46430fd6e9434a98801ac2fc95b103cec590a00fda38a02c44b132cf316b2d5692b985b30dfa77f5ca9c961968e6a3cca93c3780aec36b03cabddc751272b0ffef2445919e874fb89cd08f70e8de7f98a21ceff3badee4cada24193543c9bf2e6f8da5ff3b4e4ac09264edd2ffa12a068d2d86e78b377f46956f3d726f54894de26f64f279a9781ba90a8d4e5105232b93ffe3cfef30162fbf15661833beae982ceee706ecaf2f1f08c77a036dc648addabf1b9a6e4675196cb599e53dfe96fc6d9ee2a9e11f77f6d26ebdf6f2c7f5f89d4da89fc8aa81f6358db4dcea454b2bd15c7c260c055025f81f0551419a5e1589f850d0ae9db72f48b434646c5371b6d3f7ce71a0a752bbf93abdd6304d63c0333e7e6bf09bf342f60fd4d8c126719f4dcb4cab5a5830c087d494a2fd84edfaf436dbfc57748eb9ea61bf31d2e286e5c1e9339e76b900b6c703107b882a49297dc103267805425aec72c740b3beeba218699dcec314e62af306d1769da2316ecfa2918c5b608f017c080dbc5889fde93df1500d1de48f0b256c7839d49907fefb83523ef7edfdc7f594909dc9a1890dcb674d7a62782eb2e64a87f41ecd20d2bf7430599f94a32bd9c01b482ec7572fb940d87bf4492607ee9664eabf59efd3b49549312d583017f81cd9aab6edb465c7a43eec95cab1ee8928e7bb38d1988c85a71ff0a8a03e1e2c3262662c8aa16eadb2b528003cfc5c9b8ece5a8dd4d7c42b4308eb08c1e84039e2227a06239c2f254a165666fe94d72b5d618ff957f49faaf76af6a03e15f4b2d0302b41f795b2f6c792c5b67258f3680b70866fb809b40807759961cd2cda72e34f177c54b350271670901a9f118f3e86c1f51cb521719e4d272f2e819402d344a28119365421e87638c456d224d29d6c7cc2f9c61df5ca86503dffcb572029559bcab9c63bf0fdc1577a1ffa028655a99bc64343bb22707f017d8e3c76f4e03908e889bd7e9010ca74fe640f1a04cf8d8771728c9f582c5dbe5b2a4b697098a545924cd11e6a3a29cdd0dcaee6526fe6afa48cbe9a73b2cb7b2d2ddf967d3e4be43bd792101f93be4819cb84607d5ff095419e4ccded490d9f416e5264be485991a0968a48982185e54168edd451f2f8d43562515247e7d03d1305a50a776ff125a8c65fde8a2adf8011179b11784f8b43b589cd2263fca5d5443cbbde77992a5ca0e522a1f1f7f277496572740ed30f8a610acc978b614b3674a1f42acb6fcf6bc7d95796475abfd8f19c63f8c58190160d3cb2ca5618a2a1b749f112f81cb1226503e1b972ab9b2dab419fb7745780a3589e667dff17005808fe7a65690a941ed618f2ac0237756200d297a9d53b7e0b7902344a8608757d6ce0a286549bbd09dae8206c68b3c4cfe745ccf95c9e6637aead3589bd81cb2c097aed0dbef5c7d1c354bc3028e886bbb8c81b9c58f7610a63bab68461a6793335029609483567adbcaab8d9c7068e29752f0b30aac4afb406dfb462718b662c0a2699d52fd7fed449c69d82c14e66f9d4b51e0105ddf38241c24cb8201a45853b82f87f5cf18f2d62ef2b32091b386d39f712c82bc97cd80a51761a2e1c66985dbd2c207aabb74bdec8b90959422c218a1986129987a464173fdf5a3a371b26629fadd8b3eadafc49a562a613881470815bd8cb613697615877ebcda7671e0182ff84c37ef385eb72cfaed32413371cd69fb9ecb5c1dce49cf7a6281e53a87feea21b9c098e58cbec799352a73a8549098cff589c1f392106c01c5f98c746e128fbe6fe87e95c6aa5d3031ffc2173f3f9c660c9226e3813e0e900d380617e666664c135f9742f38f6a138e8241e6c14bcffb3b369ab4f208e2786b9c9447d9fe642bc7beacc2747d7b2b597366bee66aa5b63d8dc5fa8b798e747cabc327a1e18fa4558402043d98592d926bd9accc42887818db9a001012ff0dc83f3759e456f9285f0d62787cd139bfbcfead88ac99dee97fa94b2d07856ccbea5cbd606b4696137f6916501d267b67b5e0afafff455a1828e31192dfb1bbff51122f6636c9f7893362d1d769661990864db2f00d372cc815e3c4ba3329dab0c8bfdb6fda60d7791586e75e58322c721e597bffdba3827b238231a8a291db6c62247e1e7c51a1cf3016f47244323b2e30846b09c1663e42bd703e91676c4699c7e41735b2358016a9c06f8f6d9d6b4180c55103ef92b3ea41251f5710e5ee74f168e99a75fe7472faac0981cb08232351641b8248267eed36b5b7b595710b2d4e960d3b0a5b81d985c1cb1e12295316ecaf25b16bea1c29516db416d97340fb34fd41cc20ea6b3acc27093816c1bfbc80ecc7455dc647e55a99ba850b4b907afdef5213f07321e1c9d3853e7a1fef675b9c39f2befa71f5f30ac2dc848f167273699d3efeb300c072ab554d62f0f2b887ec7341c54171373e1c386508ab95c97c7d520bff7df65be6b83633a38115e23b92be577ceeebadd18fe31f3085e0ada978b49495240efa57eb6762f323b1d0d3300600424b84a6070a9ab0fd7faec85bb521e721840ae7e6eb5c06a13c4568874418247727cff0da0af9adae2217a598012234945f851ddab10eff96ccd8be60a98df7cc4be39c4e55d92e1b8e9d5d3709282c26b944fe0698f23f340cf81c3665acfba995da1f448914689a9793c124980d25f5e1aaf5340a4e365731412cd78bd124d0dc46123161e97195ba3377ea56173e4de7a70be02a1e80e83870fe706512a89e05c3472798d113ddef3e4580eaa68069139e69875322aae81aac77340ded1efb4efd8cd887fbc92e4be09c7a942022c8829c356960a0e090b500967a9369b91deb432793bd3a74a0a52410b24062ed0166d401ecb7fc93b803f3bdd75cbdefc686a531fac81c43bc9dbaf6f91dbd578bcd93f5c9bd4cf8b524a706b9a5b0d3b2f5a7b6bf03e526c71cf43790bc3b7eb1e593517bca8d86d2ec25e5b42bc8cbe791bc5a15935ac955eadebf86c220878bdfa73e1944e31ba43df183be7af300ceb6b28e65b83610c17c41d38c1970a9764ace0b55147bc8820014faa8c7e74084f39d1c837bfc034baf74f6362fd59e9787b034bb7ffd64e08177bd595beb5bcc4e9d7ceb9faec4088812427d21f5fadd457729b7502ee77ce44b1d97f05a960f114ceea30305900e269b40f0757fb6b9ef2b9265d1da56dcd3d22ea47883d33fa51ce5105cbb857b2221a523f4bf3367a19dafa27bafcc269a68edb0b7fd8a6b6a0c43d1bb760d17e75f8b4c50a8300a8c4ad6a77711d6ca63bb9c88fbd921a697f2ea685046c1b9699610b2ce55e47ccb64337299705314ce4b3a3baeeb55f16b32de2011c297a92b1f253c18b2c0879597de1a5a717bd79480c7fc92c2737bb412396f1651e92f629fcbf08ac037f8a91388c1d580dcb1720ab50011b37cfb002e77bfb1d132e891f9de504974c8d9fda58ee2821b135b3964f0c918fa18f2a17f732729856215476fae3f3096e0621b8e83da4c1aaca7f2d027cb903caf91e975a30561aa50316514323ba3d465de4aa18ad6b18d6089a2d5ca94282e90e4ed46bfb628655adabbe4c69e3996c5c8b3cdfca53f775be455cb9411f0915663d117aeead5695fafdf37dc5be926f4b3e2192902de5de524a29659232c9097509d008bd03a41a2c18faf6178aa44cf7f65fe7d17ff3cfcfcf4e739cf48eab3161adc6845319a752980ca454c665608cf18d31f38157c2bbede8bf2f34abbfc770d2adf62ba1946f2f0142086f6e64b3621cbb6d16cab1e3add36ec6c8188593a7dca4ed30a5901da3fcbe46c5d4c8a8bc48b33aee3b375723b3ede89789f19ee679620cf5783c33dece42bb0bcd4a7dfb90179a157962ab5d4615a3bde772767e50faf6129ed10a927c0bc198989818ac3dcd64da7a9acb7c525b6a47cbe15257e6837298f9c826876f72945663f2f738a7c6744f907b34d78eda7ab8bf321488c030393b10da204bc73e4cde63eb29ba0e331ed56f9e84d1c435d72a2f59669a7d3a9763ed7a3a97434d421b975f8dc64bb33ea3619a50eedecb1e1cbc06fa2b227f38204c8d0fee77a20644859e1e41aa9eb9329934699e9db63c1529629f29e693e6e29b48687388e9a4b9f88aee9c4e2693c6e1994e1ae7452f4e8668d694329f34cf249a43cd45cf63e46e02d13cc99ddc846af409d42c1b644787f789c030d2ed4b9e3a7f7a080ef11d76d93800f8a1a7038b9a2c3d7c17ea1ffe21e7260f078e6f171e4e7bdc3a6b7356c28aa6e8e8d0435f1d6508d41c51b3583f5cfcabf293f4d7d3ef700a4c2e3ad2ba4092bc8873a4f5627b1294cca104c13140a989c0759307b91ec30d723ddb62789be30de9fadd813880011945f480e4859f9fd68e7f674b50b668c289202846b0376ac10f42284d9af96045533484312251f1cc7e0c993e89c43061ae10ea985f192cb2134d09b744c990cb962ac2a806b350afded5cad10e993a8443cdc127cd1d093d1d68829006d21cb491aae2c84f17daf20472695607a57ca320a10de873a30d89321f0821d560d1aca1834cbd834410a959d084b7a5c8856e35235313ba0e8922cfdd6043225844a195cb82ec6fe58d0031861659a4a1821d84d16a874a9127051468d181065244491284563b446a875cda37099196727488d440b5422650e8e178775301622488d43c2f08415d969a05c1107d032589413f40257806fcd23f0d048160d019df0e9bfc200502c11f2084d04b2ee20291a006b74cc91d44825c2052b3b6bcf972488dd05521f2dc4d360ef486794915067234541d5861c40baca8a28a2545b4bafced83215871650a1a4038028b56f7946f177cbb8e1e270451a19d85ee6e180910591fa30f397cecc18b8ff121fdfcfc28c15c7c67f3dd4d93a20134c9810aaaf4d0849b598c7898f2edb09d66b959c87488a38c2e3d045346196d9ba059353e66fb3c32fdc8cfed6136b65a0b2dacb5d63a67bdd556af715ed5ed56e757f942eac3f19e63dacbe8e6a3c647cd0ff9f3f3d3e726e46f206d66ac31c618638c31c618eb8c31ce39a77c32e2508fd465fbec44f0513e56e653a9367f2addbb6a168df3c8d7b41ff96eaf463c20f179cb353fdaa7cf0d3ff9d0e78f10cc870f5f6e9d7cd3e3b6a2b08fe08c734a2ea88b9870b1493b3449c908351e82608c904a4ae78d2598d4d189a4cbc809348c7868926a3ae5334a81d2b713df4e70f916c22de516b5cc87fc99e1e3772278e9717b8f934f070a89d1370b51b049f27231eccf579107c5a1347be1d8bf1cc26bd2fa4f1a7c1cf6f958047f7dbe8ed164da2e7cfb33cdf438e9290ed08fd8963d9dce74b70e86495f6c13c6aeadcbece3a4e322dff25910b85cc2be1d9aaedd476451766e401548a21564512a9d3296b07323c70e27c0529c08c88676cce4892094ccb003307a309a001230574ac0021e342145956f974b5cf1dd4dcccb07f15a228dab5b7def30c3f7b75bbfbe485144c2437894c5fa4aa86bb70e15bca022498ca1222ecc20410d41441081831145372c9102b9440f056826d2902b57628cd9d363891aeecabbab124ba6f69d66bd1b5c8f6e12fc375ed59d6e1d3d4eb0657cbb5cf94ac5e5e59615d24dba4aecb5aaf1baf8e0ce396beb09e91c597aff689723cc90e14b87d2daf71e191c48c1520f37f0c28226607c510329493c313aaac116444fa906244d7819030647332c81460f4dc288011238dc40071f7a6481c40ca12a4becb0c3cd962c922863073448318612489c100189d1185da008a165b03484922025bc38c1831a6a48eac1194e089106184a524da808a30c18145d01434a1528d0728592123f70319484498b2384904284196491a5072fa2018b09942ce941141c80428410689084172d2d88c175021758b1c40726c8e841940c6c81030a6aa0458c24a034b1d6044eb4347114a506253276a464e185d10f1a32983284840aa224be40d1c549c3c0c80ba020e5408325237e5a8937462be9044742d48046922445785284109ea8420ca517bc2e48d22823076368d12407284788a0d8c20730ac1c3185890f31c6dea294d271ecd8b1634f29bb9790aa5c79a2e3e63a47a79aec23a49c734e09db4e55833127a594cefcf6f150d5179979ceedbd189f2a498ecfa59cd7d4fae99494bad44c4fb3d6413fcb43dde6880369a8c810431ed172cdc528a386a58d37d8a7d6d5fc806f7f7ecd0ff8d203f0dbbf6c477ca901e0df4dcb9654a2548560e90466c80c7ae94366901718617428046eaae6da6695555b4b2989c40059386ef66311969224e69d949b25317fde5f7c97b73c1d5416ac65aded8c23d01612e35693bf6e9daf12e4982f4b3d03a44d75d41c7c5c62bc2c7dfb08451298ad1391171968e6308166d0049a40136802651298ad094404c404d115525451214d558c33c619e31de1460ca3c36d6806f17de784724e891911c4fcf2d34790de6146c4283d9da6dedd9f3c844cbd3309bc567d5c3011a3f470c8d350e4a92e013899f8cecaa2d904f578aefc7044ed3b5be33bfb289419dfe13cf40ee76f379eadbad93072771afaf65394771a3a49f17daaf2edef5d0fbd3b31f1446018d91cca3e1d28675073d02f7f1905ba65bda7b52d06195a75531555331a80812e64f8a0c30dca3862c906b0b082861623d2b8a283fc9eafdef3f79edbf7fc3900055ffc33cae1cbdbf86794c3d1fffc4d8f0e0821842a000902a4b920d707b97b5f3c5ca159d08104691ef8d3fad929a179e009cdb2b9e972ac624e527c72df4dd74155bba6c870f520cc4cd855ad85277b429dec69ab44d9de1409fe7ca75900f0e725342bc6fdb154fe5c478f6669fefc8466a17c28e2507fcfdb6fa65d106298967bfbc9bc202641dcc985b6ccb300bca7856e5403f06b1dd3aa93a0096d6e35210138d68406e0ae09dd3800aea60dc003701371689b3a19be6e30c97e868556ff6536783a347b3a540c002ad17f992ad3545a72d7499ede64311b4cc2c898408220cdf997c6cc27bb91e306ccb21e271cf5ecd1512400d8858b4f19f5743a9d586821e924e9e9743a7139dcb4a7d3e9a4c20a5caeeb3a9dfc74da296167d36097c6a15e339fd4c6834c06be506429de95cd6a662e0c51ba2e93df38aa6630e96219f893c4e4b61fd3faef55dbd2098218de975aaf6beb3ef0267b7126b32ad77aaf1631c65a93619795925239b1df89b1f6ae8661c1d8b314e69593f9e0ed86eb2243afd9dd2e2a72d4b029b04c5dd9608f1a7694e13f231ca67c75011491e3d72da7b9ded17fd39c0a326642d95c6b8c27934f379d4c73dee9315ed55a9bc2a80c7bbe329f5835d97d55bfa9fb288d98d6e1c73ea63c519bc2d7f1ada1b1529ab9f4aad564d86563a53e7d564c7dfa4b1a13232775e82b7a6fbe1d52ea35c638a3c4680d76d908e19c50c22965add40447b8e1da6055e4e89daafd96a057f1bd1ad9f1bdd7c91a5ba78cf1c5bf31c62b4b7e8e92b18bf0d357cd45ea236b665329b1e3cbd6a61373e9984b9774de39a57c1fa7d4b0239be65af530d6e86999fda881f9c31a9b2eb74b4b7eeecf65e633b7d5d3794fbe53c16cc743e3a7173f9b36a5ef513a29ed9ed06484c401ff615972948975769d9148fc5a678c4462f89a1fd7e2da516a44e2533aa9df8941878f653f681e6ef7de5b33f974a084b8638cb5c65a6bcc17625b889ab4f7ea63dc296175c6c78f33d8f9f86074e9f746dcd258149993442fe58d8460e47662899f6f8b81e7f0693526c831f389efbd05e4d74f7b1f610db028dae88d9448ea192c51fa1ec102824c68c2f35a0f46b865f128ad9556fa9e9727df0683fc216f8b68bc93cd5bb79a3f9ce855eb763ee2c06edc3e4237c4e2bed75a8fe7c9b670cbc3afd2e5270a73b3d2bb8a9587fdda74642403295d7cf40c3218e29f910c987ce780a6f2ae9a6b1b22a27f46444ffe00ff8ca4283d97d3ed25348f8d80232161c96e398dc345c97573baad6c9ab35ef27423f03bb85a45df9acb7dcdc2b0264f1ec75fbf327399499b6512e39612e3adcb3221d6e5fbad833fdf5d9f29e0c8b60ef318896e5b8f98c5fcda8ca41c1949e1f2d2719639a65dcf341f381e737bddca6c87755923dd62bf5bd7598779118bb5cefad5840cc1f1d8c6011c8f39b6c180b94e746b9fce651dbad5ded7ae7d0e61277b57397a42a90a08ae910cfd5e5865063430c9fdcf2889292c7809c01459417e47548a8ea814f1ef88cad03fb7ff8ea8f8f0f4df11959f97c0855014613129c1e2e50b2c4bc03cc910db7f58a0f84141194c80b07f463a04c57f588c86d0a187e86e1f4b7a8c4ffd4a8dfb187cb91183a52011a05e81ac648d5f1ede194a74a1410aa0263908e1d45014060a6c30224b1a39d8f69d1b36ab1d49457aada9957a8ee621c1890e202b2481c44b7f32c74b59c6cb4aa74be93b9147fe40d4926e238b64b7a6f3903f63a2e49705913f10c91f885a2f0bd25c926450d46aefe9c8135d1e71b1ebd3a99ece39e7a4dd1055f418c460ca771e8366411ffcb018b5e0a7a55a415645c997bfcc0297ab5c90dd62da6ba9564bb9cb9507f5ba837aa4437e882a6a42d673e4b19b8ec691afd27181b058c820c2419831ac50814e115848c0c3171e8870468b85263b8031841731b614f18131528002a41c301104a6d5328dfb72d59269aab8b121cb306197e4d53fa31204518fc8aa7f4625b8e1bb9dd721cbfc335af26527064d9ecd51ac289246774ad6f34efa94513617636c289f4c8bbbb569eb85e1d664a5d8c5adc5af1a9dd90f11fcf4d6bae943be908b6f364ddd914c6194525fbc28ec951119badd6e381fe4d33fa32837320a11a59766d33856be6773142645318cbd58b32a8c79e8d388dcd957f56673942527689b2dce41d6eed82004c11ba1ed8695a09dc8638794bedbb16a75b3bd6f59498a386f7b10d56edf669e070c25459cf715d36e5c3eb1f0b59fff8c8698b055079cfd673454c44398e33bd0adea8aef6c9e0525081fb1f8185f70f41106407c84c112c7aa37226c2a60ef14c117330484722501df7e339f7e5c740832412c02e1a35f8dd4041137603243174bc8f420480a3039c0520510ad86e23b8722be65b6c81dc7451e7a839316f49d1b91a75bd07b449e37455118413f2de82a441efaf3f3f3e3a4059d8566d995fcf9692131f4f14ab45da461aa142201c47db44866f042065b205185195376be853002438996a223b8b4dab96e2adf7ee30a0dcef8efee6e6eaa90e48e7b38a459dd537ab205e5330123c14b8f5dd8f868c1784970cb165b5899c177394260b878928511424614e1882c5cc0c3b72a8ccce57437af8bef4af8ee720cb1e58d88e081881f14a1e5db39211408ede097720eb7fddd7427a487efbdf85e7c7908f9517f9ac524008d984f6695c9c48cf2708cef70beb3d8d0741271a0df303256c5b1a287233ad6c543ec0a4c8a87b17bce96c0abdea1fee9406f6d36a9946e361721f7bb7f5b901dfa1c8a3c4380c092b4f4031d7e40460b1e800b26a6a411c50e9a30d1823e9dcc272724dac57d37903ab459c345c85d6d48fd69d962bf19817c944a3804bf50dd54f26de491ad4cb573c3b9fa7040efc883fb6e665e906f121402e915c5b66180432863467e3d27ac4abfc2cd69187569e12408a577c6cbf2b8bc2e35be7b4a4bf88ace809ae9d2fd73732a29398e20f383dc612c870cff798698367c8e9dc773ec47febafa315bf342d97693f380648e7df1232f20819110405878a0c3130d680248072dae8082072f99d6a37df19df61bedceddc6bab8efa6064bd32151b3626c4db7d8f542b3ba8754f3633a1043b0fa899f7e31cc5ab9b2198874a11490d4c6459ce937e2bcf14062eab2d865ed55032716bb80e802afebba50292da382b2f58ef1eb5762d86218635424618b0dc1646218c5b0c530c6b4d468c1116c4dc716fba2856631e0a7df8a61188602e6353be49bbc06fb91c7df427313080ed5004939e63b8f0121bbb0b1d05caa4bee1e129020290d0269d08a93fc42e4c9f922892674c842881e58d19a0e82c8d3630a183182b081141e6c684d6761ba0ba72029cf5b0c354fb452fe3278c50b15452d940bc5f80acdb27efd5a913444168ab1a2295c686e3a86f9ea2863186ba1b989b1c768390c988736340e5012f6797d8361fe7558835ddb90e6a6b3d02ccca7056a22030992512052409e1cb5c520d3c41445ad93a7b4ec2f8c25274c1ae5272de537d2c049104848f805181fd4e535166beee2796004c120264e9a673a7cd22c24a6c32128a568bac52e16a6b730dd8521d7755dd876427333a55d5591ea890c816e84afafadc70914909e1d66148841509eb718f09416ca611624e5a72d060654b152d44aa5b493a3b4ecf24579794ff7e8d1ac0bdb2ead95b5d7aa1028e95feb39440ac00feebb407e514481c40be05f1457a6bc8d4d9cd80759c8e570bb696e1372dd2145fe7248e5dfadb3439c52086d742378e80fdae84400c37b3add9187ddf5d6a1d7adbbe0e972094dc07e39852664bfdc3e1c995f7edd9410b2f4761674f903fc336201d1a390f2ebd755cd35143d319571ea9a9c8566056f68e90d2da17c5c9871aeaa15b59fbab05aadb5f5c2d66b4ed66b4cd66b327bebfdebba0caa5ecd69bdb606cef1da5be593c96afce530ab51b9c06c472f397aee9f91122b7f65b0b5f5ba9756834dd9755df5fac96af161c6e3a1f1b5a2b4fe7bba7ef2180dbeaa59325b77e4651cba29f391397971279e317e253e69d76fbdfc450badb510de9c2e97d154cda97cdc53ede9180da230cc7c2af45456b72b8a0cfd62d7c668ef61f5d71cb6aa1db2f5ea9808fc930ba91b3783e90a320daeb2c8663e15fa9d7242db5233754788a854524821a5100ec0f416cbae3d4d51510e331e0fe801d2e3dec38c87fc930d41d80699c28e4fa60ce597a352a8d3e9ba289cc2e598635986717672abf178dae540e8f5bf57837fd2605073441e474f1afc179a95f9522cf2705c97529869dfe46f783a4b3b3c750ae5a9dfad5b11f114ae00daf074e896dcc1a1a7521e0ef8343365287ca94051b423c4cdd143b32a4b1c74e898f1eed5e0e3dbe2e3abe2a3ef783c3d22ce3361e5d15b8f75e170c0479e8f363e1600d59dde8588d3265c8fde0fc7c9b71c3ac0e4e8d1d123f2c0271127f2c0a399ad5b6599adcbaa231bb37536a7b62eafdcb9ef9ed253baf1dd53b2d36a53ca677d6a3e276d04bf5a8d068a381d79fa49c4e956ab9c819e589b333c8247f0081ef5137814b1ca673f893c00f0953bb7d3f5931b4f9e7c0c8a38ed34de598c3d22451e006cbd64b3bd889323524e79d4e215cf46fba5c52c80da5fb75a3910d0f65e1c8a11e9e98c912352f41bbfb4b8a527c7edbfb8da95cd6a623b25ec642b879f653f687eb5e1accb783a30f3e9329e4efb8d19e79653e372a677dcb4560b3239cdd65993c96562105469110b68a33d468b5b9e8e168f6befa5542fa17a296f4b52c3e21511a995bebd95ba0cd50ca6487c2771a851c3625b639a7e329d6a6ab5895d7cbb292275f5bb88d4451de4d021836a7401580093b4ea32da1865cc62a54d69adb5d61aa7afa2e7342bc7e6f19f3cee449c213966703b536edd8acef97cb00369d792219cc2dd348735eb527b270d16c1c8039bacf22f612f64a240b74c1b24c2ac804d40ae1d36593de6736b22b1d630c8c4d3694804570f479cdaf5f31d0ce3db61a694ce79b1cb524a695b1999aa55caec5e3c7d6694562a299555de182ca594b68354be7d5689a194104a29218412425ac3822bae90d1677b3767f4e972b3de739374c6289f742963ab5e4a3ae7bb9169588fd1afe994b66dce7abc20078356047ebbb5d6e6a04e53d07e6ed9ba7f5dadacadb5569aafb5d67a67531062a79d73ce2dd3ce3ecd91834edb995220e4ebbaacb538e2bfd9335cd6dac8b3b2bf42634584dc395ed934cb621bbdacc5c6e8828a175468b082f4a60244a5c9fb537fd6dbe1c3818da0ebc7fcc2deba1b188ac0af9756639cd1a79058c277af8c9f4e5db376f55d47c2c79377341f4fde9d3e7a7c2cea317bd71fb347af2f6edd755d3eaf123c7a6f325f742514e19f3d0f47f4e92e68e0e1903e536ebad1ac9ad4f683fb94a7b69ce63247f9f41c994f4769b6b9cc336b5f47028eb69f85017ec6f2b32ddf4d3617bd93deb27b0a69975dbb947287dc734eef99bdbd085f34b5ad01848c496cab32fe9b3d03a4f8459e9ec6993e5768ac8890316c96f5ead3afad1a81df6dcab47c91f209a2c76490df7736cfe889a1efe4ef3011f4d4dbb356a324bfcc0723c92ae8104b22773bcf880927d4bbe751d3fa9fdbdc6428c0a75b4e969befcd9b731b7f456fa49f0804f3120623f6a717a1df4fa3c3a73f1cf07323f2c28479b9e130ef74aaa96adc3094d4bd2e0f529512b9dbf979e3cd35abeaa0c50c66f86783ef4af8e95952eefc7d6245cda25b8d8fe9596652c35ce24bb3cdcd48bd266e3bfa238f0190a6dfd0d1acb7820d4a3fe1d00d4abecbf1d3862fdf3d2e3f9322a4f306273f29a5cea39f6628d01b9c7c0acfb5a68e6db639e8ef39e8b0066e73ce39bd4692fc8ca65879eab37ab55d11fa94fe5c6064673e92ca93ef1cf0ed3367b95ad527e510b2943562635b7227e95b55792fb5b4d62abb2b959b7c5e2c7df4dbd7e9135cbefdfa9db4ca8cc7e4afb3b12fe39c6649acff476bddcec79d1c3d82b030040449827e7822a5284b9766751228b7663f30efaddb9e7a86a96e9673751e199118268c8d8e5eefecc7089e627e7f60f4e8db769433aba4c53f603b85dcd6d9d01821e4ee2667e3fa0925f9207c9a736d44604e029e4e84b1a553ad849da7b31ac20d97d3aca5cb05b771e407dc8626f4ed26be78ebfd0f006fc614bda3557a27715c97528726f4fbd88108da20e105f9069a40dd72eded2b12aa069f8d76a9c567a3b7aefa7b36acbf67a36b9f2fc46a37cdc52da7264bee0d06ffea93c86b1eddf60f031118e6613042df3ae0ed069fcef4aa35048ebc07565f64f5288721de71d35c2b3f23269cf4edaa4b2172ed2dc7e6812ddae549ea77663e34767bc3872f520a29d177a7ef6c077c0d04ed1fca00df3cf6faeadd34c100d046578c8bdcbd2dff92b63c2417ae7c1b4d5182100864ed40aebd1d729d02bedddaef10600068828d67a3fd55b15a7d870088d3e5ef1090806fef721e014fa7b12db20b1d02be5968418b1c1d663bb8efe63e0cafab85d66e4c88f5cbabd64114ac5ffea8096718bb4c2693a9566cb3cbab76f97dcd8ad6de6bc2267cf9a89ac9afd5fa61e6e3374af9d2ce7cea15a52cde571eaf078fb9d56a76f4df77eb756a1d3eb55796c2f5c94cff8c7498f256ebecca5c7baa575a20e5a3e9df951610f1a6b71bd71cf57e9463b9666aed954dd884f3e9fae5113bfc88edf5eb31d86afdd65a7aadf5abb2f5f6a3b4cea143ec18aeb59ab0099ffcf2133627deded3c1b6939f4ed06d8751f9f29d0df8bad66ac2260cdfb5538345c412cb224b97f1feec64997f00f8f62ef5cf0730c23f7f5df7cfe3a79395c07247e8d45c4393941242092194b27b85355f3d9d257275b8e115cca0cc289d14bb6c9d544ecf7ce293186baa5aab5f174c01c7ce772a20e4f71dfeae3cb0d52648a9bc525eb64e896117c3268494425a297c1ae5004cdd07b64e1a81a3b516c93e19a35d72dfcdeac51bf1bd51bbb4681cde6eae0e4bffde663383f0a233a317be329fe817ebec42bf5ac431c7170dafcb73e26427f2d44d47e344e7a2c27bd00ab481cb12180814a463a7c7b332f3820a3c9de83828778fcbc7f8b850e1498f5e8187e355a51c397a9ccc19eebb91abf73d27a8d0428c31d2cee1babb1f0785aaf7b4ed6c66adfc895d1e11b274d5034262ac7a3739397f420f4c49966244bfdee57cf4fb8e78621190155c28f2f3d15f7cf21dc672f4dd4bc2d224c6296f448f36f8f8bedc883dc8c8efa837a1eab96eaf713c0605215faa563a9aeb0182e6e49cd46da473ce399d880c366fa3f46b03d29cf4e79816a439e9980f727c5fb718b6223cb0256b04e50efeb0749c0091689e6ec9d79233c889061f26016a960d4c6093b9611d2750ef9e951ecd49a7db099d4db36c2410a411491f129066bdd0ac194485155a706148b3e6092734579dfad44ed041467edfe9681ed9923a9a4567ed9f6164b5a9736e45e0cb04913b7fe9cda29475c3e594d0acf7966e58e689dcd92fc2a2b82b409771262fe328bf8d3be371f2f6be4f461eafe8535b273fe517a5c97826ca3c2d74af4b8c7743548ff2e72da8b6ce569fd90fe8322e331f312eb375288f49794d2d91ab9b7a1aa334f83a9a85725c2fd6fcafe61fe39ded72cabbd5a3fc3d9477e683aa39b5bdc7d3f370aa675cab0cf1d0b39457797b923f792e3ae34f9e3d3f8cda71fa985491fe18af325b37e4651ca5752ad4269b43a53a943f97d184a0b621aacf7ebd9f311aca7b226ac7c9dbe695733b5f6f7c759326a43d7ba675ed59765326cad5a357af980f7276c8035b15f5e3e4d98bba7c8c937043ae2ea43dc6bb7695c75addc6f85b5b6b4a663e2994e62fe3172583d250fe501a093b64146ab3cd45993d66d2b356e3237bcc8d794f474646eb509e794aeb50ae7298ed40798cf7449516a3d5f848f9c953db6b4ef5a69e98b5d3c3340e5cdb10d5c33641af2798d970df8d10a1e9d885987c4e3799e2c973660af327bf363e8ddd1f21a679dc3aebf3c8d0bf6c070cf3f65ed789c86b3352e38948ef8010eb2617623d5e79a553bfd6ad5fbb11b9a4a762542819999ed8d3325aa7d23a201f3d26a57523f8e828adebf968f2774df1fa080220224fbfd7bbe9d7e7b5312479698469cd3812a0da5272a435b3bdad8b9148841d8ff744ea4f8fda8b3b30667dc891a18f442eef40f0466a7ce65db4712372794767dcc619ba11c936211a665c890c4a8e380d0d0dcde5ef25a01bc1539ff1970159794fcfd0ccccccccccccccccccccccccacb6f71230b3e588035d06c8d3191a1a1a1a1a1a1a9a150d0d0d0d0d0d0dcd6a53b2d1b80c339b92f770e2cccccccccccccc0ccd16e986f97b0cfd618edfbe21f58dc4230210225f0ec37c97f96034851a264c98213cf5ce7c5c5b678566bc3321191e520b4a8d8f975fc58994876eb70091c54806ba23cf81fad487e963fffcfcfcd4fca01e9d6e2818815fb721f5e96624fedc6407a14c6f4b573ace579747861e3e1cd29d48f40e040f9f1093db8dc80bf342d93b6d9323605ef2f34704bed436ecefe57470831888b4afda3622d463fbd4ba6c3379673e4096c016ca5140541b1295c770a4a5f24bb31d4460989797d79cdc9b933c6a4e273f49e9971022d13b931b892f140295bfb740541b92233f2d2431c810068a30cc10021a4508d352b992232dd5a624c651a68d4874e9981e19fa1aebd1b1cd6becf683fbea5548e5319a0cf0a7c84910501212ccd042f2c2b4f20654a3a5da6850b91219941c71140a85ba4860981694e92a2d0f5da5299141078a1c18310333ae10824b0be54784b82001115ce0c3113360d152a9542a28727b4f47b5c97cc9edd073e4a181a6a524061a685a4a6450a15028140a8542c5a05028140a85f225375aa84d8908a4a0c2831337e0c10a865a319e72253228f980521524bcac208a2282d042b90caa4d49f624499200dd68a91c886ba93c09d0aaa57220db527992244b6c0bc9e9cbcfcfaa85a482f9f969a93cc912ae8524a6f1d352f9921b2dd5a604e53136dce04a920f55c4b0d26a8f59e5c6b13c50c9e2043760a20b1a5a0d8f0c91a48a244264018303a496a963600067c85fbec3d8080aa57fde0e9d6498c215348ea0c881cd92039b050a2911d00185110f07c7424174d3bd06acbcc3ffdccef8f3cc43f3606bb1da7b26cf341d4af97af78a642cb618fea5fdb7d6f8e49c2b9b559661ac66399e0ecc7c723c1dea60e0a6d7c6a9ddbbdd688e7a7d309a846ad4d87a220e6d1aed84c6a1bedaf2d4312b72918e86a6ad4b8e87e3bd2644ffde6af5deeb423357bbb2c4c653502c973699e16fc65553b9d54e3ea3258192657afa562c2f139af19ece2c4ac7a3fc5e7846832d952634e32ba7d1922cf1d66a03f2d6ccd623e250938cd6a3b9d3d6d31cd5d1e5ca63fccb7c4e3276a70414ae1a7694e33f2b57befc45fdb37225075ffdc6f070c60bcd38ccb87cf598fdb372850ad8dd6f9aba0efcdd7a34477b74a41c3a7671399ccc55a94c26198cf98d63bfd70c5e69af45f3315af7905aa98aadf6bed65af3bdd90f9a1ba70c8a26dfbd305e52eeadcbabf64222f8baae2b730c6b98c52e2dd8a7fa553737994c12c74c5ecee37dc51863184c9e798633b71ace827a124ba6c137dd3447df636cc2a60cdf7b618c2db610638c5736580631c7b21d98872f7e667843e1906fb21d96478dbf7e5138d3e0636cebd535fb51e32f66addb77c1eb82d062590a7ea3844dda7b1c25e9efbf2b51b6dc9b8ba1e9dda4bd3f653c6a643f6abcdd220a4b61198cbdbfaeeb9a99a961a100aa01c47b27994ff8743ad59bbcf9093b69355f183e9dbc9eb4ea399f72356113ae399f340c4bce19d75cde5cbb11e3c4e4879cbd66b702e58cce76e880b2744dd92dc5624cd884537e792a2695651bc658963d4bddcc94313e9d7c4e19b3f65e0c3b51a11876d94ae95cadea7bd4d297dfab5a0dbe97adf56535cbb61a1fb4bad5ea9cf6523537ad636beb755d5e1dd36a72862fc52eeb26b76eb193ad177694df3f2b4b867e352b8655cde42637994c97a517be7e69d8c596cad17724fcbc2ea7588d7dd55aec7a7739e64fabc9f0a55e73d1f7ecb3d65a8b59fb306ca3b6d2e92f525853436cf8e02545ee6c6034f3791f3521ecaf663ef0a3865dc99d0d5f3d1c77c237a349e8c6d6dd2cf4cedaf976aeae5c8a1e0e884d19ee8723f32e5e1e2011879a607ab5d68a495386596bed551dd3e09ffcd27cac631a8ff7b65a6bb52bcbd5f864cae2b418be6496021c5a7579eb698c8bbc80dcb5141b866856d7529a887a3f691ed8a2de3f506f276d0364c113408eba4983373c88c3d3a19ed26010e4a8c3a5ecab9cb3dfad87f0fea19d6891614dbd1079e0d00ba12aa894ccf784452b99aa1909000000e314000018100c8844229150302ad8c5e60314800d8fa6466e3c1809f32487611c641031c610420820004440606666661d002f70d35175da46bdef9979f19df598ee49717fc8ccb99653c21d6ea3a49d1b3625ad260de216826de05a689a234fd595d222ddac64f431620257f0996e917b5893dccf2c566add5bc1a78508e16621143ebbae873b95faeeb0d5f524e1379a2eb32d5de606acc180c970ddb54c9e9710fc1450729a58c766291499b09f7768f86e9bdf26bd19a2820932da469c454ae02312912093a4c892dd325f798442e149924ed9e1d519af51fc793f558fd9ae00a0f1121e41d54ad5ecb628ee247445c1aaf11be596e7f30cce2ae825cf6abddc3e497e0f3cd95f432274883046249beb25fc33dafe32d7e2efe2828e4c69b34aac50f67dac490f2ccbba4e3d37fc8e2d684a1320b6426bbf001b4330e489a64f2c1a765ae4f014eabe7e120af8b023eb92039d1b41a83aadd004cc50b8356857c7be30aa1baa935fa2b669dee5d40ad88612d19494532ebadde48d44190146da3f9a39470a0e8348b6da64e80487df69a5ec2db4618d94a743c6884cba9d22f5fa75b0d171347dc94a794f3c59008921df550e26da4a9cb2b57913bc82b406d6a619c3b72ad90d6c10f83da8f71b071d5495fbc4b92d18f66f38e430149efe42ae9aa9e00f1c29926c1e24283f8e912f26e35874a42c9ee51ac3014b43de9c362c7e8fb60951a8ecd92396ae49211bfbd3b3560a13dadad95d4889e1fff9cb2997f8038d48a9cf4a490a56865680d445063f160138de5dd75945e65735fecc171c3c79e99e400c0f0e5d68292546632629d946a849313549af6179ca2803eb79346fb95d8fd91db9bdf961d0347a79be20b26f5e2237eb7d2bf5790959fba890d2ebab10643cdea4bfbea3cc74657c93dec373515c0b1db8cf3d563d6e285b9d80772dc631bbb8158f49ee131ebaf6bb0eccc6ae63d8440fcfd1731a4c15f48f410183ca3f96c4af646d137deb4820b70b917d9fe779921aba25d5d20447dd1f1f19dc6c91ce3d9f56907eff3482d939ac82dd615b735732c7fb595f97a5e34f8f5a741c180e33eb59645f4ec31a77a2e23b60f14520c4de39c5dd1b66a054a52a4cc9ae3802bdc7382ab9d6a328fbe3bc74ee1e0bee2ac0bdce212c77de2575a7ad1ba44798416a63cad5ec5d68ac67f3cdd89d061de988b2fd51cffd6b4913888729578412584d0bad655bbda08cb6581618f92dcc426cabd88a0820f94f42ed7e41b9c93d39d7b353003cb343147d31a9109026d3f188a28533a5dbf385a46dcaf338e24d966fb662acf51f084b501f3ae7724b9105c3eaa6d395b43fc6e19e6b96aa9423d1a183c0e1818fea56fe85e9ce5f789084153d6992c679dfd442c13ad9ea593eb99fb7f86c9f1e31d26957ba44de628a45a31daf3a404f74fc2c6fa7d81e50f9201d851ccfb5e97555aeab9c9f26544e95070c41f32908a37dfbacec99156c0731acd9160906032fc60c2a91d1a7f043ffe92ea43c478b9849912b468abcd6f97abd60c9db48bf815ba66103c43dd815f266a1a223c05db74965b09bedfe3968473a94708b7ae4b00dfb038751808715b435f4e3ebf0730b1ad3f6c754e35a301ea92bd004f1b888318ff6340c38f02ea221e7cee4bf5a0cd690bf45c73d7d12030a18608fc4472ab31254ddf9123436e2cc84a4666837d3bce1f55c1a2c102b030b7e5190a738b3ee884d9d86429e7e71f93295784688983380054f370f2d0d39bff53d068324db7164244e71c0bc43b97fa4dd3c62d50f35ce1c71697822c88c87d848b90d39260b51b3a4e6f00fab1a9f461a731edffb46a8c2fb0ddb3a33dee45b25a63890e9a13939f6b70c8e88f49b1dbd020dbc852626861545e581ac02e4542356fdb51baac10473eca8f3459ada679fba0f653b9a86902149a03a063007650cfe54c5e0e2d4a9f2c5b6bb2a196bf96b294a8ee67dcccc50f7b9075fd1c6e3d39884183f1f08681c34ee19c13c6944c986775c4938692a2364f02025e74f8ef7fe82c839950a07445542711fdfc82d42a7aab84da5f8504f55c02b0cfc4bdc8937504b62857470678abe29a934bfbd0ea9867cadd021528502c2cb3cd8dc08552fef7d63997db0d2cbd5db30c888cc9c5bb74007ab5b4d3832d8f72a5b9426c643ecb3bd0fad0811e79bd051fb79f8fd81900c3adbcc5c6dfa796d9b892cc0f37f2d0d40422b1caff4119757f44fe7955b7a41e3eda6f6091ebe7af80945a7451c1bc15ea19b545f7950cd3eb86f1d6dc36d65f4c622332ddde7cb26b5fa3ea3968a78b46fae9bd2bea9bc7bf3ddf4039e5b3cf247bcf0bbf14d378fc6143df0403ed1a57ce34ff569c7dc3de12be4d0ac7b77f7523cd610d820c7b439f130494d91fc917105df1e255addc2777a56345733cc6d7126c3df9c30984e0f60270de71efeb2c99d2479c973f54d6502ffae556608d9807230e42c1a4bf33bb9c5644b5009fe50cc6e84191d54c04743a84790b9d215021d10d396d48d7a0d64a2ae76a3b61ef03ae51b9cc8e2ff40a02a6097ddd50a822a1461809af7c3c3ac550e1ef095ac784b8b9f19e21b4e77860c11e38a50cc1658eaa75066aee4abfd3ccd9031cbe827f90f4ce88501f50b20d907226aff7f14d41f8096d077d869c4b42c93f7e63d8c64ee9c558b2d551e3b21fe11ca0f0762629756116439ffa39880a640aaab06288b0c80428e2bdcc6546802e2e772531808c1d1f25d9c02cd17bfced01546223cf4bb093e90988c405e92f4c6efbecb84ebe2375ebe35e0bd2443d6d962ca7964bbb6954d9a6c67b442e4a32e82e745488068a615e6d462bd4713b720eee49608f4685ed992e1f17a136ae17e98dc7081501709cc79463a83f347a4cb4b548d03263d5044d3a3c3f0da12fc888aff168b69f5965af3764c07a0b1e096c441525639582bf88d22cd2d87f25dec9269fcb719328ea2884ac80c873aae3c8e3eeba6ea35834992bfa2a277ca933f57606fb36db7bdcfcbc4341e54609d785b22205916c9a649f82b85f2de4e34b412867226342fe8fb54b4cce8ce8edfd4af70a9ab0994f1a7e51522f3868326312839ac98437fad88e11525b97be6635dac31a3084c9c73c8dd25b149d59a7ba78f8ec05b6313948f42dfb0bbb09ba09a45447e86ff8c842252a52907a36d27151f1dbdce773b4392aa9c45ec9d94b431c89c98d200ed680d96915efa7daddd221c60d801f420b4c25ee4fc8e79753f3858826097436df308160b3f58ae8b89d2a2af396603227b5761c1ee1f7acb7e8e2335b738913f134bb3b19102d74bfb6dd2d164036459dac3f98b49ede60a59eb6aee753aecff3c6ed2e194b2431718b63074b072f3be777c6fa5d1482952f2674e8bb80e5540ce32fe570386fe6e9d2b4e838905179137d6fdfe8b77d21a625009725efcc5ba3af5e9c5476f17d79c89ad62f02471d0409f82c334f3453c63cdad6b3558fa542bc35fbc1e72b2c3ccc1124e93e69fa65bb78f7b18fc0e9bf3a56c69f15577f26c22ea1611114d3a9913123c0a112c6680b9192bef5c2d48d9a5de3aa98ccad05db127d5c4700bc1c644523b25554e28cede053066bfdfcf6c960206e25f580d91f96208ec2cbce484826a0c9fcfc772ad38f3038ccf4a08bd4b421d50264feb7ee291baa0d529abcb44202adf5c8b77cd43b0cc94200e92bf468ccf3ef4e5a23185a4dcb57520e6f9b8be5f1657476bba77fa16ad280278f70a629352a1e149843108d9be7b1a4b0eac0ec18dc798ac4baf656b9095d684d07b366e4cfa1f595fffd514cac8e65c6e7ea05e3b453292cb5b12e45ce5296742da0e05410c39e6851dbfb45c4771830517e2244b01f02614e6f6502742c66f9434de8d0348929085b4ad2d86184acddf23211c856634504072c4681b1a3b10224b7cfb23e332ade42f2d2449d084cb46675f4fce503a7f998e5db10a647fd9767224258021a56246dfcfd8448981924c1323518034746ade6122121ab4ffc83d5b42af955d0041bd4c5912448db02686c6ac4e87b8c59d78c15f562d486612d71e25df0c98383eb8d0a3c91a53f5a5569dd61e1672bc66150708f7c1d9aa69d626e2fa006d67ac5cfa07c4ce11880af0683d399d41c5fcb9d3f89ad04894573e5cb637cd2fe118eb522e67c47e26755ff3c6e463e75df6f02a0ec4738a54d5ac692cab51f0bf3f221fb10c5163176b24e725dfa3d1b7186ea5248d4a53525faa394cddc250ee4ece36a14b7e9e481c951a8e72d77a0063e256716e8bf608b951280a120fe2ff782dbeda9a29245242ff09635e686d6afa64d2cbb2ce12cc41b0954b001db316bf958d6ef95a5c0aaeae298121a07314b75ae927e74fdba8c9882191d5c2219d7641b379744c81993b338e6464995112982e104198df894962ca4b44e4d860c8206554a8521d3ece6f7d0e95a88504a406a97cb8568b142e970ba370035397ac7bff4b7ac555fb74d91eeea0b491e0dab7ef03d2c6b8e46bf03192d97869285b17f27740779af875f3a191dfb03deae811e8b3aee745c1f2e76f9a0e0a83f654d6f0197b88b849132d4576c5caf1276bffa814961e5c5c164420b5073b1529b72c218a2945c6f4977a6daec24fbaf29aba33fd5427a2262b6ad1f8da6105b9234901e2e61861cc2dd33234fffc1cdbb700a32d72d23755acb33e0355c580c9d54df5496287ae5ea6da71b8148fb982f62b57b3e94118cefb9d9dd08cafa70160ebbf64687c688815a11311f696a311e2f8c43b6d4484f51d1b47fcac4e895bb64ef18afcf640949b6755f8b3a0c6feb10ef2d9d50d7ac83a74fab7b5c260007067e78d627abc2327bffbb79e6b6ac8cf6ee2265a3cc53d1c2009556bb69bb439aefda96b3c119678cc8f975467762ad4a05b169a7ab8417d7e05ff28ca04b6e56fba6c8bf8f05272bdd8653903793c3535796436904e515bcc9b2ce14887f8d595adb8145cee75519068b226cfc2b6c8b87a41c182461db679b7140234eac033b966e8d7854e6ef98fc3f9cdeb5c1f48de357987bd7445938724bba54cdee9c88d81a6af723411d47c6ff24b50107b623d6b17acc9d32b25bad1e4994eed2554858d8aca5cf4d67a535372159d584d9ecc4db9f672f48b0a6cd204046d3f479837390cb58c906db84b28a2a0f72bd59143138232b8668c2160ad90b88c429958acd0435193033a4ace2b00a6c9db32c4be7108fa5ca8cf5b6887cb977cf0a0e068f2a41705bacd41d52bd7e4fd47d2780ee6da9e537ecfa2a0bbba1c8bd09bc3294a15f6339407fd91fcb0e68b3a724ddea06ca60c5b0093dc50b55eb4c5a490549317ca5284f61cd93a741958ab9c51a1ca0e671d1f598c3e2a1b094148bbf6a9826f70c95c5881f668de8f76bba199030bb0b57a14e21ed20c0e64ef7b9fdf737f600ed51d11d658d529221db7e8c3e24a14a42292f7c42c57bd9f1e119e11182fd0470ad04b8abb779837faffe19355117a29f91903dd1121653d7790a3602e78ea396a60046d61979216fabe6d1be7d98772ad7c910b603632b9b9136a02eeea49874b754c7710fd41ded4da5a366df200b3caceddad940ac00343aed539db7244403b46424c9eaeace0ae279bc279a76ad10a926621d47844289c4241e0d242c8d2dbd5be4784567e846611c0f40f07dacb88d0559f6d034a89fa8870f252495ad0cb8bbfded7dd6a7beebe08b57b85b38a06b214fb5057599a95f10deee685bfbadb88b86b187b4375772c9bbea16e1d59e8c637426361599d6e333f3d1a6ef8d8e5644860b82006c5d5b6be397c7123a7ea887036f84eb3162129b72cb22e67748ebf7b4698602953d8d8035da4d0a56222bc46c2b1a520fe2eb4006c37400207805ff5cb0f57b8dedfb22341386fc92874f3253abbb796f5a57b9a8c08c836b2dc79038bd417417381ebb94827473845afcfc1ead0808682a4db0ab894d838e87df84ad9b686fe78d433ee44e8ccb72e1b4a962bdfe4eef22907dfb3fa8668e0c0b9fa6d5f345eb24715bafc9b34eda67da8d4d0f34658385e93e078a999738f0c4027c4163b95d942a3625745ce95b837ccc86840756f8dec75043fdae19ab210d02217d4a97a55422a15a46ca6617dc795d71fac371969505b12d5d8ab3b294aea82bc50a63146548efdd6ec3b5e490f5f8f25ee39fea29132b8017b29d4397041305a789fe393ab610871c0bc0004def9cf22c04aaeefca079019855b8e96e702c8934bb0419d49ec9502e57342289799581729ad70b4557010ec0dd936da090616ba71cf2a88a25be5e5358d7cf5cdc2976ebe7bbc9d8f15409375d8c721c2cf664d4ab2c33d7573b26048ced73a721b8ec5377d5caf2be3cc9a6e87362efb375cf570e704c87a84baefd17d1a2bb9bb142e2b4b611b73639cf1be3b4f737b3774f5819633284b659bee072d73c87346b50b7fe532fd0691dc051f8b53dd196de6aee71fab3441158b2a169c41df3e83c60ef0d82919697513a734359c295bba2528459af43a6802b898d02f2782755c0adcae3d6a412ba0096442d33572da1624661cc60018b5021a73e7940ca6aa7a070636ee1a4c259edffe73007c9d891ee60cdaeadeae15d2b80ade36db86a10a967e274976505554c8659700ccdedc92bdcc8c63b6ddd5370d405597d49acb4447ce1c2ebb5fed07c987fa6b982ced9c71a5ad16360dc30ddb891700dc7e0656a34f2e4a105fb6dc7530cf8e07a51af55d1e4a69e1dd81f481eaae9b111b19ba3acdda28702ec0f694e386d637d547612bd277cdce56f4bb434b9d43192f524b0e1ff17e631ec334e467ad86c61e08898093e841285fd2828547e539ed73df41f922791427b962d405c05f3376b875575c75884cfa74adbae758c1ccfecb0810fc648cb7c64e33a4bb6b6c50d7bc3ca2fee051567ba42319a39e57bfee16369147ee3b86789012297dad7cdc3a05f23c26eb4b877738b5221b8557bbafa0813d7264602ef3227fb303ddcabca8d7e9b77084c6640f2d72ee41553132f429c5c92520506eba876c9b7cee53d9385b7c7e6b4865e00e8baa676e443a491dcee64cda3a90890194a9d5c0d4cf90b694461a5c829fb438f3427e562a6c6b5f5c12424f62409be2867b449afe3f48d60b352fe552b3bfc5dfadfff0930eb81390df2f94e31d509cb9d1a142edd39cf21faedfd69c2b3d086e1f8d0fa6741b61697ad8489992335c36d2e0230b7a4626998cd5697db8b8235c6397222dcd3ea6db3ae02828036b9ab56bcf4afba4d99f8b04a1b3a401d5f1a64a8de8ea71bf521d0e65011e469b6e02076c13d19b26b121a78f02bf63c7cebf41890c875be8670ff01be305a90588bfa650d95e34bfa134c1d866e8b4d94797aabccf6afb331540e9b3063063e02425dcbcc563fc53ce19023ca16996543d880540f3b69c964900fb6172d8080e01bac649ed22841779ba70dd1e7a5fecdd66abdcd212a1ad372c6bd3c0570098b993181a96eccb2fd77f63f0a07eb7c5b754beaad73811869eb144375f12b1d3445bb25a564bb1afeb446ed447963f9b131eb0dd11a65b5e2865e8c5d0e64ee9cbccba60bfbf62e34d5edb05b40fdf4ba9f619adb7bcd59692857c92848fd0cb1ca2e784bae08b1b1df3b20a587655286a721a0661fa306f142a2c2ba57f76a19c0752a3716f4c3fc8c1d30468eefb678702008cd33f31d30166393ebf66075818a31787e914d75fe6dd5bdcc1888e221b8f4088d08b0658119c8d6c47783adc982f3b880da40c5729224dab0573e330ac1472fd35651307c35f13bc1780ad892770916135d18d5ba36e0edf416d7afd88514c24fb8cac5bdd09aa8ec347804e0e96364bd04d040bc4a4c702f01c65ef9d5ff7e76dd60d927a753ae261e5e1286f1d60608b89738f3656e2a0f32d005bacbe39690e386ee55a47f7b88848bd24331deecf11cc925c14d213acad469a6d07435bd39037f07e1cf709d8a26172a72c0ff104efe1186d0f3e28c62d94ed711f773dd146fdb1e1ca5f7cdcdde355b056eced71ca6676f3ef2649255f49c41c2a30a365aa15ef3f85824bdfc6f76594f1a76c896bd6da7d65411c5d6072fae36dfbe9b29013603b285c7b97670c4d4d8f0f75d44a629d09c50b852bc06a04815f52ced60264ee9834c94a4ac97673bbdff96858f5e79c4a276268659ddc387c7e1db1ed5cbd64f04b5a257467c2c1ac58797941cfbf32df6843c3e7fe5f3b0292140401af9594149e7ba52f15c54dc16fb346f4262ee8361464a170a30b139c3c6180490259b7cd66a31a13a1b36ca9dc397afa6738b807b82e4008fcf7a03a1adb6ac136b91f7bd0a5d2238c529fe5b4da1d521dd02daf6e0d94b968c865c57a982a56c4bad75a1c6e71ea205424f6e7a5499b51e038c0c101ddd48d084f58a85fccbde278a3c010ff742fb97d7be8e0120116a4f81efc6d542ab7a3bdff9afb0aec8d96ec482e5fa5b33d3c8e7f8ce66eb50bf3037dd974bb003903c747b8772f4a38de8cdf6417db5e9ac985e3570ff07bc150ef6db755e99fef33f4fa3a65726ff3ad86e4fbe043e24c6894d482c43ed8f25aa19a4f2c52612134fbada5ac33e386f8a401dfe4c9eb06a7a53c57abae763077a3935a3dfbb73d067eec5ed1579c4c519299509f503a098dc3adbc148b73874f9ef89dc11a0e08cf2f44ee5813029fdeb18c72b2033d9e0576f70cb76a9a934a1e46c6146cca2eb4d75a5bd1ba5f056e75d2363a6abfcdca2324e135f8a9fd676532a75c8696897c16e512124c21bdb1f6a545e1272a458adf2317ea784dcee45c85dcd67d71d9b31181f3d3cebfaf810e636b0ea947f5b7b82c6ffa41aa3f15e3680eab8a68020d3b96f1aa92ee18fde66218292ddd700a6099fe743661c218e9347bc434269d3cf36695d17eef5167cb0a5c34df6739cd90ba150056327e64e3998531da44ec079f263b816d6e46b5f0f6067a3452944762c2c0a46ac04bcdf55357abafb18bbe61876f25fd91afb26cba7ced00f42dd44b8c9ec2ecdcb30777f99383c3e247fc9c695a421dd2199b1132de527cd0e40e1a46c82c5a3055a441e7da03622a282da80a01b225fd5ecab35acee62b8eba4f4686af8240313a7fc20c7788b6e9d9f45fbf500e900373e6fbc6611b0eb34071dfa2ec18323cf991715eb78ae4e870ff449166b7a52a5af0e19eeff0fb92349a82083e8e5ee271258f3e280c2c5a963a383a23486de99a577e68418e1a4c838153686eca7ec1342d8caaa094f79bdd97dc1846b55bd13928691cdea8a4b58ddaadefb5252f45bfad5798d89dc9cf2137ae7cc3ce35e2443f62b86e15ce00de19ba9af2f00745f68d9e18774f5ca8f1795cece6b986270e3b7992fc089e6ab55f22f076aade115df21269a925d79560107a3687de8bd86e0a5ea4cbe8767de716f4367dda9da765a4e65e313ac44fbcc939232ca4c063c68e0c7f95b84c8a0d2bf9981c1602a9b8c1c5f0ac51b1f6f1dd9fdc2020031e45c5ba6a4d35fde20a96d049595ccac0099a13fc62200be84646dc5d645052dcf9a6916dc97a94996ef548696c02fd3b5783d5a673118c56c9285fe9cce98a3773f9c02cebf3552a421a0f21ec51920d66b972377923114221ff87b8d95f8dcfbcd8923017a1ce655614909aba3793e273a4db00b02ee64c8c5f69f965a3c4205b5338c69f2580444f3c58f837ae28acd126c97ece98af6218dfcce74cc00d1028979c82e83277d73bd44c24525341f843e676a1fd898c2f26aea61e6bfc3457197255108b4e836c80a940b0ae1f823f5b2d3fadf0977c3465b2a0ef1c9e99cbdbed4e6395c9ca735ebafc5544958a0c5e8f49f5c91520329214ec872c87282e1f5eadeb947ac60c793c87986575b17e3704edc9bdf00fa9bb013093bca6ec38d05120060d49b11a63675e5d04e1649932de84b9017efffca2797e242bf0b3d26a419354d1cc4e1b6112b22c462e792210e5901df5280132a3d44359a7a84d00a6d4e24e5421cf89e05f306457e99afa12eea94a6c4fb252c09339199239279ae88ec71e3976d6a73530c1ee807210a39c5e0f59d576b559cc9ad89a456823caf6d31e41ff61f96f8bf3eb31f44816495d960ab790ff1e55ff46a4e58685926850bc6d6bb75cc66d6c2668efcb8f8ea317efe91daac587d6c4b82f091478b8b73ecca00d5151a23fcbe12cc56d8206e6ee73c45573a48ba6641e22751e55b3591281aeb9de4ba253cd52eeae09d6b453d631682c2e55676b85f23582775af54badd31d9065aabbe7ad21328bde7a967d92b7d51fb326c8a5f074827bc0d7f5782c456c08ddf5786898fbf2cf497f798f123c76d2f3821432f1dd0d515769f0c256114ec019699939402296f65232954a20122055d20dd76ed1774e0356ad28ace0059d2bfe755443a81ff8446394dc90654e8633ed122909cfccf69bf88df64bfbb8237e278974e68e3073853b454739b07411cd57d6fe68d917b6956aa57e33910bb74e08ee0965a18880603409048c94a02a1aa2aafdd41b7c69934479311a369144bd8ca538bd6e63dccabb686a86697306de7848cf9a9356d0693f5ed73a5d47fbf2fa76ca20beb2506ae6a7abeb3d930f6a95ac3cb57721f1af8a2b81dc8b88f7721abf5df741ca0e64b2f3e743a246460ab7dd096194f3bcba089558a24704c3f491cb9d7616b2dd261db8c4a3193f0a0ae97806c51de42c4c70cab82be2b4ce12065a6fa8edd4aec11e4f0e26a85984b051d68d215153ee7336cf9c21e712b9ae362d978a69841115ae3cefac2c35767d7bc3c6ba19827f88c5c273649fd2c14f7e9b76304ee526d7af8d4901d48029e71be6fe2f622d7c43eca2fa943797e70f7478216ca58623b17a4ffc57c00aaabea44c8cb6998fcc3fad06d8b3b910410f12cdbe62160e3c282ff51e1d064ba118a39101b021547ec9952d67a6ad0d60165f13730d39e77cd22f5c30f9e654725f6aebe945f6a300c84f8cc957be5cc3deb49e22499a746e57c270f5a1b64d751b6dc49ac8e38cc6ecda80f4dcd24863323987dbf9723a179b6e1104efeb13ac37cd996df00c6e768a0a5f8bd5602c2cf1d0248278404488b86443365936034c9155fa99feae3aa825f2f120e36283666a833031e4ec5833693961005a195f9db933d5b3eaecedbb8b95643cf75d1ce583a1635e4504c708df5f6951d9bdf14ccba4a1ae64618751170fe9d3b6df1ad0042c7dba04ca5d06b1b67c41cd4ee6c64e61f4807dd69c888668d0d8626dbcec4a1e4ee7a8d384ba0b259d8a92bafee9d007d922af604a828121f37f18247b73a8e4876dbda83c46625f26b66ddd98c04fda34fedd9f763465fd0e7ca074ba32dd19d0ce8fdeedbd0a2d5b238bd4b5704f460987972641eabdf94e337dc8112d812cb24aa3615ebaa9fa029bd2ca2552a3a814dd3ce2d00799c3eed1e2a6573bc59356f1642e35ff9a148de62c5d758a2db335a84f48b0f70dea04ba8c1b757b600dee91beb3f85e3126c1a82dda12935d77ea26e64faa8557201450c85d7e40e627a20a0082b0f59def64123ccc253e45e559d8b20775cd77adb57481dd88bc17d6281346f72c3b894ea427639ad420bf376750de2639b19880dab2394715067484841f04425d45b89747d22417446aa1f127d752749772bd72512d871da04ebcdd6974d3c15d8518c9d8999690b7c566d9b3b819e6cc2d0aea9ff276ef46e35e002098e504795283a540070294c770d68b465a1d7331d82742debff8ac345deac800406eb78d43d04b595bfb5ef15444d4280112bbc58192b41f700aa8a7d5151454f054528affe675a3d65e5aa5195964ae68456eb1475db22c191d729840817953d5485350adfce4507c19a2edea201b12144aff49b7ea4b6e558dac31b094302af87037c55f063f00a93f45872f5116ad00fdb4bc43399b485505aff420cc5750d77e19396b42c41e49aa06bf91295fd5d7b7d8bc4a3e50c975db07de63beef593be38b24e532e1f7aaca306a415a39ae290540bde6a2276b70f0a1e6ddeac65f86048a4dc31a6b441e4b270d9c31fb6564f0f6204590f3d44aedefd35d3f5e12661949471779de67a88d9b445a5a48936920851b1be0fd26fba7bcc1c7c1f8a118628441105fe88f5a07f79db49c30603a7f7c38ae70d4d8fa0be69d438e64e945fa0f26197b9fea5c7606363930f7fed28df66958e4357387cbb892c72e3496e6f18af01abee52da3f28a366278c4620adb510e9ccda1d8f35b8657d1e28ae3c69a41482daf2abc5cfe978bca0fa8f9963103abc7f7f197d764fd5878214e9ebef8ccacf8bbde10f5a006bbcc7be44b026a1be95365192ad09fa42cc8c17e2a34bb768f2940e5cb90cab7b2a42bf93b90cf2ba700558c709afea59b93adfe78fdd9ce7fa95fe6589b340339d396d3fa3ee240f6048b726aa96ac960af6420073ca360a551105ca9bf12689fedfd7fc9bb0fc0204629faf6ac8be47037ebe0d7b964bd666f22ed8f88fa5ab7fd9d162831de56325f79d235049b4251e285b121c2d9ea0078a22ddcf14e20dee5e416a12c443a50181b30732d8c5c00f6c46300bbfa507ceb473f7b6360f7be212fc11f68cd045a03a41e74426c8237a7bf5a1fe653ee2e9d9cadb3574248fda8ce079545f214cea62f2dd7f445efd4420e3f42b4385efe37aec323171fcfd33076586ff17103f243ae485d71ae1a894ac1cb91b47c6d6678347cf635ee515c74aed8164a0821645a32d34f1efcb3e9441d2e5d8b6d06dad052d3ed164189b8fb554956f91a8c1b742920435dfd1b8ca6b4c84ccfc8898cf84172d47f55ae0fa08d092b839f3c2cc29416914fdc41be2a1cf8c6e60dc2afb219b2b4bb1bd7fa7abe8beeed9cc2fb6e59332a041684b75069db3628845178e84090276c636008ed148ecab0b323bf3dcb40ed30803c71d1655fb07ea982509c6dcb0f060f4f99a5d5e0c166e85e189c32518f9c4684edae6392ed47d0d1c764f8410b30453e5624470b1d5d89e3005adea2c668f958897bc18839941889b7eaccbb1d8960dd8523c1d3fe33510e92f977131a33b5a8a00848f52399f824610f6b00f5d65f9a6c40554ad6743a3cc34d5849561169974ccf6b7506c655fd4d28a8fda711e775d90281d1e1f187562fe11783e681ca31620b2fa7f449cccac54047f7a0ef45e014ab7a928274180d64fcf672edcd263224c70dc5e9f0566acf9eff8b782ce55a38cb765a49834b003ef04943ef472cb51dc96422243b60d2c6ca4051d260416055113a53b3206eee76c991a9c3618c81e1807c85a572ee38804ae0bf023c6589e6d82e4153dedf0310b499bd31cf3f6f7c1dc1e17624f203b25ffa2580c85582880e34b5072fa000985e5dae39ed2e01587e8df5d809b60bf61015e2729947077de1046a90733933c872b4b8ac3d0493ea31633290a0f4728f50714fbbb08b8f80d11c63a8eab159067cbaa8419fd43122d11cfe4dab2feee8f3900200de03a8de09c16069d0d74bcc5a94b4f17709a98f9bb6f1782251023a0915b983223ac11e605d6cc5f39b8fcbfb4b19a171979f941c9d84c05ad5fc213efa149df08a83f3bf90836bc0c5c89eb95a09110d4a99cc222cde3b483823bc09f8e82d5d309bb89040168bd995ecbc76356832c1a80f5f65c0e05f4670fe2772f287447329a27a067ca21154f63d43a0345985f0a76cb720a74700848e79556f4e4a0bc812366667957c2418c64175176e64586dab5c76dc791ae922014bf53b59d37173a84850e617f4ca952a57d574347657d89cb547059134316268ae90e1fc843c30443f01807699411ddf15be217822d34ebf2078efe68c00e70878e7e362105ed81e21cb44ebeed3231cdac0a73677e0438092d047d24841a7b204ac7761ea9c31f070d797899d40351b896a8d9d11f784af20d0450c3a51ddba7ab7b05fb2d505ec67eb56c8dcbb2741cf8a1741e1b7f1eea96ba2bf6ecd3a25abd58e56f4d3b49a0b175c04522aede79c30bb782a3b2829112ca000456010b6acb187eaa6832cc68dcab42d23887f07e6574119bd9c71c8085288e940f21b0904a8ade05e0ae879901ab7dc8b658488c7e45da2c7b21929c574d4d8000a813c8a9ef1d7e08dc2a58643a46ea02cafe9ae2b1ef726bafa9dceefaffb46fc1a936dc4b4d5bca9e538bf172771c980894fed7611e82ec79f6540f00fdef8428ff2e53aebec6331365ce9f32228528f59a7a8bc7b1b1a03857a1ba776666ae26a93b8caedfc49eb04c59cf54b6a951c7ac3403002d90c01141376e8cc6fcf485383a2bb6d9781de641c15522d7dca77a90211920514f4e59311ab63c9ce74d0c45de8b7736f77ceb454ac086f82dc63380585c1198bf0cf6e86cc4d43b3bb448bb13e5821d88871f73ea7a87de40d95bcc7dab35e00bf32ef8285cf2eca2856da5965b27486d51322a87d608422b1f41f33c9ac1c494a9413c6f234e099b298d12212e14e8e15d96e14ac645ae808a39eae4399ce8ceca8297c5e69a058fdee02d821f1f366703c122df8f4f4280661ca504580458a90674d30a88aff53e39367ee8d9b02a197739b0cbb29acb13d86ffe604f5b5af2e20a83dd71da5e0f92372db652a8271eb660881d3790b30edc9c00531d8586e3fe96353014f437aa14d03abcd501fc0a7d1a0c9a3cd061739b56ffa49d3ab5b7c95c196d23cb3dbd366a27c9a12f2170ffa47e8079f0ad4018f35bd3787bb8a24738fc04a17d915d797b5b1d1468d33151abbb7c7abc917f37bae5280a8928bf77fe433abf10c27876f7191019ad7693036e51a2cdc6bb1f583339779610d9296c4498c1e66c34d66b82af1ba275fa23c9b90bd8964c74158bfc53746f94ac2a5f95d4eafdfb640d50b2802d5c3c66bb84e297bf53f284caaf8615df3f9cff934db6c89f73245bccedb2274f71e136f2bf5ec0cff238513df545ab7d57d657585142fa606c3ec54a310cfd8afcc0a52dc4c80d197837197081d30c9d72b4313e529134ba8d962e2fa62af92d2041d710fe70c92c21a3ca76f0360d8210517fd01512dd63b8148faf8414de01c1f2cf2135c4dd09339a1c38f3c2b13bdacabe1b773d332b5cdbc6293d64ee34f1c2eb7680749bee7297b4c8a781eb0560fc9cf86ca430a2c9c18fcf631658438ba308e8a7e609f561d0d6394ab33d885c46f0c234e25a7851f4b1b5a9ef259c47196e0c710981d34fed13d6e37d4a50a158f65fd217cf9e59acbc0d1a68b49e31b1d5beffe502bbd036e0de662f21b58ab06047f314e5603ca6c62650803a30ca02a939a053fc54a589fb6fb756ed6e58721a9f2228b384229d8242c6c6eb2830f9ff07e83720b7b2bdcf7349209ebc0a0a26829e725c11fc5ed0edf0bd373384e266aa904838e2a0c70de32d78d30953a8403a6c258953345649298bfdf4f36fb7616b7539f88906e4ced5802d8f8017bfb0427dadcf95a162e516dd78fb53cc40f9342b8e03de1634b062964f685e3e7146d90704132ce9f103f2d19da32525d6412b84283b55829140a0b7a1bb81f578f0057dcb14e44a2efd89ff2ac1c9057954915e3b367d923a91cc3efd18fdce61019253ae46641d0ba28065009ddd500c14dbd45f6e430e8fa7acf72cabd56898744f1c4fd40469249226dc25b946024f6e07d59ddd9429e3d38d46312232b917b9ce7e19ac613a4dede9c9045670ab87af8e538d03162600e4f55ede1dcd3c7d6628f72434110fbc8a6ca38df1f6bbef228aa7b64143f724008fe0161d1f71c909f1617981f0df1bbe65b245887fefe0ccd4644f0d26a0cb54b8c6367e25369d96a85945379890d24f52f8a580622858a66c4014a30182a0998f1b0ff801ced4be83a2cd8f2618d6e22b2319b9afa9aaa1d5a111ba34870ac275286b4079958295630620c2d89e02ce5e214dd35524e32912e848054536d1ed2288af8d35d93266705726790f193a245ef2c0a986070a620e1667853418db68515014ff5da6208e0a2bbfeb77bbf03c7049986bd3db12295d5940f5c406f14eab88fd4688df8bf5240bd15cd7df3bee1efb90e5d3243df6865785468b120a43daf7f70e5b437dbe5b3f7090c958ef0ae1166f0b83aa954ad0663eef6b3c3bd51088b48a60710be15a138b1f25d7a193325c9b070767f1315d81c037f417b0854ab1f928808fd2031e4e4b7d87dd5fad3fc60290108fe4011f67bb10674df8dd481aa05f695e6f0379f6d01acb1f83c93d9a967f817ca2901e4366f42f16189d8ee5eff05718ac1eacd7c728571a887036f2ae3c370341418b494d4d19c70a7c0e05b37ca234332b1d0181178a50667b934afbe38a2f509007112523848960683ea1b24a1e46d54176b15ce29417a1d3adb8eeba514ccdd6f9f1698843d45dc6518c71abe938011dd6194123e1a445c0da8636b3a85f39f848d190e3b715abe851cecf221a54f8efb10cc40f65f3e1141ed5d31f104067d641f687056579e11d3ce25bcb2b6a5b7d399c94a3b5a4e7eb5e7dac17bd03b157123d5b00f045af4ccb1297e69a243b0983ffd56d0ce8ea733131ab46441160f04f21ecccfcacaa7ce88fe6a95005875a29336611acc92efb7e921289c171986298bc6e047f145ac541f5c2c5b1a74825189830505052b12777f7c2b186dd96006747b1f7a43e0fba875bddce4460ccd788830dbc6181f205cb243aa639ad500ebc686f768030be14d27a99cbb8768c8cfd96f28c0c4b6612380ac44ea7134081926e971079836d918bf6fc784bfc851855e9dbce4fa251c03ecc7819312d6fe7a172523b13638298ec01da41aa717bf3832280d247a6414f03d77c83e9761b3106eddfd690025dd9a3e4acc830843d4c910ccbfaea62ff0b0fa0ee2b320b16505d6796af43eee4f203fc3e2333bd4d2b4a44d5f8bc702b58a6223cec54e2c241b5f5d5904c1a66ae489384b3d74f613579e463faab43e6e030fa4686175ac2eee068fecb8fbb172ac17548b1a565d14c462e2d893a34d84d6385f0cb3a4a6d67063f7a3325ac955288681c718e823eb3d13ebf902aecbd4dfea5d16d40e74afa3fc3840e2029c1d3d437b0f0405737c6ed3c307f36ea61efd8dfc25c186fa7320ab0000f53983dbdf67eeb2b6200038b26ea404c4ffd5bda933d870687e35349906fab7d8ea1b3b49aa8ddf8fe6793f78c1d4bfe2c8f5b9d4dc93ae6d4a40ca0a65bcc81a6116b51ab3e26bb6377dd535d340af5b2d8a1c2172e1a8f98c3c7abc6bf97fcacce20fba731f7e7e9d2cea809f84573ab67fcd24d10a35d54e7f11f0e5ce0f740a3a2a157e226f654ebe5b900ce83ab1266aaed173259403bd6823938521917af8efa6b00c81d5e51296d1702300dad2138dc4603d545ff666209961a1cc8c784be229a26ff38450a76877f717da47369c8748c08c47ad636b22443efd00b43405b2d9f5213e6818ba67460ab38446912ba66fe5912aa228891d6756c16b1b34920749b7d9118c1f836de6fcbd36803bb619898146eb4920d0e2a21ac4290e717b6857ecc58479fbd8c0e6aaf984f40f22c3e596d123ab2c040652c2cdac1ccf5b73f26f8603fc1b4a4cbc97059372e065255a72758f99656b69e7257def75d850ef48fe64fd39505cc6b84c193ef185b7f5e539c5b36130b8b4d28a0f9612e75d8d1aefd4b387423c766c021259a46300a2960378d59d1ba251545341bee48e9adb99bb305d110e464534e5b589143be46195b3024e75747469f286e877d20c5c7a83ba45ce37ad03ce98f2cc4a5e7829739a4088d42c55fbcc6b5f5264bd0b75ed739de7f3157c1300da1e0370df24446366283049982ef116ddd3fdacba6b4ebd006ddcc39820200a8d1cc4308ad6837eeec4c9735bb90fea28bc32c49600d83ece6ee3a4b4640d44e0f8c4405521451c617acae365b1fe6270ce77bc9d410fca48c2843851b3af229ed9bb82e47596d45ccb9569bed0635d25eaf3d0280d077dc612e009979b62d98025406023de262e15b38716133c9d93794555c76ec87b198d3bd5efed6becde141c7d46f7d97a46e117a8b013631c080bbaacb1e7104ae501609c9ec2a724b93efaf9073aaad3192bc909f5a0b89b7dfcae80a4d66f76cff4b929aed5ed0e6162f742e2b049728ac9e0e88ce00f27a200ed2302e67b0dbfd141af01f1765639fa0a041788d4fa07c2c68440dc7803450908b2b9466a69c327ff7fa91a5edb0df195e818093d0043af4dd1b2dbf1133241561b75c5a0ae6a1cbe2715555569aaeead988a07132e629de3ebb25ad8275c1be25096bbfb9cbcf60b88340a099a4022110ff011e35a3e9771b8bacae65d6c13bd0a2b1510aee217f7e5c3a9fb871174cc6041f90be9626f295f47fd0347dc9fc0d3d72053d2161493dd938491e7229caffa12a8ca5522018f7304a13119eeee115ddba1230802a92e8a1d2d8242760b7b7821d26c5afef2385060c3b5102afcb9e71a57a30559cac6e34d1ae5c702754cc952d7f8d117aab3c17967af5c643ea3fd5f5aebdec8eebdc4eed43f3237c0d34368827257d0970b4e3c45674902a6076a030d483cc328e98cdcde411f566215a32b7fb7f4fdfe491dd6f668281e3e1e51b314ac459e8e34e5d583b1e2f077963b3c4a821bf511057d87874008e7dafd488f806beca4667bdb53a1247a685300c36bbd77ac9cae28f0a4d4f957a562af5fa44fa6709c7be8e62a6f072983331e7240a1cdf4be855d2279b46d5ad0ce03721537dd2783671324daac0c0c3c63ea64dc336ee48c33641188c4cc8a16629998ae3e298f2732ebfa0f4354278480e2029552ea5e6aac7283a59ed16d0ef524423f7b59da7161e39d315869143dd9c30ebdff0ba458f067bdee76251b72a490c72dea26ab3107c714b21635943ce51deb01b8718ee23e43d3dcf0f884ab8ca23a985a51cee920b89667a083d0b368b54a5a6f4dd769c1d4b59dbc4057d4737c64a32bb4ec0448fb1bd074c6971848853971bed98018c159c20dd133dd6c2ccf19a99b0bc52d2db088c5a25fedd7eec14444944f091d5252a9d0e09fe19e744593c7f718a04c60be114287c0c6b9835c51be870310eaaf69449381047ac664265d625040137243a33d1e016d3413b34682c41605cb75a66707509ecb6732c06e75e0104fe6871e9e0d319e788cb896873ba4f4deb37ed030cda661824cceef4813919eb4515e115557d54ce2fabb2b6a2cdaa3dc11d389abfe278c92f4a64763f907bdec1476045108c865d62ad6bf761541a771323cf2d6cc49191025a4725bc5e1c21d80fa556db7047ca461f2716c4833bd1c52a5d761490dd74b8dc60ed1e65851256805a20f930e309174266b35572abf74437aa408edcc5d41e2724efcae6c3344ea65279717eb844706dce60c430579ab0fabd80c08dd0c3d893eae2ec71ac43ea777da7403f97d8e48b2d6f6e457566048e98c1d1d3a3a884853cf1b126c883048d90072959560ccbaace0ec1e59313c090fdb23f00c82de41e2b0b025823e1d6fcef0f5047c014045bb317e99dcb002d549c9a2ccb04da838c9e591acc5f5e4a4f4c993b05fa0608113f02263bcc1b107ba447520b8f73ba74b64b8060b6a0f102d4b59708e56d41c3a28a86841d19d0f97d0a1b159afd6c5119606bf7fbea3a4a600b4873e3bf596b09c8024a046d7b4c2b5482f1d4e05e9f92c7574d96c604ecd3972e279f0592ccda8fb0369e72aa448ebc6c74b055470be6902b6cf184ab71abda3504205a09abae9dac67f4cac08e45630c3a6331f4df95ee3743f1f392387dfe3529a65958e3dbfc16fce01939ab0ff6dd0652c10b1a854c3d1dad4e4501f51f2f3d1844f522f84d057dfbda9e65c7600503e5a19fac0c9d527dc0dbfa29d88422b8560de5c258ba464871109c0f10ce1ca4e4492e17d4f6b57ec9b47cd77c35cd248fc167ca4a577b0c77e35953c27b294071b091e2799edf670dab12db4273d667461537e4569fd870a8142ff895903afd51050bc2243e90c9372df8594279d4d1e7dbd0fd10f6b80863731215c7b230b6693a98114a89608b64b40865edbeff32525394e730d3f236bff4cbdcf0aaeb5d8c2bd3fbd4623329f95b0687e0161b1ef1981c2f422071076954bbe34694a8017a735bcd28d7bb4fe2a09cfcdbec51b4dfc30f0803b1a42d8e7eb54d5461565f80afb3b71ad76dc5cacb8e04fcc18b4101e6c79aad808ba9cc9c9417910008adbe866a01313e61ca6918d6e498e7ea35678aa9be1225505b7e1e3d900c12af64343fc44f0374607ac2e76029b718c9bab1eecc709b82b041a10fc8e1e1ed32c8b4b142c6bd4da27c13dc66345bfb5bb9a81bedabe143a27b7913b9eb5f1c092acfe37d8f0d649e6b07f5c03771a13dcfb3bf4e31e9b04310fe60312bb3905ced9afdb0279e8bf38ca45433bd93f569a411fb1249946b78df18617b538300a69b3164fa6f526468ab8a16871af14885ca4e8bbe3f0a14ff42f2535dd9d956eb956bacf84f1e94f1cdcfcd3042fd6e017a47e0055b339913569252088cc0714dcd57f0b74afa3d374319362237b80ea5a4267cc6dabd9523825ce266decc54a622cfd7e32d0664e9d7aa30442da4134553d284ace0b1601e51070593c80f30842a633bf7559d56d3b5aa942b5636962bb8fb0b2ee0f34f6ab18b7663c06fbe9fa56f208bb04d7f1cf5acf354ac738e747fe43d3b0cc9f1718bc9d69e8f3ca7f236985e9c97b0bdcc9526d25e50103326bdac3f0d06cec4490fb7aa563ed9b771770c98890d6b51005d458f3abaec012e0a7e4a9b0a6eb7b9c0f249d188de38e5124e54fe411698b514b01c48c1576dae7594f2eac608bf1e0a9252eaa680e91a522479101c4e886210b3a39ced2a0260d7348aed774e9ea51078c150875292cbc5ebb8ce8140d66522820e384a052b56830f867f890205e2e95ade123b3960d2a1e28f80b7a699b8cb849f42437e222426a8151eaa2538acb2e7f8bd120417243a931d1ac0fcd734fd73d0665966ce1f0d0c49c06041344dbb88c3fe5e93183208ae9a8aaacd98f6e1a0abc76d9b423d102863b22bbc1bfaa128d75c44b1d6d427c33c1521e7a691246ecf61372b162a63e4be9e2c5280c5ec4bad258598b89aea7d06ee7da1b9bd4fa9c496f0ba1913d2ce48a3ecf8b1474481cd94911cbb70c34d92135c0d057602ef3718f01a6985841d7f9b9184cf87fbd594c24beba5db7b98c40964b9b4c2517999c7a1fc057058005ec4eaeca832bdd498540c19e400cd1d519d008e2dd9cbe20d0aa273cdbba5e70a556395daad2b957fef8435bc28c0a64bf94765d8d33d3ece160e14b4b21bce7e2017395c8bc998f809a77017d2090accaf45e142c45f2a03b73b0345caf2340787fd15be488cf93411194d8053bc7e908bd67211cd14529209e4328e95c3931e0e087404561b9c33f3d100533161cfdf54d8fc53697f955b0e5fc874b590de9cbddedf59a6801ad662abbd8bba8056b6906828f72bcf3cb83e99d5b18174092aa25f468cc27b014a819c1e8ed9b9b1984913f1f5cd1aec326e9727e13c0035f47769f102b151581bba3b4972b0511382a73f11be5a86a0eb85fa4a7c1604e048fa9417c1e3218f1c3cc35e8476faab97a55c3da0b88334ec17106166fe078e8879bc8973958660ddca98f0e76ab275fe2e96899180fb98f96536c35ca40c24a98db9cddbcf32729c47c0206063fcc713faf1b68d164f8e171370ffdda99e39d7468018e612e5e06c223b69a9ac0b1106d61455a3355b8ebf7f700f5968597ae2a7aac39544affe9d98f0e28d984aba5010a6f28d6a21d83f78434646254162b4ffeecc0af5ff8253d30b760cec37c0fdf6c0877f8648019c73b282777fcfc9d8b0de400461605859babf015c084d5aaa77530913bfd54263667b69ce7281eb23581d33d78c08127f40a240dc13eaf84efa25ce43b360a8ec10fb6526a50946fad9ea60649c109a23dd457943598ea1a68a42a3457cd9ffd0c15bfe7f414c968a1adc6f3b94c1e64d047c8b2628cf33130b26d10769153a424ec3db341d97e886564b93ffdf278b9d61a0dbd87f039b0bddb28f91f617d64eeee27ff6b56b491229f78bcf7c597477b51c2b6fe36d209a1cd3e986c22b51ed0139610112f6f4fd9c960257b1680dcd66a185beb86878724340c60f221d69e387211cefd49fa04ab4c309b7711e9450064e5b82146b2743ebb5262de301f84cc1c127356a9c2cef4689e66334c669a4688519b487b2753f41d01d100f913714bbcf562ca45dc1d0e413c95d18019e69d434325995364dd47823800140438c18eed06c8af448ce1fcecd0480fd4e5b9902c47a097612b99456389c8f19342e17ceff0914027734180bba0bf7bf35b8d2a981a42725737418f13e5d5f1c8b4fd844385c2ba7329ffed981f1e580853c5bb2ef21793de52e518e81d093eb7b980d98f34113dd60edd0a4df55e3e928eb007d3ec9e00ca0c64453bbdfac9acea7a47b825e7e850c32fe3e0412cdd8b21730e9848dc28b8d4cf4d6cc72548ce4a1b3ad5b1af9d315ff0e6c661cadc26794cac5f5c16fb7a6dbd2661ea09f4f7a452d0c6a7fb3040c25a13a65e7874ba3ac500005fd5e06c53b0be94d627a57deb29f9dac0d815d49619d00f6ddd932e1f79849b9c53c0d2daa8d70fa893ed56a278230c86efe6fff4fdabc64c54d2fe9b953d5e5974546764a544908d5dee04b9d77a9053b96938a1082ecf743b785aace1c61b8b883696de48f69c12c14d63e985fb95302a0b81e24b901bfa2eed820f4974a5a0c7c6fb98718e5960067695622cc08294c52d0c6046c8520f95edbcc692f277ff73b24ee63e45a7b7c21dfbe1886eb630bc79da07a51c4c523f0c44ddd85c94fdc55d5c285cf28ece762a6bf7fe712eac1af3ffd12950aed9d33992adf81723685105646c248204870115eccfa1130b7158fb9aa6050c0c612e54a9b9ce7cacf870c78b35fedafa7df4f2a9a5ee07c20939d5d1e7deea73efdbe732f59a9a06a68cd7d3e1f658dba270ea12714fc2c04d5b592b30291cd9ee74a552aceaa491cda583e076d3bddde0cb12bc2b531dbc235f40f42ac5a50d124e0c5522c6e3ca31e10a14f7066e97671828b8ddbc78b6654d82c2156ae13e390718d37aaef2235d072e7d17439edf8de331b4648d1ddfb6e56d6fa250725ca519081b22074a5c311077cfb0aaf9a23e82996dc55773b77b6b7f884cb06188b8694ce171c0f2afdba133c63c5caec941829839e92e6d3d5a25958bbe8085e3f4fcb129ba5c9d073f99c488ae5af5e71d1e10f83b07949e0c4a4da45cdd99741876c92cca824a485a76bde3b27f52999cf294b7aeb0b9b9b9e12f701c7dc0b5b530d392c5ef00228d2fb7dc768b1fd2a66a096e32b939aa203fbc29eb6bab9e2b0fd7343ebb2bd58920469f7e3af89220b3aa858f7eb1b547d6b329522c752c1cd4a1757ceccb4b06678d2e273f7b70c0e6b15364528b3de22632a95c3c9d6cf6f026b285b8bd7e9e4925c1eb987670e38e5c01bc5d93046a4c56c06d32cc25aad48da50c23ea8c094b25f9e549deed2a65d246cbd8e44d64b390a1828909f568ca84b5f68bb7496faeb52212b52bfd9555fb47bdc7503af4e6fdf1a8121823c046c8fecd5dcd369cd86ec195ef90e48327d499785c8c320db98c3bed413bd9d381837d8772c10b842197e6f48a38f1ccfbe680ad96f2530b38dd8b88605aebcc22837741598abd0ae8f6b8fb01a5408c0a0776397915fbf62c3658a6e38f760c6678aee9158c753adff0483717e8402ed5f1732b3f5fe1cd9b4d783f71204ea4cf79e0cfa417fcb86764260bc421ac1515e20366c1273802a520ed237f221439aa40abf4b726c74cd21f4f5356befa3b1ddfce3469ba17b73644a8278a58d139835e7cee130b3159ed0650b95fe6d8d15e5ab87a4c9dce59a33ead8755da8412b8a1afb10241dfa46ba5e29f99ef44f02267b9e8724f24028cc47d51e6a8fd65fef24d70c7c8430ad127315900a23d7c73e34c81e3b8b333a95d069b03c2df4cea0b6b7f255d4baeaf42d2d60580483cac77461d9b2c6351019412fabd1b249966dc782c64536642cd61c77c1a1b73ce530419f6c3a81c5acd33f335d9176a83263675225627fdc756301dbf1836d39f683610716971c0188da5d48fca374ad0a523eb0e920cf27ab696194097b286532ed0c958d4edd6c8f09b3917be17b31c2f6f5809a3b46416ccde64a6079991b30ee7cdbc3c73f71eeb9c134cfa20d069e005afa376e0f995aa23b96a53ee9afc12e544eaa2e8f4d70c02895f8ada89300b7fb07b8b859f1f7778e2451cd3c5a14e2117d5152e081e3e7ef9332a1fcd50112939949ebba9359b081aac97bef81fcef101b14c25291aaf50d3922416a100c2515d1a7a50953a2e7642e408c6532efa78fb5f4a811ed8fa643ae222720364c65e22998330f116a07a60961a16a099bd4eb47ff03a88604ba981c52d0169bab95b5203a1e158fe18546128dcc5577eb485fba8fbbe85445d06a75976a88a30fe0a30769d42a8ece38eeefa432ece02780b4d1e99e4bf41eb84f6dd5f3012a0c55f908881bae7b67ee734006c2dbc257496e3a6f3ea8b801b278e1a51b5a6c6f2e6f82b560c88f6ffb5961fd640ce6f36d3128e58dc1085f1634ba3197fb3131755d53dabb7a097feab6fbcc8227009a8ceb933d993c64ded3cdcf9c05d647200d42245ee1fdb0b659686790a85c713302254682fb598586f9652fc3effb782bbe84fd7506f66e30b3186dcce6107abc2bba76061fee3d3bec4c46e7541903aa2610cefc11ceff9a09202d39f4351a7cf727c1e0560fab4115562f22d646fc6f9ffdc957251ee389ffe09d94448c8770b1810bba5c6e29504bae8fa84d87f14cca62ef60b4f4f0ef28e795b1fd3bb4ddcb94d9d82119f2e57505d06e608d220ee8b84b24e5b438286ea034b6d23e0d181cda5d4c78eb202d3c0d4704b85c5995431b752b7f9b6b7a83812633ac88d63eb3cf2dd1dd8454af15241117c76a77747c402f8a0e9572460e0e9075ebdee4dfd0d278a7c81e8de39f5ed1bbb818c414ac7b41c0116d282fec400f5462caaf692aa74fec7051570c5dca7e16c9f7a7a4eabc4e50375a27fce38719d899ff626a1763b05cb83b4e5ce4078904d29eb3628cac04a71bb090d34513f521e342c3a4136014f4f2ddbce97c840d9c55962fd69f84697c0dbb990532484f83643fcd71e912c59acb78dab399b7d6f51afe1ed68f1fe1ac63b29b5f5b1432e2273ba797700f9781094d8070fb83e3263809cff16d606d36c3d5469fa4fc850a27200ddd522611e4adfbf1f69b51afc00e6d561d933be9a2a42b50f78133cc77b44e3d284e0ea3da2aa15596597674f87ed11715a994e518bde2d3bcd45cff875538f083f06478203109ecfa811ecd700bfab39f476e57319a7c0cc69c5e88332eab4e318a3518f16e034084286a95d4d7119f5fdec1344f3e847d67f7f78a4bf1a444aa6b35812c9a101d6345b06ca3e3fdd2e6ec20c79d8953e65b24d95cd2d5a367898d4ff43a58d451b2c8823faca8d8086e7fb325f28c895c9e6175794c9a5362d004cec5cc34bd2aa5427b892e29c3ccc864566998c5f315131e831b8f7f51621b2b4541a091c9ca5d90f4ee3fe3615e5e4042f5396d277e204eaad4dfe6a687c6ef0c3747ea2218ecda7a71c88b4eae299bca7a1857006d8e6afa5864af6815beeb5540375494926c8499426bfdad482a514748e4adc08112ccb7035147ec04f0825b829938f29291a63898fd20fa64e17c9f6c93a27fde70dc7cf131c452e075a58522e7ac2256352d608c3206815ab4b6e2968c543b55fff336140e935392be7540eaba424df5390972e558afdfed3b1566d235156147eee1ccb5a6eb2512179b69c497a0e4ae468668d0439ba8f45ad459900f41761ecb1b9bbfdc46821cf57c4e66c66f39ebc0a6c7400d43d41283a926586edf0015f0297e325686b6ae7054f005d0794d02ee539bd279bdee372ad1e2525d828bc0fbd6d15a0a82cc741342e20e21ab45c9fe986ea584124cc28cae518d162a853564f0dfa8aeae56f97db9d14acc382eae5c9145e44701dcea0b2a6aa523d9dec9a146f8d92ce375da2eaea2265411361f35b54177c69155a0da080b0cd925240acba5262598a2bbc8403be0c4475c5dfa702400e69cd68afd445e38e06273df0e5dfb043eaccff094130754b7205bed36f6e20bd668c3522987a1e17e6bc7e660c12c139f8c51db2ce8ce3ae6a7b158e43f85f9c8a09001aac88763ef41ba4a7dc8914b6a16a41a843bf5ce42f195db05a52d702c23091503b19330cd0b296a5d0d4381e42033ffe33e40e249e6848f653b95a0859a260d2e4cf3a974269834820fda1c8a91f4177666574cea1cf3a20534756bccb4bfdb89cf862da8fea4bf553f0dabd2654210a4bcb61c464fb7a01bbfb9866ecf4f63a31ed92fa24f8ee1945db7e26f3bdec71163b1a603877c28f73e0c34b036f56ad97c4d0b1864558bf38fa3a4110f50704b22a20a326601183e8785c3a5d86bc8d6efc3cb41d6b1660794eb654466d31caac4b206ff79e7c8d20112610e621cf1f69a581ec5518a530d0f93ce9f0594c63d406252efedcaaaa3825ded87e170dd16db4b2fd692c19608d23f5ac3f7665ed26fb5869dd88c439c1528c53f6e234f6df8da5717c356a774a2b59aa714a9e2763ff6e3c69dc27595dbd44d137eada0d99213811eb140e8333838934a6b17ab1b0218bed0957f03eb1924eb790e687b9e670e4501b1e2f40815447d8a0423c0effd8bd4967d18cf6fdb2310c7494cb54386d1efe526cf72eba5f48e75a716995b564bf6876712131273cd49a2e8ec0c1b793cca30760cc7e66bf50e9dd90df82e07dd5be1f032a8aeaf2f0c76154fd3a403e1106641c6b8618063b03a551c4d8d2de1e3772839196a9ba9046d1e22b5d59ff9292e114e6e7fedb65dd5dc071f1d3bc04b6b2a2a95c140e589e506472ef632c7cbb8d1cfbd24c141322a5d310803903c7476989ebf0c3db04a84114b3332687c11abd5a9a7973b7db88115fec445955749a61f49287da5c6471560fe4b24054d33937395fce502aae488aa6450b982852017d820b35c01ae8a75173ee46da3993c8351b55a75b5b3112aa92e22019c90c0976288198790a8236cae58612b6f3757ef632b37d3f1284505a156f8642135704fc35891ab9fb338ea8875ad113a0fe8723ae4d2941df9b7087ac0f4be64e527cf2a63e19eefcb0f38536a157d78194f39d69783a8cafa9118e7e812b3fc8fc525a71a1c312d6b4244711a0e06a9012f6873801b8e68f5bcd4a6ed332723de42c407570f332515efb6b287d33170c5bdb884caa37d7377d1e6db0c1d82b63bdc04e89d4cb2756bfd96d3c5657183b3aa2b56dfc77143600eb37f8d03709c583e33afebe9bda951f8426c42728e453abb4ca75c5bf9b6fb4a2337c4342f7a9e7aa0fae105d54c8d4d6f4c5e7caba88b94497d621429a656bac77ec1362f7e1003cab904321fd6829afbba87daec9a425ed578e59fea50e55e6518ad841ff9719e3f1d9a35f3d560c3a02a622d0dbd1fd2a0aebdc7a1aabfe3daa8a02115df38d46ef0040be8e70cffcb07ac299f5d0b6eb97a25b48d609cd2b25b71f5cb428a97ec29222e87a8cd074b2c60f27fc71c4ec2310c16b310ecfb93498966d687caf936073ff7b19bb8bec4baba2a64f5381a6fbbf3aed85ccf6f8d68a1494e4419313b3ceee637005685a23c574ac2b7422397201126020313b718a621a434dde8314b5b598fc8aa971728127e48bbafa247b662bb9342d032cb537a0a08be74d6b439393472958d8151be9c30a1d711c586211ab668a53ec0eb697a61ef0d646d9f9c37bf69be9dd3bebeee7e6eee160bb2fcadabd6cef3993a074007e905ea210ec032d20bb3c3efce317039cf0d511e91162ba94c1fab41d1428fe0b6007845e13ba0f69d275ea00d639a45d514dfc471b5d0498426bb1644e1ac91c295b5e3208d0cafed0a79ea001415996c66988bae626ec5a95076ef1650ea1f271775f858cd352bd1ca200f30c3f46bd566d5b92d16699ea1d009d49f94cb19561b84e07c0662535ceba50d7b3d339297d1ef80306374252c6907a04b6154d519cb901d5c4f92a56c934167cc9f09c68c8b98f0fb675b6ec51246f4a4aacb6bc969112c51e5dc91eee80c24f3a72428218786d148625ae1777cb7111514f8470e69cabf5b72ab7e67798bad7474e72ac8f2c5636b35b0c967683048dbab14c585d7a5becb531aaff7a791eac23a1198cc50811effcb0c6c876bad6bbef6fdc3e17ac05592c8afddb83ba654f101e2958f55c4b51f77eaee29905753b46a2271fa07e89705f833cc5e762ba34afa2ca6cc3372df57dcab681970842d050e7b6a7ed289a6ecbe77c161ad3904682e441e1e1a4ed4467f44d5bb107d2707cd8c8683984a5865c923ae707711e89c75040a9fdd6e3dfada5964e80549dcbdcc4918eddca5501c5add93f6d319a1e304481da45946537f2e9a0ce2413c87818e65975a5d40e168cbcbb1de325912411f05d1153ee2940fe12f0d515144af063622e44121d337896503d61f780c32f01b1900844f97e9b4fb7e6c419a2527768db92649ba23e00f20fb102e02f4f6978576307333b5e6fcbed0d5002e2ae4763e3e1d42b866d8a822ab0181cc67a245e9a7089d50ebc60c304d6103237eacfa448c2eb9fd97442a759b07276eec1a8d93545d986dc43874df34002952559cd69c9924544eebe1d34910d8878deddf8dd4e2a25513f4e19be76b59aed2299951a92a798d2e7af9624b02972294a378957e6d711818b129384162bbbf722ba82d624e1e38abd04c17d5a22e0e7bde8b747a07ffc079a73e9a1b8a182188a2ee6d9f26524a242ab33d7d6129f0c1ab9e9a6f9c0c01115de349dcd14da44fa8118247488aff64452e02e04f0eac80daca8428f80700841d7b0011192adbf90a18aa4969fcf5df373254132855c6ccff4567c8cd4d845c352aa790481af22f4f22c00bd006a814630ef6b0c988353ce59d1ddf407a0092df0600972a79d17c8dc06fce8e1129923cec677fa029e36c29cff217149cda3581883a79c16e9767bcea4cd1b5c014a4e38f69b2239e65011868f0062324d4e8bff426e274ee92bd981f4d3847206bdbb3510b5693ca2046e58005a24a93890dbea3ce20c5b681ac97bd68f0c6818858a36f6997c18cf26986d99efb66f483d21e29f05f7e406f897f4f8496317b95dc5dbfb392426ac5777abd51c989caac40243e462ece2989521d9cc227811541aa35f8ca33cda44bcbb256b0354ab03ea398fa95b300eb34a078e87ad8eaab270d9f75d557b5eaee7669fc8e15d89b7eae1e77051bac2e3d24da98971b840e4c982283c3b4e2f0001d86708ee0fd790e0481bcc6c87dc596239d926f656737eb0214208d972ef2d37d9726f29a59432300a010abc0a2b91e532e25eb9f4d64a64b15cbb65b1fc9371cd5af9d6cf6279b712c396af4470fcc0fc96cb073dfcd11a4df001fa062a6fcd1c8aabd5b87b3ef4164bdc2b9627e3396bfce1796bfcf139cb57620febc1b18745e35afa2b86f5d164bfce1af74c4c4c18e69cc3cc720dea1c3a0bd42e97cb15e64ef4993a9562a25ff3571e8e3fb273fef90d7d7a987fe415e7a0b8590f3e4be52a5d232313e32c57798d17b372cf5b6208e6af9c56cfc7cab9917a1f844e250f5ae9677005ba1659ae125b5df57ca8bce5d2e3403bcb79d096483d1f3ceaca73ec7325d2ef2a07218bc23ea79e0f3d7e2ec71fd9a76f6fec617d1e3997fa37ac876583775baaeb7c846edb6eca9547e8b119a1c7a646b104cf742ea7f1fcfa3a9518e3a0186a2de3618c87aa0f5abe729583e2b67950837afb83e32b66f4d11a2585a97c056a9711b74abb7ca55dce83ea111ce1b56b9e04400ff1d65aaf5cf579b80a5d35c2081fba4abb625caec71f2e5f8d3f58a1b8bfb1c7e65d36afccf23a9a9cbbaeebc20e9c99999959026abd1af7cfaf5c256e9b11fef396e80fd6d4c46c578c28292c6c8135a0d78060ab86e59fb75ae3c60f8e3bbbca3f517396b87b6c56aa300cc56df3a12a0c6d7a6ca4d208360eaa504424d415e96da7db40f4a744edc5f90fec9b73d835df8090409f1cc16ab9dce5b98cc7cc6495cfd898a03f04afffb2ab4057791886a0cac1d15298e779ce1908c63e160890cf9e3d5f8d1900a1559eabc61f9e77e38f1957f9d857b9f6c6702666c6d592898969b55aaddcca2c168bd51d813190d72fff40af01c397e73a679db3ebd1731b17fd94b09d26dd7eb08dd28ad5b50f4e98542851b9cb573431ac18073f08dd73cfc3d11b654cce312dffc6fdfa2074ef6b8d3ec2d11be5077930c7e4ccca2c974eb362a9562b954aa55229f9c087a764f118c46e63101f1a844e284e84cc8ccfa8dc45e3afce3fefc496ebef731a9c591a67567670dc26d80fc1051fe3a06bde079f772def5a63047e3ec6f3d043f740cfb3ca5b9de8a976e7dea85bfe75ae7912d00e46e0e77de8f7819f0f4710dc786f045d52d8e7dd0ebd4fdc9fb7c60c80b0ee8d3f54de1a7fd0f8e73c6828fad06ed4342efdf5d1cc7ce37681fe79f77dddd77d0e7e32323232200882204804e8f341fff2e7d3bf0fa49ef7f3b9f6a114f4c64ddf73967fe2c63163e8ad707fa07aaef2957fda439dddf3a12cd5abdcfbe1435f3586603e08faa00ffa049d1b77e720087afe89a16b71dbd75e3f0d82df687d743e7de4a4c641bebccf9c995e197aef689b7881bc752e456fae96de5c97de074080fc96ee6387c821c298633927e332341ee3ad19cfb3086aed2e578dcdcbc1b1ebc697f7a2f18ec603d201e980000142e3f9581a1aefc61f2e1feb639f66941426e372e9332d970c2ba6d562b1582cd66ab55ae59c7326c218638c31c61ac8ce05aeba4094f40663acb5a6301f0b04ea7dea0ccd6b2059815405d4052232765894deed79c5fbc10de268f0254261f77e705dbbe3eeb9412068fa2dbde706e15085901bd42581c205a90a24cfb91124284a9cca532b4f79cc9ef196b37e64073dfbe75d1669fc13f574d0e84197218222f4d5711324265fdd661ad71ee839fb973d1cb57fa1d388bb73e933ee65319cd9d9c3f1a371d07376cd93c0e7fae53938eed7079d87a0eb71bfbcd187f61074f923807aedb99b7150dca0d38c1900a1c170c6c3f1c78c7be30f19077bf4cc37cab874170b948959f97570dc2d164bebd56a057a07aeb283d9c155065d832a954aa5b5d65a774990aa40aa02090a12143074d033e8d943317bedb9413708e83d0753423708241a01d40dba41190b2a8836a8dfbc9b43f5665b5161924d128ac6baa2274ceed1132ca923286a7842658584a8e88888918e12dd580746ef4d68434285c2362a6a4e1ad5b48973c4449bd469e949893acd252a54873ed59dab64bba1a11036596ff61502e106d59bca418ed79e286cd342619b6dfa6d8cb714b67a10244ef77885c7177e5c6712a702e0680a20a5a725ac29e14987ea8eb55ad417bdb525a1df7c13aa3b5bd16634f46de8ad3dfda685ea40511d2e54a77640bb79ebbdf75e7cbffafdea1a140adb1c8b9a12856dce6d44f4b98d88eee0a6ad686bb2296d5494be6c55b6a30dcab6b4316d4dbf3987ab16953453020aa23a5b73fa4d8b2262a48aae2571a20fa125252854872e694c4e1a12aab3a790464475a6a684ead022cde888ea68db041267154fa0b0396a4341286c23aa37db4c6f6d686b43bfb916a57d990919f2392108856954d3666b890a206d52c94546cdd934e2734290399b40d38814fab5c105d6b5250adbb84d8813b723143680d91450a873e2bc31143ef71cbbac3b28749e1d8fdbacde6cee8db8de60975e089de751d61bac3d6951f526855329ee0e25094971585bda84b428ed49f34ebcae2d6d42db916d56779e42106104124aa83bd6370adc58b785d15b8bfacd3722aa43e7c684ea44519dcd556f36b7a2d79bcdbb7df39af8dacc6be16baee58e3925beb922c6f152e2e08983c2369f95256a0adbfca5695388eed42ccd2125495234f96d23facdf784529790f89db7242bb62424bf6793dfe6d16f6e637b2efd36e9464475762ea23a5b1b519ded3aa23a1bc72ba13a548cdfa8d34614c6efadc96f60fcde92de87d0120e57ddb1d7a9cd36fed8a0009064fe9c734e5a59207bcc48d139c87e1125bf04a13a428accbe54180c0683c16039b07ad362d25b72f13921e8ba80dbb8c10439c88716ea9c737aad3cdbb66d1af0687627b5f5cb2657d580de541e9e1e4f95b0bc992e7594e0d218f37061efb538602e0d731902d5c91246b5bca1b0ba93c3537778c81bdac30310248cc2a86f203fadb51af060217cb0f75a09a36f42909f14bbecac9e1184a584edc89beaa0bee63a46b0792c250ca75c07d54971205098071456bbee36dd29abb442dad269677d3a27c501a394527a6795f5b36f672b602c4a7983e91a93a73583de3c5f44e2546f05e910768e0720cc22b68b1a369be238e7b484b17a9ee6694fc8b1a9d41a52031e8c61b09c1c1e1e2d242f0b7a5684e3b028e650afba7631e438e40e2da8070d785c4a1efcc5cd185f7d1be0a5195f7d2be0254f15e50e06a4f6da2882c4a90ea6a1778eebb89a4e973bb4a1fb45aa0906cbd1a0470829285560475096989a5250a80e15aab3535efc520aca8e140eef0198de42ef54d2574f25a594aa4d359560871ce4830c4339d53ba51950500faab35d20f4e081d2d64384cb241341cb231e3a20905377dc73a4bb6a86b4703ae4a0231e3d4220a127477239924cd2493e4928195557f0d55a6bf11772a7fa206faa8f3106854afa5d53c3a3de54af75688bde395f61b01a1cb4c9d619bae954ce499d523ae79c1267fe1c85d09c3e169a338b5553232345059ad534cd5a6badd62e973b0cf632e741a83deacd0c9193b59ab556d3344dc3d5037a536bd096c26aedacacf49b12673a0faa6d1d964e2bed7775d41c1d36a8864edae06d13650c8b32c6893216e3442cea221edd530940820019613af2346793c80c9a42734867cf138cc084ebcee6d245ed09e1f5a682d11b04088490739403c3514495485902fcc5de6b71c028a5a34b1cff49773f3d23692075a746497c5dbaae944ea7fa750fae87300209b846c9e9f435cace649ae86d7fcb2a3f5dc609cd424303a1b7cd3f68ba9abd2d7a99c18f4f1458c84d8e8e8c8e2614aaf4f4842b1545d6092323a33b8592926644772cdd985052b2d4e62ae1254b4bb3ba9c955b014ee12484baa19a675df74454948d61a2bd2af4d6a4b0c1c84bef8aa8cece44be7ac59908d5d97996675407e80e4daf7506815374d2a6eba2686bad6be607adfdf60e8ba64fd36f90c4b9770c92424c42d122558c31d2d2e9595c98881114aba2c4828dd8943853e64a2b86d6902a5f21d820530722a29e62767c853006b14ba811aba3ac3fb1216a2841c5aa6897502386c328aa4b9fdf0027aa388a5531e710eba69472cefb5551c6ba2d4b69c6153800c5641831ac00c5a4e30b8662172cc139abd0ad918415a85887454cba9e0ba0a1dcb13de9ec09d11b6bdb8694f76af76af75a6b6dadb5baa02badf40671b2deabddabdd6badb553bbe6a43a4c9f5edcf5844be46aad9489973e4e5b299d734e8ee3348ed338ce1ac97df3d23112f286babbcba565d345e21ec99d1b34ba2e12b2ab3ab8864f7db33eb76c9252db7c87459a30a6310b5577300e0aea522e3d136442741e428d7563901462a9cdfd0d0cf50a5d22596f248e91c4995ec50b2471a6370531f4544aea96866a89b37a2971ae9885de29a1a7a090dc319ffaa72477b49ee20b442d404770880650522af5746c81aace346348d7a18e5210945910b60294b637a8d65a2b1413d55f9dca30d7ebadd5ab07b1aecd246708318ba19082dbf13255f12ed59b796fd34fe96407a6974e7440229b5e3ad1218daf4172473d9238d369ac1ad51b34aad1cf588a0b1835a0cc62136a368b4d3fe18362ca1441b3d8a447b3a0ba3363d3a750dda952a84c499ac5a6cfa1ba2397664575878269124487ea0e35a2443f9dce28906a0907a7596c3a1582aa3b746929eaa96936fdf4b944a1eacdf4e993a8681a955077aa51bd996ef4d341a83b0ba862c9516cba082450a3ba236335a8d6190f6a4447a39f5bcf4ba7dda2e3a4b66ddb91a1df0cf01b25e2b76d63d54481f2312f91cab8f2dd4b242953b29d214a4bb72f91ca5872f9d04939e7a41ae890b556590f7974af267365d174dc1a09111da2332ae44b952626a3264ca6d00c82e2d2b3d40386e3a58de42ac7711c9df2fbf6cfbf4200639ba77ecf17621b838820866927a36889ed7d4aaf26455bdb49d1db85a4a9f3a854d43a295ade99436a4ba9be52e60d2bc92e275abb9973b13c570b3475eaeaa6b8d4a574979296cea3ca7b97341d33deb49b53f6de2b71b66dc318739c8e4fc9aeeb347d0d6fad22ba3b72cdd2e0250e1b223d5d87e6e9a2747499a2b3ca384aaba594524aa909293c154d48b9cad074dcb9eb72ce9f27d3e0dcf0a67197b3957253e61c0c9e74948660fa3cf273836bbd0ff0638933bdbb73de3beba472ce69bd4fa6d15159e71c7d72501fcf1cd339e09e456144dd7c6939e83ef57a89e4858aea25521954a8d79a243d67119ae652d649abcba85842dd7979535d0a28295f7d8baffec443e24451181502925de80307280a93d7a56f8c359d74f677ec4161950785d5eaac31a4b3c87842f798d7c51f29ce4590f2105b97cfb9f6c2230829f99ceb8a9d136dc79df3922ba2d37cd671d334bfd5effef9297164948c12076051b96145010b77187518f8464a08835a33137ac6e09cc1c0ad2c458a25a4d65abbcc5ac3ce9cf3119c179dcc127a6316167ae397224b496f4c297d55e7defbcece0ee6fc0ee6dfe75e7a1cd49f23d64e7ae35bdf266f7952989ca201bec3e277a93cc5f07e97f3143d70dfe77ad7d6ea79744a4ee2489f629e426f3cada79ebbcf599f627dcea6f4d4d265159f39be7c8cf9e7d893ffe77fbeb3fbe7a7b8e7db978f6d5fe2973fdfd19edce3b2577b89bffdf3f83b99bb14e77de2a7307f2add6e18a7d592b8e2890e736a30b0f6f66a23d02cad73d64dd3b81abcb85cd2ba66aaf3a2cb51644d0333a7e67d6a7c4580daa843f771f802c91d5b94e9d648eed07ccaa5cea9845dd746f0d5a59c122726b35eae52ad28c8d8e783174bf49b8be2a0288c0b855df0daf80d491cea9988965b95f49b9213690c83507738288ee3ac7825ec5299e372507587933757fccb41cdfcf59dba1cd4f837035f7d8c5fbdbb53e2dc14acb552fcee07b509a151d179a77f204ed7e4b473ceea5db54bec9d723528b42d870dd7aabfc0dadfb75a9d9a487fffccc9a59e5c4dbaee4c21f4c6e59ab32cd3d35f5c2e57bdf2a6ba5a9bba0c45b6b68d7befb5dee7e5abb52a0163b648054959b1ad24f071e5a49fb5318d025d2278bcb32eb4741ab3a20736bf185be9011ffc53e6b0eee3ba3377cd9edeeb43fceb9db6c9201b465fbb691bb3621e658eb41c92e215f2264063db78b5151a93e20da2d708855da122d70695fa0c115afabe4174de7befbd578a9fa4a92128cfb95074491c1658eb3f7fafb7c18cfacdbb0d77138889cd59bd916182b994164bb3098549e152186b3d73b09052f8a5632e95e2f0cf198585425dde72a270c04e0e0160acb5cbe50e83e9a62c3bcf4be1e0dd17602e86b349de842177b0533cd6d01bead4378de1290b938d89c6ccd2d9e0148ea7580337f2c0cd936300d80dc673dc328a8ce2b7037672086086f5cc35674db059fe02d4154bd38da6ac2471dd71adbaf5cfabf75da8caae97afa712274a95bd973bd8e5ba217738e7c639f39de3b7001eff9c652366ded7a53eeefbf0f669f7b35fa51301dfa6bd0eaa5f078fb41f8db2ccf00e93f057d35c739c92fabad42e0f9f1b441318bb9c7bf94bc6b3cfac400f1d04694cf00f014de8a0ca41ffc4edff7ddf0782e066b9f408c88021183a286e121ec4586b96cfbd9b84d71e3ab859a08cb7401907c71f32ae1a7fd038e8737deebfee6a86e6e5ca33332e97cbe5eabaae6bc249f8b0d5d2e3be810106175c5053f37ad1d0ccccb85c32323131ad168bb55aa95461a835087e9fe7e5dc75a914c7c9c88c1bff27715adb0e1a7fed9071d76bdcda7f3ee334a2943833e3d65e7b8c768d312e234a89d3ba3a2dff603ed7dddd1d6be92434bd8f65ad206f3e6ff3b6590aebbc4b39f6944f093d3935a913238e4ba5427043a5f2e9c93d19631f9f9edc938d388ee3388ee3b8ecf37af5658e3b219f805952bb4fcef952e09ca67eaf769d85f1d544e86139d41218735ce72e5f79a1831efae7e910dcf856286ed67fdfa71a23f0f3ad3183241a6b0ffd63798cb85561e72de741599df3a060e81f1886e32b023fcf723dee1e16f8f3aa1104379e35ee9ed70efa56752ddd396bfcd1796bfce139c80ac71ed6cf38cd0af46656ab9c73fe42d0bf0c865ae6fbbeeffb96d0aa71ffbcea591f7edfb7f2d05b2d96f3a82c517a286abe12770f4b058220087e5fddacd7afc50fbfe79bc562f5b0bc27acb79c6b8eebbaddc37190f2d49872ec3d9ff22b6e113e35eecde5c6e5eb1e85711c7463cfdf7b59d5062646f2c6b93c953d45e334331ef3ad1cec56a28c6b31a4ad0f405fad5c8b9bf5daf5d62cd7deb1c4d05b2c71b581ca47bf67531bbfa7529404f3d2a574499e979e23af5421c206338460b15224d6a3ee9020a40727a0886164c9173159021d78d001892c53bed021b6e5d302909c3c319501664b1131e953c89cfdd0829c407534975f5eb2f1d2794c262f5dcba2d96c5683f4f94475b81ccd663322d22510291bfefa85e1f8eb5b070fa5bff84a2a24649182bfd2493e49df92cb0f7f632e1091bf7b1a114ac1dff01229f9eb7b32b97726fd559a50febaeef5d97465c85fa7f9a4e5ef8d9a5dd1d2fa4d8558df14888891237f9d0e0df19722f97ba992bf4cfe36f9ebf48806d66f9af4f24d95a0502a4c59fe7ed7377da25afe5e1ad58511023e741f9e2c640113af52a954aa1bae5275a1e45559b586aac655aa50e552a552fd18e1841428b63881450b2954439638d1a0850cb31b546196708c100796df3a5830e5432e3e74cc85111f5611fad08a0a1f869e63e5c987dec393853c353535352e5960c5d738079eace686cbcdfa1b357fe3c60da62d7f638b2dfe0613117fc337f06437649e4c75815395bfc021e0c92ec031fff2f2afd05f2f95bf5e503820891266090a8a1f62af2e9cbea420e8cb124a003941f12f06fc66bd6a00bf6b5e1586d1ab54aa30bc7895d39157f9033c99cac3300c438f79b2f03dd90b8b169f3de7ec3638a84e8d67cf79aae1734c1661847c41ce39e797e78c41ce39e71b9eb3e79c73ce393f8df1eeee3c3c99dfb871e3c60d778027bb81c1d3108f8137c09361805fafd7ebe50cf0642fc7f90baefc05ae8127bb200cc3300cc3300c7d019e2cacc1d2c2d7f80e4f56836d940a8b0aaf72057832158f27cb577a50e3adbb8dbc32c45b9ac68b4075546e7d0479e5e86d68e40892b757b678bbb22efc9e4a54e7e5d627142a5fe5ad23e1c4cad1111acc58810b1343949042c60f61a40146ccbaac3b1a1229a898e18c32c84822d6458b234351337c81244b6ccba399dcd3e8ed9e456ffd75c5bf5eaf97ef78b257e8aed07178a5890f5dc793852a954aa552a9542a9527c093a96c7872aa962b473e3bce5772f8ec3a3c59468027b34dfe346290f1347e004f463333333333e33933336ee5678cc8f9ec06f064195b6b1d5b97622479eb399ecc7a0e4f36c3e39262f42e2f8027732d29f9effbfc731b1c9f9420fefbba7c2ec297bfeff32e465c0c8952860f667c454004e91044912c513e672d290560a98ccf8ee3c9b22b0cdd153a0e979c7ce8383c59e84f8038a40e8bad58e3adeb266fdde5b09ca8b75628f1d609e0c92c0f982bb64862f4850ca43354f6555c5e35448696219e142102838b98ca0a245ee503f0642abff1649fcc14242fe3304f268359ee62b1582ccf613966491b9e25258ccf07f8ec02f06439009ecc3a003c198b2726cac7b88d278bc1ac5f51347ee52bb759f9ca73e8ce0c9acd6630c4565ac04022c5880a5167d0105bb9ac3b0ce0614a900f4d28f94214934efcca2dabe68a1bbf71bc8eb71adcfc96495ec4f0d6ad63ed45106fdde5451b6fdd9ba2bc75d80f6f3de70b276f9d071834bcf50c3c9955b2f9ec72f37c96493cbf25d367158604d140859623a4901bf6d9733ebbcc2e973ee7333ebb87f98ce4850a9f1dd71d129c387a620b164f70e02196bbf0f2d9474f969b444fb66a61f1c5b7dc3d59eb8a2bbe5633bebadb54cfa9577cf9fa55a85a9d84b0562a5f7c5d55da82aaf25a5715098b295f957c2d632a41a97b52f9cae4140592114f841c694214832de921090e47a08e4843b6d1820e2c28bdc0a449ecc789335e68e2c469cb0e47310d908469218b1a48b43043ac03326c11028621d08882059867b965f90d4fc6c2366f5de6bcb5d6ddcb5b6b1d034f66a3fc8a0a0dbff20b3cd90a8b600b24b6f841081320e125b6f5ab545b5ee5b8eefcf0a28b228ab0020824c488a9a80c7995d7783215cd872ec1f8d05f9e2cb4e237eb73cde79ca79cf1f98aa3295a7c761a4f961d00478cace0128509b20011dbfabf4fcb7f8eebce0f112654f882c4ca134980119b62c57f3ee32e4f569b8e5e9701f4da653c99ced2e43d8fcb7bee30cfdb12c37b2b8f66f15c04cf47f0bc2d6abc177a940c0fc7bcf73c979e634fbfc78411199e5872a2e58729b12d8f784c9143152988a288a1e48d60082d47801822a20408cf65dd2180952e46618c38634a17b19cdfac2d26786bb744f1d6635c4e7eb3acfcaeb9c9b245cb119f25e9abb772ced9b3b33c59cee0bf2c39fce72b4ff6a93c99a7f4a0cb2a1ef4d09381788c2bdf7d37c6779dc370509dec9de7f0b8f09d065de723785de740c848c177449dcf20235dd739ae3b15681af2821a504c314512b1ee09308e601a6209223666886d7dd4754864d4f0dfe7da937d4a9ca8a82049156d2041436cebb73ab8ee2c00ea88054a583162458a989562e5ad839ecccebcb7e53dff3c9967061950a08a3461e20415dbfaeb572c5f9fc800c3c21a67b47002a258a5c2e5ab7b9eac7a1ee389ce93754405f894cb2edc95e7dc613838cfe19c470b329ed3e0b9223817a1eee018c77949aee8214c125fc66821c67539828d205e5072f4436cebe75c6e79f49cd46289e7b4407aeb96ea08e0ad739ecc62297eb3be7e75bde56b1652b85ec64928cd93dd3aab5f28ac7a8fbf77ece191b31a85455b1e5496879fbe55619eaaec904acb531597a7ae9a19a94af05b35d1f8ad52a9542ad556013d556dd5d053155197b04b7880df615418154685a1d3530fa1d01d4bc4120943a5704af91dee702ef91dee10e869b8c3a1a7e10e8d9e8658682cf4cd6fcd546fa6eba8d755f4d64f5a9eba864277aa5375d2da8c25bd750fbff5d65b033dd55b0f3dd55b1b3dd54e640e27619e823509d4f2492097a70e9ac104ce2f7e831b9cfd06959e3ab8045201ab804e4f5d6e10e829086ed0e829586df8aa0ddff8fbab425f15faaad0f77d1f14ba538b6ad1f799e145fefd4d30bf3f9ac3ef6f7ffb037afaed6fe8e9b73fa3a7df5155c1ab2a78fedbab42bc2ac4e3f2d43d33b27842b657e4799eb7bda1a71ed11699634b98a7f90b14bd99beb39687ca5c9e7a36a34bf73bcf27bf3365e177de39e7dcf4f4e9a9cb9d819ee69d879ee69d8d9ee62732c793304f3baad451a58e2a755dd741a13bb40aadd25179eaddacdbddeec2fcee7607f4b4dbddd0d36e77464fbb2323640e23c23c4d15a58a5245a9140ca9542a954aa5a80d1cb58193f9cd0971429c50d453e76694e3388ee33830320798304f319d613ac37486b1113cc1f88d37de1863bc31d053bcf1d053bcb1d1532cc626c6b6b7a7ed697bdab61db6bdedade88ffcdeb66ddb1bd0d36d6f434fb7bd193ddd8eaad06615dad696b4a7a71a754dc9d3ad699aa6695ad3d320648e194498bf4497e812dd7b6f9326f72e71857cf97d8bee254241e60013e6a9fd3267d65a5bc53a3d750b85ee4c23f466ba9d293dfd6d857cd06f2bb4ad96df765ba0a776dba1a7765ba3a7f6880332c796304f7dd72f402a14549410a1a2aaf4d46bad4dbff4558b4ce600239f8479fae569bd81a2559c9e3a8552850a4e181c9963fa9e609ee6cc27a81c2b4f7f53214f5d6e2a54f4546e0af4747e797a7f3a0a720157e6984ef7047a3a899eba9c7b1a353d8e51977b7af926f4f714f2d4e7ecca530f2277c8a7518feb0874c7c628453aa3cbd339c553199e7a0fea983ae5a1324858223f5da648b3969c7e7a65aa3b7648c70e31fdf49512bdedd04faf5f608802003f44f4c4df7bdd6d70e4dc0b850b4203f8ea164b2c88782bbb210ee10d7a57a19f9e3242abfcf4540d7a53a59f9e8a416f5af4d3392b7a53a19f9e51a037ada2f77cfae9190bbde7d24f0f85d0db4e0f93e83d897e7a4ed24602ae1f5c3f4c5aedd536cca5baec7da00e552b562b46c63543f3c2e086637041cd8b66c6e5624d0d1a6a72c9c4b4582b711caa412b55a8c1318320f0f332b009da8ea0b20d00001000ce35140001b8860400cbb96b25b17de725bdba7cc9f13501ebd72d40bd8e2854148c08a13a1d5f1205e932665dc6b0286b5783f6df2e9586c0786903082d82b4f8992509628c254c52f0c429d642112c4c4451a454c513398e50720414534e8085506c7a15a9687f26a5484c9fac15e81cb9837e90ba4294589014565ac4b4a7c0222266c4f420124b1326806229c82982b85822a647235e1dcc1fd8e7f8d2dc41f83a27e873fb38286e107ab208010f5ad0d337df32697c752e9fe795fac457e7f8bb31877a0f0facedf227fadccff3dec8dbc8436154c7ce8c6d391446d3c8e1a850c1185a7809e20c2c52670861830aba88410a2c29117362ee88e00db4600c309c7410a38b284cd842c41953c6a0b282239bf782de7269f7e4fc6bbaace3cb41a03a5b1e852082fd0f48e7a5b515797274b0919346912846441051020923240b5060258c2c2bb0a2822962b2056498c08526c04082880d3f424aa004172a5440256a8618754d745118f5cb3aa241a03b328d26113640756410aa2393908e3c15f234cba7214368d49c3db575f2d097bf8d8e2ac3effc44348db264041a4594c085295688512fa1eefc287132858921a63c61ba22461d04ea22d49fce41fd8963e8a39e0a734689ae0f825fc12dbe04edb474ce69355517da750d6397cba926e6f05058a54d246ca004aae354e2d4e924603c6e037ccd9138d5375002092a31f496549aaa8b505d47ea8be6d9e0575775a1bf70d9b3e9a9c8696ac152076977299ff0d244952b3720edd0c401f18211943596706143a787681780931c8690c2046c3001149b3ea3ea4e6512d5440bb03c3951464c8a31b028993df5108315b1f933a4c4192768a3852e4e6162d389cb42cfa7eb3eda75390383de3e17cb6dbb9a94a9ea3ef72b9658caea784ea7f94461d37dcb26292575b969f68abbcefece98a296a0949ee85153d3d19312d4d2964c33078205e56c9e973099c323ab36fadcaffe92863e7068daf2320928683651d8cc405afe0c75342a2f3ae905282f935e68f27b2a25bd40e4a7d2f4399d0b1307dfab9ef4964fb349e2e4179aa64f208cb52e61fa13964cae25adb44989e594538abe89b8473651100d6b5dbf4c6261889752c7c2aad0016a0952126c08a18035585881862448583065fe5c81961a982cb16105a02c341755ba3012840abafc3067a4d03f485421450a912884c8c1cb0938e420860e458a6062288b9f6ee9ce03a086e88d7c00944faf3b1c38628953123d54d1c2100fa2a44145d40d5d809c884dd7d35dd3652caf586fd7db273f4821a242840d439ec4ac4bdda4e56fad21496241035a26ad90f4b097492aa4e03bcf37fd2b9d7af9adfd55c1091955b24bbf7247e772d4be83fb3904f6b377a2106f02f8d93bca820adfd530df5930df5d36bed37297c71e079272da46f3ed1f24df79d20a6a7c4adcd2534ebf7f3e69052a5f9d73bca55fb79cd3effb41a56fce35df9b7bfef5e0c1b98cfbc01bb78c020905e0bdf77652dc9cffe0bc3ac779dd80ebc62d3de5d4eb077eb09472c4a317d85ead6adb768316608e4061610a131a2617199e7081881f8ea254224f299d19a23427a9d06426a9c0e4c83a4d1a6cc0b214a3a2018ac478e0a1489818156da2c4a6175b968089515136adc046095848418c8a758528f3046db4808d18152b111a0850324429d669b98a4174c620028a580a9e912d5c7049c45258ad21350e0133845114a3a2a402e7cd357b6772c78fecf4ab6bf132b4e79d27fa169dbd9bb4da4ec4dce7397e8f47cda2fceb44755ed8e9f30d923b587ffd0ac91df4afdf26b9a3fbebdc91dc21f3d7536a687f6d86b6477247ccdffc1d499ceb9a0cbd6fd04e05fdbd1e07dd0600c0e93ec02f298c73cd3bc0ae69196c82c2afae4b398e1d9da1d96ca6422c09d457771bbae3f4f96b52922a3ad521d0a5388ee39c03fa9cf434dfdc1e3df61bf4d893718e9fdbe836e5b66d567ffbc7fa2604370921c38bbb2725be3ad0dcba36da7c675d77f4db54faebda26ee9ed4ab83ebf5a630e92402e58d599a37a1012f25ce8cfdd014269db38ecaee1e5da39a3433b2d7af5208f40883708dea8d1565bda11bac3e70d0474e81fe504a71c041da50521067704d49314c31d2de0d5b5451d25060840479b9b284b959d39723be24316d3b4b731e3d41c24313979899bda850435dacb11d7961244b8a3544877e28c2a4739a7130183621506041166709a90d1ff0ec4b1246b65c3464085714866887d0d6a0195351d2cc0c252901ccec501228b8a3244f4ba89668120b2cfc86b1718612a6504584d4a62c524f82e0f2a40891254f3583828ba83aab62041e82028b2628aaccac704541160a0a214cb8a0276d183df9227405b4d4da3a1304a628d3232b7ec3a0c08001c668563ae7743d2907f6a99d03e0d2c9ba5369144e4614c582704980298aa5209160a04186205b17b1145845c4ea28690276fef9240a1f84625dcd5594590cb5308b753657514a59c11345b1eee62a4e23563cf114a3620e9358a769dbb77f9ee9882d40312ad6c0104b81ce39449db34a13e88d5d30964dd6359e236d30d599b5d64a61726c0d39d5a94ead95763ac5114397b9d051322838002b8b1b2af474090b8f8c322a702dc60d4aa9a5e3b67efd06a594e6305ae1105da622c56283524a73123d9d524aa997bb1491cee97dc4974ebea3486b28791fbac1f7d4a728c97839c677374f517ef19d56e994f6e9cb719b709bb414431eb4f4ee8ee2125afacfef0abc145f5fd1d2af28e5bb9401becbde07ea4dbbd6563aa77492a168e9aff9e27773ceeadccb97b556a97dfbe7b3103aa738bc69def7fdf674dc1efca764dbe8bcace1820e1c742acb0abaeb2284f6b2c66fd892199d8c13d75ee8e937668ac0f215428d519f2f041d83a4104b61d2092577dc97aee485c8539f93ceea4da73ee50e9b41123dbddbf2943bea4bbf1e05241a4b98b65c89018927c088499ca7dc413348a2a7dc313348a22b9678e20d636a357cbf6f0779ea4d74d55d57e8f912c98aa2971496d9d0d2bb36d400d3c6061526f4020dad851ada9bc28b960ebe448a72e237fe2e5abaf612294a092c5673081bbe448a4292452640ef58296fa8d08cc2e47736301cd57ad249079b93524a29054261734a4dd3348dee1ed64bbfb4b694e8aaf368dd6229474993a4862eeac89c538d270965cb2529a59455d64a11d064d3e0f2d3e5a44d48655c99dd1052972a26921a426638e7f44aa5e8c306263a75e649e91cd897936a4e3216dd49153091c14829082328c280c00c4a34218392a52432c4e6131a86ba0481d14318226c91c512332f5c9ea8129b2e45cb7da1a5735968177416d21907bd714cc751e44814494c4396b0428803ac28912183113438618acd2f4b80c05802060c1902d04489142858620a32b0c4a653d1030a93fef425521a427c6e41cb9c3ad38668ac84c492a1235b91e6665a0e7a33824da0c31d342b1a2be11d700b73880b1a1b5a1be12334562a5adad2d01b1316d2d98b293a95654b81a68219b4294068d512da093456da76d8a0f24ba4356e90e2286f5226b3b6ed25d21a3fbccd2ca35bda5a0fa159ae1a0d74f074d1fa7510a1b11226a2f112157a63da82d0f92592195eec604617cc447333cd0abd1989d2e10e9b1a1a2b6d3168ce8a664483aff5a0b577e180b958bac686470fedd25e5af01b96048f3b8f1f61178f52d3e3a6c73e891ebba01eff0caf668f6dd14f9f2dc805d4289963baac6bbcf0f287072a9820e2e58727a633622bb0803403115924d1014a6ccfa0973e872e60e5882e4ab024871b6070c1cb2c8d2d5830850b3fc44c40c442973276b0018ac4e2044d1491c40b617889edc91426a025a8644b188b8b9c558acd400200001316002028180c874462b1280ad23899fb148010799844624a9b09c44994c4308a41c8186308310400408c3180a486481d051c42f72e9b97777aa675d07bb058039a27f07c80e61f40663eb5c01bcfa62b4932ad27affd79ed1e93977248a50151abd099d09dd7e9337929474b9aa2c4a832a13a6c5ede2190462916763638c7838af196c9eafdfac78b831904320d64eeae36e84bc9a14d5c15cc3c94bd7adaa02fe9d1969c9ca454cb1c9412c4c9586cc9eddf779deb7c9dbdaed8eb842e2703e219e10456387f739e57cc330a2f591295a7e7a3755e77aa33a7b5c21a9425badb591f62b1a57daa14cf099b9053c4806c6ce070e970078be9f9fbb204750e35d31fc2624b72dcd736b59e1356825e0e781ef1ad8fb26e125165c242ce29684b58b0d852a959d1e8aa8f860286dbe771895969517bd979fca2656452206fb1a56ba1b247315aca01ec3c7e3130320541e743aaa24716679adaa52cb6d4fb2a26133ffda13f365b70b19cea56a14fc742d6adfb39cd0400a9584fd103451772140650d8229d2e8ce229a15ce17600749fd4a15538cae1d593c3461bebd5299aed74752e96829f7e7a586b85d2d39aaee8d6bd0bdeee722dd687a21d5804a434d8cf8ed65885101273522a8c3f242f819bc1414a82fcb121dfd7d5bb537340467fa152377fc7c384a7a818a51b44d9bb31a5dc8951abf2aacc5bb5a45ff87062f0446b45f00cea6e1041287bd151d384ecf957013c13b9cf7d78d126c2e91994286103f5f285269df2ba5ae7488822ca53025959a4da10f53162b8adb10998eb746264ab8892e01e3cf1849cefdccc701aa507b0dce03c77deb3b90e8e6fca71212569cb7810f9ef03ae0f15fd2cdeb9a0fa48d264ce39194c15f871e8998fda064f76351fce11d2df8b792089f829ff8a8b3f9306782e7d2ae13de6e5c199f4c5887e32228733c2240a8eaab3168d01058e339167c08e70e8a3c8e7c210762ba472a3772feb151d5f70700e431ab4c0f1c3e3eb99b61c3b980db67fe38073bd02e8d2f3985576f34fdd1bd0904470dd87a45d682f4266c082907c0714706be9a8ccb7f4b5c3465a0424be3b81a63c3bfbfc5464aa2ee4d451392c8c146a6349c7d6533e1d167dca461ac723d5a647dd8a9fffe7d207aeca964a40712b120d13d7293096a34fae9d663ce3e02e9c88b6776a89e93c8cbca79d882e7427d8b4f93c287c83240267bb59c6f75cc551a2d27df50d3a8e2cf44d9b2cfa6aaa4e5a674500a133d01a81e5d557d150724bb790b6a52d6191e172c14a7743b6afd009f90e3954029ad0d3e4a92737344048ee86a824df7cbdb7eb5a189eeaeec26f705ef2162444dc798375f12915794753949b07742f8b74edafa7468dd70ec067770488a245022d47f7b1b4133c1a86100456185d90d8c4dc00ffe0320edadff2f427145a97a308d993054248e4bc747e6bde8f0a7ef4302220bdac7fa4020a280b904ebcf39489020d1fd5072005a08cc7322c48211f36f83a77eec0122896b3a603b44b4e7c1deeda1bdbbe91d7070d57a7df28e9118ef5ca4d3d75ed01565626d42e21e1e975f6f5991fc271f83d5c80a37ba1f33dc5ce2cd08611892e7ea731d551500092972f5af989697ad5844d5d59daf8389d20bed31a71ea6990191fd18ab06eca8341e18a56e8459ec70b5779ce5ee31d8989c876628c4b361cea7bf6674610706723736b236c5ffedb0dba87029954b7041103e5c4c250921c2f69dfd238150f88f9e2c11223eb00d58ab4d24ae212b6d0709d9d1dfa23af46bce4e3232f6530d85d6905f1eca6b721435e327fc54bd97c679f24194440480095890037298d60dca8710db47526136347485cb5638a97a88a553d371e9572af521e23f0598135385a84fc776b04566323330df4026c38b0cc8528dbe854cc58aa127fdb91e9014ab30236471b56a90ef820fa1dd8fdae734f0f451db22c8e389a2b4563b94a81f25e1004616f4bbe963b0b34878176313c7f739c1598edeac516b279e34eff4c4178871eed82050d302ae91b3fa5f32633b676bd79ef0ff5e57e6c8333b736eaa889a665f626ac09ebf57ef68764e4fb559d5a99a8bf4ad0d137a9d9fe3fd97e1669efffb9961492cb9150cebf0a61f5551e26dae28d35a2fe117536b8d6de69be6a2fab33d0419f118f6049735c8525a323e5dacc97458248a220eff82b75e4aaa869cc9727f9d31f90b92b1a795f7be6722246313a3a7b00ed1f323099d800286b3ac2b4f7a9211e37270e28ef79128fc8f30e9afa44b8ab8504bde22d9bcf2e465b903e18f50da1ac540eca06dcdcdcf71485e2c1188c2bf538414be3869145344c6df565a07ebcaf26fe10609f5584812f7f85155892228bd0978d7f8fac1c1e1ecdb72bcad8d660ff8000a79049c3817f5170124b24cc62e8615e086e52176886191a98534ba8d2b8b4d9fde7af716461c91610bef069b538439dfa4f5fc2eb43dedcd4ff3f3c4b082dd08d460caa1c671bcaa1ae9814580e978e00af36555362fddf2443d488f30989d570bcbcf5d8809720700a30f9c6b3ad0fea718e39589a1020b4e598fb18e4343a5ae0f2c75c7f9e83f76869212d621104fd58148c9fa14ab52aab6718682ef04a88674422be0c493a1ac738cfe2f834f65f3f9866b7431f427087bd2fbc3ca3a0d7bc0805e2b624ada25416d5cfb342650697131e508d38255ad17b44f454527d74d3a11eab00aa601066ea04219378a0940b5b2c62bc0408ffcbd44e2cffd01a433695948ce4d89a406cbd22378d642f49d9974445d8c4a7e07c2737c73c01ecb3298a20e23a10558caa2a048a03614a4f990ccf8486eecaa35a232cdfdd6f7023139f7c9fa14a8b2b01092509a819557f6ae4b654b210161eb03891c2f20e12606c3bff6dba518836d37a8bf392a2fe222dbb48e6e84b6776daa06862186beb7b9381ae4f75351604f9be18b758fb33a76b65426a0438cffddbcce501a7e9763f0aa900cfe913d319210907e8dd555a5814fe75488fc470ed26d97e378c0dec66d8b13702f6d801894b83c8cd4a82e7b8d53a5dbd345111387d1d84f9a33dc4b3e60f338880e2da490718dfa1223cfd6264530266ddd4d67734c5bccedd33405b06617c5da9a348d25516688bc43bdc552e7398e43de7b880576d1eee3dae1fbb43f6f55948f1647b218831a248cc43285d2487c7907cca3803939ab68a3f0c3a24c0004c4e14bb1f126010c2fdfc1b5d0783e0a5c032bf8e1115a05e103b4adb7dae7027eddd56dc6b778e7fd680e80c41ffbd1849a418feb35dede74e2bbeb87a9ea300bef74cd2bae2842e168748bb3ab7eb833c88851f96493653b93f18f1643b0664aefa74da0d7b00b2e93a2c625e2b83517d1aa1878a7dc32bec06e630e371f145447829270d14643ba166440fc556464b82412a8dbc3e604357c65dd3791fc3d159a7bd422eb834ede92f006231336aa5b3e1af548f73c1dd87b05967033036d46474931e35e2c6d91e05e51af395b709cd7887ca01cadc45181ea485d02878ff414b0f2575f9a58a53ab7aa24beed1788ceee1c9f9eb8410c7b4078ece03aa25e09e854ac1fcfe0eb69be835a4d6c2b5faa58026c6fb5231b3e174ab28b18354bce2caff191a3c6f31961c65168db9bd707c2bd35a8bcacda2c56c0548d09b4b1926e9932ac871a2d1db0e51819896f110958898ba4f1d69fa2fb7b13c10019de14551fcae9f68edcfdbb5a0ed8373bdb862e5e22f5f63f2bac4a6ca86298ea028929d59c622cd6e92652e62e5062a81fc0a8b3486b561bb34e4efc307cf8b6d257726616a550435464e0c7930f8910ff073c66c7fa3548b81d10162cd03d4be8c288807b677a13ef973efe7fe04822475ee5ffe029c11cf1a120481b5464acd7a94d790d24fad82a405c5bea5be01ce76ca2223eb32bd649726540aacd9f268ec07b7e15e6da078871b5d447eabd1e9a731f77e983608f60b2d602729f20bd437ee1343337077db6c89c5120944402dc0579a866223f6c434e71f5323e11efb9bfdc53356a2947ed21dbf4eda3f7c9984583992b0d5409903e2f52ef821121ff47af76b60efbdb70d507c60e4ece1afd58964d472f67e3d74f6fd811df0484c9a670aecd83cd0f422988545e0b058d867c54e67c2bdb900560444b4c2a5bb36900dd01ad412b494ee04706467419a050aa09462fc21d344be0e7f252a03ec061cfb8fc021a805984b4110fdf594cde7b499a4004bc060b1cebfeb0fb5f7590190f69ea1cb74b07eeda6bdafa01e04474b22f1bec5eaf7aae9eb2386e81abb5ef4dbc5cccf2f11a3a1e668f1051b919aca21daf788c7d12fe61098af18739138c79ec7bc2aec59391d5b74aaeaeb958545a480fe270b6bff9a5cb9b65ff87885b60f52aeca3cf930a2d4d2566fc5e5c223438e057ac6b9b1280bb2b05e84af701545b88cfe31f86090319e03e204adfa93a122a64314a18fc3e16a07da163803bed49328607250d56d429b9eb74b701484a323fd8f96a4650142eab9e3c9e7f91bc465129ee059eee2ffbd16b58947578a7cbd0a18d90ea376631a0b821d91884724cf7914a270860cd146dc9b08b43845e694487cbcccda227aa8485d8175f3aecbecbb7973ef5bfa709655f0926ab519a763524bd73f8304e3c6c23837534d20e42d0ce178ba3d656fd401342c114733bdfec66460fd9fdd7f0fa54043c499eb21984a3ff348bebc61ee9d8155841d6334b012eb7a9f9c720b4cd29d9a58e8f1c94b8589ef245d52caa9127848a7cf63e47c465efa8ca4f58ce81f6684163d471c560b1f445a1434faa8308a04fe5112ab6d8a999b8d57bbc76e85af9875db6d6e10567cb1257fa6209e64311be1c329dc6dd947157d02d0ce666a6892564966bd4695ff245c71d41d99ad896c1534b2af8d1ec3662ffefed0bf58812d8f2d77f2d873788c4b1f2c6abc58ee7a2a63f91a65607e2dfe2db890283065284bbdda0d4a4fc7e83fda1249a663bc393d51c89ff96b77e64983bb05a2c90ac4492ced2ceb47c289132a7146754e3bf77a66cb157d5919be3f7d6cb8454499225cd0c40aaf1e86896a74837421ef76d57347a4348fdb0fcec3232886ca43165dfb3cc64abb77c2b7fc641256597f9a5eb10b1e9eb6645ad7fd0b2dda094b70123c01e3aa47b4d0764aae607551b32f82d631b68e08ad4ecaa7a8ca140883ae91864c4c66e98f37b1658d337e803b81e61513f8734d9b0fe4911e042437c4cbfc24b08798efc4af10c60c0d351c7dd342933253f4c57392477efff1feb6f3170aeff6ebc73942f7339115b9070bb9928a3c495a409f341b4c0edd5937012fabe63c7d7f59f6e6f4c32e23d135de6ee24498c804004eb8f4be17c41fbf531b758255ac0e3e901b70a3359b675a0a5b5c0d975e796d1037e39e647d5b9cbe4717b874fd455f9d00a71f31cd3c34acaf78b085ebed120643847dc5eaf16ef45df29198fddf88d3c6099dfade6604ac469105d5954a3e6d1f9c1b159eb16e6d9bb07047123116c538ae5354158d3fc370aa5a7b265b847030122fadde9b6708b8d8c971b9eae9119f5a3d708ff76938e990d3bcfba4016ed1d12b17db269ae17790974d30586015414127fd03b4ed13600863e7c6c60a3a27ad145787c0846e7b9b5cb7d7a187f3c6b3d64c6168c5e7a6269812908bfb20272ae45199eebe89230d629039ce472107b05952166af21a26c6fdf73b6e221c198d92adb97aba31332d382419ffee1441b2e860d50ed8e2bce552a08b0bb52c4716cd56f58ffd788fc916c3e43331917bfbe42e7043329fa7ffd6521a9ee3e6168ba73315b0eef8ff5ba6f616c89ee4fd57b3ef3586ec2ab25cb5849c4a01190e8488d7cbecb266f63265125d1c818922e845f506a1c5740ea37eca085dc2f189ac027a69c8c774490c8bc294cbd32425c5be44f58a669eedf1680a185c72d3825e2751400c54b357ee49dd5f748f157dded472f3706b9378703688787122897c7cfcffba3928576f9a50c55a96a030ca272137ce18f1ad0157777472e23c3d525309b747ea04b65940e08d8d2cb7acc34bf1a8a94fc7aca3676c299114ca1975f09a6849aedbb2434afdd3bcd5c3b880b27c0e9903bce431fd6b9da4355f97394bf662f6615c62e61ea6b5d97efaf16a9e815b6cb8aa94ccd4b8f9d4da6be2b810defad562a30042399fd0544ba0b353e27fce3d04cea4be286773d4dbad4811b86b89db52f95c8ac3a73367e065c37c9fc5c69b50dc0149c70746731f5e1e0e18a2a78c8e274a84f2308be168f94eb085125044d8f8fd8e0f1b4529fa482ecbdeb64921faca214478fe7b585bdadc57f2b2db9e5cbd7599034cec2f887fe27ac32f974392f8e90f603052cdca3723f2f46e2a18c785e469ffa82781516bbed57046a7b40ec006cd01c63e35b25c4eed3590f6507a7673d0a97038a8034904de1120d8b0cf184fa4964207d498ec5aa380a31a31c3abc8638246709b00d77b806dca64e5e7d79cab306b095bbd2e907957b19888d2db8325095f57ab6fc0083f1d5a5ce28fe8ac47924c9fd8a3d2f798850f61bf75b914772be34e939b498f133af7d656cd99671f430be670e6a03ebde389162dfae2d572d89717c1e6b0f4bf0ade3f0c9c87e9b260289960dce6ba35b9fd8eb32457d4dcc05e45db79685ea0803560796cfac1b2d732017a911d75f3ec1e0b030be3f46935248769e921644888307b7d9b08f9745280df931229994c8f31ff5c71112dfa920f736ff4072cac8a6ba771550358121eb34e4c3932dbfa16d51d0881c61a0a484c748d0cd0b01c9f0d4b8544eb176c741bab233a7216f504ae650fdc2907e7dcd4105491d3b3c17a1ad631d18ec2ec506d287436110d62c7b7b6b03c7aa8b731e6a8d3a96d565fd709d4c2684bd558c29f0bd28d0d016836b4b5a806b9eba7bf8c5b2a3a73ed23ae53e78f7b336f507b7a6e93a8e68305ecf7766749dbf974024c17a24d7cba7b554219dda0a2a694e0b6a9ff861c846183ea0c9b036ae24a50231ba644a35047d9f97133b29feef476131ec18dac3026f03ce8759aedb1a49b6c0c5c9ed98c0594d39cd1244b6d26d41dd19981b7d33e4126c97e26228c3a3ff7302cd53cd314c573b6a89cdc9487a7b10b618b82408b1fe778c27021e03cfdd5e4be4ba3a99ace7b37d06928e749b5c05a614173ee546c3342c37a9d1c04cb5fe887db0400be270952bd739d214bf6b317789dfbfc5154cafff61d2cb03c86fe302e8263a95da64d582fb17b8a1dcba7c6603f34025558e035b94acfd4cfd7377074f18c2da9786ff66965c11dee35e67b964971474e7776f9305fa47eb6850ff709b0854407a599ebf01d611b5834e31507eb2c8ba171fa82bbf9a8962ce5608a009f5825d2613cc6b4277fba88b83c01fbce483b92f722707790d85e50e81b647c96eb87e3f37f811938c86f6968436c2f064c41491120605641460e443382473e40d00ae41f4b381101e2c35b5e83bcb3fe0b533b2bbe331c78a94e038eb1996b8f16e79ae5ed3eee34fe0d70eb250c3e8f3784480821f37cdbd8fba71d34d0381d191105ccaf5b949c38ad588324ea3c7887d588504c7e3de39e472c445d90301c65a600cda254ca0d7d81192bee43e3ae5c4cc765e9476cec01ab81a0639d7b0d60cb0e321b0f332e6c4300d92022ee43744e4e47febda274959a31c63413afc28e3b124e21b43c2d945ff941307c239bfd5f142b05f3f1be5633257636ad5d7803aacd0c8518e6218086dbe35e364a12f3340f36700bedb90ecaabc6b6652fa959e389d6ed41079e63c9d59c3a0e8ae7cf5df0443f8f6f6d679108392042d9437782df70342af49b7f5e3bdb1b4b7c57a18c4ba7a805f0238d3019191ccced35d20e6303ebf86b7814d4f7da306d4cac6ccd286995184c0eb9f8228ac195c42c006704d7407ccd9bf33eff9dad7bbbb5a3d413d6a7b08f28a1a353820ce5ae01dbfc913212db2c79542cc89e2a974f880c2b4108822daf9c70451653700da210fc64842b3ba522199509d2d16e0cb3ec0a51340c5a2c8f6fa840614ff4e6b0eec71c237cfa44465d60750df6edb99f65df7f1327b69065caf3de2f15ff3ca5bbc388b868bd083c9dc03d4125b67d7cfe21f0cdbc0539d1d83e6436562fcbd413b8af409bed9f95199538eb830ec7d53e9c7fd25756fc80499310a012fb252322ccd0f576946b41790539be7c94ef83dd646d6b7020e36ddcad8909e6e37e97c7324cc70455e27d35173f85044f3d96d75551922c8db962e8375423103dcb204689920b956a08f2d01e2ae9584a3513d2c032fca27090a90e8da6e982426c0199a613f735f51d08c5ed3fffd89d6bf40a35501b75b443e9bfc2cbbef22a9f05c7a61fde37b18bb852ee0292739ab619340caac0b496eac3c1b277e63089fd012a9702e6352223df4d3721185b7e84eeb048d6e35cc0279f59a252ac57cf4bbb1cc5f31a7c19fb8facd8fa86126b68fea587b7a10f27234c9fb036e61786e8e15fa6a791a64d90c79e10f541ed7310652b6b75bdb8b196a26a0889074e9b7165323590ba95b5e6fbd9b784eaa97ad085453b88cb0f0f19ced07811cdce9c5fe79446b4803b0a181e08db53d3eba798872de7dec5da5bba4d09a7f5945931e2d96f26cd8c2178beb0dffa5f51a4a2f8e254218dd0486c0f49fb9344b962037386e7413a7dcd520c230ecd4e3e96406cfb9a20476fd184bdf8aafa79d7ba1875c6c4ebcb33640d364033b6b2f12ab6afe5913513fa64e15ea554b0538b657cf64476ff27387d1db30c5fda18fdcd2bb594da4e79861cb1df8979fd016ed3240ed00b72a1a682c38330d22aa1bbcd76bc92aa281bfcbb76961293ee668bf882540a10711db23358810995b962882166aa1c79cece2a0a42ea50715fe1c33b484640af20e5d9202774257147a3c5facf98daf31363860598f4fe56d59d2559658eccf8ccdcff0e66678faa9236dd6534b5b642d9ac1f64fc8f732e0999803a457a04b823d9591c632ddf15872714224c5ebe57f7215c0b62d9a96297d17a19cbce31b83b834c6115bc476169b5f5be4683fd7952f80d3bd28e6c43826f0f55fa4ceb2138ef0cfb95424f34126d089294c646f49b5164a5893f07afbd545e10a8497fd3035f0003b269ae2cc8a490aae3d570d2fb0e7bfe2e64ac9490b9158b06d7352be8d8c06c095c5e835c4b9214244691e8a9a7d24dd882042119616c33a996e47c07ad16d9046fa9f772f17717299dc9eb019e42c719351330ede2675fc7cafb44921748c80d51c47b3a7cb37dfbd9a8d33d205c169b482f371be51bf3c54a66364e210ac727f7ecc8c31970b1184a2903fb85906efdea56167a24d7d2e57e6b4571ec6441a09df633957146bd90460e8df7b7cf2b46ab5b32aeec19174d5f33f1af9f86f76b064d12d45765829453d993539136a972fe21a99c4c309d83ec9f79228382a6d5b37cd849e3c3ae9f54a479f98375b27b34a6536662b057a3cb3bea0f04993a3e00b25774878d135d1b18a92c4464324a87ecc14be1aaf73146ba7c4c4a5a00bcd552b0b204229efaeb835596c94b9992367ae1285c89daa74ea513a4db70d9740923211a7bf8016605e9e7718db13cdef5144609fb827715abb0d787ffe4e0079bb3ce79e61cb07f1ae973b03a4c9093513e4fe4804c83437109cbae66618eed9dac3a093d453345a5e8f9051d0328dd18aea29bf405a9a0fcdad863f3da4323a4652fc9311fcff7c2e04af7fafdca36cbdd0338fadc459e3ec0bd872d45cd1bbdddba1b5b161868db61d08dc44861b36286f566543e702f29192bedf93ac4b895ac96394ab1fbe3190a3125f7316991bb414a8477d8a590c2ba7c9a2ae7b30d376b6be196ec2933ae4e158eace2766956b18ee00f1bd892f321f33f182178c2925a1c6998a3bf14e68a4313b7bf9718916195d261d8562e555e0fcc69b280f9ec566f0fc89c3c575f4e5925bc430221b79655444d93df68f2e36c99343f109a34fedc297fa687f34dfcab1c4c1b09419a7d3163f18779e30c603578f44a9ca91273a938e5304d6e39219c93562cfbd50a3ae884c26d93e2bf718080fbb2a2ce4d057359d1414f0325c6dd2d89ebeb6c46fa7f136ff5df6a3c9f8b83b9df02b8dc580b9e2ebb4519467427f7137fc4f11d224bd22a24bfeb317939e22886a5aaa0ed1ec5c6d9183d4e5f53eb8550cb7a750f193eca0bd375746145e8ef778d698fec8369cc13162d75cdf7ab0ad34de00860a8b35e7cc7f55c3cd686114ae80b9387e9d37a960ad2ae122eddbb2a3c18e90e47c0227203ea26082da525d13928fceece8d52ce80edc806846935db041045cd1fa013e0a09d184b292c5983aa185437fea068b6acc1d94ff16515927629d2b6ab620a3bdb8400c2bbe8073558a469dd1b8b62b9acfd87418d23be7076f446e056b3cc3c332e3d712ca5f7b88c1120e068266f1b2d5d549ef0075fac3203df0a251a4b02d17ac6afce13301fa816f5dea58346471f9118a640ccceb98382590306718d15b9110c408001349981b77622a08ae40832eb6bd3116b8c6f120d75ad1f25f3e499cc090e27605800c922ddc84216ba7a5b078a33b95c20143dcd1ca55ecb90a1105ccc7cd0a6863a1223c9a55591cea5bec4d76d909d64cfdb80798ade1db399bd5413c11a8609efbdcab335615295ab42aa0f3a1c4ff4b8688fad040aad35347ada09ba310d8702624a826e76dca6a302d374f4d32437c6a94d5389c39bb3a74ddbdaae6d09d64830b2373a1696abb4f4b83e36adef818256f50a5e4586a4dc737ed661358e0f3992aca7281e3b677544b1a929abe8b594d74b5f8929da76a94d9692456d4face45c8209da8bedf474bb0a5a38c5b2512347c098eb6ac3d79267f7fa5d6428d0299f87dd93af2dcf6fac7d390ca2bc5c95331f11361b6a1a2ab057db5e4c2229b1abd41d7cdb524c8431253918324aadc8401b8cdf034e05d823580e9a859b370f71b04705cb1a6e22fc8fcef89c8299f16cf1a482357e165f300ed8b73418ac7cf5746fecfe2e270d666661b47018dd204e845e998afb6057c5fafdebd4bd4b2e6c7081c74be3eb228c0c3237c4e8e410a8d0c39b072266533fb187755fc437077ae3329b8149b9f8571472105fb93902b8962a85eb3beb3071bfc889c158e9b177d90083386ce1370d97b19b71a5cceb299cf4e4821dfb7d5d8a56de2e3ef534f3bf4ab5d2e8c75f9d770101ba1fb05e0cb35339db0d3898e3214f1fb568f5980ecd20d9c6a3e4bcce132b678de1282411d5a15fee61c96e548c43dd4d214e8126f13c6af70a3c1512ef009878cbbc87da9de99cfb8be8ec542817edc4b123ed4449c13a5970645deba8c3da73abb4d31e460a7b779157abd4fd452eaab07337f8bba3758c8d06de85b028fda338b6878ce28cef7788bf5071cc73038a79854d41745aeeb92199045feb9b55907bb35e0278d2e114afd7d80e09037739e31b267b4f60fb5fb642c8b7aa3e6519e11350b7f88d6fe24228155a663583f1dbf003ac7d5ed49eadef4d1ea5e7e3e650a7c98002f72716e0e9250ab0daa95e897f5d68644203971080a52b5569951d9c65831005972435b024a92aea509bd04d7628df0e1a112d202b507119c574142d1f0b3d0ab8f133efa062052bc884f3cbebea5ba6be371aed8071b45469cf7d16eb47cf658baccdbb8d0b98cd3bd363adcff423cf658b2718e7b1a481d20cbad1219342de06c034e84d979900951217a12c74f3127950d1191bc691e203bd3671caf2a545c3f83b36c877e1225b78b0b9af9ca7db2bd7745db70222c3cc23e7841ce76e2e670895aeac444890eb664e748323439bfb394b19ff2f5474a84d18abe39d76bb0bfff02e50fd1de0ec8ed319b6fc220dca1d0afa476dd352e8a89bd91a28d00903482ffff956f9a0a9234ba2e94112964270bc19d65eac27aa1b878985a29dd3e188d6fa319faafe50d094abde4868c74d12a04e3e31a8ed28426c6164b8bbe23f8d6725addcb4537f4f8d2db8a782f48eb7d76d7cb10ee1112f39f748ab23e7ce842b1b4f3ebc8649dd200f0e25d9edff9c18f81adf540c0047ab4640f91230505dbb0c0f8c12106b94a42e746f4afe06f9dceb85d9ccd6713b42185179e1e5807e9535ae37ec5d778c0f194c56f7b512a5006e62c64a21cfbb6e02647033d3f20fc8ab085dc27b5278b282f55aba691ac17f150c7f4b7fac5c15930ead19e732982916af9b8fa6fb0cd8a425af455929ab55bf52e9dd8f4b92add4ade0110f14ad64cf96a5fc85eabae43cb847921a7cd22801832d07f6c79b7b2339942fab66c626e1a6acbcb7083c86f20a4b19062f5e938e94ffd57d21955cb996a26ee0e00881b3bd59b6d01ee509350b4d0b9cd6a99660e8362d8fe6522bf872e5cccad89d4818181178cd296232c0a4d3474daa4422cd0a450a4f0c00f659388ae906e2040d9082201a922ee3512ad175a10cfba9fb9e6f62dc3c9881bb782d835ea66033a5c425aa60c389e489a24b6b48fab3c56e7042fe3f1a216b9860fc85f16ea136cba4a2d1482afbfe4fde90e20c2f583ac52105f5a39d89058feb96d4c960bcbad657118deba6985c5488e0125daf07f65d40279fdd1b547ee42ec13440c6894dabb0849516ac745b6f26ea0684a768a3a36aea299cd7d4c731ca57c4fccb874813912fa72be50b529a316fd6ea5e3c4544c702a533ac89d0ae20120433595fa81e912f83aac3b2f9911f7f00d3908d20f7832f8395355ec6a1ea09ea0192e183188d6adc80b4f122250690e3aca2547b0c4b3abf22b0408569ec74adc6dafad177a72fcd743146e8d39c4b5a17dec15c2bbd8e8394f8baa3007431038ec7cdeea981ca9b8f52e21ea288d227ff322b2965a1dd913ae74f1e8d54c90f7dbadb93a94c6d66637b31b94403c84e881d7ac421b854f027850396a13df8d00f58271452aec362534b4e0803a14313376e568731113b0a4cb1ac385aa8e4a0477b34f76152c908f4bffd71682b57d34877d2acb3183850d1ceb626e4cfea91909785341720df031c32c9e9b2c98d65250a4338c9b2d41c8f0a9c15bb1350e2ef876a1bc5bc98203ca7885d7beb0e2f3bd16b246326c948063f572bd8d71995a1ecf568dcf59cee6aa1ecb23a24282c2cc3f4945940127554074f084523021e04cf52c5e4c356678a7adc8819ecaf1bf98870470dbd74dfc22e289fb878c73c16a6af0b7405a10d72175444aba64b6d0e30b77206a21b2eed94600b4ad819c1c5a56ca6150232aff0d154e809d8999ac2a50ff475144385d0b57d7437f006a8af30bb3593a3e3709eb941bc5fcbb58004c90e0ae99dfc0071c3a115e6fcecedd1314cc1068ae1d4d757fb7fc008512238974a1a751f982dc877ff790d03c2a8ac7effaa50f0546e81733d2b8c316c42d051c11940e12b6fe4b4b2a4cba594e4e89ec10971105b00d019fe2583e09164fb451ce895c7fe1f1c29592f9389dc180105763c43e7a0bf10bc927266dfad1631dfddac4616123d2b4bbb82cd2b5035e637882e4aaa2e24911d98caf078e1cdef6622f778b9c464d6e13e17f1391e6ea0f27299b029e99d275e4c8e1a818df0435eed999a6b663a8150f829f20dbd6012b5ac246b44db30c039da46d629a45934efc4c30ab950a1b76c4cfa3562303845950766d4e9e000d44811c1e3457bc489c9802f3e6230d519c5f9b19a8fca97a44a01c487db3a62681938c2c993e4fbb0a62ad6debbbe3b77b4725a3ff74bd874f90719a9cb89537176722d5be2c6b8115cc75c5c8319622a4316f2afb55f652a12e3c82a716406b43d5427bf15e20b7d0bff022e46804e695d2340168949ad54ed5f888591900eb1b308b1ec6ac86531a2b6f258d319113cb6bf3f2c4c22f9798b050cecbfd238a13b7bca0b5ea83a2c9701f6c9a7fff8b6d175cc86aac3f4b9585c4ebc0e8075253462ac0c3ce7ab07cf786186ed336246c6f5829ad69f8bb5a945bc01b90e41bb3cf874813f3ab16a4264ae655f239faa8ba7fa99406b9e41abe318f4cd4ad64e1351f6fbe43c51297be3b4ad6e6b1fbcb9ee601d497523bba5654d06f8649cafb84a08ae486d8459b22664efab42ff221aec2ab76bd5d17ccf7b5618e4dbe539e1ac7ac3810dfcace4ebf07d10439a71ed9d1cf99ab407260d53a10e0df4dc5fb2877ec18a1d73ea1ac6b4965465f63aa7c087133ee9eb04e74d0a0427eaa5610994f1b463a17015a4b6fe5aa88487a28f55d739c3b3a0ae4dc7ac05ba0e4f4aa0cc29747d94ae2968edd7c7bc676e7f937ad523ecce5167a19c42a536d13647a911af548d77a02624e7d898045db0a5a2e27100c427f460f11ddbf1c82732e7e0d1af26141c6563e7c575a3150293cbfc9886aa9920fa25083fe42ae92b173f2a5f5d4ff8ffb94e3485f6ea042f4294ca0b9e981c5e39a1734118a9bdf55fb7558e03836daecb762c52c88f3707cc35e1384e2c144fcef8602858950a17a537a81e0bd515b37bb87e411d8f6299fc3edf8f4366c67d17e07b3d823c6d0c7aefbe26ad4ac410b090473536ce75737529054fa2d537c6b06203e5e33a971811f4fe5ca49a902e69fe582ff6c96dc822302a823b9670eaf54595eb8deaef9866542446e818d06c6bf8ce5493516a02d72b6cf98e0193cfd1ddd7308f0fce41d2f33fd8b6d8ecbd9ca169d054c4b6fde71c8b7bcaacdb4a683b8c849fdd653851901d729fde10e11c28f50049c65d28a855f472056ec302b1de0f38cb16484b22abfb0a2a1990916520ab13a9c33a7f353e508f505f3ff93ef96ebad8514efb1caa349096f69634c5b2effd8c03fb0727bf568f83b7152836c0d95f2c8e885c5b8d37e17a12fc328f31c0532d75e94d9ba708412a4942686365bf5bd4e901a53006b0da8784c54038ebdeea433446c3b76c8d2b0900f6239f53d7f82395682550e3e23aa12d2e21723bce84496c17078a557cd8dc6950a8fc50fb04f91efe2eff7c821f0b3d18484b6e8c4e05e7ac420e88d812c4f2e534240248862436f26bf8c3da48e4a61c433ec8954f96799520f1130e5f622371626af72bf4a7c748e7e3f5e962f5a148293a0b36a8a260d0f7e366afe057dfa98f6ebaf41758122a9ef60643f491546935f0995df01664c07d03450751c66770c8918c0515ec4ceb60e918e07a500ddd42182da4d7a09c3667846dc9d1c9e979cd2ed77f6d1b87e37d512536a292a3eef76a43fdb1caca47460c04e129d8b7a6b2f3a189c23f15f0777685e5fd9a48549d8581b634c861d0458b3ca3159e2e6126d835a15f92db8db7d73a53885412a0f23be695ac6124b47e9f49eea942120137c2720c30e02bfa63c57d49d3f6fab1b0b05e6abeea8b9cb7f1a6d7119a88d45a8d84693dd4bd71d86bbbc63e16c8d22b2f7ab55de032c454fee2503549011da30ac194e9b47944a228e66ad735ea482ea54a4534d1a45003ad30a39bb2d4257d6a293b6d41cc594fcad31763feb56185be30f640499011f022cd8def44d48a4f567a8e88c6209a4f0f9d9cbcd355d45c74bd82e4f75e67ab68f51921bebc9c0eb207e8b1042285444c4ba73676b9bfd0dd0cc55efe5afc614f9de8d780173ce562c27f790bb41ca435f4505d64db25b77bbbf0b0272c5f005a87cf9743dde2b225bc3218952f2997a2684fdf01a8ffcb8edcd49e8960561607a9f3a7678dbb20880e3276b5983081ee3e0376daaf3008e04b69b0765dfd63f09bb8b94070e0ea1a06b30e6a76f8002cf322ed6fae13a747008a3a4be36288d41d4f5c42f09f84a2bde83418407af5196d0c7aab373f38033a6df588bb252875192b838799b65d9a45b364e2de70d9c9d7e6a9bbae4424515b4f439fd580871285a4e8577198fc388e6ee21492bc342597e10ac365741b17238a3b41bdd603034c38c93dc146a0b07d3609b041cc337064f2459361c60a878e4267091a6038fb8f888dfb9056c32b653d82d942cdb25c5f7a5c3ab3ca2b757393f329919ec952b754a2cf580bf59712e468a905f1c8c7d0563acb382390c367c47625bddcec6f168b21dda368cd4d20186585c4aebbe515d879903bb2d44787b7d47d2f5506b19dabd0a6453bbf3668c9d348b4460c0b01e48313babc46a34953864ad6b0e7bd219e50b76dcd4473116bbc7d2a0485421fc267a617b1818c6c9697422388c21b01dd29da626d10d8fdbb2dc3cd9c7664ded8ac223156ec514065bab9416c0f3645d236b58dda819f20870c501067fac8fdc719dafa8e4bb3f23f8e01389e0fe771cf8d2ada622368eeecce773a493f9857bd97cc81d7544c455a4fb2b93a8425d323150178bf6675224ccc694ee4bc73de85282bcc3a84911dd41912d7a4a8c6073afcd0bc124b4d143c808bc34a090a848b2fa03bc41273cd2237c8af8c5b84eb1c0e3dde24ef54d8aae40b2b7c2ad2a73cabed96c325dc8a59facd4d20ce65dd9dae51408e70a26c1f13bca2c74646033efb28376fa9a0e861ca1e0c25de90d75cd3a63803be27c8e61624efa37649fcf592c8e99adbfb071beddbbc89b7d17fc1fe17817eb5bb7bfbed51362e62e6770b0702bf5e9fe142926b6d7f46a4189943460a83731f7e3e9fbd2946a23118a74a11508ad6331f5a558c66ddcb89e80c6ab4dbf0701e2f991de814737c2ee4e9e70e1f9a3087273a68503d64fcd900f9b9fd44bd19bdc34e664f3b0d7983ca3db701602c1dc2eab06b7bf24943a0c48e96b13a898a77540832ab875649455c65ea9185ebccaacc45699eac5828e03963a6d3109bcfad5f1e504e10b2495f5778b82d8538ac671d75a56818adf76cb1e394088a0d72e00bcd1a10bb1ec7e73d983e282b8bc0b0e65ff63dae8f1f92e9b2b142aa12d5b0872a2c84051f50b516361e55607ffbe69a539e63bd6af84d604c0aa4e9082111de72af4c461e09c737944e1aa32431fe83432fcff74fd785cc19c6cf70ffedb4f3bedcdc4a75e2d85e851619ef09e3f53f99d986512f75aefb593b1dc92789311742204c264e6002b49a61ba874de0c30185f5b88f8b79981b3cc33e8e93f535127131bc8bb78979ea6dcce390a8b6f8abf997e7a98d19a0dd1d6752a870b66a9baa55145fcb90cb7d4730891f80d6d7b73bf1aaeb8f7438feea4bf2bdc362abca7b59c0ff420d2e7ca613b1619ff63ad5858cbab84b3f45f0a31f0e2d43625982b3640021e4495310ea891b8b20d2ccade27a1269685441e51f4ed7132062ea4033e21b69169730086eae387def170531a2cfdd5c8f331a61565e6ecc31ec86e929f639c948950d4152138772fdd9225bc86c98efc327e1ed7d9aab290667179a1ed343185da9fa45885c428f79a631069d8f8c9e44da59649e702abc17d7958da2f33cff93b584a782e7928878616fd575968766c5a1542a083134cb909f23baea326a7a1e15713ea7733beb3968958969b2752217e5eb3760a9152b2c2f37784444a5095996947e095886d9794b64fce15c4bb03311f10a8f142fba566ee6402a7984d770f57c16ba5a2e4acade711469735543fff5984c90708108f46e1069587ce5f5a4fc409804a9be140ab566343f44f7e2e20db9427df742f6cc09fd4a5fa66148e50fb1a34ad399973e06e9cd8c6a02007289cbacbb076583f40938df10ff707194b4f7f1ef00bc4337a4e1a19bfdc61936b28b941d99298b99bca120732249fcb5852328b711394b3300b21ea05910dde18f53853e105a127f79da2ba32e2f4c909bbe959f3d6e73c3a311889cc1771fdee0284bf2bbb3fd9155490582abdb7f9032a14c66ffa99952c91996be92931ca8dd8cdc40cfaa3064aa52e8a896c1dcddce07d354640c74a829335d53377ff0b33cbb8509c1a8687cff9668d384ef64841b60a00cd1254b2ce6d0bacd1f4be18fabc3b0e470ab3c1f27a0e7c36d7a3e0aabe72392bc9704406eaa359b1df9ec5d24bcf71f421f82605cbac1e39dd170a4e06c8c992b422d600f5350c73e0299047cb6830f943ce9263250841db1371d257dd03690c148c8d81ccfc5ff7067e2545888bc397e3dd154269989911645bc78592014f1281ff04fd6721d33161bc7e66f0c19e79673b20e92e7ee3b8478e041230b5bd4e95909962c7d722db19facc0ca02d4aecf6443789848526139d92bb5aa290c969eac9f010a32b0a4a9a6edb230b186910bf91cf2a9e7c125fb8b6d855afa314453f6680cc556578f765739ea87f7baf82ba6c2cc93613392cf105803332c4894c06fc604e9ab6a111035fc63b34d394e0d8c016ee83d9e7eaf118c10fd2e89ad7a028cde0aad4302308a9319087639353f169a87aaf23ad2a89da2815bbc14bd27631de0525350996ec188c8032084e9588fe7d5de97bf30b1d0c337f8d0831dcec0028575c78154b4c45965d13e6165fe71baba2822655fa83b075ee76264dd86b2633764655c848cc030ff3faa251c1a25080c8a43d629ee32cc9e8347038536e6c7c1d4cc18c7dd4eb1c0b241aad6b5da0e150a8d59a200f133fa812ad6456c35745961ad6962906b777d91a65bd6deea73c564d88a806560328055cb0cc736450be61431486b3c5d39f544e8b902f02acdc22912091b8c7731c455a68a309d28adfc60d060e56a9fbfdd3d22a4d6bf6b911283bf7d29907d4fda13c0dabf289c8d27ed89c0df5c14ce96772d44e06f5d1e60cbbb56e460b62e0f62df432b72b0f6f9946d104a51a29ec69f7c827bfe44f394647b3ec123cf6ca1bfa1872da39be2a534c92eda2f8911ce4950061be58d2043e4601718787a7748d515a1e224cde0b2a7c04036a749d99a6cbe382371ac13ac0bb244d56f1a0627770f2fd844115976a92d61e35d286b2c559bf1650e6117a48c5195d4f4f4e64b2ce11a6da68e23e6aa2ae34c1330561541398b0901d98615d12f4efd503cc54ff57c289c54254bd3d8ebacc9e56a3be1726e98aa2d5411f040bbff7dd2604dd565fc3ab968418a1f00bce1ee45710e0f35ce3f6a5779e10aea3cd1ac601bc60f9e55e73fae9d1d33edcdb01c57a2e6e817de729e149a3f2e37a046b5a22bafa00af32a03a8bf4195d69104aafc5f784ba29a59e44d27739510fe90c551043047f5c7df28b408e727db699bbda1ddda921b342a07b2cca676360f0a01f4e3c1700b6e5f1b0a00de55ef7a6afa0359063880b5e881f820cfcfbb9cc0661c76d173e3ab0b4e44324c1a33b08e7fcb75e41e0051399cac6f96fa8d9122322385f34401379f5c9ad83b3cff1af0e475c0a9a7800a79695021e96fdb58b387754075583d32babc0fd6e72723f7d3fe9bfa8f8fcb3f49a1a08debf293ffaee4e90487d87652cd129c52aec8b42908e7488d6fdb4b46adc14738e6b78b87a7d7f30000e9c51df08150121846838dc36c6188f5c3471aab7fe9547d5156f0e4abd78d1dde215c02016d0b019e3d3c735184cfbe45256ead43aba379658cc1f5cc468f4ef38ac47654fd62931225165c33a934688d7695546da715ade6b0b957f45c46c428bdd7bce879c53aea11489b55e8a762a12404d2e366de6806dcd68c0e0f99dddcc72020abfeb4907e7f2090bcf25a7d52a6912d185d2fd54fe6a7f20f869a057a49afc607aa0cb9cd05eb8b1a76d77f37049991d74623d915f555dacba5f5497058b6a36720be3ce049da86c63a800a8662a76a11d030f66c4c3a2a5658a32a7017743997a0f15bd9056e9f11a13bff32492093bd7b05624ec2f56aeae4b304c4e7b7a1ce39bd2cde9cf9856ff165b496b844c97e77ec178db5eeb08205972569a6cb09a39c9bcd88d084adfeaa50a7c8f39533d50b688cc566482a0a8813c9b2ede3c0d7d6a3e164a478541c782f33a2f8283321fcb8000b397664ec3b881f4b06f54f01d39f21d71fba416c882571f1a64fe5d9776a4e976a5f2667c7bac24239875352c8766658e6289214b0d9508e11d549fcd6fcfad569da672ef7e20e7b3e6a505dbfa4d1806c105f524a7e0db5eb61927b9d4fa37d15138c6486198fbc7b0c7d4180dfcfb284041c46465fcc8702060fe3c863643b1710ece773cc6b41f0e65de56f7a9eec5ae522a9f1ffe0167916703239033f3ba83b9260e75669d7d6e4415b3bb1de22ff2e37bd88ee43c4238a6b9f2336093682528390b4c37f3f41ef4952d8ddcf6b88129fe15e66cd67124f7a77fa3b023fcbac08e1607d2a06f7bb630b961b4de4286b6da44090294720a402f86f093bfa79967785c9cb1338d745fc33cb1a747dcd3f6e884f52191df8daf28a6e5766cd7dab025d9f222bf4dd1b893596a60aaf4f4605825dca03fd70ea06dc33407a9830643e74a22155d70f977f1cce890c0cf1837b46134330565f423869717c1ff5a6e0ed56af7340acf96b69833f606d94f95802ef9f2321d1ddcb6080f2352227cdeff7dcdbf67eca40438b1139e5c23f5970f43dbac32781eaf6272f87d21c91420ca5d61a1dec183c015f2e84ea8b0b5805ad11471030c75113195bf9274496a377e587fb21e7539340c7d78f43c598f07928f2aec25053abb91f89ab3a105c361c714423a8dd835afb9887ca88df0e8e8dc5fea47b057dc86c6298db417027c3ac5fbf0e749846a20e5dd921e96705d43eeccb5f9377e9192b8b30e7f5798b312ef984028e6c80e4fbf870b7bf7e3dac782aa3e00de7ce3abc37c659e2bec52e71ca7dc632b1aff37e21368595682fce9347b4d7735aa047b447b3d3b03586b6ebfb04690e1188c7900e7909cdae35096b19ed257d2221110080d1f31d66621165a5493ddc547075a19a764bc3125c5ce7cc56311007172121456e5f1a23022e4267b0a7a70165a70ffe22473dad9799785a761d8cd56e6dd1ba5a96a5a9e20253941cc4ee9d2be9ec70615f2bea179677d36e2b3257adf1f7295269c88d6cba4ee12adbef7c4d0d1a724340e581cd44dba771fdee84e1d6e1c45401fdff70423bb7cf247c81d2ad56c1a2ead0e817387bf6cbd220dd53c520563697eed725dc553d561e88fc9e41be3ec9015501ba0b556f19cd8c66bb5742d06a816b8d9bff8b3137a9842abfc44a308cdb8845ed17299c4ef8a7b3246787359932fb5e702315883de4e32ba8cae4ad0da16f1e7b80c3d14744f49eef4003278685e2b4298c0f51b5a927d2bd0bf8357dc89340a4ef6e7288f79dba47da887c0838967cdd6e8ddbbdc4ef49e45b2a08f06fcc3b897c686d9bb5ee09fc7e1fab50a3c81727c6c9ab85abb4bafb7aaf00a5688d710aa10649ef8becb1ba245245a4351691ff9b44e67eb2389d1e2b2ecdb5fc28f21e91c6b47bb78c3c3b05382d11a6da3f8ccaf9c0e65e0682b4cd2473fcae890996e1d29323de8e4ef761e499a804824f748a9a55f708ce91c7184bf19d55dd6ac9ca4a0aff16d735879f70395785dceb0c6a37cfe52c3af63b851ece8db3100e056e2bdef913f304da19cc81a07c0b9b002f480e45a65236d5e6f4dadf81fa35e375759de38a6d2e47ebe42ecfbdb47980d6c8fd50cbdf93dffc50d5255ddba1fe823ca9d1759dec750076fe8008cda190a4280bc7cfd16d6b0fa1b922c8e54c6eafb2ae7a62f6cdbceeb5c89ec98a83972bafad3b0a1acb61dbb842bb20820b48a584815470c3d8732b70a6f012df80b3c5ca1555040b5a90ca68d23fe3cd3c94eb75f4dca787ee135295446b02924170ccac1ea045fe960f4316e185b41fc302aad2bf484a856d60b43fce97829aa8f937f780c0fee498a2dac746e4b33a9cf65d43c8af81d6cf34716e503df513266dbde823148cd89e6366ad2fd036045830241c94da7a4e3c71c4062cfe03121d728671e8be2f7484967b7708cb5d11089febda8fd673bf0fa47cbafb9b7d068115308a86bb6d9665f49d05557517d594e98754fc51fb432aa7a42c2f29887866dde932671e343e69fcd97d4b1ecafeedba8a3fa4f2a2fb6078e344c4d357c1da1a11070210638193e160c334d13fb7ec552d34efbc0b1acd6c1a6ad0ccfc250111ee611434637ac3ded499695da2c7bc32749b1c7f7b534749a54aa640d0c4be8a462d5ddc673f5c0256d452c4862bd29b7c7b8c6a9d88396a776cff248b431fb7c5c843b45685d9dcee7d109d21fd2817072cc699d05ef6f2eb109a15126af1967b2bb6aba8cbde4062af17b999402f8bdb98b6e2a7c73829b64662a84bb5033f2d3e8da0549733ab53b29a47b2e02824092499bcfe910f454c01162bd8fbf6ea1e720f8821c8f286ab36e939231b69556725fe5218612fa122bf0c6e47fc1895cd09aa0337cb3dc0eb650cfb1173b903332ea7bf993b7c6e278b3cd8aa087370e96fb8352f1585fdfd1e21999fd74582a9df815307e860e62a5a288c09c8bbb6fc28074ed58052da76f2cfbdb3797a2b6a5875e0d48c63a338303862ded71a946cf94afee22d66eb182c823091a6d97ee584d38153f6e20961f7c61d32987371e920ba329ce9b590583669b3cd5961761d2a2b074e59c95aaed954d24decc74953f3c37301cc68b6034fe787b03159cdacd0dae0071e5fa4f157c98a0e9c5a8428cb78b34dbceeb1237eeb7a7cec7da6e5aeb4ddc4bebbbdd00642748b6e3cca36a3e6957730c940296505c7d69fa24ef21f9857a69312d75e7d58b5b38295fe40dcbc1c39dd201f46685772d4db0a9d326e299a6b858efaa3f84206976808804def68515b68d4aed5dcbbca2ff632a93f8f30a933aba53b1c73ae53257162a920fd55492e6c663c4aa1457c6fa1eef45398d4f9f83f87c7bbbbf5bddc321758308f744072168239110f8c5567164437dfb774069bd4d94c0ae3a44e8a255a1dfe4f0d1840c97003190e046ff540ca53753e5b57e7dba54ebe55fd6f7ed284bb5dea3b84389d99e3c6f422f379cdb36b2ad8c9189321a34949a96e1b5613ded453ea5e22cdb0a895ad624addbe1ac6c5ead34529a0f3e91ddb916c2c380f427c3b676eea79b5b6725317fe121fc77a252b9527a59e7b67e584ce0be4b40d4929eb3ffda74c68e6fecfe0b860ab7030c7d0a6e219494de1392a1ca79472ca0d629a4d2915565a4a2944ed511dab80d1471440d5a5cb3829b54c9ff879919a94f27df85427163fa32f70592928ff1b44f43076510ad82669607389180fedc23da313b2f45b2fc1a3d975d3cf410a6747024204803093290a508f2c4429902e29ee06940d60b289ec383ee46950ef4a83a8a7fd927da3946dbdfed302ea35750aa5710282d265991edaaf5ac26526af2d3690990d8442602ca7232f4108ca96526112245825d02cc946316d7438e6aadb9d816d15b0f73e967e6270c0fa484836dcf53ec836a237eed2e7873ade491f9a3ad10272a5f4dbe9ee6362bb4f2cebd2b6c8db862f323a78cc81f00460c60ac720928270158f24dcae63cb695864ad247d4d428f39916128c0141b09930242e75975652c28b70f016929dee4b1891f19082afc0414d7d1cfcda8297303a4092b1a1094684ba4800fe8543f3e077a26f03307bfdde8c6cfa3e27e53a81e259799ec0d216ed93ab08a760df0ee50146b6a674ce05d0b015c5a0a15c0324c6aaea60b1019ac38f3ee8bbe73816027bfffbb6830cdaab1956aac39edce5004a8bc2628c9bac81fc52f52010261afc174095e2acd3c7edaf4f498e6318daa234ff33007fa93a02142a5d1e9102a3c634e4fb9ea955e4844806fbc6d3e440ea1b72ee3212885049fe01b16fc268dae0845de8f5cdd6d8640881e8d4ef4d0513505b7e1cb146bc6129f033a51a08fd780da05b1c299e4fcfc91dbfab50e70801c91711cd311fe521a8874304c29ebe4a7f7bebb3a9941b90f5203207ddf1a0cd7b45ac2bdd876a7302d86abbb30e62326bb26c6c45108c78cd308fcc74b4a006dc3c791653da777d74e3a96a532c825fdfebd35ef96c27e3776749d8b30abc82f2fdefb5a2bcdb9750dda02a95ae08e1668d059e0667a306ae466c50a35b2f6939d4ecd42c3e669eadba84c21e5800e536c7c9015749144a60743c2021ba298869d8ff102ddf21328bf4ff488e8a4ebba6437a4fb71412166255a490f1123d33d44acfd360ffb899923c91b52d89452f91a31cf9d6807538d926c4ab3d27f4c6938dfc2ebd9572839e117f08f954c4fcd07d9bbc2382895c27a5e8a908992655f28b935d8570f73ccb792ffe7d5831597ffdb90d64912b0b7820848614eaaa4914b576ca209c93894bef3ceac0453ef5a0718a2238f9d81f4011848a554fc64ab1d0cb59a8be051c2323fe1f4255821edde536b40d67876ec9af7aba844b112816c656081d96ecbfa28818187e8daaadd4388a54d12cb20788932169782ad4998aca484a773f04ad8fded56fe949c006e380ace61e0bab5f3d6eaafe841e0e8b62f3d79e0b686943820e5b2e9a6be1b65add760af588d03dd08caf34561bb33124a3d23b0021a3958d14863a5919177eb56d0f31b5b0820133cae19aa851b552473fb5eed03b03659b176a36512ccd43d65236d899b745a8c09dd937aaf272193b6a16446601c66f5d6fb3d2214758b67ed5f674e904ad2cac0b5baa20359b62a3f367e5391b9ea361f73e747ccc86606b4d9c13fcb5ae74682cd90ca77315cffa5ee70c893f45adf5cf480722b387a74573ffc3d00d6ced8929f145aae22c5681708032e8565dc2a24c0dffeb331d785602aec5146ad84c2c7e89237fe3d51c71974dacea5e4cd3a56553b57c3573ba75b9b947354e7871b7fbad7e8ce7306d1dfe95eb9373bc8519468ed43d184ec5409356e2ad150c0a117fdeef577412eabcdcf566016df5a51c6eeb47743b89e4c5e450e0025b2cf15c9ded014f23b8c552bd8193fcf416e4f22c76db345b0307ffbd9d822300f87a0a69c5f0d4c4b50cbd1420496cd118ede83d463113588ee68f99a7dd230c97a9a1f78088e570166102db4c8dcd73c5da26fa409ce757bae8228c42745f36d18f7316ffd68b2e032475679d8ba8c1e2b6bbae7e4f1f8a32c7c5e4db4b2c7613f01d68d9a0b07f5262c87974dd39ef1949fe72b4fd2a7f183e33464add44b2a1b42a79272b5c0dd649bfd1eb4ac031959a64329be849e279b71dd44499cf331b755d90c6814ca1b3308a241f959096888fc0c74b93505af2f54084770e65c20f83dad57ba49309fd879301449bfe827ca20ec18f91379fe5c150314d19b4dac0956bbef57d1975dd936929e9af00603f13f7100bfb19ffd765c888728027ab2a7917d3e27af62e526b36432720843207db0484d82aa8a28bb6c93261fd3a043859fe46ae338ceff7144e93899745f523e650d8557e2852f334e5ecad710697f5fbe916365bcd0c595997a86ff7b880c796ea065ba7c3019215d13ff800a0d234b5b260cd49b7879bb4db076cca80d8b90505d5dd123355db4b3afefc6843615965bd08a0d349c7025995ca458477aaab7081c869ba972a406f96b8aa5c0a752d38ab48d38730f98109e4ecc1a8d02efddd5ce97b8856c916daa971ff4da0f6521b46c394ff43230d75a98ca029c2d33e189986e56fdc6fac3a9c6af080ab09a86b1888711bb6997b008d9442ddf839840855ea7f9128ce3e445a9fc3ae93c5ef7ea25feb5112d6b34816185b78a15a990633f2687a5c412aa4834c5ed37c3c938bc13dd86f3d16365fba7e5456371bdfb9049c53a6f5e430ddcf7009d51b9566fe6a94d99f7d428c576947a400078de21ffe3843017ca8ccd80c7d4da0e26a821b43c8b07c6b8288df53c337e2e21f60401cc14e31dd55507e58ae0a5b780bc4cdcd161c122d5a7282ac2714f39329011d4b29510132d4aa0ba4192c8f0c4ae909068261064547c709d265adde300cee556376f12b2705558d0842dd41c7538fc35f53835a60c818864c0507bb5237a855a29188100016c730c53574bb74e0fd7253c162d4dd8851eb7ecc0e8ba402c1fb69bd3a1c6aea97307cb683f73a97499be1341fba4e64bebb6466226a7674094966ce573a0736f1b2c6c9b00dbaccd7fdbd409b6c9ebd91ec2adfd303142bdd923a22435184b924e9169ed78055d7169beeb46f3337c947f97843261439a2a16e03743abab520001b6b175b5c1aff7aa6d2a6be5641e8c0f2263d70dc30003031346ea54b299ddc82cbd4198d605ced654104ace515b111f935c9c777a11e4060f8372c7c247765cbebbfa329e80e1c53f6ab370c16dc9124c6cffe55680740b89f31c33a7ffadfcf281dd22f38ea4a460e9d028d69e85b012dee46753925ebfb5138dc1d02611ea13242e6bce216ef902e74b9000da0c3c7f5dd9e39ab1adb37d57563633de52e3449814335816ce0087a859d051628b106b8ae1379c6d70e003e746bd0ea883dafe0655a0f9bdd2a21f0cb7fdebb496745a9c8ca0094269ea6880ea83e6eb134431cb8b4fc5b192129f2dca5c75c043b50b0b2e7ef4726d5cbaf365dc86e4262aebbf23ca32c96b689d5ac0ec689a2c77d39365759608e9172f13354a78c705ce1ae3ba498d464e209a776754c5f4ff891b74ad044fbfc404bd76eee906d0294de7026952322c189b533298b4dc7fe6b7a484fefd2275f57e05577b3a13cbc96811bb446bc5e64ea66378dc1cd06bc1687ac5c36813a299b5693006b6bf45be0f29d8df30916232502b28921a473fc833409aa8ed50bc5563ba03187b42aa12541a8938a09eadaf0208493b42cce2e3290b2402ee61ef6f3bf32ebf7e89d18945ad530e9f8fe45e7e68cba24520667a2461fed613a163014da833d641241cf1a50e509257831848a3c2540043d41158d36524d19cab894ea659e4b42ff65c651afcab3127048a36c19a0b87cce1518b177fd0a5121ab6f1488ed8b0ed2b9272d98a74963870b2ad6552023ad966ef5e7c6cb2d153710c2b0bd25b04c74a394e5874d82315016ec889744707e339194e67ce9da21b8b7ab9e2023a06900d9b4e3b6ea2a8062d7b5022beee9e2368dade72ebf68e0978e26e592f0b89a565ab315b64f7d30e7dba5de83c15fa58e8279ee6b4bd569fb1ff9473f365d094f1b824e260d02f35cdf8d912d9996c26b88282903a5265f236a0a356f4d880e874c6ee862fd114c6034a3167a55b2090aada747a621a5de7973813f6e5991b93ee50595ecc180dc8c2e39d3f639db04518203ea7c009f0491f0da16a9f9f7b0025781c202018c566cc21e0ddedc8511a40dee14576807e63ce0371b69fb7fffbdf4d84961ad95bee1d9c0aee09d50934248059bb8f59abdd4a5e6ed448d15a2c138359d0de836deda6dd4dbbb51ed074bc40eb7bce5ef23a5e80bf21c1b361e4d4ec5bb2254f0073257d32f706ac31d84bbd94e9e76996b67975ac85642ef45b8923afdf4d6490696e9ee4ae2ac844bac6f6113772d39f8d0609114d91fb360e992a750d95b6012abb6b35688ccaec60056442431b36c4b08412212ccad80c038921c628a30b1e345154cea7dcdf81850f4c40e0c0c2136794320c6165ca155f987104758a830c2fb238656152122a7b0555243106194c422da8514e2a391613e346060f823c40c9200f493d30916100e898a692451eb3f71be678170a9e4f3809e558270dfde4eeddb930a7b3b99813f22187bb2c6f5673d2664d23c96430994cb682934c567652ecee60e4830b1c7b2565fa6f0b1c7b65ba9497be29f092a513d4a10a2135a860d1c4059f186080410d17c650a2461a75099327a829923bcc90eb61ee0d62bce84b9863c19b65053ee4fa179e4c40492dd4450b1db2c8f52e14b4c0c51b3898010c3720624e61b474831c8cde68828cf2061bd058cd1f2d948ba01ee4fa569853ebd2d21146e800a5892876286334b06a53438314273e68f142931065a54232992c49596badb5dee45a6dc855566bad4c44ea0a842db03840175a4ca4264ab9a570528393239e24790246eed3dc2c49ca0107414be4f412931a78b406db264f727daa15068dc207150bc8311f4ccec8ddbf9849ee241caae43e0c28b70ac0c8e99b561313294072ba0506132631b90fd62065a3359f85c1122d72bd17e488187c814618a4dabc34b2d50206e86917e6b4fda1e5589ab46496ebeb39a13072f7cd38dc80a776c30c79022e28038926300ce9104796010749b3a7a332a694fd20b5061b6cf04205bf281632d7579b1a6c306d652257d60a700c8cb161f623f79dd420cbf3891efce4d8d744a6e7916712d016f943cad463ba36f75f3238a6759970130f70da68485567da5ca339433f99eaad1e5333a94ac041a84ac3baa992ab261ccb401cd99e856c8fc351c3667e79018bdc73ac27d23676535769a61df099ae21559b2b65ced023a1e444a6548a4c1fd39890aacd2c95f21253369a3dbc2cd77a4f6d438f00fa644abe265d03a56b66120d5832fd803295a19f50a61f51a66019fb8c326d2ad435b481323ded25999ec6da49a6a7fd24d3d3ce21d3d30ecaf4b4bdc8f434a6cd327d4c6b22d3536e0dfad435b12b4416a2ca20448b5042868a8f1ca34255ac6001ca31ba46a634e0e3774f9eec1a31657a6e8daee19eae8c7be29eb827eee9caeecf05e29eae1015a2445a133448df3da3bc1d7d4a599b754d4c6ba2fd683fdacf613fd56696404d84328d693f9a91172d0067de695909923a7586822f5267ac94b3f41e9b4d43c07ba4a8e3fdfb2c67a80392623b955be05833dda33a13d43542d5e636d10bff758dde2494a950b5992591d111522b5da34f869f631a52a6d796e835267a0d4953cae1480a4e4fe68f06412335924c962b29aac0e364fea807c109d34ab64e3259b6a44865332bb9c76925cb96fc28f97969810c90b8a00a2660104d1d24f5e0e4882c4ad46002b4a495748d489bd0a06b94e92fd255ba46f7e8437a11df9cf453eccf4c7d5670810d5ea8810b6cacb044390fab362ba23860683a6386a524ca79fcfa66101a96e53ea5a7a7b3669e669c3ed257a18b74cd24c5996334f7c1201c9b44f3878fdc7d0d4c1b1e73fea8c7424db4582177521b188ddc9f65306084792d724f2a72dbe4fee66cb2a1591819a14a66a0c2832ea14833989163609e4f3354c93f404d268f16ab0c33f0683aa24211231828000272cf27726b9f3f48981985d7ec61af9a3da8b8b3f1f894748727489d29e9d75b5071e79e3bb5df46716723674da19242bad4c85965b5bb275f195da529cfdbaed2b461c9733653c3e6eb6639ed6e9d76b78ef3eec779f7eb402fec402ffc50606afe4381a910a354208ea24a751412a812799e7524cb92a595f4cfd312952d96a8546152a24241148a100da25128116d32df58d6709a58b23ccd2b3389049a63407abcc99f0ac42b252b16abd5228ab271dcbd5de77df6fb6ad3ef769ef77d20187e6018a250a914565995aa3655a15218ab54ab154bb562b15aad961657abc5e5727179bd5e602c0c4c6d0af3029343d411b323c7c11e452cc68424d0dc638e9004aac3ead0519bead0716323701df518d3a2e4799730c7c8257ccdbf843918e64514a9d863cc2b82520f690acfc83bcaa2285a51ac2d5271ba50319feca2ca4dc63690e96376366cf6a8755a548c2753b2006b7c5326b60348073ca7e0d451dea124d3ef50d2358dd430fa0e7352493ae0f919f6cc4ae8534da2036a67fa9814124d09e56bc34d2da59ae85357e8534b29a61d4056684e4a7fafaa04265768fe9c9934f3cb33065fc83225639826338dd1861654b0c103a32473290888271eb420258829930c229ce0810ca7377e909516b05205063f402081418972ceb90483171e70a5f48507dccff9a8268517197c220759b248af9d36cddab791e61ba24294043a87e43743137c72305a410d1ca028e2428c1235623206da8c7a38c652c8df44ef1fe991322780f98701bf3c70b413e6a9e07d8fe99a8ff46eb7d109d35070babdbbaedb4814bcaedb5e49d0d9f3c8d7ab61f5923132a78fbd3e4a3b0599824d27acffea145e96525a63580557c0dc85f13a9fb0c10828a888d1451745f8e060050d6ad0c10c3a78f2d4dd3346736bc99625fcfa20f538f541587926cd10945b66e0184d9d6196eb7dd05857164c5ab880c51940c451d607a93630441cf1e40541495e7043594f537fb37dd104c81504a63aa0e963f0df7d7e6001872b453cc101135e6830785ac2c906654821c38869e86fe84f0fa3ff90c0b1798546e2864d19d6805d062c995e86870c477926c940946df24c5222942f238156ee7fdabd2447c6bab1afa5a0853956b39ad61de6f4351bdc335fe018b89d1ec42d6a7fc0b17945a6b7d7c6d86d77db5dd2bb1d63d722ddd904cab0500b296b8fc9f79b1541adef461170f98a600171c411479e797add3d25614ab2e4220283576240ca3749311c654ae93fed33ef78768ce9646b9f709fc60878fa2aef29a56918cd2cd43e431dce1b69ea0c6d183d17e304ffd5b015136e98551b18a77634d329d32dcca9e742126a8b0b1ce3918246efe30667fee84ccf63be9bda067d05091ca33464fafaeeb727d064ee4d89b2b5765ec9d65a6be7b45dd7ddb70f4273e34333274dd636a4c9f1f014ed7cff489eaf23632970f211d2c9f36ea336cbaec31d7437b4614696a4a4276e9094044652d216405c356c4802b69870ac05d22476ca9cf6ce8063afd7050377a6b4f56a1f40e0d802e80b0b38f63794b758a7a742f3c7eaf4d469fe509dbe91e60f7cfa0a347fa44e5f9be68f96a3deb2b120d7733bc8f5b793bc0ffcd71afbacb1f56f35b2fea9c6d53f3caafea546fcaf654cfddbb48dbb9df75929f62d238ae698e9056a1459801a61bac7e80e2e881a5f925edf63f506d4e8023e56c7c8f528b035f651a32b878f5929b9b6fce696cf1efdd6c81a75462ae4347bd0e3b1912ad0ec418f1a6b084e2c321da268b413b5864c6960a5e41659a7f4bd7a78f5f0eae1d5c3fcfc0b0aa6290b4457ab6ddcedbc0f0c5129ac5ab15a2d2e97d70b8c189343c750cc90380433f432f41a7219720de9d831e41a6a196a0db1865643aaa11d1f520de1a1d4106a281cfa38140e8143df9037349243de50377487c80f86ee1037f481cc10372403c2100821d4d7faa62db3ffb87f648e77ab891aa903030661eee533d75fa74d524af467a3b2f9e3e60d05bb337f68df5e8169f38139b37ddb41deb6eddb5f86c0a21098c79c88f81ca7a18e8e63221d638e181c0543c150f226eac0dc8459c27cc80c3554789c16c79e7e7898b1a7887b4f3daa1ef59d7ad43972c47f8da9bb8cabbb46d55bac7babe377a3a8834279a52bb75cd667b3d50efda933db51a9ed785b51a35952599dd988e8501936caf38314b07cb65e35c11121c100c713511248e2302a9201c4713cd59979715001519d99972889923896eaccbc45573c2e966479c3882c6ac03174c337e7bcad735a4dd37e4938e39b321bd72d13d31cc9819ee9df168e79c958e910a7b66ded1b854006c6129e3da069763a255d98c5760967ad0f452ce45affb100c76c143072bddddd8d031a80babbfb8a2b5e9e6b05024aae40a8916b1418240131cbf51706820fa8228d1fa26071858ca607c8c2904110301c418588ea6489936ac11f7a705d4025f737b0d63a25d75a2998db8adcbf5bfc8024f7edad376891eb1b1024023b5507d1957b2da63aa8410bcf8294c6d0984c6131b74452ecb0a82c2f51b0a5475238a161fd1519b1e3f4e7c7698353c9d8546a2f7273c08e1f983d4030679abae0051c3cb027cc1e7d4b1a218b34acbf0a03f74f6757222852aea8098069d39127f44c8d1120f623d72858cbf3065804347760f6a8a7a191d9a31e7c0107515252c279db22b019a933f59f13acd3b07a7be7ec72ec22d5243e3ce7ef9c32310c04f359beef53dac3aa8d48eb77c0fa26795e5eeb79600e96e07dcaf282f688bd0af645ec8dd80a86e3cb2cc3cf50272445ed3bb6264f31669b4d45aa8d8edb1b51a1dab46e5db72f97c7a810c70123451ad664df71ddd519db7d14ac3117af23e6e0288a0f1f235e47cb5b5a8c586998c335d97cd064ad122ccbd6721afee99ad8b10ccfb0acbeda44c001a81c012add45e51bad88d7dd2373ee5f86c036a36073ecd9a2206aa44e8c78ee9dcb5b3e73bdf52f66d47171cc7198b1fe6554a1c8fcc165fb1491112aa340e1757c27bc0e92a7483b4f7d788ddc019f83e4e983e1c5113c0d459dca1abfbfc6d55d46d55d237ecb987a6b44a99efa0c1f756e1475c210fc0cb7d56733d567a9879fe1cf500747cdde88c5e3cfaa0c471f5911d81b660f94e7072968f970ad42e29b32e0fda4e73e64fe923ddde739b2a768a767dee0dcdc341512fb94887e7e879ee429aae4ce3c47f2749f24779e794afa94875dac4f816651fb0ef72cd6f714d9f7d073ef29dac89dfbf91eee95143552083df71d7a8edc99bfefb9a44e0589c0f44594b4cd2ce7dc6a50431867d84c328c600a2206396011c65229d6be9159d257da7ddaa44f657dfaf3796a547db4ee5cb09fd366b61dc92dc3d9cf4d191ec92dfb5536acecc75879defe084b9e33c833e988863cfbb965cc639a027e6e98801f58e902f27353ba1e63b5fa2e9f640b62a88e4b10c6a93094d3fc5193fb96a97bc247dd1ea7da80b7d7a93630b72f526d5efed84db693e9751e0db387c1b2a8aea946589dd15cc622136639abefe71867598f1a45213e6578137cca90e4f129798a767a87a78725585628439287a787255864653fc748cb8fa644ce659c25c5ed65fb8f25c3304d83b5cd074d344082ec74cd84a20ba26c534d55aad11439067a41469e47396b1b4d5de91afb5453d74c28bc30caf6292b4d524dd9feeb949252aba5cd33707f93613a337bd87004009db1ef1195a901620470002a7f246cf6b05fdd4004da51d0fe91f422103952a7d63e4ec78c2e4d7cea339883ffea187ae3cd10b8c2e60f54b6aec77c88eb31a4a83de6b31ce2123ee643c2c7903d453b7dd487a01ef318b2a757075baf11ff656cf91d4d98e56cd6faea3396a813a2c4719630e32c5fb2ce6ce6027ecb67b3d667ab879fb13e531de5328adbc1cfd2358adb53bfe276d418aec65959ad166b55a821a883640f382414123e45f614ed8047bd27f5f0c2804c60fa0fdcae035e042694546075c672b33045a561f6db69ea8c153752075667ec3f2738b5945282a594563eb757d329db7aefb392a210eedf876cf7c81eb2a768c7fbf69eef3adf4571080a259c36d9b469a8734febc894eda9ce8cfbf6aff6a415f53b8aa290efdd8778bf64cfbdf78eec29dab9f7ded395f6b8ced873a3b5df386b77eb8c3d81e440c3ecb4329dba6d114e368633b54a601056a16e27526d26ce533ff3474dde1ea4dad4bf80f00f9555500a769d75960be057f7295d707db522798a38aee2340dc7715a7f9809761d749141eacc86034ac13d45da7b5c07dfc3faea9c10d7c1efb84891bb4b237758a48b9c75c7f5fafa95119e9946e438cf0271f9c8db63281b1e7466cb71b13ecb8fdc01cfb33a488adec3cfd2de17f257c13b76ee464ec7b57a0dbff3d883ffc81dd757244fbdebdd78f3a5a92b0ddbbc0729c151f4481d9c5986accf094e6149594959c9dbbf0eb911bfd035de0bfd73b57e217fdec8fda3a1284475f017501d24c57b017cf192a210f0aeef8077913c45f73c29170feaaefb94dca84180e67b1366b9d259dd1bb7ecadb8ebe98037619620d95374df630f7e48ad62c60d71942eb2a73ee4b2eb3bf62e52f4eefa2c774421acbb3e847517d953b4e3faea3d2e677dc8ea2d6f217b5c388dd3ae5114010a2574e6aed372119030b3771366d972d7451d978b26ccd2e5e210d7bb96d1dbce753a33d65722f7d667e9328a1c290a7179cb87b8de227b5a77bd85ec29da69ddf59e9615abd5e272295de32c5bc659b6c659b2c659aeb65f72a73e3c3772b961db71fadb0eceba3db51d6f578ddb2c71891a67098eb30c73747c346cfb8a09d3c7788842ecc1efd883a4c87d96b3ceecd48bdc2c5f7566bbce7622db71b607d966f6f529a73c3f4801e8b3b5aac9c7d55aabb5d6de0dccf5db096f6d92312379bea4bc72e667b5b66a1dabdc9c73ce596badf56b81dd3820376edcdc896f04ba4d021b045090ed390f5812571f34b7bb68741e13ef73e30367d768df2c042a044a90b56c3da09d0bd57003b595a0bddebb3564b19acdd46a5a16284259b2d43ae7a4b5d62cdc928fe609e4e6c656ae46a061fd200d6b1f3456db64c03c60306dd3926099c7bcb80bceb7348dda12ba5c8fd31a38bba601dd00f0d7da37b8596957c39cad6fcbc060f0010bee0c1ce699e443d214ece599e44312f4fa20440cdddd31f820b4d1c007209a06f8f0c371de36bee6c54d39f64ae385f1a5b9f1d1b02725da1b32eed294418375dabab8a1e6369a689706091dfae20be227259e929ea8e0d70e4fd888c2461138a906201aae1b4ab891d43333c72e66baf8a5e59904e5288351ccf0060d728c266f3f74b13d81c1299ee0af090e08ec421483378436a4376c60e20d250d8062d4ca36cfa41eace4d80bc9b6f1eef74b0ba6d9e3fd7d796e795a4bc79abfdaddf58a39e79cb903c8f300e39c99b764ad5d35dbddddddb57bce395f9e747743e9eee6bcf86837edd6801a464b5b031c4be5cac4e99baa041c8c1a3673798a802ed338b285d2337d4b0347824beff52fdc75a4a8795eadb5d65abb975a6bf55e6b6dd5d7abea15f55a5d5ebf9aaab576ad416d717dd7dbf0aa117ce9eea946efaf9162ec1dbfc3deb78b1a39d290b5729aa8695d6bad55eb5a6badb5d6ca69b7a2603f029abbc7124622f55ead41668ffad50d68a871dce87acb51e3cc2d1aeacc5247b1c6ef2ee3aa35d2b2ed28ea741e6b54a5bad65a6badb5d65aa74c55f96c9d5ae262dc640631c42ad39b1e32102218a074891c64fa514a29a54c349129a5a74a940a6d62874c5bd6337a8a3495e693cc885ec9d4898928f277fbdd0b73be2eccf16cb7441bb9fb0d73ba7bcf8539975b0288cc7d0b73b8bb599b6c2f162584c85a0d016a1795a976513fa84090a092eb5f49f090eb9f841bb91eb694eb696e5ea0c651966cd38d6993fcd1ee0d248caf74effde18c6c6f7f87b2c8d69ee32169ca0fdbed8182470c91eded114d58071cbbd9be522fe4e1a35a3bb7a892ed1a3647b596420123c7689429ec5cb23bc8f6f617bf0ea37123dbdfe004d121e2856c4fa4c8946c6fe48813d95e052956c8a8fc1021036a21dbd3264244944154c412464db24d32628c6c6f9196f4802b2622f79be26c29926c81bec8d69615876024c3c5a00dda91d094e17f70d90820c12b53b205b358cdf33db67ac61ed7f0f6d676ede8eb385d2408d0fc5193619482e81439d27af8f4a3454027885290769ce682684d38a5d4c5d70bccc1f1250c5f1e1e267c113b98977196230d290000647bf106d1c1809114b2283561717aba9c0f1f577c5cf1e1c3fbbb12883c602acd2cb20de25df34e51103bf2e59ceb62aa8cd9c39e1b534f291cd019fb309546b69fa92bb38706f3d789bc3ce69a4e8ebf8c3d7df030630fcc5f7e9323c609880f2598b1a8fbcbd8531fdefcbacb775e77795d23775c2e923c7d97e3f4eb62f8971114521f7e87dce983ff502d233e6bfcde1a57608ba563653f4194b85e2dd1fddaefc9f1aae5a0c19814351aea00c34d5cbdbc300bc685e3b274b02ec7fb47411de1c18b183cc5183c7e88c18b232d57634fccc5b3c69ea29d988befc9f1940e8ee3b496524ba9d5eac0aed3c811f874230a2ff74851fb90fad487f4c57fe02876df719f321cc58e1485e083dfc107df1d24798a3a7207f51d244fcc51d7719ff2fbbaeff3608c625086124a5de4988f185c41230633987d5ea7d43533065592a88842f0c3efe087244f91771d244f0e52ec5e9f3abe47eea00e923c31a4d8d5a7bed317df178f5a1d666cf98beaafd1356b7d85b1eaaecf662d471daf58ad16970ac394263e15182a04b55976ca69f5c5929589e999edafed5d83d34f3edac6be05f527b44d25674870593f2be28ee496748684a6b4ffc165fda129eb91e032cbdd404a274d7d887daa3e55df938ae1a02c281d829e4a993fb43f551bd47130860c9280019d226fdd6a35c3f038ddaaee86e1481d113a47cbf55ab9b434cb3b81e575b358acc3b0548f195917477c1160ae5a8d306f8daac3c0a844e87e501d08406de80a68100d0da2691a74468c06e5b468e68ffbed039836548a118d11cd25a951dfd3d111e11f8cea33143b5267b56a11618a2167ae8ba408e30ce62a1a86a4cecccce5acabc699ebf8464a464f212c3135896004537d3b55a24cd566fcf6c137ba443e469bfe18759ae5e8728cd4687bf7d58f8233223c84c3604611ae1a4350a942b808211c36d25284f92c6340b8ea43640e43f6a02e7315ea32ef491d0422a9837022a8cbccc0d02409c5c18630c828fc09e1dd48a5cc1edb7ba44874083ab3dd526a80184d8223a9915148e6780f2fd251a4f73db3ce388153b14bc713441021848fc027770fc98f17415248ea207c08ea32bfd566e63051088bc5fa47eee0c3b8f1ebc0d567beb3fa4ceaab7fe44eeb309207f5d6b9f11361847908a3ea208c319719c57f7cf907e38e93a38e8f630e1d8ff92cc74518189508e32c43186709c2384b9971961f8cb324c797eff86ca6e3b398c37c96e333f1aa8f3e322aa482116372e8d8f1b2639ca50e1f198542836810ebdbb717a936abd6b796bf5cee621db75a2bcc72b9bc46dc32fac8ba3feb5323eaf63b2b52e4ce4291a9af3e047516d9c33aea2bb2a76887458adcf167897a8fc891a210d6551fb23a267b7a8a76f057ef51a55ae32cbf8d1ed599ed2a9452de9e5a35a98c8e1869d886b2af313eb775fc10e2719661a7aea8524ee187e0abc81ed5f14312631d223841e645d2218213c4825a578ffa907e8aece9f784af9fa5b5f6a3a18e0e51bb8b0606612238f3c7fc09626dcadedb71fb20d586757b22d5a6e531b75721369b721ca76116e92eb961f7217d9773e3902aa41e7cd88db3613daa7e0f7efd47411d639109a8ef1867993a6b449d8639644f910eea29384a1e9f12f51d232d5b46513b0b7ceb43c2b3c81ed5c3b7c89ea21dd5c3f7e08f86227822fdf04ba1743427725c909d2227d8d4957aa5daf0e07185c7956cdf3c7878afd747eaa45038481e9973ef5dd40ebe5e358a9aa8934a7126cc7296e33117bb0fa9073fa41f5e1bc58e14921a5b478dace7185f8f195d0e33ae2e8e2f0747d7c3b1e575d7672e6f69b55839c659c670dbea2f9fcd5e3397cf5ace7aabc535ce3af36271aee8cc66299d120b1e5363903a638f0a41a72b0dbb52dfb7595f7c15f029b5a620fc326de67ccd1fa84c8f6a9a3f6ac619720e2053ef7ebb3dbdc954a3275f0d7b61a9fdd1a555332dd1a7b6a04b73ce79546d6ccf64bbba82e71c5faf9b0660c9f4888a8c1059720c8852ed79d4354a744d7d1282c7e95ab96fdd2f0566a91da7534a8c1f377aab513bce579da129a4d451c3524799bef3a90dfea49a85ecfd0387c03ee54ef7bbbdebdeb391e2fcf6913b3d1cb9fd5e9c3bdabb6bf772a81ecea7fcb8d1c571a408566a755c5ef76ea4dae07b57a1daa8ee79a74daa4dcbbdc7a6d38a46c9c1f719eabc3c7c193fefe1575fdc688fc7ca71f5dc2d57ffb2b61e35ce12751f6b5f3f278ae4714d944f597ab7debf1bf0046334b909fc0c3f7a069e9fde290d4510ff2b327b785fdd00cf7f34de6fb86f1fd275df3a529c3ddd39529cb39ce3ab61deb7f19e77c4bb0ade8b7837e2bd431d98551b7882dfcb1098a3b19f79c7862248ea701cf6e63dcf73dd9bdef4e637eab890dced77b85b92a7083c0f8a144bee20b9835f491e17297ea428a4bbfd90eef6bec7befb907bd451640ffe47439dd45b5a67adaee28e3f6f34e25de57de5b5bcb7784f799c77d330ef9ee7cd77280ab1ef4ea4fe1e35ce923b4e7ba407b0cc76ca08a3ac00d4e736b3fdd50645de5458a5e91ad481b40dd34ec3b6a3c8a4200ddbfeac830a3fa4bec99e7e7d1892227d49c73be23ab37d37600a449b5019fdf9509fa10e8a14b5efc41ca73f11e657c7b7f05bb5717d3b3daa362d47fd334cb7d8492d11d18999658726a0469887a3781a8a1a0d75662ed4a3ee423f7cf92ba6fbf181ffa03620a0ab1c9b58565e8e4d2c9e0b09cc79dd14b59bf9e3fbf6034c1bbac2cd466537e002efaee0d8339d485f94a1e40d1ab82083212c2046152ab878420c17f450d21fd64a02cf3067ceaf07dc2e2f5a39c00dc677abcd8c08207c30eec821beb8b4b054a9f0ebae91e28ec6c35dbb4fe953020016820c791d31302f576b8551a0f78d1477b6fbed3ee5fc07801900cc5ca018b2c03e48149191450d2c84e0e10c204a7420db82088e1f314a7ad8384518af16983e84118330be986099f18311760326479a71bcc9018ed1ec18837081758c39462265e098b188381ab18261c6237586fe6554a106f845ef32d21f2f708cba5a5c2d935bd263690997e487a9c56ab15439804639a856aa95ca8b6297a2780c70228a193b6001126c7051d219461454d8e8411c4c9a6250d2e39102a546da043be118054285a890e6ee6f0986a7b6a274fb68a9bb1b1ca910d6018e5121dad1bbb640aab4f504c7e873acb15004f4299689a58d289631e808f4140bc5d2362f748d262e54c9b48d5a08ec59030535944c6bb791953eea9a181d835ae922da888e11e6d0351a464f9d28164a3b041fdb2204a576d0239cc61bb9bfda849494e4be0a482693d1b07473c87dac5926ce05b99f1212033cca7d9435c3a392fba1934c264b52f61746ee834d3299cc89ac53e34aee7f15066e85dcf79c6432590c40b649ee774d32996c06bb84eb21f7ef924c267352735049c97dae916432590d51bc29727f3392c9644f8e588191fb1a0d4a778d1de4be9d61299ce57e059a416743eef70e65cb643648f190fb143ce1850453106c1bb0ec1dd81c2052ee1bfde45bb7ce7d0ea86d5a4e32996c05289c1250727f265559d0bd22295f1125c7b82272e7187714e39038a5dcb75bfde194744d6dc209559bed683b1272002a6f47b347df45060c16d13531ee2713815140a3aeb1a742dc4fd7ccabdd32cd1f2db95e237a35daae79db51ee734d4c1b7aa3c057e4e6bcc8ad5dfbc961e0180774ef37bb831fe2fd037b26cee77da7bbf77acffb47f27cf7c0f378efbafb9460d73bdd334e7b5bf79e228ddcf1bad37fb6eb36cf7b8f47655a1b4804e5a00543b4e3480ea8e38238202e4aee4f0eca1a539c4481428a25d270a2441c1027c41171405c1310896bd5d137656213091f4d257a973826508ce999416b27e360b040935b4255397851e6ea087a95c2a5d9cda0afbdf3fc5f79fe13096fa1841336e02fcfa4d91152cc7aa862760311b317381ae0963c935a48e34669a1e90e61579e492d4c01d4021248da0b37371c0e6a702d04c121e9eac41931745a6c9aad60ce3199dc3456a0d1512dac7023779867921556d8a01dad37daeb36e5eacb5a3b1bf6d2ec562ba7f5d5bcce53d5f0a2f5d2cab5a6514ddbe8bd98ebee9c1f124b297084499369465002d377291537de7c2b2a0c211002155e7121c8da7206c6b75a5c35cf1a82210442a0c22ee06727f7aa19810064eb47a66fb5dc78e9c0b0842228a554dbb671a4b51ec1f5666be7116cb92dbf5e6e478bbc663c8f606b796cad55d36acdc235350decc50d6002b9ce39f3a90a41ae25a8ae4ab39ca6699a366660cc356b73fea879d64e1502d5fc61bb864e9886026db6ccd7b4e1de3234326ec874db53120c9367921553e4188dcc0eac40c2092b7e88c30a264758f182156ccc702bcfa42a6ab00d8159792655b1e445154d70605421c46529590184a9c8564a4c00a5949e544a2e5882aa02082b3d010a9588524a2b3801ab4042ad21c34705511885173a7853fc8051289143d7f445c1021cee92a702ce0aa12e0a15d0b049b174a398dda055e1c441e1b44406851525e514506c014404c512548ea08852432905911df34c4a92449c017ed1e4a06a8115c99229c25a6bbd73c34b02a02206152939dd6a013d51812d10b7ec0c74e4a6620b2a8ee8178b880a26b9d677151c036560338049c143ae32c8558a2cb94e0134c519b956980a50d270c1104f84a821c8a7e8051b3041459014a320da071aaae45a6bad95ee40298cdc49dd13dfb57392d6be8ea70d778b5397ebfa6d9c1aac6adf312d11df9c3f5e2f5502f5d68610a8b795abdd48f702b1821ca39101a3f24c826213038336b8445f1020cf241fd2e8ee2da4f0c2072b4f465164a17a5ae10a10477038c1420d9a018b125064c12409919332866b0e494aa61632b8820723294f94c1460b4c7ae206199567d2135fe4a04d907bad1c090289dddc5c2d86b336da98ae996fbd646add2a905a8f288ee281568b25446c16b48fd96b4990be3c11c582543efbcff656efbd27617263ec45f20cca7f7f1b7df224813ca123f428e5392913df047db2f626bbefcd317655e0e18dddf4c9dc9842cd9b7d1d71aa36dae97329b5d23c28ac61247425edec81068ed17cd003eed75a69eabd6dbbd2d04cc0e6d85749dbb011e6009fdc39b49476960f286ba72378fafd23f1a7e49b354cfb75c27b9a658d524abd27f01a48c67c68760bb2924170da60103c1e53238ae680415a95ae69ea9aef9ab6246b55b2f68f8eb156d61a703348e2344c53d9a0ae7107d235e0b5e3aed96c508ff1c81aca03df392041e0b9300cc3f027b092bf8320f78edea33ef91bfba823813cb9a36dd807b4e570304f9f4ca91234cc99debf77efc8d6487fa8ec091c6b25d5afc65e37b1b6628363af4c29160fe7d4bda7c63967da4a53571c5004d0ec69b1d7ccd3b341bddaa45e5ff178e74c3f35ce398322310ca8e499e40495ec04121ee8aebd62f1ae0599193c093383e4072cc0f7c9df187b0ab96bd01b7f3f9fdc8d3d44f98e15077404daca3ed8eb0d8b2c782342864a110d3e7032c0db0e2d3881032773028873c1891f339c90dd2170c7c675823734b828f06606e786958d0d7cab6c4b608e0b8e09af9e2003896d0c2951905a9064871a90547084b93c939080907ed000859861862e06a14f0816945c18983c3568e07e9eba20aec4b039dd20b05081d6840b2249061bca1fa42076b8a14c82144412262f28156599a18481a889a6abe0b8485c95385410471c2f1c01c7d3bd010e2c1b15cccaf30938be500207159705b895e713704cd9b6ae5be6a609255cf24c6aa105a416bea42d80be16ab5755d5b853dddd4d1b15825f7b5d5f0eff9241c8de345b6f6a574abbbb5b1b67bdd7dad82bd7ee6e410180a6a03516e77df224ada65367ba7d346cf698ef535b6f027b551527a9935bf2a8d9dad44e0d6529cd97865bc7172663539ba3f6194a406bb5507b7b85d599f9edd6dada72a1e5421f753439dbdcd29c5fbdf7c91b581f5a94d5aad75d6ef33a59d52eb77dd60854aaeb3a246e6c9ad5eca6751da99200f7fb54088110e05cb30780a635026bc7566537cd89fbad950355614ebdcaaeaad5aad75d6ec3b9b9a9dae536cf1aa1528539db559765b5ea75dc76bd4eb671dce65d23aac66d9d358275966d59ad7adde536af9355ed725b678d68d5ea755cb7bee02e77b9bb699685cb6d9a9d72dd68e3fb3e50bbdca6d929dcadb47277a691a9b597ab53b8cbdd4db32c5c6ed3ec14cd6edcd5ecc682d534bb4db99c66a77097bb9b6659b8dca6d9294a5012baabddb8aeeb3cae081391fa512272d32873468869e3dd238fd029473a22bce3a4f37d1fa8cd99ae2b01e7ae820743123adb8756a809fd6aa59736b9360c4354c5b9b9b9b96118e6680fb954ebf868204a0280cf83666622802aa123cc1fdc8fd01fd8af6d4a4e81fa973b427f3652236314c989fe44792a24a173c5f517365f1a05aa47e8085e6b853b1ef5118a005a3447e8230931430768b99234caecd1471d11e572f7d20e4597586a00e5da7d823dd391b3a2fb3e125c76afc7b50ba207a824ec17eb8a5832542402000000020316003020100e0844029140980992e27b14800c709c3e6c543419489324895118c3400c320620630c00c01862cc1815580013595583ba6c62d36a3072c29d1ec0353c9eb0925514d671fdb51a140d5da71ec7bd18b9a20721450af5fee3f66168a1604baf9f559e60a67a16e4cbba9967462d1bfee7d9084cd0507a5df74888c7c6a6f02cca6ca88fad26ff2c552ef86fdb6b45305adcd3ac8a4513120742e87b40045b6fb83b80c508b1ce15231918481b3e908c2c73037e020475cdddd8c6d921522c6ec69f86207d5bbb2cf9853a9725595ab2a34246d9772f6b0c3354639bdfed01aa659a1894c340db9ac11798da3b29ffb2cf83e9a42bd994e273fa15e69dcb9ed8ee50bfc943620adc4fd0c8814d008b1c55067bab68601dab349ceda2403ed29d4a221c2d703901f2469e81196f5c19ae6c6505c3e280604793393e0676ad98e3ad814da83cdae00e4b25fe35b20cac5fe38a76676bc41c0a4c7680515640ccd67b283df3e31f52eb3215ee9f3de8db1e90792ccc7486a2752f8b14dc6a50a312b9ff112e0dfe0ebda20a4f610bcdd8cadf64498f7f510e60615c9b0338140616b9002800f6eb3526a42c67365456e32bffda56d832793300b249f24c5353943a698468de103d3b4f2cc9199acc1b342fdcdf100ba31256d7285aef1a0d7754e46ab608cda160afb6880583873528e3457e309ce1492185ea350caa74b06a9cc7c1c74389210fa553eb134b61581e480ed723de3225c7c16e0ae0ddc6c04262e01f6319b272458ce366382efdf0c522b2105a91e7f513340e7bb66907cc1d429650f22d2478a0b68d6189abb119ca85c7c8670d36c3d0f09659c8d6522afccd3916f2cd907097185376a50f27b99ae64e9132c7f536c364bc064e2708f64af0f5b2ba7eb406fa31067d04fad1e1a5667af0739a830b882d42787617cf0385f09ef2c271b8cacd8de7af972b42af37828826f427ef6e35846ea8b41d9145f8c43fa1bb620c1ed96cb92d62b8258267f9811db5e8dceead7e9798db61333087852c829675c224d60b6ee78310bc64b001e28276a9746926712ff91db549a041bc1dfd3161a56c3bc00b41a76bd62e9a700fb19b680cbaeb5cd5be8ccfac6da8962d43511cc8043da7a1d50627ba1c67c59b6e1a76403e5f380cecf8c4be755283216bb8c79e691eee6079c8132208bad7259d830d9ba2f20d1178bbfe90028224ac4ac35493639c0f12cde7f61d71ea2a4f28c3cd9a4cf07269aa3c1066d37c6ebe81ba8a1824455846101060022b0e3dbc81db3846320a19f86a379552925fed6606627617c2d69d81596a6b161bdf1f4e46d4b6ad66be64c94ba7300c90e963a4f009cf278223c17315ff885128c7ef4528b18317b387da22e1769571abea2b3a78412ccc7d0e4782bdc262d38406b4c270b6382c64db63782a3ffb192238653e70212b33716a9bb855efc82d562b014d54d13db3289c1581ac8a88502576b4408a950256b2d40d383ed69eed32a286e7992ee2b98b9ee3307832ceb681e36b8bd24ef402442e1897538ce441bf17dedbbd62a0e81b8f456e90e598e29ea2f92884116d02194bce9fc8aecacfada0b2cd3736ce9176e80e475db78d03ecefe53e0b5796356aa02b00e071b57c98c5cf75fc19392e1969d8e6ca63b343e24a05cbaa9f713a47c624e2c10a22e3174323f6f493fb9a3ced5466c191f170c90bdd0f24941ea0d4c8215d288f1b486e571a195bd2c93b406a601822be90ac7d50236c23c38fe6ba6367726a24902aadb753913617f230d4e9001338e5f52b54527c05ea71166a638e7d6341001ca50ee3f9299aa5e83ef8a06b2bb616ae8e3a37781cc6feee89330c48181bee1b2cf2c60c03968e189b38c42431b1094782328c48840bc0f039e545b08a81eefae3ddcb674b8a3d272f61d0a57a6ddfa5fc2227f2b566112123ad30121618ecaa3e5be82a7f5b52e42cbacadf76ddcac796883c5b97f2b06dba0cf6bbdfc802d5fe48599d52f71e074b32db10f89d1b7fd62e2584460c91a314a8b929558cfcf6d5a4d3d8c5d7abc24176f312ecb3f66f765e4d6f6981dfaabd8fa30c829a5c24042e612a9ad27455cb6c4715e6a09add0cbc176cb35e81de1686baeb94b50d9cd0a4f3c23c0066f1df12cbe8e5bd52e3b302e829941e36adb451bff0b9c3bdee8af43639f17a85d15f0d96c5162b202af1aa3d26c066a9fd118fc1ad4a25f52b7b9559d7b45374c29906bf3291ddc495f50ef0ae5a14c45a250749f5100a33a0189c68c53654f9dfa214cfa352c7ad49b854da51c70f34da1ce657952cd1caafc58f6021616d1fc75cff6be1e103ed20c076e1fe284b1346f70f0b3a3062bb83378c87f73707f66ab3da77510a6b12c071b25493c1ad748d717bf35774a3f5b0ea49d64ff9789a691adb6f08d6a82e2256f97dddbd0299187f56e5e368562a23d1bda75826f24a9574c811ce32f18821df840f9a3660c71f31008ae232578b6412fcb0cc501f85376603dcce58f7e5687394c871ea2cd178c07775796de20635a338a1584b7c10658e0391dc957141498e874baf203e3a98bf1f7f04c9624ab40eccc38ddce1f9e8c8635cfa89754b7aebbcc0cfff63e6871d843c721172f2a228c8a22509c9245fe1b7ca5490deca4416d3d3461484852a8b57af4e3c8d53ac97eef6ce61aa4912e26c42e102f547aa4ea5421786237a6a46bf981b095711204ff4f9ba44d0e8937ee470b13a733e238b214beb14d445a06df784a25bc80738b74adb2accc81ab99d139083c8364227dccd7305fccc276683bdc2364e5b9481589e5003a47d7fd987f60834dc241caa5cae256a8d3b8a6f0c24ac07e3220e308206b8404340af2c71b199674717285e4e05c173f0958bdf2e4af528f8dfffc41764df6496483138ce76ed0ae44a79afbc18c4a07f2ef1a2d67341859ffe7fc6249513f1be05ef142463c892b088070b18682d4f4596c9bd8e896df15a6f8fc95ed5aa842bf75df4e9d9633a22829d552f69e71ad65244f61093016781d64fa7f05ead812aa49de30f5556f7ba668c03df913f100f261c3d77223994d546caf7ac498126c25e7a5f1eb3c9e396d914c674b9b1f71279d9146819163d86318b430c5906810800181c64a0232e956065f50f8aa2060cd92150670116586efb61281363b4cc39096f7ff50b8f74355516b1c8d0058841f4ee840118f81072c57bbcae4682c64acec195d7f62473ce2deaa6c4356f72abfdca6beb3beab99039fcfe944b698c87ec2ade9d3461818a6e66113b65c928155e2cdb61f11d15e8ee9ba0c25963605488e661a290c1223222bd29a4b34cbb02dc79dd5af47e0ea31b697d6bb6dfd758e0e00b9c5234254785b4651bad7f5cabf0b74ad1682c175fb636b528118db9a903f39215162d12852957426388452675f52e6e91c8ab7b9c6ea28ef7a800ed671c034544bc1971ac2570a32eb085d9ef9ff0934fd12098c172705c387e686ff9702ef3ddf27d0abef8722e1b0f1328e855f0353bba50f46021a9281ad48eab4f4bcdde60d0cb7850cb42798c325ad2cc06075996c75a2ed4c723a3b5331b1c44191e6af9501f979cd636b3c106b9055a8f2b79288c27f62f2eda3e5094331c48e47e64e541751cfdb454760d82428f07bb4d76c7f6df161321c2492aec55517f2256a7f988618afefcfdb9a97153e2f7810a0ce813a35af2e868ab9080dafd651f7845d7f629d91a073ab0542069f86478cb86e5e0c00b82741a112b01ed6b5f4cb0fcd73db7402f990c99ecca100cb69de7250c862ded2111a545e4c87b12140b6a0af03b9cb69a3c166370a2ed992c0cf43cf7b57a1e8208d3091537fd518a8b45f09cf21fcd507b85f24195d698b519c95420355e9e1b37d6ca8c09e56aba19216c035e1853c95324f1676a046aa163c0827d090616599733eb16f835f56071a46a39c92e663c74a88f4eeb04f78de444011cabb8474e39b69ce0355d105a5d88243c3a9c4ff4f519d836f054d5569f6490138b840d3d6cbd7fd59fb7382c3ff6dead026484a683ba765d8e1ff7c3adc3a3131006eb6fbf8a93c479f072344038254af840ac232f1bc3e9d525916e25f7f7caa2ecbd5149eb92cd37517cd14f7a99a78879fa5ebf8523c3d1010fa1595171a3a61613906b4060c0238875c033d82288380d6db9c36c3d66594ab68a92b663512564c40ab3121c936bad8184353fd2d1ad7e65ef079365a617349e720ac7f1df90e0263c847bf24ce676ba8462d0973aac7c33124ca75fba7c14048ff25d4c8fac48eda1979ee28c8b9468e732bc409f6d522ffe7f2015f36c32e74bb9bc7e4eee94a4f80c9d98f83b0c668cab0c977bcace5f1b65a22f69b3ee29cbafbae10a41e42f979e017cca0ddea3e9dc1bbeeaa46fd62de3ea4afea012b0366fd19e2cc92dc7cf930f1e38c043381adaa704b9d27cb9dee662a9c1249646d3be6af3d49b9617d4fe82fa1d83db79e126b49a3f58ded48ae9b325d3bb6df459e7f62d06eb7f892905dc2423f5a6ff19af2b808d521d83f06badfaa1afc7eb18462c51a7ff4a8d63b7a43e64304db5b8bb2b5b83a2b4cb03c404c6ee2b9609a9cdcb5cdb7540b5c1122961e92bf7672f02f9c7f368960069da47638b34cc905b59bbe370026340d2d5edc6a09b10cd1d2076f3b7a0331d177436973bd28736d91c2fce8952d994e414c9f941ea5f2a54e858f8372ed6a566c8157e89d19c462656b4c9e6817d9b0f4a2ed91db56a9d662ba966baa410f2a74f69ed7ab502965fd89eb44df5dbf8647ff7b2be5fb70009605a2c2949930dce19d45db2758d589f427229a5ba3131307c87c2642c0b552a93845fef333075439ae4c5f6bbc486d62580aa9501ca6b943aaed6e32c5c2db6b65dfe337d6198bbb9419bb72c0cf6aa8d663c0062200297e89969b46bfd1472ec64928f6bff6d8def1ce7cc4556833876f9d5bf9671c1bd0425f8137860513f7244c1c4665bf1030f574bae7d83093078a1f25a7a21a194c1a492f7b5cab0d6baf06f657fae1470ec600ec41af130e3bfe6466b7838474665bcaecb71f0f250ca6f47977785ab7c1990614a12fd878a810d432588e45cdd0897055b95a0bcd385fcdbc15031c046c185ae52d321032fd7c090c15a3955c728abd3805b8d8fc00a4d5d147bbed00a7fb884f2e73296e8b3f6a11918f3c2b86771210c9da98498a75e984ddb60eaa56e963989f841a8df2d7d068b5b2bb8a725d53c76e73213a1ce1cddda91eddfaecf12a8141623b15cdb535469df0dc996bb91692f53bf9a10feecfeedf653bcdcd0f4f78029cf62905048510e1c8e882f9b091bb9d12c0dc5c08d684f4e2467995d65341200b8f9413b24b96f1c404f75d7e74256b8fc0c545f17fa8b9e945370fec99a02e097cd85a7ff2c62f0c733a293d49f55b260dce491a23f2b01f66526ab0e25f53ff2ad8d194a503f2fb5a8aa159a4e7647ef1b15c92f8b45fe27c8ae405580950be995392ae8984fe4976cde7f51e7d74460093d9892feef40687a8637b8cc976487c39f1438ed1b4c4b6d0570b8735ac74b742b379df3b3ecf0b38f24e4c1cb7083167bd3a113ae58ac5e248bc1fd75bde3a0e915370f1f98f527bd201f9a800b4893916a1e65cdbf3509b60976d9c50f3ac3127582d0655d8657e4bc8a684b71235d0fcfdf1c9c56807d6bdf0a1b4e4dbb5e28a937ccb530309588f3c8684b8a180a8485bd7e1e0b837cbac6088818cb8eb596fb5a6f276d7b5a1816e3d27568532be94bf053d45e2b3f113f21cdadf093f74931dba8e9bd8a4feac54033499d4e9ec316ced98bb0a4ca06594ad74087fce94e8f69c60fdc87eeb78ce5f0efe0d526134c461cd95146b50b8fd13f159294ac7a3a79345f92eeedc9091a9af5ab9b2be9959c354f965a441d14d91b5985f6215591d9b0b6630d7681cc28509309a4fab60385269d34485881d0b82906d2f9463582a050e7d7d98cdec7a292c4f1ec70b3a94cf36ce7e11d9d53d6ba50c4ae43017d53c4cdc5184e6df438b4e95affbb508b595060a45e907e5e76303cc8c47a6c6741612cf1b4b8ad41208a6d1ebde502c1fde3e8ee6bdb8ece0c032a711d4028ad9b34bac72771210ff87148d6138b3511ec4bd17c9ab04f8af4c9c4be8ca991538caa46adc7e8d287131dd7303f4c09a263a8f286221a338cf5a064ce6112aa98f549958d34b8742ac97e422c2f8850b9aa27a2720785324ed56bb3b26ecfd6eb6040b96dd196d2a603c8e10c208384e759daf775ee0a102c0bf5c7901d25000659103733a96c9676adf5e58eb3c2b1c54cd7479afe3f7be1048785fdbb6f7b409bf8e83872a32a23ac04877cb7445e7c81bc74707d43bd9027799b61a3c337fca7f3d7fbdf3d3881c982aebb7fb9c543b991f463fe540f7b961bf5b0a6c5e22f05987054cf5d3d24dabb2e8e3b14d54543462c2c5903cc4ad5823d1a19afb837f0aff74fef2f76ff6ed87b4feadedcb40dbe54a3b192eafeeaa9098f57320bb582c76631217cef1d9ca6c82b3e3817458854894b93fa0162bcb0d48b9c8548d931e25f9f110945af147f51759f4ed1297da98137b57f2f0b52adf653b485b3d17d2689f586628e1d8067c2e48ea0038663a028b21408c2ece035b2d61e9da2dec8c12a060c7877033e3c0519632a324ae034d754ef78bd0c69e56527351aa5e790feda91d353926074a9dac8f47293702856847163365cad620a6d2f76b51e335f3bcc6cdcaa8c14a374f0c9cf335b7591742baa014e9aee1bb9935c6641a08f90bea8cf0ccb7a518ac82b4d09d57d949546db4b8ff7603d628ae01333d1111bb473cf00956d4e0d695cfb78dfc9349c6723de7d694d80dbd17d80cbc821a87104e8fc298690cc8354da5fc871dccf4582118690a1333a46c6c1a457ca457a6bd1cbf147522215641566669ff9d892ae0884bc1a9ea3dd421cb47990b059709eb5aa820eb2a772f3ac847439741733dc0b0c6c90d0444a51c56899698fea5c5857f7b00ade4ee1ac1e82f1eff38683ec72f35039469b0a5b24f45362a753205d170b4b93a42308b9d0431fe0d30deaa1af681f79b8f1f33f4bdbba4ccf7e26aebeca99c025afd392ac4bd53039890af265e2cba88d4ad9f34b49aa0041448c68443543a139b50009f82f78f50ca79c4095201bc7cb11bbb51604735b1fa53b4c294415909af83f29c730b5ccaac4571725eefb9a2446aa96913fcdc7c21a8412345059d5759b1fbee5ce1e48c6e23f2fe909b939489dc718dc19cf5e18fdb74c1e85583dbda9d9eb2d9e02f54a8ada37fc834d258ac50aad53b641617fde669213f6f755b5ce6f5704efbdae5a9ee85109f5d88d9a199a5536d307837a510ddc7504c266b80edecac9f5530de83349eae4c9543f9f308a6a80fc77d99714575d2dedac81260a4f25e91d4c80da4a569f8a9cf092e89ee431edd154278fbf0ca3377bef12116fbf457091684c9d02de59cc4f1c865bed9ce73ce6ae7370b866cf2b101c0e4060ba6df063c339592c31aca325132a9ee0586aa3c7a51d16f857879144357624e3802b73bcafdf013249cec96405d45371642e8ed483893b173e57699626aa0f10ef398aab641de6c45954d110dba84ea7d2503d54b2b657a3c0363a657aa9c4d1cbca1c36a2d26b00136382ba127774064e51741baaa350355c1d15b28cfdf9f4c6d3e1a96ae1416d14ea54fcecf2892463730360f7842a8557c6234661ed6f48d40f09af62f08e41f6cebeb282c3c01e2fa23407cbd873bd45604944a2eb2cba7f2b013454c1ceb0367b24b5edd315978be48aa98926358f34c964f3fc899dfc1f3d77f9b4195e8662c3b74c18a90d62eeb0e20c3f4a57077ef5553bb518100636b25ed4075c523fb130f1939f19f9d614cb7fb99908ae31764bbc24eeb0169dfc441287e992552d45c8a464f0063c706917e745889ecb794104bf0288abe960dadeede415c7c9933309f3e6331df10e1babd422a83d8446c4dcc38595e4f128d669b13aefa0d0482a1c6c8cf10a4c3892fbfefa73c6eb88ad427995b143ef90188694ab886062021b4aa8b8a7c849a5f3dec45879cf73a2837f6d0ddf62f1d2340b4c08d1d30e0271c13cc649e5b78f2db1c90c6f252b425b850f1093797c81ad8c350dcaec2d6217c40b2d769dd9652955047310ceaacb118683e674789b5dd4e5e95c88a464f2eca9314933b89981cb486205d0963ceb982745a6fd94b98187d7c555e18c8d046e911c4d5aab9918838770a75a3caca627090ac7dd8a7687517a57abd94473789d0e2e23af5bfb3984441635a70ccba721f846c0e4c14b4faf86efcf63b97b70ac51fb395748aae27590dce8869212ada3f27f4db6f6745002c7218f4960d8fa163720d44ad8488f6f535577116cbea76b73a4610e1af62b728a7e43398994a1799c179a8cc556157c200ba3375cb22305655d1cf3c66e87632f21e179c98d9d7c7756be7dff075eb07c9e44fb9f11508e8b9f29df5a7c32029f29c98b8fb2a9183132571c7e6cd32f1e6f4bc5484b5e40cf20e2cd0293327dc100fc404f029e4b07422640eb999629c8cbf7dbbf5fb1d580a5ddb96569bc1f4817b43f0353821e53e24a986c52e94c06bcf800de6c75ce68aab1a318d52c6f70fb75f1e7aa235025654f14ebf7147966794f7048a3a57251ed7582ed686becfbcf8d99f526b14843ae82b85815966f341c755d84b1a186736d12dc843fb84502a0869f3a2a59eaca4dd596207d51c4e887004265acb3358b0d045b2640ba24c53c7ea8594d39bc170e9fcd601e06a48cda80cebc22436f8b28f94c674fa699694155804f74e516d7ecbe5bfa30fcb992259afd67f8116a2c04655c9615ecce14d0c35391d07ac966c85783808a2074132bcdfee4815222b40baccae46153a4b6ca1e12c9c02f76e152b35cb1834920bd961c1d9ec9fd8679c329558486250fd9b4b06b492f59961379fcbddfc10f9f9449afde5dbf906a1c672dc47e16ad2b407565d4067ecde67196e8495600c859398f41b23713110e72d6798c3ec2f1536aaca31176d1d3f0cbb72883032037b0bc12f2620c68d52aa5a480a4122c0160d65d3407bc8424694ea2df24bf3f96fe1509af8e26b7aa13af7b59e793ec3c9b3e9a9012d69626e631df1c4bd8100ade983e368cb541120e8d819aa6be52a4472b4429e83cb6e0709a0c27e17bf19aa8d65831c63ece808d11b87e0395dbbcf97a6fb98c8db3ec1caee28adbe168c7fdb959bdb35a37efbd95279c80e95c5145905ba595359fc1a76b92090e3c7138ad80cefa04a59993f744361809aefae42e75c27a531615e2a76a2130a44bb9c67b0512a6229165a72e0419a738b872a07d6971cafae53018d7043231379c4d3d51d7358fb138a46f9df7adc0d4f65570d6842ba331fe91fb1aa72af27df5d4e58a2a6b68e7e744f271d4e547f8035e5df86d6142bb96a331264cde001ccdcc52409db954a0f96674131fe659b7c6e21c14ea531d394b31d46ff9b02984d793ebbd79a01b130f5c90679ee3f6c049e4fef7a5445359f4136fef0dff8003d4fbb8d88da5d4517394553afb980b89a188b8c7656cf564c5143e33345bef33fbaf4a06d2e04ac561f6663b7f5368ff2ad6c1b2a50b2bbf760d3fc954144177f8a141be9d70001de6f5c6a13ccec4fd97f8fbe34e9f1924e8a7c31cab20d45e6960e6f2591371c6a42aaa0c88d4a74af5eb3f999f6172db3e156f2072969b1613c1f7801cb6cbb79e29671bab6bae175de23049bfe766b04f3cc85e0460c6e5034f2fc5692f16df34667bd654aa55f1fb5e828b3c650dd8436d06c418c365bf831afbd5482664f868ae75aaadfdd42dc6f095d4de55efb90bcd27e539764ff3d01589f008581eba2609d3c61786e9c5d56fb17c8946c33d10d5d0163e4e591dd310968b4e6c91ad5cdcf94d2449d91750c990aff9085d832526febe61e31ac8a13ffac2b177ffb19c87817d82b1a5cfc8590d26a8b85dad50379ac431fcad2b936db01dc310555dd860a5e6fc253675547b0553007ac808114b09e0fa31a7fa1c65ee2740658d05d6f4e6df1a507bb842c2114948f0115c18e582ce62e18ea60b665e540e3907a35f2e2008a64fdfc825e8a8909519bda2bc223afd191cf4eca8ef47e9024484b53016fb02739685e3c2bdef8d4d5af8f1dd5f4ddd72dc279474459f99b69324af64b7f2ce60b698978f994cb0be8fc080d21bd8c1d6d1fa7807b398c1da931a4691235db209700a2127fdf444e5644236fa40ab6dcb3f38c4c65c23269f0420d6a602a08fcd66336a226678db1c96c16025e620f1a8cc0c1e8e8f617e5056c5c530255b75981341b1835a2e0a195fe1c6124d01b7fecc85c3891e8619f1362e12954aa328ae4cc73887ed845936d16e287c88927f87afb59e9b71b4b7e3bd387cb3e432ec644269e8ed9a5096a053124715d0f5be173c432d3b811abbb3836ed2874fd6b49f4f439cac6e10e9f3263993ee5c6a2dd8c8e0f9d46a6834f4697ca9c484a572437891a9f70f4773c3172e82cff1c5469ac97436f37f765446529a5a70413d4a294d0d135d8c88c3c9bda05179a5c743a16f44989a88eae06baf6300c393314a537048a783b69a192083ac8ea40a3b66e362f709288d403ae926c4138cd700b1d0a590e4c79118bfc62ee5a8b731a07f0d2a0ee06b9a0e5780bed551df4df52fcf782d6cca8f2693d4d73d274f97c652fb68a7479a00db9e007830ccac769825f6009685f7281c15374e0d396e07cec392f3fce41f056e482f3427c38cfbcec6a01de4960cbf22d35e5b1ce3772c91a381d291229ffe0b34015256a21d4cf4a68094ea08a1d6792d48b96b89743be8b52b272f2ca796b7a5a8c9416a620209a9b800e4fb54d9e8b315121d7d4d64bc96e8eb9a45ffc9d13d1b5733d60c830ec5864cef1344915d2cd9f56e432c062a42ec228bae9328a244ff924c025b5e2138ceaa95d94efb41b70657afd7a70dff5c3007b962eece29bcda05f46608abc6acb6b70d9b5553fc675ad7509d5713f6916c29b6fcfd2f32904d50a433b2368f4f1f504f144c03edc335c3f0461928e7056cb802c5cbc24231d17e66ef081adc9a832ad8050b99a7ebe62aed05030c03e9500770473b1009c4bc29f80ac302b808b21f42a8d442a248f75c9964471fa64497a124a9b4d45299492f2d8d17ec1c546fd861829791f85436a92afbcdc26415053e5de0378e7fc901001cae2cfc2679ec37948a83d2d9432cd866b0b8b9e13a251125a5049142dd8dc94c9476e385928010dde807fd3c380b169d58ec10adae750e0c15e3dc147aecc19dd454c96edc1461e4b5f3bf55db32540445284c84ce946ce5accab635eb7e67a89c3873e61e47a1318fb38e862097a682e6b3873bbf96107c9ae7ab10631444f3e8801d45a7b82460ea06bdd508975368393ced81b23833b2d5ca7da63223d97b2c9cf02df822a27b66999b5cdf9418c3050896a0db841cf57eb0a984d25cc305dbd5c218731508c7b4c0f2db904eb79cd04846dfde4e73585bbfa0e8fcad3450181f71d0b6b39cb63966c681c274c9e235d21bdb4b7dec73240fdaa64bb7973b8a963e0ae014dc299306392f7c30d093334b3741613f29eb5aa0896d7c8cbf3e8d9654c5dc6e1e43a8b0cefb3dc250ec38a660d9d64783b070432f6575586a62d5a2ca31f1296f6d8eaa28c5b922300c1f04117655b5d30981fb41fbf1d1e8c4d8c66487c66e95eafe67e8e775d0ba6b3f26576c412e1cee4b238873e9884bd07a97ca7839df9695fa727f62f2312fb596670cc93bb2f47a7689723ae98dc9263366d59b0af4bd6bc01446946ad6aef8adb9d92374017bcae501218bd911f3a07bf29f57b0ca8c45470c47f6ed40225c7ac4c429dadeac119a8efdf04a63aa4bb37fc26d80951bc7cc7e2b7ddaa37773afd105f276be139abeda097c8c1ab3b71354409094828054582e33532bb0d58066fb7f13e20d5a4a9a839127766fe2a80813d96025f4f8fce080e451adc5ca5ceb1a3fd2aca760bda40c629243f9b9cf9aa14b3c6aa40d21c4d14cd87dfd6528c2f35dd31deeeabe9c1bee4a01ef4d6ec43f66fe84c4700d81c4c09090206be5a3a404e2dee4a6f59cb8061112ede9533861b55a9e990e4354d080a8d2b89f75d5d2e6cb2d893bca11c0913e17697fc57f90e6d967cd3c7936ee4ae434c90ecc5a6006faa0d4d6916d1835c1c2607cc5f62a8a26416c2719606d9ac3a729af38bf7476c28b831da1e8c4e0dde59e667e256702b0667de5fce2936b53b8a670e28336b10ccb86ad66806869e79b98af7a79113a3bc2d3732147cb49f676d7de76fc8a702b98556811b0dda82ddcd1a4528281f975302b9d874d8d56056b524b2c6ca8b01c48bd573887cd6321c0b75c8e61642d38cadd25025619238d3a76c4b6e1723020bd0d208e355eff8f70f9d6de8324ec822151d35d30e8ef1b8edecf9013041a17c1f037a2bd92b287afaee2f8d0301972545614569b60c262cd2dded436023630c009a69db1ac9638610f6bb680b08cc7146680fba87a84f4ecd9292b32e40457c74d0f61f5a39fd8358056bf38db870bfdee1591ede19ed61b32a1bd1b65eaf511b872439ea10c6d26595d6d3ce78b7e0c5368787794d19d3cb8d6217be3fd0eb3a192b3d611cab34c97164c16199e8c2d05be41915ac641ae907825c50e971fc918e2d6ee9c24a4a970e01a1fc00f3a7f63ac0fd416165c02ea07018d00b7a707f10d0a42ff5a55a10e8fd4d4c45cc28e5f4d2347c04adfbb4b85efea9026d8f94d7e44846d0f79cb8e5a67fabbd44417807ad808c9c2d13e4720c7350e72991b46476b96f4e569c1675680dbb4693068709c3302c959ee1b44506ae017efb79b31f6919600bba8dd1ab542dc32f7765ab6f3fad896ed9533ec19e3c08102d237fc9fedca9e8b81bafdbcbc5a2827a774283ad9675a9d7d24604948b922d120d46a6971ed2877def4a04dbbc48df2366de17442443c6e9843eb6ab2cf5cbed9bd7affa59fd59741f8c1cabab2007b06e6ec05c8e0f997e9ea90d2384fc5b490319d5c08a91c4777d3c428bc16224008a06b16e3272dbd99af0015c3e629d5152c62eb518af03cae085dacae5dbbfcff86ea6cbeff7c82c876a209f5daa94727426a7087a4d527061b028251f8d049e3dce87c2a6a433297a9814a3eed8ae03f0f7b9174c225fb48097fbf33fda30257a8891e03a436e24a68bef42ef7dc4273a51709e03b6e9a8a69d76f5fe4bb81c3652b0ad453c86b2f3dc4ff9b617dd2936ed003a258ab70113f82f7af82e21a1839ceea8e3858fd07953edab7b3ade5dbaf3910e81c943abaaf584a7d09e777727fc7c6accdaba3dbc8e6a99a0e0ee3c9cb751ab6985414130137480406c5ffe125f244273823136fb1895e2d801cc915aad3be365785580eb4bca2d4c6c1f4a5a659ba0c9923755aa97b46f2089a58581f43014c614d0d007946c1d419945a579171ad6084a0fef7b8d885dd5a059f609c56c2f99080de3231286a3f70fd875352971ca1ac243c346c295ba27bbba240514b827b040227695402c88bd1556eaf11201949b3d5dfbe48e0e21faec877222683c3d437832f4856d1bfb1d04813ee0c2447e2fa359e02068279e917b2d10e8ce67a442dfeeecd42ede71633363e0382985719be0e62db5c2590622648c051802971fafa5afd6f7d1a2a13c01dc85c4985c5a6ca375d1368f1afe8fcef47200f6ebb6efbf6b6a06ea9666a9347e92f662dc855870d0e22e02f729459fc657bd1de392d87af0224fdbebd54bab9cab4a44630029f727602e123b808f0f271a817aba648e0f6742bc750e225b02a9950c045e250fa54950315ff8c8e22e0585d1ca24e0cc089b3387fae53e1308808181016b0dccedff420f77132339544eca348811aa4683039cc083cc4fd14d3344100c26837772beff0c23b71eee980862dd019a1467708bb1e7d471e5f1aedf4f162addee1e1a5e373d3f74a6b50198be36df3549965333d25ae01d0a31029962f426a6eb7a00487aa7e98803e41f4f32f143e7f417bbe2fbc7de82e6716c018de382e3ec9d8755107c8d7a33cd6a890146ae10a943cb3118fbe7bd5bad0adc89d46cdf814d98326ddbad3d6e66bc7d0c373e4839e3c64cd6f71fc7f408d94383691d2a1d7600c891566bd33bcbd50e9847269ebf9daccac0c1a99749e993b6eb58db73b75edf7ba2ab5b4b7d669b5d761759175765edb0042fffd5f7007365910e5f7337b450cffcfcbdb8970346b84ed23bf40f7c8292abfd4c80e0bdbe6c3b11c6d59b760606aafc3370beaa3630b83c8060547334cdc4d3a6da46df9f30005c523b0695644ff36af4ac3743bf9d7af05673691bad0fc2b6f1ce324696607681986c2699c66040005108085e27f47709919b12f89b0638d731834e1ff36057e81ef740ee62fa2dfd2667399ca8f02a0c1c031988a536f86b1a8172afd5f73e38065be25eb5c160f2a92ee11b54c65effaa0b0dd62855fcb24277e4f688aec82db8f7d8cf05006642ba52200e466201e3b67f7659756d3f6b1abc36c320dbc456206d9390d00e0798f59b26523c668e7b6f4bf7b69298a96881a09f051eaf6e48ce72d36bfb0b5f3b294d224a9c2e324c666ef46e092b6cdf1c6f39c9798746b8fe75e808997384733a1f5fed42cbc771b217d6a946831bdc0caff8964e757a180ba5d324d0b9c1b21ba1a5fdb7891caf142700f98c18f172e785a0dc4458b546bb68ec7678e7e17077db72be39aad28d65f06e8415411eb6f874fec8f467d42b19f99e846fb1a011c319f481de08e3f1b648729805229d0650c84e774326807e90f82b221c6fcfee91836a8dfd3e92073e27a6414fb11b801a442c63ace63b8b19afc0611c7bbfc58c87c9ccc0026536d849a27d719bf92c1dc59fe323444286a607ea51e83fc6af1108a54c3fdc648637fc8c7421523db11ad8f3cad87fe3db53e30e6c2c94ee7c3b5795bec89ba1a9754d82ca9ab4723cf86f8e1f8495af0c3d71dd1894eddc3d21da92d4e1aa44c7a12db33ed7f473d9e4929a5de284f08e51ff881509d583bf5879ac8eadab9109400f75133d34ec96311924c3b622229e2301eb0e809696870c6e80646524a217270d8cf56636f6f3a46a2ea0393525464c32f9f8e7339dafac5ef5ee9d4a503abef06ebd50b6de403669b930c3d14bf9c8635b048edef4d3a50401a37f4d326987fa2e5cbaab9927c8b88dd252311a1f49511a0568ff57284d9b562ffd20eebbe0cb2ac22c073753733f3cfb23bfda2c7267fb12fd82d0caba1f7439d6abc0da80a0350beb5d77bfd6485a4dffe4b132449c2f1cb2441f96fbecc28abf4edd005b3199351b4120ce295ee4ad21a387a68dcb548b4ea7d0370aa1553518939ba384152424e4e51ec7810aa8cd10bd444ea30a32e785e43d287bcea1911f9be035ab3c54b0d6700c263c00541e4abea2a2be1eff48f52cb9f17381b49b56e9f8b4c73710d03a2fbbecee76a3a50f006d530a57a9a8535ac58cc5a9a5d7b94ba85a7ca9357be3dd4a0d5427e52e4ebf60ca10ed5943b4f2b0a46fedf642c3353ec0ac753dd620e7efcf30a6e9f609ad873d2da28012ccb2d2712cd58420168a6ee3e88346930f9b5c23e01d349c3ad87e17301e1b05130777ca60da1f12d5a739d3f3e06ba4f02b12a39e10e0a135acf78157ecc6199ace18cbb0ab6ba7f46fc0b61a359c7fef28b3128e1450a8859c6147059ac76a3c3b3bf174df6b09f5765430e771e7c4b66247e25b88a711cc963613ae3a6ce90089acbec7cae9211436710469d6003b104e34f20ff8c1d5a2d14fb16391db1fc98aabb3123c156914bb35186deb0b61b72ca6a888662adf8efcf3f08fb204b94fbf0eebd282a44c90f5d0aa2dbe1ed6372285cb4119eddad38eae2bd1d23f49de18056bf70ef9da175657e4ad55a0d18e0c31e1c994de14016aa70eff2dda9eb58def9540242d1ade6d0be67e5ea2a25dc72829491a2b10ba58cabe002c84c82fcb7b1f61905f8be3b66a5f3544acc722926855a14f5fd5364df619c9ecb079681d05ffb5893536ad2f8a9bca929ba388b68040a7a5d641d7042a72349a4729653a2fdf6893f58e6af2c0ee2d242b286f5e597e44a5a4f3e1c946c5f1ee5eaac373d5743aa259092b258b2a57d0ba745ec00329041b11fb686eaac26ee124c2220dc72870909d70c76917699b444a93ccd7c26e506efbff71d14e7586a45a98fab033f02267e8472f2235a720846d8238995683a036920f7d2d63512283caeec78e16c799fa99465ba45762908f5f8d6072a554493090b2313927b2648e66cbe1593c78d19f0adef59f24e1f06083685ed33be563e2d445accf9d7994cdad3675f38125b716c2c879e0b5c2992878f29620c9197dfbf6849c1c97149a21fed12541f761c8e19f6dbfcd7dd3e2703d8f22f7274fca79d0cda95a9c4b6d6a5cbeda482df2208d08325a2dca867f4d6420e97b640a983fecef30455e779a5ecf32bd208895b2b2914f354844ce5e9ad76e32b2d49ceb3153d7b652fd32a35cb51156f7aaa0bc8b6879941d3bc52a93364c214b6362dee09e116b87d853b6fa0d093e827c92229f11f8b1aae7f8c5647aad693aa5ed5a55a6f163c4a755b8366a1e042ddbfb6b29f1b51fa9a345b677d09a603dc5141386b86ee3686d2d3a0f61d286c17115448f1a79dbbd9f07ce15bfe5abe4251e9237b35292c61b796b423e739752a8dcc29415af676c2e875ce9a8879baf0f706a75424ab335403221c2f664fa6f2ac3666ecf4c6a92690c0b1a11b7ecd511ac25aa0594b0008f27cec007f465ec6b98817275ca2aa5260be46ff96e2cd2445d9840b4292dd805f1e0db436c2be2f53dd7c469a9032fc6eef2ee3a18b3b504d71f3b574a0cb40bdbf6e5ec4716a11203fda4eacc5044fd86752fccabb1c8ec23693ca298d6906c61fe076f39c5e70ac15c607b0068dc05de61d045060c2a853d8295b276456b87e627de34eb87aa0977dc135a9d3e29cfe4fc386f9c2da62548a2d3dd47018d3d7dc7791342d6dd19146ab23fd39d3586d52e06862b3ce7ac5b188be8f9ffaddb9a4b46414c447099e2e71a0b419f6f047f2c6e1e43690bc2e3d125becd08f9ce1d4286038630f8798a9e8db1cee814a99673b1913d185bebd10eb2e2a0fd7258f8bb6db0e242eed0b1e419f99676c1fd215535477d2a5aabd35a8f40a21cd4aa2626b5020a1205a59e1da107bd34f649dc4a360525c4ae05ed909666373c9faf13b31fb9cc2f79d501072a904892220aef17b9b7f59299e2ed38b76eb049b47311adeabc5dcc12737e0b1a4d3094b49c13e27930572da1b4c5829c9cfbecaa80137406de9625600f072be21fa2f9aeb8935b3f0cab28690a14c79d5dd3c58a47723a6a26cb5390940912906ef7e63416271b2466a36f5e3ee8abfb53d753fd8cb001082ed14f21f453d4313542f5de6de079468987be1177d645f03c69d6b8b3c9e323a468066f79a8fd4f9b518fa4af606f71263c94806ded6d9409b47a9348e7d843bdac9c168d533e4601e2c9af3a6ff4e4d920486c7c9230239e17849fa796937e4bf7f241e8c25ed8bdf4c11e9ea58fc2fd5933e7bb6c272a956f0d5f874dc6007a22d3902020036efbb5395ee6ce44719b6d9b71f5a46c24279a088fc266f9d42b5a71d4e1b9054dd165b0b5aae66eeb3ed86393f8f603aa43ca072e57354fe73029eb970684edadae5efd44630d13e62742949450ca5cac49f3ee0a001fbcdf0e0a309023d3b0a8625c0ecb78de9a191c3ce951bc327b7ed584ba178c0caec1b48d34f1317681c81fe07a06f21a50fc99999eca4805109da8804e023c62c46a6cd863f4f03022a2cd9f7ed3b84781c6eb7c6a84fc47a8ca16a9168cd4aa56053469a92a41686df06cc5cb151ac996e66dd29c23a84b1012a821d1120613560e31e8e9e1c09231681d857484ab645cd14c4e5138c29fc850437e497565dcfb11150cd0944d6c209615d7044db3a2888a762cf70699728481d8f791d09318dcc6ea645de326eb6939d73c2ca4253451ad60895a68eb76c7da635a00ee457ade9b20bd241be4800cda424a8e418926886afaa66db80d933ba45c25be2ae97b15e2b1513b3b6646fd90c950fe58cd71c0cf5c986cd6a70778d0d5fb75d3e8693fcdb84f9b06c01006ff4fa6c4b594a1f2d52f6fa02331879310bde07b87c97565836171e5a0b17d8c206b70df2a1a55cb76ecb0735f8cf7b140c34d01fcffccfb50f6154a51f2dc3f026d99b90a7129d628d0194caa67113ee85d69088a3e91448fd35f9d7f44ff4a5f7f83594ed4ae4a9b48aecb08f0c2bd832abe143c2c7b88f09dbdc4aa18410cc96db04a3a64732a07bfda1f12a23e65535ee4f4fbb24bda3f5cc97a66b0fb0289adbe46600b1a2173be7ae29bdd6793f428b1d75399e7d8e1df1ef3186c9d47f84aa0738a44a2fc4c137cd460d08a709d9cbca28c3ce1a6d11f81a9f1054af79e28e7c7d71d4c2e50b7562aa1f6d43fefe45808c775981745c3c5b734b2688d4c77cfb762a5e3c559e010fcb877a01d905b90147f9617088f2281cc54e3949ac482645f8f65e2041540082d77d0de28f6f86929acc6abb9d45cddef463e2839eb8297e1c94af0e8282ce90af76ce76bd335da4f004db596102895707e1c58d8893ad41b608f36fe1d670cec7e5e250cda9e1230a85bc2be6d6d63e8d41d0a639fcdb7b73e2d3a769f031bcfd169518e5989c04f3e45eff2b028b772c7512780a036a7c6becfe80dbfab2d2a5e1fee6d4b9d0b1f66700120ab888f16406e94ef27b912ed89ec4c12e9212e846672cfa0f203313965eee5e431f9cda1d20b8c2399e4ee1722d39b94a157130674cd3150326c693a3c34b45686c883425a949133e40fa569a843f87580bb35fea19da80406023fa02b5a91e63258532660f3e1d8c5bd4aebc7e55907b3ca7f68eaf0f9e32bdc4076c514f0fce38da518cd216ae35fd08d04e92310a6abc54a74ad601e2ad8d3c03248ff66883a60281f9a8dadd4dc48eb01e06e6cf3cb0cf48b8e1629ac125770e0cf5ee7ca4747b3874ab07edef4cc8a4325c9bd7e8bae09e7a5a880a62f72b850865add24abdc4da8e50a062844721572614542165b5526982580a8960f12e94be44ed23aa4c370312ff16c65fef5a4eea2b7c5b3569e5ec3160aac6504b1adee5282b0c6931ecc32307e63b55eaacd04fa1320af5e477fe91657c15e41facffa5d43447787b1abd9c1119e9cd99b46b6fe5aeb26aaa1e897e1cb7a6c686e10ceda1e71ea937fce75d892b16c3dddf1ebfa1b87c2a38c53a2fc6c5adf268a451d9b1bd2c259b97ec8490d8cfac5de0d0a2d85798647b6e674ec8f78f19d29eb4cee8acbd7995534cbb1d9990ff7a3d39a9f73cef484158ee8cf1650cee9a73c6b832b9f54e88bd63d8f974ebd63a355bbac68544bb5effdf5065e6b2f40731ea42ec01c07c944b7c5d1d8b3c097bdd68e661b86c898a8f0926c93c2070e4dff33f98c56155556db97de69911da509432b89d60fe07089e6a6bbc9acd15538d127857c67cf17228acda64509bb25e951a445ac3106d8ab455f168391f2de1a74968687781638d3d5301b1c29d76a8af4dfb001b9e21f6dc979e8214ed852cd0c3cce5320b441a2ae5a7aff87f1ec671d6218da5a99df226fa3a4b11918d89a2a1b26cd12912cab64aa52b3d29e18500ade2076e589729cd254d96b0e1afe5dedb40b833a8cc7e6f33c8b010e58037f521acd3f0cd5b53121b2180a16ee94210c3c5ec4c0e39131d50299fd500e145a3c1e0631c412e1f9b2cd06995c397557253cbb0186c2792a93368c04b46e97e2fe205db39d8e761bd46de1d32e6200751395417d1f83ace24298efe6e3c0f5a83e2d53dfc0c07be40aaf9a7ffdaf9cfcadc017215d63f6c78d64a0024d758b4b0a4d9276156c0129e91181f6a2f2a5956d1fd6253609057a568cbd704112e554e0bf47140f777ec183a24144d05f1405688d9bdf6000cc2be0507c874feeef4b3dac6f7f0fad397ae1a6886eb8f7f127f585727c904931bbc1a6f88e82b40d731c1607943448e5e89d2476e7ebe8d7563104b5a6eed805bf3ca5b2528e87e25d21437175c3f1dc3b4d7ba217fe7b886b54236345f2b943d7ad25ca4fdcd8f93ca0e218168eb2bc7e5af5fde1779e46253eaaa806f9cc6a08ba79f152e88f771b015160e9cc4d8119085144b92775f9f7b7dbde84691753f974e103778cea7dc5bdcceafbb0834f38301d74f48cc80c5437d183f97e2e3c457091c83b0943721dcf8ca22cb413ce613f65c2bd6332ceb097c88bf117f3df24b70585f2cebb9ae2f90d9115419a4638719cbba0f27f91512b03d968cca16e0611f49c74a550581b1a910e1fdecc0206527b05003da3174c6eb75e14fce9a379fe0f2ecff31c1fae0d4386ddaa97a06604a530dfa2dd175cc537f009399b006b5c4dc6cc9e67a8331481f0b298457f466536d42f4ed4f2a20e1085cf12889a268849d676bf209798608ce5759daf8e9879f4a0c420af1a4ac7d66bb758fdd4388f6a84dc6d812543dd239db6ae8797b45342a5a200f764af8ae301df7276253603ba055ee733bbbb153422bd63141660efa300ee22489512b49f573ea5a0005b4ccee8773d2f92e877697ceef8c283af4fa2c4b6aeff989d27ded84343c8e68826f527073d7dc2b21e10f456015c8708623bb29da718d1e040b39cf75cf19904a677ca44ecfc4e508f652d0352613638e54b59c6dd1f342014f19f96c343641ebc3636af7f996613cffe0cafb2d61331a3f0cdde79de8f54c5b6458c822628a27f4b4ba27d70c9d3b118b92878362d9e380c53ae3ec0aa9d002097a6c4acd77f50554f3ee441ff595299c875adcb809462f3221556ea4552a7685b5d8bf6855c6b46974e12d4e20b3f6ca9a724685ee9436e193d43745ea24450760322eba938c82214c3e4ce56412c962da3c60433d58b65f1146d4f4d2f22b1fe79164643cc974eb8d01efbeb8dc5bdc9dc604fea4c24145a29ea89f732891aa15d0be848e2d32246bb0ee5a0ba07da1c6863d345835cf53b83f5c569f33e60d311dfa1961ded1cf33f5d91088fc3fb2d6b9bd532c9a63a0c9e106e64fea9ed5b379e6f524e41604ca2a60f3f71b1e56609be347e562cea0c045deaf9214b809b805a01ef2c28f272dc7eaca636bd742039e2c0e3963001f9f1b9d23138f810bc344bf83261307b0f031b7e285d2e072c9a440171177daf52a523f98f01f430f0d58b2ad63949a63e0ec5bb229cff839b20de9714fd2503c6565b17072db130aaa6e8c2fc197dd983a32ead8a4e5223e46c507abc85cda4eacca0578c2200ef4eabb8506ccfe8ee7869742fddd141dde99f94e0a953212e8238a5a45d7eb55be90bacaa31a54025abd2539de39089b421f1c59bce82952a76ee0253764da069710817ee3fa7da6a5600121daa4a2bd304a36f4885d85c8a4a82e523c7f69c0c68b1aa06a495ea3e2e76e52a2244f0a6fb80e6c90987437fc9473edabf751359638364448600fbfdeeed64990a5891c8d293f6326981af11324448b11fba821f7c3bf6278e8474fadfe0f0559beffb306949d2d182156691261937e84ba090e25831973a87a3af654b4fccabef1e0066f2407d823852fb112b4b794e8d46c9f3e8630e4f4955a1f1f20d05f1ef802c5d758eedf2ed77402772081282538dc56f4da97c03fb91b281d96559f96822c6f0714c3f1fd94d74abd7f0ac08f36ad8acf45f940495b2e9f8299005f1e128bbc1681e0487e6fe5678a4af30d1b2f21dbfd36e106ea5880427e78502ccfb0abd418c619f2f59d6e20db2209317b2cfa0fa0d5ec12d9481b1b83891b79b8a613f1f7b2e22a1f0bee6e0f8856b087119b76248170b7a04f68568db9ce55a17ce1b63f305feef680bc995001c883c5014ea5eed06fdbf7e7f8268952339a6099d3334fe0e399c951e6e57809ed57a6efd20cbf16f8f7895c789fb0542f2718c52c2559001e870e483034031401117bcc18c6dfa4091dfaeaf531d3dc1b9de4bb587a6e1b423d9ac88f6530fbf5af08d6d7f23f5a378f7e3125e48429413ad69bd25425e9153c338c30f68aa6a22b40690b004b31b24edf30f2c07921ba55694e58120bfc80fd276725ab8ea1b161ed3d83fa7222ebdd87bca65420f2b24f9efca0aadc8cb2100f2ae1f92c50219787bd0fab4f07b0a590100bcfccd2fa974f3ca63f97324a314bc882a932f76ec44112b80ba80ddcb804be80fd91a497dcbef2df09a49212fc97ace786ebdd21938dfc31342e1d330017d13caa092d5fcc95ace143524c2834ac99626cadfe4212b511b83d4aa2b775d163c3d8416e328231b410b9ade6fcbac75f5cb50f3e48395e0a090b529808361a6e0a1197b8b30244222ae56b57f7413faa1d5d873876a20c3812be9bd7ecab06e551155eacf60d2caa5d433d0390a8a26f02e5f2c26f64184cd67b82d0b1f26a295e74cf02bbd311980e0d8ad8353fdf56996d5816095d52380c741e98c9b962e0112121f639d9c2eb4ae8b1cafa37afa02df737231316378b50698490da2d9f4fe4145b7f31d9e19a3089e5c8f789979bc406051e908eaef2a0de0a047fddfcd1dab7f90796e6d7ca8d70f6003c5368d114f6a1d62ceea707398dc512e5061315f7ee0d483a52258fe8680b4e315d910289c811355bd914312251a0bb79c32a0d0456e26046c4ff9b24212093f64dc0e8673fa66db1284311b23a68c11619ae2fa4cea6827b570b92d04484fa88272e5d2567bd8f8a3a97fb50622373786ec1b98967a200bfe698c02af7097ac5f8d59ea0ca1f7b1c6498f4f3e601e62bf508486ab50ab01ba0d03983ee0c7aeea2280ec78802db774de081c6bd206115354fe95234b1c2c4fa5641121a6ec8fc964f6763d28c011ad7a8a295176dae7f0de9731b376c6033b7fd56e192700cb374344cbedb9b28434a3b4bf9f885bb3d7ae25e7413938521be2ed24f55935006ea4c20c94284beb0250be97cc1fa4c05d2f732371615485a8563846ab2d17298ac83b1998e05eaa9dd3a6993db7605e90280bb4447c2857aa0e33a4cc8c6d0b896e9e3b2c4d0f734dc96b17c0b5de9b4c7e65eaaa38f403aabdca42b804aa534782de03cd82dc00a744fb9055e02f4e3e0ccc2d4f5d741768bcf2a5b39c211732e04de5bec19bf0807042b0baf4f3c2b6d13e9388485bfb72870283468bcceae459521dbe02e25a9710d6ff669ebb30112094e1123dace5e2d9cb8f8d5fb247209ce634a5fa2558b1fbc28dff5116a5dd05e9e58d5b9dc05595ace19335a1c96f8df9b8434b4096422c9956f148b5dd586ff1add602b8da76444b446a4bf317b44658717809de460264a9a705bde5be55432863fc1b4aa650daf0f7446f78af3e93c06afd8f812d7d9b12f2f682301881e1a5be0562ed2c10fda7a2f7bb77b37aef71197d321906555269eb19ad955a905c96c9e11bbc8430986bcb896c4c4a03c138eacb5c4075522f33f94ebe28a64ba0b0e014b701e53b892bd13e513b333886fe04c76b4f4339069a9864449a636f275bddd20d3be32cc00b52d8c504822a3880c19e1170dfebe460897607acd0a8b89cee1a24b0126e3c1f3052072c350766fd1777473f4014f8525d2e26f7d2892ac4b9ed46e5306e1d3786144541ffbdb2de4435d318121993e610fa1e4a41ffa7e3f20b55175d7e3da1c05f70813607ec44affae722e1bc4477830d8612c6cf820a1836dfe0e24013677fba1a33668b53f5c80068f02edc0ecd38d76544a6e81cb4d3ac126351ed7446952e0d76fa95111888fd42047fcb1b40560a99ff50bc98b43046495dee39a4f36b1dac8625a7b4d1d5d7dd46c0cef16e875f1dfd8f1f4267b052e2c3d85ae40c9fa08272d8563a12878fd3cd9d8b2b98468d829fe85fdd8d712b8d9d5350298620af703554a63065d1a5b2c970f47a214bc09938b4fcfbe5ebf9c283b2ef01313961e03ec9ffc8a9ffd0188b7494cbf425f061a0e4147d5641ef72e84309a2d0879bdf91f749be247b7eb8f1c4aaa43be282076fb111be794e0708a974e22df55e83e7bef4984985c1e3fc10414f88ce527a2d6327f9d69c5b55e1070ba5f10912ba64ea9fbbc3b68d0cd78b527d8b1f73fd30ce9af6d9109dd64ebce152e499f0bbacfa47ce7cdcd6613654933020f3bfc3942a962649114635c5b1475aa43ee04085065c90893f71470d4623225d06141011af2f5e6bc683d74c62b5aacb2e821ee59154063d9e08708274070593ecb893f05c23cc05f8a6ea9b28126505c36ef30c1589f7440ac749363478adf5e95b2a26dca759725545697ce51dcdc3cbe1756ebde1c3e86a201c4d112874011614c4ef0312335bc0c7b9cc3f0fa7ca89f20ac8c5611b32e56e3e477ba740afe78f9169d1aa66f6c5b488a6cca73cece3bd39355ff05dec955a390ff565b1f7e2bbbe35c06f17b73a33f7aab8a0edf6f5d6c6ecd9c3139b8f70ab3d2b2b9758b98e488a738d9a0bfec875cb63efa08ec4d4f03ac92483d2245caeba5b282651e91e1792970f36b83a746151737e1c49dfc1193e82c703866ae57b1cd43958b8b586f56b0713ace1032d8d3940bad3caf6a4f74b1a55c1dec7cc460020449c75cc56a9c5ce886820bd42e23563b0f6c8a922a999a30cff9c81666e8f1edc2d3325306f05010926463f53d375f78c70710f23f4d16c5c245857eb8f78fc0449dc0a116a5f236c0fadcb7c345d3d663fe670a03bec86c2974bfa564bb2d674c85b485cc608aff578e3d6bc961bf4b52e0554006da7cd6c74351b868d887ad2943c84c67f5488778a92c88a438494f2e52f4be7e923f01e4a74f32302ebb951fcfba6c6c175b35c9b746d8224054d57c18dea39347aa08894b3ac43779cf6a3f2f82f5fc0f99a56ddb2fb64a6438fbe25515a3b1d9da0a5b65724850e15bbbb753f6cae490eab53f44d1ac3d6c161b35729c7c8738bc79db5aedb5ad223d4a10f0a9bddb13db4a7290f5427b47178d46f6269096876b35d36f6f54a20856dce3da0e7e08d5fb22a6aa62943d52602418ba17383334191255f993a209d5ea6e714a72c07956129aeea2f03039cad1e7d23519a82c1a212cd36a4e214250c22c9d78f27f0750bc55a92bfea16756e7fd5c948819a3b47873136fc2384cdfee40bda676a4bc49174c77193291437b8d144cf83cc21108a21b9a88ea89a8fac9101f697b2797e523c60d447b42f708e03312536da7f86b8595edc6fbaaac76170356ae53cd1f5d05c11ef36548280c1430cae411b137a7f26df714fdf35a6fa19107d35c3c46350a7b67789481fe07da67be0f4c1e0befb840c9dd8bb7a284e71a988fd2863e590af78ceb183822199c81ae89245a6f350568a681f8460c97ca9d0a78f65d496d4df4106b555a9a282838138916261f9179d5b779fd9c7b4f742df2868728e605a1f83274c71296bb81d27f54bc7844aac1c54e67bc68262c18a4c7c2a06ad7b839c087a0128e5fbfb40a92a7c0143ca0c0be67aae01cb24b6c3e192331c542979398a64c1b9b4f79accc89910f31b36e1ca3430a248b42746e29e410e5639a116b8b3d823a29a4c6e2fcf404d341d5b41be7c94a4d37ac7f8fb0aa42f731f7e4ae8ad751cde9eb429fd3c229fa98f2c1e44b0b538be0deb12d29aaf2d539f3d03953db177d8f0672dec02feecb49dca9100713f349e41332e8cf2f339d5e13be254a54724af1977e7004a0c09264464e4292632ef0102fe36a65e77e6a5280635bcb8e1b3664669124a62ab6beb174d386f144ea75a65d21ae382ec94f0d2c0661f3843a9729007bc75b800fd3c2845179881db563c9a37213c1135f29c48be8cf22ece1faf7f82d1d2b7466dd4b83e4652f61543fe2f7b662225d3faf93fd659fd2918638faa722baab9b6d6d7825b1e96662c80f7f25f55bffcd4ddbf4dfe51c23e5b5709ab900b900ce93363f185b764360cfbd9a5a271a3b01422ae2fd2b1a6714969fecb306e52495aa3e31f3e534717b07ed4dc1a5d625dd8c1bc0854c4926b44ddb379c10613a6c46c5ddb284ce2040ced49af4bc6294a42b9cd32069672541af2e80f8f1d2b9f89f0780e2d437ca7725b14ba94ec7ca94b34fe7e591f5f931249c18029b8a88db375088a901d0650d04880cee38fe438dc018b3fc08ca20b628fc6f45050e6c6ff70c55f5f5dd063df17ba4133d4591071291116818d51502d07aab9202c3870daef563ac444da29ce5736cb242023178a1281b536b4af75199f41e362ce1588f260cea215401e11eddb6ef32691d76a37a1e9e4a2019e9df910840833283e0e3741e019e064462403f499916284412179dbee4a1f9588b483a1f726a187547912a38081c02e4c0514a00d93e54ebabc92f59f958feb64cbc1b53744284f08738428d39282b14f9bfcd06020c49666bc8275b8b0172b118d31739519787c3ce0bdbdb424f077fa0f32f635f01a07b97c8ae0811a2120278cd8356fe4822dc67219c2b5c1182e68b659c2a7e07764432061440d2a78788ea92e06b970ee9031b4f6a0dce039741d2ee67c680048923e30ec9640999d929d17e06ef7b865de226d86532cf634a623af5331dea74fae1967c60bbb4dabeb25ad44d73e8cd02a7429275382025ee15cbfc16fead161d68bf24cfe0cedc1c6727d9b15277a1b047f7ea2c8f08fd903523b4432292020223d99b32c26ec74af8603c2304e65db9976f6191a22f1fae2baffdc68f55a5e531ec8253ccd37121db7a871103d528a627cace6a6da4570e005a8929d5cba1388e70a134211b2c9e43b318346b864fa9a8f22482f0473dfcd133341de501f31d0924ccf1243eeca0ad2772012d62cf15f0c3097927ecc525238c6f288b087f85845597e4b4049fd2969e63918054b708ae7015e0b3642bb6c5639916e7ebc52405ae64a6a80dadc8a32a9a063636980041989a4f26a5aedcf6ca638baca202ed57d895c824d4e7c167598c710bd2e79e9f771a54e51d636154ef5f9c56c498895f5e98e419068ebd06f638591848f3724c2e7af1bc2cfad4d7033bf6bfe4818ebf02467126a94b70350a0b0327c2671c256e11e555b7c9d75067cd74d84643968a45f26926ac79586ed42cbdd3154462d7872e25bc90423bb4f52d736c9a60420c915956d032e06a7beede405d692d103f9d3e9c98ef0be340d36b41ccc0cddf57aad9ee50df14c3a1795bed732f2b9c96c14c24d1dca0052cd01ef934bd68ac205d894aef9e9518172232d499802c81d663ff9d1e6579bbbf2c463d48f8a5c54350243c38de1f10397e8a21ba78f8dddad362dcc99dc0c0248880ebe711d502ee16e74bafcb957bc670adaf8182d7c26e6a839b3f13198866b3c504205687fd8dceb006be2e7cab03faddcade80d6bfd29019a9662a6a2821c12452ab25886c0c49c5d3a21e88811b821e0d2dd8cb288a21c7eb35308a59008348e80a16eb5fee2e67b7990e1571a489f40889ab1d30d2eeabe24bb62e4204dee487feffa441512f78c5193c6291d1ff707dcc1ef035d00b9d1c1b6e171b1015c25fbdc0aa8fdfbdd54f7f43d6c2c01d7d169acdb7e2a520b2bdb06ce8cc26a153c70505b510a64f2ddd6f1099fa4929cb35b68f891b06659c7ac7d5f699f96b79af9189edbec23908a5353b0e1184353444c209dee8a76ae0c608eeacfac626e2835e6183392905602d55d527b58bfea4088f0b706a4f90dd3155d25be555eb51b2e67a0c2a2df9e9ee9aa648c376ab76d04a08d300d436dea27b3a188c111e60bcfeac6a8462dd7bddc0ee7dddb7c4046198431d3415c4bd36b52ecf4474ae1dd1975acfe472b855820360c39b5a1e63f6bb5ce85183f93a734a9b848071db293452ecd1bfbf2a739847718202aaab8861e75fc92773b66031400899f241a52c86bb0a6bb70216c88c14ecb0b03e2b5867454c0f4ee9681b2f570f4138839253c73639662ed4787a422738b3e911215a7ebf50678b2c768390984f34c025db7e783436a50dfa17bbbbea1ef79a985f83d3d6f1daa465769d01ae2b8b82ad21c9884ccf642c8ddb99b1862bba0189a51903899f013d0262a376482932ae82ab92104b0d7605965a75b7b5ceae2e6bfda21216d35e43854e57da6aba8a585f183f2bfed2d3fdda7c5ffecd6cb278286e11b7baa722cdd7eefdaabc8ec10c30bf2d36bf22c1e69b3727ebdddb0c853ba0466b324134f599842c95897b901bb1394059ce507d9b4538695154d15426b7d59abd5e4514227b72947d4a8309e34bb2b795344ad38afbddfa173f899aec0ab6ae325374da877a785eb74e5151d05b4b00e18e010c6bf889257063475d2c819b5170619a90506e9981556f5e56dbb9292ac6f56a8e9be2635f565ebe397b8f89b55ba5ff86486ceb55fb8e712089376f5671bb1939c6b64aeefd08c45a29f7f6b15876ab3b5f0320a395dd6fc4c5b45f7e7c05f6e5be3922f08db156ef562fdf66b5ff976221d62424b8610d575a5895759d4d8d43e57eec413f36e35c5199eedcb473a39e9fee9c4e679e4b027154a18c9e7342afaaa0e98c739b9a2a513b14029cb2034ad37e905b301616a903e938f3de942298474d14d934c4e616eb722e8fba832557500021aa572e9773c504e2d29ff250b0d8af6bf782403ef5aa307f8d8faaf698046ce0092436e5cde6dfcd2ff60624a622e2c91842c8de25646f29654a5206d0080f09fe08ac15279dbf4c901da5a6574b4d4857b8531ceb6683f5cd7b9335944274ddacdcb671cd81425de74d908ab846e90ec184d0ddddddcd02104d8f095dc1350221e613778660dce9de47c3f752c2cc52ad939c9aaacebba5d1348312e93c085f79eef369d8813895e24a9d3b0f189e73c96d9c775de779fcd910f314e4f32be72db87084f5d0a7c382288b84817a07ae4818a887c0d2b4417d9a38e7424fc7f644d77d624ce63963a8ddaa6576954ab4bb954ab4cb711ea73363864f273d312e7bdc270633fbe813e37e3ac419f29c73ce399944229144d36998f1335469c1cd6b04943a37054a29e5a8afa0eb46d706ac24a69343c486b624c94ecb88939a4cc9119d1b224c68b02438ad1f273db29817248c749992233af486090d96a45b3f4e7a64af237ce3c3840736719efccc7afe23e2ce7086311f117c6dd06d835b47467c43ccee16cd244436139c4cbccde63985b3d94c262c723869a210dcd133425bf2237da64dda8a36691db6c905145ccf488b555fad5146bc49f38c3cfb57ebae6d9f8e49374a5935e90edaecce29b2d9a6e838ef3aa7a3cb737e7d74ae9f6b14c50164da68977206c53f22eefc6e88cb793727735dbf9f86e390971286934e5c7f7fdb9c337da18bcf75ae55a2cbc431c3b4d1de9c0f7fc32012a67560b15decf61942a2f0a3e17f4d24bff47274a8499320e0e9be0d7b342d103af68973472d3973e3a9f70079a37688be8784a15e72c11d7d0639331970e2d1e389f3c2d357f3f3e3d17eb2e1ca2fb5e08e5ca98473db3f920b488c3a9cfe91c011784a7121f54f29e12fe0f4b9fc0e55e1faffa00e847a0fea3ee8464d338adc05a468717bd0d1e4a350f485e3bd1d72e95d389a1e24c340cce7207dfab6c51324d81d392220e831c65889a4f30378058239c64a142ae139fd5c829c4fcfab5b70eec09f011f6cde73907be00ef333d059901f180a39081c5d1ee4fdd15043e0e883cd0b014797afdece59704a181627c03edd450187b41352d05af910c20203b1c466e5030288e882072bea0d0e913f58f920a558d15089362205af950f36a8d063841691859f950f31363f9060950022b05583723564a60004ac950ffcc56a7292134161074cf05935d81161c5e07cae2e19282cbb63be7d8eb15118ea23559e4459b7d65d6ce6124eb54b9fb4c924661bc5cbaaae51deaa88552ade56af6b5d93331e8b20a736ac92b29d704a9a288bb67cec276f993afd403d3ff24dd31a6539f6232562a49dd02c87b4f6aedf566beb1b87e109e461f34de776477d2fec1a8bf6ad876697f3f64faabae6c919eaf4060034de86a3ca5bdfbad62abe9928eb2653adb9aebd75cf6371f38ee9def866e268b7ce44c854c8ad3309a46ac423966f79cec7961ff9669328ce43604b91f3064520e71fc85f6f9f8ede360edc9c829b2fa0e6b7adb72adbf8cbe93a46f16e0e46a12e43398afa1b23025e32f3f42a7624154f4b2c4e908bf99890f26d5752854ecb0746f8a9e20685078e052b25fb285d4ace729cb5d6dad15a66f6696dcfad79b4962d187ab6166509565ab6b6729c9a99bd10b2d65acb6cadb596ab4f2fb138e3adb5d65ae9d55a1b7a425249a5ec4f6e216992d61941c2e6e892bee451a2f6b24a294138e84034dabee5503db4c91a293b1c7df8aa84b72ec1760bdaf0d26b659f1ce610444ec1fa0e3120a7600d791b86e414ac97a1efa6b731e18428fc28bd93a00c146c9b53eeee2aeb4d275fba74b5d62a6ba54f6ebb67adb5d55a6b6dad9bcbcd6ed6d64a7909dd73211904d9bb829c90ea320c6d71a9b76c1f84b64079c14dc1a5de3e6bd0c9e738850549a90bba9a43059244c8637e945e788d0f4338e742a10d28241204cc0ae437a41557f39bcf9366c698eae356bd561fa512be86494897627cfb04e5cc21886432a28c9247d6f342e66f3df820a760ad646823a760ad465fc391967e8643a49b1a557aae038172c5711c88e37c34aa7dfa10256840a0708812349ccf70881876cfbec5ef1b34ce2de92a1624a55cc8708c79d9b576added2bbd6eeee06191c83c43c7b73e139b9d2397fc13bbc38b8d4b770ea0319882167a4dc515bf04070d9a7db177eb4d6724c743e3b0e7390ce3e379188038d4061080c221a496797610eec9286bc8263f5196e14ccc17e3bbc70f4dee33cea954e0acae7c220429e73f85018a49f3bdb855e415b839c863948a7d47370ad35e446765068fd82dc9cdc26bd0a8eb5ed47fdd2b0c31c1d24048e4184bc0ce23de7394897413cebd22d38d63088f7dee7205d7ef7271af260976efa513a7f1c72d275337c092980220a14178bb38443585c651261a7b6523179cdaa05af59cdf09a550daf59718d625ff19297c2212be169251cb2e225af59c9f09ad5c96b5634bc06288fdc3903850627506c017416c8006fc4ace04e6701dba76bcfdef578a19423212d2ec95346b2eb0778062267507c23917ce3b81b37624451aeb08c5c6802e995d43bc52b4872aeeb4fc746374a4321f649638c31c693c2f96291a70e1558e850217d506c38354ed9137a7f80049954c8991df2ad1316290bb45e477eeafe9cba28382c52efdc6787c30127ae08020da66004245af8122b08e20810ad0f10310aef1022ffec8bda5a6b3fa760c7b1cdb499fdc86a311f18cd06761363c9463913a5b596d2ce29f83907caaffe8542ea8bfc14f27c7e28bc35221bd81d716b92708116581811032cbcc048058a58c209ed8b2a4a7044d7b4db4e517bc2e4d96b4ce4c94f9f249af00fdbb4a5354e8d2838ef2407ac07255af4bc7e404213302cd0840a7c5cf07a228c279f0ea29b9fde957c70c75bfb5b9333fc6c052faae05a710c92153b45c17946c191df2e9b69712d58431119e3b8bbc4e5bf99ab152712840cab15bf992b93afacb8c979655a6171f93439f83a99358a69d863ca565d11f7fea4ccee3875acce94e95c702eb1b2264c28a537cd71f7deccdacd71de711cc7711c3806297d7b954fc10aa42ff7e1c885b74669f3488de338af853b30a05dc7d370eab0a60e0d8b3d58e413f52dee18a4f4363c51977f7f58e413bd3516af1317dcdab34f1afbf401d2aa59048962cfa286042f641286fdd6d8516ed86f8dfdfef8004b5fa0743529ec4293e2492c478a27300f94049013eee8aa39bf52638dd8db9756a3ea18f7a545bd86630dd85ba734c21a3b293e29f385355f58aca2f17a69bde4bcbc5e92704a4631abb5c878de7a2f3a6f5f90bc7dd9791bf32fb16f91b5cc3835cac85a7afad5224bf14991918da4560d9f166f0987d4f074434b0f34bcc5e58a468dda101a9e6ea05ec36b843dd47a038db0464b58634663ddcc73fd68634e585cc03aeacdafe4d627c029925bffd1a5b06a98c2ea9a130d0d1a61ca4da36ccaab51b682293a8db2294aba53622cda145997c0949e9459ca124ec95fc26228e4ed2550c629302596a2044c91b168ddcebace446a5d8e747d1a651d25c50725c507c51924b16e6c6e5258ad3ad154d24d9852b302536a336a2d78516b5e8264d3aa16b74eba21b138d5825b4ff1e1d4e4969d4659ffbc23b1b80c6750c68a091ce79bbc6b0134b5c8b4ecb4bd2d3b6f79b60fcfc90378d57ce65c599fcd3e324d38d53590a9b54a46d628eb1c2753135f46068a355d8b0b177b0c3233833e1ead9d2eee489ac9d478b444f93ced329c70db65105a495e7e3b78b446199fb7ce3255f33c5a3cbdf31de18e2f2de089a6c56b0df04453c3690daf59d17008751a618e8f8686d77048751ae10d9d3bbeb054fc5e7155301082fd8ad78f0619ce427291741ad583d4a2c11d39f8d2ea1757a3ac773d278a68f4c0b74c8d53356fddc94b9e25af25ae3f0293caa3f57a244960dcdbc6a3958445f93c5a3c5d1079c9c3c5cbf49267c9cd779bc7a305db6115a9c5288b8491bc5e128547eb088bb2c5218fd60bf6323e2dfec29233ed36e4831f5b643132c03154f2098a23fb0660cf611095927792515a09a76c07a096f34a228371ca83c2ebad93629ca26f9d2463155db54c8d53e30beb85c5a9130d34bed391306f5dc609a75a89b72ef323f3c48653202231dcc4508453ac841c4d0227c0a2f59417d60ef48223914c6d07fa638acf9872f3293a63cacedb1f3b3dcc44cee8a4c45ac5adaca7dcb44aae604bac6cf6a38d81c231a5f55dcc73bd8dd9580acd3a8a4fabe4aaf6f3d6c6e46a9544919974debe76dea2ccde5a2ff6d6b77034519fe17869d0002b87a70cccb73612c6fef0f685d5289b73c75a7beb33fce43f58b4ee83c5f185f5d66bad553fd646cec80a6ea76d23b55825c386e4b24eda21f1704af234e1c95b4b52c2b01afce8f98ca4d65b1e1f233f9292bc6de14712ec2d29f696247bebdbb4311f19a7aced236f69f0a367ed92b73edad23850368a56b732bc54f8c64e284c4214000f043a72192472f98f067773ebeda3f823e738bfc129cfbf14e806ea2317115122d4f907d250829c089494e3184834b8a3f89cc83907aac570cf398dcf731c7785183fca3c87450ab82b6a5cc7715d08c4cde0b9199c72e1c21c64adda74d2a5a3e28ef777984fc3f71df2e0c41d2793e9c3aa3981b0f8cd1aff00f3380aac672810d998b72c6efef492278b1864d15242275d46cb9af988f1d1aacbc919d7282f7e789e589b1a9cb6b4dc36b7cd8716dbca187794b35a75c2a9d116792e42c3dab2ac1a050f09b3d56ad5566bd6fad16a558e1badd6ccb66e107147dbea5eadcb60f4ca1672a6e90a13ea077e68b5ea8455929966645644668970ecc9bbd8160004608d98512afd7047db126fb4aaed9a333b427b4ef2d3371b5216acb594526aab531fb91db8b63451468b27b09f2fc4dc6819e314f3708a613018a5fc6a5575faf9a02ebf1b6ac85dfe1d9e92e3bea198efcdd39caace35c3b74f20c977376d529ed1e30bdfde2e83766666b0ba9de19530d3ebf0c483fad77c7b572487c725a65b741de300491b383820b6a966255da42bc9e1977399b6bbd0b9047fe89ad5dcab7ceac2a9d6f9faa33a90ea3d7cd893b53d5805c270d0618892af2e6b954bbed65a6d2ccf9ac4154dd74d5ddd5b2557e2d75a6b8f46d598ea37aa7b75b1f268c94a4edcf93d200401ceb71e420ef21e38dffc44130ab9466d0e82420edca44b65de9a743bb8e5ef705ce16cb12843c91da5cf6c714ac6de33f686756c1b230b362f65f8e55c794daeaa35d50bcf351c5d66dc12e78142d9a8f0851f65545c2f66d962f6f990df0ddc03e4aaf3f965c0876c140d47b186a3e9c747659d6842eeb9170eb13661ad358abbf9dd70030702b946710ee242e93957b3aa5eadab5a17ab48301b1b9b1f905898e459624369a33d127af1cc84f8d1ee60d1f3a3e5b1b1672b7b1e6dcf739d4d69f542ae693c07854340151cadcd588974614c6de74403a2bd0fec6938d92810780a8543e88dd7ac68385bb55675ac51ecf79a46b1d6d8da3cdb9b67db7a6e58a3d8ba5eec7687ddbaac4e8b7d82fd836903f61dd1b067afd51acb295574d6d66a59d604d6e78e96e59324666bced700e4c84f4792844749ce442296042645cc878c8689a37252724c639fc9d2c187e5c3ba01c242826e07d6e91c6195e4ad4bc2a9da2179f61a268e76566d21f9e916641e168bc562b12ccbb2585ca3c2b8a36521e1547bcdf951faf8d8d1de60a1f3a365b53835764a5846709e6bedf9e9b5d5c94646583b8598444c1b1e78903046cc27c0d8096d6d0f3b7b80ac420b19cb61734898952cd02c1256551e463159b2a4a7478992244f596000dba9b3d9ccce6cbc16ce8f94b2c636d98ce65373624df0536b95d5d9720471473bf38c702a090fb7a205a8052115744eea4bc7c5830b2ecb0b74e4cfac35734d9b9f9f160fad3bda598d53eda2d96c6667123603326b550db3beb4990d7334e18e7606fb51fecc2cab553aae97ce0b7645cf8f76f6ecd64b62679c923c57dc3cbb5dc2a969998c449fd75d91b5e1900eac6a589b638ae8a4cb5887689f55903f780e41ab84f0556d961c8a823b4ad88c5363a5d1268e76f6ba04a71a516139b8986be256a070c74aabb4ca842b4dda6963d69a51c4b021c272c4d44188146a3d9c32e9e0d2f9e11f2cb23579b7a9db9e3f6611b41f3eddd1cc39670f169925053de48cae58a19a72f80d13eb8e76c7a4f3e3644d1dfb6229c1ed649cda7cb33be19c3b76a755b365b23b5b38595e0ceec8d99de79af39576a2816fccce1e4f1630d702e703f092070b257cf792c70a24ddb1dcc89922a61336c938715c126e67d3ddf80c7ffdf49d5e990205a272e1c376a50b76715c95352aa68696b54a94b12cf446ad7cd1a45a1f4eb5e5569a805844e08443354e519d9f5e41b99a3ec2f0d20df0d22918239b383a8441da603780119e55cebc9ae0e8be42855b41c9a8b1e274a2b1667a172107a45b087fedbc7f747bc87330d7d0635475543d81b5f94f36541e586ca73cb0a812855b7fb4aa0646b173b5443f8ec9adc1f39072174e202cb2cf1abc677ddb40ef4b2f9d010b6051fac9864a258c748f45897204093349af677f74ad9bd4c0624fcb4804b44974991df2706a3f7568437d1e589cd31907373e7f14f26310d38b3ce5db61e428fde91085a70b825f15d73a28052492e241f82a2554e25eaff7de906331f458bc63cda3f88913415480bde4a182cdbfe47122fbd3f5f9d753c0d30d5f5889dfeb722c8aa3114a78e2786011e4a290b2081a8dc4b757ec91bcd72fc78526702a01278f0faeb8a3c3c3c138c5cd786baf4b094a5da7d66f7784fe745c5ac934c35d3835ea46a0f40ee47c7e21aef3c0b1e63def79eff51df26f7842f11c38bfce398a87bce641e0e83d68e428f773f9897c04d6bc080ce2fd47bf03715306eac28ea80dbf2a40be39751008e49c7bde83c68777028536d4073928f45c38e2da2d64edb679f520a607397f3a40e1e65bc843d392e9ca2ebebd6fd4b05f8869970e4d2a04127eaa983dca4b29aae0f96e54b9960f5cebe3c9da9087928ae358ac6ebd6dc8adcce0ce97a78dc1d3e6349c36afe369933f4f5fbab556fa66dd3a0f95da74d62b4f125a2f9fbce4e9228cef6ea97e555cbab9e55803f355c0b8ec20f7fc07a738af8e03100f942c8238b4a13ebbf452e7ec9ccfae3bae731a4e81e369fae6414ccff9698636d49f3e431eaa6fa0977347b1ce502843334c2a397701e28d1a38356566e01487d55f8841408e4dba8bac3969194e5c4adb85236ed76ecaea643871db2f8fdc9cc1cedcf3a91381ba8c9dcbde2e7bf4311c1cf1f2e3317a9c15ace0c50216fce0e0bc8a282236fb54e577c8ccdd3c27f3ecaeb5ca96d38916b4c0070c9c973c6014f996973c52b879ae556c04470a2ba4f881109eba9ebd4eb6a9a65bca188bdcdd9486b12a832561e61b209e5d8509772c3d77e318619147661961b95e9c92449ef9872b99a83471b91c2c5e669614eec8ac9655caaedd534adaa32c3db55652c9cdade791591d525797050cc290420a4b2ba5b45228402a78c2c3c304131c16c278e2092490f8f9e189134efcbc7e268c4629e5ea4fa3da69f74fab2e779b0b5798dcb1fe7cc37e66cdd164d71a7b2de2d97f7e7e7e7eaccdcfcf8b14451249ec70519b024d66451821a6de362f79a650934478c903c691b725864969a4c5627b1c239f3b79ee2e9c629d238c6a97371485a70f490e0f121d2a9098220858d428c12384124018a2964384c7cd2e8e20928406c5932d6690028a25a2480210293801d310879cac1c91840e64d0040b9b2994c0c54d148cd0e4a6470920f082a52297072c340173a20b22787105058680440f7e70aea07d61c3b4b1f98d9330121677824002048b9c2370921821a7e7013f3e412809430a4558dd08ae7fd734314416c460a266031d0cb16aa7e5c0092b9e00c4133ae8c1aabb218a1006153a70c2248a55fbd46915a9083f20420e9ab8a1e960d59e92e48ed3b542c51d4d23b5b45a50baa66bea4c17c34427e85c1f9d1c9b370e802346145992b863a5559a8b8469af3400d0247c77b3b86e8b532357615d5bcfdccddda29556699d6bf48223475cb56977d306420c9a68024444c605edaf5004a538a0b5d65a69c541ddb66dabb7a6564ab96a69a594560a85d79f3703cab7fca35b76cdaca8a52509d3ee13870d55a48df6fef631fc6eba7284bb63ea16bbe8f2a7a76a6020303e252ebbb4d4443f257c14c2d3097747c944af8cc59ad9933aedf9d4da90c5da755a20d8979d31ccbe7ace704e5f797273b0ee0b8564034e4a9c3bda57ac53c2a9510619e44cbf74f0d37348d97da1906cc049296188e8bc5eafd7cb5fe2ab559c7dbdfc258bdcd1be6a3f4ad8cbe6b04ab2ac76e4673db3ae1cda111f24b5243c4a24f55c1e10649c2c95f807df214597176272d4008416243949a7eeb499d04997b1694fa92c75a05945a31c4c0313f9d1b320bf40c2b858cc6171fa37625105350a75cf47eb1e8b25076c7ebb542a954a25ebfd361c876460877c296168a86f4329614a3e8b783e8bc899b9d348587cb1c8e2fcf56071fe74949aa704f606b612161bd6aa96318ab6ac61b2a79b97dc3a7f3bb630891b5fb1b492a7cdc3a2051ba66244c39efadce1d4d8369325278e4aae3cd79948c053bf38ecd764593b59fdb23e7d6cd75b973c4c7cbe5d9c9ade473a8776dbb4ca6f44d68fddb22c201da70870947c9c2378ea964e224f3ddad3dd1b5c2b431629e520a60dea54f8916ff8bd90819030d455a6b863db340ba76dfa666c9ba75df8541fb948ce7c4e7d8a40ce8c60e200959c3a0258c5e2a41e9c4a7114bf4e434edd9f989c583a4a2663ccd3511cfd75b880c46de71ded2aa1929fce225b0197fcf41450b288024ebf60eb278c075a709cb59f9c87a68360d0c3c724328b4c1cf3a9df1b9452d74f29616c38f20b7e4e1c1667d35258a5a7932e9dbcdf107e63789a80a7336c66bc5dc093a7dee30710263ddf6de06973f9d693dd51c268a59556ead99c1b833b5a5617e394f5d7ce0c368b559611b0832edc7a250c8b10a67b6fcc0dd3bd59dcd1bea0fec8e027133774458cba02d60a16ee567fcc6c7ecc66f2c70708c6db5cad405817788209683e7caccc2e4b6e03c9c8a22e9951e0fa7347dfe9da08add5c3cb7127b8218cc3e9a4cb288304c09cb35ba0790123bd2a9d3dab21396297dce047cbe485f5c27a61893e7e907048aeb72d167374be25a7a5a5c5a26dc1f996b1c5f54b20791d7961b1685de57547995a8e96a9718a9dbdc11a3a2c5a99279ce23087fdc6768de67eca64b00c192a30ecc4e092a1f2c27a69e9d4a045d62263928e8e96a4d75bd7d1b282279aea349c463884bb4f5ca681864c6db2fcbcf54ee5a4a2225363950d999f1888c4c08a01a7894d0c3932b5186e623012438bcad462d079eb2adb7c69bdb83835ca68bd7d31c2a9b60113e34b4e0dd7ef70c3a9c6ac51d64f3ea306ad51d6b3c1a5e12776ea40d4ac5a9c067862a7e140d4ac2abb7bcd8ac3d303aad770e690a6c53d1c42bd253cb1cb558b0fa1e1353c710b6802656a1e923bcad4688072556984b25161147794a9e17a21f35b469db73590bc75999a9cb10788bdf571a6f5357c8cc1e6adcb1a5ebdc64eab7a7861b965972d2d3dd40865a35a646ffd06da430dc54659a7a15c7118b251a389f32bbebebd134511f5827a717d3beadb41ffa525a58d25a48a1476368d6a4fb9369a40096de87ce847c27821036d86244c061f199ab08a262603eddb464cc6cd1d654f8c293369c2a94fec7112b3433eb58288153734b4d1f33696482b8ad898d990d988d950c262c7c8b0d81e130ae18e2f2d9dd6bb60a8174f728a654f481363725b3dde9e71a9482e511c8722ac228534b246b5f70d4ad84313c19db1f976144ff1b173cdd8b08a46c9cc0d7b1d8ea5191b49130b6357be1b714719d90d0aefbc64642f03c8c01cc3c78f84691fc00b9ef4eef3b974074d8c06f1390914a789c91e99e99afe05184f7a47001aff35e146008753a71b08a089c99952045a3e7e6ebc8475301e0c015e5a4a2b897547c9e406872238dc509a8401b22361da1904df9f7051a650409206f8c819cfdb15b0a3644a21ec3c12a6f0a22585208bf142fbf57604b0c1d9f064abec4ababf7419e3c90e06ef63428c046212a6ddc74f0b0c8307c3a7636bc100defc76809c3d8ca263e1b0385fbf04f5a19e279fda888d366234b119a7aa7f3433a65122ebe154751a0d134ed59046f681343d2cb6fc4aa384459a253434161b2585869602d2cc50401a194d2cb684e3705380c9bcc3fc9b31487dc57c3af885f6d3993fd1e8364a0aada492ca0a8bdd4c325a38cda051a3c5410e14bae0028000840420a25eba01bc0043001b31324624250cbb953d319a18ab70c06864344b687c689c2c6172d3f3e45bf6f47cc79a30f951f634f9963db5ef9e9f6f2b6cbedd568ac30d0e4538d54d780113f144c2042dfc12d5e3eaf2baeda38b7b9c9a53fc90e7760b99efb56a1872ac9f8ef3d34bb06fdf9ee3d48c97524ab744bcd24fefa794346c4f43707679078d27f9845e34f4fa7eb58fa15748f2f1e28e765e72a6d4d5104493332cef792558efa0932e6368236b78a156abb650c41372a1d6c7c44ba7af5132013df1ede3f7edf3c828e2f9760a826012a6bd82e0ec7207ea489876108b3bb2d466b8e4ccf4a64cfcc852fb0675dc8bcb3ea6d4befd24536a293f24188b6bc6cf378d0f6d2810af6f77145ce9326e26f50e77c8671904ec903f5bc9789aa157923d97452e94e23a0e9c3a31f9d2b79b7eb07c7bc80aacca7ab116a59e36dc395fd65a724979f2e4c9d34b2030cd909b9553d427575f7eedde83500b5f10ae0c42ebc87f4bb82e1c7143b0108cc5f63fc26540e8a983e257709c36847e0b05f01ca76a7eaca93e9f476be7c53c5a2fcadddd300b8311955c4b678e56bb1de18e804021cf743f91e8db41471f0d9fcdcbd1746fa93b8e34e79cdc5cf298c4a5928aca542195462a2b2a2b2b2b2552caca0aca5d595919ad88be9595150f89ee00ace764ec0b79eb8c51ed2d845854267286bdbbd637ac6355219f5459288cefcee6dbc7eec6c7d00bbe3de49233d4bb396faf4eeacf13cf6b56d365e79e0f51827d88e75d3872349f775f58b39a5e9d716a89e4641090f09336613ffd00370718c1c4f1e9980760d150c367b426b5d62819a7ea8c6b153255b79062c37e8623cd2208df4e41d783c2f18638be2053b730356a367dac3fece305bdf4ee4ae13b06828befda93917af05df566ec07232f633f40f10c9e6668e353df591f279bc7ad2bc09ea92061da3b8e06efb9e0bb90c7600a10222885f1a16f860c86bef8eef3e6cf936f174991a83a9130eddf4f50c68824e177d8e7b03d17f90ddfd7f9d7c3e721b9e06d54fbacb50fac352fc99dcfa847c9992a0509d3defec22fc413f603f50a350973a7705d586c0fe42e143354639d9f1e72fd74d0596ca7aa1664f58708cbd68a7cbb2be79b7a71851fbda639c1053fda9bef2f583f5a23dfb6655d56e79ba777e7e0dbe5e8b9cb48d6491749ebeb37c7c1fa8188e37c3c1c2dcff33cce455c085445e0e713fc1c3cc04dd7191477acac5765759d144946d6a78fc0ca84c5be619df117ceb826dc1aeb1a33d2fa3eee45a3518efe40912803db8b2a0e8b5d5b2c1a71b557566de170ea4b1de1d407561c17a7a4ac4658eceaaa3955a79bd37114b0ba1ad57ec1da6a54b33e2eeed64682d0dac72020b8be7a37c3b6598f3aabb83ade70188712bb3e8caa2e8b898912e6374c31b7c5caa81a5389e252679f2ec2294f36c882fef3d3d1d550038b5e4e0d9c8ac51a25caf0b9db0c610daa36c2a8ea9f4b4e957cb4e2a389452412856329e4da088bb58d7ce57e6309c73bda74a09f8ead8d344eac559cc3a8ea957362a2d81d67cb10777311386312a6fa64e9d03131a2e86e32dd5b4be10dc7fbaf12bbb4fa164e5f400f1a4ea578751f1320a178f5209c1a79f58e045e4f998f025216b71bcad18c7d205539e2b24ff768f251d155f51a38af049351bc767e7b978888da87dceba4d39013188ba1d09c9e177ab019db4112621d95bc82c52f4ec231eec1e1258c8461ac84653c631a08c7f5e96890e79d3c8f08ab648f2ce4b308a75af4433e5f49e60ecb62a12570f1e3c4f9d012784234144af221f7267ff1a1c6c187ba3d9f20279a07cd5110c841e0e6dc711e084c42e40c32780a65ece8b4879c5dac1279888db0187229237693b8f19528e49b19724b84c590ddbcf979362c865ca5883bb120673c0ff9cc02f7a14984537c856923c4330c0913729529eec83a1ff290b34ea87a88f390334fc8bb241f0a790776fe7d9ef779e10ed744561839c77195f3cf455bad278e736ec49946e054024e1e1fdcb9c329501218e795ab951b85e3bca1ccf9a872214e954c33443e1281d243e0060a85e86834f21df247e1e97a0e23df7ce49b5ff79e1332ce17f91d71a2ef0b39078eb46b2f140281f6d3c16d73e3363b848e3ae5625cc45a6f18e9a6bd8009f890b931438e2354b8a34bcca45f53a794a70c8122fd46b3d6ae9b10fe199eea1409f9917e3a4035c5852390326a4e3f4d6f1785b2e6e69bc5aee15653e455c0b863ccf420de538f610f1bf439c8bbceb74f474729a55e6bbec1d113f2e437ff44a0f46a7e8241bcf7bc3790e7e80ea4498cbc8ebc7e3a4022ab46ceee32023f1d3762742efb1823af53ce2b9966bc50b2e828139e9f56bce4494213dad1f8f02c0e2cf2b0387ba68c1e7925d961915b392e1e62338b501c58641d58641527f7d41ea5d64ff2443beca6b3d63aab4f7b342cfa60916717724e6e2d20b8d5b7ea396c01a079a8540d1576494d992292000082200043140020301010080563b1582c94a9c2ac0f14000c91a24a72489848a3208851104386186208308000036004446664463600806dd29e44fa2773a85c0e22dba41633158dfd1caf17c6152909806e6d2d0b5b5cb74e3cb306ae3b05ae8ab11ce70be447d92275883ea948dcce501813caf544a155e9bcb52eb1a53cfe8195c3fd41185926a5a7789e3aced3112416c00a367bf84ff79208702a72a5c07a4da403c056330a149a6172111ed112bcea2461c744bcf7a6e00e89f0ae71d806b6132a32ad3af96e121552b30259e1fa3e42d2a7c1480622683f6586eb642b35c21edb57ebfeadb8676afcc09b4d5b541fb973eea9d7528fdb7b063c73e2dfeb3716fe1a542c20619ec1ebf9a925bfe93714181e394a2d433a82ae4578eb357d8c38debcd05aee2263ca71f1f22332e5783ca9f452b97cec15cec2bedab52bbaa612e9b2c251c90b51fc31d3fe01aa1f52cd3b901b7c68e73cba6e19ab578bf180ac45e23f77130c6755fad7f2391231aaebddad6165767038528d3beabf5707e5512b5f8eefab5183405c83681cb75f456e7f1bd2e5c12c35f8284670acfb7179c1e0e0a65b3f017975eb08e343484d9cb442054f9c0b7a89eff2d913d36a00c5d6d3c0068b4178b488ba634ad34279497e83336001fc25c64aaf84be90376b6f13f45a4778bfdbbb56e6c2931183c5b56f605af24bf8341766197bb6b0e25a69d8dd545dd9b7a469a696f9af5bf701b42fe70522f6759722d8b089399b34535e64791233704151cbbc59663ea50935a88e5a367ac0f3061bb6fe760c05eb05c65fdc1c5e1dbfa5b640a93ad7eac058427bd856df5d9c8973091d5d24911d578a51778261faca0a309ef00242d66c145f493c7d4ef7b0f6f624ccc9d0aae53a297908c57c6356a0a35187fa19e9c0ac0cc3c825bce854067e13c1084f30b465c6a8d9d990123fdfa90b3753ed53b3e302d72baf8eff54112cbf881d1e43bc8fed987d85bf09f79bacf6c72f49622c17398708af0589eef249333a152227fbdab8bd9d318cf8965fd58ab090788eae1d59fb914772ce82c4630b4f50b6d18df5537329a8605248ee5c41447c30b2f9f6cd59357d65e142fcd8ccfcc50e9d679f21a607642b727a01ef40f7bac77817ab1d0d38370b34727c6e1adcfb14050f92a7959f7c037900b5782de14a2e1a6d33405bc4ad82dda9a04a789915aad39efe143d30c3b8fd422301917ccc6a1d50df21909b8c2a17d54ee7abff81acd093233afd078060b56d312b5af4955211218d352bf213da89800f141f65ba9a571bb6b2c0395bf847698340280a6e6381b52f22a9ccf41674196a5009d5cf22182fed218d72a4a9191edfd9914ced190ad96b1298cae887d393a9b1de51263cd9636d12e488713a4daf8a121646141a2e4d8c23edf482a29f351a4faa997030218da670c0859c6ee99d0da2a13919789f500175e62957dd8bddbc9eb3d3694581d268877ac19ab9977a4f6133195e0d717aaad67097e934034bee1882a12ec2f978d81909e0388ea3e245208869311f8314fdb6227792bf4a06ac005f0e455d099fbec983ab5677a949c9f73c5031d301c2a58aa84f8357f194d1c8217f9377ff68112422ae9e735d9b4f48f9e3a9d29537c4638f5a7e2e898cf0c11c37a8f1060cf3eecc19539226d1fbe612037e18ff4d9db1fc174a4d872ed94e300923a50b7bfeb84fcd2e9295b6b1ef594585a970e91ee3502768525622ce2c06fc4ad90a8f0d677cd6ecd49f75a7fd30c07a7fc3d1452ac6d4e06c49763ea138ce3a445e70d6681d5f0eb027de39fe5b0b7d3008e1d76994cc119fc3a6b1b95852f2ae6e9f3be829309c713b6c77df0abaf1eaab364ca32f47853ccef7d2625836f699f520853142924525423318949282208838490abbb991db960a0a71f76d88ebc5b60a060f018232af571d9a623c3eccc812ad043edd645e82b25659eeed38d08e408c1ad3c44f433e3a8304f75f530baf151bc3ce9ecdfdd1a04307596162a5632982a0793dba6ad19906ba5618101a6beab790e6e3146090f3342d7f617da94ba44471df5ee20057218fdd63aaed089751de520673a6f7050d4419c88be0060c1451a84e1e46e9f492be509177082f9ee632b31c7e438a7108ec998a763a759fcc8a2a2823d37fe92a3dbfbeb934aac1c115649d52ddff9ab3f3ad63cd88c0c8aa8949b1f1a598644cbab2fb2ff81229dc9b6cde1fab4114f1ecaaa64f9d88bc46fc3e4bb59dee95cbedb8edacc00a49dbb71caf37313b5dc5b324108619bf1bf93dd71e6e00b63d5cdfcd25b576044c3e540e2a3b7243b73a4ff9130f9199b89907b94c9f258443692ddaac6a430f69635b71775f8825231ea0b391d4b79c3a43091506453f73b113e331fb0c4634fdbf9bd1bf595b070fc308abd52d0e3f960eff20eb1774b012cf0895fdd354c1325d3a0ba71185b04104bd55f32754b4b8b07ea23d675494cf9680855534ac3b3f56b9b6569f3fd58747ed9ba82029e3149713fd20f52dfe61d159f256277e6f10e9b7b2ed58ba3973b90bbd2aa12e4f2caa7852fbbabc67a126d1773932f0ef9fab629da27cbf0ce48660dafd9bf53affcd7902d7d7b46cae077a52aaad4cb3ca6b8b8d83b9282528e68da68bf3c829475c7f9e9bae587729e71867ab5369ecba26f97b6523e045ee19c712db3d8a62424915f5b83386c183eb7c1353c8b3985db1d1eb3b32ce9d99581d8c345e563ab144c067f585f087e5e8b4c6a0c916dd1a8c100c14c6d93a7375f70d634cdbdd79b942d88b51b3381fe3b7e406060716dbfc612e90183ce6087f45719616900dfaa09d3bd5895ddc8ebd1beaff6c63179e08b87f33515afca036bdba968b71edc85853dc75025af8a879d55e2e9f748a71fc4a9367d0625d77402b393d8e586b7d81f8a8a3dd5473683145a30afdea6d9e8269f6b5d0b18bbf23bf41a6620f49a1f1cfaa344fa51351d68d5c7c53e9844886567dc789d36c406cb283f4461b10b95036088c2cfda478221f38a998af5de2e40fd4f9135f5639c4afa0c405e8d42e7a8e078b0e4ea5c3e5fe47a599e0d13ec36e2b3cece2697aaf5b28290e47d2d6e2d001b79e64d98e690a06918d435202ab28341166e9622766b1cb8d67506ede01d5553c14253d8f92888d191663d024c37c7d7f90b4fae9314eacbc2230371cce886b89cc2fb45ea977374e2a8b9b6436bab15eca712768d71e0e22c6a48084ea2049c24bed9f115935d9ce615c0db01e7f24e8f13eb54498a4e400342bf569f9bd948f9552e8fc9853fcd5f922a27a6bcc0efbcd40d9153ae451a23ee13c102c49bb5d9b5d9f408c08e09fa6c51048ae172fa5830aae948f68f22d2075906f9c204e4398a2302d38110df827705b49b0f315b83b1a6ff527a543431dd30ea10a106cb59914f372ed69045f3ea59ae3908841befbf356dc2bfe173f8d678b1d993971bc6fdc972bf13877296453769d7e8a21032dfc1bc35e4f03dba7db96dfc78fb360020edfe756396a57b704c21ed69d9aa98c23c59e8001feb97d707b9efcf7b607ffd994cbad633b432621814fe3ec762af0a65535ceb68b9cbc1b3ea643d14debeb1d353296f13d3902eed4391f5bd44414ed8cc59925011f20eaf0e33bd71f66db5b4fc90d0f4873e9a2a345d12dd5cf7b38aa46d0b89315724e5917ca7f222ca9ff4b34cf486d36f6036858f9519c756055e85dfff991e67f0aa4f2d497aab7ed30630dee796d21d866523231242d6d3b653c21abd1401fb52f1fd8c4f7850115ad69b6f6a54d54e882dc7e87c2b4a39beb7a742eaf3f5f009d3d514bbeb32173eed39ac762c2a00542d1756cf63c4db4e04ba6d2fbbc2deb6ccc71db471618c320fa28dc0a7c6c472aa683d6cd32e0eec9f18b371ee26696e6fe6eeab8e9f0f1b40b2250226af5c809b186c83f310f941130ef5128a0de1907756582a84692cd929bb23283fa5f0902c1c55560311b610453e43154ec06d9060dd2b15c739a438ab6852990305b30837f9c6866c769d6741272b641dce28014aa6af38ec342a141c27cf9d654d6e83c9cc44d6c6701812c7a9a80cc141b18a4ea7f9f76b8132218a16353f48c0c5c30b2b7b7a1c3bceda682d4d4a4ca9a67204267e7e1f84a039f1ed47be05c6c0b8da30e59a1b1e146c22c65b8ff3a7379f82b213516b161b20891738128c32a95aaa2cb867aae4a5124203cb00d59bf50ec08253f571aea995deda13773ed72021aa4a4f9f89cfd350635be3af82e5b2cdcee8167cee486133cec6e5330fd1adeaf3616b0277bbbd050c593d599438e2a14be520f61f3a51bd13e80481a6d72466527b0b549cad304e45b365fb6b910ea097bbecfc220e9eb0ddb930b3a78236649229b2e6735cc074f1e64811e1ae31e392beed12507ac452a1f796028ef5871a25a0fc3bc9b05e60b5da18fbb4e85385d97cc902fc6aa801c37f2df29436fb2af3c67c9fd4ce958c69650fed33906189d1e3a74bc61c77e91a676bf92382cc2d9312e73fdeb950f800dca034944f72c0e4a3bd753b240c0d87d55b32088c5efbf028a404d29c94ac9fce2daa53a4a8f4711f3de89eafa3a439a1bf557c2bdda67d24c82554a1169fc417494866412b97e7af5c43cfd6c1bc6cd55b6735e5f2f44ca086333308f5db8b096c7c8c319a6a9481748222cd494f399bc66641163e6fba8a6264b4560722ad49b3919717886678e1f1e652ca69989edf13fa38c0fd1211c87abc4c96f9ca52b9c92e9e5f335a36390205f0fddac9bc44a0e8a97dfea2afe71dfc441110b3a83d11da0a6d5a8b891bb4020d1db470238c23f280b44178c287b73401d7c1af2b684da488b575a7c6adc164fbaf93395066ee58ad07d1fc4136c106bd6e2e345aee3a26f978352995b97e2500de752879a997da298d9e476a456167350b26e9b24239853b825ddfe08aee2c78fe60384b81fba91e918281400b2636df61428c3dc3d3bf00596d2ab3a1816a06ae06176cd1520bc8c8b875bc3bf7136a2dae63d94bf8ad2b886b6e315357040606acfa03496a67949ef8870d2919d022831b8a57d0a0caf6b1459d4671e13ab37463a0444653e16b5dcf0242166527643839d6aa2ae70d21c0fbd04501c25b938345ec7abd70c06a4f82f6fa0d780cce16051f21b2f96d289d3416c26129962e55ad565090b4cf094f9c3e95898d8f00e9d278fc1ac81fab2aa4a0b40080886b49a8a414f4cfc30d04a3faed1655cd222a771e1cad3f6a3651fcba3bde94462e3e4e5f973996c659117fb119751fb788a123f53a0a19d4ca8092e5913782300d5fba1c732152b2d562f3ba5a4410727c3cc1744409a94f08b4c0abb2e6e07eae62133475ea2cec0283a1f14f60fa1a50f599ed1a130d27a426cb2562e0e43fc75d6d21f1d366200291d3824ef195dc26b53a92df60ff54580d27f5339c561802c5a412fdbbcb91cfcd04e3f50aec86449ff6ca4b37afeac3772bce58a279522cb5c1908a676d8c703d1d91607af044b1140a852dbc8e1c64597dbe261637a6c762b924e5c3726a097777f1f4b571d40bffaee266fdb944f96b1f817ed9851a144e78c5f0f9d22a74e224c69cf8617c21f0184a731c9a535ae503fb02eae8453a2f0ce1243ac9fd79edbd77984b2a49e2fe00b173060588b16064ab7ca2b6cc5453912494cbb34096df06d56ad30189194083065991f81ef166713032e9dd7e6ddc0d0903d0d38985e9ce3020774467b49d6b094ad96402a798a642046089c3d3c7d828ca4129a448402f92e6b22ce2229170129863d1efe4afd1c0c5ac353c5954e2592f26ddea7cced15f985ec85261279722a076b8e4371762e5a25a31bcc8728851dfd4245e6e29162d4a2f50ef67d7f0e440dc543fabe22bcc7a0e1ff7b9d4c08f480d823eb5e3ac9d7c23a57816c3bea792466ef6f328d7191b9c4a81efdaba3b9fa8005781ff6a4191af2064dc4b91ab69c07a671ceefc4ab7563cac7443b034203e4f50326e653ef967123b124ae6e79163dee8de85fd572529bf82236f73d4db4806439e97b25f95e2f2cb1ea25b6369345a1c3ca48a8784d7f0d9ec491a4c3d705c1240eb8b692c031b9b6011a274ea9c0f3c766955473725a19fccd77b21720a9031838b9f00c9e76e0c11600c56e2d522674775f0c087f7c310d30d9f40e54a950d431127dff506d460d8666a45bfdb46a3342911861474298903e74331cd105b9021e1ea40df1f47224ab6ca011420e04981af16ba73a9b66ad5553778f658139c016038f8620ee6f46f92cf8bfb4661ec66b1152adab2604a213943d13ce92c00263b34176e36bcad8855b184acfe8c9e3b50e043613e8a6d38e98e51f9aaaf3326ed0e1ed081d5d0ba8707d9b90a13861d37d40c3d6624f3183119c5ad69e790c90f843eb5299ae9c9c88736d59b7ffb03b6dfee1bc7f4b19959b22180adffbc7b776815ead8d6a447177fa69c1ddeffa3fff455c24c85b372778091746d71ee3a1f386d28a0e69801c44e5f67f4468c0222519450b37017e172c811162e768cf6df3afe63f20ff57a358eccd068a007474b98fd4c78c6c58ebc1cbf61f0705df118606b48ec0b5d6394bd57804b7341237cc145622c2aed266d729ac6949b3f9604dcfc7eba7ae9ac8afa5e4346bf9ab874a4e0e9a7cc34573819c1d8046761a30833b09756f395480ff365dd0c3e9bb982e18bdbb33401398d1793347eeb9ff892610025bb79dea8e1cbb3166ee38502409a946423f7bd2ff058319e3d0835dab393420709dad177efdec95e52f0367f944b10c3b8cd4169fa96ff9b07d523853f0bf32d0131e5870ae09212638966c039dcbcf134e79e480a353707c132f06bfaba023f3326d5130e2be966754ed04495ca80aa6c8405e93945ff9d15c2319af4283c09bf0765c6852ee6e36283aac54aa382835b3b14071bbb2f1cd7da3a1f15106646eefb73a90299a3c68a124733fe50fa56c79ca137b5edda7d85de74edb21b21f2ada13f2c5c2db87548b140f9970175a0a813112e4f5241fde11f4d28993c68ff9257ea4b73ec686cec0c6d8894924e099c69d663358aa6abc9ba7f864e72cbc37c5ebb04d6439b4ae621bba7fa7d338b75bf90cb770cc48d40d16dedb2e6947edfe25605c39a96f24c15d1849a88957af5b1f88510f624080335c0e537db6c30e68ff42c56ed39dc2a7f328f37b8dffca116a021633304789e305cfbf0b5b291c00b6ac9fe3fbdb6d823cb7d8171c2899f46a45066fa4867db2a6d74eda8c9de0590e06080441ee8be9a12bece99e713a66290766f026d3bea34f80d126af467fcd7d7b0a2e9017010d1d715e7eff4251f0ac7479eb9f78da152227e1458ddffaa4dfe0b5e52e474b32c4a1784d7c3b92de8dde8ee2a160dd52a1de6eba74a88892b66ae72b7a928eadef3d4a6b693434114bf0a2950d5d9bd9a14272902afff1acff0bd4b153f72368f32cfe05f3c6f397e51e6041b5c7671f944a496ac6473657d6662b823bfcf4e4ce10c1d0f84c739a06f47aa87032503e61ef8096736809a533330a413647c5e1d15843a706b7a49704b3c65262473946e8c4d2a22c19203b5e37925b6e422a06089bd7c1caa9355fb53ea4e1fe9da80d5af83a2d9611579e77cae9dd73c9188bb704141f5122162b860e513e63b5213720d513e66d8dfead3f498bdfb03691e0e0c4df566b8d020f881ad148c89d19460a22e43f16263657b17c0ebd91c69e46985d133704a622a6f4ad37bb9571754cd3e3c2369092fa503821014444930b84581bf91302bc974fcb32fbc9f7ca58b16a2932f60f4c2aedf916514bf428cc0a27f11cd233140a5c081c50e714355e280aa8faa2594973d1f7aa3faa2353cfcf2a858b021ce1be8d597581108c000398afafc917bb34d701009495547c381e31cbd7f219b8d208cfea943ecef66e3296f7c8ad81432a56de42468c0705a239088912dce3ab87d9ec6ef9b0fdccb9407c81816cc418c3c09211259dee2daa9907f0ccadabbcc5c5263ae060ac0ebbd70562cfb7e6b60399660275dab57356f5132b1ad23c6fd7046cf18d13ce49b84861fafaa8f77c5d1f8585a789577c96e76508c9da11e9e769de9c5b53eb7444f2152e20a0481248396b27cd88304500dfc0a7d102d055b1c9069e7c16e6885423104c7657f6880b866852c417ec62343b09f2f76997b5f561dcbe6386aeda19218db865a9cb5c5cb4535c61fa2d8521e21bd9b7b60b137bfaa611d1e2f44c6aba47977acaff0c6658b8aa7a6fbc1550178632f68fe10dd867a596fe7eef73a00a0a22c7dabcb915f5c7a38f8a46a9c1a3fd5e6c484bf41d94c49a100b26a66a377458d6c2e22931401390c2bf428f6e2be2aa437349d1c06eba1904817dc58f2671cac6903a352377e7d0adc12cb0cd0806303af1a561905577ba5eecc275910825f7350cbf4ab13620a133350e1d8d40186eec111a310e38546c89bd0c0eda5e0e75b04e1c29e16048b3e059a07fc2761ac71cc5415ab75233b401ee5c820506df9864216eb5e090a9c6cf57cb8175fda1bb82f888f6cca0a302c7b17b2d16c545d05fcf7bbe34854193d423e226fcadaf8dc580eabdc13e4f704ee8562937a07038a1e63f92f32db83e605260e3c9cae1932eea19d76f87e1202ef5e71f892c03b4a3fcf008305a24e698cbdda00aaab67f7bd1c26ac9a7c5e4802e426094d1dcba8393c99bc6d1c6671aba95d462df7b16c68ce4f8ccdc6be6b6b7eaba04c71af23e87b91425184852e5d28ad4f883ec1b33f74f1aff1355dec7697ba0e3f7941b8a9da1a9c7d1743a9be209db57646c3bcca7b9e6495b89f68d3344be6bb5b5417b09860e85deb22984ca2411714359b903628aa3d012ceda4aa4e3bf7592cc2052111795e6c24389bbf1ac687b638399189085ddf376f81122f88341334e1c2b5028bda1704910aaf38314aa946509fb22762704860a7a4e3d964cda04a182c6b9d639e0ecdb0df1ea0143c9f42830997d30780e6337fbb6c9364225ba8779eacf2a514ad374a811cec5073901adc4d2fb79e185289515fd86147aa8c1011a426d6406c04f59f9db976000a1d39e20f3a5dcff7565efaf440c009134c431c34059321ec8707e46bf7307903ed819677fcf1594c44cdd98ef6e5c43e3732052996fa5391b356140b7609595629a103a40940f311384da46c3e49fe335d97cd7b7ce2b27a3da0ccd1be732608b986db9661da00e25466835606c317fc83446f579a0272f73c97e1a3deffb4a68262a5c7abf5e75a07f83c232bcd5fcf03e80ca760282974c2ea393ba5d15c7ca47bf4e17c5b1f3d7a3c3add0d88599a6974cd2e1ae40b1851376eb4f85ee653c11142368e4aaa1f478b640d9833954210480782807fa826204a97f5b1ab68f35108e61b58f3ec9538a81cd4c1226209a5af3c78105b93d884017ed5754f8931c74a33ac4968886ab3ca706783a1a81c8a156d3f1f6753ba24a70045705128030fced8d10998c95a354d1b3021aaf854db005ff9b3c99ac9c06c0c1f4447d78f720eaa62bc001a1cf2774b82934b632403d7a50227edc3a7d2aa50fd026881f33e60bb1d7edf8fced2255150522d62b77d2bea1ed72ce0a416bfaf2a6bb07ba5957da7f60b9cb9f72af2f2bac3b01bde1a0474c18111b3a5aafea84c9302e01a82dbfd5374ccf6f6a805f61ab002bbb856e828c0f4050e42431d63b662ab963106a53ba9cc1dee33be6e7e416f1862acc751d7d986bb4614bf60fc702ec7fa83b12fcb9c6c23dd108e1495f3db8ce3bb248737fe4db1e9df45c703c557a6549f7b5438d593f482e2c08b6d33f3eeeb7488a53d98610eafda2f684fda6aad871e2fce81b3231e044a5059c9fa721fd60fb7010f9593d3946445fee4ce4c54b17e01bd9425bd8984b644742f79cd28331750f5c301bd106f87cbd678a5a15e4ac586138964c2f004e5687ec30de9f5faebbc55c8ebc9271ac4d36a39a771038c7ef3d668b43390381be9df28848f26add47ebe21e631410f5693d337a7239313313444d68b69e918864a5a9a8699bfbccde67a9f43e424dfa84d9448c53b6fb5144d46db4476e8827f206b47939b7a802214c5a45050a9cbca39e17d60efda7f353b974f2a65103c4aeda48306f23be1f7649eaaa35f49f92bfcaa5fb8683cea783de00999fa7f3a9dc74f206262c223f3aa1cb55616cf3f57e6abe2ab76edf98097d39ffc749224caca0d0d0159f5e97cc43534eaef0e22d46941d536f461230240a9fd7047d58d6f50300a59b554a7ac0da9f51c83bcb46390090e438eb4e5404406a15b2f6d8810f93aec575be5c45de5981537dbaca3eb633448a63e147e52198cf2dfa4b1e5f3b49c265752d8566e5d17a4561e5b759f76d12e223db7f60568f9b925b8d82de1acb8ed0415560f944dd2e058b2d4c206aa75d809b3b5c1f42be7d39686ee0a3f67719898c968034389119f3de2f6e76bc4448abc4cd63fda16884a02efc97228da15297aad151ea8df50b9850636cdc33a84746480c19005b7ebe834749c945ca805e6d45b69b25f55ee734cf00c4069ad4a13401987884af208f5757c011a8fb1031bcc0b70224a1c9c5edf802a160497b342828b69a3d5d2fe648bf82b852c4b8c15ff837d1c775df3bc2f646d7a4dc798c44afd1a65d78879c7c616f60d20ad10999b32b603dfd284d9732b8bc655b976a039ac4b75b76adb20f6f79246afa4aa5601c0b2ef351ae0734745f22fdc7263eeb5540a5f233fc996ab0fa26a87d704fb2051614fa5438808f1f104ba43fe6038fcc45da9aa7fa8a4d02b150cb8644e6e6748fc9015bd27f4817603ab31a66de0c7e7aecca2ac053b1bb8d989ee0662f72efbb6eaebcf4684f94261d9f3827a3c13abc79780c19979fd1ed2a0e881f46b9356025931ad56974e186112facf996e96be9ca7a92456a469f4de7eeeb26ac2ecc01407a44b5fc613f167be3c7d076952d41cfa80d9b76c6a3695ab9450a56994d9d6972dd04f75b3ceb9c4c3343aaf563fd429c68f2a30337fd8f3d01ab0f99d63324c54cc6b202d15cf113d9a589a206ee8015d609ca07724497527dbba4137821602729cda605f1c0d8a6ec6360555e1234f31f896d40b09a4d2d209d51a27679f3efc14af35625bca97477a5cc2a447422b0403f60d2143c9b11b027040196fcf39b4b3e9ae2169db1159b7e0680d5b756294db7e2ab072f9ba6aa42aff3f9ba430f26e3ca4742a7a531188f16192ff62459ead5f55a6bb922dfc94938eaf8fa8607006bbd2cf41cbcb1bbe6722c938abeb8d65a844e2071969be94f27b50de78d8b3608ad0f0dbdf9f2a0ee1714b091f7cf4f06a0fd2579aa0e37e10314db7a35203ca0c9273d6fb8fd00f4f068e02150c414f2099d1c73989b635cb0d0696aeb40b3da9ccf1246f4bb33be678b84e28e033710b4f92046f67ff0e58c0241fbb5798a78b03176a39b39b61e5e1be182fa76d93c4b08d09b44f79bcd88105b8fce5980464f78f0c5ec6cfc39e524041176276b72db7d5eb43e38a1077512a2d540e242a6f88724efa8b78b21d282e336f481f532c5a4025de9781185ea6cbe8b05a9eb215b845614fae74140d7d047075e09776931a1d0d59a266d4f34417875da931bc4fd75ec2bbeec4ad25b1fc4d6df1b58bd196f041416b854356c8a21148f1d06d170c2ddae9e5723256458c8c15ae402beb77e28e07b152aa0cfb844939f22ff0677e9dd76e8b3332bdc5a779f635e97891bbf35e40778b3dbf36ddcd9261043e6dca6344c714054bf10d74ff866d318391c7f96359067e58ba624a4ef6b4c153c380aac338032695c32a5f5776211ae3e03b0892fe8755dff76775a0b6d2b392faa6f1bea6571e59f99fc10429dd0648d00d0ec286564c1d47eb3ece6e40829b4d7461d19aa45e547621557cc2c4e5c7097de76f17696d808d0a50b16efa024949c5e73a3271da506268d1f0b3f3fc8cb0c08683d1aa7bc93b7b1b2f99c85c88f1726a1e84eba1dbe5d667c52edb23b0ca9b22f749069a80cd62e3d4b983c159a878e1d73a3f376e4aeaf1bfe197a74ac1576f060b0a3f51507322eabf18a31953fbd0ac66b1f77caf18356ba9e8bbbe7e011a150a25011ff8bfd7cb0a99a9fcd1ec929d641ed607f42dbf0c239fa446a10da78754564a65206ba2b9c78ff093276c3aced98277df4bc3844b284c0648e20b4411200c230e3c38587ac076bfc1791b33ba7f0e9865791e361b99468119b81b809cdc504f8aedda6e306fa1e041148416c1b1817b148eec4c5430670cb3af0f437bd283a6f498a34630677639911cc5eedfb237b0aee8278c56fd30c44b3dd86be3ea21b6577f1c664db44ca4e45a2bb5bb114d78435aeb9d66d1efe397be0a8312ade3dd98e47c8b4bb1be20455d1dd1196ac81ffced8607a868d40a46ccb91bdd2c8ba199901f2d25028ab382490b5d17b19152315caa831a894474a00f69c1a8caece795276b5047607373a83bcefcb1387592674229cb4f86579cfae2f985eeff2c19df4a464f2d96f7cea3dc807b5f2395c2bec577e0d0756e21c00f7f827ed2a7fa32751b9ee5b75efd18db8783fda50057cdf8f2077c1f011cf64756cc16fbdcdcbffd719c9d8d145dab732adf4c0db45b4bd70ae82c6fd346f795b66eecad39aad12d76d4903a43ca886a8e4544e38aa0699d3b9a5057c2f520a1bd95e6f4baf4920f6b9b52785d678ae346b0c7853ca9ecb18727b8edc28ffcfa667d089b1ed2373860ea0b7bbf37e86efa4a70736cdeb3ff56e183dcdd5d1305ecd75b56ea5aa348c30cd1106d5979041670f5fda2f59046a99a1465dad17a907300ef6e379d7103b4d4d5fffd0cca64081c02c30194ffdeb179e09408d98b19a876c0763a1dcfb16b15f76109c12898d27d4f5e24e1371007f66bd4c9cdb4c2ccc2733a0757e4904a5ddbd3bde25f2df13ee210e439bc1b7e57dcd092c2fdbe7bf25e00200e9679f6ff57fc29170bf5f56eaff37ebafb1617f4ffc25194c53ebd28ed3eb1e5cc5d9e0c2a50e3f3afee7452b7103ac6bea092e56befc45c132a3788397a58abffcffab7bf794848ac4935093d5dd74126df82eed54c4442f1c74e7120168206a8987b8824d5e83c43b7bde594a240a69d364f1727490344ffa2e9332b8137b36d2316c528b9be8aef286df4f6be9ead5f10d88b5e0b896b0911a8f712add406d1f05f43565c96f08b6e6394a3a4c29ca350bf0751feee806a14a6c330ad8ef933c5931c52706d942c3264964c475670db2eca91067276a7a044043a38134f8cfc0ed53d05ee3a4eaed84a3318d1c9d66826395073845b9a9257572e66165782d916bc47e68cf52684feeaae270e0cb026b6f60cfd1c5781bf48972a9eeef8577aace5156ea1c32d51c829a62aa9bf2230b3001891d0b7c7806051f3aa74d408d1854eb8355d50af9421d490cd5f7ada2480d65287c7824a7d94d8aa539f826c8551fcd4c43197d33f41dda79d1de456b85c49138d9b2385283857330695ec3f31859ccbe94c05a06bb3e7349db1c0d63189565ae2fa54ecbe25f4436a53c63722058a8d504a20071c0626471cacd428802d845b47b64a0aa2c85e32a1df6de7875a6ae817938e57eb0f4b47accfe52ca677d7e36400f3e5124a0dd8f87256197ca354b0510f07aa927131cc6a61f60419834918210aba18d8f72638b2ee963339abcad8d1a2d2ab2e50c91634f4d452f6326746ab177714c9799298ff9a65be980372468d213987994306d796e8910343c1b95824c07cdb6a41ca8b4a339ea1b3ad0175dc422c5eed16e68c14c9535104eb2fafae056cd746281f32e86797564d0c4f568df4df7387c9a36028d08d9a839cf925dbfc8e5bbe02b93dc6c9d5b02cd944262cdc1c68975134c34098c4363fdbd774c624908b0fa27cc9bd4d692004d623996f1f14f656ac6927c5c210b81caac2a632e108c24bc74542d83d98eb440efaab6ff7661f60385b06208a7feddd839c84f41e95aab773651cad595e552708b38e33db3a449fe3f4ea88237c5654aad438a249b8f536d46426a4a6a5071503db01733b5f3705177d5f7c2c9febe8a9fea23aa62607d12d9a1ea9ee64d8ae2440c1ba2e5f77aeafcbb48237ae4cf3c7547987d016b81fa8286d114d9b4f8c34e6d79ef9d8daae6e618b43cb4b6bce6acc73c6237043445387a93750cdad88ea40e0b6e412d941fd3f27063d698f20b5bb9169c779dd813a1bac0e031fe7767a8a6b45933110bc289bd4ce4c181588c4a448f8b77442f48d94b5135ed9222b4180971ce3c848eda72cd84db16377c61be195933363650d704644cec80dbca0c6133f31cc688b013f2060fb26e35ea9d997963d7fc95f3c39e3f218d6f93ed66ffcd469f03c7118cd17ef0e9954c8eb219cdb46830c3094e07fc557d6c14f179698a5f379161a71e95d6d3110e88254aeb017894d2749ccc6834a37546a55d2d1331a4ea12b722e99ec9d19afa4249148a0001fdd17407bee0fda45e915959cf44006db0124d552ce0408a17654caa9cba42c1b9c4a8fd147e4b6856eff2194959a67bc379971a621a162dfe24601882300a374c56cafef72583bbbf67a8ee24c62aa8376e4c71e88992f816ab62fbaf39c7596899d4143bb76263471fbf9551c1f8b77f7becdf30689ecda0cf6f228b126594285aef0a710a3740e41b5e1e4ecdb8f74ec4f4f93f424c087ecbd95678e2a3f85a8e5340013e48a5414e6db3af19372b666cb86f6a22ef847d4f41f30674db180dc71ab4085011febb46af064d6fe04e39f8b16b38140be6f6feb1a01353d7d36c3917e43dfdd546edf3078c0a7d18fc1fc6e439945177e6c59b65f1c07464ab04f6cf943576f93c94e19fce3d7bc2d0bbe119e3c0a02855d7065545179d6a62d0f9b2dbefcc3085cfea079b3c334b91d7c0a80890ef2c7e1f68ea91ae96a1fae96392d8ca43564a10e69fbf050438183f1307f4b2320d370470341da01fbfbefaf6969466060416fff01cc990df7dd6a5ff2fec2d375dcb62a0be08b318125cfc00e01cb719aa375c3efd9b34fe8787d16206c2b94297614243fab3e274d775890d08a1671ca1c22c8f475f2ace28d507e99c9356d1781b79d22dc45a80a5e17005c8d25b3399c5663dd7e1fc989367f4be849042f4c0c91faa31dd696eaa1698e189d8c3765370a432b4318598ff885aa631e9b8e08a127c353198142b795049f78328732313b09109155a6f536b9d25cf32d421b32809aadffdf82732fd4bd7d8ad2c479a317eea7c4a2aef7a97459cde531925f4b7033ee6bf04b73a1d0cfe56e6885548f577f4da1def897e170a262ce84010850e7c0de4676d755b364e2260fcb4907e16ed07aa84c02098b748321c64716615feb70759e83c54893fb407f2f7fe3aef87ec2580bfc09f8a13b7afc640bc067796f9a99b61f95d7bbfa4cf633ddd9d1c0b795db606561d13e69cb7bb5933c4696240a0d2aeefab197e2198a9d823e15adf33d9b74817b3b79cab0783919577c5af03a3758818a20f8a2a1e4b37f11cf7167caaf524355cfecf616d8e46d35d85d338950e40b46237622087bab04e534fcea8ff8d3f43847f8ff5b9ba18c3014a03d39bd1bf0bd0e2a3d8ba314dc1891d082697d487a92b27cb3afb6706b3b3cdf20ac1ffee9942a172f0c5feca58c12d17ade3168f2db488fa3e8f9d278e1b3a58ac89af24137d35f61f50333cfb27921a1487d4587eb7882612a54f693372cb9ad762d6d03256c11f9c647b3da790b80f2bb7b6849121321de3822acd6fc12118bcbce99fccab3d1470171e72d4e9dbd0ef974cd1f72c1ffaaa2724f1a8dd9fa3d5016a548648c8b959433f1a04901a729b97c0637d252b7cddd19f3ae35908dce757829b8e6ea3bf69ec7d22019e60549193c56475bcb25d5bc3fdc4f01b3838a64d5082bd6b5a4d666a25f1c9fb62b2e2fcfca41050e712cfd3b61ac799ce905213bb54b0d243e2697ad693242d0f6875ec267d0589bd410d5a5fd56891301a531f9327ef3b609c86a9dc678bef5dc4dc7e4db4ebb7d3ba830245671e39e38c0f29fc687fdd60ea6985172dc231045dca119a62abacd7b75e0d85b4f0ceaa608ad3665ddda381e27c8c1feb65aebd584c1a4d23552342f5760932037addd822a25888617a0e1b93aaca1a29b2bc87d83bf7efd2c0667a6f957511bdaf59fcabb01c1a081db4a495db3adaad01f359fe61a8f655fc0c2baa4a33cc5cad1feba8a221fc08e77be3c03546dee1163ca8879ddaedbe1af8b461fad6837ca55aad09b1c0d33bbdafb3cec0791f98e3da9b226f215eb8ef7298373a7f7ac9e1e070d0b690a4a010d5d37c465090a74795234415b2062a58ac388149729d9fcbe4a7b11b67c589bdf98eaa5a48baa17e0c7f04ccaef91080af462a362e5b4355ee68221f8e48a68ea7858327bedac09bb81d9ceb97bef2ca96a57fcca0291a4822512e3db2f0c1639ce76da44dcc671f703a4981c8147e70e96c6063b66ccdf38ffa98f1df59622a943d59288421a4e2391594b43085f7ec3cdf84e9f88e4091b1cfb1b846b1ebf233dede0b1a633252597413929190c0b29b0a6975859c8cc353807e4e39dad976b7c39ca19351a632c7e2bdd5dc265361596dddc7c7c1a3ca51a2d34b1c38158d4d115a97fce1e31cc394319596ef6b53a74af9b174e21e14ba12943c4926757ae6460a2500f7aca1e3c6cf826a6e7c8469f1e5f416d4308812f6c79900f6e48ebd79981f5f435f4d9e391a31e5786f75cdd20939c99e229401ce45309370788f88d51d7d1e864b3e3eb169e6bb347db5353c0e10bbd1f87b2d0bda822c9cab5de99a882090ecb91dcaf8c57b7a45cb126624c3c3aa2e33c3f6241abd9acd80615dcdfbd3f99343f5fa6366cf883c1ba976a540d22d134869a06ae1ed2e13a0cf91260a35eb239d984c16014e1cac39111c229c583b06026fe5363a07227c45a6b3f3bc6d7e0ba5a95d3bfb9c1fca2286a55cacc84a9d6d79ff01fdee3bbd7a7bea6cddea02258ee89f558e3b974f88782ed5f8c505737f59df2debf85ec6098c22328ed017a06ab4036c5264ca1f33d05d8c548dd534a24e6c248bcf4f7b5536cde5162dde8d6dc7559a77a60cb6342136bcd7bc540afb568edfc769be5eb82daa15dba6439bad664bc441f538ff304b562a1a10ac6990a708b4376babbb88f61ade59c2c2a7620c5516aa0e453ae32bb8978105c2f26eb5cee519b898e22babbe2ffee2467b935b02965d228b2ad85f225713b0bad68c57a2b22eb63f25cbb622d568046d38641f6512e388bc76a345afb4ff7634d72b92283c55910be45f0bc68409b4d48e2ea4c84401e418ea64fb3b3b55c1627fd83ca683b35455134cdfe0ec72862d2beab9c41e1118742dd17234e78ecde5f60700376ad6dfc75903092c7d1d0104dca6790eb9ff9b8e31f757d2360b09475c63e7a427cb6b16f6372ca7ecbf3349742ba525a897ebe8aea9f49471899e428e3bacc20bfee91436de43c3af79d07f1b7142942909431a7a82a91e731ac696c044967af50e69cf10c5ed6b825f40288996655050dfee8cc0c70872ff272037645ed3f76fbb07eb873fc1c4d926c5ae4b478cc8cdd12f35ba9206518e48fc45354435567bc3b9af999b07d097cb8c07fddeb89e2d1024b5525f100cefa040e50922d4b8794b29d3908913527ac00259013a3e3ce22c71849b39815421fe4a54a6dc85e375f2c37ecc33e941ac0cf40bf8e52ae2b0647724e269094ecff895b557a8495c5ccb11c9abf0519332851d9134f68d0fc970a5be29b53db4f439ae92f57948a14b4a3a2c13f9ad13664d432a2037a7352599613986963615af7729c01e091ddc6913dad697156049154257c02feb3167a5eee87483d43abb99da974e48b6b1f9b1dd9ba3f5183752413a9eead3c4152a9e1dd1edd3d2bbf5700bd8ea7ba4afbfae95bec46a243fc79bf6a99dc68ab3e356e3d3bc2faf34a22794ef6c0c8a72204ddac8ba4c05b9eaa093da4cd0d9654f4f3b993328f3fc5cbfe4af6ede83b23117dbae6f9e3bb368581bdd4bbeae3b9551375ba4487d91854ece5c4e61489dfd03f7f9d2d51a78272057fe84a99ff3d6a8c827b239e830d5d631779787ed8381f174fb3564c4905b44ce64299cb8ded874680185dbba1155276d482e91d784f1f7560a6a000ae2b4a1cf2ea7b06645c438ab57f06d2f0219b30840e9f1c170f55ef90a4303d680cbc5caade23816ba929e88b06037430818dbc358bb504a60b9a26328b5ac59cbdb347f49ad9607faa23ce5c5ad67ea0b7a4fd1d71553decbccad85d471d4bc325986a383ba1274b6db8bc1b021fd20032b9fb14a5713d57fdbb59a630874eb5bf7869242e533a1bc62fbf01911a63dc0e5030553c378ab1887e2fb9ac2aa653896ed81b6bdec42bd9c0c5f935db02f273438c0337b307af11b6f40d57e87b4177d4dce3ca6675f1650512c6c0a0e5977f4b40e8583589e2ac8116f656f005ae25c5fbc316ac14db27c5e87ad38788b441a4500ca66b9153c3df47be249ae9b2d6e63ad1a5bf631cbbd75312da3c232ccbd9c9efec72da6073083ad32bb0c32947d96d0db7f3e79b88c5a9f4137374b3dd02f9de1ab19b76e34b4c944be2b27c3a77c13aa37464841ca29afdfa445d6c14607d4214a513e58cb25f0ec86f9e0fecf6b2b8f185940cfa8fb5abc7ba4ce3a3b7ffb0930e8c9d144cda83439d20f3dcec90f5732bb224e2673ce9af80398d2a754c5c89d7e0ddaa2eb52c7e2d84294b349fc15c3d26b530f25db780ee815bc5c68d4cc555736494f4dd29f6fda2f83df322c7eccfbee92bae3f2b600aa1e8fc9d9be296c21b5314146ac12142698d5ba32f96539f7abb02ef0b76be639b0d235c55d9a1792c85b66c2d6c5db71a59a7d1e93bde1fc8b44482aa6beeba52bd41e690cf780133fec1b0ff251294d24baabcc9e4ea1f7916431eeea56c2a6d0b2c106c39819ab0f036c4fe457efb1eea511d9b22312757d1ddb55ba6e0abfc64c8471fbbe139ca4ee589175a57c517d581de08e3316a494b961b6e32ac6a21c7c6684aedbcde4d281c90c481bdeacd6c03414472e055ec236cd5d7eea18f300a45287db38eb05b205894ca71102a007d9423dbc916c919dc1c18ab08487e4ddf628f423317637099c9e3ff33587ffff844cdbfc9359e89d506966c014c9067ba8094755ed9a370cf2f214d4057d64b3a5aeadaaf8bc8b992cb9eaae3b15fd86e9dc1b9b909204cbbbd65dc85fd1755b95d2d983151f179b293e7ac09003a5e4ba21c68f431d7e209a66d456567d2e3d43c08a47c46ed794e3f4676a1959d6386740a5a496024e256f27f5dd28f0e0b15657405f72b399dd1fb8416efa99b2667fa5f6bc1a4632156e53d66079a38382868bdb5ed400bb003cb18d75839e0305124959e25a05db13ad69030206b0ba25c3bd9e621621d3447d8aba239d830a11d21472c01991fe2fe1c3b929a778100ec67b46c9c3e914566fd50d4890cb524e67291ed8623077783e29b987ddbb18080d68cd48093c4b682c8ec107bef5cdeb5b2012e7b3af81e9f11698b9f36dba5ab292813e7c8b1292b5963bd67cc2db02d12dae423956fd67e5feb66ed9a190db5eabfef0269bd74f795001808304f95745ace3f0de321d9a6c9e934f76a2a12be60c1592431e33bf9155b737bb35c04d9db9991e32269ed9956e61a546cb9ff63b6782d38919ce16226762e67183906bb515c76fe11f251010b211ffb59bb941e0e36ad9c5fff8c51066e780cd32a32aada192aadce4ed3a238a6241b4b61a79e2e18f82c212471860f1f38c7e3bf801ee8b0227e5b0d5ba6c570571ea98c27ac0147eb0dc8039def13d99910cba4eb1623120950738a92037ada7dc5e3282bcc8838a0dd071c5cc42350f62253ae846e77cf52d06bdb6ecf056dd791b2acd685cb0aed8d44dd61dc8c9c5f8a3a8fbd61d6952934b8020080b6d6f5b83911299293d0beee54e84119e6cabefa88500bcb4b247cc09c6cd1f3d17b17e625548ba56084935aa874adeb313419274f241d9851cd1e5d060e6b47d5dec6165fe3dde70b40155acce73d737d44d2589d26b5eef959db40c03439fe2106a33a7b7ad4e94b79fbe33683b4f5aeb2d6d9196c2847e3761ad3f5dfadc2564e4d29d25bf1f2bca7fb4c009ac0343eb52369517faf2f5a244d47acadf99305c3fd70d3fc77bf0f08371ba7b98f563dc0ec08f47e612af101457e1577a76bb520985e95d3bb532db307de486743198a9723b58f1472a32df7930a44b8ed36d4ad32cf7c83e7a62d6e6bb50e6f8b71a4de3ec8b0a9d3a244d24be2d2563c2dab56dbb434ebd9a8285d18ccb281e2d51466586483338e7b0a3b60601da0301514ff18f3b79758f76430a3de4674fcdd0bca350fab6ac0d316f4762dcf347edd273b1b514606cca46bed88d840865c6417b5a39a74ba82ae215f7069a3e66efbfb829c9d2804685b4eacbeedc1e543d06d212909111861a3d89350ffec3ae3ea74619b40b5a8e7c5f6f5193edbf5665dac29225b67aad5b7d167bde6cff818b074aa6f714da89a4d804bb2f4a48aa2ec6fb987cfe478a84df209fb8d0ea32352a0cf0627527496fe9157fd4c8836658d93b5fa07abc404b6916e3eb53f9cd1d793e2b8054455c1e5ba4fc691ca86819ae4533dab01762a16620998e06e74543a9df34446c06b1203940f972ecc764afcc6a006b97d3d2849c0bf13caf1a9a7ef16324a2f5c0be7b150a4b075adb6676affaef8d6df6f51ff7be2b04b0612be635be083493ef88bd3d52e3f261d6f6681189878642968f3b7a9a88c27bd94c3b7b7d457f06afe90c2474d2424f7879237cc4f48004985487b993cdff5a2916c6482691917ea1dd2dff174dc361acfd5f09c088760a148e9d26a52d7836b348572652451cafacc18c9b757dd2b24500e4263dd2cc843cbb27f63a381f175b2a52f15617bf6505ece9b63e7ce0feaec47a5f5a951b3f927750deeecaf06ac6e40fc825199266edc9084526c9681856d5f25cb4e901bbf118e4441ded5aaf02fac5964aead18a5bfb0dfffb82db79ea2e754cd26c3c58da2805f3db74cea32ac676572f64ef72ee8ea077c92651b4534080d750b76a1817c622e859e5e202e3d6116c9b73afbbd57b8bd48903b4b5eb21ff6a54c46fdea8c7b33dbb666efb4c077c2f751c3b50b0d050854449719c81896d9c4ba26b53d08e1f88ed22699b3ad2ad2609cf4f4bd1e496b04388349542ff263752f810bb17822c4941f28d1aacb88ded4f81213a69817483fd1381228136cd67d5bc2c56910acc7c57b63197d4a96ff5ef27452872072eb3181a5d038cdb827d124c0ef2bce413d918fecfaf7c52f0e85b77333e1f18e4706061f98ee0105859f6bac9e1e4175edb16cd08376248c69165dc0af602a9675c1f26a31902e4015b01c28089709268891e16b4db24e73cd00a4b0596e0579a2a1aaa66392140a3015a125f96cbb20dbda83028decb496a9ba3490093a1084c4d77eb99cd1beb7c580e5943dc90b6d3f7867829c1aa851faf084a569d2deddf25c23e857be71a40803a5d76d8e1016b081ec23c08b95715de624c9a1bce79c8ea305d3ac93fc8288e95e52d4ec2516b0df88abb590a9be8c4677806545e36bb98e71d2de1f5382a60479e98c46b36ec2d4440c44f60f8766223307fc7c400e0f7c494dcc9386a05208014fc013b241b877b402ac6ecdada1703b886958c1835cd2d60c216cfe14513ba1f8e0ce88f3e85dff2447ed731a8c6930b67a0f78585e300298bd1fb02706252817f140d4ccf7fd239c651c9c1057d03010a57cef19faf519060d4ea60175aaf46cd8755360b789a2a51a0884fb44f91b21d95a590bb2d48975371cee39e72b99d1d49bd2fd06ddf2928729af774727fc9d51b1114e7fbe7551a0e564d18b4060cd7946b356760dc96c2ce2be015932d652793eadaea9e2f78fd980240d8223c64be9b4357f07b96833283a5cd7d02db65138c1b18b7f408cc822c9dc84b4b702ceb82c9cdfbf4e2d253bd3b5bc9c48a772c8a581b1fc607af6c00d689219f6e2b03ec56bbd701bcde5495df9295a78a371a29bc86139918af5a762038edad6842c5cb58b168e0806ae54bbab988039daa53bc51931d0ac07694f901c35188855c0c23ebbf6dc112997a3e0103d3c33de64d296ba27a74b5593153bc46a432b2fc7d5ff7fc20b21c49bde9504fc0743703eb7982384ff4245cce0d338f954f9de41a16868d5d9b95c50a89143021a82b6ab211192d009e8b8e5713029cb8efe066ef774d28d67e8739078ac4b66b4e33d51319e899cfbef4d99bbc73b4f63689ddbf175ba80e2d4219090d54b72f008888fbc843e095ac70c6cac6b612cba4a28887e45f8e9eb2f46a42d6218ffab6ba1ca4e669eb0713a28e6f31ca0deb6b1788e9454bf843d5792ae8e97cda0b1cd83a8717324e679bf0a9b57dffaa56b44ea72f5cbc07ecdafee2b2d4054075c48974e86837c0404b56f64707f56dfc34f610efb07c2270adcc936789432cba1455de9226aceb24ee805b2d56b1d894973e0cc588eee2e9848e7f3dd00e1d3efca68a0335f3d52bf811980c38d075fd6cf419d6ca5adf05898e32332355ec6cc54d0849827bbbc9e884d3fb77ca3bf31e30ed304506e658a9cf1dca4e56c92979d35da6eda65deaf374c4a84b20ab986d61367e43d50c4856f5f9776ac2fe73632b454a679ea45f23dea64285bf9090d445ca6d27a168867fc2782d4f6936222873f730bafdd56e4ae0dc29c2b345fc25bb4f31984b8b273a25bde838c4e36a200a1654dd8f27712a4910b476a785598ba973121bc3539f657a7e7f460e3253221185e46bd5674e4e4ee796efc2f4c9cdeffe371d7be95c4ef653805ec2ab9ccbba5f3fa370e15f2043db17356ffc027ce988bec0ff31b75492badc65e346d87754a92aa073642ccf3484990cfd4c64cd615dceb1fadb92d2a9ac6d1bd888d1aa15febd9d2da14547db91bfc2f526060d7e14c38620f9e63dd19358ad38ed98c6b2aba5f81f0e94a9c3cad4a165ee0032eb701976884c3a5c860e2a6307961987cab803cbc4216576401974b865988b2204fb3305a40df58f515dd971604bca5ad031872ecb2c930efadfc8320c3bc5bb3a54e61d1cd5836d84a108657448193abc0c3bf006927207bac832e3409976f8ba77501008ec7bdba18629ece46b46776169f80f77ec8cfbef45f330927562b08bbaa3601d8d11f34df3b8de86944dffdcfc4e402cb4a31a4473cf31e4978d2327529e39893414fb0a0a69f860742aa308728cb010b158e64c490549e57c94230bd619b9a6ae62b094edf042251a0545e5d8dd7a75242e94155a0fca05620bc1b96e42b3f0697fb72e91b38ed3b2036920dfce30982f0221140c18044d396801104fdfdc6123d3fc017f1bb9c0d203a2e59ad8bd7be5e7d1af636cc68425fd6d641188ea4dc9f03de8098ed3d5fa518815d2b1ae312171f71023aca88c5f2e4dfe8fda0c8c63a659bef9d88187d3f0c497d2b92d1be4f0a2972b9e6fb191d52fe5b0e49d70ec23de7713b8e75dce2187776079fb2bd15f96574fe7823a53630283002c5c391544617e04cfc749553a43233b02d55dfafbcd02e0ba4020e418d68aceae925b60945958725128f999faa9849455a8f50ff4c69fac845fed3204a03524c0cbb94aca7bf11790bd81c87a51a50af234791b1cd5455516afe8ea0c33d171e0a77983ee20f0b2408c5478414ba2bc5e2f6c70d67b313c9add49d9a4ab01aeaa7452082b8db9335e7f2264ad4b8f237ce42258bff16f78c2e2802cade323d1ed2dd3547b56f82b0e8028c416b4f5a04f84fc30a411e3b209f52b312e2a71973d5f8ecdcb785ce9e57579be7918e5e3f95832ae3f9f21d553e4ca2363f3c90307f492f60c683f989fc5cf196b9f3606a9b1928fe9cf5714711e37daf599e1dba60d02c2b0a459070b6f06e10752b859927f080d6604a9ad3a4c26ab8f3fb114784c8cb8db8d29ff3be2fed80e83d762b69b1d360cc5f37e63489a047a3664149b4f70c382edbe7f46a3a6d6799a3a2d075b05da69075fbcfc213de5ede3a022763dc316e8c2c886bc5e7d5ab006b05c7c7fdbb435e9b6a1616639a41ad04d10c4a3112c7c6a2592938289439b3e84e54f994384a66514dfdf8c1197119d8fbc68874c22300021f908dfd27eb61532ea2510fdae912556b6ce1c3ed449716669bbbcd7b4d18657c06cae57e24bd79406b726120ceebae5cf10fddb967063a2e418f48be08f6d53e9d8295e73aff0c1220a6a487f179d4a5a73922b392ca6aedb03f9b840d364a2698cdedd56272398ebbe2a456e10786571af05c339ead4ca15c1b84fcb0ca6b41cdea5bbb8580b54d724b9116f1512a956567b98fc560a129184672af2cb5f256a2036d19e4118b53325abedf62ddf4b7e722297ab2a2e7a0be02725393eee225f428298a3ee3c149a89ef0202eade6e531b30132bb2e249121032537bcb5172d9cae7825dc425d8ba7b3feb26dd131432c5700a632f7a495697e7f61e886159b7aefae7736448127b368f1ef9baabcd6a83eb243e0b67d367cf4427bb8e7cc482a01ffc83f90cad1415d731b8e3d38c7f47ceef690d54f6e6baa8bf27a5de096c0b21f2f063834abbaa7654fa9261db7ab62ed99f33233bc59a672414ed7bf562f9e0a848fa66214542185b80c9f682d827424d28f21a1741fcb9166d4d7532b4743e669570d25855f448b9835b8455e47395ef21e0af871d5b3366b76e1df5067f18f7ca3f316fd1bede536da19ac2fce37ff31e087ddff2901bdffc6a938b177aa4f48fb26cddd3d9e8b747f8a80fd6b204bf6894e29468ad3ffd36c8cfb0408b6fa39c3f796865739f5fb0180877e5f572a5f22e35c4e5399c746f5865a85028fb743f6b4ef9dd86081bfda28025353a1d11ecd7a0dd0965d25f2b0d411decd8c9acdc20e6c49e4fe2f041fd1fdebd2a6ec8bee923860a4fe1f726682cfd706f6590cd7d89bc5a3b8e70a8fecfa79eadadf8b1e56ef493d086606a0b69f1b34a5282c3107a6781764ade1a9dfa5100c10d667289c0038bcec023ffa4d704727bdf293b61387fb6832f79565d9b866a2a9259c229d91609a2970065dec012883c612a460f294a422980736907477150632a8c2f1ce6af64199e22d644f4d2db185c25b0e61793ec842e4f4ce076a556922ada97a4ea3a6b5a2818c30cc92db3d791d657df47d6fb768300722d38158660b0b983224dec83b2419a2f3a48d6158d4777238223a4884c255ef3f18c8302323aab7945ddac640e41822d28d6a237ab2404e6fefb61f712480d7a5be7cd19ebd2620bb1ffb71ccf71a9a47b486727d11aab9d80441a462adc0826c2b5505ec5790a60885730b5c634452a12cb6285de3a9aff451626945cd55999c559d157fa3183a325b31d771ec86b6a7f85b9192e449613874f42bbd62d33ffc825e1d8402299eb690056db284065799a2ffe9a0b0b261af6e71b1178f182068c6e674b9da86907d36457128bef81b7d39e4f739ecd7a49052d0d5c1c8f3990f2fae3ae3023da219f6cf72574ede7ad3528a360b73bb20069aa45c6862be5741b5d073dde9b9fc6ed22ad5e14ea37b4cb577663461e245199613f3d39c5f6000e233342a878ba632bf706bce0359e06296e48b8d7cbdd6c2c35531ec8cd5c84dcaa2eed44a533012fd92ab59f96a36be36d2d884c0f300b47a2faa0435b77623128890a35cb73c45b4d83587257c5f3f0f48fb6b50d0033bd2d782afffb6367d4d4f13c5f580f6da32d736a48e0d80a4cb59a36efd4ec623700d2b220be318b253908e5d59893f5d8168078705720ce3529246f6ee1b6d148c33790908d75ba75da8a95a9aefe65e51dfa7ad321ead9e2c042c06cb952a6ce7d05ecb54be156dd6db23d854a87bc64cf803ef546b7d46d2b507e7b43fcb480bb2f6d056e222ba7d66f8328e5d69f4c60f7da1de5538ccd2f0f3278abac44eaca979e8edc8fc73eee6c44643fa35b0afbb7223a7155ebfd666b80c296a30c208e63b0f6fbc9f26f334fb820590db695d010e5d14c43c3ba82ce78d410c84cd7f235797ea3d03f69dd32ba1a479a711855d18deea545823a414a9e1b8a7c9a054ba4db60954688a60f7f0798ebe1b823c5369a378b70b22d43b408c0ac476ec0ad54cb1c7a1e045e71a513a77467f83a20b4b375cc82020f2ac422f6e1900a214d64694718396f2e55a42c9310f7255e68e71f652bd31a7e3b843db786dd30f9a8888556b86d59bd67be048701ec8ea7f739d0ec9322989edcce0cf5c2a1d421023d04271a523f5f7f1dcdf94a548728ea24109e6cc8160d81f8945473d933164463747417f349246ca3bbffe8ac68a7c1114879043475e2d00e8a86bec5be1c41f00702e0af8c60563b41f64980f9c324f61086889245b32407e45f5b2849f4a5bb3cb044e70096217d72d4440557f0a4df4c1e78aeeed0b475a753d636ec0b57cfc0f1184172c47adff593f9f696ab635b12202e2925521e8ddc75b774aebeab50890c4f4a071c1fb7e79179e79032d94b80a6a89962957075c7cf4c25aa170963083b549c651c8d806927faa0bcc5b5b28f47d61fc0a4741f34e965c56fde6af6abc9882407550bedda4d82b4e96396e40855294f23fb344962d2c8529a1fbeff543b716ccf6e4fcf08b42381393c0f99b9ba09a8adf6dc14dbb39a7fc7a30807d00b3c51a74e370248a5ebdbf588563fe73b21d13e9427b1044183d489a835fc6b93eeb84ea80bf479ef35bd95376aca0647451d9231b1c93a9a9b0a8d725ed615c016a00178d6d30d82798b7bf0830b7e663e68f40db0c8189f8901b69a8c2c7f8d88da444059d8f14ed5e2e3b599f25b3eff461ac5f1a6a1e3665bf1026b2fa7192fb08bf8476f7be3f82facc38951332201cbae989e1814c751e935585786bffaac83ab20e302f4b3f30b07e918d6e37a5098dfc64ad4812023f7960351a3c65a29faaf8df44b8977c01c7f56404bd2780ceb65fe3a4d8341defc7558b51f2cd44f27d82ec23f1d5cc91cd95e0ed5c53d4bae9dc39393d7c48b344bcdb1385c8dd682c8eda78028511b622b87b5218a5f1aea5c6a226a54c520b085b6c09b2d28e9ed382ee7a58f9e762306068afdd03047d44c6811b73acd1c045a5868356ff7f6121e0ea6f5fd20eda93aebc44690d0704bb3a1308a61ea8a13f91c38871c39e40b99f385a504f19ee45c1c441356eb1714cb8f5c529b15290d5fc4109218c398a980ca0ae2369016326ab41c519d52d225027fcfd9e01ae18ead62d752f2db5d4f35019c1e2c663a99d3943859eac9ef03def0607ed5fb8aa71194cedbf4b4ba8a7fcb338aa0b20e53e6158db435788e1a8865f55dae81b03bccd30b987cf9dd8056884ce8fad1ab2b0bc17ee3325cfc137bea7445cd5eedbdd8f6dc2ee7aae502958fc8e6cccf6d19392aff75005ee019166993fda1e3b9b5d0893bbfe5a4577ec4c3c815df65099706020f0e261f3794cd2574f99d468812240bd3fe425ac78f1220e87b0f9e17c2063d4549c0105bf419caa28de751068fd8e2cf6602c5e63645dc106d5c8c9176878480cd878d72b546aefb7cf6d3b37ea3e4a18f1b6178bdd4724b78a9a35232e558cf30198fa7c82742ffdea4bb259ad8b6b16ce6bb57227a4f07633d25895e8a280b58d85854d8fe0c7c868cf15e916360199364ddf14e720680693df659e2ab7d0147424ddf68cc67b7ebdfd86cdf0615a40d9ac9fa42622ace8a913f0d440faff78b39a29abbbb88ff39fee75e0d2c96994582b9fb31d5b569661a8dbc77c57fea5872e02177807fdf93cbf1268e4cbe52364b069edc147724f6c204fa3d48f0d1537767776a1da753fae77a343eb8dc8ca1ec702570de8d835c77380fcc5cf022624725ee229d9a9ab08cd29b563aace8ac46070fa99bffad8bb670d2c7d7495d1f8622d49d64322d043cc74dda9b1ce5e4c64bb4cb562946466465967122889652703fd597a36cb4cb2f35ada509fb4e837c6b0b810aaba6b140ae042af05a70b88436dad239912ea23771f1962e9e21769998cfb6e4bb66ad1f57db915ace1b76725a39ef238d2056026d81085326ae3aa53f1232b914866c19e857cee8c48d5d3d455a87187bd5d83eda555f4afa40f49bb542d02d756ea3a34c93f6cde205911d47505008a763a1f4679ad47d20d58569f618e1d4dd2cf74e1cdc5fe379fcf9add1a89a994097befcc284475faa6a330fe10f502359bfe1a22292b940a1013c4fb461a7c79fec657822198ec2893ae7116efc1ace3331e70aa8773f278ac1d2f1cfc79e6882f335b0d1eab42380f1bb13c7f98d870273da15554a6574c734daa7484b42227ee47415bdba3330a0edbfeb229b3878197871aa7dae771622445588bc56fe654a653f9171fa4b93b4ff53a03652c2a684f2ca9990d6caf379578b4eba9da58c508dd8c276948b5bbbe015d08e3711fccd1a410d8853a3f2463ba13ada4412f9194a86928abce2c0e0635fa57bcb66b4c1657b457d9a1809b1d0482a2b35ff29ef411900059803c19d5bda9b4871fba40b4e3b7831e70e97741c5ca5a1b292dfc5767db1aa52dfd68839018fca156524313bc8bf15fbbafb881be1d98209926b2d845bcccea36416b16467e45daac688a5b241758342d0f778692a63c9c0c57bac21cd2a1424c07c8217a06763c3488c56e859f1b0cb893255361ddf6c34b7166fc1f9d424becc2a372b1d4e6b4edba96423a358625e46024ec90e45f28ec0c6c3fe5041601642e32e4ad50403e0ac7a088de4f04a5a074eaf13e52966c623524e6196b541e5e5f7209bd116b07bbd66e813a9bbca27f42deb237e471ac24d5e5ebac0150f9fe6fed9166c86a9d5547a28be944090da36ed68a5acb52d084370fe66570cf3778cd009dad9ed975074124de0c2c6df076e4d4866f4a3d16b9292df09e0a5bffd747b6635398fbef6d22e59e248ce9ee8244791aa9de1f907afb848d161e9e8ceda90de1ed41395ab62ce56be3e1e9c70e7ef4883b72af83051f03e8509827007282edc49e441be8b5831642285889fdf9ff0ecc2dcfb7f82c1a16d14824a24d920e57a9460c2ceef0919c1d3ad7625332e3226847608e0f70545011eb93130d8630e323323ada24af28fb120dba156618a36d9efc0c09abb3bfe35a05f4a873328a63e6cd49a24ccb0722bbf08a33db1a538c3c28a041e1361bc2840a065c644695b5269e11cb9114318a11a15b12b6010d22e7c9ed019706767d5474f90a49feb4699489854f5398d8b30cbad6458ca4cfc8a293819b0042bf28d5264dea3ba8d606419b723c3590f66152ed808afdf237835ef5e7a89fc901f810d122dbbe4c308baa1092543f004513334e0dee3f6e2d69fd29f2e096c36b081d119c7923ef2d1b84d155ce6740c55d1bf7c34c80f322d0b5e248c33fb0b6f59e6ee702ab9009e7d1638f6c35f3dc66566573e89499648da83863840d4084b9ebe2f55f66c4a04df0c054aa167784ab8b3fa2773a4e7a1cd78daae974116340b1609831b5e919456c46bc2c6c97c6b2c36171f6563c57e01f16b390cb460f5a650cf5d4908642fad4da47d02cadbe95f5c30da514d0709e87f5548c33b818dba636e9f2193e39f880032fdc025b3293968657e8b0ff5d64c8254cc37b9779a03801c606c876297131be02f61a0e055da0a4d6c0b4846e47940636f263c7d2e27a80905b5bd65f7265bca94640a0506c205a305323d1f053cdcf703a1463a4a29d534aa518d6ab5d21ca101a289716147a6dfe18a47d5ab0ead68fedd42f362f000f06ad10160737d0bcdd3c28e2d3a2a1b4e6f7a53080255ffe94ffef4dc2a997650d9500281aac31f31bef428d309481303a4893501bc9351cd205fb743196edf1410ecb659fb7ddcd08b2844d891b3d0e1aff34b221a03acaf2680ffc9cdf547e53ca05b271cabc341d7f425cf86d25726d853b37ae8c26a8c6818991f1fd729ce8f57036d9d429ad8cb9664765cc53866f513bb23ea616a6e90e820b945563266d1c8587466d1cc58f4f76e8734312578e88e5fa98ab61895cbd58e9ba59a57bc5c7b5eb5c713b2dc126ea8456702923e7b2513e809d91e1348739885e90eb3502158c48271b896343fa38f4d910ceb8b1b5aad92d84e9353cab98aadba580d75ab252faf179b979bed05473bf9d94e7e482626ab556c359b594dc1e2c0020710cad4a2d349ca301c588c5aa068d1b12d3a362d50b440d1a2d3ace611823a727d6c89dd1623b745a7c5a76b99dd969f6ad352a4a547b3787ecb122d3d2d417e94b8218729852840d75f64425180c221da579a18c768d77f023b1c332a9960b77febfadc9bc00d90f89d06469f0ac12cfd44dcee16b047c3b02667cab43733e38e42a05bc311077a7369d8a2d363478679e048e3ca8fad6881786190414e95ac8135eda656dad4e0f430e22606cd64cb49c2d06dd9d169e929752d3adc90c7b0d7be7e734321b0f31b076e885bc22dd67b84a51ef5b84d881619da28ed68d8e2a365099d961edd873fb0fda57c3538dd611d4d1a42d7df7a2e134a45319ab0a48f01c4e210c201d42c0c6b0a9b1c7332136a008a924adb400e273b34f85ba0a65927d71f0721d75f8786e996bf26a4a759236701c575ff559066f9139a068468008a668d5c24a6792d2518752d39b5b3d1a29fbcee762bca888c14ec8fc398dea560d1bffe4a9b2b9f4c12d2f5c701e4302b9ec601f4bdc0f298bc88ae789ab50407e318ee76912968624c2305c3d4dc3011fae4a5043bb6e86c1bb7926215db463532cfb01ffd7aa10eb969b64646fb20a12e86bab0deb458715aac2f16b3fa2540816675c82de1865a9cb99920bd61179a73fb4b35373b25609cdbef42dc7ee73941c272ab2457ec61c5fe1138faada10e397677e4865649acf5c0918b00f5eca7889166f5112024aba01fa7e7fbc3f4feab242ba15517aba1d5926675e10cdfd78bcdcb4db366f8a3f4fe2f38cd5275586db8252d9ec21a9c66f1377543432cbc4c58b0cd4209879c78fc9442950da82f7d2904c1e964c4615434a51d4ca1aa54fa1d2d597ad3b367c329ac3f618595e4d752c90414e436afd70d5090c9e4b96068d1a59409656036bdfc3ae430a597dd39573ece957376382dca378226e63032b02ae42cf24f6185398ba4393dea51631de20ec71aabc97116afb971161974a54de91c09798b4ea5b357b1dbc39f57b15387aa279ecbcacf73d5d7be3fa6677a4f637aae7fa7793539353835379688edb7b74fbacd61363f916167b64f27d0045a6791f175a9ce4a61bfc3f1e5e532d6d795b12b1cb91cbb82cd002ec7acf0737b5240babbbbbbe646caa63ff9ca0ee42b4746a2c3487a30929d2bba3537f28e0c83a1653866de2ed579ae1a9c16635cf1f28751dc30929ceb5f51503c177d14cf355fe5a235a5dbd19483ddedd69414cfb55a220a5686990b83614ee1ca644deec80d55125cff4aa35bf178aed5122dfaaf6249704c5a745c38ae9c86b13c0e8303c859fcb79e3f1c33bf8d984ea587dd55cc88163d5c7f14586cc69de11462972558984b91225ddc3695c2eee73a14ecc830d60c0cbb0d837aff961db7dcd2a3bbbb65a74587a169001d00b6e8b4e8b3083d9f05d2d0c45a9c9d40eb2c4f573cfde32a25859b95fa2e77fc1504657a861c328cdb017b6d7b33393c8c3024f7fd73f4f4dbcab873821a0dcd2c266d8a09b875ad52c50c71a7c547b3fafb96d04366744ce3c10741ae823b76f798c39c429a98af627755a3594f9802d61e1676c7613866e1c0824521988503a826c7614c3cd72d23c1818573430ee38f03a8c39112e1730ad8751e9d9dae07c7c891124a595c99d2e24ac956ac742cb0e0b944df8274610a86398532c0aab842666cd169d1910f134cb8de65998d912bc30b64a0c5b0031c9343defeef19db75af0996c6b6298416b15d1df28e5b11d77f82a418bb3890ab435ed008b6b9df64078a9f3be79f5a3e907f11892885d9ed290dbf8dceda7d07fee72c73f4f2e9f3fd23ec4861211876b4777e29a28d9749e7f49928d1b5ec32dfded9835de48b8ec0f0173b2f071072274c9482913bbe30baf3c69cc69a35763d2eac593ecd721cdcf9d448b3fc9980dde08eb4c89d42ee488f8c2fdc080816d530dde86aa0f76c41edc659e6a72e10dea11bed41654f8fecd15e7c7bf43a9a04f96ef2726b36dd68d35c847a692f24d8fe4e8255739006d1242d0a81b40b900e35cbd46817777ebde118f993e7ce1d2c18e74ea02ac49d93fec83571e7733d1cd33fe76baf1b0d87764fe37dd7bd176e34a4f7de0b77f09e1472386ea05949a6f794d2a63d302964a3947650b384e6923bb597b3cc9f34e82916cca2506071fe9c94fec856dcf94d7b448f522868af20fa93fed6d111d7d14a41950cbba02e280d73ec703910e36ec052938eda8e963a19b30143a5bda9a3a74e8a504c22f553ede66a38773e9561d7e2ec30d46c5a9c2f20966ff7de8f2907d874ef7d01620a508002dcf98c4a718cd603bbcc9f8fa2f97067eaa65297391cb522eefcb174c7146b22b83375e78b5de65b2eeca8bd3a5a5ff335ae67522ad25e2291f66a98941fedc6889df9da12b33b472dc89d53e74e1f77f2683d777a6bd484dcf9228d0a41059953fadc4941f99d45d59e1314bc2d483e907c20f930bbdb5266f694d87e1a57d4ea6d61332080ca2b40562e9ff458fe715e59816d3a8c4afad320ed69a8f6a270076d7bd1ef404395d47e476b632322ada381a5affd78e306c74c805d0aa0c5cf13aef312d8c5ff851635ca46e80d1b9153ced99f104572838578897cc99bd9d29f6826dc78a14aeaa7c333363ffeaf616200f1bd01c3c6b3efc54fdc27cbad59ce047fc27fc781a8524a29a5333333f3125e977edd886cee5a4f6cf4be438bd45ecad58e5de87f7245753071821d536e8a8d97176e34cb1f9c71bb5bbb736e96b6e2b3e5e42922f59bdcead4db49a2d73614cc0ecd425f872eec7c990187a1c0a533300ba5479861917e0515c03858a48f92804f1ae000724557fae505f0460c7e45a18d94a71f11eb2fe39bcb5661e953aabd4450cce9d5644a58e5951e8e51d9ba2d9c418204b9c9a146e811211c23e3b216069132743c20538e2948860ebbb829e8fa6f405bd0a86714c4cb310599826408f9112aaf8c00805d8d596c54db9e534e3a3f02973b5648737236cd4b62a9f622924fb3e66b4f8a694f79b61e2b449bdb732b77cefab3ab1cb839cbdc74c6110fae46736298f13ddce06a390ef3d9348b663f9babd16d14ea9877fc6c4e2fd24f8bda8346aca841d20f0b401cd3afb520a4e76a1db604b18bf6293d577b159b66a990dcd9a2f6294254b47fad05ab851d5b1072b591f47355ee04006ce3a935b0f7801adaa7cf9e73720a69f4c0f5f72231cc971797df9a56c30d67917f633a45ddf1c695a420ecb8c5c07933dccd21c3e02ebb4807d80001c4e62c2c2fc82ef24176d946ddcc66124337c3cd9b11c7d2e51929f2662cbbd43023baf339ef01ec2c7334bf76dd755dd749de489b37136e2c398e445fa32107ae87546a48a8fdd5449af44c7bbb37e3d367269d73ce508d524a6734514e8ea6699a26f266449e13ec387beee640f77ace6d58c38484e4cec83f2ecf09563effe6314054472cdb27d5441b6966bce1ce9e5003a2f2cac859c026ff7c66174a676bf5371789b4708845a11388357d090c350db9a1aeeb4e3f42431d8d356be4866645ba8e613537746aef813a641d3b1f38fd09c4a80486dc6b83322a6f89e7d10c95848ac0943e8950b34ea6f0bafe1078798db38ad124ac560239da7347aed1686e5e14ecb43db0fda63fa96e291c29cf94e93aa7e7e25ed33c17f7353b353a0f444a4d4a1958cd4db3a60e4fb3bad7a991cfea51b353e3a35933acc9a931a2c5296b7ad4ecd4dcf45770c481f67873522a7a999e73db46f56ea2cd1f0792fe158fe452be7ea0b6ce7297624d48f6bb16a77d13eb59e652699a802410f57560ca832ba0d8e20b1a78e300a91f5879a7aac392dc7e982ee79c33e5d383d40e2ce77209b984943ef85343b67f943e64287b20848725a59e6be49c3fc7fd0ef72018aa7ea30176e0f4362296d3683c0acaa79e5b4c3d0edffd1f79ae0f5528e10cf4a23c4aa8c3779e0c7c69842a9447e144affad1c9049e5850c67fa0d4ba4ff53df77d8a23914833f571f353d473a51ca542792ec5a954a977147f4e5e9a2ad12ee5c590e2f8081752a045ea25ff529e03555e05ce78f672c88b42e3657c03534f031c7d0adc1e05e44b8166cd86b1093f886f852113ced3e5254929bd499aef79de244d1df33b69f2becdd4974ccf2d9a1ee592a69f2d9a4e27ee74e2508efa1390efe9e44b2853ea4be1e94fc051de5478f2b59ec83f81fef2f428707a2e97713efd89ebf49ae7d271fa185f4532fe24c69f4e31c2a9423b0bcaf812184382a87719c447101f313a26549e5d60557ec6739ecb559e861d57e549def468d831fd7bd1578e4b713f5be44623d18bbe1785fea6d0950ab98e5c3afc4b5f4d9d946fe2b9be5779f65ca94f796e312515ce406fea53a10e2da6fc6c31e56bc91b7ddf9ca43949a4994abd07ce678ff481230ea99f9ec7fd0453cfcd2791e69cefc9f05c3aba9f5f4f5d7baed10c5025051ce5cd55a552ef8ef215081c77dcd4cbb8e8a6461e6e2a1c775c979d09447907539c0a1c714899bea6de14b25c99dec1d49bc0b11e49a5407fd3cbb42b05cacb793a4a4fbd99fade536fa6fb2ec573997cf5b69bfa9a0253d39bb16ffae9cd94de5f4ac94d4a3d28af173d29d7270394408bf463800e006968913e0a94e104c2d059d407feca04451be04b8b2ff4015aa4a14c4a071d112d9c9b4a83363535c4ce374d2f72e64914d67fbebf8d6824128944db084cf9c0f66f221eea48a6b438fa5a1c8d46db735fc1140f2c37f2c18b174f3135516f4d5b9b545229daa48d6db461471b978614ccba0d0f8110a5d4bde79cd329a594524a29a594524a9f524a29a5f44fa2b0f3e94a8bffe3021ddb3036a80fe25ba89009fbfcd3fde59532eda0776b9ad61c0373d6bbd24b2932791c3e958726bf8936d07b11687a1f409cc372ac892497975c8ef5e0dc3a1a792ed38f3c97f752f42ed9fde0e84c5eabf45ca493eb14aa48d5dd73996cbc782b40acffcadddaeb91e722e9d0e2e8a92703df2d54f5dfe0891c0c22bbee47ddcb277c709d9d3b7843bfbf4804de90437445cf3787e892c21bfa5deedba803e56a7b09d6233b44a0f416d07d3df15c3ae4735f6374d2e41db42f024bcf5e8e6dfb9209a84305225520771f79b82d2b901c7d953f0ab91e910d707fae1cf881a8195bd87165f42ba28d962f7b5a94737a406c38576c979aa8bc32c30bdb3f76a928ac7c1b2a3faff4acae33895d663049d77fe65f5ed51b74776f776f6977685c2aa9f4ef07d33dd7942ea794f3b96b9c2abfadc31c5a746d0b477b67286339e8e039780e5a8b8cbc1cc6013f32a759fcc5cdf27cb098c842de2cfedb666538dae91dc1f68fe268ca50d3d1b411ecceed5df6e4e0ce393722b9a120679ac0d8a06e439c36b470b4d246bf505fba30cb7c026c08b873c89d3fcef766605d5c6971b638271275f3667583a387dff3b67946981c98c281f5ef1f85a3aeb2f32dbce185e0849b6b72d9a7093c974bd51dfc9ac50bdb6d2f5b87128c8007cb1ecb3e5dc02efdbf952b605936c4d0f589e2dd784b2c508b5e11769c409e10a3219dda5f4d6a90edf5d7c973ce395b6ea41c1a3354525428a94f468c13d4c954b22624afabdc6813fd6063451a9dde5d104abece7e2759d893203b6eb755b96bad95be454df974e6a05212a9cc3ba46479430c417320d271eed73c029424c87d6245aeb73314fcd587dc69d199c3c641b511dd390eb335cb649e9df322503571862eeaa67734222ad352d7e26c91513aac64816519103b3220742ecb80b8b9fca3cb329b25976536492ebd2cb309dd11a725eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeb3d96c369bcd66b3d96c369bcd66b3d96c36739fcd66b399fb6c369bb9cf6633f7d96cd682e7c268138d7ecca9693f775c52e7f3d3649a5e99166960e5c3100377a7a9095b325519ca48d88b4c6704cc2465ada857b33870bb9363f84d25ef56146a656e9d8d71f266b8018532954eba134f876bfee65d5687b14dce4ff27a1dc98b21460c4f878b7b910cf13bf618e0afbdc97c67b73084324658f953f224d1d0eb78366bb6d87daa82fdbc247a23d178cff3bcae85e9329f55e69393f994f994f994f994f99481a7d3e9747241e69393f994f994f994f994f99485dff77d2e4c97f91cc97cca7cca7cca7cca6aa8a8a8a8cca041e31f04c31ab3460d6f594394f994f994f994f994ad802018d6a8b1b2c2020b2db8305d70c15bba204e97f994f994f994b120ca7cca7cca5a68c105516461696901808d69c386b7b4214e97f994b920ca4416f7ae0aa19282400a022908a420743cbabbbb495158f9ec2f766912303333333333333333333333333333333333333393889088908890889080c0cccccc4c0242123bf8370297221f5a11b42246f0c209960c01830c342c7955fb3d925ba9e8c2fea8a0a5dcbeae457e09981841bcfcb2dd4f5558f9dc74a23ae9dfd759200370e5e7302fcdd22f2fa322eea164977617c661d8f510d5a2a5d4c6a5d767f78bb3b4cf6d0f6f10a159d2172f378b6ecefdc20b12d65fb258b666ad2ebf46a2f34773c10e767063831df49ca8180de173a2e3d1f1f84cf0b1e07301ea07d40f289b51189f13a72a4e54a06c50361d8fd1103e273e273e137c29f852d0f1f852d0f1e878a07e40fdf003ea878e47c7634e1bdd890a948de581958fb2f94ce0acbdc43851493ae0bc3fe06f9a81d6d3dd4f5049e510298b0063760f30dacf705acf0776a441e38a2325b625a49187cb73f665dbb5d876ceca2e4d851dbf3a471cb49efbf505853ab94b77f7d9233333bbbbbb738ea69ddc70d22e12490906d3e9847447e1806af749a93b14964ccada5c42ed1b4e509c6fa2ba6d5c6c5de7f1c89bc17ffec6f4d24d240519f64435164d9512d6a2be9403bc70c30a33ad0a4a7ca02561fdb28f12980c2cbdeca324075b12b62ffb28b9c1d75d86c9c020030d1d8f121f4a98b09ffd2efb28c1b9dd8f0f5bf1831e42f6c43ed506ab71e5cbef5bc161e5be4c82564404d4a5982b3f443d1062e5470bb9ddfd7d6b3a567479880f4df4f6b787f81083dbbdf263ca2086f42085ef3f25af1be3f2901e8cdcd1e5213eb4e08edf1dbfd150e30cb1423ecbdfe47f51c8275c0814c811c110926421822144721c49a2050c809460074a482d58fee7c3437e1880041358b0c510487011821d2f20225394c0a608394462ac78810e8c208512b640426bb4778a6b032b5e4c2c91822b5ca1c5cf18a89bc3f4333bb18590d68e96833b5a2fc88191567525766e5a75f210c96955fa4550ab6a3438e20851e760bf4009b156dd821c698247063101ac55b920825ab5760e4a19dc80a7553b1dc43c11b020c741011401c6ab25b170c10f20ad6a3b07e50f1dc05ab5d439c83d50824f4eab411516ad6aea1c943e6e5e2db90415b19654420a3aad7ad23928655c00b56a8c1eb0569551832bac70f3f115406cf80a20363dac10032470e083900f9d944a35454b35c5ab55535a728aec084e921f2fd8695594203e5610a49a02a5874a7e8a10ad14215e2d0755327cb5aa4a4b5699a4f9275fd8b41c943e49cc88006a559554d2830a433e7454349509d50218c995a18a882bffd59aa4f9377e38d104ac55654c881cf4b4b80930d21e57ce90e680d2892b92106a35a89aa255553a076515433fad3aa37350c2c08757abd2e81ca44161f4b4ea370f90404407943ca8e0c44b909687d60b18acd5a04a8956add139c8834c22c4d35ae91ce4817fa00515465afe0df2902244cb435ea911825fa3468d1a3558e017d20ec94337c745156ea6945d8f9ddd53ba7cbf890d8111243dbb8547f0182174a33002e8721446fcdcb81c451141aef45c5e15962ff5f0a545f9595891bc2da9c31d39f70e8e966871c7e52ac785292dfaa048952fcd92a33045f668b11b46b6fca54e8b9e11cb1a6853e5ac42fe173c6018b9ec0346ac795cf6f942c8adecb9523eb6bfd0b9ecf3c5cde521977dbc805df75c29286cff680b724b250ee54d8b0196cda844ed16463dea981a81000010004315000020180c070462d1703c0f24c5c90714000b7b92406c523495c6c23810032106632086a1004200000618408c718628a34e031f2e31e3bb984030e3c072d23774d7e8dccc340dee1e9f349a369d8c69635a80cf4a699aa0bb3bf928ab6a9df1bc3952f3e43426e8dd997c9655b5ca68de1ce979529a1394ee4ebecbea03e65529cf2d44ac6b6e91a84a9c68b79ce99d2d22d72b8e68b48ab8a85b6bf6a8c4eaca45b8eb6f91b4afb9d3dc41bf9e10e95a7d44d3511a4d3baf7716ba7a53444caa9c266e74d7a18a28ed0f923d159b354b83c3f853d93ad219216cf888dabe28aee90d5d089e47d33b32a75787a209efb24259cd67162ba3c4db040677cda352610f36388f483ae099cded10a586efc832fea0632d7c3d17c28fb9806a82a300dcd5f2a4eb6ff849b32f8d4d601a3c70c5596c0073e6a340d1ceb20df44d27607091d033c6107af0b11b7b2307a0b5fb13b730d599463f5849b30d10545c899710dc42aa6b71848761666b6ef65dc7179f73f0f0dc01995fe6a4bcf60566bce50af85c40bfcd611f1a60d42f9e71f3b76cb50d336b6912214051c75ec1852e02090cf18beaf70aa846be9c57d06a2ce8974a19a3f224bfba79018bb2fb52af8d0e02c6b3c0c5d3f7774f00736e3a012969aa7cf7e809d9119ef257c33430c3c116135c48154088f6f8bfa5b7cc106abbfac360804e67e0643023f2040b2adeca058c29fc2b2384752cf70519adfab7b2a3e5763da8f50a9ca4c832c21219bdc379d28bc96bcc9d0d5185963cb464a9f5e2f31ea8be8872ba0d6e976fb70d9c4aa6fb452eb8ca99064a9cf0bfb0e4f388b75c5bd966eb825770f7f7d3dba0204b810dc36ce625a8cf26b93682f6dee68c14f0ff5fee15954f33fa698e8306d28309e172c841d2f2b96f8b1aa051cfa2dddf0ec88c8fb678d1f2670732e3c75b2a68f4c26b0aefe9326aef7de708c0659cb0fa8a173f3b25317fd432c5cbd79d93181f6959b15b0752282f0dfca00c7a61222c0cbb492efe76486efea0658a96af3b26333ed0b26ab70ea052f66e926ca0da1b2d0fe945e1a2fe3d0041908d8f6d79d1e5676724e347b7546968c2d76912bf6e6e8108d38be9949f0360b8f588b078acd30b2e02259b3fd0925a8947869a33317a8a96d2726e175f3b25377fd42255afe68f672398ecb3f4211b1ad52f2931a410100f9be88936da7ecaf9dd90195e6aa98465e7e4bf9431a2498e56bb6e7a82435f175b50bd6963ef7c1be4840318fedda85d4470e977c3cd79682da1aa3568f92959dd1b6ab98ad1ceadcc661e304d1811ee3b4380f945f50430edee383e058a70e87757f4a0560f078f306a9cdee0fc6c0abb5be49118ead4693fd025c68de8b23b7d34bb41ec76a79f61cf2d62dc883e3bd357b327961d4d9b93aa4f0a7386ce8ee9d3ec136bc7a78da4d727c23c4365e7f469b689a5e3d366d26a409309708b9eb3f2cf55e8908928f84b53242ff1d188c54df98aec2ebe58c21ba95122c03d7a5ce07d46431f0454d4b8376f47a2321f1ae19cd4df11e0ce1b23a2991a25c2dcbb1d9f92b1e8e9ab5c66ca1229d6a9e31180cebb22e23bb528c26265bef67d9bb519d8cb87229893fa2bc2b8f263c46aa6a0886c379be394e6a6bd8ade664537500cdf8af06f6af1088895719dfe2e56f8ca9d579c086bea5884a1b7b5863b04bb30c4cc5e95d852e084e094aad05ecbd1522160ccbdaaa8c1e26db083161df127a4760a5a6867f5174220f02a72d01784edcfc180b70651ef3b9fe084b604eb6e0c1077a7c7f6b1d3e9495918a8e3dcdc2228b8ea75763484323e4fa497ddee518b780cc8868f7641a91d3f347541c49958c24a2a6f84ec0e1624b4d06611a75c0607e2861aa1e2765e9477bd3685a47c7e64bbc4691dc3429bac6a22bf429fc2fac841e3d740041be0a5e01e2527093c4e29cf16603c28457a71ada2068a44030e006c0f6e396d5fd3e25916aca90b3abce5aa1931bd8b8230d3f8fe35a1ef1df4a1bb282067288568ac6efd618953889ca2f4c34dc6d377e94ae2a9af65e2d192573b31ff72570515a31043f7dfe3cd7f0768ea3c3117a01ff11e8815cb38dba52ff55c50ef148df42b515bc2d3a154178e29a46aacce392a8cfc8a1ec112036ef4a95984d3be981981a378f654f409cb015a8777266d00471b21df31802d7c34ab75553730e9f30d4763a098843bbe0412a011f3f7072f1bec3eb73451324cc0774f94adc432975423e34864c396e74e3ca1fbd7ff56b38d2ee5568d78780c1c64f39888f4a1a7fb712fa7548282b214b89c6bd49ca2cf545b038b3a5ea78af8dbe88b9860558bdad84da68a87f2e8118a2004742944db8f83eaa74a7c6b05e57b5594757039752a728ea2aaeb7e42671b2f2395da0d3a6ffc1863a92ba00c028f09aa63d3773d45937f3f125056bcb9315799994e5e2ebedd67fd1be220f0591c86eb43380e26fbd87c077f1e96d08a63bc4d0e76501a06438dc61555c711d1585de79565603ee92039f07914f674bfd80e0eb86bd05f80c77d05673eb45e9782448ff785bd8c8e4c0218fcd95629eb575376babaf8bc58f1e3b3d767cb1f63b27ac698bc3ed959c08dc1549900ea5cd1026c1704b8d68542d61d5728b9870f7fd21028c17c9ff98900e1ca4fe31487d2cf23a858043cc1a9a79c5b297069700bc45d116c08c1fb1ca7112a2f62d9aeaf468467e12e781dc372780f7ce6aee39aed2b9519a590150e01cc1d96539d83523ecf580f5b41754d2abde375e0b40c5b5befdbfe1811bb6227c2b1cef6251650a49c16c16353838e3c0e94a228992c01e76559f5da987b076eb06b6b6d949aafbe9251d494ea063de118a3d6c79a9499d38f987ee066afb03c86a2625e0357c2edfd0762327677ae02993fe00aa2810d4353f29531ba6b596043d2a3dd781d7b3f8aae085043ec223ad647596ebe7b7426df748d7af661bf48dcd10b70b75f7a6d4a8b1e18c8d1d80591e83afebe8072ef682315f1654053cf42fcb5a14c27557f012a17437265153815589827f7d1731347542bf7cf578b24e3d8924559c3544d60f8c3d5cd2b6896016e6be90fb3f237eb682e974abb5f2e22e91b261c0a51a3c521914cc6c7dbb238797d8d85f390b1e8729d18ac534553f9c6bd8d7a501f254c49cf2e6da8460a4d150e61e956c84ebd27e59f86830dac1f968e96e3d93fd21a6270293532e31c60a3bf8a6b2c9656104bd281c7b5172f242987d4811d0c577d1da55f62b1253383a5a232bb530c0d6a553215c01c3869e78eae1248039fe5444a1a7658914338f098b143a702c74aaeb9a71ac6c1b4f9d0b00eaf45063f0aebdb2e677039a0dbf3bbcde1a4a72600dcb9c70fafbc4d61335b0eb6b270e38de54b68ba79e0128dc0c1aca266e3c2b5bf81e67653054a448ed3ad70afb668324aeb2c57316aae3aaaf923f53b677450dea0ab49ee1c182143fed092cbc47cdf83d0704f4ef48bfbfe6bea022832551bec0c9b36970f9dd0f453d7d33cf0d3bb1de46719a6829dc619f26ad0a47bea403132d2536a31e51dab5929ec2f7b53b162ce29164dbe4d2a01acef2c0afa70603d400c67971f55cfd4c995aa68ddec1465e1c1a76b884570e70c48c6dd4e17e5c9c1e0d21ce08401356e564fcdf61afc4a2098fa119bb38a6648f2a0131100105d588fe835a592e229d6e8666479d8c5adc16b6183aa8ad9befc406cd6150dc24ccb4f7ab1821ebdb885e3d853903383319d372a359d3ef6d4828d4a74a7ac90f90d2672bb63cf120c131f6a60d889b8c29b26d3d9b24c000cf9ace997be685077fbbe6eb3d1439669fe631784b7ec08fc03d841d9c99d205d07af5162cc7568cc4d9472e338249b445d461c3a2f658b3d35fad1e2d7206932bca078a260cb57175d4d995fc784967a93567848427c0c55e7a53a1a2b30b3e8f03144546eda55f012c0acc45d411c70fed59eef0193f09fba7b7f0da00db194330842b6a02a314845105ef887620309cf018c7731a8514e95d94278213a332f16ef910e453ba436455c7562f4cadfca604e54dabfdb855d532006f715965184ecd941c467cd4c735f38577eca3732473079fd030c8539b7b945e697657a561f08127daf4655cffe00a58a98ef215cd9771be1acd60103b5b33500e7536567952259637bf994e348bce59d41ad94eb3c28a5dc9f239b34f22949d68159bfaf8ac951266ddb773336f39e2d47258d9e76b6202dfccf1b34e22d0d2eecf85266788f5d36220f4ed34a7e1b30ac8e7082c20392508f82e5e818c946924249d42fee873f1a363f2397a9387d0530d5af0a26b18cc12d4b50abdd60ba427435418e9197e6c90aa7840e2b753782d9ca6f985e1a0292429e102c968895b87678fd277de94452ce1135d9951f40506b3e65f42c6d8c3b64177e71d2ad975ed2d37eb86eb9c5c796697feb57c52204ff902c1c40f486467787d8666b2d070eb7d6e22ef2181884f1618a61aa58a438662cb66855c9b94a0e44b33df4b4a62ab3d2529a3b82052929ef12a3a9b4c54f8ea025ae8ee18b47fa5c4575df080a91598b3a72e9c3c74383ff2f69b8d289c79853284049b4f4f00d236445957bcbbd1610cc13161c2805447b364df445fc7c031150852d6b8fb2e682278e11b7e99164a7c8a3418ae5ca87f08e90280b10180e7dcdeaf32d6052b37a89ec0a306b73147cbe321c0dfd174cf2bed047977fa8cd5fb48a13ff09904b70344b50ace1e957da194254dfafdd32e148c6578092a3cf506494733af283b52f597acbe233bc313c63e2090f19780c39a2d88555440659645b348a232f62166c52d684ff64ea17f971c2e9fdd77e14fabfa6e14da1b112484d489334652f1b85765b1477d91c1c71597639e09d6f2b2e89f83a9881a5033686ade38f237add885f826405305c3dc25e07cf5199181abb3f0fb1e9186c236789f5841af5d07f4b03ffdeb05d1402e52982da4201fbd2eec6272a0802834132def7138eda42fe26f3a4025d1e155fcfc155c5a19d3f50e95c73bdef2ffff519417b75b1ab4535f028554516ef05afacf0fa66d68d9d01d33c3b800a5f0bc06cd942435d9677d6f2a1520b18dc1c73b810e9096c38b0efff803310604655b47235a1f2f24059ce4c0df5015ab69f118d5e2131fbc7333aca0da622b7e374242d16dc28c47740e78c512e1e888ac64324c999493cbff0927c27b324b7483a57cd05b84454d3295f213784af491243d6312a6633a95820f8fe6ef5acdcf84055dfbe6f9812600e6c0e7dc3fbe0bc75f03f5f309e0a1854b4a2bde0c9dea61864a813b3035ed2102d548a1c25f46d2a52839e284de746a5f1b1841121f644d971d691d9150ed62f08007f8c4e6f5b9ebd07b932a348951ade9b065a0eded31adf1e682541d0a7ebb5c52b231f8558fe7cfac6d2e55834d0ed47ba52c2e63a433cfb69dda8a2a6e1831ab1cc2d11295b5a516a7b6b58b01a423f89e1362f4f54b0105940468dc3ce6c4ac76e7f4463bbb4acfd2cab8b482a61c5e55a57727b0f1f46b317dbb76ebc27ca681a1fdf786ae9ab109323a5b8a46b5541efd919414c5fe96b8643f1d038b425430aceb31590857d693b764d644d52db68baafb32eed472eae29734b45a1b6848761a2574c5cc8a243e7963b9ed9e8d99041c427969453484b95b41184a18d4ddb7391aaae249ec63879915310e032e920c781bdfb2614c57ede439e751ee94a97be4e430f2b52acbba386ee6b6528df855b6c15099ab3e6bd023e806ff9f76a2a13045b020298f5c3f1779e6f8fa96048ca59e1dbd9456c5f026fb73896f0804b1891fdd8deef6a62f3162624f52381bf20b202842cfde19f63c460e1ef8912c8567a0672a9969ea7cffae08ecad186a9832ee9e64960372b5e4cb3e25abe19a6c51bd24c6fca3448c29b9d7a52075343604fa8d7e71bcfe877b3de34a6ea299ccc4138266eb46897c48b337b4451ae796dc6afe8e1ec1eae07227c29980236dfd2caa838e126d804a5461caef39dbf92e1007c4455fbd0d6b0158ebd17e438074ad71c6c9028bd892892c87a27aaa2360b67b22f89145f7de11c516161a56abb1cd93f04544413d3198a8a0f14962aa4858ed112b22e1e763148e84c50429b37e93036dbfb157f70189be47ecece2629c20e7bd023c1e30fa75598d57b8b27837f985f2abfc451f4125ffd3194d37633ccff5885050161a3c444ea791f04eba41f9959d23c11e87bb2992970cd2bdeb025daa7b50cd4680433f468f71fc66051132063d4e0793a62190ca7479162e42e47f63d5773d3249f1ed41af15ed771732f920355a8cfe755765d57f0c6af2d07a8eb03e2c3b2a992431394d1493a92267166681b31131958f4af93ab16f8700153c5046470580b43dfc7d9df737564f9a2ca9b1204687b7675cac03898c9327913c28fddbc8d75ee193cf57cd77161b22423090263fb58a223b373ff7251096a0d4edf2491418d985c1324516653c3ca76b9433cbecb2b8560cdf6cb1e913aa342069a033f19b0ad79b986409059c4e790849662834dd5c30c23a65679e03525a26b2758a02300cf2b5c22b5247df973f667a7f3023bf29ecfb879462c7801c4fb6d425a06cb1d6efb49262ba7a0d61b773e109b7137cecc0abf20a7b806942ae647c408e161546cf9f24f209b33fddeb3271ab65e017d9a2143ed61e4ae0483b8952128cc8e0c1647c45049bd68c4f58d0d63b66f4f324c1add144f20a39094c90e16e285bfd4f46a23a6727681157e41f2e30a8e0b87c1211e82ba3486c887e034a2f6f109a049baec014e8bdd85c11a00def503a0e098279d49289124e73436e85a0c670001b089e228885d8823eedb82184dffd299893ea921c3f9cfeecc35328b553751e6751e63f552d55c0793891e56b4311b51914c3b3c7cb0c83655c08e216da33af90aa083fc9da4b10f0364ddc17a73e3e41a3ecc4aa30aeab415eb5f6bd3670d42e4ab0570295b388da791f5783cb75822e13c14d716a2f70928d03e807c5f7091490b1b855d67b944d9f54546477ce233b5da8fbd3c66a6a2006ad9049a4f740e0ab4a3dc21ec748eaf3d32a67a5f8e1df655ee0c482b2bffb7a9a64bf793316bcfba681dbd1669bfb4174bfc0433540c6c02fdf902a7820be9846460db2ebb068732d62ff92b798d05c5c3154488431f700e36f25de8aa89e57134394aa1bfea12e3e80c2e7a858831131bf12ccdeca99433e54ccd79f30b29c203c43d79b4245debea7082b90e3d08b9438bfc5d3e7d48bbdde22dc44c500f8885dbebd5bc3201bf5a3b0c0104be7e594188b9f7f0917d13ce5dc27fcef11aaa188a62e064f556e52322ffa8de38909480fc23251021475883f258290498e26820a2471c7eeeefda6489664a653124c092f5a6b1133333fc0ef2e71b8223974608e46cca842b84f8adff3a90eb734019a25a48d0146fed2db5a3023465fdb0d68822b2f7fdc19d8a6a210d48ffbb4d0948c6c340b8c4ac2e04dde0dfa53596eb661dd660db917453dc2a40a94506c665d145c54de91561308cd4d5f0f0ca291db6709a00036f166158397a243d3087740d11f2c5df876ec4e98804c631a040985c122d8711cbaa7ccdc9028164448716d6c6ea26777aaf710ae9935b2f78ca060e75a0b09a772cd10862f0e87228d3ccedcd10a9aaeabe46f643122fe1cb5ff058de6e8017c0f347f2c860550acb9d301fb508c7bfb0bebcacc88e1c9a75635ed8a2b768af694fe8e975ea3f2436f8d8459bf9ae027af4f916b5bcfd0d155127be8c5583f0b425d8cd40688d44a6b840c4963fabedaaf66058f8c1e29f5d9c008031ae5d0cdde501789ca5ace86b57f7db00ab8916cf2f03e73ca46cb3a221ce0c9481533dcbdb0eadcdde140daa354e41185ea9e232a1a71118a6d9cc1ddb1b15ca5917b58c5039f7d55ae8c1d5089b1726d5a0bd8b58282b2af88db6d2660c4f195bfd3151c55733b3681d8b0a6da3a5562a8ef08c64a0e692da883d036e2ad824ba88ef01533a3ce8f2970653ee130ccda28f12a3d01e95c4e3d7686d68a7bf9f7bf730a9d4ca85f4a009850b0ffc8800cdac2b1df933c3c71e847ed53e64269ff8c64afa5ec275b4c7baf9646ee90799dee5f3f5c826460201091e502cf1dc10d2b98c43f92dceaaebc85d08847837b6d18fc16f47f86a8992c69ec2b52cc00b8e26da346ddf10efa6abb21d4f167024e14cbbcbc91f417166884dab227f4f9d1763c4546906df10154126967bc480f06468eb629f3c44219a8156ef41c2c20dc426ab4432503cf6486a82da21b3cf9664be5c13314464f645f1822a2c3c5ec57fa320dc16b877b656fd29e20405e1dfba57155dae3f10094771432151fc10d51181f20deb47b28812e4101bec9701cd8c5f1f459f557a47a03b0cfdaa4a9cf3ba5a54fabee3d4dc4639a0ef9744d9dcbcaca5dc47d13b917180adfd41e0b3726ede9646197b151ae997d9d9c5051787bae57b736e6ae3cecf59d0dced18c39d4bfcbb1906dd601e5fd4d310e488b3d18cfa793c5eecb2601330e7b9979e7206d6f52c39fdfeb0772f2a1ee469e46225a94c16bae89a57760c3f901bf77ba4719e771740c1d0e2358a1526fb294f9fa8b6684b929fae33511fe5d95cceb89c813a3169d2159dc0a4bd2e320a04cb9b2a5933a0d7f163949be04c24b9ba63e8c284f6bc454649d49f0e3c74b764017d5038e68f0efc33edbdce8ac92aade83cccc4f84ede21f64bd87832f05076c5b00347356f5b91ab5587537d458f42d04b8be9bf01e731da143431a7e1019f304d42719afdd0a873b85631c9ed47d4c45077f2e54e34f9a2f54361b1cdc2851081c7010fd8f68a904d82e09b04ffa3102a9957b24e0154da119d7285fd5de9f92ca14a950f5acc419a0e41777668333cd3e3cb739b044df4d78113cab6f2f59d9b5bab287a0d1a011b2594e2d9064d912a0f37fe3f49c4a2b469df8e61426feee783be36bbf208053b9b2a82fe51026029164aaa90f0857a08c3d41c275f5e85430a0133b2e2547199efcfc11714a456181daaae21d164a22924f6411cb78fcd6a881807ecd789cd9e03b2b1c734bd64256ad40f920861cfb5a901f275928cd1bc103d8d4329d9fe25f1b222ad0b5a655bcf414a9c2858ac6fc791e8f3a8e2a994b7131ad8ec883b19e2bbb3391860860046d7785bc922a8299c206f487a414f5752b8e4cd71d122132151f33e00698c0e05cdc131f41eb3b631828320d8c650b6dcf4cb8cefbd581f8a880fb2165813e5f44cae09a1dee551ef8516bda6c78d4674b27c30b2960639b333e1d25bb0f3394d09e7c8f25c99ec82388921e84cd08a3ceb8086f45931070f103b6e8be10203ec2928dfdcf012d32b9b7a9c097a87bf308a1ff3ca77bc0a3440839e842ff7d66acd0fed1a35286335f1b2ed63a6bc64ac1746fca5699a3d4778e087074e38e1831f3e70e10b07fe70c02da0746368982d67f8c015288a1b9f06f072a1a00574ce3d1c78c01bd07383f489d58744f3381295050366e5b71e7003a8259f9300b65e1826fa7372356a40fcdf5cc38ed9849be9dce34f477278a356a6d17fb41daea5cb9e339e83b02b4272c3145d47db061a4af443ae2001dc30bf8fee644e0aaceb33088fa32c8c2004cc17ba2219ddc34a46b4457b3a08a7360001160070bb812242e9a994bb38ea07c2323b8c4ada72f0990925a5f713d8804948a5f696009b980d593a2f12da94f9215afaed2d0137dd038e7710d0e626c03501a2cccd099d32b004ade13e375024fdda8a8b407bde25fd86b44c61823e3ea4a4a3ff94ab1589806ef3c3345310ec3b387ea579a5d05f467c81955f3906d7c1963ea5a3709a310fccb25541abc54898f0c499c7eed956a7258d99f15cafa0704dc6e874887fa3b90a19a5163fd2c59dece7b6bbf6a0ae915edd1205f18b21ab4d7e92727420b8249e645ca8c891b928f60c3f9a066a445ee1d45dc72f85034ccb0c0c776ca176aa6e904b8c46057733f2e796710af348be2d7190f6441ab2fe71ccb4506b0f76294a4326175d966e9a5985371d56e5c97994535949a35ddc05c15a50e3ddf8d0cb4e7ad163eb1323defc69c8ec67d8e31f424a83867f483544fde18b326690367340c5c69e5e6a44b430cbeed48cb8b8a0e6cdbaa4ef715b0740458538223cd77fe94ab4faec5bbf5db8561b3084ab9a72d4684be20a81f6f92467bd40d18d4bbea5447c67e8747be5787575aa0c917ca9f3382f5feda3521a3d0adeff49b1f7793dfb1fe53aabb0228e90b1518370ca8abb0458d43d3718d0d9643fafa8b614094ee848035d368152b1ad8b783c3f0c2b210d2b705eca2cc55157ce304bbcf90751eeb6937eaa009aa79c15a724c5a2a834070b4e5810ca0f7d1d71fd701f26144abeab6de176c6817a2080cf43924febbc47135180a80284f90cb0e643f2de651f1506b76b2fd8b1a90abdd76dbb42148fcbe8de62df1ef2cda8b01058d852a0c84b510f3d284efa5af5c1ed2fe68487f80ca8de381f1d659ff6976ac9e9caea3a79aa910800a26e3be0c9456aa3aacd44b6f21cec45c21327829b68f3c95c8572197858ac6a95b6aa4bf5df2089d587dfbb5599c70a33f00b2701946bcd5513cff10ad525fcdfc98c9f0394252a86dffe5b43702f42ab6d0fc94cbd5ba9f642654579b53dd7abb836e6e97207cf7e4f25f487a40923ebd70c81a3b08fba4535e3452e7307c17e793a86207659943e97991889c154bb119bf70afd4fe06be5b7acaeb7d563372d6c94ae1e3382c08274aa2b910c14ea5d5f447cd1b0e2c97868fa49949079ea4492176be767ccf7705e5c1115674a8eadbd43abecb4a53e973d4d96e058ec5558cf6147fb8660ea4b5ebb04e3fa08792739fdc0950ae310bbe5b5122e851480528a03bd514d99edbda82bbae342c407c87d6e2de1686edf152b064d5237c130908b705ace2baf0c24c95644a89cf8b226a5f07bb5de8696a19bb7f85b5039679e296d7f9b5f48c536a566584a7acebe8556f010d4e5f3bce0ded012aad11baa8c9c4aa68d97598124a9fca80ffbd5f0c6e94f473fb8dec9e529046a87d634832ae28b7d8f1c1d4b8a35505aa576d63c0da6e924474c7d635e2e3516653101a64cb2c6abe9142508337e4f14bd0d16d45ecc5d3b0bbef111dcc0edb6e25f8c4afd5934370adc3de9c517132fa28a89bd15141432ac5529bd82e2d7b14ef0bf51946f05e55704d18a84679fd8b2f464648f5141110e731653b7a4148730e0269a1cc789851f354e6f2a282220655947c97717440e810492a93f70d41d486f707a7382b6caa4c1a483448c1561e1ea35ed844805e516815035012c672de7bf7437bfb40a0a3d38ae3fb9b4e4a1aba0dc906b1be28b9e40701594bb3db50c04c55d3e851d9cf797f28e44d355bdfa0f5341697ff134fcd9b4d212534109118f7e09658090247676b021cbbfa9c8294c2050abacd9da534159552ded8a84ed13b21f8197b3e2a728514436992e3989f22967670b79256483392a471451df02e48d55e31551ce04e714dcfb0129b4c36daa1f248a9fa298c0642b4aec64f1a25c3df67ce7598b6f41a2f4398da52af8e032ae91949f3584d42ec1cd667a8140a411bedd7dc2e2ac94da3fecd3f30a0e354131dd25fd994500804528002a7eb367fa909a94f2cd18a3c079db275f714ead7b450cfdcc3e91498acdbe17cba7d27e59348b2be9f8fa021555b9723aaadacb287c0918b5bd33ab7dc79c4e3b252b9bb4cbf44ac352db7b36400372a2a0b6ff277cc790cd5974a4d8dc8275387a6741869604b403647c2a8a24317c9436592718f610c0f781f48cf9c2b4324f25023d3f4a857612457634961fde1b2ed2be11dc12053fa1f4485942523751f8a0ab70d4e1b6ff579b7bffef7289156e0e44adaaf547b5b487680979b99dcd9abfdbe139944b297b1b0ebde0b66351958c11a9a6843e5590b60a85b3e1fa820c073e274abc944a8688dacfcf1ff3166faae4bd56217b20da305174a3d97162f997a07cd054599619cd4261d58ca43cd78fb46b87b5d18a0a4bffa47f5c58234ddb8c3bc85a37a403427ecd5c5e63d92c85d395d55da0b91ecc20addef0b3c003c6d2837299a696abe027f73b0efce3d150c029d15f5c6fc1fa5e8a499d5d403d498a6cd18fdc0f273b7be27e6ad846c5ee66ae6008e918150520cb07e7971d9bb06416848f763661a7e4f17a1f56020c3d951fd7871e9f04ec7658944fb88090ad38fa9ce08716ba909db8806e0c1719249d515158d5c142a556da3592ada9d9e84d2d29ffcc65518ae64989028683c3ff2f2021f32972854ffb2b33c5a61b7b3f280b95bd6392cd9eca62f49ca47a6bcb94b1103f1488121c5da270b2bc043f0cee0d1b40c9ef3be537f6ae30d783943716aafcd5959fdee36feca70c2fb5c36a770b011c20989f4831ff98647e9eb246e0d1ec6db69f6ffb6be711cdc11a96b1c477b3533770d3c6a4b0ca6fdeb0741abc73cc678b610838fe6241c5c1f6aeaa08d770c34a8d378ed91b715377847bf04c4b8f745d5406ab821ed35544e30d6012f4fa037e1a3cf741c0e7219b34cac84cd3463250958960350e8135a99c53fdee4c88749d9f1341496a0e6907435b2e6a9e625bd0d1d72a53cf79c75ea9cd01dc7f19d7e1fc6b839ec377bcf8916cb016b2cb08eb63179cfd2889422c1e91a996ddb2f7b354317347ee12c69f4889f008b5228a8d7b1ea2b96c91be4362489a503dfd26d4f0dcd0c16bfe03e7f9869873a3bbfb7f59a4ead32ecd3847f47ae93968f77029d3f01798f142fc10b69ea7392f94ce80d1a15cec11f5e3c04ad57cb2822842e4faf10a0231e4bf6237a14a30d81fe85d966217df74d8e3ff6f7c484d6cc561d140560f4d858fe194d45b546c00bf740f45f03a2bd0df042f286f6d5840a5605243c962f0ced10b156596a0aad801029c4b650835d047032f9aca6c8a96925795a1695c6bc10dcf2a793ac04068c190b08779c4bde7f59ab42991935dd33f8dd20cd8fd28d2e5d5d682d6fc1957350365d5a86bb3a465735b37d444c4fbb6e3cc55c765a71cf25508ece51ba0afe5f71ad9a840deee283259d728a98f6c1d4d79c5b4a98084e1dbb5e7db77af73f61fe61a9f3b9ec1ee62d4709bf75bb6a879b96de88807a07dae21f489757d0a3c74693f23726a9c7880a4622c3b230879369cfd03d0f3c0a36dc989671e5d896aff869ed75006f00d69dc1bce0dea8174c6d964e00c0656797a08cd6bc8ee0509cf3d1640439383d2677e2becc18306df0a98ec5d577213eca5715a252c59ecee0e3cb78d7bdfac601e5356fe6bf9638ce3a2b25d207a5e7ce60cf85d1894f4b702c7c62beb643cdfaaf436a386abed7c105bbb8ab95d42257331ba104161bfe9440cadd303f57b38d2e3c01662618177b0001dbc3708667041a66ce7203b69d7fa1ae0790e336e66bf36a7654155150aba25a2984bd6e172a8eb7400d47776fc04d06db450adf606bf1351dc30fdb3088d5a7d96527752f70605466412186fb87ca7804f36970f52180626622b77d506dffd14b3ef8404f8bc43f46cea1d055f7056d4ef788becdac15d6a72fce816ae4d055072af8ae57f84f0550a2c458574aae783c7cbae92627273220e35d7fe4d40c5a71d92bd977697e3de7adc21c55de5c7fa23e83835727d250a793779ca55444823fc73944c53bdea3779c2f772e981ccfb4f59b7cb02a7b6f938146291bdd7921a7c1c5bc845b2fbd4000a85f8bf70318fdce5224b518814d4896ac762015e50d2a24a348bea2472cfaaac3e0daac2d31811399c45314983c80f0f3e8f660be7e21d4dc75498d039183f377e968ac23da49b94f767d0b4ac4e0bd3b3a7f2c1358a4bfc561175d22d6af4535e88287af6f16a6f925cd5571bbfc1fa6b21a5dc9c66455de8ab46414ea02e4ee5b60d74ae0490e0d1c52d4034a9cbbaed861e79770d8742cfe70d84fa2644bb19b7b89846afd3a892da5ec1a94955408ad7bbc9bc8524713c07da22db7b71a564ad6353e5fab431eeb11eb137e29f94906c446f50abba6f98e8670f3498bc905c6c8e1f18122dc21053681c3c5e89b5aad5cd3cf3ef9375a2678b82a20b50e1b49b7f810a44b03f0c941c38f19c22531c53b680b380d0114d0e2b8d87bdada1715792143251c8154ae9e21f12c3871c4436f8be5a77e279cd909518114b644765462e1103a5ca98037ab00f532cca9a182b60faeaa247d6a0e8f3cf8b34613f2c18fc2325b18134cc1f1f5e28be12549654af7a18527735fb8bbd3e0939855680c1e994f68fdd4c0225e85e4d9e7eeff6e5b5a1d770982c48c9927147b0141010fad0aaac0dc04064659487d135e41802d53b4be90bf67b0dbaee904d4e843129f7889a1d0b4aa6e2e8e9a0e9e3b821c8d5502a0a7dd5fa0d2819afbf99584b2b9a8519b7fa93da6289a2ba836a0528f9b32493e9d10ea1604f0a1de457e1790ddf73bb1c4cb2909219c802c01deb42942585192890f9c8baadc0500ac377075aff682e3240590d1cb17766b0f12788e6a37f37514e64eab74843cc434b4b25a0ac71915d19e54bad30d1455b718e00c81ae4cd856b95f6db98b627d0a440e3d5280f4281fb5460e8c1cebb1c414607d2dbc2a6a0b729a5fda6713c4014ac430c162480a3a882b3e80215383ea7e0f8cbe99c1b670026183b5664c5df61a3a702128366aa2c808e7ec1e4257ff534f502a31740127e6a8c0894febca2fe8c120a80373b8621393b089225c8eb7d591cf3c4c31370a887820943a3166c573ddb28ccd55cb4e12f54f95419b0c239934fedb27d855628b2913b1df18141b3302696692c5651ca7f19b1d027c66d3c151bdc2d8a1fab24a38f8a56b527d30a5952ca19b01847a67c13e14f1c2fadab6ee2fcd76032c9fd760f85f284216027269f1809577e9c0904801797660282eaf5ddf7924c211b691d618f37530e167f35f7cfb49ec6b099f6e2b013cee58387289e000b1082ddb0e55fe73fb6ba67e998231c72ace8dc69787de768669bd63c4b8afd1f78cb9cd7b62e55e99fb55eff12f9a9b9e7fee74562e701b1f484b8c3cb9a71f5f1185017cd8c5f20085c219be41382d15c0daf95707a0ed1dcad35d1d39d2016ddda6845cf65dd1f12d67d94e50fc55820192237e965fddbe99536a116564c049b624de954738d6eb263116b7f1ace5e42dbb3ca7d59aee9bcb593fc82f124d71d40c67c6e2114a36aa5f30a0a7770f2a76b6dc57d33cb07f925c8b315598cc1a44c2c73d14ebeab397ec4cc7a8d5c07bcde6825ff04c16b68a18f382068946f4bbdfe7fa01d0f1d2aaf0fc6d87a9c3530a42e56084a7c9c6f9fc06fa9eec03820699611d02eb6c86ad3ff7ba49f9b332a1169b4ca228833a9ab5bc483d5559030d9911e881496be5d8ec46e9ce6dd15ecb21f0bf03c8834da74150168640c04d0b04d1a97605aa448fb1f6a8c22a865384bcd448abf5d28476e9b128f0b231a7aad1ab8c11bebb42ccae248471c5a508b3b7a144d2ba0899119adeca308a4447ebdfbd34eccf05e58ed21dbdf4a1cd28fdf89e5aef915d202c322cb934b301b2867065d7f4278b638b054caa6b86ef95245450f25bad8b7f799c0914d41666a604ebc4095ef750f6495306004301d1bbaa45b9fae81d8953db5375c5bdd7d624f662235e6bad32146de7e1f7a5fff54da2c993267b34bd421dc09bcbc5891f701673a3931da824767e01d5ed6eca4b48f601438e11d945440111c9376deacc9e8bf329cee39da99c848ff7bc396dba75e2e637bfd1e6b01ea26854f6395dafc6b95c0f7f0eb0135fb1bddd2b50da247632bf576e069353cb3f7b24930d2daa569943eac8ab835d5c592cd6334a20edb6006e859d0eeb9bae3d0a0b274e93aa83f70d8019d45b61a1976244f2552bc3a184a27cc0d76c4e012677278b952a56d02e44b1007b28a3b9340fd5da16556d8b44e926c128558fde052cf96189e1e1388f918c8a25030f8736a1d8f2c0d1883c2400a4ef3ee49e644c3b9193161338d870752ae882d1729554af3fadc32d94505a8c0662f7f096e185d8ccb52639da83cac4d9ba533f6d08e9fcb02ec43367a4d02cf85e5711ad014039ad51675166746f8a98ce185eda814b671c5d86cecb5e74ca26e5187ca61c07fb5498b0c688396a658996eda0e236f71b4bc5205d8a92ac3acea5333281c55dc1609614645369a9ce9d324fa3d59d4b4ae00ed238e8bec94b59f68cc145dcf04c88571d823325339f4ef73219ce0dfdb94b4f12bc6051ea6f462b0b36a1a3f402314a7b8d6d2fe2102bb4910fc7e91f83a46c8e5c5c7ba4e680c5d57638f258ebfd8691585ff65f38f5381aaa720b67f932b7713c65ac3f983dcbc157f0b75820029d08bae36f2a08971d901fd95f3833f17d6856eaacfff5383f02d0841bad17964e4f51cb6105e4abf51c88ac5db172effd57cb5dcee3f3ff4a3553c082a3f3772854e320043eb0f422047a6305236b7a65bbbd9b4f440070a7ed0475f5bf87c7ba4cc0ddf74af590026286e65ee88ea7525b77fa400012c955ff063414d7c60ecdcda376a9d9ff51fbef9e680f5db2092aa0a8813be75ff54f4bc06957f9de4d69b41f37c1aaedcd02ccae289029c915b51f407f1b9dba1bfc2a633644fbfb1a688477d7e27bbb0616b3953cbbedd3acb44a437ba1b59bbfd8332950db4aed939edcf2897a60631ed3131693aa2975a3ccfa49c471230b50688843ec9576d8918730f94f6876eeb8cfffb1f6acda46d93d4e24351a9e417bd0baaf495d6058d9fc53b57ec3b4ce8ad8714b943762bb3be6c4fe374906378792baab7fd56c93b1c8cf1968c815a49e97cda2cb91ab262313fee141ab33603f748a0b8e7d8f12a5451eced9205e5fb7862b383984ac85bc31fa8ee5db1dccb77fe7ee0a2358c8d8e8f792f6464864ddd67cf73bbdb12aa847dad65c34e7303259cd92786cde1ee64202ac68adb536ec373238761b016a37931eda3210c3e165e45ff4cb77eee87c35425e1beebf754005ca91ac3cfc538e90fb2afbf18a90513e6949af44c562d309ecfbfd7d93215e2c43321cdc23a925ce333110c745954204b87e8470821fc7067c2bec0d6ad7fff6889d3d347c78890dda2b2348a94d23d18ba83b8aaf15d1503550a240532ba32e5c0a100dbaf10563a9a038749dec531d39bbe524fa33e1455a8a8cc1dc4cc89fd103a91fc80a00ddd479778a68aed203e3b0629fe690aea304454e884c6b1335699114fb0e9282f65704ce7b79d9a50d54d18b8cb182b9443c1a0d5cd0eb329b69e534f4dca524bb6e0b47a20ccf1ad5a8d00f87f9c259918c4dbcd2d3c5b8a407fe0aff2918e2a4b8282eed4ba906e7b724d65f38cd401dba3b28627973f4f52ab68e1a013295ee7256a3d25f57f331f06562d43ab34c374020baeb80f3b84f0d4710bd63fde7c0ed90b34e9690e89bf0adab6f38e48f8a7d3d4f039e003188b188536649c39df8479af495ad5e0559632454f6109df1299c4c2d88a4cea9eb008be4f5bf211229af2a232fd09fef8a955c3576d33c361ab632af975c7aa6d6f42a6f6a0b218c75cdb1449f7daba5c26e6bff316789c47de60b3e372326501ca63b5c6f4012ad88963e4ec05464439ee94806f1a844ae0fd7e5bb80d119a89d155dcbaf38f9ebc0b2ba7ecca6362f9d3acf2f0c8234615a85cf13430b18794da24bd13c6ae4f18ba59a44012100adc48798a5ed29a1d7c979149f8534e654a286a88ecb5191c9cf261cd93804f89c996cc188a6db2b8f47ed45ecaf13dd345ace61190d0654764b67b8bd1a2a0126c3659d49be8d81de9b58a102d40bedb01c60c3d40600b90898e03113b27df3bfcc45006129964499fa9c372dcfbe21bdc2887f65ae69283fc4ec29b9909ab9021d724258e1df54ff323b2d619d195f582a7a6ff43aabe97c41447c976d17c5447fc61174bca71eb56bebc97a122d1be581787acc4efe53a6db6cd2a8080e388e91fb1d70ec37e25014b8909811e64cc3cd5000544e8074bb9ce5566531b1027a43bba2d113d65580bbbd6db1695a999017fff0e087ce0fecb3bb3087ee59931b16062f71cff7c7412c357705c262d10a5b37cbb041401ba95a0eaf2ffeb9e47686dbabb9f0490967deeb51f6f192b9269d98e31c0ef93af5acdd0d308363b300c59cd8c6ac5ab80848bef98e688ad30f50b7e05aa83068c1f935a966d3478f71a2cfd6dc4d44bf56c51dbed89262627001f54f758bfa22cea46a1733370beb547f0166003b05c6f82c327209303207770a222eb6b5f706287ed6fb59b4c1ed01c60165f39863f886e6f73cd4d924bc4f38fa589eacd63b6fc2cf92da3888d3cfb7c512c218d0ea77e3e009a2c51256efdfac9df4a777ae302d313148649f4044e681bd285ce400f9263c5b6b1498b1d5bd25fa5c3193097e010eef06f01a9cd49990f5ab50da1d5fd8f2746af5d139db88313ff2ec4711626e04139ad79d77cd5115d1d1ba36ae6f88d695fe77be482777a1c47549c3c75bc14367e190033e85a6630df9e292cc7958d71ef056e14a58fcadf4959132a59c39690123a13aeb42099bc15c55a8b91f6ca27f83c4bd82fad63f74fc2e01bf4f6799d92f8eb3b5489f03ec5a0279973d2182832a9d3c8bb1414c533a1c0493fcd250ceb8ba35a3a31f0f0b4f9608d2017d7931c328f1d267df66d439081781c1ca6e7335a077f768eafa2f23333369f77691e5fbc57be5543b5f1611237bd9ac88568edb93fd2059a28e98099cf6029067ace9433c37e23f6c03b31d326abbb4a6888430e9c2ca3af84d61c6c4b6cdbbf9fd3e9fa13e003a357724713cc16d308a1fe1abc223f2243a42f06461accb89572e3da538b7b96f9ac257b0f7082c5724c67e0331fccde90014b4830ecc340d77fa7618a2488205af011a95fb2eb05fa2c00bacff897fb0ab80eb98e279c9096e2d5079ac793c3211bc87c785a1a6b75231f95e33c0259541e4b1f291f5b0160d6aeeb8e41c78bf002cd574ef8d560ed9c77de8e01cb24bbade2e3002c59255f86640d01c1c5a7e82729ba68d9b336f3b220ec641d2334ccd4612e3477e4be42297dac1eb63fc4cefe1a1ad01cf4d564c05ef4b72011174a1e8cbec01dca56517d3f43648d21a48059d6cf87c44e59e1fd02d636b0e4c6002138008539bf297e31a9be69dcd59b0d22c7886ccb46fc37e70caf646cadd63132f7b5db00ee9bf210ebad1d111c4e9127884fae601dc22f1f01f72b211f6d59bba304e9afb74803f1d52f8d260245294bb414e8343b003e31531e6508b8b193097bf9bb1bd65f5c5b5a87d1fec2cebb38f35b455291b45999aa37338d2618fe3f6a72349873119f38d930ad51011dae129bf69eb3906fcfca1200a3ef462929129856f7a986695d5d9a5042262a7bfe1c53392bbebebe478cfee89c3c072380dbaa8f80c01339867e9bfeb469f305312bdb7375217648736ed8809d7714320a2c14ef79941f5e081d2f72e5a89d4b43b2df9168366d9c0bb89c33b6b0332aeb6f3e23a43c43a14cb09c980158e36365008af1e9e7dd6906971de676c9bdae26db678dc28890738c42d73a696a42573aa5f93a84a3ecc98a0e63037b31aa8f4e115d9e742593199151465c36382025f663b94f88da3dfa5b2c604a0568dcf770ac29aaa58c666e0ca81719a86b064ad169d4dc1e28ae9345d6a2c1fd173dfe97d974f94e2eca20e4a6ea200e4bdaf900ee842474f16c600d61dbe6ce1f316414a0f4ef035c6dd7eff361b4838b48281010f4aaf5da57e9f00142779cc0ee39f53132d40b206c9d46aad17e41b238fed2f09189139412c1e2c0fd90c1f4bfd452235e06fcf2e871973dd1e9673ecaf7de49382c39b230b5360eac8f29c8dc40f9bb1789eb32ebea17b9becbc9b9492bd0b0fcf7e6fa31a738505a7e07b77ede6e0d539403bac85b3d8352eda947028a0ed668366a908331b36dfae564a652ae3690d03c5db0b61239669e0d419b4d5fc90c6824b4145615175ba504cdb90876196042b9aea6fd1cd7364a0c97ad49080294b702faf32d695c2052b2da1c034a82f14b0eb5f1fbacefcabc572e535bf0b4d36e442301facaa39a59beb8ee091023c0867b9a8b2c6156081160022000b0aaa3a3a3a38148d8be73f7f83e4fbcc7cc6efb3db95ffeb35a2cfdb2bb5776776f29a594297006a806b406f7de7befcdf7cb0784b8445d08bb8f9f00ebcc1e1debba27e65df979654f0ad6711d81d0fb3aee42c7bd00882de058aca6e31d9ec0047af4d014485140dc79950a95ebb9df7e797d0a90f044165970f9de2392be761dd771e17baf2b89e35c155cee9fbd38a736e7e1c0e33aef0375288ee466697131e5dc818eeb97132a3503461523b39ae1a549c3a251c346cbc6b5f5cf73c426fe9acc39c7c4d979dcfd60fa5a1b5ddf1a5d631a47d3756776ed955d7fbc6b5087325d8b315d8faaae4998aef78cae59525db7a0ba763179e67febd6f0a25f4c5d9f5cba46b5749d62e97ac6ee1a4635761d23b3d25dcff0afebd2ebdaecbaa6e1ba66d1c05dd7b85ddb08bdf2612d1be739de135fdacde1f1fe6f3ecfae46d71e8daebf1097ac0e6291010f4bdd00a4e95a9b5d8765d722ef7a9ce99a5c75bd65ba6689e9ba45d5b50b4cd7a6195dbfa4ba3ea1ba469dba4e85b87ce95e89c306b608e41d8171e95ad5d2750c4bd732bbeb15d9f5ccd83517bb2ec3ae4ddd350dd835ebeb9a86d7758dae6b1b5cd767eeba85bb16e1760d00dbf58df02b1f86cbdaf559736e8bd37527648e47083a76753f3e10e327f8c9fe3c500bb131364d5b7f5e2876b8c34ebc4e1c31461ab9cfa3755b1c399231d73981831bd8a049139c895c4103d20a29a4b837735492b82bf98a2d829c015905d984f4b9395cf7530a8142dd7e36ef374682afad4622b44e171ac619e31b4406477620b26dd8c70f0d125215a42a48177ba0fe32a797c0a56fa97ee92c0f715cae82748732c76113c648405ce6b2793ae167bf36081f3a5a653eb2557771b22b089096969652a21335898db9ce83795d0a9631be41f69e91b36ef9c5b8f3b83bc4b34b9d5de2ecd20d62d92078efe5b4023eeee12cf2f0385afb676ed33b7a229e4c0890aa23ff10c4043e570898eb38fc5901229165df90acf3b8d775dc139798e7dd7b71d7718eb3e24e67ee21378acee32ef696ba256ee9ee70add5620724242424a498540eb84a4771749baab2cfa9465423babbc4dda5dbb159ffda2b3097b98b3d2c1ec9e618fb6a48230debd075dc86aeefc51eb703ca65de71b4766e9bde111215dd81fae3af73fb1a27e5f6c092a796523a26a4b0020b3b68bb7254c7752e9db36cef0f90bc232472c9ae9ca422bb6e7c3a33f87f421be36a7e487655329b4206a414bbf22451c4000a212447c8274827504dcca8b52ec1806462571eb4c40b8c2891840b90208becca49a0933c42845a2b12d902d2089205e40ac822c81f92080184a40a4670dd3b8200ba245ce77da08d0d8794209b1229a34fd06cf4b917cbf46c56182ef107bb4dd45abd544ceb9008ad33c562fa1c90163313da457e6ece795bb29be3f1f8d3f2fcc3e3a4604f1f90767358a0d158983d0dec02ece2699996639673cee37168feb4fcecdeb37053a9bd6f0b02ff75fc81af5fee7d0b739acc2db64079afbdf7de5b1f1c3913b47146a48aa881e688a3a3a3a323ae5352529a559f749687ee1017cfc9b5562f97a9a3326aadf8e4e7fda2d6ca75625a39b3e5474c714ec1d191d275d52052e20c67eeb9f681714a5929756142acb53c9c404949899c5d1f2cdb888fe57564209ee765993db390a313dc2633d9098c00c271f8047787cfff18c81121109c6f6eb0d2b5d696e0e22e5fcccd3a205f0ddfa31c5c7c319781e413e37b649384e41e450d8240f4f7f1daf1ea7de0e76d132b914aa338ce4225d0e620bc9a933299ae1024915df90f517383e3382ebb00d0ebe7a8d5d53517922820879032f204a4106410a41032080904f903e943fa409a80ec8104526b55227920772075207bc81cc81f6409481e1207f206d207195baab51e5d514a1a02d2915119ae2071492a05a915889fa467bab773f86ddd48ddec138b5d71f581b82405444a264bc9421e78b64a32c638e79c6bc696e4cf735076220be5247976f30f0eadcdcff63596873cd4809dc73b50a6bfd979dd76b99283ca9c24cfecc9240fdd964dbf661682229627bf2d972b3c28dba06d468157c61884d1ca586524631c634c47208c628c3f188b462aa30fc630c6db38650463fcc2e5ca48347a31f6609432dac62e461e8c3b18a38c3a1873307231d65c92c62d462dc62c4628e393118bd1c948db957f0e97ab336a39d2020353094c3c2d485a909870e041b5f776383ba1752ebfde715de33097b9ebacbbb0bc09476deb833573a110dc0d5de5d813773a90e585db2483e934869f38c3cee51df8e1fb29a5b00228049310254107bb10638cefffbea6094230b9f66af1d3a1e5893008930f972b3d55ac60adb565d66b3d41a93695d7af9a351ae508a5f480d7f3d80d51a9c1cde2bcacf8d3be7c8c58d29bf3faa16589574f4b919bf3f2d11245528b90c5b93932519b8eb2a429133d3bca92beb0a448a43aca92822ce9109634d532eb351bd1094ad5e1fa624ab7fc3b41e996571357eb288e9e9aeb49e972127319a545375b94d205c59e28d345e344bcae342ab23aa96cdda2386ac551220ab8731c2c81585c97403458345627a25a8d62345833d0b03be61d192cb4af51d9681dc5e123e56d2ca72971f4e088dd9691157b9aa5ebe62272d9bec6557341f1a25b7e22aa3a5c4e9e9c8838d34523b2d191c662b338985f99caa651a1f91aba2d8b8bb05110d04f96a1d8e8071dbeda4ecd9465b9c355c977f99295af9eaf295f43dea7bf74f8978fe7e943404a7ea03062a287b69ab9157d8deb076fe302420e5c3c177107a884117780ca5be60e964025ff4a209699b287c364382eaa3abe28d526b5389fcd9e551ee7f3e2cf176c7473be1b92cf0181be157473c01f30c89e79c9e3804d881cb5393936fa6a55c758836ac3c251db65ccd50d8a8dbaaab72a5fa8f2c5e4353b952fa12855c74bc9db7c5ebc92d82cce0b8a3fed6b49b7fce58b72e352de7cb79bf3f2f12da01ba3fe73736ec6f8561337454116e7268c20d40609f42ca2db213f74ab43b7bce5bbf9749a8be6825283aac395c5db6c61a2b6a3630db6f98a713236baba95b7af19cb7255645b966b530d63a7647629d3af59ba68b715a574d96ecb725eba6eb765b9493cc1a67ba6aba4b257a5371353ceacca87f55b726259bfa6f299b0a4113b73755bd508712c0696402bae5732e5b611aec01268867f33e66a25c3e556b85aad64646456e9ea1693ca82bb11ae6abe0078abaec45e787ac95cce1bf3dc712f2f2671476553d970c69ccad63372d9c5a5a5a5856587ab9bb8b32a127746da958dbad0d5ad5beeb2591c74a4754b83527345b138a80c37a8f39186cb57c7e5167c51b67eccaa7c980c4e4cdba0b21518f2e08c063963d3777406674120b6e30b46bf65eedad6fb168f2c5f63392e5f49ec06fd965fafe2ce26635b8b7de867a19cad5f9effb3179fd3993d2c11955a3b337c7b72d6ecb62e1ff2685c8d9cb251ee27dbec59eb2ddbecf913c4fdb450b2b08213b19b1392707373e3068b15b3b7f8dadb381b17241111bff75efb2a15ae0bfd8772d8a8352c8d7ff4de7b2fa6c9265776dc9bf956a08c8e095522cc38834cfdffffffffffb7e0977b5d4c26979796130b6aa7c819238ca80a63b40cb8fa663cde959c9969f0ffffffdbffffb7f1ff6f4d5ddc7befadffff0ca8b39cb92bdc959c2b115c5961d63e4ce3fa76e4ea15decdc979d7b7b08a028e063de87ab6cb7bd6da277c2439c2840fa01d6aacd85eff263e88e0a6f810d229f191830fb1a330c498c1fefa37897de1f16cb17f9358ad23b2c9fe4d625634891d09c2e29c6c53ff26b1158cb1c3fe4d62426411e301ca52195014fdd8a1ad88adb398627f35880110aa294b2ee062e908219688f49bb3c332590262079409291859caa1236293fd995c31da57a8f460f26ed861171e125bc4c2b6777f2657a8f082d8a8fe4cae24d1017145054faef0c0e560874b5f6cdd9f8992958eeede84d294bd992845e101dca92e05bb8506606c172450f60c151ca12444b7826deacf44e9062edd6210bc16dc9ed8a7fe4c92b0e81c5092143e9282b88caf0929acb0535cb760d3f60d0909090909e9e8e8e8e8e828c925c92529a5836f5cfdbc43b0d7440b41604114194001830c274f4bc2c6c318586871c4154fc29916622401c41325a42f9cd84af0c3e409181841e20745309b3e395d2cba1b1d128ac0a1292609887efb3349f2219c6da1f59f580439aac31a56148f231f6bedfa0b43fe85a6d61cd466e5386fc7bd32ec5434ac170c9d45d2f273ac155bd1dcd64ad395a35de7709ed9ba45b55ae41417bb72276ace15631c7a3a4c0de18d4fc6703966d99d77ba18779e0ef32a9c71c1a6530a4626b41897b8d435eca95b212ed19af29deccaff7900ac4d7585258ed00a60042f089f174e69f21e88c8095346785527a441a3468d1a356ad030cb1c97a398678ededcb1e55a2d1144104104115a66c95114d77b4920c05f0e97406a4100f184b3db1270017ec78ede0530c208238c3082006cd4b8b9f75ffffad7bffef5374f8345b377421450482124b3484185f073a2421004204009259450420904b0050879ece83d5c0166802d33406882b8f326eca486d8f584300128a4d0dab2aa80d410bb3eaf07c03c300fcc03f3c03cf001b008ad2eec810161cd39b7f0fff76d0fd1cb71fc7228ce7ffbdb7e17103220c4373e27b6012104c49d164207847f6b3077210c7b7831982b395886e92ee44a0cd35ec89517a6bf902b2d4c8361b6fcf24ee4a1818ef92d51967e3928aab07b0cb883e96ecc5c05cc2d5acdedb9802cda46b6916d840c830cc3078bc16556e2cc569126979fb185857f1e3202f290ffe030982f46a552a95435956a6545857b8a90fd0044079a154aa06022d652a65fd3b3b2524bd394872510e7b97c197d0d0e109c1e9cd86d25d9d316dd6ca92e81785433433882e11c2cf90f170c86cf844124858acfd758286436981995e9b205ad64826ae14cc933c3a2e16692d99270a895432be613e46e72a86bc94ad7173fc294c721e55f33a6cbe693e45c72cec2242ce7502b87569096cf1d1a2287cea1ee1c1a6ac9ca18f28634433457d0d0583eb07a5832d61029d4e9e5d3ac1f9a2b688668682c1f583dac2158b2140d0d45433bd1d05e68681f0d4dd3d0583f6068b3996e64188227a3d3105031d4142821d410ea0a9b13e5a98da2d53ad369082723540c35054a0875056a68062a9642c550a8d809157b41c5503114addf4c2632d4a08c4f68ba6c36d32de683298d60ae4ba05548728fe846a506845b5a25bce2deab94c8f6badd1691ed6b5e52a844b9599c17175e10759fb1a6024238d6ee5813c7daae8db5b1e6c5d74821b2a7cd469a48d32d2c814aae4b2093832590aae431628229d32a464882664b4e2f9f366a194acd728c52b3d56c44b75a9528a9c57971f1a77dfdbc7a8c6eceab0824b2a09bf3fa61c90bc8cce2bc74a075cb4f462f2c464a588c8c983042c268b70cf59816f3e553b3d56e3559f6428a4f4fcc95644f237bda7413994c972db599b15b7a33a9804a1e9640260863a6e98e99a54bc952bbd57ed231de4686c307470f0e1e1c317b5a3eb3d3af71dd5c4455d2aac325c58bd456b3dd6eb5d0c44562f4184bcc4ab5e263f92af235b2af5921f133e4873f85f49a132b9440c184cc7673d96258cc978f6db5d225d08a83644cd9c361301fd177fba87c5f0a2e01160185c0283498423738832957566ccbf2555a3d95c9e523faa87cb7cf24ea96b7b07c29b804180528a4bff44bbf54fcd29d92a90c9c8de6cb27b5a5b5d44a5a4b5532fd8aa94ce93202551c26e6a68a8929674cb13357a93d5534627409a4e2a10aa6dcb7a53265565654375b9ade6c44b7a25b4d25231393a6351bd1ada8161323eeacac286194aac49db196c4465db634add9886e45350084aa1ba14a8335a14ae585aaf261614c299640311c8c493bba4ac9a28dba6c2e1c43f75197adf6462e5bb7fc8b29bddb4aaddc6c697ab311dd8a6eb5d4cacd96a6371bd1ade8564badd46c695ab311dd8a6aa9959a2d4d6b36a25b518d255d59196bb634add9886e4535afe3b2aa7c188c4fcabaf0044986b19f6bf2de7b31bef8e2b7b4229c58101db8a8dae02a7f5a9e75781c9cdad3d270a19b537a267f9e8db0382d3c2cfc791662715027fe3c17f13a30f7000b32d0916c0c9f303ec7b8e8cfb193cfc14648be65398a87fa73ace47372d06dd9bc0427e9cf31148fb3f99bf8bbf0cf431f476d741e2332fc398dd7f1d5be7e0e913fe7accff1b55a8bf12a8fb49decbd70270f68c5abbc7c241dcda090a57a86f42fa698b8d507da308f1e4d8963b1128886e7f275fb9a57d2cbe895be8aec69a3d4686009c4b3e23f3c9849a55bfe0ae36d2c4d8ac57fb86032dce4028a131d74fb8a7d8d65c998b50eb60ab2d19a9fcbefac07f59a9f6e7db05b5a582cb3e431f90f0fc6c3f383c36cf01f2e580d4ee354e20c3a9bf84ea1b38c336dc55a38e8db52595a3d3544f0add36c94ae2c7e04cb6b94ae2d1e87e5344a97937fd5ec4953bad2dbb2a6e9a23d0ecb57b7f154e26ce20cfa4e254ea1b38c33bd393763b470286ac52cce4d1841a7101242fc14623985ba53a8d5534304d710d9b7c8bead912bd2d2726fc9d2efc735cd8c6609cd102b07568ce5c30aa28299917a1159b2b30848b384664633c4ca8115630561f9a8688660688666d00ca56886449a2196ec2c029e455c4ca6fbe9ebe2a241fe9dd2539593110a092a0835432df9b3f2188edaa8387aa23cb55143aa28e277a85395537a3242214105a196a066312723d5c908e66434e364943a19f5212723d450b79ca58a22aaa2a0f80edbbd883ba84e571105f0d3a68bd6a1f08f49dcc12f220bf92514c92e531ac11c2c814a5dce30030dbbb7709653ed14e5d40538d25453bea5b2dd13913d4d416d4e9e5add4e451e14eba2d953c8ae3528b4af39d5aa8e9793b7e9e214e5f5a45b0ed6baf5898d34d594d39413d137d2f448bb238d1c69236da43df91a276f63392ef28ab2e9a27d0d1f62a3fbe5e524ee743ca32ac625108b8325100dfef11841754b4b4b302333d0b0bbe697c57263a1c292b62cf1adca6b4b6d116a89e2cfcaeb8c9aaa2f01fafb635d8ec16de0635b0e5363fb9b94c0a75715baec65afcb994b7da00929b8529c4b7de017721cf7852608c3240d7edf0f5ef792030f8f33d933e9c99702cb63e301527936e05d0006196ab0381fefbc0f9f980b45fd759e8ece0f711d1e9e3314330fb99c73a835df6139adb305826cfb23b7dc029fe3bb57c2107a4bdbb4f7056cd10b3d1bad3c369e9e189e54cae33ad77a99d78ebf600b4d9bd7a3675e5f041d067bda0bbc60e3522a117b5a71a79a55080c35f478e102326cc0721a6ccdcf57b039a97ba343c20e134e6bed598598a857abe6def36dd21eff920324e820ffdac1171f7690afb1fc05888d7e0dad417abc50837c8e3fff851e2e78e90e6b5e0f1774d8681552855499c9eb61cf9ef3e4b6f6e70c2c76f5667f7132b7bc7afc997c6c871eebcf7cbad02fafb907ce9f5fe0fd9a18fb58a2e327ebc65bcff24bc20d7aa33f7f34c55997870558fd6205641e21b8e676b9f8cd3139cfaebdf2e7b77acf5f01d58c0173b0c7f0a687abc5d5e26a31ce5c6e72c3948ec366062a06fb2dff0261e15db839aa5bf99b23785e9f5753752bc7a6ea3e8ce3942b746257a1f9e3e4e0592c1633e266b33aabefb0b6569e8c6d0a7d8e39be797f13cafb87977b39e78c4bde2f117c73b95f47e6b686d5a6e6fcf7e6d09e26bced6969c8fd9af0e753a721f76b61e091d02f9f8183db799ee7e112958184ee558f7b9ec73dcff34cb4ebb814118e7b13fd59fe37d190db9e893ec7f58a2f17d9660ee5fdde9b4d6b9acc7d4729ee35e16cda1974f095e11ca297e3ec6d0f8754e61ce7893c6ec73ba7c2b07979f4cc562ff470e7ddfa7d4de578e69acb9e4756f10036f48beab0bf787634f7f2898d39164f387b9f0177197250d7dcb5b93ec771dc76ce4421a0bb0a6ebb0a99d5dcf634cde0d6d0041bdda99d32e5d4de3bb54d40e067d95bee718a2d033893019c756bbdc86f31aeb8e28a2bae18e35ab9d501cee11539ef9e3326d36de24c933d2fcff75e0e55fdd7d4fe72a770e21b9233c647f91372a4e4debfff373923ddfff7c840fa81c6b2a29bf9cd1808877393afc91cc7407f8f7befbd7fffc87d4f0c24bc71c903f36bee1ee4ffffffffff33be3b705e77f150c759cbcd34be52dc1424d5227deffd4a92d9d4b3f1dbfbf5724bb338cf2fbeddde77726d4f141f2299fd2962da2026bae7c389f76557a448d6538378e0aa4cb7b19bd341b12dcba3f410f91475567e7a97d473cc06bdd9d1ae88591d94df3d9bc3e9d8d6d9ed79c3e6e8d49be7d5b49fdb568c14fb46c7e6dcf84cb043fb195711d47d1e151dfd2a58377e867a3770736acf6d7d5eacfec83ab3ca8c763de16bec1055b04efec4b5c25611f32ba260fbe53068cc31c89fc3b0811a38fe241fd11f8ae9e8355157b79d3943ed288b2cc7d2e463d718510222d72609540fa830cd2b4c9b3d214ce43d18c6a3f90f0f561fc7c7c3b2c2acd8028689e60f1c4898e61646821d6dfee3f8b8fa4afac7a99041ef54782aaa4de1eae8b85ce7c9539f92ee71ce86297aa7c22be91dd71834bf1bf61c8fb0aacf673b1ee87f9cffdc63cfe7d66e81af12fa9fe7e7977b8cb1c6188cdff94dd472ccb5b5b6e3d0147adf9e5cb54be867a1a4d7edad3cc76aadb5d6ca2d149bd3f9dcd8e7a099ff671886a1c581b59767293e7a149bd3f97c8e5a2794049a681764e533d1ae4851f763893aead94e16c56a251988253a2afe20fa9442494564e38c93e99dcfcd09896ccbf22299959f6e93bab5224f172402e984c06ef6d2b119da9a803eddf2fc77446de89e80201843e61dd79e89dad0bb328b982459c0f27ef7facf4a7eabd6ccb92e73382300a342115f5b45548db133c9f18b41c72591ea76057e311d7fcfe331781cf3ea710c7a36f4cee68b6fcf2158e23fcbf0cfccbdccdf8643adce5c8db133bfda25d129cefb40cd796b4618ee70002894a2990a4d740606fa35fd19d2d0efe71ac27a53ed757f2f974a79cfb32df1558117784a78a154e92ad002284698e440c40eac140049d6c4901d5c19e2080a40230a70b3103fbc507a6e08224ca2c2464b3d908e4e0f9c104166a0f3c3bb1dee0f9d1f254a38741eaba756b07d4f1efddad35296f31d41b822e551d1fadffbb735c7e3226ed0e50e06e3b0e5bb5f9ecbcec22e0cc3324c73612e3998e6ba6e847d7da2ffe6741dec069b46a8340c9a0d82c866060040010923170000181008854362b12489b23452d40314800e618a4e66523e964763c12487511044418c418610430821c610620843aaec06016041993d38a45abba2e1b8e19360cb62331aa998d841ccb3799860bff838f543aca47115e69b4530a6aaf28b22132156e48ab54ce8fe69a1764a7b7281ef1c450f424d061f1b572ae538d56c227646a8a378e1a1c42454d77830422c3c469d31853cf84f7053efa54bfb96eff75a565d8cc2d3281a0d891d31382f152a7e6ef2e39eabbacdc786e2634739e1d2a72cc9c3045322f908e5e778e2b305da34dd311a7a3283b3e77b45d12e491db06343a228893f6155c3da0d56266becee846706541a7fc09406a62730a9d58b777e0041bbfa013b085e04b49ec17c65efcc211432863bab9b07ce1a64581b8673b003ac4d7344c7106b9105999b2cf565c0eee8c884134548364925e4333169c9f31b5604e2a55c2433ce1be8700f959e8dee72d2963bd039ee41b86116cf416c947172b1e22bb73857996ed6becfe6abff1c09dc0ed75b6c81e245c701fcb18dc6e2caa451fdd447b2e08f0db4128b30c3eda03544753f8d4dccfc488514f575a1d4dbe29bfa04eea9741eeb407cd0f6a39ef76ee8ae8774b5a3354cdd16d278b807e989441c4e3ce74566b2b9fcd06c632d376b50d1d9260792d730e648b626a0f49a6b60eaddcbcb7cd81e8e6449d4d732e626408da0aaea1fade30298f4bd8acebacbcf13660f50d553600116a150b3fa92299bb78d854be3983434b3d78191446c68b1cfc4165663f1f517428b706681c4ce42803c160a02c82677530424623cd576ed70ab24de84bb50e86441713723f4779742a8696c395a0933492f3b709fcdc0ac28c20491d7a5ad3b097dd09394f70316c6ee2015f37f7c7b694f610b1e88f13b1e461a1090b7859a83a363f9b3c35721c315f51856d1e68619fff10ff4fbcc6965648bb588f6f9d74c351436ddaa4081079fb745da8ed0b17118853857ed9c0a983d9600aeab22814a3b26246f3ef3079b12e81c744b156f75772cf313d2a23730af3abb8e7b2c938669ff1861d192f8e5b0e38854a7b142f9fe0d89514a6fbf0b07424a399e2b52a8eae1f2c78e5cfa2cf350f112e8af9b0f174a27ae46b795c316022831b4abc4580d8de05827fb682a0f083b39602e2066d07583d529000db418e74a838ed868d6cce5c3de830e70414201e9f4d934dc33a6d01b8287105ec0565ab1b426149e42c294041e6bb9e3c20f552c5a5885c6fcc6695d3d1201e8688fee6483865b619182747f970357ff7304e6f78b2f0e65a40ed47d83d38dae4e02e10720f0b5b5449d22a6fcab32f95018e900981415fa424039a01a3167d3cbd5167ebad0a1d531180bd6b6e8a0856615e45c0e5cc60612dc980bd9da25bdc9c443e1e48e64bc8b1cc88df1239ab518e1f609d9ce7009657bec0d76c17d1ce0b799cde7253b0bb512ee33fa724a1c3a95742856a233fea98d8213e821551425a63cb618409a7bf92dead217e225f75dd3054de9a2b9d3d551fad818715062c03584898131cb7a4654c38010afe5863f8256d7cce9992023e15b1dff72e5be6c6534ea50b4783f11d4a00f2f2229ef4c90a2c10856cc1b224089e79041f4678e8bcf4682890c6aedb89dee64c1d1386065c7627cb7ef46f11173e9004643be490f1499756f6ab536b41902b980da1651f279c2441693849399b8cbdbe092840355c675837ab9ad01c5c46f2307a97374684923f1db7ea22f23484a12aecf4db89e16a993ff7c8b0f5349c211679e069c8fc138c4f2460d60a5f1159c9b4e3db0990c9231270fbcbc3a52e3df5fb13dff4ac3d4553437ff64ceeb5fb514a2ebf0957d3a95902322e99fd88453c873396663f942319d2464adecda76dcc3f569b7c8e68da7fde8aacff45816bf955b88bcbda0cc62657ce84303e009bcad467c2c777400aa5ac8e374caca61249a93510ac8831b70ac97e9c5943ef348934bab9789dd3f3ac894f6f45bd10f47572c81ed841c8118a104c4180407e627b0cfd1dd959371d0fe3056a92a1a1bffdd991318301ed02c54aed58c1b78fa771e86dd619975834acf1f94b4332f479070c21ee063a29e88d8940cca5d3410310834f7b0cb9078d1c0b93fd8873d82812d40d9c4a22d5e252be0557aff0adb3f5829390799072ce08397da85100ecb4d93f301ed557d6dce1b87b4f919aadef751f882a1f061aae4b3a4cba90e29a50d10d61bb0f03e9fcf19dfe4b9c7dc23d86f930abbf2f58e26a05b26ba4294c6024d1a6969c7b8986fdce96119a7e6a1aafc7a5cf09c3573b3bcf71c10ee2981aed7654d80352c4983ae6140840c1d01a1004fbcd7fa4c9663ec3deb6eb0c7fbdbc72d20553856bb7a2a3279918e2e8450994f086a88e63d08283705976d1bfbfdd642b189c00f20cc85227a55f9c6705cab45d4ab2ef7acc48494262860345cf1cca2d14691479cf1fac4c85795381eaf9971cd9314beaa8de0f88cbeba0649cbe1da40c3d6cdb24b4782b1fbc9dcefef85e12ff459889bf6c9b116b7477083f23d77d447070fedfb41412ef6dc56204b98fff07b1f158e9a5b6371174c0a44eaddabf852672e5b2c47db500d510413a93064943495015cf95d5f2ac09da88955b51511deacbef0dd1b64ec5ccef9d7cc93777685358688fd427899df16e82203dd7521ed028147cf14c0afa78db788a4c9387e1a959d10f13ab17611516a50d547199b5bb59f927ab76d006dbba49cd86293ade87a482c278b6eed7c2f4e9e30301991a972577b3ae098c5fe77c5899bbb470f0c1c6cb122255b6c7d97f7a1f421e20696cbf9d4c10d6f790dbb61c96030c36db082c77a24d85b2d0fc5e608efb05a6ecb04f95bb0480272ce4c257086d1097c0a5d1ddd65722c784b5ce36b30d4b7bc29d7902048f01878d3094bd5182ce43c45c4f91580b4786858cb45f9809b3b73f9579987263e916db21205223d7ce027ae118032cf09c3e6f021dd42463f01a8ac6aa8d6d51bec0e8ad9e959b5adbc608e6f9bee1bfe7c5d862e42b91d9dba95dbd20b5daf8d63d2661db1d245e3507d183cbaf6a2642aae36695ebb5af13532dad2c2396299371ee8a5e8bd268e14827ba61817bf1cbef4b87e882663f90ce1771caa94385c0c774d63462cd84906d0567969c212ebc8efd7b03ecb77e4ddf35dc3d821afe8494c6652b694bc018b9f40ce2295032e6b148fce7c1cc31e59de5ed66b981efbcfe6955017bbe3fc427ef66d377489ad8cbf2c6f3c9ca0d306f0d9908ee342cc12b62bd8576ab710804df67ca5d3dc45edf01f3b94ee0afbc03121013a6f1300e693ef65e6ea16807f478a9ad8d4ec60111d605a4ed88f2eece20802237219032bf5f73da60e70d97639d2f386563daac52812e05249daa276aa7405141233eb6b330687ffcd3b06d9af62df1ea0d8252496c811d0a048f431d4274ea8a5057aa881a9f66e39cc5b8953dd696b17b6317fc53672163a9b6d47888eaa42b412531f73e8791890c279c1c4c94e27c9c774f85708ac991e8025b80d91815ca2884c65eb3eb1a87b36449c39c0ecb9ba29d4c8ae6b6d076fa2ba9d6d76fb912dbe81e5d7869bf6caf31e8106c0df1bba580aba5c09bb938c55ec6cb378606286a02e89944093761813c75df8c7277bb49a7e477f6914103e8a87bce75476b24c0227a83a7ad3f0e9eb57c76b339ea7b59a1bea296d024d234e19006dc8e314e1fb964c7d89796051e9af24f70a27d7ba2c2731b8d299a044136a6e7731128a397ab1bee07786214e9a17601be52841dfb0e23a92fb9df539a0663844f826c74dac97341676b04b9a295a1cd7c007abbc1518d239f5af10ab51082fa8de7d6e784082c151f01bcd89330578737506e582522e972cce0c1bd263d91539465065d82d83d77aebc77eb36c26e5a309281f09232780ac0c122a201fd60ffde0bd7a02aadabf87cc589640232b16f27f05a60b4f2ea64813052fc88c2d94a9791cfc830d9340a5312c887d83b925952c7069a35fdf4a8e699113eb38255e5ecec321522e534485d91b1151beb61f2d7e48807262773862eb004aa81e19150359570c2135e342127c4c1e31af5c4537ccbb3085b73cf843923e2c1226dbb3ad1b8acebb90955c0e3eb8fe5701af006d7c9f172f5a7bf08611d78c3d2928bc077c8560cfe8cddccd7da356e1d564e2a2ee651b7e235ad39e5d5946f6dabbbc815284be42d9fac7595e510d662a6b7409c929c7b425e11212a7a3a5f4b684a46f10ef0c884ca5e851ca0af904bb428634c51a08f74f80b0a74442b9e812a0fabb216ba16b5a16c109c795cb10689e6633e60e4e01a5f34e8c30e88227212aabc0b37111668d7c2821f5f9f6b912b3857411d7f7df98ee102a055dd55abc242600e4bbbde019cbb9bc06bcf44220d924a0e3a39103591af0d03bd00a3f25b5bb804bf20fdee6d285c7d3ef1516678c431888c24835f0081af01c208843786c6f4c8f02beb0e7935a1c97cdca599a4711e0751c33c091ee55cb7f4a397caa04f0e34c697dcc53a1a662eb8524dd4bc611f6952566bcc013577c98b0fee02962c19b5cd221e0b689dc3433df162de781d5b1820de7eb50c717c2cfeb7e4039541e12f8f81aceace3625768da4496522094a0383e6b18e04624f95540e97e45e7973ea0b2624b6f1d585bb5676bd8a3a7eddbe2bab3f36f8f5431eeb20a15c8f15e39aafa872f206fe47ddc19f16d6dfe11a294ae0334cbf7b5708e5cc6809b4e10795876b765f43278127e3e56a5d1264ed56efb19c904f08f7edebe219ee0886a34676214ceabf5aeb4c63acd9ff99dca80bfc6b97225c9881006fc7d91ae16889582ef68bb0c4b011033a58fb9a0fc48530f96fb6d1f4778cc9f3cc587de5b03322dfb8cbc3db4e47abb3510464fb3811b4c253d69c74ff6cdf4fb1bf4c3dc731396b8f99bf6874ba834ebe8dff9638fb448309f6caa798c7523de2560507860f67c1230b068209e0c781dbc1c7d9afc4a87d6cfa30d91764d140919f60dba3c780d5e44ffc9546864e28f2cba699858ac7607ce0427de21147f915fc20caa4556d4e07bb4ad3a6277481ffc57d80723796c06bdb4683d4b6b0c62339c0dfcbff894677847120bf543604aaa0d247be1f0f207d6b0032960e4558124d57314b0215fa23adb58730c54047f22cca70eb09cc1ad9a7d5237a903addef7a48ed1c42c3a4c0794e3cc0c74312ca830a6339cc8834334e388bbcbfdfd3282939805f867c6adbecf8009aa6aef3a4b8fd1ff15eae07698ea6cd6820d6bf54258b6e9d8652c801b734c03b2338c4e675abe60eba53ea712e2cc26fa43e8f9e2fb2b1cd8dbd656caf08075b45bcdea0c18c4053c1973f9e61a7df2c459d17fce72153d173b0079d97c78e676086c43a349e2ebb2b3a8030e9eb50be517fed72c001c619c852b228652dc1e79d7b93b3a424714f7e7bf6a4a34fecc605f9875e4a068964822b7096903d33283c94cc3999f3320c453c8b9ed6661a9fccc875abb929397b2a1592ee06853a31d879da9c018ab93727b5bc13c660554de64363692c8e17c2f4e3cb929943a7d9e1195a368ae85f938f797b986dbfc3083006ce79a81e320fa5ed444bbb89c991fa6bb2522fe759e76762bf28fd6bf8dfe1590208db265e19a50c34cb6523860535a30dcf3bef52a892aaaccf362c98e6daa00b14a7e98552d2f2be55d7e6b932a85c6908a82c2f0ffc62de241db6ce1850d3f039f37adc91038301c58d8fecb0f781f159b33d67f7be630949b17f3f8fc00cffe1786ac4ac0e93fc92b5840f45f4f325300b48409420f95fd86cf73847ca079f4f071a012c44009970982efcacb0f57039d4e08abbc4c987acf2c279c0d6275b8b01f685e882bc1acaf6d40ef7883a35362b0e028150a115f42349940f93861f6ee72aa9699771c2155f10d51e6ba0dc9102e172f3bf8d79b531be28ba4bf12b29771fb897587bd75b53763c178efdf61a5c314bce2776547ef08ffbcfe1869a987ff4bfef09cfd8833146052f5e0399d6aa147eb8f7ca276d7b60071d04f6bd4972d3524e185124f29be396d57279725deb27f961c8c1736128d241076e4cbadca6955e88e012a2e1ea097dd0ea0e2b0499f9c90f1164579b4b357bad349b08ccc002f96a1db701f8b3c2e7629713ad54c9c80ffa51178259c2d28e46dfc220c8510fe02f18bea4015a50aa8e8681275cdb014116f8dec15c1005575fc52abb5e15cbc8261050dc9825cfca235e11f5219d53df654335d9a0bc4f6f83ceb9d58972e7db89cff151df46bf2d8b7ed591e5dfc92ae5b65db8db8f837cbf68277d3ae962d77b6491d420262d7775b3ef7a19f210bca93ecdafa34f204fba1401c95e8c38bc4bfcafb4b0137b1f04a4f27f5ce38cae2a64c373807920bcea20687b4fbe466e8a4b53d7fd28a9e5d2c959ebe5b0d8f1a93d649cbd3beee7c9436f99bfb61ae7f6e90ef71a13532fb2d4a2e7d0b35d1a0608ebb7200c43ed02a9e3070dc651db34bfa2f5c7fb0cacf6a69cabafe68033f5452c0ac0e98bda7e51d4ce16287ea3da27cf2068ca691c27ebf8f2833fd2a748c3b36c9ff609bc248d28e2b5c8c0a54a2155c84bd5eb3c299107b49346522247d5344a92b09fc7f4354821cb81103033fb25d6061fa6185c774d32f0647433e8a62ae45af0b0caa11c6495ab1f5d4cd731d363bc9f30a6d1fcfe7f0d9d47ba8d0261f65cba1bd5ae676dec80fa5cbe5fb6964a8567b9f222a3caa2fcfea7b546e47c86c71d9daf2c4255406898e6c5c0b2d0da19d77cb921091db75ca1483da67e3d4e5869efdd690051555ebe054d9147c1787d5a66a4250ca3c805b43bf7f8d7b1170adfc6ea15a320b2abab1410d624bfbfb83ca3ee7a56093e7830afe754929947e1f0557f6a57e44c7c411c943b7ee3f1d3078ce71881712f7f8c8877901327ecf7a2b5c4d2fd37d13d461b6768e1784d382e8bea11173d1c5711ceb305bd4bf2af1647363ccb2ea9b12ffea05bb04304d333fcbe9e5fd8294be478ace79db78c4d7d05c78eda1552948eeac103e69f287af0259b1d9a250da07af8e00ebb750baad16faf3082c34374e7ed1e4cb37ce013303f5e60459deea676e02d9f9545744e5d54c3ad52105641028adb1236807512e3ed10f6f6661eb0c2f63475df1ba3251b91c5bd9afa5b224ceeb6c60609133f0785464fd14a0ef9dec1533040464af3a17b3280b4ddffcdf7cfe897ef32e77a097d761caff4ff1d7fc59252df96e90955f053fdd073adc964b5da80fa9a76ef1e51a18187a558b6f1becec70ae62c1608c863c19375088f0929dab400410ecc29dd0eaa3019206b2a8a93e44808645643422a68b210a443555141e603744701f915cc415fc1533a2657145006ca61821353f0bed3d426e614b7b2fab8dc3110d44092143400a193c5ce8fa3332641d08e2b7010a0ba7ca93f88f003e62ae29aa305441179d8af56998e3aa6d568d9f26131fa879039fa88cbe1c259593983037038c4b2f1c9da039339642b9534dc17bfc07fa580b0d31d3c99289ea463df04c899b323305656f4760693dccf660ae0445c984df7e587cf4bede78902676528cb40e69221a6974ff686ed2a6905230131f7f14e353bbe85f6284346ba1f85a06d9d64899759efd448bee94d32fe97eed277eefc670c23192e9c62fe01a866c7453f0108049626cd81d60ac9f6858cfcc1a3c938f8346515874a38edf18ab3194cfb5fc34b1cfca484e9366b346613f5a11c30c43996f4964194525214f6ea3678d423c34628bee97fed414974074187c554b1a85ed068dc23693e7a3518867cc330adae54b891fa76e7aeb249f0820551521e11d2c08253e4dc5cf90c12632274984dbc543416759409cfdbd9d1d3bfeea4d4f42ba9488fffd595a09d3883ba8582d27c3f7f79e0c28a4cd305c911d4a00b7001ba8c4a7f8b90483b0b3c8c420d08fb49c932ffab15b5e11e01c087ac4040a7ea140ae2ac7143cc3f7b50fa989e309f45cb768e72a2cf61c963bc9d4a39ad0cf4f8514ac96d879c45698a3046edbc23c54f108ee699a4d3a65465fb1abe7da7c200689ed4556c97887578c9b186a117642d00f835c55c0a9c27d16d8caa68454d8fd4eaca5c0c589d75e005c1c9e126d4864bb946b5301483f5cf0f03e5e7bf164ed8be3a6467d3394eda3a6d3006dc36c158cec02e65a68467ba46058805b82dc4ee1a1250e4d0ac6542bbf43a3293a21e2eb1d1e992734500248d6f2bdbeac7125056362d82663dad1a88fbdb09c18e7c091819d543066ff37dda8b4a14c3349b67f695d8f51c4ff6e9ace5085c19152bea811c11365c7c2aeeb6517d3dc6330320b84592733a05f67f23c47625a46f91cf19c925142753df89b9130050e422de3bb456dea3ad90ac15a4a08b4258f315a46a32d1161959e60c3e87851d33b1ab546237fb087a2facd26a80d8d86169697999297ff9d89fe9b2d685f1221749f0dca47377bfa8bb2683484ef1e691dfae2b7cc6308b03f341ae547bedd644e1e712d5f9a2a079726613bf4a5d11f50316986b23f84ec6b881a1b1332f11c9f94dfe6b556e71f36655363beb20eab19fa66d836d8aa8b4a5930ea7aabd9d71096af72e5439874d830e0a2690f58b35384234cdf4fd16c40333b671999baf516d41b2414b26008feaa71bdd1eaa908c1dd589e355109e33266addeb0196b578c41c20a8ea26325b1603133b8af02af6263facf079a167f6b62b71f8f7f213972fcd5609e3e3c7b521f8f7f26ea67a5a4dc0f5ff063581fd7efe5d39c796969638ff0b98f32dead0d8ea79a64559b513f4d1659f3648a83c6c49ac0b32de41aa64015548f33b20b6125dddf675255b0907986a5a74e64ec40c754eb626a810eee4d408be260079d20cd1de1099cccb4534f141673074404670ae6016378367cff53efee5f44aa0112575720fa043c7740c7fc5a38455431de8b69a84f55662b7b705086cb923daa9385e529f0d9f78013de347c5079661fe4e5ee21f6b2c0369904f59310b5490366150700b247175570f63c1d98a030f7662edcc292e62171ef0a457d19953c79cbe36c6eba1b1cd5801e22c81e530dbed7d3e84121c9236fe50a3eaf55ea410c362b3ce22c6212d8d30e17bdbee4d079f98229b6ee7910798c3b06ad58012619962604ad4e1aa642dd03f59755184c7461680b68f61d2606ffbb53e07506258501cc9f53188c6c9009fefc65033a3fb3901cdf6ad3f4878da30c4606be004d7164c89096289bc9e23f00417200bd4a6ccc8cb1cc33eae6454877124c58708e21e79ec0c368fb4b5bf5dc1f4de36cff9bd3aa39ed790eb33b23f4416efa005cc51443eac139b1e2f48ce9dddcefaa994feed8bd74819d6198b905d1f2d2aadc99964a1adcb59c3f14336eebb898842724c5903a2706c79312c33817c939cd66b5f1e805ef3a932c66453d681d9a6bd67af14addd8c9c438453cf961562464547f79b4a2326f685605b5ebf8e5ac56b55ffff54e9c3bda26f653223be87ad76208ca215df3efb4c65e6207e0b4c835d08db4ba4ab6d6920500f93bc493611e40fb5e456a3691b8b302b15de5a13b3ad5e1fbc107177cbc5d41008c51b326a766a9100faa44ced31a90c6303e766f0bd9213c0d8d72cf2583f8b55ae8530fa6b3c2e9eb54a4365e73c5be2848426d86f38ee622c0f7062b3650e67dc307ee81257d5c415bb361ea60c063168cd95482e0d00c10ee319ff0eeb98d90cf66b245449a09e674af01f6de9b4450a64ab490c08ba731b0052ecce0a2f7ce3f45e640d9d4535a1df8ef19e8b8ab32e0c9db62a0cc2cc480dc8e38a8f3126d318628dacca242946fca740e6b8b60cc7f1b29981dea4268807bb3237a68878eb2e3d6ef6d343ecd1e53d6097e337c254836098b46087c46fa3af7dc0e11aa56b721a3a8ceec7d5f7fbce4d35eef9aa8f4f6dc9b25ce6aa4d87e329429e2c0d21b39f48ce1ca343d55bd98f7b65933f2c66f1a6c17dd437d4aa17066102a3acb4789c608d1d360dde9b6c682c27ee39395440e289de436b532c1db6a51893014bdd85ef759594c68bb43c2e0aac45568ab8bbe3d05ab6c19785245e95b4e0e5891ea93cf3aa28b93abbe3e68e706a3dd6963ebba3a36efd0c0b8770c6459c0ad4f4f156d38baeba5c8ebad1114ef227886f0a7e0d1740930e6a12a698ab5323971bbf7ececdde90bd547c19f307186f1109755bf007d2496f907b68284ba67ca7c2b092ecea3a18e88d4021e90a4f653ab91ec5018c2c72c10e3637353d74d9630148c99ee89f97167cdf92d080cf7e7cce031c502870fb5f2a51886b78d50f89c48c7c0f51888c15f3c11d0a34c229a942df3f559968ad5d073ae58b12a461da14c97513e484135f18bfbdb8374aa7f340fec99934bbb6e7dc0383e62fb94c9b6e96df2632a272fc31f38c318a8e49cc6060a7400c11b0ce2836021081403e00bf02b0c3ed1aa7a43c6a2f5ebdac8f55e76dbf6019c3dfcdb018bca9db4c9db76864dcde02c960f9049635a9f8411796b9f947056d25dc18f6e2fc1d94b1daaad40f70274e5aa98e58bb9c0467107460ab6fc7b3f7974b6f6db8ed7efb5a473e247fc85268340360e17cbf468527c96ca88ae23d577227d071ddb2cf371ac4703011e081482f83bcbf68fd13b0cbbe807ae156c9e1eb08467677d3e7e79964dbbeb0d885c7faf9e99c6c94b5a1459e11ec17deef370dc26f6dc8d471e91268f22355c153549cbce214b4e42e1d35567a1b80495d698a888ba422c9ea7e36f799081418fde15dd6eaccf8bc58cc81a17660f45c0babcffdbc8260ebe3d4c0402c624fac92411f23fb11add7dd70ca946786b9f9eb9460201ce942f3441d4024586086a1427b4dbd717696649831d7c5c041319205d20fa5957ebc7fb9a03a1f4f0907e43683312b04b72b7e98daea38eff5b58b207e548d3c71ac63eac44418e6ab12137935b27393da06ec04f23c8a911a27637294d23a48cdb3dec65c5843f32a41297091ab6b4484c46884eaa26595176f7b2fc333a448662c9f3956275def8b55980d85b31637e86b48fb104a98733715666c3c99a905fa419a5670cd2b0e1bfff1217b0eb2b01929e0f7b9141f3ff41acf2ba62634d267fc48a75ce356f4583da538620aa56bf11df742ad2043504cfbc768ee45ccb86d4cbce2091ccba94f2629b4335b4570316ff3289013af20d18b31ed4b320f5925b5a65c42e113a42de851d8b5c5839114640b9024bb9dcb465d27684cd7912a77044c39d9b1af5e016dfdbd3104778e2e7839137198ca4b58379c55080e16e76ba759c0ffca9735c9c98b42a1c00fd03b4916fc5f99634efbd88291eb962e54fbd314154b0db850f4fea5232360083de3a4f1d9a1062547673cfe5569143f584cf004499b7d9d13c7b17fc3d0f374026604608463cf00a60c41b0db111e2b07cceece01e2cf393bf493238f13f478b9469c4652acbbd29a06728b1e372448fb7acdec3b3d15fcdbca0487485dc0b487cf0014fa0ece210106dc0e1fa72c32d3409030803f587938d6443060cf3cde47e03c6e296f245ffb665e54b9aed307ea5fefdb10b4608b55ba540ffe6aa4aed623b6b9281b7bb2a9509520a8deae2ae641beb7c84fb3af86809858c21a1a189afbbb3ba9da93ac8debe9e4fc6745fa282cb894ef1a7708f02b98558198d3af5a6e768e9228945bf971b29b7361e111f165bd08f544edce948bad197684b1b8ef9f9a4eb9c7a87894ce6c258abb3ebfb9fcc243303132ce2023ae3565b14f0d28a2d45589d2d8c8a7ed63a53fdaeb8a66ab53687b9d841ed4d503a8f6a6c564289529425ab14bf9bf9eac08cdf20da16c1eb0bb7d6e27a6a98eb68fc6763a7c12d2c8275809f456bd20581e122946da4a4063bf9e52b2974d859eb028ff7d884480baec87f5c4b5b15f87cdcffd2ad49a6edf2c4ca8cff62ec1b2e60d2c6c086772314c64b1636f08e7bd664a091893de959496def0ae1674b6a05b4ee1fdc969f4e42cfd5be52302a411125fbe2c9cce64701f852823ef64264038e821a6ed15cc01c87c5dee396a76769127cfb8bb78f0c1b8784cb4ad50387fe7035b60fd7f1d9097bdad73106789d73a8ad7b627b4ded785c44b9cb2a9169b4cea35a7b9a10c5232b4c5fd222dd7a35dc86060a024c5537ce4602f9e9972005a1996455277c668d09dbc096d991d50f7a9e90a3515abfd8579ca6ab38d267b01aeea5c81c59258aec6443bc0f1ef0fb94f639e63dff059055af5e5a0f880dff0b042790926e796c45ab2ea5826741b69ffcec0459662a261847ffd7638d10683019e089b79b3dc96362dfed3a65160360026f3f31c9c06d0210f6fb62fb2b81e2aed2355ea22e09f9f4924bf28e9efb6c22d01b5bb8de81e9644ac43eb4c8e84f84b19a286d4f828d4b44c38aa44966e87a6080add850484bd09b86c67694fe57acd8a69868040d62dd51bed284d75b390fa9e46e40b09bd21105382446888e56228c7090773e4d02324296b8300ffb81319a5b43ab66b4d3a7f5361d3e60659130216317e233666c7d421bbf7c23f228983bce323d8a672eca3ea4ad6263b58dd71cf6c0c3a4895e0c4a4e2ff1783ee4945e929dc376df5ba07983e15000d818c59c1aa85d0290393cc4352cc59b9c7048b0cd9ef68082ea704f828c4454a269da7807898adbbf70208ad2b57ca71be8951f984bf46ff9e9560572f95234d6a7507de04e7090872e58332e8a42fee4dba591ce910bf577aebf37d8821a68d518fc26357e845eeee9ed4c4da188419e8e31cf8445f33e3a2708875ef2fe96b963e79b9bb1504ceb25a3d48445d3d420d4eeb5604a26b46d733c092a4fa4fbadadf7821429dd53f522659136396fc0f56c276d2f96e93a0ac2b390880c6076f0ac0bcbc73b05e464f63086cdcf32bdbfbc5309febe0c2ae2334e09282369fec5fd1304a65f74700fcf45c24c018d862d1c0616bcd9ac2aa203ec6b830d895f724427f1a48ac0744c8061b8c2cb152c7be1b005862b18b6d0e00a9651305ca1cd140cc30bf867c5d1a9e951d3accb6a42044767d3f137beae2764d401191d126b8ee649140a9a4ef001d400bd8db09155b64475051523a8ae84ca882a235019b1ea115447a832a2aa2da8aca46a049515511d59abf2cf82a372e0a3c6f866eb426cc45c74081ed12164cae09f3cef6318ff3a80b13d5fe1213d4de26e7f513907651bc9f550b3948b100db5947424b02d64cbec15062b61b1babc6ae4ab9e095ce98877dc5ff9be548ef1759549dfd7306bf6340e4cb355e0b2ebd77297bc7e2d85c6f09f08118045b2e4a0cefb677ef31c66902d0fd36f6411c960a846b13ef5c34dc321c7d366c18f13f749d5df4940880090f2cb5600a7f367791c332a0b662d849365a40f0d73fac4958ea305d6a27872927b12567081ddb24ff847a330f8ff916d587a2f030fdce89383be2c63ac528fb3f56f60f56c35116595ac5a8534bc6757f30818345343aeb445cdc8f0bbc9b4cbd0d892c97fc86f8c9905a6a87feae60a217d095c8aad21fee3d620c7ff5c0e3dda7bf5d13db6eacaa6d6fa2c603bbd8cde251eebcb30dfca8c3eba31dfd3115078d9699781b33059e6a975b2e586e8f17f2ad6759f119f816e559640b37a541533cdacbe29af7b81eb8eedd3e6fa0f0fe897a6dfe0e01af66f06fde565bfed359a740628923669936949cd4f74595365969188714ecee187baf1fbf957238055750fa286c73db8e08b5ce0b09c82f2077d68648062527a2f2a2240a743c3beb907f43ff734b5ce55df2412953dcfc106ed05626e1aa6b4ab29f0daff42a1844df4e14b3b5ffc6b25f42d2f8d83a7302e099864ec8cd0d7f970396980c2dd4bc59ca722aeb8a1370c922fe8d194afb4828f8d362e83b3653e232277231e7e7c0a3e1afd3da4c6adf93811f51ca23a3e74712a23b1b972835e105bbc7d3f2c4246dac9b0f66edd878503830c048109bc051a252c1132036f4335b5aefe9462b5121127aa623752cd0bd56328267a1cf23bf24377a42c9f937ef09cdf7aa783a790d0091238c31e9fe2216dc95c9cddde311d8bc0de927bfd7e1500c1a50a4f57f05999833b16bbab167a8d5565b02d04da65557fc103d8e3e4ccb37838d2429ac786a6322ea1e47f5fd91a4d6ec0ee76867f880f9619db507b65d5b9cae69b5319924b1a7520237deacce607634f9ef0158b29b5ca756e8ba01934ffbd195807a4cd1fbaf169fec1c76227fb9d5dcbb5a60ee4e444a065345a33a74400813e100182e674e706bdbb849a1ac5ab64f401ac1b92466146548da5eeebe031c804d9201400f25289eb09d95ce8f59c837b46fb49bd09339eeb1c4b5dbe5ee666922498ec607379af0e2a4d48718d93e6f7969dc1934fc64549cc73001b4ddeb7d7cd07c225ad141634862173cac0f26a2116344a46e4c1e05f4ea9ecd675897f812098c8b9602cb7c413fc1e955142fad509a88dc68564f70b6517cc476ad405b12e52881ca30263721efe03593033db641a1fbf0e2812db78084d51fcbe8134539face46c613e1c7e3c6bf2c2daa54559a4393c4d168265f0bdc5c7c06be0e831670a9e16d14dfbb7ba8f447a1dbdc2a5035938ab42f56123e0327f89bbf182808487dd98a23aaeeba0cedde7173531f1bf1a5b19807aa80cdf37592a913557836d791d8e22e2ee638fe3a402bec10e298a6ffaa005941a07d2ecee97d9efa92b6f17c830f73dfd304380225a598980b5e307b74aa222223127e648e20fe4fc4cd476b83e9e5906fa49811d07c14a65c79d8e2b20b8b266148b6e795a61e126d6ac5758147c40b4ef70425ba42b248115109b5b2b86d23ff18aa03bf72d9f1a79489add72a9cce6d1b7401d69d4c869d6ef2d985093e010410ffd405179e90f2b3db1622603be7adf7f968d310a152a5510b48362c173fa25b6b0acde7faa53943496abb56341fed548a01593641bbbdeb92cedf362734993eec4f1da8d3a8d6b1fe56ab1fb73bb826438046a1c66b62b3ba75e2573383afbf3b764e46ec711dfd0defbe2193b20ff7e13ad5c77dc95fd97cae277a7efb3b843d8978e63c293744cdff4a184bc5ad0c1ab71620d11c6f89fb5ea8115342c940c2b9cbf9a046cc10459f16fdca05361bebf83c25f30d39a88067d7382e76f85ae6cb6023864722861a35e90883816100cf0458024401b3164ab84efe45c98a2ec55c23714c022864ce2faddc5bf219919ec588fdca6f2c0599c0d8437655d49e6ab33e5f4ef2d32a126010e59762b7fd77e1727a7b04bf466e873a6e7694af9d194fde451435bc2fef95f8ae0054a42c1002060eccd0ef214b0ad65801d3cbaedebb9c040dad82104a7a7b9dd4432699bc926ad29d93df34c606be9de1c3214fdc0e9898425a5800d9017e0065a03a6f9fcf1a68049bcfdfc9e9135e44484473e9486733935b0cc111daa78ae7a9f9dbb4905f35132cd316fd62a02dcd9065090403fc71822e312174eb2827a5c6b846ad853a4adfa63cc3805c792b6ac973978170fdc1c598dd1fa4e608b6170866d2f80aeea3d244326c5688dc1f0075e8ff4d9883ef1ccb8b0058f2bb735ae3ca54c28231ce295762f34dd99c5747f7208e44397216111b02acb17bdb78084d4f7f1298b8b4110b0c668040e30be5499c5af3d729000b81e172590ce5a059251b739b2fa1bd24a537192bd81ea987755ee52276871f6affcdc2599c1f3309ffd2b5ff43f792e942e5b799c2e7201d2f08cf17a85067195888d7b99884d2b37453c3e5c1886b4bd9ebd6eeaa1d8ba9b046732ca6264363ed6ee2b57ea43bca700b8f23d1016142d06a8f3398038cb30966b9f92c2162bddab7f43e8d8887c575a7459ab0488028caa103811c1dd4e4c1bde281aacb7fac2e1f97337c5cd97df76dbfd02645b29e7b14b97ccd4bacf6a9b85b62346a632d1a0a50d5bc4a0edf61e804138a2a320a4ce9f8f34c7787a29629bca679a7ed27ca03ed8b4193934055b1840db023a1a1c6b5150d48b90827f36b5b2089f614adcbe60111ad16d27319fc09f17cb31163535b142b07a02f2eebed51af13f53fd32ceb267f07a408b5c68b4b2cf8a9c47a418b38a04c7183c93b31ed58454b860a9be5bf87c8a8b3b895896c92ec74b9fd7bce27e532fb7603dcf69e82d884c13175aab22de6b236cd9d90290b870ed3835935b394c8e51defbf2c63333982df3c385fbd76b61b6482c84703f1b3f47a027aa83016ca44a1fc86b61dd690269418e699c315f9aa46c3f8f3d84859d318c5f0e7a5bb95b13d7ae98e5ddeb69d793704b0ef577056dcd5773b56dc85f87b5c5c3c42701ecb891a1e8e765af51b1a23f870efb36c688bfbbe944401dec7e960dfb82be781924e449e17a4497ab4f11e95d9974a317ac41cd11c1fbe827172f4d57c5a6eeb6c5d625da8c766733bf4d480306ae74f3c8c8f54ff5346e7a3f576199ed99176fbcf2df136ffcf2de9337c747df7da2a8e1b2c96d02887c4f5811da72c39c544fe1e178ebb18cf7e28d5fdefbf28ff77e7af2da439a0ffb2809f54909c1ee4d8254ddfaf822a2548a824ada910e6f24b974b1ab84c81c694ffaa4aad2eebea8c4215955a3c8e3455a244fc2db93e658b13ff215f190db9f5a20799f7d3bb47cd2d53abe193a08b49296fb6943355872b6053ecc4fd1af247131c2f51cddf448d32d893918a980783f337c7c567612cae2f1ddef250d422fe484207ba6b5a162cc1c2488342e45cc7f4f6a699401d691db366b09bccaa2436dfd1d484b4b3100363283a7a95ac3d0100b05ee57f58a9b7309ff5679ea6f4ad3658fa28b0e801397de2e6ef939d9173fffe28b8a88385438388bf78a989836c579745ad6bd7a753925964a5cc7705fd2c0169980e823636b3a518b92b7b56f981e8ef6544ffd49393a39d5de2dcbbbe024e404d9b917b2304015d2e265f60457d72971855180705cb94d4cebcb9dcabd5801ebd9aaab555773cc26f003af526e3ed68e344abdf3428ac5246176b0525d8a922079fcc8100b01580e1576d169c4f0df7543f45b642d8e0dbeeaafc69c430883ecd93fb132f1f97386a2f3074ea89caa294da9aa72ad7b0ac386704b4990574de0a18707d6fb1d72077fbe7c05b98a69ffdca332b748c105b12ff268bf9fd010f846af6428d2be9b83f4912a4b2919c5cbb0f151a829c73ff261dd2f93865337a42ff74f62117244076911eb8b06e53192dac2678ed06c569794e7994639e0188020c31b692e8145bdd4c8ca2e073baf8fa9980725e7f5e5d4f870f25bc67a6b685142d978caf81a6871d2cf2207b92159e6b869c682120b8272a7031c9f46285381246d893cd8988f233c106945ce3073e04ffa4132eea3546ca7d183229e72fc007d415552d20b37569f0e9f2c6259a02a389ccc4796f822e44d5cc15201878e0259fd8a74daf6cec9e1a6d0f0e75e5129072dd0a6125006415dcf9bf06db592d9f535ab27b3fc4a9777a0a2a7092b2cf68c4bbd3504e640b57ac2700b3b212adcb8a339683c13426cda46e6474352383fbb3313757099d2919d6671cf0d87158212f579a5b51cb59b3372a5ec359ad8edcb4f885ae699c3d99884e714b0d29282ebfeb44efcf4eb495c2c3682b0d70909e5e0e6ae081bf8f8ad504d6299023a971f28426a6eca5ac94af2403a0b336163a9d72a8ddd1abb9bc7e96682a7000587c306605dd422b21dfd60c2a4d45ae8e65e96c43368baad53924d9f8721f5065a0e10cd58bb3ff39723b6f1297166b5638e40eab276dade6c3a0492243e871658caa7d4d16d3a498e39bae3b2fd3bb498e25c5c5b01131b467ec51c16c95877e16b8039140fe097c813f7a5e1f233c4f92380b15865e670c134dc28ee47050ee0ae0d8939dcf1bf1363cab8cd870569ea5c399899900841b4eb101b9d2f5571e6c02062c23376542e3910d96e72eb465a1c0eaa02c72720cc417a8ea74468df337f16ebfa637b2096cc9c8f940aaa8fa6f95cead4bf29b914cf2342bc7d6f6a9334bd01f3eb90e1f34f1413a87046f8869b78f0e44b691cd361659e5ab11a50957fe78d595bf71d30d921b20d9702a17f9b0dbe9133a88e2a83b350c770b398eb5a2758aa7eb24a570c0a8d4a684b91934271ab152360896702c36db2afc433ca2d90bffc198fc390b112e00cfdd540a356a64aa7de1b28b014e0b4d45801db1f0f094bc234ee03f28c8c6ee6c1e4a0db4f4ae572dc3fad0320e1bb9a7173f5dec8a9deeda630dc16b90120e87f5e5ff8d806b32e6cea3a3b0211f9dda1e72ea393317d649cfa338231d729ace4c25e5b9e5cae6a691290d3753ff664b51d2d0172403e64f059d68a64e54b94754eaa9826b2e52454fb2300084b0045dc5eaa16a2941382067c90c1df0eea2f414a1b63638b905fdd60666c1d3457cf621847c3000f0b090ffb3c64a48104b57ff2f0d3f0302098db2c21d7024c5f785a7479b9e951e826f11d75c436513b9138866c226f24731edbbda3d276c644909de5e6e894001e331c631d58044c3cb99cb8e5bdc740ff9810c910299b5992d148afd1bd95b879bc1c1dc13f4401954c5f30e3e9632e8ec954d1a2a2b166f702e7b6f72265881a40e4669fc39a0f53d6e6906e268f06534565f051053eebe40018abe25f7c91e400d94662b10eaa40466448de57fc42795644ebefdb6f1498e99524cc9226e57f2d9ba1cbe405f264ac10133d1ae844c3af8230e0cea7593f1a0cc5f66464dbec623181859fe1a3760a889b366f8c948474d16d5ac42faae8508713ce247bc05d511357083044f803c70ed2e65c9e9ce186e3f968a05703ee5f5288b9f0d91f6d86a37936228179c103bde1915d710a8bb45f64da0c7d20e57c9dbe8163005579cbfa93063f0beb1d055c4310890937f0d82fc29952b105a1a10c2dcde2a1250b5f604e5af1a378d21bb48e318396ac052df30a5a92ca52e34c3e3613e4064168a49fdbe1e2ef505f7b81cd0831befb27469bb59c92ed5c56d345007c201fb3a80d74889ef2344e41d186ce546fe0e560fde4ace45cf1ad146e02cf5cda9722a9725b78731928ab5fa5a66f8274357d952034dd84c48550647d9941f8a6b3c82040ecfb4f1a4033f9c89c6560fa58d87d27041fe254174f97b97324ddc924d389b223db0335f730dd65b0473bdd5174f4763364796aca3a45334e6240393709e8f94920da0ac50002f13e758bdc4ff6de07c178eedb07016141d7fee2036f8681671317cdb0b33b21f7412a1bbc5c248444fcc2a8060680436c0030c09a7b74810738e5d5fd8d9c455c02997b5c3a48509059e0a2bc834d88dc4a84ed0289571a91d8fa94ac2e963636b106aad9b3845416eea63481ae428df819560716806020824d625d9e63be544f6464482ef603779b7a5708492ffc038b6986ee4228850d3c8d8929d9df4764cdae123a8d785a0a817181d046bff37c1f0ba59ab70cd28386a29b4a1fad4cf3cd5d39a6b3228279ed0b834321eb0dd2708a736f6202e190f43acd2c4c03d4b113d430884d334886202898c6ce0eaa16a4b63254489ac364306c123cc08676727ac05579f0e402a3ab331856ae2fbafa269ca0e36fd0e1d5701374e214e9dd3c81153e3dab5c131b5033145a30c319b806564b93f7fbe2012994a1852de2a1c80ed5b5ede38884fb3b2a84fc492c2913a1b9bf8ed11a449f519c9288deb4084f83b89523b99bb192523524c451b39ac16aa7040d932e0260362cc0d65a4c95107f33e8af8c1ca95b8cccea10b617aea0c0167c68210cb4291565ef3df440be96f140f11879ced6e0d39a419647c8374b33ebd50cad6af8b3df31b50925cc8f2768a333023ce757ecdcab19a1ff7055d68814a6d1926ca41fe72f320e2d36fb003cfb84387c0185a3764c17595a4dc50af9a106aac1b5df08046d427391c2624622dad40003e01087c6f50ea26d9fa639782d5547bfc7cbb3ded87d0ab30fba19dae3c87b94e3ebfd9a980a4d2adc31d838d449c326159eac26817b55db5750e0284818aeb94203503fa5fa94dec6fd9458ceb8cfae6fbe3e8bac7ae6323937bb4ea8d014cab2f94b404a65a8d317ea0bd39b5cb6d6bc68f6cc24dc628b83eb0ea36fe6ec500af2a2c65120e246c365b82d59899abd4198922f531bc608a8a551cb796f92c1037e41483752604c708044c617127ba53651c6d4482ef988dcba5c8cde012093a52a7c57e57a781023e5b29b5acb0f4963113b6a7940becb4bd2b9c408fa2eb3f97f3892dd61f201411f6b26538d6000bbe0c25d8126716f206cc565587d81c3dc4598c5f376f5a8e7093100d8a4ab3ac3b55ce668dca2ae8eb268436bf63390cf74e69688a3bdd9ef7dbd811e22afefa64e88c1c4f796e385c453d163aa9139f1ec3ee43876c84e42ab680f701e568fd06acddc04a80585615549152d227073786f00c2ce31a66cb99b94d11167f1a64b1e8689126ba1832fe123952185c2ee56728a4f9a91dce5d254790b4b5b9e25f4f178e4a4392503e874fd32e4a8ecbf18924023162b56235e02e54dfe2176a26399a91123d45304d7f4a978041c445824a86561135d6f26e1b596ecc084dc5718751e0cc0dd5a1ecdf080c5783442a5e939b99948f67064d8d4c25a425d0d792ea0217c2c9951895be158e30c2e34889bcda410fa1127eb2dfc17d48a891d81de3924754308f4466a84f9fc76c2cdf7c73312a8974c01dd8203bae85369283f06b740237fc0e413dc10cd26ecddbc48ab3791f72c03624d8acfc0d8a514e7a2d4ca202a475c6442a110fc161bf6a8049b6ac3aba042216a97d4727e1e49fca0f788961978c483214dd4c2398d1d7c9449f220a081173bdeed9cf605106780286d6449b538a395580a5f50c76f356c8c9314cb985a7f05a4558ff96826b7ca317accef3407196f1b5bc374aad9bbaa7851a3ccd23352e7faaf354c1a24e0db213047c4ec9993338d64a05d071588b68a7981ed778dd4866428360c7592d8a0f78890f50eb86c4f8bdb9c5ab10166073413b649941cc5e2428240d1584bc13ef80331b3a3840ad21eb543613eb9948a0e8b12f08fa0d0eaec9b92e39fc18682db980f0cfc0c3d8895ac554e43018670f0a0e6fec06024814716eec68b5376b134238e5490665b5e506f9ea8470ed6c33e254537e3c20c1c162e9bf15250ffc99216d4779eebcbed97f26df8e08a59217425c3ffbcde0254fe23654c4567ad9da82b3a21a83a076304e8cf48f9a0ad3159e037493158d4311822b036466863b10dd8a261b131089c31ec5ab0fe98ce031171106e1bacc6a74f9cfe02fa4e7608599e7ddd2da6f3d2a0d416db8fa684a08d06141b57df3b6a0474b2f0d3d864369724f551c72ee82edcfc03fbac448eee8fa9888deb3a4efc07016c930893b488c4bef76aaa86e9820c107dc4075712e293e4c3f25b2338ea26995fe43125cd63d8efdb2c17a6d4f018d0ee634580562049bc1acf9be907eac9d8087a08eb62e40081d96e9e69d578eddd13bbe0dafcc09787772f16d02ebdfb72d6ef0f83cdc77e958841a6fd59008f8402d9f4f357cebaf3d082240972fbd5d1f9565afb57cd18c167cd0373796c5a3e0bde4c82e20570602cf2169d08feae7b0c038d9ed985064c7a703707330df44d0488a3efc50ce0bf3ee57faad303599d8cc3e950e5a70655bcf87087c8b857e14c203c02af75394fe54c5b11d0feacebe25675c35a35eb28417150bfb9e5ee5c7b0300ab356d18a2e18a50be6d7748e011b4d992ed0064abc1b1acd69ac99705262e76857d5e6e74fc8c3c3e142d4c2aa64f7aaf29664c4c1f259a617449039aabd50f3109b2b909330bbcb2036aefb2985b30d655510779309ee67dd2810aa7ca4573b8883d520129db18a1831ea33fab0e47eabd482a606b9983c5023bf30b6bb68c3ee7ab6187d77c4c3e68f52eb59bb6dcb084c2ec23b0f67b79ae7f12b0a5bf2c217bef2df796524a990280093c0994094ca030917b728f3565dc653be3c15a6775cb5d52c504ecc290d2848fadcf509c407102c5091427509cd0e2f6d4714030f7642f688a7274b80153cbdef73938e7046d5012ae98445118f40ad4e8aad2d8981b5d55c76ec71be69802daef03bf307316e389ade72872bec15659d7b1dff053599c63bfe116940517661f641c716c9c90e70629bae5f90cad2d7861f641b61ef288a3cb24723d3b9d3eddeb96e7f3f319b271c6aca66670c1f8195c3364b406f6399633c6a733668f9d9b719b11ab29ec579433628fadc865cc2de656591307029c8b5e4510b89ec91b6835855d1c6fa8d5143efda8a020d319da0cad5538ab2097aaa1193aaaa119ae6e891cfb0c1dddf25c3534e3350386bb451ffb0d3d74351dfb0db5ca9ad85497043df639928ae49047847dd954c02410d42d7fec0bc83e54c03292acc3fce23f576dd1ab19318ac2338e50395111f1d855a79f0acc388249cf8c185d55008aaec108e23185b133011a485240acf5e4a1566107bf2b7ebe11e66f98c205f51b68f386eac01418ea160c13be8cb979219383c70e5a1568cb989b95c968df893292ec3147e8d50c8dc6fc740b74ecddab19248dc25ec62cf9981e8f3d46a75b9fc7dcc693ad55d86790f449098dae4e42e8938ec70e7a1973ebdb168f3de6f6d8e947b281238bed234fae568124db8d18eca188e6b17b321eeb602fc5da6307714845393acc2f5e74fa79ec201883892d23c95325d42a7c03e655b056a960dd1a397695105e82127aec950242adc2ee5c6411ad55d84742a2d4634b96368f71c89371d0e996cce325b5c77e03adb2a863720754abb0e378e1419288e8d564ca99ec8a6fe80175f20d35f2061a4561f7c8942b32f5b297d05e8bdb09091a237b0b2a41c3926c8a3c7435276929aa7932cc4fb7506f6b6f6d4851f606bdf8e3adf883ae2c4752d2460a132acb3b65dd624c8aa62f1d145fe28e8b4028ca7a5e2297e24e08442ec51df13547f125ee50949d2fbe30755cde2f73e82cfb2bfbe90610776acaba155f6fddbabb2097e2ce8b3b34baa2405e3c30baa2248efe21624c2c42579d5b176574e582bd7f7684f696137bde5a31c98bb41495e41d38521823bb02ec29e6e49af4b035bdf80c6581633f7e1933697e2ac8f4faf7a563e3100989840e5e1c36c84dc1719d2887a280f0982e243cf2be28aadefbd14460fbeb764c49229717fb1d73e0644eda91eb2df295f3797780dcf102a1a89a031792f74553d55d3ae764ffd1becb58e4f2c22c0b74da22fc16f47a1ff48250eff4bc7f922576ef3ac65e57f260afad2fa35d68188da2359da2de35b4f4ca7ada026306f97a736e835699b77e491cacbb255d68f0e7dc9ff316462ed6fb7ac5e1fa252dd95e11401500b1a49a60fa98231303f3e2d27232b1ac94482a2928591c8942f0f370c75d5be96c15fde28954b741495f02a54d27f0b6ce594434128d4423d14834128d4423d14834128d26c624d1280c45a311281a8d442314d188741a8d5a44a3d30b4c8c8c8f248c99182e2da796164e2e2ea05234325e50cda859b9d984382c4dcf4fe472ba5747ce670e1f0c510ec65e8c181c07c2008091281447a391188a02808242591a39462a35aaf61b555b63341a8d5636bc412e8f6dc1ca90117ea36f54ed37aa96351a8d463108a07523c30066c8d57904406744001a346cbc481ce5308ba28b4407c5d168341285380588010bdaacb2eeac86bb85bda2dc0ba90b16c5a568b0c3f0957505317e30d7dcd7e7b803bf91080c6b1034df9d3b9bb93a4f65c211d714d589e9d9746aef7579b557dd25d10dee31891d343550cfd92fcc6ecd56c980a12db82aebeed4d4f4d72b36bb22a66d320e636cf76a7516514e87b1e739c62b95854b2c5e62c7333040315e5ac82da76a02a291b1f242e98a6e915266b1228ac84c451499c98a143193714538f2c64423ae41b1c930b43b8a0988444271132903808e62af203c57e4d206e189c17882c4603caf00b86a798300f2d2a15d1040f0184ef7bc8178e4dda111e2ca9a2158a3572c3086d0d295154018b6b08375cebc832f8872ba9ad92af0e63a91cbea9c7bd71b419528a7c336a4cdcbd0370fc008b66f170f243a07af91bfb3be3ddf9e4121fc749fb95aef46222207c71d1d0045e38dd570ec09c7ebaaa96b6a422eef6cc6a86292cb6ba41b6f8ca2aa0807eaadd33c375ed77879d014bd46baebf42f5946e0ad2cf5df8867a004082d655d97092897d7859a1662ccc098a17a41064d0a6533c234004bc05ea983798a994555649aaa36b4d6f453ebf519aed7ea36351dbc778a90b3d6369d747489007ba6b4b1dd2653a7667777fb539f497c52a0e4cbec9302d7731c28f64c5752eb9401d671a0a41d2bceda9b1ddc03f8bbedf5c00ed35dba9f527f92cb7cea960b0dd43ddfe1f3d041e7443e9df3976e8970f8b2a95bf33987e9d6c87538c14887f974cc0f8e32a3a73e1af9832301629e7a4ccc8394f6450dc371ba1e1c270ffe1b5d6898e1a9cf30c383ed82c9f92e1d69dfbe8fa5abcf08b9ec2402c836d8f8f8f4007bea2f4c1ad8a923008822ff397db0865dc2744d85222fb9071d7b492d890a498ee54b14cb97b87e8ef0864c125901f3e63a9d28ce45cf715ec6f0f4e5392f09d09c771c59723e3fec9d021630ff2331b9833fe7b3fb16e198f13af41759e0c6f9dd8fe46c88e977a40b0d640e8f2a0027b7cf0fa19ba41b4bce6fc99136f351943571a8dbd8a05ea8a27382cf8f9bcf0fa1158073e28093b4644780a43746705f70bb04b6b2cabedda4823cbdab8cb4a39f68f161099d20b009d90c804dc1a09e5ad091ef5a50912fafce7710ecbb16b4d3b5a01effc54f8a011715b51a15b4ef1a15b2a7a288177dd7a8e079c0cd8665b21f3a2f3b608e454144e8a7f7a88645edbb86c5ecf1770d0bd9770d0bd897a6af61e18247e1e165f82fb2171307c0f691874c1dac854f6893eaa383886d32ad0f2580402e67041d3e707708232f3a2e4914b08f1e1f3cf0ec131f46b28f213e78401f3f42956f1f170e44a1f824dc02bffc0085ecf343901d853ffcfc9024ff70c492aa80f243912629f88b9b4a15242f4929c589924ce5052c4f587ed8c9a78f052dd6c5be64418b971f5c3d9ccc7adca6733f3f4444c04388c93d9049e23d8ef43032653d8ae4d13ec92f326c022e01f7e0e17e76667afcc031749e88b00097b4e03d81ab4d61baf784e9e112c2fceda30304ccc3a6539bae33d3b98149b6f2eda3c383757ee8b8267e010d0fdacd3e711961137009403e3efc7c172f84b58ee6321f1f86f800c4871f4f632d27c8ed9382273e2970f258481605cd5819428d4d9802203a5f5c808592eebb860514f0f4be6b5800fd74eab79f1e4e2272d79c60fb12d79c50fb49bbef9a13a0f81189df3f3d64cffb41287cfbb400e8677db97a7efe7017e76a151529d74bee39c88932929c4559b74aefb9770bc53db749196fee78531a6f685056cbc9d8ac16934e79eec940e38519476909a578f7a6a0725248cf3e83a22bceafa75847e150525246dcf804249fbe9db31c478fec4c203c3438eab56e2d98ca92b9210333cab81d89c0380743736476ad238e2797a00be44157290e23e331ee3908ab2c77cf4fb56ec1d0c4d8deb31e33d2d86acaf394914666a4a9d594e74ef3f330230dada63cbf23ea6540313c01c9d69b235d68a8cff97c8e2c6d784b8a8cc8302ee3302ee35ed2cc2aab462dfbc82899b11554531e48e668dd6aca739523b28bae1a886646519e5f7b2fe7097946de037fbc070e79ef72966636e3713433baf26a74cb825ed608c20de89e832fa3f3a029cfbffb4351b78aaef1ae4d49ab384e542349ab3c07bbaf4145d7dc9dcf6d287ab0c4d19fddc5494fe973f9b98f73dfe1e36bd43c3bd60f6bcbebb9169ee74a3bcff9479b37f488e7bce4ea16ca73d7cb128fe74a3acfcd6681ae4e79ce713b9a4533037dbcfb14711fad5ba3ffbcfc7afef3eef2abfdf7d9fe2b45d77ffef39f8b4bfef3aedff77d8ebb95e29f7bdd42f1af1475fcf709e13f9ad90786a00b041d77abe4a07bdd5a7110c64119075f1c04dd87f79278d0654698f165046108c232d304cbccec3defe13aadcae1ae9af27c3c420675b4caf31209ba5ae53937763f23ab5103632e80a11ab51919ccc59f1c584e2c4728c7095dd160739a99e846f729debab5ea270b60a87d6034d4a8d5a859010cb5ca73cf225f4fa2c5a4551ee73bd08f41eb168dd1420b3fe8ea235d386fa0940be832dead5bb738eebbb25e3cc62100e332a409641cc66348132051838cc3b80962fcc5415765c9903c5240009c17d7993830ee913a13e7a575f3cad6cdcb9c5d2f26914b8e1718b7221cdc7fce8d29efeeeee10733e29ae2fc65045fc21390dc7dbb8a88445221b5b4b4c498c538923384a2bc1a4928caf37b39f003c12f043f0b7ea0b5addb8792032b813617217f9e8b906df989fca5e4276ad8b8b146ed7a59a3769d66f6f29e831e5976a5da7bde65098af73cc60c85e6896681ae8ac11a496ad86ad4eed862479283a3c8c551c55346222f29f8edc8c1151616300525b4a1d9d06008024390124acacac8736214e58d39b0967074c9a41c63a62222b9743f72100489bcb80d9a9292c19aa09a2614e579d843519e128af2bcc8b5dd1fe7415194ba0e5db98eb53689efad75dc2dcead7bddcac15d76741dcb834ce277a05ffad82a8f23bd559e25edb443eff9c0def3724616efd5a8bde7327af4cdd7a46b3cf79abce7a50c1fefc110e43d2f69a078efc8c7c537d1ab4f0a6d7315d97aae2297a0ebbdec44b65eb66ea08b9e9dc8e0e83a14e5b938ba8ba23c6ff121d3071d04759468ddfade73d0731b9a0dcd79d0d5c83d771dba02dd7377d195e8596f61d1ba75ca2353dc3a9832de9ff1da28caf3d31539c5394f713b66af11ba4ae88a2389bcb897e29edffe9615cdaa09a229cfbd9616f8af8db2308ee7f727654c412e7b0a25de73150f499f5702ec74abc5bd939b6acb4796d6f3d2cf97ee7acf5750fca3c2cd4785aef19c8be2cb185d7e5ebce765fdeb45a33cbfa7710996b1a48142468ff77c652c65ecbce725126953a328cf6d501b1a45793541b4f73cc551469706fad05d906b82de73d065ddcbe3cb6869aa73710c29aaf3d198471245752e1a9ba2c097901bbb07696419dae3b7224ea65bf48a4a56507e50fc15fdf53babf7e27bbb0fc7ee31371a21736479a3e3f97b5394b5caa399bd4780d97b34b36e91de731a5ab7e87b2e43a75be07b2ee3075dcd08ea16cb7b7e3dcf7370c773f0e539e8f29cf3ffae830eba286b3261037580d0158cae6e11ba6a1f1608bdd7a231614120f16508bede6b81eccb992f41178d2fc1d87ba00ce394e0ec3db0e5790b88ae6a91f7bc15d4126a797ee3f98dcecd0e5d75eef9cd8baeb0872d275d7cd97ae2e4cb99297c79f3e33d2e5ab7f7ea165fdef0bcd7331e89434f2153a139acac7bfad5d12b6c495a7a5babadf58351544e46924b8ca9add55251bdb3d67945383e1915dde89c13e120e239112caa3ee71567d4f3e627bbaf9e1487477e9374a9a1e2609f4f0493253801a884fcc59e5a51666489a73e4219dd9ec6c0255fecab813d53a284be039245ee02a3f42b0fbad050b1051e8b6ef8635117b9bc3bee655be6bcfc64dfb908fb8450af0f3684ae42effc8bd115e8dda9565930826aca48af62ac68d469895ec5dce849d6adeb9d9f6695352a4fb6ef4eb4ef3a1f8d38c68a5e755756e73137da097d77c9c6a4e754b480eba08b46cebf99c395997eba85bd3bc277a458ce0e23f7007e22a29f80e405d007491b541c7530cea827c3d4ead5767b9ee7d91b9e80e44fe439d885a3310688a6ba981b45c5dc628028aa136a5516600cd155f909c170d284ce300a822144579e77fe0975abed28c2546c24224830d210152188b0cbe34b1841f6f3ce3d5ab7a677fe05d1abef45513bddf2bcf3eed527a4519d9797c7dd51e27798a84f08aac9f7a22b54168deabcf36004c1086a5507fbaefc84bef36f8cb9b5aa730a63a7559d3b17b9736f6c21a855ddf4c81215e43b2fbdef30897ab5aaf320047d87121a01813d53c2087df513909c02f3ea1600beeed4916d49ae18468809317cd18f1ebbf8288f8b5c9df3182acb46c893ef105d3da12cd039175fddaa0147144d719ea3061b6ee09c23952f5fb66d86e35cbc22cf1c74d539e73574de79aeacea5d07f39ddfd80b4febc6eebbbe2834b860a80660cf943924ad4f9e5e6b0063686f7d5291b52293b5763e2ca85b01b09dc356964d571b16ba436f438ec9f356e4c96103454db2063ada4051d6a653d631b681d94c5191b77eefbd57146314d5cd39eac965db42206ca0ab7296d4861cd373d430e7a42e7bebed437af6d055d94f568e9ab2230af2f51c5d7f0e6f42c6224c845112862397e21031f6b624914c4059b405caf655871bb5d65afd76633f686b153776d789309106b61b6366220d628ec43401934577c385a1d3ac1b5f66968409eac812cfbee2405d1a4323855a352a2197241915dd8879d3ad5530540d2545af48318aaaa4231a55bd4425791786bad5790c4d241d21f29062742506e99114313417bcf8ea2549f615468df6d5ab0b435cd851f46a55ed4811f695bb512d8c24145561d860d452aec8d34b183594adf342043bf7e449fbaea26cfb85a2daed3843512f14d53ef382e3e5dbf690a3406102253e68d1420a2c78c20e9e180f328fd9143f3a4b2849c21354e8568322d4c0263af2f229b3667a114384b839098b0082c94e1341bcd0628633b30892832546f841041598a0036b7fc8d3ed4cc287e5210b7fe4e9d5c543c927d90eea30bf789b8540984fecc8b70f91a087e1db87889107b3d00a72f9d9747c36fae9c8b05655b7a3686b1508f3a05cc2362ace425ffd8e20accc447cf56edc61561d5fbda526007fe9ba646997a82521eb337b286c06a04f0d944cc7d3758d60328409cf778dc98f2f2f931e6e43f77294ba0d6834181ae28231e526b24bfddb3e63533d86ea5e1d559d04452ebdb2680f140d1b0aa8aef365f7c4e0eebc31ba2a5f5eb819eea228aaba4d41e25c1376aaf5cb7573ce7164227ba66f923ce0074573bc31ef8ee825f5d27a96d291e67bef1d71b8aef22daac1ba5ca3efeb730cbfc1077339dffbe93cdc691face12c31f54952afc49f12ce91b43fc91107b91d6c12c9924e3079b034ec61d493eb8a972ac9aa5c19cc5338f1f57a940ee34e07e7eeee1ef94004cad371776135f5328d3e9db656045e23b7885dd91a5a4c96b823b9fb5a59b0d6fe465eada14a1519773b3b8f33ee0e854b31853685ba5eab5a85ed088a3abda62acbc3dd5d533a98d6bae2d5da4f46515f2cf6b356d109797ab3b0a07c254b0bfc0c2478fdaea5b6d65a6b75a1dc4e84dc4e5a3bff7e932e94f19794f60eb5d639ce49daf6e9939ca40b0dd3a997d35da8f3f094e4e1797817cad49d0821a62897a6a826f19c27983c541abe6aadb57eb3acb556d18abcb25ed65a6bb518d7ae56cbd5aaf2f39ced463bc8d36dc5b4d6b63d797a0e4747f274ec83dca0907befbdf7de6badb5f6de6badb5d68a3c50a4d2626a89911961b4900ac1173e978979817189a1baf6c6712e2716936ac68c1a514ead993630dc6b597edce92ba21caed60a0508808a856a29ab8615d18d27ea8c00d41229f760adb596c6b528b73c3d8b720ff9e6dc1e68d45a6b541df9ba28e78a720fb9e6d41a2178bad4762048bb149629e3e0ac93fc564a2d2b64c9054690cd96a306aeda181c6889477a13f2ecbc69b09f12a3022305068ed17d0b5d67a3ee25c1dbdb42e8c2ac765ad9f5da36d2058ebc2e1fb7aa88726cd75abb5159c02814cca42a4a0b2929947befa5b1334f51947349162bf24c596b2d8d4813e2a07fc91c4e885cb9d6046019d716f3030852db8160a59613c1502cb99c5c649c0c675c7841d5752308839ca9f914308a0ee03230312fa8262fe49956f2b4066a03263b50761049bd032293fc22b2c1844b8b4994734f36180600e41dd9b200206c196250094200688496da1a2e1c656142b6dd6d82225fef1a169b4459874594636158555266592195546884b5565668e96a8e1e1399a509797a8a28efc8d7278ac80aad8d21b43c321d8972ae28ca3bb2cec71076b7c09108668201180291a74f4aaf4e530ad474d25a7dd44bbde03a3c3baeb2288e9d756b5aee36e54409b84ce89cd0e0e5021aec743bb269a896579ad0824c02829119d03829cce088ce8719b08073924959e88a9059b000229786d093453e588788990f114408414410d8474ef94296559a703d802da941c6df3e302546c0a2e85e39e5db07c64497856cbf7d604b703bd9fbf681c57260b021ae8b9cb30b0f165e2629662d3c5158010b12d789c72683952968261e1cc4a0b4c3c233040c48b5da0a4f0c7a50a1d54ad806881f2938e330fbe890300f0f142a6e2a5bb42043219422c4093fc41e1d142149f861e4835716e2f30211153aa210234184486c2321360002f4110911e2e3abf1d486845948103f7850bc40213c54807ff0f35541051d10605e164070496418a8872bc5ad4bf2b24008e29c6041eda15d6c73031d8a330e730f6035d598888f28864451c427063c3e7e10fb818ca6fa4b9c738610c28fb3e97efb0c110576c1093c24e76f9f217290c410b01864996f9f21747451c8ce846b926390e015e4931132c828df3e3208c20319b0a05b22b37cfb0871051b64f1db4788264372508e10371f217852be7d563083b7df3e42bcbe34d18a803dbdb5dedaa1c27c6f0ecc13e5d0ef9b9fa34cbe737544344c1c53cd7f305ae6314921979707c7cbabea50d37fb0a72ef31fcc883cf16cd5a5d8bdf002f1e5d569af95fa48dc22c8530f9b50160aac8a5edd0aa22b8b520342fb3113f14089854e506c20ec69d5516b328b5d8b02ab2cba24068422a34d5066d4094a8da336ae9b9dc561eec9b8d6aa5bbfa6f3c6bbb7d6ae73d05371ee7126f8d961b25bc5719db5af1b32efcd5a755dc5b6c5df7b516c7faf53259425c26abd9c5fb1f6f78ab4bf579cfdbda2ecef15637f2fd9c4163d6c5867ac3999c5ac371b693581156195d52d0112634d44991371f644a4611e624de7e3c8ee47a79ae072939bb74e128ce4038253d44abd697f17ce3965366cd09a5f58d35553d5e74ef566b5d76a6d083a4051d5e712ecd5e70e266ba0a9ea1d690388ced0b98b04fa3a6d93cc9169b9039545f2eaa16c62a8acce3fea514a76ad2f74a40db2248d2f24d3b475aa7a9d369cafcd965740ea285420e4ab1f80b2a62c5b92e6a1d0f0821d8aea9fb22854a0f3256e9cdcd5f42f94d6a7a5de147214b5d65a6bad956ee181dfbdf7de7bbff9b5a8b5a21cf1094575272073148728aaf33b8a4f1240ff8ed945511d26c5286bda40a87392ec085dd53a27290922e8bb936cc97724da77de32be24d9bebb5f927ebebb3825e9f69de3b92af18caecabb43a32b5b77eaf9cebb3c25f98e0a5fcedc1b58e81974300ea8e33bef964127061cd0cbbce33b179fb40ca03d19a1a9ee24eb4e328a3a1911874833ba2ac52192915b84ce00c64832ba1aea5637f8bd46353148af4498f8a281c8339242a401290623511826b193ec24ab30b7498a79578c4df10871e8249be329d6aacec5238abc18a3ab5311931423c55a35f4ddf7ba5decc512bbb325be2bb1e9a7559dc7c846a47befad76ba0d7ae9fda128db1599f3f2daaecda6e4fe0cd1d5134a7a750b86a77eef926bbbb63b6dbd3db7e7bafcb441b1142421cb03ec9952c6f5d4b3a5b58a8ede56db8daca770913bbfb579339f5af1260695a8977e501676ea31b16ed9b8fe084dad82e8aa0965dd2124f17667f745513cb02bf2a440b671ac75971cd831598289d3e174ce030e16e2265459a725ba20028b25478840010e7571a8b278a841126c48b0fd80040b36c0a12edea88b41b47b11c88a41a478f341a659c6c54d3185ec3d07fb042473de39a51da5dd8df9393be4583274b046921ab51a3690526abf8fe33e4a4990470dabe8c6fc1d72ae5b2fc94a4628eb25e673ec3d1086e237a51dbd5af1a157d02c06c0e03d260cd1bae1e894e72b6301fabbc67394d146ab3c77c70f56f004245b20d9c5fa7c971bdc5bb275a328cfe9a70454a00215b85811334a0a48526129b9bccca19aa20ee4e7e7c78993d96ca644090c0673b95c3c3c14b8dd4af0c4068d76c312771964e89797d74b367b89282999a402b2945c5e5e5c86289097393487845020a712cb8f1396f9539a3fd38949853453c24296d4c8ac3413a204242985c15e25cfb9e4257e92832a0e965e6585ec56914a64399f44826ee90ab41405a6f0cc219367ded02045a60cf22752a004f38606b9dd84f49357172f180f8b0eb961ded020466845684296bcba78c178288a0e9161ded0202e448657172f180fa5418c1479ea425e5e5dbc5c664a15c076dad3ad9439a7cf740bfb74d40b0750408e1cba3572d0a77b60ee744bf4e913085d655fa1f8f4696446572b3e7d1ea12b169f3e7fba65f25972924f9f4fba757298558c4fa73a2e2f3eb1d037f4d5e2e5fce259f3766b72737284be994f9ecc24d0286bd268359a8d89be994b96f8346bc6a8a8e2a74f1e3a83e89b3964480b7e7a0828766da06f260f1e52f8e93550d6016aaab68486beb9c0ac01ea1fc4c04275cff4187d638059832789357df6cdccaca13e2b8e6523b39f4760944579688a3ad7d56b7128f2c06f9451c415169512c9d4a29c989363110eee6360a88bbe288f8bf2b490f47522956e4f6eb72726b10a2c2bb425749649644965b4b944850a416bf0942211fb14152ae8100ad3193293cd21e2076660f2f0327f93c748141ee0027456fbba06e4d98b32000ad53d78c8486114456334356fa8105d439dce9e52191d62a69294a7556215727b497960660a1047b8b7c5822ddf27d3b33c1e4d4472876baa71684795141b86a3108f423b8a3e7c308776041f4409edf8596bed4a68adb51eb61d87834beb127e2c219737085f7bb637e90766adba3aadaa8e2f0c773018659d5c3123b424b2253b4a60b39e9acd4eba53cb0ec84ed72d2a14851f3dbe1d8aaf26b029b9c36ca07c7d7e7b73deb955a439de9d5689adaa7e8bdc2294a5b263849684aeeecee5b9b75be4f65cdb5572975ca07c875cd8e581312b4ec308812ed68a31ca0a8544997844ac894a9258621a12975c57125f88b1cfa504912f455a124dbe14937cf552b489b7af6e27350dd155299a9e549103acc8258c90501dfa601fec8b7c5f548c5dda09213104462867812c45990380728d9142240c4689159a2c06a3048c122dc69690abc3d82acb6432e56c82b17dd551b97dad24115fbd5461f2d5e784111a2261ad320d55168cac53d5672e9ace57989d8751a2848151e2ab93a268551dfa6a1aa2ac0b3bb97e9c5ea72174d53e4bf47c25d58ad8db14a6211f2484be3ced7cf541c2c897279eaf27d82976927df56b4935ba2a61846c745592a248526b1548b5395227854858b756be7a0b298a6e51af2e768bc270a1d4b8de7653d46edb75ddf55e8f4bc10fe2b0dba5e2295e5214d68b97580acdca2e9a1e2a6e5d8649dfa4b875192b7a85e2d665b06877cdc862b82a8b478bbbb8f5183aa9198d0ecd0e0d10badac103f845b74ef39a11eb56cc5b992f4a992a3ccd8f5413658c1e6fbd65091d6f3dbb2a4b74a18093fbd21424e764dfb9a996bb529d5d471906659401a24d53a54c5078ab2c995a4d59b7a54ced8659302b6eddfa0b5d95dcbacf6016b727b75e0ad2ab96261a655f2d4778de92a478eb24979dd398430107a0281601deda287e429ab2be3296c697d1674654abaca78ca9aeb18e32ca6894f597b1a653f53369a228eb9c3812817199241465394e94b15194cd1149991a455999daadb24427a213985107e3bc4cef17b7f8f689018fb72f53a32b2bd353cad4de96b8276c9f2040bfa2d5085f861387fdf98d1df8635292fb4bd1c95b97b9750b7495324119496e1f2036982f593fddba15baf596257af5fd5094ac5b22ff92d028eb658b91b74d38310197785b72220ed1d5138efb689f6727b2e8362a375ef19bdf9cf77ed72bade865cc3c3465330f45d9aecb2f8a2ac95a656584e8aa2cc9649a78407486979b4c90f592ccd611ffd0550b8da2be24f4aa05c9d704708971a605c90cd0d3e86a8649a3ac5b999bcc4de6d62a29ca922cbf5a65bd926aadb2ee5ce417796b950dc9999d565997b97d3add1a1b096f7f7272b4903be617382d48709945bc6da1d9928bcbd838dd58fa96b171badb75b7eb646e301cb4bbb7bb9c7bf77ef77ee115e19009ca308ab2416f5dbc1b89b4c0381197db75ee711e49ce08c964413b110e99a05659ef70f7f20243cadc6aca7af7e2f389bc902538018e8bcf91c88bccedad9760a5986d8264eb56975f6ffd25bf32ac5bd8ed8e13b8705a5a686f392f4bb2b75dcb78756acafbd9448d6b858e9e252759b10bc7608371075c33551de39c29aca6ba6c21a129ca0191e492ba76109b37d6452d0a5a55bdfcaadd71c457b7ae79737f660d0aba7591d0aaea7856f16557dbf1d5f1c875b5cae288d0a9b7754ed0c2c4599155bee46a5dedebbd41e13b5cc5bdcd1b0e0b5d83846e715fb4aa7a7dd22a2b72c93df9ea5cadb230ced96472d4531fcdf240a75cf346035db3a37de8d5f5a9c3f4e4a7972a5f52d7572d7e7a495190a3c8f42bce7c6efed8410672a0a82944713c988705d83ae4f63962c9abbe7d8cb0e28b0cf9d286e7a9d3904105496e9f22b62f6ddaa748eda9d3880187825d08d1a803ac5f17572be186d34a4032840f4db62802873a0c22b9716608e1348e754aa24c3e4584be7d8adcbeb4f131a2e76d60e8563b7d2a6a40e37044ee8e898344778aac81c4a1346c288a0a91fd9b5604203f9d52fb03bc3b3996a254c622649cc5cf959ff3ee68c045a989aeca6caa3e1950491c2669ea1c4e07a7d7da834c9f70e2c97434cb74fae4f1d3f693455d38d4f547e8dcda1187afd78db812874ce260bd62fcc468143f3014614c474472164521f875dec559f0465eaf15428a8fb093732ac2216a00c511396873143903397440e493a4b69f79a33643df3138f99e2fd0e2db35d03713c8aca12e09b038588ab275ab73ea2d75d6917586717e65dabca13cb3863a4f39818c230ac3b99c2f6aa33cf38626e9bca4744444f4164160e28864094e8033222d8cc22acb8664e934d3ccca6a8fed69f50845cd92cc9bda44d750a74fb48a7a479694ba88854c6d9555715a0114a7bff84a76abb83b86d8da40da7901365d85d69ba5070e30dff3e6e7f3bdf9bd40d2e500fd9fe3e81f4b0afce43ca79db7687a73f4c0b5ced949bd22817fda9c284d71b38c59798a538e9e7acf1b32c788231ad53fc91c2394e89afed276d76cb2934cbfaf1f98a71467458f214ce1a7dbc601da91fbf953347f5ed2f660ba7ae2c05a3af4650cde15beec9fefb2879e0a19f1022342bc8c10e2dbc7081b3c754c4352e824a3be7d8a8842114b9080b9db4ddd8ebbbd6d58980d02a08ea8c4ecf526452d192a9201000000f31400202814108ac542a14892059a9cec1d14800c73a64a70549a8b434990e3308a32c618420c20c018000021800c11cd080010fd36bd57fa28c5978b790163696b2eb4b1190dc517af206c1166d3d05088c32306f34e2568982f3299f44c0ffd6d89b9c9d2f19b5a2a7e934bcc55b9ca6e2108e1786ecca6dcc03f0457b2b7444b89dcd1f398830b712e587a3f39d67c8d0a3f3741ae04aeb24d71303d7dfc0f9a7e6584ec4ed576f1ee83f0d5c4c7facf0ab9401f082f6f68a5fb2abda4c833aa795c0962f03cebd00292ddd169887d509aaea92e55c75d980087f38f44c578c1e163cb83fd60202462a801ea0d93552c251a9644edc45270f703f73b80b3a167e853a987e6c6ff1a7a32b43d7976d70e4f35ab3b94f591777c95881da86aaa2de59fc4a13e32f1bb64ea4356c2030c328fae6fbe4b061ce0b111934169ef8a72e5ede0d335ce3b80739d5ff7b00d046508167906fca821837ff8e8ed5f5170b065c8260c04df7e6907431e5348ba9aae4c90cb9fd486786595038f25127df4480e3784a496235410813b90f3b670cd4488069d26cb82841e765ccdc1a8f2e59c68962da223e34d18acb3278063ed3b1eea0ce0b04bd0396ff77ebfc6754e54b11d9eaab33f4f7f91015e2e3432d0dc4911fce87ea8f0a90d6cff7236c0830fba51fcdde4cbecfaa9f69ab821d7f6c9d53b403688061acec7ddc5e4ac268da811adb49c1bbf54aa736693c266a152b46c9c01bf529803c573490f3c6acdcb854c884b9cf6413a47ab2e36ce75930adf8ca1f4f3d185b2dd5ab5e98c7d5e1cdd0fdb4a52771a10522227d09cd0c05c558e96b397b015f469570e428c08b95291abbc0a83ba5595faedf747006c41b5c569c0bfd813c5175cd1dc671561e1b96888e00587aa4aa11717544953365687fcd5e64fe41a62270e0c2258992095b901a678d6d94e56ce0e8cf48d953c688b5da82a811848456b750b136fab5cf2d5d001b18fefffdb4cbb382418d5259bab4ef8dc595b31b18e5277ae8bb17ff1b939eb29eff6f3a7e7521858f3bf8cd3cdb93a5d931c35cd5db9b69d3c108e71b865b581120e01992f61f9b3b194d845f89d219939578d00ed6a62abe12d7a11edc455d85a27693f6f32e0351d6ca121fdaa522ad53ec52b0c851df97eee5bcdafd44d915ee73f1d1f835b61c5ac1cb0ce86cda90d61586b510942d7638bfd0a5518d01a3be05e6d8f80f13e80f984176a5703ef364eefae203ce3e73446ffaf16a899df392ac9868f693271cc0fa0b1b1db3ab14299e44c2b2f6f23fa0789925efaf742f47ec316c4fc0df4777fc953d3464b5f957644ee9cf4ccf5cb7eebd2f6ee224ae3c07d92bbe62dd6c3e18c0d16f3b6d0c786aadc163845a7aef92ad1a437c67d445ed22441b4ea8a906972e0b1640f9203baea4f352994305a4dfab8e70eaa2a52646db84363f9aa218ad74257e44dc6785cc834048ff472516c1827b39ab81e6c7a089ac2781461dcd6106a45d95648e76d32a6b3baaec8c9f90269567b5dd1bfa5576db138f19ec7433dd6fb0b96d2efe4a69967e2cf74270914b991ab3d6fa17e6ca08d238583119bc2ae45490a27f6d6147067f3978cc5c561516e87cce2472b91a08d101f3b4cc5d67893bd7a30941a85219bf1a24dc5a9b8c7271e5360c5b8f23575bedf577c407710d8b2e3b974b8ad04bdccc2f0c1e073540838f5c83abbdff5e98e48da3c177a079e64cc2056826510135c9cf70622057abf873e69269fe38f4dfd4df36c420c613496631c8800d01bc573f48bf2cbda8a6d615f64737ad13d41224ebe6004ce72b8c7559029218afa96369b959ac3bfebe296964510cc9e314b9ca1690f57f54dac946967d7fd447128302216dd3bb7c6af9655d4f1da970581b17a150ab2b29c6033dc5ad3041f4e2edd452308d935e3f40c017db47481cc49c8c2b0b35e896e4f560fa4bb10775521693b3a958565d1a6ab8971198c3a84b1b204c4ea2675e90851d2287a9589d8b56a170d38f986dfe2b020ee1141a3c0e617b81bfb5d7552067157de6f84dda31d800e3b0cb86c6af688fdf94ced3dcbf6de4951321080000b5660f7a4e54db717804dcf95ee876f5ba3ac5bd0e8c38dff5f0c035f489cf1b65855a29edcf01d3c64970a161db6d1737429245818ae72330f1f80f6bd197a449538199f8bc2f0317725783e7ca7aaabf896dd1eb9cbb3ac7271f6a56e0d39652661aaa7a13d30615aca8e1aa5439164e8a0ec372102d064ad2dc7c4db0c6920aac185f78705971637bad805c60cddd26a0105a2779213533db3802b22f24511e7b33b7151fa8ef8784fc73e2e06dbef292ea8164a8ef856f06968952fca86732992678c288b2bddd1da5718bee41d6cf714af5530b87eccd5b7b903ac6bfd5a54d02c21a462c7a8f7fbe54c4609979bb8f5b3430c1386abce3f7c34a9b7e5af8fe9fa78c6b2cfec48f187e3f90df347100c0669826704ebb5816993ff82c326c002310abe85725bcc5d91827ebf6d0a004c5f2b1cd21e751f9905b18bf8df86a5932e94ce2a9d4b4b41b2ea4a382fb50203a86f0f2498645c81449ac4eebbc6fde9d53881e915ec03392320fa91df6b38793be396252c2e78f33576887ffca0d4fa9e35817ecee536272e008083d2fc51694b13cae478bfff8d92a9cc21c53bd855f111579f2e018e1cd50f4daf4c71e9453a4c6b251806e8d90eb695d9ee46e12a9e1df91ecc2baa0776b0e1c387def0ce55f7f3441112eef96eabb63a5250412ccc28b6fcf29709560f9cee64e560db6bc42358b2459a9dfaa245d78c290758e0c7bfd62f8d7b896c36e3d3d9a2c39ed0caa6c6c8c63052c049af92d47c9b15dc4a0b0c8fa5ae70c5407e8d614e29dc4a43336d614304d060e084ec4d0a02278b7a70a9468fc9442311b2522a5c75bb428a7e20cf481dc8bb80d8a9dd852f9d4e0fe83b0897b10eb9267228596c2753ea72356af8641006cc4aca6419112044b1f83b7469704909b3e02321f2bda1ae7be73409a2543b3fdd9e5d2c653275e25bf56070634adb27c000ed2ae1e73b3e209ccf30c1987ad9aa4b4c037cf18826d7363c0dc40a82a1e49736248535935167d7fb0a52b20c5d067557215066eebe1bb278647a41bd7e9934a9dd2d37aef69d1c589c1c2deea2fa89a20be42ec1a8f80d92c2fe58511ae33b9201f23fb68b1a84f719484bf4273bd0564712a2f1c6905314445c69299d9eb5b4dc36a487d2809fc6dccd5494aa9912d97ed175d8b23a1733f0df84a005b22baae334607db518c9275aa77a492ff8062f5f44e46b12a5dadca9338932307d25b10f725e0d5adaef571565c361ce0be82ba4afdc8145b8bff71bdf18948249a7fb700711743d11bdce91f77e1c030d975e2c5f43032c6f7f44b5a6a139c07175098b9921057d0af9a0c274e71832ddd872b0f9513805075e7533f77a8a6393c0d53df05b148dcb7cbaf3aaacf65091376582d5d7bca11d50ca532ef0067c3032ff7b6a195009a7b088e1e0364102b549b4ea37423968dc1daba14678ca156572cff635213b2ed23b1711f43f4aabfe2f127bafc009dfc7722d0ed78c91260e04446f53e28047cd2dfc11e88189c03d22aa6732702522273848014980a6a2c8149f1266aa12756ee7e5d6adc4cd0116d52b1a139f962a7400151061737eab43344778d72dc97d5adcf849c59d24a331f461373cdbe8d136185a48cae0eb2d3845bcce720c6dbce80250c57da4b29f9dbfd3e1080192e6c109c424e1c84ec1d01faf028952dc77d4a278e3cc8476e8379f94f79a57ca5218d8cca1f45641e56fa5a36de9597ae0610fc783a60ff59601526e53a634006bddad3abb8f5ee9297ee743c5bff5ff63883414d99d8a313988da821a1cd5c354aa803058e551921748ade9457c22088d0ebc7bc7f44ab646c8158b49e4bf1caae86d057ccafa5b8144f6b7eb3f28b965592d8ca0555b40dcd73c118f05ebf2a830e2270b21f5813da84e7361c3e8fbe7dd82f522680a5d09d2f3a03c231fcf14fb34f670507a2d066f53a6028458321167275a99a8cfeea5646941e1b50dafa8a5636287e6943f711fc7a02ca5e513ffa842e8da4dd41b502b9422ef80d0f40c41eeab6e1f072f717aec0e2abe457843907b1d83d793e304393adcf54d4f2c4766e52f8d8b0031c1d813dd816c3dfe031d838ba289f9449d2b8914518c9542aa4c1ebb7a9e1e1af8b1d3b0d144107c766ba3440798d1d700c662fccff0c8b3746d4c431b45f06e92e34de3db39c3f4c6973e6af2f11b401b4db3a980792f4042d45c2f7a2ab422bfb22263859c8e4a78126b3a02832e6197aa0c31b36c69cb5ec34445e3f6ff246ded13b13fb161679f88491e63daa054065989522052b3d084575b2f5aeff802bede46586c8c44f9dd41c0006ba5fd49e363fea1787f695b982182786ff7d328635005be94d5918a6eb051dc0b1089a6c54043c298b0d7b63040327667c7edd5880b4421e6f3ab73799100664a1b0e4cc5925ddabd738ed842e0373403902d638d89e8dca38bfe450f8477bec5dcf2e8cf3920d9436d48c1d1a8dfd9136b446913540411a79fb34e6943b78f143d7c222e7417b26f5e89ec68759a40cd77d3ce1fbb753b7098ff53fe2ada9f53b51994714e8bd5ef2e6f5ac480910d95b76ac9c249e40315cc3bdaf71f964dbc733b679340451a19e742b90d2ade744da7752176062f83a7bafe93ea63e64e2a99e4a9ead4689611f918c01c64234a6147983a7ce70c2e9b4667925bcb5a3a6913cbd1f43ac6af58d206816e59af9cf39403622cc7246a6399555a6ca19bb3a48936613019cbd399a80e7c36ae6e29aa8bf8cb12899666b74ffce661548435d1c6d0a6c6192afbc69432a058f855b719da10918013cf365fe776deb2f2b7ad898508e4c6fd6f820fe9d04c71c5945c5b5c1e16046000bf4ecfa8a8bb3f79deba0bc6093a828b8b47c110d32ac3b1b21e5c5223a20309c493449eed468df3507505347b37aeb4085425bba98a54ef19ef1d7e272abfa791700d9e54bfa3146551cd11ade8dfddca927886c83530c39b5ef07bc769b857d4689edc31952c657a3b66d53b0289caa300f980d2eff91f8dd1a3ee871568c5b22a760bb493c3916e10dc2490c2e8f90c5dde93bcb0eec05e2a9d70caf3768006df3d96c155f27a79c844237c1f1872d14854a251dc11112432f9ce50f25c3f7ca051b1bbe54f41adff86b3917ae7dd0b72e2012a988b293a87d44fb5affffcbabf5a81bcba227b7eed0dc012bc3ab147eea09150f51fcfcc540023788b0e20a573cb53032a9db1c573cd34ce955b40f322920e221eec26eff3a153176d408e07f7296e0eb8f4e3302c1236589ad32e294cd1f50e9764b9cd9ec30e488e74564a56b99253b87bbad2fa01471c2ac6c8b9f66aa620def3451b5fe9e3a18e17c59822eb62ede73d803c5beab04b1d7b68f74a87cfe1c278cc9ef2f3a05bab3e459ebb396b74d24da5f02811ddfe2b6b7203b9b15e4ae0b14d5b5512220b343a52aeeb75fa002e507588ed2d24090cf73b0fe0043866195c5026aa65f81033f1df83c3fa6351cf1a8bd8fb18fe7f06e0c8dbf26b40eb08b29ebacc979855e11b81e383b9765e7b5422842988fe9a84a05ef10c7ad8235547b77768ef3c3d50cf61b5cb31ed9c222124668bfef863d36fd673edd9d0057be02c4daa8bf541ec01057dbca451d346252d560a798d00f72df9976be42b234599b80314d2e76eee40013e9e06fa604d87e2e174d08a88c3af8a59e9753d3a769a3581df057c492aac553db409f2407209cd54152da5af0a52ec8052a42936f2b1891a3789288863256a7aa99479b9a86cd433c72cf930961049493bf61433b23031ec3845768caf37159ba3460c7245fadda37166b43ceac758b67813e423699209c6ac5c3a3eb123296f8502d66cad7a821f020a95921f2a089f0dd5e2c1adef061488fa5d64305772775a0c8b1df0c19b0975d823657d66bf0247dcabe26976378fd7986990cd77beed55ca55f1dc42cc05658567e5a7a8de11d76fc2e7e532f190536cab5d66609dec00eb33e6008754333333d8d8b902d54f424a5e1a3918cfc74388ffee9facc011e24badcd8e3c42fc8bdec9d61b212ecc17ab83470829082d65ce8d902d96cfb9f48b94ec6f1a9fa07a3f2342829715d949c08e8c7e8268506e1fb0e6cdb2f93cb9721647506290a04c81d608f593a0d910359fbc10f78e426f462922533cf56bdd5169568a67b6cc7e85fba278568bbb122599f32b89d57426343d60e7c921657d5360344ab3d24b42b01457bcc19641c8addbcbfdd1e6ade41e84658ed0607177a3a9e3fb0e70a71921984efadd7bc0c074489ef04625aeb1fb83c55d31c074e0aef5967e4de2d280e060713781130e0b98d06abc0115ecb459bd3039586e3fdf986c97ba8783c3f49111f6410abf3cb064cf1aba216d5a6bf225f251c7421dc9c73e8167173a79633f198c091059ec463c6ca9ce23f1379baba5908dc2eb61f9abe0773c6899f21bb349ccca4e326b43e65ef8281b1b5e272e58d1d8822b2b29ff834c059296cbc053bb5e84e04d84e32c2319d3273e1371c6d191a229e00addf609a964e690e1a22f7d55a60c161ab82df52b82a951af32aea94d13d6cc421ddbe2cbe205ee3821110808daaa8b439399e581c740884fa9f8a28bd764a30662f2ba2bfc5d30838ac655abb4f7b1171c495952c76fc1c720695783b8c0a62d8697ce9266bd34ef691a97c9553299360d3f65436c955b753a3d6d80b4b6fc2c134f844b93db09b6b75921dbe434f0bed31e904c41b1e38207c9d590ce59ff4e9cba8f2abb48324b7d807846e73c07a6595b4c8766a8b2b36f016512d1877502320501c9d7ae5bc297ccee0aacc7f2e557cf9c26f9707e20075fae0702c45dd1efe73c0ea9064351803e4c4db95b9bf16046d43e64ffe12a17ad0fb5fa7385d948f3c28599adef84f143ba35696279b70173ad34c92dba18426dc6935adfd48328bd7d06181fb4281c06fc8a02e3b349cfc1400eff946080ff25dd9f0b6ead40797fbc58e246073e4f0767ea8f2045f32076df2d05b0f577e59f11733220101b0788b736eba8bd219f3e6ada686b6610688b180e78e03ea305f933ce32e5feb86516043fb5aa0e9cc7bb6c75cb785807730d88fce4470347974bb1e9b34c348437c95e6c464502326a47fab5599f37b3fa184514f908d6d16438a91fcf4034b73ede40ee7135a4924bb39040a9a860adc64f942bcfad20c0c50f7775e2633bc69b5977b78ff0d3cdcf714e420de5f4cf4ff3646f7d3e5858b1659a8c8d7c8d34dbeb3a6431f1a8c93b1394e50e5b6b560124629eb654a8ea9f21739185e8f89144ca22ba018ecacc7d3d919ee2120b0e7a679a694258dcdf50a8bbeaf2695557846279d74c20f9d85e04a66ecd619849191d52d6f42a74172a348b70bd93633ac9c1592d72ef84a6957f27197a03dcb1bbdf51e56f69f87d5d8084e9e60a3a42fb16cee57590b771b7600fe22eb77056c5b3e00258c37e654e62a618c19f67a69caa43ce5d6cb84c3a9c8a84e551509d5d90029c6a519b70d653fb1eecf91ca9b4a67a370ff72e433982698ae436d36efbc23170668ac922c12f62614afb179a3b44f31eadb32b93093eef7a9d112fda05ab2d8a3cea5472df7bb3dd7d296539dd14d1f67b083697836969fb2827689d2ff4fa67029d7ff9fac233b496db479077b6c2adefab87741bec4d193f83f6c13c957681d434503958f38023f3470e54b882d29f518a5a6a04ca8d932bce3699093594a7a2c305bf7128bb8a16ab2686e330689701c66096212db314cc7205230bf2f236758c62196d70857c8cb21953ede69b94a8805e6dd183a1923d88f048eee3bb544d4c60847aae501e5506fcc4db207c9848a801548707e01fb9ce99583cce83dfe8193763fe803ea48af87f9aa8db7b2cc4ac60b41b1270554ae0f9296252fd2a3f9dc0129c17f910977c4adea4f4894cb747b88470855ce7f1143175251aea6fe61c29e4242b1762ab690ea83ebfcb4fb11be9e662d0fb0f85de6c1afd99f71a8fd09472d0f4491998f20ecc0a9f25c6e6aeb57ba2af9a0895e151a879a7b36e6b8876822ee569b6bf8b61b3ee2623097fbafa721772697d04eb42d697dedeef2da66d65633250656e25b94946e15687683cee8f458f6eadfb1717728549ef69a1cecff0e81d986cb3ffd00f7966023ef6d9ac6a6670831e25cfb653e06f242880c101e8064c179db6ccad16cc53f25522df00e303649166fd832d937d5f40ff8f369be45dbac92e77934f18e16d3c3fe2673fd2ca189e22719d09ebc7b47a02effa949f040d3a1caa8327e74180aa197d58a082d84c8196d9f21e32caaebf10f5ca7ffd26c7f344bdb60f047e5c93ecbcb8b13556f41f3adf6d06dda1f39f0a094922594732b6fc3a3d2de0febb9e4b4e00cfde042cb63119304082ca3eae983fdef369e14efb88b6494e2d9d9144bca849514bf787d9b74558acd5e94c011e3dd39726f58eee0f906081b5a5198195bee36573f87e1c8720585e97306172244cbab22a1dd877bdee4d7ed20103954597064f48b2c988b3c1355b31b4e49dc3a863f8f76ff51298a87838a53c21362b42b1ba5ecd1053b878633d3482b4574733218668101fbbe8b93b8482128a9a77b144c563f6c928d9527092bdd929d92e9bcb0f3a26969df31cba9dee0dc68ab46f65493445a901ef105cb0c7495738b924c0b67327012406fdb0f27bee92a2dce7724a698b44f486d53fd6f4af426a9009e2e876d5e7b31c34e61f10168a4b353ac76354cb3c93ed9b8d80f69fa6126d453fca1a30ab2fa2fb30800776284b0a1e40aa242aaae055d766526995909b91b90a286b7a3d3555b7b3d1dc9b82da37958af8ea93da1552175c281049ed809109176244d1b317a80fd64ebc130e52dedf7568686439f310ae59be203c1354c2a87eada2528c89ee5c1d68c7225c719e6032e43e8ca538b4ce795f6faee8931e09d4a0beab648231cc956c1a28605251c16e3737248d6887b4f38d82f4c04f874404fac4d70d83a5eaa6d8015754851a113c258fd199c24a8f3b42bcae72903204084dd804acfb572263be8d544bb24258c6d7c128e42b75041710d1ad1d5893da0d413e85a9ec0d2d876de29a3f6ded1fbd5f8e21f0b2946513148397c54ffc54dd12e84731e0b2444ec0ad1693eb015cd6e25f0ef9b6b4e3eec5effa7ca170ee0c4da0b2f2a22b1794d39d91d5bbe04215b1232e72f3bd3e42b5e0a504894e16e7a103619e04fb278c0208a7cf5c7e39fbc66333e3429abe78a8c7da0a32d642eb1029e0ef240cbd9f5de5bb3353e4ea91d00dde4caa18adbaaece64cfd254b8c812c75406e47d33f6319ce5a31eb40f90ab8a1e13d912777a4a6f143855aeec510610ec130b18679c6fa04823d426a990ed8032409c44461f9ad1213c8fc4ec3e1ba1ad45074a70f0ebc3702a2a0955684a13d7a4186a38e889ccf351906f9f57322c1e266e800fbaeadde7317ac05259d85cd40fe76a191b05c11ada486bfdd363ae81ec3bfb6739701da266c2c9edaa7b8c43dddc2e2fb3887cead3c8e221c5ce5ed7de8e13b7e9953ac5c3072d01664ff9c049c6b0343b5b281fee0ffa4599873f562a9b3680914db7289f6c7ddc0d0ad0bb8e8cfbdd1ef76d16d649480f0fa9f82f6ee0026821389254633efc349efa0d229cf174eb21f0464f7a14bb0f6a5604a06c5a35371e8ee219946e44d4420dcea1247a7454dc27f88c2f90595c25c6955e1c3eae8d349b81f478fe3ebda988dd239d49866a661a9cce6d0ec5d268118bf44d425dff7d1c2832170dfd4f261832c297bd48b1b9542273a8b521d822f2cd837a27567f11b63936e4fc79e81f4b628ed253ed3cfa6566b70ed3d71f9211c4c6f8eed98f66126303b1716428cf32e8aa834d6692e76b4208e6788121eeee17b808e9dc03d848f5828a28024835284dfbfefe59fb2b5c31a7514b2360ca3102c973d61815e421779937ef051c63b4b53df4b1a58740c4a16b1bdccc15779eda70397e40a0e08628104568488ae85f56175af598dee1a047d0cc6b50a48704808c22ca1435d8195d7987c798474843eda7b15796978da88c5bb389d15baee03b06f747e785a8e4305decd6e814d0a4b56c8be3368f5b39f456fe01e3177839a4510aa78cb7a18c34668a5551461fd4cdf065e2501a64b2f6812b031c756b4f3d1bf09f636c908cbd8878f8f9db200f0bba0183a0dc6b897494ac3c53685cbc54af765744f8c29a86a907b39e38a683e3b41d57378eedee9a0685ffde84b6952ec296c956a5bde099b7cdb518388cac1fb2340665ce803335840291907dca1d2514f43441181d4ac4fa6d99b0ef7095a1a681bf1f89fab31d8c932d07639869050ada023fd8aab91a14a6b76502a68c617d54b3f30614d40d57ce6d2b35e94a3371410cdbf6d30a4854ac2e25e4f9a232374a895f8496d9c83236fb43bd6cb9612abc10a1c600aefefe16f2e930dc03d5b812b2c080042de3676feacfbef0d95a60ac3cfc8c6d66c065a25817c20d56c7a3ec5ee830ba7b11d7846da6ab302944d54808855b5629221053e1bb483087ebcd1bd5e4a937862e6cd2315901a8592f247bf2ce52e908271f35172727b19c9c5f6076ef95b29ac002f05bf0a58ac5ae69ff911cb0335da31197aa82fe953238a212cb00cb45d7d1507d0c90875b992f8c426316a9b1aa4aa8ec99cbe103cfc43c57ec7d6c24c710bf1a2382029ab4eab28f21bc4a1c3232d12ffcf28834033f2494aee84a7e96c938b23202f1fa341a4cecdaa7271b67f6265babde73b453a13bbc536b32e595aa408743805fa9badbddb9e2a1c75869a4ecb3c7adf9646b17d4ee5541efed96cb1485de5f1ec89df0b352c39d9c4bc3fff6077644be46c3f187fcac97baf752dd7cb9c816024cb13222d3a2215c0bbb842e5f89687e56c244226b3da6e2a8b399cc31ffe09483e674010c2cd27a80c66a195cea428c21960b7b25cf0041772d438241913ce1e68fa9f53a32f68ddda7904ee4abb47a39bf56c3e0df071b38e3eddbf3be57388cd435a1990431e10af2b90579a3c9a56181b34b30e43a8130522a11aac902fb0c9bf9a5bd4ab91cb7fa344247e9071c9477f12211d3cb025d736d01e751e76f41eff48195f6098fdc05b4db41ba8b44885c50cfb46296f366382d81cbb99f2846729d5321c2cdc6f15fcef5eb67a58508f79e307c5fb3dfc46ad355417119525b1da28a534d5b3adafa3c6906ed60f066c81cba5b68bdd154c307617a578d7022156fcf15cdc98dd7cfaed34e611015427032780ba53c2d6dc62fac8102d188f2e969ba18628610cce13c58057174d2edf14f990727601b1bbce53169e3786e9a173ebaac5adae6a6f6416f283d611268d57e13f31b6ef9c2e84ecaedc38ed6f31467751a5d8b40bd869cba400a573abb39b89a352db4944d2262368eb316f157d873221bc9548ca50012a071f4351050af945e7168848f7ede197446c45b7cb48ab8f8dc125a5a16c7e95ec0591cae95799299f29b592f837e8f589bed8f81bd478bcdb4b7c1de5f7af3f565f0f712b7f9fe30d0bb68eb66a5d53f90ef47e17f237ce63aadff928083a4018114e666ff34c0f7abddacfa1be47ba46e5efd1af85dd2dd7c7f0df2fd2a6ea6be06fb7ea937571f0d7c471a276bbe12ae13832a3a90aba746c3439e60b109b5742984a1ccd46e7e7d0df03dd26eb6af06be478a9bf8d700dfab7273fb37e0fba5dd6c3f0d7c1769b7a9b7f80cfabd5269b3d648f83be8f92cec7a937f90d19bb25b97f332f669aa8a4b5d48b24b0382cab74354da9149e0587c560bc764749fa9483739a8e0895a27e68f4b55c11e72ca75cab3ee06adda61f2b1bc519c85bbca920ed7b3050e2424dcc6e1c1e87e4650461f823c27927a679578ec88ad5c6c92002e44b13caac1afa17a21fe8c3b28b61beb9a25a154be18789eede046e4453c2bc6a63708922b62a190abc814af5cf8e3a09f46e7d340de977a59184faee199297367ec989c9c7bccfbf9ef849555bacfc30c3da5900069b68ac1f0ae0ed56644137b79700184d909136557a81c2b359a1901bfc5395fc9ddae4ddfd61206eaad07b71a0b1ae831ec68a62032dde7ec2c1aa074e1c2872824544026e03eb96e97e79dbc5f65e7c24f36cc5ea0fe47b27edb1faad67d769736c496abddfb4d6b7d9dfacaa9b8b481727db5b6c73ea59ebc4d48479c253f4d2917944d7fe8f0948aa2945171fd8db27adb2b2894a353634efd687d1e62ebf4ffc029377e415e11ae2681c3152886760f31ad3410b9bf521b2f54725282a7f12a612185c83b8a382f694b502624d96a138fc6ce802056ce4b2648f19dc11167b07bc05fafd565974bbfbf849e97158b1621bd8883aef529d78e1a88c2cd42418c61fe89d13a4a6f96d35ec8e2d7e72cd68f0e5de9193a03e0689e408ce4a422e447dc50473a9e042ba795017f0ae27db3cac46e46c1163907f264c0a517d0f2ccc65212a0db08bd7a831eae2960f0fd1510c6fbe7f4ba087fc292588837eb054671f5d3024786207bca46d4612a4b0a9a6d954a0f9b4b4064918854a0d422b0f1c26f6214a91e4b0c5a990b6a7720a7479bb218e76aa6a4a7dc4b3be13cb7b10c931d175c63699fb1077394e72972012b7ce298221ba6ecbc14e5848cb54550015172c82c5475e4567e9317b699156225540d89cb6b71090bd7125acb4b5b4b98b7062ed34835488eec4184deb1690030f1af3382d697049be70db3dbdf15240beae7a6124caea59a9f007b608d437e0d0fe403b5a516607bd50a234e48df1e9148ac95bff456d102c8b54a70bc406411ad5657901ea2509e3d123693ad87584728584c012f30479e85c8aaa52152893c1a6e0bf71867b3110d7545ba838f3128721f6af287e01be192f8cafcac25238262aa003a0edfa284af9365e02cb6284a8b7a592110b1230f5b7666b5daa507429488808da2c7ac9348a61829f402fff928fc3a19db52ecfcebd999d0818ae36fd388b2cd41a4b3d0ae0f2528f2baa20646be88cc933513606f7c45e1829464a0baf7317b20173628cc2cfb4e785892d43520fe9bf4dae5592a33994e0e58adfe2419cbbdb3f323b7fadcf7a1436bbe09c45e297e2129da0e6c71a45d126b8ac1f5908becd7a8ea9b9839c970f9beef5be67f1eb545247fe5575a6c561694036e68a9498f251812fe006ff0a797e9e706d84444ec35e830a45f462a88d947f8f9bdf929d73d54b22164bcbb3c04ce867d79482f58ee0fa5817d22d461567b921a751748e77b19e4ae17aaa75caa46f06fa46efbe1f190049c1083b2d58051bca13b9e7eeffa6802d344f773cbdf90e58ce1c5f634579b4bf79e7e077f0d34eb4db7792622fff81153f3a290f108418175d00a7703d53d3914ae100a41ebf04e0b5f8789c42f3cf4eaa481f38330cb616464368408a35ba3af25b06b8737fee21bec98c16d60b817b97f258053170a05082a47b8eb5f3ed5c2ab0245feb97c9994d6941b502134622bbc3756304b73209d1ec10285ef558696c58c39f0a3826f12e217af14a1c4d22149a3cb31365112bf3e256b47e45fbe21a652666f94be3d4a83eac3037ae7e0422a0bcdd0cd486fdfc8226372f12d577419dbea72795db88d02e0628f5a51486b465e6c49b9e8e3eaa0d6ea954356da30722f32c233806e97635793a98c9cea603e93df44a0df0023f8d0662b6c74f2ce40fa4ba39317ca9b4c86524f90ceb7d6091b38921af608d41d554eed3a76904cd12618ca21376315bf354883bb96c5b179565c6588db3bf82d5d18a903b44f98fbf046828f17f0d898ac4de7f9a70bd86bb874effb090c97dc14fc8af195d8052a6281e121828ea2427e53bdcf69e1cb7e2f4618d2065be3a30db06e081c3f45db60d4f48ffd4a2bca2461995e46c0bd51e1ad00352b56a1851b5543cd170dcb762480e0a86df34905ad3b4d36950045417fc491fe2851495d640e3c9590d7d94052a3d7e718d067082986c773b70b0dbd1192dadbe9035b1b523e4f1e6dc215b8bac1c824d75dbc8c25cc82d8c17f634fe45410227b81059e9d37977e0dce39cc5a768c9a847b82c4ef89569ddf3fc7efa15d1158164133645089a97c29ffa0c6499d0eab9d65d4bedfc0703d137c93d2552d1dc243464daf2c2b93304e21d99de369a59fa18e9c0b40973f4250d0c6b3ecc49c46a5751a0d8122a01cef787653712889513627d78628ef2cd6ea69aedefa9862e7b6a7eff71bb559506c412017ccb171fb3f1f909ebf39ba5b44b3f6b85b27d5010d957948d003bc079d0549bf6fcabb5e69914d66ec76b30adbb75537be241fc9d1865b8c97ffff753893d3f5008bfa8547978f8ddf5620b99e9d55a7ad955ca873fa4b39009e7e30fdcadf6a9129ff5e3f488347886cfd4a0187d6bea6e708a301fa339eda27098c8693152268b099e92c9351ca08858bbc4e702c913557e642101d13e64f323ba02ce1317834a8122f8fb4f3b60e89d0357ef33e91c30d951c11a289a6b09e91c63334d27b2f384d6e7965a920ce3576f2b5c2a5ce1abb126ed47b8285dcc7fd52407d64c42d42321c5546a625bc3b40f06235f8e69e125d65df6854764f5cb9b9e82ca31afde2923f8e4b4800beab0e8df9c86278e810333862aed733a67234eb07e90984b2512f219b5b04592f7072f25329c54e64053d6bb1d27cdc0ea8c3c05df4c9f067f3240e0d58c60240b1bad51e37bf14d0dd072a34cb8e6d2becd68e8813930b56d15474424014762d759520e656c5dc2ab174d49971117e99b6a9f60035eb71a5140d88d278fd0bd44244245417c44ba57552d9a148368c4ac1d0301cee8ca990ca56f707b3bdbb27ec717934bb38656b741fa4e16ee856c4d0aa4ae0594d3042bdd866cd9760cf77a3120e766e3b40fcfbe11d4631dbc9648f63886ece6a2cd1c5c74e16b185917097dfd1e462f5d304d1a820a0f044fb6dcd2ccb4963263d39897767d586a422a5f34a91eacc74069b24d259678cb796bb324b4e0e0100551f98bb45e9450c2afb8ddef09f769b6a089c318e87bc64368b05123403dc1e5ea9351ca1a3cf97bb35f2d31002497579ea19a83126db1390e604fa7816b34fe93269f509fbb47b033b0e0a93344bf2959f990601fd7eccb36c7876189f1d2c1165d912f5a051c9986308afe71ca6c89d19ffd2001f48322ed31bad044b04599bec43606aa56d4ba7b65eb15c2fe1367fc26ebc106324119f05d1419981eb04671e41010f453b4d1de02765a5b5497146916f5aa82eab06024c86a8e52a082b12c319c8c5fe4f506503c460dbefb2e9d9764c48e58673eac025bf072cf927907d17fee2b728f39144848fd6c6ef200b50c4171af84cf6b04992d12a01f490428e99840753bcd2e7e2ed94f94a75a6ff470c91fa7600258de989e3f9ed4dd3a2a7ced4afb5a6ab47a228f92dd634f1d56ca7e49ec3fe2e07e435bbc53ce494a17bc7f6e83784b4abd3de55b6bb36fdbcd3ae6635cf6fb1e682d048fae8e2b49a1d748a5046213641105e0d4b9802805c6b75040a9295e165ece21f92f32d2a7b39cddb7bac4702361513ca369471fbe130fcd84ff1e56aa9b537e425342bd1d5560d3bda9d095cb1878d8af5b8f24cea95d7cffd73efb4c7bc02ec41efd63357c496ef58904d5f42e7720c6599b97f78919c0036325192dcafdf58942a92403ba78c070c16730a4366d7c6324acd6ade2d97d422a93bfecb18e0e07aca9e8afa2bdc9ed54ec792db18c2ebc6c7687b1c14be995c6f3175afbf161f2ac2571b4efb6af1929a14a10ecbc89f4e5b8389b079efdc0d9a36a064060b7d00b0d35b0a88c0ca2a7114ba3c85cb3fdeeefe4dbf2957c66b0ecc7cc78df49ff6e955089db276d2d45ee28ed313fa5decd894e511dcd26239ac358a25fbcf421deb9b1e5f642f94c00171698d024f74eabd4d1d1022b8a8b886540661a94dd4e7243b1cd957432556f576ec5cab204a757408e266a87fa9a2633035c5c5fc13cfd398c49855a44cccc1bdf80ad16aaf5779e176e190288bc6f99a444416cfad66c99ee845732e0648413f4105ff2ce5682f30091f4558edd75569f9699abf344d11bd98d88b89ed2e3cc53df01c41295929eba4417b7c94f5ff4f31e0165de85947c9d7a3924d998750deab9153be64d716c71d3f7410c37afaa269d64a6e0439c3376a1eb8e36dfe00f0d97b24fe2b25c6c8eecf844f82891830c5964639588ca4c45fc046001ce0dc2b83223bcb8f8584f1aa59ae774091f2daed8c326fa202683aa5b283a25d434d8040078f5207fcc4469b5b6796d8630372079cd733868048f282eefce2d3ac2b7603a67b223d385e1f670fec94fd921f6a5afbb314283ec42a770341e0e550089b6031717af0892d64c9e6f1252d049e9a843514074af231f601634f36453a815011fe149305945bb07a3d0510b13c487861a6a0b872aabf49a406343d2b0260aa33ab1a06ab2a58f4fa794dad717c9441badcbf8e14b8e2dafac6afb0ea1d8d4eab1261274e0cbc8e22d73fe8a6e0e41607aa2b4bdbdb1b3284413d7bfcd34fc352decd864f1d5dd7739dc5baafb9cb5221cf4d9fbdec2ec98bc59bbbb9a0f98ce8692f5dfaed4e47612ca7150b2b719371ed23fc8d67ca7d7d09cff62de3dfa31324fdc9a02156d810212184b91ddca708bae0019c0bff084dec70114b0c06a1e5e289d17f09b71d90629f6ed0542b97bed87179f6fcfd23adbf8e6c6a0d736b0314bca2b8a1663a41f09c7a0e799f8538fd3269b078b83d1871775a7b6438fe57c29984271f6938a623cc1431c679d2790d7a017a831a9144faf0e52bdb3aeb04fe7da10a190ac9784b77a5dc45e1e61f730f4879ad1e92f6b756bacfa52bcc42edcd93f97ac1899bae73400cbddd0b0a9a3d2051e9ab3eae798e476fa4a581e959606eb5e1cac620719f3dfcb248035df04969ceda27a19eb7440527e8c68e0cae7c17e7dff16a62817128d84b6c70a350c829ad15b9a13a1335544893efcdcf3273c85a4c7786ed337880e0abc7b27b8d7883ede6a6d674c8011db42f02e4e2159c7fa657a3a06a68d3119b669204e6b38d9556cb589c331a66763b9b16afca724ccb5e62222c7e792655fd7c4bc48ca501819b6a89da3f23df86ce2f35b554d214853acf70e512b8332a2e4a732e98f0b0209c317ab90362a53245987832152afa7135f3f44495b625c2a00fea666fe5a52869fd56add4669cd4cba10c05afd83d50d0b37dc538293b6a3c8bda0030e2b7ad1cfedecac0b5989fcecb821a9e1f2c4fd39cf3d9149bd835b7328420b5623fd17ad38e1cfb5e3895a5ad09980a59b63132fcd70f3479e550722e80e5855d808e919f5192367e9f2ddf448df0a11608c55f96b39512b4a1cdc6fc6e05c2475c24e9691d34a041b229e86e0634f53215af9b73743cdd9d52d22208a047152a02458ff86c8b30dc5cfcf81651de6a76a55507cda0b24aeaa45a2517f6397fc4211d368cce21443dfed5b4e96cb8a28424c226b4e9e7923f032e8d6086fd87d56847e4c4d95ea0e263219362e7887da3e474c30497b418c80f6914ae0d14144ac443b4f450ba7b452157b42954cdea20da74ae95b639a5cff576febd45633a50e58aa23c14e567e2da17f651b9e3835b2da98c456bf77a36f63fa1dc74d4b04466c1f452987a46ccb0f74cf0e3c4e83f906a5e67d7cd2aac5093f58333fe206ab10a968a7b02e70fb7ba8b2d44b0f21464cff168eca8e987b0d609e4d69c8cc9a7a2800b08d16e5e34252d435cb9c7dfd1e4cd6da0bdb02653f6048ec49260c8a723099788e353e098fbb1a42c9bf944996469be0ed36e342f1321485e2627122f93b65ab2859789e795457e179a8a81737a549c7491ad2792a09dabed1b0e0d1598c3a429148bbc0528f50295ac56715be24e8f405e3cd5fc0058e6101a67bd3f77138b5d5c5821b950dfb4513cb27439f4fadf1357ce580346d1ef234616e99764e49cfc2b1d08d07200136e21e41cdb506bc556f55a3371e880c30d27d35c7c9a348c450bb9056040a605174275bfa3497f386318292ca679a48e7488c6984c2b558c63321a6f850e8d29e4c707649639541dfdd21f7efd64457e1c43e0b5b97b5cc76ec4cc2cd23f0800ffd7a9b145b620e506f8c058353cc9ff3679ab0ac9514fbe9a4e3ab6ab5e51b1d825998bc4c1216d031f9367c7a5f71f6278efee74e9becde825b8a0e0d740524183bd1d94854904ec59dff1c7c4d5c0acb1df309761655b4f6c63fcc5dcc15b065d95b6042eaf8e556b4d8583516e981e949fd9f7f0578bfd236841b714d2d45ce81cb634c2851a724ebf6ec05de9aa7e0aca1a5d4c8900fb707b4e09903723891eaef6170bca2e17a8b01983314fd36198303fa25350fffa69f6d8d16b382c5297a090618a299e53311b958a032338f84d81d4396bce8123a9e0dc31c66adea66b91adc52f1abf669c678c41e50bc9293351969cfe40119489ebcd64a17e4969a934a4b0bd1d6f9ab42460700c4f0503fe9b5d47f0accfbc3beb915a65ec0b413cd3201aa1042e17ca5c3b613432bf7a792554739ac71d2784832522a51929508b2b7a8d6e9456cdc69cfb950958232ee1b08f7ee4ecbcf0559c07f8289c42271f522b70c364ee9211aa406cd014ccfbb6d3445268857e5e23842fe99aa8c17428a7d786a96384d10824c08c65068aa75eef316ec8a88dc1c369751669e861da1e2e99fd96dbb5f809d6d44e832eee20c838b5e1053e3857025bafada67342057fa63d669c12444bc0dacac8ab8e7e62d2920ce19ac759c6766b15944c6693e065112f4da299f9e2cb489db7f2557d7cac7bb7db13387c6dcc44b301f097b74eba1250b53ac264668f412fb6307040c5a2311349343f75b1d37645f5799250cc4ba7f92167a71b55ad9792e22042d853d8fa44e3efc759295a94784e11270012aae0f341c4a87b60cef09adb0588eca8ee43fdc79575526a41d1a1cf8969f069a8ee475e1c7000148a17ea0ea34c001e4b0bc3284c866aeeab768a049ec0178ad0cabcf1fb3f404898d9bbac31febe5298520918d39f2304223826e38fcd9d148f41b6c0f9b5d489413d4b666062fe80d9e3e3c34fcea6212172be3eeacf8174a1f6bceadcd6c460b8a80c998be3d721e876afe27795f18bcdafbab084ca31431e62639be7269f85cb3e812680fec3dd038728231f90fb4cc10b5bc540d4450be1ce736019410fb5939006b9c0b236f3268b776ca1af0fa450850f1efd04753040518b9981772ecbfd1d38839c1d01f42a3af7fc527e80c5d94432ac89bad29853bfcd24761a394371b5799e14df37f7fd8de2814b5a0109d743892bb09f2cca7223d7dbdcb9bbf115fd62c63151be50839ba001df9de3adbdb31c1dfa4e14994bc96ea1b7097c5b063d205564cfe659d253eef01e49b7c38afd22070b707e98009b7218eecfbf7af13905b887c8a3b99b2b5442723997428f4dd410afc71b82703735ef7b58c52786b10cc361e0c2037c50d84540de7b0fc0830206ff900555d70239298919fa2ca4457ef22d9e55491ba99672cf7c09c3729d691df32d6729d12acd5aa375c79b5c360eff330bde15c22784f3a3085131a6587d0056b99a2ce0d1b1362a15990bda11d47a7dea1dc3b046e87319d3c48791ebb1fc165bf63d16ff884d5e18149cc7feb76173ba4dda38cee83d061e7616aa452973a13867313e4c5f563546a7af13c5a261d0823fba4106818b8616f6150e01ebfa2ba11744239076ba2ddd1ecee6d153dff8642502020e4c70931f06bcc18820df3e8784675063a9cf219a24f7a08fd7b24e63f19e3f3caa35efeb302925c2a98878aea2b7354454a62692abb37108f8ba74551fcdee4824193155e9e4c5caf102ab7db976a6ec4978c3a7e30400ba14ba583ad12f71287c1d02f356b2e4f81559e6cf3afccf7fecd916ec68ab8877c21acebd055e631ea730e5c1c323809166fc30ecf3a4810713a19846e13f76cc581380ec6912dcd7cd8b52074c02f65b5ae3839051e1bb5cfacadf22d53ea60c72414c4e007c7ac4410812877cd726a62a187d9e0b4e492e976a271e1d981b22c240771dfae4ed2d5e42996bc4c3e66f07c760041e266e3b082a0d4d377b08fbebb72c99206ba66861097ce733dcd729e81fa4c5c585d0319bc66abf65ae68bdd9863f081ce206517fedc24f5eeedb8fef15c2d4ba14ea2cc373fee1c8b4a9afb42ca8ec046f4e0f76bbf94dc39ed4858b942299038b434ddee02f3c59ad9ad360515f842b7c7570198f1267616fab6db83e0810add95851c3df512c6c6eb4ced6bfce1d1be445379398bb4de32b216c4f54b9020053da45ca053b9e10cdd16b24183dfba497c269010c3988616f83934e456833a5dfabbfd62d8ead83d2c6fe50a000f386f906b341702705d29edb22db90544557c4618aae2ced221a0152c306322956bc8eb182874744fefd24eb8a0645103da1cff559e75d8743f6e9b4b22e1e18862f3c529c87fd2be09e5ed3ed4feedee64bf02bdcb4bb5812bf8c461e718b028900b1c2488970f91a18a2901b0b8c09dec00d4621aa49e6e861f6e633c2875882193e6caf1938f5aa5d9170352d1ad43c8ee35c9d67e02c9b984834e08ab23e32461ae905a7e38cebc688697c0c373c3863a63c702f01d5de286adb0e63f83f1adf44ffdc3041afd34daee954145333c055e7c52a68748321cea8697cf7318396afd2981d0344398fae403146455790bc5e52084451f7c35a48d04106ad59192d299cdf86094fd931b60f6ab7ea0f9bdfa40b71b0b1b12b3217d86953570c3fc469a1353e936f56058d83416f899401b0acea740f4ac0ec14b1e55820a1a5682ba419454237c6ad05bbdd6adf46cb28cb694d75809417c8bdcec116a9aec649004dbd495fc8c23cd7086a742c1dec0ac19f1182749623c1b88cc2a7a5616751f98f81f27db320c1cd71e761804c3f789dba8d06b06e439a8bdeb2fab5231577e44315e4ac71d889af648c1b2df6a8c740b076d3b3579df4d9f321e3fcf760ef40114db2869f43eefad8742e93428584cd1f878c10c1ad81c9ae9585a770493c05c3cd02f28b83c23b9448d79eab5e0a994f0895b807120aa793b00ab9a5c9dbcf876f4580be1cc1426d8452c0ce67dd73456b00ee70041e6f7c53a3c5c95565063b3972e419dc01878421d38ec14311cd60cf7ca7aacec0578a5b86a699ed0cf1c2298cc75ba950ad760ce56e8bf4537a72c1eeafb0d7eea901bc597ea94c5ce2b2c5b9a18f3f3b1daaf6a7799c80995ffa4bc18570030241616c420d856717ccfb55d58e23d6246b4347ed67aae11a117559ddc992a7a1da424b0a456b31e0c23cf20ad2c04fe8454a3a84057bc9f286a9eab937fa3003041b39734a55de1de4fc9106828b414f2484663efb16ef648ff902c5713c9a1a428922251592c949b9c40eb4883394e24c3e63f6ccd090d6886ff857ecb73a67d09983e34ca10ac2e4a6b87b2a7191d37fdc1030fc5d54fa8e8068a06338a982868d4a42333f697c4142f79491b3fd8888f901510354fe5cb136771299ea9e5f6d9cba1c6c5c76cce622e6263e6134172d1b54c151cc7148744438fb2ba4c3297cb0f2b561b282c71b6c6fef520994928c98b9e38a564fa77f8ed60a953def5e33ec2a1bbee76160ac3b1bb350cbda96c20bd738d8672948c01e61cfca6609354f0ab41296cc2d9b254c9834464411de7fe532e1405c8e3180f045c68cfa0623c1a940589f62a50e4f92244649649b0f82c95b006fc364719128c6eb3920b8a78e340a3cf93f1902b67964ae91b58a8d3f2ef7708956c3ba4dc64870584a8001124fc46922c181cb672c2a001fc18b7862db0b96d5de6935fcdb4f2d336f1a3573e340f88f259ac1e648eba9d7bd41ebd1661350d0b34856c73f395bbcfb04c6231c89b754cd1b4b3c224cf419e2483a19504522974d5b5f290e54e96febb6c5589c7273762cd0f7ed0c1a343c5248a9da67b0c65f2bb95bf7c3f8d13bc0811fe100b60368060d9e8ad919e60d6ed4a4e9426176228f811ab8683117b22617ddec846549b8868b6ce0c1f7c944e03eeedbf8c22887556a2161d92a2c9aaefd65d6ae5aff70bc1e08622f413084cca6f237c404d49850ce23e2c7aa8891eef3978bba4f3261457940c80266b15ffb10d01af0aa28d8f123bd5d23ef469e27e10bce72ceadaf9cfe500b2c4696c5fff6592c8b6ca706c16c09c5e70935a0008f0f8484b254fb7032ae0420e5dd1f4a2b1dc64584fbe4b7f50dbdd9878a7bebf5391bf8591d11f35cd7123e387072ab26a73a5001b868dbd194a627ca9a8a0864123fd1f16341310f3109e802d8fe7ea463e442073856f5a50e02601010c9ec331980405e37bce4fb1e4d6c89f9870d37389011557f6d848bba88b5d80379d9209a6f563a621a66e59a5f0fd1b2c44b7d1991792dbc62a34a482d220cf5f4d5adca89ccd2d722190100299a96f7fd398b41f515aa962ae93be67d79b03d54edf1fae8877021b9f6fe265e3fd4d44e36b5f46b2fc444f0e2d5a387de1c4d7f31faddb0cc5257bc0e8fe2f02bd68a4e7f386ad0bd844857804f5d01e22e936728c004dd37146da75c7da206e1ca8f3f64a9e3fa5252438bf5b5fdd047630024a6b878f7be017962581b5c20a4093acd49c68a25bc258a83ce56df8a1aeff6387fc79f4f8c682f2808c36200761bafa147fca96e70c67fc16eb24e7c06db4bf1fb4b1fd775116048c84fa9b63296eacee0ffd61237e3f9116e0905150f88da1217d62295ef638b0d9cc462b70c2ea5076c22b324fb2ddda029885f8da5133c68dc204e471c30d5ad4e93d566f003ce196b377da2f85bd80c6ac43547dd7f647ff0d79699ca22f8334a4a39ef2019b72584741c68c53ca68911bcf76d36358fbca95ff62b2041f8852d73caf221f1fbc4b3a48edcef1010337127675d1d58d8c9b26fe46b849a7e897d03e5d64f39d72c2ce41fb0f70d3890df7b40b9e7a61144490c0442f57517d2f2d87e15598c8c0c8beaaf6e53fe60a7400354172dd9660ec0551f054c997d38296da2e3b20059ae824aadde175d45778910d525dd3efda0bda21c648b611701531e47c79d9b209a330d7216b507b9545ccf8563b62ac5435fe26bf60d962a669c98ecdf1fe6beec3d209af6b2ba0704c6113e6f44b19868dc85bf95ef4b4a0c7bf85a884bc5febf820554d817193e2ecbf98561cb82dfb3418f8a31d03c1058a034fe53baaee4c53a1e9e039fa3538140747108ec4420c249ed1d83bf9d6848e688788b682627cc3dccaeee41cb6fc842e950a65cec9752b4603a3e66ed5dad9c9808e32307c5455a35b085f9d42f4a7497b6517db6bb3cc922af8b0e122105cf20c80b2dbccdc3b883b2bb6f868291c64b4a43397085fc2273abc9ee7c0ee6fa7ba0625f4cba653739a8199f4997146b6a65fb49c8a3f46d585bf66d7d5be5ad4d88051b815195dbbb7096e66fb128242d69a9301326dbf4e91f2f699986008bc036efee33ed83d459d28083311610824564b342c413e5d4565ab5b58acdc013788e112b34b02274302aa857bd9ef4cbb9646265269b14e3df1eb1d9620f5d70556930176844390c0598fa8e3d2de8ad92fc4663c9d94caa87ea5f339f58b42875e99a27814e2a858ae119a0b2164576c83fc03c308f0eefe3985873a571972d9107bec267dd63ebc3a37d0b856f5d981a7b40a7c35a8db69f5a684149d6387eaa84989c2f0cb1313810f3743c07a68fd61f773153fb0454a40ef321e09274389f801689c37d04bc48eab06c4c24e04ffd433e30dd296e7353c53198d88c2fbd6d525b48333c5d7a9852bdc22529171695d4274aadb45b96842859eaa502b521423f543c93eaebf0320b07ade8d01814678e933738341e8ac52bab717ddc9dc41de9d925f7a8e8d13a9cbe35b1b3c221266e40b0e4f4e935a06a703ae9ef33ba1a4d0092e5a897c550feb64a219c24ebcf9257db40fef11e78dbfa359ece808a8b1c7af4159df83060b56a2b256733f90724c69873a0da75650bd8dba494df53ae3db6c4be35a298c165123b56d2793dd34c8f00adee5c0cf961a79f43cd6ca2cc3d08732584b409b2a40373380a51e11abe372838723f61cb3ea041cd1f1066b76245cff405a299bc217db4326080621dc9ca13ccefb3e16165810b4a33b5f409d0138c2bec671267e061a9478d94d55938367cda09be11682023a26811634f9aca8a3c1c8f001b607b1f7cc20f5e51be272c531ca07cb5fd53e20df76b0a7f7c9d6af98c62e35af47ba2e518b4a98f5b791a7d40b1f343295fe284838ed63333f65d18c6d396b103223a0c031d30e056ff63a15eaab9df7aa57a2976ec6fbf6d87c435015e2470f5c73c5fd223d01e8e2f0015e18302629284618244203514c6725792e5a3b5ff224373a64e5edf928e0a7222b76f655fd010982b6f7d233d16555aef0d1f1a40c554901ba9724278694a37ae8e0e4221d9c6546b962cfeaf2010154b5a93f8aec80e51d12e861634d28ee7901cfa58a48346138d832bde037adc65bfbac08dcb46372e17cee5ae696da83a66fc69c04a5c0944034c5fd2627237423d17ff5d6d50b0d5680d59f1445cfaeba7d2e7b277c29dbc79537e1ccae4d927a55e45aec39a9020442972d6fb0a184766319d348f026c4b1b893aeb38a762d6286218064765f455a7774cae350c7a5fa55f843f9f93e9e84355199ee7a156814b8dc9cea6a783d244d4a4132207198f945c347acb755dac70d3179f55681324bc58bd7e3a4612c4c1c1cd0d4116c2d169587447d0d14979a81bcdd8f7cadc158b0a5e81544e0d5810c4ff2ccd51811a8bd963ff5c89e5a063d44622da3d9e33d4e105a21dc3a10bd7653194881e1355836b5db700e42c616b62acff95cbdfbb77ca996066060e0e5edb96d10b21e31c71a08e3018b8108f81eb55771b6af7edc4653278037557e2b838a85615f8324c36fd2af3ecbc7b51ccaa479341e1563e8f9785c9f5e122a6c691a38e135daf962352f2a81e1f8696a4f72d89a41650ff8d36c29367ceedbc674324b53ece9bcb0d3da8420a5b8fc33ecfcfc3b03fb5df5148951b5076f7753b7c69f5e44a2081aab06063f6c22a5d71d0c71f245b10b0477b1751e097600c609d022ec5252d5a1e54ff870af74e6664104766407fd04c3905a88200db27f9d256292450412c8487c5608dd68886936fcd7d6f50808727929a1c5e43c05598147e9abbaf6a628f6e2af831e5c141b0ec0613c80697e3b2892bddbc709274eeb4b2d05ba3c3352abcb3fc60c4d2683f6cc772aa3a8d60c97304c37d64d3e619d5a3a490182a350358d449e2a141f935194ef29388ac96e41e2f1753d38542a763631e8116679ed44cc1fd95dabaa9739188dc04113dabd3bc8a7b2c90282ea8393031641cc86e05cac52758e48ab6f0b95d4a58f59d8b06f546c2b814fb531e64259574feced95dbff2fa8f17746100c359eea8e32f8ba7463bb8c40904fdd646375c81682178b8cb53145d845f0f394563aed38aca03330669104ed642679f09bd2515d15c2091808d47c82c741e70560eaab1c25179d9c2b690cb1ad6f35a50f80ab4202571443270d74f653549c9f8aa55267130548081cdf575d24c860fd046fdcd8e224170d2ad0bcc5f6f227301757361a98d1ce38855781a36a3075220288918bdd004dc25912996529875da24ee3d3bec190c4c2f8dec4cbdc7012bf9895f3350dcf9ce741b0e4c7885c8202d248ce9fc328c69e0d110aedbb5c8421a729d78278dad99c7c9c55cecec5ecff3ded1400e76bd31b0ee3c28c65088b915ada4698ae402b9eefd66a36b0a6edd3c7ae80349ec752d72c6e42949d0c6341de647f80da5191131436d63596274567b9f67abbf8703af4eaa74b7713e5b44f709aba6713d66e05d2c7e6607be4cea68b70dad796f449c6375b321c4b40aa74d90c66dcf5cedddf09b4b4a99c46f96463d06a88cd22aa9f39567e7a43490e11ebf4df2ea1ede19818772135ba116a68328a354fdda9511f2992406fc6a45b0bf524ee311a985621abfef69a22f5288b11e403b361c4d96c76434ed3c37ebda47e7965138b59aaaea3393948174a94f9dcbe929c5365b69825c265d2aa8a1fb9d27eba4731b976e50846e4dc63c504092202bf5197b1887deca8e245e545c25a580d3ed3e8a685cb8baed90a98cec1c9a0a5a5afa2c82613dae1de966c3413ea3ab365ba56e24bc9ede4f10da4c3e36c551a4e44afdc8330d7c49442512d5f92a3dde31b5b50b1a7906c6863d638284e15cfc65b6dd0f90e60b070b365f8f243bb4488fdc1cddc8fc0dd3b7be77721169af978daf025d08833a015537af9fa064c818fc71c31a4fbc3f3e812baf6b762810ef27312fae3f4603f67eb4b57875427881a777869f3936d5b02e9e183a1576fa94a6b20f62bb792607fbd583dc651c1b3d13a5ff2df03833a7df160119754536f670332e685f16923a80a331960b24d3051fb9a0a266a328ae3ac0e08d11dac003d208fb4184724a9baae257234bd220d2621ac521321b98e2248a47e18939c807f186684162aa7efc5eab698afaf91cf334c3cc0f051e7c5904e0dcb143b11eedcb4d9f7ab86203678c2dc72002c121d4221c64977a89e0a446a9648a7f90a06183e28a2c0c144a9cf6cc914d196050c7ed8cb9f5042ee139f0655ee0421a2ca26ed2d500217d28ca6a90bd944b4f7e0a31563e966e80f4aa53cbc7019f8bf7dcf29be998ad1ca09761eb9c79f58d9dd625171985518cf3db50d65b8996c4fe8d2eb8529f3371a79d9f8895948facebd9a3b5cdd88ad06e85f526aab047f87708ef1e7e2ce067593f0c82291a66f4b84aa9302fae58b34e2976cac774a44faf544ea3926219e3f7c6881ee7959803d20d29111f88b43e44ed83bdab1ead5d0c500fa43b6f2d3349489a0a3294e1585f68ee401b1fe90bb139f12ac81a1bfa62d3a2f2c33894bd982ce6960179ca70895fb9d2439360274b86869860208531fd934963e6296e52003051bde51755eff71ac318e18ab146a418e3af4304a3d145c46865591e4e0923095ca8ea0b4853d5ef42339483b942f2a488922af87193839e56ca4aa7505aace10f00a7d8e1d200d065b5dbc7d72b960e6345fc3492b6a1d3be61d21d9c122d2bd00deb33b92a969cdda1c358ebf525aed47bcb33c051f7ffd4313696cbec30068bcc8a08068b1e0086c3d89637af00419c58e62641cf2894a60f62e80b63f20ba12617ec0b6319978df99da3141863d8f0b52244743ae5d452d02e62f6310f2bb114152c38e8328ce5824c919a392f45c1554aeb8d202bc998536e0f782a2c42aa4e69cad043d8ac712ce451732842b9331d7d7ef4454c9f5a1316913d564f83ce1069645032439e61c16d0c0586d2182697a569d79faf11f10b3d57f20313b97e0493f95d6943b6712767d03434da304a60e1fe0b75f7130d0ebbfe337cc23b326bca150e010bab1ebe15b10d94f7d8669dea3973245881fe1380f7d06191ea5574284d4e8e925e32458763a6698d995542f0982dc4b16af72788370a7e854ae100202464b2579685349d75c727d4cedbfbc0347268c3afc39a398a74cc559fef661b347d2ac084748c32bebf40f0b3a13297fcce3201e9beed780c1e34523627d8e34ebb84111f7a23a6a41afe61eed4a2c111e66f55c21cc80dfdd50a6ed94b8fb7397464fc9317a63eab84fb9da15bd73261ba95a6dcd7853e6f9bb7cfad218c38d8d0dac2f5e72686d39c8eea280dea3e53da44c6fd500abef8f00149c24ab6fbc85afe6267851b6ce039f2b677bf08b6345c6a8962ef14c31515c6e66bcf9171acf37c45b76aa61450f19a8e157e01bd6c848213f65eddc062608545ef78273b4421c14815fea338f1af204a7546b5a796040f5a9988226ac67a24d44d1ace7a1dc6ab07b1fb2821fee0d8bc41ddfe6269470c1928dcaf8dfd5118aaca94ccafc248e574451e04da91ecaecc63a402e626463153795dea2f0202ad662619ca869f8d033a4fc3587412aea64522eaf4b0ac5f10d1996fa99b548a9bd77813bfa30879eb92ed0fe41da28c377ad4c91a05ed137431002aea782c2f7f5c2eb7a155881241a66ed0e1861522a3c94ca7f506d1d3d6b7794182f151e5769646d590b76b71979444c50c728d614015782039236fc837d69e70473f948105bd32d0b0a19b80607ae1e320fe7a72fb07da692a6a3880628433510d6f1e4454dd8715f3df5d66c4a7067caff43fec174302a1125a077f08a078ca8324a9019cde67ab044fae08a384d36c0242a601f2326fcb800bae754c29612556f4606d13ab2993b92f1757459b31afc6723c606082aa1f84d7d44536da99677c192a160804ec50249d63fb1beced58c7e742ab7a630ee0c939168ee08acd7578d36e701b130798ebe45b3c090e201b26b120992859715ac8b653a5e5e7e5da26e76c4be23cfc5b4cdc4ed113fc0d5abd6fda26099f0e17f08645d137c622b9b53a42fccc11b39ae571226c683c0bbf1a41911b6c25e38aceb2347adaad81682ac0f303035e7806dcb849f9e822cfcc50086ae726cad351ac0c2d7bc2e6842bdba3cacf3aba48d8c607a3af5629c73afdc921c23c832c29333255ff55e435afa5bf96b51c09b6f2ce5eb83c2dd50ee07fed1bbb7dae1ab5f02e841fcf4b896ac84956983071f7bb1201b39e7584616b37c8f7c68386f07dab79f46eb9680f1ea76cdedf08714b2c6c25d569aebe9b82da7331ad22b24a1bb74d8f645b6ff5b6202bb4165a806c82041463030ae22296551058c9481d92c94baafdde08f1f6197c7842891a605fa621f684b0c8bcfa7372e0a52357293091689cecc1fd51bffe60dda2fe3994dba4eac3e87e89ee33edeb9923bd25782361cac1b5ae11b24bc8de5bca94920c2b098c090a094d5976ca4a6d847fcb9a9a9b93b019f80059494214a40043d65f43e4a492990ca07022cb14429882acbf46a866688b22287456fd80da379d9c61c759cfe333b670d103f14ea027b8a017874e1b5cd6e5332effcfb410f3e733a58fd2a685eb0ec6146396a145003edd590a4f3901dd2007d79ffa7b3f495cff90f543e5faff8fd1f51f714083eb4f43bbfe384386aebf9133ee04da620ad7bf061c5a70fd7390e27a0ea270fd79a072fd7946ebb90e94e5e83a10d00fae3f10175138eb38572a21df097a5d74f982063c4708c21062f084095484e00407542001842e5a9cbe415067891798518511da184211bc9059000c2550390a1222083990b9af71dd882ba9eb6fc41f499354e6202529187a255a72d648e336b7b9fb38d94272fad29fc4925b2365fb5c8f6fd70b69618b7b1d990b35711dd91045c295996ccaaef0118779ff395790f8839f730549e9fd73ae20f9bef4a298330409f82de6d038cc7b507431a724e6fc27facfff949534a59fb2f6fca7acc51627e2d0a3f7a6a22b645871456d3693e5e030ef4b6c847f4bffb99e9724ca0e948842118eca1872f2863498d07386135692900499f7fee3bd0779ef960787794cbb9ef74c1b7218927abbdefb7bfec3c96a1127e50bbb08f93f1d7a64ce61fe60d506b48c39efc8e77c9ee56c2ba7d5ef794f1273a6c33cf11de69fa323d361a59c08a9989a3fbc13bdeff73cafa76cf2cd7dbe39537a439abd396e82f3a320ed00d85a6b58ad507aacf558ad481182154558d69d5beb57212e15efbb296d006f87a763ddd7af424c2113d6d55affa44558bfdfebda44a41377a83db6b86aab4a7c21e09f2cbeb55d9c160694d0a53df2f56e37097577bf0b3fb7db8588d035202dba349016426d6ae7b6f30a418d707e15c2d29d405a04714b9a176461f4248b343c2cb23002a501ebbd520d6a204447d3238e4d8b38596469d8044396851824560d5c703d4fe679cff23ccff33c2a0d9b563c2c0d9b178b86cd5bb2faa11851b5e89c38a156d438356a8e854f6dc293bea2889ee1846d30e4b0e9d1a00c2852286a0c6f895a0e6e493354b3c2752710952556f095def4d1e37cd8fd71cb560c7785fb3173f7e83070dad2bd54bd012ea371582b06bef6f2b84c5d08ea739ce971fae0a6c1714acbbeac444829a594d249bb21973b8b9952cff1059dce82cef3ca03cab937d7b5d7d9be9eed39721d47ebfb7cdc4ebb12c92bd9d00a7974ce91be376d5a2b07821cb57d3b77e7c45929a5940b57a2a477da799de9086b07244aa2d4eb97bc39312475d8813170a297c30bdaee95d236463ad239368cbfa7153ff8c099c26df206ae95f8c0d4465efb68d2d5307e7675aedb953357b471bba7dd7b3cb8dd871d166864d133ee84a58b65fc738cb0f42e83975b5deee710977bca0159a1e55ee173399657291940b8a5eb9633318f7e28e5529f255c6a031c540134d2d9ac7b3a1b805780aa68e2767b3320628acf0b3d300c729d0b1361e9ad585c031cdc7edab19a36be52c97a3743a985de9768e89ec661a4671cb809cd85b6c0a4124e9172496fa4490f0d6f3e618d70882491e69cf554c5f4f4d2beff7eca482d1abaff3a1c2c309ff43c05d5338514e092fe024c7a1346fa70092c285cd24f9e5d2ee9394b337fd8e930ce248e0e234111fef8dd3943129384b35a45c72ef0e93911078775cf893938ac7b1d59199278e6e4d36a1dc3e9b69e4f8fddd7893cebf0b6652cdd7f27cb529e14a186d338b77b9550e85f7a27cb2d80c2884856556184dd908675ef7961d8c930a6e04a3f278eef648b06eeeb57314747c689efb0ae1444487adbdda6fcae825b125347843a321d597f592f3f7d7f8fbb4a9cacdf3d0ee534ba1d11bde0b7a9b4c30c35f4d83de98bf87f4f6fbdd3148377250a6e97c43999859009b34099dcf9ff7ddb24fde0936c0b0652d982a12be9752e35c1d0e29c233f28962888812f35bd406f3f35c140fd7ec9d2f748469acc1fdd774f6492fcc38475dfb95e5e4ca6ee87e822f437958c088b74debde785218bf5df3d8d9353d6751dcf7aec721071e8b1eb3afef9aaa0748c1176b78e3142dea1fb25dee5de6f7f01aeff57aab1ffd8a3531c920b4686786ed3428f2d1328862d1a4c0f9a4496ccc8901e15d0a42789495a317ca0e4e1927efeb00906d22589ad1892b46228fdf79f98847e499c2189e395a14777c11ee91b7fce9fc80ce238b59fe23839c461ee857efd43bf435ab0e9d106c5b171eb919b166c4dceb6e6d3b86d4dd690b0458f45534584fdf305f6f9ad2a435f5e41ed36f12236a85cfa3e705a505dfa2e1ca93dc12e7ce8b95dc5db38ba2d7ae19d5cb4c1e44ed30b3c2945e29b33336485dcb953caea719668613fdb4f9cb624aea808e77fcc3dbbbb338ac4e86e22a9e10631a61873ce793a9d4ccfb326e7126ab3d98c89952d4e0517b7042fef5081c57bd8763251a029b8f4151388063cd7697cdae0d0f4382d921ebd825fe9733c8ef73aaefde79734a527617fc3fcbd6e6f3244c8349e75119a40aba4471d72e8b1f2f0d570c32722297d5d92b3850b2a7563f534a44139596ec243c5720f5b71d2e74d85f4869388640bad01c512c3a74f7a4258f28c5a2437f4c83c1d3ba1ac742cf54ee36c4d5649c7544fdfb4529d2cca3215cb3d4ce324d32e0a87b24c62584e2d3974cc4441ef88f0758828a38725ce48a20a279e20739d2b435c0411842600413185cc9f67fe4cf3ef1e098ebfd28fe37564396cebc8cbbf88392c7b791d1937611a941eb9c63b96797ad88ae54c3c2b4921546909e79734acea97a1522d2cc3fe90e546fc478751ff77986db9f802bd38b724059596b0f4524580538877f0f57fbde389198871e777cca90a66977bb6ddfd9da48d42069778b40c43ea811e16be957a1dab262295ef0907ae9222acb5d64a1269d775f48d1092c4d29b73726db06353f4f9149c272ec2923d4a297b9198eb711176efdd338908e9698be78ff97cbdfb5af66d75af733bb1e42f0ab9ff1f84dc7fecb34f2506ae27d6fa3aa5f74521fd1f84f454320a396e82420841a7b336c7712619b8bb03ee3aeecbf99ed889b45c32271512ce1f94521aa64179ea901262757975993e81fa64ca62c9ccf468a80be93bf50ecb0d3242ae6ea9957e92a662f930a1e82223e4075b3ea4adf8ca597a5fb6f8bed40f67f3948e48431e969b65fe981cd7ea163a837ce67a602523d4f2f2a1c2940ac717a6502a1c6aa88103871a38546aac56ab1b3f553f552f375662c9f7c67c9a0a516a7c6a74df8a0621aca763dff7c3acc06c302c1df39f2e7ea15debfacf41efb37e4db68a8e775bc5b5a5a847dacb74ecb8f5d85af8fb18a4263bdada0a189cc1d34596c354e25c28d44bf9cf64329d2eea82360017480fecaa80f888406c3dba5ea686c854e2fa5746b5d660a9c1d231d3f7d7f8985c6f927953cc9b4c2613653ddde28c1e6830c1c749d7fbb833b3db2012547a4093b1e6185c6ac4a819aa11eab15f05147a9517f89d038fd5904eff63680a317d9099c5119a3ffa6b723063353f1deb5fc1d88c1afc611267663d66a38de6a48c381de6ef0a4387d17c6636a477dc76dcbc30dc71f341e87d5923f4b2aa11aa4cec8d9511aca732b9b57c8172fb53218a033fdb17c8cfed1fd2406c3d120182a547715a6a4638af03c9721b0816730671812c0738250d2aa03193b15e475623d43117a363a8a18e9d64f806ac0567c158f0156c05db807db80aae01d380b130153c039682af70141c03aec24e7013fc026682976025380966011fc12be02298081e8285e0270c04ffc03e30139d14a0c0042518810842f03b2c21010f27c85101cfb8076ec24e98c64130148ec2353682a53012bcc32de029ec02e6611830157e827b180ab6f2fd38434eb20cbe1fe7e624dbbe1f87c8499ee2fb718a708c643b33a4daadd971fbaf7a6daeb376a72033be8105c1cb7cc0033a24293b90030736a0810c3c536131f03c858d799e81bdc0b3cd8acf52580b3ccbc0ee78be627178b662679ea3b0157886c2f2788e81a5c0738f5de1b98a9dc0f313b6c7b313f686672a767c6ec24ae0190616f6fc026bc3338f05c033133602cf2eb0aee7256c0dcf536c009e95b010786e81f5f19c84a5e179c7fe7866817dc0331216c8f31116c9b3141be47905d601cf46589ae7226c039e6b5600cf4458063c47b103781ec21e7986626b9e85b0333c07616d9e9fd8053cd3eccd33105601cf4e6cecf9072bc373134b3efb606378eec1e23c33b109789e5902bc8e85e15560857c0aac91cfb12c3c0a6c913f816de14d605f781e6c01be0496c893c01ae047605df825f6002f028b80dfc10ef91058d9bfbdef16754d36007ec40d5683d17a84f5f00dac92672d2c089eb3b01f78c6c27ae0f90aabc3b31536c9b30d6cf9ec633bf05c85cde1b9069603cf34b01b78c66235f02f1bf34c85cdc0f314567c9e81c5c0b3cdee7896c25ee0590676e6f98ab5c0b315cbe3390a8bc333147685e718d80a3cf7d81ecf552c059e9fb0e3b3137602cf542cecb9097bc3330c2c009e5f6025f0cc635dcf4c581b9e5d6003f0bc848dc0f314ebe359095bc3730bec8fe7242c049e772c906716581a9e91b0419e8fb00f789662699e5760913c1b6105f05c8475c073cd0ee09908db80e728b6e67908cb806728d6e659087be439087bf3fcc4cef04cb3b16720ec029e9d58f2f907ab80e72616e7d9072bc3730f9600cf4c6c0ccf332be4756c025e0596854f8185e1736c0b8f026be44f600bf026b0459e076b802f817de149600ff023b0447e891df222b02efc0ef67e082c02feadec4d167661507a6c584d84d176fcdc7ed516a107d9e920b3204d82d4fcf4efb839f93b86760839f9aaf9b9dde64129212c61a894416657c983e03ff01ef8fe9a222775f8fe1a2327937cbfcdccc9f2fb6d684e76e0fb6d6a4ee6f0fd363b4e72e0fb6d789cdcc0f7dbf438a981efb7b1399981efb7f1711203df6ff3e3e405bedf26c8490b7cbf8d9093387cbfcd909315f87e9b9b9314f87e1b222727f0fd36454edef0fd36464e4ae0fb6f664edaf0fd37342723f0fd3735276bf8fe9b1d2721f0fd373c4ed2f0fd373d4e3ee0fb6f6c4e22f9fe1b1f271df0fd373f4e36e0fb6f829c64c0f7df083979e4fb6f869c9ce1fb6f6e4e2ee0fb6f889c54c0f7df143929c3f7df183919c3f7c7664e26e0fb63342761f8fe58cd4923df1fdb71b2c8f7c7789c7ce1fb633d4e12f9fe98cd4917be3fe6e32402be3ff6e3a4ecfb63414edeef8f093939e4fb63434e1ee0fb6337270df0fd3122270bf0fdb122275bf8fe9891932c7c3f397352c8f793342709f0fd64cd499cef27779c24bf9fe47132f6fd648f9337df4fda9cb4f97ed2c7c99aef277f9c1cc0f793414e0ae0fb49212769be9f1c7232c8f7933727817c3f49e4e48fef278b9cf4f1fda491930170d22536f181db905db1df8f43731200df8f537312f6fd383b4e8edf8fc3e3648fefc7e9717285efc7b139c9e3fb717c9c9cf97e9c1f27777c3f4e9093e2f7e3083919f3fd3054607afcf5ffeeee5e24e6ea6899fee51f6661fd4bcc99398052048f8cf56e91e478979833d1604296c3a4c4d608d50cd5dc6a886a8a6a8c6c6636349b9acd8e0d8f4d8f8dcdc6c7e6c726c846c866c8e66643645364637433bba1ddd46e766e786e7a6e6c373e373f37413742374337b71ba29ba21ba3d82c468bd5623b319e584fcc16f389fdc4826242b1a1d82d46142b8a1991339246d6c81d9287ec216da40ff943069142e410792389c822d208878653c3d9c1e1c1e9c1b1e1f8e0fce004e1085571bd1571660eebd7fd1a5462616c20b0303e1fb0303f1eb030413a5818a1241666a8b430b70e5818a21c2c4c11072c8cd1066c6ba601dba265c0b66a18b0ad9d0bd8168f056cab0707dbb255c0b67c28605b3f13b0ada01b6c4b4802b63564836ddd22605b4435d85611046ccb8806eb9a3dc0ba6848acabe600ebda698075f130c0ba7a8e58976d06ebf2598075fd28c0ba8264b02ea118ac6b2801d67583c1ba888c58575111eb327ac1be6644ec8be6827dd510605f3b32fbe2b9f6d533c4be6c07b02f1f03d8d74f01ec2ba805fb1262c1be8684d8d78d00f685635fa47dc56ccc8d8db1b131353666003646003686c6c604b1313e0eeb0762637e1cd6ffc3c604f9b03101b031430eeb07808d81d998d1c618f5b0322b58191e56a63663657664781cd62f5a999e26aef741053359cc5b3b67cdf74e6864730a00fc9823cc1b931873ab118a094d01744c680a317d3fce6c0a79ddfe174258c27a7cf4cc1ffde365616a6f6166306e61767a5c19c17a62ce2863cc98dd7e528d508973541280767b8b246e109edbafa32789b00462330262e358cfb9dec5b22d24ac77bd8be572b1accbba7e9a8a904146ad4d90b245901721eb4b5411aaa844c4b238430e2b11c9c4bc58a5a052d0ab14540a22239c406c4ed60835ac6b80d86acae8187d1d406c3565a87c107a73d37a947967c9c4bc587c5f9af4d8a2518fab231b5aef7a92c90698cf21b690e49863a021cbf13a32976d21713deb59620e23f1022a6632d7ebc83e1518a17f59636ef3c72df45bc2d8ee508f5d2334c473e0cc563be1cac8c9d7b356462ba3fb126b841ad6eff23c569843ac11ba355b546284f39635957bca72cc4ab21b2287f5c3d85949765323a4c3860d0b3c4371939c1c1e4f7ba88dfad029d40ac542850789ed918e8162a5355aa352e88e4849e08e2fb9599b660841f053431c14921427e96ce648f7e0d797a163a138c3e3bb194b69b4498f1da3b51ea508bd77fd8b23d176381eaea735e5568e0acc975c8d9372eb8b2028260127732e76cfc3f64f6769d8104be11a43a1b3193187d68e6a1da3b5e8ebbed5dff85a54ea6a11c9feefb0466262fe49e273b32984395ac7feeb7350266a9ea66992359086f458a5ecccbc9024be486bae2fb9d950496bdc131a0c4c8ba3c190c452e655f3c6d8795f365cc1e8b0bcc3cdb8d91ca2dc8cda925e954dd9257c43b106af28b1f44e62190eddfa469c04b9c47537b1c722a4b0e04a661fee198b23a0a01b50175c80bab88553743fb7be4e3130dd2622ffdfeb14b312cb317c8fe52fb1f47c4aaa3b3de8d62f61a610b739d9e3eb37cdc91e62bd951eeccbb064c1c49bc39ae6b03927dfd7ab3fee9be0e8248cf5377ebaea6196272c357fb00e6a422397d8017440c4d1fc3a902d5fb771339dd1c97a6b6ed6b193887a3da75e747d8d7989e2d7a7fadf0e29afd7eb5f5b3eb6af18f105fed7bf446a32322f9f7e8833f311664c7cd497d58c5b2b1aae2f6b135a5fd627c4525f5629dcbac6ad3d6c932baf77f2b21ead8ff9d37f2570c7a41e18ae58ae9fa91c18ae58ae9fdde95f7f3a75fb70b55aad96f84af2fa15335790ba5aa9d7c875e18af51d48c4b5f0f5164b9a5bea30f33a9d4e9f7a8ef9934802beaf5ffd90d6d263f55bc75e627912c5a8ef657cee3f84e528dad57f319463786571e6c88fa2ae56ea755365fc1e96f6b2f1bf708ab074a2eb443d56e6cf69883a765a892d5c7ed4cf1d5b168ccb9fb2738ea315e3f27b261974eeebe74b9c3d9efef42b1bbac3c9927002795174cb4a44b465027941746fad5bf8c52f3e3dbd27b154c19d3df29f5a5f6f4d3ac6e2cf29fe9ce115c53fd99648d3e34974317aac618fb5fef452e14fa02f66b774a21b91185b3a564bd76254d4313ab2563deef894add2e3457b5bc23746f432b4d01c563fbc219621cfadaf124b560ff1e56274ac3e8b15d2d8f4daf1fef1ec52618f586efd2a3d66fe9e17862cd6ff38eeb04237dc740044d17d3d8faf9f1dbee8eb5f3fa710efbe9e762ce65f3f4d445e7647135e8fb55672247bbc1339398adf50f86e22f2ef3666c1f5f57d8a2984bfbe5331633bbe7af7251412f325ebbe4cd8eb5f7e87f539bede65e70cf2fa18fbfa31c77d7d0fd47d3d5b53cc0fe9962d5befe2f19a01fa82cb453dbfd0e5fffba1c215565861058e078f5f616686134bbe9c8a79bd5e33a0fe2592806f8c58f29f3e894b7ceea4746cc7d7ef769aecf1f5737cbd692112adcbfaadc7fa3d60463dd65fc1f2110fdbb3b0a6a80f23058232317f280b28117446672e179db9e8cc652af27786cebceb7dc78e97a53dbe5eff97cee88c36a1b41871f6f8124b1dc093fd1950cf2209f885138eaf5b8a3af6e232e4b02aba2c17cd58e6d281effad3d777a9c01def127730094b96dfbc0c1538f680d52fab9330b19e3161f56b6d63679c42edf610d3a0dd7ae320f5cbbe1309f347fd7a7bbde7bdfef545fe32055f1ef3c2e97730094bd6d03d89494ebf842fea93f812be5e468ff599857967adaedfd2637dd6974d7bd916622cce90585de2d8637dd159c762de891c563f15746fbcea9dc845f4b2326f6162c47aebb186fc325f56d397f5566f554b25ea98cc161d3a7eb68eb7b489a5b41e6bc97473d26d0eabefc588a577125f371991cebcff2a1afc3cc3ebf9e9ad63315fbf6ae918517dce14c3ebd91563e7cb5212f0758965ebbd0b73a39765cb9905872d592f76876e654b7a4365cb558ace6efdd02ee18b125d3dd66755b1bec9dad0d89cf442b7b98dc78e8ddd8fd83226422e2197395372b43bbb7025f587f49037adde6e444445456c744b8ff2d0b08b104a8f5eebd19d367ff80c2da547efd92d290f035c56c55aa44658b6142aa5779ce3711f30a5ed8145f8667f5fc82cbad7eab53a0dad1cd7d5ca51cea320cff5ef56ab9075f33c0fec71b9584fc422f9cef5063d2fbd304bf881619630ec22acd54da169559f1514863dd23f816196f0f35033a8d1072a0c5329774a398ee338a72e963a70b6cbf1cb261ae19b33dd9f8008671d99e6fef0968675397a5c6e3f89893ca8c9cae3593a46f23c4bb5551eaf3d93acbca5c98a8524569b83f165b5f99ca4da89d5566dee59aa8fadda2a96ead379dc2de14bcd20240175f1e38379aac048483185b6c1d0388c0dff828eaf28dbd74d45faa2beb37d3f063fd47b8fb2dd45d1af826d2ae217c77bb67e67e9a3acdfdbc481871e43c792d2429412f9e653886d3e3d7e29ce964a31e14971362c3e3e58343798e26ca9d424024f8ab361f131c2c257b690a1988af8a752aa2e21e9556c842f70cf508cf4d8cfe1f8fed9b1d22be138d231771cd60651494bf1ae75ac6ffff0b3858d9ad03aa6ea9d265bd65fa90bb1188ca5c9edaea264499b88d47ae4a163ad18441efa6b15f966f20f6d0b86f069f83ab7e2f011494e085968a8c71bebf3293d86e09dd94fb5d62f0111e690822b391e46cc8106986f7d4bccd191c18838b0deaddfcf27b7e378bf385862ea88d0f5af2f4710c733955ffd4bb53844cf4958726d480d386ec3175b8c643043bcbe5823b5ee1bb556d53a25d6ae37d1ad47551721f73766a64a5851c30d2ff83dd263f70194a0f170a29225f3824618cb1127f9e6b07ecf33b158e37844c9c9c43e6c8369d130a44d34e07c9b90c49011852c46a47158fb35896508cea01de845d27a183187d500428b91ac258e0ef344ae31ee27fb7bbd43fad623518f5ba4d02a2d61c9362cb68ef9df8afad9a89f6fad181a86fc34d1801323e6f420420623d23892e9451722cc64303fa43f989c9c2420115424837997cd39c1195064adffb8f2ad4996a2635c7ad6507a0a49b9dd4d6e37ed76d76e57ea47fa91f4d7408595db30eeee34d49d28c85a3f4d487c0a1a55d464300ff353d67a99eb590e6b16abfff6cd99726e5174f96556b4325a1dbdcc3a76fa7e22a8ffa6a9c8e7b6acb52042ff2c5fb79e19f724bae6145a60c6cce463d883b0ac11c299e1084d21df376d1d3d302f5bcc6dce1f253d41d12dbdd7a1d6aee95405c7bb5808638a9fcf8910c77b5f23d4b17266767158182c0debf7ee3479228cadb4860e5b184f58c1c44a162f2cb0d30411c6f062065164105290424f95279ca0e25e99c0445cb8a860d0461bac92bb3be5bace6bef6ee642382ee949c85f76b392139250edb88e15c56975afac369490724a29a5eeed0aef0c39cb61b151a7a499ad39ca962e51dc7ddcc6cd6ac7755dad5d9c823cbeea708236f728c24a29a5d49da31c75ef2e51d4b055aeebda70ea1ec4711b570475e9d2a54b972e349572335d386fd1698ca01c89cbd2b07602edc2755cd0aa4bf863e43c9ed32ea8ebb82ed48b36acb4d16588cf796a1b2a26427e8fa406a9a446c9054b4c51a20549eca85810f223b1521d81a38b4a8a6a052a235445a86a2a225451427ed510323231930a1b6cb02ac7061421b041041b58a488d8c246c416518e88a094d6181c516ef2ac8e88705279e611115eb0f1051b457c717474747474548f2a1bf42913520c7e7a7e7a7e7a7e7a7e7a7eba2fa21cede00b31ca110f1b57d8887214e5288a4a881b6ca882604141f544455301a172a2fa41d544e583aa071513d5ecc651aa8d141ba92aa48e5254487549ad9132f2f03bc0fa71b27a15b7d471c3d6b2ca12620c5514ac345835ee87fbe17eb81f77a12a525970361297852a8a5a2ba555ee8724c4fd90846e5711e459d598509e66d528902a8a1b552847b7bd3c14af71b5971390935c6bacb1866b8d35d60082c7e572d9db216d922c65caed97e2b1c22a84cc47aa2868dc8f0ea4ac9c4789cf45e99c734ed7f567f9cfd10647e6ba4853851e526ab88eeb39c9aa02989242c85c87c37b19595108f9cb192fc52515851414524f4815a5d208f9534e483521b525c504cf756facf102a69610f2a7d0c801a68842fe993a23a584903f65464a4b2a0921bfeb44a36045f7b0802e680cc10a2e4e907146b7042178b32767dc7002842e5d8b403082d739f1921085f52c1f185d7b2710129a90842358b731d008a283020e2d094ed079c2b682283c342e4968c171d1d9a0993ce17a58e809d7048391831853840802e29942f3aa4c21743d004201549c0084208ce8a20554a07955340c82e8a820832743840c448914c6173621298c2e9a8454c61d5769c8b7c3e0a27f0285f173859ef04f7e2f4b18b63b81a0c0724b66e2f6af7027101832b81f8afb3973c36d09fd7075c3fc9c35e9bb3dd223cfa1cb39c04411ea180af945a6f5388e210b42da64294497da1df8ce9f3f406cb96e4ddcb508df9c29698e4c21df9d8f44cbedf0c790e59cc427c4723a6bb3aa28e1888e084e09b44e093ecc31969083217e80842bd2c0a2e3844788054984e1c3942cb4a0cc8842e85430420d0237c4c8fc71814586775dd7755dc7f5a0765dd7755dc7b16ef761b785195edceea9b74493db3da883c708ebc7983b81c0a881d1e4962c21541a1fd779a51e6822a1be534a1596fe6baf1de9f34c4470bc672ac2dc59a690ee20f40fe1ce39e79c73ce39e7f773cef98ce5e5e7eae79c73cef99d65ce39e79c73ce39e79c73ce39e79c73ce39e79c73ce39e79c73ce39e79c2f30b143e576eb58ab179f1fdb0f579acd7a6633277b8a97e3e765fd4b92d5e358fd0bebc65d7d0e31c9ea572bb105c3eae2f8d5c5d14dee93d85afdbc2f7fe37188495e7ef5a517b1c8bc2bb1a7a852342a3eb429341a7e28223f3589c31b841cde20e417206aa5473ddfdb12f4607b417c73a60cfd8f4aff16a59e83657b25f8843945ef858a9a1a9894fad35ac5d207f5b284a42f678886b8d4e07d834e67dc6b98adad9819fb69ba59ae671311d3ab5ef59fab7e822554b8fa1cc461573f4d2977ff22f3bad87a7979a13464af7f237c1abeca964a6ef8433c65c31ead3d51af2456d1478f4df26c6ebf8d0b483a569fc3696148c7e81fe91815c1172e41f1cd190f043d93093ca150a610f452299416d41150b78b2a82b1dc322eff2cfd4c21f596b25c2e0595c0f09250698896758755df0df006a5259e524f8fdd42d27d3d9075e274988e8c65236226f3c4ca53771cd69dd591dd88222c513d3d4da5c7fe26494595c7a766e91e306e572ceacf6dcaa89e8e95282a561a45a5636589875a1876844a544a3da8292506c21471f9c119a3cfcc2f4d2ebf40b9fcfc0c53bb3c63f5f9050797f961885866b5d383d00bc90b513840cfeb3ad42907e8d946a289346eb2cebacc907d2cd0b32db4861191ecd3017a56004998b103037ad6660a24845a6067bd4ecc41c18ecc133d87b9400fecbe1b2a1dd9f799aa8eec2b998abcaa78cfd9d294521273ec677a7ae199272128eccc1f4d0a12774841cc2a1311ca967f28f194a834ac79a86460fee89d291dab9f812984d69d697bd8b12913111a863124af8bf9aa74215424eb6c4b0a990d0817be04353b467a8f54622679d7e04bc0bc934b9d7b492492572bc93e3751ce779a18089fbbbb3b0ebb3365672ccccc234d934a9ce4aaa5ee4bd4f449a8f7a627bdce650ebbc1d2b3e56c99532a7994248e34b456a794ea904258bf1c29edb82fbbf7feeb2ccde8d4e97befd5cab9bd54e477cfc9cea5dfaceffd84b5bebb12b19c62148137a2f04b4fa5b2a1ed5b933834ac3e8704b3c097a33b200e19c841871b3ac63d1217489eb5f04e8622d71c563fac222d736e578af170bb5f9280794193e93ff63ccf9b7967395bf2f53fa148ae734928f04fb66ca10b7e07fe103781b3562e597eeaf5c899763c11526ec7131f4f8e525b49082c2ebd22ab47fa5e9610e752fa38b48a34bc58dc4a27652c4d8256300b7c6b636103861deb9efb12bcf3fb8e4bd0f3feabd6f312306f15c1eb9598e3d327f953b5dda75abb2bd8e30cc71e69c6ee7dd0d07c596bf7e5d875d3903c92a519bba7345dfde9f538e7eda7fec72c927e9d75d6d416613973ebcce8c329a544763c11d2ef7634c171ccd148e9e63e22b5bbd99480e6feda2d7e96f4b1d82a322f8badee93b07fd7a4ce4e36fd34559d5bdb0a0ef27ddb92b1dcef3d5b2a29ff7e2c96e78965fdd2dfcad15a39b7d7033be67df7a5579f56e0d627427a8f89a5ed3a0663b859b78988fd8f92405ae266ac074962a9470fab82b0470f7b45e4663dd6079b2d8396f461b8ca611a372be7510ecf3a76000ecaadff9dc05938fbbee466a4efa9e1861a6ee0984cb287b8275c1132b464793654bf4eb9f565c4927534d4477dbb35078b904aa9fd118be40993f9498222f3252745e6f340d2734c787c6d2ab68ef57b4fc2226ee5f12597c4ad5c0f67e5dadc929b812519b660097c90878c8ccc7389a399b819d724a545f83d578b6e7d93ccd7f5643f65b9350cc52a3dbea863fdb55aad56abc1c0c00c918842123fe9c18e318992c05a549ab977cc8392fee57990be233d25914824195bca7c470a4da715c615fc4422914814043ff543fa337533cf1d96ce27c70cadc1e8b1fe685ba861f53fd3299cf2a8f4ab367751ec18a2110000008022005315002020100a87c422e14094e5a1a2990f14800e7fae545c4e160964410cc32088420c32c6104000010010630c119a213202075cc1ad66ac77a0f508d54bc4eb36671b67a84af82206a4e67da7c365b725c37a3e8337cf8d6e4dcb2cad1022dbe9c540ef1cd4596c58a078a5724029d48d11b262251bba72dc9fcd663575f96497f92488694b7035946ab0fdbebe8b0a8b53aaad45c12302fefa10c798d6af62cf9665d88b0af0b55e08f2a7384bec4c17faeb4df790305149ee179b899f777c767b9b6a7046c84bd5828e6c5b42225946b24ab22bfb2b5980e6bb640f1c60b2e26c953acc638bd228fec9010262a2d3548c74515fb2f039e2fd4ebe0dde8c1bd878f458605cc139df102030511011a1bd0c73b446031a31977829c54183c711ce962e64527729813c90ec1a34f7309a564723cab372951bf6e99e3c29c4a036e7e28eae2a9a4361d60e92eb80e6ecfd65058a87685df79da51c44c648a920981c02ab70c937e26502b1715b10fe4f1067e4df62ba1a4c8cffca17ffe2bf402057631df4d4984591a1f87133429686a2088418f1b377c002ef05028872a881f0f79dceac8c7904af5ddae20651407d8ee646643464a4b53ddc21a7679e4a4f1efef2b9ec1c0239201f0d5e72e2ff7a93e367736eaf929e7d022df157f9060728ab39c932022bc7cfb5105947d9693d58cdde99d33ab8986ff85a06ae78833bf1d2be6258cab5c7eb276d74b4049a43fa87c1df91d640fe4c14b9b6467a02a28ce4edbcdc52668bb46be406f1a0abe1601a1d0e4066718ca7de8533fabbdbceee4c2ee7b9054770e0b54f553dc4ff1465a202005501e724f4e78a28cccb045ee30a42644cc817f7d03d49d23aa9e0406db74575d9cd6c6d870f76354ff2d72925aa0facfb23ab57b7c54c25296818204b06090297792d662a51f915a3902dd37245b6c816b70ae2173102fe1d46acc471d82d078ee9525633c9a01c004b3a96a41023068d9de9138bf52e1ff57fef9b623369a924f477535fbe01683c6f783b07af2e7974e0ec47f5ded542340ecc4c3b7899098b6f08066cd249ed15e552120a2874a79c88e0d910a3e91ca38c9037f5c23fc381de91f756d99fbb8ee2aa9930dc55c1cb68a0d40b960c9d536e8b9660b8d4ea08b853904b465582bb93654dc3fa8046091942e83b2bbbb2d21b8528baff25d02010591683a4002687b068906c8c477a2a92b8261d11953e1fef16193ac9e79df0b5db30a045ac010ab1c0c03247d353eb981b631f9461cab6198bfce30beb4ed78421e2b21fa605b3ef146dea7139659a960668e13c4ab926fe0536d05d68b10cc85fe0437a1776c1d361612ddbee13c587a337920b5290895b38d14d76cd16e5f53219e0e795c5f8d0824c094303dbc26a4949bafa8e3e6e31d345da25728178bab209d68ae64c7072d7551ad1829028ac0c0e124233fab9a8c6c268085cd1cf597fbe6478d7caa321cbb9fda93b99846c229bfc4660d6e92fe2995052dce320c071dcdf4e1c7f96d735798545ae155cf7901a4d864401a7c30aa4de601842d08988be659898cc22bdcd87fd553fb0eb512ad0f5b282923859828d3df151b529b2597fbd7d9b0339bf30d84b8a063c7e1cb789dc11f070eee70e0b01e92ee5f35a8fe549d314f3d05f84b29589018994af9de7a36bce4c9a62f79d955827e95673562034a0d234f7daf11f6aaba13684e9c5f2095f4624fa7cb1b6b3c00891724a9a9a5a081bf79da22aad03feec85db1b7f327ec30904c3940b0504112b9ba87293727cd5b09aa5698db37204b878882d3a67471799b36612e894b976b414d7f8e35a48bdc41b4750d4e043021f0807f61614961e516110121a3efcc50c166f654a545014017216011ad3b44e7f4be4f774b8c3f92a6fd2c57a1785368c6099b9ab8d4f8d3d8f2a7cd244e4b14f72ac354853fc7e11539599794fe59e6afcaac06158a9f4c1014b4552f39c782a6b5bedf5be7af120e5a1695a4bd2a38f95c820b0fe1db04b044f7c5b4e4a1e218c294abcead1f431f43d629672943a10fdc0278cb130643d6ad3b448e1dd969a90db3dc7c7a2fd6261eb936bd4402262ecfb8328148a9ca6d1171e7f118d86fc942f9c4af2098ee04533bd4a1f1c6450c038809730dd90e6d5c7df7ee228f351daee88779a766ad9c0ec659a46574012a7f49a484ed23f222d105f02a9cbfb31df02f1fe1724941a1f475c1547aeb577607d3848086ff269e7f7c241429bfdc11f8dc126f484547d1abc6bfcdfd4d26225f908006ed7d68325ce259628259fe7ea7644e0c1f6c75f6fe7120b50326875cde637a669b744a3a13583ba104685c751c8818b1d0cf04915825b194dd34870848e7947fc13d147495c6fd3b4ecc1e0e92c7804e1153cdde6f9b4ee16fc51cd0133a75fe563f0e034bab359cbc8971040bc4c8315deb9a0331f99c41e23731badd3000806b613cce81b40d3e7a94799ab7be648045951a85286ff2328e101ae07361e2bbf841ff33df27257f0e5d8e7b56e8eb127083aae60415d2a518a9e7ca74c1f671646a25855e3f0fbc868fb9e6b70d6e8a655990e1be2909ed7df2c39d4382e1079549833e593d7d90930cee0d13882883e1523139ad774a019b33f850919828996ab6806cdb2544c6624ce64eb611ad04a1920fd3a524a935f252e4f1e2a253e23d4920f27c3ec70f5bb98b3798d09e66eeaeca8b616cdb3a7de44632033e6901ba21f64784391d529d98f2ff1ee1dd43812876f8d42bfc68d5c93e85b08a98ed4b1d7daf41d8f94dbb4367d2470a4e430ee03ba0c9c452dd028a2c8056af4b6275694097375d14f59a1c8a35fbe8c462cadf2631f85cfdc8d5c028ee9eb147e5af291dff476abfc76f604093c943379c5c9f4e1a8bfd3e61d47708a5902b5cdccbe6ee65bc4de2d4246051c7159a67fe548ada72cd305df5298a13f68742c88a1c0b3211f9ec0b77916b1411781743f4e848693dd48ac5812036c89ea1d702b8ea68164a853ecd1b984861e99c81e1f54391204e0780247d93de349db7ccb61d073f041b01b6e9c5f8cf482196eb8f82d8545ef83a742e4bbe1f7d9b589de7260b5d44e7e8e70bea0fb368f885b84158dd4f1d487fa0ea0231a1e4b61e87420f7e80437192366e7e8b88a8cd1889fcbf07047b868438738e2b91d1bb50ee3701cf97189cb45ca68f4e3734736ae02b3fa2434fa6a514dddbe31dcee1dc90aa835caf1a4e48465ce4905841f66b14cc6a95650647c3fd7eef48284183d2a68133f80015871d810306e863050ccd993ea3e7f016b1280a41fb03e4192e220d8cab405c5fe210ebb066daa1747c88bd9f3c36e3853647d339d9fa3c6c2e8b561cb9425b95d2aa06f24ef4521ad267f269ca48a0be1034417dc71ee36e9efc0f80e0bbf78723e2f7eafa9860bd9a0686682e55db2f0a18e70b2c982f74fdd432e5aa382d370d96c628121602b18c2d26ebad9026706d3d80299449aad4c675a683b7d073524dc486bd158dd3c8d748a6f18948b23c9e05999d45ab56e60417b772d384ac7e0c1190329924a1f774ca44526692db71463a40e005605f5280b4a371ce311ad6af039774f8a6fbc3033ad6bab3c5cd14bb5f46d43fdb342a1c4256a4cdeb8153abdab409493ca2504a28d28db24013bbfcdd2342d8de6ae447a6b5e2a95fa425857d994f488850b428251094977a92359011061a4887eb2d7bf5b08085c25901bdaf5aa78e5fa78ac9711e1f6bccb7d49756c52b817f1546d1f66e742f93e66050621987def24fc2f95f0b5b2e5fd672c8204f01e744d5350d30f47dfaf46519cd8ee9f1315c4eac6a70bb3aa657d0ae02bef26cd03d616e6a0a1fe14d0bfd69a7fb19f7fa632ba0f0610001904ac2c6545cf1422bf7c8c940ff16acb595abdfd2106154d6a275d9454ebba69896c76d9efde2d3360e0325414a1bbcfd480cb687f0aa1873a0c1a30187fadb3e7737face438f6360ef7ae94a313b4365b043e294cf7bde33c3ab49d4f1a0cdf9734d9cccfd8312fe65504a71dedea86dbdb6634acfab7a043f052e60bdcffa65cc379a4ca5d4b323bbd000d06c1d0b1d4af1885c634c063b28afda71f5b82e2597b1c15926ea5730c4d36abdd6e3c428bed2f794de867dadb094544fb51718c7f06f279f606fc887b5469a549c526155b6ca8b2a1ca1634a8d052a34aa58676b4ba71fc410b8546f6242b68e261831b74075af0c22e3ba5a2088ed5fd70244a14d98f9834ad9fc83273a0606bc5aa0fe652b4625177a637915dc45a8bfb41afe9e2daff6246f0800de02d4f64503a0349166536e394fe529ff46dc827b2d92df888ad452289ec41636b4209b2a7eb9a8c853dfed592270a631553eca283e9d2648a6486de4ce01da229eb1dd1de8f890fa857301d6ffd0bbd79ce4a452c932d815aacdaa45a50349a451028c14db9caf45c4e1f82ed0ead0184a1c0a92916d3a7659d51990a96ef8c55afb30fdaae206e2d6d0c06ee61f4623a61a0b7adb5b176ca615ee20e3917e2e2b16dcc2ed0b731a08fdbd5c35f8d7d3ca0ef968be72909bb0b583dccb5953a7b8cd10f7415ccbeef088473fcd03c71a8892e5ca38e3e86658a44c70c82108190165d135d0415ee7e5ff4f6ade192f101605adec871ea3d8eb841c019ede1a5fc19a828c03be719d0a471ca23ef68f459e823ee6d0c24e1bd406e3ece2085edd124483a91df51907bfd8d4b1083b8c194c1eb7839b6474773bba03ca0114da4ead764b9a0a59f155c1c9fc55d36647a3e1ddaaa0ceb70ea453d21f941b2208e5414e3091f65663f7c6507b74b0e34ca1aa8a2be72f39d6df56c05e5105d954e2d761d8cf508696b1ac46d5ec2d32f17e9713eff1ac4bcb703dfbd0e4e2e4b92e2ba8fbbc9f781d26ec431a5f20b1d8f9664b93a7f0be650c33b17729bfd5197bb666311e5898819fbe4c09ece0a1fe708a3fc467a280682c9a07b715a6758aa6a030c40e46bc9f8e4f3375a15c149c56ab7c91a6bad073cfd1896364a85ba97c8bfbe8988601293bb63abda2549392836ced5cbb1c5db0400dfa891f64cb08be00b496eabd7670711e584a4df08f53d35431e0f4241873b06983136df1846a75df688cae04e13df149f4ef1273a060598e840b625c1df0b313eb727a6ffdba9e965ae1bbe7de57be0d4f8d044251dd411f6f89f063a74fbd974f4cd36d777b6adf84b64a33d1bc0fa9c2d4cb87811f39b022bd8b468123b48e4e939e2a106afa224561dbfa1444212c98326752a8017912a295eb1143c11da20472cffedbd530d47e4682835c61ac8a283758e4c8426365fa9481b9ba08d5b39fc4837d1e5d224e084b835f5441ed2e11f74b571db5f857ebaf82e712ef96c1e80bbabaa9153f62cc9f7f45589f83cb407cfc2e38935bd2cbec907db8d1c68b3c34855fd11e4f377a72861799a47eae97105adac3283feb938262cb02b17cb3c1aea019cf9cb35ffd0c9b3a9e5860f399e0ad003c97051335b3e2e204c3ce4f484307d12213161277dfbaac48be9bd949799396f55ceb0675f4f00f65b08a659c61d93489973ea244a2b32dbb0c80c4329f70d4a6c962bab0536292793955647f373b1a795a90162b51b97fb77a65301583915023bfbe05a576527cb8541340fd0a75dc6159571c56c01b5eef1c00de38e52a6fe29c0056672818b13ed0b74d652eb8588099de03197b18ac287937e0b265c05ced653c96121489ddc7859ac5f9c828920a8f2204227064c47caea9eec1a7fc4f69fe4a0931693096af84cb698f55ca110dc82ab6cb1c1b55f0a96690a430a1c59d942cc814eac6ca791e29d6b5a6b1987a96915107ff013e3f0f44d381c0237a396f35eb90194289698518db14c60d3c30d8581ed0dc788f8dc1a4a649a3d1129c34f26a5916ac0f544938a944c7671a94d24c78163c4fdbe128ac8b11ac7a5bd7fb19855b308f8714dd41bf5c6b70f5111d6c46d54ebf577cc5d5a1fff825d5988b1a70bf3a65b6ec79ecf4e9bf0b3c95e51542f5d37861de7734d5c66c088a2c11e0b509fed5701535a63db238b8b02b68de3152bb8a5435622f41dbb379cd6ccc2d6bd7ccd3023b706a7e2a5cbd9d3c1181ca22a0aa0077b25b498edd511fb851cb90cd91d313441100f8e12a220160530805093e734cc102a98d93f9926c2622392a4be3b4d0a4139ebb0bce70ebf9ad02d3c69ab9f9d1ed8f3aa8a6e69e000f2012de0a6f578db36ea69769d617e125865583b46b07327a0e63b9f80d5e5d18b8c2159e51e42e8b105512ca46fafe883cfc20c3538bca65b96bc2b336ec2b20cb8e1d569918ae4e26280703549b4389248752f63c675be5b28fff4819f7a59a6e36e64520c27c49e95ea0804e67e4752d6e6a7e80233267cc50a225a0b27b70d50dd86c890fe8d80073f537a67f05eb44048685e83372e4bd82492e20a5340b1ccb084027784e1d789e20ed63256613ad26efc37ca2ac26073b6855c6d68c02547073839945cdfd1df36344e65ec11c59d484fd92c861851e85bf37feaf560cb18a968ff792fb56db107d5253b696164b6e64220f3e9b9fd66241ce20c6487dc2a08464cbd322f6190a9882dea0d2f9076ef65b80412f101b706dbcd83912018263b5e1f17ffde3fd7cc817a2024894ae20314607a084295e41a4273f4937161de20c1fafc730ade803129a4c2f47ef924a1adcaf63a524e6f6b650012905fb759587336e8b590951444e5d2e16209aa7c7c6469dbc685acbc67dcb06b962dd9865c8cda666413d6b7e94fd5c13ad10480428cd5cdc58d3ace348c27156368df9edb74f60427291681b00e6ea39201d8e190bcd4b7110ee79e4c4a6ff36f4fc32ac03b4419b0133649b7e12a441e8bb3f0a99160178851a7d56c14fafc87a950740e48277da50b4517a35ff024185edc0ae400d29622fb7ecf36b1db057849c87809cf51ea34b6c630ef4fe92a4d75c6ef419caf60d3ccbaa377214d9c29703e126e67f9eae6778f400b4c1f51795cdcb700dcbfa0a031b76e76904bc0cb9514d92df84711932bcfa0d5b55a87a216d3f37f69f3efb536e85152aab877680a3e5824da8b1f265991c7ee9de29e8dae4c2cd81c80c2b8f6336abb0ed9367acf057b381b47b3b561bec8fbe14bc748d47341d90e2a0282a4a6ccb3aed9b520fa053ba718e857206d6f4d2475b452f269b0b39dd6d9e6c2956b3cdb61ebdf06d73fd3fa859705348699d0c10750c0f8273ae474d74e7970da0b86a5b8a113fadb860760df4fdc7e2fca2d977a84047bae149896129b675bf15ddd890f37792001931bf6c7b5168d5e5b30b7f6806e8dd0a5fcbd84c38250c7037aa30259ffcc8ddc1131e09dd3e00501205e642fa9129651b562e516d8c6081d36bb5a999f8dbacaa80e81e7775819b36586241af03a2d83b405fe850300d6b538f40dafe5dd6c7f932401c685c3489ff0308b76e072a4b300c37ff0d2d79b1b5ced9689bc7ed8f2565d6662c8c139a99a4a0158ff27b248f13399d91200eb6a4440aa2edb6eb552fc60fbae46c11941a1ba9c65704eb90042689db538921fadc1c3c1e919a42490b69ba1ddb7e702dc98fb340580f02c1b808658442bf1ca1bd222b39eff8eacda9066ba1370567fadcd65549d821deacd3355f1aabdb060d11bd4a1de31b57571c6fcf6f84fb8d063db9761ba25860671e459b309068abc37b8c3a126c49b822caba75648661bdc695f6248acdb22da30113441a64a91264c89217c12891aaa0185be68f7d70f7609a03440b40cb19572b0e403eaa042333ee96e656049d4a07bb9f00f922cc56b53252c937cf65032b9fd5a2587954d111e51191c6ad97a364dba14f6fd8b4d54736bd098b1347040e0f401ee210cc4a6d55d2f9aad3f8bc560947ca966133f736a411e23ae4dc40157786aa14ee48aefaca331117842be5c6649856ac3d6a68d790c9e3c33100fe7fd354223b0a83886830b96e4a9236479780a4b6da377cb24329d23054c24bff374cdf605d2f7c14dfa2054fc3169b76b11ab602c34ea0507347377b773869ee29a17380afea2991a208a5f84c095219376a5aaa23909a501dacbc7d430c5762e5a324250a90b3360bf7ee59ce70a2ff04704910d26b070507569c58bc9d37b242b7c309eec65382f1bdfb8eb7f7705d0e259dc94bdfeb2d7dee2fad3a3b0b79fba9b7df9689d95ec09b1ca8827ebdcc622f79a8ac3854f1e8a62e11c65c56c1e6732232d4133444306fb22d425a8de0ecf2827dcf074894c50661cdfdd7e2d6758c614651c412f100f87a54921b7eb71efd7b07d779bfe2e08ed2d82ce0376e059e8196b32940eb43ace3ecd45dbd87072251ad4dd8e56dc6dbdc7f02affb3d5a990dd4c6e9811e6d530436b79079a60b02bf1eb20d42ba1ed234881e10041b78dac4c04a0a1f2a7d4c01d9e47e988d749eba5bcb19a706f1423bb81df8b264ab42167accb4088969b0b3c4d284f110165f236e2832c437e25956e2f60fb77dc56eb30943482e8a0dc73ef7c79b6b3558bf07658c093d116d263ff5216923c7ef476fffbc7e73aee709dd7beb642e812dfe102ce099350053569fc52182126f1b897e8cf7584521b2286b47efa9bacbbcecefc980bd642299e971ea5900c4250d53b257c3560695ca1cf1c4aa8e8312d26ee25584cf25c0b0307f68f17b05c0428625b1fc01b4a70ff94d124422777e9119623959a4192be4ea100e348814368c57ccfec67634b2ba8f6c92bc34ca96f1da78979b9b0c4b9f9f4d576bc8fec0f9c3bafa62e96338242bbe1c003e599a5a42aa9b5709c34dcd822304202de9e7d7b7296c9dedad63a21eda4c9d3f1b5c0f4b2e3ae358e00b2c7bc1231b3cb0e37fae2814919585a9563fb0e9c8b39b5d150ed727758919541582164da5318a542a350580182d59edd52c01adc0c0a97311cd013fbb08b710892a248da8180b8b84a5e5a4f19c9b24189918576e6a5339f740deaa6f1bf95ab42bc607e62800044b714482ddf46cf32777e5234c0a7e3420d72851f47fa1a46de3e059277442f17c0bb22b8d78a8c868efe0d0ac095f3aac80b1420996fdc625784a5eb6296ec20a1ae0a8105a2dd47756da1810aacc0390ff5632112b20ee5f6f418294e78a8f24b85f7ba12747492169fef70d0bc91c668ce891f384119f65f92f8fa6c34cb99ab7ba7e074c9aaf7546def7acd86125f5400fd6179333e04d64aef170d812ea404259e13ec07a537cf3c9ad7482f1b0db8ce6413b94ba53512012ec5d8af0349d50698b879ee048cc63b094c4b50c0724106182d1eda3b6e60a0986b93733349d78e514274eb4248c7686272150e0fe1c581f9d96c61da004af640d353689447a1c96cbff154eed9c909eb89a945c02124b44ece515f0ddc35557cc4f97c9c4c4acadabf6482b82ae03bbc3c3c2519bf8241e8a9517de9909baa76fadfb06cd5cbdc25593399f534f9e155642a00f4d540e2fc9c2c93e9c7f82a16a46d190bbb10748b0946ab7d7c74c041f5c659cf8f81e1ac8732cff52369ec5a9e8c41f31f2d0dcc1abd9628af652858d69286a47b20ce2eaf32dde5fb67e683b59f6b2f2221602106edeb58dc54f9cce6ce3f56fe45246cd7661998f7e58200d6f1b42bc6febaefcaa96e53b3408ae5d6de0fb1fcd0c8d1626273e13e473eb1b804ea76fe83855cf5d877914a8f190d59854924d52c6ad4439518c694cdd06deeb25b9f15f1186112678c9ad36772ee66e79eb9ccfdfd5f0a266afaa0513deb61de15b81294291aade0f4b760fa7272c82b8bd6478141cc3336b01262c4e8ed20dabfb53111a7e784856805e41781e9dc943b3b7b0b8512137256019b33bb617e0bc0cee7d07e38a365562e0c38ea0799bdaed239c97c3e0ead1fd122937d11fcab5aee3a2bced546289f4574baca33cbe4bbf518442d452e907574c2f7c5e2fd6b5b085c62fed75aa6f6d92fcd975756e626cb81a93c4cc20c3960095b8568a77d764585fc8b0f8b362fd56f6f651fb106e41e7178f1903eca72ee355a26677f288f8039e8f21f673312819141520b736e66997d25b3526dc6b2f9725827b7584847433a85d6edd96499a458b9d4063e45325461c7c31ec82d0413e7fa70603b3a532196a572cf8a07353671aa312fef057dc22e10dfa83f054a9ca3ba8783f8bb281527bf6545355098bff90ff7aa07cbc279148f5e82a74a43b28a95b656e69338a71cbac6fc65bbf6827d0b493eee0cc078d409d2fd66a3b62fd43af10123dc76b2992f12003618b92050f34decc973bf523df4866e04d80d22df543382e1221fe72644c980369abf514be0524105bfb874bd424387e365193f61417eff36cb3602071594691f96848b67ee22c4afba757d40203d00764443c5070e551e36890110536ea09b83fdcfabaa85ffeaf01296dd08ace14e46fdc27a04aaaf852e2f970d1f98d4c3fdb081584c87a1cf526266550459a94f5e1d0420048b34c543acd0b28753e38c54c949f06246ac8df6f252acbdef26746912470f2b792532a49738f1a50b2c4f8fa6d883e399035fe5b92a99416c89f31d0785cd51574d9540e25b846aac4db0716c8ddc12ebc04fba30cc8535eba7064d512b80b172765ae71390d7fdb5e80c6df0b05be7db90b3e53cc2f9768d5c17225b492fd85fd6372e11d262003128d4a1655eae6ff45488c81ddbb05d8dc053393d0e3c647def0a5dc202f74b5877c2e25db419db06881e800e353a6651c6d8c88a3003048f0727f4d9f2e6cb6c05defc4bbcce26b0dc04ef6c372703e671319816014908425e383612c5a843403228f39526badeac114a5422685d6992ddd7ed90ab94894a9406e8380bd3bfa634961d638c0cb1e94e35398393bf871b9c82f9486d62ddd5579ef00b8118096e05392a3045cdf621368164438254a6463c190c373f21658c4a2c9bacf0f785f20e38bd6cd0356c81009a1e41fe907fca7d6102a2ac5ec6da8507ba3636a0db676e10edc010629c5ba2c17d9382ca00ed201b997054bfb06f6581198c56697707a681094b0891a41e65a1f00f17ce84388947fe061b544d0948578e0991a176e31caa9bd7dee68551baeed9334fe8504e450254525379d41f48c11727ff87569d15356d551b26adf1bf65be67e20cd80f8dd5d10ca14af3ca7353f8bb866a7a4255bf988a0b4d6fd52f95ec9fd8637b2e3e439d4022e62dc0e65faa5c7c103e1056f2218c62b63a918c2fb3b561fe9ff0bd430f8571e483f9d004253e43258c82df419293f3f977e040e35c49370cb96ea2c556f9455cb4de7f66fa419d1c0ce3fafe239ca3c6d56586e079613aa836ef0d0eb9854de1b6f5cff6a74b11b5682008b861ea2ccacb1f88d3955580169e939d2012b3f737bd18dc38483ecd3ec0b053f329b4d53479698a4fa026395dc46dff994b98f1e467f9c0a65c8797d26510c0633ccddf6ca6729bf8ae2497fbe0a34a39a0e04c4dccc571c9033757538e159158530e5039225c368bbe8262472d27b06536879756e54a0def6e466c94c181a3dd4bd6597d3d23223ad89fb1c9068d79db2a4014abb8088932bb0cb6b4503bc315a3917c4ece0f838440366096bd1beef6beed4b5012c17d22b003e83ab22afc5f45cf7737ebc97549df045cf44764d1f9f2aa023b37bb655ba9121edda2c163f192a48e2f979f5793b90f716d4d164b58453a5b4d96b7033b1e209ac3aa6dd47f309cde22273eb3ac1c54f582b63a3a89d96b9a58c833917ea1355a5799750eca8bd59bef8c7fe088349b42e957becf45b9f7f81dcb56cd0ad4cc65a4855a04530aab3e100d279c223a058a15007963a91f386ccd7f62092820407d636151b782a6d23a9f7109d1d83d4b0e118802e464cf26967ff6d131a730582d544d90da33ddc57ecd6089d2f0ef144f5c81f0638440813d93f2ef402940d27a051582b09201a3ec4d010fe40f1244d26c55c174a64d25a7991fc604ffd0a86b4141895576fd96c71820b83b04a9ceea34555a4671f3a0b2f2aec6ef43461925f6236192b4b7921d3171f79a6a456d20aebe367bf52b1ea410a9caefcf529c8809bb9451a9f15190c9d39196c9f73eb0e2809d9a452458db662d0cad2bd3c09d97d56e9a06eee6ba00d787e8fe2668bc168f0381175785a74540a88595c30f61415eda7cba32f8d98f70344cc8f9be75620dbd84f0565c8c0fc6eb5d8c0e7057bce9a0d1a966b9efd3ee15c2d97f340fde2d63d3394f1091449c7c4a7af82f9c570f16864f84acd50b41681dbddf03c3c87441c681a231ff46cfdc9c2dd95782cf57a39ebb1089f9db96cc750fa52e7e85dd9b6225d9bee41880734a6199fb5bfd542228de73c84d9072eef11cb27812de22a17f31424e9380412b57915c39d56f5b787a63b974d819f07310386650e69414151c1b8d3aebfc684df85937e686ab755a2637eef4bce78c12704c592332469adcb8b4f3d5f9e0749381faa901ea9b9a3f0e13b62fa1118b5d639d4085d7d5d884bae00114a6f894eeeffe0dbcdc61b9bf1e761f09a6a21ce19ed95b07bf4884c926c96bfaf7c1779b3236458e388dad75f304112d48add9843d673380fd7b36152c0e13db7b58c168aea795806d9bd4f50ba0d1ce819d4c031584ed08846f4bca04d9ac890f6d316919a798f30872e6f1eeda00a4350a350e1cddb36da94cfcb292da9f109ac0e9107c02777ee1fe5dd7ef25d5474ab70c80580bbeb3642f657637e2ec245314f48b284c48384e4c24899fc0966342d456f41123a0589710f1b66df86711ca3f82589f58125afcd97352a9bd61b7735862c830183f2a3bcca9390f023131e58e84d4174d1f7ce3f77fe2b85ae4220402c8a63fb9a7edfb3a3e5955f5e502b4c83a0b8f2e83d704488d57cf19872e61c4812305f94791d37c71a7370bc1e5d7628da716693df274819a63bc11025c269725edc25d295e83a04c2765152600fcea342f0fbf7d436554e0b90be32c84fc3ae26ab635a71475a68e8266b97e0d6c3d6630f1c6130dbb400ef388da9c47b8605cc90d4d5c1f7de05a809b4eaba22eb58959e3eaa8e9bcc2e1e66f810e3b071f1d6dc10d642be58bd4ea26cceaec7f390f78b3a350e801a4e19e6db9d6b61296104f680caa40d1bbf2e0ee7414d6213cd5ecb6ce0a6c5ff3454bf9b8d8927b02dfd4607c10337501342cd0d1c5158ceafee8fe75361b8c19cc0c980c1652e1fc365a041bcd49052170ab07b0b38ac96ed31b0030dd100c03a15c5db72725409df1dd660532b5dc00db06706ad85c39e461a90752d6175c0db393c3381ae08b9c690cc38162cb4b9c450160d1f4518c3e718c754c91066da4847e3ad7615ebfd1ba117028be2d076c09c770c8fd65d78e5aeb14e1b6c63dba1e8f9ab85c99330f5db34cf91a328427d568c474bbca246cff3eaadc37076043a092eaff57a79e309f6108ba6f93bb9dbe37aa39158758b9bfb34890877c27100c2ca3415fd907d37d0e61a1252a54077427a29fbcf9667c0d3a6da710818886f24616049ea760d0bbb560f11091b1bba7e1471bacf21dbc4df0dd82cdb0c8eb8b836f5338798b9818e9d7611142c2f52b6cf6a09eb4a96cdf9857fd0a5065348852d6c9ec1fbf2910a815927d02d8b4e4edb939ba663b67646153b1bbf545168232365b7bbf11ed03e15bfa68150b8d731420345d0d6a77c2ed31ec2411c89baece8e362fbc9d1ae258d3124c8d0228360e0ee3516879823f17055bc490dd04274ec11a588503e036486334f2f18fb7f3c6f015860c733c3686a002e0f68fb758d9f73d0d843fde7cf8e4445acf74eb396bafa79c77d9b79e90863cb4a1f015f3eb10ed9eb7167823f9144d913e5a2aee69e0836742b0c65f5022f6a25776c69cd298f471df409966305c72efa550208d00e300982cb71255f424ce675d4c94b36330c1ee36b26f40376fa1f00870cad68827f67d63eac400687a7626ba379fd9322abf3f02ac904388e24ce3aa204c6fa3c36260595e25c873bdeaab262455e390a338cf7b92aa8d961463469dd9cf319cc9c0439e01b89189403955efc0f64210674c933183b1416c5215a3e2edea8c2ac34600145bc16296ec286933178c3058384a171f48fc949b51661cc1501548da30ab09a910e300dc231ff268c08fbef9d5e87db50658b371e09ff51c3a38a09b0938afd2a9b70b6d8ca535155d987310c0ea4dfe0e6a9858d33465cad816ca473bede6273ca879b8de18b297d695e8522b9a21b198ec2c73bc45109433954dd1f61f9930b9d54f92ee266ef42b0135b3f8fb225329713087012588467d0cc022eea9855f5aa40661dc56a6149eb7b5b7bc842aa8fab29f45a915e3fce965e89369226413b35ba1b8478d392ba9735e87daff6da2bc84a84d4bf0514af529f287796c75e671e91a4ec3b66b5c8b5a2609e7a0efc0de30972f82440f691d6b6e9a54f3aba63d67dfaff88aa99d1b6bb77b9d331441681083a68e79a8f497e371e0e824e41f51549fae97a3a9e9ce2ab846bb0dcd18cf1107305031cb8fc17cc9e02fd967a20a55d0505a640382697ef4eb2364476f609ae1653142776da86c647639167694d20edcf6ea6cc6e362f8e9c7f5a4fc298c00c6674b5631e2958118bdb0613a06a48483931b425e5934afe89cdd6b27b389b8d8f6bbf2c543fd3e060c293db90977aa5bcc91329db3c6a9053bd95aa93e438917427fd5cf77aa6cbb77dc6bf560721ae13572df2df3dbe80b25b3ea07d30671957218a9faa6cfb299ba27b78fdcabf94821f38d725df9eb8a0d2e8b18a1ba96fd79b3a0e09a948ebd95ed1c2058d3d9759a9a36b540996c0922888c17d49e119a4e3d4b5f92825365afa66095d30c04f0c71f302bce9e0166e8e95227aab13cc60a975cb5a8b4ab46372fd39f6c04794d628e7325ad73be9d2315515b718e0c17d326a80ac22304555a65917f8720e7f7660dc63f0fb8072d236008d807cb4d762a1ab8b122774ab4cc9298bbcde36357a71b9cd1c2760ede4a6014e0fa6a567a710e22b35d624477e216ba1532a3260871ff8bf7e583c5cd25ebffda6dc1e6d8bfe976b07e0d38c15cbc91cf981c8ac4a75710626cf8f5e51eca1d87e967c36b8ebb184f45c1b188525f57a192a6f659310c050334cf8dd17237b5759ccb0d202609ab6a86c27a34323a1bff2aac5fdc8f635948fd2783f7388e5a6ad46f1213c3e7b071e8a38b874cdba92e354483c0743b89239dd1056ec04ddd34e27067c7b973af4278b74462a2daa23a2e7aef16fdfe66a9c594151e70ef949578f7e87868330b8be2b7d625583973250b3fab00b0598e399f1621e5b3bdc441f1464239e465da2f503be29cfe919ed1a873d480df0b8bf0fb4337d75ed11eaa5a6f29a18b0bee6154970956641108aa7854fce02961cd06d7cc8b4e15b22af65c173c57446f805325100479c8c36798dea59b011d0b6a6a30c17bb9f959ef2b62335cc4e56db27d55b8f71a967e4ea2c87bac7823676b16625e80994b96a970d027901b1c95d5da8c5afc358ddff1582da3bd968efc3ed6374cd0429c8d4d8867aac081ac3283251ca7365de509c6be9601a374a9ab1dec53dd7f3faec321e47d062257d6cc7c04dbf03b02f5914ab965b5be933f976579890aa613d6d963439f9fa04eaedda45d506a7ce42698f9648cec08b725ba6e91ba0d3ac235e37e8548798fe2453d35d90718a38132c55164aa7772388dab6a491908254a0c3b9e9ea01292a7237abb6ab8208c8a7b8414a4036d23895c9daa659f40cdf6b23eaf2b16e022620d76e114a537a9ecc6d2f63b1761b6d7c8eca74a7d2433e1bcbaeb41b46af3526c7b6df6d23cc4641ef38b0d14a3b76d9952ebdef805822aaf4488214fef8e248b2114e93a9aae3a089cb3af01fb406e494e0905292c3a6874b7558eb3a1c80e922b8d236220218738b76b0daf89284689c9d05a4172ef54784f33851a90accca1aee0faeecddf7d823dc837411889769447b38d916091350e7d745a1b912237cb0fb2f353356245f1ee8ce4572ce3e7957b2d94c406d60b08f4ddec60b9cf6b3f4127f2af2593eed47f1e6dadcc725a02f5f08033c4dba90f45ad15b0a9f798a0cc02c3a60c594dafacd567147a2cca248653c64ab166e866c5a12561383c5cc4fc73dd7a538beb6fe4604e3d78875bf8bddd2929aea2beb8fdf22d25a72071827fa93dd2e614aac2bb1a8391c44c3a1bb9f0b724322b7763cd4950a47efb044a2a155e2218536a21bb97fb89022b40365b1f130f3d0f09521f9275b0121bc99fa5e9378b3892bd0169abe949b2cf65cee2d295511f9476030e215bd7504b8e17580d625b31122274c4cac4a03af1e0a31f784bec48816c77c398b45135c765d0999b4934096eab854a02f8a21fad2c0940691fa5e6193aa23934ae7f3e4a1baa33998dceaced9eb487d1cbd3bf4cce2f30f5c51ff832fabd00492f1e949791f00285bb78805d66ac0bd4d2c587e6328b5cc01e172f87cb8cdf0247b7784d5b86600b00d6e275b54c4d5a0086163f9d650a66817859fc982c631c0b48c4e287b0cc012ca0ff8ae77865605d01892bbeb095816b85a110992c84d5a94521c52a702d343a2b3362052c57f102abcc5015b853c5eb4c6538a900282a5e80cad49f02c04ef16353a692150860c50f5719bb5540a62a7ea3ca9ca6020aa9783e2a038c0515b0e23abaa21eaf83af7021ed58dd2a50db48092180129a644612fd809aeab4a02312dd3c2b370e1b4c5c27b2e531dc344066d1738fa22b02a034d309b5f914d95d1febc51e28071f060593149036855e52fc415a131a288564430a124e818b4744b9a1793e4553b4beddef440b12d63732d0a3f332e8593dcab0691be5610f8f24d9c1f6c1887f75aac7781b57ce0c4bab812698edcb3298e8c1d1b9a369817de54791c07ea9554834621cf889d14275e123e7c1d40720d5e9f0f3d47c5d22928e204c53f96723bd56056ff8c9aafdc9bd6fa1b3d9310e479127e6b81dd58f6b3881b573705f5c02a490d40124433abe95bedc5afe84bb7351dbe0e944f7540f82f458f3a0700d64af6a801541e0603c1422bf944a59289abe270cba1ef9d95938d43b722b04beb9b14918e4fd7c56073a32b2a6c8f8dde84a863c67a6a651c8e7d8a91afe63248a10f1efd9b9147ac94b0c068d4feee1401728e6b463d48322a70155dcf502828ae7cc2b9855920717a1a61697bd84800239f30a6695e4c145a8a9c5652f21a040cebc8259257970116a6a71d94b08289033af6056491e5c849a5a5cf612020ae4cc2b9e1285f4dadc99caaef3ff484097a59534ffd2029bda9a867cf184d9c45bea15976ae743a2a9ba91d234ead57d1db885c3aa6e1ade3a4e796b39a09766adcdd5f6a0d26080ee2c684fbffe2ebb83f80b6d30c3b4488fa930f4db2fd500590b05bef64aa042fc96e6da750d5288fb2a359a874162761d32a41f91f01a921a810a23c2a9ff23fad40cf83a12a0ea96a8f3f20038f921f0d81da15c02d780021c29a41bc0e281d2b984e0e08bf2114be54ad28b2a2dac7e8f12ebd852c5bd009090d5aedc8158d7dd1a544bd88794510a687bc26e35f4cc6024dfc609b6d5b9257fa147343f29e3c6fefaae24003683c4534ff1ddac49aa22198384abf8cc66e55a6ccf159668093fbef64e2e9993b8f49e3b92f1c82b625c4684f10289e3a7449f4a7c5ee51b1f684ed73ff95df5291ba44ce5c8e17250b64f7d94571e804b68e56e48b47f6f2eb5f79278a6fe7234beb3a1eb6157324a63f8d7fee0ca492cb6e9c520b5439f24c4352fe009d758bf7623845545c1f7c5bc93d3fd0bb7d49373bf7cacc97b25387907d63d32333e24ba19baa9b99b36ad6507259a25005731f5c0a2d635146003cc5af7ef88591e084af6d0c901809a6bb25fa31a4a4c7f16932baa04e50e770a9b6c6f17e498b06bb1aace9f0be4cc12bf7ecafa76d3510af54f6ffed1ec9e2bab522cbc0f32f40aac22e544e1a2c680130bf00654dcce15dc7a584b74ae7f2a7a1e032cb5a3f6e60f3b1785c0cdb52b16632b04bdd1632ea27299c657cfc85f66f2e81bb8cc35034cc70fd6cc453c6ad115ce55613564c01f315a187deab80131220911541e6068d4aa177a642b52e06b87c885545decfe9b31785e992bef28f33a1660d6c61bdfcdc6df3c4587122427d591784534b638aaf1a5c7d9e10df5ed3abc3ce1c2ea2e2c10bc9279ec26b96b634e3db07ee481080b17e84a5847659ca1c74115d314743b2a446d3c5712eaa9c4ecdc268b660e7ebd3371d94c35371956820226e351c2049695c75d9ea2bcf2c34a80d7ca19ea3fbc4716b3f145bda7396355276a6399db61cca63350778977a23e12e227aa2f341bd126e9234258d668da61d95333c4215610bb1d2953fbb0265c321e049e0d0c43d548a80864db03cfdc11c7b059ffd3e5fe462ba6b4d459848d40e3921c430616900d58466f4e035a2d074ee9952cd72d08dfdfdace80b036f628c1fbdbde0173c5c4594670faf11feac470891a15bc0c834880b1621f8c7b87fa66c8262a4dc27d28d14b0a08f6f534a25898125a13ed515525c3428bca9828f8d552d5b49b49f2ad5eb99e03778654a081caa5608620c3d06ce17dc6ac11ee5672de017c78e204466b1afd0143fb4925bf219be2ab7cece19e4b84a9946ac7ee6dbaf50406a81217cefd9cd9bb6a72755871140b0d175cfcefd005911af53fb88a8c9fb1ee3f2c4711595d0e6f9d0ab1c66fc21254d892a923077a9e385b7678d110f4fc839bcf5b538af632bcf965c1d46ab130f8e1635614897f756b99ca55ba9151d93fe32b8ceed4b68f747ba8bdabe627f8245e796cdf573daca3ac7a47feaa110d227070d6c01bcd04943f5d1aef3624632305d9039173d7f564b721f0fc7c6e881b5637947546697a43865b5869abdba8ea1ca151c2095a7ae55a280b88d7a5921edfc426579fe97f17992a150a68ccecb3a9e7284c83fe34d45c31b8a38f1af2dc6fa8e3bbbf2fc196573ca345f404f6d2a3ddea5409e72ef8e2fcafa474cee6cfa8a406c48f292df731bece53c5d5e3692ced3c698664f5b46dc1b0665386ac8c1b8d60698e0f2109ca34306796669e79348868885ab3a8018e51e33e48eab693c585ec25dbddb447305db8959a55579f27c3200210dc1f1dabd657432261e4bc0000cc890368014614195e7b838f7e41c6fba3a4e5c91057bc62a874f67de9e23e5cb022e81a99278d59719203981d27cbef54c18ea53a9f5d637892ed8151af01f3dd5bde66ecc9a278c4e300b8f4c882de42b1e4a5cb87cc695d3eced8cd6a699090cfa17d68be76677ffda27f9a301628c71911083bdec2212a6fe2c758ec9e0e3273307be7e8880d0d6dcb78a29ef3af76282c3a2da08a65ddf94eff097d8dc8a41a80f74c925228ac21456acc22663e072cd06e8e5b29b0d72276603339d08f31c977a6a71a246031829210cc27555b353cd1a5e34751cd587d72a20f7d287659fbb26c22b79f06293c93d44f66ef11a23b60fd6000e4f61b5886da15c8059458711a5d453c59d6bbcd1de262e60da24c5ea336c3d5e8041120c476f2b54ff7cefdd3d96447bf5cc03db2fb060bc970dcb005957c868d07fb1368c8030816e67863b7d8b0f2fa640c7f9e384e7da9fc90e37d9fbd2882f85380772ef2eb6261981a81023ab34ef28117cd0d22e9e8d46290484f5e8c0f9d26134bdad0ea9bcf84a889ebd455e070ece16430603bb151d3c1a05c1dd193150538bc27a244f04e6a3db68cfd306ffeb3abd7e8f61d9371219b98a092c9d33875cc542abc5445c6f82a925112bcac23b3f135cad41552d420c3634269a820709bcafdd774cf6ef5d849979140017da63873c65f9b834efcb78f04ca748dc0371819d0a0dc38e98008780248288a4169342631d52e275646a1678972b5876f76a8c7d14beb98f240a9330a3aa546e88d4b4a8b87e89c13b9244d83996e80d1d3b961ceb875d48a12205ee0b3b4d0b647b8259565f559b90e0ad2db014f2d9a63b79bddbeab9a8d94c4aae14ff7ccd1cc9b40a94f10ac89c8db2d57a42e62fb035af7036ce7328bcaaf303a84b8b1515d345bd8f90a2937492279e49ac446e44c379eb584ac7a67d206cfb0cdbc1c73d7262376d82b0909ac5dfa065271fb0691722921717f803c844048a98b3c95d46dcda0a3611d00b14bf9b523009fecd05f913fbcd21305b7dedf05b12bc5c3f79debb0c23b5c244e9290c13ce4641b645dc55b46452bfd405d116d07b5709d28961438beaaeffb25975b26cab3c3288d07d1d6fc84413369e0cc90a0b0aa37d9f6aea0c1c3fa62b432a7b99c39c4a1779dc4d2a821632384db74e71ed7497502ad1b8f9eb213fc0bf7d90e84d17d0cf205f1762129c71ba456b7e5dd2d2997f676b86f545b7595d7927398e508f173301f67e0a965e05cb5be8fefab1bc49e874cdf014354dc9dd2fe8c4c50e94757b87dfc3582abc2daf71570daa0e56a47f9f42334fc519ee6fe4e85a3daf072b1b86d7e9c3a9d697047127f4ddc20396ec818caca1f5483aa86459f894211ac1fb6cd1f1809c6a70ba8ea0254dc63887bf5ebb0dd6c9b72d45f761870fd83a179dd4398ae5d001b36d0b7266279b70e5aa99807d94af855914c5c79c13a99b982bcc258909203b1ba4646e788051cc1b204fab41db3e5ec483abd4eb36a19f88216586ac0e766df4db32827c305f66e4ff22aee9b21646f239660b343dfbc2350ec5a4c793a685133aa4082d24da3fd2e157521cf479b6bbcf2895a7b06e924ea867621eefdeff1031da326338172e1c7b04de27d26458cd81d4befc60d2db91cdb3458c97f6fd5447194b242d37f4d3064a89665ee1e7afa1026ece0988639fd0bd90643189dcb3c468e9839bdc0df586401c9090d5476bd7e04804fdf11d04418281d90eef7f45258b6a3b643d0d032233e4d0efee6ed77dbf2cb4ce872e9e0dd30a85d270cda3a55cffa1b105b58deb261d7aa24927e22f7f28053cc14d2d7fe06f0c090be3003aa623cc15f8e161fa29d536e865cba77143b39597671f2a92f4de00c89c225b82152c7818a8621dccf22ae82b2e554f1f5261e17e26117ccc263b34db400a21143bb092a96a3b3f1a46048be465d9f307e2c7922f9c978c02b56b9f7641455e8065241e0a733179ab1c043c94770d77301560a815c811a499a7a89b7610e9a1350e2fbe222ac106cfdf6262a23bad1f2b216fbcdc739f6d960a810fd95711ed266c4969aba9fd915b16384c836861c0ea72941dbc88494984fabc0d0e283167f0ed97d4e2cf17d7787e037995ca144c4de90d5e084b7fd9d6094c4f62d3ba07f525683b49c383d8443e2698010b1100f32cb901327bcaa72cfb83dcbfc57da769d8f420c45398fe2d8d08626bf02ac7028a509674ce398218d3f4082465b8f732e31b007ee006efb43e4ac391931f51a266f908c19ac4df02d2f192f0ef815548f431ecbb0e228e61aa2206fe9f8ca197a81321b1035039478237f5eba319ac6d15cb71203e661100024708705905c6d1b7a814c9124d5e79469b7ce68a62c59abe726e6f50c31840254db3ba09476bbcd82865aa9665d27829d7704b9a9825ee35ee303942e8a70b9a878b492dc86431be5840615e10271a56cb06b372be5fec9972312ada4a6125b854aa83b13576c3594b83941384bfcfc52f656cf226611312a462bd9b7f4773976b06f54a537cda9e8710b380926475bfc03ddb1987080da585408dac40d6c83d9437ed81c954eb8cda7f3e0d71ceb4df83a49a0995f2baa2853e429b5b493008fa1aa4e33c70d7a949d7dff833b59ccc898cfc46dbd71cb98afb86ab8a4afe9ae81a82088190023ee2e81ac26587e813180e0c1c7f9e467fbf3ced02f238f3f9fce835566b2163f6a08e1ad1e3203049642b676aa63f763ba0354ef81228cc16f5949d71e333f953aad9cab040eb7754eebf3ba1fc576f2b25e0832c879f5485f429f1f57eb8b63ef750f386e7d42e39b654bc3db3a9610e12e5ee188b4e18047af9f16422c7ef9c58d68695136c17890c163bfbdb27080355a866cfce87bf9ff7d71e4d9892681a6c63ffde60b480784e368ee56c96f72bc482b0396360e44691255d37d80111f1aecf41130841821bc4ae6fc49d972627155248a97cacc0fff040374512c2684509aeaa8b926a0cc0b1c2caef1f110a4093e360f9002e0cf9404e105a90b918ffd6401a3d6ffeb15cadf66bcc0331ac8683c4d8bec3a8c1a8e2181851cd8815ab83a8224b6e0b5921456403358c540da44d0322a1dbccaf0a43946ad7ecedc26a6595a30f37d391c950d684c714349adabfe6a1eb2cc7de5a3bfd6241303f89c382a95d1ccfcf9ceb3da8b4e0feb9a2db29b68b13ab1d2efb4c972964a2fbafc0969b405aba6bdfe35528e6e08d3452e01119379259b1450b634604a974614caaa7e519e4c52d49aee431900d62397ef0222f0fcc390ace12507f0e3b4fa13d92946a5813c3e3dd7ba4ac9e590fc827ebed7d2bc5d3dd5c53f3f3cebe0316e330a89c42d094f397ca4a7a8433ba1f8642ebf6016f764bf5ccc6387b44e91e15f7f0eb4e45df93947376c5ec79593133e3344b2ec0b3c1ac99b34b10b3b977b0e94ffd1a75dbe872032ef2c5ac483d3dc943d50e2238c7b087744e8795dd78832427db39a814e7ca14fbe073b09ae48a8157c590399fb738183bd08f190e2a551ad36f18f31d201663dbd788231a44b3ca99708733d7b3b61e76fdb11e1eb0974454719adc10f26c79edf6f346ec82a0edfd3c587781b61db906f2ec1fe5143e87a9a16749d4b6afca5dfb57452307a80492870f25099d3b50977f02f5950079928724bb1c69e05e8aa58401763b012616bbcaf82b99eb4c95164728d6b0d093f273d5e1d18d4236bab124e72df96dde119aecd84e8cc21bfe69615d94476cba20f6e4bf88af7e98173a683a083b630875ec545253fdac1b6c90a6a42fede3a36bd698ea10705612fbfa7a9e986566035696e65e1724e0b97f6035a63e180b0df01a11f38d8531d1d91e37542a6b307d802e804949841c53fd1590a20f243506808807289e070942719f8aba94906d97067f8f419906e4a34be6833a305332893b66236d1de4e0d5b13e3d391ad0d1eb1cc5e665f1e4edf60d5478e76f337d27dd09146b29c16812b0b6419facb3b47660a77a795ea4309161001dab74f72a44bdd55dc348e60546803a071f332b60cffa3d4c4564041cab5e2ae2861e184d08cfaee2a9d683df0add2e4e9489a9ef5f96e96ff9cab71c0d09677881c2ba6e8b20fa4ea4624a96ba1ea457ddeec8e26d68405a773a73c73dbfabffc4f48e2529c490b057b286142a76bc8757984b1bf8ee3014d343f11d595969cd8276502b46e5fa6f15ae7b9d72c3fbc6ddd2a34fd04f9868585ca1ca2d476f427b4087148583f337d68af6234074f5047a1a93eaa104d3830a49349e1553f5383f39d5428f3502307ba1eb72d41e0ce53ee5664011ec086daee58267b0212697684d540fd3cb9ea9c32054ba6b15ff0e2c0fd63b232f789e0179387feeb84f20df5bb28e2063eb6f282a340d93cd5703236328a1cd9094872f8480a70ec9c3048d5780965969e1b1c380f5c6081b91ceefe3ab772be461df36843e6573564fcd835a50f41bb0ad3c26dca97dd8b84aff8671c0ec9c0cff0a106367c40f1936df0ac531ad7a3a371419aeadfa487ef759c5553bb095642e46fbd149fbd1e9be508841dc6ff56b896bcd7e414714e971bd96c3d83a3c1897e47034fb1427ccbb7157c17a2a667aef9f3f90c9808967060605be913af6734093738c6d3ccc51bf67fc038b5fc6d00416e831ae10d9b845e80748b7fa0e60bcccfa8435bbc6a02d5368385896864b6c42bbd9d7f3321c8ace8f5861419fcd196a9f95e72d54d62eb08739371c750d7293620320f4e2322fb0326b6180de712b1547b5f11a0dcd785bc9744232799df38a9d7b82f1d91714e43a2b2eca09d8bc3317f8b6b92fcbcc06299b5f403387a7c6d56baf20d35c0f49a67b17fb527bad293816deaf10e3f5ce89f3d93d6a9c0772d3dc3b2c40bdc2fe3ac71d1bb029fe83e3ae731ea600f05eb254c588efaf162bfa0d62c5c0c87be4e77afdbc41da681fd87f3ba6e4fc0e6593c177f043feb9e3caaeb9e3ee705c9dfb811d98cd90ad135b66b579b0038bed299c9a30e2060675c142d408e61480a22ac2c8cab88d9c887d3c71520ff18f708efe17dba8de139d5ed82147dd541529b89a44cf4c34fae71a3eccc41e5383dcd5edc0bfa2bc48f74cc60fe11dfd876d0bce208ec087a34515032ec6480ea6f9c45b1eabef8baf5f299d8113758e7100a5149464e1914475accda6f6fe6e25916439064ab5cd1968be3cb8918f21c22c1586411924522741a3f5ec711450d7637fd2c391cf131dd4146079806b4d17401a71d5cc6433d7ee61e6ed43a1eb4a85e30855b96429b7dc98e1a53e1fd5f88507b5837067d216288201d9ee8dd1e278307ada437895d7b0ca0e8993786ac3cf5f5ee5cc98a8cc7f8b1e96b513b12900a3a22d20bdc4d53374bfce341f9422861594793c326362f4f8441707e2ef8abb66be3784c359d7208caac09b4a3ac945c21acd0f1fb921c5f9d285c1718c0768d50252e0add516e6072b75f8197750b6237a5ca755f5af6f2041a2343f0de6d256b9485f3a126e2c76f040cfe167dd10b8aced8d5c0daceb48da98b7ef9f5fb4e9d62a9ebbd534c0e7b0dae0888ad47d9ce88fdb94c353b0f9551031368c926377b6f0dc3c89128d9d2614002bae91c73554d17e02ce53954f37ab47104d4525f6d6968d729227998f4de5e737eebbb81be50d1476075fedd84a500b14372f5eda5068d3917ddd197acb4637d1ed65d256586196526a3c78ca232e55ada4aafcb5914a5db46616fe9c8c14ba17e94b361dfd7332b75e85f0f1c1f42a92bdb9b479722eca3364069ede597c403bbb44400dddb2dc743f5c37bb786d70f5297c79bd809a908ddc8a80f726fd8b2e16c5ecf24b8948f7410284416d834d2e8ac70aa254408e255fdb95f9b6190edf9e69c338c1c1986c800aca249d0c232683d23568f70dbb2e1093787d11b2763fa33fe783db76afeb877445ba22a0420d00dbbfa90ccc447f1f1b8436cb62667a6133a96d90542fd07b04f1c5fe2c1bd607b4b672e12a7374cc82c761e74261c1a62d54d1fac482413a023aeedebfc1022be3651b05e6bceb7548704c48399fe101baa4ee59a1e89a5a5a76b30150f91104f53183ed0995c1635570788333dea3b8d8f365face8037e19f08146350e506406a0690178020e505bfc14966560dad4ea842e1b19d34506614513009a960fd71be067dee68dcdcb2474c37b3572dcdcdf0d3e8b5ad2750befe0bedc1df646b7453c60a056e3035401094667d3772f598d318e05bf73f0b0c199a0a6310b7abcb772faaed128758855ef097407188d8c7d6b42bdcc6a532725554b43d9d3f4dd65583260269f8afb27c5ab0896690ee5cd88d5b10a01b3104c4b03da511e7b5d308e329b0ea678fe376bc800c3410de0657e0e641731160d920bc980d935c8f87d6391e255c575403c5a394e000832447c7efc4838ebf9749f867da4f2ad17e5722e7cead8a9914b4c667fb38ffe336e2e7fcb62dbddf6de5bca94a40cae0731079407670f0db4469f7a9496a7f794923afe339d1eabd37376a5acbb842049eeeedd3dfedeeddded6d73f0070cfef7e37b24abcdefe9ca9fc4d5636acdd1e161e549b6322e54c38714850ff9a44a4fd94265dbae94edffccd354b632a357cbd184fa2c1a42477378df5de2362d76180dced6617587a64dfb3060b0143bd2da8b54ad0cabcd07b9c0fdf5a90d32d346473693513ad371f5b86432991299ac653654804518254bbfb71f73587f7dfaddbd51c674e89f31fab2178de9c474629494c5e8fbc774288de9501bf3696862343a329a190d8dc562984a2c46c5ff33528538e04ea7c9d37b1e6dba8f36dd963e3f9a7cfcf0f9d1f4631cc7f1878f8f261f3e3f7c7ef498c97a86545a050a2222a48995dd270b902c5984f4abfa348d63d348a58925d4c14016d39191e952154cee96ee3f97279bdd198fab747b787c331e4a3cbaaeda9e190feb331eb7d4a121636dc64888c578f4206faed5de3226847c6fa64b5680a85216cff3bc96cd64dddf8771777f9ec5546ef703ac23623a3a3db31e9d9e9e9eda4ca7e75a9d1ed9ad842049b5eeb6387376736b756ab5a52a5ad468cd13a25db259cf7828f5f7f0e8663ca852b63cfa65adb5cf63d6d3a653a59ef1e89ef1689d5adad0dc12722728091942a4938290d0a6bb009f36bbd2eba4503da0489851a5a52a9464ab54693cc02cc1a68dacca66b2ef4da8af33eb6433d9ac5fb6f4cf4707c9998eec5567b6825536ab5f19f34a9a1957902cbb6bf6a4e3f2a7fa32daf2975571842c93a0df7ed7bd4df7a70d03ea9bd07d577ad77dde40727d9b98cc6d649f6be9b2713adbd6e4d3dddeab4c97a07841f6f2c4364638cdf501b369efa9f5debe09f6636dbaedfeac6fd3a68c862aeb572dfd6536319a4f9b1036c8f6ab6d1b99f5ca1f9d4f9b3636a72d9f144bf6a740c5c1e19336d9fcc09d6efd4bf81c66636397aa64c9b63cf1d582dbf45cdf16c05fc8986342f02d5bb66cc9b6b441eb8ea6ddd206cde1ef2b10aef53ea4ed5e39d21cfe313bee2d6fb6234c0df7cf784fe990989c96ae3c59a292a4a22065ca519e329439c874c9892072bbd054046304ee7c7aa64b4d493252bfce0e4aead749a57c857cfa935ccf464a92a24b5372b97e3be957cdfd245722357ac04ee45d0e69536801f42bad4d279dd4486d561a4de00eea172d8d526842df7eb56dd6fa3c67901c8495fb2966f2fa486c3438e17023f3597f704d7242e45aab11b9fe8c5370fdfa130ea952432aadfed4ef5a33b5c0f8a2ca5252962a9ee4dce3a193ea9ae8a682cce49e36ebaccd25277448c1921331e4735c720289cd89233a362d353e211b1751e097293cdb1424ac1f6c295081ad081a6c2478c236c3e7836d85cf062fba242c5ee1c552134ff91ca5586aa289711c979a501a7f947920969ac8a1a98915bc29f01746c704b3b2e8428057517849e095ad074ca388ee0b2678c81e0eaf325d6262289fe3f8cdcc7a788c6f86992e318164b4852c205202141c69498ac2458d8708b088eaa2960213a4400527197e3bead953a45da41064436d891c6ad072be2089207e70f8820a1b1747e0b03f3631d9121329882c99a5256ef925d3a525bcc89ee9d212392852b0478eb8fd8e1c611db99656dba77caadda77ccaad4ff99475f7a9db15d5762daea5ddb5b816b7aec5b5582db7bbee39587b6f676d576b960186f77d9edbc0fab5e79dbdd752da39a547da524a29a5494255cea115afd8894e76f9669b435074b257b4cd1c8a258bf5b158a1e8a0e8f6fb557e6f43428a012383358386b3d65a4bddda183ff8c6bd44acf5a6d6666bad9d8025e2a49452cafaf961fdb07e46204624ac1f9728630c630c2e515847c618583f2e51583f2e5158476ad0a7b1e2a14f479728eeeed7258a1371248e64bf7e8d3ee0eab8bc722f0aee301bd794bd963a15de069f065ef7819ef56c8963a4f0dde82ea8ea020c55e8754c7583d6a0bb98cbe5b11bd94b1ce3c877236f20e2ef135d31996e90e987d66be1b5b712b5d9456011780412d930d7edd65e777b6f47d4f5077621b87259b9c48091c19a41e346db98986eedd44e5deba44efa27c776d2488d54724083c9d1d1cc8ca8db454dd444331d80451d8047b9bf830e40229009940232894300f8c08b038940b2875a48e8136d34f20bd30bb83ec92336951c70b0e2119b660200031249e5bc35839c06399188def8d313148e06c221b3326a5ad338306344e1703232311db430d42d26ccc5dc68b504308001d0c8d0fae4e474c34c92cf8b1341a28e6a5c95c2c474fd3e3d41414545352ef74daa4d3656d536be100d60003462539b5d6b75af5e5d74b211e085a84d1ad1f6357d4f50b9e9104ea97671e3978483598273d0bf3890ac4795e84bea17ee7bd2b097a72728a88bbbe50b5192b7fac71a2ba38a5491721080857c5e1ccd05b94122d116e60ae0026b10105012211faaaefad366a5b5590d70801ba4049c9013688e489b43c203d488325feee22e6e06ecd383da80c8ac8c7cc4549ae376cc01449825d8e6e2ae156d516051b71a249ae9bc10bdd86061169048b48144a20d24126d209168038962c21c51cc8a87eca8ce354eb4894d0d038b40221e20514f6863b3e2b1d7836b3f252917f793e9c57950a6b82fa9ab5d1178d4e6f51b2b1e97c53c103d58f1741edc970ab49deae26e962bd5e614081be45bde9c0df3d5b0180bc3621f881f582403125d1cee46354c6c126da22dfc408696c3430c5cafedbca04b72e5e72d7739c2de83a7aae6a332bf57df2be07efbe71844d52f13eedb1dd7eb5abb63b89c1bd8f1eea427274aabd46e2c21d40a73a5d65ed1171a8386d47b4aa9f894e2a7945210fc8a724d51b9cee42acb954a013f4a29a5f934926dfddb912b97171c4315d64b77b0adb5827da5609f1e3d7c7c805fc4e55d5efcd577d3efd7a137a0cb37ad55a1726c939e3427d630cd74c7a58ce9b1129ffe18866118866148c3cec78aa43b22066caeff7d638f27f1e6b5408390706d0f9f7e9bee878f1e9e4787c5daf59edf755d36e74cac08fe80738da15f33ed9bacd3230b067c4b0c43457d3ad3354ae89531f68dec78ef3fc4615d1963cb1e3f2d7f233b314d624d7cbe07fff39e48131ff0c3920838aacadcf93ddd0199ba32e6beea4fd32b636e19f300efc1f7e94abaf39531b6ec69d37b78cb5f1506764a12797b17def67687f4cb84ef3df08bac3e2cd2c467f5a10f71d8eafba9d39b2fb7cbaddfbc895030dd5995313dc48ff1095fa52a4d1072f3b7facea7affa8ff4beded348f6840c21229274e7d2ff3e8cc7f1df343f766d29c3a24f186c0f8c90be00ebcc7a78b85af57fcd362f0fb2879ce990336d66ec6fcb77daf7fe81d7a39fa804c7c02d329f363040dffbfb44a1c4952ac42025418c2d922582e2fafd49993afce0d75a49911ccdf0238dd054dfdd28a71ed407c998b7bcd5b52f45d94249094051a2a4a2aa0f200ebb654c8fef8b71c09740a5729fe02d20de6a82e98e8b12353499c10f4534dacef7de37691223c2fdef7dee7f259126f696f7bd92c8a53bf7cfef726014634b5518d8cb1f3eb12a9a1c8b9fe1ca0954cc14ff80c902578a5ba09586403d4aff1bfdba53ea9452ea14f441a9d625b5abb5a1dfbbe299a95d573b996aedbdf75e99995a3d06122cb6098345094b2b75588f0e85b9bc55ffbd55b1b7288c5ad23ae156813e0c14b882e01f9078daf75a7ef8c33720f813bf4fc41feefaf372fb0171d8f77ddf574d50737f78fc4c755cfe0521e1a350d5895acb5e61b47a575845aa2dff6eb2d6622e937e316fb9e92df7d1a64b6e25b8fee036f4c62a018588ec5ef5bcaec1a6e475f55a6bb5abef7dc58381eebf0f55482a15f815a9617506a424a57ed9e8520b7e6aed48f6722cf0403e2b5353967cd626f7a75e71d95f057ad5f33ccf7b9d3e47dc0f201dc520b0f8ab5f955cf6b76193e06fa4eae1305ce2d04573b8bf01284c04ea0a02d77cba5cd45602bdf1b2bf0f870dd11b5acbdefd49a5b21bd9f1371d2c631ea0faf07dc45f3df8ab924813505562f08dec80df87bdb2bbb9fb6f530bee689b9dd40933601e5f39bb82bb3ca1c7f985ef22199294b66a8f5aceb4d99546aac70eeb318ee7e7ba433b206dfa8b4ff625a76a62aefec4f4c6258b4f67a50ee8856bf5eefe3d2e8789ffb2560dcde17f7a99fea53806a0057015097ff545542f7effe9aae2abbec8eac32f22beea3b067c9ff057efa37ab12c1da0eaa0096d0b1139ebe141863baa5cea842ee05bd2cc4461f3da6710d6949eb49226ea21a9a92c4d4e3624274c6a5015aa40b828284a6b5486e67025423a7376b5ec5fc3efc3380b7c3a1308b8056cbffee94cdd11cde12df5fe8e14f324afd90802778e0493056e772427f446080a7325dc0923b23f652a9d09095ca44911f0bb2ff2bdf70e051769e2e3fdf745ba07bf88777e31f77d4a11c092ba4ff7de3be02b63443a281aa204443b5da9d31a2041b443779ac4001aa90fd11c7e0457182b35ef6bd475b75c894077c61d42976c5f2f66aeb15c458a290c7ffda73097afefa2300a537dadd4966ba6ab6acbe47bebd64c0cc0b9ebf2cd2308b02d59f54ff133e2b52fc959cff33cefafd7799ee795a777bdebddeede1809f5fbab40656f21dc66ba5c31578cc65c362e974dcc15a3b118062b2e97cd9fb8df596badb5d65a6baded6eeeee6efd5a7107718a2397cb7bc1e5d2124305206d8686c686a6b3e95777bb8edad0b868685c363436e6d39c544a2749791a1a1a974c97a008237bd9343b803ec4b05f3f1a8d46abd1eee9e7eeeeff5fa54af6cffd35fbf35de9b4e8b4f05a6b75afeeeeb5ceaa57af5e6bb561a94a5075c5dc633a1e731d59cc3f26d3e96e4ca76dda6c9afe9893cc4967e6546badb1584c95e912143264efd80cf59a30d7f9bdcb3dd62feff6d16d5cf65dee8ab5b5f5e897bfb52edaeaff5c9e1297cb6af93ea12c5aa072bb9f9a6e93806e0bf902b55392ff2079471e913774efbd57e8de4f9a3a1aaa79d4763d246621caf7e807292849a826de84a8fdb08c69c37a1a574c56cbf76d7d11f2ac00c24a62f9761395d46cf35e9a36bf7b5fc60c3ed2a4c996def4dfbf4917098b45170311f9be0735ccab79eb2601e19cdc983815e5ebd99478354f12be00897c5750f2fdb38be17e47ae704c9c98aa4b8ee6b82f06791d8eecd51cb652c2546463e294af937c7ff50497efdfa8e5f2fd5e09b92ca96aae5b81dc7f3b4c73d43f2d803dc61de7eeebf0f041c2937c1bca0c4af7b3cda0746568ba6ebbbbbbdfffbed4be3058c0f7dece4b1b99525d40539aeefd63a73f2dbdfb599b4d03191b41a9edfe2c682dd9d45baaeba4773da8b7f015c7d6da2f94c2a715ad9f375b51634a0c089d65680e7bded3de20a29756d81745118325702136d723369a9ad0b6f876b77d9aa356fb597b638693329c84c9f64551c4d65a7b59224bc4d75e1878878d63c0a7adf7daeb366687bfb5ef651059fe72105936927b05a1d82f6a6db562b562f5b26bb6228fd7fe1cbe9fc396565a8a78898512d219eb94ef51bf77ff3dddb19dfff745fa41eb80af88ff57d29d22b1223adebaff516f792ce6b0181ff0fb411d87c5f8b493a3b7eedf58c37020e9f0f041422ec7f2bd37bc7dbdceced0dc19ecb0fefba3c3bcd2be7eb1327d1fac0dadf5acf7dded69b3fb19483a0ee40490bc250ce957fdee898064accd0e74b5d9618fbcdddb6bcb1811fcfb7dfcbbdf471f15117f5589e94889bcb7ba57d5cfd5e5299e62a6a512b8a7eb1e48090ef39b94bb2e7d0c63be0f48c364682508c9dd921352ee6892e44ecc5dd7ed7cde1d65fdeade65d32ffb407448ddf89d90f705163c14b600b70721a5b5d26aa4d6136096502a325ec0b576f78a077fe8dead785c3eb4a2bdf7ae78561f76ddf7a1e7d5d15bf1a83efcecf759917e20287ea81a573c78c5135251f43e5c89325cc0e73dcaf5572e2ee1cb0bc62fd8658563c4c018635c2f594331fcc89ac3d0457c595d203ce2b6250ba15fb3cb2a043f7258e36ac43c7d1f72d88da7ef440eb3d132a066d3f718e8aba58868424deba88639cd85e88d533ff5ad5fe1cbe5e937ce8f5cf7a4c9e0aff03b34aecd5b8dbf1bc55054895fcd2a7145d6fc8522b8ea3a70068d7025be9034bc9632511ba1e6404cd4727f7741eca956325aa8b1e201df65a500fb223a09130a1d11943db0537d4f4f50ab122757aa4a1d351acde1e41ed11cf541f232e961090e190cb392b94100a71aa71613019c5a4c33be4b1ac9dc7286bc45e4adcea1e5004151f1e429e38845c5706da2009f38399c5c161ca97e752b4f87d29343d156dd0875d4666a1ed9aad11cfdf42496674341454565c9f2951b20dd6ea696fb0ed11069d01ae20bcd3280f059737bc937c817ce5b7d3b6af3c5e485f472f24afaa878e242ab9a5bcdcd5b35b89a5c4d969a299cdc13f085f4725273abb9959d433b7368fe93433b6b6ed97683e80add2012c7158ff8e34a01e17f46355ea73b24a68fe6106609767205924638647038e5f383a10f808462b8584e6a94a239947430e990a2c336a5a5294b6e9c9c3b4e4e36941b47ca7172de92d16440b22059925247cdfb6e15b750e5a4a8225f4e2fa257d1ebe8c5e4f594fb054513ade65673abc1d544d5647921cd68d400fd91617eba4109e51cd510faca6cfb29f8a44ad4684ad466563caa779282a0aaa68217b276304b70df7c83cc52346fe55cd2939a12539b343cbf40cae9434d388796f393135473abb9f5cb83ea97cab6d39f9bfac996673f41b99435b71c5a4d5973cba1bd9042a08fc4b1a886d5b89f476215eb43a0ef0200002b9e8b9373a31826294d4e6d3e512853598684a072683940426d76122546353a5a8893a56135fad5d570d241d228e647328756232628c907c206592c73806ac0e7bd616fd5af718fba919cec8e92343b592925af93358bd585ac199335bfb851cc83a4518dc764a5396accf879cc213a496b6a6e2800bfbba5fd5b00d1c91bf99246e383634983c42ed1491bf9924635de92e5e7adff0d36103758f1d440b5d9753f32e1ae0657a3c18a076774c2670e2d47a85fdd831d4e2eb4113d109d94912f6984e341d248e66f903b423b433476889038da01cab6dc949df253be793b2d64a8efcf9f1ab34089ba39b49ca19c9c229b08bd53e37368f406fcfe2cd5afce6132df9fa71a16cba151247e304522684cf24a3a862bfa6088094ececc1972d8084cde7a8de0d466d3d70856a8d93934b2c605b4d52f43d65c415bfd2358a1af9a2bd46ca77ed5dcda7401bd99f1fd355cd01b19df5fb305bd617d7f4d14bd81f9fe1a2d6ab2a0372fdf5f8305bdc1df5f83a337f6fb6bae6072d80837afc1426f5cbebfc68a1aa89a2b3555d09b900a7aa3a2371f534500d0679101b976c63f6bbec8fd35b9d631fefd3c38a9920eb97f849bc3948e723f92b520c8fdd886dcff7243ee8fa124f7c3e090fb5921c8fd3272c8fd3388b2d3b022673590b30fd01cfd97541a02c9ce1f398b81e6e857913319663390b32434477fcd33b011906be7c6cb208d80623b371e26c68db7f731a901ac8131dfd2e846499578c87d5225a3dc3fd3817ad0de7b59869c0d65af9c09c5700e7b3dc9fd4a3829b426a0d7d3eb83a19a5b57be9086c04a42b79b549194849c74c9973492794b9623dcbcc5c10eb871f9fc98d407341d39528714ce61319c7b0c87d3f1913a907438d19144ea7822031d51b95f0716d4690ed3a1a403ea9fc626ac43ca8793c3c9e148d91c863325fbc9fd3456208cd92b75d4fe889a9b2a2728e708bda1a2828c02c51981a91680360254c36a7cff08b71a244e96e6f94a1c14609c5ceecfa1e5fce400e124e1e03c69586ecaa1c57268b11c5a2c8716cba1c570b97368b819793563685ced685508e2194347a24a0913086e60cafdfd8c19392cb36d0a3eb150ee3f73683342d66a4767f0fe0da19adbd008b7be33e44aa9dc9c043f109dfcc21bd1492fd701cc705092d7d6a021f3ae2f3358326062b8c8b8d0a054585d0214ee033e58e2eec1e798ebd37ec72d94fbc9670bd924380a1e427374d7f9ed964f5c71385a9e3577e2f2ac52dd956e93d8247648b4441606322eb0adf03bd703207067cfd1683418da850a95cf4ab338601932e053ac341c4d015e1e6574c0f5a939451bb96092cf4aab9806d41ef4c79c00b3da6c5b844580cf4a735adb5073b97b889394524aabdf52081112e09366c9fef56916cc9431148bde6bad932e52281a398488101a4e64f9fe4facb95b435877e84c8d1eb058816a3efb670ba17c56a0b33d90fb2d0e628d27f069ebd387e18b7acae7e7bfc2efd877d1d49ef1680ffac5227c7e390139a26ed1238c34267dcd64ea16cd09c8c58a66b4906a527f85df7179d00fc600c7f8d34c1373cee4b6b95d7dc39216403046e0fe9ae9521645f9a7d23e8adb4e7d5bbf543176d4e014ee18921256b1917299e61d3438e91765e2c129d31d4352fa15e32fe5abf8621052a73efe069d825d227c81eaeeee4a7e944e093ffb15b364504a6917a108c3d7af76bff1aead97dddd416d6957d2eeee7e0abd6f37a5433397569f9696bc1687061a74b78b08c55a6badb5d65a6ba5558346a2371b7877c74237b6fddeddb5dba5cb9502ba5a6fe169e250b31f57fa8ab5097a534f000e68daea3e55ee34a0ca16a4adee714687c5a02d32db287317816ccb6c6f79b7587fe976dcf786c1930630a10d085d87d6bcc05dbb76db6e21dd8daef0cb9f232669b7914c7edf77f79ff85d589e637615489e9dc5f2aca7912792554455a802494de5709d8d367dd79dae7ad294e768bfff2e40247f9ebf8e3ccd8e6748f66a39a64a24456da799bb0b0cc9de9f1db880973ddbb96f5757dd539bedd7a4042a686a2a2aeae969e98a945ec1a9df47ff0fa86f476ba582a581ded05c832a254f9adc9d2e6bbb526b6dbee5d9815c817c7c9f933bf957bb00b97690abe33867d8e4a0383ee88a8262790689995e1838e420093e6b50ee1a44de12045b83fa659f8cb1df2198d9be2d5d357b6d7a2c46639596e747c9ee158fccc6a6cdeead48db6fbdcfc10bf8ac51b97bd3564bdb76a54e7300848d80be1dd59fdf91ba6547f53adda9dea65f34ddeafff037be3923087cc6784fffc6786508a6fdd2c96c551dc25a032ecaf497a49c645a0ae9a7a615413ba47c6d3e008aee58c2293d81f4c4d11339506f41208a174ca278118b7ac0141625328725a8a76af32f39a143c5ed382556a5e5763827d6b34df97041385a522e0a1c997c62112a4c82d00a222c4a714515bcb25247a3172e58aeb0d92b6a4d5cf12223d3a52b9848e12bbe184a302296ae29061820645c01242307d6948825eac3f284a56906ae080b0a3096232c435882ea17068da9dc5fc54a3d2b8b1a4f4aac6841be210ad2083e6d5649c1563c7192af3c2d59c1249fd6668346113766f010235a2b94e4a64432ac252ff67eb32fcce728f333e3cb38a1107a2b8cdfed853e14bd60821d92d0a08253d0758a6145bb402285a90e054c3a5a4567d6c3a3cbe74cec345d579c8c3f5ed161b47d3a00e1de0a33a8a7a1a9294634b1258514504082021350901409b17a02091c56892b2613596215577e08e94ced5a7d06cd5691a4ba4873fb5e9f61a9c0d1ebdd62d75d974d9bf44fb146ada9704271d0fa3ac34c6fc8b4db8eb71b1285719927a5dc27c8f459b94c8da85bf1ae78ec779d8d5abd1dc5a670ca27b5e1a0d76d6d52fb5dedbedebef73be780071c84956f791ac9e0bb9bacd163b8505d054c9fe64a25d3a529a4b2156d1edb90e9d214b64cdf4563997a0c219cbf107c8b0cf2e7226d9ca64d18f057c230e1d38afe21bdf1d2d21cfe5488677f2314468346df4687870f26998ab6262e4981a35228e573269f34b9bb3e3383804cc57c8aac3659c04f6514e6b980a3414a8988229cecd09f51d84799c2e94811558e9e76682e46caaded3a2f582170205bfbb58b90f68bd2efb258fe4940f162c826e1c41a224664239e1f14175001b3e48ec9ced14a52ee31d3252b445690d0ce87da514f7ac0c205a426a503401161b4050d47829040306405e88a504390521316846480010490b042b4c4110ba65852a9d0fd48c860cb5251cd88233625507201e926050a513e606ba8a205d8720a01d312535b90584202326891830b504a6004092a8e55a193f0ee7b90f41ae4e9f1d58e7eb5d5c0501282920411131ab0d0800a5a5091e48b21b434d919c203a1a5a12b4dc152152872ff27b2440064ba542588fc92e9529522251fc20d286089024912453b78922a38e006a8a034450811a460348211fc6287f66b611b562528c6cb62c1030d47564ec0c316456e67b0d9278b13d4b04511372d4abab3743718158a2b9f52a580144a48e1c11695040b76ced1ca50a958f95cb07444e5091f80942059c235db8f596b3abe54c0f8c1c202146d07308ec4b06484c90792b082e5052d555c819fc865b40229211bb658199af20919f1e5d2072827a884b1040ca49879ddb1097ccecc98ae1ceccd00932266c08592239618c23d9074b31230c860850c5fb0f0022962b7fa45b049feb2d8b997d40f1603b37dcc52959f4aa552952758b2a8579edf0eab6175c722a90f648721904889a28724244e764e97ff0083cdf63103be80c2c51038d4b434d1ddee8d858d4a9105125b10610224465590a86c366c70d282899fa0232b8c6fba624c3ab61e62401c790009d31095a21aa4240816524021c114a71008f1e1f15db47d0613d09880a1071c0ba020f1820c2a234514c1e4862d515cb1f2c57d7999c086255d2c81418820764e57b60f84de7cd68525285ef030b66f3a8c42cd00ea89125899e202931ddb9d82afb68bf676b5a558dad37ab7b4df019f2aa8d48c1846357568080000400083150020201008868382c160208c026df31d14000f6ba0466c5e361648831cc86118a50c22c610000800801063648686660402a83951c1c9ae87a05e62f374a8638cbc2c7ee89d06db23c06b2175756614da146debbdd907f479c0364f8726beb990490cc8913ac109cd9fb7ed0e3195f38dbb87cabcb9cdd6c52ae3d166d0ea0bf622379b881bc726b9c9a3278dbeb43964e058ccd434fd42606f7382ed919ce27f51ee3bb87690711b2b04c4ad59ada286b8f1cdfa613022127c91ee6e13f7741e2e1f4a033dcb250fe07e023a9f88379db8f4bc00452d1c16cd0c4583a6c9058d8314b172eb9507bc5298857277f876b0d5338ecfcf60d7612a2d76dd88dfccb9fda346ddcf19b348f2ce298c89ec575d0010ee05a2d1ee62d7e37886f2a79ceb7acc7bfac2ba994ee64e7a54d17253a878625e28b642ede3050ec0a10116646b714ad8ca82c0b5575e7450dd5a1e3891e95242a15afed539845fdc7b58e863eb179b5656d4ab2cbec6f63843b6bc3baf12d0c3f7586f12f74b897a4556aa8c89ce2eeadff8ab0256e4d45a993307ccb07b0877cd09837d268444246a17394050f6585f46aa0a4f2a59b1f81482b36a1887bacd0381784f08475f40a7ed34d6e4aa7c7ce365681c007b8f3b4b628f6d6cf789efba2ab7eb8a5fb2454641bbcc1ea87bd2ac4419027170db9670710adfe5530f9f6e9ac43b095eaccb85704602e354d875f7a8325809541fc9e69d231851840400744cf667e0810942b8fc8079254a304bbad3358bf7e3ca00aad02ebdeac77e7175940a064719283a2d4390e80a1caab6fcab09cf044a0cfbe82d2524f317ef98eb092faa46c7f8a0b72651864b0f39c74ca20afc90a312aae03243fa8de737b11958e9b0ab44d319cd09b31de62a1512ddec98c885e6bef4d4d0ed7d7a80f98ac7f5720344e00faeb3e29369a09c37099956de146d23150c9e7624e501881757361a7b54f40014c6589a18b98b00bbafe8fd31a6eb0deaa7b59da2e4dad24d395df6afc1a5a596a12828d46a691ac35aef470c00b90954a9bd1c339a54eed25d6a958a25131d164fcbb89f3cfb015b96214390648887510a14e5220c1e7797649dc5952d35814e162138df625a4669b990024a33bc36a63757e39578ace634b776d42a556351b0e32a34ef5418292454fc0cd0b6e735a4f0823e426e62543316c810b9dbc9cd3e82cf0bd726408b41ddf6b44ae238c9a0f33c28521f725083f0b61748a477c963226a709f8de6525c92a43cee62d204597d54679616b5275bc91d6ccb22ff28a2f85967737b2e9f8b3aae01db75fd12f5d3691819e1f13734a32370f4c25f189c1a1356e76e00ac2ab6834915a0ea01452f6410189b0b84b2ad31da847c0db4227af9323ad02756456e57cc8ccf5aa8b18e095538669e7040935057476d44d6978e497ef1dc1d2d1729656fdd29f48a3c10a50566cc6525c9fdbee85494c2975d46cde707e9bfdec270aeb19b261b57b51e048fbff28c34c28e8c76e73a94611512fd99366f2e8ec5bdda81a22645f2b714a24a60b82deb95611bd72b6cc5051868eb2488569ec7d945760a46520f8d65499912fe3b41fd904d935ed9d7122b5e9bf1e850d5a432ca7c22a85c0cb2d5b47a1dc7a8d5b625ac178a4e2b7af66dd0c4029acc471cde85b71e3d193283419370cdc0155ce2f8e32f37541cbbb9a3134098e39953d1996a01f62ddb786ebc560e14cb982defe056a701842853f60fb3c40033993ee9a55f7601fb7445b789a88e64e269d6f8dfde2e3d70109fda60eb5edf399da807ed50b2199cf000ce3271c5ae74c2c86079cd85f918412f90748d58be2062914e9cc4471e30b0f3e6ff9bd1092a65995912bd39885d083e02ce77af195d878063115a265b892c98123bb662e404d6834725ffe80711522a4cbbef4713bdf710951933272f5617f2984fc5dd1532a50d8572165db7a9415680ca24410c184b1354ef4618a5f9ac6643583719c60434bfdf3cadfcdf363807f12d226263bb4623110b1550dc35dba7a6cefb60ca9bebbc6b8464185ac08b28b2e1de0a6a29e16e7d8836af2014f2925b55e86da5a00bf373c0990f8653adbfc29abc9938a8af7cf9c8f1e4b3d2283f3cb4a3f4ecde552f432dcb77fa600446dc06c35f8ae5e17388c2e2df5aa98d9a7ebdb6845adf1a73b94005867543f7ea52798b65cb9f91b5e802b64518f34761a00015883e8e3242ce9dea0f605c8e8c8aae97edb5c606b5a29e02e1e74f3732f1ecf063a53fd6e9a1ba998d06cd6500fc15f26ac421dceca784e412883e2e7314584fb507621229401952a090f7bee1728842118f18894e8b4abcb95ebe06e9a453beae24c7677411bd55b48f2ef8019af82553d7ac8baf7b47014e6311c88553252cd6807ad0af5d0e09ca85395ad4c0dc6001107202bfa0215dd608a2bb7f027c20ece97eb8fc45e991fdad6084e5e8e32e36bb842f0c3926f2375f9ed14a3914809837de84b7b0bc55ac34eaccd45e72bdb1c6e4b0226d135a960db9872d91c834bfc1b9a606307275c8875b941825b9ccba65f4166f1a5d79d3752754ad8188b4e9ef9b2a05fa55f5ace91207f149f03a8d3e3c1c464fc8ea0b6a69c196d2360d367f951f3b3fde11834b6dfb9549f095b560584e0d15014878d5a48514c1e968a70ace65663ff3ebc763f618b413f131629ada2436f60b2367145a673eb18164daf19fbe865ff194c47186705eeee8986d665bbca84e5fb97278d7ba8aa05948f269612e3efce798bd7a015a17898155c36f28ae6326cf84590581ca718da2a38bf70adcf4e46f715493c9341a2468bf10d30a6c53f0c609bacf9e9d0c8455226f68e6304c2dab7e053a23f50ec141af4862742ef036845d778e4fb42932a4531f6e850e10388f6a6de91c01e32f88759a45209a13ff2fddb9a1ea2135bd9885d8a061118979855a453082432117f8e01144c9617d90568bd4b1b153a1dc59aacd526d2667a896f5eed5fedb6cf8d8021642d7fd7adca0a706c39b28b43bec36435219566457e810e684958464b056645ea113fb9600c5cd02abd41309b3454b2cb357b3329db2a843ca987fd09fd41fe8efb879d25d9ed9750d1b0cb2a76acb6b37b1cef83c13fe5f2bfa9104698b06a28a582065ede5e8f00c7954db9d9ed6ca075551912bbd3398e4665e6941a11179108653805e4f54d425dddb62865508b0c47d8278f320968f554a4ae8c5d9df8d0770462120350b2f996bc9709601b68a98b8a8f6b4a7d23879f0efdb49a60c39302e21fe79d6d67d1e71e6e431b98bb15bed3ec77d2ed0e22e5799013edbba0aee6078d1375b337ecc7f9137ff5f6a4daad13551d095c41134cfa20162a2e17ad48c02eeb229957145b5e6104cdbb2fced840c1552271317ae2d108e3e37685f1246f8b735865af9f5cceee4bbf20c6d87559d0a09cce3be1eed2dee386af11edcd648f5531de60db2c481385d970bc0706ebd06682da3641bd21ab2d7b9a08fee9220050fa98b29db0cd485de3835b2fe8d3abeef2a9101e51ebfb2650ab388b1091a82c0ede071b7d52c9cbfb115b02304d74267c16bd1a1547e26bde8b52ebb601711e7ae092425ba2d8040fc6ffa243c449eeaaa78b7eb26d39b329eb80ededf382b8117ac8689e1aad0c1d3ab616436259d931d1d154fe57a062fb0189e84eb239026859e659018d045851a6ad0a71d548a275167588429d8064be8165c69fbfd56261cce579a13b8c7552d2b705f15195c78597367559221685c556f7fa18cfa5e07f7bf01fc74a1c3cf90a187069a3a09bdea4ca7a9e99396a0f116086d0ba0b6deef40e7650acf3d3926b81a0d34c111f2874096fb3873230d9b034f0259c22745f1597db2da57e5d0a4544c166572142439f3066c3b387ef2008dafe2ba923a4e9e70bc19083430eaab4d13075d0780f3ac101ccfa038f1dacc1d0defd21514a77ca97fefa081b647aeb7aeed91d5a309443d354e74e93602a4fff8a064f7a66bc0f4f93e90c1be47c4940b48f0043b92af6abffc211479c664cbfe06ed6999f01a315c1a3c25abfb4f6a2355ee04d6e458b0c7ab256823b0ff49d978a437c4969897f987e377b266ccad4d9448a11f6cc8bbef736d8906eb87c679572c2ec2586a4eb0722466ef4115649622751111fd67253e7310fc1640e78a57c4c01fe073f5ca28c2688a64ae0d464d4dc9e099a8c16979303502e08478e8330779b5613daef3e1eea588f02b0697cc54e1617868c6d0c09b88bf05831345db934afddaf2a4088fec64814ce12fcf23a33bcc25b8ece0dd4b82de0a74219abc80c83605086af18a3a4e8c103c8a8ac5d915476405cbcdc2fb8f4deb68185a8254c14346bb115701fb8479f183942e3c9935debb8d161b287d82ba01ee2081812e77426e1fe2cc84f787225c00cb9be9ce05f65844605324d2d12c8df14372abc6154f539a47bce1a9eddb14f9d0545194c57332c0b890ad9905091063f8664e01743ebc6ce4d357d471275866c79692577c6e64c27aa8cb067dfa3d9a8564063c4a1d16a9671e3200e8224a787a33a205beb627d2f04710853ec4d12ce6f987c0067a2b00a0eaaa4cf45eeb69c997e3de847fb899fbc4997be9db168f73c4fded8b9ce5dd86b5a19ce6fe717ec85ad40fca11a35d28fbb3ca3e714f78b5ed76f6a14b0cea3049afe9697503137a6043f3c94e6fe52f2b60d930922d8b6288b7f924a4a4063c2742f1946f71a7d1bfa94f3e1951126d891b9b3650ba90ed414ae50495baf69c52484bce7d9a78a86632db0c1ab61d5d82c1052bc56aec14b73442580a3ebc3cab5053906601efdd82bd942f395fdadd5a774888bcd1893bb81f90157c4a8c21a44ff994131edf9b588bcdb404570c791d6857604f3e2025e84b2241594ab57b9711854c069036cae42eedac73e47e7b78a1979a92c0a3fc8771ceb79da9213c2baaaee669043a4578e213593d2a845b746e52064112719a47aa2977afa5b0b9902c887c2980bdb79cdfc013fe2e189f286859b59b4393cde058402d911abd650a9ae18c0b9a47f1fd2a1e94745816202cdaef7432b62f471aaf5e5d9dcf6e733a66925398a8c77706f6d014b4646b18432ff23193a4bc938a66329d78ea426094fdb635a30487f3cd165af792c8120e589b1269bf7a684744e2a818b8ab90246c6495ef07c6d722b2aa86e1601c7ed68723fe45060ba90f4558e9ab6bdc5166f58a8ecf70fe3e912e5a98efc3b77fd587435de24e1729cdf2c7df5ef70bf78090500cdfa5e9a0a2c8c53e2d3b3bdf4ab55c6db2e4d8556f092c4b1b06b83934870739a73b466f31b33cb517a94e70cc5870f76b40b885b8db27c76a69fd91863b114ff7ac673732b5a27618020bdf68dd0465927e8b77d4d3dd6f84815b83f1ec0cbee0da6385b61e35b2b5a159bfeec0810ed732301245215e38b7c6b43a45f6a88a88f91ea2c9a110173d2499f2ab41890c9dfb5a4f930ba6a1fec219292b74e81f3adde5cefe154388cbf2e237c39d69ea726cb3fe9bc5f40e53da56123a9ade5dfe23593299e39db04500f5a65169b38716a2813f92ea3b2d17717a76ffe5f9cd569668e1868c7713516685494391b37d68ebe3d26570b9e261a572183a047ed57d89c4d4539c73fe16d6a1cd65c0fa1e56418588378a8a29387faaccb0172b6cd10a338dace4c2debc630fd2ed3d1127b7fa1b111c2e97c66e73a0105195f4dce3bbfb864b753ad86fe3315a256d286092bfd0989309dbd558fb68845f62d3a0487d24da669937017da0f0bc6142b6789c563fda6ad04fb3ecbeb94969667e67eac48fbe0a002f4a6bbf986d2e272488d54553fb5f538e3a1dd8c5b62e35b22aa33604c5e00bba2aa4422c6e89999c630d85588c29561252d09c49ee700a7dd4b95836162e100fa340a7318bbe4745f43043e6808b3f799a4d4fe75998e8b18be5a5e2e314981bb613445c9cda1749423cd55be5c5f53a283b0480bf86f98634a152850d82d7ec2524dbe6cc2dc2dffc9468e2e7349d78ac149112a1a35a0290a1384e3c889b81fca11394180125e3f415066ca51b2b34b140cd1e53a9b12cd9a0fdb1ce98cc259276e0b6c1d0315f03a02ff96218137b900a90146d4cd5337e1e7bbcebcca88ab54a81b44cc207defe6fd1594a540aa261b919ac113509342c01528f745c45731ab4e48c46aad19e31c1bda90282b55aecf70a6147b3e2d84972f65d3dee829a779bd20705a4d509eb0d08cb482deccec079a3b919949119d5359617a679a3ca1a96180a254d2f423a74bd52b7b7519cba3329f834b20ffe8a772d828300d1f00ac9542481eab6d5ac55d94e9a3213e716346fe4481c342208841c4a6ca02640dd075042c81e410f788fdc539a1299ff30fed53350e62b81442da220f7aad3db28a73419423d23a26290f74f1af0b61f8d891663c6fe0a6ff720ef8bc2064f6f002587246a8a8efe8a0c22cc896dbfe1545b65c35ba7acaf4c28de85bb2cbb81a1ee7b97b1d208bd13faa6f8843e55bcd3a8bc32fc441aae53e5e41ea26fbb4dc8252cd46bb6edb354f8501589c8787a55c53430bb78a65b1137b05ac8fc65124250db2e28374a1e10a23b0aadecfae3f4c1771839e308adab1c8c57b7cd94130a12c7be598762d65af03488515ffaaf7bb902e06050764eaff4378d1a1c77265506cb2b43c14b2d0da2e27e0cc3ed2ff2b4918dd03654c56efb3757eba40f8ea97368b1c1c42d031bf89f522df9c6663a8f1ccc2a1b898a70a31fbe24219ff65d0f9022ae0bd10224491ab2742b8301edd839a0935b92b0ed3910de95b01fe02a2dc9e045a78bad10f89df66ece6f64f1be2422792377042631022c5153e748207551c98fdb1dea979df97d9748508e90ca9047729e5862ff0ae8c650261cc653b70881733c32212b272e3a855abc19120c69696f67d2344bcec52253fffec7850a7a52b1dfac8b707061410d2e1dc7e062e1cf5809a27f9c90645c15f7b5e0f8f1a81c95a64460e676556a4fb4dce0fa5688232909f9d93894f644c2f3097a5aae60a24093efd0eac91034ad2f8334a9f54069f06a4e14b52d9453eb25b2c1b11cc1b2ae40478f525f1e312db6a0293e1a9efc08c3e2edd4ca60134715e2426b39f60f46638e39bbf0266e2d54a515efd6a2658975b0adfe2740a0da2016c58f2675805e5b7185ca3a7bd585572e5924c23714e549291e6a5a971a05425120717c2b6468c04551fa2ef8fa8bf7d930536c3d2221b5171545b0f4ccecff640e6d94ae40a01a02d98ee1f1b976814f48f92dcfd1b101e5bc4c2734064a7fc2f424cf7be481a550566ffcb7228e9938b4d307b52d4dcb20fecbb204c0cd841c73f09263661786e21dd139f54af538b0208a166c656c29f6e741e34ad488f9cc48b470a1a22d198f6932d30493ef4cbc06db7c153012ce6fa38be984ef44799b2661723875af49d67747aab74f9a49308317bbe240bc7d5371e592720c0bd8cc4853155cd1413b24b60d8a2fc61c3965dd14441b9f393dd90bf6477d13d0274b56b06cf642b89ad11ea20d34af6b7c2ba56d99c25ab2844821d0b30307182d68dee73bb4b89e5866a2b5e606681165259063fd640f8dd58e324f35a12289e385f6ffb4b4d573ac63b50f8436a0a4d2ec19b97c8cdcada227c8e92c2a9a074be095e80560e89dbd2deeaabe7c329aa644a84fb0b3f82b1ef963a0a28d557d2d7f94e60855d5e2b5d25e4b3ac2692b63bca182f4292656c8b6e2142b168d226b017c37c458431f209af82dcb9ca78c107eb428ee64c2fbf4b53dba13e1dff43cc90491f788e9bed528f5f4181608f8203d953d1018ce8eef28f11db31c7b3cfe586c110d81ab40277bca2b0b68698f5267a70c7944600db7fa26ef51828800915e8b3d7c0f0723ba51763893183156665a113d5b93d2c3e3adf557295f59deea341cb5b84c8fad689fe4d8c2ac9b32bd9d5a5ebffd3789dac001868ec32610bfc10691752364c1b3c3a23e81568a792d43aa0f3bacb5ac1b6ecd0b9d92496331539b74076409fbc75e70a747a2804851d2ca34643b04105ba6574b98891b7613421ebc8f8065921d5d00c982574a3eb20aaa74392432073957070360e8cc23f6c3cb32eee4b875f602b4b61bd249b6219fa639ab67c526063b0c9bc824d52aaac574274d90eaedc165ff886853477a9e2aac5f610c2e3a695b6f2adaf2694d823efc4c79f5d4e2b6f419cfd6b97bf267c1d0649d94226de2646f72d20c8201fb41c324259f9cb5d5dc1098cfc150f0a1f64cc291330f5823d380890c4a404af9c44c9daef7bb346f09565aa59e11b23f75562fda1b26d7864581fb7a825b66aeb8007a9d44f5d8893f40b752f1dab17b917b714af2449f5bca22f8e9daa880a2531164082991b14c54867e6e7d95960fa726a1b06c2c3ce92d0df67bde806a73b4106d46a423ad8c655d64c14f0eab1592849f735c5ab16658d01a877181c837351db9b4861471579f33bd56eabbf0b0e269702371a8ba04caba2313a5e90fea55195d721713c6b09a50f33f445224437efa8dcc0cc07a95ada0e6089b9d3b2c0f6147117246586beccd5aa7afc4fe21b56e68258e541038620bcbd2316644807f6ab9e5e86fcabe0140784875f8a9107d131fa4de1f608c335a06ce4d9699a44296303661ea7dad0ec0cd42510bc2566a2d284dfe6f4d8a0c340959909204cb69428411a61085ea5cee3875d1d02adc27abd015111cfad9d6b99012226bfc1013b152d01270a716794420c8786f0ed7951886bf7883187cd53660d4af8725272547c5d8230d0b9b39e447bda7a1019b617bd6ac9a3a038640b7eceed4d4dbcc0189c4bcf247a779547736422b6020e31d9daee20074c86928639ea0e98ba806ff2a6df1a5dfca24d4a1c12ea8916721cde04cae639971a6f0b40725f185a8807404989c3f1ef4f43fdbfbd0d1a1f25e5c7c944d85982af986610a3788aa27beaf14a6c058144112b0bc872f25a901cf3903b187b6aa980cd7a64672c946cb555d91c1865408a088d5079c2ebdb77329c927e27ac2abecc3ad1bd7fb594834e969aafee9c9d23b76fde5543f2d73c544729b1e58c994fa0805521adba10b44e4ae57942d881623c19e8313fd4ec8e5464131230aa02eae461d5a284756f71efe4c70776061769f3716726a0c977161b7e89dd1cd228d0743ad8c189fd185a37839d2c9f1440f839d239e93f59a6fca05a5ca8c2f354c4a1d36bd31a5ee11849388a9c323881c0ecc6db534b4d71e12a3964d8a0f199710fa9e57e7d14860b8af5c3a2c11389dee61decf5898e4cc8a6c0c7c5d0058a69fbea3532ddd75663875743c1f37c7719e3832dbf49bf37efc2701e79ea401b2db23fa5d7f1c77264647384cd50547c63ef61e465d3d8a3803c4064c86909c1d95c02e324b1ad20f8a98aaf552619fbfedf938c3ec0a16bc8db3834c37df0b655c408557153cf5c9ecea0b4336f194c1370d91d0150de774e9ea434ac81c731fc85e4ce46acb99842ef24f0819eccca43cfc6598106fb35c8f24be374f6e1df2389d67da5c34148de073bd6cd770ec21cc070a6751f33408d7ae46ac315e985e823cabea754cb321419428692892e5aed353ff4f635a1f052eb15462965c94789ad332a59394a4b1b3d85d84c803bb49b55523d2be84d24557de12aad69e6976be7e526baff95822ac556b32918d69032bef0cdcae704ffc1f3d8fcdf5a4042f335acc9e7184d8ab384fc238e3b7662074ec3d2ff50dade69bb2845c7d72cc49ea06f38ac288f8485b5f4a0bc6fde6c8418c92fb01890da94ba8fce2ebdd0d7d186cff06d50d93c30f6478764cc567979bf6b453f218d548ffe9c23b773c0070d0a8dde0d74cea0279ab47fe65c37a0eb6e9903ffae3cc9a59f8e857a2a298ba9ec61f0c70886126297fc5040166a2eefee03c39db89c26a0d3fc7ff06062ffbc82d49229295ecb9d4653d9335294b122528405e2dec8815ae4539e2bb67309c6f6b1927f8c743d1d2db89ca501cdcfec1329b0d56f67314f632e973b07ae6f163725c186bf591699a23c245a34c15d05d6082eb4a2e8d02d1a9fa1a1702b2b1bbf608ce8c8029213e1026834cafea42b1887d6bb98f55a9426ee9bc0b1ee72d1a9c6682235c0f770d2715ba601d13e0f99482bd922d3478dd7db5d6d0d0aaa05eaf9784b6636a88346930ed0a61a9c17787b85be05ec54edc402a86e9e7a9e0bb754efd1714e18cd4b192a4d59a1e33424c63d0646acf4019f1c8b964421ab1a441233019b085465387db768c789174fa773c6fbd9a436bbfe569890d32327cc99295c5789e128cd12a893457fa4dbe60263a995423b5b5c778a13eeb755d19d1b31f2ee90f5157606aa7b3b6bed434820f99324feca398609e4e3ab1128e8a32faa93bad33183897c0ed7709c61e4b16d094c12b62b9d9438097d8583282ace52811e47985b807e716bbcfda4d69cc8e628cddeabf9683f238d09ee80a16f2a5c030baffc01228f02053c83bf600f8da5368595c46ecda9a6ca08da021c76bced0a21ea74d52e43c1483fdf4b269ce513681f959786bae38026518b0e5fbaf8444929a618448397f206168c28baffebef94956dd939188425489c49dae769088bcbb63282880c8c9411133c558c43f1d03eb9dd15189ca2ad9100b933ec2b50cef0aa5e934c8a674e5951d2a863132725295730e8a137b907c43d9362a384da7890f0f08225c06cbd144670971a4af2269d9b3f414c09b0ecae77094a8fb1ca832d8b0c8869ab74613411bcf3b118182590b4654ac294f85b9de73186f59ecc52d8db1aa02da405f9a6c37ade1776a0a3b9cd8f182f5ee1b1f120b0b4605ce885f80e03e742ef9da60750bfa51ef7daccf244ec21fbd1e1f5c044af62733c65aede7a03f99ca32067d6ca1a9b1d84520a179a8994a1aee3b430b7c6339c3ea59f0b9c8593089bf3dab8a15b72fccb38af5767d2593b0764612f6ddf86f1458666f1f70625d82d67b410ab26c6e85e01b3e47d58aaf95e1988edd041f4fa4c75c34c20de5981f14443a86305e23c1b07fb1313be28e3b03f3e1756338ba9150088ab454c0313fe8161f5982ebd5d99780b9c2e53aa8634d4fa95c6c176bb8f8147c24f6653f0c6923df2348a1387550889e11c7db6d3a167545f8841a627cba092dda16acc423e676982e80f4f5e8dda2908621fe645e2efa9a13217a738ae4cab0edf83d0d22dcfe8808ca56254998b5f7f1c7c36844564e5c9f9512f7a87883f19830665936b8ee87eb2b1dcab3ed895fbac7e711289a8eed4eb11c1226875e51f0979625c07c5c3dfc013dca563f306dbaaf0ea2fcef0f2b9b1ad9a0b0df6879abafb6d04fe6039ebf2e865154dd761bc522f274e80a3bf9420c8d60bb5c9eaf6e2682603e7ef1129557a8ba7e7668618259bd17167fe98a8201432411e63881ef850c99766637b5588229a5126e0d3329aba5ee8b115c47ef46bbca7c442be60047e3c3b4c3de2319951f7925d384f95b3a4c55ac4bcfd9d9fc208769bc185d42d4e6c337d06ee24ba4818b8ed0962b52b1860329d42cc58f0ef6167ab0b4f1100ba92019a60782b097d47b3916bfd18a552ad74e97f6890f0678ce7e33497de0009fb641c67e37f2fcc8ff2365b8860657be5f4c4a70092b662514a12b403fcd6990e92d9da2a66dd38a98a822acec8dec8bdde4ead097d86402ec0e6a56ee2a3dcdad24101696859c6a9e8ea1f60253fba9612c38454acad3709a699ca47d1274905fed65cb035aef0f2b57462b00e4735fd2a34fe245b15eaa674fb948b64e73e22ad0367d426ca637a103555eee3a3ad91cd4f19daec16b9f036b64fde67ae1667c967dd4a4ef2fa53cce37e868455cee16d83279a8d4f0282d9f0150796b651ba053ca0c6b454960aad16a864c641b26db99ac210ee1a2798916c7200f8b26db91d085a11c6c035312dfe7882c122201f1d72a425a3c1d6754ada6ba70aa6a50225f3a880a1275fccb2d623ee2ba8a1241b57f1bc488ab55d85b235196f339b3dcc509a938c5c98db55b5f635062fc23ce6523528b6fe308821c39e351789a252950fb0e3a221fc12f389bd69c080bf4a4c288b06c8eaa22961ee12b443dd264fc69541d26929384cb19f496fc0174a08838b725edfe722a9acc6c8ea0270f22c224e0ffc4e924a8ad18ada0b0cd8521c47d54a13563929b0e5aeee131d3dd00fb1c6ab81979df0ed73bab5fc7c3a952c17fe1f601ed095203cafbdba53c8cdc2b2f52e00bf3f549bd6eaea6f4683581f5da4a34b230256ac147b08589327e343889781a75e1d4db7527f7220dff9707007f093cdae61ef059934a1ed739c3a512ffc43c7aeb598da8ae6adce0ee12c40015ec55d2b70bb9ea19d5446b8f3f73e06e90a22844d9655ae432bfe76ce96403b7a9daa8d212242765b0c2fb3ed0204769313cb3582a0a1e05dd28c62cf703462a09460ffd565bd1cc8e92052bdb0777c6c0f08ef381d6c63d85a6b789fbdd904258d88e44d577062412dc444814ab6495dd7b0de24603961410a14dc6d1157d5b3e4fc97fc240be39e2efb0ebe618320fef83d61e9e513a080ae924d37a1dbc2c4dd1f4a4a184100044f42566e7146de84b4fa63e4f91960d94f6f88c9e9587e7dd4601e2ed81b2de2a81a831f8837694862e02a64f60f2cb8848b2fc12ba7961042b2a99343f6ac2884add5ce523070230a46fa12528cd792a4a254ee200d46f579d401a1350e9f99c3d3d16812687f10498992e1ba98ad47f4487ad2404108081c8030e9b9d9fe99ad0c519d57669b663034eb119126816e38ce35e7e5fedad15e893101d44bcf46f8d71cd65763a8a2eea930f9703dbdd48103370a4b8061ae60e48307b1460c31e5a58321e0efe7834d5b63d49e46139b547964193075abf9b2d97951d6cba698b0b4931ba93c6018a060ec163f83cafa60dabfd09707168189b519f3689461a0d45214c6995643798dfddc0a12bac90bcba2c94b09e439cc888aeba8110db89fe48d20e954a3bb3b4519b8f8b886001724c5eac78f81b714b9c7617cf754a41f2dfb6379764632a54785ad6e4dfc8be9f3213188bebbbe08e38dea075f9dd264e5f17de4f738dc2468364d56b968313265009132be56e1223c14ebf00e36271288c5efff2486801cf7eb2513c2d016960652e008c0e3074f7cade9665008034e06c26d532a7044838690ca85935ca987089c9323954d03467da58b00195756bb48ff857a398a38d3dc5f22351ce59f3085e293e24ead728fec23b89811b516af0b7aebcf44ee3cf674b414627e4e5b274fef83fa0a1673abda096e86c0006f847a63b9b13203c0385e0081ce9025078034712a89452848cc07d704129ac8f5cc90ce0ed0e17f5505e31bf6e1967f87a316e54951396b71aaf4a27604b7b823d935673243fd81dde9ff7c2e0150cf2e00382ca0ef4111fa1c94c12dde710d707400923676852f940f632bb667ca21c2b4c312b9d3daef6f86a21bd530747f4adcb2911ea9588513428aaac412405612b4a1e1cadea8946c0c494cc6b6bc20a183112604cfaa6660e0883d3d5483cc1d389da0842e9681605c0c316f027ea4efb4cb274a1a693d396e36ec02d17fd3ce8a89c2020002990ebcff9b1b64cb2eab707919a5c4adfcb581b0b8ee51dcd87c32295b5ced16ac8ca0a68c7577420ed4e3494e31eed509377aa34741a3cc0ee1defbb24c8a9e9202805aa03fe639031d32a127aa489719f932a68feab2d53a21a1582f864da552e858e3686cb2dbcfadb1a3a3e28e06b81914a10ee2b5c22f8bde5b8858dffd48949a5c41d88b68a67e1099c715f7eb04a5829bf0c26256e90a8c9f86e4a08a4bcbb178f27419515255af021debe4cec335cba344a37a3f6b18ead12cba3ea38355646306ed58ee8a0ebc6d1eeb494725dc6f2781859ba8766eb5c47e8b0e859845d5c2ed2c97c25edbc9d3926194224613fb939d93dfe3cc24ce3a8b1a07ec44187433a8691673a141b3eb06d83340dda759085965c1552a1ad23608c20628ee96195d3fed49246d6b0188fe63c9da399942325b3327135f2e0da1154e2bbdca6e30a1b93dc9274f4cac007d83407f8c3b9eaa71582e9599c90ba3b7d6fcc3da1806306710d7cad28e6dff8bb4dda4e11ccd2d1820e05c9a0719e8a1cba432554883ea6985074176624324a5ba1939022982ee9cd735b0521c31be08a64d75fa3dff69074b0d5cdede54890d959a02f5edf8fc4495004fe5494eaaa5e9036d5cc8fae38e1e383e31161140177e7e47bceb8194a282844ff323b13d27bd8da19786a58d754c62b13b193a2a79c4889c083c6280175757508ca8e57519a621d227b4cd3f6099893a23688e9dcd110780a37c8b8ba86cc927e248cc17b4aa24e8f79103718ae675006757dd6a34e6b90c57982bcc69c03d55aa5adda6a30c9b1b328df238cdf9db46937bbbda6cb39b6b7c314e0580cf2db01acd47c758d53ae5e3d0d5a2023169007d0b01f442675bb29e4b2c7868a1e4f14957dc960696907f2bde1e71beb4f675e5714c2354f9b3a36c23614b4e806a5c0f35ce9d62790925dbe23c7267094c1e9803673ff8e80f0fb274d07ce9ead74c1dfbf4162aaece27e909cbda6925d6c8671537363a6bff0a8d9a050888d62bc61130ec8562d9386fe3b95c352696f1954fc125a0d83dd2b7467d4142197ebda8146476e4370ac7cf6b918f0be66963216b0b88133e82faada517519197106d7111c70008741d9e41090a3f6559b2184bd01f48aaefae208ebd845d571cea94ff420506964da3dc459147b3df62fca22a305d24ef5f77577d90fd3786e361899eafe96f8a2edb23a5d3382bb6928957f47c2cf66ae53a957fa789dada0d717f0a0699a14a084f67cfc0aa53dcb9d48810164433b855678b407aeff64e493d7b018e7b96a19c82cf49c48ad06d7091a88248c8e34e0a71507aae4a36831dc26d3dd27b407421a93a6cbd2943090d0e60b3b872e56e6b04dc79d11e1eaaca6d75868f3410b645fe721350464930c03371fb52d34075e05151792e7bb9ccec444f6d9a42c709b34c4c166e64b4b9ce7d0dd07b63167ac737ddfa9206c503d5c5404e2e8baa2c7814d8ca3fb9092cbd49e0cf4be611ce8427f2f9c4dcfd6a8f2032bba12b8632ba77c3ad443bd6d2f94bf28b0ae759bea33c60138aca0114040dcea4c72b2e76f72e81c5b1e7bf16fe49768beccf16b6f81d28828d0181a69d60ab609b514d03883ad2b1d37e850a96afc3074ecc5935d1c4188037c627ba56a883c16a580d1039c29e42837df70c0f6d7f13c698abfae41f6d80bcf690d2bdcb830e0a9c0d239472cebe75b5008c3330df0ebe556a2e0280510e9b8814b43b3058888fe52165661ef31b31e8592a21da4f59be8955c49c015d69914eb457347499e20ff9a94c3042e465a46145b87242382bcc1bf1ef04531c36e1928c2013c35412944886090390131268a980125241aeb0e7557eada9316ce55794ae7ce829d67631bd07979fdf9a6b20d35b1e0acd3b68653c1cbe22032ff0a2904398802cb03436149bf195d75798dcee5a39e167a60a116466757f2e5758603a371b1efd7ffc69ba8b6ccc6f0e418c5bd50a4c95d7372d7052ea5bf4a014de0bdb6430643308e2ed3cc436eba80916ab5515fc48a3c617aa6ef6dcab32a357553ddf226463a7e704defb62f7db377f1e566b7c7da48db4b9422dfd72408b402f66950430be5589a929a535d4c851cc3a577284b0f2431830c791317cb976bf4b654ab031c2a85e2089c0eeacd36c0ae0e15e95b3083b5383f7254d384afd64182313ac9f3f5143ba40d45f5b10a1303370d0ac74ef9aca003ce1e935990b979551355f10b12c57826ace2dee0ac28bee28db6222470351e7042158307d1e34b81f4bc659373086bd84f2942846105f3fadb90f4774adbe62604733d9e39bb8a375cd63811429b26fd423286aaf8ec1c1f084dc8ce27a5d4771ea17629cc00f8feb5a2e79eaee3e42698acf4fcb275211bd23e9b37824a1dadc16ec43472335879be969672e41112268b7d6db29ceab7c54cedd541410361f8446d0b148797f3cfe005e5ee14e52003737a5a3d28ee0a85b9b902b5122b403fc26fd880ca6a1dcc046c2fa1f10a23a4f404bf7d9602ecdcda3c9f8490ac3375b70043ca3baeb6ed5f6a4813ff95239b7a55614a064dcbd89eca21e79c961a79ecd99eb466d15b700e4c508086c3a911c53b746191192a4118f8245d7556ea3821ef923b72667dd39db981b0c1a15b9cc58afc89487c9aefec317faefa144b8431030e5650fa3a40d86b38993e27ba46d970644c1a24ca61b18427d042aa4aa4e7a13c21c6fd9bced1a19ce9b47719c7a498be94726429c916f5ddd3c96d424ce044d151c1f1ae4cd34b80f4cb9a76f30aa8e418a26d5f57a8e29c1c48c8940d8439d93baaac18a36e758b3c455a94bb84a4b6d0eb53111c9117c8c2eae121d91aaacd796b8d11c20db94019ec3c5ca76ae61be4ea2829534f619fac164062e9bb61fda47a1e1086329ea704ca3a21d68a3c13f21704c01296086d4cfffe222831b10cb86a09a18cc455b586928bdb4bd0a0ab0ce683a41abf01cba07bd5eea3653c99b4fb622e510e9a837924021199009ae0a41ebd10d1dda4db5e8d7328926b70f41328bfe7d43ebd705b3360da622c1ca44d0edd10c067dd6e19b4697ec96f307587b261d564ab2f345521441dd2521a62efb60af56300a1de9d803e79b4873568260149ab608a1e17dd604b5e4e5851cc6b5df20f73cc32de96224b22236975d805c5a6c6630f7e417d425ddc70dd9ad3c0bb7425afd01fb297125a99ab5db530b433d42244b85f648878519f7dfb2fd311893011ba06fe1f702645e2fa39887b84e06b206d53312ec96c61567b59f14392fff1eaa51cea458dcc6fc9920e4b0cff5a24016ee7fa337504ef575562983d3690b06bc08acb2385d1b27d38497d7b6f4ee3718fb2ed3bdc48db36d2796aba9430f80bd1e057c5415ff84dccdaade9faceb8da83c55bc422c8a39e563240d3a56adb0f935bd5b478fe782d1d28204a65801ebe7ce1cbc836b89743f0af6b954f3d276a9e2d364ac52ad994e8614bac2fb338f6c0eb8061891bab86625c4998f2e4b4a0cabee530a7d07bc95a2df566ff703627b904bb2992849f0a6b2439dc17fb75b73d04c679aa42def0b1180ddd3b7ff8202ef6741ea6cb4ae4d1d0dc58d352b80451bedcddf6bc51c34f45f643b7d9b2e5ba05b36ab67cdb6f2d8c34350fa3a44d3531f40d7479174e1a64c5733114263940ccc01340db22279feaa51c98796ed2094700348e92b354ebb637c62b1434cc95ca53d534a691bc7607de71932b295413b0b4648836cab239ff8d91c2958c2b6d04ca0b2c2a341cb9c360c74d47addad0cafd436ed9c2456617a14c3ccd4affeae0b833b1c9d30219cefffe3745a15702eb6791543b29ccf4bb024dad8a35e4bc50053cda0506d3a0402b3ead8543e6db6c53adecaa518c8db8783c8fbaf652640fbf49575181f81ca5c9ba3c73cc557a67454782a14b1a04548ff6cf9c8983478436ef4e4eca16449822675fe3094baa10056563eae79d564a92827dcf9f0b73cbbaa9a525bc604a8fbbc1e3245b67332393dc7dda54d1238d758adb5a0eaf4841b64bcd2f153e388022be80173a1e942919fa9cab9b49644e11c7628996157bfcd5ba9cfb0da3d8e075ef99069c573b31ad12bdc6f6cbc13d5c8c73737b9e1511c46996e4b519bddb374ba866dfd61e7eb6108db073231f013dd7faf140289ff204fc5dd604049f5d15ec00f12ba80eeca7a4a9f0aed700146643467942eb71e4249d8757d46dd3ea3c51dc86a5384a58e384d20cc21be398768d30bac03f6b089b8b476349771afbf7ad9b5fb458c8dafca7b6b15e5662a0b8f7624bde342b7eac557fd18bed85b5a414dc727bf1b0fdfe7f56d34f83fdf067f54f3920d00a0dccc3b8a4ff67a0622a9a37879f3f14d9e68854426542cdabba1260031efce480d6bc6e7aa98dbba238fc40ae6e0e170255de8e98cec20996c2167ba4debf9ad2772907aa2dc01dec4c18421839cf343be836127d0c6ac5fcad05d483c68f2d4294c6802cc19076d425387e05b8d2f6cdc49609350499ed8313fb78f6f5486bea9d17242f9a16232e7aea00cd496efb9b6bd3788f1ad20046f99444fb988df990bd8f4cdad1a1fa3e20a12a8f4b12188e2ae4ae9e692dfb7b2fbda520e4560700e4dbd12a48608b6fdc4360423cde1e9a2207d02345e37206e92149ba7c1c8f4c18d090afded9569fb26adcfd1792cf47e518db1de3820eed1740ed4f9a36b5f030b1f70488c48dd31031d486a7d6f6e38b6d467fb85f8ed59f04695b4a474e9e6079e58832ad85ab3dc204f1641bbd2686bd40d5d048e905bf2b1f9836af5aeb368f8825f0f52913367e54044bc9bbda4dc3e962a303250a5615b600f0b74edccae34617e71012dcb60a2fbcc24f065769b0bf0bced295be68e2a09001f3d682431233f48e6daa45e4749b7b2e67f325bf775215038f84011e88da3e126ef78627344ee00d8f16f9eee5a14b71248e23f86e488277bdab0de85461a8a4592c439add9c6ba2e0e3303e7e0280ac3f7b348b1b6afd5797e7e254f0c3a31a1e667c31b7f264a08ae0a7153e1519f18bb661cc8c1623974f11ad9b1e9ced7077dab3562389a50eb38a716bef78a83806bb43aea5e50ee5cd9d2275c1269c6a6084b6699e4f56fdc3ed1e0ac84d539c437593a2e162ca54c6fc0ba3c2549538987d3bc404d695e9d70a1a32b70640ae49d3ae53e0bec1f63cd87c4866c6a09e0f39b4320be4a7f5aadc3cbe00e590695f5933ee54e5af3d72e7eced431b0fac8defb7f69cd485059fb1df93ee91f5d8bde3a5f023d3906e1f5288470fa9b5b272cd08ff0ecd785c511d77594d98dc31ca9229292bf3d6de9b23967696070c5234f092f2b2aafc972bef67f9bf983ea2ebb2475c57632ff74fc6a9ae069e76b2cc60c81b337eeec3bb46b58b83e2483f0f423c197fb87a7ff4d6ba8cc3e01d5262ea22c492539b70c1f0b68a1efa8c71bea080c76ea22388056a6a8d58d656942524903b65b003138d980a21b88ea1a956cc9ed5b686ab27bdb5e1a455803a50eadbf89f9981f311c8269166153208d251a34bd1d231cb3f69f96ff39e939b1c5f21e5251066bbd3add450c08772093d2e6fa17ccf31b89b61f1f69f530d6b6a73b9d7f7429ed5615629dcc79d5da38fa7604549c7c3936ccbc82fe470a83825426278abfd7aa3b183067d622d4bffa29adfe131e39c5c3975fedc46b4d8486240127964798d8448840a19b63586bbcd52f5950f3644ed156ff409b73db62f3651a5e1bdaa6ded6312d7495b7700e0321fd6c7429b1aa87778e8e16392faeee9babd3adfc36a0f1b928bef08a2180c7ca6bbf9990fffc887e6f864863f00a170212e44e8e389290f47d61cf4c2964139947d6e374582161a603a28482825fdb8785fe5906c82a261fb7685b2c288ac0f1f50fa06513029da95ff04252731170a90fafe3c8251292dad53a464459240f6105b4cb1a58faeade338454a9c51a21763a7b955ad46346bb2725bf217f1aecf3bd6236844be68428ea2977666cd50d595cae6463551f0584cb7675f89f13f1ac5e57d5273d3a6a5209cc5609ad9420ad0fbab4ec9d206cd5b6601e973adbc2801d068360c1bb2105f68d7542b550f3cb6d8e180ea599809bdd44e6450ede7983d7a19aa7e66fc3e178aca7d7d2d15bd6c48e7654b26e9d7f43326f0ee255e20cbf929e4c8e17e7095d964bd725e56f93c1cca2ce9e0359ffeaa09b4a4cd9cce1933353766e332bbea2d3789e25a21ebfbb3ccf5766f5d17e2418cf9ab90e2fd9f9cd4cacf130863fe48391c672b56d46eacd00e752e37692c3bca4ecbc58c6bbfaa16766ccc67e26fc6b8b69fdfec30488c5995e3ecc50ae8f40518f74f008ee523325b3f1486f797d3b4fd16973c1cdbf6cbf31e08e93e815fccfcc848e53032e3ee10052af06d1aacd043b24b8a186f19258313a693c07992010b0415f6a50780b991e6127844b80b95561291ea8e9f500c9d19936b883899876d4bcad4fd8eed3b36da809ad002865583692116914c0bbd13d2f0e3f9a41945b456b09bc02e471a6d166e9fcad7803b8450414b5bfa5026c3b6e7d8bb842ec989d27a191f523c0e92886d6596315bcf77b4fc2b5b3435c09e1662f6594bca4c5f0577420c87ca3cbcd8efedbc3dcf5a8971a216718878a75da34dc2d6318b0283eeba784c206eb38e9482c4461048f69b2c0599724160d76fa50c3cb69d57895861727c68f29612feb7266c21f6389f44df87f4a7aa1dd7bfb3971d3f59badc0f5d7a28fac4f9dd34ff5f4b02d7e3d44678c152a4b03ee89c5e178412d66682db29a4924fd25061c6045d6501616150d8943d9384a3c9ce94d109319cf894853c29f9bbea7bf031fa701928c84d0ed0c59d04c97252ec39eda492bdfc4e20ff0ee0cac680a83ba90e161f781a1b2c88a9b8ceac600b1f2c45deeb18568c7c6a27878089fea4b858f715a4279c45f1ec3fb2fc74023b19b57f4352aed19068896224a7f0a3273e8488a763437121b131b435825a79975370bd0d4a3e0901cad184af811c810b1f6b61af616914b090e9e090b617e6e5968bbaa01b1349beba97dda4ea559f19cd95369af163ba9908d135332da994d38f349ed4cbfc852c4e8f3b5f639a3f6688502c0c47626e305ce99bd8cc8e4510ff31bda9b66ca30f7c0de0642f973794452c384ecf20d0180a6c55dfae9907b00ee21eec2fb400074106004259f4e187906eeabff9e68d03684e2c81ad4a7d019d532d8491d537daac7c106ce66f5150c0596469c227ca575105b62fe8649cd02ed9049d6478c7b2e09ecec12a52951ac4f6e226002557f272699e83d5cbfb345b66dd1a936ed493db80a2048cc49ee49c8ff9191b5b26099713e97721315176d5ea6eb94a090d0a163fc64dd07544d37c8f3af7a0d14a3f92550a9818f54ea4c9c0c2cc90b543fab3b4a1cca1fc10d2d11eb4c41981f7db51db89c1d4c50a8d3eb50422da685925630843d488feb372049e031d3bdf29be2208262fd8506ca422ece31f5d7d665afaf0bd58ee0c3039dc32314fca57472aa3435d0bc6bb95775235b777d20af1ef0e1ccc4dce97a3bbdde09637bae154eb412ed52cef969b46eed276eff8d004a45def51f4c442ad1d9d1f6410bf2831fa3fa4d022f1ffa1d455e775fd6085df3c1ad5b05a02522e819f0dc0a13dff0bb27acbf7e75eecae5161b47a4b0555ec6eac2ba89842c97173e5b551e157ac2602b3dc8cd4642f7c1a29c4219969df06b1d5eeb83c25fdd3a22f9973223d284e053cf27ac1b4f6cee584d635719767ba0a6e6d105dfd72a0f567ea0df181293482be9009f82165bc519ee51fac338c29b3f51c56483cbf0449e09ba5873f478c11e9fcab25201033c62404eaf678f2b10c8eaf2c08e51a8aba3520e090f48ca6d10cb8ad80e13191634f73b9191a8f1a5f0cf2fa1790164668e781db1d855d78802a2d4fad2eb8c53a31a862e27fce24a3dfb961de606836e5e6475dbc00979fae5a7bb1fa9a2cadceade8458e7bf9bfb97fa4c5a994459b5bdacc9dd9b78270ff802781c54d936d9b173740eb7016dc16eaee914e6aab46473ef235a2f1d946518fc28be25babaf0f665ee373a26909494f2513e7191101212232a133e0bb55324f115f0b079c6c374611c88970aa8af5356c989688eb6cd68c49db4d72d667d7e19d4820b41944aa03f3200c887671d3138d99ad3aa78123bd3de753500e2ae7c0b33273a6731f2fbce96d64c6163fa8cf221c3ea9271dd24df4103424f6c125351657b1c11e092a07cf4212c54140a0f2116ccea23d7c8854c8cc11bec1f74c2a448dcf4572b910ddc70fd3932b7d88190aa991906d3a314c6a49c349a6f7a98e575da5c21f9b0ea616eab72e7cf33905456ba2f54f859f5a34a65b31380c07f75d936d48d231eee96fde7355a838743dd5c8ae88ba4f1bd1a27d87a8123c7d871bf748f74f97ba491889d28426b2d6eeb5fe2099608363800dc037478a736a3abad8e3001c44815fd811950bf3cd763a497f430878de4fffb2753bd28d2b237d4e020444836af284fa733cd1d8fe75baa43500521e89020b4e39da2efc6b0e60f403ed0571a932973672096a6662cf7135c8ee8712006e008e03551fdaa014826703fcd50a290290610456e32f3025c5d659ad1a3eaecea58b9203865bfa1d51ee0626bcf71651e2e571a9052968fb1ad359e539e540ef6aea406155646c342622f9e8bc65b58d8c03cb6f218ee3121b449a3b7832e710bed4e5d18f05289b9e1e55d4685642542a6224202d2b6d2bbb1a08b8ddec68c9bd60691671e103937f33630f76fb218bcc89f541c87c24ff15ba964dc422e43516ef8015179b0c57d2bd7a036b6a1c36517b20ac63977d07e6c0213ad8c70db16f770e938c5eca7d7107e0c718aaf7421a91a79b8f433a8613a2534ea6913f2e9f17528e26347684580b0586073139f5f32145f8259be9a4d226cf772745ce3e395dec4c3bc099e102cbdada925a358bc8cc8bd8fe8171866bc52bd1430cd03a500fe1fbe2f9018dede592a76ab673b704a028b03e54fc30f65d0a621da50f8391ea38703e624f0f7fe3e43e799f64a53c8c3d3aeb6abd3198b3a7ebc1eab7b067f6b4ba88789b8f7fc60fa0ea17b0d1ceeaaf8e64fe22662e5fd00d243c6acc6789a8280ff1283399bbdc5f1a007eb5348a9ab6fa084fe10bc4739c482e8be3efb6e2011a5faf3def2892dfbb914126b14e1d7595f5d13e35b0ad5551507cb43e1b2a992d29d148ad81b5d695ca6fe33b99de27c947e283b9f14678c56fb115ea16ee4c6d381386a070163eecc058c7fd39a0d9ad5be039cc741c0848eacaa592878697caf8a58633f3800f9850bb68b9a8afbc03f3d16761df15e00768089455ae8faeadfae16dfccbc9f75bd9639000dc9b70d7ffb40f5eac1bb418d00a7431ded4954b5e01d20766d967726b974bfa5d95556038bca8d9a16f4b93df9323180231f6d09bbaca0a74dec20ad74b172e2809b23a29105bc3229e24971390b1f35d2d222d4a503eaa3b0c913fa576af7f2b78f88e2994d21dcd12ea5886ddbdab0c2bb6bfec72e5c738c0e2753f847301fbc6037bfae55a9fcc7b182b91aab55fa60404428de1c261f5d3457e67e90d7d181f564740bcb02d032cc282f1d5c118c6f30e0d846916d4f2c29446509b01c1c77a55ae303d53558130909e6eda5d28f7b06235ed94b4520feebf24ce2090fabcb0c36b0670a37148e93ef3c941a5fe45a8cb38de05714404c327697e5f060a5030115e5591e79c2690dfacd3bd475de04690c390955b5eb2fea578497d098eafb459bc977645b3b260ccc912ed3effff0ad812bb7984dffd921427a89e6ffecba611ffc0055e833064291d88c229e16d066f1631596b5e5b59dea8d8627ff4debee28f5304ccd580b80206179ee117bd0f6f082c0793f7017edf4fc4a3d78db1ee1e017354cc8c0098a1608ce4ac129aa58625b811c46c2e8078ce66df12e14c67e66e0ac141a47b41aacf67419ac8f49b5852646d2c17b520374e832739b75528d3d9999b4290e98cccadaa810b96188247eb532bcf0155043a7af11c064e88a9505dcdf2694795e65f50ef673f88bd1690320f7416b25fb5088934d4bd8e2ffbdceb6c6cae456803dcb94597470e8394c88b1526772bcb258d5fa6800b9ecf6ac1b61d02fdb789f06b6ab8d970d76878931efe437f5febc616c705297f4de1261e0cd025dc1c2a9cba4fbc82dc2201391108a37eecc5d2580850c4e215a0ffb9c0e453ae63e5f0ed64bd7d002ec9f68f8249ab6417caa0ec64194b50a166547756fad760e7335ef1fc7af7d9ff7afb684d3550215189d1fa95f3c76480f99a89c6d788d83989263fa1427c7d4470433c4a85a620180893c90e1d46a0c9b0476f1c65a3717c1af5c8a106264bb95827a8040ec495a2d4a0cda746adbe713e06dc5031ea84cf73879f017bc3ee00e87d91572e5b7b17736990ca3b8dce443e76b96acbce867c61f9da4e78e8319de7114efea54f6eb420ea1b95da290697a8b904882bcdfdb9418cc60d2a27c23df63eaff831a3205f955693aeabb38d0b1d16b1535acd8a571a9b1b1c3ed84ad2f16d96c8d0c3ffde56e982ed41bfd055b9ae4aa027095f82587c3ecb9b9cb40bf5200bf0a2ef2090a0c222d025baa8b39e13648676550c3a1a18b7dec5f8778eedf1d6e225136d14e8591ea009e91df50456fd460155ff3c7ef91b609d5c0fb70a92eee01bb0681852cc42afb14f2a1a1f5792253a37a3793a8d571f494ce1cf18759f1a7ff952681dc3c5e44bf74bb874bfd84bd174c3d3e7fe743757acb8b32b9e9b5a4a9bb7f8cce9c58d3d70f2f02cd851df25b8f51e83f74b8ff172e28ec87003ec44c539aa4fdecb1ab0797691b8cede5689a08237e5e5747b86f819da6d955910b51ce782646900c0a65cde140e3afc5825938ad019663cfcd1e4267925f8fea8e318c0b93822257a3a938b7ec194594558ac0bbc11802c4a96150f4630eee2a6fdc95135d196232df42fc960e68821500680db0af16987cb9c0dca0f6cdb9c8535230ecc547055b66fe03f205a60633a6ada30f2f752532d6e233de7924762f8b70265d944712697915b57e4fc25b1781cbe699823913c80e184979b1f1cb37b073e81fb0e11642c0061aa8dbded77666f35c6b1f989ba63f7b82b1e34908c6bf407dcdcd7ea466b22b1b896d3711eca603d1ebb4f1ecb0d6fbdfd3ccfdb5abc9fd196c70b67b431dcbacc98bfd7846c12c4a8ac66ccdbee22fb738fb7ccc122bcc6ee229450359a13572ceb0e02363484019df2395bc83d09f7d4f5b8e7932d619e789a07e723c9f8b4762bb7e4097d1f193212ed80fd7ab3c20a470553b8f4f1f9752c26f8b3d436a542976a55185a1bb938b03e9f1800b8393e4c67d23cf56449784ba19efdfca771585e4977d963b18f889c8bc386150b56c10acf8a8da15db4927e0a16348ba0eba4d001b52dcc517de996a7145a1b8b28116f495bf1e3b2472e790cebe7051e705605c23eacce41376440021002126c0448ccf671d7c6748433cba1a5d6fb2c859daa8649fb41f81f9217435e07a3b44e61e333a896529c5e8221121c0e19db8710f2c9a525e287c75d9096638aec2ec8a84c2a7ea6312fe59758ca03c90b79a52f01335b0a87b718c2b8c5439694b5ccef2dfa6071b3f8103498cb06af1b54be59caaa5d61c1cc3f51ae76cea70c8936832ddaf5799568165719c3e414b8a4bb1d4078aa12ea040ab9a09a086e8daf6369aa66f240559b30b354499fa2c71807216179a03680756417d1df503e60620b3a27009f9ed32f2ab4162fc7be255bd45fb45f54c8eff52380924d733774227cb83e1960805d3255357d017186fabfd425a496a82bee68f3a53325e3b0799829097c513d76b5fc22e7b97f63e164c3cf945fba3e324359cc1fa0772df09db03daf1d4def1656ecee0068687f7434672e02375f8007347f187a37dba35a4087fceeb1fb06afe0b03457876ac605b7788a3186f9403cbe38a5c7d9bb24929723dae527f2e2f055bc3f211437b28765a7c19705bdb226fa178779ed62eecc83634c452237e77dd1749652cad3cf2f2779f0b11fa003a20e3f12c9968320eadcd474e59999ea6ab7aa32bfb25f2625809f43c3952e5d0a02b7ec4f6428ae3d06459c14af8fc1983deb8e2634abf4e87d9ce82f24e0094545abd02cac2407291e42a16ebc2f4866e01985ff1f60926786b85e32103d4c19d8e37257b4a3849c82d981e643b0f526f365da1d4033d728003e9e9640d10bb779d1b2ff77dacbc9458a4ce2bf855c38be9690b16b565f06b65313104b63d8c29def3ba1e096e3f423939a2887f6a52f8d883fdffff597e34f54f96d76a13de4afe8be2fe5435b9348202812f096407b1a6877928fb007db3e11ec6c35f2228a249e68b9d452e8420e5876a4064ba19139c792689fb5451f450712d020ed16e12d43c92f778d38b2cb61f145bdbea53b222b5cba7f1becbebc5dd7805fdf4070cdaa5e4b03a37df5d7cbe49d540abdfd0d922b3a5f19bb1a9119c95f8daf1d994ec6c1a159d3a951d61054bb4daeaeb447510255d496ccba9d57f9995e4c01b43e0234bb60f5a21e723061584f2411ee56d7ee8cc88232537d19b50a3f15590196ee23ce041240641f7174e9b4084f679b1320ff18a87f30ed1151c6546348d9d353d1a4aa2ca0a27d1874c23c32f34542e991b1301f4d4a797825011c28d6f55baa2f19abb447f762821a90ee7e2252a3e3c11103ed13e19d1e5a8bab347e86f47de098d4d9de6ee6f304c7b9c44509c537adae5f44248ea7e3629315aca807035728d5437a08d3d5cd279f8782b8444d7c22e5766758e6127ed99cf8ce7f585e85ec70b18f17e09a09b22976492496c6fda980bb3c63ec317379b938add2019e943399a47806577a41a35be67e882b65df8fb76702680dd4262b28495c2c1d8f54086f9208d9e47c12e61b2116ed6f0df792d877a1d52e52df55fdc7a1d9775acda4141443b73b44d76748f236db27e3e46d5792e6b808994fed30aa21b304fb88cf6e022b5caa84f66804b51499e485ed082517035301ee9e218a4efc76d3949e4064faa24146206bb87481e7fc963d7734d315026d1b1a5f6ef5e68241f79a546cff41e838c133b114426eb6fe61e3a9ff8deb0fab6f593f2f699739b9ae91c2c34bed8fd6858037684437690cac2b9003a94d72b45a13a97a289036206662d72f333b2c0604ea131ba058200e33930ea57f18833e84c46702da5456b6282a6cf9be462df67b051aba6e131daaf817e5d24a32bd97c455e6eef544010882b33379ac8fec30474f1b31d575b08de3b06d542e7fcbf81a0b3e24227befbde5965bca2453140a9309ca091688c5e69c57ee18948bf81b89e5eebbffb8dceebb973f3b706c2496eb0e0ffd65b326f6ed62703f8fb19ff941e6c7e6fbccaf4bf25f54e4bfe45ff9e1146d04b50447a281fc2461f6d13be4f4978e91d04f6233037a877c8f6a9801fd92f4ab102dfb57090229c133f571710432bb8464c7dfcb7fc9bff2c32ab4bbbbe7cc6772339106183329a420dfead04e642c557509e3f4f4456a8a4a8c555399a52c5a969a9a87d3b7d3b615fe4b47ccc7698be6e4efe4442ded3a7372af4139b71f352d8cf368539a962f3db20952d316e7692dca79a4b42a9ca7a1983c717653729e2a2d7bb80dc5442adbdfded3341068be043bd8e1df9626f4972cb2bdfd716be9f40e69dffe709e968e2d59aea0d453c4cd4e9822e3647f1e5ab2d7a92d65711e6ac49c73d65945a92d2d2d65bfb0ed27fea6368dfcd59f0a66d892737243cd20955fae204fc7775e5774d1774a1d0fb9e8bfba1ff2974f81967d7dc74f247b9f097b3d1221f9df53a06577c2ea7f7848e231047ff4d1642d63fd683bd1a53d081356358ca40699b04a2473ec12f2efdeb12b68e65d42dc7fcffdf752d661a61060b18fa5fb96b9341c54e4ef05797848cae4d8514176ce2967de1300a55a6b7d9985673681a9b5ce4d9b4eb3a9fed4526770d1cc5c729e86aa1245ae3fb3388f005c9ac78933efb927fafbde27ce66de629790fd99b77826d997322bd461282e4e39c9ccf42f66d2def39ec353898894712f65dc7b555ccfb5bdf72dabdddf273233835d9b09339b38c29109abdf89559e28674439633df893855d1bf8434f1b16eaa4d38455d113975cdb7f4f246b726ddd0b79dffdb661a1eebf0e4b230f73d8e2f9e4fe2511ebeeeeb6dfdfef23e3c42b7e5b6ee7faf6b99f40414516bb2887396eb414ff4c58155df4bb988b7ef744321f177d8a85ec77b672956b9a2bf7f60efa34bd83bec3e86b3b55facc4266772b75975c59b9512465a14e306a2dccb852840e5dbc50b546bb512506d40a94a8323be2a109a32aa899556ea8dc50b3259f017f64b17e0467debb8986fde8e56eddf0b8be3fc879c2ef17721e1c8f63b9ee51f32de5953b26a1233756497372e43c2776ce51c43eadf448cec1f967dee470c7960a12e1888823048205c2f737e23c383e4706576e129a5d3f26a1d97eeb5b3f9ffb16f7dadf16d7b23fced9778945ac105193a31cb2fd28bf653b93d06592d03c5dae3ebacf830c2a6d1481420a636e9011210183a2ab25379c84f145e66e67d074e5fc66dfced774e5c03978b4748699c3021040965524ce514b9445a250eff0af112b0026fbdf19cb6241f607b1c802a9c93451467f91fd3b1c44e54acd93e2a824cb0f6aa694a5945d480de65426ca21596f6c53503323a722d3c38c4c97a9ad0351aa747186154d98b0a2032e27aca04b952b4c20a9c0b990a794d243d439585c8bc5ddf2489b053d6710952b25c10c72b03f9fa67bba9a3ccee49993c71949d43be6cb2539dd444d1ebb4c3f9569e37e97c9f345983d764b0c5db2280335850fb2f923cc9e0fa4008289941464866043363f08842a27197f25f90de45ffe7a87fcd693db5fbb4bca1a8972ec8d143cd0c381a52a9be86f0fe8e0215f2a9630c092cc9261725add2891152e86c8b2746485194eaac0610d355e6095c4195f7049630b1b661b406ea8a22c72e7c5152e83941422bbfbd65f8edc5055b4b8a1c3ed30844261f6b57434c80d85c2156e70f994909ff38420cc45a66c766a5a5292486ee42f39cb524978640615a140048394232d8c4e60034a13998651e82f2e80819443174f634c91512cc284c91f9b2aff7811797c39e5b19f88c8634f0d91c7b612228fd2484b0e42ba808c185e34b5800c3064e37b10a50b325637c010c502d9e8b30697265eb6a81045081b6413ab6085263d8c81428d20648ec7aeea379e6003ca4a171ab4a0201be54ccb0bc29c20658523232b64a34c229a314951f9c205594c794236caa62c81d8409832cab872c60e3f4c911135354983072788f842831632f96153142a5e82a0a20919910e6a3c29030836be70814a26c9d090a508274ddef832840c491a4bca68a1aac8892b64f295cc9e9eb2a252224b93182f52c824912a292ab080810923ca90c90fa2306981062f9c686943269f663d12b72c6e2a81e94f6c9ab8ed2506555e6230e5250651f64bec033fedf33c24df6fef9580dbbe4f043116018d90eb9a00ebc10781057ed6fb4f2cfafe1681df13d6695f3dad03a20ec6302fe013996619fa894c5687d5a163e705ab9bbb5bd0fb3e91a9f3cd07af779828d3b6bd109abb7e0d4181d6e1229a90f470376c4809b2f623976d67a2ecd58ff3de6b5008f724c83279d3c48e89049fdc9d80eee5283f98dfe1517aded72010ed65de3871a4436c3af08359a6cca474f344268fe3dcbdd35816db7669655f91d4ed1acbe2123c6f9ba6f94b295ddb36189e87121183d73b3ed4aad5df86a020d7d7b4cfdb3e4d144267b3129c6e127fa04d0caee7f1fba40ffb23e7a0109aed6ba2cc1e67c5123c5bbbd59f4088905f11edb51fbf2d071dbf2c4408c5d65fd4cead4e979099b79f79fb8a84be58827f20cb640d57a981bfd719d4e8565f7b5bb3d7eee1a3b397e0990449663ac52eed3b6bbdc3bf3e2d525f7b593190ce1aa6da8d4111938cf9405dee8b3bc6720f7dfff0aa4a1ec307d08ec56c18eadcd6130fe1c746551ec398bc93ca30eef8b1e1bd74f864ef6f4bc7bbfe1a72e28eb7e5c61d7b0d185c4d714d1ca47d73c934f9c7ef84d15cb95249da209324d217f7ea5e6dc9e3e519251299fb5d25575722c9a22b8974258be455915113f635aaec1bf4d56dc25f26fd0c11c9468994ad287dec6b2f64b5e7f0101eb2d8ad4fec53ce820dbbd4f496795fdc515245758f19060c669e14dd637e6324322391ddfd528a3b764749aa89259597c41d3dcaa39ce74b53aafa820e8f2f0ff0b1f3fa0f2dd54f2f809239f0197d69bd9f7ebc6aba507ded2bb6cafe55fc78238cbd5e3e423e3f26135429294c1ea912cf4895a8c234de3c83cc99802c760f2ccba7e91e393920d934d9933fc5e692a918a4bde63e8d26fda177385d529ab0db44902feee84a54c95f34457cf4898a57a429c170479b69ac5c37f2974d72a435acf8486b8042812993531356c4a54a4f2fbb461e5f6397a133f4937c2947a839e38ed65a8bff9daaa5b424f46febd218ee68670f0774e23109cd1c84d11c78a03d9132b2ef2e4f79fc6c8360d109d21c843ba1ce17a11a46790c1f205b06717d62feb2d21e4b4b27b463aca5c728153da4f1c59d9cd248cad4c97946cac516aa97f3c8aed5d6be499059fab893bf9ea2ee7871f87047eae4347bfc8586f94f79b221eb90fd9db25f47ea1d926ac2c0dcd17e944a092b344c76a519bc49669156a46c9def775e311e3eb6e906fe3951dc917a67dcd195463a7b6492d2928e0e8ea93bb65aa137512c3f62682ce5d80c5421135776d504fa0707be813f4d0b774af9fa1f1e4c997fe407c99f98c7bc72c758def91c48770c431d2acd88ae6165453f8597c999dcb66ddbe6dca4ac5f9221dfc0290e26399b33af288597d5df1ec93748f20dfc713471c78b83873babb45283fe1c24a55fdd6cddb637ea1b56526b39ad75ed060251e9c3436243ea3c325e12b35b03fafdd56a5fe0815bed709873d2dfec9c9c56ab1b9a1bb3033053aed3342663bae9d14929dd404f893b5f7a9fa63119f36d4f15049ab235a034839ac6640c8bd2e95c51abcb4dd14dd14d51cba9e5d43ba3744da359fbaa6cb3f77dad2e977e4b1f6d67cff6f66bbfa8464196d69af9baa50f4a91c80e34d0db72e953a4eccd481f33f77f2010304b0c0210adcaad8109d37311eda50fd95b802043903ddb867f481ef9637791dd22fda8e1ac7ce2a8a8362d95544a4aa5a453bea6e1ef1dd48bcda969bf695ab5562bf394e57b728bbfe47b210bb7bfc1ee9e70e79444d839cd1e4e6a46ce23b311771774ee9c5a4e0e0201c0a81961e07694145df22b77541460648f7e2da7cb49f50ef9ddd207ed459e21f526f85b68da2c4b10e8b3b8131c81f6166f78ec8fea1df2db8886e42216ee3ba7d939d96c67e7e42ff963e46b4df23527f99a92b634f3c483d73b3753c47cfee5edbe3dd13425caddb7eeeeb64972917e235fb66febd7da4e20bd78fc7860ab789f2e5152d537fbdd24a92c3f9c02c5ea6cdbb635ee60e636f265ed4a4a43cce75f9b184243444243446d25a11c512265f6be885013e6536c8968f4fbb3dfecd367babbcf84f9f50fdbcedb3ba45336bcdee99b29ae945a3721359bcd96c83808721e99e55bc0791a4a4a962cbf27d2941e9aa2805125cba6b5a192b6e423a684c9f25fced35054923e1d595a31ee94781cca633ffd723fedd73a74987c29a54783fc20f2633e2e667bfade0cfd2afb7e73dce4defb2e4956c16d75c4daef594f831b3f7dfe7e7c657cad9db9170c4316fef0cf9463876711fa9b3843f89e857bc24200dfe2b15fcb6d24b63d0581f01344dcf1ceb727a6dcb43aedb4db9cd64afcbd636e16bbaaabbecd15ffd0279bd39351ffb6c579e4d62577bffdee7b5c8e5d13d89e7b22db731e9190f7dc7b8787868894803002ab83544555f5d4cc73ef342ee744977fdf61fcbd092ec73d6133efc3e2be85c09f6921d68378e8155afbddb797011627c27d874d6012a2f9ee4d9879ee899840f3ddb70c0c81f5a0cb674497e34eb4794eacf9d613c9ae74d28c2a1e924b494e4b4632a9256ee256d3198d3209bbe413c96e96b04be2a0229c0f9f4886e35b56f3a3749233dfd1e02126219a6fe121593561fd4c42334f8387e4548787383c24a3b8286eaa933435e21625b64bbefdef3dd1253fec92ef6117551659d6808152cd33095da6f9433d7b6221ef6bf0907bd897924637f23c69691a555d4da32abf0ac50d87b8e1dc883d6194f3ab6e9c46adf7fb434c4236ef193d4056d3c243ad6712baffe1a116f63b35e436380529abc1ee34835df38936a9dc3f7a14cdb78c06bb26763cda4c24db9ee6ef3309cdfcf7dff7342ff43dcde724f4fdc543f3c3d369c2fa67963a912e4d583f27ce240e734b2674d825c47a90c32e161e627205714f819611a957515c30c30c51b3996c464d58ff9091cbba4f01f72076f56750e5b66c4e4d586f692244145188e9b00929e0f04c0835a24613d6ef7205ddd92c63f1f0ac9ab0feeeb9fe1c50b701454fb9a1c8235da249d408c4bf39659a94fb3398e1b6cc4544caba97b2eee7d584f58fb32af7875d42dd6397e3a0ed4936ceabdcefcdee77ffa6d4bf2df56f485b52f763bdcafda3cb31bdf25737a5a24e39bcdc9675321a2552a909ebee8dfb6d75d54fa9fa69d5d622d23c078bcd91adfc1139a81c6765287de884b3e7675aa981bfb3726cf6744f7fe2ef1dfe2fb7d28718cba077d8dc3d7d0a7e405f06f197ffdbace11f1bba68292514f7392905815a4e577baa5573dab6eb1d725de79e273d277f6dc9fd4f5d47bb6e7a273bfa9f045bba539654eee79133c31d79644929edf7607027c6ae2c335126ca33c430e5af003cb1e33cf4f3913e3f1e8ec36ec30bfbe5bfe4df503eed6f82d3c3edf7c6cc91e6242ebfed95fc767717a51ca341a09e3e5fb879629710f726ca1da0628c0acae0d2c20eaf1e8a60228313269c80e14fb3477e83e0bb79e477b77fd8964a87cc81e28e3b3b2fefd121933af28f7f5e8cac967039f2e28509265546514e6414815942768feed1efee7f678fd64484d5194d9ebca08ae88a0a5ade98c10ca5324bb4f0babbfbdaffc0dca22a6a8872250a2382605206972f505190a2b02246e632647bf4fdaffe5b82e792df329762bf70fb353b9664dbf0bfc6118ceff93bcffcceb9e26e43b6b75fc522b3765d57f1b855ed37edfa0bcca4324cac889e404952e65102dd4366f9d2a5cfcb7f49f1b4591d042c24054290100ee2af234aacb070dfc3e1f774c4a836354eb3afcdd7fcb7d7b4ed7df3df7e03b2e3af3975e898dff3bd9c2b6e97471d1f1c993d563774b1e2316894ae10b8f77008f67bc23429bebf68f2a823ebe81edacfdfd13d2458e9901a3e62df04efb937a17bfbfe2670efbd09f6bba7ef12525da1bfe61f85f38f28a19708f7de13f1befb29066953cbb9e20665c76350adef750cca466299da7f59491d51a23978c394f2e79cfa7c8477534693a1e4f5f26c870173e5ff6bc2fcbd2d6a52cde629c672c789fdc4131748b34d745915ab13a557bafffed2e888bf1224ea1409afbe123a6258b8f762b158ac3efd6deba03e7d3a33a5fff58efae357a9bb83436a91fa9b0422cb584dfb0c72b849b45c0251a65f394c65300812f391daccb8579bda13776c31469ca7f308f4bf20ee97c7af7bb064cce715fb57f837ac9ed3c69def436cf2fcef5bf652d606a22954348181010d37dea801080b125e24911186962b222762c0d41046126a60b183cc044a2748a961852dda9092f9f78e6bd25af17a474747c7b71f0eb2dc7cfc35b170cfe13b75fc471d9d30ccdd733fbebcd6b458d6c4cbc2953addc37f3e00ba0703543ab7e5aff6a2cb31ff18cb288f2ca3bc89304253d94dfc8e8e28992fc2083f4f4f227c4b5cee3bafc1ed5d1c6312ecc08dc432e5f0cf93cd77f658d90495883042f5ee89d73b339fb577bc5f128825d2174a5df0fb3eacc45ff24946c926e984a5e68fccfffeb662390cefb5f35e895ff9e68f14013ff6e37e0f0e01ff3312cbe07b3958b8327f0db80d25c3519e4ff31e65652434df9c2beebc19aa8a95dc5032441d2037940c55b26c9a3d38fee6717eb4ad1f6fcd8f61b6718c636d0b4b24b083ef41d1c5faef5d43665ebe6c3147664fbb55e813a8799b2752f336f689b4fe065be7f9b0c7f23802a24cf35f23b6c49f3039f168249669dea301da3e28d3bfe2cc7722eb3f91467481ff3dcd6fa20b7c9963d7e66b3e041b5c83439811bf6775008a19e4505f7a184b8dc556345283659395f93778dfffe57ffd43aaeb2c20bc97d92d20e4af5828b59385b29158eba05ace1597e6db3d582351ae1e984af9ab4e100809a553feaa5f63c6752ba5c0ffbea3a6a8aaacb621d69b70c2f72cec22023e6be87b16be60d087995cf9e83ecda8d9546badb5d65a6badb5d65a6bad9522e55a6badb54a1fad59eef7eed13469f610c9ea7f22918c3a2151a54a9728d5f7467398e3388ee338cff33c1dc22036af8b155a3c2df57ad10991dd5f73c21a82426df111e133656039b9e7afec79273c15fe31ebff728c65cf0bbd0e7f1ca614886cb15cca5bc5a3d5309d787c7971834b8dcd9507d67039effdf585dfbd932265fa1e55a654b36a5acd2b3aa34673467fcea60ecd3359d0afa9d9a3e1d93461f4e98f56878e3cce99b576bbb786216e7d71a7a40fc7b3496a409fbe63d13d269e40f40e3aa77a07bde1ca97ae7ce6468ee449ae1415253545556525936492925c6a727aeaaa118e2879329248b3c9e72748902c005adcd166faf6863f5f3122197d97f2a5d9d332faee347ba88c3e7d8ab4cd0c748f8947c9244b1f12cba2d6c0bf9d0023fb919bc7b6935bc7e257c5636c7e98623c5e491b6671c05c893511668f2c6a98ff5115942a225849261d992bb358914cb27f0dd5ed3c4a2bb949abe22149b233ce74fdee89d8e7b009dc5beead09db6b6faba805690f82f63fda07d15e8241f5b59eacfd8ff7da1f993ddd5b7bafd6571f12777beeebdbeffa1b0b7d4a264c73cd13ab5cfd207635fefeef7b30c884693f13a621097b87bffd6e6a2e21f0bf97febdf71fb6fe2ff38f77e25b71eb069572c5b1096b2ae9d6499330392777549327f9f8476a50bf7e4df7702cb3f9a6f9576ebd9209b3c135d6d2dc1bd6af8d8fb4a25c8de33058c3d56ad0b8b2481a394f3d327bc0b7f6de30fcab6c5f740dd9fe7bcf334bb083ed9170dfe5257f55b1bed781f5ce9e1bde0fdfead51cd12cfc9ef57f26ac4eb9320b9656fa69024741f541a8ff533f888f0e892b9bb826476e40d2c2a8090531aa9488f203902c55c45022e349192e015882885896323b20b104d4143730d9246248a19582369028a3e80c1a6e2003a7873b86d977bc3177dcd979c59e68ec03353cb18a8189aa155480441b954808a41fc28821458932348c717574469dec2f9df71e2a13e3025a5c45f1c4094908e1c5161a6a8894c0585ad2050e4d45514e944a1531468d235440c653d323606002d6e0c21623c2a85a019949bd08ee45983e798a91e77c3be79c736e94d3b8ca8d76b3148fe16c798f7c1db6a54b931baa05171091c5d6c3bdb9a15a80c288ebe5866ae1a905a7165ab84638017d98e1c1850f0823d60a4930783f24812bb0d042d794f49569c265a1f2d830b23d347567186d4c535c18186a1624db440c1a0f4f9b104fa88c29a95a99b21eaa341b83e1851fa2a08c8a5c689252610d241f9efe7ed6da1b5a1c47e0d0869825eecdeda58d2a965c9bdb4b1b5fcab8addc5eda70c291db8b1b45deacb5d64a6987c9f4c7acffe3d347a3b5f2a0b5564a296d51efb2e362f539f106fc355dced95ca6686d18bad37c41c2ca08c88d25a5d4dd8520a904c812237179122dd3b72e4dd3342c44fed4a91949122dbb9ecb2eca0f09cd49b46cdd6320a594adda5d5fe2da3ce69cafa239e7b499e2cadf7c72ff8fdc41a406b355a43305d521a715402e529368b65b08cd13fff0573fd886e6b36eb6f33ed6370302d5db755d576fe326ed97e52c8747259bed3a4ffb74c2d063d178b652ed03b94d8aae7bcfd6cefbecbdc765cb79de07da0e7f1dd7bad7de5a6b2ad536aef3a4b84015e310c389327bd6beececdbcebec4230aacc7b5741687ed4fad6334afe6abb1a173fa501b0ae6e0f9f45937db79208b050269333aaaf679dba4985a2579eba6991bcadbd3ff36aa793a1e18861d7827c8519fbad9cefb5eff98a3f873d7799c6dddbbcd504a4367dd6ce77d3f513e3e38beb8f2bdae5f1c3796206bb25fdc6fdc533ca2206b42b496ceea3047df8a3f9f4666e65935ea53f3d9d88040d537ecb33dad3f3e4b3e64a8d20d2da553ad6e1d38736bec4da893439b970755ab7b82b4071bce0977fe716e70e87cff0a227dd0df623c7c7efc70f00569983f787163cee9dee0d4d0b46c74c270867503d0e56e3aa48fa9715fbba0205c141bc6d1822bdf8a1eb454102d2d9d55eb6f411d086431087650f1f5e06b7d76e3aae83c5f8e0a7244940741fed2709028f1fbe13c35f77b74ab4d9fb3bcd81bbbd205cf09942940b5306349253973e225fbc89bad5473226b6fb5bf476764ed888a16521ef1e9cba863893ce7b3e0459e4d70c8b3c91979ae40469eefb1ee1980104c2ddc4dd6267af6cd0da582982cbd23f9af1bc66cf02838a4887bad0fa473c519e47093685f82ccfe1a7d2a5eef8c2da46cdfd3ba99ff71af7f7c0a02cdbcd7eaf20508314b5150265866f20fdd13e4447379a1e9185f21d4e1dad0768ad1478db4d6b4b74faf664f7d6bb3b4a4b85666fb1a53fbe86c1fd061ace1310cbdedbb07587b281487d93f72986dd23bec8f19f8a02bb406f635497388b8328f2fb3d77df7700acbadcdb27db17b281a0db3dfbf7d4bdc0d0f3109c1d4c24cb6613b61d66a938a9ac95ac66496292363f2f7befebc56970be6f1a740a030dbcd0bd5bff91b3cb4810cb28a5fb34f24db4457754dfb1a1e27d5905c2189226040838e3941c6c43d91cc03bfb643ed650c2e5c644329e0aa9031dd4fc104f3868c89db4006d957e56a55d034cc3e96b7da926ce9986c5fd3e2375bedcbec3428b6cab5a26569d2ad1f290cd95219b2a53864fb3550c4eca4a12b512dd31fef965c9b1f7d6ab6f0686d0da646d88d2a50504f98cbe6ab72b5b76fe3d43d1e902dcd5bd6dba768740f35b29c945ce45fbc27c85aad0ab7da164d8b3dd2a06855c4498d66cf4483cea4cc31d9be0d9e80cb2a9e529ac8ca1e1877a4565cdc714a51abee21b3fdb982ee89e129755b906d2846b6d79726ccbe2bad004f90c8f6f46ac2a8d517d7abb42f8788eb797caf2581ef47fa5ef336a20e1280747ef9cbbe900fb7a2b8f229b6ef53fea2c1d60a088485a992e8e52e371895ad231df98bcab55fd3e58ed42ac8d68848643ed23dbcb71f64dfd2e0d1defef0187a55b347364c7bce2adbefa9d959b6ea1d961a39ccbeb5f786f6f3ec7f981af9cbfe48e9d11248d403813e2b3d2e170301b3278239367ba855c3ec773f865eecfbfbe452a323e701df3e85227df85b28d93eeb41911ef9cbbe58201056063135ea1df65b5feeb44fada4b492408bc95c0b490045e3275b4a392911577ee39113c7e7de8b80f4dabd1dbfca245a0629160fb7c3e49d523cd940589abbbbfbec963954aefc9e2d77778924d3316cbe994dd619eab0b303a5c2d41113a5096b9b3fefa152dbf66ab9961b4a85a51840c942caf5a4aa8cf1b265cc1615c6f810e66ab9bd8cd9a103159470727b21d303540a565ce171b9d65fedb2f289b2747520b3cd62a62f33162a7a6eec71b9b4ab7215ef7a4b682ea9db35aefc49dbe7f496b8f2a9fb78a941cb398992bc25baaa039b6dc372e3f6541c71a63fafd70a0e1133e53a6bdbe8a67852d2e9c7e59e3de44f988bbd83d27b6f531c36ddb3fd868f38cc5ddd59649ba93cb6d5a572a92b69515bcfae4e0fa8ba75b75148a0d0850c30b65471c4a56162cb920c6da9f52269c21ac88e717372436d71813b828d24dc629cdaea8496f6e682bdf6c9764a57475c382985f142182ba52c8eb8b8524a62062a29252a5a3cd9180d29b8bdf6bb5b5c71317358e7d15e2516a0b4a0a9063660d802e9ef67adbde10a5bcf2added66775e6a1455614151936ac60d7343315163dbe2dae48662425580dc50455a427b3fe6635f99d2f6219ec4104e691921469ef3ed3d22883c7f07049a61ad6189173ff8e0c60b4d608ca468526336461a6450279082a0a1d23ddc8823f27c9a818552464e115f80c1b71b8b275f72b84d1202f2f839511541449e2f8240f3a220babb3bcfd31f79fc58e064058a3c5f0020d074f70f5f780387bbbbf704e032808827793e006288e2a68780d2b10da54317493aa0f1459525526e0183174a7118450f950d21c3015ca1bbd3a816c8b8bb733cdc4c738b89cc0102392c8d3c3f870b18be847822cfc70102cd3086251c1f0a10c2853cbfb56891e7df841d121635c4c025862ba44030a20a1748650135c4123297b4891bb23f07eeee372fdc9b2bb434c9b30502cdb73ea590d8707777ad6ed6adc5a3bda10d08e431f769e93420082a41a8018416797e14b314be14ad4104982612a05cc0060c9a5c212305940b6fd034cdd73a00f5b737fc57030143f6bffd8229a438092207274d55cc20528430630d2b3ab0404536a7172857e0fcf0d70b3cb2ffb0941d8825d9ff86feefff8af9cff8886db8900519332ea698e41bd018024b1421961023bc7dc60b5d667c28c95210fde13888f3682ff10ed04bb9e35331eaf081860440f92045d30e79fe37b991e7b340a02982a919c468f2030e3ca04182159890a18a37a6d008a34b141458200844bf56486ff83d8491fdbfcf795a8c349e80510187ab35a2480088184ed812069817a82163228632c23ce79c73824054bab2c8a30e1e5a64b992c50da624a635b243f520050f51d9bffb3e28b39cec1fc4033a671379f290031779befdbe9e42a225e947edb7f9ec80254feb7489ec5170c8eeee0ea5411d64c83c749062072a79860da5081e533a002cc8a3ce0e9625ae589ab244840e48feb232268780a1e92688dbb9a50893c79d9c471d566090ddaf7cc90e75c58a1cac6099658f112d79b20405173298b022060150c2052b5ec081cc931b64fe22b873c91e8588ecaeeceeeef873128bf250b47060caf3e9b4a2429e56a6c8339ca28c134bac700163836cbc535a20a5882b3f54b9fa42369f90c0a089c5b294f7c6784ce9cc4c91fd6d0fd93ff41bb864c781061b8ab243e008aaec3fe593f4e12964ff6bd43d36c8fe7209d923951ae66f9fd0f078658845f6f7e8d669b5d65a7fe3b8ff718d04d6fbcba5a0a2fb334f24037f46944f2c514a693e13e6ff337f7fa8060fbd5878e8e2211bdeff96b18c5cdedb3c91ece5e1a0a299a7792299abc3ae10c067bdd07d1b3cc4d4fdfd0e0b81cf7a1691ac6535d835b1449a307723509434a27c12a7aadf9f7926f0ef0b81f5877a827804fcd4514a266cfe48b58f8243bed788be5cc712a487bfafa2a6d5fa9384211d797b8fe340a0f995ceac498066ee3bb964452985fbf3eb4ba9a728adca2ca764981bae7c924e1b91e777c98a677b2bb7e91ee8f01e994293832095ddaa86a9ee52c354f60f66ece7870e1dd6cac89b467ed059644e6a85c8af0f447ec5ed2fbb8975878718f39af887fe6dddcaeb9da114f85001104f3226fadbe7fa37f887fe6dfd7dbc561c4b4cba630099d26fd19f62c3fc61096040f8f53b32f7af7f58b1a59526dd98bf8f8d0a63c64ce65350c83293c5fc7dfcffe5deecc6c99d7956f7fddf16eb3daf63d9b870ff59ef48332331f9c9cb1d7d26357b5a8ba913725803082da42c9149021c51e503951704c182104f513d5249c9de1b86ffaf572c96479f75ef55fe92208e2e77f4273192aa049a3f1aac7243d14095716e281ab6649f394f271e3952962f8bfc25a9a418efa5acf21e9dcf79ef6f9c5c0feb3894ecb0d18f1ccc1502be87a598ce25a4bee702bf738df659ab455ad13d5ce27cf852762210d1d581670f9320cbe49af7ec5fab06b7bf6a7a5ae61daec14ffee4dd287147128ee40f1761fd7cd6b3e47b5d87c7ee7bd6cd35ee799ee7799fd81904df03710934d7e0f1482ed2bdf7e391ecdd7ccd8fdff7f3413c76cfaac149686e7d0bbb11aba885eb12329ffb895dde37beded16d3598d0a062ca4a8a551748a69081cc0d4f7898c105a924973e2c95bef8d32895f2d732e291347bed80cb7a9c87aa6196598ff3d37e372f956a5eb2fece1e57504e8e8b48ceeb888e24f68469205050114cbecebb9e4928c7e77c4eceebbc50ceebe44c2c94f32e3c14629f09939f23e7c73007bbe6b74c4a194580289e6cb1c30967fc008511952e61d810e3c88a0b2db1e6bf0fc01fbf3c7fb479bc79235ffec00f8f347f0ffe14c7d8388e63678111f2078a240c65d64df72cb1e6a7f87d38e7f79e48420a320e28922033cee7188d7c19e7bfbf796f8ade6f20d08de7d5d48035b808ceb3fec7f34df7dffb14e9c446bedcfa090e692b76b06287dc12bfaf69e1bc109c677da8022bce83f39f387f8243588f03621c31fc297adf89e327c4c32e21f3bdf7ba9b97a09010bbbc27ca386fff67e288321bf932eb3b716c659c9bc7113b5bec12f2f371fec733d8dd88bec55f4e4847db87f3d13cbfe59a2f76f69a74a25c924ad24a0a7747cc0d5b58a580c4140b4d6196d4e8f242952cc2b8717247795434c9c0ee552ec6c9e8aabaefb018bd2c07e789b2540271fccc7970f4e47c8d0dcecb77dfe23c37e3a579ef46740db9b9f9ce2dd135a4554456bd08f269c892fb2937d40c62e48947f097fc503412b284fcc463fbab9559efb5e75ff79f5864821f9021df7b0fe433f22383789c5f82ccdfd7bcf74438ff89383f672826f117ce4ff1480c77ec99f34c25e7e9ae8eaac835b22c8232a51508840347bc69d9d4887e247a91c3921c265fd260efe2d197b2fc4e8af11e7f9a30f9bd4eeba3fe347bbcc86172e65359cea4b2f4994765f9de92ee0255c49419ae88c20b26434b8230c3290a932b2e663724e57bd21d8dfcc80ec55f7e54e45bdcc991bcc85f33a0867dd6c44ad20d52a9fe9117f9cc5ff2a3dcdf80194a7c81e58c222f55c8641866a800ca55125daee820932f95a627c375a40300516566458832d848638c31b8cc80831426a064e148b347033c64814262d6460d5664f29fc84246175f50b1328a4126df676ee456a1f368e293d29e94ba196196f95269a7a5e15643eaaf69ed1ca385425bcf5d2249423396998b8894692f651a36fa60fd2e213379fe4cc672026dce6bbd6a5f2bae94b6368659d3344de3a0792acd94fed027aa5cdf9bc262fbd6bed617d797a40f892992d46087eee1983ee91df533ea1e4e455758a2a2a2a2a2b276a95d4aadb57e5f6911fdaa5fdfa790be0a56569da91e1e75581687c77beb86eb53a7de511fbc72e5952f5df9cc8d9cc73b427287e249d3953c8bf789345f2877f4a55cbf7bcfe2758243ec7301a325a864cd5595450b952a1a010080009314000020140c8785629148289cc982ac7c14000b7e94467456994aa45914c3380821638821c60040080122002344341108a21798b41a81c021032337bf5a6b195e2436b39f8d2d811e7011e5139b085b4dcc8c2610d7846b8261eb7d639554c7f0691a5e3a872783356e6d608e08e068f16ade07147614c14b5c872bb9cc54636102ce39567baf3913f130d56cec6785e9cf8a7bb53fb21991e1c565e100175806edd117f2a4bf83cbfdbdf07e01ed22294d46101101fe0de6a127bc6038f85ddd2fb370d22543e2e44cc9add2e0d919f0d6e804a0606f2d1e97bd3daca27c8c03d908079dcc76bbe4f4f46d42bf282b71230fd35ed500ffdf8ef047cd68e2d9acbb5586e981d309043083d12dd43dc79a790bfa9905db04f29c6362a58468e13d8b4f05bb8b9f7011be7026828f82652e47a9459d3c759ba0e5bce84cefabd6aae8825433f8625139d9069fccae475a9c7ddf05dc41793f6daafbcda6b69629379b7774eb502494f12b42e7703be9df8a45db121763e8bd42a4ac7cf32a3607ab735478c8779f8261f2691535711247155f594c476b27db8687b35e72fc8d5b63301bd894534df8c988bd44eb7c950a071cc130ae626112334b7c6a68a6d8371a9a358336951862a2187483c3772eebdfa3b5dbf2b3b8b0a7c4ded8c6f18df323209ed3a73de2e7bdfcf0a557e8802f212e96f311dc22170386708f5a0278d1cdf41a2025b7c4eac5c8c586b03191dfaf7dcc55a266cf8053d5d18d0512c827d172693f0cda0044ecb94fd59395785d2334e503b99d7230d12e362c238cfd28e0f3def7402e12b5d8fbd2dc441cd8f83a1a6ba3d5898a0b7dbfe1e3084241d449ac77558be757bf5bd8e77defe46e7bfa0c14536063a9bcdf45fe4a54b18c4760e35634fe37e61e50a91fef10cdc4e7e7ace1df837522e348bb4614b611a459650318f50a2336c450f15110638bfff38bf1b1354bfc598c4ac54058b1cfc1428d4001ccd8d0d46b0982861f5620dd64b28f59a1d45479abd28b7e78106a6d4968653a4c175e52c04eacba11caa39853ff48d3fba7dee04b1032a10f8443d54e984cef924847b32cff34543463627ce4e76b149c1de0b444afa911025b73c0e68b258cf74d3320d60d248da194e2adf597931ba7e0a3b24050b0b8c460b6be721e4a0eb3c5ddfece65ebbc9b0bbe4b9de1de06d1171f3e581516a0697859fe0869f0e0459f3083309279837b8b56bcc7606d5c0431cb3660bbddd1a7cacade363a8d44fbdb9a7f0366d1cd78d0abac94d5e551b020120fa6afe5657b89ca998091842c0a495e420bf7f3daa1fc70a2508bcbd8ace21fea46ac7b943abe1edcf232f203e13402cc3a0e26c58844746090d21170fe491846c70247bfe6fdd28bb1e77602705f99491cfd0e76cd1ad750af6962f13b034c68b224a5e68cbd54ebfab9d9e1f68f121275f00bdb4a67ff5d09cd04f4d0a075fc5d0698b8d04bd24b3c154af1e8435e6bcf6f31a0a4e5f202f2a10074481154dbfba92529b5998d1cad1281686aae02632bfd58c647fc1688388ad90ccd0de6eb0ab1c57cf944176c9ac060767405ae2f9dc3c71ac7f3980c3b329a2fd1343b456e20b608a3d038219e7f0666ad2ceca2fcb4bb256691a3d8d8759c7c60832fc1a30e2215a636b1a590bfc99adbac14cc9354a186958c020d2584b2a848f5acf4c5fd6ab0937e213e42b5989c21e3809db14abac36c64f139d773c47e6298d89563d2eed72984a0495a60ad6b3735043c5cb7fe937a1c5a4c832ff262e1a9367113db60dcb30e4f31075eb0440a260260e38b06e9459d5d379ade8d4b7df5a190cb05cfb95b183769c4909f109beb246db4071a87781021b7b63081fb39ba2268a9417e45e660ad0fae2ea19759b8aeebc051e078704126adca049235df051f594408dcf294199ca4e409dce4f846147fcc37b0471e739fe013ef330e3941423fab3914a02fa8ca0fef0848a4ade3cfd98456b1b243990781f7439fc65185accb042e8e918224d28500dae325b71d042dce74320886f006430a8cfda527065499dff13c7d0fb45ea84272e0322d2ed6157c768322e96e4bc987a94ff467bc364b4d72f1bb216f2506f19579d114e9aeeba94a15a89943e93981e2b98b18337e9458dbbb8e9d1f56c307bb9b0c119ecd3a496e4bec792da5587c262e49de2d2f53180f8ab9162e14cfb7e104865f68bf81113187301bb9d0e6213df4e4e4cf933229fb8e676fab419448e3ae94d9298cd3c6e321f0618c178febef62ebe0739237d9cdeaf4af7c8e46f4f0bfec821cae252152ee5a7f0bf93498bd7f4dd580ed4865cff67389caeaa78e1993ba646b5fee68114cef81010b3ff2a9277d45fc33d7b7c05c46fdc89d5651c597306c8cd4d9a09137e9bc9f276bf9826572d057e5831f95479ea58debc1fc1866d79c7d9c554a6c2b8f27cc86b1121d30f7588dfc833e83ff58628504402aada4743c03a18e2a842e1a7493119e835153cce857fa36e344b0836f420249959b73d150ca1e68fd01bdc97870a07167bb0525fe0ce1cc2298ad743146b1601188345c554a6c30f09c897437501d650711d9b848611a9ae97306c2cae41d910a1d49be121a88827f2c26f1fc177657f6c5d7d73bf73d1bb8a361fa326183a3b0f2a82280ef5e2e763184977584031b881dd32a490e75786b4c02b4f4eee67d15a442dba170c6d3d529f5c63249c0c5d74efbb33f34ffca23bf6d0d8fbddd99782ec9e5167c76ac3bca9f386bf936bd2261532d13808d15b2dd1dfd5da84f2c7b0591dc6a0d84b06de0ab7e19afe9a151d415d77ccb3fd4b7909b417b1e2850342ad957e4c970dce4e8effd6286fcba0f1df47fccf36ac27010bbce2d29e82813cf90cf4d81c6aaf06cfab58b9de49a981a25b1e32e69a2cb48fa6f00e21e595639a779d84210422233c25ed949dda9921dac3cd6400b7c08f75cad6bfcce50d9962c3b14421a61293853327a18e442dd16e67cc47d08d0bf9b4b0964bf33333774b597425b0bd932cc633a74ecb31923602db5c729f13c1db44d5b6e603a16200e44a4b659e02d98f9c3698a2adea07d468f934cbeca3f7ba0a6d90ba4c9aaca7ab67ef4a586def6beb2b729f4cb4e8298892d9b325be48e71f68cf7a444726d195d81f68c2a82df0bd68844874001a8bf8bce979ba823ab14d37aa81a339a22bff36b4943a8a176724889f5a890599e894000708f9a4883116669ad0220a8991e1f173e39abe3a34b3ee1d8b72f296cd59a1af89ac5055c13ae009a62fe02352f152d439bbe0ffd4293bdd886d9dd3fb0315658750eea56cdd2912a64e3cb5ffefb5febe7da0f716d19908d7e3fe1e67901d9f438a8425d6406e2ba09648d6a00a56fd135ceae45bf366b984d7a29c19517e7f839480fbba5cfc6aa6b24b40c03833a1129e69609bfa37d472c2ab39f7625fbbc39a1f4dbda0952ac37793db6ecad231402bc622da1859cdff26559672174412bcb7c2e4599ea192cc2e1121b5b6d3720ef2dfbff04a2ea1c397ccb0f158889842386db9e081bc4ca18ee7637cea3d6e78f25c995e1f393f3ba95f39dd9411f41c7a10814fb0a0af6dda443ac67bb634f9c685afb1cfdcbd89b2a4fe3e281687b82263b704223a0f492e1f240c476ba186a976cc4d5bb2ba18958114ee667f884baa4f8ee99094c84833962355a9d4243155c7e84df8eb93116ff618b1bb8775bc13dc04e9416101f052006a62c14dbc331ce75b54c2ba6c5d3d60f7c785c540a70dafc59dc2028c6c044db1a1079a1937290c5e74eb04a58a2d7a3eaff22168a318a6aa2968e5809a0bbac650e652b87f21cd599caa801142f79c088525750caaa1790961982e47711cdb5bc05a3462d485d5d51e764d6bb5507aeb0d358c71341a956fba10f072facedf962c84b3bc1e8995983a919892b919794c56173699bd0b7a88db9a45cabccef9ad46c84cc661f433e5aaed911926dca6f4660fd1b2eb6cb39090eae42f33c864e334560540a4df84d157c8cd2210534ae8bf3bd82356ed55c01c780a07a6b7aac968f1a7ca54a4281a9aa4dde1162908b9dfb4adae78793e5d74e96bd432ca5777646c6e0d0ce185e40d46cbb49059c1402986ea5842ab8f2394036842f8a885054053416ee8c0da68e3be34cd22a02e6b099eeae2fbfbbe982b2b95cf34b5e6175465e0def8da1f0a26e4b0797067f4853cf679b9726d2c9cb5af849213723b47780e302975065a75f709105e1ee74d4dddb8b31f43cbfa80c8ebea9e39804ab62e7677ee66a94f7d43e9d41c80aa50249374a4867d9997a803c539730bd5122cc19f500d9570d9e0de8416f7ed8cf0eafe954fe46526bb64edd1e3611e0ac10c5155682ad3f0d3c3de2134ab485656c18deb08cf6e22cbd20177d39d7f05abc4119080725dbb01687f9dc53101db365923065946b0f62b54db594fdea5d0546c2a352a08c088c72a96d851e1c3ca0716d524ba512d0618acdc10fc1879aa139a92e1663e24d99c0f03934ca26c083e9fcc5ccbe9970c9fb79d1055e0da7944c0ce112e297740b333880b7d8498f2f36683fb88617e8a4089838585a3dfe8ea53860649d9740cd218267f23033d119cd370626e4ed8fa029d93f3fed899458ab74105e5f2ec214d30665ec996a537460745b81ffa6058f13dc47ff0f1ed22f1aaad654d05b146bb1df55401bd94f8a417aa6acc650b8dd6640317e01e32356225be24970cebaf60e4352cb47ce01459a270a9d1e9033a04763e292a30028d2962eb330beed9d477d75016ebef2c6a045856fb6ecc2d6390adcf66370bf06595e18376674d5e1194a8b92de060f8c8c63a717459255e4949f68301176594dd41a68a1f5186834a32b9e4eccff5618c5821a8473e6d0496bfee0234582c092bb909b4a6a936a0cd20d1a15878a1a5fbf815458d95fdc9e864796cc05b65002da11c32f5deac11a5c0978cc89301c41e73cc5b7160c7b23026695a2a5409627b804e5a798f9c67c8d973ade50d6f03b0057fb5d9b17594a4090d538ee9c3552430660c9f64b58480456fb5dba80c6f33ee9f0da6ddc5d6ac8c7575643475f794b16aaf8289f94cd50e6153f65e56d6931baa001e950e1fb3499a66c15a38bf97a2fa6d1696f9ad705f1145a20114fd26d5e3521970c880870996b4cd213e07a8e18d414aed08a036d2333f3803ab33b817a0c1cabab90e9402c26459c3abcba2f0f9c126221ac4943e19cfb7dc18a6727d42674a5ca296aaa6be8512c84322034efcadc07dc3a4cbaff4ff6971ade68505445601d8423c7db849f6e740d9c485603b59eb1aa129830578dadbc2b8c5561e2e0c0b379d190e55c6ea328e856fdc716f2cd358e09ce9746bf04bb7a665665a008298091c5fdb3cdb026d59f962c7177d5cc29b25791dd32de4db2007675b52d2846dbae219f92ada5cbb08248dc094c2a0aa319a62d36f56ccf535bd4008be756663495ed8987ad66b59f9ce62a6257fd66a6dea5debc28fb7507800264678ddeccb61d896dd198759f8c206e817c99b896308b6c3e4247fd2b42f9992dc02d976169592c3d7a8ccb883c2f42119de4d66b4accc69711b9595bddeb63652d8d80c7425939b313cc42c2574a1636f8b168f2cb7f850ed8df1f2587a894594da67553b0d8ac05bb001dec34d7b5fc40d26e8e2be13898e87f81229cbc54b5aa1395fdd2d9a460d9f4ba8a26e13fa814d73321822b2d953156a600b220dd7cb447a23f272d5e5c2414d24b8dbbae542db542f74e1229d4e359fd03f7a863d3fa1fe615eff81c1b5fc7f887aa41541024c02b93979cd4969820108fb969f0e13b226a06a21f71a8a71e7de2d148b87cc44b406d21a6443f65b1cda1a35b2e3d382e9fc2e1421359e2bc5852347b3a43db5b3b1fef8118b88966c43fbe4df9bb41b34073133cb04b82a464f7ef5774cc3458c5cf614518dbcacf487e04ed967f32a85d4925df9b20c1108465e60a4006efa12db013c90d5d171a3cad91df4622ece25c95d516fed17dbb2c92bffb6983d1c7c21ca2ec6b346d86a170d11e51ebf3e03bbc6720d6becc5e82b87f8432aadc64c7b98725abd78fa00264733d8f70abdf9235763ecdb50df174bbea31a60b6ddcf05fd789bd8589e38b7974ab1a1950118655110c473c2cfc925b2a184677a242e077c6fa83aa28b454039e91c7240041112f8fa43b8c11176a51e2fc1b190589fbc25801931d75c7efc5968404baaa4b03e79782a54848729fa56951097578771cf0640d8b64223d460e42ba7021c535c74ba667d6847dde1666e07630d17f7f68aef5437eb099c5618422759ecf904c0a8439f6fd014b2e03eee3c35e746e50569c2ab68c8c4c0871c9a5bbf6e3b505f0e6ef40d3d87620cf7c415d9bbfc7bc16e4f9fed9d1055e2f311b29d2dce482a6c6b4e3221d48d08fd81e6b324aa52e62f7b68829451f4ca121f3ce1cae96c2b6c679b0e2027eac8523f7bb2a25f2c3b6bde88a870fd55055631ca5df99c46cb38b2f5e3a0af159d3f301f37ea4e707561df2ecb7a4a1884835fb5bcc64ad0a7d2d77e00e57c7d67fab9f85394f31cd0fad4252828c4c8c78babf9c02820989fabf8440a157c943cacc703e0e05080d4645220fbd9f2568d02f88756db36f688f96f4de12e51a2dcb3aca3573893b2d5621092a380198b57eb185fb17b975fa58a24e37623589460a5846b19d1b0fb3fa54d96db2fce34e13e7b928997fd5551a5b2d02b0147046276d1ed308c6e7ccd24f9c0ad764a5c664e3d123ddf265ec6c2fa4b68f02d263d4c8021cdb2a651a440b362dae61b1f404b13ebd0183500793cfbf90f632a5eb6271b4071b001f58a2c070eb6b93501949e6e89ec8a7b138f81ac0b90b20e8e2ecc1daa12a54835557462f93bc35c8ca691b68cc38e3c309d7510e7f4a19ab073d03e0d4c3302630f95a0ed61d8ce5f344457cb1ef6aabedfbf6507a2baf8c6d65fbb14ec344ce5b71a291151450fedae35cbf45dc486ce433255938bbc5b25f5dc8a2f110c24cd3b6475e5bff603fce9b530a9c231cc0ecc6773a2d5b3cef556c24780a745aad9a2edb1255258dc747203b56752c6003cc8e5890da3b0cf5e028b61e45164431c80add49678c10f31c19ceb5cd26d9541ac7d19b7d3a07e84ada5f244c65fd447ccdb6ef046ddda8ab48dcdf8891caecc1d832812cd0b43ad823f88d293c17a6d2275f390070a293672c3853e3003dea08069a1557e62376083039ace430d9fb11c88e9c7ceb0c8ddca3bfb746e2217b9f04ee75ba44e42f1b39c67395f0538f592732ec292bf159b278fe62838a77fc17f0a479628aacd9bf4c2c10213d7e4193c53b324ba6d195ed100a49d49c106ead402ffd42b29e3ab9a150a649c44ccd305a2e4af3023481024be78c5ffac4bc82df58d0b19d1713505e81234b3eeb2f6b0bb9dfd50ae9f6af002a41d22faff95b012c9405baa13ed811fad5f217106735fa92f48fc929181d3d60704c3b644a61aa5c9f2baa72b2b591704ed977346a35a804009ccfa7b82594928352ab6b1ffced3d5d6239922c68693b353142b45b8ceddcc6ce4d8f1fcb85a9fb05cf0ca13c6648bc2e145951fcc0b3f8984def03f3c426b04bee8223bd8e9915017e030aa4073e63d7da141f80786d02d331361cb6719962e87d341c8bab92a097d82fb3ab3194a6424f29d7647e89d36cad3a9332d8f0deaeaf7bcdc0bd66272ad7db5e53ccfd63719544454cbac67dc0d07df07bc086731d813cba488938be3b0d39d86ebcf304a0b7178e10abd18f920b52185611a76d217f0dcadee065f4f5a5c90417e43bd42a0fac228cdbd27c530b00de40e5b4842b06275a7f85d007f83a5be3d26541ec9e014e2a869e7b226bc5760f7e4e6a87afd5602e27c51f51fa847dc1cfb38b11697c9c475c5f662e72a4733e8771462f4947cd484165d003ea02eea70e5d145b71d2a3f59b58b6346b84898bc0a811bfcda6637a3a33c293b41865a86741f4eb25146c7698428ad299177c48599be6092c628c0638b45970c47e83ec4346145c60e2e6cf28cd8e619e5769f63531e912dabc382797a7f2f6f2e25979f49e264bf7bf7e9c792426b4ac9d300fe61b24142084ee1c7062c4a91a290c1c223708b042e3b5ef5568d9f62068c82789718885d599117f3264f10efdfa71f07412e066e3fccf90be4410c05350fbe8dbb089b1d580ff5d9c0836b8c11289abf31929400b67700a25389fae27f145246c50bb485d0d8a8c315d3844538e1c1533ec0d90a168ec9af71202754e0991eda94f5c09c5d0b1c1f8f394d7148b9ed582ac98144b6c77c9d407d846d92719e2fffdd6e9f782c9ba78d9280431b22837b22e409ccd5bec2586c898eed5099dff05baa51ea463c04c5101b31f804a562fb2b5b4b267682ba515b48b41d6d98c14ca8ca0aee921c2e513dbb19b7f16edd6266ac0bd86de02a3ed771233d98dcb3306b501f135daf048628d68882fe888290521465b0c99349098daec05e9d9a6d34a86aeab696092fc87a99a4d4ffa80ddcc20c8ea8ceb100d20f84db673f2a5e8a0d4d053a228d95c637dc15960086ec350abb5274ad22c3286b91b4380809ad01b6c74beb77c27c4dda35b1394287742826681a34706de8f8c7ba244dc99a7200a009ff6817fbf1726ad0c71f8f9d226ae55982a67c85deb407f1d16db3022c7ecf56e4ab8d0333da96e4a11951f9d1cd69f372b655f03dff2363753aac16f282ce486f3b2179f61eda482858ad5ac003ccda799e9e7d31be334c8b1e4d3270b3fb2c419b671460c6feb8dc49e2fabf13d8ed39af1605379c8d9175862d749e7b353e5ab19260696109e19e3eecfc997d3174f300a5d5c1b6490f7b95ad660e7f174798ab88c0c9a11233dc673ed02c623580dd6024fdd2eb2638cbc0fa196b573ed8b714a98d1838f648665d80b908e53c96c6e8bbfee30237a22664664d661e931d99aeef747ef0e50e1462b4ba007b8cf34d28f73e28059f4161e3637d679d4a2c31c4bcf6f255a55c89c3579b3276455aa16f291f1b047c6b2ea05b6d8d6d480c990d1030150b51554489e567d44ea821c515a9ab1bf02e00cee3ce25c6d53efa1c45d39c67573653955f9d526aea248dd74a5608c440fb3d96eeefb0fa238ca7cbdabcb0801dbbda12554909ea369db0f487d71f1a625d11c7e45eaabb67622a2778ea5d4eb51604ad2de3559d04c06d3457490463efc90463a1ecaacf00000983b308dbcc258b4e74e65a7932ffac32319e57deed285ec12689cce1fe2546ab4503091352e4a35feca7ea899c0d00409b16f1e1d240d909dafa332424a52bc4743dbe8f232688c8ce402fb57201ea4e1209f51f9c85012f293809c90b60647f7b4cc82451556eec2e222c333143391a2fdb74a6fff3a1b09feade437e744e3084afc83b3ca42f11bda142390fb327030bd07f518d045c1347a27512fea7da461698ff6f7f50936a556f7254a7f9937628b11ebf88857fe88104796e7acd13f34901cbe098f97a5844f3b5e57c4e4be3720016e88e12e9b452ec425c69713c217287c7e2e8ef9f9bb8c6903db95c2f66d5b59c4a494e3559649d82f00f689f7ea7090f56804fc3e1672ee7222a0d798ac54940105d3af4cc0dc52e4770f35ba910578ac98ce8d890016a10dc0606f5ac6b53202cc85af7226f78347360ccb8b11c4a8ffb832480958169470eaecab6e13126e0e1cf8e13a88a507b66c43ead1f0f99813f73dd5da9d7a572c283c9fd7ed0728632a8f8cffb90dd1623f5d1100b0eab67afd40fbe6c8895f5b7faf444d017a784da215f0f940011cbabfa187f5c334480696f9e36c6e761a7645a8d2f93fb6b8a4c14356d0f5bc134fcbc3c70c3a4cf8470f30024ddb40208aa807e347ba23c47e960937bda86e54106330ff479236525936d45daaee04b219b7122f6a4516321b0b64c509483d4e50627d18b981e4a0c6bbf6d2510c28466739ba19c675d1fed3a36f4888b634bebcdb7730fcda50dbc12de3bd31853b23bc9feba2b80bf1db8671442f20e439dbf1d7b98f1a6ae0ff7ef7e430841a5f1dede73d0e98728811c3a43c6d8f1f7781ec90b78f9a0c0d0c55f8f0bf946996f9d001efa15c4ff71f9ae4f1f374b20a98359022f6b622b686bc08c969a309cee7b5ae021a15298acafb815e076379d27aea2b1abf01494a2b32021d0af3d9d180eef907dbaec5b2443d6ae9091ec1eea026205a69cce4f4a0d68cf8136335cc4001f628b484aba5cab43065d0ddfaa0d7f5e530e3beeef86a3de302a61cdd9e2ef851dbbcc229be3357b509d783a4f5de66923c62dc5b3c4b96f549a2d73317df37c0e40c2cd09ed7f39b1079384a4bb1eed203198e44fada6e9f4876ed3f55b73f1172547faad21e45c851fdab4afb142107feab5a7b8b2c07feab5a7b8a2407ffaa5afb8a2c47ffa8ba3d8a2c47ffaababd896439788b5755ee5708393427a570ed21867038ad315ce555be0c3a17d11dd312e009ee6e2314330e0c297ab0d2fca7b22ce9f9a476a08eec3b500e2892346fdc127fefad071c4a8aae963e4b4d3ac4ef3b6941453aa00ffaa1f29557190fe4d39a43c6a5af74d8bca24874480360c0d287cd73e037b99ed04c428ff9d2bc0ec39ce1ce6f25d52f801a180a3820a806c201e5a13d76de870dca3e96dc38b3918103a4b9600dedb4ff4886a279010df4e88085b32a546bea257aee0263239950ef407ed187199d5a1ec93e8cadfd64850b36b276c6260ab39f58131c28b8a06e089afbef99ae0774d7e5e0192277e721b6a7ab10609ea696aac4172a9fe07da75f5fc233b001d08a42b268d8ebc2843f45e48a688bf5de238b1b8d1c768648fd22e8672a2ba80ba6792c160e6f854a6ee745f480fbff2acc3c5e5afe982f5e2d9e835af47aeb27d126fd7839ee2651a17846514e63331314a8e47227d233d70bb798f9e5dcb1d6982b39b88a5ab18f79ea8a9de5b947e2d5d044e01c3ea6d9665038e83194986334344bd03b93faec96047e03af2d6010214a7999ba7754e3d01fafe7052223062eb54ce9681a518954f7a99599b8eb120262d71ae72b3520865e4f9b9ffe428b32b0d2ee82294e676c4753322f52003df3d702fbd5587c3786cf70a0615e2842abb2b75fb6cae8d2544756afb5deccfc87c1ccbcddc1a78f001953032fe14828d9d08b597aceb01f1f51288d6beef198baf4c932cec27265287e4fc45af9b9674989215035db28dce983fcae7f68ea9e256237a78956944c778dcba498573d5367579ccbd83a0025865e95c8236f3c4644763cd58cd7eabace1a340b553fc4244b02ab1770ad11c3f3a65ee07c287bb5238a57db8c528634b7566d5e92bfed689f583e6c8534793bdabaaae253d3b44debe51d71e419565c471c486fcf852a8a57fee72de35b35e8b40d35e7350e246b1bebb03d42c6dc75aa6b803e6b9cb3f15ac2ea87f00e20780d194d559739ab9f423b2d163f0bc78015c7ebdd6f62de3a0d6144ed142cf614c179131024c2e65293b0878600164676948c9405ee1bb9036ab36b5aaec3692caaf99464ee652325971e2039f47f40885c923c88edc4296a06d5c7a37710236dcb06266d298cddb633f0036f3d384f10e5f1a4c169bfade071445f0f8a330b0cc5d763f53e30a19a4d1178c869e89565ad69dc8169cddceff0bde8c1cd4e4667d03e06f691a3c5623edbd56a1d685b91b3d2544b83554085b778cd309c23c7f7f15e908d0d51ab7fe17014d9ecd1d8fb3a541787e8c474bf2c67a4f32a3d4f9edeb93187aa16b84e3892b5e39568f3658eb05e81eb9f317553570344a1aa7257dfc30960f3d9937c507f0295f8af468374b0c99f7074e839fe649ac7d07a048f6a4f48518ed8cc606e506b9c3c313f5476bb01eb8a247ff19c3c753f1c5712229e6076e8b38f35d3a2c5289db141229f9848024da3fad6f0faf5561e70619cb3d68e9090861d61dbc88d7bd21ba542d04cc7347109744d911056db13c28559f84219b08f187523f43916b46f23ab21429431d2defa091d8a95ee5666f6873499ddb65a71a4b4de8860c3a5e283b190a7fcc15aef83d696934f804a27cae1eb45f8850f4bfbe82669c48533dd7c8023808b2b23aea455a3554d53d7a0cc1bc18c56d0bb5cbaf6faaf465b9669dbc497880e156150d848dc998b848152fbb3080512bbb724c6ea0afb4fa77b69d0c1d9b0ea92d96c9e81e1c63e55cdaf755891e736eb911b157ad03a60c71333c2288ec60ea5b4e01cfecca90a5179bef85e328f07ce52bf4292e334a84e1fc40c6de8fa704dde74e379bd27e44459c9b008415b2211c2674b100f04713db3d3c33a9c99f8fe20baaf224499f69c75c95cd0edb064a26f0253a649a924e33ab69d82c971541e8da499632fd54e86cb2a30360cf73ac00a31231d15d6c83c224e3147cf3b39275c71e029de1d0594009a0406f364b53a79819ed6885368b9daf995604dbb66eeead090196bbd837ee376e82da560e805a7172ec55354f6b5d91fa462ec2a8784dd4231200f590e824fd3025082a6eb50908198d7899b0de94c9a46b0e3c64e23a1790196096e1bb7d5d3757df94bec3320c365e39d72c5b6af248ec149769767d8205a136908a690656fa8e1ff45217277c64e54bc2bfbaf57503d9421737bc803800bc688a091f87acd18f5052158fdb1561266e5ad2bcd06633bc77dab8030baed68951a194e16af7ffc00e88ff65bee15a2d9305014c95eb0260af56ad4bccedd20f938fbe4400d45ac24a47b9e0933d788bebf9f740b2bacaf58dabf314ea287288649317fb85d8891fb00f6ac6cfeec64d72623d9f89fe03d40474cff6132a1eaebfa8f75eeef5c0efa15dd1a16eb10a773ca823dc704a1ee9f0741277742c58ab2e0ca5a8e7fb2e6a3465ef09e833de23ffd40a98415c5e30547cab530c5fc3ddfbc670a27058eafd023424284df2f9d01c218406afdbc0b218230651a3dd7f8abcabc69e0fba58c8c15a2e4e30badc07cdb1adc1ffaac3986ada7e68f9b9abb743e43d709c4adbfe03ead262e0e03bae51205eb80db115ca79014b251c702cd1aade0de019b9e3e71b18625fa6a108bfeaf49da72e8023616b280a15eb512064bf54d2a24f9eb0968e21fed285ddf4149dd66d86c0c0e622201718e2394f85170763e17797b04f5ec8a8d58b273a53a26f2f325486dd32b59618344a2a60750117c93e6bca057f5b9ac972b8d8b41a1005ad7bf48810e6cfdb91c259502561b2555016f4be119182ec6c49a223d29b3bb5775e990a889390149d080ae297e70d5db22b2ce431737f552b27a681f0e04508118ca2fe4b306fb789a2772383c0b11b4dd0881df56bd63884917fc861325f9cbecc0f50b8ae72e0afdcc79143cd97df59c87f457286ed7c3936b9a7bb6b280627d31aca38ac2296c7d7fb7279c662260c7d3bcbd7c76dc9fc3bc1d99d71bf136bdf3104d2fa35251f9ea47afa4ebbf28d2b9a559601e948f4b1a0fb385e44e9c35eefa1bb1068accebf0d5333b610a03463652817f9fe685be81699a785fb59c8b27ae8f34652e366d337213e41e0109f35f692c78f61912a0c43dbc284c8c51b3007e3f6ea44157ba6e0ead7a68c057f3d2c1f28169fa094f2fa8e034fa261e2777ed584aff9d685ab2ba64512bb2c45c96f2148b0ac3b3e33a448dc9c5fe18c674ed5b410ef5ea4ac6bd6594227d04333efbee5d92365a340610478c75f223bd4e4db031d0a783950730bacfb8e93b5fd670ce44f102489b80c29d9e61b1190f610bbb2acb117660c625c118130ce36477682a7db1527633a180c537a8cea108aca6c4846fe6ff484c2e012c28f8368c3e7f0309b52e160fe61bbc68b91b3d54090285ae1cea9345cac175e10a078a38231f4321b16491475a7e4accecc62e172bd8ee49613f5bbe78a74de08b84c36c3f468577ebcc744bd33a1c04c7cc7fd2dd3277d55d7566caa679098ba559a8eb162fef39eafe7f3c4de7d37f414682f6d087ab87efdcf66486a59adb3b337bcbaec2193fc396d831569a1e3505bcc66ee4532e05d0dd175e6f7c3b0492020442cf149ad85aec90d1113698cf6db048f2c36257d0c93ffe1077eb1872452dd8666c69964821c65f725b75b9010fca4aee2c8c9df69e49f0020862e21b5e9249eea83c5d23702fbde1c5ce5e519df9899c4b03da1adcb252a9413ce2fbad54b29bd567dc8e0ab854f270460be99cda127e4b1933eb66581deb24a9b4e0e379d3372d96aa3e09de8cd0f8ce44e7b4364de60a7f8eb1338a47cd1cdc7c391bdac24c569bcaf6edb786804deecfa551f60d77332ce1f116744ca6d664b95f78e8b73396426c074bc181d0ac6675909f38647042bd00bdc6703b29b64ada3c1d7ce112f6ab0688755cb3e93a1ee68dc1d4e0eaa70a4faf61669c918dc5570035fd3e912f86f7a9df3810825f261c1d117be11eae17f7911cca593999ac8823c6d438c25af43e24dfee469e5b97d992e848b6103fb256c8334503b942137127db62d4456a86fa8bb040f861c2a9e7dc74711be8c5c57eeddf240460c6b387be2eff4c4209e4d3c3132bba2650e6f9e4aa36136e62e5501c7b1e706f034ca64e9c0418b8f222bf7f431fa075c38cfeb0f34546165f1e83700bd7aeaefcc03ebbbc0142e2cee7a1cc6d68336b36c72dd32cf9e33f9583e44d8de202b70ee709b9a716d516838c66fa511da9d56ad6ce0d1b09ac1ae918d1c12438c8b8e6f4d7164aa4aca86cef5cac513fa23d13be41d576b449e4d141f67cb6b11b3cfca02e547f30ef570e4216c2d892ee6d5f0f271b4f6b4b2d1dee01cbc1673df015bcd831dd258ea26dcd2b242d212a1e231544fa919346cce189c24f65d0b32edb18a870620500c380216930ca6b4945e3688da5e50966132535a88c4f9a80b3034f3720fa8f9755452c71e18566142e39614ca3587ee491183e3b0d753dcf3d163205a20e6c9ea572bb419daf78ca548f88eaf395d1ecd5f7c8968749a5b193924cd45f018a43d392794f2c3b9d8c8e0933633956345535f6999b5453aa152c8fb2c98c19489875581aa4bfd68b40ea1f8c0227153c68d1ce205ab7a43480de0edb5585a1f45deeb4e8e09e505a02424f79d83bf486d920107db6c84ae37437bac8e0ed61fb253faa0e8bb4ad606475d4d12e892acb7bf2aa3fa3d854a68649d9531dbeb9dc02930c899337821c14dd450d198ad89ea122ee46b5f994dd643d366c53cb00d01af2f4e9f07ca165989e6baac6a646e8883e2b2b535257096f9deb54b83c22729501e368dec047579e93bc3cde1893c7957788021db8d04b4f6bc8b6344a6acabbf45d9327a1c4e980d7ea48674087b93a0c5ac4593aeb53aa8f3901e9492eda23fb9248053154b8c7c10f32161042aa1056f62cdd2c37ee5b499dbfb6156cec666fb3334f78b886b76eb6d6c042082b7b91b19737978be4db1ce3b683d45055b14a95fd405abb9bb47943b27e44f9343244508c8e8cd75dee753e2978cc532319942473cedc01c1313b2449e053a2f741c1c0f2006adf4c3683eba43565f55b71e79c9d23400a73a9f3e209ef1c0a8e509c20a004a6f38b0800b49d32a447681385a61932c78b73cd58606a1a3b45c4637680a0f6fefc518915b172d255e71778996e42c15fe8085f1c8901bf836aebd830647c6c194df14c90143fe07eba2703d7e2ae48c39cd0213001e7d813bd33de29bc626dd07360c80461bc28e09a10d2d567994c646f44574ec1c539154ca6102be88b450b1c3da7a279b945624b0e5d42a6e464b8feb2155f59d1883b87b1f07909f33e99e6ab87605818938658bd496a78e3b87bac4e8e156ffa751a790530e5fcfc35795226fdfd8f6a24d9d2e205715f40d91867da9e3b4201e9befbc2e78ddfcecc649130092ee8a05af33d83a5d5177d87c4a26b3cf883db34a0543c39f991cf98cfc8031e559afd18acaca2d4a7b39b15ceec10506a74b1388b923529e23605b1d0ae473095562444d795045da2ca514e32a78d33b8f1c2ac31dde86120ffdfd9b5e657af4ad3dfe5462668aa2ed2e8a0aeeea5a97415490c6296b642973f8648a7bc8b1d0fd4d53534a56e5623eaa693ad9754c8c62543befb51509cd753fa24212738731d8612acdd33523915509e239bcf89b56c77e8510123bcf77f1a9598bb7d3a4dd6196a24837e7aab1cbe0bc1b160edea868a48e3b82d2f08fb2eedc8144ed28d450d5ba4d179e2380c0da9006c6b7f401e120a8ed4f151e913733ea5f2dc5678caf4c6ed074117b40ae6163f68cf2d18a54b4b3804e0505f9246adfef50846c35a13fa170afc5e5a89e5e9d9e84d37571e3d38da21c517ba47a8af735b2ee665a98799b0e67e77ee6d9d8cbb3be1c783a9a05fd8f32e1ccf70130cc532956b1d8527afa0b07fe6a75ddf7ba02486771face552ae2dc1731776223dc99f415ab527c0423d666f64e631608d1b7ea2595a04c89055236558106bb04744c4c75e50f9747d077d4c71679f8d78c3431c9025fad8016fa33115a51c5a2fb3f5642ac31209d8147b854268b000e66dbeb2b366c70f1d85df8c065a62ec838c54e4268496ebeee53c0bdaabed150830130e450557c6579b28207921abfabde336bf46141dbfd29c999895ac1e0e98c24cfd1adf2b1e260b7b403756098b7332f4c9a116c5025e3f96a7ff406220fc6687c24a16f6cd145ef400cf0a2e0701d8b92ed4b2fef8dc7ab748fc584a447b29c325ad5f66ddce2cd49710dd7a5b206b8ef010d41964b6a065ccb96dbe36e91326148560fc16358de3416f23641dd8bedcba109ab7a5240802351a386f8467f99b9af0165145f376b1fc8fbc3bf8048381f1b248f6664b195b10934eea108f90082058a7316075516762585af681e72a0d321dcc62781db93fc6aeb716a838a7be03abf38b0f6dd46b77738d3f53da51407442cbc4cc230a72ecf26772ef2cf404329f189451208d00d2150164307e4cadf7b13d8862bcc4691f31ee184d2f80f253d607e08de293039326385e8126b1f842b770725d263e8ae2517d7818deaef8d719678243e01cbb7aa48eadd7cab3a21aee1609cedf275d4ccbb4317ac29c055ae1bfe569702fa568c118f28fbef0281dece25274454c630fbb002cff84d78b75ee1709a7f1d4fcd24903f2e27c8850146e0620dc8866168e03df9809621c30dabe42a3333074e6cfa635dd373fcbbabc9c9fea9e84dc0ee84efb2678812beac7cf42d8062b0d6b0424244cc96f2931a48fcfdafd733765f5b84df625569b414b5d0663b227dea9dd94c1e2c3bac9add2234ebcfef1be30e668384b15a616ff92e6cd50b01993b3eede1f61a502aac70b9f9d0cad5434e981d73cedb2fba8d8385513b5bdf3619383f2ac142da8c2295d206d9420b54ce9afd135574c73634f3b3bc3cdea8a426726b6512d66b38d8180a5c2ce5c3f4e1c67180ffed20e4634ef31c9acd799994ff80e9c2bbef0cd9b05d74334a7a53636be0a20a4840506f7ce31598d0b2e4d7077ee93b0356886e59892f2b34f810ae33ee1e83d21a11adb862259d1e7f441e5606e476ba68a5e3d87750f406472b7660ef00e2c18c893b9af22083cf09c45961f174c2fcb61434abb75d534debc3266f309c88971f466e7f47eeb839517ac81f67412d309bb1d5bc6e09bc62570a21686e526a8428f2bd21f9973e602cbfb0bac3b8514a00dfa3280638f6097a849c458196e7c342963ca5eeed6e84453c632651f3465e1589ec30d5baa4bf98f0b1bed2d861a6801b4b28ee3c07dda54de0a1446ea6306ebe0b34be8d26bfcccfbe434d480d8c5480dba31e4ce5d3fbba4e208a4a92a1af8628c2a43e0fb7046f4ae2fe90b82c40589db6c4062a3782079707041e2e91a34f00f8edfb5c80472106c9a8f711a6126d9cc8d6b517c3e030511a084c34b058473589540dd511a1ff6542244e46ad0dfe5078f9b91a809aaad43820096a3057768db910c1beb276ed3028cf0c9210cc00e435f0e515ba5e5c21e3285e4455c08d385212e84357e8ee46e66c7a961728ad0f3fa6dfd60f00cc70fefe80379990d83e5db1480ebe7e9922d1179295cf366ac7cc01d510f7af523ca9940d87e55f0952eeb2d2712e29e21b5d75a3c226ca6daf169061b7d532cff8da94bf36b8f8a03d306b35226890e42a9080d36b1db9a3be357b1389bd7ef20bbd7161c4c635f36fe56155fa380a79c97b63e52886eb76098380d2baa20ad68216d8d3b9778e903ee27774e03cd5e90b5c845902f858acdc039c1b8c4406b0af5f7233fc2178818851a863e9b9d023ed21a230458b360728c7f9f66e18f546d95d1033e857e438fef5af6095e5f3765af6b102fee4ad9eb7e698f97d273f5e171746c7d7678a5e2ed0827ff921a42c458d0f1c1c43db09f736cf032fb28067737c73f280b33fa46d8c065efd4c058fa88d30283deb6fc555a36b0505c00282d019cc1abe75d8aa9814477e918036b57e4446a5fdb18a83a8ec09e2d6c6f53e60f0fe93782d522ab8199a5c518161ed1ecd1e0382c90d3fdc9824150ebc26e7399b35fda3cc3d303f5206c8faa3ab9cdabb88ee7ce0ff387a511e0eab875913c105e4ec7d1002753eef49604868d75ca297e3b521a7b3ccae59e793b23e70afd46f71b53e694797381aec31578c659029c8aa060355f9471e496b23dca73d15c0670b50235f735320d526186120fecb6cf53833f4d501686c99e8f508080838785bc3e393f22296b80e21ec0af199a65a3f4b213017f30f62a93da4423d828c35f87587b790632367982457b2c4442ea5367bb8de6dd767ae7e93781572a8203fcd82ed116f2d571ce89aedfd21572452f6e232a22bc97bf5d08738f05848178df6dc991b147ed7298da05303199126da28118b55febf31d09a4930e53a453a65d7ef0a7e879cce7d6c81af1854f4655e46b32dcc51c15160caea20920ffd689db66ddd81b4ed5893e965159f68cee9fcd1b1d449b2d1b66d490cfb2f60f2476b111034f94db04102c1289fc102696c8d4daf3dbb8c5760fc6a6da447d8e98a5a3be56f45c66e0a5dff0b61e09aae3d05fe0b979eb010a5a478994ff2310176b67218fbac73d542cba3e1ee23a8910d2fd654975d67b5d6efdc691260beeec8dfb573846cd1b53c4678fe9d70abc5e5c05fa8e8c360fe9321516a8720c649ec34d24d2e88b271547cf6fb65daa90cbb7fbeb71728ef6f4bed3675e3d6956f6dadd05034b8aae61b862d979a467814a2ca24f49d9f3cfa369370961e591912d5fe80e2c2e208babe0943146ce5413dd45f69f50c3d7716e2c82e38bfbcf2cc04f7256bae9a4ff94b4d34656a476697378e6e2da06dff10f1890a55b594a1c7e090f5330494f94f9cbbd0ad0c83104147020001e213f003c0153d299a1248c77ea0b9dafccb188d26ef656fb495083c2a6346936264f79052bc981ec90214b681b012d3eecea94821ec146d8bc7dd53668f145a8864539ca67d81dbc69a133b01cbd7bf5b07ba9b2ab8efd4758794fa223b216dfdb7b51c25e4938c7c45aeace9e12ca797bacf02e497d87db8b61fa02216ad47f01456501a3f634b9bf4ae417c240aeb4d77f193ced8a8a27cb8bbe7c23c6dcfcb74806d126ef475c60b82852356d12d02e9e07bc79596d0cef7c87ab1f50beca61917087b5e1a9a3df057978ec68545f22d05da002f8d8f38c21e1d71a477fa6f6b299b714748e65fe6ce3628909ad795501f5e4546abf2f0f380f2e8c36e337934c31fd322b61a2951f8847afb140cc56e1644180475d356c6c2ec01ec4f3fc9141e8a005ced9a1e24014c13b1248f6741c1fb838fbf83d78c4d96e7f22984045533d62a918d7c0cea5922059381413f6a6209ce7c5bbb76a1af9eaf435f8ad6b5acbd8098d4c4b97d4be529f751757a305a8e3aacf08288afa3abfd5010c15ea6c486bc238d5381afc4a6156c869e190dcc8613aec4d6aa94c496322a209806c0ed4b96667d569d8d89a677c16118b697b29986a1f6bd5170844c2f5f034a8604b5b24f9c81e2aaa48417813aaa0376f8c9d794697f73ba6555db55a32142c46a0903e279265f406fb97cdf3dafb10cc980c92bf326c68dd2861521c1f6a92fc618e01814ba537c73d4418e2aadf4446afad4cb8a97c3f31a5c93ca1c33a90fbf00f386607c40470b8c967ccf8cf71c610d1d6431dbdaabbedf12e67e03a3a128b82b26a1cc7f3da678606b8393e4be541241b827acfccfd7275d3aa0d1c902a3c5b8c29799559fc6bd45c42f64dbc9b96d7814af1d80f82b03e2899ca104a5e880825f3381831efe1b956c6f4c0f05c92463ca3837ee0810e519c6fcf20813d0d6bfdd9b6cf5493ddfa35f802165ab7ed30f1faf230210119484c01a208385fa560dab0617238ae785f6c243dc0f1d2fb073b8b624e378a35ac6ea8409067440d599803f2a828974418aba295bed4bc5a24674c03f6fe8b9c5acbae3ffdbbd96e17d995a62b02001c3640064eec6711b066262b98f09d269540437a91891711c853047f4484127f7f4b8f84c735c8ac85ba6b6fc6f116b0df9a84c62b2269a585404fd93342825af1c0a95c3f980a08da79f35c5eb0a18168c96adaf2516d76370eda624791e9d8e217276a12d7420206aa452cd8f362c23e1256eac1d24aeb9ca2669b1e0036f8c8e787de55557b47e417812da6314de2b82d929394c22c8b063b05398fde33eb61150620a58ae3dab1704009b472139246b25a810d1830b001260b1de0e89639cb10e510d6d973a7448a4ce6e288de646183a51e74fdcafb77629b2036031436565dc5382726f11cefbf05d2ab907d3c18297007b9f11485ad88bfac0b878c2399f00051a87f4db71ff2a10aa3dee38cbe3e16b4f8ede32af0445ac2de709fdf03150b02722e3d5d1d947a5283e18a4e8e3eef750176867c46b29a703e75352187d52707c5210a98e85df21cac7cc43dbc7a9da81cb1fce988225ac3480ea114517e4c78639b15e5f511911dece30d4bb1e20a14d75ceff6c993773b19f4d8cfea2d1c4ead7ae014d766908f71bd90ed8ea4da42274250c8814453bb9eb8b21574a6013581d070dc76624afc1188ca74b8c779b870d07479e8d36390d10d26e93c26ce8f0d20c0e13feb398b044c4f0a288614ed26d31bd33b663874593b3c0f29d919da2fdf181eb3d67efdc8ffd9d38a56836d03ae9098e48a60b70448e65a365d9a450f7ffdc6e6798288c0a11185d155b2082cfc4bc2d0b1e674d340818ca78904fe6644dd0328da74e0ed1ea96e03799959aba1f6849c4ee1128995e2bb1917b3d7d98dcfea8e6cc11ce4dd82ba5513cd522049c46146497d079b36d8dcb6abaae15a681f5853640a9048124354605c5643b6e1449418a273951812dd8bf40b05acb70258b4c989f5e3adc63c0332071c4735066edcfa5a02abd4f2ca38003f8981931ad6a5ed4b621cca66335f50d8df4f61457e5ac0c0445dcbdd7d00e537c9e78b8416dfe31fb3a9020f528b319d9f3a9e54413003d07df10022398fb7f7e77a4e9305d7c1ebae2b18a2b7b4a43518031f109ecb43a72963a604da22f823c24a48943fab92aa0d2731015793e44c4aca90b232af6c27b8df88e6cc5b76f34ab7b3348dab459b02c22b2d5924a4d3d49c1ee067c1623f04bd0986ff89470650e728ac3b93f1d3c6b19c4a54b9d852e2690510727b0898f5b1aca828525ccdd4ae942f4119a734e853a116637c9558d335229fa020c1e261243e6521d00688daf5ecf3233a1a1a349ada9563c01ec33b427238e9c7b9f1180c55ac33d994ef656d9a1d3754e0dc45c7253e95228cbbe51e56616bfbb1e8f4b48cf242046b56d003370ce304b30f2858980f301c01508a17181a59d1ad6c4dad5c62e7684319058c35dc7cfe4ac084f9c8e6b6ffcbbbd4582300de2adf61194f513720c4b371f0e9ae1e6535d216e595802b79d19b8d0474e455787a1ef4bb0d29de08a0bb86afb0f799d58874dbeda0f046817d1e1ebd9f587f6853c3666dbdb8253c8b01206f112fae0a1f08d9c435c2126ed70a2d047d2538e4d12104cea939b42944402788902e53a092b62ee8b3087c61076268825d8a5da40e55dedde385b91b9b0997031c30384c702aff3023cdecb9f95d5cc62923119aa7d55e0dc8edb06d0407aa6fd1f01492cde0622bf2f23352192a55f1e2cffcfaecae7ea8042c4e0ee4fb2cab3cc048753326335693dcb358bf2b1e5161e365c12081fb1267a3704374332f855c41f11aa457790d62a319c328b121c86b0e8c2060f2aba6bc1a48bc5e501c90e7f6a0570a8b1f74e5cc3ab8077d55c7963649440d15775c7c0e70f0759daae40eb5c9dcec2c90a3f9a7c1cf24e3d6921f80c5af6c3af7f4b680c9211c65ca7289ea66b3863972d32f371239fead3e34a3d6a9ad8f7d22bab9c268e72325f99f6fde3f45100e4146cf9cbff53af26972dc39ca8086f70d2967c0fb3bdf31259564abf7bbd2e7146e312bc686b53d83d5c60faac32d38ed7fedd9409a86615af8b8045ced6616ff95ddf4151903180ac767f8e624d6a2d7d863ed437528659ebbd3cd7cf775aca4474498a99c2d7473a1801f87542d699820e33e2e42b49d8cb2892fe1d95541124a2132d6211a6fa1579dce56cbb4221ddcab1899533ec6e0b9afb9face6a8b7f0a39b836efa92b9c53eef2c30dd9b3501ceac449fada7e6ae72975650ea4e771e5c789fd3eb7edc08184f70aaf6c21bbfe4923db21a961ae847073ae2acdd701e5898b6c19da52b15986cd1aa5e30374d164a5338115ca4d63510bb71cd42c602ad21aede1473ccf7ea0586a79cfe3a388867126bf63911cbc3d25d06aece51f62b198aa0ec40fa6aed1760a23953e06ba6b4a0bd9837a83112efb516dcffa22f94e9685f23b32729b1d3595251dc2f0e5c4ce46c0c14a922180db1088615348968c1f4c945f03d485803a541320dac2cd5f93eaa6498ed6ec06ec550116145b630b378bcc6580049dadf9adc744b3f1c7d38cc61a6ca62a506d9b2ab1b8f446e46aae776f23dfdcc35fc6e3aaf5e915fa72db77c3461b3cc6b31f031ccd170af2b71090204247f48fc314c4bcc892228210fc457ef63bfb18e381c2ea5c93324374c5e971fa3d58b85f333ebc2e21d38a0bf30bfb8ce8b00b3e77ff868cfaf5f1208dec01e99146a8df1a7fb79dd753e302f639945b908d864789e79697d6f120c18d599276c552501197fee117a845baadb68a801a87eef5aa57430152ab195d2e29fb2e9c024ade53e1c9146e4bf798c7f4acd466a55bfd74b5f0300df1bd12c422ad2da181ff0dd6c5635d4f583511454fbf9e969905f94768e02902e2dc103dc6f0cc0ba2c1bf1b934bea28f681ff84279036403bc00d4c4313f4283aa5a2f18024c3c98371c9bfe770272e06e5b945e984adcbe3b68dd647342b029d5db50b1b9e233a1e8c4fc06e02df46447b308bc2af01af55e08380b78a38a1b80f2a0ef38507577fec4a4e476fc76d9a1a3428d9ff648d64e7f807a63e466b82835bc0190fca1a18b44ea3caa1958a18870abf9d728b446ce4d225059061064e46987feec205a712f5739d6261a2aef218bc3ff1eb46b1020fb44f658ba1f70cb79d676369a23f4236149da379abcb50b326df0559ec371fefcdf95ba18d4a5544a4f804ace96ba4e23acc772ffba0d24c47539ab9fee0bf7a15f7a4beb160b55491be602f4dbeccaf802fd346aea76abe0466e08141ecf1bbbeca28677d66d79ef8cbbd70bbb7f71832c08d361c4989820687caa8a97ad538df9d960a2ebed08b62e0aed5c840deb53223fd66d5ad20946be41cd45c48a9347d6f131b175a1c696a3802b360a320acba7fcf034ee2dbf15478862be58a3232133d0b6686145d7091f19ece7441ba06bdccb9fe3de83d88264b237f7c9c6021f9153db41266afd033eaa83f76ef5dddb54ba52441082a492562b6e328ba2ecd1172d975741048e95dc3e1f9f7a681117be12b82bd6a9790117efac2c6444054392bdd339a37404923d28bce2ab15bfd41c2744235c60cc83d306bde5cbcb589540231b73bee04f2e5bb93498fcd8de9e2b4f42830dc849b6df526cb5f94c5e26bdf3d8d03d1a12a280f10e9651e2109e8062fd8743398340461015684e94c75d932a7d94eeabe1f9f3d77ec668b232fa3499a1e604df1a850589681cf87c8f90c8ff8c032374481c526f30432be67b96017994a60b44e4ad558632f78d1e89097787580c1637c0cecc5b89bd1f922c98609845bc157f04a6dacc53fdc4419b36deaa8cd126a966553280a33b0ffb0ed66b32e10fac268eef47d3b8520b3a75431e45a8801e5cbbfcac35d16867be1a1a6ec727884b05717236abe09a916049bdfac3f5fa2229b3ed537d4d1a48bc179e2b3d39b3cd104baf288880cb1e873a1199259db9f0a73855993f01feb0e354f2cb88fbb45c69b982908969de5207354d0559feb291e530abbe4d4390097eea3d931428fe9e52bf1c0800794d40596a4042b2b123d9be4ba1888e9301e7be8ff1f4729e19a9136cf2268e1d4792a5e3fc263c494486f01928273a8189cdcdfbf44a38efe60deaa67b87cef04b9df77a04c0b818d181ba2dde831446190037f5a80e03bb478ac10469429dbc8b495b206b774119b17e7292282c2fd0690c07b57da07b1e61f2e27c7a30781dd3ea952416097edfeddb9e40fd8874d72e9510d374b691c811c6eec989300642aac8665e243ba16dcc3c7e5f34b783360505e003f88ae4f6f7cca3c335ca783ca7eb70182a3db873830cf23c21f1a51f8f29e99a5f9b9279a1264bd43a10ef5f62420e6a6421e154d9c04603b07d895d2476fe4a074989008129f909dd2fcca0f344052e80baac0571c5a6f4b803e0266e230154062e8dabaf931c0d618c96229d58ee00b686a1760762b1ddd7c5e0d26b8eb9a096bb37d0b6e8af9a14e8c370d0fe5cd9e71ccb32bf77a0114d9f9eeb5247a3570d7679d5504a6496c31b1b07abd68b5290edd6ead888dc0dab0e9a28b393a7e723dc0c87f8715b7062040d16d56bebcd0c35c601d2258a8e248ba13629d114e6341204f433cc0222dae2f7a813026c69d42e3ab94bde41bc74a03bacfd0d8c69d5ac47bbbc05a016ebbf30aa8ad2ad49fc9e8b5e1c3e76da577bf5b4a85b693f8cc3975182f092c21ce51d92586f9112e77a9721642141cebc305444c28265b0343d0367fef03895211ac0bc5777133a03e5189516d274aa9b60939b47afc75aa0127859ca7a75cdcdccf04d4421121ec41fc0048800f22e2c26950cf37777d69fe639adf45195b7bfa13d78048e9f951f96a2f37881cf6f497318f26bc3549386d5362daca6421f35fa46ec6f7139843bbbe07c8d334c779464e76f70ed75818e57ebb8e8ca2710b434a367f2481e4b3476bf5bb5cad016e2b5089f897c6b24d093b45b7bb8439988e1d1e4008dfe2d6de40b0b059794d87322e25b0827f7cb1e420bf0e8f7c5773cc2deced0ca4d12c02e3b54c73f6308994b400cae2e06c0b29f3ccc1ac00550437793dcfdd3751302d767e1c9ada61a9b2abfc1998f0779790234dbf39d0fc5d9b2f00d94ca0058412dafd65d1a3c6fdd9fe0f9468eb8312f78221ab3894c5e2f2cb8a2b4b0f4ae44aaf6da1f2573702cbd93d04264b9f2c80ebef1eec6f0f9add079fc68bb74e0c897280efdd1f941dc0670c62e53fd1856982889ed6d4774fe17f161ca25b1516215c1fe564a2bf8d994496bae4e7d07f3817ef2cc702ef51cfcfe94a6da5bd9df345b1010659ed14085a1894e56889a378f9fd2b0fb918b8039ff9cadca37df66abf010922e003db28657ce42530b0f6a9acad08a58967a91b91d3c13d34d90160beeaf5808a4541d74fb68af8899795fac006c0bf6caf99809cef60b2e2b96bdf52c063bc2da2328be2c816366e36fdd0e69d5113ac32eb61b74c0f107f98b66901b1e98f1ec8bb95a719a7177ea4128a73e099a572574fa7a06da9a1788265d9a0b1c4cb9eb25cbd3bc07eab9095081bf60e0c8b2af02da6eb143622d4a35d51661795ad711baa0d584b833421b691ad4b5c8bf1d52987f00c2307e69aafec3c50855e28e0d98356ba65ef29c2b9f0388a4f4731b1851ce7aa6970b6a31473001fd83577e640f9afefc34ccb56208e1a6c941c26a73b9e6926a5cf3c8cc8397c6a52a4db8a8ebf0eb59ff5ecd8326eb49f878e6b45b98c6e21ffe92f486091b438adb81b7d3490d296f18392261bcf38e6440e568ca9755f2ffb02a445c25277deaa8ebabb0ce94ce277410d52a4a77e90ce9b3d84a52868adc618eb9bb7d86e9b937c4e604bdb27d1c6fd18df7307661d4a24eda7c13191fef8613350caac7c601b36ce94280edfc172e11aa13726452b93af0e61e144ce76e981a54ff7ea1d7cd9b74f0e00342133b4ca51e8dddc2c0f5b0f4544d3b531fb497b6a9db5bcbef72133404e378d8134ebade8bdb97d5656afdd96905458585c35ee6034d8a7aaeb3d56511a05d6369941037f38d3efff73d9c699e4827f3b2af344e0d99b69f449a0174cfa1067d73c84232aa3c6c9caca7f5a0303ea2782128e59e551b2aac082465d2c884b3e466b1c8e7f512415e6c9fae2b415a8b71d04dbabe0ef6ea26bd4103f8c70f62e005b61e5ab08c5c00458a7539cc5b2e151e85a6d6a1705976766e1081930a183fcc5b5e023ce008ea2fbf5e3a415e8b3c6da66d7122fe2348e882587c4bcd91c5472789a17b7cf7deccb34f181e101aff491dc40fa482b54e573dcf1ccfe0b49942a46f025d5b6d6f63abe3a76f03ebbc52bb79f9f4c9ae2277c2a6088460034719181f9da5cec9a6e39d3c6f34e972d810f5817dd06efa06b9ac59d54525197c25956a3925f3c682b18988def47ccecd9ab42c9bdbe66c24c98452a6208bc79df15f609fb4f3538898f009121d8ea691afbdad310f1f0c64a40e765ec361c2a4cca3efb6c0c18ed5a35154d9e1ab35811f456f5924d1ea9674ff73f88155293557192ab57bef326af23c75fa0a95c2850821df076210593c84745a9d26213e3561c5bdfef1d3f81fc88102d45fffd45da83bbd58bd83f4fd15a3c6f636ec44d1e38e969635e761135978b75b3c73f3804cd6781bc7300616a61b194122e2e431785a449bfbff5d1b4010b880713498b223d0b6653b386d2157e65df65160a109f140403da4c64d822fb67a4d22c652b8c9ddaf0ddb6e4383191e637715602ac0ededabd8cc54b52a7899d4809d7b64bcde9350b185560b660c580ac95875d1777e40b686611be9e722bf3c72ed233678f840f50784d2d58d6f2a11ee5666f5f3c508411ec8e7ed43fb0ec4426d3738efe28c9a9be4edd33b356c7199ea89dd071f30cc0a6c6e6ca5e8e4354cca6e39a6f535ffe1658955d03b60ac986a617608ab2f72b606aff3ed7afcc9f6d52154df0dbd2ca290aaa3978e8aa6785537c316602cee268c140ed569db203edfa153197bc92e662cbff2b30f3261f05171759ab9e09484187b9132eb743dc135223314a8e1bac358908790c4ffba8029e2095ea544c81c42577cff6a984e2e6a1d5a9e0b8362ce2539ce0af423e4e43ed15516c4ad6016e140f42dfcc8bfa040c4224109bd625cd6c118cf104560b4edb0d11ddc702a060e435d7f93bc8bb9b165d3d6ce955f0914cb734802b7f20345ce2faa1bd545a46d738527f7fb9f4ef73f690c6dcc5090173b828141f93d44c82b14b48153a8f3c7941c3d44d5b6d89e19b40c7b59cbb34b1376e24c460b75e5f5c4a34b34a1574174a690c063a0ac76000c42a4fdc02247cad9ec1968dbad6e37cad100af57a271039796164c0547bc0ba7e966289dbf7fe2d962a5b2b694ab9c493cb04ee6e423ede9e964dbfde002ac42c3aae38553a9d7f60d9d0fd5331f1854de4780c1fc8a2c5cdc1ace9c6a2d3719450422cdbe2a454e72e01b46d996c5005cc23bc1e48eee825561d4d6526c046a1576658d2cc7f4dedecc7470ec68533263a2a27b4ce23d99e677547fefa911b9f1e5f472ef73b0008bb3392d25842bf69bd76e845e1ede58279678943a18383fff4f93f2ffffd1e8848df4a162f76e1d5e6a74897330b44c0eb7dc73bf68c30177e81055cef070b90b02010451613e06739f1256bd694eef5b38cabf564c1874939205603ef57088501127ba5966dcd7b6ea9f3a321045ac1bae72a1fc8c6f7403e9c67175cd52abe673755b95d6cdd0df6e070f2fbb5937b5ba720a89e0a1d364ba37f9538334a75ba33b4805289f4c2c9a27a6b5517d04ea4706e75daa4ad8ab468a0fa31f3b56f16cd1527f10c07303b5f4f03ccb8021ad826524858bdb9d069f5572efbe8b87fa9595493e0944950f359b0554c8af84c810cfa2a4dabea1bb9cbba627423de5706d7489739c32b733e9df0bce58732aeac44014d9df0247f22400e948e268092740f2329e0a17569ad04b72cf7b64f900b2af55120f905fd12e5706df170d01b1594973646dde31c6372dfa30ac663bf615c91b4b6cf312a3d06b42409215e717fa5f02f489701ba622b2b5336542d0b5ddc6815b78304ecfe960a0d8413efef75182255d2d3355c2b2e89ae9cb021419970836a29ac8259152650f338f88fac10d19587925387aa3c5465d011e6d938b14d2439b603897e39c65c1853a27bf23f09494ae645d6e9ac92bd1d100902e71f47312ef0ec263cff0b4fa3f8465e3859e9cdf98f4674f37fb53d09cc4009506b4dbdc165322ff92eda8b8e060f09eaf10a5d39d4420aa23baf870009e966050fcca80b10732262bdcf19549fa318bb376af8d84cd2a723b7e5e91bfaeda957556690bae0b6c03365dfa8ef50b26459850887a73233860a620b834978f2c8bf4c6bdf81601af1279cb3fb9bc84251662f96d49b7de0558254e4f61c1de853cc85832c020728136a95a2f24e8f84478e3baf0e4bc57fcc0c2c48b51fc548cb16d0d9cb6551ba19cd3f7fa9e321cb0fb1616ac424fc61352b1ed9dd6196d59be402697bb45d10b50e388bcc7f2f8bf6d1654c648bfb8fb09b4b88d34f6fd8a4792fb3534af3237a7b120bc188a7e4bf9baf406d40b82e4078083ef1a69fda8816de053d1d8bf2a6612f0c52912a48eea7e702f5349c2648e5bb53dc8f2c4d09363b418f2e682ccb14a40cc91a27a03729e2e4a9a1fa4d0cf51615a02dff1f36dc43e3d2381303f414d81ceba37dc6427e60c0db7ffd8675661e90c258c96b941fb8b8a1f9707c42e64b3f4ff1a52401b04800751044bb2fa7ef9b0f996479e78c24867f810419b6441a65bb26bb0dae7bef52e68d1a875ed4de9683dde9414af7228005af6572f780081a7e6be51c9e96163063b71d52297d4eb5c68dcef68308cc0bcf3ad7c15f78d531ab47d252683975fd7ee28bfcea3870a1ee4263d463975f5940886a560701b47612980a0a4c20ec33a4de85a17f2392f97e8a17ea6106938429156802ed8a8ac7a38899017be862e06a7d9e34c2eab09232cda000da798a4eb40b1479056c4dfccdc60aeb10093e97c602cbf349a98811282242e0d6625ad86ac6818cd98b90890a9e18527152e924ee394accdc323b35d2430218cc526d6e106bc2a345d5be1798877a56727a65cf6545f11398102eadd021ecc32a4542e16afa45b4e4209181bab0495df0f299fcc4e80aa92927622b7c39f1ddf70ef6305b9f82ab41f6be1f4e6117300bf90c6ab68c92135603ae3241425eeaf0fed4cad748be5881c14506520a25060a45720d5e525190155fcc6960225e00bd8fb6ad609d7dfcbb5399ee06083dee75a50bec02834b3c0aa1f04d7169177198c97f78465c1b230ca16b569d82a3e879f6ef66ba1e22ca78b7fd083d951f2c3f082ca2af591548f2b4bccc7717612d93b20285b98868141f2cdb293833a81f2bfa6dff4491b8fa1097b0e35b877a87a9c4f7a556d304075b30926469374db8e1c7a947fd60f8b32c535946d4ccc70ca8a84d51d9fd442ede63238c679316930683335c34d45a9b09677855b2fac7eeb40c10f656dedb37ee1287b6f4569241c488c5627a3719d55b532ccdbf649e370c2b6d3d8fa634ad3f3488659ecb825710058dc39aac59c6a32f437f7f2eecaa2e00c496ba8b3c8e42c6e5a4cc1a537d91cff5041d8ef565fbabd69b15c2c5cc7e1cf81e68f7e77d07171cc82b96a180106c7a4c9ec0fc6270f404189453ededfa3a8e3117797f04f0322ac7ea618e1ef726a92a7d2ab62a5fa69a6b951e82926e8f2d4474544a9a44468ce74c538f45fcc4465d8807ffc568106b5abe99934b9e7cce594e27bb31a013c484cc22746428829975354e2f168389c67325329ac09626b379a781c5281007a4c77372fddd47c51f6ef25a1a1a6db53c0a393a78b8a8d2abc275a71015d8b1acc750c37d576593659b277ffd24f7c4c3b0435e79bef8c15ec6634e445541393c6c0e286e68016015ea2e5751a417e35187dbc78062e904435bbe0aa092e756e0fe0a9b7912335fdb8d4f8321acd14f4cb85786821b1744c56dc1b44daed8a908b2dc1453063385e9633924638dbf1e7ca3f579376e60bbc3b787e84752b8927a29f02ffe3c7641e398bb97c661a6662ae31a74516c5b2c92f8587cbb16320787f3f6e00100a9f826c3387238573a070770f2471ac39229bc6134b2205072bbb0ccc7c297adea35ea1b4d141387695899b7c8dfdc315348021829240b03c60ae8715b8831f3a6da6da430de968dd910aeee198431b97f24cf90334274bea49318ffe7e74d7d724a520f7d9af1144b87a71291ce5578bb368b7e20c1e064ec336fd2b2a590b1151e992c9004050151fb17106ad7ca8d6c9396b78eb8678043abe863a2f7c727201829525d2955045ed4db50ed707aae60d348446bac3910fe51bdc866d103d6bdba0d72d52249fc9e567fcea9187393f75e8dffed4409a9647c41a9142f0fa474c0dfdd6376f88b1f0183bce279d7c67fa01f8e4b7ea406baeb1615b221e86670910d10fcad46f3504b1bfab84a0bcc09dc93d1c9c9ef4756191ed2117ba9a91b1d92ae1e1ba70be3f0713aebf51dbe4218fd3b322bb5eaf93095041ec1fd26c0ece47efb64e5e986c276ac6d1cbd51d92bf6f3a39b4fe916dab9acad8c324c58224c50981351ef46204e80f6def5325942fe8298037132aaa345b87c7e6f25bee5399718c7069ed63e3e1dbf9c6602b22027234ba797bdc93f235dbe207b6dd1e0a184ccc3851bd07b35fc916085b6e500996460e0024eaa3c776f8be362b15859dc96d8ca9c2e822ef58922a3b5a669f49d33863ece12b713ed44da56bd9ec0934c679646faffb3311c8a47a87ee89a3af56861d76af16c9b22ea59712262e5f4681a43081cb40b35ab1ef06cd4d185433fdf509587b50110410e1d42301e0edaae9457cdae57c66560efd1340629f9af035bf7a7df5396e55ed6208b123739e990e95078876111bdd2ebc501adce59d2b12bbc39040121d8f2eafe62994c936541185872a68497ccf389ecdd63d82a39e90469f6eb96204462b75c372b290ee5632598f51ef80bdd2d3693155ce7367b04b758999d7a122baa16a83ee3b54d1f377ba0d6954d03301ac74e1126459b46d11b24994344e5e4937d4468285f29efdecc10c2c73b4f35844ff3055c791a2103b55e8d3a3835b592094f09036ec0f02e0006bafb6e35f35dc134fabd5428cc3600310202fc28834cbbf61f049cf0aa16c59557862713e12ea5621b7cb568756778cace1403abb204573ff855d82eb9aeb1b82fb3aea3e51ce43d7d75a9034d30aaadf2600cc90aa4d80cf3250b239fb6fa5683d25ca18a218eae67bd31cd193470e7c8f097f4e149a51322108694b64d717e6729b0e6d5ee67cbd2edea847b86a31cb09ff202a90b67f6dffaa7d1d5c11d80045df5aa0a73a89cb0b7b153a8ef4a6074752e1997b942c9c8c8d5e41a63eb22b537954b442f342746fa2e59812be774e29656e5fedac8d5198fde7bc228196fe48a8419b6395c91b311bcb003daa6e68459309a59a5034983c0ff835e5bc0e5e1cc4dae5374b7d82dc05fc33c3bb0027d667643d82e597c880b7f356f945d5adffa5803b000c48e3f248939b1d4bd15628032842a373dd27b812fd854f18843eebde5de5b4a29a54c490694081808d207b8bbeb9ed591581b8127c31f23e80c20c39f221ce52864933fc31f2314652cbabcfdf972da2beb77c68023794a07c09cf1f0afcef2c3f3a72f7bc0c07704e61ceedde74f81f80ba11d0bfd491bb6c4e8e3f7abdc744f4e16f9f459e47b9945c2171e98e46a953cfc9bc53eac2f59ec7b5966d879dde765d8241e2ca4df7758c068e1e7efee2b79f3f81c61145813302835370c71c3cd0d3637d8c81c21839241c9a4925ca26bc51d729b6b85db5c2222222b8676b082688726b296b0766c8ecd49a25235c1d3844a8542f9104338aa9534acc1a09b6ab5ac6ad9ead3b909c579e0aa66e23c68264dbcc97593b76d9a0446a56a82a709950bacce103864edd81c6b498d4e1e40864ebe60844c79a899ba94ef3f70c8dab139d612d6126b899593465a6b1255e0010ba44044122c1805dd200548f8013ae205339043b8911d7e5e76182740d97f9c48f1e3a4e74e1938ca6f7c0847f58d0b864c2673caa4647072bf9441c91c21939249e5cc59e7ac937ef48f1dec1af39bf38fed980fd9bf391beef5b44182211783820d61433fcd247f43a68dbc0175c3cd0d36370c7103ea06144905243160c720ccb7929d5c95a4725562936b4fb62f331f2e59da97f6621863bd7d9bedb055faf0cc039106c8afb3d4b1ccee8797c3bd683b1df69758977559336ef0e73af17bd78131f5e37b0c608cf5427c498e8f591c0f5b9e15887df952888049b63f2b0f9d43901e3acf4e07f7fcc63df8d88d7d5d6adf91194660f9b28340344ad15a072a65120ef0c772bd7d96abfbe165fb30cbf82431584c6018490578ce3967942fbf90db0718e3d70718d3b9df06172416f1e1874b249e9ac65dbceb194960f9b387b47e0a9114e0fa1f348250e464ff207e8233b483098a39e27fcf421ffe407193df4d4fe3c7e7a8bec3c8e8d951e6a0bbd0165b84639f6c57a99ae0814db44ae593c221254ce1c0f103f895b35e5a6e7ecf29276c226b244b3881b4155d037eed60d7b03fb91ecab3dba1ade81af3ebcbc935516d221e6aae1da5332a7bc02ca19d3d7812a56d642be99bbe714232620303c98820be1bd9fb09252001e7439f0fb9238e7f038945740dd8357c28161171228e51c41972f7a0e04f060e4174f09721df87dc0423ceb501fefec780bfff219f253084fed8e7907be8f02507619610810a0934606c1491dd44cb40934a09244ddcae28c16756d23230cbef9b5c031c5f01d9210c22b0ffa06bb4410533f10738451850453346e40b963063dd867e0bc58d106e668cc42842ccd4298486683263440eb18599da41b7e1c80ce6d7daa002d8b144a0be65abad6f75f68dc82094702ce577d813787632dc6bb7e12b590e7325ee07f884123c4a668cc423cc89cb6eec091ca3806377c1b0933f4b030a3130c9fe77257bffa402c682fbe6ec9c9408423f48520522e4942d780290adb53e410114706830655a1c8b0e360121781234633b1b5da280a5c5eda08f6110be54fc6520d3e6e44f6e4829f74f2350418a991fac37e2499c20c10c13f18fcc60cd0d29e5f9328753161daced58acc55939a2956f7170661ac931fe57c2a280e7d36c871c52caf167db6c6336640222767ae71631041bd8060e1b18f7af7c0bcc91e404f60863609017050e7cb2ff0a908c96466225c39f238af0c44e864219fef408656c9bf02d0eb0fb86ac64fb99ed3ecf5eae2f87e44a2457cb83917c795c1c0f9defabdc247f3e0c89084c12ea25ee327f09a400863f3d3ed925c39f9e548fedbbfb70e4fee892bb2dee3a6b47f202eea694d2162d68f7376985b3d165fe5502cc52bf8182686866586a17a455d1657e6b9ffdfceb8a1d3421a443832b860086233610c109a4284145124cb0a28756bb6f25d38f218dc0242f603a9f6361f1db77961c0b8b978f1fa33f5bdc84b5f8f934b0169c673b5a3cd63e88f2f5d5c76c8ffaf18b7856e962115d03fb1cb1997cbd244f0fe3800fdced8059bb9fe59c78ea26ee327ffaece4f9ad2a01fe5c0514427084105a20018e0f666820f181179078a204152c9899fff3bdf9180ef0f7593b21e374e4e0de7c1840e0f9412640a4880486e8b0830532e0265a6b87f1bc97f7f871bdf53d2eacfbeaf760fd11ff8bf3af9deda8a414fe3e4f37d5cf81551ab593dfe2d918da9c85921e9b9ced062db4d65a6bad7debf431c638b14f80106666b4d6b21d2e65cbda203be4c0814511387e5f9d34027fd67eb42b22b38c5bc4b81f1a0b2bc802d08c118cc7044f9861423ef6524422e47823e6f825d4000a2756900229392062c60333a0c2d0124a8a5257ccc47f4f2a81c51f0c7fae98923f4f9de0881c1f66ffc1920c9fc8f0c789a2fc83a31c93e1cf0f9a6427729c48b1fcc8fe4256b80e025545cf4c8e23e15e8e7bf1bbf3173ef86b544a89955fe988b84b7ca30ddcc81f0e59c8fcec9b9bffe190b39f5df62421b07dac663dfab7af7e021873e347c098adeb1bf8d248c0da37118c51f9d8aae812adff68c89285c530be4a07e10b8ad42a8bd690bbfb2cf65bf7e19c23d290bf467da4fc7550d0901bf9120122e8573818051060403303b31b1bd538eec5c76ee4fe2ce58a04118191047f4384c8b72f1fb35e4a529e1fbf953cbb1e7223db95ae51321389273913618e0f135de2fff820287f1de4032015200c7f9c58e5af5126f8e384909b560dc54f70a6543232b2339240a1508d6a14910b134f18420c1de6095400ca3ae86b544efc46c5ef94f7e00de0409b00bec42a2511f0257eff88b56b22a017df336d147c892c3e62500f15c5efa05e29b102dd85033b64d742eec5200f023b13165e4a61da7f0f65b60f5f5acff219cb7d983116893b8c613769efbf42056ead83f16c0ce1c9bfb81b36dcf370e992f21e2ed9f770a987dac050028eaf1561960d707b160f6e0b134f4080f063530220440103d48c0192482289257850822e24090186992c7c187124f35c421270d37e1a604af1576a704d8c314697104228637413b44d6c524a0ebec0b7d6da1823e904b8df5a021fe17e184248689f33462b4cf1185978748e3cf4183a368ea5528c72ce18ad3045c6185530292a5d7dcbc9eeaff2e76c29bf62521ec1e9d953cad9d1dda74f29a78c81f7edfd7ec33d699aee36a4856f238c7b6d6310eecfe1306480fd3b27e56e93a77c7984fba5306167eff60527ca5f112f32f38541f819c9b4fb8e4cabf3d5d9b7b8f9988da86f5acbc14c230eb5d6d2afb5da4aa19521c37a4b96ddf40106a10ca491760d991965d780dd7c3a390bbe480b5ffc0945ae11ee95303efc1602670882c456dc246fa91d7e32220f890859c0a4b51697de638c30b48063b4534697682dc658e27c24bb436ff8229ff404f64426396a9f8d132cd2011c373608c464fb243fb3754c68ee9af65cadb5d65a3fe3646012df62dd67f1d57db8f4cda426d3f49423ce795cd57ddec4a5f4dd01c6f37ce52b5f39cfaa7bdc6547ed4854e0f9d49b583caa5211fe9ca70ae91f029329b64fdf79fc646110619867e72af722a57376d0a23faeaf8f75bc95fb8a741602dd132267679da748e7e94ddc731ef7627b16b07abb29eda8f5266e82de24f67c5a2fcbea58ac1732bfdfba3a1ff3fbeb1f71293b9ef0388f9bec4797e25e133ff991bbc4bf0103e379ff3cd18da6c09fdbe4f896497ff7801915a1a77c07c6edfb289eb6ce8d8e722cf551ecefa2c9f5b79428f1db0873588a25eb461d900074e9278a925b4afc58fa12b6273933a4c88d78f22cf817728c40e418479023eddc08bec427f9606994e3872393eb3256104208e10730d8f2d1a13c1fab75289e684f74a14f2dc69fd16e88c5bd2a7f91de05e9bab83f404479e5498f95e453f9148312b07f77f2fdebfeb5f2978acaafd86f298a50e5feed9fe86448840c7fa608ca18777b860ddeb2f6dd6d1803b1968ee3be95a7618619585a48a4d75ee545c9058c2f95de05f7c128bde03ab3644054544a1ccc2a2e545c904824920b181910d2bba801e6f0183060746ef1c2850bcffa8d4ac6c3332ca93cfd193658e5b58e8587ce2adf83cc2bcfc39657feba7ec56bdcabcf2203b2f2a4ae87ce2adf22e3a1d2ad7402b80d63ea8c10e0cf5101b8b4a754c2b862f555fc9342b9d6674203914f85dc1457120a8cc97ec8a7dfa287ce2dbaafc5abbc7ce2a6ef7aeb7e7d09e4269cfde82252d936c0fefdccc7f5f729267762dda93bb9fe9d7183b5771d3709b97e05c6b8f8fabe0218f382f4f5b18b2bfd0b8e872dff8b27715fe945e782eb9c654056fe5af9eb31bf2f38985d7cd73beac7ca5f9fc3492bdcc5f5d09954fffa54b0178c00d7bf643c3097db30a67ba87c91cea4ce6ddc53e9be955fd1b219404894104fa938aa2685b2be0a59c954fe663e56540a701bc6f010e237eed52fd2d96ddc9b01449c2102fc794daef55d0709377ddb5b5f856cdf5fff663fecd641f7ba73db304ead892edb35642ac347eaa1e82618739f769fd502a62f698c6aadf5b60507330b0e739f4592eb6bb6c64df1ebd7f72a914097fa42e4fa9f352257b982fa979335f0a5765887c435adce9118824372480e612cf4eb7fd846eeb79171add5dab75dfda12f32ca32471a1a949d73540c108d9e9d489964bff044e309c3b701add14e3c7591bbf85bb798a66493fd7786f2673310f9b3b93bbf090277864fb440c76fb2bf6cd2d324fbcb5494a9e8393c871f410e4960071d4842c0fd9853eb1807b821ec702e741b1a887b12b3745337907bed93029c919ee09a4a7da7b880fb71dc9bdd2763d8ef54a38cc04732ecdc2937e1ccbfd90e8b511c99dac8940695712dd740eecd7e3225cfbfba0f06c66b9f6f1f54fbf8fc29f007897ca08f053230844891d6c1bdf93708eba023889bece3e0a6f9ff0d8510aa6826b48f8f6603238e30e208a7d9115f68fafb9470e0d932ad85597c306624811f9b5dd3a854aa5229c618638c73555ad9d50a8662506484130387e687956c9ab66923a0cbfcc9442e658d035fe66331704e805737f37b157f5abccaad8ad666b25174d21d6612f29c4f63dac8b33429bdb680b9dcb99da685134c8272c06107f72613f29c5cc81302d0656634587e9c1f3ccaf3bb867ea3e0cc8451b02028fbf083eb781f1df4e7c7532399f36df7e1d935f0657a26f9607f1d60f3bb22eecd0ce3dea401432346aa3e0d162293889b60101bc486a0a00a694783e44323d7c009940c7d9e7892bfee69a32c612c90f4acc5f8a1cb4e877b41702c954a18bbbbbb774de39efc9e9e9e784202244450af7ec062982008e6201d82f4581d38f440d95d9078c23a104017f917126b0911d44918f4037c918fc530418c2230fc8122274bf9dd13adc5b854b216631fdc04a1e83822a59473b640f2e353943d3af42a8411f6f8ec45dad9702f76777737a7c32507103d3d60d64102f127e0447c7093c3dc201c2442870e1d26b6783f0d4ab016b0ee013394d90e786184df910657be4b9d1f201065f85045ba8dd6a36fb2d67770c76a40df765fcffad64bfcc38a1c42244bfb567bb6c372dd909b69d783fcf1812a96a82227cf4e48bfc30cd1444147b88123878e951dda0aa21c507171490c413d18f46f6904c6c2090b1fa9612c9e688149f9f22117640f965f0221299002183a094394fc193a0183915f316f7fb9aff3779fc54bab3ecddebeb4f6b5da7d6f653fae6c1f8394fe0e5a722fca78b892e3e36c078d399c5a306ba8fbf54d9ed8bdf8b667938c653bbcd301bebaef880f2aadf5d5028265ab6b255d63bee566c0003b36b31d963bed6c7d905449d798f3ad6cc7f4dfba0201dd641df31bad975db31ff56ba553fa7dd4318c610c572861f35d1fd2b7de5f6658ed6c87734a5c9d913bc384fd99f1b04fb37d961f93be7d98596ffecc533281c1efc8908b615c7dfa574a5213d8637f31920e70fc1ddf4a8610c2c4b73cdbd13c483ac0b29bfb8edc6caddb6fc8cdd8c4d703b9d9fec3bf388b63a1dd8f996df7dd442ee4a66ce550608cf6313b13e2b7c81a703fcb3a164dcb7e3ecc7cdcd7baecb3ce469675379eb829be07b949480572d3cd7e74f6347bfa978359cb7cd4a7b7dea7f7312c3f92e4d3b0699fd15aef6faf691990ec6ff6976a57cbb68bddbfeff987e663cb34874bcf1f085c9b6183619e1863eff045fe8c1b3c3f07fef83adc2464c30163587c7c04c098161c0f1bfe8d457d5aefc6d16fc1b1e060deb64e48fdfada63d98fece95f998f7a9f76770a26195a21c39f20f864960b5ffa61feb21cf367c4bdee9e7ecc9de56317bbac7ba766ade5dad67d20c8b5a39c8c74caa87d46a4a6ddcf6e57ca178e589465e7b86568a1470aa14cffe995614bdc93d25253f525ee31712f0b01fe9cc7e3e3606dbc598fcff47a49b36c87bd9d418875ad15bbea55affa554707dd4589fbf76fc6c3b3fd2884fee4c901b5e45f16ad9e722fba50e7515d3c30a6730063b026d8f595cb80cc97f3a50c42ab66bb163836f61b0492141c4219f99bb925fb5c01019f0ddf4b8610a821c3c9a39281a6ebe12b009eb687a713741c4f1135bd211232fc0740d30df732fc1ef0942302b54c0e310839887b32473cf9105de2e7d0326d933ff8245f1f0cea0ee371cfd371cfa1402f3e8cb96d2c97e245d025be1f197dde3fb9fbb407ccf3e9b7b5ee4980a6fe58ed092760eb1e7bdf7744d40b2560aee33b57ecd1b733dfd181972aba4a95677f3d27908bccdcb77938267eea1b7789590e30a7aedad35d7a6cfa9642c9f4baae2be238373376afebbaea3b37b37b1b19b5b79134f2369a3ee432fb103f5ade4d222aba44afc917f07c55d74d224aebbca8b33823ab28dbe15186dc8bff22f7c3ccc78bec440e05e37c750586ee5d5ffff35544bdc8f0278a28f9baec552f7a5df3ba7ef2d5759beb13402ffec6b50aa04b7ce7608600ac01f4219e1a068d136114727c26e488839e418ef108f812ff6b2539fe15534030309faf3ca23ecee831a28adc04e4a6a09f2856cdd34d704e2d3e5e9c04b0f81696c5977029be6802fefae68ba83c5d765f29065da7c10a0c66872d2ded790d5fda31d90e63104c14dc0fa56df1684c2818e6a3e69b65dc7784879ab1cf48aed6464a6ba5f0dd87e81af0bb21cc11e7b45fdf4d6e331d6529840f2947833929849d9476a52bedacad0a4a57c09fccd039082d8b3e8457377b727d735df6b2f43f0e482b79c8590edf821042cbe2e69cd93b8a0486e3a9fb88e4eb21673db5d5a594524a29adce7644aa4b29a59452c618638c31cacf87fc21b98cc88f31464ae927b931431fc90ff34bd1a5911c99a11d12fa51be77d006f8f407080f000b705d4f3b080b00bf250767e88febb187cf1981ab9d2b90081155210626667e882fdddddddddddda5949fe4c68cec90c48e89ab63c13a3fe246ac5f20449c2253e6a0c309e680fc6edce86e2ca23989456b634962deb1fca0efdf83fe90a1c53984b188aee144df0468630c8358d0fdf0bbdb3b5ce7b8172f74e7227cab03bb889bfa8ffe83535ac208613784088c09025ffae3432e07f73ac75de23fc691e3d3f30448a857a41c60961f33c3871d94dd877bc87b7a2127bbb1316cb00e1b724f568b83ba19c2f12d8cb11a65cdf9d94f77f7cb9239b7a50922f56f0eb3b9444768f2e73a48708ee3a827e0f88d8a1f6f88b0ffec7a045700652e432757e8646ceb23d60afc6d1b8c81d9b351e3ed1ff2b1ef211feb8ef47711cfb63340d7989dbb12b00effe00f677777f9f5ddeb4358737d58b3f7d7de354e47bbdfc4a794621886752cf785603fff1ec995fb6eae9c75af5a7f245bdc909b6d8c14ca20f86499efdfceba37df7ea5fb73de7baf04ee7db98374227de0c4fea16797b5369632efd25a6b8c9f7d7ced7217f7f990afb7dc4723dbc7eebde863dc917c59f46d8e5861a61562c4b0bafb4a6c0fad255966cc6f100c05fe304c3c4997ff72c5faeeb7b8f8d6926cbdd5b1de5a6d594bb6978f5724a7c35de47d293f878ec9a2bd90eceb675f5f7bfa15c99876b1cb1dc91837e4e6f9d67cb97132c37c0e81411bd8467d0b843f592ad9958e6eb20668191b3972f647bff53dfaadce8a935203740de89e0554964ee01bee7527abdd668896e9dced287f3bffad6f1c2e37a080ffbb11ef508f94de97f067576a70bc1129fd1a238c8c4118e2d8050cdbf00d48514851f00df00d341eb894124229a1dca1adb5d65ad68765cf3d39bb16f7fc1b4223cfefee2b12e105af6a7dac7442a9ecd9413a993eeef56c082ddb5d296b7b14496315288d45b10a344671af7d42784d61ce498a82e7370e247020812305385238528003091c48d490a480bfdb1bc03008b1f60b60edb15df36eebcc874b868f456fb66b12df00cb99f5e8dc42dbb5e611733f8450a4d4587cfc903b2ac109931cff7b7c8edd9b1428a38ccae0f88d03ccd2931041cb678d64a6024a864e32fca12295319210704771cfe6eebac806f7aff2f7e1ee6eada9367eb243b1d6dca2afd6647f3b14bbc84d3377d7d6a80b98bbd70c61c680235976d08fc46e244610815304f611fb883d8683fb63bd9845bfdf4511f87bf92c194bd6fdf0aef75b2b56adee2b45ce93eef6bfd66fa9d7e7d280f818cbf5998ff8d8f557e7f5d0f9ea68c419670881e9c314dceffb7da11118ba57ad0b23cf5082e74322f0f799b2682c5af7c3b38ffd67dd6733a55d735e8596850cf7acebe97f8b07bd63716940ff758e05f3fa6fc782753fbc8c3dd67918d6c1209ccb1942602a7dd01ee5bcf5ed655d78310f6606f1a28bbf45858d3542ef4a9f1e6f20a10d83bbd5b3a7ad563da47bfe37cbb2cfb28b3320d9bdf8b3c759f775beddbdd7e7fa003d31b40a024206e18b676dd24c2426cda499341389cbb22ccbb2ac7befdf6b3d04722d2bfbfbd9edbeb6acce56e7e8f40a727f93e6e9252db84353868686a660d65a6badb52ceb2dcb6a1910cbda6b755f5b3bc54e699a2fa41ad53661b0accef3d503a5a7a7070a95524a29a5b5f6ad950f8158295b4ab98250601552a21021c1da4e28e7c4532d8a2e4d5ac606e5e4787cacce39e79c534a29e74320724e2bbbafe7b4316ddc884140d5e8001006beb467ca79c606708b649c6a912d02cc8d9ea020cfb6bb8542677fcf80cccebafcf9324ff76a851cdf8508b07f51d037737f4b3caa45988102fc7999c62d793828e8aaf606ee29d522dba75ae42e51062a007afd36289e1660839890a758e558e3b6773666a000d7a21c8f54a0fb0842352e82489224499224499224499224494d4d4d0d12244890204182040912244890d4d4d4d4d4d4f03cf1c9387bb416c70b5f2274cf964ab65bbe9671864cdfa1fce9d78be09df59805dc34dd84dc3fa14c43e91af2494fc02c3c6ceeee2b52737b2c3eec7b532e462fb74069190ed6903f03bec8b763c0f1274dd3b46cd9dee3dbd9a10c49257d18a9cf8081fb9473ce9f3d54b7a0dc514e5aad756137d3b69e2c33c6a285ca0ac9c58b128c182c3264988106eedae8f4b3d77ec30f75d8c14f0378984aa94a36e2843231aebac654ad5a66ebb118afb28d77e7c6e642218135b69e9cbf22c8f3b79ebaaaf32b143fd1a8e1fe00b8ab7373dca37197f9b8ef8e5db2923c1b007edb6af80d5bad56abade537ece8689bf11ba652a9545bf71b2624b471bf61a96ddbb6ff0de3e1d968f8ed3a3a3a3ada66f80dc3d964f8ed5aad56abed7dbba448d9587ebb542a956a8bf1db2524b4c1f8ed4a6ddb56faede2e1d95efc661d1d1d1d6defdb85b36da4dfacd56ab5da567eb3a448d9547eb3549b4ab5b5f8cd12ea1a536863f19b95da7252dbf6db66f16c76b55aada46c56ca867f7b226eb27efb21300653a954db07f129b4bd0f286385b6546a7be8a9cda6b6ecb7f81bcf76b41d6d47dbf697e5d9b67ab46d1667db6ac8766c00b834ab1a4280b796d5d16ab53acaf3b9195a87a9843015a6c2544279fe73d963298c074b61292c85f1e4f934d0706738c2708e8e8e309c3c7f061930192b29abd54a4a9e2f03cb15e3525d429b4aa512caf365c0b04a57eae2d9aed475a5b42bc593e7b3bcb02eaca30b67b38e2eebe8e8c2c9f36390ea8ab5b2a458abcb5aada4e4f93054680b4b6509592a4b65a92ca13cbfc4220478e6af3eb152168f95b25256cae2e1b6efd2b66ddda7a1502b29abd54a8a670ce3b0b75e6018a61252a95442793ec679c622173f73116d8ac7a66ccaa6e25b52c4b1aebac67c8c23e6eeced5b936b7e6d2c0977b535748e489539590e79386f0678fec919de22701bc8e9f6a0d00f84ff204e03fd9246b2f73dce4bdf6720550a64a69f94fb6206b2f918031335e7b49e3a7ba236d503b3235c54dff0528538180c27004633a287eaa3636443651a4acdcc4550165aa8e0e1284600c0daf7d54f9891615c59e22a0a2a0ac7de471938cd73eda00cad49a8883ac7d6402636678ed238e9f2810900ed092ac7d44b94986d73e0a01652811512c41d63edec01816233fd19d239a9d6813c54d252a4019eae36385221813e3899fa88d900d140d06145086eae844e103635eecf8691615312952692bafbdbb00cad01a8741d6de73608c8bd7de6bfc348180fc06c87134d26b9388680c53608cca909fe6ce4ed18e91f60da5930065a64fd7983e4bc8daf70ac6b078edbb899fa68dcf932c94b56f959bb6d7be730065a6f6cd0363f06bb2a8a8738a768ab46fadc60459fb2602cacc9a227e9240d165be56938134ed35006524516bda0f813171a76867686a1fc4e7fb4c91b5f70165a44fd7986f83e3b391351bed718031f5b5f7dc645ffb0290b52f2a693559ab01ca489d1618235f7babbdf60d65644dd798af69ff22dba1f564afaeaa940074750580aeae6ae8eaaaa59392e7cf700104debe56a09d5a2b509eafd2695cadf56bad2d68c864d05a44696531c39581522a83528a59b012a53bef93e76f312e18d486ea509b12b5a1365427cfd75e582b45b4a668a5282ba235797ee6c292808834a015a00c8828cfbf2ab5c5dcf1d9d9d9f1c9f33116749b363ab3fb4addb4d1c9f32f3c2f59346b3a59248b64d1acc9f32d20b0cc5f7d22818880808088723f6675f76935796a353b3e3b3b3bb172f1af8dd991b4d1d1c9f32b27df5a3455ce2c4a00ee0720f3e192b1976eea8ba3d9b9ace8e2289e3d01d6982f3da6a664523228c097accb86e00b0dbe110acdc66543198ea7acc85de66b3419e308250e4522cff5c8e2d4a37a548f2c0e0cbbe16c293f09208b425474b9a6c13551fc58144ff628ca9a96c1a6f451d151113645d6e48939e76fb92ccaad398aa76be32e535ae602016bcc9f39791ed9237b94e743187383802ff33f4c0c79fe7569e0cb7c173458feb7f5e089b79ead273f71d3970d552137d5203771d9909beacfcf88fce4f2f3b32899512605ab51154fd9508c422d83bbc6fc7969a2cb7c8ce38c42d6629ccaf33597c7b2083dface55e8510cd3d215f2a4ff6545795ef766f7b1cbc58f32d307c06935ee321fe3341a9a78ca86dc65beb5d7b37b04fe9470f9faf5351b3741ef08edd4e2b700b85eb9cb7c1a2e5cc95de65bee5b32a3980dc5d3ca976cecf0a5a9f1534c5d9a7b5331e6e479cabedb6543eecdcf86f2fcdbe21ca8c1d0bd6fa7e8c9500819fe48419483c09371a6d9dfecaff6377b4abfa6b2bff569f63446c99252877bf6c2a48c87ccb2c351ebb2db3d099ba1047f9d4780956021453a0bc1666081517af182b4b292f9b0326c6d33630478deecc79669c6fef6e53c77966533bbf34ecf11f3e4ac0cf7725fb79c646499a5edbe21305a28baf755b21d17877b41080105a1d9a8642e95653deb14cd0c00009314000028140c07c42291503026543549f614800b849644764e9b8983518ee3208610851032c6000200024300040866a60600d4af085e142c10bdbcdbbbc8b84d8af6b23b2d2b1b8bd8b7ee3f4cc28aa88bb7e3534b133fcd442533837bea87f39e242735b1255efc59448c18749606eccfafb111f6d557057488a22944bd6640743af79af01382ee0f07a8805a6e422c24d0d0357a1315901972e6498a4221f859c5dfd41b6529ba6c3914857d6c728f28388e54083a619b8c41b673eac023926046a2e37c9ea647e52269c504640919d6edbfdda60885ffdf77305310a4c3e8ae495cf8d9558de2dbcf51e7d9ceb37b8bca0124a1d052cb28126ebb4bbf8e1e672271c5d6660ccacba336a29ccba97aa4da2f12fa8dbf562e6d6ff812568078d79d9b3160b7e405b6844364682444e0c59e2de54324cbf9088ed30f5c8c7da1daa6860fd2406d302982ff0b9083da2d1d0886864364ff53aec299b6ce651026a13d19c99c8ec1b6e56d07128dd5352d19ed6f957268304e2c23742de1eb0cb5fb82ca2a3cc570acc9c51252e95965a98f4195909c38e114a5ed958c0246e09624d5b52c1f93efa004957382918fcb9ad29c4b64458f44f8486fe1f93b13cf39292a444f9119311c3dad29103cfdcf18b49338d168dfb0e80320f43727cb2ca390d402815829342ecc7fde7a1a2a42366b62796000210567665236aa15fe46047768d5354ea480380c2b58a5da9986b8af114226e446636cf90c66402f89b680ac5c6b4dabd7dd89bb2237866680b250577423a32c5aef76aea4016ac72b7044aebbb6faea0547e05de31d32f63437ca1a32e8c7017c9777a12188ae3943b3e22942a8d09f98780c06afbb3a5436c903a843df214052a3523083c480f0824f20b9f94588f0ccad7a8f10dc7f4519736a154d1751d3891b9a059d992804658e716d8c1f62638ee0d1bb959361c52087a7aad9f755c1180b47a8e3cbb141a21808523f70516a59978564741ad9030bcaf4a29f5303f321d9399722af37de16584b64d2cd6c4f78098705391490946073422f41d4fa6061876c12a77a294c93767d13089e5fd08d8f5ece8dfb4c42741163168a8988552066a498823122c514c48c106b526c04f5744c8f23bd22d1fb71aa2f1833526c41ac08310ac5448c51282622768198916226c68e901e477a22a2575a7a27f07e0ae27e9a2effa6237e53a4829599dbc5934983ea70e23716d83188882d5033b6802db0e3f976ed343991cab168f299cf13cf338c67e6d6d89aa3a80e516c4e80a1ae6217cc9565bec671455b242db26edf5375d62872c6e9ccafa2a35c9eb9ce0f134ae167c980b5435b4ee89c79aacc0289846189e668b05239b8be5dff7a0a42a687691b7a220093177b0e720def3e217f919083ded9bb82d3340b611606193246e3d7d03da76b471704f90aaddf9d341368e4fdfccee6829ec6560abee53f688b433f4ee8ae06e1cdc9a4a252cc7359176085b391098ab601dc21dee19fc1079eb4c768d33e9730e323ff4d2357c0f074383dfc1f96941ccae3ac7587b5af695638d66b1e78e2c497e75a5ade651a98c82ec53776352bed9f4aff02c1fc8565f15ad0c73fb0dd8ab351b443c0936eeeea841812585b7b9fbacbad692824f5fbf1097ee5165a80fa471e4ad659e073f3501ce5d3386d47637cb89ab87572398d653071cd835aa5f63b64eef8fcd4e8b75a25cafa40b18faee6d5b2cb1f528a8f939ff6f619c0ac160e7c515de5bcf2f7ccf10cd2d6d3baad5e7784256ca3a1a6cc64181ca92d1234fd45744bf7d3902244dca81b1c2f5c775334b41b8d744ba35dd240171ad45d8db1ab5aafa1b493e0cd401ae88a4676afa1ae34a2bb1aef4a63db8db1463ade6eca6f048d4a9a2c7ff1fab1ef1b146719335e4d6cb216ec466a021855bc94658b111dc1ed5318ae5e56d1060018783648dd804711c4a813b712d504d9c441395ad7b27c45722ed253d7fbbd9487d6aced891ff82f009c57a0f7979b11080a2f62cdfb1192e6d38550b23ba55a6e2dfb027b5d08ca36242e2da390e714d371321ea3aa29b738cb100ff2793ba4e730075922dd6cb952cc305cd65b4adadbb4c533f8b6ed3bee8ef5af0df98ddbbe0c0ed50f072e844baf5e2b4e06942b9b6dab73ad183c5bb8ce992fde5c1ad5b53cb1e0cfcbf3d65ceaa308cfca4c5d87036427b95898b0c534be4971ac90a1611455f538339ad33773fe14f20d21d91cda62beb53753299d00c32c63323abcd3533cafe5ff9b1a7ffc66043db8ca14a6d8f02f47b79f4d2ebfbe1b3098ba9afc108d3bc214ddfb8f9ffb77caedcfdf18044ce9e61fb29bf7066f60052e648d1380310bf137504812a6d2ce5fe2023698bafa7e3271ffee72fdf9fb83614af77cbfaea9369964602a45f8e502fbf3d1f4e7e930a550892b4330c52eff8ea501c0946efe2129f4e389e96f0a05244c5dd79f236511a6e83e0ffec167fb6e68734835dd11814fa33698d2383f48a30d614a07fcd014feb1c4ecb739608a0c2c38b28bf0de0db12cd760caa0fab76fe2174afddffe38264ce9be9fa859e21db43e0e88bcfc8804f0cbc7c107a62ef2199371194c51d9870500dec8aa06e3875696c3914eb82098828983d6d490a10b8990ae8da1a2627ee3b094e180126430b57643e30753b44ffb7fe5ad5a00d8cc0aa62e037f421f03d06930958118c0653f4c31794e860b66c354128ecbd1dff03503a801df341da65277e7a8614af3242ec87767a49b21957b8d68348b110c052e5e4991c31440e93a8408c450aa9fa2c87523a101eba24fbc6eec53969aaa8e45a5a6a85c9a0c48b96f0aab2a533e28097ad316e8f128734d5bc33103081c53a665200a9afe0454b7d1a49633ab293872fd7f0c253a0af9d7642cf9a47040851018805e6219561b56c7b37533718d61907979483876093ac7c8c70c60fa6a820a619a20f623d07c86c7b96a0f550298d3f0157512008c79df8697b1be89908db719b1a76d8d55932af03ceb78718a7b290205b8008bc58600c4fe036200e223015a2568b64df4d59c969c7d5e1b60e1de5168c7954760f50b0a6f979f3aac3c7b173aeb9927f68d3a3ac26046596bbd4f2da7d0ad3a1377095d5aa6b413c6fe05a21a22ce4b4bcbaa5725b4dc0deaabd78300fb9a295f42c0221f9a1eb5477286a48a8d6610a812e342759df8839434a8aaa4ca0062c887bb3c7d6ea3982edb3350b60a582d0c10be06175614d40f3e6722141a680b9712ee767d33a9ac345ae54e617fc675029262ef69492c9c14ba9182254aabed007e70a4b09cf7031409fbf3bbcecb2fecbfbeeb3cf0f322c95528bb4a3869f331c09de3f7ffa57f1a8fe1f31c88d0bc1cbd40a0bcb3b7eedd6893797e8634558c1d5a83048dddfda1db8bbccf3e1b42c703ae8ebb77200789042273e0c4c73f5c19707b18cc25ec18d8004cc80f48bc81aae085df6e14f4ec6db6ec5095d0850b53745af5b6bd0532fe4c58a8a87ad14569fe9f75e37cf6bbe0a0c29b24d6849fc33ba011b01ab92cd0203df55e7f2d403041b84db91084589e82f8419c6c76eea43a2ff29b58f21e3581f3e55eee7b0b589bb72732ea8bf62fe805b68a11ef83e041dfda841e2932c273c0284e3822060fdc5d5867af7c3b1c97bde5c94ce9e83282f9bc0d1c2c68e376f90c338f819656d8959cf5df3f6cd04f8ee518527af6c73e32471346d51647ff670ed564a8262ca29dcd662418d3f32629b3c2d08b802ed64b2cde0ca61119368edb5e9ca3d54c6db8468094d65b189f4e088cd6bef3ee08aee694de2cf6376f34b4a435ffb79c77e4c5b3909a978a0bc6a385323caca61d94acfd055f722a966fc0c46efc189f04e20d8f23fde41e5d0b62e14f7fb08828ed0a53615e87e55050f2955f1d281586ff0649a0c2e74156268b20af44592a1dab74f107e21e8334251876d939cccd9a383f0f1300f425e8a0b5d1a4943157533870bdefe86224cf648140054f2452d13268b20e70078ed2366e7187749117ea57b7b4b50ed519faab3ce6c1c8a670c8611f0ac7e00d6c066da85421d604915eacc1fa880f6239bd633ac7553363ad03ba898cf80cb18fbf5c9db84102303bd7bab3d5da4464dd44c4a4fb44691d1039f0308b0b6b2ef2a9572b5b717d98cdd96f941dd0e7c826bafab4bdaa4fc5e32cd490e20761fd33e3836c08006d6a0129b0b495c084209feb25cb90002c6587e10c08c4484f69c284fab7181470740b216609245ec1d8d63b4c0aa598581106b764ce336c1b0d1fdd4baeb49949b98cb495190aa8299bfc8d519968ca23a84879cd248c380f46d8f4be374c7146506931d5432aa6a05f563915431807215749043183944771baaf44c89d98b0e4f838516309a9496cf337635b414ddd5a62bed1a9940d6c98ed75de825bd7d81b442489ce2676d8929633faf55209ec1b26a5fc253d4db7fb670487004213e44182d621b17704193928f3ad6500130209860751788ff36013cf8c2966afc8828290c64564c5bf34c91c482bc421f4b5594cd053e6794da374bf65f8ff82b905cbedad4df55c121b9b61ea8b1ee154ac2d8806655939c96f00ee120a87b516ad2aff93835327b073b6c4c9c996cff6b722e4950a297ff16a17d4f658469ed8cc2a6bd0ba3421b98521e093b2ac6e462521d732a879e033d62029469c35f0a8188f8cc1b258308656c72004cf71d18b5582910635b83ee9d2fa2366d1ab9910b5f6f05aa86fa0909585d24315d9d5b9c253f580f51d9e0f360dbf198e3e2d85547edfc3eb7110b5f06b1b3def7f55b9124e775f3d83c75b2501001e9dca9809f781f8e83c632dba6ceaedffc0c7ac2cabec4d45028f19f80a99ecbf077597fb3149dd080dd70ec1ad37e7e47b4497f4934c09e9de5e07290389c0d61396e192c4330a3856cd1c67b54257c347a22f88762ac5cb8e6f40b1cae82cd652c0064091dc0618329576f720cf3304b8136fb120d42d52eaf46813501d4cca23f733e08c138fc6059f6f24da96cd5046c78efa3caa75a1ad0620b45b208e6734de48583af4241c8ae946e5abdf20ea3b2ddd818745dca0f2c0a9ac6bc576ee3739f6de87c875fb3dee864481d9a8472e96e0e629792e9ca0d1298a7f4652e48a5c83c573ae30ba15d721955a69b71b176b8c4e7feb2bc138458567bcd14cbd1ac56a6fb3379c75ad1b41a80a4fa53301b94c48ec5f5e317690a18b4947ae84dd5e827d9fa79f5e43eaa0c8e38cd340d9c8f89125fbd4f2c5035ce877556ae57cdbae23a4149b404168b65343b75de640b790099f28e0e7dd8f8a808262b7812d3f93d855d974a3713268e3a799478de75cc2afa19eff05e004a1456ad79e511991216c0d4cce9de452063125a7f13c3e20ef956ea737e316b528b43d53ba1d35cf59807d8a7783440e199ec5f5fbf8427060058be7339fd13ab314647149cd8aa867c0fa42ee283f52da5d007ea7a46789468c0afae0661ba44f4b0d961bf7e6311be06bbc63f8cf8fc06c4b587182ee24efdf0e045997998a93f363692cc905914435b1e5f5a357b0270b0e0fbc71e9b87003a64de3e3554dcfd08c793408dac295848e49532eca253a2d259037b084a04e6e1ca34c40acea091e52a668d79035b97209e01c93859fced10b86433b588db6c5ee8ad1bc2315eb6b61996f12c1053bba2b7487bc515b1b8de9372fa109120a100bc52afa37e06af14edf429406ec1206453bc56a868d7b27712ba9ca07026fbd45ad978f0f18f16002415dcd0074dd3923e1dac52b5679b77eb4b072b5246570bd0762903ed46ebe12084a678978f163a5eb43bb8bdea7977832c68aa5f092d377f7eacce4cb429a2c288ae8c24b4eb80fc4edeedbe8f13483051edbe86d74824ce9224ac06a3a971c1eba901fcefa50e265d110dbc3a66a83e40698d5f16511a8d1842339a4b1a0053e851cba390c1c7a513e9a740602529b98875af36a79f47027e63c9147000d4c1717748f2cbdef4229716fa16a9db35512bf980dca59fa3589154c469c5da88f4f9b757a361ade3993214f903ad6bf6889efcc8dcac568cf201f5b0e39a42a542808b64e7179a05131136be6eb6a0aada49fed268b3c0af24fe974c800d178df49bd4bce5dc11dd0f690ca8560f316097b7a9bb55b26d9f10dedb2cfdc057e341e0d8ee5fe3d096dabdb65868592d33d016578c6238f5c030ec702fe06884abfa47e3fec2b28e0b8250255375f89a0efce478e0b8c50f1b7ef29d02266219ca1ca633453cc9f99cd360a57ccaabfe606e1c0d350937ac7daa33c4c2ae768879c45c6ba20d3b2981959fb375d53304f39a88a0b1dcefa93198235ebe067f8a27d2d9da87a3809403fb95579f7a4d0194732acb01425c4379f14ac965232301185c4e751a85c601c5d70e4e4dc03dee2a1ba3da0f0696c64d8554db25ee21545b584ec304561f83f7df69828223ca2815c643c5571fb78d2ce04000e210ac5acb9f4ae2684ae16c340d337210ad94624f1b89cf95502058a3a4d4f10c582e3abb08256e06037b0908b13acfb2b8e0f58f57393750e197c8996c21a8cbc7c08143a9564aa4320a0305e7d3ed54f30f9fc6f25384bc113ccbae0df0e0de74d9d9f2e227fe58dae42ff0a28e61ff11ba9352a591fb3c35aa813fd50825b2dc4bf8682c09240104b9157196fe20ad2ce305c6c2679e8c265fb0af0702180fa2fc297b14d5d423a22da9fe39f0ddc2821cd5404691e07a006aa62b4f5f0e99c78b9aa79b5710babc3d9fe3569ecad169bb21c955201e9f1efee72e0f6742207c8ad386fe01d1bcc2cc6631d0207fd0f1fa6158c8e93ebf5fc7e72b55e1d37d055ab984aec81e722ddbf87201f1d2267ecd245fdfef8da6be91816ab561ecd71e0996fa47d0b84acb6c43466a9f24a0a3216fd1e03f69d8ee639622cd18e3f1a7ed52c15c273354146968a261a35202c91890c4cbcfa3291af9cd0187c3d571cf14f09ca0d47a8547950c2e22c852f2e8fe7cb6da494b74cc0ac82233450865003830aee4d846da4d349238b9e6ab79bccf9d1fcc8f3ae2535747f0343cb25956b0863945caeb76371ca759854971de90544f1a4f228e821b13ca124fbfc83a5433dfc0486c3d63116eec9f319b1f259d85c6c3c23296f2d50bc7abc548c475cc5081c7a5cf21e57c9b3e26c7ad77c168e27784a55b9fb04144f8d9070f82d11f9e5c428a6152a15b5e4b34ae0ca2a627df419a6069f20e212b8b17520216450e90432313a2b99b5f0cd7e6df11c9a8e4f28136f619eacea49fb68c931111b48f62f4ac8b63a33a08507639f525a37962186d6d2fa630ae4525d8b95c982d8ab1cf1e4c87e7488f25ac7a188808afcbd7cd1931397345653aac0410100e05bc30b3a1ded718df391a6a9d19029c11f748dfb11142a61605a539dc27fbece8b063b34091168370f4f6dfcf10827a62ce8d09ab823a06246339ab9dd61263042d3fee45b3f844fc3ef956b55bc6b62de9ac58cdc225550282a0d6da3180147b3a30c0b562ec2c530ada5826d9add9a9ee024d938e4913c2499eb23bb247139d6934aaaad4f15181864d2f4d0e1e771b7a088ac1630212dbf3692b437fc8f7cd2927d30832c164d3af360a9a90c9d156cb278b1e4df590d6c2fde11ad3b24b416119455abb84c4ba3562b0d08d5162c7413fe3f779de98adf2e00106fb4ccae77464b824d6b5dc0fd2f23326ccbc31ee1aaf05baf1af6b77cfabc840cb717e89d0f6e56b802db0561b8ffdf4cf2bd2abc14a940c1abf3520f5153c6dfc501b9c15800dab0cc027ac417ed5450792f0294d8b979886b0d525b2ce51fdb8ebc568779902473b64df29419a84db2bba56b7dfa169fe6ce1bc1f5d2048089a86bee09548dc49ace0e3151f75c6b31abf5415a2c20da42ae4d7ea2df73228ac39b2b724fbfe7ad04891a15ea6b0f8ef6f984949ba218ea45e2c02e6070882726bfed09978fb5cfc531d78b92362da8de1169c443868200a946305fb2cacc015d154601649d424451c84d133c287657fa80eb1acebdfeba07328a98172f6c7a36f655b5168e402b218c907dd3cba88b95f2cfc578a7a8a7e02d6ad6594e5c78375aec77e1717a084cd96ab130d3bc3c06419a2c70cb6e2e211348e81b1c66f03e147ca9ef9077c8cb876791769160291e0eb16c160910ea087c9db077e8b82d4d8b15309be901c01559323acfc715b1e17f9b1500744cd250fa17d1ae67d0a096626d8d4e8ab0a3b5cdeade6ef56c5d198e6efdf8ff0e79f899320c0d4df7bf49d9855825f4ea5af1315a297e44ec55ac1aa6d7da2c8e9506ddb3683d650d8ff4c5c89082963a4256d179c48066af70d1bda50b29d9e26cfd8fdafab16408f3732c815ae8115400db6d36b912f2eb82d4802a8a393a4272ee005a15ed029792485cb55a6dd237c41123234dd27bde838010d0f28e47202ad5ccb259970b0c434ebf35b92c2d303dfb1b4e3606e9562d1c1e451907ae22fba88e00aa89e76d31528abce6e5992dea65d43500b63eea6893893bb65e05037990a16e7e7d6c2f215c740b7d3fbce44321f4be173e5293b198eefbd92b1e051c2b72254d1ab43092eabc58b0b271476b05b0dde078822ff159c1a4d609ca58a46bf422e5be8ea93db07c5409be18214cfbe8f83f672d598bfca62997087bd62a55cb022d4b10d4df48376766f989e1930ce527f12e3515110058b711149e9b4c16a4aa944f180f04bff66e04d3028941057c206849f77da9d35368a3888d1d185b37239afcef0bc6d8940883ad970b5967a38ba969b03f3d90ad93036aca923ed5a549bd44dcf056f02cdef22db2385d150c818002b43100a76b527e924e8414667fa9dc9ea9bceb55cac2f3f69b6fc003fde94e0e69fb9f150a9731e81fbec7a912a8f2725ac61e1ad1a1e2eebda2252266471140a0f9ef0d1047db4ce444ac3c291486b142115fe149d132098943d0b7d93d5b0f0c95b33ecc675184a797b4f633e771e50e70100d3e8da3a63dd9799ead12831983dcf55ca9a2a279033909d66e6a9e7b15a7ba7a51d7d65729d5748fe80ce35e8ee1a681d2adcdf8c4c0385365a67997242a2c8d4924da4460bd77daaf2c51c7ccc81ed0deace9ce4b5fbac7461b9dae8ab5f7d6e44a2119697fab2efc536342f4bba083466ad372526b270faefa3c9df0e7a649d6d3cbb56e10aa60063d514efd1f4e8dd44b40023f2b12f5ba25201f8070c22a4778d412f511245e960df0dc1df480f778fc2537f9be37ba4de3e0131ec812fc42859638cc00c18042351979c87fe321932e936ac0369460fafe1369d14ff6dcbc3023bc4a88f3128b10efeff82a16d623549012d5688711e2aa343c6dff93404d04ad924d3038d6ac00a5b5125572a377dbbbc54a11585655752615510f0157438fc40058a676282aa7c458ccc87a80200199428529b290100d98e9e9466f2484d8c94dd57e2315b03f29a8f9aef01c5a6afdc2cf231ed6c26b518ed8ca1700f0a4101ddcafb9ab3493a96a211d7e2849692b56adb5dab476a180dcc19585c8dbd292a9f8ce5f207f130d9a00f7abeb7a6ba6f72d78e51b1585d887708d260692acebae9eaf1c0dcecf1a823c666c9080c2b49a87c40e550316ef229b80cf461618eb8017aff3d2eaa6b9620861f04988114d14c66766ab0f6bba92054a8c4de79a845af2884b7c93ea51146fdc2fae550fd474d6fdc9460b26879e9019107644f235ea43291814a16b4c8228ca9aa7a8b8ef3d6880c4b27204c6b55cab87d013d1c610f74d61021bea2e1a96f64265337322d1be2e5a89bf2128a24f9795322cde7ee67c2006cc9f868a10ceb142343821a312f12ceedf9c5b528c7bfa69f627e9ae8c8792faf3a140780abb64c0f933235cab05b9e5a86b4de1f1449ec413a34013426cfa49c5343372e2764c24a3986c71d8fd962abe1efbf18a02e66de5bf1de93db653d0bdea28d39b93885648d9f9b9b6f239b96aa100d38a61f055b6598dad24b3f8a72b5a03293fd256b4f098787d22623d005d005889880e5cf62bf5b524c445a3aa976031106f83dc0f590d99bca870b3404defca9ea22fd344e42132c8b1791a1abbf2b5289c29874f223ff1165b435a28a81e25b2e5eb8154cba9994fa2bbccb6746a1e5c81afb0f23152483b5efe54b5163523d275c85c30c0802af3972da1b7aca64e728fb8c2a5b11c582f4588d24c5a734e34fbf1037f7d8083cc5e332eb3a9e2f0e67a2c42268f8c92e231a0e3eb79d995bd375f8d32d2162aa0a732efc3489af2316051136b4a736d0ee53a1833ab01bb3a3c03b8545c6fc42f5551fd1f8c45ee20ed2bbcabb9e6b485e2e560b6111346eb0381f0fee19163a5581b1985b702778890902b67eef4d21c47f0c7f2ecdbc0702a730a1d01ae8da1db3eebfa985794b04def695506da106dd500af328ebde50f2c2489168a11b7f618cf850dd682ff8d62458f9198268538ea85108b5823c0b81188e92f9cd7d88e1490bac8384989351579cab299bc5b5e2d5622087cd5e339a12613f3ec430331ac7691ef38458aa451a417055f0f904a74fc6f7c6155d57c09bc127ace3c1d9e9a67c378ed6c319147542b35c1f864611fa4b42d307a44e50b99829de5309a0fd6539008ade756524c591088f8e4b56f80927749cdc1db0eb735994eb1f2b1c5535bd94534f862d91751bd12786e01b5655f7d1330b9d8c298a7c5ed134e1b898f277de4e334c04051be1b35d74ef9cc7c21399410c7519a80d0098e0bb076ac894b220bd3504881e606c0f279ead097df14d44086c7974c7056fcc4d9f8f52e99707aa9190a6731459f997269691e977fec3d54385a583eaea2d6e4731a5735e8a013dc6541db45150c33ceacbfc0e078ff652c9ceb918c8be605fed5f7f72db28b65c838141a8a142d0bed1561127407b7aa4e733963838e5c3b79974a3c07b5270297ba8986781d081ee28b2538061d4d4a887fe51b385debee2016d1f3730c0f9bf11c2b5c548fba8c6c0042e47b490eae2718510b8912e806d16f0b7f53013ede5fbfde2eca18d69424004e21584f83b226bc34f152d521da1700f54a06507ba5238ae580a6dfd03ee800a6e1c69b55555ce1cef5602b4511e085d2f25f369e82128c59cf8aeab183fd8bcba95ef80559dcf4f0c00233b8cc85bc8b536e345825924768deb8b9de40c604acada8e827b575950cab4fd9c3adecaab9f49b2d465e98701b6f41a4bada62cc71b3f0b35eb93d5abed10e80e51f6d0c14faa9b22f15a01f35c2a9fa98de63aa018cb8ebf933815a115cb0412ca5f7df825c80ec8bea39c996437634d8b306e384a9af54c9340ec94fe225820fa549fe3f547109601f8f36e26e7cb6900bdac2fd2db4814dbfd08e37c0a14f1e8f0a12822922b4efb1506fa07ca79939df8ae5009c0d512e035600d0b4c625ccf6d1d293f29d6e9e88ab88c358015f921bba4b1b7206f52f4bec566086292ab1558b8fbed9a92d19806aacc55415ee307984d19702e70c38fa8cb4a6c866907715e012ad0088a9432de983e05e402af541d932ba6b0bf7d93c1f686a056a47cfc2c1c1038a876f90e452d30bd91cabb500f70d4bcffa064af3b3463b40bf5e8a7fb223e4d2b3352c7475d22110fbbd78279fc2e3265b56b720affde3eeb2d2f1423a53d9488cc8499ad9c34464b946afa4e3a1f20dcb1b393f8071145aec112fffa56de290987f90f6b42fd65e3a4deb08851c4cdf5ae44f09a2c73f0f2ff7a3886db891ba098991dccf8210bd254d4310c4b8e49db9c116b5b1c12082265b43105de8e6dcc9d8e9525688aca0884d57c1a6cc9cbc888017a2c6b9912e319a25ae6b83a4b28819ed09f950dc0750348d189be474255d60d14a4dc566657633c30bd6448068981462a322ede38f642c4f83f1104f81baeea47ad916d41a2685e07088ef5e6865c02bda2f2b6294152d135b23b1b1bbe6441d39c97006581d6ef05063e59e647b598c0c527558bc0706b848d70dd6bca40f83a0ae072b1c28943ce7a3c9a78a91ea2f2d148382848829c58d7339108831a9c8b1960105712616356639a021d2a422e32c074a44b1a95ca4d42738c89757959fca3f10088835bd88b1960011d1a68a34c6b22023625a31e35c1e04e24c2872ec6540438c9a488a90438fc9c5c4aa71954e486bf60bd5c37290721d8a0aa0175d5b3fee736715c21467691935168755ff21b005eff56e4df1a945ff39d711aacbe1ca20abd0caae77caea0645b0765d2cb54ef1a68b8143eed04711c477e673b6b800aa6fd5f0094e28a69d58cacc8e877b52d5ff2ec7da5bc8ee2613dd425d06ca14c50cb98d710b4e7109b23cfce0941edfd73164c03a368221345124b175fc99292bfeef3346d085533a7d6c2e07341b2a161449bb1041c93783fd27330545b8b195b113c96400aadfcdf37b13d452f4712cf0c379cc03f222dffdd0bc01a4750941d5e42c9b5053a24a26ff7d6cb8feb5c91b8621e38936a07c4386ffd300af8f44edea3c16547f2b2f95f4102fdb3bbfdeb4d429390996948ea1edab1fda453f4ffee9e01a3407507eae86a1da3170cb2fd4baa81381d22ad3ede3f96ddaa575b48269d47ff2de8af77a25f7fdebd65945e67e258cec71eeadb9b7462c7e2ca4486f6fb26106e04599346baa3f5b863e730229a86c9d752b9207020a2a7231a3a28f602ccf1beabd40fb5e1d306ea4da671d6401d5d51cb87b47879f972066d3ca92baa352f7fc32b3dcadde4473475cf122df8e558c0e39f33403ed23fdc07bdd2cd7bace5918e2144db4b5d3d6d450a92e7759711f0c6b1a946803148231361920fdc0ef2fe766ed9158bec2972ad02f0f7473aa873ec3ba65848914f6803d9102012d66cd6f84b8ed57aafae778276f555dcff15a179713cbe3e9f72d3e0367ae0d64ecdbbc0f4ab0ea28183c4406ac33b25ddd24ac7c8b493568e719172df7553b1f3a2fbfae8e9a77c35ee7ee437f67d9cc0d41267e087842f5f141fafa9fb2fa29bddf7f97899dd7716f943d6dead47d1d35429b7faab5f756bc8bd1faa78366260fee39118518ac6c3aa4b21811975532f921dbd7063a346fd9027649182c560e3634ffc1e4805fa80a4f9d3d947da4c0acd5cfede85de459cdadb580033ec10c084dac542217118ed221e7ccf8990da3798505f35675ea64b8f96c599f973ebed26f29d8234b932d68ab956649279a45aef6084c0c1d762e054dce93c6c8f601f626cfe5caac3d3610596dfeadf01f2deb55ad94522feee9b1bd7d483b41a3cf69fb409c268a42e6f5e5fc233c8a1847f61267ede54e92c6540439a674ecf103b8c26cd35c5d09326021099619d690f1a955ff80c1f86c0d30382ab210b558d72d6a3caa44d6a20a0317d92fc6446bd6a74224b11b1d0ce5421637111bd3f225026f5693e8512fee3461018aefdccfac1d2de5a286a15bfaa8be96c53aeb08b1bc54c10d810a77bcff18a17fc74f45f317dd9117e4c594e22b6d45be198edbd6d8c5e603e2300d2b1fa8f1d497b590696fb69b426d4eeb4cc4847fbddc01b82b3959cfa4df90d10c31ba28fb839ab42f7c2b8e6213ba9373ce8a0be87b2ba157cef1d5b0963c2d6670765e9efe3a7054835570dab5af7a1911d8df9e06df2bddb829b2c10815f4efccd0a7222291335ca6cd33a5174114c47ac9120a5d0025af344ba08d4a79144c808e1861ce2c655182e114bd89799ebf5bb232ab6effc39d607e08cd99b3806228664edb54f42e4aeaa04cbbc63ac7e138d16e9d2880183d58a88698413c9b724d98d30e76213b8b850c059647057c9a84ba40260ad8e4fe2610483dd8ac5394674d7a5ce76194001293fb3cdbfd396f5495be0b14dcef4cb32511c2fdab1c274b6b6bfb0e12ebbbd308253486d8c540b6542ad76c5369b6f7302cf8b779fa9efe338230114683b5f3800be4cced7e5b0978e68d4c20525e9b6200776ceea63e09b509c5afa579f67982b0a65caaa203441f36a44a98bad0f7750d2243b8def7f6024c45f2965003445842a36ed5e4a69b9fe12cb652da3fc9db0e404652858774bf1f3bad3545984ed2895f4a1b094721086364fc8425ca2396152961ca20ba873e38308ecf39e75029aee0ba491c5d0dfbb07ac3cd3807f2fcb68d88b319760df8f1662204487709248b0ff02f95311e110bb9a931ac640c9628b10887632de51f3b05e0cb8278ab449d9b1d31747d8c40816b375ca9478a9b4a4e615f920e6d858157392a20f163d809c94926fd49c43474bd3becb7cf22507dfda771c78031eb893402783f2366850d0512a7cfbfe6c4ef460b041b8b8b87af47015b53d8204cc2d828724bc871b97451d7e7935e42b9b96b10c1d5a66140c052ab0ca036c276db4b7f6da0018e1fdac8816f5e451122099cfa98b0162d615f2ab44adccae35d4b67fe2d2464d54c47fbcca3e347a6abc580c22264a3ab30ae7de5d8efcaccae884bd8ce5f272e83fc4f06996d2364de7f9b35a4a8b232638c9b2e1fc9829c1e4d053eae5c5d839e6ba4ba8ebcf8af0d3e74b2bf53e656f8c2aa165f15f68949ab7097adc958620e88ef1ec6ae9151c5d227f498cca0d9f19b3e789eb33fd6819c502b6aa9c1f9d627582ec03020598d3ad4ee7b7c17195177484f62667f25e39c2ef530c22e97c4e636a588fa06f60ea29d68dadfe27cd7528a8e05cb94573676acb76fc5eb7153d79fab3c13532e7396e2797d59b26519b13c7d54c0af67b64a4fdd53b5c6d5b3fbc39c9a833c796e3140bf1f21fe0390215c0375f8411dd374abd0426a9312b365cf3514f21392bf49dc9a723b14dd77bf396c6db4e94c857e694abe9db6e9a34d82ac73a4517370b0c2ad22bae7d7a9287223bec466e4fa4b91e4ead1eb06a0d7e54d2b73bb557b9cdb7f8bb6e7d42489dabf3e025b512ff39a1fd756524dd6ef85b0a8c1802abb97f70bc7f91834007a0df996a91c1d8c4e3132f7f5a92166b74f5aa9fcb1d1534995bfd09579fca1290f14b3704ebec63edbeca60fd0ba266e864b294e1244f90ea236edfa1e13a0448f21dda9ba428cd52844cb7119fa86fa19602fe7e7ad5b9c585cf11e454392e46d6818e46507d780928f10e7c0bd8dcb1d46d97d40169613fbd1b0b1d37afe01d016fec8c1c1132d6eb88213f967560df5010e3263d70e116427240c950fa12daeaf32c5c46a6a86cc8e3ad85de17d51ea50203c8b45ed563cc6d9496be14b4c75331f0b45e6c263a19e978db63e3b08f72206821297b36e206f42c53e48a61d6c799183738e478d3deb9a44a36a051f52b560eea6ca3357b2fd6cbd164e49189f0f5e2a426eda149b7d71535ee5d138e81d05c5879ca2f8ca289758ac3f001d9cc1502a582ce586a32d10e6f9c47f7b3f760414b3a917402d9471120b404402e7007cb0dfbb25066cc0730f389374ddc2305d9b745c684e12c7cdbecd475147d540e85ee4c208c3913e1eb9747231c01a94840bb0a4a56e027452767c6390d0bcb2178533f4fb32156c8f78817dae6555326cb1b111325a7d4a65d030adcd407e15f18e6d6de1a28b8124f3a4a6a6f1ba50254f66d8f09e760ef7e44ac738b7a1d701f5ba477ae82b69d1a7082f78021e4b05f362b345d6ad2700a23b7c6d77750bb66820562156e8446bd5826884118b7455ae4c24afd0773fed31473604a0ac2214ac2843d22badcf259b95ebe29e66ca806d6b353369d6b3129a531c4507140e762bd3af69516dd24334ebd2270d0341dd9a57b1b0ebe65c82d106004b74b653ab8ec82faee9c7a2230bd787db0ba45c3458cfe1c9bbd810d93169bc455375900e40ec9f0ea94510337fb2d6b0258988878c0d89d8faf4614de7f1172d0f5df175ef1af01dd56d6943a1d044a13591a7adc1d098d1ea03872b9b6efc957c2808b6cfe0d06747f72e46e5b01872bbdf083b899ecdf0eb660633bf547e87a3f242d48c0dd0c91aa0864f62a5e4a597982b8093a74037fbca3c7cd9dadd60f40bfed2d4b83b021475595d4ad6e1c1bd507907217cc823c3326930f912499556e10dbaaaab0e1eb710711c6cf112a596adc499b1943d8a12c9a8c9951fae6ba6c7c7f08cf0bd8c6612850df7d2cc9733009aa36a8ff7b1e0a121b378551198c158deba86a18d012018fc56d889549323e81d8afbfe89552eb06002cd927ace3f178801fb160e30309a5b46bad68e2e4a103c9c258154136a03a2ee6821f045d2d70536f4c89064010010cb3497160436d6a0428891f13f0faa96271f50d3e504c87d3a1d523fbf4d632a7fb5dc17d764b63a63f598f46151fc64cd692538c9a104b190a04af23d3ba49106689f41b1671c42e58584e0a8ef03263e4709db4102d2ab7aa19d4893565dd8a6133a37e5df6469b72e64f699effb2197a6d9d35c101c7dae332ebee174bfe715123e3f82f9c22659014d391e0b7844708ed941dd209597e12c836fac581726c9bbcd155f6b20e658d6b24b011a9bf8041e87998087ff5dd0ecab3e40925617717245eaf3109990c25d152ea1c6bc84884bc465f2bd85bd2ebdad900e81bf7a121420bddec148d55e089b056cae9630a181302772e35ce2431032663400323e85967b35a44812a2816aa47745c1f78ebb1e34c1f264dc99a8186b1cd91680148b65df14ab8ada262cc60c404d0fd354444dca1e296111b471886de4c71fe552c6b85722c757e1e5157051b1fc2b2ced10e27541e782612089d846420c98cea642887da150c08461450a1c9d38408388790c210d3db23ce2cf88e5dc8d1cd5d09aa0244843b06ea5dfe6fc4515b801a7d5315117adcab51c0d889710fde9008aadfe56cc00a27f04a5161e9c8af33bf470011c4661335bd5216863f36b289fb6011a96a773c2020ca105adf33d55c771c256329bbd32dc132c1834c8db11fb094dad69c09406adc4377076f45a63f6b5475664d2eec0a9b2e10d9102fc6b5eaab287b86e14188a11429367f6928f7026fe0f5a2111fe9350f0c58f2c7353ac38d59e196704fa2f145b4793e6e3c149280c103cfd46af58a71b5586f3de3547b3cb41df66350f27a72b0c243a4f2002508d61ed3c648c111f3b86063f3927820cea92f6fc57f2341247f860487db48630051c0c8919021e1937b01959efdb5830423ebadeaa5c5a24723813a6faeef16a3f5c21474dae685bfd58fba2966e763dc5707decf754b23646b19f927f177b86d0925c957c7ff0eb19445ea6d1fff0a22b981677a7261245be156f063f6edd982c547c2bb2fbb333ee32e607cd573331e69468b314db3c68fd6cda27146e60c0f8288510c937a19c07df06701666f0bfb5dd94880d4ff1e3226fe0969909abaeaa76a2fc2125f94ffc646848f83d340f55ab9c2d0b7babdccd14d848fd40f49c14249cbabf87115139d9953c7ca4e96ae8aa2974197113e6fe49e832b0c48c6e4e327408771885e7e36b41ba97081dd5b0197044cfdb4e04a1056d8829ceda8870263457ea9a7ca5dfc19ecf6b4409e4f00f91ed6b2254767f79797b448d72201707406a1b47e15b34f7ea23ba592ddbcf3a8b0abed1e8f86bfa60934fa1a092462589d3683281f6b5b0fcc22f4ce055fb6a1bc80c551c494abed479a6c3c4ee7d10dc3b6baa8b6d6c116f9f02a15e406d1c66c1bd4036768a414dc158e11cf06bfc0229620e23264ec6c83f0362e43f05e72d01bacbb630cd3108641129e723fb1da711def38418ff47a319d1a81350f59840fb33a34e40580783aaf27637df15c9239af9ffb50c9ec1c665e13c37591e30da7705985028d324c20a34a8c009c10ba28ea274a0d92da188bf4ba8b082b1b64982c1e10c41b7072e88ea622590ccd5497598621792ea34dfcb254d06670ac30700e5d6c001553f00d7eed676bc1de95b148b1129439bb0fb8d01cdffb4a78bd4356c8ca784d11a81cef08435542b94716656c7f55cc319cce42243cdc13dbd5a13f2c87835d03c8eec00cac9a4b5f9960dbf0519e3bca757f6c82c964e30852a9091512a31d7a094b9c7de5c408154d5ec4f972eac106bccb2ff84f34b6ba3f250ca81dfaae3eb26fcc69657e7480676cbd5d16fdb0917252ca3d4b44c087c2b47dc1c1d9e962c1104614c58a0cfb8163a2b474f9665452897eabcf612559b81ffba345baa13484ecb8882c9b054ee2c25bedd3bad80a5a48a1833e4c052e39180ddc64b99e6099f317a56403ae6d14b4328ace954a19f0deb90334563423a6ff4b7b43b41e9a68b4ee3285b1c3ad189813672c93ca427ccf4a9c45c03b7e7fbb2ee02a1d5e4efd4cbc78503c12d8c6f018806a4638859974b328d9454c5755575fb49b8892b68337e197448dabee301975ad1cb03dc4cd93d4488e04e7318f2ea470172a89cce3ea550ff0ad391f85dcd58f4e76faf6f40ddcec4fbb413b03f25372254992771eec08ab9bb441ca2236d826908a785d271aba72affbebf1adb34fab6969e1443e146d9427e8116f307e1ee9b3721a5cf395f9680feb11a7c7936a6004641818e09650b446d412fd5779ec1ea53ab8535e5a96d1cc2e102983dbb8dd28b3cffbdb319f0cc167399b80671d48d264897b9d5bc7f281c85b3f8279da6aa15c76c4eda15a101b096d63c5a9eaee75c574c138f9c70d71af9cbf5c123649c9664f208e1944426576d3c5904b77b02545318162da356657e510115f66899281e05b9417021d308edc5f75eae1a8df5372169b51f9fe9f462f963cfa78a099d72ddb191aff267c072fcdd653a570aebe210f4b369eab1b07f1c9498f930d5a9e123400555a845c3b909c737d20ce4dc9fa6897033d1e858749d87890a80d1513a4d31c80e2529772eab6c62cf34b5474d05fea2ad36211b22d494f7742bbf495cd4560fef73ae9ac6448b752980a0398ae50285b5da473c291b5cef8938099fadef9c34e79ad0aeab17d83b2f69d9e91cf2816a2613b696a0cabcef02fbcbf8440c469c67894762f42e4a561a5f8ca349ed5389ec0d3f88de34437dbc793b89ab1dc282c6584329d7f756009f09b5ff1cee6f1cf24a00c35527e5664288579da026f1ed176c016c4c9cb8ee6580cca073bb3e5b3e81d2a135c796d124827e4b818f4f99cd36ec261e2eb1d9ff854021dbf869e0e7f3538478ce83d328563f0d94a8dcc84c302950883e5f072a6bfe9488f641594bf0764e67e5e85c0fa033bc2a451151facc99840991728ccfa64a0f70fc6834f025b21c456500189f2a962c3e4a7581c33b319131ccb4e051bf880b41cc29984b3422a77089778c0ac4034031bdec126b8abbe59f812f8d241c27acbfbda2932a7c4ac957722ebd234f759d9a1a387cc3a16ee9d0d55d882ea1f88efab85ca2eb77b1ac22165593cd69c407a5c98300eadb3a257186297bd8a1014ab3f99a9aa7b18057546bf33cb1457135fd583d1a44c97d10bc451993ab891a6061cae305f2d0fda61be0cfbb6496a6f6542f4aa6a9a1ba32abe9393e913da26602d4f298e313ec86bea092e34374860ff6e1bfdc0af7d4703128d45124bf0a2c9abf6279ac41c478279df079d07445989e843cd70d849c697c992e37ea07386b3880f328ab679f28aeef318a824a8396c3359143bff9d92b1fd2e4996cdc828033fbef4d8ec75565e7e9d8aa82907b8de1e19ace1405364f1ea172eadac386699b14873f1c9e1e237222d2e9b4918188e018d9fa98440aa2e99f225a1eeacea10c41409d896e94874250cf3fa24db314578cdc107669182acaa272cb22b8a446a17c7f578b015a8fb27e96a1300a31dbfdcc52cef7ab39122c88fb91f35b8b1044a03c3e31a475cfe61a438415b96291e4d68feeb8b11ae22e05795c95b259cda20e8122c195a4da72c40a8bd189500ea4bc4bbd94e19472e1512a09bdd42d002c66d5e22b5a476fbce55e44f9cffb30bcd9547145654fabaf544f9c5ac22ed95895206a03d19d023b31041c84c89ca7729b55a3ce9ad1b78d340038b0f6c540c00c2142ecba420d12e4b306550d92bc2a7e9dc9639c7f36fd944eab295a2cf21aa43f1e0d18021a223ba93ecc435385e16cec226777e16bbefa1a7c353294ae99cac9eeddd7c61948eb098812034df6d069073fcc8a24b2b6db599afffa7d02086aa939f9644f07d94d14e8a6e1972483ccc8715546c6999487c79af3f1c170a3e3d1bd6102560100ea401092fc4f411e59179eebd2a743f1adc6b5da45eaa6ff83868c7a528b291a406aaa52575e62c9141f265ce82a126f1e03ca6c4012b0a4856a1f86536441b0e1b06668031422c72ef883988f41a927b45a2fc869ace55c9680b6eebe10d633e1bb9a2ee1042ef4ee7bdbecea527663af5edce8ab25af5ed928baa693648159002ade05fece178cdf8203f12c9053737a6e277ec39f690bcfbfd651210ee06949a8fdf8fac2b8b8bcecf90423b33cc1cd05600d86646c1de327473626fe6d6ad554e85c84ce193ca84cea49dd6d0ec7110330a3d5865ed5863e3986c7fd2d7a4152e5c6d4210d7f37977118a9bbb0f25757df440313438efae100df12ee17ec9829acf62096b26222870c24f55739d12187207d347b820d658548f8c0c9805cf2eea2ce224ef633ce3257c02a7771cd2ff733456bd0399024a35dc5596d08a495926ee00da4685f5b659c4400a0b100acea86c0d82ba9080f6802befbf51a8e2f837834ae99497c1064931d8939cee5d38d2dd86b2d192314208647a527da786fcbcb12e8787ef0465b708bcdf502981c98168b8bf5dbe921827a6c5fbbfc29c2f96df0f6f5ebdde18d2e0d41a387ce771d613530df208bb999988e7ba20ff2666a8a40becbd6d633f72232971476cdd54b7af0cd4af3a183fea0672953fa8342b09d2ddf7b1a150e06d4bf20b22304633897e9fdac9961ab7130b4c43e9303acab711aec3b4262c6bc30f3c701a6354e5a9e3e6e790f3c9ac165450ffb88547882140f8ce54b29042077ecee9f037a498efd88e0d12c3f0677de1c49ba5e912f393a47dbb4bddfc3bd7b918bafefb4bff5d82beda04385ca56f01ee3eb1279b292baaa5a062ceae0bc807bd87e09770a5b74518740346e9a6ddd6dddc9516d5c972a1a2c711a7af38fe0152be60879c6d63caac8e039ef0fc83299278c86b323383062ddc9cdde91535038b2b536bc4c57898ac785099bd1c1ee5414c67ea3b3b5486f50cb056e4c9fc7c9aa16bbe4c626a16bd823fb065317a373ab6f687ebb815419ee3280d3e47d24319e639aee0b0e5dffd68b7cc378fa82db7c7c8703516c684e4fbd8f91b13f916ba05ece75a4200639b849177f7dac3c646860c860d398ce9ba1fde8aafdb9a6411e8e4e2f593fd014d1ce7e5b02ed9b647e920e38b1b31c714f80c48f0e58415a47970412348db6fd35f0313f9e05809472403c92037cea3bb9b5e4eff76c984df4b4506c92e2434f950f548277654f4cc45b73cfbeb193f31267f2919d44c68ed0c632fa5f58c8b2643770a346b4ab9a5d2867812300d2fb20294cb561b8dd1e5e77984321492cade96c383503f7593a108c3c80310ad4496dd340fd80dd602b068e9abb276a8d11a7c2de648098f5cd79535574e5a7558b8e500d436b5586d46a3662f65ec9ac7c7935118cb3c024f76b9177891dfc3a5ba56c7fa2e9310117e7bd3bab759f3dfb5b5e7bfceb568a28da01b524585efdcc66ce3eab12b7a497fcfdc777f94b51458cefb45c6ceb2309b903fd83b263e8a307b02b0ea2de3fe587bf1421ed06db4b299261b843731b95002099ec0094c03d4eeb82519413678b3a0326347cba7a0fc99a52e895a09096570301d71d8a084b8104ab0d0d27046ef0a27aaac65556ce4ba12f59709a5d19396df49add57fcf01546211f11be8af9d2a6abd6eaaebcd3a4ba3d41cf90c28589d68e9dcce192505b75178f19f3b4c35cfb7bf25fbae3266419bd0eff3099ff0243278eddda86473d1c6d076f7abace895529c546118d5993025a188849de72a62ec1ec52ae20fc9669b88da2a01a56de2bd74caf055c416afb177d14ec0ab2120c7f10fd6524cb36a0d8b474274f39c728f58eb950798d93f2073ec64e140a3e9ef8686031a9c54fba2a143a6290ab71e469801449537a30bd9cbb860dc93b8fec53315b02179c4bc411c3dc0fb2e01505116e64fa71daa24cdfca7a0944c494bc3d837130bd2346653405783c5239e8f028eebae12959554b388c66e6f28b2370594a6b6e40ee6c43773dfceb63ab5de23ca7202fea074013185a2ddf21f97a2f620bc9afa537c9146f960da52c5854b947773aee3a7b6c9a216439cab30a5bd0c29c619b70166dfebbfb0a083009181b75817de4232f3acea5ce8e3fae3b2df8f9d8fa62549d20c76305b286a14f0da1fc008b085a1b4fc30fc38ef7d7004ac80000998233a240ec049534989c47ba9ad874d41fb43684a727c84c4b0e6ae579a50ca5d9310ca49c3148a8bc49a6ff340ba619142a08e3e6ed41ea1915adbce00672c23dfca0df1296f6955a3a98d8321bf8892ae2ac05c27e7ab34ae34c9e646b64424abcdfb5bc0698917ad6762586d7bef5ed3bd80474ed3ac9edc777cb3e84ddd2490d675b357405c81baba879aaa76eb669d3f5c2f805c76cce5489ebbb5b99d54004d04a84dc05b0755e5c541ba90ca2391cadfb767cf9dce380aa9ac0843f969584efc4922152639f8202f6d95ee72cd72a6cc661ebdc7f0f8a63ca0b38750e4220881a07fa6edc30de7b1afe4618becc94cf50280ddeabb63120862a0dbe6df181bd31dddd076968bf916a202662c200e24a690591a96608d6a5b53128866a4191fed139d53426bc1f8cdc5c69896f7ae2618eb56f85cf85d012c782b8a0588f070bab71e04f55558af7c609efb3d137511d76847f4e333cba8f93abdf0c9a1c3ed2c6842f9fa5851d2ca318e75eb0425a4d1cdba71a272b84a5d48fda54e7d388f0eba35184ed96f01177c3857858b07e568c76df33b132092b51697dd5344ba051eea1fdcd08c58ab065c6ae48893b2bc98ad12d62a1661a9c2f6a2320f68a7691502a83624e824684171f8e2cd29d52068a66ba030a2be4ad7a222e99d2aab854075747b411eea0ffcd166333d0fef586d9d831f0e9cad4835b015c9ad492bb1287da10ca29d588ee3f6def867ea2ff4dc3485fa0443d0f48e5e489f8818895f0b9c6f9270d81c6181d37159d4674c70f2385dd91363009a985815e2cc48cde695838e2112d458ad153b47ee788142b3b39f3a1425c019fac49940a75ff899d6aa970a93000b924d3683ccb0b790cfd923a90a3859b4684471f8db2f2d3b73be0627a30ffbf3d0d197ec637a48e5921fd026aeecbcc425656bdc865f2ecc1472aa6947ba99c6382ce024afb09f0414669251a71460c14d28a150de1f9a903c88cf2c73fa643631749aa063728e15f3ad4da8164342fb0029c264e8e1c05b1766a313bd85a809570f33fa46f36a8935c24720c798043cc401a4f2f275ffe49313a3eb6854c2b2001cb3912cff2937da58d5d54cc0d820586e17256addc123031482cb34c03b33be0d0e141acbcdff47da6c47a03f38276ac327e5f6c27c8077e08e9cd145001648911a350ac84a8add69f47f2b2c2af6367b158c4dd3e9ea1a2f4254157e37d156d9a0cf8d78509341e0f70745bbd903b67bef9922031588997454a5a908f4f8be8188e296ead04215bb240b0089e2e222c2e43629c032af00800f8f9cd3f060bc8cbca7c83ad24b0a7e60862226798cfb90d202d010919ac64e4b216aeea4f5f56fbba06c5135f0867029b995dec40329a115801a713e75010892a60c0c301afaa697e873cef23b6aaa519e9954abf958883138bcfc9c4ff20a714c0a3e3615b7730a19b6cc9214153a39224c9230dc6b8328458ddbf6e113ceb0a84e0a6023037a0cd50c0871f75ba4c06ebc46eacaa2925d3f37f3411bf6c4e0456076aab2d943580041fc333e329e3ff5e055694bf8e5834b1e3f508012b8d5af79c2c2ec96d550dcc250376af6dd52762fd6f86ec655f68d7078c1debb0e4b584fd0d077b09a90de01e532579274dc0e380ac827288adcece6655f68b81e24d385e1499498fbb9e5693e4d103a95d497e3d84b0660557264df0a49b15abc30fee7ea5f426feb8dcd336b5933ede035ffec0366d1b5bcdf5c82c4c4549db12255d9717caf62ecf77d281dd1cfc4b1d106c5b17f6c6235f0b74812ffe59df2bd3fcf8339463686d7f02709e4061b3e544068faf08aa3d97483cb9579f33fdd604406824402cf2101a8491e059619e1054a8c8153fc8028a4c5b0ea59f1a4303b50dd0411bb46b8ab06d429ecbf905d27d93d5e728254659f3aa4b671e3f8d5090ed6b7e9957d23f6edc72ccfbb05324a69c5e6c6c163e801cd8453f0b2d501fc4d3f13d0199ec5fe9aef37168308107ff8635d272d5ce3147700f7699d6224fa7ab6a9e44b02348a6a155c62a91685a1ad1517228dfd691cda54943adf32bc304f1d7886f1df7b51a1f2cd057348ea79e2be31af1c8d6127d80eaba7413a58d7398074cbeef396b88beccc314f9654eeb89c0b25233dd0baa32b3bd9e97f5b9702a8fc1ed5a621dd4525063d3c470c9895e02466c88033b827ff97d4deb333c703a453be7ef1f407c9ce5d1e8cdb936ad05fb11d7c478d1c521c211c5d1040c2099c1e227e2a5db61aad21c3f5be695348a716517c829ccee3b41e8832c8c286efab4c86e76b8a9ce5aa09280b42658c1f155d153ff363b9ba0dce45d743778647ca61147d8a283d40a5af793a8a65e0c436426bb0da51e1f81f990f3047481bf8bfe082e544bbe0903b450e6288884596a0718e0c0a28aa139e6137592253c396ae5c42c62cd9f08be32fee56fd81e640c6506678e0f48401cdb551b35a96ff7a5b6c5520f6aee18997e30df13a7f139efc32fce5fb33c684a2d3e71c0182afb7cd2b942178bb79ebec9a539932a97c380bb357bf1684f6e14188c461a20df5a278082c137aeb615a694c4e517b5a6ade3c0a9b286b35b2c47cc1450afca9cde3cda1eb6058f909ae55014338c29f25e346f3540e9c91479bd94ca2ec7b40e07ca14116efe5a0d62a45919efa8a273d38a2e96a0b1e4f3fd26b8aa62751272ee4eb8594d485a42773af223b3162e494abc78aa38dded4d71b9209a6102b62a9568e06fe741095b4dc4b67a918657ae865214f61b0bd0bfb65205c760bbce00622599d20a6ec42c2090cb6ea21f77ef34c4f64891502249c78e985addb2a428630f2782cbd5fa93a7cc22b0353c17ff21cf05188163023f1463e22f2eea25087a9eb6408180020c094950df7964e4687a44ab7b01855ffc7fd49f4407f53e0f8b237858215042cc8049b1256060d78f0b9f983eeb8ec9b9ac94bbdf8bf8ee6d5328a58278e36b57e128b25dace74dc4128b1ad7368e7439e893c8894db38b099e6473b2e55f375e66e9e019dc831cc4448c8ade224970572caebdaaedbc77da3bf1d4367fc74d5e51a858c73f39932a43c55d6bf8af87388c3eef661bc71948d4d2ed133704e458e0c199b9206cb22f1d658acdd85c6b931ab5732d888c5f679b83e29a3c77d482706a8252c5a920a254fba04a4ad9f2c3cfa46b198ad1c874556cf9308ebdc893d6dd48594d75efab104e2ad43ec18fbbd26aa03fc5f022041a5e6aa78bb28865b3d7b7540bdcc18058cef378d9d9b4a906b43741656a90f44450685539312dbc1a1908da7a4656430966a0cac960a36222b1dde623287913066f59bdb18a94c4fa9a52ec6d845c38bee9444549f52b7c57e4b7ad35951b9d881026b3ea26e557ec70466d7f7913b9b4495365f6efeb16eb84754fc40668b6c9e32ca0b11ad67ca9e4d8dbafefba01d834d1221370c0d763271fb66570992a253d33fe7cea31a38b4d1bb1b5eaf3fe3fa27f769a703d687d04f468117f27c3102f2079846fd9836569aa394871a36ba52c01664a665b4fbd5a435c9a937a5be7c65b6abaf2bb9088bc8e5b87b8c381dab193af3d0ded7b575584233ea5edddacc7b7f429a84b3a681fb9d9a86d687b16122f6e0dcc626a5c502e06a0248372c18fe5d068f0198c0fcef516d325b9c9bc88bbabedd90d63ef241ec937deece7f36243f83fd6d8afc11d188e91a8db6d5c1a7db7feb1bba0ad352cef9b653c75af2a0bf1eda81ee05b2d28238cbae90c66ff1f2e2f646011639cf3374b0f08d89d7a60568591c6f20c1cb6b9f9afe0fce30f02d5fec99fed38150d077557a79ff5ba1867d40b17a8fda214450663ebc1041ae2a978863d8251dce3f901f8dab8c12a4a62f6d910a6a3102037221b6b9902841fdda856a279fbee0e8b7c73962b0dbd5fcd5f0e5bfc6b760a83d872a045711666861305318a42fd720c2dc6ac38aa51284e1b8577055081feded106b844bf556b66e2d077a5dd13d270f82b7285d69ca509c48cadb07f25f33e3473a41e47fc258c16b54855fd3dc6d2814729a5c37fa1031cb4ab64f10fa348dd0080af6c9909f9088a75a22226f3c6094c56881d5448ecd7e84a16cb90162a26f5900558e0ab0b293aad473b5fd1c31b5ffd282e076124a490569e7d91edcc3550badc9a184d092530790e6378803fe364134bab78a61b5b0e00cf01a1e0c2fde15ec29da32259c238c038c708a77f2ae175a288d0abe46253236b082eba581491ea252318a3c6542aad1522487b88539fbf62aa8e92a7c377b594713418d459e8801efce69b1279293d6f46d91260f4f22df4d1d14399cde72c3f19c516193432b53c75ce64402bf0ff03d6f2ce334cde1c943f90b1a2851da4793996aa00ab786756d30647b94664271028889168c75963ee172854dd8c8ed03bc25c6d885874508e1a4f7b4f517ff2b0a685fd8f81f7bf99ff2d973c13acde272601b5a76905e5fa1d182a2708feec4a3783b279a14636199de28d438f65b3e0ece7d43160e8523b8ffb17a6e596bb02d81b93deaa5da65086baa30e2d7eb8d458583578783deb84b20ed3c3833d1fbf4f447316c3495a1b1f964a5c9b7401b7e9d5ab0acab49398ff099b708ad62f5bf16fa6885b485a4af88c608c23f6ae04ed8834ab5bfc5adbbe8e48edb6fd165e1aab644ab50b5e2e99e146c259a67c506f1cfc51a6094183641937ae1aac6223d837f3e1845b89fdc2f9d5b674aba114469d4e40516b00117b89d1b18fe1aadc8eb9d89a7e0e05fc349d587d29a9651f41b20da3a23e2182bb656675faa0a82981be1c3e0a65f42d80cc1e2f6b833d3161261c8ec94dc000ac98c62c4971750e0254ac40898ffe90948876b3dad2f4db0a8a403fcc53402ad9b22ccdb36bd1d19f5e12ee135019259e4152f7e65f0cf6477f1de85900308869b65592145450224f87790a93ac60af1c545266c7f278102cc16ff9084ddf3d56ad5992b8dd0c387466600b949af46e65bc9a1622b09e06727e190fbec75dc22c87663bb330b379ae03687cc07f41cdc616f29b5b1db5bb6160b07bcf3362ca69f983f0bfa320ece4dc603ca8b4322b3551a32c41b79d1ce5af8f36e86ab59c6c1897d0999aba6c38df6f3469647fb72d385d571db1aba34c7ef71a6b39e2102c5da08273baa84890bd7b22951119f2ea73296cf15848b3f91ab72546d45084c305ebb3eeec63bdd1d0eb7748380d45494b819eeee69ee1961245cbe18a0041f392cd2b1458ef3ada310f2ed21bcbc800e95017b38bd4d14fff2915648508049501c611c1ce33bf8fb8faddc5326e3fc1ab913b2aedc1e2de4287ccdbd06e94c8e1446cb35b2d0fbc41312be5934da864259a2a512db0366859823a7ba2194d12f8ee0e99f43f19c6dc14dababed63a9cf5c218562c38a5cfc011be5d7efa3c98f9517b13d17a6cfc607f961e1e17f4ba61b02791b911ede67d91d55673bc1c58dfbdb811dab4707f994eeff594cee7a802f92565ce193fe6ac6f11e4d5cca4f72864861f2d23e0ae7c46106dac9fb787e767e4e9f4fb573f2dfaab604707003130a861a73337800cd221bcce518f9b1ffbb2dbd37fd076212370b32d5976de259e99a1074691229d82edd9cd64d4b5db3ff654b572cec626fa9e6307364a1f547cc1f5c7231988824d21dfa085a2f0ab76bccefa8677058b35cf90300c27cc52ba353dba1ddcab31af6b073da80864eb1ec2ac7dbe81e8ba20a01b67c2bce4e99bb0fac32f4c845fea1bedec23f9205ca9d869afbcfcec0b04a61572df78a41581a33901ccc1556f7b5dd8b1adb4202f046847d1b4155eb8c0141083d70007ee00ad3815edaf2e22fc11463a4170eeba5be340f274bd834789de6b3d87cac439771e680e4d968fd69592dbcf882810b63a8ad6ab098c97a361a2ee89333f8195f3e4be0d45f2b54c62ed20d61031f5243a8904d4dffadff8e9889accfbee69f3b65ff5b63ec9bb53cd82b230f055160e78b97c46a57210ff61f72da25c721ddaca5e3bdb5cc16d8db515d7565cb12d68c6e4250ece3b73d0ffa872bea206a26c284a7d16948c79c54b1892f954f96ce2571ef9842fb9fe9d98843961a16de8661804eee86b3ef78a33a740285cc46cfbe533788a932ac9a6ba77f9111a9a99cf22742a8baaf23bbd4e51f98441a529bf74a3345df3a91aaffc5b408df3a11cf35d78313b6310d676de0716199937cdd37961f415d0ff0edf7be208d32e95b6453447f0f41c0f101997a77e185c43dbf32f2843d79ca0f50597a4675ede7b3392279bfc15c809151c2d35652deb0ac017128f928acbbb300f1ff6a5855407921a2f16036fdcb2308d4b419ed0d99fa61b362ed883737f418a283ef289fd1eab272f02dee1a7627c4ec0b2487a99937541f915cb90ce55ceef2a331eb8ceaf52632590dd410bfdf3b554432287edb0c04d5ecd1bd21572fde326844c522223d26607c7163c1618a39d51105d7e37e8eb7fb8bc7fad5f70ea09c12df88ea2164bc5621f511055f829f6df428865846d3c02514ee9c5adf59dc8e2266e915a7d9a8583475c07f836b0f5cd22dd46856f4c2f987b48afd06c1fb832022e944901476f62550ef020fae6850a4005d4dbf78620e12fa19f11745c5f7a35b008f86a3ba64e0b353ee5512b526f461fb47ed776f1f471781f753bbefa9da53c5cb2f9c3405749155fafb718dd981324af9f4219a4ab8697a7ef74bb6abd745fdc6a5257f69070d02f8bb21b4250c7bce9495ac50e2f590466ff833d36ef6c2a20153021ded403f2750609bcbb94754a263ffa03e736e5eece00d7975a993bd38d486a64f9170037790da0e9e6a5fa0ed12995fc761b1edbc3872f397f87dd7d4aba941f040106a302ca08a7e3137aa60a5f8b73f4377284661c681e161e496c70cfd0223f04c0b59b84147142c3605720eecb76652fead1fab24bb5e13c61f545d2349fe89ebe0c603d78171e85984966a2e8a0060d86abd874e316b0748d113af9f5898fd67abf0396fd4aac5f336a9cd8a202eb603c6d9f60c6400fa6695fb0b0b8e4826df89f038fe46f2442275617cab203eb0d43c20afb08d86f95e6005444c9b5d070590c15569e0c57505dd045ab82ae94f586ec043710bb5ba9fa512a5cb0a2f1fc5da2cb491ee5bb86541208af86bf2d331b01984d4d50e3581aed9272cb7956bd6f8e77fe2e71223c2cf0c4d81e83dea3d1042be8495940077820cebcba06469b541be5ca184fcef1c0ed56ddd34b87c2e0a146bf5728cda431211be839d06ab08470f3ef52e687b068e862ee913829ec68a4a6d0f950030efcb6fa91ff4e66deab99236456f6d8d19664cdd040018f4e4cf8894beaff3b42a41b3747b04c301c291d39b29a9c58b49bfad4d124633ccde33984b203fc77ee7951d342d0b8e4fbda940c7afcafa30d99575866e2aceaa1f9e4fab266504739eca0610856094a0c9696dcf88c97036e941e722e501d78e03200d0f283659509bcef47900d4cf65b24677d91eaa33f13bda5554e6f6ef229c1fe5fd1237d5404120c42fa3253c0591f680b7571a88fedb125587eb4dd007d2c4d8879f27cd325bcbfe9f16d6bca063ada4b989d6171dc23ae80851257582ec77328816235b1da9a0633fe85ff10c43a923f1d56800aad6cfbc484e6cf1926d4e2b666c903927c617e4938cf4e5e63b27a705e5abec621e625bf2d4c686ab335463fd4e77df0a6b6e2c69894f01af66a6f759600f075f10520a7a92d58e590773abb9090ecbd215111dc4f877e9906e5f101300ea4e264ce4a90c1b3aaf2135b289c43ecd95ec9729909603e7b192ec66dcbcfe5805bd3accffe783bc304b221aae7522427c53205eb905566699d56ba7766a63c43c2810516350a3f905bd2bb65895ad619cc6fba436d11d65c144b1d5f85761b0fae0644ce97800a964695d5f23ea3e5445143f931ddda48ac2183a3d5139685efe806745d538339498ee700ded0c78b862ca045367cc0da4fbf57b250cc112b9f8b3f6f5a99af17df27328cdacbb915c9dbd8a3a7450dedfee8209682c5471b9a5f3d1f7f749140ab1744d23721872ad53cd9661d2746f0c6d25a7293819e393995900810185316304aa9e0e9015250b20af5a57a132581276bab3576cd7657ecd4d12285467f55196d18a55039aacf2a61e45e165d0d37b8e9c5706a475e973bb5f8d76772bdaaa4437005a4b002aa5c56775c4096954d63958b27e9610d3a6ad03db522f7496b208b0bf3f062d847ba1ddc8b2a50fb884c2d5862c31eb54f983fdeb652d85e9ea4e423f6675a9e37d6f5c86a05c4847a90de9165766ca50cc2b2b216112d697befbda5dc524a2965e207200712077287caa7ca6ea9a373a4ede5ce6cb121466643d92f52764a4f2f725b3c2aa360e18bdf280d86289c8b994fe25819e688a7d2469cd99233c318e9b9ec4205dff693f9fdb8a954a6ca5e4b2094a5e256455882712a8ca850e2d9d58ab78bc679dbd0f891060e1a5385bd6af12777ad8c77def8aa63b827a03b8cfab60a85556ff8a1d214638c31a63a865b0211e71a1f990082913d901bc621a62afe9b2df43192130415e1abb5d65a6b95c2566b6fadb5d6d65a65586badb5d5da5b6bedabb5d6089fb5b7d65a6bad12b8a8b2a38c0f31bafe87793d7396330341a8020148d757557d0c19a3dc232b5474252f3d1957240db78bae31963ac2571f1f4345860f20b115a7a4548ad7ebf57abd5eafd7ebf57abd5eafd7ebf57abd5eafd7ebf57abd5eaf9786a3a9caef6ff89cff3f25e52828373139083e953a0af5d3e9df77cf7bd75dd38ef1eb2de7a28b31c6685340419efbc034755d1bc9421fe7b591ae1b8bd948ce441257f2273e30f0257ed1c518e30e34f5a12b6a6f2c629f9874615324892aa9a2aa5c29b458c1e89cf0d1fb1acd162766343dfeb944b32532e1048fa6bf45b3456abaef91578b1cd00006dc05a800a180046404843f1cc0002f800b1f0830801401b0e821000040e1a10590971d4c7eacf0d1430790c7c90e1d3952384a72c0e106945671c3861a4e348cd870b5be19485c582d5e8d1864a031a3d49964b0c0b0e2c20b31b40daf54305a78c139a0010c5800100a4800027e3880010ae003010620801e0200001e80bcecf0c3470f1d78ecd09103470e38dca06fd850030d365cad195c582d3568c810c30c192c30acc478c185950a460b2f54eebdf7de7b1f5f54ee7d7195bf5009e3bd3d2a59eadbe3d3049110d00f5ebce0c13e42f7deeb82f772c3df87f7e666c80a88ece4b0e05e25c23cb5caea3effc6c4bc2a604303b340ce303b3636363b2a21a1a12868d2515112fe2016796a17307676623600f2e1b9414a8a4e0b34343521c819a2c40850506656e4a95b04c562b1a01747474853c05e305130313152f1f1f971a26828e80910ec29c9539fb8183204a7053c319d2552a99bf0f592b9801235331940a16246f2d42a8262b158501e1a222a02836424c5e924b4636363b3f3588c080e64d04f4f0ea6266951536383840ece4d129e47c3022922c5a428851999983885a94d293f3f40501811090941d37c50bc178c65643268acf4108991a7a74464b934e0bb0e61c077cd59c0cc9f3d0031c3cf5798c8f24101dff59580ef0a43c09c417e98f33428b28c38c0371d32c0372d2ac04cf994333e4c163a91256908f04d6303f8a63c029853e6f430e7e94c64499d007cd31a007c53257898269ff207c85c61145912e8e57b22edf04d617e7cd32279e463f6449644eaf13d7f74f89e413c66ea73ceec982537913569747c4f9c1cdf5307c7447dce9c1ce6fc8c89aca983c3f794b9e17bcee879fa9c3f37be651692626b4428b226900ddf92a8866f6944c3fc3ee7918db9135913c9f52d89b4be65cf0cf35287ce4816ea322f7362abc4a234ac6f69d3f22d6f6ad09834274864d119df3129061964cc4320bae88fe9735e88d8da58be23110cdf5168e540228d31cf23bae8d1ea3b1271e1dbc60b31228b22d115dd115bdc55df30dec2a55189adec9788aea68763ba5016f66940c88005f4205d7708881fac8070e3040021200c225d57e887704f2328fd01420344a402841bbc413e847bea6b43009a01d008802647baee4e0fe19efac2044007003a3ce8fc48d7ad01f2a36926f402b403d00f79245d59928f9066b11e12490789c44322cd485716b423dc33b3d141938306074d8e74653b39e4e85056068343b8f10d3a3a94aeac46b2d0df08f7b442746503500d403484f348baacb531271265593a235dd6d21ce9b2aeb035916698482e33acb025dc5f8d90468ea687b135920588b2aa103d92ae9a2459e865d0894167868e8c9025dce00743b8bf9518e191a6a74894556334d25583aa4d8d74d51dc942ff42e84288b40a9154e19ef430c20d7e2d84fb7b11aa84359a9ec33e43d245917c7c7c28d250ce39e79cf3e34b98b3cac3ab84393fe7ec1366a973f5a93f14a93a518bea500d7a42cb6f5a054d1f4a218c855cfcffff9cf373fe0aef25ff2e9eef22ffff3fc44596fa43705ac013d35922e7d0459e3a8c05c562b1201629292929292929ffffa798782f4f49c9fff3c32d53525864a953eaabcad40b6879256a4d9da919f8c36bb3636363b3d302050505050505252525e5292928a0f7928282f2a7fc292828474141196a91a54619222a5261908ca44849116a91a76601736b2ecc85b9352b4c4c4c4c4c4c4c5050508e8262a2c27b4131314939ca5350c22db549686262125b91a5368911c141d04f4f0e505042a124a1a41310044110044d4c4c6e620296782f2620887293a39880e041103cc95283b486da502474706e68122626e1d42b6241b1582ca824954aa552a914088207c1d4e30b984a991cbc09984a3d954a219564a953484952a0325300c130b3d9b1b1b1d9518142a15028142a954a3d9542a1bc97140a053e753085421d8542fda8c852a37e80a030221212422ae5a3224f5d92a7e63298ac26ab19399d4ea7d3e98442a18e429d1e5f50a753eaa8a750a7d34fa713ce4896fa8493e3821e223b3040a142a1242121a12492effbbeeffb4ea7d3e97b7c397d1feaa7a34ee1f77d527f530337d366d2cc234ea790244f3d120b8ac5624125cff33ccff3beeffbf7798f2f9fe79dfefdf4855b6a2ff43c8f486a8fa82826e96809df174a9b1d1b1b9b1d53d7755dd7790177cb3b286bead0d5fd5c22cf1644967b9ba7ccd394e70b24cbbd96a70be2ca3d97e790b872dfe5791357aeadb6245b783d6a285fdbb6d1c05e3046d468cbdbb651236a448d36165e8f2cac78aab85cbfc9c89881f9b67b3ab2706ff7421c76d8bb90aab31361d2d927c7cd97840e04fa7c3c2c0993d8f479ef65aab877e7e62c6547c47b1e10f82401a40249a4b24308580e904cb2213289647066ad31e5140f0795313494afbd7ddea8fe2b61122661125692b09995648cd7633e0bb7166ec9ddcecbf6f52534df9e3f5911413e9db52c849b417b46a14fbc97edf367b698666cc51edbe77710230f2235c9e9b31765cd1b7cd2bca7328d425cb947653a4564b927c9f23592a5cc29dc187f9f1682f3dbb7e99b276354783de64dd468decc1b6a145b1d9d821e51a43a53696c57e73d4ea7838ac52b23cc02ad33665e60c6c4d6366366cc8c9931fa7e6e5b096f8ce2bd7461b7b77f1e8fd2b7203a2e943233942f1913335b4ee68ba8b5a71ee97b29335b2a4fc41f78550c1eccc3c9c0c52ce9d18cbe9f31865586aecb5773991ad1292814e891cd14a9c2eacc54d14cd50ecaa2493237e69ec394d27b5488080848dfbb50cab5be185146a4414f49bc178a69e9f8251c464a4b5d76dac5ec6535ba5b42f3653e110a4dc313cf6c89f8f37a74617d14225356f8a851f68a2d2ed4402603cb86b0baabb76730d0f73b468cf136b2b2575cddc76747441635a2ab3b832f01aae04b42df9d81a0465a691e41145a4064c908446ce19b98ec18a790aae78930e9f9edc753755ff25e4a9fe1478d60686484194ce6353357f7392e43f4fd96a1aad1f7b5d65a77adb6567b2c6b7501f3e1073db6327d6f874c56ec01897c3b36e7d2d0dbde7c43a02dd237f65c9bd495329ceea55088d45cb8f14be75c745bce76329d2c2767389996330fc4957b53ce3e205966a66a66215877616c076565357375cf837d3e20a18c285342df1c538be0eafb8a547b628bea99bde8ea7a3c9225dc42a87427c2a4bbe373261b36ce9d06976d4cf1713a8c802a91cf95713f632a60ca97d2f3315614e8fbedb12a0ae2ea6eb195bd70de4df76ee2c270471e2ecfbc69e87b22fafedefbca83f1f79d87f3b479e3f5e0ee8542a436bdb683e0166eab83d0c289c3a9ec1002960324936c884c22199c1f8a3435ce3f0e85485d7ae6e5289d3bf7a2eb72a64b19c73cced92b9381cdd5fd41f03bcd70f43d376fa64a8673887591c9c495fb9ab392117cd9bf5d1ee3a9a23a82289d7be9be0be7109c6fb69b135ca3ef5980336b50f17b53ae7165decbd488b254842a19af0af369a17be1e59861105d38834ae1040a5d54e0dbf367fe98c2222a3d029a2d27d84815345ba8d1bca11d467d28e0bcf7d4c805c73e1ed0e746fa9eabd195bc5cdf65abb91c44ea1ed7f61b4859d90b7f57a55d88e0dbd94bdf2d7b457d431a0a911a87df54dde3578de9efcd8c8214d94091238e28c211a5d3d229bd86809824d2f4f31546d773734e395fe4e38c6a7d0087b30993f1a44b38f0edf959348d66cbf62a89e8aafe7a0787280c4c288410f2339c3253b5294cac9eb3d4ce267ed097acfde4415fb2d4561c59331657f593e7fb7e1df596af329c335cdc7408edd984be4d8f82c8218a446566cbae316d271285116943b3a52b328aadd214b165fa6e32bdcbfb33851468aaeae6bd685ad41d9036a7100da23031730504137413cf3abd9e8b99de4c55fd29d321733563d3d34135050a9a2d5aa84ddabdc54193937e6953fbd4d2d3415970fa1c9a44b3c59ec2582cb645f10511446a8a4487aa0b0b7c9b1e451b6bd7d2338b3eccdd8e88c763a58ba872c854a9c84a6fe24abd145f10b4d6d398d912843ccc6c7969afa71b88adeea597c22efcbc977919f5d154554991684893a6aabe4403df9e4847babe9e1ec554483d545ad224da437d9288ab7a15e02574fd0c743d91225df78c8141dfcf9e3dbacacc1698f6aa35fa899454df6589233510dfc2043c7df25527d18c4d22535527cf06ebb92dcfa2a9da5e4f5ba01d1361e2ae6529e5753cd1aee170abaa8eaeb7afb8525f345bb630c6bcb9f96cb83f109caaaa7dde6af2b4dea8ecad5807d6b8fe98a73e7c4c95dc41a60ee284078d377c80507c3bc674dc56989b808b71460ca866cb8e4846649740f66757c96264a0cec0484fcf21471610baca9e65df33e86c86cee84a67d148674304e16cae31cc615fbf6d76fb0d3a4490d9129f3ddb1e73dde6dc686c210d2aa78d767bd55badb5d6da4d55f6884ff59189278af48e483893c03330db36ed9b16a2a62acbeefaeab37a6f155e3a782286ab2b2f9ed346a68e3147045c7410a793b8ecd0f391de6f40624bdec6738f31def418e34b9df79d662c3bfa994f37e552de9ff7e50dc38724448142b868fa1d536557da080983a2b71315ba80bbc4a11f17f3768ee3b82fc7771cc7e5792e172173e4ad12e30a7d9c337efb0d2ae34da779cf5008151d5ffa964f7a7c3afef37e634a9dd92277f2fe4197bc122e612f4b1d71b827a0a39643acc4d8c2d8f8b905b73616a3adb434d2d2c8a12c44f12180403d903a2526f8eab90b050106859156d19109287a34f649d25177e746ba118fc74a9b3e6485a6cac2b292243e99335bf0ad76fb6a839983c8923437882ddceda78e74e11ac9626f7188309fd03a5dad754b9d1fdc2b4729fd4e2e153ac976084dbe69113da249251ff9ae32a86f92e373980485af7938300ebfef04e38f6427c19909a8a224528cd2d9fdad7507517a10a94f7aa8b4e9a6a72e69eeed718d74491a1a7d5fa33f95ced3c165d7b4efe8a369d7de65a62e9bb4ec72a9cb5e97bb2e735ddebaac751977f97639ebb2ed72edbe50882ecf6e9391838cf881693b8f5252822fa2c456a6ed6f586be38fbddf2bdadeef1adae2d055b4b7f5bedeecdbd76998d3d7d3213b4deaececc0d0f83b468c9f9783a48b5cde37471dd2570815fde92c9bb4ac892bdb4d3acb25a492ceb2f793e50e27cb1c95e1749637a24d675923a2e92ce3698375966f52066473acce72d5111657b6aab34cb5107165fb8db983aac495ed374faea4ab546868b200506578f8ae3140be69d2cb373ddac10220ac38b4862a1ec20309c19730d215c90e61a42b5406d3b688ee440ca14bdfa96be7b45c7172cde9be7938342dc4a99c4f9e6867c10eaff944bbe955bb4a7f4f7d57e98a43593b845267aeec312adcf82309f7078e841b3c85fba129c4d1f6a9197cf5db4be1063b1ca4eaee54081fff5ebbef8aa874481622b5466fb40791eff2a680bee149f4eab58c6be48ca0411644f990a0ad6a5a6be516cac0997bd16139336cc363ca0f202195850cd47373da991d3655de8b9c33a33617cd793493c07a7cb3844597dc4064a92dd981b852b1a6f52516f8360d2d1f502311ae9930993964e6687c4b5edfa6519f6d4026b670b00c81aeb204baca154cd56ca14051f4705cc9844f908e4cf8f4e83d3ba0eb3f1d99f0d9d11236335552ca447a424d1555c97a7b02a76a88a9929f308d07092492901d47338fa39dccbcad74aea46ddbc671199648785ca7954a5ac7755cc7791c121ce7691ad7711cc7755c892b9538ae3395de691df792c9e3342ff34e6578e275971987a5b76d1bb7715ee4a8263d4ff38ebd63ef98fbacde39cd2b3dcbf55cccd929a695eb382d6aca51fa8e6a268d96348dbe640ab7895ec3b293b2e4555a65e5e4b67dddd76de7368e662f65eb614a354a9f7925aee3ba92c7759ef7cee354760801cb019249364426910cce0f45aa35252fa31ac799ba73b72b657b9aa3469da4f3344d3b8d7ca6128a64e4a47da692a67146d21591a42401e7711c1706d179b2e3f0d7b9be8ef3bc8ef33ccff338e9e260529280e3b24e22d1691ea779e73aae93994791d04a9ce795b4aeeb3aadd33aed25adeb4aa64e33692593a9f3bce3cccbf182ebacccac2401f78eebbc54c9ef4b5a49cae33a2e479d595d9a45e45449cf515927a52b3623c9825fef0365e150c6cc55e5d9b873186fdfa785314031f146a0185d6f31fe3e3db5ac51ced2b461c4a94fa034b6b8474a6194524a29a594524a29a594524aa9a5d88603264bcaa34b949f7c85c9e5411597f22ab32575d4493ed272fa4c2da5cbe7b0c307901e664b6585efbc1719dad8c12287a9923eb45c44caa9bcb979ddbc6e2ea5f5f3f293c1778f3d1d9202cf2dde65ed35b3c8eee5eda5ecdd944bffb2e9a7fc7d249f4e92478eca244f65d44b72ea2a72c9c1ace226194cc9444c00860899058df127796e50728b9f6494afc82737c92bce65a9c31ce302165fb1197d92e86a9f301fd2f7c4f9f78cc1ec99ab7bae878b73f66c95e6c23d63be674f0eb74aa7e4a83bce848821b86bde4b774a4dba94941679fe0005b1c854899bb9ba970ea8f33c772825e32e056b943c7ff28a3c83f2149aaa7b30cfa149749fcad368aae6d1544da49994290c8d99aa1795a1b0992c539a9aa9b209335562aeeebb4c87e8983ddb8762932786bedf7248df5ce39c7b15e34aadd59b3d53e553f36d3954b4a513f4d06c199244b2289c98464a4f26ea082e930582f3debba8b4847c7aaa62b07650ac6dd2658a9be9a5d24d9eb556b31ae76a547770a5523744047487c6660b2d2add4b7f688fbe8f9b12d117ff5ef5f398c2ca85e1169636eec7eb51fa160af1ba0f48d2a4c9ca646cccb432f71ee3ae843f8c5d4aa5d2718907638c317de15904cf227816c1b308be8dac5924aeee31778c4b8f2fa65249bbe95aa9743c8754323426e968167da573dfa6739f772e9c3f5e8fd24da1f7e26d9f4153753fe79c73ce39e79c734e1c737e0331fe3e9cfdf616d750a4236a54faccd90be601edbdd8cf195bb187fdac4264e5f1b291beaf4dc4562cdad547dfd71e1d9cc9c48dd0a3919aa9aa185f3bbea99e6edb7c779a6d9fdbe7468fb3e3eeb83b2e7dcadabd74ee1e77cf6788764147267c6074778c81989ed1d57c2ed277996a15974b99791eb636a66a1add8391258d62b538b6ba5b57d493c3d97b99a10d8c7d4c95e93361cde4993e431642a4fec2addd7b8af7826f0a85d4a8e1f158e97a941afa664f3527903282e0ecc0afa3210526b6d1f39c4c15f92a953a91c55ee54381dd1890102b83cdd5854555b5b9ab188b2c8eb65f4074dd1dc81d48a1ef814040745d26984882beff21b65afcbe00d1759b68e208fade87d8da7e2f80fb1e624bfb3d0f5108fa1e486c65bfff71ef23b6badff388ae0b74bf23b64cbfc7117da0ef7388add4ef75e481bebf115ba5dfd36083beb7115b23bf9fc1a5ef5d628be4f73558fa9e466ca17e3f43067d2f23b6541cb1e8fb95e8ba47482fe8fb55745da4fb17d17593ee7374619818b105fe5e155b26bf5789ad13949816fa3e25ba70ccbd4974e1978c0a7d9f8a2e2c737f8a2e0c4389ad94df83b1b5e2f7a82fb64e33267def45179ea1b9d7a20bd3dcdbe8c235d2febe8badef97c5f3a7f772eba515e3efbbafb7d27bde636ca185c70803c66374c185c7e8723d461b361e230d343cc61a6a788c36d8f0186fdc788c5a3fc61b6e788c38e0f01873c801c763c491e331e6d0f118753cc61d3b78e8d0c387ea7bea1f8f91c763d4e131f6788c3e1e55fff155e6b6dce25adeba9ca5b2e9a59cfa482ea9c828947cf294949c59fc47de92a686660626f38ac130494847464544434241403f3e3d4d30b18309646ba6ca9694e0933a190f5d09c9206d410dbb8065304b3355b6885ad3853d54ba7b175a2258c319ccf4755a667196c14c5fa76519cc66d85a9b591ecb636972802d4d5c599b44646531150f6e00cee05b42c75420755caea5b135b3e524cbc21e1afe3e10943a303e2f3059571a5956664457f655f6c81bc496bdb441745d19c9125babdb5f18fe40edb670d555cf8c286b025119e9b23392c548cf5c992c96c16e2c96c530fe3eae0ad1ee47f6917b641df2c6306dcf23efc83af2c631da3e47c69173c838e41bb2ce37b20db9864c43de3748dbdbc8aeec4286915bc8fb367199d87707da7eaa72112fe45d69a0ed63d8afe45d71a0ed61c8bbea40dbb3e45d7ba0ed65e45d9bd0f633f2ae4e68fb18f2ae50687b19f2ae43d0f634f2ae45d0f635f2ae5168fb96bc6b116dcfcabb2a41dbbbe45d99a0ed67c8bb3a41dbb7f2ae5368fb17795729ec4a855dafb06d05b6bdc0b61ad07603da6e0afc559fc577953aa00ed5c9196b3b235d196c46dbdb0d44d7ede9e9804c6c711a88aeebe373c42bb65a5c20baeecf4f06b4bdb5b71588ae6b2da05d21ba6e50501692622ba342745d21212b20c5562785e8ba434353388a2dd314d1758988a2a06dca09d1758b8a9ea0ed6b516c956e5f99105dd748b258a32668fb4a145b23b7af4ab04bd0f67528b6486e5f8b44d745922c16498ad842ddbe46115d37a908d1856186105d38068ae8c22f15b7af40b105debefec496c9edc99392a0618e1043849710b47d7522bab04c13d185613dd04174611a94db94db5722b1b5e2f635165b25977902f683191fe8ca03cde2f6750638883bb17572491ac9627568105d1726596c4e6c6197a5912cf639d0f506dad640db732bb20b2fc92b7eca25387f6791f1b9bc7a8bccbdf0428c182b2b30c0c0c22243c68c1931c420830c3468d4a8d1d2c262b9b8cc3043eb858a8b304cc92e1c25a798e49383d9e42a3278545671928cfa482649e5d24d39f52e9b9ee5ee5acebe65ed2c727d8bbc3920aeeeedfdb53e2fbc90c17a62c4e8f15959f1f98101861f201616a0201932828466cc101a8a218621221964202aa241a3c8a8460da3a396962324d659dff326b9dc2549db6398193e434cebf5424605e6227c2be6c54b4546bb8085c734f92d6832cd5b9c8605ac6eabef5be4e7ede9fb9cc3bc53fade4556c93b45dfbfc83bebfb56de2ff4fd0cd925ef157dcfca7b86be6fc9bb86beaf91f70cfa9e46de34e87b19ee63c83bf640dfcfc83b36a1ef65e41d9dd0f72c794728f43d0c79afe41d8ba0ef63e41da3d0f72fe41d8bbcc6568d2bf75fc671e5fe94bbb8725f92bfb872bf22a3e2cabd0b198c2bf7291925aedca3e4c795fb93ac1257ee4db22aaedc8339465cb9579165d070892bf723d9465cb92fe51b71e53e9573d8e123aedc6719480f71e57ecb3efc1057ee571988b87263d7759bc783ea3d013a84c399aa1c9c16d55bb8bd8cc5168cdb4b1dc49637820882d8c249170d82c140db170b223e010d82697bcf5daefed67a6f55d5c3c82d9c74f9a48b53a5a2433586267d3a522883516c0a37fe605a0debb56bf732114368de8ffa4e65df85dab550ca1d99d3c5d677fb1a83d832dd561d6dcf993aa9b37ad357e9cdc9490d5dbc3e215513218db4f62d75a42beaed57c87a2f9508a935215db741b1a3ca3a82261ac80303858ce6beeed62b659d59503d8326a71b2fe913aa67d084dec495e54e9788ac7984b8b277e1e2e48484446f7ac3e93d399cb9b297df2e5f0ce4f1c96027f44554bdb3199aeddc05ecbb301d5bdd6c913568b6986e5f7726cb08bab22f9d0efe7c3df6fb40f0dfaa20f068958e4c04c1467371c6286b695380e6c2e8cafee4b4c523cd8fd4c5237d51f20de3e048c509d2ecae57d0f6d587b2a8cac3ef2aa47f1c1aa396666e30e5fbab382fc28db18b707f61b8bf1c6ef0618b30c4bf342afaa2ac4973638f124aa20ba32c6983b8b23f09b76a45b80f73817128c026b4fd084c07b09db862cfd95b1a201c681b991ea8e46a9a0a93245433030000004000a316000038100a050322c1388bc24498f20114000d72a24c585438178bb31806338c414621060800040000303000000354220049dd88f78c7f0a0d0ac0b5b2e2b5c336b0d53a88e8631cad87b96e8963c8e4d3ed3f405bc762276bdbb6be4a11d1d9db079d20814681090b894501e0f18b08653c1fb217e43dd5df5eb83b125d729a78b54f4e9fff435104e811e6a0c9880515d48b1dd1174bfce5092730323484cbdaa3da1d2afece43cf9cb31d39d30a2a59a86cf96268cd7179733d109826f166dd3873f15ea97886126c5f404ac3a37730bacdac45cdd843d6474cccea2f53fe0db8630297fca0033e9dc09f2fe0fb12fc8fc05051c0020f9c0181d38780791658e580c76980ebc074c06e8bc00e41c141dbfdb3ec16242cb02d2876c760ff22365cc2ce3a44837c3be7290133924604e5e8739440824d0130b88804ff860eb0b445206e17a734253e0c2646e9bb563db321526fd2a8b5efa8f6fa46fea45811f73a0ac6ed38a2b98582e81c29271f15ad4375c39d0a35e5854b291e05eebd3b42b941019a228f706e4840a4d823ab7b128c29fcc8ea9e04638a40b2bac3f13185906eb27cbfe3ba5db48b3a19e31f23083b0382d375d4236dbe928723d3bb2eebe683f781a5f4981be1c7331af049642776cc16f914dbe53b0e21ef17a786458b8b0eb52ea64251769871076805482894b2edde5fb360d4970e33573a8defa8a12867b3edc533410477a7fc77cc6e1acf4ee8654fd35f623a97894c45cc83dbef100bd2e5c2d9fd61eee1571a07bd0bdd6986048857d1bc68d748edf7dea6016b4b250a242769c63f15d5e4b55461da2eac154c75455c47b78c94ec314616465e450c45b780a5ba2a08340ca705bfe05101d85f909662445705d240415a04f51c2adc9c045c6cf32235fd969961cc986821fae213e0d2aae256922ea2fc4096f4a08af000b98a93a31adeeb228d1708e37347249c0d6fa508109a6991551c038c28f8cb734dc55647bed0c35da547d4ac8b4b4fec43bb0fb9047a66beb07a688d32937b03d4d5bfa4b9ddc109d80c3b99d39e51a4e807c5a5d41ed16818294987d3e0294a185b355410b033517243f876a7372be0d8290fa5144ef4c67631d88c0ed8afd477b281e11bdd4166e15014b0fa3d2123ca34390f8340ebeacf1d22477478571a4c849bf64e976ea70f59f2305613e63244fe48ec908fccfde9ea90648be372990c3610d507bf882006a2f2cc37ee0077d00fa48e98a3d49750cd988934240a488b3d0de252568496ead9c9a39af133071213883694529cfdd928066fdf80fbd52b44913fa54a309db78bc8ee59904fe2919b2c037e36996f6dd784a65f814fabbc6c14c434495b22c72459a86371f7e46e4835aaacf64641812675e08a97cca53a08ceae127e897e5bdfef4ab5e63dab6f1eb93392fbc5dcd3abb352fdc71680e73b14253f6e8bebaaaf26b1398768702ac1271792e03a7b4322ee81cbc8323b34a8a4b5e29ebbcdd8e32a42d1c9fe5c1bab6293b570aec7d50e755bc175c517095724c91756cd278e9985674214d7d8c7f6e3d5441101b28731158719519ba11ee05da160a9bb2ef7d5ed6304449d779bab6fdec650d4e3c16bc96ec8da9d4f84bdd01e242e3a3e587b7887945e6a80aa43ab5da82bc48eab6a10f4c42b25ed3d18ebee008ed3fbc7494f2860a44fa7ddbe8bf715508086a0b14ecccdef51a32620a3edb152ea26b456ceca9ce85c325c955ed90179c8b1a5997736caf6c54ed65387dd8b4b835670f876221cf12dd2a3bc2afb8acb3d742516916c0f6979265ac5eca408c430eb87bf37c64704791843623fb4776f61d6ca5ce9f10b33b3968325f3bc7766fb57236b0108858c7ac1d51e59d5b27181d2820f3364e3ddeed0b9f257fcc9dfc79b1bc144da3cb32c889ac79c599b270615d4e7ec3e84acad48109940a54d24bd09af8716b60a0aa233b26bc731dcd0f681baee9068ddb8bd3224c8e21a6c65b70769946c1059b6917376407a0ad99378d21b8b9aca4ba7fcf30eeff2e4fe3f73a2c9f4c09d5305d6f520d6ef9d343713e8bcb75f563bbdfb846ef725d14a9893ef9f96ef5ce2df7611414800286660fd41a5ee9d22b69b1ea1c08241fc5c797ad8c59d2247a0d36b30c3f37b821f66d65c2a4a737c8dbaad720ee1d268908d4d9f150494c3ef3ade7cc22b094e963efa5059dacc03e5a9bf50e0f07204279e160580f64a52e3b4fbbf8b11133b02155e91cf5a54179d2653c38ab7d9449fe9ff8901835e99350b679fca2625690ae43ae748812d17a88ea531dae0189de501381af45dd907c736f1f6734c67d033413f6a46c9c77559a4b0f819e4ce2ea17b633db35609674821e227881d5b42e7b1c50b39a8823c8ba0e8a2ca037b7e886989e3e9636b7f36fcd47b29fc7ae6ee6480fe62bfede2fbbb7890d55b576dfd6b5fd03f81f3dacfd9320aecb5474bb583c1038053ceedc8e5f7eda93ce6dde985d3e9e4f2fff4e91c32fdf543d376e6d27fb77418f3ee19c4ec11b7806e550c52bcdf7444b41f80b8b6235d38f87c847064433be035892df9a4bd88292d1605504f447e69a8d052fb31a289ec678c2fceec33bacae9c2fbf63c28ae6129bdfef94262c2fa020aa9aa8f3955f1f630541855c108dd0c58d7d2f8408be1af45afbfcb1bf9377a9f637a997e4ddde0a6df38695431799f3d5f7b19559324ca1bcea12d43c62aaf1acaa1054728dd1057909bcec810a30d58e024095c3d57d3f2b3a547b3a725155a0c626d1d15daf8a6e6824b233dd8e02e671b149477fe4acfafd60645fcb4bada94321a623065fc35e03b6875a8a6c2b29c052d4291fc6733d175f12ba4c695205129b110b20965ce70fdb51db8e213f2fe997530cb4b17f501c015e718a37abc96055747b493fc5911bc624b0195e4c84bbbb8a471f8ac5a43c7aaea274273c46a74a492865df1ad44613f60fb5be76e5c046c0c817d6d7f0590c1cce675dc3e9d6b26d3df7e83cc059d2ffbee681845f901e6afc22f6710b187b30d14b7315c5542397067b631de6b86ab9badb4098cd82d39d633707b55234ae8a0332056030e1a2165bb300a0fca4feb484cb835eb0e8414d512c745c20b6894c1674c95942d8afa83cf29cec04c35d318261b4f65adcee0d3629db59586f04e47f15bdb48130d5228ed18a5c52baab5a5148be9383b63e3ffa7e162ca31b6b75d5faa4bb45142b55cdb0755d29455aca3c52562e34e489fce790653a9c1956474f194d1c66024133d53074b57b28da4f2b98884f415a2092e59273b798bdf8cc85994ba0c5c65203b59782a120ec1b134830fc50f22f01f00343a42168652d34a0400bd55139973651154306e9de645bf88907015f2e029938066fc3e0c03bbebbbfb31360d6d3053c912b9ec76d2c2c962fedcd72b10ddbfab8dc743e02f313b06d8a0827e576b12ab069c26d2d14fc528658a9018647f5a538cee29d9b83610bd95f0ee231f3ad5d69106bb14ba3ccefd4e8539c5b9416af8507d6620171090b148870aad370b10cf1abe96068d9ffd52e5a9a4db3545552ea7d9d6a39c898ca88c45291d7950937a6b14cb1c439e83a204dd8891d53642283a858c04e543b427ad7d78293b795795525ef563c428a02a16484927304851e1f20e2bd4c81b1026aa9365d43b427f1dda5b1651f6e0dc5091ca397bf6e38b55dbb062083bfeb7947e21d0936fc636e49db24c9a4da14b730ab70eca23a79193f70349bdf486207cf1e21777edf29100895631331e403185813d618f5bbfb8f3af1795e93fd82214ceec29faeaea8808f45c2e1c30451116ae269402948ff4969fcba990b72755149094d8bc7417c36112d1d05e9ebc46683950e9a40ea7cc0856371fa25ed401237f29d5dfb7551eb4ce2f405ae7d88126dd93b230950aedded361ce88d03134f40e6c9cc3d1b9af9465a1133a8728a2cabece51943646080e056d45ff831b55889668469d97a6b351ddc259153356b58dac2a807237eb1b749ffebb518ade2dfa34886a8fa15f33f496ff6d11fc196aaa76f16d6116b11f087a5fc861a12a925cb060d555e19404f8ae51f299aef343a9f47af156b36f22de22487cdb01aff059d3049430cd15db152ab28885855d2b5463ba1588e37607863f98d4eeac1906ff7ba0e3470d323cbda00bd2565efea0a0cf28acaf9eb7d7c9f46ea865a3871b3976002843171a2018cfea5910c23d604c2f6d96ec488394afc77416d77e3c69b2703884b7fd961ec98317a12128c774570a887c728984f61a30af952288b19c623513704b0815c4ffa18ad68802a8c899e3db134168e549f38293757efa98da21574cc5db5b071bea6008a6516641e6a147a5daf523ecffa1b3f8309ee28cb9b44c6c46658fe5c258cb7203298d011f8b3ae19ba2326624bb5b3dc2d3ae4d3c655058a55a41ad4377810f9ebd6b8057e2042e4bce705d963a47f1f9a605a53441c446dd98062c36a51a0a28f2eed0712ceaa6d92fae4546d6dede148752348071fe27bade361a30fd8143f680baafdf86cdedfafccb22c265514dd10509507f0e15680781502be739ac389462eeb2d5f9ab0254eec7f9c7a12c6a68df63ace5c5ce63f80665f77b39531ce2dc5a257b88c297bb30d7c1f2eab9f7bcd9ca07ff991ff43bc78f4a740dc3698c6fbb1dd5ead82621d5f324236d40f42a5c158965dbbb8a95cbac9adc0db65a229b2820d85c7167cfcaccedfd0db7540bb0f68350a70a142e260780860ba182f8d4a83f54478eba812b238b2c4445eef95a44cc39bf868001bb84b4e7740571f3d7022207fcfa119eecf2a1cda7ab870d5e8b4790373e0660c746e7ebf293e328171c1cbbc8ff6546cc37ae35951cb5186ea2964a7dd197a614afd399b09268cb29569eed260245c75a8990038610e10991808b7a6d78a38ecb2bb07db0dc149e42d224dc2295757d203644424a4ddb18b64320c744e4c3f9b868f15d1e85e75b0e6138838e01271016a05600551a57c67e6f888c63d0aaf2579635cb6d3646748a983a8a278636845c008893e63052819ef086962dad9111098563c6f70b9cab14fb0972b00a15d41e30dce2872182f949c8677111116884e01a34b8777c5902c6048e223fd5db8461d90af25808b2023829baf3af9aaa2874f556671928c0deab228b2768a09c6a811d147957f184f50a430e32d1bdb4bc47b484b804c5839654d674a04ba93953a79d9727052b63607f0200b2e8e27be29944177a8d83926b1f682421507abfe9d3f84476082b04dc10d9e7c8a9a7d7fec75164c1da8c17db461b491838467a2d351bf2bdd4338b27f3eda5fd3b94d06a6adebe3f53629cc47fde0e095dc2fa6b72d5781b18fdfdb27132ba86c6634146447e71b8de46a39def5ac5b9534a67a21281c830d73668f9037b706055df2edcd87aaaf38953299e12dc45cce2714a7fd785430caa9bd1b688848acf96e90bd0ab2a82913fcb04f32f1dc3e83e60bf125d60bb510926880e8aaa511f84e83f6106a382c790e3a15105fcd841e833a88e95f851fb07b96c63d6da48ae447973fca83b1443f351f1d5a1c98cd264a9f3b020975e82cff6605fbd7dee689be8d03f2678f105aa14892937dce01ea4aea19247cfd76f25d1b1fa319182204395e026eab550127f37e9b8a185fb30b2460162f161c0347b71e660f50ab40b5b99d4901a6824c47edd358a22a928f79cf854a7ef8bd83db9cfd72402f8d48f1992f48eb7a0fadffff5e300334f3da7882c5031085d6825995a7ab25e8a457ff56a4cb45bebdb20c73e920ac98b990f8a2efa339bb7f7670e64dd7a3a6250683aba7e5e0976339eeac2eb5a6b2f8c24d39adb608050cd8e7b3409a1700d933c01bf8c62bc19629099f3d2af9f89880f653a0be6d2c35b9c7531fc00bdb6e96e28eae7e2953a98455c26639f0fb6dfba52fa200eee9cc385785b658530aadc23a9a13f974c466f564b0f7c6e124758eb9dc05a176fc1c6bfdc33b320038874f8519e15a7e2ef28404fc119d103c165f468070e94102180d85559cd43a502e63fece4cce11a372810a8ff1cea07701ac044e7afc9433c005f100156139f7b87c8dccb439908ab01a6f3c893e224856b2e7399e0dbb2261522d303d1cc5b87e69d1124a0178bd8c5d168b7f5c2e6d754b99714aa34e28f95d429a1df2925812376e2ea3555adda974bbcc7088518a41cb1dd2b716c8c56ff8aa31af038c5135557bbab9a09d44506250ac5cd413e454a726ff7e6f794921558427bf978e7c1ddd2c7da4cf5dd96b0849aa9d924883d97dd542aaaf2fa970a9b6eb4f87a81a9e22f871e0de9214eb140ead78a2849fe3c9625a01f18f3e6dee1bd0a05d4b12f8494fa3930901ed7302e8c8967c528cb01c3f64c749d1cda990b2814c84e8bd2ccb51543017c17f4db0c747d02dea31a0bc433908a6e74114b29e4af25c2547be5760777ce3537df73612496e971bf70d73cfa767b327f9522eae7ae2ce7d072d2970c57c180f174bc30324c8f55dfc067072c09d106d7d4e425edfabe3084773226f9b1863bc67edff58293f133f7ec344b5cd3a81a1656aefd0bfa3919de34e2d1a78c592461c4876be2846d5f5765b143823b9c46028f334602d8f83c27a3e66649e5efe22d904c3d113acea92f4461cc4a4ce49b1c29c38a283420401f4eb8bd9b81a575a63c0224e4596086888715b31659a628f0ba199c5ece988824dbfee0727e0f2e8c0683bd637866feb545c610930af1b8e44894ec7ee966fc5de2947c72b693f647014b7ae28a343efac47a992a3c80472d4cbe5fd68dc0c46adb83255436a5f40fa6d11f5d04106261255f3f93a2460686f70b779ac61c00dc7dbd3ea3da69589b7be19886bf42776a08d244acbbd15f83a0b9f263a3f513c2dbf7dfc9231b575f9d1a7eada314453bee684fa082ec02ffe61b8f400333accb7d7dd0379fadcd0ab8c0a911b927c6a0fa8b789ddff607e54c3c26e6fe047248e975b08ee3e6aa21baf3da32ae1ab6d7b18128c84d33815b0eb150c666cbd308fe3ff18f43778cc528d0c4d4a5cb868912c60d353ba9ac513440c00d31e7c6df3856b67be1d2143e1ffac1e5d41bcef6f937327b4eda559e5fc722672cba0c1c7868130725fd1e379db1f4c6fe9473e4287cea551d2b119ae8cbec5111be3b27375c7f18f55b8ce7c5a4b37af360baf4ab4557446fdede79699c71e736bbce7fcee4905044a244778b5c1e6a669745cf072223a828e00fd09403f5ded0ebfbd603ee9b1ce22057eee0b7cabc0e0366892486b9db6fb2fc3dec471e72a57f5c71aac44a49079d8c981c02299a829af1688e53784ee830d6003481f6c5608baf498d5d1cc9a51a2aacc2986cc0011e10824d34115544ec61bf8cb42a595fce1bd906304e74b86da2acb9430f06237a37363e15133813a04e830e42876e6dac6c60b82a919cba7a35b3f4ecb1244154535a79501e3d3f65bcc4a6ac9b61d1d894f35753230dfd88b832c837452f4e9a01ff45fec4b2c5e478a9001f61da7b9b1a92ce29bd4d5f825bd1028066d2f4575aa5f80613fdeb839c02745ff501740f8b6f531d87bb0802f0aa57e7ed504b0887eab629a95d3955b917e0eaf07e22ffb583da1dfacbb040b4e6aacba4a8900d2368c9ce267e0344ea950a0f2d95780f01a96976d2bd7d4f7a74b39643b92a8b3807db6ad8eccf207d3cb1f3ffe02f956774ba98e9176c0f43b96ebfe16bd0ba14819d50e7274477920520a5538d4ceac0833f0a7cbb20e883967994b0caa1cdad349b73e104dadd322b217f86cbe5dcbed63882463345e4ce36c2d05467c4df350fef86382750db14cc4d62f2ff54ab8d16e3a177a3ccbdd3fe3b53c2dcc6dfbb4d8ac78b518abd9ee56afdee8504abca230357e6c9a56ee3caf566415f846719faebb0cf6b6517f0a53c7bce62bc89cea8cee332e6225740a2bfcd89610724c2d87c0f84f1db76ab2154cc3b892e38d0c40396d2cd0bcc5b62d69941d1beafd53a389bae49b1d5603cdcc0b8a2570c3e7f29c4ea459f1fa6db4c6d37cff65225138f47c4198a5a9211e0b92f2893d81f9b356d0b4297a5e0f25038c31e9c6deaca6865e51eddcd3be7065f14dd37ac4e3f65051b610a5259df2c62096980bdfddb721e5b02d19fc4c8b3249d57163982c8553c805cf712c36a5126e609f7a2e2d62d4d9dcc1eb5bbce2b51b6ca143c98711a26874a45d697e4335f9ef5d43b0a8c75aa9c738b176f8f421bca515ac3497a1023eed645ad6465bcfc9af050a69f8deb7a6c026fbe864ead93484eeb5c58ad930b0d36dd0c324c96ac07f5b40e7d1ca7728c197e50e375fb4fc0a3b1d4b8144978f3076dc43d151cb2eece46cd8366a6679e0798c9b80f4ae0ded9c1911d06db6dfe7aa84cf526549d27cb6983d174e394b83c3a728a30ed074c8b2199c559a4741936980b977c7f55f25052bf971b4081cb61baca129ed721777158c51b7e2eb7e04dc11263557cfc42e4cd936d0e71cbe2066ccd834f8134d5389524b1021d97cc1b39a8ac1404464570ad72cadc6e4bdd76f8e35497558be2ce9d842dab364bd3c713ed5905e68173af36d33456664cd53a26d9c76e7559e1864dac7791ceada78a0fa6e0068ff74787d199117d90290a7bcc18ab49797b2038c080b66b2f049c2cbddd2f9ac5ee5b6f88ec9db61e6367755746d508fe1767491b243294bf2e2a09b9631a9962df5731e8005f64cffad10795b253fd885243aa06fee610d269c3730297fc9fcbab4e0b5757ad208df28620b5c7961448c137c545469d547427232b678eaad519c18459a8c8a852b3eef82e15e8bba904ddcf196465cd17a4a2b3cc5a17473485c1c57b5fadfc4dfd4b347f85ad8a6bdc8765898f8ea594344e8820bd11aa204786b1286ba5e48ce0a6ce1a84ec6f1f3886edec8691f468ab3d13424778ba76684b7ed2670a7003c15e9f8e6e09c70f28c4400f344cfd65890848ec5ed75ead552ba86efbd233618be6d06f556dbd16adb2ee2030024c730ac33feb11c6de03c945cacf8e83851621b8b3639c57f7e6b23411304869ff55d9d27c42c2661f85992139d6f03049b25ecdd289cbe622bdef1797ad0a0fa95592c7389c11745d5e5af68dc489aa8d85d2ca70010b4604a7d010f1450a583b1cdad048011b6468224ae54581e9b7c15cce09645693d2040ccc6dce489172688c79860534eee5a80568b411a1b9a624d722c1a482b2dda04e51a1a45d0c3b12b86247c62d8e363eadbdd8a8e2e53e62dba628dff92502d60f111699ab1d5c948f0d109cbc0b085952f7be9df0b04e0534d78cb682c9428c0c88ad6686dba5ba41db33a77bea14f0201f5a015729d4a79c747097a2fadf97f741d2e345d65e83645919f8c995f9b85f0615b572a61a80f9e88d0d3da104d097f692ce66e79eec531202b84fb11f8bf467737a04db637d2dc6c9874436af5bc0a0e776cff48306692a77ba6ba15f45006a4b35e90d703f1d83d2c0e5da80d6120c04b60d4168d7a8eb97daef83a1ce51ace4fb2635445111e38e189cc844b6c0499b6bd5195a9c485f4f8f674038d06086d058a5875b93ab80c852c40c97d2668d6b5c7884aca211e57a9c1d6781499e2a02915c959da4357046031cf1d4d667667b29de9461a506d2e38937211442c5a789d4317ebda97f569e4d3c38ab9d5c444464e7c5403751f15470e0507c78163b3cdeaf4a125b2cde117258c0bf7351a25fb106ac7cd3adb8d6fa5cef6d5e83bbabab54aec1ea42c7df4f6756c7559b389528a24bfc92be09397f1f2c3b3b2222a8406f58262979d92566010f1a0c4e53c5872688512a80d43b46e3ca1089cbcf9fb61b609886784e3b10c834e4cacb636e61896e763a7e2f256289c588100422715fe844ac07b354c01d9b3ef89eb2e67a3473b28bc7940c06f37cf37e0c56832a80714fe8a3fecf6d19fafbc31818ddabab4b2ff940dd7f117a6b54fadfe78c0bb4da1fb799a497401620467c189142f9d4121c44d7e647a47c032d2fc9a03d4ed6a6c0f3555dba5b7897460cbbfb3c08c119738b069530ac4c1d8488eb567402cf2b0c290306a0f8433b7603dd1a8a4a4ff3edd86313ce02e80885595f699bb5469f668dd73dbcd4797c522f6b46cf901622e5bec33a2345a4c72dca52c34a1a784725cc89afd13080cc7bcbf33ed4b543234c8acb4835971c2d3df9da4bdf4aabb1b2bb6c5f09d1c8368d01a13de2a5e079a7bde6fa20b8d0e38fd5d7d9c60e3200c3f6942725bc3b05278057be44fcc6dbd6b0b8fb4ba0e37fa116fa6de2ac795f4164c8df4e2de005187fd1f41e89441e8f5116e437f809d02e9933527b4a5c7eb825b18952723405421b978abda003f6a18fcc95b5b85789ff1a7a3fe672fe3838b6017d0d53d2f43862a84aba4498a9e6767aa6b0330acd843fe0b7aff2f80e794e0c4e4c6dcbe3cb966eadb4386d59ec41a9f3673b0215c45c68b92c8fb045b589bdab79692698a1b846dfc4865f9e05ab7a1281866fab77fb69bfd918d05baa707648eab1b0c84a257b7c92853910f33b8b182c32800791808be6a8a7883140b95e93afcef40138df1b75b724812589c0096709026ddb4ffdc2fba8a9b223e690617ff777933abf7c59dae3f9065ed053b22aef3fd07384d78dc6d55075f8d3b42fd5589a82104a85a6250816ab87dfaad46ec003c2ac90f50713cfbd7e9e8cba09084a058d25be857195a21e9da093b562b3224a87d66aaac441574461d7d54ab03e549b922f554b03276cc9e9e436c2abc816db10417e0701903cddf4c1201126446bba6eefccba1e16ea65621da04d883fd8eba84907977901d51c17097fc40d1f3449bbde16733578261fb5b30d37ea72812c55c7c2464d1abc70cacc73e930e374d3238d57bd948a5d40f514864bbc2bc3c040a13cf6413a37600a1488e3be7ab77239d251799f115b499ff4a508ab87213e42db1cc19f1a814b0bf05ff82bf07f60571951a7461aa1fa96799d81e191082e145117320f884f9502a22162aec3905234218b2a6439611d89528d3837f38c6c6e6d90a0bdd12a1359c997f0d62a278240a12e626e0631884464a88d18612750b762ab19f98f327d9cb2e3dc7adabb1f70483ec8e8f5ff1667464020f2aa78cc8edd9808aeb1cc730dd5e263aa097de3463d5330261a2a5ccb59f10eb5b11468c4af56668c2723fd3dfff07b104154059d23487c53607608e055c1a9f74c12a2b31992f50c1b458ecaff84ff923f5aaead9732f296d8be34584cb5aeac6febdcb507cf3d6e6383994e04f09368ad5ff4b1b4ac75c7101dd9613a593058f2c82714ae5b042a9015fcd0889dd0e0381a5c2a1abacdf62576a4f6ecd7c25b998b15d272356c1ae8493377a61f8c6210ffeadedc98ce1618eade2c5392ab19e60b2932e68ea7d350e4fe2a59191c8a3a8d9c40d8286e5f350208f6c157e156ecb5fda193a15625521e048494f6bd41262d85a998ae9811894b23c272eef26f03c72cd0458938c098f02e45631de45514777273e6d27fc71685975ee1d76b7c68bbc9c817ab4ee02309907403901c9ab16df03f2c44f530549614271352959ecf5c78e24bde242ae479fa548820e6f6f44488dcaa21c3827ffff88f8e1a16ab042d4c56ba74cc373127f2259e458706db70548f81c13e0078aec3eeb45b02ec123fb0996c1092d748f2f37c61268a5a510fe19b5557865c1586e04f823d922e4521914226b3dc0717b3c18f623c2e9f6d8f6a023936cf0d54472ee4a0543e098f08591b8d969db4f52e2383af4254a6ec5264ca07132e71ce9746cab8933625cbd8b792a81292c25765bf043086208c1d4464d12ebce431589411d7f6a79c49acf7eda43c231ebcfcc965f5ad5e2caec257aaeb87b1266b109084a326500dd549d196ac406e841df09c4bc56f2e430d562942de57d8614c58662cdd19091b201d282c0688d386e559a8cdefa7684af0138a685c96b26e595b24d53008959978d1632691b46e85a561164ff36be840a8d95feda2efdbf0ea16b0c26072ce9c00154b0ecef3beaf4e5707463accd5ac36cefaae6c97fc2e99ff4e299c260c528a83c056106752cda62f1122680a261ab7add1ce3de36dbb50f6c6ead69d01180c36a787fe390c17cb911d34ff10f0999449e2f52abf917584d382622e4fe5c4ceed53a3159d9ce830f0770c7304978cb65f68814b846484f18ad6498368404794975246446b0e4d1568711157db420f04690159b77ed2a63926c40d2ab00f69437eec557d29a10605e19a130b837a6b22e8418aa3be536d3fc74c24b1078df18bf322ded64c415e0e8a2d1080466e6752630f41b0d815d49fe181d6908c2c80228ba0737e3432ace0e169148b3508973b2bb0b3708cbd9e4d022762a34c9b5c4abea7b3f3110a7b069b14f656b9b717afbe7b183941233901cb706a46f2c44aeff418c9c3b3f2063f5e66ec2e3ddc12d5538c73118fed0de3875b2247a3cbe620f802806f2e8c8f972332d80f736a8facf8b647a0e9a444726c4e98d6453fdde0118fc55f81ba5400710e47aeb24b185d4d8c5da13c3b3b82f8cbd2090e1730ae88e1cc78dd65e45bd2e561be61007ba21dec17b8e73bd9b6e535439b91d7d1ac661ee31d3bb1de318d70bcda630fd485c90d3dc42a30b28d235ac5d60bbecb68fca75affe6a7e166eef0aea5b23a029de2765271318f36db3b01633a081fa494691ce5a9b7719d37e0f507630eadfe95ec49014a5ae856f81258beb04d57ae60506f0b8af4a1ee4641af27360d7abfead70d695e44b2c62057d73d4055b0f43eb081ff24581ee684097d230df4247543183cddc01122408a0db5cd0013d3028d80d39a049b8cc5eb0ba9adcfc2a415cf1034d14deb02fef1be007738fab72cca8b114aa8cd5a666b5db306dc2293e441719a99f2d6e6d2fff168c2e110a2ec06cbb58243ec0cf0c059159629fcc2615cf61db6b532fd369bbae1bf5d71a18fc1cd949d46cced7c309d1742e2843c506b9d62a479e29dc6f38a63e5821c08613e473153b8829356f61351d48db9565279562cd4e0741ef09c6abbda08a6436fbd40d27bdc904f8708e86dda088c9fa6d7d9331e500123e32607f1c3e917b73cf24ca571244679662c44efa45f63a369e88a607636ea5cfa45242d7f8e0f8eabfb9aa5dd2d65cd1b793230e426acc44e390f63a21568b3cca4e8bf29a913419ed438b1fec95af71295187fdeaab7bd028c6b28cb618a1fd2ecf555f4ad8215bdacc7e8a767ef6ca577f0c6430985c345579931e3776644742d0866f3224af7c088e0d21cd391d48c8d61c64aa4c1062ba6e271602a6c6c0c80975a6277db84e62cd06f190cbbc8193541dd1029656b948cdc8a96cd7caa1cef068cd80b8d2a2f6e655f88522ce74213a77be10155bea4c25e89672543f3a015bfbe9bc25e9d7b08c4b393fa514c5514f6cf04d2af29ecc549945129845844d517ec11d15c606769d8e66897648cc1058f68038aa3dc334a901ffca029bc8eeec574288e8a3fb8f534dd0907089f70a341a1926de55e4d99b09e893b302a1bc44d847f7adccbc9368e30ec3516f98b15b962869a079864497973c48b14f7b1ae435406ebd0d49f956449f8db3aba1d35101db1763126f5ed5a97b580b9870d00a4e0283a0d23afc07687fb2914d29ca6fe56ed4ce266674fdbf7883442bb632a93eb08dfb44075d6b774d803af6aac448f25f0176a49067e52288eb194964daec87128780ff0793f3bf9c7a943871000ead6c7bfeac7a809ba9dcb87a7fb1c0fa9c015bae4098ecd10b727bda39dfdaf8b94914c56068aae0787c3bb48ccfba851c3319801aa631c32b6f5526a878866143689dd82cf5178a608824690bda1210db6b1ee762e83ab59edbc542e56a82bb2cce272e6a5e8edd4a7c867eae7e9b31abfc3150acd77f3d94d453d1e8f3e44835a0fa90e033303ae4520805cb72754122fe068c704cc6859f17803881f2810b3141dbd7d7993228f91a41a767fb67de2efe557e3e0f4e96ee23a866cf8a0d432381aed8e72096822ebc5242a1be28a40c82e42e52e46b7c3f617f0cc78b96182c5f0fb0d29ae24e7c5aba05c51973c527104ae01c1190bb1a5194e9b31be62962338ca800566f1e3abf841fd57e6e26658c400b28604a2419f7b65d19429a6a194349611de245ea78f435028f87c2aa05697033076e49263f34d12013da24ca4cf8b6c145e4368141fd1198e92ee542c8fb8dc8dd315fb9b866b88eebe7fff9dc463b43ac5456b2ff8da2110e91aaa03cde689b5bd7d9572d6095b2ba2525d572d79387586697dd8b67242a7984fa906a3ba7d3568e34267bd9949b36ec18d3c77d03eb68040eb6b03dac70749c16903402bb27897b445a62e1795c5b733a495ba81eb45ac5a5304c0c4dff93b913956812b86a84e6e3d1580afe74e595581ba9b44e9ce822171e22a2a1bc40a2e4314fbfa3174da49844ae6f7570f534e09305dcb386287e91c80001cd16951c2fedb65a291d5fb107f34410f3f19ef9d196e20990769282308f32318fe2bdf92e26ad7516c27ca3c608d19aea353709c9ed2da9b2971cad5dafb7981213522abbb58cff9a769d10bd28d237c5499e381597e9cd332a119fb59fb6fd2245fecdf287d3d1500891bc88801aeb9ab207b7f48229763d9da7ebe10d4e287fbec812fd3313c07cf2c6c1c75ed7254b637fdb44f6e9ccf7bb9bbf5d2cd16e79fdde1e89473047d7c5ad9cea780f73f837869a677d1c2da1830be36e8180659846e022b1684f6dd44854fd0367a132f49d063924a2b4e190b1c9db476ba6d49938fb7494cde990bfc4598ffffbba572791a0ebb96124e558461bab2889c7b54d165fdd178d647209a2400e51b3f258e9fd038b91bb691dbe3285aa6d0381221416543dc187aeafe8da220b2a03bdf6e68ce417486e623d7d7ca7fa2f1241166bbae28e6a3dd5ff6a6ad5e78ebc822c4b37c5bc58d1d1aa07c0b60a7fa8f45ccaceb6b5876a9ca99e1fb31bbdebf17e112562f707c2ee2742deb769e53500fc3594803c091e51d9606d165f5925514fe53080ea306d4a1e062d18cd1545d1b6c2665a78eb8eaf93cab61a493bab12a7cd1f14c4f6ca4f580edafe2770e101cb87ce952a76d05b1ea3574b7969a1821355d5e7caeb8cc9cac6c7a882fa7fbb164f58b2e4809be8a065d1e4bf0231cd095b716b59d3dfac5dace736dfb667d45ce0b57930550e2642ae05338256e42c69d8fcc4e893b84a7d9e3ea5956079b81a88e53a7f2a2cc8e9852c36d979a1e23541b7363b277f4aaab9b464703bd6ef0c7e7a481a95857392e18b9160a647608ebc4eb12ad57d6a662c462f77d2490b1aeb309b0804bb7228618a48466ab25eb71720154b244c6ba10b0ec60d66552107ee9ae531c9fafe9c2dd017d26e1649e24623c85869e9a43bd0097153ec0127e523cc1b3dd19fc9aca405a38da37ddd47d530c7c7f7b9044f4ff657b8137f6f06aaf38e37342e51384bc418ce1bd39c01453c2468811f2ef320dcb7a928ce8f29ae8fc326122dbef6bd317605783b72be557c6b2dc5017c56db898c9eb958456ff4c79a700a02b09770f03cc195de186b2da4c778113bbfb0c103a110b13fd2ff95eeaf8761d7755a7f31f92f559b5ae6a25a18902c1e5ccc3aae584eebae91eb9cbd7df220cd2fc3bc2c35b2b091a3969cf82fac28af9adc6c4227c952001a00b4496a0b25f90c854e7a65cd0705c000b0c04c42a963a508469d10ed4ccea39f9601b14bdb21c3ee3a880f16f875ec5e412501fb700c26fac82ccb6dafdf300ec654b2d490154840bd49aae2bbf8042f8a92e77290d3a1f9c796e4fc6ccff1860e0d4f9656c7971f2ce656ec7b847fd7dde3b7fb56f56617310aa7704d424c1bb52a4bfcf5cf7513d85c0adea14026fec10421957e56a591c89ea2eeb5bf2ca78579dd220b9fcf4f1a1f4a0be6ca857118926328cf1e00bc0a7a20482e4a7f561dc35f36578bac4c5429c00f39f1939b33ae3404ea0fb5748234ef26cfe886e79dc64b2ce720291971557df67f04324213185e20285bf84562920a1cd7f12dd33711a91c3c3b2af47b1e4931b51dcdb82235c24040f8cc559aa2db8dfd7488bb7577a29b065c264c4434645aa5e2b1e92556b55d37848e1612d4c02c7f364af288da4cecdbafa1d9cb510bf7e2e8f767ab339d225fe60ba122a36851154ac2d85f5bc443659d2bef6111d378ff34b26733b240fc8f3bc730b6ef485fd40ee7e4fe64c80f042ecb23f2a02396f21df0ef76b780919967051dd509bba28c314f90412c4167679f2a0b0becad46bd3ce03369912513b661695fc3447bdbec44984e177a185c04022ebfe8307803f72017e0c6c9dba9daf153aa4b2a067f2f7f9d729e3ad5cd9902c210ceb435d4c778ea563048ab11b26da13b475c40cb8f5dc11be7c6fd1a3f1e70089beaa3a7ad8d1fc3e8378da577aa2a28f3ba37b4652d7f9688f9c004ed0a06654a1366e951f6416c70e5f6430ec7ba47a18e0dd712eca7f1dba3b1e1082d4bb0619e1938c882215161be77a7b96613f78108482ac8995713183d7fcd3602f9da2b43c8e49b48f0c328a527c2a7b21c3cd6f2c2c7e330890de29e821e4112032921f08ade80655c16a259a16be5cbfdfd0dc10873db28e7806226b6a5311171e0c698a334a8e9d38eaa81320aa6ccf24c751852a8b9e6bd4471182bb4714f786ae5e5284ca2858b7f166a2949c4e2316e511737f82f4876daeb3240b6e835c27f64e01b9b4d444e378a1c48f33040f1142a1899eeabb0d6f4fe8f1013d27de7cd07ba2de1fb839b1f7033d4ebcfd40ef897a3eb87162ef07f4ea80ef37b87562cf07f49e78f383de13f57ce0f6c4de1fe839f1f6033d4ed4fbc1ed893d1fd0e3d1dd36d35a456a87e58a5c718b31c35d68cf75eb607a65a7f77c72fadb36e38903d429879282f08f70aaa162851eb1da23cbe39d06914893c82ad0e50c195deae03ece76d1e4eae94e05fa7d29bb97f014773aef78245ca7758a48225e1be81ae13d01e21e59f4b7b308fb2c661ca35eaf18e85680655aabbbcab43f68740b952cf03040d5c1d1378b1689705235f54db84df570a1c7f054ba46fa20c5bd44d5fa38c934fe5688e8abc94e36db2945be12ac44b9f14988f0bebbd37de0265ed745e2ba8319eee39acb9c8ee665940112ff2d91dc5ca77ae690b7aaf397ec9adcbfe699a1d1ee5f68dd2e819b708c7d2e16693ebaf7a932a272aa92cfbc479b12deef491ac8fa04c6c348249205b718abd29f90b3dbe9cd26e407ff5843a42338578a8cdac27611baabd641b3ed5367d3ac32197fee01e89d9a44337bd5b535013dc7989fefb89dcc929d1ce37fbb10091de73ba86162f49cdba584893d123e02b2c62801e914780d98b79baf4c739247848f40d6304a209d025e03f3e6e6ab698ee491f0119035460948a7c06bc0bcdd7c659ad3670afe44de2f72e41cd6bbb09469064f97ff0316302fc3a0f05f2380b7b147a077fdac82dffcd4c96af88fcfde3e696403fc03034d68ecf541a336e01f08e88566bf0f1ab101ff40812614fb7da6b10df80f0c749bc19e7e01f7f11b60bfe58a7f80fdfe04dce783e5c63fc09e7e02eef315e8b02e3142c7ed16a30ce2857d8bd17ba94d5fa95f649c32bf9808976b6bb8340ddd26ab3705a6163594c16ac290bbbf442e8014b960bb9062ee04f038252c9b16aef7d9356e2337972370d5a7770e30a519dd129f8c8de16f4e5ec7b971360bf86da194c69a2e83d0aba664fa74d32763ef9ff92c6d53210707825370e480cb5113eb21d6e7a4fb0b4a1dc75bd1bbec8525c3812a165e7272e54dbf90ab8d0a225aed4fb709a0bdb60c9aaaa8b2e9d2a74d88bd2f736b2ba7745c1e064d0bd00e47b64495d8e7a4bb0b4a21c75ad3bbed0a25c3c13a2da92d7652ecfb9f8e538f8b23586ece7788a405fe31c1ed5e41c869175a2ef62188107007bf5c06e9ee50699ab46926c4eacbe42c95131d178783d2026887910d7aaa0c4aaf9ab234a44d9b887d7fc6b45bdc617b669b420e4b3c72efdb0549d8621362dff8eb38755424c27aeb7c4166d382cb209f936eb5e11e52b2c20d564b523db3a9ab107292f1c86ee7349c6129995879edafe3d0519151ebedf30b896bc17c308c1b4b277f5713722a551a8e651d825f6b19f4612fb1373a292f66b025d21fd14b22b91633e8113588eb765b2e5cf2c809ea6021b2e5f30d4c8f460fe62d032582861019987071e00e448f583075c803b5b0eab01178c1d40fd0bfd1d85d2eb6b0b7103b8c89cfa14b600b41671a859d6a87403ada1b752cf0706504973d1649b3cbb3051bea673f6689b3e0c1209e3627418ac70cbf4a903d383cd16c04691c55138cebc8f89e97b31e419417c6e099434341b786b69cb251e0444a4318619c03cf9797fa9d68ef6afc556383c2e72bb8acb1252d16d4ddd95cbf31a6f800b3e0bdadf26b0b52f2ca020e98a59a2c803b2c6d4c4bb617ec42cf3c002965ae82b9aea3b7fd01aa2e4ee7fe2e0ca20aa4490c167df2a64698ebcf8b0c9031b80ea30f21b6d5815521740b134e2b46dac93583d437db52d068bc01c5943ce0c661585716788f157bf5cd2de57c468c0115779066d32235e13423c14af6339a98cef681b56a5dd1ca8f0c33bb72f563819f321fa0461373b72d69d42d7154e1a0855b54779dfc77037a2774a4dca76a6558014267777a6e0130952daab60610439521aa31cde796ffa3cd35224008e617335af196492fd884a5913bdbeee83d5b71df246c72a38da171d4b021253458582f13fbdf99da9b3ad07a20eca306071b096cb63f8b04dab404ad12b46c874913d12f408372939e5309a62e03647ba1c38d36cf5f8d04ee504003ff33aec9a711d4a0f4e0302018842011cba440f61dc501ad43003370e841c9138277502028b7948633fe17f1477dfd81133ab11c0f6a34e66095dba31388bc7af59a552be9099bfba043bfebdd66e2e3fc02e404ca057f875702b0dbd30f0448f160d4208aa1c25759371b816ba774ddc9f2518249a40372d116cedde6e14ef2e1b515f88419a3499f544980b49a7f3ed74d19309af6e229663e11ddb6d561e273d41052c38571d8cb9a6d7b504c13f99ab9b3c130188d5c3417c069b47f5e1d307fe7b3684f0d50364032d74630d513fa16f71b5fd7e1146f60881fdef2ec0b5eb2e3d73c7f978d5af9ef9f69995b1abcc37ae6e56b96170e167d3628abd7315a73b14b5d55caab1fb925e0b9c33cf4eb02b88a0e56fb88f84baf8e7bee2cfe764343875eabe56ef8a303461b8d1609adc0e2d9f4be9a30be3220b192017a5f1a19d448bda046e11625de3f890e7404b06d37f11461520b04e9e639894914d7a22e726495b9f74cc6dd656a84bd09d327a3996b4c9ae7c7be847a4e0b2f205d809f8d2bcb9b643438d85d2b583f16e332423b0a68116cb8f29cd520e23dcf674998adc94bd0e2c643af80d0e32b66c60647861ad00c819c762ea6da7014d6e15994a7933e05fc4c135488deca6e262f82961b0fd01185af482a2ba11568b010c04dbb8335f11a335f54273699d7884294b75bb79ff050156569a593843e1718a1636e39dacef464f588a7568980cf557c461c869c8c630e2c87be56e0229d1cd22528d3ab1d5fa95cec77dd6639e9ca6293a842dbf834252f7fe449bbc252ad52a95d3ce766abe6e1db0415ed104834c1eeae36320a45b0b819a66770dcb10a041be6699e04df9e3cc42d7ee4e835ac3db4021616491a290c322db319aa3c6d70c1f485b9ba2065ed903045a9f4e993619f3546c9c85bbf86a7d7472173e9ed5afca82aeab0bb69c54d542191b1cff1714b5c80afe18bf0f9e0a3c09cbf39015686478c2b4927ed04f8894ea8267eab6d903cc2167e5cf41aac3d5a41266a5004f441ed10c446af6e5d7c5e060db37819b35413de6612618a9759ea9527af2c6c892a685bcf636cc222a3caf63b964a25262e53f1f95018628ac086700a3434c175181b350aa8ed2849679a24f8630578257e8bd900500b97504617efbb4266605885c0c5603d8dd2aade9eb436a6f4dd51d6a4565f7eb76b932cfa7b11537c0882bd8c781e848be91a613af2116394a74b9b00fea0095445dfcab626dd3e8a90632256f5a29a0a329122bc173b2887bd6fa330dbe82c5148c207152d110b4c5822dc424ca4d2e31b1204ff96907269a64b843f170017e23307d50304e3024a0ad6675930da15a7036900a44ee43238410b58889043b6be4bc3fb78c0823be20f6bcf0ad62eeafb8831d84e5d9468806836b7f76c3006203b0092276e39ca02dd39f0871895485d6eccfb6850f6552cdfb65023bbdb967b4b99524a0139067b066c0644fce6918014f242ee0b39d2cc104d83acd50c7156924ed1f8ab44cee33d9d8aac1869e6a76dccf6fc2e8500be63297d355a7cd27c84e8e3937e993ca22fb27a30d2e0a987fa6f0d634e9d9141081ac69c4c9b3afda22999cf3149831c7b1af411b9878779d6857bc85849faa5077fed792af1243809483fbd10fb421eb9c79c06d93323f1c8101a729d9353f9c348a4f2c79c30263172643e8fabfa8a4df16f31bf40c5a8fc3c42544ed2acbdf74456e7849d9ff40b8f4894c343cfa472d8397e84b9d5a092061be4ef97ab78069be2d766893a0b0b80bf9d74bff017c62a030d45fd106bf62420d5ec8bd8f70373d5be1e9ccbbe2cf2b46a57fc9ab6b558a772c82dd3d639e79cbf33facf1ebb4bab8b72f0393df4982f17e10cd5c350798ccacf1f7622f878342847a197a21c2368908bdbc735ebc22a5a1ca3865c5d9ba141777fd7e6af8b026ec334d175e940bfa07cc8ea0f5e43aebf430f1ee2d36890e30f1915fa906b50a1251297d8184ec2baf0f3f6dcf6710d865db11caec18f3dd728d998d0cfc9ac7d40cc397c836bb8063f735fd8d5098f5e47d5be91271364258a2f84e86582ac441fbd1abe0185aa3d6f5fd821cf49d5be3008ab863eec4e3d81e8b7ba0ed1277acdcbb4772f44c14cf54c24449099164e0d8d10150431b35a419055e685b376122a73f255a3b743bfac134a5e3b34b8f1e541b81ec09122458a1451a44811458a30c2881bc9439a8706e53bcd46ee517c1ced39e6d7c0356ec7ed9147d40d31c2f46cf50efd2c6cd5f4bb383c254bb407d7907fba41fa9d25af59eb92e4094f5637e7a6b71b87995aac23492452a9f4a4d2934a4fca9e64327d347dfc4d853bf95093696b168b557aef1fd387ad4595df3e264e9483e949fd226d221c4c26d3579a1e44673a9a8e35cd89fec47939b827c5393b28180a5bc3c90e033558fad26f2b5cec9712973848d5dddd2f1984d0b0715ea649a9ab74f2bc6e2c2cdb290b346417bbd6e5c4d16e1c28fd9202e4e0bfcbe52d57cba753effc6b1cb439b16b5f5040e149a7e443e97c7a4e2c7e8252da949fe0cd05350e18ab5a39bde9b9d2896b9c525029a814540aa2a5a7255a2a957ebf68fad960e94db3f4994c4ffa4c2697cbe529d2f4fd8360c844386f615cecda18aff2bdc572970cfd895afaf635510ea527b53666712891bef403575637e9495fb83f2ba6d7ebd5da98acca772067329d5053d7e22d158ef372949e55494ffacdd44548626be8b09cf3b86e599d3678e5615d4a98f72804524b5f54ad6c4ce9b9a7bfe2f1a6a88bf4210be9c3520dd945fa50ab5c227dc9db7521919e04a44afaf643a21cb266b9766a4df33091d0af886e48d5ee91c1b94ff76c323892f7c3aca5a7ae72a7b2e4353ec4697e1a84d2836fb415425a5ef4159b852a4f5fbf7840b7bdb531984f20ea41ddccd380b1867aab2b795b7bda497426eb223d6fe184ece2a0d29b7efba5f405a978cd4aa2c32e8f9d6095f48427b6867c4fc96f254d4b4fa36be9c15d0d4a269f0c4150c9d55bfd8222bd8fd82f28d297f285dde3ea9766f1d029f93ca453f25bd687ba88b058ac1c52d5576c28ef701495cbc1f4d1c54e78c7f4f14f610fa7ffc1f50ad2cb6f2bf606e9e5bb10a7e99f5635cb53af8d29bdfcf6e917ca6a56f7aa5166a6c98b2bdcc99395cac7e1aa6675de924d4f7ffad39f3e04eb66f2bcd5a0bf0c41d01eb01e4c3e7e50cee3ca51fa657ea8f9dc4bd4fc4e9f8fe84c3e6ff984ebc3c3bac8cfbc2db468967bcb554c84a69b695610eb26871ee9644b861ca1621d89be0eac8b7caecc6463425f0ddaf783eb8c2c4a40675b1aeeddc72efbcebe37cd6bbb62774d777777777777777777777777777f00e8a6f19494d233d40c964ec6cac9a49252a2a49188db421ae64d4e940377b77c005adcf3e1dff24de3aa6e6a0400317377c7dcb1ccbbd8cd19809f00d8bcd0735cf62d6d444a1980ce63f13c37e2475a35995025493a3054c9a453f227a55dd74cfe0bddd502d6adf3b80aa0e545a21cba8fcf751fbbee450140cd60f11b9c4ec98f1b93b991f5a273bb8f6a6c5783f2515e3b99e1f58ed74f1a94df79cde3758fd7aff6e99f86d240411dc5675c88d3b8d73811cf3dcf6f3ce76b2644508f42e2101a206440a8b20351bc902d3fd3441560513369af5d6e84699a094b661f7a1235cbbeddc8e29065d9472319a71bc3be10c3b058d3d25dabc84d18fefb366c54caf580726d9849c4c6ddd01cb0bc369b8dc96a736f40a8fdbb9b8da9080db721751bb231fbee52c4fc5f555b0e36b51151fbc306d451f56fb33182f2174a9b6ab32efdbcd56c44b6219b4db80da9fd581056d4fe96af75e90fb2e9a2766b3144b5b1315d57fd6088b52e50e866535b675d9bcd663323d4844f3557d0c5e60d6c9eb001509540fd6d6af00059908cd22fdafb17f2f34fed33c658d3ac4033edb3d18fd148201914824b50ff61d6b83135aa7784bce1b4315d3dbac790c8fd93357c43eb1e55674609e43f2428751aec670183fadb2093481d20adfb864aa08dd16abf496763606a47069250a48f040aa5cfe87bd2aeb65c35fae6fcb825d00fc9b15881ca23b68fde11dc47f3abed932c4f7d53eab8a97a734e1e28349440d2a6416923817e4538f018aa9f6a6210ad45302801117e90c40d8e114630b1daef56b558b06c809098a289305ab0bf3842337561e6f6f79736d5ccfda1289486191a34c9d20d36086a706b475fd4bf23503be487d493c13e052a908f7d281d52807df6215961f29339683fe85b086d414518551031f10f14d0f3031f702106133056415ef0852b0b1610e104214598982205090e155e5e984253e212bd789af4dca049cf4c17ae29dd23976998268330fcb32871d040f58f5eb82d7f39e7fcc2f85974ff661894be068cd81d1dfd9d8b9ab625a4516d709807c48f1bca3a76c786771da5fd3dd6b907ac101246cd454e101a686232fa0c3034680d256c820139a93da36e132a8e5071c4173ca70fd54f5150cf075395d99c737eb4412dc36c541682865c8b697ecfd0ac9b3b57bdf000951fc3a2fbfb60aaf2b3279a00759bbc802a57b709153bd82c7647c0c094c0a70b6208c1063d50d23304301811832eb4605344161e7d32ced492aadbc40a1cd4516d51616be65ee6506b3e3bdc8fbe1bdbbfbf8861328bd3b50e31e7fe31a4cd6d14bfed9e442041394a0d61bc90e9cc2246bad811430c30d8810b6210250821301658866b12e32c26a15eb709152ec8c0a05db70915ad4ea3cc3c01b84249174dbce8c20bb040050b9a062da05df31774a68660f4c2365a0218362d4a506021e2adf07afe8a91134954fee59f4df6c915b0d8040cce8bf4655c1023c4051716058c7bbab0826d0917b880d98eab6127810950a08634602815402a2abea8fdb34915722aaa6e132aa850b1ba4da868d2ed845adb4a12e8fe66a1df57e2646a73da6c281d64780bac55e83380e24700d04a060140ab6d69845b0e59f050b1c40891268aac9a8931e000070a4a34618990556f175bdc6089283bc0410b80563dc40e12385f6881c516abfe9094624805eb36e1c94295e248dd2652dc5497ba4d788c50e9c6b00d1d9b2134610746908217abfef941eaee6cc2836477ea7a2a6bbf69d5f4c8fda8185d86eeee26553052bb9de5046dc60a585841a7b7273ad3e897706e132bb06aff77cb04f225b675958ce7c0498dcf4a06888d24404856f1818c5c5358b94a66a920c64a0688b78a1f927e16f8ca3f24fcfb409a6f2091314629638c31c618638c31c618638c31c6d821b94942bac7285dba7b8c1ea3c7e831babbc715349228de8d44088d94929993b02a7fe10fef1aee1a2464ff304bee9fee2cbadba7b3e89ffe01da5d6e777b7b7bd7d7b7777d7d7bd7d7b7777d7dbbdbfb421ff64b820b480881ee87119460d077afbffbddb7170eef8efe9bd69ea679ddb163c7eed9b363f7e46d329723c66fa646a6c1d1ad69214d0b69ee3fe7d653bbfbdd318ffed1c37e7add3d736a9c466ae4fa248410879ea07162517e1cde5cb3ed6e5c9633cca0001bab80ee197a0628b4d0c689b6a5ebb86dd4264ab71029621e06e6f20bc5d762dc6818a52d94d5605bba0e6b13a52e398b5836e57b64d66a00468c5ad8b85d6e4bd7616da2346643315ad860a79a93a99a373d5e97f899d7eb121ff3a2d3e0176972a3f7eeb286b54002d12fb3ebb28e3b20621145c0c06ca4923bde9d218b0f9b62e6ba4ee8b86ab85068a8f19d8606291168dc6165e4615de2afe0d010a672f41188a00020d81b20d7881fdf878dc13e76fe41a9f161564e3076b100354a21704083698318b6d8c77ea91c8631f6bbc3baf0d0010db9fadcfe1ce0a155301dd8c0ded8c135b0c7b08781f91d36302c863fdc2a54cc4467444ddbd78c0d62f237c6b9466611832a5ce0822bb8c0e7671ba9739cf07c98aa3efad0abcec2d5fd49decafc8ce521edbf8fa5cdaf7bbe7ed2a0d722399daa458e34b8d5370bbdc7a35041c3d88316462251257a7e57d22f9e24d3893644fa25f4fcf1a65f7036265de5f72a1442e948f9202b20ab5d8554545e7be754bcb852f1905c605729bf35a7e2f52a7a735dfc559eeb112a9f0c9055cab7f367fe745910da329e78e1d8c82a320c0b25c83936373820f84a829b0802020857c518e3bab014818e6a18310cc3a218b483e1547f375582a0214cbde1818155996053fd1bc4b3413c1bc40344f30e3d1a6c9808c0dc80c0bec4dd79024c94117b199f01c2dd7d6ada0c85329bb84140b4b6e89a9641b3cb551c5783c631269954ee188b4049295f50fed998f88de37b4679c01673bade53f33f64a01b34708d6d7fd645861f502635642139bc0d41395c1f76d260f38e4b0a1a6e4b041df0400f3e61e0386fb97b483269b0b52efcef2ae9721af8864cc2d6e0e761d944e50f1f509b5decda5a34e3ee73ce097a8bbf1e1bd32b9fdb9acfd4bff0a9d755162a506d5d88d09dbd218feed1b7f7e6bad8dce0e41869e19834d8964658a2638c44a675e9d167e2cf347f6351829a9e7b4e7b83a590b1318c8575e9675142c6190a294119635182661f9a72a45815b33685b33110a82dfa86a276d705d58275d329b59fa3b46a029beaef92f491ce9942e890dacb45d86562d98927d4fe1428a81c81f6f9d0200f5b651c1e368679d6e503ab6229982c131b365229cf63d91f1e29ca11fa74405b1aec0f7da606bb99c5aca634a021f3304ffbf08dcc3deef18f799c507e9e9939f67d43d7e51adae36890196490b12d14e24221ce9b59160a65a2904814ca3172a441661ee629cd908a9048da8732d4dd255218c216564024eb0bdf327a6dccb6e6ac5b8cd15b6483e6518fe3ace3178ba061573bc6a401ba882dc6db35690caf2a9cb9b523011c5d0df0321040b480ff7f3dd99c4ce00034d685ebfa10540d4a065b0cfbef9fdef4fb1d0b7c75fa90640fc45b993e24a1afce9b16bbfdcc606dcc2e995dec06466d2e88da34fa654472f92b7ff886fc4cec9f698b51be644f833c0df68f3cf9a44119c514e4931efee44e11a8d750eed4152ce8fc28dc128ae23f7d9095e94fbfc3f4a74f0609bf4ce94d9f0c921da6577999943f3d7f3b549e3efd64e8ab7c322a6ffa202be9d3a0fbdcb893277f656490ec389d3e14e97725737a148947e52fec61015eada756a2cd572b831a3c79bb32f987cd34d8f2c7e506457edbcf15947fc81ad2661aec2d4a83bdfd8476a5795ba9fcb620ff342151a6a0a1f49951a2a1f3933fd3b5314fec2b8ac905cf0f6faf065fae1a3db1a98ee2a78e78261755541f5cc3ed27ca3672ad8b10547e9bcfd6f383051a4a9f9eb8fdfcd4ee7e7e5035a22936ae5c41f793ac06a5912aa140d530aafead9a4f5bd6657e2d2d740a1493cc4aa263634726411a43f4dcef6fccdd501e1be31bf352fb47e0aa8e53fd3cc3a98d4e20c8aa5f8705287dee995340fad173a597490112faa138c8aa44b71ad0af5c121a2ecf10345c9e9a02243b464ffa7e1ea447f1af08c59f0544cfbd0ea26f9dd381f4f580f154ff9852ca186d18f9eed0200f26d0108651fca17470a26f3d85f57732a0f665be640610e5c8be9d97dd475a68dbb62dc4bd0ebde23e19202b69e3c91b1cc9c323b4c40464e2229c2b9df0b84c351bb34beacb55dab70caaae7972474a39bd2da84bee78aafd93ae142d98482612a736b72862316222ce5e875e653a2e179018dbd2084d2d5313a51b6e60d3e0d66e89d32fabf2da9802d496372f89f44bfc7682b288c5082a6f6c6c6c4c2d7f62c7a8ed4283cba6fa7788907077aa8e56eddfe1c40b5c752d305ffb09b84afb50b3c1fe19504d0b57cd8f7fbe68870c028056da4f309ef0a842cecb3601c349cf145d6057daf79eda78407bf4f07e1ebc5f070f1f36748c36bba3036badb5c922d579977954fdbffa4b9ba6dd4eff6d16e5603182fadbf45a51a3eb8040e3879defba8b7637a66bd7f9b061b116e5c8321f366c3d62be0ebd9abf735d6cbace07405cf8e6ec357b3e46f5c7acfe9b63367495369bb9673fcccadf8e067534d8cf2141e7dbb8b1bb0bd817ecfb55fb22f9eb1c54feb0396f63d1adf3fbc135a4eed4a9bb366768ced08c71ceb96d5362384a6cd8c8c6d82a76576a83eeed0d13d7e8a6ae928140cb07332b20d10848acb45f4268b5af79389a01fd5b8c1147831230f10d07c440605dfac315fe685842d7b936b36c7ae6a2ec375e910ebdd23e88ac99ebc22f3d69236f1ae4aec3625b1ae18cd68c26e6a4b4fbcd06b4d96cfc3fa41d8b15a856431bbed9b8aa570990c14a06080356d80319c04a7ed8c9b0144ac861622503248352b3c23e2440380a4758c90f092a262fd0d046863d40fbf6169457159f1262d9176fc1fef51a7a2d2c994425e841d962e948c9927247b25a055333333313c46a650f4eac51a2b1c478a28a61a486f2895743194a1f19e387c2a16b7c1bba461e16c862b15e55d8ba352d92288611605fb277859f8497316eb6ad6fb62fa177156e0b897a34ead148447a1d7a45f2e44dc893384a5a4c443dbfb0261510fcefbaed11c2826e4e4a71abe1bee6d4b42d8236ad9f4e9995020b7a84ac80605278b11251418c556b47c5866d38d53fe94e8a17348c3bac23f27887d99503f6a19db8d3e00578353dc55f466b88c355bbca5691c753fda1191a4616f7c0ef221b780c140e59f6853c431ec63aac7ec1ba3404ddbe909fd4f68dc9c1aab22436d5af45c83a7107a886acc33a3b590a100da394221deb29ed0b7f60529403b77c569db8135ff127ee441e5e2d1bb13bd822fb923db310aa28c7a6070e1e33d38008bac151d2621277e28e6946c58a520d680d5896313386f9fc15cd1b243014dc0cc7cdc4186314a540a121cfb010435ee60761a4553df886c806b598f59a114233d3430f0e78e0f58517cff0cccea604a0051c7181cbf35a269a8d81a9589c6152424318897df619c03efb509e81ec518ea361fa457ed9b74fafb5d32f795a2eecfb69c9966c6133d8fa61ba5fc6648f46ff0cd4e3f39b68e0bfd107b40adfff7f57d9b001821efa03b12b1e5f0c31c4132b20d8124c582141e1e0cfcf957fdf5500c5eae9ccc62cb12aaec9a27862ddfbca63042658152fb12488eaa2619d223464256a5889585137486a4205a12d5d836dbae11a66ae61aee1ea514a4c4a4c4a1d99d4d1a1af50181916328eb63d46d99dad5cc1a82f643859117ebd5efce2d76b4e4abb9530a80c83ca67973504c3a0fbc99c95126486728056b18f157b8501aa26ca817d6af4226e3e4c026a2faf386f579b87dac16dcf8d466b85d7635dfa33ef4783af8c5fddcbb7ec8b1f6f1eaf441e6ac7b67d32f20a41380149fc20476ca30f87a7dae33c1e9e6a7e5541436c0cd8183686a50f7fdb122a1f47bf6a888de1e503856ff48b4fc83ffc5a172734d42acbf4cb4c0cc588239dd9e3cdeb95e1907890d33b0dc5f66a3484fe011bfa100034d0c0ac429f00dea6413645a1a1297bec01daf7f39c73722884d33b5813e60f6ac7e9577ee59359f9d3176415cea0aacd006d2352a5dbc69e45d41edbb6edf95bf150292fe383ac4e1e2ab4712dd50edde5ae4df593e6fce9ed58f990b7e3f4dd27d3fde937199d0c0fb583e5653ccbd73528ed653ccb771e6ac78cef7e46f7a1b467d1baef646822952ec564ea52544a1cc7712aded62ea593f12a5c4ad7c91869cfcc5ef62592e78357567ee4aafd84dacfadaca0749c5656564e2b2b2b2b2ba7959595934a7742a4d4a0c0e1a926d550cb092cdaf5dd51c54122f574128d42e58d4d83363864135e339b5914300c04c15716a61d1314ffffdcc6f4ca1594bf7ef738162214554356fdb5ca11a15bf34b8186a156a83502222dd917a9d3608b8905bb3f1c75513b4a1c2624111ba378286aa802865c424482e4c2664072a904fdbab47ff1ff77bcd08200b784b6b410400032cc50a3bb6368dbb62dc4712d2dd80bb86bb7337b8bf8653082b29ca51b6cf053f99b0d62ef5f3f673ea7cfa9bd0ebdd2e6646d54091b6b438206a3698cc655dbd9b00182ffbd1da055ebad6a8ce683ac42cc06a309311cac26ba47ff5d2742596a088e31c353046d391811e62dc787e0ee2e7f5cb501f1f4429f79d86f5be669abd011f3d9db1c7583d7f85ce317f2a8fe385a0679caa7c11f09e461339e3240f54fbe8ca0b28707a37931c7c7685ab56368ddf4cb62497aaa904a33a7b841ed815243ec4857438c85e960f1058bdab2e70af9aabdb14437f04157d3c9c07f7e7e7e7e7e7e5c4a958fd22ffcb37b07a8364feda72a0fa459a08417ac90c80fbb94df11336d02f51abc10eccfe617e8d5e9574c2ba6959597b1b2f232dee4a176746fface2463258be8389af39f3929edbaff2cfb8d0509053b27a8aff67137f3676368ed97c1da9807702a1e6a878ae9553ec82ac543ed48f9d39f3e99d366f2bac633fdcad735a8f9a65ff99387da21e34f2fe36b9b0f357fe56b9d96eb40cdcf02bd3afde96b235fb3b440c3f9538342774da07ef141021ea3d2ef9f3fae3a7dfff44213e528cd93d72b77b96a4e978bdb7519bdb635fca7cbbb8ed29daeda735d9cc6d5c9f4d4fb61d6d0f6a1bb6683eea793697f4236527b97b0918d9921576dba8ab7ab94ec471efbb0616be8555e875ea9bc888da464afe2853e641f9a2ba8b48db6453dea14d108024000058314000028140a0643a2b15834268e13b5ed14800b7a9e4272529c0984598ec3280a4286286318010000420080cc90cc1007008dbd79295c44d20807a70f079b3639a8f7498a0108bdf681dc2da5a404f3eae43d04dcdee48b93bbc20a63a206ffb6c09587d2328d53ae0c40eb39a1cbe36a2594e5daf5e0e07c9c5b6d45f5b1a74463125703a08c267c1b3b633c47c1be0df41873baa9c92f2cdd9b6a6eae5f6a514569a3d12bbd64678979903b6f37af57386d6095875d6be545288a17287e23b9870b96f35a5937b541968baf57293d91df3e434db18c2afc1294224979277f03c1a3d2dfc06e6817913d66e171a8603377690414c1861bd49f87e16219b6b1e487618bd8ed5a0e6adf1e351ca6ac94b02c0eb8fb44582a61ab044c1fba2ccd758227b227419b72f8045b10a5977e11abac66e3ebd481d1cb103e433974d35c47fdae56e0736314c91ed19b59ba7b500df7b271ff5177094f297efda76a1492aa98d1ea4451a5917d455b9afa8a5ac564f9dccf825dc7a47579ace9ad75702e78d26f0c46cce6292772f9f49d476b022e5b568dd7a7a9769b95d236cd3b77daaac29d1d394e8fd29a1e8e3adbf74a9c7f22c7467cba77a0b7344fc74026104728e118cc1e2829ba051ffa9d14efec8108254a0ab1163586fcde861f0f33f0f061aac9e94d0eaa5b7bb7f2acf1b2dcae9c0031531655b623fcf702cdf05790bae690137ab57b4c08a0944759581e156b685623b7f6de971a4ba01e163960773420e786acd1bde6c6d90db9ce55458beed0b310f291fa03dc5a6846582249852cede00ad7584f74fef8b2e53086765610a186ca488c0304a1c67905f9aae292917d831f637e624c04654a9b3efb00db042eb042c0d6db9cb871a2f50ffdc8bd2519b0656ab43ac044ea104b30b638c6b9e9f158727a4af1c0f416294b3b2d8fa8d091a08091b969b3e52e3ec4ef8d904ecdb8dc7e6c7ead0658765c10024faaf4e562e4fc703d2f59468991160f7090bd083b3c6b789028bb6af74edb71e7905b8f206893e5362bf42c593d0304e5436228bad69c2b44672366101c5670d699f13392eee5178ee6f73b4de6baf5cec168abdcd93e020b4625f97ebc800fa871acbddec4c63d0aa286597222ff1a3bf525c2e85062e8451bee5220a2c67edaf54e44ec62270736aa01e11dce09ed57228b7ba9ae3ddcfb2932feda16ffd6a7511e6ae65a9c82b732625f1903d9d0408db6f81ab47ab62fc4a21e9c05a83ce045dec689d0925698b1630addd54a66a2bdd65bbf4be6a9a4da36d03bd73e50b215934eed2fec08d827c6e8b616fa735b5f91dcd6713aea7d26d189f649df61671f6a83980194401577a11bd70f401b6f343f90d70800413fa99b303c415d65e7c3e24d94cfcc13c62c83159361d6990898242d04d4618d7c8e77d6cbb3363f1099a35caeabacf2e3eb8bdd86d9f788dc6d3d7d4532c2dd57664a71d5339f52555a168d77dcb97e798b74299f48087c61304f47652e425019f4e2f7952c95ce92bab5caee1cd4f3c934d222d13dc0e31d83e9682478e069dedcc2b498f87c3678d2c49ed9b3c4cff22ce549a145b9b0f6d6f34cef27c87ec7f0b7f8f41daf8430f6bffd2265a6ec745b898cf25b438900c5134ab8ecca423481ce8169c93e0e59fc7995cec10d62c5e9017dfd2856d46f06c68181510cbe6f0db2865f453f31fddd3c30a6fa0b6cbaed9070fb7502f4b5462f73f9ecb2ee55da0bd61250e3a8fbec3cb22236e9d35f31066fe0a43d84f9f290cfb7ca41d16b84295c27c06ac4d9518852e79c25e152480d0e316f57c45e686cd51bcf738f8208bb47032705408328155036ec3ba4d8c47911d538b9637eb2ba6e975a062b70320a6b32dcd71e6295293442cbd157ae900eac7b385afb25b65f7e2b14d03a1301ba1907085ff4840ea3d05eebb267af15ab51dd4175a5ab672a06769d148ff7c347fe8c452216ae9f3fca37746ac3888a05bdc96c7f9e7648248202b1551f5cee5e8e98597b55391e76c6a9d784b3c271773695cc3b07143cd401e03bcea1a0b167ad39743e40d64b91a34a71e02203ae4d656d7e2ca63a630b17ceae4a18037280980396f880476c70f301dfc6d9902814586dbffbab0668b6b2c463a30ff044df15808346b7c212c7bb716848922b2e118af3b2589a5b9709e9373e7a9051f411ba524869c60f9a7f6a23e58c8ea4f1d81c98077dd0eae34dd773507d0ac42283a137e9197b33ebbc92e95ac7ddd5b398b5cf2295cd2e7c5dfbfc4e05582f248c9fe5604e0a73a62f1425050b8f1d29f1751e8df56ab733e7abc08eb8feb917dd7344b9ca2efa2a5255597a0ab0d873cc4c711f3a7f7ae3950d01342f4b599022c8ba716525eaceae80170896be6500a1471bb2f72a45bf66f043f46174ae7f7a15301c8f160003a9121cf70c4d43086b4c7cdc35088dd7e4f5dce7d7e5d0cf78e7b163c2ea0e56b81b517c0e3cdf4ae4f50234c2bf50bd81df4ac750eac554b900cfde5d20a04eeb85846babe35cf04ebcd1d844163822a1a86ebc3d61d418c81cad2750d3abd3b3f2ffa92b631387dec8209aa55730ec7537fcb20d5aef9c660762842859a69d54c130a7e273da6a24fa98a518061236b2aa8fbb5dedf29c2e695eb32d0c425f3d0daad8df5adfa1aa39debaf2353af7c5a5ffa214649f9070399b653d32bc83cf0c411c3525c61b5658647cbcc8806d4799eb8a0a44d2b8b7aa348a9cbc7654c8765dd39b467ad3d6933b73a91d055fd543e7840153cbc48d12b6c0e6d20f3cfdb92d6b6938cd37e8b93236b58fba21ceb2401e7a14bbe746ef487cedd70eda53fdfc8c4942293fbc6d7c909fc7547a94641871e39457c08633becfe6c68989a8825e1974ed3dbf89d1ff28f12b66c35f1557bf022e53e60443a7f7dc4d19904bee9cb333af51c1baf526d576869c225e8ad99a1d3b2f3a4192e6c921cff42b4349c00fad742c9e034a2dc073df97d00d3b1cae3099e8eaf2b687b9f3bfdf6c25a91b50eabcaad9cf7e035985919e663d738817aa80fef17a5c20440096812628c61891332051d9255957ae7f1897efc24d41ad9ad9a0b1c041e0b83df7f15a0e1081fd540cc47c1e3ab4ae2c5083ddb9a94411936459ab0a8c6d17dc65f0547b0543ee5d0dc1a5cb5e22200edddc58c805922d4a294c4c2358a5f67538e5523bea40df03798ade3f45adf9a4c9b5bd726d4449c02deb14f43b2b76b89e4f8f0bdd60f10bfa56910441c97d6b3fae598e35d378854b973e9a3682ffd6ba20c459f153a205578b94e55d2c71b3e86544d1c4d0fc1fcf5c7224166cfee13b15951c1583194e5adf0b5d36081c5851702e910691ed8ff12575036fe8bd2092dc266a70674f9d4dc1330e845ece2090a893838b5223084c3aa2289c62e5ea060df545680e20a1c6c0c1b5bb2b78400b9b97178161d55f2ee608215c5c736ee2f4a0c0af94613e9c2ee6597a2e8c6447faf6e3074306945c5fffbdbc1d8ee24afb3b6d1aa60fc2c2e2e8ad40b118fff6c0499cdad178f4e4bfca6253f2430f72958c928f271ef6002a2465f1e487af3bdf8e328f3ba27d06a9d0cb358ab70adc45522e7f851bc9a9985ba5d225dc269ea9c1aa159c0a44bc0564389ddedcd8b8b6db61ce721575076851adff494a7ca997e0aa0a9bf2e627110a7b1f2459c957100d853ab9e0365e2f4dc2beef4fa8c114f1e7b4f735527b21ddb227d53468a1d975100b537d3f7fcb681404244ab093438e80e2e93fb08f1651ccb49c1974d3f98e789669cdfa1cbe755b8e880d88fb024b8b57816432903e8b8b89a22b75cbc17196679a580a4cfb44f6caf1c9eb4cd09f635d24b8d44f3a61acc4fb2267b0c097bcd86d42aa04ff64a3b423a820409d95f3f8494205662cf7b145e0503c49c85867ea6342a9ee2b107efa5a239a3d5ce4b6c0048a108365b198c7418bb6dd8fb0b55c313a74420e4afb5bc76127318ccf2f1b5468f89c5633d6c21fe83fe1e5e73e87d33e7d8ffa5c8a8e3d06f2397b7bda5ae3e77c747efa895d2c4b06cae63bec11676a9a147229b3432a56191693152466fa42c8d1c4423b01d29dfa8d79486305df7021d62407d1e4707f49692a8b2cd4a92bcbe118488b10a2843b234466e68b2be6143faca4c77d8df96e816898e77bb19ea4cc8188e4d78ce7bcfce34de80459f51f7e94b102146be3ff42fea363c144f745f620444335a966832965fc55f7ace21c87d2781512766868efbabeb35807a553274a16403be6c158d4d88863d8d56ad34efb7739c4db9c1d1c91d44f0af8577c465c389b0be07d5527bd5b862032a1c4f48b71bbc3110e50cf7a016b4f90e7dc3c41c66176cb9eba4b8ab86fd98dd1861c6c9baa27a44635e8253bd858304581dddd73a971a9ea5b0a1f064bd121d02bf75b193d5eae33f8bb74c60f049308302827aef75220b76f4719e893093e9ee27bbe432258844aa229119d4f0d066ee9ad6fb57a8f3813bfe6da4d2843c98e01e1910281347883a5144530ba00251d35ead4729e2db262a9e2d9e3555c17562877d7fce54f96c1987cfacc62c4a2572b8cd65ddd5d3bfbd4a90bf2e0e63a46477e254c2821713851d3bc04b513f4607678607be5fa71c667ed831464a6856a06b008c71da338878171b04d5d8d14e10628c0b858b72681cf6278684174ce51c9dc7211d5064e6044c6f0a55d33ba35a1ed2b740223d6e9758b2147f048668e5f01c16b7c9804c164d76cd929a52a4d218cb0bd146ba698950626219accc3b387c3907482c527e34f0b904d45ecb1d40e6ae889dbfcae956faec98243b4b833fc54bb8f822172f5ebcd48278f3d77b6b99ea4c6f1833d9739f2c13b91210bb6f6a0342db6e1ba7122165c17c0904c293eb8a2a1d22bf1a637237fb3c4ee9515b67e27d567f5ddb262c0be63f65242328e5c08eb9082a6dd883ed533825751667f9c8b0d9e1201613970dd55da13d54f13a1208e14b23343b2df3120bf134a14ad04478b767415e4922dc300a3091124c8f388c7fb1e832e8382a0086061c59f3c2d133832abe2b0f0f5c0fa38965387d1b6dfc2e0261c8568aeefd8ca8382f47a9d9abfe54f5843bcc4d9e53e1855d988f822985eec8b00623a2697f2bf4355909091987508055751e8e196c6767a9aac65db2081667aac1bd4065943110144081ba38824a413c877f77f524a62b040908cd87a37145793ce0770af996d401a403145a8fa92085230d02fc10ae7b3ceb2321aa8f1439229ae68e59be34aa91d8d59bd18ed98b3f2bd555e8822308f1d1357298641a13153be6d91773b72427c8d0a6e490d1cfccf135f9e9ab8f08f0c6bcd5b15008c2e5ef1288a979d27c674055322c3680d978653aaf6c6ababd9c15ef53974e1ff7fdab3073c48e40dc0302ff95477307b3ef6585c5bd7fdd33650b00bd07ab7da8bb4f0778da7b65b15fbc4eaecb7c157e11b36fbd82c044ea07528a1fbb9010e04234851b9d5d14eae1a26972ceca39a56e285853b07e68a782f2921342156e6f67f995bdac232200468eca0946a6c9a918b3108ce5b8cb3f0fd90cbc32938adf8d96fefa3a0cb74317b668971eb4696d14a4dccceefcd6230057b696f4ce98c21d090cf6a387acbfc27efef1b2c9a770516dd588610c8558e570551a9bf2b27bb6a4927982dc76ac176d51376a5775d41e932a556d7b7188c8515228f4f8fc6974b0ab7f1eaabb641e3f8fe7c1d123b2fb430cc6c61865f28905086923a7c68d2c387594f5288008a23135f487492d58e437681617df65299efc22abe22f05ab4953e3c3bb86eede16d41eab8e6dc6e3f74a53ea6f50310c24010fad30a9411aad412356d2ffc10748980c9f0dcc0c20a516d3e16e67cf62e51e9c9502c09c61a079cb81928532d4bacc48e461828566ceff1f31cd1af2292affc5c08f6f465a09e416b816f15edfd5cbdaab93c7779e61474091e6e61e5b9d7c6193df28e41210e0107cf1c78eabfde6484c90d296f0b3b4189e6e09a329e5721f5a01b04afa8547fb8339e37ac0fd2d3c2bd1f6807257918621f746a143bad7dab0623abe8f460ca11f081f67bb137457703bda0580327da536e050e14eabea9ad5afdfce6b8fdad4b23979f914ed84b3bc56cba6891859e0a130cffd9d5f0526a636f80e3ddd75d32421d9aef53a296c9170840dc0c358d64664af0f67685d17096e5f4d82611b088e0b712c19d24419f9c16232b97582302f33cac3d8878f26ec59b314b11506a8530555cfec65271e5212a5dc78f704147b320076b652af4e7b2d158ddad1ed8eb9353bea4db24252a2c5cecab0ac147a579add83658407f59c5e4afffe4dc318e4078eb3077b040859f23933c4e0ed5c1c3da9160b01b4e694c892abb0e72155d018808b634af7bad596c650404b16afc11328161003c452a2727f1bbd5b12fe0a197c077daa8523cadbbbf3dd7ec9d3825ab27202b86d36a5916787002b9cae6378a07f15e8d8d8cfd1dcff5ad53488692c0fad9deb4b65c12ba7eb260ed018b827ac5dfab213fe9924399c3ee0005777015605277499e121c9ae767213b5d3c6828b85c43046fa16b40790ac84523920c7258300ab226302e931434f4c1b24881bde5866e9db1388b3bcbc01d054ba7608a1e9463151f06f17a000a4803b5e4ee37715efd5c1e1aeb945a065ff3c417eeacb0a9c9d776ced7c698257d72be762e8f6d48fc5ea54a792497c5bacefe0895c7c529e55999c757ed3e0662f429b482569cf3d9312a4af91667a303c9c02ba694c1c2eef05532192c1177641035b996963c6a3ac5c18fb9a829ced83ea96ea6cca9242b8a918c197423904a77e247cabe28ee73090d84698b44c9910b0a4c9001f19570a0e879126c828fc6272a8e579c15c107b1ad21197ec27b9fc78743a5cc00782600c51ea0d55c496d7f26e29d656686fc99c399dc4667bc4a20edbdd6bb3620a1cbfb866381583a017dac296727702a3c19c9cc416940dda6359a65a4b42c831d00a0434e6204d697563a5387181a240cd57a0ee53f62d9681d1ee57e171ac5128a0b15db9da93f948d3ca6261003b893b0f48698a6d1ec6b58f6f0ac8eb0f66784339e679de9b439c4e901db56bf9cba8141bbc5614ce6cd28b8f87310b32a2cf6c5c21ba680dd54c31da8522b1bce11c18f70437840965a59584dd27c8a09c4f72daab15df0fcdaeac1549eb8f85713c50769d3f5fe388923452568034f884e2fb4aa1b103596bf9f5b550088255ea0bc93bc4c0dac2a7107d929f142b867b6af271ac9283983f42bc589869327cc4b8c421a4ec24ed4589c8a373a118dc0111e15f287702955c63e51b8a22c45ec90a56b94cce85d3e86b142e230ae5e127ff90883ca5c9975782be9a382d0027fc4d16829ad048b51d7a6d78b9e8ce2c96b6f462046053203ae442ce8b07c9d99518621cee33ff8fa15e4df3f795daeb86f5dbaea04466756e77e6b73bb3f5ce39937c8524ae39213796679fb7edb091fcb3fa0a116af752a441e10b4264ea446839b4c06fb07bb6fadc1f12756085db8be440f82d5bd9dd7642f38cde49102ba04f7f469501f3bae4fb080ae7a01a124a83c6da67b98f22ac0e4bc64d58b223e0b9aa182d37e0f6e710b96971853e8603694a2196eb54d5eaa1d15a8aa007f10c62154c510723e9745b82a15d01f61de16239c8b31b3832a911ee402c9eed23209cd519c8d424c2e3ed809ac8c25fbce0f4834e2eea85079e6e5473c91d36b49f810da29a39b1d122f97c31e1c528d790a5719547771ae9b463a5058a50853c025eab00b6161bda8b4381a0f7cf370099c7fd52cbe5a10a986af00e0572a911451dec92479c08b86f922c47bb599524184718dd4eeba6444afa8e217b197a7f685cf269b802520d52c8727423e0783f5a0a81c9411593188367ddf785d29f2f57b67b8523c9ad387a097566105a10ec41b4749b32af7fd9dc1d45ea22af472e057fb342493c652ced039c6c031dc65f68872597407c2384b8dcb2588bebf9af625114d4480a0fed2f7e452d0eb7227fa21d3235d4498c68d035512bb9fe8e931056d404a4646bdbaeb15f5e1b96660e810f8a9a91e255310978b5ab15e1527fc90487db3c848bc092ad5a54b64546f257024f080ce4612668318eb462c9356423398bb28d9a3b446424bcc3e77760146153ceb5cb9048118ec948d5b6284848188a7571e748feddeb66db0a01cabe25b6b8dc19769138a5f19c48ea79d9184c636101d473e1b2df2fef15eb86d31c188e784ab56c0b619ab8c85c0254971080d3f06d3bde250074dd4edce54a8433ef787622eb9d22300db82d5a4bb2f72497e3aab4008f900a194983c8f27c52682065ac2c5d7c09bab646e602b2ed9b7fceb19dbb7ba6403f1faca23c410f0597849869006cac1a6b1406c9b1ef603359c39ad98c11e3254a4bd0d5008f456c369687fa997f5273f1ab01e913f3f56957ba8154b176ad7c6ada6e5c2713bb9492a1dd0bade4e6f808fdf80875a4a36b96358f3014a478a41c52053eeba847a233d46c92b582a212d5410e8db42d6696a10005c411033ca511a20614d9095ce176f59772c8f80273cc0a670234dc24e0e67638ff2e8c731b01e154a9d3c2b6140f141a123bd075f3338484da9f513c267a795966ee6d54f8065d246d45329e89045c64a074a0aa08a4912b5f621885546a5280e04434fa3b3462367efb548fa59529cc2446e122e46cca4ec78241644a813bdda734f0e4ea9303277e1d4cadb0181036f78b6103f9fc3fda09d8d18067ae7ab04f32a7dd29e8be69c508595bfaba747cc002f7da4c97e3e4e0413ace40515262fe261e2eef30d02eab4a177d046b364b7ca4313d3071151463d82c880a45fe19fb642b289b24a33306590da71ad88c32242db01723d3a105b443e4edb9d2b916b36b40225d76ab408d6d51b13aae2fd76f160dd890fd651c57fa03940922a6e306db24c9f90a53190fbef55a2d52b3e92d82f666890928e01f7ea6a25bd83ca28eb84de20ee1e42a015696c6b007bbbef731232f497ef2eb656b3081e4a47e7a0f188c161a7921f18b5582ccb03bc065c1b6139b018a7e874537b6f38ef6d568da98ebe078ad4b6cc327704038ae4c7a8f75d6fa5b625b34a90ba88870e80e3d9904181e185be3160e85dbdf70f4efb3367bfc8ac75bfe01286b77888211e60e55cd17a558394089ea519aefa37c112d793184d3ff1b5280c82f7e7927b80a1091d22d5f32e4e08474125f5c03d812bc3b13199c236f99b5d712afb8e67101cab9bdb4f1e79ce0e5fc7a5df1924c8f238224109eb952c2f52d02530c2caed251bbed8e3070fa541ad06f665f79ba36751411b3b1b05aa165dea7e42dcd23678a2b47b7ca8467b689646e1b57e89a10f795a703eba14113f2931b8d4ee0010075b32af2c54d2de927e8312772b5062ad4140a05d80eba645c71e05af70285bb286c29cdd7227de7319c1069899d4ff36a411dbe18730cb7d0c634f15f82852fd22caa730d87c7ecdca88e205bbbb02d96859604855c5666102ff863c2a103fb827fce12dc9d067360875b92f33e6eee9038da8e2bab4575d8a13f8f0d281313c75b4ef9c9d40d7c71637e8918380b15e44338a0c0bc63793352cee4a0024aba4e4f47542bc2fb8c41cb697f4973b8f90106b124b81e4cdb0469d92502c29846c448ade40217f0cbc22443386c4d9a1d4dc9f7ec5a159cf91cbc2ef1a549fa180befe1ca24977556a989fda59e7362134c8dd6ae038eb5f5500e203c10625d739a938812a36327a9d22507d93b398d0b2b42737e4f3857d0c4f9ebabb0e1187267b2a494050486b0f1d2e81e34ed2ced6a0075c9d003ded39077531b1e9b0d64cb6b8090fea708e1f06e6088c11d5a612051301729103eaf1925782977180bb091c7e7a4c408c3b32e5eec1cb2baf8d535253b82325b7ab5a01bb32c98ac49da11c1bff20189cf33b25563ce106324a755208e3a644057b011585543ccbb2574753f33521d6405218e92e1e7bc07af553617fd260c349eefb60e7b5aeb0073e55a28b89d9987a420ab3ea2d8169d029383e4b9b84c4a31138e98f8b9106bed444e91fb1ad25c592e443b49910856a73a1352b2579ca241d104792822c0331242449d422190746d206c6692436963f05d4a9898b8a6cceae30032ae85b19203fd130409e5dd421fb5be7513e6b80be4c617c729221a295c2bd0d69e1081e15f6024fb6f14ca6c7351a8b90e001d6e353619ac733518fe8a582c80009a64c629e1ddc6c59303168dd68a46c2be6590d382b4f5d3370259ad89935ad24a0840e54d9bd1bdb4e79c622043e8b649f7786f8dc7836223a3b23643e9fa06729a52b7fd9fc2754e9b337dc9b378a5d5d2affbbcabb826f3c628d754163109ba42e594796df5e2a82e53e982310640e8b657e51bf7786e222f07bb29492e083171f64c870944c37794dfda330e757ae57b028228edde2b6487478a3f7ef013fb20035f183706554d37014d38294f05c5e8dc1e1ed3ae0db179a7a20018ecc6e8ae75ddb60ad136f962fe1e298bc47aa4b6b54d6a8c23eb83b68df86d5cf39590ea8c5339844ac4952110417feb01cc2b5d9129da611438dbd44634d09f253955f406380107754dce97bf25b89a44a275ee9760dcd26c20cfeb1e92d9d229662270fda6dac324f3208e22c306f4ad67dea0a900b27eb31381b8c560f037e0a81647a83bff06270c639adce20694ea82ac7d45509814e984fb839ee81fe7ddb56c46802b236d67e385f943b645c8c59b8f60bff2f0550722822bd23eb64eddcfc9c4b2e5c2a00a09865bb6f1d52e92c2f0308c2d85a7916ae116a4d391267b60aed475c8c9b08dd8ce2acc795089d16f9230892708d5bdd57ca82fc0988b4e96835a5a4cf9c139d52f3c14fbbd27e95a61b8cc6096346c4c70f47659ed0048c8d6ecb176907e58da0296b1a2f46852709d1bc60c95f961ca35840d40b444f616d6c73b8ead334022b7b840477fae5a34b89dcca91a85f157cde11a92e7019dd5efda4f6d313fbcbebcbac122041ea4b905c7ccd79b7983b3ecd4b3681d822af1f61c197274e15bb7905aad26b5d116d71a7c84534d597eeeb4a80e48c5f36da3e6e60eee41e0f3121437946eb3740c829228c73bef5402fabe752b78b0297bc6f2172554f2ebb1a24065e1e9cbae1c87baf4d13bc7f6983d084ec0a2e6bfaf1ae727fdfb4786b99e8e0190b265232471f20f255eb36ae585947278c51b3c71ab41f05975ca5783145be5812523eed1badff8a5c7256fe78c7681ed513a664b9d95755d919270e19f446aa48a385b4891a02a5158b63dcbae363e777437fc601c4134b3850e4028155130100589bd713f3a0cc066616d9b3da6dd0be59fcd84606c8784af7e60589ee72d333dccd33632317f8ed5ea4fc5bfcd0ff5d90055f0f95bfca1364795b25daaaa61cc73f98bebbb964003989c07b7afcd34122ddc68bc774ed4d1ea754168e74d513a1c47861a1b161e58d510fc69d9a1573112cd32a892f36a1c9d326543b1e79fff716121b0f808afe5f67569a887e08e66db4eb6aae83f3460d33e923639ea851927acb5efd0d82003e2de16a0b0af39c8114fb56541d7f1bdae1281e4ba75e264c3d7a6f45fd20ff2b533872e07716bdbb8752f9e702802724482adc9cbcdaa7664712bf0b8215a91b746b96f49d05023962062be70c3311fe2e46bd3398d53e3fbefeeaac982428fd14b38a050701adde4c84993fdac587608439610980f155dca8fcd3a801eb0f82e1acb100966da9167ec838192bcfd8b4eed255031688d46a3a7e6abdd6335bd6e81c05b95f725dd4202762c2392feb6ce4fdb233ef830526de8d619240c8aab303d233526c1e600362d4bb38308049c9dae442dfa07ad0880d3871b49261db02cafa307306f2b0341d3f49ed415b852087b0bde7dabc932d918b8d066d18077223fdac611aa1773e5d93e9fd2ea6a74879920412636c799c2e29b08003401453969e775245159a86c61dcb53ad908fcd31192259e315d4d8c3befc7f966eea693882425cb34304c6a78ca6a558465746c2feb21450675b526366de01dc9f51813c5b9dddd8f23f68cac8ba48b5271b00a97480efc69f5ecf1f2e59e538ebe88adec37a14627baf4ca83fcbde14f47c55b8dfa7074700df122e85bc80f59a2cfeb822831c4824a0089f3e0aa0102553b0d991a3adcf6c3e3689dd1a2698c9f13646b8de7b872fe19d3d730d6de7556d2f14afcedebde5d565af71d6fd7f7fce844bcc8c616c51e0c54092bd3b36091734aa3d9e87a5dfeca7d48533c22af84a0512ed030328cf73b781d5af37b726f6aa1c9cdf23e785aba7012f08c650c7e164536553829c25ab274cfbdf382b03efe602315ff7e0b5ae3bca2d1f59ff7e683cc5f5572d747ad17b2671dcb889c83b10206409b4a8735fab69a19c0958632a7fcea834add733c404008652ef0df185aaf4ea2c6c13d32be1a02538a21256e9c033858d37b7d70ed125d9ef108b82f902c803c6840aedbc243423b1717f20aa9eb266d1181ff7bafe7d650bd499eba0efcdf45a7140987b126ce86d8969b1e08454edcce7ff4a0d880b3a9074a862808ac49e7c4d3264c8a202ead6b02f49b330f3ff39f5b720ccb194eedeaf44d6adbfaf200fe69e837c56c1f4f6d43e80f4146858140ecd348ec7c2f1cbf317553b1568af5551790f570a2d23b5425d1e65cb287cdc3ae1a3920e5995c2f97416ab18a686baaa641840c981919c25c14c895f128c4859d00616f38af19623229b27fb189f716c2b30b80d97da1ab39c2ed7bc948f7a0631f2a9f398a5dcab097b93e424d6f2a158a2c3b761fb6004ecf8b19f378cd6162c1ce8a084aef3edcc41b76d8985c890844f67cc3516102568432974a0dc8e5bebf83d5515ff3189b1beff30eafcee2fe2f6dd77c7ea2899531b3558de4bf7a9919027f97a667fa4232fc0b042e785dd90ed7d1c66cea06662b3e542a8b91a82111149092f4b54a4cb4a63e3e93719478cd95572e87798a26f03c4cf9a25662f7363571293a674a069b3a9166119ea648628a251050f8fb92f4c8db20e3b46d98f35ed009890b5b43c48d5661567519800069fb1c5676141bb9e27048434763c3ea85f8ea3b23bae259a6079c29c53358c325c536266406823e759e954451767f192c35ee83764348a2f9a4abf0f8d4e267dd0608fcec3aa300788917752151de86cdca5ed07ec58055568d4b4982af15b19251b61802a34644906051a23bd2e5654859cc8f01f30db5b7ef73c42fe508767c6ed11fb90684f0f488092ba488ec89de70bd803e68638a0be51ea258556e15793aca714536bbc228a995f10b4d015cc277b383bc9cf63550f8d3c2686f0b6603eaaacccfa7dc391fa5f2223647d3129ea680c777e58cab467ff0eeefedf87653a8fe6e6c50d1bea2e0ce9b263db84360d6e13c23873e8300b6d8183abd8de8643d75535702db1755559d18998ae2a4b0afa05727c0edfe0c1b8d6b0cdccdd7846c2d6c02d6176c4b9ebf47edac0e5770e47f36a002caa700b39d14c7046bf7d52bb04daaa9c01ba337fdd5b91dc30d3923318511ad85aea305a37a68b0a6bda1565fe806f28ac51237848f652d54140cd35aa73ba7fd0558d3a6c2f6f8ce6df39583285113030e49478fbe314e626e4eb846fe4d1c828f7632988a75ab24e61a1d0b0dcd5897013161fdfee5fcc9857f1a765d523b4ff9d81790741554b823e51850143e2ed4fb820cc369f608c2b5a85797c6f262f8b9a93f28fbc7f1b0003f24fd7c4c6e59f9cc73c25fa237fc8fcfae5286d6f88b5e971a4d9b9a8c2e5bb4187c2c3648dfaed80c41ca10e4e7cfb6045b9902feef265a50658a3209c2897aab83bc7660d324d118d84b59d7c1831c1a70d55ac786a960387b00405a0c5eaff740d8dc4ba4452ada8afc4e8dd4d046d4310d90cbf3c8c89958d74c318ead209fbd7d6522feb7937a2fa3fb285fd8cb7edfee9e0f3ef40f8521e97b264a5a153b30baa4f735b15054115b632f44217b9e20f38d330b330e304fb362d5957b626f159cbd2135341182dabb7da64a6f30d204c08b75d869946293592610f5415ba220c39fac409fb1e04f14d9dc489cd806ef219c406e2f15ad4a3e07aff1160fd37276396dcf46675437a4d0fef55450933d442f7aac62d935eaf17bb3537ab9b6961f2f1fed60aa092bda76e1467ceb53e6c533e6179d4b0b460e8021e103737ea139380c5473209204e03535f783a70df106f0d80c863bb562d8174645a96fdd1882b4d401637abf35c856aef127da5744b85ce361a0c2fff1f3de07a445e38feeadf624ecbd6b04873206c9a83728f7b236ffdd98b2b30d0d4a84430b14468dfc352fb7f9076304425a5fb150092b71e731d9c8ba7e0867fc92197d2ba92b894c5a7a04bc45abc594892b529d0a2ff4873e50a70df8d0493ae4097baa98aa9907bd2d7584ba73f111f35c74cea38b16d4a6adcd3d54b8907b414ad1cc6129013086999f4b4a0852e99b26b761ef749543a916946ddb8d2090a122db989266b995cd443a80f673749367d1b003d59fa9655fbcbf4d46c8328939715c9565a9dc6adc9a59faed0faac801ce14a680aed2ce0e50cecc2f0106193964f8e8508063cb1fc11c108eaca7f1f08f8d5774686b37af84a0c96a94cc6c4024059f895ee2d8f6cc65c6c115d0274d8ca11cad8c496e4d5f8ae3d5cb3ddd6f0ece8cd76d728621a1fea6ea93b65108424f6b066a534a06008377aea4ccd8f39fcc652509f9f245b2231c0786b0faef6e1dc1e9cb9dde957b4491436931cf8f771c60715a5008cd89354d5079f676ee267d8ff4848e159bc5b14e93fea3a777c0677f11fdeb98a0de8e4e158d591ce1df8d55e2b360db2fec82d74ba2d07bdc67ee80646c93ed3df8a90148b34b7bfc551e8199d62f72553762020ad4598ade47f6c43ea1ba6d9297bf26b0ddeefb05287b96c1aade29daa9c2abe85950fbbff9621b8ea8882f266d431f9ee46c84b778e31e0d1b9de67c7ecb798c8c63931864c63cd6d46ab1b24e69d7240d9ff5b0953b72385b7234f8879cddaa6ad6e4768177942cdd9bfa59100d1267605bee2507d3162618f1cb0d949eb35534af752551af1fab1cdbc9f46d7f3a8f025e0e498a0a5545282c413fe4fabccbf42cdc776a75626c7d02a9245587a881e67fde3c35e79eeff5baf871d0dd0d8cb47faa11b72905e94ea61db4c5057ff4efd323774d857306944589e9dcc2ffac7a170592f79a928283ddacefb901c54d7517a537c22a9a7d9ce2bc1fa25ee38f4fd8cb38788440d010c55d030a3a8ad3d12f56bf7d14ca3a81ac1103e085090d74d80b3a94172ef063045a31c9e58ba6781a0a18b8e18dbf9386b82b79fccd321325ae7234efb8912754c9655ae12e05696c5293611f98a3a566adf28c9d873047946ce5902b58d88fc21f89e36d39eb51008a8690739a1b9159bbee6509fcaeced52c4d39c598a5ee1c4afeef9e8a64b4d57f0cfed1f488d2746c00b82fd3abd5389cdc70614932e9386eafdfa290a2fe1585d02bd8b5e0bf432fe8777aa8b5b596487f531cec4ed300a127bf5e4f4c246bf754d506a6b07ecef3491f34775acca3b51786ab6728fa27b7ff75a1eb680092196e443ebe63c828fc028d23e0f59e8322f599d1d1124797ce805f8eac3e99a484c01cc0e368a8b2869a8941f04b2f31c03fa12bc66a9613505f2a7dcecf704e6b41bffe3c77ed400db196370197274214aa2cbbe2f3d4f3482f711a00566fa866c5aaf3288f56614e919936985b8fc031cc7fb70f828bf1f438000a234089b679a34d1a8ae4390ab6d51f20c7173bf68b6086ebd9806d60c7f3978ddcf35f74a4c1ce3ffd09e1c3cf5afc4062037e0a004faa2ce980174e5d5f07d613d23a281545fd109a4f124aa610e0300184dbbb23ccd65e50759e102a3a302085c9fbb1de86aa05fdf6566821a70472b82bca51ec407b659993dc2fdd6846b22507426ffae754b0816b8041d80b66eb30c33086610fbef52012452092d82e066e045402877c84cc273438b050083d3c6f2013d0fb027cfc5e2cbf94a93263d91aa54dafe332e1a81be00683f9d87944f6e0bfeef9872fd53e348cab8d1a035495a7a790e03e5153c35ae4393273017d046786f6d0c3c001b77eed0a48083ebb70624cdc43dfc56f16e1ddd9dab7ff8e36e76763c915dd02d3821e7cb91d7a964e3eb9991da248a7028647b62224e9a37102c7130cfb6eb036f49395a36e433e0bfd13db74e313e66e00bc9eef1efa275c05394d116f94c3a478f22e00bf8f70de68cc0b4ae36545a0352071a2896a844beb18bc92049144ee45872561409e4bed21d3c8c0ed903f2d98c93b994262588559aae9562d6babe1bc38c0aebf90b310930becccb441b73603c3776d040437d3aed8a13b926abda34618e8d05be0aacecf47d17f6637fd2677e3c23766c041f420611dc84e4ee70423ab5fffa6474469282adf1b052cf2bd506526b899084f96b947f8de1ac462530602b9a449796af8f45a00ebaa24ccf0f7e612057fd7bcd02035b211e73b22abc8c19a282139a39b7ca88e3867e99362cdf5184ce8d1933078e6b6c135fa2cd6216a28f02104d5139420b8bfc51b0b81785ceeb9961479d211b7ed342ff61fb70f8bca97f70633e319c97c9c160b8d5c0a2197fdeaf235d747557d034a7c043c154c4a5f3494f006b6f15257b869f6088e53f10d13e4162b4411c438d902ec4e8bf1c799d674e70e3c0c08ca4c83efcac73b6a14a2ac1938d8b405a64dee736aee784d4aafc4ace6b316dc90b3978436c0ad0ebf45f0707fc64e3547360617ee57047731f43cd158a793c8e95f39c6ef8e87862c3c5f2aabec646b35da7b71d110bcbb035baf4dea48d3c9b76a76c9dae32bace33b3216bc6c4234245cffe0f291e99fe543c028b7ab6e9b61c253bd156cf0e32e68597bb67f348e259c9f381e269e6b8721c5ac80aeede15c69366b3f1272ce135c3de44c0ffcc473dcab46712d00e30df117da60431509090babec5cb9dc427d80d91204146596d5ab335dd5aa9926f0621769ac5703e31b56c3f533edec6f5ef3b3bac4639a1097a0ab8d678d89b4a008f99dc60d8bbfd76491ff1e5fe12f883c5d44dd25320bb14cc31bac5ceb7b9e2a5b2b0b7063ac2dccf09ee943e6b0a7e1d34d0a938d19a0e8f94059387bec610dcd86798c13973e077ad3e7e74845446064d8b68bcac8d03ea9fa698d005de53e904cf314d09fe6bf21913afde2025e40e07fd115d55a60e70b808e87d8175999f638e48617435008e405f75b1038fe74ead308a7f118e49df1dc300ba17bc259e54012988b4ed57a6641a7b34c780dad005484ca64eec01977870679791fe8669b0566111817d5c8b7bd41602f663e1102424a1a7e23a695ffd511d4e1e28957bc043a15c1b5c459bb200eb30fff750b00ffe7ca10051e87f9973c14cd31944810498fcfd053cf40e214cbd8dfc80d666d80780282abcebd95e42b3ba4eb172d89704b50d3734dec1f33a180ee55fd39fc59198b34b7f9950701d817990e5bc9f4b123a4ba6aca38a80e6ee751ad7eb2c557019a0c9046836e2c530836fe67d7285059d8ced981f2b9738fd18c54ac7b2aab320cdea0bc1ac8fa5f8c7a6cf6eadc6006c8dd3c20b9419691180e3fbb603762eb2c092dcdbacd89b08400dc0c9e6674141e2010dcf1025015deaf069ed980a60c5ad2ce2d275eb5bce8010978d0a17725b44b88b4690e74071e351a6036d9f07a9cfb00df63ffd69e7fad94f142459a3b543c5ce3a3bc93947ca1e25b886a00147ea8649092135f56997fe50f552afb36a838a8149f04a60752445e8349a5556d279363d3336a3fe2f33d59bed21b8ee6f3ce051f77ff60541f330ec95310ca0512d005d8533aa0e3546a9708147ccbe239896d3f018da74e5869d0a23ba004f44da01491ca35146750f3a22da433dfd693b638eab5a3cb89f5e3be33738c40d4913812a8446198876dcb2d354696f82d55af6bd440d7555906f28af7560f3fa060dffa63f95b0aecbb3cd2098d95856c1aa74c62dad124df7e02fb34cad6b5e13734c9aae60dba897b9570ceb1b1109a79d4fc9ecf24ee2e1d61af686e5f1cfd2717396360f27ccad49c86a7d849863c61e16c2c517c7c1ad32a8dd9da5b3424ec50c067a08e57a320d931229452df5f75840d703925e84187a7a5704f01351aca4557d4aa1a6a760674f8db177fe215ac116cd19c7202d1f49ca10f39a78bafd656682b1d5491f626ee80960a4357e21bdb5826e9b0c25d47fa6b5de30021744921323c1173bd4b1c6fcdc33f614922ce28bb3b95c9f49c85b606888866ffe5f1ab4183519e9315375fccc12e5a318724c6422538928da33e518ef6298654594ba1797cf1ceab7846206180f87b3cf4143f5fe009d68e0e05084830f3e8bb8514c6842a51855dd3da2c21d1de57a4a4919a113fa0b28eb108fa4232abb16301e84aa976127ad02c29d1f2430879807530b3d521444885a328b2215802b700a14e9698fb12fd20d4a61cbb35e01c3f1164605be8e2ae3c68af08fb5166fec9f73c16a0961f4b80f1e8a309f3a29aebd8f244ab3de993cc9b62e114eebbaf78a41bf549a37e6e4d0df01b9efd79507d826f06d20913617f090cdb3e621cd10f252bfb9b25c0cf6906d79af52308fa386be9c6712795255ff9d43e0b793706d3323dd3c0e972041abe19f1452822acd69a3eb08e8c4435d16935049d49c439f2f5d2f9ca5d8740b44a3f7980d0342ca8f2f751580c1a686045cb2dcea61a08e7e4c49064a075ef3cb185b62d457fc155c350cb11b86e16186252062be194817cb65a8f2c493484619b9e508fbcfba67b1bc5ebd54713e4a62187ab7c342498f9c4fcdf9247964cda652aa9d38ae973a7fbdd54ba4b4e24a011d019950749cf51ed0c2a68d82b7adf99227be0ecc07312c7b6806f5283509a15ef6244939381a9ada211818faeaa52d49ea5b849d8e9bb70a9b4218a4981b73e4630f24d7fd2d1b1cfa1b2b21f140b0cc8680ddd93aa20ec82f307cd66f6a2df5a894c4cf9c0d29e11f431a6b176c2cf56fdd4cdcab1ec0f0ad4a003743070ebdd10d18f7e12ff80b3de288a82ad20168531596fcf0edac29e8464d435c83dcdd9a86d42b6442536ea198aa180001973d1e88973aebd7f70dc112cf5d489e6a1f7f920b507d6ad620add2b28f5308d6abab362b815ac4c44ae36f215efbd81dfd5c90e3f95939e856e5e4fc29393a52dc19a9b92bd606fb9ab98a3af016ce1c7d2bb15d582a070382ca014d344520d7768e6033bcb52725f55c9c214eb4bf4ce7b8f6047702f5d25e2d8386cf811dcd82a3ad099f1f6bf90fc674f4acdc3dae6a1c5ec41824d9872bb3560019a4368588471e24fccde8de7cf92643758aee3be0b0191f95107f50f435c605e858768220a3651b226a830bef62e96cb571d2233d68abeb921e883472b472bb0e2d9a096142b0b6705bf4e08edef2f86f382ddccaeeb7dff6cf05f88e1a4c9d9868eb44b328bd89e1f2979ce5534334cf26686f27b75cb43b4718f83962d28f74ff352e5a54ce2ea1b136445c865afc010bff7763a69c30204c4bd942b377c90a36aaeb196466866443b26ec18a17aeb28b0e5ec185fe434774d87054e03f1e761054256dcb1c25ecdba1991172c00c856393d8197ea85c914872c4c92aac7c70216b9725b4cbefb2e860621b7b1ee05073c01cf368249c70596519263fd7eaec94d7186f2f6293b4c2cc700e275048f1eba75c9c1180277f4fef5b28be1ca5f494e9863d95c745331ff29f45ab1e5aefeb5b855c69327b8e51bb9ee338f0c43b10d46dc70eb43fe475615abb6a9bf71716569d885953e1764057da83b8ee5a2c2aeb88ebfdd5894231bda0449405685f75bf1189ee4614705ebacccca0e730700b9e902f1aca5dd640950efe46b26807712f2f6d9f80b09af439226cc45a42556fd31fb93266aa75b4d4ac14a78aea37b5c1897f6bdf9c27b4426ccc40a24a5181066520de767345815ac4d303fce455fb2147456a205e75cc1d36cb6840b802046c941fbb0b1adf6808059be7d1e74bfdd2755973b30b583b5d8e50d58374512fbda54bfd36a01016254ba0f53cb409d5097aa43b00a2fa7eb6c74fbcf0ef087e5f8f9fa4f82bafd7b8f10b522f73677f0a7ac6400fe59f93ce225328096846a6ec3690e26853bf9633946d45671af5671078770214c97a48cbc36fa2d3b71514ea8d51cb94bd191e729b86843e85cf697bd5dc5202b3f71f47e51f1b11cc3a6efda04f25515559502b30b774e8e556fb224110d56e2617373f4a5d59419ca01deef382b14d93e430148bed7d5b279dfee741f2003c13bb3017bc5a42ff11dafe373846e1773cbc1a90907268b406b59b110038088351df85dd4c95f3ad811e13b859d6f7f67f72ce92d528c55e0d185f5377381b3ca377662aa3cdeb9266678a408c2a389ee599358916e64db51919d029c511a49acc8178edc77a235e70f75b7e4b9a3f14276459905927f8f4a2d1870339fa05a77c809368a021c98a32307682d534a193b4795baebeb70eefb4080e8f3a0da3f0ce6b4e35936fb0d28a42bbbecdb0e91e69ad2bcf016678154d4e0de6dd148fdceeb65c08aea91b8a2f48effd42583d0f28b6640bb718bd966c9acb48f18a5c606e2fc996c8c724778970041c944439dc41819031f8e7cb370b7e092a2688546acd931b960f7c4ec1c5bc7a9ac3f57fc8dd206b7c327675581c22fcf1a401dc5e5aefcee0a73fea0a26c948b43bab8c6f34b64e2ad19ed21542ec7cd623f8e0a15347cecf8765cccae8fc3d24b6bb08d1e4303fff088757e8c0014cdac2551711f782ef3ac212687fbcca04fc1e54be333b35cd7cf8a44553cdf89b7d8ec20f6b9223e677f856686a0fb1f9ece254d84646d7b8e41cd72e19ee1febd4dc0a00bc94481f7b71e6beb7812c8e4d7a03f6608c0e8f80257be1ccb6e39fd29a244e58f0772de6c4560b11bbf461b11bab052d94d7928baeb72d6547a5a06a066f10a56569604a92d05d960e55ad516caa6be3fa4e0d9a79b10ebd93033d07e7dd9e47820a3d37b2ed18c65e184f1e7fe1e1f3df128b3089831eb0ffd6712351373058e1b5d58314954360fea421787eca9964af410978d766a8d80126c5601327df2392e54cb6f4b9bcbf0f58d97f3eee887aa827bf06e6d7032cf510fcd4ee15d49f6c76a1cd053bd0a5dcf367d7a820cbd60b149bdd9b9b344b1163000720255b4629091a315db89a3c185b7418c4b38f961678c42237f85143b4432041d4ce9543b4e25dd0ba29f3682d6af1146b67350b9dea91546cf5e13f5d8774a2896979800d63f87751825448cbd02aacace2f5b80d159a662310dfb40f44a8452f5792894d96f5932855138d4b859beb39d0030d6f2904bc3c78061ecc23074e1f435061f9b2c2461a9c43cd1daddc44ae9ec229d2e786bf617ed94f5a85c6ab334a483d77e53246baa6992ea191d14de01008058f5fda48bcc0590cb23bfeff7756074d9acfa4462960d45fc2221886d07f6e64ae6d241d7ec952d845dd730a750074c1d1895228c1a50d8e4c64e9cdb20c17cb9e66c84589b3a6bb31871c2a48b6b7d0e7030479cf8693a1e0dd437c4f03a576dd24b6b252e797cab6499c42fc30562b9de717c2ded316af4da83591e1a9336080f8a9fd004ff3e2a4cdfd629515220610ff85efa1311871a24b38385fd80e58cf6244b225fb75634d1bbf47e08019d56d5fbe8e6447ca87b887be8a83dae6ab9da89fb09d81254f11441711dbc9e6749f370fa5d22d8538fc0b74751a2409189e9fd9464a7860ab02e618ebb15522f144f188559fb714f92f2cc130c79d52b42e6fb590f725e8fb8f74835d7b25529e56d2016cfd4a7735628a5a3a8ed75d9ea29e3dcbc927e0edae320f4c8cd0ead703839fec9bf3c0f6ce44ffabff094811a3c9c09734b57a2dee9a0b558f05b53817003b53df8ed626a5cab9ec6312345acb348420a343d7219226e6c6cedbc3e22af3ffb91a3788f5ce1f723c29bbeea910a17680d34db3e0af7183d19052ecbb39808e517182ae48ca8d819539dadfa8163440054047461129819a6f28239c914913f8de5c1e5d887846e4ebe1c7a54008e4ef029729169e07e1f8938ce59d77530a61661eb06d9c2b4410cf530dfd5b8c6e635d06d0b90cf537f0e3322720cf0e7212d62f797031ab9ce9621a57618fc964bdfe1a4212d8267a12852fbebe977be81e5253f1fca63095c7ec9f0b54e98f6f89f68b1751ef69cb2939500b5a553c9b3b64f25ad0f4bad68811e84d9ed4bef6257e2eb611af635e62a1aad81e6e3a7bda5a28c1c60c8575f20e5cac0514444c5b6376bae59c5cc05d2c64a034b432a7e999ddfb39b87935bb8ad76bc2293ec04f111277b7c150abb1bd3bcd4fd1fd6079d16feeef889596cd4280f756959f9ed725a031ffb47e501833789080a6f0028e2e183e1319b6923b25a3ea785f8effddc19d3d0e41478f17e9f514da363caa92c00a5dd60f77dcf2583059717389c375bd457549194f6956c9146f6c06aa82bbc51bb8303c8ad9582eab2f315ec9c48de763820393f6ec534de2543ef99922aefb00055851b1f90414588a61ad23ab01cb3a6163bf126fac232e122a2906f3ee97cf24f8af0a11d9e7016c02c74d4e0dbdccc1c4f8162a103b116f62bfeecf376ad519bef05fd95ead94ee07ae826735c04a4ed00db45d364919fa21f28a3e869fd8ab3700b4373045f865840705154d33b7258b9c404f5dacd1efd4c7fbc5047b9355f612d01407bc4dca3bd5505300a8911a9019501dc848f8583f12166af0bd989652c267917ff314dbc7b51f78e69098781ce007196c80d0751c43d14ff3055fa0dffab875a7334c383a1bfc4674f7c1f2269b51525f03e293fc3eb75e1c4bda93fe15cd22edcd76c34b8c8903dbeeb5a145ab9740d591ffa7ee5c3d81c46d0d4099b1d3b9d74b46c7337a2eb3c18f79c29ed9f39ece11bab43182f6484a3b217537c2051f5836b207790afdc4d167ba4f7a9edad40edd723d175bc827bf84dd811d3491e3a359748df7e98ea09b5d77dfbbb83b816f2e57fb6f20ef6bd62defd6cf3e57dfe0d845319301b88e16f180b338dd58b4bed0e048a0825d961c891b5247f30531045417dbd980727bb00ed3948f27ef05fcab2551a5b3d34ae7b134737e401e952c755b1f796fc12976fba1c17248be801a2fab232d4a4b8e22f8a4177eac5224b2d3e17604cbdc6359f61578bb27748e7c415538a5d1440a6f99851ab0571ea29c2cd5c3d882910d0f084316bd098e42f40292494efa016f3b451fa60221fc02b6958de4ae349019efc13590aeca088cab6f66ff11d9b39a2b1fe26761320ae08e705d01eaa7ccb7d43838d2a97a6da9d40bde3efbf8788550fe2e799058a29a1dc86ef54a0919a4036016c54a2dcd2294d2e09e8b80b709b37659dec025528900852d326242b3f24b964a8b36ec09da792d1f52755431334c233503569837a3267c818ffd4c280967b38f5dde0bad8ec1fd954fcabbd5a52f851e536d3b2cc77e6e375081f27489db78a7cd9af4471712ba623c0d319b9619796fd508efc82bbb51ce064bd6444ace8298a19db8eb07b668cffebdaa2ac441aed04dce3166762846b08ab4865aab61694d79ff085e9e1acb27d2e0cb4609439cd8240384730ecaabdb4a9052cd299c502e170c358236fddc6e22eb64ceb2db9564cacf7df3514c53ab983b379570b2dbbad63ebb4696f72761716ccdc97c34bbfdd50c118408bb4d0fbc08cc75dbe3a036745ab7b7fe3b6f5c0d6a7f2a04ea314eec7ce3bf56b5efa8b54dba7aac9d5017cffe32597dedb53f633bc4f603bacf16925a2010334e072e8c68c874be0062cc6a1ae26667c7f07d944fd18b88d525f61003ea1887e7917d23b7da263e41701853279e53b474015834425009e65a90a285058c9be168f5d58af7ca6d62f76ddb5e50db7bef2db79432252903f108e508240935f6656a08e96b2ced369227535e901a661589727777ef81f52247699a6b6ebd0756b35a6c962f6c96dc0f438b6dc1642a1b633599cac099b3d0c610c4be463984821c9added799e675ff645c3b50c16a556490a6f891d752fc626d37f10145c40c105f972eca84e391ec243558850e24b8a4865f245cac9c4d8877c286aaadc553eaef271958f8f6ad54d81bd1f7dad534aeef9040517eecf54f717bc790635ce0cb9efc0eb36dc73ef815ced6aff84acdaed2bb8d195ca8844d9387c563e2b9f958f8d75fe7ca66aaa542a4a69d775d2c7c7a7e52df195ceec4f7d0b3b4a2ff67e50efe160ae68621647b04cd341047e6c12dfc67e168e09c834d4c291012639bd1f976e946ef4b539b539b5cb714c88da90e99151d27f3afdf6ef1a3297c8a10d2a2922b60917a96d88df7025452401a92d7452847f66cf2cea21b2d64e4b860e78be23664fd1759b062256f49a45f2a687f8b368b29e2575668fbc6942f69b645896e3dc841e2dde9ff9d6dcf065167980276cc666d17ca920b5e42cac31b5b86ddb26d3733ba6073aaa350c1e65ac8646994c49721820e514b24a6ec0aa45262d78171d721ba9a18f1c93c964aa412322841e5da629703278a65606a7145b21884c57a0c8adb1b41fb769975628d9092245a462d122c5fd94231b20255332f5e3df31d17e74c0a48e5442a272a04c91fb4969602c5807ec2ea216894c36783f7a1bb8efbc1f3d0bdc77af29216dfab526726b41b9b51f79d33674cffd9853b7f8503a59e89efb163ab08551a8fd58a1d98267386a42d64aeed75a370447d97217b37b75f750c80c35673fc72927784121d3840c1ce776b72b64ce29ed682c120a996f835af41cd4626badec44d205cefbfe202c79d3401e0e5863693f2d6a3f4d42bf8c1578d47eb49fc691d929a51cc771da8ff663229241a2c42a31712fc626d3bfaba8ea7412c57f9309e397269ac7af79fc4a558e3a9da8ca3e7de9dd05962e4da488d41ed84879371c4de1f8aa1d1569e8e219aa72a44b154396cdc90569d1829fa50994286aa4a90e7da22a2ab0e836dcbd18137144a69cc9eeeedbe2b8992ce551099994de3fa1a36166fa1bfd19c4e5448d73dd25ba8d46a41105391489b264a8a44b255d54256fda16c99bf69883712f2de6b817202320d27daae0427fd682aac747c593939353adb59ee77954455525964c16ce5d4a97f28453083d260c2649df69286598ee188c02b8989614b93fc59d52dc8f02f07efbcbbd7c6e9b29b0c9f61c78af94a97baf37531cb8b383e453dd2339a5b8f738239284fe09723cf2462e60e48e64998091cb21f73b8aeb714e0729f637e7d3819d1a813540ba2f92e23a7023023797dbf44654333770db62b939559edc73e1f6eac20df6e2b660ff7103038fdc8a5b499d39b995087916200b20cf932ca1fe7c1d12b5b1be54027d1e6923b309487aa48dcce3fd311590a708f53796a32acb6e2cd6c6324d6ef5d3628a5b396abb17d31184dc2fa508db6b7be56cb0dcdf291ac09a153671f56db99fb9c9169ab815f67af8d9a4587d4df048bdae9aae681d52038f75655aad569b197724bba01bb24811a94798e4509ad3001246408d4680824739c29c736a9aa655b759615cc6cd02b833cb2964b4f20c6d9665d9bdf5def7951b91fb391c33f23a6efbe7b6cfaf8d1b755e8eb885cec361c195d216a44ea772a60c320e4986aa63b81e83bce9ef84c0f6afa6695af561b292b0187c755bdb62ce15c03a920c1e7d6129947edde6fe28545d2cc6a9fa18ecb7f673b6666bb698ac6aa5f9826bc7711ec7791cc78d469c0f93d50fd08475bd99712fc626d3bf287235489d4e809214cf14315a29225d132da9fb2366c5c4a44eced07d2c9a9e34095ee0ae06a9339fcca013c812661352846e3921e5c8fdcd4a02d36779e10d59c06e3359b33587e6acd6dab7d666d65a5b298bc5459105e9e53f7da98a29204b2a2a27b2c3709ee0cc3e539036fda3cd0c07a4f433ef2010d27f5cacc50693db676cba0ad65cb4e47e923b8806191c42f3a5ffc0213a9e1424e50c3c4ea19ae9605a1c390864e649eea5c5be433e3c6426d4f1332a0c438b2de2f7d0614f039ac2e071fa7c4c60a12b83634c9e90d0378357a368becba3c34c5bf0e8301a70a85172faf69f133c5216a5413bca281195881ac761fd326158c3700c47313c9d726ec0a30bf90d7cca4495b2e8c273e067646723f39090e594307364cad2be7389c8517eb1c9f4622e11e5ae207d4269206f9a3e316dfa73e0d3454f163c53a88ada2077d839c0a30bb9d0503f80e7534f28175ef227033cdfc13a9d66da32e2136639254c16180bd647f03883382360a818f1d28466d6278114933a2350991458f043f3fe354ba11ee0c81c0de85edaa69fc6613f5a61ace491b21ce6555096cff65112ca2a235396a31c46e50626595251bdf23883a6cc51459e418ea2540a951b5e546e286ab191258f9415d4935bb6d8e0c93da99412385313ecec200994296bb36abf66b6eb6694cce7e4e38fd697d64a8b73b66610abd538548a874f82841a67a86975f9f54ef09fe1018f549504c619697915526786de86bce913bcecb09def093c3aac71aa10532061040779742fb9ffe38259de38d5fb24ce8169ab451248834a20657dc1e30ca2ac9d3c5216cb6135db4b2dacece98f0ea3b058e3c81c43df0d0e8cdbc02365d524c11584a1c5aaa56de6572b6d339fcb0f9dd9ea07b3f22caaadc993eb101da22c1a448213da7a967996591289c532c0159c53772a0177028416619a642fbd0b64a1ca893f1127f3a70b99d67436c0fef36bec17c956ce69ede4ba29ad5670b2c768bfe059ab95424e89ba9eb3f255ce5cc5649a2fd87fe593893c7f72a764cb3187d65a6badd7c1d55cd996e5090a0ae251831cc58347108f201e1255a1d4201e154a0dfa545227a74e216b152d62e0357e3f5c1414f4b9518b2842eacc7f39e0d82287178cd17345ca71e08232aafcf045d04e0e724e39279d38ccac668ca0f982ed73fdc5da8e498d491d529e5fc17c2da9f3803cbff640a2a4db23798e36499e3cf266be9c3f63f2f42188dbcc51767094393470111ee56bd60f7d98c462332b26605dfcde91eca608ee518ac02245a4320125c571e008b5d67b4768b1dba63f015284fe05c89bee4e51300a3d8129b5c82c72cb2bedc5bd125fecee2b294211b855785a74227da7da5329de72a1fbb4feb8575f4d98a38aa4e8cf98b7aa771aa7e3f146a0d492928d5351ab54a7c46d2253287ec48fce573f60ead27d523a7241deb85090b75cca1367fd38ca576ef302892325fdba6a1caf2245fa943ef5217943ffd3f2c22e4f6e43a74bded0cfc2511665faa3a7f886237e0d55c0dd867e95225307fd2786fb475f21d122bdf7de9b65bef29f2e083cbaaf1a456b6ef655a6cfa2ef41f47d45df7fe8d7d111b793b5d65aa5ac347c03737286237cf2c711f2edd06406963fde2642be0e205c23b36985658f190a39756a60f9dc27056e653f81d88bdd66fe4846b6d8618d09fefe35590d0bdb6baf8536d8df5ea6647b3d8578589342a9bf3b145269e82cc45f0a1161c94dc15276500a11f1e4184a59fe06d6b0d0a52e58c382b5217baf05eeb3b00648a67d66c316b62e6c1616bfa76dae60ca38156e57516d1a07277b8c5d8f4ecc2c01abec95697b7525cf09739b51ee8ac0a36dc1a66bc21cc57d1cb284aa8414a1ff470e89aa4b489bfed3e9000700a166c2b22c038fd5955bae7ec0eada964bea8c1c555b5c5857ae32f0e86870540552075902fd7e7f49545db90d1a52a77e0f7a89c643541710d92a0c69bee0b17dc063d74e71b64bf09fd5354bf0b07fa608fd3dc38e81bce96ffa9de18136e6366dab9036fdab2bee16b93f8c58ab07a185b94d4bde4c2145e8ffc8c0de3f309828c26608734af4443de43633288f3fbe508b6d87a6c042382891c79ba9cb6d9afbff9edc3ffd835d19cb81c74e896dc5f0fcae476bfc052749c0aad3eca69452ea4ebbc3539d1267850f9c784288284c768802c427051e9b4beec2215c582415f345e6c7803de436b2252f171cc27741d4f483350e6b1108f7dd3b08a4eb7e471559a58b3cbf611dcbf33bd084e5c02350749bf95e97061e3fcf9729fa038424f028d7f8d3f79755b0012683697176911be6a563cde508fe155af0814237043e390c99beebe4be1dfe02f084b6bd56af3b0c5fee77144da9361eeec3a6b9a369f7de7b6f966de154f18029c34b1964c02651f69db95a268516140dc12096a5f7233c4d31434a1efdc78c279293a51b603945cb8f2acf2953ab3cfa4f1edd27cf9523d1381dc5c79fe4f9eed3a8eb01c882493003ce9ec31129c2fcf16ee1c993678b4a6ee0f8e5fb5aa83d67bbe9fdb036cbb2eb819004d6fe4a296aaf79274879733ffb0058c1f733efa96a71fed6e1e4c1abc6d942d37747e800c2f2bb15ceb20ca4e16621dd6f9f53e51b937d47deccd7b1041ea7efb436892ae0a92e9c4415ccc2b15d33dc4c5f820d98a14509d38225e389a768b192e7e46eab32094a30b31692607b133a6fa009336b52de68b7025a38f67b7f2d32c375076a713a6a1a31052153734e553b2bf49f16e77c52111e8bfc84d0a2fc18780bbbb85b24759f76b8c28e7ded8ba4324a9fbaa4ce4ca65f7f2a2bdf2c3dcaca3e7a0517dcc6df82354eb04cdd7702247b7bc321377b99ba0f42136c3f0b9b6caf016911cc711b7f0df40182439c00b19f85436417327a70a9523614ddc67f9b03b7b04219787efd1ac3056e10866d85ba42e3d4a4306b32cd9dfd5b4565f0049e734e77cfb22cc3c288973b084ab55ab3e8e8d1a1e4743a9d4ea7d3e9f57f52f1047154a6a5bdf8645ce8699e5ea7d7e914733abd9cd4d097af174d4c16bb3e8eb245de4b47ddf1b2eecf2af7937680c7114ffe806c684b38e02247655bcdbe9b02672db7e9b7560b3279a66af2481d1d242a2323d3c1f4a1fe78b26156145a57518fc2513465453814b1dcac284b56b4c2638625db22970dca591a673efe7c849c5396a95452c716c91b231265c9b04599ca160519e18f791670c8c2bb4d036172b5d837b345955e70848c66e129272bcab22cb345b6c816594a694c0ccd8ab2221d3da525a695c90897cbe572b95c2e4749d77fbb6868fa95dbd5b05136a7168e546659f5ecd7d7bc1ff66bad63119f2c041c8bf864fa36e8f82134e1912229d3cfbce9fb456f9a97a886e2adb8db4def047a63436c50438b9d948ebfb196d47940ee99dff13bc221a61d3540686a9ee68ba43813d8ddc36332fd075f03d600e1f135cf23ec9e9a0fc26605edf81d61affa874363c4d32e4d7563da8ed62e475dd7c8e5baaeebbaae769d81c71bebd52af3028ffdfa2edaf1fdad65db0176eac61c95c162192c8365b00cb683b4c37463a41d3b4cdc1606cc95d4d16e0da5bcb93e7c0694291d200d464071446af610d79d9319af3e056190d9a434343334343433f79a6e91527f52605d627aa4ce0879a8a5b45966efa572080598d0ca88582c168bc56273526a8add8bf17f7f8e6cc51cf51ffbd8c73e669724c9a215632821456a0811199b23e5647b22a720c68822e5e4fe7f2c2675bad5e325e98ae115ee5e58ba8d1498f4a59fd482c95436162b918090bef4f34ba5d20f8979525822954a5a09a4a5278543485f0a6bbc97a921a5aff12addb41269dbb69e1ac0c91373d12f24ca613032c2bc280f3118cc51da1764c45e61623cd81875d1d07ae1c225f7cf0ccc92643db1d8b5328f6c98f1b83cd00206380053c3e5e3732af5f7d136966dacfac89b586cd5b5cc931ec3bbbbdbc7e75e93e95f144f2714dac751a79328fe8ba2c8edb4f8433cc100871d48911a42a40173342122859fc88909155c524eba1f7396e0418ac847440a874efc65ff50ed0d4ab47214ee521fc1a32c9a49bca7a008a45016e2ef7d1b52b29cd206501621cb29303099c5ba933559dc095e129ac5108549288f04a41999863309cb6dfaf1bd9315643281d2c6df9d01d95bac2c64bdbce911380a004a46cd54bb90cd507327fa107d741ee590fb68514a49abf7837b510e898e923a12d5411cf193bb7d6c203d7e1b64bef4f36d28bdcc8fb2a8c69f05fc24e9d5785801fca407829f2423450a65525a6cb5d841198c49afda87c827784d200c5228538aa5c5061b086c96cf2af5335d442d1635d83e452e1415d1ab695996619cb54ffb148dfa831748297d945d3a8a01728a1b934303ecee5eab3b25ba42d343a364be5eafd7ebf53a51fb72d4e9248af8855f4db305a776f06283149153103c66a49c683f62fb9a61491d9585398af4f6857bb229f3b12fd25b6bb3f79af9a32f92f240d203f19ef4f349a41f8543464ffa21314f0a87c8bcf7433069e33a124822850158a60a4cf3f8b9cca3c0f7336fbd1466fefbe9a9f0fdcccccf843d5a741ab0c2fc3138b397fc7d72e04f47162c2b9716f163d01e91373b3ac2c08d832f563dc775edfdc0a71238762e7de5d2385fe3f87fa0942550c74b0fbf8fae63035115dd699c99f72f55c15cf20c9dbf1fed8edd913a8d2573333ac071e6123ea9baf7a73d8e92a98e0b47f1bb5ef317aef0fdcc8f76c7eed04e4748552d7a56e434fe9b0b7fa1103ce29ff991aa3ccf927151c6e108c3f492ef73f395f15322493226d293b10c44f2f7181c9d2873dffbe8cb853c1e851d3219639cc23fbd1ff84465a79525feef390cce8cfe03bd9f0147cfcd2ee6036f8b31e1d8e5988f792947930c08fe901de52451cd32ce0c1ca97fdda179b43b32e59ec13e22ae95a9e0c0caf3c50e410d43ba974e611dce17101e9b68be888ab8f7dc585c591ac7ebdebd6ddbb64d85e56af75e6edbb66ddb885af4223348f0385f93cb9016bd06e92f578bb3895c7ae92cd91b8bab9ba85b5b51c73083dc5ed332e99b36bb679117ecfed5a96b8147c925bbcfd044150a277b504a29d73f9952d5246a23d2d541f89069eb9029751adad590a3ec8fdbf8fb4889602fa221a2fe7117727d5aa5b4bc20bbcaaec2e71a5221bf2bb7f1c73cc02315cafea325ca930ad1212b97a8c80a4f8a31a8744da1f58089acfb78cc91c4eec043dec8f978ce2b8b784c6dfbec431ed35a5adbce1ace9a6b0a6ab595863d1a15011e3f862085204094812a5600d20204a82cda4282d4b919000066e4d73d12c9b6fecc71ff16dc1de4d1a89c1e59ea340f78cc29226ffa679260194616913a715c7aa9b440689d3d18408071c4370b426d94e5941e2c311165aefb85cbf4050c042ab401218a1862062b90c2c30e1d40a3063c643c713285cb1457e82b0433d258638935d068328309b09a10a28b2bc410c3872f921851f1c5138fa271e7e7e4d1847b0044960bc8720a98a27cb39c02c64506ee2ccb5cdecfb21866a86188e632967b6a699b79dbc0546a99af59a41d5134b9c48a5aa4c1c124b2c24dea3da594b27df0ceb89e3273ef5255f0a79496b2dcaebeedb42ccbb24d9b598f3cb37a7bb4383ff4f06dc0dd3b1ba7524a69a5b1f2d1f07bd8aff4eff77f405f05fad2521a82b8c5aedf55f0e65a6b28294d756bb986943e0d4d3db8c9b59742bbe7296f4251decc8f4263a5ab4274eeb93bf74cb30931997ea5999b5e0a3d3d1332d0b3f4a6bc91548e3cc933f4ec1e8d24c83494f2667ee79ed1df1fdff106200ab648f0f8cd8ec6600b7bc72f4f123cdc577c52eaef733e0d3dcfb06bb1ab6b66091e6947b30c43f2a51987e25c7ac31aca16a7bb97c1ddfe51fe955486340c49286d81e72f71779774f61728e8a82207861cd938ddb4ebaec1d95dbf6b8f3aacd53b618b0ebe5cb93c7c89e2d6e00beb0b3d828bd982a5bb87a38bde3de577cb147287a30572d02b8c1c7cf9313939ddd88f4765f2ccf9238f1e3cf218c20eb880909d074a78504676389e647f3196e4840058ea9231af18591bf10c47a88005c6114a767ca4cb073134da8d34dfaeb9689cdc7fb19729b9dfb48321bcf4e4fe7e1a4216217e28620933740083149d543205028e4c337d14263065caaff8c60bff10a58b3c9e9c10b25030ce72ca1b4f747823892bb68479e307eb0493b29cf286ca0c37dc28c231594e71c38c30dc70b941e4c6cf109c9401cb29b8bcb24c9653a811bbf796d050b1001f1123994144cc2a48260c9e111144f80c2e907845b862cea0d2437784cfe88c277ce08c88796728c1c35604ab3b8388241a1130ee0c1e7aae0bb6d396303d1cc1da02535244cf192b5896d5161cec6004eb9eace88b6f878df0711b79b750c1e382a02dac1f8a88b9b1ea36623562b4c2e8420dbc59d182372aae139c4589823d1974c13244f480b72ca78401c416611cc9aee06c8e0c66b56099315678a4c56501be594e01a38a0fb8cb720a1851e4f19483c05e9653c060e5996a0366add62d2fd691e5942c2cc834cb296d58c9a3a955d7e038cd6f4e7653d6b65e4aa95fefee9612656bcff69ff7ba3f1d4d3ebb7b9b690137ce3c5369cf6a6b4f9bd99e594d05668afecc32598645724e06bcdc652b7f825bb632c45a06333727ed3aebcfecfeeda1a9c598110629846b5a48dedc16c79ab9987166307338a627967574e58dfc99b9d1a8d670c8095234ec22def767e4757734842cb951d0ddeadb18180ec25343dd1fa594f7662158edd6ef0835b9c6049e2fdfbfdfc196b902cfbf2d8eba51109e3206484ceafe96c713a4a4dbc8c72329ac37adb6f346314f8080806a4c4c0c2ed5c754a6c7abfda1404042566c0c1c0ed4d3eab1f387064032a452edf118fcd0a7c14721db89b4e90f0cb086510c6ed31fb386db59c2742245e88f41eef73c136aa661126ff25c47692eb88df6040c41bebcbe19fa0408080808887a5f6668a88a7ea18919e9305115fd62daf1c11320a0bb06d0970f6ae8114cb1f783d63c0102020202a201100f4bbd14ea137d33b0d9d5a0d0346de3c18562db368e07170aae83a2eb3aaf8b06c58dc31bf99c718c62a0d0e288c137c481a714e94b2943ba210e52e9bb61a693c901fb68060a9a98d296d94e436f2a7399a366528efa52f2ebb66d5c49731429d555bb4c46782225049b27133b99845a2793f2bc1ff6bd5104fa5a919949882cbf013e18204b983e3952c7e5ac4096d2421762d8c013896984bc690f8778358c62ba1b3ef6947c0a66e07a0b318e1aa5e48700c45b81c3325ecee9749a408b28c874a93b49a5ed4d4db0112c963ae9df4c4a228199bc00cf60ef870c12ecef9dc5dd5134a914124c983c13266dd32f998c9ec0f3c7c924b7a36852f2b998cf0936e17bdb874b145d4e4f9e0d98f333108310792219e7eaa70b1ba33c4ea06b058b2bcf9f455db237e7cfbfb825876253c50a9a2f589e5de6c064ee290723c21fad226b5d96c8dafdccfb71e9d8e50c8b3c7e39fb22676b78c9191b58e46c8d214cd64a2a5caad40050b1724c02179eec3e00249e90c10ae8b1e93474f3f4809335b6680316c50a921c68500508a1151c43eca4babbe919b9bde4eeee6e3a3f8429bb710c90c72e8f3cb650e3063580b2a7c144f66f32a9f0e8a1831a204007afdc6ffa168778f5e07a9dd19809e6f1f294c70f0d160ca191834cbb2e9cec31d656a6d973f7354bb8a1afd2701774d91c9a2564e17c4d11ac903a1ece3438da9154db66af0c335bade5bd5f4d1dbe2ee52ca1becc529caf551589535738f5053236bb0c9037edc930730e2b87f6f82faf6921236f9aeb3456152d0090edca51dc0ff7b372ee67957f26f7f345959f558e71ad8177c81b53d753727444c3aa711dd0cfea678544a338a01ffaf3bb16bfb034296e33eaee1918fba3daf69a81716bad75eb96b3d65aea940ba5d26b7577bf708069a911e13a290d0229942c654cd25c79b4d845da2957351073149c5b132a74bea19437fe5e647a5e95d89ab09ca5d4524b2d081a905ee431068a123c16ab81677bae36d84bb3ebd2aa381ed54ea3b8241c0f8f4eedd17698edb4fe754929a594524abdd24ca936034e925032b582f6320369556a7beca85216925d7007494e4a0bb3bfd64773962727757f037790dcd47d9e9c94f61ca5d57ad637d448dba67996cbec94a94c866d7a2a64b904313264d9432135ccec9f207b6c6776dd260479c0f3e5d3ce94e032ba75dd6fd9775cb7719da65d1e11e0de68b85dd7753768e10db9ad2bb5d656a734c96dad4a8ccd268f54223925590b9a1c8fdbb406a5069caac52858753f66b469b7e3de0190db64ea4dbbd90edaed4aadd41fa953a94bea580dca17595a9eadb5056d432df66f5748710b72d446e436438db315b57885c4d9cc90627f502757d8f14eb03b486e8afb8dc851dbcb6d8a1a678bb56886c4d9660ed2a67f03a712998093dbc4e490381387ed35974c166412fa4f8ee25a206d3823944c15a7e2549c8a53f554b9ca515c76a7aa716e26c58c03a7129903678d64dca6b5bcd23c2000f254994c18bbf039a6898e61a9404525566d5abcf3c81bd9e2f84195b5d65a29a5943ea5943ea5c9feb5d6a6943ea594eac81e3611169f73ce39e7a41ebe787c9c265b0b4660f62cf11e936b3651e3f05c93b7ba86b5e83aaa6af9eac5c405f778cf12da53647d5e48f07c9a3ca947a06d7cf8e4f6691c7f942ff11e6ad2565d3493f3481d2c8dfa2ca29613979cd0334147f6b0c25aac5e901862b2242749ee9d0ae683ac7324aeaf2a2c94c95863e1d9f6279b40936fcc94c30f4da66e42a6234b9b5ec1fe0035ca91f0951ba6f06a2c27f65f00d5dddd7d4a517e4fcecafaf429fd8e64b986d2bdc516e788cafb4f16b3346146fe46e4d9d5b20b469b16e62deaadd99a13e657d21832add286be14354dd38cf8ccb276332348a0ccd97db5ed6a716c19c6557eb6cf75b7914490bd1470b62d6d361ab2df6c5b5a1464ff69b76ddb6ed8b47b43a53c99958c95fb630d68d1b403e689350e8d0ebd8fe4a6341e4b64c390620fe158578b1968e190368c4c40bf1db2b016c39038f60d29160d5938a864af42a2b225bf92d9922b722f79038f902d397dd9c976723f92534aca048c1992dc9fa99a04298b1ce55e4819e64aeeef222da8638ef2a1ea69502ccc51de721bad0616d638de6ad1d3a2e04e7b1b46a2b4efb77048cda4d1b0d6fa3c3775c3ccbb657b4c39e0f9a3b772672c2bdc29a5340e5afd069556df8146c7fafef62dbd19cd28ad5f36ae6ba239e79c73d6215b390a86933d4627e2c45fce64ff0a82f002ecd59dfacb0914f1b09b59b268d1c2c5db0beea22b9aa871687a9a489c9cc6919e79fdc69138b44793eeb58ddbb850c8f6343ccd4073e338adee79cdfa7b88f682d43ea5210d345f13ec7b591842e3d8f0d4e3cea0c4458f1340542982e7065f747491a38a9623716081410884bc914518306f84c1c318340eaf420b319af0224a14372892831a4432086ab28233d28861c08d295138f184183efc20064c7544a502a02e5850381c3044152c7c60a38d1afcbc30b708827a40182db83285922baa7801828e4108e6132f6091440915396051836584f260078b9f2baf282f58c224c807b8e022092f45acd1c31c740738d8d203c7134954b1b28217a008921382e6f24296014c95c317246684f122c3fc1085164ee8400b94243e4490242a08a30c31d650410ea6bc6182377ac062e88a18726cf102dd218893204fe0704590133129b4ac9a091a64e084c80730604aa85e88428a315cd0f3841a4978dc1801134968f982ca182f262f3811aaf123469631e0c882441ba0175a7880920510515411021c565f70a8020d2d4ee0a04110196e708111a2055478c822f6421124a2f8b08226529a68a105f6820a868c4461c171c60b5a0f4b5c4132049434d8e8264210070e2e1e28110a420b8b76a14011592c99838da02ea6cc27a8b44443b65c8b27f27c39ff66a067071c70d1c10e37b0a2c70f71986144cac111aa487133684805f28a14266293053c3d6e14c008d54b8dba45923296582669cc91e2b224b69822c5dd8e82b2e5430494e2342b8ea0c186f4228a4f15aea32001c2e0828c34ba8e82430820c78f0f5d52f41da4384f505ea15aad9172507221470a8c55e642e2111536509d9172f0a322e549f8947ee58d0d688f399b68710dd29830537e919e342079f5cf9f32bc5c142c5fc272c03926073c5ffec03f787e5e9161b703962ea58f9ed38bf43caf34bf2f1c61985ee9bfeffbbeaf54fa6f96de476fb3f47d5f2afd57fa8ff425d2974834df47f22fe6f3beef2b7da5d257fabeeffbbe8ff47de9332f8552a9f4a5d257fa4abf7d69bb23de66fe2b3de9ad9702e94ba527919e449a012b8c869949e1045aa4de09f5e97fdff76ddff76d5fe9f3beefb9edfbbeeffb1ee35209ec5aa4fd3218a4f9af2b914a9c47a2c1df68e495b652e9493476c6decf46239a906a33a550c8f7a52785e3f72415be2fbd8fe63e5249b648c37e1f3ef23a6ed36e66bff92da1726427f7c892ca4e5126ca32cb6cbf9681c79bedcdeea8293485b467426769713303dfc699b9c55cc3ee1c5b50887d53f6fe3cecfb7dff01481dedfd39ad7ef61b78ed57fb15a461661acad9b64e5947e08e2ae5a4650b0c575bf2dd6632b3f4336bdd3a08496e953af7af37fd9b39083c78be5a945376d73a6a72e29664996709ad7ab9a791fbc7d714a13dfc315bdea6295f4e25b7bbbbb7bc0a89a2f26606adc611f27eb8fdbc13b0055fd8737d5d9a6b922942fd7a04899c3d7d8ac3982994644bd2a56bc553a2e6eba5d4b9f5a48636dfc8ce85736606d8feacb2471b4882a9cd9605b3b4189369385f2dce56f66f9ce994eea39148eed188e0640f4e66f1a7b2c3caf8bfff1e7f8f7fe63f1fce76164707062dcf0c98167d47c632194f2ce6ef6b164f051c562d617db5e8426892169da7451076c042be9f6166fc1f4893509e1675c0e3b7d71155b53852950935631e45327e97a9025b5558632dfaf52880fffbcc4be1fbef3f3c013130fe0fbcff81334b895a41daf85f991f03a410a864edb64541eb14d508000000c314000020100a0644229158382015f464f914000d7b8c407260321688b32088611832861863940140008008c8080d698402020b2ba1ed1ec9d590690b964f3591e8eb276b3525451ae6f376b814be5ee644bb0a8989d3b75811637262373ff2254e2e75444af19c3adb172ceb58cc67d41815a5be2abe2e30ce4be0a04084a1af55663c2c327de7180d298e1afe2db169d7ac1a9730a460275f908684f4053d7f593cd4174b5ebf9825c5ed52b37c73bf59dcd905543ce86407ce6ed0be9ffb22b9c16d8a7217c4df0205225dae499f97041ad7c2b53b5a5a0b8bc966f3c0eb5db0fee2b00cb91e3adca9d075c6b6684ddad537b41ab71dcd516d60d59860e3522c00bf204bbf55f2b6312e2a48717149b49989d66eef123a1b023acf0869e7bb1aaaba34cb4bb2675870eeaeb4b2d566fea89cff74cf7f09827d92ab0caaf8b734a60f969ac44c3ef1ad77a2441870e71b01dd7b2f5d230c5d122e3f38105bc32e55e0903a80611395b58f5ce410b2696037b2978668ce61801bb30fc66c7ea7bb6f31ced86b39d6e35a65343571b2d1fde9f56fd920a6f1195d9a91244997082919173fd36082604ee896ba08b22dea35320bd06c3c99d309a160b0ecd825d020376f99fe164b1f9a3f08bda67b2c32371d6c864be99d73c29132c3f61a6cf10352953c9d744e671f80de89a9fc77b4206b6aaaca74cddfdc81df386d52fffcd3724dc6c9444f8230dc4ba89de3e06f83ed402515b205942b1ff4b968e26937f22250ecf170db168e69f1b924f5a2b9282a8fcd25bc02eeac4f1f1c1fdbfde352397a67165835dca144348001cf328b76d06e782cfda1548fbe7d78753e409fea45a0e713fba5d8d287b0a71846806b064f99834944d6a5424d00f13088445060438be9940f9e152ee3a5c1973b33aa2a8d2c9debcba9afab989f83dc01495b0e8281970af051a6da0c72e7d08fe5871658f4c010685211641dd08c8f25346b33bbe066d21a3c385205777f21059956363b3d79bb6ecc68f210e618020dde621d03b7ec4b42899aeec9df81dc84aee9cf38857b887589df8c26cde5fa541054c08ac13f95f135d504b7f4f0758138e52a1e71d44346e910f1a8f49e2326725b9014e94ed3cf52f42c3e9bcd798ca9026388568dc94b555bbd9755125e64ef2f06e42f546b0c537780bb20a2826d9ee7200ec310369a8fd042440bf1b674db90dd5c902f3aa36b66d09b688331dd146bde947babad8b22813029387b4b9bb93bcd3621f0c198fd40bd8484d4e532235dd940a0b9881cf89191acd00288b7eca915145065753e8965150cd1e2a20923b139a258da7445c6555c89a7823040ce44aa898984251811fa244deb74937867e20b093e6010681e42fb6b898853ab4829b553f30aed5167d29038213f852e446cab1fc2efa94d27eaf58f3e0bf8955b13937f7107f3b6aa0c85b58cbcb3126dcefecb94c122422f8d98c124a6384a38d90fc184ed808322edeafa4839da8e503b9ab805a926095ca180a0f16f8498293356478db8d906776531e039b7ec9854767c57a399e715ff3d11c8f766566efc77360326d31275e48e76dd4244ab3aa4302d527b7d3839caf28bd72c25d091e6c953c5ce9f1194b4872e57a599fbe4e2b0ee1da69fa7cbce644260ade0d895c3ba178379b453cb531feb2ddd54100e25508ca205a32990c1465120e6917f3938d7f1f9f435ae92b49fc5f4e9d546b554fd03e0016bdb74617a2e1d9623ba4da8d865a14741c8b979e6e450d1522649db2f62d5362d042c682c3183b1c16d2f86b0e8fc542c3ebc0fc2b595f26898bf12aa2ef54050b0cb34af6a8e47b4e696ee67fdd2f0b5e8f657d0a43f50471c24816413f28c02412bf47d0f7222048dffbe7291ed2728c8f6065db3cc31b20b3739cb2ef01f5ebacd1d93a9897254f88248b991d04a49a65755da9f145d091c52c9d0fa5f8f8306bc39e5e9bd6bd4da8687d33b7b5ae4bdc5476875fb9c79ef66bf1305b2cfe8d91a1997f36e0b27abb5cb093e963c5ccf744fc2ea063f47c1908f9dcfdddbe16f0a2e9812ef465545bc9e8b3d03716bed85c4d8bd02bd4b1e36f97e1e959f572e13915287180f91a3a3a67f2d3be5a96269608de3101de10bd4dc2e3aa120e4ef62b0235241cbd3828a497aedeb81798216defa0a8e5a116c2c557321c2732f8acdf08fef33b620814d3db15dc2bf3fa9720eda97d7758abdd6fd9eceec79e8d4d996f1fd96faa499ee3bbde2478e2741c0b7576a88237493de66b1ea4ac5b67b3e3427be6f0532bb4da224ada4c93fd23663833d540be4a3d78ec3da0c469c7b7664a9846847ed73e7b67b10da0f8103bd39219ab2209a447f2de522b40296c249582a7f42a125672ce6f2dac6b4e25a8140eb6bce2966946355946a4994cc31edcf375e22285b2535077329d2fc16e2eecceb9568fe1dd720ec0de71df430378cf3f1c921f735bd976fb24ce4fc6ebae8b369d749f90cba6179c6b10b9e66eedb2112137bac0a13ebd061b7e9aec596519f17aa06485d1cda89fd3589518428717b2d689836248d3b6d470668b566b37875a5a0af592014b757b8cc82d272aec9bfebeec736e949251144547b3e2409be3f26624e8ae4d0dc2abf15b62178ae5345a6c6b27315683b27b2baf37d84ecaf647567dd95a385ba8b2cc3725c1cd40d4a09d8f6e1746949b404274a0bae9a06277b872e53e7f83b45c22dcdbe284c7a58df265e794c713ee1b6d1768f35cda10a7e5e628fa9c88c306443a2614d176ce8f8b9ca31a950a97164b5bda0d26d9b3ac25efbe2f6d817c781e3cff2156d7de2c425865549af41ce85219e0c3a875fce9bc82be43cb90f8290af14e68eb8d50061adbe934baeeacd447ee5deb82ebc963e5f2df74a1c087229d9f0ff440675666aa395e4300e7a8a97dd5b46d2e504c860f4b273fdd89473143881fa5c3c0245382735baecc0a412a07fc2df46b1acae1923eb7db4211241ac9433078a33553eee00ef9371c63db5938825b506c9ea4cdb7317f191307beda69f04d0faf1d81d22dc5bbd826ef9432574cd01ae026b4b7ceb1e93824ddb6eaf8dfd6b93af216e7dd601904ea16e0059cb1a7baff93dde1f1d402486170ce9227a2bf036cb2a5980483be08bd0d7d882031fdc9542a2b33c9116ee300cd9ab68fd2ccc668cfeec38fb381eda7d8d75e1b50631685d9865b3556017660c6fc0d28285135c985d211b4de884dd1fa47be4591cf707d91f9a353b046e2ebed276c8207040fa0cd86f425748b5853ccf1568228c985feb07cae0ae25049d1fcfac05ea65eb3376b23d82699eea4e37173f81f56d6465e9904c6be6228203de0815a821bd204b1c2400c8dc3888875c47fb210dd4a4ea32a6b28ebad43a20e4884995d0f3dd25fdb4d365f402e21d7a7b09c2de2c0fb2ca092dbb5725aec6e07e68686e58ac97327f421d0822a7084552d9ed188e4e47cfa2d66c32ed1fc4d6076a60b0f1455e6d286c5fca38f020364e73b52a9c89cbfebf687cef737c6861b78fb7cb80d639057dcbc6a808ec91994b60ad352b1d13642c20d0a432adb55c591c4d37273a2b5e12a27d110481a6c0b6e487cd14a9a5f5009c08e70327fa6122f79327a2f6cd8e88d589a6bc90e09f88bf9a7c961b071befb74cb20ee517ec9c1cd22723527e97a191f2a4eebba486d7c1753dcf001dd0979131238a02483d599421833a5310fbeb8dcef64f6a5d4f57851c683715ea26e4a9229d9c605de3ab9074cf2f646398d9ad9ff5468827286ecff5aebe9f42178539209dacc91925ea18b7cca3fe219f0485ab6f6d5590212a8b854985b7f01c8c04064bd943329eb8067c5cd668d7ef561fab35fad9eb9a204075db6d20fe568b7c283e1b598de63460d197589da814d9f8f5aad61d4c139840d5dc800f1cadb30d3abfa45313399866f572f0ade766a284cd3ad711e525474e7ac6e1f66ddd5b7b9a5a58116fe9bdc84799c368197dffe4cc6303ee185de521c8725023c3198bd28e35ab653a0efcb91fa13367893dc3d387c835d567195b4aa2b8a3ca46663f211b5d90114d7b87e63afff83efc1050f47c2bda17a706f60a40dc18f231191bf9f1a8b5e2140db2a88e2febb0c0398fc7dcd709500a9f382a7d1ee3ed9b3a626517b82976feb445bbc8d6a263538b26dfe71d3a7e9808d24ccbd46881573988b15a3f24bcacccb2fad49bbd08a3198fcbedcfe3745a42428f0f0b92cf06e2868857096dd2b729f77071e7d439007a751ff5310e5517ce865f815d5e8f9bb34f0682014b4d81323e24effea7a21071c43f303513d97126771ccb6b68435f3e96d0929bbbe40df4126bd9c1f9392dce73c07d23d5722fe84fc562fc94782ec94c0255cc2e23399750b113e05542c5579cf91f824624122d9c80a875402128448b8924c9938a117166fbeb4b0152af4c5fc199fa4a279ce955fe7eaa902fd0c02b7e875b6bbf4c10c126bb7455fae0ce57adbf9c39a9f97ada5f4c0ddf0558e3a8d6387263f71d89bdceb056c485939e09c0f5c2218890f27fbcf4c913a6c209313ac66ad916e1f551c44694b3dae7f10324b114a28a5b26828a3ffe9b8db5516164bd1b6c250519d1c289839e922609b0225da752874f3f0616a2a4b8ab90f80fa543654ef1a4ef1a1a1d55a47bc3f8221442886a8651167bdb344ffb0fa10a49bc4d9a72dfd8da51fec0277d8dc8ae39c45da21cedb152fdd20f199e3d0d2c8df087a614a48d0a230096e5c2fa1dd7dc4a265bbf8fbff549e92cdc6f19e0ce627483b225646934c7e937a9830c2b799d941af16e7d021c25dc90cbc1f6d8c07344103d0cdb99d403b734e7ad412b190e1f7702be4dccdaa24d99d0ee4808097d24787c252ec51d0e398817a5a49eeea971aea95da161f6afd5d2459d4660b5aacd9a7548f2b184d3ad076edf742ddcdad853e3efed083e294bce0fc3013b2b0ecab163bd3eacfde715725dff81a709283799e7b0df3ebaf2d1fd16c226a12cdb9da4d90f1f7163ef9a3422276826934b3f8ff897b097dbea1c6c5d275bfc9b52aadf3427457f7f652afeb5c536a660a6272433007a36cea7b91d91c73c3989eb221c57de15b39eff06dfbd6f4639e9bc8524afc140ebba24aa1e865c128452c1a505ca551fc503846f6ac1fa2f4a2e5b06e2a97bf568e6359f61f4284ccbce338e2fc5acf5614a462e7a4a2bf082d8855bf2dfd16f022ed1653f29203d8730f174cedfd89a10a6051c6d530afeaee56cba7685a956ce78d9c831058d1a3f7b98a810a32fba2951dd582021394f59c6c22218f32a639bcd6a11af4ac0b4c3a370b508edcedaa99ea03e1863d1558109e4ff843be513cb5455ce416a1005c9e93991862a0048559b62f82e95f9441e77c40025a1548f6bc48004db7158bd21a5473a65e87c346533168a520c67a7d31a6cef9774dd5c270937d89e5541ab795421f7375a1a555959c6e7bc9da778f831a26469d3f2304246ed0ca995a59bcc6a887910090503bdf940152a0c05f303c3080d21f9bcb2b758393329e4d3ca884d259d423c08371da36deb17bbe5a1a4a96d7bae0a92ac416dc5df8e1771e80c25e45c5d3bfdc91fb67ded1be92a0b88edd5ce3d5c7ce429289b9b0c8f888c64817a4348bef2a1a5d7c6f0a49e72bc99ae52e7073c561067cac966430a4e5085fdba12de78f3d695628b3279c2e97485d1e874f9c3cc91c1419242301583e2800a0d7557e83c757512a51feca4cfc32f45e4b885b0137c12be14f16027c83f7fde66b9e0e136706d52e040f35e54b8b4b44cf15b5c164e38b1ad04595793fe75fb582d9c6a0d2baeaf994ac728853694fe50bf488482f4a76a2920ce3f3ad5c3163a5db0325ae378a3b6ee23f04ac171f6a663b1bbbedff1cb36e403ccb13a0af7462f0f933cb8cd0a1778a3461674175ca8c8be7b4f4febea6eee5a0a12c75d03906e7484827afa694629b713180346c1c93e3fe1a2ad5edc6ab8a6e118fa8b0011dedb9ad3abbfa1b1e6880d22908ebbb2c53b5c87ceff3e818c49faab229ce4877f20151a52dc9f741141410f1184922459a7f61769baf13b463cacbe32e001103fe56e65fd66c78f3696e0065eda99cdb5285bcc8d8b8418462c10228d29664f427008e9440439f5041d37e292039299f6a8daa0ba4e4bc016fe89042557d5ed1f708963c1412b378707a5f379bc9718a217b2383e38315f95f74543c50558e6508a1ccbbfee7b09050ab08b1d0f27baaf38650195f1e9faf3a393702e079d850014e3197476c58798631b5285f2c2d013fc967051e6220b6916339af3813eabf57cb2d6bc54b5caa0cb432f6157e80a77d1caa41abce762c2185dc78b22ba06ed5167b91d459b77c73020ae42db380634a6e47a74ae14da40a811b3475d670842cb34440b4a06a7c8365a3f9444d1c4289d402d9fa380d29b667f7665fc851aac9154425442ba7eac4e2a4e08f1cf8a465dd3a1184daa47f6a651dc0b0793420587323cb3e9f25060c3eae70d3512558163feecd1c11ed16edb0b2823971cc6ea28a457376eccc46e3ad6f916d46bb1720194271291cb30f8e37b2c8b3e01dbb51bc619d6a11fd1318a6781552fcf645b8502b4cf951f606870472b8e5d284eeda971fd297e0869fe02cd6206cde512929d05a9f4220d9369933c9e9856a7025f97474e4fccf43dc328d2038933caf210057aa7b37e6698ef8587d811a12c72b8a299a73376986ebd509e0ec0d42434ff0d9844a9cf737ea499997c8e9d1c60b5365a3b15f43d2fd2f7a7fa2c5bc89082e2ce30b5e2e0c5cf8c7d59d16083a20ec026413db82c0b94c5a547db0663d1d9c937143a6c4f8543bdb8c835e890122b8ab9d194968b8f61d22c0cec6664157dadc9452acd0fcb486ae6299daa3096087d4bca22816cce4c8f20ab1246c605730df81ce073fbe65e3f5b6315508deea199685134953fa3b6c2a47091e63a5d2cdd09e5b288f37fad737698c1396b42117c155003dd0ffd8f9c3f297574f48841f3e7da635f1d92b42051771012353ac867ced851a0fb8f341d22c03a42b8a77a6d388d67b3ab85c2031dec5d2bb6f531a80dbed4d7e80605158002b4da802de5fa20d5ee24936c451fd5c8e479cc240ea37fea259ec655774e3f6131185b9a92b816c251f259ef46f615e06295ca2b5186d6b20ed813d8f90f5f877d8f550ee067a7c89c00769b0cb6d533f707fda7e1c2c2cc6a6fcee4e248414ec3b75d1587c5b835a69176e4d32e27957648e4624f18b49234a03364978fe607a083cdddad06499444eb252426d4da7f271f6d5c10e0575e1e9bf9840828409ecf2d03482b578997af1b46430365f9372ce76eae5a2840f6e17111aec98a45355366989dfd12d9c096252d0d23bad82ed4e63ffe27b1c65dfe2c5b1e1b31381054a6a8e6afb182c406078434b530fba6d487a1f3172af91f482112ca0ea0ab4704a2e503df8f7e97fd131528dd80618ed0ba9b89a2efa8b8d68809462e39eaed327909ee2e92105c095a211d14afceea340c455511fb24811101307734e93124fea012eaa968dbb22aac9a049f158e141b55eea6c48b7100feb1b8002aed693987aa95563fcabe8a2b011d6cdd3f3bd3bcf37f0042b67ae11fb347567e7b290ef3375887830686144113f8d308215140b977466f67a10cd142505cca490a05d8f8e20e7f68c54e3121cf1df7e4df6b3027e3e0c715842ee1b9e05cfe60819b4e6bfa7b921b7068b7496d26f4b4f4c036267db08b358441e4a28a9b985ab0b9467b82c99ff08570205f7e1147baa278a0c7b677fba0abd9410d58f630e5c7c255d890be081086b22eb8f28944d16a0c0260bc81a0db87691880515be9ab6bf44d37a276619bc5fdd48e7dd757f673a5cf90cf4e9907af1b17c0ce5723b568030776dc41671dd778f46cbb2f9524adfec0c02d951bf0373a9adea73f766d8dd4c57cbad804af4299c80acb2aef225b1aa75f84f9461c0b31b5221e7e0bccb06734106c176c0ad97970ed93920aa57ef4518e5d95c9d9ae192487b21e1e090562e47e1a1b5f80b67dd15e448547159229787468e783324fe010ea84f714044d86027a042a65df841c229365af231d46d21b14f2443e80205914f2e12029aca9b16112b5d078fe3bbaa75a453161c2e1230b7f9b20e7b2103df04abd3b558d1f00032f125d84bc525f31c2ab18ed03e699c204716820c04c1bc43e03327c5ce72beb4cf3df2bdb72b509dc771231a3b478891d0cc0222dc40c190f12b3a0cfcec8a59910861c3f946b3c1f9df74e2743bf35e64de82f430f48c97b7bdf9928c20f07e9853be5ae634b36a96d14675679748b07792fef742fc161f709abdc42c9cae71339186c9ff815fa59b97793b64d4fb27a0a745f7f2d399a4c2d0661c39a5ad7de4336e77ff28e700cb310bf8d05c41d80eead6afc4e5de501f99408ed1cba251fba45538975919b198075652f225ad7cfb64926229c53251988d30453f0635052b4c26d93b2c6d9c78cc1c81cc450870de73b4cb3805d0ca459dc8c8c4dbacc1eb0808460cfaf17d138f84c55a6620793fff76196ac8cd676e52b797fafd19fd102e95ca1006468ef7b346232dc14f14526f2d3f404dd209bee35c180a6115879de91d54618f223a793d720dd920b06df1f408acbf2d5cf1ebea080da71701ae4a718eb57bc943739576e2a5218e7a9235defc9e4225173795382596fe08f7fc8278cab647ae35822bef35bc5457915de441c48dba1ad9a3bca46c44fb8141e7ace65730f59ed4ff443644e00a273f6da8d08047ea90f65f61ac3d38498eee39087f55b9946288a6cfa2375fbc0bef0bf8cf05722285fabb40b9bc0a77da318a55d278002d1b880ffb4dce55397d7ad9bcc34098a26d941eba1a11053cc6770dfd2791211ea7598f76cdd81e5daedff56d85d47391373228c29651bcc94c47ea725c737546d9419115b11148bd8e786261be0bacb8ab80abfa99dfbb67d224af03d15987ba7664ecda4aa6a9861c9d5901d71faff704ffacc5ee41ea935d88d1b5cf0905eb75196948cfa891bce36e194eb427d7f842caa37f1c3f7566f831e2f42de987c5cd058d00fe5e3a85c2bac2f356958bbd27ff8d8e062a84dabfb0b2333aa7cc07d10a9d558e60686ad2f860dbb713269eae705581b617d2869fcfb34c7ef6de1003764febb7196abdf930980919c262b18f0c343219e2c12e2fbfce144ae31919a55e80ba5af9036198687d3279a796ddd8552d5559d83087424fa27ac0f0c369fbbb6089840deff620563b4c82ba42356820b94c2bc3b555e1636f959ae0f81032306999657fdbcafa9c87472a5daf4e9a959b4408e21b7791043517cbdc7881bbed31a2004411c27579caea7f4a6fed906ae543bfcb4ad3366ab6c85f12748ed4b2ab99885073e839e491e3543830fbdc4c282cc2db54b86b28e30e124c3a280fa5e45d6d1a151948fa35ae7857af6a8d6dd2e50ae6131414724281d1ad72c6fc63d09e09c17d41f721164b1e8e0dbf4a821c9d412800406b717deddf7540641963dcd3e06ee1d1617b630d103a7edf3ba33ec19376e213e708e5cb7e38ae0cc3a71290bb4b592528c3321c9b7b7a5590817e620dea95b06b309fd31ebd3642bc5e88448e549cff02195f414b029aa755a75872cfea0c51907ec18082105ba47c8a7619e099491156e428c3bdb689ad20786404c8a11483c3acb662b75451adebe1ecb42e8d22b542cf3ff178985db0bd1340946f421eaf19953ae8ca42d79c0be7028f629e6673d453c01446712ddb0ceb959b641e36cb3ac4a02206387b454dbd7e4f9e040f5376ccef7df186078a00944915610e73523abcce1ba50e7e478b3832c96461031792a0aff91462272c680787cc32e533ae073341f25afcd090751996e8269ca53c84dc851d59101cc56903b20e3f4b6e2c0d374cd84f68260fac567501c48a305706714abb394b7cbc59dd80947b0646648d172cd9ea510b1889a53bd45c4baf24c9859372c6d22d6404bb10f9abc778b8432a7fa19bcde5b845b68c0d7f339388e42fbd8d2cd33b0cb4299d21267eadfbb2b0e1843ed7ff2ffed75c98f1824ad50a5c18f547f4ea554c32f7512557757a13202beb71fcefea2f48ab80a572627e4882cf043f1f600817676c10697d55cea35150cd888a56bd26f23722d00be303144dbdcf8e3a56eef0ff959d398474101af2615eb4a9a0db9d96261cb1c2831f4def782c6dcaf29c51b6b6204cb283dc38883df52ba92bb7f1119ce4513e7355a3e8ae48290f4c114934ab2e4cb548f5d8875c4cce848f0df870e4894c2f6b62be3f408226c49b8422bdc688dc11a76d19e38ca3d9e2f3cc77153c0394617270be46a1aa634b31d9fd1d0876699c823cbf06f8aad2c18986eb1b8f1b914a42e36bce06b0f5a108a9d10af5c52135d70d417125b8374649e46bfb6c85cc34e93beb88117c1653a0f92d3f17cfece3765091f749a92569a9a06199bc2d5e4431c5073edc4e068bfa16c1424a0908265e9bef893eba42d1c711c771b8f71cd2b16f41636f7f293cc377d2112e5d298eec775f4dc4693c584598883ec51285145f62626e99b510b1070c56932338817cc6177cad6c445fd9e7220dbc12f9741cd11f5bbe9d1fd3cbf88c87f1c75db842524b57feeb6bf393f2ec0c18a3ec5b48a21a0f16e68debcc1f0e3352c0992c3821593b82fba8cf64e426ada7b52be782545f00b6bfd98811df975ad2312a4cfd51d43dd9bbd6dc247fcadb79d49f625be6544fcf8c9cd066ef3efe50bfb50ba33c1992ea7a405bc27c33fb8f9437b43d51d8d868f1c6ebf1ecdc5f90c26e571e592a8b30aa5945d503fc24dc0d0c910c54e6184fd6868eb75a90240c2e8aa941b99ef8bfab7926db10c2e0100204629b396d6531142bca13243268f3528244247ae09506fcc88cb9ce40e077712f46649b217bdc99cbf61cf208d0af18c9d556f4c47315fa5be92424f3c07e4c105be69b4c5558e11ed7d4a5a4d81ea86535975e289171aa895d396b3c5e22dc580b7ce43be1ca8f884a8be7a5bf57a4da1ac9567f7443de9113b5ff18f8cf47838f0ced600a4752651dcdc523f8a05c25573bae0817c33e2218b363ee70e18f39d2c44291dd62e3ee7905102678e210b196619923d4725760e39caabf00623d41595009008914cf41041052ec3b2ee23fb8680601a9c8a1440ac4156b242a7f6d0ea0bf63a23f6c72808ed5512b4ebb17976ae064157d336bb4a4ac09a742d9347a05e4efb09ac042a56ded82a236dcce3d51d79735a8031d6b6922578fb413fb2413135ed1bd42938331b4a4d633edc57238e367d19f2e8984f8661e471fa4747c458792aae47569cf6a862db09010599f27067aa1d61c6184343a9ed608ed856299dd5be349f5d969854dd35a25f83f2a2017ce832c7f4498f00c10a08700057e8adaee2eec99553edc8ee894e4fd1fcc07dee3376fbea537b372e96525dc71e8610c098d5dddc5d2ff0b93e12b8c4cb66ecf70e73079aa1c2d197c87f6c6f4939ba68337593c17a03ba11d3bff42654e78158dd04679f8f7f440bd621745c90dd19c629a788190c77fb2ae893075ca5f3585adbf0d2c0e0d15b99654a8b085cc0f9911be21800a6a329abc32da14b3dbcb97b9d96bd4f8b282a9dff613c22f4245bfab5c95cc74de6a93477f79b7e0ee2bdc4a2b52489b44ea5a23fc8ee82241c41798e2682e049f11426a5ed2f6c1d98bcfaa6870d0819a123f0b6570936571c9a276da1d0f69f065052160306adfd02e6bcc294c4a1c26441d6bd89f56d4532ad764a8fafc2caf33a52a07c8bac5385f063f460044f1fcc333fa4d07637b567e46c9c097050e61fe74038a5fda20c67359b5164a76e26b1dd6362ac556a23d7bb428e3dd75cc641bf53c9eb3979a168b6cc67162ea1b160634cb4dc499390ab176b896053dca299df33ac815ee43c1492eacc54d687de98d0a34d6960db0c9a1c480e29c4158acb606a7d1753d25c9ffeca7b953a7182637462e1a1a0630c1807b37785cb138d91186ebb94d8b326b1f5a160f59b9ecb65131138f5c83af339e78b9488c2e30a71222e079f83e1fdad87aacbac7b4e25e5bcab54e640cc90c46f3cbc18c4df4b4158f1b54828bc29ca83f0a3ddc61f47b4d7eb7bffddf7f64105192bbe4ae37407cc195006ae2d499e8d136bae7b52b51fa8aae187431c5c36c4c16a26622e5bb30fa38aea33c4a9de27ed0498fcb3b208bd0284fe1e6a486330ebc018c2daab25a7713f94f855ebacdc8f68af76f3b1b36b3124f8742c53046c0bc8169a0eeda00b0a2936ba8791c0e6cea39b5c1146ac6df618788eb0d1e575fc6e833c29d74f3b92ec1ece50514f1914e3e910e7efd8a56f965aea70ae8046a568c36e17ad3716a319c414d58949df8b1ae784a5e4852ecea072acbd13cc30766a019712fb4a0d693039c8671eb5e71cb1f2ca3dd4d0b8c71c5b121c62f10b34d1ecf668d8b4ca2ea809969e4d9f34caff8c425859ad9ebd1ec07a0f4e8bdd496bca60a07b1d3e2faa3727981a4a20f6c85a49ed63a06124f9aedbefbaf4ac9995d10288f0a276d3202cf287708a90712b3979128ebb5b1d23e52b6201be1ef737012d34020290907ada0017d1482e2fb9d0275580c065335f998f9f454695e484aaec065d3f9ac866d98fa609548cb65662001d1dd52fb46f6603579e98651dae9b48d74f6e1d482952954a35a53ea5d95926cf64391e21ad440058a5851f6689e09ad821db4d8c3b70f4201d477f3fea9bfc1eba52c8a53e31f8cb9c73eaef701295d6d36a70d0e8773fbcc5ee05d0f297fa9f770206e5412de5d96be7cc4f941dd7d3ba376ce114b68e2c348538d8640bbfac65a4253ff873f3d81aa7223c653cb777deca91e856fc2a7b1110704ef6b8e63c3f387098481ce006a144d0af5dd68dbe1d148eaae590250514279c8f00d0a0b6675a0df4a8e89438631ca5f69272ef13650bc4f889f0e8ed2767fad48aadaa5b9c9faa1c293e1805e618022ac2e5d14d34b86c9b49999960cd116a04da79c220dfa24cff2ee69996176ee6bbd2354234445967a24ab81cd31376f14b1d7c120a3ce9a1e83e9b1b78e54361af361548caa17cfdd9bcc0881105edcf2681222d946c8fcd0c84f2a1b07e6d2a509441c9fab25981102f0adb9f4d0295a6a516f0d1004aba0d099895f62bf74152f40ed9099f83ec6eba00c84537ec22fc47c90df608ff29b95d2d00123137d8c02c51e63431860d705ba7247d151cae6b224c4b6eb22f1b9125954c24ffee33552d825996c645df7ba01112e1cc4b7e21773da09ac92ee51998abff23df9e72135232282794901171d7eb05f582c97e15ee512f0edacc4a31108b32b62600a43f090442b49254532e9c3674175f8335b3d0a4b6e4021d0633141daee2efabb136f0c4d6d5cb21793623d88f6c03c4bf1eb9f9db7bce84baa4979d9cda2725665267dc422cc2b27d2f339f3e8c9e6fc1fe7a68726a949d027dfda1fa1fc5358b3c841e6e791b50cb90d0a633624f1a88829bed5253983b57dade49a1e15f44df587ae10cafdd10b6d1b9ed0321e06eef7e53357a7ec3baf5fd099af7a346b1d79c28b0f0cbfd3bc3b85564918c1eccc669dd1e411404aad31464ee364b9440f2d59b41904845857e198bff39112e242a73caac55bf04495d0b4ac115a1ffe086243291159cc86c82481f3d0e3e482b3d2c19abeedd62dc31e9b962311f3eda936e708b5b952421749ac789a3a49591ea73a125cbbcdbd24d5f84b0348edde1c16ecd5815e71bbb6379ab7bac19750f428ab439a23442a8f508bd4270c63c5705318324adbbbcb602be264b367237cd47d3b4e0793ad0d1f21f331d8334f3fb92d602b4e65bd3e06d6e64fe002139d906c9f1d95f3ffe25329bb624a3cb9d1576f5452120f76857817f4e9544beb5d19ab28a7bb1fbce5adbf605c3354e8f57fbcf007559bb570421472734552b3d4f30efd64aa1664d482cd6aab8a353c1a91217648025030fd09dc0b20102ea8f9c016ef1fa58f064cc1d7e04a05594019e6d97cb0c44f2ba43e50aa7bae2fcc41505b8038b448fde57105faad3afaa5f07b098c6640db7d5d78f4ed58f6cffa3468e6c6d7ec1a6a34d295b51f4a9d594bb38a995e84cacb7adfd9b79d32cb0e2d33dc4080cb53b6c3d432647aac7e68c43f7b1620178759c6f8c03479723a1bc11a75b3d381730553ffcb5949d57dab8cd89f22e68e84f967515fd5063375caa35281eb30e6e2be1672a7aede954bfa3294dc0b67d85e2b5c0ce03e85bb16bdc0f62ba1ee336eb8e55c0ed4180f61b1c0ebf26ad366bf9d28854496806f6d648f27d32c3e71a7b24605d42020996227c7c0e1133aeeb7dc5890a3a541723e2333587747a837d6f151009a32602df018d848fc56067b80d12cb68a4e178d4c5c0e1437908b24a6893da05d06bcd3d858f29a0db83cb7c4841e5e4fd74e54f804252226f9041e6377b2d283f06d203190c5a018f78b4bf2854bc800df5785785fe000a1b089ab6a00e58ff2967f13bf0a220ea58b6a8f0cf70a8f3404a6aa0f1ff7ff9a4524eb96841504727e0811010d14f0d06f4672807cb489d72ddbdc923b4bd5f20dd49f88df218b29e898671257e2053585810480063210d314cdfaed7f802462e1f8a9e421041fce69274ec07181f3bb33915187967840fdffa3473507d5cd62964915123a16dbf14bf558e130dc5c1ea6405ef7a495771ed385165295cad6c7d9111270ddc979f9dd9dc0a556ebc0632e806d633b79ecee03d1813ac9f2e14116bf501e83e4cda7aeb58f3da1e3b4af59cc7f2a2bc2e742225c944f3d43b8b6b73e805cd32cf8d532a4f80c2651c224cc0a2982388dbbf9e62f664891597d204b24f47ba444bb0417956af01c0339ddc64b18a9656ec22a6a329790959c10a2785ed259510f33c6f843a4021faf99d7b9b9dd96775eb2cd080e3373a9085779459260d42461bd0eb988d29ba15b5790abe4aff0abeaf5f94110b63db0b8a094639659a90cc39cac51bd6a3fe7bb0b9e7148b77a112293b81ce11c4f33c04de08dfeeeea711dd55b82e5ecc4d544370568c4449ddb9a05d27ccbf7463b9119e8ad9119c807cbd0cc8cef60ffa5cd98ece2eb1083addc56c63b4bfd856b9d8048385d1c3085fb0679da2fb0824e1daea397544aae67c59ef6af34910264361925d24e6f55c2b587cb915c9fb509832ef48639d1a524f53da3644dbf32173c1f70b018f57de551219bb83f652c2d88b8ac2e26e6feaf798230fc3be6f082da6436db1f2bf87022d8735335cb7187a2d37b70450a004b4a12bdaa8eaf6fba7c8384403c7bac80a23da90e7462aa50c0c2cd384c30aec48cdfe35a865f6e87996af43ca67fe77e7723132f3ec40449d80f87a0fa21504dd841407c4e0dc490190eed617050e5f79a6893c202650733d5c39690b6a2923cfdca9e8f694c96bfa1d70154a9fa5f921c608b0676a7e44af58dd06c6251bb73da42d830c5ec330abf281acfa7c7fc95c36a964277aa62b6c4b60cea9de9a1486ebf8f75537748319f1172ec19c8c0140980ac2856b1ee3274989bb947f80f3d5b265ba45e68a9a32aeaad5e7d681fefac047d75517864a29ed723335205de72a2037e8b3d6c5d5691e2f2d09a70b20a9479f6f673033be41a6b3840870f98f1995d4f40849ced46268feac59c926be0cca67fe2531e494de2b02609de86205d8097f05152bd1f01fb6ea367f2a267e190e29a2a8ab89d0e9e4c469f8fa17bbea5c4b92f68be7dc703092c8035d30cae60bdfa351da269eb6ac651ac5037a9a0ae7907c22d64f72e2ab6b5b8173153f97ef29b22316b4277e2d2043971faa2e2602381d7967123668b6e27ab9ecf50361a22384dc6405fc64afdfe1b0644fc58407c10b0a51dee1d0d7a65dd43dd9543b33ba18011477e5839ac5ecd4a73a86b5dbf887282060ed64af238e2599250ab993c694ef3d47e0fb93f79561251a4611c5eb89ab68d16d5083660e7a7ca6d2146549c09c0bd6bf13bf66102ccc2b96951c770d7f73d727e44972786a853ab5d0e97a38eaac548b60fd9deb1a9538320f03981109819942530d2ae6740b3149f21416f2a4a796a6e417ae57b901662f12ba9fbe11563816c2fa97f83359d4332bcb8c5a17b3e358dfe12ba1c02e94ff13b5a5ad35a0417f215482f5de2d21522ae548dd785f94b075abfef2deb3e0eddef64b7553e3ca0a0df05edd4ede25a1b65d0bbf8a4c6ba9234917e545ef14cd225aa3d5e8c88133438eab68f0aa4f046ba1b028ccf3c42a6907009f06df32ebade9ad6d53d0b7b8a5fc85d906d9583e41cec26ac310b06d830bb64fb14fa6d4eb5e5bc7aaf6859fce0b279d82539ac88cead959541dac7b967615ae587d92a738b846e3e599b0f77f8a7cd03585d468e6804fd144eeee8f2d55267debb6ab492acafe3694a7b2eca307553d8ee46c9063c7b0ea9fa0c11c484fc6bc99f3ac3b89515c8b4ad19eae175cdcc4d22b57ff779c7e85d5eb5f3b1b0de0e27ab3107aca0475da3cd8a4272bac8c2f673deaff85069cfe1c7b93315731eb0494545263fddbc6750b99e6d8b674026187f5fc073bc69ccf7ab41e9ea7096f8327cb194c2caf5c00931f1a2d41c6458321da33487138bb7a56f1797f7ac1293d8b705d209cc8f5a5f6b47a91ceb58983741f7379ba9df9c1e6f3437c848cd3065e0e81e023406c59cc612777eb5ffe1cfaccd987aa7f7ac8609ac92afff6fa740709ea4992fcf8f2929c03b35ad4ae3ffe91944f8f6f89ba183ab9492ed1d408ee199e16537c005899ee45a152e9661a1dfe11daa040ea97effcb399b2293c32f11d8adc5870fe26262ea8f9863a67317717e78180abfd682c5d3117df2e17eaa5593f218d188b3fc0b2c5114fa2cfb0721e77f6ed74b4a5e832289c03554a86a6e559cd93927b6359575a6f38927c118335da2cb45800cbe41301ccef8ca47d270ab952b53cb3af6676308687cbcbfa082468795e6290e5d1c85b5118a54c59b1dcaa6763779727e6bcb59ea564f7898549d9dd8690eb253ae8a5ae7497180a39e0fe7af09e470f5c515552b5eb3d5e492d2d528b7c0af973edf1d9b02e326deefe12050ced45c967c0c6c4e981fcd24df86c84c50148947b809141f7b57ecc8bb1fbff29d2c063c0ecc9dab6cdb0a3bcc91bbb68f27ee2214011973bc9e8673a396f001e690c8636ec92797c10e661b35a72f2db50f6b4fbcd940e8907d5f87c37f9a9ce2f9d5e2425c25c4a2b8b8f163ab848b98c3d6cc7fdf2056789001f25b5805e55a13cf912e234b51b5b39bd9a8dae66a322328330453753213043ffdb8d08224e883b243ab8f54cb06e9d9759d1e01a41b88014149165ca4d5e7f8f6d7ea50775ce73f03466e5d5468132be8d7a5566111df2308b7831bac2da30be93172bdc0fc53f0bdf1e3f6f4b1a61d3a842bd5a2ff6f985e953126a04696e0771fcf67849634e3b3d104fc287148ceb6e4aeea78aef8349cee864725548878ef0bff90821f7513ade168f02365182b77e9de2ccc4ef73fd5d5ba3519c1a62f5958c8e962ad9452725e11d4b6549b070c4e4d98061d90d789392b2ad8b773cb8dac21b37da4a39bb053f00058e425c2c39c729d6cbcca49a699524cef4caf6b8a445254835a3b9c088e68a084cdb8a3f491f441594a700adaed0477fdf279e564d539dc7a6ccc8e08d18773a12400a2d54a06b9841d205840adc27c2132a5fa16b607dc2ab15b73f8b3b505bc3101f181ccbfb51f1ab9c293b643515f6a4b42017adbb67dc1c88131272e82a48310b06632cc90dec845142dbaa446d00f445c3647a2247b9e524c0097e734c75bd5bad1424a5a0b4640449615c009750e2d0beb964457c3d8e6270d2da2e3e604057319847214c637dc0b6ca75dd8fd4fb1fe1baa7e5b40a4f192f785f1de03e2b49510fac442d710fce59c884a63afbe25a2b83d76be368b1d95622d4b6a93f5026744d72ae8a8a0a816f59417674f579dd9421a432a8535c1c66f0054eca219d36ad26a9430d16e468260dd84abc85c32a3d63b9c1d0bec08629d385f70aeed2981676d459ab9614c4662d04ba1a15ac0a0537162372729b9bbfbd618d193db75b9ac6a24b3730251d0874ff534631f901a1d6e41f62f8dc82681200548309927814c52e1a7db3e1957b51976a742a97f99f7daef6a0bcb137d385a1ff453b43d5c1c090860f63340b75a3ef79d115a35b6218d6035b98ae1c43634f40b02b64c82abdf7018f387b80c586d5286f3b2b3941aab49b3be25c14a0030be34abfcb3f672c05eafcc91fddb4c4856a693c319dff8ce271458b66f1721b966366bdb71395d19bb45beb94c24d6ca98e42a000d8055222d67e1f16e3edd03908c23c3464598db36f9777762e2e6011ee300627019b55881139147778e56bb1dcb0ae55108bfe3067d3180d1028dbc3e1502aabe17b9cc353a331f374973205a5dbdddaf24d3dfab4ee34bd6ffa0fd7c1dddf68c2bd4ba0c33f87590a61f3d2d27a352f522ac272c683bdc8ad40717eb85b1323e4175b922d63c87ad14474fc76ae93a105434af3b87c934ef3aa31e043daa55fd017f078834c18336d85e8953fbcf06f4280d198466750ff42176a7a55c02c06cb75c78efbc63830af48d9567526262fb46ca3e945b3807203d9030c2bbcc799ba5901312c86e1cce0303232311f0b3d4422b5577f231de85982c55fb72db2188226c19b8014d1989d103c266fa6663b163f1a45f7847838698fbbcb9286a349a8f5cccf0464ff4724b9f18b9cc1fa487066527ea87d93c4827cf0c2be509d460dc212f224da2026f06e65e5a5ffaf5a334428dcd1db44d805bec5f1e88270028eb20f5e08a129fcaf9ee08302372b69fae3e8c6cbb89599f114857d995b96282321da8810477e73d3de6e9dd5a6009f1cff9769e31a3ddeedd191f9bb9f35590e3eb8ed7a65da4bc3ab0f542c604883e89eba37f786bd1b5fd9016792e7bfa1ccca4973f3cad23b9e8f112d71083119cb26553f7de9dfc3dc2fe0301246ba567c74fcadc284e86f01ed5100e01152f6ab7612875474a0accc0ceca5c5607e1a196d321de78d3d19bc23ae03ef336f3a8eb8cb848062d5b6519f4aad507d2093a52703097fbb1c9275c23e608e94968a114d1ff888969a3e9447ee348c955208e894a2d2a8df87dc57b28534816f0a78259229ad2c01bd7b07618d232bcd77583a972501ee5dae4e195915f1f27b9cc642db64dbf76fe784269e32b43ae0f44535af80760ae9cb37ab8ec12a82db2afb29cd8b8893adef5b3277278926836d6746126322026c411c4c845a2a6dd588c09584d8885074e387c7dfb3251e7afbd170530f939b5e463332ab1876ec7a285a04801d5a3772a8c5c2b8e2acd78a3165ab724f0491285e08dd4ad16e618a8061bda2cf28e08e7d596523de51515d596048112030c6483d3fbe51f7113c7da2a00848c6759a3299ac70cb3d9f7eed158193b16359a35f7fda5cb96332b5dfd9fb3575ed88503179c02753bb83caaa55dd442e3bdc24ba78d300a8a4638914b829c2613a061ebaa1144d9da4778fa371baa4067ad75c0e03551d392739e354f5b9172ee105d491f052019a25c8dd642af9fec26b1c326e621ce1393bacd6368e27e4aacb7673d828dc07d9e90a0941c2479f48c345046902766e0477dae13116b5d732477682536001d625c187ecea9be6d4a0af83700bf6411853779678047123ecbf0549b877ed50eae3c796df2b190b6d56032224dbadf3575ef5595abffeb80e3397798ef13710a2fc221012cf888019a183a4e5203ce4dca00bf218ac7498a47edb1b1f1a0b3a29f374e6994278d1c7d9259c926891ed6a8e610357316c73e169b98230dbd91167c7fe03d1a1bfeebf79673277a8f9c1ec73761f32c50967f0f873a02f0535c18f3ef0b616ed1bae5a53fba536dab682c64f984d59f03926540ce2949dcb54fd5da8f0eaf1ad4e16c918a75f54169c12a5c3e5160f07b2907c2b6796a3f427c4d67cd94e94f05f34793b9c32dc5a694efe359c0136360a9a332e5eb290ba3d995068ccc2d62407fe1651890b505c5573decd5ce0c846c6db78ea660edc7d734ec48673c66e743847b1f9af60aefe18ceda847beb303d66f71a4d7d661e60110fc61fe335f265ccbb865ae2ad4058220481091f70d500af257f0d6c6924d294926f660b49517093d028a5e45339165ecf56a9f1c9f4fc967211b0bfc8d87591409e5274537f31e0fc6e06303933441011938cda8fbbd5bb4816eea0412e948512c6436892705502b2c01d73b9e3419fd8cf4f71c312b8b4d38cdee15e950c74aefd06519bd5169cb3edd88b81a5e8892ba978e1efac28018c7c20496ad6b807ef760cc026ae1a96434ebb634ea3b221009ac16e43434ffabee711aec80c06124eb7628eaf997d189e7abfbe683a60b63b458a7647c300fbbdfffa49021d9c480b7b80f2ef4f06d167891191ae5b8272ce0a5b0c741a2d402a2d3a723a619d7ec3c6d8c53321ff0db9b65efe55bc0a8f68bf75c4a1296f1d524474db97f08b2b4b7587111f16aacbe484d9788aa7a08dafe9fb2b49386a708c5bffb247cc070050391825f199b14b9fc535f23c30e37d2ea78ba816cc66230495ab57bb6c423d30be1a6645fa9efd5adc03e21d062d793469d82a9ef3167a09c9047ba8b2c04d957f08657e12378fba487f65fbd82df5787998d3243979f86fd1b75f27f2e044218a6a51a8f2af576cfc6766d3d3b41a384771b98736d691c94710cd66ca8c231f4c8ef139d5525d4fe757543682c8b4b0b501387d1227dc5ef736d8c2a64b0ed5512dd759ccb40615c62f85ae35a08567ec5a0b9a018b48304fe1ff88ad59b5bad600c6c8709a8f80935e9a238040ffd6ade414c719ef1c236db50284ef198497f1fcb6a6ae746b33685215d32233da666af1467e721609704a9be00880f08e66bde3085cdaac1262044f2b4edde21623c0752bfafc32496777da4e7086ac7238973876cad51401b918159ee8e44c874cbec2ab52153b7d22c01ff9cf662fb51ff8e11c8a79b79b03c1847e91de32770f48b608041d2e28964630b7fc19665d0e4f1dbfab8abc3a0504e227d01b5800ecb40ed8b9a4027100878e3a616298420c30b464cd9cc34630e9e09fb0dd123fab2b0e40868d195cca3ab7b7ca1c08a8d528154e54052eab52b1693dba1cebdf1d91fd63349c953b3c9f3af6beaccb809be2fea9fa4fc168d49aa134d855b86b5f0573f3ebe60b071201217a55e5cb9746accbc825df62d9c357fb54c704574b8e6f7d5078024cd574757cf6e591a8d6ac2afd08904791b9ffb83b28a326866650100f4de6c903faf901d2c00f44bf45571016f2d4ef1d6bf32776517423f53ef5d38d0ce126c4dae7a2482855db5ab5fcdf2a4ef947acedeba1898e4d59d5a346ee3078a2e63c655c3966255406060f4e0d9adab6347da5b66f3bb0bb8823c9b9e75ecc89dc69bc1755d1ce111932c1fa0ae2d6207f2a3aee4ba42d541af1544af3690ddc05d526df2a5611f3e752ec2d46c769fe43d960efb01a494006006df5af45d4bc0edaddc5ab65dadc21e1c68edbef2e3e6535284a89394862863486e1194cc618ccb6e0c5404ebefc02ba67b6fcbb1f4cd4dadc6b197418aff0daedb5fdefc3452a0255403163c123d58073449a9f39b5e81498eabe6939d7c58da7cb7179587fc22e503c3eb8598c9d6c1ebedbdee78d7c623b9401b190bbab8b23621bdba34f611757ecb57812fe56e47a63e7f805b2487323ec4c544df37963d384e6a61646bd91f771d7766d6d2159552b804e76e6d6ed5ff4273212bcb1c2044336229c16e99a7212bd3cffe0ad8e1e3b47c2d3cd55e8bc74c9c78df84a990c37699ac245d4f77f93734b9b4b17e183669c6c751ac48d67ecaadc0415944012bee20e4458f03f3fd151abcb09e2be021b341c9e1faf67d5fad7cd787d6e463f85b4141b3a3581fbfb2a56a31b0b392c9fc3d71e125aa8dad8eed0f0a51757bce272a514accfd0c80f6c004e691de05c1ad29fab598273f6cc41e41eb58608945346c88bd900412594ef3b402a79e11d47e8645368353d58ecb6b06d0d78fb9d5d7fae9248df9ed55702aa325b153a58c8347bbe9e1bf3fda6921f199ea4eec4dff01097b0d1fb8da2d95099e15b22bd1a0c29a041f02de1221a2524c1d4ccf5f2ee29f04bb8ec95781e4b38f53bbb62a9c5a2198c1b399bbea76035677054409770007d25987fe3660f350fcdb3b2acb4da6b7ecbc909f429aa848bad737575e743e8d59aad845a36e223e5b079f9c63060250a54c5371c2626fc2073da4d09e743e3c236977ca8983e53224b5e1cc2c3a7eac235fc44c0527147c78402ec3ac00c3139ef5b3ea039319f6dc39af37423dc14def9ab78448ac7ed8eb71aa562989024462b221819e7e8229167c8c4882f3b0c8ab5ffaa249ec3080cd84f888c3bcd334e61785349b9cb2592e6d55516ca686575098480984cb4193f4c7707657b91debb04b0e8fd5c083e467eb42489d2c4125572328b34d8dcc0c52c3004d56060194237f082750114f5ed09073056b80e7e4f60ba6f13da7e143ecf07b1a738486592f7b8bd01b60c7b7cfc163bafae1c19dcd009b7e2f91339d03727ff0d301220b5e62e6d5c385bee0f5024a372428e77b83a18071a307d4afbb54ff2c71ba5289565e57b66850751f40638c02689b284b176717a1606d6ddc55786a3e019e2db50fb52a91f7cf8ff72a6637eea7537ef5d063ebd610ec4b7f12c448e4351693f2854d2aee080308c9d3018a3f931a9d89210e89c1d8233dc628f2542b96f25597f5ea8f05cbd907978c21cb17d3135bd5a47eb8c66602ad80d5df20f48a2d308ecacce01635ee5077e0163f160651bb7cf322ea3f699a9c910647305e965082780787a9bce3d0820053f721190bcb436e034169c228cfdf65762bb4403d8ddadc91e65fff61443ebde3113f54bf8f998586d403727c76cc12138bd32a76ddaee4afbceee5cdea89d15659d3413466231f17431f334f5ede59f18a2e9110a51dde29b270075d8d38ed261c177b8032c9a7595e098dd30f84ea8963c2aed9592583b7e7c445b6a539e1a66bdac1d776ef0acd219d0e36e2d21619113df0872b9fcbda8f7fa4c465fc2536b903e9138ae9cd782c668430b48f781168cf5ca97633f30c57b51e6e73e6b2ef33b3b893dcd6ab0ee0e3492896b04fffb6c7ff9b831ff6100289611e5980016ed1d94ac769dfb62099714ab232db001ae6f871f4214cb9d190ae080fc2f8d2261f2cc451027a2808d105189d7d0d4dd0d37dca7f262c1a9c30d37f58bf104cb37c87a900f42842962b8419f1bb001f4a85d2ac06b14cad7f8b3ea2cd2766c5aeec50cfe012ab5c486758139ec733a5d519764ed56dc2d3a4db667042b72ed9e8a252c3749a907843b131e283d490d80823c1ff8e47efc14e804584d2cc107b809d05f15e54865ffb799a9bc43ab676050af0e55dabc7f0e1b9efa1e8cad474f601ccb9ba6e73ee9333258fafb07ecbd98b06d5821f194cdaafc2ac72deefe7f9d3f27eb8e96f4301856c831e37f4b2c24dbe7dbecebaf165fd44d1a91cb585689a2ef9c22dd62196c2d7ccbd1c3dd2b8022aa628862c4269b47c40074f9ffb7064c618beb2c506ad9d61a50bcd9f252b86512b0193559652f02096764fd722903e0550aaf6521f28801096a670e820a6ca1dcdcf7cbd2b551d4e0cee7057081e28fd85413575a8124a1f5b64dcdc590f263aa45d1e0e97bae6ddecd347c1304d7cb019d706866e11667b2aedc4401df239ddbc0fcb0ed444ced2adb96a9f3fcbffcb3e96526a5e46c4a2325c8575a88be84c1a9110eab0af7699d78a0f5a87fb1a6c188c6bd5157803bba2e622f929eb7c004bd4bd4cd7902e6e6488820244f3f9096c4e16f532b7805fac98ce036c12836ab41887a77795afe9ba2366acc117012acb92094c7d11d3f50e91cddc1a088f81caeb3798222831a48ad7501aed11d4f3a419f96440fc399cfc37115903033ec3b8cead43dcd43bd3aae596a2eaebf1a687d7841ffcff64802f780c8cf827f22cd897cf53ad99330b7bdab927bd050fd224783c51f7d9b03c0e9ab0443a522d40352e3f7e7dca443639928c9d4d8606d51a4a303a910cd2b3556acdd0844a3f2abe982e18638c203448a9f555912f0b765570589d666ac5825eb274b9eb60d5ee6029e3331bfa8e952fecaee1fb64bb9c06887a12b9eb04beca9785d28c2c7f5c50f9a6a5cef6aae13e3285d96a46c32fe0014deac1adb53a2b611616cffe3cad07f39cdf0ae47ffb84d8976d8eb9de338712ff70f381b7ba3360559a964ab60b43754b8c4db2033d23183e9fa90344a86d827a019595bc825daba0a46f7b1c1ca46aaf6b08c97a3ab4b245bc36727bfc19fcc603d15818e80522304014c828e298bb0d06f66d691ecfe695de346466d180e82814a7a132481f2ccfdc20888b40661d5a5eb1752b487e3b1dee218ac0f2c0de46bbf07b6548e784065ca0bd61ba823873dd576b8187ddea0e6fdb1b2f9474a1925cf39249048258ad102cd7e6710733327c7b45b5694a0248fc83a2479e49eb65c0c4eb08bdb9f7292f420f543a5c7c13e306059bbe7cb39005198bf3b5cb40a86d6cc18e94682a57c3398671d83681809e5c72b3a24620762a751056b57c68c2a19f3b86ce77bf6aa5e34b5fa1a3a7ed2e7de89aecb661366fd949f804153e90bbdbc42d4fec58010da89300f015e3d40b942a7568a02b2c2f71d1fdbfa5eaca21d394ffb0a6d30c0a3351b22ddc3930e5264b97da2327907f9e3b40173b3f6ff181976c423f51e5093f1d708b0fa38c00c9a7586b8060db19060cb44719d1d04439f3f916b6d989a1640312f04483dd3f0b11a57c63182c3eb19b202a879567736aefa011d6477de3e6d6c26771cfe8639307607a35ac16dc760851b9997063af920d7c8ebd0d6299c3db6393fc0873df62160f7c5a174a0d3e209a2998c33fd212309d5a8f0268d9ec5e39d5d00784a0f3e30e0883bbefcecbf99e7c4c345001ac0e3e5486bba6e1e4a0694507647c69d49f689328e47a52c03922ea7d096b2403e467fe6df269897d97308c1178c5bc447063489656e6f5138e3be8afa6688905200e586d77685b20682d20c9062a2982ed3aee4f12ad8e2174070e04cf8fa9cda67a6ce10783b578ed3b215f92fde8a65272c03e54dd61c1d386828e65faa906a521cd851d08044a65e5a0ac10e39861aa3979204803326f1e7d553c990b49ca5dd2828325c72f56e14ae6af62b25d2c787ce3c8e8736c6ac2eb027c2379dd4054c3cecd8faa75ba5bbdc843d49076483e5d1c5b6c5bcad0ab47c7bc56af2a3ee5733e266ea86ca916621a660b1cac85450b78c9354ac54b4428c4c96b54792934013e870b29c67ee612e5c4c40769dc2ab2122bfc4a9440780644a7109f4a98e1e29212fbdcc078f543236d45ae8e4d6c45d929906b4eb181b27b029e01837c881447ecce5bb65ab9ae8b6e508850fc712e98bdd1f0bd10ccb32e8894bba609eabebe579133686c11326d03cb31ca24e7e2c374fe123607ddfa974483928fb483d28018e03117c8b00111d02196a88fef885a5b6040e37f8765790ce63dcba31f5e73f94f5c4165b0c335480683bc8e32d73300df80d12b21b13aec5712be78c82c431d8810e0c75ed13de953c7478e56f82f4761c9962884d32ae73e48a772571dc3d4adec529f71b31f7c9c0814ca2c7ff06f4475a8eaba24a3a660e1a7c8af694bf03ca3445cad7036e3e57e317929a8b0153073c2129a4912f8a5e0bd9eccccc4521c924f1197b280dd035874850894edc2dc43f94ea764517543a75431a137b97f9b5aeb49f3bd213758ebae6bd81820174cfa2e472e0a1a4a444d4b307fbf3f9795dc0898f6f35241fcfe486bb681a3e895a88e45302822badfe1b337b603968506bd66a5dcaee1e65d368462ec41a39a6941f4516e20c3efa31c6fc5e14102597e6da980f083f7ea6e1da1f781e65f52d64102ed706190006cdff9d23568c88e122821a669af61fc436adf92acf4bcfe25d0f6bfeaf8057c355cd4165ed311588adf3895bca1425d16273e9bc4d1ca8ca8815b2b9fe4de990caea67a07478870fdc4c5712ea4e504a6834afaa1e06287c623db558eaa142c528196f11a2e27f088485fadc5d9fb2796948084865afbab4816814895e16a617e08aec99ff934658fab810b898adf219727911feea9d1c16ccf0c01d662a7ed17bca6139555833f43c892f705137bd8398130ba5856cefca49f953ffd82bce369123d85531a53d2ed7cf68d8e007ae7c6f2bbda105b93043d9c061ffe39c60c6ecd713cd1bea46fe67efa52b45008d23f436272077a425f8bb5f710021d5c04696dcd3b3d298c75b71df98477c47b6c23e9b327d81421037d3d603951e6924ccd5a79d13dc09efb2009c9e0b4ba3258123444de3952ace15beb6ec467fd1ab5cda3f6fdd86e554e7732d8660677511ef8820fd31132189805ac0cae68305dd50939455096690af06d213ae9e1cb7ab5827c04896b42dac2295ae36890de60307c840343de7512c1565fbf9ee438c7864e9c6698cf8a8855f636ae3223f0bf0f4b3c964bae1c861a3417c21aec5a4295340d2f5082da1fd07b6ccb338234b20c5f863f32365d802b9246d4c26924a0b0a71bfb33bd1dc7b9d4c62f99c74082f87af496c59f2c0d0461ce36008ef7e065645c1b256ab9f9def840da435bad03152a16094ac6d51565535a22d2a1e297e27da2d82718e6c94168c134d7cf4c0621fcb2a438bbadf0038eaa21655443e6107fe42c87864498733a7f7022e8e298fe41a3e46d9807566130d25fa7e0050e6cac18f4c6b46e512ddbf2cbc8e744f66243069795ede915021ed33d06b4902265ffc6617f00891bec7b455beb0f27a50ae9f279a6b026939c3a5cab8db15251ebed50cb05235c4e09277e182808f68e59e03cd0262a67b2eaa5e30801e6babd33dab5c3507b9869795f4df4240ceca05fedc5576d133c464535ec461e88762ca95e60b0e4a8b6daaf78cb44db546378bc07212bd27858207822ac7a9ee1f3897a3cc8319d59dc192f9ddd16f6ca79f8872f989588b6dd02159a7b99194f27582fcbc4f4c3a14051d8919e35e2923545a03f2382b3f0324e6dd3a7acb067f4048f1281d080ed755cff33601e6ce5551d22d826791a1ae7fe359a375ddb5f53c1437d1fe3048ec125a4f45d3f1c402b9d9aba4d85dc52a094492a45133799f3653431f047cd82c7c98d0bb17dee14bfe8545f516a5976e0f5a724570c164657b6b1002d519eb8867cbba6d5f0a98605db90537527cfc673d31ab4162c0f01c8f6dc28e1ffe876177954b9d26107bbd2b13b131ae8d3b1a9be02737cc8a647bf384ca6ae8b39014fc7b6fec3dc9055ef6465e180ad7beef0faa580b73d44a348b32f4890a5c6cb58258d25124e5b0c096d5f5d5ba034e99716d40cc7336ae48802df85d90c5d8717b4db64512ae8818ce6f89d42018e5a20f5126e222a77b83bc970973ab20a1ee4486731e3a8b4366f4462d332838de5a8d37a7cff3e5ccf85318de5b3473c102a840baa044ebdfe911e820d035d2f82d356f4fee2dc7b80e975c3dd8f1515d4581699491fe836cfcc6b9148fea733e48e20d38b18a0149f3c3370ffcf123f12a229e15bdd60ec34486d9ee853022cd661d429effc41e2aee43c6ee8cea7043820f7ffe8376bcac18644e879260259039e81a125cfef4960fed0f934e91c97b837d45a21c5a6548891f6a1cdb6c11ed67396fbf326260dbe1a85fa25c25f0d58fd80bfdad313f2748c522c87deff74f84350730f1a38e544acb39598287c1b3a98f2d649af7bae6d35a878d431c6286d119a302b69d56127e3ab55952df8f2c12d2b4197193ceedd1b52de461d3670030343fdff06ef0f07a674b7f34b3e0ab3da2b17db2ef26988c3902c0993bb931f6f46e6ef80234d9a121e30e807d2ec6968c7abeee64b7174d984b0609ec73aa34b4f59fd6482f9512ff368e5d7ae397ba56f833ce5feac84e0711fabee5d5f8a6308335b2edb9000cd5cf2af0d013cacc1486e86e2e9fd95670ca066acebb9c7631bafb44c9bbb03a3effc61ff48edead378176f0587f041a8f36b087af2509b85e7544cb73ccc08eef84c2feba8f77ca63809ff000642c5788a3b2a7e5280416f78caa6d115b4f475cc9afcc8c3e3e42fc3f551af73dde766699f54f76e708e1f87388ac90f7da073816397970e7dcee581a2713594f9f74a31587dc2db679569f295cd02cedddab0095aa77f78b0d89005415b80e510d3d70f81fc4cacc8032428ea12661881333a417f17b389f72307029f9416c94499b921f45ac406bfbea074a1ae89289fe517cfcb5928607d26804382066e82a434f7ad6678df121b9ee5829dc4aadfa03a08c61474e96da94e6c18631c9727b22301fb79dedae8b2136d75e6a0f19de4956d629c543185d074960a102d0f9d2cc671d5151975f3c1b3ea04406966a6ff2cb8939afe5948fa865dfa50f63172a5c2534c22e4bed368259f315e8296a00ad0202aae0de42e1b864a918a3df16ff8d60dfd52ed2dc9de376a916b34973e3a7486391d942b0486eebf7865214528f99146784621a4b6e19586f8c510c0eb252ea0689086f602033947ff11bc743c66e67714b64a186c8d31185b3c9b6f9f7e4c545dae52c52683a59e11ac6430ec9c42ea2dcacb84d984e46b16cc474c5d57e11644d5e307b0f9f06f2e0560fbe91ef008d27a671a79a0fec3eae9bb943e6c35fb65245800c197891a19cc2078e09027299d6215aadfff342d05a5524d058ba7188b41daf8c58b51b049399597495fb66081785d2b9c574c507a8082eae4f7daa303c07963c93cb022221652d765078dca376103a3814c370827fd1b9103a71c3b0806375347af2c6d04a67cb77e3a2bf4396b483f02e04a821f9d5f4e180e9f8f5f881e8236ca77586e66d3607643887ae2b7a9a44aa117c742f8a80eff15f42eec3ac081e792582f57cfb0ed6b58732a0fb72d3adf030cad87881ca2bdd175673265e5c4dd73267947d40567b8c5fff7fedf60991a21330014ddd78b8909104d25e091bedfdcda8f218e4362e1d14609079af167f465c278f28a5238e53d7cce60d47a5dbbcefc35502d879718e1b3e5e8b2df25d9bfe61d7a69ef99ba65e11a914fbd9cfa66dd2741ccf68989e3a80957440d27c4dcff5ba39c898c2e9b130cef1ebab17b7de78f3c417e154951b13bd2960dc1b67ef2243c4e5c232e6ca3321eeb50d0480244315724b3ca3744ea42d50dfd74430de42b8fb0c1cbe724a21bef8bab9638b62cc74d8a0fcdab60bebaa38ea42de741fee961807e76dabf587980b49d366c58b56e7d116faa968c58acd35a539be10c5f6d9695b541a5fd8e72d3b3a0b12195345d10c0b9545d68eb65795a813b885ca08649518f061e947aebadb8f5a30badd8ef583a0182b4162d8af49eefdad20f844e7a3b84df47b6089389c0ff416d8ea841d71d940470726054ce54c1f9f1212683cdfcb0e0567b5b1d910cad2229ea6f98264652832af2b51a415c655ecfc192ff707c209ecdca8809065cf95ee6b47cd8425970809e0f766dcb4716653a965dcf6bf6a863cd24b45888b6ae2b5e2cdc468a0300803fe0d00ba92465ccb46e5e48404762741cf7938f3ed54323e0a044a4e77d1c8d332cfb2d0d2a67d6404461e80579a8e2f8d61dda0842f95422a013c2fb16f95f308799caa5d8d25259a52133b2233178fb11f5159923f488ad18ea01ab6814316a9c83fee5277f6503c8adfde9521ddc6308ca541ba52e7a63294ce11059e2b5982f59a41e2773c811bcaba42a8a004fdecd49037b98005a1a42943c1701391394e4c3e2dfb946ca990b6a96f379cd6887ef267bc0b356e2d288b2093f29f46867f1ab55a0836fbdaaacc8539cc69e00424953c0a7d0829889f231f3cdb0aff35a71b1fed748b8d80e0b4a91780262345ee9eee36a907bfd87053484c710704a084c22eb7534c419b3521797f4c8196c974b3f1d4af18eff705dc7e7ae503ae230cc322a70de89ec88022da50f497b77d253f460bd4844c4aea7039e8c5b03840d3cba2ff0a15c19effaafa3027fd93cd7b3b08ffadb13e4dea1e4e9bf43625f44ebe0ce2c9df6d78bb0ef894b6599e9edca69806e55fac2cac6185e3395d3e067be26a97b6a758851d722c0867823f5b115db31b8850e74f4218e3f53b620b705c38aad973905d0730ff8ddabde60b8c646a54a353dfb8499dda0659a2df7d1623e5592a8129082e1c48f523f2212389ff8cb38ae081332f15e0ffb83096eb71e10797a0ecc1a0fb0bc182a1c81b4b3418cefe6b9d466b39c069eee8705d761370051a1682074a668eee7fe370f230856a0f330e04747c858f929686e3410e9a3700e5cbb9246e5c6eedb7334b319cc76d5d30c8ded6b626d27aec214b364eaa8fbd32846601acdc51e3ff84f3283a0abb315b66173d737314c200f8805ec202eb5a66073e0336d58eaac8dcd308ace2eafc5f50a6dd899358073f2bc4f91fb2310d0e1b58ee435177fce238f16f6e69f15cf23a7c30892aa8547624b14f9a120c00fe7bc1f7505255d92a65cfb1e9b00d522214cc32b7f0b14355125f92d21ee0d6f0f65da33c320cf23a082ca2e3dc39264eaf7f3b6dc45004c686fda8be58c0e1209e6247ff32979f5e738e4214cfec5a478a6e5a92c8c436c60174842eb08dca07b14001287d344b1c96c51e34309610a003036c88c8b97605884cba58ed33e4bf70d1131803d1137437da762ca3ad9d9b14efec02c2b2d38000b36e23faa6104d512de939588fbad7e5ad84748736852ad024a6a9ea6c187ed77bb80a6c6aa095e27f5fcf2e5314198901428fcda430f4c57c1965e89a53ee37370288fbb97b15f4fe4087a4a715d274dc720bbea41691942b8f1c9841a8dca7b4d55e9bf3899f5e44826d30a10e58997498ecb2e45ad32b794740505618a0fa703e5962c6684bd4c6513cd485cb6868c7cd8fc651ee6c8a22adb0b3ec99677b8ded06353e7e9917a00d4b16d5c2e2daf1584ef449cfbd15839860583a501494bd779e935f370cbb40b676e5b097565d344349efa4773ef2f75d1c6de71fe142d294ad21130e88c90ce195a2a0e096608056e3f72e253067d6edace99352a3953bb3640a10ae66cee7c6230016b59468840627a9d7dbf8e03cacd28c0054e3a2a008c417363e4ee0300079265d3bfc41539e9c17d1df4c3bb9ea50eb20a6a5a116a6e5de29d5c9c9ba67a620a38745ebd2fdbfad4479b878591a35bdc65f7cba1497a7b12a7409789f3a4ce32b9ae4c8b34243f49569b03dcbceabb5ea482f4f1cdaa65d4c1ceb349873a1e2165e0633e1a335f4128b12c8ede6c95303daecee286c0856935a7414ab4465ac337c404479c3b3f0b02511e0468033256a9e51021b2f9c6bf3b05a443e608be58fb9456c42e20e4c4be5b46d7187f6d2120ec1ba28d8d5dac56356bba95b431c5565ef325af6c558d18cd8d68292ccbca72914695071bf6929c458d866272da1df54fc0b5420735404ddc50193577b3759456b6e81a81cbf64948e498de5db5b27799365b226392d754d10652a86c44aa807ace821334cbbb117f4e8973e4496f66f672dc630e9ac74c34bc237bee07128bf4c72148f36d22f86db456fac2bdd8cafbb533c280fc80e586f30f99d147562078c47ce2f03b4f20e4be597fe4084eaa8e320291c17a9be6c564df1c1e19ff161b334abb592358cd42f8873f52bf0f2c62aaf41d919c6bedc527a8123628faabaa008598da32d798157ead0b5103c7fae5f11d076fae426e512a66053fa3c82487ec3fd087788fbd231386e8a4b1115e0bfea24660be26cc64038c9263bb34fe45877dfc1e71da8a07fceacf8f688e5b377f508f1ef853be18d2be5bf4abfccdbc0ed5e54cf8e7f3e89eb2182d5b272b23f1931a2b73532c8e1825aa5606a072457a48f848460bd3ce9268524d793545fe08ce0cbe47ebecc1cefff61993707cc8b7937bb88667cbd7db43971adcc2aba56636599f8876ba5c07434f939d844138f5ae9002a0f01f029969508f19b0c795f33afa027acb53d0a56ca3728bdb96b689655c798b22a655fc866c1f3532275310cec5ab7469526f1500989314122ac00e7a297ef80f266d59835d093e34ac27cf618b1ef1cb4a9f729758a96560dd995d9849dbd428c97af653756775169340777bc5fb496058219e87860884dc342dbb2a3c8d8a2644e23bbbd4cf66de020a761c717bac7f67a0dc4747dd97363d62ce5972cba676752378eb05ff8e64e189b96a3d97136e946efc7613bfe2d1f3198d30be6b5f9418e22670dbbd40dd334f2d8e31f8ec0fabd8e1178c5980c64d4d15e5d59b60566f88cab9d2dd51025dbf9a1602c3be5154bafa6e820ec06d0082ce035f7f556a67ab599f2523ceeb2fc55a9bbfc181e03640704da928a8059305656a503016676f00f7686e37c00c5ca32438a933bffe3d4aeed85014d7bd040951a2d42b451a5fbe239ba5b9f2b613a2c0a086640bca012b48452ff8868f3c17f0e0af937fb5a3a14354e8d2f09d97bef2da59452a69402c207b707280831cf97bf6b4eafb172326919d7d59b9b8f2e593a07bd72bb0181fe8898f20fd0f9f6197ab54344007d3b0dfb0425b72e086686265680011ec264392cc8df1a9d79cb4f5c3763e23a55462f6eb995a1032f7d83fca47085e91186a9000014549c5e6ea90a0088a2e2f4c7c7715cc3e32207a49dbd06208fcb7220a1f20862feed746ce5ee7b4c69addd7a0b30c07678c8d497eba44b293d569f1cf4c8c19bd4f60e638f43f5aa61061f7bb764e61bc085bb9043edee2e8470771709ab1083bb6fbe587daea7de83915b4fea622749173b3fbf5decf0fcbaf6db859033fefaed4248d2b3672e5a0d8c51ca49b3497963522303fcb864755c186f5ad5e8db5dde4ea78cb754d570f096b71a35babb9b99512c2c376ef08d686ab191137846f1c6c2db0d1c2c3870e040d9a88103c74ac58103c7098749c38103c700ae305e1bf1148c9b79b79beb1dbf1d13a1a43003aabbbc946674c9529a69359a5683aaad624f1951e92e6f5d396d77bfd7af5fbfe55d790206bb290d58aabbdfebd7ef08c358abb98470b0cc1903f50ac528b51a54abd6bb6b6a535b748a8b0a535cd42efb1daa292eb800eb340d9f50edb2d40d529b7252b9f7d62baac77befbdf7fabdf71eb42cad06fa7bdbbbde6b21b06d0cc33818e1c2850b1742b80b17a68ca81ba38492c20ca8ce99eaa2524a33ba24f5f3d0535dd48e6629232a866529232a9665a92dea7aa6c5a0fd42586b8c35e529232a46218cb0d695951a357677771746086b0cc1b8f9bd97d2a2b6c3a1a221a25fa2a12643301852c156854889880a9114a2329e9dae0e1ea2783185c80ba45f222fa0fc2f911760fcf54be4851753888a90a0d05fa2221db451ab96bb21b20121269750078c64d090293732e89fe714f178b1c4442cb192fd816808e9bb8c6828caf33685de655e008d1c210f41c6c8d49f43486de0c7be3f27e4c9cc3d39a58412be252b56caa7d0bb678acbbd3c305f138d906a5bb661dbb5c1d511dd929bc60f0a6c73b0e68c31ce6dfe906e39d56ca65b5cf72005d241872eb51fcfa7cfe85a8d8c6750082195ce3ee99c51b3d1d6a5ac8930c22aa92d5cb8308cbb1caa30a4f25f7e394d439e7b6dfcf4dbea5684587941e54106ed12d56879b87cd46430c05f590811f3ccb50899513b01e808bd00745cfe329297116d915c165d088a69c4a49f9df9154dd1637adbd7b6e823661eb51a8b99ee93793e989d9fb90e874ff9e88d5f53415d1feb43ba4728314a3c6abf8131cb472109a43409687ee282c0dcc451edf28ce3adb6ea867a394d2bc19ca6236b94a3fe60e6a40f663ab6d54ec09c4d331deb2dc6217607bf371023cac78f4453668845f3066120fd7407cc2dfa19a7d8fc186d2ba0de5a4dbb6835d3a555d39999d4f6e9343d8956c77c40afba4844e3d367e855fb741a7a45e3f4d5ac6d868d86564d9a56996850a7cf98f49a3ac1c3cbcd4b1110f2f00244c48942001157d3a3a8d2a1bf9739f59b9957410475fa66acd900043f731c0f332f3920d02397b5ea8893641fecec98cf19bd7dc600e99c5489d52c83121ef7d132102ab13c6e1c6c1898ead5e4b85321e09cd9cf08eba2df5c422a0ca91c0f97d0430ec8e32890e63ee084e80ca5ef68cac55fe43a7466396b3c39e5a473ce07e18565fbe08b3166d93e2d5b0cc6c8bd971fe77720f8c8d5d57131c6615716e4a1e5432a83927a0724a5d4a7a42694dc5a26cf4cc73c1574b9d198f2211d3bc96d52e926e9d22daaddc0539b493db1fb44e5187a453b01841042d82f430969182da63d9f8431c2d74c2a3b7c961985f0410821f44d4218a9430851281b33ef3dd40e360321dd94092a3bbfeb6344095971a227ca775d0fcb349349cbb0cb0939237c74cae8f0e90d6b3b2071f7d20c4b446feb31b33403b7201fc0e9e1bd37b9986305c2b5dea57afe84707e2c26086360b61c16ea0665d12963a64578bd29d02923d44c0fc21815846cd129afe704b66c9958dec6d289e5c65273b33cc812513586a785acaabdcb56ad134453d2031af1c529e37ccf12b2d23ad2e37b906339e58b904e592556790fabc42ab04aacc21fabf0dc58070821bb7adc4dab76e855454a610d96540e6a495fcd86fbe796082a0f6649e5a82bd45aa1488592279440dda0e89430b2a8607c4be5d0599de521cb2d53a1e49b8fa031258c8fc5284867895472bace936123a3d6316a1da3d63172231decd96875b4dbd0011b9d588258a0c0723e8328961b5d8c0ac6b7548e952039419692cbf9c8372bf1ed3cc483aee71b38321c6fe36964d91720fcb9e580c30574a041f6193d666876c468a21c0676d8827c605790c3e91b5a0f38f828d5bc7d9922ca06cbf2a8b1c223fa6e2c28ed4705a6bf6933fd4d2c47b6d6afa624f560503a2a9c9e591e6b71a142314a5b8e196b0594f603080a65a306cbcaf6622cb7b64a8fb80a57ae3769a715867c7ba7fad649e5d89518ad860ae4e828e503f88e8306c0414b008911c3f5930b82a4723c9930163096b771460b2cb373f400db28b9df7b90a39452f2a47cc88da7fa881eb518e62f07c47b251d882e371eea233ad4965a17c6190ca482296a674a1823dca5ef3d19fade7befbdf7dedbee2906f77bef4d0146f8faba7c7969901c2bcc0f5b2472cea74f862e6fd7db48a35e323bd5ba32d56ae2920316cd7679e4605e93b6d7632b9796c598213fbef6deefb803c022f1deeb6ee7e617457c4220841036afc718638c11c61863e4f9b80b3d107d22845b044dba5af08ff55c9006d07ce08f89a9014a7437c4b4641c64da70e015328390f9253981d9b11d4305fa98f9aabdd27c5be692d2e4c998b80b4ac3b4373542ed2ea28be82242f5aa350835cd57d35c989db7a7009ebeb6888969d5838fbb8e5a7541e92a946e47fd20a2f9a64328d764fa644ebf707b9ef3eb24867d6915bfd0775169c708e239e174548a4af4b4c59e85816efa79189d83a0406fbfca8063c0a0d50161e4224f0c7aa91395a8a82f35888597dc518a252829eb1394373bc875fc1bb6a51ae6591e2faed6d0a27614487bcd04638a97deecedde32c02436b1a865190f330f84677e66dedd442d06cb69a6f9cc771ad7cdbce63a3ef33579b7e333d4672c9fadf059009e25e33acd3167d9509b8d154ea6ca759ac3cb07f0ed9866c34c238d3498f0513ab6c1bf280f331f39205ced5844eaf22ec843ae7b29fed9cd9994124a38537fa55ca85321cb3aa2a296fa6caba10fb609a8d319cb629e35446d999ef3f3c53c8deb525589e6f9cbed07f8b45b4ae7e47ec90559895c0df2646e6898e7cf9fa752f4c9aedcd0aae72b90cb9e30d08f8b8b132f8fcee8e2adea9dd4697a723f621097e74dd5dd2a177f7954ce8e91ca88aa1c7380ed8e5a2bcc762a3f9c10bee4ba2a3a85f7801b6668558c3d7670e4c817c8a17694192587ee5a76f468557bcb0c37a07eb59aaeb2435a6520bc41bde43a26c2fbe7ef1fd7b5bcb4cc00011f08f778117a457140c05f0e0874c8bd97f7e24eafa83865cc57e84343a58638e100fedb5c703ec807f16cc10c85446d61cf79ee96a65596cfd0aa6607c8909a0ee0195ad50ef05e35e5a433472e48e7dfeed2dd6c59d32dcbb29ef51ecc79c843ea813c6f6f157cbe2f74a331728bf35d4b74e837a9974eb7a535d09f13465405dcf3f297673088875c77f13f884928556c4169b9ea3348334aebaae76b56ad3a392b879fceaad67eb4f094e3207e3ac39f1c6b001f3bc10dd5e104f1cf97ebe011959f9d8a3ad9bfbd5e4edd29a5db4bc334734e455dad869ede1b31a85d0a0796164041354c6744d44ae338e460c9987aba71974a45d81c4cb54c6ac21401c098028c7f5ccb8f56b1df8841e5d419b55b2899744e0796161c9981612d9ae7acafc6272c66dad662d3995cf39cc74c268f6e7a8cb30bcbb6e7d86bce074ec32ddfc76036b79e971c3282e873fc0e1571f4589665dbf32b8699695b27c33e909b76cda36b1c0fedd133ad267aa6d548bff6724d93017254becfb61f7060d1df20892b7eebe5d2815c1e6ba26b9767cb83f6538bd3781802219e3a53877479585d08fef24cc7d334964fc0b01969de6e0e23957f4e0cb60d3e9c3e7ac64ed3743257c13a47e7a3e764f1d07fa0f9e839ab638144aec586010f9d010f1deeee7639fc587016be9d0518a0e9db7fa8bf5c0bd177b7fe4ee37beb4220844d4def73f82090961f0cf8f61f3898c6ef4c428bf42861af380a959d7a47dfd5820c2db470c550df074e8ac1df073e7aeafc025b4260d42fc734194d119e6a887ef9db2cbfe0e59435cd8608c3aff6237a07c353ce07189ef2d50f9a34d00f849c92fb412d966360390f699d2eb910b448807d48671f92e3c97c4ce7813e76a41341a1431f932342c8c987f4f671ea1a62800fe85e3b74d80d4464459197def2437a74f93aea96633548b73a4ee3691a6f71d2e976fab9ed0fc9d1d343ce8713cb802aa18933a4581a4115cb89a529c2e8a74b48b919331754e840e4463a39bafddd4da7dcce8d1aa93d6d902e6b1aefed2e845b734260ccdddd5d82541198c83ac99664605cc1fc72392597c7c8600cb87cb91d1a869de90e44a8dd42c1e1399467c73299f5c13ea74569ce5b960ff3ad285b33177a357db7e95bf3eca045edb2df9956b1c7c4f09c1b6d155d8ebda2989fd33cc8ac1391b0bb4b01e6eeedf7208c35b2cab0c20bcd1a638c316ed2654bc90dc3b28cb3785d291c440c8318f61a630cc7ca47aeb3005d1d1b2d1ac01db63bfa10c098b9615e86d662e886dfefbdee6eae2506fabe8f61cf0c60dcba1e1f57bc33400def606ca0bccb515dcbae2eb55e833b6da68ddfdd531ac5b66bdb563d8f395efadc6e7ac01e2b3c4ea080f009cbf218d94d1108337171c983e99e8f28884b68f0ec71494b8f418f72d47e30165a6041a31014929dfc54b1557133d7c52d736b7b8fed0a0028a8999f9cbdd9351a723ee3b62eabb1e5716126ad5ed5a461d7e95a1e976b3cb0939bb49aec74f2d56a4edcf67c31379f47d4063fa27e20a089a222fc737862490466661f28e6fcf0b153ab5ac66439ede4cb766d0040c175519a614e1d428cf2a7de8dea41f8bc2d7cf057ebac9f16f4b1d3e34a83dab14beff99c61642dc677097119394c440670b2214537990ece4324f65091405fc2893857506623b5b1d74ca880722461e5e82a18353acddb78b8848ad44e0a49a1e5117309ad20a9b8845c9e391c41ab6348ed56c011f42b1cc5bc145a1d2d857004a9806416183f06b3776a6af94accf2c93197010aa9fc27efe0d399981adcb3d2165737dbcd6a340ae5366cb80dae06d7f37685d3bc725ab7522f3595a48b738b4b323232e22d88ee2e8661338f614d69ad95b999ef6ab6429f39c6b516dd450775ca7178476bcf778ac341e90d2e76d2d3b1d1d91940422e2e352ed0eda599e665de51772152f9a18c754df91cbaf06febd1a9a24c8d288f40bf03d7396b3bbcd7d3d3aad67a2a2a8b8e7b9ca712ac5002c90a2590e875093d10ef2ea11ef5393fdfe61fda799faf03790d380171ace3cc079713eaf68c541b4b3d191b1e69cac656635bd976ab4fd98631698c1454a94f8f9ae652ab69cda4b5d65a866d526b8b097649e9daa4d4b36c1ba3d896f3f464795b9e65da6a1ae637a9d7fcd26a340cfb8b52934f9c5d9210b39ce65d8d6a9511b57dcaeec1fa4694872b23ec9e9eef225b26297773b5b6bc7ed9a3be6b87ea3297940b2eccecd897563d74e9cf177a479f7cc5aff315cf4ed65b3681696354ab9d050a159572a1ce539660cca25643358799065dcb79d39c73d215c73ce7a5ac2b529e7cb558b79c8f27cda5e6340f896bcb3fbf8e49fa2895353cdb6827e0f9f42825a53d24845edd8575540a4a87324253cf1360b24866978526d4ccd925bfbff4aa5f7a46e99c73cee9cf4dccd499d217a94491a0df2126a63011e577680453be83013bc9f0d23dfdf3eb5d3f591efde497258a4ac37bc0ea6089a276a9d47b61242e0e39fe6176b2f4ebadb33a164951945814a344d9d54db16eb4db4d26cd6f5226aea5db5bd34e94d2a7693eb72bcbe4c9fbe4dae93a71342dad0d7b26c74e0ec434fdd45b97e1fc1e9db6556959ce6798f496402f69b3f4028baef5000845518aa29cbe73fe6935d776ab2cfe271344e62b27ed04581e2b7d6c3dcfe179e937a9962925c48e2e871e637cef01795e1f7b8ef90e1511fa9c9f5b97e1bcb5f4127bd80fe4d6f1ce430eea4a650a51154bbf442f98f2f597e80551b431aa0cea06d122b59856ad8fc87902daa5c738678f1dad7a3bde63b0e8c2bdf46a695ab57e84112441c1110a96c01c895a60c1f366208564524b9091094920d6b19450b194a001808e824e6b5ad3064accb08eb0be484da774d26073ce25407049921b4cc6ecbe9e75164ab7446bb4c41632343a2ca1039dd3efd012552cc1e48985d2067a84f045e62f964002851428800ef0baa88748c9e882c2ca1356e21018127809b3f305a37cd2b2fa07326666c7e426951ed2d78e991e93ca15496cf1051464407144ab62908678e08a2a8ca63083093b6364a88cfe0e297194094924507a5ab20316ec5021e50b22184d312611507091861311b4c0c788153f9044c0a28b235d9051c4d01652ba08a638c4048af093c4072df8220a3b50028c1c2881845d52cb63fa941c9f1ffd8eaa2e8b49c7095d72fbeb1ebfc0dd2c451245579c60c98d1676f77517dd15d81c93594fde676aae7f8e36e8b7956c9491b4eb1d63a38ccabebd44bf046c5f7cec9389eb5dccd32d5555ee33313133d008e1f000f661038d236e567a81fd362e4d9820e5c56229e8501243763254269950e5ef5012423c3b1a3b2faa1c4a605b3df88b2124a864a8ccfa1d42c28cc88418585c606808a191052f19d58a6f1cbf43483cf9fa3b848493c905b62fbe426380adefcb83b0176a10883ef6c1300684dac5279e9d3d023db13c6093a0e7e012be83f97df13db8c59e08ac0f29b92042105d4044e9043d404a4be90c4390483105511a53f86981b442c69d224d141162f403329674ac1ad8e0dbb39e42e6440e809c50c4839f21943089af48ce114514e184218440c4094de099184cc10a15f4f47bef71c7ee9b997fde38ef6d6a24e982899f810e9d1fb3189605042b844860032d80c08416918b2b0a591f24a18a2e888842118c14617134749ba1554ba40c68ea85c000da40080b88b888504207377e879468f2d877a9ef524768e1a200a02fbdfa81483022944bb5caa50967604d3802b536b738f56468de1056139a4069304a69ea9d904474021332d007d7ddf0f745a40471880850f63b444489c77e8788ec5c37f0ca95fa53cbda3d059d9644017befbdf7de0a3a846f210ed6bbf7b4f8b7420fe43d0821e4a7fa17f30f3a148261399a005b2dbee31f3958d8c066b590d1ea6d5f0106f8e59c2c3e3a847e0169de67e28d0c9f80edf2d0326cf7dab56877777777b7dc8d90f66abdbbf6ebeedddd355950a0fcad280f32eca92db06d15f3cb86503bd47b47579b7269e13590d3cee1f0171df1f33b7404152f7e878e58f22897d494dfa1bee343a022ff9e08fac7e1f46f20f55d101d1d9dc749bde95b78ecf24e7b1f5e1a69fc0f3f44bf365e1d4fc77308b31796a346ea7bfef78a1ed4b1a276a9eee5aba3bc472d02422bab8f7bbce2d1351dde8957385e3239cd832f7fda4c4728a6b2022ab17bf4e831e77cf9e1d2840943f8c8b5fcf8c8b544cff9684565ef1146edde0e1599edb15c073ff668223a44ef08395e0115a843b110ca32175a25f31cee68988e6955cd0b0c2e50081f17d32a1788c0f0ed422a845876490bf2400a210e5c96503e8712f598d318ba2a0bc782efa915e4824d82f07b2d36d3e3e41c90c3c6ccfb7ab45753f3f61ebd6aad67941947c339a0557406413db675fba4072928ad35959a99b192ac24ab07cb4215a1c506b6d8c4071255ad62ca3dc4a076a9981dabf9e48b356bb0785c8a9a3146044e08a16559944a8108b609a8312814ec32c9d98542bd54b6ad802d9f96a41256a98fa152f0ba681a887571eb588d65319d935bf781a75c5e82625c794e8410e5e920f975228427dfde4b4c7332519694592ecd0a873957b9dc0407d92fb0132e40fbccd809b3536637b1b364d628951cbfd4c32ddbe6d6f51384b84b1175b7a5a4545bc98a568c41ad9442a3765cd4ab7d12e531522bb154a9493a49ab98f492961ff1fb09fb020edc549647cc7e9170e01720b00578fbc50d8bc33e6075ecd147a44fc2848d5ac571e58c8b2c43d12bcb90c8ae9a6d2e0dd318979a5261abfcba1c7235f5b2c6cd2565a4760588813cd8eea8314e297bed55639a3f15782ac79069db0a38738845c722c41e1677d6a7dbdc9621cdde7b2894bf25273c3afff2eb644894a75d57a59ab93cb3c0ea78ce3c9c71bc53e3079586d2d75076e31c7103111f3ec1f68566bdca387608c509ab6adf554ce20c068fc378efbdf7b8c978efbdf7b8c3e8f7de7b8ffbbd202cb4c822680c558ea22254a1822d468f151e2728e821c6d1cd1e5d604c1146184c053671e408a63286ac528c181d8580268a8c708312e335155530f182c6a0145297479f9de26091ac294a5cb0483892a54dd5d1d17932e9c4891ec588618911e3b1ce832283808ca4904163ac93d3902d84b04ec6883d3c64849dd833064eb74e67604c01860a6eb21401c098228c54af70200e8472096d10b618f2ec3be87eec40401b1f22f860ccb34c01c614cf39cd7c04061b3b3d8ebe5ac326622384934a3939d9abc83ddff5daaa2765dcb8cbb5d8c42698400a132338112505462908e2ed862fad5a52f3bc5b1ec745e934ddd2c3b7f783de1e9799b09c516fc0a0b26fbf97758a5f500c17402ebf434df094a0e777a8043adf594b186a22c93ba1f33a7e8790187dd21009903a2a0d91c0c9f70e35e1a48bcc60f25d94d18c24cf9ddcb1fa3d66cad556f584f2ed30095cf2fd923c26487e2091d71e84d5c17284ca8254bb26fa1692d2aa6ea4ef242655ec149992c3f753be6f7364ff86efb37812294796a820a902e5fb367cbf86efaff87e557ad3cf674e24ca942452769814790cca5b406f63e4e8a7cedbf82c79f6fd192c11cf3146d586ea7661e48aa752bebda9532adf4ea5f4aaa350be7bb5432508fa760aa5575d548ad2abae858ef805251d9efd017a4b829eccfa68974d90b40cf4d14e8d9647cf5c9a3fce7574a705aea3442c701d2d5a81eb66926f17ae9b412d5c37a9a8c07553e9db6d8e2ce95534c1efe7d86c8e2c61c224a857d189df4f6d364782aaa842a75711c9efe3d86c8ee8ecec1ce9e9552cc1efdfd86c8ef41c2972a40852af22097e9f65b3f1419a32c527a957b189df476d363e493e547ca81c01ea55fcf97d1b9bcd11a023498e24f139ea553cf2fb35361b9f231f293e527e7a157d7e7f65b339f28304c9119e5e4523bf5f379b233c47881c21e2a3d4ab58e4f74f9b8d8f92cf92cf9291a45e45267edfb4d918493242c508959f5ec511fcbeb6d9f8fc204112d4abb8c4ef679b8d4f501555f8f0f42af6fc3eb6d9f8f0f810f12102a5575189dfbf361b2350a2443182d4ab98c4ef5b9b8d112423538c4cf101ea5544e2f7e566e303e493c427c951af2291df879b8d912329528c28f52a1ef1fb73b331a26464c9c8924eafa211363e3a3b3b4b7a158b789f254c98d8f8f4f42af2fc3e6f363e457e351b9f22ab639fa65f94203c92efa2920cebfc380182d27792cab7cb27dd4d8a829c7c2fb922554565f2cd9384469152bea77c4b6845661e1ddee1793251a961bad654ca9ba7a312cf529d5c17f352d42e2abd538f4aaf67087466101f7db508e0d0df79fafc42a49d10b550ab6eeca076b585965a2642e9980844d2793211e9e954bfd103bab2adda2e9bf2924a232d217551292a217d2b396955e328aa5d0bc12a642539c3d4e04769ca1296a4287aa240c2c21124499292187170f7bdf738caad43c89199b31e40382d792d5d96b5afc8b90e4f3d2e075b15535ba9bcaecc310969cce596ead5fae3037f5d1ee79c5c37ddba72b89c351bae1f156868c3f40fbc6cc955aec21360aa554539a9679a0b37fc7b51f94b0edae6e22e17f8878aafa26efe65b5877f9ee17c0cb2be1c04d4182261bd94913d193ae9a424c8f18299211b6430a52c90c11394d0c248952251884115592c1108d08385154954a1810faad019e32e29fa42e38019689889f1e981cf173e34f0496225c16c7c81aa196d1e3cc8e203b56c7574f23b9cf7cfa9103048024893fc3cc76bd65e8d7a67791721a5d4b2fcc130166394b23e187eef750073eb175b0cabb00cb91b5cd58bbbc008217ca956ad207c7005613bed158c542a01774e29a5e46236d3aa4769ad73d22d73595fd295b9dce23ae994cbe6263959e1cbf703fcd8f5f8c8e1c48f51409aedd2aad900812c5759a0017c1deac57d7949801042286526a53479669232cba8dfa43e6b9194c6986559e6cf35efeb724ab5ecda6eb2b738ec071b9db162d369af34306ad6aa884acdee76b9a355d1e7a43e2d8beb7aecd8f1313a2afa8baa5773caf8ca6025e89c049da9c0ec1fd04322e638a991a81deba4d0a8dd4679e83998a818864d97b2059dcafc23bea42995cf7d2f50b6d1d236eae91de940bcf38820e995e460aff67f2495ed39dc04d1abf93a5c60871e7082f44a725d44d42a38a107f192644f51a953a4c0a424a19e1c96931e0cf4759f229f80df212340788c7b340cf48ed6754229ad359552753149bdd430d08ba488d4b703f73de949176b35ee118ae54df464baa761749e0c27350c74a3182295a762aa8a52aea342b06b22ad8c9ae4a143a409f4440a9222a32847939354c14eac8d23b7840937e12be893975cb74e1e9012b63b9e598842853e7f878c40f9ad52a3ef772fd137761eb51aa8d1c05056b52f83913256b5dfbd7fdb4bec249a10f5d149fabe748fbfeb9dac8fba0c439ad22aa6459ea8555c54a55a7ec305b5637696a4daf5d1e42290352895596661f67a328f9378b6c1debaf91767512972e442855c6420fe91dc2f66dc47494fa757f0c952af1e3315a5d742530a18f47dd19ed4e91495babce543656deac6302ceb18638c2ea39fdcea70f84d7edad6f44c5bce3f0d738865d84f8c926594347b3b94ec903d60d7a882af8b60afc85101b41aa86962ec3ca754282e460d4add4703935a0fe87bafd9c4f267592b8a5214e5caaeb836b81aa9d44aad943669d284d25a1fb71d394aabe29539142da8a2b82cc62853a9de151b1f21e66ecd5b4a2d321292124fafb4662abddae955f3144ee2a5d6e91c4d2a9426d465ca3439ba9d7552931f38eb187d535d54e8dd5279f299bfe84182d076da63a41eb52c4372a40713919e4ceac1c4a6fba8348eb744b564680600000000b3140000201008870402a15844a0a99a5e3e14800c86904872589bcab32888619831c8188288310000000400448846230008d9e1576b798a722338b150b323ef2f255feb28a2c76520351a52ea0f078b75a4c8e6c5165b11260573478417548d4e75c83456e12ad5624f8385dbbe18f4ca4749c2b20c93385c2c75ca67b067468862a656f83cf39007fbc638c1424fe04d0e3dc70719bd1299bbe25a6a4b330c8b1ed13c3192b658d644ed23667c38997b377df5fcc311bb76f97c023f568a68fa7d188cba174bc9e905e106105229127a89bc6444af6ce88c96e18344bfa72d8736cb1f9114a55a1e2117b2b5901ffa46f6cb35eb6a47d29ef19f287464382f9d948ff5d78ad632fa707add957c97f6d8cc6d2114fc0c9c67c9c2b740163b8955d48ed8722f2eba99881404b8cade5c44da42085b8a8c94e8b77d9448232496926e25225164fbf50aa5250b7dc85d27af4df91f2f27c9f44152227abb9f4a2f057d594420e37e9fa51979d245d253f6f282c41aebd5770f59657b6932bd81e49d2a35550a70a68ed13bd128e34cdc8b505e783313ca64b83437539074536b82a430ca632bc128d8bb3968adae8cbac92c0da6a46eaa7c88faa35ec11dfeb81ad27138ee5189de0165eb7bd348bf6b1ca4164da004db5980498e5c96e8f3c527e64c31879d074a44b3d487071ee19f72359a0334e1c8aebd156d24d59dfdda798d38186372bda8e8e69e4f144a30a04df6f6cee7798c41884dc9bcdf65abf5476c06ddd78655654ca8d25ae7733c647d8875e5a336a9b61b72fdc1ba634c3071573fe4e64cf759d5900bfb51de3ab661ddd0ac8f943b9e51b96a3ecefac4ac2cf9290d53cbed9917a8ec46f755aa94c74518c5f419e5b219ff751760d754c382c08ec31a5b68d34d146c51c2604b00431d192a3ee5cb105ea0a8450aac91a688a531e357c2d5272c1c1680d15095c9c611f3e3813b250eb981ac5c2d86e27a61d4795d8c47b55b160a7871ded410ef97228009a493913c997dc8c7564468f1ac3d3b6b1e2d1b821cff2088fc33dff1071e6444b4527c05fd39fa64b6291334e6b8058d63135d98ec4ca5c162342639459394ba9e8f865962651c9400f1a03000635268df04329a6a12af8541cb523ff957a31002843937cd70e8985e5dffb908290ecbd8c58d1850f5476829643c3b859e640b11a44452ecaf8e40e7795cb6464df970028cd57fdbad779ae43dac0a1d55e71072d333a66fa423a5b06f1fa036121904786374e6b786fa7c2ca53e58c135ccb1ec829a0f74b12b33a214a7c8159dc37c7f86919698454fbfc679340c3994b513414105161b9a53a6a082466b3ad5135150519c6ca93e1b7c9b0f5a5809eda6f641ed7c5aba46b5b9096c3d3616d2a0cd76c257d822a2a35534ce0d34ec5dedcfec48d0f6d0de6cec1f200b30476d19c1b8fee9b1c9c514062bcdf01426961ecbc8b605db93cace8f67e6a5758ba5d4e6944049aec007d7ada1b3e610d7b83c991d0095c6a01e9add39aee71847a26f77711bb8c467be4c9da93fb63dfd4254f85542a9918dd748b0a5a7e195b068f70949f80e6a2ac9455697a14ad703cd1157e0c13b5b0d233e2bd01f9d9d486bb123e286bd78fe7a2c5a6b0f088b07a53636bb717cc9cad9dee75420d68a2c9583047cec041f5884af8ee12b10bf158da567c15eb606ee7333bc9e8f1ea0930705ac02f9c0b9670c451fbfc1a531a19d58bc069b40e73df0e43544a0351257dba4bf353e67d59af1b20d7b83128d96e78b9efa90f83eaabaa1008f74e9860b266ecab8f1e36a99bb38b74f9f6b962d76b1128d2a130a007488c53f3372ae2731fb3d0e9158fe9e3c20a0e37500894346ebd4852ac827375e31b6ab77e17a379ff4938c4250d6ab2a9616ebf6590382e66aee68a6b6b339b15ecbe47ed28717aec650cbea58d02d44864aadee55dc21d2628e43e40667203aa4723537710ba2963b0111577a87c810e2d500b45ded4b9d4364f0ddea5ae426445ce1186242cb57d322671252da1484da529005520dca83900e607f53dd7bd84ecf396107a763b3331c57d9b4238ec809945001166cc894650028b40ca6e7d1ccd0d6420c2af2a939e08befe7e3c9b25750ffa7482db3f71c6468a41ca5935e33a30742e48c3843b9dba7c780a56ca83df5e95368cede34e20071309841440be10535866611e80878e916fba27881942321b6380d648c847e164788e7c542eb5e93868a2d581133e0323de955162b9b407a0b67aaf20623a27dcce93cd7fe6b740977d68a25bfd06581f1ebfdb04bf86f5d3ec933f565ad43cb7ae2c1ada00d03af23f4edde8346e24f206e3de0414399811b54e58f1d72b4a4c5caca3b081c6f20c4fce986a77113660e9b619917addabbc14da2db4c2d32633b8f0083ed06c78f1918d6ba0d55bf838402467ac8c34afdb2a8a79cf5b2d731f5e7bb65c999fadfc90d3024c448e0a2a01046f0e1340baf1046ade959ba722de4df7c0fbe35f2e960320501d42f5da2a6b942d22bff9d9c264be23866e48aac8fb997bb73f6902cb88180d41d72a3d4f7ee504c638cbd38ccc220281d84f83614499f9d9899ec8c3b24c4f083573067365f899b4be8eb62d399d804fbeab9290de1892fa2d9caddf75c9486602217bb11d9d8384dff22b182b851fe5908c8519f28b395390a629571c46e227bb194b06684ba34de9a37403a79f7b3203d47c8dd9777a6929a87d0c5ca5a838a88e5f389a31f2af630387b37b91bd0ae10e2e066ec0ea59297d800480513ca8e5983c54d96ed7a5fdc312a13f075514cecb9d87eb6e4d45a0e726fe061c3153bf32231acd7b3ef77641b9f9431b4513502b7df5d7934e63bb599b8c33079a6bd24f81e79e6b140a40c2bc8ca33e705c60a03cfaa37de08f6744fb5922a5db9b66c8de8a3b4adb7c55aeb4669915e7ac5605b5b123d50d813d1d9a668dfcdfa261e4623901b52d1e4806dc6ea23398d5884c4beea4e14b22bb19e02a0c6229a7117a303288a0778cacae0dda979df080334e7b440d08afb383e64bcd36f60b6192d55be8dda70664e82e40f49e1b06151759f2f6aba824c731d746cab8c4050d040771c301999d04f3984552decd3919df52005f4da71132a39752e09645f2097fba9fa2a7f059287102a706f17c84c18ebdab06887619d70f613a7649842f9bae75c3e02921cf011a2aaef29f27917d9c7d086d09a83a4a28d679de26c83a0b741aec54f205c5ae1efc657bce014b755642119b9f96b23ce04220ccf4253c23d4a4e3ea9fcdc44c048080c46ae2f780d622588d36006192f881747a3e0697b778d3ae1e4c436d4130a6703884f82edd1d671c39b773f7d6dfec81a95a71d102a3270d410f5f760c76ac1978ef60d25e609fa37095f4b1aa48d5446e98f8955c1f6bb81ce72ab7f36d50850f0d07f6c10c2eb91543ff32a4481012acd4addc21856eb6198192ee4afd454e7a99ec0c43a66e3b4a245b7049e8d7fd565c0d198e8e1dccb88c8ee2466c983412db6d9760d481949a3b38063366e1a480ab10ee271a38ae92834661fe1546325fded9db2942e221bfabb6b2fd2a1f57c236ef07077f2f27d2a7548f62c2ef1a6bcb338d1380adfd8fd5ea0a8e85d4c90a6f889e22bcaf4c6acc50e07969b5eee04f9eb6977ed78f6bb1de5768175bf090930bded085a69b5587c8f4647f92ada6522d1bdf917fe8a0914ca461fce5a393c47675fec9b8516d9120cdca5eb29418bbdd66c108a8fd1a229cff260eed2c1bb41716480a28870b6b0c8b7bfb129d99c62ae09c9e540fcd83d989b814e433616674d42b2fe396f9a0cfce43de37b51370b7c9bb1f27addadc3cd22c7a26352c4956ba835ab02c0f9374b527f7635c5b01de0611aeb6d16dea130601530d32d012c685703c687b2836de80be934efbea446662be7ddb08ac935d1cd1ba5abc0bda9615526703c60a68df17cd7b26157980f3147051ee8e919a1b59893dc3835c57da2571f89150ec43c05a5102ca202649e57bbdc624a6785670e224cb1dd332163ddf598053109ac42d402cc76a6692ff36344e43d0db22ce2043be2b513a152c0e71b038b68cd2ac62c2ee86fd26c977c835754883cad5de4718fc4d4001af6ad0cdd61128efb6e3ded8973a1f6f8eef3f5cfdd86c4438fc7cd660bfd08d45a8ac723c21bf275617a2c6d42ef68205f540d314cb8961cbb9340bf6df362b4ccd2edf2f2b8d38c82837a3425929c3c56769a0fbac1445cb4ceef710c23088c0b435ee05c52b229341a2a538ccc31c7478625a2e3c291a13d17af6587757b6b59be684e2b363de0d4bc32c21c5e3934b2d3e16be0d94a3f3dd720ffe18f68c4518f7f964adbf7413439df4687c66a271efa649a31b731338065b74928ca44ce6e006ed7198d3cee7f762c2950435eb4e6ed5e24dd4898bfcecdcff020ddc0acdf7ac7cf6b682750af3a05a5a8de0017425a4c86337a461df36c7558e3430f8866f5026d857661614c8e018a37b825048cff5bd72cc0903793ad33b4bc7f03dc3363444c3143bcf8b2712bb1882139ac6b0fdce061ad182728792097e08a760f911e5ac998c7da08c8c192179f507437c86061182682a657b941511d03e498f0011688b21ec0ff752420ffa762938efa7993345459a62adef36d906f0ae454e84022736d9611b6432f3f3a401cd8823108919566a499d197f974edb06d8c121d650683a059aaac2648754f1e88cc0a25d7d8b6ea85b644d7c7d2a93e9de7911ca70cbaa09d9c59f7c22c5f151638362dc6541c8c2457efbf5483427494603fff3b00bca1146430e90cfdc599ea5bf8959f6edb863ab5b523a8f8cd4c0fb3c1686e0b1e8026150185eec2a33c4ef81ab6d6e3717237970d8680c35fc5764a9919de498a957c1a6e24a5b34252dccaf74849b2f662f677c7dc2817675f3190d6a6b1f5eef0d79cf4fd6c7de2833c0518badce2c27b20413bd882df63db4f8ff01b55c1b153dc0c0dac161c7a067f7b2274a17448632d04538a8269c808a583b0d4e13c058e398bfb896431d8c3d6016fca0063ce68cd2b5fca531880958f701d1a0de45fe64ac431621aacd955044a606f41e75b341636f7a6c6265817ff1862af729b59aa6e53849ccdd2b07c6e1ee3b7a206fb697cb6c74775a1ab046f7ddc157c6158a27c9a51436bf9a3104c20831f19987bf0d3d00d4ef23f17660d3a53569ad028a72b3f6b22ae2f89e8545f4c5943d7d667640c5710bcff6ac04d85191e8b922f7ee3acfc2becb964d41f8bf289414388616288cd30240f2d3197a0c2e52cf13194b82826ef17b507fe3119174a7ebabfb86af9ffef2683f8cbc16d9722387f0d83359c1a958da717c7e949b56c1de96b2091e03766de7fa081a45a0750d310496ddb0389a304b323d3ba980ba21568c70e51d9be3237badc9bad620462dd3332712756bead4e5eae1b7e1f26bbb796056a71de62e954cc56bad0d7cec3274690238900082697e5f0f3d3ed0240b89fb9f0215bf19d21f915444c964ca19777d1437e97d54c891710d4d0e961265208d20518a585a19bed5da17d42bc44302b6c2eda0d510c0be8fde8a322e44116d2b2888eca986b7e60ffc5a57eea13d24671c05be87956917757cfa31f7603f960811d01de8076261232d083d0d3497c3a09751d8cdc4dad0693218d920e040d243e16a27a91f67eb63a72da24d38ec0907c7f8e6c7f25004a016d56ff6b4906c89e20ce81627e25ad4d56da3cbf2b3a801d97cb80e1906896aac1d30a30a66e11993aef9fa76f2714ae8b1272c3d9066354eda853043ed0ef75a21ff335528c91b43a7104bb04917328cd535ce52630d5261582134b43e2801a416f0a3d766b5104efecc05ad7d518fefd07ceba492889d529737fe21b05436f26e6028782d0eb0b9d3d408a556ce69d64d4aba4a2bfee8991cb01f47ab47c912aa3f1ca1b1dbe2c87802403bed0bbc30277f1ba35efc77e203cf6a040252fb2438a451df5d6c8c38230833dd220b2783a0dc3d62d3ccde43e98feb79d6f7cdc2854e31059ad1ff8ebb7d94894c6e780397be8dc7c2f7940d25d742f75fdc8cee9fdb08b9c1158221d998d9c8559ce30e261493c40afb70eaae76cda610cfd101e6cd938a13ddd0c4c6e847c2b7e991fb90db4c2d57904446c6d04258443c2f04fb6181f360f924842d9fdf06ac681796a793985ed7a194a498a804a9da426e455dc858baea67cc524f4b0f6d34f6c8fd21b84c8da476cb0eb779fe1ceb5ed4c2028c8275fd57b8515d66e9531fade373161b10b1979eb4a579a797fdd3098202a51c4a2baef59f28cf8d0f545ca0762b869f6b66327daf910024c561f732e938841c7a73d3aa745b28e0cd89d5fe53387a5aa1055acc41413e7b9df8a0e4525c879a85c7209b11025ff0c44b5c97942a1c1f186b4fd64ca90cd6702e4a5c010734d5ab05ae414515dde0284201f1e5cfbd535079427c4875455338b0f103ee7e419006e5e6b291719d43f7b7cd2a9d284be8b02c395db3ff169bf77ee55dd214872ee87c7cd6879c909ca9e473621085f0ab616db247c94b51a738edda09e17060e02952b656cfac5c809ab97dd45912630b8ff6c659945337ed70e0ad7aacd23b664107310b0b12e47cb00249d30bebe20690558f6e112f627ab293bd75ebd4627fe3c55f4c9e6e2fad9c63af74aad22cae1debf8fd68fa0c678fe69632430f501194da25330f23ac63adcb795fe4f4d51d0ffd689f1613c0721bc3c23bb7a3bd53eb7224ce9022ca6d44f489892ce10fcf4fd526c3d53532ec7e90d2ae88f7ed7b43eadcacc6ec84a87bd345cfd30adb7974e666915e7569320704e3a0450dd7595a9ff495879867a1b4b290317a9ccaf7b49c6e22df96e91a87c62f31b8e3f96350e74ae342e400a7e407af4e03b4a4c878061abd8d0502648ff73db626a6fc40919d645e257a35bbdcb87dc7b8575fe77cccd29376fced78511811b630e08651fafd33ff680b9e9ac6a57bb3bd01db85d7de6d1bc9023454080a6da7b15fb51150077e6d1d34aae8597f27aecae8adde0f3b97ee40b9fa4dbda9442027f7ab326303a2ac541a4eee06f69878358a1044eef014d5582ca34a0802d504e6f221ee4559045b4bd2a19c4525b608428f132980d10d46dc84ba0b774ad1048c9dafd3f932a9a0f1a65f421c00a121f64fc59b670f6fb9829d375f8308869a8d824ee9f169a3f082fb6076d456cdbe60171e425251d412dcff22383a523026f0a613ab9e12dd074d5d9b2e8c84c0c8f170f0fd28a25be05bfacfdee135d24234ed8ff68972a27aa0046a90b2f266a49c97e5488cf1080acfb6852c773b00e2ed5b305dd620a5e27ec3a1acdaab66422420836f8686e8d4d59df802ede1afc9403a43a402a9ea0222831701b234c026cc0030a02d1d07ce5c06211986cbcac0190425ad300d990ad8ef9b43d4581eba26275d69d4608b0ce2588109de0f18c782451e5abe0bf130cc1b35364dfbb74d662d1baf8840c490f23591c3fdaf4f04f66e0a2d1da2fdc3926c0da3e6bb6dea547b5c298a1eea82394e946efadfa31ce788fb909853aa804b414577587c51c025023afdf3b41c574fe11f8b2946520b734adef2727e5b6361784f0cba5634f0f02a0dff362a53344b0c9ac284d781ba5a2d08e760ac3507333dda592dd0e7e64d2b59bfb9cf3e1a97040b9569f74c0b7edf258bc7b02f732cff9cd8c1c2079e8fe03b185409c6e0adff87f8335780697a636ba4b525b4dbcedbeb08d8e3707fe2c92a022c81ade33fb0c139eefafafc3504cca6a469e2170f669343f33f263515773f869d77495707ae2c4bbcd5c385816ff16a99e5584c7ca08757e26cd1f46923e4ac44ae13a5563996647237781c8393232b7b3a518d77926d80ce179ff68525a735105aea784ac56e66a23d2104497345fcc2edef23014b0ce84c55162e2959271522cbdd4360d76c9c722692b3f67c4ecd6a1d778fecf10afe3f4f35b99bb0c2a1c8c8faa3e95aec8d865fe01eecae863773995978fb0805320b319c351cf7f91031d1cee90e4e0ca36792693aa9a26d6fe4888fcf036b4b9ff1c106b3044b7b2fe2a6351d452800e85a94722684ebe9964d16d6100543bd538b2b9b480241d006e0fdec8c840086e46ec5607f58d5dc547116616ea2bc4504d439def87aa216fd58cd89fb271c1701176bdb62a679ebbe58f8ddb091d5371c4ae5ed34c9f99d4366f234ea65556a10697d9bc9f3595249009919b327f3e284aa4eb5f83e36dc7bdc0b3dd272a16856d49f4216a9e05d2aaec17365497b6a5a3d765e9465e3a1a4d8da449fdc524d42f1aa36973ac547c7003c8a2da44749c13fcda908e4722e7e88fcac982ceffff3b223416b958a2ca86807f716e5689aa31639e77946d9377044237a6d182517ee2fa4a1d04a2185b0b48164c4de6e52e3e1bbf3c05eb99203f8e862ac94d27ea7a232a7e6a86514a000f7bb4b01e7021e19b62be79ab9b1a4bae0e3627008b915657d4e2bddd87f07ed33de19a39a34ebfe6f09a07b4caa43a7380ae9d13e5de041ba136a0661234b483cce2be45e4ee0cf435a1d68949d4e67140fe90b3b08c63b319f1e69e4cc53819be18f6560a9030da414efd5419f545dc310092fe09c98edb553f551f3c046c0482416ccdd6d6de4b397aa4e0fc692d88cf5f80a76f3df39bfb203ed98922b840fefc77935f326bf692b341143db4ebf8d14a85917a73829f153203400a513798c447211f94859b2625e58d180fd4418c80ce64f58f42fd5598acbbccad2648834561c6904384b6215d8aceae3772c1851d46464bcb312c7a96ee332e2cd5aecc6921cbdaf7242834252ad106b43ba13d2143053831c3a4267e50b290a051db3e70f5e2228121ca4ae3019ab0c884c9e484876df7225df15d7c35a7e45bf1a8034d98503e9c235dd9dc7e53dc474d6cf070ce37e9821f0f9b28ed557852c520ad9c005802deabe07b9a438d70e8b5b6ca15728816a3cefc19245976c5a772028aa4cb912870342ba0b61f2e71c2221d4d5f56d8953ae88aea6fa5203e7578882551242675b567bbafcbbba14c342028e7517a3ce2bf523a5cf7236a78dcfc2530abbf19b5d6ab66b75be3f087172033da51f91201cba15c825fe90a24a558f06c0175596326debb37dc86243cc59107e117f7636787155a8baa883f2c8371409590a0c9269ac906cef1ca13c126c6d7cb1c568160f6ca4b2084c2702d425fb4d9ad25c53c0ae47964c7309ebb0827dfa3b8ec7bf1836ab889a500714cc8cba0fc903d17d65e04d6a3fa37105126c7547b50753e8a12360335c02805a3f218a1bf173f7fdb0792daef7923781eadf8d8fe501225500b7264045dafed40327ee34c3321d0b96f8a463536283fab12f0041584093083a184c5766050f10a1a7c4d5a8b3928a1da656310ae6310bca76baf69c44503de2c8477626c63819549c88dee87186a1cc219b1e1e92fc6b8975a877867c08a42b23730f30a39699d38c4905a5f1b4914dae7627c8612f716ac351a12f6e0b90a5d91b0d56649c84aab77c7d0bd0510c1620af85493cac08fbd10c648d027777d5f15291f19d47be3068519dc0ac44d97058377186fbb4bde273cbf2d71b892c24ac22060c5d0259c4a2423548f11d7759e0dd65cd9a806c71732180898e2380482f969a6bab10d6b9550aadcf0ccc0819cf63e355ad99114b3713972d33e3ac687ebf904246f2d2f1cf0d62b869da2f0f949ebe8ace2029d56f3e3588495c3d2871609071405fe6bc2eb95048a083ea34d7004b3e1507711b6420db4f3ac9d993c4c51fe7bbfd616df4b5c3a20077fb01750f1f27c3274b2c0b761bafb8f2cbe5a0c88a0c05e3d9215327cf40fc8162be892bc30f3697bdd64d1cb027e4764a2b142b66b1296d43996a50f983b69578049c221963d4c1ad40c738d32deb8eea65139f145baa6fd7d035d3fc8d15ea9f0ec709b133c931ba1cb547fc3b938f1b911612757b6ebde6fe340397ed8c4d382c87636327528e520e6fe206143a36b9a5bf5279ea942da146b43ee079214ec192638f9c3d54886f74a7a08859edbf8f51ca442175b603db7939e67009412f05760c3cf627072830829f1c65de89f3039d48542b8bc5224dd8b74047c37b438f3f9d714afdea739386aef912f1729ae6462759381f0c8c33ad8a460b36bbb40451932295c0d0ab6d86cd763878c10b8490af7029df2707fd8f87a0f982c3d02d4467134d86022a4ee5679b1550ccaa1a20795d7a567b2ecbc21ad680925ebf9664bc8af393fd163af23ac60b3e9870ba35a9b70168af4ce330ad709bf4b17f7a9237f6d141bd28f009a7d649195286d686c6fd059a01bdfe471fe24e3b2092fe172925e2db138c1d3ac02cc898107e8ee1cd47310a9a2284018d541f45d87c6d9c476b3f0b12d9cc4a3f175b7697822178f817d6ada97cd1f5d46f83a63a7a2dec8d9b8ba1e8109c50d857d288648d4b6117709a0ca3ab32af0de5058c24b40931857fa7b2be9ad5690c37b70e736a23ff484e7c883e0dd352907235bf78bf3b51540f0bfa9325443e8a0c3b1227e892e476389cd8975a9ad90310c3f10df4a9cd8af6935e2207eaa21700394196d01e6e254d99c2d392ef59f6689de016f625a64e948b6ed5425edda128ce83d98dadbe0e9f5976c4e9beda4416bcb7ea74bf5772e104471d4c0a0f9fe2234b8bfc0b49de76574443a4a976fa123b3e5fb7d71a35852ec3fe2a52bf40c01edd9c584881911dc1a832e2eda34aca054a8c62e8267671fecd6287bd223d2750d424c2a211d7dc3a103f2959088f848401fc33efb429e5494813b298d53e2483161e3e8c0b71bff40436c9ff8355bbeeca85f2a0e2f2d117ce25651e10f44fbae02f6375f1f7511f9d1fb640b9fc8c81c55cb56d00a45dc3ff2891e72158065805b7af73c96e8480ed4e70e340427c20801eda68bbcf50cbd5a42cdaa02356c0adaa482e05107c007eb195c6cedcff2cbf4238730f157ce9798bc620b560a61d0d974d2003169dfe1b7aa299df501a8ef5604e3acb443a13bef486dfb67f6f61bf30e117807dc9861a4e2f4c3b9cfed7a4e825cfb2b5892b6290806ba021ab9daec389567b83146fd7f579b8d84a68f01b6e7c4a2a4fc994653f07e6b536c0708a5ff320bbc8e23784e6c44d483b49a41f664d1cffdb49280f3708f9a59a1977fb2cea427bbf9555a6ab103af1aa1a94f8d7003de3b65404de68a479e9d4e0667e810fd4004802b312555cec8d1f8f3a73dc79356e6beb9e7c91b077baa07eadf17824eb7ff490acef0899c79568ba4d41a193083793221855591b206475e1b5d8ff0830e68a42dd3f53db1e0008a284a8d5e96e9a3ac03cb52182683f504e08457d2b0cc613f0c6efeb158d7cfa819547baf6b34882bc6aee7cb7365b44eaaed08208567e9261aa05ee27a370de7e6078010c876b7df2b1e07ad1f595ee2901b3a612dbece4a5ceb7532891be149b751b2c2ec11392be2c1c4416ac6cb1581c5648d12416f85d79609d0cacafb6ae0a97ce22d4469d169e4b182025648595544908fc3949dec06896d62ab49ad7e0336bd99f2d1f8790e83efe7d1a2da9c1e180a83276700d37d2b93e9d1a2797c18b9f5145ceec0d8d42a792031c182f33bf5ac562f881ec075c6dd3fe3e7723dcd7f121cfa6a5bf5bfa520921cc45cc2c6558c6d8693b0006fbefa9dfc05af042660dbfe0fe9650f1f878f4dcf4a815d74f3570785e70a342426bea8fab1576006d3acded4af1d2ec116dd1a5688aaa8a1e3b1f2094b4179e7ca38a29e03c4e9cd97c101cd49ef245ba851091dbf4aaa92cc09b064a6fe9577d7f3fc432a73a40458b8350915a336110f29680f4bc5ed519384426297db25aad63c64eea887b93e6ac0cca1527eff1e522054f2eba12945dcb1fae7143b4fb573a431a9060370980cdcf763b5bca9779d2e50c38dae89c4b4db009b0d98ed2e15cbbe695bd7aafec7bd41f214258e729a3750732d56eaaeff4727d7d9d430b654b21a29c9c1a86523580a81b2d62b1a08592314f3bc97b6c485ce2f138aac53ac9f902f5947e58c1cfc3ddac5dffce8a9c0ceb578908d1cfd76ba9ed57d10ddf96d07c05f0c103829628dd3295e5e161548801a480ae78f62fc2f95c2f5e3f032b868928d2202b12a9ed408864bb580c3a2b2e0ada1da37c7cddada7001871a48979e966f24c26da617bc9b2749981cb756b98e766e7421a9c10b2e1a146e058d59fa7550fe1c7b228f8734c2f11f2a28070ccaf111946d630e3961058d524d03947800f37d23413f3a68089b4b80e295379933e8855a03e2536798dfbf5384a75a168e000553802d460f118e3430db7e4d201c4d56b3dabf0ccccb09e11106b12f258bfa210b11126398a48b05a397d715bb4589b63a5154afebf4ba3eee13b4c9ebba0a9d472998c0e30e8868ee3c66286e94af3df9113fb0bebff0fd6b2227d98c493b3055428f78a8905c298a020037991476d29c987316f6fc9692fe4d016dbcfaf96b8616f3cef05395a57b500081b42c9afa04b2b58184e339831699ae69907234042f880f3b5ac921fb70556228936631273e23e6010ec8755ed8be7d0a2dd1ad4d561baacb0c248f07915339d44d968d816b69d974aee51d5ab0c8142a258cacfeaeda7395a4b6780e8ac1f3bb7351923aa11427346301f8b51f26ca26c5f70a85ff8234098eac17014eaa75072a7c0cd4be4692e51ae4a4df45d7118fb659a43116ed4a8ace0727531f4d89f0931985ab5f92b4725347107c36d9931c0755b9a645590ae7c772ecf682bf5fe9bc8af1534f373fa0fbd43be107401d813ba6e3fd8683b4278360cd9c58eae05a30c73688c4d00a572f7c48822c3958e1f24f86340810ba0dacf6240be4edb0d9de712ef002892c09a5d53d5848f4d644d6406f7bc4eab342c727cad233073e1bb445fcf57207adbf921594bb40f5b650ebf6e28171079c8f67f53b6e1f1464691c983ad01268b8a122b523db82ced2db50e1427885eca64fd043b05939fc4dc42c850b8659e2f8820b09d30576f5deddabf8f04320e99cf3d0d7d76170fbd80d89c41956af3d01742d1b96ddc2408516c7da6379988c961415c3cb5b3a4f18257d6bd9f78983d587a22b571d1bf28d6135a40c7f450efdec8f723f1bd269f25334d2846c78b9d0d7a0fcd89a4491c11da949f8fa25c31ec854c6e58ccee99cebf392ad55a8db5298ee3fdb48d7ce2c3dd79d9e6cf6d3c5062feb5dc345ec445e964098e98eea2d6b73ea84d74d5ceb2d1c7528f3d781d23ac39bc0035832beea25a305728e0981309c8d2e80b9fe3e1cdb0e2c93838afbd74e2f622681c1f3547df891ce08940758aa087accb8d01291062ac099dd45e6a8d8c5c98ef158bed34df1e5d8749ee5cb1f0a1a6f33a13ddc20f849a6ec97f0a1abe680bdba22ddea919f8ad7e2938861f0b6603f488a01c2456063b8b88bed35d2d91385d73516d616178944c6085739db9b9882c70f69a47981b80df720d6e827d021aa0b37337207784676786832afc119e9ba78ba0ea0ab8158b6bb99a06d7e5cd5faaebfdb32bb8e1dc0227eb7480ba4b7de9466c36ac664d496dd00ead8326ce5cdd363121647cb3060d2ce3c5971e21e4fe044aa3521b3368869f0148dafcd5fc7ccdb3c7714cbb02cfa3d32dff30dc0944064b3eeca25acea3133afe71913f0ddc79fcc2242086db7e44ed180bfdfc4137b33d7588c741ff66d8d8b859278b13b4666fe0e42ada00cdb47cf2a60003af029fdbfe3ea90d6f5caa938c4cddc1f87ffec6c71a83f1a2eaacbdfe4137b9e91aeab506b647e3e34c628219aa60ffb7c4602b6d7b0e619be8cfc7d18cf7034ddab0c12c566eb9ca2444c8147498ccd8bc9c6170371910f0d2b9b047157a8d2ac835894f332687ea79c77442f6e4069770abd8faeb7484c4950403711699c96943b0f0c54049fcd526a4a20337a50c9d36ceab620e81c9c62ba9ed26f42e923b84805b161169266408eb53e421fbb4bcc965c8d950139a9cb848479b056a403bafc80b6bb1433860c80f46a5ede415eb4efda32af3d2af78994ecb52e4ca143b0fd7f90d88354a74082434721743a6cbbee476f47209ad495b686c1e9dc982f20466ae35719f56952d700fa5824e66f115847d96a84bb6fa1c7ce01267e8261881df283ec18234da04c564af44c4e5f0ffacafdd11cbb77d9107dd7ea3b71c0764f9b8422e9b961ee098eac7b9394a39c3fb0496a4432c0d41bcfa9d1f9db33f4803e0b4291751e0d54f643b39d3087e0b03612f33cf026b63844757a2dfe8e8b8416df163a3e235d78d97551804ed1b3402da79628e201fb8fcbf37f89e67b83720508c87cd1dca7e18a3dcdcca77c39e1335ac893aeca75ec32430ea66947d2b8f33a8a83f42f054d68c69ef0fb97175f5e9fa021cac2d26fc55041844b36569802066799c28f9eda66ad327caf3afca7f36b374c89107e804d73a526215e336407093cbddd049b20af61e87cf4de8db012e715afc64b789458f5ced4eeac13a4843901a5f307374cd4c65715d3966426e22ab9cba052d21bf7d9e3394899390800674676e57543055ecf39bbaa26f23b64698d1c6ce8b6f8b8f4e49ebd2356b0d73796be5e2b3f8f94c636efe05f8610c938fea898e00d8de89f684950e5d8e111660c9a34e64f294a8354c79300234b8851a66d3421bb30cc7fff679ee09a1fb193a14191f5469f4c4f2e8e44a24712ef49b1d62d5ddad019bcbc41debbdd2adb6d76ae3388edb7c5edc4ca735ff8e3ad420a81afc1735dca4137fb686bc46063246625ee858f100c1b061af0a9b42e5f514f1f4f5ac57716d035d09bd3fb36441cc45f2063b9823dfeb5c1104d1e8018455aec96ad637f3268f3215a3588c04784d4ef9c62f2c15aabf04c003096115bdc4e6b0f8f52359a2c80064cc2fcb2addda6da3cd74609fa6ff203bbd83f6de18370896db19f1856f45f5ad38222c1f26833432403110cd9e87b1bd40e15c104e7085be3611e9b22af1b4b44264f55f18b9b4fc99062c9acf7ef9fd8d32e81b04c1adb8e6c8856b974cc58ca8849c663c8dd77f8dbe3dba21019bf93ce798937c1fd8cbf4b83a907cc4aaff5eab5b8be97da735adcf8f336d58933bd64666aa10ce053e3b1351f8d9db19c8f579b43ce03afa1bfc8257ecabe779963189bd0b1af410e1bb3be64785d70c96c9c243f3f1a0a3202a7d1a9950f374ec356ae08950b92355ecc1790edc23a9376367fb75ddbff9dc5525da430b404927698c70b4b345e363a4727aac8ba398d15e6b011ae2e9b0021a7059654cb1731d067d68f811b6fa3247fe1e96205fb7949abe558e2338060f0073a3d3f6836934401d020843c88ef238b4d88d5a5c866debf9b87a9e8e79639ee38025871d1470c032b98e915fcbc67055a096faa52a7bc021116e6d5ab0592c3731e094cfa2873e955d609fd769d15d00360242e0ce60e18ee76559834a39abb0e45ed56607c853306b1c5956a6a48cb689c86cfe27e706b404a619936be8eb590db66082d45b157c138e2425c5cd7edabdf800fcf94c8591708b7900e680a0a4e9a14ed42bbcad7018ccb7bd0229a258234e3dd9e846346dcac58e8781ccf5fe02b45ed1faafce4d1d442946748dc8d1f4236ffd1966ec16f588753f383fc57cfbd575b1a98f184f43d66c35a98fae12b3324ddad9909eafaf4952b4042037a0609376a0164100ccec77f44360135090617547e331059530c939f59df054c4f7e69486939a41b26a744f6a114241a44576b2621b043b97ed71181493d58920b6d22f35750f0dbb28b709aad6603b19e51d5e90a8b1cb51fd5c14958ac9ee4e1ac1ae7ea51d9545da7f4ecac3e7dbcd4534538636c8877a252e10693d10a7d4f4e870ce49abdd70267b55b44c5a94882ccd83ff7f619c87670a35824ccb8170a21b8f522c9bd10600070c8e60b369edf48983aa7a20c94d1c84cdf849abb07d2ac774340889652a7fa93f10fa3915b8b5d87a09e7f21fdb6a44254116db6845fe72263bb3e5b32a3f7124584295656a64309272b4f96026be9021bbfb85383f2ea6ba9ea62bc29d90bbed57b6e0263787a380fc83cfe95549e275da2e49afcba1e22a425094e4f2829e639ffb0334589089c539f14c0d844a34672b41ca24b2a47b903e5d9dd55e7800a981f0f56084e80586e022e9a4e67962ce1095c9c7888efae508e597a35daf101883829709393bf90bf46c30a1009de2e4d8fb7337271a280f71833dcd90ba56786233e2c3b2406e848fdbd34bac20592160e2af215318b28dfd4f331c6dfac51d24f8a8bd9b1bcd8298179b8f0707386839d314b458b0210f7192f0396932d236d44395b089619fae55ba8ee17199eeea8c00e429eb83221081e933bc974d59544a4a6964c225b75ac7a00c3b5614dfffb84adbb8465a1631c2f015b8bb8f1a2c506580a4d5235ed15fc6351182686afc22d1635c45fa06c113e60e3d21a42aee15c4cb5fa8e0a7d54a9ad9bd903cbd8b21744d7b1ccd22800209216468a8ab3deabe36c5614d5358401268ae084414528a5761fbb02f0eb780202f4fff22ca9962e8a5fc2e98626a7c3dd24fcc6af35e07830f0cefd6c83f215512a43a0600a095e24d7f49639a38ab97124ca14e18734f1c8cc9627c91e4066dc1ad0a5c982841adaa022eec294296703401a3ef2844e3f1da98a47179eb2a1cd1a0abe8e55e72310b87b842249081d1ddfe285dcd535756546e80e4eea289291a89f7287dff283b85c03b1af593387d70b5226b4f5cf67b32d96f547165a85214266554a8e29f813e69b92a62fb50677a13ebc90e306ec37ce0cad6dc840ab6039adaf0d102b0fd3e996c1db4859a381a803fd3b559d784ccd1a874f3c26001570d67b20c6b0f29dd9d73decc867c9605a3e0522f5bca98674f08ac6d8c51e9684ba962d17158aff6258f492e2fc9c8b4e63335c8bfee73cb6061769e7ff58de2d9f4230e9280a4e413334adccd90e232f30e050c5fb14983831e56d1a986d91b40a818118ecd6859ad055194d32edecbab20949e71f3429ed8f19040170ea9606d729155bc3ef1ef0c930a4f22ac1914d5aab6db19cfc33413f5f3fb7a4355455440ae800f07b1996c0fd2e733a3c1cd311288c17e041cb7b7d4c7e0a688091960ed722e2bf5360269b3da2bd3c1e5002c961cbd0c857c4b073b4e5d81f9e0776957e18343df868369465a18db26e8dbb88b34489e9943db5643d1641bfbf736c5414db186eeee88523d01c97f062c1c001128083b67a268c71825f9005a2726cd44a28d664e972508b3f82c422b81340e89c80083e28e1d1b8062cee477178780e7957700cd2b5ed7d414d4a942588850a4b2fafec5e1305f89c375ea485e27f0e4cbeb68ecc244257999f84a06c77971e1a5c0eb10ed63777123365b7583f15a5b1fda6c12418e3d588f143804e98c12b157ecd431afc5ebf16bc3453a551983de9306fea8d033dccae7af2cb622efa7635df0ed1b1b9c8073073f11f2e68ca6032dd30a0b2e1f28b46c8e06d0cf7de943a96d24cc2d7a3fd732a28d6e394e20145b19c5459e2a38ab33f81114fbb0cae78269ef0345c4f8ab713fd8f1138e659e59ae061c48d6ef8ae0c8d3a33d468706303006e7c89c9f2361a3b1ff6bbe8b6ab57cac7ef633c2a779726280c9ef1572a7a3fc0660176a85c3d32bb5408ac7f22adf743cfad62b365260f35d2d78d358f9dfbeb069e44f05f5bb52c8360466bcc989f810b071e23ac7ea248cc8f6af1cd31925c3dc02028ca912cc0a4f4d380a6a1e42129ea9ec32acff5a1a81091414204492d519e9c775f7832f200563353838c342e58e0340f3de74a3006421bffa8b65f41900b5f73df19b9c79df9f8a5c725734e3168d5805eea963b6e5373aa09405e995d7734a3c06cd79676d92e8191b1a162b66a9cc5e165e70887d7ae60501f5700452490a27016a6d453632981eb43dea08c2b8fa2a0ab86672c7739bd89753bb147c6ee05918221ed5bf0335191103abe0d0c89603aa15cdb5b6c406fd865dc7c4d2d11b98542a0cfd1b0ebab400d24e83e858cb0489f192579e306c7cc9ca05dfd64e2b8b1048b3d9d1b48489fa6113e687fc12d4b2ce0c5185febc55444c080ef27253a0068d59d8026a69e42e658b69aaf739208af5ceb9dc40d7fa9ab86a6cdb2b90a5bf1c7507fba4ce7d0c6ef8f39304cac2ea1242f98d820b8c32fa55bca27172b10612da1c32c716e4164b8e974bf41709b44db43d48f58caa1b08ea5df9194a1c7d4b98249414c5d17477964976cf97e80ee07f2451ba16e9d95e919a973aaa7d465c4af61823a255e743d13960e8329106e11338f1eda62bb4c4f58558332d2a0f82ce4fd162896817c4209116993473ba69bb5c875a383f82f3f15c758736867484869f6ed82fdb27729d6b7493b81a4ebcdc4fee3f452b5b6700259767f51319656967f5881949c6b123659da583497c014acccdf4628356085fbba3552d6a70e95f78fb122d1c534c16e83c82eae7dfd74e89ae8a6ef216315840cc46c8bb8a4a8a6cc6c8ba083d780dc3ffdf83c40a0d478e8e070b9184e2d061eb600273e5dd3c6f0bbabaad397104e4dc24461724430580416a252b8ecc912449c9aaca34a0c144d800de442caf24ff6e6bb5e330274bb420dcee0d23aa9581323fea7c6949d120dbacb902752d7924134c9be40fc602be986e54acebf6483d1c9372d4d729d02c9b643ef5ed1da27132cf2778b8485b09571da7642c64fc176c20afa2e3f6d0ab54cc161ba81b4e48837f0f2cccf17210fbce27d5dfbb7547aab56e0ebcdc46f60f6358ac44ce68b69416c46cdafe55f8b7cbdc6b9a7ae0f3bf413c57740075cd81dac8ab242d3638595bf31703e7c12df9d18dedaa50ef2832583bcd6a8ddd0dfb04f994577377a886d84e26fc217be950d7571060aac903ebb91a3d4a8a76c934340f7e953f5a336ab2c388e1c0d74bea71dd945927350f04d69682851c5b8d98ec1a0f2ce23b2567f878cf4959dd6e66461bae324ee67204ef0095a63ec4af32a5298a91698128f7fce043af6c1a9a13d9f0467e54d676c26c93490a86d1a350b8425459fb2264197fadb5fcbfe832d739969c211ec18a7fbe4ccb5e01ad2ce97bb26d0809a3ee6d0e2b07d24f6f7d311babfd05ff5fb54d17848c9a8e100b2b5f8fb119d0f98561bb68e53bd440ff0af1793b0bcc013e37219dd617df3160e0f5120ca8b47f806c165362b2dde6ec745be20d81838950af92ab1e0c551c964b2f24c41544edc72cb157b04cd6612dbece8a423122e8dc4087f1f506323743e24c48a8074ef61768f84a244c0477cc8357ed331ef14b93d094219a27a01606c92dee8b4858c2e94aa552da1fa0cdd7c60085eb183ba93e69ac0eaa1e5252dd720b8771b31bfc8f8e60182424f9001be0031406dfb77dc1e564e54dd9ebc03de41fc00d392df0b38098f70156b9bfe0468e5b550be6ce20be039b3ce089e86e6eb7de0ea0c0055d2616e54f4b4ef4b8f3324a726fd3241e3a0669b535c1c790502e684ca0b74d20b67bb97bce548ba17c59ce34e5c4703471a0e1134caf08ff435102ff511f1452fb88f6ec7970273a5fa4d00ae86264ce0cbb110dc4012b38829a64442bf041679c2662d466c84dfd11b075d7fa00f25e4c26d47af34e518849a4bafa24cfc9ccb4282c00b1c8b17246abc0250089367d87d4848f4a6dd02c55d0200ae687d249ec12b92c28c25f662800f2e98a174918f82c4099a73002c0670ca82cea87d6cfbd83f31ca2929976d24f8b76c9a30feba69e98649c71e92d9a9bc26a1fe00b92eb5b3678a34865407836371eac2acdb95c01797999b52f41a04aa4d03a4dce48218a5876725106feae704800af3ac5ac1a8c560b257bacfd6f48874ac1589139c72843e56f9a9a2e05a36518902420cc2e8b3fd8392166290604774f9262c86a97f334bbd19a69f004b9de235f8509b38da70df740b3309d18c9d61015c755431586de144aefcdf61c112332fbf57ed9f1440a313ab0d0d203dfa3d6e9aab6302b4b30bb193a3a81dc507a8f8d8d5afa6d93ec9bb9a9206a5264a1e6829d76795966da7c52207b557814ec44fb7ef9402556e00dd7e8b77e912a91e9b4f81d58c2d8f92fce7137d14c7e5378a87137fd6476305a5bfe706026464767d3c95e13c90f12a213bb6df4f24f4ae0b86d340400ec579df32649beda57eca8f51ea1cdebef146441385734ec261b248ccd34e9dcf31d7ecaa00d232b20c32109feddad2b9f8a44a4edeb4592cea91fad4354880b44f0f7ce331926ea901034dd14dc4aa4d0249e9cfad04c1b967fc69e98ee91ea3e0b9f579b659ecb17f0bad0e86a4b43674f53078c635bd95ba867eba559e8701e5197777fe700f763e9e6c872c69ed277ea3273f62a44d6eeaa34ec59deb760ec1d3f87274eae7e9dd5166b7ba5e0bb3ec55e60e7e1b1badb3a55b85e75c7968aaa9074e18f1974ccbebb7b9878606f58f6b768c297dbf43c81e1b9a79566cea520ccf1643aa7fdd3c36e8008f7a4cd3ffb2713590d86a01db54c4a64303225bb16a3f112a079c6923573a0cebb6cdacd9518e050d4e0e63501f6a5e7b1ff3f1fa5132e28d7a86952fdf0cd08f567b484be74daa7def0b3877cb178657f88a8ebe6f7983580ca78f16a566f3bf63b1ae1f2f91feb74cc281f63fd8a251762846f9650a8b6a6bae4367e657b05763f975de6cfffb9f2f446052e97d9750b77b1b51006a7398647f5032db8bee244831731ee37ef923b6b4780771bb43bfffe46ddd02497929281e51fa7d6f7a81aa5c436d571d8c55d77cd5145b140c54f9bb64f1c57bd3b07b4316afea79cca3e8c93b4b88365a4fc1f7ce8ad25de48ef40d37dcb0a7e90eae4b3744593090e3c6df0fa30d6d7bdf8eadc3fca6fd2b1819db3d18384c3c19f18c54b8c58bf3f09b631a32da10fd1bee1cc697f84752d53c2847a6d6d6372a90243de0507c823266b1b19170dbe3a5689f1119b0ccb7f2b5a4cb94a9c94bc44cee28ee8c821ff042b623d38b9bd59f8232a839657a2befb2696e0a0ef29806a4fff8002e04d3080d7da522603ce48a281c8cc37ce0d2e6099cbcec55023d16a2d11491735faf87d4c17faaa1f57a6a1d640d5363160b9ac2bd85e40707fe5668e5ba35dc7caa61a33ffbb2b07bb8061ab1c58fcac48ae4e9e31bdf1f54b364826a4fcebaa18c18c5dac9143c27477e393b833c6734cecce468dedc3b37e58d225041b69282a2686bd32a4fd29b629f59a52182f30adec4a552e81e26eef97c6cc140b9b93e6c1b6ad604de586cb66bf450050b4e66fac9ca101139f319a191d1e141049bfb2cebb450fff47630eef3321e3f4a9c4af56ba09f14bc0bd6a4c47e10f3c767f7d5d10e4287302ae1c1a2fd8ba022cd4ab2c927185498b02897e81f1c9737039b7db96cd411e481a4f32fb9a1ef35e157c20fec25d11785f004f189977e255a51e314946806da863d7d0b266b6353b5b4c601047f5e738a47f6572deecbcd964534ba1450e8e003b98453072d0901b9605f93d208ed6252841950c4f92f6e3c4b168542b12c13055341fafdcabd2618b64dfeb72dc78760b8751322384f9ab327f13ba7bcbc0153a9289482db50157814f853703e63ca342da2968f3001f74a5bf7486911d636ebc8fb73a976e1474157a0a1ae5edbc0096fc0168102c6fd942b5892f8e3eab07a1a91280cf3ca39fe4b0d5ac52b35accb0f3d33421f59e089fab9ddd5532a65387f3ff840234bde1b60c491f32d84ed4072e34fc1a0ac3821300317bdffa394d5061bf7b4db922d068d76686778c9c153601dbf0839c46166931e173ad2fd0adaad64d7b96f144ba989f75f976235abc6a8fea1b4fe68625bf4302eb20e25c0b5485334935a462c9f2cb614569b9ad17223d29b7b65e3beebffc9f7a0cdde86cf36c96a6038dbd9261a3a5c5bde54ee320ee35df3e9dace6576a64ed2df3ba2cd2c4075f2663c7e470e2020a4418f4523cc112867bda7c821539c4bd3128746a434dedd3661a1065d0c9e25fa89a7a602b4af9af96b53aaf282e570a08314bef3a27362027b9a38933468cc47e6ee7e53d0398767df534d1733028aaa60706b1f9a3b6f93afcdef7482870a9fda22bc47f6f790b15b3f25a62862657b39c70059aee7487c463f5d1124362c5eafcf4e772556befbeecd0071a7bd3b79e2f1ae9a4a5749c5dff6d6bb3af66e32752c8f2384102fe7e6dc20234442dbcd831b4ba86dec34d06e48d2319312d790b1247bce2f4f91bf06bf7cdf9b7376e21a21276a505e97c1f333d99cd07a4a783d2151b544c4e90f04cd9e047410a8a9b05a68b4853754603289f1859d68f36b47f040d458eb5baca63c9588000956483f8920fa09d479824a0fb1303c7442afda9ccc15b2d37dc7b21b31821c2c050b139ea5789af4565222f4b41ba8701da51242e39d5d88e233b830c3834d1a19b34b20cf107a021014ceb03c63b42230b5463101d64039cb5c8498a634ffc37959f208b0065ae4c69aa257ab8fc51f254054826a8b231087a47a5859b8b10e9db81a28264e118c1a0366e09715d3b306c315f50f9dbdcbb75cf8f20a69be39bf3de7f7dd09a04bc1a06a72c8487cfb1f2495765d9f300238c072b786620a251620c056df492b8d30d7c697f1bf11fcff2c60ceeaace1bd9d9b3b9220ce74ca788ceb1f1bbf8b49151b1ad098a2b9725b77c7d97b70175d157ce04cef56d300d2323a2f013b3cf3f286e2e30fa9861339401f4bea1fc3e2ce2a906da63e16ab3a771789335db2168493bb3a661ace86f4a325fbeb6f8a2985abd50cfc439ea1951051755224be8addc4b391087f9b2d2bdd90fefe63f8ea3a3748fb4d033ac741e80c00c4086cd9fb4fb162496cc39f1f9eab967a411e4df91f95b1344c9703f4a9a5a1b0fd8f4140b9796a7b1d30e6347a3ff84b32ba40b0ef3b06c3ea2ee1f436fc7607b1e32ab0f641dbdefded14fa3121be0c24f816c560e0c869fe03ea852243f0e41f1801085c9e7ca4fba21145663582bd1366d13c94aa60a4b3a91fe6bf8c35539fb6ce7bf2bae45a18d40a69710b581f80234e42200a6c48598ba5adef8b2b5019abe6f54f0371f42bdfe713bdc3f5fb0e5b04e3fd3cbfc27dd3abce00470ed7e85d3ee88ccbc2834762db9492ec653b0ce0200829f30fe17c530843c8baafb71d3277566960a42fe12a4af46b07ce567bb9676942727b58b3bf6d50b682da657d1e6b0c2d0e60a87dfa9c54c9609bde9c12f80bf0054675926e36334b325b43c3278e904a635c69c906ef7644f88b4e1fb8d71530b1fab4169bd3ddcb18a760d68ba4d53004034ff9d65b17dedbb0ae41d0e361af521e23d002c8a5461b4b055f627f9edf46691c644f406fe9fa384deec3c4e25b39f2c8cd1067c8995cb49f17111cc13c5f941e852044359242f141096a6cb457949bf4fe39a01c6033fecb899d6edb888dca93c745ea2b8e794a0404978e23b0f2007df433dd2e08045385a097987ee247ffac35ab803b84ce60c0f0451636ed9a117a1cb63e801e60055624e577cc3134fb20605eb2330d75c59c03229f298cff9063ec555b94f443f8e85d3aedaf701265059e7b79b0f5da3e887d700e7a6c526f6e6e13fb137d4bb3715a6d35199c166e8b54b0d35b35d4d31ab709802ef5c9fce1f8468678383188322d3fa0b653b9cc92b40a6615294b8e691503c1eb978f22f6078fc74971dc42096cd69ce91cb63a05d474132bf84a4fb8a25544468433dc4c40da737c7f6c7887e044f49030f3a1f331eee233adb0275e68eb4d04e9381b25ef4a306234464c152ab1f5f2943b3b3ff9907057c216dfdb90fe5217160bd416db5d07306e251227adcd2a55211d4e46899add495c144081d597adfbc6903bb2d37665fe4228d0ba046805a7b91a268fed4890b13e3617bada7bc5e7b1243d58ee3f8c30969469efe387a9a0c6f0518c08d5434fca2242d45dff0e8ae06e3bc86088f0906f5ba64bfa8a97d856c5e4d9c6673242d0090de394cbcd96383b228a38da131cfedcc260bce6fa0568176c79667e6bd06e05674a57b5df1f326421a44677c03abe9e6f699fb277476b82edc23598e72016bd45ff79395b03b90dc2c59883c2e9842d3bdf87d261503f2f6d6a02f34105206749fd2694e30b46832bdac18f99807b211551053d63217f17904ee1ee1ddfd3b2092fa1fc5d5eb00be060b1e1d5f5ef620158554ba4bdb08a66ad8903611a6052e16cc05b44ed716049148bb06620da51c5b993d2764a08c255409ba7fcc351baaa0f4312bff980be38048dee8bdaac6642a19512f59a6447aa79d40134027919ea650370a010690b8aa2d3d994f6ee5ac17770650c6c424ee55f87d03e07674b0f1c883571ab75fd537c626a0864e33a3db0dfc9a2b0508962a50ded875c61309ddd3fd25c2a4ad2f535794bbb497dc76a980a9f3a0abf1c10b464032f1d29b95ce48f59fb9613d43c638dc8a2c83de47ec64ceb549a49ad8d7afc5e1a4cf9edcdb08df892a53144d3d01b8bd446990f191c9a10fc27fb07363653b740ef5a9fe49d0ba098e0d6d0843288c186825dfeae34c986e02fa89a741766186b64873c8186c7a26b2262ab6b424e37138a73be71868bd4bc9665e93337e9739e260a60ecc77b5734ea53cc06edccffeb2c5362ca7afd97dae8152b91ed17450108f34cc0e8c507fc74ac50a24e81020ddadefed949a61b97feee16ce03c01d90cfd62659c0441c8509051ec265c8761e04846108025fad206a985cc213aedb81a1968e7a32ed7dfa3a519f2462a0055ab830c015b01a392966b74bedf6c82f87e53e6abda3761af1d57d9ec24dc0b9696ffeebcc0da33bdffa5df959e614b515b8d038aa1b75652e4b4ff70dcaf6432d2234b23743edf5915fb0f1b66d46b410d0c807bfe1e879af8ef8cf5968709cb36b8bf6040ca5592c56261c99695ef0ab3aabbe635465a9092980dbb0c561529e6afafad974c6bf8b8d7fbfdda434a940fe4c4b7cceaa5c1e59b9a9019c1eebdec9dd35107b87b9c879fe398012fdc8d75bee1daadcceeea70a9268ff9d8584206c8087565a8e9a100ffa38e5c6a36b216af856f7bd87b8f2d692f52cd496116a946d93469454c58c4aeb21e70a9c03de426141bb231090022d8a9fa45850bc566ee66c6079ebd8fbf0ad607a095e606bcf6985952d766c83f004684e21aaabb3e1e2860e2b5ef8aab5d3a82e3902301da98635f14c86e42e0ac6fcdbd9fa68d36302ef1dde09428f09700888410a1e87697760739a1c051f1b3d1287fad4cf0a896865ce1e45f0d938bb866723a60368080c500a4e4ef9745038ca35f84666b61745dd968f77b303b38943d123e718f273a86917adcea4ae46c9592cc12eb7c87af1e0403a8184c26a7551640369a9531b266d427f6e7e7bf6bb5360ddbf02ac4e269a9f4cd8291353b476b47a2c7a542d9d0a0ff5fc8241eae51fc041514bda13c942fc8dbddc2907553c4fad4979e40e087fc5308831bd6dd493098120d48ed233c51734c9bafe46bd43f73bd00e6087da07ce0c027cae06c1be6801ecd4ec1482dce0b4ee0d622603c1e7a68fe19927353162b6990d3965178592029ea7a230a32b4669c0ae4f523b7d946f9032a13ea9371f407294fb27c6c755a2fd13c763c7107d7a902a06c317b1787a3a250e185ab17772a9777cac248aa24b257c40215ac600447e91419b9df34b3b33d5617860eb47e9e8f43a2f8bbbe108f831e840678303810d0dfc65aca39d3eb7a15d0b2218cb4253b056ae576b02eb9871f0522596c3c4810da3d05a7480575ae6c0de56de1be8eee131b79b48df80007e5ff3c4d060c122cc9dd83614efb9329cb81349b7e3c7747999dc77b7a2d74136c6a01aae7bcc58e1249eb857dc330044bfdd9376d2ea0e1f0e9908ab617e1b991bb20880b390031ef98b5cd81cd4da398389a19d0bab1d2cd091183894c4cdd6d81ad3366266d132d71308050c28cc953994a0e3c72250e795f447f952f82d2d5548fa91aeee4709dc45b0a1cd83c14a6c40c31b592cd79ceba786f87534aadeab60fbf76e5671067a9eab4f4b7b514edb0b1abb220460e144c5f9f596181a22a83c38125465de84b9c1ac75a728f5c71069c4d86e13648df7081e2e61abd8fb9364f295a9a8ac8a9c780e70eeb99e6bb4972e2c9d45fa5be786870c261a1cd47ef83755ea8dfd5dd61ccc50a0f3d1a5a2756af3e4e3e16b4f0d7cbe852cbcd52b297cbce48ec4c71800904912cd3812d5358d010dfcd4b2a31ff06a6734c8ba0e6b2eb4b3bc84d1928d6629798c797f53b84b71cac80b753a725d7c3629564e2c96a7351efab080f5790e287af4332371622f8c65ae8444e6c9369f2621078e32c97232acbfb12c3019f47918456c6ba11acaf1f62736ebbc922197a439552806199a16d63d337c8f299b9c4b18fd7f98ea936807aa046c24b3b376ae11d010c74c9d05dcddda98760e2d1a25ea8d7fb9dd7c8beeacc3b1dbf572450ac2880d5da5050552895ff1e68b43b7083c55ae759bfd089f5b8776ff4de85c1b7a8eba80da1fbb76e5fa6eea2515bd705900f30008e2c06a3df32a51aa03caf920c692b80f2a11be700fde256851b0b2663ce407312136f68cf271fb5a44685ea0f1665c87c61c846505897e5b8bbcd365008f12868a0d3d72b39f57027e803046040b90e03e854cef90eae07401b2732ab6b1088c33958231d03170bab1376375ec0ea36432807864528c5193b315ce37cfd8ab6c094b565b28a38f1d108b13fd86ea6f631a5f0ddf9a0b8bfa9d7aeb1b437cf5e7b500bacaf122d1f75ecd0e10a254f310d12e76a09026492c713b913345e08f17750d3fea818e3e25ef7c8f98d2a346522b8c86421fc731ab8943888c1a8331fa3ecc93ac54e2721499431ad0fc7fc07782042b72029ff1f471d0133472a604be2b7793a0ff053d31f86fb165477431a823ce2c2085bfa73f76d8d0fdd132be8b029753790b5d76a8578a6608c205632a8404a813ac50682572199c57019dd8e51eae29b47e201a0114fd37a71ced0199f01e082a2f5da1a5774dca3f06735e65a451f451b6992ab55810c08119bc2f703a5aff66cb34f7487fbae4e850586060b75b4ba512bc58e8d7f0922366d358b99c8221848d4ceece19fa63b1a15083139f9b7585c7ec3591e490ad1b969ce807d26bab92447c4db0a336877906a5638b10684156dadf90eaa67b207ef0dc43b702cacdfc9716604e54db9da5e1303f98b4edd26e71edf70a59c440c35c16fa9f287409074b5e044878c8bcda86117e69efe98335a520b3868c4281c1552d69e90ba7303148d9e5961aa4be6f416da3ee7a4cb3b5fee69c589a19eb9c205e49df03bb3a39c2cc4d9da5beb2a382b9b1bcae92a186abfb87644bd317f76162d91714d8cc4de5439f16e97ae87253e2cb5b01860242f16b8451480cf631267c27e4d5ab73f7c10b03bdff95fa27933a934214554aca4dd8818c39ed52ee32e6f74f5bb663029f3ee70c6f4bb914c200e8c7f26f51432c9cf5b6e6b1b98d1756372f448bcc5a6580a9471a79a0fcef9f8ae422014c2106668fddc9673bf5f00bdc83cfac4801c68062a24347e7c15dd32d2f23e76ebc70a9033dc829abba897367599279c3e53007260c545edee6adaae4bf00ef5c2a862fc4d8f4296a4fdbc13848d696053b2e5c3b2ed72555c5b933a18645d02ccbf38cebaa2770ef1466e2764ac9adb82118d857a62a8b285a4811a8170ceebda4461a0afee8dc9678c1208aca04d76cad5d17017cdd982919c0d14af104340fc3a9c53fa4bc57e66f2307465b166d63f1668b3ab077a208dd6a71ca349a8b9385998d010e915f70998b6ef24c3122068972628c43b848b0dc3f8be20196565b25744ae714d1d108b2dc756a91aae99610ba5ff09d28d007800384a388778a431a3091ae48ca713756b51c0c76edc88e4828f48c8f59f578bc9e7dca472c1c307d75b7fbcf52eda0ee39bc528a61d1cc1a7080b63771de9817c76f63f6315b3fc81b46b5f9ff472ba2f3448c0880611e4fa4b59c6db981594abdc6235a01c71797a7edb1dba5d949a79111d94bb64474e8385f2b93037c51bd4b32481665352e0488f9dee1a20807cc74b68d97f9f3a0cbeab15bc291db844bfbcec4d3c2551b514b41d2f9fbd953e2e7d29a60b6e7a974e2892d2d9da894422f08ae8fb354e6c46b1d6c7916eb523b21682d18b3e1401119704c5048b98f84510b8998e15a15edb060d57af746e06688f7f0137ad8d1e0206dca105fbb59ef01325ca6f6b026d95a2b5041d95a3d6ca5d99d2c05024333e0b8abd9e5112e314da0c5f7d1f872e284815bf73fe0a12f163c0655560e7e06afd29cfe61c14ea8d0bd13483d0a825b5af774d694c1b207f52f9c07a2949db70cbd846c1d4a74b1ffc0310fbdcefef018c7d1fd07ba86d3812f583a6c07aadf5432b2f8b5794a81db4eaa12b94c5523251bd485574315360cb6e3a1a0b57772024ff68e06933578629d84a49b37c340b57b2f943918c64de73d6b10c52f806ab53f66c505fa4a0e5e3277b42fb7c6ad660dd9065576d103c0a8186b3d048ab2fcb1502a6f5872f054de2e83f1dba75dc47cd547da58a534365c4c0e9c316b5a5366ab01205fc16ea2a1df6e7f68893e3517339d8c1b6dbbaaa9e8f772c46e3ce0eec93ae3451639c92e45b938ff6e25a106293d722ebbd5c607ac91cc414923651e79896eeb80ec8634c1c8b1622bdef0be61fdf290f8a427e0724e929c10981a3ccadfdcbb324460d898d69b180739dcf3f8a604ae8884f2466e8c12fc7692b442e146149985247110ffaf6522b562ef36b8e951bc9d37f0a59a7caad89ca70aba61f843d91bf619a86356a1dcd3e54fdfb77c3458e92723cd19e1df9bf0af10097877365304fc8bd06b23adc7ba659134fb4a3e2764a652fd48a5f4706d404f200e127f6aee18089e8fb79acf967a539496f70858dabd6e3d222c7ded0d659f0b31f5de65c08e57403fbcc0e053796d471ac0dc67d097dd97d951941f3989f44bec62581192796ca8ee70e32ec11bf840b5c03d08a90d1613bd5dbe1420400e116c328133c685623c9b90a3e0ea6f3221bc83153d6b33b27a3fca31d6ef9db207a0fe8ce2a7f096a027e47bf61a001ec0824de78f16904338e69f40e80bca36739a33e0f9e4a38d25367a6b707c9852673978979f6edd0355c21a4c86333d76f1da0534c02f49d69c095ec8f0c3bbe69fc81ab4456be575177098e6541f95f6a45fa9b08e6cb35db217fc9b9fcbf8df2836c7761917728aefd2980c4ef3f5c4b7e162c119e7122d7a2b3b100b661b6c07d5d0de68178b36843940e844555523584d947baa9f1755aafcd479a9b31ba0150a2ea5df05f1ecf1150adfad1391d2da02d0701df7c46dec36f038b2374268fb816c859303a17117cae6c514c89b868fd14799f07a4e196cdf7f2916600653b4ab85c2194928fc22c7f787bb37248411e2c618b46b1ca891b3b529859960c3f18de3da2d69c319324406d743db6fce82377bac3f6a5aac9f76d36079e97e733eed6029fcbe9091b70229c0c0c9d8509ad098d2510e2b68eb0f8e0d8825e3ca221f192190e15c15e490ed850184bb1fa2fd34516fe4571844f4fd1cc07525c980f9b5a1485d7c8a26639989a221c43495788b68edfa9f39cdd2ac3707b233be416d94296941cb9810694b37d6236b5a76917d30f0dc01dad1a2215fae87de5492c00f2d512841033bb183bd40f4563aa57948ed7cd514b9f41095acf40c7ea5afd9e708bd4faeee1c4325bbb8467d0976aab8fe338df5a7f9585a6cf89a3411f9bfa8b804e4c84a093a36d432cb7797d40d1e42240a48688d9028e49500d16a6311fa73d023d8cf663f9725dab6013516181cf4c38ffe29501ec43b7a206dddde65195e31c3f808901f5c1ccec93619f4aef8f070a357aea741a7212f4c3184c403a1bd260734732b2b5631dc0bd5e944d58449df2afb7c1d3930f361638e60e768c68b4968f70138d7f1fcf881be73ac6bd8763df69899cf9aee67384013043a71ff9afc1ecb24c2019d0cd05a1fac33a7a1a7bbc1e4ec9f0db16cd0a7fbd55c810029405263baa72f523f92856327fbf0ca5aaafcbf05dbbd8549b583c0fcc839fe83c11104532768e12c0e730f4c636d13429b8472d271252479a6d9431906cc70b3f6d436208ed4e41be2a2f8ac9f24a22b42c9772f633694368ddc787bf52825c61eaf252caeaa4666b6ac678f0be2ddfe7b3a942d98c11b7a5329de6ebb15513c5ba8b8a78c9632278af1a69e4dd61a8e0fb6b87ec400afa5419c28e42bef576260d320d29abfddddc1cd5bfbaf0dc2dbdab6829032818842edb4cbb637a914666b16ab6d9fb3abb3676bafd62649263858e34c7f587922e14da4be2293223d01502904bb08bc9ed08dac5d75451fd15d5b5e6c9b52264af0b72df06c13bdf2e7ec4b3a85377ef2e78115262b4e3715d3646cdff41dd07603247ffb663c0e1c8c643867f017decf76cc8926d64a74c7b4749d1231ff2773243f8638f2a8d4a6a644169c5d620918e72f1242895ba80a6b77075ddce1ce14b7ea3f59c6bbbd69ec93b60a046cc671324d4938e399b44295e953e507687cc6638169495826fd200d9ba1a58bd7764c0b40076fca205d9e30b6b489767d9edb40d3154c180d2c9f8d1b9de6bfc45677f6049041857e6860bd87a02da63e52477f249d4008fd5a8eb8111d061e13cca731a60bd252c8230979ca035521aeabe88425d96652a7584535070871ae57e4298cd48f637accf345364497a7af25e854a7af40e753d5dcb0e6ba4cd44223ee9122305058ece4bcaa28ca5f3a689cf357800040acb5cb70929230a42359684ec3425980b2a3604d7718e2c3c7ab1df7896a5aea448b608019f5d05244fb3b94c32a56d2ac9e242c71e1f3ba2438682142156ae128e5445234cee77c72546087f25a12fd6d5734ae165ef03dd6ac739dbae8a86c87852db8cdb9f3d5e41a8cab007d157a88585b638f165ab369a3aa4ef5ba55756c557ac9613ed6ae025f1915441319beb6b834150929e3ef9b53d319386f32c066bbc21fdf64e5823f951363d5b8ac6487aba4c51ea69f05cacb1a7bd5902e41c4ca60a40190ede1eb8f40395f7befb96368d1c6385797202a1d950382a30090e45763cb80b171e752c21a95115f229eeaf53364712723d0c43882445ed5727949406ddb748eee54b58aa12ca1266d6d64335325ca8a41ca5ebf53636b0d8b3406623ab64dd3dcd03e170811c2d240e2b7450a41959e0c5d511fa021eed3f2b6595f26533bdea8fde954e429da466d57c083ce60e6a37c45aa73b09ce4a7a5db3631cfb035d062172d29999d152b8c18d95f14b0a06cf2973a2409aaddd33e7419a95aaddfb24b474a47b938085cd05d30e39488c58ec4cde115a22adb53c73eb8aa639a0e0899546924b60b0ed17ef900ee71d1714dcf0369a1d88673aa2ef91b3d6e51f176c538e0f9d6b704e9c28b41f74aed38847d24c41fb29e15e74ad07115820bbeac442fef730eeb2773b4491d89f107dfcb035a615e21ae35a44672f5c8a32f6b998d69cbeffec5aa44faf83bb3cb920b83c15999ec72aa74d97ac8aab60acb75b03b55a60a9a4700d676cfdcaccec6de6207ceb69683aae664fc3417ebc859f6267414721ba5a060a35309816873251be2e427ce84a56b885fc0532122e15e97fd8c0b50ba9fa841b22c32317153511fed57225f5e226c94ad7df0cd19a27057c73d8c3b30c28f188c023b559988bb622921d614fa39d44ce9a99fb50999b638b68f406b5191a09852ad12084c0a81abe73ee05641914f1c79c09e8e5ceecae053508f89ad8dc16e86d6467cd725734aab7af6a1418f878ef5dd07f62e4e56c7d90ae1b53c85f34c1240dc4d481836d760f7339d82d195242f8e02cb549c91306c473ceac77e2757d273d4113925008d37d26c7122dd2b84137af7fd0c2b413cfddd059a198990dd48c829200041c0b198454d4855e96c6b80124b8c2fc8bf3fe4012d2c8a66aff10a3ffc5ce749db3d375255006dfd3595c9bd047a1284b949a088567e90f71934f93f26d52ce4d885d3901b6892fb98dc545c0069235d673fdb8a234ab25630db8b0bd09208c058767301ef4d1daa3c5937894f1dfce6e64e04a44a102c6a7405040a7d1abb86de9e3a4671e3a9a41c3d15d6560bb0ec57bb935d94e2c1ac9665f64d5f16d870de40f1590faf5e00b6c9101a5aefdef8345c2460562196263a12f84414759b59b11f53638cb5ba6d16e7117b6c214b2dd8c00284f82db58479fb39e5f55916aee598ca5a919378ae223eb551a221719f8bba997362383a3d02cc8713a83af6891bd6a97a377598d7fa3bfa6c383f932f205e94ae870db4d77c5fd50e2aa98fa3255077a5b6570f5f89faae1b94f8b94348e527105a0500a130b01ab4cd41a118dc062949d504f39f69c75b11c60253d77eb8489d126fa3d56feca0910af86b8102934d204e1660e6b9abef805b706c2ee4d4f61916c79546ad879dd89fa6768062bc54df3808e2193d6068246ba347f628d491558901d7134b1cf1bcc14efdf173935a25e50f329ee9ee268c6dd77ccc4d30754ad52750857e48c00aa2359542a743335982bab029a86b114286093d35e4438d6a06092fe954c453ea513687f20b5c15777ea0aa6334f88dc5b6e2db7663d68a7d2ccd2df25492440b4afde985aad51ff4613096e31f2c56ac3947cc30316b6aa8a5067f190aae45b8d794fda0f68af00652c1b4571897505a12192c9c2432f1fcc38b7728fe91374325282e2a975166e8fae850dfcb57325d1d1ab0b59c51fa21b9324ff3502e9a28e99f5655ba6084d0b7178a36e9054e8380417780398ef287cfbf1f9b3fb7e794b11aef72d3674fd5643660cb26f56f670c9334c4858cb2e568197188dce2f173548f630c731e13e6b06cb024f73c24a83428a50f4dfeac2e8ec01a5ed6f810c84ee4074f4a197076931971826f52e017e85955b9b4d00865cab472eabcf95017c6a7eae3c95c48ef85a2cd25b60c19967faa17f8e6bf771b945f8b512b491b33445155fb1f1cb27650953e90f0b142e73be4f9499f19354ba17cb7130768e6a1b031ba2b139791d26d2e93fbc27c3eeb5094b26164914069187e972a329eeda93f1e021ca283fad918281c823a1c8a6b47668dc27c3507f77f65f2dba585edf950ed6cc744071e939b33235961fe6c2924a61d18cef8b81bc203ea17960e0604063e849f90c4b4b63b00bd7ff0c198f6f23c68745938b0553b860cb8b4540063491141d3de3c6251ba2e8b1b9932c32db5e6508ac45b2337a71e78c9d5a163d62892b7c8ff22290e0f791a988f79827cf89122fdf1f3022d8cac9a48896be0f04e789121fa3399fe357045798c83194087273a59264696345a8ec2c9b9007e3a2766768117ad673625e11718e3093f95fdae9d3e0ab9bfc3d7d718c8bbe80952c2118494b6ef6bc00c2b5c63c4b30886566252527a23182f18cf41071082308ec2c4b59c906e416ac2615f639a8c204baaad56d10b5b6d3cbddffa53e965d47372a8829f6e29063f557a4b70b11087ac0de85bd016f504d982c17e28e2ef64b53c32d5c2827bb146c17496c79c968be472d2d9205f35c93c97ffd58c5033c7ac56964ad74f04e44c87ff036242ae0e5815f3d96142048460146963e2beb4c268174e0c7536519ef62f3e3101f34345ac81d5ca68ffd780fbf7dc0682270e244b6364a59b82f1de05f2a1010fc328597b57a1881ba56062004dc3b8039951eee9d22c917f8a7a091799e3bca6e7cb3dcfc969f22c9c0b00dd3be8cf32705b32f707ffe4ca93b9d6c2e0b206437e85671ea2d23396f4de114279884ba9969b858c5649deb5e8fe857893d05e8036e789b04cd38175427b502074c60479d135ed8023074b79d3604497c35450f127c2e105c2a780a90865bcb7cffe0a92523ce88c42b0cd352224ad810349bc38900e9d76d23589428557bdf92251c358d1797e4b7c9fa3022ae54dc6fb211a4a0f8b524b4d9416f2856118896f1d90fca643833cbbe56c94c36e92b60580dda94448d013b097f6e0d5e9680ddb2c0f7ee0cea0560488c60d436e4c30bab270148bc7815a62887da6bdc825a48458ff0a315e63484621f6b6d8c637ff3e9ec8bd2ca773516a20bcb29d76e251028113606f8d22dc54bc4af502511c7ffb4d63d774f993fcf982f3d8dffed11158d647007dd80a339c6e7538c4a3b3a08e42f3a1bf2701df21eb14db10a71a025b9e9655debd9b1c07714a4b8e9c743548d318cc4f81cc5dae5085f17838e1aed5d702b3419c78eb0ab7cbb34075bc0a7b7be0b3ed2ebd11404083c87e6e217689cb3cbd95b25b96e26090a6d91af0c1793244a123a9fc7f6408dd4b4453322e1a7bcf8383bdaeb7cecf928af280688b4f5c259a12dd905390092a36deed350a154aa77e57be69c9464f9f0f560db8dc98479132bbb4b644033924e834a46121bc03ed448677179569cd98a68fd1347bd51d5401b40412070d5ead5f419fbbf86155d4b6282941b211d2a11489f35b08993c31ccdb5f88f11884b1c936ed08ad722856069491242b0ad1725ab4124bf548a2522d21451e2d653bb46c1bde318b7b1b414d9a1c91e598062b09dd5bdb01089cac2c8a6982c8193615a32e15c14b42b35d35ba49239930723b1be748368c176afa8b9290b121c870a52e25c22603988895ec2ea7a93993cc94419a0576720634b689368cdef64aad2a059ffc3d2d80b0dbf585f90510efbb792c1c347f033a9fb684593092324a1b554423385c021ae1b80a39c71aa2c5e5cc0b713e0349b395305ef7446283de4d253c0b185365743e2037540001288239e2ccd5937e051d5a8c51f8e333ab2790ce3669db58d16a03fddf766b442491c8eeee4d3b0608cb075e088e75b9f58e62a8c3f6f29da7bd3cf3f6cc66d6b5519a67edcc4c4e612c409e960273648f1eab953b0a75afb43e57f0f124df56f0b1e97ce78bab2684e4ac9a35a75a91ec492ea75d7291a3a53d6f2bf878eba5bce944315d02c9bae6348a397adc532acd514cf79819a7bd063320f3feaea544192baff3aeb504935722cc13e05dab8a97269f3de6d5ad70b102e59738fad5bbd612466f65e8edb783f93a4d6edbb3ac54511ef366491a11ecaba609b9b6db7a470d88cdceadadd563b4de54aa471f68599ac3f0d5d5da3524d730b7eef33a8c2e217ab348aed114c1f2f65e739abcbdf69aacb9adbe0175ad31d7de3a47a12018aadd94b8b7f281156f3de637ea98551d866fbcc1b74fb28e751824f0b72eb2bdb773a218c9b7cc6324e598372d03bdef1c698ca4cc6aaf1ead539a38a47aed1a01ad499eaa713bc4bb4b68b758f796c3a96f0da6a409c1bc33ab5d7352ec2d47beb1623657d38454676159aded510392f1f05d43c23dd7bb07d5845cb74e71fb09674e834bfeb08d438cbad87d5331997c06a730b7ee5e6b53b7660aa34ba074037a1bd0e5d5ad53c81381ea3157c803fd45c0e4a4bc61534e614efd7a87d12554a7dacd2404718180e2939c7ae6287cefd655be9d452a927d57d73cf3a692b9cf323011bb70cfad43ecd7dc61740f9a4d6f068d1b586145332121bdb9e26e5976caaa1825c1e5b6aa70f91873f0310b2dbd6b2581c4c777ad24b6786058e7b0f3d77a07f7fa2e9657e1e09f675aef70379da7f2cf5b4964691e6ebbcf7b4be0a4ee870afd5008218413a79ecb1f8a532f9fe0944ce9f339bcb885f607218cde427c483c773f507b8090d00fc4423f4940414df9d842c2e8a39f62aa7dba922022143a9fe0943c773f164e7faea1e07e96a4882ef4e72444713f442ce92dc81c8211bebd8d2c810f08eba494b4da6aabad165a7736b382e4137cd7a31785f1d9f8766a9d1b66ad6fef65bfcd12fe16bd05a18748e0cbcc82fe84b09e2a704ff4f47c71eab16244d363a5ca085f07e05dcb882f8cc892458b0d4c5d2cf1a6e8068996112d29aec35c918f034e80801151b48cb8f23ed81b2c77f3e1a3c784d89662d066f844839a6d2796e6991b31e50d6141bf3cf3d6aadb6cab2cea18acd49d96796bd433cc6ab7d4354c3dc3983bada186a16731be156a5ad92d196839023384baa45ee7cd9b748987b0a653c99a4e314bba365970ae5183183fa0eae969a2d69e2b3d374ba8b858a2657df0c9497dbc555f4129755ac50c71ca081fa9092014d1b89e36190a4ef7793745946e54455b44559e524aa9f39eec8433f3ae4504c46faa2208c7141ad42951645b4ca1824db9a6ec70a79880540410329a772da21b301ed836e155382d18586949b1c1cd1312185a62c5872d2730420c05c660a2cc14547e18030d2e9e3e2de28ca7334fb5780255440b524554b16e642d54576c501ea5c6e704540c70c881724a671c3394d249a93b1f684f61e0c5537a63e5c60994afa668791def5a53da289d61f39c5ea7dfb7737a38aa1b26ea9d32677e63e5ba8ffe5cd0fa39dfbb969429aa20bd6b4959e2033dbff5bc7c2e429efa13c5cb9bdeb58838427d4b0a959f338b9fbed2b9336f32afd0f3a71b29ab18e5e873deb5a4d410258e4ce7591197d0e03f441b02ae8fd3e9eac0e06e19f4299f4bf920bc81f0d433bb2778e35bcca72debdb3556af34c79c1a126756bd95933bb27f4e6db0ceedc4085f09cf25e9077aaf819ef3e8e073ceb9d31ad660617529a5cb9b18b477f75bf5e0264a8fc4d1b5c853ab98cb01f7033ef41374ab6add4dc5c568f572a08e514777a897c3b37a396174095f3eeaa0701c741d0ea8beacc0812977533df421730e1ac0f85e66e1ad9e3b7509fdd0abfca276de80ea6338733401f3fb8131fc0342b571dd6f28303a06d5977faa530e282f7a4e38b9aef504ca5f3b6cd7b59ed8f0aee5a48c6b3959430354887b1d8bc20ebed52c8aa7af57e775714d515c18a78c625013965b63837179bd301314577aa5d5b18c55bf2e778f61d755a91c43e774daa1723f5db7461d2d28356d117a06dd65f5b618ea937a459d28bc71d3eb745a2975dbf3452e5ce29cae2b53a3bf1b183111e6abd36a8a35eb126ae3e88efa958750af17ed3036be1d57b328d9e5ef510b08fd64d6ad2dc1a67aebdbe96d55bd1d216ec7dbb9dc5aeb3ede8e1087c0db896e7bde9af0d63aa3b76ead75a7b2fdde193208210411526cc0dc6ed7665a3de6627ca57a5dfe30c9afe6f256d873ccdbcadbb9727fb15086eba618afcf33e120a19f7bf3f5882f9e53def68b6d782bcc6193b7c29c85b7c2302cf31c435c1bbfb48b72339f72ca29a79cd01fe63960702fc7fcad204ed2b2ca63de38497379a09e8279b1dbbb21e2a6825bca5b61ae4386db5e20f62e4a62aef376846018561d13a2c9633c3cb6c566f27630f7691b30e7c0e3893f18141ae6b63ce61673611e1bf35899c75c1006c330bf10c3b0acc232eb35d17630c410308852eb45b9abb369c232987c06c26c72f73148e8c7643239c44d82a18f6e32cd5931f056d5c7013d655ccc730871abad9239ccdb45e2f65fa7987473c9edd3bc945bca5b55da4bdc0feab594bb8adb9672636fcf05894f7353713caae720e2665eba5ce2244d5ab2e4ab4f9ca461d05bd5ea96e852a95e1de21ec22fbc55751d43776b2a54eabd28940b711fab5737c6cb753ffa2b4ffca96ee4ed3caf3a708e095f6b759243357d75a7aa99d55e3236ac75ef6520eb5410782be800d7793b6f27aa563d26c4a8920e1d9613e05b41949f50384e0b24424208216c87b09f17104208a30e56271d082184ed10b6aa0b082184ed10f6d30184104208fbbdec05ca0360deb5ae90f9edbebc42c5df539533465c6fc4b8eead56116e40b07376d3c5dd6e0a5d42bf74153820e5152c7fe483752fb2481956e70cf29d1bb9c9e276cd4053e9ee0ea3bd34950ea3dd3b7aef81b939d07834e794524631f168c8c2ec3d4cba732e73383ff3a6723b7ace39a74e472d778b1f375476ba317321cfb3b8f9f89961d3c75f398ae91e52eaac30a5b0d6cb55f5f97b4d6743573d1c17ba5a2e11a275a54aab8913f88861a29878148f22e6587658978ba9b0b89b2a27fab65ac1e858de50abae541e5b005c0013ff790b781ea5cf0693a55213805ef20a3c27390aee67c90c50f3199e93b2d05bbcc5b78df9ac7e3595c78022f662199bcdd3258e935e9da6d61b2deeb6e3a55f52ba8f9ecc675cba0919ce7c26a3c1eee594705671cdf2e61e66aee8a591376ab7a3770e0903bcf4fc26d4e4e195616665cea25eb79e18b72c6f3d9f393579a39c4e8fc337605ceb9a0fe79757e7accb5b96d56dc76fb5e68c62ed45306840a6341d230132fd42b201cc48cd9be30185fac24ffccd0b3d79e85710c78387f95d2d08bd94603e7a8a4834fae99ad760d6f41a9fc1dbf4191a70f9e817bd683c62a1b72fb3ee1c8f0c6fb248842e85de69f00262e33eaf3aec0b5ed59d36a4627ee119af4670ded350703f3838588694d3d03f9726e442d50d3aaae417d6713995daa515996eb17b5bdd0a99f12272fae5574e11b1d507de78ead2b294fbbcaa09b95c4a4761568dbbcf701294e770a705117a7b39751d7823b974142e12fdcadb2c125d66cd7da00d46d23f643a8de748e1cad268f226f49be6d44d78137a2cf7e0126691f2d4324e057158322b33b7496c26ddca16eae512b716a462ee10cfccf1a835c77e3a48dcf7aed504936f7730c32d2815c4f9fbbcd690bcb02486120cbd731270efdc8ee810cf0dbaec08b4c7cc720e3392a0dfe0bb761d2fd3a2ae56b75e14ecd5c329bfddd5ec27457d94b523ee7701fef6c20341ec7dbd26861fdf02e0fbf8766ec078d1a1a700793287ae42862beebfd942d5d8fd8d1670859e8f296040050fbc9de7b2fb28068f3dd66af8d459662dc935c9316c65f3b682ea33d72ef7569aa5aec234a7ddf8f45631b693a4f6ceb707777363fef50f8f47057813c6753ea3bcee6324cc62187603c6ddba94d3a8e8d8cc47de8ae7042d36fc7dab4ac67530477bb50d18df47e9ba463aa1705cb5daa183b9c96184cfe38b6fc22b6b4b98ced7e45f1b6f30d72ebf3420daa5e1f858c634225d82245cc2ef359a9570e7a06625128e38807effc9195c5fcee5ad0579ae65fe80e2672fbecc632631e6ed178e8fd5f8e2df79066cd9058410c2863af0223e2f22e4d259191176f7a693c20e8ca856417a3ebb29e36e3a3a3a3a3a3ba4cc79739a65962948297b6684a862052978b9386ff5ca905e5475cb0ea8ea894f77d3b95ea46cb2e5567fae8a19e78b9beaa1542f79383edfcb6a0613697c2cbcbc1128bef489658e5bee569bc42775ca0d087e3b0bc3f0d02f6db74ef3d63e81e047d6d67f61249dcd96de324874c88ab9be2ee2c7f8957471dcfd4079e76d05d5bdaac6d5a90624abb3469fd14fa67c6fad3634396a6674f8c951d7351d383ad580a06aad5507768fc2f16d72d49c6866bce43ed084497eb59256f212c927295aec2e5c5fca15502dd3f819efe96dc59ce4251c5d6a404811fef5a81171b7145fc3d90948be576ab8820fa8309f9735ee13be21f06d9b5aec72e93ea07af73763dc0c0671f3e5aa6acf96d35b23a2248e38e2301212ddcbe937c403ea43b1cf5b45cfdc8f166e86a8f0d0690659d1b3119a3dbc41160f07f8bc95f421ee07c9fde8e7f2d45344daa977dea0bd3255c4316a3161e52f8fa4c6bce6199755034272ac9dc69de38161926fd549183e79115291ab625bb3975be831684486fed9843e5ecc22f9e527bc911c731abc917cfa0cde842240f2cb6d29a343a8435745dfa09bfc3ac49be67056ad08f59ab72297635a91e896e45608e6995684fac92bdea04f3fe51411eb24b74e72d705f38cab64e81f26345ee35a11ea5be6dbe5d0555198386780adfaf41a8b4b4e83b799bc093d509b308be4fd17b334bf4af9f66845a88f2c67ee47770cae6b310106b6d0af3d40e80953d69a9008df6943eed7fe1e42d2717c1224ee6868e88166de3a04cade3a0b5f9130e09fe37139d0fc249803cd222a7cf5119030e0dbf1b8dc690f10da71e52dfa04123d3a84b949291e1de43d84a185689e86654209e523c98f3ece644e7dc687104258047de43eedcc79946940a6064407be3e4f3d90c7a152ee20cf0d8e08feb420b5f3e6306fab9f79ebf1d2adb55996b19e4d963984d0ad7b67363aaccf115c471e216fefed168fbe5d84bcf5f01242de565de0e4cdb7dce40d55452a4381ca73ce6d051f5966597f3e3d9b9992848260e84d492cf31bc9811e0b3a0c3fdbceac3d8b637e03a2d09b9439c9ad6f98d3bcc5a327f9739d1cacc5d4d4a9d39ae786655786172f5d70d95205750978ea4efa6680b983ca40ef2709e533473179e2cd33d0db6e5a0a56b5923b58e39e6308f4e9d3db85e912a677f6819f6d384ef253364f4ef23c4216217b0839955f6e27f90d0941c0e729df7032d0fbe77392a66b9a10e8ac97af6710de1cd36ba697a66bd3ebcca9bce93cc9310d0885821bb7949e82bbe74e4872d73da826e4e4999330741fa8035f476193db60ea27ec3e07de7afcd652b6d56f2d45c318863da49e95dbd97afcd63369269ef1d684d477d2677aacb0bcadfc1db92339e33438f54d9af16a4c81250b32c6b840992b5e9005125a04a103368060e30aa3072c528ce952e518a39ac2d2c346166c64f12146bc7a39cd0615bfa9acb0118335e8bb161b4fb071c498357620c4022ec000c289d6125856c0860c23f84008882b7c300326a6e8620671a48cea983063e0c862e4c491911366bce99d91135d7c7bc600cf604c4df1a4ec0205085c11083c665be284f2adc1830fa2a05eca35ae78f9d25d4ad7b932e72c55e5be9c35aefc165fbe27c53ad57b5a12ddddfd2050bf144f14b57cd84c8d2c475da000820c6944b9a1045798f88087521a42558a9c10230a16217e48e22765841a5d5e00ef5a6aa8f1f35d4b8d3364d043a38318568279c92d564274042bb992871bf3e847308ff948e63007b567ae39c9498872f3bd3087ba977cbbcfc64d36ee4144477274bbf523edd61e41792907951c958dc01cda394807e65037b94d36e5209fd612f47290c31cea397211e610674ec24144473a3ae6472e0fba1efdca47a06739a8f3cd412c60587e39a8876013a223ed2f0705111d79de3948f397558039d42bcd8c0e8dbb1fe7a5c6dd0f7512a25cf77372f7d3353888c8c82907f5cf7593d36025d6319fc14a888ed8dc50600e75cc95587973538139d44970c1cd4a828850703fd2a7bb1f2c2b91ee7eb6a652c23f5a86dd4fa741258da2478a9232321d05f733dde7fd38152d09c14795b0d1c5fc2026cbeb78d71243e59f0684b582f3e90e339cab7ad97516b09ff903cea53fec03d8438875d0c0f2cf7d98c05a017a0f1a564cf8f7811806d1d0bb3c45a5222246552a4a4a8a4c05c1452a082e5c0a063d3db475c4a52725443d8561f237ef5a680ca131252b8a3c344a85c2f123a334ba481581e32a94cf2e2a78676cc1447586152650a586883a8ea34ac5e00494afb477ad337ef0a577ad33c2fca6a325086694f92dfb67c61833c2fc7dd732a3cb05ac7bb6b118fa96124209217c18897bf0c5ec3d24b0768f7607e1835774cfb9f7eeb9f90f429f58163d8b0e352011c2e8608c2ec6189d938e04bed48840cfff5ebed689dbbabb5b23021d86e9e79c73ce39e79c736f8b7d197c6434f9e8af4be812b676a0f8dbf40da83e75a0f858908ee31be2372bacee26f658cf9f949e49e80d65dc821e529f299abaa4a76a6aca089fec9a413ce3789ac1749153424a446b0c0c0382cd49e9a494d249dfcb7a524adb0ec9edbabc1eb0c64c6253db3067c5eb62c1bdfcb1acc72cbeed1463cc38fec946236514a34aa5876ee326746568e85b806ee8694e6234f4d181302d438f413243bfb9a2a18f3947f780dedaa97b40776cc49a93e391fa01f3d87f723f30876ecae8cc0908118c26a338e5c3b579e8d3391ef53431fc9a530e8b9d30875e738724e6a7534f9c6a6c06a52ae6299bba304f496cce8e33522c528f60b28081f2ad1511bad264e85b107a82ca50106865e82395a18f19092433f45826750fe83e2feb1eb087db5a3ea38127e878509797cfeea4b7de7baf8bdd7bedd56e764947489b067eab4f4729d618312c46c7b068b14935207dc4c5b0fc7ace3935221990d91ae3e851997b3b71c628b521d263de6e36ebcee2aac3c5dcfa7396cd9548968ad3b1d474ef032946022d96ba52b27aaa2b8624e863860416919e613988ebf2d6b1bc75c53cb6c880f2365fefa38438070b61edc7640c2a0ffd49978f31f56dfabb52354553b39104458c04c2fc5690ca2195430a05f7f99309885e21019c07b55043a12d3968b1e19d293e40e78b756fbbedae85c598df321e76e59e1455fe3d7426b8ee528c87573479e8198d3630c2427d966276796a4af8aa3cf49a2dbec6b52f4fe3360efd09f126bcf59bae9ff0852716581e3a8d437f6e54c568c9db2c83585aa91181f4a409b94068a8e92b086c40a011a1711bc7b49ec18dbe69fe846c9a3f4d2352e39a63936572e87d9de44f13725dd2d0e4ed72e9d0266fa6c79cf4271308fec29b09055fc20719e4408c1a5001e5876a436abfa59696a097f076fd26dd946bb0ed9f98451dfad32060b74b88083ef3ed7a4c048fe52d7af4eb3e106b79bb5e7a6441967411fc6b6d119dba748ae533bf5f3ef3d91af343a86b6e6b70f48873b88659395c738e87c927a641a25fbfb420316e9248c96dbce4366ea51681a03ce2cc35cc9ace2ab9561d8b3c2eef227093ace8d1339f3985ca41849ee4a921355ef21a2f79c9a7d7e0acdeb80daeb1c1d3b3e83a5ce29959994ba7f14b2b72721f685f66833377da04dccf8dd093b00c3a9c06e70cd03f3a72d4ac5899bba7c1acccad29f7e01491cc4b9e79296b45322bd3723f40e809ed0142421ff3262120f4842604a786c4a057f2eef28861f84be8a176f98b9875a09939d07c24b47a2953826484bf9e780bc3572c8700f540a8bf84be5a6aabebbc55c346e25eef5a3760f21af56e105a548ce92fa8f8f2ae450593e779d79a42cbebf878abb743d512469196a2e1e2705d6b0a2bbfb92277848375a8eda2c0f8e77e831ffefdcbb2ff6d478a86db59fb60b31ce1bc6b65d9220b14599250bd6b65b96187183edeb5ac30a265850f0bd8c18d1434544840d820071b30818314a60b1a2a321ae878c1cdbb561535a4deb58cc2b40e17f5ae65b4c54d6a05b77d8b0e2e613377dab1eedf7b875bf64f870b8bb49762c185ee3e3b7a24f45d98d14a9a0b33733f92b497772123b91f497ae89130e0db8786befd0e7d7b36e4eda0ca288ca0f0f2f6452f47ffb2975ea2745ee2cf0f7f82eef0768a3c88828b144dfe398e7c2498e30a6ceb704d3a3a5c2eaf084a8950349165e611fd52b7b8ae6052ec13434539645f14d9d01ace18d20eb824a04202946497fba0b0827b875baff4e2df133ffc73a699ab06db45e41cb68b80c135d9ae413b715db8ed3ddc6ec1017eb8aee5c49113609ce0c209230c3861650772f1d009290f550fa1cec3f7e506b26a20c8c545e138f4585f1332a8b71329a5a71b2e1785a302e58007ba847eea2c00bd4087a6d4204e5c198e0c774614474fa06041101a4a9827318627330c3de17182058d2e4f1c0e88c64c61f458f4900391143eb851022128374421c68b0e454618118421e61152a68e93183c79e2c27063a4e0c96552822ba89079030c1b5050410e76f822cb11519cf113c7113f279528ad46cfa0cc132fa81080931e3c5139f9e274d08227683ca971d286ebe287131fcd83eca48627ad270a7002e6c901a2133380789200273db801195e3cc1e289d322f3939edd87f376dc0ff9524a29b32aa8115edf2a4edfaa90ec248160e5a59c327829e5e9f4d14f278754a49c502080f929a56f70453c9cb40c8cdc0efa0cc78327570cc0490f4f7a9c1821460c119470658850e589edeeeeeea6dddddddd4d73ce2015364a29bb65cb39bb674f299f0bf4593c3df4f00f94c2c78e1daa6723a51052082184105219678f51e2361398a3820782dc8fe8cf53a00e59b8dc9ef095d21ea2f985b70a5ae27860cec8bd157468e4edc0a11d9cc725ee668296190fc101e02698540e711c92e0d0df10e4c90e57beb9a2946fdef3383fdc6dc743efd11c738c8439742390073bf414baca0990276725008701b8fc49793b97c3558e1a38c57df3117cebf9ad79a078859e5fa1e7ad5ff6ba2ed019c4ddae0edf7ac8ca2128b79e0001234df1cd1ceac89bcc40f4699e1946e115f649818517827aa8975069a3b76a2fe1f68291b41cbcc23a30a75d003800580500a870438139ed24e0b60273da336e2d30a71d6307731c3b98330276304704ec604e083852be8bb8fcd10e302a2f385c38f076260ab6d8008d772eced9dd4db312f7f21bc7f1adb5f498101c4e7fde603acc433f61e6157ae8741c1feeb6638746bf8f7287197ae106f5124ca6cbbc557b0818073793d764a49cf3bdf7de7bb7ccf70b6fd561705c705f27f907c315b279252bbe7c09c240bb0770602be4594244bb7479a7e5c8e339f24e8025ebce470597e18bc279abcc4b380ac9278ec2c47f489af451c1f1687f18062864dfcb0106deaa33d72c0bee4790e3e1b6b8f1edea68236f27c349b973abe13a29751297afbe9df0a4ade7a9c9dde399a1a909c16d50eede7411b07b39a81c02762fc726e7c0eead6af209bbb7a2d199c91bce57d5571a35bc91729665236fd58e836bca5e375807863c8ed3024ac778c0e64d2e62745a9c73ce1979abe99c73ae4a77f41ea01008eb82ccfcbaaab5d63e9daf0fc8253117e417b55be96f9d6297e2f470b11e13ee5b59b7feac7d39d6b3eaf555710a3a7184b85beda148e651384eeed64dba49042293c43f5147e6052c40e030f48ddd57c883f949488e0bf435795b58d2a7acd1dd03fa4da7a762e896f6ec783c269f9796f9747741fef40a79aebb0993f08e88c22a5c5f4e7515de6e3603c9b7be7aabead9afade76ba6d2698639835f58c9450691d552bc39306f5d4ac77972b1fb19c5db3d552f1007dbfe832cef5a7080f9adf4ce7dbc6bc191c43b6dc87c2401b88e01160057e89d3b6c552438376576a3cb27a3d0ebf2ad190553625cb9550703fb5d4214a5e7f85ecc235cd8005b63ad7e42b99a553fd51a6794225cea4b88e4f41b4290524a29a59438ae5aed90f3419cab83021ba43f95a2eff456d42b76291fdc53f59aa35c30e69bbb8448fa7549592f395dca2a2bcd2c8734581d3994b1f22f7afcd145e0779670fa9b1a110d7c7ee84f1b824b0d1f540103febdeb6f6523765f5fcf5c7277a8fe494fc98ca41f7a927ee8394ac37e59a05436efbd97e388cb79b9e616e0e42caa33cd5d42943d04408765dce7576abd77f3dfb08798cbc11c0fa883c3e46e3bb087be43c7478f0933454ad820fda60bbdc6deeba22ddd25440fbe053c9e7e9904437702ac765db473ba132ad583bb65d93da192f447f7171fccaef4254430bacf60716ab8d80dd27fd5eba2fc96737af656d27d7065c4b1d3bd67ee4733bd4b88a053bffd5adc0fb7137dba7c2f63e75d42d49906ffd9a13402336a44a053f9d1a994ef85a6aba6213a64704cf9fed4d1ddee370bde4f382d74026ebb834388ef6ec246789dbb696f1929ef5a657828c0bbd60fc03cc4499971371c57ad76e024fdcfc17c9109c6fccb51a647ec5a3fe8128589ffccfcaece2b81edbb84c8b53b92751880a55418b77eb9ed9148943104f6768a8cd418a931e614b284a89fbbec664f763e492965778a8c7b7afd1cbe1e58878177dfce7c5b24a20d892fe57bf23d6735155e98a001961417b739a31e074c7c33186be8c186285b8890d0025bd0022c3fd061861e7260c50f9c257808211811abbae168227f00070e0e0793196ca475c237822e8ee80288284e8e78a305470c2fdfe8217b68a060846ed8d50931c628651a2fdf58233a2e108c0ab3cee95deb0d2f7c2053c58d297468b24397188660638b237e36247ebe3103000041004ea2f8220b1340314616308878a3872cde60f20dc4752d322d3264de39e95d8b0c984786cbbb16192cdf36c091c30f5e076499df56ef7e7ef0edaebd26e08a142828e2cb12547820e1106ac10d586c10e204584079e28a50b6289302881ebc685169020b1a411072c10d9c2c9183319ac841882fb40d37aefce08cb0b4c1c40da2b7ef5a6e007167deb5dc68f2edc6d0b3ef5a6db0a18189dabb561b5eb491a58d2b8f7ad76ae305df9e391ebeddd6366eb848ae7b382fc3ba771136edabbbdf69ad05f244283d3a346f2b2d7b9994ddca332f0f7a8402795e8f0ecd9bce4a66d4bd11ca43a19f07b9b0da7be8dd6fed411e4f1051672dd2877aa8837ae8c707e6408740f467ea790ffda33f330bc8cb485ca0fff22654c3cbbc39a3873c3df403dff876facf6fdef8e742da60d2060adccafde6ac78d846240071dd1bef7e73583c3463c91b59e260811b2b30fa814d247186162e44c4e08a267e4c58e28a1823c6687154c40f7414e4111a220a10a20c41660c1a6afcb82d35e480051c69f430c3961fe8430c3ac0218a2edee0f2e407ba0ee419018a369478420734c071c60ff4e228892070f0814c146ffc40f7a94758f75aad960f07e796fa8637ca982f2ac618638c1175ef8e5598306c94b9d049153d3d36a8b5478a6d8b15019eb6a884cd5595450b95a219010000004314002020100a8744229150301e17ee7afa14000c96aa486a4e1688931c46519031880002080184000080010400cc949815ec08497c1cd2c5718f8ed1db7108bd68bb15333bd6df315d1cf4ecd01ed7907c988e848beb02844f578af84d2bb6442e1d7fb097e65cc94819345617ac7490db0e92ef69c646e4da714fc7bd3be8edb007cf35da4d3770722837c7c11e0e0811eb8a899a9e8cfc4d13bb2cae8e43ec45c33521531ce8eb68744eb4ff31e5b8b010f3b0c58a208fd3771c106d1bf4d96d5016c92a0e7bab2321df68c52c71d5742b238383487db45652cafa45eb31c8c85c34dd8a19737c7d1d24d2d1a46b214206da55b2ac3a4af386466c814b0d77a465e4209b1eadd2846fad1811cdcd51766f5a732de79b41a3ab0b912db4828e90859b865dcb1acfa4b59a446b1c23df696296c5d581ac3d68d44d46cc446bb564b5c31b1ddf769c9b2151cc4ae57225b642b28453b2dcb86b23247e6b3661b808b13ac5a3c079b80b308789c711182c8ccf6bd5d4a8596e6f0a6781e5878d461d5330e0158fa1695af8c0bb9f4a0ca8579a6fd82dbd831d5b12d430325f9331d695ba18b264e36ba9751036ff274437f48a38b4c20beab213cbbbcb28247edefb56fa321614aaef8f11649d79b7a069f4fb6c9845d5fe2bd27b272365a6a515f2f65a39f361130637f62f3029ee502271d77499fc4c0e22eba75d3af2a3c31b737813c7be3507c9f734638ae5c641c45e5a722f869c4993abc8c8561a74656e1db2b74622ae72e754660e68764e29c76b60d19d13ef19797674764e45ddf45d9d5391b97adc16411edcd2162933a439d77a4709bfe104b2463c86e9a4d31debbf486cfc3ac9f5b1623e2cbb9723c755aa5f7960015f31bdffe50fc5b889527a2e6fc2ac0a69940da9f9fc9de9f0c35c43c717b6bb10b94fc1b8b426305e89b17c31411bb18559af9fd12680e68d80b05c03ea0f8cf57b6b30cabd195a3a550882bd496df2015b0b0324bc9ff95774a73323c82e0cd14a2185cf10199697cbe8723b90301e3d0c5aead0b75b0d1d1e5231ee29e2c36bfece82462d92af7429e6865352dc4d8515f24411df952add10508229c623f8c7618d65bbd1855f7fbe383730650f3b66e502abe682f76717757d5678396787bab929bb1620160f30b56bb7edce8095c108d982b0d90d254a1c56162a0b1d41e8e2ceb6b56fcc409e2bed9e74a22c902786444e28bea850dcc4756b1a15bb465f732b0c6d04ad60cb1350e883e5be81fb788652d79bb8064041b61374423f697688c0c10f040dbf5a48fba3379c3a46305cc0962042946f45d061c3b24caca97d2f9eaf764455e57f24313e77df16f9748b5f139a44b24eef1c2530aa8f9578f15b6fab244fe31f8eaaed70ef6b07f9c7f5f990102552a9c58736e36f85b7edf0db6e25e438356dbee3828f61bbf3bd9e9e48ba66a4a89791fc59e4acbe0f0cda49e6342d02f71c5eb800ba2488b3eb49add1f58877d8064f9ae6c6912e314a555c0284a37efd47d93c147b8fc2d584ecac7f4b9cdf07875d1b7b63c9f8d67666c89ccfda2b10a419a3bffd14dd2475d950c44778775a418e9582438a9ecdfb7b2f4f425d81cfee8a565fbb288513f9266ad2d4de6399c87a15dfef33cec485f5206ff6bf7f254650efb488d47c36cd3b2b94c78156594f0a6c93c7256debf7678b73a39b705043b25fd1762751736e4ec1814c05ca64a3a4b7515ff4274f80c3241a51937aa66ffbeaeda3d51d396a4803e26c9f1430fd2a44f4b96c84fa408915fd0ad5817e143cc095041122ef9bd37afed4e0b6d67d0e6ef28392eef7f5ee69ee505e6cc3ae4364f02419818cb72c2ba87f79fcebdd0537236b2125364f91a519150de33e7476d854607409471aaed4027cc02920651badb076fd16aff58852156d415547c953466493cc06b250c0e4e4426a0891e78d8708f0ea7edf286e05188f3f2a6e49321b933103b68cc92a82ac8389d33fac4231274105fe02dffb0e35cc3a2c2c5c280bc321343cacaae10e3e5346fb129034d8f30573d9b9442c477cd95eee2e8d0195525390710506146b8593168f76f1bb154f65ca86164f2424df4c97aca3a925a63b096f95ae711028709359fb9c9eb133ffeee9232b25d22c730f0943f60c36d6a24448d1134f9f5009bf56b4019bb027a46dec16dee0081c0d14cd7e770923f13773338900757e2f01146dcb85e6b16556f06d33ed6d3aa7c94c9a3cc833c03c51de3323fbaf0140929171ccdaac86c3aa403a903d3d20c2501043a09ed2000bb768285567078a847b8467119f3bb5d6e6f84da0240c63e9e570bad2b8634acd8156d39954095ec69cdf11e12a655f5c01f72373bdfe14086d76fbf2eb9d313480d7a58c17be4327c1176381acbe45ae2366aeb200c320770fafc95eb2dd41947002a86b187e25318ac2fabc6eec88fe3e0ff4a1e8b42e3e91c29c59f7b1a0433e25023a72a5252b3296b0bfec776d830104a0a9ffc1aaa64ebad00df9aa24a6e83c798193b4af30ba169a834b6e8a4076fdb2378e0ddf5214400af7d31782f4cc71d3b9d212512447b2dfa2bddd9166b2f57878721fd05f418ed7ccbef36427b35bf3ad6700f8532d91c26676e9e5f10a5ab05b28fc4e7f34a17618d0288ad8eb71a0e5004ba0b8bedc30bdda7898613c112ef5cf41669faeb898e19517ec8afe5378b408e225f8f555ce8c781456ec48d394bd33f63f84b3bd4cf928c631bcb9583cba8e6faec3be10322ccb3b0cf1ec0b23f20bd6941a078103cb5932f0ebb678d33b874d11b6866a628b2a23a18d03b054c23c554c26ebc1fdfb61b263d4ff90282484b038b9812c7343391f1004290013aa7838c7220f55870efed056982ecd949cbbb3e142ccdab4293e7d2d43bbd641916ec0cb4e2aa821d05ce80533bbd2621adf683c59fa3968d3b8818160fe93bc42b1e7de1c90cdbea47402f0d4c63c50056af019aad96c46db6b70507fbcf46f7ace60614a2ff056542289f55eba64f8fe9f895b454913a433f88c0ee18b00186b9a399a9e1dcfad4fc919987d8273edf2b02b765994a1d4c3415afca08854d32e4e29d46d76e832288954f523e69cb94609a67d2ec26aa6514b745204d2d137ccd2041a34cd350b4158306617b73b3dd0bae3e721493f64cbdb9d0a4fcc7b82518177d0304f9d7df7f85a36103c5ccb01b2a3933f917a1e1e21dc645145dd3a0ce520aa9478727e9ee6204ca2fe6c1f20f4c930aa94039033d816819657c71a30262585c87a6613ed0db230ea9780ae64f139aad337bd6bf58c263ad687d59f425daca12c1a5be4e5044b3e313261414c3f024a88c5e4033d07e968f1d0d82569d71b5aad930117af9deeaffc28403ea7929907aaad71257e7ceac1cfa65f066abf5e18b0b7abe5a63973e81cd9602dcaf89cb48c76093660b0b3732abdec65cda5cd28dd18c4f69c1d5c2816bda303077d951935551360d9c41c3b0e42933f10d535de725085fbb601d6af19d38eeb1909ea5fbe78abbd0a37aee864c7c10c26aad1d2062ffbe65377c6ddea0bea0a4d493c492742ff9453b2a5fe82473bf5affa9ff80ef211c8a3fb1b021941916dc84f20e0bc9d76079827d1bd4f5a31b2af30946db3248cd4e5ed2dbd7aad2c46b44fb6e3ea857464675645bcebebec4cf3094929a4c398fd1620aeb96d989aa7ee936a7d96db61b1462d78285e204dbdb0e431272d1fe19faabe3a2a05a6f04c26c252bb436e8dbe02d0a83280e7bbd1c1a1d1de2df4a052f229395fe8bb1075788d94e5458faa3fcfa6513b4f62104999cdaeab806a5a0aaf21daaa996b9db0e1ebb596b5bd159aea59e65428495b2ae89bdfac01bba9b3ded0e55780d4db34c7e8b079a13bf9acd0e0fb144b2ca4385a56ef01c192e9aef65abb4c305c09c4477fbd478e7215e5fc732a778c45dd36239c221d7427b4b93583e2521d661391cfe75fd4f9f3575957d137913cd9d801e5bf2b91064a59447029142200a1ad92235e282cee8c1c49266c850608f2d23265150ce56a864a99d14360de1a44431d38f3784e7724425719e3de3a0f1eb82f1560f98a690745e8f3c5ca2bd8184dd361ee2d7a61a262e5357c3ee999c3a95329b8a1c105f1672e42e8034940fc8a51a4ebded62c3f68aa82f03e2209afc9f646c108284a647348b6966799f623e9e2c7d8138ece7cf566412f4c2c4176854c2472c28c58ef9b48daf0cba72a3c118d3af6942a5d7fa189b18e089d4c3c8fb5a1fe84365f179254c57a31ce6eeb1f50922a7219620f5dcd202cae6fa47ce55a1387e128ed14743e206874052aefda55c761938d8b508075f0df4c412bcdb2b0e41f44ab33ab5924e4c47cd910c8856ecb1386119e9ef5f233d01a12e840da3d2ad05a0101cb358335f5c02b6b5bb663f8447d2c188555f5610ab477669c8f1c3862dc301987260d45cfdcd029709a3860307bde9f3fae6abdabd0f23b7080460d966667dd6e5eb98f841e26cd21a4da17abdfb08b7cce390e46c98cd7814c0c52558b338faf7ee09158166b03420ed92540f731a1917113f158f94f8f3e49089bf3b0da5ea5bd94eef8371a5b5cf63a6948c813e0faef07da5acd9a24a260e219576548f4b7aeb63391b6fd48c5341bd0c8be0a439e24abe9f7ef02da67d96a7ab7ee304d681e9741c89635a3fb067459f47e40dd7cb14340af7a82f349783b6564d436a43b9cbe6be68f8031bab1e0664fae70ce2252896c8c9bcde3c90e3c65503bdf015125428413b7718eedf757eb7ec4013e76bd02ac61a829caa1232c1deeb91f4e923025843ba4619e4ed16e9a2e950d3ddd85019e1982d7ca5fd5db9878b4f352785375d6227418e1071d958977f6bebaa190729a20c0e440970fa0b7970826e3c0b18f31fa3e177b915231364421fc5cd191999b1edd045a3166e6718f143e2c400eb30c3633a0e6df56b6200a56b9b88ad69f24619624059271405a544e4bc16f48b2eca60a8f77a75633db16ed8d4e43c419f3372c91364138f5aa55a2bdc80d7c7a64dc4d664998a2e147a5c052387df30d28e11e9ce5d397b773670ce25f0e4ce4189d488e150eff7feca6d6b66f67890d6644b7c2d20b04d950ed0763dbbaecd604b47c72fb0fecfc1e00a2a50a9800ceaa9b3e5315240626599810ba5e433e9a94f473e9707b6692b2d90aa0be1a583e005761b1d974f903d1537b476067d982d19452994897fca6d37e675c515d09480d574663def48b45ec6a2c76fc9d30c5e35a9e3f3c35e3e917c17c2b2e3b563f1d4b97275bca542cff8427cf767e3935410341892c4099df698d1be4571d9513e5314b1e2f5ce176584662b74b81c3829b54e5d695e84cece141b1fc839142c8601e5f110818d7650a14be8f6b28e1d3dc5f8befb3494eef146d0a0712065cf6a3a11de548cf0984e60a6effd152e1693d712c2e9407c37d6f865c170fc732920926ce06e822472bbb8146334bf22aa8ae6585137654d5f9c6bf6000e88b329418b5d165fed8243aed29c76b9709e61cac911cb57a8464c07a5cced521136fa4899f42c924ddebad6f11fe916c934010f472a9613da887bcf590b951e4d494dbb32174fe29c7247c37e4fc2ab1a43922984210a5ac0d39b96dd2a988e4ab82d2697fc5617aae2dd9f0dde1c11b31b34fde95c6a054c3a9c3f88621dbae34f745ebb947ead29a2968747d6f2e6160de1ac8d9d5ea40132d53e3cf7c5ad6f68d372613552834fcdc77cf26d512c64dbfaaa4acea6edf8df0be5f74c1e6be16efb80d6cce3cc088b9791f9128ea1bd6e8436997852e44a1823cd787b2a47f06df6375e058ac0958f5de314c858b1cb118f8ccda9040b7dc2bfcf2592a8f055acce0fcc319221c00e25e55774fcf508a780c11fc0cb94157fe8027283507f48bf45dbd0a65e475f7c2f934be1504f598447443a0a792eacdeea73b04f74bf52f5a18d8f7a8e440ee80eb959ab4082e28e23f730f878235520014f6f7507ee19b2e553d861b893e2fa31c6c4f5b6a478fd93579af791ff2931ea911ef8f294b6a09878d8be8a2094ba9c749fb13eb22df5d97328d2c566c4db93697142941bed7d384009fb592baa65d2f1ecd64f6080d343eba2c191fe84712283e09fab3daf610a344f2bd9b6fb250f7a3b91022ff2e6349dd12413a298fdcbf186fb507086238e0750a82757da5254f653bb87689e2e3a045ce0ef9680856401988f82b729e45baccd86da6379d04f904edfd6e70d04227e61dbdd566c665b731631299f171ea02792f242651a9b6074d30f25ee304fe20eaebff4cd02a2e39799e90206c5d80ba56fbd5639a08c050353c7e87a2f720606b05e975e94ad7ffc19d956996a0f339dc77a9c2daad456fb2e8113ac7e3cea8573d9c6652d309548c595f9495f3060bd10bb2ea4a38fb37a3d3fcb57a811b7ec6bb94cef21c0a1cda0090dd0f5e77be15fd51f83e08bfbb535e997ac56103e60195ba7c4251613c79f5dd7a132aa1975171af9d08d4d3ed4cfe6435ff052088f31d5954f05b05ed245ec572d19e9ac64fa9d4ef7f746293e0ddf792d53c358775a2529d832a53321f369f1f434b8bb020c3f2b1996eeea216b5cbce4503410c98125f7395277ad284ca68a0b9544d326b39041138a421111465a47762850b6f07003dd62fdcbc27c4b40d57c9d6ea60f6e6d866dc63b684a0f8a106d42ad0650e679eb7ce0bb20f2d5271c663de0a26a9a12a74648834c2439bff5199e5c8994709a0f3949c825b8b590b9b0a8ccc8965a1081e092740adac9a6a8747fad864878f2bd504ea39d3f976fb253afd49cf6b1c2814e64308ebeb9658dc6d426f7cb47372c3878a68e74d12d4c8dd0ba746b140ae87fcef9572de3358398b3f5f69ffe6029553a2eaf8e4daaca2450cf22988cdd68ace8cc979113101724940a360468cc7f9bc31a71e62a3d326f645d5c8ad8e225ad9141a7eee17638975eb4c802ccf9ae7ce1a088dd406e8c5ea9509766916fc96a07562c6ee69e858c6c0f604798df30b90680b93321f36cddc8f73a65794443578a8aed6def6867b6553c1104b584837fff70453cf96b61edb119f56fc63499e7a79d825c62f1ef3af67f7affbee8113f311fbf4e87ab10be0d18af44a89cefba50539546f029754f6b3864cf9647e2fe1b54458e7854624c25ccce17e87a63cbf5539644e58addde652a0e677ee7899237e61f160fa8fd8a97f08243159655f58852b9d9b4ae908f0a5887bb96966c035c388be3d36e0e6e6ca7d06429f978f77588d77f30cdf0b336eaf54bf461fd687c2d054c91faa91b6895eda84a09258640d01427f17b745bbdf3f4d39a15e696fd07532c89583d66ee7e8ad8f366f6a12537123ce3f3f96d5e47882ee2f3f7b2720d58e4ea3f0bcf2ff8d64fc6eec620d82b663211fc0ac39ff6f067708f1a0737ca0a9da42810eac26a06b5611ea0f03fe4c90f86915e5af4e5d6f77db3ce47a2049911b042129ab77789b34f57674ec1034093e7136555a99e546bfa8d4531fb4eec0634d17223256fd17be48a56fed19d576bfc864215306dacb7b40478bf83abae8410f1b95884a55d5e3e6165dcc9c3a227581b557318817b29a5595c6dc530703fd5663907b04ee6960d9f97f730e1dce079d23005df3f0809eac0c5229e59c3217a420005adca3531536fc1436aa6a211406e3ec15077a4fdbe847a54e15a548092ad2d1daf20b2a1c1e6046d3c4f47080ea930ec054a871a0bd2e1a1c10c0965e366eca6757bd561c2111e013eed45890e002941386b0ef359eb53e5f84bd57fe610ad1897ef9a20f55dfd6b9978ffd712fca85b628111989debf4da118204f5d9e8f1b84bc159e2a4bb9b54407edb80f064983204cfe0b7c4294ac2d34b3bb455ff0eca2c6520d6a66a15b8578fd417d6a582b7fba139c2b6b9ba1dd16c61eb5f2a644612d28da342646b078ff141a89e0c565943619e8260a68061af452a34c7101e2b5218b76c8e4ec4b74927497c0f13728a431d872941d6b39f32793cb2a489c560e6052c30992ccd9dd97edad6f7c282fa0a074a0e2a7b69650aebe6a35942defbfdaaad29025d9a47cc3f6c82da49aff112a7276c64d28674b75f96bc1d8c47149638a4160c67a0fb3514c08fe92cbec7f38d5ffe2a27694472afb87804772ac29a20b3088cb2a6fa79ee719fdae35d2962cb988a5db8931615491c5a206a8f0a568501d6d98ae164ff32d0c1c24c94bdd28e6e6d3731964f7a7635448b459749a25126a1ac91fa59d0adecb06cc57df8eca68db905e33b6c5fe59a9c9eca5c76d1f916ce89a2afb1be882a6cb28566c8cabdb29e9ffd38dc8dea7dc859f0d5b8aac226cc2e3d612828df802f2962877b1027421cadf7b4e44cdd0d0bf2ac0bf1e329f571fb6d67dcba27d291d6f5b0cc189b015f8ac695ff310c8a0018e18cb87f802eb05405ea02f87c74b66332e6fa1db0413cddd4449515d2f79b6de6402355cc04be4a44c36ef945e5286a3df6b69c7dae5477822f37c2157d6cbbdcf69f4ba9d3ccbf7e9f05e35e5f68ea7fc7536f60979bb3f00057da80370dff447c9cd75c23b2bf2fbba02f290b7d03b91780d797bf78d49ee6e62e56a43e0cb975f6dc8435cd9f56084b860f8ad77d528c906447b24a8d8e185f0bd81bd3332b78548fcd8ade6d073c7d65d92c4877d2596913a4ba2c1f87444040ae2ef616004a0f2142da24aaf9720936cbee4ddf24aa9428c1b83c8abc697b26a2a15a2dafc43e22ea736bd9c264e4e2220355edf6a1c94345c7fe4df19536b8737a599b0528f3e2f62de1d9662fc7740e84af7710670947b01df7861e99086d9684f02f220c836530d339af8948f415ccc773eccbae644349a874f95bc1036770da5296e95b5a5c3b949c782d21238bb97e5daacb82ceaa552bcb5e7e9609cc933cda79edc4be9f7c55115fce67e6b01aeda8a55817fb7f9274d9892a586387aa4d34e12fa500e3612f0d29b2f896dd39100744db1200acd1a4ce4146ee84c1493301fc07b99f17044172d102010f91eeb4b2aeab342a3f442ab2e2002ae1c4700451f4fad2da26df3c173d3acd71893685f5441ce44d142bc5eb712a77a0828a741dc3ea83f36273f22166f9101a1a2a228caf7ce8d9ffab5835b2f5d0ae81d9822d3b4e1f33822b9c48b8c4e5ca2ac26da3471f96149756c8c52315a383d943d6064a577faf7b9fcd7de90c44e9efd4be11a28ea46ec657a9f111d49c5ed23844ad982bb22a2b34fa85ba148f86824cdf2ae356a0fe3f141ec7d6ecf0a3a503028d4509f7823721d8da75fc32936d9703e4e1c08d0cfd259be839cd38a15d7d3120c758e908b3a63a1984a932fde5d6eef05f7b1caf3480c1f9956b1bca2084b2b873b4afa23a732feb93222d131559c77ad7175f2e56d505079bb475029d2496e9821af6a3f84fb65b2812255c2a6a1303669b0037b9223e1c1c5fd5912cd15da42b0b0dd5720f5b840c1c979ceedf7305c521f7ea160e20ba6f6a56319cd4709702aa131569281ce681621be4d34e8267344504cbf70db0c3439d6b84dc2c6a64a5feda36c064c1ef6c548608a5024681963a67a79cf5e826975e29aba9a86582cd053c91be9ff26db00be364a1d3a18015bb9bf5253cd0230a8114c0c9a0bd97e1bad1ee13be6a1a5031656eb1c5d26c1c6e8343451181c63ea5763b73ebd80fce06922146ef3da3eb998108e810fb850642820fde90d134fbd0c661028b6cf07fe90b67d35bcf7763fb550c29aca277e9495f458a02c5fdee65d29cc27e141daab6d12bd5eb8eeeda14d8d2b9eb675074089cb5fcccca73af34483dc6f02fddc3c80549bd7e4c1084c2d5976cb5fce2fa9fd1869774c091d130c6e418d9b99df0cf7df1dd7bf07b7bf1dc7bf0597f65bf59b379da945daaf89d425137efe8b39a92d31bfb26e312246591ed2c4d3986e2e0b34c19e219bb12c2026250ce1b36dbd9fcf90283cb67c7a04e288b8aeba71b3b789c93bcf6aef5d4c40fe2a02e6fd1031147a03dd4d6237175ca3661c66bcba2b925924cbe73014b9707efe38104166d0631b5713d6006195747e5a101b7f9d542eb9609c59e4262f60a1983bade73a9ec649cb3454fd7425ad09d0cc4e7555118cb4a78b4c0b231e45bcb7681821727919bab3c594c7c30e2a5011cad00e6f2846adaf1f9d9a1a21460320dadd69fe170fe3f777197a0c6a0c6160326159cbc714b2dd53a51c02ace377f0fffa791dc8b354f544335d1d0f24e75614ee82b02e1296c584d2080bbf4189e6472f0e36672e7b71ba6d3db203ad74ec6343b6291ae391b33d09506893df0b781d285920c416d0f43ef1e3c1df80be7b04e65334c99078bad32fc388be83ef05ac834df49d0fd2ca0f95aaeb13b006bd5127a8a6e83428894e0a67d7d5ca69a5dc1494072deb1cdc9776aad8eed1850f4736843f6f1dec10c2abac24f1a5b64e7ca1e8c3544ddc2ab40061c0f2e663ac1a1f5c99eb93f5cfebc1360ced9cb9f0bc676befc86850e2d31612abc4c17c3b64df1f0de96ad9f247f4900aa158e70de9005251ee35f58e04a287e49cad010d9cff65088f5df4c2a4beadaff737b076687df0711cf42eed553c2b69a1cac921d420baba017a15bf3a2f48d043cda7b9b11e95797d6459721a5acdcf7a82e2a1465e1f44b2424330e972d84197c64b0b80e0c435106a5fd379f7d5e99bd4d9e12b461825a5d193d00cf2b891eda3de1b612bac00042684f409b06f051159879f58dee3b723221b90d8bfc0824c5d567d4b5f4ba6a3b7509e08cb78ed99047ce756972a370eff9b32bd8ed4c77a97a0a2f2b6e02e15b0b919c21f20d10a9def30f3fc9484bb817e7275ae18a5eed82854d6d4fcaaf1ecc4616d9ef75d05a62d519c16925f2f974f9142870f5ace4b671c4688394ba402777a2240f7d6db4d1c0d3dae482f53ec42de284b3777c93c0c05d5d543797c5015bb08d6e86000636fc775c885bfc09cc122e1f5613e7e685886453138803cfcfb0032b8ea3cc3c641128241b5319b080ce5d05b5a1207a9c46712dcbac1439fd38e9278c59d8f2ef09811b52c67e9a6b5cb24db1a3cda299baa37db3f174868fa01602559da5e3aa7a299c89bff3a28e3afea14a867f73ae217ae2a184ed5381853f7e1649dfe2e9ec589693a3826d6433271e285a5cfca71c325d44e090e983941bcb86288e40857729579b97a60de94c9c8e0b6c312e59ab773d87e0faa294d08e0c3de699d0a2db25c9d879d13be4f14036c1e6feb1e1eee57b0cbbb1826068bb1b9c0625abb4ce1e99cc0dae9318bc7396b4a135c6656e1f7dc708b70c1ec994f64ab5de7f168d32612bd34fb9b016d0c0939ae34088a42a04c451d736ba2225793f908f7ba2c91b24910c5d3f7b81840cdbf580842f74f8b21b45820e8b7843d50ea0f4e3d7f7ced821beb0685bac4a3fb6dac1d6a6b5777d8ce11506378b91ac4aab5888e005ac9e9b08eb13b5dd3323ac40e1bfd54f3947d5018b34c6102a97fd41ec5786d6e05d62a40e6811b839b1aa54175e4b08e1049312eda50922b9cac22111163ca78bd11125b9311a81aec06f62b0649d42b4bd84928c7eaa2168ecfddc1100b1b5260909f29964f42618d6fcd297665d82aada099f791ad73b058360fe8d1a08209d8f0ccf2ea467e9fdcc9f10bdc945bfec76124f681d60bfc5c318891fe2c78cb4a4cb6638b3d20577985bd6968204fc032c0c6ca604537c0f60fb7d82fb2746786493221705aaeed8f686273e9110c5778fcc0578ea74dad776fa16581ad7433d42335edefa0f6be59264d3511a13c4962921a15947e9cd360a98d73c810e0fafa1f27b8e27e6b12947755430b6f2d4aeab45e8f8c49a0269c3934f29cd8c14c9ec6701394d5632c515f0007eaf86e3f4ecd0c8bb05c6e17978803c6a352ea06f71c2304832274397959e2c848cfe10e81587505afbc2617a708428a9ab7d6bdc854c453068caa321d7da92dd5e7f3917b3744aac9df12eefce446ea60da9bffda4d61488e557fd43703f25213a5908451214fdaaa840bbc0781c293df6ab70d0c6e86e09d623a6e55d2ab71d21aab0fbe212106dc88cd059943e4d9c4c27c4e13f796e846e0c634ad2ef3d633b47894924b664825dd145d806e14947bc0e361943a82fe91d5eee3bcc605d2f618a651e92308b612ee21d050803719db4c14b74d399cb649db42e96ac5538b42a151d090317e83bde0bd4025779f722087cb6b444f633d585586899ff1a444cf8e9ea7f9a2a0f678a80e8b7aab3b19976cb45fe113366d6f16be17d463d817e59d8712f260d4ac3d886826881bb10b5ce55538e7dfc4f0e9aa8ff7c4c79db5a70ff07efc91694ce2199bde44e9fb16fdca4e81c6849f20a5fde75d5b6e559a1edc667b83e83afe117278e91562335d680174fb0116a83237f394216e8e00eb3a672e5062de26c67b7bbc2190c1bafbdf4d543b7c097a42232743d2a4ee5f1d5195f4f7235e3e2f8258b137436974f36a45de44d745f9339e8a0d1b5f20be57f6f1d4405c02baa1bd006d79664c9fa648d87fbcbb52e53214f84a0e51ca2899ebc77a86f54d2f5586fb03aea6d5c1b91065e44d48a29a8530fc79d1d28550f2521f206aa57501c5c5dfca47c46c1f65bb526912170f5e83a8608604e9546df2ddd2f8a0e2a44b8fa85585b812f9f5f56ce99b198f026552544e12ea418bccfb3c44e434cc97b01c689d42bd4f4980b94073da813ddc74cf93ea47354480f4293686e3119dbab11e3e8c2837988b7b3807c12c3634d001574c1f72b64e22c3f1002a03d3874816d85f055e943f6697618496e39255862f932039fbae754fe9403a72337441946976e40c6a03cebca93f4e2b8e0825ba3486d890b978693153e529cd87d88b6bb027cf8fa98626d23138c1934d6e47b7a7c28e174da161433854cd522da934e1eec3f275b37a1d597e3df74f17b2fafa59721d595f5756af3febd763b0de7a69fcc1b54e31d344237271b4b3af0f3cd7a12e299858d756b163029f681e5b5864e6fd5d1ea627a385e1c710d4e0cfdf8d5e8d092b2260a748d304afcfa937f71f5a52a3769cdf0445214f92c0517feec5144757857045b4516f088e79658051c4f453419a50efd4d166f52d49510433b5965f7cf3caf9f6450bcb5c392cd1ce48ca3e14b266887f44d4b4108647a11d2af6012b4c82f19b644eda671ed5e2e7760edea1996e109ac63a39d0a5329353eec5114d60304b45844f82f003f49433d4b2002dc1b220db0cd25030b347df360206d1a2f33062d74ec28bd607fffc5030fae1d1487016ca971a1f1f917b96530433f1025a7067845da050c23f7ca71804b6191ba0a98882b06bc92aa00e3f691b38e62800d008cf12b4fd8f89f0281b451488eee597c04e79c626316732b2b4464a89e048fe2890984d33e2a8137c2f7037845960362e4490602500f4bb59bc891cec6f12907bf332e30c14ed4f1e9c31e2570e735fcc185a3750e51aea2bad7e3a24d63875b2bd29387bb9c6791b4685c51269488dac7164de29cf281fd2958f06d3dd8290235beb1833fdb088ffdb079b2f6b635460f071ab984549870810620e21ce5bd22cfdb31dad13db13af3a71570c262a0c0579439a0c75121a3736258b61d215d04f9b96593dfe2f175aae297045c2eb76c4abb6118ae4891d6be3ee34fdca82de64f76ffefba7adf7cdb804a5af6129e17e43effffff51a1d3cfd10ee87158cb1ea0cd1330236766f96e026465e54893b4f6d561a5404ccad234254fb1c6212fe021fed4bfa97cbfb989281f625682a49ca57460a240223ed202ce949096496cd1406a3e72f81ebd325b3ba65fca54c2248fb0689fc5f77d83540f33d81767989277c7c68959ab19173303c0e3a06511e447d5a54728591f3fe724c7799cfa51837d444c833b6e95f1ac21b3d399d9021c20f59e8440dd5fdb4509b4e75308ed1f3dd38a63170ffcb8eb461c2a1b9cf8d84536c78f851a3e1071a0b073394ba0cff9894b3950ca2e7614b4b56cb7d784140ac536e43467e9521e20d8dde1b9c010b4955bc184d460aac13dace8ba30d7e4cd8981f1ce08306f3c357d4b62f5920e72b21a4786d7057de7d3a466fcd8c7285640b2d1a51454b9b1302995edce618e450af9028589e30274c1c57e2bca739bc0fbeb210b3fe9ac0a9d670d075ba323413e58f145c0416112264623b4062c74a45ddc3a924c5b2a7e56231e1315296e62acb3bb5758eb2a8609917c9b32dc07244f9f65a31cc06fa1261fcb63814724e020a7a5f24ab3d452cc384abb2b4dc8873322d37a78a0f1c2c872c12156750265ef8f823edbbaa7b87d0da134d2a8a8b6eb4c5144fa006770e69bf6660f00c3def96b2d58c0114f85ce6756c9a80161585c3fafd469c0bd32de60c659b597b192d75e7c3be7f9e69730626142408f632addb2ecdd8b3f2124e70c771ffe7d44d6f108c5d88cf2b4933f98067eab42b963b4e345432702ab6c789aed8c7612bdde717fa4ae4d0c39989474e00f061515bd75f3167ab217a0debed3f86cca78e4094cc8ab8f11b8d48d5d88060e29b91f583e071e76115682174d30ccc4112623c772977413a89d6d32dfeafe6592cc5b8e94090ec434db7f863c098f1c557441c4986ea62fbcf762dcfb31305825e3197b1b99920df4f935f0602a8069c2bee2e9997fa13cfe8546ad5a44ed7645661a8379d00cc8e2f08813b0e37c32a2e0552cdc26ab1e814ba1ae44bc5acfe910502f2dde2385c7cfba4f90cf50325da267c0ded1689f7ed783e03146c43e52d8988c3de016a3b2b0e3f71855da316233f2f0c3b143d7710eac718e41c5c1e2c0cd8bb4a1e098ca8c06496a8f252a528ea0796107f7005e40c07f4853c0e5e1c9aa16c8b83372a8672aa9d56518210398f3bba8c143519f79a11189cbd21b5c89f6a2414e9ad24d09c4e8f8db081a75e681419f3857bc5626930dabb44a3b8144fe9377646f3a2dc37b756dad756fe81a992af47c950cb9f08622758d26925841ff882df7414c8ca4b7ab1241a0f71ab912d515dc710fb0fc68f69635d98991a884194bb6c2867824a2cc2a5c25ab240e95c4e0c2278741bef8d4c02798d95ddcefe8698afc9eb20a2b4087e4ebf7699e063fd81f9a343b8ff9d203764288800964cbe35c70c4d683fa4efb6d10948eaa707f844ec79c5eedfceb2dba26143bb18abfc0732f1166f2af2d61ecea36ba52919e1d9d3f73934c458cf675e8ba4f61f4d937256490b20b9b4420f375268a444ea3be528a68598f8f9ba2257464aa5b6ff40b4500f6c6c5a817622af11ebee33ba38033b097e7d590c1c0fdcedd997a107f814b1346a5e03729364ecc36eb5ca00dc8803e59cb26efa42c6f28986374c78d63066b76553a9cad5cdbe17db709382727c8d3151ffb540c3c8d05bd661b4c4a82f54b8e9fbf736adc34d5f67dce537ee39dd5c4dc4c35e3060ae656abc7f3ac2ef9e8f1893e1e01900ddb2a1920dda38dadc6d0eb79d52a4ebd99cf070fe2ca18279ddf1e5fe7320229ebcb15ac613b9867e846e52d1d20d38bbd96401970ebef340ae7b4102257453b5ca08f1f8e712cecf18df84380b4bc1330f447b719cb9119c1a8b1106160e2ccadea40af93cdd7132ef718e7ed0bd428f18139a28382ea1d72bc24bd717ff8fb180450d64131fc72e96358945a793579015b11820a66a06a8109bd29ae226d9d8a7a04466933d773d13cca50d5fc3d1ef7780a801e102c8028dd7ec1cd31f2a0e0f8879a432fa4bb384b575e7988674a4101e9bbd389f489e91cdce09d5249ac0602a141537e9e7881546efb7be69c5cc808bc5a483328215407826fee19656322c660ad1cd395fc34a47ad58df2b3c29ba9f3051d0245e550259ac2570f4f9eff65e39ae2070f888ed6ad1dfdc7fb1a03945fe26ae348444547ef16c8ce2c80611a8e5790b3e80cf048b87eb8a8c76307aea93cc0a3a0e0f48edab2ed9c27ad05402f8ffc9a84dd825bca45db8b6dbd134b9670acc3c24bcf8a938477fda94bfcfa509f730e0c93d1a23e88e2825d66d7374b18343573534b912ded6c9c88e8049deebd74a540c4bd64634c9a537b414e0b34ac8580674680152a794ac01e62d40b5b568b4a5159be8274d9927157e67c1a36d8468a1f64b9f5774f28f6ade1236894f680ad00210031d21ed0a84fb501d859f25e4d9a076c7926809f0400b5c3662f699a45656639b3a0614f45e8433b8753cd1f84a99e45c3941a473bb3d080b56bfbd28dfe00843c10ed5e5d69a894af8f8303d4718498d07ed44fbb391eb88cda310181fbd58bf18c910d98b07262052b426f24f2ee325a6d641dde9c2f2d0ee93ce4ba53c7153cfcd35eb98ec7505cd7a6cb1e1918ada128602fd1849df93ad9cf321935cc3ed543d07c7ef4bb1fff848f1120c93dd96302b8d0973830ede87caa0a1e81b61c8865eb7808f339b9310cbb40ced42e0458491ac377859066594b06707275096c51b294f9d725890b90b3ce7279635fdcc94809a96e5e495af7a5e6de55698618c6be88f2cf7f306f12c5a7fe3a1dbc67e49583cb4ec6d1a533b29f806e18b083c83497a506777588ca9855c6cbd7faa22c06a81304055079ab49bee78982c7e735de210a0da9c7244b6fb8a7252afacb576bc304c65c63c717994032d8452acb92db97824cc4c0a22c69980c77989d2775233a4d1193e09498b53b40c7f27c1e9ac15a87180626e4b5e4241cab6f6e1ac6de87c4476b259a37d0b9fabf2a6ec8a9068ed1922ab660da2a07ff01401ef73144f60ff3492845029473eebadfb0492a74b56c2a570d04dce8a284bfb2aacfc5b5dff9383e4caa2ca34b8b98ba45290eee9cfa78a800a81ab7dca54b8274e8098bbb2d17777419e88b573da9eb641c09a6d167c0c283609be2d3803642a95887ca32f445e70bdade830c5effff23ac01d312f7bb53dc0f88710271305e2d6bd081744066a31a3b5e8b25509bcb544a1aeed6de3fe4d9527caacf5c39410359cb395acafcc34560b81a44ff4867635ebe99bea831db014fbc6c053e99a66cecc0bc8818fb96bbf0c0613e7c778d357d1b88fae6d15b4f6a0cca8b4fe024d96bafa28f2375f2607acbc423574a798e78a6d99e9474af68af02d43f707889e9ddc1a27ca1ddfed373bfcab7f8cdf5fd2b739cff97727fb0dcdaf5ef3b702bf6a0a01b64b8ed15c8e0cd0afd0f6a4a4f6813184f61036fe23f3191691b451af77a17c26c4e30c9d78ee9bc105e172d66dff34dac39c6980a8a0badd1d79261cafad5d397d95aee43f20aaea378f7ea943bd249f65b6582cc2b30f943e83a4bc93279db0e04f56b34e07d9f7600a4daeabeb72b59ee421daaa9d15a09d779b711063b18670e6ffd0afda8ac63f7ab45cc23f9e4baf07f546627856354f0aa85ffac5146a0a147206254cb07ee8224ae122b00fc321673fdf9f5889d1646da93b004ce3c7c19e5f089c7c8180ef80a7a8862f98e89d98fc0917fdf38a3c49586e7f30bdc52323169cfeb1832b26af2e8111bc8fa855b3bcbe272a189a8ecc3ae5288ee2fb88565fc222898bfa53d86311ce9223688d64e53ee12c2db3255c699c663db42a4e7ed7b9f8be9f1ec135773c043c6be012628810ecf23724a06abe33c8ae00ca94bb25f7c6fc36c5b08a1e093670c7ab9748804844d6ef13eec61ae3248a456ece9947387127991629b463116bd730580abbb68f8c98b876f33dffbb7663495cc57781db210a4c3bd6ed32b920dfd0c841ad9cbf9425567647fa13d8db50665ad7f0db9c1d481053917ab716978770a5f72e2d1e026556e1f73c6617a2ac8da780f78cb6c21dfe55d6efccbc80b331dd613301223dd1316de82e65eb3c10678561b72b8ffaa6c3bd802e20d13add675ebfb7dc8d8134538b34e47d13a05682cf28d8044df20070bbd45d8ec49de31954489b8f03553476f04bcc48e5642c2ecf16d23c31c37b676e3af9adefe3b1a859b318a8405737c8678ad11a6ce23e84a4dfb3dea30ece1650eba8e4a5ae5f67213727fc2d47f4d8abc8ab4f5529404833f44dc7022609be02da7d30cfb7d0bee592c2395abeb5ff9eb8d2c0f48275ae1ad71b4adf17bd69972c52baa07f0046142ffe6f3ca164133c6b6b3328adb14fcd6e649ce1017758f5fa680fccc52b5bd40a6f99f0ef3321ee9be8061d1052609b084d184788cc0ada9b9d88fc53a12b1fc931edfe98a433c4af65ba0cf9e1a379b720eec3e68ff9c3aa5d86f4f02efff08f50755def32aee9209b23b61fce2cd4dfda19bb59721259b23bc8cf8b5e7b4c94be92f548fc2a49042b3de06cdf237f5fe0b653a90add29b044b5e1a400a5981a4ed93d973c533a8ade7175dffe071ffa115b4c2ef9a1bb23c87591fdf29cb49a9edb032bba7224bf32305244139334caf04002f781ebf5c1f3e950dc0416a006ea6263727ae1472003761e5337911ecf35a28ec98af6b1214d441b175a3318bd210c975774c70707bb2d0f76bf3156823990d6bcaa68d575c0645d5594186d94b3ef615deacf34378566624298fa10438bef394c046236e491b426426087aa15d8efd94bdf6eaf2b595a56b8775841738eee7869b94206a5e7bbcd4668e58345d979b5c193b654b2bd5c825e22cbbca3bb9c9c2b623fd09f90dba189b4d196bc0b6b0ebceaeadd31dcbe9a7f3e99f09bb23136b4c969a9b926c8bf50ade45ead1b2d9af51ef82c47d49b296584c1540a15d5bc4c49dfd536baeb8502d38e96d18fe158907595dd4e3bb65bad87e50c8fb7aa814085cca5d0bb9b491895861baaa9162918fd503e567061f3ca52f2b2edf44f76949a0b8c8ca24595a3fb488f993bd4a9c5fc2c5960a4255cdf541cc7ed8269c48b3d04b0e11388bf1684bc9a16d26ee23140ca0af875442aae40e42cb20d09f1b1f1f49a1429469c4d71b32486fe8f2f1c6101834d93d2d4ea3436b96277c02b4ab3452975f2f82daf35dc77e25c2ec2a5d816d32d08e8b088e90fccca105bc89ba5cc52c9b902e5b8afec8f2032449b8e0a8256a9a191eb672f4033be5ba5454e2b6cc37748554a0d3b6449c23c4fc963da43e08612f66d12ae0b7065a1d190240d95e1d1832438b142a91d67f7926779de173d5e605e0265f5defa47fd7da1c024ee006326e9249df8ad7e42fd1d5c7789edd09762748120542294614f5741701c0761fd31e703dd8c441730d849859ab4c0b7f46311a0b71ba268ebb285e8f2e84ce02982d81914bf0201ed6f841624ffb54f5f277951210772d59cd417028c02aeabe63f6986d5a31d48fb8fd8298451f7af956c4d94d88cba1c2d08cbaefe0dc00745457b260eacf5b430077c2a23d9990050f48cc63088dd853d0b737c2e76e3618cd7792a3b5abd6691f3ef07c5bd4e08d5884b3a92c570bc81968a2d4d69a384a41573a190118926fd3bd558f06fb89ddd858040b7b287530a315900c56a3ab968af2e3daca79ab5ae2a56d72b0ab7594b996c7271b305ba0616a2337e6042c94772b191b6dafd076d754546f1b3a9bf5e590da61b7313887a7b3344f1c46a599676c4be8765b910b89cc1005f463aa08e33a0090330d2029caa66c928bcddd71bf7cf81a8505bba4f444f1e48d7e8757300948c1a4ed160b4840ffe912f3fcc4d84f977677614f817a4adf46b165cd74d5ff970b8edf1ecddeee05e1de154eb378e3fdc44df8304851c7163580ca95232f501042e170ad07ddfa69619bf2f1cae6a7f7e752513b5410d8aa170e139335f120437e2b17f7be67ebcd17b836fc64a39485b8e6b67485952a844e89bcbe41e7383644cc5101a8218839a878021c469efef01a833d4d65efd7e2ece54050380a07e4bdb3753e6a91ccf36d56fab37e44902465b106718e09496f84593e15024491689a0142b710bb47a5e5f9a41f6e66ce7a08ed4069b5749b63895db6ab628d63fe550b38f6e983520c25dd9026936754b0ba62330b44e22c0e4584aff060ad013ca325c162932a0d933baa3f4c5620cb0c2169d9da5c8096a6bdb25378ea76c47ff322b4c4ad9bc7d21285541d798bad6407c6749aafcd174eb09c4abfe33e9df7e516547a1503722879eaa802144367af92fb7644847873eba563312cc18220ea7bc9a55a0aec410b675c3ac95d8dae92ccb6bab41e3d4473bdac001332b5f11c6215b22ebfb8179d51c946b668b7a18b98a15d9e211ab3e24ee9b1b5b117ff48a7f223a94c7413913d19112d33f02d2f5ad55ff9d2aa7d33744d71f1d04087e32e3d23ba161d9389cd42f26ccdf2b697c5cc81a1e239a1f76acf0cfe8d82daef57b1fa47ed533fdc25d99eff926e0036d17cf6c0b5c74b6edbedeef3645b284158bd426b08b48e06947573e7078f0cc9742dd8241d24adcc94443abfb477837adede58e87872bc14506cb6d04b3c5fd8dd23dae98dee24e412800d9e54cf138fcfce8526063ffb90e637fec17cafaf52e3771f1f8fcf385d16f324a188f5301f97a287ca4a6f8c275d74881ddc3f154078e488fda3073ad4f9126b4c92de94b2e19629724a697c4d9af0e21db8249ae010be1737eaea44256594ba524380082822d7aaccb242daca5ee9a72bc4e02d3b3a7e4b8076ac8ec77b67af8f96e3d438cdebe401cecc261adc5069849fff746316f6fcc6233b3b5edaae92220b66514eaf65f02c8dd000cedaf60670696a17f15a0a1bd09c79176b43ccd33cbfa3996609927481b87d88e0c68b390eed69a33c090b560d6a077dfab7d71949287679aebd634aae832c954777459d44a879b6faf245516a879b30e2a1d2b852ed92e85006d0541e518a256503f5b0440f2b9d4ca9cfea8cc06f90055ca6802a898ac3c4b194babf89972793a810b4600c17d9720d705fd7176f403157b8b8d7be35254fa46a27f64cb8cedf195ba8228e98dafd91003b622cbcbc8feff8dfe499e76fd63a25217283215c61a2892b4102200fbb2605f6f80bb9ee61cb2539b2f493bf6d5aebf2277633b575227878355a092f144d4096e5d7949f54b1bed5894ebdde22cea661a4e3125634b97a4da589eb638410e346c146917bd6129c7e3b871417e184e72399b5be794aa66f9b86734406f6f085b0bee623596cc586ce7f1c853124ac28013eeb3c644db83161f5eb3107e3ed34cfa9d45167621d88b622d571775dff6dfb307a409df12fbe330b0f2d7b9d94dab151ca7b9493e74d334744ad33194aed93ba662421a261ab12bc82a26f4f7c6d9ea2fce1eb07e2d6be7a4e705dd483e9eae5f14193f50b01c5d9d60499d109a835ed36c6b3e1270ea94aa75905458ba6904d468315bc975b6db77319064cd943a194070c7061f2b9ae70c998d8f8cdc80d513b23b228e5e563760ed08dc688b58e55d702a06a08264b25a90283ba9a52b492b16575105e39c6b2ab8ca70461bc15a5a5d0110bb93b12e195cd5a1f8de55c1d4022861361ed5b4fe0d00e38b8473de1d13c4cb058628dcdf1a35ae1010de34ce91dfc90bf9d6f908e78cc6aa9f65561981ed09a0ec8a90014ad8d22dd2e76097dbb6d5fecd1103bc7197fd77eb6d4e4d4797550a8907a06f24172a04d677d6ba5e41f02bc69e07582e8b0c33c084c7c59edfa2dda1d51a2200131949739084733164a38febad34bfd778cb6cd5619bdbc07831b20f8bfa2f29d913aa24eaf26520ba1b7beabf9e622f03dfc641e24dbfeeeefa8830c465766ab1c01413eb7b3942e7070c8d594ab204d2bda3dfe45e756437337a95afb9d668051e09f46ea142c6800915fa0deb54c20be57e63d1ae7dbb39697c2b791634d71671285fc460b2dc14f6783f27ee295b7eb01b2eb44de22002712e0905ad2899015d2739feec6e408663d305ddeb7c1e726eebee2c0b204fb0bfa5fd35ce809e6a9a7cfe37d47718113f31b360d8bc157d8bfa2b004c713c288659c86166ed5f4a62ba40410eb7b13a6bc2a81171bbce1d052bd05d206b97e86ceac9a20738a5fa8f039aec6fa2dc468f00cded9f5ade5a9972d3ae44bfae3ecc487f9a09d5a3f3ce97ad801046e6d5dded461bd7f58461eef8cc84e68a85099d76ea007155506f1b07189f62dbbb84b7f11eb700c851aa75e7faf748716bfa5613915256c2e793cb61fa37d32a2cfe64378b68d97e0ae5f2e7bec78d365290a8df5d3527a5c3f76e6ce6f6d8368a8fe4533ed31cb0fbfd834cc688e66cac249cae3be78005cbb562214c1a3107b036e780ad9a9fd038b7a00697510bc89af47ef4549c6d61478f56b4e7c184f9b246a6f16bffbb5b30774e1ce03d23af944805c028313ce4015492cbfa99004ab4e2efe333001af9834143d9f3f68925ff9fc1a6ea188545b686e246f919a9d1b7ca3aa57526aca0094e9bbd86ed5f689a9f87dfbe6209a54823b02977e6db0976c463d60b537bc3ab2dfbad348a3e0cfea25416ccf8a6f53aa58731d44f4f5cfa5bf7503cd179582df248d9044034f92756dd8405398a9ba6b9b7f8c8177bb7fae81b87303f1e2e910988bcfc46e02e8bd19564f48e1bc73042aaed6406b2728ff80c080f3ee8408269f20048748866a6ce32868ed6285b04d252ff2a48a8eb3ccffb0774e6998da9d7e65e68929abc9897820c35b520f5abb2001406145b511805871a5b5ece5313534bdfda24500c8ee0cf09436c5e56f5820ef9038362f18658d7b748d01a046cb632b7ba3f009019eccb9f2f8d4f4d0450741697798b62bdf02ded8c021f026168b880a04720060994fe42fda22d0342e707815340d6f6d559bb111070db00134e4a5589f885b11667da3a91931fbfc05921c24060e7e665b06369c77c484bbb01dd5092a98fb406913939faa00fc7025872b526e17b0629d7a4250b84b698d8cddaab4604b6df6ca81959077a18dca65177268ba0afa52f158d2d9af8f9c211a877ababc904abb090bf4bf30e8b8e4de7cdf411b69be6ce55b190495ffb459079c702e2b04a8b96c26369a1bcb8bbaba45bfa415ae3127b5548bf37b116415f726bbd794764260c111a3342343cc9f9feb87e4384561e08a701a299d50e96e9c961520fd8d3eb28f84a863fc57c48697a90530d2bd4c1bfa769ea8d4e683918e3abdca3409554827a359323bbc1fd3d6f92adb01ef39d82991a706f29b1ced99f9aa64ee4c0c3615df3c8c81674d0ff60f46a937d6e84177be7e187d00b8c49be99709c2cd52a170822190f7ce98f8ce5bfb1d53a8e01d44b880ff749ec1b33f9869dcfa6c4b242935e621486ffcda79472ff4824ec1592845f2726dcc766ab71a615f418ac5d812db31ae546634ce06a9e5e96d5092e794327e09579f73eb2d290efcb60ce6711cac3312dfff8dfa757b579d34f6d45f0041ee06f5d27d78b217197208b18863483f410e50b69b275141296b7f1adea2a36822173a819097dd41dc993af0ef19c022f61166dd5c681df2a9a32bf7ae2ca91f65a345ec38c5612b886148de48c269530122e556408da3a671a1bc1589714e32b097c480acfed8aa36125971be91ece551d70fb5f0fceb2ebe1e0c50e67b0419218e7c291e27430226e9ec0804b70d3c01e4db5a5e3f7a357f05f6c72468ae5fedbd3bfc31e6ca0dd05e4c22a11791db7d92bb1aaf601603179b1e00b721e720d770f1183d6546c352d9aca1b433588d1ed964e0cd8acd2019f874fe7000d6af2e4db53572de40f58a91f723ec92191b1985e85a1135e5758824eb4477683c09b393412702cb4270cb25ccaad918a291bdf4e3324222612286a8fa3eadf91a95132e7abd75c84760cfa1351862cadf178547b1ad4d731e34f161ac29cf32f65bd50de4de4ada217621d000b7f0662edd11a1ac46cbedc22d33f88cb335e4be51c9d4f6505a695b32552552597b773d87fdae0c462ff8bef4b7cfb5536d06b550176107293bbcc3b65367736d647cf294316b77eb63b8c3f0946e378c8e51cf3b3e93a2baf294fb0694a582ba2338c851059f53fc887c259c59f298eb4ed5014a2d80b1617fa67cad7e37c1ec1986a81244fc375285b539fd712648c00c8443e60a74600e0d0ef36f6a2b5d0f1143629c8028bac271235fd1d39eb059d4eca815b02e630f5c7123dc1bf63b541e4d088ee818652f8a46e11688817c11f95d0e60be9219eeb7601cad2ee7d9e760f32a4b0c448c4023a15ad1552716878b075f89e9b9f8e0b23939f7df686dae6ca2e37daa1e859a93be5434ead5ff4d67d1aeca5c387dfe9ee103c10ea59ba27f11b1d045bfaf19c949c6466c542c342f59dbe29424cef38e42c6b00b4a868f7da278721554ce8cd65d19ec22ab341e5bbd11dbb7021687329b94e3fa54bf7f31b0dc5009a131ce7ebed716f34da379bf59be310f9fa90b04a21c3629ea98e2698be66e865176d31b64e611e2ae6af9d0923edddb8b3a33640b8683e314605fa62f0a69cdf48cc3f548a1415e2564d33b467472977324133070b8f7435ccfe0424830ad82f913507bba94ec93015fc3e5e0ce7c4f24bc01f7172bff47055d33d0042dc76899bbf3042091c8a249fc64eb8cfb11ccf3c8067ccaac7762bd4fa102565cc97b774e185c3cf6cf4afaaaa89d0571ce7abf26bafecba66315156e6d8d923676a8bd55be97a8382fc19a3f8dd9a08d21846272c2d9fffd1352c2e7814670937404303852f1e235856f5b0404a812ce943ba20f92dd1011318b7de792b7d84aa5ccaeaff87d7ae855f0d0b465ff19f9bd74fdb548ae5273bd7b88e5828707b3d36696c2c3ed0b483570134794ad09346ed83005d290ea3c63d58c3508b24bdf4ede5a6395ab9e158cb2ecd2ecc9b84306727f831b4248f84d2641e2b37aaf8190c4bd25b5160381b11e47263290d0cd48f76f91c0818d4f85eaff72cdf1b63ec26ac1ca29913d4223368e4fe17ec84a2bcd81b36b49d2b64fb035db96ddeb06e1e8830e9f9c5e21f4cba95fbc24d70ce1f69325a9e2b861fe7bdf15576eeaee1e6c8d0a35fc4a0e9cb77b4017bc4030ee28022d6b3b64876b3ea0135dfb027b3b4fdb328f58d16e75714365a0ff17dac645f0d99fac4919d8d8028d18349b8483cfe9bb9eeb688c776e71fa846fa4737faa769ce55d3c225ebcea0cccd8fb0a94ffd13bfd284a863fe7b4c0cf444474fa92d9132454cc9a123425de96e0bf3b92064e0e1074a06295e38ca5589069005cb33b48f130b570a2919e5922884bb4d7b105ef811dfaf8640fc6e5cb6df2093119f029bde950620380d6067331913c85beb8bb48e6822b10cbb0ffcec2c84256ac799b12269c6068de2d4426d8743ed5cd1e74fc9eb93d18c0dbe20bbe671123f2a38ee3347d9eca0c2d36ee0a045a9615913f0c92421a6bd081fa1f3704726d00ed658755e4e68373c0c2a56174a10190081d7b85c7be2a4412b0ecdb15a728fa35bf5aec02ad6f6c460a2b3cc33a8b83bc607e89eff7405ab09eaca0e16c3380307bd733988f3dfb1e58c1b082f3a17c0489b289574b288054e37dbc907c817623c113066f262cb0d845ffb01ca7712dd83d1460d1dd55f2567e8a5a90de39c8142154df7b10f0ba70832a08236c3effc16d6c4b1e0522e4f3b2f18c431b1abd4266d660e12ab0a9bf098f04c5f48e17eb91959ccd309d08a44ef596423b48b6c385a7e9e56b80637971aa537eb4ed4043c7416298a4956a4b11425ed3e7bfd8b2380bc517c233da779efc6cba7c447effc80651527323734b4b924d5fb328995c12269bf0747e2c6405dd1b8f952976a464de668e4a1d08c11a5cfc1873f60bfc1eb24012b89457a9c8c714534ad1cf0596d9424764be2b4f7d501b324bda23644a1868489fbacd8c5d8b88570da309593b9e771a97b0448e40541e0321ce19b4ece353222cc8c6f4379d3766ecb6a490cf676b339eec7868397bc3379fbe0f58711bc6ec843dcbe6f92faabeabe8ffe992fe8a4daa8fa34929d5e88c3ff4bbe4e24ab036c63d86e9989d802ff1abea8153e9c02225a526994c29a2681d90c1591c92f2f700ffb6927f9081f9ebf2fa104c1afc87b2d2b8759843a4b861e3d7f65730deadc5c05ff3467a706b3bf74654099037657123bf92120418989908900e0a540b141d3eb22ae054b405510daf65211229a7c70e29865b0c217612c1ba4334e28e7eaa7cf56e776566558ac7dc367d2843d106e45d30183204102efb5e89851d384484266783fb57f0d6941a350e47e19ab3ab9463214eb9729866e81469edd13469e49be20500f9fc8028978c3c4086b0f91d0b29c23f500acc3dde1d98e0feac0142051406f6e91e8d0662cf31e474ef72864d61208feeccdf58db68d510eeb441c9a9e11bbb9697cadc5ffc7ecf85226005673df90161ac486f98fd1e6b66e5035fa2d0a849b3d0edf97d6aaddaec626237fb6bf912f8484aa1a10585b0cc292e954f7a1dabfa79aaf14b168c2999ef795feb7329bfb1cb37a0c1f778af060744943e653ca419feb622fc227b7cc796ea36bd571789e0a52fa1446325a0de7891635ebca79a64b06403ed1fed8463ee257dd290f63e955b056a1467908701c28f3ccf9491488f336956c26e5f0a3249ad0e2b0ce341f6b20cb40c0bccc35afd8090f08923185e33deabf188c0be719bb294be797ada74d0a6d8d6eb58e54adade678bef4f186a66eec8fb84c0a105f110405fd8d59042628b2c4475d54c9f175c82bb0cee70ce4c6db68ed21268f8217888e4306f7a8aae9baee10f7f6b46d6c54754e48e7dee340f0e6d256894f084916b8b266e298fcdf4bb902d3876219f5c50aaa3eb3e5af6246cf07a6f4bcf5882c4de8a6c9f7fcafb8d40d88ae8f610d95a900cc941a61350b51f80bb2a5b9e52372b27d4bb3f8e76e14a20c63d204ac167ae5b15d56511d5b2f79ef44f58ce41762d9d143f5cd89247048df1a1c8b66765735a31ccd4195e8e8dbf5fa4f208dd5d49f48c4ebf287c9fd3398d288daefce185acd29fb58ab39bc5d37c8b69219fa5547a6919c0f1d034fe56915a632dfc76fd64c6cc9f1df4638d21299d1b766cf85374d4b3a7cd723fe354928d5d744679f8290b40c15e17b08e0fe15f913ea2eaceac3040f61fda36d0c8a6afb16c13a2c3c703951941a52a01e8ae08a6ab260b2109aaadc122c4f588bcb7c699b459e8e86b3cb50a72b43c9459c182ab5ed83af0301c3a38b63b3fc3dbafaee47d4acf54bf719831ca9767825abe7afd81a69feab0d2b2b8f11289a8c8e5f7f418eddba2654823e4705bae7b1443c9cf5a37aaff53112b4f74b4fc538a5c32e8f4ca3753229283a69dfa986776b07824e1ba27727770eb243bd1e7a878afdd470d835328d63d5ce768e86522ba914b2db0648b519ceb641baef43cf4114ad24b26180bbd2d346445e40164af4b7b17fc31ac4dcb0e8a839612cf775bb37351c38dbfa38d0f3a8e7db0f92d0d349f83cb7bdf67e08e6322696d56c50190d0ffa5e16924c3fc8fe6fe70bfb9c9ff09775074bca01236b90d5d3ebb892b29737288e43f7c2207b81f108c6b35b89af5f02abdf24927fa9b41a67c754d96b2f97fb7d36e680d113567ab408f7b37bf65da3a4c9e1e3a264cbc90a3a211e3bf5782ec12ceea352778cfc049b8234abf5d148d9691c6cf8c51b0970c40d2a0f52f1ace776117566d5f9561cab5781a582ca0f523f1b58551c84df19c27786891b36583b8bad4a9289d701081222d4dc5bf535f3ce84edf5db86a9bc1681201f0c9472d67abb0b5032435d2242cab2c9759f4ad0190e5bff6b44b6f1b29aa4d5efd6185ccf42fbdd5f72f14e055729dd2890bfa44101968a89d2d347496fdb86b60eef15ed18570e14025afa2738f6cc23a6272af56f637701c7de09af0d9818117d64a091bcfc999cd7f2831e51dcdb1debd5ba5c1977e35db4c1459bea64d5c1ac3662b29707ac51c6014e61a6c9956307c2efd28bd87101783ba631c1f3b06be5662aaac1a9d6805e753173213c05f282267ce425478d1e3c06e28c4f12f2495d6e9c12e2f2a4fcbfe3f0d4261c9d14622adb747279db72b63a498330b383d46abb92b0adb808e1ebe9e381b131b0a73a2c2b6caa06a5a488bd107bca103ea1cb7b8e7c6e7d670fdabb651cd187db2cc7c07957300cc2a80d70b41038a932de608a2494a5a36787467f5a54be0475d226ab5a42088f07458660001cad8749bb81eb8abfe2e409d197f78a3ab6b767a79fb3ab9e42242d5c808722e48a0cd633dcbe9b94e5c9ad4dab72b7f950ea02708bb07d97a372f561bb45072ef34d22814b3b9e44bf097939eb81657d0209dcee6d8bb8b1686a389019d558cff9e7d8451908de60b993e3d90bec3685cd809705984a8bafe07409c34d1bf4e66b02e52bb47325547c746248fa974a0576854826ed8de7c8bfe8e54e11ca33f840052c799d3c840bfe4d2db4d816aacbd966e147d216a4c1013a533d4c5740cca0d601cc582a305e8ea7e3f5e129256b69756b01abaab66a756caf9a1219dd8e7eabb45ecdffb2fc49899dd87f6b3fb5cb5c1c21353e5e44f24e001f8a8781ebe7147afb74a4327cbc2e5c3fa4dc72cb94a44c29a5d404a2045b0434a49430b57d477b40ec909f1d133f35567ded989e181d9b2507d7e632adb53ccc5a3a319788cbadb96a8f522c98c68e7000b1733e3b467c6a5cf429d1bba263ade4dab9b636c91a2b66e64a89b5615c655731a458282696eea8dd01e42295d861df12352c585f4ba607838e85936ba9da8aacb12dccda2fb1145cac8a2b5748aa65c2c4b21db922808e7a766ef4d4b8387dac0c3d2d3ad74aae9d696bb1d6dc2a33f7468c75c1d5da5cb535a45c154c2e89233b20b606891d1a246a74fa907a2d1b1d8e9c4bd536b5d6b6993589b940ebc9655ccf2b966faa85933b746cbb8874f8b0499e9c368747841bd5f7d9b39dbd5ff4d9e7bd53f7b72fb74fb570855804e1f231fe450fb7c1abd38303d4a121711ef1e94276780edc0d1b4ff9f2ec9c2e9e9caa9c241f1da15fb4a096de6517971c133deacec1d9499de8048d39682bb7b66e6b71a5c55b8d3e3e9c1b6d764cbdf753aef84ef449eb66cb79795ad87858f12f3734bf68414d9df1e698c8c1413f7e8d4e8c7b732a9b39866a71239431a9bf469ff335da0055f6d0391c1f65f0c561fb79f8e2bc1f474be3b4f8d9a7fb08a7e8c5e1e1a1e0e3170769e4f7bfb5dfbbdcefbd779854c822a1a9ad1cc8b2b2ab7005ec67c5fa6c8f15df3db1f68fdf9ba7bfa2c1cb8a70655d3cac2b9e26e806e9a6e7175fd4ee3678fbdedc2f9e6e1fbf3767ffe3f766ec073f7e6fb67ef6290682796865c13efdfdb3e01787e7e3170783a457e775931f149978b1f4c34651d44c8b3db5a1252772239ca8954ed85278978bc53f7e697a96826799ae64cd7a0e9a8877166a0c7b7fa1e6586fd3ec69a981e6a976d8256a02833c18d42a1f88e0f03bc3f7b19a808c5fb2cf18553be45fa2ec4dbcca705ac006c0195c74fa75b9e167ef7ead450b193881f283f1b1aa5d3097ad5df63b03c4489f7a08a3db11abe9f6622d77b0782bf0e37726edb34056b2ef72c1decaf2f13ba36226e91757b65e309ff8d4e62e73ce5968fa7267e216f6a9d7e95d759004d8820bef8c0fcf3b639c80fbd5e36ab95b6e160b0d187df6ec9292c8ec6cf856862c16228e40c0e670b8616e3ba73d605cdc2ba18b7be5fb906d764b59a283f460451f99200570446203a9a1305a0b240a6407372ff2b874a08a0449fe719991c93de998738217d482bac149e090073802e078814fc6159ada580b2627d4d48a6079219981e459524e482ea419f29841fe0b1e8f209ffabe9077c80ac7b2b0231286151203f6b8850349230047dc44468e73822433611d7279ec250feff8e08873f440bac86f481fe4cad492bc203688d0b092393a294935a148624309dfe7fc05940f6405c7a333a41e720047255752d809120147382f25aba7b31f474419d0bbca322ef95bc3fb53c25d40652d13c834646e42037981186e473a46a22c3ebc63051221133f6e748400712ca9b3021264633874eade4c6ccd2c9d50f11303881e084f46f02b28f5a887ac81c470348f7e4825a4cab10e087e0bb267b4c0ac4a78ec42ea40d2b01500dfc03636f420bd341872c68f33900438160d8f982f8f107331185e3b8f3790398883231e12e558938395e1c89078090f647a84ca40f82faf5170c465399224799079479ecb44f2cf930c2433c16cbac586050d1935ac6adcacd6d0944c85594db9f8135bb91594588a8cd444849c424ed8e87a8cba8073ce39e767c939e75c8a0fa9b6836c3966c54066bc3c640488217e020ffa75e5f3946011444ec939abc498d3a33e252e6fe03cf314c56b9d1255148fa2a2688aefc4624e21b2003df76a50d13775d5de268afdb05f51f37c959876d40ff528c4a2e6f9dc1773511cea55621a9739e03eed9a7b6d4ce73470a8b186ba2a8ddb7015f092523441c17d0b1fbf50553f45d017c0c7ef9351eba75fe875f297af8a9937ea7da38a5ea8bc370a2a88811ef52ae7dcf4c318cd839c9bdc54b3d7daa77b53558921f4cf41628c5755d563f5833aec3ac87d9067ad8929ea08e8d7d9a3a81d52bcea4b8d01ebac8a90937c98e24f151f0c66af66af6ab56882a246fac510ba0f63847fd546cd933768df7590ba12bbefc91b549f2bf0f90b7d0545edf389c5f3138bab267e61ea85be0862a528e444164d84a1c0e33d416bed33f79a87f75e0ca18bdaa7987f26c6649f52ccaaaf8042f6a657750faa1db48fe944a147b51652901cc278c041bf941e66cdbe08f321f8f5a97648f1dc9bc3ecd761d0eba199929a66575595687a156be3cee051f20962e5c79c9e7b94740414220bd09b3efb9d0166ef522516cfaf7bf206ee4d9f872b5ff5a60ffa534d7d87517da98babca758f0f7a6dd43d5c152188c278303c3951f7640e4c6239214fa82b6db45e7d712db25f5ff020f3195f7b56bf8c05f3c7e5eb54d58283718a9a7f8a35682b9c8481e97f26fe8e7eef49804f843058db0e06eb460f2e03068bd8bbc759bf3ff99a300306ebf4b07efc360dada801c99a7a8c4d39364d22705656fc0bd311368ec948eb83498eb8ae2b7ee5e397c9cc4710b3acec2a5ce9bc5f8069e2c0a405b4324df198e5d6ebbae2994efce28b39c5f493832e3d01022e21e13959aca5baa5b69f251a3f4b61c6a518364b59374b55384b532350207dfff1bbc4a3c467132c5924709ec473bf600d2468df017fecf231b00427f62e2e9d757161d9cfbd997e13c69a7789a053915353f2ebb7a9ee6b999c4b68826ac282c36a0f8800ce10c2d660e336acf6000a7800f3000950a002ac500f35d018ca7f61e5e3178588bf3f7e91dc2025bf15b26b9fccb13ada5c9f1b3565ed8f245096bb828a881312529b06d41a41d2719f906878304982e744c8930f34b63cb31561ecd716db55d512a5f03ab230845ab5239ea2a31ad689efef481b4404ea073b23477ba4467b37e6b2e062b7acf4a29c928c88daf7440f8a1336ee083f197a6d92912a20aed38e56449a960c562a06cb851543aa3d5b6adf8c5c1e231f56ce0887eb893b9324455ddb44aef5e9e1eed860f7dea32fb7c48be40af649535b765464c2cd29ca716d8a66dab825ecdf1dbb230812b7366aad1d42c33582b94b5aad198b144f6c150a36a8dd21da11422482fdd1e426af651ad29678737f70b846672d09313f185e2d5a1c50ec1124fb36e4ea0c9170958646b43d7d6d1d1236aa089b06d76ee96879d0583f3256af8bc5d5920a204aed50519e50892ba11b30276cdb5e7b828e26ce9de2d1aa506bd1669079b94817acdd54fb8249eac45dd0cf8c2063dd9f921216895d1b642e475b8b1b6d56994b9374a1b2da272a3327f788c406016a7b00e93801a2714d306997e0b52b84b83d3e8ab0b56b664bc2fab6d6aac2523439321172e3b161a286af8ff5a1d7dea07351c84db5b536d6a8cc8888e5e062d5aed82a4432ac7834d54f0bf87281a97e5c545c4941187c0719e613a26bf27bd1e466b88e1f46bb25a9226272458eb87c602c7d6eae6b59962d4865994326c50ba31c7a389482ca6028c910f5a4a5c94071a344dffef885710cdb2d3e6ed6dd990b2544f06c32c0c1d5f344861130241ff4d53aa182a3e5a7828f5f18c69f7efc6ef901b500f168018269217ab5fcde2d9f576b26af65a8a568cd25a8bbd63846a7660bd1ce8a4bdf62622d962ad6c0f2417bee4be81e28c41a50124e50a62a5843d09725dec0ff738880df87eec7c97f0ef1dfefc30ff636f1be487a5d589d9db3fdbdf72616794bd0b9f6bed07a5f54719969f6beacf04daf83ce239c01fec5140f2e787006a699b356f898033f9769859fb77e61fc3a6fbc9b96112d34ba85668769be5767af15d8955be7de258358a73c6b8bec93be7ead8abef6a9efe097a49afaf9b78858b32f86d0e7067e9125a3fa058853a0cf44ec2659f3077a137ba0c72cd8778f626fb260cce4971f0844b10838fbecd1a1fbb7a21efbd48348ff69c1ec40f4343fea51e2cb49f46e99cd6e2de6aeae9ccc631d4575099a66aaae163c5653afaaaaea851a03ea55357fd577550455ab6abaa27814ab1952bce9f30933f4804308d9f42ede5afae209f42843d4aba907450bdf447dd0771425a6176050a0e71a08240683689fdd266b7779d14063e02650b3df9f67590281406d01468a1a3757d235e39ce1c5bfec0c1c74266ecfc1019818b3b3e71ecabdf7c644e1cbce70e1c205576fbdf0f54a066549c4ebf947bc54792f95da4b85f4f14bc5f3ae002282aebbc97d8cf6e53bc5e46b9f5b6cd698eeb5ef2e93b558ae679aff026472d58a5f167e1fd881be7b16753d6f2821ff107ac51aca55632841ff6dfe550563387d5681de543bb00089e7f901271dd0872cbffcb8f74e0ce61c02fd7b099dfb102b1fe30d4af54369aa1fca99998c5fb837d51148d8bfbb4c56cc2288fe1d247ad4c2b6807fd102102743f0c061033956f1e7b03328817e527bdbe54583d26bf5034a4cf58b778fac9b985a3887ab70256f2dba14d35f16d70f937fc7a0c15780879c6a7501f8b3a0a7474f6ffad3739d354af74133971aa5bf5255bf7c55ac183cad67a976307530ab0918ba941d2da87709f431a67f5a81390375f98b668c490491feede582187b5da66c201018e2dca5c7aa29f3fbb01c06dff0364be7d238995f3c51bf5355fbe0191ca2e9b003fe280d20a2f8d2a3108b419fbde93968aca2dca3dc7b991ff440af0e51cf61e7957f1275cfee672913ccda6d5583d2393325a88d693a97f68ea6e99cc680f6a02a025a6e7f8126aada7734fbae7de7b0d1105a1dc650f027f81a4fd03a4f50d3b8bca1fb5c0ca1550a28e95c91820f769db5d69d1883e229788da2689af78b1cd5fe043fa3dba3295cde807a3525c2fb2ed1342e9dfbdc777f01064e6b27f6befbee28c4189482debb5735a6404c512df4dcf79dc2a1aa9aa673296a8795824759bbca7ed79d75854e44559458cca9aeb0fd7eb74fe37a05c4178436a66a1085611eea2a14ac7a3ecc013b49f7cb7a50a7479d32d88ee01e418e1874498cfe8cb2be9c7ee825c10212fab9e3ea2b70e824614fa8c96b43c59327e8934ddd96510951ddc9fb58c8d652142929f1aae04336bd8d28f2037467a4dd389fbec3e1d1e6b6c2890d2362383888c8b656f4a089b561c09b443199505b0e882c612665e5a743878cb1450b23693594484c8dfd48c96552bdf7253a3941cc9abcf08c6ea8110da12112a6e50542ef3d8533c1328a701ccb98980479d231180ddc91ae1443dc7840e8bdf725bec4eb80c58d3bb716444b4d6ae84071846fc8949b1c0a5702e415f856da7bae2d4ff5ada059c2234b2a93b911c183089491b4a12a9e84fb93869f404a23529bea3ca2b2a79aa669a6679269cb91981a71e306c82b87022232826ce0d13802ea622254f81ea77ada636a62d66473c66104945d8f1d3e5cc4e8f27ad9481fd9751f609edf3b38e7fc2c3947fafceaae2389d239279f696e0d434ea4ae7ca29aa436d5910f4588b4a5a9b8d3c2a17286fcf2c903e283444ef701e6e9d016501bb2971462b246a672f7935304c7a2c6505894102f850be7db97669a02e7bc0c6b326ff69c19a6649ac2ce7918dfe75bce2afb983393e1a4c3868f14047a1429facb2a2bb3039343b9d32a8d98a669a6a729667464678a01f1e48bee81254c9e3c3ab91d145a90a43a271a4e7f4e63682a990aea662eca344dd334cdf4f4795bf2ba5146e73543e6e96ead8610323b22b0a96f8295a5f03a1836224c985c19d568192de15bba4a61c3ce0bcca9d32ddd24f1e8f281978476c159d185a580e2d340c7b42f1c24ca8c6c75260c601451c322c7e9859b5669448a73cecff2cd85535c1ab2098997054954c937bcb02da4df5904ca344dd3344dd34c4fb0124640cc7c0ca17de1572d4d870f92b5b523086632ee9b49212727f2c1181c8f1a5f75482c3cd821d1ba76a8ae849246df4cbaf1217ef318d185e027af8f1bb22f15463d4a27720c91aa19d1440d7233379563e2ca848c1dbdfd555970c2cdee46cd16581691998f84fd70dc43b8c5cead2b10632dec2b2a2fcd299f49b951c101d974653e8fa2a0c0e90c4ec6dbb4034969aa0618101756643bd94bc5e63cc6e7fc2909b5e5a0b211a19f157463c63399292abd9b125e36425860459ff3b85547ed12cdf7de7befbdf73ed4597bdfab7e595985789bdc976bb97fdab25ea0b071f303b46314cb692a9274f186e570209c884b3fe459f1ca91043fecbf2732293a100702bf0ffa1743c0a5b5d639e7ac75d65a1700a52803051cfbd8e3b3b48f7d56138065e47d8c9114c142ba3ef63f906f7d42b8b0dbd4c73cde30da16ae918679f878e3cb6f564710c278ebe047073aa6d9518a1fc894700d340ed0fe0b12625ccbd3cb910b6cd054885a9c44200183cdd0fc10dae7afd511845f138b1e602b2da0143ff0a53284e12d58f7718ead51942208d4badcc77eab09e0421dcc131fab0ae041278edd5496bb2ccb5dee5d967befb22c7799d1508a7f677dec53921f6bf89888330743fc6574ee485c5d64af5712bf5e551ffbf38801c92714841d5d69374424afc030dadad91a178c1a424b201c9dbcc7df7bc7783f858f5faf9b3f332288bd068b41e46b9f16d38f5d34095fc919d88ca1d555c6665ab8a05f4a93586e2fb5bfb717d3df2bcccb6e69da5d9f5d6f178c272d4c5fc919209454aa6f9a21e0247ebb7a266cc8b9a1ea61d7f7378737236e87ce14535a57cd37df2e1c1e4b52ba749b3a0290a5a8b42b19514aa70c2501000853170020180c08084402498ea420a0b3ed0114000859cc789c8444201b4a02611805210883300c000100023000003100c3201487422ae7001c476589e2a666b441ca03c20922b520c4bf202792e30f05e9ddcf6146674c60352afe5d189b47a61c63436e1924298a9f0b4a7b36225291085866ee6190d429c48a498068c1eaea8a0f623e826f38c145147e905500bf360df90bc8ac014cc5f30845198007e682627530c22aa91dd9d20ed0634ae4d2913bf0cf4eae741f89a809f3dc4850cccb2991725a4650242779fd32c79793319dbe7f641c03b8e55815918f152f49f961de1aa40dc84d479d64329c09ded4f23440830b0c3c416e983638b83d448b73123773823250f5c284a8d2b7f5b0685c41bec7a496017994304c568015d0263049f14a860961e59314007bcb31d9fb8cadafe27e1fdc2e42deb8cacb43b2266917b11b9f6e9d419a58de2ce140c8d551efb9676a8491f5ec814461b828a098a1e14d9b0e40f5a70c7df91fb041e664e3bb885ad62ec9ebd32d3821e7207f0eb4d4c86529b4b1d0784ecc0fe623f99702de6f575216ff2ac046f22f3878fe3e6f258553f1d284738c3072722883928a12db22621dfc92e07de858713b885d85c57078fdd6445a6da4fb5f692c071f5b4919d09c36e1c2cd981d20b34f587c46f83411e8c105f6e7929d8b064db9e3ed691712e1bd0dec37974af363bda92c0b4e82f09183906feeef5c34dd6639e70dd76840ba3841d8c5460542d49b9e24ce06ba57426097f4a23af5e919a001411c0bf95a13bf25c009a8abf9915f94b2c12341f3f829fed322c1213311bc6bbc6acb03e10fe45eff92eb7eb9ed5709907ed9e1060a277c17d91a6e2e0fa2c8777167be15a93f5a9cc6237acfe9297f8bb3c00d4788255b4bd61164e1d7b856ea79a5307cf54104111ddc076004e12689388f9d0a6ad8b5f11314b2632a8802a5dc0ad03050c6be3b0b6fc5788540e665594870f32c079a8bbec0d337a1da8e4dd097819294afb66900455730059b2e68a75b8347c5eee911a8f12797e3bdbda262364fa64766eba97b88595125478b29becc10f0150380a5726fc6c0248a8ee1237b42729664956c26ab5185ff319455785f8f374b9d5425fe17d2cf88682eae1405e89c347d82edafc615daa49c0a74ad5aad0fe0750d00e7aa78bd32fda92c93650e1b91b17b4a943350d2ca895c974ea3fc94cf6b76e23783eb514b22f420334c56e5006b16b48801ffed3856a9e4073848e682764578f807d1f8b7c3bb5d4c5d2ecbb352c5672514fe36865ee316724a01a28ccde29863e516ee0c068b2245b111b341ab53cb0ff3d495c0770161980812a16f952f158dc26872ba4a15d069f789d8b7945f7681149f33a24ca6c889e236d44d2b4cf197075b2642280ed68b5d1fa992d953fcbba349a6d276f36b49609753822b18f49e768b5a6b2e53f111b44024fa3d6cd059953ce44c2cdc5e223f844d66d79a7c00a737b09b2276466022018d8a11804785041ef00a839327923761cf2c81fd96d37a99ee91fc5eb002ec3628716fb0920187a85a46a4aa38f604b6ce9838c1dff826efa116397a905a392bc664844a0017595ac83196f99d498b2925e06e8b61e67c6eca819088178bdfac0777525a9008558fa108d1fc14159b7a575650b3509d4c0e328da6588eb6b2c85b4237f6abcf2f864393c4e22659dda9f1ba55fc3e42fc0477ab746958c0ef7208eb2424d1b326a7f73cc62332edbdd1d5d274037b2485f25e4d9776699c87192c4d20d591916e7788b41ebf7c0b5bc04ada138c217d2ea359e0b789644a042c77ba70007088ed2039ae746f2ce6a600576b914ffa229ef5cf23c7ad0f0cd7a9bf5749be3337f41f55e83d328a725cc00c3a02ccb0ca3ec5f49071440edd3395b6f5801ae08d93a7e8801e12d46a13de0ce6fefdc641027d635bb2430dfb92bf43c60859ff8cdd71ec369212a4f9a89d0447c3419b9bf1b9c9c7175c719ee91bb0899d1f8088db3b1bd21f7e09ec05dc35a3240f1b09d864113b9be514892cb6caa0d09bc34297589bea8a319984bb1e318b484631b71d0b52f6f95f65b9ef83aa7113eb614e40aaba6d80708fa9d4c49b092dbc8442b626a444094297abde00f1c2f9a1f0165bceff8b6147bc5401bed5d39a633d3d6f1d6d986a320e275b30046f0fba5ae98b63ce5c2b44866e52c1f98e0b92606e54a940ac2ddf28c9f3327fd1c2a61c889439a95d3d78f0c9759781b24a2ff09c5a2bc36090b4ac9cc1fa330a1f9105aeb6eff67b1482f9f0e80b36fd7ea9c5117b7bcfa5ab6dff5b0e19d4f2acd87683787348a9635015ef427aa5b32520c68a5957fc38b738a64f94875103c1f566c0e24c88a86ad991bdb6a9bc352d08d35bc4c3ec5c4cd7c709c19751cfebf1d4478bebd629ffe459644dac18d13f469dfc9538032a928f5f3f448f6bfceb80cb7ad28dc60bbba522a957edbfb247488e6bdcbee83ea550a4dcfe26342e7d42946e304283093612259b46fd367aee7e00eff5cd2b8b7caae7f9d662ee6b26e3c9a6088df2787b7dafcee746102134bed21394e28e6c6a8050509c17c0138548132773a3b12322228276b6f682cb8d899f0dc81390694311a9c977c0e3fc6fbf9ce79b8a4fdaae15ca2b2ad6e9fa0f84f2902106458f48e99d5e632052b60b31d886229cc9ae411435e257e74723eadba02801f28b286f72582485181e7206f47e561c2e7de66bb2c8a1ce17cc312872834e65a35cc3a2b121cca238aae51874358b2acf363acc1e8d8cd8c88d9cf07f664a8e6dee7314592614c30409c56809bb800e5b2dc2caa04a4a3ace41f4c05e6ed62d311d152831dd72d73df18fc634cf46cfcd503537cc8079ca49409344602a08a89c2f49217e1becef389e70027ae17527447c92138b48e2baae581d687b9e19232bc7d459e3625cb8bb93fe3106f8263fb6cb26d719d65f7e0e499cce0db6754f92b9866a3656e5db64f5cc1ff6cc800a4fc6ec069b9d6833f4c91ddf1c84033ee53313cc0fda9d7a4554e02a6e54b00057a6f36daed14fb60149f0ab2e50afb201b78b5258688072101bde7616872fe0a076818d48747e7203f034f947474c560cf8034a070b5289462803a2d30fb0aa4228a3516773aed0533eebcb5992d725db67998ec681c9b17004dec9ae1ca92f4fe0f608ff4ae0b9706a2c2ced31a66f2e52c8c18d7b9714d7fde96f1a65fa029c62cc23ad4d2c2bec6ee6f7a37a4bf4fe30d647997b8052cb4f49fe94d262bddd60992460095be4f9b700aa0b94f40209cda02cb4b75f34e82026cc6d266d9fc67b80def505d23bbd29b5834083ff0298ed48f6810681f88c50cea205fba6975dc22f7820a81bf140447b40d36eafc503f1cc0ef5e9fb3f00851883698e608037a202a27503b38191e795e15fa99353709a021b65af92d48e9668f61fd38cf72f06deaeb289fa2cfb76a1c450d8ca52a27f2c718de1af454f36b651516d1442508f9d6ff57656984b40853327d307fe92d2ff22c0ba688e5f5918f6b1ba781509bf18cbbbf28c8f34278dc740386ddd02832de6307da018b510db1fadc5dae4adaaf9caf892cc2e5e53b18b13460212337e0e1301e2911c692d160d71167cb05a403c5af09815cce0d45b8ca45f620e1296be0349154cf729cc56819ac0ab51629efa0d2c30922962bb4a65a46ce5e76402b454d305b60dfe58107ec9a7a41e02d0d447b6a35d86b6f832aaf4ef3e1c9e524ec749d1966b8bb31b28cf0510951e02658411a9c97d0d15d13f5187d6c5e89573d6d053fb4e8e6413fc712bfe96226242bb102fd8d1c98d5dd049150e3e4efa382af49e90a63c7ce73571db1cce518f8535cd7bc1cda2de04f7807307c7d3141b9ba68a925ed61326eb04c13344117c1131e0625b47e9c4a5179d7503f45cd55a1824c3cb1f5327ec810eba6b986b9f1b06db0b66491e23a1fae69be4225fc3af15b29f2aa1fda0ae56eaa961a8645a3f6671a046738419bc9f698bf37583e732e8c3e4fd18659a70e109a7bcc2766124c60db3e7422ae0a6af5527c65686ba90bcd8488f349b89c8bcb814ddb4960e549a02f50503b3eb02bd99c9121088635b6e3eba7746664812bb64a55caf4877c731c025f6cf4cad0bc6480b3bb7262386f20199f8a627a10e5bf0bbfbeac2cdcc2d188960cc2629507799c1a26835305231daa10b8611ed0f1259641f635c6cba75d2b36ea87a9c0e0e34f9254ae5ad5f4db6af7b72cb01ca17c6b7f79444c5cc4b31d1a7616e66bb0cee39d99811917c9201e353b538adbf426c6c1bed68c66a6f797483feee617557a3afd24b29fc1514759703106b4b8327823e7c7e6b10ca8b0c6a2e0090781e16763efdddcec44c2a32846e5368c261eb72a866abb4d08d3318c7e8d8a272c89473879b226315396f944461d66f8291ee18c9464a309fd131d9561e1129b615eca6b963c7493211bea523b9fe6663c9f9b2ee3886e1b0b6a4541069edefe46a514a23c49a1f3a22e9eddcc0aeb82b6924a7d6b2f1af2009f3f01538f3a959ed435bb3cb8dba6f0338f076ca6027b4482705550c649191aa14eedba81a1346ddf070aff53fdf1da55b3b8cd4a6d19ea3ded11b16fb2353c5afb0639b3db84d2cfbffb940570097ac41a3651b99955190333b891fea91e499748ce9a48519645c6449113521b500164092a5f78e2f0bcacdc5d6bd6e7c60047ee8973c41dc7a6ce531f3f1cbdf6e09dae5e0918f9c50e123bb46ff454820679d90ed4ce4f46f147b1621c39792ff1f0d7c3b82b5017a1029f39b31e89ed694dfcc7967cedda7e36800b4a506157e712ea873da9dc425630ddafc764cd377f042256307e8447df91a331191f169701e1f0b961a7cf3dc0e782d91f4718b3dcd847a8d8e096bf3d9a5447a5decec71a3c01eac6a9cf74486c2dcd9152ea8449fddd5520eee46103cac03e721f4ef1cb580648baf574e6470355741f88e798584d7aaf8e4b5f8b5b0298b1c3345bff0bbe2e6d1f220e4c5d0c40c5120aef92ac9295c990a92a59b4a5a0603ad165891d5583f07067c79d06c2565032bf6a4a598ef98ab6ba01dc13be0236fb71e720f43007d54c2c7353e5a6c38242206f286e5122476ba9a39b6ee5858903836493dc63cefb174ada9d92a4dde5c66c39e5ef88742c5412a4841f7ecc1e8612761df721179ef0475391b51027bd0c7e6b996d90e1e758d40616d2dfa0ec51f63a8b1b0f44a97b1713b715e5ba661b8352f42f27668eec5358086b28bef919c560262cc311179f09b3648943f5e98cc3614a66f71449d68184f21c234c2a94c8cc582d3c19cde8d5feff0266ff64811d9729c046f06527b8f932250572498ad1596d21975f2537bb62cb94ae1a68b92d9d3a2eeb6bdecb80a39d05159a2a5fc82cb18a21f68c1fd836539aa6e27648c9223c11104c785281ba66ad695e0011fa2fc6369413ff9581cbbf56909a3435b26c49b7586967a076a863634cfebb1259c122585895a74a78bfcaf0109d4a24f28d3e2401f50b947be82fca32f6141e1ea411e68ffa1a0e0fbe84eb683f2a046b5525243a2e572503ee6accded1cb02b5ded2234bbd465d9088f5897c94ca9123958ec5321cb472bac6f51407bedc106dd510365fa0cca4d165bd2ca7201f356a80cab04e80d25efed0c3eac801582d43c76fddd4b7700818bec44bd10661e1ebb6611d66a38ddd09d421e047a50ab702e1172d6474c18dd874475357c877422924ae12ff1058208dc4cd026869452732e517a63563a875fd6557fe6640d0fa572b9bf92482dc07e0d02f0185b1bfa174decc0b42efdc4fee8d6fbaf8f5e087a918176c1d74118d195e5729c20bf6dae6dfa53a73f348acfed797b3b57e760c4efdb8b9cf345ff29fd5a9df0b37178c91b2aa0e8aba3c84e015c92ebe5949e170d65978110ce5328c9421183248160a7212a6667c04fbc5f4cee99c081f8e6176b9e211f328334d5620de2913adbea6b5278639b53ba6a065b95b464e8dbef9da5642ed9be61b313faebc22085099bf7c5fc3ce04f221f3e2912a0230a603a238403124a20c45f7a1e26218e37e3954d54871afe706489087006e437eeb1ffd7c93dcfafedb89517c3ea07c48746c76deacdf8d68ecfb81b0b470367b0dab193d2c8bdfae15c0409f46cb06919a892e47481c6481d371f7d502e8e1cdea0fa61add56f0a77c7163a26be92b14113345b3830760dff17d16096d38fb1d221aa3e6f88e169b2d8d977d38b0c183fa42c6291d33da2dcde1aa43b4b8bf0204a0c2b15989d7bd8ecc00ac0eec39d9d01eba4c967a34d862a5cb690ff968ab4854aad47cc1e9c0edbcdc7762922f5e361af50ef12be9ee637b55e0a5197e0b7b40405226ff11561cb21b29af7b81200e6ec72567a8de5024350e85afde85912ea225cc413ba8c20e1a8d96b457c88cc579a4d60b9a09acf35fde77297542fd7b478d481eec97c217dfe5a992e53261cd4973e6c8e8f35ada0f8412a85e6142cfc76114ce97c889c7c622180edbe73b0208c0e4b768b12f5cb975de4a1d5add8f4e3c4bd1af9ed995b50336f88857605d9aafec5c9410c76b6a03108c8018ba160a12256b86dd3d58b8a0d8c87e05edcaa54aeeceaf5502bee74dc8d5bea1508c188985ad00688b9b877f18d42b9564b5470ab21ac545ad474cfd25c66f6e4e1456e38cd6397990ae630794e61fae9e882372b92c460a84430984d30c8b6d7834c339a6ae0b6595e8fc38059ea5168d0ead0042a0088091b49166e3710e31b77f8b17278c4bd389f88fcb06c9687c5174d0fcd1422bbe7a21780910684c4e24f3e2232bde520ae45f8e025fa4e1ead817ad1d5986121c2988857ba6d63612b7d96f6e1af6aea63b96c58cfc97742945bfd1a4257e53f71bfc6bdfc071e6fe3544fbf05e4e577189ffa62eab1b27aae46d1823bb9888d12a64b3322d3e2561c9e599082bc09552f51ef6079560fa4a35d39e2cdc696bf22ebf0df170b8f96d7709ad2f2228b0625230029f391f1e14bea7835c0847c886a5dca3ed458581882dad2d556838f2aeec99c8fc68c389ada6c1ea4b4a2a4f424b8f36949441d5eece13d3f5fae899af88959c7216a002763d56b50ab35af39faa1181d9c9e227a12317eb00b8752274a99396aad66348f5a44263f04642f195ebd90edb0311659a424b70a619913793d8c32c895c3a243c474e1f5d7f25c4a72702531f588641e2287f4c7910e8e3cd235f012693509afa0044708c97559f683df5526bcbf625a484be08c64daac443fb330e3b41d98cb1de01b20aa5750862e897e7e1011cca75fa8856616d58452c60c050574115826c528b9a565f252e7d01de1683aa06ecd40c956a5f95da87cd1cd420dcf74736a880b96f34289457e02f90eb4be442b2dbef01239eae5272a5388c502e871b830a3c813da719e1a64ff3708b9a9b5544c1d76b83cbdebf67607ec588b873479910f11cb239c62f14c44f711be6c4417a4d6194905aa58ed5a0eda29ca3e1c1ce04d581b99d58962752f74f9d9f97f34c2a677ffee8aac0501c1387b3dc22e1c7089201563e41eed19c6ea052ba02d44c30449b1ef9925638997d2b386118c4faf19d1b8d14076efbff7ce4b56143fbb8fd815ae6c16152c632dabed8195eec26e3fb3f6745c120326f7358740d16ce1d142cc915a2ebf8880c8780a960cdb940a82b2e03559876e3c69c81910e035ff854f2c592aab2a5892a546e9de4cedc5e41828896cb2b4935ebe89cc4e9fbabfd18b1a89f83662e6f1d1f3f641884bbc8508cdf45cbf1b0cf0c2d8557f0858a4613e82431f25eb122bf275bfb6c5942b1f059f9dc7ae100f3347de7c0c8f14dc46575cf16285f5fd9f489e4f950d85c3dc98205e64ab7461057a6629ad864a6e73eda74304f2e038174b666f81c0a033ad7460cb732313abe67cd6c12610623873a8954736ccd8cdfe29befa0f97330c1ff14280ddf57942c764decba34c2c5ff5227e165a9f4e1b2afd7b0e01a8bfc5cb6462c981ac4103b40e143c10384e090d4543060a2fa44778a9cf3a5088f6f70e80513648b81b30c729ae8fdce65307495bfd554af9ed73c2d066cb73c8698e21fd7c79ca29e9a419939188f4963fd24ca61f2f3daa1564804991ea9ce0f0e8296e689c1af4b629d662b156cd4e966a8a95f47c14967aae2ebe4f816f2a029f53739a9403e7fe1fa52418b6d388615f1ccd87244d9db24b8721f114a4662b22fea582545c223f2385a4aa34d68dc1e8562fb11ab59c8d3776ca780e2eeb96b58cf901bf898a16e750515763d56dd81da23f6494e919ce945895a919056f75171d7b888a789247f87af559e526b8bfc974130a4706d5e02e7204b79017c9689d96064cd10a497c1a9aef915036335e0c6dac5e841dc0290e76600ffdc2ec9eaf91814c570aaec6ec8eda4ee074d77e10c8a7ce7e8e6de521d20e1f9a0b3f4c0f83d98a08fe26b0f027d91503b19ccd8fc2bb0fe71109170c44ff2bc562833082ece3b0532cb8d001999d62d90a4b8f7974644bde432f93be2712b4f2022273c452d2d9245db329a3fe064c3255309d1e90f3dd6e59893f2dcaec37eb22a24d2e8acc8543cee929d0d24408f353887a6527b2e2fdd28f1d3dfe21288cc115ab81ec8a5d7ea9547e599ede01d3b6354aa9884e857481c1d8183a9aca8a205a6b1b4fa38f195f7d2f083ba78dc9bf1af8c63a00961a9055518f73dda79e4bc6f1f3d83cb10877e679121cd1b45cd6f363206b34fe4b48a0c16cc228a93476ba91fede887bd007be9135f944008075c4b91e257c77c623e4f61793608dbcdc3a02ce26c1ebbeddc8cae23e396294720426cc11394639562848d201def80c7cb0d81ea391fe102bc38d481cdb3f059d4a31750aa3934cc87e041d00c3d76f03197e6901b77b27712c90774fa207f9f64648aa48761567d07fc1b7baca474df19fbf52026ce1c28406b2d925f90fb4f658f4bb8cedb593e8ed236d24e2436589490bdc160cd8f360466fa2930311ea37be2c7cf4f78bd3e119b828a839cbef9bcaf9bce43b44c22fb148e551643e085b10675a60d8036aaf16fae6c9e40e8b852d5032f6196cc3ee3b1ce39d3fc28ab50904af519a36e81e293cdcc9fa25b8299d080f6c7116cae3caee977947def65801405376a645c149e58a0e416d1ca65c2ccca660a2d080d5a92c162e73ac0e7039a68b97d4db1ffda1d6da92906b98163ba30dec52351b05a165246f40d106b453eacdbacc7e445905e511dda185b9a26a33545e7c9115a90700849cd2c146d0897f7a382e3ec167ab0429a6991b093ec193c025fe0491f7ce6ca6fe2d859519192475cf38d8c8c7a5f6670b263932c9af2ecb67276e7a5218c633068f20de1275bd371bf31e3da12fded34080f3cf4bde96058268dd44338e80ebda5406546bab25b60f998a3253feaa400f48b94462884f872417c02ee7b285f9cc443a01e2ec867b577f536c2bf477857357f5a4bf0eec721f91c2293be9244dfad69ebac1f01899c01b802757b24dcafe08dd8d8e0ec7276f09d3d618916dea9ab09341d17ecb9cfc9ffa784dd1c9691d5edf04a66776b314a30850ab29911f7ae9021eb249aef8028b543b6f779967e4c895465bfeb8a94825af2848821a307e451f9726734ec22ce2731cfffb0c9a131f2428903c099a4ee6f46b85f96ca4619c678b4039467bb15a709bad946aec0bf51a813708357d5302cf8805276ac9d6cc419bffb2d8e910da1bc6edb18bdc20efb08cef0008dbb263e494221c503d2406502e94c0ec1813e11469abea57b49b9741258e79ab0e6883bc98b4612d34a296715c096592379c4d157edd06adc808acd8301d9b484990f362d96ea72b71723b2a27d2205f2269580b9dac410be54319e50de222b99b341abba1040b539762fc946852e7161b05b6869394ca3d3db788504de430c100d798e8ea7312eb16866c2c542401ee0c2d69892de3669ba28eb89f1c2893bc56553e2b4d1b2700c1557563e40283f59c27d3f2e86808825f13505e56b4c878009ed9426662342c2dca556074d35d5c50bb25a029c72e1433845b0477355425a058da2efb9652b9c4217f108a180df9573632488d0c9c200032de280e292015e91e28ddfa69a06a71e33a962c40d12e12306ba3edf4368796da8f3c9891fd56411e3592c5776000e521428314d48dc90635a3328b8916a51b939607081aea84231aebab2ec01217b15cad6426a3810b69f904127a802a93eb2402f10d838e0e0298332bda64c2cc0241966614a9f441424112bcb258bb4666d91443355c97414f4f2550ac62a0697d218108cf2b298ad96a6886928a6fe0c65cc806f6d4993bd42c8bcaf013cb8c3dde437abd48567f452a86f51c94ee1976315e4d359a4e5b6e1cef75af9c83d18f3aa639d0b227700973f24d08e7831df9b2db0b80b741137d4e9eea498f6ff980a9cc40a026c8ca31faf4e9031f9d796f79acc478a5ea44fce144e8b407cbc4cd51003c35be86088307758e325baa8bd5010a5cd2640f5ff92f03c5f0741bf5d4ea6f058e322f57114d6c518a82d0af0bce6c08747677e211fe7c149e52c19218872553870fc563a1ff2a020f769cdd4e2624807668bc738192a80f0436cafc442da1a5068a8d83803ef1b594227713c3f990b1429e088f2220117c74a1fa1d0a70b35ae4ea234ee8915cb8cdce94377d36a63d3ab83324b4b225d5c5c376ac9bb8a9f1893703b3f62298dc9bfd16c68a1f610f7b4e562f8415fd416187f665de670bf9075981c62a11f3afd9d554b0b3a76dc4cf66b33d7a6d5a178f5ed88cfc1ba4d46045dddb36d979c248919935a60264d229334a1091ef264534b932d55770189a282888709d051f0854009472800e6f218905b4cd13e5e8ffa1dddaedb3124b862085356f1359e033ea4281e9dac14363a8a65901f85203ed810b472a7fcd721428df6b9416d046fa0058a3aeefa3a79586edf4813d3b4fe7a3b012789f250f8198dd207d481748a8b9f287815da07755e05fa2f0e1761c31a08640ec8f471f0e3d2b414b8eb9b11ec3a16c14ec2de9823da9e2891425a48f270676b3b76efae065ef8efceca66c91b94640c74f4c82605fa436f59b20abfbaae22aa6eab97c509900be46c0fb8019798de7b13ef95653f14224288401d727679849dc21610b7be132dc2766f3fd1d01645ef692c5a856cdad9059e7846c25b4cb2e7a4c4477ab939106cad99ae8954543487323cb174ded8c872663f49af1384a259134486dfdbbcb596ee75bc5817e63225c743211d90c3c14ff719623f48431a2e061c0370159d83eea6a4cfd3881d1ac737769b0e94eefd92d7ec7ca0018cf38a050e759e5687bb4a32629c69310d2ca91f23fb98a359d5ab6b2c32e3357b56d8e58b984f9b910e1b713698a1e723291d9b81cb568a2dc4dd7646c1cbb8a8e113e952cecc89a3380a9a34cc0cf7f3fd8c0d5e69c3428dc22db887e0bc44fff97c5c72e9a10d9f9f5c407525d9ac21450c2767d3182bbc7a69b66666eb4010f38075576922effba2be6beade0c0c9bac33c3c1779e37745b55c2cf6d073a10f4747dc6200f33160add97b22056aba6e896681421c6ac5d2b3e68f40b26faf5845d83446052653872419b8650578f6cd37e3a3d7512b481b85755e6fa4c5128fa1cfdc1bd919b6e0f192701a0f405bcec3f8805ff25a44b80747b00f4d5edc380e5e8bc7d0d66341e364394276f3f4ab5ac98eaf5266ea7d27d31b78104e7c262ab62843dee47de487b4d0d5f48621f9af6e1acf02a0b2715d13f396484410a2c42e5c20841cfd7481547ba638ee91c5537e24680e5d328744bc9efc21fb9eeba46b397d66674a3ee5ab126c4f0f0175f28d898d9c2656534a34533755a495c8c745a2b68c74a9c450d39b00418517727b0583bd1efb8c876375ff3a244389db1adbcc56c7b0793ee977b1b11dfd11eec919702c1b9b8507a0140550fa14fc6f1bbfa338048148d50abf8da876a78a1215d6318808111fa23e3b5e84063fc7912c08d6d1bb42b98296cad1bfd584aeb915b4af7cc7ab8d852e29fdcd33fdd325a141936a50568e1a339113505f5789f02010155036354d46c03932c4ef0d396876fff4b3f59d26fb1e9a2e2e10b43596573c0ea0945b4226f9ba94cee16264f974562827b3a1131b9da4cd24e12e50aa7f76484fe1cf072183b4c703e89c20acbaaa604fb56be1b0e33b3f68c72db79a62359246150613de70fb981c2341499688037b7c02cb3b1d1ab7ccfccfb3744807ee4f55e8e6a353ac7480a15447e22ace49183a4e348bc6936039dc1c3b1d94b8c3fc3f4d419cad36a44d5e39c61d832dd6cc8cc02ca10b6c5e3468c9c80b5a5bd6a503129db41be90e3d225e2c2c82ede842e7752de66cc5235db46b319eaaf676069da615288ea310e2a0711dd3ba69a621233969a9128ab0d1d8fc64935879c246f8403ca735fb2c2444348f9742146809574a23d0002f3401c5b438519803c43888bcd17e530ee1d254a5ad83391da74da38da0b0da4803213262a00dca51c7ce761471a3dd94e07414a240239143738c58d0c065d53a4e1b4be38a03731079a56d229d8ee51c893b7c3a947310e7f0ad2d854d0e6e0e54871938cecd51768f564a2aa5a38885062a74394cc4454b3050529c58d09293444b7350db54f9890f060d06edc5100e1a2c64a48dd628af1d94e790fd1e8c158964d2a04c46d2b4d392eb80ea9899233b1c2409342124494aa3415339b52d1e6862f3d0f5dc3f7ca01cea0154cbd18d2104d03b8a5c681f2addd2d060912374f8688ce67869900c0a76dc08abb9e422b39a0ad1e5ec815834c5f85e5c7bb2ab236b52769af6de422282f66f213b42fb271919a1bd43ca8ea4d55b4e13a1c1b330f6082d9d646484f616511dfe1c0b1d886bef32d2e1e358ec20eef01f4759459a930b498a66cd0afa399abde875e039e8e5f8c341c111443a8ef5d394d29683d39152232861e0203293f65d310d98061d32124cebcb02e128eba2dd48bab525c2b6a3cb818243060e727394d5a15d722141d14e92cae52082a2e1b0a46f4033211969a00d9643876c872b8ed2eb28424c73212cda51d687765532c2466b945738b871a46b4209193988c8a0ed27c11def0e9d8e25ea20f9d31649db1c3870a4e198e970c9b19b83680e1f8772a4878ac211e31a950da5e875e0e6a8ebe0eb082547facc799e22111a2d4616708871f09b636487562e280eb6accdf6d0fbee4a644854b2dbb2019f9b62d4b4bb11feda9b0aa007a4855c33ce818b6ad9e8e0702992a63d95c3ef289ba6fd808c1cd086c58c1d2432683c64901cae0ede731842489641b90834ef02ba2fae705c40522a6e0ef2645e0237b4aa2ec9a50ac7f6ba9aa23d415ce9ae162bb9ae4cb4e2ad2e3d91d394256b712ecb8f26989eb92f1177f627747784cd64a61c2d581d1e85b2711ef9a322141ec2b661ff0dadad6d0b2d2d2d6d22a59449cad8060007fa064e9cfca895d47b4e99db8215fb5557a532852944650df6796dd08cf068645c1b361757e337578df97e6a4b7bd77ca508886f1f35328cfcf8fd7ca5e82b6bcd74b99bcee66a94ab51add3a8af747d3ba86a9832caf7f349a1f73565ca4b837617e4d1d2f086905ceb6d8ddcf41ae69047f0078cb990275372ba540f99e4f1d6bc095e3f5dab9963dbead668e24752cfb6d557c76e8de37b7bc59d784cbf9e9a3caa5f4f55bfde83d2ee2aa6ac5f1eb667ecac4dad3d5dbfa65a35edf6bdf7deee2ce391ba23b0f1d76bb79db4bfb147f65299f552f68ae174b95e0a9f288039761c34eca56e8fc7bc949d33d3b66de3346dab2e60628e1cb545db2e6732712f60f8769a76ef5679b45fee5a6b6fdb3b5da8cfc96d5e7b0d398c7639779e0b98e3ce7b0113b3da525b6c6ac7fcebd53a677b669ff55232d02995c7756f66db66486d74caf657dc6a9812bb2ef366346f66def65d71fb2b8e2278dba2edac028e03a73883a74b7bf516640cdb313f73cd371f2d8fcfd47028a594b6cf777b7777d7eca6d66a31d7b78f6dedfdb9d893010bfd2667ae75980701ec3be7b28fc76398879d67dfa53ae7bcc6b8d57c8b23e6792b96e0f531dcd6374735273850c70d2299524a29a52c6060eda93ddddd7555575547adb5c9a7d36f595a6baf0effe15ecaa22c1d99ff90692ad5d5b3af29db9aa9f12d3a3ec246f9dda41a102c29a56099044ac12f26aa419f46b5ab842b1727071365a7b5a20d55e0d330d748835fb467f292e3b0e22ade39d839e802cb11b3a525c572c444b5937698a8b1c787423e4fb7149eae78a240c955fc8592abf87515b1861b5cf10515378935acb88ad760f292f768008b0e7f41de9ce434e49cb3e0b090356625e463ed1ce4a49054435ad518156ff1fb8698a89e13e682a49a3183a56825cc660b75537873106a183ab2b8bec7fc235886809a3c520dcb11cff262e979c5705b147fbd434c9839514d55c26cb6602f85f83a16da1cf2680309df9e75f65ab7518e9a2b82b3d6cfa897f60064559ef9f209ae4020600d78d3a8de58305bda55c20d043261b61b26aa6f1a6653358a055b0fdb0a361f9b0a361eb61db69a2943f2f64d879a1a73555b0e1b0e1bcd76c394c9bc7d4bc166c3a69a32b7823536e3f6826fdf56bd8092b77359c5411507854412f651280a47607a2c1651112f93d9c2d52b26aa994c5497ee93ef4b846fbf3d9d428ba4f0f24c97f651789b841708378bf03a09af16d32508d3650beb8577a70bef92f062115e26d3e5be6e15d78a7b05c63ecc5768fc2ae16532ef16b3a53171de2d66e6713aafea65c31a7f5f3566dbee76b7bb61988f9baa272622b9aa4df5791879537d530759a3e67cc0b5cfea6d3265586b5af59ed974711ae4d1be48bfc7534f4783c6992ae694a8dbdb8a61d85e0a9439e63878270a648ef90b19b689596da95e2aa7280f2a52b1c11c37f5b990bd908939c41cb5058f9997a23e1d9b9897e226e6cd8cbebb5f5e344ff41e32f552a1f655a4d9367bfbac5b115f51063a651b45f0934e7914d81eb7b12e384fdd4c7dce6c4e5badf552b7f2a8d941c7e17b21bf2066b52595c29e6d6fc74629a59452da02c9d64cefeeeec66ac5a9383fbdd65a2b7ecec7c75aae6ffae65eeca52cc618f35215c3c4cc4bb50ddd076d1b31ce9c13b1678f3107761e8fcec8cfd478eb23ea5133ccd4f8cc676abc155335700d4c1c2dcf74b9e268797e3ad71805b607d71d0da7a2dfd6a9e85d8d9f408db95996b3c954bdfa785557cc3424f4aa5e5a8bf6ab51d4cbe0b853662a8531b3a59d143260b6b4672f8dea03581be2e781bf3a0316a08029037abb0a53267b7b02a60cc8db65a64cc8db11306544de9e63ca8cbc3d06260514a64ce7ed07304001a64c8d99407d993219a9493e4e271640f207c322352f456a7234a09441251f692e0a47905ff3503802d36b62919298d516d04c813a47ef7d12e9a94a0a13c077240a714f5df2073e752f57fa1d758c654fb1fec7f762ecab5e0a49e1acd4459d79c1b980b9f002163331ab2d531e3ced98dfe20d224fb9ec6ba17a837386d4f6d553db3707d2293fbdd4563b4441f7a8dd411aca13ba83e93412499e7ad7c4902682d82672c872cc78ea4be09c071ab85c3f5d2e9c1fe94fd71157901f33d7caa5fad166f7a7eb89253c75fbc4cf53a75038d7c19de0f9267c389193e11cd9734ee4fc7439a15304d7766c0914635c848b7b6fc6451318639c598c31c64584b84d62d0408e008ad284de20c306d6af16b401428821248822a06471c3141a701bd0a10a1510171141a879e949c20b6a504345cd0f46f80c4b041353fc40085608114607821802902ec81f2e40c2c41901c06614a1f75ef0e7de8b8d716b3b3e42b901c98e709778d2e5f800944491cb82174c8cd0c2c6860a1b9d27c8b8019227acf8420739433eea6384626170f8032c6badb59696657e28232da38c9462caba432eebb22eeb7ab6b451385b6ab6cc6c89d912dbf216a02b404743030c31c0916f3f801114ba03a0d0d170bc49be3d8556a3528081a94d61aebf1a8694f50be56e327536a17e6cd626de57086ce8c57d75dd684483060e1c3f5ed60927cc15fafb7ed598bbd32ded4e784a293fde5ff1bebcc834d33eef71064a6e36d733ab1da5e258c30f47f02027c35961e6e8bc2866c4535fe185cc51e2380105155844324ef274d46e721a384e404185b2d6601641da212dbaba42c6979f38983d380897143e7e1e79ea199ba2a790c153cfd9142fc0703897a2025ae42fb28e941f51404822a3a05344876c4521240a203a3701e8c10a32ac580110543d4c307a7e28814209428070850b4465165cec409902c6cea8c80f3a7c411e2903079b2f7274231a5420c99c1024a200c2915072921c854d143ea0900245942372567203051250348142e74754879366a9192ec8a7a2a935fd42e1fba77ffaa77f502ff5488dd95139a979b28272f3ed49698e66f35c6e449dd5965ee5b17093d22deddb4f1279bce526a56c98280d63c54fa5c39d7654bf9eaab5a646a3ee66ad745a3aeb74c16ac56ece59a6994cb525c3f5f2b8b5e67cbda6e657af298f47fbccf4eaa959316f26d3be2b9e7868356c43608c611c87711837a2b05fce8f28fd0e32278e9877d238d738cf44cc396ef36ece397f28a5943686797777d77bf3b5561f1c6b2f86f9bd78b4359ce84970a127f179e26986f73ecffe13c71940ffbc7a3c40ccf3987f18e789fdf39863238f6195e7b11a5e1f436d7d756bc3caad3a26a3611299f8014cfef89442e3c326ab41e6919ff3060f816fb091fa4385c16c69c7434c98fa63a2daebaa513f541ad419d420154895418d41bda930c0373506b7ea0baa0baa4dfd517da82da8ab29136ae19b3aa412f9f6caea0594401924dd1f89b096611bf7795d09b75a1f0265f0492311d6326ce33eaf0b8132481a89701602757f0643fa9fd7719b966125fcaf52c2174aa641d9e4a82bb28ab7c78dc823aa31b91521e7ae620a984cb6ebea68948d46378864db299bb213a0c1c1625d073aa97936d5eda572d6a646bbda8b31edbb58142d121c4e92694da3ac8f4679923cd69ab797a751d8c77e959452ca0256fa90ddddd6db87acb5fa906fadc559fdbdd7d3512b1e274f751ee4acab271ed95f9fe131d7c471061d378864ead34bd16ec6c5faf4aa679838b63843faeb35a5bfa2784348ae354fbd318bc3ce81ae441eed578c6bed6a9dad610d6723af3ade71afadf69a4cb5653ac65ec5f8e2eb94729857bd56eca5ae7787311cd229d739b0052dfb9a6954fbaccfb712c05a0ddf3c27eb3088378864dad5fae528c6a173cea9d771188661d8e9facd1c7b86c2fc524a296dc173b9babbd65aaba5d6da8b4371eec5b4a60663e3e4e1c1c9d6b1c538736d86c7beb9b6913ef31912e9499f8938fcc130adbb21b72cfdec397be6e9bdd331f304d2b3dc1092fdc55187754bbbda8bb14cdbb8cefbc00c0a8946a4928a698565d471c5d374a14e63bad01a26d8982ed4dbaf4e7677b213d31354ce8f277c19a57f2e6945be356e890537db93e4f912454b08f50c045100f9e98a424814514011048a1b286aa050b59252894f55c2a3e46595904a70ae12234a80c04a6e1e6b219c13a1d3d211e26ba84e91a7de2f1a9ac862b8b2c83f5d4a6af0a60521ff2087919ff8b9614736b94b8a1f5140c05ac9074aac56d05282111d6e78f8026767065d1cc1a601180f301b52b8d94f8e1c11e0a1073ea4944f70d1a447ab872a8cc0c5164474e881080e53e5f091c34796a31bd1a8024fc93b19fbe97a624890279e48c1530f38a1435f723891836198cdd18d68389104a7dc8f19272391ade684cf8f2820bc7263d70f4ad70f543e860d2532f604851e644cc7081927b141451eb30d2c728dc95896655996614e46ce26a73f5d4ef8f8d34f9713367022c88fa8ab83cfc067e0331001d682b33e27a5606759db99a26ee7ec212b4cb197bd35b364b83a4b86e7aaf15908f25c350614f25ca0d2824aebee23a8d44a2d4aa36cf33c75dc3b184fef3cf58c76d75a33abdd0d73f66e98c3baccc3baccd3be0dcc36e7da346bdf0672b90359ea5cee405ee8138dec68549b8ebad090234f5d64242779eaa4d6db9f28527ea2344dab4a578e8e2b67e745d21b6a4383d01b6a438750165df593ea339f442935904385a7d75af12545bbabbdb736bd5dedc517e3da1477f662acc358a6659a569b6a58a6691bd775b569c7751bd775de0782b52938f381331914028542b56948c54b894c2b5e8ac4722a9d4eb5e9a9037933d443dd0c455e8afeec44de0cfd19924aa452a9362d65df898776c595ec3bcdf0d6338c69fd4618424fa75bda3d97e76a54ebb8406548d530e305955140a0db793aacadb5ba19b9d62ca5f265a33a8ac7237c2b6a3fa50ee4b940656dc1c4124b2bcbae9c2e6dc99c8ee91d9a4a23454a942850a07435abbe215b38a19e504fa827d413ea09f5b068666838c8b6a0657cbb46c94de7dbb366c6b7831a0ebe9d665b90ae174f8f0f49922449ae56abd5cad4d5e856b215a6040ea395647495adbefdc394f8f6150c87419faee80d65b57048922449f24f346ad430c1041b363cb461589b86a6c742be7728367bb0107c77a8fb64659e3f2695a344658d79c94651292a4751292abf47a3d168341a8da85371a4f238f8588b80c797b7e2c561c4aa312f9545b65c382f72f2b8be9db3d1955e658d5851893e32f57145f5bdf2ba00111de4255a6e030ec03852861050e429f219998a335e39cff2d3f5d2e2b5635bb4a7ebaa3669cb4b59a20f799c2fd107d18731908004243c37f6e8a9ab264bca9aaf90860781518d134b7f23094c605931d56f2c810d934a8964bfd1044e1a8942a0fb8d3584a00c7e5e87bff10422f68d2878ee86987dd4ad0f68d053b3d4156bbae20d21d98a5374524f9a37f509b094a48a53af3d53a6e494f499c857e73aef03332894f978b5b03d4403872722627c755aca62d0f07c04e57cf55601e59c3e1f433fbe7a35fd6001ddae8484b092fde42ce1751ae128426202f9c8b1b01a9e7d8d6b43e9698423c75279eaa2ed355d469b6aba3894cd49ce124e20a4ace9427d25a4e574a16e0a9b0c6b29ac3da3d7b855f1d543218802f1148cb195186b0bc6cac553e7bada96865d063a450b39d66bca681ac7faea1c8b623b3ad10d0a8e8a9e1249e3b2bc36542e7aa60ba5710a593a5cc15d87269567e93a2c3d9216af6ab3816aca785ec5e95e8d9fceb5603bb15e1bbed674a9b5822a2ff2381abda68ce735f3c290e6234bc9c29a2e95c47a9f3cb294acaf6e833565ae872c2315e9bb703e076e2ce5b300f1d547af4d355a24a4ab9a2e36386a6bb88963b4346cabe9a9a759baae34d9d654f655f9a6acd69429fd0d21d98e747a8bf4d3b696781581820a3347c7b628d67aea2b948de3041454a83d2f1c8cda4d250d1caf9b17cdaad6e04893768810e5156284b27010af9b97cdeb45f34a0115673c6582f32ebae8a191a9f0e247540cf6d9f4b39f5131a62dd5c3246e0b63e7aab574ce7befbdd3f68b55826402094f7664934fb133451354ec8c2a067d9d3d35ad8289aa5e6d98305dd3a8eab471a4b4a21881c27a526bfc05726faecff5b93ed7e7fa5c9f86b9ab4655980baade2a9830d88f89aa5eb155a3aa57eca6b654cfb29c4d26c76ebe8e4d86e00583dc55c38031f894782cefa6f3a9822564e4fa843a0495d88fd0106cd5302120b01b8cb4c170b016c6baa28781afe8d1ce078817e46f1ac68bc1eca0d8ac3c1f1e0d567552ba283e350614a55baa83a49434efe36b0dd97cada1205f7dc4abaf232682dc8a6c43f066ba549faeede62b1699faf55235deb6a60bad235697c38dfd7dbb6ba8835cbd7a33a8a7f6b648c599ed7fdf9e0e19aeb70c2c2a95eaa748037512fe10d869edd7e28987edc05317fa07d7026ba145596aa1850c740a0e4e9c3869e7bada7aadc5f75e8c31c63c79ece6294b92e4c994056d663709f77a8d9ac5128548105dadf29c3de0f7d39d49bf1ac61b6778bbd364e2a0b7a3f1d4de98515bdc19ebc62e8f4cd85e7b2faeb35e4e4775ec45a0c75faee3e8b598184edb2ded214d1e47188b79bb945e4f47d5aa9d3276ba509f3fadd665de0c27ea6cc3d846cdec8722e4313f3182270911458cd16a653332933cc50b68b49fae2978b0c4cd76d0830d4d58af2692d0c14a0a1e2834410871fd644ba8347a0425c0780ccbd18d6848e1f326fc48c1bd68b3baaca4a5ab3b7b4e3c7a7c082587507208254f2a9e785c289c8ab6adf6dadbd55e8c590cab4db19f288dead14af9c9c2f1d25c95bd1663d766561bad2b47c7a585a3dd79615866b5ed5a8ee39ce3c2d1de589b20f6860b473bc4b238aeb3de772de8f3048a4f947245969f6bcdb783687ca4688fd5e6db477545b224526d4aeac68a83c4b7374ea39afee65cedba70ac39df9bd79eb658e33c30342aad9cc211c8a23a73026548c7bcc4f491248dc44bce8bce4f6f168dd2311a90d2d334eda3a76dbaa4391d43339dbc6372f2507e663e9dda740c25491a84a443487a844cc2818ea119941cc52485e6a7d395061a06bb13df31e9e499334f701c28744cb36acbd65dd7755de763967dcc6fa2d5b63850063faf721a89cc2149921cad6c56abd54a547b425babd56aa954342a954a7542179aa081d943aebaaeebbaeee5e5f52f2f5cedd1c0cf1b6995139139642539920cad1a06bb57392d0375ad564dd26ab55a2d9700e008454f57abd56a45721cc7719c06401fb3cf9b3dddeca9b347ababccc1cfeb2a28d332994392a44682dcca66b55aad56f549eda93db5a7f60c40002da1a7244992a4a6699aa6ad56abd52a6b12f3ba0a6265a69139244992e4ca66b55aad560470013d2d4b5496655996596badb594f4c8ce49122bb17b5de54ef80f67762373489224c9978e009dbf32abb2582c3104f6c71b4b8eb0ddda61851d988d1fe4d1b40406347687c95161fcf89279413f278d2da99914965be21ef174090604902cd396c0e0290ba836060e1c3539d4971c2f4b5435dd8d301b3e59dce9e2061c3c582d4737a2b1a4871f7190988725354fb39fae25aa9d72c7e7a9dde9e26f18e286bac28e9d2076d8f161b5e3230793c9513b48ec60b1a3f3e30ba662a2c3c4c94f9186a63e0130bb2e634f87b5b6da1a765d96cdd634aaddef0a40076d14f574c840cf58c294a7c13a7d0f0224cdd381b9e6cd08c0c6b6d5cd7ed7376f46006f730d4d782c9ca8b79e8559b734c67076457bfa1b70b34f08f180826cd03318f2d38585cd8ff627162df8eca70b8b1d96b0b0a05962c6929fa74170e18f2c9ad45a6ba59d4558c3a44958c3e40a293f809fae2b74ac73190bbd8f6f08c9d745c0fa713a193de0c411ea90e9b3409fbeae5059515a31e4b916a86bf44355e4252fad38c947a6cf3bee0b3de742907a6785cd77ae62054d1551be7a6653858faf6e6b05c53106d0b1d742e7dfe7dce7a07f0e3a97dd0b47904f7fc08a7b5f987d7a12a0bfe29f7fceb965c1f3cebfcfb1c702e7e009e49d389e5274ca679f0f8ae30924ced0299fc5712cc1eb3b9f5f82d783fe8d20c7d9afb783fe8a7be20d21b91363b82dac78166158714f8441c53b5fa141610cb7357e2bce892a3edd14560f02d43b6f8f878a681b55124792381b3572dba8110b221644beb9281c51f01be8f5376761fcbcd3c073f5371646d03f91389ee037dfc2fe0df44fe4c4f13a0df5b7d136aa739086fa2131e437248ef437071d1447ee86a083f537bf34d0df5259a8433e41803ee8f441ef4418bcc5130fea9d6fcf5d81c49ff0d375c5ea61e05c730e9c9c6b8e01ea9aab8a27af3997c5b1c767d00d21f973d0f7859e77a13602faa05b8f473fe8d4830075d03571e41cf4f0736e7a29eaa56698bd769ec571850a768e7d0e869e8fb7f59eff27c2c0b9c7899acf2ccc8f4dc7e15882d755fd08e8536ffdbcd14385764d300cc330cc4443b3d75e7bad268a59b7439e9f3141cab21b8eb505f2b11ea1c106a71a64ac3663f561c3c74a6364c5555ec41b0e58a1e4a18fd9bbf852636e8815479cb5c5d5a886a951649909e298bf86389a6888a39fc4111586d5c35a71ea2b8a0953af98289c107fbd62c294bcbd32993059cc52c94f278ad1136dd4fd59db7e7d555a4b61fdfa2a85fdf5550ae95726738ba9c29c0518f3f7f40214a042c839fc9dbc540ab13f89932524f94a4822f98aaba890482a24d139daed704dd7744d97f60aeb4e58795642ccba21977cf370e4a2f69530f4e10d9eaf84209c95307f7843067d25043fbc218f936725fc3ebc21937cac2a9ebd8a38cef02aeebd29541167a34ae2d83f4fba3e0aabdfb18ef1b22ddb73579764bd86c4505b2422890f5f2b7e99d060123e30da6f0ba068505f1d85ec91e0abd2cf1eda44dbb66ddbb665079d037bc8f4b3afd0f9eb4421954ad698d9e226e6903ead478604b1f1684caefd23baa8a703243f67d9d489a329d7fae36aa9bce695ac64252b59c9b192df9d268237de833ce2b29c321a119fdd120443742bb9896364e9f9c61c3b46223f0b7d9041505b8f9dcb32bfe10cf6ccbfef8e3dfe9ac0c85f1f4d50e4afc86d610b8234aa37d6b753a7e276335db24bd62ccb7992a38d1f2f09eab297bd2ff5087ce674ace1f55916b36d87f742101921a045c03d9e0de62b7416e25093dfdcf24c19ea9b4f236ce45b263f5e721a81d4a4d42ac27b4a664b7b1564138f0b9f6f1f33d173b1208fdb0d88d4a4556a99f05404fdacf2187ad571bb09bdbeddbb4e93f9c87de4af387a363f7f7ddc6eb2d83f8daaadbf1d4b0f57440d3549ed61737b2061c88f5d17827005397284ab2ccb810347c8026b719ca00c1e96305132410636c48f246ed073b3844a0545f4102288223c41c511677c814397bca818c3e60a22a89081103d7e40224508248030c2135ed01d8061848f3194c0c2228732565edfded16a6fbd18b35e8a647d5a8c65dac5e5c5326dc3a21566ad889c9e86691bd7919ef5bcdad46b655a4729a5745a4a31d634158d8f6fef6a5436dffead1ad556d5a8f6164e1224705a39642b45fa8b613ea12750423e34d43343514265a887ae6e6c82dcac86b05622972847a4237289482bda11bd44a21f51149114d18fa8a451894a3b6977add6729ac53495cefbaed309173fbdf6d0215af073a365b4123fbdc929a3b51230ca2993dd00f1139b26242a4250f951ca218941223262e27d3b562d154d48be1dfba822846fbf55e5c777e66329e7dbed4612a392887c7be3976cc4e4dbb32c6793a95fad56abd56aa9542a954a9541a1906844c2308d892d8d47f29d85907f80399f181f91cb350b84240b21fff876dc9f181f91661969e1902e922449925cb55aad56ab452a4d152f451f9b56ecca4a6dba82e7db67e2d57447705e7040ec567a4cbebd7a35dfdedd11dfce79c101297f5ad5019cb7a8a42db606390c11d10c0010245316000028180e0984424112c3619a26d30314000b6d8044645e389709a3a12889811cc318c38c21c0100000010246866caa50009203f840a43a2e5418d123764ebb2ed6133b44e4069e1ecb4d2cbcba1a98c13213f2d0e1e0a4123c8e7cb7e613c036657988f5ee3b0d9168dc801884fca1092d6a72a36b5111cab34c8c28981c3045eadb07cde1631d62a5daaccca6b24ccd55816d8ecd38ca29e9dc089b303d23423224c1f244f561049e8874fbdddff2671c78b284b1b9ed0e6e568d40fa113d670a5720f76ebf4a6a741395806438a8576435e8324b4ae8c8669612035684eb75f86cb3d1b159a4240e2e219e5f5bccfe183c4cee0bdaa8354a817c93398b8aaf6d7da078a492d42150342a4e7203d425bc44d235ca20060220a00375d1aa854340bb8aa125345c7c75f5dd3af9a95edee625e085ac966e8c4d61f4ea826f1b11979b9e502a653999f704b1f0a76bf63b38e77f822c81ae263050674ac830240b4360281421ddfb736d0cb6c53a46936df812caff7b4f3da30bd5d4e628e062eecf20a5eac19555ac46d697b82d2d2890a2dcd0c85f5e3947016f587a0eb46b36583b3e5c86bb39efdf3f69c99d971e329b8c29f8d8feb77f31c2cdd3bccef42fb904333d69d94132af247da393586567246a869bce14bf4015dc72f367b32f6f29a5c54b4c847b9b8e14d38440ac6c87e0f70d3877930a260be9727e4397d7953912694d013a3e6f9f371426088b5f411200bdeb0287d130f6f0869952f5126bae5e2a9cd64b5eb0b041212ad6bf1a82e427e45acf2e019761d895363f4262980d7fbee1fb1e2d5554134d239244636187c04cbf583b858d67a1085e3df07b018f4308e8188c8672f88e8bab6f1c038cb3ad924efda414a328a2ae83ea17dae5441110953073375dd08f8235e1c0e8b59acab5957966c28b7a7c98316b8b4a0a66980db2f9f18f322c9f3d9beaa76c428fc38d5531da4fc6b051caca152b9bba39938c06f5eeeb74f09d20348cffe5e78b37201328f41f40330b7ce82f50cc223d32fb7f60dcc0b50595e034591822090afb4c660a7842c83ae618fa1234d32960ee50628c4bcdd0393672f43f013ec8461b248b579cb4cc3da8f055fea791d117f4421decb11d53227695da80cac8c10c67244e1046e87efdd48304a49020f3b2ae7ab51c45e5443dc177b0f1050490ef10404b182f77abd30b8c6d92302bbff33f76c703c073dd1350ed34c7e635ea9602fa2ea537c4b1f387aa087e38df2b1c9352f4971cf5b0e40504444cc7c1d112ffae17de1665b2a07ec1ed4452ca5f32067a11f5ee6689cf98ac43daec4fe1a4a0573e28dcd40bb8b6080a728e1ab5641d64bba34895ce6d9542c7e62f080df78d1c30f5bc30d9957785aa091d81b679569226e6464f5e5f6930625e35d8073a7381f72657c547d6d6957b8a86a02625ccad4184064c17e72d2a7d93a12839ac2507aae8948a12b674c6ae9af30a974d06a01a98e946e99eb349af08fd9a8092e0ab6edb11c695218f683ff547b9c542e21d8aae32116973aa83bbbd896ae671452a2380280e371a37fdd5359ed664d0535df89f16abd28ce5ed8ce594c54e706a942f10de3ae421a26828fa0a236a39dd0fdffaf0066bcc0d9cf787417c13be5e0afa90ddec76a33953f911b703af8b272ade478d53e9365d2eaa442fad3469c07cd159ac8273b77d66641fdd112c4edeb9402527ab8fb708925fb8746d6688ca5396a8a4615b711bdbb0617525a683a2dc26f4b28d2433b4d0206a9a1c991b16ba8461768f9946c58f8b64ddea956564347e2ee9146162049abe528e154587967fc5dd90d6563e810418b12cbcd7faf268897a2091f5311c30dd00bc5be818af3f1ad943940c47ed31ad5089a9b97f52b8bfd40359a89cfd91bb91b3a8e306341854762d412cc30bee39f1da03c39fc041a325149ebb20853af3ef839e8a04fb99edd3a44e91d1928ef3f80b5ec7aa1a273fa960349b52c1674a43c9ff43fc5e39ce2edc44347faa1b61845924a4c0d18890d2670294a10e1f8015a33bc7dd20acc446d6e8d989ce4c2c7794d2eeca2838001f8b1e87f8bba56e929be94db202df243f0faf076d54ec71c70ff7e2a8c7095a5e11d6d07fcbab06d562076828dc0fa236a4265f40c2ff5732438193cc2c649819ff43b2ad94d2a576c51d26f032618cecf2d0eb51b064294ead26c4da83af18436e7910c442d6da530ed698f6887c518bd929424989b4dad1c9c4c1fec45820224e1b7168dc810a0d23504000693c321d9eb8943e73f0e52d02f9509b88cdff7326e034b5814cbe89bbb77c96d834b209f81bc50298f14d2b249779b2dea154469364b36624556b8293e0f342dde97fac0fdfefad666d78b885a8d25a7ad0b5a90e794f2c41f4a732f005e120098f3587621b127ff0daa69a930fab2606c4adb08958ee32c8a029c51f0d6ec53c55ca3b7731966ee2da938e4ca1935602b8b9fe4e349fe4fad048a07341a1842361c6db9dbb1e93490a0c77d9285e01f40b9d1f20ad041697467c099325c102d5a25d5b100bf3f4738a400638c18cb90b1eaa62eb4b60e209f843daad01a21bf7f6501ae4e8213061644fb4beed44db704fa9dfb124c69650d89a1a5ec4bb06b993eaf99764cb58b045c484c3d84706d03e02998a56d448987f4045358d2c1085f764512d222e26cd4c97e7c758592532825aa8203bc48786b0c6f093d186d2700aeb06d2e3a524a42ab11d3f810f7998ea5b0e92cd3b2241135754025fc74309000acce0d7737d5cb7884c3e779689647ae97c781eccabeb8f0ca3da243e70b3cfaaae87d1604a2972524a6f269795844a3ada47bd9f60d511e2b8c56cc0d94ff322e352eb640d072b17db1d8c43145656a9cf0f83d6f9e5ef8530404c3535b5f72b5c0281e17e2625a3aaad1e51eb81874b58407221a8547c8701178f5779927416d4c60da5019cd6ed397d4253a2749c4b5d306d372526301cb03871a12d955354f81163753d4a352ee3fd1ad53876a9214335b9b0dda1c10b2ffe10b10a6be79af58dd5c8da9c535948970e2f48771025421ae691e2b0847ebf2548cd9fd9205e633613bee968f475665b76288d9a51cd817d72671660944bb2e21565fb3dfe23ea6912821445f9904a0b7a2697f844f0cfa160ce3d79aaec2eb03b2b9d026412da0290fcc6585c5f0fa280b13d0729befcc39fa97984f223cbab062ad812eb963d3b8b41c39f19b4bea3f92e20195abe7720c1298be58da6081df3da9aac6c05341dd3c8d359f0dc14dc1347e96d0cee4bf6b19c27b9b82294d0a2cac3230685063707860a93975ba1e9712d15495d1a8f3a6516dde3f8a87465529349cf97ec8c93be7728a0a54495684718ec99982d4d8fdf980cd0d462186290d2b9164eeb126390f73bb1bb6e98507871d39369183ccc92cd88b96de6a2d72e80a04bb830e058fcb2da0433309c8fe10c96e0ca14079a5e7eb2a12ce1365264c3b5a91fe2f58bf9dab035d18256f0291e3b4fe7c59897067f79cc14a18837fcd582d14a2ef22346824b22379f26dfeaa4086461e82bb72aa888c80369cda88fb79a5caa83a590d545052b9273558672a61973f178bcc9f7f7044d673a8935d373dc48bafe362193e56d1b7432fae1a0b90d2404d7638d224561911d59b1ce53cb8464ed61d1034307d51e0e650c2deab49fb6242535f3c7cc4af33e1e8aca2f7d5bd6a6558a4616e436f1c8a1e01a6a721d456a3157e597f824a3b864f591c4b8bdb7ad2f53497aef0d113a0f0a8d4eab27731ebc51571dc62c7bd2c4ad18e607b3da2d6601341e487e047605231075f22e76c28315aeb86ba18a636abcefe41ef028d2409c438c96e0bd055ed545ee709ad6da97967cc01052d199ec00639d85c8b4b7f1c06af27536a5992ae33553cfaf6a08e2e9f0e0397a93217397076f273a873befc11b9aacc304ed1c909822ad5e1fd9b85ef120cf01156c5fff2318237811ac507aaae086f1fa1dc102e20f11a58c143bee8cd52d5d777a920420bd105f0bce75196d66074fe95a5558801c58dd9245b7252209b280cae0fbb59b74d31f622d34e4fd0247a6e86e55681203489e49b25bc4c1860a7f7a7dbda1282ef3607d909bf52d5d18e35dc18c5ac762beca6fb55486de05298c23a1bf4514b01dd4617fda19c6dba4298c84b76e0ddd022abf2f39b2bac505637e78626f0dc6aff58533e5933684c3e50416d032818a5899158264fd4c0f8b8548195ed0621bd3b9adca51447f3fb688f6072bd5ac6f4116d418da63b0de90a21b5f8d8c0259e2687adf9d224e85466d8033f469c030a60fe05132e06650c14a0938342d71047a035369057571421dacd888c3899bf878ba672b12f8966ee4b281f6f711eff2330ce51a76020fce52438e07e96feddee56b81f596d05827d1397138df4b403cd26368c5050832a0d5f2ebde7ee567d66b982b95539de4792386072f60cd25f4a1c68e62ca89f37b3b8f2ea2bb08d7eb0697ff38c98895b14ed48c28b8a2bfa78b1632d0b2a678824d4f7c1aa13ee29d3d4059a9905b890986ea3077cabe26ae22bf4e4198b8b75b33684616d1bddf20a86a93bb89909792104d98880608a955fd7c114da7d16c49994664065281ae3f1d1fdd77add20e97b72a819e8688018f58ef03e2e100bd69a892f6c66a942e954bd20818b3c3a82ecfb74d80ed9aa3070544ec53228a272e95b960b2ce14b71bcc6215a78e8211f3b71609e86f6a0628e64acfef37fda23907c8699de4e4548a55ee18659a7a810598a8b279a21e883a731a636c24b82ed42d9b697d1c92d07e2f10923a7ef0e0775884c850af59c82f3923c69d063e47d43ca0a10ffe9ea348320521db4173227069c8a34db2d6229f08d2373d0de4ce1af1d4c50a8650e5ec2a8937ac26f42aa410d6a409a8ffd546ad09a3c62ed3c4d3596c8bba4047237f4ebc8ec52665038d981b176226759c5f14b8b91510db9ed87a629393fa5eb79eb4ce97495264f677158c401ef1040fd5f9993a6570ed00d285f022ab282a136352317a445cb46a18925a5129711746a85bc940b9a6a2acc6f3e646f67ea527ce2e3f717f23b9223ab7c1c1610778f2a8504139af8a6c609efa218b4c4f72b260ff34012dc959657b81aa83f70d4ede39307999e473a9b74657a28b41d36aded93ab09f9a97c4987a3ba1a2d23130b3ae03e20d83564ae849d54c2e0490da92838528547cb37987c244b40a4e3af171bcd844068cdb2785efc1e492f3446b3d05d3b7938480af95e0741f0d63cd19a2db471b523460549cc0649c6e0d890b74c9ea5b847d373ef0f1ff7802b9ac4013a00abde28350ce364c9679dc9b91a78d94ab1eea988420733ffc80b4ebf74e0cb700c6a9a7626f7f10a23f0a4da181c7c6a06e22f5308356677e7b226da73b99456ceb829824fa663ac0b928768d0e2aa55f164e3beec43bd09ccb9d82b8c67298d978f4707c0461580f2384ba8530e6be65a05b5f1f8e91ffc1be2dfbe9f0703752b5175b747aae90f429360a3d2056632e33c9a0dd3a75cb810da755bd87ad1cf947e0599726ea2ea4104c03cdb2fc7203cfe8ab909c87a4acfe1808b16990fd049a8addc1bc96fae0dacbe4fdf57a52ad4753baa7c3069ff85af02c0f4af7a3abc7eac5006814a4430c794a76e4a6afbd64ef258bf4c6e084319c3ff01a898106d93bb264ce6f24718792823011f6e7f6c678580b80c4b3a4cb81254f1396d71778e6101e85d40d045493367e6487efad55d3c3f8606567198209cd30c4ff16641f030cd9b1678bf1139d1136750fd9214e2afa815a0b900f8b292a84ced49da7194ae9fea5cde6ec9a131dd21910978936ffc60b0ace15f2f0242acc776f99d2042348ce66e9f9dc969275fa3966d5c30132ac1aebe3445ae2a90bd019038c2a0f04e538741a03b476795c50f6688b9631251fbf76add1f2e3074197d1a5b79f78e66f7e3843a6cbc59ff2be5e82e1e2b0fef131691a2d831070494d0325770b3319a4d434edbc709088fe6827e4416d82927d1a7f40691a08385dbb323d15f43ac99d249c11d41bfa63a6f6799fa57d9aef2d56793c26ba01ef8b678ed1f6ee6d09649d770eae1d60d97248996e37b99431dd1954866ed9d2594b8f7cb8f7faa809abc47ec4a12f780a8119cdf4843ec07435c71da99b03df07ae2fdbb7f9b01119445f69bdd4b126c65e0fcc7fc816152b3ec5cd04e7e66cd1c8441b1fd2b1e8f278a45c1fce5d1e8def1f6d4c735cfc6cab643b46d9e7711ab7d998b8299c320daec0a3c80282c926fd1c0225d1c8c5b7cd846236c3da5c98de9d60e36886b0f436adc73ea7e73e262ae4bc2884812e012fcef6588dd2cef5a745883372c36a955e50bb47be2b394912f9c553efc58208ebd2c1aefe3d4f99fbb4fca6aebfa3345c61baa7aca577ca3079c11daf4aa8c4bc6c9556d70c91cb522657d174c69919ff9e2fca264625de7e8e8a35c8f008e38b39355a3fc78ee4104425ba63f19229528ea0e9a993ad943e47a333a51c6a9a8661f20138ea7faf3e9957e597544aaa48b25060ac0cff5233d98e53d2b556240d98a8a0c3612136f97ab801f7e12d8761202349164ea670e5dc3c636d75f383a18c3d3c1cbecb45d2854528a7b38681b13cc8860c9e5fc9e0bb327acb1d06a9770b9cfac7064aee223e40b7be194cfafd889023cfc68d46ba38e54105af548e96a5fc9c8ae92fa22176af23e3eb96d9f4323aa3d0a238cc7cc6604650fd5d82c2a42728ea522e60fad4036f1280114cba0a3a95c11a61763f0de6a6b1aa48b0fd9126f59da027f9c59549d5a4900c1a82be9a88b0d708037f70f33b9465a2b6a716300aa2933ea45cc95d8a00e99ec2257b1072da5187ab53b00e3b5fc5b4397fb4344a73bf85c586ded7989b8481f76fed966453347cb1fd61def8e68dd0ba9da0218fe656d6013a6e44d479b98470e0fbbacbd76871cfb04bdb081c63befda622cd6f5e5ef302e88ad9b6ca32c3b68766945603bb52de5ed9f60106679f395752f7dc0d0cdb0d855b4cd902027548ba3bfcbd4e402d9969fab6852cea2e382ab6f370c8cca416743fe7cd9367cad0f6b54c79086f01c1b61554d0d052bfa956e132ee0aee524842a77182050d42cfb510d84410c156774f3e2888608f4aa9980b91e4e202b3f2535e96a9c5890be5b40935f79a03334ee6c8ad3f6e97d5cf4df45926d2486b2badbd1a321da44cb45534fa2c23057df5bf6018c3fa53c789f16a18d6dd1288865498e034086bd0a03e4d3d53b1a07a730f10d7d445b30150fa7e8337bd7549d2c0267f260d490d2aee7542a8ba508e301715074508fc39b03d7083bdc9ac5d998242296f4e1d2169c5a1087459ba358524a905172e4f95abbcd35a30f5af797b9110e7af27221862703e419e3218f770f5f22eb058c8921b4b00447c9d9d0809181c65a9e9097411f50a4e184a0b9207891e04d20123db8e68b1da0cb59c1c50ce909835e7a188372c4bd1298468af08264661095c014d83dadfef47e18747334ce98a9d593aa1953512ba9605b87f1d9ec309483e49a3d121daed70358496877228655fc5b96d1ef5c469fd0c610ef613fb72cbfcf85ee30405ceb1a097731bb66f0f65c051a44a19981bc9069d0f4b9cbf067d04301d442c0e4a35d60c239d8d9964149a3e541c754b669699734b843cebdccfacef3af0cbfe01ce850c1a3dd266829b4d2397d5a055b3b12104d7663cd08c30c3a3cc8beca5785de40856d8fc5c15e1195586621d844fe37431ce37860842af9989131492c8d31c640f7dce08934512051dfe13f3aa86c8c594d76725d71074f2bb3d7e4bb0944cb626b9a74773d69412a10bbde34027c80cce79ef39ae82d84b4ce47e3f867c10e74c8c426d9870670e5378b4e0e8d6044de6bd49f0672f36aab5cf1819524e255f1a4c0b9b3f7af370130457d93f6dd65c0eaf19bdc47e211b3c4e8c3267a5dc0968fb87969aa2d7ae45882b0ac60824f49cf12d57d628de8bc5ed011280350e5b64ac34fe39e1322d3ca7e7ea13f0027cc353a9c2f24916417935010309532cb7ebdd217a43d59405d9f00f0c11684a5e993d982b32b2c98d1c84ddc4959de286fa93f41bc04f8d16c3142bfbf0d0684ed7a6efeb0cd99981214861f761f269843c2f3c1d60d823da378c0b312cf5aabedef1ac125b0272cb6b8b1bf045daf52a68d894d5079c4e6e85621d5208f566810acf4b7be63eccba472111328932dcc2529a967b2956340affff93c8475741bf9785ee2cfc95383cbfb558d351bb7a70cec0ff8008d8ab5401788dc95f5a2b9cba486c32ff8ae013b7dac5de583a3e412a420a6ce39b50180db4ab970fbc72321790572f43f5c5aaff153548cd6ed9a41529670d6015629497fdf9bcc22c591aa9bcb1362e848eb4cb6b610f23828ee15aa368510fe9cc4cbbc3350ddcc6a939404e03ec5937b89e0b4040c8d1df7c408689176ac3ee42669481ddbbc637bfaa60c8a7af05e292aeaba0a7bf81e3b1fe03496d2e0639abdec92af16b8a592845d3e3bb178ca292909a59ff07b62868051fe9c022a88e08219357a8a1d449e92ba4e9af7997b883cc125af9203a47a624c7431d1a06da226eaddfc0740ecb79a0eb6cb342c06f56936d4654ee8466334271ddb525a0843768e881b367c8887eae56389cc557b166f5e5e3930062dac789c60c9865da3eeae38d0ca98bc6462472c8e02ce41db880089a13411ec88dbf6b9d135bcddca30fc881cc8216287d6c908657268706ff536976aba4f1b9ab6b41a39db0969960786063f509cb0f9f4e12a87327a6d4f8402de3995192327fc8bbe5d91894cb56f940626c91cd936ccb6fc59e8fff1f65f7cc7217e880d9bcdfdf95ae2a6f6a60efe99115d7ffabbc8e0096a747f5c8a06480f9ee87eb04115a49f38f030135de04246d0f461ffdb5ac0440b6fc648232b11d5d34053e417a9cae4e613e3241bcf054dd36b201e06dd4e11a449067ff55743becc50deb2190b0cd413cc0cc53359ac991039def6833fa72bb4b45448dd4db94e14c20eed35545831e8d00234f036f54bd9351b76419c09b502e204bbc5dcc3ec1e061a906df13d003098857f8db7c6d0c6fd0c98ce176fd57e8d265cc38c2f8308f73dd92e48a509f9cf69630ebdd2d660458a032c275e2bb30d4ae097cb2c79e03d9b6c566e8804ff6a123cb540f6271ad2f08fe0249f40340d5a96edab7720bb6b0c0d0215bc79256eeb11a2e55df4d967b2fd730af666fa054eac26fe6cd2c8835b362684e9589377a42ab86935e8251a6a9dfb7319554ebfe176a0dc6832fe5081475d631ec44449de385a7d8b4d7581bd389d64112ca6912e28308969dfe59ef37422eec345199cfa565016ad5960f071fad8c322be3d651f94d40ffb9b4834017cbb352400fa5e63d9033bf075526f7522fd1c827fa58c2916e33d26a2b08f70d06bf86d51be1f2c386001c383b07fbdec6da28dba57a8fa8debee6302a7b586029cf84278b602b94f426d6f9bb7d68cd2d211cba297d71101fdba9f2ddf06e063ece03353d9d86ee4a967bf613f12888039a01ad151ecacb02f98a93a138ce646a03c4d62c15bc47d9e6d7c788f6a61ac1366346d8ae423276979bcb6571caf4feda95a714a01893a0dddc095ff45fcff9ef21accf42ff12ffc49446d0d519a8386235a0ef83b07fe84fb47359177fab0efb95dd4c61d9ed8a634bc35ca753eaa0d1851af5f310528ad1a9278a94de7ae9069faddaa0d1e2c36bcb8334effc39d0b6084dec32cf59c1fa4e47a16d7e29a4b625f6891f17d5dae01d850cf655873f2e74e7e02cb88054423fab0385ab3dead6759c856962dbef6b33214f2a1113563d419624e07bedf5af1fb76c7ed67b4cce188000cf299073de4a07e52c0e85bbf3b80ea027891117a9fca202b85f9438c74b77ac4eea0fef130ca558e3cf07fbd09dc4518a9c7f816732c17b0c25a3bdcc791143685426409b23a106428d56d93e237165c00cc624fda8c9239dd4440b81f6ef2d6c88e089f6f15006924ca45355c58bce1d584733a9d38416259d1578598b2294097da3401088c7fd0290fab20edd36a62bcb3d61c8679982af51baebed844b885291960e12c760eb50d5929ee8be64a61ba5c7e01031bb4f022e03f7524c93f49a3e34c001759963744349335eff76b2fecc10dee58290040541c5ea20f7b180c9637e891563d3e0c861ee4895e06742e94d65c47c4395539d6cf9aca3f2215808db36d6e1d241e960c2c1868a53ea63ed868461745e9ba9ea0ee969ca7ad8507c20c51110c4fc56dce05f2a42f89f9a6ffc1e92b98535268d15104d22496f384a1c01dc2292eb918061069a847d6569dd33aa3aa24a27bd949b0d8700e225953e30eee338cadfad19efdecf6b57c00bc877f4b6d8fcb60dd0b4f0c22614580c6635c8415205acbf1488a2f1617f3a99804f7f5bda7cf93dbfced85ce114a2cda35d5b6f4312d6ae7d3555c26d77bb291a8d5d66383cdc2a5d482adfa04ead337fcde43e6c55b71d3539704a4b0e6c7b0697d18e94173ee1849506e989de8a0604124039ab1ee117a41951c7c7aeb019df7edbae6d9c00dba6ba858948e45f3fbcb19f4f76c66077b7bfe5ea11704d18d1ad308ef535e8ed076e6302d94eeacac1b2525fe8160dd6112fa6d15ab2819fbedfa3b6b80d0a81cf62d42bdb009d1f448f0173747416ada8c8500a60bf56ec71d8fbb2fb36442ad8d22e3e3462469a999dfe6ba92529376ef2eab2c1a980b58d6894852b69c6da3a01589ce9fdea3d54c9c6f3913fbfdf030ee116877f4287fa1d35c1143f6aa2d80198de6b559e094283941851a9ff520fe0c3bf93a3c991298f353da362e0c338ec70feb32bbc6c0a0caa04a6301710d846d0c946872423f31cf84b730ae468ea220d64b382e4a5ad92db104cb2fdd8c5060b30bff06a5eaada4749d2ce4ef01ddc9233f9cfe264bd929c9dd0d15368ca5756642a95d836583b96323af0f52042012d0505b19c2a4c35300a621811738d80624441601cf879c0650e3dc60f478578361fd6311ce7ba876d09f1cc2ac903e965ae6fe4e64cae7aee264c2dfbeec899896a9563db045b2c9b9ec4eb9a50008e6b746cfe20c965612d204cae8b75c21a6ab5eccb16b55cd5bacd8fa84c0cb9568844fdae312567a2783a17b21b1c76df14923d80aa8759993ecc35ca1e768a425bb1ba121389c0b6a61d618d6c34a02a900855db77b3ca86c624d2f99f51a349dee4505440b583f3549dea426cc1e3581f1833560e5180d1e068e69ddd3a421253fdd19c4a320d63643f1778152d42b60022b8489da49d781a20631009622298fa41ec04e0da42cb4e1bb016e5c48fb39290fd90e4e44076a0f73281933c80ca48627eb93d2602c6d46c29bdd8d3a6737390062ff315033e342a24947c597fb42e68319970a85da0d837b4ec8075c37c630bda0708ac5948a8904045268845365ebf1aa5ec1ca2e2977a587bc7edd955680c57234d1682a7099548e98372e2d99c8df4af171d7965e9ff68656071a5ce8c89d4cba55ca5328334a880411e91e4f935eba99e5bf15e04bb7cbbf0cd6fd6aaaa378e9fe3b2f6ff3122195bc85fa32928441eb52ca3c8479105d3ebd105dc6a7cca4a78dfad9ae1bb67770157844dfc52dd9812acd8156252fe34a4c049a3b8ad7efc24dd00d931e4515054da02f551c96940ad4cf606203a9fe81aa59ade50238f88d0a41e279604065218df4819fe1d407ff4940901802ae87df67c103e1d9a0a5af5bd84f576febe2c89dd1f6da5f43257d87c59da459a3605f4311dc84c13eab3c9f7cac311995e21fd08b195181acdc8601d9212c69482a5851bb11d9d9265e0d0211c43263b595114fd200577d638e97f8bde693b89d17aea3b28aed264a76ffe19842c0aaf8086633420128e0ae63e0784b1bede39fbf3170d26d802e73c58f5b4493395a7e9b1f896343dba2d61dca5476c008318e306f19c481a0af6c13ae3301bde049fd1458bf6e0be6c8fa7873af40ba707652f4bd3035080315e808fd18cba88efa916998aabc7a818e0578a0c11427275663c974c02bde01c2caf5810c9a4f2dffc0392255c52af0a7c317c2291ab6cd3d9dfe6a6c742754417005f9fdd6d0bda5ab2df2ae000c90924cd4da542ce878b75f9b8e8190e5a55bf37e90914dfbb0c8bc021a8a2c2d5fd4d33848a617f223a0ed4aef0b2c665866ec81ba5c85ba81cf4a5a59beeecc50a38ab61f8fbee1510a5280619379baaaf863b8f9eae3f03312cd232352b4dbca84475fe4f2ea36cfc2104da6df6418e6873a51ee316dc1f10115a7de23fd1d9cdf4fd1cbc30618b0dafc478ed273587d7b4e1a1d2ace91a3c98f08a903789ce9bf96d27b3fe989d93bfb5ba0925272152b030f7ede0066ba537dc8e9e512a601901fc5caed0623e23f201e8676ea1515b4f34d3994e8950ec70603c61301f34c1558a008a66f171f33a302ee0126fa72babb2521cdb9d77f95fb7584adff740795de5e225b0c325823abd74d52a23681b0abdd778cc2d96bc2708fb569450dc4fcc04e29c33265dee5b6032e908eab8eecae2e77cfa7db107a8f71d9476f883b758d5fb580a2159873da95840eda943036b614f0db273a0949ec9adeb68cc58721b9c707deb815aa49a009a441da97f80a00807276988c469028db81d04b58e4e28cbdd0c4e436469a57d0dc0f7281ce1906f1ab16225806cea4b6f548548856c3e9304429b26a5a85188c9c1ad147bf6c03641294bf85bee0dd690153b616964ba1ebc5188f523e8832bd8e00f04ea2010e80e18048441280402c046a64ac2ab5bcc2447466dda499236a3b5fc5f20ed9dcf16254ca6b83a246a90e9d1ee144d4abd054b84a200dca3a9f44f775f3c1340fd40e694f7212931a022bbd5d2b8ba080b35e10358b6bd268019a3022fb8d4645e6e4477f61db88858095beab5188f26d53fc2825f7ddd430b6f50f1516eee1d9821bc91e7a55b34ac354a7f4d40e34cb1a589aa33e5fe9e404cf6d23d046c116248cbe6a74b82131c2b6586150a024bf758272c28be4c87e528bf8980227061de2a7c8da0709dbc1f9fd0417a1c903f9adee81974f00861c28be0dea8addd12835bf357baecd9f225c7157a1ce799810c6413a12ffaa6bbd96001dcc5026dda7f40be8f209a354b0648ccb601ca0a6913a4f2b12cf097af6a222e37aea7ce65402757db521a219e5a43a7c7591763a05d1a68c5d47f88bbf356c9606c8969313f2a782af6a4365634c1e4ad5565083a3f2015c5096544c40dd1a2e26ef7c7b11aa4bcd880449df77d1114011ec3af984148bf1157315af80fb55ae92a418f6426dfc02dbff9be153e7e5b81e6821af73fd5a1d392d0fcc9c4c9d9be5ced4b4ec4aac8822c69897fa560046d770d2d5c8a460ad27f46d420cc04e4eaaa745b0c8b1bc71e0aa0c07236f2af1ace148b1c675076f64636d72339f49831273924afe4dd2fb95a234c7e0c272760202741f67f2c5aaf26b156fa760be6c981264d16bc7beb6b82b57c5fc505fcfcc910ccb82aaf9a4456f761fb4020b724c0861ed76429b0798a731284f6b8cd5bfb581897c300953dbcdaed2a2192384730acb7e49a246e0587b06e34aebb43ba57b7be2db7b316b125db699c361cd212565069516dde8c4e803e86fc6c8c179fda71ec92f11a87976477a16985822ef463365efb26a8389c9a3dc1bbef30ab7d65ba26b2666e069e16661c0e60cbca7810211c1c0179a7fc6e67d6a2c4e1441de882dd6b85fd60a277a1380e4f48e142fded85cb166c061256a3f67138f3c06f04db862e947f5a96c31f87474a90a31d4b599d0ea9c361a57c51035a5a62eb535dbbb11156807514be4108f102a84247119f1d1e655708900c61f20ee239d6ec3c8f63bd033e1ce156dd844fd2f4fc047050f73a3a65014d2e1ba222b5cdc2e653e15ecf7d7e51a2d68cc9031fdf1be51e5ad4135560cc773aa4eedd31598c644dbc4d96e4151d88b275e892dce908c48a633ae43b9311cf348938f01ed534801b03c40c6b0288c51c2de84eedef91867287e5216a4182c7a94649bd87809f40b8a7c9237f4da57333b09e97c01d7b01fdda0cb8ef58f2f0fb5e405c4095f8bb67fabb8d6f22f071371fdb803f165f9c420c8adf4f408c40f28d9cbad3a8bc87496855cd570cd49f645cbb4b7a7fbb04ad6e14b0efd839218da9012ea846586c1ae64c812d986440a182e525b8b9bdc79482a45d822fed4c890091ffc82db342a4abf6da8c3e6efeb9ba413630d6a16ff903b6931b64fde5c30ddc7642b1b670995260cf092871a472d50329787bce31d9ab6700eaf2d42ddadb4e97bbfb1935e64f727651803f832ad03d6bdd6273d2853326be50d6e2842bc04ce87c392321068273c818080716c6013cfa1beb1e0640e5e1ab081d327805892c1d01f59de276fd8f8c75349437b3de98d88129e0c0e6634fa79b552cbd0e482a203b8133792436c17c6e9a6be7b40b0e3cfba7db499f19d4a72771b8956331208e6aab0ecdf0ad3bb776810c3b02192ae368ce0223d520a04461dbcc565d359b085d52931881241fdb3bb4ba09196adfbf4bab0d49e473a58ed30d5c261256b8775ce05ded7fe6124d200c5dd8d0c635c10b4deb885eafdc01d6281f6631f0336852b4183751fa9e86464beb34a06d8d61c4e99a70d49c3caa0ead62b9bae240b9b51ca53a0afd88a8b1d8e9b1fc4b5a58538ec2704551c0a256f244ca256a62bbf4bdeb23a373512170df23c88750c45e66641ea3a5060c91ae6b4a16c95091afa1a2cb1504ce272bc73a0f07ca05935837b33e2d7f6f535603ace76a1d1c4f7534c3e38ebfa94962c24b2c36a5e92fbccb51b8d7ba9099588f29d6d31223620d53a62125e334e27c613fee78aaf14a4814c08715eb9ed38485666f46f61e026bfccbd1f55ce45251aaf0fdf14e8162ae615afae907219b9fe87185043650a14e0866b4fb44f420d96e845e5b2da0c09421fa8b86c6bc44666ab9c9226d8cae27372da0d014737fd86ef34a447bc2853b677cc16bc3c0daaee302de5f2e94dc1fb0d431a3bd83f4ab54c8f9cfcd6a0cf2dd37eb60214bd3523cfd29a8b49bde9364c41e127163afe19617e96f5c42bd474d488f47b36c7eef059b6164d000c692db9916b9d23cd12efcbce3cb7d96aeb0929bfa90b1d76b724f3b85bb25613ce5790093b8cf5db70d4eb36bf4c6838523c1bcfce73f648a6c55d4ddcac1e7aff3256b5647a8c34f97f3239b411037b34b280561a473cc83572b7f4d43e100287db588577b3d44a3d5a6fac77dc3e60fc984e4b60d143d318abb90b8e63772a0e0792fa1ef2d552e3ee8505b10ff11abe7f850512a061acc1b3b7d44341d852eb1e99ee3b3918c8e4ed0d7cec476630c256d503266f61bae2a47ee3ed6c7efb7e657377597978123d55f56a2bd1aa099b1632e690975d8751ba82b65b63da4eee89c356e5be8c125f216368380ed39ffecb269765d377a48d72789bb0e46ce17309230881ed30db184a7eb6aeaf941fab458b5ad345a80b9e2a57440f4c6d716c56f17fcfaecbcc43e68e194ae44ed1a98c5b21fdffaf2a5517e08d0a49554bf1b532f53736e33403b21d4f6a96ad61dc86a37b7f9282b5e815aa7e2eb19f0c3a22205b0ad67873fcfdf777285b85e4e93bf32c016e97a9bdd1b05affb79afef71cb3d21f76240925a3ad02b0f6e0d0f4cbfdb754e6521712ee5d15e87b8f649b78424c6b86b431011dadd6448c2ded2875d79453a6bf8eeb9b98ac1416f577d51c91c6113fb72c09e852df60d124d5a4b5ffe3c878b5bcfb4a5d29269a3fb2c6c6628f7941fbca5d7ca3f3fa19ac32141fd100398d4ae051fd8f68ed3dbbd1f02b2c9b64a0eb72ff83d00815b3410e6d42ad50a0a773eb089cd47b0821e2c0c40855caae27e8391e9f604fa64867d3928be95ff49513f287e6a7a34a3e28464cb90062b9f486c0961b0d2a9849610062b9e94ccec999e4552c3cba45a3f4877a062d9abaf711bbcfb0c3267704079e3d0deaaf6edab8b9763bc323843a75a868ffdff7ba4f4eb542ba73a137a9401616686f96c4a66321ee41d01e9207cbb59d3a4e3e15a68bbb8929b54440ea1cd7016a5c1d75a9cc5b9e69d8e63edb639ba5688972f6f5c678f3146d165000e8c32ef29b6a5ef713f6efe8396c86d35c5c7b414d075d1c4bf67f3a7ee343d9e94c73e0f4cec7401c95144f2a08be34d1b9797303aef299f2fe18f36114bbef4b72800bec489752f8a8cad67005a490678eeb358e1cfa23c009a61c5bd1601e1cfccc550c9ea821dd9bc65aca3730b4d7aa19fc03ec955f140d45d5afa8fa362dedb11dad978d36b44516e89fea108da34e9a903a50de82a0012dd47298cd878f7506a8cd016d8e542a39d816eca1680cd35f8329780635fe92046150146b50800846e737711779070f40a8be965d6f00f308483db4160cc199bc56fe639c6c4659e5e8335b0d33ec34760b8651cdcaeb1744e1754c15638f5f0a265315035413d5fdd6d0d632780b3f34c6435c965592547e6e03613d37b620383876b91d7268a7b3a01b8ee390e0c17a930eb7fd28bb60e71a6cb61bc9552e1b34b44a176888faeb66b9a7ed3781cf6416502325860c5700ea9be30784e130a6c4fc9dd3c478bc0624a2fdec9af089b7b3b5ee48b6f65922ddf4499a6065d9a3ec0781e0147452180fd3c469009d31fa7c467d3a6ec809b9bd6a51cc70bd7d291093c1a01e5854cb2ee8e055951869cfc4a91d8449c9264a2db8619075071eedbe5193e0e4132e64f2036c68c657c23df8a7bec0780399db09794a4d5807de771e5c0b1a7572e22922435eff53a4977829189b782043c82562769b532ff9a9fc76d6c6077d6eb83a770d83e0b066b5855343630fe3518cd1743a6306b8c3076ccc42183849478be7cd4b43192d93b728bf42af20f93c560b8c8b07ffca2957e2df8a20146ea13a50170c27c575f30e6851749507d72c39f767c8c83459f730294890d670d4629de9293ce069edf5b226738b5a8fe3edca0bb4816027481670561648044337329149d562aae6e56b7f029eb71add5911a81490654b5a01f1dea525ac780aa322ddcd33f764d2265fadb33724aaad3da2254914046b5a28f93fc326615136ebc1075b1c76d089c38bb7580a15c8e97c27866c77cd0adc6c6771f3b31c417745fba357663a33629e3fd6b4491f59d1226f8b5b84096146c4a9f05c6efc1efc43050de687d53c1906cecef161c384fe7c1c4e77fd20df5b798b8ceb21c8f5d28120c9598d95376c09c68823f1252f57751d7cd2fca2feacdab6dbc3f48a43b849f26b9fc17b8a89d023cfdf93dcdf94fffffd9b6b89562cb085e9b51dd4a2d17e2fa130c7a234753da83621833830b862c0da5c5b788eb8600fed921806f21592215a571a2d1c525617e814045a0b6562cb3ad74bdaa441883ff40ad5b450aba502b4fdbe10caffcb5ee8475e7ac21d0b9e1230f9e1a9f30de7b52322162802bad41419b6955cbbfa43a80e0cf251a601d614ebe225696453ade66fd0e8b184df4150df2c34a0634565c112fd9b104c229369a8866d55452bd23674aa84c5c424063f4a1eaef3c28837c202556420aff06f36598740b2bc01aafefc0fceda1b37e4c4d7e91952c949bfd1d1655ccca3aa75929b5aac22ec67d2f9686038e6ed1a2919c18c6ffcc9363446588b2fa84d34a9608ff8a05b7a34a40430df10274c01fb41128cc0881936a7b1e3f487b905a25e77966991b99cbf483148b122965d159ded288521afa1a4942ce39427a19fd2b3dae9390955c30cc83824640be4e6b46a67b308df52bba2b54dd1fb2973eb575f5dd7ef8cf28dced38d2c1eb608a0cd87a5ff7c1cae04bd8ef5e87a521d79f4156abf5e344fbfd0e4fc9188529f2a0981b29770d54fd8ff8f8a40e2085b36dd2f74433461ec69ed5425d32bc4f7c3543de6d46d7ac8dd3650cfd1c9844514bcfd81033e238b63a86511129183d4f53327dca6335fc64518855c6ca40626773d875be818a8d80886ec2c5648cc4eabba98899763c22363f21430e4ed3d06bf534dc195fcebda6796795396c4f7c64505f86b89a15c6a1259496bf11574278d47eb47114e69a00956a7ced77f2ada2e6258e1a36b00e050a6d53102b66900bfa68eaa1e16813101461da9d0298a83908642adc924d5dfe30b29e9f12b287157d80bc05328c0f5dccada710d51c0f790c4062114382d11ab19ac1347d0054d19669a8b5695fc17b39a60097eca8274e531a4c2573bb2e504e6893ed3f5f3261c58f71d61ff53e1da65432a71b77919977e9e55909bcd0dd9624cd49f6d2853eb3036c91927e7c26e6b83ed31dda6ee6d93ce1c2156a8a9377d8046c46616848dec8420981a027e6e9b235ce8e96193c7caaa23fc7711b1f11a23d58c6415c8281288890c8d27e3a59d922e0edd1278e6de95a4266c49c08d440a0b2b9b285266768340165a60e6844f2389a72fcb7868d9a86fbe6815d408dd3dddda7470ed380c6ac0dc8756581cd2422c09fe3357bc5131e22effa9e4069b42439b4c8670463c56b8250ec0b8d2d11e26abc8e21d5e59d79932bc523d5e629beb1061b463d6a0f56db1cca33cb490fce953a0b5778f4a9d7108a539081f47ea84d39bcd53f12f6670f5f4d53f567faab0defe420550e6bda0bda82f932029ced430fb04402885d40c2f2a89a92171649dc25ef0fd3f1d8c595229934a19bfae2101d7746c6d9dd13d806a8b1826dd154deb9489adeb87405190dd9b538453125071101fea57d28a7a27a3546db8ba2a68aeb71169fb6d28a7bcb03471db1c9edf5846f35a61f0bf6a79ccd36da9e8d6cd49ca63738459c857bc449ecce67e70c13673bdb38157cdf91b0df870c1dca28381e5a7e798790b158451897e8a0176280dc66ae11331de06c386f3fcb7a80bc820007de24bb15d76a93180a0bb5c9c2845020b4e2a4aab18e89354cd0af3a70cdc98be4abc35d0f3ac0bdbe6e785f839b5c9ab303709fdd36c8b953588dba7a1d1a88d8bd08fef868577c7d9c0092287f03885c8558295656ee983bafe9eebafc2c8411c6171cbea25fc0c31ce0eef3b772c904970ab28ba2ee81ef238660d6cc02fb512c9ad6cb513410ee62a9d140a5748d9d5b2242db00a2e4806b3f32e333e00ec6ca978194c0a123919d903b00cdbf306bc7d310031d8005d9fc4a1a26409a76f7e359e7064746179c715d7380f370adda84ef1d52a57669a6665fa801a899c65a9f883bc773718de5cb4d2cabbd68b84733e9b84cd0d2d3c556d0749b3b4316c73fb6d71cfc170ca45002ce42f26209c498fcfed037991121abfe51598e38b98b29938d2840ccc9c69cf481f862c8fcce0b64ff1867a9c9bbca3a483e3e658063585c06068e9c4d38c665f50a547e04c49fa37bb5dcc9b275f7d8d3f22289248e826690affd784f7424cace37bf5c65790291bd8ed575607647a92912e75aa9e79bbb9db16b0528dc1dbfe73233872b8347c2816532e609e177ff9ecb84967dc1a4b0453c076559f41ebff351b2771d1cdbd40136c8d926ea8e5ff1729df70843f13dd540a4ccac115ebaa2ed8ff1b914e78e4b733d55b6360840c8d825998c25b474b7d3f8a97c3d27ae780ca7eff70a6c45e6d0fdf249a97138b6535d0cca5b186e907abd8cb9938a1575556ee99bf6bb6a152fe9491793df6e42e8477b1e16f97a0e39c5798a7b468ea98107425db82481e3a3a0255c709af2a20b2027076bc4c178eff3b0130e0916219380f0faed4d8722c918b981e038e01a8e3ae2dcbc9cebc35e35d1e5e9c0cf25cbaac088c1439c92831672c77173a4e1988adf746e4582998c7cc695aaaa8bd2dafd7222ed4965fea514fdf0a32aa7f7599e44ec403c0071dd600be8b6287217a097f767e2fe8bd46af8b7f4a6aea55912f0d3464815acb9ea92f6a3e6a50691ddddc75e09905caf97178b76c43e163c027645337ed71a4861c3ac756591047172a4a3490ed52a12a82c65d3f989fe7eb2685dd8b7c443537dc08538c04234b7a9cf2f5749632eb62fd5f1b87c5a25f4e4ea9fad880bc9d7ee7dd9e76fdcaa448eab8a28eae2036eeedef757d61f85f68e2d6a4a883d8a688006486354223f537b79b54a84cf3c73e74e4a5182ecd77e97b9eafdd70e603d574e995ed60074d70968737a7588e28da5ccea333b54804779c01a4f9d620b4f2dd449225f7dd1efab65cc58060b99e8c274b2ae713e93badfc42a6905f3dad321bce4ad9578ab1ac91d6ad0d15031f7c051ca0fc1464bfba467ce3740df478c030b39ca55c3a51c25e27e492db22bb7ca5e23ba1e647beab622798bb2e1e5b94831a53d9c1ffb9d84416e77000c4fcd639a8b4785020673166ce802a94b6236efac3a5b2c7b8d57c095613ca2ccc92e1c9e65325315d85ff6b1bbdb29235d21a34b1b7079f831f6de4c9fcde8a48c79e08f050caf64acdf7d418c0a9a734a2a784e2fcf405a7baac50d9d7ebebca5f69a7a0d72ac0c454e8ad2cd9e314a00996038933aa7bcbba86781862a2093476dd4d8a64790d5a97eccdeb2d10e9213332f140f2a5a8f40a5e82fe5b72c490b525112f00ca363526cf0f1e7f71a225d9a7a3326d5a2cf33e341e29ec19f862aeca52299f3928a6b347c4cb6209c1ac507baaeacf299786273e3dd75eccac05b04a9b5faeb90bc12f73713f1eae10093bea4a8ecc25885f963d018fb50b4dea04cf4abb01d1e6a11ba48883eecd064b9cbf05f590657a6e8fa34b35cd7f23d84f95e2fabcc2feee602255b073d6b4898c1f840e879343aaa52f5eb84e652a7bf275cca32e0a147a61f8afb35ccca0ae9751eac18b2abd09955e8a52ab49c2a7436157aa252a1e9e56c914ec5051d0f05d5848206bf1de85e11549022c489bfb3df6fe3f54fd0df66055d26485459276e8792b98a1fe8b14c4cbfb52fa4f2bb73992130ccdf638a877834d49d29683c33083bae34bc4b276298b65fdd8525e96a1fe98393d9a384d9195649a3d806e15ff230a554e1e7aa8e63384910489957ceda5048a8c60f6ba0a6587a77f7584473f79409c87705a73aa26daa73c68409a9c6c3cac571d566bbec82fe9d1628dc7c41e773b594eee24598d9cd1f05c39ae50ed186ee97fcb0e44174c17cc9309eca53de902637ade604d71c19cdd36b7e125a5b64cc0d3aa9fb293a0e752714e6da8883554cc076957c2eb4fe19f6240e56f11eee8212c88b7dbc17d623fb71a18a9e4d2625e976b3d304df8a77ac6f97c48779802ece0e5233ec971b89099cb626d21c7c3bab6ca2e9d3cb05c3704393ec094436d27c170415de1561d23c334368bcb115b43ee3225b575fd4cfddfd3e10b61bb0d6b9822bf35ca09e5ccd570a543ea718e90a776fdf14a489382ff837fb22be6bcd172b5f5561f223c6f52cca10f0b2e5efac775f9815b5b8ef6d74515530b91f5a94b96719f51405a8c9944f257d27af23f8624b93fb2d3c4f0f76d026051ab48d81a02908dd730293441662968ec1a867ed04bf092ef4563c7040142253625c1fb5574be57e2cc9acc5a17457c70dd19199f0d893a5ada2611a85057cd06d481c60d66df81912b0c2997bfcc7e5629592faa0652eebf6fe45a2427fc3846359689da7e969b460830837f110fc99c5394ef8244c8e2ce6210847099b3514d4cf25e716279404a379f7c8219ac1c02083becf50cec628fdf45b2611750a424c1924a0d53dba07f7f73d753cca9f48a49825f419505becda0fd8b0e7e0f8297134a7dece31cf55870650e5ad5e816aecba3a656751d064449e466f7ddb5af25e460af5a237b7594f816f800922e06eed8b6b52e0a5b759b6e4989da77d908104a3d9ffa14e6bfe4db401d0c9d80aea141f9e76e53e48f80a2b23fdafe07142e1da399f21bc7cca8890508f5bb3d6c36f6e0aa26fcfc98fb022e0c6c5e01b4713ca479efbd8ab4ea92564fc621b0557e9af1629acca6189f0a4942eea376ccb5576fd73b31126fa3536061d53591e298b12f172a8bf0cbb64e8bfcdb1adbe1a8439f950e2748a27a36873eec26cb9f810f24589fdba59e7520cb2c4d6e66e810597b89637fed9fd96666b32a4e50bd3ecf5a14abb1de3eec350d6e5ebe59c4cc915242b9c359d455397f329052223b96407b7dbcc9afd3725acc6840d4855dea0a2a3be159aa098291c4d8539c0c21029a768e933b8beca91e2edef57e856664a79fcfdbcbb8a48520d733f95e6bd80f9340fa4f7513a4d52c2e0cf79e4fa28b031c112a0970f7e5f60e695b5055c83c044978209e8ab569e356cac11282a139c0127da59e49871f007498b2d72999ebb476ca05989a1c4e978cd6cd740bd0a2829f80a94ae2df4b2918b5d4e87cfdf30f5ffeb2177982e0c153e99d73d7266242ab3c25562a9bf4a9d34edb7749382a52be2e8d8dcafd3acb7800f8a3d50bf0667d8efe1ea86fbfb2cfd9b9c34840f11cf15cd6b2f55879d812c40237d0f37478b27be22beb122379c27090a11168070452f96f58ed959cd3601cf079a38df88d276bc8964f70458102cb5400e4c3ec40b3b39bca254076ab4126cdb17e82395494c3cf4022ce9250a7bff240031f9d2dffb78c77c2a7498d5956326d98a3275642f4559bd914d6e87b283f65307c0047c49277fcb5efc6245ee176c9dd998ff527cf105c5108030e2d03d9a5d6cb4f9b1d71d71ee859bb90aa418fb47679774f546621151a19d8aefc5e637bf981d088e6c036c85e7680bb32becb3bb189a73045de5ae902f45a1359c7a599e7510a8f9eb9348290f9c2e93efbd83588bccbf4aa622ad8229423db85a753160d3c3303dbd6dede4881f448f6fe0cf9ca44888bf1f4d92b805ef218fe0e09516d125218dec3c7fb545dff4d9759ddb3794250a297477286dd8e40dd7f0964d1f1fa6c23055cd80eb51138a36c7ab1868a26ab8445deb905f5c951bdb8e8a3400d3d560bbcb36ae4f1bbc0753311a4cb448b136e07972cb14c706674c8d7a6a3b249c12fed34475d961d1988eebf6004c10b4c3ece7fecfc90e39731768d5940a7692b43d0cb3505ca67d871c29dbccbd9f215b340c9e21605262350f5da2563c738ba8cf400bd490299106d7232def45e8bf92867b5c101ac568e8ca6d06494c6a195c065ffbea55b329864218ee04aef83c44d099950c31ad380f5a7d961d7be398814d48509ba5d01905cea0447bbcf0c7f170ece701f1b6dd096f6e493892db479a9c1ee6b1f61382368acb87bcbd4043c5074e9fb62ba5c8c84663ff81f27b124162d5c409a3a4273782567cff88d8cb417ce68b33a830a1ac4ae69ee5c71422b1400c28edbda5f0a635e11dbc363fd36e8e94a25e5553d2a18e304c6b2aa9bb4d0934003276af123d5cbe04b14713ac0be707d20d2a7e816a841118c98ff27ed2bf11f008b4c8913729ae4d662688ee6381114b56c87b5fb4fa1fdacad3a00c97d1bf3d6cdcc382e0b164002acf2a88cd93f051a891254d02544ca2325533e6ffa529335c0c9395a1c8ce8d4d894a233be96306029dc1bd02d82b796c9d20938b18ab6a558e55d944f01477c155cc46d95898b2d1fb92583aff8b3bab795910cf97681549ea250c317a32c924cb5433d320d341f64b12d24ec88084cc8c036a92be855d30d4594d1b5a48507ce93cfd308e29ec50d280fd76c4ad6edde6e7e779ea8ee6be80e586f99879f5edb1b23ba4878718e3e38a0e26dae00080491f225327e04390a850b70f9d90ef404665968ac2eac7171e6f9758229248647777f70ee708c9071208f8da4a7d0821f3819092242a9f84143fc714a5294653964c9975389b1224654a1072ca90293f1dcea6bcfab73b9c82439fb213a994252948550a13294aa29572a488941f665c293f1dcea448d9618614294a4d4a5252d09490e80f7967a1e3734a3f50ba81d2910e674a43947c50e2214a4cc947290725d71542442847a00c41011412d81c28941ba0ec3cb1e2c9117a7892d4e1ec49d1931f74dbe1ec89921e1f6b4f8ef48f3e81c1107957f10488272f28a1c3d9931f494c26f03da29042802890804441a506109831638824ee1d02087808225c27ae12235d8c412af5ab287ea488a898a23f289b422fd150e82a3fa0a88203144a501871118a255008c1c91b34813c18142e2876b827aaa858b00fe8b287ddb449a7c518174137e92792dca075ea9f98a20436cd9871c444aab1c29d978889b483251329499ec1339372e8a1870f3b24d9e0860a8c600a52131dc860891feca0871df8d0ef9dc1c367f0e054ea574f189922a7acd65a27b4b5d65a5b8456a2a124054137a189d036d0b8d229915c1da6c319d20f12cc898a85d983fe688733cec83f1ab98695be07eaa3baa492ca8aa74de41f4c9f7aea504ae98dd871bc11bbfcdd552c7c75f2af847eefc5d4052674f9f57fdcbb7d646067676727c77ea650ca97d3fc9cbb614edc28f48873c2aacf0e47cc8437f2238d2dda94d30532e8cce5d8ddae491b1b3e67862c40b479cfd841cc097330b76f6cb2cf57dd987d72d961c7fbc7f6367c9405989c06313f4388735f060ea43a84287c2e3dc68ece799a5c6fda962a16bed3ffd4863751eb31d0b0d3d54ca7c4d7466d03f9adb447c810da4421643e7022c909a40e674e30e99fee70c809596c1b42a7133efde3664eb88ad0744aa2b56832a1dcacc50655231f2ec2901e8be0d33fae08af0e6745606a42493761d44411d349de4da8405ba4a227807a94292dbf8583f5ef659e70f50f46ffb8268cfa37a3882788fa879f983d91a447978bb883838f5294224a6045141f18810a2096c090f0983111a5c90c1e8c678e2c20c36d085a0ab0948bc48aa0264181387547f0467ef7f23819bc919f9750f907deac6c3b495a6b82345cb4b4b8bc0604696c2f8f8b200dadc56317a481537f83208d2b9174f9306f93200d1bf3160669d49749d4590c105dbeccd3a61d48c3c5c39fdb69037dd3f0b5f5e9678cb5d3cce33eb3fd74b165b60cf18344c4ec2ffaf0452952fb93495aec6feaf0cd265cf6478bb47cb449860889883e48f1c92453878e935cf280439847538714cc17bc8949a44899144896a20f22e8f22b1149bc006f22105a152f9c03737691961fb5201ae35a10bca1d2d5e96fafc8820c617c1b7fc1025d775e499f5e76504e4a3d8fd61b1cf638952b1c10ae3e94d7dd8072b582ef6978439fb3b1e10dfd177ed45043be5ced6e64ccd94edb72d6b4ed7630cc9836f4f3d651ef73e6620783f7997bae6300e779a8f77eeb6e6c1dc57346791cc31b88e10d4ea1e78e6a18f4e78ee3beeb18f0794628f1497baf3f7737b6eef1cc71b1bbb1ade8d7ba1b79c37743fd0a87de6fa06b0ebdc7dd3bf197a27574fa4b7d5a87df8c9ec2e41bd14683a3a40e67473e01e870c6c451d74b90c6fde943bef9a1e8cb63238234eec6a3f2a8b85a6dc33526a15ffe51cabfcaa34b17a4aa05f9f72f875d76375cbafe8137336a1f53636afade166212fa675fd5c2c5b86baa16f06baf711d97d71dc9a9cb52115e8aa6738ab65f6367c35af875bf143d3fe2f862a71cc220728cabe803ca88380e2e0e24de40488996ed3011eb5bfc2884cc074dd470d4c48101241902081741902a840523e0499aa2831e4030a40a1e0ca1070ea2f0c11582810c5e2ec5e91629a59433d9ce6e81314580190660220672c6840cbec319133d4cfcc030744b12f497ca5d7e918ca44b59974159c62372fee8f4670c9ab24aa74f278fecde7befbdf7ea485aedc514e32923a6f6620d6b5bc61bcd5cb7e5cc51dad12ffea0f44f3f4e4ca26b09a59089fc814ce490222944128147309660505929d1df21dba1a40348966420aae0d3e9cf15220ffdfa428d2ea18e4f975bfa48241d981154d2f9f9745e5d7e9473525aa39c93d25a2dadd6de8bb176b1a66d5bcedc9639aeeb4e278fb3dbd39ab32814675758280bcb949185d2fda5405d5c38fad2224553a92963aaa238bb3f1a90badd2c48ddee96248ebe8b0b47ff8586a5de82b66831656c716da5341c7509f94c618816fcfaab6869690165a83095d0ccfaf1bfc60cba0d5045d3d4c068a9d35c6194d4bf961699144ec0d78afe9d2099f217f7a681feb08a0549030d3fc6971a853242084822e439e794f3b73a27c79ed6b38432fe404937c0c801194a218f012438623a96ab25112092fa29e2790c2c6124e7124b288b11ea123828b2c40f4b08596287257872169c93295a3a9c3961c2c9122732edc408cac90a56585a5c5e5aa4606254322e66687e732739bc70c2034609353162d49400e305df4f33e3424615b33add11e41dc4aca84a93292260848268e42363932a4c10315322095662069a122ed894e821cf94f0e15e3a9c259145e7d2e3e7d34a136fa6930872e97096c40a50b3244ab0324bc206160d8b96981ee30c891bb440c287d40c091f0e091e98981365cafb0548582a8ce4409260567ceb534ba945421326025cda648a4e29a5f484958c6c720419184d948a900046de90927925488084132740a2081d8c8880a9e216813f60a208233f5260c4e3053aafa61fc870104204074eb0b42f249d942e61a4430c231490a0c6c8e7064a29a5940241af743833ead16b28610412bcc0410f2f82c3fe81e78500a15962071c6696e0b1c145163d32538840c5844fcc1212c03891f1a49c18e969e16405af1719ca7fa64494c9044f0b112c495e2b33e841b980472bd1030e9e123e404e5904e99e94806bb2439e8d605b4109b4244a90034ec286115c24b000629de45082ea84070f4d3d1237e894524a29a534e5034ca69ed2e99303a514099e4e9f524aa93542d25b74385b428ad1921844518af8d10810019aa8004896d56006fa83322afad3bfa38f60f2a389099cbc9aec781dce8e5892471cf58f1e51d423378f60d2e35ba063233ed09f4e420f69226d44530d5aa77e0995227e9063b98a53f619390c6204149711463d4618718311417019318408023bd3a6fecd7f39a51ff9be37480b463b1bd1dab054e24c4ae9b76012c706bdb9f59a4bbd7ee628d03aecd78ea48a9f5ebb5692383a49e2bca622716e3cd24b12a749e220ddbfdba8d347449ad6ac925d1ba72a49bfdd9932726cdad4f7ec4eaf16a857cd55b018fefad1d42f6f972459dd7ef28f66dba04ad6ab2aa9d7e754747d9727bdbef6e9a3aee2a1cfe7bdb6824414e853ba7402a263f174b57e67b9addbbaaddb3a0ee3adeb3aeeb9cdd6e7b8e75fe43cbe7d17c0787619bb583dac1e560faba7de1e38596b955bc7779f3e0df5d62a25e631cc7eedd4b6df3a295baf968fecb68e0c4fddb77cba563ce5fc5876b8dbece464c6db4bfcf3f3a661fe75d116f132edbaaeab74eb3a4abbdb82b560dc77fa2fa51dedf4bdb77b7d5f77945eaa6ff731d5fbeac5baa7b71524a2d071f9b682b482b482d4d8f551c5ab9bd0e1ac09a93731e951870e674c325a55f261d639e7ace3dbde6e397f8c75d68f760d2b20f6ee6b4856cfd53a6bcd12f2b0c79cf3d53c86d9f54743d711fff4b073e1f4f96bc898173fe8cfefeda0bd7a8fa70c96f7627466f17e65c369e36954f34f033a9f0deab8fe6973d86d1abb1672cffcdb34de326fcb73167792d70873deaeb35d77bbdb75f759aeee593c9d907bef65b9583e5dd7b15eb7ebba6f07c5ddfcf2d52ea5f7f57d14ffee89771c97ef7d6fc3b9f11db46bac9e160ef740c291697f87ec4850428212a6581740873324549973fe9d7fedfc3b2dfe1b3a1d4b79e5bdf7def914c6d64b3e6d09a1f0a195ffe2076db3c4a143f22f6e79d36e2b480b072546611042c82ffc0abfceafdff2815ffbdd3a629801de164c6bc1eebd33b6bddc1b9753bbc06c0569056905915aa446a002888a9dfaa2938aa31ea3c319154818d207d0e18c8aa50e678433c219e18c8f79a75b470c3374fcb0c3592beb0569df21bfc8e7dbce06b6811f76f8f163fedd9fffda638c7f6577d5d53defeb384abf6081befcb33f39be7de69fced4b4fa5347fcfbf62567717205e9e4af93b42eb24e3fd7d68c6bc13aeef9c4b55edbafd41863508ca78f5d0b5b8743d57ab5605b67a346fc33fbf455f52e364c0b97fa2c284e5a6b71d51d0bb373d6dad730c77554ddb9b03db6bf436a120f0168d6a9ac321ea4945cac1f351e7b859ae59fee34f22fd569e51f4de59f565fd3bee5535f6b0de99f7d1a7a8d2e5adcb77c5a42341ddce7995690d8d2de0557eb4c7e9a168ce5bf0ae4f25ff5a1c54398af40a08c5abfba208d99af3c739f3f66de0a42f3f8e5476e3beade7b2d53f9d77ab57c62abbed534db82713aecabba8c49bdc87c0b7e19f3e3fa5be65fd4f4abbe4c7d5ddfabdf551c25c6b3aeda345b23d1b2fa9f0ec25f5b3ebdbef678669fdec5e65eb56197d97a77bbf5aab129633b82e11feebc05afb117eec26bac85b3f0582de2a0c4a9bf925b416c8d7165d78dda8ea60cfd9a36f4f5fcb6a3ede85bbd5cd92a1c3fd4c3ae8588e22afd9a326ad1b4a18f3dfe615df4d2af4ebfece276acc6b63fedea82379c0b5ce72a10681381987c58e221897f176805892d2eb75ead202d98a683e40a895cd1bf3aa853cb5b41220ad5452613618ef063a9e9084a8ee0d397928ce004a873fdf42c59c75496a80451714d71d4a9c07aeed17ee6b8e75abcd426baacfc765d0b5b8f1d8ed3cba72c170b5fd64be2e0df5b6703f3ed5bb6cffb1451d15b8245de65e9e8204bcef73defe696cb82bdef76c8eed2c23fd9bb77e19fecded790717fac57e739df1833d7e17d972777f947e3a633030d113feb6309e9dff63ba48ef834f4bbbfd971f71e6f9ff167964fff36e9c2277b7c9c7ff39ef5eadb3fbe1f5fd2f952762cc48f5ff4f817632dddce5ce5f2dbcbf7962eff58887f5d887f9fe59238f2f1b378626b87ccf73fd6c77a75f927dde138fde53aee77efc9ed2596f284f9173bfc9fc703c677db3a1b1ceb6e6fc9a3e235ddffbca5b83d8be7f4f9b71df5cf16cfb2bd3f9d3664b9361d80745b74e4f1b0e960512754f7a878eafec4ea89915fe9711dda77819aa3972587fa4ef33e8f876ebf2d097b7f9fabaeeafa62ac73df62bf6c38bd2ea689675f7b2e560fab87c5eab1ac97b7e45159eaf6672cb17a5a7eb46c9194a1bc01d690a30d18de20a7acd65a232da4a70cb1d6da1d682548509418a189a03f5d859e52658afcc51eb73aa50d8637fb25a3e4b2d72e75d8fa1eb08fea94566a5f3440d3ad6df172809e356dc3e915bbf48f523a63cb9e63eed1f618ebec26f43ca58c733bc5e71d7637b61e39e6f501d07127774dc71dcbfda2678d939bf71ff49ce794306fa7f943f4dbddd876cf9893b86321ca8ea5d52ac552874a6b85924bc9288a155194a23c11c5499422a20c45917d29293a0a0e4a3da258114529ca13519c442922ca50145914a028b0283d518b82438f23b0d6421142041a942322c03dd05072b0d6de60438d15ac85b27343eaadb5c2865963052badb5d65abba46998d0a9d4afa0144191024a52ff5220824f033ffcd48c32b6b4efb8fd23081964d8a177e0ae3d9777ccc11bc29bbbe5943973ffb0e1735ce00036aadffd1ba220dfee177025bfdb31a08d7c0e051908c05fff7b6c3b1b14d35bb59c6cb9bc71cecdc998cbdbe6648dcbbbe6e48dcb9be6e4cce53d733277b9ed94c3d18ec3dd9e3979e3ba2d73728e50667aa2a7293b1bdd94b0a3a76e6f395c6ada7478f6ec651da1d474eb79eb9778eedcadb75d6da54319967805dea9e3f2a6ed49042168665cc8a86260522d5e5c5a585650da3b755cdeb4b025bc3f9d12b67dd8e5af21e77cec49bb75baf4f2ce2157f405b9a22ff451fb7fe00dbd0f63abaa6c55d35651912bfa7bab96e48a4afe4df086fede3bd3865a2434cb7f13a4b13365d8acdebe26ff70f70157f47f69da50bbd3fd975f78da74dd5b1f10676947e244b8ea9e76afb7fffdcd4ec3554b98feccb8f8f6cfa77bccfe60f65743a4d34fed4ff7162f32fdb23f5ac4657fdf5bf6f7453a7d96fd711b5105887c94806a69ffa896f64f4c56e50963ade7949d0c37ab669006877a082594ef45202fb24e254def5eef2f15b76aa8d39fae937575eab2300b6479eccbfa5821f6c70ee1f8111a4e9baf26d6e9d7004d9b19fdc64c2f8188085a86ab5aea32566f9313df6673d266b5a1b421aa5f0364addd3f92e3b623b2b60576fc086df32b16f07f15f8ee4b208234b8a7361b4e1bfeede0e606922bdaed1f4e84fe544b9dbe6a69e72571b86d5554544daa2a323f645c323c124772ca45191480ffb31cdf0801b9a27b0810917d64076d2412c7f21cf0051962b77cffc01bfadc07dffee9f46d27a39c929eec670863a4a7c8f517208054430443c6f0e1a8d3b87de5a1fe81cb2bbb65cf97e199262aea73dee8f24665dea8b474a36207f5a63a36bc0e47f7f8b27c8e16be7d8e956923f7575d1c065a7ea0a947d4c32e46948e75fddbfe32d0f5d7987a6befed530cc2ce06de346f54c6bc5119e50788baac31b98acf5fa0e35763f127c775fd6dd6d88dda69ae234f724a88a2c0c9297d15381150c9f322f4a73bd5049027d06b2ba53bfaa8cbcf3198fc729176e5a26c74247190244ed3940125fff291189bdc231189c4991f63ec31c624ce911c24719034d98a208dfb1627668f34c9eebdd7c9891d7f8fcf1044f73378aff98773a050b9dbf4f1b61f2f116dfac9455df2263a8683b42c3523eadbfe74faf699763860a0bfba7aec1e3f17593d73c318895bf4d32d50972978fa884826a2dd8a885a639c9333d1947f5c8fdc081da1dc81a63f7f7b9d1c95e52a1834cdfe0c39b4df7ee333685c27a70ea1e9cf97912bc987a01fc610f4b74a8004202071e6bf90a3be9cb102015448c1004f975c598543fe940f5fc5352039bfe122499224499224393aaa4996966c92a5a59b2449129ce46a49b6243ae28852c6680517820bc185e0427021b88ccbb88c1fa1eb5b5c254bd1963a11411af4e7c652046fe6ff131dffab1e509f33783339acdbd5678c0732578ee14d74ecbdd794515dd346feeb0583fdfc74385cf4dd443f4b12a4513fa847575010bc89ff4ff4fc36578fb4bae28e7283a0a0205e248a0d3aee4fcfbdfeccedfc3a9f9ed340d4bc887ecd7dee3e739b3b71faf4284ebff71cf7278f7f9c17d11f87dd7bd4d79828eef4f9c475cf711ddde74e6b6d035e24c68bf0222f917b0116322c5e3fb07b93601526ed5798042382f11012121212121212121212121212121212121212121212121212121212121212121212121af2c369e053454995235724a1567e7b97d4b780f9bcbdf85c51e7fe65d67245902eead38a1698f73a18ccfebad4c3a46092545d52f77d202929a94bc1c052afb98ed4c3701d2fcf5da0c2522eb0fef2f05bb0bcb8acb4b0b0acacacacaca0502814a701163b55985c01c47db84fee4fa7ff7087c160fc080c064b82fd20793762125e533c3940d323fc1c70da3cadb7f2eaaa2e297fe2802bb83062c488112377ce39e7a494524a6badb55a6bedbd176323921b9193cfd9ddd87c7019f01870f05b30c6b2cafa34722877109fc7628c3146175c8e8ea44c26a5bc73ce6929a57569a9561a7f7eecbc3cc6633a3ed45890f32baf96d79d29e59497e984737aefb3c7b9dded2c7fc6a9a9a4d8db3860f7be762bc0ee5520bd7bfab6e5515f03cbafbced5430b43cea73b4f01c2c1c4e9b6fe52fb6afbfbeb73587f0e6abaede710e03ddf18ffbd3de1e765f63dea837e68d585df066fecaabcf47c1fa04d2e7d340753a39ad8051499fd6978bf5d22865f1b07a82641568da542435e69ab580d5d3828d884adb2343185f7ef5f9b9c6ea914e29a7b45a7bab94947e1f51905ff4e934f24a548b26778196ffb5a4a48c196cf89c56903880f83f67e033c68f6fc3d2d0eda7135da01fd38d73104bb17a2448835448cc4230f7a3bf4a8451a075685fef5664748494b4b55e1a6f055152674bf01215d02a84d696101568fbb12a59820222222645464712072325491cdc0ad2821115291131316a05c1ad176e0589e95690256c45863060f1ab6bca387d7df598929963ae87986fe49afba0bf1a83fc045a07fe9aafc6e51a2bc73f1dd8e5f8f5c61668c7bcc6acbc0ed91548ae880c913814a812913816d21a39de03ad3e9da740dbd81022fc043ac62a922aab4a24ce4ce26ccff52ff64f67368590fed5585dd2e7e3c0d9143eb163f544142267b96ad44e1dd5ea7d8cf9b51ccb55aa126d529bd1d3e974e3bdf8dacedacb72b178583c97d543133b81d7c4eaf9b1c3c37a794dae975785d5a3c46b22c26bfae9628050ed74fbbe144f7acd33590c6cdad42b058c6ce6b2b3fd1703440b10bca94daa23e8fa9fd7c4ed2fe6e77371b500e1f28249d26b124d56826e8e6ebb3f9dce3dec2ac73dcb45bfebba59ade5b402d14464f5d4c972b1787a5835468e435a592e564fad91d5c3712c17c742a6ef9d369c36b9fbaf02d1effd96a37e4fa075d4affd56ceea91381fefbd96da3d5f76fc0a5dffdb6237663a95411af3af3754778e62a8df9fb5c6faf7b99f7ba6c30e07f7f5740469ec173f6818459f8fabb6d158acdfc715d6dde068ba0cd2a0a13278733f6eecc96e927e2f10ebc5ea6939e292ccf92d18d4a9b97d8c31c61af3820555d65a638c3156d17356d9b66424e79cdf7ad177817240291f340fd70670b5e21e0698f3a306a01aeacf6bda709f25b641b9dac10081401beeb39511d259719cbee331c424f02bb4f75c0c9c73ce9f27cee3b8cef6bbbd93c7bf1a3b6dfbf7391acc61e6b8afb1b951eedefbf9fe16efe3f8b773150669dc1e7f7f787fa9fed1c09bed888aac81d8391658c41863c4424a7925c76269694e3bb1a095d64a3b1cb462312dc742c7c721391617dfb06103efd0721413a3d405e602fb8a44fcc9e553ba848e3dff579190cdf4c85b621b955a05cc2c365185cb8f5c65a2aa6517980b1589b3f1af2e0102020202024275799fc6b8b52d4751ec34b9c066fae42d3124fa738165a29d2e3fe667cae05e5a9819a4a13d8cd33077f9f96280bafcea02db718111e102238a89e11f1e047f82137122e09257e42253c938d8e596da9435ee44c7ce35d5a6da549b6a13244283732c362ffff4cc451c118993f95795ba9cd5cd6e77c35b6afe264b4d5a634a97241ce8efe5a582cdaff3351e209c7fe7f6f2e92f45d32b7f79e997975cc5ff5e5e5125cb3c9040051554c0902e1de863fa1fbfbee46b1be650799a1fa99615df6dbb1560c7f271f7dcd7907ffbdbc1389e236f1cb380798dc51c3e85ae40b620782329520c0929160b3252b248350849d3b6a53b84898989898989898989898989898989898989898989898989898989898989898989898909da48a3e8375af939f73485d666f046564e633f947ecc868452fe33b71f293f66a6c4652ddf90c89594db91fa7304cb6e90a1cc1148c7e768665cc8a86260522d5e5c5a866a88e13054c34cc9500db2dac2020d69dc2e6b8bd7407f9589ce71934ea552a9d491a432f46336f40349c71d0efd386280211f4ec4211f490cf9201af2213bd2e1908f21433e7ae8b6c3211f2618f2c153877a54e9f1b36dd1e1508f277afc7c877a1481877ae860a84750bf7df28f03fd87a11e40433d4e30d4c32587785499433ca84c0aec10e54f18e3a454a7cf875d17250789f04fc07860640a183722d266feb4e7e8693bf1daf1d6ab15a44bc9cc1c9fc6dfaa362bde1c5642df164caee4d38ff4023526638fb11584a866c1838914542e07fbe9f37e4ff7aa5f7217779a7fd1762d6cfdd60ec795b0e52187daa9538c71386f2c71582e89b17cbc6d9b84d6380b94df1d34c6ae6ce842eef8d22fca5ae5db26386c6dc120a48137f261058237f23990fe688e68200d2853499ced9c888e5fb9841d299fba2070cc6c9f73f6763dc9b8c9e9c21fdb8878d0dfd190ed6863b21dc5fdd30a0204d1c644e2cc29437bf91bd02c9564bbc15664752be6376c8fa1bafeee8d8aedb6a9cab6245744f492a4e9b2a97f1a52cc591d66e4e886399b0ba63fa0231b50afbfc1b68da7d70d1671ddd9b66ddb5c1bcf6bcae8be6a5aeca87edd9138dcd7af3ff2d7af3c1247fb1c3865d09f36f3b72d731fb7ca75db86cf09227fce315becd560e7078d8188c48e04219129992d21625264748494a4c4ead941015f81ce9148644a6c5c4254642471b423a4242589a3711cb05b2ab5a956817dbed4b468b18cf0a3cd0b360551df1dcea620c27271d6ebc29bf91c08fddd23d75e4803ce5c8edb6ebe407551997c42f221fa93e9f2bfff132a8ca6cf40cf3a842ebf732bf4f73f77280a9a5941c4084e8094d458cba7f56a0569c15ab09dd94e12eb95049e2cae9865a1a48a31b8405533dab52ff911bae663d81833da9531464da39d8d997befb594aa54da9781191b5a37c4032909427ad636a85dbb753624e742d031c6c8ebd192dda94a556a52a5529b26e55cc0ffe538c24ecb3f08fa4305cdcc11e550327102e46ad62322f4870aaa31a5c43f274a6289b90a1225ebf3b9125abe94810a9234094de50a42890a9a157594122612c72291a196a088248efd6925ad91370e7638b6d7788caff9af1e6d2f4883e6bb7f5195624d8c9734fb5ff0d7a479f91739491fd5a3971823c6d7d47c0d9fa1e669e88b0ca6bdef25a9e555b097a417a597a5172ada7572d598afc28c51f3d2c5a679fe2293381f94bd289138f66589c429e167d6c12509d270f13309152471687e3e0a89c4f99f8f92499cfdf3514a240effe9d2a1cf2f27e1afc15c05438caff91c31be86cf1004fe196a3e468ed5c7f8187c8618bfa279bcb78b23579fa8a097249d12ee9c99510115f4227b994d1931522f0fd302e65bd4d899fde9f499cf9783318363bcd6c5c30e874e77a182ad51b35532c65649ae82a1e6637c8e9a8ff1351fe3b5a7d1b4d7fe85f65b7bbe352dc6aed9d6f21a7235e7bbd8db0bdecc8eefaab46bd2a6d9f548aee696046fe6c7d8dbd2b4995fb3e1b49179ad4305bd407ff528e6b5ce46ccc32903a5527dbaab1e4e95ea635efc800ad2f0446953a282663694ab9977b13f9deee27367c305a5945edd2d4da4999979bbbf0cf4199677b157feee6fd5b5df3a1b2cdacbecafc254fbabae1898fd5520a9162f2e2f492f492b1f2de2a1825ef6a7b97ab46d8daea05a7a215f20a944907bef6be8fef42108427e08b8f7fe767f52c1c0bdf739b8f7788eee4fbc86d4806ce148682e1634bf628c5fdb583dd3e21aa24e3fd3ffb8961756bee35fbef913fe7b91bd5ef1849b9752ca189a07fdd23ce8a568b37a9bcfb17a9b9b5fad4ef895dd2f1eeffd8a316f6cf9cf2529e622c323e392f921b32357b466c3ee851f377fc2675ea43f6b1f02ab07c043c0e64d084110394e78133e04375c351f00bf7a00bc3c81ab2657590e03007ef53900b0fa1c6ff326709c6d781cc7bddd1fb7390cb4fd2f4bd4eb7499f797014ff21a20988ef9d5dbfcf7226bf1314ba97f91bd287999bd2c714982790ae392f4420eba7a29e50bb95ff297305eca1aa01a221207d71c913825bccbabd357a15ee6f78fc4d94f9fff0b184f5d925e2f32d7ea7572a4cdaf3e87cdaf566fc3b1096ff3367c069b3781ebe4c8fd76bf406997a44e5f6435b129c3e65db8f8669f7948f3335f0da22da8b4add56635756a660400080000d315002030100c88c322b14814258226b90714800c83945062489acac35194a3208831d018a3900100000000c8cccccc08004d764550068090cac4e5272e174690914cb74fbad6e4d3508e5c5cf3f8dcaa5edd4ce3b878f7ecbfbc0d77caba119284b4321f5fad0cced96919b9e3067219bcc27b3f67cf109c0d7832d8bd0772fede90c140009c299d9e1b8a89d394eeeb6b0baf176c15b0bfefd97c288811aa3ae3cc953e70d61d0b2389f1de83f0dd8db4ac579ad26d9a7ead9abb49e838002fa0909c5b225af2e0b4d02d6659cec0c12959e58bff517e132082415d1273d0cf15c277dbc5bcb1432783fbc4389d938192527d6e919cf27882a875916188702f070e8fe3096a2d8f98a2516b392d9f000bc64a7b2976a155108b294a8a1f22522fcf7adfdc0982591683a22de8afc080c85f12ca8725ab5677365f594461ec8ace32875a3350da748fbed8824bf9e141c5f5631341c9609e0dd26a863e6cb5e60f5f5664030312a9815a0ab187f6652aedd04f4377a675e1cacadb106e320bfd11e32a7afe7dd459f9a350fa88ff3449653debecb5393c894a39b77c9749b5ee03f24c72b74a9a530cb43a19c0ea8773a98e1773f940a5d37ba45563ea78f7b0930a3e6a5af128eb4081a36a0288929d8792ebd67053ab0f19881a15c80d3b0e9354dccfd2e724cad29550b9a72c90d66345882e0fe1a0162effd7b79e2c160dd58bb71d7b43c3cdfa736f1d14d48efd33808a9d0f094d605d479f50033bb6bb26574b819d80c0320fdcf262e3608af82eb7ee0752a3ffdb0170daa431c5e13c29fc85150b3e688c90311bc78acdc18eb17bf8ed84b87aeb852d418711605074049bd09a908f2a1a4307d091a10d58167607126e04684c7d5b093ecfa0093c12d1659edeaf7d3ce35ea901569b86f32d8eef9766be6b3ecddcf6cfe01e38c4663ec92adf8fc5070a298af1d51d032ca0b283c3e523bd34ce0c479875a6828cf0d1b033ddf23ebdce9372ac3b4d8be0fba16376d23faf1e78cc7a759b5ef1274c2d57298b584b0bd0538de0f32fe970d0723c374cc9f4ce583f898f8ef12ec33a6059421cc71f932125421fa95c17edbf96006816c46090d8ef10b95022d97fe4ddd8285683d7f266e1f0c582e6bcdaf3f7d6a4c25f9c4af7cb482ea7cadfb48a74bceb786445fa358fa1ce0429bdc2994af9b7b2703866f855e4f11b6a8d721d0fe4c43f9bb7556529e3c1f1253bcc2a00b029fa89a38bbb7b56b045b51079e281465469b7c927ff8777f0118b82718b3091d6f4399cc2bca8e9e8879ab9fea11c80a8355be86b820cabfa648d192c660e0fa06bfa7e6bf4d7aadd5f518bbf693b87ea11c2cd799c204401dc26a40a1206bfb55e7f30aca9bc6367f24724ae2e154a3387f11f8b1ac29cab336739a93a3797d3095068293c973a276752dd3902dcb1e8a29cca262da4f58f20a8a383f46713fa30486c8014d76909f0584a06829ae885452eee068f8fa56d30272c33ac9a8a37627b0cb6e605f98633d447d62a030332aac25ab8ca87b8470104f2a8ebe1ec035af03a9f0ea0d50d2b6951a0f143444fee6609a1bdbc12056b74bbd988da1480567882751ed1f73b9ac9e2c9a027be4e4a55c2f90b041cb738c68ab00e97a41ff8915122a595c9f206e67cd716c085d0a3230fbe3bc6e570f5d3c9a0c19ea0848947c2ef2859e0e3760143bc4b43da66ad13e1cf3cc5f20b84eb1816ab63f45e691fa01755ecb79c07f3f8d6b663e72066db7a41d9be2636c0376ab7ce885e0157c6bccc298679b0a545c5e564d8edb9d6b579a57e20a9609615f407d23701d603b048915d375bc1948f327948e4873b0b8eb5a0595f1c80e598fc4426dae47401ec38f4f5db55e0b8a91250fc541b17f590836cf550a17ea161e2ae0e3d5c94be5834ba399570249d3864f2d8bb35ae1ba43df43679fd94d65156f12e50d6f4a572d69ce013aaadbe1c460fe5fee9734112e042a6a343cb9eda0755e6246727209af1caea7cdfe801af90f680ac2488a23b7a6e44a190e5927f81da30ab7dacb9602acfc33b9a2403d73cdd7339a33783c84c8110e6c622307dd81c45762dd43e00b90b5598a1182acb0f0928dee8d01bb97e332a2e932bb4ac49706bfa16f2e3fcbe7d1da2d2064147ea35f5d342a81305da9181bfee18959688005ced48b9b65e9a107572c531e5cacb3b280e8bbc02901ceabd217927072ce17c3e352a74163691a0f49602a8a658a5f74e0957bc279532a84dd45ca84e8d7d4490726ca75010ec47a21642064c2a334854c7151bded885d5306320dd813bf425bb1b414d5c270afdd5ec6fe40caff9508d593cc4624db177ecbb8c66f66c9192f3c8fb65e32b76ac5a1b16b695f5181e94458f30489539e9bbd3adf0ee7872f16e3d0be956220566f052e9d33484d1ba82061da9a60242e60a1913bc63b3313fbaf22decdf6bc8247fa8fe7d2e164d45b2733807531296780213fcce6d27e45b804042fd47b0e96608a2b5d92586d78f2528dec2452a009a73c3f59e376f7de3dd37de78ffeddb9f64563bcbe47015a7078b1dc16cfa42b4dc5e2e8fa7e42c88f0107af3379295bb32b2dca8e8a6c24d6ca6782fb9943ea3e56cbdc07b3a33066d32a7374c864965a861364460315ff5e0a8f4c565aef3e8facd914b1e409a425b920bdf2c26d1ec493111caa831cb88636eca6c29a06b3408e3cbd663e0f6a98c463b206dd23c6abae92e0e7dca682cba2266c46d1753d53e6d4bba744bb7a2fad8935971aa945120232aa8fe44b5bb1904b5b2088ae5b428b07c64868b0a9753bb9c7b5fca8b8ad72824a57756e621f0647087b3b0af07477a085039b948298f8d5642575ebc60f6a0c837164d8e94ec2a413e72173c706a37493e825670c29a36ea46cdc7304efd5d2a3c424e048c714dff00508ace5825908b85222f72fbcf05e992c4af874416b41abcd4918a191a89117c833738fc001eeecd54a1e7967fcf9caf8887a42b3b7832187fdf8bfc94b3e33c93957a132909c797ed2a15e1fae20f974632ddd0d003eba16e6fe5e4ffc4b911c14a5db25e83c088aa78accaeb93d89c16a504f34138258dfeebd3abe0cdbba5adcd06f862f5b31527d3818831288cf6e48c7b8f8ecadb8749c6ce4549a640fb21285c23104192ce0f20bcba45b96151bb031933c64112d1041bc0d2222b0cb2e3d5b6acbf60f25dbaae9eec4e85c195fb2dc5a626d210ea281d2d31427894b3fde5d0893f5bc124ae72c0e410856fc24ea7a0cae8684676c292d9bc498ea61d72517c0deae6ebf4659fd16b9f5e1e5abd9fb1434d9a122c6754f5cd316709688a0c663acdf49a4ec455e0342c1fda82bed7a80119cca53645bee283f47becc0454a961b70426cddd17a49fb0dc5e21299855caed0ce6b1e97b2428c038c824f36ffd1186f36ab40039775a8c8a0c25cb921e70425fd72e6791bcc69559ee827d01ad3da9e1aaeb754fcb2515d76c929f6f529101b31b61f88ece5b0af34796eceaaafd979094dc4e65ed50c1fb5d85940575c3a53e635d04f34a3a1eed53b2f0be9aa8a44720609b2b9b03d1865050c176bc6249033769645a1a56aa92a45036579d96581d080d3361111b903ce7f8ed046981d23de24c0e7e776342788c60b630d100c1cf1dfaa05222fdc0a58e7872df20c67e99347877404a96ab091221941e5b7d023dbc919f71e97a0b326c4cb530cd8c0b88a6f6484fa8d49f3c5e84db67ddfa4e939f5803729749323bee9c6acf2460c858944c2853542a925d0419f8d07d2c9679ad9aa5ba00741788263d407f3770b822eea793ac0c90b0a0fbe5d98012ade6dd2cab2b7284413f82e919e210b25e5858bd6e093fb600aa80b1eff9d563c4ee61432eb90d3e2a4287e0b832a2741a0b07bcde6613c31d0a6894537de97866d5a26cf4969e297398e545c060e6c6f22dc34859ac709b38bcdd65cce6d484c7ec685b3eb0042113751a9d9e4619b88e0ae7691d0e3264220723cc6b5a1752b91a40600d6bcc298eed195d31bb44eb46da38e284907f658825e88cba1eb6de7216de26fcec7590b0cdc0b66e14de4f80a23360b063785186621756552bcedcb1448439bafa2cd3f9faed5b03f14e099372cc38a336a4a0ceadd364d1cd572360d93f9f040d04ff2d9ad2813cfbc439717052a9e5e1890df6615861d368de8c03e116f5e7948a5e41a50a0d4651d70a2ac24783a3014d109c3992d0d679ef5183a3a9c8b3e306c3d9c9b486a93a3c110730f974ecf93f32b7d457a867d5380f51a8c8cecc9024abc7077599b126078ae48a5489ace5d1525f1ec0ba75f79695c2232d4fafc0634967fc1200bb7892964648bbf19b307ae844a9f6ee18497821dd6165158f2ee8fab200c6c0ff4be08aa0b25139286fef5385d5d09b06d0348bce59c8a000796baf472f79ce104953ff03cec5dcf4c805dc5632cb4b784571afca8234a54996c25b25da6880cc3791640cf909205169a9b2e8f1d731e7ed8353eef09a9cc33732eaa4653f83934aee19e2d5f8e52b5d0ffa6fbb8a8b45b31ca766200b8cb24cecfa29f4731e6aa3e309c5f8d402cbb13016512307ee84331d38cf957226f1b0c99fd6ea6a95e6619e6f2d0b054905ac94ae7735fcd99a02640d9474affb92cc69ac50d82db2e1764aebf9907357585b1478cd76441bce3a25654945062386c7c78f8f58845dcb943aae9d35e0c38106825d46dc0121af8e8fba7584396d6b8f832ea5869ad802bc0fc551722600ca27f55fbce6c7b2f8ef417ae2ce23483b5d85555e97102542fe92fab13eb7b35ddda44f26d597ed55e8abf2d57f3aa781c8e36f96d60a4c76a3226bec55703369db2d93c916ef2ecaa651375c8acdc1496a63e3d961ca8c4d00fa2aa616f8aa11fca40be6619a2d158a7c0b733a9fd4e39ec88ede3b04fbdbce3f164d4647ac8f6f21bf777ae5a1ad76d1f2e7a70dd4ebae5f51f1970c0f086b59e10f60a6ec23f70b51f3b95b11cbd0ff495ea26267570cc09dcd447e6c2c3c36a522637b870360b8f8c18129cfda5ad18235e8bbc39210e42c125b1cc0422642e4e95f8ab1a2163d6c869035cc49dd0754cc18998f5a09a400e3fc49d95b22e490c322568488357842a7fed4934117ed2bba9f437b6b00fcd2dbc71551136c48780911826f67f8ec635b697e22dfb12ebc92b7ff67da460e94f951364755fd3cd9a322a538d71ff1ff4eb2ca43f61cdec4243bd67153034455b3f488c08492c332b82bee5bd0d24b61e96d94852587dbe1ca920b556b7ff97e7cc02917bd12e631b28c79d659ab28e834862d0151fe721c3893a2e006bf645ebd300560bbb7d8981bec3e2f6e3a4144c84e8804a266cf31fea71dd23727d586c2a6087c82cfc4731a9c43f4bbc48a6c99c29d0cce315bfcb3f5b5041abc79b0716485c27ca185f9a1a4c23f0904836961f84325e4e9251e7970d36995d5f5f95837a19bf8e2a6473924767022813229fa084a0af8443398108a3127ffc75997436b9750006db83cd1fa47c8cca8ef725b41bda04303d042fc95f3ee460dd62a00b2ec078380d70f815bcc3227804d859db99444520212fab832dafaf4751005c52ea2e03631b25c7ec6aae833efc0c2adbf25d15234468ca03232d09440686d6f0fae449588eb180da07621118a119db0d2cf60720658ede61ca4b65585404c3976561ea455b42a198879d75f126b44f513455902f03d242d283179746ce31f27e67645a37aa65d83566fc5195fb287a8876b7437e548477fa79ded5bd3b3f873b4968a86cc0ff075a4948e3bbb5c5c951291e89d32f678b94028c4cbfe0c5a930b84ebf0e73adb228a19355c3249f253b9ec4443d6262bbf313544f969d989f71d65a2f066146601eb9084acb9d885b262286952f025eadee19d91dd41923685994f097b5cca5aeda6cbb94c6cb1c6873b7ea2556138820e711ccbc86e0ef99f522c2ef39058eb838f1f66f5d800a02233b01f2f89d50ccfe008bc1e7fef1333a81fb3f0b3ff364c8d0a0241805d1dd12bf70686c6d8ccd1663dd6a722d6408b5cc476b45d5dbb881094a538ef40a7fabd836c7540b6a8887e499271da8b1a0c1d159bedc0a1ce45a7926c552e12cafdf1634a69b3bd0b72d1af8a17036e224e0d9135ff203e3e9574e4af3b2cf995f5756a1b72a534833df154450614719478f0b2a0c0f925d4c80d67d1ee3e9e9417496e58758f4857f2dc789a34d51421c379c8b8bc45f41062854a18bd5eaac2f5fcc2e20d5ad40fc2636ad462b52565384e812bf9ba6cd33a8bb4317b10e8edfd446ef6703dc93e5d08243962604329993505f7e5e42498b09dc8ff98c8da68374eef98fdeccfa8f2292bd3eba307f8b7db45eec4f0b237dbd741860627b7673bd58699b398df0c729b74271cc84afca457e8a8f421a33b3b4b18389e78847a5568cbdd4ea3312d4ec16840a898d5ab7b5f8cf4f5470f6f3ba34a8fccb6db69921388b7b8edd500dd1f1604208c46135996b041eee3a390e11984043dd89f5465368847e16e3d99d1c1b1f6b0dce8f7c8c0c18ef3e142a4e5be47c43f337e0552470f06a7b751750c6b9e6a6600f69b9f7d1a23a223f5f9f8a7605d07589380746fbfed11f0efba741a16586f15a11b1544b054197a0f513cdc9533111840cfe4f3dee09b87f0af2758b903608a41cf9ee438a935de36dd08994bb15c326e5d7696b7b2641621f7f1143eb3389797ab0400ec986a4e031fb372f7faa9f5b7b2227c61ca85d9eff6412b443d979acd663894da760f50d63a7a85d747dffa68cc4ec868e678e2a8e8e80b42208f782a73f30f6f37e4135ceb16124bd3ca9e1e35e5b60447b30545c490387f246d7dcc6d13c9ea0c1ff8cdebb487d3c2b7b16cb0179465e66543e4f00e3e54bea4e10550a10a3df707b90f7e6b265093b5c2bb33431e8010e3b6589dd256675fbf09695e0fce68a92caa1959e257a5d2089553bcc549b982b081bdd51d57741dbd7dab6cd1152c469ef6839f6a67eb19616c1104aa14e80e91034cb41b63294c6793e44100267155674b1d35de3ce2d68680a7ff4f0cea1d65049f6a0b528632e6ca659a2edf121852c865131e0cab63291bc0a50d93ad902f675a9239de3a9f23276de6e93d815c3929accdb7d31a8243a233fa007ac2aa832273f9ac7ae5e4c193d005fd911be9034dbcc23731c2f6a1755371ee4f7bedf4d300f95d8cabc1abdf6ec25576fcbf8bd289eddf40b8987e0b6a88a1584c83f093e6415eeffb38000b861c72ac268454914d9d81292cb3879d888832a1d24451fc2baee581d9330fd2ed82af294412506c90d1b45c2992d35c1baf1c2ebdfa0cc52d9571875dbb8468e99ca14a87a93e5c820d654556e831e941c5b839a81340a2ebf0b27903ee3a92cac174e1c3676e4d8436f0b322ece8800fca4d4d6806912d804a61489f0d726ddd515eef354598053e4c544d38449e4d3cb9ccc402bac3d13a825f72955c9ffd5335eecfe718f512018f75f04dc80155a5dca045321e8701c9db57f0ad6f2bd33e2f8f158255f93d71e43bdcbdae458ea2cf4ba037c453b02d51a12d41f178cd9f95ea5192fce56d664897fb1b05433483325ab61b3d7c0a4300c4e00d6708b73424485c9e6566e2b38c413564fe151c8bf5eb64eb818cf37c4b9d6c11d09b94fa50598bdd12e5d440c6ddd0f734e566202d7457420673feec9995c6e2f8ca30b6176294916457b0bfac9fa0a714f1dc4d622cc1b8a7d7e158ce2bad464a976234e8377c697325f7a801cd6e3ba004f434ed293b124788f0e9f3db2dc7e7ca2625b7851f30c36c96af405b31a63f65483a0e8335594ffcedbe19aa52281df3ae3772581fbaf0412a9a9e5635002dd70a7746f0adccffeafac27835465f58c47deed9b480496f5a4e9bc0abd57729542545d8681f0ba633cc909339732856537a5ffd618dcd12433c6243140364b04ec425e047fcf14959601d8aaa6b70223bfb1f703ee4e4618b7d3b7b160084868357e46da9ea5eec5fac8ae4416713bce9ac787eb349a780596121eb2f96aee61284b4fcd9063ec1ad49f292555ac5820c61e22210b04744b76827dc1123c33c8ee44a70c81b73c0c419c839dcd159b15e8da3b1a640a71349683ae6f85568442f0bf58b7ccdbcd3d3ceb4342159d310dc907c4a80da8656493370293b6b0fdf21a32d9b1d9258bb104a1a8f1b243cee0efe79c244eab3e50ae2b7cbd08bc2420ed66933c667f8c6b6102e0748bdaa9bfa474fc6843800522838d0bf5182a85caf3cb45f518b8dda852ccfb0c07e0aac078ada6efbd09fd5df0d6c163c4cf8d9848158fdbc17ab28321a280a3978fff6cd5a69ec7a252627b1ec6f2b5d3cb2be83d1406b43b76c634cccdc82b70959032eb6d847326e586057550987d871a3ff7937bfdc8fb693c960e59e728044877d7a06653d9c14163d61d422d3fa989522889190ac99ce267b2af3323833bb75065c241d448aaa549a2e8cfd9638e2771691b33cd219657f32be764abe9b7cdae366d63226f1e222b582cf928b25860d83efdaf2296cb02bb049d7af4342ad672abcc05c825e27cb5b6ddc48c6dab92ad362e67464259f3209f40b307356402140a451cf394e45908a4b867071d006e9fa9d38f78642094be8ae55e2c132692c5bc210ecd64d80570598cdd4b4957c24099a6b7c8d11b301f12aa70df428406e594afb77dda20f2e5bea61c7738ba61a8c5c68c127984b5cb7f97d5b0109fa37f1dab3745f4e8c24b35c32ba08ab6d6300c51e4f65fbdf4584015e0b3e35c3f68d5030404f4c8205194555d032fe6d61516e70cac3ab81701d2ae1511a849ce3094812c83948b19887d1ea6142aa831ba0ebbe3b1deb5637eeabb41ba48a1914517bdaa0fb5bb5f9d7e5e01388892792907a5a4e190746aa7d0793dc2af6ddfc139d797abbf52e7af62e960ab6d2f580147b12ebc80bcd0f9c4518773d76e7451bf8568f67a6e498e9ae5b8a81681ebd3bfffde40343f723d778bd5c07392284bde265e9280105d348c25a6e18f1e10f29e2737a5baf3fe602d5111d3cbfed867976b2bed28b81e75b05dd75cda60b63cef8c524eb329bf02108070343bb8ae1188468e6b299bc3680b1f33640f5f0346b35548ff9de4a1655ed8646a25ecb6ec0014d8eea1caa28e972c6631438d8d395aa831939e4d725f25ca17799a365b604fe46e5cb4c52096e1427176e26705e93c13c01f6d0441132685deb36e0630021c4eac3f7c181c9fc22f107b5f888e1fa88c61f3d06d7d4cbe304097b0bcdc6f901f7c892523d2fe75d5f3c67af2b0a5bde06c95d5102fa80f484c511043ab4bfc177783a4552a98b0e1dd9df5399aa2112df249f6e207195fe6e2cb6684d997283f07a867d484f4634d8c0e2276b7096b1ec33eeb3db2fef0cfc004ae7d2f3d519eec7d063d51d47bea170080ee0cfef9d540787d2d693817911145b1174ad027144987a0d6060ba34947c863a172bcfe99490859712854219bdb249eabfb0093f1e3006413d9b0a4c067a73982042455b02b6a89b9294b68f53a10baefa7c6e81707f73317cf9558fd5d1a65d327810add756c01b956ac292ef51618bca98ff4910db15e8cfcd4f0bc07a3b70d6aef62136ea9d09ee5176b80c23ae3d068a65a5fd3fe8cc63dedde72da4dd50bd79c2b6af510706bf4a7ee17aeaea88727f171c1caefa927cd048265d50c482d04a2f41bc91d1b37010e2a42a4c9af2d7e87661a3a36334fd1b1dbc885a193f5c3328b08de1fd270c413a8d7f00554afe2fd56bd5b3904e5d9fa43958ad873177b0a050e2a0cfbedcc13c59b79c359acd477abff6a10742b5d335bfdbddd3b12a91ec8946768916312b656d0e8a9d375b3be8edb79a3f02dcf1424c8ba0ac092087be73d214e33bc23f65256e6d2621317690a715daebae09673b76e060f6123091d3223e1454fd02033440aa1d91ffb39a3b901fcde55838e9062e86c036dc730ce580852a66d14ba643b43b0be84701385392686d875a99d0af9459dbc0afc2c7331f99701e69b3d67c61619b2f72650519972d23430c1f78edc97835a6e048c64f493b2c90643a5ac421616d938bd5d467a39e22fe2b02b5cc43d19f48598f34f27f04b8bb988097838ac51219f05d57eae41677f64b0caabcef34f14434c920c448f3a37716ae60769c486b2ae840e2ecb3c0190879475027206eb4aeec2acb991e3e22da458d4be2f906503be4f5f163f45ab39e3e2c0e5d801d729978aa0f87f8f68ac94b82005257c2da8e186dae5841bac65efde576274de8ab7da2f427c6b3482cc43f2740fe611fcda113b4ead11102f703836c298d1a5642026b7f10c3324799bd7cb06607c0ab6d8f8d64f7713fcf6777b5e81f49e8996d9170c8603f0ae73614f5d3fb62514546f6e038a5a62a1c51261bb2af86ed52145574d23ad459fa2863ab25cd50f60b069a3cbad82380b5e9e70c4ad5c2aec30d2a1b1a4169882f5e1091ee5eb2f233e24bc0c401d0ba6d6857616270bc22acba48e07e385e5f51b4e4bd3e42a7fa4fd83842bab3a3ceb0c5ebb016356f8170610f7c29129e4bc3230324805bf83053f6f4a0784e74bc631e39ce4ba397578849ea63e484b86de937b741e3313493c76b7603a3dc25e14107e68de23fafccd502367a948dc70644de12b008eb39278442e123b45a0a096f5bcd9c2983c00dfa32c3fd34c1bd138fef61cfac66950e82550040a0861f40f024d450129711ba4af2e6e1d2d00c42e8eb5fce406c81005f75760ceff5e5052102be0d0a043cea7dbfc22a9ba9105db6f1f83fba8d7d458103f23225541d268d4bc05503f570564ab1cee8e924460ec869753149ad2d2f3d44a7c45f2806e32bdc5e1dba731242f18e8f7b91a728f4b9e9c86c276f70ae75f4c32505dfa85c74006cf6de0305ca420906d1f44c8c6bfee34c4ff8987ee2d0284639675e305166a9ea4f9d7696ecd377d3681a237f4ff8677e224b1e3d05a3dd1d361b87d2325f6b5d840b8c1badd426b1ccb5d9f457bb05aaeb12e9a315b17c0b370c1684ad829c53f8801d9330fd77ccd9565e3a95373d12e3bf43fa898b91b8e0846ab2e8450c2a641218c2629c22f6b7f05e09e075f6296c37cbd67053dbe8d76840ec099d1f4f85f82685849dda20bcbd19e504a34435d706cce1f5cfbbc461e1646af45a9fe100dba44d248cfcf468bc8471a1ef9dd41f496a76ac44dd0d1021f8647c329191df135bbb9edff229adfc4476374bc8f2ba59a6157cd4cbb4be42b5f86c985654f2ff63a6598286b3fa81e2f830af6c83411788917af92a176e934ab926136e77d6fff66d7e7b20f676ab511e644a5261d9a113a4ead1522a05739a1ac8930f0eb1c50d4a0473b42e72e3aa3b0729907c4e060c58189a9faec210e1de87de02411f897d975d3fb4f4bb691b04fbb5508cfece2f1f7b87bcf011d4e4bb04f965d206a2f044ab1f0c54b389c80df30d935e6e99d3cd995e8b4cbbe96290db07d7bad3b3e2efbbaaf899325bc6cc3c8c121d85898ec627beeeb9634b651362970ea30eb9f4889fe60c93858aaeca3d5b07fd027bd25cb2c52a260b28bb92b21e87f20004ead209f494f5fbe868e02881349e1d0f152ac3721bbe79fc6b381cee18e5d79f3025ecd6dd5ff4a709dde9d1cc5e45397f323f9555083f46ff288e1c265f56eadcec40b43c975f5b7e177b5b5e9bac24590860b708b843cdef11ab8908f460f47eba457ab20f7388f4a0398844ffc44c53be9ebdf383cb392d1838d90b173605b0da0ac17f45503336e371fad1b288d23fa35cea9431bbc646a36e29a8c2237408254faa10ed68488439add508733138e3d48866b41d04602aa010479cf6cc15827e8b99e02ff6c1f9d210752cc74ba3347e8ca84518dbde9478d76e3b046d330f0cffad5734ca1f12a6954d529eca7c6b044dbf30817356e1e1f10288359841eb50357a8179dd3acd358ae3878a83594db1784615a37308e86a0b92943b004c0dc9cbaebb1d791885a65ff8d5280e7d5d3a374bb03ef3437f2e088e2393aa2c6d4f8521ebb5617143b0ba9ca603e9b27b161da2aa48a2b786c017a558031862bdeed1b5d03d9e454b7ba60ca0fed15c05b3033b454d95011f473a8cc21f366c6ddea6f4fdd673668af3025d5c72f4dee40b4f264a77c58d20904de412daf531a6c40e30e57b4286a47187890145577e4e1f6434d25301048b41f31b8e3e6dbd7b8ecac2ad01d4d93ccad11cc9d1900b9d2915437e27687f72d0530c62c771ad7a709f340e2767b589117e58e4ae3b894f01dbc3d083049ee60abcb6dd8c4a1d2c1e93717323a6310dbd0161b16b5a5ce4b3f0807c6292cc4f836305876bd94afec72ec43b7dd323ab858851506ae382011ac4739f4a76e9433950679ab2b79523fe489f8c58b2bb4ac9ae0ddba0148a75e7dbbd9a11cc9fb3e44a4bb23bdd09622a75b0a418c41a4dfe93dfdc637fa35e3170fec82a561ff6b898af20c71ebfee6a98ad5303fd6dc6f776015ff5d74d0dde46981c1269b82659c699d01a944f67e124bebb5b9131bfd63408f11f9dfddcfb52ab37e1f20b425b5cd123dcf237a686b289fcf06bee548051196e7166ea8c518e5b9439c93b2c43ba5fc9d2c8dcf6916a3a6a49c653efc39b1cdb1b6e3417b1f23316aeaaf8bda6c0da2ed657e079804fbf4fe254c1702bd8e2c744ca02a785f1745d10c719dd133d724bed31aa0db05b73dd00f2fe5ce85a04a487edc5dc7f21843f498a795c62ab83119c025d962d27d9a8588bbbc0b930e8365470874f2333823ebaaa3272da429da2b7926932a32f1daaabb7df1cfb6b98a76a52425de8287f105dca46f5560a60ae98d02cafac3457a83181986d4ea0ef3c83b4a31c043c6494c68da927c51d6dabcf0fd2b52907fa8a9be5f2ee2b16d4a7605d09e7d9e0c7858748e3101364e8f34a840e2c2bd146cd158bb6cb0bc8dbdc1733819355851d6308b89c546484e520d924911e4fa2f2fa3766762d212fb1e9bd0dd0d9db241b8445509b553d8659f09b95759c80704742675fdb5e5890410f2c0e8a8ef1a0f563eaa1664898f6eb5d3f77fd4fb22e308bfe541fe91c81fb812fdcfbd2149dfa5905a264f2dee89af99d4ddf0c185439554dfb82aaf82e0707a2e9380897955abc11ca3a4252971d691ece2d992712f44af444682e6f543b0f7a473ac5dfb2e993438d82ac18025268bb1a1c0e4cb4a4c5abcd56d2f557325880d64fb2c47f896d1b7e7072e6fa75dd768394e0cf8a9449037021cbad12479e08f0ae9b799eb628a6e224bbfcca0846e466673fdd466870748bfdad39c6229e77f6af5dcd5186094dc2337c5a3ed37442a92d7aae0a7726342cf4dd10dcf04f996005dd7d5419ff83b80a6ad68d187d8d72e322e86029596c658000c04e7aeaf798c8d5c6e34b4d13042804e86e1a88bf8431658ace3c9c7700371850a203560b8121ec30c05806252885462125875863fcdecb595db7f680babd532387124594c4b098ef6c970decbe1310e24f7f9c4c6db1996c77d30d5c337ab08aeb2303dc28a85902451f059edf5ebbf9e6ddd358f89a09f84e349f03a8a11fc72535f9080a393c9de66807f6efd879cdf0ed5624713ea9f843e9aecdd8e323d3f88a73ee7baa57fa04b68e8bbf1ff1ae448fe2b0eba8c9f372bc944cf45b2abc9159a5e07bf725e72396597b02f91b66f452ed64f7c02ee49ef2d654cc932dedb1f83891558bbd293cacaf3bec640cc999a14c69462a356c408cb998206560c26c3be11a4e537284d239b7680b90482e4e01687851b16e73514107806d19e38cd237edbb9a0f8272e0229b41d2bd47c7cc2a6ec3312fd7108de86c5a2a5d113459e235fa6228203f9925faf051e365164dabc07a9230b3b8268736886b4e7707d81dba46db84202e8050c4c3fbaf5cbc6d1d20513a8687c451181a370f0ff24d8ab626d193086b052544781024a83b7582dca493c1a7b721b841905b01e676b070392a70893223b48c6ead14f7062ee99486632de4af155efcf97e633c53da22365273d2399dab13a3acba4ea86e2067d0fb062309961498725bb788a868834ac0143f9ae2559f21bcaaf95546b6b16e2c02f1b59fb9529b8a1f35e895e1ce4a745b443b4764a6aa15f3ce0278f04c863e4c5f12e2212445ab9d9c2535cdac03935460077b26878d9f5fb8070d3ca341ca1321ede5f3ba8594a21de255cb361a292c651c69f013a132c0286853d62f797c7b966a61d673a3b86c2c014fd4516e5f160fbc7901b3de4c74872f3e3ecdc124a6308fea2c1ee616c82a639f5f2a0b733fe1ea551eb2e65d0fff0400a5a1afedd2dfbd7a159fec1454b8945e542088cf0b7272c8495f23aa292904a6ee7a67dfe5ec4e8d95e2a49363f8a006efd1911a4d510d494f6c599face891405e9f04246f50122a0bd66cafd7e8c9c4563bc6a1d8aae49938a7302703b51907859891ad5ff2219a5920f6b8cbc1a6089b4006998420f7e9a5aa99a0814ac626be4a5e5cc43888ebe46eea0c4bf3c7390bed64cbbc41621e29e251313e3a93003a474aed799a81318376e44b87312e7cf22c3eef6b111f42bb48038053b658361cf28462e8e21253db7320776805cfafb63c2f0af313d810879a0ba042a420eb972bc057fcd2579a4f5699895cfd9610d2cc98f18a4d478ebca67637224740dcce3ff181b1f99fd25372b3a6bd9235f39b7b56322be3276a01a51cef5bd05920efbfc68476578154ff5a57f394bea3e0d27f5b99c981d3f1fd42561b808eb004571c3c3d64da346e8ee5d27d3d51e2097532b0a72f30d62a458d5caf62567917a57ad1b6a30ffef9c73ab4a36928370f85847f4d79c5bb21a281dd117062ee858ea08bd801ea741b160bd68dc67b488d2f13344de86a0a7eced8749ed340eab6e13b7402f57c6a7352db2a8455eefa386dfaf36a7016fdd7473a5c6c79ccde111f0a8127f697e1fb1a843fb4deaf981ce0df485e44f4658292cadf480a3ed499f61ed5c180e90b2aff1d821859b22fa1d75ee2779c55b473e8e31a0c5e1b0867552e0e8c92590c8908848a1d0751ad47c09a159be22e275597ed35fc1e7b54582e7918437f49179f4a65a312317ccdbb4340ea226e8b669b2cdc08d08803b8d778015d1f364c8715fbbc772bb859ec7bf6f8d0df1bc44e92b1a0b0935cbf4f53d1fe628de8ad8a2ee4267f8cd846976046cab4ab3bc16370bc0676f4ec3bf08e3f501cea1cf9b04c86cf1e2f581373035ade611d7f5a794ca4583e53aa4062ff01440908511771e2740f74806ea4815d9325b15a899d10bba1f30d48f2968106e56d5f6989cf767f5b97f0ca4060cc0ac26827679a8f72f8a3bb89d8571bbbb7d75d47bfa0ea734879a60d2ef25cb5d28a20b2789f725ba716067e290ef49c6819459d3666629bc4df416c77e9832f6ac75c968ca7430d7a5a64543b606c6bcc45baac345d1a98b2f7a431eb59441e392c9e6ca94c891eb1861d7db4ffbcac352a44a8996d5b03df8415d533ecab2f7331441d54ae9351324dffd5d7146305aefb5bfbc456fae630aaff18165c3f745e9c99ec98b4e6feed1d30baa636c338f4f7d0bdd4e2c54bd4c7e146babb7ecb27079a3affc18d0b0b0c8a113f696a4db11e42e87a2bb24a87060e858e59d8896b020aea84d129c8ad24a6d127f7695eee8748f66c29f3664348e4e9d04177bbddfff465276d1ee778d343287e577e4936a09c24402ec890d2c8d55b882431229e3df9644c8385cf13dc20be159e820676ab630af20982ec617ce4d97bf46c01d2ea658c6e87317aa41b1bc9c6352a79fbfccb9deab1e493debc8ff8622a9d3c197919aee31b6e1c979a59b7c4f480a90113737ed3c9cf58a0d3fbd180b7ba54333fa1edbfa7200f6c7b430f0bb4b2460a615828c07c1b08d0e9f41fcdf6c050d82c3380019cec778b7be4f65ffd2c886b81e622519bda74c8b11bab74af915852dec09488d658a10a3be62bde8f27bc33b8ceb580112658e3c0782b83ba0f551e7ec21de8245b46380f62f8db16b83f67cfcefd93368422a34fa0054e662c40e056202e7cde6fb259760eabd16f0c3ed58dc655fd85ff540a653406a3805b4bf8f852d2ccf05c47986b3ff56e54f1cc5ab67a92d9ae54def0d79edc4d57186571651fd2d899fbe74f94d4e013684230eba04085f8cbc0bb4637edfa33c1a3aeda46b7768e17b793f352c401d011aa0841aa796ae56c002c9275af2684af9d45f8d6188e62549565bdccfc5bee793cb9151563cb6c028e4a1889f310388819baa47a8361e1d6210f74072e026abfe0a3ad5bd029a2bb2692a092f8b5a28a0a9e90f586162986478e3abea4cddf1ecdc1227c842bc5d69362797d9e6e9ecebab7ba9aa47bc7d4d5f4be8cdf9ce177417075e85aad0fdd144e2fe3aae9ade2b0d69588669bb08798f0fbc889ffe9a63921dda5331cea8aa3f4e0765d4539a5c3fb247f970ebbced7ed6256a85922bf988b7a0925ef6548fd81d7529b40030482297f04eec79d30a75f0be9c2e62922d2717f007e4ecdebbaa0d171d03e2441e37b43e5062ffa02930e9e5e3a6778b6665474671f2182557781e6ac080e41f5479abe6a967db4bd88668686ef83db165da98a37d61a9b3fbbb70460fc0ee7a14a800b43ae40724a45e081318a1399ec11a118b2afa2819d522b7d2a001ffa28425a9270ff6188b85d21ae2c0a411baaba4e6a1979d0d31e04d54dc808307a3ca6a2a1883d8831c586d874b42cada8351a422e2097adcb2e152bd246e6cbbd1ad4c385407f0166975afe36d492fa0d709da4b4000fc095e62db3ee17b714a1015a38a9c632f316b83b9730c02b3d907a27852eb1ac78d0ec88e4ae097f9db688327e991b4e96d9736ddc0f4d9583ea2e8e76829e15d572bc0854c125aab0f3442845dc09ce55d23899326fd8182322d67e9031fc3be203831f1ffad4a50098aee20d28779c1b68fc2931640a9994d9c346d643ab674e0cae5435af873ce38aa1a0c088851890fd05941cf1eaae996d7dc6918464c4a529c8f0589d204fa0784401d414140878e0ce9cb5267661a761cd60c7d10367026651944952c0104125784ce08533afd1f0350b5ec4e75d86bc11c9dcba5666bb110116004d6c7f7be55782723269f6656e75fdbbb0b6f06bbd706ad25105ca24d4e05768e8e6b4bcf26425e98d5997322787a5e1febacc6528a0afd6db7b63f5918e902eea55bdeb2b319fa07966384e5d527b5d0d50902b69a42090ce45404c1808248bccce933d07b0b8ba9078046aa1041abfd940fd89ee950fcaa31b4cd15f0c1c2ed77550543d8733502863c3057a0d47ee1c0e147479ec67119ddca55c8a790ff6f5e7f3fdbe11687116c1a72b37f34e7f78602e8ef802b1f87414f2d5cfd7b83c9273311000a60b6ed5875099a06e7733a3aad7a2548ac2efd3f3b6888c5b4b49047e9a793d674153812eb1dcf6ea0bf22fca9b389ac787782d9454ccd9fe60e6b2b738a792bfe28966736f0da6fd02ec5fdc6e2af0f1908cac239508651b2bb8842b7670374478187b6fa4f9df70a3ed355c158a1ee677190cd477d93d17b334d193b564f7e96254d193a97389caff103db0f774ef1bc8015878eff18355d45946ca9fba0bbfe33d8aab9af9d70b0a92c530cbc1050da47e5b864fb2092435828543110da5cc0d878d5da1e316e76f5f6ac49c6f59ce489e74ef5725eda2062496b70f65d98d314fa8eeb209858391eaaef87a9a5986a5279497c2034f0e69b46a11e1945c73254a52eae324a2412d0032335bd487b3bb2f01a4db4833d8cb65604ebce38f00821cf1c2587d93ce18dd6fe865db62859d31eebd173310c369e2a182b1ffeeb5d96abddf6b25677333a67e80e48bd0cb8d8394bdb6d6eebf0041b7f3d9e7b9cd76228954575122f502dad4011f9109e2100dbe367ebb097644619703da927c526adf5a11e022fe4e9b10083b915ad8c5d20d3f60ebb8318e323bc8e2eec933108a8058c66cecae02a2d23ade581c8e5ea583c9a531f1cc9b51bd831a70fa11d2037f1601c8b356632d3047fb7cc4923ad3e5a5d200bbfeafdb3155e89668f168e3466a8640e83252c4a234d04029dc5633742cab37fa2ca5cb4101014a47c18c6f2d73691c4e4d4a791be7447556a74ed72e9cd600c8c9f0c67e06ec6e756aaa10aa7e7f6c06044487de606260d5f906aaf54df82932688b4ece368318a84248548edcf548455c037d21a27985da09ab1274b5594f62b19b15e3917514b0742b2367f49abb2b23cc6c9c328a5aa97c9267f32c663148383af3067927b4c5692d2488f41f2606497a131c7b951614ea8b3fdd5a32b97cdb682b208a7adfaba2097d74de7de64df9cdd1da9f09e47e7322ec0b3d197ad38df54a629e79d9d1e7dc8a447034299cef28b5e6171924ce3098f263879a20181de12a3e15a63da2838029cf15f46785c01b9f53b3aea4186134fc886ddd7237e14721146f4d79ffd281dc74b1e386c9f4e8ce94eb99f4618f57a29b22809eca2d574425f81fd0acfedb8d3a5c7e8443f811aad4cb94c50cb8d407698113a8ea3aaa46c3e86c2685be8765fe03f224990e8c13b84e8aaf633dc0fcb9988d9e4bfb5a3628701fbffbba26bc74c4831697db3b60a61c17f33cb607037de8e7d63203ac9ebd79b2ca6a396f425a8f94d3d5d307ba8f733521b9da9ae1051e6a36eb477421fd3483b0dce759e55b4580516855c26c01943df6c0ee716157dc1c62499052c50090810cc103b15545d35b31e4f239be6558e653f712a9cb80397350443c5fe6f508165a29b73f3a0138460afe9b8243ecfb4840428137d50c78459a0705e8c1a4b5fd491bfedab3a7c49e64cbbc30cd00053c36e9d560b3799a5923a424b7b87991400ff2d034c9e9de4e47fecf95bd2334c5cf904478ca1952e95d50e09fbba11829b726c0e0c7ed2a9b4ba913137ecc8459b54e0533cc9c8ace9d9395eea3386ef6980342bfe170f269ce7bed65b54e024e4960e2a5fa5325b44f1b187015434e96f6b316c0476b7ac2312653464761030e8292b921e3f9034d0beb57e06836fa70586dc87d19abf8c966ea76e49b87c6149645760f7e2a7d70bf55a335a96c59d7972f99f0398fe13c667cac645f4a8c0926174cbce37e7ceecc73d8a444565b617517f1847f2286b9fd4ef4ad34ad28185b596dcaddcd0fa96c3a88bd92e2fd0c3be14ef04f76eb73b5925916948d7dea9235b4ef6c0b5e1102830932652268b36dee8b9c9aaf404dcd2b79fec018eb46bead6dc91e02e88b0e71fa22f82f1a598272cf58729ce69a6b851a7936282b85a8a5bed855f140e2a744e6228c49928d7700243ce97949caf42bf0bd87ce55b8f97cc238a79557e8fc402cf0f9fade5ecb69f9009fcce78705f77daa3e83260667d26c414ba0b25215d3e7aa232f6bd73a374ad97229a165d1055d3ae2f6011fdfb3eaac73d8f0298a776f5ea878abf692eef0da8db3d0b073bf8b93aedf2ee86f0a403efc506e9f70bba247e63d630eb1143d69241876032f269c99c51694eb973d33d4bc4cd4e54eb3f5cecc71b948fd379ec2494e4ceb12b8cc9b4019eac324b138421b94f970ad8d32f242ba895ac8af87f6a068f3497a5ac8b927481bc7f2a086b42f81eba9f455f9ffb815603d126538998b6010a9430b039ec8d0709b07628ce49338a0039158d07c13a2631dce700d1de6dcf8fbcbe9fd2cc63bebd1f499a96ce8eee47da3a8ed28231df26a846b48773d20781486eaa405233d8a08dfc910c410a918c810ad7ab5bd5b385f92341e508763dfabcf1ca8f4f2e059331c6f5b8eb7584847ea4e623ccaf98c0ab1c4d933f417ecb22c5d1d7479a03153276f1d1c69a73c2abcb283fdd1f59b7a165382fb02b43cb96fe8416b14a5f56c9fd85110fe6c388d10b7ee655eb8c29a8efed308f5450d62ceb24e35bc3a54cedf2c8e4964726feee2188fa10180a0394470e81d86beab13a7592135c83413940ceffd245dfd4031ee39039695c3d155ee6212711b817ba95d6e943609f4d6a64a8b8c258c2dfbc4809ab8cb792d3721c382dab3d422df2531976364c3dc490ef75fb896ad19cf1d60046d9d9388c61466960ed304758e41bc38de4eeb442fd3dc81eb54c1b29d9a09481b265c60e808f1c533c7b4435654ef31f1f6b1c88217f2e0df23115ccb83b3dc986ef297cc204bbbc8138973eb088fceb3f525fba3ed02cd4d874ba6f63fb3a1410eb7febc7edf0009010ec99a80f3d290e4461cba62bbfabb3b1bf6c5084fc6b0d28fb3b2d1ebb72c652a4a5ae93beab36e05f3f83855278b6caeb76aec0bce1d15ef42ae8f3b5568bbcce73a655749b3d34feed0285ba1737a6f855daf3139450c09e9a0114e4275a40ccc7ed808e823d9a28f4d836b78a22a58062ff405a13d1a728a54aa76bbc5deb39f2d119956c2ab6028fd2b017ad1d29af58f734294f96c50c131981d72cf3bccac479cdb69ab3a1fe30399014901ce08dfc5b951037d7f344427d4c1a10554e45f177c0707f7d440b4056fa169000584cb2dff459e86460ad77174bcfd805dee045ff003d3e8ba5a9b879a72eb2af89617dbd071f789738ccec592640f16ef11c623dd46a348a157c7da9f0c2843c1567d186c81313803e585cbcfa58fde22a0275f585ea28393bf0c522e008cc90f4caaa7299180eae65d2c72930c1d12c006870bd1f350eba26054db4405b5ad3d1f8b71d8455f2dc2640d3c31ba423588f01b48571798886b898340cdb95f31b86039f5758d14687554da8f7606c71e3a45c6444ea5d3b09985b23f1fd8b51ec35e8fe17a3bedb60e38da8df16294a17ba3007e6cbf546199f034f0ab8c76c42fad5c9fcd7efe7a59527e7308f259ce0b8d72d130c2f18ec6ca08336597c2e235fce01c1f8f1da88d519a627ac1239895422ea13780309c887895f81ff9175d402166ace37b853d7ca7859f484352d35f345edf4c931e373533034424cf8c7dc69206911ea6040cbfa50b00298ded2b29e9e8dacc1919559a37004f3f22f8340cbb1bcbe1a3237055848e0c4c96d602dbdda3099a284c9a1db2de75346aacec9598986affb2d03f94772de624007918c172325c5547ca815408451f7df2e023b91340e2de86f6c6c58586c6a585968c306fa44e7e842ceebe42379394e7483c37cae398d20e76aff812bb0774c6560d0c2e1da6d3a2bca3cfb26daf606b0aa4d7feaed1f3f11565470402ca7aa076a5916848d2b0c2c6db466e5384755b240d82504c524bd3789b7300ebf45ab1fe1b0e526f8eb16fbdb5307f48a4ae37a8bb61239d1f0eb2c3c472ee414da584b824d3c78e07ae39bb78c9fc34466f8469d688307c6d405dfd2410770dcee74b17e1c9408d02504e25843117bd9a19096b9717bf7fdf7de7be39bf7bc7dfffdb7df7be3bdefdef3feedf7df7ddb9b7c94309ea5acc4e4df1c1827bf89bbaabfa3198717f9ce9a38607cb7b759ab80e7b556a094cc5ae26f395b0971794fd47dc4ce118b94a286a9e108c4258a3abb93bf7e06261689672d099c40f0250ac4f4756108d368b1d363064ca4596b8bf53c1091370a3625aa8c9debcc0429beeac064fec5bfe066acacdf0d44c65fed3414fce5190da7ea44f4d94c8daf136504133a636e6935c4c17a7906eebc2b7fedc181061ac88d78f6cd8a2b58b9cf525aaaecf16903aa37f881313c793ffcc55ab74f3517164d33ac7bb105130a74e6af719d2c4eb41d95f224681131b881ba44039d385a95dc1e42107ae4965a85531ae8b488248c98d3861bc861c8d8a13ea89e0d6869e03dd344cd22ee9c066e64f0ac1e5244839e29f5c8f2a3c60a35fafe79e7f2a0acbeae784dcdd6b0534b2401acd4e74604820c86591e54de90580ffbe9326fca0ecb3efaca37311254687a9cf7479af2e758fc29d9085390d947dae29d62eb9da1002c65c864d3c9cbb82b034d4df28aa6b0f94d1a7407c93563b3244db4c52be15e92f2559a6fa57e0e48afa171a72836818ce90a4e409740574a9c89b67e17dce06dbb0f6fffbac6e2d955a04df5f1fc604a322e503f15f1b644a3e2d911ef41fa0a0be0f7544c4225840c97c58cf62c0e7296f34ac577068b09f3b0166648f247c41a7f67f42a390ed944f2ae7eb8bd9c8aa65063cf6c498e30da823a7b01fdda18e3bf7f4c4b294c3651b59852070a0b4b3f49a03758ac2537e01afc39ca3374f09a0d1d137b303e092abe448272f535b85864cd9760df65f1d80be7694a931210f93387d0497cae9bd341094514f14f87b2297fc0a082d6fb55a454885dae8f5bbb773a66b110b0a7a2e2f47bae235125d7f899401530467ad0e8ec7928a05562fac493ed5a4cacca3a22191fb425059c9c931b509f0f1c5ea1622b51332696af31c01bd21fa2ba83c6814a435e606456ee6a62acc1f7f32b0f90252f9a3c46d985a79da6c52f36269ec8f88b4573c2c9010efe6318c1db6e2c1ad05c6c75b298a5cc0ad9a938415e35f9612c247c51b4eba7647326c58dad3bc1d006726359a109b7b1d8a349ea0258145377cd00e0cbe98c260d2c143823d85e401f8f23be89476cedf60b68c5cc1445dd7e54cc5c7c4fd4eff67e2d18c85550368ae722fded4d4f824328772489884c225d7db0367097fc490498a23730ac6a18bdd165176123201a8e4a95e071fee5c85982dd5ba26620020937f32c4c20323e45d00a2d52c48ec7e4f0d23080735b29ab7f147529d7158b3db9c06bc2a80930573282a4e891190174e597c22ebcf40229a68d38380b7f4903b10852250d4081461bdf7d231ffb460e0240b7fc06451ac1deb211f5a05df0f4d4acadf6c274c95b1b1d44d582539ef8870244da014862cee3a998869cbdad0a3474718c4f05e5a6e0710dfb045d18018467b87d0952025b0e0aab78c0dcad587469d85587fcf49a8c2774fc17f8dcb0bf939d18b6343eb2434e098a415e4d29a6f917819cc293424d843c6b2aed9244a1f3a29e72d177140afa03d831b89b63cd9c2308c92eb44b003a1e6050f5576b0e834a5aa6b662d112dfcacdd33cc5f08a34385a7b3eae81024e66f0f6b6d8d9dd0a78ed64ca6481e01e0447ab93450f1fe8a1d2844e7e24b2fad5dd00c4ec741fe93ba5f5d3ee4dda5e31086713a8cc74fb6949290c495dc15f441c5d9eea41ab9048a309244d1bd4b766cb5d2e5b4e4b5141978099bcbaf2c011881560c5203bcce381ff2a4ca0389aa344c6f76afff96760b84f7010b8db1556110fa73367e047c3a9a6f2d81934a581d3c82659902279f4192c8bc48d459fa1da9c1037f4d5ec504f1a80e22e8f04a72e5848bb01b7cf7978795ec36b52170dab1ba6d55d19ea01e2aac8a7dd2da549dac30d6b6b892a2c5e7a9623e451a659dc5c670dd1952633b861420e9da4b0a50d25eafe0bf1cb5ada2969e271c76ea52dc22d7433db4de73905984f99ef1d6895068b0e3e464179a207568e0f6474d45e8922996003f9fe2c5237f38712d65a062fb69fabad9839f0cc9d79fdf04ca86b644f905e8c5d16a8fa00f5e7b8b3197f5629fc1755d54decb44ac14b64485956c88ebf2bf0e2914627a9505ea5947296bbfbfd4a4d32947819d20ba34a055a956a1c85c334ea4d9321d40feed6c7867e40b8b783b45b5bde9fa8d67d2daf7d40c300a3a5f0d36d65e0adf5b336dc4be9029a430fe1bf0174717df526445900cb094fff80f9dadbe3d429b59a3673e4440f6daff05c6520aafdf997a8dda423f948b87b43a4fa328e1578dc7c7611819fafdfb8071e36924210f2667a651b136899d00f2af4f4fe3d0b34bda6a61838251ff7ac7d19c333f2414c56eacfac5e52a5583d7fb5dc2a88edbb3647e6a4ed757909e9248db0c1909935eec8664248cf3ef7c77e79617126150dbcd53032f5a17659bc61e22b5e4dc7e4ec210225411843b220a1a186093eba22834727bccaa48e8dc64c95da74142ecee5927420201370f5833697360de49d2a48e32cc26040fe4659a75fda1e04a1935fecf4fc8f79706e2050b288686b88ff98942f87b8cafb23de0757d6feaa27fa09b724339e6add3609d221a5f32e46584d09446002b6af3f5af7a06dc155cf71d13c9349ad2ba9b748a9f771d873cccc1335b571af4b5684b38c2be1124336eefa163dcd8ac21b648baa82ce509026b37fcea1a95de8b2d730e981981490d1f354c13fde5849b4f20c1f3fd4089fc6f794f08bc5d5457e11ff1e1471da52422d0b1b788189f0fc9ea9014cf88290113b88687d49c520b9b4e7e77d875261cf8141db33f042e0e8d0083e1f25a189256a11fce1301f08217e6a1fdd218e822c309da8c233f04e139d9fb47c3022e5868298bc00989118dd48c062f0f7e78ad8ed1d125d8141452a5ec41db687666b13e7400c6185099d0922de30c414f9cc1f7521cf18184420ff9fe2bdfc98f36efa70fb100a343b839da50ffc6cb678f812c12f2fab12f82f70743bf87f22c29d69b58c268169a6c2205433665571eed611ff520f19a1f6e0b279910380c4082cb7a0248d0f092e0f6d30e6cb99668d4124af63e31699f5449106c0ce221dae7aaac1f6834136c5a76f126564eef4a4d8d4ee74d5a68768203c5bb01f518f6e069735066eaa606b2055996c49061c63f8d220d487033de384ac13ac65122b9592ee2bb17b237c049a5fe04e956685d5cba0769b1e2f3d0069e18304e5f2c295988e28c42c60026bfed07f5cf660d6c1c65ed160645451b76bf8d098a3b332f2f9579dc9937ffba8dda86c5823ec5f903cea840550dc2683e3d920a23074a89f37961c3c13cfbc586ade19c0d75290b44a1937ac7aa14e17d91f6297ab1d0b5e08a6aa11b1c7b1ff12debeae3dcc0fa6906a6720ddee4607d020d64df15cd4571d9564a32c3a32d0fefd555341440dc2a702ff2c313d12b2ccc8c932e5d2a691f0982f8183ea34fec4a7f1c009545b9aa051821135b4739e837c3d8abf9e48ef6a53a02915112a166534b58509bea7f2707b771920c7255cf984730073128a28a72041f7d80442489dea42eeb53ccbf6635869494dedef4b3fe4f5e5d90889100933b0de886720d93aedd5638f17d946f8d5d65cb5d8ef4a81b575b70d6741c0aefd558307b92701c4160a40dd3778fd02af82808eda0c2a5fb44d26f857c022aac777fc8a2b8b385979c38020c0d43e613cb43e16fa189cc8b30eb256a58675431da6d44626a3fe6e8064601c71b34e7b37a81ffe49faead33010fc1d986cc24aef2e5722c2d4769066d36b3b0be1d1a0425a6270d8f48816bb02c801e07320010363ff6acf02efeafcb9eeb18e32db13e3906145805a60d0fe181a33cd7d86faa63d5bba0bb26579e58527459331ee6128b8d5bc7e2758d230e18566f00132824757333e3403f60a38f9cd09f6498e4440b9273053019a1ac34dc684f7fe48c372aba03712adda85fe5077fa7aa03a4375be06689f684bbed0e56e3cd6da5b3b81de98c200616097e9485ced4843f105b433cb073e1fa39108f9492b4d8a59c0af981548478755452269037f5aa88d731e2081fcd9c14558a2912f8d51584e3fc9843b1bf0b6be99d8f1ae87771b59fea874539cadd48aa1e6c1908719caa9549da00f167d633b6ba5c29ecc56637705f29b00ffb8587e4ddad6fe4eb4850fd16873a238599af6fbec3f2d8929eb6435c3fbbee4caed452092df5b6acf247b2fe2f41e2965bd8a9f5643e9c643e09af8e3949a2e5440c5697592b1bd3540838418ef0f4088347191ea67a3439924a3d2f629ad1fd60657aaa0fffbe240b3c804b0f69c02b105a64aea0e84fa31adc4d8aa40f522d7a1ee2aa294d42356ee0791b600019a2ffa84a48c185a52fd835cf17f1592372bad62c0c3d27c378acd76b0eb415992aee98898ab2294ee45c8490205cbe459dc35fc5507b3110ae07f2fd44abb81f3d549f3a7056e619915071488752a98ec0384c34855d524446834445bd410a9d96d7481c9adeaa78f0366602600871bd69137f08b4da32c17844f4e77614390d02abef23585410cd82cae59cbd494033e9f828e096c7da198582986d5721156bcaea7ede247a4c6c69956b1cd043a364ea4c7f28937c42a6205a21bd9cd4a878b009c829ad8990398257be01e069e6c270cf2bfdf9f02d524cc0cc075cadcd72579c3b0b284a74da3f8d06a50cbf602667e2bf1465ae1b72061619265f4a0362ff0098d6889e4ecc43bb8acb91a6d00b79fa519b33e600a0a352b7bb05cd607ab0a17e614b9d7921405a4b5fea1fe4c9f3df9623c90ee2adef3e62254fedac3fe100ec500d950238d341ebbac2dd1c4110d6cd3707968a0e2059e4ccd1e782d6e5f70cd53461b56ca842fcb9147ebf57ddde475a81b7bc0e235bc7e569b09b1c03b26d8185b6cce0c29bed64d32c6e9ded281358b63adb7d0148c6dbdd470a8a83d9a89b212f895077092bed0d55b723f43a1a2f7a8d00cb1228677a9fd798d2a8c99d3162f308ceef4b42b628f39adb0bce3f6edcab2a3add94dde087518a8bd8cb0c2fe8cc42115e48ba4c620150800936832bf14816d0003af474667e568c8698586c940b4d96aa7ea3b7ff0f2152dd915c430b6d92afcb373ef7c4820b6669f4984c42352c8b61f2450ab7dc922455e7822a47b0f11c0a2a165102c13c678e1489724d633debe3f0354bbbb6903143cbb15ca2dc7c660881b97e5bdcbae0bd4cf4c251b7c2412b56d0994923e163c731f32e22d303558ba966636cef82e0b6564be0c793d0d4b4cf78118ff00c2a17fd2a28172bc88409fe959101b9075b49d34a7b3b4123c92dabe61cc86e4d273a02fdb41735c7982f21646d9ca5cfafaaf993fd1a9a4f7ecb1736dc6c114d76674b70ed6e7b4fe9ef1f10b6e4637197a19468f9c101b61629b369694581736a312015adbf2eec35c6df1858111b230e6fb9c7cec8244878e1f98d162082ec3479633461f3b0ca29d6b435a633b667f7b6bfb06943caab7d216f871615131d687df9229480d636a890a9a01ffab0ce4818967e1c5541ff6bdc2389b89d6fddcc38574c1538548d6b41fa6d414875d7addb9e3fcfd9734304b053ea76a2fd63456969e5dfccf9ca64bf8b9033b22be3c12d46d9a62cf88c0b8a8975179e0374a82232606a9709b5c37291a0df0e373b11aabc26479ed63e23170477e8b81d34209ad8e5b458faf35ebe6dde877e318953de5faa094dd0f44ced33208b7ae5e2671ce06ab830432338d9243c30fcc46010469b00ef82c185dc57be20219a42948a2f4a1a337c76d05aadea57dff215085aa8b4b6cc6f3278a9eb8ecebef123fe10c62c230849c83161a7dc3c409d1cf0884c00e027e790e02491d93530975578d6d03e9d32321f056e8b736983db1e5f3304c6cb5440f98d07ccc24ac2c8de7670889438c841aa4f7241ac2495b25cd1ea61c466f035c77b7a73531f3ffc9bde5cb1e81e269720b41bfc49ab81586a6e0930a6605ec3045ab7122eac1ca9b135a05df210c7a97a69279354bd4aff30d5f34201d47c368c5f4495333084710ecc7ce110ebb168af5a2cc41a309c8c8e1e787b0a1676fc5e1090903ee25fdaf92f04a0bfa11cd0e84b66a041d6be337b51c046e14e5c8aadbb3b489dd70d6ac82760b539d2e5ddbd174816c9e3378e61859fd70d73ff12d1231a5f9bda13f49de80ada4feb94458bdfdf645a9d7869433e546980a526a0dbbd9eabdc85ca2f033443f942e99b061a35c94a64a5079c5f8275e3cc2370a5f5887de8d9746881abe8792d705184f13acee6d7a15c2198dbd172bdee68305e16463714c7694b5395d863c0f51652cabae272ea2d2b003c2d064787953d76158f0f05a56e5a7ba74ee131285190eefcc1622b73a92356dd307cdaa71ad57338c8edb3dd7034f29674b846a12ca25de31f90a930318acf5a87ba08e778e69d4c710ab9d943a02cfafe2bf114e126e6e8b442979347272e2cbba9bdc41af44c836334c924c9b7c703d123758ef4e526984d4059494c101360436cf34c929565c86fddb3d192839a1bcef4b87a78f871e6bb43889d06bd1d50068880968d00aa4d8172f108ddb031fd342d5f649cee1f9484a55de97bb87e5a3a854a5fd23cee17dca8b2adb973c87f1392955b95fee0f13f8b0af56bd03e1afcdf31999a0f59d99f4bb31fc11eb22ea9c3498ccfb9fd2b1ea1dd937c9621fb5f8d767b0227915841a8bc077612f8eb8b2f190cf4829dca3ae001b18a1f1a00fed3faccfaf32d5ee2f3986ed132e5675bfe618ae8fa880eafdb57ff83eb13215ee237986ebc35b58f57e67deb0fafc14503dfba7df62d8763f5cfeada47d41713c2ab9a3f92faa9c2e76bb29cf4d58733c4999f440a62303d15541db60a7287ace8fce8bdefe09d0b63bc72ca4c26cdf22a64ad742b2800baf7c421db31c6300c6792215f7004dec035481549ed337b6efe61721c34bb1ee86b61b46c2ffa396d9e3309616421112fec8fc7822f75d9cf01b689b4df36b910b4f554dccb1072b7473c9430cd41b5e9984d9becef0ab12becfef7083c59dcadfb0a1ee35b635628082635701dfc03bfa506d3137cae116e3e5903754048694a24a26ef870e01faabb2ca6e2a53a6724b45593b9281f88815f28db47e7fbeed1854cf066a6baf0eb2a0751c3c3f2cd0f88214cb5f214156c3cbf2c15553e4ce05fdf82fb606889082af420d8d1034a542a93f0245f05cd52e86482cd0472b0be9335e30e317a97d154a3977ec7e717f3b1ddb82f5629aa798c475ca7784c9af613da41b040f2a7c0724f8ebad80d62dac3de96fa59f5bf747e5ad283cb0d16ed351808224d04458dcebbe59f3af40eac112cb33d1fe5581d8261d9bf7c436712ca7c2014d30135e87789f55c8f254b6052e9605bb12551048ab8a3ac07fa6f4ae2a9a09cc04263ea351d24d6016fe022ed04bf0023fed5e3214c07cfb5b4ad62d926b2e242deda6440f6e9aef3f1e0b7bf171ceeda6619acff57788167e44000f5576721b1041b6d6ee9d02db143c12a41157783b9fce29c703636e4e2f9c5c84143e13bc20ab124e24784050237822bc00e0c78f530be543a6478b47093224c49800e37a59b154ab4fa54aa54e5eabb2c0b0c081a6d5cbea05d5835564f5723a4146a987221a568d0a86d58392f1e1a164543294eec4e3e442b1f143134daa1edfea05f5e27142cf029a60a2c888a8578f1ebe21415250509e2a49069a943c0972fdf0a160504f6c7ad0f4021f5ce0d2839782b95258d2c3872ae174437a333ea91744d0a452a5709425041f3f409c62e821004d24bc4891014106042c4221902c0cc383a624f92586d911add5cb89470a8712c0103db0503d5427783e787a8081142f2e8c200b6b0e257a7c31a925aed5119493b7a10b1f0090aa81118269414505e5c2ea880f128822061fb2204284564e161ee193018cd11453d610f0038f1d1f5e14134e48562414e90166754405c3ea71323214c3e90418211e34c1ac867824b19a04612204f3d24426494c2281a61150af22302a180078a8606298d0dc6045130cab090a34219a52a756ca53cda082492151b9e0f31353be08613551c1ac48e011f4b202aae86504104c68a104115c60bde004a9851e6058e08a87078f91a1a3950c6a55420a762af2228312e24b562f2b18144eca09aa6789970a729a498990f3c20a4f47982001c28211e1c5480f404531435835a815502ba8b26872a1072a28f5420a8597155026f8d0399de0431388e39d6aa71bd4298503cd0d06b080ad0c58001731ba604016540c80071d9830aef6e1ec062a354c890225e9e8890c4d603d3c352db0a082a3ca20a34b1c3480010c3e2cd09440c26a8b073a708515333081017642083231aa31c2980017585c41c514516c79024a8d101c10014d282575a94307b41ae2b0c10564d6750411b4e683046685851145187929011b0ac00276a4c80820c4c0b0562604890004a8bc685424c3901013d8101d9b1fae1e3c500928800002f0c30d221560c002b2e0414a142345808080fa00971c44f15152e465a5f222880934408a240c20040e50242001441815f9201122e3d171fac137074a0eb7c107070a06df0a526e7826f848f08de04504326b7c1ff8d4f8c2f8bc3831e0c3a1ac782b7829b04e4899c083846f842f040f041700523f3e97d742f5f8625230df0b8bf5ad56a90fe59d3c4fd5305d428b8421ba47dacc955e12e7451bd25a7a2712664d420ea60ee40e203f6801a141f7cc6d95fe4de736ae2489d72849e295da9e06448cee56750bc8045a401ad00232440b480fdd3d9b79cdba8dd7b8bf4871a58ea967ea487677de790b7d52cf3b5a1510046d104315919ad44f0b88ccfd9c278973336ed4e96baf25021a227c5169c62fba675b1dbf15dda6e6c35b5a2c42122234b5583f4fc722ccc4fa2d1140114cf05bb6d51fbd66fd433a62bfb67667c6feb63aef0b082f41bebcf9f1386bab325260750add2936727ee4eec6e9be91c1111df7f17bcbd08523477a8e183952e4089123438ef01cd939a27324e7c8919e9e1e233d457a88f40ce9e1e9d9e9d1e9c9e93962a4c7881123458c103132c4088f911d233a46728c1c29d253c4489122458814195284a7c84e119d2239458e10e921628448112244880c21c2436487880e911c224786f40c3132a4c8102243860ce119b233446748ce90233c3d3c46788af010e119c2c3c3b3c3a3c393c37364a767c7c84e911d223b437678767676747672768ee8f4e818d129a2434467880e8fce8e8e8e4e8ece919c9e1c2339457288e40cc9e1c9d9c9d1c9c9c9e9a6dd1da45b2018c9959529a74a77bf605e3035353ab80e302f181cdc5f8e83bbbb77f70bdded4277db0801801b0efb828a6e87b500e00300702d00d8d00e837158aefde80e33cb371bbdeeb9f6e30cff2dcc33a764468992eeae110200135a3feae8764c734973c7f46fb9bb5b60a11b06e679baf8b890d6498a61032c9744d7decb4467efb53f3f88e86e10fc316bfd88a1f563892a89cdc743fd9169e6726a9516cda2176ec2a840770ba19223840acd7dbc4a8e0db5926681ee56a15b2e7108ce7792600ed80119babf38be16b481022f05dff815f9789034b1814eed6005dd4b24d1d43e7e96b417c4966e21adee131cdd2d7a3635bb4ce65e8629582b69335f6dd1ccaba599345240165a6cc1c5021860a353c49324719d1a4fe2fe822fe161ef63f11dcd5fa44b54749b3d93b9cf797a303a7437d82d1fac12d36b7b82f23183242e5027a0025d09824e3b4800092738e28b16045140929309d6e019e1092786002336e42446016c4ee0dc10d48588d7a98a0bccbcb1e4b4050a6e563809d114e4e4062c57a801840927728b1a2f010d890e6c40384181410b017444e184cc13322724086851e1821818a163e3a14ece2585385a5648c9f2aae3a412428b02c40181254e94a0836f0614587af2e40a2a825a34f8b8d081801c4a40c5154149def8208045093e9044a5050e48a28d0f012cd8f2803694482107b6c6d7c31222d490031c669254d081afd6014f030121a0c254c518df132d75e460041cd0c45810c6a71381362e90a414030ba4f1c527020fca68e24eb1041454b6f0eaa80201191872822343b04085b782140841510126b6c85ae08467c6015cf882ca0f94d8e20024bc2dce209244c6194954513284774410360471840d08202303593cdd174a6f44b14301105d0e1e151cbc30e1f0850e3820b2f723456e0a269a884327c3e80931816703b104920032103d1e4710d19715416030a51b07635439c1073f574e6842a9d9f8c10c56014ad0e24fd05d812e52f03d439cc10516412d450d422974d618830e21495a0b1446425a18a1091a26433a270210f450a1450c9a6eaf4e2262879d3470900115b2bb470c25d2c0018d55080ee846a107188e30cd81c44b96ee13174c3320630b9a4c1738e058a38a5697349c58524717077c2002234c610109ffd24117268608a3032ff6484b0768d06587305cc0128f7095308337ba847604e00138f8a137d0a38d2e4359acb00213141f118235ba806f50698de1c20b48541de802021330b0a00c2e38f0b0c51877f8c0035db000e575742010c61d2a18004b8e392ee02304dc17778c218120d2004460810035b6b84301732840a68696ac031254dc4184152aa8001460b8000c229cb823abc007ba15489b1d2a80c41d35245104c410464ca0052843dc01031a6174990dc1404e52963b5808004d961a739041881cee8079c003b8c0228b2e4d60643be2c8010be630400a34708316463b44308516b5293c6426e08168c7044eb0c5b8820eb42ab250b1638b017050a4410116d04842c90e20c8404190901242e081093cb10397e58c355400823260401264c751037a6c74b840a40105486207913886c02c31820b5bb860881d41b604a1860794b880123a78d9d124c8407080051f6066ac50c70b8a484206b6a7c9124626d4c1810cb49028424447142320d4e1850f497eecaa40200d29327524b1800e0c19b1842929d70555070e32708246a7820d84e0401d75cc27ae6c41041756a0f1001dd421148219a8d4e84069e2071ad4f122009714b82882873a92bc5187cb02518c8823861b814c1b74f0a08bce8b3a2c10461b466bd0d18616e41d2398d144191be8eebea3037460e00525a8715252021315c0c4c8f0f07a784ebcffa1bd15babd2be552a5ba1cf7715c8e24d34882628d28ce9d4dcde72c96610adae0b2d21c28d6d04a2c131f17fe2d04739d39506c2c494a43310c05c962184a924d8911b9121fb7a9a93f82b592e679fd030c74374eb7565b1a5fb05adbbc22cecef679de8c71c21777f2584b25f540d6461c69e8a0d6a08da636cce80194306a70f03e8863840e40c162845d947a24f909410d27845064052ecaa875d14203ae54111c800d1f6ac850495c0a8ecaf811024e00d8280114d7022108800d4b803978fd15c52085164e56f0f04042181ee8c20463a0da6085408d1dd04085fc068e8f107aec38a9808917f0003e5e03313ac500061fe8c00457285183da5303f1025652f01a65839b5ccc0620b688a3071582c081c540b78e08121d33830cb4a773d38d4296a63ef158d25de4dd2b2edd7dc6f724c795f8f8cce38bef303c8bba7ba65baa249da71d6bb21d15717265c5dd0da55b2911d0e898afa5cd31ba9b4a2b75eba29b898aee9c25baf310dd974a5377a592cadd4dd34addba6968dd24740f75a35ca8537708dd00e876794ea09ab4505ba0ba7018166b69695eb39e4beb36cb9424f1ee6e75b78feeeed1f88243409d1bfc7977a2419f46d0e3387349d62addafd5ca1f8ff4b274b7946e9d8e1a5ff0451bbe98031201736e7a88601a4e4d27278788cea4d1767644233ab522379682f8f3bc21b8bb1953db5f1c6bbb330471de5ac1f99cbde1a0ba63ba99f4d432949cbd42dd0dc3e2f9d6e84c4712fb2ccf9908ddfabcbb7f74ebc3a27b9c4b36f737b5e533d2fa8a74f708ddfa6cdd0d42b7bea46e254c2f567a1f87bf64e398d678fdd193f8d35c1c4b7bc36ed3dd3bdd5eed6e12bae5e9a0bbf105c3bac32f5f8e73c967f73299799d5eadcf6c6ac87975b584c1f258e2479ab9f8e338c3eef6ee8fd6dd40bae515812f98733556777bbdea6bef7dafd3c5afb7cc7f73fddc8f648e7aa6f366b7559af3cc5d5bf3394401babb846eb51b2dcf477787d0adfe81f8239d35c79f7734f79af56a699ebebb36f7397cc14f84ee36a15bbd4477bbbad55f74b7ce8eb5fb4bd6779986939c21be60f84b32ddbca11dc7d9dd3cba3d22ddeda45b5dd3dd32dd6adcd876a78b749c4b95e20b8a36879373359cf0629cbf36c4d9dd796974c4e1e1a9d5864c9d9c223a61cf14738c180973728aec1ca14d233a46881039d2536488388b1409439c30e3f2e274b7aabb532754777f2f074022a6c5686a8af5e9650939626258272339e4b0c3e727dfc17394e7c085d2ca613c872c5afc27b5c38bb3bc83f09f144d0e3bbcd068f11f9a1d54cea2d1e23f275fd1eca0a249d19cbc7d079557635488028a20bc205059b4781e048a468504a8b0a5f5794c0c2ee5a8140d0f27cf494ca352232b8b0f3d7cfea1bc07c4340f38cfcaeaca098542a154be7a41a14ece62b977b272f23c479d4e5f0e563c7f710f95c3d2e7ac7c7296b34eac1c562c9a4fb5c2a96870a92527d6e73815cd95538ae5a5ba8869cffbfcf4794c4ceac53b457333ca55344b9fabdc51335780c4702aef180ccd951c622ffecd5c011253d1e453132fc63ac55e68aca0dca3b992436c4583f3189a2bedcdc3898fd8e71960b50a08f8bc7f6264663e979139a15e5eb2a05ce6e52706664645134468e52adc8ae68adde72a9a2b76278721d63fdfa78271cf6150a82c2c1d62dc43c9b07888990902869f93c3cc64d1e2fd9c3c08187e50289771a5d3cff7a158344d595e5c8bffc0386b264b8c07e13f30eec5d0349db2e8b0c3c961689a4e593e1e35c8cce8b0c3c95f689a4efe390fa5937f30335abc1f187f99d1e2fdbc78cc4c962060f881712dde4f8ca37830093203ca65bc86937b343ac4646149e1e1478646072e9462dc731d60fcf39996cabd1f15a8685de92e31150dee8adde757ec50de3afadce311640694e7ac2394bb8a8918cf9bd1c2c51518b4a0b26841d17071058620b8b802430c77f28e7952bed5cc8b4c8ac57a59ad7c06b77214ca4a4c8ae5decc0a2f30ce52792befd1a3c74c1095d1cbc9656678784ccc8b9595af5ce52fa9192b32aef21eee390f8fb1b2a2f1a1f26c65e5a9988f191c0f97712b34ddc37bf80a5fcd57f3d5f0a051799015cd93afe65bc1ca0ade938f95722b2bc4be550d0ae68898fed040a229d668180009348e80038d036441038937545082c58a399dc6f88aaccee0e1c463398f212fc59249d1a0542af754eeadb888816acf73e29d911af2603ccf83a1697d359e8cb73a61b1049593afd888ad56ce4ab9caf5c3e5f2154c1023b6a2b1226305154ba568acc4cc64e1c24acab9c0b57838f19c35d3311f3c8652ae4ad15859b9f7c56480ac9093a489d26c64ca528413587c3194c7801013c2c7436609991796083229ffac38f1ce889d888658adafc6630da968501feae4f597eae189c1c307423c089d3e161a466c116b348c702266c5071a45c89142d2fadc6bd2b1af0a22b8c4da3d3162ed5d10e103d50d5b0a82f220289a196f66e53de3c48b7919156b6fd40b0f221a1ebe180ae67929efa4e241a4f2f6572aa388acf01064d51fca4375b38c3c3fc9a0e52847cd9cba3b9582a1619d5433ac99d50cee4474f202347d5f8dca83a46a787835caca0adf690a2d3c57414bebe48d4bb90a43a0520d7b7194b3702a5ff94cc7be978e792acfbd1f08a1658ed8ca5970c43ac6f2356228c41a0d24be88652f767219b7b25abd04f1bc95877a89f118d64cca5732303c98ac564156ac99202b57ad6456ac189815ca57a797d3122a46c4f2154d108fc65b79ce62e13c5f79105610168d939ad4e9e4ed2f8f2688951a15b4b4aef8887972bcaab0115bf9ea8c58c73a36003054306e058502e1abf93c9a56cb53cd04f13cc6559ed7c45e1ce5bd380f57f16022d3c3476c0915637946c55226b080008989a17878caeb01bb7dc34366e68a17b3b2a20992a279f197b602a372140c0a8572d40bab061504e51eaa0645f3f2d511029823d6312f945ba9899d3c8887f2134d108fc6494dcc778879be5a79cefa505652982688939a98e71ecd152f969af9685e5f4d9f0600478c26d66808608c588c8f18da5b42c5aef888f98bb7c764b5f2dc0a2b88cabd202a4fd5c458fe920a8272cf573c348d9520281a2735b118ea44f36241cceb858600be88c1628d8696396248501173c51a0d248a885dcfbb6f4e6e25c8a9e6945131cfada8522915946879b12029ef20294fd138a989a1686a62a857dfb47f0ce88fe531acbe189a4605e31ecd29c628e5fd751016cd8a06a7c29d3e8f8e171fa71921958a078fef8a176305e1f1e230eecdb4f398b9e211bd9c7818a17c45b3e49d689ca8bc69ac78312f86d7f781989316386231ce42790b652fe6b90a3db4aca062a7af4628c80bcb617cd5dd2e73c52362d12c35cd8946a883bcc0d0d478f662ad8f0c37d008c0154f8ecf6b583bf9baf081fa8ae0641af67ddd8098fe8ae04e5fa7bccf08e527d4cc12038a889d1c1580a6d8290895af1c0d21e688f1714a396ee543ad18fe3c266615e3c34acab3873ad1e066acc40ca162fcf398d4151f317c323a197d1ee3334b5ecc63f9c7238618cf7bf12057bc58fb122ae6f9151f31cf611cc5c348e52b9a25cf28e51ecd92176b1a2ba7537f35343894672f4693a241095df162301eca0a2a285fb94105e52c4723082edda9204e6a623156092a18d1bae2c53e3f9d50b15311949f7c06c5448552f130e231a4f2934caa51eed178334e50fed12c794c501e0dce0a6a48e52c3ff1b8e22d7d4b5e2c854bd1b05270f8408100820926ac10eb7e3959c2c01d77dce101b990e699b3b99c75facd56da7bcbf3a634ceba4172deec757a3847326793babba75b238f91076e0c9b1dcdbf5e4babf14cb1125863382270b037bac16ac972dafcf2d7fd3c47c795ce9cbdc2c4ca00ac0ce96e10dbd071a6394caba595c6c04c5dfc6babbdbd0ecf9b1514fd00cda1c1719ce1a43e70b46e483438b3f19738e42f5b33fb5be6a579ab65ed4bd19f8664368e1368e653ace5ad861b0ae30f433c6f14147f09d32b2e2ed10fffe26a77f7cb196c65b46c6483baaf7eaf8de66c76f149d2de5b385d9cb798ad66a952f145ba642fe9b399520d8e2ea2bbff73d766ea7fcb229d6479e5af52abd6d3dd36bbbd7937ba1bac5d7b0bebbcf90bf46074830fc537b1b9667d37758ee96e1ce7fdfa367fe1a9f319ba25c281ff6b5614c500737dec4f139768b05222a0293eced03e69894799bec457e7bf61b5e14db555447d01da10014db914bf48fd924cef4fcb14b4815f1392a177d33e9c24f69a755c38479f8ec979bb7f04e6c75ea9dbd82acda5bde083b4c6bfc4987ece62c753a7d4a29d01566b6f98ea7c67338eb3c6abcefe4d895644f8d7ffa6446bd2dda0584b5bab96c47fcbb86c737f69adae34773fbf183a1632d900abf57cbfeaacff4d696ae9d273f6d6dca7e379f34cfdc34ab1cf9a6ef1b1efeaccb9b54ab3391abc9f475aab96baff4d69b6e5da9a8dfefd258b69cd6b38bd49b76647a0f8f92ff934b7597c5cfaccffa6d492eda0415c68efe7ca71a419dfbf657f5ccef0692efe876189dd71a11d6be97f534ac2647f466b69d8c7c7a6c6c7671c27908fe3e94a4992e4c2293e311fda6ee672e1149aa34f643b3c65ee3395fdd7327ed147fc284998eccfee4e1ad2dad7a7ddb0c40db7be61c90dacb19cb517d9c8d7923f7e06d2ad2a608055669fcbf099be55a549267e95a35cc8d4aae2609519ce8ff194ddafb5a8b8d1ddbdabd16cabec69f4869856e25aca3ebcb646458cee06abccc4fa18063b9ad9e0ff49e18b16c8e3a24525090b36ac6183056c78a2db95247187cd669ef124fdc33a97c43ac327348f25910d335d03530d398fab25f123e5c229ddcdc5165a9c50acd3775a7d2bd5a58185a7cec771861e6b4d0123866e4db9cd9b4faf34f799fa8fb64ab1c75a5372ba1bc425ad250507ddddb68a3b3ca514084899e038be0e4f7fd55fa236b755ea35eb0eeec6b1ac792852d1f17bcd3a8e892f94fb3c94fb3c846f994af991cc59a0cf75e816e6f913450523cde5bd4c70464c94f258e228423b516a4c274aae9fdb4d52f678fef848509a68283d4a326830e3b7d94aecf966a3397f7297e7dff2eb6fb97eaeb4dde97fcb2ffecdf1bcb9ebbe2849f7454a0ee89af55c59df6733ff9b12c68f73fd25264a2fec32cdf5452a2b4264e7ffde9470330cdf4911223bf3965484c88ed5293d6e8e3f3b3cba89a4c3a39b48393cba8974644737917a767413c9c88e6e2215d9d14d24223bba89346447379178767413696747379172767413e9888e6e22f5e8e82692111ddd442aa2a39b484474741369888e6e22f1e8e826d28e8e6e22e9e8e826d211dd44ead14d2423ba895444379188e826d210dd44e2d14da41ddd44d2d14da41cdd44fa6a8b90dc402291945ed0b3a35362db1c85e6cd4c4cc63116624af42f849fdc65180cd364b85a3c1f69061dd791178d2f48c929fb3c97e82565b21d7008987363b3e3df32cfaff90cd752b6849b893fd2667d7a6f768feb6e20ba3b4b77ffe0430d466bb46ede1d904707ccb9a93a7b69373c6f465d34e9961115b64a6f4e9291f873b302c1604b3b3ca58fec3ec934739769e67c9230cddccb1e4f9acf0e4f998469e67256a91601dd3fc230d813ef8b16d190ee1cfebd36f46c2b76af51677ac7d4ffa6e44866b26b6533f16f98565af3fbe248cb1f7c41dc43777b4dddb6568790329e4f68a675080b1d67a54221c595deccc4643792640ccfdbd1fda38e29a1f564099296132e197f95ddcf5496b3b7260b9fc438e12f39117fe93e7ea4ff2b14629a83c1707d9ccd659e39e9c33ac7f9d3f882e36cc9808006415048fef195e75f9b675be420f671ceb10cc719da2a156b091b7fe947190ce786e7ad9630180c365483d6d00c8648d03d73d8ccf37417ff86e76de8009dafbd61b736c31edf5ffa3b842f78c3f386b3542dc5f7a3747799bbc5f1290df7978cc4af503259de6b8184c4f90383e16bef6572646b75e8da3cc53a89c6799f341a67eeda22182c5f4b9225967d6ede1adecda3b645f869c0bb79f45f93e1dd24319e2310c6730c6340436889d00a5b98986046900ddd373c9b543a6f403e3e3e49c28f9204833dbd5946e299a7486533cfa05b1db2e15c509eb25c1fd7a12271fead894cb6644919d3ccc56ad0454d8a2cc16033cf20f133a6f8fe5114274a33cf20717e93225c68c79f1d9ed2e7450b1425894f92f0a3f84049127e145bab43e36881c4f937dc9db9fb79ea6464ee569d1565e263fca1bd64b554a6fb3ace5c2d167aed0d7f4e26dea9234b71e8ef37f93c6d7f6db6d8fd5b36b2d11f6b95806cd13896423e3d6592f0a3c060e12fc16062c63212cf3c457148f6d786b22773b7090c478cb3ac54c6347332321732ed66f8a2ecca745274b2cf95f82f69afb8c3538aa3bde1bfb72cc3732ca253ca32beb4365a4bcb9832bd0c8fb3da28cef52949c3bf3e3334be600fa803e6dcdc84bf24c3cdd7c160b2cfd15ccbabc48796921b40f173f824fefba40db157ead7e6f0975cfc01dcd0ddb56e252193b8d1ddd8dec7f2a3387f749b1d674af35c9f86b4562bb18b9f6bf486c349e66c5804e4b9b9b9a10a95ee10c91605207204ac8e9e79e291cefc41642e8dc417eb93b84cc219b5add291469360b05cc854a98d5ea32319b86591eac43a7fc4c750da477c92a43763580e4f5d928e6326d627c939f35ba63abf4fc73bdfc5f7fa4f732ca499e8ee29ddeac1025f30d7cfd91ecbc417cb31acb496b93efe4be232e74ee6eecdc5bf730c5fcc3447c7271acb9539ba5bb4a1ec455bf12fd14c73f49238b4129b000e23397412d2102d23ad561130ba7b061f79fdd7e5a7f9e3f937acd477a37b0e1a074592d0c4a737cf706454d4dd444fdec7467c9b482f2d569324fc28389451d9975f5e9189373c9bc060e2fc9b2cbc92935dc9898f85e2ebf3798a24147f8943f3cea324b64aad2d975646e6ee4d46e66464ae948d33dbbcc353ca6c38d780214c5a1c6999a303eedcd85aa5373fce108b5f6d14e379cbf3c808143f679acbd9d09301c4859366eb0c3dcf5bf689ebbcd9eb93d66d91c7a3459c7f3bfa789e74dfa7e5caaaea16d22d1e991652f15bd1b3b5d7df36afcd78929eb3b344e30be2e0423bd2649fe70d0ec6c1c189f8265b71e2464be2ec32bd9304f3639a29d33b93ee76d2dd32307500ba9b866ee9dca03d141a86eef6814eee6e29be113e1a725c802ff879dae8d2ac519c9093e8ff2afd20a085163cc795cc787e5cabd9540b2db4e04a7c5cac9f3212a51b45011417a800a0804ee846fda0628d1ad2c2e9b916e3b4704ce8a1ee36a165dd02b7f89146a3f5e3d2026fdd0ed340b76e9ce85d9d5ee72de7faf76b352afaf45f9a37b7d9b1f85ffd16d29bce5f6e73a5e2b4a3f8392c6fc6d586be1bab754cc1e9357bc3a5ef682ebe3fcdb3ad5e67d80d04c24efc2b8e24e7e9334fd1f16eeac6e9e2637acb2ed6e9373c6f3e675f8e330a0c267ed519bd68abf416ced0ff4e7f29ddfdd3ddb125dd42af211a5f902c71d68e3d3b60ce0d4dbc797a73eb85ebd6ebbbf59aa9727d4c8b05d5acbd47e2fc26f3cea3ee56d2cd84ccdd264c2fd6a1f16b9d37208cffdaea1099bb4dc4f94dc22b44577241365aab1688de8c1f499c7f8bd9185e9cd74642c9764c1aa7381fa9bb9320e9ddcd9589381fe916e699c394285b8b94f479e6245ba5b689f113657bc3e4ac58f679662cdbcdf12f0c96fb8c775856e9bc85f34e52967f1c2729c3e558e6ca10c85669a533f7485f7e39c32dcc93c4346837c747aa4115006843043048110317a081450992d810828a07d603605c0f50c308a70096afe600022600d1023058f001c41326668ae0b1738027bef8e206074092009286081410b403089406a02405aa1915ba8184dd7261d6f882bbc7c9c6195a2b8874b74d956ed970e921a00ea87333567be952fd213ce2fb6ea4cd5ce67c27cebfa3f745baaf2904e850a9bc5e4a7c94b80d93486b72ed9fc090ae51aefd1377f74a05076712a9ec6de2cb70e1bc59c552bda88ea0a12489bfb0815c4b1bba121faf3fca72ed479938da940f4e2840b58172626542c6a22b51125e4cf301a2a45b2d7877bf68ab3bec451bfa8fb4790be7df5abaf8f7737d878db3decf953aa1e337b5f1b12b51e2f966a37f03df26fe1622badb866eb120561a948680624731204fe24c229d756b8535f0057737d7c711ea5e35d1dd35746b052bf882e4cce1fcdf4cc3c1d5d21cfe38dab07bc746c7f95828cea5ddcd272d47d3ac57b955a31aa5c4ebd5164f4cb9bc55fbf05222783d3cd60eca489f9040a1b0fa58ac14eae4793dc207f6d7de0c2818bc5e2149b50f95d79ee7a55243be98af3dcf3b7d4d3c6fe57d9e775261f9bccf5b7d2220799eca5bf5e7f1004f9f4a5503e31eeafb50457828cffb60bc1d7cde4ba73cd4777acfb3f279dec782f205f9bc4f85fabc197c9ea7fabc19bc113ceff4b134903aad7a78221cf942609dbc27bccf537d9ef79d64de87827919f2c9783e2c2fb5c24989b7fa3e94ce09e6fb3c1b1f453c1c503a3142a7a3af51fd55e1a14e35a8d4e79d3a75008f055e7fdd6ab5da6b0fe57d9e0d3cd6e782e77da9ef3b791e8f87e3b13c99effb3e159027e4fb509f977302634860b5e0f1f851c2a78497fa48f050dec9ebefe873180fd51f55b5cf3c029c7a46035e2f29e33b792a0fb5f27878a725be8f053b793d27effb50fec9bcd47829cf5be5a07452c8f13e1815eb5b791eccfbbe139c54decb873a2d79345fe979a71bef25e6f3582bef5bf2a1f0a1f09d70ea537b3e3cd5f7793c50ad13ea23e1fb3e4fe5a16adecb0a5e4ceaf3525e0f2341bea155cccbe7d15832abcf9bc16379dee9f3505e13ef84efc867c217f3adbe9477f23eeff360de095fccb74279a7d4c9f38c7827afc67bf1643ccf43e2a1f0c19c561e0be57d9e07f33c95081f081eeaf35228efc817e39d3e14bcd3e9fb501fca3bf27d5e091f8cf7e2b1509fe77930ef840f6675f2502c94e77946dc03e2022bc9e9859477f25e3c1410efe50516634310143c1550def7a9bed57bad1072629a78dee77d9ee7ddf4aac9ae81074f0e1a6cd04e43147070a161e60d1a48992c58009415b8d14a3326e8a4283ef049538d468a228c279066acd10c515891e3680e59f2240a1472d0649a9073240a203847660f2d8cac80c70a466660bc222bf0ec2832eb9280227e4783333a50b89961f1bddcb0c2be3cc78517b6bce24861e63229f8083f7a0b00aaf42c65443bea87ee5377b78ecc661959caba3ba755f89c4dfa6a8b72dcc7efdfb21de2491c676aa322cdd6f6b6e86e14ba95021b364ac3c995b59b960216dd8d4349055ff0c919e2afbd18d2e6911e2345880ce1d9d1c9a1d27dd44ae1085f70e629ca78f838053959a009458026d413950beead76d043cb8aa6544a66d582097a4045a1831a41860a2d540368423d791101c604203f34bdd080aae184424c56c9b084583d2a9813122030290e34b1c06802814a0f2f464e4fe04046054da92e4d29991246d02493692cd0f402a4c7b74292c24921a12584181294f0013544938f191f33a71b170e0b88ab8b0fa917583dab24271fa7242c2a9a4e443a382a18d5164da7185509a8578ccec943c9a05e3042a9175634a84a50c1a8acc8802003c20b90171156349cecf04155c2a90b1f526734b160059573190b27a060323e542e9477ba3901a18e6446507d2b29ab20aba254083d3c55cc298592399d4edf6975629d5e604c409d5650563f7c1cc1b856aa95775aa186a070501e8b8453901e5e524869d1d4638b1e5c2a541056900f2815f84023f3ee72070c4ac0c607b8a07146694b32a208263f302831626b1c36c011d2f2c15ad9508351519734d600410a44e42ca1c4922654400235ccb840041870050ed84212652602df1ddc408e3644b006190fe061871ba8d430c5a82806a114501841843028c0030316b0830eb2134cb035851e2a48c1955c53973b7ac0032a368c20828b04669481810b4400025e10510001c86ea0418a51d1901a6994e1810a2cd1e4042650c30c322e60012ba81002881f6e2007094470010b84d1802c4d2f0e3171f190c3056fa8000d322830812f146004015e94dd40c50629434c90c06c5c3cd448038d2710604496176f90614888099276c11b6aa4b181322830812fbc50c01105c8524586212548604686e8d8fc70a1ba8b0bde48c106d028830c0a4cc00b051c61440108908505b22a5460c001eba0e389131f3d50604211430831454a8e14041062c7c4c54b97d31d9f1d293abe1fb0b44065f129e00bdd33b891c47577aebf24521b05a88e1d743d38aa83ac435687943a64a803491d44ba5b1c6d133ae4e8592ec919143a0ed05fad0d5f427420d161d36da38e69aeaf1086838371702e642a6b7528366f198be5c2294042747b031040b7a7a5db0b401040747b59bc1f3c1f7af87a3044778fa0bbbd1ee4d0ed8d208e184820011d197474f747a34aec0d5a60001974f7890612490b1180d02507dd8dc2420a051c0180026718e96e0f86236c302a42004f84d1dd9e103348c1e6a69268d1dddf132630b840082142f4a0bb4f2110c1c5064a2c110608ba5bd5c401e6f0d680ddb1a4bbbf377660440e7528d10223dd8d42c06cc5c48d035654d0ddde1ab41d32a810e00a0aba6fc4fa19bf4ef623699f9cb79c2011389be19aa75869cd6df62a339c34b3c15fb33c67fedc5f0b0426cdfe5a20f0c10729191bc70904e692ac74f62f649566642eff6bb65629f8b59753327674cb369b65b2ffdaee8e99a9a464ecc36a8bc0bf2981b39af58fc1664792c9c06b6baecb232d6913c8efe79a92f836db54027f473f4773eedada7d12533c9b61fcf596d81f3773a5a54d17bddef9a3b5e4e3ec52a5f696ff9d29dfbf399c36e7b19caf7ae4b714df8e6eb3e77236fc3be42f3cd25973cf25e9629de358d65ef45d9d5e2db602fe9dcd7ce6a177b14e9aebccb8d2e918cf66404ec9d8bc650c9cb7b4187ff8d5878e622ecb76c4a0f8b8c47996f9b51be72d637e6d4d04331da7e8949c3e9b615cf837200cdaecbb3b9740210731c55f272563528c404a4ebf8fbb5627abd52c88c333d76a490e5272ee1ee72fb86e5e3ae2dde3643630a423ad245d74264f624049d586480e629ff5d4723973918e4f13ffc149975c7c6c49a6f7dde31e8fe3b4353bfd730c2efe631d5c0006171614b960143f97994a71410dae3a5b9dbcd1463759a1641ad2916462f286132d0ee1584849ab943fe92abda1d4229d47e32ffd13d22abd11024ed2d9718cb5408716e0d0021bbe20ceb5cf0224ba618ef124f1056f7221134e2e64c2b1556a9b19e3fbf4de49cbc10a5cb00211ac200cfc34df27ed25fde5307f390cbf1c0624e5715369055b3a174ec94c4ce62da7add5a1a41578e3236ee8c049b3d01d4547419b793b24de12cfc60d960e987393adbd374f6ff666284fe655a132c58629354ca1618a142f0aca8b11010ada40c19802b2bbc1b0c8611e946e4fa9db4beaf69030cde1604c73287880d02b05794ab0ec98744b65c6f70a696b0e6785de6cb51743daac81862952a240514a429ae1a888e88913199ac420c42408e8278603debcbabce0824d4d972e5dbad4da18b299dcddd0003378476da0bafb8d3ec119b31340514477635b5fe50978206733c7347782a4130475bf1c76d46d6482319a0c1a28f18cbc0c48a003de073c2e25b040b74d4dab045794404bb72771077f14a9ac5abfb66654022a58bc5367841025f0ee243642d00de279f35c27bd18681c2750ae9f144e618309112926ce1f367cbac16bef659a44609519990ba7cc6c78b156b3372fce9b7d377136272747a7c6adbd0139f821cdb6e6d2e6b7f96ee6e8ace1af338f658e629affd71e4f9acdb3868980a6b8ad52fa37290e863437eb4eb437571be21a73107ba65347fdcb9bada5f9ef32bd9978865e2975245fade7e995fab5350789f0102152c456d7d96b739c2ba538389bf90c67349b75d6bf657fbdd5e52107ad673c47172bb5559ab3e1d3bc662bf59b6aebfd719c39fcfa3c6fee2f59b14e9dadb83b73b7b03ecda3d823181325a32207adffb5b5bf33f1676ea71db3c5bbc7dd271d8b23a99b9193a89671a5b3718c39080213ba1bc907d8e86e1b36fac0169e0d1a975690ccf0032f2e73f42d6b8e0489f85c38c0e50bd05629124c9d4b96aab31557a17079828bb898d0158a1a34107f14ebbcd59266c71f35b668507c248fb397e6b9f93763a76ae46e87898fa1388881a678fd3e8564a43a0d1df40c0c752efdf848b3fcb634c2b8a9141643d15011524c4a1a4374f7db2659f334c8eea434a074f7db2639d3f2401d444053dc7734dfdd5fa2e38b8f0ba99207b874dbd4e06c2e646aa1c656692e646ad06fe17cafd6a13888c5afd979e9241d9c7dcd6951ecd1381fd7e8fd25b7591ceda5aff35cd2f0744b75d85f9733bd7fbd529f8e7fe97e9277e04737e6c14062b53f43d9bbe264034b747380ec2ec9f937876d400e7c0b3fe76c08e2e0c03099f3cdf375d291887fdf66a337dff29728ae5f7bd1e7065240c6190ebbc159fbf35868d2519252f84b30d8ee71dd5e111a1be8eef15d2706ffdac4dd1e11cf87f5cb2b8f7d767b4f76fcb1503c9265f6398306abf105ef93e3df64f76598e2af6ff39c80e25f711077adce6d766cc56df6fbf88c2cbadb61454649329c5a67b8c3de66df7577ac5b634c61c618dd30cc66665ea9dbaabd3af7177e3a91ca98195d343893553b7b0cb2c00c1066def086bc26dd1d639a44309812c63fe6c7651401beadda6a1b9ab79cb79c65d0508691ee0e6b79b3bf32a66366fa4a061bde16329898653b2601cdec7d2c16d3a55ba61ece800ef396f386cc854c99e96f32d3cbe62de718565a1ad881065cd020c5f46fb9f6a2db9a5f74dd17791545402147b7178327d428221ac5440668d093a303e6803a37d5622bb217efe3c7e3fcf28e63396f39e72de74d068674b75f0b84132cd0c1c0186d81271528228c3bbac36b65b9fe52aebf846522b5516030986b89a0e4c229642e9cf249d792b999f1e7a8928fbf92925c2b34d2e6384e20180c46865f94d517457a935172ca480c83d5c6c730984f48475a79449231ab0483ade078fabc652cc9bce514af0d311569e52d53dbfd9ca92ebf6de6a8cf7d5ba535196923473a73cf446f9e39daebc669fb7137471253f14a4ef4b9e1d924575659ab014bba416fc048925e6cb9d3c59617b7f71b2f6a402fba0b30bc8b29f4662fd9c52d33b6370688d10d8abb11535bc4002d0ca00c0002d6f2bacd23d561ea47b63b47a7d991e6988e0b3883b4551a5b005383b5bc4e47922cf10264e806dd16c92113eb6399154b2ec01065399cf5b9d032f314f3632ea474cb3e971317fe2df419a7ccda64a24f9379274993898fcb2df21628f48ef6faaff98ca47956b3fe9afdd766fe5f8bfdd764e3a4f94ef2c7ff9af8199756c4f95ff3f9171afaafc9aaa598a49969e6c46a69baaf5a900d569969b1440b2059c021cb028cb62396655144ae54f64bf3c72c66f971163978cab25881556632519c32b15a1a15472b538016afd3773405dcac1557c092560010dd1761214763c10516531acc8fb18378f7b81dc642ac58b0babb6357c011bba20b5cafd0d2e01553fa8a9acebf8b62c51c0ddeacb062092b96fcb582f54faae8229ce48ff4a6739d1dabb889d5d27c17565a54454f152d2ad8682abae8fb752c97ea90572a9aa8c8196779e5c529d8e83c452ad619663b62c74270934eb1a5a7207b8a256095d9142d592e6492a28d96ddf0bc49b104e8d8673d22426ae23526c5ada500d218675a6d9893a2a0418337a5289aa2c86970a6fb3af3f16f8eb7c801ceec4d37a39558ac5bced82245835566b2c759527c5ccab61cb56d925bdca1100397353ebb7626be786788a90885134450f8008538daea949c0968a397ee63ffb2d25c6d7dcfb6260087042cb9f9eb3bda6ee63e47739e3ec34cc53a27593e310758e9b43d31c6134b3cf1f30490ee066d95ee6efe5b3afea5f1716e69b42ff13fd7796769f36ceb2d2c936ae9bb91de792d99fbec983ae1c69735c7d49d78806d1e3d169a048329bd6d926f9ba4134756e6040856995da6af444b7fc9c742f1dbe69158dfc7274911bea5a5dd6cf4ab6c27cebf3e3e8f8526f9ebb1d024727e93243b3c506cae43feea29c9f9b78ce7f8586852fea426ce689008684a13553491bbab50f15713549a4852858a8bd46da00212014dc9f57396080653d2d9da84abfbb1add27164a20b50fc9189a6069938ea2e6d4cb4aafd9cc5b125b8e8eca8535a624b836ef3d7e66a7cf7758929b6c696f0719c404a9cd1ddadc49606aff51d25254870e6a9444febbe96841bee988ed5a8bb8d742b892d0dda4a94c46d544a024883bba9bb2fd6d246f1effce5b6e80c9a6721b5d299ab6d1d0087dddfb223b92f5eeb7f53c24faf95f9f8f82825b956288fe30c916003092cba658f04938e0c0927348f654e86a74f925ca9253f4795eadf743eb1712ed94b92f3da4a67ce004918e0e896f3a4374ff2af01fa6fed082e383c8fd832ef0e4fdd1153ba1bbca195f8889e16e711acbf3123ce18b1115afc25be114bbaf1384eaff17c6dcc0837c2a75b4580d10dfad7e9f89661688bd80216c1143454c494eeb645ad229634a6fe2f5444ff8d0830bafbda9c08e4202622620bd38b4c8868cacd4ac4ac418c692526a207fb7db11201a41bf4bf2915600edfe1429a0bc04677834a055800587596ded0ca24dd579f9967900f8681c17cee91e309832925f9afc998668e56621f9b996790bf6a6825b6fd2500160468eaceb4bc4280a36e02d450597e4c00165865f65f93e5c743b8d1600c5104adc4b2fc7888db9589e2bcf3c77008200d5699c9c60feb0ce5a87f85e00256998953082c682596fd9215028bccd6ead02edb5aa53e986912f9cbc627890cfebaf3fe609b585a11c7a742e21016c7a7b5ff9acd398b65ffb736802d3d8026507cddbce501cc40b1350020a0cdb57469de9e86694e0070e44a7302e8a21b1480961dcdf3c7047024809cee6e26ddd2e246c64f6ba6162db41761ddd2b2a4db662d3e022006b6a3e7d27ab555fa0a62e23a3b3ecd7349c3f6a60bc0d8a048a3e2dfd05fb399ef682ee2a91b67b64aad00a81004177297b158c56ac3c71e041641dc409bbfb51a0f0248833640c0413b0304020b507c3c754030758333212cffb70644939bbfe40f10de3fad2c6efc588a7f0bf192c7b274d1dd2d8eb68938da5b96a6066df4e6b628599a748333cc3489664cef62cd7a96177d9c34d7b7d97576fc81cb38529cce71947e20629c3853919657e8e8ffb726d37df581c1947c9492d48c9ed89bee8716f6010e1fc0e81ea78cfcc7f9a0a5bb65a50f533acf1765321f721aac32f361d560959938749fd68670a17d22d25c4b9b9b17dbe658fbbfb5fa58ecadf5e0437b119dd207c3604a788e3364b23f72dc32d53571c1a2a96989be28c3b369ca384ed92dcc93d694339b8286c4221ed8d83d0e8907304027e90db77868c254b4452d1e5ebd7b9c7f9e34b418cf1c752c2453b7d85fbf44c7c7be7b2778f74e6030a59ab597dc618eeece8f77f84077ef1e271ba792120ca624dba149397bd186b0d90e40babb7590a3bbfba65aaf463a7069af311db008633a6821a72ed6d2e10928fe38ce1ce6c8cdea7f53ca618bed96a4db2a7d9ae7ecad6fef63b9a9ad1c943e536c6faaad2fd290964938f4a0854318dd0dceaccfae059ab92da44cc27933d3bbcd8ec3017060d2dde0dff2c5d7d9719ce1933ebbc7edde0913adbdcfee9de43e53bc7b1cadc458dc68b0ca0cbf6d923272fe4d961f6301a3b114d1586660951996e5d2e6c7589634586586a525c3dd99fb7b42b77670ec34d060951913adfd2565e348714c72fda5f751226d7e3c6f334ff1c36a2bceb5b440b547c2775e261f565b048329f9d8f86b87a7acd1cd2bde32d5c932b572ff5a2b53ac1427ab5337cefcb63bf3e766bd8f0bed280e15e1aed5e5af32bc688168bb49746da53999acd29cccd62a95e5c229b656877e2c459b132b7542eeb20c33cd1cd3cc31f99156daa0719c61c63627cb5326f44bd4762dbd2fd6c7438a944c33970b99f2e3429a654c33e7532de5594a920ba7c0603b4b622ec91b9e4119bf8d8a3e4dee8bf36f557678aae4ec38929ed20631b6f4d2b970cab5f7be110c96f1e739c260b990e97336cca51d6799c389ff6b3e36354972e1145ba5bb49fac87aca5c3845a4327148a4b28c6d5884c84e931b9eb7accb6e2ba6fe77267bdccc33dccc3b71b6f01862fd16ae02536910e3d2316933ce53ca8de32ed197a9c15c1fc7aec0d1ddf7e9fdf2ca952fba413c75d36b9649eb4abe820207481c5a648d5da341f1c5ff4ab397744cbdde5fb2362207c791ea76238d626c49ff5bc6a5bd6fab53b4c9a5b5d9afa59714e75f5ba55e534bc714dc8db8b474e92f79a45bb6c9ba50d918cbfc36b1cc9539ca34ef63ea758a5a949ba3c15cda7cadbff20ce94896a24f9aa9bfee2f7db5553a9fe6bb39fd16e699cb6db199e5c22962fda4d9e79aada9f7758eff857237f173748e61ae66228d2f1897a0b9fed2fd5cd61940bb3a89ac556a27a87c3366c474b545d95a2451379160325991d15012129328322631c4908c94926432d897573e2357193dcd0469e619646b75e883418185621afe1b90914a630c1f7ca631d7184cbd42630c13bc267ce8e16b9a8107011e76d0e1cb0187263450d31a68fcddddf2bc9f42f397dcd1a460c1d703035cba7eb9d18501a6b6550782815707f51c7d3231b0687fd9a22f63f976f0cc9872811edcdab0cb0252e0c279959ac41a062e0b80d0ae0ac8ba1bd7f222c13ece34734261bcd1ab309cf05e5c611069ec9364473b0271b599be461ac5f5f1b53aaf8fed2df45b5a1a1cc4b8ccf34e929c2eb870a76efaff8896de27fdebd08e366925f66ac9d2675fde3c739b1f895626892f8a31a0fc4912b801c30e30b878547cb8eef63e8a6925c6b64a5f35a62207734c93c8f1df2741bf41432ea4466925febcfb01ef9321c5f3c77e698033b7a14db534db9c8f34ace56e7c1c1d6bdc463de397520c0bc9f38533ddd1d04a4c33de274bec076862813b31ba99622445c9c13ce441d70ad1caa46c8b985efc251a4391f82f442b8bf4688078c353840600e9eee92e84171d680378314433e1c513507c047431c72fd12e3640cebfc1725d4061801b0ce0d2f7c5f94df2b544b8f06f400b1841f7028816c0a4dbb958417e2cd2c7b4126fd1460ba951f259e96eefa33e59b8d1bd1b9572c899718e662d7ab458418b15ba1d960512edca0248027c9c9ca14cf79549942972e8fec2af7eb35546dc304595436bd4c7aaaa016dd55e9d7fce2639886925be8575de1fd5153f4e28f49046e9c056e9cc37bbbf196b7524da2a43f727ebfe6ef8aa747f548cb6b8c284595ff75058e146a563a551bc0958e144b7154ae097318f8a12239d372319a7cdd53a2d57ded0a7e3176d95d95ca9ccf3c19b001eeb9dfe4b9676edd08bb6e827e8e955aa1406a3e5ca0b44c548e72c97b999f8bf24e47554e46e4bc5a9613071a4b710d6fdd9d0fdd5d03d3a3aa0ce4df84b3c74a450814d4dfd5149121769ee9bf2197d52c29042065ff0c3fa18bf2ccaa7d4fd25757f48dddf0cdddfd167d40b704551b66d0b9732d78d32c3a606673d071b99bf704d0b39f80bd7ec1e27dbd1643250a54489df324469a184ce3bc9d4100eebdffc3575291a2872ba5335b812e04677db9aca494012dd494131a128e04c96fd3fc96bd669a1c71cd320ff5bb679eae6adbce98e88a0e4df79ae187410878e2776b1ce69c79b38afe7c6bf393bdde2196803df5f2fa53a1dac4dcf8f33bd653acefbb9bf9134e7332c457babcc66367cce26cd1cd31a83c1ef4b71f0e9cdf6c12ab3990d357b535e09b1d57dadc224c80808261bc7d7c16024b6a18a0dfeb7d7f9cb6faccdf12f515bccc1c7b9d2a9fb8ac97f5c9519ceda2698ded06cb6d9ff4ef15a9dcf5ca758ff898bd556e92ddb2231dba258b645bb1ff18f301145743f171fd1f7a4db81f44ca52ea4fbeb52805c77e39c6208c0463be96ed62743ae9febee16ae5d04f0a521de00714643b0d18db3ae21a674eb8608ea6e971063e87046778b33cfa0fa4f704871a5a31432779b04e9bee897680e671dc2bb7722ea6cd18f24bd4af82863fae4457aef2f1991b9704a66faa29ccdb80412efd49150f0a541e2dbee1f85b5b4b5c6329e4f922a94a17166abb4c303c52ac5ec980494b16d82875eb440f993441a8483c8dc6d0264a3d815000074e3a7738747f4fb249e3fe00ecfee71331b9b574dcdbee04366e314a7d7398eb33e6975f689659a44b66aaf149b6d511dba2f5ea3a4225b243e111ec71fb8f881061988c771d24abc2347d1e6faabb63265a50fabad321494ee6ed2ae1e907aa0400f4d789e6ef3e5ee71353dc0b4e7c9f4b5bda6a6130478e8b15229ce19e1e1d1a178879b543c18c1430f3bd4a0fb65328785496fbb4c4a3acce1ca21c8a543530e2fc053862ff8c38517fa870b34fdc3851ffdc3059917150e72dcda854353503b0c07563b0ccb1a0e73c2615844876179753b6c57473b6c7746b7c3764538ccb553da3d6ee70e93b998de60eac2619889c96178b68b49a6bb756c384c6c976e74e986386c89cbd212bd24763b6ca95de512ddde0aca972b8f01ee32997b7c3f7f6e5698387fc6b1f4e488e3d3f972f07fed97a80de703d978729765dfcdf7fa5ef85cb0a9f98478df020b2ba84033f3b997822f850f05ea44b7add5a17fa17f217c9f9272747fb536728c8689bfc3329f900720996c803cdb5ae341641398adc2c4275b364a8389efb2371bc44677df582fba1d360391db2c7e0e067359172c0a15070d3ab6e19cbfea93ee4ac5f993eb406e0294c9616f9b4718e3a749f9b14cfc8ce7133cce3c836a46985626e1dd3bc94c5f74bfea8c76ef44e85f28085f2b5433aa190969d7d8a4551881e074d0edaf92068361205ba5184a7707b50b97040e071c897bd2ed305bab432e9ccc7c310d979521ddb714436ab34f1860c5a3306887512dd876a7032895eec6a27ba6a7b88d60469c3b3513d4d438cde0aa2975cf663098eb91f84edddfd7c5f5495c22f979dd5f7b53b8c2b02d05b1cd24a523999bb39948e64a9ae7b7d924076724cd168f375c22b179c191dca723f942ee82bfe0ff35598d2b71926659fe11890d49734d38ce50a6c43dff78ad90e3e0f82be3f2ce663307499a69feb22169aef19bdd78e74873b5bc37b9da3b9b799d9ff33ce420ae96dafe7aad96a4d9e7cc34fb5f9b2dcd667ea9b53424cd972ed178389b3dfd9ac71c5f301732c9786420b4bd426f9b474c8ec0dd38c30f83e1d2ee76e353db8fa20dad71a524a649048abf7b8d33a437af7f3fac460ed6199636b866f1cc18ac32ab19d5679a44331b7c47c3733762c7749c742ecd4b4b6b6d1ef31c7ddbb45937dda6e6088ad2912d7adb3cb245ae1ab0a896d6d0442b0ea98625ddad9b89f39b24cd6a90196ff8af100d26e816612e1a72e806df66d7943a5c53e0285aa2db6153d6687168ca969e34ca94b17bca911d1e31a9a7c4743b6c89e659846317c4c15260c8f882d586b2284d4469ea769858290e97f7c93209c7da88674617265186e4627041a14177673be2eeeef1a45d508ac017c4597b93e112d7c7d586d6b31de7df5a7733ddd1dd49250c1652f12b14250c283da9aea439789670c28bede86e567b752415190d29011541914136254674d31ed210d211725e9d6b8630c879756ef30c55b4f8781ee17fa10a056986914e21a224a0c78f9b4a8fef8ba20d7f277ed14e9cf59362467674771b75a01b8bf571d1134a43408fa1d421b1965628db225c689fe427cab608ff0b25659d7d924ba36c2bcd1689f367fe3cd28f349aef078db459a10889f593a03cd1413f19c1132edd1d820c2bfcd76e2194a13adc15c3175cb886baa85376c310d29093212430ec2f2b3669a349089a9061812611e8762691defcd7fcf5727ff9cb659f6d753581920b996e5c318c9e1c4431b88480741c9e0d6ad0edd1e073b37a33e8f6641083dcedc1e14100ffd76050a7ee97a8addb7b810bdee8f65a308e33648158294eecf6be71f656d0f7a91bdd9e0ababd14747b28587201b15c3f58743fbdb9862e254ddd5e1b27304109d820417b59d87b999433e8ec93cf33a866944b23d1da187ea44d3a8ffe856cad0e554bb33834e9f8a225c2ff42f9937ea4cdcfb60817da277fed38f1fd255aa130a9b7fc819244e6e81c8198682c7fd26df2494948bbf2a7491e626282f44177fe08340265f2c33086549f3402d27d1199bb4d62e22b8de304e25982c172e1149e283b5172e114256e281141e742a69c9d1d1edd441287985eac13e3bfa2186bd70e28d0ae1d50d1ae1d0c31c28f2fd63f3e11fa87e746fff024d03f3c28fa87c743fff06afdc3c3e91f5e8ffed13ee8ee992225749330d35d88f4839206f8d88ea13365fca58d8ad5864e5a2be50506a4bd0bbdc08058576b3ece4943150f58daf4dd1cdb531a4df84ac881f7f2803c3a3c150a36b083826eaf034c5c2f0c98c1810d7473008d33ba9fc4948a8c6a1842326ae233222845322631c492929810c9829062528ea0c8a6c48866b636a0e78a6ecf8c0bf488ddddddaa76f500f520e931c1667f39ece5301d74b791365c46ce6887d99bce5f46aa68fca2e7d21a593232bb1d96e74de72f599d21feafd9b88c946084e52a5287c37ce66498bac36a7f650efbaf1569a31d86648484c4c467666680b4ab881245922892435fd90bc761b5bf38b81cc95b62d94b56648a2b51a264c81c45bcbb89d080c80a5c44c268d9381d9699fee5305ba5955ea52b2e174422b9ee19257cc1cfe414a76c173a6c081c0e1b7201d7102f8658e11a92c5a6c64187cd544bff4796a9f8b25cc8c433031e3778d870582873d86bea80ab31b9788c74db8a2f98995ef6793ebd79678976d867ea95d1ed91d1ed8dd1ed692003dd1e06ba3d31ba1b75816eaf024e747b6174774fb7f7e09dd7d65e2f2f2f2f3075feecf2a5a20dffce4cafce630070e9d480f80625c00b0a40608a9c125f303f0e7e9bf8f605a65a8be7787fc9c86bacbd1e170e12f882627d5c3869b91b174e7fe902977814b8710314c5e9e28fb11b305c37437437f8619d37f76fa2b86e9e74b7fbcd911b13dcc71dc6c4444926c260af1fba3ba65d2fa6ee5cc8f4a2d2f88238301886bd0046b71d2210d70badeec671b970816e50a4e53e0fe56caef3762493390c5f3087a72e9cb51b9d19a41974bc2f3a80033756e0b231410a2baa88228a6e8f8a6e6f8a6e4f8a6e2f0a7c411c3c92392ca407876171a8568770494862b53f62b53f40ba2f0ad27d9128be28c6745f04eec6cf938a9fcb51dfcd1c5f1b8acf44851cac32b341a4410eeef07ce2a0f8bb31d70fffe61d2dc4d32bc5f49798beccf9d36618cf1cc436e2bf7699d63297b3618df8d5de27fd15e2a1fcb63b95c46a75f689b54a397b859032a64facd250b645d916655b847fa4511b1d99e85ec85a25241a17b041c3816e178d4e77afd02e1a1e9d849b2f05ac5977d7cc015c3363b70a9ea77bee319eb624dd4d45e6f2361a5f50f6f466a5fa58ec15121f8af82f561ae2471a12917e8892a420552862fe8ced938ccb20f17556ac4c5c29c0d1ae142ad043ae1414d0dd18ac4f982611582df55afd99af36d35bdaa559f3e9b5f1b10d72d8573a7acee66c7f1ca47ecbfcb6ddcce1d2ee861c4cb241eed3c9d2eb931686c3f4ded2ee3c4fb7d8ad787fe975b68983e2cbfe96e1e34a675e67f8b2f7b1b80bbb719c7f5df0d2eebc36e43346484c6af0a25813254762a2146382148333f971a52428440ed627ad78dac08ce790838bef4a7c3c871cdca6c6dec7f2b766bdc841f1454bc298963372123d2e67bb3b5fa4d856ed387d3673fcc2b59acdfd38389b9596069fcd66ae83fbcc33c85fa2bf92e4e82d899c446f9b4adcdd71f06b6b3098bbadb3d98c89abe036e726d38b399c2f5aaf5910675a4b1f0106ddeda45d2338d1dda010210e13a9ec856b7f7d572791b54af383926c95d2a6589f64625287909eb8449003ef1ee712610c70f7b8177c260e3db953dabd93dde3a6d7ec9c553bcb6fbb85773ef6dd9d95d230bde974d833f9b85ff21f722ce4319622d21b0d69ce561bfe785facb808efde892ddabd1331481c8ad92217004290ed75016085eef620184c26131f49fc71a44e745ff4a2054a72fdf820edfaa18489cb0547771ff510494a02690de7e08e46a88708c634de432429c9c5cfa2105a1088679ea2cdb56c92f1a5e5253de317475be3e43f2ee70ee2423b8218d6823b782367fff7961ddb5aad51b7a9f1c7e3147270b6c353ce669ea7a8349bcdaecd490e666c475cdeb2db6ac3d958adce6b7466c3f4621d7af92825b956a86676c37f3f7fcd31a675de427ab3e3b7d55ffa918ee14dbed9e8e838a419d39092b1245fb3b3c67dda2a25c949e4331fa52438f7b75cb3374cf6c7c19b4a7d46b14763ad527f4c7543ee168fd35f0e5a0767b324076db0905c8d3b88c949f4b2d9ecb924c769832bad71ec60d0d09d63198a3f8e13c8deafa1da22a0a06a43ab346495b0f85f14257c32e973b3287c3229c5833b5870cb4deca22d82c3b50201191a70adba70ada670ad9c70ad0ce05aede05ae5e0e56ed2ba0d0b35386ec382fb8b058791d65f2cd4b8c3fc85bd8a6b35e45ae138cca66692f6e6fab27973a5303a5caa333e6f0b14a72e58b854526c0e5f3097b3218ea772a56e78fee8795610ecc04177a3d0ae944e8358e642e9d0607eec36e3d25fb3fbb65927d1cc77b46b6dd10a66f0ee7115f09648801aa7253923b883c7f5e9a0672a759dc74baeaf04ae4f747d4a0da372a9542a352a342a54a8d050b18135d32c5015e36a17743756aaa20dd025073738e3386517a4ddb104d313dd8dd39d6221a9c7a8b4302926c21e069942cecc80400000003311002040281a0fc70332c994b84e570f14800274b868964e9b8ab3248929859421c40010800100100010990903a026056c24c73aa8ebe0c067b5dc16621b892e1d6fb1e8b65ce1398559feda0c8ad9b043e018c43b63051c7ff4cbdb8ffdf665e4f8e23bac1b81fe2b27a497493ba5985fda3c590fda30f5dd7b15ab7f3ebae3b18be314d07c23270ebb33f36d2081740514cc931981d79b77653ad2d83ff839a9d842ec8ca03c11e618d4f380181da273149cf5846530f88fb6f235dad86ee6f6aafd3fadf26a8383d46bb51043b8c810077ab7bdd8f30449e139e48a97f1c2fc26a9cfa36d06db4fe6213aa79b2d32b9ea8e06a4144d1ab0867dbb3b4dbf692385feeb2da4e5721c6da25f5da9705c33d82e6a6fff650e455e908e58fa95ba963373a825ffc07b06fb0bfcfbdca125cb08eabf0be8266ecd52af3cfe34786a73488b5c2528883319ba7630296af345ea60e1596f315e9cc727f5c478c799a162621a6fa788a9e16020e7ae3032174a1cd328751b9b9639b671a3d196b2be023de52c4aa008bd456a771dbb89a455fa45dfac3ac5bc4e6fbca6e11c3493af248aaafc54ccb76303fb88086f2a53225b88c3b96928393d0356a4bef2935cee47bf74ae934ff1d7600fe2eedcb11756184990d9d7c0401ed72e25411d6b78ecd000f0d94abd02f68bc284b2f7e424ddf64fbb25f6b84e491826529cd8ab274f181f175d3684ad2decdd0c0759015cc7560d2af6de9ffe51da534fe1381d50331f84e2749e5596dea5e6b6ba811309ba748d59fddb4b5c9f0e40b40bddfd7aafb206b489dc2d22342f05a15eccbc1d94dcfa2f97a3075e6d5c5a0cf938767c2b51f5fa7c47a7afc79f4062cb6cc2e18ccb056fbbe0d65769182ef88dfa928af57784277183ffcaf308493addbfe843afa41e70cc3248c63b33025c297a53a3d84d73e48da5ce9e463e3df81ee75c079756accc4ee02b834f61b7c4fe9d86952677e6c4d53c1932638571193e55a052c9a0634dc997bc02d4086c2fa2ac6b8d39cf4f45c9a348116c12c18d01a4b3c8852841dcf17bfc32c6392c3b5c60c61c6bb7f2722f5ba12445831f6547747e055cfaa08532dd10f482937d7cb90bc873bc64168e23d4566c32dba880f91af0a2fca8c0834ac07a56b648aa1ba10c74a412eb40ff0de8e49ad008ff681fd1d8743c22d6bdcfa42e254d4a9c39710791e2359a5a9ed04e79ce8470d547506e8e655ddc51d47023c18770e37164736e2465ec69f7bccba40d1db82980b097b739de34e9765ad6fc9d2c7340020faecf861d9213a3849a93e8ab01f1b02e09e92a7235511dd2d887522a923ec61bb4cb64600e8f210eb43ee557917f1ae400eb9853a4e5371b4e2106724b18f703d61eb6fdd8811f38802e909527bf0dbf98170ef7a1b293fc06336c4ab7ec0fdc1dfb2dd53892e295f4d37fd3df6422847312efc306aef687f624fb7e3fc44b45caab703afec59a65cf6cc35f5530c1990679a39f3cf392851958f2bdef997c048fa27cc361a95c9c8795a0904e9c870045eae5b1d8c0d7ff48e302993b3f6cccc3ee6ecb4bd39508c68fa9c99ac84d942d4f5ccdf75b8e81396a50ae952838efcf62593c6a524073bc25f6e87bab511d1097ba781dc4b233f88a3aa51af4f9302304606187fea29299f32d2b73de4984a852a5e5e7cae0c85ca6c6b7e1cc9581a4596e8658ddf616096f8fd248908130c42cd55c0688cf87c355e792808d542693c5369a0e5dfaee001ca8523e693a3350d38d8b1e35d24ac2a67357355dd4b47f6c9854e732d99e07cdccdb592f6cc5054187294e2bec78f5fe88c2084fc849101d80d4c79585c9a59c954b0d982dfd5cdd7156885d9b1b3183297773ffc3ab52d1be82faf66bc066fffcf9260bcf83935d807ac2bf8b3798f0776e6810ac9fd01ef47bf80b7004ddc6201b3ee26eda192b6e20317927dfc276c7c22bdecb740f1dceee20101343697c64d6477fcdd3435fd455cc33489b8040c64a3afd83c8df43b2d241238df5debee5768964044a40ac51858a1552aee76f3d381b2879a6a0ee63cfa410dcd7997d9ff2fe0d729901be8fad3124acb02b4ab8d10575767dd20cfdecf01fa4f51cc551fd4b0f6e08dc06fb8475f22d2ac17593d6576e96aef4f045908d57412332f04cff7e5cb6ff05ad63617a272be76b4c1405287ad30458f81f52bdda2ca083dd998a35f667710924a31922731d8790000f699875101bc4103923f08f54eacc017f152e7fe45153c83c118010904f6ee5d6f81ae59cac83ef050913cf014ff8d75cd8d7fd078a8327ba06d5466b74d64a521e77af05fc57539853f68ed40fa912043b985e0abde8a6ad079250510583caf626f78ddc3152f9f7e3e33faf7af79f17e9ef29196a040f2668c73faf61647675552cd5c599bf5b3338bfdec3299ee1bb7a4e7f79fe7d2c62e6d8923c85a3754aa8ee00652295010c7f0e2419fff0d564576b9e785eb1b37983867450d93c0027e9331b907a680c2f43ff23e21de25eb8de014a31a07eaf29cc24f54ce13771faa5c1b465637c5b2234da84b9e8ce8f7c2f29df9979ee0c7831b76e0637112c6078f078748691b5c949f2a597668af5ddc04303cb5143b4fbed0bebfc95d9be991ca90d7445e15acaa480cb5038b2c9745fd663246b5fe2b69d9de37f3a898bc23288b17d406b9159b99c6c4b3dc5e2bba12a3f8e84d259bf6c0efd6a0717e58032d1ba49fec9e3c7d6bc7ef73e3d8470cd0ce7fbb18da35c9f1058f635e5c87d63c502b0084ce7c1824d873fe36db30751637e8f1d73f0acb2a7fc505da49706c136849b1535374e8dff13651fa91ae19b76277aee68915acc02a7cab61868791f417aac8209d15c61595408afe2f2a4cf828223d98bc55c16e4caa5beac871d09b3cde1e1289cb6782aad0c5e66717039de01d41fabf179db5989ecb17c9a3be6fcdb723e5a6c429950c1d0997a9c674c89d36feb92de921e0df476aaf2d349e2ab87c0d041af691b96c9dd8f3b5cabf524f9bb0e5e19442a3df4672e7ba81ec831cc89af39b08635a1f717de3981ff9f4226bb8b904df6e47088ed86ef050ed30d25c09d943d3e3a5cbfc89d082f494cc29db1eacac8cdb8ad9dc5faaaf288dbbbfe717616e2d9cf667665bfc6bbb3fa116b698379a08583143a770a2770565351bf89c7df49ba6ce30ebfa6163bc6eb76665fd42b105c7c4e640a428d3d893da32f4489f372f09292dbbed4e5f1f1125513392fd01b4e0dd419823dc7509f94f8f1a3554d88cdd8e907342033d47b7d263092ad12e6d65a775ad0187c0c8114d09714c89136c3459591edb09f1dfda60ecd0d997b96e91eb8d0b74fe66179a73a8fae061b4ae7108bb3a3733d5ed76a2ac053988eafef7a25325c9d3f5d32bfab7d9e2d2e6587ea329139496c4a1ad61d00d5d0cc75d11a781d2e50cd1e888a8a5d038e04feea82d9bdd08de6f7e3d397af362d6a763a57060ca68a75b53323e38648e780ef09a2e73f9162383de6f691fbea5dc4245dc385db486c30451f01b6908dec89af913b60ed8c052b7a6e2fa645789e7237a1c03eeb54171302d247278a481b91173df0010584555d90367217aaa88325dac7f382c05668e2a212df34326415c665475f9ce7b0156767c2b20bcc32a412284c167ec781fa14dc6c2a929b7c3ffa58ccf1e3172a305ba6641d050fab5fb44d1a5005917f8a0ec6a080cf61fea868287c01759448353edab886088c3064d0e38b81b06b25e26c7fb64a14f3058e073e630e20967064ffc769ce0d08c398707a391b13145777d50ba125aed78de42eb7c65bc0b763b3301440415a3047872dbb9bfab5edbe3042ab04459f9db838896636e9856290e341d2c5d0b1b4f16d080d4ab888a8060a9be92d18b28f7f41bd9e056b63e7060c30d5802c3eddc4be893abcfb0ab64e4467f4b0a379fafbfcc9f1648fa5a4d8c9a12a79e889f54b118d65316d968cb7a9525807ab51f8c80661b85a99b8bdd98f023bf42d3ed766595af629fdc90e7249a797a9548c39c6aad966a5b41e35144c6e905d113ed5f40be06a048b0ea88ad124cc931df464f4898bed026c64b63ff4373e81e5b7eb9e4beaa6b16f3ed32a062b005bacca640d135b4fc9659acc61fe432ad668163bb12412eb8b6271a75da9124527f7735f9d8b0c70c8f50eecf952c2df603c9f7dfc94a104a4f579ee2b760aa512e4eff4fcddac58140efcdb30a719662cf917d1f3d72e9c8435c9e7ad98c85176e016a99c0054321cd72f39821571a595062b917723bf61d1443174e5091c31ca4a0d3ec26d6ebb5d5705c02884241bd92e7c1cbaf89ebf3223aa31876d30eb8694b749960aee1b54d3752760bd69d7adb36948bd8dbd13581a92c2e2daa48fa50e29908a11bfc051a4cd19d01299d1ff2a441db8129f4259c38b10aaed35eaec18fb5e9e338505455df8589fb1b8389c020e36442f52bf95ff20e67d8d49784261c5644702a528a9f7e95fc9f4a021ffd40758d36a9c762220841c80ebc05f33f056bf9bd83f5d3147b62c3adb3ab53633150f29b655bcfecc4828c42e73c4e97c3d8ef98d6613511596786413e5013e5bf5c6f15694a4b1ac9a3b28e552fba1c242c2e82db7ab08981666e477b50630b1e5c20beff611579c1bdf3d18b00f68604b227754966a42e614505ed2cb4244b1ff79759291fc6d9db6f0216eb973e9f6dea48919100e6161502a8c65293f57aee31e761576d1ec9e3e224fbaff73bab8555d88b68923b91af9cbf94fce076003f28e03c03184349a672108ba0d7e322fc9659ce8571c4044ede011e4a9f5b49cdaf2e384e876a1c0a4b004fc3e817fa589e48757a589721791ecc3d3f7b9bcc530a88672826bad026d5eb3f2d7201afadd36431a2bd83673924c6a68c3505c9ffb3339cd25a77cc3d647d8c6b5ac44f062b4fb5d1bd76e46e04381fa6c28f3ac8308ff1adfb319c754f48ca9518b6322f5e708c1372ea51386b7fd51d0feadc382758893599f49789cb9d054c5c50146fbd4933fe81bd4f7c2cbcd200684a0dfe0ef5d617fb07464383e40b735f1fba4583c77ccb8dddabefeb9d0c1b2ed77a92d776d71e40aceeee4b3f7c0a98178cfae7c4eaad7c08a9ef97b009d6fa3505adb7609cb31dc52c814897a6bf359a97741c0eaa91a4e2a874b5cf9eafd6f5f055f4d7e051bf1262c43182771528f8a0e63169377adea435036b8c9fffaae848a47ec1ff5820dedd2981a573588ea80e702f49011618c9fe28fb230d07fe73d43673d21228cf4c62716b7e08a5b9f0ffd44f2a9f5e7af3197216e21e927b8c2e9a881c6c3772cccfdde0a0b8dcef025663d6db91cbe2cc134a219b6e44fe961cefe01d2f750c0df5f82c3817d1a60fa0de54bce0b05369c78e8de796c7d6075cf13e63508ea3861fbf6b8d4d4f744339ff6cbbe0330051d77ff9e64555cf9a2b55e8173ec6fc26a7f60c913fcda28241ce76e53b6e85a0f611bdd1c85d208a388e85af6d32d9e42cf994a513fe21e90fd5446f607cd82da0ec8106526c734e72728dfccdd4e9a3426139167dcb445290c4903fa9e8676d399889e6e6cbf8deea66f7b6ab1a40f7048691486da3f01329222d4029440c7c75540e36188a901f32e4d10c575a3b879c122673c50c389a32b06208731f4763e944821ad5edcf00de058b1476d3234c00d0f18dd2833bf90b73fdcf490aae2f694238d64c82bcfb26d3b313e80141bb91c516339d7ccd1dacec01dc63e968a5400faa13994746ba8eb8d50149dee259354f27a280ff6c8c284483b12ae6dcc20ab0d9b9642c15862c9bbedcf9360764603da910ca730602d5bb34a82731c6747eaa005f1949e003cc37f7b45248d17bb15bb53a4fa08a657d0a52da3f9d1a2733105837471c69e2f26ef10bb6f80f794e1d6c9a5c045d2c21fd7e30205ddf506d14ba0fe939e88be5336954888d5b2c9fa7b96063e50e5f0bed8c0391e3a2892452d0ba2b6f5a1e38a3fd58426aaf5b80343580cfd9934d5d3ac2620d538bd3c2616dc11350d04a44db8e3bca1517fa83b2207dc36ed4ea796364a0602a485acfaa8e67b4ac4dd14183d1eeaf999591d17fa6f58f37cbc71acc13f239b69ee74e6cb6df10e6baa7d65610bec2ea47ceeadcbec61d3a3d5c99e2d1d8ab4a4ef528bb6a57d5f5ea10bfd9311ba43955b2ff82c16ea12232e508185e7aa18e4b1c5941c51eb05af458964b4208ab095726ddba72177024e08a1c1647b5a8d0276986f959538ac4f84621fadcc91a14d3c0a746432a35323a3cd43321cd2e185a29d3b216ad164157a6107239f164614a825bbac777ff03d8c75f03d56122b59fc85247c511c7b13688ef51740bc5fb3a695e2094d7d4ba4feae3f7550030f16126780e5382673afdfbbcb1cccc7f3271647821b192fea027f317100793af8a376dbb4718044f78ebdb003d43957e4840e3ce16dd9e3f350c8e1c6fd78c06d5bf70ddc6075d6f9844326e48de44f88f03ae6f437165201f1b20c351a286a5220e6cc3115902cf322897367df84a9be8bdd57a21edefe0c366ac095d947c924c722a16f0f96517d28682e1707901961e4365c1871dcd9feee87a268d0002cbca9ef3643d431c0e1e394f61bf8c554f3df1f59b04fbd025568334d585cdd24af04b607d05b166c52f8f55ee8277bebf7a0f5855e19e181adc2b1138ffa6bf352866fb6ed2b3f8efa3bff44b00f1e1e46f0aa80b7ed1082292ac69c19652c0933506d35c7fea001a43ef2670d7916d4b32f131e594ee1a2d98737e91f8a873783b92eed04e308c3fd006d9c00afa4b8eef8e32acec09042def02950b5fc2c69bf3fb600e2c32bbdfa20bdf96cbc82ff4e640fa280e76ab4be5f799ec77bf206c5ceb3028bc008dc799c546484ac101a32902b2274a69e9f1e395ec24f5c7c1dd316ace9cd09072a2a51032161145a5a150f7debb5e1dadd4ba01de5f7d830304f66701c60f276316e7f7a4f103bc441a84ff6bc416944ba1efa0b46cfeb6c252c9589180c52b4077e8a3d43bc997cbf544124b76752376a67f6a7127786632cd344b906c77ae79f2c86224ba6735d2b24e5d70394b344d3a520b222cddd421809ad126f39224718b3ed0dab28180d4cf714a8715b9c31e61fc0a0db4b968d699cdb9a9ba1d74d3e5a53abccdd5172e4ab4d21723febec99a6386f5865e12c20a0b41d2676dd8e0d3a975dfd345178c896ac777b1e5320f42cf09742ba8a1968ad7672b536e36d739b48cd10959f961ff333587e4d3c36f5660b1d113006f945d0f080bb3b58249d5714b99d78966774a8ea381c858ba8d60de70197cbc08c6b396f91238b5b53b508bafaf6f5b8cfc88f8def496445f6f21ee6e67162678ceb1ee946f17768f2cf317a78045b4e25e1a790c8d78144d5af80a9559bcbb4bf8235e45cc297c4db51c03ef61ff4ba997fa8788ebea322966590c226f7d5b07577aaba4c13fdf1552e1cf0e263d4870dc3167f9ab7b1a79469293b0e845a3f2a1ff4508c87dcf99f7f817d4baecd8d970f1fb62dbf76d30261c4617276c4363e1f2ce5feff01eee66a6a3c03f6a128d15b4c183310bd5caf9a123d8053293c7f26fb3ed77b5c844c26cdd5aff42f5830bde80a7efc4d7b33e58933b94b56f5edb6a88e6019a4e955d611a50b925fc911f57f54cb8045df996eead97ca22174cb6f6dcf225fa9b846810cc0c2ef8c6b0b0432d43551ea9e444853db1ab61eb4bada806a972868addbc0168bc6373c8a17390ef10013dcc26ea8d00f5edbe4324efefa5beb36d30d16f8b2e419e4cc6d9b96b46d24ad4aed3dec455c442863a452ac0377a6241afb6f05add841783d744cb4a2b0384cea6bb1f0470ec5558a6904932c2a630c7214b6cb4bcbf2f8fb0aefd64016dfeabc5af4e2b4d90d7978ace0a4988e898a993ff0b5c7925a9c9a143115267da57ea5ab69344cc3a72ee820e12359f3aaca32db184c5b4176e3c1aaeff9e5fbb84abe50a07e28e1800459a0946d635f3b84c656a2ef23af501f49a28258d65c0a37aa82c1193f5d1d68139201e9b66b777a0b09b2f88280abb0ae1b498400470ed614fd1c8bc82ba9aaf522b256545d6adf2f545534e9694913673b4618aa10754f3ad7b927a7f7e6a27a65e3000409d5246b5ab30b261271596f4a11fc86f69a306a2d8068db908d39720d1a27f60dc466cb3c1feed281d1fc1dcc1521d3d3d6576b3727d27813b7e9b54039ce0a997482adf67b928d6cf9c4b22ab1490ebd378d04579cbe8e7f0534f036bb12cb37c6ae2e7ac8c6ad5007d8f6a3f596d26417ce57bc524c8c0ca340d6dcbcb269c116962990e99fa3fab61c1174ac1d037b0507b40c9923851df2c821345c377c4f8c0bbf938b40debbe83b05b142ef2df8f9ad011dbb96dc0d2ba6443037f946d0288382f1a30b4b1f3719799f3564fe323ea563c28669a405bf9f40a45d471daf13e7261aff9aa84fa344c3abe5dcbb8ca30c8e4ca8708416393b24ba6b1e756391b7da5e31cc2121a667a8bd1f818db5ab34bcf584b162b58603972b408edd04f5148ad573a0bb761be6c88225d4d7c8abb98c0c0b8ae3801682576cb4a2da5704e7106b100eef6dccb2e279a54919f83de6f27b2b3168b3deda4753402364b7a8df7c42e44d7755989bcc396ff7dfdb44842280138fe8de7a56fc31be667d21abfa197bb86135a0704dcc2b8cce57709f6a0961a717516601033383733400c8afadd84359e99ca2c379c0dbff3044928611290a4be2742bec869e1160dd998a3f1ce078bb81795c77e04ff015b817ea8ce2fecf2d59443f389a7a3285be5f12d51cae860583290be3179b3e27a34af85d39ae14697570b5a0e68b9181f3cfc1a98a4195daa3fe1185f0f3d3a2b5fe024b831df4c51e204f3b5b0e6dd80ad0310a66b8493f2850825919d50b42d76cbb7d07c5af57e90a86435f142af2c9b89426771f043a56b9d2c6ba86f31a7f95029fede43bf7fb0b7a45115d0094b182bd904130209de3b66edd086fff994bb653a5d6079fa9eba7056721ddbf7dbe40600a0b427c44fee53e7bc7c6097af14ca349e121534a56ce4fe4d40fce39dddfb11d867b1c99e79a186681500dbb31bb98c52cc71f9c0bd3900c1a132b7e3d6dba5b5375ef2a3f9a556bd965e23c2c973b5a14ebd1df00d2a55a10d0f7c2b0675450eb2865ebe0743a00ba89ee1d718d87f15af0c7b9cd180678daef640bbd8cd4b69bba1a17c8fc24a3718a77b774f0fdcfe91b1c19d32d46e9618db01ef35a4f6bd2cfac94a194840c4cef9b7c70e45e793da65c4108b5fedc9cbee84f35a20e463e80be73f1d929e0fbade6695fde2ce5851fb649b2f1c44b82d57ec115d80f2405a2c8eace68e27d7ca91e736678e8eb570fd532120d7cc5f8f2b6deb9c1cadc91d57b33cf74b38a12840400c10f081c0110a0b8a084125b7cf810387d874bc2f0a0b68918d890a0b7bc8d2767839fa2963a98c333bbf4d636cd487cf52f4567b9f2e292ebdb0bcf6e945ee72f45de74a278873bd7bf2c229cdac7c13ae40c76f2d70f0a9fcbc1f2efd87ce849bcf48dfb560aef8c1617eedb1fc8cee42cb7ca4373dddbaf55523cdd1b390b3d4ddadfde0ee6be2a988ba6ac98301b8515fd969f7eac2d9865cdf2734d9b5d5d0b929e618cf0794295d1601aa3dca771b368507df922d3920cf23a31b115d472ca0fe837f475609d0ecf79c79e4d9d287538d9f33a9b9ca16698b304308768bb8ca0d8bbe7721a69f041513f609bef19e7c0cec32211e66398a43c2fd9c6c10d31fadcfeb8ce263dcd4be16c7ff00aed58f4cbdb4d86c2ca1366d5790e319118d209d51623dd4dcc8e5e79d4ce2b764dc49a81b21ddce616a3374cd91508e97e6490492a3d2ed4492810b99e894584c7ade51f10314297e6ccc03590383121841d93a76a5c073a3025a4f3d2e148065440b7313bebee06341ff6229d747ae67f3acd0dde100e94610b8d03582124fcaee5f373beec1d2671d8a71403a7f8eaa61fbd229aa4688f1bfd83cc9c6b24fdcde9ff147e4a6372bd52e909c8629c4e77924ef55500fbd4a15ded09539285f17b27bfd9a80f5724ca849cdeb0f8494632cdd46b74bb58b53bc4adad57a6d9af9fc04c439ec42c70b23da87f39e6ccdf33b385a1f28736e3bbb83df189909ad821a964b2e651ca8d12a63709335695f9e9b2f0e9f713471e2116269626d31a7f665dae985bff5c92d987bdc598d527a4f5f1ade7877fc39bf93b8b2833cca5872fe44e8ecf22008737f8925fb9cbfdf0d0f9d6cd0fabed79c7652e898c7116dd46eeb3acab963207c9a49f5757e5ad48cb1a8fc698791ab3bab3bee78b1c808f32718ed967213644205044049959dd11f37d7f598b169965895a1ca563458fc1659aa1b04d855b8610b64170f1605b0ba4c799ca0cee72c9355b22c9f0912e2ba2f596eed16f43e07cd1fcf5df7e129a69cbaff0d61ef3d37d848e42f105f77ad1969db8e468a605742b9141f581a4cb9e6695529b43046af29e26db633eac9074ae984816fb132e712b86bc936b5055b989cc32f01c7c2325648707c8e2407a5182334613aad23369a9066fc539df63fd19cdaffced02a5e935b3ab431977e7948790e184573d68c5cb293437241c40ab20854f96038bdceac70aafa14a41b823590e17e48b2803b0fe2dd1798a58ab60055df7b6b7dc18e203cc9a22c8ff456eaec2cdfa378abd41ccd33201fbbeec88164d84a27d09725397c0bd4d6689b02de3f4c5f6e95d6e187d09aff4a8ef7f1ce2852e680fb2a6e27421e7ac4b58f72854bc53c790c3aefe315448bdc5b2e783d2baf4a0f1acb7c956470b7bf10301dca9d5ad2c868f10ab75a0a97094594ac617c8225eaf3cd61428772d71edb87035edf6f741dad3caed48290307cda31f1fc5c09017a9270d5a399570d362222f38afda2fecee5a6838ce126217bcf6b42b5debdff9777c3c26a13c77e9477450eab4fabe81fd699f09664a267c4d57d3d3ff9509bfacc4ade1c36184e14e056dd3c38feaa89b33054698ff3ea95df401e9fb83062ef148054b02d0e93e71643c3d9dd1a57339545e0738394d1e9bdf89a5aed4fd295518c15a272600288a7d12aff9a9ec6d52b23724dcce7c1c7ee56f78889d49c37c23f14b22e86e2ace876ee7e2bfe42ef9211863984fe37e86867943f21f02a55de4bc53c04b56f137d8e51c29afe505abf2eaf6870b40f71c3360fc496c851208e9b53f9a357bdc25be695ea0e14335f671de8db7aee24b0df9e8d2593295eb0661266d0eea9eec3e75693f561b4ef4047188aac62ab646b23b1e2bad429cbec141c63cde48df863fc727de5ec9b798fda598444dc99783a8fdb47b73dd7652c5fc653c8585b5afdbdbd4276ff9c705418dc4323ac23722a63d1a8f776efb8943b551b802a91f0700a9e95011b6f325756f5b31d97578de69be5b12569c2cf4257ba334301c97709c1a18e4b0befc268734b5f4103781851762c62c15e4e707efee6a47c23d3be5afa43e17760c3717731c2cc96f547e9676a05298f668357849f860f99feebb8fd2b86052079258fb9010661c59b49dda3295b3a0fa2022fdf71a4bd42546423a043870e35a541ead7c40f00aa6c1f9e005e9c630d6435f7eb15b6b8c5f05d2abcad031f69230b5b1eb61072bcf436071a7015ed18b7065597650cd8f8706bbb9cf773087ded67eb1fcadcd263ace89b4c8a9c08ad1b399d2ad69e520a8962c5c4c7d42f7fb89ef942a51029213648e87c6a99b93426d481e0ed33e54d880ddf9621ce1094d86e8b718030f9e2ac03cb9fcaf72ed414030ec2f4b8291aeb166d959c554841967681aa634d5a6d967f0ccce33bdeb39300ed7054b813cef29b452a0ef107590969bfd06c071a68e90313ff3dff54d84b80f803f402e7a48acc808fad213ba4e1b60003f0eff4093abcf5feab757807fc6092466a2fa62392f3133cfc1ab47096ccd145cbc33bf2c518843b755082b4099f42c088c5bb661101ccd2fca0ab54eaf73042d529572c46bab47ccb01ee7ac182ba62bbe2469f0a49d09e42c448853b0bf0906ea674a809d9f978c878c0d12536e5fd2f87bf35755e51645af8c2288edb1c21af7f2112652dd7d5aa8efda0d20301c366fe071bb3493f1a730a64c9a7c0abec91f762ae949237556a50938a37e87c55d82b3ae9a82ec91caf6d8991d49054259e26ac22db40b93dff968b97da17f6278e668f4832a836c30e50703cc570d6e4909a4f29a599ecdc2054a0c3eb72707400dfbb397a786a7f8ebe140d9a77f1af56469aa027c8cce4a603aa266e1387acb2439b2fc9c03b6a0fe328a9750f62c77ab1b104d580ff179c881392b434a9d97539b48d3f2ec5e8dcb973f1abf0ce9a0de5b60b8e2fc84ce9fa4af7f94fa02865fd9059ccc4e105567149b801b5feaccc0d65b6e09b55452ef8225420731ad380125d791577b586d96ccf4ecbc13dc4e2094f9f79d1d90cf51ccc22d4125495014224b01b0cc004f5980ae0511da2813a2e0c5169d1835fba96ab00e761023d2d61c01bb7cf34adafc843759edf2392eb468a31ce8000d5b02f87e0de8fd8ad338363afcc977158efe03f9f88df85610a1c37804f1f006ec520c078f6d502599ac116ccdcc2eaf26d43d4e2dc9053c575805f52fa10d41fd4190373a2c46fa0f654421f7e043cbee510bd8a3f856c33b4c9dfbe39a5e50b27d7aea3cf274ac2e693c9b4639ae88db8cdc8d316e7636ee68302b0941947f585823b00ffe4780db10a73ca6784754787f66a03485dfa159415a10bdc001f54a5022982aaa8674f7c8ffe1eb3de1d9ad3f4d87e90687d2704b56da68e5459a5153b06c2474a575c0c9ec6ccb105f521d9f3c049f6fe74a09cf2dfdfc7ba074241f3df3c262e75972d14896dcfa13a2843fe488f3d3ac5e3d6164d81fb655a0175762c7430851f417b2d937d6d7d467c849b731a9669486060f373d1f6ef827f4c33d1933f293bd37b4e191bba4615e7713d0b161e91b2fab7d245a50757ca3505b8925fb2bd065f37ac6eac07a38e372bbacf41f667c9a4a76967a768edd8e93bc8e62becc4859fc220fba2ec865a9936879cbfeab13392375ecfaa6d00c0b1e81386094db0de1b6e8b451aa5f82f4e1f8effb3712a0a7017215601c4ae71486264b53a23509236ae052c0265873601bbd29ee713968317556d8fc4ea9b2e095c0107417d23c876c49f3866b44b42ef643d308a900c2f3085721855cc24824042ee49c2e8b9b4191018c4057ee75a31321329cfc740bb1100636fe23c62e3dec6c384e7db8324e669ed5ebecbb55d402b5dc212935a163d4e7749a7bf1014244967f0fb5b3e82ee6d91b04e598eb4df603aab026e075fed377051007ca8f70513699c01539741f20d07cb5ddb8fffc1db528d5962a22dd5b373775a938bdbf69e5d40d898b61f98a86f968025aafe1dbd6e5bab9d19b8621dc0a47eaadc32b0e77b0c0ad102020efbc6a063832687c37464fb9a0d18b1ded437891e1ad9112316b82501af2bf016ec089fae25427d0fffe1371041366ba7a0a1d0d8478c8ee236633c2109cbfa128642744b4055f33f4065f6353ef135e4b0cd8a1fb82be7084e7d3df8d2f021f705a4733024a67d9d85e1c51679acb5677598395acd3cc8682011624766b40c356a42de3fd10b550186424b060f6387274fc8681c947ef02f6a55a8f72f90d043f03648cd85ec4d38063ce8234bcb331057a53294f08dd4d5f15b4ad5976214f8149d16b7ef98a47984ec03a7a7b8dce52a1f12cd12a83fa28e91a1dc09cb1b15edfcfd04cc06d397c675735b8cc133b86054fc966df7460c380982fd20b07241472235862b12c52c4a4cea520c993e818e8233e55e7d496f358b466a9dae1ae6eb2c36ef2ecdbac7f126d7ffa9f710e8f3150e1ae8e023b29b29d17e39be2e9e2736aaec7876af9fbce7a955994c69c956e5a472458acc9bbf92613cab7d25e5170126c9396a434ba8242055785201aab27e539441500161bcc073fa2440bdace0023529e0282119061706fd7da158a98149f9572405661192e4fb120994ac2f57a3df80e19210879572647737f0128a072e4531b50d5dc8884b6d9827ab05d3708ebe6127c1ad61c77d7fd15f639fc3365601587ae1576e99ec8dbcea42c764389d19fdb5a18c8cc005bfba34cb3e0124456f2b3470422148f963693e0088a76750dbad93765b8338d0b9ba47b1f86b13fb2bca63abe50347d28b26d067716837062d0f2e5d2e888a8e63b6b6387aa9ba3e32fa92cd09adcfa28a8dc1c19620c64275b0c7e0a2b95d7a424c57d3e780c7e807cdb112f7754fa49308a59d47092f673b72d4eec0ae6f1836785b52f1be1fdc930b25d1c19fda49fbf26ea6361c51ec3f5ec5c52c2b0d8898ec3c2e7e02ccaee01a644474fe50dc4d846f5d405fa0c08f42925248d552df57c3105100668cb7380087015cb56f182e99b298f48c5f5c913f809dbff1980c94a5aa0b83c42b64584607d6e7da3c9e511808b7376e3c2622e466a337e3542e0c80e72a7a86d028506ae43a557db3d90e03f0e80af12a1076e676ca2d2ddfdf81a828382334ca6edb43c5cef3887205cd83d506fe05d37eb4ddab2695b8cb394adb5d97acc3c6cf812553c0ea3588056958f093244297abec1cf5f034ead12ac28cf48f16572513a1707ea360862fbd20de47dc13327d0e387308918aafcfa96ff20faab27deab3aa6e15ce657f36f46da5afc1fa434acb60647cd6b47f5170530868351fecbe579796bf7421bbcc0c2699c50d9ea6648a1c626422fdcae213c57daba0858df41024a4dc84035d2133b60091c1535715c252979fd80f98b80d04207ed3cf1a57f2ade634d3ccd01ac10da2037fe92e425fadc08c315aa184d0588fba78773b178e0f77a49582c40131e11cfc7dfa6bfb8b115f7b4b59ea15522a7cf3ce4ca646e066fd32cb6e68dfca8878cbd30c352470825806b9101d4a7a4acdc4f5aa34a233d74c53820d45c67faafe3a67b0f6d1960b10ba5aad8288b822642b184c212f6b75c98afe51a8aec93dafa030fcaa9c727fd734ecdf655cd0e324e6f81097b821359d97ac3dbaeda5222010053d7d976a83754f23a5fcb24d0f46d4f220ecb3dd3ad90c5a4eb82f860555a07e86f320bc806f49c1f00eb020120b080a011b0f39fc1545e53724044cc402b170aa589432fe94d425bea28990626aefb5365519b49c13dd36c9f6d85953949bb693031113c14170dc626c04c993c785fcdaf951b2b19b23c7f937500ad746ca3d2210ab9771bb8bde5e367e574c7ea9122031df858fd622856ca14cf72eafcf4371c008da6181d9d651ee4bd8df8d3e0737f7d3128a50dd9751b289414192f15b947426df9f2beef4ff2f07d573b9daf199936b05a9aeb83c4f85352bffae00f7459a2a7ba4286614b0c78bdb5a54448e7110fb49386bc5034da6d8c498cbc95fcb6e766b451f0b21d149c6a2c94b02d4927a50450c10eb67230d4b98ffedf175cebfeb4696ba8e69eef14e5b86ad890e7eb7c3d3db6a809d466c19f434ad2744f0ebae8ec7b8bcb58d1e52ec1e1e71293511226453482a71cf1aca47d1edc5c0c4ed485d737b34ef3ba2f109a8df74b87d1e88a826f8c433e3e5da4499b9579221f5f3b176349bb8f466c26323e65b15a3e6dac65de39a3f7838c0718cf570334ee75d9f0f8448b40f577ad53c3506ddef4ed3b505e5028641061ba053d897437abe66f90a00b19224fb006090279cba9bcaf2de667ee97e70935caae9e1a978cd835d2dc653c19d9fda2b8a4504fe1fe44bf8d6e77249c3ca773d7cc7b57ecaa49229539ab37a1ab393bce39afe8c57b9e0872dee6f95d2a1397d9615b550bc07261bb32f5f6f261bbd5263c596a70bae221a18988b778ed4cca22de56f490ce9a38171da139e26fcff5abafa4275b1c8603cbdf094de0a0f7dde10f25e882ad01624494ac4ad22805663d1b1221e10fd4c7a34accea2082db8e504f0ad436fc1ce1839bb00b26e83dcdfc27bd711578fae4e3a743cfe71ab3de3d2b0dbeebf3ec7405c3eb53f30a12f10eacc6d80020456a6e6cecefe6a63478e61b043c25edef334e790634f8fca9e1fe1887c880758726a47c48871900d7dbaefc7950fec378c02210b68a9b07f15a55679298243d830a98a560e0d1a9a03ff92b60fcc1301282447c0251214548be0e7ebb537fecaedf8e2614ee271c525b78d6a70bace5ed263d0bbc1cbcf320bc0b0b139760f26948cb7c393e0ccef2b76502b2eb4185d441aa3cb91257adb9b4a5972ae7d1692d9bba54b9b3f76d3a76230903c0b62f2e1f075378131e6256140d7431ce9499851dbc465017932b7001e5fdb99db629de8cd2ef10299e91af284db7ee24806612c3960d04ba27a855929bd1295846f6eb2affcdb1014db915e75aac24e9bd3fe00f53cb3dc35990263fdb75e8558f964423e533a713093b8ae9da46074815a3926829b1e423f60a012ba932cff6f3ed67c1ddcf0fcf5971ec49030f1dc24651a5af919a28a6dc41982e337f90f80f4893f4f678aae529745244b8207937a49ac41d00a608cef91d7b57c05f21c1f0b2590d6f904f145882bf0a67f4fe634b404494ff49bd16bf9d72cdff482b66dd4d86b1f7f0b292e1377e1bba1c2cef7fc268be3eea3b6b83cbfc098038828e9991ee2fdfafd947470203e7e3da90ab9a0a8b3c4a0ef36a2dec75ec5d20a54de37f664d6653cdfb1070cc92313d0e1517d9668762f68964f5d252f91e8109623817a84eb37f2e9743a7f5efe0421560b6617032e07cee828c823d430147da5fa2538ca04b15f14f706cbce56a4533804a2d34a9f091d63742d86d2876ea94248a98373992cfc0e5cdbe11f3a8fe79a8e1482d41795da8743369ecb78ae5233994cd258c106ee5d8e0ff1fb867319230be9c2e10b0aa224d6ee71d043711580879e9289abd525e4a0920edae5185bc3afbad3cb2606d9013b8772d00e0563c2bae0add1ce1a7bf07191d2a3b8f6a5bddc481739cd95756a961035f75de5010284b7627835346aee32a6e63ca5f0bac075773a0e84a260c6d831745fb089fe07b9d7b9e01e78f50377b3156b337f9b3ab4c97648f040ac3d80e173eb65914f789660ec3d311d0a2ff83c3ea79f7faf353b182c6d38250a0ede02a93151c1774028e6b3ef0c96bcc2fe7eab1c2b15d8a27b509a9308b070f99e6c155fac6ea4e4ef724f8237b968d1fe753c117b7211247efca00a8ad12e4f24043046e8a5ca5ebb7e1989037d5964af311925e0a076f6abd143540fc25059551d8ae2c8b851962632f1147e0e98d04bc352c68c2a1ff952152630615084f01fec04163536c53439aa683a33707acb746c9157d7f58538b40b808d4d3214516c0803d90172e50c94d2a533ed5674881480884af1d0bf62562300319e43026e297a19999e67bb4d17eed82011891bce1f155f06b06bd54ca6f8849faf8819ad0ca353a7ccc1996b1234ed3b7a5fb5f331450a5d45664933430fa41a30f81a42773f6999cf7588310c962f31e843a02bb6a8615d940458400df13373d5a13245c628d8731212bcde882c8b3519a07347168d19be29c4aebab840cee6bd97308e5b7609e0b9da755c7c350635b1ce8c903c18e1553b79922d828e868b6e9ed4bf88f5c25cdb20a6bc26d1d59ecaee7aff6c7a81c6e7b013ac45dac4ed66cd499662733b4231257d1926a1148ef592ae6f77db9f5499988735aa659a5d8ce13ac237b40ddb21e92d9ddc76662103900950be151a61be4bf3c2042596e5b137d0fb7b4e1f9f50386890a7745b343fd3136aa5d95dd8c7d185f90459a6e1bbea7dbd81122f171b223eae993bbf5445e47670a1ba3edea97c52e424c13b1643d0acea72a0fb13e24208b12fd07e6d2aee72b73666819d92c81cd37e73e0e506a2504679b35818497a32b9bc58b2266efd03809e11a33a8971c354b04e7380104de0fea1e008ee9fa33ae64cba166fe7670bed1ed1c68d6858eb0ef3894d6822b8c7ff174ee3e1d232797ac7294285bea962b3c3b44544076b0932d299f4756a2b43f41b1e9a0043f4a5d3867783e8544499c2a536fe36f9a7b2c87716f10b8c9ce77c38669204bb296875e851d7fb0c53d254ed2eaccc0cad1bc91ad30ef261c98abb9387b55b64f4dd215a09120d6a24405000889d6369038ded1745f0c88d19c60f55e94227ea44804acfe9de8f5a2b4431a2dfa270b192f1b20551d55c277b0b961d488f5a778aa6ad066027efe050f624adff3d0fc1ef6f8a2a0f81623daca510348bb616c4c5a3e5ef6137ace1db93b0cd5085fd89941c6f3e0e65520224163002d99ff7a4714dd10adfc152ac9c1ae8b9a2c2c8b4cc71cc89fd9026e86a3c86d32537fa8b0aa3a5920e9229019fde28bed028122b4e750b99f45223fd5ac04272733303c5f62c9646683a63df97170681da772f0810e7bdc56c7280f3156cd59d97237381dda8706891fe5118a2c985caa41a45ca9adc0a1687e4d1152ff3602d42185aa168ba8fab38e26c509b69376e19605155890fa499b173b49f381ddc8f08078c6cd5b49566e0b8197222b62df6d4084a3a7def5ada793ac93b20d447dada4f0833277af65d6088fa0b8b9740d77b43fa4c05941a326d1f5d3432d0f72b8ca4db72b32299c7339904b738af6d5af21062215d9c8f992507b02096073dad41c1cf29e62550d373f3419f988ed1caf62f55937c6bb47002ab5452febebd2672181ed30c84fc4430e57af806b57a50cebdabdba80609697c4807be198bb00703ccfecac32165a7857d2463089bf6d71dd339e1cc55ede10ddf0f5b20a16b772a1e995e256d48ea38bdaf4ad90568cf2387fa3f88839e9da74073e317c70275135434634ff1d657a2724e6721d465de04d5b6c0579390c09c7865dfa88249ca3856f05eb17938737979c870d2ead8f70d73d0cf830a387ab5bc3096e3441b9d3eba07e7cf9a8b591ba5ad2b7da7e5d8c36b5ecd3fe812c0389a7668f9fdaadffb3fed4479c8ff29743bcb3d8d699d1eab9b1e47fd2dad33a471b091fabac0670bb03dd602958c4bfa88638eb04aada6e3be5989cff05017767ff49a3ff7d2da879e9a30f4b4b2d1ace2379f1976e381e28ddfe23866685b9469501ce08b9cd622102294deb64fb4823c955aaf4df0bb30a4eff853dea52e66e1e43217db05d7a3f649947462ea45915e0b3dbe9c26cc473be380ee6b23eb0ba5846db361807a0db0b4eafcc39f11b56263b3a6728e6f9398e4e9edbeefeae5504783fae9e5c6d39b295ca0cdbb6d92404e65999cd28828f6f180fd8891cff0b73a38894a10f0970a66dc6b31aa1b45676a4de928af73018edf6a4818f4ff2fc796d65c0ef76c3901cc827e7659ba8dac8801d486c6a31762cf5bb2824b0ee9b84654135753b11c484f94dd1f4af26b9ccff4a09092a89a6b15efd186a1a132b461aeb0e0327a8478fd1bffe9d07dbf0a87b514c2409d91b32cf506fcbe72999439dd24e3ae67a8dbc811b299659073e001f3b95b83566e27629d4c79b5a677e68293b210e9693921712ed0d94d2215f1fcd1c660d4e10a6bd03e7014065a961bd5e23506503a66710a9669f334bb9e5a34105435008aa1be67574b9b7423ecdad1c341269a3b32cbdc0bef87cb21c7af4b0b472f1c4facee8de91a10f3c113a6ef0ee98da8a2655cdb21707dc6480c9ac7418d7fd7bc15bd229d839002849517578c0a608c11178a79b02cb0c85d986c7a1203ef5aea58467c94b85757896906b1e6ddb0a4258724f2e316390e18cbd7ee58209b1cce42db905dd8bb5de57f07330db1e2bf0f7a801610d164cd11c3c42b2249e58a2727356cc331f89518867d934898ecb44335e88912df9c2907e87dd1212680cb3be79baa98e8e8cef3312d2b6ffb72f93bd6d3c46b76f66310c22472fed70c8ccd32adc0c62c672d82660337039640a5f91d9ae30f1a7dd2261bc09e1387cb5214f63d119d9a6ac84333412348fc13fd3dd3810dbeba1578cd149a3653d69a43f2fbd39940fbdf92d3848b254f97b3ca5e2210ff67d8ad0ce23f138fb2e111a294523c54d5b1144ce3777666e49a33f2aca05b3f25d997aa0491a6f90e96c390a8edf5eb74102846556f225bf79b3e710a5afdd365c26aa86f4aa960f23b9feb1c23f76887ee2e1259089053fb1b79e587cfa34f64a3e28763a3009de5302b782d7b024e38b88c1212968bcd2a9eeb50001d8d8c74f9d5384b81bb0c7d7741ce76e6d73311ac703595fbbeda027cd318daf12c15a7e289784efad75f531c40053b001fa787dccaefb1a0c1127ecde4f346318f97298fceaeb9a463758803211e0befe1257430237394c6bc70752483a73587ae24237d937c53e864bb228dd0f88ac3c61b943fbef098281e6b52c095536580587630b828881c160fbc15db6463b7c3ff74dd2a7c573c6b29fbc2613365265abaa9873da0f4a4aa416ff967930e82d140462cd4726b241ddeaebba4e611593024aa28e58fe3c99335a9d0760fba6a5cd8c9b9aca027db235d761b76f76185dec2bec5e82782d7ee1db86e2a1b84c18bc9e13688c559bd8a79a4083074b1cf73acd3e46f5081cb589253da27485d1d432e88104730cea6ee8b59af3f71ba71618becc1f78271e00cdda5caea311f5cc0237afc3b4508124574e9d9b8299f77ebef7696bcb9fd60be9214b991700293737f236c6b30c6794af4bb374dd7321f296226ff36c3f7b297741ff394d8161fa6673486ad7c8f6d6d2fb3fecf23edc7719f6bbd2b47f0d8699abb958653041dd79e5996ec877be7420eebd818b867bfe187f422fa3f6d4481fc9d93c4a1e115eebd4f9c7c24f621ca7d66c8587e7c9233a0182d9d1743824a275e6291cca4f83312c42d9c70965c3b635eb68c0999ec6f337d9ee24e895eab53a93de5a445357a0b5736f76c4eea7f09f841585565dc3c80b49a9dd719f671111c62828e1e9d2cfbe98412d3d3babab033360d33f0630b9c39de84404aae0444a5f4cf5a591fd6d617c35f45f9403c914767743be3f1dfad26ee0df59f123e5c0ee14f08ee01c62c628a3054f88a1204170f29f25e72ef9f6eb4d8d8624b68ab71519086cfb1b3908045d1a54a9fd7b5202c4ceff07187f60fe0f482f557e8cb47d166b97cabac50143c465e9f3574ece39cf7b1bd886c4d8cb59f2888f906960109f1ca4463c13aef793e5cd3f0f498c21cf8acef800cadf56af491cb2474532c701afd7c9e4c3fa809dc4820cecf16072620ba6548c52f2217d1292451ab02fab0c97cbda4a432c9352db26581537b22a6a531b2a95fa90c78a37d94f37e1e105d3d182197989d162f9f7e88361c55693357760921b5e7ceae5968538dd8c5e75b1ebb54f0267e38418ba7cdd94d006fb6e850c0dc4c7c0dcce8433f5193a0798821656a23a315f694abfdbb8d29dccda6f79040b033c584842b4f8f86e3dc1d346f91e43d551a68197c31401ffb7c4c042004d2c6980ecb04f083e88a7893ebc41a32b892c9683266787dca474540ec9c1ad101d0d7a188ae98050f1836a68960ea490204ace17deaba30b0f1089ee5bbdc993791530da2c9457f17a500603b9a0a39b98298789793b4cf02a627432322b205e6931f05788bc3ac410fe141d5f04fcea8ce29514e5df0bdddbe403284117693fbb9bcce44d3f395acd49363adac72bee0a2994045ebd97e6665c3a9ae79f4140cb69bc1d556f2653869af47c7d7ad4644659d39cbb6a9aab73de7fde7d85870e46c352b7a6d0faaf161f8ed9a5afb26774efafe2f80931d62c47db6546ab56db46f6c3faeb91c70873660b0d620f214c454c5c60066c72d04b78fcdf975657eabef3d69376c0c596f8af45ea823d2f988839843d66f7df0b9e6b803489f7d26bd440560a99f7efc31e34c97b4867245a65dac4b94acb4a42d5b5e7bcc728637da8509b290432314fc56ec103ce66055ffbeeafb0357c2ac72a18bb482086dcbfe8f0e2a4474a470b16af2f5a39503c84503b4ced6022f79a934342bd5ec09bf98bd95126c2965d71f9e572fec7e065359c151b719d8551df1aee683cc1412168fdacdc49d0eb35a008dc2457cc05730d5182f0b50fe4e6e91166b411fa350f722c0539eb22b6cec211a94eabb4585e1896a89950321e362732209e99d12ac1c01a745be7881184abfd0dfc71c46d2bbea2b25e97f88c25969059a4cdbe769ca207868dc8b4c24262c7ca23f7f388748e8f6e94ded705bb6d95c05a315d6356fa707b5dd06aa60b51d867c81e55e189d999067385eeaa17adb8ed78cca63817f82f358f682dd36280fff4fdcc581a8f6a92b5445fb898fdf2e872a1c8b950fe3f4733b1deee6153f4177578003df2c2f03d5c5e2b69bab0c3c9c22c997521ad2be6b370391253001a485dd1ac4bed59e416a4c506d05c4a6560ab9af5edcd278bf383067ca243b8db57c9894e233b217dc6fa10a54577abe4ce4d2d2ec3272487d62ab0cacd375221df08a2328424f3c8ac1af4f633f45f50308a8ec8abe315ba51c4227151217ff3ffb1a9256d60a604663cbe2c0cff3d6eebfcfd9fe29296818ec66bac9162729256e8e52d751ba972aa1235102adb9a7ba4a07b31013afeda09e587d4757bdbde77a73f7a56cd1bc7ae8e3281191bd752aa8e3fa5f390b0611384345a6224e03ac1f5db30a87941ff8d96215cb8b1dde7e10a082459993dc6e311b0fcc271121c25cb3c4042779cfc3c5cac0707eaf17a79c96cdbf8f561968e68bb11cb22839a02c7368ed1f8f75c3cd6944be6b91e5e7a69fb492569a3296fffb2a3ae9c4156523ef9904241b803daaae0120ca8e69c63ba3d81b7535f621fe8d2a4ee6646de537024caf3ca5de1b4adbcf789c2a37f38adc92e18a1cf91dda85284d653faff567727808134282c43a3f04822ec6c95ce70246487a3e2a48e17afced2e139ea673ed1ab0df22a576aef90199b4e084b8e58d3547856bc31ed1ad1d2157003af8044d1e28d224ee43c534b347db44f8e48f6e3b7405b4e2c05cd1ab8d578598f10897a539c528fca2642976aaa4775f7be655fc4cc622de308fb2c64f879243f2f6fb006f5172475ee2fd69a5e52d8b41ee13905c11e628bbccdd467c47dd0c8505fb14732925d4022e9ddd2ca1b618d0553e9d92dae9e0446cacdf64f385e6d104d3b7e89b22b1216c6ced8f862ebe2a0651d8cac9eec4894f8c5aae1a3ffa8ff30fe917753b0570ea7ae279cfdf1a9c88f46f98ef8b7895930830a60fc8867c13800986c0dc7b22c2a970379bcb0e200493587326f92abd886f899201d3b3cbb9574f2701c1e8cab9928bfa3fd268ae0e18cc09c11f73abcc362565016dfb6b871a7f8a75f572651a97c3e7edf98c77adb8da1d32835e6f580e73b222ed766cdd22be632cf95acdd0167a46590af0b01f8aa5663aeb7cdf4335e8ede416c0df81c8b5e771fa7ed2b12c9f816a1523820e6aa6bc3ba1f58c64652c39dc5fa470f86185fc9073b971b9205e09d7a07a058141c34c9deed39aa25f5a556e399dfad0bc725069c7d6b68d0132355c20cd4829e9e9f463e2ce45989657ce2db7b37baddb9cc4b87a1b028d08564635a34d0cbb1b42e3c67ddcd5e749e289d6099b5b0ccfe48850b17139cefbf0643badb7606b7b49fd48b3eabe4467270462d074594555c006b39a0cca1c32437f3500b6579dad5090592a7645a9b6b0174b723fa2fa82cffd5dd705543190810e742ff2b5b776f32d0a675afada6436e8c85e915d114aa1c1065ad820e2bf155df6436222a069c6218d22db7f509313692578d390f3438b9e25dccdd08ade0dfaf918b02192c4716f35288950dea5d72d168cacec54177308f16b9de94197cb19a5d35d9459dc28db9bb09b63d88f495aa5ea75bd566208b769fbf8b6d467d1d83c985ad79608c6f58937b98d8c08bcb654da05237d8cb1003d5102aacc9d184deacd59958f2663f16685bd2743a14681c59dd9af702dda9ec16100a52f9b30fc1694c850fe8898ba81a054b393e5c960c723a430e33e54bb024583607460794aa02e75041fb1242965d580d94255fa2a2e1be50cad251bd1ebd9d144f9d2209d7b505e3efe04d40da6c2e5bd6b2d046c647608a96271a7471f3f1afb95fac942fc1f68b65faa4309ef3634e89f73ed4bcc428bf7d5c4ab12645b5cf3b3c1bdb229569ba6a464f38acc89b55b37d5d30467d5e197efe37ae8437d562083191e655b2a99301a07ab9cff92130f67cd1d82fdf33478e3dfd2b0e37973265f58d9025bc12f3cca3bd41924ba3a1d433e8fd4fc014ea184da868bcfbb16efaa90f5e4d6588864aa90fc6dfd324e2809520fcfbe885d8edeafa11fcedacad47d572938fc83a54b8ad53a49323827d05ffaa28a7cf7c49e8c0555136d81b356c506c1dda003b5b51c08b1a8c019810d7851b98a6bf0b5c37d4d9028899222be9d09f4b214a887a4c0eddae8318c32aae6e239a6ee853fabf75d28db6e645f7d1d021955b21681dded600794f709cf39640df29127849eaf4a0ff06b2153c4d27a6189ba2223145aeca6140cac0b46689d81a042edbc38dbbd5ea14619775623bebf31f9ee2b8fa3befeaf0f13c0bdfaeaf3aac5de58c62e908020c1de4bd31a3605ea486b7487ea801b2a061e77c7e866a8041a611ad1ded711ff0567794a56676f4b65d1584fffd627329c488c150ab9bad8e6cc9c738b0a9d130d529d97961f2c676d2571b3f86461b00b55c6fbfe2de277d1473466f539892bd539f5b3838ee8a73d114b1c43c7c7f89f997a61110fb459ab137e39c306d785d1051ea1e62f1d4b046e96d806812d83feafbb6fcc94ac37642d554364791e9e7c5ed42e52215de614b2671a4b8234948e7544b4e7696ac5658d44b8ed864c38ca74636e409aa8594ee1ea8add1e7ba25515ee5a663810e7bbb603b2e38695bd506a6138cf6ae51188c5915ca34707cb02baa725ccf4257afd65dbdb0040f57c4d5908c28cd447754770b60514681fc73eb39b245687b88b2c1d2346513eb75d0259f8a65e78eee713f90a0c4c4eaa77c181ff125301d90f96440dbf1fa6c7c926d624b97b42060cf84ad9eaf072c98d1dd58cac2efbf8fa8361c1de100f7b4cd17a204b0732d0cb4a14a72a68848b012386b145f6dc95816352dbe7112d04b80ad5d8315f9184de28a6f6227f8ddf27d43399618f08dbbab70ea31486e9400e5f1c96a44bb10e49e45a312b9be340426800b2eb45107e846669078d3846be1f2738d964a8d4734f9084ca50930be3cd8f87fd6f1662a5cd0a1e944ad56c977d4a6af93eef3ed3734ddf245c580cd3e96df1556bb7a4d4f104fd5047a43633a127c2cb37e5298cb17544799186b69510b7db4910a331d5328ec6e0e39fec7b68cfb44de200a7d2161c58740ed7e569b36d73f72d84d8216dae259193417ac1d253538882217f75665a506d2203ea339c67e422717bb0944205d11735cd421b3431785fa69c0788af6356440a3298d0b1430563625b667a95effa6cc90591492d90ad353feb1f46a58710d88f7925607b6da3cbad12a93b2c3d8e928f287cbd47e0a72cf7d13b64d14197cc49402751a36b529a06ba01e8ef850cd2221251025c8624793063d3f7c7dbeb9c7638a823f84ea9cefa2185e8b45dad288c11981b3717b7753110c4b7be6ef5124a5e15732ca26cab73676dbc2ca7bf29ad7370d86979531dad75f2412ebb58a6d105793500b0c9b21540378b74c9edacacffa9d3b8f0229a2f795e72bebacaf9b1dc05a4fbc620f4105cc62dfbc13a025d52158d0916063d9e204418801cd6db9761ac16b36f315ed3b4933e547f63a4fcdf5dacb907213a5e3c08d5acbe29e360ceb6225ce6a985ca20c84d8615ffbe21f43c118c88c96dc4dfa1e85398a730a52632c1a8e101618811274cd6bfdc41cf02105a29992e1a1c54514059c3a5b031c5fcb43fa735129f8ac51bb016793bd45e24da7036367a0f609409242a575e458262fed4e7b316ce42277812735cea8dea54725c14953547842d3d024e5d2422918ba051248504a75116329510978de9fabc899ba354e60cd5f5691f0f322e5f3e8f47d561091b978d0bd908d715995e0cec7855f1210027a31543aa2a4561a8d1b0b66a991154a1cb638af1b9fd6ef5cd569957cf8d40eb43acedc885a1b9bd4aa7c79c5a3e4d3151b26657e5510d984bc88c6a292787ff2d730b851ccd4347eaed4f08ffc2c98836fdf459a80dcf7cf1b2d29cf5e3b06761ce3b80081d8c5a034274d0ac94ed959384a7e0498fa2b30c1dddae9a59b2f7bb9d3992181a299f73e85745ad355f6f6521bf0f6d7202297716c2641981d2499d3b8b20620bbbcb447014cc5521da00650eb6484b86a06ecd7b226417d5b025695e0182cf877097dbfccd7cc61d84eb459251fe05c04ca0141cf911a95477406395f1af81a5618dadb21513490d8c8989b215bbd8fda752630a7dd8472ef1c6e57b45f80a1c26838bd8018f4779b183b0732f6e1575ff0b2ccb82b91dac642c396c214dd2f8470c4fa71e4b70d05356cbc039172d2c6621e0f4155f20823898105930189b82d44e5062601ebe498570f983dce12690ef54d89d48566c535a8bef7429446a68dc6c3f14a7f38e15a8bdcd5cfbd2a7965f660ff58cb2fcf4b36ccb4583708ece76667b81d9efcadbf753c0e0a6c38b1587a978d15c0a8dc4c322d4d9ce28c56ecaeb2d8ace48109129962badd94f0eb01652f5c6560349185ee93088d48fdb2ccf9205779f45b7f27009196aac563a87482e9d00386c302c9958b2947263c96201cd9d17a168de3a29731802d3f93299fdcdebaeb311dc94aedc5a53504ce4d6d5125cc2ee2c80b73c88a443f51d32e6fc4e78e1954041c96a04e37ce65517ec4307d62ce4bc98368960e1d58d8ee80e9a12699991ae54b681dedb610b11bad766a10c567aafc9b503276eafca564f984b38f5d93d9b18e242bacf7f1e84a4bebea1052cf469d7fe092f4b89fa4cbfefa66734754996135567aee88b41113b7cc7e020c0623181d524eb20a736d6a03d97e7cf9d022545614fef3a4355bc151ddc755252b325be0b86a8709b9c5caf31a2b18dcd4879fe56ac1a9201d80692d6473cdea87bed19af2d652cf60c06ba93f2e3cb0db9cc4583229311bb1deb98385fdf6aeb88eeb3f1fd5bda586f14a4da443ff90490e4047d6e61e9996e3b358eeedadcf4ab9be6c1b77a9a762d09e11b77fef79cdc5381d2df0de63970ccb5eff0c178af02a09fa9d07798f02f8ec8a4a9dc1e8c6b17355ccb7e6a7f8131aa1da40192eba8f4f27f1d12d2502745a91fe60b198fc56100ebfa6553c57f4dbd580e0c5608877104041eb125ba6e20a7174f00e5658e044208a1cb9bc3304815891e9e01013dcd3a6fa51e01f5ba2b3602deefcc40506fba6e64979c0aa1f0b11876a3f2f6506e801052568bf3a884f48a88dfb6db60616fa23105424b63410f6681f8e4480ad13ab0eb0485daf8d88cddd8599c6fa07dfcf17efebfd4f9c515bc935da284a5b518d5fe2777738ec4e0135345e369466fcbbdd1274808b593e5a50d29b78c8f747df81c2872b6806303aae44c92d97729501e3685ddeb7293b7339548c472a7701e26d6a06651e69f239711e26e46e2e0f3dba31eddd0becdff0e252e1e7ffd3cd957e936ef05b8ba3006d299915ea44c8399c56dfb6b62b8b12c82eef02bc61f8fecad8ef6787ba833a18c741170ac317d779c6daa0d4d911a6c4bfb729490dfd7bc1dd380ff367db2cfaae5a5ef176cfc1becec65238a674db299f6dc4c6c1d066aab0c23681654dc610a1587410d210f497f0233bab3c8df28bb0de6c7c13316b215e1101255c75f76ca791d3aa754c60110b0f18c8a8a202239a627f4642cd141107d434f4efa3efaeec8c7f818055cebd6a9043ee3e2fa290e60204c50243a11945778c42024bc1e0e3671f54ada794c59d1ecf2ff9926a3c9eef1ad0dd3c4a6dade0e664553a178ef1b9a1ed70ab1d4ac4d6f6c9c510304464b4679e0b62aee4e8041df6a1b55daaed2c44880f20f857a749a4a2d12b0471389938a83e7b996564ff58539c57d4238df84125f637dd6fdf68a819faa686caf8f3254b36d105543285fbd0d74e6319bd927d111b497870e59f5fef03dbbe2ebc0c72c079b5e6af6ad74921d782f036a2b525a1fc33864d9e38db910a0d8d930a92388cbcce91d7d30861acea08d5571fa3b7a52c1c308faf11725d269cbd73b5d5cdcae30dbf43c981a16d2e6674d8f06eaa09f989e37b8ce3c5401d27f2b9460b86d265be660afdcb191ca0d5927ddcfb5796acff59915f3ee63e27922591ae105e415d03f0767efa66812bfef5db2418bc58b6a979d06ed24394c4ed9ab6d2ba26ee563c0deaaa861e9dc6b9afe807185832d594cdda38bc51a8ca9e0e3c2b312cc4a0a998bd9201ec8b769bdb696034e0f08901ed786b9f9c2076308f676a78b968f3e122f5581b55fbf8bb79e08137dfe87ffa46ab5a1d7b9db18bc305a202813b68687078feb52be7f490bdf9b6bccc68a4c00ca136f7fd96b6cfb69ed52db86151bf582b488004858ade456d3649814312548187f1d46691d4ef51b602b0e6623476438b2d08a8b61aeef92a47474ed634bb9a99464d954bc5170d4562a080ba81eef81c1e290010c60e2792e903a98ab9810425a1dd9219ee9b49bb4060ba6b222a382b89bb833d0f91ba041bb41bf5043c234edf47cbfc90d267840d36f4a5a5903d73bfb4f551fb3621faa3dfcea05c7d5141e9a18698468ebde4148d2306a62190df4849472e5c1b3340e140b24c91015700f9b5a27331f0733d1260c0de7027be1dad60daa8a27651f0579179713f053b053a0383b7e63b8bb7c2b84098f211bc4cf7292a640a55742bd5932ed5916a18905bfd9f933cfb4163aefb3e5f6c66d1f4639a28a70f130e59ce01a03de4ec6ebc3ddb9601609c671528a0351cf07936170d1c4fc877aee45911a6a2eca1f344865978030675ac7138e8934ddcac7d0c04755e1074aeca68a4ff70f98b90dc05231523efca31ef737d74b2aa18b79aa6c74bfef36bd1adc0ad2bc4c97c323626866257a9118616c396cc9bf4f4e108dfed7d68c1b31e9593711e79aa854c41e19ee940f237c1e59734c91c0650be098caa036f47960e531d2185df4e2c05aafac87f3a020bd6f79855f22e2ca66c7792a67ff64fe839e560bfad685bc79b3d65dc9188298836a4d57bccb1afe2bb0f1a94c21068ceff84f88b9354e6863023e62956b8dac9dc6110ebf58d42ff19157070bd9247f075374d10fb14972c038a631d5ef2ada8cacd3ba5ea9bef818242273e332cccf89e47d54e115d41fa02eb3182e31753a45f87bdc012a2e434abbd8e0da9da5c6d2eb9edd8a13b5076c65ed8e946201076cbd9e6efef7c77dae11a4bbb1b07b078e10977c64865e5cd124d85040d3e39c81160716d80474186fb70958c08a61c1ab69e935948aa4c305b52e04844e2514711e9be7c4afcc0d4a362fd113d8dd21b95f66e56c03c18aea439860fec321c606d6b896a28c167fea27eb2665c04086602717e135a40e34fd9198b64863319cdd7b5274ea2455b65eaae687d00132a61c8a3d36da203e9254ba6370d3a151eab977cad05e2a0264e8ab2cfc4a48555d4a456596dc53f8c23877a9b8703455ad214e69ba0d37b8674438a720bf768f7b664cdd76de924cd1340b42c31da85526836618f72459055016ad489633bd3a93adbc4c9b62ecddb9b55326a10967c0c20e5aec12e9602ad12d5b29d3b02106a2bf0555dd9a3fc876d243fd5aad440261e4f546fa4f912f0ffedd54ff0154aa11ba1aa0f2318a2d3bf978b0f64c830ae2ba2af532314337833739e798168f9ff1d598ff8bf54b33c0696d7922373789523cb313c8aa41570785212d4b26e9b4ff71678202f69518e2f37f8f0dff4ab96f49f3008a727988e64bf886cad23c9aaa9e6082e67f5ff4e46a7527497b87d0338e38b55d8f76b68cce60e0a3dd6e4d9767123b879980e45e210b694ba2441910db3b069f357a0e491d0f79cfb2e872357b6eabaa67b17e31d8bfe608f44f640953c8009e0655d065f7e2c1661078dc96dd554a2dd8c427ad178d64f74b0f5b8f8a0ae7de7853e04c242ffb310f1b1c002eba40abe814d8d2d4c416e963fa9f3297de128f7beb347268fb7edab3f4e923ec7fa1b7e77cadf3e0d8f256068d5b3fbeb5d26a7c56907ba232cffbb410af60642ce216f66573b0ae9af5698230b484118bfa39d74918f85fb1aa371989ce9e8ce163903ab8cc1e538f2c090e69d6137422fbf3ec08b0aea89c6335477955a3e1d0e33d445e86ebdc99ae6b91a591466eff9e36214b321b0d3fd968f11b197b46fe74d0bf95f2e84675e5e731de92ca0df4b1ccbc4a1e08224dafe62c11d31afc7b8bc603061458ce3c1cd2bffbbbe1e75654b1abcd1233452851cf4570187e595960215ca3d2eeaddb992c5c9a17756699fabb06787c3ec5be409005f5b910d92d317cb6f88d5312259623cbf02f4aada78a8fbb81b4ada9b7134ab454d427d92a0a0e0ae33b860a0963a844b93f3a22398844e8f49c2f4e0e5221bec59b711e8bad25d567a7ffb0d853c3c130a9e0ea3a5438f1bf90465de47f92a5023f5e66ee08c01e91a6abca5c8b091197cf703175d14d7b8af4f9af62f53a55854a11b72ba0681985d617f8fa3372f788efdfd713d094102c2536537d35350af7fc5c0e0ff4fd98cf00dc41c5b87111d5e42325c994ee1a65b02b41531cad782aafbe2671292c14e6323926f77902b14fcb82433d7fe369ba3bbe322c82df0af27bb62807d8f2a59ed30a417364a18bdf522700dd51c6c2abfd97ecf47c1f65e426513defd99b0615262e58a4960d7d3a689610c443626dfe1f1d05f620d19c83be91c5cccb27d41c8b9a61360621d742e8fa1762c7b0c715de92c87b71a0ef6ff5ede0d8479e9eef11e7239f32d4e067b70cbc805d325668a5d74cf8f7fdb1b0d416b4c75877c05e1942561369ccde1cec2de180787d4b5c939f2cf969ca8bd442fc83e146eebe898d61ae3283a12f497f2dac3d742745c54ff8e3fb2e5c0223fd6a1a2cecbba3320074798f62f557c4555f0aea418d896f6ef24e609ba0ca0e20a1fee3261df366b057fc076579b51d6065effd64b269b12654ad503399c7419059d5c6879adbffb4fd644fbf7eacedd7adf6ff261e96317434ecd6efb694f9b3cefc0a2e818e14cb207d069b4c78615388dd869fdfe63c30b53ce4e28a02199571d795a4f3babe748480cd032eb90bb8723c787961b5a3185c4c839d959dfefd1236e1a04493bb8160a42ffc2e6ca1ef5d6ed80cfaf0f0ef764733f3ad39ea3def07ee4489c827ab019f7b50e46e668da8ffbdb13e223d6c0b8a46d8ef40eb17ad00c8a41837492d8ca920c4b7418038aa6d78171a4f642236c9edfa4a393c530ff883f969b9e4ce4526b3bc6c758f5640248f74501e9294d596cad1be34da8e6bb387f83d822f9ac63bc6cf04e14004a05c35d06fa2bed6422c22a44d046407dbdb960d71ce5beb7f15f31a7f420bddfa7d56c16065d098d24ba2f82e9bfdeaf46819411273e119d62a620269e2bfdb24cfcbda89fc585f7710f97f727b2dde73c15e29316f77db03ca749915dda2cad26242c6bea86b13ee8dd273a3020459c2ccad6a23cec8b45e2ae6de0a0629f6e8f417e54df7dc4e7eae1ff43b831c3ab449c0c1ff3ce0db527001ef98ec43d9948779ec0cf4d3fa56d0e733a2d2be7a3281cb38e02488fd81b1412c545c690f5a85ef221d38e48b323f9964632d1b6b928d8d49ef3137c28f00c18a69759ff20f98da06279aeabff93f579a0f6d9d5691fcb314ace49626bd790d74881499fffefc503203f03686dadc2898b9bda665f0ce6daf6b2c4dc3c0f72790a1280546da4d63ca9b521580679f445ff51b7217f219adcbe1fa27825880a48843610ac9b181027f7a708f55eeaefa13fac34f76b95ed27d0fe6ff8eac55b0fc6b50f635dfb1d7c7f814dc99f264df538b967bb1c7669c6d4b09ad2eb2a122761860f9b10bd1c13f52d63b005f6ad72b829823b5d7e9ceb4f5c5efce8b4d16b0368536b75d4fe5d10dc6cf75c0304c27f1c7dfdbbf284b85cbc51fe38e4f8acdda4c1badff3c1562bcecdde2fc1afaacef95efd79a026543fea2a84a74399591596a8a5bb23454304099534eec75f70d0abedb0cec50ae801a1ddbd2773c3a0c380a32262a8fe8b80ee6983e4d3807805147e41e063e7be3d0d639d05e287eb62c5f9fa0a02fbde2c107038f0ed550774f0bd5da7fb3717ab9af14938545fdfac561a3e1de8d1d673b087d4bb1c91161b27363f4c889369e2bd23d6f3d7292c0efaf42341f08ca1f9bd4a9b081e429ed7290e97822f82f646b73508dabbd1afcd4523a91ffbcd7bfb6890ecc6ad74d19958b780fdd68318a9faf3b8bdea2cf8c6333f20efe4185ca310bc75e3232eb6919ff26eaac43f0285ff830c0d8619732d863151982e93f588fc3e5d17424766c5cd0ebbf9ccd2bdb756b0d11a27dc8718a489ee8b1eb3d134f638072b3c72474ed594a6628654182477bd6073ccc95729cfb5f6fe37f1df1e0361ed806e8efa7c19beeb7f46beadc2d868f86171817282984509304c8c54b0688fe45c594bebe1daa7df587bcbd98628c64b3f03e9cb4251e13d7c95cf14d77f358d9513bd0da7fdaf634f30624e55fe89aea3f4ed9b8819cdfca4f270a3e6accd4c4d57364b28d63e7a598bcd0f949a98021ff5cafcb05211d35f515a62f0e925455c7d7689c4ea479695d8fcc15211133f66e90e1b7d30b9bb4de8014a513cfe98951bd571d19b64e243624a6e6306321e9cede3cb4b0c3fb5a4c4e5cf2c8158fdc8b216db1f5a2a62f2ab4b4b8c3ea524898bcf2cb158fba8b2109b3e50aa629a7c942bf3c3a52e267d55a90d44781544f2ceca3da6184a67003d57f54c5e943c602fd7dc7b18dfbce2f645b6c3f6163f8c1c8d127ea3d62459071551b7cb1ba7ae9e8893632f03f4b0d426d7be9ec00a2f4577780372ce5c67acc997091fcafd23af9ffaf6fcc57ea2aed9bd1b5698fa67c104c2b5eb9d266ceff314272c210b1050506348be375ddd3dbfc32c15a3eadb862d3cebb2d4946b6e4891d9ff27fd9746e7afb3c0e45a6add0daae74cfe42fcef1d1961fe5106eb4861afda3d93cbe453daee85c6d9a32e1e17c7d99322cdfe9f606390cedce75e9e378a4bf28e1d9433ff3055ef602b17fe894e0ecce4b35e3f4e1b9a97fd36fa17fe16db5f552f2fc33fdce92281f296141e2a3039de8d48a1356900e56f70beee3dfbbd057ebd28138673d2d413a53417b1be14563bbf44b0c0328a138416f4a0daddaf6876cd267ec14a94480508755bde469eae2bc5bf5c9b32000b052008e1ccea06440493a8da6cfa1340cc72c031b431e4a81b99630109b178bff0a674a2634d918cedb2de358132791fcfbd516ab12dfe582cec3d8c0f56402f9a7655f276f9c4fb1ec1fcdade20d5f6741ab82f37f3070dd6db93e37e4f83f057e49f2d0418c0406b95f1042a0a1e94633946adc6255fed64319529882319a50a16f40c467363ab6fb54e6f6091231d9c8c30d44588cc27084eba0d9755dbaf2072287e435086a3eada0cf2dc4b620c18791937440a707e6215ead0004fa0e2ad9280aef310e64154fc2bcaf53928d1d677e626f9a43e39bbb019186dc44b334051e9d1cb3c9aa64b1f454759e13df0bc2d29ad72bb11b50b9a7057de6ee5685f181aade9506fd19096e7099cbcac9fc15096b71e83968a154df885e8c7fdac9adf767a7c8a9170972955206183a56b922e52222dd4477222a45451e59cce099bab0fc810f1ddf9504a91f289918324a865ab3d982b24bc72e7b6f4c1db4ed397bc59fbc70407e775f2e65871a833c7726955eeb0e2696719764f0a32d9604a731b7f930e5683b0bf006a55af18a63c0ee098b24c06d8b10add4b9701d809743b7b6a8e19f181104831646ca31640eeb0422cb2146cf8cc130b0803463e0a18ccc8a2bcd3949894859610bfea537d960760e5baf00fd8273b04878a0a539b29d7ba1f175f8a2097f6794d5d7f830bf7612c05a0a10088556194e8befa690f4e1ab499041a9bb0375020cb085d724f806fca6aed62f8f03de3603a5930b00e1caa8bd7a7de9f13818494586b2aaf4e7ef0d2d64b58db0b21020b8f6e827508a45c3106acd4c4abbb71231ff927a4d8a2db83a79aa9c348299f468a2b97540e16f8752ee97a81953323cc00e1acf9333f60c946b511ccbdc6d18cccf13c0b5bd4a6ebe7fe527cd819e0c1d4690004eff77f2d1ee9c8ed8e1496c7769c119edb73b3c3d7bd5af7f94fd36f6b6da4b3469fdf02e654d00506e0ddf3f7bbd3e1161a3996b37ac290d0e9dd832a416ead74a045db2004501ab550e88e51035ba3f156b8c9c187c377f6990597955d31507657d3ccb2e98e47397636458eda8be6d835d7ebbcd2a16cef33a225df0d041e8267d285bde3233362927ce26acb15b4eaaf70df7f773fdc79c157f416bd948590f69cc2940395e41cd8f269a323893e1c927af7a75f16c9b34f31236c378cc3b1ef117e80a6c58b4d911d713f7c490a3f15392a2efae7e944f8aa4997099c71a137884aa989bfdf4cbedb811dff85c234433432528a33a7209a28b14cbb93a5766efa7ed510ad887defb7ea9cf0a923f61157d8574d57c651ebc4bc391c0a20930072b124562b56b8d3519e6cee47ad3b565db6efaf91117abdcf8bdf440855ce9a1fe7d24e87bb36b5f987330302cbd45055beee21ca59d916c024be97e0fdd1d0e83c3f1a371a999f373973475a8af8aff03833274d7662754ab5877f592657edde0b9dd37ce3a333d051ccc754aee201caffb0c9dcb8fa1a2a02995a26446ec3424f75bfa4867e094646a7895a17f830555e669640bc520a5efe653ec1c8e8e9e4b0ba0c80c6a96cb9b549c96997eb7028d423436a1434feb1d0ab2fab8576eeeed6059916890cfda6294065d884d695674045bbdcf9c040afd2723596112b08c13a8cc69ff374879938b19b0bf867158d67cc06a056f123c262366a3798343c88ed4a91628fe12df01f64324e5eb12ccb8f6b178c886c81415c978a7c1e6fc8fb4cddc84833b3ae0b9bc94293936976451fd0909ba10bc720ea7ce8225c009239be3740cea28b2cf4f5280e0e39d77c56aec9e1e98590ad434b03400d2e126538e45ad217f25b415a9fb05637dc0ed51d78d11f8f61f2ee85c2a58f2fca21e2120eaa5443bfeb0faa5383093a61d46b1a1b43984110eacd9740ea4a57b311503a498becb00326554933fbc347f5b2f07a26c8d1b8b94e960923755921503c28220178908dc0c6a8780f7c094270c5f43afca7ae43e71372b3d4c98a0d4f01eb42c68b15555bc44c3479a21737a956f85abb7671b1c54c31e440a270558e18737d56769abd979a9b24223af31452b34a5c2bd29b68f62b33c5d76d04da156ffeeca0ff8217214b5340e9d2de52abfc1b6bd488e8e30e9ad64fee90224a377dc9331b4637c921058d1c4532bac8c4d2ea6127502479b7aca7e1c2239129ae0c3d6c4fdc8d800d4498dc17003484d3e664a5f38b516eb692e0a681bcab82d977f0cd9424e52fc69c93cb763216e0ea4c0abf91a5da615d8703ca7183b975686879a21b33d6addc2e23062918525c2667ab780839095821c5b3af93a2586e0387695d3402e4bab849bb7fb29fd117e6f7ba11c370fdaf89631e2b745c5eae0a9db0440aa83c89b12508ce71cbdbbca0b1c45684c55414644019eac9a126d2b1eabf5cc36ae9fb200aef292ec4eb7d5af3e0ffe688c20925ccc20e9ac122ba1d4d5d509c59da5de73a80fa061b13ed851eadf6ff3b28892544d45c0292fc042c646a5d37473c89591c894d5ecf23948c9ec3c40b95180c8559ce316acb87ea2e9003453609e22b945a4e5c61c7951944f7e7e31b3d809e3efa4396f2a74e0532621ca335b008d83cf694c86ae8b01ec9b09b22977d37e9a330baa5f4d185fb19900c45332804ceed2eab798050447a338a5d6f3de6938f0649550e8b4ccb23aa01e0b239a044fcc40d4156d4c54bdf4b174ac88a225e9bc283a6d484499ee19393008c4a4a58cebb0113f03cf4039bfa146ef91ee705a3587269a810970b0a33c9155b2e1df18ba226c21c050b59f7ead9a3b83ef177c6970fe382eb37c178e9d639984de94276338b3be3c5a6b8c1556a1deae2792bb350c8a1e63596183642dc7428fe3889babcc63d97f3062da7abdb31dd88141b8e2c5c37bad8177b3f3264fb25feae938734092c30286064e48ed1870c3b3e88a5c5ba40b6eae130fa4b4e800898f135a3d743899e945dfa6392ab6d414bd23a5bd946b2346a415754d5719d36d2be2e556136c0e49eea36c1780c178701468e6e0da0030cb0e645e0b4199492906d16357c81b82f7a2634c38dfe43b4f1bf7f1b71beb64f41ddad4c05381d8ffe11e38e216af32a4e6c7ff3194d9863f5a76a94e404a504ee03385848632da00b050d19c41af2b95902a32a56fad9b057d59cd6d6fb41286b1cfaf10b4d6797f2637ae2c1849b6de5a68b2fc9e56c86db337437c90f056023cd0cbd9bc12bfdfc1bc0d2dc3e45d1a31a4dc00531066393dd4210e1208acc1fd4c9882259d6e00621fa2e414f9495bc7bf21e025834f7132f6c9a97bc187f1512d8c10d6bb717d9331572864bb8851442d7d744962655d115f4fbeec2a965a199ca7416a041cb95705c9dcf6d891c7f16c3e4ddc88b0b9d9833f00de370bfad5bc9adf87a36619c8522e27abed3889735c1e832d107999ffd3401c0ec5e719562498ada78e9e5a7c2fc13598b8c113640b0912f7a0d52539a17dd5920defa8df58f5fbc55319037564840e7ce2c440c239514e10a69668bb8dca12ef7a8a9eb74584d35d0f7a49e7f4fa7d7e30507702e49c725d29067156734205c76c3dec5941c8a1f55e7f6689eb3d8318b9c9773a08338489b1719fb650614f77e0d5d69795c7914c8976732814377af1f211b83be1d7669cd198f67e09e8abc1b6603e978d0c649ddc019310e7b7657d3ece20a67c72eb2ff75994a4051f74219be26835a6afeea53331b6b8252bab6800d3c4c28a2874641c65813d9f6da3865c861c9fde9bbd32887bd18429598a9bf622e5dfbbd531560654ea46df3dd20ab8b7f56992ec987579ce139a24cb9ded431509719f0dc22a806d12b12c8ff366a96e1bb099a414d91f0f47d569b73d09fbdb197dfd2e443aea125cc320a35c3dd305d8b2941ee853034d2b41f27612211c9f7a044e78f6b26f6bfd6000822f03681f901cdee07792a2a5f178889e347eabd3484ba2f518ca66b0af19b36ccd8b6106d8dc18641e42203afe20022967dae91e2a03a5b6dcd33185bbb0db191c4d4750c0d053edd5516700357f9d734a43e6775dc09cbd2289a775b8990e893eaf5797a4e78a8d0524bae24634e35c11879026c4afc8c4ccfcd82eaa2b540b1c3f8a1f969cd71285b41d67dd602efbf55df3872dd238d3d834cf38bf8d46834923e29a5df7c96a3a07b59ea74dc3e064ca41b96f77a0e879deb5a9dd986aa832481e3fd08944a2d02c373a6e4c1753615147d123435f7f47421f3247d90e0e0aa52ba6fa584057a471dc769b86511c19c24e19b7066876fdffad9f9509d053a14605a453eda1b1b490baaa2f23a1771fa33d14f05197ec5ab028c00e01350a1b5c12688d74297efbe801f1e43c8d9835c02ff27172393e5324cc2368b12ed0af68d73abea029f11a89a2ef152b8f07228e2daa2324e0e87ea6ec288446ba32ef4b1c6a9a1d55a110b8818537b6c75f3c7c1369dd589d80cc0517bcddc220116e42440fe2a2ef4268d3cd859bcecda48a672fcdb497d8cc9ed731ca2ffa4164eaa541e30426322e74204ecdd6dd4ff72498bd6dd1e9fba51b58bf81ef7c678f7f330c14942e1911412728d40664a158dc8ae879f8a974673b3e03e011b10b9c820e32844fe507a9f0ec304147cd51b268c616d594bba70835a2f11879c21534d375142732e0b487d8c50322357b579def49024e65d036df8b82542dd97c7d7191eaa17bc3b932aea9533c21f7cab6446165ff31d9dcb1d0ac362c766278cf60d929b6e30d1a055d2382bd641b755d8ada09dbadc059cdb5c9c1d7349a7cf5d97b1833b1a465f729311399479487a2f78159b72092079882e90d6165f4c36fd38450d64af5b491355eaafcb7d07ab9d1eb6668971f6d33ce06722f8b1a5258bd44301cab1d943e82887619278b24f1e48b008d74aaf37aaeb6234a04342dd300746c2409819ba58c87a2ee8c759d49ec8b78312a14eab19c14386a20ba03b2d46dcd88b789c46ae09540d2a132b6a025451f2f1bdd18d5d38f7b2548876eca8fd57830d81a38af84d10111c8e8d145b304e483b1c0875f4bb52f6ddc32c07b7800e857877e08f11e064651417cc3b137dee640a10c401df418ce5941c75f03b2881925854a6e98eb894f1361776917960b2e2e043d1fec33cfc79bcc124a03ad017b631b63cec695be73103d5a65cad474bb74644a1dd03d78058c7bf60b647fcb37bfd98dbfb9710796191ccd15c425e6d0fcd9e7b43622e0d70f1785da723567185a6a9d01133443aa43a38853c849924450fcd2933f52c5f1a59a301a1f7e9a1f4c5b41026db128ea49657dca8142bb114f5b237ecb7d50597bcdb7d034d6ff8a88b22ecef22a4a82ca7c46231b833759729b47fbfe1ba1424a902558026bae869a228dfa7be4c99ac7d191f616bb92e4515ec0128cbfa83eed26325c831b438c51be85c76367f841b2ca5776393ba08f400043e3e460e13491040af266d0dd0349e04100f40161825b6300403658d4d0fc08246a20af62cc66f9bda6e0bffd6922befb6f82e67ec7c309c968d07213757f6cef29ba53af576def4c5481bf15bfb24d31957119310210800840f3c084014007400e50687132f572a11bce870e6468d0f2a3c38300595aa0347b680a07a42039b19b8e00d1b37b4b851e580030f5cd0c103b4e0645144278b22a74fd51395aaaaae20910503422491458a0851aee860e1020023c07225009d543ad28a2db4a8aa2c90d0521da12575eaa9ba5499a51e291268290d90527a9fd2fb5455d55fe95ca9ccbc90c925151995197c05144fd45079a1804e15422ad44974834d38d9a4aa6e3429a3aaaa28379554d54d269754d58d0d2adb735349e5e5b13c99d32459a9aa9b1a585249ea64a2840695e9c74727063414b8a3ba99810caaaa82a2aa2a59e9506084aa9aa4aaaa28379254644aa989fa323335f2992fdcf0c20426b0874e0cc3c513d00a18c54a0cf088a4aa6e2079c46752934f96aaba71c490460c99a969abea8691450c310406882862c88d9aeaf4657a4aa62ea99e921827c6c9f053d19050f34f262ba51e534df554a9aa9b337e82a40da66aaaa62fb6f429d4db50553789205255654e262c69aa54d50d1269aa800953553787185255376ebca0aa5c5055d54d2137845495ed190d5259f9a93754d50d0a6e0469c1182da8aa9b400061411d52d411b402d3fdc38faabae9e34b97d6d22fe874d4e1aefe6796fa8637d923759a405575a3471e55750af2f1627d7a48566ec848f3331851553778ac49f36556a7f919ce680fcddb121295eda9aa9b3b6eeca8aa3a2a2f74bc31871c3a6be7268eaaba8143055575938237aaeac68d9b3658993a53605050bd0f9d25315e4c3c3ef3af9878d048eb1364b2e17fa6f4f109c2d266a64c1189443f158d89470cd03c8579333d2893290cea1f0b99520fcffff44c1f2b41a653494cea6402faa1070ccafa98b4bc0f9d29134f55ddac610ae3e31384e5942a892989a9aa9b13984009244aa0461a4fa07173867dfb25313766944c5bf8f804f1942629cc9f4c271390e9e425859acf2545a5aa6ecaf831954e5852a5a73fdfe56b8fa98634a720d4fc539892a9a7a7d4f363a9bccfeca93d3648061f540f99e7e2336b4f89543fcc9be94905d57f22d55312337f262a68861b32c6a8aa2a4d894ab3105910fd54343a2a4ca1a3c2990ad5c39429cccc94292a50408556dd8451552310010a049d073851750d0ff0f20059fd5434ac0614bcc16f7837b81bda0dec86bea1aa6e42c037fce9b5b40318710021607c7132f5dc80e0035edc74c1c5165a78808a2ca8c0a2aaaa28371da86ccf15567403bc012d54414d3e55a8a0820a2aa8a836607d7a6ca8aa1b29fe4a55dd4401857d1a7c7c9eb0efe3e3c4a5c1c7878a8f0f95aaba69025555374c94826e55dd2c914455dd68a0b23d5b94a8aa9b244a269ef7493d0ac5cce8a400001d06e0e006896619787c045453b534f364441155490caa99992953da0c0ca65bda82da0243e9b99c4ca59e9f93a987f90343e9b9fccfe44133bbfccf2ccdd4b430d82db667747a6ab74c99f2632abdfd31954ea6d349a25028ebd363030c13a85f430f9952109652d0b55bea96c7b0a54ed34b1a6baa923a4d20bb258d35558101866613682626852a99acc0e6201894e6cbb417647b9a05c1a0a380286e78187daae774c6ce3f55d58d0576a8aa1b1d6e72682fa8cd8c74508044078542745058b38294293f3da9d1fd930a288ca95040281894aa5f03aa07880aaa07689229f900fdf4a012c0c29c315919a110d141c00874100081aa9a00eaada9a4730208b2c0a073424c3d181d13e61882880b0051020eaaaa9a29d4cd179d127caad203d160e2d12901842b6de81c20890a069130848e0192a8aa50bda900047c2a1d0380803a89ec088d4e01e0a84c3a05f0e2820b3a0510a1aad094a60e01e8d0210023a1a6161d9d4aaaeac64b55ddd05055373c5daaea86cbcd0c5575234355dd6cd14245478417543a2274a0d2110187aaaa48a81c5091107544a852e90c000795ce00e2a87406e045a533003495ce00be543a036095ce001050e9848049a513821b954e08595439981852e56012489583891e517cb6801163e239d959c5ce2a28142975eaa96267953f05a5827c7ca69534a99e5210991e144a023d22d47c3a7d52a71e5a4b534a89ae70464446f42aa4296d99a79f27e99c73ceb9d65a6badb5d618638c31c618ebeeeeeeee66666666665ebd7af5ead5ab57af5ebd3ac618638c3146082184104208dddddddddddf7befbdf7de73ce39e79c73aeb5d65a6bad35c618638c31c6babbbbbbbb99999999d75a6badb5d6e218638c31c61821841042082174777777777fefbdf7de7bcf39e79c73ceb9d65a6badb5d618638c31c618ebeeeeeeee66666666e6c511fa738d35ff6cc141070a505555f3f42ed49e1394102a1d2836950e8e25950ece23950e8e22950e4e20950ece9a4a07c78d4a07e78c4a07870b017c00827d1f138ff5316929fd0f674c3e5f258d4f890631b2aa6ee4cd951b2b15ea4b153bab54d58d04aa34938b89e74baae7a7874b55dd5089a1baa1004e55ddc070f34255551365ab04235326d3974fa1822609cdff17148f95590528a88c0955ea993f2629a9208a7afb676e8fc562bf746602a14e9f66fa48f1993e33c807eb331fcc9fbcfc7c6acb8d04a65ca1c10a8f1c8d2417315768e832ba814a9729533e35c94c20d309888b99275332f9c0406686f1f2654c617c82aca90b0c82e1e7535bc8987c6080415bbed443a6243f99610515aaaa42e37312812768e808859a40370cb85940354b3d3f3da78aeab13fa879e6e4c94e55dddcdc84aaaa861950239f999ab78c0905839416263053d3a28050f6abaa425355a11c7c5255a814aa078dec449066f6643a83424d2ff653261e526af6dcff09428536d1a4aa2ae85060ecac02dda366153babc82f5ea00303a6aaec9faacaf6986af8d307f9308168d8a1bd1de4982d604657e4982d5ca86cf922c18ce4173161a8f064d90266a26cfd6a8746832b29930f98f682aa2a64492529930f184e60558d8080e69429919deb136aca9411d0263f952692d090a3890e3d14368f5015005ec8648f1c4d4e6800ea24428d4e0f9449266b5455059bc544e12293285535654a26378c805054c6a4a922a664ea41f598e9b952a2720aaad514a2c10caacae77492d5e4e34385861b30600839c0a605958d1f7ad8d8d1450dbccc3f0901833d6c70c4246bb810628c0b28600263a4981066d63892470a50ac2044952915281551081b42088085131ac179020a0c0c12861104fc71720106bc0883061962c861110cfc1c324318d5066e30e08d4c20892a280b0cdc20c0937885266704d1c7146b745881092e415871a6833316f08207415429cac06142151208c2052f635c282cd904084e0450c31aa84bee00820e0fc4b0630e162010504451a28c1f616e00040e21a882e500486402c4ce117d68f14307a30b5452e603127402b95c808d2b8918018126b05ce0889b47424abcc0820b78f1631237a58a175cc08447e40234c1c1023f387204ce092d6411e20712f80322059fffe1024b6880074886e9072c0190c01011b081891f72b8c0c1d5c01840690c69777870e6872e69c080620b0948b1e685342701707141045c709a092c42002152ac88340038a1ca1e3a6462838605403820192c40068d073690441a61ac2fd09019c19415c2d8600d343d83350b10410e4ece7cb225860689163a9c5933e58a3964808133ce6c808e90c51bed8033a39b3011e8c408a0332af861660917b21863c6068540c00b268228801915c491480f3fcc36cc2841c6111aace171c14c183028dcc0050c4c98915205036470f9449020496e3c5964843c2c0952c38f4f78ce448123680830fe03297ec804c9f0814012f162c6074105a0e11021502a98400a062090a0e5c8414d899185084956608516a92016f42126f5c3015254827c3824933523a43ea0040154d80046065082dcc0881869bee0a0ba50c4040cb823f507caa7036fe09cc210817a8bac3f7230c3072ac4d3040a88d107273e64b8c0243760314e5594f050628a4b9438511500a00b2b9904728ac027272cb6b0048c0f9a7c2287014a68c2101fe6e886c80f8330e283132660c393287028e3c30d52b8c05446a8c1871444d08038aa437280284199b06853c40008052b38a00073841106488d9449ae64918415202f2688f92388e807500973b831c41a1d8430359205157cfc18600fd31941481f76745e30fd40a394a00323a630c913a6b050260b332611169982066e04d142e905380b08e2063391d2175940524527440851f241862f89e080cc1525098481028bc0e98952070b20811c1a9003849f15a8e18493401f403f598431401b5230f2c8cf1d81187854a161929f5e400d53b040a5e0e3492805283659c37dee683188c10e4eecf091020a363a00ef5881cf0e6aec3087132014e1f3803930f03e78c195b141480f0b982c0b6552d003229e08d141186592102304779936ca803963c5252ad4b0ca28a0017164008c4ab8f410c92436f088263ce8210d4a5a041c04517a10c211295a70e800d5c316352500f24399277a18a1a78c2a6b6a00a14791304b90b8b822484f18521211001f532ce9494172804106a1637a6258439131c6e031a3c78338c8fc40860c2420b580cc119dbcd18231a42e14a005fde48a165299cfc33d992200929b244a0b794c3108c92609406c8872860064f60801054b42b03309192a7c40638c0c12a0049979891366a4204320645a60230847a05cc9c0cda4932a24e9c103f0ca4113a1411b6770729be821078d8c8878e2da90c41e2640a30f102e0300116493273e78e169a080148cc1009af96b94f005604e227923b2a811e1923b64f03c8400c2130635c21f808c2042ac3c61c532f286268a3c109e35830a1cae1b8ad460d3c811beac34d0d82b6e25650339ecb022b4e0345981b4452d44911a6ea812c327150469a0c1820599ae404f6ca08c1947c451a708f1453ae2851f154a8bc02589e40bfa0726604694485143b160000a3970a40a84be1a8e5ca1a61a01e51dd4fcf04785c4ec640d209aa4d14098764cb1d2c2133a0832a358e3dea0401068a60e2825447a7472c974801c8134c084833978a88133a306872a423cbcc1001ba6a8608907784082670c11120f20010f5fbea861892dbe5cc243025a6083d4e304331841724822650230b2649406098e5032258d078c30c0c4070eb0c324a79116a022d234e2460e230234e1445ea830c3028968116300486c10c20223e8200c3428d0d9c30229286222c0c30b04b1400c385776ba0021860502c0c54f078b4c9d1d0219c2065802138276e0e28e11811dcaa063871e5e50440b071af9d9a17dd2a50344bcd8b043a507100b6640a5d1218f444c9044e74b0e3a7040082d6d507901103acce682037d6c593a40404d63002322e8924326373a446202292fe41047163280a1e3912a72602202565020010f98c8a1060d6431850b12f8400e0c881284951b7050c41819b88042c921025a8c3941014e7020763030a688335a385909e8315d9608012625aca1610c095ec8808e11b8a0000e8b44f2464f1825ec814319545c18809927c8c0014d6bc0179b9c2cc1c18a0e924c120115e2c021844e72d068a1e26e20648d0bece0a2b170c3070059040eb1421b379850d0734955a58e1be25c0014952b73034e1735506c074a6cf8038615309183044cd870852703a0c40391286283cd03e500126630840dab0b4cd620c0ceade10659b881c31a535ea8a10e1956163ba6f8a48628a238600b1688a0470d39c4f0c21e46f0e8d4d0803d3e79c1111282184b80f4b010200005c4b401891880a041210f3119f84289213c1cc00b311578810d0c90069648c42060032868600d1f50611e31e400254e2ed1210c1a5bc868c01473041126882a657881c416a23059484b9420726940181d3602b0c31d402880392493204a481a154c0836d921123274a0010c2a0224ccc0862040000343194c945183490698284b7c40052af0ec7c01c48b183c0a0849c0972dca0c20002be070c7971e069c7ed828237e69273891029125777ca90cf0811e37c4e153013cdc48448c38dc0f1598a28a126a682caca9000f6860903387989f0ab090838d09a088b980174c0ad0814d70ae502f702052800d3c0f9ce0450338a0a402957432f222a68a06bce0012e08e16501f2048b1ca1822b6898c40b15fcd1821ce44083094ed82304395718800622cc104406218c904303172e4b10600b0a4a4083013ee04550205344c1b3080288d0e4102b21e019e3063d4c702082c07346c4862087dcf1024f9525d688d1c81696470063a4b04cb1628b2e83bcb1c20ad6fc5042172f3c692384d849962e254a07234f6c72ea0269b889010538c1a4cbcda907893ba3e0e2470282be00cae2042e5634628104d8e08c0270a93168a411396c70858b0b867451c259e367064e82e862890778b061063a2c0c631ae9428019a0f0c28b78796104338c2921063d9480032a33ecc000892446c0a30f192a51c3c7e790120c32b0c14696113810c492e188c90233877802870c153821843a30603b20c30916c040943ca63cb1c51147988b2ed6a0b69040cd03d250830b1db600d1c1173208c3ecd882a5cc092ab1a283165b7228b103073f82e0a2c5103404c9e4006bd268010313347428c2c5d472dae1066e4209906879a1ae60c91c3a7ca1050045207149163224200b0bfa008405037441822c5a90b086151b7a4ec842d2e1c48f345218c9c2aaccd31d5d8ac0f2c91f58484208103758d680c10803b0e09105960dac5182124029918065d404254944396307cb0a30e010b960421279092b72834706598084e30190b8a0001d22a41285f8d0c8276a42320c19979ca06f9c94b2040b2da8108ae28a2468aca429c4036a5c2941044277c040864cae0c51891f1d74698114576630a1114116a1c4cb950298910034256022062b30b8a1111ea278a1b222461c3f6478d65456cc341b8e20848bca0a9539d2b82243545640288389035a555511c40d3a5080a2aaaa78b1b2702486aaaaf263c2145eb816339154555525c4c5480a1f7c7c1583a8a93a7f5011a91962931ee648e28918708861870295e844d2502791a9272483aa0a4d52552149626093490d62b0880d22905cc981c401901ce0914aaaaaf2f1092a4999f24069528fecf1881c6c3ca24655552b4899d2420b2a3c12c523524a3f413ea62a45ca977a82ea9f50f3e7c784e649644ca75310aa64f259e1967a22e00204a49c4c5278268f9494898c0a523ed553eab952509f32a5f9322b60e1b5827488c05a6b05e9a082141f130f0c086287167898c2831429f57ba02629a5799a405868904b20b242498534a7393a4d52f579d4271d78c0482a00593072800a75124589a44ae3730592aa0a3d525521471aa974083adda0528a06350b8281155525a505182451c180c443144614a1017c7b7ad4af51e48caa52c48a4a8d22687e824aaf884f05347f14d141912b5575e64b8a2c45105055a99e5250224928825349492492549da749aa89ace1414aaad4631aa3aa2a1ea49c9ecca74a3d89609188143cf020a534dfc764a269e6e934432e20a4ea0245225110b9529dc6209244853a8948a909e4429a542184a04e2954d01729a4d40492e2e34365ca94434a90c269934d36d904c743b00028691842c2c9828b9c1720c0054b141283e75a4b2167147246555528346b8942bca04ea2917d343db7f6a4fe8794ea394d17720a69a1aaaa1e5a8023495792470e10b040212c6d5ca0068014e0051ef410e4901fb07801124c6280630a2d1c998013639c3c8844051ea8238c287450224417105c40490a6c00c317141486bc70b282094daa14385a00c2c308e9ac44d27efca4206089161cae00a00e141c507c6881046760528227e0059b3e3a50071859d8408192068ac801171e4c0004ad011450aa08a01b04b8e20b1db810400f536050c0a803463c4ee208440183cc466c58c10d36d0801642001a41849501470cf1e346082998cc61e60a228ebc40430e9c2064053d5c68c0044e98a28b1fa838608f43bedc88217a637de0031f53a6543983f0902348253982b4207532512fcf4c554d00e5a54a2da5415141fd9029f5d4521ad44c337dde96ce98ac8fc95447a39fa0d2c89a4aef334a731a350b22a580de0692030bb25bde9aace400424455553950a0a972a02053e54091439503050c550e143b550e14285439507850e53ca1090823ecf054393b3054393b2c54393b2654393b36554e0a975439290c52e5a4e04695930218295451e5a4a0a6ca4901a8ca49c156392984a9725278a1ca49a105112a110470020923e4ec814295b3470855ce1e559593c3ab727240a1cac901842a27870eaa9c31995439636650e58c81a4ca19634855551f88f0418e1a36aa1c356254396aaca872d468a0ca51234495a3e64c95a3c654e5a8d1a1ca5193a5ca51e3aa1c353b558e1a0254396a70aa1c232ef9406700690c51e5a451ab9c3472a872d21053e5a491a5ca49e3553969ac50e5a491802a270d01543968e4a0ca41a3922a078d47aa1c340ca972d060419583461e550e1a725439689c51559501a28420001106e04114129ca8724828a2ca210155e59040aa7248a8409543c2952a8784ae7248504095438207558e017050555508032041a70023c450e58c30a5ca19210255ce0806a87246f0a00312a26c52e5448941951345902a270a0aaa9c285b543951a0a8aa0a04025426f00451e5f094aa1c1e2f550ecfab72781450e5f09850e5f08450e5f0e054395d2ca972ba3852e574794195d3a58e2aa78b1a554e1730aa9c2e5854395da2a872baa8a972ba9ca972baf454395d6c95d3854b95d3654a95d3a5ab9c2e0fa872ba2060002640f100040384e08100a0e87c50d928d24555d9d4aaaaa2aca0aaaa901f7d4409f111d2a3aa42795455088faa0aada9aad01d88f40185263cf010b2a3aa42755455888eaa0acd51552139aa2a14475585e0a8aa900aaa2a9482aa0abd51552137aa2ad4465585d8a8aa100aaa2ab44655854e505521135455a804551552a3aa42695455088daa0a91a0aa42675455c88caa0a9551552132aa2a34465585c4a8aa501855151a415585445055a1105455088caa0a7d515521105455e8035515f2a20b1eaa8a86c447988a849a6672f650648f135495e8b2b0470bd500f418a300555561a972f4085355537818d5a1072187d8f42149aaf47fa2040f20aaaae2830ba04f957a804c61de608490353720b1a683999a57a8f8cced01e92ed29ff145978574ef0e5e76f032e767c742c6381fe44af92ec7d63620d3e98a4804643ad91879c68c6c880875c0e36bb71c5b6b31d6ce2dd7f845669d2db7f1766b96e41c841ab12882d0159242b7eb42dbdfd7b6bf5ebe78e1b2b31386cb18212b247cb479aef97cba8ecd5876acdc2da9cacd5684aa9071bdeb4e7f42a6ae4eb7588b1015125edb6d577d0dcefaeca8343f0307e4fae9ded8c136e382ce4a22a0f903d712a12964dffbe084d7c666ab358f4aa61ed7a10dc8cbac7a7c8ff1aef7e5241f2d4e9d4ca8169242d2f55fa7bfcbeaaf652514857ccaf063af5a2d6c8b35fc094121576d36d245dd79837c6d99d01392ff3dc6e5683387d435c9f971979013f2237d2d3ec61abbfa6f929ced97ce9846769a7c44a2d493118976c264198976ac700d229148748345a809199ba3b17a6decfea28bfe290865f2a923d823a0a0511993c9c77b274c969d0aec58d9e1b21386cb4ea4d679c68ccc849890955b5dac5fb5fc2db2b784bccb42d63152e76cd36624e71deb413b3f3d2494c8cc0ef5a09dd5342099ed75fb353a2dc9d9c767d656c2d22125247f6cf0ef5bf49fbfbd9167cc0803a1246484afb219dfad3036e47b480809d9e87bb65ab7ee2b6c6d452291a8f1882509654046beadb1db2cf3ee764a721e313b227484ece6dabbbf5d6b738b1dc919161152235d8574b57b1bb4ec7d3ac99905113242728df5b67ae99c8bda3549cea3d83646848a908d297cac55c6567cedced5a41011f2275ff7d664f67af356434348672d8b9555c8baf29d6cf16a663c6346636c72202363b7a9adb4454bffda2d229148f44e29206bf389acef8e3a7d7823df5fd413d9b3ade99efddadfdc5d1cc8eaeb29b5d021a573c6ef44ce77ec0ceb756ccef749728e3b61b2ec9852a52d614e58ea038111899c91617303b92c63c7d6fa3b99c7fb2467d32dc53022917367baa59ec53c63463643d87022e943587fbac9dcddf87a13c9beb827b3cfaedf3a939c4bef33aa6f26b21b41d6e479bbc7edb16b2d46efd8dcfa36aef03ad88d17e4d64e29a04c24d74ae1a3d54d47a35b1713b9f8793abd975dea8fd64be4fc6abbbdeaac27df586d202953a6f471dff56b455a03c962b3b766bbd0dd63534be47caefedcb78b6d977b25f2616ce6e7556d83ee8f12091d5afad8795e7e6c1d0d647c0d273b7dabe1737433900c1d3257296595bdb34d06d29d2d5f303277dfcf6d12692bad97d2ebaeddca964922fb3dcfe8166cee41373b06b2bd3fda2f2e8e44beffc9d87cceb13d3e24f22be3cb2c4ffa17be7d442ea7b79b9df741d63f1d910c29846ced6b35d6161b91d32ee66c8bf1b5661132229939cf76d3d782eedc223993523d67da4e982c697e06e7c87811499b41f89e19ff5b8b4e18486729d76b637cdaff1ec4c14611d9a25f1b5bbc717aa37d13913d618bded88aed2fa411115963857f6757be91697d874867c6eadff7496de3a686c8f7b13fbee3799972a967f4a9c92f68cd9d35ec0623636cadb89c6f377d5f994d6e18a18d0be4abd7b5cade64d8f7d626399b2903df0b6c0a91f417df45dda18b8e9a2933baf37d468d6b98c1351f3684c8fbed7effb3d5ad372b8d3eb34483fdd2191aa0f3b3c9c46610c918fd592f33db7b5d3fc97964b25010f9b1d57f38d933bded1ac9f9c9d83ffd8f6b934d0b64bced2364decdd148dfb5094436db1e73f7f36bb4b5fb3e239ff929d4a88c4f100dc3652785e653a5d880c8c66cd9eb1c64b7fcfe6481746f19d6ae8c4c69c44fc6caf95cacecd4b0636567861d2b3ba9a02e22d1e9cb9ce6cffd2f6f4d3c229148245adca12c6c562023add07dadd0c1a6eeda3fa46beab732aed3d6d8aaf3435e3b39ce06df7be60ca148d41ecf98d10e367dc8169d79ab94bf55bba8e32376abbe66bcefd79b6c0febecaf369fd77e7b5b367ac8e68bfeaf5e4f695c9d87a4333e67b5fb51f67e2d3c248597d1b81aadf05dd3e878c68cbed8ac91afb2bfb996850cfb710dba43b2fafe62a38d5ad63e4e3be4ad95427790d978d77c3675c8d9f03e4337ad651b3a569bb6d7c777b7fa754f726ecf817e7ad8169b39245fe675be77d7bc2065724806e16aec686bb795d61687f49e37ceeadae96d953938e46d0b19be18a1b73a79a9407a3b658f6fb58d416e9e02799975f771748cd1e620bf21fbc24afdbd670a21e4e986accf17f469efb2abf6758fdb9071b9d7981bbff86e9b8180c4b021dde3b3689fe3e77eddef41f35a4e7fc6c4c502362890d3457eebed854c2974dadee5c1660dc9eee3b56e51a63cd9634cb23981b4f7bda714be35a37de720981fd3098b4824129d52a8f713542263630259ddc7bbe8bcf1d9ba58132312994eff43c95412897e824a8f67cc88da944032b5cc58b74b7b45d8d6a9211f5ccdffdd9efefed91b45763669c879d7b5fc9cbf66d98a15cc290586d94f2954b44143568776c63a1d3f830e6f2a28a252f0944231664302e9bebda53f1dad17b2d7a3d2fb388f7e4ca73b4a0364aacebaa09d303bd405edc47e9b33e463efce0563e5476763dc31d898216d735bf131d7abebf5fbaed89421195bd5b2834ce18d8d1f1972bebd7fadabae355f704dd218d2c16ad9bfddb7353ea3366248db16d7ea58ecf5ec793e3ea55061c8c6b8b2d5ce42677ae74ba14620a3adbfee74d877be17db64a222900c2ebfb7d667f45df4d6e3b33804b2d974b4dd05e183ecb1860243cec7a8b3e7d79bbd8eefbe908e67e5dae67bcd4deaaf81407ecff9587b73b6d7dc75ec03922384ab51db209dee8bb51732daebb736f7e8756abdb9ee425ecb1c832fc65e8c1f739233b3db7021fbde5b5b9b90edadcc366a0b69a9db5e8b5e067d5e0799169255d76873ab95bae97cdb0312c2e99c6de7a8ebb7dc1b8d5e67215d848f757bbbf745e826c9b9b1908cbabaec5aaedd37b81e0828a803b2b179fbb1ba384eb6ba919cd13c6934e22be4e3b6932d86edbe3bab24e7b74242167bc16a9f6d6c6db45548fb1cf96363874c69bf6643856cd35116dfb436b6d9969b8a0d07646bbaea73703d63f1b20934856476bac8da2d5b6fad3720a95df4a98dfcced2664db6b13ba550cf460ae9fcb677976b1fe3b36f24e7335f62229b28648b0ea963ee699bfe7250c8eb9a6bdb137adb60f3847cbf7c426691455eeb4231364e48e6f119b37032f6e71cb46942321ba9fb7b0ed95d18d9061b2664bb3959edbfb7b9bae23cf512f036aff49dc7e866842467d81c344afd5c68a3014999b3b1da3679797597c26636b25182dad7ac9baf7b6babadbda0d1a34e13a8f14f508975b14942424addf39eede884feaf99161b24e447b6cd6f6ce7be685792f3c87e6a642750e4d3a722056c32203f36f7eb0767d36b7bf9cc9f9ed84eda1c21e9f416638c73c1b61d670ad5c325daa891cf6fb9eba87becba7331f510da18f197be7e0b2b6377ff246777fa52694b189b22249dcdd9d720f3779d55b86c88906e677b2bde192f5bd6dafb000585593643488eded1317bd9b4765d4a727e2f08219b42b695e975d73e73487276609861eae7320c48ebacfbe70bd2ea5edf45c54e2f2211eaf4f0f18c199109425277949d99efa29651c8f835101246ebf17e5ccfb3d7eae878c68c6eb8007bf77d4b238bbe98f1f0037bfae6b5d75775ae7b929c194f1a591d53667f358e73c2fb91d1c835ebd3c6d431e338e1b5a59e33a52053e98c64cd6fb3dbb4cdd7ee3ad04f0fa366e4fbd7fb6cb3f4f6bcb6996e694bed294d2f2291e9967a46ce33667483e4c7e7206cb82cb3969fad14a3fe313ae1f36a1d7b137e6b3c6346f42461fcf6ec748c6fed9ecff8b50f921d9cb5d6ebec72b1da26f908d5d31c81246d8e45b675b5fdf5ce49cecf8ee6898ce36637c9e52c6cd7dbdfb2de662339a7d0fc68f426a9517e9aa4dac094e47c1e5dc76f08df4fd785e9f023993d9bf7c657794d6e2e12f9f87cc5c147dab898b16fabd61897632467db337aa03429df099365274d898a4894a63419cf98912c239dc348698dec7acecb4e7276a99feb801e2a9c74be3a3bc6bfdf5ab315d4236fb3e9188dace37dce158ddd42a634bf884422110ac83462e71933b224697fd978e1b46ea76babebdb91293572960019c9b61f840f2e77f6c64549ceb614643a8dd2341cae6c0e36fdbecb39dbf7efbd742f423aaf3b663e9d4267256ba6cbcd05adfbb71e906914d971a9d29dfd08ddebe209a7ad13cd63a1d2ad6571dad5d4adbaee2239bb16a6a49523a4b43ee6fbf032c9b961e441b2055f7bb3e56a43662bc939857ac75b46725ab7de5885375a7b473e413f8b5743d38c4c4f15f8266001e98b5dadaee16cd6b58e2467d4083299524f99b8836490b21a1dbbd1d17921243997dec7967ed4da391da47d355a58575cff2cf446725e7cc60434f209fa890ffa4f50a94a0eb23a6f3e99d7756d64beb28c61de2064fcde73b8165cfde0cfbbae8bb44d86cd5246f2d3a7b6581189ecf70099aa48841261f9b2d38b4f29201b2f7090eec6cbee82cb1d36ff5a32c5af251a4a581e440199a6dc201963cf9b3266ddac702e9273ea64a233051b245dd77ea5aeeb5acdce78ff8b3f3241f4ad4bfd5c0654439b2dbeaff6d8aa8df11631acddc8114e769fe93b92339b214cc3767ff9db83efb335cb004642e6b5b95ead5568e99ad69a22c32f92216b67ceed5dd0bd9d24676b9a5201b96875d87332acef31376b4d2b7a918c9fbbf13aeaaf2d78df8a34c8e5d1b9d76ab9cdda3e403f3d23fba7494241e791ac76bc8eda9fac55a7df2d812ed2df9b55a6ccfac1cbe019938fcf24a1fc71911352c6bcad9ff5ba67d1f4633a01714f9941466b6784de605b4fe773246720d3c9f29241cefaeab74b59c3c74c17c94d29c6bd45cea697c6485ffbb696e351ed49cd14aa99b548185dc70759847def5c8fe40cab649190fe7cad5546fbd6cacc452462ee9402b2018b0cf2b9e5d82337f4175d8b0e36d826ec5eb13a48ad65776775900fd04f8ffb092ab13357e4bdeb6b7c56bf4157d91289a043d1e778c68cc45891943ebc94d7a575b6481fc999f94187a28d67cc685591fcda73a4ff28fcf6f7929ce19f4c564eb306da8d1fcf989153918ed2d6f5adebfa26751c8374cdf836c7ce5f8d6e35f778c68c2c4001c978d5f5de63eb0e36cbee358d22171824639721b4b131b7d3757b41bef7cb6b8d8caef76ec4f83dae6f866d9980746cae8eec2dbfcc1e4e92f3a89e66b35a4a836a572420977337b276d0c50b298524675732f9581189be64f2a9229148f478c68c729822a3a3b327ad14fe6c2d5692f3a8f9a57e2e7b51b665b6ff3bc2e75eab90e4bcf8ada9d41c3315f863328d7cec69340a804b7be99b6cbb3567f7da48cea9138ce149e635d2b62e7d4fffb948721e3974b2b976d77467db4d27646f125e1bafb34c9b655ce122399f319dc88cb819b338fff19cf6cd56bf929c4f29545bf6b5f565cc1ec3f6d1c4b2b5b5af5e76f3fd6391919c6d69723b0e4bcef6d52cb6d77ecf9449ce245410d0e864ba8fca8e959d30ee78c68cb8b840ddc6e9b6d95b5764d4919c177faae764830da9a09fe578c68c7c10c9f7d5e07ddb0e4ec6b0ee84c9b203ebd72012d5372312bde625023dab77e4f52fc606dd49cece660bf7c6c91e75b6eb51071fc979274c969dffa10715b41386cbcea8d43302329deceb530aa80608ace88e3dc6f8d85b8b19748f453f667c7c44d29fdbc2db5ebb6f9db324677e282a31f573d99f4c75061664bbf7bde5ffeacf36695c41c215dbbdd63a84d0dde848cea99fcb76c264d9211344ff8a4894fab922d19f4c1535775607ed84d9c1f26567270c979d51379e31a32c2a8c5041a7d1c88407a0993f0a70008f4c3e644c3e253440ca0e0352b03f7aae5960001bad053c408a0a0a5001851612f00004b070c232618512b8bd041c008de94c0a05129e6b2906681ef597993e7444a6d443424d929402f4298511460d2040ff98eae8f4664cf54fa3119779ae81eaa35c27cd689442ce03444095308036994e268450a64eeae36362410076fec9041050f880474fa6040f50080800ab10a5190080133a80c23f28e08c4ea6d444c00d03423c82371594001b1e3d6934aaa89e9f510acd23a04a41045216d9c2e67f660947ca222df8a0c2c38a35546e30e123022d40808515547880031ab093821405a09000049c6042090720c10023104027478401046c04347f9cd340a805070f19e183f455fa626c8bf55a237dc659efb3575ff79af60ef99546ebbc5fbdffcc720ac70ec9fe70fd7d8efd9ccf661df2216cadc6660f1b9bcbd1215b6c1b195cb3ceb6dc6c0e1967b3b9da5c8ddb476e39e4b20ffa73abe98d5d6bdbd27148fb207d1e1763eee5cddac1219dce66f5ef628eeda3ce3915c8c6cf5de69e675df13e9802d93ebaf7e86c1b9f327ee7dc1bb25dedd6d863745d567b3a2603c70dd9da7c2dbee6befe2f5f6d48f645df6270be57597ddf050e1bd2adad33325bfbab7bab3a14c8be97bdbd8debce35b9ad21dd678b915a6e91ebbcd3b913c8e69e9935d86cebfa80d8c9e425cda9081c13c8bbee852f7ad39e5ebd1bd700b959c129817cccdad65ead15ae479d4d734a956453433a4ad95bd723e546a3a53869c8ebdeba8bae7eefc2f68d79c48dcd3034e47beb413aa1531ae785b44b0f1015c7661c9b6167e09040f2c31b29bb775a6f3e2dce19d2395ccfbcb277215f6799e09821577c8c99bbdc6e6b8b3111386548b8668d95dec9d5be792d18a020fb57ec0305d9b7386448f77ec5386d74b0ed7b8e3306fb481fb2575bf95e27399329f5a4b18b5d03cd1f86c211435af67cdefadeaab5e17c91080c9c30e49b953df7945d582feb2b12a19e17382390add67b9f838b615dab7614382290905d1bddf2ba22ebb99e9734299168c469528d054e08dcebe5dc7b8dbdf716b3d7715136d94e66ee033860c8f9911f7bd67aadcebe2e9c2fe4b35dddbc8dd13b2f74fb2211ffb411e08040d67f6e0f79f28a743a1a3f205f8571d9fec76e9daf5d2fa45fdab8eb75677bba8b5d48ff7f87ed9ca333dafb70b890b1deb6edec5cd1dd6e6e0bd911be776d3adb72af510bb9e67d66bfae73ed46d6b68c81e301b920fbd3d8e06cde62731c70b278cd1c9b411721f3089d3be8f7c1ee785bbc74da1971b090f55a5819ba79e772be1c4e07e46c9572ec76595bcbc28b734573ab796c2c2e5e90d9c586ebde5baddf0adf46b717c70ac9dc8bcdacd176d545ea168fd6c0a942beebea31c2d6a863d45e91c8c60d1c2ae4e555fd59d6dedf6669243903fd9c4823e652cf24393be31933b2000e07245f7759a57dddefb7baa00970a690cf6efd6a2bbea5ae2ddc09c365070d9c0dc815f9c66ae17cd6fee2c291222ee7f0318b6fc1e7b0577baeb2061f3ee4d7044e1492ad7dcfd365e040212f74d15b838e99ce081de709f9f6fe64b666f3c6cc3921a37deb51d8e8743fdb5a4dc85e3cdf35e6979faffa4c48379f8d17b21aff3e769f16384bc8f79847af971d65e6188e0624d7ae93daf51edf9b3d8e12b2c5095d5cb3b91527732d095eee3d66f65e7316e38bdcdc7c4eebe03fb8629d0f719090cc229dcf0d9963cdb55ff0089c0cc8daaebd375f7596d677f408497badd6ae6977fcd7a61a592ba36cd1ea6c2985d6e11821d7d7d778b9764e2d74d44a15384548cb16379bb43e17fff21389e28819173844c865ef5a91fa65fb8e7ded84e1b2d3c2c019425ab878f9b517d2169f7324672c35385fb9c981ec3b2f5dad5158dd5f245a7dc5cd27f26b65bbde9cd5464fa463f6427899dee5d1632ce30607926bbceb639bb1cdafd3919cdd290574d389f49e4ed9efe5b52664113562c67d03b91a3f165b74eb23b3586f389196de777e19a34f241289dacc2872e06613591d8d903667fb5ad8dcbaa589eca68c9d3e7cb6df61cb44becbf6b69d71c6fada2926f2ab9bef41cab0bec56223717389fc09abbf45e153b760db40b60519fa73f4afc37e785303b938f6ed472dab6d29642467c6cf12d9903dd65ae3c6ec851632568974bf1e64b6d4597bef3546899ccc3e75e8afa75b76349076f9abedcecdf5abd0312e6e66202d57bfaf3563adfb45efe2460692d9fb9ef96d4f2d6d94c511c39e44ae489783dcea7cfeceb52432ba63b6bb39dbf89feb18c8681f7bebb8ff7d3ecb3791c8b66cb5adeb64efd0dd4022216d14c6b7ecfb4521756dcbcd23f256c6f14dc81a6bbaae7544b6bbd3a34ffb16f5f8d64d23f22fbdcfb9b6f0f564d73122a9856bd687dcabb246e1fab26365675560c70b971df701fae979bc887cd6743977ee329b7159c6602021fb5bcd315febbbddca9822f21bdff9d4f9d60bdfb589c8bb626cb4b2badcb2479f314424d7878d46f771aef89c317688fc4adba20ea95fc76aad22111b716486c8ebd82ffa62a52dfabc972df6819b17c8d596fadb660befb2cd5dd030b666c8aed95b9179f1e2e55a8bcfcd5b750ed2663edc1422bd593b3b195cf1d96f5c6f108998cd143784c8fae09bd4f96a8696febc1944b2a3be98afe9d1c245ab193782483a97bf86cb5ae7a2d717c7b86981f41badc3659f6dcc5a6e23b8094436cabc2dc6a8737739dc0022abb591f257e72e3f8dbf78c40dc60d0b24c7456bfccbecfac5b6a2076e56202b73f51fbafbe766e5268dfe871ed44ccd2b22d113e3e60ff934be68bd52d8ecab76b11ff272637eadc11be35b6d8a44aefb90b34276af276d7e1d83970ff9f0bdf78296fa5f56e31eb2af63765abe2db6e994cddce821a183afdd465b7dae467721cf9811ea260ff991badadafac81e5d5ff190f5cd09ad4fdb66a5feaebe19e618c7cd1ab91e6cfa37f675ee2da46044a23b64bc973db3b0cdfa7355bae213377648cb5e6d8c8ee9e5eaec4edcd421d91d83cf1aad93f2ac4f24ea0847dc4bdcd0215775acb2b8b8bdfa62bd90899b39a4fd586143ff2f6ee490f1b2db228d5cedc7d93771c85a6774f70917377374c1215d84b6fe858e9fbdaf3215c8f7d07afbfb1865dfb0a640cee9d657f3840fdd63ed0df9d61dacd3d1cbb4e37a37e475decfd7848dbac82a6b43b60a5fe3c7efcd8f94211b92d537afb5b7fe5cebb54681bc16baaf963ac7a6b5f4ad21db636cb56df5c6d7d6f509e47afebfb8d6fbdeba852690d3e3fb072d3373f54e2e81f4c8bc5b8dbebc39eda7866c91b5fdd97339afb56c1ad2e9f2b60cd9d1b70d1f1a7251ee465b3b6bfde6a52490b0b63b5b75ffb1b57be719d25ec7ccf65be8d863becc90713175963b4e66a12b43de67ee9fb7699f6d1046386ec8900cfea5d1a15d2dbe6a21f388db8b9b31645b165f2fb7ecb3aebb41712386e4e6d6a5ceeb5a8fd62dd38d4ddc842121e37fd1f2f40a2733a54a528b9b1148bba2a595fdabd139489b08a49b8f529fd1293b5ad70a81ece9167a6dfeeed87d074332c77696f55ab63a777f216d9bef33ced9de8ccf3e10c8ba6c65cc8fb2736d8b7e40b6c8e66d2fde37a36b6ebd906fd6cbb799fb63f7c1d9858c6eb6376c8f6973f72017f2c6e7f7c5ce2eb576b92de4ad6bbdf9eedfa075d8b490f0b6bf4c9bb6ab143ae701f96d5dd6f8d139d7a56fb39017b278ffd9c6209cec2d2c64bb705a1b27bbef8d3b7640faebd7d89d8dcd1557df2b24df55efadf6ad68e9bcce0ad98cab5387b63d776b7d55c88f97bd47295b2a24dff8eddf6e9b9356c638201d6bbd9ad9b76cadbf3685bcb5aed69599b5cb45d71b905c9fd9bf6bc2f6b5c62a857c70f58aabcd086b7b6c45211985b1d516e964c7b83228a4ed1b61fb8f95d97c979f90f3aecab7ddebecdacc9d90be6065ea9a3dfae08add848cee5a5c14b2792753169990d7755ccea6b37aeb6a5f42b6bfad69b5ad39fad8631a90cc9b6dcad1b9b51ee9544232f8e6a2fcededbfc638090967749ecf18ebbe4f2f12f2c63917bbecebb9afdc32207df67b77ed7d16ceafef08d9e6e4877c696d6ecf5935f24d6e91fd39369985b5a1e0c608e9dcd1a75dff6c55e6d3675a193133d38cc54d11f2515ecf177dfef5ed7d22e4b72f9ff545f771ddd560e96608e9dcadedcd9f576ee634077252eb335e5e1eddb7e59fc486973db3bd5e27bfc53c916e1bb5de9e1dbbd7ad2612a51e859a211c5ca6904e78b92b84b5e38e172eee0111ea04325bcdb8c505575c1c19b2fa8d575b07ad9d5e5d241289da8c48d4ef06d29fe5c5ee8ccf95616b2467122a0828d2f03891fea643e6da7cb43efb7e13c90faea6f1d908e1f455439ac8eefbf0cd371d6393690b6522d9ae17fbb566f619396222ff1d2ff79cfe43bff0852e914f99b9d9ea6cf27c71e110b2815c8c7673ae5d1b6d84b306923e5ff452f76b8974e88bb9d8f1dd4a248c3c99b5fa2ae4679da5445e7b5b7bb61ce137ba280d647ccecccc2b7d97391a6720ef73ecd96ab9d2868db90ca483ce6c7b97321b9df19ba4b97bfeda756bcfbbb9617fa4949fe7fbe931d23a434812c9da5acd5ebed4be3b1f3595463190eeec75eda63cdbf37a2391dccb3518e36a5eacb68744ce75bb7174915617e77d4432f6d44ebb2cdb67cfd611c91ad3e7eb46bfcfb28fa146a4438f6e46dacdd9e962432c214624e317fbfebfdb0eaefb22914804470cf47e2a1ac881d022b2b2d69aae59e7756aebc340dee5ee11d66e8fefce185244fa77adce45dbd1b19b2f9488a4cefabc713da7b3a96522d1332312318ff899e9184244f25c6ef162feb76cbe3f445eca4ee3b25edb2fb5b1ca8e951d2a3b5eb8b4a09021d245183bfafb151fb4f6bd40bafadc5d8bad9b527aaff31f2117c8d9e2b717a9f5d816846d5488ac2daee76cad472d2f4ac5884422d16831132142a48b94fdd77b2b8536348874b5f5848c3aedffc98cc418d29020f232fbc96e3efdc7ae73f5adc9ca5b134f5c3c81500b249b8c6d7c6edfe5aeefdb96502032ba735e69bdac7af4fb80c849d9d7754fa365816cce103a3be36adefc7b0512da76e9a4bebcfaa0e289ca63f7878b6b75335efc5e3773ee58fb7b1f7e83dd2af4ae21e48784eeb5529f707e7bcfb70fee09f1c1a252680f69ddfe7c1bdd7315c2b548ced6c77447694e29f865c7cace965210094ced794d84f490d5d9bccd8b591aeb7d3290cbe4928774abde6f96568e75b975f190ee2fc7e60eda6e66b6ad9176ba7e6cd9da60637472e80ed7b0bd16bb9b83eecc166cbc9e83bcd673735663733b647defbd9db9d9fc552c5f7660c310aa4342d61c5df4b2faaffe7b3ae4a23dbbfdbcb72dea960dc36547b432109a43f2c3f75edd6aac313624f94e982c3b57442291e8413964abafbe66e1ecd75efb1f7a50a77f6b2a710cc521dd64b6c5c9ce1bdbd81a1cb25dbb775784b355ebdf2467d63e84542099657d276bd76debfcc55220ad6db7eba4df7cc5f6de1bf256f6da5d2b2ee8868ccc46eb9cba7faf0d39fb5ada1d5983bc5ad39e3291b121dfb357235ded5b63cddc3f845020ffcec9d179a4af57bb8e5a43d6bb18b239793ada6bda1348569d83f5bac7ebeffe3281bcbe165bb5ddf667ac17c999d3844a209fd64969b76a2d65ec569233bb40480d0923744bd9393ba7d33a92f36268426948cbfa6fac8b3df85a6b8ce4cc6d0aa121a165b339cec8aec6f84e22817cf82c742d46682b9daf929c5da34267485a9db3733ed75b269319f27e2f5e3fe9aaf7f94292332c43be5df13d5c3f5d74349221637c5e0d1ffb74ecd62333865cb5694368a1658cf637d4eb2124867ce776de3be95adc18eb3fa14c24e730a46b4ea98df1ff31da33356d974c3da9d9b8f1293402e92c33bf66dbfd606c4d72fe319dae162d221164c64e8390086aede61a56b615c2ea24e727d56945241a5921a1a6162b5dd29c4c3fffe36f8c5008e4776d585fdbdb5a6ceb2130e68d74b16db71677bd24671848e80bc6d6f3c8d873e71c3386919fdf5aad4f4be15bec47080412c2779fc3f8e6d7f7d73e192d24d4d442424d926c68843e209b23ac3def74beea5b4672c66f4d3c0d86bc9090f273ebbd6bbdde559d29e5984aa80bb99e31b668afe75b2f37c9d97d425cc8492debc720474ad74348f2c79405ed88448bf117a12d166ce65a83ad9b376e7ede1c8dcfddbae6bdad99919c9f6b2d22d14e182eec5a48dbcf3687f3b1572f7c8ce4ec5a445676acec68d9b1b203a6f465eaac221205ce9d5be639618dcf0bd95fdf5d6b5eecdd055f1792b9dae8c7e65ce37efeb89070ce6add8c90b98dadbd2d64dfc5f4676cfddfac3d2d64f47e46e3832dce8eec794072630f32eb5e570b69bf2c248b6f42672116b27e63f599adfc96aeee80740b7efddbcbd16ef40a495b7473dec9ec8deed80a39db31f7b42e76f87abd2a24d3c9daf209db3147a990ab5ffdb61febb23e39205f657e8dfaaa6e2e3885bcd7dd7a1d7cf3697d7703322e4bfb565a215b5e2f858490da5a3b32bcbc6c14d22d3b59b594afb317a190acbac7755eb70c277c423a5c94b1d8d49bc3659d9034ae66913606dbf99b9015aecb94b553f65a2b13d2bdf7d04deb77c26ae912b2b27fcbcec65cfb7f0dc8cb91f14fef66cfee2921dde5d656fbf9cfff5c12b251fb9a3fec4bdf1f09c97aaeb6d6ec65e9736740d2baacc3fee7fa6f3d423acaf83564f8da3155235fadf7c2fad74d5a1f3b23a4adf49fb51a79c53a8b90cc77c287ff666c2b1221ed47589dc77aed5d0f0043c8d8bf2e85fdfc6c743707b2adc9d8d51bdb198d9f48fab8bde5a6fb661f7a22db7c9475ec7b977b8703d94fff767df43b91cfba52be6df60d6463d7e8b22ef6fbd52a2792dd79f73b4a1b645c379116d21a9f35e7dc7da49a48782b37a57edfac8ed14c64b511b6635adbd9fb89899cf39b2ff77ded743e2f9176b28bac17ab8b39461bb06ff1d115abc71a48ba6e5dfeec2f5eaf424ba45b94d95c0d328b7ebd12f914fa3facb0726b764a247dc8ec62d3d917bd8e06b2db5d7ce75a6deba69b818cfd3e59eb674d0672b95bcdcfb0bd2fcada2492fb277b4e218d907e3749e4bb91b6fb775d8b8174733663f15d868fc56e91c8c51cdad6d046f6133e24f2ba85ed1d6fb48cad7f4442bf97be47b68bbeb78e48e7737acf8eacb99fb611791933fbb87e652e3acb88fcc5b72b5dcf23b4ab2e225d9c93de1be3a25f27858164668b5636ebe3579b2a226f631dd774adc6ca982622d9640fdbad451191ef685dedcd1999a79d87c8d8707274773b5a56a721d256cae8eacb7cba65f305f2a74346dbb4f12da7d00592ebeae8d17a845c272c44429fd4bd3986b7f27a8448d76e3debbe9e5b7c8e0d22f9719c75715cec9b734c10f95c5d3fdbe262ae56c65a201bf3efea5e6d7c59642c10c933cecb9af5f2b9663340a44746678cef6b84f499b140da399d9befc2beff20b31548365b8bedcdfbdc7477b13fe4edc80fdeb822fbfcc5fc90712ee7cc5cfb9096fa6a6feba5d3b13f1f324618dbd2e5d199a3dd432e379b85ff4dfdfbea211f2f7ef674717c6df39095ce77ade95a6e5a5af1900e2e766e296cdeda5d23b941af1f2bac7effef900dd7ebf55e5dde9ad921ff3a8d2b4ea675486bd92d67eb930ef998bb7523edd9fcdd3887bcfd6cfbb94539a4338bb6b2381b9b5f611cb21d9bfedde07cab358743fa6b97d972b4616cefa940d60519d7175b651da94b81f40869b58cf95f7b5d7b435e661f5367cc5a776b6ec8052f9b75ce47bb0d492153d6d6fd6b6e2d6b36a4d7c77d1ffbb7f14dd62890152e7bbfc1da6674b67b0d096becebdc3336a6b4fb04d2bd7ff3397b6d02d9d7c6c5e87a5ff4599740ae0bdfcd69e363cdb9d590feb359bdd1597b21e54e43dac5b45b6df0df7373351ad23dc2f5d6f2db34aed5249077b1dab76764f5bef867c84a57a3b05e169ff3b766c868696cd1b967d14eb7654838d975b5aefa6e5bcc9221239c75b9afb4d9ea6e1d43be4b698bb6a36d7dbd8a21bfe75df031abee4648c390b1dd360a1b56d8f1e70824fd5a3b52be2dfa8b510472de5be7cf49dd3daf180219177de61c73eefb168221ab6b6fd97deefeb706bf909519def91cce7e7a1d04b2bada10fa830bb67bfe0149dddfc547d96347e75ec405fb5d756c3dee427ab5ebbde6dfd865e8980b199bddebff2c755c6fe32d648393d97eb59716d2b1e9b37ddefb75b2c61e90b6dda6fce06b8bbec7380bd9959f656e3dff5eab190bc96ec1f5e2631f7fbec51d90cccf16747c5d8dcfff0a39b99b7b9317fbfbd85b2117737ca94367fda8ad55c8db8bbd5b917d85ee552a64afcabe57ec07ed37ca01491f9dac1f52e83ce19c422edbefeaba90ceb93a6e40deeb6ea533ae288584fdb0427769377c7f5148f7d57acfd95ca51ea190f16ff43927bcf11f734fc8bfd7ba6ee89c8dce3227243bbdcbdd5a57fd689b900cd7a390b1beac276442be3ba797c2f91fd97b09f9ded6376c66eacf58039252675bbfa36f7d9d6b75a084fc782b3768e79b1d2421fbf6fdc7bc359c6d61778084bc70f964f1c5afaebae548cecf3bc880bcec2ad31bdb5376ca604b0501757084643442ba68adebbfbe918f77690bea1464a50335f2d2ff7fddb52e58e90d8a1d18f1bcd56f8b32b8deff4f1d14c17a357317dd8bd01bb7765fbf16756ed9f95f5b07447430846c8dbafaaaaf4bf93de39d3059feaf48644b9f42fd1991084a0ea465b65ed92b3be75e4733df76c264d9f1993d3fa6521a1f93977f2cb03f91ab5117ddf43bd7bc75b127f2c677d339bb56ffaf7e3890ebd963b1e38b7efd2977c21c8b8d41c73136d6ae21734fafad95b6ed8f8dc17a03491df5daaf3257a9b3b7a070229f6b535abff2b3774edf44da785b9b3c576d76d9a7503491d142f7932d6857f409b91b4a26b2cdd99c6deb5c64d8dc30918fd646db64b345ebb6b14be4c3d96d4d7637dd3f08c50611b6e6c8227ceef1b9d7ba9923a3eeedde7f5b0d0c283590f0bdfb6e8d7d6f7daf39144b64832cb6e63a67abb1457787528984d04158d964dc5dd7ab5028918ba75b9063ed3757b5100a0de47cc7beedb374397fcea1cc403e07f9e76cfa9831760f6180220349d7b4cd9c85cf3566cb27918f2ddaa2ad4c191449daabce2b83cd20e3113f3fa0c4403218eb6b0f617bd15e5e55a04422db8b0d2de477e78a0e211448e4bfeec99cb1ab9076838c3d2257fbcb608b0d2ec7aebd08c5110967d357dd6c933265af36229ff562db6c1933227b7a7d95ad5adbbbee6f11f9bcb669ed9cf72b6c74c240bed868b58ee7f4f690ad2ba02822d7a3efd67bad39e36e522452024a22b2c5761dad77bac7ccaa7d0d051119fbd55ae7aa94c28ecc0e91f7794d4a699b74d9cbd11069b9b675ef7adae62c7b2f90d341b79ee56eae7045e7027963bbb69c99eb59ed6a85c85ff4e98391add7d9b4adc6041442e44f372ffbb6ee16f37d129441e475e72664b7d736cb8ced84c90279c68c4e500469911d3a6bad1d63e82bf263f0d1fb5ea32dd6b9d616505a201b9d75568f3e2383d106221febb9e2bff6262092eb7b46bd5d5821eb1959d08bb1f75e6b10b6e5202fd8b032669b8b364259816414be673b46c76f417bff907f61f77decfa852dceeb879c3e9f85ac3a7ba7a3f1f62179f165c8fc391fd2c5cabe324a6bb7bad8dd43cef5cee07594e363ccbd1ed2b15bacef57c8b0dbcd43c2fa91d68f94f97bfe78c8cad35d3f5d3fe1b3b646faaaed41f81ee3efdb77c8be91b17364e88df2b276c809dff46fe696daaeaf0eb95eabd451566ff7b2acd2219d8d8f56e8ced85c11d239e46d8eae5addc565fbfd9443bed8ec4f7d5587f7bdc721237dead8e207e7df7be1900bd65af9ce37efad6c5520a1ed9fecaa6d5f94a6405a7863b38ca7d34839be21e1bbd3312fdb6f3dbae7869c8cbad6ae1b56a7cfb6211bc3e7acd2faec74381d1bd299d77bb3b431579d6d2890cdba692bb70557b5ceae2139b6bbb1295bebdfe30924a36eb97767d7aeb4ba09e4622ddedadad5c6fabe12c8c60edd8c70354bef33a686fc16a7f7bbae1ff56e9d867c74c5d6ee37e6757fa22157ab2fd649ed7bab9f3109e4f3e71e72bb0fe983bc781806a09cb1208373aecaf15e33a47b1a699d1ce79deecd5b8684f6f92f7fdff7ecf32743c6ffdadecc6a6cb7d88f21ababf745f7ce5beb5f2f865c94dd647abb61b48bda30e4fb177bf5758bdf3166472069b7c75cc34ad9dfb2550412b667f7ad9eee165f5a43206bb58f9f2e38fbfb69054352fa96593b6b8cdf93eb17d2b9d99e6b7472b3ae3e0a02195fb30fe9fdf7ab35a31f9077c1da5cadce1cb3ddd40be9f72d8fef5948d9ae45bb90acb545b919feedae7572215db5ecffc147d7b3d7c12da4ad2d467795597db70b6a211d2fe8cdfeba07e4531a19be0bebad6f5dcf4256776ff5cb1c7bd616752c645d8e2d579f7dcc3a485d07a437ebfc2ec3d6de65d35d2127bbfb58858c759dcf392b248c6bc1a6b5527ad96c57856c6d19bae9eea990ffeefe31b4d1c5c58f03d2b9876d6d57e8fc57b72924736f4168db69ab916e40ced9fab947597dbea014f27683f7ce6f2cbaca8e4521df47bf0cefe445db2d1492a185cc2e74ace9e3f984b4ec97a37ee16c7759e884ec5ad76366eb1a73e7dd84b4cc42fbae5186d3dd3321637d96bec6faf563952e284b486f2ef2630be7ac91db85a201e96237e7fdefe6f5f7108a1292d568b952477db9b78ea12421ed64af75ce77d74501050949bfd76597d5e5aadb08452291088e18f5406952ce41c9807c35babfc7d4bbf9be1ea039623c634622284748bbdc7caef9f19a934de7739d0c50d4487bbf321b593beaaa5b91e44cc6e4c3a018217bb9f7f9f52d77ff6b24395b3771e102a5088731c2e7dd5aaf0517ec5ef3ef74eae633467db9932163e20264e21189c8987cd829050485080957bd3146179ddb6a7da10c21d9fe8bced0c557dffc98031997ab8fe7ba90a3ab2c7e222d37f3cb18bdd0b1f53c71ed3974af31c7188cecac396577f3b176b13a66170ee474af51e68eecc50b9b76225b3bb8a07db4a36defba1bc8d5b4c2c5de70b2f68e1359d7abb4f162b5d959176316389bc8d87cb6a5abd74b81a389bcb43d667aff358c777626b255c8ee5a7fb5732eae241c4ca4fb5e8dbb2d8494bbb511ce25f261f48eb1bb36635d2d29b60da4d3552965f82664b15626394354f3eb1a745b8c3db7fc39e8dd6eb5afaed4d2b79032660e75329d4e52149d25d23e77e7a2a530d6ea7a5622a9edb5dcf4677a9db74789b42d56562fa4713575978944ad011c1a487fcb962375d6ae9bf43d6a92bc88443ee2343833908bdd5bdbb9c52e64b63e19c8d61c75134e5e6cf55b168926918b299b6dfef3d96adb187124916e1b9cd6d10ad76d1f6320ebadee26df3b9b37f85824725e3abfe9fd7eec35562191ecb2e911fe7593369e0fe71169dfcddb16d37f6f0c9d23929d7fbae7cefd643eab4854513d3f225145f5fcb4c71a91d65e6bdd820d2b33c8d69e6650169fc988fcf777abb148197d9f93e47c328d524fa6315c44d65f9739643f179b917b4a3da3d1e342a50a0d5cb2bcd1631848ff7899b3df356d74edf18c19f980a3886cb5f9b3ef5de67c75bf8093885ceeb67d5d97b10997bd88c8c5ac9bf0bddecab7d67888b4ac5f9d96b585dc973243e4bfcada9b75b58d31421b5f202f6df3ad3961e47a97339108059f0ba4cfe7fcaea713be8e0b7200a710d9f69f7bef3dfa33a613357dac442a700891eebdd8dc3f7d5ded5d8f4a33bd884422d188211b44327ce7d7d639eff5eb82c8ff3a636c9669a58f326f81bc1d2d8434b67f0ad7728148baa09d0cbfbdd5fed580c8d90f3abd5d69e5e65e5920effac6eedde4fbec1b5d8163c79adf72e8edd83564ac7f3ac708197bd7d5b23f24a4dfecb3f6b3e97e4d1c3f24f47f8b323779c566f6e2f421d9f93e5bdd7dedf5eac7e143fe9df0fafb455b65f321ce1e92fdb9d6b646d698a371c6114f81a387a43fe95cceb8fd6a5b2bc9f95100270fc91a9babf262dcccd60c9461a8e48d6b3579288ea2188a610084415a9f150090001314003030201e8e4683f180a82adb071400043f6c6892382c2a1308838140200c05611003411003000c40310cc42018848710a503849ba820a8843e9142f02d1d1faecef7a293fd96a224c17842f889144598132a873a232ff207f1282968704c281f2a8c54c9afc34fa368c26c5041d4915cc40bc42ba4663036e8227a1012858a5ff75e2bceed089f4e4378f0ba681e4a8fe4e3cbe1dd617dad261bc82090e7cc33e9857cfd72c95dc3be794fcb1cb5414aeb0431797e2d09fd6bedf3287a10df5aae74d7dfc39fa3d03186d81c23900603cf25ebc2797d7a395f552e724b974a530f941f5547b152544a81523209caddea0255cc7ddd350da288729ec57a87f98b5c472a428bfa59e822bab4074cc72eaa1bbd40745b5c70fa7c9738581db46e9d17936666faac774a682f5d4f9150d3caba65c9442473fe733b9a55929e5459a6385f9d7e9d354fa627f1a9e54c77fe3dfd390b9d0c4f8aa7e693e9b0f86bfe060a2927a542d4d5a0a315132918758da824b817440fe523cbf1eef0f7a873c868824e5fa843384e61134bf6dde5d7aa8311ca145eca30e59fa50d74c0cf835cf8aa99b8bd4894ae07bdaf0ae6aa401e2c101e92e64bbf7950285884b5d3c573e6858495b4e4771055e521a43ff378964bc8237a807ac77e13f09c5f3e3d5fd7bef7f3ce56781aec55a4b8c38f0907aa9f1a6fc6bed883dbd97399c9614086c930ae4eab39a242d980a5b7fc3b841a331639fc7eee31fb37722984ca2865c4ce80d4c2d4870f908bc8086eb78d77f042aad20f093ddcb6716a6f77060c18a5448a60b7bafaf72ac767e6c9ea556978840d3a64534a457f5e56bf37bb412203fbce7a68b612f3089340465a66f810878aede8649dc6d3e4f96eee56fe38c066e24069e0e61b285dc272238d9d1c6096c8fc7ce0a3612efb7eade431a53b35ef29687ec958cc111d4825840f12cad63b399d1461e5fd42e96f68c2c5e11edab4c52602d0433832807108df25df10c56196efdf9c1914a37952940e6ddcb46d7c01cfb331b160c7789886bc65580dff94734c087341d83675b944f973e33d0eff2e35258ebc838d437c231d79c5e4e9aab65a82eedb4a94d34c3abd768e3477a70f5ce1714499b64ac6e9eed1104b5e7a841860935d88b37c9cf05611419f09b65b3808ec03590443a639f954215fdcf4e175df9989b2ac7da94f8f227498204a2bef731894003444dd42d8e7454af314ee0eb6d0ce885d2df7db68ad241fb5e0c67a13da0704690cfa6b316906dd5562bae2e52285f5c8fe4db7542707ba7f362ac146b563118d5774a3179bf1288a1a02ccf7949de7d98190fcb73aab8d10dd41e81b7d1bb350063da2cece285dd78b261c7d42c3293bad48423312e1be99f13c0c5666115e9586006b624c4d0e0335f73b2abbac3909f6d43227de9ccae6e436a7d39c58e624cdc93127c59c8a39c1cce96c4e4873829d53684e2c73a2e6849813cd9cd6e6343727ba3951734acc89674ed3e4f4180133e2329befe50a7c692539ee10b2e0df828c8072196d9b6c4425c523c8084d224b3c107e8932c140d0083d2295f8121e8862824d4841f42efa6a46d78457a24ab350444a8d308720fe0f6553d4b89d76658a20a681242b9e1e9e8f2a8345218529ad9c3f2dc7093463932a2332242d2094fbf591fa3ef738aabd0ac56237a9289dea955633732d7982633964f39ee1fba044a0b1770f801582574754b7b152277ae2bb8e012d2993c2c6abac59c96b711511b6cc584d1c646019c0ef911eb6dd6953ac87f12a93fe993665bb803962ca1f65976d4ee07775f74709d2404991fc844d17db065e96eec53d7625b8fe92d3c08f62f2d81f52436b92b6d036ae4926ef48da1cf23238ea73dddc4ecc3e40493c3b51370ec19f1655aaa543f6e7339267768824027e44b739d924ae502e4852e4d805bca39073e62c0666a8b2cc957090a285ab80deee03c829758984f979cd0dc8d5b045ea5efb28fc58d57c5ca290468b5dad84fe81e4179785b73da256b979f0049c1e82e1b4ed1687c656e3dcb22b38a5f9fe55d32b703f19228ad23c11f48862e2c50410c64823a6a62d5edac79bad3848d45d3569e259aea26e8c46e31304fd9d1c9251354ebd2a711c5cb39fb95edf6c1e76b45c1d19185202eec6f5f671250988deb88d8204d57139447148d1b9a13ee2d0b8ef4637e2507661c5bfd326d1663d1c16605225bf1e97c57dc10015b03e9a44b71e01d45ac3ae6cde62df8f532e6a7f9c21b9ea54e52a4c74371dd9db4de017a230faa3624511fb74ac100e95fd46e13689af008a6aadde097c07646f1ab2e95e1c3018da2977513e78641f18ed020e2f0f6439d00356bd09226db125dbbda11f94c05a0813a69286a6b541fd89471996d0e207051342558d36a7b01c38590b5aff626f9a2b1b4799d18771b066cc21fa10316cb0269058e84275b46013f94bf814ee18624e9458e94aa9fc9ce8dc290e3153a0238e6c873a94f73712abea1a14dc8f3f00f8a63386ed962fb9a02de4949f77ac39ea3487e3d6816ff7590d4ea9891849935e24d9fe33ba8295736422159b3e405070abad3d460acf98152e9e8a3458137002e8b4a461611128e44e896b6794c0014f8b0b2969e9d33a464246b12d2b1e4a422f3884b92a626d09ea52546c816b1e0d4a5488e842266510ecb56057c51611d50de278d79238c3f4e71e6ef8391d941df90f8d804c2db5be13b5ef4db50600c014b0c6335294e10f0a1580b543548680a2de6c6b8be176400730e0c069b2d8b710f844a3226cad140207a36c7434090320a38bb11278cfd653b7269b58a092d8226060a719dc7a61d48302cb1d68bbaea2141ff40ea4059e5cc3f49ef4ed06ea5a22cbad2a66b530ef1223aead0c96c63d748299e7114bc9343187e35156d5e96bfc4fa9945dab1201f1670b338d77d849a6fd1271a4b7a6ec521107a9714d1358396a78217ab33af1ed8d98946d455111ebb2372e579518236e63d56f9719c4d9faa13ffe33680b05411a84c1da67cc22d69b05371ece5d173db5c20bba40752929acf89034bb092237505c98c4a759b8516bb83fc8259904d58f635b858f360cae4b4c08285edddd4450e6b8240676114ae39ba7e1c22cad1f147da277fec1201e6861afc105cbcaa6f782c4f14e763043ad8a8d4db455031e1dc154b76467ca5e172425351bb6fe8226d6bb4f961712cb213031d20cdd800ad6e3e60c69194994e85b0295d0e650c443ac5496c5fb9047c16da59df7ceca65511bab3c9604d873820fbbadc55f48c617970c64d17a73aee2a10ad262dce32b0ac582d0b282a5191a2efa396c648d79b9784c82554d22e4593a0d9d1eccee1ecda989a092797d4b14eff4e890ff04e93117e71b650f8844fc4629423098f5f298302f6f1d040f242a377ef08b2862337a6d66d5947bfa008d47988b7021fc59e04b1915fd730fccb5867ae2e1592241ecb3275b18e814b724d5b122052293e6d9194d7a0b7cbc68b09bdf5b3ab63e1f0abb4cefa7fa35444feb1b345c62593920503c182d588b9ac84adccb301fcd1a2e25655786365162fe37259c3285a307c29f61da96341631bd5913d17bef8c71f4ffbc21d054672e7f778084c752322d9c68d50e030af414850cd6e63f00802f4a516dc9201109fdc274201dfe3908254ccbc3045a67f9ff9637285490b1f0dde61dd4c268fc115d0b3d27a9162d4bdd5c5d2420f5b3a4e0825c3de1c09b0dcede3e18ee807a619abb65959d1f876a67506aa99fc3caf67440808e0518d4b24e004629206ad20093700facf40eb0d8214bc08a15a279d4138e0b587c8b65e24fccec4f0938c8e5b5c49bf1d1e0a1c114b0bb39a09fcf7ab361af2ada15ca289439aaad565f3d490d96f8d8411decbadca7393de628581e4014e12202ae4d0ad2a49c68eea7fbc5717e96717b1e55dff06922c23313721e53b4252e0eaf2a26d3c10a039a2b71b80d932dc1fe72f7b57af6fbc3c9a4872c2f3002a5561622c569be5b10d0fcce82a286c85fa8d405ad4d14f520ba962419ca2ff681e8dbe7e08792fb614dfd7ad4f634aedbc88409792186599786da782b9a64ea406a09ec9f2e5146c4b14933475a4cd5252796aef2439fc0751fcf620332278826db00d913e6750f7c81f9b5a01fc7fb0ab43ec36d1536b31b3b36ec82a3daa17026debbde7878268e0d8a5f8a6203a72fe803caa69a120fef77a5cf39ad698d3601a153bddd75b7ae530291ff1f55421d421a2615fb7da1de17ea52a5cca578d5952ca0cb6c127aca39a5ed36b65ad97ba46412d4d0d92861ff1deac62cec66bbaf9e6ce4d5c4265570905db4ec21cd2860b571313d564d395511867bb9ad88620ae4541c74717a015c464a51815ae18fd7440007f7955c6dc1c6429866060272086c8e75080d1367983934a2beb2080703580d1010e7d12840380c72d9289cd13692893ca790130d7608efe7fcc254d75bdacb6d569dc31b570430a96d45c21ed81b83c7d111d64532450085ada6e8ee610c7f611e59e8654a12376bbb3c1360bd9094d588b4180c0f6ea27ab3752c6153ee1dd536f4ba5e49db4f061aee8df379d25fd551ee1f9f9299b4230ea61bcc181b113c349e72bed4e316528182850bce220ed4312b8477f74257ae9ae7edd2e7ba919d0ec3b459a34f727204abc56cbb4b837460f6f72b1c082f7b209fde8c2adf6c6aa0d666df5660c6c205503c15b13e904c355adc3df40851daa228816a7c213386d641da61403a7fc55840389bb2a8274034028bd1a8064af616d5578e6f1c22cc6fc8fdfe0a64b867c0228a53e643d65d217490cf4194806b8220ad2cc27ff9d64bff3c439bdf57631a5dddaf5f05d903f504867c1744f7893c45d2ec29ee67eef1878c66867a4026d98b32f912dcdfdf222ae4fcbb06024b0ecb73260d4e9cfec097cd900ed999dac287c7df72d887aa56dfcb5ea4d575828f97b82a68cb2bd86a9f0d09e77e63a1afd43fef037016575fe91417c157b8cf38802585d031b29310d889ac7a18c5dfdeb702928e9e3a30883b645c22df404c1aafe87a498357347b45db2b3abca2eb15fd5ed1e2155dafe8f08aa657f47b458b5774bda2c12b7abda28d57a229763cfa4227e59caa1478989f87d3cd07150eb95230055c831e1496fdcd9a9812538c69c4427e04b3cea88ed71dce7df5de149e5ecb8ff324baf30e5b287a87a25728fa42d103143d43d11b8a3ea0e80b45ff50f402455f28fa80a22714fd43d10b147da1b0079482592622bff352d185927ea868818a2e54744045132afaa1a2052aba50d10015bd50d1868a06a8e841451f54b44245172ad100053c3a430a8a54107df72e55a18fc9f968c09204a9dd36e245c8598a400fe88f51849dc6b4a9bc4802ff29b22097965189e4d8edd317351a8d33c6f3d08f691d4f2bdd8fca5f8fa09c1a69d08185f8562dac8635e9c7e8fa4557dfff6409ba103b90fb371cae86df7fb10d0c193d57cc6fd4b40fc1db0aca12f48103e78fc89ddee0c32c8cd3d7e7dc21dc90d70eb67b9838b46ebcb97b6ebab2df755fb5b427e60504b133d749dd25050accc8d1338cd01280364b7440b04c3c9a249106c2e90741a37dd83bea7e1ecada4349aba6b0f62210539980285f2363c531939ad4fdd823ddead3b01e4d0f3c2148fe5c92d29b212be5320e32f81c5292e8244d9713ab8d952de384fcdf2ef4707f611bce9834c7e53c31008f3fa7128c4cff91d08b22d6dbee59440523ad7d2d5108015be83657e11dec915423280291c77133361ff90b841b4c2c3b57497f2ac78099235b32191f437ba1ba855c4a2f5e6afaff810a87693cef5f65601bd6171b29fdde5a9bd1d4deb214af27220f5b172cbeec03904ff872198c0d0b8937bf19a83ea95b55135a8eac46d5182c9cd7f140acda2ca0b9016e901e4411f123817ad4a61ce320cec44a1bb6d514506bc38558265216767be86c353105b63abce86240ea50bcc850226cf60d20edce62c90714931330f7322f1e37ad2d73ce276198a1196db9305914caa0db56188c4120dcedfd64088f939b1f8f46019bc746f71e332d6f316d5a125378921e9b12d27b7c55f8279d139c4a8fbd451f91c247b7b8d63c29e2cc4dd9ce4f42840b4146d77a9ad18a7919572bc291479d4551aa22e250210cfa58afb3337aacae158da7400c7436deb1f4fbe90ad2a7fb06fba32b0cedcd61ddf89cba81c1dc2c1d18b0caedee225fe4c52a0238b666bee25f54d0ffe06523930d5050481517e45b34b5de2e01a6680a442eb2ac87bf08faad1cfa49fa7f1e364c19e1df0ac7a7dad1ad028341d05b819feeeca179a271a9534c1dd60e493c2b32eacec2eb1ba2b674d45e839c7b5440ffd93d7ff09127548f8e89c9d6924608154f04f7b39a23d895407ca2cd5467b78b0fc4f9d22ea032479db036ce3a0560ccabbbd5fbaf18f30d2e0f9bf02ae27536b5f7e5a3a29f9c3c96bfcfdb620d3fb6a4d918f678f97943044d1e198163a55e7e2812895561f5bbb52ca32e8a7b5f08d509b5cbe00dfa0ca5055b3a706534075a8e11b24f642ecf3a3a19c153bad983ce0a1d5115d7c83a003deb4b907eb299682ec54800532c24eaa64fb1213bcc132b72bfac656969be0f9a1143f6c154422851cd3bc65e9f8038658675906c4ad08103f6c32d13864091521643b9213142496bb01f9fd6948bfc8039b44dee4d9217b967d64fc499c520382b4d5a83c778bf09f92e092e72815d7f9d6d1bc46714e8b3b1524bdd5d973aaf3ccbd139d26057ccc95dc8a9bd0aedc3c5b100755bee46be1c1be1a215df9383b25d2004280b53033d7fe737bd67365f4d80c9e858a45061527704035605972e739770763cc0dfb0ad9e049457c23aa8b21ddd90b3ab33d1c0ac5b0538dfdfa22f016e38b493f48bc881f74faef7a080953439284960cbae838327763b15cfa56118356be80a37af10d6bba9ea4b0572ca7aebe665e19ca0f6a49b19cb4a117d03621c3df23b30e1030b4cc7a7f3bd06a92c58a0bb0fe1108ff520221686d4cd63ab3084d1f1eb1448f4ea39a1039322c3f9fb78409c8e9064aeab2c7be400ecfc549d4a1b3327f2ca50bb6acc128f976d6609c00284c43ef7f3445083be51f3a3bfaa6e334fbd3e75fd41fd03c15303f94b45151c5954d7d672d0cd27ce41a7841034290ffc04b340abc712f239719b406288eb9b20f0cf4eec5852402c9f221f38e8d5113e8fb98783ee5e08a1ba003393087147087f7224c7c7de0386e0105a899e4627d6d92419e62bd948810e40d1792965138368ec65c0f8cd3dc153d09fd16dc317b1aba610023e91a9698dcb9843e2f901138074b29dae95c21cb2ab84bea2d5688eaaebe293154c5bd265a01c200d43da295a900e5713020bfeb52629833cafcd783c75aed5459c0588ba169c4a615a9ff7997df8b16a90acbcdf9885661368043f566260ab4085128352efc0f49e27ee698a810acbda76508e89b57d01a656935f5732e1afd801ed0d927b3a98388d7cbc2eb0d9ef9a656b99fc6de16554c64497b1b36b3431935f120a476cdda18908c2ac081b35dd39328989be6349c1304364626b8e115c3dd11eccf67633517f80d25788c469c76ac2f63199bc277a62dfa6b7d24bf6923f8179bdd64f214ffdd74920f0f9b7830a5c433f70f3fb6a76ec506bbbc9e6e75e9cb1f1dd1e88583ecfe1ef1c763c3a1e72e9baf02610da548d1ad1503587a6db4fb843846a47615cd76a12f8289ceff2435c1456764b5e8df36c937453e0a9c32ead898176235f797b00767fe2970fdfea8211fe6a9b33d551fa2d6d04196855181d6d102a1fb0b7c8b86edeb215459dc03569b64cfae2b7c6c7394b62d0b4ddf61d01412d744e0d1c280699cc70d96bbe80e371748c2a93651e18cf4c99e160a88cfabbd823f9e912dd36fd89bf295fba47bcdb9d7ebf8fc245e2397df7da64f95ecb466aecd67d1a3815d7cc1877f22e491a16052c6cce8d997a68935efb6985b13ab0ddade94e39e7864d35ceaae6a5d259a1973fc64050375e110ca86fb9e3dea3ea25544e9347f5683342d4c9638f11b15b1f89b90259233cc51870f850e85b1f07fd4d2d6113a1f5acfba2c25ee124be205a8a98bf26cd0ca440bfd122a3836e4b50a05e35fc42201f791390b28d3f251aef5fa814d32b601f0328d9e08e01fc518f0653ac3e7bb8f57c451f32e9773c551646366be2b562e0075d3d40ad994994c9dd8aec2ab0b49f34db394a8b7dabe74b6bc7f4a8edb5c554cca86698685771b45fd07f89d298158f73c7a0250051fc837334baacbcb5c6cdec84510cf50c41aa610310ca7513ecc44b8b67d4bca5750a826088b909ec601eaf92253cc5aff7abcd1706667c6b9611d4f0879c890a9a77661584939aa38e4ce1b405c697136da83382319b1d2dc9240b0087dc14048a2eaf66dd966020477945cd4874552b2b2ae0c8fc57dac81b312a7b0e70a4808664f4b13f520aec46e421cb8aeadf6c1625eff42ff1607722d9f79dee30e0f012c6a09a15752c418649f0a42b70aceff6ca71b041b5ca26212264cdf45bc80b1c28df5df81bef682f9af358d5732245529e1b529235d2b808fb497e0abfa2ffcd0550623dbd77af4df2a4a7926a7e0a7bac377a65e3c1d0f1737578d7d116b53158f22006aa5f0deb35119bd0b24bfe81aab3f848460cb4783b5c1b150498b88ac5e8eaaeaba57e9758296635fb66491c8311d8bcb23e5260524eabbd94d404b55279b1807e3d923827162932396b23abaf4d6f591b07b7e00de7bd1fa6bcd95397c531ccc0af0b460ff967f4024c202b024ec1f87841d74687a8c086967a159615070bdda386c6d9225cec3dc10977622a11ff8a3d2f8978e6458cb836293cf4f5a6bf13bd03de82c4f6317113a43f301cae807b50e6d22fa616aada0899cee27b08db7480cc6c37babca89a2c8856edf700d76f26497ae47ba19dd8540e25c63ae088419d1af06c95738e91bab66e35a693e4c6db0734a1f46958b089885547ce55da335acb7f3f7e40a31ddc4a5ec2c56535fa86ee7c16bbc5967149ac5233e5fc4575086967505f1e62dfb718b4305972e11c9252b45b42a7a76ad7c54174751e7de3d8e30dac82aa8295e791700c4b9c0a06aac13258c04783b7286286649b38f60c0c2559122fec2a426e0d52ad3d198710757d4bc1eb8b926830ca96f5e51915f1928bcc959eae949a312d33833ea16ac0d0804efcfa433f01756f1c56199d1193acba24a8c4a9f3373795a034d1b1786cbf6409618153da70422b5caf013dcec5dcb8c669ec8e7ae9649577a32e46d168ce5dd7f01e51ec81feae5bd6d5711a46c1c99f97fff4d2d5333c270f8405ea18cca47f246606caefd9e0521282163683382e2cf605f170bfcba8338715309cf81d894ddfad30eaf202ff9bacd81e9567e5de053266a4398b928d9255e0660c510ac204b45f3a4903468eae9950e0475e6226a4ffed717175f7601ab426ad9f29ec5293fbac41e0c86320fcb459b28e70710bf0200976b4aefed02d50c07cb1f7d91bd9f8da39a5084cec790afaa02d35833753549d528684c3b2201c534ec0c2025b2446393273e37465a4bbfd0f68183de2c7f8325eacd36ed6683f1761d6c08a98f0e83ca58a02d62dcc15e302581b73915ce5031e6775da2857a5f0fba4728dd03d1061fabb49c591b45222105ffc66e63da523cc320f9b8574b8f5dcdc035f5c40605a03b0564f14123fb2c500611a86b378c5cf0aa26a690073b768109d510721f1751c8f46658343fbd9e4f1ae4fe84e6bb783439a0af04b091eec3787d7889c3e823f0b69a42c0d125e1b978ab3fadd69cbce5367ce630619edd1f72727cd93cdb1b142bb3b08435eb091e132f00007ebe28a71275b6fc667a0ba31fed0861c6ca6eac6bbc2b4f92b3233b00a84a332b241fa579d3d8386e02671444c67394dc8ccd220562204c959086525ff27ad84c3133e15ab4378acdf4bdb495e4e11398a9ea360fd680ff7dc351c8219b7dd7df833550fbde59d9752fa4c1c84396a25775a3359b6d528c63c6dec96ead62567a261a7d1ad1d872b07144806a3d5b29159ce03c841bf2b1ec665df797e39944b3000559f0dcf84eff2ff65fb8056e20325d25fd69bc08409fb2d07d4d36b72949c030bc59286eda18eb74b60100d010d42712719dfcfafa99c5fa0cd8f06e14eeb5b5b45593956f74d8c4b42dfb58f6c2c214b6832f88a624a3daa9996f0cd37e3b04a96cb61a687c2c3002a711e30b58030b9334b0a124790b741a3ac54a44171b4e3384cc1f4920c6e7a110d6f67f11fd0d7f4f8098fab2a5c5598423d6f57abe54ac3181febb849138a8ababfe09f170af462815c5d199fb18d46d055227aff96ece7f1bc5004c673427adc0f977af9e074bda5ca153a9aa60145f54a7a81ba8947cd08280f4d1e3f2eb1ce8310912fb4821cf9af23c6b40545484661261340003d3b9f42095aa3a922a135f024f3e99ef718bcd729f5c30fef5cfd8b0b4791bb95f2f437319bc997a7845f7db63ad8357ac1c6ef1fd951f63f20be1740426fe0b96c619b37954c137c3453801b94739c7c05a25f363b703978e2fccf9ea0fdb342f33414cf01c6e3f66f8c2a90426cf80cad681c20963a09ce52b58e8544b3073a1223692c39c6b2f4b5a56342bd810a14b71ce04963a23b262018705d4316227c5425045fbfc190d315affdc687b8847857cd00a8ea50f7156b14a04f486329805107a0a628e104977021d03fbd2b48ec8011d9163efa455afde6bdcc4b7a9cf678af4eda653cd291784f98f64166578dc343085e6a2c301853eb07e69fa7a8c0a7e76156fc7c932a13717fb248f168dc4c59be48c374567cd7860146603ead5dbb5454a0c1b50c615c7b68ef37e4a0a6ef1c605e5dfc27f60b0b975a3bb600fd1d684de0922d3774c1c708c2a7bb104e161acdf4468e83a629f017e94a664278454ff2d628336db7a4ec1f7228a3634ad25a4239a7513ad75e9ad12c916d28cd6896c8369466344b641b4a339a25b20da519cd12d986743a8cfc4acc21c4568ed6e20ad72d9fd4f4fd0f249a9e0a4d33686f336842fe8a314e7de5b904841553d4828f15bc5f5278ed6bbcb8606674a206f7f646498fb7be1c8797d770fe6a2cd17f6301b20f650f14e5b03590c11ddfb32ec8f30cc7e83b9bf943bdf916937590a4266e4902ecf5c8969f8f884b148d5811727d52fca5a1f42c92f372a43ef3d1bfa06716d3a597c30e56d5c2645a4fd3d1bf82b2412247f573b078d625f665a83cd86f6210de2dd00de181cac35cbe4fa59ffccef53b9430189ab1d75d401a8e1b039585ab24c91fb9f3307d4ba16f62c5e0a654eed9b467dc0c79b6eff8f3a6f428523fcc08ad12d156dcdd6ddf51e2c1e7f6139ad1509abb4e181ca22bdef7f79a26d213cf333af2a38d1c96c72b8278ba9708698987aaa3d887170b1b43b344cf5005f3c64c82c8f220ea3a9be51614b687b50b810cb5b57e767c0eef5d21f45ed5cf8ea9fe64eab42fdd27b0f0eeb98baf867681db26dc4c60a05f371c1a812a20d97ea0015ee0f303607b7f8fb21584c3fe75f187ff174a5f01a2cda8c3185544373a13716f93f6eac90a1fcac6260c308b1e01371301bc6acc1752a15f01c38c009fff96fe3eadd4d6463d0d1250e320ad917ba821c1e4a193ef318b85f65a9813e4419a5ba221fde708736c571e7dfe3277fa83edfe92fd1416a00537d16492de278dcdc929edb55e1d7414ac68b833b989e799f0194cbc8bb87f528af3559c137f2351cd59f8efbe99740ab508be6243be5f7e6e964f6421cda6de3f244d1012f0540d5d798e291b90e960610f118a63a32bff1da09282b27d6fcbc37c41924e2765ee07eab9de4bcfde63220e79e1aeb3bedb9c5297d29df37033abbebf5ec0ab57c92dbdc7809b097d717c5063063de8b1433f840ec55e5364340e1dae49c7809deaf8a7f750436de65fb36d1b767c9e0263e43629e2af0337d9ff9230b462a81c3d8bf60b50f8d7597238065c7ab592746ae5be627582182cabf59115e21a89ca1acc10eedf8cb0c8cefab1ca645179a165627666a5efa301525b4fe67d5132a8daddd2c7938caee6ad844d686478bc194ba4934fe895d54099da3ae58dbd91378dc40ca44df743ef200b5507951063bfa74e724481472587e7e43788ec25247f9615a093edb7c13d46af30ca73c7cc9831117f5ceb63f7464221abcf4ee0c7b24840fc818f79fd9b9bc5701c76d71bfdda322e7365a6f8994e39f4ab447a480c401005be50ae6e67331ccd6aa1f3ada4d2a37b7d29c3e48bb615104f8214d887b4cc65886f194bf100ff8a3a6683c38c8f895b95f9039f716a4b879db59dff38905d7d80918d0168fd4a28d11590605c3322bf1f0ae3a73e5780805529d5ebe4a7064db1e3bf1ef7a88da1213fbea544d8da1cbf5dd068485a3ca8f24b6019a6887c0829e6caf4e4aed6c294546c0081f98eaa30177188fe14c90b57ac7e509d8b1ac33e737b56b6395adc3c3eadc4cab2e00358962e669ff3fb3bbb69fb9d77edb567d1b60acc55b07d7d1622c2779e8792619c21009f0731cfa3c62ebf705e067943cb6e021432805efe0ecfcaad9c0f4ad3342a73c230d4dce0335a78d44d4647ff1653aea38c5120404316a7e9276c8009b7c3281472541272264de6affc29178a34df210bebd377cd46e1c829b9da918b8c54cf2aaef61428e06d500a74dbb4ad9ba2a854030e2520942bc0ffa9b6cbe98dba4ae12ee5c51b58f70169d4420b10355ede9b6f083cf02d96c407e797669f120c9f8dfc5bde3bd86b3361645c327aba53fe520ef1b76b25137ee26022001a220c4f3e3e6099a19c7bf54533787f983cd0acfe03a173888a8b6bf9dfef0026769e245c31bcfcbc41c752912e1280fa2fa8510fff01ed8c5b45ac356d0c796a909a294e2e5783588c3409349d36123fe630b3d64e5cd31182452b7a4babd5ebe079d7903f03882cb3f4bf8f629fa177e794b011e1a02e9a1819fdfe876257f907494842023a15c14f0abbd48a4463e93df3e54a7c0f6b1b596d3845e258f03bd2236bde3ef938fb30fe0c95699fedf5c06f2456dacbb1e830b7c191747dbd2218d9dfe4d14f0756166177d707cf2e5b82394386a0d1f8dc0512977245427a5f9989f635719dcb73ebb1730fb0dd56f24d1447801f6338c57bc3ce0cb5ada3edafe495583832809001ba5b4b4e179cf3ac8d1ee11a1eb54c919fc85be2bdb05b2dea4feec4bca6465b7dc2747f2c5e99b170b84c21f2c58bdcdc0f4bfeb0d6c391372bbb7e154abe1cfe805df36a6cab922f6fd777e059218d073eb8495a970c45440adfeafed9129416fdd6228f0acc3f56c33ca612682c7a81352a8e88b2563bbb279c3f2c4a0620f5082a2df3c4f9a1857261448776651dee0ab065d331ba69ce3cf9fb287b6557c359cc4acc63784d2bdf3e90fd9afbb2385b7597952a0c859a08884a16cb3687befb83eb566166f4c48cc75d74cdb05db2e4e6f88fa048902983ae9ab6b0662b54ea809870c6dd62d461c673e49e445d2cfd8f845ada56b0c54f59ddc1b352e8ca04d9405d1bd49cda0dc454fc1d924ef20cd8ea7d351ec096b09d31c8838406017801208f2a7c7769831ac0ba604d3e384c256c72ccfc49db4ddb9638f3255c80c01ca7de979c70832ade98f3149bbb5e0e0501a321a1ff4952d05cb399397ff4d40b67f7caa6debef8ba067fcc0174baa45c11628af150bcda1502beba1998968a4aaf01c23cb4c01f70f110edaa753499904f5bce4f66cea2f3fd803693c39e94cc4ae3d3e21caac7c318cf254fdb146883ccbae6a8ddf2b7f6e5b2a3d2953dd252038359a46585f33cccf1e8ec75c1ccd5dae7e60aa5e6a2abfe2352bd5d71eae954bbc6eccf1b43bba5ae74914f6ca16e47ac927cb5f6796a6a59befe56cd4a341e174da932144115509f669460ed319e5539386a5f67b09f0e5c35d198d294917093a6dd73641f6b665445368f041ea990f93169cdd1f8335944a75f77079ef28865cc1637fe82adc34d3accc9f3f3ab5657f1b9daa7b76be7e1fa3c505b8b747e2dd0f1199f1b05b613e05d2ced6ddc0b1cded3ae731dafeb6b6d07df3fac23b63696bb433ccc98ea1fd14eb7555831f681904b59c3d06439b34f2135f74f10357bbcf2cdf9d925faef1f37cff338d34667760d10daf697fdf3d73ba5561d854a643a5fbe2377f73b92ecb5352c07fbfc203856b2bbe178578ef3c40ec2bdbfee7cb9a109c13559929ba8a80ea45762ad61154f2f8063a5dd28ce56dc1336746b2e98ab47609bf2cffec67c4cfe12e2968d74ef680707fd83f21d13ff51b5eef62ec9d9cf1439b35b4d791f60e95dfde370a0299e09d02933f91505ef07a14bee39d220e5110e1091e1f3aa8490b72c150ca7fa29710c3d4626d542989e689beae4684b643a645742f5100dcb6816c3543be85bb3d4a5e3463ea01e8979a285f3f6e586b30ef006cfe3cf5f0bf8a81c7743fd948610b37c904db1215afadc6041f9737fb330084770a57e6b9ecde38598f4c84e76cc0a25030e4ebd96f30bd50b6aab55acb53de1eca128b01df93723ae4130bed8f5e5b5453746462679a4d2cf098e2c492ea5253dc69cf36291a570a50e5a6143d3e9c2bbb2c737a73db275219593d7abf5ebc9ace85e832391e7e4bb1783c7e1b69a129f3e0daff54a2016ed54d2fe1a66c6babb4f6b77a39d096f0b126b49b49739f840da564be79284cec3643049d8044c0697864f43657059d83c2403998548c093d079980c26099b80c9e0d2f0d5e1b28655653175bb7b2a5515185bee3a0f9d82e560b3f0094c1236019143a6e133b00c64162203cb41e7a153b01c6c163e8149c2262072c8347c069681cc42646039e83c740a9683cdc2273049d804440e9986cfc0329059880c643b5c5ca2d4b2076e1a6fbba46df96c68b1f5e39a466b3754db881a2cbcfb890683c4a6a104834102c34082c120816120c16090c03090603048601848301824300c24180c121806120c06090c0309068304868104834102c34082c120816120c16090c030906030486070983a91d888764030f1bc717a683861d658e0387ca9311379c0493898b266cb2dc9742a72164ac480455fa50c98a3f17042381e63eb3f5174ea43e0fd9220bbbeeac095a407f20ce0f149083c1cbaba4f2d86db6367f48ff5500a9792f1b2608a01792071d3909d00bb65a826786040d00b694cec1448830d945fe732d7c9c95e4479817932c298b1a514ca4cee1c0c31ace6691ae4d04f50e0bb3ba1223bc71502463a6999f39761bdc67aa28e0241ce8f2d5eff36e20f70a43a6d4aa863ad5aca8221633dd5847159d44a31a2f53acd54a34cc3ff89d5c36d1772d499cdf3478544c9cffbdf42afa5fc91a1e8da342c555b0ded67acc22fd1a26d9e83d34bc58ff1afc51d0ed672e124e4dcbb85fead180ce9fdd6b438fd9c14730123e64b8af6e50639d441890308a1d25f151c126d15c08e84a457ac1af430bbf7fce5eca85a3dc5eb26573b2cec24bb2710e6c454d9ff8d12986ee7b7858bd619320148ae8fc66dd30d3a832b5f62bbca5b32a6324cd04510bf92b993b4851013b8b422458ea9730f4641be90e366cda57fb6aa9551a91c91499421e3d6e23f5f36a8b30ffd4374f15bdebe58a24ca781a833bd0ae7f5909332806c0ee6006c28d3a54338ffc5c4f97ae68565172d5f250919245d4c25e931882ae017134ebdfc1541ad944b1800a78f4980c0170304088232c1ab9e578794b97a1ca901014f0e90a3863edb97016e849aeebc70f23c60b5ebfb7a94b97a6ae29653950943e742bc69cfc84433eac203d23d163f3e96cfc6e25fa6e2d7d597ce311337b77127fee47b5e1989c00f85b28569c72fa6899f5e9ddffa93288589e554a2cea25651dbad03a5dbc1de42c0b2f2e69c6d2181b21222201fb3ba0e591b606f6a11bc2f268fc57db69600c2c679db7da47217443634c7a3d31439db03307ba1f24c80e48a9dfd98afa2d17d0c67918b693466eb1131ca48341fbb42b42896166e5a3c036bd1dce8fd96f7035608b16b54e7f90ec39bf61bd93ba9f0df753dc344166765ee93065bdd96c0cf1a70b5c2a036b825f95e06e94b6ec0ff7d661df42ed048b092b403744a76130700116fd664395eadcf61df46e2ebe23c943398607bc29b4559cb4138e9a8801fef3f55baee3a5a445a3c11101f7e04154d2bdee4c86f46e06e7582c754bca1ae5cc2015c5cffe4b26fa649611646c8f4b9fe6ef550115ed16bce0efd6ba79b2ee3f787df333dc69357ec83823ead7cfecfcd02688a1095b374424a998f628dc72fdd557799bc4066060a1c0ae1c76d45571d1b8f1a9df94642382b0b2e1a5b9579445019dbec919ef129b8d14210cba2955fac6d72281a0db8e30042590e73a2ae8e8f8cf85e649858b4034657d85eff5720b822a3d0939e27d35e9d61de3df67a8d57fc7015dcdcaf26e965505eafd734d7b354dbf8115c70a613a0e8b0640c6652e91a0de087d9b2b9281c78a7c3c7c0f04c8c175320812660000ed81778f72debe725565b09d8c66ca9c42b91f4e3567ff78d3a44b27790319d9912358610f42b22d758fe59955f41a35504840a8e1633739171848bc5b80cee786099d997dd56c5b3b09448ed47077ed7d179d5c056465e9f2646aaffb6032ef9c485d7cea96cb9b67cef28a3966bb38af2879664746096755994bace39dacc11c6af8a2c16e0b950f03fef52ebd9bf097a058277040b3d4c38b820e80ba3e76850bbf4a77b50656eef5ffece58a916aafd9a85d19d2e3bc14480a9cf2b5d28a6c013b99517af20d15f78de6a691f270d6ea49a15cfe671872fe249582fc74f23822586ada8ce07a507ea6acbef5b0222f583787ab6ccba7f87587e18606f2c6d5f8f27a7bfe8b8a62fa15db792ac22bf41a711f2070d91d57e39ccda4b46e17ad8f7c3c138c8b8e2dd40c91a6b20df26c66791fdcf741ca7887566b10456f8a6d4a27201268e6aaac20bc501a0d059337d6125c9f0e91c010ec82450104c3ffc87a64d3fc84a9794db3bbcb1ca5abe892f0e9e77f563ab2877236c04808774e5719630b9a734899b007ff9c14cb0cd6f075f127a265f5c4ccb1bd05479dec5e97a50b1b2db11554358ccbd6c41da345b78ea6f67faa924135cb2bdf9c3a7f01d90d413a834cae56780af7d5c380ae6bfabbf33b91ec4fa8fe737ee865531db656f5ac15b7fb2b5f1699a553896a0bc373d5f11a3a6dff7feb51d44ed5947e6fa8235db03ab5744338636b6a420ceaae4d9f99584a84f59bc6eab49e1a49fbb8ef86ca48a7ebfcb9efcd9bbfd4a235d5f4b091e83b4f04496753d537324eab6b6817ec377f39614a0a477cae59b4c2280977387aba4002051c3f27946329232ee91584667cc5db4451d9de79861cc0d85b45bded65d0a872c779acab0439076520f69eb647156e0945460b7367fcbe5af901dc4e71939f43b161a29f7b6a6a4cd33e1f57232584d6fd0bbb2cbfd68dace15f9e7dd8183aac2fc8d099f77aaaa3ee18962871a38e3006bd04d7fae315cd23f702f7a4a1d1188913b1a790cfff0586547a64d8a4142294dd13a9bbf8698bb0478c091c75dd818bf30ca9f18329a0783324d7a8a2f443d991c021de1badb9f0b42d13687109fb21b42ddbcda4f60a56f1810a18831651eb3fc0d30c08f80e9194de74de9d9929c465bf69d56828e8970cf50bc915cf9e9c6d00ea91307d10e3dea825d8a8ac8e1f1b2a3c5378955cc5e6e660c43c660fb5c8220758c19864045f2294490b7757919861f1b87e1fbda45a750fbcd46861073cc3364ba95001e71b2fdf485d0162ba8f04c0237790dd368db394ac731f65d8246fddd57ebc86d7af7ddf2072991ad29711faa4c977d54f6b1395645e7a77b942d1a428986ba79c2ee5ba7dc5dc61fc172ed9db353b983f11436fa4a3277caf36db70bc57767f73f3b07a6a58133c7bd2d139c39afad21b3f1afe94bf732961d9c0bdd380eb437e6144bf12593ae49989795bc9440f62f5af728d7bf22bd43e23957ffc5a5214af8cf94a32eefa8fe36e6e60987c706b491ce7da9fbcdbee147281cd9d05b4f133a9dfc6396b0336dd89f1772cdf686fc27aca120def5d4736b3298bd3266f23ca51ca161f53e8559252b65dcfceee68a3cc87030bcc8a4e1cdcc3fa6390b3f421ab994dcec8a31648f77b0a499e4c1e74690d30564b26fa71e2d7433fd1d8785620a704f447d182799a2ff4c5b207ecc9c0c570b8b492fa4ebe1484d33cf9f4165b015ff36e7195717a065979004146f436de6d91499ed17809c40c7772f715001c42ae45c63a1adf0a7330fde895095641185971f12a7a20e8afb747311506439f873dfaa0c879d7b5962fc74112d70f8fc4cd52fe3da837dc7e562225130174f27e7ae9d61f85608154cf8eef7abe3d27c106fb00652854c3e3377fecbeb7c0e6b548d84f359f7c5f2a98a4a23f1b46760f0921140b19a8f48cd2f8ee4687508c0b522c51dc24c5f9adde1fa971c4f5ca2a0e2f74b6f3675a37b0e0af9661ac475e0456bf1aaea92321270df6b3ee8be48ded6503bbf28aa1a263564e94e6117474e16c0c36e011cab028ec384310c3660b46439330f0f0f0f0f0f0f0f8f3121b52563d8354929498dc4d913fa419e524a29a594343878177a3a33f1e9cc7490904d5a8206017e0b5f0c890cc7e58fa56637e6aed1020ea4ddf8ed8b2767352b6f20c8d978c568e94e9ddc40fe52a3de49d3d4a9dd06c227554b79a37c8774b9021fa071430b361083c97c41c65afa035aac81a0f5926b4cb3a1f4a3b96a20e80aff41c80b4a77e38729d0220de468172654df75bd6a1e50adc00768d0d0020d84cfe0d59764fabf2a9d81a483c9f4e875416ec9b5300341a67e7adb0c6a510662fa0a2a7ef8359552189574c335015a90816c4a69aca73825d5320652ea8831259f2a5477c4408c1d74f475d6383d2a6120c8d6fbf46716fc531c0c24d9faff4b667f81341bbb414dd7a8ca9617485a64c6244f65b44dfa2e10ae62b63fb94efbf6b9400a3d4ac4e6dcf5a4fa2d1073ce7dc6a0e4d39db440d4cc0c7aaee3fb7a521608164d5c5a524995cc090b24ed9a43f896bd9a9cae40d0abb14766902fd1252b9045655097eeb93664a90a041d4de6d4f7e4a20551819c569e7ee5543f85d11408a3baf2e65e6d778aa4801a8bf99c3d87a2402ed7184fe7ff3185a0406eadd2ff1854d0f1739e4052d9cf3deb6bef84c7092475a1762d7a27dda32690e6b4b4a62c324c20ddba7a32bf6f8dbb59025936745eb5d4288198b161747a8c89f24b1248a6f226dbafc7af549040b4b1dc9aab92feb8942390faec83d22d9f62a5c508c4ca95b91df4d5d72a4520665ecef6ad0a11c8f6f954dcd790dd7e0804d1d9124a08f117354220ad9cf014e4a8f49c83409241577d52a2f467e54020ddeb7afe547f39867f40d2d75c9bb24ace5c1f102bd384098f1afe19f7805c25ffb5aebc457b1e90abae4a5ace77b24f3b20c7ff2cabb13ecdbb0ec857c137c70d3b0b770ec89fcbefd226570b1c1064a79c27c2672b78abc50d08f23aeca9e03d1ab4d5c206c450ad11331b937db65ad480a062ce1de15135a8916a41038277ba7dff65ceedd15990b53c6cbc30137ea3ca82ac9664ce4d7955ef692c886a2955ae1dc182682335f58633d9babf827ce2d228f3d0173eea0a824ae5b521aa9488d80a92ffcfa9ac088d1f4b5610e4981cf1aeacb931ab2009edd1e3e8a8cca555418aefba799376d56c622a089bc4b267af924b2d2a482abb67ce937b1ff34e4192ae9b6216d5dfe79b821432e55eef4aa59f540a92ede7dc1f3eba8b0e29c83a26f3e51cc7b6534641f24c5f33dd4bbbbb2848669e935bce497edca120260f1bc62c73e878060a629e9353aab222c027481e2a54b0937aea2ad50002788218640a71395dd0071b8d2e0a07121104e80439a55ca5bc62e91ff1738220360671edd579ad4d9b206ba510e9b1e38a9a34410c4208219e7443663b2f9804366ab48001d7015004013241d24cfe3bcaa26cde0613441d3d7ade84d2dc1fa66196be68011769004804012e41ce6f62e4cebbc54bb104496e564e3fab50b97f2508b6d9a3aec345b9cd7b1f41004a10f584d0d2d93f194a6912c4370f4abc627eb40f4982acede15afec26a4e21402488791764e94df265fa040972fa7bc645cd234839d655ced4f7aad9e40892ec90b93557744d336a04c9453b8719d161ef7146102f676ff95c5a0439691ba552bdab08f25a7fe5d3557abd4f022482acd92aae5d67c6b11c4410bb3dc4e2448a30d10f41d2ab1aff34ba696749004310f6a3494b42a485205f8fbe6be72ce266128218e2f3979053f2544a7941804190749ccb6d759d20086a45f43655e9a462200857ba73e42adda775f6090008724a9edb63c6f3ed11fa0329c83629e63b522f5d3f90a2dd7d0691b9317d4a803e903277e5a98c273e903b9d8fb61c9772a3680f44b3a046687daccca4d103412b2f8a4aa755632a7920de9cbeab9c8e07928ac94a9d07a139e9fb0e2413fe9db474ccbf9bda81b42d1742bec65c5294752009953954576be698e840f05031580e33ce81943347b3bfd9532b1d01e4400a9ea56290fbf33713200e440b5de2b2f5fde8121cc8b39ae2e63e466ee9df40181167a7ce3c3e3cef06e2451d4f7993307dfddb40def351c945aa65ac9f0d64cdad1d629543a8f9d740f6cbbcdc76131ae3570331ce56fae72d65e77e1a089bfd99e2fa4163f4d1405ad12d4ae6dfdb9e7f06926a56b8d5a5bf2fdf0c84b7145db24d964ae39781b8f93bedad25b3cb9e0c04f5afe449dfd4c8d48f8118975a6d9da7c3fd622075c79c3da508617e4a612087a6cc71d4b7c39e1218c89e7447abe89fc442e90bc49474533e15edb24df202514685ea7650556ba72e10f369fece57791becc405829f9d4973f5d4cea62d90b6840ea6f30653329ab440f29aef11532bf369ca02d12cc93f7dd522d64c582055d6565c5bfb5066ba0229f3f6a50a62b2023989b7ad20df496496aa4076d5116d5d494386a840ded6d82a11d19d3f5320f6a84e2bfac34669a440fe0b91d1c3620a61890271837866cf34ebbe4381e8c1f3e8e9f47332fe0472b967899ddb14bb3b81147374b4b45a41297513c86da6a277d5092d6a2610b4458495dccdca69b40492be7c977683262b1b2981ac41b5f9a9889240f2117a42e920bdce434820c69cfd3ba85cf59d4247205cea136b7b0fe5163202c1335bbd6f3fedfe4520c92599e49626b9f01381a05216153cf64320b85fcc22b392a8242304927c128bf3a4f9671304e275cef82c7127bc060249ed6ae766964b22fe01b9bd5eb4fdcf62907d404cea42a3555ea64af680e06ff24d6deebc3379408e39ce1d902fe6e97071d995d10179dc6490aae9aa37cb014105af1871d721000ec89f292c7bca9a721811e00644eda4942975992b89086003824e594dc676fcff87003520bb09f52484ced7b163084003b2c80561a34e3f556366414c2fbbc993eaa493c5c882bcba961746b4e9e82616e4d45acd9bfaaf2a37b020c70815299e7e05b13283c66469e7fd7505f92f5777901fba2ed90a92f8b4b69652b8b3a46105a9f453524dae6d9634ab205d25f17999d9e94da30a92891f1ddb477e16a149052963274feaf2672695410569b39edae7553ab5cc29887f9b532ebd4147faa620f86aeeac6a73fba752906474e9946afc623c91827c1e7bf9f553f44ba320cda7f412f726a72251103ebfdeca7c4241d860711a9a29e7784041d4cd1be3cd49df8af90431ab85f8d2992752e309f207f3243a8c8e21339d206aa5a8793d293bcf0b27882784caeccecb2608aa3c6dfaba9626bb6882b849084f2ad6c54ce2920992be4aa2f4f5d827b76082a4b12b7fa5cf4989b35c821484ca4eff75dab52c9620084fa6515b543e152c9520e9dc4a7b7993c8e0154a90552c356c8ad137599904f1352699f9fcaf74154910e39877fc184f85592512e472f1a4ea7ffea6870459bf2ce49eea8f2005d1a13c7d54c409b923885d77c9de84fe4b236f44daa3fbe534c40852ce2c117555fba0b3085286b5b2a4d747c71845103399acb64f2995691241d4d3dd3b553a98b6382248d67aaae3821e15753f0439e898e810cf69ee764310cbe35f26738f57b61782144a0625f5acd44c764210dccf349cf8cab2591f04c1b3564a163b2a967541104d5752397452b1d1f44090455510223fb6594607042988675e1475b199f91f4876712df3694fd5e57e20593e99fbefa37d20de5cb0ad2c9f9e793e103b838cf16f6da6fe3d90a37b67d4b82767427a2059258da384675341280f047b1bf59b4c5b5d0c1e48b3417a8c21f4dd66ee402cb3d29d2eee7c753b10a3d6c91effd822d375206cf7ae05d59acd331d4841586c7ad60ab3770ea47ce19a2ac990764a3910840eed39691807726e1d2584c84eabb0e19069391b9d84d76f20478dadd41697295bbb81242b881342498d9f54dd0662ca67b15e152cdd6703e12e2e5ac9d01a88716d83de319dc23f6a207a5a8b31acaf85f5a481182d3d4ce9f6243c8306e26b1af7a839c794e467205f66887667340f72339052b4cc9e6a7b3dc6cb40fad92f65a72603e97cd73ac77a1c4b8f81ecf92bc796a56f8e8a81a449ece53d25878168b162f64f6aa2a2c960206fe5877c1ded17883129a53ee98fa24cc75e20468b33f215b71b33ee022996c60c16eae763121788a554a53f5561b44a5b20c5c8b7b433ea62425a20a8e63b8f1bb459207a4c9647dca26653592c90e5e398c75e59d3cb5e8118effb5e1699510903a9828e0e993e0915d7020692757b36dda2c209e17d81947f329e09bbad18b617c89e3146669c27d5b80b7f7cadeb346771819831c8a829fa05e5c92d105feb4f6d9021df542e861648bad51ff305b3b3d1626481bc3d975163f63fd852031e37147023d9b0e1e181c3c3a30e31b0408efd4c4255927dfeff1588db7945c65df11496b70241bdb2bd47c5fe93bf0ae4cf952e1ac4e33bfb5420d79f8e49795b6ef8690a44db2aa1d9eeebda495220bacf9b6cd8f930738a02298c87eb982fbb4d9aa040fad9fc29a9cf72ea4c4f20e7eca43fe9aad3922527904aa5558db2414d20fde5ca5b5d397ba58809840ff671dfa33d93be04821e9d0d9529c5ceb012089b64ccb1729da6742709a4ac0f325bd642a8dc4102713b848e49740462e56b92a365fba3698c409cef74cd92972210c6468788408cae1633d32190b46906e1633208190a81e0395a8be5de3c9d0b0259637385785b8da50181705a19e4b3b377b0fc07a4dc614ebf643bd4d23e20bc56540db6f116ef01b1838fca8d317a4c211e90d2a9ff4b9ee13547de017163dcb2dbdbc61dad0ec849cd4f5b35e6bc8fe68020746345989041748f0372e7ddeb48cd0dc8298712a69296316c40ce9a9adcce4c67cc32460d88a763dedb61d47889316840ca70396bcc4235e57016a4d0a996cc4486d4fcc982b0a692860bd9797dbe58904e2955f55432b6650f16049372daf7a77d05b1b3bb7e89470da3e40a5267c76f452faf246a05e9ed2c85aedc5fcf610569eda3789ccdf08ada2a4861d7938fb7faddaf0ad2e80a5bbf7fdd4e2ac87de66f4153f691511d00062a48a97a3fbc79386d3deac1380529a9bb3c23568427b97fb0a51a377294a51a377278053e40c300304c41f2985dbf12fabee674238d0b53b85841c980dd0aca8d09c0280539bc2c76da5dd11eef072fe003477940df17e504e815f8008d08c02005c12a57ded177e135c5d22bf0011a2f80310ac27fbe18d3e75814a4a4c9f37b65abfcb1120ac285bbf50bb74141cccc24bbfa9b4d59f413e4371565e6fccf447d9e20c7caf60a5ea937f6ea044108212b06d9fd539a7fb01da68013e41c77a3c56416aab76d82343adcc48617f929d69a205ebc6a502ba3d9b665827c4205e52274c6115b618224ff55c3fad26d87dc2f41ea4ca95977d2f7b3640952fa94e436578e1743a612049569f929884f1da34c0972b2d42905b1b0b7ea26419229dc2c878aad29641f6c8886f3008624483964c44698362917cff21bc08804417b3cadcda537552a0309725c8cee399e8c6e766000e3112473cbc933a589939ff3c1b6826483860d2fd21250648b0b4c608b19c07004d1332b790e32ae3b80d1085252fd9b446cd486d37fb0d9285d7c4103188c20473f25e6961d45e76d2180b108d246df1a953dad8b755a71e0a061ad3834e09b6e70053e400301301441ce5e6f9bba34fce79e08820a9e4f664c9ed2b38408521c59ad196584926fc238042969eb137332d8e8fa188298fa5db372f7b73da610e451317fb6a082e8c948086234212ac6ed2897416510a4746ff9ad4d8b4abb0541ce20cfc743a60341b29675fb9446575ccb079b59d200031a1004a5d2baaeb6e9cb961f6c673870a473128082a4016f187f20b5a6074f91cbebbc2ac3f003e1ff52dcca296c3d993ed87261f481606f6632e528c2774d7c208ae97f70b1b078a9f9e013ecc164a62c8a8e39ad853ed8762bf0011a2b80a107f298ec302a49539a6242a715f8000d859107625c913f3f6a3b9ab878209dc68d15673aac74ee4076d7d39a8d7e2756b503e98385a6eae62ff997348116b8a04c40d90830ea40124257b8560afbd94b7420f5c866b8d22b1aefce816cb92cc536353b0d170c3958e5fec95407999f0d8c037fa74ec7b88bcffd075b0b0c8db2be9172d4483890e35c8dfa87ecd8f1f0f0f0f0308f018c37a0b14a7de7bc91e38b13c07083d13a07d38d158d96d684d1866a837d26e1279e290d1b5e78787031810b64e00213d8c2638b056c718820e0e1e1b1c50526b0459202061bf6dc1dc4662db595af4430d6401cf3203a65d6a4c30d38362c60a3011e1e1e1e387e00430d30d26030d040f86cb9961f9ab2c6e4071b0d2f72d8a80181bb07c03803a92aee76650c9a35a96605c30c04d37731d7fe4c94ac0ca4ee4c29995fe938554a08c020032906d34ba1eda49dcc8f8160253e6cac6f99d2be187839d32b2d3d858178792bb98fd096972960209dc69cff6af74179fd05725cce6134d3c51ceef502294e687f8d41e73c25ed02498610cbbd5c4de37281a44c2fe50aa55483985b206dea11bf3aa22a8f500bc4afb1ac8cea29e7dc65816839853e2fcd234c5430b0c0b767aba998dee4690430ae40ae0d55252fed2ebfc70a04e9e1c1937ced956daa40d0acec522353812c1a55f3e7db0a9d845320fbe79316e3f669b60d8614c8bedf16be54eaa499741e0818512079c9cbdb6954bc54fab6030c289074d5c60b21f46b59f7c1865607184f20772cf51bfc2c69cd491f6c5c811b0995f4801a6fc38b2e10046c5880038006184e20eda7f79196f31a4cf5028c261037e53e5932758a2a331b60308198e1ed6fe1c52fdeb434c0580239e9fc9bf0f41c64a772d8482a500249666d8cd9b2dd3c0406184920ada7643d979f9f5405470e1be5120c2490bc744ab7940302184720fb8ea88976d84f49f8c1f6050d1c35dcc3a34d15308c403cfbf0a21e2aa59c8d84c33607308a404eb12bc5c84c7a8467c38b35082412d8b061010f8f52c02002a9d25bfed1ef15a5bad10818432087d81f199332cbe8e5071b0e1ac90425c7ddf101861088de39bb3a9ba4fac8c700230804ebdce1f35be6c5df3fd8780b2e1c80060308a4f694e2596dd099d6f401183f20488b7d2ded7e71742fbea091a3d0b02b307c40d0515b2d777a40ba4cfde99e0760f080d41eecda47b6cc92f9450d13e0d801413587ce12fd9846fa1f6c3970dca8f1657c1c80a1038257c56c3532a673751860e480e8196e4a9dde890518382069911bcbf3b36b33df828b096c8157807103720aa63f7da8cd160bd822b9a086061209ca053c3cea60d880d83677298b0edad2686b40d412cf4cb17c35a3d1821b39caf044008306c4df14367d480d1b2b7675d06216e44bddead9636facce6541ecb422b25f63aab33216c4f8eb49f3a560413e8b39996bb28e22bb57103b894dd76afba182e60af2ff5c0eaf39a5dc0af25aa97b9b0c9ab5295610b35d098da167d292b80ac27f6de83133935d15a4fc2e426598af24bc4b05b173d0bab2c946b454a820a7e865ddea4d67ca3e05c1dd934e265b74bfc4a6208992a175a5fa5290d30665ba62d57b525290334c5787df585b268ee24c77919e7e99c21605512bfee52f8856b8f10254d0221464cdc1edd6d30505b9c45b4cb99edcdabd0f361a092ddd48010e1be43e410e4a965fe8bbfefc244f90628bdfaca86421e3a613245de29da176369ebe30d380da6a400b4e90925ccca1c4ad1f6c769b209f4cf2bf63fd6bd6d4b605170ef0f048c8c3430b4d90bb65b3cc4666c5851f6c677799205652d22c4ff34d08fb4c0b4c10afc472f8d1d4b5d99c697109d27f6ad5558c2d41ca7e9f358adc18bb7d0b2e1c80baa891821c2c4834a0a04525082a9892ad6729c4c7e11af0f0b89170787850829ca6af4a9a7689bd7b1264fd5426e77a7b839a922059701f7db0ada945829863509e76b3a6b95e214152f1fdf45988e9feec830d211b351a50ceb47884e541466378322f51cba08523cebe789bedfc939b6868d108620ed2b3b2ed09ad0bd28211a42bd75dddcf182bda071b0e1b5ed4e8a28b42c3af8b2e12e0e181c3045e78f161a6c5228e224f25119e2a43fbc18623d5c851e36e0b2e1ca0e58610b45004f1ac3306dd981bd4b88920a577ca7b2ae7d0cc4944903b88efee12224d9547042d0e41962de566eaa3e2f46f089285cb9945594a9bb633418b4210b32eefb86fd60f32891004f529734da968de59074138afadae2d4f9f4ba7852048662a8e9c8b5b9be57fb0a120e10804d16537075d2df259733ed8be2827a0816c24265a0082a04cc6777be590e9c70f361b5e74e1c5a1f18774b3dfe69255290d16d4f833d50e68e187b366bcb3cce4445bbd466cd989dbf7838d060d13a4f40597408b3e90cfb387d69ab1ce102207b4e00329bcdf27f95bae29bc5a012df640ce16e3e757ff9cdfa21e8895eded42e8f049f525810d2fba680c689107a29e86388d9a4e55b23ed86e243c104de6890fe3a5738877b7012dee40ecffd10b1aa63c06d1071b0b921d8817a6a97167f65368723f29a0451d48192cadf34679ab243a418d93104e400b3a907f9476aaa7b93eb53fd8cc186097d045408b391093f8f3abd754955d4783167220adc56c9d742e7fcc6b110712784c1a3ba73095f3833c0e329a40560bb622d62f6df6984052fad49f694ad348c8f00a329640927183c8a06c4557d0b7c0d0a8bbe1450e0d9044e30b1c0ad862015b3c8028815823c752ae0b9f95f249d8d7c53ae4de3d8804b25667ae7ca72e28db1c81143afadc7b4e8b22c44678b652c5afcc3bd6a1414611881f5dfb74a8f5478d1241af354bd1c9d453d207a33341c61088a964791ed11cefd20b81245ae3967f8fc74f3308e4ac5db67eb23ca51908e46e8f412ec595f103eb3ddc643cd7f2acdaeeaeb25f738b105f65f880d89a2db77b2601327aa0a9755f919fba1ec8e00179b3d6ca6ffb9410ea1d90825f1a1d54c532744092bdd2cafd77f97a0e64e4809444cd8f3ed90f9f313270408cf59e82dfb585b293c60d2f68aca0dc88808c1b90a408299b44d6c2b465a6b60c906103c2d679de88d0f532fa1a90e2c758f70ded54b765d08038ea9fc9b7a3757a7f16a492ef975b61d7164eb220770cde396350baeb37b120c88759264daa39f90816249d1bc3a7a4afe292fc15049fb73d65625f9b7457103b86bd78bcbb15a44f62d59ec2c9b0a0b2825cbe6fdd55f9534a7115241393bb55d6269f570569bbc3883c9d358ba9307f12b2e2654eb597de4838b00315a4f59039a952298fec94da17850287808e53908288c60aca63c4c2fcc1346ee4f8a22ce52839bcb8b11da6209db85dcdafa1e393ea83edb81458dfa7efb414df997790829ce27d0a59e7dadf053a4641ce693c468b39a8431404b9f84e13ed9d4acc8e5090f4261d33959292d3d88605dad0010a92bb7e5e355db515ea079b990b6ad8b040a7a1e313840d9fa1bbeb9b39a778e8f004d1638cd92d162fde468dce424727089b3cc7b4ab1b95ccff600f8f2d1690c346ba512ee005171e1e8e850e4e105d84f650f7601577f9606b333333b3326f5e4dbc1600153a36619c4bf5f76d5e9a41746882b0f1edd2e9d3e515f74247260822554347cb9c1e3a30411ca5a9f6e356d07211b6a1e31298f2ccefebcb6143872508f229769a8c4d2548bddde9b9a4a5d9a8942078e806a53ac76ce5310d1d9320df49536229fa72de5612e4fe2c212d9708bf4c764482d8179466ebd1163b8d3a2041ce3ab3a7f3a86c49848fe8780459d4cac76cd7373a478be87004f12d9f26cf9fb91164cf2a7a6974ab63b83c3cd830101d8c20e68cc15396126a94c976e85804b1721a39ff14b662cc0e459054d887acbbb8b255e00334b8e8480439895a379d8309d322c3870e44905e2cec7c7ce7d48c7651d77108621c3f5df9b1d5632d482670447418829c195ac6a2eca8b7d20d2ff6101d85207697ceaf25f5a466100d1c25d5b8c18587c70aa28310c43993e9a1e3c52054350892a8468f0f959ec7cf27740882ac1e7f39961c05825c26eaae5a661e2f0610e41883b4338ba94f56c65de8f803d9739059329edcf85e7e20a78a9afe2b6d8f2e15173afa404c31dc5305694afda7f9401429eaf206695184ce7b207f0855dbcc3af14dea81e8ad172a56a59219d32940344860a3c609da74e48120173d88acb2983f6d1a1d78206a6e4e79c46fd3e91ce8b803b962cc83bc98d4944ce8b003494e7fed6b63e73005ee848e3a904e469af4a83965f0dab3d04107e29cd2316ff892ea5f7db0d1f8c051bac091a90b538e0a1d7320e8b10edf97c1d248cde540dc1c2afb6c8f598ea7c7db820b07d8b0c0062cb0c502b658c0165c4cc0c343ffd01107f2fc57061fcd24dfcf0fb60ec00d3ae0408a225ba63f880d7f1e4f42c71b0832cfdd947fdc48e87003c94a8a0c6571b2433d9f8e399e685bb5d940d48b3194988fcb0d13063ad6407a1f25b4ad3759c9d2071b0d2f10a2a0430da474d153b6a857bee17b81cc8b8e3410633eb5eecf921fe976a081b459630e9196fcaa6dc1f1f03020749c81a0bea64c938c3ed88605ce52e0680692bd9dd28da29f9b37396adc5801221b1b40247494813c4ae5317d9a99b9d5075b1726c7495f78781c5a0092d04106f29eb6c6c94a69d24e394a8e145060f9bb630ce49c5338156b4f2f2f1303317f522debe00903c1f2e69fffa81eeae46020dfe8b324735d5f20870e4206196eea94e7bd4030a5cb93d0ed4e61cc2e18c48c8ada186113a1830bc41c1934f6cf59c87cb7400a3542caae6d6a0a4253e8d002a9f4950a2aed075332c18d7282746319d09105f2e5dc59d994c7e6ef1d5820df08e9233dbe720eba073aae40ccfaf3bd5fdaf2ee63810e2ba4947ecea9b926414715083a7283b8985fd3a79c0f361cc9820e2a54c71488379b4a9fe8d0079b17364e051d522066a64ea372faa748f383ad230aa7ea98957438d1262764d7010592a65ef453cb6f3a2f1f6c3472241ce9c613486a376c879af78c9ffb601be55c171d4e20c9b65ab58d490b97f4c1a625e86802313b8e680b5afd928eef49a18309e414f745297d9a7e539a091d4b2078f0eeccbbb1e72b550229264fe24dfd9804b2dea8aba6bb9ad08104c28f2915eecc362bf4472026bdeb6d59467a58931108736ea9371ee53bee452027cd2b0f72b14a291b0a1d44206e8a1927359a18193d1f3852f04545c01dd03104f2a65469badd42de8a84401c916df75c2959e80802d17d636c73f38de1030472a70a65efa5f90149e97abf6e0a224305add0e10352906154cad72d6b490a0108902055e004353c3c3cb607e4fa1a21644c64df3f5b4274f0a070d9bceb4ed58bcdb2ed35fd23ba9929caf8c196a640e8d801c9c3b4c6dca3d334251da14307c49c0f6716af75eabe8e1c902cbaa894c92cc9a6a42db898c01642e8c001514ee64da571ea5c7694be280747db8d84030fd07103925f8b384bda6e83daca06e48a9a6f3a2b8c9650b9133a6a40fcd0ec194ccef6ead3410372894c733ebf17ac2eb320bfc5681af941d34dc34e1624933d7e31dc86eb9c8f05d164935036e379437a82e3010a78c43093692f2147d7e783cd86176d5b70e1802d6c58c05e41d0e16399e7f1ceda2357903f6999ccbc79e4bedf0a72b017add9478a1ee9c5600531c7b8fdb2ee2a88f562d9b4e6699e5eaa20d9b96dba0b313ba7549046db7fd97bccf95aad100315a4d37ce9ae4d7c2b9aa3068e1a2af02db870408e1a386a7080060d0f0f0f0f0f0f1a768918a720fb5dc8e81a79f62fae29c8ae4947a9a5521d84eb4d88510ab2283f0b66619933341f6c7635be284e88410a82080db7be202e33fe079b5a3a2ce08205393c3c3c702ca0051e1e5fe346e2000570e0483710da8087c78787c7a9b11ce8e22444e30b1c1c6308314641186d0db929753ed8727481878386094efa386b2c201e1e0070420c5110a39a3aa9f16df4c6145a28487539bda53539359e040569f5538c31da9b42e67c82349ec5b266e9b8a1d11b420c4f903ca3d58bde775bbc9d28556ca6ea330ba5f960bb5183861983200627885eb9efe1357f2f0e1ce58b16181a773636e0e15185189b208b0e55974578a9a0623ed805313441ca41a8a670ee9b5a7334722412b0e5480ec804597ee584107175594e3725c4c00429b508e5a752884f4a6c4288710952d220da4733a78bf179228625d498d4fe7a264b5abe2062548218264a955f705dcf3121c6f936875d52a9edb122c6240872ec533e88f320da1892205efad07ab639890d73e620462488497fbac84d591946048962bc4d5a175db4e0468e479066f6f38cd418257bfa60bb9172241c5a84188e484795a5ee85334da746581de77a4a638bcad9210623889b938a295ef21741d07bfa42293bb377f783ad0c08311441eaa4ff7d367cef27935e05622482f49f398b109f722da640804672c00c622082a0827aebbf5957687c8f10e310a4b0d5281ea48884188620d5a7efb021b3c00b057878a0c4022f8c358e188520864a31a577c768e579787c200621eae0fe71d344bb893fd806e1a62f7952fb32d3e883ad8b2e0a0d0f1a08150f8f1ae506175e180052c410c49b72f2d3544c27f0e2c67b78d88d1c5f20003e112310a60b9ee293b8e8a50c2058efd8325eabd6297f30ab5f4db98a56cde90774ef2ec9ccc9e2553762f4e1b837ab793766e5149ca073a48002361aa01788c187945b68eb20eb2984408c3d1065e74e43dc966bc77a20556d69d4fccfc1548b9187adccacb4f5dddd555d4c2f25ad660762e081dc794f5755fad7d1d9187720652ccb4a0fe75f971d881934c90ab631c5949d0a31ea40ec9ca7f1fed47cf63c1dc87ac2e2799ad31cc841541072c13305cf243910e3348cb4ba98ca63250ee4d826ac747d0a7d2d194062c0811cc4e9ec97b3c938295f8c371083e5ac59fa96e6d2c60da44ac966fd648793d1d406e286ce32fae3c774aa670339c7cdd8e11ebf3a366b205f7fe5c5a07c64dd470de4a465ba99274e03e92a3cc99c673ba85ad040cc0d2f2ae50aea418e6720f6f9a969be3aed509981202c25d3d9e632103e89a83da17b250341ef5bbcebf54e97c23190638e7d7c9791995a1703413635014f20e9fe30e549e804f265e7d3a0e33ee79e9b40d2355177ee1b261056ffe2ec72ea8e0a5a02496c10f1396b9229e9aa04826a0cd9e17e96f7c9241083f8dbd8a4546c7e0d0904bd77791dc22310a367f4ccf065aac2c708245da5f7f2dfdfefc12210848dca75a777a2512602292ca5b1cae02663ce87402e15ab998296dbbc8c104ea22b567a91a920902c27111f4fcbaa7310104825b32a5f1d96469a3f20e864495f8ab41d8bb10fc8c9aa636dd7a707849d11daa259c98a9ef2807051e67a4bbf1d10c532adc7ebd31ef7d201e16344545aeed89fcc1c1063e7abb3d30a07c4b4a2e9b7fadd805c5d513fd5cee8c506e41715938c124f49752d400d88964307211ebfdd172b000d48b2db5a474be7c9066741dc76dfdcfdd956499605d17c3d6d8eb4634190a7aedc6773d031b0205fac7b0b9dfb15243d313df3ebb362af2b88ae99cb35c785d3226c05e9b47bcb8c320fbb8d15a4bd74773945efb8a75a05c184d624448e5441daa4dab28b8ca582586947fe7be75041ce2f2372dc83ea5b780a62c8dd27fda34d6675a620a8a5e4e26d27f3c75c2948694fdf33a85299e1918278a674d38cca25e4894641fedc96a3f3c7478db228c8f956547835992bc984829cf9f12a6765a8a06150907b4c84de461fd39ffc0469f67bd63e43eee6d613240d9d4f9e39f7f5bc4e9046d3e7125dd90b257382d8663a17c5a2555e6b1364cfb3a7216f7984b69a2055ea98fda464837b9c09b27b0cda4f4434940c63826cf1a25f290b96298d2e4192f3b1fa8fffd5b1b604496b86509a6d3ce6182b41be4c3f71d3942d880a25084a6f52f154aa6a4e6d1224b1b9a2566de5b4eb4a82e079f66d1f3fc6fa2a1284d3e19ebe458e7d4e43826071f2bac55ebd83fa0872f6d2a995b3e90872d0289abef6d1edb34690d2928e5b671fc446c70882f854ff324d194dd522489f42fb62bdf55f5a11a4a4e19e44907793c80c73b55317238278157a693e646bce7d08827bcf95754cb18f9d2108e2bc32c5ac1d164f2f04a9463ec5735995d06e0621889d52bddc29ef09330661a95dd1e49d37cc100439c94b2998d8b7fe240a04316ab7b86d8c17d33f409094b835cf24f74ce7fd0762fc4d9b333387656e3fd866f881b4162b8ce8d2bafe4d1f08aac34e8cc991192fc707f255aad14c0d9ae22b6298b10782ba183a55ced3962caf0792ab766fc6eef50b33f240fa4b9129fc35eddb08071f61061e08f2ef3c97f83d2532e90e444ff993451bbb0833ec40be91a562315d0cb31ecea883ad57e6699dfba15e95d96d173c2f37830e841319baa7393407f2ebc688f2a4fb62d37220e73a7d717f1697712385197120c6a8e4fabea7368d100e249916b3e74a9defad7f03e18416a9596273a8164161861bc8561ab4c5a927a53c6dc18d1cd7821b5c2861461bc8313daae9b2cff639ac87196c20f7afb7ae5f8ca584d21ac8d9a407331d213590f2ce45edf4e8531d4bbcc38c34902cbdb43d87c9dcd65890908db336cc40033928d5102264ce1988b94ce5300b5d5e2a6306e2877eca8aa62e03f16435fa7e9ce724ef29cc2003416677a6f81a35b8d563207b1067767a945cf4c5403ccf41de52f30819e53090640cd9f4a36f31bc0a06a205215b2a9478f1b87c81ac56956df72aa678e30c2f9084e7d42626844e7a341c33ba40ca954dc9a5abffd039db811cc901c705b26ca869be5fb8090633b64036a16354ddef52ca7dc10c2d90f3c81c7567a376d65fd45841b66046164866a7a24853f7a515241bc9300933b040d2a5b46e78d07fd3b88d30e30a84cd516ebd5e3d2adb1261861588af69af3f7bbcae9ca902296455d26ff7769e440552fdbfc957c93fd8520e1b85047a43983105928bfe678b9dbf27b9144862a1a63cdfe6ab960784195120e6ab2454fca01a9f9e84030ae439954cf76d4adafcadf3c18c27106b4475d41c369e3cefc10c279084b6d9b8b9ad3e2b7db0358158ba45db4e87178b231388da213f4356b619d32f8168d97327d1b51ee6f2cd83194a209f255d239f57ea6cfb604b0271dfe7abcdea664eac83194820dddf6a540d2aee453e024129ed71292be5f2661f6c8983194620fce694d20525e32802296ca55516a16bf74b1f6ca774f1051188f71f742b94a9951bd5e822e5a8f1310472ed6c76566f4cbf19fa0d6608c10e9aaf5e83a70481247bb5e3958c4dc2738040140b225394523ffa93ce06337e400a69ea17b293bf89bc6830c307c43215bf64fe5ce1e5adc08b057878acc08b1b375030a307a49863f4d89917d353cc03e26cc7130f7616d3ad193b20c5a8a9951a6ebba1c315f8008d1a337440744f714ceb8572408eb6a174ae70620bca8d1b4567e080bca5538867cf419a657c6f601e336ca0c72a21dac2667567d48094accd2c9f9869e8940560a31566d0809b9376393fd316a02db898c0160a60004aa77ca1811624091c42c62c487d3a9ced05d33b9dfd602b830c599c9f7ba54b7b5aa83e580e326241b0ce973588ca1a6d5719b020d5c6d239c9682390f10a529b6812b9127e316f64b8822c17cc92c9cb1b2bf6090119ad207d8eddaa397dd2edb382b0234466b7d31d2ac6ab208eea0c4a8573d90e3219aa2096f86f8ad60d2f9e061a8ee301b697910a7212261ee3c71f99628292a35141f2e44169888ca719b43c850c5310e52e28b7b079625a2f0b828c5290624a1ffeb5ea74d3f7c1e9e0f0f0c0812387c7021660a346f9588087878d1ae5e3a40ea00e324841bc68a7d5c457b457c81805418c8a07db542a49f93ed85c862848a6e599eba735e496110ab2d5dd8e1edbb477c2842341414ecd41c97b1761b9b9911c01323e419259d466f492cffea30fa6b187647882d826d22f633548cdf00564748254f9b26f7251da838e1e199c20a7b1e8d5c9520a36322b6313c57aede52848282017f0f0f8e204876568825cd2b252740da73b0f818c4c104b68879136d6b5fe7eb0e1482748010e93021ce90119982076d2bb172b4ae98c460b6ee4380ec8b804e9f733a8fe0e9ae51b28a0e1450e4b90828ae13db52db4e8c6858c4a90927e8c92d3234c058f0c4a102dee3daf6eed9edfac6743c624886332b21faffc607319c890c41e54c6154f31a9d2638b056c9163015b2c8046d9c9880451e3456932d1d2d3386695900109d2a7742fb1ae24b2471f9c825700f304643c82686de177dd34737dfcc14623478d13d4e8426f2d070b12ae238879aae7c36650eef626198d202733b1a4e455cd7e8911047d633fb6de1574b62db87080e690b108927bbed14d1d5f54db3213c8500441e68c9963b8b212adf9606bc1d7405e9c60d32023112425744afba93588604c74c9dbdc2e2ae28d1c36081e0c641c82d47fb621d74ac3e76fa48f15d802506a8195391b00de20c3108415f191317fcec8ba1f6c4e0119852009cdf114842a3fd858023208418ca3da4d59990a1f4a1a374aeae2a003640ce2cd32ef9777435b224310a42c7a773507e129fb409047680a52cc72ca68794090ed94ec1669ca3f08a13f10e6cf4db3847a91173f103c9ec7cab3cf24c3a70fa42cb9900dfdf381686ae46cf986388fcd1e08de9f5b73b3a52493520f24eba4b97fdbd40555c9035183858ce587f090a8c5d77720c679fc66bc1b3927db8160392ce795af1da1761d081663c5e6202ab2a9d2817cfe9e9b84a5660cea1c081b42f588a7cd3e7fe540be11a35183d05bed691c0856faf1ebf72d360e07c26e5e0d9d3d1533cc37102bb5d976f43f31dd0dc4f8b8b9a4b9a5dfc6369037cca8587ec9b715d940f63bd7902df2a2487d0da4706954162193984b9e1a481964eb5bf447828c349034738852df4103d9f4650ca3a79d8194cdf46628135e4aa66498811ce64d53502ea654251942461948eb965fd5f794cc5c92820c3210cb5f47be52ecc7e8d9582ec81803e14c9d968e52b18479675890210662dcdab71773d9dc51184851db3fcb92a5d2a503840c3010455ed8ce0e234cf3f7c1c6e704c703c98b131c0f4042c6174896629525acd3dcb81f6c7627381e48a40c55701890e1059210723a27fd1d65b4bb0fc8e802f1840c4286d2bb4ceff1f048eb820c2e90ce4aa59c2c76fee4e21e646c81acad49c7aca64d43787a90a105525fce27cf52f34bce4b9091057e5330f95229a73ed8ee7420030ba852b962e67e16f30a249daabe82997be5cb55418615645481b4b5a12dc75cf69f465f208a820c2adceac9d34e37bea0e10552ab9b818c291057cb42c51699e4de23410d1c5220688ef7b15316a39c9876901105f2e58c71935fdcab07eb20030aa47497223c5f89ad31e720e309e4244b783e0ff7190e7302098ceda8746f6503591c100602a14030140404ccf79e01a3130000001018140663d1603852d5f501140004513628562e281c241c16181809c4024130140a854161302010088541a140302c10334231503b00e90b0718da21948d6c14edbb0527e450b7a1a402d5132a7944c55161776956ea10284c500e50bc42ed3ed43d94caae3b8232012a0714e340f52178e05503400548281d8a00024939285a50a26628e08f6d9af81ba563d7ac1eef19d42f15dc27d39f70416d56507dcf92b1bb8050181a54f7d41b4c4b42b9019512547e5040cc05eacb511c08cdc102961b43745f87a06a066123f9fc05750c542ea856a1baa12c40916ed4ae94f8504440e9826a09aa03ca3a1409507ba0c484220aa51faa75a82e50d6a04840ed8512038a62a268bb41c11004503750ab42e96114b19aa2ed0cee91c5ea310c4a1ed4225078a1b40005c44b9df83eb99380236c9a5ce57b3170478e66d611201bbb90bc11870715790f1643c35cc20727c442128b29ef4f5856aed4871a53e6d3904535b1fdd069ee2c8373df6d6f5b950276a9702fc6f37879d1f47be17b6e05b7be7a78d996eeaac5578325c5ed7ba352d976827b82c477c1f8d60c52b994abf2f0f964549d58011e4056884aa7ad3cc7085d96d8fd322e912466300043344b2f082182b863ba655bb844791c470d03434016bc5bafd361a0b01f1fcd1f298586bc31ab7b02099e8779e14b4d0d1a2e242fef1534400c0752dc5200f83db59a90af9e4fe3c5d5059068d6a329f82e8378b02c465e54ae3c1d42b1b430e2591698e75678fd5609537042ac037ed8631a997fd826c02431e1c9b40aaf9b33c715e7468701a5e3e21c00fc9dd3df55a933d995af5699d23868af7a24533acc6ebfc59a8119589175b24ea03a9bf62d02b460cd3d1d0c7284b955db9dfad42c28f667ee60166d76dbc9721a41d034ed769afc338310703d6d80d21dbb33ce7a656058b26338681c9af2802e49012d3cb8999eb3656c8dd85ea909e996caa4c0947fc8c374919d7a8db4fb0dee12e2eb2ac686baa32d4aaa59e529d1d7b89b9582890e0668cb7f6b78f96ad574844019887573ec7812aa565cbbf6bba41c82c7a48b411e57df223ae071f6910c1c5bd6fe59f1d61176b2371d233b7a95910da6cc731b9b67dc12108c6f0ac55f3af3fe8becac216f69bb0a18f7a92ccee5193a9849e095cb0661d98069f08f25065e523ba69891d89b0b8c1fe38312c322261e21541a3ac2bcf70efbf887e10546c35a4964e489c04504bbc81180de3948c92d4bddf93f72ce6acef74807c4a351b13ffe344bdc1a8f326c255af0915c473288862891fe1beb79195fc8000a9a27ad89866b2b2001d12f9c05a922307b73140b0e71ba9413b47ca05e011109c1fc3e0216178abce671964d08850c0588a54256474328e63a1e703592e19b59fbba6d910f08a8a347a52995c866212b3491c848cd5f79667f10ebd3aa8bb45cd3587b8df022d0dbf152112080d2fc8887e6d0b1fcb6e5f62a91ba6c707b06d8f73a928e4f4f47e6f5505a449ac49254440d92c47573a455eeee5d4f453eed2ca95d8c3e21e7179cbff05cbeea825797741ffd546fd4396ebb26fb4eefd3ad6711cefdde6bd9ec49d9653360c89b29cd6f952c68363da5ee94542a9e6bcbbbd8f28cd2d5eb81aa0635b4c2553c1ef2b6c4c2f489d9dbaf9f45336ec5bd9ec513325c5aab682c994122db71c313c715c006733e59bc45ea3549dfbebb956a3380dc3cdbb5e0f01601a0d52da4b743033201fddded1405e23449f5ba22ef63952077a3b196d4bf6876fc07b8636028ac41493b28f0718dc5279508e1837590c034316ba91acdd87c0f2ec97f4ac348948079ab70249b7198bcdb72b1b7e5b38189a3cf41cd9ce44ed0c73d5e0d250b98a5dab44348189c4d0fdc7816ff673af4a7c72cb3d675073a6c54826690f87a0f429333e0299e0c2eb0e4989a4ade18fa80b1a4fc4787c5dfc938d0759f318a473a6ed78c4c58333442a65bc765b7ff4706c3be28a4c98b546a152860413ba1a034ba9028385834475bdbf4410b8126875b7fc15ca3074c3456e936da2104d69a6f16f0314b30710049a1153ecd4df8883943e2830e2b98ac7b6d5791c36cfd4b5eba2d07f2720d8a0e1e936ecdb8fadf0e5f04ab72e9e28eb27f67c47e2a4828f460565172008004a91cae5bfbb64092207413557842a2f0a3f2f755be23b93d397839a636d97ef0da0c5e0ab37dc47d590d01e0e95a66935fc77ab010338e9d615c84556eacae788b7976dee841d9bd8bf667b723b57a83775c6e45108f720e35a2d8f3107b4e144310b075c7f2f4035cfdedd7715b33bec6d371856e7023ac5554f47e581e4f69a86f4130eedb40cfea0c76ee2985eef67a99a53b685c21ef692fd68988b3f371daafb536a41d70949d8f9fcb8faeda2d614aa33b3bb5595d1a129b1dcb907b244a6389a7e071581f08b9d35b5805d842ef58faccecff909f034ce3c3440846c143798efe23f0e9a55da0fc452c24ce6621135e875da2561fed15093a34d47d846fc78e26d0aea84995d5d97553553aca6bc334f6d38e913bde7b93380aa44446c5373a498a70374272d8adc1f79c09b0af8c068a63970371ae0ae64be7fd20738843ca775a139b427db5bf2874257f29765d290f8ed16e6a495c07db94f4405c47894f893904106b55827500690b9bd01b1bad88f40dc303f843d0d85f30e51f8238c9b0720865771eeb1fbfc477f77f8c700fd6f10ab92ac81c4dd554b5338d4f8dd2c14db053e8b63401e8b207d13d69923fcac532e25bf52e0236427e0eacbbfdb4aed7e513ea8aba8f0826f0501605bc0a8453880e14bd277dacbc71845024a23805fe9979d9b0a6866288865fac158a439607806f0e1a55b9f07123c125c420213097e426e751c72c6aeeb1b9bd0ed01dc0b2f9ac3a67e14cccd4182cf3a6707008d1303f88a10a7a55a59930666444ceb2418cf659c20f570a03a076faa7c7db19ddb97e8e91e0540613729b697d71605c917b917ff4c158661392f5790e24ef9c826ace7076142cb78b574b5a8513d7fe4560dd4d87e0eb7535d9801be02b85818451a74fd277d0d415ff6c2f6b800d09133c0e8993d2ec288e4228fc07f043e43b2796624d3b5ccdf85abf941f4a4e30789d41e533d025a2f7aaf88fd7024e941fb9bad84f58e5c1de5d48aae10c24910a908b025bb2ef12f3eb91722f64653e61d21782a00f83dcc01c7b45fda4b943c951110be8fc5efa147d0e0471533d6d04848019ada2ab20b6a5b9102550bccbabeb7129777830784d62a057e93d8940579ad2818efe51500d132890ef102ef3639c3298d6eaddab3a0444fa9637e244a8bd05c857e7169f50ecdfac8ff5daf1cf684bf5dff07793b3b879232be8e9a04dd9d9c853e913721991ee22e2406687f22bddc56bc30889b457e8d13b9d334b0e66e3c046f3376d509369c451f720eb99d41ee5247cd6cd87c32cb671b3c9a9670f99c6c5791fb3f97b5ded33e3a0cc5e6db4a7084472f354925b6ea3a4ccc27db4cdca8fee1b522c653bfb7a1722a051199464434fdd0f92bc4771ec62847ee65e190a24aeb0938e96b02fc3087148ec27b8393c8f6bc5eb76d31e7f9ec4d81c2f867231f0042e63c71e66f73ab8ef48d86c1740ef8b8285cae27bc4fc5cd99370ca2d89b34d1da4ccecd72e2ae5c46c7082c39398a2deadd84c4379815085eae6794d7d95bc14b85b41b08fa06bc7ca4c94d36c8f5dd1f82a1e55e942d585cd85c93f19d57a9af271608a82c00c01be45f3ab1a662c28c18dd7b3d3d5de4c40a1fc911ab85a135c4b48410a2bd2f5f7bf9df9dff6c921766d01854a938141d9c670d0b369a8126968f98015af2ea64e0394f74f6e41d0da6df604405bf13631a4804d4e9e074b891f4af2f3618a78ed2bed63f8d43d2918de733e44781b5198168a9a41182a744c196332e11b6fce68a8d9567129f3a85d412b08b2e664069c86839eb0dbaceb2ec0abbec4b69ca8c08c96b2c9b32f31481a8a8c4d8804ccc2f998e92e9a9d1955bae2dc8d410b1682c16127992745fb7c08b1f2be9be29e599b65a469a3023c3162839786a26bf3b367c3b37eacc29f3d3cca3d043b460b8892fd95ad95eb42e2f24fc5b9ceafe8918b47460112a7f4fba2dd4318b024b0df55554977c906181fc61ac03458b61dc22853dc12d6feddfc858390928032a2c1506ed5ea31c31619768498f6f649fb21f9da9acbd9e1baaba8b91adf7c076c76da65841b4502e32a8a529960fb32fd3ed2b3f6af24c9472d6bb21c4a5a5a27ab745779f9dc1ff353b21a40fb2c15ed83bbf9e49fbcb1cd8c4bf7be7438ef54e7d3669d42102ab2a47aa7aaad5df53dab1d39f25b4d8f5adf89d578c37fb887e548c17d0174fe7aba2f24128137865569706ffc80d0410466423d8346a894bc8d55470d42f73c9c080dc9b554e9874c172479c35f5521f7a9fbc2e0121d6ecf937aae7af4bd03c51bf2e91d275036c4c9603b5d0a9b2bac7295c854bc2a550ea2aeedb4fd4d14a974da0938ebfc7e6db63f9ce4b7dd19d33f350224a145e890c56f697f73fab10ed5db8e0d2cb0c955bb01f009d1bcaa557c32c9505d9394321f5340f2eb6c3c2ba0831a02458472b3c8d801438d39ff60f945341fe5ade48f0ad28600e0eb33abb7dcf6f337050ea1e4e600ee1ae0b7f0c820ea0c10dd2dc048938bc423d69adb0e5c0f1327a19f08042d14d5853b1b61c5077d1628cc7efcd45b3b63cbed6674ed4a46e5378d6ce1c0072752459f67b238252d5f550359275d2322de106be9359c1d2948add345e5d91cececa7d0bd8f1cb3a7e2baf67c7c6454bcba57b0f1e7ea52c0617f5044ea120b13227420ea8438f0e34721c462cb11c4ab19ea728030c14626d1d0de9e5a7f6dec2109d94684ead8cac61fa88096563513484201764cdba1ca1c56328995efae7c9b4140ec82ecadabf114d032b627e968e6af50a410524d71878f4bc66e693bd9bddcbe708992243746494e008a614793165794c9fffae63bcb513b24a192d9b9a8020ea216c09700662299ab6bf016bac777afd7e7adb87e34df70519122f9d36829af4706288ba0945320310722a58c9925ba9a9f47cc9dcf228f0cae849898ac8b163a5a402443b4a2f6cb7dab1955524988c2ee410bb9de423f4556bfad90acb92f5e3639a3bc8bbf183082e3caf1aabf8031ca08b92e6448779eb378b108765c51ee57173ace5394755058b560a99f59aedd8cb8fb825930a55bac56a4ae502364fae0e10466270be9ccf2dc594ca535787a58be1518c062d1582e2dc70e433a5a7f204e82c48322913083f6fa2bbd9280e2700479d769a6970b8bf334c218fde8fd49283aa63a173f6c4e6d4ec73d8e695a061c5428be834d0ccd7b0c4d53efe4fcceeccf8714ea628deb53a4167b2c4e8f82d9e2a7e8f1737b7211b3ebcdf47f32647579eb68687c4bd42e849a8627a273f7fd29a323435af2539ba9d3174401c321ddb25b6e604782cbe1c4ddd1d0718f6864625a4923f31df2ca62e329192236c5cdee3e58c47375ca4876e28bf8a024f95d4a00e212cb45e0663c4ca76e63e013e281948157f811a26e960cd8301d362036a61122660f9f165127cacbbf1830ef17e533fc3b0fdb2a2633484981444a35f9a9906e8f4a7ecf428e4415d4df370e55c756bb23f250f16463d6a9bbe62510fbb37d6a76200613eff418546398c003371d28caed9e1d55799537bafcff481d45d62e633ee730bf5f82512d23b0d2e91eb3a14c112f618cd78c177085c31d99dc56d5e77e311f70b337f623c32975f470bc8f2debbea6306e9159e508179c822a2a09bd59e48745f99558cce348c67a10c48ba900685280b3b7eeee8f0ac98a7256f92c618b9908f17eb23c2fa79c7bd5cc11980f078211db81cc421218fecd59f8dbe5d0657c52ba6315dc681e1bb2d818ae7e83e1c36515ee98944886f082b9c8aade48ef75db04a6b35d33a42003105fd856f19816336807f4a014a0fde471513e3c0379e3a6a8926154033e5655b5f5a72480d1bc0739f16f4c6bb3fb7f5461a1e38e7fa39804e07c22ed0711ab2439718ff5aa989abeae3e3dc2c92cce8e84053866332f238c81f24ffca788a438345a86ee7f39241d63e3dc6b57c391ecc719849b46dc1b8dd0ea76bc4b5e4b653489d6d512645ae027eb0f21be58cc617ad0c0ca444ee0141fee5a76842b337b9681a814646ab4c578be17333e93e6bec3ab92310af1538a38ddb61754cabeb21860d1c02889a535b3882f420001c228c62d0c0f0448e04f27e9799fa2c062b339c667fc91298733c33fc96171c142a52c463b52019be60d03023540d615b638d471d462bf67dad6cd98ff270656ba31716054d495c26a68d424017b9c25aadff14a4c2fbc24650c3510b948ca04e71cd638231908b075f79525c98f6a904b0645af4d1aab58f4e6dd409fb237df1a699ddbb608c1fffcc6a923f46cc07a45d15be4cc7de8bae70c5c3cba6147de727db1a58794c1eb13eb664cee0dd0666e10c7444a66787c8424845fa20279a2a1284758c30d092c1e7011213b39e01748c89ed1225ccd4a1916f002f1f13217516e020e5fac9a5f4a27d7f92834a1569f68fa7c3989e2cf871d2e436af24d750dd7023bb951183172f26f93642a7875dba5d015a8b0c0c163eec1eb8f85ae06e6c5326785ee7ab0fdd295bc203c1824529f5e5ad5baba8563b464730c61f03c2f562106601e0adb7ebee020b4e300cec0d7ab624647e5cdb9eed45559124c3a4aa17f4d036bdd07cd66c0ecb0085101f7127fbb70170b082da5684de81b53a334c58dd1b841b2cf42f4c118a7b6b856e7292312363b9e3f46c7423cf2a8c7d8d8afa0f468495046b73819ef6918fb9c9409026f1602b4af06c3bdf0e54b31cda94ba68acd0aa4dbcf3a4faf422adcc883532244339a06c5176043098cf23bca61a615d144f66cf4ba9653293b8350bcfb45e7b4becb8284add89e5e7679cb11fa199fa5c186342bab4979985d2bd00b7e15826aeb8256cfb5d835c770379a42aaf35c1233711c103cf44cac21028d0db7595e9e58c560e3f94f4e3932f9db3bcfd86b3643ff486aa68aa8a0aaf9e207a94dd359c920c3d7b106bbbc7f75e2b365283550b065f04d6b111bef6ff9d0688cd08aeda409853f2a1e63c334836c9927b1fe9c66127a33e7f549cf5eedf9f067b20643a43d69c2f0b08333c27097bf926e8776dc7acea9c15134096393053404d34f2f6873855b454eff7c6ecba979270d846d2beee2740baa7b3f3da1d9b9aaa9e98ac06f7b152feaead7e23cdd803c140736bb24eaeeba6041036fa4081ccdbe36037bf6d6556aafa2b37a21c2e48469f9158a89ae4a84c3ea264a5880a6fa09b5bff8dab575365cffeeb3d9415dfafd64731f7372dea6c197063a58030b6066ccc552b2abba47ded72ee5441ee9f521fae70631dea14709630a3dc8d07ee91cd20c3c5171a810accb5bf1885de015d48453ed1e1406ad51fe566831deac512a217669ce3ecf38b941da0a77a194a82ed1d7563baec3fb06bd096726446dd478f0a33724b2e1f79c643ec4a674b77e9b793ab7916b8a18d95ae876d5ec98434fd299d8ebbd9046d3a380b1f43c4d60b510238faee9624e4d970ae615c597c0e6922d617bf3757f0a91a969498ba41d3d8d5de1275ff645cc030cdf62115df7a5e6dc15bb938d1820792dd02a450d1eca93100346906c0d5ecdd6562c87b7b1026965abd86971f8b39d155676a17d1dcd7f1b7350072d1cef5b1fbb97200d3d90ebd85870bee6972703aae7a8ab154a076516e7c90a0ced30eccf6bff180861ff688a69d2d3bb040dedc22d7f24f969411a7dabd5600cb0d8bcabbf05f051960b1a90537c18a9086e1ad5f9288c209175d0b59166a583b158522b9808cbb2930954bfde185d50e7b07b5e7551f467ad3f06fdf043c7fb8da0300fc020f2b885ffda05139f716f76500498a3c3b02cf0a6a3fd4ac2b3e468f9ce2417c717c46aa9eb059f39ef44b09322d9db11f59ec0606d868a555d9684d8cb471ba61515c149532b31944775364b973da7e9abf0859aa41d814bbec8005d353a17d058a9d29c3e92cafd0d1531e06a9fd07069b4025427bb423b75b32d2d892239914a7cddadcf56a49be11f3805d87f16448f713532b2d4d09f72f432b604e078595dfd452a93365309ed55c157eab2f157343e56d5f15a2f657016fa3d1d72f96ed4ac6e2932abab78e0baef1c83fd49ae5c5b6d778f4da23f9e573764ef1cded9d612bbc90c31c9d0852a25591fa27ac7949123348a4357fec37f65709883fc640a6754f84f8d030b42ebf4fd11c1c5a0e3064ebc5fffe7fc7b611e305cd601b5c9336e531b52ec04940b338c1fbc212b8c736fe0c2089e96b9f3a543a74e41b66edb8c4a6ae05a95021c4682903ac42246038b621998d5a0894cc3d839268b75479e228539c7b6c5b2b8d98fd68306a747f37a8bc56e494f2e18c97ec2606308503952030d064dd76d31e7008b341389882c1de4ab988e5f7cd915c9663b2447408e5d8a4563ab12498e85177009a09b02813c7e7429fe1c4f001d1418a09c3e023a9f85fede18806d9f189a0a37f89579225dc33f8531046ec6f78f9f7827558b74d26421046a23e3a43815fcb701726d2e1ce1b55decf343ae93dd2db5501dd4dc597b2d8516fff02925832689b6e9d5b1bd5a6aa9b28537df82d933a01fa82431481b48c08584aca2302aa5a33badbf65095dcbba55d03032794595fa01036366317ed52d68946d93c7d602f51a124612a02d92ad3b9509d52afc24dd708a2105aca456955eec4452574bd81d49cc403d49405ab41a509df0830d03a620955528ec4a425105ab1d88ab8a6357ac6359c9920a4f4c18f20ea09611d77058135931f40811078741471426efd66f9e9bf73cf4bb8f7648ea308176f21b6027212f441f8158a00e041a846bebdf14f9d06d073d888850e0a1618a77b2bd3741e67e992d3b09e0c9612eb776df13df07e42fe47495236520c81ca30c9e7aa75c9f7bd8ea601dbc8fb54ebaf19a42fb85248b9e852e94e452e6dae5665fdc07a229788a4e7408ebf066c59c8fa3cdb02e3ddc9ec696ecae75cd5f8e6c5c224c689a6eed74c59ea7faf6282646f3882b7f63754b0e19adcde9ba074d417eb759145a673d33e1c32981b811f8fcb23a885abb3517706b67b3f4e66f09ae76d1230751f0f479d1e156d62b10e7c9f474b2c61f3b7f4ce2494a011ee14528468997155dbfa81891103456fee1666a04732e3109bdcb836a0ca2510611ed8e829bf12f0675e1729cde58f04d0342cda36b4a2bfd29c6db03d4f3c21fcb48ef2470b3a6870d8d710dcc99365deb993bd7402abddc68c86a9630aa3b592e264d45b6bbb802770fa96946d6101b201d9dd869c0fa3b440e03d6925b9efa866009447ff127e57d8282c7de6165cf19c0792129004b6ec03141be15c8b46023d05516d55d555e920e46f99fe3aaf2cca04087784f42954e6043b89370006d1e74799830d8905407c1696f267ff4dfdc7d9964e56db885c29ddd5fd456ac95813c809f9988daa45310488e8b3eeb4817c0ea4c589ec7442ff7ec1e5b09f10e7118cc7a50bcda40c960fd19283dd1b0dc618328e751961a86e9e310dee49ae0e4b12e2a2d1a93d5e92a8e999c5b3fe97e1619dc6342b3d412381f2e8dd4bfc4fbe78569d65eee350b759892ea185583a29f18f5594f653f6ba7cfad00fcd33fcaf992e399be9d3df4124ceddc9654bf4b8726b612542bb11a1d01c3ecf0fb8509438a64a7138a1196cab24b7b580acbcb1a71dea816be659ec597dbe848706183036d8181ed50008b0a67bae2135d5ef9880968c66490649874bdd83d84ef630ae1a153648b2e0d840370a15d0a2f76e018b02a0cb6e0d363634c1692abfb1273aa91306d8d4c77d96159e14dba5d526bfeb6fcec58050d85c9c253669d746c43a3256babe63fe0eaa603cd13bf4910b33ad75c1a6553b9822a2acbda745f8625929fa1907f2f73ee84c428cfcaa55c652cc7ef2143ad2f5d77bc7db51ec0ce87786288bca5a39ad06a8e460af61fe296829292ff14fd008e089d70834ac191425c43b3a34c10f19f00ccdb639541c1cd51e6b21db33b70f5bcb898e707ce2f9bbf5d0ee5acba5bea6249707dcf77075ddbc0f4b6353bbadb2600ffcea58f1f09f4cd402c4afd59ebffa0bed18dc3953772cdd689c2c4635bdb3d35f768b795960a0c98083847b9b135d1921c5d039c15458c7dd82be1e5adc2e61da6fefc311fa43c0638c83875b32898cbf41acc11f44d94b0cf6ef4b2d0e08373cab80e059e0fbcecf592780ee264be7ff33dce50e5756f104ef45e87540f8f5e1a78f9772c9660efd591feee60acaa103c39a7bba4476a3fc27363904915280082ec008cf020abfddb1effcb30501aa9b4d646899419a5819453f8952fc348a88eeb4a5a0382f72944e22ef166d09d5e8c06fc8fb9808b487cac3a84ac4555179c66d3186238ac0c20c2bb0a1537a95dc0437cae92e58df547754a3cbdd2abaf32ee9e12e41c8094b053eb2ea4a75c00b1f2de4ea24f356cb87deacbaf436a3e07d098d138965aac0dfe985aa8b3f7eca8c47b6bb36fa9e154af9e7cafb2ecbdb0a51eb653d2f2327b0d0a110a7f5d2e2ce2393852f6b28e9d77aaa2fe6f83a967aae95443b8299aedbf0264b14fac4af5e2276ed287a40788358950cfc95c8d1378bdb4239b91bb9af1f0bf200bc07af2ed4395051a44a5a20d7e8d205dc11fcd9800416f4e2a060d4b98c549e217c72bd47557a0723edd7ecb1a8b1d1c5e8c780f1ef9c49b085c6e5fd82bf4ce799639107f051a214da0d03a261fbd56f990077440db3c353a32c79778bcf64d2fd09a1e53e9d77bb7e2515a9bfa60fa0d30d84a180246cac0d1b8cac9740052b046d66214b24cbbbb1931a872e5596f0f2aa89db24769a332f651649454fc0d0e06e086796bdaeeb8f1465c2e18d42d5d202b2ceb9150331f0f9308ce51f497f3c02edf6a17fe43c5de4965ac5f0b3476e682c5365add9f714c72dc4ae92862602c322a1aaad2ac0f4dce08f67b315438a4873a39b78782956b53c831e0da4339b95e42f014930b0e78ad2114e2ad0ae45b4c1d8d6c3eb819e91bb56272a13e3d9fbdcc10a8a6a07666373dcfbf97eeafa94c0f2c667f17a5f677dba5dc7bac1297bd8234d2b178dfff60aa7c1dddcfb53180aebf1a2e2c20a7767b955a28e695a5646093f4aaa4df153cad65270ad3ec7aeebd5aa66692e06c6118b79a50180157b253cbba36d7db8cbe858473d7ac274321b9748daa7db990c88596bc87df3c2072e036d69519610de93a85b2e9f394d5c07a9bad16c99529daf3721e70464786323c141780484374096d326107622c54ddc89d3a6808aee543205b225109e28efd9675dd6e36ae99558672b9aac44afa300ffc194062c223fec844d7080feb4e7ca5e8203408f81fbebd86530c59a64c8dcdda4ff8bec827235e7f6adadd76c70c4d6c1ce55771ed874281ec6bfed27a866c380298170d73fb4a1b62c4b1ce47b5f31e998c4aa097c6dc54aa474f0f779c0be2f7dee957c27904d46160f0b9c0bfb4c34f38f63cdbe153b5db0980874777a26f740d0179081ca472506380df689cdbe8d75cbd6ae9f07f2ee94dadbc0d18fed21d4057a2479f8709438968a0e9d95faa3c1a75d47ce8337dfe7b5150ee43f5684a6850dea066181e57a9ff34798676d027aafa9eac41a7289b6b1c069a57eaaf274b0e4a8a6c870f97dbc094c1a6854b5e5bf5b6f79c00e89485f9fdd0184fe934a1f7e4385dcc104b470acfac92016b787c0cf2c6612f52c0ef9ac1b0e1259b9bca1c2e5ebef16a1954a87cd706b236381790bcac74481cb3067ab540074b027805ce718093e4b385d8e3a1a1a73d8bbee4700d914cbce5399d83400c3d0299c116741dbd5cc000860c8bcd37d4f48a3ac323e6b5d42149f13096c5ec2075895577bab85d453d2ae09aedaaf79de4f6c06b5501f3f262c5140eeb01ca84344546cfb4ecffcc3056702ff12ad995f94460942e11f40a252339dac224ec41796441c2c1dbd15911b941a3b06c663d5bc1b25ec131da7999eb6099a858f80799d014b1710ff12d1eab1bafb2c76dc82668d719ff2a95b2b97295b674acaa2aa34751a41b1e978bbce4553f7524c1dd13b9816988d5f7f7991de8c66ba2acc826a8e9a4af8b524f16c21ab6796e6caba2ac1c329565f4e41da67011dd6e79e130ea293ea51990dd55bd46d9ca8150fef2488b3fecee29526f16518f8cbaba0b6bef851455da6fbcc0a6af2551d231620e4df5b33fb60602c98792387b1b778b4bc199b09e94b3d6ccfc15910b938e6f19c001dcdd266364da6b8ebf8c282ad584dc6049baf9c7b4d185a5ec819298f6ae0ce73f5af6304acf88edaa9169d701172f38ac96119b3c2263e00ecfa44f1e2af798a77630f6a5bc5e31af8ff6319fa39c51996754eedbbd36753298fbb90662539cca7d5f92bb8b296991d48eaa8ffac1d71e909accd5d652d70767676f2651abe22f4bd59dac4db107a6e94d701764188db0dbacce61c9ccd312eb224bc1c2372c74ab85b8412c8c3687a89908b2b01e16a2d302bdbdb07b06c3c855630f07a385916fa1a01b2d64b9758d9ca8d3160247122aa51c2443687441528980ecac44eb415244443b249e10c80a255291ec13d3c973fe9d2052401f55fc4bfb2a3c458ec0ddeca43cbe9d8c1529fda1560d0b072e72a1239275317b7ae176146faefce26239e72fd08bff941c756e25c356b8a5b1387ae7203b99d93c533ce918f291774aa16c151953a2402fa470aaf2a78e7393fd9ebd49c34af2544495c84120ad89a790c3e124bb50bed6a9d3f2a7fbee790cce8f83603ba5abe8692330aa8be04889aa2981cc890ead911e82a534f905541e3537d0669a2015d5d38979226f6aa7c430c99dd2290bc91181ae92060243721421e82a71d058b0347f518ffcbbe4b473a09c3c57e4f273528e758bb8a8ba702cc3767dd03aab3d89da49541594d14f38ff64a6ddd1e3fe3939706e96d39d61079db7a4268efb0bb78ba014f9ac317d1e6a656f7b15a7db94b2fa79114e645832f5436fcb498b46a3b205fc08e462022af87fa43850b2a4d001c33f3f3f3f3f3f3f3f9f73d3906d1684b620939469a31446b2dc0b4a29a5b4654a6a0b8000087c70c012421ae91e000000c0053a0a0d0a4a0a5692bda881c2f8423d6c61b698f1dc1ea21b6a235e50a0101eb530ed5fd64a723eb1a2dd1b6a365a9023470566b003c7c9f1c58700bd0c704c80060d1a1eb43047135b53eab20ec68331526304e58840e2c01f1c3942308605b20f1eb3309ca724daa710656150516ff2480b8a854979479df5d8f20e1eb0302825cc48bbf495454d268081911a2315e057188d1678b8c2345b1d4eac57ea3a8d46a2078f56987594492ddd38f1ef345263a4460d5618942a7d4ff9a35f586e1526c1b39c9ef7fcaad8390f5518dea4b29c27b63778a4c22ccad389a7c412f478fcae0d1ea830899e97d3aa67b1924e61188fa19572125398fb54ca106d9d9defd82869f02885497850394eca16742d6a5648610e57c9e2292f1bd3ee183c46619245b5874a96ed5ea5284c3acc6762b40e1184c2d8b11e7f7b43a030f77eae3b51bf94f24b058f4f9893f4ab2d492f4f18b5440f591b3ac76dd1143c3a61cacaa5ef832c75da8438615ecb23b45ebad096ea4d18d73f89f0ee9cfc4c85828726cca94ab0cc8f2b61629509d39dae30a24b18136653bad44cd6bcbcfb92e07109a3e598854b3f3be5314b18c3c3453cf74a8a1fc24a18cd948fbe142b99291ac18312c6d91a95b3432cb5741b62f09884f1728cc927ddafbeb22f18717c41073cd0810e64e0a4e02109f38cec6ee8b06ca27507871839bcf817b800471820b8b103870868d060824724a2e00109d6a424ee7868c5e7571ee1e10853529e2774c8fb24996836c224f5a5d8d9f487f724fc82e4767830c2643a8c68bd7815bfc41d39c2b071b70873d0a25437c5bfa18625071e8a306f5d579e94939c52ab47228c7dde79f24605d596bea196032d228cb1a36b22f3c215781cc2a03a6891267d4ef3110d1e8630ba9ffc0c11954cb49c1d6324e50c1e853089d7f5270d935f2c7667060f4298644ea71339aa1b6a2b0803c7ef20cc1f97ea56dc1ee3053b7ac7078a87203c0261343ce001085387af5adbfebf9ca80d8f3f78f8a17052a5879c286bdad57af4c134ea65aa12060768d00823071f8c9fd331c4c8a14302601c1990c1630fc6f3242f6a563b87986de0a1079330259d5c9ee9b6b91e79306a997ccb0d255c9aece2c114e48b88f7512b39c32778dcc114fff36887b7556aec6107d3494f5151265907b328e1de25e496085379d0c1ac713f42897fc14b9273430d061e73306a56ece8a7116323bea12607637e7acdbe3861e4ef37d46c84816305ef67235e50008c7e1d3b3eb08112d87081471c4c699d82e9fc92ca7409181e7030877d339df469cb9d72e5f10683ff9d5467799212eb2d1e6e30cc57c9163c3caba9bd0d26e95de9b3b4e820666980071bcc593d2d5e92d4bedb084be0b10683360d79154faa9c530dc6f5b3aad9ba5ecf92172335464030d2810c70c0230d8ba7df4aa2eedfbe1bba4ef040c3bdc0e30c0625de26e938c94b0cbd194c628b580fd6965554be0c861127c7b1da50a67e440653e82489e75eac53623406f3a72b1d15b4459d50c2020f31982f334c99b5a8b40c85c114e792ec78c817131b0ce624d77ca58e6e11d22f184cca9b269ea45cb4097bc12084342bb13fcde2dd059334a6735469cb857d43eea8b17c6ec16cd248b1642a295582a805c349a32d5d2a65c15c29edafc9de61b2775830959e376d592a5f59f3b8029fc39909e332ea15f3b082c1dfb3ca272bd5584f158c96f4857e471396b753c170d71f46291fd9d0de01c2630a066dc9b4748aa717f40a8587144c9fef24534a679cd48e0638c0c0b1430c0e2466c3131e5130e7243c8eea38553fe9b2f38082f9bf4c8aa72c0908c4c8a143022f013f783cc1a817ca763b5f0f2718d34aa73dd94d4d288ee99cced275269862dc0815abea62b467a4f0588229d55e9493e4ab0483be20e656abcf464912cc3b52abfd94ce45916076cba1da7495144bcb2398c43b7d77dd69646bc508e6faf441848d5684cecb824942474430e83b25ecde760e7616053c86609c535aabb2f267955f08a64ad263b7e550108cb12bda9682a9e07e03c1a0e663d465b5f98cf407a624feae9c68dd1f46e803936bdde99482ad8939e981d9ff3df9d58b9435151e98cfa38a4e9d5d46d73b30ed7e1ae5c1729c309e870ecce5313b09ff988c5c98e52ca8a873bf94838a0b532831e13a254f7dd3b420e316a6d8a593eac83a313f6e0bc38ff7e54f9596a4b56b61cad1e2a74eefd1c23457d9ecf2094aeda566613a33a522c254ee5c235998c35f8793739e58986b5f940e965627561816266da29aaa645b62ac2ee315c678916b4f51e20a9358f31f36f2bab1a70d848c5618ed4e99ab0591dd49ca488d52f82083154653a5e4de6f11a593882c3052630479800e325661fcd25e4fa9ddd9aa3f830c5518f7f3c439498dea8c522a4c72477d5d25e9ff9f4485e9f6aaf2bda7b59f1332c83885d1c013c8308549f9ff9bd2292e853955b6f38e7c13534b37d464902279ba674a56d0f10d3519a330565b5b2ed13f89d325566488c220d5643debb96484c2306e37ae9e344f7e5506288c63a3345dbc3dd49d7020ad20e313a615e9beb5565d52be504186270c26db85964e6e172bbd04199d308a696ee8b55c495ae284d96564eda9ec24d9853761cee1d4588533718bf19020431366d1731d17de4dc99dcf84b172f8e4255c4fb2b862c2d8d152b5cff79730872841459a6026fed996308e96e9afb0fbf3701e4146254ce2730efa83288b126450c220769d4bfdd574947012e6187572cac944be691321c89084a9c4bf3655b28268bd6544c2d469a17c3d3ff5854c0624cc9526a85277ddfb94c6828c4718e72b33fcda449a9c3bc224e7646ff596f3e6d708831eb954517682b09362845144ecd2a81295b1087389962e28f9be935fb8c850c4f1f5e1bc543c11663fc1b20595538bdd21c2a424d1df73c7fdab3d1dc234eaee2c77a67912840c616a4bd3fffde3332a5c0893e86e574ac7d49fb811c258414db8d1a12b2be74198d7837e096df191274710a6ec9fd4f7f9ba5ba98130a73e6d79e6dfc4a40a08a3451595e2c2c4a80bff60560bbfac1e3ff4a8ee075390ab9d53ef66e6f27d30a8b8b0f5d92b7c3028a5269d6cdd72c1de3d183f874a9d640b1ee4757a30c876b7dac898fcf7c98349124ab4a0a3cb7830e91f5d37692c5e9e7c07735a92daf9fb53e68d7630bbdd97ca4942e47d570793fe4f92b5657c499da683e964fbf4d93b37428c73306dafc9222bcb09cd530e26b9d7935a119f79dfe260b8fcd1847bea7cd0110ea6501dfb1f84495782fa0683b6d59a9d0acb9f6c37188405d73db92a0811b30d26f5b3732b25c506a3e53873955d465d4d6b30f7892ea9b34735985bec92458f9d7fada6c178aa4dcabf1f4383d9ef44a9cddbff68266730ac28754fc287b5dd69065354535f327fff3bf232982a2dd4698b9f0ca6a4965f1ef74cb42e63308c109f67495cb89c5531184b0a577749468e4ae93018e647bd8efa0706737d50e3252d2ee30be6d2f4cf27a813d6b423c30bc6ba500f7aedde714b6474c1a85ea74acfb899b6900c2e186bb44cd679cb4a1f93b105d3a9534a4b3625794ab60c2d1894496e15e3b4475429230be6d8d21a26c2a449bacac08249eb4de6553449484bcbb882297fbd59c9a95630493ac9bb322144239eb2b31ff96ee325ae1c0d13429e54c269894e504205a9fa95934952893e8b12be4ff2f650a2b99c5afbb4d27793b8c48ae6c9d14eb824815c9243464fff697b22613c71e52cbda5bf8f224820f6044f1dd44798732ac92f3cfcf6c58f23caaa547f41a52a259bd1088350927a8bfc10aa74d5f13b7098edb000c36106234c9225d96a3d278b1f428b305dac919e93cc1176ad224ce9bf4fbafb13ff3f9a0893d0a7f49c143ee394bc000c4418944a3f6fb2440b61e943984cedf396ca314318cde3e26b6d8cac4e298449e9d85f96e8ce9e9a186610c27872794bbc68279db7a07750e030305263c43030e2450646c0306310063da2b38d89b39d59da3143106f5fe85f5c4ac21f884209d323ae69e71f0744924a4a4e3b7e49fafb0f880927a7cb59eb2dc47ed852c3f25c57b799b40fbf9850594aac382f1e1fea68e29f94d9af4c8c06a3cc60c61ef43319bbad756215a3c128d3916347b31ecc37c2bab39669f3fbbf2813a3359033f2605a0b2ac9f15a4bd45d66e0c166dcc1e862b29b7cae797dfa865af930ccb08329cfe5ec4348954b691d0c97c47e4b6cc7bf731b85197430957095458ff0e76014a53ba9fde8413f5d3998627ada0f3a85fe9f340933e26058afebf0ab16e4870b0e065382d8ecce396f3096124f5ab9b51bcc96b6e418323227294b1b4c52b9a6f5a82496c3891a61061bcc27c5e5c24b751c21a44398b10663fec553f2ca3e9dac1a0c5e276b74d0ae9e7288841969307550b2b2c6e899caa5196830e759c9cfee9dc1f049b89c4dc53643b2a9799aa8a56571a2cd2883f1b593a42441f5b4795784196430c69e97281ee43b29e131982b941efbe07ad25a540c2659d47f12a4e90b3acb30185354f65d91bf7ad903065312e47e90e2c94299a42f984a79ce980c6997b4c70ba64a3925bb601272a653b908cf15b960d2396a2d9ad4a93d680bc6d6ebd45542e7e036d282f94f7c92c4bc245df7cc82d1e4f0b2160fe2d36d58308d9dd2d94914cbe7f1154cad6226727c74929d640583aa09fb3995309ef556c11c3bbf429d4a579532154cf2fcecfeab5738154ec17449d259d5c2da6f65a560d21e174b3caf90b12e0a0625842c414bfee5111628187bcd757d4daabc579f6050e2a5e8514de84e49ca0926f1144a4d305e34e16fe2dfc4540b134c52a7a0cb949e97603a153bf32dc6a53da1124c26eebfa45082b0e4952418643c577ac5a970ca4382b1a4937b32445c7aab47307d5cad785dd90d352ecc3042dac450e579612b8249e4c931c353b54ec44430a7bd789ef2ec3fc9d5104cd797155fdaf4a71421984f68ebf3cf5e9d044f100cfef326cd53d2e9ad0582c1a39c20647be489af7e601c25c593f4455c77587d607e2dfb1af559269feb8139ade4d2b279f3c0a04d0e572697366307c6f89cf3c9d26a2a2f9ba103a3aa7fd6932f95db2c17c6d32faf1c6d8252fa820b935abe3bb1d3a90fafdca28b71a5c5ee4b6c613c25f797607e5a43c8b53027e9f9354f8a6f1a262d4c628429ad6072d4da6761d44ff1f47ea7997b2e0b5318a91a2aedb1309b9494ca509edf9470020b93ac54db2ea61ed7e52b4c71719e7de27fde4fbac2a0bf252ddfffe7e7582b8c2774e7c688aad34f6185c9cf529fa7cff952c45598e2d849f1b2a85449645598debe4b684fda5498dc46e7efabd4517ea3c2604a344fced693349dc21cd722a74baaf6e0a6290ca3ebd25950b6ebd92e85714bd22f59af839ffc93c25c2da72d9a9d4893ad5198d6c36de7131a9fbf1585c982ce49a1f208eb7828cc35722f36b5745d8c4161fcfdd01f3e96f8a4eb270ceae7edd2a7a825e8bc27ccb9fd5663d924f33ff9e884d9bf2fa84bdb79255a37d43e3861f834e7494cdeac313761160bd10ee2b3d4a892268cf9e917be25de5c9a09b39a1c5cd4e2e4d32b73f8c08439c8958ff2329ed5f29730bac979a11a224b98435c4eefc184fa73bd1206e9255650173725cc69afcec4caebdccf24cca692144f8e73af9d9384f13dbfd8e928ae65244c5bf29df88ad038298684e9fbad3cbd5ab5347d84d9b37c6af736419a071d61bcf9fd3111e25feaa41106b7245c979cf6b5748e1146b70a9b227416a53dfb5884c1c41725d856929374e95484003e12610abe22f6f249a62d3444983e457c8cad249a49265df83884d972d0ceb93e3584497e67adb494dee5ad10e6ef586a4e644774a5720d1f8430668e854913468f38e14ffd81e46310a654e741e88ae93752bea196638c30721cb33cde40096c5ce04310e6adf13d154a7e0739f90884417968ef1b2d3f0061124f28a957cbbdd376fb0793b4fc9bbaa3444bfd60b6def334f29f3e18f4973a0bdaba3e9afc0d35305e63f0c107e3b7d909f293e4c71e8c2798d875a2c50acf272fc6f8d08339abc4dc7d74b94afac88349fe93ad454ddefdd3f9c0835167f76d4c522622b78f3b98a4ec175bc3dfffc4ff610773e8da5267e2258faa9e59e0a30e4683051f7430796ae94a5d3d413ce8869ade88171418d981030c1c5fd8c80d94c0860c3ee6d09c5473c13c5e8cf021872d2761e429f14285350e66ffe8494a8227197b824379c1c71b92644b774db020c423c6871bd2a15ed37464c4246fa8e30b3eda60d06a2758864eb2c1343e4a756f553ed66050274c8e8a1d37542af9508349526337da44933f73b68f3498f2a7e09677b1e48ee2071a4ce2bfe491275fa520ca8f3398c35858aa14bed327e112e2c30c265d52fae91cf5e3c89cf5f05106936a5551d1367c90c12c3bf273d0e9d2c9cb661d3ec6601ccfda270959e29df0a5184c42eca39e78fd4952f14c1f6130fd8baf5dcd8eda5e28f800831d7ff345a834a3927b432d06ad033fbe600effebe9a480f0e105832a939e45291f2558359af0d1055336b1a495d8881c95d281a33bf0638c5190f0c105738a9854492f3b058bdf160c5b495a58972ae976d282393b7405d99f710b1f59309767bbcfdb41ce5c89b5f08105e3680fdd61ce3a35ce2b98a4184a27cb173bf3fba6e1c30a269327cf9be859c2e382868f2a9872c4c4b4764a39be4f05932027e458e568dab333059390117692f460424c56860f29183b95cea24b0eabe0230aa650a5a48a61af083ea060fc12b5237217b572cef1c50c5a8c12848f2798f4c97e920997dd50b3fbc187134c2509df52958d1ce86cf0d1047350c9ebd34e1a33372bf1c184fa4596a531a5622307da25984b38d1443dad27fe1f86a141638c3d0050e243090661daa27858139f3bcdaff8488241c34f0ef249d4011f4830e57a1172820e1376848e604ef52746f627b7a01d239844bcde8cabc71f4530c595d055f6997a212782e94227c1e47c4aad657f0cc1dca16a720a1f84ee10d1d9043e84608e26091b42e477495110cca3f35e52139408a1461f4030c84951f5ff232e7dfff88139468559b0915b2afb58f8f081f104b120be25dd5bf27b60f4fea4af2a9a101df2c0206444b68bb828d98255f8d88161cbe3354c2e0b4aec9ef8d0813997c926e8e90515b435e2450646ac141eb930f5259df5ecdac77b1ea931e245064668142b3c70610c9dfd6af93e2f0531310e8c789181bb854955d3ace6ef5c8b302933bb2ce39f5fcd6382104598a44eb6973f73ece7304212615262c99d276d5b28d3bcf84008220c6264e53779a2ba738e8e1723877e117208737afa609e63a227e9fd1d3a728c91dc881714401c8418c29c5458b2f0b53ac973420a6132493ce1a4d2f6d6bc4308617a93472c08edccfb4ec8204ce25759b6783d4186270853785c391153b910120873a5dc90f649ab78d00184f1746ad1e35919a7db3f1c8d103f98837ad8e5934b274f5e1642fa600e96e4202a56f69df97c309d24fd5c87d6865e680fc64ba9bf53e69fca62ebc194daf2fb7dccba2cd93c985b84127d592d4d2e291e4c49daf2ad933b98f3e5b4d809cb0ee6a09da4b5b3bed8a73a9854091723266a217430a9ee242e7bbe7cc2a5e69098b2156339642e8657d68e062172309bdcf1ab726ef5aa1d07533ad57d964e9c54bb32040e460dbb24560ad25e4be90da614b7f6254229498cc90da67c5253f6c4d2aa9d6f83e95a4f92f4e79c6a68d960fc5241849a7431ccd7351843c8924acafa76e1a36a30e513f44c4b6c9a70c134987cc499fe68133418b48bdda593c4ebcb9617881172067338cb3a2323ee1fd42166302751e7e5774ff546b7849032182be86855ad2f36ea93c138963fb61ab69f3b34069350eb14e5a4f068412d0693ea9f984b955ed2e7301884d696bc718fa5c4048329c7efe4b026cd4952f805831a91b73337f1824989a899934d922e98334b689b1454bafc142e98f52a69352d233a3db70563c8c84ffa4a9c128442b460aa93f4cd49d25287d530240bc63f71be2ebde6eb9bb060ea51f24349dba19d84ae60128bcd132ec86cb3fa5ff0459f5520c40ae6f4a673bf9cd6cdbfe610520573cefac9f2e38750c17872b674aa3d0573ba249c3a29c459ad468346181c302998828d72318fa75b17954248144c953dfc770c2fdd2cb94208140ca74e16cb1efd2d744643c8130cdf9f44b914444fbe2437d46c3cda881714187984030616e204d3a9eca732278bd8169d21a409a6122b9a7c4a9e383a486fa8d9086182c9e4ed53ef5cfd6b9603415e206409e6301d33f750799f829460548f32cadf4d50333949309c52975f117769a6448249c597eef7d2edd4b927841cc1ec29eac9c70ba6b39b0d5b448418c1a426bf6ad25629889022982db72729a7bad8d7cde810420453afe791a54cc786902198627779fe271dede4620789102198b7548ac56eea955a2a305263840266a4c6880482608a4bd331fba48529750e210408e60e2aea79b0f2af6df108213f30750942abc5c927965d7c604a29c6afe46c921821a407e6341654c9b9b2a8103a0f4c266a49b172aaee9c951d98a2e51897a399078fef8210a203937faddbcac9299494940b93d8b3b4255efb64890b837c09e2448589329525790b8385cd95fc7a3d9bbb2dccf29f154c3f86362907a416068f6976a25c9816e6b0781916947752cfcec230bff2ee41ca8b0e155998647b50524bb64062410010589c1190572c00c41505d28a1c290c1c3658b10a10552800241536bc4000082a708801813f611800e414070031858d04809442c7b740478e1824008414361600320a518c8100905010000414332800c827c6180088270a00d2890f104ee01001d9c40c104d04002413202098c02106045ac70b2020027209538b6fe9166d2a88f22d61f4aa3e417b754b3a2b610a9df114379e6dc243098330ebdcd9654e49e23e0953271b2da21d4bc2f0bfebc1c2b5913058eef473425b6b68151226f5207795fe93bc9f7c84a984effc9eacc411c61394b9bf054ff17b69847994f6c60725b3c130006184c92de9d43bbad935fe224cf973bac79ea07fe15584a9dae5527efea3cc9a08c3edbdc80a56e22f4922c2a89fe5c14b5299d749c6003984e947f6e4ec1babf59921ccf12ea5d1eaf9d179d9002984399b989356a468932d08210c2696e80ffb792604e3bff8ffc280f15ffc064a60a3410661ea3cdd2927f4e4fa2441185636ad645d9a5d1c05c2f066e7a2abdab6b20710e6b7dc3b33e69ef35b903f184d649da03227d57912c40fe6cbbf554956fcffa082207d309ec99dafa49f437435d3b1438c2580f0c12044bba7139fabd5d91ecceff5bf26d496a065ed8e1768400f26932577b6af0e9d3b79308978d0fb16dae39b070f06a1e6545a8b634a1ecf1d4c6228e93f73327492dbc1b0f5bfa7a6e7e5f3ae83a924f932cf613784dd743055103b25bd5f5a74770e06b558413fb69583c1c4cfde6a72ec78521a078310a526de5b0807b37a474b9d3ce50de690133a998ef7fdf0b9c1b0bd319fe3e28cea7810206d30e77c25c7ca57ca59942c0e206c307bf22dff2c9d8286c3c6d3a0bfc81180acc1a44a7da68cb88d93aa1a8c2e968352a624f97b2776004983f9e29ca0f3454fa2fa07418341896342ef46889294a43318de6fedc6bbbbb319fc8198219de48925680da14bb51e8094c11c3c75bc92cd3129ab36d4fe004206632751dbfd2a8589158dc1a44aca8ae5051dfd1d31182b49a9ca93beaf9b74183e258eccfecc0c0693f85bc9a1f3963ec55f3077182f61df7bc1a064df24f1e43b3f71bb60369dce6d4e5a5d102b170c5a9547afc9e5168edab6f59ff4450b2615ca36ecdd2c18c496f8076531bed7c3824912a774baee2dd1e4573067bb9ba04496cd57cc0aa6a44b070b564a7c4ea9648c30383052630485810303233546466a8ccce03170638cae00a302a40a6631a53adb3a890ae65ad1a293dd9f54629a8229ee7cca1fb62df24b5230f69b7512e6727de54f144cd16a334e1c3514cc157d4d2cd967c3d4fb04c39fdeaa52634a1a779d6058d3f712bd67134c953b5f97dac80b422618dc3f8a49e9625ac8106409c6341d4f3e3df2aba207a204534ecdab2a49ee20b603498249d07dae95fb5f95d70db5028204e35eb894f3b98752cb74d418f99f400e2f2c017204936aed569c08dbb2f48b2fbac6881719b8b1038708fc0062043c2045002182f144256992588ad5d9a58e1d62800cc168241021987d4cf4b6ab94ab7328710348102aa1eb33adc472718081e38b1d638481a368a0c6880846bcc8c04829c943000182a9c4fbe4a95392e474f70fcc9dce4bd64fa17c7b1f184ea88b62aa712ef7c024feee527e1162ae531e182e98bbb98d12901d98c3e79f754e4fc2281f440706e563f79e4ee78a32ca854137dcb4dd09c285b956d6bf5216152694b7305bd6969492dadef0a42dcc973de2938bca7215d6c2bcf5c94dff4f6861ca49785fdd2ab525bd5998bf33547f10113a3a938529c96dd2768e297629150b63c99f16bac4d2f92c09166657598f37d6f75ff15798564dd6541e6dc2b8eb0a9328c13fc74d28bf58d20a9318622eb8cfac29e16385d992b460616e3961c62a30953b49aa30954a41998ef76e9ff45418db44f760a52aea312e61062a4c67528c7df414fffe572dcc388549b84e722244982408dd1406e1bd39b2b7dfccd4a56094744a92f7f2e5741b75235e6460a4c6c89ebdc032318314e674fd29a7f4c934391e857994dc666287afff8da230496a26e7385bf9c4a588d1609429cc0805265e9bec3e2789df82e22c27ce9ad87fe20fb9e2d94c0aaa52ef894efd651dddefabf97422933d78bab05852cc3951dd9f94d7a44f5951de849f4a7c3df96a22fddf1956c2681365c23d3d9dae84e74831f11e09952ed060eacad559b5675a533d83417596ce722a89194c92f423c47c89f2de170d1a37e8a20ce6bebc9e7d7e82cc3f7940176430e8c8be87966479923c06c3d8cd863629bbc56262307d8cab8f669b5f95c260b6e4dbe5f216c485e571e8f022d9d105188cdd3946d69f58497fce174cf529479cd611ae79d940096c84d185174c964349a67c3c34c4d405b36ce787c9b9604ced64a64d8f8eb4f3bbd882294df78b4e9fa205c399608216656a829d290be660a2c794b1a4629e410e1d3bc678a41978946303755830274910ea2a67699f4719e0487c05839b9ec893b4071f936405539c962426759e9b94628d2eaa504eaadb849587fc5ea860d450929752aa640ae6f8a3c4939b56674aca17396cbc0eed401752c874d9855171666a1bac822ea260fae8b14d5fe84b3a7a386c70a00b28643a25d5a9b3827a9e6079091e679e138c35f2d3add7e4ac53dde8a209ffa8f9a04b92a4cedf32a1d49754db4b8d49ed74b104f375f8517932eacf829460aadf1adf18257a89ce0aba4882795b3b2c9bb250e2e74830688df83ec1b37504738815252398d547caff99dbe6092a82412cc7d36eb3fbf72482a9746c487bb1ae2e9384025d0cc158a28fc92a3371755d08a6133d651332bd6a4f368c18e4400b741104f39c0955aad5723ab980601cad7e4aba28f563e90f4ca3a6a2bc2c5b73543e30e8a45edf244da08b1e9883dc0f1db4e4bcd4100f4c2a6d9708cdd39fce455decc060a3247dd1548d0aa7ebc86123e94207a633492565b9275d4b557261d6b4ab347ae2ba2ee5861a18c53e20820b737a915d17dfe6e3b203076f40e4162695a4a7d03a0f51a7dd50b39163c759ca914347076adc05446c610c559fa6625d0513fe1588d4c2f0e6712b3a28d1c2d4154eef8e78be5c498ec82c0c424e322956c74f11fa8d31fa460a446461d62ed96b67a32ed48b857994b23f653a45e7cbeed0456061529b9d5d79dd57183dcf82d2772989f3a72bcc22e4a52959435543d80ac3ce472b4b6d66164aac3049ad1335fc24adc25c254cba47b54f4bc2aa309868e5a75e2b4f8e925418f5ded39ed4fa9dcd4220820aa3899af9d8ff113985fe40c41422a5c84b1274cc6ad0a0918890c2a44a5a3ff96ad409931b8529e9370ba1c4a7f3bf446134bc20120a83aa4b1f84b90814bd772addedbf1142e413c61a61a2bcbfc5e7ad2d6710f18448270c5b7a7f4c5b488413c64fc953b65ff05492706d22f7137f2a5a9a30404413c6cf9da396a2a98b6366c2587f4979875262c2e81e6bda4bfa91a6532297485491a7fa72a524552ce1299d4c3aa1632dce56895cb3d7939c2499b1aa062294a8f2c424afb14b93b3359e84b904f93671f424516549c2602509a27238ab9cf68984e1e285cfef93858441c73c3968f97c25e8e600914798839c1137a724ffb35fc4110695fa95cddcba547a6c10698441e9d2559653e952da8411860d1d7b3c08cfa9d2c71110598439e73b214e6b4ba82fa208c386de916dc2941810498441ff469f9c7efa92b71b6a31681d0b860822dc9dcf50aad6ebe4863e0e1d3b12af0234683c0e1d5e1822440e613a1db73cbb87ceae05ff632422863028933a679317cf43e50a8814c218cafe3fd53d1b8810c218a3b42741b8797ad80761509f249d61ca32434510a6f4135696b7f4775b198804c2e8f1ad338608208c7ae147a499d2d0aaeb10f9437af34e5d9434795f1996ba2188f8c1283a9b257953cf3d593a88f4c1f4d597dfa2d26d25a53788f0c1645264bbb53bf8e73c6983c81e4cda762b7d862939e4c8c6185d360604340d227a3009a9f9274a8cca259ef2603abdd82559bfa6a5133c98b6e2ccef53ca1dcc71cc44fb3e499b18391944ec603aeb8cddcaea60ea9483529f468a9a94d1c1a8eb26af495275893753640ee6924eac14d44ddc8965eb30f8051139b0ed49f2cfb92a993a0c227130db0895e3ef55ca256e0f108183c92441741e95f61b30cf13b48e6c936bb5dd40096c9040a47492ba6a91a12637d4d00e0bcca075e880c00e19982fbe68303e4083061844da608e57fbf9f5475cac09073c80bec0f10230aa20c206ceb35e83bff9d9845bf411175343a23e88790f97da94863e4d49f3b12d5e8e066c84583d9dcb84dcfa0c8f8e16b5a2dd49db31332037eca42ccbe077f5aa7d920c2525fb1ec3972f99d2d1d3c736931812ceb4bb8eb643240c26e5327b49f86c518208188cf17be28e47d90bcdbf60fc94640bb3fcde3851c7efb08088174c21469ae89d5e5b111f41a40be6f0275a52b9a4b863d25810e182c964536e15d472fa28da8261ab82ce1ed4e9d84eb560109b96a7d784790c6516cc6362887d91cb182509164c4aec97d47bd23ccc7405e3cd5dbc6b5b4e97735610a98269548d76d9bafad2fec6a03d90b72254309998ae75aa2d41cd5c813166f018a04183082253483239bc52b67997c68675fb598a10e91f5ead1744a460740f59a9fbcbd2c7350a06e5b95bff3614cc15f6b292ce79bb045111449e60fcab60c9da6f54c98a8813cc9f83b8dc279c9a60304963eb829f283915269854da2d392825b329b2259856c72abd24933546ae0473ce3da7739dc397b09360102243554e72d3549b48307d34b3dfea34fe6a1139c26f5a232784d4cd20620483f852ea7b8252cfaa2641a40886afd24fb92c7afead20418408e68b3fa3b5d25352c243307be930bdcdb7ba244230cd47ddd70b25be542808060f3a3d7550192a98c90db519e8d861b63a7e078e444580604cd379ea7dbe259c24d681c80f12111f18c48ef0bc1e2b1bb65e13447a607e57972b8bad080f8c76a56942a428b2038309ed7b3135c2bf4d37d4700c2295baa5d31dba8d52c210920b93b020b428f7306e3abca16603bdcfa0c1e02e84e0c21c3f69aaa8d0de503b2b84dcc2b0a659a57278c515955d15426c61d01a136e7b26ff21a41626ad12c4c7f7c985d00f21b430e920d2f3fc5cc5ab330b53ec53dda1323b8fecb2307e5a4b7a4f123b4993b53d84c4c2509eeb82102ac3c220f5bbfe459b72087985c1c4704f319e56d28d71087185c1efc4a5a47bbb9dcf9056987e3cc7facbc60a73ac0b319673106ee50b76f48e31f61021abe0dc93fb4939276dc40b0ae4483b9e0285085145413d44b4935a2c503650021b007844482a0c9b21bf429c6ce565595e44082a8cf399dba5e485b3b0140071083985492c2bb1a5acfbe2e60e08318539aea9385b2fa6fd0929854958f0ce6792c956824c0a83a996f0562d5e9f5b8d91e2c0488d91dac0488d91d2c0488d91cac0488d91ba43c8288cef776a2e696f2749e7869a284c9fa3a955fe9752ae26424261fa31d972ee9362878a1050986afeccc40b6d95a7410347c8274c26659c24d263443fe80983692ba9429db4667db2a1a408e98439b625ed24c27e4e1e4111c2098390a1c34e94deeca53f11b20993a0a4b1dc659289559326ccea23a39fdfcf84299d9b502baf948477306176ad301fab720983121fd7fd946e1f155bc21c3b28bdd2bfb99fb6488454c2187fa694bb6bbffa08c7404a982c9630c974651226dfac933f595478eb1885104918d6625c30f17fffb6040a2191308d3ca1ad7bb5632d5abe100209e3a5772a2d2a7e8d0e3dc2e01ee3a4e538d3e99e17421c6138258b8b5b12c3b3ed4698bbb6a497aaa44c2931c294d74d32f1c18c10a8b4508532591c148602a160280cc5c080b70173130000000c16124642b1683018cb7b3f1400044b322246363220202412141816094862602814080604014028100c838281503820240684543ea13ae222ac01009ae59fb935089128a895448466bad1d34d45ffade2588b16472b32e15e456b790a46719921baaf2ca65935ba7294f176f1c4c3b2c5107a48b737d530ee7ee3053c2cf8c530a651b9b8465837dcef354cdd38a1df74c50f7d6a835be779d5e88d766d48fadbb32a1b364ac55e6a43f06f76d89e4d7159da9c09f42f6fbdcb6a141aff0fc456684ec037fc3027cdcf929de97e38b0e99e9344af695f0f9d1b54f1f32ef0228feb08d385bd735f3411a626b5ea3cbc929672be961d2606963eb04d04c01b7f83f94383d31045601a7cc96109c22290065175aac3f0249cb9c78648cb0d182f1238525b0e7068228154d7b0e6875312ed4bbca119c4ca1953eda039c25caa2ef087fe0e6e307a658be3025c6c6b331077efae75988547de14acaea53fa6cd5d60e7a431f5a4b6505782e10f8ab4cca46d736257d0b822991ec14bba0c3efaa8112725f5a6367311b569fa9113f3853597a5dbe23e287298415d7a2d063141c1d2d529cbfdc2592ab200fa42d9fc1d07eb06aab5f0a8ea548d6470e238819a45fced0513bd683df53bca75051a54281d20ffcbb2a9ede1bb9042eee42f9ebba4480605245143a47325e40d9a4465bd344e102e64772d2c7961a10243917d41e0fbfa49a32632f6846846ec0cd0baec90f451c422fa34c91439bd7fe8337112d748149d9a8edb84968e667158cb6a5226f40458249f1c94c6b2189ca394d08b21ee06fc1d51960dec54faa0262f1f23b82d276a161e58bf88d41c6e413c20bcf982550e192d496c333d6d88b15143c34589bfec4217ff17cd6a3bb2be476e14b7064af36d9a464d247965ee43350411013784b159d8a0e948d0d1dc5a4ca1cc2bc981f925c8963fe7f3633979a94e48c6908f076882c66ec2668f9b7e502e3d2c4882ca71fcaee5f9eaf2ee5927a6ecabe290286d0d664118c2086ff44569b5ff4229e33562bb072274e5d2fb97a1c4832f6325806a0530ce9de5bdd3356e11398590a435e8b3e9048284357cd107c1fa78c63cf8cc470d4613b1301e500e753130c8af851221081b22605e12a14a401e1ed3a4549190517dfa2cca4eccb98b40936828e89a5f1406bf20f67b0215409d1ae25c520b03d34eca26ef9a134d39692abc525e5ec40a2d7e843ce554ecbcbf7d7af9c86ba145199703896f17e5655e3bcabac75fa821536e835181a3126f8b8599367112ac6c3a8a106d406d28d0cb52c73daf9691f668d53882ec83a7839a10b768c3f650419458ee50333c76b172580a89a16a64cfd8aeb7de040761febfae1369a3974e8951096fc9291d8c98085b5cc6ae6593b866a34a2a62b13efdecdef82bfd7975bf2fd4ea62e09fb09e8f296999fd34efbe3b199f12c7778a94407e91c6fc517937662555a9e444596030568ab4733b52ba37eb7e9930e340f4f85474282b4f50400a1e723858461dc90f900581a09e71778ed4a5490a3cfd1336320446f50290442aa21f24eec4b0dfaa6cb9fad951303623d1cd4ce3de392b858dc0ad290949d816b0c33b5ce9b4fc91bfc3968064edd321aa9c70bcd2a9cec05560f9e31651ff5c8430b1e504731528c8b348f7106b8ab8cef2ff3e3c84c9d26053a1dac623f12a583dbb79936482443bc146bc06a705469ce7bd05ba376a7c5a74d819b7fd5724eceb3623e25449380d55884a7651369b894f17a80294bcb1016e124a99e1a236c3a6fc43f57113223d648ab1c0b045fb8bf1403a2eb6b6aa3b29c535dab4abef8feb4ca939247d8d2a5ed4b9bf6597fd2e17e63d7f613644516e5552c4819643e13464b70eb2f5412f9d4d1cd7b3cd91e7d1b0b49a8c724e165e71da3cb699524812b4256444241c8c4bd97fb82dc2e95dbebd51423935e559d02839676261d24f17840281de9cb90804ce4da0dd21d60b9c4c30a377c6cd3f226df243d4a886f6e4dfc9fa4b3d6ebf5e4b2a67b6e0ccc594619ce867aeb21961ada2ef4df91f9799950a6ef4ca1fa46b4e6cdb763ebe280e66a1269ccc2ca770f47cdf5423a89891ed801bcab99f274c056d511ada5f2620e2a032a7dca2d88c6075fbc9577ed3e9d2dfb2e4f639841fce15e7acbe0d5a22d368e27d38034797e185aa0f94b91459ccb99c87626d2bcc37ab43153f4b51fd9b6dfa7737ab7e3368ec630af498f611f60801d2f90b209ec5a43b8112a1dbe8c89bd25b2e2887a3537ec96560c456af3aa26392002eb3e9a8ca860ab89b8d4de075363839e8d9f50002b73d7b56f6acd1486550cbfb0a74281807d4f48f948195b444ab7419e8cfbf33a4b97f33d37cec76320002a3dc0b4aaa8f6b2cfc2157ccfc0b91ba5a9ca4178af3e519ab8104c72514c3c2a26bb3818745c98ae5ff211a9df56033bba2709f3f5427433bfcc4ca1004fb0bdd506b7aea8cf42cc7813b139b755c443dd7030c5628e918d02c13a3b7b31561b3ca2c8497b45365d35ff2a4a3082b1c1f2d121b9ed0b194512ee61bccaf1e1515674d9321a04ea1b45042e5dff0289e1863cb93477853255282418f6f96cb0f4ca6116f93b4a49a4f8ea342b08b06cb2118b2ede239ef1046514765495a61b39a159f6773f6c06ce98d8dcc2156a7f24ffc4ce8c6bddad71cb5965fbe390b7c13202dd9b1cb5df5d804835f6b5fcdd8fa1c83c9140c9f02c77cab7806b9f61ab041f2aa55a9410eaa19fff118c6caafdde68a7fd3d153e945bea2c3a30559f8a5af32b4baa84d2427962e6b86ac55b89bc1166884049828d14357cc628398eaaa9fdb791e323113409de2de70818b8b3c088911f963381246021661444ad1330bbd03845de337602558339d39012b4762fb823ed19bbd03b8e0ef44872f4c9bb5583ed4e3b615a5fbd41238eb00a5aaca4af54d2aee73f3b1c6334b584457d8201ffb921923a78099b70ca8084aab25ddd492a3c2084de6c78578ae63f11fe06da241ef842849d83b4e0f605cc40b8769bf05bb78a1eeced314a8e845443541fcba84689a4c35975e170496a559e0725a2ea818f7e4dc2b5584dbae7109db574cb098f5d82603975bed85e38566213b3486ab24e518348cb95174bc7dc338c51a7339832837c8511d466f71761851d36ab46bf4c58b0a2c34c69a058ad8050c9f2743c0d3c92ae785ce21744b37b9f7d11eaac1225d2112056ea3b308245a73c0b4ea54c84bcac8249a2e794de7573ab3f3570f7930b9f485bfb30bc1e5007254f8d1e2d2800f3d1675070e1a749bba4281dd69a1a2123280b503946b515ccf4b40256f7258297164adf45291fdd6753f247a11d433f14dcede4fd1ee3c535598f4c8a5d3b041f1e30c8d23a9224259e9fde7e2de54f765038a16ee6803246952d7e9d4c8960cf091e3c50694a6dc1d016556bd35ac4068901361569a5c0e78a226708d7fb1a4c86e19193997fae4057080aac377d4c3e242e6e41df1dab51b9af8bafae824cac688096a74894b8dd4cb10b2bfcb1216b97e5c4865966a90d0cb24b6e4ae3a0fcd04e1303d674741f7e8ef7cc0e155f8cd0bb3b1dfd6ef7694355f085427918d1a6562d8503d6ebfc11eb6a021ddc0d660b401bd01276ab059c72e7b159507333f586b180eec22c24604414a4c2aca20d13de3dd02f3bc1ae333981e707ae4d94db1570507e4dd28788578b99b1236d8d839747deb0254a0b6bd85e3a74e633a1dc017001b00910035800716d032ee4946a70328972a198c74870668b99ab2afae8ba74857028228c43684f2101a10a75204a8e6801aa009e28ef209e1a342ac85c02362760192d474a5b60da0371509771673838eb49f989d8004213d881cdd8e79027304ef821dc04b46f0fe90bcab4c7b6d7e7e582af5c1b263ca2dc26c8c5459efc01e35adccff40143619fd3585e94a9e0dec3410922272d4948edc54655058cf5e22a9153e669b024def4b8e2a60a0c089810312dda90ceef7021ec07d68ec83027c2a164dc7ebbb8b9d54dbcb649e765164cf2a0b02995d08a8df48d8b92a4e8361428d5dba3fc1f171ab5a47ca2d9c0aaaa9ee390b840b5c10773af367933175087df26c4fbda125641edee95497b6d711a0a41519e946890eb3a4e23e17b851118b24480f6e2c0fa438a6d31163e47408dd98324b8b442a4706253ad99b0353011d39231b3d0c0ba6bccbcb29849a8a910efe38d9a07646b4a1faec7799954f8dd23ec64d69d2752fad9e10ae104083c06165abcff37c315b4ef0556305b4d16d3c1f47950279f9e942d920508873635bd71e01c4b3cfe535d984dd6fa325e0f4236d6b227309212e58493c4d064b8c12225ad2ed36812cb16f558bde95159a7e88dc1ed3d01c96687fc84ea92a774cbc6d1a617e4e41fcb42a5ca91930b3a79c1e71cbbc879880c6a071c2b54ebff6b7a24f834cdb2192d7c8ecf762a1c9bd71595983c4b5a0e5d2741d35cb0643acebff447ca3426eeae815c957689400d7acde27d34551211f03237bc6fa13e2d2c7dc4faabb84b8281958401c2201c1d96cb38e579ac1337cf0f45b184babc979fadf56883589379e8ce68e3321ee5155580a8185e13d14e83a99faa31f670961751c15e65c1b4b56fcefc4a2a6003049ad26f78b6afac8aacfe9b9313518693a3d2c97e5974a6a060d1c7c06c6e999e4a82b22a50bda114fa2488bd6914c8a5ca25f756c2a5a9478653209cf1182f51d1d52ec48b49c5d18491fdad9514eb1c37a35352c7491324723d661c973243a56d67fbfec391cf92886152495c3162dd2aafeccb719b723e034537b14354a59310fd016e7cd513f0371dac1d550282e016996be45db59720c437454e1d65f2acdba63e51552f791d615e3badb4df474947aecbe97d161679b69d8b9e9b5f623ed05dba78834d2019f162a5e6cefcb17317b260c29fc4fd85028210073c273cf712d4983b8a57df74ff090b711a84aea84686f5e26c8a396f033272927ec35713fbf6f8af6a6552cac2b042fbc86905f0bfe010cda14056e5e973071a4b3334fe48e489cd2ea194f295114971b9066d99db2190647a42c881485ba426e8fbbf9a2da8b544ae99699f5de9d8198eee88edb8318be291a80887969f7d03f67a32726b44ff6608885cf1a6ba6a27ada31276ce147910cbff2927e210572aaa7af90c38125764c5bb2e4e78c741bfd3ff462402c0f54d22b4e6df8a250dc966f538b7b4db6683304f09d204089a44f25e83a4e5fcc44e1ab3f95c934ede406268e01870c57d19d8cc17ee202546639fd87fec44563d3b4e2f4f2840f63cb820064f000ea8fba5c18ad86f3ff2d35266a0f0f8ab165ac4e6d969c76f36a2901f45baa90b1d7d2e018e6f023cc7e050516ac541c117ad8087a31fbf37c525bae1caf4996e132c4f7c78b2e94eed6d6e041c244a6fbd5acfe9a787ab7c7fb4601e687ad82ff20fb71a89380254f47d3b0890f0649c8e80c087860f896c6ae0982aa3cb92cf613ddd18c62dd3dbadaee9e53c851f7b66eacba9b0d534f4808ef07dde5b85b1fba13de5675eb9104632404a6bb9c955241788b6c779e57f3ba75fb309626399ac4f961aa4660093efb0084f958dd36a5672b444416dd70533a541d7c44151cf894d8314b73288791a60912be384301ac7f9f5de208cbafea144e23d9a623a921584b9222d4894351c989dc4d944dc2579ea80e6d4a9408fef65ab0d85c690d4131b95a941809bf9961d96fe3d96261ed8c9b39807661bd1332e28a3e72503618fd170d43144aa0bc73d02416f42dba1cb6aa35f2e679eaecac5415e67fda7b79940a993b9a0f0e535acae7f0135a44714da2de7357f4f0de2aded370d0b983e53ceafce44c1ac2abfead903571a7841745cd7a8220613cd4b9acbcd0478333f1417abe9474b6ede0d2390fca5764b4553e9f638b1f46fdaa8aaafff82ff6230162a7da2e7f297ed0a9af8329f81a83d639c286f5d6a5b0dbf7699526119057ecfc33008ddbd672f32f91a21f9f49304c2bde86057ea8fb350911fb7a8005026905b066b0a16af8fa7f107763662c38501c8c79312d73c8e0a9c16c03da3f58a6e44ba06d0d680c3ed99c333d39f1f204a18b35d0333831c03560fd079bd9455baaa80e5b579aa9342c5ae38014171e02f00c0066bced0c65f3841111c83541173538f735dd799ea44088bc418030e8d2f012d6637429c2f301521a7ee7c3eb5bd1bb28252fb130a8c8f955ed9f636717daa38ff9e0f72ec483980f02a4c84691e0170a85034a240e9cac1a693e1fd0a3fae1d41eb050975f6afe10c47f0d7bcc9176d3646e8d08a3abc9fe9d4e8b8878d537bdcb8ec388ee36ea36a6e5e45c78cea904652e54ed01e20729a098f68b58341e11f9aa9fc2dea2fe23e442b2fee450c7a17f487a020d8cf1eacf9a814a09482a51f0b129320b4151ccae1f861be32b5108d3e5097e3c8963da4ea7c36e26c3083384fd5a152abce115adb7ae316d172e5d5e53f5df0ab7636bf3a960c77224685db6c89a70955c24ebf252eea071495b7e9767d2b730f38839a9c27171962ff6fe094bd0e8ff9f5c788759f63257b76aa4dacfc80796d7eb41a725262422301ebaf51f30d136a173970d8dc480077008e246c504865a232252706bf85ad1ff9a089fc0ce6fd68e4e71fa8a0b3ad51de4bd9a1c441e105d14576999245f3ef167a6dbb365dacf8304a6a7f30eb181a9b992d0349cac92decae1bcc8e163dd0451ece0f3954d88b58b9c00896f0f134acf8a24e000537e16842ae28d7f0af15d47c50126e15bc22710500123c50d975f12815eae3bc07b90b25cadb43d32b6c64c24d5b4adbbd57b5cc0d281454b2c40193ccf21a68e1d28b755d9104bd32c5b47c45b6cd7209198c28cb4f82982e922d63f4fb742b8025a0ce6d980bdedffbb9a54e4f52caea9045da5a1bfb29e22ac036b82402ab9695a81d39207c8919b705ae25655ee294326e79ccc09d26a65def2a88320c3b843c6fdc1e82e86eb604307a5e2c3a7129735af086a6de68903182e1d718b7f40b0b6c80a3a31c9ae3a4df0a5b0200eb7a4d3c4d720917a224f14552f353b4b5e19355b6e44fa90edf5de6bc30bca8b5bfa3a2022aa9ccf433d78c891b66785b19f24ff4e5ec578d17901f582f31af112eb65de6bc20b85170daf045e5ff95a5c2a096371531b08787d05bdaedffa980dc80b8a178e578c17b7e5ab71a7fbe886ef18279573bdbd6af28ac1d737d8bc17582fd25ee4bd80f8eb681d0a96a9675ec70b58c6bdefba7491f5baf7528aafeb9a700707acbda8bc80e00b0e36f0fa2ad0a9f5852791e49f1a2f1caf775e585e24bd32793df76b26bc529cccdb5e377dbd04fbf562ec45df8b851796bee060dbbdc47ae9d9eb68beb888010fcbaa8eab5e16eb23aa8d9132baa82625962e0208491ebaac45f025c37766d515977011ec9fec126ed30893d10a0e1718b1040a90a1d4ac58be088021c58b95e4a88cb09750e1a14ed0bb28c2a38c6a9ced4fd3e22c7b596c7d4dbae488a17322ff182d9d14cf9c39fc08e6df79a13b5c4e91fc054e883cac7d40ad4a99486220333e3715a13bbcb1a71c700b576a9f27c8c033c509e143284e97a286676e05c2ad96556aedce4360b89d663be7b255bc1c91fd0be626feb52950ad6dcb306bef78cc3359da6be6a8d9c009bf32fa5ae2d22906194da3764668a3d29e5c6831a51209a455e154d9871cc1f6b0101bd6b82ca8958e02c74a980472e5d359eee4a65201f9cbd557dd0c8f57851a47baa3cf85521914b9cf602d8f90c85b3e7ee87d606f2676b20904f0e8477e338c3a835dc2611b9e377bb9b63a00eea4890e5192970ec72ed7e0c28f2bd28a3022ce4b2bab7171d7a473481c32e29ede2fe81a4ee381677a61cb282851bdff430c64f10fb34feb607d680f250ae825138ae8627ae4d20acdbb81e49f785f476f965f6925e73a086610a32afbec3ba998acf29870d64824a52e0418aeba14d6bb3fe0b9b36f06bf730bb2cda7e6b36cf15cea0554f41d1c1e877bedf1ffcac7012dde54f66046822b4ac635a07292274459d13b0b046e07ea24229efe517dc3dcca4f35119deaf184c20b8925cfcab4022da89e185b00661f5926e872642ebf1781626671652445d7475b71ac90624d0894db7ff94c712c0868789306d4acacbc53552397813db2326a92a62b260c8de841160e079be8134f47dc5113ff512d83041d4eaa182da97380cc494bf57de1f2b8c48d214a644f8c27b47fe9ace6b0cb7e4b928f7502b73b442d6bc9a805df848326e6d63e4b9dfb9c7e6d03460b81e397b42b2cdc2ccce9089f3e76d132e8a373958752a5606658efc09de3f842056a35348e67bc04b99e7d48cf0818b4bbd5e876b2724151151e37c90ff8514dbbe63402c837416f8a7fca73f1cae390048c9f7039f6e16b029038e665e957f3d52826d45208092a9e5529c868cd54a0a6a801f382d452c9539ccce897f611cc5e5f1871a939fbc1b7af252584e3ea133f7c2440ab3f7c450a40f6aa303d19f4dd461d21b0672c112d6d71f08856dcf405ba751da74ae7545317a3dd46aa0744577d2251d003f8715153abaa54f04f120512af1797aa010168ab44df3bc4e7d7e6067de125129b722b178bb766b8a0a498f09661da40524e6913dc4693291a597b97e1cb6041d2444283a1e88917908c6280c6f46349d6d0e46d10e406c3960c518ddcdbf3fb7e429d9860b0d300b0e547f09b30261e3af39886f569f01215f8f722077eadc920946ed51258ae1b14858688800adf138b83415add4874a8b11f00c8356cd435b76bf396a20190fe6c4a7072ffd0b6255e6378b38f74ed3dc04bd8f712b0fc4353006e7bef51df9b889019db12530546024548cf7eb3fe9ca739b6fd8521225bef807f7736722d192693d09cbdf5894d6a4c2e457eba47fddeb1a8926d724fed8f6f4b9937e0cf3a23cf27fe6b74ae93596b20400bd2130334382e2f0d88b4adb08a4c97e347a0a6c637fd6bd3dab51ef4d8caaa35e0c0202bea3f5a22ecf9a9bd32f06171f531e9f9c93bc2047bda013bb68b32fa9192e4680372722b98c0296535de642c02148509332effd740286881a3565ba8c4afcd050cd78abc2c449d5562cd0ccaff45a47f4c6808f501e4e102b6785f2c790efd31c625f98004e64dda306c4b4411b04bfaf6aa401902fcdb9b5beee789a55268a697c54b3c0aef92272f0c6422ae36c29f1db3bc1a37fbde38a5a6a0a3f6e10c5c1e73315301ba3564b50ea83afbb5b8ad4d4fe2c547246b79c0b88c813ae345734262d3d2b66aaca6e7e98d650615e34a03a69e51c43dcfd14f402752cb38ba3077e40b5966e8d004ed86f57e9c33b50f042b48d585c25874fd7b7584b3a88b5243a5ae7271f7bccdaef1bd1ac6c12e36f30575d62b12862c988eedf97fe20c4e0c54eec059d3222764d3c4f9c6c05e5bd386678de0858c24da29ce29b33868d11032767a0fc49e508c012302deccda0dd2a3ec094b48faa94d3d157fd6d01326140cd97ef7f04f0360a664c5570d2ba112c5104dd17937485844abeb6b6a3cb98fa13bc74a6354b058e2509f46517d79db46d0f1557c904b0616b540214e5aa2f1a96a4f4abaf846023cdb9af2bffc5edb16163bc840da6e4495b9688fe708e1642d30cceda38e0b1be0473537ba2a0dff66321dcbb89c9a9f1006454eb8a9285a31b1ca55b768691a2ea82e726d8a0b0eba3388e8a91c8c2ab48396947e65cbfb8aa7281f330c7defc0fe4f05d238601fa0dbbccb8100741698fc66c58e1c871027221e9dff629e0178c9b7781db1d11920228b5277dcdc8f415fc4780c7c67ea63b37cf51c01f9d888d32095e3c0cd64bca72b3cff8d58545250151b906c61f9357bc43bf63e7d6f94d25925287e4ba856f7e9c5466b844652c0481e9ba647541eb7c02b7229680e3b68e15c7fdf877d1b065541f45107f0f4071d81c3fb98a64bf61a1e7fa506c32b942a33f810f0436feea1918fa9ec6843d4801eacec92ee393c8c8376e0c623597006fd4409051db2d031b43117fc1a307e014818a08c7fb1d7a4b084c259a470b1cd58a3e38fce49c3a1fba582b79c074910bc5faac140da2df73d3845bd25db4d0000284519364e992b31cab6c3fc27af2c19d45e053fa77bd0f1924f561345dcf74dc45e57a9d825e180fa22ea01717335884c8ebd39aa5bf20d1d14733900d5f8276c30e2db3aa1aec8940661e386d533fb8d77f82541815b4812419a3748bf2ffaf96a109b5917dc8d0f4995f56cf1bc3c493fa0c23cefba03215166f1d5e9aa353c61a7dbcdb7fa5b7189ef96725cfebedf49ba281200668681c7f63177651fe3c24429642b6da8d0fd5ca51646d86faca40023a65865844eaeb48dd993531393eca3f1044485586fdb7583812cdc14c9f5c92f8c5b03dbdb44c6e8fe03c6c0e4aec5a2ceac4e334ee48ba30895535c7f18d1640047b808edc44d6cdaea9ea6d9501159afcb4733d6f60b5cf0fe8da9a1d140f563e586d94287843686bde54acab1ce078d534873ea58d934555e25d058613fc66c0877d58b1ede1cba54347ba7630c2afab0d7388e80cc713d7a89923070353fa65f51b92848f0013bf3d1e4595a76550da8e8ea342f0b93ba3ff2357064d9a5f3a14df75f5651731feb9a583aed00f97df819825e1f0ddaa9b086b015a611f54201c4211347374d60764dd75992a3d5f83f53ab707ce7baa5ead8848351e11a62506f68b7995048c596036ecf9dee6fad9bc3b10b06f25908db388e2d27908b87315d48a175d14c1cb8bdcfb81ea3edd4ae5399d86e643dc8dc884926ad1b57393a9d9ebdc4ed4ca5a1b26d7d197c8fe8fe5b3bca7737438909ad11039d1211e48f3c4fe479e1337bb7124c422042f13541566bb0d009f05966e1380c3a015b94d74689c6634c7d67362d317d9ad6e4ae49302628f30bc761294f0242d99044fd304fadd186fe8f1d86ed62541d82d3531aafde6cc8bc5ed208636736ca10c6356c13cd4aad7029d07ba12f118c6975065d52075f12ef7569d6c1af19e60354ff81da4286ed72d7222572e22a6cbf80a3f724bf8aabde964fb8932df2ce8afd9c49b87b1c2d3de06ba1038f994a20a9d281c8390890bee80a916d08b8664253f96b3dac9942836a0938c28928d45da01af7be58c29d1e844239826c6d51014b3b269dabcea3f58053bf5e35e3d910f005502ec22f72bae2d1c4ed517957c864500094084a112a4e95aef9aabcb45e6d327fd35cb3e19d454f73f87e67c0b51c213793f24d6a9a7bf9428ccf13eb38752fbef00ea1e8a5d18665f21b071c3015a086a73aaa36b5586aaa359d1c18b7e33baef6fb52d49674c3ccac36e236ce97000b4c0225ee59b02205c8a787561a1b3715540f7d4788d1b1708fddc2b9dffa4e2b6b639d1ea48d0159f12220ce71ff9c9349bdda08ec382c25948e124fbad046af5ae98f2394284ced153e1b3acfea8ef1dc36f1f2c19e6152c02b519311e78bac086bd319ae839f7678f43c1730ea137ee698621dd76af874971ab2e8c366413d5ee23c9befc4d3ae8cb5edac2460ea2706408c6f6dea2a51ef85ebef314ba8cdbe103ae3d73aa6b56d2247fb7810cfdc0c390f9a599743dee3bca1739fda6db7088b436a4f2b9e31e2b6cbc5ba41303c24deb7fff368275eb9eeb4d9965b32d8de86ba7d04dab939848a36880a961f88373724723eb041347b0d77e385056023e88e42a887967d4c397e5b3da481dde3e44ecbf212a3ec6b405da3348914c31da25122ab8605753a2802ec0573a209885900473d979dce5012c174cbf804f140b24729d067f86e7eef99f28953a38f94943c81126457747dff2e8211e101b55d88a35ec211b2c61c9b48b0a4a8712e702a5a9c3ce0824bed09240e052d995b8c79323865cde64b236c2e423c21622aa142dbfd1519c66a9ea87f6a21962e03689918abd7111322414c33edb4899cee9ef14a0df36c04fdc76928af649229a8e91ba49b5ea9d499670717d6bbeb4458e2d1c5b594b46b867fd4822dddccd496edd78d5db279565ad525718ebe9186873737ce36d83f319d99c45880790f0dd05e14a288819a0d0565ee53772c5caf3ccb83639bc3eb83dfba93e2feada8a14473c119d71001583946a61560427bdaba0f91818cf849e255183cd2d3cde21c1a19a7a4256246c91270893af4f40ae1aad472130fdf7cbdbd92dc35634813e05f944a2d2bf4f1796bb1e06c540235ac7e61c7a785535ebf925e49da4dcac78554f923680b78a7864f62a07be8a0dd1d3000653593486898d25995e1771f0fc86baff949ecfda156796c2729e7fa8d588f3158f06624c7920d2666bd1a7e0ae4d7a9dfa05bf44b15a2d495ab01644201db2340734e2b5c138a29dd35d05b7829450135006a820214141928725090a5c8860e2a0395148af714b0cc1481ba975e6f2cb650b650c0a03809f50d20249bb412d43ed414501a502fa030a0484165819a83fa0a05074591517d660e476112d4d35f54df8d2d08d1a0005fa87bc9f71e59034a138a0d8a9a8dba375a4d3fc2a1d042e141a57028605b17f29572a380662ef9017b4affb4f184e089d5539aa7bba7b74ff0bb4457e680958e0088021638bd04b5d7a6012a011cf1027e72c5b90d3460f0547230333333333333333333e3ad6a6e49f84bd2def7a9998e84029699999939f38bb4d94beb655b372f1c45daf017690702cc0dc40d940d4ef28f42d595050aaf4264fee41f7dc2190def8e43eff0841b7cae320767f313974eb83957b868b13f8a9d279c70faca6f3c8548a79437e15d9eb434d7a16af2a4269c89e01921e3c1cdcd84df9d3d68a4e8c4d82d5d60c23109d6677561aae2bf84ebd926de03f9143c4e5bc2abcadca9aeff3c74b4125ecaf6b6f38d8d8d2625bc9437fd93856ef3cd26e1479133a3fb87ce814c49822e24e1c747aef4d1c48e52965d44c2f72f5fad9cc2c76f030957dd43f4b01e6aa5451ee1a58d7512dcc27910d38ef03c7bc24ffd6a8467d1ed9207161aa00b46f83fbf2e3984a670392cc65603ba5884f3d6616cf14b69e1dd158c41cef83208015d28e28ecc23ddd7c6b42db6e019609e0365ef8216fc09c3fc0b7a8c2e12e14b5d881e3dfcc7901a4478a556b5393e574b98747108bf264a148fa3ef4ef676a00b4338c9caa317974b21fc784436a6433e39b5c3e88210feaf4ca86ca9a447a35d0ce2046147178128a5d565855f5b6b5d00c2cd8c0ca3992a44cbf71f120c1774e1076f324a900e729458bd19bd2de8a20f4e853cf5a1854849528e185bcb7ce8620f5b8ea5af53428cd51bbad0839b6d5716a326c777d9451e1ccd1c85cc610ea63552d5842ef0e0c4ce71acace64f3976eee079a0e51ecd6bbef4113b78b1d2fe24a69c33365d07cf345db8b8b9fb29990e8ed6a5b44c399e831b39f2782c73a889dacac14ff31eae39735e89641c5c0beb29658b0907377d8e51a33f67a70cdfe07fd82c7d1e846ef02a664ff340720c39ceb5c1b5ac315e366c70b263a3844f69e363cb015dacc1798fe6ed1617fd3c58015da8c1efaf89350fb13e6bd9451afc30295baa6b5e0de94183933a8346aab98ec38eeee20cbe4de58e3dd903e94d1766f0ebcb424d7af77d304da18b323ca10b327892993ce56421cfc63ec7e0c73e1f5279b7e4cf2a8b001a7080190b5081f18089011860b432a20b317841a673eaf33058b24918dc6493efd3dba74f6c607052a84d1f4f298daa54862ebee044ca3e9f428cbcc1a3c0d08517fc5837d144aed2c009c33c0bcce88217a4736b773c29d9a6b9e0e624a65ea2aa1e6a320b5d6cc1f530df88a0115739ad0527d867bac8b1c71624ce82e31195d171ec369f2d2b7481054762e81439cc41f6e8ff0ade6a49eafe30a262262bf85107f6f1b547a3feb92ab89d46bddf6a3c524f61a10b2a78c93baaeaf8627a201e53704a255b5270436d698a4926471a3651f0ee439a1c7cccd5e751eea0e0584cd1a8123e16f1c0bb27781f2c26c663db095ec44bb86af97d3c6e13fcb9f590af2ac7517ac904b72747fda9836e094e8c9c635d148f4ed4ba538257e9c72383e47ff1b38b2438dd653d6b1e8c0427d53433bf473942dd2378d21f4cca2a2136876864e8c208ce6955cc1c6a0ed2a518862e8ae056081d44cfa167124d21829b4782677664e9a05343b05c25ee5b324e5a32de2e84e0f8797f4835953c3e9d17ba08821ff487e7e95831c7ca4070e5fc2cc974ac1d3af9033f96eef01963d7c739455df8c08d0f36bc7f1cb48133480a1a0006182bf833ce202938b092d0450f1c4d1125d3ee61ee781ef8ada91d994ca45e7f076eccc1cf46ed1c3af0d63cb4289194a6e1d1450e3cf1685dd7a136a4fc2e70e09d9aa5930f1a363be716aee60ac164836bc4ead8c24d53e757579f24696ae1ab7f90d523adaecc185a2c91414e6a2e330bd7e358c2a7befa238f220b276b5af228078985779f37c4b01ae1810516ba7be8b22185fd0a377d882977fed815fee5a9dc1f5f7f66785be1a6cc6178c946787858e19ac428ddea51ab70c6729cb4238baaf0acdac7645294efe854781f6b4afec993736451e1876055e359abc325ef145e44184b1d6ddd9d318593e655227914be3ea570263ad5d4c49ab1a491c20b51a36ee4e3d99469149ebd7475850d89c28d93578f8376044b9b5078dde331f38590223e9838e002147e664c72e73996978871f109d73a5a7dfe62f8b9983e02179e705cebb38ac7e1514e7d275c0f39790739c7548f0e27bcd451660a396c92df66137e6de8f71c246af64f6bc24f1bc3db853467c2b56cc127ad0313fe5fb97d071506f52c908106ca7816b08094d1012e2ee17aba9aeef49e6a730e4b389d51a4c73dc7e3279706b8a884e31b2c9d471f917146186298e102166007b8a0841f475dfe793a9c7b749531092756cabbfc45626ca151391792f036540e5a425aa443978b48b819c5e3bbf0e61b3984845fd3614a1edb7698b57a84ff762947ee0ee2c211f8d77ab4a7b86884133376850837000304b85b00178cf03ce610362507ad983e30c0a003178bf0e350e3718ebfb28cda27b85084d7a6319b99bcdbe5342127b8488463967924a79c64099925b840841f2babad63d824c1c521bc0b6d1b1ee591cdc87261085fa3736c92257b6667e1c045217c5f9f681d965680a2810b427893831c73e79acdc0c520dccc1d79d8a9d7334178b3a5113da7856c9523107e2a4dad491e20dc52bf9833765ce6e03f78afe12b9ae31c8d6ac70f6e8b75b0da4c1fda07177d58ad32cc7bec52d907b8e083971dfb7bebbc3c0a6930c0e0ca04177b70cc524ea9d4cd6d43940b3d7897c2870d15157b4b9307378b771c8be40f1de588afc0051efce8debe233476b0b9ac021777f06e2d5bf4cd15f35a90c7c0851dbccd1937ed41f8ba8f2a14b8a883eb51cc1b19a7392c3a11704107e6a3f70e2ee6e0d75ffe38e778e2420ece79e841f8c03ab0f9302ee2e0fbcbcc048bb269b97602177070abc3ce21875025fd31f7064f3c984c31d26ef0b3c5fa3bee0f176df03c8814573168ea103d5cb0c1cf41a61c5a697298cd70b10627450a39667a9834393a0b5ca8c1f3682c4f66e9709106274fe8d8680d8fc66218e0020d7eea731b8f91b56db23070710647739c34757ce972f81431b6cce0475e9fed3604eb9443710b5c94618fe9b52224830c313e05670cb33e704106bf53481d8696e8ebf08bb195c9052ec6e075ac21bd3d84caa376810b31b896fde31cc52593467201629c314607cc48410a124080051080000b20c01931f8335640c60208b0800510200304d0c00408e048f52f1823b90883ffe7e9fb73b6e5b0138619a30c167019643440010458c018655c2005640c5fc19b11860a4c0c8a0b30f8315295437d44598e2f381726c7d51df55dacbde05ccc77a72fb975f1e8825f1eb947073765e13ab8e05b4b8e739a756cc18f7cd391e4554b62d1829b56e917ded2461f3f0b7e501922741e1f0bae7d0ecb7feb7e952b78ddc1e6cea7395670d4db83a8c70a59f361077051057f55724e619d1d9d395470c345b1f2b699ed28650aae76109682932e74ace46d1f476f89827392ed63b2fa4c9b2c50702da264bb8f1d8429cb13fccf93a1f69672187338c1db60d29f69a19ef24d70d35a6f757433c1f719f1c8435fc4b44b70346272a89c27b8a84a703b799ab0312649f053368b30f113bc3d8204a734794c9d3dd53f468ee0d4655f0cad1123f891879bbde7dbf01229829b27e5cf692385334d13c1dbd851cc933e7b90b91e82e7a1728a79d090b2d44270aeae2fe32d69c89f20f8f241cae3d00204efbfa388c935c4a4f40fbc580d2e73397fb9cc3e70d625f5a50f3afc9cdc036724f7678fda36b9c83cf0d73b70c9a9e21df8229552dc4435445407ced69fc5c758cdc1b73970523e9e90a3d92a8fc3050efc0b714dc912bd85ff81e59042b63a0aa7dac28b97187712d3ffe3b4167eda0c29c7a4ce19734a0b3f6bc887e5289d852cdc70ae96a3af1cd84c1a0b5faa3bff65a6b9ef13167e4e5e1fc4a444bb395fe18693d8e639b694344e573841bd358d5f67b1146c851f4b060ffee642d00ab2c2d94a7641ab3d478be22afcdf943326b190e632a70a3798c9c999784c725f2a7c8b61d2bc735e51e14c4a65a9ad7d53ea53381a8207b9a333bf7a4de1a6acb9490cbd9ad52b8537c136949a87612c4d0a27e2633b7ca4bc63148ec61cb3bde1d6412c0a3f65adecb5fb963843e1867590183771d59681c21ff1f1305bb693e0f1093f8ef1f71ced092fc5146b1224b77d02d0093ff048963ef05862ccc5893302b0097ff3782ed17ce943ac09274bc708b1322b4f32136ec9e58d09db794bc4849349b3a6aa14dab1750937d43f8e973a8958c27b171b3fcd66314255093f7eb625dc336dc750c20fd3c2674789da379984db9fe597d1b3e68b25e17ad429c94fbc338991f03f96c96cefffb11089b1a595027290705322acdd58d0907a92017884b79e03f310fbca1651001ce1e4ce93151bb33404a0114e85b3cae492257b8e9d21008cf0e38d39da7acd09c0229c8cd4f19b47693704401184d4a8d398245a262202900867eaa67dd3b804584018190044f8d1a76217f3188043381ed5849fb05ce1210086f0b4437e2244d9184b3f04a010cccb5ba5c684d74ca45ba9745f85ee8ab9c928110042f8b1c478c88e323ba2c720bc081ed5c6b84710cee4f40c9dbba335ad8170ae2f5a8aeea0efe30484573669da8374fcc10db78868ae397cbaef0747b34ab8e9504135c7e983173a08121ea60f3dc761f8e0c7bd21ccd7781c7396f7e07ba609b54c550f7e9f6a6d8dc6ca95ca839b29789aa40d21aa9478f065ed56be3f87c8aee920007770366f5cd87c07c00ebe791cf47647e126a55597c810803a3897fc835af4f3944d544100e8e055968d9837e68e3643023007cf82dfb4cd95f647b6185b888400c8c10feaf3558e2dbd32ff626c350134e080c38c3128007170c5df3b0839d0981cc2626c5d1140030ea84504000e6e6e93cd5c952c94bd6ff0f3062f2df3f84ff7b9c189413586c89bacb276b4c15fdf3c9a266f8c1cf96cf0e527a4d0fc231ad3b206bf2a741ce4f5df9cb2ac06d2cb379c06ff52565353e7c03d7fa0c10929c792c9357cf0e99dc11b6db9e920d20597ab87d67a646677da4f6af2ca1ab2c104bf5b73d02b6126bdb665bc1965900b58fd3105d858829fef8350a6e94b9259c818c38612bc1c7beacaa1526c24c1b989cf082a3fe75322c1fff86d24af68c56adbc611bc0e53248f94d21a5d2423f8d96b62a247a22a49421b457024e4f8c27f458bf4171b4470337db486346a7f1bdab131045f2d85b6ac3e0a880aa8d286104ecf88f16caf958ab3120fbe0391f4311b41f026cd3d5b2eedec9606810d20f861471a43b77d6cfcc02bf16c123cf81c7f4e59800d1f38593ee5515f5a8c2d32c630b3d10347fbfb42d6e492f3983c021b3cf0b24dc207e13e5c671c868d1df891781052941c43d810611b3af04296fc8b844659cb88b1b58231ca38230338011b39f0e394980927de79e6df73800d1cf8611aa3ee7357475416f815584003356ee18d5d26ad9a94557a5eb485ebb16a760d13d297b60dd4a885ff71986287e654c122430befa2872e2161663687d49885b7a515e52de4d490859f352695d5d2aa62522316ae6d57cc9148d6bd5f03168b59a87c16244c6abcc24b0debe13bf2f7ce71410abe0c162cd770859faa9ed6dc3abacdae185b61c0e057a0a5801aadf0cb6b72c7eb41aa8e6231ce20174031ce202c40199c61588315877a8badbb5b88a7d40761fe63f80c720130c010e38c5c85d31da7a4fc21988d9bcd821aaaf0fecdc247993a47972e158ed89b4f4b8a0a377fdedc1e655596b3a77025e7f130fc3e3e660f05354ce185db0ea23eb255b1bc13d428c521849a91ec20250564905152508314be04f1701a72a94c79d41885ef1f460d26a127cdfa3544e18547217914634e8d502051611e296eda9bc33c63a7cc4cc5d82a838c068001860aca20e300030c50b87e19a173a8c85e66d7f884ebd9ebce62637b903a659011c656195f811a9e70635467359f3be1494dca1c326798ef38e1779a2fb5d0c1d2d57c98e18232c230630c2e335230c6192e38408d4df85913249ae638827bf0f10cd08417af12c3bb43658f7a199c719970ad42e6b85286ecde6f0d4cf8729b56cd3d85d4d65cc291b99690c39e1471d7125edde4f08d3d55c2e9cd181e445fbf0829258c8ab68cfa50116b91ab0f43a87faff73441ac31092f3a7cf491d7520cc9918477e9c34a8da423e1e510ee626378486d6148386d39e44d9762ea0c3fc2e9186ca4b2c6432bd5115ece71a68be54952c4ae4623bc0d27f1f12d295af28c70d2866f740b32e699d658841d9175aa361e45f89f2f85ee502b11dec6b668672f21dfdb88704453e6de505be1aed53884e317dd112a326e29437857175b65a3596b570ae18f786873551a21f8d80cb19bd1f44889eb4e19d669c341f81f53e7cf51e5b5f6e808d4108493392d7ca0aef5a1e76a04c2cfa176d22cdf6f180588ac64cb426a32e22a33daee42c4bc3ebcc7b2c61ffc13f31cdc56b2cd39c60f5ea52c1b3b6977fc9b453b630563907101adaaabd10727c6fcef591d6e2a830908420d3e38ea5f92de3cf2941da900b3021998910030c03839d4d8832f7f36c93ca21a7a70226896584b39fd84dd831a7970cdae354505ed68e4c7835b21ad5531e53b38d9962e781063a96559c30eae7f14d5e3d59e1ce751073f4ad024f55f19a434745b3a8b22e6cec19b10ee83741da59bc7cac1b1f9a0ad2b1707c7ea2553ac1c0787a4e53daa4bb3adb2d42d844acb99e3bca3f46ff03ea276ea0935dce07d494471918e25e67a0a35dae0e794daa5a5720ec1552ad460831b729a54b9653b1ef5b750630dce57455f657faf670a036aa8c18f51d63c3efee0b27d8d34b812f35c8c07cb71f55c030d5e900f75139652962545438d33b821a4ea106f99834c1f64d43083f7e957ee3de33ed971c85800d7a146195c1bb5ed6c2149a407bda10619ca1e527bc8191c8305240c15984160c014a83106b752badc586b35c4e0c68e3a3b72d8ca6ff9aa11065f536ffa345536967e302c33615d3212f7713755697e5ed9b9a3865af50b7e1cacc40e3aea053fa5cdb0aa31637550a30bc99f8459a688cc39a8c10567c6ba6386479ed8ac0d6a6cc1cf3f6de176359eea3da38616fccebed661dc6b7759b2e0987dca72f5090635b0e0a86994689f109e79bb821bfd33ac9a6a6a58c1931c8794b975d4ea780d54c14f92a6b73c76d4a0421b2259aaf3b04f428d29185276874819e96422d490821762de1e4ba714c0801a51707cee82977509053f86edd5d2ee094ef020944568e7386dec043f8e15a1a3df8c0bcb36c1ffeed43f1629a9e5a84c6b30c18f3cc418c25d78095eb0cdebde7da1421ec5d80a839c91823f493594e0a624ee2e217860000c304c195c2309de845df977d89896836a20c1894c173b8e7304bfbc2787152c4731d9c7085e96dc13e1ee7637972278a1616b2de657d9112278b31ec548be1891243a047f42944b17ae0ac1e90a611a3bf7795b32084e9bc71e5ffed6ea0e81e0879c86cf1f450a23f98117cd73fc294ae7032f851cab56eb1eb8ee216bf4bc9525a78c07ae9fc9c44b6bca61d9819333e50d1d6d687f68e9c09b2977b3b3f4f48bca3e5023076e76209ed52e24cd81470d1cb8d129f269f8e87b2e7f0b2707f2a926958393f56de1c710e3530b3f753afb10738e1291166e9edc1d6d5acd2c5ce930d77d8745166e97e48e34ab120befb2751c2bd64fd42c81852326c927a5b70f197e855bb13b24658fbcaeb62bfc74b5699d3963f850b7c2738ff249dbc1acf0357b2ef896460f9757e158f2cc9c3e7055e1c774b0091f7f9ea8662a7cc9a89946421449a14485d39b2782dd079ed28ca7f0c27a8e825bfad89e4553f8fd99952f47e54a31570a6f4366b9604126852bf7692a75bc298875a370530ef3471f6dca1d96260abf23597fe9c80a859f25b468cce6dedd83c2b3f0fd71e43433b33fe184f41fa9ba4a343ce17d501ac246a64e97121a9df0b3e7fdbaddeaf347d3e00469f27a982112a0b10957ade3f0b8eb3acc9a86266864c2cdc1c496ec71473930a0d4000d4c3c6f31f3078d4be829a63bed3888f3ce023016342c31071a95f03b0c21ade63d0cb1694a7829071d73c797f25694694cc2f74052eaa808cb5b1f4e040d4978e2a163598e7b31160c308a093422e16687e1c2e598555247291a90f073b0f9228f64887fd023dcd614f6615b88cb36b93ed07084d3397bec20c2e4276c8df0253d69f0b0a753ce25231cb5ccb8cf39b566f88b7073149dcd6db3254b570183030d45f879a39798e43091361a89f02f58a6b4d13285bc160d44381dac47b12724b7981931d0388497e1c3dc99b6e3653b0ce149f0cfe1734af956430ae1a42f95ee1a9106219cb4f59fa3ddd58436082f3e4514845b5ddda1e6489b881c8d40f89f83570eb34d1b060d401ca2778879b3792e504118ef8216d0f8832f16afb6c957d25dc6a915d0f0836fe781f726bfea20b43ef896e3983adea26434f8e064bca4d4ca20712ba680c61edc18357b649d77b2b0e8c19f8f267c1c570e3378e4c1098f23c3a4c5f0eb260d3cf869a9d6912d2a56a7185b7770a346d80c2e727139e60434ece078347fdd61d8d668769030caf833740c1a75702e5c2a89aaed2c2927c656197fc60a9e0efe5dc851cebe9ce38aeda0310757b53b4c0ead392e4d1a72b836eb5de4d6d35b4ce3a2dfaeaa2a2ae6cc018d38f4f9536fce146d33d20e0d38f8b32e96332b5bee99dee0a876e5094f1d76574ac30d7e0e5bf31c2e34c11866d8cd81461b9c8be62aad3de973c4d06083e72b95e1520eaec1b1e81da4b19443ca31a50d34d4e089e5b092c93143dbef061a69702e57f4e82c7858df281abcadf0e1cc2684cf351d8d3338656a17b67bd682e44cc00cdec7f84b159ee1ff7194c18f2185909aae72061a64703444670e2a63684999061a63f0d306f1ac911e7d90927966a021062f761c4f57aa0e0d2d41038d303817cc7258193a6880c1d13c295372d65f707bb52fe36254d707312ed0f0821bfc4a3d5233ed281e5d7093680c5d1552bf64070d2eb839b887d5e0317498533240630b64cb2eb1a256df63a0a1052f07a9262e9f26028d2cb821a846897196b5659e000d2cf876f239d0caac1ed19116685cc18916a29f87f2c8a8c04d818615fc481fe4e83b96183c4327800626400029d0a882e7b3d531845a8b116343a04105bf2378cc81c60acf6102028d29f83db1b5cef36736bf8440430afe8b0719cba222997944c1cf1f59318764e4141d28f8618896cd12121a4f70734fde905e3d884e89ba808613bca81e3d1dc77b10420c8d26f8d95dac364b3ac6e22fd0608293ddd63f0ed36309fe250bcfc1d9848ecb43094e16719f354bd3213a92e078103d0c21765162f491e064f24d51c5430937cf11dc4a211d958731467052e542b3e4384b074b119c24e92fbb5f8c878810c1f7b794cc53d4437033c79aabacf6659115822b31237dac9cbeaa09821f5ff6112b39cdbe81e069746a8d4152494eeb0f9ceb605369eca0b93ef5819f2aa668d5f1d8859d3d702e759453e4aa2429973c7033c4233c4777ea0fdc811ff4998ba7909f8e431d942a67f672e07b6ce6d19626a6974603076e92fee80315edb49aba85a3e51f440f25fa58c7166ebc85ba2c3f3363710fbaa885f3231b62d2d2b07e1a5ab8a1628ee9510804fa075dccc20f7fc93654f2f7f25a168ec45691eeac21759074110b7ffed4273b76df54bf0c07030c52c677010b373dc6d439d4d09ea1d2c52bbc13d7ced6e8e10a37749c4dd383dc2ebf69855ba73671f1352bbcce5335ff4172155ef434122ca3df48c85815ae6dec283c974a089768c056d0452a9c9082fc9b7a45cbb44185f3a13f96495a2eff9ec251cb59613a4e2d996d0ab7e663beb273f8f0d15238d1963247467b099223851f5bf8c8a1a310267246e197e6b3efe4611d9e89c249f181a7c47b0c998422ca7b4a64a8458c115e48218957f8c71b528bf0378878a8b8b4084b11fe8438df98a88ef389705d3b484c163e0c394410e15998930f9b92248dc8219cf4d28ec3fa30841b215f070f973a4447219c2cb351dd7a42382292a31c49e8b9cb0cc249167294d63e27bf8920fcd8390a117290c3c41d083789871d992db1260a08afc2570ecbdee15afec1cb8c92e9364927393fb81d84af1c84f496d3d787c32ceb9c42f4f8e0d49d8bc7ce6016de8313ab6342f8ad0f9ae9c16fcd31a4ac2c0f8e6b6644fc6b8da71a0f5e957bb81a8f3bb829729833468e1d3c7915ed71ff20544c1d5c89390eabb359ab6ce8e0ffd685f00e42c7393307d725c494ee9e6388ac1cbc4bfd8166b5fca9de387839ec0e9be34bbfeac2c1a90ceb617491ed70dfe0c672add14af37daa1bbcb0792d66a40d6e58ef7b6dcbf923d9e0d455697c079b3c2ad7e0e438af77488e5139d4e09c87f19525f2771c4c835f1e3d6ac76bbd39d0e057280f420e3f315fcee0679648a3da99c18db0d9255365193c49fe75f51993c189f2d3c1e39c3d3dc6e07bd8982667983b8b183ced8cf0b151eeeb0f83ab61738c48b339730a189cb77ca972660d19a25f7072b67c95ba3b5528bde086af146f1d76aba60b7e247fd6e98266bf70c1bfcd1da5becf9d43710b7e70a3217f471e243d2d3829ca2ca9240be51c4434aa5c58f0b6cdb248ca15fc9842b3a369ade08516cd31345305b7da3ab2e81eb33f0a15bcb38a141f85e8305ba6e0ca2409b1c3889d7f22056fc37b8bc734a22912053762b6ca81ad50f073b09fe4edc195974ff046baf387b835cda113bcf114fbac72f6b45d13fcb6892fad0813fc9839d4b6492dc1cd88a16426e55357aa043f8ca1533eae8ffa264d829b7ee31db7d9078f14094e4eb1a3cade71043f764819fe2fa4cf792378533dad52a572f12982eb1a96952c44702be70d391e49922e64084ed218657216de6f2204ef6724a98731a53a49101ce9ca689eb2e5df08108c9855738edcfe811b93b53ff4853c37fbc0d31c84f330074ddab13d7065d39a5abe0d0fe1816b351b21d91df8d7aea1eef3474ca20edc4eadf9274b01e4c08994ff24f8898a6a29001c385be9f739c7d44e2b6fe15ba4b0cdeec186b4d2164e853ef1f14a39da2a6be15cbc5ce8c083165e948914f9e4ebb463166ef694520e92a93dea90851f76fd31529c98e763e15fced159924d2acfc3c21fbb0ffac7535a735ee15bbada9ce963c6deb8c2954e1d59e7b2ca7eb7c28fca397a489a156eecafff1ca7bb4ef22abcec090d49abbd93aa0a37489b57eee47292a6c20def20c71ff96fe71315ce895fec146e4796fbf3473fe54134853f3e1e580c0f3b3387a570225745370f22e7d84252b86d6ab964b35138e993e7f84ffbb05f145e14bfcdceec9867130a5f3efabda5f0a1a1018593d324e6f8a7d25be6137ea86429bd3bca31da9ef04b7367ebbe134e466e890f54db5de6841b52a99a8c5d6cbd0947ea4d634e9fdd2dd584bfd271ceecc0cb846ba9dad91b1f26fc28751c9792624509dd253cf38e723db329f38725bc8f7d5a3d22fd9fa3127ea7fc516fc943778e2f43224810fb9884376d775d963662f992f0839968d2e18984ff31886aec8fe4810512cee7601f8670ed223fc28f19a37cc6791859e208afcb6ee2c3758e8d34c28959c9dec63db69e117e241f72e5ca399ada8b70435eb7d7ec9339d58af03f9d97ade5add89108ff4a36a5d8d8136546841ba53b42b828cd8a0fe1068fb5e7225c8db58670b254f650e999294721fc38c698d19295684709e17f78f4e8cfdc37ad83f0e338cefcd5118413a6dcc2b8f97a9b81f04d7e6343c800b1e51c39f3e20face5f48e79cf0f7ec5e46f9f36a50f6eb9c7a7249152c4ccf8e0c44bb2f6e8b23d381ef3a50ea969e371e8c1514b1e6242a50ee19107df3c739c79f27870e4d723447adc15f93b3831774a8fb3b7839b56e93de7c8d1cba50e4e08974c8f363ef0990e5ef20d89721e84e4780e7e902f47ed37ef105939389335c47aa271f0536e8d315364b40ae1e0a74ed2ee1f79b2bf37382155100f65565d9d1b9cca8eeae01ab5c1adb41041da2c89858a0dde8f898a048f3578e1aed681c7281d7b35f87134b15250f118ba92062fcdcda4ceb0a9d1468377173c0ec931e6ca195c0f9289c49609d9b019dcf45179dc1e7d56cae0d9780897e092c18f3647da6138c7e077aa89da4a92464531f86a1ead434d4cff716170bc2a759072728b1b0c7eb6f14c4b8bc8cebee045929822dbbdbc2c2f78f371bc214c4d5e74c10b1bcadcfffd523adb0b2ef88147c719f3b5a4e89ba00c320ebbb2de821fe5ea0da1038bc90b2db89ee9d34b5bf0380c95f4220bae8460b379d5cec482f729c7e595535bb94610f7e0c515bc4e6963e43847c10004b05e70658c11060bccc0f2c20adebf870e226d2ddd442faae0648f2b2267e68d123e15fc4aed392245efec1c998257a9f5516d21e630a4a5e0648d395c5a999adf4b062fa2e0894a0729479adfe35a025e40c1cd51fc73f41a09fbce8b27b8124b2cd705d7095ea84e5f09a392efc5f2a209ce7b2459f3d9115ea3185b676394710632c14bda41be985e8b9cb304ff2248fa918a194a703a6448d91cabbba431094edc040969c4c637077981845bc264f1142a1ff0e2087e0c154cfe5390cdc9c30b2338e9354c642f4f07bc288273151dfda5d13c3124811744f0dbcb72a8f1ad8c035e0c012fc92969f3420847878a9aabb559060db38d75e97be34510bc8f24bec25d6ebd00829fd5bf235c8ab9ac9e2280061cc002154040060a30c30c7201191430c0b082173f703aa634d9b57931b65017025ef8c0cd646b124453b5e6350664c0e00c8e80173d703aecae5193e0e6bf8ab1a5693cf0dac2ab3665483689152d05bcd8819fe6a2c22dbd86ccc15ee8c0df889499c34fcaab85012f7290cfdf47b90dab185b78c70b1c3899993922e70561605dc0c62ddc0ab3317b248509a9d9d2800d5b78d56eb6216466d4c2bb1c15468375b88c9f164e872495d28376ab9466e1865493f3d68821d5cac2fb50fa5652f82ee92c16c5749782ba79b80d58783e9ef29647751ce67d85e739ea8e4da3ba8fe4708557b63139998769859bc26bb899c588b964856b2954a848491fa78957e188a7e9388e1252a82805291843026080a10a00d848051d6e19ef1ed56a716a559aac2269b458cb508c4d5434b1a3b6626ca9404fe1cffda64806ef98a09671609bc2f14eef402d4b7a2e2d60a3147eec71f0165db367ac20023648e1fd8bb7668a0791331746182b28c3c818230c163cc0c628bc181dc253cc8d07294714de5bce083ee2397cbe6d84c2c95831d9b0f8cdca01851f17394a540a0d17d7277c491355c248cc9b2ce7093f6ef51c894a6c0d1175c28b39426984ef1063856c70c293742b091b34b29f658ce3400834a00160801186d9d88457671e54c8c7d9d0849b3f34875566c9842252deb61eefe66d212a980761e2a042c5186b25535ea297ccd2d09637b535d70c1b96263ecbb77b58c22bd79462e80aa61a5d25fc641eb5fbaf74eaae6d50c20b0bf9b36afe806063129e54a749a8a412dd912609ef43f540d3078b8d48f8f2edb9e3e8524ab90609377c2789aa122d9464361ee1c9c59628b11929c56cc3116e7a8ec127b26a841f24acfa849b30420de2710a9b356363114d5776b7cbc77dd9b95549d7e738ca6c28c2736d8f6692c354f7f2fc55036c24c27bdff490aea11e86ba39b081084f4d3d4c125353bffa61d4217cd3a82d1e3954486e1ac2b5febb30e9d042386aeb5a9d24feef7c4e33cc602d800d42389d4a563388bac72c18609c415450061947186698f165c880d38c5b1b83f02be483f4d06a2d875e104696de50b9eb04c2ed4e8fd131c60e3e870171c4884c69447d349d21c7c61f9c6c96e5df638d1fdca4ea8107dfbf39e663a30f9e4799b726bae7831fd887b61c7eb2e435f7e07b1c67e728abdfa59c62430f7e77f0c19df6753429c73bb091073f65f62821fbe3cbc0810d3cb896e9132248f6a4349e31c8e080aac0c61d881811ca6af20718607c1961d4976107275c7f1039de2018606c1845cc38e6f30636eae047d5e77118eadf2ffb7470b2fc848a313104d89883e3514e2ae271e6aceecbc18f73a4192c498e33a79c38b8924388dce790b2276b030e779ca84adc9bcc9587974d47fddb51f2b5020b051b6f7023e5d198d62736dce05498945e3e2e8cf499820c8001c68651669c41460acc601ed86883df31acfa47ba8fe3726cf0375485c860af8d3598293b0eca27cc856c6ae852ac652c53d4ad42e49eecae9c7d1b69f083e59444345aaa766da0c1ad7022ffb15ba58bfe0c864b978cdb55847bab8494bd956206c7eea358390889417ec118e718d06cf529282e20e33456c04619fcace963588b1d07793a639432fe02608001c692c1cb0e4290df943f0af9b03106dfaa4f83fd7aa8cc121b62f02eddcc896c481f87d808831f87a6da933a0e45f20718fcd3a8f80b6e7f209211112f7819c3721c1f644739d205af7e2cf484dcc185d2554c5ca5e4d42da5d9c77e1dd5d982671a9ed5a31c0c061851b0a105dfc31c73a4bbcbdf1e08061861d838650c7d1716dc38d39451cc64335a0ed8b882e3ff35dbea3f72bdb161055f2a5c7d5d4a110a6c54c1cf15aa3deeb052cc41c68751061955547053df848d218d09868d2978d99384d4df1b392c062f461936a4e0a41c65ea0e19a2a568cd2883b0a0c7b01105dfa3d4126b2eacccba5a810d2838773147b79ef3d0de330134e000f2187833460a32000618877c1962d87882dbb12146af34da7082f3b19f04ebdfba0b898d26a055d6650420730101cc6082e351e84df31a6a1e6707b004a7377ed2afb3c3a465004a70636968caf5f17f48ae090690043f57796c9f599a150680042f4cce410cf748ed1db2011cc18d9a7f3a4372e87892626cb14005e6cab0c00806608424df7747e62531032802ed12437f94a5830c2bb506032042dda1f6764816cb9e318021f86a152386701af1174ec10084e06f8ed954a35d96af8f20789a4dd383a5dfa5f681e0bc59bacde49b0a06f0832bea83e4d8f9a22fc707d9ac5596a64a5d87498f372479cb9f29c1007ae065799062cd253db0200f1cdbce73e125b4fba606b0033f4e9ad35523f5a68b0ebccdeb296bfce7fbc80072e074bbf484d7f898ed0070e0751052ba5cc1e3166e8b66872d9c8e3eb00b627697f9af85dfe9c46333f3b4f063bc2bcc88a7fae0cfc20d61b639b6f0b9ee230b57462b3e53675bb5c4c24923c95d3c082cbc9eceb166e3657cf20a5f3b0e1f7cf814b2ddaef04a365bfe8f83b095b6c259b118b5c364852729e4284c5a93dbe05985e329580a612b1ef77554e1f8cc06afeba4c24de371aca221b6dc6f50e14721c64c9bb3f8dbc79cc2ede052e68ea318537897b244f44b7f26cf94c295bbaacdb6395b4449e187ca54913a0e9398965138e59f51734e1ef74716517841c387d9710efd1f24144e8ebbaad3d20414aea7785f781c32934c3ee15c88c827617ac28bb1ec22843c9d93453ae1c590a98f439a04cf73c2d11c868a7e1bb375bc09a7ccb7d3a2d99a70becdf3a59423134ef43807bbca21a4f460c28d9d1e6b46c7b674b9841f152679b2ca5f58c20f9952daa4e42754fc4525bcb7b9d71c5296e489bfa004ee9f59ade1d949385721d2e38b5949f81f8d5a85b01069341b0937446ea6a43da5cb2c24fc58525996e41cf866f711ae7d94cd93a73dee381ce1a435af1c3d62b4e4a18df07dedc2c5e86084973f47d172f068d2e74578d93bca7110219ee92ac291489b3f8ea276863211be86e793cd41f00e9322c2492107971e5fa7a17208ff03f328bbd5107e90ec1ca5690be1c7710e1661f24f0e427831246b10bec7610e6e53ca2f04e1c4ce1b3a5ec9379bc62f02e17ac6fc9d83cc1eb2865f00c29138f5208779e623c77df1073fe4e03bc895fac11f4b4935fb93f445fae05859844c9bdd52c8f2818c9a1a1963720f4e889c3dbeb5b27ca21e1c6bf9e8e3cb83771e758707dfb2e5ae8aa1bd8317694d32e4628e52d6ece07f86f41ea705af8b591d3cc91c937a881dca07191d7c5f0fdb3c152ea25f73f03d8d76b8ff208df82507dfd2e2eac39c61b25271703a8e67728e0c0f9a2e3838bed59d34a5dfe05afe0fb7922b468b1b3c8bda5b31fba266ad0dbea7c674c694d7de2a3638e153c75a9664ad3fd6e06f0e21bd4f44ac9c5783373149d37fbe75cfa6c1f5a8a9534c8c2987221a5cb954a9d9c2bf5a8abe384319735c4aa92116861963b4de176620c7395c487a4dd66895a1080b9390b195ea08190f1e39f4e45e1355972fc8e0b5a95f888885f1c518fc286d3a9fedef14e1c343f8420c6ea7741d4c724fcde67e11862606993bf005184e8b1973103ecd79f08b2f7026b2355ab61a1d9b591b39a7cf99f482d71da592d4c4c58c1b7cd1054ff2b5cb854b45463e56adca63db701e15dc82671662ca2146f960bdf285165ce90d972e3177c9c64df8220b5e4c7b93580d356b1e58705cfeb455d3927bc95f5cc1938e0fe3ff245f58c18fa393d68cafef8e48155ccd418a091b53e5c8325458d4b66e5eebee55b44d7de3ce829984c9d1640a8e4a1e57498b78075f48c1cfb2d6a89cea35d47c904146191738c820a30c162ce18b28381d562873ef6c1fb58782976ce46e62f204276788293e4a9346744ef03d186d0fd2d5d4b9e78b26f869425f6887d9327c30a1ad0b5b97f80a0b9792efe8a116b20427edbf3aa6cbfce00b25f8eeb14990141eb66a4e12fcb035e4c3c6c57f982cc31748703b48962cd2225c4ce12f8ee0b94dd0f860ab4345fc85119c90a23d3ab79473ce413e05c5822f8a5075d7cbc64aa6588958d5799484cdc49c65436cf882085ee84d99ddf19dc4241211be1882973cc6345136ac2ae4bf0c16909171ac000227056388b1805ec01742b0244ff020a2c7903d667c1184bbcadce3db355ca5ebe4bd73ea0808d9ac46e8d4af267ef103352dd2abebec2233ab5dd3bf860d91d57e1fb859b36bc518930df8a2077e201f7dec1593c7aacb173c70fcabd2bdf6a6394fbfd8811f59423a59f1cb11db173a48ac63c335b2322ce3224db4b72df38b1cb8a1de2f3eae9828d97d8103a78324f1586d4a2a57376eb1865689a55474d59ca967895631b9791879dd1bb6703c5c8e31ccbcc71353376ae15b8c8b10df8e2c5ac70d5a38f9a256925b6d8c508301060f6eccc28fdeadadc205cff074df90853fb7d937397914b1fa462cbc9164d121e59fe9ef61e15f5bda089bec2ea668fc0aaf523e0d293629db55127075460cfe1670c3154eda4811f7b0e3462b8c6ad1aa13938e98e7a536345678d92b36c9a791378d29838c30388cab0adc58853f79a53afe94230dfeae80941186095630c60a56405860461866bc09ce877190a713c50d5578e9dbe7e253e23cceb080052e48859f3e458f4ad559de260f03325260a63750e1791c1dd779ce8cb2fbc629fc50b2a3d1508be621bd610a5fec52d88a991c13fe52b8d59d42064de906297ccf68295669d60a39e8821ba370f25d0e724b8a549abdbf210a272b4aaa7bc3f974e44628fc544b27ef9d92b8454c7003147e147ce342232b7dd8def884a7b2f92cc7c41c6b466e78c2e9f9d88d4ee4931e689ae67ed5500a6e706297bbceaeb62acb9a90ea28df7aac594dfa4a6e6cc28f551ea5c7329fe49726fcedd20cc16cb31b99f0c31c91ef36dcc0846f2184b58c35b192b715c0808c15a060051bb88457174246ccd239c30d4bd839b65fc118452be17ae451e87083126ece68dff3d34dc2fbf659c7b8210937ea53b8f5794c9f236f063722e1788e33f1e8422d3a8e0d6e40c2bbfc51df4d4fea20d6a68f70fe3e0e9529774ccf961b8e704e4342774a210d6e34c2ad08b973c458f2c99e1105c62dc20fcacbeed332ce60c10d45f849bbf379846d8f27cc8d21b89108b7a3cfe50d5b561261447c1962deec7c1dc2edce7cf2390a1d2e2543b8eee9a71ec275546a1c46a9136e14c2ff3092e74acde18216bc0b5ae028302fc6026e10e28ec1b55368ac987163108e5908cd18423e8b8a81168493d26415b5ff46207c4b6e29a67828b1c6bc32ce60c1dd0084d7da4166dfcca179d8100237fee0fd24cfe74166ced251fce05fcaaf51bc25544eec832bff91d2c71bd9617c37f8e068e71e0f32cca3f38e1b7bf023bf8e8ed98e1b7af0c3bce6c9e2c32da6fe461efcca20a341b286e4d0dcc08363913f8e37a6d364b937eee0a498917e3a6f07bfbffc53073b0eb1d364ccba41073f664d215434871af56fccc17f15cb51f6402d5d856fc8c1b3ec1fe683280f128337e2e0e414f992ab8cfaf476030e5e4c21db4b8a7c9d66fbc08d37783592ed3ffebfadd0bac1cd717cd21d5d42c6a50dde6a754c1d8b76830d968aac4447457648bd8aa96d750851dd35d61b6b70ae7e52bae4a106a72fdfc4ca173647471a7c7b8dc1a39985923c1a9c093241247458ff943378c12cbc57e71c4ed26670824f999ddc4719dc942b3ec57d3be8fa2083d721e42cc5e41f72f818833f97daa3d2d7ede6430c7eb84e7533f2110627fffcbc79eca0347a80c18de077d94304518b1d5ff0ba3a0533bffcded7e105ffa3d0a13f3cf0d0e8e8821f6694f5bf681b97830b9eb94b65d8589ef66fc1f1918e32e61c728e395a70b225f885e920eb62b2e065c9152c789243edf4ca21a7985cc1ef9463d3983a6bf6d40afe4de4c9d1a7e419c52a78b131e357c36b50910a7e76106345f4a6e09da7ac49fd72ea2852f026e5682b485970cfa2e0e7383ba414cbfa721414fcf7101f783cc1cf74611ddff44e702a45098f52fa26782147e4184d153d929e09dec76c8e616a2d5dc712bc943ffdbf42f7a65e09dec9948bf85852cb4982631a4473146c24f86b7fd16112abed8fe0ca8711e627aacdc746f03e32979accf8582e825bafd61dc6fc1ec725111ccf23f2d291835a7008de668f2b86905e720bc18b29e52e8f2d17d50b827f9e6a65cc629c66407024c71ee7b7fb4afd0ffcdc13620afdd183b97ce0b544c8e9816f61512ee483074eb5dd84d4f91db831739c5bc3d781d371645ddb86d69c1cf8e539e68e32e7060edc980fb25c0ed272ccdcc257d3f2b87c23f729b6705eddb5a254768e2db5f0e62fa57f18ebce675a78e95ae32ded2c1cb5f3348f6763bb2a0b6f3692496c32164e8a64cd07a38185973a550a3144e6155e988f66cb8397aa0f57f849f247f9c6d30a2756fa9c32327c3e58e17898a27be668f7f8b20a2f72e0f93d54e1e58999ca369d0ab762ccd162d9a8f02acab4848d72f2c1a770a2e3cd29fc8c7d4ce1fc67f478ed3b53524be16d47e9c53e2ef33149e1c797e93a626f0ead8dc24fa9c2984449fe5389c2cdd89c35ca580a1fa1f0838f37334d4d0e3f28fcb83a75ca1e87d07fc2394d1e686fae78c271c9818590233be1aba8faaffd86ac1e9cf063b7e8386a280feab1093723484c1e826c5aaf09af3d8e33aff68cc49c4cb8ea1dcbfdf548cf0713cee4bfb0da64111173092f726861dc3a77a48a25fcdbec90aa57b363520927663199f01452294209c77bd62dd6fbd7cf93f09268ba91ccab926149b8a1cf35246623e1a7c7867d9c2c4b6421e14525b77ce93c97451fe17998a33fee54399ea823dcde48fd219d8d70b3018db7a804cee4e2d15828188804c280280c0829f2362314080018401e8b452291581aaaba3e1400045b262038362220221c14121216128a44a15020100684c26030200c088502a1904808ade85407de25c0311b74c85744aa3c58b1d5158ce9e7a6c0634ab186c1f473211481443168cf2f9587d4b92fa547c4e4745239baed65beacc14b12d0d5302a26a8797cea2b5bc911af584bd35820a23bf32108ea300da470916a8c046138a8575392f3cf06d4fbfe86b568ae31434e218c35108e4004a79f8dee43f34e2280492d317c962c39f76fc6999d33d9003d9bcc4af01c3adbe2875014a99d3940a506e1cb4ab1b738f93bc3a9711290666d306462a0ac67a03f5189ed5ba5ee2721b453daa8441dfccc8dcad25d8f8bb9ac73089770c00e0babf38639293ee8908f2ea3e658d84a05fe83ad8edaddda900ce5b8ef0e49f45684c049e6975311674905413a341d4786a23e6ed35475102928f0f711fb58d5689cbd8775978eee0d5b7bab2ac04d99769eb00c9d7b906baaa5ca4eadd83ef8e623a50566c7845c0c671149e747a50910d007bce6f3b16ec695fa70c89476ccc9ae0385e5f7681c72913db8678a3b6923a50776584d556ddcd61bb5c21a6a5a82a4299ba897b7556b6a0595adfdf4d0aef51158da8209530c257fa8b0c8912f433ec25ab40abee6c6b7f43235334dc91738f07963345d43d4e91378bc713407d445bcbab9dcbea32c53a07f5226322acbb0cdc2e0a146654a3bc0e7611950009d133a8d1339a153edd40e9bf606f99a5b6ad8d8c2ba41b7ff02314585228ef7ef8579b9e2f392fd1c9a94431a1d6f34bec350841b6692a17234b46e27dd8e00745a222b04163150b1c3c3d5c052f370f0813d132d60a12b92325bf5a755faf1cec5e14d6be06a511255d07d9b8540fcfbb09eacc68b2770681df8ae2ce24e7764e28bc91a41f0598ab5ccf7cafd82b07a0662281a2d129197df06129151da7c4a802d444d8a4f07cee549e6a3528977e97a4334ea2fbb728015c75ea0b9e832ed3166f2390b1be26192d0c919a8a8090021b96c057a85b06e35b76567e21483710eb7cd509e83b939a7e6b12e53ba130b04cec57056858fd63e0ef72d948a7fc29983e0b05cc1aa4b0190d3be08e4b430c154b487a4c542a6832433fb429c639c6fe5218e83c085c2b25e04dd8974b3d0f23afdf1bbb0b3efcca1fef470fecdc2fb38b0e19021ee8b1f139bd5c07df8db15a06f99d4a0880f0736de5f824d5a41ed9bd589227360536aa31d93c1a59afc6e9ee2d07cedcb8c27ee35de40f86728c9eef8096630563daa0bc15dbe26b65df5b1264178087ed4d2591946fdfecffbd9331e0232c5c770532b4c294bd529265eebb0b500dab03b90c09df7dab0d143890d8a8229a4092446782dc36bead278dcf4e02effc6aaff4bf93cc39edde52be25165bddc510913f2420ecb4b4d6ab3a649813dc38e2fad83163ca35c7e37c7d8336cf21654897bf6e2e2375d13eccfe20147340871422189eac7469900b1bd5e1b4ded5bc921391ad94df12c96de29022f29a33e16ca9ce5820763cab56468baac54317e235f51522dde46bd770cac0d58f7b84c83c2a3457af7b34567f6e57807f98727377a03e7bc0960179f7767902a48632ed862688aa092a37bf07cebca1baf3a73a4effa826b821b217ddb7fdade0199388fa82ecd185459f79fbe093317db59803de5d1c9439c19dbfdfc09358d8b30fbde4960f0a06ccb8fd733d8550c0aeb8140199dbab2407ee9c0f61d17553812c62640a90c3d6482a38108d4a465ca2c979a87141dee6ff8ede982c89271651ab02507088fae332377fce7450f801104d4a1ed7c0eb3173781998570ea85112755e15b96bf8a97d738f12a2c9fcdfbc8db74efebffa14f980904786959c132b26d3ccccac375bb4a2fb230926fd03e54ad159877ed0f1fa0198c990bb7ca97c51bd596729683e840c422701acaf687166a2b0c30b9068a638b0f8826ee74e9a6baa4fe705eb8246f09f3cccc23b8f58b976d48611e71002a9376c68775799bc52a7cf8ca9618639e941c104c9079db0c53bbb043edfb419a8d140e8f83006ab3effe265943eee3662424967b0ecf1b977f511164e220555b7f0fd970492061b1430e88643d97325a5fb7fa6de3aa8692ab80286a96b9f7c295bc680e18b7586520412df5b7d06ea6b5c8076a9b430f046bb7001bfe01c284bb6425dc87ae0764102c2fc063a1f1c320569ba06d5a8f6afb6d5118a2c3bb26ee727bdf4037f5e76295441edb54712d078482a4f7fa5fd5437fd96bda143c8ff86191af441a8fd8c8f80629f810ddcb0acfdeb88454c08016877a32333d163102cbc14cdbedf0568e02c840d8b662b12569524ed47eda9bdccb4d530cacadf8b1da989365a71e8eb407091a2c42c0bf374ad20d814b8980753502fd32f1bfbdface079e8f8e280c122cf50871c7b0cb59c39bf4f0d1c97a869d40724b2a6f104c34ab9a90730a71444e2bf4de0bc5242dc0a566aeb043ff2a0f4c4e71810d8020d603bf08d5a5e1cb36343ce1ac775c8c67c128b3c11892ab22b6edb4883a6a5f4e87dc275c429e9fd821034fc0314183a66c58417d581d1eb72c8f1990e0902a91f714e1301e1faad802ad56c7891ae80008a6fb67fca098d8624f686d35fd7f5c24a3b19426f7f8fe32a84da98d15ce12f39f408074166da2c80b05a1dfbaeaadd13410c2d55db7906ee8ba715add240bb874e2553bce3b78d1d4709f3a9e70bd77b83ef4985cad23adc7e194e16637ce4de7760eb18b175b8f4b4f3269caf8fa89533845330f0c2617b3d47227ceeb48dd3ebc8f672682465104b1d3ee2d41a0cd449c3905d33121d370113f94d7769036336a3a55ba3ad6620ee518dfb183caf7814b051871e62f31dc604d8924290212a912b08563f42599fd143adf58922cc677e1987a107baa4b0aaf11e522039e070ecd8067c9a359ebbc2053a09351ee8532c69252e79e05baf49445d5a1cb908b78c0eea3d3ea6c2a600fe84589208ff69adf055804aa4e4c511ea39dd212c2c45e38e5d7754400424576cb31a0755dc961c5ee380800539d0034e53b56a3806495e9fc0c706f968c08214a899b4edb59caf7e1b08e9279c70ca080ae22adf1285f572767fbaa137e3a2fec4cdfc723ba4f47fe502eec41fc3e280f4b83fc4dbefcc71a8d1e37d8a6f8bfe4c7f2ce0c1519a8722b629b299272dd58d88e4169dfc4dda13b838bddf283796f77ed6135df5c4488a5ce06b6c86568bfeae67529893976596127889012ebb25eded1be8f877594aeff71ae611b7d2de1e6a916a1129139cf0053c3a54385d66c431b14a7f4c48f960682a8d6dc6a18a9382648b13b7e286fcc4823c20c3a08698a05b1fbff50d1bbff464e67ca96b1a9fc46a59f074388c265f608928d06e772946fdaf1f27dac579e873eb776a06f824c09e9d9cdceee23c6b7510433a104e27dc24ae95ecec771dd3235b3407d0129aa2bba5427e056b48f4894f144bfa8c36553c0889e5419f948503b4566c27aa519d9a4111cd5867658fd855c8d237e286fec481fc20b3a0839335614d9da3e4c47fd3e1c7bed636051c62bc7744b00b4410448ade251664a17fd521edb495f15da076031fa1b49da3a26464ca96383c0502db32a0b240d086811dda20386249fd998a334c742799d72997ea50d613e1d21439f2d276bc9f3c1c1dd727b99b163b58b08ae987f6e46f453fa96c0ba36653deee1fcf40f54157491d69538b088d28f271c5906c262c75915862a7725b0c892e117cf79626366b274d72078e08fe8161defdfc7b44838f81ee7db7684fc22b53a2cd04830103dd86be6c8fb7147c7ab76b29c719cb84a0a24c24cec5ad1d5cb6ee044aea8214b815791a64cc8524c98c358d67818c36ea874319a8fc8cd40ba26ce8061452bad81404eee7be798e2fa46179124ca22da404c690103e07aac78db4cd1c0d3424220cb3cd8eacbf5e89d0aa50bde8625f58d20d1299ce4fd0c4d983e14fc2b8b755ccecc9ef72ea3ee756c2bb7d438df4e42b8c9a7ddfd11c322c6b61c03326f2d03ec58f4a5d586be36ebd666c677851b2b1a8274a8c15765b6142e15d9a606e3da6029228c599a1b6341397d1f0dc196560531269567850f05152917c03eed0c08c3eaba84a65f76b82c904a321e1b923225b77bbd76148fd2055442916bd10ca4231729dd58e13e1adf0eb420708b77818a695e24345498daf710743b9fe6a1b5e69229bdbe113d8b3e1ffe427738dee4ed5c54fa7c17e5ed998b7b69dc6761263b9327bb00966e4e5fd3bec295389ff63c759e8d45a8b138b8cd70bc841245b19a022f46f0c9dc6c9425bb82f5912d0e262e04c703081ede1c1685193513303add3b4921d4f181f7a9fe6be8017e22c130d132d25bf4a6cbada32b5304916641c449c319084ea41a7ea7656b3c1558d962331ab307243d36c774c4b0864524b256eb10e4ccffdb2473d19c5a82a1ce5369dc1c3b059235d35b7404abd76d5c5848d95e5528619dbdd95802b4729509ba049ecb398cea580a6e2e42a47a3ce68b264c1622649fccfb864ab3195e66f87a7c82e8f9fdf175078295ff88d60628ffdc33662b74ea5368342d12326ecfc1c5f938c6e02b95a1d5cfa31a30cce696f9624918b7b7c12f763c8ade9f14140337eb7bbbeac5ffce178f7f66312cbaecde92da6f4b111cef5534675de1481835df7baf2665655045fb281ebc33316674a9286eb8b99abf63bc7e4310b768545f19c498ea8bd47100ed574a39a85339b72a87dd0cb4c5d0fd8e5fd1236d26244f8148b397988a4b5c3af8ef4764a35379aad33a9da8f2ca6d9905b5271e35aeb27c9b9fd81cb8ad9bc4f7ee29e45aafac624cd2910a5a6c9d3540566915542a54d51c9eb46d7a1b2666db77ea54c635b1e96c690e1a124e5c016dd93b7766e9d5323a56e48d1297a778761b7f9d82fe52665278e1f36d57f868bb3659c76874127ae4b7097faaa24ce015371102b55f1d13dc491c723628f26dafa1a8b0a84d8aa68152394b8909b93e7e9d0a0b7dfbe78e9c02c32a752feeb3c9793be380d6e2c709337f5aea24135281a7a6319402717a2118a470ae0e61f81df989009b1238b83709734efc55e1c55718f7fe0e9bd9c643e9c6caafbcb3d5b5c46b682240591f42a379e2cbd2746682e7be77fd765586a5ab04fdc23939acb66f8f9ba56de8ec9bdc6fc7c863f12891336f14f31fc3e0fcdc0d1d3a49783c40d724ad9af6521d6fb0b0ce4e37b4d653d5826788bc315a8cbd1ec830ce57c53c551bc24ca91d15bc2a208f9ef43312b65b76d52e829e8578cce4a745a3324ec6949818e24f1a72b889da8c8c20a08ad1d30411a6754ed48b06c99b7954afad7f91bed2e29e3fa345051b9775686bc64b16544c529eecee6bc6e2cd03c4419e325775c87be91ff671de6ed43db43f123fce3bbcd3860aaaa6db994c48ec19d1dc28172b2905a0b2ab4f8895c6e2385538347783e3ab84d2f978528a7f224bdd77c0bc39a918cd81f21c44f6841122fce852441d670397dab659e71506017b3b35dcc6c1aad92a9d8063e91d4a03410e9dc723c21850b9409612fc51fdf107eb8a4610981bc466ca9bbf7599d8b4032d68f65a3bc3c7c35ac0409bd10f4cb07d60041ece35dfb81b2672ad0d0e5ab89beacc1d73326e0aa4896f6509700dabf20e12eb137f75fe6620d7450a968cc597fa83ca39af250812302eb700480961a7015042f9a665cf81c15a52ab0a5e95ee2f6a02deb2926e024da4e75512231337a9b9f0f7ec9b23f3ee5a18afc13d1488dc38af28f055e7908d8c6579241d108b194a07cdd59623ab6e342f288deb70a7ebfc6c5c14ea46441731886464c35c21fd1b787e2dc764b4c08eb6c786f540ae3dfa254252958ea87cb9fb9bfadb94fb1c7e06f7bc0f3509895808fed4f4ee6b069287a53f2618c24d5a5e7710a9e0a49b3c5e1cca7127487d57ba4942c8b2316a0a6533c957894dbeaacaa87fdc66710a5f5499189474fe75ab1feb7b75373ea4004c33a71be705cf9b267c564efa503db36979e0650a13c30d86dd495e0820e7c63a8858361253c496d4d15f54f9e1e840169d4c43e120e79245d18d0f21259f8a118116419a61417d790714f954311d88734274f12b58dc584a35454582c096c989e4f83c8b0b6a5079ebe782497084814d8da2b9f4a471938817e84665d4b044ad8c31ca4a135f8379d14718c8027f45a81a6bfc3c482bfa262716686433f5077822ce4d9d6f4f6506850649f8278803efd3f35ce395d3320dbcafce5f6d810c749b2e5cf0ce13294feae3a194ff64325e02d7002921195e101b449de49b70e79563e03c89a7b2a6ffb5ab3684dc1c5639c4165d22cd7e8ca77c5f903e57a26833d77e2053da22bf7eb5810b1960141751b73b63096a21f45c95445f4ee36098344911fecffecef8392b3d555aa2cfc74b5a335857137ed36b34c1945c55980e870936509c536199ca7e6efdd50de1744269cef330ad3b540f8b0380bfc57765b84febb15f993fae4300870c6a61a4287afed32683e63ff89886db275297bca9e9da6f937b09a6cbcc231339243e36f5f55f7c18a25a8584709e28554b5ab584da7f471e67c0d6fc7c0eedcfd435dfe05d23b926e509aa5078abb49093ff82bb2e641e9997facf76b3d05684b756854400674780247a3c2e220869f1d51e6b56d58ce84662c7455ad58f3a2654b46e53280dfe19a5e688629087a76cc82f1d224f1f15cfbebad9a3a852cc4523e21be7286e9eecdf2a31016e63e8c4cb43bb7418feda9c4892a0c5243897e11042408ddc5d36466299b114e1faa9ef3f449fe956ab66e7d7f3b8465c18d27cd036a421262914d6459d285a13d0d1f07d5a1d6dbc93c49b6b79c626e41bfc83ec50a5720d348139201621a3f0162fecac94360140a22506f66386ce222d762e091935539f94c967886f60851ad6401b9330e65821b97dd48e0d081113b40a6ba08fd3bc56893801240f52d6ea0683628262adc8183ac22369c0ced82579d548689dcd051a1183f5d8d5d42965263619245fb4ce467855d57d2c76af3a294e21307739282f18e096fc5d52d1a8e72ae4f63fe518906a5b67cbaf9bb1dac29b04a0cae02fced56e3373f46bccefd03c1a47fc9613583fdec791661b49e862bd9f5b2d8ce07f292c3b33feea141a75bb2104d3074009df3eee3524254b11cebb0015e894421960056d335b1579594e862ca301653c62b18fd31f8b7f109d0ce203b90f833cc5408df34bea5768de4b46ea03fa1e95a6669bbaa48424e926cd55665c5064c72a0aa01e919179d8201b945d7e694bf9f83651f88b43a438e9bf21e7d809bea5a40ad11898b80396efd5ca3b86821cb29bb067ffca13711810f044d17f01ca6e0ade7d70fb3a42398f48089ef6749c16863c7d252f0192d5e501b3c464898c05ce9ce13834a924d99c647168ade7c615208d4bbdeac412351d7cce724f84a23209d01e11598321ca821eca0402173be7e0f6b9fabf1b41d849e4a84e3d86c1aedb88a87f1602da4ffc05f348bbb467ef673b235527384273b457a2bb49f535097963ccd16a5cf6bd271a24caac9ed47f1f4af233c049e2d35e7058c9cf68733bd9ae336d53002840149379089266b128833e7452934d9c2ce9843b4a1e0662d09c8f3bd343a45b664acae3ee202c896400e5df52c8e2df486bb1e21322c73567b8fdf4a89cad58ba8bb65c236dc757459554cdac33133e3342be02428fedb387bcb0c0823db3655375403755920a930f8032ffb1649fa31baa8e082cea4dea1b4bd79de04bd3e982a4a8b8c69d48f9faf292c4d8d0fee1244efc44114c803621adcefe47c98987af4a0e03da87c426fbc3b2b6dc3d7f57134748fe554aad3309d861476466d48f7d7836f1132ca9b839a96e84eb60b2f223ba6cfd6dfdb86deb1d2c354d670318e08f10f8c691405c5fd61aa70417bd8d380de6b1c6b3208432a41f9db626f8e263bee521401e31346d7d84946f3c86e093ea197886bec3cbf1dbae54c0e2b8e40a1960b901544463ee39a5778464ac9c86e4f8cb1039cbc91de7c6b461238936aa1fba3d316bcc6c85606e176a93b6375f750044603d2031083bb18060c73fd2edec0b593bef0b8c7fe82a55c8676c8410506c2197fac425963f370954bae0637ae5e2398547b6352a255f97abdc9a1b89a4276c83fb00f356f5e8eb63a9afe8c216b6a352b0aacc6a9aff54a0ebb94a4e25b792034aba39ab6fe500bdd3d9edec91bbf06beb120d1af6e626d4cd300ab88b87031c37f7c50db732b2f5eda3d3301bc94bcf4c20709f42b8bd6539ef983bb4a6f4938c58f9786125e987401d413d39660d98700d4d505e183bfa3e1472b212c5e5a8e254dd3e377204275287ae1020f484d887047ffed78e200008cc2938dca14e04bc22bebaefa45df79991629093f09cb6300233d5aaf8787a408e90c7f3043be2468d32b3b1266d01472e9be23426975347fd450dbe7f81d63644a8379fa8d3df921ef11852f27dca304afd6adcb95dbe33efcc026e66ba8f86ca54a9b359c2280ffd609d4575886710d711f13b389d0feef48cced3f4554570fdce011dd8ee08819e7498f0e12ae8268348384d35c3873b4b4f26d4304e9f36894846a7b6684bd7fd53b28a6390c4d33de2b5ea1c3d738ac0c78665b0e6cc481f6eb4fb0a8ddfc281fe21d6120e2a40c41b552f56e8a4b08e3793f857afec1b4474461802d62f2d2d0e8479b18ec8d4dc276cc2ccd4b6bc9717803f6923a78bbfba4c50c6b8888f9ed612e28a97a8c60f7e3a5e872912c63022889de6187f8aa741ef1cecf4a3458bc2eb127e096122080caab9c75ab42c4a2bcc1c49e7a83327df2c4553699c157cfd1434b4110b8ed4574bf5172af274acc9bbc079784a5bf9d608e5e22e47c34a48b536a038698dc49df401c1ba36416b43ac18c0f988190a036f689218bca737dced5073067a3b70da3d0e0586372123a43fe74113c35d606bda493e2a6f31136ed76389619a8feb316ebc45d2b85c03a38083beb1dcb468b82ce269fd67dca62b66d1ccc762ade23bb8f0e9cdc41bc3a078c3b909eaf7e28fbfa1e02f821e0a368977fc74b2cda45a8dee60b0cf5ea8ab0e887d31f23d56c53b7e2f23c3f3bdd8de56cfc8529016f9da2932efd99b89587332fb260f5ceb1bc2071df4c695e7159cc118f4e09e820202a517db5303ef23417f2f5891ad1c3a053a0b72073dbdf3a85cffaf4f5c189a66b30260a0542d059a77c00ecb105d9e538203d485863ca4217b1bcca33247101fca7a4161b02700a37f7dfc0363c3b601cf302175460a187d5e67b2304a214808896ee3c4e22f9126af05fad51bd0ca5336993ca85b0e2be555c3e7f6ed43b4973301ea83131d6e742da3255bcb5206d89baf8354791a4a55a4e6ac775575493526aba379f33584247b5950e5b1a4d7db92e754634e587adbe6978f154038414ee03af7ca1155862065e3114d1ce69fdf75a675d29637d08e5d67879f9e82537c8a9dca970b7bfee8c3e7e446f0d8d4586ccd73c431f0f3b4a79b8dea9330d118071bfae830586b10f249593742d3383529d76946dc1c400ce95d313492d9bf99bbba6dd090db51895f7652136b595f43ea0e43d6cbbe6d1b8b71e28e4bf320954bd5dc5821b9bce3fa695278ecde63a952ee04043a35164782108d622838603b3e0590f8b12203e55c60f85e24dc4cbd3dc831a7bd8b06dd2b51b91b79e09ed6cbfdca99ec554f97c104c98939ccc4625f631cb586b5a8f4ebdf53f46c0983bdc2a9c5a756c3cf90e20c300a9b0bf7c77eef9024065b1c15b5009e37699f91aa4b5a791c266f5975a4d91c132139e8738510ca0d111ad0087ed611ef36cead1458f11c0821415cbcd9031c8b778bc71dac43aedea97c08bb0388ac968a9e8030b822d33916594fe0c30b8e83b294630ddbfb15747cfd7ca2b5e85e3ad231cccc081ce6c6b9edafc37822b8e974e7ac93523621193427bea933a1b5e57643ae5038d53050d886da0fef5c9dff043dd22eeaa355efeb0258c8314f1ebdb0d1f707850fe3faaa617680ea63889e519a505ea84168dd8a7a2279fdbe3b5139d06e28ed6a978f88704535a63d5b51502543b3a1bea1aba190a16f4b2bf64c2704fd377bf0a12b9d124dcbb432d64b689985467e211754009a1eb1c2a8da835eb753de580771cc82aca97ae1356b6d4d11c692814b3e107b415e631fac31b706a280d04f73fc05d26fb2584bf159355982b89a8c760bd7cdd643c1112c0d5cfff6f38c4f83ac0e71b070a2ec70c7a6506c6924563b655d870c884b33300d3a3100ed91315dc7c692f128a6cf98b3104fba1549322f9fe2724144176d151016949885a65868551b566ea02111255ffa8764a0d2fa93e485ae260d08f3a4f1caa0183a2eab995151584e5c7d1c5127962fcd7a48c206689a73c8a34093a0910010411d03689840edf0ed801fe293e5b079988eb9c45fe22f715c62525d832d97293f91624e7c0e7a0023ea88f13695b721f7dfccea416e0291dea628360b5046b49a24fe328089f10e852ea72202f4cf254c8d949470230fae4607fd9a6df2c1f00443a6a9ee2a9d5804007c033572b5d98fe7309f0b319902c1b978a937f68ea58c4c5266be40f9c0d32539b9625c509658b4719775dbd0b1914a12afe353ca5a4a5a0a992602c94b9855babedf8f93b78ed0a71b1d8674ae340d625cf81693409fce7bcab989441bc08a62db7f5577c03ff31b2e9681380f3cc2a0d1b9d9753a145f731c77a22dda93b13521f37aa4b57f5927ae183cbaf1514a04685a8e0e1be96c58d194b3d4ed1fc62613c302f422a791dbcf30860cc9b6d618aa8bc931ac6a2dc8e7e5f9f810eb99aa29c06c18a9f295488d53f4d28bb6eb7114d794e98517b22ca5512ab5f1cb1d8372951b0657062f6bd0802aafe49d9e6478ee075a0ad17a25a65bc192fad75f3e1d516b5180b79935ec822bc53d4002cf475d446b1c96c9a550ca217b67170525eaefd632d4b6e06d4bc32200b0dc843261e8a810dd2f84fcbdd6c75b8e827873fdf52e05addd4dd02b54ddc938f7028b835738b4a384d2b6c89825fbdf8b4e3d8d69380cad3be38532b48f38341a9d505eaaaed2c7fd110498178633006f849b75e2e09e9dd5c1eac5a32077036b76b2f1bf748558af3fb096d00fa9fb93a6e438d17a8c3b4cdc65948bf8742e20287dd51ce7c1dbf48c4b45a3b9d028fd7bd2479be6b1734c8e0391160103b52651995bea8314d79553dbb3a843768f93a023a67ed34864fa74328538b18df5d8f0e4a3102bd139eae288221c0a733c5c5b9b31e28ebd63a6c0da0c12eb78720bf7269b710806665ca593df07be435c9bc99596f1960a1e4ba5652caf01e45de9602d63e6ed0e2c21268c27c7c437a36b9556b1d9f236b3ebf6feefa1a8c7fb9f65268ea8a0d2f9333439e406994734b73a3b9b555a88ae4a0aeb255e098283359ff8a2295dd969a34b498a16896a1575ffe687e7331afa01906ac7a197cc2970a87cdd96525fba4bdd3137f5fbef31d764b0ad67cac2961db830c0c063935e725d6c1d3e2fbccf24d8dabf85bafb0659e4496bbe057ea4ecb3df0fa7e08111bb5a5a237b8fd8b76b2fc013fb87f30f0fba81e747f03edface72d03beb84327c0db7ebcc003c5dbf70eba9edea01db5cd9f9e9a8dffbd0d22f413d3f56ef346211615cd2e1045672cf61f74fcb43f2ca01779480767cc244cd9cdf5c75c70246f1162e7c276794d8a0374f1cc198f8ca56555192c443b3b11a6e0029332310684970532b2a55969675b6bc72c2a6a5c0f9fd3bd63af451e44ec087e1189a77047a2a37cd4bf9bb5b268ecbefd57a4a4c626f4902fc12be88546a9107469a3b689ca64ac6af9de45efa1350d62883c536577224f8d7dfac04b35d8f29d1550b447986935b4987ec5f81893704f852a9aa7f2b7d35ea6fcb003cc739b627f567ddc47f3b03a6188d1f94222dd5ee1819aabcd2b472c28dbc3eb8577e33e58ae4aa36d5581e6b622d60958037979469622482a21ff5bf7446860abec1230dd3b74be3ff614db67b0b82aaf7cfd5af19a9455527987bb2fac40fd495914918b748b2ed2411c90ee52d97b5aa5bee77d96ea2140ab9763bf55a5fcebf99299cf4a36a20792bf16cce440ec08251b71a6663b30bd83de86353dc4cb7314b66fca846c5ca14cff18afd1590b71392e47aadb5482f09a22ddd80184e4d6cdc5e5ac5f52f3a5957e9a5592852b9a0582886df194607479b6bdabf7ecbe0d47463cd2636f49c12438eea0166909b5030a5f2cb26fef8ab24551157ee53b55c43e879481fab2c89497b9b9eb639a76b2b4d81773d5a3d6aa7c441b8564adc41605b16a206db6d408234386cc6e353da09831e3987a81147ac59e7c1973a536b67b12360611aaf06c9abced02486e052bf10870ee5998b9bacce2002071b082371df6a8041e897327b4e4a0322c6f09dde51293f30055cf5ee22426ebd2e7f6678edd71fbcefa1e2c13c301b03f6a41563a559b5200cbdc0bd0eb14e0fbefacc47287153624a910d4062d83d78ba8d4150f354a1612b17068d8d1e039cd6875a16b579b47301715acafca4e8685528b85e577161d941ba9a17c2afa2cf7948d30c7ec3a44002b3ee372b1afaa01193e9d021be822ce71c6908e331d1c98b205eb0b979694581ff96899e0059ff9ec0a93d44e55c155c0d620a5da3eb544d8089ee3bf2e399faa7fe00667f46879190430385f260f3a7af9e50fb338f8da48e741636dacff56dd2bf9a4f7edbeb2f82d13e071d6cf613945ae68b4618d8e2282a6819d8a9715807ea5fd6218749140621725017c18493daf402e1b400fb8959dba7dd0d119371db934af398b5102fb9ed5417a629d1c6863bac178550b3ba167d2b837b5b029c05f07be45589046aaba28fb5eb98e00c7df0b217fa24928f4eb85ae55ceaf280d11d6ee691db7753eeb7a5650ab120ae8e8bbddae3a3e5e1babd13a5b79dead1d77beb4ef43375a16f3aaeb2a5777693847b590dc7ec648ef90d32a9e72828b54ccf43825de753d9fcde372eabcaffefd5d3ddea1b8e21e569753636a8f4a532bea80ca50f7d41369450a10fcda188998651addd1145b15263fc0f1982326563f396f75d8e20d8c9dfe3d36513c77f91157555d97da82fb0e596847a9030758e7df09cddde796b3ae89b4eacbb09c33dfaf6b6af93aa34364651a2ce5196f173cef9eb16f125a527f0bcd0e98b877ee1234a45647bb9a94cf8d38c619e5db3f92ae33670a90904e65e9bba850b5287fcc62c28a3f20febf1f02995d1a4ad1207359171d1c8a9974c30102838a9e749970684613b8be8d254d27830e85605a4b05527eba04d44958132ab10433d91420115d572797be3a787647d5c535ae13db3661d6f4836b9076912e0742381d87bd5eaa73dbbc577b2cc702f26e89da6b24cfc6db2eef26adb963bd2d1e61208b9106628dd013612925b50ce1489d6316c057ace4cf4a48a929b4c1f1c2720888f63ffcf4442247943569c4814b61a7a4ee6e50d056574df2192f9e759dd851592c024633c9980b5ca506f3919acac5c2b9ad304c732b1963e7b341dfaa05bb570e39c144a61864dc5711746483ae3d6ded929a823e2ead0a4ce088578dd54b787cab33a12c1a77dcee3b522eb0b2c310fa9fa7c466fd18fd4cd6682f93afc7038075faee02b166b1b748b058db8b955c74f2a1cea35c645bc5c4bd0395fe6b2802b9f8791a0e474248474cdf98eda3ea2a26d65090c43ddb04e5eb906ab14c365115fbd120544c50279daa98c82db58616760d58ca426e10c3e84b64288e5b8246223e8725795771c4f4ced3ec7e212d42f4e3d0f68e65cc7847586fa7176268d294e8fe5eb7c1ed87e9be2aa7faba9f8892035d2ce3f7b3bdeea61c673198cb89a620e269d11142bbf4d1524ecf39f2e4b2c633bb0e1cc5a61e16961b72ee3afff796d90a6ca9e6191353bc2ca2d75cebaa0ff5c855b1da2900df2fda4af9c83b888ad0e313d2161c0413042f370d2ea7f7092523f85c0fb33d6e801027171f4eeafd82dbfc92efd320c287f0ea0d13017ab121473750b224c301c33f3f3f3f3f3f3f3fffa8692d69b5b55640a45999a4243314ce0ed714a494644a29251545dd41b2b7875b002e0c23bc606d3e043c045104c523b230ea64e2f9855774a1bd33446261d8f7ae6471f353dd0b166695faff2bcc26bbecb58e922b4ce15f59f0bacbea31a483482b8c99b29ffa4c4cd6e8b0c21c45bcfe5514465661565d9deb96c2bbf61a5185a68223a830faaad3af841032a274b0029153183dbd7486f2ba78f1731c8898c2944c9dbadf336d5167197c6078d0f89011f241835258763aab7a714333ef2bcaa99097a6934ba943e36580886183496178a59d578573a153374e88477a20320ae3abccf6af6a414e181e211f61d800118531757ee9242bba44da9150989347a12f5fed5ec92f4161ce73daedebae53fadc274cf1ee4f46778df00e79c2a46deef34d5f0542a413e6fc613ae31e2edfaa396116a3164f958a37619432bef42fe9ad2b170d229a30ab2056e5ab8a15b17c2413114c64c725d212d77d14f35268ad948e54627977f7e223db4dec0825ae6312d7819230baf49c95b02054cb133512978ba977a5dc9e5eba83bfcc55239030d7ea99365591b64ac57c84e1dc472a55967516af76845929579d2bfb836857d110698451fe438c289d75d276618429ebfca46b0b31b208839639295676922375c98288223a1ff1d9c48768d3092289487737c6d25e4e75313b820853fc686f59e9fdd5e1d58730bcf8f03efbf95b7d94218ca1b5dd8812b69565a810661d2d49f1f2262221ccfdb9c7654b31e2204c23b45fb7948f280853742507c21c3aae1063ae856deb110161f44afa3a2ac3723221fec158f2548ab75311fd60962fa3772f85d80773cbef5b1277a35d4b21f2c1d82f4f9ffef0bf7bf1c81e4c962dcae90f97e4bc54d183c93d47c90f4a563c1d27e6c1e4ad82bebe7796e11dc48371d4b3e5cddc4e091dbc8349df64976807730ce5fa51eb2cb10e46252ad74773c988d0c1f0298da5152b96c147a3060d0f908f3d431244e660da96b7113fb197f7a21ccc9d2bc57b8a2f8c83397bb7b6e787f8d339897058b40a5aebcfb5147c837133fbe64f28b1e3522c2ae2865c7a4a42e997ae1bb6e1ac2acfd5581ef15db1c1e47272e777c7bc5f8351a5b73bf7bad5f2d56a30befda7d95fd55715846930091d5e85f816d9ed190da658a74de56aa9ea757a06c6335b44eb452cb9beb97a9442673d9ac13822e582181d54b610298339e8afacb30955f355d12c44c8603c172f94fed62e79b931985dab9da60e2a42fb1b118349aba82e2af34f2f7a56211206a39fd2ff2f4bc52fdd296030a8a855e98ede0f2b622944be60ee98723aa7bdd668ad8817cc5297526a55ecafd4978d74c1349fb3a3d8bc254fd108170cfedd2e43ceeb3ea17b44b6609627e4847ecbead26d695ac04816cc9ef7355ce675695f61013b6410b982b13643bf7da758337f0670f110b18229ab0911d352c357a43052058312a62d8a14ca0d64840ae69679ff51db721cf9770722533097cacb3b26f7b0710712918259961af91cc50f39e9230c04b91744a260fcec12ea1f364d5e1c8182f1e4bce992f97bf2ef1b224f309c12526f9532f5b97509f164e22e0b9f5dd92e7a1a1fddeefdf6235509268c1dbe4a8dee65f1a6de417209c3287dd9d20795d254ce9458c2b42a6fcab2eeced9534925cc59b6a2fcdcfe3df45220a184b1ebf2deab49259330ff2b151542780b3917488b40220993daae887de56fd8c01348226190afa232b5fecf9087a271542081445aee7cbacc6e924718efb390235f8915ba7d481cc1eb9c6b54ec4e069fa411d7216184b19536294d564402c922248a409424e278312f3b970b971009220c9636a529f5f2a274d6210c9552ae1c93bd210caec385a595a74218e4b928add9b7625e228439a9ea3cae957a1046e921ae26a599a9930bc298af6bae6fbf4b287120cca7ae9f84563f204ce9a268ad44a8fcc1f441d6b4b3455915f283315e79f2532ea4d87dfb70d0944afbc92cf960b82852be07a3ae24636749bf48b9ebc15c1b5fe2bd57491e0cfefe2d9a1ef55beb588287b2ca9e767e968c67fd9cd75c32d8f80ea6d83d72dea5155be7edd0293b351f97d37530b95659940ed9d2c19cfb54cceed072a7a57330997dd0ed621f0e2472300891a71ec5e8f8a37212247130bb0a32be7e71c5ac8e040ea62865fd25b95bf206a334535afdee05a1a2921b0c7641ac78adf9594124694305246c30fd47a53d4ea51c44bf06b34eb184504953987a971acc2a8991ae32326568531acca375be86ecec24f64183e99552ae5e55980baa936730e78607a1e3c5b77f6e06939251ef39c98ba2ba2c834935b5d6d8b6300c2464304a57af6b3a6a25fec231984709bdf2fea55652480c4653b31fbf39255f7b188c16f3846ec99bf7457f200183418a08b515ab3d2e5710bf60d84a5a083b9de597e205e3a6aa0be3a63c82a40be63fd9b236f32a6787122e98ecb4abd83115462921f781640bc673a5d4b378fbbc1e2d18bd3d25d1d15cddbb9405e3e6564ee5aecad3c8cb0e245830fe8f9748905cc1e06a955499dade2fa8680e24563078bae75e5541d89dde0149150ca79438e977daefb5621e48a860ded4fa63c9f2345a79922918b3db4c8ea6087d158463600f245230fac7d6d4d21f54580e8d0f303e6e8c401205b386ea2cab53adfae40b4102854eb5644ce52e5c924f4aa97bed4a5525834ff284eb9038c1a0845c91f292fcdc6a499a6098d55a793115a2bc9430c13ce63ba755ccffd859827174e69abaa7bf8a1f259883d0d25fedeb4930c8ced183f4fc22c1f0d16f4cf4642b901cc1ac7a3dc5be20a4da9a8d60d8d1f13a77880f252a453088cfce2acea9209010c1fca7a23335fdc3e7970cc1d1d478cbb5da15fc5ba40999953c8f1e9008c1bc5a3ae50b4a9220187f3d7756ffa3432aa10408a613e1fbb65bd9e4fe3f3099e5f7af3bd507d7813290f4c03052bddaaf4bf2e93d090f0cfa62be2b53df4172615e75d471890e8c2a6b8b4c177371ab8fe4c2b4522a21846835e1591cc185b35e9645de2d7db730fb8bcecb7a5fc8b9245b1885bb0ccfa6a21811d5c230dee9430b8390adcb69379a85e9b4c347d103a64f295c14e2d213441874f6962af37b3c4765720883a95a77bf57e14cca2686300a2d42748adbd61dd449214c2aaeb930178d8f1969810921cca774ef44c47e504162801c072683b83dacb42cf2b46e197c280873d84da983a7f59c931a04934098fb343bc52e55213b450313401845d6bf92e7f273cc2a838f3330f983b15fe94c3152c8e74b0229e503133ffcdab7f7a3af3fea1c61d287091f700f3bd1834ef260ba64f1a49dbadcca2e37426c4cf05090d50adf257366e64a755da7543d2e197c323828e8e800a1c1e40ee691e2b95babcba23e696207d3fb2ab9e43a175b85933a201d700ed7319183d943878fb5e952bcee3898f644fa856f3d1ccceeda65a99454c7d64dde30718351099d35731796d49293365c071bcc51ed968afa7ba4bdd793355c871aae639206a3cfc570a9c338418339e5fda50a42278fa29a9cc1a094978d1ef398e1bc3896cc2b6dba87788b5a55eeafa4ebb8190e26653009f912a6b75adcb936218329b9e77f0c261d1d7d46485da9c4440c8691e7afe6cf0e8329c713272ee9285ea8dc212660307d168f429e8aeb79f505e35f56eff4d525abf68229e8177e9edf35e982b16b4bc7ace76b7870c205f389b8a877b43cb4306dc19862b25a51a7d1ad822e9868c1b0a29d1bba4fb26010997246efbc64feac31c182c176fcc28fc9cf98d5150c73dbcae5cddcad7e6f9435b182c19312d2c5e8a8273d5c05a312e63de3ae9d50c164a3b7af4a4e6b2d7d0a86fdced962983991c25e77fb96728e85ad31771205e388dc8f2b2b6a8ada5030bec828efd5d1271885472de555c8264e3087155a57d6efe84aa89b601aa13fd63bc7b8453513ccbdf1e23c9b32274b306a9cabe0299c52aae399132578765aca5c4d5b993049824986d79aca1fe54488264830a8d4aaa7a65345c7d3e408e61c3b1dcc89118cfa6db4aa8a56118ce5f1b267538fccf310c1b4953d4449570fc16072d5a513effefd2913215c87092641c8b4cef669f304082898fce004131f24c260d2031b63c2839cec60a20393be6e6f8ddc97d04e2e4c958b1f5c18e3e5a7a79b974b5a7d0ba3ecf9c7ca2d17d7d91686cf612e46436b955db316aa5854cba5733762592c57b4efec5ac8486d91d0c25c2f2bac8e98329764162655f2fb71f585dd306561d422a793c4c218aba269d97161618e5952f6dec4c87095cc57983fa48aa6b42bed5eaf7485d1354544e9746d70e3c528c11241d20af38ec719a1fccf6485b1939217e3aae5ac12e72a4c39cdd9797c07d9e0842008125598de84cad4d94b5b9a325361101d477d88caf7dc9a2b418539b5755a1d462ce7739d203985f1947819cab4ac0a264b4c611a6dfda85e7b0e2b35cc52986fa53a73ffdeecf42129cc23568a123b634ad35124536bad6355982b43220ac368d7612245f8e814c9e09384e2b497b3709381822fcf1fed7f7ecc0d98a001cd06c9270c3a07b9d51c75e2e743e341f0338e085a8c3b26483c21e90472c2f02eaa5c980795c47dc9260c4aaeb614d74a4bfd5e13e69cf3d44e8b5d052135f82f6880f101620008807c21c68c04400000207f438c90f3cb230111e8e201695fd87d9168187140c43a923b8e0103f0c206e80b0474110222860904e0c58371c40083c609c3000000b9f1490c55e3868d038400e4c3c641801757e8c28b2ebae802005f74022ed0050808ea1000004ec8511d03f0e2841c55e3464701ba08c0020e70e33d64904e0888874702baf0420105480f037084c1c60c301480e30bf91112860c90e3e171000e2fd8c046ea42c883ccf81904e0e08259eed7552a21e585f5b66018a1a3445d9f5a30abafae3c71c6cfe0193f230b46bb983ad665031b69c6cf28337ec67260213f42c6f85057c88f10556386181e1e07e0b082b92ddb89c8ea20a5ae6570e3898137e36f788cf1a13cd4dfe0238cf391de06885f088d8f04a1f11172834f042cf028014715f223e4860c90303c3c0ec041856e64546d9a011280a0018ce0984216d44b2ca58bb1b9dee569455cde4f54455d0ac64aea95f210ad725d98230ac63b29b2ba17941c5030aaa4252f8cffaebb8bc6098304af6a88a05fd5a0a1c9f1046385cf6f5a65f5964ac6e184e635f6335d37d456f7e4688259b44811afb4e8ec9d87d80003617030c1f0297e0b359f3c845ec9e05b1f32401cc4460d0f9b00c7124cabc48e7afc10b97a75e78543096c96ede7c9ced86aad65b936389260fe16c272f8b6911e320e2498b4353ca6962ab84a4d069f87a271c238983ae03882416aa9edf7f5a8cbbe1f7a34388c600ea6c266671d2a67b17a8e22183e9e2a53a6ddb5f411e48411030e2218f69594974e5f70d1460d1b89388660bc943374501697c1977e0ce71082516d952a75ba5ee9d7ab1b23e0088241eace925dcfe031bd0ac8c001847472edbbda4d3f06c80fcc25a597ec3eb542c88f72f8c07c26ecb51a1c3d30e9ca9aa3aac46af9673f387860ca49c87e8efb924aaf346acc985123e5dde0d881e957e3b3c38d6ec8732f844307660d6d3a2a6eed990ad508114147c75dc945c1c5dec2b4162e4b137d9ad8e28ae5eaa12297ecc5927a145feac5a7816e6346dac0a416a65842bca82cb6f383162d8ca6574d87536aaab26a1606d319a9d47bf6071359642c1216f80a934a325a5b7e76cbca7185b97729eea515e6fc41a9b6545177bdabc1d3d80ed0e80018373e0489373ee4a305135618b43e19aac2c8f29c421498acc2744abed2ec285598cf946987d1a734950aa38e9dd4fc6f74cbd1a3c2786b265b6b5b3454ea14a6fc79c4659fd1e61a9bc2acb9aae3eb7ce523af0c3e2b85296ee7755bdb24302185b9b2966779c56a7a544e4661fe58426ef8b628ad6247c70d26a230cdba8c1b393a90f326f8df4047c70c8fff35098559e8cb7ab070724fb4d64e4061b44fafd3649d1a4bf14f205fa8a7d1796d434f14c58951ae63e284a79de08441685678d1966e4239cb1916cfe5b279aaabf739d18469fba396daf339c984e1725e78ad3b880983ce2a5cdb681da4aa6e7209f4e63645dd35f682134b9c3ba4b4ac45e507a95289c5434df364b870420973149e5fbda6d6240c9fa3947cad724918cf2fc5cef67f5a6c1b09a36ae9f27233db632224cce15d7b4815eb47183be9553a2764eb124e1c6114b9325fc656701f39de36c29cb252e51a739a30c2fcf8715465db8bd217b1ade625b36d4b5e26ef266cf777eb4f8f268a30ac921e1fc2579344048594a893075a16e42888a220640c2288c6d201e31248201038248e05c30181485055f10313c0008b02d17024120bc48180401cc97110c4201403210c03210c43510429cca8520fc90cb000edcc24ebace102efea271d18451c3cac2a269153b5e3d0305a8746d1e516a62b57bc12c4db15088b6b196d28599fa5b333c1c904375f0b233acf2b3888f3b6ce4cb90d76d32ebe406f81dda968e356f632cadc5ff44f7a652dcac48a78ffd128d2ea17926ff869762db4eadb98d484692c4de2567850fc01893bcc0705d5711b6f9eda350d52d3d3ba2b920a6e7fd95e92c138942e5be734e0e3721cf1ee7621faf7ba750a07b55c8cf21bd06f14d1297590b420bb5097e6d3c4a1c427ddd21b1c4d1bc3a1e0522cb30d30ab21e7a275be727a1e6939a3e6021dcb28ec200328ccb6c5c2d725f6052b95c92b01260d7704aee97127d55b2ce52185f3271e696db3783318e9c2c4be91b60262a6787b847d6164bd8e949d5ae69822c7329c92681d697c266e4f2030942b14c401a9215c8573cce7578ea2e933cb77e590bc924fea71abc4e365da3535e4ed8bd43e9e5e82c730ba9edec1caed0e8c56b0d8c1c2322b4b71d15d5c992bdc48dca6415374aa7b57fe7568adb91840c322d43c2921a512f19f11b8d40f172af52fa621b417a676e5611fc083c7c66e3ccfcf906eb03663367f2748963a07914f4f4e8bf361ad0a0878fda3a9b1e6ebdbe10c628376c4ece27e2fcb970cc7ef8a44018e99f5619fe3087f0b672d932be4c21866c7d8d150850d4993c107347e36be6e5b034e2ecb5c83d55e42c3d8480b1f66a469d20754b821a782e45fb9fa2ce8a810abf9b627a7c72babdf8fa1da1dfaeb113b58d6f69a9eb1b4aba5093cb988116ce2dd6ce6a8758b228bd134aeabcfb4f98897a3bbdc2f170c34d116d4458532e87ac4ad769e981449861afad730b73a23d31029665fb8d845cc2852cac53de46d5155d1f0dd909757a76228fcb706d6d25d0849fe1ec836bd8f49783b43649e51b97aa8c56a0329ee350166ffe7e89301351bde93f69ac9f1c2e8ecb03a568ec7f023ffc5459d76422cd2a2bbcb61d2e75e093235a9a6196c0182e7b54a70ca7873bcf63594e21b93754531052aad3d29229a2f2a678d528061148bfe088436d1fc645bfde84ca409655fc9888223440bf0c4882e3b259d10228f6c760fe5405ba1553ee8f2d6f6b98baf85cf517b3cfc2100e27d8e64e494e227c31385fa6a281aed2e9ee08c601db4d44f3b3b005008fd966049d111566142214d85e31f0cf4827a672982389aa5b801da21b271c011a8ddf7011a07185a819bb58e6781df2d4b31aa54f169573773c9f1f6dd45962524863b9a8f36b99b33c08595a32027aab11a0bfc01852c4dad85bd11e2042b23ccb38e938fc9721659899316b4c6bda927e50d61a0f48ff829b4375e30b0938e1b4a2606917f77f2d78417fb554afba5beed5a3c3c0273ac59936b70ca8ac95fa61931742fc780d54e2fa781a686b09ea727c11d3b8f0422bf7455ce54a979fb8885efe74c8c6f6d175fef1af3a95070bb2d8a3e1fab8b1ec9909c99431ef38b7a2f03d4b1a992535cf6591979b00674480b62f0e7c07fbc324159d8469452581db709743992109551d026412b12546e62b2c47c1e92da27210a390dd25c23040e0f9b603ebeac8e0449e99c92c377396495d8c9855124bad2251b1143697aa76ba1dbc4a176ec107775035a76a2039dc061d777d96bf666a1d0ea3ff5d9e31c2fda3b06a93593f0f8226b4fa8cb82211ccafac6858b4a94bc8ebf60d19459371680a19e9578856c58f845c286bae3bcac77e2d7e3ee96f22b3656f006cd11bc9ba25cd785282089a4a41c5cc8c46b237522687bdb3db1c646f6af49376839214e5cff3f67a1faacee881680578bf3c499db5eab988bc4e6d171fab344e0085696e8f51638aae09342543923d57554776010bbf65cd0c76d44bcda98a11e47f578f8be96da423b9cd1a452ac1fd0431d20e5cc5526d84d463aa024e6754d7a0762208eb27ca48b81aad0c3394340e2a142970ec2deb7eba36057d1bcb460ee9be4e4dc8426e762b2f78d72b1e37b6d74b72a68bdf2b6b784375b30fa68e48a4f11fb50a48fb11c09b23c6556e2c952d2a44aa38f34b72e8c4cab687a02aa02eb6c75b343c2c96d0788e9b4bf24708e79cb324d8c099c1f32db29c707c497ea3837b0a246f77c296b910bd49c9e946b9e6cb3605b5788ea99548827c0496cb5fab37b9848c802c4135fec02ac1673f1e15ebfa682e3e68398f6e74ad93528c88c057d93e96770fec4c0ce8a03b0a9adeafbf5d9a982ed32bbde70fecb141b50d899084564ce84ed6c33d390169b03e8407a2add3a7a1d76709d258dc68df93be011fb7377028f652b2b553702f0795e37a72576341b58936bd35d8d1b8dbe68ac0abba7376dc75c9e53dcedb325d84bea35ad6d5eebb8c2d3daef96bc3f0046fe45aa4dc6a8a028073e3c4c70bc0371b640bc6be7c49f1c2d7301b77dbeaf93ef0a075c1b045ce706f08bd16a1d579e3b8c10a5eaa29e29c36bf11066a4a9474b56e422f2380d93748dc393b707fbdf858a44d432437cb6129b5bfcaf449cebf94719d25560ebb892f1fe2a99f96d9a04938620f5144bddf8e98d6b03a67016adf0f2670fc5248a7de42536648a81493b21835dc91e9fe693fd4f08e76e67538e6b9ff1fe1e142486cd37c12f6b3959eabc14032fbd995cd863968d49f64d896e2663080ddec31fe4bdb8408fc88a12a8ff047580634648d92a1004d90761c0527ac0561a04236b1a761280ece013c154404dff7e37d00308b3f3e9bc6332bd36c9f7d5f46c00774510845a237a2a35e32f12f468f62510fa3a56c7ae327ca31db07489013c28e2c49b4a051db98be2b46c40fe015d0ddbf58d22f6160ff26f15c91f76623480d6767b85d562c32a4b7bf66b14481b7666fdae20c9ab1d353f94c62151fd2bba7850a7eebfceb8a983cc9a425fc852f9293134e291d9c0d66f3219126f685433af660444cd8dd358d3621c04c77cb1e9200a5fbcbe4af9ef2aee9828a7bd99f7d0ab19461be80d8be6249872587e04887101d86c45e0e6f63cfaf12bdf9c10b49e3a645948d0503d4d733c5c2df8bc94a2223be91c79685d32e758345f015398283ebe2207af8b4c4c8c87eecc600d4df2f952a64167e0eaeb761c9b332511ef727d1f291494c9223eaab844d3d154b2f047e0ab3f0ae0fa0e20f0a36fb70e9d571048af004735f84d74b6a05c4a5e2ca2218ba6f7675e58dd478008dfb93d4adaa8881f6b933129e0393d7a39fd8b310ee850a861bc271e6d55ce544ba8cd72d6a920b5e1c17a77256a5881d84fdab4af95e9fe69b32a5c4967e1e70055af5f448e76a0bc9d14634e11784611a4bf5247a78bf3b3b4a04d5ae05cc20ee614e5bc2a3d21e264077b0ca9cbe22d74187f2067b5628434bd47755c65057a0f0253b5180a1023ec21ceceacd5b30693a5442ae95b3ae408d13eb48659e3dcd102f60579136c7e54946513aa253dd594900eb8179c014c611b668e7d01f3d3a5ed0bcb8d8b882dad8423dd2a3ee3fa44161661003734552296a8d114da16147d98a80dcf2acce5343cac6fcf8eb6fb25ecf4a683c1edb23a4a8d359411ba19da8f89d8548ef0b012f00ba4d82e8909c2d07ab4a002cebdc0d6f600ed11a436b817dff8d00c4903b2a44842a558c8a716040150901951a88987487366e6a77fe0e121adede23f04da64ed4bd8dffe26c54a97163730200824bb158e864c06082691e628296c8a72230fbecb4bc6e6e80074a69f95a82c03629a1f70e4f99b9099fc11aa83e508624065040611d4de55dc2355c178fc873f877fc6e6cf2363e0e50009ea7bab406402ae47fe76abbe878d0483b8e183552fe5a936c6eeeef3d7de151658aad3e467d1826524a9ae28654d71ae0081a34805de4057febe4c13759d8f70df2e022ae37fdc370d50aee69147638cdc4d90c492528628ae9258a203f3072544176c695ab6f7ceedde5f94e3219c7038d8e2e703e91a5d9d6b4b52adeca4c2ce3f36405dc3de2f771eac9749a4d56b0a1d102b6b35ab2ef1325befb4e8f7551aeb89d21a263d7bd7da0e59e892bf2cab16bbc349ead58598e851cdd01ee0c6165de36f6fa167ae302320a8db4e116e2852769b4a6eb7b89a4e690918af731c0eed92da296cfce669952a4e0e4fca3b50ae7614ba15216ddec10bf7abaced1d5299e27d0e0d079dad11caf98fafc6c9f7e6bf679c5dd9d341b129d0d8f011d5b2697ffffe063e19c851600acf2dd245f99fc6ffb23ae79a4c47d5fb09efdb5afabe0e0dc3fba1a279daa4dcc519c752f58a126b4e52055bdc9ab4e373a2ee00593dd089dc545a9358d136a062fd847012bb6616c1a5fe6418dae976dd2333d82db8404209fc04062e189b41a6b176506ff2452fc6492f8a39c8dbec16d351c9ec029817a9b9ad119c096ca34e9492a09dd1ca8003dfff02c356d0ed910dae36c170353febbd24cc64a744410e35ac5f6d15cd03301057b5b37c727a135c9144124804e4547c10285d016fba10484db12c3dd6bb5810c070049adf7e3fe438f840388d104d3e89f16278db9b9893f24311199d80774b500ad4a4bb89d945c95f9b031f98f84966a569a08a31819c03b6a4e80fe94ce9ca25c7fcaf38a88572278e7ff7b1b5417b8444486418a2a76ae0e6c85710746290337b294850e266236fa08e0a85ce047f4d434608b9994ba923e4edbdb935d3172bcf4e78577aa493f7e3d88f54d0bea3c13c2cf389263b728b0e5c62369fedd0507653456c0e7dde35f45060b122c6694292f180fcd583843ea563241d2683c2381dd03822b3b5345a178a3d72e67b88e689d6b3ecc2d9cbd9616387ed82439242b354c933ad73fa8105dbea65ef4072a32a2bc22846dd5fed3a70dd11846d08cb82381f1423f81110c8a4661b567226990d7e0e7a9cce76d825d5687c7ab55a9ff7c74334b39c44ca51f31ba787e2a56d6d90124dea9aa882be2ec9d06c57be8d9dc661c31d460941f99ef2501497f7b094c85a88c98856f8a84392b9551929906bb9279468ac412d7415b63d408a3b4fa78ca32d3aab2c3698758d82823afa27070565942e3b47cf699d69f83204636cd15cc8aaee04eb6bec7d8e7fc86b20a6d3f3daf157217f381ef6cd7b6a2b312e336f01c7637d3e090d45c10cb423c4bb9f68f8d1a1336034bc7b1c25f8afd011f41e6566a4853cc10bbc180fc02171a8f69eaa4d08f50eb42bec5b13aee986cf85d27bedca118bd3c72460af27a959a2cd5648e34234fd453ce1aa37a807a6c85657f4af83499a6228aad6367ed406e998732b19b63345601f7f003105ede7296fbe4c798a73645fbda8559bec5157e5c22a67709a4a81a0dab2016a453c97cd02ccf0f300a35ce4958e4b26190fc86f73b7ee6a0b9a066aaa0d14af062f1f84dc41c6b89feeb7a7749817275672e9f8e0ec91e982b3b56e3ba1e39f2c9820278462e66f8dbaa55007d96029c4646cbe75114266fcd994e2ced893544a8ba22ffa3a9947f5bcd6210c535879351af37db52bd1d317cb46ae94e856be88c247523482219d94bf37d44ba2e534b3389029dd554724196b0b224a101292edd8366ce1f3f0f50bffc5191a1571f4e77f19d99bd7d68a2f5c0111a7fbaa075131d93cd9d39c488bb50c4e2ea0c581936eb23d26618de9bf303aab51c90e7baa1203cd8fdc97ad299e811e982e274912333d74eaf79ab6ec16188ac61a5da15da2f859d2cbe6b009512585f04eb68393256da1dcd9d0aa6d9dcd3b8a731d2aa98ebd1434d76dfbf0d980d38abf41b045330ed1d0c24387b34eb388b0c509a7dacd1fb1027d74fc69bb39cdb6dcb7dc941886f69500484fc8158ef03c7a1b08b4ace28d246b4b33457b5cd30b2ffbab9a96ea3b32412e4854be1ee31c41fca79c10", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd005834a805fe2f87821650107067947488d331cec33814873d528909e7eb07a7612aaaacbd9b588da2eb4e5df0437e52a1669d6a10ff338830bee9ac6c14a3a5b2b8ea52cef839a2b14919d1dda71df193d60821846cb2f7de72cbd119fa1470153592c4c98ce98d0c8929576d70bbaa1a4c66376e6e508e24232fcb82d856d5c864db0d2bbb91a998f245e2640d94353790f6f0b1614ce2b0ff90e171f5e8317383414b47e727be8e8e75e346bd69a337653e7cfc74dd870faeaa48afd7c9aeeb4893e927eea61e264aaad95eefe346e63efee3a71bffa1a3f313761d1e3afff193257bf4c0b8d79b64cd4ddca3470f1f3f55f7514f3d7ac8c0ffe0c123c74fd97358afd7c1e13976dcf8719d9f6eae633201e03ceac9f41d3caef3d3f51d3f6d35e733337cf3fa1e39727c070e38bcf41c3b9ee32799e7a0eff19d9f48df794270fee327d27fbc9ceff8f19d9f6e7cc74ff43a261c9c7a1c9de3fcc41de7fd841de73c4aa5efc0a19e72d4538eef780987977eca5e7a3fc9f3b8e9a7eda607801e3f55ef514f00e8f15a4f00380e38dcf4137cfdc9fa4e3df9f0f19c7a2ad553e93333c7a9271c385eaa279ccfccbcf453cd4bf584a3741c3f65d56775de73fe634766e339ea09473de1788e67d9eb4fd76b3dd9d8f1fa135693589d771bfff1d35595589df71ff5e4a33ef174b0f3a8a7eb3a4d3dd11ce371ec27ab0a81d5d3851da79eae67d6b39fb80ac4eabce3fc54537d589d77533df5a83900eaa9d6533d0fee39f5b4e3aff5b4654449c317636260861450f9e1c070220a28a8810c2f9002c68f14ee3e3795aece3b574fafbf517775de75d4853a7b1c72dc1ca79e4a36c7514fa821f4200c5dc6a8c10d9e30849f1b140c466005141ca10a6918638a9f9b9f64aacdeabcdfd4934d5da813a476a6de9f48755b9df71b2a853afb1b3fc16ac4eabcdfa8a79afac4fb9122739a7a227da63e21e4470abc8d7a92199d544f281a686183161aa8818618caf003f70a627a300314c0408d23a4e1470a3ce9a7adeeb03aefa47a1ad5853a01a8dd0ebd3f5555c8eabc6bd506eaec4f5c95acce7b564f587dc2f42365feaaa71e80c0c51874808614c4e0e0c7aa4ffc478a8e2ed0e0032358618a1ac2f023855ffd44ab6975deab7a9a75a10e90da09e9fd49d6afce7bac1bd4d9ef51904887818c9952842d08b64d4911d3dbddd69cd9304f676a3e7f8779ae66295f9a4fc33cdcf37e3a9c234f38c302d9f6e18c79f6fccde16705b63db6fdfb5a586f2a0a972ca21429b1f1cf3c26e6e9e2c63cf039cc73356c228c86cf9807f25cfd1efee9b2ee68c3c347214e36a7db964d1d651dfe1e5b1e36f8d743dba69a28ea4d8d204a77a4e60fa037c54497660dc802dbfba698d8a2f9cb3cd5f99162ac01551072db15f71a7b1a3c06b9a1270414d9146f44f30168d9d465fd64ed502d29acb82e76173f047b7e3520791fc6b0d58accdac59ea7afb8ee5d1d725dd775d088243a25bafab2a9ba0fa49cd0a9e12baec3e978ec6593db86dcf66a486243c909c1868fdcb2e9d5c8a6f7ad7707aa7ad00ab62c93b169d9d4d9f4bbec4d319145d3b0e97d71306c17075b6608217c7c1f86cc7fcc0ccff0bdd37eb574e43dfec1dabd66f81e176c99e7edc348cb3ccbc38fd8c371e409682c906decad06e3e1dfa106f4ea3e99234f88824ddb7cc82d9be031983dee356bfcd5625d36f9307cda0fa8e6af06847aef9101db9cee0d8fedce862d0fdbb2a9db1afe7d35a0f7a71151a2a8a888897ec7385be679df47e661ca26781f7e5cc626f8006c1d4dc3f3e33bdaf0180df3ec6d98e7353c0ef3bcc3632fb3619e6df8d5de7dd887230745473f41d1e6d3e65a3ac28fe7c73af4fad5c8a63dd78eff0e6bd05f13b05562db141359baa3bddf98675345577a4f9967534c5ce97dc63caff7cb3dfbd3d1f47e73b606bd7707ea3d0460db9bd36dcdc770ec9cb1bd7759f37b3e8c3d8e3bdb214e5e4ae3ec3565d37ebf3b24c806bf5fad4864d3de8731ce1e173bdb214e9e9816aa1a8a8d7ee76b3bc4c92b6a21043494acdff9a31de2e415b510021acaec773e69873879452d84807ee763307b1c6c6d873879452d84808632fb9d9fed1027ef4b43c9fa9d3fda214e5e510b21a0dff9ab21894545fdeec34f33b215f57bc63cdbfcd58cbca27ef7611ff6611fde1cae415bef0e143fbe02b64d99a7e3c3ef71ec9cb1f1df3bf865d31e831c65d31ec8c687dfaf86841f042b65d33eb269efc3a8f7148061bb32479e50854ddbcba6fd6a40914d7b1f5e1ccc02dbfba68a8a7abf1ab63d6ceffbb576acf0cad00118ae1d3376b2b013861d2dec6c61870b3b6076bab0e365678c9d2f3b3cd851c2ce0f764cb0d3c58e0f7680b0c3c48e941f6376523b5becec6027083fc6f841851f51f811c60f307e88f1430a3fa6b093c58e0d768a7eb4e1071b76a2ecd460a7899d287668b0a365c78a1d19ece860a7053b2bd861c1ce097646b06365a78a1f56f8e1851f57f041c68f2d7c84f9e1848f283e96e0a30b1f47f001051f60f848828f304c65f840820f2e3eb6f8f8828f20f820810f29f870c287141f4ff03145470d3f88f0038a1f537446a053e4a3091f423081c1d4051f43f051841f41d051e307094c5cf801041f2af051e4238a1f2af881029d36e8b0c1c7163a6bf8a042c7099d35fc1082690b3e52f0438a0f14f8f0c2c714a6313e46e043063a69f8c8a293061f33f0c184490ca631f888828f2e2632fc48f928c3470d7c80c147151f5e304dc1c4c5140553134c4c3015c1140493104c2d30edc0c4035315a62c4c33e871861e683039d1038d1e6630f5c0b4821e62e861468f30f428c31425070d3dda90e3a5071b7a9021670a3dc4f448c3c4821e67e41081070d7854c163063ca8e0e1058f26f0e8010f1ef0d8018f2c78e880470e7860c1e30a1e38e0f1058f27f070020f1bf0b08287161e35e0c185c7127828814712786ce181041e47e0d1058f140f23f028020f22f078010f18f0b8c2030b0f17f0988287143c62c043063cb2f0b8010f287848e1e1040f14f098c2234ace1a72d2c8b1420e1a3967c81193c3851c33e48c21e70b395bc8e9424e1872cac8c9424e1a72ae9083851c3572d490f325470b3961e468c9a1418e0d726e9053831c1ee458917345ce0b72b0e4c42007063951e4a820270549bc283690532587891d6cd81166071876586147183b94b063083bb8d85104cae526073b84b0638b9c1cd024e460b1038b1d38d891831d57ecb8c18e2a2a1776b060870a2a0b2e1fe85083cc1838beb83101078699307038812b23dbc2cd096a1430075a13342fe810ea08ea14ed0b37866b034d093836d428954a75a23aa172a9f1529ba8c94295526f50a7a81903c7053368781738439057645c9058e8d8828e2f2435e81043c7183ac2d031051d5ee8f842471a3faab811749cf1c3caac428e80ebc28f1b98ce5013061d68c8114375410c83890c9a22e848834e941f5466d430a1e1c713f5cacc17ea13a636541fcc8cc107117c688956e8343173861932f8073e4ee0a3043365e0f0c2471774a8a1038d1f2df8b1821f45f831041f564432e838830e33cc84c187094c6b9801c381f161841f5cdc3ce1c38a0f2e7034c1a4861f556ea8d01861260c8e0d70b0e0bc0007063831c0918244061c2d707880a38208031c2f70983023861932e044612ac241010f2b3c4e30234647156e58c971c28d2c6eec80c60b9a29d07c51da42a98c12174858985748599049c93441a60b1929324e685234146853a8139404944a46c52cca66b0a3053b5eb0e3ca05061a30d09c81a68c1b42a0658cd218a5618406920d4859906e30e3059c2b26267a8cc14941298d121a4a67289951f252e3859218252a94c2284dc1460b4a50283da1c4845217a52394b6e4885142424909a5249470a0630da51b949a288da0c444a9083b018d0976fc0007167054e106151c62e098426d425d028d0a705c0187977a45a5c10e2b38a2685d6a0f6e5ca1860ab505d5062612541ed43ce1fac10c1868a2b8c9e26607d5045c1a30293730a827c061059a13dc4c7123839b19dcd4e00607754b4dc20d0d6e6c70a3a5e60b3754706bd4608126053755541cd418dc700533c10d28986142c68b66828a8a6d8b8d35686ad09c50f28204861ba91b45b801841b3eb8a1831b58dcc0c18d2b6eacb87183cb0c375870a30537aca82fd8d4d061851b4ddc8872634afde2c613379cb851e50609ac29dc80e22606365e509540d7b871c1cd951b52708c518bb42d54263835e00863468c9a34ea974a468d166abed42ed02bd41fbc08750799162a153b6450653073469d814c18aa0e748ca16aa1830c350b1d65a830c84942ad818c193534a8a9a2e64a4d0c6a5850e3821a2c3530a86941cd0b6a98d041059a31346ac87081c60b8d183553a051028e133a9a2033059a15ec1823fbf225eca8428e19158b0f16c83ce12608384dc8ba30f3841927cc4061a6cbcc17334b9849c2cc969912cc9860e6ca4c0b4c359881628604d1063323b001031b58b835e090828d26760041a60b3264fca022032375905305993064a86032838c1366cc90d942c607323d90d14246073239b8018a1b20542b902943e60a17163251c8a440c6043224908982b3831e63b861041d46c0607083083b664042c225069a343025dcd002ec055a0d4851b22bb43434347258b079d1cea0a9b15d6143c27684ad081b171b11486c20adf1aebc16d0a4485f20799969a2a252415195a0aa52395191a07aa29a42ea42da425202290937b4a0a142290c242fc878210385560535c10d2bc0b66436d841c54c132e3368d070830b2a8691181217a4946481c90a2630240c3215c81854296acaa8a4782a20d5402b02ce09763861a60ac90ae90433399871c14c96192966b098a962c607335accf4604607333b98e1c14c163354ccd46006cb8c0d66a698d132f382192b66ae9899c1cc0d666430b3821915cc443193829918ccd0600606333f98c1c18c951914cc9c8064822785178507c6ebf2a0f09ef09cf0be785ebc263c263c2e6f094f092f096fcb43c23bc2ebe2a59e115e111e1148242055213d41a2c22b2049a955eca0024b9949038789111946658cc22023468d147064a051b9c690b14286821a22c854a1268cf8829b2d6ac078ea47a8e952130553141a1ab4346859d0b0a07d412343e3426582e645d382e6050dccf584d605521468baa04181d605a90c9a11b494a645b342b3c10d162d063562fcb062ce40c38136820a466362668b4c8d2c8d0c0dd919322f9914b228d878c2460aaa186461646258646454209d914d21bb425685cc0a191859970c0ada1164133855e010e1468acc08d18c4c0859107e90916db105e1264b0684cc079916590f6e6e90f1e0e605da104e048d081a1736a2c872906191e1a05a51b1a85ab2296a0e24169c1ee830036302c6052b0246041b2ec0965003058c0bec0618160c07580c3029302b395fd8a8824dc198c04680418151c18aaa1758139813d813b40934562e34ae332e315719ae31cc27728c707db9b27061e1b2c27585fa05aa829a4587182e265c5c7604e16ac2e5057d414e0b725670a3032c8ae585b9851933cc9461060d6e414d11ae1ce48c71e1a0268aeb06170dae1a5c36b8aca851c1a5e5ba72ade082c185e57ac11583cb05d71497145709ae2aae2a17141709e61a4850b0ccb0be6085b1c26081c11283558645054b0cab0a56162c3076d80007152c2f96152c2c5857b8aa608d6105c192c2ca624d61c5c0c2625541c7d4acc07a82b6c12ab201850d2b365460030516158b091b25b0b102ca066b04f40c2ac6c609e8186819281968181b54e8094c52803a9889525790b3c50609aa313bbc289d51ad51ada16e815aa17a810201c74a0d153553d464a99101ddc1a80b23301514ae165c2ca852951168179510aa215441a8b8a8b6a88a5011a1ea12011b26a864504d5165792bc8a132db30d9503531c75445365830cf30c130cd985f986198616619d30b938c29668631c530c930c14c2ecc2e4c2acc2ef3cb9cc2146332613e61426136617a31b530c7985f4c29cc2a4c30a6136614e6104c5a983d98544c19cc2ca6143950f428831c238d20a120792083207d20bb9059c82d6412e4162904b903090439047904c945f64076914d904e905ec81f4824482da412e41324177209b208f20b999244904cc87942ca4066915348297a804146912d902a904e4829728a74812c924c4431b10c710ca63062157106118b7845e441bc41ec81a98b4883a84544418e941d4c88544429620c7634216281438042805b805ce44cc98902b17868e02b9ce59d81ad78583c30bc30cf06cf070c053fc126601270157e01c780a3ec2023c70976c14b6307989c123c1cec108359b0e38b77c563c183e2912008ca3bc1078c782ea80093eec9e0c5e06111e299e08809206900037c10f0c39105182902a48004fc0c29c0438100841040871c4c3f7ce85c61b0d7fb6a7660315cf264080d2449628825462449823d5844932549925c3ab8300202e472a2082647784003a56bca72e0880d344162c9d0104b9c10f1e488274b9a2c29927349212209121b686284091324123044c412264c9048c08f2b8a90ab09264c862082099321123002238638d06409132676c9920d24416228c990111c3862c90774aea27dc2e488218696149164c9920df4b0c62c121b68724412103859e201a1244724d1434d96740004430071ab0dbb8488264834493244922392e825443441a201434d3c80041144740e8b0d452041c4922274586bec13102c094af2e40908961c6982c4114f9e2c810067ad613f704412ed6449901324268084b3d4b04b868628e20826434049b2c4034b3ce080208a58c2010e0c11c40f2b0dfb248888254610a1c63e196ab2c4c912239a1c712b8d26476ca064a1618938e24993239c0c29b1240908982491c410499c2c2982c9111ef809220209263f38d619f6090e0b8d1d22098e6586ed4092218686286288a1250c90b1ce08c1114c863862e8882647d45865d820229060a281244b863c40c4122596d8b0c4ac132412905964d8274b8e183ac20912460c796088196b0cdb048923868670e28122920c21c1e449922392e8219c78a06bf62d61a28121869a78600349868858e2e488229a1c9124c9cd690e2a2fa050d48bc2365554d40f056fe605860b0c2f8957451bcccc386cd8b0c13670d860b6c13870c0b93babad165a135a735a3be19473f28437c439a58c324e1d7321c309e5beb5e694f0c1091f7c721f9c53ce11dcddd1c2b9f059d6ee9cd6dc2877dfdc0837cac83b699490c291947377174e287777e15b5945585d52ce8a42b9905e71a3d41a454b4a0ba312c219e5ce1f4208239c72d28b4e08e1915dc0f27b734e8c1f9c5042c87327c671e78471ca11dd49a3cd5c18776652ca9d72529e3b774e0e4238e594f14d2aa5363746ba73be39e7c20b4a28dfceb750c2b713ae949346798de43422e76af37a32ce499a0be7dc6a1f8410fa007759422977db39e742b93b259d334ef8ae8d9074edeecce666453692227df35974e3f528cb39a584522edd28a18c1146de658e11cab5e45c38395239a75c0977660b9fcc6ec86cb2b7d90d19cecc163e66262225bda405639490333a67654a7a7137beb7142ea5561ce5440aa3642821957183736b6294d226cb22dc08e79412c239e34e2823ccf60149a800004439f7ed4e09270f48a19414cacd6002a65c2949d7755d2448bade7b93257def47dedcdcdc489e0c2fb93b65566677ca9e36125229a184504a39a79c10f21523c4b9483e0b37834fc2ddadb2dd7d506e25a5947125b672ab3877e5eea49bcd856f172e851032dc38b3bb502e5c041cca07e54e2937eec285bb2b732d8c1c77eeeeea9050c69d2b1f7c0f2e84fbe6a4948e20dc464b920790560ecb007123dc0b2e9d704a3925007a983b27cc268470ae5c09e1eec2f7208c31461a2f1821957327cc16cec970c23921dcb912c63977670679907377eedc6be7dc37d99a8f79ce8510ce272f09a384bb7032c788434d4d4dcdb6adb60b63a454d2dd1847a3381ac508af8b521a299532d2b93bba4697053338218419840ba10e28e19452ca97c928a594f2c928a194334e08a58c34524a63dc18254708394a1aa135c47aefbd5d7a411ce8940c659c3ce0ee9c73ee84102ea53b27dc7d1b218c1142782d9cbbbb6fdf5cb8bb73772b08239d1b2194373c290b0025846fa58c524208e3aedc5d1997d2850b1f9c13cadd850be17b2ba58cef4909618c52524a57c609e14238e7dc9d30c2a517c46121841b94bb10ca2821dc8530ee9c514a1821bce8468e92e37b73caf960a47164d1786db4aa2a29298453c62b4a08a184fb60a494d2dd95cbbb3ca59c924993a59c73ee9c738739e1dc9df3d138e9dbc1935239a2524ab82b690f8d938700a339e79c3c7518800076e4c0934995a7dc29640691715632c62bca18e1dc2b8370ae9472329cbb30ca6af24eb863851d2f706619044e90e8c0920ecccf28b1a4882647246972c4104610b1810d20515f0770d8254b9c6c208913248686200209264c867032c4500f991b0e4710114368800913247c0400470987d20d0d4e3544c4104f9a0ce16428c9d0111de80012a61b75a624d3644912490c8133002647040901f2a4c78ee9c7e630c41227a61b4b82920c29b1a4c9ce8dcd6109077af8d81c9e0c3d394289253e745600476c6089932484c86c0e4e8658c28488244b3830841324869e242982c9114610916488890786d8c09222744c2b802124907092a488254e9614e10489243c0410c092239c0cf9d081278712487c6008071e0208e03402c821890096040dc144034938d0e408239e0c61c405d06373181ac2c992264b38e08487b6022862c993274b9c24d101248848e2640914248858e224c9104f8a206249921c8278082080248858f2a42707083670849325509214200702104000452c4982c45012207042c40e8cc912284b98245162880ee880d26409c4d91c38d0e4080e70000926498694587203a5c91258da1c9674e088a1261e705277d8c09007724069b204ce6c0e499a2071c413274ba0245162891149869a1ce1248924443c39a203498694588203a5c91268cac860a2b7444b44448442a1a2ac942c8a880885a2444427143ca1a2a604f54844441142254bf450282222a2a804f588889808b212d42342594a500ff588883025a887224241a884e8113d22148a8808859a4a16454444f4888858c9a2509712d47b4a968888880825952c1111a3a812d443554a88888850a8a804f556c9a2a612d4434925bbac64178542a1a29245a15809eaa15028a804f5504fc9a29e921f621adeeebe0e3c1962033b24877e396032bb2ea4a58604be7b1d741dbe67c756235280867f1a91eb10e3dea72601fa25685d827ebe3a3633a81da1d9d32440b50a2c31e5fdccf925e6ab0b41bf041582be8a0f62c1cc68f8d3d468e0a5e1a1fcf529f357653eb92628d1f523bf3ba4fa9c5003828a75f97e2c0e0b21047487eaedc9767d4a752cb0175d3ff2f1a46fd3e00b8c6b7235f68c33728d1e3522ef36b2775c1013ecd9b5438d08d704bb761b5c876a995a32021ff44e3abc07b678d2372efb6a3fbc1a4faa1ed8ba8b4545ef23ae84693488a28a2b6810a5737a53557ca9a28bcc30ae34d2b4a95519c695b01157c234a961957644db140db2f410377ca51db91eb03fb33641eb09f573d529d5df8fd4382d54aaac62f769594f53beb2662592f2f32722fa59a9fc679eca7fac4a44a5bc7c3521265fc222d1464f9b12b296b04bf9f76a0993a82ccd1a10fc9312458926532d304f641e269d48889f4d02da8968d846bb8dcdccb5f9d584d06ec365cc73fa78a0df0b715ae2a706c13f1b16b32096c0f1ec4b6cc7f1d582c0f1ac9e46dfe45713623b8efbf00caa50b146c36f26b520662ef38cd33ee29698f9e852abc0cdb54f2e8899cbd4d3e835df1d724c66d7f1d3e8e65a3dcd3cfbfed8e096c87e731ddc12379f790db7c429fbcc2dae437597bee94d51f1a531c9353172b594d96b8e614fabc0e83527714b8c4eba0c771a5de61b771a7dfb6a1598f9cd7db8863b91aee31987ea2a93dcf6c6ad568193ccb59f48b7f1d58298f94d3d6dd774704b9c4edab797ce3f36b8254ea7ecda6ff8fe90b8d3e9c7e132dc12dc97f897c0e127a225706ee3353fd9fc74e3279a6f520b6274994b4d88ed33f584fa211d07777a3fa42ab92046f2327589ed3212c87e5397d03e7aa5cd1ac4cc97c84eba0d77d23eaa444bdc701dd78ead2644569bb879765225ba7e64ae7144d7cfb63b44d64e486ba1327a5689ae9fecdd837f97e148df38ed3e50e3decfabaf2681ad9eb26b75cae858cc1ac444ca7c8760b513d2d6afda3d22eff016d7447ede0736896be2e632f5f47e6a5da2544f387e92b98ed3f7ea19d7c4cd75fc06ee64f31b8ecd1264e97d829559822c3db36cd10b46bfd3b6291e5cd1f1dd16cf032c3ba892a2c20a15450da43725832e3308a37b7a5333c0520596e6e94dcd008c0c5232a8420651748ede5416343a0b982c5c1acb32c995aa7ac4eaf9d75757617ac154617a2e98d60c102515b9804551cf573d1b1b65922bc9575c495623d04b18a228ea79ab69af662488184728ca3423068892324265741df5f47e4e5cd5b1fd741d386c9508e7da7354221c2a08f89182fad9bebde63efc381ef4bb0c47e53f322f7154fe939dc411915e731c95287b8d4c25229d74ed37dc09f53353a78c2a164208e8a06e5f906e532bc8a2fbfdd87054fe73a2a79fa8fc8728bbf699dfc09d6e54a22c7bcd4f44365e53a9fc67749a4ae53f3395c846a5f29fac4e91a94d20e047e6d9b5da04a9dbd40aace8578762bf5f1a9205a35fedc0f684eea4962c9ac976e9a3b2b495651f3d7e61cfe3a92681d149df604f13a48f2a15998ac53cea27bed27e4005c91a1401d4cfc63fa347a28d9e5e51d1a6c4a66a497ef429ff197dbe4ba2672dc91ac4f6de29e9f7f7853da4ba84f6c7c3ab362fc87bfcd42af022a9312008edd9a11644f6513d8d9e9d3507eccfa86e50e7fd690ed81fad52a8f3b2ba50e73dde80a2bc35014362e337d9f8f014720b7fec99137a8dc3a6f7d3433de6018b49b66ebb00c13cd5e183601e3ebc1061dee422f71a36e43ab0c56d215e10f820d8040f0410b0e7d089ed723641a14da6db2f0ddf7d727f3c70c3e7c09b30f816cabf8efc527cac0b40b5a4f1b0630876483cbc12d8731dde08d8f37ee093803ddae195783c5487c7e44b51e34af1e24af1bade4fe480c05ec968bd344bb3029151d8d8554b92528b46fa8a24cb2ea89824db9ea698a77a3cddc23cfc78ca8579e8e33bba82289a476f2a0a331a83619092cbd814df812d363c3dddc2a6789a62537c47e569a55c5e00680af6502bac131fbf56baa3a98e5436799aa256d8142fef6493b564848b8a1a9ea8a8a883e0b769ed6a1a4a6cd9d12e1dcf8654cbca44bee4c3b6a4973dd43e8c71b6052c8f87edf8651ef88e6669786e0c6661625671d44a476ae5f1c01d4fa320a3e3e915e681901f1c3157e243a95ae815b5f5d7b2b400545b558b1308f8b94afc4d45d185de541460ba6404ca4ad4b28c1d221f4fbbc09eecf1740cd8f37ee2e917d8437a3c0df378a08fc7e64bf21ff8a23fe04593b892fcfbe19f8c2bc9ea009a7dcafbc9fe9791b8f7233920b453aefb80137a3606f92d8ca30ed52520b097aa9203462f551588516d62c7a8713d36f76b1f86ad714dbc9fac966615228d692d5474f8b9de04a90d3f53decff528b4a8a808ab4d54637ee410ef8f088f8ae9dd41345193ab2c74e9da9b8ae28a28b0b48ede940ad6681598d15c6f4a055cb8d8cb3cf19da9e57370cebd5a0ce2c377dbbb793e578635687ee3165a6e103f1e6a0c6018c597eeb696ef683af8f70ea7650d82e7776f299fd93c0d091f56f87a560f6c3db435dcc703b73c6b0c803dff340608e95d200cb1c032b0c50d23613d47224725fec4432e88ed2742588548ad252ed4d9143c4de8425bc38ac3cc62603be369b0f729b319d8f6efd872b135310dc50649e35e673b6477471a925854d4fb07e4846a813d3af22e90f9f8c7559f5cf7ce553d2d1d79affe5ed5f7ab5fbd1608cc24b6fcc74536f17cb50b64eeaf3d3f6a48b005c2df7a2d10aeeec3afa827d7d1e6ef026166e23d1a72afb90b2dfa7d73ba73b5e5c31e17c47f46c8cedc7bc60571113ec27f67d4b6a9146ce96b45b06d2a8b35faeaec1806b3a715a1b71e84fd3ac65c77712523b1a8a8b5c786bdda997b45adbdc6aa0cdb0542ba3c73a393b88ea346843faadd6b26c2dfee0337ae74843f3a7f54b9d291abf95773c5b14060b5c19efd81678e864df0a48fb8ed05d265af34245767c7b143e0a586a4b440e0b38a6334e25e51af56e4156991b90f6fb047a646d68187a4dad19e0fe25feff8fb03ca08d7755df7612cf2d388bcb366847f058d16083c6981c0a28e0b0452608b454cb476ccc2b44afa2e104b237d9475b0b18fb00fcd1e699c931129bb0f93b28f302dbba5fd80dac1aa751ff6e13d77effbf79d3255ddd8346b6d5969881e6ac4950bb00c6cb13795022c32b0c9de540aacd805b243d3342d3b764dd334ed9ba371140cc3300cc330ec9b83b1c1b22c8bbeba655996f5cdb1d0501d5bee04d8d3380a4dc326fe72af794c6b0ba4628eb2a9faabbedc9be24db1c5aeaa6b3b04885f55cf7648f5cda94e3af6beb061d382e184168ada7245b685de186d81909e2d10d21ff7a4d846d79e1dfb9362bb6e9dbefa93629ba4939eed103ee9da0ed9269db91c921630796cd62eeb790caec58f1c918e36775dbe7bcd4fe2eaab36b998eb883a5ac73688c9d5b236b9f8ab09bdb6de5929a0d2b22debab21996dd56593e4ba9859922d98595256ee68333d73fc82cc63f1cd47364de6634736d55c3b9fe6635626b9d732f29bea4da1804bafeca2b94636cd492993ace527109fbea8064c5e6ecc4331c91989c7a4945c948f4ae6b1c740d6e75903f28193a379128b505ec728afa0f7c358bba18e9f975c97b53c06a6b1c3e6c63eb9d72523fb042b8d5d76ecd58c54611aabfb8274dcf23e2c8f71268fede385a37d41248c1c93ac23573a02837a99675356bc343f3e6edbe284f42feef5d326cc24a7647bc738bbb8ea1647ffb8f9a709d1c659207b5ab746ce621a3023d5e3b1c875a88e8f5c155ff970a4d67d3872afe9e7ad77a89e346255f5c841795d1d7b59551d630e8a975f8d01f1927291a35c67fd4dcb7af548293dad9de503854ecddb912f049be3ab62e3bf6f64d31e232d0d2cc5bfc733578ae757c722e7834ff58771f63422fcead108bfaa2ef4c63819ca5633928411254d4ff741f1d531ca75b1e3a1559d08ad98a2a21eb2d1f4100e654d912471714e8410d0bc40e287665fefb8e32dcec9f5a1d9f4ab1d49d2d67d9872423a8410d06f8158d629d7bd8e56dddd89d788c8c73f0d28729472ef15b7bd974e62a528faaa2d0ee5d39e24b25b7e309291f9f9995d66bfb25bbf2e8e864d7b8bdbb8e5a0bc7e1c94d773ce63bc6f398e5efd02d9a0796bfb0ea948afb1d58076ca6c6cba2ea4b33f54bfc775af83e6ad57dc178890de63dcc6a6a55d1d99b72ae9cafe340c6cbfaa0d9bf659a55936edfcb36a876aeb19f7b8bffbc08cebae5b57ed625fc7fe38c8ddebecdd025046e8dd9dac76d7f9ef17b7fdac2a3678235bc642b1abc975f2ef942bbd2af4baaa3f1a7b19e58074c5e1b0692f51d5936dc0de35a0c8a6177f36c5639572ed8660bf5ba7611e6c62f3ba6a77ddfa35afc363937b8d5ddc667f5a911c1dd96465dc10ecebd8e37d7034b96d13f3ece0f4fbab5d7579780cbed7164711f04eb921d98fa679fed58ef6fb7250db29d3650d8f452d874df0d5cfa6aafac0e522d7bd167a63c68c19d393eb8660ef5f7d1ad0565937366534ccb3bb8dc33c6ff89d1d021b76390d8fba9eac02b3c0b6a799c1b208d3d72e0ffb8274b43bda339fceb543865ced93851a16087f97079f2cd4d820db5cbbf76e22c1fad58ea8a17073c0c9eb778be6dab02ca31a9438ea36a583325a88d4eff0a41db26c68f8f978d8861d77377787bca217657bc79ef69ed8de138a760b90502c2ada2f710be96582d9c7c30be3a5f7fc7af6677f3d1e6251efb12a831a91f552514ae9644ae1a3949a46ef5513d832b645cd5fee025bd07ebb7b45dc9b2a4197def7826d532648f52b62c02b6a58bb57d4ab21d93a1e72506247f8e53a546f7cc9c8d5b10a911a7ec56821dded98ee7617c8be222c98fce674cf4ac74bee025b907c8feee4f6a6ac6c69de5eb2439c08692d7bd47ae1efbb75d6285380fccc5399f9a9c23c341d8f6347ccd631697921ddd174b76438607fa2ccbffbb0e45e1536c507b175af4ac7774b46c79ff61bd4390316204c01842cbe1415fdccbf6393db9fc715451c98600623a082083f51a600f979a732f3b38f32857faa5339c0cffbe4a81ce0e7844510ef2720a04efcebe203756210f3af9e6615d26d2af5de6d974583134cd022062bdc600b517847d40abe208214527431060fccf0b33ffb4e48c7af16c48b8a7edeab304f8f7e567a7710318a394a8149607b7fbd50676bac68d138bd292b577a482704859136c6c77849d4f04f82e958e58caf6a93598398d4269fef60ed4e1dff3e91ec13acf4ac5ae8e53ba2ee2417c464c17475d9649f60a5e5bb10f4ac6a9305d3723631409454cbaa6509a220621c21881847a89d120dffb87dac8096258816cc8ff5158263c6b496a21c25a04114599cf0c8a2032e4543492c98d65214448c231441314094941245fb042b3ffb2e042d47b0607eac5ab4607ef6dda965ed9687dd20dda64cd0a5875e6b29ba91851d340186a2a29fad4b10d15ab4ef9827d62e89d68290d942166ad0862845453fab3160a6615d2246499e37c036a713d27061cfacb8131641549f555da803bf5027569f87e758aa80f5f920e82b7a5983b03eeb090b79ab1eea402741ccd37adaa00e7cfc03f6c706eac043ed88d5f3dd1bfeec4ff56e6bb83f93db9fc875a6e69a893cded74411051952816d4eb75f3a666f87bcde3fee35c614f658df631894524a6c313e61214f74dd82317b3b847b8f517a083c7aeb983c26b9f7d52a8bdb380a75e22577d18e871a105bdcfe549c11ace1b766787158c0638febb876a898ad26254f6666c975284c6616b70416f244f4d6c466f67608ec3d86c15bc74a463ad4142d3f3f6b87b241cbeae43d8fead58c5c3dabc51deac45f9c0dd489361d3f819e40e0ba5597b07e3d02fb63552ce4a3f6002710f0735513d489170275e2a986045ed60e881d34b6fda17702013fd6ad77a68eaf3420be0fb4b8fd61ae435d46647a6b3e87057ccb0f8eba08b40f9720d5dda63a5e08e6e97af08179ba1de302f13e55bee8780530cfebb85f743cc6d9db21dbfb8764477744dd03f3c0c7ef97de1d441015996681c16f4eb75d9a8f418e045bccdaa17a6230832408c342b61d98071ee7fd54a10235200b6cdd76e6e98408d9817b5e545454f4c3f7e19efff07d601edafc1f760824e16c558a9a4f93c33caf4bab85167a63ba53d25023b25e3aa21133e945665303ea5265f3f13d70cffe6cc1e27c522eef18c1937608ac7c1ff8b865d36a16d83a21cd9735569a1dac68be10e6d91409ae68be0eccf35ef7d0fcedd2bb03259f5403b621d83645822b2d7b53506cd12b83e5c54aebe6c00f603e6c5f12b6406cab2d00d531d6f71410840424c15205923607e3e57376d67e4075d05621a2de77fcb775d9b45b11a0c0d29b7a628dee481dffa337f544978e18f6a2f603aa974d5d6c543f0c6a4092a73c178bbc9e94794a445ecfcf4afb5d72af3727d6a08dabc07c2005bd77f0fcb89d34de5b22d802b1cd73858f72f299a744840f0f67271f04e729f3704f1ff661d40362c34850c41f50fdeec3af5236c5c76324221b3c5f88a8e3c6aa016c9921733b676c31c225d832cff67e396c79d8b28e2de1f719e4e2b7e8c73979cde7432ebee6fbf0966de63645658be436f5c415bd5acc24b72928aee8f7c83cf1ef94795ebfb306f4b25e8d488495322abee7042a5baae8f8d9b35b8a8a7ef64558649ef97d13bdc776878c8e61a8ec236e1748563bec42dcf358edb8b1bf675c47d4d9eb51f784a8b1c75fdf1d627db44046b5c30eafdde2768168b5cb0eb71f27548d1933a60d1d9f711d8ac8eb781fc6b8ed8b0b8a15caeb7923dcf3503b12cfb543357f1bfbe3bad7ef5023323f3ac6958cf4d38a64df05f2ee037d38e384de98a61f7125ad4875ab76afad5f5cf7fa3a36b9eef5bcf6a82189cfeec3d83e2ab64d51d1a2e3e7b1c5385bad8876ac76b131c850688f3eaa4f33127b1ec3561bd50ed5a3671c14dad931ae7b8d7d774856bbec4c86f42e10ecd87d20c6611cfc6aa32a047b1e685ee3ba79f8d58ec4cf2d452368ecfafe6945de98ceea2e900eab426f4c63975fcd876daceeee588717b76d71eff3152d10c97f7c1f46596f46c10e7ba490fe6f7529373e0f842fe5e6a307005eca13ef360ff2853d526eeac9c6218e4bd171ec7b0a7ba4089172c36fbeb7813d526ed4d38d9348bf913989fb8d9f6ed4934cce6f7ebaf1eca44b81f544e9b77ada5ec19f603dd1fac4fb891e87cb5cfb7e833d52ae7abace7ceca69eeaab1def71ae7ef313ffa69ea4fc564fd7b79f6e8e5d4a3c8e7aa2a1b98d7a82b7eac93a87fdc41dab27087fc25efaccb63dab27297fd513aca71cbfbec16f3f65dfea49cefc24af731e3f6de7514f3434afa9a79a57d571a8271a1c5e53d59cc74fd579d4130e16c4e1272ba73e619aa9a799d7d4bc34535353bfe3ba8e438eebc22e8babb9b92103b78aadeb06a4588f71568fdcabe20385aaa627ea592d36515ad1575504a2550836c507c50b125f5d5aaefbc08bab5dd64f086c42aa6933210b625a08cd1b0013b2f085e94c4fb63aef7bd2f6e4b0cefbdb8179f85d0f3cdd0d2de3e590ecc9536c9d907eefa163b243574274601efa573336bd8d864def0b3a90020a6708e3072e90c1cf067b5052a8d8228b27c6b0842f4ef003bf54000d6f823df1075e48ed98ecd0d90cb6ed6c0736bd4b4e08eb20c5d60981fdfe36a7e10e0dbf9da9e152e14a9086bf0b1a9e6eaa81729ad8682ff3d0662a5869daf4c9305dec8e49d6f02c3f6715e3e47ca0505561f0efbdc365fe7b31c6af0663ac8fe3b0c8b3f56cda6319438c30547841af97ee86aaaa6a2a65c57550a8ea8aa8e5ac32cf12c3209517842f3921188a17841ff787b95705ca6318ea5561134b2954b5941188b9c8a6873a9b2211a850d41829d2d0b095addb2d1d15e0c30f34d5e375e821db56a7dba9b22aebb8436f4ae3229ba4fcd9c42d9b2e2eeeabb26d6a0a627a9e76391c4d641e5464d39bdd05aa60a31042f9ae4b6a400fc2072f8e682b2a2a62e2070b4ae9b7df2b0de8fd806a7a4a5f1de3cf859d0864435adf9a209d5c079b1e93196b476875423f441babb2d5aa53ba0b04be43b5945be4086687702fecb12c2eb24e948bbbb86c7390a7dc14fa1325ca94ffec0ea09369f929427e7673e8665a5e5b02c8bf311b1fe33b09f23e64134f4545cdf5ad498a0066976c1682633406bc315c9d541fa2dc11757c9a91d815d490c4e663339bc766c61c1486fc368e846057751708cfac92ab961fc86d67f2f490231b560c8d0e40360a656bf89aedd9cf8a7ebf318ff5efdff200bf40627c45e321e76468eb8e7f1b24fe6944b86b56275e878eef7400b1d968966687b0269fbda3d8bbadaf77362d75b48e961a14daf126d80304d491a7d8553b9bee8080a7b48b4dc3dad574b75d8c70fb78c4956681bccdd6f45e71744def938b6b7adb31e9b8653436ac4227ad2eebc8578300824db2cb8aa13c6d80ed107ebd1b64c7c4e339ba9a853a9dd67bb93d14eac86f5c20f150035ad8235727ee04e161caf19a8eef6c340a7b76803af2dd36dfd954efde1d6dfaae4777b4a516260b447e07d8d381d59197dfe5d935752f8a96a7b5eb518296af6af727a5e567ed6cd8d0f2bc43cbd5e9f60c2d0f7730420d5bf7aeb4fcbbf2b0f001241336c91bc12659c6f6a8f47bb7615afe6589637240358145ca8c1584210d33aa70852dc698e08c1c5ca90116b15f545434821f21625cc18414656061074e08c34ff720cd5fd8a38124784942142e557002971f3e853d3ebcf4c08b14a0808518f4e0876f037b960b4578411b7e20461364ace1878f2d0f9b1016d23e9cf35e17b803d07b2076803df167cdf0822b3fd8420bb4c020073f3a9c418b21b8008d339e38c34fb7f59ea5d8debbdd427fde29f7bca2a2a2222a3f53b0cde96451c378b943864d43cb493cfcb3c31dee898285367a6c8dd3b27dc4694975f7d068b8b5ac91c38abcad8fd8aa51db8522446a79520753db30f5c51860c4c035a84491e58a2db674f1128679d0601e6e786ce3a2608185a61df2476188e9d1596380bc56bbdad81c65dcf6d4289d520322d5dd201df6f7237c6489c6e031ce7c18634b88a8483b02b7609356336e9b01f2a3dabdb1470c93d9c626784e01e48279b0c3639001b2c22d6a07e535bd0f4fa1e86d185f9acf9a918dd25f55e8412ed8f416ca51b4e22bae5ba2e3ac30f582c04b0e6e7180fc81a9cd0116910d530b043ab175508b86ef60aae1a116700be6e182796491c6740c1f36ed6ee92fcd0ca6b97643b17772de16dbfb72af2197d548fb41fea25f0d1252840646da2fb858514594a22f5eb8d8e24a146888e9f2c51556508902e64b8a0b2c57d440238c2e2d6407334346f1fe1e50972faeb022528951c07c497101b1c02b6aa01146972caee02a4c250c982da997e56159438d1de3ed83a3307aff9e0e4fcb0614178869bbf4320ab6c80cf4aa0e6c5a9d9d5e46c126b522af1fead518618423210b648fbdb9902b392a1999fd1ef98d848071af06db1e63861be33becc8266cb45a300a8f51ec91c34eb92ea7e929f3cceddd9b429dd13b1b1adfc1a65feef101eac0eff260c40b42a9cc9f964da62e9bba48b9d7cb3ca4f3317aecd560a3c7de8b1a108530968cc83eb50fb314c0f40619c2d16a447c803d141af178c87941e0563b9b51edb6ee964b47b5ca25d6300d8f65dc760a7b4c50e7f1a08017048eded968efb65ed8433b6e6c1ff3a823eaad325920300936c19bacc32be0f1b01be4baf551ed6cac6bb5dbacc7dad1ee6eb7347cc6713f366cf1cba6c8712ff360b5cb7ce0c5397916d75178ca754c727a3ee34a47b69edf7a564a44d68822bdb9048c8f61a8a64be1f9bd677dcf2c74ea6721899c10ecf7de8570de31ca26ab8a6cb2aa67093d3e94ad99c42226bab32e54adc1c498864265503c3cf6572d2eeb2cab5a17a25146c0443b81329b1e4ad54f504d27d70955625a7e5a43dcf155c9c84b35fc64c841e18ec7987b77ac4f0adfe3feb83a8645d8d6bb05d0efdf13545589ec33123bd620785883f6bc530d6a6c01638c863172f2ef55525652ca88a33d29b07cf1b3e2c4c82c85477788840fd2c379380fbf039df0701e42884dee32e7df7c29fe35772942615e728f2e90edc86d6ae5e30e99dfcb1df25a0736c937a185b0497e35f8b008913dd7e57bd8215f20f4f23bcc23bf830e7d0ef750d6a15da9650f0debd0cb2ff3743ab47c6987bc961687c3267ab88429931dbe37054612da86be5495aaba293052bd293090d0346ca256c56113ad38b940f6abc505b2afa10e30fe3b91ab1fc3ad14323f24d83c369f06743d7b7cc569df1d82714450dd65bfaa6ff57dc675556f0a0c2e3a2e90e5f81a57f129bdb6cdb476f4196fc58e71967157ffc220f6bd0f6bdffab24ce809aaad771f58031bc6f493ed62451450b455b3daedaffb406c3199518eb1476c66942b428f68b553a2b1efb14b8dc8d557d0f5dd7a7d3523b4b11a44cfefe8df113ee59643612f0ea1db1a1e82a145c3d3c0d3cc0251a882218c314636c1c804600a0695e62f18314af934a00b6c4131421825bce48c6c0d1fa3943df1bc0d81a0d0e3934cc00209bb3d106e5d0e4a34b2f51ec28590bfc096b11d4500f5c35f025e0aac4e20e087cf9588df378718b90b6c41f13dba03634a4b94914bcacbaa8512f576a165d542397ac9492088185d8cf9d947a96509a27d82951f5a8be23babe17d60e47aec57ab408f7e28c91c058c09b0df512a3e20a24859220b52ba5891b2842c80f959a823a5c1e0810abe08938634baf859a8c35f28f32a9b4cef4ca374a4ef3b9a2fe4756153730fcd5bb62c336bc62659b3de54173552bc063404e106305842182650c3157e502c98028436f0e08b942c47f8d96fc5b0cd5010c7ee84f11ce6e982d0bcffe8d7258b7edf721e034626e8d2c4959662f43b46127a1d8fc522b176af764db8a263ec50a523528c8e976274f704d59139a11d33660ccb2b9a09549a6baea518cd9c8e7e5a91373f72506ade7c2e8819d6929177f822efb00e61cd042b7a885bd68e0fe5353caa21d790e39a87b0dea3e4e33496c045c35f33d5f27a57c0ecbab20b4bc3bf055495df351ffd45796a4042af4e0d4808e81d9bc7b88b7c96b4249592a1c519c6bdfecd35adb4042f0d7f95ae2de10b2dcb9e69231cd7b0d1689403871b21e5c081f4b228699a0e4dbb0f9736aa956ebd54b266727018394aa552a9c4e5b03173fcc673e4a8687494a01a251d99361384e3d785f48c4604c7af47ed08fc257354737583764ce34a57304fe9f218d580b02cc3d16a8e8c736224c3e119e94646a7cf70a819291b61c9b8d7a5d2364ee959897b3e6b89951e4bda6dae1d33cd78c375af717c35243aad1d07777363730327afb049fe0607d160930cd79d6c70dd69e3bad3935798e741355afe4134388c96d7fcf36162ef0ae6d12e8f699a76d6feb8b751f9cf334a74fd5cf5f574ba067cdab19869da9ff5d1ad8f4697c746a311765da3bf526f4a07505882194b5863095594b08612ccb0b2ecdbc53931725dd8e9afeb3aad1d963dae93585a6ea363569671dbd7e8f5e8d8958d46f7e14a43a2d3a35a3aa2fd5dabef0a36c9ff9c127f3d576bd1cf712fe3e8392ce6af8c4a0d68d61498d6e95727176cb2faaadd07f8004527ea94e8f77353feb30411f7bfe8e735ca3201e8a7fce7ff3cb73f9dc4324fab101c63fde2e031ae53a2adafc600d37571f0930be6b12e3b8985bbb0497659cb9745cbc7843c777959c8a745cbeddf967f575c3ee303fc326a4170ffa116c47faaff797b745f57d6a0992ab16908d83e2abeb8b274c4517d93c045c3e3e03aeed247a50be9ee096921bd5ae939e4d0abe1c0b123669b17d21d37fdd390e078c7ad31453191c9a1fa71a58fb80ec799011f5d870e1d3aa00e1dc760a643c77d78db70c00187632fdb381c70386b40388c4659961d7bd988cb9270c5c3f9cb729070f4a67470a5311cd90d7d117a543f6ea47d04cdc8a6ac5271441289a401651f6d63a5ec69ef385a036403e4ab3ec893e81a17ce6f38ce6fc0c1c1c1b9709e23070ece7df8c75e868383534b47743cbb8e2cc348a457058e57383c3b0e19cebbd2f9984604bef41ae7149a9143e786e7f80dcfd1718e399391a415528e1c598e1c3938d295e35043a2d3396ae988cd49b739e9180ee72436ce4991269b5a64241289741f1ef5b44827d5d2919b8fb011971d87a3fdb2304ff6788c6b725463c46bdceb5136e2b6737042afb36bd991d7f338dcf6ac58f61287e33e1007b77dc35561b029de869b59b029fe064e56a9c6e84e97b472c4d4592d1db9f1d16f54aa069be247f565a981dd5563743c55a31a83867b4c6cdc5518ccf3a61633dc63627b3db3609e5127ad84611e1999ebfa158679ae4766d680aef316e6796ffbf6ee55b17dfb6a3ebc2d06396eab68a8016d32dcf656f965c12ceb16f7c74d2cab68ed4e4dffb86eeb778ea3f21f2ea354fe534fdc89ae9f6502507a2c665cfca40f939965f9203f5f7adf46f511faf922149a51bb533fa0771ff8b08f8e7d5465153645ecf11886bdf9a7fdbdcf3a6bf7ea10f7087b12b06c3143095124c18b12bc28a10a2f5b52bd258b2d56b61421014c638bd16cb522a393feb8c9699c1323dae98dd8b8f6651e5a3b2746e8656e643bbd66a32e9bb4cbd44ee8b5765abb6dc45c3421a2c68ed16cc46d6bd81b3b666518761f9e1a129dc66ae9488561d8146ffdc2c23cd6e371acf1b2b0291ec3f1a66c9f3265caf6aa6fc7ea3eccc446bfdd4133980b8ec7c4f61e697dff39b116599c2083a21fa218a68b171ce16709109c503f397742c8cf14213f58bccb2acc03cd609ed7587abb83629ab9743c7fb10386d9c15cf8003bba5745c73f2b2a6fa9af0a3e407d577a3b6aa1f21fee5b9adcb9df0138c9e1d89d57cf9ddb51b92b4b0e0ed205d2bea4068f52afa8aa6253318ae37823d8b837d54595de30aece5c17a9fca7caaaaa9eaa1355157c22306579187340323247392affa119a5f29f78005a4ff444d59709c0718d8e7bcaed0f3f562138669900dda6525cf410bf2c10894ec32a54f53bc3151d7f61e9782b7e1a618d9ec78c6046c76ba92a1d8fbd875ed2b5ef696c709e63629ef9c945cbca0eb3ec559665d8b7311216543a422f4f29bdb51a03307a8d6875ccbabe6d5d954875eb56f68a7b3d1f914bdeaadd6b7a5d968624feaa41f25dfc1354cf530dc91354670f9a8fa7b59bcfaaf50ad592d37e71a8d211ebdaad6bc7509d7d92b8c905698fd6495c942851a2903e653787c73dff7ea6ece6d0c19ef5fdf840a153c7ef0fc6c1ee501068c70c9bf60e3b8c5033827dd64e3b564bd8e9e55933a2d512568f54f3f1d8e4aed38a06550c8015b56a378f1dc3b82e7bc9fa96ac4a441e3b563bb33e83ae63b57bdd4d2458dd055285de18eb10abddf5395f5f16f7b6a50ebdef7aa0d9e38199e8fd48c80ecc03891eeae28c09ec35b1b10e7a535c38a1798ade941072d0a6de5410b2f08e3dcec8501362ba437131bbf3000a94d07bd26b628347e84dfd004bbf2dbd292dc6e89dde9416454f2b7239e14b0b29e97d914b8c142d4434ea6e880b59b099a2bb212ba6c0b8d0dd1009b820bb7b52051ffc104297ee9e6cd1a5d7082d2aea3532a6f7bde7156042afab77e6ba578b60e79ebcaeae1af47ef5e04bffe84df1808b1ea22db4635a23829defc3daabbb406433d715d99e97bff618d7cd4b2ae2b5f7404c6bbf8ec95fdd75241ed17edd873522f4d91f97fde2b4b376c4fafb6a44ac3f8debb85ecfb88efb41a12d04db50d47bca754315f71a553d180583593a5a8775e78ced65e9f8a5b7acbf6afd71b47671d9f4884cd8d7b11501a4e2e26436ba223fbbf894febaa8a9aff78bcb3eb96a1ebb3859278771946a44b45f871c7dc661f78114fb316e5be3465cf786b8f971da2debd03a06b9ea9586c4d4b076f29896ed3e0c39796cb5ac76a7ceae8da3f29fedcb07d8ea8988f465025c3f2d13007e3bbca9dfff38ec19c7dfb8fd217158647f9c56397a719646645ec72e4aa70634c44f43a2d3f27247ccf6b2f436cc92f12401aaab0f0d71b37c875c776a2750e8e187e2e7594362ea8e08729d12dded2927a40389fc83873ae04177a8eee0590754dad4f298ccaa216e79a447d4806085426bd0fbf6accba66e882b4e1e6a477a34aca4fdcb9205c78e986d88bb74e435fffd8474f4939f5c77ea298ff4e80ece8e0f2fb9eed4dd3e72503b626af8b2b069a148245751c330d8a2b6f8771c8cd1d8be196c9bca01959e87341342090eb6882daf1d4008814514b8c30b34314f695e48cb03c13c5d4ecb4b93122398a7b3592e3f30cfd5f28a2d2d01d05c7874b75ec0ece86ecde8913f5dd63ba6f7dedf9b6fdffcbe0fcdded739cce3643f348f2469fee4efe3babbf3a006f46657654f2302e15f75ace23a11f4fc69892588281113e1c31fac4a6b07bfef2691797864d6257ee6610e1e7b7c04fecd7ae49d6fc33cd5e5712a6e72db1b0d0eacf4e4646fccb3f3920d6d68c31bb33bfbc9bd31bdda025046682eda9dbd0f4f8e8b98e87786f25936c0f6156df1bb61182c022befeeac86847ba25c8f82053c66719b62c638db2fda0f514302f78731b9bc00d4099a2211b2621ae0d394b4bb4f8e3a222bec834fd3b356a4490b1119c95a4757ac2d0035455322a82c2da4a4e9317ebca3514794a5e7ee4e47ff1650d1eca2567671fba319e1cfda5d1d51dbc04acf6fdc8dc4c30a352125a28c8089a276b26c9a9fb583ac2189871d04abea019b1eb2e909ff60d0bbd0a93bd8ef912b1de940d0fcedd580264b35ee031062624e18f1f2942eec59d6e9b6ee4a6cf33b543c1ddd94304ff51e9867475717828bae7e01e6815dc11da3ab1dbada2fbafa6a38ccc35c15e58da0ab639c31c76dc33c9bb2a288dfc291d01bd3fb8d79e0abd3304f7c55ad186805b64b6cf170535ac4f43ede41cb1786360df734665d04429c1db20d9f638710c196870fb64c0b963e1fe7f1f0584b947821ccd3d1338fbc0eccb3a3e56d6a9045cbe354212d6d5a7ea391cf982747d6a04d45c148307eab34d3608de6d7004bf321e4ba77dd7ad47e888f8f1c061ffcc509e90dd583dbdce4067b78d658a30f443006172fb8d8025a544ef9c0b00e4f9892f499d1d1d786ed7d795fd8c4cf2a8edec85825f8d8f27d915ff856ed6cb68551f261981df25ae889796068eb31ab1e66876c73a4348b50cc10308662b3ac97218ab6fec648f4d82bba51a3e93b99ceeaf7b73d46401dfa6755cf7a55453602d2ad2deb4f03aaac4afb01553d23760837dda67f578ed89e1da00e3d7d569abe28fa614995814bd3779b86a6dba5e9bbc7c454c226fac715c1267a0136d16f94c9689a5eee006947b785bc43d3575a9157dcc316ca646caae8f946ec10d8f44c98079ebed2929da33fbd10e6813d59a594e634dd69fa9765ae8195e6a5cc7687446ac18c4d3c657ba7ef28bc7414d1a1e3da5ae889e9b7d0fbd2d4c232faeb9836e548c6dd21f23ae4ac5f5cbc4e9f86441e01bdda11f98ebb08029a562104343db665bb43f65d0ce3e8093794d9b4aab01e91355a6f56a10960523d5f3a322f21ece82d06cc37a6e998b6deab7979ca917a565a84f4dea8eabd208081f48a80c9624a961fd8600759e8000ca6a8e0cb174a4802153580b0a9b1843ae4a6e71cf66c70628942152c200117a929d620c096365831a38b0e92600631f450238a1d05a0d503637a40852968210a4ce8020915aeb4a10b56b4a042852e591a5e6476b83146f505b6399d901edfb13dd17afcf11df91c131a522dd39b3ac3173cc586335ff15455dd686cd87484d1567136349fe122075d4875a11225cccf067b0e70851640a18b1378c104317eaa541a3de8aaab533454a1ab673d5d55d57f1b1ac86d3731f71d63b61dc30c7a476f6a0c45ddfdc927a0d41aa89a500a54a460450a57b244e16d87c4c35243ae242b918ead659688f4ebd580220c629b7559477273434eebd5f8366c629afaaaf06e619b1e8450c00fdcd18e7768235108b33a2b6d9ad5589d9542d1ea6c7f8152609bd3bd2f0d8fd9ec10edfb9be521fbbeb443b0ef7176c8f5ddf7c03ca4ef93803d3f7c27eed9611d780884c7eb39c7f62cdc89d26fa6e6396c823b42666a2a9beba0c38e0e3b4274d8e20699b7457533f3ac6c31c44db3a3c38e10e6a139bc0e4f934f72b199e64cf3d58068eec35203b271cd7c6a4035cf590dc80676f34e768e77b3376a44e88d9b4c6cd2f16e871c743a5aefb88ebfd99e24a0cec61d72f378b9437078fc7c3ce4384ee97fbccd0ec1f1583b263d74fcd964aa628bef9e63ba2209d8b3963ceba89d0e1cb8022c10f81cdc9017041e87eb814df025ce874df0e714c03af038ea0f37dc0e0b04fee9e0e645d921dcf037dccb62c7e6861877786e1ebfcb533d26017b720eadca7dde707b991cce08186156677b0767040c31abb35d392360a8b13adbcc719c912814ad8ecd3aa1e16db81bb88ef60d6e885b56679ed8925a572c10189bb52a02c5575cec5899f4704486ca162a5ad6d0400d6866abacc8628b948d2c646a165bed6212acc4e3c2a6149b76beb3436575d6caea6c47e14a14b2ecf4ebb765543dd68dc4958ed420fa58fb6d6113105671948b6b2a125be8d4f347e0d0e3f2526c823d2880797e609e6e67071f1f80d8d9d90123cbeaac15abb33d2b185980b105cc68ef8b19898b6b92267e5a91d8550b950feda45667b9d02edb18abb3bddb63040cd3f2c8c79d96fb525007f27437f4366fb801d3b8ed97823dfbd3dd13a3bb34ec1e97860712c226f84ef6569d823d49401d7898a24fb5f5ee8696bf0f6b5cc6bd0d228f717081c85f5c5c20f249c8439cbe61d38a5e9775e67df85df1acd0814df0b1eed41d52d8bab7d3f06f0bf3742be60be609e3a598870bf374cf4a17e699f58d714577b7a28d4481cbea6c97d5e956cc18ab63240a5f5667bb7b54242a075730d8e674dce58c8da374b7a997841dc21defb38f87ed8e531dffb8409b2fdb181dbf5d3a9e0ab542af740ca91542b2e8b8c3161db3c0057e013bded2f13e4028611e18ff03f34005f81084b680cb421d7b9aa6bdc8b67654434ee3aa3306ad671caa21c65ee20ed966293b847b69d81465ed6c3a0d1be42e554840b1ca229b321a6cf25d2c42d9042b237132cda4ac43fce6bcac5098c5c036a7bbac300f7c18365fec161db867db769e8343238b22848f7ff7c0b6293164d1f0ef94135bf4a6a670919a62a5b11953598a268593cad9a1686c710d9b2897553aaa1145efa3199c823d56182b4c2a954a59665c51ac35c2b0d018c332c31293d131c2785dd8f462978a065bf7ba543d5618a8c3b7c46c9b0db4c2c8a2b6c2c09ed88575f8efbf8d8d1526768961443322982e7a09638c9d2f6cf18bc705a664d15bc3d66d0dbbe078566cb28ab4c23c5decd245ccd3c528cc236bf7b6482ab10bf36c3a0871cab2e585a9924518ac069614044365875cb143382b62139f6a46745a5ac1263e0d9b62f7c822d6e15311b2ed609392455ca415cdefb68b4d771bced6330b84df55bdcf9807990dc2df6d81b0615be6b168def9b1d48abc61f5e2085f7abd384297eeac30cdffd1ebc511aae8d897762c7b5cecd52416b979868670db1163eb645184bc4f8e2e2b333bc036a7d3c4341f4bc78e5e9ab1c828baa3d40bdcc21bc7d799faa5a00ebf0b4c41a66996b533c1dabd612a3e0e6e6113ed5861aa0d1b7be907a6f9061b6593e94bb34dc76f68486a48b7a75a1df835c1dd20f01bfb692fbe63d4c44c2c5f70b1a28a28455fbc70b1c59528d010d3e58b2baca01205cc97141758aea8b1c61a3b0b64dfe58b2bac00f325c5851a6884d1258b2bc280d9925a638d355e15b2064318e346c84f925e80edc62c11cb1a6a8c11861659402bb08a1961b86ca982b370d11a5ec6d8428b289e15314c16c81a5ff8b040d630e5acb1ad1c02b6a635c94963d38b83bd7b6f4eef4eef4e1744c39c35c9af498811f79c0b681cce9534b4c12902e3686c8c68781a260db32d8986341baab86892b1e509364a7bb1049c4533563b2659bf149bf85b0461cb361a9be79826a59bcd6f327527a48564ac83bd2dccd83a8ed27cb60229dd368cad34ffa9a146f3ebd9c234f317ee796158e7c63b7ac3bbcde69dcdbb0d7703778393b90fbf30cc3332430cf368e73f3498c70ad873e3fce7857964ce7f5fc0304fcdf96f0be6a1e73f2eb8e751813a5bf837bca37d7d61cf0d35bb1537eab24ef64b1b1d6a401a693bf638d2570352a2bba1056c3f1999db3836b31a8ef4d56cdc87b76d7b91edad6e4735e4488fdb388c331237739afb30aa6966640e65ee036d70386c9291a9368f0aec316275f84ce99685d9ae8d1e35a091267352d59eb1493bfcfbeb6dc8af34201a36b1f6d74f7b9ad66ddd3d2acdc7b8ee71d1fc8beb68ba7b5b347be96c9a9f16ac802098e7557e11db55a53f007101e6995509f3c89a6d7c1b1a2973c40958366546978e95216741c31a19f145ebf9f0dab2ce1a9035b3ebaf2deed12b46ac967cd8be5e64fb3aaa2dae7b5b4aac337da87edc90ec2a7ae92835a0c85860cbd8bb05b6e584746442185d9a4fa3034eb30db03de780edbd5b366d00e435b3f7de6366293fb9b5e42d0cab42bc9a53a3cd33c346df651dbf71cf2989a2a2a2a29f29ff7950bc01bc53958f77b219b658d528446621630b32a2d80216389a5a865520e6ec69af6e64323ccc7a9572af0cdb1bc316545d76f7c6ce3cd645c2e443ad86d547e505b98478da91e80365a5991c0e8d0d0ef3cc8d920c513e31dbfca3c1f91bc3f6aac39b76841c7e87ee75f7a07841aefa2e04c988d2ddbb878359a3e1737656bb2a1239aaf198c66dbcba579d72dd104b94f62c1fbc1a479fb5830f8a29b9395f95a8014d2e7c60d4809eac220484f35322c11a7e67e5b4c8c81ccbaa63a419862c6188d218cc649688055ee1285ecbba6c12e251a9af0a9be0f57729df6597f0921eee2b791949baf637ba3ce476ced8681d82ad6dbdea50051f5bab41b46af3d5bbac56b2a76684d62078d95a65d9f05591f1f261ed93a3f31b27f339b3cda6331ba75cf549b9f98db3f1d588d08c7b6d635632dc768dc3b2a6dfb8c83af418b744aad3636f1fc351761fce386ce32e6ea3b161d3fb3b551f08a310841c114469aca5c1a2588c910beae6e189628cc760fbf04832b56e1dc332cbb22c2be382aeef6ad6b3ccc2aa10d4aeebd5a63d7b47ba661d47c732106a5ab54675a4f156bb27a88e54bba77da4d52ec32cfe65d5e558bb7e249e5528038df6d19b2a834b195bf433416f0a0c563446822ff13feb0875baae3f2af3573c17d4599727eaf9ac19abcf785955175b86f28382f4eb1a8daed1e81a8daed188c40569df7ed7765da4eba439aa4270e33aa20e7ad7be1a126d3be99d8d6f382cf9f8f9ed34dcb28e4c1de2b6e8b72dced4ee09aab35187b8af258de6f5788dcbb2be6a67d54af3a0784168d8f464257aa80d0c575862cc60a012e64b982e2d80de54182ccca893a6fd51d1589395263522a8ae8e75b7b58b736a7b6d6adad4f6dad4f6daecde15d84fab73c2796845ab423876d2d83aedfbd5344ddb49436255bb965dce338266ed1e06499fdf26fd1cd5a13a041bab1deab268a53499c6951561aa7c014c63a4c8e7be1046f7e84d7de10b587a00bd292f84696cb1b855b517a25ad8900b123a75f5ede518bbd8d6f7ddabcb9f1a5005547d359977f38c5d865bd6d19e8dbe71cb3a7254b54a6b27cfa7dcce191b5687b8276b453a5410ac6c557acae7a0f7f9f7593336651d6b1db1ecc1e8d54999f53d36391bc7ae6b937955bb87d54ad38a8c5e61d8b70af368408f8ba801550c1b555b63afba10d523761f88d11375853176586ffc1d761063f7e1d755efaa4aaa1d37ff55e9f7aaaa343eecefb106318901b476376aacb5441f6fa4fafbfb8bf0c6e747a3bf11f73e1fabd8dda8a337bab422d583e2e85655bd8f2817b2e9e4f7feb6469db08afd51c1de9520583d5e5515abc7ee5979187ccdab387a478f61b57b557a9e7fac56a33ac4f0d83b5a2fe69939f6c83c34c72a76ae43dcb1997bef1456afb422a3bf86bb4ec3c97c86db4ee2b457a391106cb29171d8c806e936dee891460f8ab5ba213804af1a64bd3af6ee18cc2a1b7fdcc8462dd1bfcfeaf30ff61b7dfee26ebdf4f58d93e1229bb6da0d418d5b3691aa91064575adce5fbfae4b0de8c2baaa2c2b5eb55b2f6d59d58342e6d940830b563a6b1d8f5cbc304613a037e5852c648821834b7ba1a8b17ef1cad26f6bdf532c83cfb22e5e79545a16411d599979a4694570dcdab66e25b2e00af358e7671a1073811a901238f3ee32e770dce646cd672e730c7b15bbc5755b5bfc0ead472befd01a622e8874a27e5c071b360e1fb38e31c4c138a83a89741db5e3aeba78a5f9fd5526c177af3e5883aa936ef38ede78b7d5308054adea5c4ba4432550475ee2f09bff06eea3d2694c36ce7f9077ced886b8395e69781c5ca615d171c674c02bc9f18e76e9cb3da573f5afdd761c6a471907685d56d5714b5e88c5d78143edf8cb0d56bda15c2ad9a4d9241034b3ec8e2bea44f42cab5faca2bbf9210ec271a2664e33021bb3ac682546f17878875dc4d2dd10c3ee1e928e1b07cedf271ce2ceaa5dbcd2f343dc6c9d5aef16941694169456101fc7ad196bc6aadd5084124a28adaf6604c719bed815c77f241cef955604071f87cbfeb8a91d47f7eef6cbec110275e46f6a476d6a476fa8dd76a376dba8763635b5b3a1a9dd676af7b6513b53cbd4ceb46dd5856defbd57d5a06b63c1e3a17b1bb173180cc74e1a247e76c6b193c636249b5483b057b7de0dc9ce3e8fc1f7de756bfbbbbed51215027beae595c8773b068f77afef6c76bcdb7284f0a8cf0ad491ef9e43e98eba507ea9f54b5b9f4343b1b18fdef197aeeace19db90ecf7cf67afb422ef4158257d6a48b27e7f56aacb2f76f96a477a56595f7a3e2bd83b1bac7643b2adcf472bccb39d3db2e0f1b04059bca271979c4d3b10f4752c66946e5b67d316df3ad418503dabdd8bdd906c8c218f3a11f4758bbb0e3523b2af4a9b1ac1baaa91052fc8ac2f070fc2b00c03353096ed5d622f0cdb7befbdee14ff78408393a3430f3b6bf8a2bb1d56536281bc4d43bfa798cb72af1fd02eb7fd20ffed21cc413f2c7b5fe689abc6bb7bbff3abd8bac82d159cb387e6bf1863555555ace24e0963dcb8110c110d3456724f5ecb278699a594921f333f3148ebf194167d514a19e518246755acc40c6a40d1083659a7a7619eaa8a1a504517f650d679b7687c534208e71355f5254e6e17083f08a7843146980643491f21849359725c5c08a784314631264b2927b7964c6fa6b773c2f9e8f2729145b09a31565c916d8a9313468c6caa199b38c218ab2a3e38658c513221ca5c804d199661161769b6616f7ab1917245b62d1abf2399ae6e017167cca359dcc68d5e1a618b8c6780b1aaa8a9974d3476b1637c551563ac62ac209458f5a57461e4e49430c608c764cd8715e7e435657a1f86905ab0fad4802aae11d2ba1b65608cd309282c93e708a6974d45b6a5a46f8881e80281f2492a69fac5f7e693d2b2a275abceeabdf7a47c71f2b0c9bf599d21cf2965846013f62ef2af47ba73c6265f6940514a1a1b9c794b6a3fa07a7210de7a0fce09ab0a4208e7ec68386255ed62554519bbd80c21ac9f47c0429696df9c18b160a531ce6a1763641933da449907d59c657ba5b17d5afc32cfa9bbd831926acc98c83cb246a6791b177e370b56f46a402bb36cda57826d5359d8a2bbd7cc758b5dc002d3748c54d8ba8a4208774835abea3e3cabe765ebde5545d3d5ab2cc7c43cf1d57c55559f73ceea1bf34c213c8222cb5d5f16aec09269d864c32619d70a5b4713638c8f8c18b9b075341d6998a7a33638313edba29432be3959037a57d8baace79ca7b1619ef8393f1fe797db39a3aade9b53a0158dd7abaa06555575e1347df57859c56ac3264a29a594524a2dcba2354848174c926c926f69c33a1288668cadcbc991f1f2713b674ce63f2163f092a57da001e60a60aeb04577c10058189b0e2c8b5b05096c81867b36db703220e317b68ea6a53c8ecd1218c7c8a62f5b079be10e792f02d3c20eacc8f62bc2fdaa17b6f7cd816db68c4d508c2e6b0a60abbd296c713324d83e186c9bd202982c3061bec2b173c6563212650d92e77797e7aa46364d1f7e64ac175e84e9f9cd9935687bfc70802de360dbd415ace02b64b941982eebb5c2171b6c9bb2c215ddd12c3a3eab42143f51ca5036c9cf77da8e19b6f7d66eeb2df29eed986193df1ad9042b65537c0cb0cd19038d97d1ad0a982bc0606921bda92e98d18f8b8edd052ffdde1417525d8deae46c5867cebeccb33d3e320fe9515eb3648c5a1121a0881a10dbb009d2b009dae0705ebda36978998d238d3e39ad7b555abe82f2fc47e5f1b0cdafc245631cd580b80e61bb6a47b38d95721ded9e997743b0d97a37bb67713350438235d707c50b22abf5e2c372e3790321847850ec328145cbb2628c57ba1b6239b998918516d068a819892c7841a48c51bc201cadb089230b207cefc933272517ad28d1f2ccc52b305e61134a7210c28ca3bccc35812d0fdbabd2b1b1e561e3c7c648fcd874c6d6652d0fa53c3c8d423c281e0ffbaaf4155bec827459d7433f9a2d1da94e4f6bd0b2a9daee28c73327ff34205999641db9f94d7ae8a0779e0fa2e0354ef33beea1cd7f686c5d90e63f9e9fc33cf37cd3d21a37d679cfb8677fac3f4a03a7e0a8746a3425c24c4f928e31442333d2208004631460304020140b0704025116960f14000eadb450541e8ab3208842c81865882106009111000000600850dfc98034468d4a41d4b07342466baea31e62516c7aee67536c7651430c67559651ffcfe7e5a73ad7c75ac7b2ecd85df2a06426994cc4de08ce0d7815e3f5802dd198776a5541475ce3d9af49553fb76455cdbdcfe89ccf19bcd9627f1179ad38a13b037d747a2b60f6c6a22b897e33a63ec9061ee83568fc9ccfbca048d1f279b5f3a1161120b460fb65121a54137fa582104e1ca09e570156ea0687214d6e4a250daa8355b54d83061b74bf6c33742714b339becee8ee6e155a2405ea69cf05f86028719fbdd8f433c1cb55e32e8da51fb982bbe92733ce92b2a08c20e4e654b899131440dcc7ef61e4b6b6b5ef3c82f43ac200b59d32f122da967a7b30bde8875766cb8d8b06a6afd074c1452730fadf701a208192b4750844d09555e4775c26209745569c4be1d0f1c38700202a901bd0f82816dedf1a3b31c2f85376ada8f17b2489264458a1c4ca0156773f5099ff38594ae669c2a51d80fa159e1399d4955f9636cff6e7e225f5222380c3d86f7e93df420475eddd405fca4e34dd8d6e3d96e4a6f72bbc5d001143495fe310cf6c12f34d2e670767bb750cde5b8d681e32f30c8184a7c327f62e28821e5b2cab70a4409f2c94254f3b15468e0fbbb429792d5f7e73eb03e409ef87729a969740da647f9d660de01576dfeab3fa44f3f69f6930ca2aec078aaee528aa76ec55b1b15bcad972b50806e799bfe89aba90a392c3567d0270e40148671005457d4e220ea87474c3ea7d9a75c5f231fe3f73d643d983c91e57120901db578c825211141faf825e3b53f8b8d6b103b3fd8e4aae6315dcfaf3a4301dce0909beec77e251691eef7b621dad14a3bfc3c6617b8c7eaef5fae9cfd6c4fcb613b3d1f4cdd5811063b6ef406c3de48db74f1b11c0cb79ac13c362dc4bbede46433dfaebdaddafbff9b86e548fa2cc86d685989f8d12485be4f39f2d4a05635aec6b25be118a0063adf01494c4e63ba03f31c35234a134ae5e67c19a2db9215adba4cb06ebea0347995c98fdda92d9bc157a84c1dc7b6d6e05d1caded9fb23cc7610178ef8ae74a86beba0573c433a7dfbabe76b26bb0cd0ee207c53326324c10d4839197a49c1a9515c848fd75e01e5f134b02f327f2be1f4520734a1d18b1eeb52d9f6a272b9d7f5ae29ffabe1588c5ba2d7958d2b6fd28cd2d8bb6a139d02c7361ad50e09ba6040e1af920ad532c83d4997a3e5253f9ecae3467a232684064722af473263c715bb354e538d00419ca995ae6589084df92d2623030f9a28043144f1acc9c88a024bffd233d030cafd209363746c5924a94946ad055f5af778526d2de2114d6a0e3f7beb551bfd15f30aea629ddb67d7f9df78f9a050d3c4847f4ac2d1102e90a2dab08a5273f9aae989d6d0800eca3f2097eb113ee140d4f4d6ee5889b1518dfc206c7a219bb5eec5a74c9de8502c821ead24a9a6cb371db4ebc36ec89a46abe520db381b1be03e13aa7982296b8c02385461edb03fd17372cc420a9c3eea5e627bcd568b855432430d97228461a7abc49d9aa724baa26031985eb9fb4a88a76be3979b52e6f46281a48d4528087844cdea47095f6a4a48dd6c4f3b9e797ae129010e6c49a03faf5825a841f46b9da965d751858e4813b8eafb093078d7c5d875d762a8d2baf1de1f693956d05cc5b8e8338064046bb20d277bad1b89b6f5ab35ee6953e526106071fb1aabd08bc607f408c33f8428f5bb6e2136aace035de4648690e672ac41357481ba84fcb42cba2aa1d5071d23404a1d01611bb175ba858f8842a19e2229f66cfe2bba201d431618b035a12075ed680af7a7669d122baff6559a79f6c4f49270bd9415dfcf2f1346287917b89ffe2302932a08e160a75e73e00122042bf745a80b219013406b1bc322e062a8e200573135f9bca5b198e1aeb5866afee8d449b5f82265eaf8b6e79078bddff0ca89cc4c549c17c37036c42a0a28ac2ea3a02a779dc63ad4e7ad1c26337e8fccd1610602b8c68ca2153ad2efccaf2a7162cc6b79eaccfaa019bedb895411c66b87d4fbed0b5e0dd562f76559f0690b94159b9d87fd8225d0df349efc1a690dd23c8286b3c836a51a88a255c0baa929c1a884dd2cca7c6c4205517e1f542ea48a0f2d2956a571920062450052314149d340be57eaf64e08236a05503521b6991ad96e7f0daba8a8ce5b7669e73ffffd2d9716dae590cde39fc9b7d8e90f9262f41288b85fb7a6803f38a5868a6aa6b569e60736d13283bb690b2c8f7d74914ce8b0d5172df5560cd300720f2bd173932f1a15671f1cec7bb474118827bb8cba25b8644f7082e23991fc04924689837ed0b1867d41e8d3faa3b6b9149cac9736be553cb248c5944ca21cc4aac7225f4fca1a97bd59ab35c3a82505b6928f397225d8bae1b929098c69091d6ab12065485c25aa50275e705e0778b47ca6efc6bd8d4527d0b01e129d038b5d08186a5d0696b03768f0997dd45715a0cf9cd5a0cb10832eccb90131d478b521685ddf0f567e2759f9fe97c998d411e64d08ca376825845d0e5429ac13fc04c05c8549f17e21bdcacc81d0d110a2a2118db98a94ba9a9e4d961544ae5288264cf30fb2d8933b0686ccdcf6849a03d575ff6067b03b4e1ab8b3712fdf617085a67662fc3cafb8823fabcf3082a30d44a870bb639a1e2c0f1e53caf6a1b30270ecbcf1bbe6b2ab6c218da967792936b6dc38fd02daef238374ad9edb59d2a95020e0322132e6b1c6ce0131821dc788a89201e5fc7620770d7546e9e374e06dc5e7af80d3822d06a0f22c1e27d4fc2435872813529ea13f22ddfb826880476b12cd24ba031565e466dddab22aaaf28db32b4780c900379b24e429bfa32556f5d262f11a7c253506ff7a742612e71e6bce1f3132da0fcf3175e8dd14cc15cac9250a2f6aa8254b4137d4829c1276a14fdc25a76305722f68604ef270add53d8b8b5e314e6e4cfac5827cd72676a744d11b50d10a9e931dacdbb59ab6e74bb164a700a707117295bc823ccf62f20ef9762e1488f9b67c4da1e03dc42d4e646763e40d203b1a6358e7c15034d85f9d7b7d040c98fcd506df1f6721a34ed95115d91a721ce9944fa73558e69442a7a3ad9eaa0b78dec3227993d8684ab4f94def3e051a8897e0518a590f1cc4e96dbba4002ac038608ce5f90ad7a362a342f03783b47ad5af9058d287f65b4446efe95f6f73e0ec33a201de77e3c4fd3350bf9835710d36eec69fd2916f4c68d7a82dad729987295bac9932aac1dc79df329d31622e589c55de07daaac9d4ed784313482933dcce2eed846a09c97a94d382f1da606d5870480344a835bf51ea8b0505eabae482192291a2f05a3f261255e6a1b81faa776dc61f0badd5507dfd66ab44bcb34514f37de8f5b9a3da25a538d0d245add294656b892f0d82b26c51781244330a208bd73038f19ae50b58f88c979abfd1f2b2e3f5c5d7209effb478a6113ee875d0b1dd6b194170252a4faed7c69e9610824e6c4a8bc84355a57faca78351674788e374a39a244d261a0d3a76f59a6e051cf79cee832c3337dc236a10945d45fdff4648401070d0c772b797f60c44d212c6ef2fcd07c2e200847c70ebe5d066ac21954322c5070bc4a6cc1f94e3f1ef3e0dc9efdd37840866cff212674919ccb6cb3236a10f3700367f6eb957b565f2abebb0d9ea24dad3909cf200baa7c6b0736e1a2b795b1f7272e52524c7abae350c5ca7af22a4085a289e4fc44177204c375fa3da0e474c8901047261534c61b59c8b18b045c861740fbfc62d5ecb27fc1c8bff739616e2172fe53817895e3a12be139c51824b64bea4d18ae9ba11543bf9c7cee925f7c7fe670690c856c6127ce99a89e4419d37055794e4a8ebdb4dbff001f2667b095fc85a1094483c995635f820aa0fd573482eb5c3d218d4a84ebfadf215a736b647f405b7760fd5511b9f45444ac0762b3cc0e991b69326beea3ae809329bd22cb4ead5c7a9f4137799840c4b7dacad1f856ea0d53d12e3ab4aa04e8fdb89bbff95419da52ea3aa29b78f4c32b4f07a9e7d180aab503008ff48fe7bf5d30539c6add8cb9f3bf2a580e7b2a53401b4d097c0bc05f40b7dd4393429856cc7fe48d96d3c9b02e8c83cfbcddcc596153f1bed96807583cfd92f6fa913023ec893d93534e20ada1f6631d6399e467d004db6b7969269b41f2020cf5bda0874f32fe8342bd8a63035437a62b769b50fe229cfe3e184723be1400996d723a60e525f7f5d21b7a994be3e599eef9d136114bef62790574ad946c43b4367c221143c609cc9a6e0791787f1dd18c62d8cf6489f25ee6fc973074c677471c9f151588ad6638396b36f6704c9e270fb4ae93ccb8a9559a6f18d29ced0228ac2dd7be9d4a00c5e22050a25455bf49fdff923596649aaf09a59909bdad342fc4eabe44726d6072f22fcb8ff9fbc1a6ea2e3dad6edd40d8778ed92b6518c45d3d3a4fee1f56c87aa47179507c49d56959ce996fcf7451a6c312fcfe0e87325f80337d6a89f9b7d670a17d6a90fd77d648e5b56a8873b7b6782fb56aa871b7b3163eeb80feb6a2fe643f82b643e5ba596be7cf4783acc6741ab07b1e4e56b5e4ac890d5f5b262f9ba454ff9bea995ebe37effad4fbeec9e4abe05e4f23e99e3baf5ea590ef9b8b3f8f8ba81f5ebe6d63e571d1f363635be0419ee6a2ee3e3c6df343eaba6febdf8907c6d8ccf1a51b7208521d55f0b2226e86ee5235c88b13d7ce85fc547dc5d7ce72b02f82658d04f09f4530c9da952981da233c5d14d1904381dd10406fd9442650a1ead0e1779a4fa11399cbdb0aba39dd4db0b557d347f3720d16b6883b654a8dcecc01763e5da6d1d17817279c4edde93a62d79eee3212fee91a25bf991599bbac7509988145a3e07a6a475165dd5c3782f970fd538ec98dabf329c47f029de1c0e105ec98172b39cc00a7be78c46fccc14fcca33c6f2776ea3a41a493278eae31a2e8dce5c31ff2e649cc551a8d64b1f0ce9294982223b4392525066b04bc83e14c9ed4bf029df73a426ed0b14ba0efc44b26f748343d1401a3a8288456f8fb057b83d9e0f5f8456e102918f2101880a232b88ae0ed0bb52fae2d9cc08e912cbd363a40a8ba4471d08010caad4a754ee4d1c9fe51952ff535328695fb7cc305a40d0616f857ce7409e611675721b3d9b06b71ce7e733625902d8f41dc6eeb4d385593fd90a8ab8bcc6924d99db601528ed5247b04d964fd59953359afd5333c8caf669e30c2ccc9d4a79d70d21ae26dd953a27c070c327bea2943b9c9eb56e07794bffd8368998e1710c24a97e0332784b9f0caaa51d722a014db0f043d36ac4788aacfa3617177924a8937f6d09b6b9ac903c7c0132ab9088e520472a6cd6fa8fed805510c9d62fc0a30bc3e20bfe9fed866cfc681234b4377f0be6e27fb9e2faa47b9cea1bacd15bcd4e04928f3b4823b5875c1a5d03482a4ef0ad8b3bd825f4eb7afa4724182883b3e4c4b2aaeca601892ed80297a9956f96d63de7f77f86d84aaeb260854d0c5af936a550312d80e065eab00b361bbc896a7709d8f53b0d227d51ef4bbfea4fd2b7b584cfa99cd0bfb1f67a508d053f68f32ab7ae36b77571430b7df1c436cdba427fd459cddfd36d56b34fd0a1759e9ef476a9e6165468d799d08bb23c7759b7a2c0788fc5d09a5323852718dd4d26281285af3cee8986f7ea7113e92b4df18f7c8495ee01d8e7f60e6df4dbb0c700e4d699d9ea2f5e66120e28911f700c024cad9d044eee23d533b376000ed4f718c3c24ca51184158b077d06bb74ffe1b98de934557bc09a5ff83e81230176119a866bc07ba20c4cb38051c2793ec7e2cae7ebfa08193951a572af1ba5d2ff6352247cf324aa4e5c0df1336184e23a55ae1ef89a080b15b998784e922b6ab1d20b52e9df5665ae74d0454fc9d84332a193c24c13cb186fed7ed4dee38d815a0fdc63fb5de2a17d3f84461ca74ccd662c8a6315bf7936c6ba9affa2b4277ea8a546f91e434950854b4205487710548705b315aea8d982fe85ae567a17d8f34ce3eeab3d8d583ce67bc3d4f5dfdf3b0de2853f72a13a17f82e8cb0cce4851755386f19a0b52a536e56a21c548ae1e1e40c2d8cc1ded57c2ccc98a5818f84692c86980552aa56861ca2ea5b332ce4420c3bb54c9b94cd2e14e064f0ee778ecef17277dea9e801f7b944ad73f6b423449925e38a905de07636c3f204f0628a1e221002e4e27140a6e6772ec347a32b42502959eb81dee8ff1e04707f78549cdca24a413cb247e3c3b171af03de836ea602f6006d91d10c897b31ba10db0ac6d68218fb7289367f531af7c23d648696a123da08026748db7b2bc84be8cb442552076459ab2027dca9eafcb7a8017b1eb1fafc45d78a50850823fac84c5eb099847794703aaedcc6651ed4d4e933c44ed9d169a01900412dce8e9e55b51a3e1c5021316fea822b28d69cd482758bb71ddd82914302394cd62f821dd15305a82d16f8ebb3878ef8e844104f0a58ab1a71581e8483a15f2812f90084ec6a3a457103b6a700ed7b89fa8547a1afcb2e2b3d0dce85c8313125c7d26008ab2d3d12870e5287ddac6c1b31bc26e6fe3db8674b5bb49f9429d5a05a99e9b48d88f866589e9d98b3f34c333625a61c582aef646d828b7f3e67576eeaaca1796f85ba185b02d17b9ea8a4b8b5d2842c30d5445c0a7682ec44a62ef46a714b99c6cc5809a8aa18d038031d79ee90f735e9da91a0d9923801d39657017a77f4b7775da11e57486347655c0c99bd37a50f1e8e47cd256271f610a80ee8ddc99ba2ff757c37fa72162a0312f7723269d22299d2b019686fb94149be771a0a2d049f89442afeaed9f34ddfd368d1d44f33610eb48c07265e9c4b20a3a3883c44e9165c9f5988e1bb6ed7b9042d261bb4e2d874a38e080969be7a0b309e5455f188f7bb195f9708ed3b5b91090e1b940e3e2b8afb2c8481b19e132716bb48417bb009f72d388ea994602a60b87814a43d139d3a78f080d2391d7c25f480500249de5551970994d43c2fccaf5f2cb463279eb87967a40595475614eb025f97b50851ec127d9835618140b5e62dd3816c4868ae345ee50cd89c879be644a47405064dccc778942e74f8f790f441a21556dc8eac5aa79a888e35788eb4ad815a13fc0f7ec7743b4b1cb3e231940f34a4aaeb4aa0891fb9f41b1d122f6e94ffeed1cc93ffa6c17c3c6a2796995f000a351ffb2d48ba9b2912486bfdc7093a9ae390f6dd4d3b5201b87aaa6f60a6597bf57e5bc7d11dd52f6a409a5f847e164cc5d711c0b7ab1380d6df5b3e4428e939910dc86ecac9870e8969478fab4885d56e138708460cb8d1d04f06bf91a6a30bd22208c390b00de5ef0b4dd0412b1feacff1fb83f82667780121c9f7478c519c618685f73551e0c1dda4667b461d99494fba381cef7b49ed3f6b0dc13b2da82a507fcc4c67985ba539bd04e75ebb679a6e88355c69b463bf6441f24f9144d9e077971ac4fb71564b56d2d29de9ddc119330d1fb0ebc55dca4dddb749d28078147d220e033710afc2935ac347aaaee60025bbeedc444b2977bdb4139b521858c0086205bea658fe3f7dd489f8b76c6420d52a09b67f6945572c116a5e9953660b46acf58c0d4866d0d3001412db891679c205d9cbd79ac0f8ed364fdc64889c4789fd4a64773659f6eaf232b247e048833679d33b07f4edee35fdaa2a66314701e354a918bdcc824fb22e932f00a9e94e76472b5f3a4ad4b590afbd11473e9059d53e51634e885356d7f6dafb2ba553cefea09443ae859332af116c63f991e4092a68011cf0de2b96850607e265c33402f283744be644270e70efe1d1b7aea6889716a6c00b112557cae7e5c7eed654f7e9701f1137001e3528b1166984d6fafd5dc035f0dd093acc32a3a5b56343e65c338be597cdddfa9273e35ee049773e45cbc3ecddf6bda9be202615685dccd9e663074d80fd525cc46557bb329ebedb930e7b3232c08f1c77383c3809757876d21468c5b6a93da5912ed35c75e3346c3a26cf5c88a3083ddca299ce8a78369f65256d995df2899cd1db74d8ce58ee1efa0c5c380431c1b7d79c0dcab8f4af36f8228c0e80d371ca402a83c2a9136b99bf5375d3f08ff23f91ed3b04acbc0f3044ab705add44bcb812a2e7259933542e2b051476c65fc35f09d71df94fb862b273d8573a18912a53c4fcc07ec9dc2d8e9781e78e10eb0c7a8f0da36cf6ef3af25241c35cc6cf842d2f16168a82cca6006be4178c8941795d27867226b95e2e642160f78444cf37aa661f6a0372591b31728a9ca508b2bca8060c8a966ea3d2d433efa6aa859add7eb8e624c0ccf9a64d2f11294e0e00d5409d2a740e9507668852390e48317c492203c005555600a4754980e514bf26f6c5d0801f06f17094b95b093399ef9d463ab0710f7f0d7d48a98eddb5c80b758f1ee6ef29c3bc34ab4261c9a8b67209ce53b267be06ae074ff4d14a20b830305a378a6540c3db5bcae8083d4e70bab0d6416695877d98fcc76f7da3bf8b4ddd20531d685a481ed3e9c0e0a97acadd5d420f50d69114815526a7e77078065011daebc4ab80c0344993f14d1025e6468214be57a024d89b4332db9bfb093e4d50a443e521551c4675da1833a71ab101602476f396e3ab26802b4a50a8570aca615aceec3e3cbb4de53a0a7357559b818760116c0fab03133870a3672ac1304f9289cbd369113e85c527c1e68171e1b8acfea22bbcb84ed69903836946a43b9e6d20248f18192ba967e502292eb52c4b6e243782880534984bc3a5103583e08a9abdd8473614225495164e4af5afd5bc1d9807cad0bce95f4d0608c2380a3f84f2b8f3d1d5cc958131d9cf12556e70835226325d77a1c54eae2bc79879820639f402517b9f8ebb6346730d1076b9f886bc660e59ffe8ea909d2c21941419b99b3d8fb0ad66b2b4003a3bb47db7a3c8cc6b5630e3d9815bf726d4628ddcb0b458b3377714523a4f85ae8bb023f8f0359d27737fb3018ebae6271dc5b61de1341e33f2e5af07156f4b0c8db16bdaa007bd3a298744c5863cec5a659df67ce0300e2db4624bff50adeef643da52b7a3fa9ae14a72fae02e2b097d4ff799557e9f8e35bd738eaa672b2be8160021ced0cc8a1eea2a961e5a301ec5d1fc841e7ddf2c82410d85c3665148a0064b6157d64b4b9cb2dcc5bebc663cb58640993402e3f27cd45c8d1cec88230eaa2cb3a32c83c7cb9f836be20a771db77e4ee2b7c7fa8a2296e2ec8839de26475094582f7fe66888ab0959b4ea755b130dd058c5405dd948abac7d3cc0636ba29a36fcd063558997d7cae34ea9ce47653793d25ed5ce6735757ad0bf57b5db447730102353daa7b0e6657ffb28614aa36ddcb32980d42b7ffeeb74b590146269eb5fc6398a2592d101a51c2430ff24061720af025b7672d63c38d833933e859e0110cb87775524862cf091e5fa891eb5179a97f9631bd569cf38a1668db53455deda226ba77bb77b2fcf5e39066528d129ee75e600916458480c92ce9f0ef66a2ce7f6d000199492698db7b0852020d3d99575084129642af323bfcf5b257dbf11186aec5c0be9481f90393aa6a695e47fe24892451e7220792a24fca6c48a7ad3c74ab14bf636adf4fe2018d13e2b8f8c4c7d2a10eacc7a13aac475fd929b8d9617f211b819674e4dd21788c83003883c06a4de7f42b63f68b378a2b309b68ff2b35b10173430b6670181f7cbf3cd04e2e7ca59cb0664d770040400ff19649e9f6c5323746954d12fcf4e8284d70264a205c2299a44606d9e08a2941a30c82816255700ddd729b460217eed0f804fd362d09a5f3fbdda3071bad87e4e95be7d563b0cf44249812352a96d5a962295940ea722b4270337b2a5ba945d14c4ede65ec43c41967729042e6c9a264a0d4410ea648e4ed08d06ef1a5cd80d96424075b681f6ffcd3981d651b169ae5bf2ed72a9d546f7aa8fba2a0a5c172b046df50d5b0bf6f4237fbc56f1bf14bd2b74ad746e96a05dc3fecdbee842bdf05b6395dcc5a23f13058d437a79222d4f6705b5465301b74b7871f93618cb4220d84c2e0a2a1bd6cf61c8a43809ff22ffe6c1a5e29762fec0a684de20cbdc33fd07734abb0e4c02aa5e9c22169bf822a6aaea30bc4e4e156b35b2d4e9cd851a86ca039608459d17077ae6312c2c10be17038603978a00ca0c6c5117d40e295714a4ce922a17acad5e6b18caa487853cea44340c6281a3eba24d102c79d53e072db997e048b652b39794164df7a21ab28ad6136b537389cc8d6d576a2cce76b63bdcbb4384c4e251d749eb385a9111cf59a11031a5eda0fa72f275010909081cec8178dbc2f62738f3050da2522755e35aa6b286a82b3f127e2845f30e84b14ad2f222a4200bf0987e22be77a5171ef9c8680c088892979f772153406f53d9271a6b4f66bd89a1107932d6a080f3436cc3d84f8155a586d54bb72ce2eea4c1ed4d50a869abd03326c010ff9ad6ee72eed462b262b2105de2c2d60f0bc5260932d9569eaf63ea5d76c0b8a3a18c93fc1868e0b9552b04b85204488b6c2a109d029fe41dff698235b1a7033bca9ffe69d7bbb7fcf1b65e102cca7b36859f0473fa6c44edf4cf42ba7340b8737beaec3faa289984e3406e244c6845679e4f29f597dfc51d7881ca678f5b20f3474a6153abce2d2f8c6516e32993f28501f70ce808a698f4f31465039001493a3b029c132b795272681d06875616b4651871b5a996997480c9a453f6e970714be78c0632cb1365afbe929b270a651a621391fb662994514c0ef82d7ab43c9e4e875ec9ab0995ed6490643cf2adbaf2e3685a145d33c7995929f7d3ac36f448bca96500872ba18142fbc530f5593bbf98eb54502b2e76c5e1570f0a1c58fae13d0659ce9aeb091fa4430cd242717d958aa2e63b17d9acbbfa18357e57ccc159d1f091d234c4ed4054bb5003c914028def40f22604e73dbde2e5949cdf4261a6e7882b811fcc9aa2f563b0a5a5294e1838de475354c8eed7710309874df9c9fbaafab8cbc03e281e1372f7fc1516cfde2b7d07e0e2bfe87a1cd35c874bfefea9e160a024a0c9c3e63c62b420096c43f4925ebec1f0375448dda4c3f5e30735ff3d2f6c4a87109bf6a0110ed56f4bf8802a6d6bfb09b1c6101b6eb0eb3e80413b4e42b2cb9a7ea07f12e049b9934c02669f3c8d1030d8f6d41161698955ec67a2e660e2798f427ae5d4f9334c56dcdb12ca741ce469f12ca88764a2db22c9596d1d00439e6f74b7fd956a5dc2a2b5d4a1f3340bb5eafac7c62c304e1d8aa46ae69165193177fe958f6a96cc73ff89b7f543f54373d4e9ff1cf679b831acf0d691de55b8873ed51793f11f17b7b17d739745c533f12f7cb313963b6167ab5d14a8a38efa4e91a791de7148c007e357185d4d452879e62237dbd92b468d7fc0f1f9bd1e7f68142316937b7b10a3050f2f999e253fe0e1b902fe35a85ea9a0467ef49ec621b6acd05b8f4cc2778524f9e59414b76269da96a62b7b56451a9a52d895db0360696c92b696ea522f6da7aef2fe40e9b7e14bd78e4e99997478b522f06357e9dfb1e1294b28ed496ea5ac33666f38f3cb29ea516457bc09a32e76bf4c8dbdc75c0db8ccf7456cb4c0de76185a81a8f80867feccb9f7ff25a688f7bf165dc57bca0191de69509a967bdca36198692b72304b98322bc3caa805f30a38a6f3a91a9652f715a239e263c862ef90710514236b020c2f362e9976778d3c0f583f589aca8a8ef8de13b9a132a87d229d2e05ab5056ce85b358d579c86bf3fd8c5f066dc057de0ff05b1eadc1fc20c30b9317d0e6947ccad21e073052314d09060d1f88153d31872066ea6a2d846e06add1215f59399e993cdd97aab520169d7e4d419c897823ff742258e3df052286659e36a744520008c9998f8f01b445c9b879df91b0af80f51044e362fd8a332fccbbb6047884dfe1ba6b3477144448d4bd887e44f65e9e814ad5e237c79dee202fe7b6672058f463541ff86c36873bb1e7a570a56a16e3160a6ab7d6dad265d68eae4ed1080f5a6e064c0e5fa78616c09608670e9f32b9c010f1d564f83644819b94c3f7f984289b0fa673cee177e88848b2befa15b74008326d58b8b7e2809c19984392c7f57a03a8c84821566730f6a64fb064e1e278b35b1122c8ac2a3094c1ff21c1fee17e7bc6607ea4a8ad991c8a615a856eb281e3da21478a2c5d6d2af7d5b3a8cc9600cd6cf47e8d4ca4fa3e9b850c4491279475f900cc2872b8e2668f9ef1d291ba5471d6465152c45da3a5e23c5db30d242e6f57e503fbac20ae60db897f4dc5f7a92d46b4702e1edf1622d3e7f343ad90e2e2acde8f6569ac1174d2b608a8e10e1a058aaa912d73e0964c455eac9ac6cc7c5cac0594d6cca2dea2d214d27d895cca0b4b671ef27e0ce8821f927f130174e19dee5b6ef84f00e6584caad20a9e4a7e6a7c0136ab09491271c3f985ea874eec1a0db40e9c776328ddbb7bd4d54b1a136c947ab0f966aae901d5410cba8204657b8cc8196825c27a1c4c13c1ff70244f823050d783a3c165ff6c33ced00da60ada86ba8fdf7777bdd85ad8ba37ed105c89c1206943d4e828b638de4fd0c1cde1d84c9455609f5418e5c10a8574c358b9e243fa326f52ee7e98a0955cc9bcdb68a7da153950ea9e7fb09b898bf84c78554b8e80ace82e8684857168d2276c7d5d29db308bdd0572c680115c46249c126cdc1695e3fa6d5880acc3db9de1278c12aa6c9d852e0e0453e99f42139545c7859b192545f86ddb5f97a72d1f8f25fde69aa12c846e2e34e699e47658095d674529550d6bae5841565988a4102ae2a41252109e9a1f2d87da34671637385a19a36cbb4b05cb37c470fde98bd3704c3020c2686cc5c0e80e91c2250e180c3a6921b14b7610845e09c4ebf59dbbe5f97ef206096742a27c2b852af07c5186332c5e05665d66802aa9b746f516a5359b31c0eb2131585da7f56551de6ea8cfd4c354d79107e997bdd39d95fd279c26fd0891253ab458bd8b18506c208f338afdedb2977ba1d42f0cc78c9600a9335fe35b4f4e6f63140d6cedc5fbd5a9f4e3c27f09fffb8869810b231f263acfafe800f84b82f9f1235fd2b702c82cb518da8cae87620b63abc6ed2c494c9e7993101109dae8a8fe392ebeaacff417716b08b7c243d0b01430ade24208fe0e1300ae035f3c45a463a710c9432365c023fc8727da636dcfd4e42322d0a6ed586d4af4a0fe28d9556ce37a0ff90c1cc3e33d71387c1aa109fc2b81511c7f9e6228ce20dd8ae9fe0767ea90a22ed5cf29d1fbbe2ef73436cee2016d4c71dd740a92998f37433a042880cd0fa0a3adba719cf8341b64d19e23338e64b4826c9aa0cb1fb215a014141a3245412e0655c9382a76e8b1bd26ba2853ee2604edf7402d828133a66dd1a99c38dbebd220b6f986ec2baa1130d8eb2f61f563f7d03841207780535781e4ee64717084427e9eb8a422159b29e0e3a8bca9891ea0eaf8ed4418d3c619c4ef6a0e0500f3dc263aae465415e8cb5a56f51cd508e6106f08d80201dc7f4ac1c52ad2f0b04b7047c67030a755b823a7ec516744304a20bc0ffbdb6f45d6282cca468e0608009dd95515d81d91d306836788a35a0909addb701e0d711f6c690640e0e06822b017370e581026397e584b6622165426238b0472dff191533da3c768f1b046f84eecc13ab002715b02b4c572c8095b5a04436f720ab30ff615caeb3fa092ed9217c40e00994e1cbad9cfb4cbe30580c0e9f9daa9e5b70154673e8896a516d2b9dc37dd30e2297c9c69a855baa854a2a9ef0ac6f57954f83277bca1f0fdd09f303e61eb63722eab6570bcb1d0aa2b03b5cdb58bd2b9afcc1ea031392b6066e4ab69f729cc5f15ae58fe8ba3671d03d3d2195a09e6ef98070a4868cadd6bd9d19521462ca2e87ed40dc699f40948afb0dfc82a4234aaf4f7d0fd95f1521b99e2d5516e8d07308aa30772df1365f0d7d9723742a4ca6c820249a6327c30bb5fe36dc7f62f3953a28a77052b766d99f2273ad698baefbb4ba683c8417ac8b35ca8df42490246203a2947eacc0379c1200e23a11f04d83f796e809597eb7a461f87f2853f532740313a26bcf7bc1af6207391f4c3d4d6388086e0c69f92391cc978360c4eb0c929c65486352d1d43ec89f3118a0b6801252c532827475af190241f12f269eb55db9f8803b85b6a2a109c0f7a0aed32a8a12e9a154fca3fdd99bed1c17a7e1dbc9c905d97920442d0f37611d2d4126958b7579e78340109e36c5392ce58d165d05a1bf76eb4b41b691cedb08daa4d7bb58ea0bfd6bc3582028a6905b7dc675d4a7f7d4e650ad725d01af95860c9caff8d5cfc19d128b36dda728001b384ae3a3b923bbd5b622b5172c46f73925c392af4c86bb5a644dbcd0c77e3347e2768100099a7768ed314102156fd171754c21623c1bd54e77815910d69541f6070d09026f27f5ff6c9a136b086582c68b0d6dd90ed1526e89d0d1c6cb6ac87637384313d46e29ee74df3595aaaf443efe5f554a70a058eca4a924b961855660926dc16fa4f3a6ff52e2d82c528bec37c985eadd45adb7def8a643ff2166be0795f8117dbec660aae7f46ee5de7be5e25fa82ab25c59a89a17853cb18210198e977b9642fbd82fb760456e289660624d27192c92629978e2e6425d876db984812f5ff0b9e95dc96cfb360aa4aba6035707dc89ecac25466c80a10aa781d86132d8f2cfcc1cf0420203cf1e12fb229d3c239dfc3f67d12acbe169ec4c96810a569e55ad9c971b06ea21c725a1fac6b19c99d319aebcc63320722427e07f44ebb52637d46dc0fd77b7b127ff991ca4bb9fa35a55119b6f53258239d1d6d209244caf6614e21d242e0a982c95ead2c2a4f35b84338c433413fe80211794e2c610b2f1bc1b3cb4a8be6debeae70e2b7f08c63d8fdefcd7933a282b70c60ea7d241d648c01ddd008ebb524f710cce62eff919f351001a71825b54f17b5c4df981ea7928c2ee2f724637eb0936ef41a2cdb95022097671729e41b2eccb014d324bfb90bbb405dd1ed410d11ed89cd2b456abdb90bc4b1a7c237daf1d9fcb8aafd89f9ee3e5031e18c5ce150c0976c2119513b4ded217431f0dce3c06470e0aacd4a0f80fd5effddabbccf458be6b0295492b3af9685c28f2cb11ec6e2f63074d794ca854ce11580bcf66e722af4688f3969ae4c8fe6027afc0fdefc280a1500c1c35da78d00c84c0f80f9dd830b0a893e03bb4e24dfdefcd523d5086bcb642e42223172b0007574c3ecd8a0cefa486f2b806ac1a38781243677953b3da40222841fcd017f16287bf674968c573711808a9dd152c1e1434ab506b01d30f34793456aab375cddfa1b7e4afe2fa43033f546357a37abe490da9057392625fcd4febdfc9a395c4bc1d2b9818b50a512c92be0d77667e8eae311c49d8c2fec36c53f86d789a541d86ed32b09ee0eef7ac5d75b8447f194df96ec44e72cfeb98549243a74d3f98e602e5d8791ed6752c980f7bfb29491daa53ed960d57163a563eea27b5978b7010637362ceda122bc1b446a77920cd1f430c67f13ff68bddbb487df8816c3704a2685b76ad110b49ca8ae0d6d2218ea4c59685f006f82f5bb5212a1a1b5ce5aa3afb6563cb0bec128a321f4fe812c301dd85807fe2ca0327100acc644971bf22058816db2b20f9e0a03f1b0dc2b0417224bce3929da3cc2ca99a936a52351c7059cfe44537f7573154f2082665759a82f005fea2b127a914919424e031b26353e4448a335d4faeb3903dd253a3934c1cc002a9a3fb564f43cd8906900675d0cdf6aa660df3689d80c062656dfdbe216b1ab9ce1d60fda8331c6102ac7b5a45475355b3a627602921cdd0d7a3159f51c28e48bcc16c7f6776813eba761c419f720471b9335b7b565cc2197401ca83d080e14ff2bf6b2f0f3076c5e1094395ccda54f7e73d8ab9aee9882b1aa9bfbbf304699b6b69fa4802c1071adc5f6ab5281d442c60c14f98885953f736951c6fb178f1d5d611f9ed3b13661c7a70349a7ee384b19a152b63f4e5b37b50e8d992d76062703f00a58794a541181ea46fdb8f790d7f3c9f42c365dda9648121a1530d7cd1440507fd4912faf395bbbd95e3eaa212532e4c42a14698fac9b8dd366721232cbdd535ab05f204f7904f4a4aa47822748ce3bdb0a02613bb7cb5b6b5e93154f3a67c0d2896b07be39be601235d972c962b041857f1fdbdaef9f96326f526db7838a1da948be34a023ced21c1cb88f74e65026dd1ab0e701b5afb3e8c479aafec13b72555e356d187ed7fb54ad0a48a7bfb83d40fc93a84cc02048779313109027147ecf2abbf0dc7aca1983677735e7c56412676e35129a27034f06b6a60758504e4dba5d014b5f7e4133d3720747c29393fa58d6907ec31d4a56cfa63a90b166b1ab8e26f19915eb8aab4de0217e830cb8ab80af933e72170d09850a680d9483ef13365c2fe816e5c5d01c2572d7c4cf2f277b7388fa4f05bc285c41180fca962de28a6c8e5b037ccce641b607040843f6bd3f4da84ae01ef7bf06da51747b29b0ea3b0910e85d0d1189b9649c35499061167c13066ba60740b93fa72bab7a12b628470a77ffd72fd6868bc33f1108ea9b5dec7627c64554d3946b178444a2b3bfd5589cf12ceff4d2be5d69a832bc38626587e68a4cdc6d86a3065dd0efbf0856657ea2a8824c44e9556ba9e6df4243e223adf8873273390aba8b0d5daf9152d22a9fa0dc6011780796f86f2308dc13b4d2a387a952d225c4ba8866d0e72210a9ed0f73654b165b536824a951026be8460f1b48eccecae16873d3763e03156cddcb25340cc7e4f813988a74a96d0c6a681227f978859b6ce918298e1f642425e0d9c698b7b609d8932bd87000a78d5aa63da103b8c1212351c7cf29c6f6b64366c7460c27fa2118971801fd37b9d0548d3825812ce2d6f8d92cba67b1aa1d201eef4ef8caad249d720d578c44d9358e107cab90ace963c4504dc0dc70ab859a7b9e79342bd1f2aa734b82a6ccd8f1b47b2f6ba4e7f8a6cdeebf6b22b72d111366d9c5e35735b811d61309bce4f91b0f2e44419c432386a6ee801e2880fcb3d4f823d0a67e4917b3c65e7c4674f1f161523395ffe3f3bf103e3a22221ae2c6ba624ec55003e908d74876127a5d960cb9b7470f2134c2db6add686ebfa2b6cf96bf0d3d43488b19561eb3c2ca6e7d2e1846320552bacf815d1f82adbafaee99dfd41e27f57fa275c345ebbe1e11362368407133eab59c89cb9fe1973bcfb3355877e348243ffb314bb1db4a79d22abfabfe350950f94595d8021247604408548c408b24107104445c6044169818022242e0e2085c2c011121308a3374241b5e8140922aae06436b69c0cd72561d0a564dbab98b993bd4830bf98c282880e20486af2373794552a208f27932945d74658aa28c22fc0d642fa9484a1431be4e96f2530425fc2d4221786f535698be37e1888c16af5cb4f052613131aea2711ed5207ba9a6c1342501f3b836af08421a63d3b2b69a4439aaa82b1417292df6dc09c6fbf752771fad129d254cb73a1fe61da60c1d12bc1adb17c0f415dda78a667d45c0b170c551c4a5f97bdd55cc90592468ff4533928113e11b269e993b83aae925a2e16c3b0306721b671784cb60c035d23d02317f35a95f198682d92c54054f322a955530f902d3507cee95cada4f4102b849fb259cfd0ccedeb211390353193a924c2481439b1fc13e190bcd04c611d053f184e973639815b279f7f01c0c3c8bbc5e3a4bf70418cb421c29dddfee8c43e79363a58e217006d6b638313826406021e78dd8b52127e04412d91c95f48b0de236826176d4af2296d9e3f6d0b3e12d7481cf01fcc6a3cb0812cb8a43b200a12c891d36cc95a01873f36fdc613a4a785580455ed900128d4c2e0031510508bd0397a3267e9631c7481a67fe8301dc53a7234c7623637f6bf005ec64d0c38c20e6a805e866e20692873504d925058d7f17099928c015adbf8527a4c0be2c680dacd04b8193ed9b69584f311473a1075e9f1da7c1470815cbf7a8817a15360305684712cd1a5d014cc01fa2590383788c721fb31d2670533a2c791f529d2c8d77fd6911082f0e0608ed3260a9b30e698531d3669bd9fd5c1816e71855e0a3513b6ec0716b053fe1e34d0d222e7502ea52aebe66f4ae70f5de313ed7dea54a3986c8b8cd917e3d0c3bca98e4e89ab8743b35d64538168a7eecddd3107133c7d3cd5f18ebae62ab068985997255f0edf22f4be569349f0c98769fa6fb7f6fef3245c715f907da7c621425e6d53b39d9ac8644d2a2cd4843518c414d231be40d9d253f77872ed325c2ac33deac6671957462e02f4d06cfefd1712a367bc516ae7c6490c4512c723dfe68ee008aa29c860b24b64ff673bf4b061d5156f5a0811e4e0692601e4267068fc908a18d9a1049c710545ed4f91c09a46c029e371310f075829635e09e7aee72791b9ddf7987252256c04e216ebc0f6f95b0e445dd50e57701262a3eecff80487068c795c8daa33ae891f4bb9435642d40604219607105534daa953c80e1eeb747c05cad908808dfc0c043f8814b433670fa624ae9be03c641a580d570ed02fe9454aadb4b807c596403224cd2206fa9f896f65f54fea03001806f5b3c161a28be3d1307b019b18f92d0dd3c4b756927b72f8fc909cc087c0aecf0e6d623bec4a90bad02cf3fe5cad2914650a50751070c2e48b8d15e536146f1290e1bf13841fc4487e5c0782d927458ade49b76fc58d139ecf01387e4201a2064731907ab2af868fff7763a52f9339635c530b70d1a8059f44f3e84d283418495da054841100a104c9a1eb73127039ebc828861487503904f04e71da6a352892f8130c7139152bc7da229e21d44174c1dc1a7d2f84b436addcda1dd212c6a99ce2e681c40ec6c15faf5afd3bbc43873bb016f3da698b5d5af6e78b12e57821304dbea0d78290028aba184ce05e7825b6c41750ee9436857eb7baab1dd6b204474be4dfb90d9954a1e78eddd23a06823f410b5fc32e861ef42b99ce27c60f4be0002a8ea3a4093d89a6b4ac02b3aa6741945200092e82d4613d753f478d0d6a50f3af9a26e93c1d973f3aa8bee3e1f57490450d0cdcfe24e9760d9d431b82318a41d284cde2862e35ff480345f906ea6369de95faa43aa092945ab49db3984de67c6ced14c2c66fb3348da4ac2fab83227883921fa731dd7b4f540ae7b5c3bc131376c2016f7b3f0072cc481f90dd50cf8bd49aa3bc5458fab06f697b81a9ea343b118626fa235ef81906381b35691a2a1344a07688eb268e07b06824a2894d9438f0f6d0092406f739e1fd8b8c736920f8b0a172df22cf84101cd2675e4ff1b90c1c8449633eb5d7222605fad4462e8f8e98f35a3c8f133dbd174031c461c75817b473c06d9c05a339a35cd9e758b8c700756a7313942820e65ae4a99d8f387715e046e8196a44e50e9f0e00ad6bd8d714434c5f1310da6166b28066c9ced3e7e36d9e7956fcab042a0d17bdcb024a122016726efbdb2dad10c20cb3d1f34207826d8d2ad50884ed6bb8512fd35b6c867b1b50a56337ddd666fb635aa60e842f1a22ae5983b270363485a60b93669bb3daf173650e4b47ede83d32521fb290087c0d676105e88a3dfe093809af607105d68f48b4fb40f5f61f71730ff3920329ddda65e01d6e75b33a1c1d0c10521b11094b18264ee4e19cbddfcb06220e9b94f77ee240e038804cc12e422cd330f2414c9c3f312457223f340228282903aa08076dd15b0d3674b2d9312361020292e526ccd9a4293ec0cdb3c5150e8883c7aaf25939aa3048d9b70527edd94c48d18d42d9fc4281e4d4f11f609b3a3208a07968b1f7c71483cabf62f401997932da5c7e632d9e22b6aedf5aa64da0a1116c89488ca26f4cccb99593ac224eec677811f4ff8083a6920e1175db3d660d0ae0b1970001ed81e84078b1b835d41288f16da7906cc3160ebe69b07ab621890c92da6b1715dc900f2bfab34b6eb4f951efb6e19d283885f5d165bbd12af66cac79f814905b81e8ee06154b3187aee6596b7a1b31adf67f755a1973450cb3a9ee77fd06afa91148fe0563b1bef035175be5f7fa28e02bd4e57bdecb5bb1308680a3bdf49baa0e5a4525b9043bcef2f4bdaee4c09f0a3c1c77f38d1d78471875c7a76e0a53189f4d9d9c96eb48846ba93430ad5556e00b35729da7b02e73e677f78dd6954b0aefb48a456f4243831141c72349039da4b088be46ff17c4b16f37da11419b0f09159b8d8c1c9ed7e1383a7bb88425c877b14f5f974f32a3d3d61f0a3b1c0400527551a9fb45c2fc3a5c3e119e5376522eb45099d708be006f8c95432e78c8fb35b47efdea639ebe3cee8ad4c396e3864b1f9134241d30c17fd3ba37b3ca7ef87ab0d687dc91e116574a46daf5acb10248469c9dc958d1ce4fb57c1ce1d53625933cea89201d6aee61b526543ad448e89e9c0c0658b14fb7bd82811930b205012f083e7ea0e9fcbc182ee2b8a27887ec7017e492b7ba5b73584c5cd027f1a84c9be16f795ab8152c4073d23cc5b0f6cab30bf8d546bb86a1c0e294cb1b1cc7a189839a76c19d2cf3a4803ccdc93a372f1a670f45dea1e4108177f28643d29ff3c8b8d78d972a056779d9eddafd246992f8df1209ca0bbaae16d539b7bd9f41e48e003e10347211d858d6850054c549820ed464f3f6e678c5ed0e08d754e0f27a1bcc280c3aac39c997ac3c60400fbddf17d9a0b8ea3ecc70901237ad6bb07667796d7ba00c8ce0f2c64bf98df3c328c981ea51c3595d0bed76f2c6375898039080a640c8ae142d5333bc034ea693761301d1e6f444dc2938ea098d360d4d44709e249bc65eba11c2d6a08e9f02583ab76a755c9b60a724753e714a2dc1cbd30c6ead1bc36f498eee1173760319d6a91f1a2cc88a42a1139df6ddaa57ee66a9c90a43e21710c5274b17d7830441c77783cb7ab8429c9e43a0cfa76228a15b9257cb1b10a2f494fbb98f313d8bdd9cac5283b227cc486a356465d126a862a3c0d16f06c20ffa933cb42ce32b1ed53d3c04e503571e09a48f54637d6674fea68bb4f42186f781c9ee07240485eea1b7707b8782574a7fed535780acc07aa04320931cab6dbbd9f0ba2f15cc47c44863381b67cccf6c97cd7eb7b15ec4c9254747326c657b6a2e10fbccf81c7bdd525cd169814efe8361a206d7d97a7c3d0206bbab9cd5d5f09bd176d542e5d7e828c7a25ee2c9110795e4a8aa0fe3bd25f6d8fa93a7f004a06122a5cecb05520ad30d3cfbf714d53ab7aab28d5623b8096705fee5f761e8089051700808d06e20f61a9b3ccd8b48486488a616b97ed918373187c1c3a2c7fe78dcd74b53f813308828d66891dd8ac75e30c111fbc0be6871d552b4336427620a91e85811931c6d72e6934248038316cf3361ed64e3b2974956231d2e778f823ee4559202874172d302cbf8c51efd4936ce715cf93b8cff843a99bb4433a8c3bcda5a8af3bc348e065741be7535342e1d6d96abebefc12714e0abfafb81fb7bd487033dc07d4cfa0edfd263c8cda1433baff72b757a4a10bb5111bf48b236bd511da6ba05e7c1f3d11ef53dcc1c9872a14a5c77070a936df13b2b4eb69b21c083706718f6978b19b2938fb59e4340428a3982843df888f38db0005cf3dd5427258f381bb7c74b931ff6694660754b7d2e862ade549a0cabc226861a5187642b4f9ec9f52940096a3822fe36cd5da45a276cf82ae1b187b7bac8f1db061e997ae16a5d01e453eeee7e71459570f7a648f736e8d0f3f743cab5e9a66d2d5b7909197566d1ad8b1f453a94090c3911b1257299d61f7565d46c191f90049c1d0f2d06327688bc1a246c2f45f67e4b4e1903ff0baf83bbb8286d4cefb8e1a6b1817b5c734b23bd6b76cdf61d39749efe0ed52c69f6d6550d5ba5f9e304e39f801f2de81a7c291b98a49cd6a0bf9e1948e43c36eedd772bdc0f69bdc9069cd43955892e3bbbc61c6e8f9812ace566bf12052e537130e9ff35410bfab30bbc1565b585e67520379df7d6ed86568202f9dba65569c542661e9d7ae7b566e1e05ce65fc38e4888a920a13c20724924ae27d2937b142ca324eb5a135468027bd63d19e013ed46bb43fed862d4848654d5abf1b52d88555f67691589f11fb696a4affbf5704f5d0e114df2ed9f04c8bc7596da310353bf586338288e69e27b09449372da0c3621862ed89edcd3aea42eb09d91bcbcce6723665a8efdd40b5f3044a89bd482881fc2b08fb9f4780be1043425860616dd9d2a3cd956469ff01707fd3a969977b1c1ab46a8c4de063b7eb274fa0a7e03fa30a77a1a31529ed3f69837f302a1725ed0db42f1b826478a7c3c3630cc886b2809989f9739fb408f33a828ba76816da4fd0ea4a9e101b96e9ff206bae4f55433cfb8cffbf6eba2f383f973143f505ef1821678e70b3b428abaa18d38740049363ca7a79491804cd3d16a7b5e0a77aa1fbb08b7990fac76ae91cfbc44a7b05da188273022a65470f989e2143a95ee70c803454729162629aada39a87cd0bf428c1df71543a033577c18663c7b33dc79c82f1c108321f943f3ec8d4669ec106406a2ca7426c6ea387fa29455bfbe8aefd3644d26ee49a9c0d8f208c31e4440ee846c5a0472e161f7a92afb6fd33b6392f573f490000b876dffb9f22d61e3af9024ec8f3304947d28028a3feedc2bb60f501b50e0e7ed00ba71d42707202a70e2d98d13ccbaa55d7c4802ac7c2b2b0408dd7d57669dd9644b26a200fba261d320fc17fd166fbde919c3ae489a9157079c5ec31af7a3b977f97e6b67e1fc430a9169528ca4e715fda91f2272c921fca84808491dce0fc6e52a28f6f088bea55a16cbfffc4f08a788072624e6c7baa85d058d9ed94c80b88d27fa1c408522a0ab040212401648090a0ebef15149923e8923b68fc3667e5d8172296e70ddb4862d7ee361cba281b0472a34cb7ab334b332dcdc77e1829ae16a1befeea4b25c9d9196a52c08972cc0147970c9181e364a08e082c6532ffeac53462a5424ccdd7b385dcf9af46dc925dbdabae0eebd816148eae8d2a8a116fce5664434d0c5ef51f1eb7651c407b4e9029897736ea52a62c252291621c3a85e598ce65d0318b83d9bc8da352fb893015db7b36e10018fa7e2872c684cf7529283496bdaa4f9c73d7aca0b211107ad5f3a99caa084518dd5f9691d6adcc8b784a0043cf060540922de4b16e45727d48138092c620ba1e5cb6b4ff4e7d490a587a16223987219fb355a666e352038818717ea3d21f2c10a9923987f75cc857783e07f402606ef27a48c4f3558c3f1c80b3cdf033bbc43ff75669f55f7788093b074a4d84e23b9034b2bf3beafb77c98c63b73de2bf6b304039c7eb185fd5f9e2693a410bc6945683753db009a87df96fc8f62bcf1af18d7260f823ad1b85e490a30ca10893d7cded099bca0cdaa9be44ec0920ae903973fb1c6353cb905189e00f1a8417d8370c5e80b6ad36806bcb1f1f5544af7e6e424578d9bbfa399d72b6b5be40cd364f706ffce8485c7ba0e04e859aaa16ced51bd99160f84fe360d04cc1540882f12ac9a12331dfec5dc62ac82d7341680686e09470341e7b65491d0aaed09812bca7287f751db2d87e4b0fdf0a516180046b9f48c21ae9fc2c73245dce06381a2d22c059db99d32692068e04e5c163886f030b655c2b0279f8dbe5bc9851293125a4cbc1bb1ad5ac39c5e46b6ee002408b477705e8eac09b0225852ea66d19b06e86c471002c65cc56a1c141441b42824404651af3d01e46793a31013c0d5fb0452fef46691c6d99520432976c48aa57fdc0a94a2bfa4488cb19002c552eb6854b76884843f1b8616b3d7b5eeb62971aa7d64044d8a1e1911fe3e1d61c7dcb86b4dff3667b6f9646587ab4fdec88eef4716ee749317081b948a34fa0d94b392612c6a0058405e50971f877b23c30e8dd74a6174997ed340b59f6ecf63329108ec73c6c0e8b18ddd56cd810762b6cea9f181eb2a02ff2dd6dd9122b425ecedd1ee19cb3ee1c160691ca5050d73af3f807ab4bbe252a4d8bc50272f42c03be450020073e9343103d94e74ec350aa11b326e2873705ad61482b9ab8c87f0a16c2e058ec5d290c1ebb9ae38ea47e742793ea324b2951d5f542910c0a027939e25a4246739dc8a8b4c150f24f72c29ab9ab242e6cf0f8f527a1742f539bb0027ba990af0e6748398d215a2ab176662b15d98b3659d19aa704fd6ab8462226b3d51cf365a008d8ecc2305ada4d0c78824ec2519b80679e85b6d51141f105c1ef78f3de0933b27fa04d352556c604f8f0858c255e0ceb251be9ad6bcf1fcdfa0367a8c6bb31af02ac204e78c122cd7f92d281314196ae4527407171b457199681937dad26c479380d4a8a92f5d12a76d1761d8716d614d41e06d51195f972ff3fd89e1a31cd641b85cf2b2649dd524d668349e5983df99d972cd39a004c089a43cf548d4abbfe1a90a9d3b9270dbfa4413345f59b8f3d4a6c91d744bf68883f119fce88750a76b522cd9ecec8365f97617b7ccb6f6d554cd442b22e29bda5a47012e0fb59090f2f46632f32a9aa3d47332f53b0cf648f052ad17072c9ea05e3d65140eb12d439a08b21b848b18e427595610890863113e6f7f160c2a0a2b8a2ae1bc20c48636efd87cb3dcba7cd478081b1d10915ba63b60e3184a0f71499ffc42ee7ea0ce46a7afad6de00622121d4948a17af2ee7d53e088b1fd1919e101d6d16387d8089fac9fc3e6090cefcfde7fc0a7f6de4ff8a7da8744a0ddd41ce41c673475dcf14543163c143506641e1aeb398764e3bb26e99bbea2b586ce7571f38db07c7e6cf2a0cec5bf3ee02bbb54f3f00e0830c8eca9c64e389da51513f669d64fc5f29fba3d10e405d04f0a574f0c5fc97ca58cbdaf7626f68a584d677c036120943ce5a3afc52e20284871eb31a9a11e3290e50d590c84d7126b02ce8efcb3be868c62086436848a26cefbdf3c5659a89586a34a1a4d4d7164abcf5af02ead8e48ce6341326c5654584014315b69f15aebec11561ff8d385afcbfae45ebb531e57501ffd897752293faff1bae583761bf34521bf6044ad05ca0f7e8137c1c10f49ec1c5c642e43c2a3dd2eadf96f94641edc28af1c2b5c17483e5b96168bd502cef63c8cf21cd251d9b3e151f3f82975fe421d78d322a584e3b6d0bcbc2c951c9a09cf97c2c51bb5b93da94e84a40751439bf2b81ea90ce2eb52aec381a8d04a2b34517efc5d4d98a64493df0b4c6ad90bd05e08fa76e9f0f02e7aa2629bce919a9740dd0437d617abb33ce9cc2ae0bd0b27bceb81180d1d96586a69d814a219ffcea3ade2c4331d39f7f2925376b58f1279c57f0a151aaaec9d325b993c24679eaa44cd0201fd4af9804e7b6c8bb469e2e4f42e3af6024f44a38c4a8525117a99873e7cc362c3938d2d563767ca04515c890ec90612f316f67a7aaa309e9dae9ea405822f57e836528f4985477cf154872386468186ed29c845dbaf9249da1e1567c4471ae8d07427724632fba34dae3a939a130bf0b5f497c7292e2ff3fa55c405fcb282a3f1e5f5075a9d9240fcd059e92695528ac878e07f64d52e3a0878664371f5efa02c56644937893d1a6dca83840365eaa23ec85556652f596f868a12e56de22826e5bb875b2e458ed1c2b0e2c41937b11b100d0bc6e45d8858c3386114d6c8fd8b669086a18de5a89e8ff603c68119d22968a6d21bafd54116a047b175a9d5f34c7dfa24adc59f5b03e2290b33ea047ee1284412d64f0bf58a64fc02814d38ad070b65f59ed474e29f8ac8015fccd5d3536dac6f7cb380682d06a9af81fe383125f8792550c1597eaa729da528882a72758ff6bd80a33732be772badf0da1e11f1b6590d08a8839a3bcb18ac2b5a79a5c28b01997c93370689689ef64053881b03baed69b3efd17666e3fdd6a6729f041f2061193f7f0b026189438e34d6113a1a45bd575e8043d44a2f0352f6f8b7c7131b80ddb4cddf0a0ae66862b0838633d5c8274387b38613d7b3c022d6861c468ed8ceb275b22edd15b253e2c80f6088041c483159878e3550df861d6aea7444c74200cd607ff754228b4a4e494c4aa405016c606379198042ae74aa972695171613b16acd8e950c34286678511c591743df1b43a96d5aee394bd2d28d56bfba4a4bd8771fa8c9cc6373683147f038ebe44ef897bcc87ee7cf292161b3cfd29a15abff85e814cd5e0962b6575db6b4dc7f6824018cd4cc209cc24acb931e6d10c06b8625eddb7bad48c2f380151c0607a6859185108983a00c891e7f21958498687870af2592a0269e53c051e8a3a6aedb2ad2a63f3a2d7982ce9ef9b2c66eda746da3bd4f9d4e80209f9e6f10840ad44f126a4ca139887e755fefd43116009e976c15d0f86a6e069e754f15fe7848c9601eaebebea10d07e524846cdd831d2202f79da0a1eebb78b838e750d1b8f23f86821b6a082bc2c9df7bd4fba53545b327d53237f01afc6bc9deb97c87ab56db121796cdcd6d63ad21753b55d12e327430b74980a8808c303137d99165f74974cad627dbb777ac14dd8d87c9ea914f0226b43104b3608c1f9a3360d130814c88babf26ec5c28fc8d8e19ca879545f790d0bef0ae315593fc7a1a0d951355bf74089cb5f0e155e70a47bd86700741684c7a332c5fe993c0158ca09d9a792bebec962af51ad6d8d2c5ac250aadfb34c8fcd5f3384022f4503e425bca6ffed7cd206ff1d18c6481e3629f1bb0148d1788950e83aaa2b5ce8f42e310ab454eaa1c8dd7fdbac54f4be1a5f2f60e82edd79d4fa7f269b1f0c48be0445299178d8947f03801a9b295dea3b8de8a60e619f4d4ea98469b8e8757cbfab96d0e9cd62d8ce72b49c3c6d7ba8aba58e48e147d1f1f30f84f17844c35e4a4ca6062a8d81571d2d01b223c203c7a2eb5dc23948f5aa5be9f91ab82e26f04277c33d4d34a62dc16cccfbbaec26a0926f9a5b622186c22857892dfaaf918f503595d799cfa0c9f40ad8aaee471a902e0c91511bcd8f28a9bdb489df7f6e50eb79c4778bf1914e7e8a2d51434d57c10d51d18a49aee82275526fa7bf5d3b30915ec804e0fc05205197c19d7c4825345cd2b8a402efc870402a68ecdac91e4e2475e408c8b6f41d89f94c9368c36ec3cfa88e1130fc8619cc2d5f4b3732f92853e2fa717db2b12e7126830970f38e49608a7e72a349168308edc1b73207c07929e2280c6a9af56aed24b84a5d225fa8bf134992383c057ddf1ec60c01e7532dfd60a000060f692fd44d7cd4e1a34e675601f58fad97df2a2620283a426cacd551bd98892854ffc47d715d7373436a5ea85b7a018005c25e070bf0c1c88cfa2ff2f7e61e61529929048afe1550d550c516181d3ed02e8f091438bc68540043660d9a93eaa7720338e81e5b1c8ef320b9899c4a4522b55799cee4cee1f1ff6c6d7c533114980a7a170a720ae6820c3dc9cf9f2ca081af8536a14032bcf855feb5d70b0f018466b5fc44064f4491efcfc080cc27b076d236527b01d88dc2274f3b426a14aa0bdf78ee023ba1061f305c69c873025ead8b9fc7aa847a732a6a59315cb6f11f0cae1ea62fca34e227ae5affec90b30f40f5d20ba684fa7575db74380726fc4327d5003fd27c23e98425f848a87ddf8f0e00e0c76479df2e5b0798598a1531322ce99e641a2b6bd89294736296550bfda5f4d9bcbb316cc39e613003069c2f6215546f505255e4de06055cbddbe364714bc3690d6967cf663f20247803c4f184b7db62145e384423dd6b803e60e8f500da194182bf2b4f3f2c6e6b529b6ff5dc56239f640dba967514630ffe644a399febc21a02d8d330927cce72d362d5cb764d3604bc043e4e4eb746d82feb466638a60dc9ea12a8f212fea87b8fb1c1c46a7d43e28145849c98a82a6bccd1ad833bc1c24398944f238768252e3407d04ac88acaeb6656eb50821c9ad03b72099d313bac431b2db75b4e05dd39f1b05217d5f1fd3d74e00a5a932372542fcad04404431777ae576b24384f60f97a8fec40e65997f0b91c552ed8912671743367d92ccc87b1d59285d467d308c581cfd57af883fe731cc01586ec90cffef20a22a73b1c63f75c2278258222459a7424b34280ec1c014338b6111aee743f0eeb85137e796cf1eb240eca819d4f282d51750695733889b8dfb90e21a1774da358f50a6f485370e31644dc3a829676cba6f510cd6d5a0200904655b2f602fc290b0062dc69f5868314bd65fee332e037920bbd543350900c9049be501f2ef1cad0d650c6c4515e8459bf3cf7666e5667e38ad53cc12f7f2345bd6b2392ef194db4651640b013cf2e9bfd1991fed3bbe44b63ae6eb24a2d8d1810a1d3db0aabfab7de70bf7fc48f13c9c03cafc3c5ba42722c5b3b7d3cd8f19755902e76018d9b7475e2426ddad04020fee8f23390273036c7864e974f685c3af0f4c8c50b5293b6a03fac0aed6f9f9259ff304d6eb70f7b38907837f83154fd6b58c2f08dd6bfc7a012d80397afdf97a2763553d4243412df6accfee50c295e5890486d19e40fa31f3c2f542a2176a17176b53d99b0dd2bec6f237004a9d5e77af612e51487a629d73c6ffd2c74a7503a34e9d94973e7433beb6c8bfc8035a7b8bdd053bd2311b89d15e08ef0193632ddd5993346ba512c348cb76ebc44bc7b1d158c8a19e579112d4b04f93a1683d8120c66e1eeda208a7aa1e17c0ee7c8ef7fb72827064f2abe8e34a2da94d811429ad9292d0a2e59142de01d55f0901e320096129f69e501158d72ab1134ac6e0e4aab549d7ac124a127c8a64837b5f59aecf4133d5741aed5937d6e48756a2bfb1e0bed609da825833a0fe2a356751445c7315550e192747c23b63113bd8a25b64d70415b3a434c6b8e2653a114e455af9b4656bfcb7557e6659ca09216ee8576b1696fd281a58e2eea7af1909f8cf798f74eba5098626e6fbd21431ddf020777b1660426463d64de0119fc6915c3ee0121d954a2d6c1291f7d58a6fcf7ad70c05131ecb0badc320cee5d846725dc06b1e78f8eb64aa3b85d9442c21970b3f94d4a2084a26e424e1c4c22127ec67ca35c7a12e4cfa3f9a1cb13fa5f7212534a4202f8de3ca3842f8e64d93f0134962515d6a23ac4a4576777af11545192b133489e09fe0e489576d1daf477e50582ec79e6fca72e126683c41a5390105d66614add94c09dd2494975f03db657ab7e88e40e9982c85e0eb621c2ced0ca38d4da504d7718ddab6b90d00bd2081b121fe063db838a1ec3a7390e68aad833aec73a9d071c77f8530c2d042364661395e518ba4addbd18d88097fa76b8c3e208785bf7100a3742baa8f5366a236264af1f7600c23b42ede6f91f8017bc82513e0583b38d706858cf86f5aa423c0c5b5e4e986641d4ff2741aaaf92b3ad46fedd91e86587925b46bdbc92f54dee69da0b1e6e02e308ed8dbf142140b9039b13bd14b8d37fb183cfad13087a0ce56086c2cb64d99fe6228b6b38183644e74bd9669c02bd842f1a49a8f3547cab0efe11d99e0915c65b7787e71c3b2aeb9d7f638557e90483ad605a2e4c71fc0ae67dcaee55160c3d79a58fa84b156fd5985e5cde382aa7d2c53ab0b2713f08cb12285d2ea2caa67de76b9a1ed8371ce942873a16b69bf72bf06ee5dbed66f9e88be3d09c09f864d5f5deea4d59719848f00dfb7b87cf1d8b15932b7c9f11a6c3fc6a0dacfd2cdb68340162b88392bf2e198be7d69b96f582a6d56090a28bba2b559069c13490fb30f888b83f70604e9c0c9cb7af067e93a5024f320091c5041ac56b5c8e0d072d625ce50d3cf6830e106e17377bb5e4eec7299f9a875e85200eb163da2231e7b435893021e9921d99d1c347dcf07721966db6492c3965fd4030d32b4b04a1876fbbb1dfa658d8d826b139c9ca9be040978c084c0f5f77cf780fb161b72571e7642b368203dd1c919c2e3ec48df33663636f83c5c94996a46062a62b436442876fbbe1dfa5385726ba5bc8fddfcd652eac695ea85f8377c770069eebc034f35caf30e69a41b698dab976552d09d01fa509099f03fae6b05f5d745b08840f3440e921e2e7196de0a3d8221c1ed06cb5031406ed1c0f72e2b65fd4286d94f15640b9653c6c44d462e380d0e6cd14ac45a46432bc573f5a4ceb87bc12e3e6aff0ff33b20c353eb0327ced6d19f1e1681ab97ba55a58b74bb075ec45a3f435759b8cde8d558853d352e740b9c1775bc38bb5f746eaed16622b3ec14164370c1f5557ba3731a3c6803aac535d0cb0e57a6cc5805d0191eaa01dc809141fcd7c2871cda317537e1e2fb6b265e0c5d4bc7ed3ad33429017844813451e34eef9376045d0b143dc3a33a75915aa8584a2cfee923fe842aff98e4501254e31c9e59e1f552dcae385843a41ac2c6ae510b26582e56e2634c10d70512fda2e21243bd8d2fa533c2a4ba6b205047421f7c276a45f02ca0174c7aa8d9668a8eda951c3cd6b77c593a65c9d434799f300aaba4e3762e77526a93420752f045bb604134af6d21f964ae7fb8f82b7be76f70600148408774e2094dae87488f3028fe730375825c23abf6a715019bfe4c8a77cc115b0013c391b609fb69db2038869dcce1bbcf6976f79065cfc99eb14f9d82d02c2b00b0be72883e7acefdbc1ec3f06dd0b4b39fc6ff516a31d0d6806143df03ac71f7d558e91714976871ad79fd23237ffcd138d985f313316b1445a1ad1fe0b90ba95ea7190fd055fc42522bd3385d78f4bb32bf75b9dc186a51035f8806e08ab7b7b2dddc088c01e01b5090a25b1ee678a75ccea75725899c3a2b1c811f1c06db27afdd5daaa598825380c1c221959733dd22e6c337fb3785f3853c4f4be8213771dfc0302f98e1b669d183e3c0c98b5196e764d42cd6a27b5fb5a196ef5ce43487013abcd21cf30f2517276261955f9b898356bdc1ddf3d8da0c3c28f8e7fc3ab3da33c6fd8f18f6d9d17d780dc0ccf8c1f393309fe2f947c6c5bbc8805a86212607fd5b26c91932e6402b7e72e1b5e4826473ba1c4019a6b079931904fb66855bd3bca9fcc7cbd468a539e80ebb3574e81b708cd32ae4b04902747e1d20044fa336e1cbf7b066b5eb861f073aa0b932520640521271d7031fe960c8b58e1c3a60fa51327e2e263cf8ec1407545b57b6f38a9960ff5f1f957a253816504c43dff4a8f29df33c7ca082286ac3095b9987826afea0b2c14fbb25d1405f5ac12941a24b4295b59c5cbacce8bb875045b5068375e8854ea6e383d9e4fa7e1a2edadb952af9964fb360b3e566f12ccb71e56cc2809bc20e58e48baf5460f1329660cbce0b82f90012f2ea98d3462d6acd14246d9e23f7e014b5151a29e7c996fce1df90c9417fe2d37c609d79824131d651aa76b92a391c1c2829913764a1218b3f058f2bb3ec0a06237a69c16bd3b6896f1d0fd5dd99816e8f4dfeb225ba84c0134730a236a3e9d90d145a9ee6b2e5929f5a00351afa3f16d10f0939833ab34d9a3ead4c5929815a129205f3c4e9d307d2744c9ab09c2800a41775d088146c22c41c0148f87a2091ca85ee8ec15b7ac742c560c51400aa92fb0c2a5e760a27284f44b9c89c68e8dbbba5d9eae01281da5d7e235011d353241522b0f2f00459ec00ff390845abb2388b4bbab86bd450a68c5caef3b60fe1849494de8c93027480d27d934aaab05565669b3f4997362593dc6e620f3baed4baf4939b8c32a7cb39de0d8a0f32412cc587b29a6c7e9aa2714a64e0e26a1171261ee3a947a0ee99b475caee0390ba859b551f1f101b7368443fce21ae35a79625dda19b7388bb780933022fe157bce5b40b20745b623e93d4612ebef6f759f844bc70bf8ae437f465d62b2e53de57304ef14d52e51c6d8180669d4519c9ef492722292c094cff7e903961711052735fa007685be72ddb9fc9a33124a4ed6f1fa02ede0b1a411969bfcd477813488b24bacca5a224b5df78f410e6b951ff86372979cd8420b73ab97412c0a04fbb14c422ad19800ba30ff2c3f486c862c9078332dd86c5fe94da900d79fd4c72b66b9eb520f881ddf89374c6c5388d47e6622b307a2b3902d566bacbe76932df90f5d363f278e28be39457a7f1f4983ca3eb020560e4f785cf62d8faab0972cfd3ee1f0452ef92acb247d74e62d8715318513ed7d69e9c341d5d8413867cdb0924993c4c94a66c1edd385878687f9fb45295612b333aa3e15ac1baf6722810e1a57814158334424016681fb71dcb656e91f2b5f1cf2dd7c69d6628f3182fd1ae2de1947bb68556539fc83ee8a22d99e1a25e13973de46c9db843619051819cd4178369e47ca91ba62a20eca80eb109f3a7991850223fb2e5a12c810f8afc84237f9d7085a7076f9fdd77c254123ac40f225f4584828bf23260975fd17f0510b081589a9c51ee4cbef87f1f329ac7f2c172a185df40e89e66b04c327f0b35c030d1765581828fe550e619ea2efa3e532e85936bb7a64029bb1827cb710aedd92e0f5d224816be383cbf23413abb31368cf6bcfa408d0e442ccddba9f39f692996f0efadcfd21a1ed043ce22e28941a510b64f09d829bed9954dc200499310b0b6dbc709c3091599f7c99ddaae7f1a24cb4d48ce0ec84ef248f7f1790aca94e5263df0c003e24772b8d923baad8ef84f74d96ae3983f98056bfc277df614f31a486d43e910fa1e5ffa979e1273fb1435b4f63987eaaec06a081313af01f845f032ad7da8c57309e15a503f9f27be84cdbc9d8847778ee69c04b73e4c560b7c279c68dd01bd22cda6718220d08e07c61cc222d4055951601c460b44334f0702144431ba2ec043bb2702f42c0daafb6f26d9384ecbdc9965b4a99924c0187088e08d2087ef130f22ac48bba4ffa8f7eed8bec653eea963d52f70979ad23b9741229cb3ae994fb019f3a758923fb119ffa12158607fceaf0ab8f3acd79e4d047dd177acc7b605e13faea3c2a9b97f95d7571c56350e3013ae621bfc158e544d0436f587dc831155ff1e554c947be2bdd4797bd94eea39ff98e3cf312b76cca341f719f8f4cc401815f3d6a35fcd5431eea3ecc6be5443df0b396a376221f71299e715ff699b75633f28c3fe3becc455e39fed56a465dc69ee6fca2ae07e6d0b3ce47f65817aa6f71dff68b43aa7c640fa486e5a1bb70b6c5912345dc50c40d43a240e11fd2552ad50fd9dd0dbd9bfbe707b34aa552fde02a6cc49a141b2776602307f523498cb43e66be9d7ff4d7a81c99c20b7ccc38162043df6706024710be486fe87c04163dee159ec4de76d2e9ce60873975574e56ff65ecd7d65848c5c31e0eccf898e90107661c88fc1eed5967d072eaec2fd42fc728975d8ca45abe1f9d7ee414a561cf28900e88fcd9f5882e3bbacc4960cba885aaedf9c5420a82c22085112870a043f3d587c2affbd0a948c32306364b6cf14447091368d657034ca250f1a3df551b807e533675052b3807b4b8410b8090d086223b605141109838219282301c31425bc30d8f1aa0744a0c9af6bb6a4313b307d87fae862b3035f85c6d400117414446bf2b2e9aac66c308d5c61418af3f5708330833cf7cb5986521e98b713d6088bdd0cf9f7e575ce84022d6e558c7185d07f518b32c6698e56d7988fb82acd39e0c79db4ace9d8efd130c646fae07aa07066514b0289304190bf820620330e623c6f3c428cbd78a21328bdf7685b85a1d9b19e4a67730352467e7ee5371920bf91bcc05ced3f85d05053d6665160f2c2bcee242feb23048a995e2ab41e69afb82641ee230a72c242fe42a2111277dc4891c83594c746754b5bcd6af5e1de3acfac05e749932d44f66dff21b51f38ffecc88dbefd67074303c2c9faec3628efbe8571771904b1171423e85b96faff8827cc7b017a15665f8c4a819468d44eeec45bf32127bb112a15a20080c6cc007a3b88b2ec48f2044300a067634fae4b834a3101eb083a9b17c5dc8472554ea344aee7315882919a954ded703110bbb21acdd1d203fecbee8f309263bdf3524f8e89447841ee1f4a9e510f23d351eb8080cfbb067df183747c861f479190a6d0beab74141d80b39d51c20e44310ae8c162a46331924646598531c2e1a8991d3019d46eb46479c6824049baa5df410573b1573d8243d2a79e95d17715450f98a1f9ffb930a626b6c0aaea9f3bd8674de51eea37f855c3ae721a82e3dc8d630a2c328765a4445c1cbea1f6c013cf21fff7043d4701fea3cf63a67712cd4e5801e2bf7c1efae2e86bdceb1ce32c859a70a42040b2ae6d33ffe815ad761d331166e9f532a7b445e72ce754862fc231146b1ff505a2bc31ffee19f8f7fe0e6b46783f48211644e0d873b46af188a381047a7bd1a7130f883cfdbba17479db20eeac6f0a8e17007022620e4d229b0352e975e8145752919fed51a2abe9bb2d6445dc53baed7a31ee27677a01e39ea3238ea311cf58b7538c67d9887ae9153c7a64573909183dfe0ae73ba5dbcae6be45707047eec3eead07b40af568873ca4af00e89e3e2901c38ee614fba0c8ea36093f4c8498cde14214224e2441c222f3de230aaf3548c4b8f47e24e54125751272af1495e369183bff31b8c5d1127e26c0df9d2a3919873753e32e840e253f7c0e869f7c25beb61e4b40302dfebca452448a7a2aa4d92f38ffac028d87d2187397a70fe037ee7a14ee689fa45550fc7755c1c7265d1087b329311874d926daae525c7c1dbd9af7883c3281c5c6edeb2245de689da037af51ed1863de93fe0c7212bd9a1eae54a51c83b8e63385eb149429d67f18f7fe08df48b8336aac975aa977ea361701f7c18a12e087bd23d86bf388c072182512a46c570e97008a3286dd9bec5775bdcb9688473d8935183413a05449ba4d3d87df4ea6274b1e438f817718a08c22817a9f5b039f5a9f1d83c08a35c5c3a1150b535f6a5538dc7e61408fcabfb526094605e38e92edc462431dec2057d918523715fb6c20d61615eb91ff0479d03d8930e444b51f7d1ece7a5efe8544c272b43ff3cabbef466f489c13270b0e918b699109d7ae1b325e42f38b8a6f696946f67e1764ddff5dd3256546cb119532a7bd2abaf78b4387e0b93c94285dd8adce2a08b381d96c31cdd0763844ae074e885e95b16aec54f36fc7458ebb64dcd72cc5ae196abd3b7add6b9b24513af795b1c7c2cc609296955eaf919f33d3d44bb5dca95213990f82bee81d1afac78f51e345fe980c027759fe5b0c3f9f61e968b627412cae08d56453eb46976f173b65152bbaf1ad13a254ab06cbd5602575ebd6fa84424825c86cd13d47470f79dfef311f3301e1845ad07cd610704be25ca9a8337eccd0d60734a513f2fd338d8047b70c5a6e9be6d754e6715d49343971ea77f50498ac5a7c326d0098402a3b0128cb2aa8440db91ca46707efa47e33f0884c3447e4e67e17c68d3741117356e66bdf6a56207c7899c282615dfd3b3ce356e86066659325354283d4d9410f904fc7408c4a85d41594de8e4a763346b4bfea43ea7773bd57058dd89bdee2cb050c6e69d70c521d0d618b2bbbbd29dd8839d05d89b1f7c15871ae5329a92e2bb424392e9f3db2b9a60d4fcd6e7a74f58e4a74f8740d3e7068b304ac5a7ab540e098b8fb821e07411f703bed661e046884ed135753631ff9e1e44a758ba9d4ba75be0a23eb48f18061030c71683195d7ecc7d04a9d9d4d626cc31dfdd9678563c76f2c263be145b288f45b12c68a1e1c8af93df95164a1e831a8d3166d647e36947433664b972528f4fbbaf046f6518e64b53482b2d8efc67e331ffb6c70686c29c013bdcfddb7eeb545c13f4acfb326a751fa92eedbed2c3edb11654d674741b7bd80629dcab736cfbdb9e1d5ba31fc3e86575d1374651c72cc79cc4280a55b30b6c2d8f150a4d7ea170c2c97fd589d563a386feb97ca77c776d137b7fa56c53fb117b91313a26351c31d2078f3565d4cbafcbf62fa65643bfb99667798b936b8aae7d1f7876e854aba13f39d263346b6ee5b12b6b4ee5b150d65cca6358d65c7d2ccb9a1b3d26123d26ca9ad31e1b65cd658fd52c256b2ef4d84a665d8fad64cdd1c7485973d6632c5973533ef6226b2e3eb665cdf5632e5973fc58c905e645d4dd083e6a383a363317b80c8e001adaa9ad4d5c210d8fc121632066c912b90399c0d304b9f3b3040bfb832d4902cefefccc2cf1e1b9441186241e1626ccf1f1c1dcf9e91d6622c90b1e3ac725552c09add60b4f4022b492023e814f86f0a837858714441e3e815ae4c01cf8e0df2e699fba3cc5c7ee83dd3e751df28a078debc3418831c648850a9d638c31ee768c3146ffa22f7bdc8c91cd20d7bf18638c1b63249156663ac618b90c14a331fa4c8cf4f4cb53a8d0b763d4814929e5b5bbbba187df5dd60584dc51b6ccfd4e9ec9b9cda5a6cc5c0b087977df8a01f36fbb90f9b75568be9b12f9b752107554eb6ad66d5817ea3cec85d8193d2d756b505f4f5994e5bb80e7994dc0a6424e4ac0f4e9df8b4e853a21d8c4a8f66f9ff03942b007c53ee1840042bffd038bea8ec694de23f8e8eb49b7b41a1912d16e7786942b2d2ef45a6e6b440f2225e464083984580bcc68a5332713e772917c905a4cbfbedf29e4f4da10b5a68cdad633f3eba74d49eed76523cc61a775b3ba6f73ffb6fb74f80f0ad12904ac899d6783a6a05af26cc5f302c9e0d9435a0eecbb9bd919ecdc03f9d27088b2dd1a596cf9500bf4a1cc9203145c6f3dfef7e89d21c5108217d3dd3258714a39a3d59477affa34159d5adfa3699bb6add68faec3ce79c4f81edb8dd11860a18b5a4f3b45b74dccd3ca18f3bcee9a62431ae4a3376d0cdb5c52e8f5ebf00be2a3c3d845ec312cea34c7eeee8e6d8208db89138eb46194518571a4713ad99899e1ee187719cfe32db1171995b147e5731655f60e2e48d9ea19a58c7397e946786d48348b6c212a6ae6c3875dfbec8c20f6827abe95f4aa8ff09fcb7afb3cd34cae22a1946976feb3543e2d7f0545a142ff2c556887b370f960dc6d90ebdea4700a35a875d8f33ccfebe8bdb5897d8b3b48b91632c79a5393f0dc61f964e648289cba86cc9dce993b9d33773a67ee74cedce99cbd547327e7da914e58d18c6631c618bbd29f119d4ab0490747e7d91b875146383595cc24497068139c55733f91f9ec749256d23b3d55ddb2084924616aeecef345455f3e7d73adae229cca8e5c3e7375f9ccd5e5335797cf5c5d3e73d56539970fa9ee5c3799cfdc79760c56f648cc45edac77bbbb9beb466ed1d7e319883dd964e26c0d279c92320a9421320a9121bfb30891df696416691cf924a3f4e6bfced95e3ee92954e85fe7cc9df804b631dfb55c548e1991ff4a51364cd1d6994eb069ae329a850c6294ced698ce2ea370ea2ac226f62bae60c2c4891328733557cf6e75d7cd54329b98495ae799bd755a094e4d27e66aaeb2a8d76ab29402db98af739e1d93d16f3050df30134e311436b14771d243d677c8af13f975d8f1931973c68c766a2391b673721608cedfdf6e77c6ca7051f7f34a2fbd5318edade4319e0ca3b84a31c9c1f88bdbf5a247223ed6c4478239c51cc3b81d6d629fdc0f405820c7cbcbce07a085fc124b6f713466d8e3d39e9e5337d8a4e1e8cec6112436196e8c22c9c17c88f3da84c4db44592a81dca5756c5ad98e0ed481ab36b112a8c47279da2998d326460271da34061c7e4285eb58086b2972739365d97a8c824dec3d3b1512813659c64ea8d099a7425f55e8dc84948c99a092f1122af4262a742e4ab553d36d84d0906ca04d63a810c7ead91aedec96114e858eb089fd8a2b983071e284a140e1281ce5d9e757ba500e17aaaa4dec2b2a1a9220412c2dd922f196cf14aaff2c1f968f385ca8106bc9167bb15d3ff8e0630120f60703416c59a31cc01eef287d8fcb4b461915d7238dd3c9c60c7bec330c60efc6bec064a51a32157bd8c43d46a825cec26b13fb0b0d898fa1426fd178f477d7a2e1c06032564229e324e09031122a0c8ee1a41ac3312ef36cb746c3284a1dec618f5d0045d42ff63cb3c71e4645c1298b0a36b1b35b3e47a8913dcbe799b3a8d0d9a37b977ebb6bae2a6cb706cc6e195e76d985c62dbed89d53b65873b26c0dd27fbbbbcb6580bd8ac0d2b492364981ae7019e49c2a582825c3b29893f355cbea48a4553a755a671389b2d94f68ff7577771ced7656ffebeeee946cb746e87755ae95ac697318296b27d67f91622c1965d4b71e7dbd1d7a8f8e5c650fee8cede68b104c3ec26cd9627777cb9ccfe58bac812af4deddbef9f58e3e7a27c62de332608d847ea8455d557ed85361afeaaaee43989aefeecbc02f7b91cbd032721f7d7161981758ca56dbee23c2e777e7db5b0a157afbe89d5f87d170acb3930a9d3b9f6ba8f0bbbb12cc8bcbf6a28585b4a2925247222dc34217b5a62ce500850a69129e22aef8945f1e55935fad08f5f38714fa88f92c08b5fef2986006cf63822227a0b13c7bcb374e2d4dcc4e4cf2f2cb5304173f7f798a80f29fc326313143883186084c3013586022a6a4440b263190469ad5d2ec767274a74e8f74fbe975faf214e1e4e7fcb9c3cf3965c742a81b7bf0f303f8e551e93c3682d9b74c519fce3eb918a7d683ec1c309ad89bf2c77feb3eb267ff843c4b864f9a58a2c2873cc0874af0a870ba88e205f0bbea42f5180633a9f500492cbef906e32fbcc597512efed2a3fae575e4955b19adf8c859ebe1f25a555ca58359e96aaa8bbaea23cf448e715f8aaf3700c655ea03e0c37875512783865a3df308fd7af297bb00bdc1e7dde7db3737f47c7b49e3b1e23fbefad478c87c54451d8c8a5fdd07d3438a8b2e1f751f8c4a5793d28d5cb4ffe3475ebf149f3be0c3f8c57d97af743268a857e7237b918f605cd4f5807195ae878b5f9ec2f9c8fef211f7d5ce47f630ddb2b779d67d3eb277f1f517ee8bdfe2adf180352e5d646febbc5bf65a3cb2d732e281850716d758b8af04af8d1c6a0e351ebeea59102fea7ea8f1f08dbc7ad6f5b3741f095ee3815f0b5f35ad9dfdd4a9ee9cb77e8f49380f4e1fe369dd48ec6d92a1013d6738066c63607c64140d5d19edbe7059969c16b5661721127028d14e7594b24f90210c36f8cd9c08e099388e4be1b835b17b9b0ae2879eeaccb6bab1c3071aca514bd2c82863109da2b4d66d738638106785051f8944ac31057ddbde40a742dd8dab5b36519e37dac44ebb8f5add6ad51b1016f70b52aa915a99b74a8a6ee3068410cecc7c6a070386101353636a4c4cecc21011040f37c8bbbb95e01675ae13cf5e0ca718c026f6ad2747e3448453163b18c0a8e8a4d8d5ba75ea74da4edbc98a19f8f0167588f89fd7dbebfddb7d20f8bcd3276466fd466f26c31e6fe7d59494256dcaf36a69f3855ea76cd8d0de8615b5ab90bd739b4b5d137bf4d89dd8a77f75522a6b8d5d77dac11e7be79c5490d90997432b6e489c3a8bb191a24123db6a851b3b05cb5bd4985dbea712a73cbeb8191a44a021c3287ada1ad0a2d3e22e027682ce5b54efe366518f29d148c97843f0b2a82b8e0294ca6aa8d13146a2396bce1a8e6ed813f8f61aa7a5e2cab606f5cc45beee9d1ab9cfe9e77981bc4eed6813ff0782bfba8d25803caf5f46759f9011a422ce37203aa539fb0e07f880811f82380dc0ea971d54c524b819af7170882a496ddfd5cb201139e5906022229cc5411c68c4fbeea00d930afd83aae97d6c2e00af713ed824bb0d40d5f3104e05f9e1b1c73ead69cab81b3321b6ae60b8954d1aec3222d42fe661aab40d01aae0746a1c54e87d830a7d868c14c0c3ad013108bb61dba0425f23157ad7a0426f1a54e83d830abd712af48d6919740c1a065da45fd02ee816f44d850ed32c78b1f50a5c5e605a604e252f86a742c74aad820abd8954e89d4485de29a8d01b05157adb54e88d4485de47c8c0be01a043d627f0e8c994f59000646d8400b236814cd645ccc85a35808cbbd821e33764ec86d30e039821238000983c1d0070129df822d2dd3176ecd86b048cf4153267df10ae8c73e784dcdd4704a6c34794d8d139c2fe7112253bdd47c477c7393e114ad09320807e1daed3d5af879efc7a96f3eb508282a240891204258887b0ea494f144e44e1d3e3440f153f3eab22d0080e2c0271a00ebc81db0487339375d24d98fc368112f42408f8cdfcdad001ffb38143077c1a33ebc409839099bb3bc628e58c7336c30999bb3bc628a59c56b4ac66684529e79c9665514aaf500c859a61c8a2f4baae5028846158a6454d6b865a08c3b22cd3344d24128d6aacb519564d241a8d46b5d69494149595b8b2d20c576a0ae43e8a4345d3011f725f866345d301391249d30133c8b1b0683ae0d796d8d2d20c5ba808a6e661b72b242a82a9f93ef0ecc3de7a0156d034ca69cd5cd7ae428e61997789462c8a229196e3fad1a8d6aaa2b2b2f2625fb4b4f016f53bb5bc781143aa5b89543752dd4aa4eae2426348752b91eacbb645958e718b606afaa783e0678459d591fde42d2a56c201061beaec4abc458da1e1b0412386366383460cadb391038bba0e76d3f927d7753964333f9db7a8736332dea2c66839ae77193264c890f1e2b2bd90d1c242922143c68a0c95141955860c1932ac1df6a7451539ee9286a34a4bc34159142d8bd2eb0a85b0c8298123d3c9344d241a91b65a6934f2eb9bf3eb8bb33336724570e0fc7a8aa623bebc49595789dc0a07d5d87df57749246dce39e79c91934a58b44dc3d10474615192df6d839b14c1d4ccd87d13f89d5f6f895c7c11b94dc3e1c2e2e2e2425a51717149a92e2e2e231791e6e2e222fa7c8456135e4f6018b65a8590b99bee8ce8ad8a324a29e59c34e6902a69ab4016a992b60a4469a653da4abe35e1223a36e9479855aae978f1dbfd7cf4d096311735c3b44cd37044e735d4ed9c8b4a47236fa4e9283d566b4a8a4aa6b2bb6b596b59deaf5c515949a92b2b2b2b2b2edde763eed0d2135bd4f61bfd006c217794a369651c068b52f6c120b70da11158472155303eeeec0c0683e7850afde5294c02632caad39d713decb9e2c38e7e010e397da12ecf109bffb6a0ffe856f218181fa8efffc02a9acb6ba7428e85306ec8113334d46d28cd755d214e0898082ccde544ec8a2604d44370b9013eaa54beff0384d9ce876b2747279e006608511d87e0ffc18f048bba3c4634e13102e719e899798c28f2fc03ab682e9f176743699050ffdaadf5c8dee4be203fdd9a73ce1e40fa918480faca43958a86feb02b1a1a6980eda2626c4ec02ef718027e0d863f783dc6ddf55ed76aa24a0557bf0d1b8925a4af7f1566985cc272c90d5113df92239096e48698edb0e6a2816b9a2eb91fa02aa5033860209039e612904048668b1edbe485d008a161a7216e48c8316e08e6db269936540f6cd0ffa0d92580e53387108c5b9a5097a0351e0678ead8c2d644570784434ce79cbc44d339db43944e6bcad84d59fa60dba925a22f313d72434c8febc91af91cb91fa0aa836bba40703d0361b3840766be87f74268e86a3516777308f52396f0c0ccff68024cd8ff95e0d378acbce5184b517740b0d678e82ebab0a2b58435bbd83106584d8c1d5c4fca11480e08cbc8d36748865a744c664098e384114ac847d89ff5e1f579eeeefdd1b13e4e749e3ecc8139cf0d7516e6d000c360b7dd1e4007080096b1c5c41c643739cb698c0b460807ac94c1682f2297d1565fa4b4b0ac90482b2c2a2d292fea367211bd68305909c32104e38a41dde266277388312d83010075d001005e8c71a50b5eedd410cb8d18edd6a9a5c13aa38cf27478ac01f0589411f317b76daa5a049686722187c7acee31ca3d76f963a1188f61301ecb70784c2b3d2682796cf4f25875792c45e5c5632b242384e8764d4d83b0683514636979b1b9bcc064b484038c1819a55c97c37c2c46060074c828b73426193139749cc78081830e9e27ea6e69a25cc9d307eb254a7e9d36f9756baecba05f8febbdbe1df7920ad96366e6dd1a7b892c2c30d8043ec61d8ba142bf9e1f06c5864f60900ff7c8f8bc7a08b987798a8a7363c91b9c2adc749306a2b381ba09150d1495c49dcb8a3b51c915e28ecdd3573d85610c53d908692bd476d8aae73ed285dc514eebba44dd3577b409186594cbf6a245fa17638c1e9785b4a2925247222dc34217b5a68ccdd0657b11a1b8d374805146bd04524a2963cbee6e29236321616c8b09d8c67cd0ba3c4ed96013bb8d1d40546047a7826893101558d4073c465d6de3afcbad203a15440846411bfec0a26012eb05215913134b00f620cd289803935814dcc1065d498cf0ec70870fc01076e186099d1cb8822bb8cad1c9c9814c6cea42725dd48a31da60008dd30902fdec462876731077b6c646212c9017fa666bc46e418c710b1f5e6d8d659e7da205cc8139f061894f85b21b023e335c434fd153b4142d456a764a650f46faf2ec3cf976e9cb23049b54cb4d8c8d1d543c479f1490e13fef878876542a958a6689e549e2e697c97fbbb2fedb289ea9e02145107bfb91e301c58ae3018513ec314f0a709ea5d0ba83e1c1dfae83bf3b1e5244616f5fc8738fc4b9544a0263299899777e7ddd9aeb323633b31415fa6729017247392d7a85b04c138d6a8aca0a89a5e5c5e6f20253c201284715774a302f2edb8b16183170c8913e402d2ca41515e9f3ec2931bcc4ab9c943a12e53cbbe61c0cbc994f78a565d87cf2ec21ae7b8137d6ea49e8b256cf4ebb1c5ca07737cfce3087dee410b33d05fabd7676a28879f13268a8bb3b230a192d30422a161b8f916b9bafbbdb5bb53376a57427a2a5d0fbe2bb631ff6e40cae9c6d6369b33566bd6263e24ebcd38c96e3c5cb8e49911922272f8a43914e9efdab7dc31e1761ef4602b1c73af86707d30d27ce336d02059c6ef90837f661d48b5fb73806b0e9c6c49938d308a7ba48df1ca16f7ebb72a41b886829347794b3bbbba748fa0db66077776ff4c136e6b3768218d5326363a66d822cea47509a6b66fa4c2dcc9ef9c31e73730d6b62a7dcec6209c03e7b3a3581e60fa3e693a98545cd34f4cc35b4149e7bb5fd844d5945723aab0814cf459c50e4d91a621df1ec968a0fc03e813ad55574179e27d0b3cf2ee693389fcca09a3a9f74eaa2414cf309a3e6b4b49af8f0e266179bba9c7daee1e2d8a986c45d5aa2eefaea2a196c66e60d142ab476680fb08df9fae6d931c82cbfd508d5a7555b830a4ef115573061f25dbb76ed8e81d887512d7d03842382eac7f7593dc699a45ec62821197b7097e1b6512b544abb4d3a95356354cad9147d4b45a8d299350fc0ef27d485428a265e8651b2665139c6944a1fa584129eac223c36405f9c1c8f65f2b383a9f966c763f38407054db8e54141104f0a6c18c2e8df94d06394114a08bb8e56c886bd81f9eeae02b67085169657f5427e39b5a9bddce26c288de5cb7d25b8b82366683e981a98f3b2ebee2b01ccec7cb07cff874a43e7ec3c3082aaa79cc56d9bb89884dd1502a18ea882f964ce18218c30c2d87dd371b06c25fac8c736f2b18b60318bce5138d52b0e6294f4d875d0b77f3e7ae763a4a2c6d8ab0cebdcbd19f45f0d6a79d9b54d149a888cb277988924bd339f08814723f675c9c9a0a1b2cb6efd45e64965df8f912384f0092c37415f684915424d082d6926a1d57ae1094784562c37314a29a58c33c6bc24bd8c9c9a691fde4b89852ae54ca7765e73bad57dfe55071f29cae8f17089220c4478c9012ffe0245812b366c163f9bc529cafe604b922083fd81ab23d88d967cc944f7b667aad8d1a96520dab11e7a755f3fbb192c7c3678985139320517ccc822218e7e5266414aab752413789820433ba0d93779e2156aecc9c44fff26cfb7b396a3f4b2ab3ba39d95543804fcaf7ecf9673763ee6cec71c1f1d0a53c381b9933de9234ca855ec888ca42c31fae541620a1ef4125610c271840b96fc3ca102063d582d543d4868e106259050c5112aec88249a0add8f1c24b193851cb060088e102244e1c208452ce14412de70062d4a8ca28ae562076b984212927c0107490cb0022755f0f8d838610854c82f686f415105b5e2e23981147387992a68cb2f0f1248a05af88bbab2a9a5fed978982f55d276022243707eb526d4af3edc4a9fd5f988792476506059962fb53cd68f22110413542bead2405f199709157add2ac9e597070918bcf6cb8384cd7fd5e312eca49dc418638c31c628a58c524a29a5b48952fab2a744762d658cd13776b721158c3c3ad693394619a19c5ca661cdc1d8c1e480d0caa066f33962fce583a442ff640ec3b5a2a83b292d1a8fc81cf6d803b053bf904eceb38774424a702aa444484708219d277d772e473b720a4c04d207724703ee316477d7efd1f7e848a9d5dddd4c5fba19e6cb6eb718618c1d8574a9f31b630e18f1a7af21a874f69248b0e2d7e3cfd6b07ca78d175a8594b409150a41b11efb1795742ae4d3c3a81010148b0a61a1c4d270f83004d331871801bba009f9119406f3904fa7424dda04c4a850107b582c2ad486f5da878348ac893dc441162c01d8434d3a756a5310a3a02ad486454123d6630f35e1860c39c269161ae083459e610c9e1ddef001d84f9dc26480e1e0d9210ba00ac60e533d166da2105f53559dc29cd724bb55318a3aef7a1273c8824d61ce0e91d894f7b426e46c280d6d244b868e1209506503e3a16adbba723fbd2ff0d17b2484e717ab1b7d98ead92737dcaab23874046c63b06dab75676bc078e8ed52f5452108e1bb83f1b08b3b3b83bda1a8102eef6c8d18f20bbd03207ee30abc5f0cc42fc6185704311c49d927a5cb1ea2f7904e9808cca8ed0cae85c4c669b0be48ec21c19cb3989993c7e96757620f49689b61138fd3c72e86bd2cbc55cf20b260878d03e019bb2dd3dddd0290019826ab0a8f66b10a1d425716a7a800e825540616b3558f7a0edadc9235bbf3ed543d97edd1a1f7882db978e30c86eeee4ed918fc24c25851c181b452fa767797a5bbbb5d5e6c757b718179892ca8557477e39075163c9fd94eaf1203468ac7a87567c42c745c166562aaa8f3ce82c65854e871faf43e9a3116988c2bd3817a9629460108d1e91cac0760ab8c454c49001963b1c52a666294c9f849851e6fe4c31ed0888f8698f50f0d39bdeeeec60630837718c069c76f1533bfbe43372720065ba7a6e51bb54e9e6763666619e7b4837585b0ecb23a7a4b2bc4419a0cd29cea009e4a8844004c9eaaa3d75a57fd05197baa10bde2ee18a59cd3b228bd320e43857e39b6d694b1fddb28ebf1c6d65325576213114118d5a4eeea8ea6b456e6ad67db9e6d67b0144fb04ac657f1df05777682681f205605c96172b786e37219ea2a692bb17b4629a9d6191b34b619ce067b31d0f3d84977ecca94d28e1a819eb6f09fc1a8046c986b9a5a32352302000010006315002028100c098563d1682249e31e14800d829c426048200b43410ea328868118863186180208200019049072ac661c00589d10c6425dcdaae708eb1405c47b0e6e7bdcba49362998e128c153347080dcdad3b1bbc98b01e472f7fb7cff342b092cc7939afcfbf77fce3d95de9d8ade42b9000d1e972897a38b7211ae4b405fb7752fe5a610950b6f2da49241c91323a318ca735969e1dbb07618fee9f13934dfa6228f72ffe4c30e2983a2fa9807d8896cdc386f33f3288f459c7c6adeb791bf46394d9d1d0dc1794f29bb42269ff7daa76789460ec1960d0a277f12e503bf9c10e5fb27a77ec779a71d0f20af31254e9473866c8f2fbcb2b843b06cb2ef78f0c93ddcddec957b381e9a410feb1106731968c133f7ee83baa0732770dd3db0f30a721263222a5c21e4f4bef47c15319f80a6f91a1b09903231370484e8f1f70ed05087dd590be5c61f038f58ebc64638046ecc40d356c0a1df4388ab50928eb0600c1e9a37f8e7f04529225fa8554bc485e426630ceaf5185dec4764b6d43712e25eb73e8af46ed35e174ffbf4f3154c484fede0ca1af0bee49023b8e1c7d7252b2d6ba5dc068b0cc747f3095bb4d34846b9e35903970db2b06877a5b536d0ca3f5e45073e40518670980cc1f6bf2697d0d749680e895dffba11fcbf006094e8093b13601d63631bdd4f8b3836900032fb9c6e0be5b15bbcc6f5a8353545e6ed2f4801ce2c69028736140502886796806eb8401e5b463ee2f6f837cb4bfd1f794520c2cedab20fc6285bfd0829364cbef80f475417aa0780c6d0d56a183a7ca72eb0c721818fc1e7cd2c8a29e6c87d1f5c7bbfd9bea0441e3b9640a382a645564445d66f506aa5e0c9a7158ddb70d6cd1ffba420af25524b51e9f24c3358dff5cad6fbe79874c850fcf553aaebb53885cd8a7a5e98b6928ae03003086222683c0283c55eb81f6f2443d9daca3e9cedd31b0cd3681d73219bd4db141f275cd3347ef71a922eb1d5589775073e78d542eb8df149619461e3eb720e1e079837b6a0dabd68c8495770196b122ab458face99a12ba74f7a8fccf4f5710395760d4643d4a17dd3506e946bc00ffb36fde04b1bbb26456312ba80cbb0121c6a9fe000fe82f27a3c36195d2390437ba1e1871bab809be8205cb90f810a42a860154ebf7b63afb57fc074d3b90afdb8aa65515831d114e768083a8c18f7be417d7bcdd1141952962106dc4665a70d62b425ae257e4ecc34540087b20f7905b1b0a0a0e540e2dfed78b76fc71375aa1b5e1847af86a65db7af175d8b39a1772ef2b019f84b9efde3c72c8c386af7140884060cf1dd39b2bea1eae53f04a87fc11e47e2c87d60887751c21b9d3c8deff38262e4c4b0250f64debeba53799bd00b452c56c56b2bfb3e668a89f05b9929552272d247da5f3c4b5d72bec0b154c67fa3bc50eb6220a7da123ed30c2a9c1412fe618c6acf548c549f37ff9556e5edcdf9b932bfa87bdac12e243dc93ac4bc7f0b49da21a9a541f7665b8fb28b6d6688d012f27f3d2eb81fae449a39477ce90a43fa1e62d4ab3e8deaeafc65159fd27deb8b13f7a7d3f9a067d5b422be33d1e46db3c7958480214c29e917804e21f3b70ee4f7169efd341cfbb9baefdbe7c0b343ef964b1afa19d028a3f5bd746c6b0af2ebdf2b1228514ed43636eef572586d170ef8b63d02274c5e63d4a0b60cd037214dea41a7922420d2a76f11e879b879e46ec7faf7e45fe1512cb48f3f28c464bcc9119b5d16aceb8b4288e07312eaeef7e9ebb1ea1658e6d2874d8563f3ea52c10eedf1fcad7a1b314263633d065d09d8f3cc3e5268443a45ceedc49e5f60f0eacbc1b889f02f3fc40cc80e83a6d80e7f6750bab461dd48ee7ddba3efedcb842b3a3d6b11aa37212f4b5f4c0cb7a0eea077a874c334dcaf9036ddf37e78337386d3fac79111176a7d454522fb0be1dfa7c8649d08c9b78f7d50cf3a334c8f2245f378af83cbf53a148edcd4682a654b60182868d22dbab975ab64d76ed58ae9356fef2427c8ebac39c207602d4740aa7f6636198051746d87428492d7a7eccf21d0e3d0ca41810699f35a01cac3c3b6892522f15943a5e83a6eef0e1fba0070e7ab4f826da7b14ea0d3a168492a1ad7674c07cefd2d7a9e0dbb08996fc554d583162c788035ed5f80a37d66696e3bbeaa868009a1d998a961068236639a9b5615da044fff8a54a0dfb14775007b96e4da10c5593eeaf1f02926f451c4880f28c085ec43f1e969f149f22c246c808a5490bde8c26ef1d580c63cb3137c326e4a2b61a52761f7973b2646524cdc714eec8aec5d8c64f15f750963a434217b8983692ec47d54677723ea1448a76324a4dc1ae21d0dc5696341712ba2e1ba0a10b30280598937a3165730fe47e22655df44978cfea94d09f295898ca044b4aa58ba9a7937bbef49f5da51beddfdc61225bc8d65ae2b18d3047290379959059745916fdf4dbd1be612c1d2486dd04d51132e69ca524b71afc4929f3fb90922dc483f531dedc9c283df66899c8a16ce8f2173ec50789bb02041cad1a28f085d848bbaac5c36db3957f04556eec42a2b4704974231c602d6aa3abae1b116d6b0ee5f9b9065050d4ed109e292b48c7de9dd91b34127f75dac558d861a4b39ec2193eb384e8ce1f55feca528b344c0584d561723441362826c4c7f66cbff9af811c6cc38764bba038371ec8efbf831302683a6b8d79bfd6e6d7432369865abfe7a5a058ed302e0cbfd482381a48d7fa4f77bdeada68b806511a02e21cbc204939fd8a097103d5f081b907d36a7394f1d71e2ff157c3a2359691fda8b7506d38bc480e0141652a05e76f32b2e2d028bdaff3ece47139312229b01d3c49669eead12f12889d612dbf246d3d6c0bc718131dcf6478b499fa4741e603646ef829d2132a4827a6eee5986a4cb148ebb91b116697c286d48896e6d1872c951f40182586aaca0647c750b9f46fb7d50589f41a752e024ed91c257e76fbf1addb93adb0aacab8ee7d9ebd708890c81c27144a0cd627671c384b9dddbfb40315bd7e284eabf1303fa5e38200383bea3f741a9cd24c3b3ff56ce749b085f564c4eeb219d9c02af8552e12ca6692112399a711bd128a578c03600a5a1905ee90472eaa3f872c204a789d6102782b162453729867e83834d9aa7285e13ee4229b2a46d524732d7534a875453ab4d52086f7aa7d1f71dec262a6689bfdee7092e51a6cb229227e1f25b4a749650f23d53da32fbedee972dbe23d59834a9a6f6588aeed1e0852d8c382bd9ab7bd7a32f935be46e449a3e8a906e870fd4684e80e2cb5c43e077cd99b7c8efd6f0015903df19a59633045354f0d7a812844c510e5702598bb4bb3db0997a664ea81c869add1ff3cf6dd4b7f2090a09609a12f20575540b6d3c8fb416644aede814ea828cf7828113b0eedd3a6c83a4faaa90224ddf57e6677556090d65e1359bb7fac34049ce22b9552c6696e80729142236cf44ed0d4bd4de8a3cdae3452a87292dc20eefdae09a973d4885782e4910f4272074f9010c912b1f3a4df21d6ab84b218f9e9f83a291652ad9801123451e868d28605de745699926171fb21498efc894a8cb622923080b66980bc14d5ea7b7c05f0788f89ce5338f64a54e8a96b806837d785d7b2aef6905e092ea0e5ee6cd43396a84625b45faad3640cda693a11a7f86eaad3d57633d28653c6928f678944132e72599da4d28b29561641fbdac86d1c4b4e3974e8e191b9d8950ae2ffb6947cb3ad248bc1a15270cbfea05d2ee35d9c6bb561a233ac74e512a9926bacd35bde6947616a4dcb3c4468e24fd014d544a0b37e16e03c619c080a331b5f4f4bd40e54f0862c1aa39178c46d5528e548b6d53e691ea203d682da3067cc211675f41668adaf356e3e35cd99b9d079a37f14791cc8b79fa97dd3d9e8b2f6003e33e8f56a55ec2101f2aa1114d8f3db8b8225a006a321eb20813e04823f563a2d25ccc9455ee888824d3960a1253907f4a0b59d76b2d6de728e48b6118f1b8bc7b559980223b97a8838cf45ac5e4569967f09801d640a9e32add4c55cb1dea80b2d3145b2d19606728832aa36447c097a040ec181de1d8588eb7a3d9658eb72c391798e28320658417531fe1d6c1c46ca9867bdec4a08f7d7122bf0a7807d812ac7fbff037d2feffffa4e9e356832a3ecf3d259f0c39e5ba35527ca329071261b2e197a4de28a78c8aba2e3cdfc52a1ad942f21f49b606dece5095a9d925c13c8e6b24ab7725192ded1d20ecb5534ccb43513e0a566fbed5972ed1ddd525242e5276f231aeef2a0140d2e2c0389d543ee1b0b2b20c615ebdd093c67fbd78e8e35ef60723e8a557d524cda7f5bd16b5db749da40d13f8fcb3403049f051a43de5e49677a4f4e14fdaf28baa75a099d916ffed826bdb73c4f006634cea89b81fd36c0841187c4aaff9e268fc5fae6172e211d6021b79d768f42858f896c1938b02e3aee47bd4e7a62b135f286875f5917cd39c75423a299049e10a559b8668831de119d2806b4e807b6abfec8ebffad10f7a05037e87c50019deb66fe8455902760b458f7f8e3eb9526eef5deee3b0b432f1318bb33fd67415d759477e681476a00608bc56b35b7c6c53c7d55b5d26e21343bb5f973c9ce56da638f5847b9194cf4f66a1652b1881c530f9187ef05e57a055033a78c3e37c70b0b6b9688545c30d101392daebb82803cce91a4963113ad1711fb164397070d5428cb84050973e584cb4148b9d6b3d8b0de2b64bbb75a23517895a2c155c8b83fd363befc1a81ba4e367e7ed8d16fce8af790c74f106ffa6fefd240e60a19adf9da9949a1f94da0cf103543d3216d5b77bcb9ce8062d114a61736719f21f8ff2f5d8900f02e9f60e2b1cf6cf996a36e095ca71911b6773756d79979f4e72d3db142fd5a911036ec5c8ee119dc4cbd49a6a4234d55fb7c80a34c3f40fe683f2609bb4eb045ebafe7e15120918f147fe9c30a8fc1f4afae082ef95a2dd4c52d4bedf85030aa2068e252063edb3fb3bd8c2fb6e8f16dea6360847bfb36e32fcdc92386961b616ec42af4b2a581a9809741fd16cad03dbd6a67a6ab419824799f4ad982bf999f68f287395e9aaf61d0a584dccd1f1fca7dc2199f9445e31219adcf66ee6a0cb19e83a0d21dff782eb2acb29996d7db8ebdc24dba5b273f2a389658a03a1a46f1e2abcc10335d1bbea0fc28fccbcb52e155199b4f47e0aeaa19166c15893d98eab5403a4f164db2073079f6f427a5cc5f0ece0a12fdaa18b1bef738d2d418363a0efd2aeacb767a4a6c78a1720dc8606ed2773f7810c8bd13fff0d777cc134aa405fff1fb7f8321bb276876fdbc1247c336e95ff67ddf542d6ac0539e6e010325bf42f084d45abcc411ebb353c61e2f275cb685e793cefe2b6034b0239e4f1af02eaf8974a15bd1e2abd87582a1e4ea1021f2ec52d079a0712e5a0d970d7b817586d747ff10e71c8ecdb10a553c08f6de9b078dff8d3db5b1186c638b2e850d29785a34519f8805db246abfb21fa8e99e4f2eb58954bb6cf0a7324513ba2f0c1702da68cfb0d6273b17034f26ee3cc75bc64df9179fddae09200af61401c7b22b7ab0d3ff17147d3d52d0c8b095647252919a36c76f180ca42f96712a4786090ef2d69d27e9842025794596130ac4f195006b2f679211a17a4761798698ccbd278363c88594cbbbbd0126b7570640fe9826ba3a57b27b692404fcd9750666e9be2eaa00b4119588bbadf48997cfe4f9820ef301d5b5cf240b2f4171250a3a7b6315adb436f50b555fa970288647be361256728ae7789f0c58da1dcb3c49abb21828962f93845c56738a9af27bec54f2c66ec085948f710a33aa8cf2e3a7cf80432ae40b22df1cef484e44ffebd328cbe4436198778146cf2cf509f63e4d9f5927eb3a82b23af32a3faa2143ede000b6740df600f7a81d4e80ec1f828248494dc46692974d9f26a4aaa48af45f1997b520b3be484093c4d99d2a5be764c1a2a5ab1defb5f1d2ea1631baf99e83ea87a235910647b100048e35362840f5611680ba0db09b6e454cc9a9eeda8674f57364fd30916bc25ae9d5d0c0e02f39f804e10ee739aede8d8ccf96cf2e66fda20c83634d54df827db8c7dd846ae3c5ba386dfaa82487dca4189dac645d51392865ed8a0270624bac49acb59f47e53dde270b5be93108c5591e99484800322af2763b4c6909a4e76a774f2adf019515602d973f96f8572be340331f4db3eacf161f9d67ef8a03746e480ac0dcab8808a03a1d275534f862a25e098343e15e000639661e75ad73fd5283e2a376b6bde380d7132239cba3a464c7242e431a4413000b4fb73f496296eaa560e4f86807c4f7857ac8d7291dbc43f979d6c89b5e742b657067ed79e608274331336b5a471043577f9e875e20e2455a6f51307f91867cfbcdf411a3911459246211de0748ee1f5b007a7210573b031879dee1f86a3e489d0718769cc2210f3209eaa07de9657d678ab4cc2522506b32ed541d7dd250430d164825a888098d0d2fbe84bf5888475f3ec1987100c0531f15c06511c3c4fff2eb9ba02c2ef46c7595aab56ac514c67ccd7f5f6bb5e21b3f3e5046728f534791d2e818f83e1a693998265ef838097e9c4c005164ff7ef7dec3b986de31bc6258f6d0765301224077f9ec78c8b2df3136b8db103dadd1d641d7896e7635d2bb3f532cb7c92a5e62de6dd3abfdc8f869faa9980ac936e0e48c5c11ae2009cc6d374d30dcddc9a69021409b0810564fc8143a84e401a9a6730923acc79621ca02bf5d081d46c939961daea9b7c7a7a63e114fc33800b717446aaff0f0493a503aee4f297593fd6abe1396c62e41892b837087ad0b348d743150bbf0f0f0dc6f579f4b3fe0f7e7863dd4aea454a13b61c2e04ef49ba9185cc4807053aabaf6d7c45897853a428b681b0820f4066071bdfc7f6cbe2ea983a9818d541738759f192d501f79a7ed9856c8a28dbde1f856cfb0b4a4a9944380828304c5d27eaed24f6679c25a203edcd6760710ac0fa02c681c3817e16653fc381008dcdd577ea15c281480c9f60cb3214e39e62a8bfca0a044438c14c948842f63d7d64e3fb3d6080dae70612dec5810510209f3a1ec9371b05950975a6db9d8dba70cd1a027f7347273e3dfb1c0c9b3d90e1c2056f9b256e1906892d866d91c0318f75bc7b26efaa614284ddd7ec18e6a551d7bee5ca58d05c5b3c6386d618bc06900f50c8718a847a1e46aac4820324e29d2a4ebd9b4128ca972cd4da577124155815e304d2c1f64150a0f0ee307a2570726b6c21835fd23daaa0c82940b534228fab46305a95875c7f7239e86d8c2fc32317c10d7b04e4c445f9b57bdd17bdbea43766315e36fd7b6c06d9b9f89720c5755018a937b5a113e807cdcedc8ee7341aff151dafd07b5186c2dd5bcf7f2e03df56acd70aec64dea5b3cea377fd1cf77e49387dba457a5c51b9515d8d1f8ec5b4aba6aef6124070b5dc03b57b3bb577c3c918c035b0f90836ec12efa6476561f719b67686d8cdb93f2666b159864b70538274a1a1014353274d7e1a1d1a98942618ec8903a510a4d7d8a72f50387a120ee00052a559202cc6c28679c91e274ce3f20d3fc2f901f69133003f6739ced6c400ca60ff38d9d9469f5b584105e6d6a52cf698cc774eaa68147ee5261fd64403607a3c55b752f3a35ee74b1654ba2bd439262e33a7441190d592f7ccdba2996a2d6a10af35ec1cfb09313a7987490912dfc4f21c0bda556ea291e4634481ec6eacb9ec95cc36ff013fa2158e479c5dec99789ed69b3741c6af3c71785df5cf26912a2fbf6b43cd5edc892fd56304e512655228e2f7297d0990930d73b82f01c638f10ea48d088d08e2a11e6df19c7f5744158440eaa0efbd7c03d3e3090340207df45b6123b07b090b48f77956a4656694528981aeac8ad9996c8cfd174db4ffda1a7620d254d78f1d96a8736494fbc59dd6022d192cfcdbaadda3ba084d79618f5d09ff72e1931b7ffbfe810a2121395f30a19217a91f92d238c2c40c907f2e858b260a4588a4fa4bcf85d66385a7ee40e0cc416cdee43201056951aedc5f30264124c4ff6e552b8880df495ed530e1a6640d8fcc4d5aedb06b6a1d48ac4541ce2f94fd368d27d8db5df66a62487b75fc18e22071ed9338fcfe26be11ded7f21db94a8205a184cbef9edf3d4606a90962e1d4962b4fb39d7024efbf9eaa171c5c682cde7cef7abcb94777d4249da03c76df5f0465ab108b758c3a16acb42ed887e90580ba669d4a91176aa4905a20e6b810d98745f58816bc32e973628ed4a09e55de22200e9aec10bf3d894a969087635dd386463c25f32d775241e11fec1caa9281a6b752c013e33260ddaf2d5c0ec89a8c90853ae08cdd43062301446c52dfbcf2b87a933606d8f7988a60a4ed779508c18d5c3cc8d3bfa834ba4406e84d27fb5bd11587cc064d314b6bfa8a3d6ba8f336a68550551ee6ec5a9f431fc2b1df24bf7fc1a41299c670134f8afca8e8780e65f42fb03c32c7006fba447a9f8b700a04d7705e0180445a8528880ea374371203ee48a209ced2b491941ac63a78c460e57285fcada81cab8f6462b932b1d4d557a84e11236239ae23059e228a4310eb76a4831b58d645219847d173a2bd2e845eda3a730223327da84eef255a4c09523e67883b3ed83b5f08fd51a18e48cf41fccbb4b0286a305d7e56281056ee251a4efb412acd466bae291a7da44cc3e12f6e52b89b0722def896e38ba7bcf33eafea30cadfff658bd9c58e271b92bc6cc53e67589cbd8001a118288bea5a5137749776c52b439a39793d1443f8ca44bfd2e5afa4fe69de4362991e67a2c31283b9854c89c13c1deb549f0c3e3569a2b550ca049885b6916cc3f450fcf984f5f13f31167da9ff52882f5fbe1e4d8a98f6175546f9407ef54e30810bba045feb645c52a0f9709df4476c3f0189c0b48eddffe0c69baa31ddb72b84c0c27e0f70228633d57384751bad8d39e60f81cd2ea1a0c05b60196c630e8687c87a5412e860a2750e630245d6d075884ff303aacd4c9fceb00936a94e6853840112f885cea89c82a0c4ac31bc499217e8db592634b04740dff15e53410448575e2812ba179f7c4f3a43088e221c2381b05dc2ab84d6aac56ecfe181a4bca9b833a1eeed82218863da583474f928a7e1b7b6c68350f86b81ddbdcca2ede75c8bdc666270509a645246e904540c17416f8536fbb31bb2c08f5ea5879cb95f3b0be9bf107654158c9b96312c69a99f3ac256f184534e4e888c5ce7ac7f302d9480c71529de1f7835510ae317a8539e41b128e5bf193af84ce6a9fba92a54d27dd8fe985cd7588ac40c241f73f8aa4aaa72baded7d357c03e975df47c72a3cb5baa94156c62e97a42380a8393eb1f9a9af050221a95b8ea860e632f52714c9fec96b9d2b298f6987ae2e96bf684423f6bee8482c07e7a6d91b5d71c9813b2b767c4c81c2c52dabcc5b02df0476c3bf6ed154c6cd4199b444f8c0d8d0e58152c15c639d2e58ceacc2ff966e9ed1e47fbc13e952ef9b2b9037eccb71bf24b943d7bf7ba301a0e7278580278a9abef82eb3d7a0933ca0f160263a7e7f956cf53861721dbb91ee9806294df63c2cf43eee761dd86ba83410aaadf47364cc00698f31c45fe070475aa18b5abc816a7702f7ce13ee0234b6cf686d356c4c8ccec8cbdfabe12cf1607c1635f17e54525286d24ca4709b375222b0c318340c69ae64a3d2e62f8fe995ff475c80d9a4ead8d5740aef6c7eaa18f1169471e3e0e27ec242dbd640c646ab1d5bb414e73bdbb9501ced0e623d8831de1c8d03c2a8d8fefa0d3077381e69c5994053ba79a07c9b0646277e02849c2a485797e5f459ceca82b0a5c1ba42fd16e150fd884aa20299e594a5310f79a22cec4117b3ff83801ea29e6e619d33b1dfe8477f4cf7126af7e6cbbdebd13aff0804fde20edfd131301e280634519397c4fc617033664e881aedb8af36cb786dcc017fcc25521481057a97981efd13f9080023e9696f1bc3837067ca8efe96ccbc1b7009ffb1588647616bdbf2e15a845ba0148ce849f04b75d90598cb5b23d95b3c2a8b5998b1b3fb461247c64272f2cb11d16ab22d28d3bbe9b9993a7a132ce4556cd64c85faa79803bdb3c824ca2fd04cd0c697d0701adaf76ad62de7860fff4a9ec8c64d74378aee215c649c6a27980c4eddbf5a2088a063bb4ad32aa4945d5489760eb60170327166ae455b0e44503fa91a45c96b21b70f2deb64f68dcb2043bfa124f96dd049de4e76b6d640483b4db48dabd7d5d97937702238917488cc5948c55d31c8b3923ab364a76a353560db0ec362e5b5ec70c2b2015fa82a2abd5d579dc397abef93c4356e76102ecc4d45d750bcc6b35dfdd8f320dadfe839a74e0a78931076b67a13f0512958c15fc01c519d47318266743335f7e0b63a14b136d73f156ec6bfb840778066338e1542e098f8e1aa5ddd29fbe2b80165d1bf73f7667c5a2f3cc2254c20267dfe2fcd12c7d560bd4aa3d67d455db3402fc3a966a7138adeb39b32c1dfa0c4a1edd8a2fe4a15063a841ca07034c0799208a03a17ff0349a76817263a2e6a220a08f2a04545b279cd070348202c78d4e49f62c0dc689187ac5cebe4279faa59c0fcb914fe7c084ad79d48793beab7ef6e5cb3a53afba0ad211518da4bfe64861c2b6929ac3f3c528b6756c9bba4ccfae81f5c8e2b1f7f1c78e0d05a415f1aa90a28032a5b9fc5420854555420b2c86198e52d8e41f32ac9a08c98e4fe450847712831c852e3ba7b5134a180c88810e8c2ad4aff1a9e0c8c54e7d8c70207417d4e514d80aad13b3c5f1c6c590499d0b6fc3ff42396b178a2bafdc5dd951dd76c08997397cba19e49c2e1ee42cffd0e22cef1420755d23ee04c77a42604b6d4623c4e5ff66b11abd7c046600e7f6d488d4933b2bf65104e53062893965b31a656c9b965ec67776c17308460b2a52807372627ac5337da2da2e3b066850ea9f2d3343b9bd983a39723c9fd3f67810a02eb1c0e6a305daf4f2bc879be130053823a14dc1aa94c3f1fd0c9693470c7740219b8aada8c783f31d5ca6cf00e688426fd35decb6d5748ddce767c4bf41b5556efb4998741238cfe0bc2e2073843909a59b7a1acc15c8b43b602db055131425407190a7e90f6360b5267c74bb7529f4402756b468f371a6608d67c62b8c2d178728af5f1660acacfa84f5da76738c07677a43089b825d891d40fdba668f118db59aab958413745ff29030fd772e75dd7224b66021bb441062d471bab6a4767a72125237b2a8e448db3ed4aa64c1a9900adc99cf3657d98e3ca2350da6501053cf9787d23b521f0e886724c654944cbdc3b18f7fe088b53b1be2b69402dbf677d99482e005f807dc185bcfc25240eb53aabdfe2d7979ffe04c6b836d80cc9b26f35f6b5c6837132d8a4e610158c4218a3553c96872b45ece094a1f5c030a63db3eac41e0b200e122c6c920aadd462640b70ae5c0ade2123bf39b86dcab9a7d53487ee0473b12fe6667063018c567aedb24f335f2d92eb48c46eea2b50c14be236f5ab6c26c135b149835a9a53e5d9e4075d739a6edbb33e30d69cb16dc2dffa89eaebc06913025446739e0636f790a2a737cf142d42aa05c4a30184ede4f017097c2f0dd67e89983fee99c9d945b9dce5c9e196f77c9367f7e80015f7c2e204d7c85f7ba113816b1e06d9f60b178e38e68242c90b90f1f1bc4d6582b51e8c52ceb24993f8b931a523c754f1c4a305202814e1ef2c2b70a2ffe7754bc5d0aec25680df0efb8e3358cab12ee10a38da67f0e7eebcfb4dab267622506bdaaa235002d31fc670a60b2c2bfaa2a659e1cf19c201914080efc8e4df95f6bf46155d2fd1cf29aba20f000261b68bcb7760560faf0a6c58624e5e439b09bb2597fec372c32d94d41b9b7143895f2f523b5bc4dcdbdb163ad3eabd86d82abb6fbb5c9a63627d60548526baa24ac1f25499e00d44181b78b763930bc23776842e86f6d3973d35f44ffe469f916fadcd0f93324b7156ec6d7aa8a7df3c623224e84eb9bdbb9ddae15ce02c15440698a3dbe88a6e23569093d8e91369ee054cb5b2f4848fba616a6bad8504595634e03fa28cf9d2ab321037f112f07927beac82e32b0346a57660d6287b390f813f13a94728991f8991fc7289d93664786fe22de32a820cd5f1f936cd7144730442c9198555eb39a5fd3566c5e2c25963b41b1ec17a1c8aa22e93b0b9118fc1c053cfc8fa3083307532ad9d153a9708d01cd0c7aa705fb9002e73c01ed1a4d80c65f2db105bd1d05967d0c7e8114f2382f58f960ece09b7990d9800bbf390f1afaa5c93b61af69e72b51aa39d943c8f3aa51adc4cf1f440153099a1fa8a2061649332e5bca385294cc2a18eadbf54b75a92df92cb68b1ae420810c478f2558aee4c36b9f536429a3e3cebd8c45d4cc05278d2dd86b68a9bb92cd295b1cb6ac2871482f1b9161173591708dc145e6e9714ce3f301e489462add1023fdd4ba567046b0473f87612bb0450ba8c3b47be1d0decedf52d0258e659c605efc931ec667bc41ba5a814e72c4f710c19ada2afe7c561c925392c123ebdfccc2942f2b4677a478406a715cf80abc8d06a42b9d6a5b3982caf4ff85dae66dfd284c39c3451c1ca97276e37fb834c609da5a46ade81d5e9b24ea28c72faef52042a30849d702770b169cedb34917276f9d41b467370b4c6bcbb4db304fed908abab54becd4e31ecafaa575199134d2c92ea1ef11dd49c8940da0057e861f343133811d8ab8245e19bb53ae66a5cef94fbabb3f3cf7d4c0b6be74518c56a35f34f571a94e7ca6e3727c57f5a22375ca645050aff94df885fbedc8d95c6defb205f33cee4ea0ac1ca8084e60bab3992d5045da0a251d1c20b70b67fedd40170e5bad480e7761457915a50e98cfd0d4a706860abffed3c50d9d41e8be72e8eb1077d00f81075e84b652592c07cbb68e45d79d0a4b82691cde467a62017cb688e71686f763e9a528da2783e63413d8f2b3ce27ee35ae612ac54e13cb8c0601945feb6b708f2cfeb26a8294b4ea93aa2655548860485ac37fa18b676830b135c8dde8f0a4960e759f213e86a7c14faee0855f85b242456db0c9a622444ff82ef9f0416b97950a7050a56678d2a72e4582d157df1fc9c5830f50018281fc696d30568b66c09700a60613ea63c8a9ef36e2b8748aff1b1dc5f4a09d72e090a02abc4ddff588b6ecc122f5a94bf32ace89235f122223ab35bf5ced67374166ce65aac03bfc4c7ebc2857892656fdc9af0ec376dea178fef06f1fd85973540ddf300f17ac4773d2ef009aa7b609aff318c061ed267ba61b736f0aab6afbab22ce343b94a20979de792c83bd6f2f785b8679684a8ef7fa18f4df7f47f5c61e0c2ef0fff59274f7a8f1117df5152ac361c824cca863696eab759265629b31a367e82335a6303b38856ede0b7fa9ac66f06b0823a46268b742366c146bda9859461f841cdbb00273a343a579fdbcc9c261ec42e4c04229528a8c7cdb33f05b1ad98dc98a24244de257319608872ce3f1eca0d731019c25556262e80bc1abeac8f4d54641d3794c6922740e04d038f196da8d8e1585083eece42581f3055ed6e1355fc88eeb4ab13db106eb29b82ff50e51f55af017a2c06302cf205aa6fd46cd228e4c4d3798fd3317ab01ddf9ed45e498438cfa2c17a66ddafd07cedb545c9dc4e5314c83a3ad89e4a3d54e6d86b468a69368bb3b92accb50e4daf76115d8b47d203512041fbc73ff92521058e6c79bffe09d48de104cf19d952d446136a6670005804b0261a5e757398c30dd376a1cecb000756547218524c3202f456c0cb07c4672169fdb2962600e2e548181e4c99fecdad3414624d2e97b5394584074dccb0c24cff79333d532a890df9fe7a56054d17c3d3f7781918479fa74ee554611946f80aaa3e983e784021034970c98ea0609d96b6335deb35e3372499e9e9ca98851d2bcfa38ef2583c8f2f4ed99ea0c2dc9abd733ad30b898575ee7b4ca20f13c3f3857953254bb588a9fb830179f4a067dfafbc4bcb05a23112cde5e122f6c486ed6843ab7034411b8883ab0a60bbf99ffad39349812519bdf832179a9c8ce89c07b5c81903c2adb18b29b5b52e6eed4ab69ce95e81e8ae2b625c8ea5d81c65c45dabdcd1b58e8b58a6fa92dad5be4067759fef6fd1ca526b45864b5674df153f421e521f6d3fb7d90cc7b4672f5639d89d0f212b16525a2d54934cb91682aea7d040ed988bb74116bf6ff1321621edcbb699c790879b710e2e220cc3f65ff2155f6a124fcc6f720f69907735dc935c39cc0ae16a1627b659649c0127002f968ae5f087583e7b330b321da80e0ffec64dd55213db3d11c3e2d9ffd063f0547cb1e6c4e203c0b2d7a9c3bf7ffdced007e90ed7beffb8379d8b92a09767884cd3307e0bca0b13b21809fd328a0ad7081e9cf0951fa73ef3e8b9ea7c6845b1632bb6fb80906fe4488af4cdb276e26d71a1cbfabb74f9f27582a12cc92148f2f5c485dacdf5e5cd1bcd57ebac32f948963487b77502c9de0b9bd3204925b3f64f5081c6a1929b11252589c136affc08517a3d3a1eeecc68d7ee04a7abbdbcadbd7f11de23808ac609f4d03531489c0a31f7ebf66e8b95c3f254ac1a3a842ad28c8dec6a932d3a64994e449b2e5ef69f3acdb45d9a3436a8bcf9000a5150363b7cdd4eb7602c6fbc3a0fe8a2af74f585545a32c550e2c19ae97e63e6849fe24a182895cbdfa41700005a1bbc0428956b48f1035aefa0a82e0963e4910dcdaa7c40247fc9250e28aaf262a8ef0134d6ca6b430207b50b33a086d8a068cd3608968d0dec514734cf73698c66054e1c20ea112e054fb058359823ad4036bdd0d3aa088bb13af39e15c8d28680829d9c59cc841670be00932401da3e496696ebbab461443397e03d0fc0f5d2bbab05ff9fb83ccd1434f3a67fef41d496814094e722feaf36efb3beb189687f6b91c3bf9a70d28f4f34cdd687dca162055f5cab5eb488222dd9b034f7747da257d7b998d223186fcdce4c823422eac438bd42aab1f55ce7b3968871737e58e8848f3c64e66209a7ccddf7d4a001b1c97b46e26ea614bd9c75bd6d34fabd35f1a3cb8f99ab642949bbe61ad68849a9eb987ea8c3431e857c4b348d2229f1b8d9ccce14b9933bd605a6d2ba762b9046468da992b59348670b334db1d92a654647b2bd9cef4997733dd4cdb0c370caa691f708a31915c7c6acce77698a47f91f5c61cd92243012859eb622141621e30666738dbb9897089fef9644a3801ffd30f7e4cf19840d594a3b6c0148882e8df86591c43470e87355abbc98d72068e11aaeca9ebf67806b126d28eacaba012ff632f9e362eb5a605f0777c331a4297f4bd8e8d96339fa7dfc00e18234b4b41feddd510f07ce787b9982e180cc9e42a129632625092640ce4afa09b65fc88c31241d55b93404772118a4a2462bd818d0cd181d043ae7044d893b480653515aa5ca89a4220893f65d621241db1a0c45ceced8021044ba73850696905216beb7d6f67961f981756c06e9c600fc765fb6cc95d51494449d249d92830d806e03ebd97d580bb189a108accbbb88b4cf579f4c4c5d47f4203c3ee97f0a33995fa2345999b5d47d7948bb8ff1903de90e34b914b60c2e4685c0c8a027756d5d01fde0b4d4bc384ca9e78a8c22eb1450f782d75cbe1feee32cc84ecb87288582f49f94d8107e88fcf692a1d42f170ad5d40a904d9cd4e51d79523fbe7470dccf5ded78012dc0f7d4fb3f8b3184095c79b67205a6a7edfad1aa6101838562185472039daf363c60c4e6aeaaa7eab0ce8e8364b79ec4da507da1eeb311a9fb8e3d27da4d59437386285393f3882d9d61244fda16bf593cb6f30dd5b7f88112b2f8c1d3ce61c88eb3b4ded8071f2a694e55213041214f3e1f004f670f89c75e2d9a5276db1ebbae687e2f278030ff963948b8514e7e7bf8281f8c9f1bd2af96f3c3ee7e493f4fb06e5add59dad0982b1de67cde647afab6f92133d9948954ed862b1b03f9f2b8a709b363163ccb6f5e0755dd58e7f151ced2064df7856cafc8b4f983dc2a64ca662e05823521787266d2b1e8ee1ce272e9e19100b889bbc2db7cd2c179c0be5ed38e239c2a56ace94df2a093969d7666e4c99e658fc83b215f8c940d762a46ef9ddd19f5bc125c016d151226b6dfd049d4efb820b6ee13a5c9f037716da49c00b1fa1b2e5e88c3b5a0021a492b8f0065abfe31c25368bd1ba143aa21b2b410284c7bb31e2b3ebe773b422de6b4b89b9868b870bb228e49b4ddd886d1ff4102916bdcb636abdbd0669ae910b341f9f64c22305e0a7ecdacc7d12747d9201f58c1a224717b0b6d19deff943de539a42397fd6688de158c5c2633249700500714d43311a104f1ffccdf64dad40a2647c02a25d45950bbf863ccb6a10c0865dc21405a562933e4c88e4e99827c2222c5f573634d30c86c30737979b303f2efd3b48529dd2c912a287da614be92343a724e33ef3d65be7f03f4b95e9b3ed70c2802bb9444109a8d11971bf1fe020098da5e75012b47fa2eb08b52134cebd692f12db817b1120d10c4671105f42499c33c3801172151e1e9abe615ff765c123959de3aa9ea86945911f440e5ef935ef142de6db5c917b1a1c1d6d9619790a099fade274d7841d6700897a0484083f7d1c0fa480ddbcdc3bcae34b528a62965b7d78cbc206459e90d8914194535bcabc15f0f6702542522ab0066c580967fc2ac59bb33ea52ddab545cbd32ac1ffcc5890a1ab0cddd023de638ed61c5006a7d9777ac5f7917a0940b84059d072018172589db7f105096f4597ccdeaea66c267c583d28ed7d1fb21895f18a49c508c8de1e70695d80762ec20b2845ee494a7fcf0ca67459b86f076ae90194344dc966c92b990a2d72c4fbc2a33c4a619a2f9259a726814f19e0f869b5b4f302e5d3548579e9d002d172af5f067d65652c704d86336484ee3a2f9eafe9f53e7bce998824c7a68de40367f35dae88a9a937aedc99ca9d8c01aaf4a440145f9544ffa0a313cfc89144d179ce7e6ba5321c9b190833649fdb8f911338a03a90a2a45035d4c813e2ce0633393b5403daada318e374428284c39437ab48473e273bfdc0b1e11900923498c94737ba3c8a560cc9e9d2cb8ca883ef5e483f6a8801feeec56ee69de26f080cc6630e4d6570661bfc566e05df0ee211331919e63a3fbe24c960476128dd5906dbf5eed1d6e6ee24060c2fadcd3396c45bcfabb2659d45adb4e5a90a8585ba40a38963a0477a52a33b0fc74a54a8aa30d3778b491111fcf35da47d36e6feaaf8f1906d3c4a9fceb5195d9569d19057108aadcdd536a8c3bd9e38b2d58b187f2487fe4a4ee7fa86b8a3c6582c1a27ffa750cea72907d2d16c3c89ca4911454683d76c9166ec5783624163166f84a37a951ed3c8a5fc16c3db888dc497d2799709869fb3b37f22fffb2766966c86934f3e14185003748528ec3a02f850bd3eb34c2ed574694e97d7bc248917a943840be3d7952349e18b739e1bf7c930f8ce94f78e03035846c8671dbe3434e935728146512a4dbf339bf777325226db55245c309b6b9668b987760f5b7d67aefe8663c18a912961c489f3569d8622bdbacc4324e96eeece3ac16f951e408a94f4ac44e1f322b807f1a2bc3e34d8aaa3892e84ddd1411c1131186274a30fefc59f79d0c0930e2388d61d1d525693b49fd4171ae83d6317b6d45410d909af32d4abf8b07b44b892bfc7862b9cf2b9519fcdfcbc491d1fecea42ee0827161d46adc710aa471196042902736826ccc1ce61e98d9074ae143cc40126fae351b8cd0fec52020d157196c6064d8b0d307a4100a2fcec0eeaa1d16b30d23536d1551274d8886e2ddea0e37eefb6c5e1d707b2eadcabb37ad8bf310e6d61879a4c90a4e1a12b8d578d1f3e8ee4d69a1459a2c27e995929731bacba2f2f9bf8b6387ca1b34c781602f5953bc9fc46370fd0b1de75e3e13b7b361aa78680d40029660b31bae939cdda22e520b384d82a38593b98588be28d3cff88e9aaab397e28f56571a636a9f74b1b087c8c50e5e39c29c7168da200fd323b99fde9f326f5c9494e6b586478d9a25b20922ba06a456d4761701d5539621a0f93e13873834edb48558b54c539f68eebcf5c75b3f1abd82687e31b5445ea7b463fa3fb1396f0e24bc03d4f858e44de19e8f8403e90c0921f085e85be2df1c2a6a9080e0ad629f742b4222c01aeb8c82e359b51d925a6ca849c7e0f93c9bda9f4f6e64c7ecfce9fdc330d65ed0404e17c02d6e69c4585277c53dbbd18ca15de3e49f00e59350f0d8c3264034da0c91db77499d3eba79c937c3a080f464fa55e1b6d936e494e9a207a6a89456eaac874ea869ae74592c0c22196792d2db3bdd5a505d569dfe089bd0853ab6932dd234f37eaa6de9a3751dda385cc73aa000fc837751ccb529fe85140c8208e9f0ee5432f527182d5abdefb9c69c9fba3a7fdd855419e90ffaa09935c94d86a7099999a0138268271cc1370364f101ecc694da950ee0aee6eb114b98df8c699ddcf87834cf1e0f8d9611e17e8d530add017f435030deda0b2c43633bcd0ec07125280c0d866bb6f021b6cf0513f5dae948320b6919e19fa13ad25d5012c92f23cbf0aa695523329cc1827da676a88c6fa82c5f56919958bc46f5094ac233887940ce6cf89cc6857de0cf5663535a7cb820cb933900021a7eeddb946bd76c715cb669ae2e85796cde97287db0406a829de77ef10dbb102cc23107b6e278726f45d7a3f1db15489caa2849e1def2437a23be3b7a9864a871fe5a4bd08c36e5932b9f1ba008982edd40c6718a63c0c52706d78aad8633830ded6d9d52aca08e397e1f875a1e1c211fc224644d21910724d3e4621b6f8e0c4a6c6a48381d00eaf29d15bd404b6d76303c4642a7455dab4bc9062597004e3cfa31e46f9872cff010ef0e105362b19d9967db73ace1557794fa5b1900aff228073a748358b43686ef530c8af87a12d9d8b689752e5485b82b05bd19e283a6de7b96186af3ac26c6f66f932b8707da2e5fe902e074471a9b146a6e426b0ad0156f22705d65804a792f737a3f603f0de0bfcac0d226caebc3edf735ca85466fbf6f6345893f0892c22e282b74880469fd2a1942b99b1319e2aeb878b6be94f03e9092f2174c008881e4542c99182147095a6e3f916b0bccf80825039daab99600088023ab62f43db060f63b3cff7ba16a06a6dd1d9c7372494dd24037368c1cd39506ec69fb552d95a4b804a85cbcc140c6e5dcc7e06b13b2def1dff80fc9db841268b6392a45fd48ed3ca3151e6900ca38e89f281c0e80ac30daff0c365828d29c11fb8bed93f169d3264a3616bafdea69d61cb9e94e6406d90551a102ce694a91b0f5016793b7c623a4fab7ccd2eafe66be8dc8a98d6610edf0da43efcb2511a912628f2700a9dd6a23170607f4cf1a7913d38948e4aec1b714f71505a7fedcf51b4cae35451a6278f5694350761dcca33c538b71b9c5b6d12101896e79dabfdd59c0e70236eb7ef39090e083c17f2098661b0564edab274af865dc6a7a3a8f37c311ff98e8f08b895a3c209f3a131745bef41f2deb48a04843b3a00b837bdff69d4a9d61f49d35b612762e557461227f6444ce462492904905d9b4f59172af45ed252e8eac599c6382079cc15efaee64e32e2ea446085d37228810b70e7c94fce3238ff0b96c1fb2ff19903b4cde9465e8177369b99d9b941f9e85fa790ea739e949404f32b88d2b16c1c6a74fb36825d08e3341b522af2f633c50a6733f710fed10a234bb6caf9d43a68315d8bf1eb95ff32d5774818602b4f90b2f88c3330a6e4a81a27a7c6661922b439465e3c2a5d0889823f45850d4f1b0750a52708616fccabc73562d273e663a6fcb61763a3fddea280861e2480d382af889e4cdb494ff43e59bb3eaf5d0a061bd9194d9c21db5c66209312f27e91529adf8c7175fd72709839f25db2de001111b3fd733c9367b36c38b72dd91ebea41b4b2989cb28c893b7e96554c2cbb235cd8a124af840d659f5547f9212e0eccd06d9823b93ce0454d7510083710bcb1a3b0bad348986212a4baacbd7f9287d3c80f8f7a4fb9d4c1327a8e028ccb8ae6d99ec9ec8c406fb661f4505b56493d4a49456cc7e9d786cccb9e5ff5e49a6d786c60afcdd0e4741595ac1033c5dae5e2dcf6bcec1906054071e725c5cde574c083697bf2dd1813a92f03ad2e1ba28e1a92329474f3ad29310392297225c1bc5cd718e7d9c46bbf0e4b3d47c525dc26406bf1150d281e7187108ced5a80668e00fe2984cf14a1816c0d18aa66548b19239c33b99aee7f8364f4629c4aa28c2bb33029ddfaa714f70d980c512228389eadbae0dda70664ba862e92633688290a35021c25590f1c0496d6a888efd0283cce41539b2048dbe2d85c23e125d5b391b6ea2520559c144636fc49daf72943c4f282f098a4e6080b6d3fc722ba5c293ebd95c0e1bd0e663a0fa21f2c9b88721f5b56b1b158d589143382d8b0800dbce390a9791cba03d1c00eba12caf57e2654d39eda6d0628fae22b4d7d18dd790087ca0a8af8a8075c30d0065e03eb17ee9a1619e512d06252d0a504a15d0d52c028614d8f575fb4f3cad57a924827f89758b067d794d07f9b36a93d6312a3f38754941d7d058e5b816e8703857315d4017236b5551d77c24a39436553f79126984b30f70904054af8aa25708896a83b95332448f5e1df6582f27b0e72f5f50c76e836e0f74844d01595f73e6fc372fd9a404efbf4850df67fa33be3e96fc90b0c373a2389185bf14f504c50543c8890cd8d24281c12494bd75c932cc5671998318cf8e9228a470d2aadd9110e8ea36c5cada112fca7dcbaec5630110771c3b801b322c0f576fa030f486c8f6e11f253d670c91a4d2c98f376b488da2d4dd6af6a9d004278df241e9c90a3adc6208e7414591c33fdcf3513650dc1e449a991897b5efbf9662d011d2ce8f645585c5d2cc6f320ada5e6266753b43f871192a28d43032bc644e2a8c8dca85a9f39d64385e9c445071462aa59ceed09987b29bace452c27733026cc3e3d81e69d44047ece0f09108244a00919219026f39d8fd73ff0d87956813b414fb8a74acd796355094030d1d44d05bc801720e46398d1a1803fcac3c87a53078db22580dfcfebd4b725ee847430e7e632609ffe862e74515217f01041a1301f1bb0fb64b1c69924b2d76285c05d48a4524c6ef29c15b910e2c0692b5174334425837b5a6e62d0cf054db832445d4867b3c37b137fafdf3b1e02463e5ccde20488b3db45a99816895c2cc3005c33fcb87867adb40cf95c5c9e9eb2d1b8745c97c101f997fc334d574a469a284175adb242ba58a45005d86f1775f78cd8b886f772c1b46c0b155aae0acc8a1df99f6ba505c2db1347e310defc0c698434a04d233a56a296120447b425b163a26eee52fca6695ac345159e469b47b39e5bf9cbc3809946034141134d81ff75127294253b425a068f07b3f873f4b95d28b2ef7cede2e400ddd35028b0d03abd2a79c4cef8a4f0fa734a861dc1442a22f3540d5e908a251236b7857dc511138ff48a5d49d5428d3f4972c2fcf46cd52b4ac513e5fd210101c63864b6f697384488a76b2c3261d642c3beca6f68303272e98d4f592c03ac24a86ab4b88c4451e3a76cd6cc3d522498c58b68b81d27d71922f7ce16f158a09774944b2d4218cc6b37c5254a43726262fb88add9361c1438921fc26ab883050473539340e469d55886d319394f690649dc8836301ed3f0f98be3310fb8ec856f0c854557cd6ddfe5c931913079633883196126e8f9e081156a2cd1f230237cb42c26cbc1dd01b568e935f5191fb42197e2f6bb71bf22815f21a2823c26198350344f1940a12fe16412a89aa646b633fbdfaaa1339ad52d7bc50305b6b8ce94f0579fefaacbc189f15ef99b54e1bd84e73876746e43a0efa01e1bbca000afac3eefa110a86e29d0eff2b93e82d6888fa2d838695180d80251868266e54645d53b6aebe70d5e4e14f6a462dceda8580388a00c98971d61d91da0ac4b29233475729b71391a80a0ad7b063fb9205207dd7bf65bec7d0e2a791d4fcb823627c366bacc48277514a7a411b35034b53660660f4171bc8563945d00e917e7b7e43219e4bb242533d8b19e3e1c500fa2ec7458c3afa25a0c4bd6afcfc32fd8e27fa45e7ed578fa5982dcc3731a68ed5b68735c83c96433c34b62898056af6d3ab515159b8bc3e25cc5a7924d5137fa497f0eb02611bf7ace924c070f4dcabe5cd9649bd6fa7af3a97b623db49022c76a27109c58f1ccc65a8e2073f6e3c03fc8485ff9461a09b780f3fb7da7d65408457d33ad8740f72780b4cc3ebc04115e6026f546596643ee3183b19d4bc6de78f380b832fe7bbde23aa5696bcf979f77e6c6af709113d69512b24dd64b73242d2376259ca1c21f3f9cd49ad0a6cdd7300addc0f05e89a8a9f9037ec4b1f65ab405bde1ffd8177ee6c67118bbd7eeee61b71fcaccd17aad512cdeb95cea00801927ee2d89614f5204aa05d52ae0cd771e25d81190b7e221471c41a608707c4c966f484ba657139a724b5ae975c770d6e3faaebdc0cc90af0d6ef88a010c49912b2e008a4f9b1ccfd7063512f8d907185b99f3abc7bfde9e800e9d4c59faf7af046340f59e3a1178749725ca164d22554b3809a54148a32252337c2a2827f0c8d40a22c41370e83ce643dcd8934a8aab5e3f048e2730cd308126300c14afe18b692f8360ce4bde69ca1a95519bd5fb6f6a9def7623b83d28beaa08df84c4707e68f477346d3c1b885d0bc731abc126a60207e3d23e6d4a15504c5cc7e30bf4131bf9892d4e9ce6ddd0007b5f65e08f662428fa422ff2f9f164bf86b0edccba772666f73a8aa317e4255b11745a9c57a32b0e87d21b2a2f79e5bfd7a441ba3842c37cd8a5a65248802dc9ba0c81fe37e9b832a00409f07ca877803958c8e359773edcb5690107390b64151ab514cea905df10364405001926d8a5082da314c798cb78ea48b6caab6046904f4af453965985f921d46259320d654e027a264f036a9a06e4ad97205bda9b3883fa02ecc4f4bfaf20d242ca864134203182333d9a98a175a9abb8eba2a2169e5344aa474ef78686be5d465cdc53f1963902cace3940d261d57ac1918bc0c4673cce3bc8667da57f6d7651e7c5065fdffd561bcb50f8dbbe6f7a942fc545e6672cf04e03184088036e661181dced9a6259497c8c6dbb895e71b235c64cf5894124d134f6cc5ed17cf9593c252c2e94f14bb8244f517a8ded1974d0293c46929a7a3e54965091a513f3f43bb269beb3f86962a90f52ed9a50503b0f856cbd2159b55f2a4650e85e231d8b6a4a08e6774a4318178a6d37aa570cfa3f4af0a1be980cad8fd9f09804f1139b713b2bfe97a13285b0fd46d1868f75c9490574c1cd4b7a940a2c49203041b817a118108b05443241f0e949fdba965bc5a3c05b0921ea75fb9ddcd77cd67de0d965afddf90813164ccc888ca08a383fd125353546dd1d2ac36a080bfcf159a022806d6b7b748f81f98349e89c384e9b54116abb2555da24c043b2529e2c01407c20e561880481b08f3f164201b393dbc05e49145c9447e617b596cf6589882056ec0c25223984b089a94434739db4756ef4758c38d8b50a2a50d20824312252082f954029241a67d75a260c6eee315c3ca2b2236afac8fb31c8ce5fb396ecf8667be42d57ac935d3c48fc828b947288adff2abfda05b8c242acf156180f120056734910e1a1bfc4d0e423266bdd58e5673c10214ca03e6ea831d27440a04aef132674089eba0aa2ba8be7fe5174189a7e4f452478316c153b3cd08491244032d7d000778d4e1264fe0cc353dce97228910c0f0143714025afbfe086e387a73eff37481ee3cda40823a0646bdf30b221d9712bd48c1a1dfd26f105a417671916a45b4ef00777d3b943ce9c8d0563f055acdff34c333b13113d22010a1cbaf2cdf55537afd742d646d397276991aa1c28ea3a6b0da9ad7de9a02649bd6762ebf72de83d7c7ef76dcde0362874fabac02e0c2a444c32c38a0c4cab3b0b4061cd7f39538e2a747722971513dcdde66d02d831178237940e0b33214addfe32054733ef304bd70c284707fe4ce1cfbbc098d16182f55b6ea2590308c29f6d8df7f40ea0792f5466d5c95569e2eda71737aa026f445c1ee0b7d212a1b82d213fa3934c7be54dac498185f489db0b7bad19a48e681356b470421950120168e0cc1e2d063bd7e149956c6014f41a53df036d826ccd0c6b89593cc1a227b4817d095a2e696dd9d45948c465902f9fcfecfeb298f70f86538543f45cdddccd4c2ada5a9fe679ae252008e77759565188a0810cdfc899c1b87a73a639a455358c1d0499f66bf0c40c090658506382711f44f41cbb5f389eca71163f7962a5d0fcf2c5e248f4b189e9eea8864847fdeddaad811ced7bc7bf9cda4334498d6d83e16863b2ecb5ee1d36d5f4221b53c61786adfcccdcab4a7b666ffde605e324a2da3bef699f93814c623fe8b50e4329ac0e5df530f97c64c6b33509adee87185a5fe617fed3d7ee0b154371386ec20072a5bd75c829ca8ac069209de12d334904c2432695632d107b67ed97354210c13bd274798bc08d217487fdcb29b50fc855e238e299067663230ed4082834b0847f419841053c29a5c6c1ed0305ab005e7f9e35dbdb62b09ebbe59c8c5656394afdf31ab740fad22b3686d83fe1349002bb18b1b44a1975849dfdfe85807c979056c282820f880a865cf18836073c44c11a2ebed73d419382a905697bab4ccba5baf2431ad1031302fc5066446866d90c21a4fbb41cf3543f0f2dd17a6899c68a4d50a8c58eb2505fb8828a4c3116ac707721d8cb576629b78a5ab5beeb6e3dabd3f59fbe24048ffee947b5a7e4835cac848ec9e558a7a5320d753d7fdb74fde75a77ca7a8ecc6c3685bc24162f34561e5e1bcb10c84bc164161b980700073cd1fc405657b6cda25e79aa8518edd54a846c524c78fd864d5ffcf8b43252f957e8c77eb80286a05f6b78b95bf5dbc4e7f3dd3254500be1f997a533832b9c66a8b46a41e3ca00fd8ddf50bbe52a0e22ad07d3c117698d6208a423fe88019365e94dc4056af118f4202bac984b0f6c95127753fdc94a4f38edb229eb166021e4423a8a12d7a7a5dc816559770a395fa84d834e0afcccb673295c84c9d2593c55e56c60a718ae20a11100b461c14e0b17984d65c14b6a2e2412ff9471b49998d6e63b23d92f4e0dfada2d6162897e6943a8206a1556e630db5929b0b32644fe44dbef6c80b09d6544f28a284d126a7f7d1c25288841d5957855e648d1f542293ca8c1b5abce45efb8ed3de972cc1960cca56f0320b7accf594972d70dc2219e435d241abbb14e6594783b5fd55c71d4036a809441138f757641cb2d3a00346f56d32b8eacde3a4cf2414097d4e340a6364a289584387f1241cbbfa18f4240c821c5e8c2d8278481cc136f79ecf6539a389c232cbe1a838b4b3d18e4692b38b3fb3aaf68e11f59abd9bd6fd4aead1fbcc33237a218ad7e967e8772351594848a1eb3c206bc5abb0e8b98d1cfdf39267acfefc50eb1dd0fd79ffe80eef273a833ddecaced30390855f8b4244c60d8289be403b60ce63c423957ad6f06d1b50eac69fb8a9be8a98e1948e5fc5b0433c43220939e4fc1f0ad23ec9ada74599336c4d6b853e84189fb1d21a4497a9833c181b0f0619e243395e0957a80d714e03ac0655929baa9ef333a83e3d5eca2010b93798c938e568670e34b1326bd3e7e60dec92ebb39d3ab72100c5c41e4bad015abd59c26d83008c9371f6a29c7c7454ea03d66597ed0447d0ebd10ce0454faf58fd2d724095b440fe88175540168800e5c84ad0360d6707d6fca532813d0d2aec2e5c48873743d83125db346ae9fcddb356c995dfc5bf37357b91a04413aa33e5cc2fa798ee9d5238035b4f8b1060648a264fc50a8ae0a06f9801737565363051994e8a4098edb065c1126cdcd341fc9613721f786361b291a46ce476984a70632a15eaba7f16ec2429161e2e97c169dd40acf9ada8daa2dea220edfeeb3ffd838eb2e9dae62b8b3b3773ef5c401095fad4e0c1ad38c61457102763479cb68c9a483733852cf702ba591a7e5a30cc59a40e9a667ad6b14360126fc9988e9321ceb3bc15a138acf41b7b78aac60da8f81cbaa627042c8897d4df10fc8f4f994fb7a79bb44ad94a7b8b80103cc3dd03c5a86c995076ab7b0991aab16f29457637d9724b296592329407ba0739073c7edcb16d6cd250cc260dd1b1a10a0f35c840049d1d639bdb123c2d7bdea80183c4ed901e79ac0b3d9a90bebcc5e18fc96cada47e7d230c033f1451831292152058a60e388cc8b10304977b1366d7b73d9e767ded0a447ded3258adb5f688b36bed8167d75a3febc2077b695c0dda21fde0b9fe26722287edb943bab27ff6dc2129c1536bad95d65aeb9c73d62799d239e7acb3a9b3132ad15b9d95b5d66ae7cf7c37c03a32d34d96993450815d9c8bfb40c27e49cbea1d6b55d27a3bf9821f9705af5a6b4dd1e53a1a9d0597293f0617b41e03ab59e428da9b2675d427facae9826b976c2d164008741669832eb5cbbd593b9a864ab038151a9a50a903e0c03b1840adb45aeb015698735298154bda39ebfedb971f0c37e8a0478034b9de2e8dcf2de7d2f9dcb67f1e69514855f4e7566da07595244759dd0a97a3a8970d66b21f5e053560e1b683d9b27039caeaac0e8cb2ba1f5e12750dce99bfcae9e5746f5709475b1ad2a99c6aed85d37ea132a332e342a5aa8caacc74ba4edb9f4ac15e4c27ab827759a1d2d9fa81aafc78b6b83f7737159865209d7975148cbad7e9365d9d0b97b96e4885bd2271456dcfa0ca4157925514cda40b07de3c5eb0bff10257940c16a8809d30b1e7ccb25aaba40a9ff9c35434e9d285071ecc16535f2c57576b4eb5f6dd2bbb9c5dda37ea87c1eaedddde92d6ddeeede654bbf0a6da85375dcdd1d2789617e967cf7f5d0f2e12edc0abea89cb5cb5f47ddf47554a6e4a7692d76ed2bde13792959290a8071788101fb75cb5c39a33d7584b75e67f554c3b9d4a4a2b3182bb438abc303db8494aaca55abb4a3ef3bf4aaca5ed5789958595c5854ad60dac1b668bc985494925053a295d2517778ddc24eac17de116b943aed255da2c1dd38fcd62d1315bd82bbba42b1fde4dba4a200e42f6fc0b647a0066a11df88a8e0d7bfaf0b6afa274f3c62ec12e584027b0290bf500dccd0e3c87c9817f09e2504950e744b77f6cf547ae35fc5902d83e7cc1349eb324d8cba972fe84750b2f0baa5b796f37dd8d752b810fcff22ece52d9a5f8d91df804f2784d1a6c72a112cc61e7e0a38283bced8e491f1bd80574029b405ed3f607796018af8161405ef5e15534e18c951767edb5bad9e2365b54fb65b79ff718570c7bbd625f3fe78bdba97ae2c844a4abbbe494e361b9ba3dffe2669a2f7bbee5cd16e0cf5ca80292663b0549d5edfbf077c1e763575a7c7fa20f5e9430428c1b67de9e38dedbc3a2ebd32099cc57b777e388e38dba5277ca5ea85bc59152b1b9dbbbbdcbc66b978dbdbddbdbfe36b6fabfe3d06442ab337f550ff4ac83d3fd7ac1bc067bd91f6f79d81d568765c1e6b038ec0d6bc3ae6055b0b625f62831a5270924aa94a65ff368faf3083c77ecd4a1133547d3af4668fa534e8e53041c22a0ea9beaa6b6a15f9ea41dd20ee94635933f7c6d3553cde4c269e9a43184335662dbf6a7d55e5c2ffe326841b03a05710655a16845b13a15a354e2ca871515fa883ebae5fa79d9d7ab3a7d4549dd99928aba37ae2deac7a663fb9bb8e17f42078aa4ed0fbba5b0295254a7296c58a864c1926bd2e52a546553e354a8daab776a54eddd94928c28dd94e0dc367997ed5f9d4a1b66fb5f9ecbdcea5ce6158d2ead679f0bc2300c5536c7f992e71c8bebdc294ae7c47bead59ccd79369bcd66f3a71e54941498cbe572b99ccd66b3d96c18b45aad5606af2829b7bddf64aea473e23df5743a9d4ea7bbdd6eb7dbadf6728ecbe572b99c2f79ceb1e8dc29579d4ea7d3dd6eb7db2d97cbe572b9af6874063f3aea4479f4a907a5d3e974badbed76bbdd6a2f4aca6daec36faef4e9743a9d4e77bbdd6eb75bedd55eedd55eedd5de08a4c2020b2eb800030c7e1cabd3d1b56f540987a34bb81cce049d4ea7d3e974b7dbed76a34ebca71e944ea7d3e974b7dbed666fd5de30f87124c9152b6219d80c32a84e33689930a5a8cd46e9eaec2693fdc3605a53258aa34b3a9d4ea7b3ba15e48a582c830c0210000d645626ab4e659a9687b40ee664a34c90c9fe6130ad33948e82bd2dc3de467d360adba86ba3ac8daa362a7671740c8092003cd9fe1a2c6920d2f1042b9389742c2f95ed3f5b2580ee9bdbc06eb04175ba016b07d5d18ea35dffdc87b6cfa78babb5cbab337f912cb38a2cb5fe2e8ef7e4e55ddce565e0b367fe5946d3779e898a6d1a5812fa586fe8c26594484ad74ae4325a875c38a52375297df17b1e7df13b12faba8f3f1358cc6bdf53157ea76831e3265dce2ebb1cda74f620c26c31dd85cf2a3994d3e5d024429741fb05f30fa2743e25895c46875c1c2d25b1f3897a08742add9e6f9154baed4fab4ae725e09538b7e7fb155d0eeda04d472b44ed0f59f284bb67e0dc769fbc0c678b37e5afd65aeb9dd6be5e3f2f5be5ec301d561f03df41d3a7b33edd7908bab2f762fb81cb7408c36f0477de1fde775bdf765c811ff609750e3ff2b361566d11243fa8e4072e0482601194aaa82af6ba59d4af19af3084d51ab8e7679db3b83a0184fa7775efbddfcd198f75878e5f8cb002c1921f78d12bb7745a1f4ceeec4276b579a2aee6c9417d3d39987fadb5b65e6beb08b6b5765a5bc989995451cf16f866d9c4d56bb8f3c804fc6ffcba42400d2487dcae1000ee4bb29803ee29d6af76758d8419b8f7de7befbdf7de7befbdf7de7befbdf7de7befbdf7de7befbdf7de7bef0d4f5459e3fcd788dfc458ce806dd78b2e5708aecf6419be2b748d3e74a58023978b2ce976bdcfb3c69fd7e3eb5b6309dbadafac37d2ff7a96fed7eb7f91d365ad67fd0fe9bbe51a7d03b9dea8f5fa5d64901d0d1442ebf5b7c8d56b72f5b01d92594f1632603067e1c29ae3b02941ca22c0ab515d129ad9b737799b524a290c97dd274a29ed92a5a264d4f8b615c1b78dfc2999c5ba25d441a91f597aef9d4f7faec692be7d3a5afa4e29754aafbbfdeb765e213c0b7399165daa78174425fd4197bffda95732eb74f9efbf93c0ed5e60b353c2b2025d8ae58c29b5737df1058122b92d803d772fdcb162b2f509fe4c617fd6de06b80fdac1fcc7a323d10e2c098efce632fbd93e1eef13f9ec9562dd63bd687fdbbe93b76f43e8ef46a7769ebc0f9322c9047c229f3d4ae72d0d5f2ac24f97b01d9227d819e2fb10def77ddf373414d32d172ef39185cffc7f46d7a88af15a6e671862bd6e4db5c615533a7cf0f5287ef4a3dffb7cf4fbd5f7e2f7d4672c61a56cd336254fb0bbcc7997bf6b584d7d4e9827a72f7f2b04187d9fff1b3fb29c50fb7b9f95e85299a0f9d4231313dffa19574c695085e24fbc5a3fefb2effd5da355e1b24ff63d8a51e6b3ef4f8cdf8754748d73ab64b45a7bb54cbc7f6b8411b9ec7bd6f881cbbef71923e0b2ef57630c977d2f8e258c264c0ebe3731669f7dff1a5ff8ecfb9eaaf20c5224b3cbaf9970c69ab66ccf1d11237b6a6bb0e78e4898adb4b453ecb95342da6115af128bab465c697fdfc664d226fde6b24f0440500ddf94ace1db1f7f5f5f8fc9d2c7f565fe89ff27ff3cc6b9d67ebed6a81bfcd5ebff195de3f4992e6bd41db6481659d6b0df68f7f789bf228de8dbfd9146a29db9bb41d2c8fffb4b1ad1bf9bbc64e9b7adaa35e6b249963360fb7bea56c6b633b6fd684c0cdba58c6def48836e4c7600b62d6944dfd6b72411a4fd7bee5c9063e96ad500bfb9ae06a3ceea7fdf5b4aa96c4a5aea3a1cc987dfec0a84cf75b80f7c7324eac1dcdf4f1d2ee4837a70f30fbb0e97d9fb912e5c561f864a455487d2e89cb3d6301845617f6f4792a8dedbf6413bb097468df271bd14ba6011d444bddacbb25d74399f367d3a73ce5f2631a5d4929746963f670dd87e975dd99c7392208be56bea86664cdeb6f6065dda4d3f9f92047b0671f451d554c8cae1cb6bde1f513963d70fe414685d9baec232c71fa6fb8e41bb84c1dc3acc456df3cffca1af40c876c344d8404c1331bb9240f58ff6cfba624a93a0d658eff3655e7da9c5b795946291b3ce7c7a7905a5ed571e1ec94a6d24e081042e731e70a0834fef83f60fc7724af994dab6a9e98dce5f6a7d6783aaefc19b67530a3f58d022b56ff83e4e9f4981ee63429cadb5b6da0e0cedf02d590e6d1bdbb43654673e64cf68f15dccaf6d556c3b7d562cd5fbacc692b62f79822d5f80a00ac5909c11db2860a1b36609bf6ab41b1ce7d781a1e943ed532882bb8df07fa12882613896433b7c1488fc03613896b49d5d066650fcfb7b75dfbe8e7e18862afcc512b63f8b832e83b63fe893cb19439bf559f5feac51bb2c0cdf6714613e0bc3f0e90a8490cc4f547326b3cb2c29da1aca1c74198bc982fce98ca114e494b1c2b3bbfea83b30a1f6258d2c995d854a967457d5e32f8b2b7135d2a0fb7e5fa8ba24ce64e9772ca7ee6336a7b06fc6d7ad55f176452f171b601b886912042c9c3dedb50260627ffc6f84c99e7631df59690e527235a72d7a64b0e1764586351e387207aab7640549343100172e31dcb092823438d41c4d6902278d95303c721801050a9420664ef3c2090e252c4ca08608513455c0b9598283474d962dd60a0bf6527ffbdabe68df1a59f2e5b225ba14ebaba8a2b52e65abd0580c89fa055a992225a709d2192e33e46cd9a1852754a29c8aeacfdcd32fd84463c19e233fb00005f564cf0a74864851aad3238e1145c4d9b9b0c6736ccdce6f30c64966360637c618cb5c46a70b408c096d95efc3b2255ca090910aa286394642628803648d54962c49b89fa429b321a21ce528a2c48f241b512fd441620921dc10c166a9053c42eeb49270009d89a241963c4e4d6458a1882d73b2f09e66e081b46443880f2d21684c988962c2195b152278f0b44123813b42008112f364830a4296845cd91f8afd95d9dff7617c6d9565b0e7ce851ab6893d772e287d40fca63b64953f9f52323ff896cc2cb40b586cce40f003c1cf20e91a83a448da3cfaf79c97acf569add9a26a2d182b55b888626a4dc36a8d92c269e865dfd34f11b4d6af06311284c9ae35260baa4d9a0b4386767581c8ae9feb4f1dd4124950794ac890fa020b088e2048408a58a912648f9015848812e40b6227ac45b1724b22acddd46cd79ebb1b0f263e4c450c834d6173466bb4a1151ba6e26336897e8942b4dd7377e361d71acc3f5addb26badb5c260350b83a988dd749860ea3bded357b06916ab645fb044642891a7870e2e4c4cd8904161489e223a985c4953660340dc1e6a00d265851e72dc3c4d2f509000d12206c89832f6c887cd47ce8b1d277790f82142498d90355ea074f89103f8a34b1ef3e388cf0f27351f4b00fd80c195e58a1332324c5141902f5d6e7003c39729326cb8f830b32288a3253ce0722cb183dac3c30776f848b3470f145d123e90fcf8900213e3664713a5227c68a1e725026f7ae82da1a00c11483d9460f94072ed2fcc900b79b5e7ee86021591907ebb7c4db54d6283e86fcfddcdc98d861cb15b921b318b62cfdd2db2b943172b50adbee78b5e036d58f684ed29e698b4d9658c896e97b43d59ece962cf254ed57d15826f4ada3afa67cfdd12a73d7994766b88c992d2c80f82a35d55a451fd4c542dfd5bab6fbc3148966449693896f73f254e839257b2773318d95e9d3e088eb67dd548a352fb767c89564a833f1b00de5508f73e35aa9f7faeac7e851fc618dfc7646954ff1ad5bf7734b26f45afd1227fbaaab490e22290b0796c1276867ab07662f5897289d9a118e3f92fbc5675304a9051c3697bd094b5c900673a85bd245f76397b3208e19b4e5abad8fe25fdb1fdfdcd763741dbdfcaf13d77323cedd20591d771de56f64a32f99ec8eda8c265f9236f4b842e66beccf4a66697a4cb05744ed2a42389eec68a3d77498e24b9c1c219a4e99c39679252a21ad223744e402efdf30320a8cecda395d2fef96fbe2bbb572cf7bfeee057f0313e01833fb18f34e812db47787ffa8fbfaf74acdb25b181564f0c5048eed8290d73197db94c0f0e6be168d59e3b1c9d49716e5a703c138786055c103bac1e10833d77389c925deaa752f1e099c3020c3fb8699283140e40cd6003891ef6fc1012c31e36f68e2f1189d95a3b5f0cad1972e114076112967b582c0f7b59164b84a64d34fb935889668b0f4c0e286bb2a0ed965ef97c78a4dbf39056913ae896e8a2ea5d15aab266b9543ebfbfd65c5f5fe65aa960b53624d6d924ce1d7e0eca5f9f168aa15845d5d75045f6d860b20497d1e7b1fc6be1edce6d0ce29f2f622cc67019c693cdc6bfa28e9edff7186fa74a5cc849fcd8880be16e0cfc396bf169c594c6ffa2d65010f1db268c3f860b898fbf0413a8920be1fbaac74f6f2e94446d2888e4d4c694ac616d6c72e07f47d5085a2e9a7ee962e387792d17e17fafcd22fc415e9b99d48f9f5e1cec9a69ad6f996fadb5e3cc33f17fdf87ffc36ff4e13b31c6b8c41863fb8541177f9fd3ef5d66594c0ee6630c64ce39f51256fdeae7870e8e0e823f880077aff97c58df678cb990256b053fd1657435be7ca60ab2a3f18309982eab205472d60f6795ca7e231e4b2d543fd731053f0addce010aa186dd65fe92a4640814022dfd4bfa245008e287e18b625ee515398a210ec3c7e1d495ffcaf9bf4cbeb01fb86c62fc17fbe8775ba7fb568f79122a3dc26c81c2e480825fcaf6cc4df44b162e54d44af019adc15678a4dbbfa18f7451ad0e5ae642aa99ff637d05ff2372e14279eeac5291336222a8c04267cd06dfc270197dd638d2ed23fb3aa32b30c68b5a6b7d7d18df1a739d89b906559be5c508302200b5550f3afd3cd2ff46fa322cb612bebc16e433fa93fe165dc682f4ad6fed9e2b5045ce107706337d1a0d7653f0ce06e747c06b355eb8107eafc9f019f8b2a0fd810bdd1875067eeca6f3873697ddf01810bda2ce5cad9cc2d54877cb9d049fe4a6ce3eb5d55acc67e0e7ac4b4db6485b0f77ba60f10781fc27d535b9507e92e5fb423cae98d2df5b1568c74efecd1b8cf1d414b6dcc3b0ae4008c91a76bb092ef36f8dfe7a3ab1683eb01553dabf8ccd981cf8bfa8351ac667e083e0db1d40f0a9cd856e501db10d2e3d71a19c0b5171a1b2c6073e7d72a1d583e2833f69980d8a949c31797687a3ddaad1baac08fca021afcd22107c58aeb5fa96f640aa8272efbd77ce396dcf0aa1e97f11f79c21f250e6debb874590cb46981cbceebdba84989a19319968ad6d632decf31196744f349a9e50bf060914c23cc1ee1943db7fc66cdaf68ff6d13eda219d7fb7dde3546dd0f66d4b8e78c3bcda8bbf394e61bccb0ec9dce9744597e27e18a52c68414e73dbf29e26cfdf86b195255a285d8adbc75755b4e15561f0e54225fd5aab7bcf9d92affae2d676fb9c4219d0238440da319afed176169470e6297abd744f4893f53e8a2dbdd6f6aced69eab6fa57420c8c7d6c69ad5934e181b8f66dcfce5c47fba586ddd6cefbe12fbfeffb2cb62cc22cd8de9f77cefbd3685e3bef5f132c109abead71f7d5d6561c1280ef9718635cc3f62c9bd766a3299cb067a9e83c90b0414265c33ccbd8d79dfe27d6e9b30ba47a23f0f3abc0cf0f929994316130605ae515e7f496870589929d77479e764790b289d5894ff130b1f5aeb035fa3c386afaada9dd7a31ce6b67c48c992261767df11582cf6b1160b0c3d78f570d707d0bb6411064910a38da614bbffed683adf719cbd7cf57c08967b5c6d6cf1503e83ef144de7a309c225e2dc0e75ddf1a4b19bbf578b500f0f5ebcbbc5baf2ff57e91400a38da2f980b04479b45860083fd2281c23762fdeb43d6bf9ec5fa17296391a50cd98b2c656cd7bbbef544b53596afc7ad13ef1a4b978b6cc0896f9146279e451a89df7a227f8d3360bbf57a2c5de40cd83e418222acf5be0a4124adcb56e4a7d00b40f13f3f570b40f13f8fe2477febc3168a9f9f1fd7b75e3fae6fa1f8f9d1ef7afd80267e4813264cb45aad1f5baf1a6bd00db64095e5692011b6eb75cefae96b9d5d1949d2ee0854f8790c5df4f3ce48979d59e36b2c65ecd76beb9f2e84e261add6eb078291a5defa4f3c8a71baacf53f63eba7d780fec409b2ccbb459626fef53f0f344e9f69b2149f15311c238e2b030c6576c8ddd02467cf112f48ae04d1e6862425426258511f3870d8b991050f94064a885152624a151e2a0882018c86a5a930b61f90e0c8e0c5c610253fe0910304880a1000d1640b0d2a48a24c110f92a0a9b313f3029a1c6e47c214eaccf1228399209a7441019d324a4f2a4062e9881f48f4123390e172a3c70abb1a2ab046e9488f24446e513e90f81ced20d2430d2bc4f961cb1903d852e0e4852068c82ce981a4022009d7a4e58e9438b902046124862275bedc9183947736f4aed46941085b1b34338861ba7147cb549b1662608967c048f1018b6daa88559ba522419498c366081e47c4a71d6830a3e68d171e521c50c31218e24491b3a3c80e24744cd39333796c04b1a1c48b8ea7038f4ecf101d30152ca1a5ca12323a8cc181023b299d0e3c2b3ef0c0828f40072b3aa8a82172ebe5d87183889531727264b084113c7cd003c38f31224cd1e2a68d129452111c48523815224c6ee4c8147952c215a6216e9c705993bb71e4048bca0f375aa6c06142a2d3a3e688365e6e43e8b071c1110e555060a30e9ddb11500520630bd3664b0b678eac00b6c1810b112e42ecd8218709b8515272460a983c3f501550b07102050e9c1d88a8706b3146081b3771b8c0c085da90a8ee2cf97246ca12af05184e5089f242161b93285b96b0c0045e56b0ada0091c366466d8a10b1331457cc961b7078905820b123d619030c2254c0a293ef0f438b3636a871248be041b648c30d1c2a60d18164941f24c911264098729132d8628e164ca8d49c91825468ce111640718f4e879c5e061e30947648a883d0b0083c705db103ce41092c491d610556850f3430c4aeae09002074537c41c2d36c48004003428d3244d0d44c8b0441130e4383306ea080d687252607e80e0b283142076705488629a4080891202a4f7829b3779c0c40082a0ca5a6bf313554a838298d2fce5fdef0a169b155b15a92b86d2c72b10c0c901bed66509987972407f4a0913c4972f5f86bec4e85501fb31f1ae8901a862e550d4ad578aeab3c2409f05f6040a0078bd608c8fb0462bc0acc53e1ca34bdaa60dd97003cbed49ab1872f1be479fd87357e54b152fbba441e950cb2e6930290ddab0cb180d098da7ec9216dba3c3a55d8ab43c33ec3226a241b24b5aecce0bbb8cd1da24ed92164bf36397319a1d1ebba4c5f4e0d8658c56a68a6d97b4d81b3dbb8cd1e01cb14b5a6c0d9d5dc6686ee2ec92161be2cd2e63b4336a76498b09716697319a124fbba4c5cc80d9658c46c7875dd26272b8ec32468b6ada252d866705bb8cd1e2a46097b4581d7dabec324653236597b4189b1a7619a319c1b44b5a2c091a7619a34d25d9252d76c4915dc668bd1776498bcd716197311a1140f62d824a8f4dbfa4cd4c6547ad950684b63e75398a07eae45b54d84e469776d3f72615b67f5094ae5f9f040ae1eb5fbc02814e4d5000334c3d7a783388c1e18905224c60c487204d7cf8e1464d119e12c61ec144896acfdd94252a99ab644a130a789786295336a648dd9882c7c65dba4a343805cdfef6dc4d791a5ab2e42e89c59a581b63ba4edc3e909308f09dfffb21c7afc5d7074d3c1f864b1a38669ff9e7cfa240b7a7983d79f4cd9e369cae5fb01d964c7953450e172e73c03891e9cdc16188239e3c4901f824871474be0fe947962e59b63461a2bbe176431313123d9cd89e884f98fc4445a9b2cba7fd7814fa876620ad42bf6041f08731131f1a86ad631ba5c8c64845d88aa4a843fbecb98bd2638b59dc731745857df7dc41994a5381373d24327772f06cc8820405426e406263081e23f28c72da804c984d191514239ccc9f340714825fa5f94e5e253d2979b4c35a2bce5aab44e9bcf7fd92ae830b98fc7d3c803e718e66b0a3248a8f1e95264a0478b34398394d436818e224caca49169f384e8af838614203262ce797a55f8c75f8de3b370c5a5965aa5bc7fa306075364b7bafb6aa6bc79a7dcf5d299d7566f43d68f7f7912fea6cf2a0e4823e26c318e34065880e1d67763a1cfd3092f483ed490b0b2b14e19f4e6c6cfcd6498e8d7111af3d77507ad8e19e3b28ba3749baccdbb1d41aa63aea84f193ebe8618ac584ff72466d1bcd159950675e6bb0223bc2a8332cbba325814838417e5b348b422a7e20c0c875f6fdb5ff9129e0b77944a10612a8115578b015e5b78f420af8bfcf640af84f90c267df3aaed6966acdbe1ba03ec1a0a32fd1b7cd3a23e13efefb188804fbf8ebcc1d5767fe7669c973eeb84e98670bbabd687ec85a72cd550c14f2eb577dadd5098abe307ff8b3a865c2f5af9fcfd5196d512c9bfe4775264ebc6d7dae5fe50fc35fad42ca93daf45d6e03aad469d3079fa27a5027dc5f85f95def224fd0fafcb368f531804870fdcfff9027f8def5b328fc07cc22f0f53fad7ffd5cc5f8fee7893c469dbd4620fcaf3f2a0aef78823f08e8a671028d18ac073f86ea7dbe3e0d1250085f7cd693a06ac5f8def5306eb83e8b9fdf4502d93fd15a02b2248c59672648db6b54daf47f46204cc2a07fbbae546775763ff4f1041a20a09b068d07cca2fc0f9845aea711038804d5b39e459e207cd5cfa2fc31804860fdf71f7982d5b37e16b9fe01b3e8e7edb7fefbb0f5337aaeb33aa3df1a81fcf31f15ddb174dc0366d10dd6ab9eae48085ff5be8ab17ad6db18e2ab48d75181eafbfc8b3aa32ffa6d53d508544918b03aa30f92b23c023909835667f4679d1d15a5a08faee726e1f458ecfeb0363634747de43c747bc42e8fcb03d389710b4f9436c61789090a940aebe00967ca066ecf151e9218a207a7042cb070662987255d8820d2e48989cd05526b8502a5425a6bfd9ad4c14de8d05a2f12eca563b2a03595a9cbd67bee98b27c3feeed06b93b98aa3049b92ddc1b538e0d5313a62673de1b8e252f5689792689156881f2d4c30e5c9a3449a041b2d111820a6e48c621b144dcb18093396b7288a921489c325cf254598adaf3240977e3e276aca086ee7cdf4fa9fdbdfd3e7b478fb8e78e09c92e9ff684c9851d4c3c5a60ba916329cf2ef5cfb0d4c30a4b4e36967adbeeb95b32635b2278b921d696085db2789be8a8642c182641e910920600000000025316002028140a07844291304ae360dd0314800e6e9c445e4c32134722a11c46411847411084300c308010801032c828e68cf100507013474eccb92ab7180e27e75a4917a9b05fc9dcf77924c40adf55b5cf6a744292065a7c45748942acb29bf8ac4c5a0ac35b45c4fcaf71245cbc56ac8d55f5350e493109f5f64254fd3e8e8458a1bbaafe590174d22140d20109447c2a116a9114292f0e9155ce6824fc1b3b4844e988331a911f26b4a1e8d51494e6acdc352b5afdabc8ec392be2263942dfcc37095af4ca62b21644f932954d3e04881d8ad8d2aaefe348be58e190b46b60c17fb5524aa6ea75135f157ad31157aed8aeb5b0d25bedd8f0aebbcc1488e0625d256ee22bf486bf5c602fc93d1a09ffa00212693a718f06f223298a74e6ac706b7a74667f56196d5224ca3a32f3b2e12754ec21c2fce60fe8ba2294a2af7a2ce48893f7ac104c94dbcf2bea2ce133e8b8993a9245bf3f7c12a5f663333d5337cc2c3bb18d1461796fd02932dc980a97f88ad4d507c86fd04f4fa67155ca818e1896536a1dee9c8ce682b14d83bdc47936a86f941dcdcbaa78b2274462928e722ab50576148c7f4709b1cad246e4d133c6d62735388d47cfefe980dabc5202ea2fce84352dc1c28f016c320ae5871d5b2d9ef068df8206427adfe4d609cdeebb6143e80671cac2ab2a3142a74249a25e6031a231ba6370339618d033ac196233be33ba18cb19d21857196318de18dd184b0ce918d78cb10c6f185d8ce50ce98c6bc6580cef8cae8c658674c61546889593c90f09a0724484c5a9a566c9490f6f0d21d72c08d9f8283a0291dfb774812e40d2ecbc0903634201ca7c6573d033f3d41059bf2949ce3dd5a6a57c67014d4483df17d606b62a7aee334a5603eabf0324918280c666e13c54077f4af17fe5f8a772e44139f2a01c79508e3c28471e28f2ebfa59659773b05c21d6741ea3387e508efc29c5ff95e39fca9107e5c88372e44139f2a01c79508ee04bcd358d7e7d419fa9e73acf9717679a671214070fca9107e54878eea5daceadeb9c5f6b311666fbcba55666ec8f03c3ecf7fc4a6010bd6e61aed2442ed16564a6bb01156f187eadeea42099b5fbb30fa9e2d37ee8fa62b55d9fedc88a9d16ee8e89ea6bb4686f012fff5413e4730807ad4c81885758cfb912db2c798d3b07a42380c1f2820c8f03c86a94f084f857e6c3f9ddacbdaffd488e8b8af143c7302d8075b78c7b76e324a90fabc35a7efae404ecddda5882455f4c7609b5e2db69c47dc87b6976c7b234b527cabfa5d2aef12bd0a8a04e56c3c7d59c2e30abcf306169df0b181137b454b7730e5bc31abf815c9a9e5b1221bae5f203aff81f9fd5ed8f4ebbdfa44f24c58bea09c10a40f4fb2a97da98f0c4d7752bd169ac00d995d49f632ec01a8424279effb6d4bc28cdd13918b8cf8ed28ee76586026cd58a9e53ff5f6862f1faca841c4d34c5ea87ec4bcec1f980c1ed98fb673277c5c2565a710396e175897e159107bc0ea56154f384fd95fcf97cb114584822c4fd5053e9ecd109720395892a780615bceeb972b4a3560dba67f1e355e12b0255eaee1685cdc10d346b6c8565f392ad0e718ac78ceaf8422067052ea32428c8fba219d3eef6ac5e541c93d8d0b93d2a4f179be025100133e3de620de3fe5298724d84ca4cf531f804be9f6a18c8f0bdb3221b922acc67b88d5635cec7bb4250c8e0a18cab6da6826ba941ca6499e64733c73705a51f5902191fb54f24b4d0703f92a496f3e164bcb9c8e8cb5f7bf49d1f538031b7e2039c4ab389f315cb0f2e6f8d336aa816c015016aa4da6d41262ecb3fadaa76db7d9e649ead37a79b4b60a1943aac8eace0cf75871430dd56bca3bb987e1fd117eb3ab0a979a022e2e43d8f52119338552418684d252bd1bfabd7d52f321fdd3d239d6ed9ae10e6ff107ae854176c0ba22e67f5e94185e240c8f1ed00368b9ff6998de0884eb0c7f0f0b462d766daa21ea087099fb46f4bc4d18a086c93aaf95b10db4dfbc95c46da425b6c76163e27899ecaca964ee1f04a411aadcfc9e7429282e9f902384d94ba49bd0950f542b2b92db2ab1ea10b2442fea04e180e26de837f4c189de978f333eafb77bb063cb95c61cadf4b99657add495270da2aa2e041d3568aa28660306d113ae1a7b674ff13bd12ddf169c724737096eefe14540b1d1681e880debc45d3b13f84898ad7736a49dc5043f35bd0c20bc058a6c96219b3da23b5d36492b8158c38818410932691923c2c53143c05459505c424c50127d98fbd895bf8006b2a35d33ced084f64390c6ed8f6e84ed7166e92509357fc0282286df80e0e279f24271d574c7ecd85179acb5c9797722aaae3985b68c05c77129cbf6cefc87cd0026269f7474b6c7a2386a66a436efe097b6aa0572e740bcc7fa35dcf8f9bb17882e8a1e6c39ba9101c140c89b3119a16564dec9faeff878fff7c22b2d8a76122ce7a1c181b646c410aa8cf1d6184d1360f965fc6d265bda79ca4e30c00f7333ed2edd57a81454f13124639ce80ea302b9a15108a1b927b7747544c2bef8a46653b5da57c6661bcac1bd04a57a97ab38e479acc22d7e0973c66301648adac4d417aedd94171f894d3c6742ef5d8e43c8d09f0997260893e61565a6e19be905b5ee63ffc23ef6248877ca5a2378d0c4ab9d9058b5a1ad8583e9969b355e40f292af44c5887d9d37e45d3b0abd305e15eea6b5834fd25e8a64fac54dafecdf739304ef28fde623fd1d8c1814a7b50d3772ec46801e90940f791092867cb296d0e67573ee8729505decaa82122d41219cb88c0f12033299bebc6434f54e28ce25696cec6e087f1c3d2d3ac3beecac8bfddcfb388fcd8321d842194c19599409664e70f5567c60f6591d3aa5ee90b2265d30a9aa9131190954b48939a0d527d5e0e493c70f8d72a431c6caf44198b60563b7cba464d8e4b7a1aa7bfb97fd8a643fecc6a1bf447aa9497e80afafa878159062c87ab046ea4a8e93611d35c91efcbd3eab9491c79eb45d77bc17709cd4797b8c16567e27d61efb9f357c571ff3d2fd06b1ba217eb923453eeec8f196079bbf4fa44ba2a2f9a831c3124ce04cd367093ad01d14e9ab10c2e64cdcff29cd1834bb21f51fd9a35c64b322751c130b349669c62e5c04352bdf7e3db17d26db9cbf4c36faa0ccf27e437a1d947d9c8e9402b6a37d700f7d658bce6f1d9d8c587c8c05f3c9ff1403ab979ed3b94437396842842ab0e5410ca734ebee785b3e00908724167aa24f26839506544b6430ead6a8b264f7279f3b0f268d90f67914f79153b9285b69efc9e2d6f79a420466d8793b66599f10da3a93ebc66c6f5ee8149d4a93a68ab3421002f71c68d8ded7fb01c22f40f705af5157b9bfbecca80d32835d7d2cd5a73984e099cd0313c8f0a181b8ed8d55454e75051eec770f077fa5c24d13c2c876f4d3a466acd61839720a6d65b1ba3919352ae8469900c8dd341bf7080559b53d6179500350bffa2dba2e4a5ed8c09815fd32e00e8686d565a2b393e3dbe217bb737d4437dc0def765285c48d169a7be768bf678a2b416091cfcc591c0756b98a1ea2f76d4b390ee12702c551701080cde334bb1403f048b423f5354d63ca8a06ffb594fff5110a5c1e823689eb86c93c20d89135d3b7bd2f6524230b9c27cd582d50931b39799a73c144e5ca9475422b29a39678e59765dd2bd99b7b8e9167a4d0c8ba845331a2319c819b7138f054f48cd28c7a3a933fe56b1899dd4a51fa848a11ba87c53437b178a075ab60c76fc54aa524bde93934b5fc6d88bca1b1f70338fef1ffad7b1b6b8b80cbc580bc67a7f4397623e18fc997e476b845dd9ae73b61e7a17366971d8445b6fc313e19048999bd065886d1dd3b862551e085fdc48cd149415c1934788832a17008aa04472b2326d137f76873b8bcdcd31700dd909a4ab4f4c39f76d6b32b73fbddfa6f6b259733a88710269bb32af2c51f5629a848b73c4a4bd83dfaf9256b93f50bde88c1f519072a47ace99535e063a08188a16112330a16ccebd58c9bc3d71161b5f585aab3a65cffe8c59ca7098c7e801b4b6475885b376b6e19283db186b3a6045237d10d4f395ba9535ce90ac74255b20e9c8387afe74e5ab87175523ae42391f06ecb4b1c04da9b00d5cc9124cd972852ade39a127eb14eb56670ec0cf9bfac0e1d61d1ca93551f90ee9bcdaaecd4440ec3a72c5022683f5158ecb85facaca7284ac7c4804b734c2499c8f083e73b3bb63141f717b374e2c20e674ec9cec8f96676035316d23a734491a7f105da9973722ecf388d274cf707d966e5aa2487570ae72b797f9d24212c24acef388b805d0f958474fe89c22946bd2575bfc1e3a1f93be8c63fb363c224f08a0e448df789167e55c510c1859ba7cc973bf014468cb0d019022559a18641ceffc25a5d6181576c5b723723e8b1e29206f8328fe98eaa34426069529f7d4f100ab7602365d95915735fd12a639a0c6ca04058a426ec12de8410484dfbc252b92fd300200a8b30c0b7651712d6d545ee03ad8538b7b3ea402d2c19bf6957c99852f727ba33fb277f6b8d0f2497bac595ae8ecf318e841fe807411655dba74b026ca9e76a534b1f226497bf89e9402d98f83ef3e54ee9064d56be152f6191c944010b71ef9fae7cc7247a09ea12b326ea8778d7c70c3d681b42fdd19a2e36cc98a09cab7db3c08b83e19259bd1fb7ff6e38fbe8d8f1422682f44846f8ef9367d79dc69a639a2cac9b2b8025cf721ddb8b830741e34289363310b4e2c2e2b46e01a85440395ceb08617978e913b0f17170a877fb31c882d7fb7562b9e292eed5d8e6a3bd2f2139286fe1a5dc8487e78814845a80101b3a0f83fedb8846c08ab6857945edeba0ed4b8198fa890456d2c67f286894760411c3ebc6895b77e2e21da9ea4778a1896de8aafdcd0925690ec9d5a3c129ef62acea77914f08600bac15a03ea1cfe7caefb2c984bafc9b41a33097559dfcced90b9b8f1adc919234fe18df6f8e135b6cadcc2b04d04abd775ed61915621a31d871d6583683e70751cae7f200129a6f3f9b2eafcc1e40c079a542098ec4bf4718d1928c84424069b5b1393cac4a9d5036fec118fa5439ff26633e4773b503efd95114cd0b968a766d4997ad331220eaeae1480248d6e03f8fd6be92fbafcecb07cc0dd5addb452122cf19ebafc1e4489806bdca5e0ec515d5a79f0063cc679d98f80f45f858f38b86be6b8da526194e85552aa9873f90e8842a397941613a041c4de30a7800e6453ff93b4ac8908d31851e031491ee0e04868d65c41d484817d7540a225ed8ba5b0c073d120f8399ca39ebe28f68c54f872189940932a825af4a0b118c7c87f0af7797629273d7e6a73b41329b9639a88c35264b6b77ecaf0e209a0da458e4034b94347f4cac38a661e42c1ffebeaaff4845294d6b3841abd93047688b8f6e706753d5ed8016d98b06c57c51eb489c0c0b5b1ec31eff8d412547de360f6b5f9a5b74ff791f836990d9a4d1b338fce637a4c5e12bbee7a7093d6e02537a15bdf292520aaf05659b4b664749d29bde73837fd72c5bc59f4a04ef317b9da5cd1435bdfc1df06c9d2f3e7daa26424d44f833387ed09fc5cd75c8a5c3b6ed4302b2937509b29d8cbe5a86bfefaf4018fa2e77081a51890b188d6862c9e1a0b267a5e52f30b9565ff25bb1e5773f8e6faff69bd53c8271a159d9849af3641cb4d9baa9283de3fd82806dc952b06d6db47ac43bc162369070b35af4ba74514405c9a1c6a09f77f1492dca2f9906d5060fa105a4adb9d9c2616bf60182831927f9840f523d177edc7705d31e9568b97c0f6d1f1138f824e71ea3049208e29c979e0a883ab31816ac61c8295897b657f798a7d85db3a30f5506b35082cf48e5c92e0cc516cc19170ae2f6b85d80c179624e5b5b5c0c00a3b8135ce77110f2f8c5ece3f1262f721e260241871b232763672fcd917090c3695cef158932557a7e5c6ef8ee48510f1b662514ba44f478465b205bbc414e00972355cbd7fddd46a332a25e83696116436354c111366f10f06d3bfaa2d62e2b8e34fe5b8d683c78f12740bfc31994fa9b0f9cdd090dfef1894f509a4c70722d9c2c1d24c66b07d8d204315eac574e359292c98304923c5f91d33bfa1688fc2edb670d574a977f2a9cc2f65dd9a7eb0630017eb1ac12c86ddf9293be47b2657f9ba63063cb13ccf8eb8c3c171c5ea73b6d8a86a8be72f594a361c3c67e30588153de021a080b36cf4202df94a52f481688dde8c6031152ac190e8c0b2afa612f4383808aa868935eaee230170c5e97fc1875a7278137ec8c89ccc785399c3dd9200bdd281b2dcb9d5d52edddf9c3b0de62e260ee4edc132011c01327e46ceaca438a8623cef8a949c6f36c70c6c2cc65951aa83ca11a3fa589b62a59c5c4d6cdd2f5de11e3ac8b446e37e516f53a7c2a9a96c2b39c01fa497836c72585ded03aa5284a27e3c48bff1934990352dfc6360fc5998dc2b36b9bcdfe73dd2b1ffa2671385d8447d9007d37e52661e2426aeb512b4cda45e43aca6810b134d1d76257bd55715dfbb48f8a23e84d62f7a6f6c633209e44fa01b6a781b700dbc044136cc4b95e1b8c950e296151b524cfa43bc2fc70d7a875f46a1ddf2c48d3e971ebb34961774d80558336608c685a5d4a810cd129e587b8b4403ac54cc4e4606eaa1e7743799fbdf35291cd0fd13d19f93990b0f4a7c64260135d2c8c744ff1bf97c7b29784a15921d2391e9b9fade2c37003f4bc88cc1f86a732b010d24c866e0ec3dc00cacc304005d0e51b05c59780c8404498515c9704242d016f0ba958176563623a580d65409de2eb5bdc514aef099f98604f18d167203da6b63811f3145948330aa4fbabd6c7c13a5c1b890a20f06511c3ff948392716f892b85ec0da113c5d6422df7b6e7e4be87176ec8843510b9220952cba2f56d34a05a7555ea5bb852d6271e069b6112f12b67c0807ce1d343e4111be02c491db372717c9e7131191956f4af7aa5a30825b37f7e383d23392002bd71c7dcb912595a286d0591a63a1f954041ee221ed6b6424e74d31188e3cfcfeffb82f0f8db8a30c1d4755af97c9ec14e8ffdb1f0032acc228b2a55a950ed93c569cff42b45a9b9600f1d1d92deeb65b23849e6c211d810ba9f0c52fa627ed8eb63da1c53ead097643b024665b1e8787aaf089e6db8c249cb99326de82bff08c3168b3c49b576439b9bd4390d7c74c2eb8cea6fd8e87ea90d377525e264d0abed5c8ea496a629ced706452be880899becbd189391535d8db6fefaf9ffa8b16ccb760ce08a4e45312621919bfb67bf860afa15c4726b645e16bc710d1d359aa66c43755f5a1b8c12721fe97ae89967bfdd5433626c6a2997c2480cacc24a616df5bb3656322af97093be8e1c6b077d00486db8f1584156e1d7f07f92a3ed3b61994787bf7275f7e57e2279facea1fb9c58a3ae46b7e60e258b80e7c2432e1205744fa85f502e88b095b00d9f9e19cfc5c7ebd5b4335a2292a9d7edf676d0632c6d7d1fe15f6f5c3e90c1713b17f92c4d24814664369ef3fc2529a38e62d01cd1f4a5c33f38eef7162c9eaf93158259706a0652f6cb5b6579dee87059d4585e76c706b43569a3cc4267a4ddd920aeb68ed12a91cb9b8eb03aee308d1a4851aa4f28a1b550b6e62a000a63f6e8614e804dc8d29136af06328c60341e760309acf042193968499c410944a1ea5b215aaacccd7de9861c580f5c301a73c5cda09d3148c2c4009798b8a38ac8d976e08a8c7611a5ea491a76474b99e032b4bf084385ef50ef16fcf2a03d644453ddf9c86766d8293d982890044d80c1a50b0af38bad908447417b1d2c8db215b51dba0c38bb61330dfdd256dbc20e2649a7fe802041fa251eccd88d432b0136178644157a9886256ad4f947bd82d82ec7301ae0e656c094e66e94af36fb6c913ba74e692ac2f53de0db2a424feac42a64bf685e3815271a704b9d94d15f7824e6a6146b4cc916f0e8360ddea786c0ad0f238e15ab3e08d634ad1a1d7840d91f65521a5155a3654ac5daa611db98f674baffa071a3c2fc188be72aabda101e18325621da7b23f344e2746b82a6d35a895d64d743ad8bc7b68eaa4ed681e742212dac29b13137bdb928a86b76f427074cccc05f94dd653fe712097b28904f67b6c55b677de3fe0f93f8c7d094729f497bc00bccbbc8768477818b50c0d916e01dee510a1cb2655a04b2435d1dad57c68a717106ffbc99d2d7977126f70f138ac7bcad98c378eee69b5e17018eb33260a7d178c6f91062088c06561f30961419ef5487d7bd610eec5f3c279156f4bb658fa15e4cd748bfee5644a0ca2c0ed5185c0b35dc570fc382aae68bd5a954dc76938e37c83acaa7c7bd5d15aee0054cfd1a6f8af7062a57956515635bd1dafcf85b1acab6f2d961313808d98118ce477bea5dcf6ee3bd7ccc32c4ee0b9f01753f0bac7cfde44080ba663ae98a3514d08a1d1d4ac5c4363751a9af56bd0adaf51fb56c3a46b66c31318c1a20f21f1bd304b3c018f25c8eb04fc31f793e671139e88f6fd5ad994c0695e72de859850739dbb53a33943c2a8c052d8f423200795032b77e3a6cf3f2ca069163ce3ccc09d76a22f8cd7f2b313a568456b607796c8c2a0c7973c00c60d2c6258a8a89be82e09945184e31f9dc605c79da49a535faaf9f76978e0893d46199c72165bcf7e9386cabcd843ed3548cdd92c7e80fd715143be7942dab09f71f7ea1e420e13ce9f0f9570b030cf01cc438d828aa7f7441cfffa8056936c9452cd1d349781a76624859600bd0150bf2ba50649d86b9c9dc637090b9220f179be394626f59579caa0857e85963a667fffec51c1448c5a1ddd10b23c71bc3dd837212d28cf57a33d075dea24c2385faf627a41c4edb28058779f99417f98a9fdf48d552e3e5f7ca173629d6f10a3a926e4e58ad84269d64039bd4b8ca4305487364f6d87ff15f3d62eb49718eebd2f0497d212d3b310c247bf191e54224c920b15821143aaea7d65b73e3097938e2d157317fc74cd12d7734182d233066f63c240e658fe5045d328b4270d4a7f9d5e4de48e9b30ce3e9bad4a98d263087c046a8cd3ffa88fb643797cefa85339ec95e523d12fc193f7cb80bc6eb5983025b1a5ebf8fa8dd8ae9b9d9c79558e1374ff5bd7261d3ba42a25f373787bd8c03cba90f39b04fd7b376ae9c5b19ab6779913ed80c5522b589c40a643e85b2ba8257a402768e9a072cb15bb8f8435840ee8a9784d8cadf4eaabda6d091f2f8177171a5c5d474bd242e3a5edb5a98902b0814029a82fd3b1652cbb00290ba5a95212da465dd3284d1b47e6a3b145ae247fb787f617b2abd21e3a4f13a1de1595eddb4186b1ceedb872068d35de3d3f68cd933bfe6ece1cb0e2cefed93e047b9a23033bc0c0911a82ca9033718cf705bd6b4f4180459932d680e276180eca1e6fa6966c46024e0a681c2f2d3d5be308f8c2f15d8812a4e59412ce14d205685ac7c647ee543f2077015a6923b205ae81a585e230ed2def042a856601af062e2e23b3973472b7a5d06e345695008a26f62061a27cd182289ae8ec5c3657baf48c6e0fffa3f3d718c37fc85bfe0a7f46e77df5e2862fd074de34519ce84c97feecf6d693503e41c3bd65fbeca16f5658491df1e0e43344159d591a02dfe4137fc0379d67215682f90cc5ab5c601987ec9967e03362f842e999a4a9b70b3ef686635415b647fe9e0903937159ef4318cd03161725eb2dac62648bd37c96186a89b70dbb1466477d785ad447f31998921d46aa6eab8bed8fc138b1e6b3e2c1cebea9143e6f98d71bde2bd67cf69f29bcd44ce090ecc0c040065ad3a842439a78e6453e6eb2a68347f872db04787e819e9967ab6740982831404803072779af9c72e19a406ae0bb83c53cab7d8e0f11b82857b0c0ab3ec2f00c521a9af40cc79d453b5c7edc598eb158604933cd573a4101ee4cc792bc37020eb422bac22bcf690fb60dcd359b0947d2d8bbb31469092ccc6687bbf0bd0b7ce06158b23371857d4403cc09a3d5902073cb05779769370c1944966878559021589500a74ff284bd2086cfcc0470e5698f02cf586653645c0190499d741befab22ebdb6fea923c00104d823cf65e8e367674981408583d312668c598521b7ed750d60e9c8d08c1b34e73726eb453f17609d9614dbe2b154f44c9cca3cee64c984432f9a9feb78aacd02c9bb487eb8a5d571de64aefbe72c1fcd75b057b44da0126ceae42f673530ac816b0de9af597b7f636cde8c46c9ebbb749e1bd98a746da49ba450a99e07f63035e5ea2845e10be39ebb796ae65f6b05e5fe31872db13da5a96ad83f2086b682b49ee9a47702aa217ceee9bb65eb58c898f5c4256396f10180f3edd6865b07979e2b6430964b705d21ebf4095521b758877cd5be4d201bae17f3db8c1a5cf9c62155cfd06896e4296fe6cac5809169ef4bc175a509416b5736066e3cfb5a736f1a085c10e8c2f9dfec6e501aa20dc9b9dde57cf396492773ab02638f79569e6df6a7970ca63290bc1c4fbf195be6a19b67648f44ebedca32984effd594f976e66ddfdb8f3896aeadb92030a420dcaeca5193449fea6ebeadb0b5c4c12ebc4a19d93d7ea427af080d68162b0180df062dac4046d981ae0e563c35c7b3fa1011e6f31be7c1d69fd9b8d1b3c3c35c6c882893549fc4dd9a8aca56d1fb5557e4367056995369d4bd60cf8d73b8908e2c19aa66a0e3da1477f443928e1ab7f7c09cbe6551c3df88e3bbcca6e25db569bbfcd3ecfbe5566478dfd649613270bb3bea387b3f8e9b50f69e45bc8c98798ccda1e5dcc9b357fa9788e42aea39e1817215e21f6068597e50969c9a246936b458cbe834819b52d372503270ed67d2cd5c4e18eab17e5dd7d9fbffb4616795b19eb58e6c4564e72895c75a933fd6661639f389df06bdf051de0f743b8f92e41350477062962bdc297a5a2ddf5e4fc10e42aa9a69f747c60c9717a017eb6ebec901ad12a33a96431bf562592b2d4aa0844991d19a1a3e500d09acb256b215517aeafc39945dcedf7bafec736841d567dd5f52662b9328bbf0a9633a906963ef864c6645d26ea485a0f313e76f4f050c25852606bcb1a0321439458d2fd8ec8904a0d32779daa755f04744772310b5af0832c1369e02643f7515bc44958061ddd79b23d85e7f03af6da0599d1120d6752014b77cff1f6b01144af73dd04bd68acb16fbf1621151f4b268e3f01b7804f8b5799c80800253ec9f16692fa22d100e60edd05fb4ad552648dd810b5e6413308beedbd86f32295f51d86b33942b006c26530d7c0ba17f98dcc16183d800df5263f93494af8d681567eb4e57e14fff78b35ff3e5b6fbe08b3d3ee764fffd111df4637ba1690f2ed12e97ec8f749813aa8f9e3109fb58e592e80be25d4fd39b9d1ee07b86de2ba5474a35b093052cb80c15a6ff25f1f566d77d40f40ee2e2e97bb5d270a4b3acc2378ad3d1d1527ce4f53251dc00dedef8b4eb3e0ac5ee64f75bb26536ab56f0a0c5ce619ea78b5202f34bc747d1549c902f39f0a6e64193781a37c3dbcc1b7268ce0c70cab4fd6e2fd4684e9e475822bffe72621ba66c062f1331b78a251ed2865df8689b140e2320d5a5c87c16e5cf62e3efef5fd7fefa5533a3cfaff69cbd4b74a43be4305e5ba17d5a2885a7f2622b84e5feebd3ebce74ed059bd877d41a85da3838cd302f9a63db8eb8c5112eb38aa97eb5656fcf8fe44d9dbc598c167414671990fdfb901045d301644e491d06eb6053b14981f6599ce8a4324268cb9656bfbf6763174f1bac118164c309d69bee535a10a0217d04f87abce312e8d93b63e52788d800c4f7436aa11077fe9d5520c3bc0dc54129a2e5c82ab2f4f80f417b69466cd949af15460331746d3d501c225c0abcf65e53ccb64432d5cc6d8511af1aa829a6925bca1607afa7d5606e2886f29cf8584f67d011dc9380e9b96c97aee1e59a01c516abff84005f1dae727f879593085b937642a8f782657b7fa5ecce459a94381ba970a3a7238d655f3223d35630f7e2165db21d1431e13a8824a799223e84fc5bc91bd44e81b1b7fe17495182fdb9c451878ab6a6c35773073aee89a02126a807d046a5b58aad6c77f53b5a55745a0263b148e17c5aeccaf638f510d7fe14995ee89a241f74dc0d21684e6622634896193e550ffa88d402a27ecf22711b1ddb5865a222c6f8857cadc740dde37ff013bb7a86bb8a92cba8a43faefd2f053d0ac55f6761d5916c542dc991c67b611249fddd587be3f75b3fc6f46f343d792b7439db87cad46642358472a665a25ef4b3a88c9294dd5269b6df26f5f9512c1e37e0c033763cbcea5637fac90802b50360773f0e4c88dbd7e61527d1658e553d8e8f12fbaebc370d530d2755907eae1bee64deb7ea07e6d3c2c2d3d5339c2cd91baa7c77a079c550eb8ede0dbfac298fa5d5bb2ba268ee608a8dafc9ff00c7ffccbc2f63c1786bb88b10e1c97ff3a29330f2c66055d830d29efdde50fb3a56d08857edfdd8d30888986a7c209a1773b311677172f1ff5d69d8ad92884bd50f6c9785738af6de2c77db9e5a7c3bc898ad269718304309fcb387ed5abc224c3a2f9fc15566ccb58e566058256eee17498df52b637a06fb24d74b8d908694130f55b8439b03b503275be668bf7dbff5dec716906ce3ffa36b4ed8e9ac440b82e2332368239e1e464400d319b9df58065705c28f24e92b3333202d907754ed3e0104f4a087443d63632cd403f78c30b127f9a1fc1ccbcef0969c250d5cc8a897b7bbc24b5967103e2d213e9b39b59063bca900f9594b7acdbb1f12cd37f60abd9af89783765efd7f08785621547d41e9cdd38529425216274afae473494db617296ee71d8ae3a55f5f4b98a0ced064f733d13b14f548b0e5791d62fa1edd6ec615b8d4fa627c9237c02b01c2c9ddd8fc05f7e28c68368de0c554be17ae177f313b3643733652cc10b8612d067364102fa6664f5506023a7d6f12ce8a9fe4cec6c44a28fb82a164597d5da87d71eaa2021b05a60f453d9f755a0a83e2ff3e6d13f701c4a47afa744f13a442bfec36c1545ee2c7d6be8850accb827d2a9f34f0804334fcab93cc2412260db3ce0003a72b84d92fa0374848cd6774f441800001d81a3c37137f2ecceee332e9b1ac7d813b67a6796662ea4ffaa21ad4b9403047cb8e14eb861dfe62d8d668f964eaa358b69c841221a1442a195c51d5d912eec27ca200ba62f6287a6249191f3fd7c89b09a70bdcde98ee8ad98c28bf7dab894c18e6eda10c1ade19167bcda8eaab78cbbee41138bcc10daa922ee2c2a58423eeb3c99abcf085c22bfd2057d6dd863296d21be583ccbd6833f9f9b71e8d0161505a6d702a400476c33427a75308737306d96a55d5c095166756aef22a93b777194ea2471b848e81da4011fb714839046924bf564c8dc9bd05051bf82b1389a2da8cd37080c96a17fbccae04f35e0c43ee8c67b26ada696334996857bd33f4d117969c1e7f5d33b59d808c9f4f2471c159de525a2021901062a405e0f523e2f1a0191745bf41be419eefa101b10266de4b58173e11c729395275091215e93bc97280048c55063bb55197239a3212ac02c55de5d0e2ce6ec18a397b5154cad93684414cf4214110e596749ac63366483bc13a6885145a2208373a473093a31a067933c399a9ec5c2ac12af1aa8adf184129bd7bb3b5329f819c5d0f1294a0264b5962756266f8a50c19020a4295275503a108d6ed9afd6688796f2ac3d874169335c80411c5c2c072f8db4823464a7bae1f0665d850fcbb86adf4704db0d014ca2fa5cade9deeaf88fcba43c75071e976849698e67a1fdeda1b4accc106b7b1481f30d5749636174e5678fdaabcc887aae5d7b0f4d246d8c59dc8be232ffab5de2cd153552503e1c3fe648b39b17869faa521f34c52e6b3e42ba4f937e1c03e1891ad8e33469e22c4269138e733a864be404dd0a1b2d51353eed835ad1e5e1ec0b01715d553fdcbcd7721f532fa74e45a5190ceeaee038f57ed8b9943d019c21e82710e6a4c86a41f473cc95fd18efab697ba52e948a9f8454e5c16cd4a18f59856875f12d4024ec8dac291f70a8dd20b97141a22aff9806dc653a13a3314fd55b5d058d53d4bcee572007bb3f4486e2271424c8b213d605fc1e5d075e0f964a40133284b764333d929549f149e46b8c2d863379a41532fabaa3ab31132a9c3380f0a7b29780a1fd0070ea9dc2fc9971dc26a7326f84e02fd8d92d1b6e26ecdeb53fea475126c4ae444bb9a668e8648f1b9c1c3013fa776f6946489aa28ab922f1b82d2d7a0b09630d5005d625a21739f1d37fdebc000843e84462c7543401c9a028b0adc6896bdafb709d9cb81a7c7eb7c689f30f9b79fc3f7b28218e13a7bf6b2b3ba5ff437c216ee40333eb3335ad86fd9c1ae37a2f8db66cb874ab4c93a5c26db0fbbdecd95284203759775889bfc4d09378b7e95e57771ba82af42e081003394fc356b64f8c96eba1e9ce0ab5c82063eea84478a19d3e45c5f5d2804ae212749f2b61882199050d3fe82d058519ee8a6b762330452fb68781f2f98aaf8b679b0da4d162f14f5a1c504ae915d76dc4ea146017f88468bfd85b545c1b722fee52c2a204b5c2e2731c4dca863dbdaa4730329ed5449f38520aa327ba0db0d58d3361f02114ccf53184c6d8301fb83ad09369a1e458e3ad9607174b6d870aa75075a399ad8966c5e0439fec1d8648f4b69ce250ad4bfed52f2cb73cdd4fd7b7ff867e6003758aaf480b2af04a5ffe65f2f5f108a9937bd897b94ec59b9d55e10d81f16d351e30e83f698ed87ed5f918d82f46e06f86299f4a9162a1e78fade081ac963a26deef221615a8d6ff3c93587aeb8cd62df218e07e1e95738490321bf8c166d1a9a90bc9d816feaddf334c9aaaff4210b8cd678278b467d4d006948939c16c086304b93c658e2bfbef3f28f35f9817e754799b4215e41ca04b532cc001da9924455887599c2083ea39a9b55d011f5283aad219578668053d15063057db6ae99583c89f744bef23d25290699fc2e1e440cc4fea2cb03becde909ddcf7e22d591adae4221634f698c0d7cf0999386cc851148f740c99faaf5d47d3aa619a0ea51863482a4fd3705ac1ce2f6e99fb2235fdebf22bb6eae3404ab61b748e1190a65560960f2b8373d8dd011a0bf496b4a9f1262a38d6ad82faff73f50ed2f18cd4e8118ee3672506002da6fcad523361c232ae3762ec8da80dfd725e168c6fff06c44486b464cb842494cc0b99902d23d6d0f766ce3de2ca2c397ff24a5abe0c1de59926c566019dd68ca1354df7421fdab3dd13405693f7fa85d0db1249d2cac77a2b0ca69a67802e5d1e44f4fb23c867503349b9d5c58224ed045d295661b70648292dd08356a1a106e39b0ebc9aa8cbe710fade98b2840d8d0a4776394e7e765941d1b02c8ffce03c0078637938907010739719cbb6e39f68b12d73b9bf34ad81f117aaf4555cdf15344a78a2f5f84f103ca2113ab6cbc2b3c84c56efd08cbcdde521f551192b513a328bed007546f6371b48c5dd90224005cb8ae2d22bb0dde5d9a6791304bd86403dff36188b4817ccaaec3c6aae0abcf8e2ddc2f0d9c4a70948ad9d7c5af1c1a1dacd151fa2151f303b41d547ba975d7d58a83cddc9f511827ba9d37908519157bfc491cbe1831639da7692f385e351a324018cd46978d84bf5ab8e87887d79fed05965d38e1d0e3c89069a50e4e7cdb6405fea09160013851a49298c8e477549571a2fb7b5ec088093b1703c78b787c4cf01b8a78677be8e006a999caf71f3d71f44ba11952b4d6a853e2e0748514534bf46776851e2d168b0ba75c5456b870d163cc466a3bd9033d30816c1430005b52e818bc1c5fc4aaea1d48089b2a9ee8d4ba3379c3444ddacf7dd112fbb99e832dda6c70be4f00d192f12d1503bdd4ab3d72d812c5992ed550dfcc029ef47f0d31dfdda0355df3312632575517bcdd0ddb223752983ba90c2356266c531510c77b883e2dd53b898fb97065187f63ad1ba9f70e94f90b86c039b4345dd4db1fa41f11569652c1bb4c030422d2379d410386ef46981d9f624ab32187f0e502022f64ea802b30ec1564f6566d68874cb3521db7750d6603306005c237c289341a4c47727b70c2edb35024bf0892def876a8f878f295ae48253ee0a8842d154b9ea4331736ecb835804f2820187d51d3d075cf619a2a9372933562b49d00817495f756018af8017ba1c5963dd6c0645c0616c7836f3866d42a148010d8405943d40a27a487f7467e401cc23038188192eae3272e5fb1f2d89103837396e6b602c0bc3efc8f81402fc19ac6a8eeb07634ff9043ce481d82cbd244e7d0cde97369bc476b6844577873f667c32328a9142c3320dafa0828f84a08e9594c8fb8c4bd443be7e62fff8c8d1e4844bdcad1166c9bf57e5c8b8880137a83faf5af0a2e4e39c58ea1830e67a1bc6ef218fdb7d4b3e771e507ea8d45ba246e3f8c00c92d899ed38ae9b5fe590f81c9d16752ebd03aac2a7ec3a8e44a83449ae858a4a0181d0dd8f27393e69716375c6c68f4c7983b901c871b6036e3c91e3d783d68525e8638c9aa29ccb6b87322694640fc3ce7f25d1406d00925b005116f05d50199f3c0869cd30d3e0448893136c18a36a30879f9eb1ed54fbc693702c59392083f3b45712a67473072fd72c161a5d252592be9a0f92cb0ab5583b6d9584d5e255ae0027afa8b1999d02f36efaaa248aede712151bb763a8f3edfbd1f3705f5abc9c00d11d79f2c1496095c39d2c94f124cf128316215887e125cc7dd5c2e720842a89fd650b4986dc5e9b38ac5ba45c832a9962586be7eb9ffbadd7053f1549314f25382615949285ff956fe9a5cf4a2c258a744b736b0084a46f93c57ce53cfcb6a5926714ce1fec572a4933d8223cf3f234d51d959c3babf9bcfbf04a8c01fbc3b2d1c97b255e81c9db570d5c299460a81d7609250203a1a54128918619fc64fd76514df5ce18aa4507362182ccd0318a7a8548b1f6207343e984ed0bdd80ec125617997f5d10b36e31dc8ea28baaab41a89fe4edaefb8df059d6834912e3b9665bfe0a7bcc89e5f587f09550691a0be0c9ec3fcab8883817027ca2e93521ab6d4c948effbe3dd1856c007dec2357e910a0f96ef4e7344113cf012730e91f506575243755bfa3efce48dbbaedaf2635c9ad458f3e190724677008df0be7940f676325420fe04b9102c554666db741abe606c8860a842571aa85353aff3d6eb4c83b3d736c11f972ffc7b5a4efe25b07aa95f5f4f13c5bf0980582614d2f18447b6d6917787525f626117ad00ca96703fedbdf6c65a0f43c370977376a6a438f0c09a066a2e4d14aef055efc58dbe6f760bb70b4fef77fb7ef762aa0f2de6557001ead12eae4dc3c00cd565180624563eb63dda227ddd85fd71061f839d917a1ba016da36303a4578633a1b033cb6655d84b84437d08a2965a7786b6745342de386f1d8d541c58aa4fefa59fcd5a92134fe7d7b0e284f7eb2709ad4fbafb3e113e6d306b69e7b372b8f4a0b0637322f889411d1610ed373dbed99fa0f7ffeb4fea642148bf66056f08fbf33d00da78f640be376e6d39fb9b546c2660e67c313a527b649340a015e08b642cbecf508d37a4709a26777897df7468da2b6ebce3c5aa4edce45a4d8bceff80a241c2a98bbaf7544dbb2865d3895721c28c03742045a8b18d5570232d5a1d246c492bd10e618ef661e850e7d03206fa956c50fcbbecf6b9a8ca54a1168527c65b8a028211698588a278cb77d3c0d5a781d1f60a9343013761e50374033aa1178e79c01edb41a45044b599778bbf9e2280904c7094be7b527861ded088f38f77787d8bba22019674f5e4d3301892d83e8e3b95a099850b501103af1c693fd8f9d1ab552e3c8afde47e7a08b1bf9dae336d3051a4939383ebf7703f8b468f9605b5285093ff8c72e2708f8c35600a60bdca4018fc64c8529a93b75c89a3adc19505299b63ae2ccc465f97af1d8f004d270a44396b825277f561df4ec2591157a04976a19e0d3d5968da76b911facb124a110e9f69fee4c9456397e62023ad978d2e2432fbb571e82be595ee1b0bf91b2306845cb893c645a5e96f8f7ddbee44e4be56ad3f7a4bdcc2615097b1a478ebed3d1f0fd69cdacd341de67fedf16fb4281e46ec3796c5b691af91caa9e8bfc02fb9008fbbe3706819060f79e0ed333886817e77b1ca0299bbad6067f029d7ad756e10ffb4fcc859bcd7383b0876d74526a7d9c48613e3c68b077fc08c9a097fdd639506969157e0dc0d2063847049965701c11c9969d27738dacbc2c6bf51becbe57d285927e0ce7e7a1e34a65b4709ab4ea97b9f0c75c7258648e832db188233a8fdac4677b6b41dab7ab68576d60445a202730e574241772b18f708ce665ce5babdb72b32c676d25b79755b7f610c1fb273b2c0f69841c658b9b53de09c0f706a47d47189f6af0ca84bf8216a2a7708f2333bff1aa756e4c9b363b82812b174a6be5a41aef812e6652c7f5b38ad39dc0281728b718e5c73c37864cafac5cbdcdb4e6a32726489d6b34128602c52b94493b33d91caae02fae460976c1c1634436a2c4de988453db0140a471df30bdfd072821f61177f9906662022f859bb6cc3111591e4e40aafe151a5e1e417bd4ff4b06c502ace1bbcccfe6b6ea718514db3de3b5691a74c104c723f85912f765bd7a5a2df7b593a03297728440fa2904040b9e1135d392dd7e46cc03791f2dea47522a5d3df7cbc86ee4d71830e85d8d419b5770640c31cedf2a91c466c6a81228dddbbca19c1acdd00e3aaa0b4fafd0321b18e8faf7d0b69432d5fbd2518174628112707beabf06a63becf0bc4bb74f75f75a54ce33f29bf1d32c289d0de7d52cdc5c23f0c344881a3635ebe49860b01059d78933385b760f8bf4995e714d18a4cb4de97a29b38a09a08a6e82f300a307da5157db5e286ffd6b536d6f257a5419b12caf755589713948af2718f3baf569305cee4a3d7419933a69910836187afcccd243c0aecd108fdce80a2470ea961192521052fd468340cac26560e62e2c9f8101dd501a88c594d740c4f309fc8210a163c5ee3c82db15cc519747205e0762eab09d9192d295723decc1bed6fedb0a1a2404a50333e957b9ea87719079f5267610f994f93b3bb45da515cffc646df9499febce31bac546180718598c8926c2c1d1024a545651ea7899ad467828c7ac04f9f20874f23aebe6c555a031d7823500348007a29f06c1186c5120d819536de078a4eac35d34465d2a4f858b5035e0838df377177394c955bccc9818d558525c92587ff342f55c7280dc414953c9793fdbad59f5f5d5c0cdb5d09f0e054efe17bcb5dae2b6460dc3f6fbcf50149e813d094c884d11c82ca82713cd2828b298874ca01028972807e45878d87ee4741cfbc526b2c3f87de8c135b27873530cab60b09c6ce94c29c2c39a2fca2b5405a79824fe6812b6914aabc132c3209542066690ebcb1b33c643718d90909b129151a72f50ddd25188e16d1162fcf937a84fff7c8655712f8c9caf066e46fe41acf4c32641b8228678ff1ccbe2890b87904f26ae5c9c436e7bbd9add8b65c6033a35054cac38cf50a14b7822e61f56c21532d8761364d687e7ad9cbdd3215cdd454fc445e95721970cacc6a94f5e74df5226df1dac25595c798f5243411d4975f81cc6e3d68bb2e219fa57459ce552dffd13cba48230fc79465518e3264f4f32583d76034da808cd57b2e9f155bc8bcd759e1ca07833dbb9f8ffa2bb8d5ab076d378726ad664e662bd857b31e49312e5ffc174e7de75d6dbdca7346fbcd7e3884dbe8b5c5cb223c6e60a22ca23289ed77fb63111573d126b499905796b2881af8e8d3c3a4112ece5042ba237bd1c6f931581f1ea5c062d3bbbdf891a2b92afd964d1f0648e9f11a5d8eff25f19a11db30b12980f47fa6294c67f318dd86971c94faff7a0581ac2d0027ffac050c8350854157f907a0a5effd7e4d6acfd66de557842a7214d16a336466ca00966f30bcc56a1bd9f1d27b0886cc3906da39216b4dfa472b0769feee104d5e66b6b49ad78bd2ddb6a972dc53d17dd4e377a8e5cfae707a03619699408b3d5a76216533a561dbafb34fd814fea1730a1381dbe967cb063fac08511e6ade2a7eeb141e0108b744518c9700540122ec6a84824f46fca166e54d529bf529eb259699408c07e940cb64d442fa4754228542b2578dafb2fbab0e923257e21a4295a25bc5216f598ac72a0de9c90592690637a5ed742bfee5a853574d86d68a0baa031bd7f11c49218ed3b87c548f55de9b09866613a2ac32f6db5964af421c625e26d802441953ddd0151f1ac615d139974e0801ce159606228a95bf62dea3ab7e985da600fce6587e90cc2d95f27805a4234bbfd9d1603bb3f7f587cc9a904cf309e00a0c9981feab611d7ecc0dde79caa664ab6ad5e404e1b80e232664bd839db17a881fd43cd5619a13eea1359d20a873b81dfec20da8fdffe1312fef3f5627bd30b165083ed34c783488996b143a02218a327e1e23c2d18bf59616220e54ac67080699192fa01d762aa45aa8b4c4dbb39bd2c999a3155ae3b9083f9a3f10f9063797bf7a58c3197302b718f7d28d3877106d86fcf16e9035807b90c8cf60fd3a8931bb00580c8e0a3a4c2bd5aafe472ddb9f37e8beee9879caa3ef8f76637fef0ac17abc70d6d8aea2c189b58ec5452f094ee51798120122394a52a428e15aad93a25c6e07ae5cb4716f0a509eaaaafbd153f76d34a45a97fa58a84665c901584b8d30f9e2f7520a4c14d08f37b4d28d687412ea7cb8480d6888b1073d337fe8dd56ca368ccbeae2a7494c47de5e9d1c46c845714f28378ea7e195fa4502aaf729ee2c620bb0785343de473ac5e83d715ae07f261a809cba4073b8ea2746226c3c511bc68636a339e1ef2ff90a1bb0c02ec863484806174e311b125d4ca343efb0e5c964b08908c81d1a8177d21f9a5c7c5d44fc2c6946f94b0ff409c9cc3f5f282ce29104344c450a63ea8a82ab62949a255be2dcc0283176a07ac020147f58fa20a9d512d3f308bcfc11f6d1e8ea2fdc84bb47910a600a178317570d358219ef34240584cb442d981bfcd6de4da45f7e0d2ca4e549c01e26388fabc12e8dd3235544b217570462aada7d0aa146c3cd8204552878f6769dadbcd1c5091b2b2a02f51efacbc0dd814d37da0b1f0ededec1ba4cbd89933ecbbf9b1a5e7a5fa1f31056bfb1a666674df3b5360c1331facef18b72e61b783fa0e54b718ea90d7ccb0f6c9ce7a023148e80f828a2db58a78268a0fb2148786bd49ff21f26e62b517684dde9862d70acb67ce66320c5d34fe8983adfcefe10fe6744c168a69bc90a34ee46310e46b0465188d453426f323af8f399dd079ce55457963caa2275d13271ecfc9abc681516bcd06c5a03a2082c027d4f818a857d3b0d0c70b4f7e6ab48d0a4d049eaaddcedb64a3a78e3414c270ce2691c725a7647a0979d4ff37cc0b2031ab022a9f6a059aaab9204edafb58b339a9e888f22710e27aa61dc7f0997be1b0ad4dddc70138ed91f70989bdce0500d1e86b2ab291c06c95c16c7985b74f2bf6e8eaf78e3dd0c712f1c0918562cb3f6b63d0883006d4b541af0d5fa8363479ba95c562c485f909a9401e4781e1311a9d486e95e22cb9cb1789a5b12ebe29a77373c91836c7126162a29a8ce5436cd63e98fb6be9c2240525559e09a5ac6b95981393774820399fa235ceb796baa8db27d866ff69969ba9d49913f568f193326a6d9aeb3ca23db30493b437d8f63067a8ecb7ea32ceec919049c876496ad18cd4d24d42a530bb1ec3844ef57a9a6486584aa1ffcb5b17d227012a5e90151e62219c1a31cd965119150de9717f39412eb312583bff1c9e52c1de892c5b2498af6efee5968e8905572e857c007345ba2e03d6136ace0520ebf23507f78b527c22ec3b1c30c48e7dbbe6e97be71ec9669388eebfc17ec5e419d3c87e26fcaa040fc0b80789d64d03f7c794dd1b2a5009fd181e465e9d941513c50a795f5c6237fcfe7208b86ddffa254e7ccb4c89a1a108283f9ab2c1a79f6c983bdfc5b00d4dab23c7c3bd0f99f152b1a1bff2630801d9e56ef0248556036f2bb30f8effd6831fd75e1652dca715f515e1afdb5f7730081ca486a4d3c2db93ae0536d8889f93bbffa5b93a38edf0d8b82e91b50d408899eecb648dffc27bf38d69cd49dee68debdc6da40cbcfa364a573698efca68330a5b6ebe3e4a353c24c94920a130225ee10cabf2005e22d2b2cce881dd19556082eda5a8565bf517f0c734ca393099beeb84c2827a34b3c9eed142bfe5ac8b499aba498e91a0a07b10ae64d172e43d3b8dfee90f362d5dcc2726d2be632902ccf7f63bf95cdc97219e011716e045897e3cc061c9a94bf568f53d77ac72c9130740078879b9fa3f6f63a4b2a0bfc1ac163ffc9e6c549862173c77c6d4ee96fac8237e8f2286b633219923bb6dc893894e8714be81e4e89d4be50903838f746e45831a02427be47db5ac073b9adb05481ee2bef0729e200a2041f4b64199563ba198606a828d2133edd0429165de443248534963b497840fce9587f6e6fd01ec91190ed9eb7d2db4b59aade3d0988c8b197271ee5caeca83b5e330ef8199e5c818a9f6bd18c1675a175e178529f85c019a9150c9d582ba830923f5a269c412a0f8bd7af57a92b2cdf9c5a571aa4f7803c2be4382aaa753959540a1b72102feb7a795634c3c67ea42d13cd5410296a136c7d024ad8e15f5d4050b29a0ea5aa5267382eb52655baf5c5f46216920df8484689c14a63cda7f05b89abf5453c517de68bc7935fdee229d92f7e09dc89db27a559876af3e27a870e52b5e8db147cf7b64ab3fbe48a11c8087da82dd96d4d6e29659229055506b905bc0537464022a847a11ee5dd60038f1ae7bed607adf56c2440fd9647fd0c96168fdd85f25c70973f4d6819c6443830aec381c915fcf66f5cd721f727efe6060677f973de05dce55fc302181683bbfc695800c35a7e010c3b851c279dba7b3ad6c3d3135b9eeb50bf6db2935fea6888573eaa8ba71a7ca0bec5bbb969f916af65eef247790b60584e2371977f0beac1fe413dc35a3cbeec505dec53c3f8d45e4a06d5a5d37b91de0a1e0c5d71b45843309b00e1060be6650500958d0f3c48d5a0e162512d276e3395aa46a76683cd9dd9a3ac8b8d2337a9568b88babb6be96789bb17f199734ed3c6b3a3699ab67144394461a9542a71a7a42b276edbb6edd47264743a9d4eded228ae7d8ad0142014d7537eaa4667a9a58c9efbd22fedbd2860be3f0362a458acbbdc45b1d86f9ea4a4a418b6902ea1e3ab6d0c90f3038bdf31961283318c935e5cc86177b58ebbe2cb8b0bec2eff4bc4bd1c5d42c3e2b77e2cc30250a489173f3086e168a00b2124a1293d61086318c3c0d6893dfec3c671a3585cd13e2dd8681647f4059646371b25d998bb5d48734f894d91c234901206f70d36770741153cde55118457e103941ddc00ca154dd3b4d289863ea31b8a2c954aa56e285096b823d1c1d6cd3d044a4f54a247caaee82f1cc96328d8a8d4f893d43db3293d52ea10dd8648cad67c626e97507ca20cc929679425487c2e682f23d1ed689499675162e105bbcb436498925a4aa95524ae88524a6b690868e848974c2513d7cc436e1cea990ded9836d3367700d696241d1bb7715c33577174872e57d1c4bd8a136c7c4a813b394339aae20920b649746b45dca4f836859c720ee5dca8a40475522394c84d49e9b92929464811e2a64ca78de35215976752746e942c97bb3c8b0203594bf4f22c4a959b8a9fe97482bbc9df14eb69e3ba6b252ccfaa40ba916fe9f22c0a1637153f9f6d1cfb9b9bc6e519941f3a7674d141f4e859ae955bc5bd1e7577fba925d727eeb8ae93b03c7b3244c505f9a37679f684c94d3d91e27a1a09366a034a035a03dbcf3971e2c4c96c369be9a04c2813ca843259425340514047409fa04be8126a843e418fd0133c31c11312c07ceb0914fef589089e88a089dae3442442ca91145a804144193e3c85035f4851468f0b4ab0835ac2a7841eba40b28226be18c224003a50c1d1102f78c2a4054f9ab8b487c8144a34e9bba124075977ef07d70f704cc3ef5e0df1ca105d40815a2d4a85942da1d049122581e59913242744140acb33273f542439414245c81d7d5225a43033770ed40835428d5023b4a746daa3d1293df6448d0a8f1fa89af643251767c834ed91a3442c2839fa5bd797d3bcabc167ac7f5ff76f0cdb2374c0f66fed7e69e8332470a58c69faa3d14685a81015d246f8996f7d94522441592e98a25204dd2005a34a7dad20312ef8b7fd87128de2498e508c1ea162846b34894d5d9e05cd6e90131e982268080f4c1145290807a02b476808a80f354247409fa04e5027a891d657d33408db940e61fdf20ce88b0bb62e11365e9e0155b920c7cdb43e1a6b751135405cb411405d5cffea1f818e62043abacd4411451451440a8aa00089b45a4c06516ba51db0dce5d9141fb85488298eb09efd297ee0805b954da9663afe16073cf1bf6f7d48e2bb8d8d4dacdc5a55b5a6aaa7fa09ddc527683bd65e9e35b14da82a659b3469b273830d85961b3b9e010db95b7357ae773236bb7ba42d2f2acc2bafac6136c5111cd91898596ed821053e8891050c258a9a84b4090f2d2d394a6419e305394b7c7184175388a8c2c510428e401172c61651728812458c201518c1c4cf39e79c73ce39e79c4c86302962b93ae79c737e8d9fa5f193d56d52d135279323774e2649ee9c73ce142c258de823aa3c6266e42eae6c2507227030c50cae6c91049325975226b34b630062080a2aa228b20319c08a30e20b2a84221124480b881fe80650e0b3240aaa812525c86189133e500ed00d2c89dd7a79b644c73e531d2cfd3e8a2ebe2525556249c995939231b84bdfd21ca20d680edd81e2d0a238e890a228091737e5427c512eea9aa23db874ca438ab395ea2431ba4988dcc5975218550fa9244524d9b9e0d7f808bc1d92a0514309144024018319073e20c6067c9ef0005104152a1e4882e218b1f2051443e80409e38ca0223c6c71c4133d2ca1a2034abcf49003151af49440064498f06ab0c48f162a70d24418446834b220b078c20b16c842a0c3159e1c2890a0428819ecc4a802f3690ed5b1f1dda8bff13cfc46c797d5f1857959014065838666f0d0908634a4a18c81f35125ba75896a48313184265a0ef47b4991590b7e66548a66547e3420266bf5124160ad240d1af62b4b664272e783342ec79f3b1f5c451f7771f4893e1a10169c49ab0f9e47ece1369328cea4f85aa19ec6bbb0be615a46aa629ee57d7b60fda0e3bb9a595888f53c22eb595e0f16582cd6b356ab97abe7e13d582871b2bb87db8cf0d3f52fc277fd1ffc085db3ab5f049712c73cea57bf99384675342651dfa9027ed17897072795d683d30a99076716310fce2d2ecc83d38bebe51859b11e9c61dcf91b57cea65430df329938cea654305f65fc56bf923c23131313f330df2da03e46c60359bf5af5ff603d0d9f7d59926bc9c4c0ac3e9b52c17c8beb530a5186166bb55a3d4c0ba85f7916e8cb7a3ea1c0d254f19b5328be581eb8f258f39352077ffd2e2d99189815ab63d680b05ffc66f7e6fc2b140d13f86b75cc321d334cc7fcb93a6617eac402ce65b13c8edfea578fea74c46fe5e5a0fd3323f0fb76ee04ba3c33129af3e8366b36ab572fefca036fb8ad0eecdb5ac56089af665e7527c47835f15b797e14bf6953d5c57b9e19215df023fa8e667238514d7cc91e4e145fad56c7d7eb52f1b30fd31171bd4b5743d398403ddcc6adb86bbe7d0fac9d075a19aaaecb63797e145f3e6e336bb5b6bb7bbb2cb71fafdc21e242424242722497edfe3ed673b4ac673daf9ec562c967b1666ab0ea5e0396ef8c3622bc4b040f842eacdf783f9d00c27f5d42cccf178177f4cf1f815f32ae1a22d4a8c1fa1a2fc3fa1816eb45e858efea58df1d0ba603613e2604168eff991546f7bf5f76db7edff78510c27f38703c8fe8c292c562bdf7e024627916e85ffd587d37635adf5a4e7cc9fc7c4d27dab87ebe073f898a8c5a312ed7d745212174b18772ac4ec68fc5faf9315ddfcd657a173d1c0c3f83913c072e0613399273e148313f633ee6633e85bf38248e8f799791791ed1911c897754712bcdf24019b895f72dfcf76af55d0a29be5855dcc689dc35bf15d3c558fce6e3e8e2cec7d7ca03637ef5f3371a13851fad07d257e663bc192836b63a37da688497bf13e14100b81e74b119e1c1d764017fd391dc66046fba805df3a727461611c0487279cc2e706a71e77ce612265193b002a6990f4a22d6d7ca7ad6ff6df9ac77c9ad7e068a05554eb4f27eacbefb1f6ee445f19bcf731a71312fd3c520f1fbe0c1e80343fce6b3ba08742fc46fbe13b59c08857963bc1ef19b3fe385ed673de8488e145ff2e78fbbe6a3621eac17e5f2f6e78fffa4f1313faceec67b5dd701e9fb1e8cf42611085dd8fe1b0f4e3f713f8978475fa3f8baf1f3e7517cb50d1bcfd106089d57712bf19ba61351b52b0fb42cef86e748930874a46905517c01a05b507dbf249a45f165d497f52c0f6c7998e7e17c575dcb24faa003b90a77c149548376c14f5e701211a5501d385fe5362ddefc13d7d5c4afff739b6a2a7db4150f60828da3c6a6200b72564a73ca7cfeb84d5f99b229c33265a714e66d2b5e00b95074a0f82a7de4aed00553a00379f536ad96349fb22bd1661e89aec8cd5bf240e8c2b6e7430f4e990b4dd9944d99034d99034d24f3c8944dd93c32916831edca467730a3d2537484720935f405126f8c97770089b48678995ff1a55fa79cd3ae7ac3fcb9930a1d862a4877214dc82650fe9b54c1ce97f1e315bc1fd3b35ee51d2c99266e60ebe76641911bc199f83371b6829f1bb99ee2829c94ff637e952efc954f1385e93faf7c59e5bb0af2ddc6af3f2bdf4f2b64605e797fcc77ff5934e4cec7b99be4a20c43393b0bc404c03409f1e9898e61e30561b8c1d29c7e42417a96e6e0408c166f9b07b63cc3b60e85e2bec5b3a1e539fb0cb361fbd333c0f4d6b301f5a63f793618f1817ad3dbe0f29ba9db3ad4b7bc0fd4b77c7f4bcb73de4bffe9716037dca3bced51ef637bd4777b3e4c7ff26e506ffa1b97df1e078603e393074c53ffa51f07c6752fedd5e0837b5bad7773c31607e6d2dd18f1e1f2282fa1065433237518a0065d19e53253b9d286009c43c3c182bd732598e3cac8135f2e0486b0755e8840912bbf829d73f9b6bc96d10b46463d4f366ee1c2ca071b09f9dbccd77a4dd380a4cc115db20685a5e62559882f9e6961e5ca77018618e4c7173751027441aed24298a65ffe7a90840565ad9467b3abbf4abd72194b92132d845cf9efeceebee92032dbd93985bf727adeded78a9fd6c49ae0e5f890d8f8600efe013a01d9f891932c1f6433f80549979f6b6cec2e4fb027a0f83911dbc989f53f3db1f13b5161e54b0b64fd65906d95e5eaf5288378810caebf472573524a27952df840890906a7215233883942320d24ac6466669652a7860fdb6c87333b37179b66f26e4e7f77a7cf9d3fa54e1de417ed020a18cce046dfe1eed49d354ae79c43389fd6ac4a42b83f660c444c5f73410ee3716eb8a95f4da5d2ebd480559cabc92e05d6b8da73d534a65cc6f56f17eeef0751a9e7d303584a0cd6de0d7fead62f750cabb5966a7de16f8cf8287df56e7af88d111ff5dbbbf9dce55f3df7efba8eebb1a39acbd37dba3bff7477f7e95e53a33961f92bbf7b74f719a7c68404a594b28c0b4a29e59c73ce98040b909164881b91d81c1f8b192757107c8daf2c1a063903c30532237b2e5f58e958b0b333cb39279d53ca31360da4da2bd1bc1ff44df7077b327edaf38838fc20659e1e78c35d81bbb8d49f3bfadead40820b66675c8e0fde707d7604828ed4e3670f345d365d8dbabbb38c12b48495cb413d57aecde5a09e23378b24145fc9f5090296837a845c557cc9ff88ae841244962b65d71d17a4cf4c99575a13f6a7f69b46b5a7df4cc33638d2b920cec5c2ca155bdc6debca1ffbf2dc784ac14be26eb1e76ecec4dde4900bd23b7198c1e0687af4ce9797b380e4b934a02ef71be584dc8d712ccfb0c8e2d14dd264324d93899a4ca636994c26535db5803843eef6dcf1ecc8886bea407ed3e35cd9f260e963cb8f167eb0f4f4046a7f6a69299d50287d0b2d207fe99f90e1b33dd739e726e7044bffa3f4feb29480d27ba9b4797ce39740a700ce05e52b915b532c9c7881c58917a1642abd249e14d6aaa6742f49eb9bb902895e71e48a2117fc1efab905d6a4e2b7e27f50c03872e373557c0d77c5ce153ad78a2c97ad98811556fada7fb97b6a8975aed65d3c6749ce2e5677d1f7c0d2975d0bf5f874b9e5de0f1bc350c58fabd6b3d492d412fec11c5fcccccc5cdd55ba3f7cc585e520236150115996a0224542d8a4a004e365b0efec5e24ed5ea487424f4f4747acf14f3e6cbef63a2ad87ced67475dc7c2e63bed742a6c7efcc9021398208a285227489da0260c431dbc24557440b933474608918408ba08e303309c24ae50a1031f8008a233042cbe2a7e4d64a15b2f9fa2d01d628c31dc05dec1cc35073507dc2d839aa5666940298787520fa51d4a3a0495d10235a43b7febbab16818e3e984ff4dd6ad4443d557b7ea954a34a461c94bb154da5a361a5a1a6e4f7dccb8895f58abd4fca6438a03db442377cda73ed020405ac49d2f3b8c5fe744d7fc1b1ea832a3ce9bf8e560e58e8c99ac55f10ebe36cdae1b416e3c48776e6c95dbb6d6531c64e8102af321089907691120f5293d488bd050c65aa51b8fa354da36991bdb8d1b25aa43439aa3e558d353231ade30e100baf3bfe511f9beef0b3226639f0d1b36be69adb5d65a6bad75737d496ee32a7da5241a7aab717c2e1c2dd757eb8d0ebcf1adfaddf76fdca925045708cf23b63c9065adb585eeebb6bd775ab5764443126d3e994ee6489d21a25abf5b1d76cecd0d8eb7f97ebe14227da44c22913d72882c228fdcf93226637247f2acb6980769d87d6fdb7b34482cbeea8e0c0d5bbfad64707c4b06076ac7f2c4a26b3ec7e26786d5fee56168489b87f6c417cccfa73e361ea431ba7385dcf9201d72e7afb6cdfbb1bd677b521d04c46fd5c2d1c51fa0de89751099967723636624995aa6a46f25dd09c2c7743dbcce6381c5a2210800f8d5d39077e4501d1a24be7ab523796a42a3d8cb8334847950c6a80f3a366cd030be541f35dec0bff8e11d2eabcc586cc6925850a53381d83956cc884ce7ec619af8aa259ab8f1c1552c366366585005f6cf0ffdf8af629f3c548ca4d93812e7ec5e9039000b1208f5e8c13438e8f08a4cd653a41a02921db553a72b1d80dfac322a93c93e8ffca9906652a44efd85a7c9b8f1bbd626a34b70ed7357ffac7d147fbcc86532998c6790c59f92f608c3822d13f297e5308ab22d7c2ed8b236e3c68f3c431abaf1fb482fb9f15f5490777aa1e5a2875e89e113df6d9e88ffc28b065c46d1e4822ea32c583a6c9d8e35cf5c8d0134448930aa8960874345475a2c8c5d95000d955660584932695a4d288001e4f0da334d1071e84aac128fbac808c94ad2c60327279593e60c1175510d63873a5642ce72749ad2a7f425b2eaee2d93ca49493044a7acf911fa69d410bb22230697297d4a7f59620231cc4063faf414d4fa355c4e97f36507d9e3d96dfa439f779bd6a1610c2cf8ff1e846118fef708dde673f93f021b866118fa98703b0a7dd033630a46db09bc5f74b85a5d609af8b54b704f01cc821f1e9507d330b160ad3e3cacd6441d9bafae70f2739b1a6d76c082fc134397e02fbf263609fddbfce9caa3e6ab36d663f5ea0478308d11ab7a36d261233910e77293d01f7aa04374918c73a51261fd596895030bc630865d44d20c4949496d14eb12dc6b2b1a8b16a2855a88090b768c28168bc55c10402d80751e0890f19035f18b395e8260892f3086353533cecde7cb8e861b6ef7ed3ef2ffb18d372bbb97266ab556a5b2565b65a93e7d1e6155aa5a5aedc082316ca116ea58237121b7699e29bd632823422d54855aa885bc6ef123635b9dd13588aedb20f02216e49f201deaa8f9a2dcc07c41c2e9ca0b0bf24ffc1e4286f88aefd6ad5bebd57c6e1383db054498e6f178098105ad09f6a7075aed638988090820f115df6b60fca0000670f965f75d827b1d93103fc634b931c2602dd7be08b120fff08821fe98b81610e77e4cd30fc24e6c2464045201de719a3172d151952b7c3a61ce0af08e78ea584cc34274f9739b07dae86ff2aeb4106369a26b54dda5943d270bf1f3a75e8ff8f96f66c4afb3c4cf0a5b230bdb4f5ff322f1f5d2cf33a49c97f63c488cc557dc8943e2eb8556b90e4621d763cff5677f5a35afb1c4cf9d6f63a9125ff4fd3bc9bfadf8f795a953abb50eabfe15e0dc5f652b0f1980cc3055815dfeeece5b5cefc134fef23bcab63e318971be0f1b8eeb728cc4e7e1611c090036d1ad466cffb6d31da3bbf45aa8eb185136b052ce399b52f0e6322a07b63f7ed73c44d8f860c778e22b7ab36b9eae634a2ccee59d587c693b2ea713b418db841cb77d34aeb7e8ee2d650b752d149b3fcda8a969a05803691de369a0f8cdaf7185051928480a2c03c8453330ac4ad1cf7c1ff12bf21111c042ac3de6bfdbf0ff7710bbe647b993ca9d9d450335d00d4fb12084181a52d592c9942aa56aaa56cf83546c08231df25f306a1d3abc1c3a66bc9ad627237d82e884f846454c34f4017ddff745d7fca8e312bb1a75dca69178d44102c50fdf89d448dca66b9dbf791f758d54257ed38adbc410b06b7e84a22699ddf96e458362c19e48d37b82da91b065ff210c5e2b920f77461da699f3bf991cd3843ba57c31c376b735de213f1295bea8774e1d77ce7f1ef19b93ca9d59dc6900764d1398660eb91334e14eff298bc8105f933e9068536730ba9347f556351f8609d4f845a49e99a933b34fda571deca0793230cdfc78f98a4ccac62d5c5c207e13c8e98419e23769ac89df9c35d135dfb4a3f1950fcedce92f335c0f92b033c4d7942eb80d0dbbe613c000f3358f7a334c33677626942be00208a063aad5074bb5a479202700ea15e0766c43bd13c73440fc6079a6c54c8ba21b1f642259abb52ad5d7d4d4e490d30b63a44a82ae085db0a7dc18bbf2bf7eb606d4f1f3093151add6da5cc05d1708439dd8e53b4446ee026ed33eee925f6b96ad8574dd13bf21f16b1fb7e92476c99759c01a5ef9eeb58ffc6e9f294c235fa3c282cdd3536e7cc601a50cf1055620f1f5fdab54d6c6583998295ca0734115ef88b11a9762a814ed3656410b11d108001000007315000030100e070543e160164581b00f14000d76903e5c5630928842811cc6611445310cc3500020c010608c210639e44c2525001a40407b4daf6396af79354994561a0fd1fa0f12c3138d587be4a01cceaa95487fd8d09b949bceeba41cb22b6ace43efe5447fc0c1bdea28fdf3ac299c295ee27300ecdd1a80d74cff413b197e48eb0ab6415acc153a1f3c844f87523cab8c86329706e0791a4dda496e080c0f10afd713417c10f0575810e29844771b532ec04c34e9df92c9d542badd8bfe883eec5056ad95b01ed224d40a9e613787a0e8048317984c3332d034ebf4c9bdaa1d006d549a6a41905b5c03747d33c29e98b1158cb892c5421083aafe5abbd0d99c97f0b5041da20d3e2c653d40e7a8af887b88c8550b8b1e7d30482186b4def072df20fc92e8729e8bc8ea809d25d93909456c2e25f5527aa909a21b37e8f4f5e6beb195ab371857d413aa7767181ee083ed0bb1ec10cc97f2cd4e1c2a348b73e53df6e132c897ac355af2bc7fbc1b82741fdbaf56de61ba28804303915a644d698167361a62a18da1d6523f872d1b04a3c09180ba9938782c28f68278c40489b9464d51c59c01140bfb437c7b1cf3e13a97c55dc65f0c10504ffb8b6c5b1b9a0bcd97f44aac138070b755a1ef8483d6350392be5ea4c4601c480d3a4b6fdd7591b8f6d84e6173c654332ab55048810c34fbc50459ea354d41927de3c4f748b697605c54da1f9d54111cd303b687e4c635d941bb4bb9db5d7c417797a6a10ee80cd35e942ef9167fc560a1d23c21122b45051e8f94325e0c67291caf0bbbee550169339a302b684aa1478ba2f28155b2a38366a5f5d5a94e50f2fa3521d36fa8763b3f2f029455a49719f7c9635e9de3758f46318775ed07ad6f6e8247f499efa4354bf6105b10516937e1806b50633c77f248085fb357e7e2f9f47ab5bcd4b2d6d42b3ee9b92e451a22d5fea5796c9d34a461b14190b0e7f968af7853acaa2fca76e0ad4c572612c962d578539855a596be8a2c2fa733fe4623e31b5bf51cd016fe7d744627aacb656d09d3eeead7d73f5f7de22422528cf4df945d331251cd3781e73d83eec638bec800821732428368d3e2003ecdfaf3cda22a8df677c778e472d6101d2d662750658f2906413dc27e31e5ca9aa4ed390b35ad3e80aea07a4962b621e511cacba0917251f0d1b4c163c85a80d387f64b0af99fc1baf3d42a2c081de7ab8c00d3fe71d15356aec7548e29c3c49f52153b222af3225e3eb5263d8755e0998d50ffcdf869d822a47d15d62d34eb24682f3e821132b8b9be70faf915535513d7c60211c8628d220bc2d88000674a6fa6026a649b84e003b091f361e719d74d33a614b68354f4125fd165b87ef51a893386ccb30fa147fcf0588f7e91882da80d898f3efbd192a959e86f650d8ec0408ee5272d698721ef8c3638295c3d35846eef81c08b0e343ac7a0997b176aeeb83f876bb8131dfb06d20d7cb1c189ecc7707670c623b26f79c4c546b04c03f49f357d15127efbb121cb4358cd6d5bc2a9e078a303a1d306c345e2d225692ffb5b72833e1be902225c4483504a533f93fa0bc4cebe7215f0d925dc9be1e5f5943181f2fa8c22c50fbfa4994d9868c8ac3bba46a6601f75267a5a317ef659e1f449fffc879ec4908468ca500f042d67c248e0b03cbbb4cbc94a1e47ac998809cccbdeb90f0e94c37a5e8b42f93663c524b11c66c2c32d7fa2ecf3b2b593ec37c44bb008b607e951233bac541a00a7e5adbe3c8296649f223e7a8428d54170f305d73da85916197527f776771f691843f45f782ee71f3c03dc5b9d60e93a2489b83218144245a3c0574ec5a3370dd8957f8ac6ab4c40348bff35b03d132b23a8030b97164bfc0e18922d575821d06a7e1e3f3f36c3e29ceeb77ca8d58009497d14f2460ef912f53ce102ab571093292f42a7dd6228d2c229350ebab69834e39a2919f22fec2d5b8c2884c50d2695d14033e5750ceb9f8bfd75094eeb320b5149c556f771c9f3abb3c8465269a37747a739a40d84b74f080f8de749ed039de0d741eaa12b428cb2cee376546c85e02b0d87fb7804d2a8272b958fdcfe0c459e572fb5d7ec9d2b9855026b8eef55566ae14b50bf94314fbb1f73dbd804b19f94ce651deddcc0d11d13a3c878e63d322ab8786b98f4dce6e26d595807e4923c444ef36729897fa7023c6af1dfea230eb7196eaf5e78b54dc8765cfeced7fa66ad4196f419406771e1f6e0e78c9f52b0697dd6aa469382310bf98f93bfd3f0fe3a8789010607185e5e815742ca50e53e3c9cb73f0a30e8072ff377caf6685680368aad83813c765edf9de17be8fca54a85c1687af0d7bde7a8ed5a62cb2f87219bec957aae09f5253b9522c8c741a54f0e1181006aa4d32eeac086d3d4f24b1d0ce9747788df94ce79024b1233b5330de363f7a53bc1d6ff3d410b610ad5b300970c641615e4d1da8838983faa8c2ffe081ce832a61b4777d2caea79565edbde79e0f004a20be86b011cec4960a9ebe32437c041c4f9203d45f6e9084caccbd0a517a0c772f42578b8a055e58172496624597dcade687f7cf65a380a81ef42e0d723d0c144f9f77455fc1d553210a8dfa332f89d611627246dc0b295676bf30d164eb34359e7ce6d3e4f04049068a863d581ecb01e7c8e12b72122f2dcf1926736fdbb41695e9a95bbed88b9a88f61ef04e0a41a1253c007a6e7819aa603370176d807e34c1fb64e800aed829a1ac988046be6c0542a577bd2e093789afaa8f3ac48853d33b43488d82359aa13a98dffc642b58e4a0a698888208a2e48e94f0ce25a4f71e7463a59cf1c943452dca85a4d45bdf14962dd57d2ee03acb9500a4fca7728693083a47118d04c08a066f8ff561a55ecbcdd837dcf3959c55130d31b452f5654962dd9464044a7a48533e3d364d1fb649033412ebb8ec9ac4916c8352607ea03793b58eedc773d6e8c334a8ac8926fe06e8e4ebe811fcafe2e4bec975f93717f1233d2ae1f2226fe76cc94accf43109869f77048511506e90b859463a0b2d197065e7d89bc44bf01c1a2e5e7fc60b378d6fd1575f127870283621d766d69c2175810fd2031bf26d2594d8adfbc1ada8bb7a1c76108102209918bed5434e8a181fb2cb97d0bd1c456e252c291127cfd6040b36a4d0271b1aeae29906fc987224ee2c730664251a1729b1e0cacb9cb3fae7d67bec63b111ada98abea6997b93357a08469fdb894f2c7d52b99285bf11f73bdf810ec3b30ae1a78344fd6d9f48d986cb15c0ef84ae056b9d178869a56f9dc85f087ce17e8ec588b9188db79b7c46380c74776a6753403bd09172a398d5b9a9ce26d7bcd845eabf5068d293c71a68548189d57d4193946cf1c849b5f87bdfaa4160446c09b03124707411ee7a17fcc218272e29a9daf2a16bbcc75a8cb55ed94831d3028a3806a51817418f823bd5733f9a23658f7962cc468400c5e117980f8220953ab7f35a4d1d3fbd04c130717f12e8819dd45ad967f700840145434f63669037fd6610d5ab3fbe9bf6c2a8dfdafc717e4c472fa51725cd3fa8c47ea0237d208d312103e3f3c0d7ebf48e8728f59631ab6c387c6a793fe23d4243b8e00418fe568e69bda4c5113383dad5e8e0b64d4918fd7742014ef52a44944fc2d10ee232004bf3674892414c50cbb2fcb99fae065119381ffd5e585f8f4022ac8991646426808c9be1d05c8630496301d349972b87478261ae9a1eeaad6d3ff886262803e7641abe486d8c9b71d65167b305abeb07162499a746c462582f98b978bfd074d0f776eac0fe70cc8da4d740d00a7a79c2937a9ae935c8689a7af4d629e39c52280717163dfc8e4cbe2e810d53ffcb6167a39b5946b002e06be85a461cc536330728b8cb891396423fe6cb658b29f1560066a8319cca844cf1b33908c063e0449a09d9742be9e85031cb65ba049d2ca12e091f7d3e319ecf610a33d709a5fbc7ccb83c48c523eb61ab3ee5297a3006c50f56d44e9b9a9d0630d51dc5946738ee9048de489935ba66931e9b97fd58bb99fa0c3ce4ef12b5520f4f0d77201e4f143a44289d48c0cfc0da6d1c002abf8e74660625bbcce9e2786421019079203be83b5c5a73d3f9030cb99ffc52013193ae2a4fda14eb7a51235b6ee4959bca26f33a5a4ea9562d4f7bcc5a914823414c0419ba8313aed53cd9216b6652e82841742e9a15accc8af006e5744627d104406e3e963404b5140c20b06ac19095e72d0c210c89691b6fdd21a5ab8d1408c6ddb6c07d36f75c474f630e53c261a46fe5992318d0ca4d18cc5473c2fcde1ce9a08d0fda34a40ab1d50bab90349630d46db49b105f511cb3e6e0eb118c8d3e2bb9b5858a4b0b3525dcd0f85553b05f5da62867c8ff5f2c9b3e76f0a27975a13b443ec11bc8659e89d5b719286ea086308404788a9fb1a971bee22fe099f5510ab760642d785ead1f7e0ab9a32616abea7fd54b6bcc91c52190e5f3e0f35e503ec65fc45a9e3b9d76c9a654384262aec119a0f9ebdc5760052cc8d49894224c52088a6878c3c339a7b819acf258bd510a93c14efaf24b75f8fa178c05655cbbdfb0c4d6119f3f883fccb162cd007820965c4b469aed1bc13db3710526ef056c0d20146d5c7dd482bfa035a89ac0745e1261197d1f86c60afbd5584d9945c0718fc022d657851855a421f84c35358b08251a6b61c5329f6e4f2e8c9627d9b0ba1491906158fc3735b1ad61939ed4915b9f19651f702cd1cc07f176ce6d8fb48c8e76ed0e5180219d4c10a21b74f8695c00ba757e6f068d515ff516c943e1cc7d1ecea45fe266ddfc9710645e9cc12053d4ee730627bf4d02489ef7bccc07086e18c04e0ccefdd454ce458599976056b027db3f3bcd571c9b79f15259be3cb1b8ad4d54acdc9403cb72e0cb1c9598d4a77908fc50725f12cb1f4db5beab43c300b09dd2e24da3f696bc4e5165f30b7b46ac694a3d3068b2f8fb3f6e3a1836d88e07dd0b89fcb58ed3b173ea335dd75657902ca5ec397051d1e151916105581df9ffb48fa093305b00f666119e1225f61866324f8b6040fcc89e6562131ce1bb9ab6fee153f86b48d8bfe9b21986be94f2099cb03a9286a4bf86b057440aa55a9a3a64e930a9f086ae6e71de6d0b6c2203c85596d95a6f555e5c10f3e606a13f8c1d7406deefd7856f266f90351f7a813bdd91bf8566d056a22ab06db319b2c3ec966f653d2254a61c841a948cfa70636b26e273b898255401418553540e4f28de46830a85cba455cc076f956ebc4588e9f1bc170d8d86993dc59d57e79132ef8b40687b13c6b9695aa46eddb9be5a99187ebccd4c92e3ffdccbaba50de82502d06273d4c12dbead1b30c4b8136e859b4d62acdcbe129fe64530de347609051a5ba346bc20b2b24c061770907e9d238bc6103c5db18b346e468e2a2ff6871632cae842dc587b02b1a835597195c8668efdc2a358df1b97cdec6184721ca0767c0308833dc82def8a69f9da7ac6b3462e0cfa29ba6ee9b17e87632a56a57ce04539b01d752bcd8115c446c592abb8504891ace7505df4e3eff41642e3953469cae4eda38e9485686ca7f8c3181e3ebcab246ff8f250b6c6ead782f3763ed744aad03bd3a7328bed6a708ce67f209c6dac883f6c8cc28c2ede3149e5586e9419d323dda97ddd76ace5cc3fd55069d637e0a10abd6d29c4fea15efff3d7c073462012025979eaa12f9fbf7349a3f183f8b2f31e0900bc019bca7e5817f2383871f92f62ddaf3bddfccd83f89fb30481d5a5bba62b632f2f0fb3ae68eaafd86874d82e5a89215436f1afd64d056b8e19ea866e16cf2fa4c2d24412e63dc6be39825220ed0bd15e8ca9acd24402f532808014453d19cd71e8a97fe53ec36d18b2d2efd62e1bc6101b8c85ed846626e6e7f05563c46d8a7be3e06378deb8e3cc5a0fb0fee58e96107d8c242d21d2cd1eb2bdd702cb64c9c5acfb0a805b3e5c0b107c94328076ed81661f06dc18ac4d98a6504983ffa5c7366edc6335d2863cc996f551bd6a576fabf90131779c92cfb3d2ce25c716b15dacf8b7406257ee99ccf90a8f3ab0cef4ffbfb8176896eb9a81d6ccf6c0ae534194d2bcef92162d0cadccff9a9b05cf099461b52e813197ec7d11e8d77c8e40bd70863871db0854d3a65f26cf3dcbcbd3eb44ab134ba7e9c5371715c872b109eba029027893412b3983a5cc029998e5d4f31dd2511a3020bd16d602c94eff9037f6b7a2a62585d880fd38acd2b7aa6ad24a632eca7b128e49058cca3597a68788e0fd944e25c65962a8380569914e9f1694156cc844d6196ee4ca505a2a1dd0b6e888be835c2e3d90e60b2d11239ee353cb2bbb776ecd6359b1cc27cc94a31770783431d03a92db88fc39b3daa5970063ffc3208618e76f7b2d2650d84e0d1d1963e0d68cbc6498cc1b52b0a94f390d0a708bdfde4f904ce2f36b3892ba4a2859aa5bc1799f685aed449a238be612481060a1699b0074a18a6a51f07854e387de2bd9320fe36ff35f7c7f5b6b4b5272f3a173c989f506770658595cbfe2cb109608ef6d039eed6862b3de6ff22fffc0b6a2e98db47ad285d2955762c9000a9b268833132183d05f423b80713f6baa82042d018dea58416fb0e3d37f9618ee8469c3aef242bab444ed09392b4b90a33ca484759ac40829e10c65ba67fc8075fa5c76fc3a0b1ff446d1132206a335b529044f5310c66ab347990930e5f1e67400965e6da762caef6c166eb830e3155e44a193826b5e342f71466c09cd02d9e2222095c2b806d1731cabbe41d099d324cba1ba0f4d1f36a144835175f81d65fb4335f97b86394f29eca98f024ec8378e54f708c66340533cdd2721d2e3c8ab5b2cf06a053b3b688b39ac67ba30f550e75e53667410f48d015639f2bebcecf0190e8f354ff806a7917379e8dd4dbac8ba68ce790572eb138145c8a68c3554b0e89536528892b4d150a2abac0edef623ed72ac272b8ddc3dbe049e0e64344a3a53086b78d84a3ff084b37d3f32090cda1622dd9ee736b37576f9d1211a2641a8c35bd855c97cd9e43963495923b93e4c58043231a40ff6adc70d4cb7d1efb4eb27efb9ce619ad9cee4b871e55e2af227b606acc73c43fc64f19265f88120e36e4f95395d4435c0f38881b1cb62f585e8c942b9ddd282628c9bcbb8815e13192239529be56e39aaed9031cba8d96c9c4bafa070914ec92bcf9a41c5bec7f8f998399236ef62d0c702840cbae29f1e134eec92267520ad02ba1a294557783130208b0730cd5bc21dfa26705a3bf1c1085a0ac2efc57e4d9127be55370916c8a482f1c04d49535a110d1458e646351e0690c3a8a4170df901cb6603c6216e3e81310737bf31822a70013e00ae41ca36d4ad9e0f19a1d5536393dae94b9939d674d4188e4292d0006976ea90e6d209692e86d3296e9d3c31c7c898026d915758d6145090a4ca094184e788d89c7c2c491e42f57e4afbee16a11c30d3cba51b48038efa982b70bd023baa55657c3792f05f49a89066b2c481e76b64660c56cae84a14d10fa60a93ecfd03f192370deeb420f4f55cb9ac91cc58247624760c2b4e7e0359bc2272284ab5ce90b2baa3c41bcc12025d5c242870d62b5365658fc0e6974d4e98e9595d7d5feb6896694c012b64c2c682156d8c9fcf689f2e9a4c0e6799b6d221ca249f618c02949c914e8562240b059952063686eab441ffac63e734644d41eb526a21804f6fa172e52f71aa490133195c0b484795991b9859b600fe2a349039fa6f32c9c61bc3f77fa97b2d7a96abaadd955395af15834c600200c039116e2c49c7456e8e0082564c72a54ea9f506e42df089b0f37be4921335b54e933b199239936a81d6484a75e59cdaddee3a448f05ec67543aa8052149efb0f9640577c55f18aa2bf326b5a451266d7f6a32fd63831c2a8d613d0ab6933781705c12274493c9aee13fb90272d808ece97799952f86acc9aa3e51566574c6916135d2b18caca73445014cb47ee3ad6c67dea36d9a6dacb8fe7318b628bac9f449d6ea007e383d9cdd905efd21d82fe5394c8ab8603cee29aa848bbdb4229aba2b5db06e99a7f8556c4378e153f10d8ff6570610395268846f2678f03591d234b36be5d779f1fd7cfbcb05f1cd1d6cbf9a48cb512d71b2e022ba0ec5c0ce65f3d7c9d6df0b1df5194e7a269b67c7277b7afab5af4d68c063d6c03e8519bf5e0abb578d4005c54ed1abfd517e74b9048d51c80d272910c2a346290f6074f02aadb8bc7ba8e8641f9e0a1304146c6bb1817083e66196f12e1d670cc3d14dc64ad64258357b1793f619f2a850f302aa200bd57264c0d153580ab2d3619f062b337a38a841685a877747e0bdd58b19939d3e6bd53ad159bf337872e7901845495e462cc14fc099576fe0678c301084dd300a820702fb9a1eb3f7807680fde4f35d14a27e008bd498ba6c9d500ecfd80e6a346cd4f79c122e8814b8f1c64e81fbcc7b84658d1bf95fcf2a47c0f8e3872dfed3689a3fa859b7178de6131807e540ac547393810cdf3761b38685a58215c90ba49001ca4da06567d438c9cf21703198a04cb65fa2208a284bb7d8121245d10897f437f2750a334d0664793eb912c0cab7e67a0b88fd045af7d81919f7ce20fa1633938d0292d44c4631c5b8792e95d550e98429688ee2389e4b17ffbeb81639e264eff260a036fd8efac260711da125c9726d60aa3e26e50815e78d1202111f1111014f857081ead355aa3dad7e6cbf33442bfe58ad8245cbeff977af40d620335bcac0531ea47be50c65b18751a1e841395e6abe2e95edb186115fa8c0d26983b351d0680076943d3409116643e250fc59f58cf805c2c4bf138e3c9126d072fed93e4d2abfe882f2dd49dea6a526160d01a544a1e07cdd5de029c052e1ac5b52f183a6947080ac39e283af0df1258213b1105624770a85315e0a67092fd42402a6e888918edc3c8e39802d1398426c5774a1b52cbf1397e551b25e61f89152dde2ffa0d0cf499fba6880a4fd91732efbee150b1d5763f2dee723385532fd10bb95ed92d52941d02efd44b3266d02507384236d9e54208fafa3555556eabe6bddea8d321f4e44bf9a7a2b83ccd29773375dfbf8b138099a7dcc9a8e576088e8c9a59640f49e1e419f6d09b724dfde96a02885941df00f8fe8d44e1bf8af6b6446720cca31fe2095f277d35dc5d64a6d5cd5bfc431247569d149731c4d1ca2ffc04e9a927ad89618604fc814480908844142a411a51abd9ac54b456698a9ed36e63e98e38651e423bfaf71cd2d8c85d9e318355baaf031f4a8c9c45201d8510dc3a875f21511c50a5b2dfe4f223e4f6a9402b85a4608cccbde189503f2439691e37201cdf916a1c9075b4d7fb754926980954248ead3f315ad87dc8b5ea5fda44b47e850bb6425de89c2c2858ff0275d67bd1f5551cbc9c5a982184fc1b96326789ab11ba678b488eaa88ab96c61fb15702a60384de0fd5bdf47cbbcbe47b23f5d5045af70df695cf2210e46fdabe35870a3e044ab76d15d8dbb1b9138d9a1afca34be6a76a1c99c041bcd2e3f83da77b65ab9fe2a40bc21a76fbde473a01eb6d450fe07c64d016dec36db1bb2e5f00988f20ddd3416cf38ec04e164cd4d2b37a7bb19fe1567952b4da292565ef02169f8583158153c74368e9a074e9eb5ff1eb80f9fbc5a44016044ee213d68116e9e8888c219c70157ce28083b11087b0b7f562a6d5846425e03ee73e7f36c5b1f1712b0c71b73d4380a081274d670f6cffddc1df2feda82938d6e5d3a4cfa74a6d9f9caa935e546db76089c89beb15d0720bee9a10a3365cf7b06456fb8f112bc7d03d9a46536b4f3bef02a5737e56e0e0a174c1cdadce4aa68767be958109c0b34ffbd2a6f2b0f32c32014e61655d2c05f16ad0ace558156e196533752656d896f982d140f7ea6fcb4cc9587fdcf3ab810908ba0607bfd144544cef023cb9cad921d99cd3515d08c336b4d9619523a2eca903fd293c771c825647d9ad54dcbeec1b7d016d3524f0ac1c42e990c42211a7170d2a05379dab7ce463514610426102b0f1240270d8f1feb56c211924c564ce86233485ac82a0356e7334bb34aa8fe5e00278a0d601de3e0fc2810566019516c93ce37e156d7d58c2770df5d887ecfe8913270627031a02a23f4c0ea4b573cd8b41d8c3e186f1097ca7e10b731f276a014231f264b0cde9b671dd36cac552e68336810d66761e138d889a4fa73493562ba918728a547a9cdebdaaf1120ae21be68bd70a3437854aefbf3ec89fe7171032f577b070a20dd68d39f150bfb85bb15168918af9f7b6f796fba5def9ff702b2444c1947b5b2f11c076f9c77a696ee69284ab7368ecc239041f7655350ead0f0599a8cca5c6c75be91e122cb02c22898030f1913925981b3a9a31798118a480433768451c2398aa42fd1b57ed5ff788de02ad6d0c64e958b0db0df7704691fdbf26a5a25fa79d3a8b8f0c7d2e342e2f65391679888df26a3dd6da1c0bf4c9edcbb37b7a4d867132c762295ca05fa66d673d51ce63411f9d1af8b60706a9c94f544dd6fe0a4b45c8dc37fbb5b90573e2e4e8b8c8376055c4b1501167b24102fdac94e82ef04f58b4e61678e4322bff418ef2e76385401093b358356eb16959a57782479ecfe21f7652fb3141d1a6f20d81e4a35de0c25115c0f21609cb711b80ae157151b8cd243771485a7ff20d3520670801f46255f4d07cb3f7338d0b6877d9a5828def0da2a975078f8b549994706145a40bf119f78bbd41658b83284da265440b22d11bf4e46e0ca23156296859170861f2063122e8f9a68c421cf077d5d19f1561cf39932675d65ad0cde7827caaccafeedadbb0647d2661355c84cca6b5c59cb0efc8d11059343dc13b74613a96d66e8708fa5d15cd68802836a17a74c6cf12c1cd102a9a4655486ef3570b9e2674fd147762a5b26a5ac27a8bbd0061301dc456a14e067237e88084761c1e8cde0dd24bb764b4aa41b44227b71bb4e22804ea30df01b1b95838e8d450bb15758c1c36993f0869f4c3a67113647c601e124c88013211fa6070899d6a15fa688614237a12e1d30d1a2d5f1ad2e67051ee7b364d054107c5299f7383ea023f334b319a481324b124f4515892cde5f13153f5dd06d58882fbae0f34f75d890a76039df79da3e52f772fca6cac0d3390a0d9b22b074388652f4e987ea10fecfdcf9687fa9dbedbb3d03b7142c1fa30f17bdde6dd86b6d10c8c7d0684aa45be290a932d07e41485480f03291fa854cf9fd0557c9a99ff2660577a353ae9d1bf355534cf3ed4aa5ed857f2b767d301cc3e4e6aeb0ae6fd83e24589d9ec1f947750c8d40786b8b23e7f589ed2fc83ca586c277fcaf3c8221d9c082727253c85bb3d6d73241cd6eff02d3d2c686af07a1e810dbed83570231add294cdcc3281e00e0f78230bf928c5194cf8db4315253e2adfda0843f64cbe01de62752b21fe47243890eaf0628386822ab929773610a97bd71c60f32e493e6541adb0225cfead5038390efed0abd161ea40975dc4d32d5db33dacd87e882acca5d61baf693a3407f10a37816d807e5c2534b8d153432edba82db61efed2d7e583555c6ebe154b7fab2766da6d67a3e885f31b5716fcf0701691aa65e754da98501c27e43a3dbd83504095351f10800cdf222241f9e2ad7a4c723e54ed92816c15433d108c53ee7aaec0317824914e408291d3471733015aa367a7db133e920eb5c8ae4970b5c034013303f21628232263ce92062800fd1869c49c4cbbe78acc8529315c42996c6480a1ab0fddfa4839c701055a1fe39102f97d3417dc1fc98e20ee0a1fecb8eac841d38a0c23afdbd05e372505c1509d6f5b5c01c64d650ba516847119da579276b039a1e118df8866b6fab75c129bd70e85e69e99de5204d6fb424d84cb4b6f37873d6cce275a38fceef27166eb471d7570e4a0e573438d84f753108a61e06028c2f126c7e08c01947d480838c028fa1d6971dc63736b8f10f09eea64c0100793cf92fa76b1601cfd9ba770d78fd80d0ee49ee15c9bda0c7df7496fa38d70774eb9443b31afb56d1163a1ff0edef60444e915d2bd49fab3771f91dfb745e071e2752c579b7102a0c709a73ada41ed130d208895c9416502f641dc4bdbc5f99c05aa6bb9807a510b528bb5c0a3738e4faeeec7b7b56ebb4a9e6b745236e843c0c1e93d03f362f525e15bc492081986101ff02482df0a007b89b8905e5862623e03a2c555d7635e9d7e7b41df80877d38eb78789be0a609731e9b01b006b52235fa1ce9df08572c38cf16fe6db68bd01044dde33811ec96028c0f344643b4ac6c03e67ec04d897ef45c06d09dcb486e08da49c879aac590c7c3bacf5f6ce96578192179f51c2c28addc618bf0ec7dec426d8e087d7cc25484a77ac0b549ce20d23e840089e1347def08538135aa0be4ceb762d62120d140c5521b0c03a203878a8f30e34c6dc33dee0e9d1a3a330c97c44fb8a9e80b1f2d419b3e1bf7864b92e52e640feee22f6d55093cb2fdec0220e4699307486ad893d946fb70a6f31912915b5b09ae0669b82a293b5a0281202038a45357700a3d132fdf4bc8845ebe70477f7214b43fa81a61ad9786af1f2d72ac3d074aa1d9600ae6a84fe67f7a4a3a9da2cc970a9115c684014016e2cd1cb1bcf3117f6a60940e8b464bd65ac7aa85c9bad5d6adfbde3e93729d96fa6029fb2fec23a8bad63b42c2f45004574ca8a26d8cda84eddf3d0466b05d4f8465450b88bf346a46736383b3e098c623c274ce715e3c9ed2119d0f967b6751686654faa7098837acfea32678c672dbe4eb3eec753357ddfe40a43b1a416e3b9b9906a46830673f3f4337ad4dc173d12d79ac60f4a618d476c618050620fc6c731d4f66a26df14318ee71295aa95ce1cce8c6fb1f06e96a853445d2fe7c6b335883f96734bfb8972f686f2883793fc79c645ed995c5cc6554d77526cbaa562335e12ade443419fb5a93bb2208ecebbc3fd912c130367c0eaaa308783b540a43ffce5d775911c40082f41237c18353ffd55a28d3acc16b5cb5757a673175ab1bb69fe6d030b5da56b9c28567e67b7e754b6a44462f5ff7d78383abfc1cc0eeefc964cd8ee0e37d727cdd418ace40dab3f5f9d46c8030d6a2df7cc1938ad1861a1cdb4978536433f8536ab3196f4aa15fc873fa4651e1f6c7b1a4252a8a900cda069c1e0a4c1d280c82e27e717648eda41b90d946504ee8458db2c8b86f99f554dc37661b9a014730d4aaa8417ee058bf937b0164ab2bea622c696fa599a2ef347ae1499a572a5a8b97f3b69c387dd40ae8634388b9f47e90d845450cd86e32e9dfc346e1710240890ae213a0d464490a51b7eccb1a7afe04a7a974f40f19a1a51acacb868dbcb18af1bf5aac31d210321ba077e147c8cdf25abb7da4bae3a7c5b9a024502009e2d56f23388ec72a00d9e9454da9b28be7737d3d25e086e5d6de93149d9c794d964bbddd5c55952706aacbe25c5ad1c0ceb9040abdb8f91ae1616888691316b2926b828d2870cd9346eb3769f936f1557b68086b5542c5bb7c45a2ccbd62d35da16a2db188e656d81ae89924e34383696041652ced14c651421604868450a40748999690bb90baa387bdc3a240c9963d32c144969c2138cac906bc42d9a9d64049ff554ecbfe631045de1faeb3a3b1aed9527f64793a74383fcf4feb4ef01c58d335380f4faf6199dd5a892a1b763253eb391a1f9c7f9d75065b45eed079b537cb07a8993a47e2f2da9fce8e00d3f011cb83a130b8e2d013f1176dd2643aedb5869223151ff70c2af96a9648cc00c4391902b0f21054f69ac44f3a2fe294d28b4aca6db890ac25e52a7697fa734036fc2446cf6539a0297b33b2f252a027150a6ccf82744ae97351a5aa8d1ea2f4263feb07cdb1ae23430a6120f4aef1dd60406d59d6e22c01bbcaa35d6a7a13e425c43404054810bc5d8b4306d8cc3fde744a9fbb1fbeff2ff41d1787765233ce9924a04433e6f150a1ad74bd19b8771c588f9de584e4da4db0521a235474c8b8b09d1ec6a352c9d0b9e0f69661986d46e47c68cc8e6052a1069a0b7baa98a82e4ef312a4c07a062a1c158b141cfeca59f5ad55d1af8a3d19465151083aac07e724a6cfaa55996e791668126489a02d3df076f8e34877ca5591e36d2902f9b833bf868cac0e4c31c549c656f22ac0a8d6ed2ec37d54e99cb8323581deb21aeb4d83b98f88fdfa187184c8a579643e7e8513c04723e8ac4bd35d9a2b3a2da6d5d334769a00ce029c30f1cb8e1509afef2796cc12a3a569be5961e44e790b72dcc8eca645425f313b256cf7322f9ad4d0e5b26acae385898e91c782b18519785a734165dd7bc9b8065958a15ae63cd34d029925fae5b07107b22a5eb31d4888c8c77c70db426037b4c5e0229f0821968c874468a7f0d710b0f908dc18d2f04e09b463613292f9d93c6bd2dc364ca0539f3061cee25ca94cd99e215d3ff424eb7f30dc6ba586c8e0d05fe5377adff9712529a213687b10bcde765ce0a56d89ceabd67e46111d2c4d83fd012143d209bf4afa71c205085e03c37339d350c2068f2e35d7b3a4df9a3a5bdcd0e0d2fa86f70571359347b6d4adc19c599b1f70afb44cfa1a4219e4548ee48897e4d46c1b9007f677caf022f39fc5e80a4132c04cea4f6d3e7fa6d3f82ac449ba56e2bc3dbacbc640d15c4dcfc094f6af20e83b70fcd65f721a4f5bf059827ebc93f3dfa068a293093e5f86f63c0c649655fc39f178aacc72e8b239c5f86107fba1be29db14e8850d31c23a884f374ddad0f02a0efe6f7f5ea733b710dcd235ec4cf94202bc7b27490583ffdab1741023f269612afbe2395305a80734a44d97c3a09008e489b62c40a001dffcb1fc892768776304ed9a894a8b1353036b35e2fe99ed158e8ef17bdd501578ae8a3ece6655857a37ad4a5d8de914accbec134b40ae5a9d93e7c34bd7186275f950f809dbe412312085e99c1b6123975287fad6747cbc5d0f8cc1733c94e53c2826ef59f8955d8106b328f085d9fd9a3a920917fd3a60ca51431ec95360b9dd7c91cfbc661895b829e539bf376b4934383eecd1fbab2e866951216ebe3c3cb24e717d70a16ba5cf4765e2d4275fb8d0151c0aaf29162b66ed330cc16a40190f3ed53c14b1d51731e1d97e719fefb010607044b8914de79166cb84d153d229f9d45213ecef4ad204424f88cf8d72180726c15fb5da613e2f60266d09d87a981fe6a98749fb332fd4d58e9f5a0fa540bfb94c59f8a6ebf8ee74098b2483e0ae684f45ec37a27e0d476e8f040509ee8c4c0eff71f350ece83fd4171e9e537b9c25648ad393b8f96b7d99c614f3f6ca8caeb9f90d9f4724f21d7f02454f0809dfdef6083b79dbf9ba2c979d58bb1a843f3b1c555378f139823f96152463bf8ed0b5ac9842e1ded15b8afe84bd208dd4e8d4699b43d0c1f236a9913c762ba0e7427d0fb60b2e2e2733b914ca0c1041a0aa872e4f9f8e6956dc6a5061884ad2450e552f6084b50c8309c2c07106074c43d41e9bd7f9e4e09edbe5f0363642fd2f640e4dfb6c75c3dd5fe23ce6cf0d8a435e31d650b215b70840927f5bce53caa0a87823bece1a1d98c5c928bf5ad69058023f3b2375b0d07e33d71c5e4642e29a4d03d3e634c7540fffeabd3846a17af917de19f26e0430a29949043082da490430d29b4a1431222d4a1421722f4a143156a68a84bf4c072481ef8581ef41f3425b9d81089dbbed436624e7ffcf0206b4b7354607f9db150883007655a29fd4f8b5a945a979ecbb8abbfd099fa8f4704cc0d5529860aa229aa94f3e7c0f8188d36787a012486494546d3b8a9649b8efdc2ee90563602605e88ca989440962a32983d1b9c17aa3aa6094233fe0a803784ba18a5201899f14b678c498ccf26ed3b2b980b5ea2065dc220409de14f15477751f694cb2f863e0a44d65a7f2763d998533717943b625d4f112b46a55ca71587675a95243a31ef476c005da16cbe0ea410287bc02e048665aba46e2fb611a3f285bb4b67deae78b20acbaba2a77288a79c1b809f0547f82137d87b850ac08dd8050bddc11151d4f722c93ecabc41e32b1b4b2efa0a9b05b91724265c379988532e3013184d5104250bee70693399a0fb81bf50b359a71cf8eb5001925c981354435b496318eab0469e10cfab66f59a84adf54f3c9346e924a1ac83de416bd4f4d6d5e5af41ef28163d5eed2eee5c5d8a0464b87865aed6efd4f1c7d8e4d12196042288ac2dc0a3e70702a3537e9539b01e4209071cb153ef72538f5d9d929fcbb7f220dc05d0f7f156b5630535610e098146148cd1f1b79f7b003c28a477b3c0ad2be740e1012cf19ebba2a1270370f00213fae331fc628db7ec749e55b0f3f928c2fed450bfdb204031c2300ebb0641a7e462237fd1833158c722c4ec459c8d5643dbaa0feef422915a27a5b980c0c3a598e384c25625ba69e6d6d7631b91598f41ea4bc5a65dbfc2429c904eb79808b3d2bcb894dc5a461659a00d1f3b0bb47f914ef075413a66a4b295892da323459748babc05b9d131bce34bf732bade806fcb09dc45c854032a9b8577a5726ba8c4b0224a37291a2a327798e6b5548129b0258170a87ceafe2c1ac03ec0eb407acfad6e3c0284ee868ad9fee21d8eb3688beaf31b4aa418dd23abdd6181bbdfc1aa9912f06b82971e268832fd3d2445f5ccd91984bf233fe04afb6354f1b1071d71cd621bd34b98b83d3504231eb35d0b392e6dca6f428ded54fba39196bba740ff72e2610a800bb62067903754b5181378f184464c3c889ef3e4d3216e10d563000108cfdc49a2625b546433edf6a8653ae6c342d72b0580e8bc1c38b2fc1f12a37a3330a929e3741d899d15b443294f81c169dcb9483185ec6b740dc900f2ebfe093dc6996c0ba3da337f3ea8cd4807fed1f8998178e5600f77aae9699cd78f266b50adcf1c8d4c0355e9adb0afb5c6c0e6fb1390ad3a4192140739d7e3c68bc803c5ac180e67820e2fd8d49a47e0bb920321397e7a24b23028e5bf3aaad813efd4a0e93cf940a7acc68c739d1d614be35acbe5bf55260732c7c1ac7ff11c189f26c583a263ab3e3dfca216686f773053243a8a8b523b4de0a401fde975daf09b1d70a39f04321fbbc43f285ad3a09c562e0792cc2c31f0ef0849d96bf44171640583cc7029dec2e6c42a8d0013d427b3509b662d24bb2d8cd07620367b99e0b42dd0fd89fede3de0d02286df7e5e40e89532c5d706698774c4263a9610ad75b59ece88de4d3e92da4e23f6f73c306633998d5680bd9bed8c6762eef4829b872dc156ee485cd18b89eaa6bc239199f5738a5a5068de9118ae4851347f0fba595b8180066cb04e977a66f32837a7872189684dcc01bcd5e8047dce0001f352fd5e10a90c3a54474e1e45201001dd60fd42c5ed0798d7115cd5dd18797fc15db5fb575670a9a227c776791f7d7af5aa4b0e653d5b92433754d087efcdeadb57125156ef0a7d3eddc0d632db5b73531797340183d2d2212bfa52553cec5762130f098679a1cc6ff0a6634d1d4d9865d3d19a25767993f149318321e132d3bcc67c5845b4745254843cc2da7aa1887bc44d42d0352521f4e349a4717c64c576ad62f798fef5b62a0fdefe103ad715a73b29b4740ed4220a6b07fbceddf232db44e563fed186dff458e3fc728e4482794b176463d4b22f7244cf95295c9a56ccca460db1cf788088d516228d33afbdee717a7993f1c49de5841dd12d9ae689b07712f552e38ce89ba715a252e0dfd7868ac48688c276d234687e45a5105fce174570494c32d8edff6d12198d369bddb2993a07fb1a00053b8a4939926810040e5a94594bebdf9eaac2a47886670447aee7d703973f3da8ea82b1bea452232ebca6e916dae5f6b9a8b0e4a5951170fc60c4979bf7fa3c92ba6e288cbb2cb152ff9f9b584a3a2c99be889c5c10fdcb6f0dd93f42cf4326f444912c7cc4e77cb6f5b7c7272aa9de7b54c6e28126de292bbaad7d947cb7217ccbf8b0a947aa93279475701bb56efbb748eee826f187a18b2944f7c8ac5b7bff4fe8ea2b411a612048470d2dd5afec8d7243c1d4b451c0063d132bd5ef6ec47f9c7f471a923b21e4fb090939e03f992c70c15a4df8638aaae5f65e444a0faa5df5d83362e8ad916565d53479fe4ada654005c2e567d6f6a7d2f6283fa42d8fa2b5977ed0da0de832f8242d0c720af3a1a38b5a0caccca7461595997ebcf48777bf0906b092befb022c6ce4a07572305429350521fc975b7c75660b4cae63a11cf335946c78e2b0a3285a4ce41ad09cc1594f14a95c16921680a5aa10715ae11c32d03027768ab4f1e74be0e60df32b5540c85da04420106e29f351c4c9a75c26c7f2b0ccf13df6f06b6a603e99aa75f58fd67d7d9874fdbf5cb7e0a587dc8c113ee081302a69e5c7e4c0f17df228d8368a4d6a37a205269d9a1e654f1f23ea71f7325106ea5d54e0b07e5c74e3e3bd8e99f208f6e4ce0fb867c382f626ccfbe00eecef5ca70e73b0bc5da7354ac13b8f729f2431ce985099aae04c1a6e632c30d17e11ea71b1e5341174ea205c54f103a4fd854efb2d12534d4ea6cf0411d05869e56b0e312b93105e397742ccdeb10923becce57dd28cefd7db456a08667ffaa9e43ec707a9d412e41b261bd1feb8d652fd9700aec958ab4a66dd0edddcb826c6c43cbfa52c7c1b8518c7e7aa49d54064bc4e88e459e2c8f3c3f51c0784b0d74a0e109d28f679c52680d6f2f7a1ea71cf4e0389cd556b907898eb22a1c2588db10ddba67874a8c7f5b1fb04cda278dad459b03d1ee4c5dea3daeaeedabe42ece4e76615dce42b7052e081ba8230cd7e2e2ae2097e2f4109443a435f52236a670af64f6dfaf8ab2715c177cced67fd68e523a3b06dbc278cab7b62d8a7a407ff235663175794bcbac7cdb962c97b6e7165e229aeaa7fca82fdb9721b4d6755d88e00996c7a35d35337ec98981f8ba6f9c0eabf9b22081170a8b9bb5c5665aff179ddd8fbf71d840d53d6d75ac1c87396356e3ad877cf9bc61bd895ebab977b436fcdf77e2a473a5cb363a6e22638bc1bf2fd7d2be3d1a833a32c100bf97ae8cdbc4fb797023bf5aa92a5e8da3563453ce76be2804f03137574f87d34292236b251133415ce4430bb10da46d0e2351b381cdb402e3897af68dace68b26ae3f8c75b86a59a4f61aa4027f2b4859f5701c6f31c9420253c62221ace25d2b2152b96db87ffd13d8d5874db755d533a8648e8774fc20108adc4ebf2431d9984984a574eed36cc8f990c3c9ce5fa61b2b2600d23464b51499044b1a3ca81c6cfcff8ea820f7c93a6aed17b0a5e499e5782a7f1b9330917fe015fe2e923831f7fbd5d21ebdcc2bcbc08048fa8c5b5e2882ecc63bb2caab51d2be8aa964af946cd3d89a0cd7ffd6b88a123b30795b19a44c9f3dfeb62d6488c1ab43233c9e6685f1ab76e0fd5770c0ef74d353017b1e0639defca1bf32373d54bfbfaaa8df2d46424d7e6728f6c8ec46b8d6894157582179b5e481167dce6e146354211c1cef32d842fc41d925a143f6f9bb7c615227cbb8455bb756f1d8070737dea7e2b251ef1b1e86d5809081d11fa4dee84aef7c1257368c1f27862a24e14417b9a7c9cb576e7a3c9f4334c17a37d889dc3a55877bb09280d0aec01d8f78e06a3d80b368709a6013d164354c9b57f75d65b1f2224c46c6b3e83fbee0c5bf13270f9cb27c4a79c1004d9d1067c2582608eabf26741e7432543506f32683665df755630708912d154d95f7bd3c39c467ddda59bec88d2e9fa0e9b6407a2ec7a07a54f813cd9a76e25818eec88165d1b63972e2968b50abd5567294174487b822372af6e481a44d75271c11161a2063f23e10bdc80e47cae010924316b6373edbce60dfd20a523e50df0c67e886cea71648e849c637c123525fae4c0dc7a780d39f0e6d151299da62e0603a505a3aa28be2fe4d5169ff0b3e7fe1c5549ac552456c3e3030759d0001241154b42adfbf3216195624a3de1fb33fd24267842aaa3e9ba45bcc095fa12ac8914e916083fd2577d23b12304016cca02eaf6c1655c3010c2d21cb6cfe2d6c8d936a6fd6265ebffe4661c070b4eb6a58feae56a4afef236b10d44b7f30cb475f27138cb62907a2a009510d40b3545ffb7f28315d4803e0374a80834f2378ed5a6ff4ab78e6eb635d94d448484369132a51471065106200642bdbda434b753119453d194aaefa3824a46103630cd349167fe335a06bdfdb0299bc13a3da3b4e58c9acb54b4e8707d2c2d93cb4e490ca1fe314ae7cf7019c84423e8f68f90e436153d8261c66d8fc9091eae134636b7eaf6d3e930ef69764a62c8eddb54b7a170725b0afa63acbd349cec1f277b06977e728687a4313920c1058b593f21044b151bc4ac00e68726d2867c5c2475fb9d5020ba3d96302fbf6d190598cc1e38bf90f94bd5059abe70f962c4ed767707431b2a94521aae6e9c6cdbb6ad5800b8dcf445855a6b6559ef8c053dcff36c6bb3020441b0e572797181abd56ae5a2591941035a6b2dcd8b16f1025d2e97eb55d37aaa015fafd7abc6c64b142f4d6cc0297a490286ab57978ffde358e05820e287882b415794a2e8820414455c6eea52e47534cc5198a8aacb4d5dccdcb283b8dcd40493db484da298a21286e8f21597a9409185c5ccfc1941e2e4fc1ff7bea3ce1fc37b62e1f305919c9ccfc475e6b31dd975563fc7d518fb4677e2241293a7284d86a04188186819aae149851aaaac40c564045d0545b07ebdc492a2295354cc1c41c3072a2ee8610b0a25285239ea7549364b92725001145a8884602209a33057a030c2c2c4265a23d6470d5ec0048325820093650240d0b043992459a6a4d04068a2136e1d63f4f97a1427e7d3181dddc97525244e46d0c26449922957986099cd0694f92204ca0a31438ea60d62ff7613bf4169ca865eb04216583ca1b221871566f3a7708041114fa0d094c30eb3e935b0ce74272eb0a53bb9f36352d64c074ad81276e7748ae44cab19b058cd5c8581dd9ea32c8ece9f73cea69b939f09dc633846be7474774aa9135fd3af53c6967ffbcf431bee377c50fcc2fff1705e50fc9ebdee35b182e2f689e0bc9e08e31dfa9d585b52ecfc516bed60fb653de3ff38ed631cb7514a29a594524a29b769f429a554e329256a9545418a9214251792819d95e711523ba41cd4787be6f8c745b052fa72d25d704ad8fe160fb652900260ea9bab1039b9136a2a0971e77754e5043097a7dc72c69dd7cae63d252fc1554e8872e7d39d5d6e09729c17cb400061e5bac85583c1a6be26a85ac7061d8060073239ce061dbcc00ee49df92ea860b01c3e96e48c184f33a09ec8ed9f8a5583294fa63c59f264c9132c485868008506508c2832e2a8d963be4169941714d47950e75e0cb6e42822ef297d8a7ea6ccfb7e6e9cbbbfbbe7d9a016cd9d5ff215f6188a2d39cac78f9900a39f793f9f8627c0fbf93f41b55a0b83cdbb8d3c835c676eda512b0a660f44ade96c77ef29a2cf087373ccc89c93763e53673e9de494913e739b0ef05937c65cb0a5cf7cafe38e9f3c939bd377987c7c2e91ab490f4a3d2865b1fe6c946522e153e7ba3f6be4d5c4320097430678571bb7adbb5ba3ad1915e1a38867ba715f16e0002fde99ff2d831b6b18c6fc3932ef8cd36774152381bd413ae93ce7d4c87f0f8539e7b6bda0b8be70532f285636bb743fd7344ddb36d768161f4a00750770d9872244dc1755bafedb369927835b2c12d489934e99d848614b4fc2248913ef99e23d6c744b4f22759b9a3072b9c9cb900e2e377121ba76ca3c89ebf8cbc03bfe4e644bca24a63d73b9db8d916527b92f2993eb3f4e4ecac47bd87bd8b2ce7c18ccda19ecdfd293d82cd9c945ec6663abaf2166c2499899d9a9522dd3b47d1ef1e1aeb025333d57ef0b572cb02e614bda022b0dd35057ad476cc943f3a2154bcecbbeac0decf6373d70f9eb6d7a03d623f68381dc152dc0fa822d612ec08ae5888d81f588c5c1a9516c19a363785fee0d38e800ac31b00fd623f65b144551146d6a5ea228d288ae96288aa2c8afea82a30274b2df48a10d32a77c9d3bc777d299b00c841052b77ca60f4a3741c296ae14640b92eb24e4684b138ea39452ee8b580ee6e40b1a753f07392dd68166773331d54c5051da533b82e9fa7f525252425242532615d54a944e4a27a53fa8909290bb949252c770903a2a5dc9dadbb54e3a021d33f084945015e29d2a29a55aa528a595927487e536a1a94367b0cec4653986b82c863b9229fb711dfa589c946e84522a65853e7374a31aa5e38b292c4bdd393275a60f0bce4a1b89ea24db1387214d4dedd831650f83c1603f3ba66c6ab0263ba68ce80eda0b4b30d8b67130186c83c1a66c0423d8948da04d4d6de30e1dec4f140c060baadb46eed019c096ebb00dc63b2ebed892a7764c4d4df154a714d30243c754f03038730cfd9631c716b1eb5f8eb58ab1e5d0fd82c44ed0474747da11eca78fa6ecb5111663c1967d142fd8a6f8fc399c5307c7b81dc3c6bc3cf2d44cb1deedddde5d5b36588fe13d3cec016889fa67ca7ac450658a6a4c91314ecc5a4b0e53b2f0e1092439ccfa797c949a3eced9aa6857536cc95deb3d656fcfd33a09f2cd0901ddba077893b8af53c68d2fa7b7daf9e2f179928be263ea2aa5e9385c8217c7850d95e5cf39ce7ec07db930befc652ccf4f10ccc9183e730c9f8a6118f2b88cb110f9d0081281dd0a6369714b96ba3e0be97c0f733f8869ff610b2d9667caec746143c6966045c1368efad6fb4ec4c11fbe0dfef0872efd71e787d3000dc37b2afecc979349abd598e33a0e7b130cb5000815254655a228b2c32c013a18152942063cbc2066e6cfe3b389392faef3fcf8dff0e7f101fd5bb262fdeb761251dad4be7add0850311cde77da8b291293d47a0e8162414cedd4d19e15241659d0fb1f176a244ee608826ae560938c7ee6faef7304819d98d47a0f8162415a6bfca9a3f14c1d8d67ab770f83e653b07a20e8fd00440b2a9af44c7bb07a616ec880582cfca11bae5a100114770825b17f5f200145872244280933c44cbb31c54c17196810e5852133ed49d0de87f62cd1feb775d5eb6aed9220aa5e27e6c903ab0782de0f60f5a8a8f25068feea390c81b2de8e3f623bcc58cfdd8318209866adfff14e4c72fd0defa92d71f59f104c649c5ced31a0811ed3d3a6442504dae1a4d689d588ed30008a223829e464b7fa4ffcc4ee5de2ea8c99ebc3498d042fc175348ddbbab11546cba1c93a84f9ad671e7fd4e8f003d36ca54494982a96687f25b6fe9b46108d19327b0648f46c751fabde3793ae762ee323a87cfcd0be8b3497cc67da57af13d25e04efd9310593ab3d06b4d73e0eecd01b6938a9b5c4af4597165596041f7f687821d0677d8721843aecb3c61fe09499fd0e75b47e35fe4040d313d3acd512576f45d6d310c8a3ddfff80f0deff1c64ea42c91671cd54ae4198736fcfb9970b6388559ba00b8ec140513ae5b2acd151bc3d13c3ae7d1ad5663d9a384db7d6ff47ee3b67dc00d831b4609020e30ef94436577eb73df1ff49ce87d3796e0edfee396d13d8c39ba03b8dcc318a4fbb9874034ef614df7b465b8befbad65b4befbca1e84df7dc71ef0edfe5b49b134c461f3dfb3c4f2035ad915384eb142414ebafe13f9da8826f4658d2d17f881630dbfe0ea49f01e7742a9051514519112b8fad8121111fd3849bf25c6c0ff9eaf4b8c812b965db1582b304a2cbba232726bbf7a0fcddbb7f6ffb32249c4da2fffe68c2450cdc800d6afbe068f93adfe687f630dbf5f13752142e233ff8fb61451e04b7c21f23859fbab95935d89319c5cc55ce077d14ab44ec65c630dbfaed507b98c9b3812816537ef4f4209fe3ebcc775fd7f4cd99cf9bbc095cf0ceff9095375fd693449717457ab31c6114bbf7c0182639093afdf42209ae7f003fbab18f87dc1a71163e0f375b55ce20c310606b1426390930c089f67883f35b8279d043f58e970d25b38a0a67c63d090d5f8fdc673e5b3aab2740cc5ca3bdd8362c73bddb7481b46f79fb8358cee7f6627d6bf11bded8a2df9d220ae5eed9b8acf25501c0a3873e6cce5621fbccfcf14672cb13b460812caf11a7f59f17db2399bdfa4f4859339d4653cae453d51f17172f28ce1248f9353c64c1f074e1e598eebcce799842d7978bca7693829bbe135e6edf10705b6e4a8a06973c496b032e7b64c7bf056dea16392f65ae880201d505199f693d2a92d858f73ca6daa9999856433620f1230c7b2566b7ba402b434c5495fe960cb8eeaa8a1995450918effd08ca74e4f4d1dff1ca6d5875f830ef0470db1067cbf7a1ddfafc61f35f4ff18757c1f8e3fbe111cffabcd840b9ca0e104414820229af14c1df790aa862c3a4839aac104efe230a1bf4747c1313edf8ff2e0defb2dbdc4d4b9c4d8faf45b433c716b1850dc57eebd2feb3794934f6d85fbb6e249bce37d5b465f1e5f451d4e7ad0d63064b09d14e5fafbb851efe12622495c6e22d2e5c6b4efeee6313d6d4a54c223b11ab16d643671d29baacc5c035c6eaab2227e2f39d94cded363c3a0cfd44b4a2c37e5c73bca7bc6b2b1dc122e78fbbb0778b9ff3431e9fbc67eeaa529a333ff667ab24becdfb2a7a6cc8418bc1441441626786289997f7f9932105c08a2c80c62f0a488ccccbfa3fca99293ee63ecfcb2a3daa849127bc042b36a1dd5512ee32a2a29a63233c3fc704bf0f697304beeb4dbe8c9b9290aaaeb4d6194c0b293cc246c63911adb05c4962c153eb65209f3468817f23d912f773feff33c8e13bbff3a1184fa9db8d54ec8c9aefbafebbadf366ff35e13fbc851875a47b7ba6d4fe96fa2f71c76efb4abb86d9ad6c4f75177e6e6e66676766e6667e776ee1e7d38c94f51f83eb0e74372923d26562effd76e813be4dd4abe165c2c3f73cc5264f93e1f5adde7ac4594c890e3ab3abaf3e79c65487092bf6bbbcff969658f97d6ce850a8f241170d4ac0611c420da6f41d77de461c2bc491fd09eeffc3134d382b4b1c7b2f2d40101d19d41868898908e8c8a809c403443a18a30f514c3a77df2d4b9366af0cefcc911b134c7c9e92b1ad698978e3a94ce3156a35efe328693dcdd93e5df642086d59d3de9f3ee23f3053ac921d0dc7c05fab6f556933e24dccde373f24ca7255cf73961dd389ab66de4b55c92edff3af6da6d3d62bbbd69b0fd613d62e70cb695d3edaffecfe5a2d3e572b96e58778e6505ae3f18f274ee56e58fbbbadc9d6379e33a65bafcb54b5886bd8fbef64943206df315d536ae2a013b259ef781e1aab2582cdbf2989e3e5708e4832db52697ff556353737373f3a271dddcb4eccdcd0deb6615dedc809fd755ee2600de11dfc7b2ed3230cfc973f2501c8da5e13cec8bb65590225daebeec0b66a72a4869131c18cec3beb84f9e0c4b028d2e0f61852150a562fd93d8b6bc5d35893918f2b17b4c4a6498a1588f2c7b8fbec24745379ada14fd688a9a9315557700979dc258b99452ca7dd7fd9cdc9cdf75b5abb3c5399f7b8e9b734eed4eedc76775720e75ad69a93858bf01e244666e8068547c9c93c47a87b49d30a9315837e2640cd6bf7423977d9c57cce99ab6e386938e65f2c498e1748e453e84cd7c4ebad339aff0216ee44536677438395599d4263667901a89935c61e04eccc7393727d828972e5d3ade9c8063db53f0d5249d336130de9eabad6dda046b53a5396709dc919dcf3dbeafba607df0c0a8cf061a61292334a0ad342f87b9c089bd8a300d0ea25483e1bcb68de3aa8de621a9e78540a10dbf9577c0ca4f3f4a1fd7c90bea6079ac40bcc3d6526bad9dde35abfe705cb03c6ab4acbc53a38688b243d812d41a06ff8f833c22d997ad42585b69b03cc282b06157b92dfc6808642b8be36aed3acfc786df8ff9fb2cd0cb86dfad42d9cef3a6bcc32cfbf2afe94f710322b8deee2c7777da2018ae582090b5b6bd5539742beff0576eeb3aada3d3bbae79c50aaf8f65066ed70cf155172cfff7c349a2cb3e1ae0337e16e5dfbeb298d90b813ed05734acd15d30b42cdb4847fee2178b6632cdabe66561382f6b53735e1686f3b2fe9fcf9f7736d8de73a42c17ec7c172110f3cefc23d88d8540d58885e1f40633d892bc1c7400548fd42356e4711cc771b4a9798de34833ba5ae3388e634d948f7dcee0b60e9028a5f452a7222797524a290c54a4943eb7694f9f67ca6892a5197d1c4a85f38ce582e550074db2349bef224db234e350874b4dddc034737ffa76cae61f7d1aede12fe96b945f7391323353afa0bba855aef3401729b7792ececb69218ef9fe5a880304a5f601bd3cc4fb819f873686b69e4b5bd701f806509675d92948935b7e10a46dcb215f942143fad8407365b7ff73e673547f2d5f32b8254ecf2d81dc79e5cef99608cb9d0f63c19d4e2798217b38ea7387663b1060df66feea2b206450805bfd19ca872831f81b39be8e3a73c29def8540b31b92021c5e4801550b50b3d2de31446cc942c5142a2833aff2e149988f36936c23222222429ad1afdc532ffd2e04a2dc431653eefc1a02cd4a85cb102ba75b676184bcd58815782982220b1698e0c8ac845de7b9ce84920d23305aba418911337fd275ec600ffada1e737d8a272e4cafeb63d983bf90600aac7f491d477b49b125ce6d92e98cb20c0fc8a5d49b8071676d6186a788888884cc1a4b962c4f4eb77c718591962b96c0028a1915cc2c71bd064bae07b13860f99a4199f3c288d62d679099ba4ce5fa575bc5922ace9431e2fa933c305c6eb2a28a6619e1591cfb8269b3ce49e60a0b57be4c1d06aa968cd35173a595882f964c1416d85a22962c0c0855a5fc82e1d89776d909480fb7b4cf397154a3a39439270747eccde52630576ef91b38d99acb4d6076e80089855d6e0233437d302d18f11caad9d92f66ee3c329bb3fe9cdd58d65fc18d2298a60ecb66454e407ef0a050bae2a5979d82044e454a507354a3c26b87d7944aa6927949d942e444e9961586f3391b1348b784d57074cb0ac3798e0575cf578713cd3cd7e5a175cf8945427c66ddb8bd519d792357d9c867c6bd271609a933ee8d7c66dd7f936a74730eac69c1b64faa6da058cea79aa68d62b9dd8fed37569e75db06601d82c0dd0eb0aef62c6e80bb74e4a16ddb5beed6d56b1363f3b7afcf89b1b98d463ece3349fa9b58b9ed3f16c889f53791abdbafb6ef2ae753a9f01ea6c2f6f3f4167d3aa97b563825dc0f5d8fb65c34dd75ed7d6018829fd755d1d829ebba87585758c3ab317ad5d8b49afbed45c38ddc4fee03eee7b7389ba51b7b9b3d60de71b56cee076b512b8fce924fe78226c4c1e3f572b55ab8985a7743e5b6c9a29686e02aace122c64c5d85098987fe7ca489c30a7154a0fc4b6bb516062b03709babf2a93174b5a71c7be2b96ca238bf0952c7d4acf082f2d2e185431df382c2e437114cfac37a6efcb86fbf0920843b9d7534eed9bb26dce9ddd9b18ef64dc4bc5b8b75b4edc5abbdf61f8c734e9ffcade8c6f56caf25e8012cebe8cde5efa829ebc6463ae236525423d58c0089f612ee99e30c27fda5e44c6adb07eefcdeeee4c6e61ded29a5946e2305ee0c3f18b5ae753b31876f17c14799cf5421851766bd7abc2ab751cd67caba2775a25a743c3708022c1bf9cc75ae82a5602fd7bbd70bb88d6ad3268a0886a48f3c6acabada6d444222bbb006781b0989056dee4bc97ada371d699e784df17c4eaa6d1bc7711cb769744e913bef6bb0d4b9cc4e9a12ba846ae0c6d5aefbbbaf1bbc0f9c2ccb3aee2a634b7bc5df58ab108707ba7a475e85218e0a8897f2d0fedb1804a758bc70706a61cbeca8fbb280530b4c9795eeecee6624a71686487dec53c633cb5389cce076f797af12a7ccc1b9e50b12c0702700ee9c2468baf3612c18b9f39f852e773e4904063c320250cd2a0dbe5a30a5a594b6a0a394524aa717e13dd7bffa902098ae3f7d18c521cba5f3d2d74129a594f26c56720448ae6b2ee060b1f3b293d1d1911291279c4650e6c22e3b19f940c48b6599076ca0e14912a4254ba4ccf8612ce326949050b920091eae4861c6cfcc5f999f7f5a28d38297a3cfd132fc733014d950e48402c341c3e8877211e9d8d1c349052eb749a24964e403432995ccc5c948e9964cd5dd45b79f4e27bda79fc77b4a0e1e4c779baa0cc941cbe0dbaf232807f7d7a319be10c63722a2eabaaefba15b6b576b2c841fed84d2ccfbee4be81b81583f01a8663f084035fbbefbbefcd915ecdfd2fe9481d0454a89a626467888613624258b179082784195a6a2993f51821ccca0e08514a86634548872011219304d3c31f3f744661d76527ba714a62e79d9298525a7149a5c763a3273772e3b09c1e2da16cb789690b4a00a0a6eb85235e3ee6c2e94d65adf06dffa43977dbc18639d848cd9e673e2d06d714b27f2d44901cc7594b060f501f6d42fe9739ceb70cc94f9b79172d9638cd19f4f5f52689f91cae1a43b538c56010a8b29245aea7611662c9fbb048e7c66f8d83bdfbe36ce7d3481de39f2701ef78da394dbdcddc714b4306f671218687f08c2cca04d165cbe2027b17c0c026626e11b4766158c3c51e92c655c80d5ea5ef5315b006807bbbd7dcd6dfa0d0ade03bc4161fe00d1c3e72688e5b1ccb9394e7614906661d91e617144aad42a1c118e88085af131cb6af704c29abadbeb06537cdd957e579b6b7777777753da54889b118598e77c162975cdc96dcc71d2cb1e2fee7c9fcff4c949deb68d3a350ca64c4c9d1a86ffa44fcc746ea2ff1469752ed70cf3e3b015b58a2d9dcb2d7b6849ee8bb7c282cc5e101ffff7c54986e276f717a79a629fa1c9f2730e0f76fe1479eab4f8327936fd7b749b81ef6153878b2d6b73cf55523f8721f8ac471641f7026e52289952669e1e600a3d8140d96061834537998f49134722f22233484c492d4d89c2473d78072aeac68b1cde9943aaa635c7755fbdb2b9ee5be4849cecefba3bcee3b6ad374de334ed39ae7b8e7b4de37a7b0e354facdf226b1d5739ea3305cb9fb9769d835d8ae06e9b7ffff9bb776f5bf7a66def79ee75df62f79d28d4fd69edee559f1e3e57033e9747bfbf8b1755d81e3d7c7af87058a3c75a35e07379b09310a40b3607c3e797bef62e6a1dc4e75d458e63e63b96cc9452ca2c528edf9999c51e4229a5947afdade046c8c81f9a22a8244e774439ead08c8c040000003315002018100c888442a160340e344dde0114800d72843e6c4a36150843b120875110834110c618838c310418428031c810511200d06d78af4aa1d439a9f05c9c6b7b51aa7e44610973532a85d49317620dbb5992be4b16ccd7e0c4d7cc953cb9cb6eea87c95d7a5b3a6a2581dc28af04d42102e5a51e7c26872d3c50000a9bf6723050603c83b27be47b79b2055df5828180fb6d2b99f021703a0c1b56a3c1951db080e0d3460d6610e0d9c59b261312c6f8a5e47ac8f6c0c2591b6a9fc3044fa41461c4fef936b336f4c84d13e1f76da1340621a98ab537c1268b6ff0baf1eaa6fc0e558d720377b584109ea955312244fb22b942c7961be43c1c4b6ad08fe7b8b70d450bc467566cd8acca81d11cbb8619a67d58566c38bb3313f9d94d31763f370a8236ec8fb9ce662a0c323c9584a0963ad5dff21f4b6fc505dff9d94413e8b5bca78085f42920e2adb8dcf8d8fa9eb40b509143ed6be5d0afb5957fad493871cb65f4ba007e4cfff0210a4bfbb918248e2239d8f77b4e26bb1b3452215351093650b180d8da9aca113fed7018d338b2984f9c35fe5ac12ae38978ea494f214a5781de1f8c47741171e36fe123bf1774d1ba3a4ee3f631b9268afff458d86388b717bb18012c3208930bd5e599ad5fc8937565e2d7a8c6bb76c5ce3e152275492665b14602514728ca27a9fcc8d24d14f28c944b9160918448b1c24e48f39486b5a7745bee9ed7a59b38d5eafa44dd24db8f0e5907b79703bae2429bdde8536e202be47049434dcd701733b7f06da9c5cadebfc877eb7a649e40b4d019e852b61948f66371502063b5173fcd3a2a0468ed04833cf21a776e6d3aa0e10b864c3a1418cb6dae6ed098cd3370724b3f871e0c7f919af1ec3b60a9aa8cfd305cea906a6f54d1560f5ec2cc82ca63294671c9916235240a1ef03de4002c6c9947ad290809615e3c13a5017348859ee9be061cdf6ffc95959d3692198325b3cfa2c71420afe94ae2ebeb590711f2885659a1e7960fe2eff1ce076b166b100c8b7d889cb374c663e5e4eca5bbd6a98646577168df66d0d283e99e0e7c10e7c32097801dfbb8980b746905e9f5d91980b5db0ddff76befc2669727c66181d7efa7ac61261db8079ba030979cd5db50d22a6c6ffe3e7eeb77d5378c88bacdbd6d287d6661193d8ef1563fc7e52f0d61e96907656e03f5d3c04abec9afa9c83ccd2a5bf34c56b05494caec0e5aba776325045f8ce81f0d7c4cdce7449009cb8a8bdc410723f50f3bea72677950ca4dfa51bc68ae04654625489100351846c921d268535d1f30974b27dfbe1d2dbec2d9888880b15d9dd8258129c7c8c832b2e28fe9a58350d0ad9251d4fbcebd2d628dff7bf0001a300530e04e79f5692963896090bfd76b25ee7a702b1ea492bded6fc83eda3b9f16667c8af1cd657b07ab59ab9e5d21db7591fe2ec3fdabe6644cc32d08af9ae32a5d8f02b9d65516225c2f46de768330bf5e88d3b685abe621633543e3cacf4dfac513a53c1ab3b2d26cab660442759c1fcd957b774253abbf815acd7fd080e79cdb63ff06aca9da052413dac77bcd1d90e84489f97e6c675a81363489567ed3c0aea3d789e292a7c8b0e6f5b79fc18975be9a429591b3b26626d9d947dfce04d98f3bfeea404a1537a045cdec873f16c2616ea907dcc45d390dc63c28b45719700b048b37a1a5bb5e6c5a3af919a47a1fdaa8478d83776bce97795b02e22f87a2b332faf6aab8eb913c63399473091ed98924bfd1504aca53eefbb352a1423232a82262154aa6104f996550cdd294fbbc25c6f3cd5bf18cbcb29c2f5b5d3b7f6d7afe52353392f026d4a98f989fa2145ebd42fd77f58fe8874bfbc91a2140021fc044355d2765521e6f524283994c9e7c81917ae4c5ca5b03fa66340dfcc1cf66743650493398a86a4117cc013258d03ace82ceb167d300b31e5ac08c05a1d6bbd47efda2ee33e776b3a66be6feec8860d840d9232c9d07c410c647f182c11ac3d63a5079a0816f184a7181b8ae7bd35d91079369f50e5a3eb19f6e699c50fd6e86ea0645fb71ab9f966686cf1c4dc5310b6e7d3e2ff9a3b0017fa1eb95ad3606bd3fd9f64392ee5fe0cb05300949cdaa86d174c9b955c4c3a1ab3640aadd7543e17ba4f0a2713c079b8f218de27970e8f78c383984d33402114ac0772c3bae8b73515c7f1cd1255b66418508d0d078f4bb19ff1da32ee3177223b6b63b02ad4aba28340ed470fea7fd685027932bc0332f1add0e34c794369428ea49618c6dc8a4ba8e690a85139a0225ea6c7a3740c12576910c0540f5f15d0a03774bbc7737ce330705908fddcc6bdabd4eee296ef27522def7578c45c4b34a3338c7c01a4521ce2eaff8d077bb15b7f6ecc28dd77c55afefdcb44843816746d078f00a4387906e0967fad1e4df5f1c1c86240dd089ead19b9f6263d83d367c6113f3810b96d1e2f8f1214f46743c605ab52e2a1ce82bb8d033185356a87041e4a64c351031de4730045da5c75133223761593d4dc19e8c79483232e382d05d4a8c46da1311366b473704560558d1297a59787f9db3da666f7fd8363ac18eb9e66cc6cac1e0ded39cd5a12773567a0c1c11a8ad670750bf167002200dceaa3e18e798c7b6d1950d2b283f5ac0b2cd849b8d341101fb0580cd3e589703b404671ec820433dbb67fdee3bffeacec09ab82bed476cb026c0cacfed137b4456dab64b3ff4a34618808b9b5418f1ab396dca126205fc8fddb9bf2ef0efd141cc3bab656819a85f95815bf4e66137304125651f2d6a8059f4f125596dc1c974148d3eeca56b8082e72d3cc0d290c5d0da4e2db01a4992053ecc5d14c22d8054bd36ffdeb71ab341ff7589ebee15738b2c702b993f72fc902d7737df53defd46e76db3a05764efdb7fea4df876e36cbb45e3cb2d53de84583adec4eefe720d2844007be3dc4deca6bb96c96ec2b8c130237726bb4d283b51fa19720c05c129c2b609495d73e3cba19fb30f324cb14e9e645900453851792b066c130b1a81f000c48fb7291cbf4a618a5009fe1659dd2336b1acb2c80d997546f702db849743a5ce1beb14c2ebf65a1636f1d35edcb646b8a078b2b00990b135e22f7d31d8ba15de6ca0a3f003aea6bf68e96ba5f214a88bb606157eda230bc686b8b94113dd0b64738deadce8895f7b3bceee0f4c63a297a92ea6f73ba26625c6638c7e8611406cc348b292bdf9a2479fda96fd31477bb48ed066f82dbd8b91384412a0e32f79e84f5b1a8a441be348202ec12a09dee1c35ac1bef1396d6d1d8d8b6534ad604587a005e6ead28f02904411c5932fd9fb7452ee322bcb7f0f7462ec0cf51b5d6c416a7d52fe3b27a474f905ad46833bbb09d6445484acba598e4dde97448829859b30092d743b0a3a5ce6ecdec2b4e371d7e46f796e1ace7692094c728f1d233b31bcc7e2c2d84b4b973d3cf3a5f0ebbcf1fbc563c33e221625494d235f1c4b6cc1ec28bd831abe73220f45c2001079d246ceeb3e38ee64fd9c19ae477730df6c1c18942bcf5ae734d3781ddd6bbbed4fab18ce14f261b828ff3edcae48c3f0897cd9b37b17013e42be85a53ef1a986dec8e62750a2912f1a2905b5f02a4f13081530ffe435b7fe3cd60635736de89cbaac9af05dab15715414e4994cee60ce33976429b6768fd33b2edab8e7680b5ffc6e45de0d2bdc63f4d8ae536dc42987210a99536f9439b7aed24a1b402daab64571b9226f8df88c4261cfaede929754d00146641adb6ff13452a8e437f7073f9b6ddc72234cbb8a4e5de940676324b3a0e6a0b8b2561ecd1fa07b673e37beeae8732866cd4d005d5b0066be8dc8c11a3828e1091e1a18ae04ff888e66ad4baea96d195175e93c3b263189643be22b63423128dee35ce16a1f200f3d425f96a07390b16259c5da96b332838d0e73bb5d29ac4aebbb8e5659098f6110d89b1abc29599dd4425a94eee72771fa89120dc93e2b3fde79fd5c57a15182c959eb9755d2141434e20fcf22b952804493d12952d2ac419fce2561e063d5042e17f5947cd9ef836ffbd918950467023da129d878619a67170b737fb3ee0390ba754263d4279c41ca59114cbc32798ee4aae9eee2e23dda9529dc996710849e9c4b55e9d83905f66e4a508f4f0e85af5ce5ad1b269455775c574f532cc68bfc81c2b4315de357ccd8e962562c5bbd5a701600bac468d489e6fe31696054927f39c01f5c097be222490161733f65c71c000336c3c5aa53f598b843b53d09f81e22a530839b708d99ee3ba711beeb1ad5087f963f6e18fcdd75a9561d638c70dee1e29718cc72f45d30f6774914a860a80bc60a7e9672914b0dbc74423f9155812bb629d2769c89ab29554b400b666de420b12e3eaf4ee22d3c14f7c79c3f7efeee6675eb468e2b0cca11c649ad0223e4ab86d4046f406c6205d540fef081926e01eb1bf3691ec541cbf7dbb160b5b0d650addaa5b019383c8be5a725a66640d2c685a683a4d1a17447666ce83a483212aaee64c685a02379232344a6fb500b2cb2afaad2aa4cedbd25a46640f2c685a68bacd121e844666ce8ba483212aace24c685a62b69232344a6ebd3d645854e53eb532ab1d26d822082e82da1a7e06c70ad711b9efdca95b8f57fdbac1eff963ed6d2b4b0744d827fabc1756fafe12bc1606ba0df408f36d1723537252773bbd0b158720e6df7bf6caa624cf00bd29b217c83712d729354db06f56466e4b4fef8afef506615ed72e207d25f7b1b9f5330bc7dce535621386483b3df22813faa00b5baa907abf8f5117d663446f61d883634a2383085f321ce16d79955f9e8b04c793f006bcfe968c5799120b13ff766841a1d8b08ae4c475eb8f9e083e0ba601677e1453fa3289e21d7282f98c9259a39779c8146991237dcb506e1b14c004b888f68ab6323d7ab604aad9516474d0036e049aba6a6fc809ba61496963e4c75f8a893186c08d321467bb86b0c90562f0adab160246c8bc21e5db18f84d4557c019ed701f9720b5f716d189a14fe22a2512095b9825ae17d41f045a4c2cf7bee2e295475c847400b506428fcd0bda0fe356c838f4b5f6828b56f4c0afa3f6b8981ecb3705502897403221b4657e2abe18749b2ef709c4cd1ef90c7126c95891ac5b4e49cd2960d20cdeee8e8187580667a10c3146e98ffe7671f060cea053e77689d42ad11e2b2cd49f197b78c0adee9502c9fce6bc3dbd92144dd66e90d8746bd7d66958b8d49142e536bfed2c034081b2dc6182e1a2f21d2cd9005cc9e292efa3a30d540550df7ca57c485040ab3ce377210cc1faddd5b4010ab2c21a0f4812b89001ebd72d46d883e5d4e5ed224b622604b27887fe55207cbd1d64befc217a4b99c9fdd17ad03c18b9097012b9349e8454929fcb88e7fede65569f2dadfe304d47bea87bd964b146ebebb8891b02332dc90f24cb5f7ea70ad601489ac904dd64742243adf2690b8479ffd7b58e308913be91b8283be1b0422a088b7954592568f4c47c8ed5c8de3ebfd9e6108e1b6a32df6b150bad3bf90cead88be3b908031fac7aa685eb1f99b934d637a8fd2fc2f95ed5adbe1bc1c6f7580c5e7d841bcf0c2317acda340d1e76625052d576073e4311198f5020905ec804cddddbe1481a01b05c61d3064c96c44436fc87af4d89d860d864d5099b1a964231752b9211a91203473e0923fc31516de2765d6297baa296ec86525087f231c596ef556e4da68b4874386c30ec4876c4a5062a6a71dec60341188a7e9339d010cd598511bbeaaf9e0440a0aeeeed0c6fb3cebb83a2309c7a96436bc9c3a33eb403a83aa94a51a24a4454a05433a827d069a037015f2b86d6d24044a215ffd72dab3b8da4ad6813459a2d0eaf34b6cc394b91ec8c7eced923dd2882651cf5f36655367035474b1a61f0c51faf2d88fa28b7be803644d98431df16b327df6999451830228e933684e4462f56948bec45d885720e72f0f929cec5556a39361f97432cce6dcbd21177e2facb0470ff62e86a02e739b14deb835167fccc7acd317561d1f7c9646cd60c03dff4aab1b34df01e649938f3c2e0123eb1a2e9ffe983a7d9819ed29fec016f753153aceeb92ffe71a1cdbe3c56351e1d27dae60be15fa230cadab33a34b4e210b21f58c87f6eb4d430132e3f982cc1b3589a093dccda270f30c297a729a39fdc379224f21df73412eb7409f8a29b82a3daca2d21a58b4970ab2db123b2a34a3a801828d341a92484c98f172006a76d520d713916daa162ff6ccf986d3d2aeabcbbdb32205f36e151526ff8bbb2902e79a1e03c02e93c6ffc7a1b189375446de41ff4040aaee8250c8213adba59d4c4119516ade10d56ff4c080e0278294b15fd08054d531debd7f6c22b55fcf861ceb09f244bb81752daca16086b881f48fe35bd7f20254808c977c0b541e5694650305cd19b9d2d3e961789c6c3e9ffe1a1f98b4473823dd2342c07e8451f18c2070c2edbdb4f5706ee9335ca86d7da181fb5ce844e680d8c53ff966949f9e6be3306533d2d3fbfcc7ab503c5de3a75728ebe8cdc0bc69f2a9504cb25845863d5f57d85ea1287e3d1cd998b8312956150a97a84d29696cce6bc64b8ddb66a17caf89f2422ef624c02720980110795e309ec64251bf1b389711e0e304d342f16b6d3e2e0ea4420c99a119c30ceb135fd943a41f2f6b977e3c4e8a6b7e4ae8fdf0566a3b8e0ecb42c28cea082f1762c2d23193591ce3c1aa420d4eec5ec1d18c87469ca2235711368b63e08b997391726d10d4c3f4b5deff186a2ce62d9ea80f71de9933399c7891676a72c9d6c8675b352e319fcd767f794dbf37a38bbd1f36697b2cbf8e03dfb07337a5babd6e5c5f6d572002b61659a83606834f8bda6ee1ed0d51998ee1161ee3395fc091bb0ca08864e888effeacc105518835739fd2551f1ac4fc129afff33364a90fc26c356bf81b07235c695dbe702018630b839117a4a69342c738000d4b090df001895b10ee403a29b385b86217a04a6608bae9e9a1536ed6e2ec207140257620535dc849f2a26796943692bb72bea247cdb11ed633bd115010410d7775a33370f39b39349d49bbd4d383cd5058fbb73fd1c4571565288a5a501be06538a865b409ee1612fc838acc2e53a1955459ce528d94dc722a0eb86999b3eaf0002f6e19426f39e8a8a232432143f001acdd302b47899be1a62f2f82571e59e76ee49e61dd378a56a128564717b7007fa0ad0829c5d3bd918ce6e9f20416881c3cfd937751eb4e021271306c2a1e3a7befefbb600f49a863c2c926cce4564f6aa6b50686f24ce2c872a719779d3f168f8d36c1418cfe1ea038553ad1717912a0b7abfc2884c130b4be66548c11c3079427b62ae1dcf14064bafa7c4fccbd9e5b531d8cc05c0ac76a2d1154b519293b914f2b9be987e85c2b91bb7e2a38d0299aad4c11892f5cfee33c5314bb9bea0d74bee26d51be7fe9bd8e183013643af4bc0a028de645aef798409852a292ac9ed0e1595d9f799990ca4d8a928e55cb28fb3190cce074231920e2951ea1ec9cdb491c4727302cda48ae441b24b41bdf80c0b0b3fb65f9bb5be883b0169e233618a5b832be284211ada1ed48cd16d01b21c61485475c5c5d370fe974b8942929b948c9ef382820abf79f1d8f49b062170b3f7e02afdc4379a33b6f23d4278381a1b9c53e63e2f46d89dc758443cd6a86ca040ff0b8ee4d876b87799c9ff95dd125d9bd8f83e4980ebc33434d5cb6a5732492412add5ed6d4648cfc3e226f2b406ade8a268124cb550c24a404ba2bcd39bf893eae94ad24c28e44f7624ff113e1486d97b6236dd03ce9d246b61f539b11107410eb29be194353ad942547b6c03ea4f5bdeb60160f5bad90b9c0887f0a9fbae92f83b102d81417180d799cd29c8bb5dcc011913423b5d59d1a64ca28df187fba10acdd313b46d2577bae4920b604cf98ea32170a0603efa9219ba2cc050e5603821f3cef0938e1b28a694483a591048e805d8707b9b927bbd329ac854211f29afefed11d5ea103250b70406f563e0e3081477b5ca30986b3ced3fd97f72169d783c7a5c78fb7d99828243a6718cc122ab26d10fda6318f08d857725e61f81423044cb3642e3ab3240c9b9cc1d397cf35d81d2ede7bd060514710a279c120b86db2039c402170475c96acefbfe9d50ad45ba1dbcf26a61c036c2848c2af6fb8a42e5084ab88c75754ae0a04d745601c460382624644fa1abbaf8a03b10a900a40632ea350151bb1e341fa03e31f79c5360305c098a6354cb56881e0bb45e6fa1b8deb599e674630d107fbae8c03809fc70c5c54147ec943a4f4d25428a1864cd248bcefa543493c80653d71d447e8b344fc6700100ce6a5189104979d394b1ca63c3df0dfdb41f83db3810ba5c5bf57e0d18fef472b927ee9bb476664a61cdc82386bd38723894371add02384095d6b33e9df08885987a30fca98d36b696e27c0199fa526cc9ed03b412089c98918e7fe76c2737e487e03b8af47e908bf1990ff8d5b336f7ad687a06fecffacd3a14c1cd9bcf13a5101c3e92d14e7c0d2c6fa0a3333cb34bbf1c36efa860d3c68017e24941f820f53033d5984d88f7e9232613f83744451bd3134bed142316f29e3524ef6fbd901f6081ba52ed814f6aa49f0a79dcd707eb3655f01242032a23b51761c6a09afc8505e577ca37fbc0c71fee99ffc4988a2154c7cdd34f163a41362e08f783863e091e50ba5273a2fac17a51c15f003e097a0990c62d32d313362484c48892cba8e0f870effd8794d7e627e30ebab35e95245aeaee243510e39fbc8d20f48f813dc085737b2f40dec9bc562341346a2ab554f30a40ee0989b1ab6c7fdab1b67211c15e5b8fe285e9ea1921a86459d13be27b768133b15983f5c31ea9f4402cd3196c31a48fb4def3e0e86455d38d0979b9cc5dea0a0289418b9f4404f061a37ba81334334874e521ddb1538132146e6cd9583386200ae6b1f17b22197394b36a95dc78df3e0730fb28f24304b4c3cf5446ad4676c1eb25b3be01232449cc9353dc191b110164b34850ac470a250fde967a33868410317d43a9d3cf98b010576cf9e5b6e49f420fb5a0bd0f2d8f65a85086d55f9bfb37bad1a81dedb6b771dcdac51a8247b7477658e4a0a6cad2417889d1dda536d8fac324f585c48dbc24760fc67057ad3126cd2531081025381d50f9c884571da8bf8b4443279a5a70354060864cce10a25bbb020c9d0180be67ea6106c6c4cc087c38f858eea220777c0c1f6267eaec8847a6db7d6ae94804aa00ac2d7b46a05d74a7b0df01b940bb09cee3700bfd50089ac201f105abfc10409774ec4aabce3c083a21580152092b5d70680b0a5b90f97bf833079cc75d7ce368594dbd388e7bb3ecb16e2f9d81115108d3a2716a2739d38736c7fe09e711efea4941cbc42e6d04347f0c970ee662740853eac5a7b2408d02f113ad7cee56e82bc09d00f7ec453021393ed9b68acbe88844cb677481765a6b8e464113cdf454ce15e39132cd4c08411295e6975272f040663b977e9c06110700f03ea2d906ec4e1071dcb7163b39b7bcf8e7e9198aa9666e9a637d0ce8f5d54ded6420f62cec3d5a43c35cc0acdf1c2ad2df478b650897904bacb2e32914bc2ff4d030419c2e6050e2256b89ee6e0dac3763e852f213a08541b7021c78023ee93b420e01af287a512ed7ee548484bbc16119e14279bd4045b5199095ca8485b60cb60a5eaadad314c1085ec7c5c520e0eb3b26a46595137f278cd65d112edf5619d664a4b34e3a706d2485fd7bc88a5243ad2819fd63c79cc59e3b2b0319710d251ee5229e665cb66d8efd6d18f059f50722515b676f3d0be8d6f0e70756fdc80afe6ad45a6a06a1936c927c4b7c375acc484db550af8322bedcf06e81e81ebc02d90a177448fa10da059e71fcc8b4c72e6be893d021bd93727cf78b2210a5b7b83634bde878057dc2b180ebd0fdbea083104a8be287c007bdb3e211a5ceda22f7e59c051a5998d5ffb717482272c46eca51180f20932d3d5bf965e00b070e8e45f37f702dcd03362208f9c3f2e52918cb5c50c7c56ff8a876c007779ff94a527f57bef164a700542f76857541cfd7de5e7724a2b63a0c83d0868f827a77704e7f5ef59a6b9c9ad7ef9f17224beb23996915368c61612c5816ea073e7e6724df4e4fc9ded551922fa459d002c5bef7e3381e7f5c9e606bd9f213025a89b838a4bf3ed5419976c1d6045946d29b1efc7d3ba8cebb648b85d39f6c31d1754d2b0a772ac9c882b089fa8bf54f7bf2921d7ee15c2f844e25fc3c946d036e57a0278174e9593f222fbbf5d23224a7fa6fc2cc86732b1bbd2190c027a5de4e071e3fcb6a09ac059518cf6680dff682574a7926dc6d5a46d3a512d3532fba1da3973353fb5c8c8f12cf2101bcbeb2e380b035c764f5d933c9ef0a44e49f7a1fe6be3362bc55c7fb2f694900db6f0c8368c5f1c0c5383cc627cd9edbc1ec7222edf0abe0fe3d1e1b7616fdbd5790197ba378e8981ff25d3779ade1b9d6068fbb6adfa5b9bfa3d78ebae7ca14a7ffa4e9c0739fa4676c7ec22df9f6fc6215d1042398815c61719581f544cf073bfb7df996e2eca088b86648d3487f6db781ca66250d3673d0cf6122da65b0762320642a83af3daafc0ea6dbff7e7b47e6cb25b55a4be6381fa4aea2c941c9bef89667fd11bfd970e5a8b59dcb31ce648e5f0017eb13e833a6a5bf5be4c88529e1c4c160bb13f07cb599e33b73be37c312cfb000cbb74f18e5b2d1729a41f59fa82028125550322630c2f7ac2c814c7e03677fb45584ebcb76cc73a5742beb35b04b162405a14d41e1bee71afdc38710aa449d848a3f0751feb230b7493ac8f769c47f0ba314f091f27d0f4d060d6294f635750f464cf41cf946cd4e5d4ace07bcecbdc9fba266668ac3d03eb213a6aaa03be900a9da6cec7ea73b31a96e1e50771e452ca1aa6bebd14234dfc7601ea7015d75c42bbe9c5f4a20eff4e2b2d16ecdaaa19abc9fd3ad3c19d7e5d5cd44254caee1e2e07e3c579a8dbf618c4005a144b4958f4bf479c02b61c9228807830a9aadff5060e75ed4b48c894cbdb93f8e73f8fe4a6a05d69cbb2a59b6c5a5d50ed29fb7633fca15d5ba16ad0de10572e009b4b2bb017ac1ecfed37f1f6ce036dd4c78a6f53c01008b05523c68e15dfca0b90ce0a0d5788beb40f411b226b3706218529044eabda74641e0770df1b7c700576b630bef796ffe7cb34809be7b1d93a5c4e80ef3024b4578c3d8e41ad9393d62b58a156f1396262391c23e47fccfb36ae593c50c6af103289de584369f6963bcda2fcb46e4afa5742a884632d9f2cffdacbb014bef89fd378cc4946777ae31607385ac3bbc7959007b59752f8fa85792e14ea844751748c36fa9c3fc312045da42e3cccb9108c9c790bfe976afe1ce8f15e46f07362bf5df495765d4225c39d2bbed9fb34cde06b859601e3e6438a4132bd727613bbb4ac50f723424d2232958c1b1628900f636e48cf656b05a20f8a9df7929e09e07a540ff474af62abddde7a1ca4bee97aedaa2821aa4037b2e04ebece5e4f32d0048ed6ea26ee9e4a20eafec458bb8e009880f6be2fcb6a43168be1595207e7e09433fcd0113bd88dc7821b475a8870bdb71e5ac413f8aa78ee39452b72f00c9ccf37803f2ca348692599a36d9e4efbac0fd5c2a3838d8ac4ffc88cdf46bcdfccd310322495c1653b0c5c0e665f63fabad74fd1cdaba1b545d320e9f9f41d12dc91785904e26dc2a54486f7a870311475c5376516d53ef8a2271538298cf0e5f558d8bc45b1bca0d7ce790e18915484f05f2299e70e3ec50bfbc4f7ecd443f6cb7dab15a10a86a647acddb3134834a00c3cb60c0a0ba73c090b88660fe095abf08105e0a43f31df47564d942fbb16a37176e694fe4d4d13b23cc58789f89a54453823095b0dce1184298a7f05677ed408f5e95d2b37d939a575ad4b2c60a4d3f967fe6c4e5de19dfc7f6c8eebc588bac794c66527e869f045ac29b56852b451ee36a2022a73643360e10519ca39cede88167af5d52a019b9efcb0601c318b96203ffd022da751f7a15a9ef324c11e56c3a2934375890521eb20314110155808c3d83591629df5f71f6039e81a3eb8845714f8b2b63c906776fc339f431109323c79d6bb6d9b0c1407b17f8164fe01fac7dd5db62fddf4b4d1aea04a162f3a1f18bc8b41f16bc40eaff7af9f9ffb2d7e2f4b510cd19aa0aa7661e6698d138315088383ddd3dbd4f9358049833f426600638e40a5c525e73bea806fa36a5d30a9cf6a344c064365f1753c17e7822e0a4eba59e09830be365e3851a0d210599097867dec65e6142b3d91eb4b54e0553d452a1a0493844f3cea806a41706a0db136689146bb783ecd4c076a842fe456840624f2426c5849ddbf839df2daf27ff33910d6353b297e9f33410c807e95f84dffe317a33ffd9f25a2f80f6ebc3f1266ee486483a22c2833f7255fb437330410162cf7acf62a2c370e90b9fd72f7e11d0360a62e698b270da010021520237bea6caee99e00a4ae9f89e4c80fabe51c84faee03afe81aa4d9e1aa323aba25a0dbf942f9b56d0d44f1491a99adbc3210759593c6596d294ef84f631ded49b67e8fe6d733231b0afcceec30c802c56a635df934a3487554fdb2fc8f54183b48006575d2a65a17f4a5839b2d0917c6a33d63c385a05f1bc04a9eeb394af360a9daf9fd9252562d5b2a4a9f14979c2537a516cce3935f870aef82ca536afcf7e48f6bf2547473ac52d82eef3a21e78d7a48988aca9b79fd2c14910ce89267d7db19092b2333fac5265038543c5c4eb8f894cfab91bf82099cb9b5fd79c3d9a0e50b413d5626c766215983d02e488a1db35b9d24af98a2b4c8dde277f946c269ed36d20deb256598baacc542f02a4c3505cc246416c22407ce082bdde0b2bcbe61c3e163d8317585f49a37cf0165cab21b11ea2230e907ce5452dec852fff556fb6f5fc5ddaf0d90a9438133c9fc917cba1eebdf1b8c62b32bc85088cc04992a969dbe5bb2a44ab1698371267b45d61acf5037abbd22767d53df05905a2a1ecd8f268645f9344fe399823f0d0152fc6c5259cbd1cc8fe398e41c4d4f2e1d5f7629d7cefa3cf85aa29c8aa4fe46530382a65f475bb7ef40377003d75b4031cf8aaf6be15d99591cc0103d72499b2b1a19e89d2090cbb0d7190184aa00103ae48f70ffd2674140997e22328d6960e83f29cde6688bb8c9a2e9907f4805487a5d755a71067d18e2ec7182ac658a9bff25ea0dd6089f1844a0f75b0c2830f735eff5ba584f75752272435c7155f6b071e8405113e025d6a896348e25b0558d030367a1b04cf7ad2ed3251a0bcc56293d9a99340582b1e6d165bf0a2a653a1efaa06b39ca972e0521e3b28e6612af56e261b2baa4d9dafcf99d19a6b72b8ef4c3173400a457662acc4115611f8a44bc4de3ce443f5b96fc6cf999d64d2e17e18a8eae2dea4151e57bce32edfae6a1a5961287daaa9135517fad871e17b0688cda965a821b0b3fc9c290e3ed834f8ee10804fdd52eb17b8bfa70becfa5ef6311df2885cb9019dff14ade27fb92ca268679eb2d84b850f0351506a03be3177f4e707d0aa9c7148ecc620af42d6371b1a0121c00c930c3889575a4b1aca34142e67d3f833f31068ee0d646b106568be0d1fcd9ace83f16e0b6359eba9d04db65191e87b71d8b1760fd6f4610a6408091dc981e63c02a4570f3eddc53b119705db116c5da8706bdbeba95d8641547603595d225aaee7830f229bda47ad5e5b9b59cf8641bdfdc813d52df5e250842c2a850df4001d6b03ee8feea8c84ae0b1e1bfedd29e29f1c2487bf32f3c350978df8ab823120f6c45f1b7ecb8e6af3bea816d29c17eebb24108bbfb045c051ea0e774bf469fe0e05151e9aa15663cb5e23b11ee162707d1957af4b7af7ea676082c16b0685780f581c0e58b73b0aca7fceb0321514c92afca485e343dc2823c411633831d43554d27184a8bf35d5f15618b31c13ee3702b0df3c05a6d14a5d99738bb55abc3caea795a605230b151ce4f078df39a6a447b5d74bab2a085de7ce5fae85948117db1f780a3ac70d9c8fd0e7f26d75e27695091044997bd176b7317a3f1b21654745b6ecb214a2cba11e40c16524338e98088a3506b332f97e5b452b89abce46d9a14796b08c3fe8e0f64089a23fc4a3a7bf0f9f9c25e14448f32ba8f06a12024bb6efa8b8914668b62446b7a18ceff8786a316d7e0152348e5233c5acfa0a24560f1c528058dc11538b8688b2fcd2d231aef5e7394df5f185e6b1e3014b6cc48f043307630b1d6ba73a52650fc634d2eb71995dbc5104b0bebc2265adbdd4e3e41d1cad2a628dadde442108f50ef50605c246cced9794e22f0c1f1d1c43d56e946b40edc6a6e3995b24f40b07dc25d012da51cc7b52d384398e20e0d2d8e47ca817ea90043f4b199cf9ab364c54d0d0af2c88ac8e63b634d523780e283e738e4a494be2fe0e20d6f7bdd8d7c1ba4f84e1078bbc13d37ebb324e75137f09d46241602797a50e3e735d2438a222c1533c9316395405c9adf756d571e9d825834e9288d890d3e0620b7aaf700ef57e940c7b0c446a12bd0003e7e3978ef1c1698a508572839cd1aafaf1ede8e4ba271842a9e9dc01ca531baad43f173466a9489037153bea30ff1e45cc799c8b61874233848e17c158caf867c241c508c2540ef6e9a82f174f2ca32c0843be5cf1be941993c0c4723efcd0a52f04fa9ab1b543e63a6f09fe369a7bc7398b415472a5eb18884b2a8d63e3144c4e81165cd1eba12b343f5f8d8a13998ad0cdf82bafbff2b790ca8023b54d7f0127c497d8817deace16d4746fbb4dac2e50356a6aac741b19b212d80acc089421375a4d5fec90e60e20c53d7da153b2c9050f392f3602b4d2d34b9017c5d48784cee72445a9651a133a929be4939e8455792ae1c63824fb88abdf9512a4360bb0d551fe86ddc43db048939f901ddb27849e0445b1eca1f2b479c98086311cfa4631cbeb5af213b6741fad49076482f2abd3583a98e580048f7181d552e3a869149530677824f16d9d5a0399a55c30f5ec8951dc403f863c39a17bacc673c4b38aa8b1bb30a181e6d6e7c84103d0ccd22431b1b4fd33d74e2598bdb839951a2de34e0ec43a301fc6a0f3db0740da5e6d6cc8a4984687f4dc00dc20048bd93238a5d020fd97165ef8f5625a5ee23fff364cf45a23d3078f2381383f12d6a5a462dc0b88f9375674c8627a4b0b99c45917a26844345ba6e42c669629fad18f8d8ce8cc3e5aba86f187c78e4d3d8ac3dbf1bd6db39e2e63843d5fd4a4f8819a366f5b874a86763d99654e997f5ae30376d12e2cb06bf4298b1872765c655b0e1d46d6d657474b634dd662d0bd0aba70524ef5050335e4601094c40c738c7625f14c40b508f807236af8984ef1a6a2435af4ec9bbcb8182fc9070f469da182f9f4ee03192d25e6f438728d7adfb2232fd73b09775aeb7fd317b78d5c2d7313cabd21b64f68eb0adf73124ad31e72d0ba3792770f1a2abd138c6292b2da1cc53555d53e0ec99faf4750d4ee016c585a635ee80a060b74eec0f2ee518eeef5447a65fd9e7595e09d507b0ff19bbf28a93d2496ebd0b77c0dca1ee242d96c68dfadc11aa81a66e72ad28fc018d1875e59e89fdf68b8c086bc62daf9f4071620453d6260014fac2d4a7e22c92693a71f600aea02b742e3742befeef45803ed033ee47eff5a4892cf8f0e2f55a056788017532defd3802e552214b97a3a06ed1cafa060d20492295375977dcf7af4073f5880d29c4fdb946a4e0ac60794629814a10400b45b2ddc2f15d4633faa98ef1403cb45e94a38caa4c90ff00b185d2cd931a61133c6236accc2f384eda415e89d87c20fb883810d456031997d0e1c7b215a9c23977c4dd88d8994b51506881ab04e606460905986c40c480f5f3a790da00696022c21a931a61e706af75ef3a71dee02110817440992c12044706ef224effa33893c43858cbe817f7e287aec640ffc05ff1d1e40e8950294efc80dcbf4167d8ff4a294cd253c050e6c8fe39d774586ab945def8a495bcf6062e13c55be4cafc9a51a41f3455efd7087274be94de2bc18f2fbd2d48856eca64bc9a19759af1613baed8a59436b51de1c19bf011276a1aef245b04b9fedab0d206a7f26c0cd8b23cf57a6cca6e936aec47a3b2d427981e47b0b7b30c1ab48c56434c0204f937dc1f50db6d968f83740d32e0ec06a319c1ea9e34e9dd5b7da9545ba2b00333f865d5830b30963419063e1415f06ccd6564a0a8d6e5022f4685cafdcba67794cd04cc23bcb5fc99968f96c9d8bdb4523ffd995655f0a7662d579cce31a9dd6a67972a661ba6c6886b83fa4909c093a79ff958526d3debe3db4d2d0a0fa42eb119f99a3fa710581f3b9cc7ce7b5228bbe66715207c3ba2ae658a19f802437e5f402bb0180aa4ea84ffd5cbf78858ad88dc23571b43a788a0bd8832891094a3678bd4f4186000c3978cfcd76fbbe905557a2d86cbc77a6193875f55091e45463c1ef3ab9621c1c976bfbe93863f9e3789e395574ea7cb66fe9ed43fa76e713fc4127a3a7f6ba0a1812011f905a02093806d792ba70aed7d181d4d2d41240a007c7354225171df608fc08cfa0b9a257aa40f5ef4edaf6e0ddbcfd73ccf12e3d8a2600eb2074130d99319d8e433b9edb71da44c21058a4ae90e358c220c0c33a68c5f99fd86204a16b111858e7a035cda81f11bef7d024494c6090319ac438ce52b277e01b3695005a4d10e1c642296839af8eeaf241f8f12bb3e5c24765aebfea36a78ddcb84e1a3264d662bd6a71cca9dbbc36868dd5608e32303b8e82590b55fd773bb92e3a760838c285f43c352f06b65afef85cc3519ea5be92485ed3c400ac923c28b17f4ceb74d41e2e875c9c8e4146026882de66e46c105484c3115f5bf5035f7a8859f9b61f693fd816bc1d1a24d4d3581d0e27adb9226378e5d8475c71015ed99427ec8f179fe1cf2defb12168b88332c6473b016411866411a6920adf468125cca99a80128d8093bc9442eced8909cb1ef6363d8a917fbb02a4955ea51aba9d61209dd99640bc1d6f6d2c5c1ed826995e7e02884a2137021716809e25bca04079dbb31db7dee07a82dfac9e0d9f096db85fe1c261bfd5a7f99620a57386482b19027b8406e9e7e6c448d7019d9211fb85436f1f5929b3c981a25110cbbdc4601c2db8f71e6df92616c1e2df55b68a8e7a9c337d9f94f45c1b046732d45c3be5fb1d1f2cf6644bc2704c3242fd5d38a81d260a7be40ebfa28425d96a93befdd3d5b426e50ee892ee4b386d2b94c1b48fbaf6a960b48079f65b3ace77121ca415e344beb775491e0688c3920bf4d996c2d4bdd6ff644e85561c2fa09ee1f2b7dd75958e5d632767279f8608abd70c6c4f38e180239e63e1119b8a1f4c1b050350040c545985968a22ace464192d46690cbfb9e36341e6a4542c1ad48b12d9c373cd8df4b2e3188dc4dbec0f75bc8877b8d6299a380f485e9d648326904b40b0798116d11e10266aa5a9085ac6e5317ee428475f2f5f97cec3bc42105f86c916a7c7149ec218e2ed585648521e702c815e015e331d0dba2bf992dd03844cfbee03abe07583ca299bb79c442707384e2de9573d4af6985cca23ae1fc7b8ede0840b0f09166a6a6ecbe2c481ba4b44a6d0d62a78c3431bdd3211c2287748e79bc261aa239e6fa94c9e9247f7002aed558ccf56a99613754de132f91eddb3a624469373a6d13a53d1184517a93c752ca63de3f82ecae449f2cb9464d7748481d49014999ae89a4231901b92125388dd531806a25924c5982989cee908236b5ca1a4895c9c46bc5ca53d365f7cc66dabc905f0db3e400ffa3987f91764f7f5cfab138cb828b1f0894111e22862003417b409bef601cd27e10712f80edc3badaf041f2cf00e68f138a9b87d5cef55d8439c18ae529e57d10db6f94904efc4da7443f99b14ffa4f10c2c4ce1eb46010c995a2cd098a9ab80e9e68c2925cb77d04f4b3d1f83e153afad2a0479a044d9f59756948213edd274e4d6de1364cb5e8af46639c8768548742b8c3ae4817f337e9bf4dd1774156e93157127afc90f2ab3ea028d7b5aa6e9d49e7ed3c9fb15be9c9c82de4758d4042a8c9b60a92aacaf56f8c9ec5c82ae88db51577c6ec5afd8fd4037ae3be2d437e9331423e9f1c020e97fed22a59b5b43ab6bdfaaf0eae49496c4d2d7157d48dee9cfd61bf5263b64dfe37e731c712c6b55b9fee8ec8a7d87e50f81e2d3d19bfeee402bfa39d42d6be3e2d42341bed2da5699a0ac22dcdb5be5270181f1a70653e5eb97f9bcfa827f7b28f5a51b01421ddb9dbdfe78b302d8bb502c957cca1a7d3f3dc6fb8d56621f70191b60fdf803fdeda2f1032bdb178e4966891d83e341760ac460f354f2f74ab87482c4ea09104ef916d4ab801fc2b9e11fdac7db3745fccc52a239b1c48a2079097d9b7b0d2e37d335dc42b9fc6bbd808723918d8f7b4fa91f001f2b19bebf81d7e252b530e3e96349d0b5aef5e252d9719809cb5ea96336d915511b4637df302fd64f70c747108e01c96218f7ea454bdda4d782da2893509b323e470d6291a61a003fbfd0f5b22d27ffde16ae58ce9186a0338e10a35ad4d1beef349590b83ea8ee2d149b7c545788ac5c3810912989c10aa77693df5660d2ceae0f43ce8691826436c3ca2990385bde4bdb21903a4772cf667a3d3a7c2cee2d7e7b38fc610fb30d38c3778bcb485a14e83ec04785401fcf4015e80d5711f8338b9ee6e578b87b0cfd4f02c7dd58b353ba5cce4b64c5642d11b769197d39d7b73370dcbb5e1cc99d69fc2d184e4694056f1cdd20088361c4480c9eced83ad17e27fc0c0177bd3ede38f6c564702ea0401845999891336bc94effdc008f822f43357c30eb941901f016c3a81a46e025829e4ec062892447c112390c87b3073874c46a0d275cc680c4aaf55eeb16d49915fae005ae0f7408ad22353239c0a51188eb8672e1a5508b0d10b1721fa8708038b16b880a4497cdcaf435d72c3f72ad281d390a81d6826dc331fecc71aa93ba21b909a8516319139793b4ae5202e4056402fde90f3485f7056b4cc6d2152c8547f4cf63fe31995ba106e5a1a5340944b0ecbb87db5b4cd644fc699d40204b2325bde5d815f69c851b85be8983612a7d3d2b3201c0dc3949a252d698d208404ce4df62874c684532f27e8c53d1320021105e1ce127f8de6031d870bb0badfb4c260d75c2796e64bbc0dde5c4f19326acc1b20c5fc27602315ed97f70acf0bb5ed3f531eaab55c3178263e3aad271493d080a9415b2d254097e18f75834ad1df3af3225eb4448df093b2ab16ff3eaed8865a05a2119f9901d232a82b0e26b023d43af61fa6cb0210a789d307ee8237b5fef7ab6959c585923ea6621a38f9f7423fb217644e9a94c34ea518cce8aefeeac877c69e213899df7d2b0af18bd15b993d77ae76c04d52a555bf5686ad8c5a5f6713318755a0f8abc5609f99dc5ab710ff32b37a370f506002c5c8a4f7121508e1db1f6d41b482e451ca1adcf420936c826ae9da0c0053a64173695d5cb96b6e1fd8171c7f42615aa97fcb9e211645a84c2ac1abf9db87897f86987cac37eb28936e65237bf152eb112f2d78dc93fa826b58f72f70887e19e2b16237c25b5ca48ad87da99bb32896d77d758c95abbddb17c2c049605c1831212f6e4f3c6cd7f0c723cce9826aab38489108d9df1f050b0518fcebf4341fc7342c8c95df6279eb4a4c25824d1ed0d411dc693160bb7b1f98f13a3faa1f4e298f2a2879bfb431e8b5c58b4c6f6956347eead0f57323a1785fa2af23183b9527db81dc52a3370e1bd32efb3137aabdd81e229823f21a2cf9579fa204cc5ba5ffc517c223090a2a2243427a6f35a93af56b8cfbd84a046317a9f82122b09e476f281fc37b5f3eb3d1d467841388c491ab02dc37f782160c32a8d17a1cc365a5d48892ea5d2fb5299f48b1a31afcc18c52b169ec4c113490baf7d8f5bbd35cf033f9f7ac69b3464a1a513a9264fff89efcec429a978d77e22b885002cc5068f459ee5b091c46d1fe347332ef188c8f9f9780c8b11d6492111ca78e1a895ce64dc9f859e94153f89c622f3f6caee59ce16e039a5a38691269600d0f1466ad1886639c8902f95f0c4b1e5def79d0db969da5afb3500803f51a0287921de318d7eb691754cd315a377dee610837c1f0267469b5176f1db40d5825bd25f67f07671079bda0f01e0a264d66fc3e87725ab84a723f062e4a7f30e36e3094b36cc82a65886b261d4b5302e7405f5487eb0ecc7b58332617b05853e3db9bd17cb41345109e8c5e2bbc5d6ab9fda72c8ed907a44acdca2f3ebcc71687f617de30a0a127b72876aadeeb64c3473547f45e0383739b070985f982c0958364b3036c2341d248f7e5f1359e7a437b0bfb3e69eed7e62b9de2c0374241def76943db2e97ea10f3cc1dba3e5bf3234db1dd69242eb0e3339ae3f8f5911ef4b6fc6dcade123ce7c703c2b031999821263de77295019a89887aef45b8b445e18751339cb1600ca22b92f819b0f80185a57c3d7fa24b9e18d8042b81554237252a6a53a97f133dc7c24e22a60f6b7eb127d31a6e200d0c9f42f5d7a45f4afd010712e9a23f79242d5c4049a84b412b488ed286fcadadf36e372e79bbc30df58040bda173607bb71b97a726b47c4c96daa266145d6e60ee0d630cb0ab787c2d4da62c26e34830cffa5ba1ec1958bc00ec155193e6c503b9afae472c6c115004be853e169787b5398b54e94e8f087d4c8fda44c8d7b7313f6ee9d02291347137fdc92f56ef39a757afc182c03d45799d592d9365612a992270ecb8c92a592763b33aa91901572546915318ed9f77d558e97418fbd4fda0ae80eb3cd6de61a08d15b4201818b2343af5723fd729937a284139dce4be073ab4f86ae414ea3ab2514824d7ed15556c59065ee103020ee2ac29b5fa53020b4c6db9013b166c012f9861851511ce0fbbd57d09d1aaef3a3b6ae9924c9957ecbf8e1b6b39b4a8fc24257d6d9e143ba95621670d3274dd1d9038bc4d8496682ae6628e2da977fb48da934b1f7a263fefca932e67bcd814491460e1da1dc86ce748e76f3e4704a6a391174072a793e35d7f0c7c00460d97821948504c7201e2c4bd9b494090b23b4da9a40eea243f0a88223b34f98d6fc288e15e1f4e2415bf70ecdd3baa1086ea9d8a8184937fb88b7bea54e7c233f62ed64716e001c933074a427355b014d037165d594fe1d8d89e1a3b11b85616d33e8bc0d871ae0bd587cef4424e0f2a76825e62dfee5775560967a8ba218e6bd6ca7cced1f08f4e9d488671668e0012d63e119c6ce6c66ea93c58f5bb93229f50f47ce509cf0354c83f68d9396719e459ada5b5344eac4db14edb16135c036430985e03ca19500bdfc503153394e6d19f1dbfeb29763e125c777174b2a5ec79d84d4a8d0fe894c7f679b88fb2f4061a279f4743c45892a462962306d88c91e3164e96cdff6737b65c964a3814b38d158dcc6259698d1c4a57383df1a3b52d5c3802f1156926c35107a098e77a38e61dfd5720820bc858c26dc8783592cf0325db0a76e588fcd31ce58bda65205b92a0ec71739fe64155b40196efebdbfc794682d8ff452740cf6d327e618f595c13875ac670965b54e910cbf5ac4e0ca0486aaaf82db1b3176a6c23ac6e4b1a9e79cb36b2814c8e85e555628c6671072f4d57df5b8ab7752b4ea2e0295ef470d45155c2637799d1508a85d84d1b64d98438b2078151a7247ba980d168917fc2ef8ad7e12594437b74923e490cbe7e0bfcdf8923dfb6055b8ff3817dc9c531a0afbbfc1afaeacc71b1f413c7e4e4196f3148982520907d18a1a77e705916dfe346aa2e543b3c229db9452a991a9a47238810ce764759a154ccc54288e733fb378e11a5eb9bafe7188938f96c67dfbf6252c9fbaf0729b31c9e25d9d443e9f8c1eb418acec45131efe22fcd307bfaaa72f2da532f94a3a55dc9437eb88e916694079035045129ebc1de311ce84ae1c86487b048a7a2fa7050bcdb2d100d27e0eb55408c2d09095cdd25f1d5d5daf3153fa3bb5b14a68ffa5591326327693f67199746954e2b868d5745a1eec538bf7ec13e818656c368a3827a2f8051a436f52b9875100f0b3cb42c70298e4636043a65664c9461894dd07ca0739ddd9d8403f941b1a811fa7db1fa474190c546655fc12b4c064878ca7cafc41e6e1b0d5df2e97126f9f069d4f62d83efac4cfab23b9fff1540e234618254a4482ccc52fddde96d5ae92e5a6ba3a0ab7b17d29171c702007f27c67dec8b2edc918b726e5aad31bce56ea013efe416d20d7ea5962e27b85243886213fb57eaf680fb105fd1c07436c6d9e030e445f37d5a62e1f8fdc002f9b1761253dc70e7bd33af5e1854db1154ce44784244f85db89238ed0b12c441cf3caaf01b5db08f9b97efa6e788a71b99561314d7d41d5105ccd23735b3598f21450df42031ad9694fe6c4137b9c3948ddcc96f1b221c55ad7c037bc87620c9b167bedfc4172bc7b9020cbf6f5a32a1d9ddc6eca0d8fad034933b71456deb64dfaec30e5e1fc3269a832346c62b817371c12b21d5e60a812604889a18c5a369e5a436cb04b9cb7698f5b8acdcb751bc57e6b7982d872be6b8bafbb5e8e211c6358d0729665976e258489b1c181e973e4bf59f6530d1c079db984c1388338267f8c45779984024f9e3ef10dfcba0d48f397b729f664e526ba9f1a7139933ba8019bebaf4ee95e1095c36c5f60af384e5bb106369a0456a61853b370d96ad9b82f9153792217529e354949949869ada75118c2b8652365a4f10a382310b107c1cf1123147d344c7f273689b24cb6422d08adccee6989ae2ffe60c1205c80deb9f7eae7cae557a7a4c750793924aac9ea9f79d8f010dc00435bca7b30c01ce81ae67691e8373f1f012173e555608e36dcf286ed0c1400042340625feb1c6302fa26426e5a405851710ef9e37ad5d91066be59b959b98db00ae47639cfa85cfe0e2db68c8764a6941b6e19b316ac8efb33e41e28ffce747cfa676e5d6f964d1932d48a9c867e90f7b608acbc0f13a69e86b7762df1696969c916b9a59449cad706d406140714957748febc30d8e25f189a02e3c5bf293f6597ebaa5cf7c5d5e3a6ff4151592633c38da698397eca2a1d1f3b3337954ea0a81c1303051c9af2e2c5b7303f71b59a8dd56435f1ed8c9b462fbecd0145e596dc6275b0c5b72f9ae2e2c5b72b3f7132998591d918f1ed8b9b465e7c8b028ae27474ac0ab6f8d685a688d8fcc4b95c37974db9acca879b425da028cec6c6bfb0c5f71a4d69f1e27b0f3f712a5195a3237393a80814c5c5c41cc186a6b070f909d76aaf1aac168b7113e8c5f727288a6b71196cf1bd455356bcf8dee2272c93b98bcc57e27bca4d2167a028aca393861e9aa282e627ecaad94490285014b6b199c216bfce68cae7c5af347ec2aa6ad3636315ce16c117bfee80a2704c3dc1313dd8e2d7199a42bef895e5a75babd556cd257aafc416bfae80a2708bcc96f0eb9e962dfe0628eaead4179a527f7cf189a029b646d25cd7654bf86da6d8e2e7a0a86b534ff0d750895fe2a7ab121f074dc92f9e32b6f85b149f7a4d7cbac50f4bbb6350d48d21a129f7c5d72efea5a8db524ff08be2b3086d88b14dcab3bc23c39cd560e6590c33cf48cc9d8d1f46670372fcec9265d7675776c9367e15a65866558ec9aacfaaacca311b3fc88b7054cb2db551ad86ffe3021c91e9c8463299cec64f8a7c21ce65c3b9429c8b73d96cfc630b4fc4a9b8184e15e2549c4a64d1816a5c4b0d540b6b5ccbc61faed021321d510692c974367e50450671d980ad8d5d2e97cdc6ff7d3810ab6242a189555815b3f17b24f66e0db798b7766bb7865b36fece06e4dd67ee71653a32994c67e31fbb6a9e62cbc6628bcbc6e572e5d2fea76d78bbaa98abbaaaab8ad9f873795f9f5d2a5f1cfa18df86304769873a36805ec96d2fc31a58222dcc9e421f16a7a2c22bd013fc219665f590e10e2ccc0235b1381b876648a3262e12b4395a93a4aa0c69a14e58f3127e31455a9ad571937fe8e3a657f9966ff9a657223daedcd43dfe91e5271b421f3a35b0acb4b2ea78c9dfd6ec49dfec6da9a8afa7ea9bad597db3b5dac65fcfc6b765e3f7d25f97a10f50dfec09547d3d150586809ee0c7ad5088bc6d0c8ee043c3c6ef81296a82bf7391f7cf31465292a4636c8c6ddcc34d18e71b5b86f8439dd047680b77dc740318da325312f751920b8141c5e6fe0c6b1bfbee4295df5e1282d50404abb3e434a4210d64c0416f28c596524ca5ec29a47909bfd624982aa991670d4a9f3fbfa8fa4cbc5a6a8245fbd586b2cebc84cf6a0385bc845f974f4272120e6d21cd9e4095be0e69236b92608b9f2ccb96c01408a6367ecbb2d6b636c84fa14e48dbf83167863427e10f69e30d891b41848fee5d49482a899a50131be768a3640c5ac5bcd5a9bdf9be4b5217f051774a5d9336a594d2b72709575dacbf83574aa9db15d4b8c065dbffd1d6f162ff1f14a1e5ee19898f929cdac6dae7dd4eec6c5ab3698d13affd7533f040f5e12415bdab596b4420eb6c9f779fe09d017992d504cfdce29a965bdc74716ea9b533b76c7f4db3166bda06dd844fd587b679a173823cc14a02420f7e00fbde7e6fbfb7f9bf1f90f56d063feeeb773091f0ed772f129a2ba4fdfe9fc19cbf9cabbbf739ebfa67a907fb5fadf5ed7fa6883657485bd7adad36a9973c81e4b2105e36f842486df06b106c1bfcfadc7f402069f867077a7f8a76491348fc3d20cfdf9c8828229a2ba4fddf7f689e5a7324aa3f232775de73ff24249af215516da6c80a699fa5cd3d0e7ba80f7e22dfd7074d91cf5c3149df67963829bf57ea306fc9134812ee0a41772191d5367457dec96a9e21d71bb4377e5bfbd51ee176bbdd6eb71f3f7efcf8f1e3c78f1f3f7ef0f050cac3c3c3c3c3f3040f0f0f0f0f0f0f0f0f0f0f0f0fa53c57a057ffd03fa6d0377d2ba2dea8bbd35dddf9a437f63ebd91c35150ac0f3430689f3436f7278dadffcba1d69d17aadc0855a8933853a57b4a49e767e7d007fd81ddd7815eb7b93fbbddbdf77ddff755aa452f54e9fe03411bde50715a5d54e14c120c4bc6b0bb074395ce2cbf50470b12d496a82d21018637f679c14c821d19aa7cdb0b7df8403eb0822008829ffc37befd0955be1d863e84a14a163915e10fd4525b12c73a8ee33882842ade67afd37a73e6793f0401c7f0c6b74142956fe7f7810c55f2ceff81c00f28fc81da7b9ffe275401a92020202020d46a317f671641777032bc717e74fedc226a1ab636398c41266a944841ea474d1261a849620b54a84902a726091a999a24625a2e3549a868528c80268516f51a160c8107352c80a25619d4b0a089255450c302550d0b4450b344196a5dc2b669354b30a166891e4478a959626689989a255a354bbcd42c8144cdaaa76675dbb59a15166a56b37baf6c45a3398ee36ccd4a6605b341b5f33a6fe5426b562ab0c7fbbccfc7f6c75b38758d1233598d1236354accd42871831a25605093848d07f66f306d304b26c93c5d867986c81acc938c6192983ddbfea7752acaceb4d631cbb22ccbb274f752246431cb92e4cd2731cbf2cbb2bc31cbbacb1b1c3bbb49b83eaececd51c2ae7f5a299090f488d162b1180dc6ffffff9765f965f92d4296f21fc6970fa3fcffff978151d6fd322f1bc8623028cad205a3f46db6685aad56a67131323232323232f2ffff3f220a597e64a4fcfff2cdb38e8cb828eb1e29afcb4562d78fb93077754bf06fe65486c9a99ccaa90cf362341a8d46a3d1c8c8c88f8c8c4221cbc868f43ff23f321afd6834d27951d63dd2a95de1a66eb62c8c8cd05e94be5dd07a68345a4f0b914824128944a3d1e84723118b906524128dfce8474622d18b44a258dd221bb336568a1c9c1e5608a391a58971395c8c8b71312e4724140a8542a19048247a9128b42264118542a317fd48649e758742a190485977c8c2d89665c2c2eccbba6c1322912952fa6ec1b5381aaec5b5b81647b32224242424242424140a7d2814f29425141222fad08b4221211f1212725b51d61d72eb21c3cabad8169e5068874b71301c0c0b1008040281402121211f120202852c212050e8433e1402023d0804c26151d60dc2992dc156a3352124e48645e97b05ad8746a3f5807c3e9fcfe7f30181400f027d9eb2803e9f90077d08c83cebfe989fcfe755f7e735c3a3870d0d0e40203396138bc572549024499224f9f97cfef3219fb27c4812f49f077dccb36ed224491565dda4bfb8095cde72969fe0f3315594be414adf1f6ed1b45a2d4c2386611886614892e4937fde4d9a94850c43d23ceb0ec330acd51dd67c6861d76fe9d9e102499a18638cf108822008826018861f86e053961004c90f9f0ccdb36ed00441d0662ceb066d6443a0cd6e88108ea56f91d643a3d17abcaeebbaaeeb40107c10ecc69005ecbaf0c10f3bb3ebbababb98ea04cd8c4c8501089ab19c582c96f369adb5d6baebba4e8b214ba735f8dd835af7d4ad7b7eb0ea8b19baceacbebd164dabd5a2e1eebdf7deabb5de9ab2e87bb579d67b399a439db0e343070a1a67a7ec49cb2e4c45e9540a66dbff32c618638cefc54f592ec67e29c633eac633ec8dbed9f54fef66dfdf0d20f593968132122f64141a353f692fd9efabbb6b9a857d6a5917033264c1a6f6fbf8afb9b13b4d4fb1ed773820fd734dcb3ed72adef54968dbceb21736352901430918aad5b6fd5c7bea654d838c85644f51ba9ed88be2272d43d1025052fd5cb3a703d012be21c3b653ecfa67b66d7b02d63001b4040ce479cdf30320b840ad4ec89181228a28a288228a28a288228a28a290919191e1c183070f1e3c78f0e0c183070f19191919199956132f9bdcfedfb55a9324dd4e9da44f14144b51288a49fd9db6afbbd8f74fab47f5e4bad7b46e767d18b2be35754dd55a855d1f5354cda927f7334dc15fbf8b0129724357f3dc91b77f0d59aaa99d249243bf3f57563adb278924a7a24a7a42536050935b73f6ddd8fcae06a4bdf7d25488f424757fa7a3fb22c46273dc75fcdcbbe38b31feebb44c859b4bbf84046a20dcf49d6e60c1429bceb0305bc216a79ee0593dc1788734124c91608a65bfb0a49b03c18bb9ac3bef034371243f20b17df7070a59c122246a21321a71f1e24bd3ff6380d66f488b015ad8aca2c69826675b931574b9a85a5e90a02763ac059660e31f637996676e021f7fcef1530909fc1b4a30066c3929e525fc9a74b3bab4ccecce8c35fc38c6f8f19bcd66b391e4c7ef761b61fcf8c16030d868fef8e1e08ce58f1f6b1cc7f17ffc6666c6173f7ab7dbed36baf8f15b8d233f7ab3d96c368e7ef4767646911f3d180c061b5bfce8e1e08ca21f3dd6388e63e8476f666664f16377bbdd6ee38a1fbdd53886fcd8cd66b3d908fab1dbd91955fcd8c16030d808f26387534f30cef8f9b163b1c671ac3f8eddcca867b3d96c67d43b23f9e373c04ddd8f4f044df96030d8f83afca461b68471c6cf41511a67648d4f9d35b246cd1ac31fed8f33e36dbc8db7717c4fcf8c63be8de3578ad2ab7a827f7c2ac6086d8c3580a9598c1b9023c9ec369bcd6e1b7f0943343f18ce07fb601f0c67e3ff32fc8ff5cd7cac8ff5b1be998dffc50bd0c5ed5bdd6eb76fb5f1bb18f946deccdb19bd99e7cdc4d9cec63f22e2b5f0601ece0883c17036fe91a80b792c6f66f4589ec7123dd6ccc62fc242afe86ede6aec6e5e77bb79ab8dbf45480675b36e67ec665e379bed6cfc22151c4807eb70c60ed6c13a5887b3f1873e3720f13e738f8ed5cd74ac8ed5b1ba9972fc1a1a47f1e565b6339bcd7636feaffcbe63f17d1f4ce368988669982eed872bac66e919cdd22ccdd2333ac4ca00bd326f0bb327d2e6593dc18fbfb1045d600ca8025bc01435015d66307b95a5b0f1774f90a7bee99beef1930dafe2bbfb1be3a71ce3cf2bb36bf8f3cec8f8f3d26cf16fcb4da417ff3a112c0be3a6ce2c7192cd9eeccc4bf7b526c950c8da9976dbbeddfbe3ce5c21edd3cef625edd3ce48d80439e966d249f7eeb3b2b6dea1bb6b6a460ffed6e481071f4224877dfcf679408093ea8f8c40baff7dbd78c247320255bf262501f724bd1f32543f7f88a6f8e6be8688726700367796380d38897b5c12e124ae7b5cdeef4a15fc177fdd57036ea2cf3d1138422192e4be2bcbcef47befbdd7035dd795e78c7dcd19dcad96a35c67d21dfc3ead7941cb3e696d737f8634e0a693bc251121ad4324a8eb5effdd1e76bad337dfc0dcfb1f2d55e8ee4437513675fa6e9ee08b344827e5f7de3ef73a684a7d4c4bf4bf904d5fc5c8a60ff231d9f4493a7aa52e2f68df4bf055807c9e1ccb53c6fe4c23aa68824244d0d8f671e00e3809d3161e46547fefa3b4f44e4f5953d72db2426efbe407527b87def6fbf214625314912390674d551a12bc01408fbfd2804aea3a9c7a6b6aa2bfceb809e392adffbbf7e5a613e40137f1a0b5634c02f590a788f7f45dc43357489bda27953848bc512dc6a6232133427ad201d20795a32448fa2728648e9c84a540d6544b2d55e85bfaf62d0f20b801829daa2dd48af89ffff445dc5c216d7f277112d6614f2c3ee4ff0ca56889fe0aad434c904929ad316386d5afff9238b4f171b652ce39fa7753f3fcc05b5083c85188e4ef9fa47dfed65a6bad7579e9d31a27543a4a9093b24939e0241a1bfd23d3840bc87befbdf7de16a0608c31c6f7de8b2fc618ffc518334162fc18638c3166e2b65182b0edfb1220dd2f9951abfff6f23bbd5d41766d7122d9d2fd4a532a35a99596ee77fb7ef67d6b43ca22ef538de2a6fb241e74d816bc5eafd7ebf57abd5eafd7ebf57abd5eafd7ebf57abd5eafd7ebf57abdbed1927cfe8ccd2fcbffff91911f8d5e24fa50e843421e04facfe749f2c3f041f0bbeeb5fe7b1fc300291d51d0c7c0da2a45e5563db134d75a159563f5c4c65af51b55d05215d95586feaa29a5b426530dc6506e2d56abd5726ca42a2889c5257142e996326a6068b6be71536adbcf3e680dccccb6af7bb8a96eab71b6b5fb86d747063070816c0112212a40817202a6042200817f008c201cd0801106b80062013f8c7c78a1834501a21e5af0b09280500e111c2a37426cac40c0010c00da2c762800013e0300a9814a2105a082c6c914ea80430e3302208223ca09004c6cb8a1a4f3748924a386185f063070010b0851010a4c40021180c003827040031800c4027ef041078b027ae06125013970a8dcb08180031860ef5000020ca0062a4500344e261d66e4804300504e00605272830d25928c1a6290e49c73ced9f30d210b49ce319ee463909839f72029ebce3d6e9050a3cda68811439673fe9c6d0859b2f9f9cdec72c9ccc08666a60639c798a56f9252fef2734b8b2a042dd6cb08ca3205934aa56048349a0e157a767c58c1370c193434311fcc6e6440181981d5c062c12c312313d382d168d5a2f4fd82a6d56ad1c4d8d9b985e145951a83486423b9b9c149820f9d1c2584423d5694be4560c8c8bc6c208bc1a0080971e5c462b11c53a572412206665502df2c685aad164da9a353bb42ea66cbc2e7438349a552301f8bd9485173707a08c1b78a1730302d26602f571361c8ca89c562392e6eb4879261e5d242797c8f233838b325d86ab42674ddcd2864d11a859b61427b9c9494be6f0c3dd1c0c09f57e6027fde190b78f90e84106ebeff4dd1531015f8f3aa28f0e77d9980fb0e09b8bfcda1a70e44e04fab03813fad8f07f8c87b5d05e12e60f454590ef8d3c61af0a79531c0bdce00e1fe76454f15b6803f2dcc0f7fda181f5cf45e7174780b1b3dd519cb9f7e53c09f36d5837bdde1c17bd053bdadfce93809f8d37372fce9325fe1f8d38f60435356b8e8c9592a7ffaebc69f0eb3e1a0779f4180fb7b0b3d39ec007fba8b01fef4d5f6cfbbe3ecf0674d430f4d01a1d193cf0af067ad11e0cf6a1b8093efbe53c369e8c96fa83fab4dca9fb58700fc2bccaeea89a5e15f67688af8fe95454f9675fab3b64c7f56970e0efe0cb7333ba8fd00fc497b70c8016503146571c6f7e7001134c53bf993d600f027a599bc0e7ab2335bb225fe3928caeed413fba53fa98d0d7fd6b8e14be829d76cc9e2a029df3be94f19a118fed9deea094da1272db3a5dbf3fea1d086d3b0278d01f302a6054c202a2aeb08619ebe63159851603601f30ced1d15956912304fdf1db0a7dcb225fb113021406f0f30571595698258b1ec29a71cc06a008b01ac998aca30409833db3e6d01b01f603ec0702a8aebd18133b3272ec63253c0ac87d9b65f772a8acbe1c13cbddeec896badd45b02ea2d47bdad2a8aa3c1b1da964ba998a7bec1b2c19aa9280e060133307bc2b403c00c00db309c8ac23d3be06cfb3eb3059811603600fbbe535118d770bfd9135e5514c6331585517e4bf19b00fc4663a54fe6a94de6495a1dcc1933db5edaeda927d69e6e6ca7a26e4e3db19f030c075800602838277606003b33b1b3929d6d6feb565197a69ec87a2aeac2d4936ec29fb5feeef58ff7ade7f983d6df7bf7debd77ffd1be165fbff85e2ff8e27f1f7e1fa636f81a08ae8d02deb27ed43e58daedb990d0208961a86b38c95536af36bfd8c1778ca2fbd3a390c5cd1a5a8fe4a8dfc7707c37b593f28bc2154d9a67f7e1874216fde397430e618ed2be3b4ecadfc980f41e7ee3a4ec3d0e7b72982de587829ae4f7d26d404ff2e3d2674a7f7914a5f3a026f9bfd265a8497eb0c4178bb5255cb96655799ec77a51a56cd6e68d3ccfb3366bb3366bf3441eb6efb9549b97f2cfa0acb4adda4a90407a1faa84a63641adc33fe26ef18b18b7f80f433aed67a19b537d29b7bbcf100959dca43576257d0ffee7ced5982de5972971d3c48c66adb5d65a6badb5d6da073f14dab062595bac5955a1797a5f5d622fa4ff50a8bed497faf222bee556842b0e9a67677eff716058e2af25feafbcdf05813c1d47b583f4ca6e2c8f2073684addf9c73f9d0a1b6745c8e2bde3b869f49070c57bff238600f91d75ab78fb9cca66fd21c92efc90d28e0154da30d093fc2acaaa0229abcb683fe6a935699e24d99966e8ef85b5c549f941c215fff113cb8e06a48b9ad8680a68e6b761a02974db1d7bbbabcbfa30783de73f41f7ecb29dfd867e89cc5e6f7124bc85a678dee22ddee22d3b7bef89fad42c4216d004cdd3fb1ae610df1b02fc213eb3bab85955b5a5b618716f8faa72d3ddd9f9f395514d869e24f34cd98703e8d1bada9952d3daa849fe1d1c07102cf3fe4a6bb361b062a8273bb8b4b7fb725797e5a48cc39e6c8fbbecfc2d3bffe7da5afba1a5d566f9f3d3b076dbd73485a690251485ceb03f862c565beef573d5da22eae640f12d386345e44cad0348dd54bda71c0e4a3e4668840ce154b4949f3e77027ab2364ba90e1e8a900cc826763e39252ef56b4b2928cd02f454a9103445bf48f4f99c94b6f35313374f2248b6c81177fb17316e7fef75c822be9b47d4ad5f24bca14d12b481a0cb4279f1712f2eaa9597f2cfd09021c1ecfcf7de7bcf7bf1bdf875bdb70409a4fe1cd90876713b3f96f1dc236443d2ec8c6770f48c7d6217a913c23efcc4ae13f78022f7025f344f0d7a2547c3c1b899927b712fd4247f57722ba026f9c7924ba29eac9cc42a8fd01b34638ec39e38182fe597e91b7246e36a243966e7fc2ec21bbe69684adef9efedf6a02936644f9ceacaea89297e11e3065fff37d6a8f1fd8cb2060cf9fd57c34db69d6fed262423690c25bfdf184968840cd97ede2776fe33dcfe989eee13b494df2f4de158bed01c3ffcf133a993a8ec338ba831f96d76f6b297bdfc5776659dec0b3b77852bdf87e611758f2a7ba257e67d7e4afa096ef7cc13e7213ad35f1f0e225e6666b5a765e33597178ebd5d185dbebb58c0d7e611758b6f863744102cb92d9636fc75c9a93897172fe5ff0f91a4e55e3bffe7ae70a59a2e83fdc5b95093fcb7e45452785f558610ff7bfd72527ed074195dba3c97cc85d9f96bb0e2f3fbcb09c0e2f38fe5656192505231d5cb0d090823bce1e610a0e9394ecabfa36ed1f499e3ecfcbac4194d23aedd99b9c973dc646deeb2a00691a3d0e7b7367b42f1927f8e91b2d0cddb76fe6f0628e20ff1feca1d75af7cc89e389597f26b4d92a1d0e9e5fafea4fc5db8524d6b924ecafef673e66ca3eff0c1835a0e72c0ca01c74d41e3dafe95b6edfb7f44a218906788de7b3be025f0a3dea227b7f98dacff9beeb3fee93618275d6f39a9fb743b206f68e97e67dedc60f30c6d0b635b6eea4ef5664b377b7f2deb7623820827f9ebaf6f4d07fff49bed96a658ec3f7ab0cf61fc9ec3ae608b413a9ce4ef311fad4f6d8eedd9d7ce5e7881f4df51b7b627f2ef3d6f6c637cffb2dc34c4df15cc6ddd27688af8e38be283e5399a57c5a235a8d25f7f07f7fba2cbeb625f4eba4f9676c64baa970e79dad7e7b6959b586ec2a4e936b7b9cd770d55ec2ea2aa5cdca44ded16a446d47d5656f7f48516c8215c4eb2ae7dcf1bb36f490ff2bc31276d4b212220694d13afdd03be09fb5b9815a97d27cc51daf8a91157b4336af2e20be410f677d47bdfcef8cb4d3037d1d014f0ef5b29684af8f771392bc50f4fd13ceb8ed96258d20dde1827ddbf2e27ddbf323a204feb8a99adf6fd1be32691d36d2e3789d46ad29b8cedb929878296eeeb4003812442c8a7d87193932cccbe6e5d7a1cc64dad7abdd2fbd6e5a6136465eee3b2da38e93e58d6586551935b99a0a57f21bab7b42cb739e9fa8e5dbd4b88a4f72d8c93ee973881fc194dd17fdf4681a6747f6d5716316a16ff296858dbffbbd2bf5a2b625fc492b60cd796aaa8f4899b4c832854449200007317000030100e87434994e4381068ba0714000d6d9c4450583e150a44290c871804c2388c01430c0000006000111198a91a01d428215f544fce6a654f5e4b7c68572cb8981da043ef72ea782023e45ba43212f3085180ac2ebc3ac0bbe03e580d8cb9402f510d504fb44fa8cd76fbaf46af3402f911ae4cda03370c1d3a9342036b0bd7039d1ba3cf0660617f436ee2184acbebab48c26f528e1038db94313d149a3831c26848b0cdd7a2c0d270760abeeb0111420a04be5e7460044a0febe064a628af4c697ac747dc7bfe82ec1371f4fcc99162da92fb28ca13f9ba95aa97b0a8932cdde473bd90d762e89c3822c9edec5ee2dd08a729a40234f66ff90f69cab027c06ebc69a754c624eef1a04fe0789c80f90693fba46524488c3e877293f47f803b9c2f02628c5d41a5d0efe82e840fa546562361c2b8ee51e0bd80be0dc128068a35ceba30180cac9386578c3e51003e09d30f508bf27ed4f7a06f7cb40da0143c54b4e4f02e531a2e0c54a7f0a0f92d4c9a51c28d05e1cdf79af445a3e83e8e67fc246e97e6536573f619a5f8766a6d407d26a15b517d7c123e21717dcd0cbc4faaecbec66725ce74dde694d2137cf9d2c46a3f585d31e8002122c111cf72983e04db6d320e64e3541e03aa85a621a4e6b5308a938a18a830ec5f292fd51b22a2c77d40037df7e6c2e24b45df15812bd3b5a5de2521e2cf8f252e33b53537593b4705108f7321d7ed2e0472a5a89f30c62cee2a6b4d3817ef6458894320e231a0f58021a01b60677ec814073ae2421b3f56c2b4b285e1f8c0823c1763ef7903613351d1c225579fac573a334434e738365fb874cbfb2ac284ba328eb4d5adc423819312db040a4f934172e17785d64fda0f39c3319f60b433b58487f635c3888c59d83dafe54ccc402900dc12de33b12136f0df60c8a7ec9162713c8846c128a270a8790c108d69f8436d0ebd0d4d4bae7e2cb95ac921c06f63e052846a0e8a4451a144bc85bf2ff1ad0a894865939b5b9c85acdffc10c4de8076f562620505128719deafe5325c825d1b887202e8341a51e1131588a398caf5737d861d631792f69ca45e8e4777c55eecdb2b83beb7d6c5def92b3afef531b5c54a463ba1de52e70b6d9cb1c81fe2e0530e92adaaa8be99c3e784f5c0ac9a18a076456b4f1c543d48f05b9c3ba583ebb7eacb8ad1174243733ca6c56fa2ac758e7b178523d24cab30f24e69b76dab40bfe56fd3dc117ecb24fe7965a6e8438ea5774b460ee5996f66c7ecae21133ea2f23ad208352f3d76237c13bdf2d1afaa832c735609e78acf59a3e86d05a2dc3027c37ee667048c667220c7fb17e55b4130dea54fa72f9573c943b5041a0d31de68d392b3796342324f1336b335bd1656d23fdb600581ea6a33ad8badd2a695b6136589432e9427d152469ec782aaddd006a6060a8bec4b2c4da354fa5cfab5530529206d5f2570af3147e5bc8e30669a003bd3cd4561d254b8e22c4743a831c87922fe071af22420e453f234c4344f86ca1d1f34206f7e284003096ba6eab6bb342a0f662bdc368dab573ec79e3afe19fd2d9d8e12f98dedef0cea2109c1e4ef41568c5f6a915079032db91ceb3f9beb0e092c81340f432288535bce0d3f33e22fefbdd16949465e991db661eb92722aa8b0c493971a24b7880589aacb4b1b424d1c4751923ef6f25728c97c2db7e6355ecd5c39bfd1a04755b52f4182bcd3c4d2918f212e82bfbce6b5d11108c3d4536fcb6156de8a39aa4183ae667060f67eaa54e111f5855f44ad813ac3bb77a9656e880e568723245f44cf6f70875669b312c58280250830edd172051d44fd940f3d018945471023eb962a07c5e2424303b267b9daa6f6088589a14e6acc0c4377e0a3ff1d98af4be1c07f80b13b88f0c8e5eb8e5374b53126df430eb6fa78ebf51654bc7d5830e1f6020755108d9b695a5f7ac0e59192f6e4283d7612d4c3b75f1f26988e2fa4e538340fbfad481e37b03ab205b9a403ecacafc4a3e9687d4141a697415be0cdf72a3b642f258c84f79d5c42e0340b68c67c7cca9a03b133944ad0b35d7ccef4863b419d2d88c922f5249f5ab7f7e173c1ac67869f6f94823131e9a3708565df748ee274fa8a7d3d5db5875070b0d2c04a8452e7ab46069e43db71ea79d68db729cf2dab544cbc1ae17d28da10a7156e1df398955b71f1ac7f94c76c7cb760b861ca4c8a31e3b5562eb18e302b09833b4419a03db3c6d44127ec2b85957939cdc621ebd577ca7b9546b0b26c3212ae44f3bc952c05cb2ac0365713b838ef3d44ae8ac8c926566e13e12434d0bc382fbc5c3d937d7638058b02f0ff552aa0531a00b747df49d935392760ae306a4913d68e0d709ddd6dab0955b930cdd0a30a0e828f82889bd096c8d6b05438e89c7b706a13e54506ecc5bcfbdba2733cc52026788f3a1c3c79463f58479c282d80c80687e2153cd611644d3e1c916f173502e023d36b7546dcdd0d02b7bedf9162f80018f98031ec40a86974e2334ac51d1ed2c793961a436982b0ff572be10e3dca097e32c488bd6267bc130f470e7618c85c6151f35f0ddf036ce46d763d9950ce5004dcf0585687ca4c5456329c11b93ce3d38f0b9809e5d3e3677a541936b7d6363267588f2e26ff80ea64c49331fc93331142aa9e816c6fdf5a3c1b5078e98426acadc852a5a8b18d0f8ac37c65c2c7aaabf7138ccd14b923640385cce5fcfc471455358f291f1e11c4cce4d0a0a03dac05d9105db302c39b785d87817725bac2cb793701d7334873d3f5c8833e9ff4056d67c257d74b188eff2a694a654327157be4162500f3780a3c075f29cf367d42c9a177fcf8f395f81a83f71f5cd1dc6956e5f2b4dd4b567949768876a6eea3eb6291f803bb3bb8d9c97f8144b4431de296d0f321df5647798e46f550415e7352b1eed42692a8a1ba868f1bde12b18acfd0dbb497120929602f3c3687b9522ef6bc8758c25ef62fab0d5aa290f61437cb94bc6850292456212551433e2f609131ec1c4e2ab94aa5d3a0afba234de934bda4c5b6448990a2a4a6b20112ea9f5bf5a1ac5f6373b68b61461084bc30cca33147a7513a37c2e55002c5ae47b8f7413e2d00b2b409280ed990c2e324810572e854391b5637c07b019a5c2b11ba4a7c1e5e63c752cef642f898642d74d32bd345aaa814dffd426dd735bd49451aef4353460da6d616f0a98d370de76c1e4a34e88ee7c74903d42a14bb43584311f380421ffdefc7b580292817a8d4563f41d2220e0db05901bde27c1304bd3b788e9e16a9976cdb6f2de6529444fe4723f494d8eae4fbc77dfbfeaf06f30d708ce55c8e06f5cdbdb50ef61a36392a584f605283853d8e90f248558c9ec7d598693fc43e1f5aededed02b6bb64d31de143e98565e6a49bce345e5463ef24620e848abce99d922e89b05131d0217f6584f5b034697093d6897bd3893abdcd018eeb0b203043a9995d958a9f640050e63d4819e66275a840038a28b34389cd185db6317419431722a689ffb2b76186d681f2c3ced9055d3d1a76191fa7211168c4fa73b1e75d5d00377004e06709f005c6c78a5a9ea4f916554989612082750bbc3d0d4bb2a29b95c55c9ad002384241b2ed75b37121927d8152de3181686178e1cbb1e88456f285bfd633499585984506acc7e7622353c98d2e692d8d7719b1a514a592300f9fe75334085810636b6e922995ac03091817433958a9892be339c207a8983d6b1e8a4c0212c13954331b7cdcff5a4ea3540aa213c1a75696da65b9c21a0b2fb2e4669dca6a5d2c58e983b6c53f4d1ff65848155706fdff26059f693d25bf1808dbc402b321f188ed905892857971d12da22b761ae0e805d91ed46bbde02429f7bb4f7d05885f3da7b7a4f31fb4fcc0fdbe031822783f0413e05427b012dd6d55f84ae0fc6b11d357c8d9ebbe2e50ae1500f51e8e85bfb3275b07959de8107dff0dc17b509cc9f19b8f918b32446c612be9fd8d190152529a378716c2b6e2cd38ad661a96e443cc00dc10bcd0d86f706da1d9e66e81fa8876b8c6f0725641537d3dc48d58edc770ab188a5fc9119410a57cc436ab830331a5819a924d1492a73fb01f5ccaef1a644412f0203e38485931ade81ea3cc5a8adfa9fc6b686c739e7367666ff6cd157d5779760fc7020eb0e907c46ce688a0b3252f240d8ab22a8c35772a007dbc0a9e7dad0e44c42bb6845611fb26ae68e84618588b33073ee43466a5ddb6e7bd9bdb99b3ad452380264175684a87ab62c0736cbbbf728fb0661d621bd57d5e3d357bc7a8be221cb8cf21756070397de036b7a6fc184d48566aa4b62fc3036126c241712e4ad98e14f2b39e170e238ae209b95c0cd860e93807e4199e01824b54025c071626d7dcf8f969cf0770ac1e696fe69539b6700327c8f06fc8097d90142fff25d51387a1b04ff16d5f406d53580ed62f99717983d9b38b42df068a5f88bd9e439b494566a7ef292bc9b12544edc23d26af037c9ee695e5446dc18ebc83b5b2585f28144c5843e3139aa817d1a3581afec6c1149b4bb3f3c226707fe2195638f558c117b1d0b5afc07aa36726d204b05c1a86291cfe05975938f8b7036d89b5f3bae14b545a437f0b74b5efc2af9d266e5c2f4c13e1fac2bb8807d108f6b417762131522d45abd074259c220cf74c3240e109858be6222612f8599a8eae94c9f1d27228f897995f1fae53b195a31b6ad2938da17055ece156a18121d91c571fd9d7f1c2753dda1936e9d9b7d8ae954d489e562b2ce9cc5d179dc98fadc5b45b38c0a6c7c1f3dc80f021436916a31606c535cdf1199f2b2644a7d71b1470db1a7b0df9c34d153777a99538acf8328b3baa5ea97317f16561d48f437b08b9543a81b5e67bc06ef68cc7ba5f9ad9239eb4c6d052f5d7bf779dbada992b8448094324d881b841794ba84fbcf9764f8a94c3039dcaeedd06398c32ae2d4e002a29b4dd7b739e579f4d1c1c3a1162c8ac4ae688cae66bb8fd254c7833b94e9a471a720e36aa100cf783aac11d872fcbf7ddfe04fea4a080e82f6d08a559704281d0918894b1a0682a00d6f0494c19fa3bc6f04900e0658aea7db51f02984d718cd40803ad1b8d326cc23f0915beaea8b88d7e83a56228c292fa10accfeb40eedb73615a0a1f8ad403d57dd1b3f3b1a3a424fba9d229a53014093f3de26e3886d160242760581202dfec06dfa2be032bdd49572a64046de1fd4bf4a6cca8ae7f4397d03bc63104941d2b0f1a766a543085d668bd38ee794c73e6adafe34fbf88b59da8e5250256aa4b7abf81684b9f5081bc6676da53b03608cd121125d1619e656c785305061b286779b0d1bca0d191c441ec4aed987f927f7a875035cc1081da7c60da5f2cb52f66f5d08be4e96f0ae783dda4ff984004111342fd8dc5a79668ea0d950f15edc95074de1b50b4609e8cc5bf527ac29effeac5a42d5138c20796045f73b9f3315c18c7462ef81093faab3c027ce0e9865152f84af0f2982e39e8c54ee6f845840713b73e1edb74266fbc586175eab81d95e32b034ee3468986f6c7d8e700cf23a0c49cc1d077fa579746a932f10436b956cdf54f5f31e98d22f3ce81d1403bf8c3369dc2604cbb5ae4af93e6c5e8d140d7297a1998173833fee6facbff3ed7a9df8c3bd465c9fadcae10f24156f32ac6782f7e692417a5f24abea46a8cbf254603303338e416843d788b705f76ad659d3b3990ccbd3c55b61823a25a76c01ae6760faaf2a3c1853451c43bf6f370b8abcdeb2e32e825cd578ab02597d3035ac14f7528d79cb7d14b13cdf770b4831857ef35676f7982ccc5fb8c73b7950781622be24c6a79e3ab2015e20bc92f5dde630aaa8cce84c5bd07cc2da87392a1796a4956dd44c3824d99058ffa5d8097e5b2990402dc0723ff0bc844b036312a4fc157bff493bade5c73af3cc7815d93f9b9a9997d41738083d84fab633ba14836cadb42a0f8ed4f81f3fbc740d3a65758f2e44a6ac63381ce1b0dbbadbb75a6541d0f548a2ac86f080921c1ab38329669fc37f92a88f7ea858eafaaf9f07c2c84cadd12169a6b4533e472a56f7e1515067ba9cdfc8192f29fd42efdb3a8fcfe9c4a2f1b05f5125ca72a4bd30bd7f77f074e58ad7f97298ff38e2a66c72498a25341f55c9787085180a503a61152bf1b3c704fb9e041b90c4cdd7705ce49ae54aefe249818a800a9e9dbe1a90176f93cb143bba4a3df219280200366b4f4f76c981dbda80bcff63443c3e10f46c94603378dd4155c3103316d40efeb6c722337c54dd42c7c0a946095dd654f69be4020ac624345679b5cb84a36dc6372a4756aa9c118e3235a5a3851e4114ba8db5002cb0b58df37c3049e278476acae37c139ce4d7e63eef4856c1d972cf70f74356fcbec181f8b9737b3803398b08691098e09f424958f3b029992ea15ac30da17a7fc7711f67af45408489bc95c9eb24c04f9cb4479aa9a35d27d090d702a877dbcc7370a80059d15b2b5a005d19cd88f71643a219ccafde41e0e1fc8357fe49d0e51333395d28b9b7d545ae5f07ce8405b041510111431e19cf7680335edfb6a6e1bb2b8877cbe65aa648f09540d1b9177b63abb8157a931821a294b00b019dbcaaff514594e9a572d82a2abc50294cf85877c6470f85eaf4a90a45b34f98a5be247d0388555a114aed809d221d65671d56649309fb325365a83591ec2b56a21474b957e876f46e8d940ef88b737e81951ef06b723f6d850ef08b71bec1941cf86b747e8d940af0b48af839b117b6ca877849b0df68ea0c7863723f46ca067c4db0d7a8ca877c39b117a37a8572372433371f58a1f1528ccddd746601fa13d59751e538e551487193351b8622c0657166560c05fd6c320ccf8ca581a69930f95750a924432676fecbbe4ff75cb79fb24de8d4bbda13c30905bf12d38ecb3f569c837913535dda2f9cd45bdf0c5632a5bc8be37b36f1e44c159752e41c64bf0d60e5e02b0d45dba9728581cf164f58331aa5ebca089bc4860a98d94404d9604cd6b171df554d29076bb853440a5c03ca4984de0857ba7237a94d1cc8aa5029dbc149ca803667b4da2874e3a8581349e56a4e7aa32c8b12e1655660d13b66111ca2b30cdaf5aa17c2010fca89f3b37615efab8a7f782f2e6de2623c481fb281f95fc665609e6d7522b29284dc3949d84ab400a381351fe12ee0fa7f22924bf2eead596406a6b61b2884842365936772e2655a9b65484c882ae2202bb1a0f4ce0e270982af6239e70fbe10e59eac8e5d0910a48b98bd6c6ff046681ef0eb84fe24ab96e3c1bda45fdd0071cf65c0db9b2cd1030ed58f537b417f1471770d86b39726d3343d0d061ddd3f026e2134df800afe5c4d56d864053af7562f90b63c1573e418a856829c83023ef91bf0264e012189b546dec20cb2c7d30534ee4771e4dc63dfff26b1e9f3aacbbae01b8c1ad619c755b73a506708983a671d6a5e6550de0222e0dc75387fa6b3488cb42d1749cee6b9ac6ec6a1a765fd1e498ce2b1a19a81ac6775fa7e1b8eefe8197a7fc376232a640a7dc40d107e4411c2dfec30a39ab5e70df227f260753160f48d30d7cb69589c956a0ec88a9318c71a489e0827a825e2fe2b2fa85fd32cd3551eada7fc84cc0355c0cc89fdb023e8b365260dbea6ff208269b70a3a7c65072f025357af896188592b6bc8213b9fe68618579e0a88f49f72b7d055cf91128ac04df08874d607d4eba5ffd5170899790622df8a41e6e953c05562af90d7e41c826dc6cd9d0d172410177155a3d1e2bb402c207ac4c93685767155c9bd8ecf15fa18b08391781fe9c70bfe823e0543f02c552f0913e5c0d29d0fb53b28a04249f707f7f4c923acdb88b58577056ea8fb22212717e0af4aef28e479064136e746efc468ba0803b0bad0eaf155201c13853207d28ca2810446ec2fdfe9e256ace8d0212ba822ba6fef887b28e8c69ee89923b3802aeb71d8e206fa8f58ed52305aa7b788b4f50f209373a37869203256eaf84b27d0cd42d4d0459c189a53f9a8989ba08fa73c2ed0e3f01473e24148b826fc265135b770f6fd428e253c22bb802316ccb590a34ae107a3e08344448ca30a8cf774bd8f9fa3dd56fe191c09986709cc0caaf71819cc3d982058069d3f642c2a7ad6014eca0840a045f143d35582135707de954158c7a519a3d64052f9fd6f211da83882c60c4885bf92f53e543a8e0c6f32402c314e482248f6ab7bc2e982016718f03a43280c1288eb28906b390600e006cec9e246198c63148d1506e1919e844db5323ba11586e312a634eee843330c8e88f630e89c5e32da98e6ad0d1a1d909b735a0cbb232c6be565a2746cfce55e5af95ec186f5e49c641d78fbfd6e4409b6bb5e6fca855d518236b09420fea20fd057c1f37e6e536e2a99d8fe2318c96bc9df8980e8a86c7ba5d20b1864b387bc008a00ff8c0d8732e916584380de7f920031d0bc8b151b731d007f5487325762735280e108c68ec8fdabce092a940a1abbaefb9c50f3e496e84b0b64d028a0b4d9d944417941882d0051e47939cc3bd6819eb2d884764573bda45071a71c1768a14c6557f1c508342cb18f03c3be4a91a2152517ebcfa742aa987d453fd4a9bb7ba0c38a4e81b90cf0060ca0b1994c84664a23c20b57c36e47e01fc1d185e930b41bfa04a8d46c4c29bfa552d28c77dafe2d50de25ac87a83edabec58f8aeee4ad02e0dd1ee8f6b4b2f38f13e97384532db81f333c08a3a996f265e7e2115f2716a67606651776752702ef8e36945da88b720700ea2067910c49d7c0f9010887e201561c0d35b38b59b514342b325d0439f12b78dddaddeb1ae43190f10e638cd6026b281f83a7225299c7edb917876d3a4048e09563853924ba9782a7eaa35fcc4eaa8b6e5a050cbffe9d57fab244c9bcd3e7592b469fe0d4ede2b9bf66e2d290356a73e7cb3de0197c18298c2d143617593940776090c9610eefa7b54646b1b06b3ddfcbd31798740a96d9d68ca5e3726027a8c818087f98c5a64df7f172333fc396ba56bcc65e959963b73cb29d7e78ada1fb9060cf8a945a1e24d4d494ebad46db82e527bfa40a0259b2fda2d2a4a01065e46bd1e800a335d760eafc0d362fd6adedcae685eb1faa538550fd752b1683598af5d15649e6d2e8bf2390cc8b131fc793a8448201e7dc096da47de11d8fa32975e9566cc8ac8202384c2deeccb3e1d5956eba427c6b12186b77b4dad9061a21ff51a70f5ed6312a1c9315f26709758ac9cff85aa017136dc7b86908222c8e62521945199850268ee2cb684e9e1bea8da1617337fb44d9bd8b9afcdbd838f43fabaacf199289f0ac4082cb59ede069f8802b5cff6b024244ff75c45a6bc4b3df3790334dd1671d7de5a80684b75920038a02371987711d3cbd43947101cc8084d72793f6784e89595da83dbcbb4976931bd74471531e9a1ec4fb1d94bfa606bec66e5e2500c40970c7df3cd4f420790328a0820f8d95ccae9a17bae9c257f447fbadd269127a1b545f07eaecbca8d17b725757157c8794af624a0880eacd1065c5fe6fdac15f2cb1dae96adc7a5cec8bc6b38bd698453d4914878d51e7b00a826c9678983802cc1e92b34a7e4060c1cc7da2dc2dd6dba8f1729bfdce90a182598c4cd5b1c73ffe05d2fc193afb1872d078fc016df27c7b90e378bf8a6807230f9d3437a989c567670773693d9a7bd5995e2837baa0a5b3ea5ae811b4dd207b9667f460e16f5e7bac287ca553e89d59edef2124cb033a92ae507775c197b6a44c85a9731f1e7c67e8b801583d9aaf36b95b7873a001d0c743338847a2d6254f0cc5b497c4753568140146636ab427cbbe3aa63524c85dd041863774a6e8d0a5b77705bb2c8e978b702158f266a472095cd23d9e500981b1532a263bc4154b8fe449617441020cb691f6f627abbd3446dd104e67559131f2d404a523f673705001192a6db6c38ffad78aa440829067b12144205adf108ee0d1123d92ff742863215094a5e7dc12737091555cc209d47d8eb5121bb06d506a9e06acb6bd5fbbd650964e0508f1a40c5a48a3007d9835a0800d25b82610710598b09a4b819598be1ad3baa9c490f657f0ad9260152af6bdd90ed5754d895c4dabbf299be18d90ffdf9aafb4c380a486b40362260c7af3497041028c82812487067b22a890ff754d76e1fc03cc1c4763aed55fc127b84f99b66b86fa6bda6181811ada0872bdeddc0ccdce401ad371c82ab308e2e115102549accd94586bde771476661c1343743d242787547531121a6ade980d7b6a57518a2e55bc8cb5623f4896063f0c145b11fb36865450a519ab9cbecece0f581105f1f288522ee7b803bfadc50077bd38d4ae082a4a59af289e912c9ed1062f7e98dde0d714d0bd34e6f6a1cd5517a6f08f7282dc47b6e3cebf2ce2f52a0ad24fc872da5802d9a143631f166ec18efe394250589fb4b3d0c52e0fd802b89c9d6490090a50ad56eae834b1d8e126f1ed60fa51ca9a721da038d755a981f54a34c69e21877a24fe2612bb8db5112a2ca4639ce9630a24587f010ddc2e004e7bad6d06df6069547f2155c201a071639fb3096ea6b44e4a0e4210b674e90149a33e8d28c0a0b475528c7c8c27d071d4f493c4a5a59b1fa4da9d764a387c0ad0316518294ad48281858184472236dc139e41343283e6b49e86c208280b2b3cc49d0a597dc125a880755378387ce5844f593ecb0a606a41adf2066f56843c3371085f9f97190f80df4d73aecb37cd7249608717eb4c34b059dbda8cb624a685a7859932f92841f093054de4e24e28c6fe7d159dd944d5385340215845711a86899683fccffd3a2d75d4f94f5e3c4b56199c36e21632853521b9cf5d4cb340c5ed73af7809e32019a39328ce17ccbca7b31202e8b3644d953349c9f01ab6f66fbf3f8cc45673254c0ad2212a255bfb4ab8209d1021e23f583084f7d3924c89a4a68f488189d3b221d2a45250f38d0b75792a6b1d2de745601f5c1304ecacbd65f08a33711d5c9bfcbeb68607ad17e3601617e1b3aa9bebe71c7e3a57c1c083efd056e7cd277a3d7c4902e02ad103d02bd007d245a017a247a219a08f489e811c4721ccb51ec91623bceba02b448b4423411e805d122d00bd144a015a045a24da047188be3d88862a5193b815b0a722f52acfe06b9fca6a88587ad0b2c253c88c9f4710dd32de23e72323347449f246b2123b0941177c8f379c72bfd6138e60427f003d025adfe29148676eee277abc4cafd0b30f407cb2d116e20841d81a90196acf11ba4d1b974dec66a905414420daa0b27cfd9cf1d0307cae50854e2735b49ffb1b0655c6529caeb6bb96f3a9f18bd27e8cd0f0a6ce487de22d0cf9188b144b2b781c6179ca505f5218ce086ae2c5a32eb2944393887b953102006229209540e69e53f916b9e06f67fac5a20901e70c0046609f323d90aacf210793b74153c5ecd1bc48591abbd67069b29f69fb811161a6ad932660bdd76785e365e02bb2e5dc00da57552424fe73e512bd65c84b2f50de89f7abf30060aab78fdcb8811ade6625060490efb5a0108b1780cfe7c5d15ddd072d3caf2c2da56542a8d2f5ce6ddaf02d64a1b1c5ade0d6bcad86c21961d2513c542d0be5630c9520fc622ce712f9afd291f61ec8bfca653e068c5e65b48b42ef3b5687944b93fd2209b6ce9f43087db269a35bd39ba807fe4563cc15787707ca482914452380ea1cea9d6d6c20a5ae08072762cd097e861b6116bb263510b011d449ce1beae10c7369278da2397760d3f429605f6b030310ddfffa647f8c63c426c1c252b4bd4b59ad70ed4a333e5ac0ba7add7d04007fe9be6fd318c7fbd04b01ccfe762d1445ec9afa9fcaa93fe0aad71b40d6d0d6ea94a76e9401a58d2f55cbabb048b1ecdaed8f185a9d971ac10f78a7da5d2a011f0c64883d60e3a5b3cd9bdf61cd41f56bb5ef5e2b21556175785f8f6763c77a00b762fb9b91510d7fcffe20d20795c82c14a14d0eb0cc2c216ef918243140a9ca35272189582c36842615075163a0d28d1290a0e5128758c4ec9c928149da210cabc9cf007c12ee0221b9e837befc529e0ffb157625063c898be840c52ece0d24199f9c31a05f129b4cc4f9ed3eceb64b33eaa96851459f67850ad62f349cf7d585c7132c8f0ac6c282bb1db52f6834d894896ef392a93dbd7f5f2fb5718694c74da17fa11f870b64472e905d9141589924932aef4ae15516a42cae40c2e93431fc9a9e652da449fa59a29fc117f481b665e754214e97e178f27546b4e36e2f95381e8f9fe7c0a5ea9d5da31d5be7244d28c23be70e7f972868a62df141cc75b44d0b51f3b9882a53f78f1df0fa4bfa4aa0da688c69f28a803533ef0338be31ff5f8dba8edc0d41cf8db5da19ccd6b05068ee2099e1318feec7aecc1140cfe01a022304518fe521f3fb2f6ff28aa0a53decf87eae61034923035f7ff5c45bf6391ff624d4598f2cd1f4d6c0fa6e6e06f2af797adc37f6ba907533ef8190a8b246647140d48a539bccc75225cf48b075330fc87c00ac11461f86b7d7fd4dafdc380c4f34f7783a88f2a989a933faaf59fb4d27f49551b4c79fc87995b0953f3fed7f5fd316bf70f292a8629ef377bacd6c0d4fcf6608299201afc947129b4ebc48653018c8c0d5f5d03a396e84f8f38d91247b8228368c4692312a6da549b8464bbfd32dbe3014c2978c0960a4c4d97052e1c39982270b87c80a9e39edc81318c49c0ec09370dc3d4017ffd1aa6e023713cdf244c7773cce0355023078a2394970d5387a9ef1197ce83458f4c28e5be929dd0c5b8ae6bb094ca8bc053533395e6e1f0f9a6e25f3531bcd7696c703a91f0c608162a86ca800856a2ce0b4f64998e0708464ddfaa212475c080267d9477ba114b8cb9b92a7bbeecf97ab3644d88cac83f7d393bdfdb08a9186c6f1f0a0c510a62808529bedbed2d63aec7c93b640c535335f60ded78ff6aded9ea31bcc1eef92426ba1f47a58066480324afe6cd86d56a077e9ab126c07596160f493f6f52836a2db2d83d3555683fcf83c1c15816c52fac86f9cb83025d199aec1bb0d2729247761ae442c4c3bc9f02de57bdd0e2663323fe047eba3a565b0624594e6979d5b5704b28be906e9455649c9ef54c814fea80da0a0cb61e847ff72b74a8b747c710e145959540ef1997c18b92a912eceaf0e844728694140e202550ad12a58f6200ef097f03057a380886810a598c64b27e95743c288d4221b85a185370b7603713b8952600f057afe4399cf3d2f94820b968ddb4da7be707360e484c9dfdfcfb86d9402a9e689a645a30c92702c6ad560025f7309fe4ad787a7ef93103af34c3a1b72f2c43d06d34cf91f60781a9137e5f3306c8eea980f561a1e20f415ddeae15ffe47d6016de3ec0f1c1ef14834471c6bfe0dd9952af4b655051d7605ed97437951b11bb2a3e0246850b48d3d2371863a6fd0f0e0befcef2c2e5496da146d5da87d1a2ee9da867efab76076922125bd11e909cd03fad1bc67b8c78bce4981e05f39e40c2c26ce35784f16c840ab63f4545b3cd1ead13b7b61d06fa677380ab53188f9e88d47619ff2c8d5f959d78fae27a9d94e8a256b906740220bc1defcf4ffffe4d5dacdb9464df6acb687101d864affa1a498249fed0d5cbbeb435d3003ec6f05dda58b35191d5f8fd069ee71c79bb34643aec67c940f4856250c2343e2aecb1084030e7a270cffb023325aa81b10d0945fb701113d90d9c5ef1ce52ea9dcb48c615c9f4d3162e5d641e7b80d2b2f10fb379c4465b209c55b934c9ac13cad111c4459a9ae63cbdfdb8c30969063b02a6a78dd7ab37ae211ac4b4e48822ec22a634d1d7bb60c3e510ef78404a768a11c70ce96fac36885e1db7693922c1b36726a6659f9a7b2d25c1e44dc49c207a7557ec7689daf032b7e78308da21666c6c0956ec29ec885f414c8510f54148f47c0dbc016eca4d0de39db43a4e9971f1e7d9003d7e10f6777cafd0501331b2dff809975b9466a613aefe350b601fef6d4c9d69da17c6ae9baa62fa6c8d6bf801e126958019008b0823a98d4cd1cd9a6e7ef00601476a33cfcf4a830112a856ca6c9af129fff804d4621932f4bc5b21c2108ff15acbe2345f45df92313ddb00d64389cc934a270cd8a5326dc9f40d31576b0ac0b74c1f852fe63438a584106b3f46fef6510ed3e84519fecd703a17e2e336a036518682537590e157724a379f7124e0ebddcb6a8743498f3d8db0d2c38898c40da3f62679c005f5245e9913fd8aad93cda5b96a6421bbeef169871d0241fb43e0e8a65802ea61e739072b35bede450816d926ad375af6d5570b44506258e9be1693ea72608c1b6bc59a8906e22a66c84a9f319762b4a71253447ff1ced064d131733e2d108e5316643f89281240933e1cd28dbc1110fe078044a00872260548c022f04ad772a0f680d20828c80ddedfd9ef716793e3850940f31360d6b4700d3c08284e8c9bb3200ec5e490fc88d088a8bc757d3ec662884518c2ac31f83ba61b4d606fb5636207413af4c9c141e958a585b02b366bb3e88fa1ae724c8e0d65b0ca4e5f078ad867e85df32c7d82ce0340c5aedabcba0918f7e584c1ad53c08743ebe6ded685955a79e9f111f8581e55182fbaccefc3c8a365f7d0e91067e367c4cadacf1327ac4409b4b05817108af6620f4e4ffc058a42ac0888b39fc349ed1d284d05f07a73705935041ea428a0bbfa1f831202c6276d89955809f8595ea0147121c915b161ce8608f280d69282fa89a2a4bb5a219c7b32975a21322b9c8808f5dd201078ee168b5f9316eaa71cc1a37ca514c45514d0e6e1fa7df8eb3d8f74b8930a4f5fe705880098dc9f31107a4549c745c2ad1b2ca68e5f4f97f57a832172ebb5eb6f6a55c89ed3921883f209d33509627f474c2184d1b519f096596c4681a2bf1e4b80fc7a39b3afc43db8d8431758c2804b55e4d78730891cff673fa9239c123598f3e93249ca60bd3a856d37a9b4c69705e3ae8e31922726838d5ac58e8b4b1dac2058540808ec93bb855f699cd20537fd3c215d13ef9d0e849e1242de7482b6f2185b10e6c8525d1af0202e3914bc19a44fb467677ac0170c034859130a11718ac7746b0cffbbe52fa0850081cdb4710b1e038933144371c106a7e35f99e9c25a28d2244c687052f6205284776374d56c53440b12e6c95003c020314f39f83179290704a82b36eae034fd7a4284e0a70125e29c90324810a9ffd962d2409afbe9b8f63e7a9ccb7677e0182f30b93c93990adb705a40e130eb8358160a07aeacc2010136972d9c4fbcac0cf0aa6dc77f57bcccd87cc258ab3015500e965a1bb12f13855f10188f7345f0080753add60dd7ea5ef3eb6c8f489c5bcd244c211edfcd1cce33a60aba883f16fed16b016ba4ba2d53ead1a404404c9d291494917a25879cec2916c411999afbf4d0e38175e620910b20aea68ab19aca60d57a405026300aabfd325d4df5d8f30d0eebf3b25d271926811162940a03a54cc5a1732a074c62485f8db66aaa54879453a9fc691f1b4c9f2b250f1b2a110f3b1083debba77a560364f5fbcb9ec069817a44668dd2981d65dce3d09ac5aa3561a91803ec6b909184f8ea4dba8fde4955601e558c51df817a6862ff51d2a073233d32647f570a558b213e610d24e5beec73a17dbcc656354686a03987689422ba6640c59477d05394c1e884009def8892141aaf57020dbec891c3afa40c9b0a999ec23274d5d6ed0636ff943e31399d4c3446e2fe132ff1b8262043bd1b92f9b97cdfdae15994836dc04669bdc4aa631a6b5f888af8864424ed18408da3f1d780276f0fe3f7713a72304d18001e54480f693e675966800a4041809e2804a8ecf34049c65123e4e4d1b35e5645e134d170ce8868fa5a703ff540f7b12e857900155f3addd4f7218f6ff454991f5a7dc79d11998d207648f77fb4802cd7c41b182714c4761d243678881ad74126e5128dfb625fa430d28b9390ad77f7d04b85c8382e7161245cd60ca536fdcaf7c3a817dd9bdcd780b04458a8e8b4ab1d143a3f29c1ada33ceba03655e6d44294f65d8e6f87e58e38137c8730294825dcfa17f1b8c33f7fd04fa1a868709022f3e440aebc7e9a186995c1f20d7efe5a903ebcd498805cd3cae584f2807208df5ab5330b785d0b69f484f1f213b5bfe468d10fd00e50c5125901c7b0bc108ec1f97f0c1252f74b4cd5e939c0f3c54adc9adff28454de8f5ed98a14546476b9e4c924cb5abdfd8132951ed07d49b24e3ae16128c1177b043e7e3fb0341a481ff618283e8efff040e3c43a9442bb69c0b5f0bf83a50181d55f43e86382c136f0a050a1cc1e02e1e3f0db01154a25f8ba4f60fab84ff8af0e90f258f1202d0f9b8ad89ba89e1a46e831bdff0a85e819573156a914beec1b7eef03f02bdfdaa41b4b4115c6b9d23315543b560b9a8ab2a0a9d34c81260e0f7309eda8801f76d1750d238796352ef1470756a1487c41565e18d81b97d8b571cb1e235ec46fea41a427ee1836a2f45ad1e30127765ff7479b298c58292dfd512b13b5d59b2d23b4a5545a37624fe71a58b17a8c2128bebe2a034bced23aa1c8ca22013b12c10c1d5d806c479d55748111c296e0eecd909ac922a7eb23c3d2351233fa006c25d05c300b73d649dd3f45a341482e0647bda163d00460e0667e9e013384c4a7ac7cae796963a13be57c39e34d2fc8cc4749a901211fb2b17363a3672121c3ed9f0d9d747d4840a7fcdbc7c8121bb410991885f7a1953293d500f4ea6d47c1a6af0025f22d9d8e0b9f2a683566310da58f46dd0489ad05791aa41d100605b08d22541e68cbbf6d5f29eff7043c058adad76f82b88dfe7303b8faa7736f4e62b8ca8b4b4438e2501fecd79a123c73a20ba92b784cbb0ce28d31693f4e7981c3dcd80ca4de024f6f75bae8a5955e017ec8262fc9662e44f0397ba058ff47327b295c8d9828fc87513b7527f1f6433a524c4e6bb6aba7d2fed8892904b0b22442df0d6e61a23251cd5c30945d04118de9711629889abf945aeee5adc4c3cc46a065c7988b0a52c24d261295d4415f37871f1dccd0f5439fcd944307ef7404919aced526dce213f1384c1407228770d4596420a1b81607d90fcaf6057c04603fcfa009c00699c3f52b6856064fc80470272ba4b98c8c83eb43383f95ce7a1dd89adc5859d76eca2cf841f8afd2afebf4b735d18f842a4fb962b853632e370ba19ed7bb55f801ad1e1546d6c06461622ac3bb4b6b8f6550e9b8924a6a3c3eacf764a5bd408b5785988b9d2427a25103f833575fd6e205b96dac473b59d98aaac365a4d734e1147a5eef765324f3cd2a0f8fedba80dbc566e90b7ce2fc83403dd4e069c5ca64b5cc1a0f8f6dba800701bc655cb00883d07322818ca4667cfcd4bcf4343cb635eb755b55eab80e1afc41f832b01b25fc5022473cad4381152e7023ef555329c220842f31bc57c33a67050986901ac3edf09b287ec718b70ab4403b4b87517997726bf2cf5c055f00f5776e2288280c745f2016df2ce8fe8f525a2484c967ebb7cb9016ad346241dfe803c977309f980765709313020c34020ad7295c5d50d415271d9906f457e5b85bfcfbdfc20e81960c76a0dfad259738acd7ba609f47c9f4a7f5c618def3fe911de2f892beb4460199431b5dcb029cb21cd03dcf64ab3f081b846f5f66d758c922ea4d61d61ba2a6d6089146f6267b6fb9657a05af05ca05373708842d3804e6f8c417f8013ec163358eb895cf47e37eed7321df00731081fb24f64fde881deb60ce85ad0b9f89346e977a8e537c61adb5d6baa3ca2a444cc20cb12d26d61af9a033c88718990977c78d51b8f00a176ae0c27f2508f0099e76da6c38b1cb8be570447b1a5c310aa25c18e315ee0719158ff9e0033d767acf078b437bfc951e703b601de5866817530ff5ce1b41af12f17ef0ce05b40b11f00ab721c6d29ef62fb23213e82bd0411dfcd1de0d3805731073341b8405a2bd8f557d035b564338053aacb0c20a2b844b62ad1cd737500557b0055ebbb9b0c8c51ec2b06e024bdcb0f59683dcec05b64f60891b36b8f2c1c50e7f70b167ddd71764b1ed7ce3b61db3b4db30bafd6ef5760eaec63332119fa9b5f7042758f259f76c6d8b81ddf1578445a04f779225b25638c32a68016ee114bc00a364bdb183322ee0be1d42b46cd9b50f6764daa62b8501f7ed903cd2dabb2cc029861b600949b00492ab328232f12451c0737b0822da9350a6729d10a4f6bc6d767c8d4aedcd23da836f992c9e786207308b97167af650062f2d3e9165199665598665a12c14ca324c84fd0b1dc3b28744190804caae2bab308397169fc8b05008cbb00ccb2eed117626ade3e1c12bab500381401928d338cba02a8bf1dbb1eccab02c9b8730c330d161e8b15e57c4322dc3f8c62cc66b11136171c32e2c8a7ec563554229d2ae9841100894c5d0b57ac58884e8c6879e695ba665da7665da755dbbb25028140a8542a15028140a8542a16fa18865996813d9192d5fd251360dc3b0d109270a91504e4618270a6998866dcf32a8ca5a5996655d11dba5c1ac66982ac3b20ccb5a5916ed752ff804966558062f2d3e11ca421886611816faf61086854498080b894458b7e9901d7bd64d784dd8ca8e6558ca8bd3875ea4645876cd1b0129326681250823c378d3151cd7cb2720bed40eceecfc639d8f5b1fccb35a411c8775b29b2135e1e6bd7959592bc75dd91732aa7b42966cc913638cab18638c31c618638c31c61863045d33561a86e81708e4d253b872530c959760fcc5534e3acac94787dca14be8f038b4cb76781eda0574781f8008a25de44b777821da458b5b0cec68e061c6657c4687c395d1f1d01ebc0fedf590f108717068706862946fe8018ebe42c892c6358b5dda199f207b7ddb2eb221ee2727275994a758d25fd894c3b02f5eb230ae624bcf64908057b8b572a5154be326bbf218d674151be39985b7b3332f98f10cfc86ee314c5770f0304953ec2dc3fdd0ffeb185c5aa44ff435da7ab9bb48c6dd4532ef66ddd733d9bf2e62bbcfbb323215248ec81e5f371edaa38a2683866d9e1e23336cbcc119824f9c924a68d32614890c5b314d46bd2b26db3d2ab67ddaa32fd946623b896d25edd1a73493f6faa79bd8281367daa3893ee2eac76523909af66c3a1b6ffa44afd91864872e023a9226d2ad76c14edf3a392ea55688f66416f783b7a59472eb22eded40c17d104911251f54c245029340255dd748298da626659131cb77c1f44b299ee86ba430dc5e0e127d3d06822ad199557d163d24daa4bcae6e66d22efd2a7f6ae8550b55985028f41aaae7d6a955a7d61a696a1fa97da4f691da47ea27bff4113ed1d7efa8a12d46140a61171d0b75a150c822012ff6da48bc5b699c695269a5cffe899e71cd13c2bab8c5f49c532e913bedd1f3d0f0864235c3b89e2075d3a1ef90b88a43624b8b4a42d448e4b9a27fb1c8a567fab8aaa7f7fe1a5735aeeaaabbbbbbbbbbbbbb5b47d465dd3b501702653ced850e3add7a68ad5e8f375da2cf6a654dfc61129784def4a2b956d707ee1633dfcd29e6b14925e0ad166341e3f066e533dbb7ad9c8253ac6467428102229785cb50a000c8cd46a39a90e59b912213524d7b546aafda6b49a3980eb86b277651ea300fadabd72e9ab8242eb96838955d1bb87c5cab2bc8c50ad6ae308afef68ca2a7615918452fc37a8ca25fb13918456fb23a1845af6277c0d0c028fa136b03a3e847160746d17396071f80088251f4209b8005308afec420215263efb662251d2898f8b92d97a16062e6669796e590144a26bcdb92ca88c2f94b487b534626783cba34eaf0a90a7e692af069be460d930905e57e5127fb321dbd73b162911ef2127219b9f339b8e0bea8e3f251d6e594269bb40b67a44f505e6272271025dd7d75e6e4548ecbb1695def321436402e94a16f899913298d47d139b29ce30d2fc63f1cdf49dbacb9f39b27b8f372497c89de94a9f10fa615674e47affb2a8eeeab37ba8fe358baaf54a39b395d9d395ec4892f9d537576eefc3b9c99f69a155fe0157c9aa7d13887c1218594ee2b75415947a01146cd6733e7c727c86f4a355c4ecf30518543a1a404ce08777e9e610fd6034e3ed3b1a18182892497e532144c10b952ca2a7450735397abc881cfcd58023d3a286092bdd0606c3dc49ba1709717eb122277bae762d12aafe82cf805e63416ec9241551db213853b9b0947e81e4dcacb1fb2cb18a58c9b493e9ae4a9097bbda4918959f9277d98648dca2783c8f897f2faaca6986a3da9debbd8532a26a3ae74a64ea52345ac62a70f6d3ca494a7b49a7878973bf751ed13fd7c1d02553087ce4b87dc6db4edc05df77abe8361d8471749b3a20b351bd2eca6594db39966419ac5345b354b357b69766a566a365e23786878bb1c9ae57b32b2462e04c2333b838145c1310d309cbaeebc10d0c70c376126138be2d24f58c39dcf68f719c152e3cb56b5da53bd4bafcfa76c3bc48b311425a8b9f3d0c87639e5b28ccb386efde4a79434fad183905cd97d2cd708964b2f2bbab08651a08bee65433fa17bd98d67bb97d558dabd6c167d64f7b2a024a07b598c08762f5bdba6decbd22657cf752f3b85cc7b590957978dd70846816e43f3105918053ab57daf225b0fa72b67bcf644322c77dae3696ff6b04a7779f109e3f3f008a7429f9736983360970caa6213d8323f593f90523c115977d2675fd97864a7993c959252694397ac491e747918f68535c94c5a93bce8724606a169ef9333172b9ea6bcd1e40faea765da63c5f95ab9ad93dd5792dde7c9ef68481c71b1d1f683bcc66d3dc86b9d699a6417757a66e63349eca22d07ac33c9aea191f62aec69cf0812b80ff65c39d32f07f8849f0c62807ff2a600ff640d1031172bbe1ca0933bd100dd0b70f2af0444c7f18472b1623a8e27d2c5baf39c4af9a75dee481e2b709fdc712286bb3cdfbb3db42371440f19d35552f7558e2b9d745fa9e33a290f3aecc13e7a908557643f794336097935863dd684fdf34cd8bdbb5ddbba96b9338c9aaf1609b8e46231720c819be72b77248fec69990ca3079db4c5a04024e0c5948012e8e9a1be9e6e3fd4d36bda7bc858440978a3ce68cb815eb3df129776261e1e936b65169bcc9215ee7cd489b3eab44a31c99d3b3a570750a78351b32b6c530f975eb535808620d082064720810c48400251dfb407bb48cfe9462bfaa7026f14d91a70f5f45f64b11874eebe5249762f9185d5ae8d74cdd31e2bbe5c1814e9135f18f0b4c71708c622123943830b4efe653bbc34d22e3cb5429f5b046509e1148853d7b35fd9d5c9558c94175dc96cb3332fa8a9b191008edce9913b501ab9d8a304227fb4073f572b39d31e04551a59cac8c8c8c8dc20848baced3674e4a9f165eb582c965cfd68172981d0c3c7230c3a8d975446dd0a93dd8b4822fafcc09a9abe913b7247ee0c0155233c45880831d25eadb6872c027b12f0d2e629424a239c2a02a7f8d05e67fb5ddd07654d0c7da48fb766e341312c08ab5de0fda24f8d48e44d7b36bfd1f6e8fb459f239cd202bec89d78823d4870028c53884718b5135f640bf8041f839d1b5ce873e50e64920b0fda240ea3e0311370f17c3f59738373e1276b2ebce4e9913f30fa300abea65d4c31b2ba1c792367da0574977ad85bf0093e09f5091c154af102f0514843ecd1082b168970c86d9e76e9815b0e31c20e31b8b4a3ef88138479504a3b9a0981a8745fa7bfae4bae56bad403297620c50e44a552c392c62c5f6ddd7e0655c07d7209b9c3a82939d5c33ddc32cfc2add0aaa3a7057f645e2e5653be275bf444f9654e1d260d6015d5026ab1c5a5178201aca25c707127fd023855e3f40a6015eda20b2c2e7d0238053a3d029808973e084e61a72f0007e1d203c1a9ebf43ff00f2ebd0f9cd24edf033d0f9ce24e9f034b71e971e0d4e8f497de064e9d9cbe86005c7a1a38453afd0caa4b0fc3a994d3cbf072e977704ae5f42fc470e97570caf4a3e5d2a358557f0069e1d29f585581d4d0db6055ada1b7acaa363938b5727a8f53324ecfc2291aa73fa77e43e3d2cb6055bda1576155c5a14f61550d423f625565ad70cace383d8953314ecf710a4588e8d26facaa42e83156d51cfac9aa3a845be669bc34875be676faca294e75b7f1de62a8a45152d8532bc7954af4923ef4e2c59961c038330b2c9c99061ace5c430d67060000ce1c80009cd9061bce7cef996fb8e1cc0210c09971c0e1cc39e4a0c39975d8e1cc3bf070661ecedc430f03e0e1c30fa57f7d0970e6019c99c7997d38f30fa513e0270bb2358e59d0afeb9cd548f644c5a6dc6455be624d9761574ec3caf82d8d5bfbcfb0d686ed4e00fbc19c2139425841706e6c6a80fc58f9a099a9324d7e982c51d205175a94e290f64e178b82833d970c6c72670922c16a0e2eb899d3de3469ef218768d726129dcae2360dbbae7a5d2c6ed3b0ebaad7755d33099d4966929933b3a833874f73e2805f2e1f6f8b3b2716a52070555c1f1ec01e183873e69076315dd7f50beb74ba9e0cf6c0985f3771e7e14ff7aa81dcd936740595cc432c38356910d8d2c3a9d3e769f7465b9b392c8cbe78e9a5afe24bffc420503585c0168eaeee1442835c3e17abfb5e2a711cad35cba64cd408607fb03e581e7600b607cb83fdeacd9ddfc1ea6073b0385801d81becb536d8005800d81a2c0d96050bc37e54c947bbf82817548b3bdf25db03b6603f29843b9fc37ef28a3b8fb29f2cc29d77c17ef2c89d6fb19f34c29dd7613fd9c59d7fc17e5209771e06fbc926dcf918ec27a170e777d84f4ae1cecb603f59853bef62bf69813bff62bf89813b0f63bfb9813b3f83fd6607ee7cca7ef303775e65bf29823befd96f92e0cee3b037ec3753f0cd26bed9823b5f7027cbe565e92e618c366cbd5308545d2c21777ebe80555489121804e154d60256d1254b5c70678dcfcf269cb8e1142805aca23ff46705369cc24ec02adaa40913777ed65419191300e194260256d5999911fce014f70156551a9a10ac3835ea00abaa0f1f1ef0c1a9930db0aaae561ca0e1140903acaa3f7e68e0cecf194ea57c7e5a805515086c999f17b8f35386532a556055ad9102abaa0d1458556f9ac0aa8a035b66134e997e38b5c284534b3845e33557b0a1c2bd8902ce13eebc5402ab6a10d832bb605535c2115655259cfae765124e594ecdf8bcf4e1548c0761022b0977ca23dc9c2dbacfcb2014815575088a0ae6c096b97d5e0a815594055b7838553f2fad60d5cc812df3595c89c59d2c22dcf96c8665e131ec8ca3d818df2ccaabddded9facc9e5ec3662db49023070ae5820b2d2d3a74bcf0020c30c410c38e1d32c8e0e2f2f2020333c30c299587e3c60d6b59f8ad3d0dfbcbb034be6265a858d353acca4936e52796f4913d396747d72cf7cb6ad83b2b5fc3820e7be8273d9d4b5a68e16229c99143c912146a0913175c38fd6979cbbfa64d74e8a04d645e7841660606186668628881c6c78e1d3e5632c8b0fae1e2f203c8cb0b901a18989a3b5f6d66f80c3677bedea47054413c168ecf5721379eba51e178412e0ed68dd71c1b2c35bacfcf1c1b392caff19c8e25ffcd4b5fc3b2d86fbbf436ec0dfba55c7a1cd6b39f8c4bafb29fbdf429fbd9b8f4335818fba12efd8bfd5eb8f42ef693e1d2cb60bf192efd0efbd570e963b01fefe0d2c3603f8ee2d2bf603f9ee2d2ebb01ffbe0d2b7d88fadb8f42ed88f8570e951f6e32b2e7d0efb71112e7d0bf6e32397d2572b1945bfd91ac3728ca29f61498ca267c19618451f355880598159815951a3096666e61b5136216313366e3471233e05cccccccccccccccccccccccccccccccccccccccc98155d433368689aa6596143cac8c8c8c8748f4f92253fa028a38c32ca287f727272825971c3d3895894514619659416060c183034cc8a1b3246596b381165945146b9b22263c60c1adf7680b6935d171b768cc32749abd56ab55aabd56ab55ad5b8edba1a3558586cdc90376ec4863718878c51ca25ad56abd56ad560b161e3c6c4b9316dbc933c9d62c313e3d891d9a189324a1b3770e0f0bc537662a105d9420bb1610b8c43c6286fe0a8e1040eb8d32e2940a022ab303030307d2a7da70b6dbd46f0499e9b42042ac8a21669c8f88a308c925d814b04a3e4103adc0783e4ca27710404587800ab3cd8222f6f04a7ae431f52c2702a5ef91c3a7664f59e2c49c9c295532e21071784f6d3712fbe2edbe56ad7756e018c4a408b837c38e3004e5dbf4e44bfc00cd1005605015bae5f17e2dcc54198202e1da5587908f782705eb20ffbd04a2b9d73722aded5d4220a2aa288228a28a888828a2aaa8042dadc097dcc0ef5d0215ef92c6bc91d228251f59984dca18f02d7d4839430fdc271ab873deead8f66a433f3b97eb1219ee6881302b6cc73caf9186775de0c6ad9759d48a8a4437c09751855356813bd52898b31c61cb48b6c0ff95a4b3f60940fb8a5c80e5cd2dee8a36718d481b1b51f1b29fc704ae346dc2e29a39fd1cfe867f40fbba36b236d341ac5709d24bdb6377fe00325252446ee4cb15087512c5845cce8a4dbd09a8537ab2d981c1d2c6f4e916874d1e8a2d145f422d225e99274f96c84ad80cb4e9ad52cd6e8b19390fe7517d7a75d48d91643baa87d44a08d0789441a59b86aafc61f4ea644f355cb9ba170f0272a894b68563ed707dcd7366d437ab5b95c49e72819778ee32ed449b1f186b61d8aa8edcdd0b6c3a8237539a8e04817752452ad1c572a45a843ea441ffc81a2c1e8e8702adef9d862459d2f4e715bc7b698d145ad5127fa48097847a2d7ca71a2eee324241dede3e3d3e214bdf37149bb903e1f8914e148a59596921c46678944cf50b4916d16a384f0f4c09e01a3e63b06dc92c38a2996de6ae1258251f1667dc50e7d15b8a34ebebce0d4e8dcb5bfb0904f224e1389ae23fa37ba1fd411fdc32e1c89502225e4151d09d115757cd016432fea9ad5d25959f803749291d848525a481bc95e2851efe8479f84dc398aabe823d2704a1aaafac86c31e92d588b3b53baf661d43c2605c71d5b9cba62927ee9ba848b3f9226b6608c2c5f233a78bc22774a228c9ab7b1a5d38aa28f4eea2a8a6d96901ca8636191ebc22a18350fa7e016d8439a1b9d705c1144ba1c5470d3c5247a0fd92e2651c7c3bba29f745f1bb9b35944f4691efae8d3fc4ae963244b747ed4b058cd422142d2301d7070075a71e91643bad48145da658774f99494ee2b22e549c0bb85e8f37d8455a2cfc79948d32e279fef24fdd22c9f46d22edc59322c9f263295642549e3523e6f437ce916ab95c2a53ce5299f29ffbc9b916c6cb5377350c115711d7bec8a203d0978433d92e0340baf2974ed2ea650ab87bc5f24d2c5168a65241f2321a28b3bcfd966fde8d33ca8fb4a3d45dd576fb820a5d98243ee4c890d396586429737b47543306a9e2f24c22950a703d62501e365336a1cb0c898454787bee99b46db3ab27bd5dddddddddddddddddddddddd7d2164344d3ccd484d31544a305ea490504e469c28b4691908bb6cd5b618d8bdf2192bb047fcca9b26be340e47f3ed9034c618af182f1a638cf259d4a89df16afb97959159d06635fa958a137134939d51b22a97332f90f10cfc06fb88138310995348e934fe4528dc49a44ff395e34a4d24eaacfc6b2277222b597869ac7cdb624a3c4a979247698629864aacb1e9d3bce414c529595961c7188a5fb1f5cad6e918b6556cf3c0b0fdc2b64f936ca3d856d24b7eba499489339126fab071157fd8686dace9d34d1399828b6f2234f17eb00538b405770ed1a77e77cfd9db0fd7d5445a671261cd93fca8f48b98caa21a2a44030300008002a315000030140a8583c2d178144672a6f714800c77a84e56489c88845112e45008628c3108000208000000000040406610721000d1c035e3bde9bfbc270438a59c46fa2fe35335183a7e38b9b3a930231bd5369c2ae03ae35dea8fe214021595217827a35fd9a3797ce683706daf33e48f5deaa3c94dfcf52662a3f8b0e486a4824536543e9cdc10a9609145193d9cc0fe46df1e481292e69be42361099f44ae8694a40858e29392ab91923402cadd9081326f91d25329548a384921a9611105950f2717444a5804a0c804fb404f5d66aa3e0f29811b29a4485fca4b2640430a29d24bd84ca21af3bd55e29ef1bae93fde13021c534e23fd23e393e43065e4232ebe17729fa94e47f6d7f62915e41bd86ad24ff5093d7d300bc4155915abe08692a2544d1313dfc7e5595ab6e6d3ee465753b8c90ab61aeee8de0f01ded49204fabe6bf411f93c93d61a96f4fdf4b072d3ccad352cd9b7e941e5a7995b336de85bf55065d3cc5a9f36f4fdf4a0b269e6ad571bf57d7a50d969a6d6a68dfb3e3d5019bace8197309a2dbd04bc11d6c12b419d4c2970fc5e8eb5aba9c0571cf0925e10c1ff0c39f241a21e5329ed3c85779f892f2258b7b0d858022340fc056884ceb40ff09259fe4c8048f1663a30b6037943ac3d00809f42323502b9a9d17b609fbe5955b63004bfba413ae085e6acee5df42e884d16dd406310f1691ec9fa26d76626cdc4009fecee6bd4642a6fe6e16319901f72df036bfc5464b371d04975db07ff774e31e3604c4c06db9756098b8004f5c1e2de03bdb814b2a931909dceeb7ded80005c0a89e94d07bc88883a04b57354699afd3df7fa72c1d8c61360cc74dbb5642480e95cec4a74160a1f03ce6733ff8570c00b7a142d011ca8e846d37e95cee138819a96fb36712ce8cec41d46d2b0611a4833d2377939b78ee6f7331bfebd8161b86febcc1611879f98cdc4012ffac1c47f1f064f8b7d4c330ea044e5860ceb73ede5626c87389efedd517bd188bee964151de1ecc51573d9ba08b626fdbb71c0cb7bf52dcfb66829b3fe9e8fc5be07d6f85464b3c1034d7bcba5b49d8fa2974678fe1e7747833c6b2935f4d2ddfc74b6fe677ad49b79cf901155a5f7522c91039f3555ec8097f2d2d24215a204cfd234ec8d278a7e42e269adf9af8f87bf0bacabed66d0bcc22dc8314f76567287760708538bc3751a1daca325e360683c6461df05820d875eb2caf6528aae99712b6243568f3455e90999bd0e2cb5fd9f3da72b9065f1bebb6202f3f521970f74e2137b916b0d375a638e2b4b7a5070b151ccc5d01abe63bb0262be4eaae8ebaa5dc92249b9425eb666a5f791ad6435395ca99e717de9f77933e05a6338aa2157a23e5189cd6d215186088c892951f6e3cf3bf5450a89f2a9a34e8f1729dc574b40f2de64232c45dcb4b4a44d11f3db0f72c5b013f19d041d484a4ae6bc697022a906a2f698e144a84ab7b6348e5214a59315f23d484a843e6c4b4dd06da9f47316ef8d0348955a0d63d17134a04c4ffa4850ab0950458b4e75e3eea6acca7a8b949f0fda034f15626024351a580f6ea05eff7d7179d1b0084d7a63d1293262a73b989c192e63dedf0f286d0c6d750d4b83c4278fbd70b8480e88fc369557e80d9d06dfd889a876e0b18a94f40e030348039fc76e985bbe7222985ae568eefa19026e111d45cb4b5ad59b44e4845ac86c04daecbca2a91e9fc166679e0e0a0eb0e51ff5e1e479cd705d1d7883832373017be9dcc62dd4b360f786230358903dfaa1748bc7167a3f0f4609df2009bb861d564a1b9c5beed17aa3ae4542322e98a37520c78aff35a581085c710bd9b6de54ed058cf2fb51af59ca93a4de12ea7da75e456f04b7f152de1c7374bd44752cf62f8095a4105d64bcf7a68056a261cd6452dbede894529c5cdb2fa83aa4bda29b93ac83fcd5710d4b22b7a8f62bc1b048ae0e6dd9699f9ee97cf27bf064b877954d3d99fc2034a1d372140c900ac3ef8f260ef0eb5b1ae8447272339d9bc54efbe46ba2ffc5fc9870db98ec0ee625dd71c5e637eb1311888e7837351c845c206d4dd4447ba434e1f3947796035c85d52a3296e169f60cf673c57550d14cba16fdcb089f705b9191a665cbc0f3a6189404245439feaec823330cd280c9d34d4599ef25fa113f18fced2d891b7e572c13ae83ac99a5f1272d2fba7569916875da75f6e62ee47208bf054f8756a45184008a9f50785ac5123086311552f991499c556dfbe3292d898aeece303014a682a981edc9f2f2789b46990546309dd03e26899ca9c0928302448e32a6d440a7d16749a9e5e44cf89f9db0ff04bb8f3c128c52dbac99af73735bb6e477c6d6ae0d2688537d037712107b0bc7ff5b3342e391abde12acd48122f01487fcef7c6cd1fd53879817a60b3b6566a03b4bb714501933f419119d3c971026cfc7bd74021da050845b18df28e590246d95f9d89f4d6da2a034ecb81caef5662ff1be13210445885bc712de3f784579fecd5c6a9e247f4dbd6d520b1ea8243abcb95c1f85401129150890beb438daf913613344a9b2b314dfefae5d6cef4410292c52ad05629a9d752366523c736c28b8612158e03b966b809a8aec0409fe1e6f4c16a469deb24e8b34f3c6a22cd2d4a99652aed83702b975488f1b12444e30661e711226005aff2e4b663cb534624f6855b44ef01de173b391bb0a251cf88ef46c111a155de7a8cb1c30419deed22f932e124f0cd3c8e1e4cdb8b214ac25dbfe4a71961573410f095705d9d63157a4200c2b9784d601db9be23587f1be4d27c9e1317fa0e6a0cd44f5a8ebb6095fbf6a98c1cfb79b6176bcfec28bdb1ecfceb7162a4546781883720c824cd9566060a30068b5e81a894f8967b62603eba13c0713098b96800da046ca9582da22216606a0d333493a8782f0c941a5dbc924723ee9301efd756652190c297d247599d6cc6d60927929dbede11f5f3babf85428f94e16d3d6afe364ece8e6d5daf1caf09584eb189c1f7bfc201b4140e88e16495f2bcd44d9e7a2dff6bc4177f8cc842bc9167aea141a3b22339a5022a0f3e043ecb3b185706fcd131a126eea65329d5633927ccab48d22298aaf09565caaed94672b53975c86c25d751e3f6be28a4c4909a0e968dd44df07ee357f503b1c9a399539a5481113c317a9279a6d133db0837c9aeb0680a8322ff89db8432f9edd6a057a6e8e229a215783762a2594d49e7d0c30bd1d33f35a2c3a87180ef67443a76de25853757f69a75f8a261b89700d5bcdf5f3a6a1869662524249484ee5a493046e936315dd540786d656e3768daaee8bff80113598a26df90294522fe26fe331bed84dc7d6de91702f4f6b589afda03750c0645aaba8bdf40fcf120a3ce43a1a2989ccf69a3aa1dfcbc838944e2871a0131b3d073894398be7e324c6808e113844935148322c4250119125c671534f739133637c86657511f1d4eda9098173c92aead5160d2496141cb795106a9f46f52600222b3a070c0a1a1ccae109615ed59fd8661ee55c812e33a1248294e2d55517d06abf9801af466bd10f80fc4a55ec4602ffd2b6b3183656f8d5640c0d5ee6698bb14a82b2f230f8ab996f4aaa2ff76c990e9316568b8baa8505993c2a2ace2c27cd69e868b42e2679074128b66eaa60f8a9c5c382a39a989c3f05d1fe88805723075501f153badb3aa41b1cd532aeaf2dc7a14772599e96b8c82856ff90feee7b94bdecdf981686e42c9317da65505f7b7eed5e1cae1beb813f01f03eb92330a2bf288634d4b030433bd2858ce8ee6aabd120e1ca384b01256e7d904337ec8dc91dcc7b3b06eb0a0e95f00e05ac40706e3b202a0807758bf8737a8b361f64f4bb356f030e8bd3423d24c40a57950096741bdab0aa9a8aeeb84003bf1951d9aa41c6d6dd501fa07e8959799c1a4fce78ca80bf4a5a80f66cd489bd22fe3cf17fe7754a4715e6a38f0fa917437525d9da1dee84ebd3717d2284dc960d3ac9e8c53d28ddc8909bae33a7591b0825d8517f59c7a7a741efa0d8f94e1714b532d47abab8370de32d4aea048c65a28623940cd36572a066d808a4a9b873500ac18f5785aaf0e9a0b707c0dd355093bd456e310dd3790a1b003385cb1832933dad87f1876a02a370bc700db6ea352591704a137872ef0f7828df407a6602f6cc8777a596cc0b156ab5ad3b5221367a91d21af107d41250f54ab91b62efe8d40750400b248a000af466401470a734f06c44a4a45c9d073f67642e94a627debc828e948a89f885c5a8df174c308c0753c54d86cae388ae079b9235ee22f262acf0988eb0ef0eba72ce30d5e7425a5f32a21089f636b9d65d6836095dda81a240a8e091fe30c8674c788a49c14a0a3884cdcf2eed1bb68f2cf988999c55d21a8907a2f65492e2ab8505c9edbf8977bd0da51f64b33bee843e050f53bade6ad026805ed433f8303245e68791bc31d5c0209061b1c7b5b901d1801176986905fc09acc86a3c71c047764128bc7f672eb5e28b3e888a0f6198231c2946f4e098dc815c3ce09acb3e261d77b799c0d012b1e91b7c14b049577923c8db8266f967dd80de83762f640238b1ee5349a897a6bbe9fd848f79c7aed0db1bf9377aae708384abc6d320a3286d8e739ab28a26b066b507582002921d39fe9ae92be9326196a5f115e12c08044937928124b5178e248d2b9cc8caeab0400d8b584c00c388d9cf2d3fe458b1cdfa495a93476561cc08efb83d6969796d707cea06e80bad3b39765d7efeaa803f4416226e8b8e67c9dbd91881713a521e9ac0b9ae28a0c331d2ea8c99580eed792f64ddbc763b9552dfc41d63d938299a49e6779933cd7e522b657594eec239986e6414bc0b347295df20e1a9d7b0d707ffe5afd811dcc47e0182f1bd59bb73c39fb602bc20decf339ce52bc954266750826719964f1091e5775b9096c8876149c75a2960204bffbec004925e767fb38017dda3bcb6d15b6303ce7b98f5f6d04781448e8315f9fb1e7dc9933592c1d301935b96ee7be7877cef91647f83fef25b23bf121f01a01d50e17aa6514284d206cac771a6010dad22c192468915e771945750a6d60098707614249ca3741000d57d450c2664b3fcb3352f7661f9b1947db592952975789aa342c66ec1e9a7547cd529b9b077a2f6ef10ccbdac101c088154196f7e8453a4c5aa18481ceb050ef5b145d872e140317328a2502484615a9cfa08733fd241c136a3c7fd67f14cb6c17a0d3110458b49530b4273c2a38c18840117457562b5488db84b9922e9eef842b7d7cca6ff9d7464b54c4e13d92c3c2642d93fb945e6616e897557777819eaa3b0c0c4b2367704310a474f4c74ea2e1a75732fa4f1e8c02c576e39772748cb0cd9570f69ec87be6258269c3c6c59b67edec5d32612bc9001b92f03d585e5c6636e8dc243f3d91fa6ff36daf22e460e98cd70dc0edb450d230d02502325ab9377d1063340c58c77010ea52c2c79772175cc3ef64c6260dc1601577e8145fae2b61824688260f14e9cdb22c8f51608d1ea26c019b8782113171f5919bea7c9b7842adf592214880733c6d167130ce532105368c4c3cb9fa2f4c2f35228578c5230efc460809e04cceb59755b32d70aa66ba33c902f77b5e8e64d600c53d9674d2bf19bec37197a27562d34c02c12e8e404f8d44462ecded7435a833de951cd8dbbfa079900f3c2387741af749edb298f3ddbe35a2ec43eb8cbe7699ea3b1ae5714abb6660d8c819a8cbadeb6aec3726bc3ad54dc0187e02326efa1771831aa86c835e81ba260c235fca0c3ea9cd0002fc072499f23b81d0aaae0010988be42085c59689303f8d0a06b603ab098456811140878ec9f5b5b307b010d2820c1a08b22782e41990ed0ccd0c3058e42c2f708d2d4ed071fc5b81b46f4ad75e823be127a9764d529505ef3ec5c0d52e2ddbf478d7c17954e87716392fb4f6372994a94528d1f9d3752ea529d4a8ea38cf114bc92e7c8339dd2db3a729b29fc116ca83a957f4789b12850cc23c24ced45eeb9097ef27ba44c9d74dae1478cfa53bf1d81d4333e977b072149ae6e86ae9459425ad0d14883b0b31c9cb48bbc8335733e75a7629368109662a17a639818f3f6e43362efd5a97b093b096ea806dbf73ddc45916a466632a1d7bce4804a0c50428f29ca65eccf62feae507515bdf3f0892b7a7c672e962bd27da534df41d3314e0f09dd80a96e63d03a5c605ebcb906e0e0592ffbb22d04248f4feef8d73359c5eadad435543b3c9767365e436f76f6d5142bcc13832fe21c094858811a649e9f266ede933639d141fee95f939c86c25c2f2ce56d757d59474f7c4a328c71f79c578aa1f853bf54a6a941c35cf0fa828b48fe8ff0efc28886485b03794e2bf5b4e7db9c2b36db94901a4a7e669233e6ef22ce1c0e2eead32e76adff55d659425615494bb9fa3611e76db9c872168852dcf1f76c38c1566c6c11a7320beb1871f7872f07598e43069d8ec3747b97b05a9a6ea82cdea362f18c94956fc0e9050ae9ef801dda099d86675455c555818d700a67e17cb0601ade920fa9530d0202864a54a7f58a128f121f0eaef8c7dc36be7499d23b86ced9e79d43a81818f691e9f67aa4423520af4b748ed17e2719bc3924952d553e1cea882893d32243c3649c35b8a89464eb6bfbec13087c22cb76c85bfe02468143d9efd05c4609328802463e0a119e24dce98a96957de33020da0a0978b29dc5999923eee7e49ab6772271a67cab6b5a95f51bd55c2716f764a3f9bf843606e9b322c6f69b7350c910011ec75400afc275edad38a519038a4c40f47a7bc0b4183934e3e8bca1c434dbfddf5ceaabdf3430b0002c34e90a0b6241eabe4ad2f9569ed91bd2c167f5bd1265126ddb3e88e0ce4d9b36277c18d8c456b216f8eb63ef6ff908cd6b2bcd710f2cebafe25a856a41cab4fd36fdb2cebbfec8e79605d87edd194bc163c3d98001a4ec65fb78ac0f1972ad3c2e8c2127dbf86e6ace59b63886d36169771eab99f60b6574362b9062b4ce530c4500f9eb6cce1f568276a9c86ce98256fcb9644abccfc5b96121e6e47de4b18e5bb9ef3b7bdfb4307cb97645c1444b5bfb1bc8ee6144e375496f3a23a16058bb4269637e94f8a374a96c2e01b84b1dd37fdc6ca3ac3e8822ec043d140d2d15f82dd1c91ea6eed4d26f564df9d855ee17a843a6cbba601200c94b93955c395a02d3153561be8e8c599aeec0085f5a89875ca5c3ce0ff1940ed2494194dd5438cd8bc06250a5ca7e7ca56a0827cd3282d8def9344b8f4fd2924038d1f6cac6c4003c02001a6330d7a22da92898409f8338d777e62bec3dfbdb4b2f47be4d45f856e6188d79e152947bcf227a2db4c0e5bfed34e40ab29f7a4f2426c71b3663e2222f56aad8a433cfe566e14015bc3cb524a569afe81c04da5d1dc1d92694c73436e2770575c99852661ef3b3a7f6625a964940a6303f1559885806236a8c5095344c18067898962ca29eda379ca51692e882e827f7131b9eba592957e762afa4ce31ef437a630a6286ca0aac489d5498f3a4d8d7d9ebe8172d40f5f906fdf66d0a0e863dd9f6f8d1bc9f94df09f9f013459e3cee697890c00b5ba3eb722456894a887adce7fc308f1dc5a205e8a8085a8ffb334c7b7c0756b1a8c897c158f55e57df28c256037fc6a7a83c1719efd82856c733955ee281d745e442654433c9626b2f171ca54ce6db60a85b36c5c443fab388f302c5a62afb2786a5718bd88054963800b26faf1497d31e689dc5b8672cfccaacfc63a9d4a38df3f22e918379e7ac8c0a931a3998674eaaa8b0a99383f3e6a48e1a931a3938eb456582d150fd93333e33cb919586d091ea8e2d1483e215bf1a9e7c85b3cc2cbd730a28fd0b94a0ec299f4afae6f446de46da7f4cd93d9d8cd158d79f4e78114679dc646280ce205d82e3a80cbe380548ccc9d029e768c44aa1a213c211ebd866f640cdeca33637876a661f9599395273f6a0cfccb19e739ac4b00e6c601fbb1f6008d41130b4cf65162099a0d71aa0f071abc29c98875226e6b48fd59480bd942c54c8bedf2099f785c59a41b49eef3b743f76794e97ca171d2d22afc861f198c6d1c0ffdc115071750af519b66ac5d86837932dc3af0e9034a03b499f5c3bab6608a05d09513a5c28b41d5309eab113b9f094560fbb6aaa4d79c2b38d633b1eb94c1adf369b16cc40bd3ecd98127416dfaa964b72c926eee2d689e1999975e1f1521906c5345a51cbfa3f6cd0c62a6b63e1532081b70ace048cabc01ecc8bc54f759959a8780184c1c5295c6b0bdb389c91e8cd02113ae2af09daa669956a3cebbdf6aa892c4f3e4b6dd011c29254cb77bc85cc3dd632221a1667bd6c0738a80fe4b43ab6548003907d8b519221e01d01a66dea1b1be40d8fbb5b064455840e7d625c16a9034fa3141d0809bb8ea9bcb93ac0c69c5b0b123da1fa43b8f1e62b082521dfd3e58fe7d450607e096bf50d50dd8921d0843dc87253032d6d5fb9b102cd6bd113236484e2f53d48230c64c0956948ff0b32d1f96fb6b8908af46b65057063143a28855faf5593ff51d44191bedc623e98447b016b8cb475ad3223abac6f4df0859fb78eaed8a6b27eaaa217d6d5422dba4d87344b61858ee1abe8a4b6f09320e539340bfb6f227c1189f82570da714f65bb95ffff89e71164f5a885022ffb4c5b05717f3e5968a09cd92bebda7873ba254b69c1d20e729e4cb7642b62171d4984915db44355645c27dd8c5d6c2375eedcdecb622d5734c2bc22c57e530ae692b3ab4cda5c6ec494e8770714a72c1d32df8b08ca870d1f08de4078619cc4b1925769982587d9de5e9aa128c99a82ac81022f94887a13837a4655b9ae2ba5389eca76364150439b3b1d829d2473fb884b377018287e75a0d7490316ac3b66f4f8ed9609e8d3e05785cad3ea7b563699f45653c3fc4c980b5393b6333d0c1d2b8b563cb5e7b4d5966050e5de5788e6d135a929ba4b8a5e670859e08e303241c45b5fb12426273dc8acbe3a53d432600649f1c2aeb1f4286cde8762c1595df99c885664312b3b59a426a914854a76a79ced1ad513a4d98e354c126c818ea4ec9f2e87a3db11d4b3915ac20336357d1fe6a337fdc0f29491720a68f486ff7f0786fd2d3a60a51dc22945237008bb490021ca9767ccc73051f2eab77b57a785e74d06f11b202c1c4b7d6a55e0cb4c2f4014ab0bad797c3e1d35ac5484460dceb03767400037b0e80acbfe8632fb3432eef389a9ec7f9b17f5f165bd64368607a31b5f0ed56b7f3b26094295e86ff0aa5c6ed7d682d0b65dd424edbfcd8ddb6fd706282749ab32c689f1144c1d2541a6bfc838cc8a4a346c47743c307631e434eeb4216cdb62118756a696d0c81c3997a096ad0e8fbf1107c085fe76c6dad62799b0d80f8c40e17380f52ccb5eb506a994f86cfbbc6e1cd714403d46ecb28c5b4de8357d6056f586ee515fa4ee7309725d8139e776f20c8432cd5d575f3dd3aceacdbdd4598b009483b1606e97f535ce6b0679f9db4266e441c8532ec46a1fded4c706ecde325f284bd5142aae957ede6e911afa645355b8f60d49534358782a72734059439225473191566c606ab37210483f3cb67de311024d08222ff003b0f3645cb71632e89e145969b8b6d4c49064f7cd9aef7095e9b7927933df67532da3c53b92eb22a337ea90c8640a3904126914320ea50cc23e740261fa1dff2862617d482dbd3dc0aeec3c2c8ff61d2ddcbb0e436a2afa1c94e94cd5b4c839a87c65a0f839b4716fac2d7df7ab70d1ac805d4e338ad9fb439d93a8bc63e5ca74dc14cf36ef16758335e34e48cabffbe4c6e5fa67a4baf25d70d1ef8e8e2f33f0edc17edd9c884a2eefe92a61b6c5cb7223e90e7010f986f46a81307ae0d2e22f0810b453563b31c3e4032aed34f053c8c52280d0915172bb049348249a767fbac2ec33847760f1bd39f9f0466bb4eb9423ab4fc2136c323af2e082c3414c429e8eb038256239f5d768129e5441beda91b025443672680c1926b70da13b49072a496688efb156331e8121c52daeca4279b128a2f08f6b8d9399d8c1b29195bffc4913097e9ac0063395d3b02195aa0b40a552df9462a6bf1cf8522a5e6062de66eb2a5ba92fbacc01cde32e69832207456cd86e9bb34c45c2b02b95b9c969d4f7371765ff0d50679e3a519cea11ce996246eccea2a0ff79fbd96e1c4a57b263ff29a8382259c50a62ebaf5a3a88d12ea4b3b8a9b0a29259e90fb76e3dccfd74c25df48c678945fe79308289007b5a9ced85315fb35b0be2c55403f58ec6ceaeaee150f7a251415eb51eefb23fd413d6145d164fe8ab7205740d22e58d4f21cd6ff04d62034585e2e25a860a2b6cf207a52813640df25b38fc53c15283497d9927187bb4424fade66c34605a7ae21661f24f0dc4833d22de9aa058cabf2d0e93244cdd99c73b6e94986c9574911d91fe508eb0714b85038f4d0f45022790c5a4d720fa059f17ba7d06c188d70c1ebcb69f269b1005a7955183c7dac42078a6057e32c738a67d03ba6eb146c7022d3965f00ae1c412ab7389651e06a99da8163c58d569dc950fc9b2712f3534066f752b07d0a0d534d885310f9c9f748ce20efd32d08befda577ee99a18df33094d6f45f7a0b29a5c77f83433e252078da6d1c7d6a150a2d6940ae636ac1d7450aa94df3308d46007101980c7a179a8a75d55ed03ab15ffb9cb8e2b814e143180765051c00e22be72028f6bd8c91f674393b8c277ed135e64471c80f82a90eccb923180ba3878eb69319ac27f4d588a4085e3bbd20f119826b137bddf1e943c7d8c4aa85d341549f2ebd1d4c52856a80792faec26305d0809b6350dc94d09d0411f3049719dae8cfd7f0afe4949e51bb799025444c88abd2642891e7be2a9bf82c25a098746ff4171792b3233e58897a6c05a88b49435c3c7a2b056e9527ced470bee484fcb9ab1aef428e5ae216b13d1732a0a647b9b5c888e4254373ee8b6827a82600123e1be1ec9db918db163ac68c9cbe3cef92f0640a59923804ba53d148cc0d7993f5f74b063f01c1e81c28b0a3e8f0c13c25a66df2030dce22f5cf03f322223e8c3d7fe40fe6bb159423c83d9138c7e86e031ff0148d2dd18853165505725f6d1dcb5551a2e90a5ed426fc1bdd3f9c479885027a0fce20b59e63515f297e9fd2bedea9a99ef3ea50d6b6337e5a9f2b84bf5a83acfb43ba35c12bdb1753b2b7da82b19ebec897e8bf682ccfd7934ba60868be704d12a5a1c8a0abf92009a0b899d752b9743bcf07e7604be34237eda6664e5a037b9da93c0c53e56afa8976af0c8c6a92bb8c28297f9c3d5d587a5d2894b3046048324828c2828f728e67544cbbc8eef8f1c487d6d69add3a3114d5c998f53a265b823cc3317378f02170f0d7f583c72665d7b4c358941a1d8c80a327ef32dbcc89e42b703bb7ebbc3d33747bb042c62761770ec9c4c726fc9079b30d252ce8c03499720f92ada04415378aba06a2cd1b4e491961966e6a334980c0122f170ac0b40a9a0985fd69001b583678cfc9d22671d84c63f14088557c63281917e50fcfd15c2a7c5d9ee5482a90e00b0dda5bc42f495db344eac310e45e09fa6cb70fa073621cbd71dfb430dda4eae44367e4550b4d3998ade9dfc28d21cdbc96abe90b992ade364245375aa8b5721b1393843d18ac1dad41e174f063b343cf588d728c624e7f5d865d2da357c7b3e843cb60d56666d75cf6f83a4fdbc9ef60080508316956cc2ac07633fb8a6ca514844710ed0a7bda2bf18c826a4b29ee164ca66173847f7ba4bea603791d603aac524c0394d4c500d824202e73c245a4b3d9ec2f743eef0b5f322624cebb8c844508c86379dcc3bee53d41a187292fb44342977ac3a2cf48e81b7b0410ee500ce5dca941d4c88750ed61fa32d1631b07acba2d3bb39932514573660bc047789dd1c8d72bf9eb863f329e43e27f1f79cd2d6332d353f568a462012f95c56b4980a9c6dd6c7133998f4c1dd657af7cdfd2234250992039baf5efa0ab005a281a13a18f4cd2da5bc071fda9fef8449a541be54ba9d2be9c9709c20f20aba2d89c6cb5e6a8b3002c4aa6374a32d12dcafa984beb9d2f7b49cefe3fd077eb80069d72c0ee265f34354ff39b827dba4960294a7c92fe671c38ac8e5cbf35037319c4851b0815da928ce80c86482ab52c77ce0a13efdc89620be51bccac802c13f0682fa863262e12603d247e65d46b08c929bb8983a92394dea71f468d5e2d8050fc6c384cde58015d5768415cce85c271e219fb609219cb52ab7d8acbb5eb2ad3b8eae7707157422ef371c4da09d17d9663b056beebe27cf12097ab026216dc7205ed44c149113e6506aa7b80eb4e1b288e2fa0640dff37b707acf2bfcd7e1412f6afd38b518832a1994070052bced09cd52c391f21472656dcb692fd85853894f1299960fc3c692bf33ab266deae16db8f45357644ab7edd65aabbfaddc511c2e544d3c6d156c67253181c292112cb23432d0a511e95bd4300707c351ad7092078aa41323d9394487004cfe2e3880c611c1ca530b18ab7fb2e96799e7b9015b5a30fd4057e9e41c271e6cbce9848fb03f83b1f1f0947418a63a15c060deaeefd3132c0c688a2fb01e8ee1833cdda0380219e815d36a89944504ef090bd3f8cd79e03d96a4fca2d4feb0f6e0b7cf6cb17a518715ad3a046e16dd14e8f4e29255d44a0c0155f3af2f49db03f71a51441a662687b91fe652b4fb5d245c2ead919b52f2faa591b813d297c8bdd00ba7e649d73b3e77c983d08eb82927aa6c2ca7fcbca67728d26e51646130fdb1967b3e2c00265c77de74211d5dcb703cd01868968ef01461ccbf97d067eb488bc14848ce781b25911ff559dd5a46b20b51bcf971178ad38d0bc1088c7ef888ff99de056510e28cadc47474d7ae825ceb6a59a3876de1d4f6d52a7b6042ee8c22491c343a3e2d1cdcd525057c40b7a3f9c9181b241db51e110d841fffc044e1fc627fc862f5f82b4bf484996cca2d6469f718797895e5e0677b41a5c2c73d07f57dbf307830c7e65de9a5f36b24d66b16df3917a6c312b2a8d37b679bddc0d4a920858de3b59e769e9b972b475708a0c9e0f453543cae4923cc0dd88e2ad83972be37cfb29aa80910ce0c331b591df8dc76daf594e0dfe4cc0e87160550afc7497443e4b06db676f0855d1bb19e7bef07436a6e1c85610a3c0f282a19bc5e4161c8fc75186741b562ab74525d83a17bc68750371632b788474e722e81d91827745e326da128288a1198f634be91b5a0d90f6c2c54996835187de6d88efc5dbfdcebc9793414ba20717ea6ade39a695dd3d5f2d96216eeba7313871f7719e3f0e318b77182d03b3b1064d90429eab6739700c9b9fed9620f7846ed0cb1c58c152e7e45dab1553164f2d1e8f0585d33df7dfcb8ad4755d096f3b0c0395ea0954f09e8f2fbcbfa28157faf1393293d0f8abee973fee9ce7925fee712c4850a0207aa28e39998bb29a5b0c0a43d7a5fc3eeb9942a6ece68107aed38cedab1284c861e19861e9e368413a1ed7a5a23464bda507b2f14127796389aa9460d81354c5fed4bfac932d3ee591e967d945a3dfb412930587391031e8e0970b17a753c6341d321e78678520e05578f1127c21d850170284c27f81ea339e09e0d063de4e12f70b5ee712cc55ab1581233b124c5145d068dbe887b96914722fc8773c4056626de469d61729e3695dcd5594a8f64311af25f483e640353f2ec8bef2d69d2e9206197937ed5686ca7936349eebba0716905052175f9e181bedc5cfa88d1d833562879e20cacd911f195e498907859ef74936ccefea2c7ef7b14f65074c355259f9cb71ae989898d077520338386d7f7b19f991328cb4a0744c99457f406bc067bda1f64fdf09fac29e53783c6e9ccf2ff11417fd945860166df154ad59af900e2a4503568c0be0176a7058ecef535886fc58dd0e4a431cb4f0d17fd19ea5a76fb91c3a10a6bd2610efe5fdd8fababfbe957d358a2bf3853d9ff8c37c2f99a0f18378708781e9934d6b24861b4b261720105a53135646d68391087f49d3440281bbbdf2f866e8d1a9ce01cca86af0465c2f8cc3021217a3336e218baa5cbdab0adc8d170dd381af8e17dbbaafe2a6b378b0f27fdfa7806d6465ed2daee8349de0379ea1729298b53b75ee480d55f54c295bf97c91bd6c6043431419f27a819a1c9fa817138c2da380ae4e55b0679ca141d266e9c37d02a0fdcbcb7362e3f8977da5f11bfaee4050c8101b8f597f0f353759ddcd0803c04bef289dd0d4fb4054b9e9d1024b5438bea86724084b7aebf72afedc68cbd37d4604803cbb9bc7865ad322f2dba76c7d736bce82a05cc21af2ac7cd742c4701d0a7de32c1e4bb7bbb1c010b660728b31d40c14287cea3a6df8837e67ca87f6ff87f15b38ae5b49026ed7ced62a986943526d093f03217563757c1cceaae765b46d52912cead316fcc3338c2a158c9cf927eff97cee1c481116ba24494eac001c2c1c678b7bdb252f8233f88c2e187c07f3ee39840dd10713826dee23ed4ad5f1e1b47f653598a5489562f4b06311c3f2c47552c31cd4399869aedf49ae89c5fe53eb7582fe95403e9b7ded80fee57ae02c7cc8d734f77f6255eb9ea292ef338f6f3ecc96be913ddb396212304b720bf1a877a1088160d5f468d03bd3742bfc7618165e7bc3994c376f785d25f1ce08ca5c7db4569b96c1123f6d59acfc7a0c99facf0e2c8ea281d107ab3cfaccdb6c7550748b07bf7670924ec6840fe28201360197cf904ed7945a190878cb97b48543d907143734ffe24bda7b885b87a72fb61a527de9641c4ef065ee091bd9557208fece93317814c6cc7fb2742499e839c88fcc005089a25ed520a6b65ecbd0ee81b01e6fc50dc3df72394aa540cf6e1381daf73091ed58e2fedfe98aa2ad07297146ef12dc43aa8c9f3fd8acf04d75fdd50746b7f834c26fd22b1cbe50c28f8fdbc73d612a8dc6f80a288013d8f01839c94a40e3f65a86c48a0d734169c89022da8a18b5f28404054d5ffb06d5051400404fb1d61dd340876822f570091fafb6bd5ab511f95f490211d9168215467c235a1f8440846d24e86200cb6ffb0e1c60ba8716b87761c47976de116d192454684f8a295dfcccf82cf23cf0e1e82b6a8c9cb02cb04c39e0977beddb71a0ab50f2b6e12e4f512db2639a26e07f7042dcfda92d829884f7e7425983a45abea82f8b73eb1bedc47c16cd15aef07155a8a03d14e4e069e5c35f31dcd43266c428af0112f2cba1414de2f66954c1b0644bf93a984fb97e4fb311db6ea3ccb7d52fd2939685e4351df6a33aceaa6ba569270d28409dbff62747432d661e1f3edff9a3dc4800377bdf30534a1478d36187d66276de1b537cb7b78eff531b0c0fa8f54cc047e5632a26c9e9661e3d63c53067cf02f20cf44345c29b50c36d38c4f3ee4317dba010dab791677e3a7390e19358fc157a7ac461a9c1c798935fdbb0d88679336186a823a8acfb477e058bee1a65024be86a1d2922b8b5ecad8a8a0c80540f91d0072ae6290daa92262a5b8790ad5b0014bbe12c5ce732f8245fa165fbca6892965ab15faf3206869f5eb719d5306efbc9382406564597d5d35c8e6e31813e0f7547994547840c07e6e53cf51ead75017b90b13c16cf743939e4146690d28f3c5ad62bec884e6e83d0a64c5767c6410d59559a265311d2b2604db5635e4581cb2e0a9b1d8caf56805e3f2c935ece1b7dab14d82a022663bd171536f631c1e61dc76dc0166f9b5c22970c37fbfb0b362125b864a7105f689dcf284dcc5e97c615f92c406d99df0bf35820398ee5f217b75f9022545620b37d8e2c2f2c59e6926b95d1b56ad650d8f84615c1b3b7bec6802404c46c12410f7783e75481abeb76d219ce13ab59c3e925b240f6476782d08f0c0d574f827daac5fdf75899bd7eb9f715e254e4b9d0cd1fceee6b2d57977c42550b538de8cf07b0e854be8bd25fb817fe5c48302fa76c24e3cf12a2674429213840b8c1e210cf48c0f19dab4c47b5f81b51d3846291b49ced1ebc968cdf24d1b208350656d3f0c970a94b9128bce2b36c332695fb203260cc326e74409d5d209a54eb250e4552fa9897d8f7b626dbc012746b97f43c7e72cdc53b797db00724d2b6503bdfd085800341189a641439022412c4598e40bd6b6276c141f297f739789fddd09da15a0d67ad617ac81ad50039842e9a2c86145e1d082c7d2f20867d8970bf6fa55a8beb295ff9ce5c8364722585b7268670ba2f6162a6f318aa86bca8eec81b1ba0397512c759fb9ec3183b6e42d4ef7026cfff02574588f590ee783f52056ddbf56ac1157aad12bd0607592fb60755a62cd2f65cd5a71ac5a9c7529fd7b26f947e709c4b02aac5966656e492a64f3d71e4c146476666b5eac1121928640a3929e62ba69c01cd963b96dec84844cf392e0d83370858557565066ed45562ea3966ca38203e80b5f9c860b82af41d8b24283c9239fc20607210c60ed87d984f9045000e5dcc2a43d4c0166e95b4f7ede431eceaee15e75d91a31c4772dd0fdc302c71e9908786128911f71bf8174ee415ba1486552f739779a77731eff5d7f4ee3d3fcc39dd20b781d4ab3794002ad2b9be8b26c7275c0eb5f16c5e243e7e6a64cc5fe344e979d926160f082f3bb925e9750ecf3a6cad551a497a4b799e3cf9fb4982225e9108403aea2fd4044a151654b353f9bbd049e4871d269ac1943e75e943432302d94fac8baaa5cef2c2a9f944be516ff06a371bb50ae1dae606ada08a0089cc1b55089f53ff2ed05f47cf3450bfd86980d5b34f436ce62b734583381629d87ad6d2f0028e7f348f659cc0dd531016c0c5a3dbf1635eb4b413005e822acb468274afc9e567aea6144ddf86bfa08b5580f4959d44458b3ca3be3e487a08b44b0a2b0c52e508ff0e51307111423abf920c05ba4f2b43e0479b9ac105052220190b761c72c7a98ac843e47eed07a19f4122d4223cfda20a8a2a90c96e304c1043ff8eaa1cedc4ba2a925593f8a6bb4075ac3267ace3a9aff9bdfd7f98a5aa7fc2d5e5c515d0cfccf028af8b9665c30d0d14a07551e1cf6ef2636bf463e2651a3e3a9efac12b2bff7b8ff88000141ea21098c26df2aba7802b99d0a10e477305a0494ea7c784f7e3a6ed63f3b0f685b31cebf917a0e608648de17257ff1980713b164efbde5de52ca946455067d064606b7e839899970cc68deb496dca25b64c42a127277f8f9f655eb7e17a8e81a315191511113117191fd80bc9fea31da2d7819a813735b1b9232268dd943ce918d401b768e9d739f570f396d38b46980f5ea3b6c752eecd1434e8f3f1b29d86e893bc3093455b085131676d40b16150275e976e9dbbf950d579e7919b2c0cf8214650fcf061976548b1df563c31ae601b96347351a4987666b463a3a3d2d1d88bedd45c9c334892553a454895f328d9da6460a3300f3ed3bc034ec6a64ee2895accd8eda4fd36647437d8b489dd162b3e84a87db3d3b7a664c218c92b4c4929acce04845c117375c0be48e6d34854ca359d42d71a9d20f12873a499a37edec76f2c8d7abbbb5e48e6d54d4620328659a57bc9f5ac18e7512953bdaef9c6e17b56863238d92d447b1266394347907cc173fa980ddf6865121c4ef3439629327df0e432ab14bc9df5ef3e38ed6ce6943d6fb7319ea7775eb0a6e0d0a83c160462fe95fef683054c10112f4658b1ec3957fa5fbe41aad434ac94a93264d9a34af1ae20d6f02f4ed2e18dfdeba216b501f9de562b5ceb016e02ca66f6fb9584987e54fdc9e9c561fa9ad1547f71b595672d78ccc618ece5d51a5242e140bcacccd81e8db57ad95dd724736724786b930e28ef75544eec850df3eb6c2a70bbb306b3faa24cdb7f7489bc02ce130bbc2856e1556a56c51ca1e89d34b2d32d170c79b2a7347dad434797a88bc694732fb7efa6e1afaf1b691c461a8797399dcd1daafc2b4208e9a1ee170144b6256c247e0e72e3147a7c7b6ab63b47b3fee4869708fb828d63a7a16dc71b56225511accd81973746640f1129d4966863d3b38a346c768bf3db8335c795ebbe83374784f8b4da3c60dc933a7850c77cce9792fe88eacd68c489a61e26409751ffeb22e5dad69ccdb36b76d6edbdcc03937f6faf3ab2df4e818ed2e8e4891b92365980fde8f0f7fb936b08d3a46bb0676ac63b4b766b8291c5c0aa34093e50ce71defaa8dae7c7b1fb5926ff72c903bc44012a7351b0c456b3832d478394a8663c3c6db40cfb31fdba801f3a58514366fdaa3b8236dd2843a691e6fb71f5502a249453efc55634071a160309850b78084ef062574ae5a8cd1be4ac11d6dcbc995527ccec1a1596fe6e70775e9ba0c03ea18ed2e27e80ff7d360d862a5896f678dd074478625dd916113caea39cdb7198e92c960e8db59ce2fd69c4c9929b8bac185fa917fda45983b7edf9d653c7e4957eae97e0cf43d760cdfde31f876066a62a2af05903bd21fbfb761973224685e7a1b5dbbe4e8dbbfd5741ffeaadecd218c2faca1a363b47753ee684f88c1fa4602dda1be91cfe1c82a722331d6373296d437f2c71e1ce855a2f4edabd612cd533662b4af28ba36d3e57fa1cd7456f1e0fa8fd793ddf17ed3ee182461fa917e0cc07cbb55fdf074e9923698bde6b4ec687ac75391e30a91e7e5c812353dfe5aa977a415253f5e7e8e20a4f48eb492c4cccbcf9125aa776ca673d43b3b8104490cc9111222242a4002dbb42d8626262606866357624ab1a49811c786623f62b0ceeb3ca86faf38182d98235764479664479cc88ec84076a488ec480dd78723408efc204d81a403241c202181d484b484a484948414433a4222421a42fa211bc90c4911b1313f5a245a9050895a81023a67adb2451a3231554266485538a1bac2d48edbab204302f52df47f2db2136164cc4b9911346f8097b2a331efdae6bc859ded404e92c0deb37b6c835ceaf39ad3d4092dbe021287ba0acb1d2f5f294373eb9c4241da9ace69f4d7851c4d7a152438dad7ecdbe0689fb7520668250efbac417f7352d51233135515e64f65e572ef48da3eb2d25ae4e9db4956840b1744115977b7b61571428bc48a08d134cd72457e50aee3ba31df3e9fe80766d5799d77e5dbeb94d1ca8838611189c9881cc98810c988c0202302bb9ee77da93335460c718279c80dbabb277d291b22a6c778cc7c04cb8630b16c4815960df98165437458c2438e7ec575438886fce8386e4e23344666a8cc088aca1b6ec92f95b6c49062142645e1868e23191029313133ad394a745c4a30a0582ee6f4b4516546e1c6d401c3c55ab10d572a0129aa81c20d1d473180416d4eef5c96134928500332a6046600e9d9a9043170246712bcc011d1cba3a1cfe1386ece23d88f524aa369af5124eaa78ae93b0273c4e5190657ca8ea4fc3861b2231f522f6547493bf05ec4ec7c11dbb44a67bf885df6eeee242424242424242424242424242424a417481d30ec4ad39c46b70c33d4faa5533b69740c89d33e9368491cc97eade7d0708930747a66d0292db77b1f4bb1735947506bd7f01c1a2d970843a767066bf5c107ee123ff8ecc7b58c275dcc5add76b037a9fc5c7a0c29630cc008cfc204fe15388dc739f7f7cbdee1b0a7db7acf64b1a41cc1ef28f0d6d97ea194389d174a0b2347cb1d7b7a6ef44ee519bd237f3a0c2680c4696f91e5c27802cca0410029563adb9a38f102a82443615ed832e48024c8a4794190227ea478ca41cd5314bed4618d1391bb449f28439c3401032884c0e105162ab8218a20a7a126344f49aca7252a55d20c9992a6056484242007219692d4408991284cf4e007d7532250040a1de8a0832c4b204920a90928a27078e285a4a720354f4552402829c13d087829534a528ac160e4909d86b6b9b9b9bbd2ee8fd63086c4e199fa19aaf069a14c4729e9374aafa1941a913bd2165bee487da4967e056d35a15f0bfbd946d6a7a10d8e913efd9e862a7ceff33e3f29cc1ba5740e69873156492eb7a074d2d9ed85f22abcd1e170c78fc66450859e67ca627d77c5027d157a9e291295ca1c587e5c56e0b71a6a9a6be1589d86b57a0bf5e9d7e2eca147939fbba0d11e4fe75cf8b53857b7c5a985b7c54e0b351f2bfdf1bb2dd216e58ef46f6ab586363858a033be862dd4a73e5f8d785286a3f497120517cf634a2b4a16ebde39e70c79ba953c9acff0aa36e9daef50254e25073fea0e5726118d0a13212518fce83950c0ced870831d7049c1cf0c6a2cb2031a303838a101c810dc0d605eb49499d4024ecc11ae652ebacb864b32c840258d0e3fb79f3394c00464ced080884b122e4348ace087a52d56c02cdd906629e9859ffef54e8b9f35f0192ee56d072ffb5136fdfc513aa520a4861e86b0f2a506d80b8a2a3b4435fd083305ec354aa628673c3fc14fa7a1829f5e81de913225200ce39edebe944599d9e6c8a8e8b455c351738ce0a95770a43c7c2a3311518aa20045f9816206ca0da0cca080817205ca94ee09435102c548d334cb4119820263aee33aa86f9f63be59e7759e95d1faf0c407253ec47c28f241c887179e48f1e489274e4f6cf0848827569efcf0c4c993d813a327434f809efcf460a607a81ec644394287e5624e0f0a4c2b181da866b998336751be40f56545911225690e45696a367a19a508a8285c8ca24889a2c41425294a92284788f0580061018405101640b827adda66b9cefb5235aaab62c5072b162d40600120049b0088e022280041ad209ba010820010c40a0221c885078110d4228845d02ae883a015410e06ad08521174835441354160185413940afa82bca0f0459017d40571412f5c415c900d728d10648346104090004440a15934111212121212121212121212121212121212121212121212121212121212121212121212a22c5e6011038b1868c70268939225db255db3b7e6f4979ba272297509b656d9694b55b13409ce2d57bbea4e2d6fd63beb9a77d6b9aee338bb553139305ceeab16e9689f8adcb534a7b9386bb54d392d6dda7caa18a90541a9b90d7168be6daec347aba175cd3296b35c82fdb8092bb321cb3fd2d1f5a1d47cdc9c0bebe696b970dc42ef2cedb9b4dff6f996b2c12908f8bcbefe42cfe5aa45cf6f8b9ebb5c9e8ece86028f7f7aa7bae70cf443c78ef6bc851e297897253d19b581b25d8274f379cfd53b343cf7dc7bc75d2ef60ee79eb7b9e7e9bce7bdf90cc79ef77cc67b2e4729e53dcf1baa4562b12b593af73aaeeb28e5bae6f3ae736f7e16c91d73be4bb1134b2cd76bad6af5ca96254cef906712a7734ecbe566d4f309b2c035e048b96bface37d04b81acc42b82bae73ca3202771acc5cec329eec8b1ef9c67d5bb7a2f6bf69de7f4ce09f235ef3a9fd13b9b77ae63bd1bf968e8bba2ef9c19a8773aa72165f077ce3f3acf40f3d057277fa8f29ddcf25d27c77cd7c98e07339d776ebff33b3b7b6fe7d2d5853c7a880c12245ab0486963d772b389376b36af064c6dfef98f94b1b96de27196cb5c7f0b3949e258e7aedccf6b7c4b5285b6c51a4ed9d838af200b9c0247cafcc302ff078e1c7beb1e38721dd8c32b827f26c830d08516adbf58c1e5246bad7fd63fd03b9acfee14314d6f5fd6ad0500f8d6a5bc793bce786b5d0a7915330b030f4e3c80e1e1ca8f950720787022633c143d015eca9c8ca116e8b7ea3ede6c56cd9bfd683db09d825ead731ec1244ce799b2c102fd984f68cb46bcd96ab159393d41ee8ba4cb3cd4db9d38519d9c31c7b258ad150f3227497c277dc1e48e9f8f1d948428e198df1503b1befbb38100c355c1eeb8fad9a4f0023d348610f2d36f24f9e929f4f0d3235081237efa068680e2a77f60879fee021718d31310973143442815d1f053ca8a28f373723d92ad30e3f4e4434b17283b80bdc6fb53893246981c45f182a5d82bcc0e486ae69c0d43862c647ec6140d41791c34f85042074d2c79217acd3ee267939f57f1cdd33b5a024fff499ef6623daf0577a4df89e9cadc2e5558bdeaeebe524a2549c2dc6b87b82315828bec72476aabdc91be5c75f79719aecd1456a967f2a4407ed9c963a369ed35acc9b3c2a58b93e7bab4edd3bb06bc37e5359ef2b146cd34286df6d635a00f3e08e74cfba135f50e6bb0fa04b688dc1ba0a7816337bdb57305e8f3c6c65480369afbbce60cb4d1c2ce5eafc0bcb1ee3d96ec985ee33d96ec48f9f41e4b76a83ce51df658b2a3fd863d529837d67b478db7f519f648853d72e68d755538995cbea68f392e5f33b4d15cbea03e15da7c3e551dda7ca14d03a6a7fc0135de5ee3edf2a50a6dacbb306fec1d72fdc7c924a1e6d3b45e0332d004aaf1e9354c405c346faca740cdccb5d9916ab73e6735aa466940d389adcf265ba3deda78e16827d3bcb15dc8f456e54754e19cf1132e81dff25be71827d9c9549fe68df59a70ac506fbd45e48e93497b49970d796c9b4f6d2f066f3233cfe60dfb9d3c362fd9750b7b74ae790fceadfb6c2e539837d339b0dba6439b0658cdbbc31d9ad663b2e6cda42a5e726a23eba59d2e655c89e380d692cb9a4ff794799d96cb2f655a9e1e0614b77b29d302e6a5f709ddf38e77258ffcd243140c45c4805494e4334466a6a94913479c38010d1e42595c00c51168c0449140991cc49830a24409255ed2a5544097a72e5f56c806a0450a35c202c563c232c31293ad681b849083324070f082905894fbe3c44a1310132e461c7957d004310b02ea65bce71e750ad2948d15c2b153e058824f7d5f53fa7de198d2d853e0e8f3b6e3c12108f8ddba943218f6a3e7d553ce2906c8c0498563e773b416f6d43beb9dd3e84e9960e5a4d11d27bb32f4d4ed1523cfe36fa652dee190f19d7b61076498603fd086dae83ef7c2b147cfba07f25041c677610764b0d0790bf6ad94389c750e6477f6b15c79e0c9e6a8e42a3fcf4b669ea3560556a76fd853909b4ec8c3d5d1cd75787f605204932a63968c78f21a59ef03858b8f1916249e1043e645a58919bebb8bf8ee66b53883ed40187de32ddbfdec3774b0143fd8b0448aa518ca2c7955f9e1db2911dfeeb26f04c0d0450c1133f8280ae2d5cd23bc945511b2e4f44c75065ba5b6d6ead46df59aca31ddb789a3869489105ab7c9734e6666a6944ecab32a68645584c8acc820b3f243568588a548d74b03edbc61af20e58f4dd05e5ce4b12be9de9e32e6a50c08a86fe7792903c2c9cb948d09dc568e4bbe7ffb0c29630261f4a34e9239dd957447ca474b5c9af5b3fbe9aca5a49fde9aacbb02f2e8d8d37369887616da61b92235f3944e1b78ec1d962b4aa1f2a4eda70199e34a92544a2a117047d64b770625289fb67b1d52fbddbe09e2758765ba4f2c322a42faca148127dff6ced83e19d0cec386cf2036f0a6a069aa9a949bf34bf998f352a747636d93527c15aea51ce0e38224134031c394254484796da08a50e3b7a971555813ae54f83ed5f3bb4e97fd03ad14b76f6cc10369b58c83bea53d5ea3d639e431dd6e9b97d2e1b3e198210da9e4415d0ba5473d4aa9cfe5ad08753b7e3a122747893b5ab777fad76a31ec8d561ed4bf95e8e3d368d5dcabe0dd5c32600b5ba28f2bc5ad73b2d084e4a083142064400c754a2c70e8945828e96435304a7bc7a96e30bac1d869d6d5e08e1f11189ef18ca1eca53ca31f5151f3a4a03ea2de991fd1ec23faf614d4e461a7590a6a4bd960ba51db3cecf4559eb5d834b4355b96ee87ee07c9a289dbce4645dd4de7f419d61a2e8b9172540325efa964732df658ef42f7c2d15a7b2f7b40e24caf89e1de98d35a394759e6a7f416b4a7d2670e3cf6165d5206e350313d3f7bdc93566dfb688b4cc32082a27e4e9e53aa986a11936c062d23994c08992c969a9247db417c5bf9f1a34b3499b06a51aed0f25dad0f9aac0c7d938ae9eb9cd55bcd936272e5cce89dfaec377efc641af2a3f8ec196d81f2a3cef316a24fbdbca2d5b9e2aee2d7c63a7db512a78694dbe7a455db28c8366563054ec3d5ccb0f5cc2d0d09d5b45ab55a2990a771960b43ed256d49199bb3b6a3693e5dd334a7313d8786d73042cd5da24e8f565d01395c76af4912a4d865df96c8e082096272d9550491aba7d1aaadc945e28547c1f36cf08cc21656e007017b4ac84b9b6240ff38021bb4eb9cb5ceda93e5ac73d21ef2dae709f32d93103effaa45ebd3cc4b3c2a48496c5e5251320396ecb5c1db6ac1b5f793689a4bd7c8493fdd9393bbc1e91b983c3fa39e68541539b21cb528b52639b2086951fe2895d84ed9b0afe18d1669d46871fa8b1c5a50a1e1524dd3341f37e7d1711e82ce5558cab96663c314baf0b9d0592dca6f3db9341c73a6d65c124f73ae5ae8d5e759e2488e7a212efb016c98b8512921aaa062c3140dd685f6d92011be23b4c50b1b2c8b39e713b65b3d91cc3553cc39e75435992ce56c56a9521ce0ce7852721bd5acb3e4c07e1b949372a356a8dca8959638b5ba24c14f9794722d4990f293373584af2b7953bda516b2a4291bb4d2a07002e1873f5963720aa362ca66b9141127c2d3ded9bc32055b8ab56a746e9df72131bf60050580b747ac26053333010106e6dee11c2ca99cdb0d61da12584c42bf0aa02bbda72b6c01d9c001c89bf609be9062bb045d48b1bd86db4990375c424b92d0ea16992b6b8ed02a9df126bf37bd6bf1dc79236570091ca7696e43ed054ef35a32dda3549660fb9a3281b3d6c666b7b0ef6cc13c02e09b760b6e5200ec9a571c204b9e355b28b5da5c2558632584152fa53748010680cfae49e6e749b5d0ba44d590d036155236cbcd69edbd2c96bb28a666e04478af3e6df6c9fd5ead35cc9d07e4c2bce956dfb4bb3079b8a989d5c4d2b426ad496baafc757e73be8041ca86895998d9aa4c0da53a54aaba68ee9c13871952c96a2639c28c7b828a025be060532670d46fee75ded7b4e57adf8b2e4c3b5ab411f3a542561926acbd9749502591aaf1335cd77196d5a20a206a529feabac849c1731d379561c2da7b59ac541011e80f152ba40d62545454940b720492c77a3b0b0c177917b00c30bcd064e4b27b2b720c20de58cbe1d831740a380d9fe132dfa92816cb5d145f08f96065c3c42ccc6ce5c4ea5371596c5beaaa5a7cac305dc30310c4a6a6267913c605961df90c083f7213083f32139eb5ddbdcd52e55093527d9eaa5371765369554555b35922a0660b39a6164b78b28d4063445448031eff2710302b527a011146b0e8e0d543a0c0044b36a0c0c8480daf761677873a5a9c35ca5ccf9951a9cba7b788617238573f7dd53b2d99905a90b9ede367bf539fa4da5ba7a73fffe3121af61c7ed447b97463d27064f15ce9c42323d03b497009fcd5a9d3b35aa4cc3c9c537ad3b5d698d122fd5a307ac782db5db9446a5392894e298017295e9e98e19e3335697d9a3133578d695b9a734e6d7392546bad9b678d30d26a98939b332382fcca881fbf6a514a9cc94d59a2529a20a11fd18f546c8ad24173a3f17a7e997d69921267de404ac94abc1cfdaa45e73316907d397a29fb4224655e60df4bd917a0e796322541db53cabc447919f3ab16e9a49cc469b75ec07c0f7981fd489ba6a85dae172eb245eae4d948b7efbd8d947d697a29fb6200cf93bd33e7d7dfa0b7f630fa5315c49cef49afbf39a7370e9edfce3e939bccaa87550faa2b5dd4aa87d68e4c3a392963731de99cebbcd61b51a44dbd9f608bc5e472f71c78a4730b1eb1611512a7532bf05f289e2ebc510389cb3dad5a0e0172b8a394c233a38787cb2b264d3b0ba549b5d64aa936e7a4940bc312a7d6125066e615505649d553301b849bad30b2cae14617c5656faf6db0104faee8cd7e4037bb39907d75a1d534d05aeb403d2feea9a52b3a2ea5799b267b67da6f03e58bdb56e8683737cd43b069cd1b55057179f3b1f2417565c583aa4a9d3eafa2d4b296ef1551dc2ba4a0a915676a6a451477648ee33827747aa91cd5a977b3d295132d95a37a68279d614e4e2a47906a3b1ba4735bbde33acb757c83dc5cb21265b5169b1dedc095371d087e7e52a4de7414c1775dd71d618dac1a726bac7d0702d917175a1a4c5ac31c9e6d628e8a1e48d6a507b22e51501e73ea6b7a02f34d575e3641b15faaa9c9af68af5ecab440318723bd393df4aa5ce4198e94ba0b49bb9b096f3af3475dd2ede84a6fd8f7f41eae0b2077c54b5997a52e4a5d6a085fcab040e91224c6533c735333c160b0202f666efd4cc08f2e18a3ce0cd57d2e6058bc1c63801fa599c93f98a8e6473efae9f2e7a7d3e996e9cb4fbfac2d5ba2f8e939425cf9e9019a37a8c42d7636350b15d10000047315002020140c0744028148240aa43ce70714000d79983e6452321308721c48611405311003300c45216000004601849421b2950038fe05e6e8cb381ca9a1f1c1d2aea169874ac78e06766ee157012a544ee6e76cafdee19dcd2cb5bb2489e01de046eda676626de1b4a1c87fec18899e1fb4db47c807601753dad1c69655cecb81f8858fc8d828b1a56a4cb401570571f2980d4a1eb570848cb5bbb01b2939c489ae49282269df35c929d21e678916e056508eacbec87a5ec8277240d08c6a2c7b2109048e6b7b402705ebf36e81d30e4a3e614d8c6fddd4b843d201239af0b54419000a8181d3d2ebb664d460e6b7e986ba979c11b723bf1f2715f2b14fde22bbd16891116ba620bc98b50d8b1887a199d94dccaf1fe5adcf4db2cabfa154723da77a1833acf2d0597b0d121034662e95bbcd29f2df11b3a4591e253011a74254626021461c31503d4c1cabc34d629451f8a8e754b7bded7ace30042847bf38c3aa6542993a375a20669a0ae56b4aaa704d8569ff9e31dbc178b204ffcabe94fab0ea9c6891f433119649ed729e8f8576529e90b56e1078764e5decd4c1583b3479c4d782ce81260b97db5c550c01ed3a9748b6837930d72aa167034564f113ef2eb7af65e2da889735022efb8d6e9a268f30c96956ad7ecf86b394f2f657ee62884d1b99e539e29d9ae980cc0be08fcc8a1bdf7651c6d9dfc4cef1800dc35ea5ed4445787a2569a64d0d4f9b7005c1c1a8a5424ac2f9d8eef112c25013b6eadf976d732d4995d24876372831a5f129aa50d3d7452df5c5fbfe787bab0802efb4ce0f539795ef96e0a0452eca213698e9ee239fa8d4e1972b69d1c8e52aabcfbfe7803985243f62d4e61c8b4322f446851e582bb03b0bb5dfda039c54d161c92c2bfb396ac9baf8e1e832e28ef5f41e6c332753e947c65c30609139766714582870695c0f709409a57a63329ee2da07b122c244b3a5aea52c7abf77078d4b085b751c888cb4cbd3e46f73164b492300a1bb9b6a49438a14acd144b1b2f5d52ed7dd95672569ce83944de2476f383a986969c00c9f65c37478898eb0ff89626ff225808f191e09a1c1b3c49dcffa4b60030941c614b1a33176e30cb929a63b57580a3e4338fdf57e94cbd280679ae61f390ea201726f8f4b8de8ed18eee680dd491e827a97dd023f5de9f45d85f2ec5b9777087458c8c4cde503e449b4f60ef1c721085fb8c0022142e64c623c36e6c93579e80529cd43b38a619ee19fcb39abb87a647a550003dd24a19d0a264e151018847d1c057b5bae5e826a603603596c609337aa8509a38fdfe8099a9c0c5a05c6288e5696e482331e40c264ba51e902bd1654ecc372a88bc041df312f5f8fcefc7a98eb6cf23fa2413bb5e4d436b11704b8df461c9cdf198d6f5d00dc45107f51e2f9743527bef42f5d2e288aa0bc7ddeb8c47dedc2918d202e608180e83accf7cb423c6f45069a63b6772c5ff75e674fb468235f3faec649674b4e9799fe180a03c2c09eac500089c13f7752c361aa9248de3b920652309b03fc3564b371148f8f2b15c579fc25b18d61762d93603f07329ac374135d84aabf438abd5f08757624d56ead083f4001fc15e50b326b233b5ce2e4c93df17e49c4ac72d1ba6648ec2ebfd45a8e6b6af042fb2cec4679de87a448415b7e6541e684a99a5727dd048a19e9233b9a9aba771c5d13729bb65db46d98b4659d4c0eb5b617db05c75c43fbc40b7a6568fe8f47c08a7f18800ec7cc95f060d8cc3a483ff6d01421865366e2cf1c234b4388d7fb0759b53fd5ea1cfad57ac8d5f4a01cb8d42d11831c805cb7076ca2e4110873d8b79122656870412f202f3c74ed7e6d226fd165a5ed0c763c3f58227dcce6101513dc457a2bf9b484f5e6517b890b191389acbdc4a36d4f98474db4c0bd3643258b0d09402927d82e353da1389f8fe9cf5dcddc0dad8319c51dfddeba71629b17b93f0e47b39225a40477274eed5a75a08f759565637a4b075d76208ca1a79234365004cae819ea048ec5c1d012c03afd88fd86468ceb03d3fba10ba4e3ebe2808f2efc9808028762a9e3922043c2b91b3a7dce4b10a8ef663b1cdc2603d0d8b739c9567f740e1c8b27d337dd9884c4a35cf6214da7b7597c1bd72a11431759f37b62249f425878697399777943e39cf990d205e9319b7b5d22a0b7ed6255a301b3375e49a17312d8dbc20e6afd3b878f4a64d417ff162aac328c0e66b2c3229aec6d7a9996c1c2aca2890c598b91409aa74f5e9d0d041d99650d76864c70b56dcbceae7309bda40dd26fce31492623f76563ca933e53fd22c779f476c51997120d02a60e70af336df63a386d84ca0fca4c1f534ee5ad6b2b2f74adbd3870f228ad8e41b5d78cc25bdf56bf5f14a17b75cc683412c247ab72c98348b8d776666cc50493b5b1b0152d398720519a094e670ac9783d33ef705f57903d2a4724b65adf9eef3e82232083045284a50a3d21728970737f078cbd6b62e9e5136297451b37d188676f219a4546865881f9c246bf30233caf8b3bce3971b554fe8aa47d1301c85968efb2155d3d1441188a59ce9fa8408c9954df9be831cd81a0e5935b049ad13fa009fa59ce19e86b626d057c3ac162a3ca5b86506cc2a1dfa9cd134cdc70c33763efa02de7f7b1dacfe6a319217dbd68fd6fb9e1745415b53e92dd22c1c74cdbaf0643db18b48f1541952974bf7005a9030b1ad5c559d93947cb8b957b7e673ca2dfe0a69f096a7f54098895e0c2fe7cbe3e703853e8bde79f9f0afbe27e19d411ca8b17385a5957a97251e0b9714c41ac044e173890c408542dd8eb5dced6d09483f6f73f819531314900728b3f3b1d551b626125b132f0027ed3146ce619918c7ad21ebcb153a70f449c8284cf7c9a8ce34cc6135394f1f4e444825a28901841cf6320e02a645f05f5b39533a22050b3858e40a444f2cf5b626c88e4e1022c357ab93137672f0bd885cecb16de152dc5679ccd28b2e47035fa79f5fb913fef73b88eca86d50cfaee3dffba13002d1aa475324b4889558929c9d81dd2739367e2dd79bf1de1334125b61e8776d3ea873b4e1ae09246ca66f10f52808b65e6b0fb7a0c4db39c80e6a284025a95b1674aba3eab87aff5c596da966b8b8b82c7f911c45d44d31c3b13440a8b4f6a8324f4802a4cb976f6d4fd88367f6b4aaf218de5e2c45466b218f7bf81383b26b675374e9eb9f5de37eb9aa2db0e61ec24a7e5aa248bd4e080da78247038d681b180a023d1d8089a139e8ed868e7b2577821ea8d58e481340ebb32e8b9c3b558d9dea3447eb35b604116e5af20878caf205182f27e2aeb4f69d0871ca6924cb2ca21a7e274c8bdbe7025b26990be3adf412d0946d5b0cd52cc13ea91007dcbdb5c549b89d41920a5c0ed9535ebe77f36ce7de1978a92254033ff2fb9fe52dfdb3eaea7cd3d54f431c95e6700cb2beb1898870ce186df65638234ec0244ca0f75bf35dd109fe48b090106eaa590c439a2a05d6d3732fb7fe0674c7428b1d92475fb0a278528270bfd1e5990226dbf805ce45682677cdc0e8755d800291bcc079c64a786c4d9fd757877dc14093b1315749bbd7f0e9a922de7f95ac7873c117b41b90bd91892874ae619e680ee7e3291b78d46d3664157d82e0d5783bd7cefa5170bc6d45009621118d3093cda16123b9ce130a52777bc908ca8251c5bb3f20e3253b47ea9992dd0c81defbc99f06f1c943057a3d798999979631ad7902cfbb648bfc4fde1822182b0254b245a1f9d9a13d11158db782186090497e9361010e50f53ee0a0749bb49ed5ff428676aad63790aa9c3f59f641ec49b10b7268631c7238ee4ee83ee6a15f65152ca4b9714624dfbe61e5491a7959a60cf8df305758e8b236e3db4cc44dc2669209bac08d35b27334e9e13b92aad2c9a0e5eb9a3e6c0dd6b4d9fbd1848aad873726d5cc14b6bd8008952f71eccbbe8f0426a7b0699a99c8b95d1383edb7d4e026cc572b4049e98c202b611a5973888b93428b009d4875c1de92525112ea8e8ab7393bc56e1e2c05c55999553655c3673636177c9b4d6cab21bb87bc1fe2a703b5d7d547f64d1e65226c2dd9a48734df57bbb28af88463fa1731623281851a86b456cb494987d26948aee59d4753bf1cd195c8acf8a3d913143ad9c1793820585cc62fa364752c06de35744498fa984f08cab833942bd2b4b693c1dc9080ce8f9a8c6b03541ac5f05dc7a865f54cf11d4ffcc200281956f28de1acb201c7e144a7932f696a44e6a285e97fc19459068a933f5e2b4f3242eb35204f111528742843c25097544504476397be11c333613530bf557af7dd02cbb831b7390e6f6632d301009dfdb19a922be8d55e0cade62bbcbfd900883b449c108a93ed2b7eabea0dd3f84990c687c6e7dd9de9ec71249fc77384c4b36340f24ea683f49a67c960e3b0e95a573be38877754d3fea000e493f78f06f4d54e85bbcb2d83c3670eeb9935e9f35101e636eea7a3400c93c1d4d1228528ae48c147f76e1249579d64c06bed3f793605836ce4768cb4ad3dd0b985aea70468fa4a6000e1ae9c634c324b9e92b806d863e7690242cbeb0fb56807443d3890955610ffe08d4c3e6429a3dba1ce11f688e39867fadc41b7ebaac034cf8039afada618db2d50a5e62f779e8190b4bf872f915f18ad053f241b8d185744fe1c9819db009e5c7cf73569775b51670c9c4dafff4d06ba10826748809a33e3186d3450add44382eb8e6d1e65f6970cddf3ab552970e71a31e9141297319bd691ceaada8ccf05b7a898a76ed50b01d4fdeb7dbabce0ab9e941e0454d5b53ea0c740ead77639cb94ca605c9412a5504b5d3d8c708afebba214d0fbc87a1e7518680efb3f00567af823d4d1b8bee5fe2c8e51a100918a30a7821e557432e0e0f8b9fe5a586882bd25941a9c139a53d2d1b47820754e07259d477a0466944bb5752e4c8959f54b21e36d936bf8122b522ca8574af8b5838161149cb55ad2ae0917f9648211b74fa463d407a6e8d7e9e6117aa48e2cae8ab09897153e2e36dc25efd91a350b9749988621e4fdda5ac8a07861ae6a909012e846e5d72a1245faad0a65c4b4326d5a9d11635791dcf8384a61cca31ba205e2b153a2224cae8897ea1b141aaa1b8df5b94ca1749bcb29b76c23b314c2b2f83de71b5b2769abcaf923b7762e876d92a407f662229bae9027fb2b790a274de98010802ee751f527014b2c78e215821332d86b12f774396b3b1a2786d48521d0b78464282bb9458bac15fa59c2d5424f94b0ffb3d9767b6331a43495506929773d784eae7cb517217d04644f38e28ebe506f3ed73f3d4d81ec5dd9810a6dd052ed0fb75c346c81a15d8892a5c13dc9a9238f7900c318ed760fcbc387c47fcb3c387cafa071af5207757696cf4d87d562bbd1d95983208011d412ca5e7a72d374fcfd911d212f597d3dc38d1d774aec586647987b19847d739150c0b4c033079741b3390ce63bbdee0d905aa4e4ddf08e84927b6e39bbe307d34bd6b0aaa6146406f3e08ec9837c04ce33f7257c06c571ee6cd47e2aac55c71bc71b38e87e26c1fa4b9a19e749834c4f8913cf6b3f134986f518270309f5cab18de87c44b2e0261c52eea33c9994e4ea79c85581ab8a25bfcc8475ac9c63277fc2b8f0d80a2da5b812a7ae1131eeae2934934394cd866e051d773a77fa9ddffd05ecd91799fd723961de84e55122401f70d96c8bf86523f833aeaf3de895117b9ebc089ee3014ed392dece7b3d0e1db28031e5b36288297286df7b7fc6718646f469de028e55792887c48ae889b56c953407e71947d48983f44339cc194fdbfd4e6bbe8b9d3bdec2834f43a8f531d78f1587c1b4904ba8643732157187397d69c04405110741ca9e80130be117dfae446fd57e1a68e25c39dc429c08cbda7cb84cef12a6b4a5b6e9e33d563365f165cd4ae252d2e172047c077163ec62c69ee789a436b9e5033ce3cddf73e66cb1d5189e988ab3d02a2840b5d14b437f4372af35445238e21e3ae7962b2b2d6b53880e6bec83e229fe30031f91c2224a9584c46c6c506ffa7020d7269d179140bc446447ee6e15342568e9f6f8a32d13a1011dc6cd7caed06941cee33be2d41abf10f44b0b8a662f405dc40a9ce25ffab01a02535c675138113e7e4c4321d0b0d1cbaa8008f326279a0d7298f2ff2357145a7c31e487b9aa1852ec25848c550aaa53c640a98b2f567af67e431c6798b0eaf541d317613aa03f5f3a7429caa4bdf9d3c58de704e0dc739022571bcd803550b71750c0ab657c40e2941d549ea514835d80044128bd64197cb9777128d1e097ae7324309dad75500cc36cb883519ca2f07bdb2428a2d128417aa819fd52a55a041a12fc9b8dd1441a1142d410765850cdae402af6de06d63effe6f538ce1abc1bd7159400cc3b3f2528b3757bbc2d58818a7f93188b55555c4df12c5508b79f3ac46ec6297ed656d02e0414ec50dec32b05bbc11dd46d7fb55271b277756fe0d5fdab9893c01a24f9ecc01d9a1c35f77440cee4a848d3d0f62cd1ea7882c26fb846229765c95194da59b10bd276ce5e8eea86ee6eca4efca8a517175ace414ae131daf66617215db9cbc295be08ed59088c2adadbd4171b839203f0c98f535a0edb127aba859cea444fb2f44a4aef9bb3517cf76cd20eb32fa1da56b7209c518acdef571d1ab84e5e84b392488f9e026d451f4e03d970876d102190506a83610bb1c405daf0a059a8aec50d78520c21faa8e3093b82c88ae267b607b6cad9ddfc8366b1f4341bf0005d01e5c710e0dada00bfa62831b595b4d0c507b97b1769aefe5d98babb8e2619acd97ae581bf1cd7b4d971a2e93b9b98d182a5cf72dba49b275db57fee8db2adc48f42af888e2acdf3d40779b94c8b94ad2e0e5aba25e1a2ba9082d28556399521984ebf2d69481647bd16f1677bb6d525264a84259b3a73c214b7b1991aae123a97d03cfccd1e1abf01bb98d28f565a1ad0269ccc8ea7c3c71086da37841013c5cfbb741c6717a8c92c4ada2e12071ee888e46eaf8a1f27787cdb0d848271587b66b087350f3cc6e0ab5aa68dc8d44d9e007a772b9f3002bcb29807306541cb4dd37d27f38401bf59bceea9dacc8c80b0436fbb722d6f5b7adefcf602059c9fd055a563a113d6c137f349e2a52a46ee45e06e98388851385afb6100033a4173a857a9f498cd71a2a5f907b48fe9021668065241341a9eb314afbf8441740a19ce9d17cd622d06ed4ab88130b0c7d367ad49f562c59b785f4e160aa61c8edea097ee952674b633e0ec25cf80a4feee2721ec4d662053701ea6418207bc3c0bc1a262f1d04c068bd9708ab1155214e517f815f779c7d748c649be42652ccf299eed34acb3a427ee3418076c4ec51ac6392545777f52eb4bf0d5acf44c9807b7f665cf02c1a208a87e9f597ea7b709309b43529cea4750fc41bf039e9e20256e747c58d54a9999da9138936fb87dce3e5308132464c3a2a83197f6b85e54937ec785feb00db77362cdb406d6ebe893c58220ef5de78f0d58e5a2fab30a5b10c22c85880ff7a180682ba313d6569f85cf7b9b236be9537baea024bb61e032f2e23a18d1f635f8554f87eae1fe5914a733f707c218169567a490c97b871ed8639c7fdb240aded3927ca1ae6ae980d15412454e51b3a4ac5bd232dc46eaf409a5d5fd4d2040d493c1dc8a4491056da9c052b4f890cca8cd1919b15209c79cf898d173db6b0bc27b1eb3767b4d43fa83d3a2c9b876e8981d409bb8444376bdbcf7513691d48e2b569d4400f3b351186f2c9dcef7706c1a8386248c4beebb8f034ebb826a05781590003e08614cde551850016ee47f5c0599276bb722c2d86ff43b650c5cc0c409e29bb1b25389671f7744639eb727924d423da9cf81155fb5c9f3c9ef5de8c72d89ac9a12a7857fd2fd86f1d44add5c70bd885f5ee869a7c22e8385d3fe30c051881ff2d824a055b0b790453e0d52c2bfcdbe55a7fb9ebf9820b15c5c55a81ead5f048c096843f7e804b44379f7a05a4a6d9ea9f0ced8d2149d811c4f3e886aad58d4988a1abe37a045a7c231f82c58e92cebbf3f0ef14991ff69757f26a1f5c675cf39c07abb54ba5aef64ccf1b053e18ec1d429ef39345781107af56673a7b9add4e05348ee34772a26adf4e1bb30bc8014bcf630d74596dd7e27d11b6ad0b2d35f0bf0a9f6240c707703d91fe781072369d5e05e4ac5b5034236bc00bc6c5f2f96b596bac91cc59c2d704bf3c2cc1d860b3159be3f5fb557693314f36731ab2cff94854801bf42f12f91a28c90dff1ebb18a4a570c8d2b37a10b74dfca6bb3a82d6b072ddcb27671e5cd9592c2957ef36a63e95389f4c2901db337b42c8034582f2f00995fa1715aa5d481ee4a94256f41acd7d83cb96a03b8875be6fba580c8f63738728bdcd9e3f4241fc2c6a260b0cc826197acd734c86f98282690d17a165c9550486c1a5472fc8e5f7e4e9c5e13f3da5e309a3a27400ffc9c2626539117d41db4cfd9e728c22601b7e3265df4dc81c3a0f60fc5e3593fa59a90da03255ba29d6667707fc8cdc0937a1a91e02236286d2ea6839a8f7ea3ce455f5aba8653a7a9f8c873babd439b0e1078dabdd6a7441c8a06e938d69a158130bdb825a2e8d91a35e5945c3c1e062735291c73ab9177cbd4efdde26b6095007a42e62b99075237f77e2d0c09345bfef8f5f5c711a84b0323c14c89142769b1ec32d3299c4e66938a648209f26ca31a5797a236139d5cc08a4eaa16e626e73752848e4e78b39da89097891688499c0cecd51a4db50e0d1f764acae6035087b31f163912826a98a9a90e2b5f920f178518167763642661cb32279e4cf430c4f23a8be68e8c9e6e5827efdb923a7f82d5070325d89a3bb238da951b5796dfebdf89a600cc8cdc7655eceb6181ee8885f8e4e88dfc68e1f12693985b7fb83a4b9a45695eb317fc42c7a85a1c5208db42d4e36aa1741bf8e826bb69bf4f362d2628ed2f270ce0214f27a6d0bb2c369ea682e455f824853c332c09cbd31121244f06b3959e93c9e1b2a2f181e1da6d4f00257499b5af1e37edd42254abccd60227decced49d53ea03ee70cf13fb1c04f2cafd86e6e731569bef3d45f7cf2d685ed8682cabc4eed07d0d961e0b0b84c3950b53a49536e41430d7463efa9bc06753534e538acc8872a9d38778e735ca3f3c81f61581b1007c24d4cc4e5ba4a87a9b69723dc6bed695ddb4c10b32519418a2887b031af9083162ab06ac931b9582355c655351cb1a4e9612932969f79e49032cc711457b6d9c16022380a63e18f5b5df02cc814eb1571aba40086f958bee11475bfa693252d5b0a99ca9d1784f5305d0771906e2e7a808d762e35c497c7c86659f3c43786e1111c6de1a499db282448907dd450695d5f36cfe79914df124995581a5848f655b5541d980d045fe3c8ca2e48869a4ff30c722601f954a347c69abcf299205a91097043851df97bdd62fff9af6940991769e71d41a1177af6853fab526e1046553c30d3910430267d186b4a4ed4e57d8173ac83d5734cd19339e917cefdc39e299ba1bdfa0e1f2b603a2ce38bc67a6c396e61904a39ad2bf52fdbc0320e5510024821d39fcad757c62beda785b6f53da4f720304f2a3aedf0390c315148c87b1cce38e39d4671a3d9637b464995db36dd5b0a92b7bc61144b873248507050b9a5c8a720e2f80c08cb397cdf911d9d2f6753f6efa1ec3fe1ae5d2afc98ad603e53d8d2aea77bd416199dafee7c161d1144f56e256f3c5a27d7307dfb338ed39331e6684a6c9d7029354005d1cab6f2b63b5a27eac054ec458f2836c5216b0131e23cd1d99052c72903c85676da053cabc29d98f7d2a4fda218ce5e726584fc30af6e4159283d4196e72445fa27f7623b765331e712b217cbe6b14eb304a87820725ad8f59417632860de8c23315ba204f88bbe82fa585bb4c891ed4c9e8102fc52183d9c26439f52b499e0998643cf05e3c72aa6df8876524f51ef7a170e895902c19008eaf43dc7f921272250f1c38f0aa3fbc1e11550c6164afb78ee2b90064410dd0ed03538eb02974d0f802033bb232c414c66473c5726026aa3ce282c2afbcffd519033e11b7bc25035160461d1a48c9c5e905e70e9ec3e8009f9790b219366453350ecac9460210e3c1aff235e23db8ec3c924a5a045107cd27f03ce66867e866f9e4818c79a334e389e18b0788488883e2f4fc739871eb339f204003caab92457f544e171193bbadb7021119f04275713535ba52f595b071cae6303d05c0ff5cb8d89564acb2b9b7866bd52286e163091882288cfe2cc4feab1b7bb2808e9cc38181f8948357d05f72c8915b00c690191721f74efd556bdbaaf777da6378a86d52b44432f98cad281d9ebe6cf487a25fe6f4fef825e297cb5059f8fc0e54a38b1865700a52081be4660ad4c74c2f15e6dbcc4b20b859d6360710190f3fa1054a9315a641b99352895b84d1f7d3f2be6e399e3598ba445681f0af66a9ba994e635358ecb3612786c794368208c369682e2c295bd1c1c9bf36aeb4de08982f17bea55237bc802d47e9668569e116db601cbda1db6a34704e251d63b4735b13694d35f86c1be0dd54489e1401faae2afcfb144ef63fe21e95d885d347a1dd1ac53163bb04b2eb0a10f3ac53fba52146d02df551c2d81df5d1cad02efa618cd02eeae08cd02ef545c9a82dcc58a6a1a0bf60b522e5765bc77da1104dcb9389a04ddbd28ed04bdb308da04bea3281a82bfb3385a05de4d319a05dc5d165568f87d3b9b9988c3232684ed0b72512dc2ddb768632033d1f163033d32f847077ae4c0c719f0f8418f1aecf1031f65835f8f18f890bb7298b3342d699212cbab7106e4fa28fe2f7e4ba3c42084e1bb651ad62dce76f1dd47ef47640b4a68f60315777976ea0f859857c8c73731b53478fed0b3b4a3a2da02f838d8bb0c63f740cea3584d7006015985fcf43ba694013fdfdf4c60bbc11960726852564919f1fbd92137caca2b9bc1568297dd78eda8376d8039c9c523ec49a972602616830eb5d20a5747cd0f33101e76c3d4245fb1cdda2a286317a541c30c51bdfc1b391dfddfd47b3ac18b3d87a8c3fa822d632ecf6aa46aa684094ebd748511d0c422e84fc09d33da8b334690e9ec06a89bd7e955592b05c7bee871f5cbfd2f63e9acc91c559a9b1a5953684cd545db3588c2fca5e804912ebb6f8555700a74c9eaecd9789e823b071baf27ab1a05a9be32dc14ab6d3bc2a5d1cc6645ba0c54cf511d0a75e4d6b0d80d6dfca838b8caa0b91c6dfa86f834bf8f0ae9a82f603b9274dca3327afe9c79c1df37563908b101b042fa66f2730653c94e261c2be9163b8ab7f110d0a4278dce19d7d6c18c9d0e4a4dede42c41b12bda85c1e38c1c8c6820ef0dd2135f005d325cc10adee96569c4a163d6eabe49ce58d2b25886cbc23cf23d2b7a318e705946552cd9bad439abe2e4e23900f89d1d89c238cb8738708c0e4dae0a363d1a476ad9a40a15e68a0cd7b90883aeb73f352732b15df3e3944ff077db537a6f70ed8a6d4fd5d51975551242fa2b427d34215f894dc2063148ccdc50bef8d109a2109d4652f91c333b1b4c40637e4a132acb89515219b64a945bbff828bfaf2a35d7e1428c30483e4c86a920a094cb694217a93e1fba9c6214d0211720fa19433a3d04806d09cb373c9b1d0273b84bda66c60679ecd36de928cba0607fabb0bdb04415d9471526f27090a799e176d45df6326305f0c21ad5816ed0ee81eea5f9828d2c4407b5a87b26804925a0c6a7af4f3062ea32d5aa274fef7bf22528f149cb537d069c67ac062d7145c4b45114b608defa7a3465b069e128d2544e3729ce086798c7e9259aee34e42e4ebc4d50a7e7896384430ec7b238ba59224c428178a1128b566708d6ad3cc3ddfeba1e7398a17c64e02057d430106789657c7806209a0ec5b2df2c3c9a1f12c852f3a6290b9ce8eb33640b33b57b9f6a366e34aad30a726e288582d3775a7fb22627ea689993f9fb6d3227ceb03c9cbb1d68e5eaa2db30e3845c39a0b178f489e9679c39ccc6788a3b9f173196a0ce5d9bafe030e2cb050fcfb62efa64b1b7dba467cd039827998b99ac00d3cb1d324773462e59f6fd455751b29038468aacc10aa5630a3ab574d70f739259767e67653328f72f440d06113984aeafe6b43963c653ef32999982e4117cd343b02c0a4b0b9cb7484119a9301a43cb1851fa8c37b4bbe1affedc49ac61794d2197fc06d2ec3f9006e10d29a8adaad244765312813e41e61e86003efd7d59553f85e2c00f3669c17352c2e33bf21f2df2e406352f103d963a4cd1b0e0c39cedfbd810225cab28edd85570e630a3c844cfdbfc750ad5ff448bb374f7a5350b3c5f84cd82fe319f8b6b3216714a0e46be6a97b26b1e73f636c0aa5f744cae5a2a62fdd0dc721382a611367b9b8c59f76b54c33f2f40164eeb710dffe35333c611201408c6ff2319fad0fc6418435bc7342e8873d2ec1f89c7b45b66aa34f0cabf41241ce1d70ff2367e41b4617ba79a4c101a4382134ad563201069e90e1dfb289e478e5b03a85767887b1c6adf5cccff4932fbe5993ccc1899edaf140858c5d02c9d7862ba5528c16db180674d8ade2fb7dd9f9053164f793f525d4ac8b4b51226f7a7a510d12aa9654b2dc57240d855f56827d94e7957d2602a1a85e07745b566a58f805aa565965e01fd45614827c22c3dc1ea59f09147d6104233614767dd135df2299281d5d2836f10fef82fee34c1a181202b3bea3ed737e65eb96661dc2e4501e9490f9af121a9b782eaf8b13610ef6c74c7637541447679c17f5deb72b491a37465229d24d9459cdbbba0a4198d12384b545af5460d88ce3da7a5a713e03027a5d511c48845c8c94357f79c92188c96f3c7b032a609cb270a74aabc92603c71ad69a1a99fd64f62908f7befd90fc9bf319279e4098ecd3be92f6ef9100a96b22c86ff3e5d0b8c059f1de4bb784ae7a6eee9cbd6d1d151a88ae920b109862e72dcd47764eb2cc0cc3df880fc7ad53a22b172c101f68777b20de2f4217cbc302dfb2eb2f71a9a3b208c91a31f888fce3539acd52183a5be7216cb01de161028463505ead42ce343a0c077670cee616bb448894b18835c7e8c50f79ef173a8c9c244afb2291c74194807f0b8509bc4c54ed15a141ed0dfc5d406cc33232125284d7ccc9fe22dcad6841b5bf403dc16063454692448a07b63b486be82a56af7ae4a81bef555488acc9d5b489dc4fafeb54d260bc29a8f445a7be929b28e494ea519a4587bcd4af845f34d05e37a75edda4a7662a56db1d90b442bca4b5d9f918d2ba5d8353548aaa0648c3e1541a9e4ff8d0c6a40ac1d19ced9c6ddf60586197251f03b421670b8541dd0e5f4a08b703f725d9cb081a60579965b6358b384b14ba8cda2f35ec7a486d7efec2303c6c10fc32cfd3d803c014e30dba22c6fa7af17ff267439dc608e0de8f94d21d8670448b26a1877a74b44ee15a3ee68ddddffbc4313df538a0e3519400a478e057424493160da5e0fe0ec3198752b68f424242325f022fadbc0c7d432c6544464d9ef61c2e143d6e851f1c4bc5242cf2f0dee127d2ddc8bc8df11ac3493ad982fe4b6886a873afdf608544146249d70c78945d2a3250d23dcd93a38b44fbfce39cfbe2bd87820a47835cc06c9a509dcb6d7a84bd3985a0882d42d26e55e05158a5bfa233daa63a9acfa83fc48880608accc42e9f98350a6025be283c92fcc3a2fd2008207e6ffc519edec706b73afe569168c3ca6ca8237bb48cd78adeec36f7bdda5703d762975665a891e2720feb5761c24219ac4687fed3a7303159cf79de5b82cc57509946b4ca435e0762e94bd9180c9662bb448f4375d35905ae8adc3a4e453e8d59dc112c1415ff9c98d04aeaedb9d91c5c1e9052bca251819b5307634f5dc2d56476fd94acc297285d1d3c80eddceafa550957d42d7b7470c9e6a9832d25717b83d987dac2674254333b69a2d7866fbcd4f23aa389e74bc83c696a3df5e08f2c953c52780c5f9a29b9764147b24b9df77544edede3bcba0decdc8529b22d4c064920cf284e13d5da114c40c7c10a8b9d8f238947d5f8c661e3f038ef4a179f6229b6003c6890dd42e40730860c95c5f37a049da1ba883ffe86875068cfe49a121d31e6b004a9744652ca0492af98d02fb535cab04dac5b305d31de053c8f6b32f83671b7af1004cd2b5543fc60bbba54fec1791c37889df267f207e28c286e8455b9cce6cd4b3177d22521e57bae83afe0bc007bfad9064179404dcf6226a02d4d1582c369f28018f877e744753efdbba5e0cab88f38b4d0e61fd2001e4995c3b184f564df896c380234d4dc88c3a70647b795c9dedfe93d236886cb1898d8f4a6835b6380b2afd5f9860b7a7bfeaf2632969450919c2121a58412be1fc397210f9eb8b3ebd8e5fea1284e1e9f5d7d556451a14456efd855e0dc4b530cc1b40d65f13c06a120aa60691887c0bb6ba072c79d86b9f2d002a77ad803e72a5e8df4a383bcb6cf0333d909e1a953472012ea9f3fbaeb302af7bf070976b9fa991d56a8a04a35901457a4c465582c2084f5d5ed2e43ff13a3987d9fcbafd8b78d58628243285e9dfdc55af3dbbefb4e810ec1da071f2164abccbccedc615793adfe8676776b1dbf6b5273b78b9fc3b066ebfb4b9a92ff75dda4a549d158f4a0b90cab7d56b4298fb90ca08b1f929343ee8cfcfca656156e6495544d89b19be8ac21221d5ed69b328919214986128c3a217a0c0d519beeea56289541e788acad77ebbc352234997bfb3e1676c2215c193c1f8312dd84a57695bd9cd360082fc6bf30ca9e418644b659a2bc249e0422a7f5e85103a32dc05a988aca627c2e543ec3339752690aa57a8e87d292b15295452eb596deb7639fea8de34faabc3333b2a523ec7e3a105b98b750e6f1e76dde04feed8dd0bda58c4e652a58a28ed8db00afdae0cd9844713d096ab2f3fb6a60ce65887ada572d6234509e7255235ddb1805da47316a3457662c1fc831f5a0ed55e16d5310ff50869089cc1108682181e6a2048c3800907fd6a1f297c5af939c50f153e507e8c412794acf829c5cf153e50fe40e9310e6d6774b05708c3a00d8032089b183feb1d7aa01768b3900900f5614f10cd31a6c6c79da1db92e3c8aa8050c0e4b4b4aef7e3f8a30c5b6a0bde7bb069384f7e3503edaf7f9a6b986635af391a69c98eeddaaebaf6abafeeeae3cdbbd2bd2eefae835149944e39c551643fde95ae75cc99bbb2eba1c12972f688827f36fb050e387b6988eaa9afab7408f0b2b4b8fe08f6aa17bb691c30a6ce393b6b72f6d4793931cefd7fc50921d6c5c9025b09f0609e9e6ff22c98d87382ff4f0487e4066389ad6478304fcf6713eb1cf2c793b0897892a6f0c09a3a2fcecc39ec5f0a3192c4d0a6e4c0ac73d639e4df2261910995d3499e8185fd0b20ac12855de415189c7ee5f28203a7e674a757ead45e6b5bdc82bae321191e51076ae24fa6e4a4f20eef0832e9882b72e4958a112414e98358d301421a14a4cd93df56088bee861f136149c3d224e2940dba9784bfaf29720ba097ae5241d651fa49cd3eb9acbc40fae28fca3addd2e25f6b157c364a22cd5fb05c109e83c451da6fd3faa7330e7e9ff1689d77cbb8e7f50f9ac6679cc7975994a35d8f66260ae90dd6e8c4ce0e989311ed0e16d94ea0eb46c788efd05b852fa361e54ec3113af3b543bcae39f10d84fd9fec09812c57d2dc6ac8e7d53f9e44787763d9bf5ac3099338453a5f277f9b00a931e8608d72c8081c2b748cc6ef0359c0b284fcd5307a6d2f3e815a15cd0821b2edf2591f0f673699e0d0331307f4f454dbaf0a536c08a15f40a1139f1cdbcf76941afc0fd29ba5934b1d80bea69bcc40f26c5fb11c1d1333f3593f04992783d9d197c9a7154c7d0e0ed473bf08d06a0aba4ad72d98dcb0da66eb770774318ce3b910451c57b0535cacf009c4d5d026ec1b0bcf5451684ffac86b3927a1d460ec8d5ddf3699ad6eb5e265d2e71320ac086077aa45374b909fcbab257dc5c2355576bc400321ad3a01abd596324a10def72d9668f93099fb816e8cc071a96dd4791af7ecf6e9b3f98325dfc0c0af8411f000754f9f19b44732505ccf6854f63f7b0967f8c3c1deb0980756fe092e68ea5c03ad1aa8bee07fee349c54e285254a71076e52ed6b693a18891621e978ffdc42f8629bc5cec0728139b1da51fcf8e899e8b385a58335eb10463d85e76872dbccbd5b79653a98834dc1546cb5e733a1dff0872d1d2403c500fc2d162d02040c056093c265850fc9989e958c4a66f34716cccd249c02712ebb10767c81bb762c2ede570df8ea0bb0341c1a29a6055e60510c0b88cd366fe4be6917d5a460d3a8715d96ec11ba669c32124db48a22120ea6761241a2233a551520366b98b80686cec0f21a65392230e28a1c03e17c6d94935338237e13d108449b48f12023ef6585ce1b60569990ca3a62aaadd3d536f746728af01303d7a9f72cf1def2d92b37f488f64638a88cc2b7993331fd65035ab353e64753f28538752955dc6b078073998fcb115d4d64b1793bc78a71ecad75b1a31e937aeb35c444bf45179be704b9e2d4c2e4a16b66805fda4d74415af2419c0afd9a0158482c086615edcbc5642e6ab0b282615bbc1725573faec371abf9233cdefea9b4c526c2e41c928f21da6e7a825943e6a6050eaac690706bdba52e2cd6dca4802c3a198f56bafa37e8365a9126f252aae821097b6d4d2b40874db5b305f9685826fa69b0f30391ceee460b32e8cf21eda38ff467ea00658ed4adcb6dd66da332f033ca623d86478a740bd32b46f708a52b8752334171323f1ad11fe090dcab57cb058b43bb07f43fea1bdbceabdbed70e1f3cd8776620b0831f735824ca2320b392062f87f43885fbdd3ee17ceb49e3d071c03812958a647d205ba0e29f23f370bb46b129d655c8dd82b1cc8af02a0f70a1b26f1e6900e59a8ab2c43a69c5b8d318608d95663703ba42985e5814633f924fdc9c1640648ef7b2b68800055388146659e21d50b3ceabe83769a7fbcefcf0db811b166869a1fb34f87448b575cd246fdeae755a59e423bf450cc499f3ba8e36180020fef7af855f8b6648ea1a6316a60ee3f7a4f3a51b6fd4e5b59520b8e8c7c1922d186c437fe281e95e12f6e26d3e9144de874c58e12a739e2010e9c0ccc1195f07d0a00101a71b9bb89eb9402a91e387cbe4f0885389680b67c6a49e22f04c5920c8bc281524c90c2128f1963cc5a5c97c075d4f805353af6eb90595831392e88eb6b87c668a8aeaf45925b2b67047828d818382953fc5bf0eed9d13960fa8ac037c91e0ca90ef3555250460acfca12717ea63f1aaeb87bc49effd029045bc0b9e349075abb1a5a246bc4c5fca0f0d326d5ea14106cadc19d0453e49e4d2a0e65a94a34f461a4255bc5d966dabe3ffc237181249e80b67a4a7e0862c821676525a83f10595e9169897fcfb25735bde7d69cd3ffdc3acb2b837cfd57abf46773039db299e5400fa808e4ca4ebd8e93aaeb20ad4591ffedb1c916c48209a422faa6a12a0f50b97ed4abb44fbda032a25189bbb041d452488fca3da7385cddd82d7d98865ed14ae6dcc8982e4990a9076d3babe9fe7c462b252e6b237700454d7d2320d15579d77f2de1ce126f5ebc24659148ab3af351374c09d17ace7ad9f7dde01f55c8d22e45594733b0c318f958bb26fc594f4e96d09194541c15b0d0a124a72336d776d9d8d62793a5d33c64f8f87d38af5fc832735518b8c42608abe4bc3e923c728e113193dbdd92bef8f3be957f9ae95b28ef2aae829909f5a2cd467b95f4b704c18868753819bcc4ac38fb3944c0a942cd9d04d29d10df115765be31819bc88912898449adc8a599955f23b045350f8a3a6e30125424b2d6becaa748eb84c83171147860b27cdf94569dd5af9066a1907cefb710de33b2da48c8f30b7790693d675ec4a89499570965ed988c6a4441c04fb0a284092bc1c56368b51a48fb8ae5ee64d9b1da0c49100e285bebfc58c9b43d5e77c3692c804a6ac5ca34ca222078268b05a61ab8e9339682a0e44e9a6f21ea55eb6e066bbbe410c4f602c0e3911b8fd3bd4b4e79a8e38ce67a11ee8b4a8ee68dd73037272c2b97952c0960473b9de214ffd831afdf7e1ce94a556593468f0b15b3ce3fbcd8a0ba92dd5d967930da51d1f1b0b26d82aa0dc2815510d56d8975dc969b28525b76545b56d5ba9ea601e980a4073ab485160895afe985033d7cf0cdd6c8023a9693854fb54cd098f7562da02aea7064d5b7eb32cbe29bd3d1ef0834753d58eb2c7c27f62f4c57c13c20ebeac7bd45530d5daf11b1b410b042339505c135b675bf836863de9b6c8f8b9c5a5afa4db0dbfb1164fa3990f1333aa8db2e12654af2b88e25fc7f91b181153252d89e746263ff8ce13a8f23c35c6c0e10a14e6c2057969aeb361655141349988f4ec379d7c9e231404df1dd6b105ccfbbab39ce9490a46b9618561dbe60729353177bee42322eebd0acb5dfe9b214e83691f982de4a5e4edc6ccc3c89d3368ec45dd171e1771065b3fb300ebcad5cab8de222a33c164e780af47a226094ef19885c17a244e8cd9f88dedc023de03b39ccf2c77cc20af082c9990e0c8f0fc964bf4398593fefd2a4eea148faaeeca5ee54ad79e265a0114f935b12a30e52f7df586afee12888b49f297a4a2b90ab87db9c5cbe7001ae6da5435089ea4cbe96691382f15a4da45e290302f4f3ed8fbc377d0f43a105381c884463ea82584b0fbeee471a76d8ecfb67085c493b77e17d427d4d719361f40fc95aeb49b44ff623b40002b3da25d066d789b11d448c02f6c90e189e05881f4a1809b7f126aba0dabf3aecacad64e65fe8c861ef8b7be4a8107b17bf49aafeec80a607aefeaa27777febff9d5cd95c488633458661e7726d944c0bc22f757f06351ad16b018742bd1632d9a8808643b78efcd02f44035194d4e39969d33394d4dc1a518b060524948eee7804842d72c8728f6d40fa31d2321f5d59cd8af97f26005851337de620b720d50944035aa4a928e44bc29941b675fcb72db15bd8468aa76946efa8fe5e86696e3453ec69459470786dc918cfa8c99a0eec76c8a6db3fe3699ff45b036c75d42220a1645bc9bb7cef3a88b32dd4b7ab842194d4707483dd7150f07f22cf45f7ea6e58aea5988a21681d5440394269219f4d9c337ca667924672c54e173d6274663da6eb1bb5830c423ff0cc10a0b1f1d38e32f0c080f02fafd510ce2c5da529a7dca6a0d7c9ec860741c47e6721216121d5fdae2dcd58fb51e048345d9dbc8188a3192a5bc4d54c4c99847488ac7ce8fd6b5792730bbc22ae13a8537c916b4298fef04dd68514367e4ddaa8bb8575e686993de5236afbfb7b9dc8395d38d5e5be06cec429f7ce324ba909ac6f73634735a33f2bb0a86f23e651fdc0358608f520056ad6896cd8c03caa8fa49af8b92f153284cc1339f0fe187fcbcb559a85a33cecd6df72e5584b5da6c1e4038ae4e20a516286c93a6c622a6d9def2b35806e513fda3a6e2d078275451d60c7a77deb2fa1a404437091e38f6d6f99f8818e680ba5abbb55200f84fb1881df4160b93af1a94086880077f666bc861af79995f90b9891e12edb406fdc78175f27757999bda1d292481abb5bc81a4feb33da327af06395ecef805255cb1a50cb6b5a56caca019a1de90f572c895c40fff6d6ea53fe426c52ce04cb65a7477f1177c314b97c02b412d516fb93eab0113cd56e24cc5591298e29a6d2859cb2eda51e8d62712a35ec1087301fa505c8683c3161911ecdf98a9c5ef39ed42f0fbb7b6210612df635d42559caf2e40ab46d24864369863309dd18a382a087edf57235de3343ba6cff47a3246716f42b29843ac5abec7b42635ba27baa0f4b54c25ec0081710f5fe13e4089d7182e94be4829565ce741453f8a4789495ede9b9e9bbdbec543f84cc8974b8f26ead06202bddfecb9a8ba6c6829b3d9230b921b5dc566c9f3f2e2632518964d808b820db13f6ea8add1c233c35c163324c38ab44d924573182b7c7c89414d6004bf614f86c390e102a7e1503d56543a02787c300e39cdd77c03301cbdbf78831a60dd30793be96beabb12e3ccd0367a433580b98f9422190b965b6b755576626480101bb59d068240f0c59a036a0a72ef3263d67cd70471fd826def9ff4dad092ceaa578011685297f1854f63ea8cb56a1dc258ba84a283810d142eeec99d1926817a928a986181c18621a6faa71b030a7566a63e799f52a7797a301a8742c49611dab7e0de9aaa1ff957248bdd3007e646ae06d8aa8790c2b43fbb3fc711ccf539314416cd6dfffb0df0e001fe8db0a195964a9c4fe3352bcad4380594514c4e4a73e8d6e616953d8e2a68f6c37527c79f3455098f1e455578fe1112a48227dc73e9c94e70ba09e6ad6d5bf8ad2c957ba552de9cedf960e15a0c0156dae44ba6df6744a9c659aa4bf4973d8a3b4f88b24a552ecead17a86c9185a06e392cc3d6e761a5b25360aa98935396786b627d15f2348f0643e28522b8000debf29c4960258f6a1e7a37be38ca12c9087d5d8009be30c03e8c4575aff8c557ec6d3fc73090ad84b5650c69113c3027a7b237a1485dcd17088f5a5c20ccd24a471900d411928d0838d013d1d9a79362cad16f0d72be3ec19bf0517fd55f21a7d66b18d6d0c479fa7968ef469ebff9af4614b4480142a14d1f65de4b095a4371e7d3a6e45d997a3cfd72c43ffaa53351b610108ca6f2489c5b89042a63fc7ff4d025d0c245f9830090a65fbc04053a2325dd3b888082594af0afe8228714c18f2c81dd11cae3667fd42a58946e3d66a5c87b2be49860d73e6ea6ccdd93e3fd90311e2342f60ea34c3f8350a72fb10d1e3714504c2c68ce2801d88ee8075b0b34e3e5276bf9efefa6f5bfdf2edc9affe17a94623a4431808e52508b9e28222acaf2cf26979d2203966d9e34ae195584a6918c4603009bb84909be4ab64c60e98fb2f3ba3ad30417495c8398a9191704fec9b6d43e8d185b85f8b6551378de30af6be0186d46e8bc970ccd54e72b2fef46b73116c05d66743301b720629f18cc2f3ebf3a9f71bed6745f61d5eb295f6223989c4798bfa950e896fdd8e204719184da92816e4bc2713967b00d993765f45d782631a520923a3a5b6888794627766f2ada4a4ad8b8431cbe5e9bb02c0a6a78d96946d72d98a6f906b5da77b82a6e44540c398c270267925033ff5a1b41b0a852a801c0fd1b60ba27f6d9901090aba27ea36b33f10e1cbacc17799ff2c15d2b5d7a4732c882025912b88a059845088680af36dc3ffee3b5a44d290fa1c24d287dbb8f90aab589833c92fe64658d7b0a8e5749dd50341a7fda7746c7c4e98d3a163cff6d64ef6646776f9b9dfdb0cddb634b859dfee5c1a7654eab701ef37654a524fd5339cc7dfa816e118076c2570f77859db3239e070f44311dca3fd6fa5ada63ff88b2dfb723fef49cf3fceaffb65b2e1e0274bdeabe460b84bf5f888650a8824785b7a7809c886f8d54c142029a9b127519636dc07655e9326500cc59eb895b12ade11bade1ce4a51f13d43287d13920bb0cf871b52402e3ee71fc373ca6258f52a416081c8809ae16fe1078ee7b7c7496f1edd7208a69cfb42dc7fb58910250aa1d32f7bb1fa6898c833393622bba48ab9793afa8f60d2174c3a4e13520c43988322bf8070a84499b5a35a393b679e568e5ce6fa421aca48c2823bbfc1a0e953865b4016be0c92cd8500c87fe5ac16df9d8d67faf02ef867fdf9bf28b1e6f0618211e4355f8f31570f5cb4cd0c1dd18f1522881a28a700bd0523f8443dff8e5a409a846199052da16ea6ce9b18237660f0b1d03ed5d7451334296cd9603b554ca197e33b958e801da01911a16d832b096c7c9ab1578eb65c047ef567254f091f660b65bef17404e37d094c981b3fbfc5528d725d2dbec0b963446922bb22cab19a377f51b7918b14daea8d8ecb374d95b0e26204c2e8f0b632cebdc162b90638e2650d6a30c0010d3d34cd41004a0ed2052a21bd3be753b8dd90e8d05610780f81e15b5a81242aeaf19d1b98f4e8e8336e136bec48214d8031a190cdbe4de646f171f6d22f3b6ae513eb3df00a6e59afd40ffc7e4bf05630584fa9e38a7212136062b9d17cedb28e88245e8a8b390ef9ddccac4753c4818143662fa8d2fc2ef229981458487e04ed640cd59baa2daed68987564c493eb8d36b72495c5820ff0a4ac994e032d1bec392397b6050d83becf8f6b2144e57c0064eac8c282ecd846d313250572b70931c851b56a581ab64bd0c72024665bbc4a69bc37302f86b18e476dd0f7ab9fc6708491c88f7e459c61017940bc81a23d59a5204998605b88f6b16251e80781b9f016bd420b337bd138ac9d84c393b70496e4c26b128c82416b031618bc49ad9294d109fd10bc462fe0ce3b68532d5166ef3a73c5976876f0ecb4f30c6d152ae6db54405d413c5dd8d58536ae5c343a396f43b2ea032d8779e6f7700a9feeaa461bb6ed4e564be76c6ec56d69f2218a4dac6880a5711e96f080620e165e53cd1ba89284479bcf9111df1e3a2a2ae9da10e3f31b689017bb275558b527dcd49b55f6c888cc570203e548f66689992338429186c0a300458f01c5ad87c01c91cc402f70bef589466de8e6d869651979420cc997fd3a67272e17451acf678b7f660b80c8d36286272816b0a3e0f79c3b0449cebc5d986020bd9831ca260964c04256cc784228154214efd3cbeece4a00b26fa721180ca1a8b0660582f46562e850a84d5eee4e082a167dc9c0352310bb3efb0d9ab0b0224321e1a6c0f8af071e27dfce6fcf2346be350440edf54839703038c25ca3aab78905bf78d0fe7575d9368cd1ff0284be466a7dbcabdd901ebc161cc340b7ceb7ee48dfa5b17cf35b17f8591b266a7eeb363e1eed4b8a23f550b3d05dd4351eb0e38e9bb71ab649599c003fac7ba21f87b3465fc15fc5ff817955dfa6a22268356e911575ab482938d7337d8976d71945ddaaa2a280f65519f745adb70a1c525d24cd4cc946a4557c139233523311b65ae65368247b785c628aa54e47f8521e879862a9d3115ec266ce179bd135045e04ca4753a357309a19a50dd98c19038d337e0178f80d69fa1d7677ab99a5de166948f495c4db02ccb1e9a6e1d44a455e2130fbcf5760130e611086364d1d595d95e35dc3b099e240b5894d2430a02ffaadb52692104949247269cb4c328c0aaf09760994101c82a68454284ad5fa4df53b7852d2ee80e90ea6f0ad592f1ed6cd96c7ce4e09055bb05a4cd5452391de62da671f688c551576616ec07ef43c46d7f90c8fec6df6a42d8fdebd03581efb1ccf322dcbbe447a6d341abd367a9dd185b961f4d8f3188d1ebb3cb01d65da96b5276919cb675787e5b1ab53faec4799c672b9d4ecbad467b59ae89ba8899a4c26edb39149fb8c9a4cdac864cab22ccbb22d68df58d3a846223d86fd6864da2cceb2b7fff292dd5cfad19bfec5fd688b5fda727d92a6699ab6619aa6653fda72098ffe5d3037d8cf9e87fdecf2c89e34723cd2606ed0de3e0f2b83afe751a3c53126b5def0e0aa9a554afa3ad6cfa7d6cfb736e04d68210430766ac5d59c3c3b75a7cec9c3b35377ea4edda95a2091766afda1fe306b7d9e3a035bf2535254a462693e1cebdd46e77367a7b4c34ee9ab3c1658e89f9e74658f7d96850006f6d9cd3ba56acb255c5559f695f6a62d9732faa30cdb729661d85fb396f20ece34ad94774a7907dbcf3b187becb35cd2b02d63d8dd29618dbe7675e88faecef5d897b69d12c65c4a2f24eca248a45a6badaa5a55554b4b4b4b554d2c9476b066b137598c619869a7344bb3844d7c7d2e9530bd96b3a59dd2e5c44ec7a11f9f5a960fef2d48032f4cf53af3e557f3e5cfeb03ec01fa932b5825d3e94fd7b73c8b8b7d6dc3308b430083e9e8b59bb5afb66c616aadb55e9f5d9a768a91f1a1561e586bad3e60fb3ed4eb7aedea5c9f695f4757a569d692489fe3265335d552a954d2b449af506feec138318f592cfb98cd394d665f7b98cf79da763dac96556dadd7cb9c1c0b821fdf0786b087bc0e6eefe30ffd842a8c9ea5fee949a57f31653daea74fffbaf462a65a4b26ed7afa0efbd02e8febd2ebb00f9c5553ada55a7af72fa4d288441a3dcbe859462c2316161696110b0b0b4b157af0e071eaeb89a53556d49c3de257133a8d0f987ae803b4be832748257a7d467920bda80f3ef8e0830f9407f2401ec8034ba552a9542a954a2552e99248a427ac0f3833fc6886cd390d0fb4d6fa0cf4a10ae679bec514e8141ee5f3fa804e5e1f183e7579dc87f7c46e27a4f028ac2d5f91bebabccbe84f5f82c9de6e1acb67377700e210cc804d16d34cd7d3c7feda9ccf644f37fa2c5bbedefde835bbd1d1e778b565fbd45695f695cd601cd083e967d9571fe8c1d705010c4c6ff6d5577f7da4a3afb65cd1d1d3ab337aedeabc7cf5d7c6e33c8e472e0e5372219d4a25d257d2575225d5fa74d66aab18fd5931527dea67cdded29ab5dcdc83eb6d79ea73fc5d3c1cb77cb5b56459966552c0ea37e6f5eae171cf4a8f6d7962cc9a9e457bd3e67c46bb99c771fec0bb7ef4a4af7f651e2f8ddeaf1b1a8ffeda1c266d3a3c8e4737f338b55dd7f5d8a6bddd32c4f61ff6dae73cbb5dd8cdf1ebead0aff45ad3c715ccd35718985431840915a28f6ef680a9185dff73ee841ff5758b37f78079a89cc343bd1c80c10a8502188aa840e1c3040c4b2cfa334f0cf3302d5fdfe59ddfbc3c49677ef6d3fedc463c4c6f6feec0e310bce0d1dbf7ab47f6333fc6300c2b5d07f4e091fdf9d87cd396b577ef8096f9ee8a40e396cff1f9d8c3fe09862378fe4b91f71e0c3f38cf293f4ca60079c0e8b39f9bd5a636b5cf273cb50be3801eacbd2dbdfdec033db8744100036bb7076c3ff780b3cf7068dcf2d996b31fdd1857d8ecf668f979755abe74755e7ebeb6f15039bb3c146e8179ec661e0abfbc7b920bccfdeae2c2f2ee82c0e9593ec74f2c271696b9b1648f692c3fb1130bcbcf4c63c130ca7229a513c32686615f6d3c8d274629142ccc0370f6d6664ca83861428508cdfa2d2653ae606b74730f1e7d69cb8f4baf6db907ac61d8cd3030f6f64df6661834d030c30c313130302f2f2e2ea7534b0b0b8bc9542a9148a391a6599b6518765db5526a5955d5d272f3c4d89b9e65734e86e9e689ed6769e3e561286c4f3037478cbdcbbf6ccec970b93962fb2c9b3ddd0c9d0c969b21c6de44dd981e7b87dd4c7aeded4ce9735e6973af6df149d9d71f655996657d39a027bbb9eda6fdb3165b1c1cbe3e3fe6a12c9e9bfb1e84300fec71e912122884527ebc40c054a073c4ef1cf1fad41cf27d600e20f18798399c2b40864fe5907708136439e27b8e1c7f377837e810af7305c8cfffdea0a52db940e9ecb2701d1bfa8c0ca6ba21f64e06f5497cc6e1191f9b2969c0fb8d6c4115980481a92ee09826f60b342ca6fe546d55852ec8e108000a0e14e8c16f1c53bfe383a92c1a891439a088e4701ddf6f328d98022316a6dcf580be2010536004bf5f3de65f37f49d7de5f8fe393aec3ae0a5839aa17478d4eff0a8cf79d4e3f0a8af0105d631a1020a1c9f8ad83fca5057a785583ac89ce35038516eef68decbaddddf0b10b0c7bda940dd37b8f12882826a512528c69732c6189fda62a462081540668aae382634c1c18f1c7373395c9660fd5db460e7bbcb02f35d9eb053b0720a39be23bebc21fefbbc83774a6f4b624e08f10eece3fc99129b1f432a506733403445062d18a2a2c4101ca082932ea0b0833228810aebdcbb052c615d51137dc21017995720e171c861c683130018ce29ba3895c890a40b5d884245122b44c8e1064b5089c190941d7c2187f7e06cf4e9d1f4732ef04b42845f2dd912146c96c1e91c6e0a21188c6b6906d1138c00ec9810092521440ffae32fc1e6891fcdc4f40637934baea1409ddf8420621de77ee470ef6aa8517238ef32bf990a27542481452c22248e64a8121ac2c25011e85b4c01053b2654208111801d932986603b05109c6d51112cc515d39314d800c3fa840ea050b101901f2939fc671ece0c430c6161064453ae083185138ea0e00665c0a2ca156a18114410580831032e149163068b10ac4061034305cd176cff8cf6e46a43fc150318ee0ea987410375e17b2c3518315960a0a52c2cac0cb6bf7d60fb314c6257e264b8b77ea85604fccc090afa731743bbbbbbb714369cb3112d29742108bbf6cbd9e881b341c5c0c23675c5c0c24ec061118428aa90020540603294c3399a76363c0616b6e715030bfb60e5aaae66553925ab9861d907f6af02bd5588f2839dcf3c1d5887848538b0d941c981cdcec90d6c9ed406360836d7c04ea80b2c13033b047b85e17dc685f7b5349d0c0964e115c202153160a0e2055eeca0ca0dc40084024b7eb4703244448989440ea448e105203e3bc801822a8610c40a2a9c5891419dc389c0911cd8c00957d8600b2132cce001134df00214809c20408f108e5009020b2a4e50042344d113048926a6d8c0491296302308880f90d08223686183146cc1e34812a2e0c51449a0a8a1cee1908c4869a28a279e60052b7238a9c0112cac2ce1831508399c1e1c9ce0082a616041d01528c8614d38c082065850d1842041e470ef080005c209237c119ee0093e3dc5c4ccad060e08e1cd09c0fe3130dc8ccb7a5d39e87042228285b3a22aad570e578cf3e786e325c0ddc4d0a8810346500d313130a054454231ba93e1de1d8523ee8ee91a7f1971e43819fef166d7444c3b7f14f5efe1c01e9fd0928382f240011d9c8d68d12b875ae547ec6e729c8df735b8f836389c524c865d0d147cb2e7164dbb62e7f409983e031c0e7d8ae9d77037e4d3b7d137f1e92ba073381bf029ad7dfbc6fbbeb06559ef6e7536e0b7acf4e7cd17ee7610ab3ec737ebe6eb32e1fe7ce17c729bdcbc6b667532fadf76bbc6a9534350cf2eecba06d467ba731cb19066324ca20cc1fefeae1748acbb1150be5521b1b04a89bef14ad2fa6a7acc74b377ec6eebe3f7d5b1befeebbe9512cf7f7a508c1fa3cbf7328fe7ea48bd76c88fd21dcac3794858668bf51e132809b817799174a5440bcbaca258964549398df80d90ac94e8d8070247f8a48cdb345201f58d7eaf90bcf795127dc37f66f93cdec3be4d6eb93a22024743c99780c3f1e1e97049ee79caf8f6a5c78fefd3b2f32ba0ae892faf1df6ebcfad3fe799b6ec4b9bf5d6a1d869c4839e081c8e5354c31df0a087f3829c090ee73141abfd9ab7bd3ad577f5f2564a581f1d8ad06382c369221c0df5540b5587427da584fdf8579e48e8e064584f594984c371ce7a09381aeb29ebca8fd4fb407da544762b25ba264e239512d591aac4cb3b4ea82d6b5a3fabbc5391a864a5c473b9028b3c2aafe851a132a7b5a7d39b32c5df9447a5883f2bafe85579532415ecfd7db347f4a6143d2a8fca9be26fca4e252af28a9e9557f4aa3c2a6fcaa34244aade94573433e55a3ac53915ecb4eed49d4af4a6bc29446fca9b42f4a63c2a4ddf94197c06a0aa9f933744a8568f7a44cf8867c41b522f1d4f47d5beb5bc3391b4a754ca27a9bba47c33fc93977ff539fe4edf7e7a43b4bef27de6a1bcdf57335c2fdf85a10f13d3ff6ee6d1ff7af43fe92fcff051fadb9e115d2347a5f7f16535c39552e6503117e6bedcf7d2c97befbd77df57efab27e43d23f241afaa27a46ff4576f88a49fafaf6e7e43b0a32a6fbf3aef5bbefa7c5d1ec7fdaa57bdaa7a1fab27fbbdf79e3e215dd3ef14311762a16fafb7cf88ab297d9e67048f3b510e45f17876a2eb9241f219d137fa19e142cf8837a42f1e77a26784d0e90895988aca120cb146a2040a4ce5e034d457b772bfb95fc5523d244c2cf19b47e5d2f13e9fa8dc583e23bdd6fefabd04d875e80381ab2d3ffc5cdecb7617d955cc5731be0477555deadda6caafcef5f4dd44fb9ff785a1ef3959695455d5b73f29fd59b6986f1a739d89ec1f0d05f35ebdea3d8c75eda85ee7ddafaa7f8f8179b94c50b9e8e53d3e80f8c1953c7f82737cdf74581e08dcd5c3aa6a244afa46f5ee41aff22538fac7f76ef625383ef5fa59fefde9ddf7be31cb57595e944549d7542faf1d2c2f3f6efd2ed8b3d48a1b49764dd75e26da764bc944ecebe34ec5b45e4f9f3e67a26becb7f5d2def82f73f0eaa3fcf8b5d6dc49707d296fee487d0fcf99a0d799b8aadfa9b8faac913813be04abf5bab971dea9f4e64e829d0997225a1c87138da388e9aafe7a1b4f276b6fbcb9afeaa1dfc4237014813a7a7e69b3a3276dd5c748119131ba16378a88bc449cd21e1ffe523e0e22fe120750759294b0f6d7284957a796701cd137e44792576ff9d26dc15104c77797b24677f7fad8bb3b04fac2605ffdfc97079499de3d96183fc64ac61857581c457014c155ac2dd57b2f379f5cdee9c59f2dd5fceb695bdeafc502f9c572f3c974b3bdd9cdf355978e0b871315c3f20870fc186f15bfe3b7100e22f11b0710cef3795c67f440e0e81fe7578f8348c66104e7e9a3771cb3fa291d47113c1ff6cbef197ff4ed4f2929c2ddf1e79cd6427934ef3b56a318e363a3898348d7c48fd78ed1cb9f9bdb276dd88f4642ef591f28f8d1b8696fff6d5615ecf3702cd0a3a1fee4d70753afd10d66bec3d2897e60bf5a7777f5dd5d69af5d98f9d8c76c55c1d45ba0d3c95a2540987a1c4764228c5d4f55583fdb27d5679492a71ec711d5637fd5aff5c677211c47e02822711cd1376211fc9e524570cd3b54114c84a373e7ceebd5b15e5695a4168e23ba269a84589a062446ee412e04c34bbec374d6e87edbdb7d5c05d6062f1dd7613f474f69655996579b8e759965c5afaa686557477b5bc566f9bed9b17d969bdd7447b7afd5de6a315e18fbd653ef395e8354e2f16d5555bb907aed187dd391f52ca69d537d9d6af495972ee97aff680669d8466c3787b56e6deb1e1f40e0761fffe98f9ebd08cefe566fd0f2b77c08ce54c4282bf350cfe3b8ababd38ff9c368f9961b626debefb798ff740df6f1a9ad3fa38f6dd8c3ab7bfe755d18f9fd0fa7c6a3810f1fc38f4fed9c703fab47b51ebe7b35307415c4afbebefbb80aa09311cb3c023c55d037725b9675f3ce09e79d53de3961eba9b7aa392f96f1ba0aba86baa42e05a10a7eec9854016285109e811d132b90603140812beeefcf82491645f001b063820511c622099ec18e09163f180b279862fa4e3a084796ebe2814e6c8c1e4208af9c3faf84d78e16b9036402eba543ce0d6ea3979b3fb6b5cc8f798199413e0defd70d7df349de6c03c619de0c21844de1531e7f9b0ef64060b8e59bb71dfadf93f7d2647a997960982e0c1aee0c37bf1730379fb478b93117c218f43d8410bec71e42086030a69fefdf422a2ddbfe045fdecc03be7cf872ca1c9731aeb03c8e65f6f92dd8577af598a7df6eb6c1fedffc306e3e451a6eb6335cf9de9f679837c615363b691bbd0ebdf364336d86aae54f9f978e2b0b4c9936879f942f678f0f207608825070f6e7719d9607024bda2d6150df803f65f66e79e87d337482e5bbf437fcbe302ff25bbee1151a08142f9e68813ba80adcb1676c017f7651e4bf7cb7bc6c79b8517f1b85e59b5afc6150d7c897d78e96c7de37f8392f661b3dcc56fa978df42e9be95b36874f9bddb24ddbdc0e3e33e3e1387b7a1b709e81a3c5f27ded7823bfd9867f377fb4b16e30d53b8c45f161793258eb59582e4cf5a697df43fc68c3ffe914e753edade9c6b8427bf9d79736d2f646d70efa3adacd30fd16d21f89b0e18e0dd47de7db48e7677ffd0e9049df70f8fa77e9b89c50b88ab862d23772e319a51b36ec2b9fc6c0d7e79d1879270696d77d49bf1fb6e484b89a1732e91ad9310d8308d4b91bd1a377ec9a1bfe6ed738ea3919316eef3dfc78bbc0e3851a21b682c660f9258b524a529292cf037dca3a551e766478d8916142175c5a4eff0283bd7dcca4997ad8c77a905e0667555665f97175614c9707097bedb3ea59b68cbd7b079c7ef4395e9d3ec76d95d9afb6cc03ae3e5e10c85ec36c3ee5c7d58521f5183df60ef30043ba3c46da633c60fb0ef380b5af32569dde9aeee9abab73fad1d5297df5d8b62383abbb23834f302f2d2db485b6b4b47c8bd6d2d2a2692e2dd7c5c545d3344dd3ba30dab20c1e3db6651e30f6a62c2686e55b329fd14c594cf63159668ad16e2e3df6a68fa93f728fc990469a367a6dcb32581b699a8ccfc8b8273cc8b878f68312e243fdf88d7ceac6b8c2523e548f8f42aa97793309aa60eac76728aa07f591120202214a88c3c08a102e8c4a4f6af996976779d3e95daacf2e4bdf6659c55e9e622f583dbd9f0e5607ebf555663fdb60280cbd3c34ec07125479b9b0b72f2f4fafce891282abb75bce5eaef39996aff7f4ee5d4ca70b7da6e5661693a9542a95ea67f5b3521d8d46236badb5960b59cdbe3e4a485f3d2c25c4075b44302524032241954a9650b2849225942cf132bfa6a0ef2575055a79597895a682a117f90cfc97ec45b12f8f63fb113e458d4a26961abf54fa39ef7c962dc6376da58db4394733da9ca3893747f899879296b44fd9875f595851f8952cc2f19d140f7a11112f22626b3c1a1ecaa5702297c28b88502e8517514ee4527811119782a2a4e81af83fd0fbacfba875361c7ea7937d4de4e97336fadd6055967ae7beba6eb05e7ed4b0ea4fd9a56ec71f1ece7393de7c8a735a1fe5b4d6d4fabdbbfb9be1452e4550e6a322985dd2679edfc16f869a68871e824dd4433bc027fd756dd1da2c8bb202b378559cca0e2dd4443e237313f97535d1d43e632f9d0847927d6d738e86d24b1f9eed57ba0bbf877ae8bab21eea21ab5a3db3e3430cb6f24e9730744f296c4b62f4739371bb92b013d09e347d467ecea3b1665bfc6b746df12d09684f7abb8ddedae4f7152fb62561adea34256c6dd597b0f5a4edda66751aebfbbaa17a4bfbd14cc2bedc7468dbb5d553ccdb6b9da6a9218d89f7900282483c235ee40df11979e537e4866ef9596998d5c3e9fe7034d8cdf669b1076769b4779b2ddd7cc27e4a0a4feaa15f1ecfa8af1ee27975b49b1b6a0febe5f1ac51d8d5d17e6a57473e852775b5ab3d232e4dd3340dc62f91463951b69437437f46083d2142cf883744e819a141a121cf084d7321071fc7f4efffe1986e0f2c1f6fcba389a3a7ee3dd2e8abb79e3e75b30c763d44acb1b31eebe13de9e639b3bd14fcf1c352f4a9eced867dff786fbe97651bb6c1991834dee90dc1469498703368400933b49136342415637433207c1a504649adb03af129ec95c6cb979b359f56ec86596f86f89a8f55f3abebb75aa9554d1feeab23d40a1176c18e89952798be4a3d814e1e761c8de37d347ce655f7fd31de4ca33195e94b88b37f7cb9c5b8e2f2788657c7dd0c257e6f539ff2a857073e85e9bd3c8e29a481a34dd7448767d0681a44d0a66f64f736349c4dfc19361f299baeb1e99a17b779e9e670dde8e7bc39b70cfdba41fea45f37fa51878f9bf3a08dd5f409bfa9288451ca19b3faaac7c70c1774515a7f86a5905a9bbe216dae0de5c535298a4671d2bd63edf161512ad56173d68acd5aaf37eb637f6df5c22a765df3bd4aa152a8142a45896a5114453d9d2c1f5214f553c657596fb95b3d3ea6a543dfe19eb331ccc23ec71d9b3eadbcf3b07acd48fdbb669dd8cd1fe8c927f7fcf2697df5f9efa955cd9bf1d57209b6c70745a95094880a51212a056ed9f6f870344aa6c10c7ea6d12cbb990ab58fa5de81e0ecb5b79b96599fad66e9c35aa9142a854aa152a814b98585d55a6bac6ac5b09655dad8744dcd3e6218569fc775ae1863965552cca3b737d3c0f55f781c62a4985d1eaf6fd337e2c3bf369baea9d48a3757d7e66d6c7a6cc727585162850c5770ab003b2663a082b3faf2f6f89094aca2030496dd54e75a046786b8aa4375e829d57a7cb84f15ca5273b8a1855083af49aa611afd4b65f61f5c7d86597c48699f9f0fa6965ef82f99a2946a14babd79627a3fbb75a86fd0a71e9357ad6ee925955b1dea9a92cff4166f1dea1a6abac01d525e5555155fdc5c25a5c5b1aadc0c171463ec1bf19f3fcae7ad56a597c7e18c36a51a89409ff7f890514a973d3e641592b58abbbbd7222965257229a59c2f32c39e57fff2e8fbac943eb5f4a25f29adb552ede9bb9bede8dd33d2675f727fd236dab29bb1bb73d2b69d13b5ee4f1d2ad52a680c51e07b6370620c488c6108b6c18e891642b0c7477c559cd5cd37f440d8e3a3aaaa474929a17cf860f5ee5d15abaa9a5f2bcdaeafbf4347526ffd0bfc4c62188661f633d2fb4bac626df4a42d43acdd9c5db75db7d27bab529d571a56a2aac787fb54a1aa56a9445625ba1e23f268e474224ffedc4e7eb3ff642fedc319fdd07e56d56b5bbcf3cacd1fbbeacee9f4acca7f4e75a80ed5212497cb25401a8e3ae76e8f0fe8208e9b8ec3bd6d0e5311d2a0813dc6fa39be05e716e30a1b6d6c6c6cbac669c3275a40d10208d32cc6f99ec7716f5a10c13660c7248b2a42591cd9b2edf11165c2f9a838292a04df9cef2ef722df9ad71b691fec0a7123b5deecb1d13b7ebb553c21b61956b73a1f9377c75dc1f233665d7747d6a1f741eadfbc3afd9247bfa46eee87f71ab12e7d86bc37447ecbf52dd444a492e93d16ededfb7defc59f0f3de9cf21b6bdbc3b593d3ebaabb80c14ea1befada2963257875a3df4642c9926c27d72e9edeeee4eb3bbbbbbf710ed0b23f3f2e3ff0340be17ecbd3c00dea55f00e473777777bfef752cf9020080fb6efec075f9101919f9de0e2df4e2f3b8ce8bb790eca2f8ac97971a3e37510f35118ed4dba9efe5df67895fc48fa2e11fe56cfcbf6f6763fbf72fef54e6e5f6500b758dbf3c56c376fddd46bf6ddaff661fc6c6f2346cd9cfb0993e662b3dcc467adfe2cb8bcb3ddd3c5bba5be4d5a9de670fb975e365f9cbb75efbeda1ae69f9de5aac9558df1857589687bb14713f691b69767327a3fb46f93a96cb2b7b68871ea22e1d973b8e0d6fd1ebde43366c4e86ba7e9a82e6bda47f6660d5a7aafaa77690ac5db43cfa96bda39665d14de772d6b2288d96bd3af42fd2bb65dd4ba41cef389d45fffabc531de6fa51d554f599f64db5cd92da4995936e86da5c426937d5dde3c3b54f13c199ca2ca7befaf6a1a295f54f65f50fa666cd3e5ab1df772ac414bd322aabea671965b1f915d39bbb83c8af9e7afb412afa117690aea9be835455ffd40e6255b77ea66d511d44eb91152ae58868f80d94d87c0b661a93ea4ab5c3f35d4f1df5298deeee3c1e371dea32f738fae931b3c95aa481e7e8f2388e34cea7e685a16f3da428eadbeacedac3cf34b0f575d61e36306bb756ea75b44abd4ddfa0aa6539a218a3c53d3e807033a68e53f152d48cbe41bd5503cee8367dc37a3873fdeb2f8d97c7b14ee77a79ac2df796e98d3ea36ba897d78eda6f37ebb3edca799857f436f639de1726bef5d0a66f500f2db7a19ebef5cea62f1d160dea559bbe91e5539f799cfa96525e1ca96bd33530ebcc09a6aa0aa1424830e72ffb666f5ab53b2a850af98d3f7f1b7d5adf7baf6e3a97cbdeabfe4c54ca45fa265121ec5fafd7edddf5afef79ddea5d984bfa7bf499a869cb8da5f68ce41d96925fd35715cb33e2a6d2255d23525621f5aab2c787d3284ea9bc289212794585a8944985fc76e5fdf4fd47917aa7923aac17ade8bf8ff2ab2d621a11ea5a880f105b2b95d23eb472577cb0fd0cdba785d429c55dc1fdf533599fd61d7785722a854ae99af852a4a4421053294846cdc285aca27475e441c19446afebca909847e2b5c3be3f8c6e1aa994a88ef8cda523b66c28a62dab9bfdd2e6e40d4e4e231590cc95129d2ab1de6e5658bf95be710157133f7ae171d1839311dfb7b62efceacecc40ea0727c36d31012a4754f268587660c307e075f099f838f84cfca804c7df800f0f87faf83f381b6eabf168e2535bcea3891246ca67c5715c7ec4873f88f80d1241468e785010229cab85a48827d80a8e41a28831422438bedc1ef004275100f94d8c6f480b70aed108bc438c4ee31fdd862d009b7b341e3fe7e1501592771c7ea893698bde24b00fc0358558cf300160195c91d8cf33d9cf9ff170b09f5f0387df5c37d5cf59810a508f01e941a57f6dd0ba8e6e75730fba4b871c3782cd3378cef88d23c2f3690543a9f5338e5355993f03070e7e43e1f914f8c133ca4352039c69e06939a10213930a43a2c0935a558c8cdf3c16e0596deeaa5036704734296205459c0097aa2b10c2caa272458931468b3ad1c427884ee783c407e8bd263e44b6263e29c0b42b59bdaeebca2c95f8055b45d1eadb9a100105974655d3348d549f734d88086a4284125ca2503421624853509c7b5ada3c8a47e34fda84b07fcc0daca44eb09afceb332236bb20ecfda1156723018d730c1bd9531a45698d1a6f06d2a7ba1ffec87eddb4a73c116bddad6917078d1a9c0cff8b059b5d108d18d8df3fe76b90b1b1c3e1f730fdb8064c5f1a3880bcaff465c7fdf7e57f63168400095668020fb0a042922cfc0f6430c4911310110205978eeb6a5cd0e1f5c613b1d5d3fd55c4f4eb0ffc7e4461054a95274541423f827c9ebc7e35709f4e926e0e576bebc0c3d675b8f1dc6ac0c46f1c2f0d1de8406df6474f1235c8c2158ec881173618728118fc200b21313cc1021c401c1705218efd77806874931f411ec50f24d8abc0d7348ac06efd0666fa8c1d621f97c0892c408124882e50b92287ff0e0f4703448041510d9034b1c5951cfe39fe38f8bbcb07cc07f76f2e0769733928289a8fa6b04958f710bb2644f850e79c3b9daca5a85c71f62a9e3f48bdf73e52d4c347bd072f44425154bf9bf62544eae5ac9555f374d6da783de07dfc79f1a0a4d4a14e27eaa353b0674028e60c84134a0c8a25e087dfd32836c7b81ad880df5b978e376b1dc016b450f2450faea082941cd96212ec804a111c18f9398203b883bb3f1fec35c0fe0d7077f7ead2e130c7e007a7754d801001bf130cf164c69521084fbcf085129a90841c10a00a4508e1092b147171041144a8c17befc1578568420ad87f9a4008f68f6f0ec1e7824d8420e204ec0fabdf2869429d81bb813460ff233e7b80a0051258d0441642b0d005de020813509852a404a21cef0d118426f0fb06bcf71e9c897998020c033bac981732082045c02e9ec4320cf1dc84f30a12ca5a2b5210451660b0a30b2b51f8b142c48f099d454561e5604259c1072b932e8482bc8c128eb3838b1f8f860628ecc48e491751e013038680529b0cf1634b2cd831b942030cb16b32840fcef68550d7d7e1c48b01a779d4cd02c0ef7eb6c10fc3ee2926c475811e9c8c19d87705c152d8691802f90c123e83a5c0f66b245ea0d6b99fae49114a9a1401e4a411195080b810932b42987441c41523b2c98f21ef04f3c70f7538d4d1bc77efbdf779c31812d695b0fdae041b0352da5710ecc31962a7c3c3917100fc1e2600bff73ebba218580bac0e8fe1cd2e0adc9f297e8e85174bbc4872a58a6b628222dc8ec99522dcdf44ed41b89ddc8263b2051351a478411319085538204289135c04410b2e801a17ec7b68431331d8411368d045117c72f4b79587f3925861420c531419210c399a40c514477e14d5000551c8d1df450fa7c7c810aef841194ea005d117399a883261bb887a4a07152b126c6ea1f92de4374dd445b376a4e2c7cb13b32fbef802bb7fae87720f9f7a56ce93db7bc7435d3ae64f97438f5f0f80f1c5175fb41757b06b420410aec18e89174ee07ed244453ed3ff3d4fee77a48ef8d5d618525b7e3f7e7814561c4a157f525454258a1fef3323a46b60cad5d8e0cb7be978ef9ef6002790a8023b2665f8c1ee822eb04e084382cdae08c32d747d61b32bf2abeb0c2c10450101f5b7cff3891b7838d3d1f4cf398b6691908be204c53e916e4ed7ceb573fdb285a889773cc852f16011845105563873a8b0421c7ca6bffdf9133ccf78b3fcea33722b55795ddbeeb7f1503846778a88cff4d322d85c4b3243f7d5674a9d7b24c6b25a9794111e30260996ba79c2bc1edc8367c321ea6e5807a5ba0d46159bc39b38f88cbb0d7037390f0542c15de8cfd6b4befa8d75ad3cab3b9f8cd485389de33d32bca628dcee0662eac1bca770e31c6f183c0ace7ab2eea7dbec3b7875dcb5d47ba5495118baccf32aa8bb83ee37872462bcce697aa6676670bf98246c3f8dc37133ae090438769f0be08de34de3fa6fdfdc9e71df2f2f79849b265b01c0ee73007077a0bfc0f051ef5130ca910b085640e7441545aa2a72206b34134e4f28288290f285224801c91082c8c20b9118702144144a48418190f8820824c80afa09b1c51348e0c0c9114f30c21309f8c00843b8f0c410558c50c50faa8a1350cf04de3574e860094fe0011952b0c518b858027e0f8560027e572862074cc8821460a881108c10c50a48450bfa8278824a2a528260a47ac2a43205152a98c271991704ce3522113868a20a19b030a20c628072841142aa20c245941c7906173ca0b8785cd40053ec987031a408ed6ee7fc47d54bd3e46b358dbffbeadaf11c7643ef76ade7e6ee0e93500fec701ed8e13b1e86106ad7e276f7e75f399cc62de333aeaa3417976d4e6b4f27f7f99d8c7e455c00c990c079c7095547aa235e1d896fab80ba064e239512b2dd08d4f90df41f660622f760cab7e041f9507787ebe66c7782109c7926fd47675fd85377dd70c2b61d0e635b7d774500c2c72ef6f0fb2fecc2e0e030f63b1cc62ef611fbf8d89dff3d98f6d71e6ced9cf06c47f5d0f6285086102932a412552228fe03a53e7cf7ac3b95bcda55a80e1d498284de7c82a2e466abe40475a80e9d000a1454fe4083468c30c20821f572eb1e36efb7d2c9a6f47a083bab7d70096d1fe8904a2a0423845ec17e7f8a9b3fb5611aa5915420d6dfa352da003eeea352ba06c2dc538158176744825ab172508baeb20b9b7f5a6175aaa7707e5cd1ab52bde59e7a67744d756d2c6759940c5a40aa062503b52c6a856d9c1f37fd07adb7e91a7aa94dd7f40c9b4c5d1b88a790a0215216c1f25a791dcc42524aded95bddc266079af20aaaa2dd5415ea1ad9b20ebdb6dc07e80812a02348c60014940594b216c931002551b22408c915b69b7a9944c992a03a5489a40442b204e848923a548528f79143707620db40724a39dfa90e0555a1efdba7afb3d178ce8a4553d9d7522e6c7623efa255acce7c8acaaa526aab2fdf5df4d2285de31e00f1cc79541b6924de5308e437d1410a0b87214589286ac5c6ef06f29b2ab6fbe553ffe6bf77249ec46fa0df58544ad750573c7947fc8a20fcde91f02354cabc348ae5a8b78c0079a9e67d69e446202ae521a9a4c4a06e1f233e457c88f80cf111e2d33f325e79a9be2af7537e25dffa6babea4fe774a80b727528e71ec4650771af3ad81fb70e74c599a75e787f82fc04f909f213e42788f3f9c191719a1764c9cf129cabca04e9f609f2b3a4a9203f944f909f2541288a825fc9c86cc13e377f82fc04f909f213e4274810c602274439019f3c271ed4585e286f2bb972f612830cf2f3f5125272bef5f6ab8f35b01ccdc0f28efe7975f5a5bb9f27b62ced3a7b3388adab336f7637cf986e59b797a8b49560b904139ba78eeeee861445f38c1eada48b6ae4bc25a824bd442ba19650d22e895b4249172dd1bd44d7c09f8173e39d8169542933fcb9922502aa35a8f46c57a53dea14a201000000004315000030100c0604c3c1681ea7795cf303148010879c4a705496c9d32088414a196380010600013000220033b44182007d01963b6fe8573980a76d8f8acc7a5c09133c8fc9c7d6b85e055464c0cacdc078d7ea3d052ea8755e1633a6dc62454450ec1c3dd09a5510064b06027341b1932ff9864e0e354275ff0ff548be0100e14e57b7602f3fedb53445321fa56a34750da93ff2913ca136e8f2753e63eaef5bda51d5c41affa5699250df8cdd53acae2428b46df116f19e4edfdb3f25166ed162b9ae4ced853c3205ee779fb6eca0d2d034e389662108c943806c65bd6946845a6ea6cc79fd47b7e4fd919e2777f8af639e43482b670e3a88db249412e51057e6760e219897970040418bf3e4f3616008faa00d3d5b087dcbf0b7b779864e85ebfd5dc2cd41075a7b06a173b5fab1a25afcb0f94fba5268b6ed00ea3ad91d28b9fdd3186c2ad1bdef1c117ce6b773661afce6525db0c011178e5cb874c793a96bb1612f33fb20111116476b397ee0da07ed90b0364996f62d220bc7a8ef5e67e93e8017adb5657d4d62e6830551212382b9e347eb311f8bc013463075f21f586dbb762416183ad9c312b67cec94ecfaca098511e4dc56048ebe2d7512a024c44a7f7a048758d246bda25030b43ad4d51a721b2f7c8e0082557a10b5adf460ab35f2dc74cf89232586dbea513c080afa266e5a7c6dc6982ee6de87c29b3567d472b25b4e36c3b422abcbecac2311b1af5649e639d84a635a8db4527c98ffb93115b35f5091a9d13bba5084bc958f627eec3cdcd0360d633f60bfdf484685d9900d279d705de60bc970c05a7c90e66e6559e84cf0b888314b6078516828d501fba4b0aa450c4dc572a5b8528322734e31ee21a1e3cd1a2bdad6a9f3bd1fd99a7cd6df8ead7fb179d8179a356f5d6f605f5fb2d4044ddc3124b5d503b1e3e5f58cf753f0522cb01688d8c93b818d31e893d871a8c446666d4c3e68fd16b37a5cea5a97b0d18cbd06be8c5677f773eb499a9f55ee3c857aedb69ec7a2942a8031c884257f863b8fd895c1eb3206a5654cd73e2c4d9f48e0e83e101a325ce59ed89f157ffca70a93663e40c977cd785898874a9bad5024fdb9ce284a8f48451cfd00a5b81059b77f1e3545b7987d801179ef949b54a25b899b80a6954531f0b6cc953fd325228f1adf538da2f5305d101cd0049d14375c57783c0ec9be2cbd2db9b5e4399cf4dce9a0f6e5dd9bd917b825ce49508536d5a6076d770d958f294241e56c17be3b5ec9a94a4bd535e1c61f8bddae4c6652c8b8e8849aca99ab7c1436ca1d43e7716e570a0cb68f03b940b82e719f42a91a7b7f55b6c0f0e073bb17c26f4546b346ab32d948f8e625ad89fee23c8d0e8cc535bd055a9c38c3040347a805a283eb6d2b691e4c467ea981ed037ec87fc1f00c61bf785258678b5e4a4592e6e67488cbf8245cb96efa9c73a2718abfa7e7ba00917cc4c9ff64c5145be8716e1080191ed3064a7e0d050680a00410ead6d052af4e579a24c4fabeae2c7d3d660ecbc32404f4984828ade04ac83a7817697487a0b517b9d6db5b1736ecce869644fdeec64a93478142e86c5ed11767e8d9ae1aed75136014a90452145888a186fcf39e223f1708a7be7ec215ec5cdac375db0a0be7628a341aaac6fe270b14a9df7c1882805f9df1666d870d749f5cde061ea0e15e09bccdb509d6063ca4aeff4363d12be5883d848a73b5ff35b13c23418c34ae025fdb1e9ccaeb41e0bd7335c89a7f6f55adc7bce3b9ef70796bbac7cc019c5677456b10b08b5e3f26acc4a23693f840f1c22567a37a0d83c5443503d8f4b000a9fed3c229fdfb88109633c07e6bafc9989d984704248d97adc9e7e3053761997cb3cc405acd64f0c4bc44c9ad6ff2a3c59851d84c7c35292c025b4e472a55806195274e48f2bf6c674cd5df0f32dea28331c25f738628e234c3a12a1a8a2c1124d9cd02019e2d0e8b31f807f938216810ba91f891126f948ca76a341606de476829e9fbf0d752971832044d07627516e2560c69284312bf8b30f38e3a5754c60cc9438664c113804d5952c19b83031102ff2e7497a4fd4d9f8623f2942868748fb993aa35dc43d2edb386dd7ce99ea81aec4ab45e0883e9b31fd74940f46de48e010a7e22c21c1c6a002ce2da8ebe607e166c934e004a84dac20ce4ff94cb77ff47009eb22116b03c099e525df025af639abf841f5bb3ee933140fe0547a8bc9db86ef48e8e01fa3705c139cb7de7e3c901c0ebe402beaac823d626f9979958f22a0f25ee4037c2f7888822a53b605b8b6ac8f6492587487f9597d5c4c99b970bc14425702a29e2d6ca0f3adafcd57c4984098171b093451f15e0bf7fc8819a44651fb666fd56573dde60c8990ad836d2094af3bfe41a3a8be4a8c4a09786eea0ca2b01c7e6404bb79faf6224949f430b3194022d7a82dcd7ffeff08ed02828c4d60b4baef63dd61ed1a1f7a02a70f938b86228a956bf7c904d37d22d0a7c90d95e6f839f265c26af1df2c601a7de6717a4a13db3ec37af22e93112e1d078bd63d3a3015ce272a8bc996611247cb8b356f816c91853840a143d4718cf1c7cc052371c60d29b9b815a1d6ecfaa9be2e9a74d8898d50c4a9a618256183b443b64f7252903ade4c18b97e7651ea028cbc2413f4e36218800d079e238de04194b5488942d43dabcf66ad1c5ee7fe2d57ada6dc98efd3115f3e736b1808491a0c08528f462f608450f9ec844eb2f0aa96918174b646f7d3a62b5ee8cb6eb565c1c6989adf92f1a16768342a5cb3ebf22512888bd55800f42d0d269372055f5536a5a29a9b0523f18910a05710650d9124270d7e3a59a10c465d2592116621cc1619f261ced902b7ffbf3a6f71319f686d843b6f6a03e30903b3c44dc1aa3a72b4dc0ca9de63e8b3e961c351b6857575785c295923787d9def1c7c9f368d6c05c5a111d94933dfca94c7f81cb1635e20fa7f139724a9180f8f2d88eef8ef49c3492b7ca8e1047d0dee390c7b3b9a4bcf0239723bb64051421a29e522e7825decb47ab7ba4c69666c7b205547631c72532755428019c4197fc40e3b1aefa9db3622b72d0430998443fb52cd83e2087a576be5edbd22206ea233619c0fbbcde6e30d339ea1eab00f0699dd3ed0b37c1dd841f1ff4c3ba5a9de72e550e12855ca7eb03fa6fdb27a84dc679beea8fd94be0009a8970a943eef3cbdc299dee0c15a8f65fe517903cdc7a3b71f0d3ce18e02a97cd23f736a142ae70f302dea99171f6f80fbd221f34f45ee8b6f49903850b52886a9d8952e6ce4aa7a0e00b005fa3502b09f5e7e3aa3e5e58476635f50b085bbdd4ddbb47b9ec638f20483f3d1a7c29a694a938c4b5ed0e9a79645fbde40ad60376d28bc93685b8c37f49a4ba4d4f7656d704f9b7af938800ce1af7fe9c89f52d34eec981924cb714a43d6b854a103b9883e5fe7ac12d58fd2036ba59b7b4afe2ce6c45a12b68b123ae99a3da0a237cda069e02af1b8edd0f1082f1e1336f6c69f3e3c88ecb8a7901086ad20ed9e6a55694cdf91dba89777731633248eb0cd3a6c7f504d5967d593eebdfddf8380296907dea33dbd68e52f492a12d5c9dba9bd66354ee1873cae81b1b9ac21742f0992ba58cb21b7b3f2f8dba978f399fe8f008e0ddd0d1d7018bce4210010427cf17e1a49ef868640c9f4a5717c138168148e098378c425ae871f42a2accc9151a6f92e8815a0370251aed0b393b2de3b8d9555e41a010d9482fbf0a4f3efc02453a9f33ce39c1852bde30c6abc021af50b395569cb6dfc1e9d43a5e82834073077ea727a84d6f5f471a6c023c937b5ee85f342ca230df908c1cd83b7db1220ae34b655490fcae81c2d7ce53c2636e547053e98eb911d0d42a5e31bfa5b3da6977571695d05f4539a154afdae3e091a4929dbc5cd105e3ae5ec1b5daccacc81745d602cad5059024507097e85f1de94ecb7a2f2d01a6f4ab24b71d334d6829d2513dd37a653b3fb6011ed5a89ccb0e33123047c0232f780df391065e6437a888f998aa1b4f02b6885b62017a78b4095dbb4a190de189685465424a1668a58d54d0ea1fe23f8f79251eb4bdf7a89e09b5fab072011b4913b2a47a83060c70f5dcbadc8214a32d445144cc8c0278134725c3ba1fed29e4a0fa0d8c681ccacdec4a1ad72ed934fc5dd9417d1091449c8ff435139bf6d7b4e335e260e0a1096c0f56bb56071f30199936ccb120c7f200ad5b35791041919446a28aa0cb9dd003fdc91c86c19abe025d8c9a915275494b88e9e9ee0a11629afcd6352dc8b341923a091b1080e1dd087ca699daab36f25250d358318d9100eea792d5a5e9cfa763388a069dfbb17f1b3b3320e665e03b537e682a7a8a47d2ad4bf5abf0c046a3a06aa26dca090be7604cb16f364686afd1d78ecad14f1de703056e9d02910f0068902e400d402d411ba33c2c5751b9029d4639f014ee6e1e8d544e14a32911c6a8272bfb833cf0e0c49ccc36616a97c7aa0698e3ce0f72fdd52a70bd50bbf9a6964fc0209f4dcf26c0c71a3bcc7edb6d0eb8a89e742aa795304d4b0167dced285db447038578e17d3ee2bccbb872dfd4c999f8d697b95780f64b0c28398c805d63c12874ba23694393e6f61571a9036c0601f5dfa67a0734ff69376837ca7796f7fb507ea8ca79927ab4f792b4258671ff74e21fb69eddfc9f4d50eab3c9de5af5d2614ecf0bc5d7f1f23854536951f8fe7f22cbab30e6d60aa0d17bae0fe67aabde338f6dd8b07effb834a767e28c0f6e3618725c0be6f80960591623226a84ad1c838002b53764d0920b00f2a138544daad320251f6c1567a42d58c73a40294d5c1c3e7b61088e6f75320b23b5eb72e41f05042112338ef0196d8437b12c5424e8762d6946638ce10b35ba07aef02b0636cd2b949c925ed45ac703b36b949af829b36a6a5a4c39e7dd56a2e0e1807d347730e77e06254c2e1ed5e97a9cb7e4e9e01526721856c03be86986f5929294080d03c370ac9abc5d5f17a125675d5529ff0424a6f6f280e62c424c60ca90395667150eb31dc92de7be84325a10efd359f5624b3bc6913447bbfb58d4efed2b8730a3436a5a8f19449179ae87e0d3c6c239aaaffc000b699d86455de8cd19ac985ac897a0fa2a555f96219d75991841db1498054257e7e7ded89c12101b0b48272eb00c607a76021ddd5a51239e4154e691471f88520594771ec008b01d61e1160916334b64771847343c7a9cf481bca79113626fd64f879a5953eb0b129fa04a06ccd9d452a95eb04b28d44193794c4120a51c26cdece40a3e5a92cf2a1615acfeb02a75db7375f24b8b872508c1a1e5e322892fbf999a854712be87a999cf11ed3fc52f50486c8027908d0d311b1c4712fd4019ab9420e6582bd26a92670b728127e0300596f4e478be6be59374c97983dc2914e523e9776cc3fc3a2f3dcaa7a210ca4bdf8a2a4acbd46aa7e8edcdc58165abf520a7308f2d806bb21b2dce4a27fab54f123a168ac29f1b108d49154b2e6d8e5fcbb748f9c1617b0e8e7ee5c773acd00f91e57693abe8f1e6b11563ede30202260888a4ae57b00330424671cbcc01708ce35a3544c222c0fbe1ffbf016d22cbe9588f89ee71b23e96ff4b2aee85118c36955918479f1efe08444857d15d51f5f35f9444179b9c3205906aaa37903a70d3e484918958972ddb9191555024a5dac70ae8da5a0ce5b5673f7d55d84452079e455a9984b4f4935c491de1b4e0ff5b2457a5fbb56c8ae1fe6161b90c2977004c689960c09cbbd32a26daf1c9c0613f38466818d88203fd0b3aef2fd5c277ff4eea7fb754e8156f07a25302cf0e970a28a02fa7b69974d1cbce08ee5706c32eabd90544a075f9c57892958d14331aab2b50bbf52be195ea3b615bacae14de197f100528083917f685e7afc0a0cbac1c076bf770c00fffa4cf9170918121febf4fc798bcb297a755d2fd326cdde25708bc1e882dfbec0c402937346f79d0a301c007a00cbe384c5962aaf0a49f3439f19cd09b3828ed590e01d0d8b814288dd061349406b8ce6d31c99284c0d7d90d26255bd25dcc5d2d8a5cb0b1ad0ac378ff2e7463a113e43602faa2a9a82bbb0e241668e4ed4e523259dfd22e63aa0dac6fed8a1855ba2824c4cffb89d910510135a816f24adaeb7b37e8301a06ed07d68727f1958452ff09f6112c2af62dc78ef30899cd53d1323f96c34354039fe6ac1916785457897e2cf1138029935346cf8587d796e94b30de122d2aefce8c8cc2d6b179f91f93a3785cc6dd4bcebbda216137684fe78db16ce6de625392a83d40496e719ca04978ea92bef72c22f281c501a4fb1b06c4ef6215fa9f57129cb13527b762063ea69a2c19bbdb23085deb22532209f67d3e2452341b951725f7f0a7104f6d842050af941fba92ab595bf7dbfcf339ccda14fe1646e2108681c05fb0bd838ec57f9e44e4512999d31c3e92b23d3cbc0ba06823a5122ae32a153007294d796154434da3d895f71058014bb14602b9f582314a8034a00aeeb81840a01789667b0b566bf32064c9ea239805e66ec3dcb43de57e01b67e10b9e7b255143dda78bf8d0a65f1129245e1884d0827f640b69675b315f1ba1d91d5504b3c765a93fde2befe7b51c461cd681657fb05aafe01cdf8c1c96de372ca1ad473f06016c68d0b3d25b247634f6af0626dc49eb61e6d3f093dd1d85d2c5a7da15c944bd193017f94456801b89862c7c4f04ee69fff27fe1205a510e0883c2ffc15f75d66fc20d5394903da7e0ac28688cc455fa39d122b31efa6bfe67893982ee50f3a8780797bee361c74b0a8cee3d698c4c5c3e2a5866000ce1cc19275dee9c4dcf37d9646a3e069083f930fd8c3b046ccd940180cfc2240102a0320347516796c83b11359ea5425dcaba29e5d7cfc45fe9a9367d15f4db9a0083b624da8c3c1eea0a828d164726315d00f2e394e4001b82ec6d1ac3a50b22918ce10ba592610d0ff3061d98f3aee349e3bcb7eb95c8c99620f610567123bd7a563ef8c3c72e3263ebc890a115a110e371528db7659fe523e56584ef9207b4c6613162f6ae57bf0d99dd3fcd80f48f30478b1f07067e943b5971ea31173f2770b09c33d440a6b4f23d6f8b280e2424813b2f7c403208a9b57c96a88a7a3420059aeb7e92ba35e65cbe30c2dc86cc7acb6f6a9602e20d21045e790b52742b331e7cc9f20d0cf67fd7674c3d0b693c6aba45db8247ef39da6ccf9bbd0e356c89897dcbaa64b5b44f34ac41f852466309a24c406ffbd762008c8cac3956d22f76cbcb76588236b530d259bc50c2f06b107592be7d3c6394d3f55c1b01755d903b083166ac2528640a8ae81fb0144b3fd99898a87787bf830189345164b0731f12130b822f48263e07cb248ee47480926cc84b0c381e919b518e784086126cce18f058566182678f5c813f3106d06eb1ef98608325b61fc0f4e6abcce616396460870cf6fba39e108f12f657b30c8473c323056136bcd5ff39c9cce0e9fef33b987f9a7155700687f99fdfe387e6c82c919141460db6cef622b487a80294f2c1e10d41bea6f531c44ce09aa6853b1480d51142cf84ad988b3e0ed135dee50bf517d6a88a68964f3ccfb08135c38ef2a9290571f49062730e1393eff812d96587598057fef07faeb84706aaa45ecf28af84d46f5e391334a29f5ab390714501dedf0fb3fbd4694aa9921680247ac8772ef4f15d5d36d0a90605dd31f95ec9c89dbedef275f9b115cf7051f1334a0cc66a27f2055be6af8065ee1021c3e6e3f079986372e149fd2cb4500f17fdca43c38f760ad889fd95593c54dca3c104525d469d28bc11e3dae15b44138c33b00ca8169db145e8c0b1ebbac3d9dd88c241a04c04c318b44757d23dc8c5a8f0a1246bc5d46c6f6aca5678d89f5cc8cd4d86a02d187f8613eb6204ef5b0b2f3a35d81d483f70170f05fc9578f1e6849bdc2188c2b55037f63de9183310e68ddbacc4156adf740b2a47142693b632688b52c2b5e2df50f6dce1dc07beeac18114b215a8c07e17729cf244778ba65e14041bd596a1b509927e9f063b634d540f47425f7582484c70551f1aa40e5328eac6af9d133b08c893eed03bc1353242bec44b368c027004913d6b06e1f23827db141fb7533ea3836618ab74640fd23f2d589e533d07f5830b9b7127ada639bd7ceb55d8e54b78431a10e9c9da1e75540c13dea0d61df60156342e376a12ded3ffe375097ea33a8c1bbc6570878c1d015cc20f3541960394c71cc938c92f605063f3b6fc045d6656b72d0f23bce2945c9d41110a45c2abcb60894095c163bd576510288a274c1efc2eba238f61c40a1f3314ff19df41a9b22c28ed123c3490a05016d8c17ee5218012df8482e108543c8709838170f23d71147cd02c5dfea6c777a6df710219aded3e9c965186cfccee6658cc95c4f4afbc16cda04810371242dc60a04ffe74b29c81c7a0e214f1e520bf803c17fbd7079b6f84b94ec01bd2b50fc026e71e18e02b3dbc1914b7c75bf15988c760d4872b33dc59f763ecd6a61a06dd30635d53703e869576ecc8882059c9f24e66f5e0302a473e0a3a8e7ccfa42a18c7e6a195cc08eab9ece0eb2e023d08dd9ff0fbef807c06fb0904b78830f0d24e0567325805fb802560207ff1fd94ac04a0a576e4af645df5243eb643702213adeb40e77546a54b189f897c86f614c722117c2072f647d41a16391a4c5a864c0b448fe7c0fad277c4b60139010acc70b56828fbb906f4f557cbc90b4727a55e4420c4ef4f590814c089da8eec60691e0c859c29250087e1dfbc8979345930d035a42e863d738e58aee006206c79198ea3c35e846e3eaa6418c01972cb1f3775bf7dc67c4ad9ef418efaadf0b68bf0fb1b8b6e0a416682a3fc93ee233ec7d7340f67f16a3608c6838a5f11c6e70d2a6ca49204fa9d8e658cd374bc92e968338fb51398b94dd89871bc031de4fdb6436c3ee0550cfc7f232e8b956595e4002e074844ade246f6489df4f6f5baec2f0378a793ee3d62c4be0dbf56ceeab9f0a6ec2e1cd1127464149f9d12bf76a5d8428c636cf85f518bce761e64423909f25bf316019297720a6359fd6a1f962c1f7acc926f2d93677418761c51f5f908c50d71b9c9a6e227cb08a84f9f4cd5ffc70cd9532ba570404e6dddd360968c4e448eb94e3d43f73be9c1e4eff5da6de36359fa767293db0841e7656504172e1fd87ec8d5a83827434b7f147fd0b91fdbe13278245159da11345247214b534f7aeed23eb66e43554d31cf230c9fdc61915c3d27da7f9fbc6b7ed22a272af8037e07bf74a45f97ed85e9395186ab25ec9685329b20cab5ce329a21cad63311cd31bb44953f64f76c0785d13aa3010e3fb23a0990f20539d9d615f35321598758e09481cbbbba4fcd677a23199023b78a666338c5103ba1074db57702c12e4b236a2c9c2f1a67e70d29320d5c00ff08fe5760ae61fa075ced841467b4970f10e2af29e745331ea07fd297f330da92259241601b4380f535889c1633ec702e14218033923f4b89d8538c003758bcc19a93b7a36523b368cdb0b166be707b3e5f4811bfc51917dfe5db7579cd3430aaa991797ed910f2b5115fe3b3d52adb6705ef2b71c042f1b00572af61c08143887b87101260781378c2206ebf95f8e810e9907cd1404874552ba95ba2494069d07976b26044dac8bf41e880c855be4f18e408391bd2b20e5dc5e6224204872d10b909f2fb24e3f83c34e59f7433087c9d8401b3f6f371872a13cecda908c4bc7008d4beac68306084fbd7413992a2dcda15826bbe49955061aa0cb4810f2a7ff831e7ba6c5892ba8878f7a26781fc984a60c06fec16ef8433937a8d7f9e52e3d4c1b168711c98c47ef86ace22e54b0e6d4fb28c758c2e6ce8a725750a660cc051c50fe746561837f4b2bc8e49750db395fca8a8d04ee4a7c1a75f926454d6ba0616b1f2687a8e7418f5541c7ef9ac35505f45e251f7d58419a36035ef555d1dd18f79479285f5b77c158825d3724f4c2c70ec4f764426d3d73b9b6a2c4b949c42d9571c80c26fe0d8d4985b4b933f75028c3a2c9b29d147b74d65d4d16ac00015408345d80006d8ae962dea66261520387ea77bfe5c6fc6b4d1a831ac31d18f3ec8f4e10fa74a61c570c2e01b822f2ef393758cf0005b68c37e96d6b6b64ce94bb801290ff27b51ab90f1031a2058bdb87438a5b96403d228998143ed8a9ca19200306e7dd970c3fcc6e87fb52b118c2fd00abe58d7ad5610e98a65d32a96d36ce5603838058bd9a9d3b4286e5e1ac1c5b23f74148b7cdf23ba8b938d7226f182f9657dde02ae5bcd2156e780a8fe02a65f7b99be209a8ce83af824e6186dde52a8b03544496c0a5d7cd2a5533bd842cabd20e6dab3e973d72bf38e2c6e588e7b720aa405a640942ed73c2d80f46510eee03cbbfea8d69d44fe7584ab92dfe1f5d5da716379a6356cf560bee83ffbe2a87b2f42eb9b2bb9c91ecd1fba7ff0a90dcb0c65658d763a56e0e0bb0b0c19306aba78d7a5fd2dc773a93d7802bb9f00fee57c22fbda93d884351354f89f274beea1c959dbf768e0b9923b5445c99d8f507ec71b1e461506a8b5763664c04711a52503997673c08fca933973284b5e7a833723e5bc6a862b61ca941bfc9702b58031d1bff490d6b5495b784de3449e703c45c0a60df4e1909b49ab706202226365aa3fb291da7f48cd11acf573fb7721ac56d2f36078b03e1422522c56815642f0527f896be8fefb3145626fadc17d6db3a7f26915dc2bd5ee17d84677949ba08d060b70627f5bf0f3c9249122570512722367b99cbb2cc99b00ad7c67b2e02488103c40c5481c235b64eb80a7cbef9e1a74d9a88f854d02b660fcf8ffee7e939439312aa1091fd9e42f87f6be386bcb501393494586135636146605486283e329fd3a1d8eebb3f5cadcf15259fddcb767bee29775448dbad08f803560a16a66da167b17cd11503efda8fc8e8bd4134412a63a3edd5f9f0be4213cea3ff6ca77e7287522921c46d539f8594478b99c2d09044647fd88121dafe9b1685e5a2e013d208a57af9ae50521443945b1f89ad83f1f36086dc26a99f0c1371dde0cfeb5f1b418dabdd07a88c512a4f05042913086cbb7ca144361418fcb352475665ac783e42bf807af32a6ff0a5cb57464a006db467f733b1726d979d792e8ca34e9273535e720bc532e7a5e6ea858a48b92933548e706865a22cdcc679e70c1e323774dcbd322656a77cf8a8eb50ce59a69ef874a2a4323011ab2d16cc2c17360100ee39915a6b181970d39e746f6f4c0f8e17330646ef46359dbaa7f7a25db9d9c14db4993b3b6d113d8a9a3c7f829b2f587ab540af81643db154de0510f8e01ecb4f8fdb0407521662e664931208ac64b5b8dc3d6835123725fc90d4e6e40f289bc3290a47625c393340c68e809060842d63eecc9da28ac39e817de2a31f0b28cb9c135649e6f998d41f7617a63623ae7dc15658fbccefc5273c380b324d56400ac8364f059e0b826b3334d68c79768c6f50580708cbc15aeee8754f750ea412cd2d6f868357445208f3b356d91aa42fde9c65216f89d462543fa999122bbfab29847e7c42577a189ba78551761b99cb1aaf2b0ec9f432496069dd361345e7f0f9008a137a70341ab4d3ed8ee4daad0298361705377d0294f9debfe81870bc1d4590484b9d50cc7e5eea1ddb122d741e0ebd2440c2b3bfa1b046b4637d37b440b4621089848cadfa273c354cb55d2a7503a33d00977752d7f20381f859c9c2b61e8566dd15a1273c80059d065ad2f1a2692346b5a514cc087fb58ade94a456855980aefa5595da51af53c2c40c8d2d0dcf8c719ba835ceb4e84c862b3472c216ef64a9c84eb54054ac83f67af00fdc8b8b2d562b46dc8b594e7c108908d2aff8beaaa05463e456da5f64bb11f4457b450ba08c9aa1ca54ab67405b0b52b82d55359ff44584970fa96b4cb6026e924f5134fe3cfff021427598ea9c9ebe0889af02b5bb5ee558e5197beeedd79ed341b874f58ca76360f241a816c5f3a24218ebc2bdccb037dac45d391dea676a6305c9bd24f650c679898f5756f752b22c34a74ae5b8b394cf7d49a34ab2cbd5d29fbdc4beeabdebc5cfbc797250b243b9c3220d87a93251153b833fa85320d20b7dd93e05302a2d9a0e5cb1ff0fda110a25a3bc71b2ec7d09e4711c2132dd4521dde22df60af4a109b62a959f5f285131bc505cfb4bccbd6de2cf9b579e169eaba6d531aa6e18a9a0171bd2493e7e4f6c875111ac2771857fbdb0ad20859c4874dedcf137e9d71a3a1d853fe84d39f364a1aa594c9a7889382b3601f96d0c93df59ac15a31ab52026ac17b9e166ad8758ce6b8456597e0e9110af194516e1303697d162eba142598c34a1fc8634cfd6dbb43e2b40d59a24e6f1fee358d3d72c6a059acd0c92adae545c91ca947269e7556c41891391a9b02a643e4c9e8c4db307541ba3fefb965af89451812cbc431c6e1cf2c6e6b4cdf484df311a71702120e77f981366885d0a3b4ac49a9aa13d7728a029753f7f51bf006eab8a4d2c66efbf4fd28a5a0e620047f4eed711a4bc8a4c2f3f04c530ea45249b10488c7a95b0b2988e62516dfd30ea452467d918f574f4d8c6bf972ce444ec023bcc82d3ae510450b1480fb7fdaef2a73ca687e6a4308d865306fdfe93cb02a8afc29b653a4ab57146e86cd0b15e18b72c1835b0e44d6e289e7856ab9788dc8a1f1e3fb57a8e73cb5f855862067b1d440ba001b1492d35f68cd0fa073d4e39f261107ff7bec37cdc05eb98021d5792ae796895d024142944e9cb144c40e25c0f1e40a7737a78ea7aae3ef97475cbc87ee52fba9af343dee34bc98a6ed5964a6fcd9ac18fa7620d09cb18eec134843fe9eaef46095496c720ebe72f5d7d335f3c014d576fe9def6a3e23ed23dd3dcece2fbfc802ef0dcd2cadfa09c2c968114bf6ed929539944e1b8ae5ecba297fd97fcf87841feba7ac2336dd05194805d7d18dc84ecf9d5e723fad5b3681e11e749f5abd7771c9c68a0d39775da06590bf1579f63ff72e468d4346893faabef6651952bfa7ced11a4e000c10a669c75b4223e3213ba4e1ed16cc493f003e88aa0ce2b2544102412ea955679fe799686d15690e8be3626c7f2b4087a9b12c43dbeacdd1237afa875007fb7a8b932089f9cfd1c9d4ec55262b11962233d796760e60649bcf91c809bedf61da8dc539d428bfa0afe7968e8d9bec11e41d6b842ee4bddf97e66bd5cf5c592cfb9f20b267dd609cf318798e5e237b1d74996e121340559a70ec73e278bdbdf63522413182748f89fc888857b73222559b6fb747242eff00ad72726faa3b1fe3c5edd9cf4a46c80c142e9ad7e718861e90d80537678e8cefc63ad0fba95bd952a7e651d66b3a2b8d84267ac034d26252d9676c788d1af50aea67d3a9847346229e1dbce0e3a7fc92364fab6e9aec8299da1f78fa54297761630ec9275d6952162947210cf0dec7d7851fdcf50b5049971d82f52b5d76b8f9d29941a070dac63221b8d3cf1b73b8b68eb0fcfa33bb761a5bd19767bd81bee45a09dc9b298692d2f18571a71b0a93a3c8d93f619fdf4df3a9c7d2e7d8945244c57fe337717a4d3317d54628970df4f8fa5301e2def1b43c221220fc50535a28df4ca45748a7a229faa9bbf9c5a5bd73e5abd49531d422b61a693aed57060d2d1e3f04470c7411b73ac7a44c58557785a56996e70f35c3504628280f164ca4b5652d37c345c024afc955991fdcf855abbf4201cd66bbd94a01f7245dc02bec1d1b4f2f3a7fdec359e3db8a036e826f8a3c19abbb348ee7998fe518b1629076dae41cbafd34857b2ac44565b22418f01ebc4f4d02ece7c2c838f4601fbffa261911e047750051a7f64384bb8ea1a82e8d4a09da9ce7c4c413e7cac60c85b604ab0590410976790f19f2f61c29add8cce65142074aca9b964b395b046b9274b28dc04d056e5531161d63cd700214c7875825e9f29ef8c7250b68e707eb963d41bc7045638e8f17e37381507fd31720caf33811e67a5172f5b56030d9a839e56cd582fffbd14ff525dec73d013bde8a0d70d47f0c4eb9070122f0687a6c1a90ea7f3a77edf3078f578ebdc39c207b944492b13bfb39eb980e59a738e0470a4902619e9db0ec3bb98bcc1a7fdaa088d0844224180899215bc81b42611f706f3b326a4260e3d3968d6f006b8316f8d05f66c042a342c78d0401c8cc85bb2dec31f7181429de8b6902b96800afe77c50281d9e596aa7e2e87254d59832e91aafe46c3522974f62aa1187d0ce6d62066defab7f39fbeca84bb10d098d927b1d2f98579891138d19262fd2d5577c2383baf14df3052c374425aa339349e2f800ed086e4f4cae269785b831d15f997f63a1af3bac7b6c09cfb8bceeec4895918b4fb153c3cff515f8ab9e6d81b23d4386b46937560a7eba7665e13b5665bc2b41cff744cf01a8c95892e6aa43afb6dceaf653bfe0aaf2322ecc764007ba7f57255a5ff1b22b5d289e198930ec5283c691fe9c8c9f6840c2105c97d7740082090f097bc3b4bdd0f1af025b21400728198f63e97085c8b0191323b2ca99d3bebaa786a0768fc3baac7374ab86b307366c6fe5f7ff458c499ae16208bb1dd9c8f6f6d0a15021ca01d506b043e9ef5213b970093b307590588fcfa8fe5bedc5e59e702fcb320241522f00570a9806acd82ce33f4b276b24e191c1ad6baff7e14299b6e9e7f0cbffed3f959920e431a5167553f5dcc4c19ca2b556ae9aedf80410f4560347b62221a7e64cd9103c0051c8239526c21b11bf1501289a523608a7c5fc1c72c2e49520a7841bd94a0d5017154739317da5395c2c5b3172f112b75f0069e0880adb21a8ce2bb044585529b00f0766b76d1c2e0e4e143d2f892647669292b1f11581d262d761804d105f51d4974892aca8cf2237c3de3a55323b43b03bd202cf06e8d233eac317e70f155d72f70495bbe8a9fd944411a511e40fc2d6c12259b65b82cd4a82b5241595fe2aba991a23060ae1acbbc77bac652d1c8d5711c4de2bd33a28a6bd77c160974a9bc391d38e3cfa55bc028cf07528407b296cef64d02b9ca334650cb26751c7561dbbf7fbbb054a249093809392f1311cbc5dd3606c0ff213d15a12f6dd205e96e11836933d8dd0efbb7da345288f2c87ad3da44852b9cd42af6647523a0a27da281be06e785244e67f178d6dc98995732bae03682fd9371e474e344baddb30bb099af69a6f67c533215130322465b5ec51cced719cc7b43535ee9d8101a630fd06d57a686d7971090cdfc801c75864a81bdac699bdcfd0679e8a1333962c53c19fb39b19e64cd397121d9629cd278345a5da52aa83ba196761e7e6e02a5029cb233f24eba1d42e700d17c1b9d09325dc8f499a8ea2cdf312d5e77f8cf8dae5edefafe12920c952c39650cdc1999245541b0476d4ba82f6c4ba5ab6ef491f79c668f647eea8dcf4837bc2c1afd427739678c89266aa2067648238100baba48a5a5f0b29fb813366c319c5ecc47d83e25fd0b87d47d27fb2b3705d818c29567d7addc0c9adf5f685dd105cdcee96d71e54c91ad0955944370c898b499e899569a4eb330eac954c0a75e94c4d5e83a2d67ebd9f659ade8760b059e211cbdff59660601f7dd0c2dea38bc015d2a898e29e6ade61686a0738c72a160c35eb0c32012c5cd2de4af1a8c60ea7170739d0e56aef475cbf86b6e6bd2ee52e2d44ad6ea258f1a36fdd3e613098c5caf837403de57e87b85b8a7335f3518c9fcbad533c91eb709216cd8a75fb04ce0db63da213d7136034c7ac9d56cbbec7f015d9925969e57412ac494833758661238968eb9007498199a834f06cf012335de835fa3075a7f6ffd54bba46d808bde1ea905d246475b941d823cfc77c05350be58b2318021b9b787142b814703c4cd21ad9056ec13a6239a521d77ea08d81fe79f96899a93b925da34429e5d50c81fc3f8e80274a8dff84d1885fcbb2229e4730f9c09c07dc0b875ea611f6b3c8cc898fe925df5c6d3cdf0949d9ec8429f0a4134321247ec458460e988ebf525fef59483185d64b3c51dc41193e81a6fb783fe69d0452b2c3a682b29190fb8020bb1c1eba966ea8dd700fafb747c4289cf1bbfe9a9d6f330b3f8835bd5d5115ccc2cdc74228c598d7f123f694496d100a1a6f1cb269b9cc670d64e1f3a65e0da69982e25a17c1f9c590bdef75a74aaeae46fd4b7f90d71a3572df32f2910c9dbf42bfc559a8af500a61e6cd1589696ec39ee76558e36e1f98a948d8e6399b4157cd838b4310f42918953f47f4d0dbfe82b5b0d1af268ef2d92d07e46ac83238cdca0aa0eb91f299ef8dfc082464aeedb875b431e55ac271ba3f38ae8c6f906e06667e271036b8cc238693c1743d3c3975ecb1851f4c8d40fb022e964253f401057ccaec6dda5006c8c9b9164f9b50999dd9d15a0c3f4269da0597d7a3bfef04e59faa6a11c957cc988e9b18b67cd42a154d509995b934d794f9f60e747eb346c9b69a63752881e300cb48aa17d163bac4884c5d1639ecc789a3a902f23b397d75f87155192d96916bbeb3796596bd80f43ff080c335b7b84453effefd88f50f8fa9798314d189c7f4ffa32db512c96579757e73198b56108ecc1ccb00f02306880d9d6d8006f66c9e2d51679c0e01e7071842001b5f16a96d74ef79be7d0d4ef6f008737c723d70bf4a289306f5af9b9af3f55e18e820a8f71f31c7d5877fd17b4f6d9ec3fd4c7769fcd9a00e90e02525f202614434e084f22346b904090b8c79184f67a6d532fdef175df5a41c4fb460ab6f09994227191314037574dd45d23144623d8777bfa94aaef7a5df2c8465df0de27d8d4a5e789f2a2bdc2acc0f60a6f8073ac51b22bcde7e6fc01a7388edcccabee5c5c4fe2daa5dc142b2fb2df6238f3be488a7418a30e67d5dc8948d26ff0c064a8abc95eb0eea3f4a97ec498badc749190368711b35114aff925215e1c1afec4bc42aa68b960a8f2bf0b887605ff6b9e6a53cf01b85ceac03853569c80ba46f32f2d1feb654210ffdc6fab842c078c0a20a17666f38503e2f7e280f2e13466a82c16f68bf491d4dcf3f785965cecbbf6fc81c5b38b8e0888a0f07df4bebf9fe07068542a2076605e471013752a2099c74dc27a8b02f1a525ea9fe145f8dae2f56adac2cb9eb8546f03d1bad5fdf44185803c8174acde28749c8193d89b786e31cb3bc7612ca481c27debe299bc3783333331cf202b10a70c9b82eeb0bbff860254e41398e75b35d5e75bf22dc9ca07438086856725a28a15298cc7fba726ec061b248039f89988b604214cb90184456b3204097b470c3b765c6457ac75986457b71c49c17d92ea878c412f44aebebd945af775c13154d640da710dba6fe1a050c1072e0cb3d57b7f13fddc66dda99296164757ff3e288c5415166e2a1848f1c82380f9118ad51344827612a931aaad803720450578f02c20943aa172b1077d54ad0edec3f8f17e51faa07cfd809bd797b479ce6613fd0a21774f9d70c29a16266c6d7298a0b36963b18a9e0840ee7d36aa4c514e907754c6f8d9c0b69ea49a71541d02669a91c2e13d4d4e6dedd2b4f693114761cdce3ab371331b638ffaf35324bc22e2fb0a36ad3440c8d5a78110bff85194e831486aa2fa2a3b7002d103ba7ba75e9e1037f18d4870b7b2704d2250d8c01c61b8fa1ae98dc73d16d9037a618f842effec572ef743bbfe7965aa0ddcaddf88203166033d9bb962f4c7f45348e4cc03631ff89ff89470121fe66dd3f1aca4ff016db4d6d3089ad4fd85a790b17c88a4d6e2cba710ac20634eb33762fb08768bda4e7f4482266c4e3854361092739a31491008437f87bfb354f1d239213d247b9048cdde938f15e189140c861d0351883b9904154bf11344ff41c6f6291504f331ee59c77e8b5b4fcb0ae66fde4115c8512133359b484e257462bf0a2ac2734a80d96621770506920dbad50527b5a2c0959295558cd900ccf01084e285f1a7a26ffb424ebd005f0498559327c4a7e12dc51b0cc4e8071aa7b819bb0efabc19a700fb1d0cd8eee1f2965c7b7870f7dac1e51001e0450b045d34ee05cd1bcafd8563564d945d028963a0b6b2ccdf2be007edfa533a68b6820c7cf38e05190ce12c138aaf52323384edd621fb75893e0d48995510ba80dbd90160c0fc10c56e38483ddfe5ee12a045ed53c15446227bd46928bcec71b2f28c090f041d190a799a65a39d2c297f174b878cd726f0ca5127c520db1197639b142c4bdf3670ae86aaff9ba458c94a824771dc13b464a26555602f01ba395f3c57704f83756069c7ab0391a22fe6ed459dd059044c89d10fc8fd5e71a04ff40e392d0631580a804e105d32019b667440899e56e680402c18de0bfc7dc10e6429e5c362c62541eb04c4ff829b823af6f000f25234637c5b4a0478872d95b47d5b3e86576b3e03a6c0926d9166133081eac18018ecf78a64dc14cfbde9f1e8831d52827d45728ab881cfec004fa10ffdfe598f429359887d36a6cc8dafd95536c98d790de24aeed8d005bb85b309e8a6b56017c4d623d1cf21c817fd4ab6f8b4762776aaa544cf97d669ebd797886dd4dd94c0ff157a52366b0aaa1ee85b7b3dcc6b61e0681264a5146641d41728699f9a23ebc92e33e6f33a947f8cf239d22e54a12b44583b08c4a1ee219cadfdbf490f22d233526ddadcedfa732147d38030017513a6ee88b99bff6c42fa894f7c7f7e0dd15be7bf2d3fa0d3644e4c1248abe17ebb0422f8a386baec8141704e9bbd0ffab99f2c3bf130f311aa3d6f19e5d5c051feff664329850c3a5705d04994169db75d85812d4409bb5ac5a2cda4b569e0932d0665a042361914edb7e80652202acddf78f092c167fd10e08f80cf1be6fd41341aa6e407ac0f20560a90c9557f13e1ac3e1cf2551d0da27ce811f198239b041447321e559dd618cdd1f63f69ff4b5914f1df6b5ab76869c3e065949db4d148aabd0b500c19fc6b96eae553467995a024b0f9317c04b5d8f70dc0efdf5e0635a432d05be4e960201e1f40de8fc4fcf8108379096cc0b96c491fa9a375875a89ae83307028f8777c1b67f685ce7c1013a272ae42ee8401352d277606a1659a742cee7bd56ca08242ca9bfcd46c79fdf3eff6acd1b312b03f54b0326531dfc07a74d32c4e82ee000a90703c665f4424e6ff0bcf43de6d029e14727846c9c9d312915ef550c42bfb6b78fe2c27a20c3979a2bd44c1a80621c548b73c59792828cbf712b8738c26329ef5118c10a3291ccf52b4916da2970c1c80916fb7d04eeb8b12bca1147e0718d86aae6a134569ffa7cc6d7441084f406f4280fddc923b2bafd14598aa6c71e5a4878a46d4afeb064dae31f728149085d281f779826183fd28741af0761fc11e8c70e9d8bb412581e225a94b2cc3b8b080dc581a2233e3fc720f50043c8d62407b00db792ba127e024efce82e93379bd8e59b1767f254f3c84e845bde0f1219c2dc1c64b3ab39bbc7b0cc2ec6d9542e203e39e3dc58faae3bb73f724928ff57956a6db323c667a40c71f65eb2709dbce2077598331954772e8f161517209d157fc4a54c4c837565f80c4e214b4d7e4b87f15597ee8715245e0f0fd717504d4d5e947f88937f7df58ab01191fd4431f8636037afc58f923e878cb52685c51c5c50c36fbd3102c34918546d30901f585239968c40d1905e526a050025348ff43ced1db9f341d0855b090c51171a3c44eee7daac1cb54e2c762e20f827d52d12fe758e1038e2290e162057b4405a4ac33ccce163c683bda63f24856ed1bf75d117dfda473fa6c8caaa7302b75e19a039a2fce8885d5881f5613295b0ce7db10f65300a8d490c2311623188d199850fe29b18bafb1638f767e45c0a4a19b7802382e5cf801473777801f72ea6a23934a56c039408d4649dd3cda3a24e1d794e2420606f249c2fba425ad61f1b397a1d6b466941cd221474cc69827977e346182e85b4553e69d9ea2d1a0be9382031a9b8fc1867622dc7a50ecf2560b4d24c6ba7ae46b10b9d813f3453425d393cb80e4936902b97a08f22d31ebeae3cea22e9ae11c7daff53468187c3247a1cafa96c00424baa6c3307d0d8345d9c128ce69a5acea054bcdb9ec7939d41d686a222b02cf0341dd37b5436ceda75a3e701dc469a4bfeeb419d47e72510f7ad143b19472dbdba5b656b2345abbcc5fb79752079ffb978bf4b02ce236f228a69d0b22fba70244f5dc73424d3f01577d93b4a236f173babef865930b6f155e2d183ef94ee539bf1c5383463491f4f2f666d6b409ee77cc16b41aa51a464099542a003b9aeb7da15c18685c66523540caabccfecd042544d346d2e2e784d3be58f4f6f2a16a3c55b04ef481db5035922a4f60425562eb85f20553ab569e3c1ba51c14192d362e85aa72b638375a4ee5cefd42ab0da896f4ec1b312f586f2a9ef5e4664fa34e057164cc3ea586592159578cc1ca01c003b753e6976787fb9764b154fea5e6909cc417c54552003d221b64b2aa6b4b05442af3a524b06921da868209da24530204c233f835d9b8e6687de7b06316cdaecd69b513347509bc2df97d76913b233bb2911585a3fe5e94d8878a84f7826ff6afa19cf32a119469029ae95e10b28097373aa3b5233d45928154549da7eb2fa1d14c7dbd4cb46e123c98ea41f9402e3e2798d022cf4600711a7f189bd7877535ceb102b182dfc8b01a1bc913933d52e740690e20bff8019e1ff1401854c63f767bf150327d2189a876f32dd67037d7700875c341cf447919074eeeac3f07ab5253f9a1916381265d0e218fe109bd82573e0d21b2c30077d0e7b94520e40027965d92956874ec3bd7b037bd8042c9feebb508cf912ce7c50ea09ed46991a72b3628d8f9e030575c11f9769ba70266de6f78492d305656cb3d5730088c4539b65f2416789e2969b9491cc358b7e6d026f4515f8b0601133bd191ab5e46608045be31354cded97062f2f715ec5b6d2513718f7a35c3b2f0748fba317d3c401619cbfaaf1a0dc65b2ead34eb45a03441b3d24a3e47ed3e08145afe360ce72b3677427ddc39d1451391d93ca0f8cb26a2799f75bf8813bb161f6956e11e75ce80fbf0124604b1c9d305f30d9c76335173a41bf088ffc31c81de0e1f8ed51b3eaffee1134bb266ce75e24170cbbe8b89a0a9654bc72bb4333d471a8fa4ed85718b524319a466a6f294740ca5bdaf704f64a4ea6e3e7796188cfaee51df2e89fcfc86ef20b6c638ecedbe34dda3ce54d5f08d12a1688afadc65dde219a370752f1fcaede74f5656e3f5dda3fefbb7b894054dc726a98bad341311304716c885aac6a79b08190c8d7ac5bdecdf0605e23616fa03d50c669d4f072053505a9f08f5a6652f9dcb85b46eb1a25bc8e0f02f0e6b852172b564b3964eaad24999217ed4834998a8590e11fa61a6909fe09541b4a8440a53037ea81484a58c40a4947a746278581832152b0c61ddfb8f734e75827b7e93e89b49728c402b9d8492df67e31a7ec9a0cb67f2f381cc4d12183276fa0e25fa3df1e31afafec2e1899fedce9f11d4f205b5980c01052209975e8a9905968d25e2a78193dcfe43a6a368ed9e33280c53e25a2fe8f4c7504e487070c205f5f72dc70762ab7010a5c505f3cec37f57733278dc61563bbd6705c042688c4b401d1793d5f40efdbc5381d178a4241bebb3cfb2a2aeb6da0a64063926d9ade4a228f2d958b8549933f9f7507c99ef3f74222847db0385b2e31154a6e3189cd51711c90ee8edf9997e1656a18784f7f99f812dfb3b0545ed58446aaeb686761754e5edef542de83b6821be8f964b519a1eca28e0063e7b8279413077504d781890654e8f626d6a70ba052624ce62fa341926a2a392bb22396b5805a009cca52d6bc5b8ab4c3c69a38d968092bc89763d43b3d56e0b0b0e8e4708d1f96728c36c464d8aea3d838bcda5d9a62c52fcc687c188ee7f725655124f4a5995120e5d5520d5e0a543989f664b23021d4a5d464ace080b88c5201e723003aefbadf1249367aa17d5d8d3d2b1e73f331915aad39f73965e695b47af989b8cb949e90956157b402ef5ec11d38c7a79644dd2311841b19641b141a3fa78fe1d72c10fe54d6511db7a02c58ddfcd116771275020868543166bb904d1e61fa404fa0244dbd1e7fd36623fa1584a8d3fe3bb310288691a727181225bb1cb4daedf4ebfb93187722bf65ae4c3d5b32d019d98137325bae6154f1c643a384227d67037a3aca2b54186b03889c59de9d664bf09fbcce6269e5e7d69787d5281306797db587c747282d17bd310a965ac4b7f6b608cd6c4d091244865be33d7986522ce2243b9ba2638e6df233165a3ba02544136b69ce5c296f1388c6087081ebdb7088c6f57a6e8d3ecc9a43d2a5113eed891cb0d1c890d2b8902d82a3f9804ce8f761f253d012386b669b40b372c6ece5c1ac82955d8e6f78d5df26e69e910ff1107d112126f05d904a30b30e86745d76298b3b5e4e9f8e1bdb4513b94b8afca5c8421badf57361e3826058ad38e10f389c1ba43d78843eea4a24257fc393238e88539758f86ba66d44e70653bed5e5df5e80ed13441830290a3c113629884e4f7e9d551ba254dff9fcd887f84c23e1d7a93a75ff96bbec57d0a2efe4b8f40c118abea9a9dac45540d6d19deca4fd17c9aefa809ac7be89f3534beb59f97f21f03a1f9f322f7ff952c5c25e6aee8dfaccf61e3b1fdaa832bd44a0ffd7faf5d398bcc63cc60898558f05e68422c4198f02b1ab6c01796513022ec57ea9db3b6f5232544f5ddf7ae479b18178f2ff71606dde1ba4102a63f62f2f7eb53f015ec150c2c5e2e6a2ad8e93fd3cb172b7cce04521f55c1dd6c1bc6eb2f7c2cc06219d896793ab4ef2ed98a1b1eb3b9f19e634e931bba4cc560b518fb66f2d396d5a29627184933c42662358a11a2687e328da59a23198196ea1d5259db0033c68fde604e08482ec9b8d631138f433acd19c311676b77f98f15384d50158fe9243bcb3fb69a940693b386d7932faac8e574adce29cf69af8c5203cd17806a00b5f57c54c931d25950165678abd7902f9cd75a441ff38c54b06eb848018718ab25daa65155246742fae2a16cdc0dabff73a7698dca3d351e29d64151d4cbf5a0253849f24f357f3951d2d8305e9d30f14d754af989e4ce746aaa3ffb01180fb50cba3de9b7694f2bf1282d18af9a452ad91283f3db88fa995e41ff603d67109796a6d630bd065c040bef39bf70ee65117ec45dcbd628ae1048d4ec0c9f26c3f97aa5c4985846c899acde0e7ea163244ec9b0a47f61687fe25c9e7571cf23f106d3be7bb60932eceb2d14b68aeaf48112d8e7dd4207086dfa3f00af9587b96ea0e0fbdba266b4ab714e2c621f26d7a30cd19ec9986735bab20306237957b44f8e2bcb43b1845c7da6444954a4145b58d38f2fdd9ad00094f68c8fbe1ebb3564013646e6cae798a6e377c9b6ed209a8cdd1681bbc9eaad7da619d43fbd039b4f31329f694d5939fff25c9d3e3f9db5ac8c76ca141a56c238390a51b7957724e7e79699b94f8abcf75ab352e5021afcb3c3764ef0bd52e5f4c4b59cdca4c64563e86339d27f12f4ad4c97c9881b53237ea81344c8d9bab2a64397947e1836b7e5665d59af4bf6d8bca57de713250dd6c07d48a73551cbd8cdfb9f0a9bd32af068d83b1ad1aa5e740c6053332634c12e4bf1a9381bfd364fd3b6f6cc1897b872eaabca1df3c68abd485fbc35dbc8d2abb4f021bb0921244a9c80732db7bde10fbc120683030f4e10aa142af37ba2f9cc23c1028fba3dbe028c0b6e02c3b6e5852bdc86f118cabbe1304e9a88b19a55ba300adb4235d2bc679a4ce534343717da42f55eed494b39904a66d3d67bcdae66a068e576f4bda84ecbbb946878b7cc22772a2af970f064707102bbd8afbefd16b6b1332c4c85d0e22cc42e37833faabc8cb57166fcb1304c2645e2069ebcd829a4316076ee7fea64ab06d02266668a3e6cfa25d78e64e0bcb6de68c0e4e450a8210153d9a9915d6cedf53553808c09531aca01e5157db92421357e20adac5596889012df09e0dcebee7a0a0fc7f3d3d080a16fa879b8717c4bdee1c4e92dc4e884b1d74cbe648fe4354d90c875cae0128f6400f048a0d464b248a3255136a53dcf84bd3cef91811e76c9e2e14587cd027a0d74889c32fee6f006e9949912f774e653ee0c3c787d7113115b97b5405d5c4aba59619e3427b982b1230173adf6ce23d4f66866e5331476dce888e4e473bbee2a3af3b95444fb0548d4065a455e4bdd650b19461bd14e8d226f7f317b94bcddd111f3e17c86f0721d7182f8a4137b58088eb2114c42d88b9268c412032db861a54c2b9c128505ac179275ca004a8507cb61a66750cc037cf62abe369ac9227ede24f6d94f85f963cf20e97536a1af9019d8f1af92fde24a7e8611dea2670c0e2585532f90a874d9119aa080397701ee4ff4e47cb31862b0845c04ce9f5eb90eb004001f204a371285fd8463253f4bcf5c0f7d1a11cfbb8aac47dcbc56046fd7430b1dd32259dcda9b0b12c77cadd88ff5f02cdf59a709b7b6f71013f2c8c4b1880882b882f968415cf88323e6aab63c587762a13be6233aafab3388acf64a0226e7faa2a9a92960433a1b11849cb803705033f9c1da419ef5e5d60e54091949f77fb759d255f9b515eecf1b5877c1c05539bff0a5fc545da8b71b2fc755b95d0b1667762e4b98dea3a9f687c6fe1420eb5dec518c441434227192774dfb0c522eeed9a5b1240169c8557736bd72015fbebd0956e5d64bfbdce9c8f74f9d8f574e963c3aea0e01a9a10f435451bc649f5d4600059207209c1970aea2e4da093a76b50157e828149ad60a06dce5775cbb619a38f8cc3a029d50f91998043bd58bb19b81296103d745380bb03e82585d047aa34dfb01e8b08fc3bf58bf291bd22178d9c685f1c14f35c57e406447eac2cb45886566e47e2efedf03c5a9230e7d2a02bd01a7b71b84803f7ea0c838eb3249b6ce4b3ae2f169170648f7739a75a9bc2fc040b78bcbbdd2d6bce94a229a27e57137d2e85c685b6bc2cdb4017f0fd099d8ddfbca411e0e20dec8c10323faed61576be0dc25d0668a31b02e35885b09bd1b287e2fd4f8476f24a0987ccc97d94d0353488f912dfe98e6eb292b416fc7768a789ec53fe8369c1aa177fe383d6baa23e81c7b255a22f6714fc6c77d8289d56466ded6b346dc9351cd2376cce50fd505cb08450efff303b1bc6120d3e1676f3aed620685a4f4f91bd460cdcfc1416c777d9a84b531c7578af4ca2f50ca90eae87df5ff9c5f12e31a047741a4720e48ee7de24e20cc58d5e7ab2664b360ce6ff6f3c14061e3b180534c5fa8f9ffe838f95d3d83baa780b9411396f25eaa1978faa325222695e3b7688e3411167d4da4bb084858a2a20797fa65d2025706ed90b369144674ecdda58fda82c5524792ea868cfbab877425008ee2239cc277a194dc09011b21055eef0378ad13a6943fc83e3abbd3da058250f4056f3e3ba2cb545f37fc2ac8a59f1abccb4a20afa9fcd73306fc975e291d648060a776b875afbd90744793b266b9dd389d3369f8ea9ba677409f937a908bd4bac7df7677ad5a062407366d4858583d8a0c8424c51013fda57f42c3fcb94359b8eff2b50cd35f1bd2274ab0d2cf477e5edacab2472094305a14cb12fe75f044b2d503c38853b0529cbf7255113cc6c6adeb490371a9d136842f2c2aabf6232f126364e16fc65da2d339467c8e8cc8cb2f193f50da613d2bd30563b62134b16cf0250700cd1a2f59897dd0c57e51b1d49457f8a2c1686dedd07d3b4ce94290d15957bc05d1eccb953e55e88550ee3a13d7de34c8cdb122722ed0a6f43cf10a878e5a77fbe3bd9d0f20639aeafa5ab9aaec9b6a38568d709fc02a481d5e9a88770cdf2b71d48bc591d964c3c128feab01042c6e8857ffe80ba23f10da6bdcdc44d5379c940883825292c12cd5c6abf47e1580ec04694d78c40a08c0d1e521a2811d5bf9a3bc418ba915f57530e0ef735848a87ea783af8a3456193a583cef3ea277afd0db0a7f348796c3e8c22941453876a8caf73d0f645c58297820264efb4309429a631ab01d8335419c53167260a2821f144d0666bf4f6f2f64b59d3ff7edadc88397a57fd62111eaea9afa41e4a8cc8819ec47e540e335fa15a713c81c0afb2e244627bcac9eb52ce07a378d0598c5fc123cc9f3ce9dc808b99523bf15981722e38815cba332b158e9d32f8431646c74c2795b3c3f53c5979f37e0223e9fee00b3c56560806f9d0918d03b50b605b650e4df5c16bcb47d27b797f752e9de47c5d5d05284e1cfe7e886198bea90820570587ef2441ca8986ae72ec488426eb8484d67d94a023b909b224e2a824638ace082cff2710cbe2eb79bcf83de462a90093d31a898667dd820eb1d30ac273e619f881feb7933198c7aea54341a72e0ed1e90210c4b666f188a66fd7ed69d23c18b19ea1a3700ad0935e3e87c959549156af515ee4154361929ad9551495c9c516af8005d8d4e0b6311c270edb6d8c782ab244564b4bdd70eca11f7b7c95d70ae89276b6b5dbe86d45698621040101518b20404322156fe0f65d745fab2fcbd0908103002e2191f20b030f2c601e310f3c6ba9d267105325489e8756738f60b78e5ef815a48c1273ff79a6db649ed01878c28cec2654319108b19b4bfd09f26c546aff6809300588d859297d949d4ba7d338822ccdb76a6ef485f98b1a79df5844c152178cd905c29138b963e8fad3c38cf430abe7bba6a7f2be2929a202f0f78e395f444805fde4159a2eb35be96d8ca433e69c9e95b6f26222e657f69699b5d08eecda0ed5b12db318e9855da881730ce777b48adfc8680f7636e645dd6389029019515b2f5d4ee384945b51af43cad92059ad43eee550cdb24755535cd2d97e1d19cb41ffa02d0d055315ceed4b4c2099d1d0698828b646dc19229875c498dc80be1e361a2802c7f6746cf9cef06551710e8526f6f0edc73281db254c54b07f3433578d50fcdac1ccdf361b1cd84ccefab688232b63e658601f06d2bb8e09a91f1b67886de101a887b6fe8908408ef5326b3e45b410b7a6ec5f91ef5973afa102cdc12e7936c5817d9d2edf1fb2cb1a6951b55ecf646d3aeab794662143a00a6adc6cef97a5a807b127e99af9a0ea6a1756b033e017d3cf489f5bc4f9d06897cebdc678c8941f9722be80d9e0ceebe1077a3204e1bb7059c580560bb42ab49d657bbf18696dbb08d2717c716600703eeac4e1ef4a4512c5c5b94a58e25963edc5dcbd31c3909f5022006485bd32070a1e8f15251910b4da2bc68a97973f022b76200c0e2bf7e11d5f34b17a908c84816c42712130ae42bd3388d850a7a219e153d53cdceac5c02d4e86be9b66083ae439d0bf68138f11b6fec82761e855877dc3b8393c2c3c2c0991627b8d7b8c3b524573b77a365a213a08b6c24b9986ddd73166fd886f3346a8ebeedf2357667bdfe815b9c74482a00148bb82d327330c79a40dc4282d5db7dfc211c350fdbe5f099b4cc04f065477d6340e9c04eea0f3f364b0f46baad08f668ae21ec339b2529a3c2c07bcd36e99f546c76fe106aa19d143db362fc757020dbb5f90ece3998498b8618545a0cd2827f6f9af74c9891ce5df096d691b5825aaa6feb5066c211a5b2e7bc51ab4ae27126598eac95c298e9b41f9dafc27e6deab6c7df156937922cfb20cc2797f43cb45a6f122c0e202024556707d3357c507ad08f918bef9412d1f9836e20fa23a4444f219b0f12fc888bae98b75a5a40f013a4ce9b009fb92b955a411141bfa6b4cf6c086a983391b4e3ac8ac83dbbf4be59bf9040f8923f21c156552b658b24d24e2eb8859b7e4124df6401201fe9168d27c1f00ca457f9fe4128e627e549a73c4f26d5c74bd9d1a70ec7e552892470e4c7308dfb49a4ebcd2eb89365ac2dfc01fdbcc5843e63c04630e418a8d7006c16a9debbba29cfcbc121a76f0044d038b67fd1227968c6f1174f87a1541e4e37e02718e6454cdf603f6b800321e81f83dd98bcbaf0a208639e20287d0e44c8eb24cfd9b0b97c5607bcdd661e1ba8aaac98d9c0eb01f30db294f6022e10f774039a006bec36d8ab82e698d0443d5708146754090975cbc5e87fa7c26d0e311cf83e88ebc53f7ae06da8eaaf4966d4c32699456cab29895d974fe16909e3d83fdccb9f71c78f126e0770f901cb1c959bf5236f111aca2116173fdced797197cc23ce4dd78c70e376d70fe8c46877cd44f7ced3b1a2b74050b15b960a07922bd3d38a44ee11bd061a4f1e9d9d1afd1ee2a82333bd9a0056960a63db083f14c01cbc00b718da45472b61fc01c01cb926ca2f0d263ee6118cff1f9ae2cf784eced9df988aca52280983a39a7051ba39718eca7a059837379026bf7a43e9d5d1e471a40e5f2ae646e4f4dde20ee86483e05ed227ca5a2d137d8dd15f30f9d91789cb8228aa285979c29ddb8d299af9d23b96ad145f63f2a6954fabe1465801a58e82644aafc1334f1aaa321087e32f61c5a5d9e14ed0e17f65363c4e505e99ede20e260fa1285bed89a6950fa4f8de2bb389edefc7a9026c31e32eef1255b645b25e1bd8d8b5a1c0c651291b5433b2f11fadb1314e058ec8021db0716f6f2a6e682f57c88a6576fb356efeb4c6e3acc28f7cab62b897316c25f68bf9b559fd16362598d4f47fdd35f1d11e04e29cfd07c81e2961002d53bc2f00217f83dc273a60020eadff45d9dfa3022a3c03bb6b503f690d8df89b504bdc2d0bcb6331646b317af942351871dd21a54e054d241fd8bbf6feb5d2d0095e4c5b8f8923247bd71cc3b4ae47da0249469d18176d41b354ad27be8f5c1c9db0112e1def8c1c98328f179f065c7502b05c82194e2484ba4d55223ef2f31a359da8c8ac498eb27a1b002d12794bcbe222a77e1c368247ff7a60be42e1a70d887050eabe824ece844844c183d7e6a9a59b9e28305c25840c2768810f2e16cbdb7c600db676436a8531bd52213cf442c662fa6e4899b8ba0346eff8ab9fc5312cdd272d45477c8e71b7fd15d31fc68094103fa084148c86ece57b7e1265fe6d3021367ad01856bcd78828fe2cc9c3762d768ccee9dd6afa5f1f01595d74ae6950a875012809b931758e8814ca030b1db70e37e01f6459aa28c7214442df4ad8ebc7949d17c0ebb6c47c9885ab5c201d3c07c07ec176a8c4498cdbf0f68245474253e9b49d328317df0bd59faec5b0e49774e68322d968d2025d846ef65a898fc6026c55f28149dc9567aa50f467c4302c60a627504080b7569b71e5a7bf269bc447ee1afbc33979640895be9e61584b937c2362490d6ee583074c72a7d8e14cf9687ac265d04d66bbd287810f2995392adc6ae30e4c6464bcf05398ae045473f6e8c8d8fcc605ace417e2bc580e04f8b48e45d89e8ddffe9103ba0aa284143d4bf40b5ea228c8ff95c5df9825f546db4b292bc00a67c5b3e97f0d468b16c8923332d8f3043843a75ca087abbb8d6202e8eae570e93ef8b92beb36cd597c706d02b6fd56e529d88b7f0a1c9b26ad0d3903703c358304dc63c16f0a85385203f8f164697400a0482716890c30308d682a6ac7d14bd41a57f0c4b88655bd08930603eee17e40f065027c6c57ff581f7b00be8242d8a16327b342d524e95133c5552a02f0315f6607169a5696cd3658935854355f6ca7e3343b4cda504c971a1fe83ac461ab2e0fa64d20e09b3a9182c8c9015fb7e6e33179aff0b94770fff7a8ba015fa3daf0e0a7d2c495a6314d9b118434f84ca3951d4d73d82deb96a0e24912bcacd441d1862d15cf064b39eec261d0040e6f009d546f06909898e946366d33998f169c2da8f071c9815880846d11aaee97b54fe1538695664d49026e08b9c0ab9c2d964d7e07047cc6ac3723a33e4e50f34ce1186cdcb963e44b930cd137131a79e7873a136edaa48078a83f25a3953880620f9d51d325d02a25da29c41adfae5c2b5067de359217957b1ecaff1ee1f46f7e23be291ae8515106817153b48bcd54ab34dd7ffa839ca72746b5443bbcf06cbbd44d20d9413b974a6d622d43275f4c34da12b57bb7cf8b80030fc69a384231d174fc42007d0c370f506213649a9e7ece697bb531e9632682d2d04314d7c3d30862c89cdf4b1e601e661a4d985d4c34421df21ce90324a2e9e4ec996861789d254ac5fc89c617a4a74a04bdfc46d49f5d8c03b5046aabfe0f92b5626ed9c250dc4d289a0d819674e8b5d940af4a41df03d0831e53ade31f6bb3f22c209fe2a33676f7515816c77f4c507169e1b92c278c1ab240f3e083ffc3d85817dc2e85b0ce2932ed550d4a2def90d74601ad8664552b3a0f5fb71596ac81275df472c20d2bbd6eed64523f96c141186c4ef0d78e3b528edcf07f0f0aee17aaa0d512f270d8f35a7027c1fdddfa602176fe03ae17a0bbd6f443d886dec98615b3632faa83b61199822b29c38508064f75cbe52d7436866663a2b1fa76dcae6b4f443393d74e1c0ad31cebf038afd5bdbe4fd25a4196b7d1df27857acabe669c776ec3708c5dfdcdf7491002389aeb020a6085904ea61bc1cbe631a352803bf799a08ba9046e6b3bd94709f9545309ac1d9f9e4b60ea382efef628c0b5779700b5eceb987c114b303572c38aa60cd1664ddcdb35fd81fc1beef90c4dbd1b70ef8509a3c0587fc56bb19b7c213dbb9b3795c03e8cbb0696c3646475627fa8269e6c334bf07e9ae4ae11beaf9beadd01f6143805e04f682dfc9fcc5893e5fbcead3c1f6353a9b08f0392985c9efe167df0771d793a36ac6b285601931f29b73c4c57935a766d7c09556f7387cc24af6f064ab0f6e53d4aec370868f945506ece161352d90ee1f988025f97d204663bc6918e32e05cea5c75fae1fc04836f0c806d7d9a210419afef0553810d312b787d9192d8d232967ae4a1db58bd0b1e557510c2fd7c0c1d9811161ad3882f2a27ba56a03093bd7c2b3c4a0a02bfd4fcec4fcb5e043effd87bb26ec3cf7b797ad2d0d52c598312d52519689e5fdf25e56543f29576bea9730b1eef01a0d73d1b74621901c0abd1955fdfdd2bc262e7b03da762622623f71b228849bdd0d22f51b2d27d62bfbeadbf00834a065ae20bddc6218d62a3bb618d5e278f411dc74724ba5eeff1ef890a052c1a8096fa5484f678e013c15ed3b2ad8b4565e162b110801dc32484857e8374a780855e748f143150b4f83bcc6a3ecd991d9d1dca2b7b566f7d39161a80053881cafa63270318eccd656454c657bdc34e4f8e7d39d58f411ebd21b81d26f85313ddf6d6fab8002ff4a8d065c8cc57193076ee4519d8597da318cb00d6f70ad89c8258aebedebb0923d8d5311bf44450de3f8cc3bd4041e808814cb0acf62e5647dbf4aaa53a3c493bde0e70cea8d2121421ad51c64d1449c804bd078432adc7897b2259bc6758d243755a4cbb508d7da9402717d728c209cce6eec7cf87ab0db25c78393faa491de3ec1dffe5434004396e9b7b5eb2ed8408144b00104312ca0894a7bf54bbac5d084b6befe8242c3c0c4a5f03b98d2e33e78836ac8ec94b7340f21eec5712178de276cfeac0b03a46c744521b5dc1ec9787f94d24211fa6c206ad27a1e1cf1b4ed586045e7918f29677b5fad186347cd675ce6fdfa94f38668b77f166c62a65f8ad0e459cdcfa781fc43a13676e4582ffc9b16d540b1fb18ee502f0d99b1c06b872d66d6b90ae4f5d4eeb3d27f12b25601c69ef76a13c260f3e7ba7925693377d7e624d8d91f692045034d84b13a2b313b6dbace0608e1ddbe57a6af57ea4fb24e02e1a360a81a92ab6aef6d2028010fcc0c6ebaf547c62ecd8a6a6c008e2032f0064ec58c7885988a5678eb4f734534359cd86f5f9cc1663c75ed77d83a4a11e692ff1adc9763e838a55039718eb60ec9816a2e976e8154e9399e978068d04b5b691f8a3c6805f8331ae23e383586f32de6823c0af6b14ff80f160d7338fcfd88860eb1b893bd408d8740bb24832c68be53263941d5b91d9f5885a6abc449ea5382350724ce6b88fc6866061adade0ebdea03905b81a3ead9034967b5b56e3514d70877ea0c3b4e8fd667afd91c5021646d96646a01040ea907e639624a82b869be94d349d9d9b6783b98943dcd63ff5c09892995ecba74405b17470e16a4c890df57b8a6e146a72e3cae207b27a14e838bdbc8ba2360a1eba01c72d5fd02fa2862d4b07d102412ed5982903913f4ccf97701d9594350a14a0863fd43f46e8645a4807c5c84deacd7cc9e80645e0a6467ba04ba0f8948124fa5d5d254e1f0abe1ed2e8fae46be52d4aae5c4ba47fc33def5c3d4e3589bfde03b7d23fdea6a3d99e3f297f222b2c29c8698f1bc570adf8e99d18940872a5d4faebaed5b0e89c3a4468e68a09ae317ec383edd6e4f5243d061a4f7cb43931388b0d579c2a66a8d435e425ce67366048ee48c99786fc9327af0c9c95f340bedd8431096533e7fa252031dbeb672365328e0703e928a54e251c2ae587e50ebaad78dbe41d518131443f0215b85fc120c8dc60c6be168e7b447cb0632f1a9127cd73a13bd6f1469352ac37b64c9edb6594979e848e837019d25ab59aac5b2daf7463396124afd6636e67e4d6aae1db4cb04ed8a3e80b8885b2073c32becd84d0eb6092cb0092590ba9f160c76a39123c1347f66ca8f01aa586bcd899962b5e8c0983728a7ad9becbe6a5c167740a8bb3a308e4af418505542a7365c099502781eb348437e258e1371649b564b2b24b12d122f6a1c7da4a7556428abc47e3ba35526923d9bb76510511671be3bb06d4d8e5671b10e55168bf195baf2af7692a2f006d2ade06b0aa0b3e4278f9f8fe871bba8dc6eed881e3da9110c3ebe37b2444b124985d200a66ffa85830abdbdf0db67664d39eb9147585d9bc422c29a7b52c3984ab8163ca7a3a1b47baf635712bf216db5e39a91c030047264d25579a53787a9421acabd858f414fb6ba644dc51550ed8d3b99f4866d3e04f2c47e8c1840c05bf22bbb356e7dc90d756f4fbde2fc78d6480c92424e32d1e56168f5b1d1fbe9685a7a0b46e223f444a22649688555829e271e6b8a22d80e013426f14dab829524536759ee037af756adf810efa3eb88adb4107ff9fe4d242a618f4063f9fd36075e8dd94a893f6ca04d9f875e9bbc5657cf7b94ee9725acb70ddbcf9298e6d7e6944d7720c87e1d995c6043d710bd593a1b55d2b9343798ce4b0d8c811725ae67294ba4334a97039401d76c171a944df6d8d0b9c95ac23c473848c9e640b87e03cb8270dafa30540f0d5f2871b7c57c96a12b7428663c9c15a4304208e91365e3da4f2dcd297582a00f558900c2ff9b4e0ce21a81143c5bab4f40ba490e454673c06034ac152c3dce0db7df4b1a9826940140962773a1a8fd4fee54b0c7b21d66b100cdc12217fbd6e0d381726f788a60af3132d43f47d9d8aa778101f1f228265ceeeb7b5a235b018197c8c2acaa0638a12be59dbac87aa6d6377355f4b87115e56da524281ac1b3cb73ec192a51e381ec473c3929606677a996f0cf5785f365198c35f152f949abc1d36c1cf56ac0a3e7003fea3e31f5cdb2216929fd060c3fb6ad6b7b66140f0ddc3d12d08ff897e762b9ff0665f05f4b299c32e69540a45fc7dc722224fd20866546ed1204871a5165ea0d8c08c2094d9a64d920f8404da8bff61f6862741bff0a9fe457548d95c6b3f3d6ea103b84cd152b37b69d8bad53cdd3ce7c5d81362d28e56d770058e3f7577557b15cef7ba12fea90a5c8a41282038f1bd468e5929f60ee6b66b331dbb0dbbd184ce09c7dc8db54418cc8dbdff66f8cbd74ceca6e0eb0237a9a020106ada8ac2910605d5dd5417347154c9a011c38d480750611cca858373e1ba09999d8588ba6132f79b86081054357a47a51a98fc6c39e88a512e5751d75c5383cc964df74f505e4e3b3dc440c92b7f19653af51c65a38d308de043a33a2c8c5870bd26f4248a1192dc2a04b468d9b14412595a7275eb47746dbf2925087f995ca6a7c5a6df186f2011b95fb85c477f40b239588df35358af0a4d845c7a07bc8920a1fc609a7bc8cec0c732105a02a45c3b26f77158f4e91c6bf5ed63f8160ae3baa48ec53d6921f2558f24b13ff3940e9e1ea38242308f32adefde5980e076e7c80a9abb84e00a628882e67ac0a889cef5daa956b95703db7dedcdf1d36920afc3da27b59dae2e421b9fd7f657d2b7d5e9695bc79f31e4108d556a45f00d7d68cf3d2751f8b5a767b7a596e1e3e34ee16b94544d4cbf55829867e637baffe483c7ceaf1bb1b212a99c8df55815136bcb01116ac214edd2251aff3351cabcbe41186305069380c5f478b09e1a9209cf23c6821c8a69c684cfbe4230dfff91c1c8483153dd6de39107162d282098cd4704db188b338731de8f0f1024279a413939ca91618d369035683610424140b9029fb7556f3350727de518800b6e2aba95b153145b09ab133128ce4366e5686074135e8dbcc46f09d0cbe5c19072c7854e5138412bafdfc626f1801bdae12dcdbeb81871789a66fc1e92bf66606e07dc352dd568ca53422383f8fab6c44528674d5c58c4728600b5a7254cca8a2f7ba915f4022304dfe7c3e3b6301f44d9c9be211f60ac19cd59b4eeaa24628e33eec8f8c8402fe64ddec9c9c38cd13d12a5d71b86b962e99e825453f2128cc706d36440f03e077724f0c62f02d903db51f88cfc183f9b056ab194b5ff2564ac8c09b5cf8fcfd63afc30aa2f0e6617675b91a8bdf064d35a38f53204796874c739f89cce5f1586d8c0ac44113f73205263759eafb41cc46425c2a9f92c20288e238c18207af1dbe02c32cb4d7563ea46d0ff1591ba8a4e7e531ef30dedc7fbca9c77734665592cbc2455c39817ffada4e7a9358b46974f37b9993ff3277b915dd78fd1db9a47aec6b6c24e13e27487817dd7bd92229d10296749a8d4d1abe49dc7a99e575da6c1f7e82e56011b50a749ae58282fe11f0f2f2057da231ea9ddae72aff8c517bd71fbafe62f581f8788dd08d675f392eaa019716e8aced819148811e7be2fa3ecbd5b3c6c1b7e4ce3f57cfc2647138104c225a0548fbcc5b50f14ae4af0531a20ebae36e09d09a34a535fe43b0863d94427480171b07aacfe51b08e63d4496250fcb016090ced27e8d1dacc77bb3078d5d50b48e7ca99d9a90bdf6ff9443c6a936210f3c45ffa760830fb51d4cedbec2b3639a698d796c43fcaea8c0a6f970f1d84498c13efe957b7156ba7e3f0634d0c8922b83ef62ed7dec156d6bfc035d73b48763838e4bbb9b49e9cd0bb02389e72777b271680be801abc98482852d684df15a63108c93a7e7f25b519cf94a1f0f72ee0c334c475a87e5c1306e56737c429fbdde03cdc36f6541db447727abae41e2a6ea0ebbbfcf5e3f5b8130e3487a07716710cd6a3da8d8611265b578e8f5c13eeb36f1bfcec6221068f92196e63fcaf240ee1c1a6853ed715b02dc742ae16d2caeab721d2cb3dfe5ddcaf8b94772084537b442bb42756f6e71d2bd10a6f642f2d706da82230e0f0d3c3e029a05208a13d004176b9510556389ca15f2834226cfc2f17869b978a816f718086251f34afc38c24c89da9c4c7df8c0a901ef9118551c17a69bd9c070c4904aa4ae3a85b30145a4d071d017d1dcbb7b9b3dfe4a9a1230607714027eaae3374557df35e07b62e0a23aeaddb079b107d3680c687853301798768e33688c8782d975dd5db88816259ffd2dd1af9bd7c85870c9a865a48db7bef2db794322529038c0a1f0a410a1994acc7fb6ed0a8b0020eb05bedaa6183ac901d72efbb41a3c20a3858e5d5df9c8bac9af99887469e4d4924761738d4e1f9abf2d2b36fab58226b8567f2b07c6c332c2696efcbbabbe59336738559eb066793d49ef853c4d1e3b04305f7e75aee1665addad32b93c93f3680e9b628f8f493ad286e98b55c33887998c7e4ed730aaf2415d3275b2696961f3d7ab46df9ee65f950a84f024971c3acc55d71435bb4239148d6a6c20a38c0540e1d3ba86c7b545454648b386ec51b192315318b973378f05216e0e362bc9137682a57c5954d4ca68fc65eb10267896ed840913d878e1d350060c1860745f177a93050d863e2e0a42d9aace6e981625ddb4e581536930d07c701811cd805c9be5b0c7245b8ec2cde12246b991cf54daec5434d56afc04eb15f937741a9634e29a59c95badefe9683b357dc1da11bd69e1d31c66e12572ddf6cc566e27bba9e88cedd64c59a76ce0a5bd45f4fc663431cfafaaa3dd5074ae66af2fddc8a2918c455d6ea54b31240d8f53aa0dc90ee7c7bd6a23b3c93c56d17da061f59e7c5b0d72f7ec65fed69199aac95e5e03827ae8ef99c6a16830d7e3684c952f1c72a1d9caa8527ab53edd6de8b42b973923b01203f4eca35ea956462f4cdd54ede9e6b7216e9958857b335c4abc91292fd7c31d8ae630857070d9847b27826173ac5b6bb65afe8d6f56d9b43ba12a643e236ec622e4ca7572767d9309d93175b58bcaeddd5093128df5ef242fad9e0edfc310f3b61d0c53709f776ab5777ab0100c7195d7693b3780b0b2d2c9ec903000b1ca784cb6e53853c6281e39cb89b15ba5b4e4e8e0b707878255b367ea35ced48ce93c96439e3c4487349e9b71e5c6455e9e364cd283f8e8a1bca56e6da09f28d54720d0aab3427bc9a4b38d5ce9ad1c40d99a7f3c9ea95ddb1df4e783fd2f785fe7dda1782b6a8530d821c186ce7a6dc0c0a8360b78c7143d90a33d7b72283f4933946bab8f20883607be90497fbb9fc8577ca7751d1b7672e5eb9b0d328eb1744edbc0d4e8c1e656be3c1d924d712ddd016d1f8e89b003839a4e43aba68c9966cc916129283df2dbbc59dac3959dcb7b5b098e6125eb57c9287e5eb2f76776b468b6bdb1ba85bbd621e0de59a07a00b92fdfd4057af76708a4b5fe8e3499f0bd57ddca7796153f9f6295b39361d10eab6e88a9115835521f6d9e0e3e927590cb6f32777babee28d007a0ca039d5e4563e2a47800e861bda05991c8b244bd7c4d27272e11718d40c1a3132356cccf474ea7d3768aa0a2be000533974603b6a00d0b16033cd66638fa955b67815a710499e97a422f43d5952483aa9f2a19c82fa500205553a27ab5bdf2f12cb2850b1459ad0c1d71104e996d9d278bbc5c5413e2f61909b29d6c130d93f3ebb360a5cfef8f343137c740457538627b9236627fbcd70878666a0c1062af288152332648ed461596130e25b4856ab12b70ec14045c25013c02b09ccc0600f0dd523b62d825c58ec1b0294e4720cf3105edd04c520811a70e8f9f6d81d8954f07a96b591c808e48353cd3eea0a86fa0d61b0ddd65aab0b1c67047ae9b9b489d09e38d53e412e2e3b71438fbe3a71cabb3a94b821f844a210911c55dc30020d81a15d7e600e2e2ebb9452cadb41b2ec09e7c4d5f1e48632378c5c199b1e3ea80af3202121b1ca6cf971d58b9e0ea27b42498055f1c6e5abdf7833bffa0cf1868b5d7581196cb008208a28fa58c41645e0c0bd0adcf803041110431f7f8000f2f9f80384938f403079ede30f104a5e3a17272059c991fef8a344474ac93dc411eae3cf10408843203104103f431ce9eefe6191c1faa2a50719094893626335f12756122c23246b08c9eae17292653a5d6169d9a2258b531417265eb8969696961718219480e18c4009c182199c1462071aa430623823c8685cd4e0626262626ad80842c8c68b14339cf48248c239e9fd0421841784cec7799ee7f5276f70b2931c11dde87640539aa24206c50a9c74f9f89304091c9c4ca2049cf1f127c90e29d4c71f243938e921d1c1492438560049a612fc007124c60f10467f6290972899e2f3a3c4c98f12264a964cf941d2f38384e707490b7e90b022cd9473d228c32bed73a153edfd955070431f210ab56da18fdfe2a2da8716377e689fba0bedc3061f519678b8a10fcde786f6efb71fa9bec5a157414ad9345c3d40993b74cac65c452d4022a114f1a1f49164305873be1e1dd9a93a0cd69af34628199bced72d2e4b8a6a20ad352d038f4cb3b5ac6b4f7d2d0902680ec918c349f415481399967a3144a8830e7e395c8e08170b92bda446cc53c74a6bb1158c5c3f47824cb36d7d55205685d4e89b08251f7261a5728317cea318195658c1230ef56264c0417b3a551d87471c1be56243bd621161453abab861ed39c2417e4592f3d58f6043bdaa3d9d8a37f5e51782eeb5c75e9b073f0623d3a90ea057ee2fc60129cfe132a43cc7a7c31244a8e7701de697aa2e430e1de8878a38fc8554870e6aa00e8a9de22f9cd4c18f522fdbc9586d1a92d810af6ab8e21f5923ac8a53848e7cf578e42bf7b5da9caf56e7ab6c6ea00e6255ed21be36ab817632963d625538755e393cc79703fd6264c8a103e8393ce280142887f9c5c8303de5a94f071cbac96e062a03f8d157a7aae7f8a8ab53f545bda050b67c08ab6e78fdbc12d18f89ba480c1110fc78c88be04caf733a55a9c7479daacdd32d9df00daf5d0d85c1fa3d0c9248be31f779ec37bc66c24e58159b89d73ced84c1ca6ebfd4472f7df4e291572f4030ce5e1b0d110dc510a15df471111cf01b88c1eab2a594d9e9c18aec06faea423451af72784d79f53662950a5eb5db626975aa3a8b6f373c76403e77815b05cf7aca8b3839b21d06abd756bd2d1ecab726e29cb833be4dca89c1603d6210c32a6793dc936f4458074448f659a671dac6715dd701c188646b87c4953853345deeda2477866ff79a4c2c2d2d1d108cc84a151a31ee9be48cc4b862c37319b75244c420f7f24b725d7c7be13827aee71b0c677fb8320ed301c18c624d2d62b0da2b28540704bbc260c530a322066b24b94e448343d1d81d29a5f46467772c127b84411acfee20e980d8230c4e3975626264646a70345ea30382113158318c06b3c260c5aad8e0643a21d963556accccccc8c8c8c8c4ccccccbcb89c6666665a66584c3333333333d850aca9bee5f06288e4709ac38be0a4bc1822299f292f8233bf1ca6835fec88804ebf1ca8831fd8a9ea3044dc1003bf766f40b63e73da0569dfda24358f529e38919a16a7c8f941474a9cea1a26331e5675105f7de64c9dee0111a72f14d7738ca853d5a7871575aafa36a59cd1440a45f058b6c3aa225f7d01d94e756b6fd60501df1e31583120dc888516431fda1d5685190f8bb658d5ca78e28d7cf0b5da830dc51b233e942f6da4cbaf6fb8e6816fc3f61b9e79e10888be3f1b64ebfb866fb14db5002f233b4b8c5aace25810f4d5270fabe6579f2e5e4d1c6c885561eda93dac8a0992bdc9e357c7aab0aa9310b1ea5a2962557705336255c9ab6362b0aa7f70a16f789f070383d539ef06e979374cf7c23be38596f5d56d78a1ade18532325e888af1c2130d2fa499e18536a8ea30de0df35fbc908d7c7597ea276ce8abb7643b5f9dc5036af1101f85adf3350606757a157176be7abbba5ff1e68809af2c4e8d38d59bd539ed24e843d9ea5ee087ac83aaf2d5c36ef59296cd09bba715360c5a2ca97c8d42210b51e1293e3c5ffb48b2503d6c1784321fca1673b462590703d6c52fdb966d9bb66d36d67ca41a5c1a7a251353d3a7bd5426b37269e0b81f44345ca0061b700001268db0aa46222111c9cfc9d5e916bba17ed468c74fd187d5ead9a365470921b25b7614119cf021f82c953c7b64b7ec28665984ede3569a73634f738cc3f8cb3266cadb675de64adf3caec96633d7b6d89d51d7bc0e8ce03b93df5b7bf52957dc67bd6e9ecce564cab948c635a76ed69b1508f36414f716939837d1711c5e6198fd6693cca9d764726a72ed53b217b475b710477a8749278d3cc612221844e81f228230d43f44047547193dd90222aa20c2064440899aa66d1c114c885012b50df341a2131974f2d15be0f327019c362d8840f2f18708231f951c7dfc5152f421f8518910befbf8a344e82d30c46b8827a4183f435819626888a02a9bf422a69045d48089d9b30826452029e24811275812852560fc2c11c29648b14b96c8963469af130a4e0b6e6893e1d4e418e655dcc10e8dcd8f21403f3d4e999f3d7ece6ff69cced34f3c1f721f7b35e5bd738b2dd270a68f31737227dfe103c9338d0f3b1fda3cf77866f6d992c6cd26b9a5ee8e51f6b0c539e72ce2424fdadc56dc50e6ab87373ad8d55e94cb384f70763ea77baf369f9df2b01a46230b124d4a9b4ee79f744e99e79cb836c9053855696010ec953462e4a51106eb1108563bb862ce0156f157c7a16696da5a6b751ab2c7ec0e543111640fe78e8f9887d7c6185404a53356bf586badb5d65a6badb5d6a6df0e0db80eb6d82dbbbbe3ce1669a66f92f90b3fc020832d39ee80d829b2b3fe63696439499857698453d4434e72ec71dffdd61c7ba40fc1a7340cd2e6227769aca11e73744399c32a235287579d53972c562d899fcc6190bab4f65e146a7a084e1a38457bd58098a24ea30f9e76b18028040111a46e630a19d9820b29ea99d78341ead6f3c12075f67e30483dda34b51b8d43cf6e915c1d9903a3e4b653fb2d2c36f68dbd8c876b6dc430592b53da73ce6eca1fdad00629653c5cf91fda20b2c8f78c36d648b7b1c6094d53da7493db8adbb413afb82f864e4ddf3e19edc37cc89cdd771bf2f55e3b790883d367b4b8985b97ee4253ef861963a463943bf905c9e690e9d6de8b425d1b1d4feef41d2ca031106155a5d2ab5b9fd1289b324f238ff8453138411f1108863984555cf6718bfa105e09a01583046a6015fde93850f9e971ce2b7462cede4d7e3a1843ee1b890f697e1ef1e18e9f9c1357487d50f3b9180f97624358c5f2435865fa21acba1f43af620fb1f7a2500e625f681fc3aa7b93c121ac22714358d5fd1056713f8455db105669435895c5bca03de6f5b12ffcc0df9dd213b6b895bab9bbbb6737edaedd58b7ed9653d8e256b2f1a63d3acbcfc61a96266d114fcbcd04ddd99252c9dae94d7af679260b88d09dce3cb393423288a5259dac4c728a4b5157678bb1a8ecb668015a90d11f3b2d8a1bd61e9347bd2877b05a6dad59ad5aad5bad5cad5dada45ae9ce0fb2156b9a590c362ff98dd342881bca568bc54d6e32b9471c96971c62f88ba1c55d9ce5c565b626ab53920737cc5c2cbf6a71e95c8b678bbc9817644ecc0264cef3d73971c3d9b345c164278765edbd281408d280ee206155c3a0e8dbed152b460c64135ecf1d0366db8bea1ec0380d93821bda226bef45a164903b6efaeaab572c3c2f78c10a9048ea830f461c6f8278d5afec495c99dcf4652e9ab93217ad42fab3b8a1e6635ae252a73aed021f749a0927114deded82986acf8cbe8fbecb50f2ddc516262bb2405f309df0f1c707284f5b471f7f76c4f8f6b96432e1ac12ec13baa78c6f971d7fdda272fb3b7243d9ca9854db7559d7695db7751dd7755dd791baaed475b5156fe827630d4fae2c8cb268e894b44699b6711da974298bb228cb6dac949d37b7d4499967529e99cd609398c66d9816ce6ed239e9d434167dbd7a35b9d7e9956dbdc9ad7170b1ce6640d26c51e6e2b86ea35724dd3e942d7ac516653320954aa552e9964aa65289a5546a29954ea5924ba97449a552a954baa592a9546229955a4aa553a9e4522af5b0b1217117a43b3e942d3ad41a1a1afad6d1c5d55c63694b78d5e2ed9951bc39522282ed61ffc4a2aa7e8bc783eaba0e88754a4b5ee3a35b2c6e0b4fac69172bc111e16efe320528dfea9729c8c92a82d1735f3893f89e12827f830c33a36f39a59c18578c9959532b513b34940d7ddb7424aead11abda063662b0dd7dee74a6f3483cc2cc33594768473b8ee440348844a946bf76d250186c17833c0c3613ea21f3f0b393ae4a1f3f5e9a7e93c1cc458fe8113d12da423bb2459c6ac77c260797cb5add048a3775b6b4eb91922e67b2e21675b587bbf6549fda539d305727d10586e23ae9960543b3d65a6badb5d65a6bad8d25166b5bac3d59eb62ed8bb530d6a2ac9d616d025c78f593be1ba4174e1e5bc23c9e3ce7c743a90889cf43cc3d0c36fb68de1d104de8b24f9b62eaa4c2bc72096262c5b74f274636a32b5470e5db670fab7c5815aff0e1e85d5e15af584110af18a7bd4e76b12ad47abe59156a3edfed990fab180bad875561d6f2e9bcbda97450bca9f1a6572c4044b07d6b15dd8935a81e20e289eeb02a467063b9b7e5ded3bd2ef7bedc0b732feade19f7761fbff8e092e414065b4e2e2f3028cbcda071afa665a4ae3e8b573d1b6bbaeebb0083fdd1f0d283edbb4192bc504e798e27cfd9a4c5e33761a991671daa32bf2626ef18fe18ca645516cd0e56af2e8ae5acef2e7ba279b2289915df5874ab48ee74cbda7b73542a5ca95c134bcbc9e50546ee34e7c4d5f1a452f9f61b46667c3abf1ee913c31e7f0aab3407a9d8689f9028349be8dbe364d23cac253a888a9e2b756666e61a187cd161e586b5875f1b89d3d1c50d27cbc626c8b541285940a62f4686939bdcf4e9d0e2278f382d5e04471231e5c0f2b9b8cba783c9e44570a44986964f029d4cde462a0d19e123468688bab831b2b86c31eba5db2eeed7238b3a25bde5933d9d925e042786488b9ffcf4e5208d8ae0f017cad734793cdf9232a53333629e8d4e661e56f5ecd687ddfa05684146ab794c1c16ad2a1fb130e225808f58b49078a96308573e136edf5ab896126c9e7e7969f3d221841b76cb9e5cb617188f2f5c15773631b90b1759f5d23dc0e446ef80ee1e60f2d8a9b9238c2b3f9da9a494d228430a3ff0d49b983e2154080d0c4ababdbc7440280c07d301a10ed301991f6745a1360b0493091505e886b688594c1e593ce9e2919f4b62553217e9bb625530a2b68c097d3bd8e2275f6159c4d45050c45eaaf6e8e4fbf5cd9f6c713e35bf327993d12d5eb378b15b405776314fa7bac7e4047c8e2c5e6d377993a753ed747e93f57101a551a0e461b0c5c46d36146a9bc1cde88068ce800ec832de03b7035d4619d73921d749be39a94a8f3b31c82f51cf7e19e45a92e2729e8ce522839d73cc043fc151e20d6e285b581100be65fbc62d97a21bce56bca1b5d6a8d546ad33b57aad5ead5fad376aa5b38855d9b747aca85745453438209c1377b26a106fa6730f18114a917cf2927b5de9d8c7e9f21d9065f073e7cccccc1cc0e1882b5b567c0d3b185155c4d9cb70cc33e36a4557b7e86cd51e5bd4ac627709ad4ba553d69e0ed62f14b15a9f754e2c33a2b6a9bc6d2b9b9413ab4054ac633e2f66179478d333ad330d620bd3b10e48759bc43a17c60d99a75fd7e32a9cb24e3d1e623088a9c41aebd56320ce02076f9d89889c8fbafb5add7e439e33b995ab3068bd1ef58a039db21c136ec843403947d6e9bd28943b08863645d6ad15aec243acaa5eab4bf661cc633a201588a9d82fc48e62ca7a285df0d5390a51b6e28dccd7a2ead76317a72cf6851b8311577cc4456f9d06bf86cce4e086fd0a5d68ca2e062df7bc58955d89375478157184aab4950f92bde6d499c7caf7c50dd9e5f3d6753cb9f6025967277662a60e48f5dca339e2d52fe98453d6358fca96642279628e7509642d0a15db25908d75e9842d94b7ce016bc4b9f50bd4b0c590483224520d12c906893443223989e491481f896463cd1653c3c68cd7c1f065748be9cffad52f5e492b5a915571bef5bec2aaf8f302a2b73d7ae82d0c58dfc37ad8466f319cb08fdefaa66547ac22c37a5b6f9dde6916aba85bef96db3e12c5878dc4e7431a283e6c266f7b7cc8476f6d90e52157a454912224658a141f29465298482942e6c41f9f209f2b7c5e5bd0636eb9b861bcf29483c2941e1e960cc23a688aecc15cbe24cf0ffe217530c78e30e7c6b8a10d3ec2da00ebf2dbf143a8f7f236c9a5415c154160106e0806695150cea567838fb7443c10f4ea3ae636f08a08a7b0fbd9501b229be4cec020e61159e2da8f2f0106318fb1b606f14a4e1184791db2528d2a194c3023b2d57ac21b81e4c35af4584be8439aaf478f8558ce631527c4741e734b835815da3ce6d88fc730c7c228f4461856dd061f4a2b35f8505ee9f990e69ff85092c180263243bc914211882ac98308628ed9973aa2dca05e0d61800362884378ccc3b8838dbdbb85646f9ddb28a594524aa9bbd074b3492ee7c5c7bc3bdf2667ad94524a19444ff776a96b5097babbfbc7c7163c609f3ae640620b3424a0fb7e780015394f7eb7c4d53e724e8364ccd39c7a3212258330ea18fdb69c5883b90ed695524a2981f0984772ead13088719f3388790e2b97b79c78d339b6431654b708aa42aca28e791d8a379b6315088f39c9a339b186e593bed002df7dd365bdcef1c2ac07afaa10a730c7ec578318c4dc49d063be630b82a142ba4d72e30fe9bda4595c0de9147529dd7ecee44a9739bdea91c514756a351a8d803d17c6edcf868b1b7d764036971e16871e73cde7ba06d86d90add006d97a2793738c67e4cc2a71650ee73048c578ea3880800e61907af430be12804929a5a42f3d97366ddab4e58eed82e89b2e71593e965837d38937aa9e0f5128d40ce29edc1015f47d8a37d42fab26f7a415ab36d6cc8c88055ba4445f1dc3b0ce5de0d2834b6e7567af5e62dd1888cc20011a7a65f2ea35b0aaf3ea367080559b57a73af146002b1f551ab997de5befc5eeb5f766f7de8bddeb3870aaba8f5e49a07ae90be3ab3aa972a0f362f0886c3253dceadc656fc7dc7b351d73d086553b1e8b3799578f9ac59e0883b59a16404528065122fbda224d785b7e730557fafc7012d9e256923e23c7c93168199c9efc88d9956d54c4416d7225490a8d9349db47eae1869148cb286f52326392391ebd0d0c4e2f68b8400d5b8e27e4102347132ef5cb619d02e267638dedd58f1faf23896b5b88e9638d9299999919fbb050c1d157effbe272e909db0ca2efa6f46b3aa37cea85b4e79bbb7243f0a93f16ff4474b2c220d8ce45b1a6ddc61a3e11f5ea2474223a09814457e87d105d7bc5b74daef69a41bc8f1fc928d6b4cf6ebae63389112e7b75ed55599ba26aaf39b557e7ecc96028ed4532d25eda4bbb427b695334200d0bcdd9b3ce6037d74f3aefad04342b6b2ef9da175ae0b98f88003f6cb0f6ae04d40159c6632721c9429f7af0dd2721594f42996b1e37ed8968c64ecf96a358d327a26f0f4b407fbaf2eda72f4e44272ba7a21318dfd635efd425a0ef2fbe3d6c19e3db5b8ee2cde66d6bf0ed21cb15dfce02146f326fcec392d0b7977210db4b40252aa5a07883799776f02dbffb420b5029df53be6d5edf53f48dd99e1e1999443d82b1a6493f5ce92138838814846db34d2e37b9525ae0d9f9eb91327b7d74bad3c30d2d4b2fdc699c66c9118ed0c580550d808fcec9def89b7e3560c81ddf92636efb7d7143ee25ab521f6709b6e9dbb411939569cfd9946bcb76199d7d720ab6a86abd75db2b1897ec9be4b8330fe27d3663ac09359eb71ed223ce9ac895cbf9c6d957c3d6b5de6e4cde6e4b18b41b8b41ebb6495b2088f7b113e23d8c7c4e724397296f7ddb6101f8d68b71182f26fb62a0ce0ec362f2cc674fbc991e0c0f8cab53a14cd1bf4c51af9803833bc245c1f48ab67a55797ac52c4fe28d6985b7303c9db29e7921cc900a5f5d6f9d617ade3acc10c3b46470c3972319255e8eb82f6ef8e3487518d4874307c6c321b3c40d79b448532efb4b0e90979c58637d8610d725c8c5bacb16f1c6e4d65d885c825a2e462e419f7299e242a5744d2c2d27979778c39ff58a71b69d4e591c3a1beb2d0e9dcbf3ae521037f48e3ed60aae7843f3d6b9a21b6e3b471d904ff2785da8b864115b78c97199e202c4aa1712b8e0a06d93bbcd1c5c472a5d134bcb7cc979c9992d3ffb420b7c8928d6f0b06a73c2aae98a375d0078b47834b198a9d296796a977ee9f6e46f9f8d35cf030671f592c3e10b0f254ad7c4d272727939f9f5b8b6b679b46e9fe6fdcd8543a76587dee1431c3aa7170fb90f71e8dcbeae5833bfd002dff29588628df5eb6d504e1e69f3c2ecc3cd15722f396f8d704b2ec4c69af69714c416605a9205ebd65f725e8cbce8c49beb16e6056f3d7ce981db62966559e6e333b749ae0b2c3de6868010c178bcc0a066d08891a901d3921b4cebafd7e2254f46a20610c4a32579b4783879eb3c92e0d1e2c184070f0f25de7a2f5ef26818b4cecea0757769712bc69f70b020b610230e1d1c4758558a3737c401c45b7f7971f92f2e611c238c6470c0faf562ac69a15d10efbbef54146ba291c77284b76eb2db8eb5f76e3b6f7d3b713760e644cd39634e1a73c6cc2933678d396dcc59832bb14a00e0d1c271e4f6b0aa8443c7c3b1c3a075d31037e4d1da483260c7a1235be01d1e0792b7385837fea18e97a7699fa6ddd0341a4d5341d356d0341c9a066a1a8f1683d679f0783c98306879b478b4ba1a35b81a3473feec0b21f03130681dc6fa5662dd10870e8e21e2eaf6c494751ba5f5d62f1471b5e574cababd3fdfb6ddd8369a6d5361db56d8361cdb066e5b6adb32ce26b9591724fbcdc5a0f512ebe2588243a757ecd671ece0408283156f34b7aee3156f526f7dd3c15c0d0058b0a91c0f8c0bc09c2e56656f7dd3b48c247dcbe9d5e6ea949d5f4ec719e14271cdb79e586383645e1318df5cbcb9e4e6ed004f45f166fa7c329ffced0962e3e7a7a327d658d7c1bab7e7ad8b551b949e78b3b9f5f67a30686d7258b9210e9db7d4053a6af0d675f4c49b2b99f8b097f0d6c31c2978eb3974e24dbbed9c9f1ee2d0795bb3b905fe7ed64bde10a32fdefa966524e95a0764ebbe1b84c8dfbe1a628d75213bbe098c0fb1d35ad20f979dfb12106fa4aa7563658b463f9d058278a3f9dcf1d34310573f626a3ac740f8e919eac7cf1f3bfcf403c43aa315db36b78d6e5bdd366cdb6c5c0f15686e789f7bdbcb78d3dd3a549ae733356cc8b0c0adb870470f1fbcb2ce1f43afec57830daac1bb526562684c2074c6cafa70c59b8d00128600dc6415e6926f5a68da93574696a07507780350461ed43b20d3613a20d5c99552b6b7fde06caf6c96d926a84e9d9e88612c5ad9005303125e3a20eda300fde2d2726269819b734e03709355cdd20199df4c1957fa7451d32c7540e82519803b00679ac2a5de01a1d755d44ea22c2ed215c27072e3134550ae6791df2a472d9d5817a4fab425a0ea5817a448d805a93262957ef7b3fc4d021c519ed8b171c4133a33ae8b32aa41c57df981cc119ca8e20797f4f1c7891e1b2d2760608308277860dd93136c48e1c27481c475b9010f517c78f22468e09a09820643d0800629e879428da2dbf2f1078a15235084a2b8f6e30f142a47dceee30f94285e74593efe405942c608509240c2cd3efe40694161196132d8625e98ffc584fcc5bc10cae722dfdedddd21653111947ef7c31b5dc6d740ec8e3ced692d06bbbb3b721319c8d979c10c90e882085252c0841541943104147e306a654d24d1638a269298a47092295c475e10c6165f94c007437cc13a62080b273441048d82a9a5d8cb456dc28b7959d274c1e25ac2b75b1a1f7f5c540861d30183cbd18b895ee463cc0b319c1fbf9817be30467ebffc625e90ce45bec817f9ed067e1b62d0478e612ff2cc1c3b94cf524710577a8cf4220f8e71bb08db6612836fd8651897995903f1d4cc9e298c2b99996716dd924371b794524ad90991f98beaae1bc849b2e449b91e2ec6cdea118c95ee5056afb416cae94e7fe1fdcc633a8304f7a2504158f0821071b4565bab754166bee49222630dd55a5a2b2305b50f2f839074b60c35b13c19cb16acd692ddd3bb0107fb1c6ba6dbd6e1a94f897db1658b676f89259e67dfa80f3ecca4707fdecf506b3d7bbf98c05ea44f2eeec916c618633ce23233cb528c314656c110266bad3d977efc71bd3ef41a64b89e7c787225ae189c4e3f2e232cb67dfc7121f9d0e70a50d7e50e1b6767133b7091354c18e1d93bd20e9860c2c74fe75e806410c6d601993414610a4757e40c210825e8f0c30fb82882c1184f74d12f27aab834ef64cc9701956776ad03c276c691ac727222c64f9fd3ed1259fcf42b83247e7a863235919c1261582738f8e9f69a9250a2899f3ea763d684440c9cf0e3a7d7274490e28dc4c1500c9a2481830b84394f3fad4842e3a7db9984cecfe9a42d6e387972dee5e7b44f00c1cd69b9b65f93203c9798b0f7de982655b050541cd168f2c40a60aa189ad1648816bc48094295a1c4c587055324c409e8c50b13b4bc7a5c90f0c111961fa0131259f060b2c2d582840d80b82754142c168b840c8e945e46262498f0409a82e722e143105d14462529b080a32288a4041f362882ba23acd0c4e09e50538ea8c8e1ee0f78c88072b62c54607d5eda4b05d8149dac091f2a142cbb8409e84f0e7644129614ae234af04394212651d0e12986a691b401141bf85c2644e8210a8b5351489416a7e2db3b83a2134a660652ace0721b25f89901131f9e649470efc79f1918d1c30c746a6c7167be9849c1f52b80b83694f0c19df1f1a7891fa0b8a68f3f4dec5003091783c28c1117e6e3cf132fde46136ee9e3cf13a1b721c49d1f7f9e049d10f0048806dcf16407fbc3e37a968f3f4690e0e7c71f9714280fb4d794eeeee638a7101b3bcb47b99239700d71f23d7a3447e9324a8c3544574839f21ae3c58417d12b8b5794170d5e49bc5a4864f152f23af2da210a12a2fc208a16515e515c515a518888b282283b48b10429bc90c207526421c514296420c51052a0208a231b0c45e145143d88c20a1b88114513512011850a7c9ae053e44334c56b8a26a6684d81444e71e44f374a6e01f6336755e6d16fbc69b7dc47434d5165a201e3cd8c35d4a9a7a28ac6c8bd1759758a371c83d44e8c568a4ddb1ebf94efcdedb5df7a939c4739e38df417209b6f99758afaee82c4bcd0bf79fff6851f78ee33eda916c50d51b1d39c86abe286344f77d08041b874baf4acbe944f23f7d4c6b6608b3ee4955ca45ce7f50b6d4c44755c4c44598e7bd28ad98c882dfa88917218d63f6215c2fd02b5048f63803b7c759b147c953b2d5f9d5760e3ea461536a453b45a21ae11a826cec41334cad39287f7315902cc77a0486e1d731955d8912462b0045125bd207931748afa26bdc0be1be44ea72c86590ccb304cc3b00dc3380ceb308c84613870ebc4145d919cf6514cc51885186edf17f78a11af6eeccde6ab8ece6db7b1913b36c90e83d5b7ea6531d917843f5bb9f0ce92a7ce507a58c13a21b79e7a0c69b8e729bf9e7a76c4aa50127d28af3c19d463c87df5d8671571983c75f274080770e01722ed91c52d9e524bbdb92969d6ab1853b59b99f9c25be58e3c7a79455e9144a1bcf2d42591155e493230ea39b8b892a757f2a85334aaa412220ba24a5e6190eec49b9e9253ce913e379887b2a584237985da2fc69aae36b1a6bd7a3b186c2aa5f4bc07d82b4ac11d36f1c67af5eab65725e71e22481d1555ace325cf768a7b40b14e3b25b5f6c5aa699aa6699aa6699aa6699a967d16eb1a3f1ad10f207a855ee995188fd9740be0970025a244bc923e46b4888a9173c40555225145428f5e60e4431a1d1f569dc7ea0ec5092beb31b792d2500307409073814814c5886444a20b60007322223d20c2591b892811112122429188ee50a248a4ed6480860bd410c1a044da8e25a2448f39fd8212512baca2140c6a851251228da8e589a4b4279d744eb9d54b2cea3078ce009e9d861e3f9e790a0f0177d84422211a2e209d25106fdaa7921ba28cbed822bbe5a15833a98ddfb8274f19674f8c24bd4932b8212da245b205f90cb24bece67857a7c4baf708abdaa910b396dc56ce65c22beac32976a6539e3dbc4e9e4f3df1a607a5f2410cb28b426190a7b821adf2ec37e71a91525aa1552811aba4c7c460dd7e39481cec8b911e71302f826319bc3cdc9cbbd3ab194f9ae0022354f171010970d82fab57458e0042d00f8278f891021238ec37a75745a0a0e28756137686608417383cc3163d7022670c31a6a882e3d85f230c5e9defe6ecdc100c6fceeff026984bece376d9d97e2cbbaa6f56e85aa11b32867dfdc2269609c95e8b434830ceee5c9ac96e890bf3d1b78c9b9d918d8762a6cb8f09527f7e92cab37cf4edda2b2ee62eb0957853bf1cce410175ca7ea1f3919cb64d84b892379029eb3a40c25bf983b7560864c82b2450ac19e27625e096704309c4435f5cd95380e24d6c1d2946b692403f7aec901923ae5a4a0b1dfd90463d8a761079fd6a99d7fdaedc9081d828de14b1aa6f9699b28c25cb5ab2ec94652e59f692653059d693817ac53ecc3e3e1cf5d867c697f1f10706545e7ed82f20297e98187949e5e9e69aabfa888fec61d06a9a6f5e7b9330cd6b62f2cc6b72bdc432b9f5e91dd4ab3bdb5b9cc5ad6347f1c6cbd162bdc7baf5e4f4c0c7be98177a86a71f13f7bac9c598cfeeeeee6e974e48f67c1431cc6b2a0c5ae7dcd278b3b5900c8a379d5b121554a934a354a2512ac5944a32a5528d52c946a934532a91640e6a068d18991a3666b80d0441f0335bad6b5a46b96e89db1fb72867d08891a96163c667d08891a96163c65f3a0889d053c17a0a06c4a07dc114616d24c9d572bc5ffdead7ec57bffa88dddc721b0dc738afebb80da3816131182683613530cc0686cd6098631886615ad62d71318fd5b76a8dacc72124540a492ab2b523836c1757e866ae41e9e1225318b43e1ee9a9a7095d6c08f398b631fd0591e23ae2954b508e9123acda612db1de2debcd84578c63bd2756046434c457acb318ac622cde625e0da395b9b5d8583363e77a3a6ffdd401a95f0c7cd4a9a791a8242df576450b19a21101000008000315000028100c87c482d1783c501445c60714800d819c5a724a970b93208751180591310e1820030300200220b3498200f6608b3956864bedc8b7f4654eb1cedb902e396d652df56b9b7c60b88ad887f5e11eb1023dc75413a8c414d1c6ce1fcc3fd32b656fde45dff713e2dceaca1b3244866d40ac417b44846c0425c74c4c2e7f4c3bf33f13c535192ecf6946a8628e559afb0c440eb4c8aa8b6188ad70799921698f8a00c41c584b2ef585ca75445b24a51887fa42db5b100a2e47a2d21d4ce06387afedfb88375a5421b43ef787f17f21523d4c54e8245349d1aa416462b78267c78b10e088191cc79c2af45e68719de2b7962293e3187d9b166a4ee8b0de10d9bce7806029e5f9c67d79325ed067528894869dcfd567f01a4780c74934a048b240c1ea65072d5fd2e5329a08510b1dbb752c64522200a303426ca1f0c6574b8619fe716f7b3c62bafa9f1667d700c29b57173b8b98ee9f3157267a0241ed31a701333a0940a44e0244dac9f4a386d3a52039aa203c986115e7118bb8db392e64fa0f027b69de2cf2b5b536e30caa8373834e0764184ddace37033361b6af8bb68bb20c5cc1ac7aa79d63df481fcefd2c3d993356ff8e3a548401884a0b2004509d233193ac8c4cf8cf79f5648f3757ea6683e92aeb0f36b2662710b20fbe3ae215d5800dcba79cf11ef9178ecaaf83cefffe3a287d07656619c0a082ccfc9d415d8748ed7543b3c3882d6d4ea77f5a1226cb181625334a96b552cb8d87a6c696b3134107f73594f7da8a8fddfb7ca85f44107e2789d87d5e891b9901b70cdf3ff65cdab07c6abd11e8c2a7bbc4f7a45c8d807313e7c4fb762288a075c6521dd4977244bfc153110191face097264068d670b405b27bc6701966c01de1be0e1fa9ae214c04af1ade07e8eab1c78d61a3d0b1de506cc58628265e831e7464608740a346b4a1bbbc940d05014f573b2ed4850fde3a6680e67841add1ce399c2d98ff43637060fc37ed82d04cdb995e6881d4728fb8210aaced5c2cfbfbd289881f51b661d340e92262a37eb9de797da4435ae3c06f422a57c7455d1837e9924503fac2a9e3a9b44ce97649fc51b5cc59ae40fdc52fe52e79a56c3ffacc5ff13b08dfda182b0459f67cfa935e847944809eae58382384d57da146527b2fc52ee153daa5ec1f99cf2e938b5e0e22b74c7f6990211e8911d3061d9b524619599de1b477267d8ea71bbf13db309e43659a19cd17999b3a09c372e476de9de318cc32914dad9146adab605f2be0025e223fb9ca48f46efea1f915d7c08f4b44e5f8df25e23af21f0297188ff582041670caaa4043b842e27b27d4a3803a40850ebeb56d1937ab3acfd5d0835b4816af2c4dbbfd48551617a015b0daacc8c7c4eab51c27d86b3d7fcd3abdbf99ff1328b51629c9f8c1d6b15e11841ea7d9b346489980309145820f2994947d724e25c06f229694dfe573324e4a53b1621559af6dec95fc4e15d9dfa867359a5f7b7478a04f49edad39279a572c03cececc1a19d41c237325f9383e0a5ba15f33d421ab24028be71dce3b6002f184315eed6fc4829b0ee7dfbcb763f18059df96090937455210abf810d4b953090c637d8b3ae086fbef086bc8c496646578c9912fad098419b9ee1d2ed5d1e7f26f81d0668096f253dcf7a39c1d01de01862a24ff3ec44a0bd62ab2242041717a53c35fa39e16b280a73e662e30bb20547aad022af69d1ff389821e40fb0244451cff4d549d8ccf6af99b111912df3f9291b30d4af789bfe0284b433f28d8052020b200b082c1b8d47ed0a8d048641b7ec2c8c938adb696712080df4893d1e6aaea81d85730e5a8a3ecb590389890d2eda63039f66be985a63bc291ca154995f40d2dd8420ef1e8601e7e6d5509ee8e1aec020cd61c842f8aa885d68ea34ec84579b6d72790de94198129f2d7a6ccabfa19053499820b3882ac6f872a70506da915c8e80f9a1edb3b421802b93649860a47eed9fe836c0c7487eed1ac01770c30976fdd74eb75bcc1fb8267c58e32517ff5331f75695a1d862ee09ea1fe3a9cc02bed6c3257f76d3ca5d151e4dbf18c9fb32d115e733ba62329c1dd1fa912c10fcc3a0d66f83e2847fa0967ed23153b4d47128340ed2dd27b0e22f6cbc88939012598a68e45c460275448c55035b371787a972b2c08c3b1d33998cca75ac34d66ceb8d75eba5df2429c4e6a61d803a541ac15cbe7407cd25dc92a2cd2df0e4f43077fe10df7298a6350da9e4dda03fd45a46cdab13594ca346202b507c2c6ba909c719dfc33728590e8f46f117f2a5d2dffeb5cf6a895ec50a41d7729321f64a70202f9939a0a7a6ab38606f28abdf79023d85735d830b2f47344a62d0e58525ffed0ab520028695f0f5596ea0659d11bd25ef2b47b260ef7634b56d6d42547ffd0bb44ad6aec94584d1f6a00a87c73acaaa4d5d57698d8234bfb6af97d9d11838091984072461be8bbb3f0683022b7a6c5867b1db1b13f134fab3ff5458dd37047835ff486b1530af071ade64941c46bc077933db803e16f1b3d5b18162c28c6f04966536b4890680168a950b81980ef5a63ddbd3652571e67e4221e60785853c8856c56b6de32a8aa2427ed3b7dee3bd86c66356baf378dbcfcd1e0145d4b7dddaf8681e7e53c93c8e7239f1f9b12d48a64ffba36e60d5030072f387455397c13d5ed11a49bcb6761d4bd73d9a7dfefb90afec4722762cacef9b573ba41d3c2a3286b01527a5fd739e180c5d9ebac5b848b544136b6862750a3b79b886161145bdcf7ae712759fbd0ec7f8796e8ed27c7b9085ae54242b518d32be5d9c7a30b4ef39aba6bd3d0259b508335c6f6b16a31d6b448eb3675912e619830b8e2ffcd3ca87ec217fb6d8b2cbf1d8d05b2614a93ebd3fd5272f408254cfda2b0705e283c37ba9e05d457879af84b86bf195c4c744411901651f489b43fd2c0a377cecfe078354b37c16e2419bff815452e1aee1151bca370e4f8260aa70b1855020b985233062cbb8490e5b88291ae6c502efbbdb333869e3cbf19a5a34bb9916cd03e87a4887d22e500c150d0ae6c74144f4ad61c26bd550092da46980aa96a8512c2f71daa899a17ba8e2afb6c0d46dcb11b55a3949b5a2c18d3f92ef7a24e92e1e14ef8fe4b62b8b22de9f144628c721cecfd628e502c56f06015dd41de4585c9e8edc15e1560566381e3b04f513a222446d8185e74d47eedcf9af746e235099e8c44deea1b3615748d903e285039ca6245fefea32ad20a1870620f5b06401836cdb4cf0655a418beb4fbda26df021f8d004052ae604ac0399b5b8dac4e5ed65dc065f5536f03bde2116278fa498e4cb4fe31d5dcd288d48efcbc498df617a831fe56155bdf4203ea763a4ad286a321187c265d609cd56aec2c9bc423e8f755a59f9889a1d4f2165168c6497570899734af384af709916289fc8022d59b109cd559e02de63f359d30c7f2b2cf249a50e8dee15f059c948cd208ec2cba4207ca6565a63c5a7341f5e85c9bc80f99c255ab2f253d64cff6d98c2eee38be12e8397d83913e86b8807633e05415fcd698ce2c8b7a2d39b6faf426656433eed6aad5999cbcd2ebff033a7709f7b9556ade035353fa90b1db052bc49a43cc24f7a171f4711d55b6428c08655552743d4068a6448cc7c529c46c89b4ff4332760c26dff17b9f776367ed8a7c7c941e1fccb9206c81c97286ff28ec70c67241ee776367f9921b158fadc039aee01b49126e51cff2a60bba775de8e453aee37bdb37c85aa637a7207644a64cb2a723b921fd5c08b08133ce049310a9d5a02f4185f3ce901c128251e99d0a933a27c4465e5d8e1af88e72ef8796099401951661d812073f768671b9f27be4e52f6872a126775bf0ab0f6cc109977da2328a5c71e1e9adaaa289d320571fc1b5215a21f9d8927919add7c47cebda6d96451bf75abc87ec896251d9cfabbaec5528f88030edc30363f509fd4a54139e2fc1ba944bfb681b18d173486b562e605bb710283571c8095c1fd43dafe4183d24b9dd66b85ca43e54d8607073c830ca55a45151feffa576ed7d7ed38078b5ff9ee6f3dc4d8fb2718741937f8d4f8d011dbe20f68057dd00d34830ee8036d4113b48046d0065d408f4f2f26f6c0e7a0053a403b68065db21b08f9412bb6c127d009faa09b472f4facc007d00eba400768047dd00cb4829e1ef6315f7b8633a70cf7c09660af30bf64b550f6332022b72c96f360c45381d09bd58657a2f9f056a47875cb98dd2d2a11398f6a0e060cde2322625a700ed93b4fb55bc232aa42591a46676af558b7c94b136d986a2ef403177cedae6036ab80f27d1fb720dd85acc5566268339d2a80a7392c9874c0c4a1daab91c182dc4b6598f915b3e5d2c6e235fbc3dbc76b560d328db536e3b3c5dab917807d0efed238acb973f80a6b7f4e0d30339f4c67e0f309781ce473b2482a545accc815b823a0c230fa69a0b290256e382aeb977b38344cc741252d401c5743410d95583a19c1839b49e7246009f80742d3542dcdfecb73b801d8fd1cbc4e15f3a05314968bbd81a65807781e496c8a8b292986746c868051ef5e58588f9b903794b83054a9166495061e3eb8b05ab26a9616fd33ee8bdbad4ecd77d1acf0c0d9a5bd166382abb82ad9723cdb4a1bef61ddfb2ad5bc758748940ac544a7c64ad8415e50b447f16af022e9d1fff391bbd3400b25e48a5a6589e24714adeef0d1698cdb94dfbecd4fd8b123d33c01bbbd77e5bde71b0eeccf9a410b66a2c2258d9a48ed8b9e0d27512d2f10d51409c9148d1cecfa0d95018ef48fc474e8dc01ff4f5b8ff60ca7c5f5e8720daeae756cef5d3fbe2b0ef51a08924542f195f54d10cefaf7c23569fad7122b483a3bf63ebf9e95a7f541c88c09e3718ba9ab1cfc67978008a48598025a1762dcef69a785f42411aa43575122ea11a2750c01878ae9d21c4c2f9934a1aa01262d79630858b1c6a3cb9ab8acab5ff88247ecf0609bfc8d78ebd713e93df4ba2e18ea170e016390407db6453f7270cbc1c1715af00a4fecf5d166f8802b6e7e64d05f71c2f431b7ec089364aa249693117ede2de70738f34e9182b88eb0dd6044493a41eb20e769097365f992018c46f027f584becce5097811d7660e908790f18cb64b08a18bd4458eed0658dd4c22548c94b6eb2e901590b7d04462c9fa018aa2b4361bc92aae90f4f7cbeeb404ef703bfe5a284adf501dc4c571f870ac13b79641bb2de9975d80a20648d02f48ec97b46c1503029ce052fac888a80e54b9c29a11916eb96c884a31feea23adb3dcf3aa460b03b98d322452657029efbf7c75c1ae622c7e205f2d0f0c97dd9e6396936a149031edeaa3c4112601cc69d9c49607923944a09745ea794961cb8cf7624784350d4886035617f222b7bcf864d7e5f2346e9fa3d280c93260d038d09a5617de78bc2b15d9ed2e55ea73942abe4724a6f781d8b6ae34ffd7d1f4fa55b1a3a76cf416b2654c17c3730c91cac89671216d60db6588ff7b31a222a2c0d90d99c7b04df5992298862781c369138249553d4b1da52627fb62c921e37d8b65caa228398d748c3c7ca57a5a79ee68ac7e6501d28de4158351604dae96321f59faa63a4ad0bd43bebf165b51f70f7a10d9ed3635fa3cf4e8b799c823d61b1f99a7d21241f7af7965b4e426f267b4c10c584de4dcfaccdd5f746e8d46748d34afef5a2380b60073378ad7a00231edce7c53ff5e2c6e25aaafca7eca76e6daecd9e51609f652ba9787a6ae6e8cd3945e8deb1524534661c5d0440d0010da2c5c8d3ee2a18bea5a10ad5314dc1e9521b26303df004171e7e124cbf0346721950c1f43dd62b9470ea0f71a58ac0e42959aac909d92dd386d55c20ac69db09b4d7e48d8a122957bb464746524efbc8070789a9db2dc5eca0ca09e3f06144727fa4570ca9094cf51af221e1315b39e85668ee46909605911da78de9c2ced81fd69bef6f82b8d58f13c8ecfaa3cd16ec1b39819096f2484d8e9f819d5124231b4a2a4c5ca669db50a33169f27b7e7d5011a75d88d54f8a3f554fee1f83894194249058986096b1a3ce5d826e307c184ca05d91d5b59d4f2742c2a53d63cc78580e426dffbe7fcbc1897dd52eb561804d4ac20a20102aec538fbc388e01845b39c88f206f77eb4c41d06911814d8249dd73434565b010081cf9bd3e0f1ebdde11d80cd6223ddee21f6ba51ea20b01eb02ffd307af5c61c5c3806bfcbb148412f027dfb1c33e20b4d4875663ee7ec3916cf89bcc73c30895002d32ecc2a555820b25b421df6601a0b6b6952713f1ed375461dc846df169975166c27f7e7b8ad0c31ae0355b1659cb6fa99b96b3c083d655b11e8861ff9faa47642a09441f9a223d780f16bede3007a3426a011e8570ed7f5902eef7a457535dcbf3700b0cab6859466a04b7cf84202645934e358c3eebe2dc8d233ffefdc3b6fe9e58778fcc8ecbba708ef8713ef8954c97b0dfaa33bf8759c7d8f387cf0dd237cfb5521a009097f8d70642ec1f0bb5f2a58605785567bc1a26466a20552c7f0ed7f45473c5dcc7ac484bf9eb5840c7cfea51b1c67aa17a5516cfdbf6b9b0e4b03f1fb4c7485bbda31203e5f8fd7362c2aef4f7f897792d5bb1577576f6aa1f6e886e00f9c6f7370ab53fc2ffb74fb364c1a3e4f74f3559a0ec567a0618eda5e0c5cea6edb83b9eec883bee88fefe7540fda8841f57d6d0db0e8af3649451842acf4ac411e676f286dc4babb4ec25b9642941940645667b01711e70813fc71417f3084e9b040c2ab92a3880608682a074afe1daa7cda7330b3bd60f6b1fa71b6514452b3a69b9be1321c4c22b3ef8f3e5fc6a2892b919269b265ae6bae5921d41746c1b7c0d83e940049357397ab2df6899e85cf55409b06de59d156202a07e6ee42234a41acf04b25a2d1f441b165bdadbecefb7b638c4d511c2ed78fb5d58bc598c44ebbd499ef4959760d6e29011e20a6c88fe85c2c19749e4c950c5baf9ab7621a0d5a624e84239f85e412ea29d957e11eb0252f707c380470e804e52696bd541456b5a45b845a279a6cb39d91e32b548d11d050b56b0377ba7c6d32ef4efa928cbce0045d0caa08b4bdf820a59a13dfd4473b20e0190d572140b5ae27214a9a4eb6c0bad185236b5242adc8ea26d891d6ec005c4c0a66df3f3f22544da77d90d8bc32005d88ddb284cb7cd7dcb342e8d36014ae703c0059cdad89bbfa73fc9a8717322abe37f77bc306a52b2e28ce1a28b9723da2cd63297a19c63f370e13d89a41bdedb419b0d683271d2128e070306909cc4887a672b33c749f4f15cd8229d61c65a52beda0fbf69de433168cbcd129427506046991e462662c1a86321e2816e684ffa4b56dde355a489f6291459a783847ceafda2bddd4a2b832f23cdcd18664f24ed44995149afbfddafbc88e6c106487fef33f9096ba2d5bab247cccc8cd4d68e187251768da5e55cfce7cdf8079d810fbbdf42f5ba2a175e5fd11eb8d5d7e32f7be04674c832ff02e71b20a28f9f2832aaa51815cd1133c89d0d9ae2f2314ae65a1c0349a37702e6d5a7c6f834646c516c9c3d0e0fca2c4d7a39181f6fa69bb40987a47788a11375cebf32488ef0dada19d545d2c9edc7e429e8cae7f6923f39456959a92630e33daa0437ad135fc54022872d6511dac6574c6c11d2cd42407f8d007a1838fe341ee41751b5dff694f35710062308f708692785d4413bcc7609ae735093a50616d9232c015ca655ca1d3d1c22901176721e1299f182e0e8226d72874d201bb88342cf6165b0cb41117cae4ba6115c6a341d78b43b34bfc7a54aebd12ca9e14f79cea3e77bc544666da252ff832674d060dd0a360c4c742a677d37eef3349480b65d1c76f87607248f453c2e09c441e0f7f59c37ee66d0e2ef163de0d347ae0ed52dffb27ba53dea81ef913afd83cc7a314108e5679c502135bc9041fd8a8a0af9fb601ce498b930a73c7292c06f059617a8d1a60e9634f4e2f036912417726d56e406330a63bde096dc4cf8a5e8e4d7b8f2a109f8d09f7b42de991f5253e1a2d5dbfb3c693ed7f5339bb9e190d26f62f6c2c5e6ec99c95b893af070f346209d265d0c712cdfba719a075cdb25523b8001f475f30cff32f85cb1f73337530569ab2561c9daf4b9a36f3242e3a7d50417c4835d5c6d620ff40ee52f08a32ed9cd1e85beacfb2531006ca5bb5b8ea44199d987cdd361dfa64ec2c25d5b3f009e3a0a6a1584022c057005ea6ab4209cddf46f246d8730937ad285d5f411161032e5a785d1b93e6b684487f3555431162ee1e9062ac8303b3ff2ac57365122340a552b43762adfc94e12617db55a1f7803593b6739e51f14834f9b0ba1ca7dad9f893a8493f53323458cbaa184cb299440dee117a4735ae08fe3ee8cb91abaf1227b9d125a71b167e359aca5cda1cf1f02dcd44958863c617aeaef425b02fc1e078c4ccd6e1c15a377ec627b150c30d6c3a8043e5290ba421cb9c0619ce4f4df7c068c9e2280c2110524ec14f224175a06455b4a48171946c04166b5c56313198056946869d2e3f56fdef45ac94f1a75d5c8b805badfb38af6b1ff7eb673d2f7caad252670b48926e665504ef780217798e0aba3eb753aaa2869833d24bd8ed336579916fd70a0d0509360a57cf4401ed6ff7250215aae77d056ed2bedabbe15e7b27dc75dd34e1ae7d1fce75ef13ee545f939f8f2669f5865440913b220c171c50e37c3e7f9c55c1ab7c808060d50f3d7629a95dd2c0cfcc63f9726e15e37c474628ae387f3d89861cacdfca2fc8db83f53987e32244db25004b66c09e3105e4710f3e01daef36d998c905e553caccaa29ac7e90358d8b84ad7edf194ab7ab2c3353ef2b24e6848fb9d80ce997f11196226d9c4984042be1ab57cf6c53d85fd6af7e15c9e97ec8c9babd358c0499edfdb73204b4760ecf371f8a4c79dc2e94b68368160839de9fa031011321b84debecb147668467da0396557020702b6a809c466f7d82b3571752cf0864d7561c282a5c922fa850c9ec4d3a0db99f4c11fa2fe4f02eff1ae9d066d0ceb3a3e6cb8e22cbe8a95d34d9add83366ee3ef7b6fb292cf1aa0a66dfb2341d3bfd96a689a40f31abb896cddcd6b74273934b658be2121a7e39ce2ee930fc9c5cc68eee1a8149f59de14df4c4478d76b7c2e02ee9636f6c8c84bc88cd46335dc1b8359ec685c4b1b7e35db97bc8f1eac0717310739f2a87a0faa4a8d44acf11dbf15cf1c8ad86d2a6166060bdb176ad28ef401bc33fc9eb7f562f3de0d08ddc1b396627309b9460b0ac22f225374d898ee31b52b9c91e85e02562a47998fd7214d559cc84269989ea18c874e33a358ddcb4907118be89780e6a3d4fd7ac34b18175b119322fdbcd441e60dd002f36d8cc8d54365072a4b391b01989802556185b1dd1b0e3db626afd49029bfc0264c87500c489bed98cc61fc529d620037f1f6101c36a1e136501393ac462784f6f799bc7cf41682c38e5c3ddcfd2dbd69f0e9d2a6926dd423f9d181a5aaa4145201a902948914f41ad6607588006f3f1dd51542ac4f61857c8778af85cddce4c1fed6c50c53ba133bbd22969bfee5151686768ede3664c185f1a9a6d44fa21ed6f27bae38982d7c7b5e3de045c5523ece1f3a7301ad182ff7578824ec10fdf86d668b7e2fe36f9c595dfb19a36bc2bd12b5201f2d30a69144f06e33dc68c1a8eb5fddb1fe019e86189957a13268cef34ab5c9321f35794d3637a725f185c9aec58608492cdfc096c1c790380cf86b3e8c4e4b129bdc60496c229bc444099eeb16f4f2fe61a69f5b2188922e1804bf3b4f8466ff47f7463bd21fd3e189a6ec15a3f867b162d666be761ef8f24f415d11a1aba03c29ab768f816eceb47b0da8af6ffa9934ded603ba381065565b984421af5445bc8219bf2557002a8b1b13eb84a79a3a124657cd8d8a8d7900cb0d4a2109b0b71c4e26a3e282367a7d0b7391162aff263ba540c43d6942c17b499a679cee03c2700fe87ec56cf24cd198ca093a38b83786b333375d69a8caec95b3e34793f0ad2a70c7160b27bd52f2fa3bf83cd18dd22bf328f7d0d7144262599689693c5fa3032ed592d986dcffae5731a8d036e77955fa359b467bd2ff9fcec9f762eb93a2fd7decd08414a89a38e75525cb94180fd3a68c5bf7f617bc1324d16ea499a0c0b9a2cdfd89449f8c2efd698eeb719341e81b4206fbcf6af2d1a9089a5d708e233b2af250a19b16e796af2178eb233b60cba90987a31c95a492282ce67f4576ca1d11c57e28db6ae1507cdaaf5b569758b7c296c2b583ce62b79401fc4c24eb49c63fb0d4073f58d69a964e992d046972a6bb9f62f4e1ee283ec954decc898035d474d489cbdd1eaf7a4d620d11912bc1244d37b5b7c3b1ebe914f9d6bb136d667d0528a2babd66191abe6b3faefe502110a9ce4e68ec1e507cd345faccb87ca9e20170729a2443c1b9a9c281ad5dfc5b391a498838e85177a456f34e81b227d063fbb85a05181604737d527078724733861a34c046299c7d0015a83913e3f09b4a4a0d754478537939356618a511adb4d786387432c5ab3f123883b2490ebe5764fea456af7d51b7ce9741910b88da2a5cebac1a7aa7e60c71c896e8eb60c68c92400195ef1848201adce6999a8c3511702d7053adad48d5a20fea0c83f3d868c1771a218a726e03182b5ad927d154e178e2738800d2b4e1fb2d919f90333114b5819c9d4c0fac56d74bfa6e8094ec489d1925bdc4b4f2255318991b13622c47443e66a4df3e76338372ffd42be116228f526672dac4dd7ae474dd8b266f971cabf1e20c269976a7fe709fa8a85b039e6b6953072e86c91a27e82d156f7923bbca6f0ca26d738920ed9f4c8fe103a81fdd9984600dee72e30fbb25fe6f7ca7f43a1e883315034504520d8694db94c3696cac1893ed4091aa4c81154acbd3e4520cf44570d92ed8094c35f428a720ab4342b090239fa3f2b5ff053d10a32af30912fed7a52d15ba92d243efe7ac2769c0a544f13bd16625a9e8f3128e5dffb9a29349cd94ac80d8edee2303875391ad76db37becc214c99f187c6688ca7ee5c60970d06f70801a2813b3f1b64af657668d1a187865c206dd5e94e3524169c778e77f89e6e71e6534b85bb0ca8abfec825e0a6b8299b766556056a85216234b63960b1a92db5d190363744d7b3a51182103053e3b180b817b258a364d36521b06a2ceffba97018bae7916d462b206c4d2137a5ddee85cd4c45dac8b52acd63336ea2442d7e4846aca650d15141b22b8e8c2f928865310e48d820d4b9f271d77d26ea9cad939eeac626253ca2163a8dcabe5ab598a5632130a41f2f2f951e4da8f82211e84f6adebd1bf6b23033c9f446ea7cb5902cccea68147c0e1f1d459d9dffdf76be935dcf9394b9a80e2105d2243f461552e40abb3cab50bae93ef6f7c49e1c919ad39cbd925346afa2d14a53f4bad37f8bcbdeb998e0f3b4c6c50a8364223fb8e56d0e6b1f2642f14401c68c05db20b5becbd298f25ff1ffb2a7fa68e6955b4aabbb6dfc7fe893b100bc349f80595d67ec2b33315f44edf5417f08ee1241c89e88cb20470cbf06ca8065fcccc4929b3700036f973a5ffb6ce071d9bce23e5141a5804288f6bb1610f20b7ae3c8562c3de939f9451349266d6662b1c5ba9a0368f2ca5591cab39a815f441994dc4f2b6dd917523a8f88a43b6ef67bd3d27a62b1c33edbd0020c991a536e901820d942cf9ac5dce8b43003e21d111d9e537155680c35e22c983f719ec4c1815ae84982be6f00613783f06be0d70ccf600991dc872c4e980dfece0246b4f1c5e75323d0de519a75963c14469b9247fdea5a481fc64a230a877b282fd4e936608db473f3477fee81029851381977f653dc3e8afb83982a5252ea7d9d816c251521107bb71cba327c29a8c8d23914ac6602a4a1e395c8832d22bdbbd02d835e7d301a31f7c2f099edc32f02446d7af9af1ad62dfcaa700e594b29bf78b6afc67bc66a3e8b10ed7c1e1d07bd6203ea577dc72a1a92774be448b558b4ecb1dbb99a2025730b71bbdb96f2a29803d47022cb7c3e4e5f8870dcf3a870c276c7de8a246d26c0e6738aaebd84f7f9ca07f053d4f88473f32a8dfba24bbbb7c404eb486b7165a0c6f8394e96042b248c008803a8384148c6397ea406ebc0134ab2ce91633641edfb89ff8def6c80a1d9bc6fc83545c309802dfb91d3f683d54e128b7b7b9573a31cd031ae7de9ba898c1126e8291bd2bacc0447314128b722a6fa901df942388801df42396f9ead6ee01bef5888e046ac94a93fd23a41175973d952421940a0d2c0270ee711ea18a22e276bb0443630a0011f34abe2419ba0f21d3123ed2824587676cc6eee3d253ce171643d86b51b7cd32726dce4a8396d3b6197fe8da774449480cf3763143642fe44d8cb11546b2e19393afbc71cd74101771f590d08209117d6e1fd80e27a3280e1b36931b26256c1cf98ae57bcdb4e8923ae9c4d436d659292cc53d9441c89d0778c6521172d7c9eaa991d857cc0de3af95b216774273c91bd209c5c9dbfda251f6514a27944e7a5b8f3f3db51b62061acf142b1d39120a799d01b704b3a646ad6fd45e0c03768078a236e4c0ed27a0266cb8619456b1baebd84336701ffa9f08a168e210aab28a7d9e25553f0c412948ac4a82ed9e7f9985b1e61f3480340cdecf2b8e34f5cef3944953fdafeac255bc987ea4a12b060384bbc1d924f3af981c5858f8b3ee4b1c8d7fa274739e89a14f835eb24ecec9860984f5f630bad17c47df22c9d39a2cf2bfdac57761161fb2ef8cf96da5d6ec4e9686f0790f50ea898b9b263aac4df9cc3ee705bd71f2ef0adfe04b7e9fc222ff4ac0523138f95f2ca1616f5bb284934177fa0b2bd62783bcd8c7b8285e04cd7d8e013f0f608fa4f499c15e6d3214fc47a28db04d34578bd0292fbb965c0909a26a08f7131f7133804f09bd6ba2fb78deb3f71c4b3c39ce051f6c455b786358a2ae7308cf2e5c6a1ea57fe91b775a91acc926b3aa31cd060d3ddcd2c28dd3022674ce287c6629aa316069582819cf60e5e0b0fe2d177a86342c96695851d8274b729ce295d6deb68bee614a4cdf6825a0b572c4decf490a5a70b1e6c9b3f4c1e0835fd2fd65fb93f71faa0f024dce1a0cf2cc04f7490888eeae1143f3e06e6cf0f0c0e690fbbadd17ddfd204fef07e1cb901f5a09fee99f66500b4eb6720aa51f476c9e2f9027fe051197ce249d3abdc72d7ffcddf6aa0fdd96d9e71340f8b7b39f5c06fdc771cdb8f6eda1b5b1dfa4c1be1f832665af0c18e0d1bcdc3911b56c995f1c02f4d0b2858a62ab78535084403300f4b53a441864cbdb2048e6379f32bd15513e114478e1685efc78e29c7f590f0c10b1c1844838d8b4ee60ca8282180606fffd41dfb1851039d0c3c28e4777c330b02b5220832a59a46e997b7f49f084158ec52b111af93af63f9c4a6edb00ba59d9d0a66c71270ad5af9bf44559c10e947d155a526f498fc9402a8349445521c7185a9b9670586552cd6a9b10eb6881934467560344264278b5533e1cf3ce8716f270d595d23f3f768a2875630ee41992c9bc56d943e46460219504828ae9c49f630fc2b0b094a617c1142030554e4c8e984143d0d815854d3fc01767af16246002de7db8af6e4f12be82678fc4609705a5b9d392250607b1cefb30399ca44e81f68412a2100bd166ac69ebdd2628e56b6bfe7c467bbfd158d29eee30478280b1d95cc92a08956dca7371c0811f7fb6a3a6b7857c4fcc93f64350c5525b4023c2a2cdfe8c47a71c156ae64682ec9c22819b3a414b659948eb99dcdb226165cf306888aa9f705fe86c94bb464af11edbc51482218ad9d06e0a6ab935e0ba44fb01564339143a1e0c07fdc4ace010931649e98b40d2ff29c01154fa6cb54537a801b2d69367c017c72d9a338b3e483e2e54c6875786bf1414c84b75591ddbd0df98f8111ce5990d7d347cb0217624da59b0349c6906fbd71a423200b3550dadf0a4fa1ffa48d1076c02537cbb5eb328471731fa5c7c8a64c0c5aea9a4604fe13970be79c828256b64d114d688d670486ea2304044848fc28edcdf567ee60c98bde9b4f288759661c5b86a6554eea456e9d28459ed0abfdfc227fd5eb15ac1b317ee2ef00f077ab10e7e248108020e5cea3f0855b439cdb47b464138870c9a6a8d1d4b3c74026521a05f1d5f90bfce1903526e3a5ec29ccb6eb44f93b5e9fa3a22c68e21271443c04cc099e2713bf68481f84975c66cbdc7aae2237b1e8b403c2a7c99f8120b4a098b0531a3d1c25effc440566535fac3c3c64f11a863bb92c652971502ef651cd8a285738047fa4004eecaf400bf387d95df9d1524ca5a07d85d0b925f61fe15bb42f4075b7e25b5462be460d0a34a7a63ad4ce59dcce620fd583644ec0de266d13b120b3f6744b0e0e137e7477d64a9c8941d182f46435b7d529cdfbcc017cbbc9f7583bb137c52c7b2c785ae8f9b0d32bd71e964a65d7632a3a62ec3342fc686f7c203dfd9f3ae6d88d1fd84c36ca35ad124bc08b2b5310d3eb12a35c8fb58bbd8be0a085725384ea07fe5b38237073a319153d8a375db395d3a1cacd641140fb5aad368ac42b3e5984021b2fcde4f7fa94df366d2866e1e015b58a9e8e2143733b68b5cae0c668f0cfb6d0c48ba63308831b7016b60e27ff82bd3ca4cd05e0715278eac9192f068033378b06b3e06f05878b1f962b981eb60ee6bf0d5ad93bb42410a32be9bee2dd8aef9f88040d34638b76e6092246253a8e107aaa015d9cecc0a2b88e8ab686968ec57ae5c098bae0d6f16138efa4769ad099e5eb9fde5c0e00adaf9549ea7a53eda8dabdabd71569f1d554553b64536e9b1e3e0462e3e64f2425c1059a620590435fbd6c90ea16d6e1579187e1213697ae8ba85d2852591c4a3ab650ff0fb07e676a4494b4cd435fb268d7323599aa1e0bbd6e14c3b5103956b627baf13dd21cee5078f8053ac1ffeef9edb87dbda1d7157bf3fad838ca317c3412160d68880599f93c25c3e960f9cdf8fdbdd6eaec7b450262109807f10b15852bae02a39eb3c138ebc3204f5c3320cc109cfe942140cdef10f77b26521a0fc82cf7de85db6c5c9b525f42aa2a28efc15cf66bb3323c96bbfe280a6b7714f3b3c6f073775ede0a0d6f6df1a525ff7831497f1794a91e4ff7b6b309fc23d52ace4ad09b80c6430d2839f123ba1e811f94685be0fab314f8df8a3e12ab2cd47324f0a70ed3fd83f79a295c5c0760207df9dbcf332497dadc7194340bc40ff8c13d9a479d3f276e2fd4912b385b455a85de03e6c7f4fb015999cc215940ea2afe51254943a6c4433c68b7cabd362f705362aafc370030d216386968b07c7dd15ffc8261e35c3df0c70dd7736fe4a8978d9dd68ac767649db79881066cbc7bfc601ae6b1ff7b5f607f724906fcc8dd0cd12c3ae543295f7abbdecff449ee78194290f0d8b288a0d4b882eb7ae516413358731d97148cdb20490a11b4882713f07cf10f21ad1afde0055f8dc1384fe771c9b9836d70cf44a1d951d725f0ad5997dc16efa2a39dffe21e3d2562bc0b5aacc3d1a133b0160547f23bec205ccdc426acd5e2b552717f7101a60e9d47642df06c5698371a8d7761a68cf6a32e4860e3f068ead3d9c6e7b1b4af9b58c6020b977e92996a3bd81d0930d06a0e2ed25fbbbda9334e691c3c3d38ab942c5c39dada1104348cf79134fba8dd3f20557867888d3b842bd3e76b3421cc4be7b26acf9a3ee60655674228e8d71a062bff25f4ca6fda1e7d7b6e6a0f4fd4b66f817043dd2aad06693ceedd0a0cf4b58027caca241443fa7c43475aad133daad820d23867bf603d75612c54e5d73503ae7dc653a88073cc27ff33cb6de14062fe757bf84f2742f72523d7646cba024a0a2cb0c4bbd59dbd406fb75ee2063c25ff06300c4d530b18c73b8a6f7ae644fcfb5b9d366ddd3864f870cf6b4f545311dc7bfac753725ceaa21c1b70ee547997444031b94e409ee07f0ac637ce62bf9b602b54142857b9405ef11cf9f8cb163d3d2cad1ddc583550770c6268e28fcec5597a09785eba4fa6ac1149b2cdabc877b815c763d4e6bcb91e44eae6fbc1eb86c78486ccdc45e5612c76f70235f742764ecef4147cfe5404629a7cc36f2ce8242c63edd331721d52f55ef6e1d4130445d2894e3a442cde63cf3fe4c32525a79ed100bfbedf751d3d16cded1335eb6a703acccee9fac1f91ba38d621547a8f3f05a9520716c1788eded6fb869625439c06adb43813b381dae05799b0510dfad21a017fef220fe4a3dcea06f650803e8689899cc590a5d88ac4b4f091b68f52ae5a619ccfd00ee9c51778dcc77a4713ae0dd9ab8699e83ada740a968a384447742af60b0744f3761e9f4a93b27ab956d7e27870a4d88f6a83862b45ec52cb63fd913dbfb1089a6f36818072dee293284beb224cd5975193437a00ffadde282964986a873c9bf05f2d6a94d60ab1720e67fdc31786fa2bc34fa57cb369aa59d9c49ac5d8ae4b8722bd80934f7d62df0d9bdfa36022510c7410dbba6f1cce53be77c446f491b2425cedbb1cb18ba654f0bb9a39e29536ac41209ae198a0694823864ce5d9fe18f17b1a1bd1c22bcf71a7e9510769dad8e257c888252389b46be1a4509abc4758550c5fc7b07b2866c8581785c32d023eb3986be205909c770497146067beddc22dd09c4130a44a7132f628d674f386265373fb528f9d85a1b868e4f86f91eec338e5b5e7e3e0ef083fcef5649851865e59b7e7bb24f08d801b20153760e7aafbeeee50193461f067ec7dbd1bdfeb38dbf7c869ad835fa0be0772a9edda87ee2c57a0e806c326e4c90804f03256a0b70991cd2c684d9a1921d30ff847e1c218b55a1a0afd3855cce1999da22b4c22af6349b529803a9e1a2dcd4c3ae754a9affd393bf4780f49aeffbfe6a1f7aabd1337566e08f27daaa025215f570ae8dcaa381d2ca10d41f323a5e4bd48b943fe3fabc718e16453964907c3641223fcca8c46eb802c8786e92658485d8136cf1b4f3322bb39b0e20955db4349d77ef088140c71f4e3a32ddc9acd023a571aae50085b809a209a2913c4290920748f1cafd04def62cd7d5af026677c7f965e77a0fc1d776b37a59aa58f02aa3673e6bd4ae63d63ea466ee8198b4c6f3aace0499678b866f3f8bfb06d7247c56ad9e27bd8c91ab464417d591900ffba8ab7aa10095e502ca06781fc4f012a81d61d98f9f24ebc8226ed3d91927f905fc33a94bac94375da0733fef5f1bb043b9a7bdec105ff412d1f35fdee4c09ce56fb3aa99e2818c03315f1c60db51fb8e2ac259c50325414efa8862194e3d5c2c210738e0bbdbeec27b85bff89a31f6e5ed93bba391881d3b7e1027e703e1faddda69108ea1ee72e3cb69c148eac802cca5ec797cb49cbff3b535f10511d7c8e7897e1620426bd7dbad6a75ec5f3264a2880c595be7f74cf8264e10d713881a24d859b512d0ada8080c20881a9fc5cfd68725ea538ba52fe133cd3124d2425693d8676a904162dbe4eb4f980f9325fbf6735aeb76d4f03d4047ce2a6c3b444f4c4bb155daa70e236f9d5f766e9d49e4c13df738b277b4964248fe5993251c40da0a9327099c9ce9e6aa8eb33f9b6f1fa2ccc0f0f6b673cb9c85b4ec79516e17c2749eae1d861f5d5bb27ac878a884b6743b0954ee6de349c32f4848d4bf6ee1cc429d6888ea1bdb55851b6e9e20b86ce6a889f534562d14ff414ce26e20511b049dcc6be8346862a531ea8b50602fc6cabc06e14f67a07181886b458ffadf44607f06e042fee820062b833bb6f322489a141620b0c3e31590859bcb3634a6ab7bb3223396353724112e670e5b8874ec45bd79049c574fff2b2df66b6597139342afe2bdcf785bc896d2c6b478c489d4f5aa614e8e9016e8a287ab940b32ca70f1d91c441874e980229efe7bb5e407adb2385a556843a3918234c34495f2aeb87959e467d4da7b279a42513a09bfab72aac9e63f25fddf33765ddb2c8eae2233a3db294c603be4843e36a83321a18f1dc05064a30199c00ebc7fbaf22d5e3b260316e4ed30d61ba734400a347fb62e4684f6a384df938ec885bf467802842f0f92956ab749cdae294cf5e79892afb82d1389bfb834413cbc157077d7930f4295ff48e4323f7e69aaf3617486ac05c1cb3fe6829ce3147edc9170643232da81fe111b8fa771bc23ee48315a1c26644211ee461f45912f0ee269a44951472e3d434eca283949640a46f720a75f4a61f88501d1be597d33ff355d36d321f34cc598e616392a31bdf96e9b73b2e11731a5382fc4635420cf9e9873b2c599392f8069d935909e627ecb455805780d5b2d9232c98a9d1dceb5cdd580e67acc0ffa7c169994ed0f47268009983fec49521eaf28970051be91711300a0f6dc044ba4ddccc26220733ae82180c1972a8b0550861fad3620a7182e7d6998942aead32b291d9704fb3928d4d265425c07d044f4aa4762f80d4b2a6d12605f12820231f86b7f15ade4cd44a8c63bb291c8f604e2490a1d807d2ead08ad356e38ca9d14500ce40991c5c9a1460c4fe233abbbf6f9fd95b8c1321aa0648beaa898a90a20d6b799c6007180505bc5f29c494af65f71dd40b6c33cba8aab5695cf4685c802f551cf552a1f10b6cf105f85e92038fa6ef15c84d2a2ca3bd925ce4996e95fc6df885ca52f9e171ec68a8d73e8b82efdd629b3fb8313e3209662019b46b3cc9a8652af49cb612c9f1a2e10040028425c011c76d3622b1a97988c919487b34c820e6b4b17cb9c4f2d43615e791bc9504f98506cccb3ee43a90a0b86de56f9ba98dc604a749cc0adc8f972460965941c95f45f6d30ac326226618a27c42f4f26acec94296f4a6e40064a759653b24861ef9ae6c2afcb76b0f514ca6f906b0dd3e2c22089546a0a84ad7934913477a8c7273518f15383f0d4d7f98a0717cb64f06b78f85933505c796892407505bd5a7a73e340704134f6da5231a7843ef0c213f0d334d98397e6008ce7c9439af656e95685c6138fad17f41c94494e6ad1ca06c6557c753fa1309999e7bffbcdd7632677584b0da032946f00ff5137e6d2a556222b0c739ff7338ef50e6779a57a6c76ed5d6754617ffe82bfe1df59bc33ce971951de6100c0f4b4395b245613651e172cfde3b8eabf344702fa2086eb8f9777da5b2f50ee1a2135b5c1ca537d400ee16f1ac9d654e27ea04fe2c5bb499d545ef3da9f76088087449ae54ba145700b272a9861cca4b1f8633c4aab0816c6d1ab84e0b04d192784f03fdb701dee79c3d44c4e05d133f9d193f01f35136256f20d02ac58ce057bac3a1fa8b4d54071487f735aaeb74384059c13f0584e8a7c350af420fc34349499fecab04019df131a01dbe5ce8cc4394e3f8599994fc8085e9badda608ea1030c4194aa41d22d2e7a900af69e4fd8192d8d63c5292978da563f0acf948618495fa90cb8235ac953882741a96e5c4586f4b0c4a6ce59683399d5e20880659b876c3372e38d61791c3b34c720d6afbf531bf58b0cf17327e320776787a83a127f7f7fe32d37a2f3525ce6b3bf5e799d66745b71739c2accfcf7b3a927aba169f4b7a10a1bc2ec21d03ceba0e239b8c7fbee30addef6469a8437aeb15a48daa6925165cd415488a2c21b9ea3dbc8fb54a9b202c0e5efa336d2a63e19ced0b08c44d2ec275d05aa523948bc4d4fc53d42e3f551eb49a631b192811ad875f7e53a48a1b3fdd788cd1f18ce3f324cc27a1c80969e06db2103ee8fe566a6005c7ba5b8aebafcb3056086124071e59cbdd88a96f656b36dd7efa2e8ee5cfccfc0017724a1e3d85e8855535d53c02afdd2651172cc068eaa6eb9fafe493d45d74e495aef05bc7d319de68356ce1ce02c23daa014661cb2608d18c3f19028e15c2c9c2732ee5d76aa8c687a471083711773028783d146d92e684c0a584ee9d5f2b51615a1423d6fc9a99d6a01cf7fc15f45b8785755d9393dc1e2e4ed0599e3393ffa5dfd62815faf43aacedb993559f56775dc6b8f78b1bf1ff3436f076a789cfbf6cc93003acf539a0a9f6c2873a3acdc494c21bfade79a8c9697b725de2b23dc5d5c8a4d97d1877f252b811f1954cede6e17494f0ac41a25b866dab14385dfdb28a7c185adcf414600d59e75066d5d896a655fc89804c011325a3c3d4bcb1b50dd92fc9f3dadc40b2d9a601f2e9b312acb33b95c411856adfe1e4e50f84933c8ddbcffdd3639f2c8a63bb7a04b70fda36a2084d8618bf874c699b6161405f97c032289ebd0115610e1552f57ef357b5f324dff58b5cced0388c3bdc56490fc820d6bd56c44fbe81b17f7f9a8e5c2c4953412f27bec7e81cf0a476d28ba96da8322b369627971017042d5a858978f58992e490167922d8f68882591b6e61fbd69f1447c9c83eb2ef14c57f5e8bdfbbb71694ce18c68e813c4787c23848d0d96e079fdf35c3e0e4feb2575e8e7e47f57ece0ef7d17f9cdec7b23716d87db3d275a265de6bee59f150c236077f9b1f8df0a14d3a7fa3ff8dbd979b1b0c1d848e878dbd381cbddcc86bcab758296961308dfbfe60ae64a160a44d016c81ccc5f56ee10e5f3f1ba2c5d931eb6c708e2c6dbf2d22f91ce22d0a7e6bc20921691a025c2675ea913dbd3ba4f7f516bdab47769cef850797ffcd5b3474c3f710026f3ccd6edefcdb7b361b508d4731fb8f08f653cdf9d72196fe11ef17677d826135fb22343bb450a4b1aabcb06ed0773bc9ac2488df059309f1d2194a9ee3179e91328944e8561cc7b84e083b7042673ca8ed8c036f5fab34be8e1bbfbb2978c61bfb245dbb92d3f133053c3149873bd2996143f318fcecb8d3d41cfa87f2a5e8d92870a3d480e167d8828c985348a1bb9557bd944998dcba8a7bfd49fe9211492bb4477576ddf21986ec18f14de5f2902cbc165ca7947c5bf7f3ec9a1c044233cfa10061ca04002478d41e02229a07291a5f742439b5164accc310de64ff49966ac989b015abbf543ff708497d09251ef660034f4056c5acd0a1253a22d1e03134b886c0717c5311d2c93a8f909a766b475ce3b5bab4b2c1f0d22bf903cab98fe4c686e0f32144c40168985fe64848ad691d14d13a4fc1ce810472ceff38a10ff1e3ee382fee151bf28d1bcb5e87d978aa7b1ba0523c2f6b16893f12609c1072422304dfbe99d865be5942ad53410ee56b050798cd433e27c658da455df743b3cf76fc2739f1df2e682c66ae73bae634640f0def172408b0e578fcfc8c119fb6d3c20a020d385bb9452598eaa0b23b358fad04f5d03cb52ef3012c6c9d36b625dd0d1db30b37ed181141ddbe37a8e7ee24a810598635d94fa42bd5f8512980ec9d212ca69ace9b4c8880faf183514d6c7fc9f2af34433cf4dd551a6738880898106f5a354c37c19c3c81344e46ca64ecebc3704c97aac55f795bd26306987016610061abc7dc94e4c7d2709e50f3fd91c284706b9bbcfd9ae1cb093c4e8e11937d92c4355cc3a3e32c194b107f3bea081d57f94cc377419902513a9a9c2af021429459575a913c87598d622fd82d4f977f8a5b35aa5156c002c0270412d1a3797403f2028ced411d4d7f25ef0fa95a61b10093c236bdd75da3df20325733c0560393306863f8006dd044ac10746791c3ac68be3a4cb724e5a9287452a3f7be26d882746cf985a3a8b85302ef6cd68ef83dc9616a7958dc3fa4ef066471a4e6fc4f3368a99eda84258af7a47a4c8281a4eea2a7588a7a469456af8cc149dbdb5092ad24895fead1bd55a1783a1df0c8954d4f18e88a77953cf7e0b1cf5342dac3c581086cf6b1d79def22c92c6df21386a1e71e8c29181901e6be3e7f842a289aaf4628fc7787983bc0bbcd945565a1219aae3adfcd965dd74cd66938ace34471af6d3fee75edaba83f82378ceb5c5a7171cb21818869eb13699449d8c4dc5d3288413f6b07772d0648c4752076a52b2c96e253519bfa70d8985c605cc4f5535281d61d01a64315c3e30317f317b81c782db50b629142bd3632048ec441121f4a1ee8b91e89aa16515964cd9b0f36aec2a0a596849fd3d2c8fb9bdc3cb83f6b6d7766e247497eb0e02a6d171ed50b8bb30046b0d2ae1e9eec7a45624f243f343ca11fd50d166759a12d617b43940215458f392ad527ca2fbbb603ab9d15e3505da8568cc2bfd9910125a242f3292f8ac31f1f73029cae4c8c925982fc3bdc8c2ed5e313d7cbd907ffe01767433cc90d359ef3c261c5fc4e5c497c1de6928653e3d8e6d10574bc2b2f891cdd8128ab58b242d2560fb31c47cf0801288a4d0d2e346159c0cc360d20308957f12027d1b810726a2b31c20e4dd0d2603c36116aa212528c5924047ae200b2f5310b8aa213b6959a809cbc0c250a4054b37614f46aa9cd85c1f89c6adddba4ed940175a7267c385ced9a862cb359aa25b69f67647fa208ff5ee616e969ec4da87b48e354619fb389098c21ae9e838cc1360f005b7e087c9cfa8fa8bdc432347689567f55ff4d607d832a296407a6bdaa39f64c60fb885c33c689a1736c489d60e3ff129e0caa351d0c40229913e02f0a231c9d9bb1d38a4ef220971500a3a24af471da2ae9918dc856107d56648ff2c70d942f1cef78441061cf0517176ed93a885c846b58b24a692388b2847ec67e50d8044a340c63b47f37245b9264cbdd4f7b08040b4c706412aff15422768c762a36df954df1532abdaff3bf97ac9a195b3c5a999765c23307c7cbca6288cf47e01f0c963d201789baa8677680f97b4b802b2f6d1b3db743582ff8a44c6909309ecd7137020d6b98c9742e012b8823ab35b180e1e4620284bc399bb34dd53e3033de404d9dc2912874cf1360ac3339959b164639e4206c9684201bb689131d520d0434cf31fb784d34363300295bcd89530680df64b29d285c923246a7199436b4b0024a29a9d20d8bb24e4b4a7806995743a86ad895d782976ab938d20a8a852329e4fd3f27b7cc436da46b561cd6918ce52b8a83026ee42f46a9c6df6a8caa61c0cd946854a2dba460237de7e7ad81595c96658dbf5f61a88a6b6316cf0780dafb18e1842ffe118dd92f28c744de722a5ade1806c577f20a39413dfd779573f7f14f5fc59c32db40d1ab8c1455a020365794488906deb42ea04d5d78a7fe2ecd5d8b93303051f28ceba065c5d85d2ff0035f44c85012daef2df16fef6b712a54064b712723cb314bb1d0363e62f7528e5fd84bbe284c51f3c43b3afc65ec7c69b04988e2f9257276794ed4c53cc868afd4fc974f605dbb096238df47537bc4c27b4c8184c4d6563173a8f86ec2dbf9f5f9eff2cb9865df2099ff9f0aeab27bb9f09ba242f09fd459f4ca4a518f48f9ca9531983c47e5a3ec5ee3b8b3cc482934ee4b7622534789d5bff2df3b18efe4409d51ac7fce1820c0c7e20c0974ef37875916e70781579b44e0c938ee4778f24f91f42d6f6967d081255ed5e2669aa791bb55c28a16211b016e08aa2f2ca3c88063210a4f1205bf5ab9d12e407b774e915e5ea62065c8c5b45fc2be7d3780d1a76c34dee3a4cb808c7069f1e2d51cebdf788577580cb4f8f3c67e43896b16e2e013d36639a602159570cb17a852abb8cc149f45a42e89e8c9a76018b6e5f0fc281e7d13393aa55ec0e061be39ecdff68259385f8454ebe4610f78a58fcb694d499bb9df2977eb2322e9fea4a5319d1e2e1c4677e68cafd3eb11e7e7abac05251407b45c61c91649b71ccc653c2a030c98ccb1028d2e2de0acdafb3261399a94e6315627ca5a786ca29e55a602b1a4bc3818f12bc899f8d1d21ff12be793f8dd06e314db77dde665941cfcaee3be8856e8005a691f1a02e8bc69a080dfa69bf61cb1e57b47a10d5e30c064da11d42107a6703c3dd6513c012cfc63fdb08234ab423268491c08582ea734fa70e3b5225a0797a91de8800dde2b9f14e67e10fa6876d4e50a889922152eb03ffe0818885b3bac58740422411c6fcbf651f43d1add5562876d52ffac06b58ab49fd73686b6918e26558b2949f4f24e89b8295490005d542c38555c8348c13f6f6da642e4d28517631ce3b1a81bd4fe488324bc6d2a38ecd04305d72fec580544601738515caaee8fd73fe09e2f3d020deab80fae5af6e154c7f6a31a86909465e4ce4ff76f03bd44ab8295dc3826582051777a1831ce0bd1628342b3bfc093ce7b70212f374341c6e7e88fddc0fda2879862d29d425d40d4d04faabc3bea5e1749bd5d889430ad34e5bb80b38d66752af6b254838610c860c1a77ea6a10a599fd03f2df0bb1c4012f1fd0725cf2c525454fa6d4c732ef4485396d09e3ccf3338220e1657e81c9328c39011607b21251b2f1222e159c3e516ee05c5bf99e093a680db37981d915504bc48565503d32e27f9464f27e0c7de7b0232c30144d6eb84d099508022fae0eb75d421e03177c27a29580891e1f032d6708fcfa4e5cc3d36b108e4b54ec70cb5628833ad6f1d17be38238395a8532006d55986b465a1c47ec84a69f247bcd102d755a33facfeea388a04e9de31167ba74f204bfcf879da8b7c83996101322758ab13d6f717edc390717f859fff6c83faaa2cdee6a5f37c3770283be54f587148c6b927dc9e08c166e01e458e90bab432902f80c4cf01cf86d26806d771aad4750cc42a6bc7a7dd5ad5f48054d8f0a5ece396c6746eedb859622faa9a78370c9c023da4c611385806c90dc11dcbee3377b890879d5a8e16205e944b0173ef3a66cf8e8d5da0bbda337c39f426b65c773aaf0e98b124ebf6113fb6b82a39309d706202cf22a61169ed4cb3162ab64bec4ad35ee1d35e5e0fe8192946d4ce2e646cd2c7cc065e296018461e59189e3991599f780b4d3cb5cce243210fab8baaa0f9855baff536ca67f64454e2ee588a55e99de33faeb1b9434acfa145ff28142950c028bca7d62683552f311b13bcdd649a12ff7a1452256c3d5c30499e9293d2dfe3e9517872fbe9ec7ae62c8170c39f3247a4b0b49ee4057b797e42a61f2e6a6418de748ac547fc7a6f6afd12e9cba1df20b0289c6bf9478e7f103a3e50c245191f17d148398c87fd4a7533ac0d2e250eca039657b1c96a7663341ef987467d3117609f08a0519903b6f02e367b7f92aa693e190d0298375e71fe137be70fd6646138ab40c4d77bd7f4f5612ead5e614e36d4d33705e58d492113c44c89e907e34ba39c1999ed98b93f4821957fea6d44b30bd671e3b2a67aa43195e1c1254dacf9109cf03e64398e8dd4f07c09f8a5cb41da8dc593e42557cf2981c639d013d5d0c166f0a85476848878b3ea4a5f9af6a34529242d8a092d1a925f2a33f93a19254f2a6265e07d74644728aa74dd7eb6e51469852f981ea5224b8d823082e51561422ac568dec17b99cdab326a847b7f0e43692f18c147fa742bc5d6bb7926bcacd3d8011fd191d76dccb5f4ba010ef565fc63dada719219600aee4b94e986dc38172d6b363f899fc6237739f6ac6257602efbf9897c1d5fdaa96431de651371ea5545612cf6efdcf3264280a2b45614e8472c934a02454c2eeef20bea0f29851f7f68b24103e43a46c515b3d5b57ceca129b243a7c77b30952c13a190244f7286ebf6d15f7150b93476c5b6722eae6e041bf44b2bdcf3c870c403f194b5f932b8909e5285889f207af83d1eba2c960c406c19e343f58cc55f8c8048b2c9a521d01bbe1b090cc0592d5c0c6afba3761cfc82f3f13aad4e150362dd99302294a9509a86298a396ba6de8de14a03b37d5af15cec94cfe8becf596c4f4a9eafa526e9c6faaa81a313c0099d2745149c7812d8cd53329750a40cd8da89b27167e2bb4c718eff64ffc0cbfbc8e837c3c76c091ca404fc1868b934f891a04637a4fa9f0b14cb1a93cfd26e66289199e70dbc8c09dabe6458f4ec7720ddfc4cdc2105bb188de7933431e479ecb133140080a45bfc244a539d8853d5b5513079eb1a4e62a314439585392082d139af0ba2951955e3cf38fc485f257dad53804049bbab40197aa0b1ebd905296c61c7f3059bfb23732e2a12f600c1510df8513579e6813d98e1a08b69019043bdd04b9459360553874302a5edb1699bb88fb48b02773cc00233c3e8307e659380b082b1cf4c01dc8eafd86d5dae36a36296c2716c7bd5783375089a02cf354e9b0fed9768edd0c638f94b7dcad77ade7db38671a8f5f1d7c286590b9a6f55445254ede3273e2aa62debca12acbaf47ad0b66451ad78753cdd60dcf6b7ce644b78d5859707a630ef754920ffea41155f2f455ac16072218f0ec94cd795c9616318b5235abd1e0b137351b3c0071da5332438ee6b25c029ad4b90664d2f4d3390b5c2eb4ed2f79e8f1133029a3d7ef724aecf78daa770084861dc578b9fbe301e662fb0d38970041fee15891041ee79b316ad400720bbd6fc536368f4fe1981f0a77f2be260f326646fb93d55bf3beeeaf7c6cd3aab7f8f247c3e77b6c812108431455874c6a40b217c2fda1fec3e63145eb44b1f8caa5b17964cc1d728e3af32b109f7b281d02030ff56f4ddb105547a63c1b4e1ba381913c75dfddd38aacfbec625f2864243edddb294399f6bbc1e91175cfc9fc04bb74e8cfa7376452988643490e0d0af68882827bce2c9d5c386c902e8b756297d5e2caf7cf2c07e130f072a9ebc793c7e5c2b8d3b66bf24b02836e738417b3362a87feca52511916652b17464a8fde0245b2afdbf3197e6568be293af19f6de256803c87d200317fe1466847e74bae65120e591716bc60230c826f198fb21b1e3aa996348496052bb584240d56a75a8089d8fa11413b2c261a97594cdf7e04070602369dfd30c5cf5a6d5c4e675f4f614243edd8d9f4e3198df463b3cd9986a897682b3901ad251607ab95ca890da239291294db568eabd1ebbabab5152824cfa63e4e45ca8b9228e14fb157806bf5a9b1a021a6d1e52d0e89ad4385f71158dc57e5df0ddbd7394ab8663ba6897027ac7498da1a3dddc7a456020dc70fad069a324983a5088e32cae238a37a3866961492cdc49f79e9b815c2f90da9cc4dc50b5b5438155d07f2fa2662ea8de37b09ee2fd3d14adbc5d0e65239dcd5a0bdfc06a3396461f31005b6160c1730679c3daf9d480eaad93cbb7c95b0286ee375f8477163b2ba447469d22c0a94bcada284fca5d43a4c53814788035f7c7adfe6e40c501557becabd629753a1eda5ab997c0d20fc895d4248c08a3abe70d2a3d523b7348bff5e7faed29facd9243d79b955d5dc25751bb46b5a471dad52afc3b0e9a0a37a6ab5cd861444286a8712ec47efda4e006652dd9ccf4c4550258c2a2cb5a374dfaab18d945535bb035eb9790f22041f2ab13ad5342a692dc65d3979fa81d36818f1440dc170288d1fccda34cacc3da96e5c994556659af65b0ace77561ac870026d6dba61febcdc5c97a5f3bc31fe4e013ba6668ff653d7eb7b36a3d5211733ecf3e2b452c588e4f316b0d419e9aee05d3530f7fb670767eea9c5daa638e765ffae7247ed314496dff6c48a3ea9f967482717b467c7ea320b7a8d30450a8fbba63e646e99aaaa3d98bd83da56da5e9f436c9551f788b97b17a4e1d353c567a9970dc0bef4f385a402119fccc449e8083efa4ab434afd8a9264f766bdd45a8d9c52d40af54e812ed8c9020fb1f00d10f4ab215fdc66ac43eea60e2e253e79936cab37e042a0061dd8e91129fda266cd4ac7ddd120c652b2115bd81253214a7cbd11f66592f3f7a991c08a91015e64c679bc26c4b1d36f3a92f570ffa3260df454f41779ac8545e0f829bbf7c29aa512c208582d5f19ce837045e6fcce0ec617d5ec38e28aa16f0005f56a04f63a5f7c249ada65a9b2e8f192816dc40bb42688b38d6ef36289851385f4b854dc5644445b04ded07451f9537b3e6c270011d562000257bd3a8edf91f539dc8211aa0df37c6c5acb03aac13d08ff6c8b691d0c8b0fb4eed6db54398b06c8bc7c596e4549c1e8abfb6f98585a6acfb4a7aa6a8eaf0332495f422a970453b7df917919c9b1114b3a77f2697604b199667eb24d13e893fc61cb3476754f01bb6f82c5de0ac973a891240cc06bb71630f570dccfc6ae175a6fd70df6b82e10f43a1f463150e1c1eaba1ab2124f7fc0e8f18a6cb55547f324bffeeb92f98139b5cb504b9b64a929516a18017a020cad25d1598be6a957286e5827c5125cf349cc9fb564033c63271e5ff87e4240bd74bc01eb4ea5bae381211c32f29da88eca8377ff73bdde3f637fc4e7c26d257ecaa791cc8ada96bc8fd156e4baccb7256cc57662bec15c263566a19a654eeedf7505ed6ebc0d163dac8b69b0448f291c4131ab1e16c9ecb0ef89862ee6de6193cc308b7ab9ccbd036c33d2fc9dd939ce48644e04fb576ccbbf044d36432846ab7de8e69d251719c3b1adf0a908c9bfdc846e0ab8a02876813917ba3837d213a982105876ce2b6d49ee2f071a1c7b1d11f3a5afd98a54111821eca4ea4e4978ef2e1ec41a173f0ffaffaffa53f975274016373751edac84c59933cc2fafbfd8f0f6f163901dc6c2d66f2854057b9ba9232e397ed16b1c8c147e724b06c55f829355e706c53c27969c0b8867c81dfeda91ce4854b7eb8c7e66f84bb8ede69f24dc4515893972f2689534fb157804d314b157146092d6a96020c14f3a92d4625198ec9f5624fc96e2c3e419d6dc2b67797e70a7f3c0a60e419e592b8931f410077cdd429a8e6035548cadecc6dae59a2fc2c9ec826717b6ca59eeeac3c4f6bb52a3df4242cefc62f306a76971ee30de1bcb504648c47c3825e5943a9056a4b3f488031cdee6f8d174a1d9c2aeefd2ea35492af7e266e6070020f5850c814a3b7c19ebedc4eb6a47e09b6bc6e9810931c4a471ecf07448b2f8a614270570c3426d80cab7b298bd1b139f99ac747026cefd3f39e983410ed505beb24af94b14bd2fe9fbbcb15273530a365125763994a1dff0d897b0c5cc82b28e9d1fc3d819ee46dabf57a06900a6399cc19e69114188dae4160c7010e6b1679a90d5e7f2c9e916bf1949d98fb28c03205774f37caeedf438788f0faf60f5cd6438cdf11318fd273dc4e65b427c2d855fd8ad380dcca590b59906eea761d17210b762a9cec56ae3dc938c7fddc41fac6e22696501024a4206d716802772cc5cdd8a3d7939d2cf7ef898899f54fa3c77fc4fc544617abb34d5337bb8fe00e3a5566c8cdb5656725c12d10dc04cdbc8f1d2a3d384ceabb981df16a317ff296fa524aed6c9ad8827f7fd22345a5709a21c49ed9eded167399af2f9817c2390c1c435d46e6b81a820420280999a24b410f58bb1ab9d8da4a640438ba3b0c4f71c165c67db0350ec671db0596a7430a9087de10a0e43c1bd40373985091beabb7f2c76da5ed06338d53e01bb6ac120a6e9c93dc0764e5df72cec46cc96e0131d510f38151289b088f590e8032185a687a5fbd16a57d7e4594b073494a0f8606617e1f46180736956c8af797f685f02a965c535621840bbc729b5a94dd86f70fab5688a0332149ae352451becc754bdf5924fddf121ac9859e266d2170f7f9bec21a2d690c49834303f3a4d54ead9293c9be49c74cc2b6251aa82d2e3c0f11d39f2ae5f3f1b1675942079a2ccc18b5c9650874a300255239aba8982750986cad124953496299ffecf07006fbc9c42df14ebda239cff441fe34ce49179ed3323eb0b1d4163c6794fda376d4dafafeddde5dd200bf7dcd8983949c4e31d64374125cfab9cf228807b666f8efb089268aa0d20f1df860cc5289ed8cd747d4b4776f6af56f6b582723c287747f62cd8a1e37c289f07d2a7b2a604b7ae8304dd59dd603131833ea8ac69503f1529efc4f24e5447c2a76fdfc09dd1860e87bb1c70277ea8a7c2966a10796f18970ca41d9fac8c0faba3484b8bd809e935ff247fbe1b560a44171ec8c6eee9fc068262f11ec3afdfdd65812a62126a2d09182aa00b86e83d9ac71ad06c7c10144362808403b38e5712cb9aaf018802c1a6b10b1b8fee209ea1e5cbd4206c2d3ba1d356c6f8d4f7b379785cd7a0b509cea2179deda69781dd8881e06c81d60f462b4b1578d660c20671d982c79a5d4faa94c0dbf2bf89eb73e9cf3e25c2c9408d9844b38c15707fcf8e42f7a7730ced2a1c77e5060390387bcccf6b5ea7c0509b02af38a4ac15cb61c26ae5e9ef19b6763dafd989fe8a192ca93bd66af25f28da7106d029290b6e8d119ea360af02a52dc5cfb27fc5cecc99f1d79e70af7a7966d45ca250cb6ea9c5b7b76fd92e3fe8b018486bd307a51160c76b0510b139a14fd0c4e4e59e4f8831d8594017591423b17263e3df4741a56e595224b71e9c7ea06b31f9473dbcfc9c923068df6b1cf31739e3dfeee6bd6f3cbc128407a698577be839f8a885a890a48edfc85d19cb6beaa09c43b22ba4b92dcb64001fe5c140a6ec49b19c6d6502030bc803295a0d73d04b92c2a06ff554c5ebcf6ea69978fa24f5af620509e8511e74849824372ac5b83ac007ae9073b5b0695ac7562fc66779676de998594651da4d15d7c668a9406102c35c2020788c3ec8b762c415048cd016a46e75374da8b841807c135f2c7e4afd5454e283e0f0e025e3af58a75881b0895bad12585562d54c33721a670969f8683e753bb3fd6ca163fcf4d717e7d02c12bdb8ef7e5a976bbefbc2d88a6cb7fa18e4830616c721c64184361f650177ff984813be207bbe3945cd4830c1479d60da82e47f92b9f5da94835a6725e96d177f8ef11985e7eefab4894061d1766f963c002e5fae8678d90ea4633c4c1b94adf650c83aeee97d6aa313a2aaa43710329efc724e8972e90128d20cba1f8fdcd93fd8ba26f2c162406817d71385417ff9bf7897cdc049f61972134ba72f54f9a5bcb12960fa1179af85a93efab360725de5d743d84a97691547b76790c2697126484024dd32b6b0228b842aa58144e791fa99a97dd4a58056539f5a970608b2c19004f94e1af9c40c1d6744835ed7f4eaf2f17d174480e686c1f98367c03d556f5d0a89c6d89c1277c0d8437daeb70c3cc8dcd56c90b25c03f7726177bd3404529efbe7dca4f1c19607e34c882738afb01bb72c84b0d8a3578efb37c8a3d5f0974107b288685b0713b851a1f7400a3bcc286367b4e0e690b8115129dc3e8196761b7b0b19817cc9bb50a9f3137b46b6776323111a8d6a57b96ced921a7782b124ebbb8db6f9b86c30231c193b914cdcd8f8f042e67e442d47b35e9062a58b41a9a866fbe8f6149f4a3bbde546f0b889ac51d97acc8fac101b6a2d7a932064d78d7b30170b4dd7308bcb5527b33947e45a5d2c5b0bbf8098eca05a9abba7b10ab186ea227a0615a405c8362c0fd49af01656ed16aa5c2e4c5fe922e37746136e4e3e865536430841442295e0b1e0635998602ecf8ec2382441a34e2c6ca2a99d30266bf3d52269377c0bf8c51ff9e50c8a3c3e2fa632ee062e277fb4c86704c5a0d5887cd691b4cd3e2e39b9188dc4bbf992a150057ddae3eaee3382be3cc21c01f656881945df8a9c1ce97eee2d8f0dfc16ffb4e8a0ddae282141b571c1e2582853d2a87216a8ab9490160dc4ce7d002f123c2f5d8f18abcb27c7c5554e4cd610f7b99f4c284a208e8d3c0a2d934522ea6d97fd3fcc79f188a857dd50b79fb8f4a80a7de977de1010ce9a01e9511e0186fdc4ede077a606ca9f92a23f4ca17f8c5a8743d782ad68b0a448b58ce2824c2d1614815e36bc74c285231def6c21ebde04fb8b15e997d49913e0dddf083efc816ecf62afbab3ea99c5538017b025885e2205f8c8018e8af1ea785286b83a65990cd81d6788af09826e445971a26136c128a62198d8b147bf4ec14a47dc341d6cef210f3676ae546280084b1615808c73336021858e71db8178fc00b509ac356277c60a623c857f00097f4c8715c0fdc1f9ee815395475224d047efc25a13092a17a1351c66b6eb4944a2fd0aeb70edf4c96f6e9cdf7a8e60aed28d251018768ab902adea4daae018ec6bfbd4e75611192186678ffc01f2103e2f44383c130fd6346648b5b64068c588c136f88dae0c95c9f2ab0ac3d9318252809da11dfe35397787efda872704aa86617a0659537cdd2750cbb6914b13201f0d813bb3ec0115d0dc1847979a168cd9e67ae5fc190bd0b3754737524a7cb51e348bb42a941ecd2c73bb10b7180599ab617816cf2d37575885e2cea12b3520857784cc9a9d724349f1b0eb01cc782de09e19279e8de794533fbd0c24719e913179359a3b7ea34307be10a587b91ccdcadcec99a2e80c6306b7d892505af33033de00726b96505c83c5ea1f46725981128e78c199859ac3aef5a550884c27a0c48f70e8fad8765bff08e87984d5f09aae6ce18ba2b146cb780d7ff7ec9f83d34ee37a4dda550501f42295011cc324164dd8d8b1fb52a64d7acf9a05372b175ef291a3f925bf401bdf8f9e1e8b2e052be998f4d01fdd19ab7f43892951682075d11be9d000ffb2e88111b4bf9f06168f1db07ef120ca086f95ba0fcdeca6736dd1c0eef4d87e526a753acbbc742e7e7c9a020a2e9d910963e77c09ee31fc6072c78342409170e670fa46382be487e5064408a6cea9cc5b9375ec68ca2189bae8a02bfbb48d7966940077616c2b0882533a5935dced5aa5725d7cbc36da5b5596b944a5923e3fa48644996e0c5300ad5d17242943fa9407fbe136fa57eaacdf10e310ec22056efc192558bffcbc637f076993db9b02561c2b09d5b014fe625c5f22cafc5c167f8c282b1a8a6b9403b91bca230b8e8920e8ee91cab1003137d5d828010292b5dc4e53c4feb49ca3fa06248fbab1a04a2a60b39d1e034bf7901b75491b24e636c56487755caf3bd2d472713628a1bf802ffbb08a429a2c3bf0263e592ecd3ba9a8312b1d3fedf3711168dc8707ea77ef0e9e0cbb89a43cab63233bebdd3f2be23373360aab8aaec7cebc3256792928b6e7b42e6173ab0a90a62978e56fb0bea8aedf1bc1b745a29597ca040295ad0df372b9b05cf119fe045a39aad1ae22eeba4da7a5383fb40bf1dd5483afd7adb8b612ccd506aa14531b07bf52551f992e6033eaa14b67a5dc6a42e6bb9063a9538c3b61adec006d218d9aad0e8e916ccf8074e05b41845f1e7fd12a57f3f1412094cb002d73fc1efb7ea016a9370cd94950468bdd4e8b8cf079f2b07905e02a3a16e719f4079fec7ab21886522ccf27b406bd04fa835319ce027f0693cceee92bff2554df35728a38ba97a9401419e28049f2fad14c9ca2dc732cfc37e747c7b2b1103719ee2b51ff5cbf7ee947d44eb3a89c675b290cda7d49d47b54ae52dde14a122a690dd19d0be5265442a32a9467e63a2f241fe27bf6ecc2e1d2085579ee4f9eeca28367456ac6b9ea8fc5c2374150922785ebddb7f7c0ea3eb550e8a5aa935169db65a3c21f02582e98f837043c25481edbf156dc07fda3256610ff236446295ba28f61c7414c07110c8dbcd7caeff2611dd0f311f66883036190b5b0eec4b34ddf929de052482a9f6f2164c074d8c60fd9c6859cf220f7368c0ab20a3be318b3795056c466d1e359c6728fa5dba29b852b4fbdbf17500fe32952eebed86a6641a9f9a9c33e4a96154d726176c043b2c3de47849159014db63dd6dcbc417b1924dc6afd8144619022a7ff15068c01ee35c939821a0c896a40ba9a360538087bd54f4bb252df1372721df6a3e47e6c56d30f77edf3a956ceabf1cbcad07a1514b20296f0ef3fe3ebb5815c87e09733c5fbb1a8fed3a22d9eae28f974b6dd7ba388d88c586405e0e6f8fb83d1766384db3c24583a09fa6603a571e1e19af8f908d105d4cad0b50645c8245d3b0ee9034611668ff9ad8fc910723e1462879524c1bfe5d2f0d5d85ed3c52b9d45225874b7194aa6624eda87cba2ce299cfd98bbd90efd6e10ec3374ec7da3a3d9f086c9d72d90358aa4720aa76fb4f8d593a4d8dff17397d11466bd7e5c7a341564c19281462c1bd4ea66a0e677a37edb6d1f6f37fe7bfbe00d6121e99a87029021c0177ee65dcc983efec5cf9807bf0fbf257cccbd4b7a3b806d7ae3177f26d02993af1036ce3e1133ce3faaae9588317bbb3c8230930f1305d469746f836551e207d829b5b65499121a043af7514796053308f93e252d58a45b456165c49a4973405a68b574dfb7efbeee7eb2fea19d55879abe4b1cf6cd9a671d03cb14e4fb4aef37cb57bf3a2acbbe9d798c3bc8e3e6c6f80c0f7587da1e03842a61f7434b74e44e03ea6352795c40d6554d079db8260ad7889c1c91fdecb041b5a852761fe433db68d2a8f8d9a83886ef1d8e095d737408ca3df5ca01bddda14f1ff5584c3e0b163b14fc6de176744ba937e2fced2f8ebd9c43f238430e22a146f6eeb6f79632a594028c079907a607dbe2b180d2a9efa42f82e3513acec211aeccb8f51172021c988da781d500b18841cae388752fc221f370257643c797f9cb5a66db82d2e917d40e8a87b6370e5909d431db969599aceab011828eaa981038e306386306ce186af1a718739460f4ea88d2a9fd1d8843268758d16264a9e3ca6cfca1dae3cbaa0a888e5f036e35ed40371bbf851fda00553c6c7cf8a18d30b40186e1ef08063fc109348d09438e0022426dfc580a2a0575321be08c2057e964386438643864386427a06bea818ea5a0af293169160b2f5f65e338526eb4109b1671a4dc78b78123e5860dae42543119559016fb01e087df8d1ef05f2354f1a8b146c00256e3696021a8e211be8db711eac03dc800073158f83430cf1403eab2aecc74d8e40882ca95d98ca0161b257b798d1dbd00d6193195127454a162cebaf1e18f9c0d554c15e4ac1b214ad62afd21c7d9a0b446aa1454fb4d29a05b47d4e486852018eb6031845ca5ffc158071baafd347c10fb59e887d5001746035c184542bf8e28196ae62c9521787e70a48a2d6cb004ac1f25e4ac1c6235a041103f3780420ab07e940c15a463a8a399d1324b98dbf5f8c0ace9c8a05b768ec9ac71d35f5a58712e10cb06aeb665b2bc80b626a3c4e864d195499633aa494f3b05413ff91ac80cdb395fd3366c215c818e5c1de59070de84d3a6c5394407f4e6a6c53e42474e3342478e675b5a083a72933e4e1021949372ca9672be9ce0d8bcd1d4b9699b36b2a4a9524a4951f0d954f9738a9843578bf2bba2b89ab5c57aabf9d95d94ba5dbd61f4fba59b1a57b9d988f48b0ffa3fb8aa3d10618d07b1ac1b3624556e39188106d816f93ca4592ca9bec15930bc5d8cadb1d5fab6a049d026685704da2da1dd7babf18fdb902ab720ae7ed162b080ce7a64da50f73b7267b3e917fe16321b62f1cc55e4f79c1ef52f485f3271a36d48abf4386b8b6d3f9b922affe45251c2ed083f31859bdc8854f91b6e362d4a1ffca5f766559bb5287fd04a7acf498b52d33aed498bb20bb5a116a5a6d5b04cb499b338276756e5775db7c59ad52e906d3543fa05673b020450953b556e37400449b9e954b9f154f99dc63dfd22b5a12a7bb421f953f9596270dee15849d08335bc121b5a94af85146851967ea75f44557e577039a697cf3a8cc3752fdf060a7cf73290d0915f349acf3d36c847325d07723d96ab3b9adfaa45f914e426db227f822c04b215ab433e69e49948c620126369615dc0c017605d68b948982a7f6455b9d5d5fc614dc767baefbaa8c69cc533ae2b53aa1ca56cf16c55d93d831f73fc92432fc78d642c78c64d5888b3a812d49ea5dc629e8eec62721bc1fc82d4c81254f95ad578b67c1972135ea1828e5baccadf6a16a648cdc360bcfc2db605e997a91581f1e116648bb528df4483cf06a5df051edd7d6e8de0c2082dd8ebc06988089cc6f1800f0cb4e88047848e0f3f374ba0a3cdf913dbc1d00e9ed448a18480aa649dbf5df9399a1eececc00314040f1255c0fc5bce8a39410e8ad8e1884c881d60feef2ffacbc8827e8ab830b285f9a96d9ca893ac69ffcdea223aaf1d47aacf1c96ea2d19ec00c9b4c933a75f461a479c46bfb0f6292d3a154d2c983a756fd048e6867c9c5cfae8c9dfff719ba8ee8a50a0dd8bb4ed5af5a4d5f53e0685beaed4fb3e0699f4fe9e83f3031507d5abf014d4f6a9bc45e51f6a13d5e3441dc96b8f634be9beddfd82f479555419547de3ac2c56593daf2214a80f597bb4eae4d0c38f411f1d87f2db22873e641d7bacac7e0c8a4d4e27790a3bef49c9f404ea3016e52799e2fec54ca1e4d0a8eb0e63aabbbbbb94a32c11c76da62d4aa621507e392749ee8e3c1add93d68bf4955f2a3567c88523c752f73797ba4ee347fd22bdd1d7edeeaec8fd3be5b8bb3b47b9dd4cdc6a291571be685bb895328250fe15bdbb73ae2227e56aef86ef39323e40f94f49fe545a82631a4650fedd182401d8cc9e734e29a583ed492979dfebdd50ca3aab0f6decea6356fec944e87be4ea63d61e47c8ea8faefc3495c3cee300d3c83ec93c777777f7aedddda5086c02657777c9719b76f2a16e9241eea444896988f24b1771fde2f209949f7e6c7202e5e7c2ef27e6ee2ea594eeee524ae9ee2ea59473ce39a7bbbb9452ce39e79ceeee524a39e79c736e242ae3c6c7d2a5058019a20c325235648829d19d9d5958e962c00863acc0b891e306196442322119b2906db26e9b0264dd42d9a21602e094e3450eae0546825b15c07acbb7cccf2e0029754896d2d391c46e0b7e1ac9483732c54a073a587541dd595a701401bc680145c79c73ce3980c9742433c3afa12d481939003a80cfdd61706902e52780490ad49f9fc4b5c8311c4d4829a5dca494d2ddddbd93524a7777f796d44ba9948d94304554c9d12257d2e5135fbe1c8476c98e008c660080e3464a3892912f52ca941b2fccf76f697531e0e8f52cd418c94c1bb2050368b184070d353908cd6a6a7260c2902b0aaa19291906e0603c174c5c50196324236138e922c3553d1171490d01ab69af1ac5b0813a5febf941281f408ed2c81432e52a4db9530e4c56a0f2192601fe7131609c502f4632f200eeeefefaa4a344e14508283fcac8c4051d99b8a032f225a594554e814ed248669646262ea87c59001c1666cbed73779f73ce96543482817282414356ef06782300e2cac7a26300007081095bd0a6a90c8e5f653a6229bfeeb9ebfee55e275924e77429c1954f9f2f67ac44972eff7b6a7535e5ac04f286651ed2d0043a6e500debf8c83a73b9f8a809dcad6995f9dad691cc8d835cc342fa458a7e6b8f66957e7e3594c256a843f79ae720f76a6d73d17fdfb7bd26fa1189a63ab89504fe987514ca1ec0b19954d1bffc137de2e4444d6eda08868e1389b6906b5176ddb580d3c2d415741465326854fb552245e79d667dad225fd3b86adf23194d74f9288d7ef9369f5fe5386e015bc3f1ab9ce7f1f77d3f02b550557a1cfabbfed27b4f5335ad04761a89f4bdf6d1ef0bbf6d6dc5b2ea176da569db8f6295adbde8a5f6dd7b2270256e208b266adffddc2458b5900b77f633a5ac538e8050a7ff3b6f7d2eb52a3c9a234dfe16546a9a9c8ef35c35de91cc746eb480c969a31d34b5390fdc16dddd43150c5b3d546d8f83ff7c0fb7b7ef9ea636387eb472dce8772402692a833dbe3af2bec19177aaf71c38e650bd7ff937be8ce7f3bb50b628659573be0aa8f62baace812250ca08d4f9a2971179fc49b0ce503edd4c808412ee4f6d1acfaaa3ee2880ba4042754ca92b9696d4f7dc6427e23cdcf8359621e5af9b8b1082088ec07384d90b134deac664893a723f757d98d8a9e3c7c411266450f9bf097c75f361c2495d1f21c4961072841b233ce120e0186167c9104a899d254d9604d94842b664894d38aa011d659541954520d4044e1184548082142146849b0100016708a8fb41d08e0c07c68f13596c08b3dd1fdd8da8fe8c834b97524a16c5eaabea3d09d88581b7521a51690c1e034d0f8ea8f2391ca636450d6e6da1ae0a8d0f3a1cbce675e99566b29c82b70b33fa76bd6e57c475777777b7b6bbbbb2bbbbdbbbfbb7c5dddddd15f9e0e30354d767092241a8ebe313544f34520bc37d6f753c69b37251fd570837d5c31f5d2f90aa630662b158fd91aa25d18fa4eaf9f0f183ab3ee6b6f88bc076198e5eb7a5ebc8d55a654839af5c47aefa12dea68cde50ede5b8db5dbae454401da4812d0d6cc666952b9550a8558f0ce20953785a785a785ab40f557ee254cca626d4409a501bd13d2c93b10e8e0cc25ed5b2d0849a580f4b23198ef5388b854c1d94183128c75ca506859221e38713532aa5526971456de6d9aa343f57b1ac1b1836b24e6566250b33db880477c62ad54886897835be1a23194d8b165b4ad99a508bcd637bd18b421d3c22c0b670bd9f0696d2e181064603db401a184d4259e62a77966848889df4cbf6b79096757707a9dd6d53bb6f6abf4b661d5ed2ad09f58b16fddfbec867d8d83f9563b1588cbb49e5671c76a18d54feee591853657eb92cee41199e8134d86043c583d3610337302ee4bc1953480b99736681a63b0f196473fa8985bcf81b0fc86a7c5dc73157ab15f36ab14f1c7bc1c22712fd68272ca2e8b25abd708202760f3f386106db401a56c0bc948f035b36852742300fc7c7812db0c08a1b007c1ce872831e64b00d5c9887e3fbbe1b5a88462a95f20f4308e58db4f7bc2237cee24220a4f631a70979370b2335219e69429a8d2654bb271ff190b6d894dbf947efc06c6134e9e18f0c448d6d0b873ccb2104e5478d642483397c40479ecdb6e5ac557a450a548557858b00413604db40950d605e028c28b98192224a5ea064889220499c24699224280950929e243a4982483224499022ac50845011b22514a144c7d0d7f87d4fc6137444c9504bfaa5088def4705f907c3c171da7809c6f748016b458d118e342b85165811e3110c6245c9aa40c7525091300cbb14c4d42457870dcaa750b2192bb35250bf9498946626f0e31ae567744ab630a61115abf4b9d28f55ff52a88342a5460d0cd511c6f79836951403dcfa2e3071831e24d01145e3613c4ad62fe3cacca301ae34691518e1caac0532749810a2880e1cf9514202373f486104258630410d3c1953d05115530551d5845c3d958d0d307c6f5f907586234b9d9d8f047a55d262f778dcaad8032415ba081faec029f50bc9e4acef7195fe97b94a7f8cf74ca08e4a028bd4944aa51248aa2970a509e94bf57b9cf539add29fd3e211f0755e86f25d0a62520a5796c8fe651fe42c1cdfff42fd22bfe7b5efa939622daecc7e0747d0c2e090e158d22f2453f839af03fe9116fb7fe779701c714500b0c882c759e1733c342338f99c1e802042cd8a9089075ae4c67fce1f799d8521fdd82eac2c611dfdf43d13b8d2a4c57e12b822b4325b02e31bc6ca92dae0a969c97b54295c21994a61aac57ed2d7382b255c57f11a1ce1fad7384a0765d32afd29930ae8fc1165335f80a31c4528fa392b5a8c3962b5ffc4d5ae2c8041c2ff9b07bfa645212d22f1273591daff435aec6e1d3028dd50764215b088c148bd8cef5f79e2ac201f2875d145175dc04294efcf11cb1124478d8e9b858961fad1ab2b58ac0ba66fd27f9f6304eb02e95b0a41d9b84a83aa4f81333e06a8a3a298400c7055f51e0c183054608c9f01a61e0648aa28ff6a1860a99a503c289d1653e02f013fe8f40ea25e06483f05961e06e84f027da41ec69b40d2c7005b6a084a580cd44e0adc8850144f8c10a5731aaafd261c3aaea8622fc5eae84781bfa4c5fe13f841cfe45136bea72167a57cffe909aa06157356d8432df6cb4e4d6aff8ad0afcc569af44bc9c70f5a4d8ff29e889248a52ffda9c949a849a4f049294fbaf124120944ed80281e1045c4eae837811be1abc599c7417b9ed152e138f38ad93a6e8f0d55f26b46869fbc021d37a65fe41129654aa69cf55a157f8e93eb0e445d9f2646aa0c47ca6489acd4241878ab01ba4af08048955157091ec42a4909ea3f7217237d807a91f93b9a61863a680fc403f3b55035c3a6fd162291bf302df44987d06fbaf266283e456c40174e9cf8a1063f346042c3460438435801040e0c805c8ad91354eafacc802aa9aecf8c4706def6145c2491049e24943033ad60b6c312ba8dd06e5e02c76eaeb8e2fb542af56356f9f485a0d25335b6c5471a34b6c585288dca30ee5b987e2027959f5bf9c5e06dca38fdd90594584545816efc2b3d1c37a86317fc452f59dcc4aac8f7bc172f64a290875c457a1164ac434e1be07041fb9d488b72db388ee3388ee3b6cd715a947fd3a2f41bbf699684c95549e937556702b13fca82aab82f7dea55fe3d3dde8e86e8fe72def64b932121b57da6e0a9fd23b575718558f5e16d4ac908baefc9187afeef1ea9e2a171aec2d455783fd3b6d8a1ea85fdf159423503b73df70b53cdd001d1befb858dba411c3c5429e045ed7f51fb71c0c0fef82cf1a23ab83f3eb1da600e2fea7e07aa66f85e7b2d04d2fdf70be340d50c1a90edb55fd88e68f07e0b553c36d16f5a4843d7bd16aa7868cfbdf685ad43c307aaa56478b5085c18072e8ceed0532a828eddd333a9d9d46e177809b5df73df81e7b84a0f6dcb7cc2aab416db41ed39059983a45a0a82f6b7e7f07813685beafc574f99b3e6f7cf20768185584714cbe22cbad52a478e1b3754aa3a4ed994f10cb505f51f274faa9f6484aafa9bc1fcfd2d67310ecf54cbe22a56a5df7b51479ea51c36c38e7112b6a59f6756a0a3c603cf724e5c68da163f4610f9e9f140675399a5eceebaaeebbaaeeb6e4d70d5430b6d8f8c21fafafea34f03f3c2d2d3c0b82b90ab38737b0465598d32a4a01fa8e2f1fde847a10ea3ff9e06e6812a1ede939e14ea407aef6960af7e39000e742a7f4c734e4d8b5b3d30f581340594048aaec23f02df0774fcfe0f5c98072e0c848154550e04219250770403e90038d0a9ad45b393ca42d407fa332e83b3688660820844100284222c98028c9f06676560052cb0a2053c18210207c6ff7296c75685bb0b1cd0b1bba8fc2520e8ca59af9eca0ececcb4c8ed5576dd6b8607da1f33d3d25b73f7664998db742df29e4ac313d2719c7bbbb77b778f53e5defb978f5cf542b669510a20a420226322c464f61c9126d55522094ee5c2d44d1db9c6664865027522cda2232da88f1fb4ba916de1f719ac0e9e31a3ebc32487f9b746b1c4a9b6144dd6678a20eb23c54eddf5fa63fe3eafdecdb205e560e8b872feaf8661b7a57b0f775b3812d02e1cc3b11bdccade77c836222ffc52ce280bfafdd703fd5aca01fd3a724d29894787505af747081fbabbbb026d533d2043952b551f2d81b690b3469d26aa69878d4251aa765d38f6508fb691ff8131e08f1dca005d1f2434a99e53f95fb8b20f1298547e16e2390d82a23ade5019e08563f702376a618fb6a933871677fcea9294a0234d0d4d65196141d77b681402c8c109b211c13b93f5792228a88e520ce289a2268a20503881020b2985c47c8284380934a9eb03c5923a725d1f2880a4b33bfb40c1e303c511090591da41413f75e4ea061dd1300b450ff5d4a20f1429a8a7dd108a9c2788e4f84021840b9f279c3461e2f3c4123e4f20e11334e4f384113e4ff0743f8c9cc869d92322cc396728474460665ea23371d0237d1399035da43147a921e69ce01c5980ebbfe436f0241a51ea49906bc7b3deb27add572bca10d5e978449d24c9707abf307766c7d3f1744a9ad529e9786840258f9c5deaa9c2a889130e464da0d8e0c483ee87228ac0f17a60e4cf1e1950501440ceea665d50bf74435d14fbd26dd101d5de6036d9cd9cd53d7195a17ef16a5adc625fbc12acd8b3ea15e140cf064f6afac5c369b104fbe2fdb0627f73dd793b9e0e6abfa7d305f06c9c05c3da6013b043f070bc1c67b5561e8eb3562b0fa75f562bcf9ba2510c73becf9f3d2fb050e56c5bfa8bd0b311d9ba4f7edf6dff795fe77d3c6ca946d45e0c445e6c8abc185733637372b139b9d89cdcf73df3b0ac4f041f11db16b2a8868379618f8a6c6f2b226235b539168b80172b79ceb528890e676adb97a2da943a73977da03c656b9aa66973c642d9c98072ac7dbc3a521a1c0f14810721902208405c8104592091c50e5008524412403c7082e742e86e10d4d6e113140200d4f571628a5aaaebe3846ceac0936169903f7f06fe0d81ecf3cf1008121efb1caa1cc82f4cfec29caa807e1d57272ae8b8aa8c84b7292995ab6c1ad83e3da568bc8b0bc395e3fef765a4a97324b3a57cb236c8cffd8b7a62b1181030d1ffbef06fdb26b3a554199102b8f0d5a2f61cae8c8f1da41d68bf3fe1ddb5e8e19c091f2788c051d7c789214e8ce0078e0865ff31c3b0d562c7e8c01554f4e30ad9d41d19e0fafba8dfd02aedfeead2bffa861e39fce8be9f470d3650a05f603c8f644626f9a437bd277724234dff6aad2bbdf8d253d0f30f06f8e277444fa7d3c3b0f514aa508fc3e9e7e9e7a31c1cbf172870c191437981527a2f95688b5b025de0eb0363ba968b76898541051dbfef67a8f2df53651a14734bd8d92b89ba8e25771c72226f1d780be0e882a30d757fb9d5fce7c77547ec84bb0cde6277962cb68a33b3d82c86e5e022ef7eab6876dbd3544f35fa51c812758f609245dd6446ac8c2346b972f796bb74776777c9ccccccccced29927100a088e444acaefcba7b46beebbaf9899d78c6b5704bebb727977bbba7bb9255570f75d5e76dfa1d1e24a491ac97c8bfbee524a293b85060c3476b824a8574aa1d1e2b6f1269d204936a03cc2e10d5ae205123e4638ca13e6eeeeae74b272d3e49c737dee5cb9eb1bc56c1939a0deafd6ca952b77ee8ebb41bbbbdbe2b816d76a7151f9498b4550ef99a0bbbbbbbbbbdb3d319db8bbbb36d9ffbf63c27f4f0fdbda5d25bbbb9b6beebbbebd2deefc9969dbcfd77cd37ab6b3bc7af6745fc1a6b9e69a6b1ab749a96952d3a644fd80ae09c96a25935cec77b3bbbbbbbbbb2b98d5a0c5ceec2e9452eaaf9899d78c8b3637f3c0ae11c4b8cb39865b892e475c5c2e97145caeaaddb8b333bbb3bb3bb36bf58a5901713eddbdd57a81c44c428c67b86a0ddbd2292f578ceb6336664a578cc812333384c5e572b95cb3c74b2f3274716169b9b85cd85d5cbbb45ceee27669358f6eefee515d9f2aaaa8de2798b9cbe5726d4bbbaacbcb15e3625fc5504a698ccbf58af176c5b828d36e0e5d55685577bd5afc626ebdb8b572ad5e312b66e656abd56a798f3b33bfb333bbbb33cfec68cdb42c38e4d12afdfd1ab747069698d78c9c939b79f52b66e635e3af991d475aaf6ee2da2f8745b8df7edf5b90cac03513b3637fd85b3b52a9546a47cc4c8bfd1333b32366c72b46a82910e3fb43a47af8b33fb2e70a66ececce3d7bb656bd7269b5bcbdbbe5926d3c2bf0de65f900e5ef94158b0bcbbbb8b0ac5858562e2c2e2c2e4bac5856a59ff3693284eae14859aed0ebdcdbbddbbbbbddaf982341cddccc52a86d2a52c7560f64236067f69e3db7b57259ad5c5adeab1615947f58ad98206909e84a93614b035fda8f2dedb5a9692d4db66cbde42ce6fba56835317f4872be4e9f6bb1874fb294534e29e5a4c03259a11de27797ae8aa1ce56cba7490df76551476e48abc208f308a84f1329ccc09d1a597666777677676e7eee9e983a381c4dfd28d2b4eaae38aee6e3281784da40b98fe33eca51211c67f3d9d0938ddb306b4fa27a707bc696fceede0d974d31086148af561d132412cf5b75c6a7bf628e043133777b777b6b2fe09e917b58cb2acc621d9ed59b379487105a98567526a23a1b519d93a8ce715cef0c553184eb3992f95c40e5f30e19c6ad3de2de47323eb6e7de1b42b6b2f549c212eef141ed625404a18e0c44854e752b865416aafe5e3765faa7fa8e0de421c3e71f488550f9fc36f08e641de691ac236b68d19f795c736d9987775847e3d1691653c047ea2f87ac90649d55f1e738671dadc753426ff76eefee7637efeedec054d7a70a24bd72b55e2d96d7abc52dd74b7aebb5ad2017efefee6eaba51969b58868c5bc665c6628a574e6c5af9899d78c8b0a4af947caeb634590bafc37dbdb626fb86af5aa37a525596e8b99572e2db9beabd6ae98b9b9bbbb999b999b719a97655d49e8bed8a20c99254b960eba1a6cb5c8fb2e2d6e5787ab16f95d825c2de67559157e8e5d7c9a34a91d8ed44532d1e6e4284da57e149ffb1d7ac2c550e26f7a6b6a51e0edd1222a09ce22bdff0d3d72f8d12fa2776e7fc11a5ac57f170602dbe280d5f102a9ca900620df931e88f7a397a3f71ec8e8bd973f7232aaee797c4f7a1e9eaa0b19f03d6906ef47614afb31d52307f0c707d6794307c95043d3604307f50e1b4451146da0a186201a6ab081061b7838054467d11024b6182476b8411c179aac3ac751eaed6a3ca333a9fe9eac455fa2e10881f6b3570d675bfc7bb89c17bd8fce53473b54ab3ee448c6df6f8aa0dbaf729ce539ee397e6461902ccb8df02472307ace0ba43a43efd916ff931005820488f7dc03e946ef395d418120e121faee818854f37978cf3d0fd50c19e03df73378a10e4878702a337440e8a00638feafb671040e6c6148680c816ee1e8f29811dacf47fca7c56eef71a07eed47eff11ca0ff7f07f21efff17eef01726d3a9077e83a2d7a7b4f4fbffc68407d04a87a7777b3f7f8f7fb77757daa78a2b67b4f6bb3bd1d3093eae702eacf38ed2cce4fdfbed01767c978532a1cf7496d543872908a12ca00778886db62a9ffe52afda470a4cfb538a196ab08a17e339d873011c67131ce2bc6dddd873802091d601deec7f3b66dcdd10ba4dadaa12fead8fab691cc379219029dcf2cdda41d7a5a1852157d4b917bccd67a019dcfabc961ebd5629617c7bd5cadd68bb9f56297a0578cbbbb7bab35722feafa548144ab2502c1f26f0bffab4d33da2efe73fe86ab09b67eee8b336c8ef3065b2bd0a5c5f6fdb96a16c3fa5b1b8e2fafd02b1be2abf669c253bda7119eb328a9948e4a02952d5904e5ddf3e6b2ea8a282555ffd20dcd000d0bb355df9f916d6abee43f7a52f72967a94ca650f500943f3d8f178f7ad3a3421d9098421e287f0a75400953aee2ff22a48199c291e36838c329aee68fac40c7ed298523c7aabbf87961271285af93105d180e24b12e70605a38daa15c4759b7499d6111944f39ebe55cc83087ed94818280caf7389fc8a8246d583539cad4cc0000000000d315000020100a864362c16012c7912ab80714000e7a8a46664a174aa49124c7911087410619638021c60060882108d1d054070fa807f8f0ecf58a1807e84cd190863cf5c312eb264fe4467ea89f232bc0d25a0fbc85e11cc0f8dba6e690ad4e78cb560fa3b6350083ca7d7a8a3041d7664899ab1646d82cf3d89242ee0cc50803efed0759321ec8a2657a2b4ad0f0301a7681fba8fc0ba697cb7d22139da32cf50cec5ca6e9125030756032773306e2c420382e08cc3b5fc813444fdb39e7282392083d8eea2c3e21ca1196a75a19f4ddd4bed2425d76acf6c84e4c832070b909c2912d234d55c49040dfc1ef659b13d345bf7c8608694a79d4331f35a78c36c71753df1b3743a289e66a75833578246b4c486b6c3ab50303a38c0268ed37f98c755e7af4642fb48146288458782480a29eabdbafe4f24698a5c0266947b0b12e5f349bf60b7d8c30a5a39f8d57eddfcfa0ac3e618576812e0c82c0b9e4dd3a178682d131584a1ec95ae660982439ac322b649dea858ee99006a0e46b51aef9bf47b57c67dd1530b3c57f9e64c1ca2519028d5f93d8ef3569aeedeef916efee5b8a9ec2b562ee1e7d70b02047ba0641d980b69eca41a4168203ef57fedff7bd3361a3443e7f038a4c0423767a73d924c4335d5d7a286937c0e43a443e30cd9b992e5e28d6c410e9bf0c47a23708d4dcc8fea8273d3132c74e760acb92d72650b0909801a25dc87e84b582642719ab50b300b014112c092d79c4fb451a4efce4afdce0d3d965fecf7f0a0df3fed94a80f6cefecbb6cc8a095a456356725036771f0d9aca6d2d8d244182452460cd0a968516fc780401e1d3aaf24390bd2ca83e9db31952a19e71e6d9f59d9dded5270481218189375ed6c08834f697698b1f723f3bb58d32078e872d8a30a2d12a45e909435e001f8b480ec65c78968d7c74bf826ed0cd45159353364dcaedbb0ce15175a6762b93c603f7d509c045a14e3d5c7bc8e417079de10324e9821c77672aa401f197616b99b8e8c00ed52b0d33769b64e598cc1a1f8c5d06af288b0a07e9d5bb9e7eabb13b7719893cb4d9b2ec7f633840b3ebc1c0e14a38f44ce24af408a22c0450685c31401ecb95989178b2f2b5c087f35aff0481a0488e3986484c70fbd8a746d73370ac3a58e75bc862a54159c1d726579f6b1c6ba4897459986c76c9dd1262654b19da7ec394e5e5487cd4a2fd8a5fd879d4251d859e0ba9629ac5b892b25798a1891c13e7285f5b36259061310516ea1e86380c555438fe7c5a32ae09103a390ea142914b638700213c9c478d14b587e27e74edf6a9b11005aa9d922b56e8be8ce59e533bda2a49792d7a8c2c4516d67b1cd893120cd1b0ef48316f7b695abd817c91f81a1dbe3bf795dccdeb66f1327dc5f78bcd0ab6c60a8856c4d3e124b096fd4298c3a10908c016e9a8d54a8cee6d27190e22ee515d261598629caf906a8bb980d4e4198b4496e1a59f1467e38214884d58075aee93d56739bee7e4fc3df75dbbaed965722accb0bc17e0c32b321ff509d007941c51307396a449bd953f16eb4f38a76c17c022faf2b7ad09d9b4712c241585128d6bfccdcdb521feddccb6b310d2ad73e585c2ef903541818fb701464d7d2a5e69b3513a41cd35db872a9d31cc97dd39486b6c8ec9574285d865b93254c44b266ac04b0ad3870c8a9d6bc4a17c2882e5f03be1b1211009a8f5c6ca1e0ce97869ddf07f6230f7e46ace407fcfb0fa73c262cf8b81e72a4078473ed8e4d3f164b087da30dc01be56b7d04d1539f7cd523d2570220e0f36bbd60ef40c9216385a54e35e72c04ca8ea5440f77a6547ec622ec0085332c2eab7bc587605ef40755b2d5917666a51f38186a288d8f6b42d7304d6ee981bdb1e30813d49a0c98d46f93e7b0b4848091b8802ad45c0e1712cebead7ce30beaacc5176255feba5cdbf0c8e5228afdb2354be3273f79b4c15c8802b01c73cd67bf3edd014604aee64b6a5e4d21629417217d39ed3908a00b3a28d3dacb246459cf9657834991682b5846a135aff0accbf021cb53e8f4e0dbec294a87f8c46612dcf74eca5fc5aa2ad0b2686587b331ae18a38d8ef617808ca911208ea0e7875341a4643a6ae58949d53b416c4090791f35578c3f46611ee804bd2ed11cc55eb9ca6173d10e9a2d5ed0214c830bb4e0480174627c9bf373e2c03d5923147d19260046d38f821a112a5658f29139051fdfe7e7ee1b71eff4ad8e284eba833fabb163c624ac3f85877419d238e8edeb90b366e1c4c57e0902ec541b8839d58cfa832669b81695309d30e3b8153c84003090ec227e4a7aa8a612fa514c5931b62162bb304d13a2391fde116e2dde5014be43c96d9bd6909b7d44470397238f799ef0d7cc5cdfecf8d0d34b4590f74883f3e80fd22bc138080250383773cff93fcd600c37332c1e5ffe2896c311b25bb7cf6b4eb9c5628a08cf193384ba114fa0817cb6e978031f93355cad0c197a4ae1d152369d3e820533312fd41f5388aab8df8446bb1148fed20ca1b270fabebdd9726f067f53781faaf2feb51beba42a9908f92a1cf141249fd97cf09f455e659f57317a3c5184a0ca7456c01869a5f28c24a743f734b4510ea063df1db4c57a8ddbcbf79dbdb743943395ae299f82b9b3de2317579e70b615549be606984ae524151cb47b578664c648cb58393fdd28aa1c15b05a1d21ca583040b3beaebecb15cae3ba70f269c7041c770ead83932dc143eb6b96a69b12283d2f0bcc6393eadf85c2d333778864a4be417968c21b361f3567ea4bb1c5f5d57b4b30e69dfaabefb74d733bf8517247de70574e6245b61f595c224eb2c3d52a5f82498326141aa6459f0237f212af2a3c589300e34b4f0f05717099cdc083d691a2e6f3f9cd3fc01f41a05d45fe7836c71ee1274241bee87bf04b996412c331e703a881a7996a64b6bfc97244744b414db5c440e909dcbf329b39b1f438969aab411f9f86174fcf95a603bd966b320f72c2c0ccedd82846d1eda0134c9c0b6c5d477a9763101705cc369d0f84e89c4fb4a273ed4654766ddcc8ccaeab44cda990516771c149c24ad97ff2c23d42cf4cbc38e157507fcf2282c4913d3d145e5f3d8940ca6c79acc0e4104b1ddcf3980c7cd7721c5e9e711734ab860a73815895e3c720b2a2d97611023e4b1dd694e118b69cc7cafc3c29164cd51ab291472018d8a22dba21e76fa7f3bf02bb9a4c3fade41ff29062b430ab12e448840258babd180bf42c4ad5084f899b55373b4c7ad1c8833d9ebf2fba4806b50c1b1563f334c272a6d499bfb7568f27be0ce5b2115bdf839b1b08d59b74493877d37a56040e25465fe4a463b1382d69e3fc7b3efe773f751980f41742ee684f50c9c0f7441ff14db73ba98e76f3993d9c24a6e13ef5b889c2cac9c6915018d9f8f52f4454b09a2a10a19a65bc6c30b83005738e7069116706d856d346f31682f82c16499e417b6ee0056ea81f684407006150a6dd62b3d3cab35e0ee0cda489d0b0106d8e6faeaca068c2e46de54f8f535479c57e2b502b58cb4e771124e62a1916038d2a78a9c2373fc1224166ad0ae88c136b965ec89225e770983a4c4c23e99f346c04e3a1d410b71b88111203808dcb942ac477501932e38f55af2b537d62848dbd2c609a1e52eedcfd2b484eb6319fb284cc7af6ca0ae169fab87eec6645b4deede421451f1b1d4db03039bc872c5879125a5aaa66e714a7c21e8841834ab06a15940931cee391c71f8f8a3a7508979d0b360c123882b2a9b7c0c035752f652928bb1cfb877b0c44785a9fd082e8eaf454eb3b5981e92d784e0493eed5fa511909499ea4c8b6762cfcad26c88cc8d32d7369c969e8112bed3934a91c69bf124dae685871b588d1c727d7b6cd0c0408ee8f0695ee1d196d1b7d4df492750c1ff78f56f6fd1da532bb4b5bf11d74d2a1aa7b86e1dd52b82ce9e47d127be70317a71b701ebdbab728a3f643e76660ca8d9e27b68e8b67bad22b6beaa08d87ec0fe5aaf73ba8ef373124978108c662bbc596c30e0648e47ce44b3d0875463d6bb38d7c87b6940c9fc0f4e56a5d0a7b2ca99141fce589d55f18ca6ef35234142f591cd8ef58141c6883baab33453436b1e63eaf4883009a81190d55005c622eea8c0230c698568225d4ba07c0df790b1478f6df9040ff6d7d0b54b695bb47efe525d3a5c9888571f9a3cf342db6b8af0cc301f28623e537217353ef6f6df60a284038d1a063e5760df75c93991a29fb11246a232275b635a534b10f54b152fa9109a7f9c8f1e13d75365db9b341527eb8f0cfab3657aa7f4681d81d35c1669d79cbf3062bb01f65ef1227231c9c4d12ef432286f00597ef5066ed75cbe6d734f00d3fa9b02246fa362e8cb638f7ef66aa75c709655b41e42f28eae27c32e731914ca550a15746b21b1a1cdba1a96e9a8eb260a8717b752b737293feea8bacf6f8c044dcb8b871584a78b9974e1c8a263bbba991ff7ffde37d3cfc5b772dc1ba25b2063397b6c681e1abf390e375d46dad085400f0c38ab7d2f24527ef01cb67d24d8edfa525398a70b0a6eb91d3fe198bbe03a0c8140e8bd1982d41c1ffa4443a12b43d1898f41613123a110ee69cf02f8e350406c891cbcb8d230512275a3e36107b204c4cf8cc4bef0b5cfd5f2c2f25bc3fb6f1830f185383e1d99049f6576b2903704f982b3a242ab58303b01cb0c37e0508aa5b88d984e21ac306c68f5ce0c0499fb7094f4cabcd29360697bf9dfb3540097a8cc5691a50b9affb2bf2ed9a1178312019b164f7ebe449b1e3bd2ff1fd5011c0b72c4d95f5ff99fe6460d4b5d5ff264aec1f5df1aca52218a0d23d3d53f4268d3a2193117eb0b48a0d34a3fffba9ac8bf908544584745df90def9bf6531615d543346bab484d5e20c6b6b46d64f9eeaa711c0f8b25596074cccb1698cf6844cb0936a25b331f1b00a0f3719bf7bd6e6a2295f0406d0060ab55f34ad951a04faa0b0ef2569c0c654d5057d8ebcdcb15bd1fcf6a507f0287863d0adc7b0972e6e8965c57dc24c7115af937c9a0a15971193b31bacbaa9249e3737d4b8cfa5d73addc30bbcfdfee679bfcc1a04000b64e7918de9f74220e03b46c001d6c46a6a5adb3759fa4556f8c4f6db220b638da82f5877fc2d42acdf675406bdc4f68c1c71583584048a117d991930d34bd5ecda14e44df60dfea99ed0b07633394daa0b6bbe8299690c7d503e0642d469ec809c4e0c0a460c349dac90fc5086acb3e43d4f1d2bf35727b11e17e7fd62594121e908f4cba66452377fd9f14ffe7e66b24c211e77cd47b538cc4060537cc861de1a9d64cb21db9bb7906d86ad045af6c93c3a0412f482948d637dcdb5281f79581a1d07de44385fdc5bda30a97e328e6644cc928be73f1f2774ca64d6fcbc3f10c10ee9ed5dc37ae71c68bdff3aadbd3d0c30dfc5b43c8373f85a70fbdb0b68e6a333f871a1228e373417b3c0bae6b30f9344687094eb79aec02e26dbddc12bfeddf3271c16650289c812350c88fdd30d4a28d6f829563fb02ff4ec8457c4444551331c5fd06e41610e3114a05bdce75ec1c89841ee05fda0dd9a223e19f7211f75015407fd1c75d6619c56b1e0401d57575f119254991d9b07ebe7c1e64544d526f6d8313bf2a2f70c7e6fb7639d4356bd280d8fd62748cb76dd07b6c61a4afaa19d3c41e67d3f265b14d942b5564c6b8b0ef14639a696590d2aff3893360193a9b530c499b73a65522b8dfb272f9f6c353cd0db3fd41035de3dc1964cae5a1102d3aa26ca038fefd075e64cd25d7ed2bc3bd69929c9ea79d6567cd8369e7fb0e773e71f4b0f4a3e1f76f1417c8f6b800031a0005a58bc72c87dc0b0461e049e256d99b5a88398a8a32297a317c610d5272399741f626499ce8e738e17b66c7893eff6c797b5c29bfdc65f0409f5536a42320e0e7c40551d3f184bd1676c005ac577a20e20c7714b49254d43c50eb8add063630bb7a43b0443764e3f24e1ba69239b9ed2db6bfaf70430c8bca6cde3b17224f18c67c099036f2d46ec93aba3401d35307dd0deea39f40953c117559be5b07bd1ddfe125df5849cca521bf32a8e874a50fbf796fab8629adbb61017c7fc226cf17066af8dc022130f55cd364edababcda80467e2c6826f2d75fa05ba849b21d069f0349f8638b5b4f34a7dc4cbe36379ddc8d79001c34908a39eecda1cc2f4cdf74c75be88db6baa98395e9560141d47328086f41bed9004131cc2605136e29eaeff6f92e7fa607dd2fd72c9a426e006c43aa60b8e2afba09850e78d18866280e98b0ff5c14d93c4d6af5ab7e59590242fdf46245b523f9f3acf41f13829edead7ffd16488a00c8aa5744a8e74516099fc5764bce6b045979e02a838ba60314d6c6d04885e040bfbee24fd9c35daa5a9836d07c15e634411f165a2f55bd7f48f24d9cc3f5408a3a069670609fae62d4b793bcd1edac1ccbe93112d0bc580ad14531b9856ea2300b0011ac4c5c1da5ab3e644aa751a44009dd66e33ba442e378f9c1834ad3ca8bef7f424710aa5ff96941386919bf478b7d124f02dd740cd4bd0a54517a9c28a0fd2cad398b8835cb1b0ac52c65d208fa623b83b0267640a7e2d87194e209a655174109bc008c3396655dd4db8e0bc172b8721cd1ca9f3053b71b1b6c228f43f6fb1c1bfb6c148062007edf5a0e5ede31bdaaa445d5a0af4b6f9d505794a5c7565ab15911271ed008fa6209e5d687e782a64c96b9c9591d455654a1852fd6f0263a1ee28bd038aaaa0491f3cdf4ed9f9a8bfc2db701c25212e1bccef247ad6e744e2e700c4103a316451a4341270a6b8e607e279f798b617950cd950e0bb05995a4f95bfe681fc604279860c898dc4188aa625e5ecbf92703ec32679aa2db2b74454c26c55d711c03b03469940c8d0870b6795128604fb7ee6892d44bced1248a1891c3fbc6575b81c50f19e2490de96e0b8132ce7e3184fcb45d9740ac2f8f280b64c99479317ff9c23ed6a7d95c0028fb7e8c80e54b3ca07d12c9fa574c7c0e04d9ec3c6959e3f8bad231efc6da7ea18d74742c05bdc0b6d456ac704eff0fbe635e9d4131339c1b35b7140887c54e4645728e98e913a144ff68a40a5b480847eee0f2909b56e9f923a2d288a7c95eb32fe20794d2bec92d41ed43a23d3e9374d07d785adf550e09fbaf38d34fdc8c7a47fa84016e508a87cf7dfec137ac686cff398de0972d3dec2c07e83cb4d0464e08ba71a28b2438242d489b37af808cbfa8aecd46d3d155e05a9970a87130008191123266be65d994a6de918aafe578c092e47aab180cbb4c702091e51a7f7c4764d377e8516327be90bcd37717df9fa8d2b31f4bc40266fc4cc645dd99c40ad59ae4e62c638a235f605048eab6e20ebb52bcf3695d825eac676354496eb61b8c0540db1973b02435b29a39b5dfbb8e70cba954671ff042a6b6114f68bc41258f0fb892087e19663ba757ee0dd80a9c4ad31a20571271e9ee07f16e0d6a1bc0ec8260ceb2c0a1c7b6852fc529cfb0eb46d0087baf07e5021cd1f0984c2dbffcf89e7895aeb7e5ba70c241e3209a1a42dbb70ae373fb08d058f69374f77731c971191365d2a641639f0b4759aa4ae305d5a4b7cf89800c284caf9a773be3301ac5830ff307d49dbdda7818358e91ae71b18eb5308313e42d833897b3f126e6d152775627bfd9026903ee94e543b6fdc6236efcda48a18f2b830d49895c405d8a68925b38e59b6ed79ecb2bb219a46ee830fa1b6da1f985d7f4d2508c8b47f464609a8905ba772711b51cd34ecc3ee36aeafe2350b5482175095c11a39000555cd30a213d72806e772866bd11fd7dfec5002ad5f75355a12e2a5c38ae7e9863face57ebe89228ebd93b6321e1a9a067424012cc6b0b44093eb6d628130f9e5197e5709d92582b03dec223ead2f6c4e7fc0549c7fa2cb60dc48dc29e0aa49734226b495f86f3028aabb41798a4b5cb3a55b896d00192b13598630b809a01b67a179fe86a58d45c9c45016c547fce51547fbb863bb1141b16c5fb125d5032e68ae79db91da65fc3502dc92e48d97177ca5c7ce35fe41f65e828f6aaf390ac5ffffdd0c7afee51b8940ca7f16e5b0b6de6f648c8da6df08f09de0cc941e386a7b130a242d373b2acbbe94c365dbf5137f5335473ae99ecc53c4a0c64076eec50b123e6de7780613980335f35ea0cacb4659467edc5719b661d6ead24875b9d4c4de95463b095dadc29b814f0b1f47ffe6c8edb377d51e1b112753444a6d7bf278736d362cad9daea3ce78e7b53b699b4d2457f6eb3cff218e43f66e1fd652679866d4ade9a41ea0c076d4e50c07a9abf4daddd17ca257d5a0c257f60582abd765a90ac15cd4fd5a729407d88cf9477cd0612c421de80b69a51209b4c8ee604e5aa98f73280ed399669a8dd4abf927540ee322f28be00ea6b3f9f985e09a925f98cea95d15bcd99976ab9b5d83108d8ae6328367fab5ef5781c8f679cca0190fcbdf0070261255488ba9caab5b51d6b87a87d3edfa087c0c2f0e4ca5d2bb7ef245a0dce9ca204f2df21e6ad518843b64bd462930903a9318a95281d918756c6a08adbd28f95fa81c75d0b1eacb88e25d9f34d7becc48d915aa3a81f247da596428afca6e7b14e69b527d938e83faa25fac7ec77c600c3e068cfc299173452643b65d519211f04985b8dbd2256d04a6bacd60bc74bebae46dc67d0b389684ef1ce64e78dd16625f8bae65605f523679793e6e78b3d304f2003d376a15487c7475114519598fc116f77e6b5848b8263c4cf71a7d7969af4ef89e0ce30c3610b10c3fcba5dccd7aa6ff2818075fc5b9a29cba370fd665abf9db4b12cc9f137da5261f544a8068f3b481b021e04d36721345a6b82565bf3661e102fb306f82be38c780ec7c588c9877f86ba9cc8900520357dd0c134f0980d17b52c2be9efba2c66fdab073147774056ab83da423a15935983fdd2fbed1d8d093ad420fd652c57204470e82b37ca647c253c3db2a0a9210a8409cece256f105ff0af386e90623d317e116107d7a64d1409ea63d2fa961cfcbdb68804a0db9010c393822caadf4784f3a7f319d208303ed0e64f2535b7315f8429720291923eeb880b3823e5d25fd348b92bdcc9fc851b02c51761331231dc52f9baed649adeed51cec65b4d4218fcaa48961ef290de3271972894f73547c28f06482420921a40be060c820401da6088ddc06ede39d176a29df363ed4e609025719e4fb158584f680c207d3f65716c4a1b441a16abbeebdefa82cc886c7c75ddb8dbe257591c02d7243d1f104f5dac16d8b08503f4c052cc5228a630b87fb794f62b0b3dcf2bfe80ace1ee27dd18bb8bb2c683881e48646104db22e4cd6491fe16fcd5041bc5bdbf03a3b044ca80b011aba36542229a51ffe902c0dca5029fe3a471b84e57faa5f0ab7e8f76bbfd1d796f04c7eaa13185840ce1d2c1d8299104dc7027ed0744f413b6333cb2201e65041faad2c59e86e53b7bec5486eac6ce7310774158caf8204bc0697bb7456b163e9d7d70293cdae9ad73717e33a7a39f83655e1e935ef27fb825e401d4a101a5871b2039f66deb62682535499d705ddf7334fb70685ddce7152b8dc84ac73c3ad7642116c31a315b2e8820065a75ade939f07c4ef8aba4966cebc233527726ca655d32f205dbc674a728fd813b24f80456db6405cd4d640be7ee95b6941a6fd730e791548eb8cccbc5d80f5f68016b2508afeb6d175543fd071ee1f0651795607807742addf7e758e6fbd16244a2d54414306b98d80a9a3bc3b23b253e9b0893443d80ff580b099b8903e622d19f5423430b3806ce98053c5d76891eaeaa180bd8ca06aa9c0a5ec35a3a9ba62556b0119648cb5b06cc6fd017d5915affc8e111706cdbf355246d542ab684dc594076d5ac4184ecc3a5400bd2c36cafef5d7400ca7a523015d0aa1c1e96e3f59159a932ff62ec79db4070335d72b2d1315d0223c93684219d8f62edf01195bf95b7a0764320ca29f4f52fcd6329d3b315d2e854a6572f6f55183af7b019e6d8c8195f059ff05c70604f1f48fd87aefd72a80064949db6f29e5f7a0a81a36c429f93f9d03e9c36d09d114a571a41d3a20390f1cf952b16b4aafd9b04daf19179c98545eb94ad5f1ec59d5aa50714944965690ea46fe426d847b2ce02915de90c6b4e9b560ad3f7f21602518f9b4a8ef807782f0b5c4d821d904df8cd8f473595e25bc204a9facc761bac756155b9b020b33a90969742016f099d0680743e29d3853fbf5c28ff5b60aa131029be2a2f6458cc03c03f0fe0fcc2b77a9fd982f2737c9970c216b286e573408c131328f11d8bb7d094d967c91bd847cef1290719fb0f3908eeb17303432ab8d0c49413fc4bf77831abbc9831cddea743ddedc294d82a4bbc30564f92b8ff280e65b01c4df5455d556c2327285205305453c1635b7197162653070045853fee2e43798b7a598f3df4bd2c3171c58517312fe930950882a36776c13cc29c60ca99c653ed98c1d245d99ae6203349219a5b2051bfdbaf82c81f03b04083a0845437311cd818e9d4cdd9f365599d6d000d110efd9ef67b2b3cb6c8f6b014860bbd1677b2462ae876a55c6871a05238c88095bf84c61cdba3baced9cf25291f8c58a2d23dcb91e160aa15d3e4f66a1a8a79c46187ca3cfffb21bc2d860baa7caef20087deb34a709d13155fdfbce2c19f72b22f8ab5c033328412d8a89944a04f3908464700974e83018609f9635c1f8335ed43de0e677920a47c7d277d505e2e6a54d341741e3ff6d876a2dea044be1ef0c894b4b718cb77692421c28e4c789945b4a860270c220e5f76c2e219cc6c4ff91655f82f45b08a5960f02586a561c2283d8af88648c6badd7032e1e1f002e5ec2e2da53d27222d134038e7934f8ccea836aca9692d3019e74569eebd375c1ce59d3adaa6aebe2fcf37dd2d25c0f8f00d31a244030228f528545d4c363f8083a4f8071528fdaa28c2c511be22f56563ba0e979d3df6c96e0362c9e2824eaa74e0f34baa6a13d829866f54d2a738c0c4891d3d7e226155d283d2c253240bae8a4dac0b0e9c80df59acfe4b88106c2d8c4a07bb29209048f41dee52f7364c11cb7008215bdb11834e75dfc048c43a8fc2c9e7b2f52f84f38558f9800564edcc014ae9fbf8ffd97bbd5dcde9f74ad028858099902e0151f6426235065e44c7b4c59df4d581d46241addcb771d8916c1950904e61f547cced7edf0f887c5363fe38e560d044e17a5d7edd9b18a64e1e0cf193bd2d785cf6e66fc2c02f87ca3163db340de87e0e73933541fb098ad2bf2534a5cfe71d70a4de4db8cd74d021bb19182ac1da625be602334bf2db17fa0c2af2375cca238b5fa7985debb911ddf81269cd831b6cd3ac6aee5db7c434456881925622f69b25f748684a11bb0c6a6151b4901e9a85d89de7cc85099e2d74dec66d72384d10255ad9fad2e5040026d66017c38d8795d8cdc63fcc740f6aeaa058397a2fea7e6f90228942ad0a8d52e5b598e414fc6fdf74f34708d7977fd27e303c2d5e808949148294ffafbc49ebddb9454f086d8d90af8b251d7ccd2e5dbbe3f986276e22ef2f61a58998bef78b2bcd4d619c7813ddc4f7dde8feb69f33eb81eed50db7c266709f842988fe346e8f23ccf869ecf5b07d5dc4c1f0b4d4c5cae8b138b4ebb11207807acc4f664319d6ebdc742068a7bc989c9777025919d6c6f0555919b19ccc461bb4194bfcf761cbce0157995aa8cc9ebed92bd561d1f5acd15cc015ad2543a963e98394f027dddf5ff09b064fec2cdb48db9ad517a87d9bb550954d31b358e4c62572c67ae127295fd4c264cb9969b7c1ce80116d1522a0cfded1cf30b54506ac06a7dc926def82be159cc9ef5ddf2ca5466218d01bdd50ca3d8c2f276352ff1d465f8076d10b4b91970082bd8c65766e919084384668b5d3a92ca25f40a1ed02d6c28fc8104069cb9a075ff81aab2a8313ccb8ad3d49df5fcf7a270d592fd0153099daeac0372b63b8d817c28ec84d63344349b357d0cbd14ed05fd4ad3cfd82555821fb315c3903f0360e035baa6e3ad8cbe985b7876541a14292ed3e631c24b63c0832ae94567fffe80f497d9e0d70c1068811b267900daf5313affea03f222290702624f28a718df41dd5e1d2136125bf1d5d254ce831856c445c10bb07bd5eb12af8b6fa1a9fb20f6e5a08fab5a7916ca1bc6228c0df7b4ebe1ffa46e984cecffb0634bf8e4ebca6b870e63b5118186512786f7a0306f73eb4c6802b2c8585a9950bcc00967514e3c6b9c2da125d6143d715b6fa8dab25abbbc2c4ca036d2945bcc2ca8d0ce5e5dea1f10ac36f43fdb80221a11abcf4145f38c60e5ae92e2065a0ad754047ae78b935eda34dc4af1881243ab02c2c96b8a665bff0f28418ea5eacaf8d503b0c9e3dd8a1bf0a4e6d7679a4eaa63acd88e537f6d3d9dfb385802d65d8dea33f2f8bdff2522decae6ef6592531fb2aefbaa5d6288c732cc0b17449073013e8210ef72b711fa6cbd8f91918dbb3fd57214bb1dd7f0615469857aaf88e6654d605a11bb5e002260d8958e691913db50d6323940173d1b4dd27b28c5d1fb7fb0dab62a50f5091c1344ec6b21c2c18735aa60f83e65071f21ccf52ba00b97b5ca6e9c3e88b3d10c107e635ab7958c2e10b4d142dda28b99ff2740cecc338efb2b14136efed60975e85547671cc3e3c209ae797b4f972985dea0caa1c06e14479d499009316c6684d2c2a85a8c620956df5e69a24be76cd2098eab8e34ba05026c5052d737175f557c4d2ff67efee500aa9ed4abf8fc77ae54fbf81147765e09be89d1d93eba38461438c118ffc5d59c2202202b0ca5e7d40b62c61f4ad875b40215af8625465c7d03ac2f66d9fdb042f382fdb91c61522702872603d18a635f4e560dcf791887007b93630455ecd2a494ecef32bd686d543bdba132ee20ea778354fc149a7dbfb7dda561483f3328ad6e4d273f265ad1cc269763bf7e94bb2e91147ee783522ec32027d5202d8600f20ac00b8b9d37c51fb1c9fd5d9b36f74a7136756804e32491c65afead060470d2f840e1159689a94b264da1dad41ad92961a6ebb41198d2db7e8e47e6dd8af3a4c25b40443dad648a02b1e379ba543e5a9c05fa9de06922af31822c536438ab6c9789f60ac325dcc6afa761a36c4b59be814dc28eb45ee1027d20701c12a94e45c8f89633b8da5e0e2aaba2ae51ae60533c6f65fdd60bc8bb241d122cf4dfea575e232474a7ac170ae82410e14862d4e5f8a7ebff1499d1bbe6adc6b7244cbb0bb5d000bd51c604da66a2d2fca57eeb8cb19eeb49f989cac4ef64d522e41975232cf54f81a7e28e41d19d23124c9564903d4a12af8b260d20ddd15904b0b0cf20dbd57904151b49a8612839ccc42ca0484eaacba196c896e18f536f41de039d73d06930221da6f4ffcb8521c6b8bd2bac757ea3ae5d73bb1d1551258f43453023af297b6c258f6733411f88d1b329da8f1161a5ccf04767cbdbfe04f0e2f8eec461eb7271c6c6e69521187f1a9ef4e28c62f12870facee184659b42a8b3b801c5c011ec89ddd0b2dd45380f29134a3afc8bda0b4d15cc1d9bd018a7cb2633bdb1f422aede39d16a0c51adfa2f6e8c5ac704e6476efc87791b67a12f4dd60e90f9af9f76721496679f74435f25b0e8606f05cad5d806fd02562fdca0c9e299726f64f67851f7cf5847a268f42c75352ccc85887f826ac3ab612ccc7df2b310f19ae24106c12d1841a760720fbe579a960ed01f7fc0125a7e0a8d2a99fc30092fb3eead7db3e18721c620f4d80b64c733e1351c829c14a9648118d9a91d8451daa4a7e90284b49580c38de6d899031e1bcfb027a9fddffa0db9e8227448ea1d1699170f4cd2e90abba6f2af8e5b8bac9eaef8619da7308b41235613c806e6cd6924b1021f629792cdbecccf6b11f266ea93273067fff72abce8ed999501519ea0294ee89d2ecec143d3af289f9cb1911795084c3bb4fd9362085743d028c99a62c64cb379450294b90334072760f5205ff74a6c427d3ddecb490e2fa120c3bf93c1facc36f25f92f162c6f2c09b68e8277ecec42dd06001c24002716788940b946e7d0a6a0838d254c42719d104c3d975db9ee792ec7ef37e7e91332e19cd76ef55c0b082fbf0eaba1266a8cb95697554be4a4680423bad5a5c6fa7493d1c60140b43dddc9e19317c8f606ba650361e6743d20453cfe61e566174bdb3bb81ec532293bb7b8bf5cbde555fb6e5049fe17720465d4d9e898b3de2e4f3684eff063090fb47371185562dc503d72a265737d0b496dbd9437447ee4dc603228dc286aa46d31423ce485d2d2a801ab4d0b351610726c5a43d29979e37bec53c4a113d296251f3025274510398942b44e34fa194b3a20c757235c52f9429ab52a02570833844a9f543bf5989d5b23f579dadcab0cd2669b824d07477284f2c7144458c2c53053ede6031cac550cb4acd879a38a91dbea5d634a9dac17999ba95e3c327b025c9493c281600a5fad2e2d4e6aaab0c7a29897902a165d923ecb3fcff26efd2ee12e67671c7cf77abb51b008603e80db6c3971a27151b7b72f2849744cc159ac0cb312abed209b390c404cf261ab4dc35dbbd2c0147c1c510c9606d17588a72aef378a38aa8a2b02c3de3f05fa87b5acb4b11548ecb2e61c28643fc75ec4d0ab70b92b38b38b9493b189069daa691299c62c3481600f70d02f09bb4543a8293cc7f801d773a07fecec56c8f1707d16afa10b37f4f7520732e1704d3a7bd6c4cf486b6047da8cc603cbaf23b5efd21e83c023e9668c7f9ece4c6cd70ab6dfd0f3b7e879664a4aa35462fafbe085a9cdd6be80a936b59965006001cf3e930cb8b5a527a772fdecac08c62623e4461804bae95c15e9fda21db98d48be58153ab2c9515f21481e6afeb44e859b2a21c377db39d9fdd3211a54f7ede57f744f9ec62cee3668bf4ce713bea89e77cdf7a99d01d7a1ca4d6c884e038c02dcddd4c3f84e23461585034bede2d3846f7f32c4a86d50e580e228fc2cf818c4ff09003ebb0ffb492529c9da04cd8b18a7afee05c33d565fc11f3103fe25120ceaaceada2cb3ad2d979c6ef172b951ba8cb265b4d77e2b97c6457de205fb6b90b8f7290377609ad92feb2f37c0e729141ef932669f9f647f3210ca4f190a8be395e992a6ee9bfaf86764c54735326df3184acc93fa40c8ef055938f47b391c34ee15415501aa30808c9b543fd10b42fe3f3c343d28085941c305cd6564cd310fc9d4f3535b3495596d86e6d499b18555c266ae1f3967bf231842ead353274e657ea964111099ca9920dd47e5635f328f177d0121fcfbc2f8eb5315520a648643efbfc66b6a7d4ad1ea2b7958ef16fd507d9bab742d26303124a549ccbefb5efed83594112149918c143c27497a49486aa679f986dc8c1e7c523ecbccd0abc0c16916e1be530154a8f75cf1b804e0a4c2783a067f73d2f4ffcacc1d81da60875752b3e6a71d790f5e34b0bd1004f9d350c028711a5979585ceb3aa4cac78d2bb4c9b22f849b5dc93042dc7f640c0b3a85d31277c78ead663fa700f53e82bf08c58e843b503d3c946ca96329e70e2b3e270ce70bc1fcdb5927acd18de267279842546fdc617144793b09a12cf4e3e9fb613cea016e770dfb644417b50700c2588c0fe06fe4f3d17dcc21a47e1ff210131d0062f8c88440e34883aadf541dad3bffaf4971c824ed5b4c8ba3005aaf9a1d8eacfa61ad9ff1a993829a0360ccfd6bd16cc67e15de995859971a740a5767a2a7733b97c63bb83d2b5df4343a6f064043c457bee7868526948e5b0dd7d11e66005e4cccc61ffce159d1918ffeec71c7bfa5208d444e28b5ef09e65ede7861f2a47d36b7de86416da73ca8e270fa4aaf41ced8772616cd7ef9ddcc27eddd8dd0a906b9f124820799ae2c1eb9170112baa0c9db60299645524428ac452a2d294987d037e53148aeb3f543117c458a421272711a86e1937dc508eab30109b3f3a1f87d1f2e7388a08b4d75d203db7b4f2f3bab0310671843f58332c84d88ca53d9ba6749359f5ceccc88be3777e9e7a797cd00cd2b77b13ca49197f1e37d495d634beb5b243fbb69ea97f290538254221374f4cae1bee9a61434eb571f0e45820a0e97914966a5b5a2d69f9d059f354ca536eb57cbd4f59099506728ecd7efd450050d9f3924596d4ae9699e784a4685a1fc5354763867b38d8fedfd304610710345ba0a7dba98d5c86e1da8ab6fe28a5eef63162cab20ac4f87e06aa9162bb835c56ea77d205ca40ec166cf69214506ed99ae2358e79bcd5177a98ad0615d10040b1291eae09e8e0da4eda5be4cb0d44e9753c910ee3d83564b10bac166c5cddc1d0118278971771c0b6f7c1cf5c91ba2f828d2a0dcf882193870293658e3ea6e46076293490d4ecee468967f4403bb23bd1a2275223eeca077e6ba17b58f3bf630ade245c62706f1d1fb8848174a26df3e897fd381441b95fab8c0b5d00ded744cb561f0e5df9007e439bc158d6a94e6165668c0099578892b739d8bd3e71d7b675ae7a2f471871e87d597eaa38e7b9e2bbb38e9e3227aadc78cf5bc98f87401b98bccd658d5e8c50806012200ccb75b11a6363d774d42ff2d4747f32602b477cb8dd1560af7d88100b394e8681692b88183a306365f91337bb288863795020d2e16fc827b874497107009c780dcf51cc2d1d518cdb422d4ae8765e5ebbf03f0e2f8d41291bf76357d846b75286b6a9e2113eedc33128a2468f7a1fe6fa86731d67eb327ea904b82ed00da95410fe21f995b9566d26cf075aa7deffbafe683b05fa4287677f8319e1bdabe0cada8b85276b88fce7a89d242514b20347dfd6bd8ad5ccfd3b9587d2e8753077c1a53f958296727c597f7710807ef7d6c3e51a6d8853623b3b1683be932f6288b802affa040579c9234e39a7eecfec5ea16a64472090d7c4e2170aeaaa2b7d81b47e6710293d1c8f00ba0e81591f5b2052c2844435ed1c51c61c9e96ad9551b19446bf5f77b44684a58123de62ea5325eda5e88bf4caf8c2ed6cf24549799506b3fc105fc5f6e8bf4315643ca7178d687f8cca40da6316ea90f66894735c582e2e8330a9ccd5f353a83e6c28741307c8270cf2cfc280daa08e77d4a65cbfac07268c8c32f63b545d644f1a2a68ea07c2735890e1900fa07a9562b24da119912ca247d4d0c163fdd424746c0f785e3bc5ac7bfc14f9db5200da1e1cebdfe40ef0a258a06774f5a1ddd4e648c9f81e95afbf24faf1a9ac925edc950e078febd42665fd6f3c2071d7d7aa4605612893c140bba1fc3a2a895c9e40bde871756fc7623cf6abd0384782fd39aee32ff0486a7871a763a840d0b95f1fc7f754d953f880c89265b1f4deef3e7dc79c4190de23e21857b47c3c4dc8050ce201b38db22d94b79365dbf1e50c81f95080b0502bf0f81f3bb370388f1f768e014a0410e3f0ec12a9611ac2a847c0d4e103c143b9c32360651b94c93b53ba0d75cabcfb33e82a3c050fd9cd72d4af286a6cf0aaa7214fca109616a9979780a3299f1d18c644da3553013a260b85ba4098d9b880ecf6ecfa979dad8fc24276d1ccf2512f881269042f7ee56ed14662a134a4e2ffb2b6181aa8b94bcaf5886d352a70fd502ebdaec74cc5b7999558999514b2a040427ce296d4488ab857bac1d10e88ec999986d6ca3691656a44abe48177fd2505bde805d1ec5aaf1b0b1b6796fdb9c48941f303ba6f5b585fcb2ba638a0b8db1308f5d6b03d6f590752052898af7fd33726d450a82fbdff60197ca768774b45714a27ad01139a20d7a6f84552dfe552bd0188e247c95935af00d0da22d47ab7575673787dc59e5944822dac0acf7068a5ff34c9371c8896f682c0a06ad78c3b492557219570a3f88859fde51d0f3c16e1ed1f7ac28f36a784b1f24a8b716a19deb3ebac15c5cc68ec53ddf5455bc684bf8f7b4f7e52dda430213ab63bf4f9ae06b54c490bc12308104c23c0377a1e5725af033b60d01327324aa23aa6290774b7520249b07816c05fa154de074faf7b71962d988b39677c386c7c81ddb5cc1e2ce59802218200fd3331afc7bc5277e328abf69e29f8f9b51b17fd95754c94df3d37c0f20ebe67ab7460703edc340001993a8a859c842ca5d8e1875ff48ec9b0838223466a1e75086a4b73b9d7da21dd69a6161c475b593756c7c0809374a08a9867d11a1f487e5f09c14bf6bcab0387a5cdf9935163b80c81bdfa582ff3dfdcc5af1ebdbc2fdc3b5fc1f533ba39fed465ea19e4c4417503c0681e985532bf80cec30b18abef5ba0353c1b6dfb01438027bc2520fe621a059ae1b21950ed5acd77eab0d95e444c806fe1dc2312665264a19ba3ec148299a1e344077002b62d1b210063411336eb4ce00c72a20279bb69d703675d8022d1a49511dd90a46ca8521028f584a8c6308d2feec8817192b465e8e81a7fc8704291cd50cd763613f9b22d3a3865c0fbb9575e960c31b57807fba44850b90614d093e02d802479f2872515fe6c9dffdbd2c89f9d6aaef2ec21c13605247912e2ad80a9f8d8744528f84a4ed399fdf6fb92e2084bff70dd324b3f17a8a2f37fb49ca5b7ac8411d3a4768a56de0146237be52bce1f774dcbfac39e89560033369aedd7b5846bd72bd9ad95620f62b2557a18cac8990aaa6c1e959cccc024256e987f5b452ce5594400e385b3cdd6c4d64b38a6e41c55c7db8f5b1e6432671688a468910436ae4b7449cceef88322bc22a0c61031b875f44e5ca0981bd50d4e49c30078ca20587d3224c03b18c2d44a64f9caf03a99a4a482f121be16ffb16998d0451ae5969906c3f430a08bc7e34c89fbbc5f231a5ba42b85251372721b44d4656df2aa348cecd0ee8456c2e4cb7445f8ed842c5476914b88ba43a6e6241f1fd539b01be9c977f1db69e71f86d3dae650d1e4857ba4c173c730a04cb2874e204a3c82ae8a7c0eb7c0efff7c947c84d912298dbd3fe2712a13a45a9c4b8b7929707c9bf61f45bb8ff3ff0891aa15554003bdf7deb5ef2455cf3ef581fededfe34948f5fd2e440d923797ab2bd91506dde7613aed26bc041e0a2a7e7693446c4fc7c8238fa2869b329819306e155be29975320ae3f0dd41ab386a1859c8a567c12fd2b8f685d01a3dc157d590598a5f910a838673ae57f3ce00312e4dec59ba2dcda40a19600f5f6168855c67ad2cf173b06a09c20df8019671529742f7791c451b0124c87d84f520c1b3aae316fc84964542f55ed49b30f37771043a8ee1e752414615f9dd201644054e300419ef6c1c3de2372df6307f048f7e9148f9324717e5086d49f6bd3483ebb48b110497dfc51537eeac0a822a98f9cd43a36d286d9c6ad88bd4023c7161fdf15260bf7ede492217ce51af97d6dd08db841977ee771fb9cf42288698d93087be1087408422e73963518576199a14b98a14edab5d8c93905361669622adc3c1265b5f71a5be1ed28f675d2624a7b5436df463e381a87092028d7624c81b8c802a61beb1ab66d9c66067d04b877b14f8d105c7958984ff77493994b8188952709a8ffc8b7960822550653b2fddb167144d2de7bccc08a233041495a63fc630e0bcc393067b83de6cf572594e3a97e0102c7ccfe59e72f568e143ae0dc922705504ac70495c24a55668b54bd9b34229ff9b90ed15cbbf0ec42ea7bd9869f18a9e057698d389b3e9d2255ad39cd401ac26e389b1bc0943cca2fe5a9c6f330806e2b01a2de3e8b316b17454a40a64b00cbfed7f49813f5250ed1383fa44e6f053cea0f85287469584269ae80a159365e103b20bbba4cdacad9d720d56c71f256641eedbbc0a5138450cc8ed444013e2c13107ce3940114d7291814061238e5a2dbbda5e4f084decc9435ca8e4c3d9aa3e14be2e137c1707de7eb065eb2923364f0ad61dfee2701ca5c95dcfd710b46f8e8b4f0f49fadc331840efdf7a6f087fcce35d4df6157f6f958d3a101a74d21bddee0ea307380248c36b5ef0d49b7b142d36b801a0c99a779dd24ee1972e7323999800715e40ee6e4ddc9a1bc6d1c43bc8db62142ef0fd49e8beee5c44cac54a14e07134be08e19908475d55f6640d3028a87585d4ae35a5f48530d5d9feffbb3e089d9d47ccd9f7d16bcb2c7d8e556845d6a03d9869b345debace3bfcb35183c820afb6fff1168422c4a5740ad586141f5f83422fa679da521f7ff6ca9f9ff8a55d3b189189d97be68687e148e8ba3d1ff165129c6878d71da6f69c6ef55c2afc6d165aece7ebd339677f574a8a6f4a3f571ebde40a66cdb2a4df73633d13b42c68c0fe186bb688197dabe828102e2e1e22b8be9d00854012876b7653cfe48d2f2492a2fadff7ec28f3b50a7a652161bd3d058c30fbc2b62f433bdc1027480a79764cc8d6abe746d46285698202ab604e7798c428a4464929d8db124e05aad99c906bfe823fd369e93c47a58d59e59d06411a19a2602f415d08c67f76903671152c37a2e39bb8b8324f8649d1f2d128f0ef2805e6e9a064e6f89e781bf94a436097956f38768500184201ff7c698f36d3813a5923880ac3fb1732c39d00a29b43ca1d4ef66b8a922cb6900bb43c478a6e0003eacff9d6d5bd6c845dbf646877e8e93b1d74b674732625cde1d29b87ef89bab99c840476d3d5bcef4d63973277a4f354ae47a4425a3f4c92518243bc35dfabfc7046a4d662b1e533e2bdfd186fcc593f18cf1b744d541ce114375af4b2e592062a465e056c3fb4f7ec9baf46fbf8ce2847792f75beb7f13796a9899b8905adbeb84161c948c084b68f9e7c2fd1e7f6dad70c0331a55ed46319e20c0d294f0cbff82bcb5424fa28f639307ab7338f56e97b300b94f326544bed604b91f01f6aa4b08486c7a31af5b7957384f716fc3cd3e1c0a89f31f16c39a66572dea975d7b65c2604c385a9062b17bd1a98a4f2f2635cd308500b8dbc64f0bcfd1139dc0cdfd990036481c3032d6a08292c32bebe9ff3d31bb414226ad4bbe2e50efd8c7ae795b5d726e8de7b3dfb6064eb377b8d786dead4cd109c8a9065f070cf9a3a128c1196f25fd3a501825acd872ec0319b6483ca465dfa164aa2d6530179644a59f5068aa6ae081fa0bc171d8beb214a57b4decef63cf8bf4a794c56c3052447fd25a2515fe32a13020269c2e2acb2d18a1fcfbae6cb5f50b44cbd0c9a5d671b761c500b50c585c346aef54cf19d1d57cec73824f263b2d04f8f6982d6bc82d794de3eadb868b4f31557c45caa28b1f7fb1b1a398c62eab1bfb4a7550fc48e287abfde4fd7ecb74db427f960b748f9ded85b6a554ca646be217d09182e5a83453f07dce36c68bbdd84af613850e562d36ef41ee55a4f60249c4adb8a864b23d5da3443b6ea9620fa26a5428b3d14d590818968226acfdd03b0a7c37dd1224681e1a491b1e8dd2376d71be668405117086056afa994df4aec8c33a0e8be4a45ca53ea90ae9da99236068d4b68a6be0981a68c666de3fcfbd36a24c2095f1045318884d84858876a2654db56ff0a192e85156b4e51ddc8d09bca3d7ca80153fed633299d6342c203ae86d8a2d438a5324a25a2e5c4a5901703113a318f7d731f6f13ee80e63d91e0dd48820df5a49282bca1e5e9617dab517bea35621f1e885b49be79dbebdecce6d63d9253c658595431fdbccfab1e2b45a984dcc6cfe8c9c5f2ce1fef893eae360ccba23a856b58f5892a8726e89b4d90024c0878bd699989f3e9eada424e6686d4a7be109cb72eca2ecbc2c8ed406fc2e1e69453fdd0498482ac826433795554e8f0afaece51de1fe29468f6577589974d46afb08cdb2e68d79f66957ac3244144734a49f486fabbe93eb1b49254fba6643a53080c600580b776b6e307c29f63403b114a9b1146257d726d5e3f6b72095c29c8a633ef966db1d82b4f5319fccb47b282b437782a2ab2989748bb69fac51c4971095a62ed299bbec53b00cdf0247d9fccca373b8fc7393921b3617d9b13a72846f0dd4aaf5bbed85d8e177e0c3fbcc107d36c9f0b5124920a6c49239e6891981f4aedb1a1faf2e9db578eb59023e2deeb394291b82575b929d6322a4916ecc0eb9c72eada4cfdefada9a1a92fa3ce4e305b2a0a08aa3a41b992efe19b38edc937d455e67dbe0f06f1ea4b25157954cc825fe5a89d22385eccd3940897d20909af1d44375bb1d800d932803bf6a60f85289f253023c3ed1aef53349ca427187eb6390613143d6cd1b06491b059d782e0dd8c457f8dc06578286e6b1dd212771cd8f44af9c6a73331ceea16ee4ea8bde016ac48742e6005ccb19bea8f8d37bf5202570a11d4ac55d74dbe44104b0144b2905b1d413c43cf8833ede8f6e5d4b4380d574fe156ae93f1857e4e3e35940ba0c4a23510b07be2070f934a03d16c9a575d6304e71ea08ef03c6bdcf1ea75d82565b13685fc0582935235416936f9053788b2202772be143c2ac67c7c64c1e8fd0095163288670b343ca9a0981703bc722f5e37084485db20c4e335493d9dcaec29311b91b5d5cfd23ec7aef3b97b905668b5b33366c9b498e1bb1331cb69d43dfdaa3acd4e209ee436fd45bff32934d2c5131843ffafe9d06ed1e5e6521b5dc68344409a06e2d14ebe5d53a787bd61819160fc284ed83d4fb06c5e819787173f2a32f9cf774dbd862e0fb509d6b17a23bf3c270db13aa91873456c17ed7256b761d2476e7ad497c7f8d58168d9d70219039e348d01c213afd2a913b117369b3513bd2885349451a7b22ba95d091cc30946853373d38d0399b190ea30c1687591d22802817b63e1b678c2a2f162314d078277c509d0408f35e2b0058272cab0700a12b314f8f79d0c8055ade245ef12c429e4ea810f8c14039b1b314d724fa4f579b768d4e7aee48aff7249e3ee0792fc20408b2a6d980822137e38773a740a41a93bbb6ba158806247644578dba22f139bc53e53db73f5ee42951b17d53c23b2d83591da7d6a744098c8608c36d2eb8e4a60c667da1843aa83637f53ca7edc629d14fa6aca336e62efba6e179756b849de4786d4cc495123f0f8415ee88b72bc76aac794294e7986e24df5e1c1138255276ea9bd4a8099b4a90e1f28e5ad129fc258b9c12f90f7f200426819279cef6e0e2f966478942d44c9c8a9a03b6d34311cf980f23c132cf08d0ecb3dfedef0be535841c871404be3205f0ccddd049ac8d2c764f07594783430f08fde82451fa830550b7eab7d6d7713d6eefcca58a4aeb6c905b3adda2a8fdc15d322f19cbf930962e5b615f1dc19f3212ec380c6ae6140a60f0e196a6a26e1157fd5fbf31bb452a6f84772f3a9339c2dcf01582cc1bd9fad644c0de83935758b1bfc1e6982a105b054270c457caa530cef41a0338e74934e982519b4f6210837b4f2a148ac14836e926a7705ab176105285a70fe1e169dd5a26768669b4135e252247682352315f037be27829878fb62d189863509d3e6e0a7ae50166405b89654d4ae16f3c48749b0e8ab677b805dd5a086256463c094c0807e5f3ae853885fcfec808a07f90e12417b20e74613e31c3475142192ed875aeda3a74202a4a657de1b28dddd135ab12bd21e966ec281d838750b61afb4ec50e765d0b66b0f66785aec83c109e65da237c57481c67492e5961a3c725c8121794ad0f6ddf47d5d45f708e1e443e463fa21075b202d87972703f11f6a682a4ac243e6b45f9e9aa741bf18a2dcf801a9ad59cbeef74b72a191c354e84e080d089d9758c6cb57cdc48b150509188fb84b9822b3ef318343dec0182c4d2b64b07e41e885d505a8e149ea47dcc52bbb12960de53a7066d45750b6c4e9c2c9d29153e1b4b8ce1b1ac8a4475d0cd23cbdd363af9c82b91029061d1fc08495cf18b89fb2594e85b715a4782a0f0155d53cad43c15439871805d9e65b8a503c72375486ae0f1076eac89e6d0d51ef418ca8c99b754a263ac3c427f52cebf9e5ad7e17f013f36eed924a7ba27d63c522220063762b956c6b3c69266b9070e81d0c8145f1d5cdfe5768275738fdeb8432777af25f9c88d9b171867da5b6d6cd07ab0023ae6157343e581813fe1ec375577667090ccd98931139c406b4be92c80d3b9038bf4475a05e56b44cabedfc8ba3e273a0abdfc922a54687f12e8a65b00a8ab50422b50491c57e824d69a2bb82442f7aab1120ac4765b889dc093af6267f92819b9c47eb0d60a4773761cfc786e1e809b077c4d843aff64d748d4ebb11ed08c40ab8ae3be7c01d6904528ebd9588eb4b283b533055b04ec71427efccecc79a681903cf094508c4dec72034a227b75c654a0d8dc0db4ebb5f0360263e0fd5e0a27749e7c270887749e7b99b4389147c3be055d61872bfb14a07b91433f691191ffe44780927430bddbf2f3daf953b71a19ccab3dcbe1856ee13d2205be0e8b2657edc735bd91f6e4ed6ddcdcb4bc5608e4a2a853fbec909bdfdcedbec0a12b6206716a4323c5c8e022090f27f6ad8bd8e2640eaf80bd00c0aa082c31ab7e6d57263b805ae1cefec479d249af53ec693954c61cbda356a39b46fc4615f26ae3624b308bd7dc1ff1bd40304ade37907ba1d2e2f573f60eaee63f908df1c6772b75ca23e2d9186de477194140bc596cf27ee1cbd36443033b902966836f81653810b5d1bc2f820ff6b44c920ca098459d64153d882cf02b85c833984c2a52f8bf5bf871643228696eebcd6658736bdd9f37077ec266d24d032f86166741e29baa192edc79340f9b3c7e9b6850e223aa5e3a1da3626c658dcd0760108816fb5880c6c043b2e8624c65a114c7d9b28ecdb9e525ed8261da742419ac945d3f2a821206f95ec41fa79f2d726a065a2879bff4183d0ee368b41fb9632d2a1eb70fddfee2517dbf22d868f17353f9ce7abe018aabac7647be21e5441d52c13768445d594041a2dd5a1504c5cd4ffb1ac69e4aa0d4830c57c3f24bd2e908b8d7ebe368377ef76526909bc24a0c43070e48d69f96a9b5d4c04808969d71628af63abbfc6d5c3af7e3d23c164235581d0887481a7234ba37c6040c622a87b5bb4c770782c5bdcda9045a44aff40923b4e698d527f1c8fd9a8345b509c6917bddfb61c9107c5ac7f7f249d037460ae658c35ce9770eb67bd1f4b43057523841d4f72c7dfd16cc5a193a3ad196c4b75c126686c11930f6841802ef81c34d4c33281d691d91ae0ec55259211d93056934f450f1208c4bd3851ba130cd4617c6e1d545325d619e0fe6de4f48906ca044f5a8b888b9cff9fa6e54d9513e838cc3505008be4f25264534b8b4d4832c26d31df8e5e757c8f5375b5a29c3ce445e02ef73a3caa28a01a3e874942104f3b40a747cba599ca08af8575c0ac5789f37e1f275eadf7764aad1cdc92a062f998f3c3563753b838227742b0d0327e7bf09b651f167bd62119ac663fa0049fa105f04eb5789742e40fc19a12621be08ce871383a11311089b786b6816898810760e98d00ce0b3dd1045bd9a7a8cb9d9737ca97bb60c0e6bf456c4a1bf3f14e8ba5a117660c716933c3aea6f4d7611778064f60408f03a07bf76ebd601edce7d63ff3903b354fec629d41f27be9a0958920cd41f79371158fef9b82f773de30b618e20084ee19dc8872788b5fec332f6c2c86536115ed5871a1cc820e6d613dafd1862ec0658936b87a40f34481da577ffbc983aad94e8f8b2a6bf11651a12e1839a683f7f2c4f168154ccdd9f4bac4ed7249aae7c99608b7a2785c8a32338f2eb69fe293e2e8af801011a0d530e72c0df971824052f99ecb7e3d2666c39fff3f727993e25d35cc675f4a5bbc286862556b61204fb74b637165f971e89ba14c4755d6793efcb968b3408e805d430480e9bbca204f91c0950b9461762ba9a869b91ad52dc0cbee594893bb81e7548839682449a1bc0b686e243c859d7bb386f38d506c080bc846985115d8408de9891a91b142c14b777ddd8d2a47361c85ec04f8cfc980c69ad2b087f696ea6a692316bd24b816eac5eba40b8cec9621a058fd972a7e793180870a51544a2e185300a9bf229ed2e8e42a0f1b60a0588c0863f05d867a383454c19252a85ac9bca70e4bf2db6e70a81663d09886e80c4e35374ccd5ee836b0402632a262b4bd46c2c8dae6f36d3642c427cea5c2e1b9aec2c4a46f058066845b3401cc88578f2db40f85ec2c2aaf11196888b7a86126d70956b6ff98b24dfe40a3bb6187165a16490765849d23cbd7aacd4328640c6574eea9c8682c04512af47cdf2d881e63d8e770d8cbbe5cea0dfd7ba772031d3dca810699a12fc95b3e97dcc6b2a691e304169916b22acef89fb5209b2415d5d423dc6e60a66493d5fd80f9ab7f3385bc8d764453fb33d4551969880c371477fe8f7a9cbe2de6f3951054bea5b03ea040db074662dcbd43a298fd14d0d314730882ec6e65f754a358ab8402134f818faee852ad70ac5d89e2018af1abbc179bf4ac3ef83eca4dc9f833107c445dd85bb2f286afdb6d5cb0a25674c1f2a486b81f3e675e5436e80f4e201e0305f175441f4c4534cbb33efb8e71bacd15e8fce48f0c960c3817bfe6885316330ab1bef03cc7f7421fe03e4795ae635a2a5380b7900462476d2a28bdb82a4088b15c371c1a9c2f99b0cb9fd9d8ad60def6e24e8704b4d750d5c10a8ea0250f5152e42e687cedcd916be2862ac1e2cf26b018d530ac54b5da140263aa899326d9d16a6eff25a60efb1084263370ac0812892258f538e608e46c63da1079e8cf2e5c4809a4c0a8e393d5649ab9db2ec6faf9eaa421fa622293105040beb09df9e0deffc02efedfc2ffe06fba64d9ee003a7fbbb849dde3240ec9a1ede9d980044a27a8b5fb88ed81c3da3587c5b8b26ef60436648207823ed87b6326441ece0c45899d326188e2530ca6876bd6d904cd99994ded8cf5e7f9c6d9c4281c07ec2f3aa67687bb296e538b5e4320b0a6c3be6188764b6c5cac10b3f488c10e5d4b49c049dda80aaeb5de124aba029cc08bb80ea1d918602e18ad9f56a95f8358f636d7830f4d38faaf594a4097c89cd316716f1c1aa1e6736238c112a8009941275d30815ae086de0279ba5a12fcebf7a8e3748eb2f1da9e7a460d509d778df37acbf4f8f7b52bbaf8acd9a3840b1a540c5b293d1ea288d835080f299d647732cc11de969333e5744d884f8cc5434d8f5feb086716c5bc28b7a427cee3fdb9f18349186d7558c434f20c576a8eb4dbd5ff8782439498a19305a204bff4dc1c7dd7e031d8ee91027fa46215d1933b32709dc4d04fa6a87b65c20ccc29a0e4d9d55bfe517fa3ef9186eeab8a9fe40748505f6d066686d0e9fa7bf25388251dc5d2f055ce4e915f0aacb40f2f10927be76098fc8ae0dea73da37186b953ecad641e4987b9d03034db88db490b6775bdb7b6f29539201400b7b0b370b37b762b030145d525cc995fadb95446b955c3ae05a2c766e00be7862241e688c541afedd4f6a1a78eeaa2aa3ffa99ffaa99fbaaad2f0dc15ed6eab6ed7f7e34881d31078e4d60942f9f6cb2ffbc92cfc1267d8c75e1445511463b11763a7086e869d298f0c42f81a849ff2c8220e6164b631b3baed7e89cd14768e70f3ebcbf383f2d4e101105cdb407cfbe2596bd96f9d7886a960323304558f851e132208f1829a188ad49024051e2870e37cc13a78f8cd7ef8fda3dd41e453727fbf071f8cd055670a6c85f199d2da0a08ae3c2e555a486204104d0421fa21858cd39120594bd830028e937d7f53c1e90e0cf2086e3b3bc93de0e136bcebc01057484d81050527361baa0479e1042d2788798bf340f4fe23a8ef6ba9c309b9c5a8f703cbd1962d5a82601941398dd115f1563c407387073a86e0cf695b7940e68a134dcae8b68041bb3e41460a29ab07de0c34a0fd6dd558f6c42460cf3c2cee6ba2d22b6342912ab08a662061ca1649c828adf951802848724b709822cd9928a2c092440616b42025c1c3e23850c3132e3ce4b0806109da5e9e8c61c209177a4646d07e1d1ff8146dcd887945967845921c7626e7690ceff6a428823515859a33b03160cc10d1024556ae5c72d50245948cc9b284d52e157f3ae6eafafa3f18f8ede6c6f3f585fc46cbb9e17cfd0c1c47b3b16af3f55b9586ec479d2bfae0e4469fe2df9ddae3d94ecd0ce1236f69bf963a5fcb0dc4e791777096c042e78d9a6935dad78cf3b49cdfc1f3e9ec676fbff5b3af7bf69f19c209b2d80aa1b3c8638220befd2e3710fffb4ffb679f99765e93d3a27cb3e59931c6052caa081972450c453c58a1cb5ad2e28427a2d0914810577ca982e66a8b4d1059a472a06264550575219d1b8aa2d0b9739e1fad75da5ee4b4d2cc1cb395cc5ed246ad1ba2801b915dc6ab4422fb936612d9df7b3c0349554d972af214d99d709d425ab0d9436c6981c289485554ebd799f71c80da6fc34918d2e8d5bdef16584d584a2f907c01bdbce77b9bf8f34fa25846612ceff97eca07eae97f68500de5e1167cdfb1ec47ba5a6f4b1b2190fbeb4c77d06c402ce0303c8170b62c1f86f3292de7539c5f3f132d92dbbe6ff6f84c45fc39678a714e24c735fabd450265bfff9694af286c73c2e1a7bea4a1763cac8f8fcdf6ffb9fd66672ae28f46fb3efc01df4f6b540513012159ecf5dfebf0e003bfc51ef6df8f36f85f66e79879dd1686b886852acdb4c1e40fa70a3b1679a6e278a698f6df7fdff78967182abd8e7658b9a5a41a7b85696b6d13ab7cc3ee6e5cab25c92ada6e103cbf86dbb0f91a4eea724a82a6cfd04b7ac9ec29b7f5bffa6fccae6aab0ecdee998d26757df877f633d7d709b81ebb0d7c85c1dff77d5f08376aee13aa8cfb1a7cb9cf7a5469f8ec8f2a8d1ead6427b7ddb753dc769b72b4883172e28aac458c531e2f291424c7b43c0b65a3dc669f2cce4e79cf759d9fdaa97c677f639663a3f2b5bcd24678df66099cf6eede1b3523d55c5f9fd0e58bd6c2fb77494cef865fb588a9ba5182d3de35e5fbbdeb9d6daa4a7e0bcd7efbe4562d62a0f275bdcbe6665f677556ad2bc7c4c07beebbcc3eaa32be9b9f7d071bf4e47b41f0c33074b9ce2a049441787f6e4c1fd21654e1461a78fe4e175265dc0f81c0a9cdd91d92bea0f3fdd01a913312d73b7bd427541a28f405e25ffcf7fb36a9a1a1b9397f3f0320c7e1fc7d21bf8d5fde5e36677beedbc8624ff3c1b6dc6ef6f76deeff693451c4d8460c2ab07d7f9bafe50dfb31d9527f39064975db8d997653da6872dbd4b0669859cb0c9ad5e62caea246e892dc9f63e298d57bd2b662923b3c539f21f7b7522bb9addf5ac91c478809431512d684112286084bc6091dae504d986122aaa98b0a4cdc7f844fa88fdb155e0c42f7e349889d0a42a65803038c973148beecc4209191c159cc34b45016bd29524238199960c75ca5114d105325880d6296705842a39d47f39fab295cb70b62e93a75afc5fddccf00bf6de62ebf89672a7a78a62278a6f83bd13b735ca35fabef91abe9de3161a4684a210c0b2a8c11db8b144a3820c8102948d0f01404e9069cd26842acbb9ac27c110b36d0c0a40815234d74a9515c5df96a1055bc30b5b00589298c9024892d0c53f50246ac5429c929c1e20a289c2a11b92755443c418310a3c7a832b000cb74f6c18a22aa4001757555b1aea0dc13341d8962e58a941ea8a0f7de7b491784b0ff64af506e9d7ca0e30da1421a2a5044d427ae6a00673c3491544453164d1cbddbdc0bedf3ac2220588200c2862dd2086183982b19c4a29d51cf880b3c254ab4d0e82d2008824f5d80e0e0020c2444c10082200882a01319bc42ca202c83e0db2c4e87911d9434583071440b14044110f42fa9090ec3ce22f82698caf78967b6a6ba9deae63d69c20487241e94484302158e50e187332c2825557bd5c49551110f4d616810b3440513a7126068616a0a2c4e3aa8d1c9c166ff7728aee3d2dceea7a509704215955e924e490913bdd0068bae891da638d142ca8d0f3c1e0506b02831e40623272d6410c31ce1824018224d86883933858564773a60cfaa328e3c86878015456298c1042b244c51adb8d86cc002912aa82e5092d86293054eb1b55741408e00b932e5470d29a0a90f90b59ec52ed18398efe3a2295f98dcb0c5c895354f8830ce21700a233beea29e698e1351259d052b8b9234545b6040535abed5a6200b5385c2ea871725c20c4192e68aedbcced527dfd731e4b8eaf5defb3ff7dec7f76db7c754840e3bec44f7204af126fbbbc8fe5f15518f80e8b72d106923c57bc94b8ab87575f316ab7aabd567c31478419f1f9fef7edf673f6bad6def23279ff25bbd56f7ead6ddbd767b777b9fb13dfbddcf7e9f7fd63feb561974b777efebf6eef6a672f7893123c6cfe8db77468c8ee1336346ed183e1d01efcbc5faf5cfbdbdddbbbdbbbd8dfa767b7723a92df15ad1b4d5c0b74fd6c053039bbfbf8fdd6f0da84fcd7d50c85a9c8869369b945d69c9ee469bb0248ca30afdb808dfdf4ffafc5db64ed58b7e66cd2d771742ebd4cf90508ea919396ecd213434253494e35aa11c5342393a10c5a93a65d5a242d7395bcb05c2f775f4f1eaf17af2cbf725209bedb1b8d78bcfa3d210b35b3db9ad69f604aee8ebac0995e4a75f4f10ecd79fdbacb9d6afe1ad33fb8887edf16ad6dcaaa8cd5aaf5ebd7a6dffb175aef723f0e8d1e3e961b3d96c3d788cd0e331420f1e3d60541e582360f520c2e2d1b3d97ab65e2f479aa9d50cfefe6dfbc40882bfafe0576badb5d6da7df6152f45a0aa975d2fbb17157ad9bf75d6155a3027e4fa1a071575d52ab0b33d42ba9ced71d7b79e89a98623fc9e281c0abf7512d53f2b1afe57d1daf7e3b3a37546fd81111414501be5729f756b738e6b1eb9b466e5b4a2c9597d8406cd08b5c75fdc7563f1acdd2f42c5b7e159bba790ce84f1842b4abe0f111311131193eb24621a723d7912b9be75129d44dff221c25f51d77f455d67ed7e45c3b306fef8e25903cf1a06c477fd50f8e349c4047ef8e03924beeb5d27d1cb87234c5a405992cba1e217a1156d9db50b647b2c460176a246f224ef242b8a3976483bdb9dd439b7d9de3512bfa5b675bbda63dfaf8b49ed3eade503ad7bf839fc06c2fd6f7c1fb02fdf1fc8e27c300dbdf76865f76f23712606d72cf4fada50f9e4f99d208cf0e5bee9b706f5c9fe16f90de5e8c0f6f82b7f9d4bb3a28e85c207ff8a19b8cdfe776b6400e4b6061079adb5d6dad1473263fbd7eeeeeeeeeeeeb6dd638b60f83f8e6b2dbb08e4f020cc52eeae55b9c55067d4b99eb5b9c4eeee46f111f6af6d31f8a9f1d348dede5d23037777eff6eef66e1a8588feef1f3ef8b54ff175625c9eaef3fb4c6dd9f53f1627fe3c414d51e591545acafeb5d65a6bad3f3f21949f1f97f9637bfa5b6251e8ad31602fecc0e620f9e263b7895fc3497386db5a660c1b68f38fc555d44f5107098ab8c5063ff0fb3ef0abfdd5af82b57677edafc1af76077fa6e1d38b330da72a385311c9c5998a493c672a2ea99da988b573a6e298ec1f2435c56f77855cb38e192435c5a95606493959f1db2d926ba6994152569e76ca20a9a72bbf5d1572cd396690d415964e19248585c66f77976bc63183a4d064d1ca20a9ac28bfdd1472cd37669054d4544e1924352505c66f17855cf3cc0c92022345855306495101a1f3db3d21d76c630601a103c2e8a60c02c288e7b77b946b969941523c29a859192405a5c66fd7845c73cc0c92520344cea60c022237c66f9748ae199b4152637ab23248aa2755e5b75b42ae19660649554959c5ca2029ab28bf5da35cf3cb0c8a8a9ac26550d454141abf5d1272cda5191485262a0b56064565491df9ed0ec935936690d491d4ee550649edaefc7685e49a473328ea0aab2c83a2b0a6f8edea72cd2e33286a8a1359064539f1fc7683e49a5b6650142f0a6a2c83a2a0d4f8ed02c9358b6650941aa99cab0c92ca59f1dbfd916bbe66509495a7561914f504c66f3797a3c05089655014555495dfec9a5cf3670645554559856550949594ce6f768b5cb33583a4745246601924655465d41c1435c66f568b1c35c66d350745f5f2570645f57a36cb6ff51a1ded52d048f6bf518e03932c92e3acd3bdba55d92f98ecbec4e909d5142b2b6e2f2f3b962592727ac780f64c3148bbddf66feba391f8fed772276f72eb647160522a624ca3fddb6c6092c5f1018367ead356700a2681491627823b1fbd074d0d9a880672b0c3779f699f9431a8c06fe5451238ed27f7a52cfbe356c0a4ae6aedac686bedb2a73fe01713dd66d1b8cd3f07057c73303c86f72c0e7b4f7f2ffb7f0fc086b1bfc1fc8066ac3e8eb5ddde0f848528e0d0fb7d042e86d7820ebc169af05a50e2b5b0e3256dc14b9242892178495d78493df092a6f0926ce02529f1928cf0927ef05820c304181e8f85293c166ee0b120038f05233c1684f08ea4e11d918277240cef0815ef4816de1126de911778478e7846d45cf18c18c13302c533728567c409cf88129e11213ca4297848563c242a9334a1727a7948bcdc4a70e5214dc969ae3ca4283c24261811ecd98ab57ef8f57e58474bb6d29f7c6d0cfc9ae7b0db70ae5d2e97fbc1e338dddd41c9f671b0b7ef3363a9952d6f855db6d93ed0e802735846aef39bc522dbf723bfd92b2460713d853585a5812df78b2fb8ff45268d49aea4241dafd3a6c3e262388fb75677b42edbfb1e66eac6a61584c8ad36d336bf8af3a5822b6f8aa99c3ac077e109630757d9efbd17e34e1aab93e94dd1befa58f25f2349beebadb5d6da0fe10419f682c16a780d9775d913831fb77d2ff4b35a0a4561bb1b49b387db3e4b9e23903c70c6f43240ca3db9f2765879c4f93e530c625091b35f4f0e15856ebedad38609dc5f832008b65a60378e99eea099a2896dcff762105cb38fa77239b4664f211b041821783914ffeb310c557200b3c4062d80c0a2080a092ca069f28589124ce03fd359ee5cae061c7bd2b4a60d13b876f3e2779e99b5b1777e23bf3c6a5deba834cb5a6a70e32a8fa4694bd2c4096d510ecd113ce39cb6485b503e90ee7bb03c33709b0df183666f73dab497f054c8ca154cae3c1596c0661944e0c7e286bce7fb1a423805fcf9ab443401e4c809674c40e201fd6208e1210d92a8265f94a0df77eefb36fa7eacc269e75edf39d8cb8c716e1163f785e27f5f699d166482609ffcd17a79a3d794e359dbc0f5e3df70fd583669fa8fa6bf755b69030c4e3b77de10cf5a683302cf9e9aad20566fb55caef1f1ec47338413e47b857654398b7ebbe4db17b2b80648a1396cabf5e7b75a396a00c57408ffc3b7094eeb530d3bfeffad018b3f9aae336dfdf7356cab5e81e76717902d51974962060a3dc13865853028d3fdf1dfd6f89ac40d5b7a48e2021a1c5440edff581c096a80c2ca0911ac242d50fb6fdf66ffb69c8c3ba8dd532da8b37f677f504a901d114fa80e1921efb10f429fb5ab5306a735cbc7f6d817c514d79d1464d5dc1b6b0f5c79293ce5cef15270caf689ac2efb589c90edb14fa3c5a0424949c9b69290ad53dd6da6d8c7e248507becff2821db6f157cac85ea5165582518155ceaf0b0059b18bdbd434bcc8682d39a9543080043589f8aa6fd26da117a58dc0641e46a4fddd59eba411049b5a75d50e3e3605fbfde2cdefc3df82986e1b7f2f53e3fc36fb0d36784f12205b861bc4c9bf7f8974180485344125d2d3109283463d86034a901e4f3835403c8e787743069ac304a1df0976bbf9e06d5edf6f791a1c19fd3f7f979dbb512e8d206ad8a13d0c2c528052d5d64d8a10860c28489131d52b06288e78a02d6015f9f9fb77d4d57cc9ae0cea928a6dfd722beb417adb5d6baadf5566f7fa00cf69a5546fd4f04c55014db45bfa58d33046ed914f66148545e1e72ad05c3d84b8af65a6bdbf3ebc8f7edfdd29cec6f53bf9387f7f8d7ee67ade5bd00da0f2c5ff7559697bc5060f86b901c4b0d8a4e0dc2b7380cc78c5bb46219546ef07d61692304adbd506259aaa8d4f7bb9614451db3ab067def77d7cfbc6348665cbfb59fad79d6843b8986f2da83e231d372effd6e7525908a0b1d702c571e0a55e4174c55d985133c147839c5ce43818617fc6d4e1ec699249b04ebe4ca43619753cc3b212be9df8cd5db6833fc0fc316e36140e5f47dc221987669ffed63fba1f99c81b537152ab421399d9920255b13b4c8f64d9a94303a449428e2b1d72b2a4dec0031404ec912a88c207243b6ffa2b461310e584c7777bf557031b02520d162b13f0d8a2ee7bec88317604424dbafe130e6a6876ca3b2fd9dd28615dbad15d99bacc87e06612d092b645b806cada565e143a2c8de93dd6d384d4a9532c736244bb6b42831dc5c8000de10128410912d2dc71312c4e6777e90339e204430405724fbd37452647fd9572790b8e02509063544b06ed4901484134e44d59082ad2287a3588d79c9fe22a6bdad063121fbe30a04122a9c8efc68c252c44e9628459a48e14b121c2a1aa718b2fd0cacb5b604d98c07468c1940948ee001b922fb63dadb7c603f3a6b9218a2004778b92e31f07e54e13ede858a901739a35d11d37ecd12d99f9cf1c30a3facd1e289cc97a2256274c88221c9124765502aa0f89069b997cbe548402d552d89194a6891448b2ab6d86d31266b59d345cd930dffc14d9941e7da6b5fb48fd528c9c288d9cca97c9975163064fb6069c38a6ecf60e1eeee6ec20c8b156660d1258b229656734812e3a1cd86e09446bb55508fc8294ff62c1d8cb842852b6ec0c228fb5f5b8e3e2385cb0d3923f12c87c5d168b31decb5b756fd525584153c2ba4d220494326fbbb8f4e9a1f724ac2c8e90ccd0c48a059538597ec3b40704a3a995d891866d464ffeb2f9e0122fb6326d99f464595ec5ad01cc9ee3e999c2940cbe35ac1e476d70e18d76dbd30ab65660915c09e38c4d1f7149ac921c9059a023483c4050b54e6e933736488cf68649cbca76691cc93f7d49c8ad80c1024a031b95e991580a4507ae29d90f4f2e2020a5e4e67514869218a1794446194c1093bded19601e4aa458a22f9e6ca3bc292d3f7b951c60a230571f929ad2f7021d9ffc3aa341690fd3b4ae35a577bfc75c059b27f6d5a7bc9fe6eeffdd13ac57104cd94964110044bf1495719428f3fea9cc16937d5c01a780ae9acf793cdcb9e6928f6f8317e9b1fc26f731231817808bf0cc79a30b65f7e0d274b50fc1d647eddd7995ed02ccd344dd3f23bc8e00719fc1a16069a698cd2be68459b495b8ea708365c673f719bbf8df05b662f85bf24097f969dc176098cab1852d01bc2031591a2a6aa252a782a2049e209d0b401e6a0eab60aa6a1baa99d2cd935fcda39bc3afce6d91bc8d30e28dbeb4db996de94bf70d72285150fed6d0958a0de61f1d933dd8141ad9f0982fd35f7bcd17f4f0cb278a6f6455064cd6a41ff1cfe3580accc8c1506d1092e908af28432d9ffdef3c54ef0fb03f9fbfcf8d3fc693a55e0f13345a82a323914b720e4490ec5fe34ffea2f1251262b575e11a333572d65c0641d16e74a6578b93ee5aaa58cae4b1bdf57aaa1326cfdac7c510c4b9b2178f4f7d06902ebb03851c49846fb6f2be7392f0c632208ef2247ed3d677b5a9fb695d068cb106cd42a230445f9134f219ed30793f83e765e563b7de8b4c89d97fdd08e780ee9dcafe1e3d3c8c73161a86b7683bf96b5f09ab5f01492c9da46163b31ec5592a30bec85fe8a82cd6c64358671fef5e55b727cebb9a327a35c12eee6ed8f5e519b8f7d6956f465c660b0d8c3de06167b9c994dec5d3c2cce752ed5be2fbf08b5df59c3017bd70fc1def5df39e4faf224c2ef3a6b1f91ec6167edfb8a3f537c9a85c1526564f1272f6b60f3bcc77e3fb51d5d373a8b70ff7b9bd8d7b2069e4230d8eb6b382c697636d57dfab22a0d1ab8ad1aab7b38b7def53af2cb277d811b658b03f6363f047b1bd977e2177f6c3de9faf2f4a921f4f353b0a2cf5d655a2f5ecc5ebc7081c3c353b391d17666309d1b375f3ccf5730335fbccd6c36fb17331e99e9a3f6ae87993e98866aef7a1f2e3ea7067e05c6cff90a90ef125ff0bc9885e1d712ed8b592b0c217cf1147af1220445d90ad5c0cf317ecee720dff5238f590b9fe78bd017662d3c3f0cdfe65b61ab25ee346da9c109ca494e5bb7c5c996a49618d62d4e76f97e47d570cc66e2577012b9386be18f9ff3b317cf219be739896a672d3c6be08963fc9c1f22dff5e4bbdec62cfff53433f62ed8bb4cd9d712474d68f61c547466f3383b6645fbc614523e7e7dec6736a72c8661af921c5d3845a0bfc2a76c45106104318f80b33f99677984954f62990bbdfec77b3e3f369fb7d11eab719b7dcf729b7d6f2a9f09bfcc464bb3a242a288318da6a4148be11f71f9afaf672b7553876926faca7b6c0f0f0ad80a9b0ea5cab0efa647690bec63d3a7788ffdd1742bdef47d56d8148128029cefd957a5141c6611ee529313947df580efdff3ca716ee43934366a42e5eb6f590b4fa17154d275cb74af2f7ff426a88ae54e16177b710a5379aec98d6c4fec935cc9f6d8d4733a98eef5e4c74ecfc15cc0f72a91f677664ce07b821f3e7f6067faa0788ea7984f5ab6d6fef8d81e21dd3f898eb7b0a193e40bb4b96016a777ad64f3165bd2de586b71cc8a7e9735a1f1f4c12404fb2d501cb351aff9975f51d2247ffc0abcbe3c7de4fcebc7d307d350cebfde07ce932fe2d0c18115416badb5d65a6bad15416badb5d65aa1fb35116692a08decbf6c78f608c333fc30049defd7c4534877f3b36f9d351c384f7e0e9c93fc1c39e7eb458bc37991f6383f447b9c9388a9f54439ad7388f63a2711ced3ce6a7bc42b661c13255fe3cfccd2c6949918c37ef43a332b4a36faaae4596d8fcde9637bca2763a70e9f30fca30b17854eee305618a368713a2657ff108c96463e68f943304a5a1c267f72b5296735ab87c555f0f7eafcadfd75f17787e7716ef3dc766b56ebc2d70d11d120bd0665027f0846c7c7a6cec8071d7f084673fe75026e9979e366f915c84cf2616689317e12975f81d9a89b35efbc4e8b2c1f870e0e6a0a2a12f98ab6666d8f2eb9db4abd74dfb663f9ed7a70bf5e41792056a12ae3deef6b2d125419f7ddec1274cf7dd27cb502d20692afebec5165dc7f01c122887fa38620fe8d5a6b9d426429a4d3f1fcceeb6aaff3238ef97ad8d74cd98f3b664575cc8a36fa856693f241b3899188969f631a6194fcd1d40df141c937c26869e2d7316dde0a8135a19b9bd9eb638f037bd9e3b7b999c9cc37b1f932c79e15853e5e29e5fe11060c8761fdebfabdd21172bb757b3fb095c5506cb9daed93a41138bd3e60ac412bcf442353704a92b1984cd6327fcf8e453038a59135c71f965dacf65c829f6c01a7df8894ab1352b0c4e0442f0b1a7268ff68647116b8aaca6254c39012aca0fdae9e2b6b29f7d72538a5d5eac548958a892b86f8218d154d44ea14921ab2ac0802c5062a1abce7463fa7dce96325228e1054430809628a1ad6ec48c9c1851d9010d96185efe99beaffa8fabfa70f6a54726d619fe7ab7f60713c67e7ec79e63efbe32f42ad9f351cb1e7f9a1d8f3bc3fcf49c4e4e710cfe39368e779789ea8f6b1b3e65fd1d817a13c6e5623bd59189ca52a572572e561d9228f96a4d5daf3f8ad669e9daf3fbe72c0b3c76fdfed7b92c5e17ceabbd495bce9f584fb6be956dc66df9d786c3ec52edec664e2a0a23a17cff333b3a22e1e9b3c388ad0d8735084c64ea22294886988e763efe2878864401af3038d9d444432208dc9a13c3f331b1dbbc451519dced3be96b5d0058fcda5d13e54191648e3da4bcb72da50b286728d2f2ad8bf96bd0f00563b476281c83d37722423bf85b950677b08abaa9abaaaa14ac0feb61652c19586d8665a2df1ec17105cdd2602f8376a08e0dfa8f9db79f580c5b7d67e2905df2cc2cd3644a885a7900b1e219d2ee7755e87f3b41f2bf89a69f33be6ec6149d88dba4723dbd98b3b9c94ad520d47ec5ffc50ec5fd87cac829368f6f86bb80b33f63c26fe9a59d11db3a23a664569664573cc8ae298156d998dde9815edb2266473d63c64aba440caa1b3f33699638e8f63be5e66bafec62c7f66da98d55e0e2aaad38d4fbeeef5b0bf664d28f61c5434f615b05552acb006c53f7629a41352becc1cff453e4c17a3d16c8fcdf6d87f993fb6c77e6902f9b8d0d709614e11e83027c65a3f0c37498c54bf4c315151030a43bc0041eb132c4254a141882d5443a0b58aa0fd6bbdd9a45ce845d122258b260bc0220890224c962021445f19b3c29428468018158193a84a01d20c3d5411c3e8a491aff745fc16f7011ba25c4981414a0811f48b153f641da9c26807b41ff7d3faf504672ce22d3104b104c68911225bd09496bf2e38fb69cc5a50a1e0b0d632572b1c9f06afeca75095611f2603142c6618acd2b08f2bee003a16a42f0b72facad6822ac3ae80df826cad18e125b1868b1037a0f63fb038097c891264ea8b9a1cd2a03a928c28b1c48c18304c50fb392c6e044f1c2932e544959d1ad4691477264c814a5c4c20d3e342e4898b0954553c8c774d54bea5c98a2d4c4d5b9aacaac088388785c4052b8a8b8b182b2e5848aaaac4568ecb1421726ae371c1e271b15275152ee0898c9525b3054f6f0a2a32580d8694c2f6aca0ac929598d654989cd554551ad7aca7e46ac68f917cca6189c2e8a805ee8ea0e915e1c202142e47d418095d3926969ab8b4ac9838220b134d48ae9a9c1a256a8c9442b2896ae7c30d563cf9c054c5871bac9ac4ee541227bb2bc2f5b42549992d499e9c5c039052b2cdc822d36932f2de1629262ea52d3f346d91da8111bd8764ada2905c5298e2920292aa328bd1926d0614ad9ca728d0cc80ddebf7da17b747fa138f090a3c19aa783364e15cefdc8fbb073064ac6318fab5cd68f6bbdf317c6c6e4bc9f00b43f0452b4d81df477e31e0fa35fb8f5c794a4af9621f3c23ebdbb272ad2e943c06342efab33c48a073f8852158c1532b55c5b064ca86e0f7281893ebcf2a2f0624b95ac9298c5bda106df883e1bdf7de104e90bfaf217486a980c359feceb428bc65901575f8fbb13db5c6bfdf844815702ae62af87bf03d8741764d16f9b33586dbaafdefa4c55ec0f5c33325ed879586b5e6ad323efba005c1af064352aed80643535aa91cfc2c0d93c9b5bb77acc0b4bd1bdc6c49ffd4f6d5947cfc8601104f86a52f074393125d55ca551755892ea7b52ad7cfde204b739b392b823fff545c4804cb4816af8a0e53d0fa352aeebb2c411544072496aad00aa39e20d45e4dcb8e130c4e491ae1adcfc66ebb9f92f9f6393b71b863b66396fb6f9031899a2d679e6c3963658b99277049f65793538b26fb5b3449aab28c5c79499ee41778390593fc567949c6f05eb092fd4124fe42d20bba3cd61170e5b98026575e923139b5b9f25ab8da65ffe67d1f08822008826008d54f4f38b53da727ac2c299da77dcee3fccd531941f5aca66a9ebdcdcb3ef6f861fffaf2b19ca0724f5456e3bbbef5e23ff8df7f4e53adbc9804874ae0b4b5fb012b1b21f92dfc9691df5251cd91df2a0fc951f617d5f82d0593727e4b6dafa5eb0baad25293d31314dad40ba1fc56fd56cd330d9d0230e472301bb27f932fc57124ea3ff32c5652d949172c8c354b15afbbaaeaaa56a5e9f1c76d1d85462e921a2a75ac89cba9cab2b408a6acaa2d281c4c73fdef0bead7fb292dd7ff270cc60123aeb8d6afb5016383f5abb57ea07581f5abb57ea06dd9f0de7bef052df8e067a63bc85cbf7efd3ec8f5cc82bb9a3b6836ea577b432bb644b15db576b5d9da11632b5aae56ab31f8f971b9b2ab3576b75ab92596411a30bf1467f87c2fd08c80dbba944019640210ee896d063178b617acd5ea9e8202c3ad5637172838d66a754b811293b55add52a0c8c2b024cba011b4c4d0a6bb5bad6e29505a2f2975ccf57918fc5857b656b4f6da7bafad3a1e1467f87c617ffddb6fc308b8cd813e9e2d144122308c7fb1f57dc13c345acb7567d8350466b4b647be62267fc8e046c581e03954bf54b237ba154797c5e0c7e5ca2359ab4eab95dbaca4684970866d2ac97f7df9bbdfa1bd6fef19ba40578cd2f6828157308cff1a650348c74d7604e6a1e1eb9a7d38666d3966d1e2ba95ef08b2fd96cdf5db67c3ffc2effb5769e3fbb23338d6d790967db1e48a999c7ed51528be055ce6cabbc2430476e5cabb22c4952e26dc4843e54f6058aebc2b4e39c53e5c59cae9df2b4a306c31b2c0a31e3db5df3437d3cad3a2268fe0f95619f547dbf2fb23784fd1e6f15a77bf5dc3d711a3b5d65ab7f6de7bdd1bacb5d61e3f40ada6bba5d130aed6bafdeebb77adb5d21a0adceeeee1cbc564ac30babddbbb61b4a3770dae612c282aeac35890d4256f45bf2f68e5fab40d7a4dbed6dda5d81c935359ecc755ab56e3381acd3d7525b7e23b27a51c4915d9df8fb27f0c1cc6eb25a775eabe1ff13092fd95d38aa68d1a0989d2d20e4ef890a13a0a4ca3103a544e3b8bc77162953564ee92fd85269c28a18a0a4264817a608a1fa4a01081eaa205ad69cdca5e03160d50a87a4986a04e2d2c493a2305cb950cb0caece0858817a92c68162059ca48f902c6491568dabd0ea090c2c4113f785598809a20c90e515ec8e26408265c5fd359767d4d79b22b85915d5f8d64d7bb5c56ae64170f2764170f4764d7bb4a1b2e1b0132f9add206e93c30a6306d8c18c0184717175af74fee1d64c8ad6f7d58da68e12c30224b0e1dabe83da1220e9fc4cf65f012207f3a98f0dd6e2e97fbd1cbe5d07b499cf37e705dc1298d2786a9ec53a512dc53571445d12a053fc0aba49c14560f4b154db8d0bc0085d20f25412ca95c9c9c62365b544992ed5f9e20507678d54a1bb79db2c8f677a210a1b58e13143ca722d93e0d3b1171d3394350b922562d5ee041eacb13981414a901848aa62414b620c207740b141a6437f66b0e5164fb33b1c84912951e7440a2052a3b34f5c9b6f26468628509c9892349a86da55c2e47a481faf2b2e58d5439641d0077180bc8698c191844c121bb0f51b6902283943453a0b2bfcfcf0f1c8cc8cecbc1894fe160c4d5377ca39090edc3449d2bbacc88e1809cceb801095b1390261fd43469911d0a54f67ffd60a124bb7f59da709d2d6e00c293fdc9283b807d1b6f161b807eb434d184bb3bd007d5410e1acfb571db4cb67fed874830fd20001ca0e0afa7b2c876361bc1d40e4cd2a821b3c29a221490b14242112a5944aa40015d2d50ae186fcc605ad3ba9f1c7166fb56cc018a57f536c0931af2ab881accd0c87e36a161ec0416182aa81b552c5549e1c61927262bdca0428957430949d02ca16942e38469655cb002c90a243c275629588175c38a9ef7d49c8ab8875e0f5369c07631a7ffe28419b4883bfcb9f2669061a948054c702c57de0c3f2aa8b2e2c51126a37091031e975801e740a580c55c794b9eb2f02b57de92282f6ec060aebc254f7a80ea2108af899a3ccb95c704051ed67c589c4ce518b9f29c2c2177a3511d8d46a32c5471a351ede96fdd1cde1f71865d54b9dfa7e2c6a51815e7a2b2e214b72db9cea5536c721b2da7e392045e64d1c96dadc66db5490b4e35b0265b20d99e35f0a374a94b8d51ee77a9f19b2ba7f3db7d6f6a7a21c1d6fab983ac443821c249bed7afdb6ad10f2762486842489a1f3cc896d6946035050a533a40991fcffc9e68c0ffe4a2b238114aede9af628525f7fb90fba92caea25658d9d5cb4d55460920d9778c725c83790263e5b7317ebbb97fccf25be5d16065c678957b8c1ad1e41ed5e44653d22a1d2ded9a909c5a787201ca6fa9bf90fb3b7524b9bfdd88dcdf9f2ef7f77725f7778826f7772ade906f58d23dc54a2b4529555d8dc9922f168cbf95e5ca894d54b93fcc127361569815668939d148dc8559a25237b5532bf5d277c5a786cf13f963536ed08914a1f2a7f35bfa257d46bb24a5f433fa9a8c189b74b34929549e42b6a75f460e57b4fc6a7bea155ad1f12b50fe78d684c62785cab326e43ddbd3df4e359a6293ede947e237258b139d7c8926362935bd9592c55574a9c9c9a1c4267c42537e81c7083d172a0d7f10f8937dcae5b23d6b3d885aa83440b0a35ee5dbcbe5f23d6b9dd35d6537eb55ce21191d19e934416288132923492cd5323c195ac841cd1115467cb743ea5a272169f14984129b442709587267ca30ba882b0e3c617ce73dc54aa3ffcddae39fb6c0efebd3dcc97c7a1fff1fffb79dff5a83fdd3ff2ac391b0e8b6769bd451b973ff77bdd5ef5cc379f8f7d0e1b77abaff4ff6efdd06aa0eab21d2183f3c86990758507f881fb2e3b2033a709b57ababc3717d26f7c108dd4748b2c7e8a7a51d724ae69ab5f424a7ad735b71d57dba5778f8f7f0d7e1ff817790805a2fd0f2bd08b42ae37eaccae86f20db63db77b8cae86a551bb23d7dc3073f04cf9a3d71f8d7b3de4a228ab8bb8ab1a0285e675cbfd6aae58a97fb4cb14fae0f546bad511fa8becf8fcd328eb59650b0bf8d0a2583ef35dc1279b2fdd09c914b28d8e6ea5d705aa16e35eac9946dd25204072e514b1451c494a223408451a10c0a655cc87a4dc1fd6951ae2fd3028b5da2706a62cd135f5a406530e90284852c16b040f331ecd7b00f64932baf095606c014cc6b32957deeffbdf681ecfbfc7c4e62d3683aaea36343a3f5ce5b9b43d5739b5dfaa062ede83c3669b118ed63af13a3fd4e4b87f66307a451c8b689640bdedabd4bb5c1f8aeab96faa9a37aea7a5296ef1cc936926891aa0c8b94eb1ced6fd3506538d1cc76a2b31465a99744f114d2d1a17d088a707ef6ba9b6ffd0716d74b4b4b4bb1a799f86bbff3396a3b670dfc9daf688e1a8ed88eceeb9c3e68e7fd8aba7efc1bf3f5e3ccac68ebf5363358ccc6c66c34564dfc3eae6453047ac904ca64b1e6e199d56a3731173834992bc7a67c173c5ffb1b99acf6b2e791d5fec645b72c26768ba0b72c068a22f8204f0d175dafc379173e50b9cdbecc6c2fb1861222dbafe0d950e18f3737add4a1e9f97502ae6eab993ca60fa656e79b77fdd0cdbb8876fee6c573c8f52e4e229d77bdcbbc7917a6eb65df126d064d317fb54facf87d6c3fe58ffb635bf0f5fa5c432ffed857607cd9f8b1717c1f3a8ff15774f47b9364321d281cb9f3f7e2bff7e665af1caaab32a96647731c49927c1f3a3f7e45473777c4b28cbd2cf63b66a35ef397f9faf22b801f76faa03dfef2f4c134447bfc3e74fef562083911b6c022df10ac816092d213279ee7a23aa9c9ca1314e846587edfafe774adc36a1d56eb5a17823c7ab16ea1cab8df662f99ed4227c560cf4eeaa41b3587af63d6ecbf7e7c9a59b3b29cc7f91ce3bf3e07f9f8ad590b4f1caf1f7f083ff9c23966f93826ecc614b29f591392c946bf79e1d7d79b9959be6c4e5decfc1ab62756047a9904ecc5643159ebdc4af63b5f81d897a70f171ffb9dd307d3900b1f15bc4cf61595c5ac782aa8b9f8980b87f69edbb9d213ab25abda0b9e1715f5920399c9f331b3f6bdf3b217a2f3b1ff1b9edabf08a580888a6ab55553b66a811d1525d6c23056566d2542eb6f84d0fa1bb594823ff1efbb302b306b126eddbc0ee75ddf592dfb6052a54143cc59551a62b6560ab6532a8d0f878a6b292278e8a82ac37e29057b4e3baa8683e75d7c0e9ea661a8c4ec9695390b1562043000000000a315002020100a864462a1481607a2a8b90714000d72984c78529a0a846110e3300c52c618430002840043460466886803007087959914916f4c304eaa32be37a886752be500271c30e36118938983849276d25b3bc939270c4e838723b99047d2d0f6070fc26576596c3a2ea34818bb36331e9ad219fa321a5fb6e9e9a9d107ea2a36545fa90000f8eea4d5c994a4eda7e3ec7f58e91d04312832e0a5c8b75ba84c78a9addb6445f5a24c45a98083c672e40fbdca5c380c4566716148e8804974cc4d86c26138328b07034207c664160e8690a138182274604446e161989483418840804f3c1c01dcf8de7854c27237ec149104d878c4dd33ffd3c5da87510e2fe323e8dfa7e76b6cbb2879421a6699cfb7259bae5b92ae2ee0c689d17f514e7b68479bb2f50bdea127f6d07138233ad5d709009f259b4cb464d563035ca6a834e76af9c438372119a75fbd9087afe300ff3a66350e64d0edf433e4e1edf858611fbcd4a4049a84836d4cb1b4478486fea1b55f2b8e1e6c325cc66c939476bf6db1368f13bc13a590262c3e233646c629a517da08681d0d341e60059c046c729790ae51f168746df28051bd37d7e8f30316f10103be16f6513826c83ed8fc7f8c836295b3d2b34a7b4d57f412cafdf2f1d8538a74ba64e409cab56e208cfe84c0a23b8170c2f610c1e9fb5edcc3f10498772d8bf270a300f6c224de55876f32519f19aa4aea7ca49e1e2ad6dd03878444dd8fc5b2ae4b2e1beea70eebe8865725f1ebf08054a1ab008628a6df8844438720370076da8304a51c629c7046a4bb1900aa390fab3c56075e6d1686142cdcecf46b2c590859b2a4da57ed3b6935cd0ab384b1c3cf1894b06ed9ea43edee352f681533456669133125c25cce4aade5ad4fc182b5475ab48cc100b828289e05995f6a95922d9b7e1196525b0a06eec83541cd27a6bb1a2c4b79e728cb3999dcb30af5f507dc69195bbf92f16b484156a40e84450044c3e22878770dd5f74e67f3a20bc76639ae2c0214794bea5a64ea51bdb1d620c33a652e86e2e6f5eddeeba0c20cfcb33cd97b5d5480815fd6177bad4b0f19c863f1b0b7756901ae674fbbcb67d8cc3284bf697fbb57f9967edc51a59fb83a3fbd3667b3833a1f2dbdd631040055bf825870bcc7a73708aafa2fe3fb8a91342275025ebedc889aad8311c9752a1066a7cad43a088b202a547cc5328787e43ae8bdd456d7f898e2149a74919f4ef9d7066f7bab295155c7cbec3fbd039439552de765c025326ce76f0ebdf883e4f1a7d89c60b5c0ca05876d3ef510ff2c3dbb0852f7f51ab88b5b5b10f9c19e8bb700bc8c98a5891414472af61ed2151d8551f616d2191d84e15e1fa8e0af970ce9dd4dee245ee2037bbd04b8829f1a9d14c43c95158367a0ecaa163b5b74dd00c70306a7adf0f2daf75eb3c1e33a8d02b4c6f19e240b6269961959003dce86ae3b22020930a88209b2ea7b4cfdb3a9562ca0fc704cec1c03330ad9bb7027a21b234bba5f9d2d437c70370a51425bea8407ce700f01e171937236630854a37b79a0bb2d6235c9e39d61a5c3c4ae1d70b2feacb40afde0c13e88080f7db43e60253b2cda22108b9e705ffaa6159f367ebea522d00f54cc9e0ffca8cdbca163e9a89b99a4b1acc5fc0cfa8aeb657ffefc1f590a46053d67328401781f96ddeb00a3244def213e1da1aff2961833ad57e75102a4c0dd045478005b8f10e3a24a45899bc72183e7f98ecbf1123dac028de77d53770359ca0ebc0bcf8bd691b9b1dfd9f18da21a78c6447194ac55c53b3f938cf9db38d74047219451f23790f547ea7f9d83d24b7aa951820622abd0b18b0cf046c7ad97bbf733348270a8251e020764547606d15bf0ad46893e66974ca384df42170f12b919e4691f53fe638cfd1648f11295aa1f048f13d53b7078819340b3ad812ba07031d5fc3003685007957529bd60b1b9e4855e86a4781ddd3227622ab6785e269c2a9e551df02cec53bb20b3524227ca7a7b4feba372608be9003d878162a1bd7c37bdf771d14255e1728508e837e763dd40d6e0befd065cf690bea315b073914f213fa1221f9234be66cec520c360b2f81ddbe1e864934e9e9a72f6ee81d615f25e5338cd4ada62658224f8f086cbdf7ab408fcabdf407133be4533a204babe652402d9c03593c517a8af258234449f837dbb22d45e80a19fd8f6091b989005449c5418bfffdea234fd4a10a53f135ba23870fdd55587605b68fb68d5b1400e86f633f2d5ff320f99c2f5bb89a8c41d88db06cfcd483e80c8639bdb63bd3d936eefd943af9c0c8f6f0911eacd9c632089f556ea85ca04a96c2312abf6dc360c5ff99f19093dcac7c1a5ca761743fb267c86721fd6dda6d5ee2a97372425aef14cd3eab5ac03c2dff5bfd9c55f35c392143efab69ddad01a26a69e89842472c57fcff7971f67340f99920a83adbc8c4b27dbd32f1edf9637eac693e76d1caca437f72f27ed6c887164baa6287a344f80bb57c2a767c5e4034745ef6feeb7eb19bf35010798a58c7884045d7371cd3cd48ba8b9e1fc6e6f3006e7b6e23a42432752f1b84f8486b47bb5dfa2703961572a69116405116b88dba4733c7d64e116e359f835f5733f9294dc97a7504818029b4270eed5a43da5f7b20ab2eb93a847b5e24747795d4df11544d56f4b23dfe2f0a67d58a3bd91705b4df1018376a86743ecd5eb0c3058afc2c621c7d46815a114f167bed821e09c7a266ed4e0e40e965594c77ffcda5066e3f822bd8927ed83021aff6431bb326e21167ca4d9bf69c17521132e6e9011d0d107f8eadca3fc2ace17f7561743116c0f3a1523863063f0c5d2cda87c6b03b2869433463d5ce063d690efdf0332db92d4dbed4a3704e262e68fbbd38184392de4ac7e8d58d977dc9cb82f78eec716d63f78e5f36b45b88937638808e779e5a0d03b79f2c14b1dd6f55b054a1c5466c0850c63b029927dec01b6a51042371de8fe3243e00ca1b6c9beb6380a09b2f9da62030e746e91ecd7ffc48408d35f59c3b2432ed48a0dd15827278b84b6fa0d3f4b6d1beaaa06051edf3f5aeebd07372105a0142084c9b4fa1da07c850d08a7456f561127f8123edd001ac3072bbd114a51e83e1cac5325ec483e536bca50465abcdc07a554de6a917ad20fe72c16e72dcbac080883b2f152e76260d1e51407be04a92b6d599f80bf29b421d273b1feac21abaec94bf6833c158b603014fc07f40d272656aad6d6c8aae185576ba992c325e8ea9f04e5ec5475c7c7e583125fde13900fae840e94e43f8882d8d2e2f2493f0776fefa58b0f07b572bc98fda66c8fdbff773849826e7efd80e8a63ce0d2084d933083b2d3fce1f77f2f053061a8b99fba410e39b9ebf8dcfc062f143d533298c84b55fbd66bc85bc3d21acb64e08afce4820766b11242bc5e8dd275690b5f49b0522f7286359f114aaf480130ce253169d95e3b5e2ff98fda8c2093da87bb61dad9f377e11ad81fcb6fce97d425bbe68082527cd2f7ea4cedb1685ed4ddc057790c82919c3fa7817729be54d23a0825760753b05fb70d333e8cacab5f682400113fb07037460244f777c4a544cd0eeb87ee3b742b0c46c7705bf24d5445baf827c86b59f029312650400809e1cd42d0ae3409a7eea841404c08d9747c81b0852c5c6fb78a83202333c11a0ff7b456e07410ebb71fd2b35f75d8bba244b82f22a6ed6ec1ba2888a709f4f1ce5f6c38a88a510ed2dd80235c15e5eec61d72bae414844d39a502473e4715dacba732fd97572018150117fa6e9a923aeefdfe0ba4c7015e302bdebc4e7b3cb9fc2d299576ef734c308f4628a7176342882f9e7ea914380dec71bb915e61d1862863d8dddbb181ae92deee589093fa79b25ab55438efd4fd631309c63f553ba8ab43a7efcc283e8e8c5e537e8708efcac24e0cb99fe9c6fbc6f7df6e6375c5d0f29cfd627bc296b80e3c1b9e8baf6d6d406504ddda35caba309bda99d8a64ec4b293a990a5690ddc64991696c4909a2d44d5e91155d05e29bc932059daabd95043d431f66ed1f577f0761f0695471fd5843c7cb75934d275f461b662ffe506da1de4851f221f01706f92203ffc7a6b7d6a05bf4c6b21d2875f002f7e6bd09f4aa17a775128017f706912a2ce1a843e61cd840bea703ddd0c3ec43594cf6840ef58cbde5d6f3d49e93ca65af6a953f225709e65f22bd48300a08c3067162adb4c2c12ca325627a0cf8b383bd9de34ee3318e4ba3374bd9fc1e5831f87d10490c86bbe9202c6368f4a46c04468e6253d77639a797f587d9395c68b4fe6030bcabfb7b8cbd2a5117db1290d94e04e35d3c034b7920e090393de20190ae6909b008dbc5b6c160bf0c144ef2ea655040efa4540ba215a463c7aebcd84d29f1e70090e0864e4d27a034b4eee1d6e9255c7a19e76024b50977a41bd8123b199bce301215a7b60769ce513db51bfacd3c47d1a1fefa2b9f34b2da4cac667c70e4841ebe2eff87e65aaba54b59c9524e681be3b10eec6099791d5901fb8b9a582e637ba76e0770c19628f781e7c48cce1a0dfe53e05c27f55f4dd8f93cb0aa413ddc2e1e378f7526170fce2498c0e5295733aa28b5371867dee19d097a74b747f5123f75c48d58188ec9c6f33c3c643678e061ee3d5c0b658435b9f136b9a03c43043b9c00091de88fc0ff3c4d778daadc026bddc5ecad2ef78a480a04903dd976119b89329f0e1b87495916aa324584d5684065b0d40f502b1f87a2655bc92c2292870068e6d4213d0dcf762bd56b0603daa650f28d976cc5492ead47fed7202b92891e8deeb7ffca143971894af7ab581916188aeb441ed87ff8b74ecc7e99d3ca3f5184382275f4ace912fea94a2dcf4a804694549737ed03daa6b51a059c9804c7689d0c5fd6bdf1200d73027aacc17ba4303c38c3026cd665893618c47db806e47c43787b9cd039cf2a78ff1620e6f5346dbaa246415692bf20069b96fb52ae46c268cf40bf5d430f4889431a380387f040551591985083768c756f4384e6f2dc5b64a35cc0bc3e188a3f598a4b12282412349eb93d01a8728cb6eaa8e7b12ba5ca19627a5f960a115bceea69ca2bc4aedf9fc6186e54ac138c794a027651e216ca7fe5fb7f958046c6aebbb3fda5adbc85207490e7a280e6393f13e2a1731ec20dc12a7d2b6bda1e4cd06e11c2b70a774b6684a11e652243623297887f07178fe6b084015bbf4e258531ccfed78790f73c3b46ae2cd62d1f239d21058d9a23e91e6079b85d037ec628abd18b7c2910fe9397c908bf7c7d80c429094700c25b38a21281ba0abfc5df68a1a2ecb5283027c648bb21851f40645b5f40b9a80dc0a749a04703582cba94885ca18010749026d05fbd00f4de136c5f8859a2f63340eb621ea8d4fb04c8609410d2fa12c0186a9a0cb2d039a2eb2d3f89b630ae161acb15d64ae58ee9d37cc012cdd3bf5a3b05f9fa17a5587824bd071eeac9c58d1da1e1ee971bc5a5eaae4dae7eb8150a0479a5afc1ed219557cda46897d0de55d362cedb11b0de8e93ad94ec11fc85ddccc789116362d58adacd7b08ed945a9b070097d7548c13893e388ef9deb40b3c2247b2b9020e11465bb3c440c2766e6361584a01ed00bb431c2c817f56da1df6c211895c4e8cc3a02f9dc3d4f2d00a4e9241ef3fba87f9ec05870a8c7fec5202ee7463bde9a8a1668e6fc227a3f28e23d197917c960c2d2103260f26b6979b18240d6895e0790b25ff498139c04e81e67790be7df8fa4003e2877d970f6c9959711650c89177c3ca82225df43446a87799d35d52ba3085f367867a8f7cb540aefa35dec17d553563ebb9e5697b0907f481b7131f2ded36773a11d3e296c15c0b8193b59e937777b65c421aef92fe7b5e7bb1f102fe651c7a0a6116b831e3a689c97cb888972f1253df56f3d01b6b00a8ac76ac5ac2cb3cd042fb442d6367b2c6b2cd28e073855a796f9b4e10cee74bc68fd35a1f8f6e918bd68071cf19d7ef9a2d3525fbcb4a8bf0864bd2f647d779d4bcdd8ef0b868324a5cbb014cb5ec8cd8d2ed43ba66d1f0aa888e13be484d3e35fa0102a996e4400870a9852951ce9274cb0e8fcb63e158c1660fbae610e656681c0c8ec4df3b06ed1c053f8680722881f3af89793689226f24f6eaf688d3f5bd44d81eb43ab9a8c0aa3ebd0e28f509744c7580e970de7168e1e190eb4080be8487cd43dba1d542541ea8721bc028a814649bb0fc84100eaa423199302301b4b4d3d2bae725d70b2812f71aa41a3a3640fcabf86446b346b2143a4a93dff40c4091a41952fef8587802a4987d02f608924522d099eb6f11400e1731f22d3f9de77ec359e304e514f9ad32784432a49ec1e429cfe5a2c3f3da487826a73da1548628296d20b9b21b5bd90e462ce12402c0ad04791376bd897b33e94adeb60111bf8920e2c248a17009e0f78e6e17820b5d89ec5f972a8c28e05267c4276b9b9b6acd5aa10c6b5309d05337e003a450f7804e2732b54b0ba4a5dc0826d4b3f95c2c6b3f6b3cf2ab858adca2e5ecca18ff47a0df5a466838e32edabd20c8a3f6354a0edb51acd6fe9be84a29ea079a893ef628200dc8ab397146d849bff07422043498aa9f2ab389d2313f9d5a5488535aaf73118687111f05e767080d77d654a8e754d80a97fdbe2fa381e3dc0773a877145f369ef4114e0a682cef12584682da65f5f3d567cb3070694609d0c40fd91325a7ca1d5b6a41c7b0160c92d601a4fc1732d3c488a545d19f5c0e9433212a8929eb30bb302a636c5451d1c33cd1d40912ff432ab390c447561aa8f44597a965027762dc3660b7a11359e16fa561f980cb83f27ecbde484d8c823f014816417af68faba8b285cf9ce109c0afb47d5e8cff825311de8ab6f8ed36dea1b3d294db9e2e23f9e68a25978e707cb3af7e690000be0df076463e3eceb87ce9847a42dae6d1cefb35fa68e7a925d29141a6ce4f267efef0fd2d1122edd0d47a67c72eca3ada118aa19cfdccc06126de02c8a24197699d5925f6611a5d51b65f1f4a213527b57b6b151156f1066d8f6e586b0a44d69dd46e5da9b735e1f300ed4f6a37dbf5dddbbdd24a3d529b497ea55170689de61c55c915ae057ca900b8caa4adfafc9554702dd20803e9cc5d6d297dc1fcd0e92f536691e9439cd5dc57c202e95de6dcdfc98a53847d272a12b44382633142227f48a74ddf084adc205e4c280741f6890b96fe04a16196b7791ae97ef5b9c5a26aaab29acd70380dedd71874085435d4c203b7dda863b8be18f0477dc203a7a90b7e7a2fac5c18ea585ff898f64458474c348bfcae3fa7dd08c34b9f266c9adb6e42438189eed0fef4f0e1cf863c181152a38ab07eb5ebd2f7fd5bfda3cfc624bb24ab03cd663af601c284f07f8ebdd7e415112dc5615ed4ca731c7c1da954e9fe35ee25edb9844a8baf1a8c644cb9564cd5e7929cf173e34e8278382f48592d2fc46895f578abf7b66aa369ba2d780124e56b84dfc4a4ef43bc00937a4ecef7199813f40886dbad8997e60d1b164eb55f99aacbfc0282661f5eea64bf823911bb062a43ef8e434834b3baeeeaae47b9c836c1eaca79f81a5ee379bb7e4ac04474d6ebefbb039aebee245a3fe4b9e27f70e6e83173597a675514551263b7b80131048e4c79766f9e2a1f7eff6deb60ead692fa90bbb0e4677221565fc7db8dead566c46d04c8967080836985f1c79de1cb730eb0e237951585f9827bc04994e118ff2927a5c57a142976d75f21f93ddb2ef25d1fb388849698d02003ea77cf81a6e8a4cd84e42b2a0ca2bfd477794fd1139f89a2a3213ace1895b751e6ed6143063e0c3e60a11c20c8c0f8ae05f90a76660681a5dafccaaf1e1d15616c38e841cb8306a04588fff53820f14f8d9c61c984faa9ffe0bb36acb544952d2e7a530ee02f77aadd93aa69967f4e0d23150bc6fbd005d8ad7da9441c8069ee4e57bea302b9052ec9b56d2725a2b212a822669cd5dd7b04f5248a644b692e858faac0884408a6000d3f00a0d27183886ebbb82fddd7ba97c8f64314ea7e9d99949e0f64c649fb586c2ba8411ac7065eea110c4d529030f6d7e2bcf9357b6ca09e8d87d3b66309567a6a852bd4db4b2aa275040ab927bb682c6f463d10dca933bab25fbd938c6e0702728a432223f8e42d24e289066372179f56617a01b300b493f44a9d9949e0e4febd024ed854c472af61ef9797f0618a7e58b08810193a7ba51b4f3a6049dedda87871738631e4b1cdd1ad04703db81142f1169904f361a3c4917787673227f8fc8727a3ddb8a82d2926d2e8126e5fbc89a44b1a792257fafa1362e28d2a0b0cf4d9f59ddf75027bbb312e637cc700a4ddb7eeec0ed9c94ab2dbf7b843707a65301c5c1d96a924db0db2091c677eda90ad3ca45c6014714d5edb271b00152a5d79e53386e99cb46baa2372cd91e580f49f5b98cc480c956dbdef471851506f030ba85d0e3afbe8c5005c0b3487ee31f848e565f1464a2468ee5d885ad0f0862a204f8426b6b06aa5461cbf9f4e242f5ffbd708750b63fa2b1a6bd4a3ddaa39da0701bbd7fd75809ffe7605947614f3d6b83eed951500c89cfc6bd8a38c11a0fe79ac5a75faa1734fadd8d416afbf0b452778fef6e6cccc3cc73ed109d3b9a93a705228c1bcaf98f1c9b56018314565e3dcba3b3d7ef13fd55f9f92ea69bb24c06222c978689bca20caa3ecb9175286745c4c96eefe717ccc1c0048d70a366d1e5b7d0601fe78d3fd0a957b8330e092eb57a431965f6ffdd43c3eafd9c441803ff0e1b310c23741eb4897a10021a5e2e34986a8875f369a3077af3191a77276d889f25cd6b3011b2916f10f9f68a7c401591ed3b304b41b55189458479317f5bfcd26b01ca761cbc761cec0ad373551fd976bcb87531b51e727a98fe9695a3ae9cf979caeb5c83edca9256b66b6b748dc7fda0c13582a959018c99829c5c915ec0292471e144488e273f208f1c19c49ed0f88baf51255b9e78a7ebb97443fabac3e83139654258262c0a1623b1251f7127fa95001bc219842a9048087621d1c80a1fdd7c34ac851c696f972d5e997a809dd956b005014e0e845271b8749aa603116e57a71be099f345f22f69d2aecc31034c80b049ec92527b24da14de55559384b631aeb3cc1f24eff42ce444ccc557b76a573a3c801b98e2c48cfae675b2c618c8c71cc11c0b301644a9f4c225128f85939ae93512c4f4133431d29325ad6e6b6d62514cf53239f4c9ab196488159dc48a3113685f68fce392bf60519cf517114a41ef00663258f003fa3f2ce99868c08f366db0aad3bb0c043a9e53dd9bcb92ed3c6e285ca47e3ee9acdb826d6083e5edf8b4febcaca2e38514432b546647548809adf090e36c81f9feff20c86e68fb44e6b75bf258ecca9045a726b05d5cfd7e460fd5e7451e6227da95672381ec8591fbac1e23984886f6e256a8428578ce4092de24f1aee30b66ea24937076efe231865bc6d820ea9816e3677f325454e46feb7b91f2af3f01baf233c6f5967a2cb7f70a03eb60e700a721b277df325087cbdcd41aef80cf146cb2e9eb4b05eedfd68e6c91312fd0ac50e75c5c0532e2b6a11fd329291fc0ca0c8606a49c36c0325555f0f6774ef46891fbb5953aa48964946406f733a227a125d006b38df36ca21e237923527bbbb331a736407eff82e626874cf8ab4d667f36dd879939d1163e7d2fa8fa1ed3d84ecb0990c4d68893a1b19276e48799705928e90cd7297a9e8abc0581be1885bc95d4257d5d28812867b367b6c3233532f9276fb7a76dc3a0244d7414f88ac15891339ebb0c6c34891c205d64fdf9106af9e735ea20550cf493068fac0ce09217bcfe8b6eea6024950d3f3eca7613f47c90024b18d4ecf11e82e3dc497387ebb5e858ce45418e3565286d2c3407cbda2851b4c08e812d05c90d084319b6fdbed72c7fe9833017b40734aef73ccca8d5a5cb1d65dc8a166c1b54fa69046505d3125d3aa5f2d888ded7af12613d9466d397c9ef6a77c91ec9ed7f616bc62d6a7c024f00708e5424967d0486a2d1422b3d4edf25b502ed10e8f899d1d275786993dfd6142fd10f8fc69331c53450cfbf558e4ad049c5a1e16f065ad8884a3b385c183dfbf42133fe08041492282adf586380ff87114bf20e8627ce854f6d7bf5044c52ac37505f1b46649f1cd230360c2dc39813963fdb7104b1ca8c7988b57ed4e813dd2ee52d00b489eb4196a9731c40be3f7cf6d3c1224e836c949ff5c324147c154280e4bd0f4f96142a04558415ff9915c3fc3cee36fbf305d67276faa9154568514d8a169b62a29b1b7b88437cb58c8e939eb53d0b2e8a445e5569befe9fd0889c7ded3f0ab6aade56faba6370700db8e53b1d7e2f86e0e531f0c960c92c1f89fb255f2f4af08ccbb5b6b2e1f1cd30aeeb1415f78f910453fff23b45d4321455978f7e5cd634eba61eeaddc03e98c81d13ddc80e87afbff6497c6bcc8052c11f10a8f13747407d23d8af4c44c6a6914b28cf1b6b172ccc72914d2d2a522919e68516115c2d2130805b5d472cc532b4fba3b1cbad4ba4fa16a41b3b330e49684aa4abd5e70e5ded5b7c006a889a3c333583ca589ede83071689a81c43b60e9e72286772382c824e7e853e50fa079063c1c1deee6a2bc99fc9e09555288bcf10f2c5dc6eb805541096ecfec4d6ffbbedacb44204397e4e5bc88adc1d1519c2e24a353425ddacdab51ad30867174ea32c53e533b6ff7bbfd3dcb91934e32146ca092186f5083fde5840173a25e0e2ca2c052924fbe4ffbfbc4504d5f59ec328cc61191dc370323c0ba18d7773b326986018cd63d3d171744dfef7d5d10dbd2033ee620936fd404965260d913125ae9f0643416051d560b2175024b07a7778bbe2d92377c79dffd86b15af205f535ec6c66b64a59c6266b3bc72d93351425ac938c33a1a1e5f6987310e792d7cb98e1b264a0621809844cf0a34b3741633fdfc12e640a26cd2ffe811a78467a71b7d53ac55649984469c9b94ed56af1ef0d0d3f85c19c51dd8388bb457a45316d9717d47be35469241b020c06829881ab875a0354947bcd4ca5c7d65c2363cca8639c826e557945216663d7a111fc0edc2d17cdda45dc7f2beb2ab607c6c2c4e74505b48ee1015f395a4965342c2ce0c3ecfdcbe43781f5a4d757ced5be7500844315b321d5a3215e876df9a982637582ffaf931eee78154c69e27bf9b79806e7b22bf3a37e1aeac62dc5dc7903746c95dba2c54acc2a95af246174eb904a6db926643077435c8c781833ef9337d4818dba09aa3c2256fcb30af14fea50e162de215b90cd4c965ddc9ddba2235e3c3cc8cea6ccd97db024f2442737d8de5db8fff9d7d8d4bfe8fdb007828c9846f242553bcf6f6cec872b721887429ec14c47e626f42804150f87e6906e07c91392810c1f431307a8ca23c27c9895028da1c87eb5a6080a8a4ba66373d5be23d3b4c1e154aa83ba7f106acaeb38d85b4928c22e06cd23a0f29c61a6a1db21d6d6162fc6eab95c22fd90301571b280379e4b2a72a070103f65e48dfa9366be3308dfa742923d9b119572113dfa1649b01970d6e798fc09aa7c808b50756f7d64ffff4e54fc12f8c8224ae9671ba2eef64aa1b326b6d7cbaf77e96544dd2afb4603014719dab540f6de21eb3a309a21a0d65d6e4ff575aaac09601f5cff78e8e86befd1c1ebc913087b6e66debff96c6ef5441eae90bad08e0de1ad76d124986af0a418f438ef79060bc0932323af468934e44e7a06548c3f312adaf81a32fdc83615e97f66fc43624f4819e0d6fd28d12cb83c8504c22857ff3fe1f7c3a720626bb97f99376d231bff94c5d909848b49579bdb08131b02a785c7fdf0a75be2aa33e90d1792ee09f441242c7672b9114a9c8383d0942253d6a44f092947d578f0d19c878f6ea49ffd3735af3c8b3950c0726d9dc77e91e3aba9ea9679626170e80118c5bce9bd4abf97d3c2156fae403d033bff855bd08e29a2c706015016b381d713948b2625d24493e1c959add568c55afe883de2e1945b0288ec30c393ae0cc127b2d23006610a81c42d86ac58844f6f63e3d63505d48cd7797e23ef653eae6f5ec0e5bb684ef0316c1a034638885a7603281975c548841e1a1581b6ad89be9fc26bdf573dde5ba0cc08eff28bc1e8b358790995729f4a5a9afbb5f1d19402bc290d62078a07f4807d8ec9e9fa57d6e2019fbcff9290ed2bf93835b53b8f24838fc8ca74b85524f032d9434e8dfd1706fb78b360decdd06f1177120e164ef53a0dba9b7270fd57a946d7dae4241d5c39731c391f2e7317834e95bfb33b09077bf29e3ceeebd875b2f39db9388d6ba7cc5cf80dfafef25d9405c26d6b0652298478849712a8013f0ede0e9e121f18512f9c83c9e5ed2f99f9a90cd9e0209f96ffee95a3d3c8861a0bbdd63b09cf989f5f731d8199c9c336d113963ac7b41f8ed8d402ffec52e0fdd91e1e90547711e7261e64b685fd3904c16b9b150e49a8f6cb0b6c7a5c5b6f70bbc51143d470e1f424a5f1c6bd2a22857a355b6a8f9053cc9aec042e9b4ff25998b9c42bb8bcf1b6312d908ffb6a81246a001181d40d4c1ee6404b83c160ce9ea2bc4cdaa83864717189799949072c4b5fa57adb04978957994d2d178d03c06a8e586432554d48e3ce4a7a826a63705330fd1053ef302fdc803c6ea67d0116c6ced29c7709b8b4a2d81d93dedee02b500a7aed8fa39e62a2d0ea39965ebaa5c1f4ab926ca636186f64b7224a44bc79a9848100fe5836092f8fc63a1ea0d67545dfb93411305e7a2278dfc25f5dfbc1a0ade784a1b22900b905c0f6d474e9e05809ea685d0c8c59525f6dbf54720ec01608844c97f886e1625402783685accbb78f88b8ff57a9e44767f525a678bfa75ea1a76375dff73a15dd262c76a8a6009e9782469bf86c23daf2054a8ca099e622d594adffa7e75acff042ace8726b0a1a0a835e247573f81f3843153fc8187fe35ed35ff2cf113544453017c86e77555fc8650d4ff4cb0b93a26c3eb39ae6c3c3665261646946c7522761271a2e1567cf3f365c0ced4207ffd73855d8bf515230044478424b8abdecbe75638ef87f2dca860dc59a8d7e2f02c0b6fd2c4124f9647293d7b03b6aaeccd28b246058cca155dbb3203db091645a2db26ff5c212189d78c9e1d545929d3a7c775d085cc7779fc7ab7dc4cf716239a5ef0323e480c6bbe37a3d748ead73cc0cc50ab15c656d3e0fdc25a6f78a912e91f30c528b69209a4c6f95f604565a7a30334810243d74d1f899969d37ff72bc8ba6f4db05262faf4cca9c155000e9e569f0e59f73bf71a9ff3084682b20e8a9d2b0f59eb3b26da6c406e0200a2e0088b2fa1346d8a4147b66bf1d60fe2fb0daef81c449ec488c9bf45b40756ad873416c12b3a87b5c29038e49270e696d7b6f1fbf6c64beb4efbb0d26a7f198a9446e0849f663962002267bcf65e1566f82ae07849e2d357b3d0aa82c1b895a95be1f127fb1d359bc2b1e6a8b7dc16803ced8b2a8cd37e0d4ad978afac31e20b614dd88c43b65261cae9050a01f1d4deeb82e0084e9da10ff912f118829d0a11bc18da0444967b310f80067b874a3d216e0942a0f2b92fc7eeba891542280e1a00b2b05e9871e346bfd32c50621594067f43480b34253897890f946035c5dec4a59a2f537300858e8478016fa156ba12f1ee40bf6e89bedd89bbb46f44ab54fc1d21d2bb5f6874e282d2677fba2950569618afc73ae0fc10711b7b52c456eabdbc96d3519440b6fd107aea99b490715905a118e4ede515602e9771beb43eee746e0502516cd3183c9d7d470c62b8e3955722af5dbd04428f0bd86fd53807f333629249b87ccf1ac69167933f3e821db7a20dbb0ff50e547855778a2be7868050106bb0f270826880333aa27d2c55d29a45f5cd96edbd003eafcf697ad3d4ee26963ba416526517ee5b75a1159819e34ef70531be3657a19b9c23a46d1ef0d586433a8b7c146346e7d44b8a290c2ce0996ccbb16a2671b1d854d4e3822e8d8b9d148cf74317b11b0610d08c2a52327996881745b5152ec0847508a5eb3cf9869460c7f6540cdbd70403983ad3634103b0b99039c22873a43f387d378022a00d09345695fa95a65e8de22abe71394da2577c3b8d994ad5b18f201e1fc26f71ae593d4ff94ea493f46e7d5abdd220f6f2b0d57de211833f7045b576d6f50f2842f433d0eea0c51f7368276cc5214b711271c3abdf6f81995735b1b814306233550ee6ba6d73a0e044621fc0fc3c49ba67ab5fcd831274ce07ea8a35c61d56937c1dece6a0fce8744e2bd64f6dda44abfbdb6500ff3b9d10117d93ffd47978a658b08b9f7a5669546a34cac6f11981cb87c2652420529b0e94349a7d16323daf6712e77a442cf8e17f9d3d3cb21d5bcc3e41ce8c1f3e36030d85820bc7f24d333911e6484f1bbb1954800c43a9fd4f510ee3668ac54a0f8ef82b83f7218fa184b2f059104d9044916339a381d4936375f458a2b82ef7ea80ad1c359e639c363e5d3778655870e0a227e07e732838c125f58575bfd994a4c38f05140e9267cf4b7dccd7847c2e493ea51684db544a95c12e5706779fa9afb76d586e324b99eec1737b3e76f5ad6fd9371ee1af6a1eb5078e59bebe8919923d94780cc08c71882dc4f8350d00a47872053d98931248189350f41992faca9724efbff627125aa089783cb1e4db35355a8972ccdd6995956891cd1a63581f486a4d72ca5c6bb9566a30f8c98d1afeecb1d5810d811c8f2118dea082633035cdd367b1e72a021d10e0222282343dc727b3000b634ce03674314a2d6195a71ba506f96ed32007bea8d92d08a32f32b4d9dcef5ad671291b703996bd42f752b474dbc22c5eb3047e15e8e071a6a10b078822c364a1301f8bd1d1e32b92f275cb46676005de9eccb223cf832007401755631ed387898c4c91ae99922871ea64b9d58e94385ab0670602da5441c830a50a7145125329dc0938aee9ad1f46aa6af51d5de133ab47328212c6e29684bb7716d91ad2e32a53f45dc459ee909c045b8daa7d4be83429d5bf0791103e01005851141b0deb91897c700c699209a13a9b84ce5b2a9a2eb81fd5ac1051c11c53176ef0fe7db24c2ddb2aa695ca194dc3f43917a0eefe44a4a76553c40e3ba1b85a90bd05ba32b79a8bf431755526da32848ac9bfc526846643c4f2d831a2194e1aa3d0a8ca65fa380f735c5713691e350ce733921cd119db3818e03460785778b589e302c5ce879295d1d4406a32cf14ea3ce89d5a9fbaf4e93a4cad388bea39c00214362c35bf31e4ed365e27a38cd74ef39eb050a6eeb817594bacb3310998ad190dd67942a4d8b67b0d056c34482e7e515d91572891a6c787e6ff2abefb03cbc8f26b0bb5837485dd54ca28c34286e9271498de80e5a57ce25697447905daa11ec2ed816d708e9b5776856d4a49a48c888f1117ca3e6670079a390393da07659a3082ebaf72d0e917595411fc909eb5c17066ee884c7baa79d90c36d6f71fe01ec676ef10d7a04b71550d91002227149e0d2893cf5fcbade91853d702f08f02a93e9d324c9bde7fa07b088cd36ffa8e23d7946b41493624a41e91f34a921c33c597001e74266c61c449d7ec23ff242f9e2d0b9fb20a8e92f4421c8afaaa2376cf33b853185e0ec172df56f7ad728406821fac5bf09a2392407f4606bba1157dc8016658cf5a8ef3ec0362adca6a4de559e41563fbbf5acd92601c143f26c7b1a5de15b02788f67e720dda5e009c6ea46827d0845eaf36759790ee68577d8b0a2ce99103d4fcfa630136f79de6144b5655c0605f53542d7752d225571a50d6e9dddde4fa7b68054041c1853cccc18fdc34431e219d7396d23df84d2f4027b43e63221ee5d782947a56a7cdb900907f2944b335b4366072fa340d1fd6b59e0b404e1bff66409283dd412424d444270ab2b1080a5db69f573b19e5187aa44eb38b3b6eac0afcd5596e7c2ae67da6bc7463d49306c0b3cfcf2d4992be77ccd55942dbb6dc8b53d9a25e641aafcabcba0b029c3b42ec573d7374aead140b0b8b753074b8a75997fc9a3a6b9318b93cb18691dc3daf637930add74422e34fa0469033f50023d70029d04465abd9ee8514a8ff7ae35b8a247b2d6ef0aba98fe0604ca9543060c22d7b9d29d784274cd8bfb2f8b7a479d5efb445d3a907bd375093caab2caef9b757de7acc47b6509efeb38d2cb9a23baa9618403757ab1add09402abf4be58b777c63aeb8d08ad049a88a2d458cabbc73a9d5e80fe05ea3e251f6bbe6358f43d6095ef0bebfe7b1c946aba6f65e57dba7e1f3f41cdcc5d2f58e462f5d31f9c0283dfd2ca4c319de777c4b966ee1b5bb60c79b434e161b5440189aad936acaafe399956ab77160dd214220c263c4c3882fb9b8f06125e6bd3fec4d1d58ef1c834415088f2a7dfa863d9c6485c612daf4a2607a4619ba10b66a29c4bd427d1a2e7be2b7dc40b88d366ad02aeb183bea6123a836131eb1d41c959016b866d3ea7438ee3720eae89fbb48f97726cac690b932f7655b4ace2cb6b24492045cfb3f73fe98e7ae235f287b19a6dddfd844d653f81dd7e6b1459c4a45c185d576ad48fae80e3fdbcdc0ef2b3a3eb8ac0ace9bc6055e2190058a6b550820180ec4432b2ecde842239769302762d919f528c566f12558147c192c87149710f4a35d74483f59420383737b6d0a2438fc114cb051158c83771e798ca697cb619a6e82a52b3656ec19dc1377dd54de6b0e471e1c4ff8ed2e2ad25e1ade5757675f1ff5998b402b1ba81f2d76098d00da6bcb9e73810e1cf372093c8f292ad0a8c8ff93179b5c05177b8b20bb77d49e9f76a399cec173d908358cbbbd5fc4fe10d203bb6df7891b79c2ff9f6d90d1e9b4039d14d68c513427c963e81c0a42e735dcc6b6efdc2f8791a32828af76bb42eb4269e52e59b374d6423502766d45757398a1ced52672e3e9ba68ac0c2f1492a4fbb1dfb7c201ce97043be5ea87999bdb45f10925d7cea12bf479752e21af4e0cbe82c83bb39dc070b98d86d31752622a7dee642796644d0e67c43bc186bffa14b8a84a4303f7e9499eb62628d5652b7d07287b8cfecdd3b2eb40ef72f00dca4f613ae5942ff2da99cd05ccc8295994e974b80d30b0043dd78676c747e891dbf65e81c7bee7e800b5c1fdaf92461baa15fd0703f071fc495c6e8b209d8720fc3905806a0f28649f5249cd3f8e69faa89c804df7824820f6c30131772f8d67b835062b11b1a69adc7d62bed77c04e8f740b84d55c0088a84dd3d250ce1eecf58043a9af37f95f92284f515e91e16ff9d9f1b24dc2a1a79e7231fd5465a2100251acbf99e8d2a8a9f0f5174601154b1e37d18f9f7b027adc06babfb06f7fc6ecbefc29f365d97547ceb116034396560b36dbb92f2eef8d99046da00510b44911da8c1e5d9e551c5b605bf714cf4ccf91f84956377960464e23f34aa9f187af7746d40b49ad807c202173819419847faa0b6a1264e523f5c6e16fc7b846bdebca0c9bdea395493558a6953d37066169e260ab39666f2a70192ae41f868a64bf1bc4f1e7e5e519dd7569089ab333fd0d1da5acf4af17108341532e50efc87ea7fe6544d3e64f76dd571a3d60b25d15fc7c224fe630b3479a6c05b622c65984361c9b52496fd667b30da009c63552f5b29803d38af1448aaa9c90a6b04ba49183c4e6cd2abe52e1d85dc3751afcde3d22d40e16ac46ac3938e2e8210cea7ebbe656591ee1512ae94ce220f10ddf350b1e0a4b1c4580c3b286e30136858069ff8839bc05e020e7f6b24e38cb24ff6cf44b1fb911f118bd79c07b903d8ec680f7af88cf4512d9aa4be999d60bc0e6ce3ba8288efbc64301ec15a663254adcd2582aa6e5a999550813d6d766324840c5279cbd6726691dd9e27a16c2594f78dfb50a675fcc0da3abe5490540aabc0a9014c06e3fd2c0a901198c2e38970973d5f947a326b252a1fb2f9cdc8f702dc4a1352b1c34afa7f217017a97570aafc16b5d8cf359bd81645e180667d75004eaec81b4fc7213b5fed136b23230854632b7e57a5f4aeee0e2e2fdbc4719a51b5da38fac646ea91b43fcb68afdf63f4099107bf826f9c2af160016e427ff5e1708475307b7fa767738160332419246cba8e8d6ef29f7dbc45bbfcc6f5f561049bd287d64c9a33aee797b2e6334436d02d0a3ef0462d075385f59fb8e1016c5826a0d61165193f448f5cf38a9a9a79db118e5504549964213f1bc870308abe6db12acd9eb0ec661121266480a0e1cb895848eb96d9e670884a4edb81b6d2369df1d2b6d44c684b1a0a1948e1e2ca1eefd481c986d79f9708b037940247a881c9641722e0d544f8e26fdc554d0ab06852d11d98919cbc7394ca5ba63ca5c63cfb0b52625ee54a4cbf0bb3764911f857cbec095f5da21b891fa64fa8905d3b23acfb9b1727d6fe642bd9f17132cd075df5fb18cfff89c4be8842564c5a4fd667454ab77eb3e4fb19332d075973587a20ad9f633a3075c866d9adbd07a416039a2e5721423aa0acd290ad34b273bcabd551a3973431c46afa1114a0cc3620b22a0f25de15d6518fd31b0e6c904cc2fe3e856c5a74ba532b800ba0b7f9e02516dc1f6ec039572e5b326005e57c7f5d25b092fef53208504d65ce0136f76eddd2c85d440b5916e256a3fe26c48fa6d82b73e06af8003d17db91e9c6d4262c627fba7eba92ac935625b0bd9826b558d1d82d4b8c78430b4de223d2e839b533d03d5a67624b48f1367a99090b286ba2ab1b774631998b0d1fb2a2402547a36342d7d2c2ef4af69f85be2f57882ec4f03bf84e632f7152de272fac5ee6884405f48fce3580518d56baa9023c4444787457a548e8e8c036b86db5489f5a50513e4d783e813700f466bce6e8989920ff42eb36d467719e94882acebbd6beed302a0c7fd5a9b871bbeabe68ea5d0f15e494c1ee89b09e3a0236a48d213c8011698d02b46fde92cd49b4005e5df438c103e3aaadcadbd6d5ab4be6faeee010b7df58f333dd249921604b5df0158bf3e735d27b2adad6a2040ee59e3fb16e6f07449ae9192dfa21dcababbd2db91085b44d8fe1b0da2961da7045d7a3da205bdf31639257f7b816c36d2c600617e33d6f58ea2dee480bd12651c5a8d5d4ff470a4cbe05b129efe1d14cf7ff6e4406bcfffaea8ff8b47e225e3c9d5cfce939ce9ef548eb3e38cf032c0057e70c1ba240622cf529f37a63dd10734893816e8c223f818e23932a559c05408250b5fdefdfdbf761bf702884feca3cc6c074d44734aa21bce892fe5dae1153efb6982fc0a54c508dbb3a49ce94766f3423519c2f7aadcd70549278e00b0beb7e5c6cef1816cf2ad4c38b184bba0c52ad8e15ef3b1d3810602ffd0cb95a650a0ccd0b7ae4646962f56b1671e1becaa97e53e80a88400165add2071adfb26d20dbc6467da9580d12f27011bb19e9358b7df5833a4ea5e26352235b82bc2bd1cc405b70960a45d0de357ca5a62d54fe75db14f08feb3289a3c67146411af0c91b21897775a5029f0b6224dc6bfb9b035d23678a4d3287e5f94b13682485529e3516389acaacbc45f5211de4b759d2a1a2896478f579a226da381cdf6a00a63d5a558e58ea23f8c63b0bb69911705b684e049eef6e1afc645105b71eaa007eb6667eaeaa8a3b9173ae20c11b3918595d783b4dd1ed6feb2814012537b03365438fc38a4ced1989809e3ac07c1d8802c149e7e95bdf63b95adcb3c4f954c5e26e4b03b3dd6aaf03c602881185b0fcd74857c1f0bb06cf041ad2e92db465facf2b9c58d82c66579cca6e857001336f87203f9bef0cec45d3ab8867cadfe87aee7f0725e6d01dd3ae4097a6af2bb128e0d0c7e99fce0a2a193dd00eec9022b2f7d37af5d71d9b5e959b1bd91bd7c1ae167a0e2119d2ec47cfa95172410a6c7fc23f3ec0129615719d8d1a61f826b0b3b82339f2f56bbb650b181d45fa9c74c40389a7feb159d241b2947abc05c96bd1cc5b1603799e15588044f4687050f4f04cbabe3dd553126c9572f269fe2a4fb34ca6ea7b49fe23bf2ea4cf5e36347bea54ef9de563768b07efb7de00ceec68e182216afc9717d53ac046bffe5398d6f5120d66fa3ae13ee99d4dcd77a6d77a50af216bd41867e501510a1f5ef36db99d4a3b5524c8990da29865ee6c86094f378d4a0f5e29d9aa684da005cfc17be79db7a1ac1a2ebd2d271dadb91738f668ef67b3fbef34a2ce511563342aeae5bf895ba3e50175b7b73bd276e1e3a2e175d605cea2a099e5c6f8228e9db8ebdb385250006d14026e0432c2bd4a54ec2e685f76d83a5e397bbcea1c038d084881f096bf2cc1c845cb16993b897d49d7624339ca9695c79ff507045bb568408081714ac97354dd0335c590c6ffc27399285f9d12c5ccc68e1c4998ad3cf2d637af69b4fe220a8d6be3342c03dd4cf78069f5f15858878a98ea44df5ac5a8d049e17316dfb6e0563166c1117995f574f762c88b32e2456f23b2f2b93dc951576aa118429cfd8d5fd8642503db1e5a5963c7a04ed6c7693bad58df2712f6485eea8771eca35307ca78ce7c159b3548e970de8e87aac710ea75ebcd7b59c8f0062e1be1b67369e94ae665450ee45f2f8233932455789f4a8b8f33997cee8a40219377d044d9d41be99e05b8f80d75e1f1b0a1219e6ee881ffd2cedd7e7339eb754082281e25d10e897295adc195269e84a39616002475a88e4e8714f94fe816d318c96ca28239023067900d8480feee49a9ac085b3341e047cd2dd0326038d6ff2bec36e02e7eb89699bc80dc30229010835934e777d6d84a3f2712d5b17fcda67d490216c909198dff81e94864ad856e81f30514fd9037c0dc05ff2ba1d2f88ca460aa0a250e815fde4c02749f8898ae51083346883a86a2b0ffcb05af014b222757ebbd6918080e8ba8b3f8bee89606ba0915b07d09e503641d00d7ce3d7d27a2262bdc53b15b5640252ddd9b006cf47e288238ce5f537b5626f9c55767834196369b0d74dba57e66782755113de7afb43803f14e9b2fcfc42aefe650eb254c4af9c90555dd882ddc8978b49684f345a068169611f28bbf9d05feb8a72c8197f4513f971d33dbb18cc6c34b7393e7421333730d8224e1afb52cc3050b9b8b833eb705282ae7b047d5b35a13c4d66719f4b4857fd67ea608fd61831c2abfef6f945042ec0dcde450f20597c80fea7af050f8dd87f56e539e55e47659e75b55754a1a3b84d8a5b77aa99b9eea0df6aa5ff107b6d122c3b627405153aaa895f41e724a9adcb42da69845fd73c8ca23753de25cb2417f82b799a011af00ba8255ec7239d020e814dde9e7217c19cfed96c895e7ea034c3c5573b5362b421eab987fc78ca634378ea97f2ebd7e09879e725c0a8466878c96c87f78853dc11cb19deafd769a237e4ac421d3c190649645e8359d79cf6a9f28a855023e72189918a40a1d7e9a12a91e450331bda18e4fc1fab647721cd88de33e3e354351aa01fb4e498d023d7c88afbc11761e31eb979ac19e69afa73697c27b7ed7062e56d1e6a147596c22823b7349e00b43773b97b381856b3c9bd3099412bfb0f738a9f1041aa5b93230f3a3c63e13db3b1050de58580e8a2abf30af4b89d53fcc5b133df7340c16e132b0e7ffeab6327582923de154c681c711661caa44b0b5bf2ea0ab7af213f9ed19e8ea588514696af843053a41855dd2c0e73f081c5cd076c4921a34080fadda24e62332eb49ceca183f24675b84720b220d189a9e5046d10e4f950cf9c488606937c9e526e75c016b2c40d8be0efe9992212d3353c67d9298199f4ceebb6436d99cf398ea7f9dd2c4884a1040b041652645416394bee4f849862071e98b798ae883ac91e358041766616b766858ca230129b1644bdca2559dc5cf17c833e69c419bc09af734ac896373051a3800ca3f3cbe51792445811050991f97791d9ab738a72fb73aed6c57470b0664a7ce1491c7c3d32bc5dbe80096c7ea402073be4ab968366f84dcccead2084f5c04f89ddb91ad8a66ae0a32dc8a5ba7491baa8cba3abd95286ac0c7535a6a9dd57b6e3e58b781791021da48cc8d622954dbdb75013b8a2c3445a520758e87088e85bd63df2fa90c25b59a716e3a36557895aeede3b76c3ad10da03eea911848d530e92c17a370ee1ed0cb14c90082523dc8fc8bd61674ae081d8d1f4bf01bbec24ebae1207f2dfb37facb5ce5fad1e6b49fdb98e87e55a1e1f6badc29eb4951dcd3a617ac0f13a940d10574e090e8b573157700991814356329b45d6da12c9c2ead8934f10dff336f47f885c7092680f215a6aba35fa8db6f9ada226e230dec2cb117d5575c7284d339d1701db90d7ef284d41a9422feaa7ad2d7fd765d3d594ec772bdf23a220b9cdba043686984b46ed1ad1858681ec69d209440206409acadcabbab74693aa9b20bd99d61f65904da72a062f1f2fe6863f3bccc9504cca9ea9785901882d57c4c289bd04cd052673112d66877743f51d043f4badcd09da44e53f5df8900b0123b3851b7c9a9de4af3786d5408a115332365756b6fcbb68f97fa1d0966978cdf40a23db36a88cef49d07621259b181591ac51017db73316aa55e46631b85290ff4a56e5e5979a8891ff1d78d3202e7b0ce0a69e0d69887e367431d26f82bd9f8695853afdb2931c3f005da0daea24ed9fa71f6e19f19ca294c839a7372765d13a850b3e8ce89ed82991e4dd599ea34f4e97bc79aebebfc78dfaa0ae2c604c33a0718948446d8e19e4bbbf4191efab3fedc3f2c1009d0fc630353a1aec1c8a62d4974364b1c3c34a0c0875106a1abd1b03c7231f9b2b92b5df09a410c716cec01602ba41aeeed43480d6348e53b9a5b1a534301259e52bd97cecb86d53921f768b904b9039c02ad381cc01a822e3c09187f291151934b124849799df3378a2fa7ec99b7046e9269a8da14c8442eec48294f4f6bc19ecd69a084de23045323f0870eb56c2bb174c0247ae073f68c7c66703b4f65b5776bcdc80d5a1e4afe5bc3143f50e5ece13785e32ee3017cd164c97f88678b30cee1e55421762363a16f13f1b5d8291d6b9d297eba516262ce54f296fba6981ca342caa998003b3eec261e59f6b07d95d6c8760df5ba5a69c40cbaa2d6a34202025c541f17327a914b70f63f58956eda58f2a4ce33f8a58e593e00beb8a90b5b5267f1320030b582474d7fea246ff572fa433105cc9293d93be0d4e0b40dfbda333e9293ba27cb544dd2e103dc0cf2c604b339b05cc21cf61a9ccd11bb9b54c080ce1df0981311a738078b145986a806d84015b9e3060749b33e06a83f22014431facb5b46e63aa62062e8d2f881ab0d3425203e6166c81ea262814d82dfad08169f1ef969025747e0a6275665fdd4765f165f038adb43b6a414dedb4f8fd9d89eed9c741734c50a65248b5366ecaaf06f022c67954686a6a5d5ca4cba41ec5781092f92f6ec8cc395ba604e7ec085eb7f35f4604e8a90e0c450ff2578d97989d65fcc0b1a1ce00de0f4cfab0f1d82294ffb5a5f2bf48e8ec6d23434134ccbf992d4118e106e44f7d2728b14eb60b10b399847935bb81b341f340b52a7652c70792deec1c5b87603dfacb9ea64e46801d192e05f277e9343d31773f76d501fdbbd813142e624bcc28e2680d709662f34aa3a31a7313ed495c8029c21595bb72d24ec8d1ceeb33d322786f08b0515173388a9495bf207e68e5af839551e81ff2986040e3029c70c3781e4294502e036fd4c5997429db23dde0ea305c4fab86fd2d0b3e01984d165f78b4ef9010e4216e76222ecd86561ee2deb2fd037f30f0f9fe6c29b1008d189014e31650cec4f9856d19ef7c937598cc8aeb83959eb5991bb613488908709543306e3a9443bb68697dc9d5d097af2f0ff493a2b3acaf380c4e69770c6a848a8a714755e5b7438a108febbdb662a1249455c06efb964b4323126ea1d74a2b820dbf4661337583005c610807322f6c5d10a9a19643a9ed348aae15bb51ad958acd98bcdcdc32e57da4542f1934b78be1be3ccf8630c9c5df9096a4e9d292b7e4341027d34fcbc470261568057585aba24eba94679a7babc902e69e8f98f42eec783f003b46028b3c35a8556fe318936aa3f5a208d20eed6440898f19228447f1b7c6d9192bef32f7f6a9897a8b46fff88be6cf0989bd4f5db95046f903cc7aef1ba1ade7d6c8303d1ee884477c726e925b4a100b7b3429a30bcdcd3e67e5f6f984e0024c5a4ae0ce58b446e6c2ef7674f6846de0824a2ecb07fae6b3e46286762312c6160e0a43c19d40bdeb5476d4ef04cc0524a06c299aa9aa96921ad0eb424b539b906d9faccd5efe85308ef32c89ebcd80b61dd2a4517050db6ebe17fa1f055ef758629b843588982af59007d5e5d698d23b3d3a3a00693fbf7b526c7f2ca1af815e8382d7d3f7a3d91f1e6a59657117fcc5e3eafbedaa27d5fe711f7b8241af550706de38f67701e6fb8f3be0ba5a40a3db61ae5538ad68dfdbc014f0f8b422b7683c2839abe27c9e6c60136bdaef46f19b0f0e4b4c5e932492b64e9236c8c9e94743a5e56d55c501f2694f8bb81f67cbe80762daeb640bf48207a0969e3f5e08a30feac3585ce95be82d90dd71e1d1e3adf8c53d7b5b24047b0e0ac22c83cc6e36431eac15ab8352affd2823ed001405d02590cda39e11d83a65a4850ecbba8c838948c5e4849fd00c476aa7f8e7216eea964016473c9f45a8d0f3147314a6b480a4843c7ffaa197d0d21bae0e48f8c5ce4496a15ccd3c18480da13a1be693d622ad0191ed2ef44ded3d3cc628591dc0017abaa6fa5e4cd488837e2fc147f77ebf7b7d044c5cff11fc0193baf7930a3769c326eee3c4d2c0255db9e8600ef711c858cfc7dda783e08df3e0e54ee94e2ecdd42be7bbf4cfe05702cd69aaf5ee181153c955713821bbbea11d38c7cc0a3c444029257793742aeb9c61dcef2a62ba68b6bfb896b8200f16e69259ef96010cf4bbc645ff5baad6ca926a7044ec7c7f101010ec842b4312e13a27800fd619a8f37188430fcf58f99b251ada9b2abec221f3ed47d19d0378c104600e0ce0c347cc88820423f3c64c26a64c8e4fc088fb51967e137df65fa7d2740bb60592f9a0fe2a1114debeb51e2084f6d2494d77dfc2978fe4761f7faf5d4f37ec1ad0417ef49d04c25ca94119ef15b83807d22f6062bd9e9fa1eb2f71c5ac1784d21a50bfa17d9c99ec2a5289b61f220aa682b3566d4b962d6da7c3add95ff8157d92c74e0cd26103723c398c9817660b0071d3c917828d5fa616891993d04b498738f0dfb675c940e0fcf27681419d27307fcfed7c809dbf9378fd09a8ae47f201b3c9663c03a71fd174017c9f5a4e6df9cc9cba2632e0018339560ae8cf3fa7277eb1c10c776ccffe0be04eeae4b0f53a83cc1ef6c75c3b86d413366f64bd8e5895c53044c9084561e5d3c6bbab797d64baec0127bf7d617a98362ca59d98bbc901606869e24e42db2b2d1d68c97d6620dd59d6c50bac2bc8ad529a910a452a80b3bcc03b1441070d518eb1e3c44e3de07283135bbe0aa3a69f18364ad8873a24a22c85a2110da3ce518fe222ad803e97633bac26884247bce99dab4d45b0450cd1b054821ed55040ccabddc5061001070b94ce6a73bc6a76f1a465def94b44ae2f10c9870c54fd3f6e721cc26cb7170253fbb8dab8a277599594256862b4c2bfbacf096dafb0e6bd4c8b9cbb676e91c4f026d7e43f2d89cd9ddea1c7c68f29254e8224a1a757dcd924f5466694309a2ea63ba2ae43a5690bf967d307950c63b4808f67d64ea21685ff3b701a7548a38e45e6c92217a70228e87fa0508f3142d7b9fcd6298257a233b6b9be7cc3241ae5e4f99f8410183555947aa9db2aaba044257f1ad243894372cb30a19e66dbc59ba7397c51a47bdb961e4d8cde0cda1d507f93533f097948aee6e7bab656e07ceba11ee02694f49cc016b20ec34a85f7418878e9332b69de2ec9a86398a09e85a34b55a81fa7698d7089de43746b8cf70b14dfc48f27a8e46727a25129fa962d01cc0105c52d2dd1b7897b1035b8c10600cef1f337aa1c2b7a44ffb3a30bc492800d96c501b6641e568686c1e0455f7f74de5e8e69c07b36e94aadac726cab93141513a91c9bd1f70fdb9ac94d5d5a58c0a69be4d8ea8147ccfa25734e724bd50d9e2c04a8f72ff42ec3a30fe0ab54516ed58f04c278604d9eab06d4fd432b6ca11bb850eaa3eda4ddadc9124c4bb3ae858582ffda34dbe8680a957d965acdaf05cf66f1a0a5a7b7f2bbba7f799b56b12dcb3d1981adfc679b652c4af85eef479eb89745240de458defeb0be76c27638c185d578040d82467dff6e5b9d0eea7b0b4b96937954e40fed160e149bb0aa14684f1e581633a9fef9b97793b5927910467b98938a829385a1ab1a18dd7aa482afbf6f900b63227216f75632b47188df39225e2afb058b7ee2fa85a57657f9bd3d2a42b0cd66c837220dfe5cb5d1b67f26cfe692d866bb7b292ee650e45610ae287c125e6aa610e876719cb83036bae405e25a632881e879c9e9ec23ea72d8ce0549505a8d18c559ad85eba3852adf7ea908abc1f927001fc49916c2c23ba651e350cc1e0c3d40ef17796fc59dd388712937a09f6aee060acfb5d3f52000a2f4433895a9a60e4899f674690c1646b8c7da3f54a80188033e65eb4ab6e78ca932feb3a242a7c2fa64e50150da7353611f4cc9922472ecc50722996558b19af1e45c3a8ddaef85b3ff4a63d13fbdc3995e936c0f648cbe30b31141aaa9718a0940026897ba0f408d57af8df88205993151ae411480e167917b23fdf643cbfe61d8091f4bc469faf9abd47cdfcbf379a659b45a00977b9d90d3e9877d83eea1a92d7d4b58102f5b0e2aec0693223e97d9713ddeb3760a83d9dffc44579a1e5730e904d9e101b3d08fd5bac1d8c7ac24e812ba5aab5e9e38a67d0133aec8b4813a8c8b2c69721ceb05a928fbb9450274e3ff5cd2639a77e7047c2311e043bc3b8fb69605c585183283a310d04777f9e1ad99a12ed62baa7dd0026e9474dbbcd80c6820240c6d4e712cee2323991f14a033fc68f6ba63334daccffb3b08a628c9fa887f8c4c6203d6ce2f4e80052bd7c07fe31e3896dd113cc7352ddc0a10518776130c984648b61d0081dd26f9ac8b21512af4f0556f42f37a9954e8da8f86ba330da21d7dce6cc22dec07ee54cf89e7dbf647994c0eb22a021d3965e14522ae13a525c5679896ac1c47525f3d4fd6a8be4a5a4aba804045fec0696d8a63102937e6452dbf5a4618fae383b17f52e1a22e9e32730d37779820afa68be87edd145a32200e2f87a50666d6028957e891242a298fd0f47efbe7750d71a58fb6f9413c36fc9caffec4c7b47e6ecc32bf08775b4a589d90106f8b908a728a2613d9ed4b2b42921d994dc676643eb9299138d8e9d614feb48cbbc53437644ebf9f45633ee0f6d320b31926ace2104204b7308f5ab23fb4c83f8ed9edbd116693aa1f5c08aefe859ac5cdfab408269d45af8016313e907c44258f5144277593a50f257c5fd5612842e4ba9e9eeff1dc930edfb232a0b5fc11fb4d9a603e024e28b0b59081b668b3143b5c48e5ca93f356cc5d67cc7dcb500557bac008150405126e6b4ee2cb7c3c58dd7597f73016274318a84966f4df793176daf3e53d7da284cdb0c8f089375798fbde2afaa3957971c0e0c7d43f61d6ac593c416d39f15388350e0f6415799bdf476d013d11533f933e32a49c15df5102006b778182cffde457c402a3f847a25fe5c38ab26fc6ee77a5d56c8987f738179e070763c98ec821012cdd06f047ea5e81b646e4b7803e83727033521a065fe81833bd0e3c0fa2186b5213e7e63c016721781ce3500460520fbab387b0dc20172209a45b97c9e401644e8355d2c9583a18b202f12d48adc191ce25bb766ae736ff987af0274138279626e80606b186ae5964737499977af2b0152ca340ae4f442e62d4a8767bd541e770e948496ee2dc55e3833d2d509d247afc8481f2f5a179ce1cdd2f1392a6cc487c707c53cf00758380b79428be296a4481f67b1333902f6127c0909f17dcbb215e62cd38a8831ae58b92227a5b084b697f2ca3d799562c898862464086434beb882ac35ccc391ce3cddf3f17455e88afccd4a5edb79484aff661511e6a22cd6621d1aaca13c3c3fa3001bd31d98fc0de9e930fca1fa44f02c928fbb06bfc9083473179d45a5f4dd35aea2cf7c7341f4da0865319254fec39964564f718fa97e771cc30476ba7ce3dcef040965dc7d280c0144938e77bb474c7d0501b2159ee10b44038a413d13e838bea5b1e2ca9788d431c0f305ed2598e320684b5223cc9f021a17da1bfdbc0625d1ba37e58e805d03f7316480a895fb1362f9c4bed124d0d8450ca51f40ba99799f8faf59ced4b4d596e3e1f9c9f24d8427b5ae8d78b3011f170c294e4e896d4e4258653f2ccbaaef606f1d9d9fc87ee555ad80b0d795b919519a4b045d3ac7cf6d7820d285720818cb699afc3a590a77129a6cb7105ee53c138c3e9a4ade124577be895b09d9005939c36f2756b34675135e2b031738e141cc99a26b11fa73650a11d9812bbc39328f8a50e7bacf299db11c8db4daafe9ecabcddec66202575e84a28a5afd310ce37da927e92aca7d710ecd023c241df14c5fdb9f81b2b0f288e01cf14579fa9402e33617c5ad2a7f4e4bc4828c213d95356de234c5368932b2089cb32fa43a1b0e5f9eff0fa9900370cae9c34e171690712e36b6cf791cd97a90326b0463da25d15414a29921b190bcd4ba4bc3063a1163c997464bbd057f78f6be1e8a39070fc427324bae665d73cf42ea14a706dce1e7dbe66493e9cbd1db5569e49f92386605122fd7014425cd1f6e8474a28f78aa712426945a0d2a2567eec484ff1c9910695b0ed5218af54f18d556ae664226f266a0faf7fa83d72a3947c563fed3f19f7c01dc836540c014fc4d9a2741f688e4576351af543e6a51b46a048a4ede2f764d14dfe9176ca33f3016a43d08d7fc4d65514d7c5d0e223f6ae2b0a37966b746d915b1edcffe0f7c6f801bd5166b3eb36f7b72533d566ce086ec7338e6981e01a0a94618ce15868ef0490abdc36cfd8a0164b141c3637549ddb7a9f5be1affed78439b6ab4ad0e41b2b9bca9345102179513a1be156c37c43381cdd04772c89d46ad80d130e5ba484dd733a29c8b7903ee0a0a38b0dcccf22b29b7fedec66156422620813900794c85b65ae7161e2989bae854ced8e0a40dfc3e02394daeb778e775ac567f872cf271ac4d85ef5c27686861d22aea22587f9aa36a490091dc5440b82933962057c5a290fcb1c13bc6d5353eeefbfc64ed86c72022014b1f7a3c6d1572ac6d11cd4aa30867ad322c13b122281298215f2e12ec3b52b0472ba6aab6fda5f4f985713990b9b17ede1ef71e2771107eea9a52da4b68d401c04136024d8aaaace48943cdbc64ff2a91a4b4d4df415bb9cefa041f917ecfb8e508fc81130b158cecf4bc8cb0361a6e61bf3c5a8a89b9026cb4b590987a2cbfc40951f487f304a2d0505889246a18eb99654ac2f959446a18b472113801ad11f9e4433b71c523f878e1091c060b934202c351021bcea6b96dc29fc82cde61165081eab5da48047b73d9f6366f8c54f3b901913b7cb0bdb983354c2bfd5f08b4f0d46758fc11ed0169114812bea494e0924deef52c6b8f6e3507f57cd4b7f665c68d7b1cc7b92eb5ad358a5908672f4602f33bb5695d6ba0cb927ed0fb619edc7cc2e753474469eb7faee7a530f523701c410cea9bbaad1a698e859adfe6202d0f4df72f3ddf23ffbe13931cce9d0ff857bc64b04aee30c5798eb74dd71683cabfff8b0928294da665fe7b3f55dae55e6b6ced6f74597a4ce1cbfea47b0c41e6675d8c76dbbf4ac9e2bcbbc44cdc866eb60d2ebf43e96d5b97751952071db4bc48ca6c211fc686aae8503f945596de4fc8a733e3a15054639395c1056bca079e86283df8f37b911c877834d71426481e228b8e6b47cfdffbc7de27242fcce20cc26bd20dcd6fb2acf73b61b2ee76e9310e66e1c7da571fa712b6f2e371df4d8caa909882e4e9e4346317282c59340b3bec6c50e0942424ebd8f89d6c84b7df99ef7ca5fd7e1943162e269fe8e0cdfe097a8d641d7cab3861aa422188ad36fbb26c73d3c5c32f4efabf2732cf8f6a32330711c8296f79ef9b813e05ac516d81205234adbd9be9618bb07e3b05de78bac70d7862512e00a230a0a3b9f25249a66fd8ab31f7eced890228c52c47e37eb0a3cce6fb0cea844445ac650df13950d20b70e2abfe7e44e3870c1d80fb1003ba80ff20662da52a17fb67c076375c795823a8d728e8bda3adeb44cc766435df931b32601f7dca15f78044c29b82a17faf9692544876370132fbbfab7bd7396172a28bca7215dd70a257bd3f4ddd284d9a647fbb69fb9fea17246a7f4dadee09cde9347d3e876bed94195c3c171949acc191272487a2b36e2c0e9766a6cf33b1e049073a7b58c4320890930b820744a01c843b7db1a47ad90308bf248699982f70b98c43300702fa1538d33d301a1539c21bd978450811e2d671b9bd0bee5d6ccbc4272912dc21c58f626c47039139028d9a08dba5b63c0b001357cb4eefe5f3cceb59f5d1aeaa5694072ef51692e8bbaa3217075854ac3bafc319fa64cca989948dc98c6f38844a117c2582ce759e77e2ebad017ca9c9d9173ce0ccd25ce7e0559b73d0edb01943ed3ba3f4a39ebece9d8859e644a66e5ec456c63966e954c35379fd61422bc67c19085a9199f752224770460dc6e1db4aad6f0703c9d1f40e6da0c79ef97e700299d22b11dd7ec197be1a04f8d562bec53b0d7c4389eaccbabd477847b9d0e244a3d24bf03fd0c0ee16524cf1dda4c4cba93999bdfb1449597af6f0e60d431278b02552fdc2da18ec34130ddff48453208f6c698a0c57fbe7075f6810201798c60a4a7319d7c49383a392a0963e3e57b35dbb2fb2a2d35f1ab070f8d509e7ff1b3817f1c960f728d759638195e7338950cc2a09a0312302865b9aea9cfd63c1ff0b3f3273bce73418e72b467959f9dc2eb8a09f68a0f4a5b8745987cba2bb219b8ee4873ca325d67501f2eeeb5459c134e9ce22f4f8f88833faf57425425b0084d1f7ee9fc07520961c15320e1a34df7c42fd8ddd60ad0091006dc729b27628b0d3c5e8f7b81302476abc3f368cbd71dd27bfe1135d909425277aaae0763c9d608585d0c691a3065fc888e4399c343fc75a77d05cbe49bd308069d278bc02755e6c654ecd77a015f7b6c3d0e946584bdd5cef97e5814517085a765b9743aec4ec185edba28359ae27b0c3709400fc604e9cb42ca4ef4a2aa87368f2bdb16bc9bed4b89eedcadc9ec744d3c3efb0f400d1eeaea72991a5de269d73b662ea97acc796bfe99d99e8b291ad1d2cc252ac5cb847813747784aab4060bc36c8d8b7f7f8ffa93925cf04541f4bbfc64170bbc7e3bf0c7bc05039964317e87ea13af70fc11bc8e8d3d90f3900fd299d8d102124a2bed6dd0ef290f2463ade7fabf76c21b145d2f52848bb5c90f0ba613a95dd7287cd2a4e2b273889526473e7a64f90d85b66da89d0c01d06285c93c163920a0d250e852a98c698d457abdb7453d22c3d4a6c38917cbd966959fad75a49529c3887ec6a4dd4c05127a1be85e967885bc7ab228eae8cf287654b88ae7131d8045d1923ac37055b6f693bb14ef12d992abb2ddf5bd540ad9d80a59a953b7ea716b9311d385778d6ddf0a5393959c00aec22b5db92094faabfd964cd1881dadaa69608f720367282c82d9ed439d809dd62ad36f6919378923b7e002c0c0657c42f9ab6ae75e27c110846d4e0126860059ba67301967d321c91931e5990e5445c22207ccd215a370f84c5bbc0279e80ff5c04030af9e0e38f9da7627c244ea88cd75e3b49a71ba5be40b6e9d17faa0fce9da91c53ae8379adb38f638e1ccb76bc2a034a1ef3aaa1f3500e13d2d7642d10fe05c8fa37116db94663e730e9876be7990cba76028ab21f0581a50623842a06323d01eacf78199204409e97a40c3f321ec9ce1b218208f0a7a8e2b9872b524f055b231d15984fc9b3f0ba42b9fecbee34d7186e8bbdde8ca80ecedb737c5aca72dea41b2f691a63612804170ac097435cffbdd956048baf041f5cd3b4622937c8e27abe31fcd494a6629852e7af4568aa1b31976038892b295a27e478d201a49c2090912263b529f893b5d96627b9628f4888cfaed952b30dca529a517c4ece509781f3b94aa08caad307b81dd9449ae74c69f0d01cd41ee54f402735743aedfc66baec432048aa0604ffcb95cadbe92c6c195ba93049407b993872023a13ced1c82edb486f5bbf6413b1c827e58db39b1f189a153d5aa851caeac558f25c46f66a4d9e969f80931a00822f0cba657a5242938085c9bf4d1007431005d62518230539a704ffa59e2e62223ba4a358023821455537d6a89276d4b12658b10756f0323e05816b90942fd3dc93ca7586208ddeb492caf8fdaa28fe37fba8f7e8c1920badf1c5f94e3bf524f4a48e5e8fa303e13d02c5ad759412179044cb01fbe088e09cb608111a4818dd7f756a703017086ea4f5e41b515d3e851c6d3aa4fcf2183e05e5048edfd9f223bc88852425882e27c56f857b81be8da37645c62e5f7d07a10988c8c9190cc80d43ca5b74d76016e87c410a7ea585d36cc31780b0a77904e53c7fcedd863ed530ab5beb809c8845e784967fba7e4436434c911e1ea8e127e0f10bdab8df24d8237b84c579fbee0b04faf66bf78c4108146596154febb7f022a34b39d7782f00a78bbbb5e9362168ec26320c21aa80e49e5f9bd630d810b4b3fbf4c5aad653dce9105190178c2451fe0d3da3bc41d834ce6201ca0a6c7459465e39fffb143dbbb7958a9d580b36e68779a939e1750ed1d32d430f232eaf986308d7ab13573b75b015a4b3c31287d945ccd1d349d4878c017e6b7d25369ff083df04923549bb78d0476a8b93223c67f20fb0c9b5c2b86043295112dc5149ca814f0282ec213cf4870d3c30d1a5b5757103f1a7a8d83d149421ef3823c5b81e54190c383ad9811df2a23cdf2af6ac14c3fcf1a26de6248e5274ada3d82a02afede26c083c32719ac90c35bb8a3b93ead5f5e02fe9fd4c15531ec9ca197a19eb1f0264748f20f4256f060ce076701fc75031a971e81583056daa40d75956afaef5d9403a992ef651a18c265801f361b9ade59e0b12d1fc95ddff407a8bc3668fa58b842084ef76908d6fca96acf15e149a3a4d4c6713fba2c845080b445c8cd52ef23e3b7bb9b90a595ddbd33a50c5e08f507f607f97dffebbfe280e010e3e3784d8d315ec9709081adbf3f6d7679955deed57bc6c3c7ced66297fbd0e53ef4272d3afbee6da603c56539f643362bb9a9caa27d37c5a65fdd5616b3329751eccaa9ba7fc4ef3ce326f7b1a73bbe60cea032a5ed435ff5b40ac36e9a5fb1772916ecf285b3a4fffd4b7eb97e55b32b561f331b374dec8a6f67aef8a3fafaf16b7d9be9d459cd599581b1f311ffc5f988d4dd0f161300a189298ca182344a40c5696145126da04105154f389992822458100aa92cd07021bb54163f79945dca0857aafaeef1cbc8f9e8c7516e6125082440230918610bc89842e79c549e68021337782356d895530d10022a3f5acda80c145cef8dcf293321f06312cec042d3a95e49930008456850fc4f9aad588565d1dd1b3a73e5d4bf726aadb02ba77236feb0f8559e181225402079774e2ed4a160392310239a214673dddedbf4bdc2ba0e6518bbbbbbdd39e79cbb37c0ef3da64bdddddd0e0dbbbd0c2184325660d8a5675f06001384bcfc3296adebe7b2ce2e93b10243c7257bfb11d6a220f6834da3e0f70edddda200bf6f1ce0bbf7abc11f93ec2c0a1c97ecdc9d93338010c6afac3529d5c1d4018437d1ba737e21c58510461863bc96090cff8544737e21852889ea6ad8a21b1922c78778ce2fa490f5090f42cbc949e59c3b903b80945629d198a252bbc4b452a231858d4ab81a60674b4a34a690550dac75ae2d8ef301e14826464a39e7a4b4c2aaaaec1378833dc09dc12eb503c21186ae22306f4a80703b18ad4c7ff06689801cc3181cad8c760dc6a8b8c28d042bd8eaeece5edf4aa7bc16466bce4929add5869bca390bc738e783d21b6a512a78a3d45ad409bc5996752d4bc605d691b607b38d160ef01d1720bcb9293850af8952623f8a5510691af75ac5989eec700a39090ff05a2730c93e1c3cbbb72cfb321e9ac0efb9e4e76a80433c1c9c18b9ffd5f0f01ef06abc2666411e13a604a112c4c987c3ab473875a746b8111ed2e5091e19a1c7a210e398914cc5628cc0c48c2a94c85b0c1488400415a4bcb104d7ec5252d888428a1956e0985d4a0a1946406111454776292220010b2ac24819614aca0851aacf845a2ae004144c880217450c810b214208c11629286430841d0861c921a4168e19c93c69094cb13bda253c85ec0ade62f248e6b3212ebb77f0b720d9df3f0876e79c95a34b91bdc1c48ab14280e333015c82739096008ffa596da1f07c7f99917f8ccb9d850ade9c16f967726f42c4c6362066b2fc27e143bd275c1e4fd00e10904f9629413f9bbb32f33f4a3e338dbbdf37365f1ea04b97378a44249ee30b118d7ca04b972e3f195e6026c3ec87f71e83accb776fe00dd3ccdf40cc11fbab82b71ab2ffdc80e798fde04d031b3aa64b56c09bcc169385e89c9f4c1cc0c3e1d9902d2b783b40eef76f1c83111d837e96c8d59058c8168e19653d083263c30f0bc7f020042c6c9840044af028014ea9a206195728c10558347fe7601ad68f191bacfcf2fb989114a0d72929575252ae64ca631dc939a7630978a3381be29ee6ca1ee3831e3d66d29892a2a287078a94142352529870d98205e8874a2a65452a15254545ceaa109944c9f2044a5115fcde8aaae00d66cfdb895a0ee55b133b6c92e563e980b2c8ef4162f1f538c4200aa230ef1f2ef27f2c7904961e94dd92547257f8d0079b616915e894117a159a56a1bbbb9d736e36c166c9eedd4fc9eea91bf865d40d2c725de2a23a843e856c2ae1eefe44b8bba370939d19779a1cb143b3280104a3c09eba04c42e87d093c0d0dd1b08b3e7280f261333891d6ffc08ea09aa1375a716f16810ac236dee079569f62c4d76a664ca25d34c439663355b118da8eca226b03b9e2118c5080bf6bc48a09b05090b04137dc799c05edd1bdfc9b07da6ecb0428c67fb82f2b35c5e04186673890b7ecd2fbb40ad7b03aff8101df9658e5201bff71a7259b7d817ad79f0022769f8688e59281ca08a28a2680e311d47c389269a92ca0a3a3d0230509a9220458ce1030dbe633aee0a4d89238206332830054ef4684a6a68c30a134e8398ce7be20a5c3425332810205180253e9a634eb3d38298ce7342043b9a928e82e69a006ecaf7aab3ee093d30238be6983d82d6d8cb7d83d4155a3cbb72329d778428419aff498b7fd2663fccae1c484598a382df8ffccaa084bd13159b7153bf95423122160d300f6e72533f8e2cb063a135f03dbd7623aed8d192af28824b7e8fd334ee8a1d2cf9a5300b4ae0cdd978cd8c8d13991155015f81714cc1feef7f784d3f469d8b9e802f875d4006fe711992d7256314fe33426a60f7da7f30042d430083b4794fd689f163f527cdfa931682f99316f3274dc79fb4d19f3417fea4c9fc4983e14fdaff49cbfea491fea4c9f027adf427cdf4272d66574e9c1fffa4d53f69f64fdafdd3cb9f72fc4963e14f5a0b7fd2ae3fedf89386fd498be14f1a8f3f6933bc097337c0ef4b3360232958068c0756fa0293b019ecc71738c36c308c4815f8b11d180f22c030602f603e40f15e060bc24def2fac0357c02e600fe5a6f72d608fc90e1e616fc74def59c05e131fe0eded3c1e37592cc0dbe3793d6e8a41090c83bd606f8a9bdee320027e57c6c0dbfb7940315fe0ed01bda0c7c54def75ec006f2fa851efa91376dcd4c44def4350c0ada5b5f414af692dcef49ebed6028457c3fbd6d25aba66476f31a2693cbff72651f29b927d89ef78f618e4e73e0d84fc3ad554b298d24080580f36706fe95207b5962e3d2ccdd34fbc27bb1894f038c1be448c46a3d1e8bdb7e3a53011b91f46f2586992fb5f7650281412605027b91f478865ee20f78b7850281413da4cc34ae5fe10acaee4fe1bd420b068e47e0b0885423d614415634beeb78e42a1502868629e20f757412814aa0828600c727f0542a15047409e8983dc4f9f70272f3fc8fdb37d5028541251aa2e72bf4cc11530633821f74724ac5010e47e78041877e78cca82dcdf3e027fc6196aa8d154c8db5321b7a3b21e6be006cace518f05defc893f711b349003d2fe93864c08e6745f50d1c60f29a5fc11a46bee5b8f7f301011bfd84c8f7a832b15000119be1f8159d69a259137e0102401b5ca1b8008a9debaf5e3862119be13f951a75057bfe44384b803145afb8312018a934aeea412a984aa820766cc39a74553514af3fc4a4a39edfc4aca59c9b7b3b25ee7acb55a961b524a295d7d997feb425f884285de5e6cf3e1de2c4928070b197ecb500eb759a085d0bbb5e9c830645d190a65313f6c395c0996e0578c6e40e02c45a2227a668240a00799454a1f82d061028a2c0ff58cd869c293430e0e701c18181d5d277873a998d9d0a5ff99ff9e8ec2dd7bee44524a777777b70189991e4124fd4abfc27aacd12308cb786faabc466696efe894b13eb77d204b08a5b521b0524a693de7dc8ba14d27439405e22f5b4af7f97125e88dc7446e3d6c5a10e4470ffa6e242919260164a746f6df6e70000f5b60f777b5be032279e2177306783a2ca452c3a01f41e69cf3c74c8fd20f9a954a1406f821214a02dedc949c7f48cc2c4f72eb49f049103ee9493f414002949121917af468c1071088d65a318a6107817342236d2ba594ef7c7c8e55c0a80fe79cb3d653ae0f61cd84e8dca54b97fa34ba3b84f76656d5143f7e5c41569873ce1ed40a1d59e0201b29079c200e88abc2b973cf3d7fce077cdeae05c789b829871631dc1a79cd3b139c7126684324079ca6a1ae04df95e037e65c096e41e46851986586442747d8e4a74b6ea54bfeff2a9fff51f9344dd36cd518d92b9feaa742414ef2b2bf26c05b15a58a525931a757404754f893ce29a594ae51cc3953cc9c4c38353fc3fa3b77eeb9e7edeffe5c77284be94b384a311e8dde4d99999119813b034b2925f59ada580e120b7d4b37d02f3862802822b3971c3f1c81f25d6649e8cb05327c97d8f9882f18a830e79c333df65a31768e859b734e226df27fefdd23ddedee28ea8e524a21fd1e6b60faf2fb1dec4d27c70ddc223062db079e33e299c69f7e17e00e2bac232a936829a57453a6c82878ce86512c1c7dfc8d943d3ff85ebf861373ee21983927343a757748847bbd861a570f7124af8b93f990b6a9bf7d4b1624f8ca308242e5f901239ea7923cb1ce5e041b014cdf612d7290636464b29b3de773774f5509caee9ed242094f1d818ba7b40881fb7cfd90806b6457236fd67505dcaf052a6f41b2cf1ca2c0f337d235224fc093a7943f659664429d2e9267462a1d817301af4b9e5992e97cc4274d6c03edcfc110128fef19a9696216d325fa148cb72347d0ef3ee6a9f3c13d0cdac9fdb0d451c89b8502e79c739bbbbb77fb73ce39e8ae4b288b03e8b21c0e31303c40e469a149f6dec9f2b7ea3e93fd2716f3a4ce07cce26a2c677256904c96d2f5606239a08705c6ec4add4cdc9425db68d5a0ea4c5b9ac68de08eec1b03ef0d8e0f6f7d56f2d64c1cc84db2e11226b2fccab9b44976b651f9765aeee29d41f325ed2cbbeac3776f262ee99098adcc83ba241f62dbcdf2773401d3f7bfaec6832c0704fec6234bf8c29623cb97b2993c93fcd108e367924fef8d7cff19f8d267337938f8cbef221c4df5a29722167664ca643a13fdca437776a6dfd767b0796f7cc639b1f9109b4fe77cee56187f96b08ef4628d88740b6e1404330940cac4b490dfe84a7e73d4998f62f6628d460fdd8d297304a9234459c2e21803bb2ebdec80e10599cb8516462ce8c8118303e6058b42d7b255a553466bb2f19a8003e6058b42d7b255a51106a2d0b56c55e994117a3f296ea0a608f29722f8f4e7d7df817ef5f3ebbbb7a71cfbf5e1d7fe2ad3d1390581d3830d90fbc9a95fbd7c7d98e5e8882ef81566bffe0efd553644f5fdd9102f3f73453a5072acbf9995e9644ef45fbd5bdc7f31a07ef53bd4afeaef50bdf596d3b69907dcb72e78c1acc2de570c3fcc9fb4d0ebc1818ac9741ecf4e0f0f0ae6e150857a3b397874fcc869f8b7d703f32fc84dfe2fefeb3f1f984ce701fd4b96e9bc9facca74b297ea897e7b41920bd6d8151f9bdfbf03bd80beb0c11629f0609e1cfb30994ea3b2e6d96994fdad791c0514041434c258c07460392a500755efb4ca63bef1eb40c9c1f196c9013498d0e34c074a0efe50a61393b5cf8f4ef790e06930edf3b275cf4b76c53f693ea2779a28bba2cc22b9b8c99fe463ff69164a4ee8452f12fdcbe788fe25d381025f672747f438d3f19dcc7b200f8fef6c19028ad386a8b22be7dae13e940b6707c9c5893456b082292894e63e4c5aab5e497d2bbbe05b7ffd7b48013bcdad28420755aa60a9b22194d40c65b322100551178eb59903f9c7c0045c80253ed9659137c853ff6915ee40547dfbf5b964b893fddae169d53fadfa2007ca6ec92c6ef29741dae4c9927dfa5cc97ec10c075ec902941dfac01e37790c4dc04eabb49737d893614eb05918011523720bd9a5a8f0c80bc7729a7b99269534ec827f218417fc927d9dfbf57570daebdc4cfe498359121d9c86dd24bf925fb36d14faed479651739ae892314ba283d3704e5ace8583ffcaa17f9f663328177032df897da75d31c35952dfc2b1329da7d5cd4dc1996b6427a5063cf945699acd9f64f9d27b7ae43b15524a144cb274385b82df7a9bf6276964b9e38a966228ebe9c9bade5f0c857fbebb3818ffccbc899be4e3f94f9b39364b51f1c9423894f896f534739e1d9e46ff69f4655e20df7b2c8f62ad6c08ebf1bf588fb3ebe1e7b4172c08cc872ec92d860c6c61ef3e549764f555f450384b44d9f542d6b3febd286e9227cd5accc29ef45cef3d266e92d643b949c20cc3af323a33b7a7d7551436891034f1fa0044965a434ffa17e47d4152b0723cd49230f27ddab9c23adb3a9b5ad4da183ba03367add9c6817c2fc43178ce3adf5acc1da1195cc3d5b7e9ea07bbd412b2649712434b7ed9d2d90e4a178685effd786f2ec51e137b29b595de6aeb5f4a6ba5b5d64aefbd1e63dfbe37cbddc401712e8c5ccd3bdfabf56148fc3d51e856efe53d69a77531fbeec2f0363db1ce366d593bef8dc5aeefb1efb012701e3920db9301731a0fcc69187fe581396d867737c98df519783bfedd1b987ff7a6b2ae691cd65a5d15add63ea5b43a679d05ab8cdef9213c854cdf1ab9562d602fbf208579ad6a5a8fcd8f01b711a216097b9a0ce684f432604c5e93e179604b48f09a0c1993d748d9e372b7586acd803513a01c2f2dece5dfb5b25ef282bd203660b01dd8fc0c66026198cd512706c3bf8b0306cc0467d313c36664985ab75cec6dc95e10c68227be33c357f07b9bc3b260bd1d59ff9fad9319bec26e60dec2bcbb373b3e84dde07818aaf0b028e66486af330001650967153babbc3b7900f3364db11beb65520cc62d54c122376cbac26c11ac2ba4f3f536f309b9f03606985d4a0c2bf0bdc1f196347900736f60def278c92e35c693181960b24b8de1848e8b437a3bc317448c4a639440e6deb4f0d624720386d15b005813abb610634b0e61ef59e82672c42736b03bac8975932e49269c0ff9b60afce68ea047e2c131ff6278913c31e079574896eddb0aab98cb98de9bf982ccd797b1483cdb97b1d955a4da5028f4ef5df42fbbc8863e1492c1c2d462afc983a24b92d4023baf1067856cebdb5a55d09dbb73a4d0c6816cb39f7e619d5dc05c9601731a0fcc692db8cc029675605ba3b27c5212283f067356fdaafaf7d6fdca01b922cb6a1afaf771d3d8bfa7ad7a7a55b662483cbb7b835f2757dbcbd3b7d8f5220a5d5b614874f265c4fafad63f97dd3d0273f545aaaf5f65f533ad30a698f596f5cd84f5ef63460ec8c8f918cdf956d3d8f7d3625b7d7bd5f97472b5d826fa2df4dbfdadba44f3afd0fcebcebfaaf9ac0bd6c57017d8a5c240e5ad5b90a5ab8210f7c5cb0f22b93735bb8ad0af5f33bbd19f6fe3ee1ea9cd03430f51c363de922b78fbec9046078e396df05fb6f1a63a70b3bf55bfd5dfe0db4c4875559990aaba6016df73e7975d7e4874f2bc8af4cb97ada6e91867350d7cbf410251a825b210ef5fee6b8485fcb28d03f933a02702eedf207da80704b14877e8a308fd0a122400b24b5d79929b10615da7ae9820e5459736525e680123e505152b525ef4a4bce04979d124e505935417564875a1058c54175ca4baa092eac227d5454faa8b2741b4fef784fefc1de8cf397f88f734bbdc6958e9bbf416870f174cba7892b75ee2206612630c6a9aaed1c1f346d3b854173c5396a0b87892b9d8c9dbdbd2117ad340292ce0f11879ef0e09e56784f3d17fcd006fefa7a1784c74139e36f57bb6d1eefe0de79977ff019fc2870ec4be2eaec6076f2272734122f743a1203775405e8e2f031c13067e537c783f0f8ca7e561a1020fa080821317fc608d20cdbf8978cd8b824a91bb1f0f72bfebb7026f411210a4ff3d71eefdbc9fd0111408d8c18f2fe968f4643f7fef7577bf8eefbd7735c4208c2f339df83af04f9a934e461831a8c3d3e08f7ae426f7f033077710c6531f677235ae0c1d5cb98114156c21c68fe69fdde51876533fea7c963ca08682fb76d94d3ff669f42bd695d287b92e65b44bff7e7c727c3b934bf4fba963afb9a0ff0ed57b3604941cfaf587e8ecfa4aee3004cd2e78bffafbd5d70c6bcffafaef2f469d5ad99553fd476e8a720bb6d995f3fd57a94bb134a3a5a334cd9558cad1a64bb1aa32226fc9fb09a203d1f1e0a61867cd0b3d0f484bcc3165c588f8aee418238ac99430882b1dd022448c40348dd7b47f7c6ff9042b535256ac4859b141caca0b5256a05002deda8adc7fd2fcdb73aa8e7fcdb0c3713c9cb4f7b06b6c95ff78da2463b20c40137014f81384d778764df93ebc9dec9ad9c500fffe1daaccb9a9ff35f1df3a4ac5b0dcf273fd979a8a3729c0129fcfd78f2e49596b66f3b0f434cdcfbb4202027ed96934d8e08a327c34a7f1e0c1c1149416311c37c977eca2b4a3748d0c8a4ad3b8c6d2342e95042a524a30b29441594ef94496ffae340d7c15c8269902383c788d3f0f95c27acdac19cea99505152801caf1254f4ef533d329f5cda92f7115360ec4e3c9f161d3fcf066bfd7ee25b47920cf74144bade5c9330aa9a491f8fe116651c9ebf7c43a922d923dcbbdd7ed0e618c524e6b1e81ebcf982e45dca5f8cee1307235403aedbb2baf866c36aa000084ab7f791b01800bbcd11c63e2b434c651ac2a3aca71c4046ced0c59967d5bfdbc43ac101ed96e40bceadf2d428f54d96f38d7ec960bb2e22cc5608f1a02c4d42cf19f9f37b2cf046577a99f2cd93fc81641d93f0155ede6c9f227753e2e8c77c8cbf4ded097a44cdfce9e6fba3927c4a1edb4a40adae289dc98c3a07cf8f248cca0d7b88b9a731baf791a7c225e231f3e8ed7c48f9f23b3079d9b84e0c8401459c2ba0f6097fad9c9306ad8b9909118203be7e388a59d5ac9eb87aa4960d75c47c9f077ecc3ef245c4d477113fcbed251b820c37e2243d899cde48f9b5cfa73098a1d6584a350ea313e54026f504b973c0665ff2cce87ff643ff2396610cb440565a7406ef2c782c202b3348d96a6a93b3db65fbbf7aaae4ee14729e384d46b57cfb9e77cb887d4050f4288fd2045a6639a44e4c508152bde95e2138931ba39e7849f91e864f94cc05269a647c92af92b795f222dc0db3f7f245886c574ce29b88fa7bce7754fd3b816990aef711f325c8d83c0993cd8cb2307c49a3fe70c5dabaad5ba33a8ad27b3c4532cd031ea094f5802972bb250b9e9c106b661f030413a67e76729fa2c1f3e15fd13bd75b69760612512ce7e094079c80c5d2b140a85dc5e9b9edf5764d3d38ab029fad0b52e7e69e1774bdf25f9228c0405916589b0aacabdf8adfd4204395ecbbaf82d0d59f7e29f4320c2886caf100410c1c4955c76ae34b314d23914baf82db5de862c1ca16bc17c7d181c309665dd6b5956869f4e2b9fca0b7343586559187359f4229128742dd1d71785422291e869d388fe3d4cf5a24a04c64fde6a78cecd6985aee56ae8b97084514d4c0c1086311e1b0951d78bddcc4df4bef53dca7d733d40f4d6e784fe865e6639a2b744d94c92637d28d37937f55b990e4e2bb9a9a575dfc62f9d42ead7edf4bac2eb104208218410fabd7188590920f2d0489d6fa9f5ee028e449a1c66f29683933014a185b0d2196155d9aadae2bf08639c954e8f315e45e0c78f588410f2086d1ca81a4fe1b018d87fa3393ac69e5322f13c6774e8d3be7cfbf2f16ccb65946f6355bdb54f9b063a1f7d6fa0f3f1be9dbacfe96fce89c9b79ed96749d03a628ccec5f8ce45e8103aec7cbe9cf05deaf0ea4ea7845e6b55abc730dce105a343281b3a870ebe7bf4ef5a458ed6e10f42970e66930af23dd8b47bf329a337a5955291e8b983fe0ebb1cb67b7c10f655e4fda14307a173030879d71791e0de8d8bdf8e5d11c6d8ed9c73b1a1eb6e24c4c0c631b11ff6a46f07d48337d61805e2836f6df21bbe08abaf2a9df0757cf9317bd55bcb6a8c874a81aeb11f739b3ca74b3c98d404770f30f7c00576d939fb70689435af0d5910234981fb7b7040aaec6f71947a94caa0f185b2f1a2e5850c1c3392199581a30d1c6bc0e076214ecb4f2d19bee728b3cb88fc49db801d738fc89f9356d50a6d1188d62dc442db49062116f4207549074abf924aabfe804a07a7419c4a7b1baf455e32fc2be4416f27f5e852bc3ae0ca862ef943387acf5d92bad4a3094c7f23d13729c43016452a083301381fefce648137529ee901b166d3ce673241f9d5d0e15f954e09dd1dbac3ec08740be3f39428c618a3fb3be70ea353c2171d1277feafef11ef87efdf5d4075dfff5c7fbf137d7e867c87ef3d9c049c647606b12904febb47bc87d090bbdf75e6dfce9dc3f8d0b92bba6e249efb1de6a47cabef8df43752fbfaf7bb0ba0f788ff4ceeaceb93298ba9d07fb4695e1597efa4101aaa1fe4c705c88c9ee27b54d8fe410fec7480d3ac6c08fb4eb369fb72bc61e40170dca52db0fd21f2e35b4c07be924ab351077773eccb2ad3febb425c194e8a101a688664c3c9f51e891b4ea66fab2b217c09a517a94732c5734aecb9ad552c4c05bbec2e9c315e704a08b7ae2aed09218cf0a784f12d76f5fb3b0db99a991c32232b362cae82e13f2a7f4e99410f58229bbd324004be7c05b86c5f7e063aa0811d59663fd887226c05c7c719523d05a2caf66d35638a27a8e4e0cc98e2892cb2ad72adfc1ea17f5d5655a5a9be5e56563ad9bec4b06da35f6117cc845457947f4d59e56abef9d208fd39ff15a9b2cdaaa699aedf7c5306f186ab3f05d65bef5ebe95f325764df85a5ed5552f0adf9bb2e193d208bc1338053d61652fb86f41f89664017e9685c1e02ae01480cd61618634d254645b530183131954d818411a537812607d5f059c249000ab75903320330decc8f0610ffc717631e8f469367c826b1acbb21e374de82d2b64851eccd6476cbb1fc2ae6bfd65adbf2aebaf6a855c8e3224e55b0e6b817fb01efee0eea62382d74583125f49a55d233187beaf0e4f68feeef2d0021533a678828a195334d144b80a3e02b6deef0fd687ac0fc50f3dbc37a18a45ec7a35866e28db7472e82b66c9dfde5b1fb1cbd6bfaa4bd6bf5e8d4874f2fd97e3bdd6cdae2256e7cd7af9d657399421795d6ee69c8fafacede51fe826bf66a7ea4937803c07c4dd2312e8ee4ec4f5d8fcdfc32fbe7ef2fda2d77c7fc9d74874b2f7833c0d1f42f9ee92fde2567fdbe0bbda7fd1fe6bc2764874f2fbfc62bf1ef23ec648abcce81f9919ec52556916b87b6bc2be21903ee83cb43520c72310880332bf3bcb6f99d12436790332c90995911c80e65123d4913c35b111f07beacac849fe3ae816f6e79ec37b243e7cfa5f338e7c1af2d6041e7287d02025cf32f2cc228c62abb75565b1b0024f9ed5af5b1812aff654adb42cb6ddb7d77569dd6cd3c9d7fd067f0bbdf5bf422ee5a51289f72d027f5efbf11a113d74cec77de77c84de62a26cb31f5f6ef662dbbdd9ecd7af5788fdb6f11f68761999707bdb7dd10c0bfbdfeb36807c2ad8a594f0867b9c23339214d80d01e849de76e4be2106e0b5ce3bb9b718d691ecc4b017f8fd0b7a777fe4de0bddaa8a44a2b7cff2290d20c36f366452a96964f0c74003f3ee8934cd8e779f43d3643860c05ef81e37c9afe1612f669fad7c7caa2558eb20c5de0e133bd8cb5b9bb648efa4f4d6ef8d13d3db97905561f31f7332c353cc09e961c09c987e07e6a4f431901ecb4aff7cbce601dd9ab32634cdee3e359c0ff941b80c13c605ceec2e8e26a38405c9ec2e4cf6b674690c4c7a23cb786f244ece4fec1f417ec4482487290defcd8b4d027c647860ef8d36c99701734d802d26bf606fcb7c797979e9810240312f305be9f7e6a5d4a344e5bd79e10102576aad2f2ffff2f1debcccd830f3b6dc1b9cb591e305214490db91cc289fd1a884add6a445ed148d08000090002315402020140c86842291583420879a281f14000d8994406c4c9849a3418ec3400a52061143940100004088013253323355004819086aff3ab65bd4228b6433ff7dff79ccf602d2788f92f3c9f19255014e0c3c4f19cd2f14e8c71dd28769c4542da2da04ea3fdae2576f4ebfb4e3b6cec7652f781e9690a4480bb7d097bf75e0025fede95f41a244229df83fa600550a3859639adf9c25b2b0a6d6b88cf92f59de3da0518b65641020ff7b322ebb3b99438f333ec5af0999df4ee322b89a5dd0cb10cea31b1db19d6f7017c4a6557b35a139b041fd4286a5a2d11d236a0cf598d07582850045cd772bcf5e8c0a097e06f0f0b3fcdf36178b5c645d9af328f34c41d58e49699414ef63176a41b4f681310fafbcf7d376e393ff6e70e04b9680b32d84778852ed904f95589b13c2dc3c8dcd449d52d95bd65283378622abb115bf20b7d745f93d6c0237229d049395721a2a06edae157ecf39c0e841ae65a79309bf5e717d3aae06de7302a07ee4b5c30652c948f3d882dd94e04af5361c3c78b385ed00afc1c2f7b1d47003ec47a517630eb6a1a45b23b766a9c0b6e99598ad84b36cb6cd466546b129c7200e0c03e1f9970f07dbbc98ab93a314c6609338c427c847a880d3caf93fd4f305e97b972bfc4d2eb6ae603b3e17eb9f401fe72d9eda1221b0f17fb75d6c02f462ae37c94632ff6edcfcdfc61600f710ab5b74d24c6e5dd344ebc5765a2f05d849f3ca27b38b3fcd066525ab994c2ea5af5e24f57d3167521a2b56732ce537782a0b2e878f41199ddfff845a0a5446ea55607b59a4cd631f908da95e80f50759bfe08178b63c767a2fcc5f606b4d9669328eb22c6bf5e6a739a82022a16079af4f44245137c365628ec7b8e69fe747d8649f627c284086d581d980b8958d2f86864f79d8d81affc791e1ff19d83c266764947a6721acd9e4de2ffe77a92d690e0e0dbc3db884d7e5de1f8cb0ba223dd627e4829612b19362d78147fa708bdc9d2daa1b841d2ac36d223ecb758205eedc16369973d50b223c027a137955f75b72f952ae3b527e2612b8c09ab8569cfab8e0c756e4ee879336dd569454577b726e25c8d6e99ecef9dec62c04083d8c4564a36839e5630f3493042fa8072ffa16b17fb8b4b5105f557180a7ff3b28e4e0ff93d4307f70e1ff0c80aa121038d1899e0fcf119562a54bf248f76ce65eca768663a5ad7ec68300555793cf0289db25dab31d8c0a704be489c91b71d0550ec1cc86fda480f42f88e42b0999a560e8d3b44d63a153ee9dbcdcb82d421274248f93655592a9507da217ba5678ea54d7a605ac91a97fbc838c9cadd3a52ebcc9f229627142357a04e53fcceacf0a291083387383640311d5f6b1d1d8a84824d96b1eeb7be74f8d6eebe6006e45dd768af0f5cba6f886fd9de495cb33812d00ac8803e5f43cf8ab102cec4bb2ee99225001b41b5830297dc3c4be45bc3fec21c6ed946c257934435cb1192f542ddf865f95f8c7a55d8e081aa2a6e36514038d92e2ca4bad3749eb67bbf17f700f512d64bf6d0528f0daca544331b578f3bac3157b09252869d775b60c14c55a8ede5f1eec87e2e39d69142b1f592556fc994e70a76dacaac993c75eecceca4aba5799bf486a8204c72fb21bf089f082d6f56f4027ed0fe0df664a983032a45db5a6048a75303502eb18bc7193e0a6f206e4a3742f00e05f991a556f049417b2550bf96892ce6af5800d4618182ad72d9f1c12c8de3d46ea5a03d649021078c0de0ed7ab86925fe58bb70d459c595a50ea900659be69a9536e24e6859ae1c50ef1ec30a764a9ebe2c45745c45b9c13b77d5b0632e7ca10073ff49f1b6ced81693d5ac8b64eef0c33ac7ea8ef0615d5fffb4938ffacc48f42da08684a00b3be90745508bc74325f21883c06afb8684105eb02fc536468bad915096881fcc178e65303adb475695485e0b7d12e5bc5bdee5d384e67bb025cdddd276823995da75085c8204526dd32f0ecafa4ccaed578407357ff892f7573ebb1897916c771fcd427d3904aab891e6db7196b65168b563fa8cf47a82210c829509ca48d3fa3bb662531d4382b398648ca4123776d30dca8280efab09b7850c8e3c7137587930a17f1fe6c13064c0cf7db05f0edc10b30be7fed2c9e0d22b188cfbdb2038be2df51235092868e9242f932dbd2e0e595f56de24a25c1e96a41eafc8413e4ed15e3ee756d9ac16da8ef008117b22b1ab0fe68042d1af124325bdb0ff6d190fdfb03694181bab6df6abbe73175b51a5450fefbb7c90d23ff2ee1808034d87f3dccc6033083db4153f8695488a66ea321629932982923636424e9e6881c5eb3acd9d90380d5d7a596a71bf6e017b74dd918e294fd5b9fc58672f8258e10df66f2a10e312146d25adce2168c459fba8f45870bc769153a1a560d604c449ce1dd1e4621a3490e91af6c82882185b368dc777993713fec9f045d6a029c7c943802ae16f7ce99aa66fc1a3b53c0b01c89f191208c59a824559b1fb47ddb790be9a7c71a0fdd06113dee45ec3e44a7a00ce3bfe7b31c4c29481ddff2701a87691f6d32e4f56ae13023f3ab6e4fc741adb44408dbd8376a4121f1f37170acc4f0c8202ef131e4bfe95378c74b4782604fa82977c8f0b1e978d26c3066e985944072c41e72da568ca9485e0b2cdc095346e81704499e0847387b33711e86f152f2068073db327ebce3d2ffdf43442df5ee793ccfdd7b2afdb140d9621e8d79d7656a84462c014241e4026d581a21479b4802def6565144a61b031ffa2993b19aa35cee7206ecd6bb98808a88af3a48a0098e43d82f1744c1bed0bc5cae10a3e0058059e27ccb06b3d53ab6523bf57fd52d651fb408188d5ff07dbd1054caf5a05c87bc44d63da301f300bf33651987ad1cc6fb304ae8f7bbb0d67a37daa180d3b187ade5e8a647902b4e8e110c39f15eeb941f86f018db52cf39000098c18283dbebd9797f5c9cac2a11e201deaacf2fbe341962383ecda1954bd581c99216df506cf9cfc6108d76b29b072832eefe188c09d5333c0fe40160df5be47fb58b90deb4f16c9093ec08821c5ea962ee472eb1d51ad16cd94f04ceb48d583dbd58389cc6e09a8c83491a37cea00c00beb002e5c76396cd90f0454e53ba3931eaa8024bf2e5a61d455333a2ab42178b9cd9dadb9d3d8021a4b9ab00fc4910d51675f933eff5f262bc613968603d5cc277931f43a5a6a3e9a1d58c4a03e5588e60209784c46abb3986d68b11e969a9ec09e1a68bb562a5688cfa67a182eb09ee1c951001f7edabd5ad214e5616875f46508c0fd1e49df7c6639c05b4761c64fe6d2bd2021663742e4997f16f3de0109abfbc09b08fa22bc6b1ce304e197f089bedbe4966c3c45258d8327d866a5ac86603f8953927307c49144808cad1cf96c2298ef22370cc54024e741361a77024ef49f748198aaec96e0fffa28c3a5c25408c0a410e888a0a4e17736ae5c1410aa21351eb4ad12ec156e2b27ea29d3f83850d4c686dacc731d58b40d915d3e10b087ef3512e0e019fcf38836805c5dfabdc5a4134f43c19fcd2c81825483710c7a5a02d77d4a07db7b753a89623fd8c78ae4e83655b6bb33953a18669c36aea4fa3c055cf41495388f6d165ee52645a3244648f8d28b0ea72311f71be915f881e63a992c3b4cb6991b61c75e663486f17bcc9d4143d9069772547dbf558b563e1be1d503d96b0bc2c3749deb30c6aa1e4032dbdfcb9b5cdb79c00a62323debd8147eb79e9f5d91d4f0669bf6e6de541cbc277df1343fcbe868cae9179565e7b4f7fb2866ccb87ce725dfd069241fd86606c7f771a3eaff45fc0677ac9c2b1540639df062d42564243beb7cf48d597952581c610450c64dc7371d8545a24550ba750069ab1fe00d2e09ee32434e4068ea4a400bcc09ba6665e8c5daecb12d636b70d4b95641fcfde8fec7a162c0af0ee7a83741607958155b92e3fb23078db7e258c32248ce6ca7e00d7322218e4f6bd45c9bd4a4be5a52c401aff984c1754a0b512998b1a95293af01e9a6d34002effcec46740fe931f46b0fb2fb567681e64d475885b5bbfd76ea8555279ea24d96e884a0ecd2f00e5e80c15a3ffd508f4bbef24bc01d0488bcadba2c33cefd316957690b289ad1a16207f892d3a57fa80efcb2affa223c477fe4ad76e183f5782a05468f94b3482d3d2237e079b81a2bf1011de86a880a448e7eb4b6c390e9988d3896b4688587fcaed6d370500804e5c053678ea411349f00b4d69a68b0ebe7c3f42026e480c9cd4f0b7de5d843506a4e4636120700213afe37a26ee726a848acf2453721e8e10f1a55fdf032a3b488a5f417c55c11ca40f9d4a362c18f2da83b3f4dca0041877fee6aa6604aefdbdb192e60c8f15207818007698ebfb18a84144e6db432513ea1c8fccb9f1659366dac0c18eb003af22d57e37b54b41f0da043038c881981adaf58f166361b6e08ca8fc6f7964313ebd4e7f504f1bc37abc21751157599312c851fab90277e59e4a72fa6f65eac07ae5a33d72e57b70e144a303bae5e2590e73cf4f90dfaf740cc3d4981b38dfc4f63b270c7b0097a4fa3ffe360ef2bb880c85234bf8f568a8835b83ad2b515b9405f53fa911dbe1facb3c12cc3b7828107e5896426a017f973c8996e376c519b081c78825c6683a43aa0c309bf7699d03dcfe9171d9191afc8709139ae604db8186566aa454810bf3d13d9d6df85804a3021fc4578d8a9092d4189cdc1e7d1d5b6a20f50f795cfa6a3994fe40e4dc077f3594dd06b3345384596aae3db08b1834eaa2a832c538be47ab03319003b710a0719136fa2524b3be187fb1f4265976a742481fc49230aaab6492338223c3df82d7876c2d79e823099306036a96cc14c6a774a294871e5fd9bcefcbf286fc2dd6bdb050250c7166d3b463d5bf2e05cc802f4dd099148bfff314ddcda144a5197ad2e7144ac8475d43fc296cd347c2f7196b1d9c3a538ca6710d94d8971e25891555eeed36b352d5654965b3f5fbdc92e08eefb2d0176f399343a348e544c8e1fc82350276a42c8f8bf2f38d57aba732ea7a74eafeb642674e6cad5a56ec25b67e5b2d73988d17d2138e2ac52c8ca2ce41b543db7ac5b3f7f7796eff7dd1da9a24a54cb668f25704be673d99b37281e06c6a0a4078e47383f6d345cbb3a4ca281fa8b85b045729041cbf7ba14be630fee1d562213c301dbbb9edebf4540f8340a3f09f7c4f2c11646a0ad0957eaad9c37524889e414bba49f521aca8c189ef8b936cbb7ea61ea6219b393229ce7301815440f6c10f0b6460513922161f65aac8af06129899afb105bd0d587ea9839a539bc4d932a93a3991e49c1eaa7ab9dffc35703d0866dceca74b70a85302ed4810d339a5496d8a790735aad20dcfb2df5830b766022dbf1e026c8e97128e8d87ebaa0c64c7d86c9b05e6e60d959bb0a61232bb7014456eed78e58782d279eb796aae03e90ec8ceb97daa2b8ff3fd2d7b5eb159bd05909af0eef52959c863c0ff6f502d8c5ecf1ac771110d7d371f1a51e907ff7bf1bbb4ee43b7461218c2b15c2acaff8b7a2056a4375a637a85df7140804ba62767184014b4691534d4e489826ae646154f4dd4160e52365d37438d3005ca25492910e7d03681ebae2485a5cb702cd2b8a7c8e1587bc2f375892d4ec9b6a967ae14f1cca2bcce41b6f5e1d8d5733197e9eac43d5cec97d36c225c5e407e6a9b6c096b007f304b352b0119fdfd2af8f5676932a8fe1bbe81bbb74911253a03c8f29157716741b25604e59590c48100c27485d8f3bfadd200f2a640089af9883e0237e2603f8a659f5744bfc09a6d712fd07451152dbfa9456a79b53fdb4255657ff80247786f247a0d30b071cdf559ee7ab0f7231da172fa8c0d2e2e55d9889e45b766a687a5dc8a05a2e2e7f240f44bc885600921a193cdbfdf8040631ce9549e85c595903e9220fb330c7521797c69c6dcf47604779093845fd98305650946fafbb8063b90f0c30b997db9f818fa7f261e0d86a189514ad0e13968e80ace83b0d813870e4e0564afeec259b3966685dbd9c6860daf36496d25d773a41cdbef7d23c2fc0c657789bac6b48eae7f8cc75dcf9de4d65abe62a27f5b7ed6442c88de0c898e9898430a46aa375ce9160927746db47d73cf528a6b21c90bf33491c5793efdc6cb0672a6cdc5dbfbcbdf4c719ba871fe40c76776ae3310b0abe9d17a032bb4376838dd47708e7ba1f7271ac7b376dda197327152ca5aab3876dff1393ee5f45e02abd2b1ba846fd2203617aeda39c0dfb4c28cf3b7ae5129fa46b97f54d7edec56195d70c6ac7ea50f1b2bd63a993628dffe84e214a2012920f98a290d40aca6bb6a2adce5b2ed674d31c7ef3842881c1ceee2839f0c3cca72a5c793724ae8ed72895af60cd33ba2fbe0327f54f61bdca96cdc56e96a9b49372e0cf6252f8a6589f463cbdbc3bc54301621e7aa03935ed7a55f7471e6e0dcc142d611d3566dca0f175de88bbb1334d47d2b655ef32a0e7702441a375ff18d827d8e0f2a685b261ff845f9ae1e77d2331ba64ff9e60f8a114d279464e9ace96a62cdb8530cbee7d6d631f9c244a5d7e4d10a1ae46cb3f15293767a3675675b6e568ba1c12c8d2500abe236cf0583c2c36714feb368e9b15c634f5a0f071af1655dc03805118c21839e1ffe5327caf1c77fd31316788b79d7ec2ab794473b8707b80f8968b6eb26f8396f7801073434be555d9e1275c468d3e590d80e8a68a1a4de97c38f7263537bbe91249ceaf3b975ccbdf42fff85f5d0886e4fdaa5686f3355463f867a227b327edc87c96ef345da25113c8401238f7e4ec1144646e3d1e8d6e78bb211a3715e32503aa35b9be58182ca6ed6148e12fa7e75c338aa8c733a307c062999ab104442565c3d2643a4990c75344ba5a6c5a3cff3bf3bcc87a4e8de88c92c7a74efddad654b86d636652ca9a89b5f109665dc790cc2c5858c9813e705f5a490d20f6c6b302b241dda11c8cf9f94d200d24a325d04470da80246816f4fa6e12563ec1a87a142cd60c745989c472a407aff00e51ad6c644b6f1fe5f681d1d19e91f28ab05a4b4c1589e1829da67c59da92eb504349c1176334a20be1c924ef1bc011d9da203ba15e8694067fbc62843c6f1cc0380d58554373575681c4456318c4cd42dc9dd0771a241e5e35a922bdb06466cce4104cb6d8085b5b9ac7c25e3e88cc3d7d8a5110581ab0d03cb247293e8e673a07676e611c18670c4bacaf07ae354597c9ab10d7590244e4947599013149e275a3997ecf06c395555bb62f82c3354bbfb7da0f988c159a117954fb23ea41c7881767f6efd3b2f9f230d871172ce804e88dddfee0db32c1cfa14cfc359f4d041dcc11111198e1c3ecf863ff484e0bf96d9104a346e0f19ea13babd0bc1ac4770b10f31bd8369112b7e1a5edee1024041df4edc20f3e720d5cd0a3dd1dfdc8c4f03a004e5afe51912fafb7ac81638e8139381cdfe0883309a46fab12eef8db8b804d86d8de18db1f403182b8ab571ac8614444d7aa9800cfb1e426546c03737bcf0e4a36213e29f0d758eb013a42e79a1fd89116ba94064f8974d63fc6e8672fe38cfc2bea0025c6de6e6a27a84e1ae4d91e3c0f33d3928674fa55c1a6b2b49b946d82c51b72877c227f571b8627d69d79acb7ae5acf42fb43640bc7423b9d4026edc73c5541b5708a8e6894a2bccaea11ff2b140d60b2aa7de8c65f2dc6c7ea9e6ee341bf8d60f8f27e5577b87ffb858b615780a6bd5d2b33a56bd5e915acb27709ce2b017c2e5c285e1715d786229e09cbc33bc383555b15108a3e04363c73c1d53131a0debc8286d6d5e731060d6331bb8143fa973d7c0b39246274a48397a8d455d366a15318ca85268b06ffe8eb8f962b71d806643327ec9e9b08453e962d822f623c9b071f24efd9b729fcce1b9cf8abea628d5db0870b6ca329035d56900436c609c1535002acf1cd57c6d71ef73a81cea5e4fc28865ab26a43bb6bc865986e81f14a636147ecf6da253c0d0ce6699dd12355d5760958d45b0d350c79b2e0b2700f9d50a36d2e0fd93f635b2e4baea3405761ef2b04e1e71144fd0ae0f41192c540733502c3fddaf037e6dbb7bebe098c2c3bb6cb2fd83aeac630d43a19537de6624fabef3b6c50b15896b0f28c6bb554cd893432515d7c1bc7e2afa18f34e9668c670200ed901973286ca9b5010c2d334bbc0ff85dab84bb1f017580c11325896bfdf197fa5ab2dbf228c3780536afb615eea700c0665f88c0da0ccb504930779581e1e3538c27bc4b4923d42b1d85cda2c9276303d13083bf61a2d2ffcc9eb7a71d655ecf8dbbfd923370c7bccb6013a2c40acc21b51a2995a875536fe88f40ae4b584e77482923cd0f4504a3a419c7a002c02e55d25ea5f9886d51d9a170d954a9faf1d616dcf4bfa90483ae3a7e037d36fa14f9afd0262fd98e5922998433b746edfa3c45fe125bab2945389f22867ed21aa9a07a3a16343ad63ac8a027c1d9129f2cbfeac4276e71736ccad80aa40198ea67903ec703b249479049b740457935500dfb8b44d918d1217c4fa7ab7a09c71c06cb016c1e44f2882e65d7dc28106b4377433a091f701f712827bf48461f6a28dda79eed90e3cd0b9f78a59de8cfe9c3983c07b05266e7cfe3f36507d4e679fd74fce4d64395774111f39388892c65d202b7ccaee1b5e10ca500136b6ff14610cb0dae36dad5acef8a0863a8a17a53c3ae82eb903ff584cbccc26704d493032e5cc6d802391a3518d1440d005b39f43ac065efe461aa98fcf7e00b603d3cec12b803693c3adc866552ccadb158fb5bd1d1f9507a8ece4970637ec7a12e01835fd5aabf0dc63c6b95491e7458530b071692cc451378830d6e755611bdab4d423a17f7f9ad6c142a57f435a24222d767948d406b888408ae81b8d536b476b62b66a6845d51ef6aabb6264488e94411d2fbd226afb9a224455e543164bf64c026ef3010753fc7674f92161745585a189e8e718057f0e7ad0014168d2ec0c331194012fa6d2c323173e37b23a8df5a0339b85f12da9195c6784ddcc3e41dba6698792468d798e76a9067f005efff22d153e945fb4af16ead541bdeb580764bf0e23f6623babf6fd5e9ba5145c8bdbb995346a1150db84941bbd7959be7f193505038fef992f96c3a01ce83662bb46298cd28f00f549063f9d55d449dd4077beb2169a43fbfd2f792f0b3ee12728de898706b26b265d6f454e586081f9487b1641e418d8535d30acdd5696cbf709c690d7ba4349f17d7b1f5ad0898174df3c5e172180b2c533d2e2245920669f7d109cc266f0b9f2f8fba4b8a8c72fd21775c71070c68e62ae22eaa003843a53a01c98884b8e5a30a54ff3139a41633fead3d0ea6d0a24c13286610f0710f524903049a902a8644082f8af1642fb3aa020df4f55d3b8580c7f00f5f3460ed870ce3bc270f9e241c1b1cd6488c7f6ebbe29c1a1ca8cd1bb18cb2d1a23f207cfa52679d00cc14e67a6dd7d0c0e0b8f451f1e184853c7fc45afc11abc2f6053e38b1eff29a3e50f744656700f4b1fb23e03a43cb149f737970992a57e0af079d5ce8e5887f5324eff133461197e4c8ea384b16187f91925159ebf19a62387f0433fbaf3ea013a6ce4352bc1c724449f6012a139c2dfe0306cea1e7600bc802efda32a613a0d64c28e5f812522842573d32cdbe52b2ffadb1c9e79b1ce587bc78c0c4e222562422dcdc347120aacb98befd2e83338a431879162c79e018e8c613c58c34accdf78785ad0568b8c96901e00b13c15bc21d527a1acdfe4a8cd0128d0bb999dd8e7acd41e38210c1144f6d8f14c6472ade4c434b21dcb93e711b39097b652b11ac55d112b7be98deac60f38a15beb40d30766255865fd208175ae03517d671a75e8a910cb98c0ec379e91c3dc1b4fdcc472fb40d927bafa1cd002e760c673a92ef256797a9a869341c44cc13fa2aee595603f1e5b79c02ef63f31d9f211d875c7b0adfed4c1fa9d509e15bd838577f9b1dd3146f8ab3c87f2b5701b80847f4fcb53d47e750a43b55005a222b288c8cad4ef58208a57ac9a7109dc490557141e2668a7471736f3ce19fec03809743cb19beab25d28bf7415dec378fec6bfce6c35cdbdf84b74b205e3758e18e37e061e970849ee80bae7281a501c932ff57aa9e279174f0bf481331e2967f11beee67e87f4ba15908446addcb99986fb2bcb87119aaa8e56be54f78ae7bc05b6cadd286a1d364920781a125629fa558ef082a7dc3f95967bde5e4012a03ad191b231dcf2eb8601f566c9744cf8fc2d7f9d8846d54bf566a68c57bc9ebc6789a6a34d35804c18451e9a7454b257c76b853b62616c169fb0958429222d8fb5d87b1470f88df2e81e2db3c56f1ab538d1118d0ca2f8577f628ed9a33cae222ccfd658188d0a592923600cd8e35ea9774166655990565b78c642408a8ccbc2ddba6642e8df28341146bb41240f6340f23768bf932ef6f621696491382cc2cbe2bb8a33468a9d12790d37aa04a2cefb42ad4332cb75d8af3c39c0043d9918e09edab26d4bd991a2747b2ae41e5fead38f02c977e1ccaf1d07316b41c86de4ecb821f52f3cdf3dc1258026ca937b35e9075e1336b7870a8bcf02320f60850cb4172b3d6de3dc88559c4260e48c969282a50dc1927a515e31655009b93dd95512ab1d6d586f1018cb89ffd0d1d852d87bac70a48d4020417b4ecc7537af80549a10a15344203ad255e0142a42171683fab2f373d9f687a5056e72c256e778b3653250921d862b860ac91686cf3332c872ef89702a53dd06b3d6d3025a7ce8afd6b4a96abe4030605d46e7b78e5b9f32e21a212eb33d7638af86d07afe3c3485fef73af290c9639468f1153aeed41d4eebe8a1cfeb55837a6d33c7938a1875d9c0b17167ad111d7276432592db03f54ca5a7429417456a348bc034505023a996b0ef9040a6982c252d338427ef73e56dc4e2c1b353747ab963ef8342299da28b6a2386b762602ca1a7051f5bf2c1add753c75272da2955418c8ae4fef00447fb839c9ba3b9b0dedb9ac0999f65f65dfbdc41a5b402bb4d1f06063d4de837cce25a07d740e86586d9aa1a411a30648dd172440c4166a8b3040b894ebe056913b73e1962b852fbcc1b9163f58285375fdee21062402c2b617ab4588835dd2a7e07342289022264dec301794e81441f44a1fdf71a63d3ec194bef08cde8d5e45dcb51f092bee24db6c81fbc94765949aee3fdbf43b4c575ac7ebc0bb8541c26593a62c86477781e9571073cb4d162eed57ef04970dfc8d9a0436481a5461b92307e07871970f15c804254ea9f23ca874294f5daa53b0bf89483da6221ad319b4d42c4ac741d69328d3d2227a8d6367c4259e90add04fe09f03b27d08f41d800bd5815441e396eb01f6aec116dc4f15c93e9960adc9236a28281da40ffcfc560d59db974abe918de466b286da46e995dcd705f499a36fe584573800e183c6989764132bd7b6ac779e45d7b87bb98215c13026fbf72e649ab7df491a31c632a83a341501c04dcb7dafb996556e824f592bef0428e8dbc422cb764fed6e9c90feda6db8a8fec0f68ae3b8a36be6b23425de838adac1c0f34a3ad2afc0d88fc86a1a40230dd9bce0944c055a11298eefd0eed016db2eca64540058c6794db0e4152970d61e5db6ca24f566075f1003894e14d44008a460930d7645d17ac46b6ac699617ec674eb119d704d4f197ee26326368ab3fdd7ffd7199733fe27708160a3ddabf587c18f87e07d062c0ad2d99d07155f724f3122e6ede5b026607579768424a3a03186fb47a29800e791e12888f1e579b92e742552ed442e5b23361188defd0bb6b7cfbe8742c8ea83c2bed4d6cfb92f55fcd126cd46dc1cba8928062cfe1b7e68464ac1883d19720dc0006f155fdb9e7dab84491568056b34e25c394ec702ec12088d9a2c8fbdb2f176098eb78492130962140260bbfae81c4179d4240015a88c1748c35751e3f223b5cba6d7966c4c93e7b944b3c653ca217024a5d1a903b38a788b78f2700e80a4a5089865b49da0ae6e54c9e32fedfa495a1337e789c25d15ff8ec2d5908b87010dd382067e4ea01faa71c3c644bba502568bf8ecca73af54984292afb0db3b80361ce79dbfd029e0796e2587f298c4e152b0a22e1533f6dee0164c49d9b81463f8318688ddcbbea7b8523bd3e773016b160abc822129745c26adc998c608903d87f3282206f19a9c53824cbee40213e0410b45bf755bccefa03432a714c695600791c4b156636d9cac4b7d7e3763a20260f016b9092baa064e29b5d48ce2e804acec032a53db2e4e69128e08603bc7830c58611863e287575aa730fd6ab56eced04213df4ecb39dfe4b2fcb83537886f243b4aeb5ccaf9f9925ada7ded0720945df935021ce9d907b900306f04b06aebfff276b4418f79fdb273d7dc813ec31a9dc0b189b59421daa7851923ebd88bef6858b905f7ee0897d02c997c713d9619b60482ab4b886fa3f962b36566b220976ab016b393d8eac9b95294ea2f12b01c1b168ac21b10d018d135b70a11d156116af2069e0221135dbe7b0a76c5668c7f9dae5e99d2c594df67887e4f8edee6be52e998c4fd964f51a00a00ccf67d61cebe68709ae5901f5c63baf4b75fabd5534fc4582e19da0ecfab016c48c3a413f960371068e613050d5edeed88135dc4564c087482988161ccae45ab36410919611110150b5c0839e53ca255dbf75b25f057f94f2d6f6fd01ae04bde292a1bc0ae147a75ad075087976d22b41e4f3b29ec98f90ea0ca2a9e38a6700954d99f88fab7c3ea2d40b816a8c088877752c0117a4c73c5941db4c0c49568824392bf573aa4f4fad143ceea947d8f96064f7a2186e68d0b00b57ed291f971fad8c1a9747a179ec341af650cb62ef59635130027789e90b099a2bd27a5b0be017229633cf96fb9503f21af1fbc1219692f914940b9154e4619ae613bcdd73723739bba93545326e3fe73ba66799bbcd020a87c029bdf0ba520046ac5dfc097e36d15e6739632a708d8cef30757915c808b0a6b41891ebc33076293bb3707cef4e22cf29eaebb5c9c6ab148753e990f84cc0de240878be2a1c6215b0f5367cb2e52a2356a7fe2b39852d7ffdb41d6fee55b3c904dfb304a2eb0bf236f69bc35dcee8f854dd31e8dcfd508490e4e6200bad664ca8b2ebb4fc330454d26d3a2cd43c0b76a3f2b89878096063ea2a871040d87186613f2142c8f7c3799afaf006b78f5add2e9d0620ccee55e4299e590318ca6234cda25cd64dabb539b9c83afc94b3bce83907db22b04c587a8fb253e539f7b5774167c8c6f874c96f791deb64cc22f0c48511d5b5e2dfc0326250c0544dd87bb8b3564917d6afb8c3ecd2b279c5730d8346c840a8bedd2c3cab9f67e52d68072245f21c3e01b25306c4747589525f8e396baca9e40831128fda57f2e60f72215bc20d629bee2c400191c0b11a05afd68d086462a785a8f54616643e5ef00adad072aae5bff1f98b0d9fe80d71f910268eacfa143fbe856fb4c314a7b76db855434f75745707b7ea70fb6ae9be72f0089aca254efc85f74f8a2c1a0720632d1849a2569318fec3cc116be6a5258484f7ee9d9697059fbdb3ab21e1a92dd1f102061382029e4302ed1acad673254e10cc9930d28f1a90de19c800cfb951a1b7e1dd6a5455f33b036e78610b766c0653976de41cb1cef771a47c086aa2963919aa6facc60e7837734cd536253f2609fbc42962fb487454dcc2dec423bc0b2e42d9476955e48a212e9b32cf8015809c69043c10a8a3ac7a3d14f8675d795710d560138b83aea4a5d6f3c2efc157ede73d97297c186454147b821907965af702c358c42f719b07af90fa56c41c293809973268b6558a46ff9070bc78c7461310658c235032c678f330471dc824c76421290587005e99e7539d9b05aa169dba194c8469301b30caf5a8eb3a46484aab26fd21517273f3f936d76614181b1b81c526a4d39532fd292e5114ac6c385dc141ba6e843084a2065d6a67de68f8c52aa6b992682a89f36cb54cbcc398437aa2a83f2e501705f217349cb90e1ce17b03f2fc9d971f5a6f2069ec29a5e8b054c9066cd7e4c37e8ecffe688c0ec9904bbf89b45522c8557a1134066a34f2a4de92558230061664c594ccb557a461a5d17d5bceb4c8c9259cca3007b3d1e573aafd847574b1db70c4b846ff64832d583fbf71b745231ae1b7e9bf0a61792bd9cf3812b678e00a147d1ad94a9c7d24e0822d57c030483b05ba4973d90a0cf8493462bca7b232ba82d58ac20b8aeea6773f3b773703e3ef7f8161ffbe3ed13c826ec91a0485ed4fc57023270f402316b291cddb0ee2d9dd8cf2816245d521903716ef185f82b771bcac873e96a9ea681ef38a43e71939452ecf0af530dcbd41beb9a8da1044c5cd5d40d0395eb8519866c80548737947ac51ef7ac7b4fadbe9c19cc5512dd3427f2699813efee982c50d0f679feb8119eac8fe30369c64dd8fb057cbe7abd79ce5519159c40e917a000e1b3461e591313b9b6cd68743d5d8a68881383773cb26f7a0cbb87af6951b37cdb527623dc5df9448f4109b0c7a0b54091f92c15a4cf401b582aa2bd82c5d942e3f2c91d3e372e148b654043f24059220f7755f94c2391f816a463f3de04c1b1cb39e94a05bedbe06d4262a2f19481680446e933516c1a10f68757d44cfdebf1273155d458e9700a8404bc46763e050faef79379e8c123d3104410e0c63c20924ccc71c9c3af74cb20d600f1f117e9ca7b48de5126b2339124a84917762a928eb5d503b147d4aea0b4038a5d1d5198bf73576ebee4012d05766153649ba7500236180ab87064ba7cf019b19a24f4d96c3b3daf9418637f2b1593045c6fe3409eb7ba287cf2a5948eaf799a2149f90efdbd3e934d1c93443a99deb47df35081f73494f4cfd899db95b2ca305a94a6bb5b96433adaa1917c2ad0fc4b0e7422a650303a7c8fc5b3a5679889d8037e51e7d38516a55010a37e39d4da4cd4ca9403038af99b6a5a9af2aea6882a0ad1cf0619b4fc0e808156a8149dd6e8a1b2591260188671bdc816464a3b8c6cb378b21da030ff070aa2c2b8c534627b833e14dd6681d4ee48ada71eec7cbb946de5fec3fc2458c9b88966b0a1c384b6a5b409bb00f125823a61ad0b2d5c05bb44a19d73145bf8533098e036d41b37a48a0b704c91dba23729fad71d08aec2b545a8886ca5f33dbfda00f9bbdbeca8fb5e69d698bdf8dc0c2e1bb4fabb245b00fe33d09097c130c029477dbb52dc9b701a53914267e3521920eee574f1042523ad03a736acf01e099bb581c13322ed8eac195c6ee2f4cf536862a070eafda155903435545b43f0301f295c817a3550bcc3f95f5ce1ba6274625d232f4d8b4dfd7c250d419f1b98d6081d2e64ef3a9ea870c7f17254b7ff62cf170806cdac0ae7d593f6057390c87b1b40f9416127630c222449a62e8935f1923775a89019bf8f14f8e627bc0f12b1c43302e839a4fd947f107970f869b1da72d2d162faac77332e03a63f8bbc8168ad894a0f8b23a117ee8b06eca182f7f1f3324953ef548afd1fbc03816d68f7ea2d59c725f6d5c1238ad2ea7a3b32f819965a2f5afc40d6ff9132dc9130ef8a94ed8aa2004b3d524bd1da4147b56eb80e9fdaac89e2d6d17daba244d639d9f433987677bd41989f5d788b139bc8549fec38a2a220a50a440adffb9201077d267177d988ab34caaf3ca5f81038c36844652f704ffc18ed331213cbe800d066f64aac1eadeb3c9d89d2351dc010a9bb7293110f1cd5cc17a20aa9e3921c70dfbde5a55e48fd32b8357c19668b524597c9512b7f78e656528bfd8cb0382cd3dbeeeaf90c6e3278047e677ccfb215e2a513f6da31a73a847e5650bf06243b2c2e9a3219a52c9553fa980e8ca85d6d8865dc82060b8da9524ae8a9765c4e287cc3d274cfddd4c497d70bec9ab441d83e2399a7b57ab1fd6b1f003411b88f5c89d37110ee5ff3db9c98ab004150d2decc45a2242fd5f335cabca58293c9062c4a960044d21444051ceee2d8d9c2beabc770614c5c2f1bd5da706398a0e84136397a4e90e40911f51c7eece3011e4c50d7f7f3dfd0476e5d9e66866166eee7264d6226c7d95cd8bafd7a79d4c34b489df0834f47b289bdfc323e9910f8faf8a96c2eced1f16c78571ea465ff3b705380e366a9dd660c31d520151d5b0b293b659284d1786b298cc55f5d9d265813e9b4dafb7b94dabeccbcd5adcb48f2ed884218a200ce51befd28773d3813e760185b91ba81ef2db2d5c53df46d0a1521bfe2dc88717c1d468ccc935e638a50b04c6e9b1b958380eaec61b140098da0c5b944d57b82e5a9a8e84623c1fb248e6ee3e98d2c795c68a5e5f1a5c603646c97258d6b708cc7a0711daf658a94f544acc2fb366cf6afed10012c444fdd6e2a48141822a11406d560f7463c760323af3bd62aa296b55ff655852c9091d710e1c13fe23eaa7d410784ff5d78498d2ce3faeb78514350f71e37bb62c07d581d9ab91001c93d45025d6b2f7c0860c554d9287d661fbc1d8825b953eeb3d12f07c1d5a6d24581d5a9d691875c610990e62e0b64b2987b1f6ad0a1d3543c6f91e4f06f665fc8c8c0e1b89d6dfc9e8d97b165e02578902009dcc6dacf3ed8d3e80eb0e52c826e039594f962b27ac3b98001c473f2ee55eaaadcd1f0879fc5b88752f61c87c2a7ec2eb517e6ee2ba42a56f8079e78de69f908b0cf093676e7ea051be4c5df68520a1660b23e9fdc86e796c65c4dd7365f7feb57652d7d833b385b1d3b98ee9b533115fdd78cd9f02791c9a8be6f15f36dea5fae6a91cf16dc52de7d185530692432498b529205d3900259058f3bf0cb2350dc6c2baf095c79ab36a7796cc2b521a654ce903e93595b65f909b8eeb7ec3b1edbebeeacb4bf2961ce042fdeba3abaa633822cfdd9dbb3e5ca5690bea3f607aaa1b255da232cb6e6c38e4f7c834a09d5888a356e90eec177164a60a64db1f78f2e06fa0d44e46452bc07438a6151f6327cfae76b5a3549f0f40f2ec6440aafd1ac9787721312aa3aa4ae5fd9d505281a29ce8a8d2835756bfd70279750dd72876936c7a2cdc84e0428cc2a5696d2f11aea05822d4c496dffb1dc9164f5d793044f406d161366f64396aa39ee45a6dd20f0e7e93953b91a1dc9c1c54db90429e26c4425c24a0d555466da2b32673b7be51dceac12b49c2467ff7ee169512768749499630f1b30aadb854f076c4896e561221cfe4146e8af68dab21855eb7e96bb338943c9a34edc0697c66074c605ca694e61d6c27d3a46087f8d609bd5b2b584c019346f35757e8456f388ccddd5ba761a147d4451f483e9d2593f1e021b3b19a3813d2f00f2d52f8a8ecb8cc080c804fa439e97bbf2fdcee992bb02013818cd14de7d0ac7fc4c159a6c17b638fc23724fdf895fb098b109217dcda00bc9bd8ceb1bed3c356cdbd3630fee81ab20c65b244d955792b68d8619429cc11f86993f473b03262b03d5c8b5bcef14b4674487e60dd64e96c57a2bb437a4c803205b5188311ac0504f6b0f24cd27532c3c258556a018e58c8cb970e5f7d85f4648c300dd21b18698098ccc4abca506a5c5d159abcc0ef5a77605c923aef5094059990f23b84b1981de88d63359a0c3e05a028b34d9f69006848a7369fd09044154d5cdd7ada83756d428b65828dff536e164b33743822a274e6d2414e4b921b1866b0074a5fd6360a7f11c3bcb40c17539ad352470f8d598d76b923de43d392f436d3b97cb1f8ec38cd0c5c37389059105a72a782a8bd8f701e9d046745740aabd2c5325813340d5aaa86863bb50faa1eb7cd81eaac2adc7e8f4c5969bc6b302d6d4c307effed4e107e01634283298737ced3c076de97ca4a9355fb3c6bc07326b40cd439bef6991a2053990fbb331d85dcf3bb2ce687809b41a0f3d9752358a2640092da1372863c2cb46cab30d38522be522dd97a8997b886ae579354acfc521591f5177467d6cc24fa743215ec5085dec07d52dfbd329cc5d0285f7e8e96aebb2f739fc4d3bfba762b4e9c0d500ee5c396d259c9a25e55ad504d45ac0500d9596cf471472c6497e1c80a1ef0c8d58946a51c0f6e12ef7078c85fc82939a8762999d052871e5853049284e7b173c9986dd1793dc50b512470f195711328b32c7d674450807218b7f7def34896b26e215d4308a575991fefc9b776d8168e3665c114b62507fcbe8f83f4d1b85b1abf9f0ce716e3b804dd810f86cc60a63efc6f47c261420f6ac429e7a6b225e8f01986caac0e4b1259606bcdbb887c4f40f4c3fb7226feb2d1a6640eccd57cf20446bb40ea84ea8e201b04d0d51a9f586ff429ca7ee8923181a2ab24a633fe28a001965a56868c22030d722806ca56d42717faeb754d568a976883e3f95046ba9249feeafe13b1cf53205a6c4b2d595dc589da52e27215881f7d46003e55b106026337967b1ba3fdb444450ef0fa6c1af7477c646ef6925f4db87bb805723ec99dd1e77ec209ccd5298fcffe10eb304a95706ba4777ec1a49020059785ef420cf9bff8cc1ce09013033ceb911735d989d29183078b397c83a596d60158f27403b384432f1b3bc7d34f3c7331cd08b4d4dbec4dfcd08cb5ca194ec35fcd9a7b6dd32a279cbd9859e71385f3bb03d0019e2f3ce7b41f0e0dc409050613d9f930d9bb2da0e8ca255a824284ec8d2ad779add20cf15a64be27c40ea4f7b4bfb46a98c885c1fc1b73f933901927546d1f928c6465dbe0e3fbf703ac991c3dee188b51a43bda38775b83d8a4e8815d1e600cf311263d0fb7b4f7e128a61a59a45c6eeb134cbc3d813190f544474ac1135591e47b8202f041045d8503dac2def37dc4ca51f50f508e620035eed010756c0698367a1924c9592dd13ffab8ba2871687ac35d430e4f21736b798f1987589792769240a9deb36cd3df0892b9673653e317850bc4d3bb2814d5dd4f0f963fc71a8ef8fdd90c707286963680cfd07ab76a22348edfdca849b142448084aca24fe65f6ab44f8742fdcc5d9ceb28af6f666db8cac12d0ff7d98366b88e20779f8d09694ac448ea05a569014d068fbdc9cb7a33ec250e35c3f7f8946216475b1e91b42c855984c7ddcc3fc1dbd8d51d06e2134f86e25123871a2d06007b8cadc5b6d1e81456ddbc434a1d40c2d491a3d21deab787dd5b55d3e3304aa24a874ee4ed83847ec0483d2bd8e9072029a621ce4b7af847b8440faf1f003d6626664b89ccd2266646e7d9b17e2cfdbddaeae9a728d388a9423da9a60a6e3d07ffde8701d7931b9b959188a617fe90420f08581a32a27277ebe4d63021fdb44eb06aec47415285483974d9d20a18f377461d934666537a2b6bf0bce469874f2ad4a6c1faf4c25f638b35dd24134c65c254269a62a2a926d84e375831a699d094494d9ac434534c32a52913d2b4f62323d8a000b79c573b96d041bbf2584235f4051eafbba6c6c70c50ac694d98d0a40994c136788fb0ce6f4943e8ae01baa538ea2e2ea422601787b4a86296fed0f1d6e11c07f1b73b6011de9dbe66d1a633611a93a631c934934c6bc2b426b3f9994bd0d6be31eabd427087e4e136411589584b0bc6f7401212b04f573cd97e71e00056bc60c3322ef5f9755372728f4f3e02bac2a06af2d8710d9553f2fe9836e600851ed9bb99b6af2fce1fb452a7f7b8fdb37a610323d2cc13986ca118cec237500ec3e51a0c5b8456e861d830b7c5e9d4263820d52cc181022ca25824104e970782508a7232f64c0d9d585a188505a4725ab51a2e2dd6f1945141da21498b8220229293ee8138671e4a7fd0a5e4f558fd8ec31673de8dc50719a8774a0854e5ce5c11f609e4fd7210c5b527173d47dfd0ebe87ce3ea677cb3780e0939a41f13424b53c8a55e3bde03c70a78acf81e91c69b990334c79462ef7bd33826a68c13195b70de218a54090d29b4a7cdcd812050d3480b07d64a8199e02c2a50d645348239c71371ebe2a942cfbc591a58523eecd98d3092687e6796f263d6ba7da176ea7189c10c223be6b66944241d4d44060840c80ee9c08ba5fc043eae05d113d239eeb567e12cfa729d923051554c294959601a8203b965fc89025fcb3cb85f90cdfa07c74c0920205f9fa4d65cd92cbbbfda86dff633cf52a3fb0c6650f372703b4ae5e550446d50c3bdf7d536c147e0a2201ef4c44cddfafc0826e45cc6b576f8be4cf932dd844426443aebce91535aebc99c41540b6df975bc568721378b265629996684640aa3550f7ed27f5b85816f7d355b8b0d9b68c55e81b1382f91f14528ab44ba00e99e8242c94eb205423c984e3b4f2700e5df4e47caedaba1687c388ab356c104c701434b458a7ba22cc41f1fce8e0fe8cb8caaa46553ac2eaea48106ae99f73c2d983a87c671c932558708ad6b41823841536ed9e178f2b6c481602a71837a3cc84bf31e75a1df7f4e538d14520fdd210675a9f65b951ca0d05d4f02c57bf10479b3bbf942e63b1c5767226093c910be0e41a7a47bd9fd672a94e417b1391d060e0e46de035c3973cd89f394eb8a741ddbcbb7b88328b7971120547fb246ae4d40804da67b24876062ff967fe424e103203266840c5acfcb58d1237abf00a8bd66c7b90ec4fa470c4a0612c08decf3d3303317e1f9c0dbac4eec552467fd8bf973e931f129042720dae61cf89c39f8bd059e2c3ad29c895a358eff5fa6e1bfe55cb259d0523480aecff73e1d88a2c5cd1b8a0923ae24e7369905620be1ecb969002f0ae96047e691c94cec7008576e7eadaaffcc28e51be7c5bfd8069c5cd170e005027b63994c14d6a7809c9c9e15a0bb1f2955b9818c3e915f369874941417f7ea8a24ab26af3268f4b8d62f7826382db2b939ad9745b386548460d8ecb173f0aae546c6494ebb7b9a474e086883b8e081650dc99362a3d97fb305ae1aa507484594b25bed8f14c88ec6c793912e184ddf741340ee28e8a4a0cb8402a8171e509bce57e1ae0667c01b330a6211fbd81d318b64f8387c0f4dcf0406430ce76f78d7f4b6bb36fbcee2e8c128c054f8803fd61b12714ff743a126f382e913f710a5b130ff948a824485794c181924b3d5adda1352b18f1323a378df076d49ac9e0076cb72c87917fe18f531b378b65e3648f3861b3c9b007b47c76d6c5406c091c559d62a6a4963891efdcaeb2d6b725fc74b4a5246ce8561ec62f3dfa5cbed41c58e1378e7245d11fbe40ebdd9cf55c94fd6982b4ac729abe0eb1ce07ecb29716b5d27a6204f60e04dc02597133aacd9c3cd19d684050cb445e3e648d66e0c26042e83cbde03d5d8c40f488ed1dc32a901deb0e81afa50a47fbadb6727d268a1932872bc10ae40538264a66f41dd7a2543436a8ae3d192cf1dab45fe5a2fd37d9adf0b812c0e6024b444598c6aa9d88c9cf985b38aa42823879a24739cc1534fc05f52a180c1c380ad91ec27afa61ef24366834e71413799b554534f4f7a1cf69003922595f63e398eb5d47b1062ee789e94738001c65c3809df5f04b99602719a34ccb307e3e0c4e097376182c2be5d2fc0249b3393daae4285fa5c15ce83e23f8fcefdb9ef42322b0af2d2682e865a7b50914fe9c733c40adc81da9ec1150dc7a5a16520b6cd59ebf1409fd16cd0c562992ca747f121fe31edc3580666e690107c00247ed98d81ffa470e5722450e4eb7271bf1328380e8273e8db6544c0f70403c233a7d366c9d2e56aaaff4ae1d3f5e35f81ab26390e0cb31285a1c0e144eed76ff06873dfa064e815d2f26509160f56fe3bb7b24f53416194ef8ee24a1cad5c2993cc4eec0574c682ba0c84bc70dd65a3391595036b5fceae7eee92de0b9ee311e3ba135764ced2ece519942707c1eab1c8c4c4635cf245005bc87f04155cc7650ddd170d3923018fe15573f7fce4866917e7d14849a2144655e3fe646cffd8e73eec97a7a9ccc74ed1c299232f37707f1539d7a793d96da4236e5646cb3be8fe7cf67177eb66ab887ab3d2d8f886f79279d20523342608600c90e379f0e79faa6670afd06cb43154125060446f43d7c850be30e52ca5a752f1383d0a011c2ef339da34315d4c8a88463936686fcc3aea5ebae6c90afed0c36d3f93f677bd4988789eb5624543b403a430b0a5fb2663e415e034051541bc1162b41de55b0f3b581c0a859650df6ef88b3d185d30e6bb34a842f1e17c8c18fa41522a2ffb3710cfa80d2fdf8316c5022e2b5a65e229faece6d7df1e952b7bc86f3ccf5730bfe57750951c30ccb36f40259a8a93538a87a0c612b7cb113362451a77b721f310c9788d281cbeed4084fdd3d4a6ff3a848e1c238cb6070921f853ba1713898a3df7b589fa0d6c90d0c544b1e5e46f7ed2b78f0409c85c2c0f9a74e90cd4b440d2ca0ac124bfd8c98eb05f98752d49056e12d95459e7ba01a68d7c0d6c7cce7cac5f1658648eacc47ddc3fc74ec724bbe10f3c90898cfb97c41b1295d8f510240d99dc5523ccd4bee04a7ee27c4a3b846c6f8a4ae0dd8a5640c302bc33f549f6c7dc39f0863c0c28704a12dae5433b86c01e478c6a440ed6d0762d1d881aed38c03f217c7a1f72ef00c093e3a347394478a113eba27bb36e4d5d3c1526801db191d713454b1827148d097eeb091a764794d68ab17e4b4319fad712c3b526c0c04795499f0fa793fa8cb311413f7da01dad544e40fe27db9b63a092ed0eb91d51589972ae73b89f03795e1b65666e4a22ef94e88f0dfe4a293faa32e47021903b4cca343a6608e546cd02a697baa543786a487936beb6d6a9f65145dea3c2fce1198908e6c5667e0d2121f605985db3c67bfcb480462eb2e165defc9be40e180688cc1a7eaab99a8877621448435f2b6307ee164ab32cd8bbfc40d95d5ed8c80353f5a91703ac833efe85924ff84df8cb59a49a42c113c5dac0e91c4dc77684d2390b1a2e3b30a12fac364a14f43f807df3353b41c5aa5746383be2d96b70efd51200bb055afa5f79a6fd7d3ea144bd5cc97056ad7665cfa709d2cc56a4206309db95eeb249e0d7b40bf5328b4e0da8e4c5f295fee97a0b14f9cbefacfdd384b75ca751ebea1554195d07f7d53413e8fe46c1a5a7eb9f3e54f94cf53d80d4d493ee86464144bd1c874603a9c5f59ceb1642ad86dfd8575a63c39a2d65100d74f4008ce0305a824d6e8a2d720b44d4547c8c2b21f3d9758b6c711f3cbbbed451e8fbbea685fa3abbfe8638a33ba89aa398ad5d6f01687ee7e09d75bd5d472308137a8a2f9acbd4141310212efac89a5081d676ebe08fe3229aa00d00548003ed6806c2a15e0393d58460bf18c9e16da8d8cdb70b4cefe2e0c26385661df5ce68e346e09178c822316564468a98c17bc4a3395c4aa0c6d4ac6e3a5a5bd4f96c132f40cdd0af14d48a4d75fa5696ad7128525c06ceadcc79f18ce0b144a439a1fca0048785478af09efc3da7912aec6ac55fe504b2b301c70d48f38f1e457673a990eb67263abb1c2975a7e7b39f13379d1fdf451bd957c66eb4a4998899b5f0403dfecd3d3375394a61b9bfa2b16e0ccfbb2fd058471df6e9b11fa13a60891799f9fedf1cdfbd7c90fec0db9eb5307a1c9697d2df7f5d8094e27d2f314b296fead018ec7228639ddef0ab86b123c08659206aa56518668e7960f78e63ac83c15c8b159e3cb6b4dc2dc6fafc0a0d8030792f5078501f36944ec77216d95552074491e2d62d7fa53ee936d9249a36e1f191ff58cc6df17d39d1981a8512884f8d988700b3364b431c5839cc02cf1700330dc157687497cacfa52f5b8a38a1dd2e33586585ad24cd6d3b6b54002d5af83d46cc8c30a0968bbb836806b5ace0eb3c0f5d4a49e9b8a528568a61cb4d017d39ef35916c29466511587c1714596345124ab850b5dc353cdf4d5b00a6ae776da03b4223d44ec223ed68a751754e228ee8dfc0cb775fbefaa0efeeda5f700e33aacfb5c356b13b1a35602334414fe107cb0da618833f22a804d79d171c85e839f8b99879e22e5fc1ee06f0049cefe128dc4087176573cc5b02af6f828f6860193d5196b4c6d3d19b812935dd48de37ebf7f39d792a753b909eb4fec7126dcdee7deceefd6522ecbddb4c99ccd7b206bdb8b66cf033f75acfca0fcaaad01913e607a1db7cc6168a5de32591d4a0b274042ddb28a88a71e0ead88a38767ad4a9338b8cae51d4f7c86a202106b4043e0b603031384b410f4467ed54df95618f337687831fe308e292db42c41200787c6d271616c9fd4f80bed7bea25c4fc0acecf4732c2911b3e9caa36ad9c46a566edb29611a4594f5955120c8925198a1f40288540b1e833177d37f97de516023d68ac7d42ff7abd301115ded0c58dd3f1000238fd39dd2684f4c341a680feb488cec1c26519b80c59f69381bc0437c937090b7410590d7f05ea020c02a5c37259a76ee13f6b6651aba4ffb6c33970c8b664bdec952b92d88bf7cfca30672cf1d2ff6f5288947e9608ef6610afd182e00dc866d44ba6d185094f01af2802a53f8a69754a1217f003f56a76311858a4f349815825c472a5472e88941d0516d571c8109668fe16998d51c95270c006d8d0c5f003700557b8bd8a4bc0f88d6be8288bc4d4af5f0b1e705916ed4b34f2278267a8699fe8699eab7809d58fb78182d463c3d454703e63de2569474f863eb7421194167749144f9cb142a583beaa8751ab68b7b9966c3ca8d5703f71d16ad7756b29ce9de9ed34eb6e995fc47c93d729aa28b3613faabe2946d6c2d30fab1ce1a707a4561c28e70146d9ddf45ab614141e43b2ed874e25758e27b175a05fd23b3db4f6d3467a959b31f43202d34507fe667528ac82c39b20767c29e39627e90751dd47b2c03e2b30034748e5d3447a30715358e7d54f3e65458947b52af59a6f59446fcdcfb009dfb8f7016f555bb994dbf2378a2c00ea6d2ebba01d5a9b30b1aa9754c7a2d9b6013e50bc09296785d28829774ff4a55bcd54cddc33730a76e660d56adf22072c15fc1775f38e7502ae0243fd1b470d48d865f7f2eddea89c75ff88c591204aaebeb88db4f4adb495495c426a91ce5ef20ba6695782e202336bd80588519443844c676147e05d2728ee296e27956cc16946a4be7d2ceb3975e4734a7a4f14110806f299b150ffb8a6a37b28ddb8acb3509035920a368676fa5c5a270622eb2e09d236bac8d2b7d13a28d6abeb484efc02fa2edebcbf46d52a764358e51c6666f474d4a0df671fc93e96c34e8680de52c41f3bea99089b2590a4a190fe92b52a5db2103cb3234e32bdf621a7e9cc1422d0477d8b660263cde3fb78d55c6399aeaf406ae988935d495352565d2911717a04e3d8fe92b076aa59141550ee19641ff071c9af107cb6602ca9df8606f38866e04c1e9adc05892955ac895ce42f2861dbb7033e3c51c143327406cb1d0d71af4d024637952b22f16c3021f2e5bda84a49a94316e3dd1bc2be674cfe7cbd16352152ecd72cf90255bb7369d7126fc2582bc1c6e0886ce51a98359a45c0487a03840c9c830ed2643232cb69d76b1d1f79658be045d45fa3b3111e0375767533d08f0d98b50d7e3d482bbf9fd0182a325a51bc441abd45129625535362345b8ade2c6b30ec61b2b976eeac158e3a254bf0e8c1a94981ee9c1a254a93e8c1a954be9d5c1b851b994471d8c1b3f31d2933173f1c3428306c6e3ed723e36cfeb5f8f042ed02940c200b39fdff31490ce7a0cc90549fb05af8343597501e135800be1d0b802acf7d1b92252a3524c6d3082b98fabb589428a392cafce75a93708228f99f04398933e0d54cbe36551d8217c450bb4bddaa4e1669a3fdd73e7754ff6faa72d042fd15da880b1d9c35b6b04d9f3428c927112705a00ed6d9358296fa91b92cde1d455e95f7c6e2ee74b16d68b405dc6bad40deda2bad0a23163efbf40026ca943865e578e0279a19a3fa7449efc90f8b37ad332bb68b427c0c37e3e947835aa65be7122650acd172c1f230c6f8a65d61d69c50cda177947051a83729a19555ae16b73e6a5c713242e07cc340d671759905b091338c674ebc6798b23592a56635c611d09df3a64b620651929835485e9a42a275934de6df2794aea7a5a9eba14c3a44f8dcdb4614ad73d73e7ab6c1a21513671984ac94b4931a9843520ff3b0aba64b1eca5e92f782a5f9872ae6543008a77a6e97d0f44ffdcaa517e52fe1a3891d1bf34b0783fbae20d731bdc4ce80332a66c5871ae1bd94ea034b07b074ea624f5787480e1a5d63fc680e8074e5299674ba0587d5d8c169522d5a36270802810bc324e22aed40ce672866920a9cc62ba876eb8555721638cbe61647cb4c52a64739d4822e1b5056719d84347dc5d3b1cf6b84ec4d06497373c4d0183fc4379e615a1c9571e16679c3c3af195e2f2370d6ed22676c3d51002e31ba2e82a02d5841a880aba59e5ae131001c9ced0d1b0c139a3129b11ae9702e8d86bba53d0d73d67c7d23715d8e03d6f73e479e5e378de4b41c3f3228372165d4cd77adae085544aef6b7bc888f63b970d200a32b5d2dadf6bab0b209ab7f6ba768e0e6cdf5ad5efe2671d8974b40b3f226c6f2108ce3889aae0bf2490b55534f388672f24fc4756361267f83aa6d8cb4e971c4f96aaa974d452cdd07f263d67935e195b155d740d587d88a61a2472768f82e09792a8a2274b1a0d46985b8a975195b70b479fc98168afa1913670366caaea430f8fd7bb19af948d54bc7220e0eb3584d4bbded735c9dcaeb0c7b0f19a15cf1ba4d3d8ebef142b718dc2ee6861774c9c556d2792537228f89dd62c723e32c97f91dbf00fdc56837c2329fa6dd95e89df44f01b51038cc8cb42baca8bf852828093d4c232c71ba463bb8320ab4b8226fdee255bb4438ce81f234927cf7f9d3bc03d5517a5aaf7bf7be3777664361f70e015399defe4d2a2b015e0a9c34a82494c680c1797ec4cb901273759b0dfb8de52ce6a130ff0cb5ff69520f46f5f8bd83752f0f74971dcce2f474dde0a2aaf5821059fe0d79de2341c6df897dfc4266398081a29416d72c1cae054cee37baab788fa785b997658713a3cc764a0b7180dfe70df3167d2a22e0228fbfe15179253f245c8dc464d1dd0f8eeaac81a3d333dce8e215fb818ad3eab673f41ce26f76b7a15ffa6f9d76617ee11d53c7302805fd4e814a36948d42441650ce08540e14e39f3e5739db18a6bcd5007024e2d4303a28490f660df62ad20d717efeafce2c7439b040002152a602dee7f279d990cfc67977de39b2c8132ea1a28ed3a9fdc596cfb7873a49170b47d007d27392f5dd5852a2c918009f6043a9a8e9e10e4f1169088a64f09531fdb895b514bcbf0012096e03d54b5d73f750d3d22d1374ac83c828664029705aa6fdfb67dbe206216865b8284a01da57f4768a2e12fe624fb9b1df39fc4a98c0553f23e094a9c68579ab0e5a6dec041063f06e0978da89e2c589dad4dc2a20b354e4187bca7c945ebe1bb7a4bfdb4574803255c80d07bfc458ab00a99bce1a2881bdc49d906132c419441c8b1ea947dd123e267d1156b439c19ffd7ec182ddb7c4cf5eb4d339a07114296f2bf1f18b24f782276952df8e6d907736a99cd2796ee46b47ebe6c384c82933d0531b907c6d5cfae911640e52a37257d50363154a67f7616ce11d7d9be1e9bed1a40f6f49a1d19c0fd51e5cf944b173b9db5e3e40ced4ae953a2337d3b994689522c5b69dff2ba8f260b5845f16bb63b410ca6594979009bf98e10c9662aa23464e3c98f6d0b1894466ccc53860c18c49ca610d905749e06bb066bec73203a2e6126a6e8e2016474b34ef302c7107e25f90ed2b8e0fd20dff7f751996e52274327e2bfd1d8e55042741b9f161fa43aa9510ba85de9c8073467b09584ca3e885b2a2ec61e57103679b64b0e72619be0157cb8a1ef1917e4aca3ab0e677c6448a39507d1047105eda22d524541c4f016812c1c07640ff393c9908189e2f0f293f9c6d7e59d50c69e392666528dd871d6a9e9522463cf69302e5cc17974b73f7f7ec70803bfd0accc551d59a1285cc8a93e99ba250701478160c7d1a47048820b9e0b256e4852581c97d682596d88389d1ec17db3f0ae24ac0865604b113a5b8b118ff757a567b1091d1c329a075b5cc086e0751594c00e9b0f1d8ed55d12734e1964779e9c0e6565b913adfbdcf65e0d8297a282322a7122766277c8b75d59822b95a85b7418e68b08ee1c9d6d9745409769ad5683532352638e8ad5a90cbaf6ec84f5415fba32b493897ac491e75ebf40de190379869fe2dc3dbd5ff19c8f1d02bc52031a65d27c59309032930e33d02fb6ee4a025e66f14ef16fc3bd4a9de522828122e8ef02de884382d2587cbcfd22e12aa1e5961c1d0500055cc3309629f5e6a9bd2dc0a32c06c1abbb84d0509bf7ca0f3afaa17de4277befbda5945bca94525807cd07c507ced2ad7096e3325a398de3b89b9a753d382b60b8311df7d520c17598e5b84a99cbfe398e4a0c5ab6cb5462b8b2f9d0baf3d169ddd6553b936559d66ad9a0ba610e1b4dec6007d585eac29396a608086939827372ea154b389bcc4c3582a2bd927fcdbc8c6774f4af9957f2afdf1ec8abc73703673c1c323aeeccb2d56a857519a594765965b174ceeb2de33cbe5d6d8e52d78da6fdc6719c0685155eba1e93d3b4b060d7a3fab071b7df5a18b6d9b89b466bc6ad69dd75c60363ce9c81a2a3b43ed56efdc06de3ba5bacce878d0e888d5be34a6bd5e05c2e106c9a6ed880260fa04c1a2b37015106b8bed63cd7d8b66ddbbc8aae49cd0379f72b2fc841a1ad696ae5b821bf1bdd6ac530d78dab56dafdb0ce7ca19fd8f5d836ceb76c8b18a7691eade10571f1953b7fdb3e1f21ae077297cf9d5e90e7cc8ead98ba7c6b2685b626355f3ba15ab955c7d548e30d3938ad1734d55e501050163b21bb8262d3acc870d46b7df562bec6338262697e562b9ad4c45861c4ad9d10eb371647bd20192b70b85b2714f3dbcc56b716473ded091b2f377184d295accb4d1c71824b7fb35c8dd7af96d7a4e65daeafe1fa8efe55f30d754058d4d04e4848cd777704924b3f76979b30c28b3b63abd00377fb861c9cdfc3afcc67200ed0b5b55a2e4e7b9ce77ecb6c6cdc8c275329a594e37c64565768b92167612dd6435892d282c35af618b758a577e429e7ec9e734ef935dd30e67ad7c3c69d737e8e41d96aad327294ed3b03796b94652b45ebdcf9dd5895edff976ec859ae7fe584e4cb975dbcf1bcd68df33808febb5cd6f2cea5dfba49b2f4c396ebbb71d05d6027017ff58bfb3ee67461430e28f28ec65c0b91e69a9292184861b45ed61a8b6e78237e357660d8be9369a434caee963146aac94d56b68263a4b49b4e4a2926b5ae4b36c6e138e7a9df8198333f8c3c629e7ff3ceb46e2d66d569ddadfd562b0b6d599665abdf3ca1fa9ae7836fc6c4c4c4e47da9d8b62ce36256dda43e3f3e55052d9b65239090791a141a53ece9aa18ab98621553d596794c585c2e454649a6b13063e92ac6d25573e366387b695c59466db21bad7badab1d9521f75d7d9b189b557d9bac76ddb67574eba8747536b80362637bea63aaeb7bfd3c7a990aa90b5e76c26283bbb9b26cdb326dcb321b2e66d5556da3f4b7a71acb8bb73b1f8cc6a5f4f3bbadbcb0bb1fdbaf9ec6ebdbf266bea559b1611c46f39be456deb6d1c8b176addd3871f540b1e5655f3d9ef1b8d68f6dc5acd37aee84809cc6eb1a1c8e0fb65d5df6d928ac07daec84328f2ff55ab548df992742bf9683372598a0753d980b514b0c165a532d1ccc7c2064480fe65233464d183420642ae87ab07035a2df467035166ed7a37e3640b6afbf7dfdec481dc1ed20b07df5e086f45bfd916d62334e9f7262d96f5c29d56837a5dd005889e06a5f48bf6244b619ee20b07d7663654219cbeb1be33912ec49782e058bfdd065ed87758696caec60fb65baacb2be3b1f2f2913f890d79b1c9c2fc3e45238a61996ec84b29a65d9d74e28e3b89855c762ad56355c96655b0d96c777e368d6ad3ef37cb050fd0ec49eaed5bab4cd56917513c13c9be7529a08e65ef2a498337947f6d3556723657533e23a12ac93347f5211baa0b8f3eb17dadb4492337555557fe11d7d63647cc5512cb2442d0ab861639c304ae789481789b30f79cae5e72514600016182ff62176f919aa4675017d76b42fdc01c123f028823cdaa973f46c6f524aa9f6d313a27f025485721dc59eee12739c9a87fbd039fc7d767640b0cb51973eead2c58776924f7bc6eef20f823b61448a41708fbb96b0485cf78f48aea5a51803e7f0af5e440183ee553a07940db78a3f877188eb0fd53b34a142621d2f6c44a289b665e30c0efafbdd328a55ae62f4715ed3fc49acd816b1c6b0cf9d38e82f43e7f8e3806505d7a3105d9a861bbc4af38832740e7f22a082b81e79b8ee71062bd7b5a81843447227d7fddd893fe96274b8617cc2b2bc678cda3c042536c6f1579511cca5b68533ab3da3f6b3f3fac5d146eb8aae70e7aea694546218865521f99b8dd2566163f58e38e8df45b58b76dcb5837593ee81bcfb8cd82b6cc85123c49e10748e7f0b617d014bcb705d8bba20601d37c23afeb68b0d39eaf28ebe4edfc53b68fcf858154c6ec41c73fa7d9d36f63d6356b16dab3dfd55b1cd6b5c6071b1c33bac267319001e74323b58e71d3b4dbab35d577f5aacb27451a269532df353cf86dbb24a2977b4b3f911e79c42733e776c5913c3d2b8d957afd2af357b9a65d9d3d73c1bdb71dbd4b2d5d75f7dfdda578bc9be7ef655be34d39eb07c994a0e4c6ecb418c629d0f1b402e3b203656bf0ab3b2555857ccb62f24badce7621d7ebe02e986372ef69c65cfcdfa9a4d655aabb6b167d3715b362bad55abefdaf775ad52fe1517768bb871cd3bf8b2b49a9457af9436d3ac8aac7a380e3e55c6d96b5e759ed688d4cf9e663473aedb9e7adb67b7d66d5b75dc96f986e32015a29a9b85b2f1f2531045f7f61757a3bf7dd7efdb7563eaadbe7a36ddf3ddba2a9edceaf9c5ba6d15c3449427b74649c1a55f2bcb56cfda986ddb38ae6edb36c355cfef567f6b5567698f710135e81831a85849a205aa1c9260afa1e70a6b638f27d1d083135acc9045173ec501d004c5ca910d8e48a306464078d18222ac502207a688d170e50c576eb9925d22248ca00295850c9c98909a4b4c3145c31054a6c8420a6921b1a14b080f49827b3d8cd858e420fe62fca0a1e7f721fec8cc5fc89125d0d0f7b3e3a00e3b438cee43416274291a95541f20a50c1836fbfa60d61407c5e13d0c68020ae2c4850a890b276ec83971a9e186ecc474438ee22b2cc55baebc711e76daa2eaca7f2e96aebcb92ee771faf1733928e3b71c8c0f6007e3d3cffbb36fa57449997df59338ae7c169315b45350eaf899fdddddddddddedddd241959f1fe7017500fd04fd00ed04fd04fde00405fd00fd00fd04fd04f9e0d8f9d90902da19daf9f9f9f9f9d1966c609cb66184e53ef9ac24c93e91fe609f0fd07cfed0e7f2ff38f845ea03e4c3efa0fce233d7caec72f1463d208efc3f3e92fa00c5707e3a401c3882a4a448885f23cb388613175ab850fb8539248794e060ec8f0413a44a70300a31810413a4824cf8ff37818412a44a20c104124c1821c84d140951267c2921ea842f5f8e9020f52ff5523773c9ce4f505010a7219f2041419c7004091234e434141444c6a020403a82826c1912b2658b0941435146295bca2027272e48d8c90b0e1f20291fc8c121f9413a1c68c89b5c82434340414d432da5041a923f3b0eeab033b87bcb26d6226394d169cb952b3f7a0487611886c59e2fbf393bc618e38f8e18e74f894989e5e78a0f16a02b436294314619b5603388a1a503e771062512146cb942c9daec6dd69464932c54bd58e56a52adf4b124a5274c4e3e2c496982aa72b1efa88b7da5b35b534a82c9806158ff5c923172e2a24409f7e9a020de418654f117e26004f20e32a44abfb76ddb369c3f248810aee22f6448bb0719e2433cd8906be2a911a69e4cc5209c13bf8a7fa1e52a9812dacec596788777b1a3d853b1a4d843df1f53fac0c771902b867d2b8a0dffe58769e11dfe582889b821967561853131a68b614cde63a9b0a62ace83c579b63cb9181046442d01841137c4a4666e8869c1ba84d8d4c57ed2c069891f8cb8dcb91776e0fae3684d980c315c7ebe8dc3a763778c1d638ced1edd5d073a60107178d41162dfafc3fb71304622fd3e0e7a431c9c3a7e74f8fc62ad5ff8a3c3c7c1a8a30372e3f6fbe8f8711d3f21f691e0607cf9edf0952e5bf01618681efef1e30951c796a62bbfd0eab848aaf3f4879263d7e031ec31cea747204e79facaad5fa2d9cd05014070610b0c37fc2a2dd2588116545a74c12e3b69d1a482cd15c1e8de926d7ef8042ed3a4510669c134318f6bb96eb2a0722d4b5ab6b8f2b253165311065b96b6eca09591c59532340c86034801f1c30ed07032e3d54bc880da42090f4e18ed50dfeb579faf949508fdba820d19b18f1fbdb07e7ca0583b7e45a6072c2436d2efabfdb26bad3dbf26fd41d98c14151521b9449accefb0af9748fcd54a4e3913b3c99bd1e8be7dd77d616f5e671ff3f2352ffb15d1d2e5ae478c17721af74530ed5bc1c62d82bd0788643f9f48f692c3b8ecb3e7b2af8826f3331ef728102dcdf7d145975987f585f393cf716fb99fcffdd6dc7cee99856baf34e2304a64d9411968a40126ccabf549fa75445f24207ab53e8e39f4b9078ab248a4cfa10fbe45e89d4fd941f99b27bd1ed86fdf6d1f122ddd307b1488966ef645b40f8d5cf9ad203ffb4d7a3127935f11ed43fa2bc4db2404adcf84684febd3dafabe22315f139b2a2c91ed59fb6cfb6e235abadd6f33d388c4b7f9915df928d0bb42bcf2351c5456fb0e73c3ec370a011a264c1833b2a75fa87d616dd27aef9a1cfdabf5b1c0512f28f2c7957789252dd77eb9bec4105eaefb0a190889ee06e8a54f74bdfbb1baf49310f0af973e6085bef5a3df0af1ceef2392f14e868d71c219e549b7b6511f7597d89334c3da554561bd616d92be149fc4a5e84422f5e73e38185f36f912f64d25f7a1e97ab4c1e6aa75bafb4bf738fffac5f6872d97d672f14b415e141ce9fa0bb6a4586524e6c4af4a4ab1bf56dbd573273127be91d8531565b0b5684bb2a11f5101f28faf358ffe287328e2c6faeda520bfb9dc9056e570e34b8f16758ef8d56b8f56c51e9a24ac34e4e0a228b89156cdaa388b527023d40d6946c38d7408d6894fa1708ef884091bceaa2737feacaad55a974b861305dcd3469cd31f41c03996b0c3c03cd8c770fb8f66221ab73ff4176e3cc3f6c7d7941b36152347fc95f58074db1db32e22fdb91cf46f49cb4921d9fdb1fb63b70db66606dd92f5fe1b4c58379280fc1ce9e548d7a9e8ce877711f097f65b4bac524d12a932eba62d067f6d4d2b163bfaaac9b6694fec11a331124197d8336c98f698fd26ed19d6c891acea868ea5bbb8ef5cee13a071f941c03c9a49e7f0e7b7018211c1dc53e86e9201c9562424df691edd529878feda28c794e450515d05aa9d1c6c621d5f8273302103afbe6aa23d7722f44bfb8eb0f0ca3e7712739c6c7f2cc2616ecb4e08fba6960e437691c44e70439f1b9d4c70312654ec70a589162c9644f1e2318e682083872e7088b2e515820bc06207505c4840c5962c5ee18e183ca0200c2c54bcb0a2c48b284a92249878e194250cd42be4a833c268a9620ca32d9c5e2177b9914b164000b1c50f2c00f30a994a0b932537fea3408b0d377e094a3c3a80792a230c521549afa20be4400e5e76cab2e54671822ba2e6d7ca1b6def848a70599665da6b9f55c165595667c70e16d1de07c7710a5d739bc755630595594eca5072fd7d8b113bd8aaad9ced1c644cb18ac286b5e5f2e122e0ba571bc6f5d5d6d8c88801059589258d0c254b689c923445c989e7d4cf5c5fdc5a5ff55bce13bfd6796badadfab99c9c3c87abd42b9ec34e52ae9792017b5aa252c8968b8ad2e431a82045aeb2ce000b666b0c4af01445c9142c633c596285b03c03a31930f11cbe61b54d60922c15275f3041f9620830486950a162ba37979dbe0093c6941736c6a1bc23667e25b0b5df0931873ed12bb4d951ec017daab72ac286f6d2194a8005924ff7e773e9b37ab0380851d5e5353df982325eac14d808e439f42ba5a12b08380228fef30345207acdef630e7d7ed1b7d164b3df623c7a37e776972c2996e845f4f2d7e6a55f42ece1d7a4afe61ddbb327fbbb8b4901022338483f7b1ff1fbe5c52e7740a2df98aee3348d2f370f8bc423e21ff3abcf3c9b1f1976fd896ef64457763ffc6306bb875fee65d7fdc6f9fbf52f14c1f55f7921765b765f0fee878cf5354fd66cc841fa6d24c43d4d02cea14f6f6e6868c28ed2a7277c253848e9b3926c7cae959ed8ba28d6bbbb28b6e7476f59157b22c845d8d8632302f7dd77dc67b9fb5c7208c8411b2092880d907ab3af37fb36101ab9d9f3edee4776b3cf0608111b209a7cedc3c93e308875e2739e104f40fc29c4392290cf8f8e26efa2d8befcf2fbc624157979e4c728d451c8084043d172edd71ff4b7fe2eff16a1fe08b67e470400434781e9c4195714bde6176fd43efb4df3a23341aaaf89407f27e664dfd9b7d15133f19e20b700fb60b3cf3eec196ef643de53bba860dccc8c2c7bf69e2c7b666cd5a4fb98241bf651c7653622d0ed6909bca36ff616e01df3b3cfbe75e0256ef617e89eca39d9db1cb8c2b8d9739f71b39fde0eeb644fbb0f8c3999173bc19b7935e64c1d70b28f084605032fbab31a59d652ecf1197290555fa092e2392bcbc550ba5328622b984a979dc278729ba9c8c8490c2d462cd9c081dd2267038b95027ddc38e8feacefeae05ceaa6f90d35bf97e6af8eb0ac5f296159931d64fd8d8373049710e7c97a70585f14eb81fc9d27fa571c36acaf47bcd94781f72f88a77e400eb29ac5820189d5614c31d090f3d800617d7dd637c4625a72d0e31ff4fbe9135dd63c627d5db4d44bdd87b551b029d236ac27baac2fecd81d572cd6c7fa78593ef3366260673ee419afafcf08a0c83ccde7b3137b6c44a0f99aaff98e10bd68be9dd7fccd59ef5ebc5b8c2c7f1b19d6f716bff3062526294e0dd5577864eefc969afe9a2fc3f239a1ee6c2ad91ea55cd9c4dbfa58e0fb9df61968c2ccccc75aad75b9fe43f0ae62b02c2956852f626666be0cebb336a4d890b5581ad70d0da6fc63bb6e1c9cd373e6afbeb0765f58b9afc88d707032b1926c7d16c1d59d0896e6bb1b52e36bbe23320718bc6a7c356ecec9781d9c7f3976436a9ee63bd2801c8e945e351f770fa81fd017d4552536bcb9d3b58ac186ae28428de74e045be33bc252b0e045f3559aaff98e34192e6ca97ad17c2e2f8a71970ab66a6487e4c79c1d0759c660e587958584f5e7ae87c7624c1a711ebf0dc3901b5eb827a05075e577608a0d4bb7c75ff231a62be59424aa2ba97ec4305fae47a34da906282e773d86e880db58c2a9244be95f4449679f1fa0317cf0898a3db55aeb72fd908341dc19ca860c3eec892ef6cda8c9545458b65039cf1729377a1835c4eee21486d10ddb4b95174d4c82e1d44e5ea86ee46a7cdbaa9fa436a42ca882833694b051c95dc9c1bea2641b0b2bc9ce2f24f27e7c5038c141a54dcbe8f713ee8b4a3eab206cd8511d15bf6e5f58adcb15d22f6a7ed817557030f688377297d91609110c522da4808b1ba2fc00c62b1241c142e5052a74f024840b5ef13b2a7e630171c41e9b21ddaffcbbef6d84f42a06cb9ac72c859112060ae70595d20e1c511027c00112123798e1051377714314a92998f040461620b6fead999999bbeb5fa8816e41b6942d5190dd720a052f28b844c1e5d494f488c86e39e54507445e7f157847cb8f4d048cad1104a3b30f37d7958ffe4215aefcb8142cebc44ac11e97d2cecfd0102fa45c526053158fb23da437ae4aa50e5beccb7d2deb60f4625827be94325153483732c79a18656871fea649c94907494e3a38729a023345c66df12c39e9a00901b1654f8cd3821525b98d9403167441353331f9478d74c3021bfe0871042c44d8a11f2ca5ea92d44bfea49ff4937ec25ab2cd374fece3788f912e32e227d068f1c2491fc93eaa4262c23bfc717ec311efb34efc1b206cd847110ae7c43fa2c6e009c7713c31127b4ef866a4d890bb7819609df8fda40753c2b04c395569d1d24506fd842beab2e586edd4c5c90d3baae6867d450a936da4880b2c871b71b821771fc09e01dee1df2d270c9b327688734386fa80e6860c2563631da50ee7b8c7391ce7865fe3039aba2304d601e1ba043129312951e8a16aad430571dec137b8fef1098db2f96feea5d04328b647894ddaa39fdf47b4570887183e7c74b30e7f1c939031ca1881f08e09701021437e308f9bcee153d799cb15dbe5cf9807d7ce47941e0ed6f170e24d8d1a91bb1b7efd52e81bde5c8f51c628630cf26e4c4a0c0507592cb02143ddfce0bfd3efafc31ef368ced1efcf3be4fbff47fa5459531a783bc14589fbce1325a8c1132530a282891038bce842f5855297266e7043121724d86452c315601c014512581660860b527881a2c9061f5a471a9726a61224f57005951aa8d812311bae24f2c1a8090e485240610516451ecc138bf42f8d505a86cd15d4acfa8c34cad2982d991306444c212c861131b378b4b2450c6366192c61cc7cc54ab98431f312bf471e36ee1548a29d18b95f804344f337c511f41cc76181e52211327647b1c9671c8f7ba677b72ce37070004ba08f0efe500790d68d1f571f49dc6265e4772c364520b6fe25de51c43beaf75f6fc672c4e3492212e6f1a52f4ebc284d25f915e76f676a30b73f631ef24be7f0efbf98376513d14e6e588fae17d1a8245c91f0d2941252569d7a205c3f8a52485b92a6ae3bf572fd8b2f39dd1063c2841561460e1e7d691e580938873fb604ccf58ffcd1281b58fe102b8a2d256b459504377af8a00910c04c1470ee0d155cdcf06f20c10506eb979f8eb46861b931d2304752ee76f9e9e8c9e52e3f1d55b9e1ef78b1d930921e0eae0753dcdd5d8b2da68aede7af52eb018beed91577776ff718c4e65c639ca8ee456b9b3caa0884dbdded5e42fbe576d40d2dcdc53ed7e2a07f164564b90a899086f0c1966efc6e8a2391064cec2858d0d24a2468a52c5c6096ee69e918411075d90325ee31de404a1e8a9872ca1c48d9441118f6b1436d8cc32db01cf7608d7d38340c4b032b7ee306e340811359ee30e1cfd5dfa5059371fdd9bfc625be5fe806081fdcd87860c355a386a63523c3b231ab8edbb4acd289c9e8ace34de20379fcdcb1f0278add50362d0a1b8208b0fee1d391d1f5973dfdd2810571fd75340fecfd799a47f38eecb15873795eee31821b1235d940161ff872fd862b24e1eededded075885444e32a7db5ce5891e4c85ea1661281daef67ea30f3d388c2e7af016526e7f961db040638b2458ea0953c15690e01a3cc1545c81c51937760f208201160ac8a2801756e18f271eb80656725801c3b8fd5f16378000c1f08004565836dcf841a8082f5184e4aa30bfefec80b4eefc420e5ca9756715764009560d3c58f8d8a6aa1474526d157e20ca07d5a2c7a4e1b60f0c871e91c9017386db0ea837b8386aa5b5d64a69ad94d25a2bb5b20aaf03621407c434fdd8717b665fbde61cd9635ee41cd973ecc1b20f6b641fdaec0bb39f39b467ce11623f89800ef6d5a4b0d93bbddcf928c02dc261c0dcf0bb9997c20af3f6ab506f91065ced6bd699dbe4a4f3b4cbebfdf1f3f8f660a7a22457c797c58637f7a779f8c9280b18b6df9bba293656c1f2942a5397a7549122c0e52955969e8e98dcf8eee1b0c07227447bb0f219c70ecb106260f9c9284ba8e3c7af8e1d66e6975febc6418f1f8e143737c6f8b96c2b056eba2bf82dd25fae4c61857ab157615ebf337edfe935e0625f110e13e6ca0f080db6740ebe5f6cdd30b8a083bbc024ba80447a51c285122c73cea9044a490bfc874c890eb7e5a0ac6163e791127bd901c188f87c1f7ce717bf1073771c36f60d670adbcf4909c686d6b63c7e61cb4197ae2bbf255d5a9751c424e60af925c6fff7a6d5021bfe652e7ec56ed48152fa35c5dc8a283f7e3cb0f7ee1c25dcf931c7f895611d7415300eb3d8c7355705ec46770126277f185877b896f3b4cbc5dc3fbfdafd558579fb996b1566a4c2a738b92f840b599880f292841334bc429f261ea66698e10c31bc0801354313e612e68b17aca081030c53002962ca165c92ba24e580015193059328304b4b4954c00928282d48310115265b3a0cec87e8420b88f8e2441a4db0e480093044a4e0c88c2a5ac4292e537cebefee22f2deb04ea4611db7cc3afeec49f50e367471958677745fdec155687832b2f26494c49391114f463e3c19c910060c2e9e9258f194248aa724504f49a63c2531e22949104f4968784ad202195db03cb500f5d402134f2d4409e2a9851b9e5a58f28424cc1392319e904c3d2191e209c9124f48867842a2f48404a9eaa9c88ba722a9a7221b3c15c9e0a9c8054f45373c1521710ae325ccd477b4d11b2cd6610e4a2f71d29a812f5d36b8b48deb5631962533d3a2a9a9e19ae99ac89061c3039b9b0f40b8f1de17020e0002200010bb5bce000880030c800eb892d679280604dba999c46e06009cabd58cd65073b716273d9a5bbd241df830cec1b0f88326e66e3637dddd3ee0ee06c276b71bdadd3ebb9b57eff6d1bb8530ef8623ef0680000880cb3c7ee508207a3308aee42759077b4c045736114e61aad0248931832ce30e0174009823ce0d638c31ca10b06f7af4eb8d0c04ed83ed86b3e93c58d98871d91aac90999965a4a48971a6d59aa191a961d5b0ae181b2b0f3a1bee66fb400321bb519f7af3c342903811001e801600d7cab2c50f09db75053704afdf800414320091c3952e4888989e28828b2384d06109949ddeb2b14f7e9bf809198a39fe540c4b031a40dd9ea1939c27f4d101096947dff9478e68510314d56b7ef58e84800b262ffa5b6332a0724c4607e3cb7511b024315ef4b91b1275e8220ad20b74d1e9ddf4608fe0214c0f4e6162b8e183004598a31bb69680a902430515d69b7375fc6d7ef88d3fafdfadbb777cdc1d8c39fc1dc62c7a1e352cb604e26bc70648b7d7f7973033738c313688e33b3e9a8c076e460d13c8cc864ddec4e86a13488e36d01ab11aac64703ecfe8724a39a7f47c5e8c4e1965639cad6e9ad4bcec630fb38729c465437cfa000c88082a91f858dc3e8b6e99641c47b19f2f27d760127d074bb2b547a965f53d9b64fb2526a57489612c7b8b13932f5f8a01ba24c8609bd1e571d0a8a2f6606c34d338e23a7bb9ae546d17f5dcb40737e42ea5379786386864515d70e95bfaa5caa5ff692c015b2dd81d6b6f7ab061bdcdddd9bad30caa3be71933b8138d1caeab5e0c9352dc485946195756d5e04a337c28c309288b8a2465e2029ea5a8444db8843d09d5d04000004315002020100a8743028150281c6ac22c1f14000d7c9a4674481a0ac44190c330085208110300228000000801326333333500a7ef1a11df18596ea69c106f815b57aa1db56c45d81876c09da8580c9d380a62effd25408a258153efd89fc1738e2f059025e5f86f14e610fc021733dcbbfc6e5948711429220c2ea2d0bb17ae92cdf49880f5df394f8b09bbfa1bcbeb951174793bab3d17519723dbaa08791b184ef2fb5a7168b37eb0b04db1d6247841619de89d5124c9aff8e5bcbaa035c3e3bce86e15ad206a16913e55eb7b86b1613d426980b72c52953e235bd84e8a08b797c6d28dfe6902d913f50fba542892060451a0efd4ec58efc02e8067c83156154057016eb54874973dce86f3f1b8279a575d8e6ee31c730ce3aa3e9e25197d06b392d018b63e3cff2db21f6cdd72770dc73b24eed6287afbf48ee767466134c71ea2e814da31154301361313ab6898794e30efd68b6e984d831babb26e41436cdd6611fad946c76d90f592aff04953dbeea9991a1d4e343fde029c36564f4502740e3705841b4ebb7771869da155d70d95bed1293f1654378719502923876610386a6b95e1ea9352d85adc4c840f69beb410b4e99d33132fa871b8a96235af974debf6dde6dff3ea9624c11b595ce5ba9d9f38ed6a7f18ca5b1f2fa64a53d8d038bcb6d149cf9b55078c9ac7184aa0db49cac0294af212b7571f01ce83336d07c602ea1db5d0c9549c8a46848ff0de98d831422d2918139b2cd380c714a01a516dffa691525190b0a328e4f1cbba60e50ae969102307c021123be449ee5c71e29a134e8bd3f23ecac36da2287b036ccfb517dd3331539d540f9b4be637ac1052d7baf64de3e948f8c31f6b7eabb4b9d0fe82859fdf3c381ec3c83d2a771864db9345dcde8bac694ab1d8fda8dd5f3180c18c66067e5f62eb2c48753ecea81531719b7862c75b8dbebdb998376088139ed1a34e1b9f4f08f0d799bf4055a182878826b5d92a63444a470417ca95ee899a0f2ad3d1caf8dff31710bf46f8ba115c8424c899e6653aa33b2708236a730a3163c8d8d7741502c30259604be3916d3541c038ef628d2570334f86e808ab505f5cdd953f54f6adbc90c78146e54510b1c5e4135a81f920482729030bd665e50da0d0647960bda1e1e586089326f86f57cc1b3f8a075327601412dac60996f7b15efe6756a02530d33d1a2882d283d00c73c4ddaba69a33bd685ea7434d72f54f0bd43c3afabd4b7297cba1fd52928bae325c5d3ef2e08b4f44673a6bb21bb4948564263901331c6de6ba82ff65ed88565f5b9fea2bf4f74b7c0a961b1344eb578ab16b808dcb58ca0dca7ef96440d4f10e3fd582d969df0120a856e0b957927b95f9c4939f7de197f83ac2f43daef6a56343b7fe71a23e731d941c60292d06116e24b14e932d4fa84126f4595c7d76101e06ecc6d0b715ed7ae3f7230e1e00aacf65da7d7f25403451a13d07e43afa657611a77dd86de2bcc9ca1520c7c72c095a5c3b16b84829b4b8ad816ecf8074f4736a95fbcd2122b7307fbe12aa84d0e67ca2484c5abc21210122abeea72169784d7bbb1a0d55014b249457a50077270322e11ac8f06b234217510af0b2a02c744d17ffba398ffaeb52fa3039cdd269b2dad88b73b969b6a9fdd3eb4ca144dd997bc22f7d931669a10132cbb8a5d2bd1e4caf74e53f00b4f53e119f482e2ee646489766bc2c177f162780d5115b571a6c11eff91bef01c03ad1413a0f3b8b39dc6a963520e0329bb23d3669fb29f05527fe2b6ca93bf05f3eba39506a34188097f281b4fc7eaf464adb5da6fdf82bb406189dfd8d0a8a960d965e0bd550a069da17560e63c585106d7f36aebdc502d47c330cb7ef6294f5d90834f361856360b0c69fc340ae9f84a3ee3bd3cc6e231e3fdb1e84b8604bf0242c17b610abc73f0288edc150db15b372693706c081dad05df2e7f9b8acdc0c1ac98b453cd228b16bbe7584dd1939b9f2047bd11f04b1484a695e63a7d7fee597f028fcbf788b344b1a9125c9496120a5121ccd9e22040945fb2edf2e2af6aee1ff556586b21c13406352d74768c28c0736d0e791600d90fa3ed43d4081cca89e79cac45c9cffb98e126639ea17ded53fc04b3f93ac4e1e95eff4054720a213da5b484a54b5d8aa38a924430fb187a54424b974f9150ec40597ab5332e0011ef8a5cbaf0b46125d5c4d54aed933f3537296b7b3cf804502617376dfa3790f6d4c34486cf45041f8698f65bc1b302a3b06a3d1c28c179e3d95c02c2b60b59b91cdf8337052290382b28b715c058915f0d789d06513b5dd08db8e806aaa0413049f9c84e54b74db400402f23b96d0c36862500c8d66304025042e24986877945b61485fb3531eb7bd85851b1e9f5eb68868d1d2c229bf750f6d5f3524b9e1e28356c4b92ffbc89874fd8c6a1318014f729bce014bd209df93169fac6824f9ce8f05653c6cfa175a0ded82aec9a6c2db6bcd76c3834e79e83b81602949f805538131e1f7a8597f9605d6b66a0b98cae2b4ea40893fd61b0233f8bb2c00ad3b5659f850c574ebd0d4165e3dd3af8ac671c5010188c2da4ad8776771fcd50e32abed2adfa02ff795f665ed01567be4e998f583ea05e5920571b51b6b5e63fc44055cb1a73e3554221b426997d09bdf731c6c902cd745201d5ab10dcde2493f9d2440b1746dff499c6676b0fdc4cb60111b34d0cf9b21508387f474a4efa45d2deed1ca7fd81f671802d326262427a487c022b8c435f84f7626321d0afdf0a5fb982a8d9a30f6707f344343d93d38b13b7fd4fbe8b565e8547a13959160693b9b196e54b74cb7c15e17c820122823b96b080af3f18774d4aa73b7f3377a6ac891b21a9f8e81d0cdf6f56e7d3075b1cf7284fe136f545444403be0538c769365c02b902c34c8956eb6ec3390eb50a59c8f7f401a334bd27c48fca1e855fa4c355f255e23ba9c2b1c8c388658cc184d03ef99299f3bae707607211d103b43dcc862bf88aa7fab5b55745f4b3dc3beaa4231f44976ff929625b9dcc8a0d0544651822ec659393edc1462f14d1a57752a706d2c0b86ed394406b23e310ef1ebd08edd8c2426a190ee9f0afbc8be31cb65e608b02ce9a62231471a35a8fd5dbb9b9b3f40044a60f129ac506d37def079bbb6e6ece6c2baed5339b79f05ee5d5315617e5fde89e7fa12c82834477bd19fc90176683a3fac69f8bf67c7ec3cdda59970944646647bd1f4fb7b4e21db00981fa3dbcaa4b3f193ef9f651c64c87d322f25f5546d50530b85c019a17147b56d32d1a900137947fd783de3821708e6ed41108fd1ed3e167ba9d3576c5c4e3cf443e29e02d1dd3ab93771de904ad3f35c108b02391fecd5f167338a3e75caee77572ef5089b9861b83ab150ec1b2b8dc78a295bda292d2599445f1b385ce6ddccbbedddac67263961bbdfa8334f200d80517da9f2a0115d4a1ce1b0f28cc1d0731f4ae2f1e3c23376a678ef21370c3c531650e4992401c18cf8c34f105b91223854ba9aec4e6c9babb30c39552a1e95ddfb3edfb8a39e107ec3ebab0e270812d70c43bd68b83aad5d29a1f4086eff86ef130fdbe63f2a24e4117bbb8effffc636d702e9edc7c969547cf682675a7bf7a4befc51d5b8b7973bd69d07ad569a841b90fbf536ff2689a5e95eb50b0a60fa7070af5fbfefed90a2fb0a288a0a164e8c779f04ef5b11ca87fa9f5e6f4ef2de09e99f3241ea12a1f2cee351e0c58990cce284e4ce324fd737fc16383330faad4481f71c3451b38d9e179a3978d56f98ede01e7f2b200807233001c78e1a80005230fc8ed491be90944c850ecf934773c39f49ee7f43f1ba6fa511c9b28baa9315a127b6c437de31c8e838187165dd804ba710685ea873c2469618ab967ae5cb711abe8fba573a8f5842ae37c003b56bad8a6707bb7a362d2617c8899a04a39b804182e5ce7619f9036ff9aa360f00a6b599215506bcfc9cbfcd51c1155caf2f60963239bcc56080ea938e0798bb73c22e7f451f2c8f5610896fe0ca87aa34c036f186c3be9159979c877ee9068cc934dc432707e2cce480ab9d1edfa941964a1a63828d791ad4c4c6f034c614b691468a3c821dea91977f77851d1836c13cc1e5344d32d96331cd84621322ff1dd8365f36596321cd76e8b9fc2db490e76726669c49e3a6cc98a565674625f3cdf2f8e3b5307a93404979bd50f407ed17710d44e4219e2a5ef27c3f0978c818c8251eab8d40394eafaa4eff8f23a754b1d96c0c7a349239b9ecff4f2f1ccd8adfd124233dc26a44562ee418402a15c01949cc423ac45f08792fc08e0b68babc12e5bcf0cdbc92cf2103a0fe45987f05ea5c017bd6a173ceba8a53cc39fa5c670c5be786ce9566392fe2aa2accdb5c8a73d06434917d2a3e50973a862b180972b02c9eb2a045637095889584ec8fa394db3fea407710abf56d12b7bee73488326a92b4eca23238eaf698e277e379acc8117d35088b0981622c1ba17cc78ec230e9c1d3813238d2fc93b5fd4335da5f6e90c7be16b427d22579b33737f96258d9e0789b32809a2892b45b0a17d25afa2f67802e2e7bf5b2e4f4b767054b5a286356bb515d8dbb15e894f54e01427bfbcc73a3f030094fd7a99296905bb096c9e7c6d24b390f67c9122d479980dafee4b2b5eac1fd75b37636a6d956725f76e365881ae2b7d733612f2ff6a377f1d7722bd84d3c294d5d3962a44d93df00ed7ad10ded16d43f0b3ff63203ebe55892db0ae8daf3314e94ccbefbb1bd85d446c0e17310b647c2771a6ee6e1c61c3e07e17b226ca761661c6e8ce17316b66710beb56cb942d703c2ca529497080c8cdd0bbaaa7c9fa1e043e1d1f1ce6e9ee9e0992eefddf1180defd9e7991e9e69e5d91d8fd1f19c6d9e69e19d4ededdf01e0dcfd9e699169ee9dc3c1f4ce6cf92e43b9bf178e605ecec1dbdb364e9bd4048762f79ee4a6fb9be9140db4f6d845fe27b23b89e38b6e635053b98de25c729b07dc8d00952409c6e472113c2c83d71bbf51473bf970ab0c145c0fee8694601f0dcf79a60b8bc087fe128e35d14cd94416613e9da6da20e8f830573baab489e6361c267947a42afc64ac9070e13593501e1367c1724878a906eea41f31af727e33ded93c989e412cf19212fb8bed79c839d033ead2bc35ab7c4480649713b8ff17f0b8f4c2106111f499890b1ea25a1cec50277c29c6514a1ef870eea9c54e4776553473d1c3937d85007b54aa608c67945021f1eb684fd8293b2bc54c0f881f22a96c67833d7c8c5a485f92cb3a25a3667772c03c3e7d46f954fb1cbd7bf8e9876edb27c1331824c6ec7e9d722fd11ed63859815fdb9a48ff1d22b18a7ee264675971bdaee0917ac91dea3f4096a4a5f654d1f8bc1b565917abf127361e4fbce8f570a3286375732da769abbaa7f5db0d88a6bf02a0eccb5193c4e2635805fa1f02288e30489f0fd48c96ece0f498d259c7154f314da91f9086c0c839cc0e492eccc17b20621150c9ce6a827279ac0ffb960c250aa34c821b51653ab0e2f762ad167f890a94a414798a352d775d3c2654511f045e381ca8d7e27fca0592b65f42823d251b25849c586e7654030cba74b4b77ce0c5b0a5b238bec935a9346ba6867dd44fd45728b0041ba4ef252f1505ae7371017e67d51df002c77072a7a6992054ed1cdff07db23eeebabc940d0fcf1ef9806f983bc1fe65d420b13e281a3aa53acee0fad5377a765afb3c41a76c4d9c9a5a9377acc6ba5c21a08c7d78912b4d3910846d854ac6816dcc4f74fed635bfab5cf280aef2d9a4160e1cded417875ab2ccee65bcadeb71f8ab61372f8fc6c26dcd3f3e86d49d9f24a6cb2b10572daba6a1e7e4241c1de76d3e2edda407dc78a4af31bd3a5ba4479deae32c5943344bd28833c00a8f56d74087ce2d2bb99adef47a13c8d21e406715d71f0f7fea2284d3ca15dc8e9793b8dbca37fd119cc91a744d9c1c48930cba00c9b2eace6089f6b933e83788e382969d7751abe2746489d8dc54bfc6d08c1b3e8d2f212440df4d6a6aba48274d28fda2dd3cf711131cb20a8252484f4eb685275287224e7cb5388d4a350bb661067a493c423a9e1380bfa1098f58507bb8eea3b38d489d0caff93a238c940edce4f6b8aaf41e90b28f8ce00441bede0da2b5857a4ba94f6279ec1390b0a9bb6dae2dcc66b26961f28a55beab22a1aece17a22a49e0ecc03099878bdf393caabc83e96b8da105123ec0f703cc81b28a83d5b6b34ada58134a5184ae4e9e59661d3287cdc37e830a11fcc43b3224a20472cb278b2f8d5a13cf611579835d275cca69dfcf2df87e39959cb33ddf46e01bd73d2d4c9ace39576dee6fd627e6f55b147c076deb145a8379e0e6d5310acec3ca30b8b49dce88f67966434052d52f33d80afc14d87c91a72c7a9731c5c5dd69927ddc47363a7619169ae45fe89a00bdb908ddec223923ca3cb63b00addf59e44dd20f0d7d25e54291abcde9c674238ff5ff15e00688d6d0ae12af0137dddc354a404854bc4f0a63342a0bed59d292c73afcac231c1f37af535befe4ca4aed75101a0acd7ae849d741e945b7a4e486cecc87c65423a8f3176511c299b249819086b1df7c38bb2334ba3343ee7c41b6379cb54dab999db7edbd78772c615bdc92cbf298ad68ebe8f6a8e175fcf732bbf7f8cfc30253697f977cffc60862256d1e251386deddefd158233f0ab0291d1ed911efdff99bf80d1663f3832b4c51812bb0fbedfe118328f1789d5a8ffe50727214bef53281b4a21f1b962fffb9b40c20426bc9a8f7d4e1eb075044d222df27dc281a0e5c6b94a30a3d4c3b26c45e0dca98b3fcd34e524bdc5d79916043aaf2f812e5d1c14dc4a6438e94d876feb1f03ee9cd092dd2c4b542ab250b116371fa2d303cb645a0e138c2b47203fda86f228e62dca2e9d188f6acdddd23c8f9981fe84dece9a21db448760791e7e916cd39aaccb1c5ab3c1bd436e8ffab261bb21eb425ab81dbfe8ce0aeb5e9a89a6a842d0b640e6070ab1806c8136df5dee6052bf2b8a48e3a863e48a3f858fb1ed00e5840d9bcdc6d63576c20b861f18d753b487e69df49b92fa31fc77fa845de5b10c4d3d0026280bfb6d73efe55e2938e6a48fa8a9a1d738458f9ee599dd5bcb058b5861ea4021afd049b9f9bacfb08c9f274a09b623e0a47a85db623fa5a7e616841d53bedbe03252734bdf534d94367b397a6c588f9cc503b09577d490b9d50c7134ef972b54c982c13de9bec8d99c318c1ff8657b5fd37d217f702b2e711c197a10a9e5e6ed889a482dd5c3b56cb4cd8ac28a0d6c813cbaf2e0d88e64717388d37db6835f302728a6e363e605d604c13b9e4cd567a00abba0c35fae8d2175e16776e56953d495b40c6638723b1964621e303f0d6c2a3c3a6086b659fb96dd8cb70e444febe622c1229afb34c5fc7cad23a765643bda265421359c4320a8fd0c41da86fbf42025815881f904c61af486e886711025cce19aa00b402c094da985235f5529fc69694cabee9b1c54403fe45c7019efb9d8e5d8162355a6c917f3c42333aa08ea18a71c02e054bed44bd7da89a3b8632895af9eb5329d94b9bdbf678f3144bd24926cf2635ccfcdf6495a0c22f10fc3d6f3f8cfc8d9d5691cb014af0c31f348709b0c34e43c13080d3c9d414be7d7a1f75e2e1a36044c0611ea77ef4e62e22a3949362d71cc905bc8f188fedb4cd95f49186edbb2a71d562c7938083e12b35acaf1b1d628a925dad15207cb64d722e06e7c2c9b661efcc32180ed82751bba927a61c4b304ce2ffc11649b527b3676e90e0d14836ef89f336322167e6f04f4c7efc6860c3e90e3808ee4f6684efe4590eb2de0fd6857cd28816435c34133a31c4eb1547c49efc356125891b0565646f6f3089649bd3ae064728719166430242bc3903e9a86233da233e47820b67de32cac0069ac8882fa634a72fa903597914f549cd57ca49b927ce9c7910f55b05778084d72dfb30bb829cb5b8812757b07bf43815eb7985c41ec8c3868e0f52bb421d149e041a41752c9ba25bc62bd4cb55dc7d296347ed63917a9fd4133f1bfcbc524f362562eeacca40a07cb85b32feda2bce68c291f60dc1e451c589aad799de251ff1ed83fa06e9996afb5840809a6ce76d8d901d1a4554376c0cf02d21c38f82cf6c942b080f84cde502fcafe3ba6a23c1b714a022b9d7526bead446c093edf8b49e8b0aa639584b12e5f567978a3275b569e758d1fa598b5346d342e70bdd3e1efc76a73652acc51058c8225c41653367319165a81bc4871e07a574d3a05ed406e34202be160d312f26e2634524aa8f3bef804dd6ece0ee647ec3c49eaea60ec19d553e0ba8e12f7f8e4fbf0cc938efc3363589732dceb2cb303b91cbca391444a5bf1681db0cdaccf2592baa0f4f4a37391591ed73d3a7b97ee365dd93cacb5367a96a009ab28f8c117e1304b970debdd4c579ece257064191457133422f66290cc112ec671e2e28481201025b6ab803d41a7f4f7b1ddcedd60468d12a13bb781aaa6931820a2968fd70e29813590bdb95fce4798bcd2bf5d9afd376f89ffb055771e58cd5fc2b93b31c44a43df20e321714f401cff82d576db80bf5c52863f29d8dcb03617f2044512b63bf6043ce4df11ba1e48679a4d3567f142de43a8fcea723c8416a3e6d82c0885a7f9e148becfc4656a11afa81d35fe85f18893aa22119c80bdbd7f43d6081762d07499422f84078c0b19ec79f49b4190591b93e6bf7d9a3427610350cc0bfcd1d20a2916790c04d1d51849cd65631675946491ffecffb2b384bdc8694ccff56dc2ab183becd317d26395b62b171daf4c11936d3f0075956e50b744d98536f646d14b301c231b46152ffed041b52ff8743317f365ae5c0695dd30a0f36904e2e56e05e8f80db729493f039e07decd1eaa20996a6b2ad1d26120b1c4b099ed23696166f9050e8798a48b6d334e8ea13d69faf5bceb26e436a9c0cec3595b58cb0217861ec1c070f65c2bca696a40c30aae591101eb0caeae5e8c7d1d18247332387cd214fcce8f84f3ecb74e157e55b035c5f54d1eed638e221f3380b6ded315270bbf11bf2f2c435dd526e5a12b1c2e0ae11908f95cf174c2e551b69c33f73cffac24492c166f3f11a78600c36f888c79890a6809c9dddbac958952b15a617e142f9f1c4b0751936c91356df4995227bbc64c5683da805dea02a41eb60899f73624ee87efdaa2deaf652617ed3b7af2cbe98d3980e1092bdb1dc3e826e9ffa7de7c3e64693f25e7dfb7381c50bfb6951f9bde7e612e8bb5fab1caf9a0c20292ce170e205e6040e989f5829c45c518ba44a80615e5f921288b2f2257892e0f600f2a284710f75477dbfabcd0e3455e81b3a1193d4c9099e7385eceba6c3996b0db695f3c9c4dc51961158974b23bb8f76dcfeeea41b3b48673f609a9500181256ad7c3b4b3383eb327109907f7aa10cf9007501789f9956769a9b55f700e5f947aea3972c6a86d462ab3250cf3969c0e30c514d8f4ccdaf7ee0de33eeb0357168be86ce72f1c00ba5782c1f3613f76ccf0cf08000d0c7343b8187ade8bcf4788a4b97212ddcfd7578bcd5c9072b55403fdff36a1cd2ed992cdd212b28997af055f829dbfce7444b74460f1e950cb83b8bdfb059a75fd924ae50596d77332a199c9c71fdc71bf0fb4a789b743ac96b6611f9b26dea0c4b1293b4fc8505ca794bb5af759820fe649b858f6c3f0d905011fbe17bbfa4dbe385d36f81465b9bbdc88fdfb121f3f2549800080d51610c988b5e97ae3d4cb0c4294fc58e74e1cc86956a707e5582064440eacdd4d3ce10fa7a8e9aee841108879b1766a98a2a0603a7f96a29b86e021adb81ecd50315439cd6615f4e4247604d075a02684b88722667362b8b39f93836c054d624f854111e6839eac143ed46a0e8544200ce4181b071d28f8c3288a6b73d834a0431885cfd8ad799bce67e01bc25144ce0f8b2ee61f558af62f695a9a1de4fd70d85b7e061b86757e428b525d32e3ecb7468af5ee84514c0218bf3b82c6e91f25b41b63508564afe0820be1830f08cde981c27d22082e2ebb6e3c73949907e30651e1683d473b3a227b8e1dc09ab31366fd51fdbe49ad42471861e9c838c93c9115af1cfcff456a402e80ce5ac4f7301d87250b7bb59981068e781a5308b02ab45f090af5171d81989699e6478f256128defcc11338b0d325e2e0a8c26fe260d0a658f103c8b402ad130ea93709a1acc02fc034fb4053754f5afed5a08ed09fb05e8e26af4714177224688241ef37cb68892575e783078c0f7a0f96e262f178c0210a5f324281d0a13192f240bc4b62f9e1f9b6a0a940a6c0595b4e0acf993b020618d28f6064ac8e233b7dfc9a9660e1851d0b1c1e6c05236784980c517666e641772e5cc7bb3d0dfff8d9c0cd56da5b6b6b7568fab5765c951457628539da014061d6f760ccd52c1e3e394ffc19c88abf50a93e30e6488947f055f3d190c9f600555e68536159c5e3647379b05ae610b3c77eab64c389e37ae1db558eeccd21d4722286c1d56554c8f23d6fe0a48208276995051082debdc0307459b5b022f38da871d631c92c2b6020c47ef93db39a0746ca6fc99603d0cff51a0c705b6c57b0db7fdf8c48c0f65bd4db989cb0d794881cf2fa21911f0e214128e5c8f35cc87207678eb2a5d964c827e7dd98571ac6b75ed875c27d0dba1869fe88206e82a6c711657530ea06cfbbef1c5343a802173584cfbda721a8b5f261b89a878af97eb42d76de86d1a48b93dcd1450f2bf43ada18f932dc72c0e242d5a03dbb5c920e771b22e8cd3701a54f71e7895e6598a0b318430c102b12f1fb84f57e9315b7e1625f93a86d06674244faff2910b5841cab3107f5426834c078ec58a06ae2099975dd146d0c6fc24544954ebcbed0333e87ba1b9e77b4e83d643f813adb82e2e77f4ad7aa1b532bc29eba0b5eb6ad2a8676da219ea7e71f2421fc6107e0a87536b6766ab281330dd0b6b800652f4ccd1f737f0cc17589ecbca4236927eaab58f3230e7368f5611046030b2069eedfdf2fd9a8557347da0580df76c05d7efca52c82c90669bc03a46259ba4b9e85330cfebfc3c0424b3ef33b64feb80e21b6145cb1ecc48b40593dd3a323545abb2d438e2e3f9c9885668af97c458ac1ec18cca762163062481fbf08db1cca65f9a06adedce01dd337d8df1c83b7b3b699242f7865ed8bb4c30eb3c96b58af89b80aee6bdaa2ee2d36bf064bc3316c55328c50cac9b4c4df1e26e0986fa2f06d12815b60a0bc86b3160cd2b0adafccfb4c34ed172ef1c2152b51fcfee151c35544ab980507db55c778bddc75279c246728c9fd0ac853c8bd17ee2c4c382e60f762b85a50763650d318e960ace1f231105da2d888d941df23f8c39a64a1e2e7c7948e90a17ee9c855436381b3b29f9d4973f46294e8fed2668f00b6c2ef80fa2ce56bae81e1d36ddf98245be0d4d33ec84f033d988f20c33fc55ff69bb5725079a08adcac141dab46715b1556f555f4025431522b2ad5d7caaabd3b78fe8106e89b4fc3af44fae8c9c80d23d0448e12a8c280cd8dbf666550c85b7048d086370a299a2c4474002994e487845e856286b03105f091e966740f3c3649790cdfea9e615867ad8c2cd47a163df741aaa6d2a38915405bd23724dbe7bc115d73c686629185894809ad5524bc9dbef14ca5ee6473132f4890f123cb48d7b968c3a3cd3fd45875e02f075c85755271b74d2957ceabcae6ea48007492077f5cf3e36c09812eb571c22f1e793a8732eab99d3c1df502360d48d0ef8caa9c3611f53722b9166046c30adf93370e19da31b396ca2b124863a8fddf7841435e2c564b95ecfdeae3161eaef14ba5f6c3cb38b608a902d173e3b2f7a0fa0abb0e61f9437540b0ffd5a683ad6a8fec257379daf503b3d145971319893e9ac523467fc0691fe695bd4b3a20bfb3c8d75ef8d6bdeabfc2c0d0128c21f6fc38b04d455e8f7258ef4bc25064b90b99fd3f915d0c7cc8fa597661c0658e6297e1a1e0081318b5d04dcce27ca952a100178fa8bba4f665d1045893710698be512e124f9ec361a824cde126e209fe01a080829f0881018ba26369158f2350debc501b7f821f94660c225f929107370c08990b53c009e8757d3144d7726522cb9c00f00059fdabc62cf1e30dd3452e6fd43b04cd2c21a0813628400bda817e83834726945632dc850137bc14edd723448603b3cf3a080593997652afde4b40be23fd37e1584637a513dd47aa8117b5a1843364aee06b058ce200e6375a7c0a1b2569d501cf9927a0e2f963eeb25f276700870978a62a4ea7e702e2fe4e24307f4c19e9117dbb69c7ffbe53acbd4b6e2a0555062b947359d01c2225f8eda7c1f8c7f5f5bffa307ca26d8646efd158661b6def531130e5886e14d258e8e836e319cbacdc75b2f65a3253db54a1cfc4f0ac9103be78813f1a816ca036b4547e6491b7d0ec098f1a45b4b064f914688420502e75c09926c1479408af7f279c02ab1f177b7a1230094626ada3f5c72a198ce918b3651f0ae99f751b0fde9f30f6324721078eb24dc6eb59ad4d349c56dfa61fa21b97670114f3997c067c1c1b12c52399f56289125c492977ae29b8b92f4dc8ba8f085cb1dfd899f9acb0b970c6b87d1a6003c83e3bc13e0e4af519d0dbfb5331dbb5892994ad542fedc90d81592d4d6515ec150cf85f9669690010ff4dcf919c01d562ec214bd38645ff62bbb9351969eeec5ed2fd1266a974e06e605eb67b3cb533fc7056c1550222f58481d0381c76e20adacd5b0575965c463b7b46bba568a242f4d13441442c674bbd6300a9019381e654876de0c9fa0bd1ae4da0ec712292e7766425d2e948c1dc8d3fdf9844a3985d69d43746bc944bcc643d3bb0de37462d879fc4941498659747acc08edbf096073cd849b27c03eb42668b89a707e8d6558acda4831d9966002a2a8b77b04976bf3bd30fbe65be7cb3beaf85a06a64f87d5ee71907789e6df81889db5f830f4edfb92ae6bf0c3f495b82f0200082c89d939e8199d99aa454bdd97b6e68caada9d0efd6d7b073962f233fbc62ce402fc49f951576fd2a95491cc09c75052285d9aa1f62325912932450ee05daebae83587d069fc5571b0f36c1c8e42012f332ff2306086d8c0b93134c810cae58ec92379af49f5883ed786532e4d4fe1b3f00476c576ed455cf8006b301380a47364919689ba0b8a770f16a707de2b67466b48b2a108704bfbbb0ff7355a830c8a72e08667368cf9b3571fead71dac84c24ef8fc4ba077ff8cccc98101fd2467be0bd53bded879107377d6ad5d3d68d64d2753f92179e8499381e745ec991465c98f25398854cc039088f6e1b1e18a5fd301a4a261e4138a44140aa0e8f9a138f64a8b8e58e3da756c8139410c2f5d5074027f0c5665f3c0cbbb35c7aeee1a21b6e1f51fdb8b5bcb3d3e2b8c1df582c90da7570ef7e25ccd390c70ce3225aa5fa9e192c25a3bc57051017655d1e6674b91ce0a9d907d8b2588372905e9f41a6d2ff6417f4ae8940820de8bed1283d279457eab0f0747f7e400fc458a736cf3a90911787603289ba3fbd9b69aca9161b6e6ffeccb64f4b6924175e5a187dc35f9a916969894083d4abeff37ae953a6e532604337718fc955f370d47c2e7b257b30d211d611b7d645bb963bb7430c85b547ea68cb04d0b9df8315a1411d220d636c1b6521a6f78b2b610f050c928416409f6e78f3159259f0ab8abd392db93e556275ee0e7e76711c8d1d3d83f6d1253acb5271e057077d5a482ca9c29d22f1869eaa12f4041ac34fe61b87df19ab1f8dc9df0f17f9ddd1e5071422a98ad3f187cf2e8dc60014efdf232bde459fc94f1b34ef782c3d188154e7305516114271ec7220a75419d2ed60383bc3771066c84691301820374e5e9be299959923d3bbac7014aea9cffd00516801aaedc11a234be70734deca204456e1dc2bdc06211241c0ee10db5007fef7c0bd9b492cf6fa88a97f50d5274051aaadbf0bac7d43f9056ae6acd39a82481219230edc4aae392853c08ff84febf064c07e61a3ce6d219631e975d55011254bedfa7b0331b655e012c064319656748a7daefc6719c16498840da6cdeec862782dc1f806c4ee7a0be8a6754d164313f01f9e73f53916b197ac25e803e5fd4f51111a4b4bdf41249cee2e92f75971060e337a48fcc161908193fd76b4f0874b6338ba9211d2ec4d300e0060369f7379694ca19b48df5122e19a46efe42a4954efb16ae88053eee82860f8fcbc171d03823a616ad5d0172b9f762f083bbb61311d0d288e1a5574b8b234f24ab1cb4d098a700c1a84ec6724fb31f41b5506dcce6898a82a079968d1b92e7fad9a1cafc22a3c0dfd808ffab28a8221cc6bf39b97ebdc56ea89d19f2f23c8da37975c8e1a884e85cb40e1cc4dffebe8d3c2548c8d58cdeb5d150176d2e6e65693ed846cf114fb807822f9a972df01b1549ace8c162ff481c3e1de1d54883510d7fa66d3b989838651338ce64463fcac1d38713526fe3850cff07bfe86a0a368b785c5459848a1ac5e4644dd682ca8fece4d711d44919336f140da56a8eef5bbf5238a78603fe5abfe50949376c04bc2e9efc19171f9bfcb202a2055b0342a25b2c6b27c004b1586836668a00483f291d210280a4ad708833a61315d2955c6a6236c2a55931f54b09c654da4ca140dfc48303db04889f2606d0cde551e25319de3186bef4b09ad77f786666e72198a851bf67a72222eb4cca27901eb366c359675bfbaad828a52efc6c8743a807f337f519e70e905ad7fa3fd17a2b8d5f53aeb185c8fb85d8ced475c1f8ade9d916a3558009cc9cd645cba0b5bbf3f677e014aa2b8e99fde6ad06ccac1bde86dcdf3597e6a0435e77deb3de6edfae321cb94480f119e10610f1735a1b30dcf5b1d0f608c4cceed9a43d917dd3b4b05e53855a0299ea99465ca5dc174b5fd49ad5364e2e11393f3365a66f24a0c43b34f1acf8e4a0f9cef98817b379324b141d93e7fc13b155e8e12d1bd9fb7c7e266d6d7fc211660fe70e0756b42d6550863435cd22c36b3e4ecc3c1d0f8d265fea9b6dc061eb958adb456869d552db2fe934478195436d12b7d50d1ceb38fb3415e39b038d98b4027e8ca1c837ce2a661894cae60badebd7bd5dba6c18d70d32e37cb929dad699d30a643f1ada242b5d60290613d5a40652b08994b97b24c52ca1bd5aab72ab876790217f7d6744b0215df01dffb9afb4ffdbca211731cba64a1f787bd4bc4a52b29106f7c2db8a1002d35eac7f8045c0d1e9639940a53889b473b015f3e908b5302e1aab7d099880447d6e592808e0e3f305f29983dd3f926caae0cdc5d40775d02eb35026a7fd532a9801a7eef0bb3ab214420ded9a75637bc259b63315cef25a435678e4995874f2dadeb1fbcc3b03e038ee4f53e24805c65d41bfd1a57e5489be0dfa56b7017d95f844697d77f2931390c5ce54cb9005b999c93a58258a1422ea22a4e886f1453e8ce59668b336097412c5746f6f9fb04f1898a3b69bf456372412885a5bae46131d18eceaa6eafb754ffb1c1a63fc3a7465613c50d33de980e42668935f793c5d36ccd5dbe0e9258179ec7b4d7932686ef9a6e31e31ce3c0789848793d91569b6735abf57fc4f8575a5a7329a41ffa68271e10122c6021b8703b6183d04614fc5ed5f0ec9299ba83bb47c776b7fd0bdf43f5cb2f9ef03aad1b7d911a0bf8bdf153b2bc94aa467ec0efbb02e52cf053f55061f73dec14a6474260be5bc06d841b2fc2907dfef6141a7d1cba4374019d0080efaad576975d71d674d0f1fd456770040ee8a37113d49e920125a0eb5a7c0ffc4fff32cb66e3a57919089f6fcf81813f7510ade96cc384c1d3afc911b5ff4e55b4fa9407a6b426428754a24f1f33babd7362a5ebb1ea1d704da2ee276e53b3300dca24c85dd1eb691aeabdfa371ab230b5d231497f7cce6d020cc5ffa2788e3a022f1d721efbfc534bd086f259f4751803383b15a6e568da03de0707f9a6157f354551490be48af60abb617d98db389b62f4238adeaa45e9c383daff179c15ba1aca219d27352aceda8c2a1f1c061e0d71e731b9a63b466e703db3f1b07c946cd29830d4c1ff29c4d5d136efc8db39f80cb617dfb6595b39b3556b693a9bb654a8b349def352f7b2a425ca3414eaea8c09c2b87e3fa59a1de158b8a0021bad76af4c096582b70959064430bad4bb5f0a2acb493dee90b4f9b41c2f8b463141d5722a3ddbc45e990aa5b3022c474e49019d54ade6e7610fa7edd8061782bcac0a9d36942f1463cadc5b92cb016f535887ea7be26d476c4b245bd07c9035a79c9c54b62c56ed70932bd0693c56622dc69d021e41e27e995f248f08822d8755f22b44472806d450bd9ee44a1ffe620bde0a20065332e4801396e9c74f70acffafec01729974f8fd7a10b23cb901dbdf26f20e778002641bcb41fdc94f3608c5e07be2cb9d89449f115b01dd5ad2fd4e02111a41ffe68f7093664d3096dd38b392807ecfdb823243540d55634dcbdc310eece53fcb80372d35c8da7de11492bcfc60f68e183a53daa7ab8c98db05898189a8dba88119a36676508791c115be58a335f29535d3bdc95e0cc8994c943238735eacecd0c1cc0acbbca5ac433a5bd001f538a6b40aba9b592543f02b03d740eb8785e00216e97a7578ce6a89b3e4ff861dd3e2ab4d0814e167a456a0d9852a62c0380e1a85d62ab5a560cb854162ef02648b3f24e4ccbe1f9c3daed78a93e3da913e8eebd6954e0e987260942fc1b7932c5a92f225ca1b4985a0303062a68c16669a7bc1b8a26d4c65df9574e78b95236a84da31cf8f53fb9b8b4476bdc15924ee22329eeb9adb60dcdb968980b9898669347f32bbd1699796139724b95b0b65d0fa9dfff248542d025d62c53e7814abaeda8304adec13809d0850598c6471dc91b373cc5c3abe4c2c34b1adf69379380c413b551612754367c2e17f1b948cd9381c575c536d002930b866d61be00bc95d99ccc09ea138ce46b50d337b388e0261d67c7254ade9c418548a476d6ab820385da8fde485cb563cc480c05c29f3ea7685422ca584b42263a8309e004576d93a0f80922de0409ead25b7c90cfda7ea2a7a0c006c303cce42acc7395cda2aee214feb6d93b0726220173ab106ac1b8e25235a73af15c1b793dc5b4782315afe87125d799f8aed90d0476de321da5c6b665f7e70fe079534227fd74a81dd440487b49e1ad1f51b5a81f400b80896fd2b6c7f15628acf20aa5553623a0922f94ae07951ad3d4bdf219dc9490d5e3e492c7a8d6d9158aa964e02d780e1ee730675d156cc52440e5ace6af56e2589d9541873e8bb3711ad3adc6a724c5b9adfb312b4612cd976df3c7fa1b5b89a87525f9233bfb9e7d949a806fb728e6bd6ce0d31006dec2cf6fd928ee638da5000c33c6e38fac35cee9a393c3e8e89735a0154687a67407fef0a0c16a62eeebf6cecb3a8de8b4d43fc204a2cb3f452f716bbf07b317cb58763c1210c07cae2f5213a6093a412da8ae4f4c6349fe974b368018a29e7093c4d4db294ab12e531d44496b7a9df87fdc5d28765862cea57308f268b56172f5eb1acecc94c1cde1b07e4b064e3d2b3fe2856b7ae6be407550e8da896937d05926568db1716b2780e846c80097590eacace621b18ea1422f3201a4203ef6015f7111e0cd27ffd4ac7a09828c50856a104267f4311b90edb35a4b3ff3985cfe43838b4992ab5bb5af068b7df480cc32bc5e9df6d759d2d1a6c9fdbb57182458c5f51b48ebcc3430b7e91c654116b213b7407848132734374c6e21fee4a70e03ae2769f4acb8e413b2649e28a6686bda8a27f8d41f5f048cce606b25ddb26a01edef0b9f4469203f5a95362b205f3c62a5503ce445936e88368e45250effa398ccccfa59999b01feaddd33cb1fa177cc8d9c27d46dfcac73bd167f16455ae4d8bd94e315b9822afa320fe2123007cfcbe10763584c8c2313ad729eb52791728eafa574c0379b5b1ac3eceb05389b0fa6a464dfe9bd04e54edddfafde7887484b8ff10848284f92e405f8cf392aef1d36f6ae951f6b9102ae2e6a5ef5d747184d3792b0305162d8feeed04fed63d06af2b3c227def633acf6551d01b07dccdd6d1ad25caed6717367160bc13efc32055cb0be737eb991d6b1abc480327aa1903f7d757c0ae899390d601ec12c3219f3d9a0e22ecfb70a947d376272865016101f1cabebb1d03fe39d8c7dbfc8928e9a492b8ca420f83e95d2ee478af2b2961127a3e922ccbd50e3a26c4c51093b6ac6be96e76b7e0420429494ff0aa48380a053e37590caf10c049e2a93c9175e8336e127f972a2d51c42a27ada45c1a302f4c2c01e5d8c093c454b2e6ebf8b888c016c2bcfaaca8c208a7205658bcff32a72bdee95c3c7e78bc03c4b95cbb4b4ad47ca39155f49a3c02ae4e0d1fb9504fb189f391aafe7d8502b0865237deb38e43a2bad10874e252f94f9af50d0e2d6cc8433cc4b8dd00e3c2518739e89f793c6f8515c4287b898ede3bb6ed496d290a7c4a9741f1f3b91c55852fb296c4637eb7dfa295308d22d699de7a719c1d0d663ac7c5687e3c18834a8cdad0497d83082d9d5a0eff66aad793bf1dc955ca033f51da7ddfe69dd116be9a640ac18dea31f297760928b95f7700d67f7148cc99ee8f4ea6bbe749693cdb85cbee27037e60fbb12a1081c6981abccc6f578d2d88332a93ff135528b1156ef5aad7f604f869086044f95ecf0b83c6f592b66a9004ba2f86909a055139d7ecbd25d12784e02df9407610124945d6f2fdb6a83b58085b952c063b8229528c237c6fa0e6208a57813462255e08e926cac1fc9ccc6800331a74b4acae35480287aea372c46e0650200fc7958cd1670b10aea234bc916b5a081a08542af51cafa8d5411d30408f1111ea82aa0cfde443e1fed7b7008350329f526844dfe0cda28fc05daf979b2a9ffc8a6cced89a61ab7be3e83b0b480bd7c1d1af4293a1c5ea46d671ab044662c03accb35d06536bc781c4a228b937ea59985b98b7600bb4717bb324a8028feb2df8084a629a398452e5c4172f3bc5302781e54714f7c807c31d9b36bb85f9a7f0fa8413106e2960b228b8f8b146b8a3d8c1fed16f078537620f65e0806f925467335c5f6e5acbc4eb62e3b5f7accd93bff8561857c8f366b292d4eee74ac920b0ef31d805f9044328441557db0c6734b6f814364a6ccd116ba3f0a6b2a0a397fbdf1b7f55fe04205fcd638c23222caf140ce6f655a7d76fc57c71265492c47e84b37c127d2869bf514201c1ad186ed5c6bbe3cfc2ff3cbc0bc1778c2d07fae3a0dc911c4db9a4e1c6ce0f85fc97d1cb72a34131e84f45a2e8df9466d7040aa6e22b4f24ad302b3a37d706e8ebd60cd661210278fceb6aafd07991d7503d9e39e6756ffba45669b2f935ebb016dd8e02a3d76a612c794f2cd4338054e469303d942b77bf46a144d0da45ed9c1074ee984a79ae324f33d41bd2ab61dde6160d2de4e5ed0fc939de45abd9b5e42e5060f66bc9b9245fa04b71c1e3050528af791b8cf501aae936d134d11d4a56373e89479d56a8e4e1d83c30cdc9af1f513e154fb1c0f13b19a3e0c765eb954a8d54de02764e50863408c4605dd1b467122531c5906219411b9769880f85734f016353b4bef871b5c3b02f3649d4777074896390429f501c1d6c6be1c2d92631a4e92dbe7d877e46c81f7d1fb3731755e2e640a6d1f5e73e1de980619105af39ba517145b265237ccf9d60e5495ffe9027a071a6a907129666c4ce23586c82282452dca9544cd68acc3d61ceabd932a32c3cc031ec83069e4b9994d2249af0e5a3c93c0e0197320291469b2915568661171f586103d5a68dd3f58b9a42d4a5cd4d014b68190d1a4d2cd20c850b463361b5c3180d5115052fab39adfed31f3d8e685f6e1d78707c72d969fdc5eaa7af07f529402f037e25c71f7211bd23c15b40b2215f3ef5bef5957074efaa351ff2ec26b2e8881e9574ec97ba576f0d5985d487b76a94965fe7bc0d798657a823d228384c556d481e65d9d4e6d7a374e0887e9d96ffbbab693e0ad6c6e12b7ef8d9eb38dab950608a0a7169dca55576a6eb0f9463b5bc394de8c6df9665474058bef1428756c1e5bcfb9c43f52d1f570e630678bb6adb4637c448f5e2b84d741352a632aeb07ee1ebab0375813eed4ad71bc73a9470a23c1e62033214c0a4326d0a9f1de31d8bd32d0c5f24733942df39fcd63dcd123fecb6ad3e40d9d3830f07ca84a830775b4958a7c48b43142916107c975b6b1ebc5016fd33e2bab3f04278739a6949d729506189f07ca15b5e89df76d912223883965e71d4f7b6cfe64b78be72a1399bc62a48a6211a3b8acfce356126bcf45fccc11a47ef24f1ec4188ef2a806b5887267661643ac375063864cdf9617f45fc72265921945de6227ab2b1cbe03f3983144f5a34fa4027d4e4c8aedc93670493f62a1335592fed11b4eb188df25f55bd7b97c46e11603a7a2ed2123c833d401a15663a37d5a99dcff4d08455f7080c38eac27ac21d4722430e29beedb7030b46aa427ab1db787a6a033a8aac67d8f4f2df430619a49501fbf4da50ed6fa8779bb2e3f4a71ab70718cefb8fd30066a457b8fd6d7f9cdee2b3764a47bede3bab97255095c088c605306e781998fc7cdf065a2407300833c286a1f3a5ac3f029f75692c16a68de82f00219f7d0e7c0bb283fa173d96a66835962e3f5de803d65744d7b412a9004cfd9024c256c1700e4ac7f032d8dab0e4f8e160c31d21c1ab0d21cc315c3d3cf15472b5066efc0b0448cfd74955338c6c1607b054fb218390d22d29315a3264e735d8c3b3a13f2278d65e2c0a9d81d4afa7a900e583bb9b41e4cecf30b208afb92916fa93dff773ca1cefbf11020fb5ad6e909be1e33322a81a185c830056d0e8d51233692d944c8ee3d10b535491e535d3ab398b375067f99b3e07c3bcc678715bfe78018b0aeceb7bf497239bb148d4ccfccaab3509ef93e99d1a54271e96a18e7d60f87c3a25cf58c33873868c380e81d5d4175e2dd7eb34e91f417d2ae00353dc188a4cc3c2152785df8f4c6e2e47b80c4710dc413fb8f0729b85a851f36d9e7f741191145b17a5b140eed70984167d862cc3ba419e71bdc2e00cebe375ef996771394431da8182b632d207398872c3293829b6c9a317151f3fac80fe284127b62bb43deb49ced328ab100319821028ea1e990df21e2c61f98af7f03eacadcfd02a6f66c15f3c0030bb781d78481d00464a52cf60608a0d1d056e00b7b73043fbe6745f66b8d201fa45e9e8f1a1d69797a7ed32b8d4d15163be057f91497a512f5065c8461d136cba50161be3c5c26810674afcf88c285fa230861ffa1e7de068265b8bd7edd54ff7f652bae7f9adafd7fea3281285bd4a334f5d4e216f74f4cca8ae00387091883569140a983db2d163f57b62a79a2ea227842b5658bfc15195308769a5c439185ed5911990e6f68361f12ca078985eee681e4a07654de1444020fa6711029b66c13a8793843e53f40174e39de0d0ab4d4d21af955c880d4716968ccdf6a05b39a0715c5271215a2ab98a8b6153e388f0d0e4548be32f240e32267028abca4bbc644ad024e13e2e4ea1e3b3a94eb4d17f590a9ffdb4765880b436420538ebc8a5abb1d96912d1c660532d1d6ecc9d32006ac73173534dae0a24595a92b498a91c2d560f2c0f5293ff356ad88113a8f5c1d9e0412917ddd22ac0c32b66478a9a5a9e005ff6ced8688e113e6f129f17c6f4261560301b96aa678a34d74230d0ffb8d14327242a0d479d585b49303a96eac6c400b3b4f921212d28a95bd77f412bc4d67240d5a966853d65c8ea06aae84c9171814d0f4c0658d1cb079b3c3000704ea48c684a25aa14de0b31d8e023b4086654ca51d9e814f7b45de6e7cdd8b8a7a04bf30f23584112099b37a02efa8c3f778f61b935649794193b2229666ba81245dcf42306c03d6b108bc1950c9317d27aedad707a683e99f9f53dc8bbca13bd67e1f1b8b1d78300c6476753985140c9482f700d854b9ede5ccdf6638a86a0688de51befab9a6c0b0d475be3b0bea37038f3121558f96859814e38c6850a04ea785cbb6fc147da031bd893c25fe8c3bd8403f9941fedc9d20af3b45b35c408b1f8816c5cd04f42cc7f1c043f0f859617f549467b038b76e609e1e8cf840cd40905a791e05e6bf568d646894f3a31c1b7cf85c35522a1a2e23796453d31da5b67e34e57eeb3f29d7295f490638af44683b3a872802167ca2d58b3a3057aaf85aa6edf2d01a98f3f8be378e180728b2413afb820eda44591212b9edc122d8a98b8c43de7f595f591e6dba2a1833ea0627f953eeb9d1c962a31f7dc8ac88c6f79f51544e97d391d79069c843e9b74cab988a7a560ba3dfe71117f25edaf884e553d5c17997ffc3029afbd5e83f3269cec4371c2ae05cdb073f0f69c8d276442ea3c2805ea65fda3008959852888783078645058cf5f89ca1725e390de46c4dc817696ee78c7d41b1c70aa50a3fee60a785a90f8ba9bd78652a1128381f05631ef891a8d27416704b073c9fac292e014e03a3d09d505c9f41a2c4d4fdc88a96a1243e025c8807597c14c26711519ccb1a51a77316b3670d03a88cac070da1577a3c829f3149f22d11b9af1cd8a4de5f513211f1239a83f60637d930dcc86cd7b9aad1ddf34513473c6c40e9902bee410aef976d24f315a261bf1051b9b6ff5138a970426d401b3f30ea2ce4e0d9472cffff60cc5bed84989f239957e0f3fc978e80d4d761cccc164c733cd39a9390e7d11b13f2c4bd70a66de12c2e9f5901383bd6f565594e335afada12398653a0b7832bb8f6e3780b2abc726643fbadb2dfbffe49915abd6d972b7bf569d6d597dfd716b2778ee2a608b4876374ccebd016e560318ce693880b3089faf69f90960282b372aeebc19aa00eb6454440ca23f8152438412f640779ae070cb8a04aab7c1607b8a0fd01a38549834ee53b62a51aa1a23f587f33fce2df4f852cdc9833fb9e36094f36a18bb75d4be291e84e6fce109f370de2085c0fea8bb4635c361ee51f072a45a58f25e328eb7572a3879eed495d6dd18e43ae8828d1d709c9a5aed7620267588ce942916b448eac8d5afd62efc119e85ba38cf0a19f0180e04cd8c08f01a796b53c36fca1390b74e605612d9e6556589231399bcbd679ded3493012e80662008d2660e339e62aa05087bdc6cec522142452e229c1e8e34b2ba3623e9993e04b4bc56803df2f630de522223f9c5cc5511fc55d49084a0d915b915b6cbb714d46a4ea71be91c29742a49f2f1c2bc9a0f687c1d36bfe0436420ec5cd825f15f6cf8c65663454e596779a8415bfc980cd8cb5e77eb9a9f0a9933456ebed8b3bc30c21d009fcb4f0a8c6428af4f68bd458ccc50e8917955070f13b4a43383824f3245b6aec6ddea87e675db8020d5af6eb5636ff6c58d12fe8e30fb5a58c3127b40662832a6259bed1e88433481681180e02c2bb539bcabec1fc488a6b2deec42b348ce29739ad8e13c2676538b20d3064bb3ca2fb3dd6b47d0529966310c1e45905f48e280fc07b24c8208f48a25294a604916938ad7c13018a6d50759ccb7e6a4511fe58790ac37b1719202604f3144ab17f91c9a8e4efa1f20a3e6a69bf9efa918d9616797bdc7100b2b3e4a6c708e84abcc3d2e89ffdf8fbe5540ea71ae918854ad215067801d16fa2616a97af111efeaa6c10a5355da5bb66b98a72536eaad885f5ad20e08d00faee20b1c2f8feecf1258e1b6fbed5cbad98ba2733a5466907d11d95b63017174c60e4ba496e74d780c1ad7d79b1cdae02652afd92a5623dc60b90cb3502d3e152ebdc2907483e65dac214f175341432ed2613619ff004909963e888779e95620dfaa8f507bece30d25deaebf464a1c7171c7c3c21065cbbef20a904c44abfe062a35c91ba21b52579d16e8369c32d000dbfeafebbefd8ae44c968a860fbe679a53a32009aeaec1b46b6685bc390bc9b1599edf7d4b737d4479a21d8bd807cd633e31aecbb0b364adb0d92488c5577b6d3c523bbd1ed1a7dffd7e514d68bbd82f4c464438115f2a7624d4d04e8e6249bfe4c6264c9d6102ef4e85aee17b6336318c3c520fccbd5ed8a571483e13651e58ee965932405dd474551e57a565fdea217ee5ca8c2cbcc0e7308852cf648f0783617ca744f6377766a8dd8e2f9e9626d8eead7c8302c36da8bd53b26b944f4f369a6225a9ad945e6f04c5542ecf9238841de4e0585843b73a42a2a333c7a17638962299244b5f4d9581b361368807b12d50c2fed01e8ab72e9af77f31cc64bc9326405da45c2c46155e08c65f71f3fe207e9147046429a7acf12ac11d5646859137009884b6f81c759e035233d6e854420d8afcfb2f02b19419aa81fc33f2366f4d4ac8281fb03ba986d8ad168c5073ada5b5fe4145b6806c11fd7af4db38d23d64c5607141920f3861cfaeebc85c1eeff8b98ca0aca2d15cf553bdadcb98112c8190459f247dcbb0cf1db524bbe4c0629b830bd19ed8c476c6743a34b9451906978b329f63eb5671f1b3be49cbcbae8cd0cf33d2be51be06f89176fdcf81dd21469bda933299183d2d85390cf443fcda5024efeb97f03e3f893cffe69f1179029866691b15939259215ab6d56005a34fc70c0415381d59793662390c18199af1f8949f88e74644a7099fd3a604e4b299d0d67d6b801ed6c64248b9ea3e63ae98e982a79c276f22516da1ae9a34fa83cc0dad81893c867a8bfd9a1905294afc2dc15d2f8a0817132dae52d198d8e35cb26ba430a4f8e8025f3b1b56a4a2d55a9e312d0ee313916e44e4b3037ea72b76041d1c4d27d62224163bb471a81e42668afd6e2750de8801a9501d040a0098874cda39ac0a7440e2ad8ff888f9311ea495e60033c2b25a48c408d88a6cfe190b46b0def82a2f323ee184d8c9c2f93ddb0b7a292d6591850a35aa790d2e2063a8422689158f352416f6c96237c946b56e593333b9a5e8b145a42daaf38303718bb0acb629283f3a4f21ae0e6a755496eaeda0abd8880eaa5a96b5ed0d77ae9a2c33f57641b12e5be66f385552f152466fffadf7b0ad6c96985f0157c93fb36e4e760f2cbbe7ca3a952a1be6ca74b4cf645f47f9af04683016ca687b3cdbc951b285de860a1cabf832f1cfe687f589b2210abc905e8961fa218f9aa424d744c492fad48e7f5faaca01c6c69458a0f6d018b5002f1cffb700202a3b495bb5584450649bc600e42e3b86fd58a092b445f10adcc197e4976642deea08f35f992467c31cccd3433cf52d6f21653360a2bc0ba666e11e74645c8db999514cf91be09a46301a7161091e327a2c5783a3d0faaeb69758fe77bb75106e45260d30c736d8d4025a94c0cab3610da92926b972cb513e7bd22be3b0ba55f1fdae50644b5967c06af1c1a2c1a2150973ccf646eee034cf180f2cf9c02d045ba943e62341b3bcbe0999a569a7fb32285244399f25523b61a5ff53813e02aaf6c3dfd893c36af85d4fa8c0a6521d09271e25d6a09316989e55a1f13eff2f39387740f6554a1e039b904ad18f5a7e84456a585f923aa0afd32eec20507a8d1b276a3b4960bac3cc41753e230f3296a4b14cf6bc5dd604efa0a54682290b47ba0c2c6fdad3c4917bc3e9d71825c9a261ae2f901c56bb5511365b35b100375174e6f8ced8413286c7f990e79225bbfdbb80e0d7ddd6620c562ffd4df26910408e26383bda9d8788405f39eaf265bd0cade62fd28b36d07cf8cc575c5072c84845b5124cac7db3264dc831442680f0e89615f35078b71cb46f2032b321fa38ace99591aabd2d214cfba7fa64aa745cc8668a8939c2805c957b7457772dff5a4d8718e4bbf186f55f7cf23fe2aa01de1cff0a65077a3dee68c0cacb52681a5a73d58c2c8c78d7c8caea87b6fb9e493f4e2fb3d0c8265c9da39587336fd9b381eb3445b46c2468b699d1c6f19b904c220243c0918835a2cc445e12cae0000d79f7295b516608e728b1e1561922237bad867b7b1ce1c45615c22e36da0514a18b717ff3ae38372a909db02c3458847ccb329ce5d05b78cfa6335356e7dd9096e33f9aa14a86e14b9e3ca29db7ad92e0e24de547c2ee4ae5722217326aab09f9f72a41cf487fd72c54996f371e80ee0d2a1c3acd8c9ae3256318a029817049ad7b658854df0d8e4a68927449889b93674a08d60b1c5c718f1b0cadbc3d85e882aaf2ef15a7388e412c80cf07381f8125903908842dadc291c31d3b5b34d54a4f26e9f6e675a9f65a1ef54c250ec4e5c958e8f08ee5110773541059f966e87d792ee8c49a3e332a876a40e68d3c58ab3407a1e53cadc2ec49c98b1e51d274a780c55f574f96c80d35ff346dad8f39b0283133c2ec9fc6d2c7098713beb3932e320acaa6b14509932a7c269c7c882a77762b3298802e449491f5b6bda073c0defa3e49a45b9f8bb931d95b9674ede605e59e1b1d43fea536fc2e2cc8b6b7cd34cf520acad0c82b9cd38412c749bd292a47f696ac4c9f188bc52193ccf54b55b9a3e6651ce8a5748c8b230b6aa975d154c9f0e899b3a2185f493362016324f64a75ca2b087d05a3db29cdf309174fa4f8168e8bdb533cbb1f646da0550f4836f9926882791b3ad7093149dc7e3a256000b29ab6233f8018c0f729dc4bd5baf01206c247678fe35340113e01bea8cab3f047fd2842c0e8022475af37c0bfa8da9147b22ec20172ad58d01dce05fe642e23cda4876cd148c407c935da105bcc4e09f29f8a4842121f65b2d125b88a49a80a9c37ea46ae63a6ad6f6ad44f1213b031f51ef3f8ff6d792f2506181def801190373dacb1f710613670e595862b9cd127d66c1762102efae4289f8944d44a061248179a19d0411a16c9383e765a26bfb059af90282a16265c944e0e51dfa8b44c303d09a8588c6c96c2ed77c5ed65b685d2b27f792386d2f2cb302e1591601c7e5532d73a02567015a284aa74a68698927ca4f02bf97334c668285100230237b42c73e63ab4d82c10b6315dbecb555b7f89f2602b2f8e6419054479036a659a77593092b24a0765a8f176a2bd590057982b82f56df365f494e0c43caf5513786d6e5c8cb6596160e6d1a390b33947f634dfdc67dcc7cdc3cbeaa05d4c5dee5c411d21d2c5b1302ab9640c1c58ff08d424d97befbde59632c924654307470742075043a1ce80c118e5c4402278e9ddc9ca44366c0821e418a6cf9e339b52ca217e96b10bf6fe3239bb67b3f4d2147ed1a7d39bb1d7d3e7e48e6a3047193bb200eb0dec47ea34da8fa70f8ade1d9cd4238d8ec918065e0b3a75cb3f487d768d912bcfe850b210328d5b9b3dab91e350870106070c872ba274503ace39e7d773ce39e79c73ce396777775bd1724e5af5845aaa25551645b89c3a75ea16fc9139ed2c0ac30350080f409d99af097b84e0db2310ae18bba9aa9af3ba9f083ed2d94f4c4a29a594ce2b99dc60431acda64674d3d81e29979e5b50dad5e85c6794523b77ac1fff597957b529b3301fb2a7a386161de752a50d336a57b7fa8a7ef5c9afac9fbc72863f36af2adab63b6d1dc31ed3b52eebb0e9d74fef3a937cd78ace8a561597ce9a894e57def71b9a54acb316812a48757d8aae1963c13e3d14c794d29b59f86372a8238a628f4717db70f6144105338b9a30b8e1491746132d87d0f0473524a7a47ee4572e81b87258c96ace3b248120a5f2fbde2013068503a8f9d783d355cb06f2700e64041e389e14342ee32cecd2a5ba42b087f454181b9dc21e8c10c3444b9411d0c050281f8ec6c86536f2bc41f95c4259940b56eb42f666266bf7d30b2b1255f3619728eea667a6546957ccee1dd8d48084fdb2cffcf3f1dde33b00df39be6f401e2228f8837a128993a170c82c8a48928c894982917ec180eb915954b7152088a0b4d24a2dcb3bf49b45b4d7aad61a348df02189a33de79c93527a9d985c12364673ce3929a594b61816d5b3a7c746110483c3176580606a9001d30182a95aa2dc00c114ed507d76d9ccdc933cdae6d3abe4d199959195164300c4a10b18f2dd419ce959372b0250f8ee32f0dd7d3bd6300681559d5070597416276c68f0968e746a7e48e2aac79dc09bdec5d235e39a5ba2458849292acbb24929a5f3e3a2cca2963002e206c7118dc4b6bb3b36a13226553795be4cac022ad2a2c231454006b96e04b306c7457cf4ddc51730958f3ea89146d0dccd94ebd9ddcdb1a26ea2a0b89b227a76cf6e3a7b52eeecc538a3b1904194ae8a9ecc171a23bc9cdd5eacaa633fee2b8fe96c77eaa014d27162abe555ebace4c96075d9235ffdd8afdcab90ce0d22b8105139a0a37371035131ddafbdaa9c3aa5ad25cc5166fdf374e010fd4a51606b45b9f7794c9fce7ff6bf9effec6b334e44f2a0aeccb5ac6819995ee9897edf3e9a4268521346432d2d34c5fad2db0bf846c0370eed208f950e7f30d402a547f2a460b7fbd5bae3e95bb705d8a30a1b1dd68ade08b59c4a90a50ba8e51b0a5d22a9cae6a44d6953dafdd5afaa88757777f79c935ed44c116aa266cf6ed47773916cf96b6fa7f79b7332e91d2aed6ee6e6663a29f51be69c73ce49af6472630d6934bba70fbabbd2b00882992294a3684484124434823b2242a148f0b0a54628dfcce4a4e7fde20a2e7c74b842bc41a1503737ec59147583e26ed893454c0f9a5ed59ef366b7679428ee2632b7f340e7a4d5e716c5d47bc6ace1f378ff9c36d8397d068baf7b0eb503c28409f33d44f6852265f928168ad484b68062b9c1a10345cabed4ebcb37b14ca41f5a30b1541a9789747df942ad0ba314bb6a6c3ae99c138a29adeab4cb64d5653d84ad2a4e5eb5bd5e4a1d88bca4d7acaa1e533fec95b30e16bb886d374feeceb2465d9da5a0ebf43ab9ea79d9e900353d209b2d6120d15e4381c11c7b427ae91813b843bd6d8cf89ede42f3e8650fb6fdcb6ce59f0d128c31a2b2efa2f24c0ee5e5bc5b17d84346ff2e2a2f2f2a9376143a20c13cfa3e2135107c872b8d9ea2d984dde3cd72e3e84ad252eb7755712599e07ae2aac2d908b294eb6333c94f21d4535adb5616fc11218f87fa7934c4a3a7d37fdefcbe289921a0507d9bd22b84024a000f5bc2780ea0be1fda5067b7d726b633762942747ede1a28f884ca5ec402eb6b06d6066b1f1f5c824950c9a8e9d94d28f2e9cc163cbb4edcb1d163ebdb9eb713dc647eb044beedd965093f50014711a2c32802f5aff9a1cb1d2fe547bffa115da094524a2965faeafc98cc9a7a53ea93529fd429a594a953a7b4a294faa4943aa54e297bfcc9b4a215a5d481f0108c0c21150b4aa9534abda294d22a2375a62e2975acc2386f64bc5fe55ca373f459658d17897fe52ca47a8c56da83fb2375fee19fd76615bb5cf0e7e3254f0ce24125197ed086304af26294e18718638c31c61863cc4243171a9668688206241a82a0a1090d4b66d8c10c5dccd0059b6287a4ee59610f76231fd74802226317a390d2c8f3e5b85a2d7b123534b39b2967c300630f03b64f3fb8819dbe08003b0121420470c14e656471f2c1066cb41890e1c9056c1074f841985403d347200d05cb427fdf15649898802c2084164b198c74106394cd06186d75cfca848cb7e00f889a55607132d73c8111fa15381286a985d22cb06b625b6e4c5282690ec1d4b298114208610b4c12e9a1df18828d0e2543086116496090a52401ec02bb34c5208328a3f3e56282606194d19188d106868e50a2945d0e2e7925fd9512470964177bbe10457a29db0baca3905c482c48cc3905d204631e81c44264e941930caec301737b7624767bf66d470cf3dc7d2ebcc045cf0c1d08cbf810a801cf8e04263dbca99f063c7b039e6f87794c4e6732a3c4ad434edf44558c4a60d0e50d5efe596a79ae16b05f7da742690729dc1e7b500d7e087ba05a831ce18ff8311be3bb6ca1031bdddd50d896524aee11e8e0c5063192341fa4a2173e6a33582cfce9317801ccc3188cc08c9e87317821e9c9b04127cb6ab09547ab0a7b446f610eb5ebae50c922e918d4f1916e51965f8edd21f02d685d373e618fa384c2c2a74ebb251fd9d0614b97874a395cc9a18a1850e9a1120e5f5c11e6234d0f96bdf6f015d10861e37774d66882b0ec4024049a7c6151182d6377374d1040d0fc602f19ab549155d883ee4752a033518c110a0c6e636c62d8c630c803ab3c431ffc4242adf2ca7b4405f68b36f8ccdc198ff1199e9971e9320ed99371214e5ea0f9d265bcd99371206c840a9cd3b59caa74ac351f996158d47cbceb6eca315975744349ba16b42332b0d17738ebf0d3c9ad0b71ef4e351fbfa9d3059a7ff2d34dc29ef566cffa8c56027c1d3775f253f46a875b1e39bfba1ad73a9aac8b549cd02dcbba4fdebdb9f05b37b6659877639877171d6bdfb66e4f693e48707877f0777490bdd36947dc11b50ebeb4715a19921c2e85d838e6531b82c371b86b3e29bfb423ec4d8f4778c7babd91097b5d0e6f6dc84d0ecf81c5e893d94ec66337e33bba18871a10d6111d88d4d159a70ebe9cde74adcb71d3a53a6f9bd371743dec4db7e9b8aea633a123c2def41b5d91ee02ec9140351fcb67ba29d78df04e8cf10f7e71a7633e5dc7478c2ea5ecb0a618a39452c64ec6a8e3038974bfdd92ca0a387198a66918b66d1eed49f3e89ba66996e618cd90c464531b9234b521727a6b3ef1ce18cdc7d3303fc2a492203b6d486b3142dea47738441b7e72875d344f6c7bedaacec19c15188d14db2e838394ee252bbda547125456555555d5564713c5b2d7ca050cf2c83094c5b1675956f576aca38162795823c0a149cbcaf4c2cab133e8411c0a71a6ffe77d97007bb4a7c04aef274b241c96cc39a5e4ee6e39e79c73ce39e79c73cee973ce39e75cb2edd37d080c6e616074f3aa9391321e63fcc28975337460ecc1c229ac20e3211b0fa76062c30422b42ba25d3edb354eb1e653b925c4fd4c9db9a9ea02cd24ec598ec9641002f0eb4db107d1cbb78a4acc320b629dcd3826bb2076e9441f047fe6676e103b7c1f962ead0cbb3c76d2af0ef3d2599603913f9963286d488c67f1e4b2b36e755a95c9c14c609e25288fc183a06e11d6db4be09d1c2058eb278fb65aeb4058eb2ee10611d6d23e21eee3059a1f3dde24ec69deec695e6bfc93f57614ef68de6ebbcadee6a70eb2b7ddf08e9497634d1fd1e7c25f116bcaba2f3acbd821c1b2d843b0c67474be7518478777600bec0797da4b308177f88a5c569bacecbaa1e1fd40338447812b4e2f7dc809f6905e65f94e43980863d95487bb61a752ce18650099a7a1d5b2e3679c736651348ee931b667cf316090c711c6913152aecccef79b476055e3d29124bcb314976c3c52d1ea5c24655c4a8a478c23ddab3a928b622c7947eafd6aa5b6ba9c0e2cfb974353d16b55a34727ec351097a8e811e93f987444b66c4983d20d561e2a1d2de93c54ba61c96327c852d69b03610ef3440cfb2fe7dbbba1d2b7cb9b93c54ae7cb833de941a6285895f286bdeadc7dd5afea7066075b39f599d1f060a5b35b8cc54c4aaf55607003c3367b29ec08cc97bfb6fce0bc1949ec5d5afe8a31cbb2fa4971e902c21653e181581c31125fe125bee2097b612b9cc45b9889bb70133f41a1adce96300fbc82291a39e9bf3c222d25c14c573ca664c318970d4cff452a7f5df18a97675196f1975f2ef82bf3f8960f1205b2b665b9c553f3b1ea94cdb94b654ef41977344eecc7549e30157ec23b509867f3cb31f6ae23f6ae29db65268c73391ffde574097b97d72c2b62eff21d56d8cb631bf047e697c72144112cbffc8ccbe312de61bfdceaa21af100d71997f38d42803d2eaf6670397bfb35fdaa7e396bf9d8ca5f8e7112bc83f995bf2ec73acc352d939996dd9a04efc0bf1c6ad2bf6c4b481a1f2c7bedb2cb01c2f429fb08a3f1c1327bcb7805d238b1eca729b858c143ede7f44fb0987602440bb3a1890d4bcc5032c117ad54c313671348b15445c7617d0865bc412d25d1cff510f6fd5cf8d8b517df0ebbf659399d4a353ca968c798f5959d51b553cd49e79cb2c61f54a190b95a29bbe6be92466e0106e1ceecd9925d5ee8857700e8f008256a5051250749a851031bec95090a4e8044941dfce08c25bc30e279a034860b94b88187278240a42698a0c0091f8858634a90cfe6d859c1ea86e32a57ab5eb5d65a5196b556965d5d59976559565691babbe57ce9f39add4857ada2aa6055b9f2708c635137c9ce76e8525e1ad0fc919a0fad346a3f7de7ad74b6ac950d22cf096f388e32cada4a4a9ecba1f343bfb2d85657bbaaa35df368cd8213b6e41244193650a8e6345a06db188a773ae32257b6a254430f0378a86464869118b576c0da9a8308ba77e0d77a33e05e6d8c12048416cefa532108a64f88038297deb38b410298953ccd9f67fb749b2809f1e5ed573ff9667d8b72f21a8494af6e3539f946e5e4958a28ac7c75cb312ecba981fde2db6438b29c1ad8a0a1f84198e748e1b0b18989a9a1a101c275470cc631e67ef17be00f24d5bf9415e33596e51684316e5931967b3fe33129eb02793f3387faabf7c01e31c70a5bb9dcee97bde59b066475f4b19b7d156e71ebf8e3e974aa4e5bb55540ea8e6ceb22e65f0e76f3a136203647693e9b90c9577c17f6027f58975a489fd14ed8fc74ba299b3ac99c64d0a601452aa268f2a7134e5e7dfbd936af9b63b6bddb35c7ba93f518eba76ab98c715bbbf89b86c2c9b7936fb6dbdc3a55bbd9534c86dd6c3b79b763a78e1f68fbea5bc3e7ff94584cb67cdbf59c349f1490f79b6fdec3dee6d8a99bbe75b5cbd981ad52d62beb5eca5e20ef4fb767eb7cb017a5d59cb515e267b0477b0e175bc5b84c508c5b332e9d01f007caa563a8ea321e935171c5c95b5eaba380ac9918ab0bb2bcba4cf7596efdd2804e5eddd27eaccdebdd1c8321b0506908321ef2e0a1d210458f7919e49d14fc4ffbb893fa91ffb9a023311ed865f1e03137ae166f31f753f2d6957436263942d9db17bff9a923e3b75b35ecea8474def2d12c13bb295874c8a3566b390e4a9ccf93ee40d8aa31cf969071a494ac032b6486b166335b24b5145fbebf88367d971c2649939e210f4d424a2641a0fb601e18c4bb58fef28cc35eb9da222e89a6ff6a7779818d9e8fd8e38f978d4e68d8f85f2fc55ee22bbc93e47f457eedc4c6229a0606796038df0e216cf6afe7677060a5730996794c609cf6eed1f13ecfb5b096fab38da21451abcf5a27ad26952d190c88424941c12c4b5620f90e518c91258a306878394a5156c016f750294a0e3ff350294ad1190d230ade4c8607f6cbbe1b0bf488f10d82dff55d5e6d5bb54ed6151a7a287472f8db893358bd7a9c7df9ecbef9cd3b443dfbac66aef5b74fc7baeabd7df50a0d3d07add0c26f0eff12923f3df513dda92624ba55f985f50d82de73d62376eb7ed55a5ee34fed873fd6ee634701faa40e5bbbf6cafb5db163bfba4f68c8ea846410748875e6145ea120e810fb54df1fe6fe837e99915d35b0057838050e4512875902d6d6ac7a64420b2520180026b01834e27c9be4fd382325e8f448d9dddd524ecc88ac55decfba484e90ce75ca2e81623f9d8c3d6e7fc25e15d8e3f6fed63925613f9d6704401cf6057058985d07f6609741873d89e42da24de2aa8d030a6b66f3ecf08be7ceac853c30c9066318add1050c3738a2025c78a1824b162e8808023a04a204c54829056d28a560cb950760a9c283338650220d2e5b44b1258d36c2e8d0a424440f60b026f6aad63a4fbe69733b69d59c73cee91eb5f08eb5b42552a97356d5641437dd796c1df4cb8a7ef5e974f221f04f37653de854b9f5ecabd67d43afb9ed60dd34edf25a6b15ab5ac525ac5dd6c0d053038365e7e14d1f4da46c49e40229f8e8210148159a336cd4a2a7a4d72eab666c6651e3e1b5768a9b6b73ce6a883fde59a34edce2165d886b9de8f59eba669c18354f4597be5d48c4e49dbd79898cbe72a9f9d004c17e3ad185b28f326696635da5f960d84d0dd93c687af46d42a2975d55b9d6dd3704a5a6615bc403581e97605d4f39793cf9d47cf8fa601c761d1dd835b328eec6bb8b44348ef9016befa1cb472e0f955050c46da8d006a780c94c050db0a785bd2b98ba0ad29524d86be2440a14f65a28eac844032a1c992f6ff49246aabbaba7da65ac37d517687e12f6e495b2e79c55d555358d9cb021339e53b2caeb50f5a15e15a40b717f0df157b27ed548ad6a25c455d7886454d635e35497a72a977edd8fa85ea9aa92fca9249a0f0d10ac91a554f5b191107bec1a30c21e7b4683ed1266a669903f235edc2f259dba57a8872798c01ef4544604f6801e93c393eac3d143a51ee89325ff0dfd27c4bd75c863934172f218b73705ffd4cd3861a7b79f9cfa26e3d431996e89cc2da23a0eeb9b6354f3d9e406846fc65efd883ec6539b5b9eaa1ebfba4c97aa3727880785adec79f21473535b927bf29e56b77ef2e8e9a6eaadf1723cb01ff72d6d89546e2cead5b12d6a1386e26e4e4e1d73ecd4c1a85dee1c33ec14e6ad63d6fa10f8f6a6623ca8babdd563aceecbe237f49bc774b69344bf616d593532595a54a9334e58fe55de976559448aa490b22cb7aeaa1b02bfbae645027521eeadcaab9bc469bdb15cbc744a678aca21189db0f67ab0d385b47f903d783f15fe4b4dbea97993b0071de39bc17a63898529ead0618afa07c17c8afafce9558a5e2030df0f9d76121965121875c80353e2a18ad20e6a3c6651d69d71e2630fc4a70982ad9eb911deb17cba0654e01dcca767f3193aca721e023f5a1856847760e5429cc5d3a3c37821e571c383a3d1c27e39954fd7f151dd2110080925f0f5c8c3e31df626038b30c63c8c11f26830cbe27fd1b1d85db7af0529290f9b9b4c267e04b8413e1cff657f7d7630037af0e5f5d9010c3c40b4f9189ee9d0a25ec86045103e7ac31de951c66f2879eb9fea3f179e7efca8d19e48604c54f4d2899e90a9e9488040989af083a43333b70ed7f11c95bd23ef0b1018f428a36472087b48284d90a52851295a634a1a3aae104ec5976230ecc5a28f7ee3fb2241fdd0e426d8a3063731643265c8a12641ea079fbc576884af2f34c2439b253e5944c7185b76c74969df6f7ebc95cf30aa41cad30d78e785b22c8ea1d9a01dd9e84bb0c70f1036a3ae5876d85677c7d4af495d7692b2f5a20548faa58ff0f20ecdefb1c2550fb24a9a18d99d22d488d82d2da59c41b028de6196514e271faf7cc1d976d796fd1c39c6189923c718bd796c731397125376c776e9f27e290986b4dd316a32d8afbfe79c9a09f2bfea3b4211b2ec51dddff69b9e651cf7a1e07fd9c720d5ec1fb9d47d7c8e3176cc02cbd33631b0bdfbd9750f3521f4a5bbb31738e3698bfd3a738e9e7d64c99fd065c10e23221403b45185971cb690e2092c98d0c1650030c46084112ff8a08a1b6c6142052bc8a289328080a2829b2ce4162fbde6208c283148524119561861a10200528e58c3062276e0032a5774c4a067891c55f02ca103074238c3c91a41787185104b4c310122a260a20b368650054c1058c6d841082b98010cb490624a412484d2d113616819028a134de86822b2844b0a9ec8920415672c915086952062984197359698d831021d657096974a475dcc8065a98a29bce448c14d1453a0b88284144d4d51a810830d46004616134c8981091ce0172fafdce0204813194536886203097288c10d4a4491618a163db0c0e84a8e1540325c700312cc70c41859302985208c2572f0451638c801cb951d2f805e1c89f182a32290b0c28916a333ac888105065c5e40a3091d35207a2245ca0c275892c1098eb21019f105962f589083143970d1848e295772d060427182141f6431030e51a0600d266ec25cb94a5c267620a134658d3438eec6794c41e3a53727bd7ebd0395a67cf9d8040645b05695ef87d1097bd2e351b603fb6552c25854c45d95875ea554281611d3aaf2b1cb8678c79d1942786b143a027f10813d3a13d88b9ef3b91d414bd296a52b98babc749410ec178fa040894f7827057425fca6329af83734df044ffa6d312c92eee9b95f8d3834f928a594dd3005349d7dc87476a28fddd71f61f7b500bb21fefac51b790977c09070d1c3cbb1875e3911ac5ec4f2ead06bf5eab620bdde146ca1ba755390c8eaa0acba0a3b68936c8fe45162b9f4cb75244f0c12835c456429e8570ade5404a8572f322fc76a076576b9bf11c9930a72b90a92a772e914b0bc5e25d52de94a30979d4b9ccbb18e63effab8bf1cd585951a91caa1e428b714f4a1f829cd378f5fbb1474254560aec4f2ca9514b1dd22edd595546eb9ec52f0a6b45bc4f2eaa6a043891304bb45aab72be99bbabc47e25cee854da5b0ca29607975951451447a7525ed96534089f4aaf3d794ca81f0357348fa80854a421c3d757f7a5d9786d59daae32aec21b127a59fceb01f5b29a15a9c36c49f3a5b696a693e956614422c5655855dd5555db7f28a043e9a9239ed32adbac23b41d4a7151750ebb268c54eb28e9f300e652b495c56e08fe802f803abae6028cce9dd8ecd58994024852ec257c6ca6893322a90aa17587957500454ae4cfbc17920ec49ac7ed5bbbdbaad9a4fd5a147dcfbe937ecdd15e293c05e15ebb22e8b9d70612abc239da5b010f087e5415ce5bfab77579f26106121febc45d86323f62496c998716f1f510e18b6bd2f09b2566b595af2f2ea37755d20ef6ba3bace78b168d5247968529db17ea2b709e5d8cc680623cd227c1b4a7da3be39662305cab7d73876d34edb693bdd36cf36cfbcc6b39a1ae762f498294d0fab78a834c5e8b18b0de076dd87c377e8d091e2616353e329cda726e51fe735355caaa6c6bdbf71aee6266593bac9912375d3c5c791e3c6c6c6c6c6a5733600d08404208b3955d8d35bef9135ef640e71d8d8c4bfb16d4e6b34a048b79aeeb2b8553ea309e1afb95c8d53efe19d1acf32b7cef98ce6c3dd54e6190ee71ccb3acbb90e8765b92ec5b9b59c7b9f721c37c55d20ef53175a36353537b5427c1a67a1bfc657387d8d6799d7742e6b2e0bf1697c009a101a97710c27a34931ce71d6c678a5794c55792f7de55aa0d04eaff06235a076ea379c85f837ee77c371786fe19d2f6b26de09ca7cf36ad38062f56d73fa93f94633da546445b54e16e18f1c2aecc74754aa6af31c2ed63a43b1f120ce6be08f9457ce3ec01f375e397693b98d73a92efe4943a1c6b31acfb82ef39b9a14e72cc4e79c8d7887e6563101988f0c461160e609d084d0f89001b2087f542b654fda0f579333451f05713e14bfc671dc9c29ecc7475f393be11dee1ef18ecdfdb826bc53738338aff1ca4f35be693f5c0d4f16e10f2141343e14ab2e670a21310c93fd78c95795b314dee1279857ce5034ed27e6f285557a2b7b59f57aeb1780a7399e7e376293cce08fcd69cd7827a3e920aa9be9be2ad30dc5af61f8ca2d105ec23bd2abae4187afda87a6af7ceb7a09ec515ded7ef5190a7bd3b1cb4fd89b68f07438b5f08ee7348926fdf46e923c3048ed20335617c87b1f1fddc7db8f55ad17566a1301b002ac566b39ce21edb15029882acf29e03cbd81ee236975623feea7ce07451722f29537f59e374872cc439d060b5fde1be927548cbfa1f8414173abec6155d644ff49b72aa2ef20be1c7b7402b007651863e5ed2bc430d64d591e7473826053f5fe4827fa14d82b027b509fd9225629b0472fd0a3a3e379ee1c778b1c61376090c7c7db47f41709ecd9cffc338f6708361ecae0a19210503e9ff2a8442eb6743de914d1080000500093140000201008060322c16038244f6555ef0114000c8d8a44784e180ac428467114858c31c41842083004003140446668ca062890120357dca013be598f29abde42ac6532c9fe67e6b7eb52985808d937616f266f77141e4308ff15f64bb7dc72eaf2eab8c06ffc00738fccdf7601b99b6ead949e316998a838c6eda620a77c22c254c065a376a2e7f7b682db7c12dca1b4b6c2b6100e24be56a3a5255599861fedb7877dcd3400b0e8f83856d32ca635df50afd99c2b36d12c3e3d13a63e6cfbd41dc59bb119c07362013e52b78949ac726ef45b103e6cb036a520b4335c60f4b7eaaea2821dd5ac3cbcfa2d65bc892620f18a508afa425b83c23e12740864ca747af5830787eaf6d8cd1df41df8a4352bff8187bccc149c32ef7c1a0dc1120db1be102848dcefb585ad5f2fb1acc50fc342d6c97789fb1ed310a3b9c4028e6f105ca9cabfc6d5602435ddd33bd1ff6aec84958a820b6e68fbe431918a9d2289428379878527502d59fc42a9810a91dae5d5e0085e2dd4b13c60aba5f223ea1d6a38f41362d34af504c65dd88b909a8522b877eb3704d0b600a934c64535b40161284c7a104b26ba010f866492f0e0d708242089072e2c4cbf0f3c39e6b2c9a1eff69ae8ff70f85303c965a27d1427f4b918a28f0bde93267ecf521ce71715d0ae3408fc4b017ac18ca2f5a9217982247503b1149ab5e29d09e24659a574cb80eb93056e3c34e4329d9e4d14eb93b7a949bee7bc2f5ac16d25bec8c364581bef52f6fac57b77e4daf1c3cad65b5659b02efae30369169fba01a1ea1dd3f5f30ef2145862a53fc035eb00d5c7839e36d4363888272741707c31855579c5939f0e2f2bc31ec3493a5a7c2ecf06c0ab73fc8501c837dbdcccf81035e88855b478a14c0880df30bc08b6093e5c764d506c399647daf510c8537b2f435c67a348b6c71b0a0bff4b74b6e3eb12fe196521351c12a6d681f24f6dbb025057799857aeba376c1351de4819db811ed4c4a4eebf3b69282d379b5702cd6b6997b39a9ad25ae44567cff9dc5b61f448c3ffe81fdf7b9be6e3cbcaaa11e1b787d2e0c4b516a78e72d9b1ee60ad8a351ed43b0745205901d0f2249dd4c2f50787a4f977ce289633d84eed13e40248a47c1c0afd881d96348a6e60f9be92fe116b29f854369331878c706a031153a1b0816cf00ac81ab919ef3abc1ed1d2a838aaf82ef4bc5f401dfa78598734b814c5288269beac91405bf51b09d90787e52c9f28f65927da1b80a9f4bd2d85b3887a02853b209ca6f610d31ca69f35a9297cb0f4652093faf4c915764b51ebf4379dcd40f8953f0ccba3f52ca6a91f2ffc0524ce33730dd020d68bf7dcba2e803a604b1ab94a775068d46f2854ec1aa6dea620d38fb8e61fee7da0e0af504cba1c54991d6fe6a05bc5be823571752fab38a87cdde0a09e2e6e97c602cb788201a8ad469fe991be8ff73ba34aba314919cb092f7ff19be0e30e9a7a055f5a07d861683460cd986c7bfeed919ddbcbde5b79acc9bd7a1437cfee1c6d302dc247680b4c91db44efbcab52808124a96ec4076535a8a5891d1c066b5cd16f79eb5263abeb04c61fb7bc57cf49b63f7c7f8633f596491a2e359e42699b4bb616f6a7b0a54f11689120fd8c26e3f6c29ed37caa0fde459d9ef5845e931a5dd4f4cbfdb2e4c7b68294e430af37ea17bee1d92e080ca5e6a072d85280f1bd75f5af6fc070a2831b8915e845ff3217a4ede5c714d6ba5ddb386dad5fb27e37ee1504ad61c50426fde7bb3b24acaefe5a2f366e1b0678f48311fd68bec8fd1292fd02860ed8d87d061c5d60bcfec81a2c371204ff624debd50b5a69a69bd31165f11f06532f5b752300180f58878b018cfa517405fef773eaa038da9214650bc35a2f54aed368f3f2178c1c877f803a58f78eaadc8020e8176b7831634effb95b7643bd170d3a60da3ddecb518c98c2b05e51f5816e026036c2d00106fd5a35373d6c007b0d131318f51755dc688120ec4638748071fd5ab507bb9960f3176bf162608e3e69307288cef5fb71b0d4796d58b181513f4a9cd0e4d38f86e2c02e8797020cd03b0d86fb873c6f47fee1899073732c0c7118b981f5d1726b35c60856bd8f4f81085a343ad2c086280163c3b09ab5150959e20defa3df42c0a8ae16bc86807b63c1393f9d4e267595faa1d131aa72874555940b0b83a3ae637d25f80e2367dd034daa59afa280b0809c131054e94e3f37d6334f81fc8a430edadfe99c07b6d8a1e507ef5327ce8d197ed7f400a4483507872fee5b980c49f4d519b76f7fdd2b09c2f48a40d8279c9c2adbd8f29b39aee93a5f2900c4922dcda24d385997ee1eb85210ff5879f3b63bffecd26490ac07e0ac2d76b6269978aba30325072e9ceead9b1914f4e22032e6b081df827be5af8e9a6d70651dbd62a7cd86a8c091cdf2364d9d0fafba48c2b2499741a9532871ae849273c53b8489b567c4ea7307ca9549098d9d4fd7fb8a5dd893e3f263d724dab0a643ba231434713d336fcd1296ee18f30fe259bfb8c55a053e2120b78aad5a8a0c4a773df2aa263456050f15d914dd72b07b407b81ba324243238225d862840290b168374421efeab66f4098d3b20a042fd8dc42ec98825357cc666f3a2aa3ebe602dd2508cafda62ba1fe3432033e20029ae526826abfc6f22bd9a9bde5d83e2a8d528f97dc416d0eb7b997ab6f2d98939f1825c7185d8c3b7ed1f365c6c59d0e534058516c87c1758582f6f022b1dd87c821d30779728d54225c0fe1d515f5ea9143cd33c586f1bde94a8b7974f24a9c8ee2579cef9a2c0b5722df24ab92251098eedcb60ec84406a75e178dccbd8d0a261693cc877d1d1f325086249c377e01be464e640a3c7e4d1abb4fbda46414a26115042dc212ea053bdd1e0a1eb8e2e0b3a931bd588c1eea5998bce440876f172a44829d57c23f0738b10d5e1ba1f84cdf2731fcd984b35ca5a4deac5002c0e77612203df05c8dda016ce5b33f1408afb2dfe8ef8eae3c0fde34f825ef12541e81a1d14415896bce0715f9efdf683ba00272380d283446dc21748e11170d07a57d646a8d212f77e0c68400fb6a49e182fe6e846b9c51702fa78737fe8e30b6a6d0832ceeed362162fa69ea0a3b05626f6d23b3b114639cf63641829a49a067f2facb52afec57c5cf2c65283e54509ca707c5500a56411c45908cdba3bcee14fd4a274ab0164a6c06fbb5ad59a22d386af40a4dedcb8c309e4330932e236298080a57063bf083887b14a866d1d53e3bdef5741df23c5ae8012e68f0139c4c106afa4275fb92027983055cc18cb29a2fab8ba9f0ecf368789729f41b4c9e1254b7a198326ad3ff395c6a108332e53089b2b5726bbfbbea17fa47da42e1d0a97ca9a1d90df7d957e624937f3750c32f58c376c3f198e1457808ac9acf0948bb6179f7d2bbb742cb56d4ddcacc107a5888fdb06657158c185bbefd97af6597026e2a1c50e08c7dbf873106e41947e00b7de5dd163b875be8544fbf98a1587fc5fa200811dda7b0916bb5d3d700498af38c6a28d4c723c180308268a2866ae86f0ae700d9aa2ad7ad0f9415987b5bd1c1c2a2b3ae2e54ed06b68f781bfbb6f5289ac0cb5222357a7f16f06e7180f6c6a9048bfddb5014614851f7cb20b0125e7ee0961e014434ea21555931f2b35547aa8541f782ff7ea1236eb9a16cd8b3ce92c958d51d3c78f2092c4c0ce51a87abc6e74e54934d92b095098f2201a20f6800636c762c145c98b36035464e146b75d75ca2b91a5b4e6156bdd7f824c51bf43a2c2b0ed01bb320ce5e5aeb88e2ab8109afd17e13d4f74cec9bb3086699cedf543f52d8ab7ecc009808263975d0666f080dca767bdda18b4722e1e51748ef708354fade5aaa0fa501be3ab17f43f6623174e5fb46a14947f8296345329dec2e4648f25e8d9519279ec7e487a4688a543a71de9638783557ca3e52199ca8d8914949bde0643de8cebd0415a7a1b96f7fdbd4638a86ccf1784ae32f15803812790b7bd336f3027992be8d9075223b82b8d5a4968d30f9321f3a8829be97b9ab6e9b4afe7417afc042fa999a62f6676bcc7ec2511bfa30ad88740278b736b6d2a65a91f2c8e45c420450d2159fc77df25a6776333e7ee8c15a681e02d451b5904427a9322b11dcc290071b0a86e0155903b637ddb63fc8c7afcf79c090710b23e46fe3ad76e9d4a6ff2afdf3f0819eefed58a6b8954b12d084d80a57e6f54f9e2841010e62e2bde55fe0677ecf699d0eb6e57e2780b0eb63c211318a960664abc450d5ae0b9a18ea4828a1dd4c7cd0b6737092ce51430d916fef2f4af9fcd1875e03176ad94f7ed83a8c332d1c5f183b77b47ee1f83255b03e91047bc560c929f6462e1df61b02a0c21de86d016c3305753d2a20dbef90c485231a7fa688eb328568c71615d07dc2113e2436bba8155397dae7a2bbc31ebc247372455c4f26594528f9bbe95ef5c4b5cd3becd15ddfbe80bbf18faae69d936a7df30c98e274ab5b5d95d7bc4c92101885808643f5c4e365a26d0ee03f18a3bc1f0ee87c3385d14c5bccd8bf2baf069414095676ae41e5c11d8558ec1e04e332cdf8d1979b542a216201b945f1d9de6efb7b619bfada86b8cf1bfe11e0f35b044b63505c1a759263c66ffd2e348a72ef244c904ff7fb86fdf10e7804aa026018388397dd87b828883f72327ac5abab0215c789bb9f71b50dec37839e0e6c516d2220ce309ae74d5042b7263f6dbb1877076874edbeb77fff11d4b51f58f03d746ea9e992e74da4d991db12f43228d196d0f2d36926b7f2a83b3e9683cb9bcbdd0945cdc080e30e3ca111d4ac76ded663bf78f756cff73f4a78e8133fac8d891f162eff0304d804fb3dd93ddaa1e4cbe8f314f893da622cc8618a80b0b93ea5d84dd00b7d1ec144d68ff77d38f4dd6375e3a94bcb09ade7a3bb3abe8d2834221de9ba070adf1d2f8d4c20e8f5dd441f9e97dcc67ff8e3aed33b13c603332c6fd30142f6566ad31b4359cf135369e1f39fd5d912ab24993b4f32a45586160b3f9f3d249702fe3f517e1e6a2948658fbaceb0a764132c641dba467435b055fda8f228b535cd6f8d295222c64e91a1a3c58e04419621be9cc0fb43c55e97336b71c7c96349a0da8ab4ff53bbbfdf1c51590d314080cbb5c412376b1aea608024e21bdc0c41781c050d2585ad5623629f34786dd9f9df019496e5e305170e31a50fad3fa81ef4d2451c5e4ab7ebb06418916429236946653449fc4193006f11884ab3268945e34b9f08e3d3832599a18ce17e4ce2e0aa76d10daa30c316e144c32c70590e645c7524c9f645eeea6424259362715f4349c2097b8196f11f1e8dd73bc10aaffb35d6343ae81aa8ac93060271e4c8b73447d550fbd42828730923dc35274ab1196290bccc0ffd733cc69ff512aa926a0ab30c62cf579bf6347fc484829bf143045a9e0adccd42987b5019ea3d714848c3a1a8358ccab505568501e6ce083ebad97d595bd395ea936237ea8f2c300f2403d94d53936447b1f383d7633e74b13b89576060c1e021b51906cae34124d7d5a25ce00055c0e4c447d42527097f28f2b34e93e21cc72998a3a667ab9b3b8c94665d2082c568c1ebf7d144cc04826af10c4c987dfae0ad19efc719cc71f5b2f58192ae2cd5b25306b9420a53f9f647b6d43006506379ec845a45616258d3380d3e85d4a211e85404710f06e325c50c28c52653f9cf92f97c520c04b54628f530516ab993228084d31ed5f57ff46aa26468cc6a14c86e4e671dc0955680a884443114aa62bf0c82ecae01b83c07cd01285969d2dd76a23022d709ef6b76c700298208bf3b0b9e075138e1ddd018e4b3457bddbab29e8082798ff71e693f062d50aecc4b662fc26c8d241ce135884bb4f2bf37313261bd8f9e052cb954d269683b438b28e23e2c97b5957a8d53451058bde9a9bc05bd92a35c2ff511d7c505ac4779018942b89e5ca16ab7127da6e858c8c808e9fac12c7900f1a10d8a4499f8d222cfe8ff1b4b7eb0af3f286a0113fa480c2a90b4d7edf44fb787643021f994ecb1960dad03580c6943d818a0d2ea675c6067501800e79b78050669854c8f98ad645a58ce05e0d54a2d0f6de4ff78e068fd1d6b85eb240606629dfa88fc170cefe1ed48c9a87c384b58c34a1f1351a342ff969568542310d89436d0d0204373d514c68eb3cbc261a779d4c1c8675c4d1b5d9fcc50bce9455cac79d7126f8bc04f5d36b81db212f8508fdb8df1d36f74e6e0402af946f0f8622d030f71ca2601f601540b79a15d2149f31951c838b9000f25ad286696dddd0945ed669ddf969b17f3ec2c080e6cc5a6cd157459207c0a955f29bb7f4c77c2e30ed5565888ba39d5e7f89d70b46f3744aea1e0af2f88266ce721709b75c03cb73dc017f0ccbd0dd11c9d07d31472ef50eaf0971d0cb0f6544d863d83eb47508e1504e38a4938f675f90b3a57f1043a682ca6f515e9315ed6dbf1699ac4920d40835ce1401c0946c18b81ce338c75883a8537a76cb2f788312affa130020ca8404dc603012bf5fe0257d480d86ee02366c5d0a6e940a0e9c6199e02cfb8be29137613a9a11b995b68987a554d0a3ffb2a6f31c95a59d0e7b27d54602c05e019b6d12f1902aa586c46a0cbe09214c01640bca98c14d73ae471529cdff6e5589bc6eb82e82250330b6b4c7867aea01af2ad97f2a2780cc824c96371dc194e8067ddc908303c0c60f6c3b6abb97867a861a2a3b72fffd07bac409e6e4dd7534f8e3ea0508437c831918886e3ff66c5d6bbb47c368aa5db2d18d5cb24e2f33182dfc42ded9797203f4bfb853f6c1bff013258ca7749f688fec6aa84dfc5061279ffdc1ad6f9d2f53bc641625bb1e423abcf3d1df5027ee7eb2b7d97c7004814b81607855d25aff29e746113f239e78e78e32d5fbac24d7561548677a1d0e45adfc0fe42ad2ca60670f74eae9b15e4f4f6816716dbbb409284da988a3f5ad9774845cb6007e285fe9f81a037a1965e3ad0b4ff79127b0d33084193407ea04686f60146d428d26e6138d7938e0a84fcc5433d7aa9f516ec9a963c597aa94715c55eb1479185dd80c69e4201c7840144d6dc80ed7af152000d2176feee9fc62498a328baa92e76c184bb2fb3dad0755b1319fe2d4b850eeec04ff69cd82d692388e2a8bf542dfb1d72cec8a86ad5c15bf6b2094284f3bb6b84683b81b7b0df51352c422a5efb998c242bfb72a8ffc055c7c3723133b1b475e9ccd3f967d029d8b0e99e123a62af3a9225c985c401aeacdfece20faeead70fff097ef287f7b5d9a4b4574445ec095eef8e8caf3ea8567d488f88ff83abc768554cced219b6e7163310e93ddd37c43f27b1611e0fc306fe3191c94c0daee9d599064213651be377546cf0456dbc572a748a2598ea293c47189c4d85c9edd3d6ce524127afce40fe28977e592ca22a74d8f101aec370f71f1d54d040b11d12289794a3413d84aeebdd4147806e4b1c34bc9170eb7ee0ca5ac689425c5fb32b41918d0e8bfd73bea0ed44646a67f7c0f21dd6be92336aeff1da90b0c29c70dc25fdb2cf2c3a7bda6e4fb42f25db2f0e456ef0122fac95e456c52dcf75e487f0d83ec167818269adef114324f098f22d7022d996200aa1f68857521f1f0040e4aec34c402d3407fabc06bcd39637c1b09e16116e1662d54b58d5ca35deab6e4d3ddee7ae0d3bdee208eb2611e928397c4b439bb6e4dcdbea3d6d31b477b84a5b00becb825ae4bd86f2f9df6115252e51db3627addb8fe71ae21b72fb050ec77e5cce151b6d84da16400ebb08409546f5b8167a4d132b5d8f1894e213031e3e8e966451d314ebf50732cebfdd56133fbdca66df85fbad7175c6af74a03927f0028f8dfb878b7ae8750d56e8d89f6a0b1646aa5354541829eac508501e9e35e863b0b8b3d6e1b11099c1d6dc0c369894b7d1ae44062ffc1c15766ea97bc284962151bb4c1fb8c3b2fdb2e4cd6733e07febb980fc612582bf8059415fbb9ed9e833c3fd5c23c80544029fe8a2c1995c85b8f9ce41b64e3df9f43ba2c4ebc9d822db8dee6e8b2e8afe76593396b0e073b6a82b55662aed4050603b75f4c9f83081b4d47cbb1da1d282fe98c13be491c8e1bb23d09f7282f5ecc0add71b513f129c55e58db04b23d8caf32b5bc92cbe7c1888b4db1a812cc640409b03e2d72ca33cd9d44392f5f7df2ff5e4c1953201eeae966fc81690494c072f128a4d3cc66b33ea09a64367f67363578b93ff3ebf2c911e5ec5eb53aafb5d6ed008852860e3d243bea646d53c8352cd41a2952be4a79bc4bc676a506130b7a45df1bc34ca6e3d525385b555815a86d09c928c4e35e54417da486ce9e0cc902199f7e9e57a761fe10001880faea8a715494e419b8c807d3b95e8941be2f5406ca2355e5078886af896aacc2267fd8b043a29e65970828a220544a503f0823efb4e6894a910e4332803c0188934fc4afc7b454d3f4129df67141601d928134f8e4885f697a43b0fdcf593edbb6f61ce1fa80c151a52bd75af9325bddc07f68ac88f80f8bf8d1897c408d74bc3e9e7d816d6c5ce4719cf82fbf02c88a37462a5c825e4ff8374bacc2cd12937766e7eefc17e37e5d90ee03f074c6c08789f2f30b903394c5f11acf0cdf361cffad50ec3747fc388791c44b596a821f16af21860db3d5d1e84828a968c2faade98030341a19687ebf669802947d2b68359df0a3b96b3f5e02dc708816242b64a6c530183281b3026e5a0ffac357ec21070a0a32e88295d88fceda08e60a7948b6df6bb25d676179510e3c2dd835b3fdc68d62545c1b33115c9575b07716e5c7c70787f5d5ce1b20c40b8c1dc430a06e7aa680a7bfd29088d6c482451e6241c46958d1c0532ede5c8b1d9b7cd23596e8631082dde15ec48742f5f8cc201232275513007131eb3987716ac8c2bce0ea47166cd052d0ca9533ca7bc9cbcb8510c490b80b9c8b63d0296e1725aca684a3d4b447c324ee47bb268691366d27fa57b807b83e19caa02fd7b9e357be04d62c9a2140f6000fec23822aa02a42d7fdc9c4e21fd3840d81bc2ad33d8ba5b6e38520f3db319b4ba5260fddc4a7e35393f39ad98b034e4b1f6b30f92e0184bb76c5284b6a1dca1aab0e7b2f798699103c59244b3bf697e6ba94da1f39a12c7c09a0707d769a5a182c32212cb3af5d0f0ef01f9be2c1840e7334326c69e6492d71b5ff478eb4271fe14f7787396af95573ac7912168e3afb0f19f3b062110552fcc1a7918e077d4261f4e8baa179ca8c322758aaa9382f5f548c9d4b15b5445c05c93ca89fdc1b4f1da5a74694033d00c177c551143c6f901e43499f75fdc675564153740178a3cf87ede9012c86c7ad1a99cad976a85977d056e881a54df868c93f06df8e7127b21058ec44c9243a9f10a3925b0f16e6c3162e3532d64d6cffedf32ce49652183572b13304a52ae0fe0231a9181b1f540135ba5971bb5418314c79677fb9609eb7ed157ac9bb03412e71b336666334b000bdfb91bf68f029ba7d987c94ffc8313a6492d15d875555b1e94678a445e54353ed8f3f49d9aa5d99ec56140473761288446b6e70e4f22b06394dfba417f45b35418ff0f2d78b48932d01eefedacbdc174bebd4f65e21e29d08ce7694cb547f592e16dd9d8c6de5de22742f5af45ac2fa6428812509fd88a68295c0ed063680b39da07d3c97d23d54d9b632d8561e77bf6e77bb190c6874482d751c012dcbf758a4b280905e5c6a2f8829fd21ff9ab9fcfe2b5eed98bda1e21382e88051036a0de1d4f83a3adab22e355197904f4b28510cb0191eafb6c877ab50540b970bdc5fa30d67ae8b0cb6e21efc51ff11583a3171333f1c6594720d7f290b454771be81c2f046f65e9935837e6a9dc783154872876c9d9aa6d60045c69831045760d3f4802c6d79010183389fd8aeccefe94f4c621a8a710067f616cd2ffc496f3880898cfc47afdbfbb38a556693c05f630c3a0c6dc9b015a2fdc89611855ba2400137d657d2c912ea3255f33bae6bf7e181620b0d704c3978185f6e27518579d228271eef69585539bcc7858457ae9f291c1224e30ce493e79c7fcd70c66e5fd7e5f28c1aa5620f170a4b05a80aa9928dec5c9ee9232305e98772194f992366711ba1aaaffdea912a1104158228753d78d93cffebd123f8b34c031b08e24547c28271bdef32411e5c0da4b26f8037df573e6b7959f394ef3ec1aa95b84f47bdb80e106341ed23668dd6602878dfd65dba35034f0112a1d3943d7ec1e4712d511b8f86cb3e1221b52d4aa7a4148eeb1e3c69ad0f026ad38eba0df9b24ecf75e89e077efe32315e4407219e7aee73a6e70496631ed78e90a6030eaba326f12566786010334150d4c8476659626ece4f781cd22ccd55731404fe25b6350c2f74bffbb64f2f9ae2d530075515886e894140002506d01a49d4dffd355788f192414c18c3a69b51eacc24bb861692020d10f1cad46ab58c71be3dec65ad2442c1e44f756d9bc2a59479a50c683e84a849710fe6a55b79ec5fa97c4497b2a2d94a3bdb4523a19fac802f779af8d6adef1a06e4c7bc721dadbc2b5bc838a433159d22eca9648f8ab677d281372856bffe2bca400585ed9c3a359b7604d274b6ff8bbf39dfc1ba02951ab271cdaf4f1be5ae25918d3348dd8d8e33b353001b80a7ec9eebf5343a6c5bbb3afb24303b315fe437f1eb95ceba0e66812781cb1e00bf64b6b6b55124e17a6080712337fd7dfc3ea7668892e82e4e9a0eebc8f903e3f2f0c98168049a46649d8891a606c1d39ca24740d46be9aca4c48abf5e812815409c247d4b3f95a0b1a326c326d1bb43aa74358a218ecb90e6d192c26fc2957ddf2c607b2852db5f2aef1599336ea0bc6f111d76c7327fa238c5417e9c5d0f224acdea448dcf161a80a7eb05bdad6222cf86b65d5010cbdd49a994b7cfbaf587e2016567a6d458984f14563e2f199ab5048ce8d1470372810a88998e8ba07eb47ec870714f72b7e51b0a2624f28d0daabb55317180210b606274182c18ef0f826e24a8ed0c018a0678807ad8faaa4b5047ac5033d637cd0bacb1717ea2c3b8fd4335c8bfa1599a09141f92f65c499064bbff481099889055644cc37d4cba7ad80d258d3544d493fa9fab602f2ff4496562df8584d75e7179e4dcbf4fdec7ebafd3e8806eee21048c4cb9514110076ed0274d9d585e2ce19881100fb0bffba2b01a487f861a4388bc37f1acfb6de3a8d037a132638060c0fb6525d156adb9dc492eb2e34c5891cc40273f043df2f98f945747dee7fa7aa3709723bcd776b00e521229b667c16186e0023376fbcee0ab3c3c750cb168879881b82335d5db34de0ea693bbbe1b402b00340661dd2ab7e631eb6434a960e37b8f17640fa852114f1f0ddf0344ee9a4fd566a2330377b132550867a82814a58c84684ae904f1592e523738ad3ec460d65aa4e3018a4454717edc3af25c4c4db1b8ea05085b10e6064d498119b8f98717bbf8cc42211e82ad855f764a1828048c673d1ecc3d1dda7274f50e3fd092f8a615e066945d33e5b1f2afed52f14c553c69c73619fc9088053e89d1295d245d3afe3a7856c16f9de704f652b64639b72ac74bc75811b46939f58fad8c035c913a3f684fa084b189ad08fb3e1e768a888b709e758350bc84eadc4cb612e0febb55ed34e667d8f3421277bca738ac07fe5fdb7e64d86fb58f0092240ef19901f1edc04fda4e8728a6f46230f41413d0a1b1c67d20e3490f4c75ceea89fa85afa65d03c3db63ca199f703f32965a67e29084999a078deafaa08d6a0e9d5c8ae07d4d1cebcc45544a802c2abc24aa00d08fd237be908997a2b4760595f4f5c793454236e753f8c24b61c8c96d5a4702955e59000894f9055597be1c428972245c2b5009bc1dd4285a29c6131f6ad0a7d4a98c3c8992c5c8c61a02edbfb496b9f309884c25b9d59d1f8d0c91e6c27bc6f88e85cec70cb0d33993b6e07f2af0e5cf5dd634413dc56a003b97d5ec1f34b7c55e8d8631806f502fe2da10455e7f97ec6b1e7b28e076bd932ed956ca9a5e4284ff5e870996276f6d132db79025be1b0bffb8ae116cf4238619d05478b1a0c499905425c298043c6f603eabb8364dab5d5d0cda2614f104192b581af304c0193a916615e712bb6a4e8b8b37e547c0197e500ad93a881faa19c1568bc503e7a8656124010887b01d80122f8c7d2c56deaa7b37cb69ee7746efd9ad289ae3e97cdc83a6cf4a07357ea3af59a354655e963b994759f04803e8df972d8a1a4f9818f002ef8faa3f0c4050139a5b82741e43239a5115d7eca233468b31ba3dfa7c9057dcaddbe2a57258d3e43461cd20c1e5b018a4bb7fa4e160d84534c9d8bff2b90af42940555f39d1b0cacb2d904872f5f4576cc6546ec2996efa799b6013089cc0060addbdf8efc5d101e00e142a6ac5ea5b047ac4f209f616a3e8eb62a9e23831caf70b94c97deaf56535890c9f21d8d4e18217edf1f8a0401fb3f8bc573f4bac473bc65a95cf191cc40c488fb33556a61634f6fd1cc7bcd6af117d6d6d4bbc10f724690d3fb543120f2b8015545c26bcf2c055384153def66146aeb0fcf452c10cfdaf4aeb1a547620b0953119cf36013f64d37ac549644f46ed10eea697a43099a8515dee678815369e4f055364231fd9b33bb4a0840cfe01bef01ae0687dc1f4a93f87264e53f7c83c85c7545150dfda1d45bcfa65201942d49968e6c095c7ecbc1207220d59fc8b7eca696ed757b438f787b7de4a854b425dcd336a0f0fa0b2a643452035ac2a9b7c177e2bc58f50742e484400ce4955abbb24e9dd5c7b1b9d2eec48c9a54ea1cf5237c87a513107ee697d7122e45b7b44ff53f98881ca00bac4b5d82d62630010ba0c29f580504d42be66de82ff2ed8a2bb3a3148c50fa6377afee635240a9c8431e49117fef36586d0899b9e23d3f1e6080aaa31b13bb863fe4280d1c779f2d591ebed640ea04a8b23d30624e3e306ea36baa2860acfc0151ab31a73a35db1c84b29fc2f627fe5ee0a016bd3df75796a64d60931ec2cdf9b1e6f65e9b1661b2248ed1a400a3e82551d1fb972b428ab838968745ecfc2a8f49b2e0a4ac3a85ba1c1043e2583806a2a044f2c7bb4e05c769659c80d5fd9814d49a05ae2a426b62413855d9fca36990deafe2add9eadc69faf31389fb4d744e17b35a55269b9ed332c1648e036c79b1790c96acbb4ff90e10da47c031322a2e56c0bcf8e33ebb7241fdc1be38a8e8cd4a4c0f6c003b0b7d86a7accb5b65146d128b0d1da07e78790091bcdb743d8841b10d766531ba683b0f404cd06a249dfd4b06437a243d9c809ee6aa9374faa6aa649a595da3ef585445b70d0025bff6bf726a71e34c018bc0c240620b949c651d5b37f21afff01f706a8c134c0b12b9ac2ff46262874df0b911048d5661b4b89f48f0a96e68b55a14be68e98bf10145536d1dd2ae54b9d4517e17c423d9a5275c15b678787e7ed109316d076ae40edea56e2663347a95ab1382588d5fd188b3138b201274a538bf6594e3e3e77daa71171998b0207b23060cf6b4b43eea716fd0479ca4d88d0be4cf11f256b59b66dae2db667f0c828677fef85d9e23b061042a7f4679fb858d114f1277ba9dfc3d9e7e6808e2e85cfd4166643bf9c149aed6827a3753c19d94166f24d540d15b84e153c898ec1cd14ba88ad1f894a0bb8f245ea3a828b79a6d5a4233480a5b15cb875ee6e003fcafc0c4736b045122f2214821401bab18011b2b6e92c51c339f7fdbf42b9280e61c3a008b7487e20fc99df9b2a30315e06e7c1fcb312597209f7e1a55b1eb92d860840fd4d7b141135a24d854caa8ba890e0fcea4f381af4d2cd942e7f2205f53b5ac290af7c7374a1632e62c3b0110094ba77b81539a8357205a1e1ed06c65108854516fcbe3aa015744c174aa41453870208c28d2b12b28db343095f1f708dd82f8460b86bf74afb957c6cd5c8214df3475d7e4b8b982a2fb732cfbe4c8948ef88dc8751286d047dcc12d38bc2be4be157743540b977c39f923dcdcf48134f9a0a3920f288d161835a6b3919a596f1dd3af31a961373816f88d01593139f8006fe1bf97e009c08dae5e03a21cae049013189a027c05f9b622877750fe0f0ba4dcc50e06c4e3401c6a24fc581d0aa8fa2ac8334b17b096e74afb053a6bfe2c9606df5d7438edf88d09097db19cf3812379908b68645f4048d5f969dec948d53ec74ccb2246c63372830d97a8acc047fa86ca6487c3f1020ef5ecd74ac52c2e5279159142a72b3ca8519816277d4dcc8938197fda73850e5a3c3ed84b51523ad4126412949fd997ddaf19c00b4f4854884cd3d9e79250376036c35230cffafd702534785e43351c5406f1a654718c0da1233f91b50b22c158c3708d424607c3fe837c7d3ef18205929c9899b6e2314bd2b9dafa5d57d204b8cfa59b362ca6525aea4357f1ad223015af7835b2cf09991be4cf0e39cf55d651632e9868a3696dec583bdef7c3d7859cf4851bde705c7bbfbd6682b6053c9f5e3004b8d4d9899bf63db6554682558a980b58a4f11ddd3cb613fd2591cc665ac10939b61c0bc24f5adbba4bdb1161645d1ebc681a31c88017fd77226fc847685381c6ba98cdac6e428f95839188d1a986fc4b83ea96a22f771343ea02da6ffd747f655c3bd626865f3e8c32c601a591b662f322ff7edbcee895912484baa54b5ff624719ea0703800e2eaffe244a63b0b28cbfa516aefc32013f57ff81adb9c6efa4a3088547be2667b483087302c95b8c844a1db8138dd8240f8d23888b615d149a4052417c541f858bbbb79a2256e0e40df1f42b6d3b8d3f0b65d8f95389d32ac658d4000cc7a4b1ad3ae3b4004ccca9e7d5f70c9408cd1d412754e43e3bb0953b01d03664cf51430f27f4466b46a948627f58b072b3849c48cc881089bf4dab0e6031d8af668bb0df03b6d874eb456dee073645a043698695a3e53aa53257bfe0adc29aa56ab26f91957edd1bf25188bf2a71e75715fa85def7e8d4024e03661f3042f6e772f927df43be3548607025355aa41c45e751c4ca3113235e6cae2493c932c2143969f42f17497f8a3548fb7a2af6b3a71a9e79dbb136a2a175ca708702faa152dbde841182d827af74cd44516df032ec00b6e22d982166d9d5cc5e2039cef5ae9a3e2d244a57e7b58b75c5829cd5a91d5300ad3c49b022b139e9ba87291f0d1f8dc8905c16d4440c9b75fc433f7b2991eb2606438d2f3f6cbe5acfbf778a8df62991fabedb0207e39b998876c4a23a1b09841d67b518d7442a9f4c414ab1640306e0ffc1344805cd36dbbd4a274886944002bf633281856f135cf4366d7d7a571a548fbdc59825d9863494064aebdd439eda5c2b3702396a6b8b074c7c88807200f82c2a5fb093c975edf584910d5a307d5fb934503dcdf9e4dc0e4f824ac204bc4ec2fcefb3310bf4d7fdf36db6b1d27dbd27f9bcf5f908ca27e00ea6c602a738356e605dd4c4e131385acbc52e76d56261388bfc48a13659fc954ecf250b931e4c425727e37d43972824f1e0593f9d00c23403c2f538e595d0b3ef729c98327500a1b2a3f3508ecb91943b7c51cf5241a6d91b22c6cb030a5d5809ee4585fc16ad6cc6bd8dc88b91869fec034883a20520e53b78a9452fae1daaf66df3c05f9bd93f770ac8db204cab3f0f1034fd40be4b931a156cf53104e2338e95f78372dec1eb54f30a5659a3941e4b7094301ce64d5d7dca5b5142036168b8c3005cccdfd856cc66924a3c4e64541d399c6470010da1c64e510fdeb569457c9251cb9c8c126188ccf18d355008e40b4702cd05d6d5db171f5bb3f7ae4919981f62ba6b244444b7f5bcd80834e7d403ad1ec425692f9665e2e0e4fb8e7171d1878c0c22152c12e77f881ef764e1ea1c61c8a67720ab3d1cf0341880806425335c937d261b2daf4d164c5fcb289a69c7b4a77613e6247507a1d57add0643b2a82d61a371ce7d6cb49f8dd30ca00494c646b3015ec1f5ca872e535f37e2c84e946123b0cc3e32be1b608ff908cf4945f5db5bc8b95f694cd8c6e41950b41241cf8a092a34f519b9ddd66325da494b647c38f82f8e923228555ebe91cfdb82c827599ce668366f24418c5551aa85034ba9d4cba4b1f101686aa2d2be6a5c34e335b96171b3dfc2543f91022823a0b96afc5aeed14bdda4299be6ad28c7ef2640dc4049ae0cb47664e45ca1b4e121da8a64b94aa5eaa79069b9075b3a16aea6de9aefb652e3553d405a18730e4641444f5cb6fcf48bc80e1b4404720ead6e6a8c837083b0c724e11c845377b2c295188656ad94ee9f17de9b4b10c3950a57abca2cc26aa5898566ac1bf2702465d35293e313ebd4d8e87a642d971a7320f15e2cf727d7707c3f7f4a7b66866ef251c2224fc6c6e3eba9ec26e75c748594694cb3897211ff8c5e2b9640f5239f06cbb18e5d861eb590fb4df4a30034d3120f36047d3cbdebb7bd5f085a3017a82a697f379d29f595302e3d0fee60533e9d0ea19c3caa87e23674e74a7a6d4cd188816703b93ad8fc88dda2caa689049f24f6341b3bdc567004cc3b879b60573c931812e609007964051f1c36561539e6fdc9a67a504e2393c9aec181cd08dab27be066aa64baac1dceb0530947f01568daa29a7791e70c073789a82444e18d261990da0ef54ca80f468e4d2f126ff008b31f2524bdf62a16e370e214a0ff997fc6ea3d1b7e41ce61f227d6b7a0718dcdd526222c697580c80d8e881257cd8fa73982591317d6e20ab58b11c885741f349aecb9499d26712c1a87274fd90ad6cfefacda7003aeafe5edc27a17043b596358d37d250ee12e9d1ea0067d904f9e09c2a55184eb28fc457aeaeb9e619bc4bbaa1eb0ff0e8c62f5b03025d5b9a04690320ff9f7a461a9b917133c85d0510b95fb36e70b4f2389f2848cc37c1c8c52290d7f66d3b1708741a604dc3dcc9e23fd6394f2988fca189593668a605777d8d5975990c5599298ba8312c5c8b40bbcc9ffb1645ddc941fc19221cd1bf5cf18982ff054deea7899847069b11ec55ee5e1b337a9f9294e6382958021b93d80568f8c716b158525a37dc20cb990bc2a417a9f0774100755f4aac8dff90404fb134e3e25d275ac1797bccfa39a65a221650aa90bea3c43ae85ed5cfd222aac150ddabcc6a68b0c14e46ae49be749dcc54433686c47069ddf2b62466ef0018aaf15ce099858f04a9c406f9b7192dce231316e7ca8649b02082be46e919b06d81ebf413be40f8c839f19892d0bcbd274f05377b8dc57a53b2095f8843e3f0d4d86aec7e19d24ebf8a4e21b59b99f3bacb7a2aa8a0afe0f28ae757a78bbb403a4241c3ccb3f99ec3fae91b191f0e69667626e3935e55b3de883021dbd98200775990679035b313f2eb77d02f44eb09faeca93a7c09f760deeb2f862c331feb85820a578fda8add165e8723efa79e7788990c808618b7e402a9f9c229eb5f618d710fb2b96af757912442650671e087eddc21c78f2a5ba385880427574b467f85af32a3e207fc0052c327bfb36eac0c8e218d5af90da7bcd06c6d2dd37313947a60ec4b14c16ded425fe8f0e60d522b8d069bccc71101638be474d2e4072332e440a12ef1b56ccdde15f2f4c781e18ada514d73fc5eb5b9846e8acbfcdf01051df4c500d554c835098656758eab66ed01a225a09b863f48a4de4b6e88b7b0d667c2b204d55cb443419bc7335db9db089b87fa1009bbd60336f8a4d423f3aefe7a39814f553f1b2d25716789bf41668e942b354bb29615ea6c95cfab5c97505fd9cc2f003d874bcc231e65026067d605c45806b81902142ba228b8d44e1908068dc4cf58c2bb721ef11c1497601abe72e5f0baa0572de9699538a451d598691607d116ff635511dd1e26415856b50e705e9a8abe951f27b31af0b78ec934738f1ae4227a7ee5944ef30928eecd32bd4b4a7ec593f783e678fbdc83f847172e185063ee3aa4dbb9ec6ff8fd31aafa1e4d522fb78722f6eb58edcb2bc7f53ddd2a9209feaaa00ed36b71cf179b9d8008d8e84a5e1b6b528af7b06180ca978f3105974e1c41fd6cab3947e925a094335c2b1a3c756dad51b1cb0103adf3419351c264ae4e81d62cf91239023135ebce33d92f229bf398b85c91ac3885deadf0460dc300a1225bdf8ead658bfdd635cea612f176b43bdad643c7ae9ea60ab250ab1ece49f1f15cb5acac981d6875160e51f2538c9e34b1b055615265bfb85b3d702f68e1e0525680e6bc691118739a11ecc2190c89d2e9025f9ea87bccb64d67e9df46532bf2b3b093a1e72f04f685ae5d9bd1aed92f4ff7f2899cbc23fe1313fd766775970467d930cb1e7240120101ce111c611ad74c38f1fb905a1814add815c75684984254b96976e0de59fdfeee2a5d96d8efeb372c875dfb591fff026f2dcc6f50c0bdb368a4b05ed825220f8316af22c2d1e5084c043f9276d4890ed3acdd40140e63b4bc92e468c09f7826a339d98d718c565a52ff1a48463fe81ccd4f38fa29c8ab20f77e16672f90796f205b5592d52b8f41ec0c9fa6c81037690a9c3b784ed9b4201db66828e46101ecd81964357f54524b634a4b347f30f8de922c9c254e176cb9db8ec9ad0b00fec0eec823d207b59c287119bd79a43ce59ab6d44363bac4f207851e731a12d045bc8ab9162a669fa157f066df230bfdb90a4795625d58e93a2e51339fffa65ad80ee4336acc8a47d20fbbfafd7dbf586f1c12143f25286cf6228c1cba285d32efe322aa4dded689c2c933beae53c7b9d712901dfbc9d57556036276ceebb2958952aba4d25ac94ffb440001db87366fa77383a33f711f5a9213667af97de6c03ecdf79509b8b6b42a64582bdfd053bd4f8833fea14668ac32083f9392fe14feea7c581b5444779ecd616eef2634efa85c692066b073a90d5a73c66c22f933ff04303c750679988d9890c4f770db9b6502b9889fc62f9c5d2dfb0a626dc78a172c412c3f7f6adbabe88ea6e3b9cecbec45026388df02e29355149e284fe5922663a2c112487bbdca7df96fa241a2a7d07d130db6589bf4018652d4376fcb018564ce4aac68844c975be98f2f0540fd6eb8792f7994d58bccaf8149903447e45058da377099e45f1560730d3ceb38469b51d2159874733283475f3b2e89c3cdf20c5347064da13e42932919445ef59e97dcc8dc803be3202521873546cd5234bc1f6d08e2be1f528d162a20beb8b8a83e354552a884df1dd10759e7fcc9865d6dec5e39a95198be2618d1ebe484f998f0dfd7ccea43d853186884e4c68c5c22f6d5f55f8e53ed1bf0a2d303fe289b00aa550d7a510f429467adba13f18c26b562dede850228ea51f4492aaebeca7f280efccfd85f0af939625c8786fbee792013f412c7f8b33fdedfac3203ac1fa8a14380074808043285139778164d758c7c9f6edb65f100b6e243848c751fb8a950bc212fadddce5daddc2af3785e05cb1d0ea9e83ffd6617909e38908281dfa9aedb8904d57d784ee22903a6f2e8325ba5ef3ae3338b497d485af3f3ddb9fd0e457a47732170ef4b6230127552e44346274f43a15d62629b097105e8e06e25c4c94f48fe3af9d02191de53371dd190de26c9e55741be5f961d6d925ca6480cbe5a4fb6703b7f1875a0f2df6f2fba4b32710b08a2926366f70a79fa4d867e86b088c03fca0c88a3013437ba3e6672661e66ec121cc4c407cf147fbed96f8bfb92002d997a43e691bd8f18f0bdcb6b94f04f870067362b1778a439c8e0c774e9f16b6f726e52d92755a20096d00a044bf430b35cda6554bf141d1fb6768a5cf5749d2bad3d065df6866a2a9870eee3d138768fdeb3c1326216e7b9fecd1f6cd296166afd04f5998e86fbc55ae781536352343ab7aded1f66c47255020748d34cf8d97406aca3fbd436186832a5aa8f237b0ca3dcca3a148d5186ccae50fa442fd4dcdecd6e876dd254dc7d2e3eb0ee9f9523a107c0af2e7c75591612124c776e4c4081e314a1ff4ae5f423fdbda4cc190c6f99b1a35e56beed432672b37cbdbb36c9fe43152b6819a3cfd35df44f5dfacfcf95bad7097490f4063af42981dcc95a17db1a38cbc29e35bacdf3c44a0d99da6a0c7abbb22ac4312c8baa69dd1f6c941fbad9636dfef403231ed0926655f74d2559667c16a5c1b77ea014efebf712bc2fa268d986dfc9c38cac6740269ea9994e5585b95f21a038656c80ede36f8e5deb67a6c360470260e23ddbb0a5e3e376102df7a5851893657ea5551cbd1b322f4f1249988391c8472271868fbe142b384fa61cb9fa362d734225aacf26910e3c0acc3348242355e2a79113cc3b627679942580ad2260ea48199dc5168917a3167208cf7f568289f43794ef64a76652761348547ad18f5eeb5c70cac5436d3cbdced4a2936b6e5fe32c0d92eedf2ad776a4b8c2dca304326667f0d3593ee87d8efdfb02ed6177c04fa2b74d16ecc2eb8e1994c3ccbebae1c60acb9bd217454f8a1d1e6e8ae9d485ee9a658b7dbb07244a7b31c3001ecb816545cc54b4e951d8af74f1ae24359d084ce36626af506dd2a6fcf56a28daab0520959976f86a25a881aaad367e638f7468ab738308ab6bbeda2e8efcb1e0dc65ce61a08b10c2483c7d66c717684587b952fffd2fd225dfed4b4a94def5ab070d2718f6f06573591ad00181846e9327b3688bdec87defd98e3f4f31820a400d72990a5a2e62605e4f56925107458ba3046636ac813cf0b3945a2b47fce464b2c99530e8cd363042d452eb51c2534f07d5786d421e78b5c99664f0c1e52830ba85577790f44678b301f12cf9947d680174b7b7c34fb2b4adc4043f2a1dd01ce3eb4bca93204b960efb84217830f76feca62098a1e9a6e640371a4acce651b5bbc57e0f614eb74b0434e16f4dbad6f2090bc349dd5954dad738e858b33f1f572d7360668b986f8e22c0cd57a30c2a7a315914edfe05a8a0178ad64f64b87ae37e8d32955b815f41df559c78bc2c44df68164fbbeb39d14b69978aeb9e0d7614b7262d4a040c404eb2c6cf520e85d2ea82c5e197e483fd00f6f428b3852956260d493fb42c5195a35b7af003132d300e9db4161981fde5df7eebdf87288cec87dc8a420c5b8d5773d7b511a3a5b8595cfffde4b0d93cbaa5ba4d7699b63f4fcce410cfc517a848ba8fcd9a62ac46d0e972d0d84f980abb40fdcd9be7f97fdf0e0e0f0c799898ad811b09d014991bc455c6d187d71a1baf48d522648c60215ccf6f948b913fc45c07375ed275327cd30300f601ad9264b20f8b4675708ab35c69badd437ab159f7a00df0373a62f428131517f6a4029cd042abdb16fff515a457b9da1cb8638b391edfd07cbf4962e6a9c5d862b666f503a6370fd4ca2018d849069689ea058204ef25994e0b428a4e8dbb6c9d4fb77afdfbcea8fca5d97a5450a1bdf8b52c8877ec985a56143c9532eb9ddef44c6f30a25f68f7e688d1d935f8bfaffcac3f579e0b954c03c3195a17571ac64b62fde71280ae92612db88ba1cc6910f78179b39c56cc94690038907af75a7ed015b79594688806aece950714310a8de1d2a7cca55fc5ee0a84f9bd64c1eb18380d81468fc5dd58bb9b00071102a72280c74a7c83c3c8f49d1c7d95be030edaf5df3cc000c15fc1b4201066c421c76537dd6f779a35d32431c0f1e3d536687510dee66f2b838305903d036a84b115810de5df7e99a881c826331bb02985dc675c7eeb256c6661877f3edd1ff5c3d68f00f934a09571c76b23f8b910d4a799cdf70ff1a2bfe1abdc92b3110c6da81a3d2f01a8b3c9bdfde9b8120962e2b465227e8e56d832d38dda73260c5089c608f542b7463a2a1a2943ba9a623fcadf719291419d3aa8c370f03d55a451a551a10ac86c42cb66a5f98881e3b9ebf04ee677c947ebcb0dc72610f9c82a09aec58947e84628e8fa31b2efa5ae7c6d0f1af4fa84d3eadc185f09a0202415af69d5f770a5a479f946ada4ec2ccf4eaae0c0442f08d14e2e863c1beb6355bf81d53d20a8d3c01aa90afa984fb35b67d66befd02ef5f9cdbca99230e61e251884b711fb5377bb77a3c8ac704296b94193d2f9dca913cc4168d24020672e9e6aec0c54a3dfa238f48da8632db26ed28aa75dea26c9d929e64472c85c3cc35acc8cbb3dc615be7b6c14353bcea803f2c89b476d07b06a0528d7ddde1eddc0ddf32bf04c4dfbba3a42144b46816238685001f8f43c02441d01a82972a02f88982fe0e35e226e93dd2e7148c449f2a92861f8986beccb76a1b8452cd245e228e8eb46203aab187203491e4a08cc2f1a089368f31d0732daf2f2a8c23f8ce439ecbf311e02ed83c047631ee9c64cd8be00433a4d882f74ba4ad6bef094d4312218e2a3a47558e8f35ed9e10b465564af296c7a947335f80851b7a70e4921358f05919c407f59d7d955d2c736bc8ae438ee94f7ebd4b0a0e73c00a04da77ad8a967ea18150c5acef2e88d25e4106772c732528f5171634d7056b4738a2d739bb210b4b7f112d79475be7eaa70b4b9ac9dbd0cf1903a14e3914548cd4a3cceee3e81ae6bd08b4459ff221d4399a1b93a78d9c1d2276a84385c26519268fd7c0b11b54055e8a17d686b4caed3efb935bc879f1b9dfe40b18ccbab0b46426627a1e2f7a5475e506a2e46bcbefd8c9f4db0e122249aa0820b4fa8fe9e777247ec70f6dd70b6ad6efc44f7ecb55002c0f01484c575fd25bb00f3575dd3d56fae47aaaba7be5e50dbbaf14dbdc4b43c7743e7b6e865827da4f98f5692ee2c0a7ec8a920ae8553565371fa663beb4a390adac0f31b5e33cc275bd04ef9a38ccce71dfab0e5cbbff8db46dc3de2cd59e6a6fc3081528f6ae4fcb2c6248cbe0ff5eaf154bac719d632ad0f2302e40e407ee3634b7481a10308e36f3252372156dcc2538edb0c3b2038ac34ee13d326f72affe4600ab711cfe0029ee564b923df4a61c9ec62587157e46855f74a7c25fb86095f707c73209189b66f8bb8b323d81b1ff926d620055223e9be5c37be7da7142cbf90120a5e4d4c06d50ff425c78837f4b4c8a2f539a7704816342fcca58722b1603906d05a9da060c081a2eb4489663290c5bd545700e4b3633964593f87dfbdc79c3da838e5da1fbe9012fed1e212e35fc8016245b1b8efc1774017db7f31f10f42022e00ec5cb25e0a461e658a9696b4eda41171fb39016d199dc1359729a5f6a7e47426d97d0893b12ce5074f587b0808087025e5b782cab8b0a0b812a67261957130f12b1655afe072f05474f0f1e4e4671e6c83452ec2e602ef15ed06315d4c5795c4a4e067a4703bdc1841901f965681bbf7656cfc579eee339027ae7562a80b6515551838d41e83123bf07dbad9a84b3e5c17aece4415352cfddd17027a4be0ec54ad775d0c33dd277c588462fcae78b57792c16746a01644f67e9ef93242f0ffdcffb956c8171730089d012eab885299b62299088cf40b4036153f5226c0f04897056136be35ee296ed5a004510b0f8f348f70c47a112f1085f12b00e9a0b406ae9c77aecb5d157b7cc5178ebec0ed2e2cfe19a3b476e2fd8c2447bd19a16533fbe507bee48798535030a4a3138c1e6242ba9185838c2222be68a521a14fc038df6ff59ef310e33ac71d78a7020c4474a76d706e1410a9ceaa4ee27ab4616096ae619b8588b25257de3222027700ae9f1178481e046408812a0e1699deedbe13ac58fef1c5547e98b3c494ced88882c452529f0ae42def5f7100d200334ca949dfc65ca60d7e043b7a3259e7955abf79327f97f1209e24fda03cce2e85c4e7366331946593a4f37840ee8b59c767265a1d313318058166c7b0a44b5220479f81cc67e790a03c4f2ca112c0d38efd93e232f39e435e28036217d2b19b1eddbf9035b4af2a6f1cc5a4f8a52a68839d94ba6632152e4f8c4150ee8fc35c16a3937d05bed01f08f010ade1ebfc4c110c78cf42fe15952ecd49ac2daf901cfc61866a8c1a62fb8762e189a79c206ba8c813608011642f4756d27d41b24cb1c872f49b7ada169c5233d02e5742d3f7f9099d1ed593f6ceb23ab69e3462273776a9ac1fab92aaab1d753929ec4546f3b97f93ac2493260bf195bfa251e1b7a53bebad175fcc9087afc38de6701f858845251b8d111a7a23275427d79b74998dbe754a3db9e996632d79ad453cd9b9a9d9d7661ceffe3e0b335ec08fb4ef0f5c171d4349a2faa43acc124c6fe2fe8f15bd21d9947848de324e17f549aa144b32bdb2c02bf89387267595aac93ac945a0914f63b0fd341520ad7f9a0e0710e0ceb4a612a67da2c6cfe42427ae91838bf29a4e90ec090669d82ddd19e2804eb6a48a1a005cc7c08e3bd03b6c7f03d96f46cdf11e0606e191844f0e963d58d97f72c1d3064120c9877c4991b64431acfe161bedb35afc1f3d31dbf3a5e7be0afd853e1b7771ea75761441b5e042eb3edd8b636783f9a7a10eb58f3d22f21b89b374dd6e3f46ee3a58986f681063dff9592273a90f6f26af3cf2bb4f1d7aa2650aa21d33da098ab891731346cf47b91fbbe3650d12beb3b6907d9f4c9d58f607a8a4262f9dea290514958a48831200b7f28b63b3938ffcdd974ef3a2c84b04b67161eca9ad0601a4087b3f9e9c5450f2440cb2adc033128b7e240ac6ee45bfaecb8a47feed6ea84f918252a435b75d30f1a3a83d854c202795d8d60d0f1db3d2774ac4c190828d942c4537570ca5e5189f0277a268015f05e7a43a7c010ba46f8cc7f67db1c2fe43f50006eb1f81210102ca48c20e301dbb185f09c622998d35f6d58a6dc2098d324534263fa02a9fc087eae382f3cda8a7ca4758cfc1c3aaee545da792312d33297e76fa08b2a1300f403d5583f458c10e2e53a05d306c8e4952452333ff95e0ad3c8345073d9572aebb3b2043c401f10572db68652962d43a3012d54521d9ef5eeb7c130a02e9ee4a45984d10575b24ff945da22be0b9c0f30825beeeb789413635c6466c6ac41d1cc349920455c26727c2560a74fb96bb6a03e0c4e4fccd1f99d7af3fd5379591e888caca4e40be2e46de0ae10829a84fa467a5c513efd395ada1313788a9dbaa8620f108dc018e7e9a2d68d1ff76d7286a0253b6ec4cb99f85839fc30533ca3fa0cb2d314ede7c3129e049610855f4ed6f00958b66186a3ee1ad8b3fb70aa40e0b2b863baf0a7a3575da50a46d35e1b09e509dc0b9e5a51f2ae26c5db07470ce2fb3709a84650c0bad734e716ffe5ddd2757b1967bf557860e92ffe916c9a4194d5ae4030d899cbd3912400a4ea0948aef81ea34cf50358cee325cec65dec0de057d711f8632f965c104f0bbbffe4dff060e3951b903852486a85719c01245584ed4566ccb8991d24a03f77d02c763929af04200258d468f59dfa13308f7abba511ec05449debba15ac8c57654eb749bdd82cdb554125526cbe7b9627c649d6fc48226bd478c80b1dd5b4c54b990d75c4c46f8780330b0c72a41c70c99d3db67ffadcbcd3da410b4c6a9f8dba8c3b45e745503e0afc6bdb4fc46ab20a869215eecb5c65785354596df662712250293ee69e2e69ad5d95b68b096b8de432994d5cd4a7436404c1bb43095c0b16bac710f6a78b34f9847d733c168f6b6678c764ed8354693bca43a9d7371fe31189dac75d05c04995f92d1f0a85706aa09326335059bab413d58cf2a8c7bfaa67277ec584cd1f6d914800bd2d6904a0a0751f20772f6c89207230866675503f1fd4721202b4a4730ac93fcb8756ed316af5a470a10c0625ac5e081c6991ee6b91e51a42c5eb317d37295ff17a5b769b091421f30538d1cf6a11181fd558cf14a04143e92c433125fb0943fcda9a370298fb96eaa10fe068bc5aeea313b81848a23aa8855e6a29d7ec1303195b61ba00e28802536849f7820b82ed7fe405077a73b6b90fb10db585448e98f04cb5bd6053e34d52007c0c68906c61cbefa9622e33e060fd4bc5bfa4a557f321342bd34f041f08896ff7321c53a76623082da425c088213f4c4e61ec4dd91c57ed79c02e4fb6abeeea707fe2e0e0959be40acf8a9fc9201e4ceb3b57a01dcde2cb9360ef2faa8e33d293d80c5516477126e318bd556da7c64f8634cac9df452be9e448319884131ff3de68abcadaa1ee70b798ec550315260fd4e589fc80eec3a0ad38d7b41c40d278064e95da8f510ce6255656b7232896082787b41495fc0592c263356c177a232382d0d7211ad731d32e093d4724ac795370b71594cc05465159b4889ee3376a23dfd5cb3d6814c25e05e236004681be7488360157344e71be3244452548af60097614803a0ea8fc57176c5fa60b42566fd54df0f829d03ec8371a01d8c46ae9a8475ea3261db02e938e49232b2cb51e4d658416267e84623b651b9641eae2229ee0a813f9b715b754ca816c9fd6a2244bc7dfca13ba5a9abc0cf75a2a091f236c54f0751674059bada3b3f172030bae8f2503bede0f5c779bd539f6142a9b6e63fb6c7a62a660c894669dbb7e66346c90a9a7ea605e7b82c3aa324d09280807450133d13468d6d5e85883b42a346d858ecce42465a76a0f6e7ed714eaf2c2c41c47ecc8fd0959ce64c06fd4d83298f06b9e8a4830b483dd29a5fdb098c17f407be1f1e673276bf2cc8bd5cdf6c79404dc70c5c088bc032097f23fd6a0800c4a108dee17ce5330cd34f9132c10f26cef6a4e6ffbe9600ce523c5e0ea1564b59766d46bf030394a220bc267534af2b8b252b1d60fa46987d44b7e2997e2d5ad3a968b47c3b1a22451d022a79f56d47355ee2743d505933b1686c020998e841229b9bba271ad2ae96792243f57717e7946cfd0601d2e2a8b65ca22fa6d2120b1972740df16e82b166824acf49a434c4131cd044280dd13de6bb228de941c3afcde8f569f1a587f76ec69684abe35c88558b470998b9acc1de303266bdcabcbc746bda463ffbb070fcfbc91ab087d2d9a8d930b8955d37ae74154f8e39bc3742cc8a407071b72f027832bf95d57c8e8fb8a04ff194f4a0f603133d683a70d0d4effa2075a89801738ded207ef8ab4fef47a625cd5c86a8fb051ee793628dfe1610fde2a74ced4251cef543c6812b34dda062f322e46c47d31718d036d06b538da4d5130f7d204ba1d6ff26a46fedc2bc49c6a1d3cbab419ad75865c1fb8586ebdda99a7f68f98f6f0b2a342cb0d102bdee075b2ceea4e384a58ca7e8c0fb884cdae598782352410d1dbf185d861809e7c44489dd92053e92cbb1a1dda32c5034a850d827dbc2a8e3f6e2c910e3ac857676ba566ce4895377e08072d61a821dd2a0a04b645e75a980ad223bd9222a8a3943ee6e645124f69d593813cbc4ba5954a4caf7bf5d22776040186878b1e5242a4e930b499d10483790115a25b21c1d215d04df1e033469994be6502dfa5567f14d2d4cc06da7bc7dfe20fb8e7f7110ab4ab524bdd8fa9a783c6489e144c94c31b6b1e6602b17b54803feb9273cadc368aca5bd0bc2106701c8bfa181b1d04f1f4db9ea5cb9dd3b095545120846a62c69d8a5b1005e96b8e6b87edde81e3f9da57f0ced7a9fdc14f2ca758c1f9b8300afb384290a1380c37596e2fc429da5780e23a4093e30f6bf7516f4b35326894f3bd196c9bc47a809c2f9519d85dcb9bc9da8dda3f6f16ef9f0159bcea2d807682b90836ab6566144d5a7a58f887496c370129d25aca4b3340e93e351f274f9277ea14895a3d0dad15e163e8244edec3743ac508a2c2516893ce858f0b2200dd9d270772d1087402bec538ede417c9f8314bd2c713c079c9b78610ecacb92cddfc2ae59cb32daf2e5129aa502f26929759ba657d7a7cc0226a1442c342be1540d07459d785869a191700a5d481c906669b6f80df77ed3662c4904063df56199063a6f9766c186102d33b541d49c6ec5a432cc7bf545b901ba677ca1235a1720edaafb2234fdc337f2466345eabc4a00cad1e2ff6da1d545cc00d1e5d562cc8eaefbd29a03955f4c8c68d3227a9370dd023cacbed25d7ac07bdeec6e644c60260413aa096e2aefc35d60c0be3093d45cb4c9450aa114b5eabc2255307cd1ded8a5c1bb6ed77bb1124a7731af7ce7299826e682a2e55412ddb91a88c544d3dc39c8d1a936617177caccd5a13047b64c4a2c4857f270de9f71e3815bc34f2ddb76280744c099f2ef252e90d41116ee252afc4d53644b862720c4bc6821d05cb6de16f1f19fccb373b9574fbae66589c3280d414a217bdc5fc945a9496d81e1f9d9bd9e87d0dafeb18f3f84720fd704cdf598ca750d1ba30c3c439fa0cfc467701bb14de4103fe56e40502ad59fb2960657d715f1d75758ff183f66f452cbf5dcc7f8a08ebc5db45e897751682c4207be1dceaf8816df1b68677530ead5fdbf4460b879527ca653757d313fcdfc69add540b952caf23aa326f506a1289dd357de5274cc9dbc66d69fba2e92ab5de928a08f04e43a0315ff0e429527ba6561032391672ab713b113caea020a717b6e62e525a04bad33b8ecf284d769c02574fb03d9f99be413929157575e670c029fc1043c52a90978da46b9530437579697a84f36b8091ec8499d0e2c065e80ab2deb785c2d1bb0d9db75e4f3f818d82e32b4148978b343e81498b558db480556ffb17c768e6101f6af5cc2978b1caef54ad848afeb5d83c6473f9b2c297ff85cfec552ddef82481ee79f80e14ca4649dcf177dd5d969f593f06beedc1c13929b57ccc70d1a9b10b108caf06630857ffd6e2352419dc999a446c98634e1fe45f2aeef715475f943c644b49028c749fec0b6cf2b9042b0462d015bc99ce0b6d41af9166cf7d58ce25cce044563fe175b747b1b2c26a35e96cf577ad2a01cda0b9035bef587603e2d24320cee42f15827130d415b7137393c0601fc6620ab7dc7c54178922aa0fe741e887a742f6620c7855b17e8f1f45f9de9fe2a2d7f3630f15db3f1f8eef7076dbbbb1523f6cc16a4e65b5c4f6a2079d2ee6f496594b39becf633a0f09c4ed32df31a6772e5848b7d5372f59b4129af924b01b4c537aa92eba68a8de51200efae8d8b2c68c67ec95b9186c2c6817ff0cd56199f16c85c742245807a019ac3d7ad3665014c6984034b0d954ada327bb0081cd1fbb6c429a8043b30887f69badb1d23ea1010924c25243910eaebd0eb3fcff02ce9b51b613184f364ee0c8f3df960bc9a78e2499fbd42f231ba67327d462963417a5386295b1e1ae09f6440301fd69c94e1eb96f14c95c262ec51e045544c5ee1f93d9d79474dacdaa4cd0d7b84df627d6c3b1e815f9b0226b3ca1cc6b1e974f8bfab72c30f8435185c25bcf1771ced9618bfce80f97c0203ba3542745b300cbb4a07cde6a217ce4e5c0dff6a720b0636af51393428e2d990a92034909cb8ed8e31b9fa5ef66d66af2b7b21273d28404657e7bef56655e6013b17e9a5fe6fe44c4f750a24d6f7421e423904165536b2f7de5b6e29654a32053c076d07f0064c35c8b4909343550b0b17706c90a2e1c4116b8732395794dce810850304131b1ca65843e0b0a426c9e966881088c03a296373021b687638aaf962b44a0a63a7927c3618d144c182e7c46865c585ee86a7af690977c394a7a4644bea908e7828336b5a81051c86362965b440592d1bca5414acc083149815928eae5861044752b818b50e470ee3da84110f4e332947bcc003524baa4a66b56cf80c8a0903299b9cd6ab7b3962b0adcb33a62717c70e967579c614431796c61937a62c0d191b27b0360b1d66412881c3089b73791604930d42c968f5afd7f1429a722537e0e822082656825862a38c208672d4606bc848598e8b2976550514ab45dd686257576c98616ba2d8fe19103ab0e0b665592d0f646072c1d61a707061bdcb33205ab8320b65bfcb33204eb82f1f28250b6514bd88a64be3f28c698c2b2fcfa088b61274aca336599ccbd1a38c73c657c0142b8058428b11165462b3de39bff64bca5ab55b5f16c12fbe32f7e123a5895f7cb7304aed037a7db6087a347736c54fc76bb5f68b436008f2a594f2653a523acc433ab143bf384aeefea4cd081aa41a9e1edf6dd86d7015c5caac4efb7015a6ae2b88fcfa3594b90a5357bed79a84c41d85772abb4073699caa76c33d5e9313150e8a7ba80bcc7406d64219c5e1367d729dd270a58395c923caa47df0c7159395d123ba43fbb8f97eaad43e58df4f8f7c07e73be7fb37a34dc9cb3614f08e1f552743de04efb8921217a52b94b850f2620bf7d827bce3515151a2a644598982bafd55a916717f5d5263d8e1f65722eed9be5ff3c23b3249abc23b126a8a7bb8efd7a8704ff7497528898c24142489b9505da0b840350135bbfdda0cbc23ab1cd629e09d89a421718f2706f77c9a9316457b5285c345d29820694b90b42224336e3f858277e653145de29d19c62914eea1f9a72a315e9eacb8bda535b355647488dbd1b986e8f6db185d3ff29d16d34abed3b32694b8285da144a5d4599847370e4fa2a2444d897a8aea24e6d1ef657c279ac1b0fe2ef232bdc4cb740c5ea69b78996826c977a2155eaa188b8256997eae036313f3e8f7c078c43ce2100cabea9f224713ad59acc294e3490b87db5533dcfeaa0b300f0c30ecc9778228c9118b5a66d814204151adb05e5a619e3c601e2d1b38600ec80e9b617c0700597224a0d53c6ee7801c63f1d780fcbed5abc5668d619847b360b94bba691a4d494d965e36c26adf63d53d0b8c75c5a7f1423157a4f140394f230c5a8a1f64f33961d01250cee37c10eb697c0c8170826e725e2866a373afd1fb40193fd13cc782829680687c4e1894f3344257cd732c88c6bb6a4270d184204423373ec7bc9c0e220951a75fcdb11c1e1cf0dd574a748ec4817e033a1294db6f03ae66903d65428f7c887b4ce09d4906c3fac5c8be4af6b7b370a4dbef48cca3679995132b73249a649b1e31632269c6c40bf6088969aace84509a502ca1a2c2091824c228810f1e483a4106272a60b182286dd659b54937f040a7f594524aabc41c2d9e27658bcaa45f48525288b629514c5198aa602a92b149bf2213118c486048052e40a448b780eec1f303c8061ebc6cbf74229386f587dbe6f1f60c9280a45689394df01028d693aa9149937e552f1606e6d14f438595b1140c214820c2c03d6c25d0af210deb8f46afd77fab7542e8573f0a362649b1c3453c86164e810636923474cc3ea4f4d6a0b984788b748c459a5fbe377390383474d953a8956a744af728ca814b7132a1e3755e09dd6b0cebc0a6851ec831cdeb38d4408d75ed7bef857c5ec761ae504c28d6df8144dd7b2091f73bcab024709918730164f3bb72ac0339c669df070760caccdad76d52c70bd6814bdc8e98413ff7edd8a1e305ebc0a5ad35292e2c794b1741c73a9666c7814bda4fb004ed83c8bb7df781dcc20b144366987f07eebc95afd0ad1efd42305a2281e78e50c46ffdd7158a711c48c47d922512786e112f80906f94ce550d39d077db3e06f8993395e3b64f7bd976e7120756743286de08f1e595852e79353088dc80dff89acf90c60c647184f85a0c3bf812e295d1db94cad035c28cdcc32a28c239e63075f019e425a3afd149dfdb9b1e4b082b3b9eb931f46206f527182f4b08db5103be3deb77b3562d087defc0a7cc6e21a2c7c8313e6969c9dcdcdcfcb1bb69ec2eedded352b20cbbbb95407deb73f409ee2d93d21ba9566959376074354f7477773b33334721a5fc60049c20ac3bc2fc19a30a8a90de471ea1a6e4cda794de35501a571cae9847ff17848d2f5b454a23154dd3b8bb484ae9a4d231334801f0725f2119a35294f656ee7c2c55184b6ce7e1d1d179bdfee7954b91e02bdaf4cb3a5a0ad135b70f0df8d576f3c1d3afd86a353795b46ab44a495f03f671b5afe1694a5f164e2074f77677f7c8dd6aca904c4abd2120dd43d98e5516a1374e7d2fab2b1a0b72c3a2d0e5afbe94f9a55fbd6fc9aaac29287bd5981491e251342a63a62a0c4fb11447311495e9c41d973ef37795b972be8124f8ada14c48485250d64f8d54051593ca7094ec75e97c0d24c1c8d59e49d0aec6cca376d36709f2d7293a6ea6a71bde1f1f28c6af61d0f631747150fc0e5d423106d9fd43f007e2ef81f77ca08f37ca3fd25fffc8120d81b48f7fa47eff06ba3874cd1084fefa40fd350c81e26b7f040bdbaf73270e5b6cd9a2ca154f503171c513624cd10455135d6810d92144e2500544600ab27462cb95f194144c37ce9cc872e357a0e3cf47764f41d9cff597f47f62f1239208940a0d49cafd8abf5a62d9821512969fdfe3a9a7e162e7f3dbeee3b77cc7fb089564061967e850c55115b1f8467c476868043c8811a2a9ca8c2a167f88ef0815b50066ca124c504d5cc900082840281145105c906251c77b9d3ba57ca235286809c8fb2e0ceade0b833c2e9421a94afab9f435cacfb119bb80ce6d0d8c25a89698625ddca498c11443c2585478618986450c09eb87d91238203115494543b14e267185293271e24a9858833a4db18e6a52407c61146bd0860a31241de3937e020629a2c0a18a13142a68012ad6a08b8a58e75342d0042a5671c21143b106990a1b623dbc74818ab5833e46901426d60ec617c8d8c249acc11e58625d75820ac1e639c84f5009a20ce739184560740446e739888193a1305d785228d182c9d764cc19b16e350229acc43a1acf417e428a8212ebac96223027a8f11ce42a8e4022818de760004cc0c5cb981bcfc1a00094a1e4029918921f67f46043ccbfc1a0f8c31831242c1b621e3ac84c0c257d116b90b99411eb705837363839579018fa126b90752586a45bd3b422b494e183181c332d5508410224b4209163480b1037ccd092148616166e3c591b3338b458eb050e3158e038d3b4028e2a2c4b8b0d2cac8d931176e5438e2412d4c082ed2ecf4870745f2430a2f475bc76d43935a5b391a67de53ae627dddda594d2a537bda3ee9cb6555937d9d238a7ddf4e4577de5ee5e8cee14f439a78ceeef21d7ac2e18eaba283d99e4c02f7318b15cbe7263ec9f49355b37efb8f15c492ae30b5da1dbc5183fb2b4ba59aef38e1dcf95ac1bd779ded1dbb8ae87f779c78fe7eac575deb7f28eabce05428cfddc9aebfaae773dee7a7203716e17db6b50361904afe4b98aab38c294ef81f935b3ddbf6bbc0b709608ba3a0bf3903838b763e1d80882b7a3e11d69f05c49e6d1b19cd525117122ab6fdc93361f938d93b76c5093038bb4544a77772c3277775fc96fdb5e1ec72c7360b1b1cb818573fa63077f9f8f2bb17d5a5d693474bab3aa582965d286d9c60bd611d6f3dadd0614363e8e97038b65ceb1ad262e7d7677d269ad35de4dce0d0b8785c3c2c9b9891127091a3ea50d36614caf915668b4acd4785d2a6d5270e443c3985e23add4b0c0157dcacfa78c9a7e23add8f87ce6db90377ccaa8e937d2ca0d1c5672cc303aa84733f802218c107158ffcffc4686d18c15abe48b461e38a4079b312e204294300fca99c30ad0f703863c3a3a3a0bf0200a54a869382ced021db265add38e5794970e0004204627ebd52a31905bac9418c41863b462f362624ee969dac675deb7b235394c8e8e6c70941819ddb07ce8c6a5fce992e9e62687ce19e818f32987468c4fad6dd231e653ab8605314e0b2cb0c0f5b95c2e1b934231e9938d1b313eddf87ce6dfc0416796499f983c944c39fe89e9c1294ce09c915f72826086174c61ba400700621c02005e009cc009408c31c627d814327e1df8dcbacb95394c8e8e56384a8c8c685891a85f4371c8dedc1e8a66feaf0c838c48e132343436fc1bf8a8ec05d5e597005008fc205c91aca421229b9b1aede34e946ad1b8fc38ac416c62d54aa445332a90f4e3e71c0f674e4e0e8d8f86f7347abc1ba5ba851f372239ac6503b8fc30d62032c50c625353538b7e14918a13527f1c8233e88f426aa42298475f9a568deecaa2991a353e1ffa352cf809e175347d226e6c8a19f40edea979ae012da869431cd61c41d0625e18c263b14dd4afa17eb551c7a6a841348333e847ea33cce3e3605e0f693e22fdeaafb2c0e5550f37a07e750c65bfbe1f970d6bc68c193377019f07366e683aafd76b0320dd0d0f92387278d66146e8e8d7e77810850ac6827dbb0b6c3461fdbb8bace15b356c8d99dbd10cc733bce37d7b616c6a272d43b7d029ac6afdac6d926a6aca119b6e7f97c335065a545b65cb3edd1a879ef0c6e0c9e1fe084102313e912c50588c1b8d6e64a23d47a5a11ba144a8b8254e9970e3776591eac6323712c5e74652428a1a57d64d2295ef659d254a494fd1552d86accd188571a3cc95dc186db54f322e73631c62728a61625592524b453fbad1916e5ca2865b53f3f6f3a9f96b9fe6f3b1f22f8d1797e6579f0f4dbdabff3e9f95fc9460e17eef7d3e5f7515a6aef7dde7e3755fb5b8dd8c85db3df7f9749675b9df3e1f4e6e59aadcca54d20aa9614972352c595cedcad26d016069e84c528cd269823b715c498a49ebc3ca0c75a763f6e90ad5c415947f7dcda24b152e1d3b90789204511253b7bff554c4edffd95314b775b6e8a0a2c26d13dca64275bb4a152464b8fdd489dfe2ed8067c4502d1962a268880d5458ac20c9135b4e30a3d0829332d6d28700dcb55c23a4aefb11275c37a2e8fa73b1a163ca11016e7fb55390b8fdadef571545503951b96d574f5899e4699d2bb34184934a0419b7df767345d45a6d1011c30a35727072111182155a3b3c5970c6121a4e02de7bf293d3ab469d7c568d72d2cab7528ab25a7d3ef35792664a3a399ddb028303bd6adad75f7d1f684066af1f41611e6d853e8db452a333fa57effba0fef6dde7b3b98736ac5463306e7f27ad58fbf9f85b5923a7578d3af9ac1adda415eb43df561b395da3d5896a1addaa159f1aadd28abf8dbc91d3ab469d7c568d5669c5c319d2aa56b54aa79c52353ae513174c5dd779d3568d4ef924358f2e354dc6a8bde64f5ad52a9d724ad5e8944f5352ad4e49a7c839257daada944f5ad52a9d724ad5e8944f4e15a36acbba6d9c36442a044d4a85120417128945c42322365a58a0efbace9b1cc81b91bbfde6793dfe4948b173f718916e95dff7ad1c080f0fcff77d3ef33f8da67f7ad41f47972ad19e48347afd4faa241e6944a2d10c65f1a92a08231a9a28bb679dd7580322310390eba13acc88a67e31f5ab9d9a48d4202e7106fdf629082850a8a6f156fb068c2796bf5e9e4d0df1473897187d442943d70fadf5233b530f4270ee91efeefe235b0ed3409d2967b0edb19d8a6aa545baf5b20d0f1641fcc062052c46164cd4a91fb8c84f0cc565b290e2769595c8a2a8625144f5ee9c5fcb5c718435c095efd2a59c0abfc07f5cd98f6b4b2075fd5b2600e2fa7f9724d7ffd5a5cbf5d7e1599712185dff46ba5ddcca884f35d6bfa2d6a82fe1955faf60c275e56b4dc49915395c299f56a92bf3ae94fae14a2965c5c5c2caaa744eead811935c598f1f9c65cb95f11432a6923bae8ccddc90924934818c54a2f8e2dad6bf74c2b8f2798078f033440422465cf946a4586288cbcc888c2b675398b9f2235212172d94a82082c9852b675598e0caa618acfde1f6b78ce2e593fd524a195a1b80288aaa7def050f0a231688a4a2cc2841c129ea8b1652488ad2220428848962420622a528249624091305e585a2a4a81960486214451443d1d41363b090c4a97a816a2f495766bf86ca93145bb4a8465ba2b83256165bb0e440c17a97675b8af0c1de5c9e6dd9c146175b445065cb095e909aa34f6d996ae2faf393144c4d8c600a6ab6a00107ea8dcfb27ae1ab67e418fd7fcd24a0f8be336bf0dae091fef90ecef0c8fce9ae699abb6b0de54d888886382c6a1a75b45b019ba430fadf0ae09e7ecb02816aaf5d2d9f7b21fe5b18722f393087784234617bee653d571687ac103ec415e20b9186a8178801f3a0bff2bce76f3e90deb6d0f5d36d1b07ba3a7481c071dbc67f8405c672bff537bf8b33f6aa87effb1312635f18bd4f525afd203975fa6ad20bc8f7409a13c1034320b2eae417f2d4606571888708834b5f7b5d4afbf955b9ede5036da1ab762f64fb2e3cf23df785aefa5e3ce2fe7b215d18871c96148d2e7d8e523a2431e09e498f3421ef2d0ae9b0b9712f447b2e3cd2df3d171e5902eaeffe88cb6c27a5a685ae9f8de3ba8f52cacec8102411a68e34edc5813a407eb6ea5a68699c58f991881d269f6888c3e41371987cd9134c4765f6d5af86516dabd1c89f7b23432612f7f4f4d3a397c31cfc7198c334f06fb015681ff473544afde9d71cdc339f3e0eee915fb545ab3936b5678eb53b90ee6ed766b70d72a98b80504c3e0d1209dcb3baf1a712f7f4dc18a309377258a30a37f2f6b1c6a14914a95439557d77419338b48409629630818a4d371bd1a1f8942846af61f163f53cd70fa52e21dea50b26b16d87b3f0c14da0f8b8039b894650887165914944f2662e373af56b7eed422e24e2b0880401aef4c8bb92a0b3cccfb7631d32baf3e330e943c60a79789e88fca125c8b8d277ea8a86c761f2693f0f8d754a43621ef23fbe8c462ad1f423c530d1c9773c4645a6304c44fc873c1a691cc643111c868395c5d8d43ee474511775d7de3b2d96e9977c9f2846bfe48791c961f29d3e552c1deb90cda74bd977e4cb7af0300d9295e9501d19867b7aae7f2b0ed9323ec59ab2dfb3bebf22ade87b56e8d29634a0ef09fb7df7854f3f3c0ea33aac297b64a9fe91ee597fe47befe347a04e7ea14b930fd4017defff85dff7791d18bff8f91489fdfd107d6ff39d37475f9110cfe8801de8aad5c6e6857cdfdb7c3aac9704c8c171e9cb563b38228cbe8cde79bf870ab2f92e04e2b05b3750fbf96cb80f929c7f5735d0a670e3e70261b5fa5e280664df55bf07eafea3f9ee6b0864f3356ff342fd31205e239dc2e5cfa7c8f647e47f2fc4263ce22e1058dfbd1056f7367fe4e659df692097c2ed3ad055c207f11ae9177d9f223f3737ef12d23dcb467b9ce7d80dd83deb85d83c4e78e4e66d9e151e5902ba096dc2231cf26a490d0804fc71187d1a901dc6852b901da6853296fa1e48fe17f200f97ba1066a77b5447ef740f2bbd0559f63405c2f7d20f43da0af439f8712c9f79f4f972f40d209cd5e3d75327adf13f6fb99a1eb87be0b48fb4841e098083fdc63c43d3dd365cb61530375402033a491c14af93ff189fcfbe59c8a82fbeb0b89af8547b68f5fc3234b4047b8f5b1be502c5ce77dd5934d66d2445aadbe0ee49d472d9f9ac5b2e59acf6736d13851696a1c9c88336f5834383938393939ac1b9b9c9c1a9b93934393b3fa7272bc1c0c56f1756e0c3b1cbafe1b23ffb8f281708f76e5ca02611ef26b3061653d7a704f6400077196a1eb7bbe342f74e317c4dff5418dfd9ae75b6366e5d3801e58038bfd9b302c4d18ffe3015d361fafcd7f6091795d36618f7ec9974f7386fd7b01132be3270bae985820ff546beb7a58420433a07347e08f4236ce1274ec3b413ec39623aa5810129da6aaa5987c242b282962fe41cca58c5810123026c3a5fe241ef370293e3f928e1acc503034abaa9a557131ab7a6256e534ab8a615615825955d18c4c1833325cccc8789991899a91799a91699a9151627de9b83bd69182aa270bbc589e9de089ef099c6efc71022697c7e5d91754978cd195e9dc263374fb7bfc60403fc05f7eab7f88af988af115589ca4e0050a9ec49a0055318ef9cb6e39cc42b17f69c060bf98e2f28c0cd2cd7179e685d4d5e11ebffd05107226d6830c63dda35fdd63ec5f7efa62caa53af99d04f9f68f26d13550f6b2d9e4caa7b482da537e202d74791e81ba1189ceb3743f1764db405995edb8ae811cb8b1d0d5c0227e6928afc40ca4e42b546314d34176c4577b2873c4b0321defeeeed6bf1c20afac7b7120743bd4d12f679e32f3a3497774e77bb3c9ed9410f56b7e68bf5899957544773e10af357265a617ca7adc3925d5f52aef78de5b70f58306effdf3f17e34e932a766970dfac5ba73837e4d2f04d22fafd959ed30c3e6f7e0f9b15a8dd0bde6c984beeffbbe0e947d80ea762f8baf6d1cd84e97038bccbb853f688819680fc4b93ba230385df7e248e8c6d831286baa0b74df8536c458998d2d44bcca43ee99e3ece5f8039b6acac7440de2e5bcb8dd0280b89dd5fbdbf897f35486f5d380d57756a16558bfcfbc50ba5d7b1d38c2f6d30beea7e7852e0ff87adf015f2ff4be8bdcad03657fbbf7b4af4277038f28dd0a1699738642963eb96106e64885191813665fc6f862f6856af6650b95d99726a626b32f48431d153f72b419133b768d15eded535c3059ae27e15e8b902e8560303f483023b8ac7e09d12e3f975f92c620c929e718a33144628889a098298d6a3c13d3e58ad97265e065314a88a122a59462a08849a294d2ba8939123314376ee3bcf0a6b88eeba61659ad5b182a97c573f9237318a58b340b73340b53a4d3751d58237f99028c19aec865e6c1f6caac0b1e689875d142d4ac8b14ce9011c66c8c175f6663b0988d99623626cb6c0c11b3314cb3305066637ac04901278596f9b794b2bdb08e601dc13a0227094e129c229ca2e8b5cb28328a4b19454691534691516614da50b4eca1a3f38387a7dd75fcef78bdda87b3e665314d8f37b0a4b0a46cb1b6e654ce2999a9335fe923b2bbbb7b6466666e82714aa717d987f4f994bb5d6b91356ee5b3a5d4d14d038b0a8b886aa47a67a352473b598691f6215b2d6eb5c074b2a303b8070ef33980de9e5f6b7552fa91b5b087fa5ce5c7817c3a79cedb2fe5b56074dc3e5caf1d332a252a27cc332a192e8b2a05a2ce7a282372b967707baab594524a29e516d6908816b694524a29a5bbbbbbbb9419a945f672bea3028d58111277774ae927e189d12f0a9adf72582c128ad1b088be4b04204016c47c002e804ce8caf8391a3217803f4a9063f17297fbeef919094b2999513405159733966241fe45487824c1c5932b64a0c8412a26bfbb3f094fac4324423d5471c20a7ea8c10713a28811111119f1c4fa8d5eb17e22a356acdfa8c6fa898892d4180a346586865a3114343344495e3114fc8ca198fc243c31191679b8c485ae4ea891d4f6b074dc66bc5e3574de2f77fa3bc0b0f42becca9f2e7982b1a7f611361bc057fb098bf2f5d226659d21e7bfaef6349c3e41edb548e7bfaea4e1072f979cd3cdb0d3e79cf4690d47a0a18bfea4af3bc357bf5c898e3f00c5b10629e6d8fd01c71b3ad621b3dc711b7f31ba7f79c64598dbb52bc8fc5a3dee83edb56fe318a09de16287cb332aa73b80cbb32dbadc1a443b73e68c19373e6fcfdecb2f08bdb207a38f753fc11eba1089175bea9f1f07fddb73e01784bae64fd77c2abdaaeb982917c3ed415619964157fc79e9d7f00323eb1d3d19eb361750b7e6f28c8b2666efd1e3be0eab6583bff954fb38a061643ba0dee56cb40fbecd7120675df1bb97f55d917ffb0e94c9eb7afe3888ac15d8f81cb0804c887b2e1c810bb73094cdc46c8b272758aa4365c28630b6c680838c16706cb145921b5eb618ba7186ad65b2d85a958307bb81c181c5522f492c35c18d17a6b85186ad5b6c4861b5998d33ac8d14309eb8804395e52ecfb49041aa851b465aa4e083164365a27ce83ad68d8dd7b46d9aeeeeeed5e775cd6dd57675ed3d089b4ee93cdebe436777379d5d6babd5eaeeee9500c8e84a90b7c86ca1eb51ce1f873595fe1e902d753cc6eeda82bbbbcbd0dddde79c734e1fae4edbddd2bc74e64be9b3e94bb2a6454d1d3c878d76019c1ba8844c99ca6ad421220100000000e315002020100e88030291400e24a2aeda0e14800f7296346c5430190823390ec32088a1180821c600600c00c6188090528acc460020287a162b06d2e137e3bbf7731ffd3e5288db468a048c42b62df10558ddb7cd951fe37121e11b73fb993bb031db9bca2e9e98522e9fd73e504b628ae8bb90e8f4171d6d90ea097a106224a031aca42664f2357e10d8b0e09da4dcbec420cb464cc4c7190bd699af7e8eea61bad491dfc2e6ced18ab4cc68f38e8741391f781b99cd3c2faa7abcc9dea2522a272f858028780be72ecc06daef608474cf54221d90c589c339ba96d098efa3d8cdbcef6c88dc1e8636d7872b136f24cd20209ace9325999886dc487a38614486b98b086ee21c35a71f0fe7457af6b87146cdb9acb3aad3f604c4f939d5103f33cb7fb453476852beb2c98e0d16e956e972d77dc88ad693bac46813c1b2c2bbafa8729fc8a41da923ee384ecab975a2a0fa77e7c797d37583848f8c34ae23db76a3c53fe051d7bfb8982cc00d28d8d2311efe870c60b0fa90d60319d68f277900bcd4a9a2f3fe8e16a0dace4f2ebae90a4e356af253af5c3d0989c90e34ac19fcfc118d5fbc04377835c486e5344d2730c6032018a15427463a281462f40144c3dcaad3c3ff1abb0985d45877e3a368e8bc55358ccd05b15c2b331762fb1a645216eb35b7a920866b6aa6424c5fa74c65b1bd0e9b17c472adcd5ca05846d74acd99b8e26e12e9f18f4fa7cb5f7f6c4d7b154ad7940133b22763d10fa966b6825ba492094bdb091fce5aa6d313faccfd88831dffde0bd743e0516d98cfa8a86b687314904554b221888ca4977caca56afb663fd658a92bc16dd143c8b1457fff0d5c4f24eb4b1373c0861f832980ce7322e006f0a6f352dc6ccec642ca4b7fb8d71dc65cc1b1c13e722d98d2b2b0b17bd0c201347875b7448f04223b0c3216232b40dce72caef4c1dae845e8a01f5aa8bdda1346b505129585069e3b1d3efd8cb526c361c75fd8060fc32332f683f23f64a417bdbd568194d92edc0ee8b72c0d27d9e3bc834a8a2bedad5aaac12a3a3aab89647b84466a16364b5d934e86e3b55e6d3cb930db22bf98afa7897cd6c0d6bfc918dd6397bf115a29f2355db6674062b320bbd001a1270b35862a08ef571fbd5286f0c8da46f035f4edc8f71085849141382b25d22e57d0b2ea89120337caf981b919dafb83c485f9067b058107773c531721c8c887ead92ca8577fdcaab9b3d28fa56427bc118cba372221a4adea75c722e30b9a90614ef7a9c6789e3dad9b10e69b8fe2c45be85d431636e84e1d1797955419b26f766c6f73b764a07f1248e4d50d92179aa88d64fedc8198ca88bc6ff6f43ade62e88282852e0cb6e996e63227181f4a3d79c00cd7474b6766ad46e348b072a7f3e7aa60c09c9afde7966c9c9c23983f6a607cc6d6cf564ec172c721290b00bdc2f2731b55e1d3c6a940f592fb35c71b2eafd0c4691adc74829f9ebea019c4626d4e42880be2adcccf55891663430a2018b21a9ae92e0cdf7ce1308513f908e6b78dbe68ee869b931eab15e571fda8d294004e598bd6f2705c86f5e95bcd2789ed71f70eeceae6a5fa35717879d2d399f1c0bc8701149578f1da9b251cf8f243ef77564149a15309aab578dc667bb8e64daca0daa13174e9b8240e4767e86d24718b1ce9a5cccb9d118ee089d361649f37a191b89b76052b54160f3e1ec1e6173f8d7bb0bc980a0c3d86a30a07dbd4cc818fff87d3471a2908470dba6f78c7a48d6f6b42839efe242ed000a2cc3a9769b299b31d92b820e5fde7a86c6ea76c68140de107a8c03231f55277dda43072832202973417b2343c8be14ace53eaaa9ab433defaf27ab23eccbc7e6611d8a120bbc89d9ddab9b4856687060b9f2e1e39e0f0bd78073282ee4829c11d8106130e9edd831895b046e3da4aba39d657cf5d3902c1ddda9b4f7df21cc9408f4453266d3a8c120eaa2c9a20f43a0416ccee498f96d6a8991f91dd1ace0e72f197e4635e1db09a8c7947f8b7d48e580442ea532b33f1c164404108149273a676a5d29797cb794869b1021cb11d0e4edf4e17a6d58f2c49eb469ab55b96b1c8480e8a8f8c1b4eca247e4641079b78f9b1a671fa782613db23004367ddebe2245ce5457e74e1d70ae24acbb52bbc8e2287c02a0a33c65eabc19bcf5136bfb8c9f9518a7e3b928d59a1fa51690877937bc6c6773ae1964b68fc40bcea0a2315e2242fe5279e63e9a80af97ffc1cffde2be692b8fa5d4550094763c7075d523082f5d0a98d10a7796f07e1a65eae8d10f96b7bd9916f50457cd97e743b2f813dc3f4d0575e02c53e9201a6ba06f4e601f76070d8ff7cc4666b1b34d98620ed6ada9d5010402c913cf57134412ae553740755ca8f2c33c94ee014f82d3514b039974ac77ffaa7ff6eac17e7324282a0dc45e1d111ae33addb2c82cd07bbdfe4133310c10d7eb4157c28277b8c13ead01be2661f4b1b3e6e35320b109fef02d08331343b1ff743f1c01ed313f93a500103279a4a3a86151c3acd07585cd45ccf9ec06311d6d578d892d22f389773a30e2916b31834efbcda853315ef9310f50c00cf05ec526fc1d655509b15e0de36c1b93a6537acf3a7a3646480640c93dd1223eda5e2bdefcb2b1186c87ecf28e08bcfd0a7e907fe9f9332f6bcb7fb87908c0496a960312676b393ee82f78e2aae7a816b5b0b1efbf14273b396c06dbd982dffc12f92cb162875db6e7c7464a82f44ac3ea7a65692353f68db8bfad08813d74809941e08f826f7e8e46835b59c164a69c21fefc0cd3bb210fe700d57a8ef0b1dd11d2172d43725c4f7e2e261aebd05e4bdb7499de4ff0bb0fc22f414a0232d6a31898333bc25a0f3ed071c9da0f368a1a143bb2f52104f6b18ebe14f77e133da7c3c0ece9088e896c8fc366093d11d5b3a09c3d74bdc74532fc5bf1efd0c37a6d3ab1dfc610d20fda365925de6d72cf5034f29d3c414bb5e12d21d22f58744e456a8d497bcbb7002f225181a210db41800eb76ec07f399eb0ec33451f0616cd03379f733702c0e3c70a2216bca1dd1100310e3c0e82734c8c99e08d1022ba0151578c39957dee39823fd796116eca24a4c83cd2e77af28f0cda0a7b1608d3568f6cd9ad66597a8f26a054b7c88a4e369e12c2bd0d70d21a79c3d8a4fe8885613821497bc99662ba2dd94f111facb0ee3f518e3553af3a4643208f3c5551bfd90c62ba7c17d2fac45c99b1cdfd21dba9fe17b54a6e262645b061d368f23b67e97fef9be5bdece16e61574f167c9f2f7fd652a90dcd77507b2d61e7ddd0b25c21b2dc8d6da8f583d6c4c8ca6712f78ba9cb15c50794daebf82bbebf8b2cdc2caeea9b7d6e37390d8fea93e9e51a5cfcf2bb1b56b629abf0f84cbb4f015076fa3cba265f09cfec8541465d0c1a339ebcce6770eb02c3bc48534b89ea4da295c01a85ffe1d78be80957399973f1d9ad9166117a39d6c4496f474dce46a5def75f7cf97c8a77872070b5fcb387a1dbd3ec5408d92cda4a52626a8a3d81dbe0684507d21352b6ec532962a2d5ecb7d35c365a4647e306216fc9e26f724ae5d3ece6c97a876a86cd6bd190146543ce5fdd1c692560f347aec54f2002e8f1b3b34c986dd667d4df000195d3323b1a5fc79cf708ebb23f4d65d301e902fcb08dedbf7a29cfe0e1201aabc4adcdc110d42bc50863cbb59e131a67e3db617d74a3e3d3d78b8cce7953564b8b0ac8c96169742cdf496024fb2eee170a0f4c8c50dc1a2c40f0e4fd2e28cc232bcd72e9c402762becd6f865bd9fbd7ab6f77f535af2ff9aa3197dfbae38cf7b8f9356f7d69bac98f4eb2e7a050fdc1ceb657423d0d3e12a67700fefb28fd0fa0774bbd059d72e97f5bb4222d3f9939b1f5521f219f99156223469a1472b90457c742fc7e74868ed727ca98fc03a88fc7c533485dc600acc9b6d2d1b493462e9a6bf233e1caf8f79389fad4507520ee209905bfb9ff8abd3c8b1ce77907d1c214603dbf0c84e0753d9b1912a283619c556608d255410fe58e161f3e9cf17c83e5e412553d457556c62cb73b3c1515f8a27fd20c52010f2facc5b22f54725bce5c20a0f22ac7f438fbb12e16bbb5cf1913c5a1285ae1ac2260b2245896e25cb3453a2365790abb027d7fd22ac4ddd74f09a69ab7b4948b587681a5b5127e807af7d4508a7eed54728bd1cd87e46516268270c45eed90e7f5f32b54d927873fa8d9e4f5a8771c63eeb409eb2f3fc88cb265d58ef8f67cdad69656237c15371e0f7d321a7d2a9ac631952fcdae7b8858b93d1538d96e25f4663f1a503d0753ce0f58e231fde767cbf54f68e642ee52a4ff3a65c062ba4bcf8ce340ac374b8d6ab40c2bc940a74d831c87b3671466f1eb023f7e0dfe3eabec65572741f317d70a5323050ea6d4f979bf9d62402a45db67622f9ae4c8bc0d005ad0795286356eb15b1d27aec136284c1ceaa40c1aae9955f17e1b3fb4586fe8d69551d3a4f95f194f355356306ea84d389aa2e1f9b612eb17422d7204d3994d46fd9e00d4575a9317bf8a6206825ee0aab29aac8938e974c4907ee7bfb4ddcdfa17ce304d93052e05538f4b580113d116144c37c1901580a4897ae508e670dee363f2037909822be659a5041f65ef9917398b4df176cc893bf5651491ceecf5f48a9e0da83151abf4cb7c4c4b1ca1855d7b9e878d4431623f47a2ed1e5f5f1c0a77198232f2d5e337d4d0c5465ecc9b9b63a28acf285b21208cc537b50e6ba56a5b27d0a653c7ebab202a38ea5c97eaf178afec8c72651db5a447e25fc4427709a5c6849fa30e1e40e5de88345cbc592e96167c151873a91e76a565d984947b02dfbc0d2c74971e7a9c83227235b13680dce58931a7a1d25f166bffe1b3a06e680528ce30a820418758e60fe6b2612df7a640b8bf923f4fd402d2777a046eb0e40127185a591360989b9f34709f856428a1c88176c61b61d7299589a650dd4f36afa3a458852402ed22c79f5dc04ed1b02fb53b6f1da2d0140bbdfd0f88f64a3aa7f400374be92803c1a7d797b53928ffe491d5c04a81825a98474ddac1cc6a746226b407841bf68f46310cc3423061a6bab093ffcb18a14678be198d9949a8b5ee11980603a7e962947d49a55bcbd696e84dbc08e8d2c99d7eba98f629904aaef8a8ca80d4ceaf486f1929c610e8d52991cbbd90300363fe3d3091c31385457335c033df2d2b03c059b84aca1094121ac4da57e95504cd265f06219ca0709a51721c7b6b011d9268f758612d539bc4c525fe2ec5dab674612f3e63ef6738febd10a24f35cf0701549157b9324000154ae8f63489ecfd85c423c88b24e57e0f8c1285943b256883d77e9f149d07798d08940a625ec385214144c0af94a64ff21ac2176d978646699f5dbfd11d8be118e9e51af5ef4289d3733171acbc386c5bd965d8c0f662baa0c1f9f13dbbd6cc466e66bd30ad0f9c8f0eaeff1a4261900f06df46fc2bcc54a72b0d9a4ed9ee48ce4fbb11e7513afddffddfacb4c9b1bdb8158e7862008895e005004081078a215bc0d1874ac10061f577fb5bf14f5d384144ab5bfa57b770280e969c9116b6abe8ee9ec15b93144e6a9697bdcb5201b687eafd4a4911b278c45e8dcc5a18d059dbc4438f7e03bcc5bba20471b1bb5232fd6fd57ff78fd63f37f61ebfdc7b6e6e03f3fd025188c96045fa22bcac81e006a406da0148250bf29b18f6e5704e4784921002621d7e31b9f4d7e78dc74277830db38f998fc277e14e5f2cd77aefacef2b0703b2770a13267e29206c6c91370bf3029802de5f7f0b8c94015332a7d129704191b89a133e6d17baac07b811600212d7463f0a1b40d713720aafdffd032cc185c0305b7f0c9547d00f1170b5371506000fe0cba5b10c8913fc3c78b05a78d87ee01fe09aa1af6ee15c7861d1ed7d8330ab44b894beac3e68519629dee93bd421d8efe1075e9d678787f490df31e883ffb62c60414a9d8f81676e2433db2fc33cb81d2e4599f23e4988269d5df284f26b693324919ddd4bcf10393d542754294e1018aa174ef46a06a1151dfc41270a2376a68e6e7602af8c4c40d82c6a48fc13d92fbc72ade93d2e9d54e7812a7a87d73a3d089e35ca2ab08643d50d0b2025070cc85b7f5b0b4beed0ddf57ff8a2c9ac0e13e750a8889ecf0b57d563a3ef346b1f88702273106334f63d581e7992c27746881974a5e10e3d107c1dd66c5e418e744c0967acdebf9a653730c792f4a6fe0fb91217fe387ac40f051fbfdadcf15a2127df8059fd372968a08f5c5d618407c121b5d541aa9b14749a4861e3185753b33275d7e0a40770911b5865e412e52dbda363dbb06accee5d431e0ad97462c8a79a68cee2b6c2ac44d5cdbec543cab792423a44102be2101c2bf8a3c9c61c5436f1e90694a58cac21c4e7eebd3ce87d6099b1e885b763e864f3884a0c9599cc755f84e65d37b5a5335b4934e10e5438371744913733f907fcfee08620cd7bcffae0ed8d75cea1a62084a4b9e3a9196d34e2a9d23b43665faa726a3200cde4217ac1b00d6e38713e88788d6d7f6cd356cb3fbf4c8faa97299cdd9195ca6d97db79b698a00ce7524df6e00e0199f46c2268671f16ba3b815a167cc61580e61e526748acce429a8a5047462c00677a3487693d5258257d76f7e06b4460fb1a113da26072586ce10d068e68ee7fcb07bd170b53d45bd951b1519993371c54c9883bda14ef3580c0395421ac2fb65b070b8330f71eeb83da3ff6a9af5e3ef2bc843f94aefef741aab152aa450d5ce639ee1095ceadc30b82c3ef35d820410cc93e5dc25e0e7a31dd4251df7831f8d8303e6c33a780f62ad95034e6939b9d956a726419d4396aa1ce65bc67d3bf1d9139a2dea8ce4bf930f77563e6846254e436987cc2e61a3f5642c31b49e9ce93526369a2ae376e7902018499fb65dec44f432274114dc858d560788e18485e6cd0f68a902c2c7689b150d139a7810a860cc081e7d4253cdf9d83b5918b04b70a4ab000f0326b312bdfdc74a6bcf53a46d5a4e339e9e4e4a9ae884e81956a34026483298a1cba449faaab1917d58d836b0635d101cf11240accec98ef954e1da28a15f9f3588c5ce10506fc5ac589230f4ba0686c71502e4b59a905ccea1befbbfa34451cc2dea3fed9c4cbb49853cdc426d0a4dd8b5cfadd45a4ab3241b37e80d6df44cbe36a31af18b26e45033b81b47c45c5f10b2238965a01b31a6c2dbf70843ac79270b4a985548c4c2277b84b040d935de380063d2ca9d3f446c2fb4dcc8ad9858eb7079b9121e59426b67c36cad83d4fbc2da98b23c99f6c9f02ac9baa26c99828277ddc7b78d0f1964472aeea10966bfa5c0f4c3bda7a41e31c5d9c26722750f454db6be4119c8912ccbf2cd61e2e673929ae8e1d45f54ff2bbb9a99ad5adfbbcdc79a95fbde31c1783fe54ccc2afaf7cf996593899e6c5b6b47b5d23974e81e78d5d1132281a2f514e6bfaccb81bfe7d07b4445dac1576fefed9d86f797f989cf31753d945929979b48bc08bfb543ab27db90b60249d2849392670fc83ab188ca16e0a9a6400c2357ef3a6e958d9c213e06ec009c858995cc19bf239bd53be759d3149df57f48d64faeddb6d45316ae30f86ac9135d7c6536ada1cfb28e302792bc62e4bb330221705404f50d1329651ec80c844c5a1dbfbb0b8f33c056e33e3e02123a9f809e655a4c265688aeeec7dc28700f56962d6ac7e14a98ed6899f0a1a30bd0067bd9a024b6d5269ab912a584ad3066993bb1482d1faab8aa6dcd02b0f7a9cd53a1079194be21e87340a94053aa40e3bf57a56b180a2b6cc8a9b80b666bd6a58a93bd986a00ca7f465d296581a66dd42546d55302cb5c307b44d6b3479c278869ea6bbafdbbe0ca3cbae71077ad477cc99d9b293bd4a77ab75103bb39ae64546e066c2912eabac1d16ebc13dd8a63e62b1fdec5ec4e2eeb06329930999ca9cb08dfab0be972dcdb085fe0c6e5a990dc6a040e9ed714022539a86784cbcdeb0e37f81275cbabc40f13aadee657d95e2159b101a1ec14f78099c01463d9163a0be57d2868b982f8630433bc615ae8c8fdad188fc6c2228010483f5c37d4ef851783063d1a5dc4da6b84130a72ba56f2feafaf8f04da7987003217aabd7497a697d84bd300b3774035266b4c79a81e481ca9f9cc3cdc4879b7d83a77c9f9e976ead3e3f0c0b7c8595a6ead8db032bc8968abd6c0658be3fe62e46a8c06d3fefe6fca8d2d78ae7cd4fc8019e0d0573960eb8f6bf68be13ecfe4ac1e0339889ee81b4f3779a583d4e042f3756748b3f5ee1e84a50e35f73465b35bb6f0b312a710a9aae2a2f7687b10d52a1017bccadc25c67dfe86077885a0609e0ac6325d3131e29a7e7df2397ef4f1ff13bba8d075e960d6c2b3685da2d79d8117148dce0eaaeaf5e2378d06f7c6c70a1b02e3addfa372ab4b95c5a231e6ef91a8c5a5c92ad1feeb7fe8dc50eae082b45c78dff060c798514d098ed796270acd94c9beeb0435d5591fc51f98163b6ed805268327e573987319af1bde62df3bed1797d464bcafe6689f296d1dc48f7c688ea7cef0eb764a963ba78ccbead7f5c906e13397a235d4d248d919a00f5ad0359b314a0849a5d0628402dbfc874c5312238cd2f406d79547a8fc2bce22e85842f080541da7e42de7c2fb76b4b7078553212c3d5e99caaf803dff8b61a80c17e878d3fac220e9feca03579927540d22e8b753c7c71fb1a94a5a3538fb7650be01342301824c7275b6ca3e89440276780983e195da88b41641a201b2cd427e8a2b3a4c50798324644fb4d03a66ce06e2e2276476e66b9924667e60bd6e72b71f97d01e8c8ddfa14b3b16e81d6de41a96a0304402527a4e33d9b35bee977a646e9e4e9ebc9a54fdf1595ec04daf83e0ce1b00fbd3a570a3880af1b4faaa8ff391e5785b291efbc14020f7c1e3fd725f29945e3a7251ead18d1114a54f6e0390afa43c2bc2ad18c44924fe25d57febac86e8e3ae215663206eb2c63c2fdf95ecaf0f7c44786a1b32cc33e113f535ab4702070b115eb9d6a70924837ce1145ea20f67068cadfef1e050ddd60802393a6563dd7c30d8fe68ca2f8317c0de62e122c520ebf46d0f62054b8065807e986c8f5fb0568bf9a96d0a0fc2e83e26131d04e2957cec8ac013ac044e0700d5fdf711eb7a38f9519bd64a5cc313c66bf4583a21378c90679cc90352ac8632bcaef976962cf91f2ab7199600dabaf348dc4c65138747ca69be9f49381f829d84d13acf6cdfcbf0a62eb69f094750c392078e9735c58af496acc8d2781a3b0a068fd9b3f220aade1b4c891b1d3e12b32def25f49a533aca7febe735c1a30d5a13920657f57286b497ba0cd40df8f9c629ae99ab28add983a45e0073bca1740eac0801a8d2037577f2295406ba57b24e91fb03aefc6067340be964815cdc09d2be26944a2020392b1231dd01fda9e0e8ae7ecc8382f623fd6418411c03eebfa86c77b13a3db8e3303515fab0ccacfe0129446a89bb930a0012df8bb1c81402058c49d7f50e13ae00877bcbee9c3454b727fd3a9323ae18fd2d04a18c070a0440c271abc2348dd678754c362b3efd6df3df0c9cadc2d88a260eb8eb6af391fd914fb2ca70f1f51d766f1727b0b14a96888d7d3abe55c52cc74e215caa360a482e83669b546a0cee159cca59f86da1dad2e96684fab44b70be65afed8d7e63d5b02d1d0e3cd477878ebdad996b3e1ce27472c53a04199ad42df4f97bfd755f2e406040a35a855b422369dfc660259494076e0a6afc82f921e72098e5e12bd222329f8d56a3b9b1bdaf91bdb90e8021836c5fddcf7b6eaa2d859f908cc2d22e7426afe045e579925b5c7147d4c932e1851f639c8009cb0756a3ebf39ec068c90d1261521a6d53620c8aa847a11235ecec31ae8952de30ec170b981b167f851b9c4067893b50c3aeb5fde0d0d73512c8f29f32f3d91bfdbcdb50df335b9153a435c7950f4160955480fac2952615f9a451f9137aaeb9532015541d864221fd9b57ed6daefa11e3bd703f6bee38c4c8787d71b05909af06a5caddce366bcef6e98e4b5d4fdcc2f9278bab1412574f1bac20ed486a4d0033ba39d52edd85599438f0382186ac238fa42722dccac80b831ce79bd49132c80a9467d3bb4e5a4452d8d4765842ed98d758f1f803e8028cba3913c611ea1182e2deb2a654fb7dfe7940234ff4e677c77aa70de851f095fefda5038f5b37ff7228d9b394f34d2d4c4664ece3ab9f503187752a0a8e6bbf9270dad7bcf78cbcd80d24aa5f299e212e9b9cbc436b0bf5cb58c08fed18fb1969447ab37d6949d886d25e350c33a488013b7724c84c7180ae464a244a0e4b49c03502a271140a5a6a76a360a070ac5af583e2ca9dea76fa6b9a198011a18c11929bc81b6b825104f23eaf88783a9ef29e294aac5b7552e2c53c6ea0bc267abc40c9806d25315ad7527e9169bec13393c2d3b797a83aec88ee85e8b7f3794e71ee3b5e911e33502c278ef09a54deb96b0df9d9e992d19799600eae3570ad5ac491872dc30aca577f166c600b0ad2344be4827823e5203eda7349c064d73e477d4080825037f2e61abbda641dcd84bee0fbd34fa784b47f8432fcf6e6cca001dbe432f2d4abc8bbe8bb23794eee8b52000078943ae6f0e1179438892ad0f8f0af933bfe71504ae28df0ac115ea0909e8bd325de168951ade96d4a6766f500571673e85e66133e900a75e93b07d9de428ee3457cf6c6a34d8a094aa25813fba17a6acff0c091fdc65e593c1642087ca445081a7c29c333d819a677085d852623491ca2e8e221a2e9576c388bb00dbdfb705556da20acdd2d7ca264f70a846b869aa62d8d4abef995354a26542d9c8029cb877a5a97b494dd3d4ec925c8bc7d3c690eab318e59be55c1f4cf8e10e5a011a23328b64e02fb5b6df44d4fec32f2b522b6eb4a11ab8e190627574aace5a67265690d4329b0133c210f089d57c61dd6e482c9c45e07f76bde22c3910b2d20c1a81961320026a8ca2b569c87d3f161585275161d2881a95d4d35ded4c1a1480b89f4b42ed72373a618b04f41326bc906fe8026cc1701b9c743650adf0d08b4b0ce8d9c897f20fa94ac7c0caa7b09617dabd2e06bfc5b8ffd533f121b4d099b93b0c2d2aef87d96c2186698146d6cc3015f834bb1eacc0de3c47255230587416ef69611debbdcb8ce922ce79fc45eabce6b3839e03cd2c5a9ae7a17c476cfbb1f708072ad287b2cc79730dcdef65c1a82f16f962187171b25ac40911052a6d3473a9386f7536a3956e021a495b16d0ad870adf01279fbc4dab78e0b55fc889a5b7c2306a6af9360df9d5d1c78eaac2257177d02a0cb6035530b849dc1e8aa742be2b5081714398e78e94b6f1a3723c63b1dee9f563f6df224ec30563f5d3e381bf16ea6523b5b4005938419e298ea2257f68099b7140eddfecc0d1a150cfa9d48916293a8a0b2cc156d23847b83fd5b471350287754dd26189c7155a4ef0bb3530faae90d2a4e96657195bc4de0265148e5ed31fc894ac549aee29f51f0b66c004a7e18fc368a0521c2d5e6fcedd7d4d7b32991552be63f5466590f9bcce71fadb2848104193a0e216c416d63d181bfdfba85b48dce9f5ff54459e1e9df1cf6ae9b4ccfed06fbc55072df168b8c637cc6f2ecd154a14776538523c281fe4820940c816ca4093ce0b3aec0829ad5821629e709e97260d74375931a013981ade0dbdc0ae6f7e35bd5eb6a7f7e9eed1ef7a7b807f0c62b4e87f1c11503520e812e54a3000fc4d8a0824ebe0885076e1fad1b03056515dee9031d384787b7b2b7f73a6ba7313888590a33e83fca4ce481be0092e7bf2d666983e6a67483fc3046535d1dae456712887416abf62709d68ed7035faa4c19b011564b54e5b6eabe9125693860b96fdb993d5d51b18f9912de755869f2b83c60d674f6bcab28fe5e16557d721447c1e638686620d78f8b0cb0b500666248c52ee0949b0ec8a261202afc47745aed1f7c9da46452ee3df135aef7cd09c7bf7f9aecb42f691fd3c0d6fc4ba565af34bc3212067871656688c7e247cd38514cac69c1cad623ca62b4d9791eeb211d004bb76ce1ea66172c0459fc8ffa0c66d051c206e0e6bd64d9b18de3db1979ffcbaa4cef5c9bf7e0f4fc9a248dd87b15624a33b0def7cdde4814d0f877c196115679be13f83293e0411753bde2787ba75cbb013ed07fc9ec92c09bd318c449130f27613584d588e2b251242c47f83efcf584a28056987807c80bb7d642364124d2d5aefb83d35663a4904020e5334d653fee9f6577ba7f0aa36d59db8937e6f18c68d7e1e706072ea8d7922dde99e2a39433ad5012126a43950bda260133f33cb69dd09066d6342b5d4d868c2ef4c9bf33ddc86f1d480e5c4686cbc6f9fe0993cd152b8d5229f4be1818c0e9c139d8272d2b63437e6d59152ea978ebfd995e1926c4926abf88cd7c7478c89a05700cffbe6d38fc1ba5fa503fdc7dea7c399ca450e953a650f84d6a6d9cf0c49d6f8c8b1981b2cacf8eda2a54581a8f31a31b840b586ba3d1e2701f64f9c59061434261c8f85dc539eb0014244bb9befea6f1ce4b1c953d06b6cee6bbb596f456da287c422ead451b0945e441fef02e805fd99f3d06ceb9d867711a11f541fbb0e6f8657e8c86b9bdfd646ed2f9491dd42d99ea5e6d357ecf291146d7af9e6cf04f5687ff580f90d0601583197595736661b9ba84fefc3ad4c8a3d9a81e0691ffad4056ba31ef5b8813e27065bc9d03899339ce234638a6dc5913e9e1fd393e233358cf5645088608077fa2dd69bd07430c3bfd0e2075ef301f6d80bb7b157e6270f7a6eb7835c564f0fdcb7d4819440346605e2df9a70eecbf524e92f1f865ac9b269b680c5889b5316306a1331109e7f88ff25c70ad018fff4acab30f314e0f0f73d75bcbf0f1f2b888ace60144f07cd8510710fdea8f1b49bc678879215002c2a7d1afd7002eb22f36d299390c6cc869bdb311fc80fcbb46b25bc00b01c013ec10cac748c19a90ff5ec4a950285c69263a6e754e016743bf2cf4d03a4a3410e44b7bbd84ece873939e77b64545d91f66c8304f926083a1fc5b1da731ed251a7f6326a099ad2f10a134063660cf84d70cc8bee621f39ad0041a3e45cf6415f51163a93073fe65e3819672f3fe0a8c12d332ff6e5eaa18944c30c72d58d0c0ed0d20cb04e9946ea9ac5108aa580e4d0066d8b0ef7d5f2b4fe45f969206c4e07a6b5dd099a3575450aeb0f412dabc5f6ca20259a360416ddd25221bb8c2d880dc7282c1eb3ba855106b37e9da6c76ca9e491648a997eec2db63ef6891517c71037c4b55fad7ef1aa0b18a250e90a16c22f83d666477505e0fd9b2b327756baa16ce96424534411212ef52d3781e7a30fc427bc4232fd1587d79fd50dbe707885641a5fffd16c93aa363c1aeb90a86aae83a30e77a7552890f9d0a39038b538b880fe7990156f6230852ab62a26996f5e538d8dc0f046b55220ebb27e96c37e5ac6d65cab78cd9ec5a7465f61c7bea6e72e83a2640eaa7ca2782cda19ea09c8e42382b7b208a7ffa23aadd447439fa584e0cf16f6a49303a8ab441dfb54e796bf6cc619d1d2289a3db1ec0c5dec4289a8c2320aa5ed810c10d571a41234e710f7da31a84764c94d62c1fa857b1df201726f81097650b7f6c57490d2828cb84b417b495919407ecf6381cdff2d63112227164a607c478702733db18ad47ef05a1dc1d40e960ba4e9a3d9ed09faae05e7f16c890b7a3502d9dca4cc57a396b6f9350d643caa627c8d05537505f20730ba89ff676b321583f5e7a6cc48187987858c0c7b147a91e2dcedddc9498d31067fba44d9c3da27ed51f6f1b4efe6f1066e8037c76498fc1832219cb2bb733451e07d69be1cfc0668d333c6d50e763f4bfe2ee2e8edf695442353ad310c9ace216a23b3cfeabed40811f64f14f6ccc0dfb2cae567d1a9d9e549848589be4a6545699f5d4b67e28db3eeaf961e05188b8e686b9cfc9585e7dffdb5cb87b53b5d5a9a24ad849add2627a11c797bd291878111927ee7901baf3231812387955472f1281eb7ddc37b4370598d6923bf0501c96dcce4b67bb01a1c651d52037be4e5eee6cd0921077ce58d358a5b3012cf2c909b6cd9db2bef4da48b5e8c7c2796f8d4c86fbee6377c7f65750d24b5dd1e0bc39d39e5c5f0baeacbd8d055c7db671df5f784ce9962fb3c3602d9584c12efb4083d5dd13d81e2c4c7f9a368c9a1cc03508c5de5cc1852597059d8b2a9d3ac36e72f2db8f9e69f12c24192c7b4c1b46ac6167af99f5df614f5c3d145596607ebfbedf7a77325f02c2bb4deb5b491024d88638a21c1b8cda528ee2131e60bb43312fb340f92178d97f05237a152b6fb28cab7c76595af51f598881f14c05fea7d63e8993be830a248d4354c895b133d466bf83bf1134cfa0f3ad6edf9bb9997fd98b76c3894c672f909d03b077cdb9f8f456260ba312516d5a03dc47794178c12682b59700522fcad2c3fb9db14a121488188e3d290523d84c4d4d019c358924d88a7a2ead134f654d3519b46549f3e2514cf79a2e290a5e26a047c86d278d620c06d47552dab0a30509a9cc8962d840372a7ac4fc94a59282eaf4ec8d68b8a927e5922010938d3a71c0bfe893f1f2d8de3b0a445fd88a6806dab1f9669e93cc55abe0644b6524b51bc9e39ee58a30166af4d5ab4af2819e26607343c550b1dc429f0ddc9dfb5a888e31acd2da9ca6399fad48fa96b11740e0c35d5fd24b12b74db80324b8c90fcfc344e5c0be325d6c723a5c651f16b93c9464bc73580445b399726284b0d3da369900550cbe480d6b8029b4df6da3b8dd4ea4276549d5da301e7966c78796ee94bd9bdc8bd7a3329480a3de35288e4c447294f4a540e4e6c3a1086dbcd6180fbca22782fad1e72bc5e505e8efb14b1834f2ae41a9bae1fc7a2473f3c33c1c1fd203a0f8e7e8a0fce889bed43e8409069960b07493141a6a50619555f37e7441536913ef346c8ec1f368840a726a5e9bfa47ea45f4e68859385cecae8dbd8666aa5fb9017ae971fd6ab46518b951a746a8c562ab95b3dff5682e5746df3c5625b00043a57aa9e418d1f5b291dd8b2953955646c44ffc4ce4fc42d1d125ea0acaa7487ff9804369aead8af80a75a550c3ad206e6e0da7496514e7db8eb1b96e2571f16c91d4d9e075389074b20f08069cba3278a0df2ff4322f1f65235a5d5674ae37a751082a79be9a50457e30d6710cf67f2d705ed035565e221142fc0d1d36a1e63aea08db61582157c3dc1df2161525f9d5525040c7fd813093597fe1b672b5d29e0482f8e5963f9e4cf6ad0dde2f2068d4340f07c2ba13380b7e90a18c3471f31d8d20cf45b34ee625fb094a52ca2f851a082ee6d0f11a620a665cf719a77baa8fa13da9eccac70c3f97bcc5838bd14208b84eb5a0a0c94432a4f23a320132ae786710033dfc449f7ebe0df3a3986bef8c40d806a11a996ce7374985b752304d294bba59efd8295c88fa74d381d6ec031bbc941442c05607ac596aca74000ed11784b075ad2526c40c019cbd817554e1193df78156e95f4755beb1018ad25024d81efd4b08a7172ccb1cd1cdc03e295024ce8ae0e42fab7d31a43c4f30f146c41cf1e6b9e708355c69a70a8f9de28c0741a8b1e26ef749d212501769959b1298b757ba6b5016d945357cc08170afebc1ffcc8888dd377c0e605174f438cbaacc7c3e3196887c4b4a122f0183c2a04255240712c8e1924a229cb8b488c0525e97723680cea4eed7f69974e0d7f7c333f74b80873d5f0cac16e2f99b4c8e9d092b1270bf3e278390cd033b4d61a825bc680dc76c816a3d8fe63207cc21228eb48ae400efc532207b233f9138622bd59dbb703c39fe435eafacc01fdd1548a8b7068bc003f2464e696e6bdde0aeb169a1233d3bd8d0908ab2e2c650acc06c1f4ea92933cf3b4cc1d94374e90f6b842552241c31b731f29a2dda964f7d3bb2ac077c003dda538925b8e1b94c5ea85c3a6e3924aaecc1a3a54403aa341b5300469e31196d25cfa4f0ad48ac4f355a3a0a8857cfc59020e1d963876b95fa5ca37a10c893e208d4157743d20781982041ffc35d978dcb060bf9210cb9757422f0d2f0a2882b145b4e2014f8407d5ecca8c55749abe7afb814a89192972ca35b5403b576a6ff19e4131dd4cec99f0ea18956460fdacc98c89c7894acdc46956c1fe94c605575f8f2b4a0a9cc064aaecea61cc39e0ca0fe029329e0690e53e3afde9f4844c4d91e92460f0bdc141b2b8a0f61abb482de38720d8ee772697cb6b3f78d90b36fa737f622ea702d96dbb39e7043b42a8a74bba3d47c36db5da76713ff2ee06704dbf4c50f188d8e65acf519e9c2c80804299af74e260c3da5db2eedebe60785e740abe5efca55f7de86276b63f453b436191a0339040b9eb29265b03ae8c61132bc0e7fdb7fae4ae53182defc73060102a71490e56bb7d44fa6a985ab0a6a44b3ceb664dcc24b103b4dc345432e856d959f99f738e1a0eb070cd20a990580a81563d3a350420d18b81c75ac3d6ab95e8024fe87cc5c4407358596bf4b4024221533c8d4177b9f3def0cbe0e7403eeb043195965693a0f438cb66bf959728e6bc264afd388d5d0d2aa0c56d5f36ea74116abd3804514da38f0c00d122d88981da73871ef5ede8020a25ba3036ba2bfd1ce2a5915d9a43dc0d3ad8b32385ddbbb99008b3cd3ab085a7663a3687c6032b07fb504ee73c932bb1a36d0eb3780a0a36d418b2bbb6ab5a86a9c6558894686f2113713ed3c230ee4997812d4f170f6c4acc3b1499dddeb4e5d8142860199e4b3e32cefbce4f7becaf7cade82c7b86cd6eafef8f009d51d430fd2a539d0173017b3e73fa05c65c1a4eb5591dc5b2d70739daa8e340e689bfdb768003b279d7f650a01f7bf12d835335d0847f2111478727711e9775535c96f3d53f160b6fcc761eca0da2a808b6d7eacf8f2a0c1e03b1595c69ff765168a1de134bb1aae5bad7c9af727fa38dc2fc83961e07d606ba7729fe55c051315684ff66ddf95db56775a71644db6425510411aeef184937db547653ad10fd264ca716c267405ad18a06f22f95200458a2c16fd5617d355ae99ce515f1897c20ed95395d02b5036ad422b65967d2520126dbcdf0b95850962dfa85378a06b1985672b745b8b529b6203835a044dbbf99ea0f5dd3bebed37836623503c05326ee5ca6f56819bd0ce6f7d72131d9313f31ef2cdf16be57c67c98f6d3839ed9a970a65e11a5fe278a720d296a2d540824ad57d1d4c00789c46517d5fd56b028c7f9cf814820417f2933f46b910f4b19fa1ff6593495c8cd94e1a6bdc430595550f14e1b320301a97d527d1f75417e461771143fd821abbc3f25bfc72eea9d39141337fa49284b231069b8616cc4fff6039f71d675cffc6d32132c045c9ef292c20c06e0091bb97b06bbefea0f390a8c78745755d49d0aea41b6a4b7dc0a17dbd35cded62cfaf1bbc012487ad99747210e224b084c534ba728bef5f5608a2de72a56257e300c62c8b0f33ae0af1e3271597681824beb79756b404eafe4cefbfae96e7b210a5b7c0680f051de9eb757a3c5c55e82dfa6e1dedb32c8cc87ade5569e78f86782b8d385312e66353099f81ece0357376dd996881c222067b3d701340b5031edb189eb97e6674d309a825784d6acc4fb9d97993b88a68005a2b53671ffeef4cc0da3415002d14cf6e2f8edfb4c34044d822888762fe2ff8bebd911403b01044e3b6bf1ffe2caec04a14d000dd1ee55fcbf1835bb02682f80c06977159f1fb85e9ba40466592abfb462f8baaf91a36ed34cd9f906b8c0ad70803602720a19399bab085450a8c1b3381d28937e4f453601693fc27713299f9bbfc66494c5e79e98292aa6b257f882569e5db90441a7a506d5cfd082df89ff22a3ff9bbf866a1aab50cbf11d0687c93a36916383362427bdc3d0208646fbf41d3e143e82af8f26f2fd9c0ecc45da37707e3123828c0e39c602b01eddf52b35cc4df230d38724466aae8c6bb2272bd88b742d2920ace0bce298bded593eb2d28184ceb1f79cb319b22b6dcaa8ba0fda84ea0f263aae20f7dd9f338419a797ef952783738e9196c9c030159812a4d54cbcb33edff0d65a820dc3471c625b21e4ae8dac8782b8f8cebc3b7ab1fea4d5c54159d6feeb7b45772895542b7d6f92a596d05021768509f6054d1c6e0a981e2ad9baf7c2778f68efbf02ad84c857dade12a5f313d0c028ee3d457d14bb1a87724b6ed18ae4772f2506f206d90763ec180dce16d482e19b3f532f944d9ceb9a107aa480002e6167f2906ec11416e4c8c2fa954daa17ba6000947e86fc38cad0956460f190bb68888abe70efa475148ca57d39e70505dd002f2a9faf539cf681798f4cbd2cbba94b61690b83696c41b3de9d19d543be95f32c934a489297248afd63ee4d2bbaa04aa911ad49cf0bc4034d03303ee8dc96fced2234b0d8a6b5cbdba1e86bd46bfbc50624d193782ea2ce570bd24f03de849d167a67f64b4fd9a5a5af837613a1e03afdfc6f039dca83111bc30d94f370d2decd87b8a58a657296228a3cc0c0489122e9fc2cf3cdb72d6c336c74aa7907467d3e7cacb9555c29ff55d664a9b4f34eef84df9f5828130d97cf626f7967793101790fdd404cd64aa6e84f9f10cb1eb40d859610af058cfbdc43450b2c1c430f972c254b346033fef5145014fa0e4d23c2ad421b52f62dfc84b680de63954a9c0b5188495c0e8b76e2686f0edb4a48a4b486ad50eddfd6452d2e62ab3834909e455662857434137110d91e77dc754df182d71fde53d0dc5bed95f7e9e8d5f9fdca10fcdde7a46e8dc6da7bb44a730bd0667554c0cad2be5b43e1dd21435628e01a6e58b740e01d2c554dd0933f2c837cc8e994d59ac03552c8accf5463536f842620a15e0c395f4b6375e1cc0cdca252d32a95cbfd861089763fb0b409b925b4dce5acc6114ec35e7c9a3eaebf4404ca3d22d841eac10493626c0251d73889e969ca7e5e663bd56e30bcf57617875a0fa38f8a156f06ac0ca1321e0625cad2bea381af0f21a177c855206ea9dca1d50d41f90e56a6dfdac3f2d4f401442e7e05b308b406f36f1509d43e40d95a22973cecdc0372d331780d370d383a67de90254167d25d64ee84bcfb59ffc1718bcd51544a1979135c413ea436046da5262b5200c2f6c34e72667cfc10756c47e0fcb0a665d1ab544a83a4135f28557d338cbeccef63ab4f329d880ce4abea2cd3eadb97458fec96b2bd649b2450de342672010e9c49de52288b0795e818e449ee83324fbe5ff7a8f770dc1ff996fab3886833c70856040886e24e3564166c8869b33111082629ae96cdbd891d8d15dc02739835887033089e06cbf985b899d3087ccbbc21b7235b6b9d47f4af5cd4c9081b410875937c6bba8056791dd33f861c5855d8c31c6d1228f286626fe2b0c72a53b072339288489d40ca72b1da0460488f113fa72710a469940725e29824845898b66e1be2b551fa1b9e968bb8eb1ca7f59bc2461fe44544757abc974da5fa1575ad103d64931d2cd1b0c6115773b4eddb187da5a0e37743e1f9d7df759aa09bcd814340283e6fd4b3b5857644ac066b5d36ee6046bf781dc98d6935a276ba11ac17afd98b83c85e15ae8e3dd436b90fe802add69912b184ff99d7bcbb8398b8ef347287aa2d067c0c4070d45602a8b523da7461b30614858e1c9b519e8320fc0799f59da1fe01e5af93023ee704811f787c3d01a79bc3e97d604fc3180c26dd9321f05e06722bd1d9a5c73af6d4773e5901594160a99cc47f8c0810be6d002d3172488828700430d38cd63d90bdca7ff809af5453b40b712ba27d17a9865aa231a55891fca79763f64831643b82ff7d0e4b29d0882fcee125dc508ea272d553da2a49a1ec11976609c36338e6571e8489109b01135c37bade9be80ee798c101c2241d82a8618215c069d4e96bb2823135821e1010f83a99fe6b5c9164780c958ca8a212e81868cae164e3b73bb9a6d4f13d0805fe5b66147b6cd68238fc7e0aadf4fbf7d9116cf16e071f6e4bacc8b9399f32506c17f6e204448ea862389a832aee4825a0e0dac51f2c52d0dfedd64b03dfec829c3e266470edc71b30c701373491558bb80f812138b5a52857541d599b4816f5833af62031f6ed147fc06f150a2103d03348487e5bbd384e546098fc7d023c301e3982f21c6fee034772a028a60be9d2bcf482026fe23c2f83a47f3ab2b7978c7d5b803c3378db611d8d11a4a6a8b1a94d64380ead065e4de22c6e48858ceaaba1e3fff0abf254b260eeb0a0622f5c56c8042bedff0075416f0f42d80516b1ab794b2bb238422bc1d926e77faa3ba4f339228f1e2b0744bd899b9c6267b40cb7635074a899b0b317fa1169c857653af8f137f162beabbad179173691b7ff77548cdd357576fa9d08efc9a41353316292becc80679542a53667e71db0cdbfb3f85f0a196df1f57c7371836e787b407f153c06300f989d8224ff263bd0af2aaee1eb79f3b19cf4621197f453a7511f4ee4567b05646d1354ed5ac3d6206053a1c902b84ecfb63cd3c6198a1fb273eb204b2924794e114bfec92827736d6e5f5ddc723ed61b01c3360f4af8947532a9ed50777a056d8628f3021df788e4755dad92dc4e8fbb65f34df68afc66d352099cb3f68fab1a6bf12a5c454d0fd7b9441e591f58e504007092d61567360616dd9c46f71f5a3f4d64940582cecbc33a1aeefd379b5cb18ba8b88f096b8d14a21ed5aac975796a36010a5f1ff24cc40c2bb9f18c68b50dcb76d250bc60e34cf1ebc912caafd58f45ecf05a94172db95f7a96d48c1b5ecc5a6ae54d23624022866e0af806a9bf19e04e3ffc1e8688ee1bfbab6a753dcd445772ce950962f611e66578edeac95477595983418e963b520f249cf6ec511f21015bfc80918c87ddf916832756811d7eb2ea57554c00fc243362e57086493a015a5ee5566801f3aac301f369fbbd711d58423b003c45105ddaef9013871ff518525b723753ad149ab907fa87cf42db15b1020db51f9246a9ad650a5d326c43e03ffcf1209fbe9657d0c4ea453a1f6855d1beb3800edc9b291a251a157b20aac0ce44b0aba2872d838e17f0d3461081e015a920bcf2a351cd0bdc25844e3e233267e988ebe84ab83f53b249c12d9305b11ed6792a0abf8b9e36d87f6e131ab48f9f60da72802ea935a681d514fd21ec0527613862f4ed9db647c7cae9fab20ce00cdc71fffab300bd71727b8c48ee29e6b234801d5731a4990500bb0927bc07c202207f103051f51082166cca1623100a3e1802fb0dba2114ab466339fb24a6a1ab1ea80d053325cc275dedf0a6368bee5466c030680ac594174edc5df0991e6e5889ff1662ef86cbb2ab32d3d67e07f84a43aabe3247882e69391a0d3644621d884ca131e4b173fdf441bafc93fe5e9cc89b46512492c0a1ee4aacae30bd9e3b22cb11fc0de56a6a88b2c8cbddda97eec250bbe06eeeb96750f0e832c680155c91900aed41cf941adbb43463ebac0daf8e6da605e29a6374d97073aa1af34e614e8f61b5ea0bf53753dcd590de09fa98a746db77a84ac041c25ed0515113e4795600e8a76927f50aa5a503527ff8d5af145a1795a2a16f964fc47c49ead3364feb4bcf810301c83069f4fca6ca04a12eaa28c4b88f610923029c2c3081bcfa5d7c998a85e6a000a5a3046303a67d83a0ae83903cb1712102295ed0ae00324cde63be062ed18818a130becc19873937d7aeabbdb01df0dfc710352c1aa64748487e14a68c95086c22f37ef35244a3b257ccd2af951e6b7bee56a44f2ba10c44f218b610834f0d9e55a35ec07210bc295a49dee6b36501299e6401339b6f53089f78f453d91a4e0f0acb5a247dc4a3e5513f92d53e911dc53762980c0b868aabe9ea93e992e2990df5dc1ebe3e1230ca19447e5a77a2b707b328ea204520601d46cd6a8194c4f99374a795b9f02c5eb0ec8d8423868aa078c6d34cd2c5585937311e4ccc9278a59e874dee7b52d1e3ee5decd5d195b5a02f245812b930abc204c4de37467c975efd0d18369f92993f62a5659f3a724bd96ed052da9ea0997834f8ad89bd3cfe1406e80b70142406dcea6644b2dcc567c889799ba9b98280d5507192daf10f4351b57c80f3c785dce9019d2a7ee13b5da60fad62928d78cdc863906670c61e81869a7828df267f8f48a611e1cd8548d6421cb4dc8c39e0fcfd6a6f368aa42b31bf43228407dd6d81b14a5a58122eead3108abb04800828b0681e13f70af8cd0b6664b5bc92c78465cbaccbb33d6b4a20a22a089141d0437d42c7e9b2b8dbc8a149b3e328ff5b90a921a4455f8ae74db912324665d0f52e1ac0338d1823461917cbd4f0300b7fda9ca2ca013b0cc393a4157c811eb3e710041f845cbd3cec32a1ea5dc556b6b7ac18c46832999553b7c3c155681136482bb3729e7a4059a71c2d89edc953b61e951db9e40ca4c7976ebebbc9c3bd09e69b7544ceed8c90efb236d0ccb843d65593ab5c60626f13eeb28eed4d16a7cd34c6f453a333e71e1e921160ca28ece5bb4a09018ce7634e332e06fa11847815cc0d5aff0e23a569bda6c1a41dd0a77f025a8db4f9c4b3dd5a003f6bac6a02814abd5bae3a3a24e2a08ceaac5105e86f805790d6a15842adbb212c20aa1902245f04d09fa69a693a07a470151c4309e1dd1e394c2da7416c9f119b148e9b0a25c58942d47f30aa6eb6dd3e2b9a0a256a741b265f49a93d9d8188a0af0098f1c3939f6faccdbe21a2d2103888eb268c485a0c53807d7b01b54664e8c0eec2e362e1fdd454bf07ca54df291a86f6c7826482e89ea9df453c847c9d68ec883abb968d0bdd573e62e2774a3d1c312e7bd81be69df08512a40353ab0dc2be20849deefc9bffc43b516303d1e3eb07e53b76c866937b1635cef8eeec7c2190c428717d10411520254c4492c9b95b7fc014de50124cefb18a0454ab28ee22591bf0404a0ccf6f7994f4b4eaf94521d1f36bff338286bf437630afb46b46506add6cedd8f22cfa9a1196aa71a21c2296ffe802c28020a14886571442e07c8d401e95ec073e9432ccf702cf95cfe160bd298d45b21489b0bfca3e7233c5098a78aa811dfb4c8b5d90cf4ff019d39c110af7f13d6ae6a3bfa07d84aa5b3598b8ff8caa1e0753c72f96b0aa0939315a07af83cce2e93fb2d520137242081a2183d416a496117cd2176532097fba3249f753fe8990a2e2284789df44e8ff2a46400439713d3bfe6ce6bbb6005cdd31c8d9072622c7075d2bc28d5fb74e0862a2d151372e2fe0e7d48ce16a627d612b533c96c650f71c0e8d8299f958578d00024ca61bfa9fb250f4c5b4b5bfc4e9076ec93d2963b6c5a5014c538153d2635e260c7f1eade6ffdc1f2cd7df0f07c6b701e51443f293896e30ccb0ac7a85347c7d260c4b87ef743229b18f58f63a3bae1c7c65a2d079d2bbc3e454a3ec586e4604333d38830aad333d11926704c4adf319a3666d9a90809a0f92a09e7ebcbf84700f18b502282ca4f6871de178135c08fea196c86df82a17f34e0fe47e68afc4c4776176ece7f21bdaaf3545433663a8753968bd3fba64b8be94637fcd2ae4f290ebdc2d17d109d604b2bdab01834835508011dc7b2bd106bb33791e68d8cfc48f676fac3cdf83cee42f8bdfe7d784e32017c568ef0428204644836e9565d39d165979b80df14ea60d8284287470bb5bbb5e1af786aa72de35b6ccb15ba55a7e797ccff4c9ba815131cd369afac3e21649b7e5e6a72bbcea5b4e0220beb2b74851e96b2c608c2d1fbd73c24784e9a50c32606b1409c2c390100b4952bf4d3d1122b1926fcd575bb40d19e3018b0ff9f2862876a63f66f2ffc1b21cf21ebd81c3ba522d4e2e60557d14d43b72d56e693c34e0475930682d3a25483c18d498660d3a318639d900f7f2b3fe0b1c689d311cbc1129926140eff96caef320f9603a4792cd889e937d53d98287d3b792e02120f0a521a39bb10f363dbeecc10245762d09e6b291414c41ca2a28267c926eb4170fbcc6501b997f73da46ed1488066a9d8699214171c218f5f321e56617d5d6c3fad95e1adf38f4642a4e2dd26917c151da70f2b973c9c0a565a6647e4b256cba1f0926c642d58deaab6de04585c8f0afff6d68648b7007423708d4659f92c4158ef7929bfb5a94e6fd071190724078a36f0c93626fbad3440350016c2103ca0eee6b5c3010c29a0e934f845ff247fb34c2419d0493e5d35fa977a7a8950cca8c10f6b79d116e0793d52e66de0dc09c733c86a043414e71a8e40b080b0895f898e56213c1e5c64146f44b1150b1ec951b69947b9da0b677b72da59452a62403d5067a06b50638726ec020ce971470beb76b5ceef3d98e4ed3fa7187602479cae66c292b4d458431bfa53ac67c175ab0fcf83ba4cbf57f6521be73bedce987523121d344d5db7630bc4fef75e56dfba694d68ae58e9493e37e729da5e300cfc8c58b9f8505cb0f3bb9d90fe9b6b97254a9b65aadb59dedcccd39bbae7bda8151ee7496828bf10720dd0be71e63043ff08df0d576942b071d06b599c7dcc85f2c1616a52c65b5ae579e1163d7ff8b461d722787dcf186b16ea8b59407b7adfd2203f0039aa428c3bb254bf9ddccd2f64ccb6ae5e020316bcbb10b9a590ef1cf86d87ae0d0844103264ba76fb1b08eeb059a1a36344419e7d8054d904db2e2e7c437beff15efeef636c14bca472552f414658422ce97325e206ab596524aabad60cb5d33c6486304c12887b494f2257dd75339bb695cf4a3486b52ca61d7b12c25a512c259b95b0b00d1690aae292c3e8782739107472f4fa0e4f935e0ce713e71579054441439f06134a5869f212d3738e2ca10443c31620a9a96a926a808ca324490140b40e2440a0e2f1c9529c20a97a8323228cd70c5892f2070a24688061ba08040ede067c8500c48645800a28b0e5125003132824c11245090aa3061a68b17213b7421e2030042a2f890e485a11b949ce102454406420c251982411415482246c90716cc1069a902e6d005074a31177cd02c2005959911172a3b80228420c28091428391168e4095e002133ad001c8290922a68456b288a1819318b8808314ccf002237e3c99628a93276ea0545b4345862485841338e0c109293f14914216a50a0a5148b144091f41bc30614053ad0734412839a2064d408046868525988832850b6678541173831cccacd0438c4a6c028306c8133d44a1a1a2542607471481312265c604076c60c5488822964839429788371063830f1a4089590ac24a1164c64829cdbc40997262614a124a4a51b5182811cbcc9045b6e5062132513ca10049d40c420c4141c9ac38bd80690726279890e20b0a2cfc00d4030c8680a6501dfcc8209b92c40c518a043d419358410d2fa081082484500208892f3f5e18b2841227718a25961012460759820ca165967852640c1050d480882ad4c9024a1c41449118befca0c60a174ae79c93ba3b9706432a73e9d2fb579ca1f2dbe97c9781bbcfe9ad16c62f7b2865791153e2ec38b2a46c779fff64525a6bad54c6972bbc1ebb5e0c3dd679d7bb741efb4f4ae78b5a1ba3a41694534e39e594524a1dc80e536eca727c56508ebfe20cf6a13249251217759a703fc7e410e77876a69ced63567db4e1f7ed0b288c43820d0af2718e39e27cc1e82e5b23cb775814c1aae250de43c780bcac9df6bbe7451478daa7b2330a4020de64100ab87b5414d97d4bd499ec7ffdf6445a8c02935539768952ca612b2ed12a8ed4d4d4a3c33de03a220c29387cdd8bb1872fd586807bef9dceb35d0ee888504425221243a2344d456963e9b944ee3d7cc7bf63bee35fc30431c60b91060a220c7f87bad9ee803ba4e0302afd2bfdcbeef1fe228d7e58f380edeaf7ffe003162c54fda101b6cc7d131cb6921869d0294eb25359e7ac1d61f4d4a11df175538eef4c39c6974dcee4548b823261d26aefbc577adf6ae316efa6e28abad94d15d779abb98a9db7b289df7dab958d11931c1f7fa157c9f157cc584c162ca4370b2f72577ca9a829a92807f2189412d2172524a6255a13f59226eaa166d2b2f8f4149da2a04c086780202322bdda5dca39699db54aefda2ee59c94d6b6b6ebdb9b6aaa54d25b65efb6a9541cd779d353715de779ab55db34c6acf88537b6882e5c74d183d66cb5a4776bc54dd8e1e8cf8587a333f6607a705738236c0dc616b715f0028e7bbbb5be19e461dd73b106debef3a4f37698fbf9de080bc8db47ef86dda87b24a8beb3ddfe03faaae9415cc07cee73111730bf3f56c7985f5bdb837703bbd8d5c0889b335c98d102076cb96d5331ddc49b7b5dc02cccc23a2cdc29c8ed05370e389c19004c3931c618638cb17f534206196cbab503d2517d9ebe1f76b4e53b730b664dc1d4d6b72f840b97eee60cc7b9b7cb407a225819f15f393696d6dbcd22560d67cbaa49a39ca72c0677538ba3ee96df044b39e79cd3a58bc1361e8e9c8c57dc1b16372bf0cdcdcdcd0d0056fd39b941969116525a48a1534eb97a758dd26d83610bf22a871651ee479dccfdfc74f2bdad2bf3953b779ed0315a48c1dcec6e7cae45147c9feb7b5bca49659e60a8c28d32ca38dbe75cbabc1f6df8044ee81a3a1767aefbf05f295fa76b84d031e46a46a41ceae4b00519ef90f243e81a2b306c4999555bf03c41e7309af1d1c9f53b127205a34dd71e648d99deea916047b87fbb76ad200a17a4148cf3025367fa8c9b9db5609459a79c53fab4a6bb4b01743fc8c32e1885da17987e67e959dab33ea5b487bba82a888bedddf03b69b577db0237aacaa3c04f76f77cc5c7bbe28bee002fda58ebaad6d58af33ceff1dbd5aad6c7365cfdc9f5e38c58f54bcf86bb977a3754b5d6c761ac65cebd734eb57db2df7584a9ac73dc856bf1c365d9897cc8bf9806531c593f1cf9f4ab7c9ae7bba436a4e7481087d7f85c65a5c1b34a39c1c6921b29874dc30117756eb8609bbfc901eec9713f276ee558d517fe6495775dd775cf71bffafa9ed7adf8e879d95b617fb32a561379cf6dde0def7ae065f195c577dd01fffd64ca659b8d456541e9dcb60ee795f738afb66ddb545bac71e5578df7acc85901ea7c6d616c035657bdb9d6bf5d55a9eecd9b94f257fda954d6765bcbddeffbaa4d42b1822c6ac93129f625c7b0e498f403288711b0c111b33b53a4d14c1498d3cb1161482370d86a8138627ee1c8383d160af1d0e8a960f31c8867db38c775efd3eabad5cad65a7ffe5665d7bde76dce7174f5befa6eb502e90685fefd389bfb36dcf33ccffbea7d7d0facbffa2fecba2f6c1eddc77d3e5d56d1f7a24cfb2372575722f6b7f7b7df4fdeecb6fd562da573abdb56eb9c4f29b5f66bdd366bef476fdb6edd41ca39c4172c5fb06433d987a531999bdf4f96de0d557417a7923d2a781fc1ebdde8ae88ddd5b03b5ffeadf52dc7711c88d33d0adce3dc65ee71e6c0ee63d20a45f927cf2fbc218ff8a9e44f969f4f97b7b0816cbce182638ed9df9b220cef67e4f872577479f2554e91b8353ed444317300553bdff59a91bffbe5b0df7d2c77e447d980fd7a41152296a00a513650dfbe0af109248a34c560155c259964a2c4601116c586110082f870366c380fce08ed0e5e972e993849a1b2ff7caecbb982b9213814c000f2eb88484a0f2f58011305932f805bc66fcc97f3841c431640651f97813bdce55da3b3fc0e879f7fc1d0a7f539e0df24de61d3472b4f30f4715996e03bc111091f4de0fe50a7e7c29c36650ad797614e96b1a0a0e831a1eb424de4401ee431a1188ffb115cd409cad1ddb1b8ababf48cb654d45f9cc7659523a27c9fe03027c79e7d8f9cc90f8ee44cf648da2c3fe17eae141c438421dfc512389c46b38af384348669e43c3c3118491a13ef9946be0325cbea6edd5ab7d6dd767bd3080963a71cce2a597efd26943973972c0287cdc4284bff221be65a1e202286d880260895f88492325e8c88d1c1890e49cc5449e4b0aa4a92504a02885a93e08d888584d10a4159a6aad0020be2063062cc5009831483b5d2b480844408239c30020b5f6a7290a54ca246892c69617c9c8101cb942698a47d906317355e3252e5410696d152cece9dbf74b1040e710e5e6a35c862493fe2ed52699ed2d4c6c457bb94554a3915abc2bbbb5a334e524a7b99ec174ae9ddb054b1d6da4dc5a44b1530447965154a6215b2cc8a5245cdac8b9a223544128929a7a62e534a5da668d77699a2e5d865aa690153b3d035258be00e3a7615b1a9a8fe8ead26680acad4922e533050f343066535311759868d89524a7dced9ed419654c946e56cbdeb3583e689e04196208572178df21d7f67927d491e9a21f4aaae4ca7b2ff923b135b043571500eab51762a454535929f8bec2250bb811c464b4650bc4732293a02774553a857816dc6c30ceaeeeeee496b1e8edc190d918bec5d6b77cfbc95c46dd2422adaa84495a82e913227296b6d4555b07660edb031515aeb3c6381b27f90970d92fd6dcc1d20e55254488fc51492e62e8f051adcdbb66d47956ed71e49e954581ca68876dbb62d0709dabc5d9b83d49de136997753dd4db526da481d8131f59f52158a522abb0a45e9083757a8700539e8c2545fd7d42962cfabc96f7635c18e30e8db6ab30aa48f46d2ec0c0769f1945f6b9cb2a9e6af7121e5947236298de2a20ed72d72c47749c6a49452ca0e237dc9795c48190d5c744e873bc0d4920a22cf75170f175df4331069a490a36bccfbf4457082cf0e1ecee33dfd1e91867dfa1a883d2d9a3a5318fd97ec99301b217cd7583d7d30d288993e012204228cfe01220811469f93d1a956ef06f72a95e765ef6ef3af9cb3d5e179bbffa277a36b9c403e8feb9a9576ad494629b7b90a7ff26a66f9c5598788946220eed0ff9c63083b8dc938b8ece50a8624c831c2a8ef7d3c4ed8e12382cf84a9162a882efa1a883bd4823d220cfa33031106fd1c1d83be0b243c69129e2fbf3ba69ab5886a218584caf3de8b71abf57a659a8b2d389432974120ca1debaab48b5b521669acf2fc969a8f6f6bcea6c99df9527028739ee0d0caa254d66182ece11e0191460ad8d535eecf4f409cef509106fd6925cfff1f2297b046035a8f5b2da238eab0e80531c600bc34b83f1cc0c718110607869200d937309cd1223720013ee03880ecdfb5a7e14e60825e632fddbefb1254aaef54ddb340d57df7c32ee0cfb495637b1b6e6fbc9d6d789d2177e2ab627c2b820d1313903d0ea3df11c4f93c6fe04beec49751b897ecd954fe297c4d24772a8de36e6e707008408010c408b64cee8020c2a86f42c7a86fb384dc59c9803d87f3f078fbf73dcbdc9e08f62f98c35d27f080bbeaebb811667385155ba104f69f252521b121468e494880328b1c938e40ddccd9e412b48e66462d93b2472bef7057048f5c994153d2500b49601504f24303215ed6408511e24a1018054d903b1ec65a18956296924357941c461a941cc6261a7218a19ee4b0839c64a31cf69193313af85023668b520c60e117a1015119267258a209205810190c51910a2a238608d804c3b844c508161872a0840b4c82619ce2098a0e5ece20218201a61345c994181841e2a10ccc8c0b4d98d63c71449327b026d97f604113b444cb151f602fa6d64021c20a14331801ab629af040a5c9091242c07e8e78c872e64c8c8899302120a20652429608415501731bf4104418294c9078806a01521336d0acac51e303e63f2b8c4902854c0c102f453f32175e308426cc0ebcc800a624a985a71a707c118e28251d89251599ca02c831c90895a416a6fc398fef5ceeefe6f931b2a407a426215780008a40114a4b108972444bd391da91a516b018a1d2cd8c2c1531c6a34114334525880c952ac810310016285e6eb8e2c3123a98318273b6defec436f68b5d277d19a94f1b2a207fceea8df0198539ed3dc00a400c0006987644734c2a22bb6ead0d8014b8cb316908941cb2a0c05e8e49436210a1c864bd40ba0cc833c7242234214945cc241519736549448c86388184eb0c70885266ea4c1035c8d00408424fc4988cd4041d314b12c224370c38260919ca49428424090182e22267639f8b4cb129d622d49d01594269406cd02d01490304cb0d13a3190d035470e844ded330fbce243275b25d4e5abdeb77230c77aa5e6bc3288ad576a7a52725a75e627a9a2f3b9003cb9d18a0b55c189fac12acfa5e411c9e55bf52b1f2f470b4cb49c39b67b4db4af50311a97cbf5b0b5014c4a4b494e482a8ecdfb3956e7bf53040612d65837d27b245195fc1613f657bed7794f3d427617bae3d9c92e28cd05fb6ba6df7d65850da6e45525a72dabe91969cac754b8f64cf94b9cb7690dcb14fedd7af873742838dade0b08b8a7ab8cbba832ab8aba897441afd96c8797c932e9f47f55abb4511536d8f51514ac6a3870a1deb2059131847842de399bbecf6d466dcb5537301118c05abf7fe76bf02bd48eed8f7c02b77ee476f034472477555aa8d16fd18a3da6ecffac989a2cfe48efdf8f5b98f7ecf9ce7a9cd50d93337a063070756c1de40ced32fc1cefefc5eee58fae14eae00c87545ae71e73ef7dda7dffd17394618f7c51739fbf62b4ead39b3582cb602ccbecfb0d06c63525050b6a18f71811b659b0434834dfa31653d3b2d2cf4f62ee63c21f6201bbec8f6adfb10439682c1c6c0ce172dd933dfda67398f74a81d315c743a3fcfdaad6eb552eee57372be80f3bf3734ec5f7fbefcef2757ebbdea189be3b84da5eaee0671bc47a11f67af1f7bd6baad3fb93aa79ab72dae75510235bbbcf0946717254f79ce2ec9875376408e493e6ac89ccdfc38e7872d8ca71f81546047caf3bbe63cedf464c679a06c94d494f348300d06d7605711061bca5d7336d866fca87e7ffd3a3b16eff7aeb9cb81dc857cc981e4d744bf7df70a0e02278efd98fba9879c47d624d84eee9a6dc65df367c766ad286cc6e9bef00cdaf4a02097cfa019ce20b7d3ed743b6b4cd90649756dca72f76f2adb79f657ef369aae5107f9cefca51518be94baf95281f23a185e1a0ebbb6d201961fba37c55c74e448aee44cce5397380d6ca22f22e0e13c40ce7344c1f927f8f498d1af36bc66f382cd9d5d31e099e4c328bb6410763a1da69f43e7348aae98a5083e689036bf8a04499a77a305770e1d48ca9a51a660f87257aff141e4359799a1ace4aefe02030e3b2af73b5284d1ef020a1cba33851d5573266f1ab3a47bc8f5a2024518357c3bcc22ea2c695a387b93057b2fb7f7d5fbe64eabab542ad5b67df7f33995cd478fab36e0f6845eba9ad6bbc16d75e336f07a9b67adc4d8da291d091781d081e69473cab9e4660b8ed987b8edb7ef66877befb53589dfa737b3a8371f8b2f469ca9f79c7b1f95e12efade8dd716ec85afa7372b7a267b5860d7e40efd9b7be5ce6c56933853f8cbdd64c5b757825c010665fad16396d2bf4b70bcffdc5d82371b4498dab4561f622fb4e1ed9abb68d732c5b5d67e8af98b3e7d79c193722fbf856443444bba8842f1bece95fb0f3c2f43dbe7321772010ed7441a43b0142dbf0bc2a164b572a46d12e6738f633e07fee4eedf18d031acfcfa5127228aa9fce5b8258aa6ecdc8cc5a632f79cf5c09f8e65d9532cc829bf63db4629fdd5574f654129eb5a4e4d241af2824e38bcb9d5755dd7bd07baee75cc2d13a93e66390ff79d6a5e0e0cefc5f7f3e5baefaabeb04756fd6ae64e559ffb7eb26aab7fbf4aa1ec926d35815dd682618ecbf258b7b8c7fbf905795814d573deb58a52da423e39e33ce2cae07bef0b6c55c7aed17ddd65cfd651c05d9d1089a50db80fb6ee9bd87cfc1c91c66ce5e99adb277f9bdb5f26ded3f92dda9e748d0d4a8f4dbff7e09ff50bc177660813709ece4608d45abb6daa2d4edf59a243dcfcf975a69c191d67b594b27f7b1cfd1b682ffd7ef2e4e1f26dc8da1e9591a57b134e4e646a649c9ceeb5dfd65aeb4ffb5a1b4629e56f1bdda8a4d7da8f5fad63c4d8643a467c6bdbc95df1a5a4f46bfd7050897598950577ffae5d6fa51b48ff7eb365b5679ef3bb293771d496eeee744e3a657b11175fe08fb46f82b8530e79784bc5456ba3a59b5581f5b78f3ec7c5af4fbff8957a3722e8b5da234719e5d017fe98c0e66aff7e9d67b7e288d946569893e5ed70bb8f8ea447fed35d5ef9dfe54c1d2d6409d730c66c9ce9dbf0f9611558eeb323cfbbe5e4cede8deb5dc11426092b10e2891045998228f4fbc4d1af22edb4b486fab072582da7261b10e9a029ce0859fc59378584840409118a2d7058f6441a8db6d15e2f97ebbfd59a319d9866e6d3369f26548d9beedbe720ed2b4772ce58a570f7b664322fe242455c56e44253ad56e7d491e96a1ed491f1a0cea973c281e331bb8a63f11c7ad6332c8ee506ce27426112a59452cab93d9952dea229a707220dbf455d9fc45e474757aa5ce9a325b1cb6433ba451b142a80625a62ed166d4f36282fbc64cce8302be3008b912166310c41c406514c910313468692a8a95330abd554425796af20fac1dcabe325df271e6e6530e0c500193282b8cc85bc88cb5c165b6849e83323d76ae7ac9f3481b5953ae5dc4cc768f9d4d3898ed1b1bff903e5ae394d60f3fc8e317ac78e30e82a39f4e9a6d3fc68e639d09cc6834fc78d899c115c4dcb7ce5d0a73b3aba52255ee9a3a32c4c204c26104088598a663c9c7e210fd994524a65c7f0c94949e54729a533efc0c51b20333a176070c862b5725ec7f5e225a39160a1855a4807e968213a5aa8855610fae1548790ae21b4146bd1b200e9e68cd93f176468a2a437823cd231e8cb97758ceea7b4fda3ff79ad871c72f9eeba5d7fd4d478fbe8ccae86c38f47dcdb611ff8fd8ff2cc9c0d5e4146c863ce2b5d23e60683e547207b10ec5938f93f230d0e6393538e3666b82b0dd67182f3cc971fabb3089c27bec41e30c16787d762868c0f70c00a3022ad822a28407e1daa7fbdfe9d48b65156811c883bf23724ee5502d7dc47b07fe8d3e508f39269cf2a0fb2cc13267ac87246881bc0e808193521a585090f42aecf599e3520a9d204992652040991a529096c3ee140c50f420409aa21ca0c3745183fb6a648e3cb2e6949ecd0f29eb9490ca7041805833a187d1cf92ddf2637590105a59452f6d4f4998d2fbb3b0643c59751441a296009d53588220d25f2cc0b8ebbb991506ec3dbc6ccd7c8d4649074410e6ab55a0d274c8ec7eabb8f981b451a4e228f5422fe883d924bdca95fc1f0c50b8ebbb9c1c189e59a2f289f228cfa760bcd036209a784d5dbbc0dc8029b5fbd54ed096a094c98080131dcea53013f0b7c9460f3f831c802fc361f612aac1e83d8cbb102a3e05c292b6aa3d95151d7883d836e02d5a3631dd4b21d2740410aea0913c8a1c3041b3009e088204458fd034ce1fa335aef7ae1ae7113211061f53d8820449892ecf981d55f7d3f30f91469d026accaa65c67d1f50ec9066edbb66ddbc6711c87e44353cbc8724947d48073525dd9b988714176ff96ffcbff3ead1dad68982ea1a72efbb7fc255213d12a8a73dc732ff97553cac5d95d5a8860d2f27fdd9f215fdc739ccf8cac023b704ab9a005c357052938c1f0b34b307465f7197d4385ace529674df248d2a4925c92334945da206ff025071369a480f352d7908a34d0441ee924bac2c41ef923be78c171373738383fc7606924a58f0863be8c758cf9384b18ca89a43ce6412e838ae2cc144f4a4b4d35da162e3db4eca88d645de348a481a493c4a20e3a61470fd91369311340108211842f1d336c4c20c78b010de839c0149e73beeb625aec7f60f35d29c2e6fb4cf64cd8fcd835228d0881089b6f2308113665cd52f1001b66b0d935a4044fc003e7eebd36408ea1b5f1e0b6ecc931c601728dfe283f9d5da8844e36553164688a2000a0000315002028100c87030291482018cfb461f914000c8292486a4e1a8963499083280862288620640c318620601020c6d48cd0110080502cd03b82ae76b2e2a8ad572c9e248072da40d5cd8b8f612b38a0503b07cbd19388fba94c0383e7cd765f3426bca98df2eb1a18d5d991fe92b0357ec21344d45c069db1143f87ee15f91aee1142f9e4d799195bef2f4f59f057a4c581cfee7a82fde3a8ed48816c1bba1ab6ba0d4909ff7eb778410771aaf983082b15c5e80bc7a17ebda32d6b81e1d27768066bd7aecea3ddf567452744bc30cac5c4535f5918a9d5c0f8fbfd4639873d888e56aacf9170cfe57e5a18eceb8e5931c709544431584bd1634adaba016abf6ead5c321b479bbd031838944107bf2b862867d7957c69f89a4600a75336d701f44a309a1aabfabb4839ec80ac783c726aea542b385246760164581695539b0e4a19ef74a51adc4202439fa7714730bc547e636d3f191950a0dae9e46e31c8ce2d9d98dd4dd72cd493e603dc16424c00da0c3e8d4e491d2433a24696c528d5907ae84bd189d10395588e074894e98fc50aa81e2d7f0deb2ac1d6e34434043093c9f8f9713ef1866e9912100b4c9771f8389d1b61c775baf8fba0429e8e06dda0010dc25f5c2849179e12c8fe9ae01e1eef15392f719fb157974b51dcb98db816122a1dc16b63e5bf725a178600dfe79c58ac5e05d3d77345b1f71e8b8caef7569196511befaf090e804108e64fe8b81b2ae7796c25056400d52f00a5c387087f79dea21492914d7ea82836e9e60654ef39b11dcc84d6ae836ff4c1c1320d2b626eec4317c050546d623a6cf6b549e574836c70de058a830267817312f142b6c32541111d8f8a7f9d7cbf6564dc439b1ef73866bae7c759167c9c1847b1a3ac280f62256322e2f2f52ece462a21dcf0805078cc8970c524316935761dca3eeb379e8633a87d839bb33d22199c1cac70f42b2f7ed3adb35bd0c1183e566f7f37c4e8e7bfcb5cedd12770c2539b3dbef87f510b03389d41db1731d0aaa573996ee7fd5c7af21cabc7a80bf84604859d4a50f2ec5d9e82a0ea3eea7d125098699029d9cb342b596060a05f65ae85475f15fb01ea0ae6dde07acf642d18725a12dba845832abefb37da9efec441279b7418e113df9e07f6b260974c1088b651cc717c669591abecfc4523aba5065dc3bc487c3df408bc7c7a941ef84ea218a3f2f6682489f50f008b2140d7564ea9cbe84771b469eb6501cdcae563fd72e44b6b48aa1ffcbb4e2c86e37d1548e0b7b3278f3e964c77428856c0a021d71948ff48bac842e34926eaeb5c35c8cd28a50f29e8390dd3ebb57ec6f306e4440212fe2fe78c7902416d3ceb03f6f475056673da13b690c7cace74ac8e62e146ed943cac5dc638a82cf3d483d6416a15185957d2669d95154d065981d15463ca3f253a659e64a91dd99e508b05ffc7058f2b134a30445e5e04f5b79be1c6cf589c8406f2891cfe052416600436c27199252a19878654607fdd8cb340d0805596b18276becc15aaa7c9c7b5a899e7bda3b0ffc4b92db890e6baf194f39aa71e07b18e61fda916389580ddec7ca925c85272130f12369ebfa00cc6925f919d2936a7ad20e8728e3dbf1e84631c35f44197f408e208fceb7a98fcaf7100d9275c70dcc1670b36409e52b0e2060c9b2b58c1f87f2e038fa3215e3b4316b01e9b1d330fcb81183bce1c4b77b4dd43b7d3c05e855b27b9148840cb3c2dc8c6935c26dd0b0206ec2149949f8d410041bea97bf9cd299ea1257ad064821f5480f4546bba08a39ba687337eaaca8eb99732a8ad54c72ef1e9034499bdae880756dcad03f349e34e5bdd40f64e83f68eb303df18770e0e33ddbb8ba118cd3aea92ae865ee18568f090bd5ca7228864a21e4674a4432bcc8364e1cfc47fba5f80caf433cf05de44c522f6871b8a4193e8fbbfd7ad44d564386fe7d1fc0431f75a8a66388b628fffd0b068298b885c0adec1ce47ac56d6a9a8e28569f4bab5bbc13791e3b1d2e370dbefeb5250ad31a71af0df87c38aca1086b0015530a4cb17c1d1c9ccad7fb0b5a0bf9715af738e153ad7603940f267465976594c2e805f7725888c0d0f2e22a70b2ac0f840a97d97524bab5a0239ad57d3b3a234f483bdbd70fdca41cf29f9213a41a8e2eb4aa7e4848a2316d8802814b9725a16d3db877c86474bab83995e916724f0a7e33844afae9a7d10bd02b22d41c50488e3cb6a06ba050072a9cc25c4b96f495d146aa49a6119fa9595bc49c8f45d9ab8364ce936c640cf79d121df56aa3712b77d1b5be467c4a73d9fc05e268bdaf4bcb37251892af90da8ac26da7ae5087a850196035e42a8ef6298ab7c538832880d5af859aabb4562d08cf0f078ba4b57101207ee45b731c1b369a877e747234cd459aa11cce9d95953e7521e176096d19bd23b17959b01d3c85ee4049ff35cb6e270737998d608d39a17af23fab86d9119ce8ca59e9b83896819dd3e30d12e19244fbc6b5c566c36210978dc4f81500695590df865edb6dddb90fa77cd34018c36cec48f57202cba92d7ccd09ca4c6d820809e69d1e9a772b54828cacf096b300949aa6cac43d5ee98201c199bed3fac3c0ac084f3724ff46bbc82e7843f3d5594fc32d781aae8a3a600d9c80526f23ec1555388ed3a5cc5b3d2feef9903153654e65ca62e9bef66db091cac40054d0c286c64c6123c87bd0ee977ff588eea30aee13d2d80b443ced2ee69a43395989510369d646b190151956c252dc16c009d53d9f256be627573529034ba32f7604eb5666af3caea694eb1892cab47bd3909eb39cadcc5f211c23b62e3b0ad11ac1affd212818bf162f248b40040dccf7304ad07295fe4a50eee2d687d73efa2c8c1f363376677810727f47029e12b8279341052f8e9517fd7f0062361a6466a348f2626ad312418860ccbd69270a6260bab7e9e0d4bca8715dd070b09c92be54ca7bc3f434e916ad644d2c67bb30101d829459488b92343006868af00cc94a5a1fb1355c22d391c590b8b4e1cbfa18be77a1880611c0d2ce8359d5de4230f1433ff3a213a5873af2e3e825ac91ca2e6a4b1bc4b29996e822762dbe5907d11381760ec9c6bd669bd53637f64206e94065f1d78075792e15a4376c97c640562e6152177937aa96f538c2b3f1aa1d797dedb35704730716e9fc80050668f8cc9ce48c431b326bc960756f657eada59882235b3449559741b37ed341325eaa68713413d2f663bdcc5747ba0bd51044c546e11a985503267668924b491fbebb9522744c6c694ca748a7b5cfbe5603ac042b7032db07cef4fb9ceb654c255a603dae68fc30ae282b4d827fe23b1379887cb95e15a56188286bf74e7810564d28879782783f33bc23b71c36e0d61946c7b84cfb87877a4cccf099d2146a78fc38a2185d343d8a5d585e5cee08d030332dbc0cc1d777a4ff82718e996a11b5fc498338227716255b4a5daf8838a7e56c9bdd86a074168dcbb8cd809ee78406066432e4a4777fd8c42fd654df896405b5aace81eff92ae1eb171f6e22591e45a68d98204307f8117036856b3329a67cf50202edec77888e790b86955076e688bdbf60fa76024c7dcfd51c88ef87dd7a2381712e4e034e19d68a03a1082363fa6a3351e15b829cd1fc9f2dc7708154c7765fcfd7595bf3c243d442afdfe33028dbda2b8e70ff7101083c83da67a9ca5d24209ab06c13fd31ad9006c110bdccaa32199b17d7be0dfdb7021ae92b5a2e6cc3671769af138118aaf15db63dc0bae37202604a065ac40973aedb89b52e3288016b1c60936f6df440157bc4c8af577a484c093a3bcce566282b9f152a6052b78e9968e4b5570251356c32e560353a0a32c7e412f29acc6b9a66516f015405d6f5fb92f81aa8b6a26369d8f3e7a35edec594d6d27ebfa7acd428b8df0e57731e081af727d22c09e1ad54bda195ffb44402db767c87c4c9367daf89f031525a700591329191a3ff10568c5343913bb82326980306ab020c2401cb8ff632dcf548c954dd095c53f78d361c3f4c378d52e651ce88b1f737021087374c89a4a03cd1f8bb8e01ae645390b68d0750fbe2e2d84711e31c94f99b15bf9704a5d12e14b1c556311bc7b15b936b57c7f92a52f14ca811d1c0063ca25206230be2f062407fc610e44d6251d57b1d286293789b825f86384ea9bd3c90f2ae436ffa0e63fc0f8a935ec07eca56bc8d09a211b80c8bcd6dc2b1b8f822eeefffb30a054170515727f21ebf2551cbc8c7041977571798ba375aab2fbf440d5034b374353b5d043753183ba01f3517d2cfde3fd059ff2628121219c817625266a1c01d052a1e4973a473810505401c7189c92e4011f519a6bc6806c1a11031883ca9bac81e93f8bc8cd1b809b225d5d4233cf96270eda5b709a4dd93ec38c8638189bc227c00c7be1c15e357bebef1fb8cf9e1f3230582c215a996802e905f443b3345b0ed6f18496dd2ac7dde404f82b49058449ac3662bbd0ec82c1a4b696ed03044c9f1fba09617db6944463f9a0ca5659d54f1695ebeee5283520a29f22354183205d71bbdbea5747534ff087daa22be987b071cf00d5d71af35c96e2a33c4b740cf16ccc3528bf871c6b91a46223dc208d6253ab2b495538188423e47eb4c97285a732ae1be01a6f4f2b2f580b5c154937f98bedc84b9fb16eae8347fcc4bb3d0cf75627211481a0007ae4cc1b3f2de76cd6ef457452960474c1ff8f382dacf76e8770291eab435e635b1df86336fb6fa9b154965da4d0250a5a7165f8ad3ebb6a490c3148af748e4c588ff181c64d745a1c953a981923200693c727dfd31d4c1e25b63b8caebed83107a1186fc3ab86d1a5e5be558a68d0da426c9954826b76ead086cf2b027402aba7c7b2baaaa430f5841b1b16465081b13fe1110407b09c1a75bbaace9047f873e5449210efd483e12c429e467a205ccd417f45a91eb98bfad198ca9923bedffe162ed5a3264915ad3f638b12bf9b72636738ae535c763786f4a7de2a90e05d022dc98122a19a2dc50c0f272b84b4f8ebbd0c65f7e99434ab4d0defe9e0eee18cdc24f3312a988e404bd1b49206b361a47ae08c05223b6da1a8691ad6e27030dfbf3e42e986a1a7889652d7f0b0bbd6462ac2a492fe420e9689d3871ec6ad68fea8a93969dfcb46a40c24654d22522388b3d4edf6512ebbede3d507b91539338e5bab287d2474b2984246d49d97627afa0ee6c8e4804e86937306dd06e1d3d0fd31c9779064447631a0cfbc0e4c8ea405aafb60da97a7a9d169eaea10cbbdfd1f5385d08720a4b1e0199b0770624aca5c3b16b6aa3bd886d1052aa7864d82c612a616fcee53e24895135ba80b546ce7808c4781af4a65c19887a3bbbd6ed7b93af8c7f1a39328d8c844b626e0290b140e777b0954fccdd256713b58bdbecaa049c2c2c0be72df64f39c0be2b0682eb8205c6e11411c5c95c5f89c250e559726dbedaeaf2a6be2d9405153bb9f4e4780ed2febe986b525b526a4d865b58a54b42edb8418e73cb1cf3c049a4264d523b8745a22a5a60b27ad85d7d4b302b245998764820a5b7433233c169a22c16f4710fabb55b9c74481fecca7998e76e1fe18e8fc2aa88c8aa2e4b0a2613565b7004960285da7abe210348cc390f3b1483c5a135b0239c37e56129d60da88a54296c06039200d44b0686e2c193daf307b4662e857cd09feb0cd13279e0bd055f6ff1c352fe8fae008898a6f0b0707e36154e49045853adb642774cb9e8694faf0752ea1e9fab83ddb5ac8765d021361964bbf320aa8973cac241a40cb65f8b702ba1322a6fa7bf96cb64e69661683888c22209a951c762b0c854d132a29b857072898a21b20acb056631774512aeae08d5e134871dab1b20cbeb5997325faff84bf2094c6a412d4ea3a5f31f3292de1865430dfb00f735321bd436656da02ba45a252e2bce66866cfa5066e28bc142e351db735eb91cbbbe44b9e46902aa1fe594a0c5c4999c881959959158231f97e1fe7d16bb261d1104789eff2fd54860b5bc4bf23eb80a3cb1704a4c3b657cf4728dc916a597ca93578f7b9e9007201de4a0f4bb0934787e172f6f1226af8b412d63d6fc0e8559ba88c23739df1dfc4f27fc486722d65d4155cb1241995e3b17359db48575aae52770beac9758a1c6e30aa541b18bd3863ce3761e00e6ef3060ea045b8eb3f9d4042049b9706f4517c99eba37634ff7bdf19e0095c0ef3cb9cc73072d38fe29d01d7c5c07c0103479a6db5851619411e9ef5b0eca0d5d34872c4e419f0c32fa178c9a0b4318748ed1d30e55430b63c2d2980b66299d8074a559ad4d7409f2a4529791cecf9450cb535f5a11164c06c00d1e219bb5ea03f8af5c5e4e6a2bda2a330fa43e4eb8c919ebc49af05019be20edb717463e2a185a803ae2f0e999d63f0d2ad176dda5f6d36296a5cbe13e95e2a74ee8a09d4e81d69c61736c7d8680f0052c7a211adf6e185d3b2fa087b9d7614088c476c2434adc46d39d30e76ff61095e8761b4ec1615d8e09c9508150833dfb6ef6fd5d43f00b6b526db90c3f505c560e772fcc268b661bb6a530005b5a7f66ee483e8f1ebf7a7e613520cdd8dbff37206d198e3a905eec787d04cce3742d0d5f2f7ccb072ac6e4b812689d024326e31a133ea8d3af6418c6032f07ea3baf0b7839fa1b901fac938d21dd95bd9d190bf11e639dae2ff57fea105a65238a6de75066887796f34ce3a3cf4b2c831b3916d932840c47f98f2f8500f71de16d6699dc6ecda8dc8b902d463d5a1694c4d0003e7311e3055ddfb8cbf75c6e6f6a4c98fd87ae33b2f6afbdc5d9afaae106e1fc9e3c3644acec2d801ff060f8699f8f05f2e0e745b5c8ac34d8464e0d92e6d6cb4a8467d806ef0fe22e63b4fd7a82d1839f0f1f2b1b2c896efe701ce7eee1e41d5bfbfd84ea2b2de8fb6afb0bc4dbc14c78e7a97a055357c84997868dd775e396caa08d38582e1c11504f5c21afa28fd83040df4c58c2cb5841fe8aec93dd07db3351b6295c4155a660049e6823f71b1761564d6dd19b769dd875c3b7a63dff8408903edf433ebd760310a6b06ded18c5481628bed04b69d732c0f8232ba99666e5ac305137f26c6b1b407adfc9655c68bf918fa3c4b38f1c975a2de2ad642595cf5a4d6ff581432248e81d307b251565521347b3b1da2921f08c3e848d97059d84fb32fac552edb6b94705a40a23e3a9588b6b8766c6d426b841fbe84e5a93d24dd7af35fb580a2c528cf0bef3e2f1a14b7d2f4d04acb319e270c331a61a0e22b36a8c8bc43f05bfa6de16145f6360e5c20bd4c9bb1cbfa3e224ad59cd922860d8086b2bf6368d3d7242230570ad8a8ab7f8724800a5ccf26754d5dcb4aa1de96502c4bff74e193fe4a9b985513e6b72e3cdcec08bf032992e3e7e44372c8b7a85e08d40cf2754270ef72aec19671bbb6562372cfa12d5cd6a523119c33c574ddd818403f0c5305f71ab914ceeb666ceb5f083179b0b805142599139992f1127cb1263f19c7b6609c7fd9a85c25db3f1e4b159a5aab2dedaccc083821b8551837c20a98191284396117a48310c6b85305c28f8436d49681e0fb173d11178f6e1729a3a38d8fab1deca491539b9c976cdc5816a071b5dcb5f1253b10575220f5841ecd9a2ffee0ea9b3ba5d39d58a0372f89ce3b9f17badecec37d708207cb45a7faef6ea937919800ba17dc4094c74075f0b5d04cc67510cc5c61d1d148e889963c4e3e10f1c00573ac309f96a8ef702b54067bc2731c4b459a4954c9f7ee3fc0101705741b71e3c8aabff0d24a8e76396932232164bc5ab89bc57dc7b11fbfba177035c9482532ac7eb1570082e242107ba4fe85b4bf0baae58b8c09ae134152934b975b31b38a4c177d4e265a0023899cc9c7fb277a50a4d6e1efe97724b7fafca71dec5c64177e3a74af885e3bdbc808379858c4e198a724a957c53860ff3452f33c263ff5af2506d2a1536c0978700dbdebdbb72ad06051be1382c87a9ad3a5bec92719d2d74010140fcd23a7abbaf2e30cbbd62c250e86b5e280749fe06a6a38be469ac255962132a6053f5e8a1025d7580b95e09cb3310006e4ff362fcc02bd59a31893efcda2175c70a4218743f30bc4942a8e1cec91d1c6ac588eba57e2a8fee327cd6f435a76ceabc21c88bf67067a19cc6bfe11aa19f4c872a6eb5d7c9079fbed4635cd4abfec0dd8a8503f575cd6c32db780d33d2bb87aa54058ff76fb0ce83b4590ff2b79ec377c2f706e6e45044e092accdca42155aa443ea87897f1fecaebc234fef56422420c7838127372f70a7217a3511e2279871a3ca77980e628b10ea464db89a5ccf82d880e48066fe58164741159010701ed8396f2fd4ca637aecbc055fd2934e9b7fda842605bd6a7a3fd886ccb329a7e1e46d343a8d19028b867cfbb41a31aab50ccf9128d9adb224107b896395d5c8446c68b579d794b98d79481578335bbb102b2ef6d402f3be94ca18092c1fb2ad2d99999a05fc56cbff2e28ade0266d6853864b3d650a5390ece4e6f741f53fae990509d6b4babb99d02e0b3e6949541a1b7181cad16539f6a188f1821a0f5892b1e1fcb4608e341a309d33490123c29e5e94fdd7979f47d355ddf2f3e3f41e162df3e5d5d186f7db1552f183a00cb642e3dbcc8e7b0f1dddd18d0e2041ccfb8a08d69fd780c07949bcb438d61192f5c4a0145a3868c4c55d91901c4209d9c30d109d5361194e0ee503ecbf60196ec24b840660dfd0179e7cbb8217399186b25925be41c7bc3e8b2b25284d00e3c1665138ebe51b22a7baa3b0f28d60ece735028109721de6ca0e77b55bddcf70a101573225ff67262c3b8bec10f6e517ee6d3839025a010a5225f78d1abad9590e32651deec0202c0269163a46b12158aaa74a011fd5e253942c644d2d4389d1508735531a0bd1c90b33e2e4281d60b4a8ca7209e11794b8f42fe1721d8aa77375024d9b5cab2cfbac7ff7154a9f8f34b8cad3429253d9431b0d26dfa5ffa36be64edc47e750d4c670f296b11fb46044736dd8fd9a3f015b606535ff6b99cdd413c6edad72d9e353160f9115e85c820e60a778d83d04e01661b003e6c28e633658e75d70a09d6f44621a7982eda151b6f521d94617d891a89528a1dec83cc4280ee7704767dc57f03e0702eef60b0d97c964099323a218e2b5e59b54b44dd0fbee8d9ae13500a78ed25e28ed7070b1c041a621927f92b39970c7a1279e9180e8591ee398631de606faf121bf1c2db5a88002d274f320d51159b0a7554ab856bcd34988f31fd543ec200dcaac0deb6c752addcb4a2ae1efb30f7f5bb404948e5379d077d44598fd0e91be47b188a82b7952327efcf318ea40cef1099d84a19e7d256d955e8c077d47c2fac3e85934a35434b87aa27bc968bdc56d9685150ce1863157ddfdbf96e173a4bdd464880fde2ba00f436ef2222bd904ddcd820740e4a61b30dedc8514f7ade7c78de91f42300041112d60f5125655320677c30900b189043905e19a8e41bcd625874a01693931920407ef06abb163623e102e6bc2c5eaed7d018ba33b421349a8d2af543a0faf8fc0fe13a943ecc54f45579d6af7d180bc6baa317679c96901efb0790ca8d87aeef6bad5f6e6fb089af8d40a91150d8bb2859e7d8ed48a78e3160fd97270433a5dee676ac650d0165e4a680215219c0d91cd6e6135cc00e8852598875c1d92358fd413f29f8b22fb88e967c88856d9ac3d280e6fdeb11444e53e78050eae8dc0666630568a47e8a4e9766ae1f5a86c03c40aac8cba32ff9967ffd8ecae3921f4b3d66ae933fb58c9bb88664d5ae53ecd60284e35bcd422fdd2a00e69a87013b1c21770e00200928889f59a43a34ef1e6d4d16f654b5ddae9cb7d1a04afb1e258857ceab92f3cd715e8a73731740e57d387a4a118f0c7aa2d959400abb0d4876802ff01f352d619e625f7b3643fc8bf42815d9efe36b63fd4267fb2e886352fa954fe41e7f2ecc74b7aad450f987ef73935d82d45c750087ddac58207087c8d84bc2fd34fe197fd7659d25101cadf198a811c7285b93291ed02329b7f4257d9a756baf15a333c7fa855ef86f15ecccfbb368398055100cf81949d663a174a3049395a484813d4816bbc19b6fc784b6f9cd1299e2b9baacd1fdf3b8c312a3659f7c645769eb608da5e915cff4daf91055badb36f773b9b9d11c350c52d27c012835e82df2507317210cc2c67e3c5aa7a457689714cb003e0c9090cd205a3ba6f94d6bd478653d28bed876e644f1030d785b6f08aec3ef02ec614083fbba7b8011b9e05ca6f7ef8551f75485ba181c009dc33515ca301f2b1688cad0a4fdfb6b963a59eb13c327e2b6d55431df2f7474395449c8b4964d6f1eef5b8315f32adfb303932ab0ea3d9b3ee67be05efcfbad1895eb16eca88e9b0deb41bb71e2bb5d5ae0037f1c52a40b1915bdce453292e49b2854d4bea8037838f06ce2eb6ec1bb0e579b4722d755b85917686efbbedbbfba00d179fbc4a8467aedc259a57e597a2d8a89659c5bddee374cf1459167163a36f1b0ee93d186654fa4a95b66c1a6ab1212f05508547cf13d141ff1847ab11f03597a2596a18318ee50c31a4d8c9e0acb15258602a45685a0b3d52abc2ba430bb5ce94b14473d532cdeed4455a28b43d95d224d7979e17a93a6833d81d5c7bd9eb9f2f9c8a2c430425a71d1d5130b0e2876bae99a87a25d1500b11d798c1c1c17ac111e53669887b45c56a5529c6937b4494a7a900796b94c2df569f43c8c8313ff578484efe2633e0439d6ccbc7f135db3dd36029bb0b2b9ffbc156435b23a882981c262f8affa5c6f80d47df4f84a9efe07515b2a8e082ddd67477af75fcb837e1daa81dde52b413fda7a0026daf73e0f151f57c72cd42f6f4060dac85faf951f0e61ea40104269c64dbe3fc44c5467074e0fdeeee19fd2395e049a9bcfe98d9c11ad512b2e5053c7b61689163c6502ae5f38e99aaf1ce07bb3210c59992012c8aa98476ecf44202fe1391c7aad8c4c88bc6bf847e68026e2241c419689638c03fa6508edba90666ed0fcfc85c9831917f88bcac8dd0bc89ac164939f723ab566b1e2775e4410352ebaf593bb6b52fb150e7ed6d07740ae1188c6a151e21a9f540f88837e47931f0bc6d0723169249f6773946561f85d972c79a4dda652f52de876c1a0c7d70064ac5df03fcb8f110043b0ffe55d761bd973aa8b146751e67c56958f7e5a1aa90cf3ffdd564751ab45db295487943140f8c364c48126d90fe17710c323436b4b88b212fd8474db1d316fb53ec8796fb8547370553eabdce1a1889b4bbfb8564875f70012517132ecd59d7d166406522603df40b4ff40dcc6c0c67c8d7c6654a1ba4e53f0cb43d1a108fb6bd11d61c3dc14c0d6f20a3b8c42f15b8bbb64ef281c37d7aa424942498266553de370bfe6c866efe30e143dee23f2419cb422aa2558cdf627e8330b03fd1f59ef1b989e33e6ec23d348f7f0785e8347c65cb926ce58c4a6f665adccc1e52865877f283946d2ef9ef6e0cb18567a7f6194cdda9ce1fe93a80edb5ca220c3872cbaeab56c2a4b2253ac649745a72321882b745bf108ae8957dce4bfcc81fbc8533b8ba47cdee565315034620011e722f822519ce11e1b79136bd0431c87819b0c5854b594863abfcf7da754f22ba376fd070ff5df7c11f3aa90836dfb79e939c3acc4dcb053fd1bc69e4668402080c341c15c35334a6f6a1c69b1d1733e2c328540dfe54ea1a94ef26d380dc95732e6a3f1dd0112e41804335aae13137d5229fa79308613a0873869b9325e684498db3a3f972c4cec24753b3f6726ffc20a75e70709990f21c4c2fedd48032593f53a9f3e87b84be941bca48080c6d68b84c23b452442373c52fae3bd1abb71a089db8991e329c0db98d5e41d11ef8d406b67abd6e7f9fdc9e5c0cd4d8b4065bdf20709251a48b5b7baf51044019c9a811a92bd7a66b014774f9127680c35fc1ae61d90e81ef37d16726ff4c0a9e7fa4494bd752f93aa2215211f54bd0e99ac55893c170410ff6741d36118ed7bf011902c7501ed14d79bae5eca0e9dbd0e3858bdb594ddd10454ec129dcb48c31ba4df7591fa6e621150afdfaa1004301febd9f0564902e7d2e4f0d2efb47b60a4b090a98574c3b96afff3a3bd073bfd70d6e766c1c15ae50a53f1e8b2028aecbfb1f480633748d10b1d05d65e3fd647b0fdc958593fd45c50f3fd032699a0089a42a22fc0217d819a741738cd8f59d7e4055702cc9db1de5e80f5c54ed55a1a517393f617e9519aee1db2b8be9311b27f4da3060f3f1b6c238eaf45a0f35a23b8e102f24ba367fdcba783f6bad63cf275234edeb8375dc0aac26a71006477493058138ffac4e8fa1292266fcf2586bb7b290b18f9668ad9ace042672ca0b9b6a5893479c53698139786718b5844b5a82e992e4a4c15e494bb467a9608e311ee84a980114c1102a792fca4a00b67794868dbbd100e8bc1e876fc9aea587a4d11db4339378f2fe8a2e2a784710b6c1893add23080e7b36f524f00cb70bf84acb4d51f2d3e43f5001faf5986cd1c8c3e6e4dbdad17ae2b67b778ecdd71808a5aa96a12f0bbc6f53b13dbc2578d61038f983563a44a9dd42a94c4f929d98da6d571371f0cf1aa87839421511bf4a0480d760a49bcfbbe347a70fb9fe61990b6ba03ce00085e8084ec7ae1f06c7a197affae40de353bedbaf47486c7f73946a1c93444ce3e56113e9215fac8c705d847e4c74ad049b9211c66e3c85d35aa018344a166ecfb1297cd1fdd64457153b9aa97ede70c116835492676a9bc0bf39b95ca644ce61f50b8492ab3af814758bed05efbd2acfd56e556c5122a8172ad3a635f99c37543a3fe6bc72fdd66fef04242706102b5cc4c66890179f010457588ad4a377675b6f87fef901baf0d1e836b65d5acf29228ca20440c982ff86fec87f3aae7aeaef603fd14322e7290f60333a0750341f59005b38a75e5d327237f6546865f46bf194cbfa98bafa7906520d56a6bfe819f40b39dc1d686a5000da0cf7bc3c13e0c627065f31aa0391d7aaa47fe12728a2cd1acf42ccc6f0fd80651abc307666ad89f0a0370d3320299c75fc1f02151673bd1bf7efbef1d3a11f0dab830fbefaf620b6a1c3733072b81fb77d4b8e23f6a1c59fb5d9d225e56b6148165ff31b2f9a563a65ad613bfb85f2343698843948603d4868d05ec5d5de39e4088d5da1ffb222b5cfde8546b68537f517c762eb129fb1c9afa5ce7bcc81b669e134210c84d9e3a29fb4ba05649494aa8cd9fa020fb7e13a4baaa7c208528d518d1896c541027e9722c06c446dd6a04da06f8368d3b38da13345042579d3e7ab1b18fc6a820321474a35007fdbe174cb4b3162f44cf4acb98170ef5d6fedfeebb53f7917875ff22008ad8b03f559e62e187df9097693975696f4ab95ece189781e3ddb0d853f94099737a45a1f5163e07e0d70862a0dc67235c2d129ef454c27f806a31f60e54a00f8ba4108601390367546d93670cfeb4d951507d8c6e7edc8598b97113921d05c7135b090f3c96091914e394d0677bc2afc07c8e3138406fe6bdfb352e1bf4c67eb9518dc59166e56b26eec4e5b19202d7053233b643ffb74bda765265453a2eeb4abf55beb3e9ec1f828ed0efbe52a1f0bc087b368e0508be0ada5fcea2e3bfb3d6d098d900113c1bdbf7ad3b25088eedc26f0e96e2ade5f5c7f4056a6cfb49a58105725499b165e5700e6d2c7ae323f1773a5795a062f69b8f0d3135146b81b992754936ccdb64c636f023ed85208fdae8e186a67dd81bf4eb4adcc8b177f4834df4ce897e765f0e9d7d48b982332e47d66374466fd7dfd1ddce36ab91b3900e237dcc4c1ae3642c24f7850edb3d5b4b38721f6b038b84422798958d1dbb9cd87a2ce71c6ad9a1ed02422a68837ae1f3b3c6d79b08170b67a0cfd1e4c675fb0d58c39a33482b738a0fc46cc9bc081510096dea12c8c07fd6334c32a5bc39ea23d81494be6c4059002c81228491a4fab82d0f131b4034b12b1cbccaa0af496aafdadcce47ee78b6841340ae9e1380cd99dfdc3da308fa0f6397ff3970f13f0a27f899a3d95154c0058ac39de9250cbb78a75b6a94eb3529c4943ab8bfa523c27844e251b85d8e3099abde004065a92ee92d50a7d0ddcae565545140fc4c66b7e5368c791ad72f6ca774a7dd4a6c928012eb2db0269609f52dbc2e2243cf5fa194149aead04cc37505fb2295be84b0575ef1861e735d246aaf021bd8b590fc42a606a4ad1520b1222fe9d2981b4c0953780e31d74b4dbc32db81ec78599e38bd8ba371942a05a72920a62df3ac90566e202840dbdb7b2ee5d6edff613bde2fe06619486d446c073c63966107f19ddce3af5477393a5a036c357d9e100cc82df8230b53c9c045590f6e613d37ac6fd14992aa3a97781c6cafba5c0f0c585846bf8b0a9aa604fcf2e52464029929de6cfb2b742abf6e8db9c4ce87f64a39c74053c21e1d6dc0d639312d139fe31d681a24bd10fa776befd984279f0f7a195c1b9a01d7919688047f7f0e37c529d83896f60452090eed87d72d1d8b2bb217d0cbfaf756c832c3f346c2cba1da0b8217326d41b4d46cd6878209123993fe7fe0efdc39502aa5a6678296edaa99fb8e35171b313f5eb25e167af3871cb2225a0ae44ffd5e3d4bf640a3f428d9d3b53bdbc8fe30894d1096da7ba0602c00124710ef3add24c99adfe53d191f42e3c8c1be07df7bfd21fe98f9117e90915f1100689dd34b4b5dfd275016d629165ed0671172a40c3a5a1f84991c0b5840580faed867e28d4df512d07cea6f54778ffc0f7fafcce1679807a78cead0116d3063b2e0672e582af4f38ae0bf777cf960157b3f399114565f4c1c004ede5d543eb0dfa14ac523ffcf7964717fa583489caf2efdf94964dd97d6469ede8688d8b0c006ceb78163de5eb40fdff125bb80caf9c20c811e229ef8ab5919ef1676625fe86a7d6b9cf07e7db5408ee9d4685deb629cac8efe29600753666e7ec411d5d09feb047e82647dd571449fdcfac0286a9ed9ac9271c1a17afab1669df29f1891284f0cd1f01bd34f8b82be3ec553799cf3abf93eff6143c1067c70bc55d85716ecf03ea0afba323c70afed811093f0bea87ec8d91f6703c0e4e19c16d55be1cae5028bd0998420dac03d10c16dd74e60a4093228aed548494c722b744205ed07d6f56fae0c1d7a8eaceb1190f4c5c24b337df5084669b53736190b6443f220d5b78bb69609748adcae273fd0214f5dbdbc7239bbc17ec228fa8364576df166e08529c665d84b2074077980eab3ae3b922fc33a67150a9d84c28564e23ad6df936d892d371c31be503b578ad523b55a99749ee13a344fe168e1ce28d4ed80c90548ab419c98776140ae8ab1f2bc2a360d4c7a942f2b5e689e57458a4e2529ab70edd26278be83a3656c9888ecfffb5d6eea8a31ed063fab9b4c7ddc3022e3db82891ecf99fb81981f164615a2f2101d50b72eae1c994f087fa34325cc275a32747c0ad17d482608f32d341c72ca0b885cf6123c5544d8454b29895250cf518c12a58d2db94bfa2e42a5362ed62bff79ab118693ebf71b8cb6adc7ac6d997a93b431b0ebdc2f9f2b26005d275713c1a81f5300c0b489a9568dc51b204b8d7052a483b918495656c52b6293f5a3513eef90bbd470dad247cd7902dfc1befd1f45483de39bb9f6a87200ceaa29976191304ada260e0f62ec1355845267b6d9db1a3f6c64a6489adc4e97db00d242b855d064691f8927b0860ce93c8fecba12ca9d25e68730e003f443b68e0aa40f2fc702c2d9517702518aaf9957c8210ac5d59113a5edcc33fb59f04a633d0dfcc8a869a65c6d961baffc612c405433c2a1460a1a08669ad5bc0f7547aa6fa176311ed4d74b1c441d83c38d0345cb2605235d63b4f6e2e1ffe0fa479beb31f982db3f6f5c90697d2325ea505d90dd62405a748aea4360b3b3d5e24d0dfe602216833857337faf122431d716ed3cb1c8660b14493c084bc50a305892672fd9bd74e0c8272893e182a930cb393cb7e65aa17fc0549b722bbbebb8371226a2070eb3a31e8ff766933146d928f6896629a88a3bc5d661ec004685942fbae0afdfc41efa278cb6708ec1d76ceb42b4a6193c0629a9c95ec4805642e364e97ebc565e2912422a12532137d56a0560e152fba8166ad80c9dd4da43f42c44c96ba554d0f05d5d1652348f4b4913660d9f020fee48602ac012f2d7477064d1c9df083ffd01bf6273722a1acaab00b4d6445dabac34bb9ed1e68b1be9018d1df56b6e8c10fbf99ac36234ff35d243cb409ec607b50b838f42ba23b3c48c093e4e5a664c0ca02bda4121f9aad63ee52e145f04cbe22c0dcc90c739150f5416f10a8929cc2531f48a1f893fff8d2c8230e7f4d2d9832389824e0f85a762de8005d6d9b1b1b663de9a2031e8bf62b1296e709620a398044079bc150db13352cf024883ab2b6194bee4bf6b600585b4d6c8d9d3d8e7d4b0aa034f164f3d4c7059b9db716a7b62941a5e703047fd406acc00349b81e77ff249992b62e364f0fa2af8d3481bc180fd38449f343ff1dc1065b7e49b6c9b0ae833a94aca0f20debe4f822b9f0f97543d7011597ee4407c3c5d05e8ed944447d64fda1039e81f98f5f997058ac076d2f2c8c219080b2c32386f55f20892935e4375f8de61a0b90a2a056ca776436ad8df3fbca151ffbb9475ad614c09bf79875160991a26e6e049a321395c7f46f8daacb39fb514b79d0ad964160c1a054b7fd9fa8f4fcb34316d126a321bb77dee0b027c3673a31498c222b5d972aa2078152401ea6da93f8bd4f6bcbdc60e489873fc30a944e0ef13818145d4180cfd6881671576c3257677d69b7d4a3ef7698ebe33d87c1309a6a07589fe0bfa2a914137522f1448c38307519a7d777477f4a97bcfd34638343919cb8ff7716575b79405ddf733533e770be2b96d08ad81aa4224df0602f8346590845c6ff4b0cd1b2acf993f0c3b5ad0e4c9513d58c43ee01642398bef3a0f8c4a5bb1cf6a0dc168819fc8a8d1ea1813831b5f445b34bc945108d1a933610b8d5c8b78e1de0138bfc038913e964a46eb9bbb4bdf09571c55d4812cbdce5c1c249c3c69ceced69ccd00138ed8324a65700a84cbb7084ae3a856eda71b6d30356ef023112d9f9710171a9bb34008b4e958ca05b92ce677a0195d50ee4e0f6360d2d548f9a29bdc0351f3fccd980c3de8ebe496c818e7e4a56bdd2f6d3eaf28a5f4709295f02455fa9f0f16479916aa622684ea057b8c82883aa5d754fef9714f3b15d5bf344ed17b3c9526ba86ec304ed14b501c86aa28d28144715256a23239014e9cab2e4b1f95da31dab7760f184bfec2f6c1a998e20625169d4613494f0dde9871c2a19bd674959de1a8bc2bc280181cdcf7ec55dd8832074597ac666e863d68e8da169bced2b2a9d9bda46adda2cc112ad050ae5d89f3dea5bcb0b82065291916d13d4b5539a2b69e39252d83e7faddace275dfc91d07b10300bc5e769dcea090496685a399b7c882f2cf98af8a34433dce7cc81a26b3029d5c28a0da75bdf1aedc501247133a784df84ef9b4d8d892d10e20c035b5af5376a062112dc2ca9c1bc7881c5631dec6aeb86270fe421d7af7672bd8c0dac70187fe3f01d2433faecb8c14bbe5e81a617f59b11cdde9272f4532e18bfa540683187d32208cfb8ea3a9fd886d6bbc67b5c6dd5d2569e361428677cdf3d638e67898622ade367daee779ce08e77a7bfa756ba35441c32da4f563690cc8589f2970105e853f863f4ddf1fc5f242ef16400f0c1c50dfcfa565bd242b108a1dbc798a014122ff99e24ea8c9c97de33ef03336352934bb9ff9d635dcc6a8c2d3b26f3434cc0a5cc9337b8cb6c0f29c3376d01d2a12d91d1af4088fd7a57c11be74e32a051b4fe60a765aa87e4b5c65c1c8c122cea88bbd6d875b862328f8aea6525776729ae0f1f7bdad9c82b6838fd53fa4aa7a089d04104ac4ff55e84cd1ca04198621434d786f74664e7ee5a0ba6fc1b712b76682818b08bc4f0475ceceec78f9ab377023e445d2e85fb7f2101b40f0cddbff845071152935e1328f07ddca5bc462068586359428d66e601ead569cd524930a630e4973e83cea4d7139862265ab5abecdd1a57e135ea0eedfee1d9ef14e7669c74154e2cde9419d61085cbf992e3ea8b81e38c1433d27cfd54e453f84fd33c3c417aa95da206124748cb8ca4510d282e9fc8fc38c60ec787ef91160565a0af4886a8a7fb4fad20d7ef79c550fc1e3aae0cdc000d959d65e48a3204707f76c35150846dc36c55c15e1073aa8dea862734b65a04760ec17916132224284dd175100be6d0146fefc5b90e2fadf140a48821ae592f7f3ea17c5e7a1b38eb75eb928987bedbee04537c80630c42144cd6b14790070c30819ae39a1d579d8408225fb5a61d20331ea0517264fe1e7f38bf909f616d01df8da7f3311dc0c888c545b66c77e90f8eedde2953bb84d9a905e3212eed888ad60b81f57cadcfa1ca2ceda7b8ac984339d704c5319e5c85c23682fa3cd42d21322dbd44ed05ec338017e07ffc443e3c6349d1a2007ced7875eda71882b60270349a4aeec62b73112d79ff131f25689597ff0ed47194930e1f98f19e536707578e8b8d8724add1c89a977eaca59105fe5c0d68b0b511dec5e21198226d9e31858cbe324477b31cdb4eea03e3cd7357df25bb30d2c6719b5ae03148ce0a4088ab70410d6c655730e91bb7d7f1e427014e8a93c244db9199c6ce07604c329d31d6da58dd52740622d25e40f66db1178e34fdc699e87cad4dac3f4f5e580e91ee35fc4840db08f90009115a08e1f2a922994e22f8c41931af6a1fe5acd878919d09103160381c8f2362fb9a7b5c9c80efda0dc587a03c19e4800024df166b4aa378dabe685e9a6910f97a16f8f7ce44ef48cd9087663ce8cfb45897b516ce749b4dfbed3efa8709ce50896f8ac92833aae5689a866c36db2bc3da1fac71872466c65dc171951b245da597f5beeda1cd07b37ddd94b1bb55a87e75f9520203046fafce9ba032472019630f72f3c305ee550e667f79860bd3ac888e14dc770512b5b0e6d997171f5d12a1ebd099374365fb51b5e1eb2d785465df5219aa0d4280b59d02ab67392a2a3533f3fbc62187f1b02f1ff33839bac8414910c8990f0ab7d6ea994b25b776532eff87d2511b295954922e596a44c7c765ed5e5d534e7a0240ac1d8ef670ab06eb2e3f01fc86da59354a67e7105d8a56cd8e56704fd186c595f8950f5190b40744fd727e3b4108eaf93cb2cf466706045a3d927b511e05c40336525d3978b0b9ed305662222e3e3fe03145678dc1c23dc5beb57b0cb78baacb27fb7990fccb23c056716a1a4bc228fd1046df18e4e95eb1aa4912a149d80c14f50e23fe9545bce036f59b6b7aa8158882379ea3e201a4856c6ae3f1350780f8b1c1af9f7427249f2b3383ea15945813ff040eff725dc6e91ba5669c243e0974347a10ebbee53b245610d03b8b88da69812cc51745a1feb146abb3828f1a418f662873f03a93c2f85742521a72de418a279d751c20e307f57d2b661beba0579ec564499424626eff5324c8f6f274ad0ab3a0442013dada4d61288629bc8d2cd8ca0f1396cd8f2813997e1cbee9d2ea236c73aff88c52cde21953f5d8c6af7755b3b51cbb878103ed74106b2fcca215d4ef703649a4f4e79cdb1b9bdeb05a53c6b00543835b6f27df1265e2938789498faaa78ed57fdce018c2d1879b52cf04b5d331f225fb428ebae30e529c5fd9ae4e43bc940b0b3c5494f76158ff5f8aa20ed894008508930dc7a8723cbaff4eb523e1a2451a63857023481f05f999181a6387194378ff2fb16afa75992f920ad2a00a11df2b32c575a2eb640b5190fe8ad72025708aa7acc001ee137c0669f79036a2937789655b0ec71376644eafabc52080709402af46dfc14b977101ba07051b055552180ddec573f3035b8721d709938a531059c2dbf0261f95de55f73c3db4c307c8711f75650bce9fc9658f2e96bac2782c136291d4431ac344bdf82bbaa34b421b9b03784d4b9247682c7195b431d9febd242fc6fff4ce1ed1bccbff41af5a70d171a03b97f1def32e069794340ea0d7175af58b413bafcd2b22850eb57f14ef7d21b7d6555cfb2b282f2c1cf416a2407d11b1470bc76018ad323570f5790bb9290ee59a6f90b51c208e1d7212c8a94b44537a86e53426e6c981b037e1447fd657c1904d8a8c60d2a2b666ae6043f1af36ab0422c9dec4d5c81f84e4f7ef3dceb7974022f1652896cd821616204a2c96c9814d5723b45e6279949ecbb0857cf3de55c6fe6561a3cb3d5259ad9dd196172fe6ebbc6e44bff9fe2a1c8cb42a31c0faa165ddd3b4e040a8e83f9b3de37d1f02399ce56e25389cd5e672090e34883d1a4da42b9ebb7c0eb18898fbe2730708703066bae425666320e5e4019d46a806ee82fb4c3e4614d137371744e936c234085f4dd04aa23ef701551fe3d471a4771bbbfcf313d3a066207148d65fd6a9739135ff49bf3e38ff1c7ecc4f970fdb8d36888cd17ce60633b860db56ed4bdc678f4ae148941fd09ce9b3885a13e81db24832e3a6495e5e42659a35e22938baad53855e292d1b5851eeeb82d3aaa3fefebd128fe5c4559af7d1840c890a185f6da217f2d59e2bbe696550e54081842ed58073f335333e435595313f58237cd4de303137aaa61d34c956c9a17c5d7302e5bdb1b3620582393b016b07d26873780d3a08227507ad96b1dec26494df048efdcba5bda79a6dddc64a0b07fad9853e0eceacc096d6c5ba1d35299d885aa5b7afa748f864cecfb6bfdb1f7225083bba5dea8298e5ac2c233ab261e791de7f23e7b72299ccafac9d7c690907f7f11d082309ca5f5f1789ef42ba438dedd643c0470ae12a685f4dffa73e80c5813afe2eb1024630c9fc88c727112f541c9f6632a27b87f70aec83559d8a24af5faa0706d8b3fe6585ec00b912af1a042f4545e6738f8d3f747069f08eaa0a85f3ad7ada7ebfede8531b00f69c2c593273a2fbcca8658baf6ad739d200b4163553cd85622e382f4c95c98d1a82116f3f0813a12ed42020f75e00cb7ea07d58a0fcd01307673bbad3406586cd4fa5000fdb246a700cba02289ada4304672e774c25acb20797ecff01b660784234aee40510285871663b878e3d194c3b38bc89cd2567cacec4f0501341bdb38a39b9a581ec0f3f79368d78fecc3cdd2a1b3eb0694e4047578237d021881bf8177d2c4197ae72910f2a5bb982eb94f14e67b6bb7e455b23b562c79904bdded16b946057bb89587cde68698ea405ffe8adc4854e55b0bb7f349b29c62028371745b7395a2efde2d6e0e2fc075168718d4e07d954b6e2eaaf2710bb71f3f498251383f0203d1e85b8d902868efadb1fb4bb629d7adcb1560065c979917b267407f392f79610044f6efcd0cf86ad3b0fbe59ece00b68f099b19baec5ed3d44adc619e52f54e3076cf3c80edbf747c0007a45770b1d7a8aa879bf280d9dd104b1ee4fa6e727d69ee857e663ffdea09e1f82820787c04ed126365a49da06ffa661fe4e96eb1187706927ae76f07fdf99f842941e4b7661b58c91dc85a937bc52159fd63225b313e168abe88c5e3070733102f5891ee770c084f0fdec69bb204c9b1019095e520d468ab43ad6158ca232bc66234827e95fec2a4198655c513d49fc892865f89984de4a0daf20e0fbf98ae838da9496285f5791b9d4465a1826138f0ec4a2326f6072865c88198cce55bb286acfa18333e5d08a59c282e06afb4e5946d21c3e86c535b47f0f40ea4c491459d3d4b438b8179727f4b648af90d8c9c4809b3229a36918819b6e2a439a6a29606540247d5a743e8d827ca8d11e28bf7a0601587062a1e2c5eb9e0f6216a2a471fa48aa7aef76e2c872906fa83900604db811438ca6a25a3db43e8a08c13c1616eb881887beea3870e9583c279354a8137c70850c52c6d8065f1604e684333536f8bc2df4e83c8126adaaa021a8debebed54d59cd299f830503784a74d87245869f1882949ad2449395f05926336e97f0b8be072eee0aa0e66130eb610fae7909fe88523e6b499d314edd74bc97043d060cd8900f2eb09afe14339bd0cf6b12855014c9ad3b4bfd3409c4ce7d984968de16db06c5160a2b9d6d4243a3dc104d66c22c916c9ad36eb9071839822afab054174f121db08f7e2967303813665fe51ec86b2700dbb72d43a21d4e0d435c33c5306ad49779d0e99670a46d0cffda79dab0c4163236794074dfa6274cc5ec2d201ab95f02fb7b2f76d4ca263d7b81f0f78139e5f64a8e273935c4f6bf3cc0531388acb161304be9cb08dc86124c23ad7f30ffccefc79c1f7e8c9feaa3b5d48588e8bb29ecf47061f4099aa0bd2ca528454833107cabbf0897d6d0f65a1abd2a1e98c573368b7e5de239ce5d67cbc72b2f0d54c3cbed0c2980ee69ea9d0f523dd90dd7d7d788d4c88aacf906f39ef63d4eee7b22684634640f32fa584a4a59e049e92acb4a57eccb0c36eef0591f13cbcf69dd9fbbdd889c525a885ef9f6bc01e852b89ec253ced8d23fa80d57af15de62dc66dd2e3356e366aa61e4c26a37565dbb6c68e589230e9d98e6fdd70067dd52b6910d8ca842004de4afaa68646bd78325ed189410b945d4670c3fc016cd69c0bba0162cb8a6542387071e1ea72db7c6a7f0071d0f0c8cc8de37c7070bf8d47206cab5ed23530a53bb47fb424b3bed64923d64b869fbc9f278e5e01dd7921fdb4e98eec4a77666ba399afa092e16287d942f1b9fb21fe23b587e007ce70b2c519f3ee47c63b22caa398f196f893a5d9e8d5c96d0943af1abc3dccf4c2125a04414c86e550564cf4334260109922d1cd5805055e60e3f8b5177cbe9eac5026c84478495d62cae8dded775d91e3d1cd687becc2bb3a76f6e89811329e22c29b5e679d05ca74b209faea4fd24681c378f1eb2c07f55a42be667d466ee6c9da2ee90628e52f0b4807424ae818d84ed8be2d987104b3215c4470375a4dfc909752a114d69b029315442bb82ef21826352b6b7e7d5fb42ef3c8e9d6596bef2667dac23c7dbf8a6c932d53afa1a3d92ff8c83c68de3474e230b227090852be4377484cf001b983d56a5b70345ee9a0cdbd18862ca2dad59c98006b18d131e98b718db3ab8071d602ce4a2ce076cbb3debd3123a745fe75001672cd49905620e5298eeb237b239bc16dc7f13ac433994dbdf49b8e2b0588f2a3e1e9cf98450ed62788eab672ef29726d6627a4255878684eb19dd70a6f3d01edd45b66f4f1d0db24c9df1096249360efa3518c3c98d0a845a8bd48a92f22d47f1a32062ee988d71cd338bcd53fd0ee79dc19c941d57960f5ae0e64112191e3a95f0c2f24295c76ad0c7a8bed81f898503a6aa1c6eaa364ddd9cc4a079a7643103959669814f39903002c727f17b0150a4c935ffd5e49cdef4dadf3e0bdb1a1bfb04a4194cfa381f589a87f67ac20245b5721edcb58f5fbdcbd0a5f162fe21ef68b0dfebf90c26c36d9889024485ee7015c9b208088723ef500d3c8892ceed4a9aa333826ac360181981d02104d9183b70082ec76967eca4210ba4956a10573cff055debae85525d2c9dbdf83b033050d89aa751e8868ac0a07f7d61a92d17b6d7bc520ab3596d3e2589a1b8127ec3fa1c6415975ae032d44650768f4a93895d675b4adcd9aa43ac0eac7051608ba40a53205173e381e4dfb558fbf8553213ec47f1ae639af9562d6b552221f7b1f1b5ffb8c0a50a608b0a435a2d7c012ea458112885b619782c7d2bc6a5353740fd36cfdfd3469d78e4fe1e30ba2e43510288d2e8d225696761895180866f4815a6bc62129b036678a39cef5565931e42b6b2a4a04eb6af6461a37a0a5293ac59eeb92c6d20a249bd47b0349767225116955d3a705ecce06035f205326ca12672d4d3dd569e524683ed3b61ac11058ebfe350250987e76ca95e839c63bb0942773521079ea0b6ad1f34b30b8f425c3d05c02c55c9948fd3bdad8941b3a062042ff5413382eed7c6f06bd0db9746460fdbfb824c0bcd28b29d28666e681ede81005180947acb02b4266bc7a2ee4f726c80c2fc7cf222b73618cae2ea3569407c455cc8a3341d076e12527c5ecc31f08533241851c21f06420d78cf2521c7ef984b84cea17e092494fb08193db89b329312898f23be68dbb845a1a35d817d669fec914dcf0d535d3dc74d7bb90d7c1812ec1e24634880543e6440fccfa8ebc439379e09f53175548d6bb700b07ec4cbed5ee21e0d3a4ed8e6ae805d2028ca18e745d6f1388c4398a9cdec292255cdb734b46ab4f35d4a49c9400363d0d1bf3f22b866f9f47a5f4873485d9fd3a0f39b1566401e771059ae1b79e50eacc6b6ca5324a5235133a9569b6f58d7e53af4f6e9bfb4bb88433893d3f06c59fccf7aa397972ce3d5b2375b474d5cf84433968db0af0da4a3bc19feb4d011989f7ecdb571d73aea6f49226593f4c1e777df1427f0e3e422e107994f05a982ada3586a35856b9c89b54b951935418467e76136de736b9cdd963fc3af99809491c16ae8a608526016685f5ba7355323ad4079b4c4e319f907a6fdf583390638a0ebb862ee8efb566052c6ae7b4d6bb37993917d46ccb82dfcf90f3bd71812aade02092c3ab41f2ae099e12c0a9f1744de40c5766831a0bd2cb811825c5d4ac12d380fe08858f082c921f3f3ebc95cc6e811674639817336a1a500b52549cfbd05f91a9caffd004d51cb931012b4dc03ed210b24f46b46cce85a4469661ca672f81957e01d3a548921efd21e0262b770bdab2fe13e002f38804df540416382cf2494eeaf008d9024f4056c12ee89829c0f51578ad892f3101c5a161fdfb6f88a28f3c956b3fbb0d33f0b4b72d04584419f03d2538ab3430978c435236f4b9269e013f34d0ccee8b7ad0e5bf7416068510ffbeb67f7deb4bd0e96982404199e277903621e255bdde53dc4a158cad7705b2597552537c03bdc0b14e102a37f100d33434bfa7ce3ba33b554ff1dea6e653306a84d25a31b58216d12cc19fbd9cb2ffa9ce46268775e08a4822c02d368f8990d96e52528e98b6b95daa81c373b19f0d7d80b843558895b496cbf6498cead120985c473b5f22613166930b8040cd41b1ad8848894c38de8b967431012226740b7a74d074c2df15bb49f4d8683a62c8e59e1c46b650569666687c6bbe7b02c1158e33b2ba1e9667e26e38678476d075f48d21dd85c1996d4adb36c01286d6edf720a41631287ea94fe73e821f939eb827001c57182eac5bae48fda6e1c3b2e5cad46f0c3f2c5baf48fdc6f061ddf28ad46f0c1f96a1455221782580a0c971e4d62aab7f23f8586ea9a2da1b838be5d62aaabd19bc586fa9a2fa9bc1c5fa962a0735c966a93e55ed6fad9973df1e0580320d805a4e9aa8b928e8513a21499878171c0708b5efe3c03d96810721e43677c06032c5e798b36f9acd5364d2bac1b7f946287373cadfebd3d1e03547e9b665c0353b6d97523f93c775946ad6be7a018ced59aea7fc9d49c94ff435f1820f9a2374358e8c595a021659d7b0a5b2de108331f8021e0013e29fb8fc7de09e71eb066f24c6c3bbf99f6c87d02a4591e34a0151b6737b0f0147675a3980b749b10ddc3a758949b430d8c75acd2dca81eee54b99f539ce90f23582d01824ea2c6a74cf5ce4f1facc21858a9f69df3ba03bcc171c3bd5499aa87a959eaa2f34af36786e8549e70405dbf460e1d8646b9f28a9773d4cac1f439d262ff4b24b9f2ac08e8d41391b4e26aad1ef50a76134665650ecef971c4e09e3d963a2b6baca0a3f36ee9d336ea89206cbe5eac19225b6dd0a0da04a8e3a16e307a209845bd41656d8dced01be401a03f38c70cfb3c205a094e8864d1748517981d77e87ad5642cf948140a5f3e1327ead1a1f62b1c49ca65e4623f1c3577c0d730985d4ff411535f0ac3056c188747d4d8ed94ea4eda8ef867d71398844244a738efce02437318f0a7b40f21b382f7aceeb0baae088b246815e05b7ecf8f928a5252dc69895962e1da5b6239222bfef8d4318a1875a007babc80ec21309c88bc2516a7a999dd2876b34c1d56c94d572ace176b6dcd6c9db8124029f96549c8b4acd99adb32287fd23e7eb650ce6d57a37998bd12517e9eef7ebce42e2e02a8cff7a19ed2cfe79bb6b756295ce0e36dbd6308826ff11d6d9544cfbe88691ce0a31c8679cb48d791130bc8bec09bfafceb4dc7b8ac4628dfabcf6df70702d4c9e23f004c7fd51e7151083566d109a997162c532a76523144ff59cbd73fc580e638c20339a56a9b7736fd21ba2907f1d202cd1325889e3a01a75ead99a7644238562943fd388d5ccaf65acbc01fa0715385c30ced19a0ee8fcdc0d0ecfdedf7fbf0442d0d30a67c10c06025e6078b57fbab9fd3377be042fb5ffdb5ef96b319db78be31f8003f8cc59baee2ad59ba4257c93bfe106269c3b55807d697e6f0c14505b3185c2b6ddd6e4de522699647c036b035a03a54b4983547a24be0f9d8b11654a4f8325b7d2039bc8c431ca938c0b4026191780bc88c4999202961f56305ca2a7e74bd9f3a5a8f460d4278ccb18226896a028959e892a4f4c50d5f385863dae61414a5890a2f2c39ea2d23b417d9e20d10648f9a16f69e2a54899d2ebf1374bd65cc1f0873d20bcf658e839c034b35d4f33db7be6fc292a3bb0ab165aa262bb959e4b05c9522b2715000d7fbbc2be0f9d0a992656250d7bbe94de892baad243f17de82afc282abd14df87b66a4eadf4348d618729a4d047b0860a59a57c51fc3ec46c6eb792863d524a4fc5f7210f476315a58c7d1ff29851448411c3031624a6420cb50a152a54a85831499d1f13c491a2d27950ea9930e7ef4e4f223a537ad9eb9f8d6f8fd0f16b75a4a3dbbfd5cfaeb883ca5e77a20580ecbfd102744a54f7bf6e1737d0e32ffdf7fe84519e4d593e9b6a9f33224a9f602ac2e8f86e35656f655522097e59c088fd7a043af3168f53697173ab48455a765ad5234c314b46bad49dee28eb0573c69cfd049ab3173f988d2c52c8d541cfd5bdd4bd87535713a3410627457adf194313d1a8a42a51492b809083d3dd07b9f63c5e011b7932e04c44f50daa49aa8582f84822f92e9d40a0b0c3153842fc60c10b3ac290c901c91ca9296f4aaa39262a5dee74da6b7f8cfdaf3111fba34c9065ff87808ea19b16434169afd8545faa310a336caa33934da39610d1ef45da1fd4389909c2c508a9c8926cc88d8c112252bcc82940920a92b6744894541969299d604b026707241d95a327514854dba390a4b6eb178cacd7dd656ed8e430c315353d3c95288018313204934d0b90d2b5c615b3f13ccfdd9bd3e7f4393d749f7fdddd33b0811d74c6c2f34ae654b84e33d4cbdccaa0d954dbaa3229c660aa365e7deab488fd3e606b4743ef9ed2a736d3d15a6bc92998b26cd55dd7759d4875cbdeeeee9e986bdb89554399d954cf4b7586b58069975e2f0afe40922727625566937b6a21a2b6e993162294b6de538b15904de7d77279b023d27cef681d9d6abb0dd07bafab13adbe2e0f3c219dab0607d31c475977c70e0e6947adcf3e6d0f34c22d91c8dc55a439ad5e96eeacb62e0fbccd126f7835ab722ec481aca57ac7bb13ae5c71aae274c5870f5a4581a066281055b40a043e9e9e9e9e7ca041f367be8a96f933681ecda3a94835493d528f6a927a54912a92d150098690864a30b4646849edbaa0200090130033c8f6a0743d20469f19b77368f907769d7de4a23972e2c07903bac1aec10f3c22bb7b1378855dc3dcd3c04eb8a739d186cd1a354614410468855978d5a55a8043c8dcdd96460834419c7941d5061fe8826e4c2ce89b427e30e3430f3c9421d3821dc6e890030bc4e0b082302a50a306cc0d36507d49410d5eba4c7191a2216a862d323850c7ba2def63753cec9eadd0cbcf9b258d82b1af5b17b2b1a8c5f6acf3a8f1df8b71ce9a629c812975cb71308b4d442525454a09dd9055ff7b31ce79b4e1ed3c7fae117ff3566c1df3e75ecda21d2a284bdb969861bac5c4ba4141dc101d6950cc99289af071ce17df357a63d7ecf58b9abe0ec9dca0903bc5be3fb3f9a59ff25061df6750b458ad3b7f3a3dbb8edcfec209989e26f6d4168f2f73ea4832d5931b8cb2300c79c23083998e59668ab924167aa21b3febf42c6f783b5bd66aab8ebf576ba411e9d606bba6391255095e547175fd765ee0672d91c889e8f886a8c33987306f6f020f5e8231a519bf70ddc12fa32f24b46fd0f8b6dc1b8be1188ec5c864ed3e33cc91e0ca699f1de3c2202a73916442de1b343a9833fe8531496632936455e2d1c69fdf43686aa29fe28879785e7336c2e6a8eb1c1a72eda1d69b1bc8bd75386554574dc3dcbd16e39a73091f45540b4bdfc954c28d24c9e7a68360d3368832675ea54a76ca647a2369599ac258a11095053109f2ce9bfeebabe68eebb849a33c4a6bad9cb56efff35c7aea6fcef874340f067aeaa9c920a121a29fed74607be2e582fda7c583b2b648eb8141985f469d789c30177610c2cb80f68b198e8ed3472b1cea9886e4f6dce5e217a333587e31b908483006f006a200840261009fc02c2016f005f00a680574029bc02a20134805b4815f897d7f965f4e600dbb9e608f063d247e8a4578b06f822e60d7600b200bd835b842f88127c0fe8153b06b504aec03a3acf81d2e2cbc161fb834d6496e5005100af8c4e7039dfc7c6013181fc804e803953e30054c02c1f8f179e14236b660b1a245922c224738b8d2110e4d74f8f725235d72da0bc0612af3de75a5f88827b6a075abb475dbf2f2e60fd5a218ec8dc0cd983078548ab852f6283fec5142c922a6f45e8a9251e9d5285347a567db54951ec784040985c28354e9dd2a636c51bc4a925be9b548a82a3deffbd04ff04294d2fb60902a5d42928e4a001839a2c87d70b2e442e9e1ef435f82e1a685872d47250d7b7cf0274645be4218a963baeb2e856bb5ddca6a75b5cb4237905cc7b53c77772c36ef8d641a83c5e53bc9711c12129ad40487b1a710f99bfc9f20120c7eed38e66d7f7d19cd42e4a5315ceca93ffcb317e62e8d0144b5c4c31b37475cb561b3468d1145106135441a21d00471e6056bd654b900881fccf8d0030f65c8b46087313ae4c002310ec4dd4ecfcb75ffac6d3d56e8e5a8f597df517aabf55f032e64e34fd53559bc2a96989f527f459823d533860e3acee0627a4a8f7001ffa90b88306360608e54ff5ffdd46ad9ae0d9055d6ae1d60edbf53563506aca6535629f99c08a68d739cb5cfea5862d59c8bb396b3568ce991845a6dcd72c45aa333e860abad36ec1fa6dcbd0a540daa66c58a950c558bc1725dd9792deb1afb030ecfffd37a02a55ce5b87fa81a1c1ca66a18ce91e953706ac8726ab55aad96f393f6c88f5471bab5d5efeb7f92fa3055f3cea16a35f70a558bc1d32ecca37774bed694c76269f7cbeac163055bd9d129f1c365c5a3b50d540daa0655cb2bc861befa905b0560f20dd9864c95bfe414e41ab297dc254f652e592ad390a3f20cee6e256f71b772b7ca3260d75a62b8a1000a86a7f7a99cc5dd6b194b7e215fc956b2536eca5532d31d5264b3d96c365bcd56ae3362b14721dfa473ae15b1d55c688185154e30454a9425153294fc243bc94d3293ac9453c8495757d9047949462197202bc948f9849c2423c947b209d9482e928f3209f208b208eec889f8bb8f5f160a414564c7929bc987dc3dde9d05fa62fb9cf1ff94be8d272e642357adb5954d104e3629354714b55afaea9d6a395667613a465fb8e55384aefa73e1701de0ead6b52cd8155d99c351f5d59cb5b171ac3e58cb555be44fdd5a6d5333c6dd39cbd91bc6fd9f04c577ed7d611badfd4ac2ae692ff2088b0d8bada9a929d7aabbbbbb13691769429b922325dab1e36554b7a68873feababdbd54d894d45214e114fe56860b16ae52e8b6369ebaac1b2d171586c311cc3b138426aad95ab4ed5f6159399cc649c2d74b4d3d659bd7e95fa3845369bcd66b391d635f5993f43e6bb96f0ef2abead4f22b9b4724e3692eaeb5cfd4edb7af0fe2b27c571fa761d8705dfa67ba58f7fd6b53cbdc10c9ab38fa5e3679f483474b3d1da44af24afa9d574e774f3d5646569d58162b13916dbc462cb43b0eb2c04bb9e41b0eb69944bc824e41064201904013486d553df965e32d2a57727d35df2f48b89d34e6e4e84e5a5967e31652a73ed33328dafc4595cadd7daee59d65aafab5673e4b6228c8eb4abb572b56a2b92fbea98e65a36dbe8131b7d62246eb16ca3605e59627b56b7d652a626518cb8c141c99a33417628c14b0a6188c4f9c104272754351598961449ca228608871f4254b1d0420d44ca3f334403ae0927b1a93b7b4625b960ff9e5149666a13cf9bdec7d2b496a679f7f3cfc5aaa3f37d9f667d9ea75b1e77afeeee24fa1f61dcaebd9056dfe9e70f049d5ecb0d0f9871db2f5102763d432b6ca7d3afd68aaf2beeba6fb6bc39da3575f0eb8a3306f7c3af4ecf676d0c54fd24be566afd5656cb65757e87a6b0fa9b55830ad2ec266028421aab2b288baf86b46afd690068005c09f64983a8003cc617ce3e2a2463860fa0c53734ca5a74594380efbab92f7c7c7c7c7c5e8c2d5810d9ffb79af67657ca596b8148922449a0162c56601aadeadfb6e4403f8d8f070c072e1be3a641c3556dd830c0d73ac20042d6be8c97f1325ec6cb78a17fe1423680ff393487e6d01c9a4373005336b6b818c797800428c0755540a704bb07475c0e68d0a0418306073f3e2f32496d7c390c70e3c6b7800320208611f0e170d5981a4707ad39d813f081a0000f7c62d819905b73aa7f5073d41c3547cd5173d40faacf0b179a36e0dbe9e2006bed03e69c5f3fda6bcb715ca5fbc319c25743cf015fad303a250ff82400810800c126f0ed74b1ff9e04beaed32cd1866fd14888923f56fd46b9ecb43781ef862cdd85f78d70d9690970e0f792073a7d43a35b761a860b845a54f4d3691f1708f3562940810a54c013a1d62ac2bf0833a6649973ce79bfff77a421e11096865042c8b8a7f6ffffffa756cfd774bf486bc0b62778611a202f13066dce39a7f6f9ffff17d6057725ebbe7a85c7fad516ad1a534f2f970d66f16685179b33e3f16a15aeef9585837553d499c4e3db301ca26afcbd9cdc143c2832c0e0c42b03d8ff6bce394998b8afa71273823567704e132534e831e1aa31f5fc9f334c73753338f1b5e48c3a9318a440c1a353e8da9283c5f0ab3e31ac23ea969cff7f8e1b77ea2bcb2bcbebc985abc6d4f3ffdfc6f6b42fbe9f73ce9971ad3edf2b4a2d0104fbebe9318c1f0a04c349201924e8e09e829aad967b2e0bd940daeaee0e55b3da92e0e4e42484f4b5a9691ca994900cf6e3ba9202a8248e9a6cea481200028200a316000018100686c301914810c88126d90e14000f5474367c6a3c14876381408aa32008c22006a210066210440c324621871cab644000ec9b3a2e38572b74294ac1ec4dfea44eb0cf952a2ecb5b9c26877c16fa251ea157fb83f55e05f5ed2609284671d3fb137c4763147d9b7082d4130747ed08463901c89920098cf6c1e54346e1750cc5b48b640c74ffe195a9657044dc20eefd74404fb9e58f8323b54ef348a4419dca90dd2167f7ba66866cc9a478e8df817c4f4064d3a89b11435f5be083d7528769807e6586ac07295bdf292ddf40a607c74ddab3a773866c6dda9029a25d19e9818efb653df80bfb8d7f055b31fa36ee47b7f679381e316f7c6be759baa83039079681b53c03c7700ab541ff66b62b2fc63e4219295b6067bf5a945f5380c8fd44169e5790ea8dcf69bb9a8ee5d0c804d887480042f141b53fa92fd9e2f24a46b1d2326b8a3ad806a50f8aa7a58ac0e319c350cb001a53e8ce218ddf17ec91550aa011d03f20c5a0e3b81e111d777d76143dd62d68df7ad10489bac7249f50f41e482a5c0469e2cc439d8cd2fda24deaf5f023484c923aa5ea6e39da948ef4e944340cbacb4a36dcf44552808ee9279ccd47969a6b4e55a924f2c7ef1bb396b63c2a1e72c41f9a3e4a8346715b5f35a3abf51d4190355d48e7937bf38bca0e8df50bfc764fb9600e8131be07ccd8ada330b6c2cbe0cbeee5e039baac20468bc5c4bcfd7961b207c46551fb3b59cbb29ff0f549aed6fd318252c1c98a25d939ea415497eb173d517af11c5144a70a3941ac4cd0adae0c4b477f0d20fbed3255ee1cedea972483d978359eb2fd011623b97c36fe6125ea9246a1b9fb75cc33afbd838f31497dc7670fb85463267b98054698e93257b7437733c477b52dc4c0494cc2f6b0dd8c39d9e66ff6ec5fde324514b4237aa11a25597e79d411ce2354f69ba68e0d3beaab0488c642453c95b7a94b40e8c8a080bceae3219471b0082d75fd12a2ac8d617a4c1d9b5329ad81cdd590d94859ad0dc77afbd43259c149c2d227d1334bacf35c107e3a0e0fea18baabf8d034a70e841fd0e0848c2e9bb01a65e78e27a7f14af2de864a5fc00372bc823117f9a1f79e79adf95241d020ff49d8b0a89fd2cb80eb9cbe54541b82f6a9eb9a969293bdd455880a9db60d7cd8a412427259d08bfd4aace0701ab514c1b39a6786b2f9d043ed21002ffaa2a1da1e11d7d1235fb37a9014c8525f9228933d0a15707e244525fc0e3c7df43ac55c27384a58f8d22cd9242e101cf5efd42df136121040382a19657951d74cb1f55e67df73c093fd12119412cdfa748918783766631359bef45c2714f748ca1fb80c5cc6bccc8a992ee5389bbae9bafa3de80627221ace57657cd63050385a965e7db839dee3a3f91f8a6828dede6e9398974e8d05dab1568127334b0938d8f6c95e5014bdc42626592fe5164be42bd4cd2ac1543e8a1af6be14cab97a8d56c0483f3631a8e712efd2c757341877aa1b168e9dc58fbabe0df838dd59fc45fb596f21be5db1f9d19a8d8bd3e897c6fba60a60c36007f505037a1d1803c60c6f7c63eb858f748a10d8fc55969dcc1441e3a704621c601c6b6b7c3718c5785b2f0a7bc297a4a9489bd988d4e36b15bb1281a8e198fcafab71751a327093d57e6e01d372708da9300704f345f266c481a683a8fcc7695422013ec962d41f098df1a2b7a29bcc4bcdc19814be5ceb7852d2cdb9cceb313eda39d7beeb328cd9954446cd925dcf0495431d7b63c2e7bac2b1ca5985057ebc70a0b171fb32c0f87e9a30924e01b2d371d94b1e3f4be327ffc5e0e185065497b1717911bcb960dab81731387ffc64b9d5cf2338901b443a2f63406fb9be16fceee5a5406d5586ea899cf3e0f974b6b24ec9891c38b40e551b202f261135ff3010b588d842ed00288666ca9ce3d6d4d601f3a4c19931e038366b91ed1e8bf4980df118cdc973f3691f616431b6eea6e6436694cbb46fae0e4409b6c70811618c6ab6cd4da5855c1c4fa87f1a675bfede90a821545f20c120e4894c2d09cac7ce0b46367a6b54697aca49950ed183e66465e7543183f1d29c2e139d532c70b96220614da62e7982da437b2e510d5d1698b4e81f3384ca9dd4e2514841efc00cee601eeceb91d9deb0fc53514c61ff13648d3f7811ff6d9a0629fff99f4f1ef8e64243b7ced326fc8c53f50dee28cf50697fee6e6db11898750df1b2ecafc72df3f05011a453df13117e8d818ce4e713a7a6b130e01b3d0488b7f199da8df884d1c2d9e891193af9102f6f21cf7048aed1f4127482b5e0481501ead1585e38a0a31b924572dbb911ce3ecaf426c4ce6e585a438838c3aec3bda4715cc7b3817796c0e61eaca5791352df9f600b1b9c240d8a460401916b2ee23679fa34582032e09c6597919ec16fad72d77b753e90a8b9389b7f33a211b7bfb3f39734fb1009efc31dbe4d08a255c3449c412608ed60139710ecd66b32cb8fcb46ac8107181b13c9cd63f6cbda47cb3e25816921fad2f00cc0f451695a46411ee3af178b3a9e9b0a379fb45e4a9b6832e3400046a79b8b275ba61e8c642b60f835f88d84148d539ecdd34a828ee04d4016a388ca72a6f4e144b9fe207611663952ec32e45b6b3920103a8184b1d6eeacb52915cb83ab5c842d5be760fc3f54bc9cd3443d51e2506ae15c72abed8fa75d377a5cc6cfbcd25aaa04fc6ee17276d02cbd65ea9f629848de86e69246636bfcbd331111b60780d307dd4358941f3e2121cb43b1360c09c02ee595f8aa2706905708cebdb56a28949ce7e0337fdd33fabc8eb41246105e34b924dca3ce4faf8cfdfb962490b2200c51ecaec7e0974be6b1f33cc92d565680f241d4bc0ef5762a01b677780a9e56b30223e19ff77100e27ad650a8a0ca50ab568daca816659bcda120455cad2c3e199da5c4b378017fa62bb545557797163350b53262366258b773cceab41b0b78a51da9cbc74b5e80f2da97a1b9e91497c259be6c86c70ce0ef541d71857440f095b3a8f9863739a59ef7786fdc54cda15ac3421c8e001b1fad99be1f079535cdc3347317b6fb7f2afcbc910ae0a137b7552e96a10f1257a7e591ac7bac6d81576bb807baf65e9e3006ae2cc33ad2e50b9eb9e3298a0c8ca75204c3eedbc4d25e9b5a6887753f63ee82a78963abdddd3400b14a639692ecf8a2aa69369811ce36e5c741bb8f2edb43ad907553feda95672b15221dfc94ea320f0db4320a03af5134e2f60be419b6251aaccb425ecd3bb2be681a5208827c55b4b2e915c2ba20861a5000e9b4567070cd2b890da8d0344f86ade9c692032b9706f6666b860bace937102ed3f5e0581eb90dc0aee245af0385943ef3c3ceb5bdcd5b3d50cb2814e15765587e7b1f42240feb64a22cdcadfbfb78fef9cd6b508649c00ffece3250586f8f0d66300cb1203f89d45cb20b3208f705bbc889dd1ae98bb978123d4fb85013f24567993f10ca19b55d2bf2232557d5e6a99b6f09372295a534839685972e0b065f0c593830ea1b6bb18051504dd26ec9f55acb184306976f8fc479360d27fea39034170e6e48632a07f99b0ccd29ca612eba6d31de307a53b1248b0947477d342ead8f3ec58a61daae8d24ac2dd34617aeb815075ccde96b492840882bee5a573772710f40d3df1a7ce24fea7672a2a733543db28e9a68c615db8c8fe94af467a65a939bd23f85ff1df4b762bc0f65a3a9273622176ba33e67166064eace150d377d067baeaf6b28b0510d9710ebb3e3f83a18cd65761e3cf209b3a7ab0e628e59163d5a42c05c762555026f3d71aec8221a6c576445f59bc22e0e4ae7b7760ddf134ea857e6254d3d4b85bafa9034acd85bc6db78b8b47704c0916638a84846f1878d957eb942712b8947c48811352ae8839da068c312048c0c0e470938ca9060838d954ca2ae0d1697140c20552a8a6bda9ec41678ab5ea1e27239ab60e5b26344e2cab9341a262e633470ad0cae42d7f1f3942aee3206d5ef57807efd33540570708016399bbbdea43305ac9fce482bc104b165f08deccbd4548c3bb453bb3042beec9d8ec14f83f952b0fccfa6bf5afcc909bf6d6fd0d9b3b366dfc4659f6915fbfa787a8be071a78da7d06cbfb66b3b494a6ab692d780c63b6661f9a1a3d72e4594c3857fbb8422a6ab81b94ff4dd37e846e978803c9ea89e82e957e9ed07fabc18a457e23e7adb98a36df06309835b235cb1c419b93fd01c6e5ffd266d78148b43ba12d5c91c4a3bdd60d2999d96494b816780ffe3a3a42981cf5267410537b79bdcd03b098c3a13f85374324500a712b92197778be4a4157e6abda1e6287f62288dfaddddb47a0909986a2c31943f21506ead9c2aa07e2a1ffc18b500bede2998e128d90d01847e19a0c81aab1ad64a9bddc14d53dd85f751f727f0118ceb068a5f2e8cf3de2cf52d74365974a8c3fabf00bf6f8a3fbbac5c6c3ec9b72ecd9bc68d86262dfb4dc9a23bc92317778bd1220e26154998cdf527d8e8344f733788589a480b3e84f7e90373490f11a0ee6c52b5c4d89d86d5bf621d7b1b55f5b472e82512a2244a04e94377bcec418d9cf698d49be93e49d001de465d7910f7c11e84cc46fe1b2741b1eb5424ee27d4b0d3946bb733759c663455852681ecddd3a225e6fa4e047dd8d21e706d40354f856e1641e13ca96087228477ad1106bfe70682d9299e7dabc8967ea55de6357366dc3e204301d7a12d87ddc489f05ae43b7d2a7a92a7ca1004e4043144b7a07661dc9020e5e60d5b81020215ccaba8ba9675d1aeb3ae62975a4594f6b21de462b9d8c881d6eec1e2ace7663633c409a8777e300bf2661823f8d1dabff2b075675e89855512b98e04d6c7921ad09816d02baa185070698a9aeb74e78b425da0916aa8a07a969bf0291f0360a51cda9b881beda1e65eb4bfb8bd2ac7fb9394937905d707b1c38525c894067a72d7998f2c4f0336eaef7d1a4c4eb5d27da294706747dc37732e2877b41c2da6b42fde294e2dc863155ca49ff6d23238c41ea7bf60b4e66f1a4f48b93a1b376f5eeddaeb3f154f0c629616fd568827c8cc10bc8454c359965a52112ba4c7dcb01c7f9f1447332be547719f0afc13c00038cf40afd5afce719ee5b96db5f8237996aa4bb680954b551f8a23f298196e42700e4ea5ea03bb60e643a46b85e91120105cad8f70c9093fe1cc5b3d401b117b74936ea9f26cbaa3e35b319ce33e5cd4427b7507c8f2204b092af5a776f804b6d27458fadd8253ed758b639ba2797238854bb1f634e8920cca8ed45516e52792478fc7ddf0140ad8dc4bb77557a030255b0ccdb37edaa9ac1fc63527eaf94ed5531efc031136529a700eddfca7c75dbca686b4129ed25d59ceecb9cfdb459bac9b7f20e66a28858a811acf9cc276934bff43a612daf9c9c5e12565a497d0813846bea9b387ce44f643a109258037b1b78282120f4a22d27271f97b3510b63e56cfa04a66fdc038ce319a9fdd1c3ddd2bfc3a3e5f6ff007b62393a4af8cf4d7ad1c42b8d4c84af5ea02efe690dfb9c39502bdb8d479add27e821670d67d7ed5aa82fad7348f3abd692af2b726d24baaa40f375477aa67b1d42d00c42a4ffe302a7942762eceae46f88a384563ce514891ce44ee02d24cf5757acab9882d8f030b4d7373eed9e7006a2c8d9ebb988e8cae81e68d3951642ab608381b5921c722a6b61fb1d82f2732433eb0c6abdeefc49d2835ab6e3c6cf9ef043100cc350f263fd582059ab1196681e7950b73687cce4a99e0580c3c0b42b99eb6ade253f658251834e52395bcc4253166850aee672fc6fb94fa55b5ffaf3a963e72e2af75c6bb5ce64d5cf277a929523a3f1dbf3a55bbd4d4e87cbf30cdfbc5aaabf12f7d04709f7dad6fe8a1585f75767f1c75eedfdcec91f0d0fb70d9a737495c7f24d7390d458e46d79dfaf89c9b3f14fd3bd9841646f0e41a60723824f7133712d97f4b2cda0f749b789018f70d93b86f14358b74b4adeac6dc116d999ecb4fe3239d435d3084c043e1c8d3ad35fd0f523d27d085281c75f75cef97983d836b2198dee3b3a94714ea5e208630751041dc98844421de3904fb81b439e3912c77cba7280d5cdda9b6bf3db8f0bfa16ef02ce9eb4d3fb74ee1b1c6ca99546c4f6330a10c86981b151f959b932f90bc212029300a716ce6b73936f1e17cea71964968da8f43545c8a0ea27e27dd2f9f7dae174e098531440b1b1a96f609f6102907317be37308348b2df297d7d6ee2086c9f56566eb1be429b4f4ec083b290ddb3329bb7ce9be25914a512da9a0bee66a283d574c4922e99b29b69ad1f836164560f163160083cdc3d3b118c92a9603872b46638cd5db7d3f96e7c227749e84b3a64a1502f57f11dd676f5a5c4bd4fd36b73f180ec240beb5f10634a8e87f3fb81211caf5158c32b687e98960810bc1a687fc8ed855243b6da22299b05cc7750659f56707c6510f7c496e267eec82cc6f63b0f2e028d61a563f84c238b4ed0f6c70dca0631992c52f48d16e84c7431124233392f275714b057ea0743ce610b660846e90a3bc00105fb3dbace5683f946bce67172bf1aef1d809d606862f44a399e9d32aad05f70ea5ea251188b15dbf3268322bf7fe26a90118623cd6a8ee6b153d2b918d1bfc1d7de7c0996f174193489ed0e8e228382db194e33b816cac1984a5324c2efcc8d4c1763d967346683be8c4532e5ad19a61583ba61f09530e88c34875d998cdcd6332b5fd1666c7897002467d56d882410ff30d3e24bd738ffdc3920b0811e3103c81d27d4b9618ba0696e516ce258cbc138dccc7e372f98f5187253ca06476a19a8d39bbf8e0e80290d7604af7e5b1a143620337ada9dc312e0f1f140cc9e13d1ce86aca982a9e01b7631c6db17a2c5f5bf0221c0b5bfba60a422f620d5dd23212a0865b07c7ea16d1277b78083e92ae25c6a0522702c3ecdf689835082e259476bd2faefc8e8d97f287c676c364b046a59fa291bdaf00f0ca28d538b931132179c68b3f674584951bf49ec41d37f4a8eebfc821226c0ca30cd979cb67da8cc4dbfe23e7e4ae32ab778f4a7e37a037f4fccab871d28385b128748413f490c653e9b172d956d72bae63111f47e70f1555da59ab8220c33a56041447bfa531f4476da14a514d236d32d45a305ce495565595cb952823f3e2514c9084f09101b3942500d49bd46fdf503386cd8df59e7a1827cb9f2388a0deb99789f7b382248dc069234c15a3b4688724484618e7c67a2ee53ed4d862a126ee00a92d3018532a22e96925dc4a6351eec6b01a24b6a67198952775113309712ffa64c7e310704bc072eedb1d8f3a28163f57900b86a48f9607511bfe5a9c602080df169b984a40f06c074a7fa10a27bc307e44969b468c77d111fce162f32d7d9c4212a977313a6b07c13c8ea7c20b75340e965c8701f780cd0a0400a99942c538138bbbe66423b364c038153ec9074cb117fbb02b477cae648e2396a28bd40984d6b50718ffb4a70e378e0616bb463f373b3034064b70e35e8364762c27a6ab7daeff34d30788195df50ea42f1ca9154b728d13e99b81e7a0e8490d24a4009d791e15803e417c4f62264cdfdc9fd491e4d03e67c0c331ff8e22c321a60d7bab3c1a676bab70b78dd4a3059695aa60b1ac918722247e4d3d8efb86c734f8485b80bd0df508d0e68df24874bd14ef7da3ea1d0f75dbaa23cff50f30d1d2fcdf895303ffc9a1b29cbf2667b2f61fd2028539d24eb8b3c3c166f4245954d2eef0e2a848e2497c66770056b46b3bc227b3cb6423a1d7cace3e6c05969420c3718629fe864cdfd99f6e97399315e8b5c1ed16c3e398264e60cb5ced783c86f411bc3be8b55223f450d8e9c481b2101709670419eea9687aac62fbfa3d46885e5c31f53996d0a73a0004865169249630223a27d486c2d7c6ae28cf82132467584f98f8adc8ecdf8f205642a8190d3dc3af2fb1a176beafd4731abacf9644e0f8bee9db7a308b15f1a267ebacd7ff6105e311d50e548dca5b0cbc310c816d2bbcc8fb018b4e9b11d3aeca9df938570b21e0ad1526838e0a849bb3a436ec19db40e7b687d8ffdb5835a53103e2883ececfb4ad576e7b1ca740266255706c3da0e45679c13b3dbbdd744b2aa44b46d77712d6ca39b161d71c956fbc4a5e83af164d47fa861c53f8f918e3b09bbbbcf167d2eacec40a7166f817738db9947dda6fb8c07c8b19bd30506fcbb318c060a7bf2bfbe59b4052bd90dc6445ba06a66e3d71bc97f788d83a999576ec58cb171e9c25d50c68063ad697fabaf1189555592b61f06ea9d54b0c0ff872d04163a8db8982cc99b4ae52938e6834ac50fb8df03090d8cbe24c3c0feae98461665c0f724509aa479f6d5d9dff79af82da4ff9b9fcca5e5f9809dac7de2b0c7f87861172f7ac348c3d6eb25b027752c6355772876ce200bc8ef6f6dd1521142493cecb6e8d3d6ab145ee6dd96ac67499b76879375b4b574c7e094fcba0b44e65d80c491933e5485f5b646eb67a498d51a5b27c1f7537f16bc79951615057bf1978d9e6f6dba0d3717732d431f8577bfead04aa227111ad06ce2dbb069694738f232c69232af630c0f409a1bc46545085f533b2264b89ab77f640ab516d21172a42f7ed47ca9621b043a10f7412ebb29f5b688269b99c4978d8b760c36be7e6aec65559eab6a45d303c05718e556eea0a12c270902b997f84de98f5ddf14a733fb880ae5581071fcb8671b3137f4cabee7a14b737c6e0af6af8f5e69d094ed00ee08967d7b4b6708b4848732ea0b353765326e4059ea8730692132a5ef6cb5c563c42fc33eae8a95943ffbd4d73628f4817cc1277511f585a8d852da95e9d86278f6fc4e79da3728d85a0f79dfa2d1d1d23badc84d6492df5edc58ae623b0c7de6da6c134b05bfe7de8abc8412f09af5b27d59423327ed946f0d1e440162985a25e1901630357821dd64c79a5b100ebb94dfcd2a98e7f3a681fe5645b07dd64c6e779fdfe6fb1179fdfd0df50a44d74dad979fffc610101d1e689e1f3fe9658dd0800e487e4b97bb6df0093fe7577ab5cbc03857b599c0b2a7e74fddf1590c2f07aa301660e2eab4d19de5944d5ce4875efa37f2111def3cd61a4b925c14afc5ecd61617c945d787d25551dd26829f5df7bf1f651b7bf8884c49795ba24efd4c451317e2c6532fc62b71d61adc93731f670eac0a13173ec6c9ce5f8a4422f83bdbe5770720fce307f78491c4fdd8e239b06276614182854628d881f78e8a7dea9600d6b6d34c79802a9075a7164ad044a5b179e162becf99c4864fcec6958ecf425ea0604c29b4123cf71bb511ee7a30440386b87548f92a11cbd90a117e5cb3e88e8ae04d5a91bd1942948a600bd13f0406f75d4fa63567108274912dc352d5484cc2506388a8c5c583b21d90e2c1480e3baa0a96941ad6760ce9dd5e65c1946c51a66b4ef9f433d9f2ab9c9c317bad62466cb72c4ed337717316d6ae0b9d29c5125772bae1494c06d5a425e3b65f2e332d4149c545932f540e740a1d97c1845b4a4d590ff4650776c64b19b270f6b705d027b793c860cb9e35f7db09552dea2605ee97f141a05b26f9ed8c215ad4e7d4f215637073ca527fea98151d11aba4b8d8e4a90f6aaece777a31f55b440da1bdf80f7c44d2b9f8d886e05ba658fe2e3e69361fe0084e9454a844dc7a8d251f8f7baffbe4f1587c3b6803a0f40ddd8ff67bb6f5f20670c0eb716f8fe936ebb4561c35b253859c490ea0eb8909d68a6e6fb1cdec7a695d430c00a5219a7c7e5669b9a94b3d851cd3c3a67e489af5c6a81cc765e6b9a78b86757a6ec9cf618de1a6a1a14e565261adb5f201574b74ea61095b7d5799f651a63c46119ec7e2d1ecf202a1f57edc167fd5d0516482fc0ad830f270b588f4aa8ccfbb4846c49c01238354a5c136f6610374199d2e372adda3fc3d496337837afa72d9018fd3ccb5daff94819bbb22014f489f514aaf2e5e6d99cc2cd94b966f62d93f6861147bad09f7f56d81ab13f95d75f94c427f4eed833ee08b3e2c2e4de4283f4efa6c8cfbc9985dacb3d48b0c3b952e927ea85c1595f31e6811ca822ac637bd5daeeccc85bf566e808187780e68df1065d54e9dafa94f54718603b5d9d8b28136cb1b15d4aa6a472810a2cf0364429d476aa66bd094928b892e1e365ca4c0972eab1cd2b53dc396fb0f221548ab6cdd7086e8b12fbf8ea9d062aca7ad57e7a88d14dfc93b0487979c82f0296c10bebc1bea3d0eaaeb3ea32562b88571d462db794bd41cf23d9f847b98eb4eb689c0ef1cef747df3292306ef63e13182351203ece19fc3e1867b5a6342112ed14ceba5743775727465af449605ed43f9bca48282270a7b69e12ac6c55d2ff7ea2cd0340b1e00fb49b891f422610a59f721d0c2dde3972b3adac717c4cb1ac9f3c1594c7777261622cddb5135f0eb9bca77fd193ae7e2298d1df0a83e9f6299b6ae2c951846093927b608865300647062f0c2407c2153f209bdec24b6cbd92d8dc9d3972a6c707a266cfc5d4287d1310b369cab65b49148976062600260be2e8d9604c04dae2fc2013f6baa673f9af4b2bbb2db87756c5ae5fe32564bb46c6046ca985497d0536c812b1874b75c1c750de1473fec169a1188273eed4390299449326d4c015db77a6b3582705e8943a300d722fc4c1dad0f028a0d6e6301f371b59ac42769767e002fbd01ddcc482a2b0cf8a41b99c55792c45b1d7f921c960610de7624ae7bc69961f9597adad9e2e8cd496024f3b0a5bb9cf2568cf46c678acd777e08511f712ce45f30b16cb13fdf98eeb9da04def73ff8a26f160dc5b57c8fb1a472722c5d29e63bc0e4fafce86a80b35260fea6401e833719492a9b0b70d42066a1a342767ed04d7512988319477869e0054416c5a9ffcfcbaf56368591f9de7979d8f96873fd881d2fb751b2c80ec18ecc9195e525a232fd7dc58ce3943814151a79fb3e59f9fae06261338b68382d5bf576325f1a9c7cdea2c58159ee64d39caa114932487148c9727d13cb63ebdc9c676892752f7de129d4377602a4a70a21bd2c0943b38d58f182a0c45ada95dad612911d9e6b988fcd76f3c37177d6a9891a59b6b89cb514192650adc8f20cfd0e410e71bc462e70261b79235a580857086799505087a6da1003424d761f5e0fcdee02d314094bfda3b5a710eeca88de6d026e89e21ef59349476fde2ac779f841e2ac499ec9ba1588216e91207ca393e0d817b2ad992f96b7335857dc3120d0b789de575f9c994bc467d3b0ac410c5efb5ee01d579452dbda00064ef5637b931698af11e759fc7fdde3afec0f47879417154c9a86be1c52a3a2eb353da6f7879c698fac5f5d53ea74f959de1438c12b9b08a6564cd7543f4cd620b2cb8d21e08a460c33b420f9c62156c50372e85fd06ed06aff1ef1ad5df455bb0a1e6166ca695feadfe73c1fe7b5db0312b186c6e6570b041bdd076c9014e4fb326a70dc048f8469befb2dc42db00c2849e13c3068d6dee43c19511179294f10160736173173dd1c117141fd8b496105a4dcd535484743acddcd2ce2ba86ab6ba0b99617bf0605674d6219c7cad7325d0df6b4af0694e4d50228e9f51cdcc7ac55adc57a51df779bc5c140cffa299bf095cec2597fe1769c1d6a4922aa11d625c4cab2f7edd0eed7a573c8ef65f48fe3f9947ca13f312d53b9bf8e3975feb8cb5c8ae3f37ae0cdf4b43f23b532887963f5442e10fe7ff329ee038d7fde1fe02247c39e8d4aa25e0e6dea0d3d8045731a02e47d95f2fc7cdb536d24f13e26fbf0306f65441b60a8db4c73ea66853862b6429335b87fee46bd14f8f40865e027f6b84e7c1d246bbe6568533deb9ff754bca71ded2ef3d90545330286497c95894f4b005460a8f5b10fd4de4e32657b92a21548bd1910102519183a5b9c7e96d50a8da3eee6ea5619b38507a05a43083861555eb0d13fc94804967980bca006113dc497819b738dacb91a790f09a733c3131d49c8dd33581f811015ac17700b3d5363c81b92dd8680d775a37ff5079414cdc9693d5cd253513955d3afa13b104470566bdc50024e691435da03206f6a995b1cd9ed880da4867bbca609b79e8263db443ceb682dab175513e1ee356bdc7624a86911348e88e853936d9323eea1a1707900fbebc463a98a6e472b7202eacab73f2db12ba1d9cf00eb717f1e408a36d723da6a5e66d3cd320a2302511426a77fabca7c86947dc29dc85ba912140159f641b4f99e3fa5798a2d11f705f754da3e34b08ff2d5a428fc643fa8bf38e782d700f5882bccde11904e21a7f2b2fcf5c89d148b143f1ca4a290ed9dee89acb72032fb2c70bf869880806955f9773efa2df87f345d7e4dc28950a51ecd1329b41c776d93d740699ea83da6336d2a1d51b61235118193a025539bf0e7df4071e0267d44c375bf92577009afaceb2c91289829ed5e9edde34a7d4bbc920e64becb0ae51ed5cba55a0b1f2c1da3a40f5d16914d58352dec4982203a854458cd3a03abb0c1a003f9dbb00a54e1e562af4f5707d24a28c0fc2ef864983f75692462f92c32eb1a7f441894415530c334b9b0ae919fd472084c20df289337ea2c6413558387563fd6b0d8b7a94a92076382050fc7f284b966dbf92c402b83d6aa5a49f91c3422fe98c9cd3430763a2fec46792b5b6cd3dc9a948bfda57f68f6286e3d8919f6533766d374bf2636ad8e2891ba575e226263e4985c2ec873e6ebc89f700388571a717d8ae21ea98b4b2df0f1a801c2a5ff511b99a01a24e8c171143dd6ff149f28d7ba1a15776933a027d217284fa9dbfa98358351be78a91b62b10c65f8874f1960c8c68857e2ba3a0dc398d034371ac5821441fa1eb93d0fa7ebf01d893cb96cc8113efa23e50bcef79aed7b553685fc5a49d4d57881ac3d2e80a21e48d4d2057f8d4ec754ed94ff810622987858559a21da269234a4a93fc492c07dece788135b271352747578a41c0515720ffb1cb24d925a0ce2947bb628eff4fa426c15ab5554408a4606de6ffe19186ab0bb1b952f33a981f3b02019419cfc7c5eee1198204ec27e42eeff689dae2b20ed0ec2d455e7ee48aab9ab8319b7b6e0a87818aa1978770d46d78e6d2c9ecef0ce4ba5e2154457ed99188a7275658d67e37fbdd2ca1f6dff7ae2a995c423ff7854aede850a5760803b475dbbb2fb38def80063de09791319fc855b5267761865123458f907c8039091a57f84a4c4c685f682a888e918b03f567e3f94a8561c14722d0a26440b1ebdf40bb0e405aa40c3676f0d3d87f9fa2d3aa95d4cf14c06da6844665cac11f359242f958e7b5f9aa68a23bf567bcd22cbb955e859f1a2ad616087de0658d805069c458297391e8e8e6777f4695fea20d5a3acd6c8cba569a50492130bd85f36aac4d4087d1aca542b1a8d5987279615956d019f84c02ab1a6322a4225a4e8c9f11256f02b568627a4e94e72b9093fbc738a942acf17813a3cd2e002a2f339c618cea4b536b4cd76475330e475015347a539df2afcdaecbaa00622dd74ebc83facca0e60b4ef4776558767eca69c683edfed1a7422abe135b9d01054d1566e2dcd490d5b4b23676eacb80783b215e0ba6b72546d39e8aebde54845fad6141b1209c2caba9a97ff25022f8b181a8940ff782a297703f41b4e7e11ac6445f1138c953f8a9419ede90e51660031b506b8d97806c3785b47daa24c1c340e62c6035152cbeaa5c02b3fd6577d29ba1f8014219fa587ced6b78908019f324eb82d0817357e47c726b957ed02d06ca11847760bbb43d35e253bc93e7b5bed9e889c4814781508c4fbd5f707ae1885dcf32def9d552410ff1bc5d2a3b251d683c750f512affaa796569c65ec9ee78590bc8040e470f47549d3443276781b6367de958407ed801571c19b7e6f38b6ee5401891e2a8657cf470dd35b041ea4bc69491e9f43142871f5bb8b1094d8d2e25479994dc813a0eade56bd79d8b6f79c97d9e3cb5d602fe845afab41e290876d48f5ec15d7dcc96c09c254f11f7ee6eb0e479bc27c4292974fa071186709d41a9a7d3758feeaeabedb50129700b4ab69e0fa40f5e907ae7a1b11f2a016936b7b111619f1aec256da62e857fa804c0aef6a899be7f7519d14dd9ec59b262bb52eefff0c950bdce927a9d8236534560d6c1f1c5264107334263201e3c4a3d0e76698807f9510347368046139287ce693ce43e4f74bff378a580f3746c673401921f9c3912e428b111006fdb7328ff6aabe44d74840c4ccd51a99b4f38a37cef78851b69c191d8908c8748042b1d95d593b223bcad2be5103841d349f4379474819a5e71f198a4c131553d42ae6674b7012488f4e1a73087403153ba0c0969c7fc3c3678f02b72c2ff9cf03050e904bb4fa6fe04b42e7ebc802cfb4af88f25c1a061e2c9133f464069f3a768348a77fa1a4bbb584fafb8380ca4e1980700215773badb40d2821ac4a3872f50c8d4dab523546069c68112f01445ab79e91dd58bde0d8448b83a30dbf988840f6902975fadec67100460158b9b993462f299277e88b052c89358349a96f81b95a6704b2f15de3a7199ac713279d9706a9c11fe80fcfabc6c42fd223d1ea1512ccb9ecafec59e841e041075491e605cfa41cb67e109cf67254ba43251e090c819425d3b422f9068e7cc834a1c9b31002cc2c81e3e3ba5bff6f412edbc54efe5fce0b862ba3dc4c48ed9f298e001ad2f7fa76686f0043ae2d62915fcc05c37bab59301a688b899a4f132a1e43b75cc139e0012737caaea5ac04028b376177262c7cceb3b19ae0b2a01ac682c3423bc80384937fbc1892b29553d3380e7aa046655cdb1738e18d51840f9a1c9ab219aac0145931b1bcd6a4b47633b471a7b766e6f23e68a1afb9da11dc4743365c2d71cb4c687567c8d34b8a66a15df951c4d71b54c87980da4a2e58c5de07f8a1d91a11d5c330bb33f11638502a45ecbc5942a2c46032a4dea7b5d308cc29a0ec5149d95375c9864455f400132f6249ad26bf4c6797c6b68d5fe033219908f58a4272501033d2004bba459b9386ebebc8e53173f7f73377938cc8a33f1ecce004b756b46632f0b6c12183436b4d28decb6b6f79632252903eb07d1073c07e5f9c507c7a8cb197523539fb3f2fc924307b863d4c9c8f3294a4accb93b773b101c77e0b803472670b6e3bcc5669f2b0f962dcfa70b00903303802a67e6a9b205392c40ca61410b433996b6e0c8e56e8400c70d2770d86a58b1d58892410e793e9d52e7d449e634739eb19d459c5e54e7112799fef1ce32a7191a047effb93ba5fc04229a3d0e139d53b31910919fa30e8868d48dba4f358219a3c6264627c627c63023146314b3d9f77d3e32b4f09131c6c7f934429163944b8d53327224339a711a22afd118d134b931eece273f698e68906e8cbb477a240d3698f9c872683f72664072042093e5d8828839b32003a803b0211a771cf810a00039426c06c081c3767e71e2534671000f54e7d3e9e57cca197723126312a31223d4b8c4c8c408668c1a9b189d189f18c38c508c518c528c624612e4902398518a316a94224735ee6c8842604382cdf8d1726c4230430091049c4f40444044f65a20a2b264f938bf9cbbf38964f91875e3ee7ccafda354ffe046ddb81ba1c6a831cca8230d20038213bbb1d180019f7777808e62085dd55d05ebd6ba759aad2015a1bb481dbc49e5feb046dd5c198ea993f3f4859ca47d55f995f4cabd742fa6d7d26b297697bc56bfe949d77473adf3bc5c6343237372188adeee46f6c8faa53ed527d085479a574d536e50095c3f76439a918bca9fd5a743288043e4a3601bfa87f13ae4ac9642ca97bd09f58b2159fd016b51252a75b5d4e5fe92bc471487d74892520b7017865cff65c8f561dc16f25dbaba2c93b17c783627c93c4b824487a414874993d1e888351f738014a69135064b87060d1a4ed2e41cf2a6cb1d39e91cb65ca972dbd23fdfe3d096fc9cf50fa8a341aa21426896bc4b38312cb9376b4e8e1cfc7862996199c9a012b88693384ba19145b75b33c869ba179caac1f261719c60dc0dc99569e46da9777493368f5e46b99751b6debfa4f42b097743f2a8238f0295c0760785712f23275b994616ddc0c7216f494a38384ab2f286e452ee2d7137032a0fa77c49691d960f5bbe925ec016aacf595994e5dbf50fd8032c81ec45a23df55564120f0fcbc77d1ed60636f7e0902fa3db93366f4937295db3e50d89956de4509471f70996dcff8a42835ea881f268217b9706d9071f851fa2bd4a87aab4bd92ae937c9172fdb0c74991c7346739383744df79dad4d37c6c3724276fc6218b5e4bbda3eb3f65f9509295af24af75d20bf83ee99356e2f44fa5c5623fb389a012f87e0e11f4e2a4a5d15e06c39856de9e74cd82ba43c47101abfe470461c033f286b494dbd2a6924e794bf29a4fae312549f5fe6ad2675116ef1a79144cba4b3432e6359dfc93036847d04db46410cb9637a41ea225a130a818d4ddee029f2c23efd145ba49d9c99e1c62203ac9537d708d43fb6c233b598329874ed7054753938e291c3a429045276b190b8ea536fb97b6d872399b169bcdca131b929991a4f82425d9e8c2c786164ed2c832f28674cbdd74b7a6dbd3ed4b6d62cb6ab4fadb06288f24b17cf37d08f58b1b0d3408f6fdb7a6fef16e5d6e4fb7243f71beff96f3f3b6a33d0eef74b93fa489b4c769b15cf8b38840f34962797cc5feb6f3f365f432da19d5bb94c12ff6a219b1abc51269383410bc2de4ea84bc518fea118d2056ba5c6f5c2db93e8e06533ea23d4ecac835cacf1b92d76e482f19f95af29cd7fa69e44be7b5fe19f96af25abf0ef9ca215f3bf215f50ad366f94a42f2f325e5b57e4df5b034b0c966198c23a7481fa2933b39d440743246f648a59c9ca7914559ea925a2a99bd8c04739c2cb325ad939f6d95911ea934fba1998c2cca621f851fa2bdc387a5412ddb0f0520ca4873c8964ec2c821072307b45b20d41043a78c72e502e61a06116f5955d9499d1cda6c3e3e3e37ea7572964302884eca32761227db6c3e1d884edee4d066f3f1f1b1f6e846096688e8242c8707109d7c651db228cbf7b12158cd67a95fa3bc5b06e88f082224c1659258bef13e84fac50d8906e1904559500087705ec6125b9f45041192e0f193c4327e11928099e6f56177adb4bd96255f49af1a5e50684fff0df98a42bea4bca6d09e7e18f9a2427bfa5fe44be9b5f4aa42beacd09e7e17f9ba427bfa5be40b0b8b7c657975e06503ede9c7796d79e5b0a3c99712adf5e3902f1b68ad97aa2a2f00779b727d1a9157d2cd8e06ddeffab81b2472bf2ca6cbfd3aa636ebe7e4727d1a4b039daa43c6d5727d5c4c0b487bead3c89907a2932a27c16c494b04c77b2545ad8077af293ffdc977b91ff72293fb3d910c6dd8f0bc1a37a95633593e6ebbdbce5efbb79df52ece3da24163c68c193262c460f9b83d69b3adb571e5de926e25cbc7cb88f6f4d7208371af1b52ee7fe5fa07f732ca9d24e5b5d43f58fa0777e4e6f27da36b4b03900f432787360322c389dd6870033a7f76e8b02047111b5d57f92675d30b00e3eddeddee5e93688e9414e8d880eb579390d2c206a4a050e228677a4880c1321dc021152584d19102b732758a62c409a204011565875d942c3a3944e14014155ed82183615cd0ce60d10a22a91c2718f625e70520ae40c1010a142b198795b02a5327283564dc7ff94161c185598e13187ff104b62ab801af3275aa018b8cfb074b70811bda143584c9d9825d993ad550440d4d2bc0747258dc92c30466292d8171a64e35c88005df64ea5403d10998a5854e15523942603153a724a83238ccd429c94bce0a494c4e495a5458d1c8609a4c9d9268c001bf32754a6a42138371b4c8d161d08a22300ccc0eb38678d243c6e12cb04da64e342865dcebac806b3275a2c1851c0d27d8b00b9799eb7daafdf66d29d2f782b0824ce0fed0a0fc99de477ad6882d6740facbd816a1d4f57b6d0d22a70e74e9a6a55596a98cd361c3996bc52f4e3694a9b681762a05010acce4f6dc079a0b28724dd3ddddef5d4b946b97dc20e062a992a99688285716104b4442f6f7925ad2881d002d6626745117ee9f3b9220ad815f9f36d822c9ce2eb25253fc4b012037871f7ab4dd5bad52a86b16c3cc225bd4b44f038115b82a59b4c78a25ae258247bd5be28af44c59d94620f753d38a6da955726b7f6db5d5813a2d06c3a0b5d67a0f3fa4a0e902f6072f5651dc33bfc5f23075431dc24b131353cc2044131710a268882b5e9461c2044a5d3ce12812891aae4ae7aa1f6cb83f5051ed20c1cafe317fd09fbeeac9040c8b1d81c30e591499a0888b0f4cb4744008a529286ab0428a2d6c1734b27b16f68aeb2208a15a760828862f85c8fee4c3ce9e18ccc264cf2c4dfe1496a95396a52c52c20d60ebddacd0dedeb5bdbded15edcfedb6f9d6beeed5b60f98821674eb74058cb3372b54a7ef59d1ba692d6877c4f73c1c380b52f37d9d5c664ae684b9ee514ae925292de69ebb5ffb237a1ece660b5a0d8421adedf67aae0f031f055b2a30e0e3dc80716006a9bb5083e210083edd015908697ba3d8a66d93c2c42c4eb21865339962b9028b181ad2eac3fa40d52a14592d1607a0780354ad4291d57279bb38e2f0d4104556cb85479a975763b15a2e3cd2bc609fd9c223cd0b56d372e191e605abb1b90894836040632c7f2b9ad5eab55ac156ab9ad5ca66b5ba59ad54449a07fd5100353df626915101305becbf1263da14aab06903fa51d12e23cd0b5663731363712054deb2818264ecc480d5d8dcc4706433d0dadfc9e18be5e33acd8773c004b72cfedee62686239bd1c01c16074c32f8a0e7d8253608823bd96ba10e8e6c46cbd1814123da3e41faa251817162309e2c63ecc8987163334656330626e4a790d7ea3f3d05792f8601a0663f28d4aa00883130dc9131838659ab6103ec37b34d870d65cca061d66ad8e0010a75c61934cc5a0d1b3c3d30300db356c3064fcf0db1d220fa54e060c12005774c9e5a0d1b3c3d377c6c3b3c262ec51669b11a36787a6ef8d870c41e070bb5224fcf0d1f1b8e1c268f7b8ffb0d771f779b3b0ef71cee16b8cb984103b45fb53cd546ad622cac812d0de7b040c78e9f13e8c6e280b663ad0527d0ed1383aa0365eacec23ac01ddf8f775e207bf31b14f2b86fbf3a656da0ca2286f529d4b5fe16ea9fae99c238a02c547bac30dbac3cb9fb14da3d9166fdeed223d73771ffd4c8ad23e3ae8f7bfa46b54d8b9010d2d025f68f0821d42f2e48865001a2ec95a2e7b9e759cfbb9ee779dee779a0e7a9bc5bc3fc9176954112d39edadddddddddddd4daf2dfb69ff88997e4985ed92de0ed826f98c5219a531b54c941315a80a48d5a4dd919a548708292ca44dc1501c463851e9e244852953272a589ca82465ea44e528532a4679053cf6da3be5a8565615cb88eeeede27e60b73effdc02f2e2607fffb4050254a9142bd92529254456081c2524488c381316403a8935253a6d449898e993a2935a9aa7a4605217d4a29bd80f6f4f7e031e2bdc4f2edc2a5c905a48cb338a00b68d094323ac01d514cc6c56853a0326ec796a508ebd7767bbd0f54ad28a5946271a41969441dac4d1a56ad95e62505859758a39c81b1dc5dc5728a65092c53635363a3c332434885cd8dcd8de78415e6267613bb2cb48c88e1c470bc14ee19198e0c0b09f78c6a07d94c363be329b04e94367065cc15315814457146bb0245136b1415724497cbe5cad101b9d081a103e34a10e2151d489b82c3cd8956c078185f71bdb234858b957abd5eaf27a724c1bed4d4d4d490e51710889b9b9b320614141c6288383838383176a058d91167b3d96c4786ad5058984163060da5970b20ac4d183060c0a0614a01ad0acc9a59bbd224575c2d1625881123468c1a36ac0d51860c19326cf09cb13c626deab9d173c3ca192b6472a54d56a4c280377c6ef8d4af46ac23623e361f9b0d870dc713c69103470e2b3a2bb9ec5fb164b76e6529b716392cc86181ddc15216e8b04047cc0a9285b5e9e3e3e3a3638715a34c83bce0c08103c78e9f25273f620db59c4027906a0bb1d62f686800ba01dd545bdc826e41621522ced4a98a13a0982a50385a04f108628550bfa8d2a58a0fd9635e65a90a529526b96b06ade0d183478fa5339e028b021a0c4c8f0b7a5c40254c98a9d35215b972c069498c1de2824a36215144bd000097f6b45d825afa6295c2649ca8b48b312d6dc9b52e49c93831b7920edb0b6b93070f1e3c0080818dd205175c70010642352e088918b07c6080810a03a1ec24050bed2089eec659b145d07e60bff57e15eda99ee759d05d39cc5e7dc7bef5bcefec953804843078fed4527acb5a4bd835e1de5b36ccb3b6840579658bdd0295d68b90eee0808e72ff7055ce4c46b3e36e941aa7c63163d418556739758aa89ab9f7fcb20a59f5c985479af3e9053bc9d4d8dc9c4f393939f5e7037feaa7726632da4d0c074736cb91cd72607cb93363c60c1ae7138d3ca7a49abae4b0e54a1531fda37a9c59949fb2fe99a241e01021335046c31497c4a5dc4ae0da083546d9fb217d48b55a8df3a9c68c3ca37a473f8d4c63d3a81b75d98e50e3ae8d546d64038868d4cdc8a233ea7b1cf2dce594e7d3f9047a23d4b8032aea5356166551f5cfd70308b461c306cfa8f3da9736cfdd09753e8d6172ffa8c488847769d04c876dc69323a3f5ccc019d2f93446c96439e5b81b775ffa9cc902d9633694302e469f1eb9474d2a7d5fae74e04a97bbba9b74975c4d5e7f4a47445e3913e23ef3c09f884716f15a9dcaf587382223a4e525862c5e6891723fcb107fef87f87b4bc07288ff2d9780a559e2402f67fd74a87609246416f17386112e4461a5841368218289d10c5dc270414513292c0cd51742a4db02617dc042edcafb2b083e566591f288300b28d23f2e0fa70a5cc40120842bd2f520e97d650d80f5b55d7f44cc2b09d47c59b53b495ef164974aa522bdf0484cc4abef65ab777dd8a4cb5acffbd2c8f7aa6a6daeab0fbb499bbf0afe07aede03cb9dbff9adbedfb282a8fe63959feb2b8913b3ab9c01691c6502a455f31131ab561f90d58bad7e5b69ff8383363d24e9acdfcefac9193ec248fc95f81701c1231d500404a4f737fd71ec929455452895c910e8fd094c862c935907de7fe5ac87d8bfe5125bceba048770eb64b91fe73c62d587cca0e9fb1f0e82b4ea6336adf220713ab92bd9cab5fc5506418c4bb7f64b3af39ee61f6d3698bd526817d29d5004deb4fbf372c48354777f34493672411ca801f85121c8983a6aae4e5cbae4fa507ec48353c6894dba2a320e88872df9c987bcfe40a85cbbec30c503964a859a96f4ddd6285db58474a7260bfcb9bf125523244a70a0cdcf4acd9907f6fdbd1c61e6c11dc1fe2de9d0d7ef0fdb66f35af7d37eb0df928eeb91fd22e44f87eaffb07fdf837e2f47f0ef191da1dfdaa74336a0f7fade5ac223c2b6bfda82a96d8cad7fd2216c02ae1fab3284748752fa8dbd9ff683d54b185691d60d3a43f9fa667d1cb354859abb2959330d6afa150a118618ad40ed9b2bfdb1ddddf563f5697db056514d3f1f10d29d9d9b13307edaddae26f0ef40d110c3142376b8c1047a05105f9c623832428a186bada541d48fd525ecffcd9406d19ffa940a358e5150cabfbfb46d5e9acb1d24307d9eea9ea473d78fd5a76015ae27bbe26ad7b1bfb3939debc79e08e9ec04f873fdd84effe7fa3bf4dce91a3d695da327ac6bf414bb4679324f16eafa142c62a892d808bfe9943edda1a5115b92135310a0404cf6778515a9ac651298b2c252499bb5a93ed55cd529e1f75a874262b5ec3ad6d757d6873d3465eaf443988cab39a71e9ce49af3b3e6fbf50de26235250c04694a4abdf059df2c0d584158b823b6cc7a1a86b3d5873f0bd2fafa95662420c6311cb6b208d6039a7fd95cef34a490dad5f5e20fc0e5ca22d8ef4321b9ce581fbeeb3f72c6fa6a2367ab72d6c1f8f83f184b5c7ed0fa70c5a3856711acf762a9841f077ea6258fd8b2d75cd7fafd0471f7e398548b4aed5a776aa547e4fa5f805aabd74a846d36c070615a819315485c866abdb5bd4b4408398488e7ddfed126122564902801cb0f796c266eda46ee7ffffd0d72ff3bf23dee779e87c7bf95431617bc6ad60090f829c459deec03f057e507aaa7de43cf10c8f02051fd08ab077f84904cbd3f02f8ab1f41f5a08f3f03e2cd6299d6a66327f8630e380115221033c314510811c21556b248820aa81f9e0cf92351c2e28271c6f1f47b00feea3d507dd86507e0af7e08f8abfffef948e782ad90ebb58713928fd894564f85d8ddbf49a6125523244a8e584ad61dcc2cb8bd5fceea7fc6b35ada326d33855affbea8c3b500b6f193cf363f79c2dcb0c30b4a4031c1113f98ce90a086106c91a1893b0b21c6aa5e0011a80510e9ef7fd880eec518639b3fdc7ac2362b241be9c7d96025c0ab770dbac4d9727fcdaafe9bdb96bf98f7c306d47fcd5c7bfd880332ee419001fb570780e065f7df82451ad4b2b5fb7f894be2e5fe26d83dc82bfb3b1d1a02bf7826195022c7c40b5878b1021a7c28f53002a43125d86266a8fffbcd28bd63533df5cae282bfc789a4f77ddff7dd176a1c70cdd77e9057be9415c48d38e8791e2ec9f5eebb2ba9caeb2eee3c2bbeae11c3c3d3cafdb808a8dec5ef1f17595cf09771a2471af922f368a12a71df4ba066effd99e4fbdfc5ae15f4ffe8b7f503d168feb4ebf7a34c02ff10f2b72c1ff5b3e54f09044bec1bb4585c707fbf7f0e3d1b40cbb44ca341add5af489bcd9258075cf3bd7404abdca282672da38c6b1965b14d244a8a80e0ee5d16015ff53593385bee6f8f3c62cb4aabc7fe7e8243fe31ca12c25230127f25fe45fc41b02498553fd45a5544f8400598144cc96289a19a85120c3e44a1829712cc0045540954ca78000a194898c1c3940d33a0e0860be030541fc7321046c093408be0533f492cf3a03dd5fb6b9722585bdea859bf3dafb236a839879e04ba2d10ed8940cd7506643506f932e6e6cfb407dd82852374569ae0a025cb50754207284660c50f50f830c450ad820328ec20022d4d60605284011cca10e10394991686ea937b3dcff3eebdf7de4bad187bedb596568a30118b30118bf7da6bed9490d6193075ca25e5fe9acbfdde5f5cabe86f27906bf59addeb53afdf25e8c2959a01b998be48c10f042b58bfbbba1ff8fd07aa9e7e0fe6ef6d36f295e07d4bef2d7d05e4fe9d05b1a591ec746967daf5cfddddddddddddbfebee9682debbf796f6dfec8fa3c0f779e4b55fc230d63ffe9dbd9d7247191bb9df259e0509ab5c7b14102fd75c4bdfd19e36d3669fc966727b4fd9757e36f97975c8389cdc0fdd0ad2a15cc67d443b95998f6895eb2554bbb01dccbd34a607d6251ad46436994d6693d964baca7b1d543bcb8191d66eb7d893f0965c8e4cffd8241ae465fa5415e5927249b9a45c522e29e749a58a2897eba10914adb5d63a06a35c1e96ae2d3992b794fb1dc99ff4e9e9bc2d14099c42f29a8608e90e4eccf996369b527777d7b5d99e6bb33da24a7327194783d9f65a05a5daa98e9a544efa14c384112366cc18d52ef72dc524d50e863da73a123d12bc1c8651eaeeee31db522c7ca73c241a34a6cf7b6f997b267b4dbc22cf49934cbd279e1347bace24962f191b229cb320781a8d76c630a60d848a824ab89b641c0df4ba784dd74cff2cdd337daa3c5ff27cc9f325cf973caf897ea5cad3794cde165ff2b6785d3c0fabae9790eee0dc9dd6d68f689077769933f4e9d36fb223f32208c672300d8474074769b5d64a69a595d2b23f059dc7b4648f3661c880c0f56331ea25d0683509c96bbdb4546b3daa465ed3015799135c41954d2d22b24c56b764257b41e602ae2f6b417624634186015c5fb602aeaf848d74f88c3eddd7a4cf55983062c48c19d365caf4992c1b6db93aba2366298140a75e16c838abfb9a7e20cab8aa6bb246aa2474b01a1b55064274489b426c6aed51495a86e5c29b18cd591d6dda644d707d990ab8beec0233519602a6758e0e2d16e6e8d0609589567556a763eaf3ebf235e5be26d09fb66a2d59c002e048f382d51c4dcd9cc9ca28c5edd6bb9fe7fec1604cd59b721904a6aef31a7da1ae5901f882315dcfa3598d6228daa4a44cdfa604cc125d2d1606bd255f6a7948301e6c4ac095e51291ae0a0a1c695eb01a776772b737362a284f5241f991f59c8531c93e10f34bca707a2673a7b9fb4cb434a4952308224c7775a2d67a3d2f174418da1c48728af2258518c0277418a8a1908127559a4cb1859419a1772181772c153610a488d8e28b095f0ce1853aa183172313242a723812c1130e53d000de8069349a99db56d073e022bb3f6805051d3220e6851b48e882a8825e134d64ff0c344002a3325a68b982872fb6666f9b2b300ecc342a763498b878b202a5042b9cdc9d86c99e830ed95dd94fc0b48b8a7281264b2650ef0cde26c4d323462face841a01bba78d0ddddfdb3aaabf2549f57e2406c4b7f18cd977cb052c50620a45460c587282c2c00eca2389162698b0a8ab0e10446084144174ba48089ea81c97ec30cd9bd54c1e2888ba21678604265882414be00626a054330e18114c090a4808110ac40051d68ea82c60a9c6deed2370b16493a146131e6897befbd4be4eb81a27cefd391154d5401b505698ab5dff77ddff7790cd35001c6d172fff0a38121c6bc506402304d2a14198f0916295e78b972421329e430e41b38452bd4bafb84c41262aaf8c129892a868a5c4f897c734fe47b7110d11005114553307065e8de7befbdf75ea7c1889882b288c490e0842b262c613184c3d9fd87bb9744f65c539ee515192853a0a04314221a86a63630a4cdb6652121610f2fdbf6cb8b2e035af7be0b56b08260ad6eb35e2d6737837c4b215129a43be00d78a5a576ac47464eb6b89a6c1f66fd24698dba3beb499c02fe5cc4417021f4891019d226b5b985b4499fdae803d17ffaa66521a43b3f6c404060dbba4fea9403ca40c80262626cf4092a4aca7a31daf35026d7379972315a79547f6ba15496f53c1247e9dfa7b1ea51847ed8802ad15338eba0df87f8fbd76752a58418a6b6cc50850f60ee07ccf440860454785961a8fed7379d8474c7da72569fc9d0f77dcb592d8514d9fb45540fe4b5fe255996641962dffb255986dcb7bf24cb10f0ef9be512a0255d52af49e1c0a7435f89c15bcebc9c7d70fffb21b61c72bd7256cb1f6db610afe11a90f42be92f02c2b576890bd65a6bbde68aa45e737b2f582b97214b980c59c2847ec941993afd70944397aa84c1565a4c3086091867036a206be47bff5a039638efad970ffa6987fab10cdfff835e11529914987e00883019576dc8b91f8832052253271f9872b51d3d65fab4acb5c868c503b6f50fae2ab14010e3fa20178c7bf129293611277b4bd555a6366bddb559a1daac2f36c1395ae98ad2d5aa321dd12d65cdb55977b4e672ddd4671daab4ac4455c7549fca254a581bd087a2d94083baa4d19e5ad629b4c709c65132b58806d1af8fc44f2230f207b60d467b6a88f829965505d20fcb5589037359c2c8381b2e7642c51df9fa25e0cf48945829b18790ee08b9ca1e5ae01e95a87bf40febacf9fa3f381092a47f565f5f49ff8467acc9599090aec859909511f069f6e17295232986b64ddae60803d27ad7b74adaa6abc4d936c777953858867d48c316694823ae666d50bf783d4d3903829fe637c04f53d2366125ee488ffc2a71ae9740cd340f3e93ec34a4f82e211f5d3649605c8f1eae6fe172039a5d5f5ddffa99b9ca6ff568b30a519284831fa450d786f4f85c4b1c1d932b15838ff0f7a844d5a826c1faab827ef562e549feec570a7baa52294192247c5beb0923c1e2b77e743d5896b858eb713f9618045d18b362b1d68be5fbaa741569c4fef7b9e75adfc9db81f8adff40fc56f901ebafc79a841011fa41c9fcc1e06aca75c5d466a594ae9a56ba36ebd78c00dfa46fa5f3f30baf51ffd4ec8f3580dd63f689f654a3ec29d9ebaa1deda9bf5a1a419f34a8046d1846b95443340200200823160000200c08868442b1581604592a2b1f14800e688a4864543699ca63498ca2280862181200c818030c20081950668a6603002cc71cc01f7c10e495787a8d28abe20903f72e67b0ac6717c9aad850703c992d8cfa5016f86b941f3ced91ffbba9d09bb3a54a2d05809e977b06f872f86b98378ca6adf798e7d239a2e40edaa4525e49172349a8c31f3a2700478ac9f25c44f2ac5862c82d983fc828fefa2892d289a5e37b0865dcccd34abe1816d24ce86f3fb552ef21b270a9e93f5fadb68d8576812d48c5fa31a257016e56e4953a01d440d8d2e44e5b7890ba65f6f5ad9ece816bb4b858390f00bf1b9195e7d276546ca2264a148960082a7256961c6e038843f5e31446baab85b2dd40390b8a4adb5c0ed67709fc424350fd39d6c637215702c51626f3700f6fc21674564246a463c4419cab0aa62d59a1d4e5c2a8119ca584729d9888b82c119bf285fffdb83fe7aeb4719293512744337520064bd3539519b341ad166d03fa67f9a18d934a4afeb3227140a74a5313c636109e15a31e4ed49d4f2850c49f125a4c6f7047d0d2edc4a79f6235925308ed2fe47a2a658fd2a9abcb10392621846c633c87c3199eac6cb2041617334831465e9157b9073622898ed1bc6991e16cf8a7b5dd3ba0b2b70112d48696d6560f0327ad7926e3e33160b70a231688ac35cac6609d019b33e66052dc35926216f8463c052385bb8e584e293cb00b149ade29d755915fa306c3099947e57503c9da9c13a59586a6a9c113a5bd538448f651f918524f29362a0d2fa7be30c5e5570304295187c0c544181cd60fdfb322135107b1682ffe15a12b1421f68de5010514338253d19d87140f93ad743b3e1fb878313e35df4ecf9e26fd90431b9d21ce13ebb942b4b5a0b07f3ca2ea84b66007701d08ad6adb3b8fd129d3694c981e144a0559cba084e39a2b0161097e03062812aace42f78e16996aa72a69a1365c5c2e7a0936e0d1cfa919b0152228c01de750bcd2da0a9745bc7a40180543ce4d0bfe9d2f3c9d9c78bdc3fdfa9b047718a9a60969149b6240b3751a47e52e988fb3fdee9b605022029b6ba39977592a36b1e286229badecf2f1e5f4563d70e269aeeb5beb2963b3f85b0bfe4a57cf4662c092690dbba2832cb748e776638e9a234892b6d77d0c4a45122d89d138196dd091dd14546a4d746a1081abced8c6028fbb62c41f0cfb6975c819b8237868ef8dd74317884bb88d37d337bd49167334aba43b0982e7ce81ace568fe7b8eac82e8edbe0546333c5328049684fac8167884a22458ec006ea0c0a994f4733457e418bd2153e50532e74d0f1e04533f3f8262683c0026ecbc85bf3c157afc742387139d82d4385dcd8a130b3f78682fd1ae82007483b24fc2ac3d7f984af119143f2d3285b5629ee8b1b7d8184536e4c825d11b0ca63790da732285a0f74ea75809f904a1e94d8cc568d1f43c10ef26bf47bc99b9f905e793071a6e84c67cc7b6867e39a8f4de203480f5340e5661d8b7b336afca0a0a71eabec30e484a89d3de83fa2d1943863180b45d344fe2d56b03c1f45ddccdee14ed8f7ad7050f3d0850d63308a7360eb5132d7285cb20fcc7cf52a9cc9dfb42e0a7a73c9f8342d7fb8cbeb08ccb7fc3d8fed93006698ec5aba938842f0d77d2eedcddf7b089da221aceb3ba1515aa77984073abe2de702c1cf34e5742eaf8eedcd7768fd6988a3c45078dc5e5cd42b3250ccda45027ef45969a57fdc6cf15912966edc6e3cc63f9a867f2025949a0b77ac07b979ae5f069ad25ea4402568daaf8d4cafceff9d48eb937d80b3a7d410d15052667bd664bb46903b8fbd91a5ea19b65f63d2b199e92553287d6fd7005160691209465ed1d6218a351cae2cb58143473a167725c75013f9ee8fd4459296916ace6533b089f2fbca6f1937e0f9b4ec28d7007d8dd9a5412bf38e752675ae9949a26fdccb4a76e19a72f266e93d4f701227d75128a9b6460b6db421af8cfe4c89199aa7ff7b543930a4de4d7439766afc8e9b6dd345d875a341099d851ba3a7c4a1bba3e11114e12740680656242a87dfc041ee4eb38ae128cbaccc63f98fc1f585c35803cb1b74bdc8166266f6e48cd55a7893abab31ec9dd4dea6f842d51618fa00abaf806b60b4b1435729b46787286572ac600d6e4776ef8eb4fc238cd87b21712a3fcf97349843017939db6bcb8313fc6d4abe2b680074b3ef147805e805bc0bd2f9c2a8596ce914701ec841631f57083909a17e06b9b8f1c8c13ea4a02ddc9412a43415544c662efbcd2f502a65b2019163a23be1c4f4e134a7cb81f682c3215b1795e1440968de47def2518700a0dea568cebba7c59818e00bb6b65b6a99537bc1859279cef5482ae755e532679d7497717dbb23c6b0e7f8b60b13aedb194e22a92a27409d7d8fd0be13bd52a8c0898681aff5898c6b8719b1578a4dc7b8a95b881da9776f025d89d4f890b4a2c53dcedfd1d54b165894d388c75b08989c22ce80fe8cc1a02e6776c08cc504ad0bab0bd042c2e6998dce965384e0756ff67fdc40f00f6066e00aa076840e4605e119f3db6b5dbc3ed68150748d264027a7eca5025e2be0bd7c870ebf8ae7d4b0634926065c5fdd33bb06a123b114d0d9e1345f2d4df31aa36218d2221cc599ca92ee444c061e3aeaf27586aa859887a0e8cf656803a9dacfd151a6fb717f85ab95cb7c221f2f67f1c7489c064adff5150d12248ae3d385165d6208a084169286e55c9c9b14e5044320ddcaccde65c99b202cd19c4536a79c009609ed7fc834f9fb91be6fb90f65201c9d97949206283c5a87cea4c68dff2d44d4bda81846a5e188f7c81ee45b564a2ce629349e03d003d2b7ac80891d5cd4c68436975e3fa7a0d57e926ef46b087fe8be6fc288a250f9dff3a2dc860b36ae4e262fbda535d5309820cb81382284bd5645eb43a910579b083cf618b0604fedf11f6b57e8bd98f92ddb9f648e36f8bf9f9b4443ac52baf0e679e1d88f2a7eca3027f414120daba5302f975b864abb3239d61ac19e7671a02f8acacbc8a5a2a003a551e287d2b6b05e0dd1ab1cc53b7a6bb948887579d5238508587854f726aed56a5b2fe8068d21c8956ccbea7d68b4d1de5266eebbb4182268dfcc9007d52a711b6fc677aaf9c552a6f61ab46244b8c133984dff74b9abeb7a111347c3b2efaf032f5b238cb58e284bd3513a4ea04568137198728b768ba7110865d7f9d82e6616d19476da96b15c1286f1cd78914deafcd86fa538a24628e16ca069512a2e8bd7c933e2e81a1d163f8a111b6f8d29bd3eca8715a9d413228ffae47216be2b4e17301648e5f57a9b793951e57e958058bd966a9f11da34b881ba8bdf52eed9ded8d919b509d0af5ff0a68adb441d67def4a9d2ebf91c53ec666fcadb1e617032d1b3f3d11272e6ab919eb440ff7eca48b6f53b77838f87bbb698f24d91d20226a2f2a74ebc37a64c8c6ad04474204290af5a1732471640689e4140e8d48b1f007250a9c62494cd47659e50f8dbb6eaa2120be2bc4eb60b62f253a14991d982960aeffa507150b982f8b55b1bbb57752c2cb8892a21c8532c978d8d83f1e5413ec7639058894c2c54a69825991bf3e51d6f9d3852767d6707975e23bdc9096e520c9b1f0a202bf35d065142f4170866e25f2400fa918ecb37ea7c18536de9cd698e3136422d65aafd51cad0189fde7eae4e495bbb13760e8a90bdd879d2c4f9061f0e8d2bbf8bbf22ab28cb34fafbe86849fd93ba30a4a217b6f119dcea10504ade0e78ae87ee316cb85e3ca755d5d31905b76016b211bc37f7c89d7e2f1166597f2cb0640fdfce84b2b446381f4ddf344106c5b0e07b76c31df0aee4db87d742b87094683b9816e9644233a997cc09610924fe1051f2c014873479269169fb973e30c3d25f688677e9a092a9bdbb4a69d7c78fc2ab0baeba6f00ac0cf90f2eb1a6b957d2cc0eeb7d38acd0466296cc2e5737809e021e3dc85f2818fd0a50d612f587a0fbffdf0b9e16a82e617ac486d626dd81df546c346dddfe9782eeaa78a33f1f5b9025254500415479d72edd982168f6038644761356e3090a6905d79a56343d5960948e05ef52011aa6b14316d86875fb1483b02d6f25ad5ab398134683a5d8e66a8fd9973051f5a7d5f37a84b9aa95ee0030d005e5726020da411b18975a07504f65f68a95563dbc4b9f415b2ace16b2137393aa6e68f567502ac8987e0fbd44baf2bd96d878218b7750523fb33039ff054cd536617a6ea103072616a29c524eeae2ac1ba85aed9ebf8b5634ea704234ef50f65a06b46563fa52b37cc937446624fc193bd682ca5540210204a4ec413cceed5732e835d7755cca10678369efb51acc317a7073e0ef044990e7c67ade1ecc0dddaa6f73152e2934e0125d6fd07dfd6b2d6d7953771d6222742d5718dce007e439428c7d8e4686a84a428a76b76247c760d9286758ef9e0a55055a2a280cbae2b0cee88df20b11a05f4eba8d07b5f2c8cb77232c51ed34503c5a96dfb1b6628e35933f0404bf424c32a2608cd63a5587237409f70aba3f76d5dfdb9259e035a72a72f0ccc51303caa3c20c1a2fe2c107f0b97fb56efce5077ed982882d6b41b0201bee08b72a1f7563e7394c8d0ca1b120d908bba80c1899d04ab8156800a4883991ff09b93cad0a060118e0f061a63374f6ac456f877ad436ca37b7a972bd5fc29367ae7d6fffe4c9b2d50635de96f7c4d87263bc7d97fb1b7938f612962df5519b81ecd2efd39bb9161a684df35aea64330a7f198070d5ed32785b0d2593fb0ab8eb32a7349f9b1d6549a12f5afffefb2b319159ccd47f8b2b0b1d57fe45050e8864043c58655e921ea76c6e7a1529104fccfae9097b85a98fb5418c1e2bf8cc8dc0715d69e0a587b250fed4e42b942885a1535133139b4bcbee860b3d264b568802526f445995b84983c46a4965ebaf8a40d4eb08edfa3367531366343b7c9b155b720a29c3cc1fb0d61394546b77d70447890b4e947b9d610caa33e6c44846f7303bb070d0b8f887a7736c898f04688bfde6e532ddcddc814a50883eb387e53c7561cafd3b5680914ba75a499fb3d11157ce4ac87c091efeb245a4edb51e2f2984f5009ff0c236eeddacf241c5107520418fdcdfe0cdf073ddb88f95f074e0e478487f6e5338e21c6e383fd0666c4b36b3d4da1c6e30f62ad6755ecb664314afa2dd048e63646e1bc9b648ffba3363190d97d75f0ea791ab62be72933d1c3c950f4140161b9e02d010f0b0099a78a5311a5dba4c08fe565711b0fc2d82d61026fcead4e78cb4e6c21bdd7cfee98aa66afd8bcde541a1e19f6a33823cee5ed4548502e844e05c4ca2fe408d3ba4fe793b235fdee5474c5f45a9596810a411ab057aedd2e4eec5590bcca6edfeaf57d6d344e031931f3c18aa9ef55c8db6d1d3bcdf7654fd23ca9bce79fc560c97660d75a3e95e2b7a8d33ce017aaeef7ccf059e8679bd6517d9a2dde1e5c2b1b1daf45ce602a7e82872e6ee16b75d05d36dd781d9f0f1727c12724a988f00a10cb768a8ace870fcb685641f94d074ec2c3b380d8e235cdb3a2f0f2588a9a0fc045446f449f6707dce600010b4eaeb751a1fcb5cd0570127710e4cbe1401d30faa0ac10efb2526902be12bc617f94db4e6552c016a3ddf3d12666a1c3f6280942b2a8b0a8066a5352c4ed427b3fd74509c1a51346a77817160d0ceda07282a0229f31cb07ac9ca0eb470757987a15142de9fb1fd8209d512288bd6e77a39295858b239f88dc09afada9d6cf6820093ac4eb34fcedf7d54512c50fcad7d3b7ec1d152e1d99142bf61a44c803f412680a640a872a812f8a9035647e9702d60015bb70ba56340c862c9c5acb182f842ef23b30b82a9435a2ffc33aec43594c595eeac893a1d31339e393d698c3d2af14a9cd3b9f36ed4e843ed630373490c6e96505ef4bb3b0c338b0a53292eaedf90868e54ff3c741dbbaf959cd83f4360c5b0b749cae15b2dc4dc5590522b5bbf5bd3dee6962f9b3f073f1e32a039e26ee685efe5a7d584114d7c2056c0c677008cec3e3c4bf0f62f7870f585d405051605042ef006b291de3b0cbe17bfc1733581b324badf80ef23122932f2b62d227401ce1c6322cf6e414d8403d05339578ec2c7589bb4c12381550347d08f0da4eaf0630c69387f8ace756de6209014aae5518f155c99a3f8358bd6d33babc5bb4310030d8a41b824b4d264dcd789ad6cd90f5ee47e23292435b930d8c0cc41f8de9b52b026e71c89bf7a9c1cf3bd59502792387e2d738bd1bccf7d0a365380d43875f070c311d1a2f21aa8d40b1f8dc5e0743c80e58afa443a5c051a7ac657e8b5d5e6bda0289c345e43590595bc89116a3d9a152fd2632eaab584777bd499278904b8d720f94edd444efa30dc7c7a38cca8291a7680db12fd3687c9bde78d1384b5820eeae38e7c36fec9666afd3e0e05bcd34d0e19799439b03d2174862c30bc34ea1ec8a4d92c258ed5d760c35f4aa4e6cfda8e5bb101c74e50b6c0a702b0d4a925ea2e71a5703fd9b84027107fa6550a914a76cb4e54e6583149c7c87162b21d3102bd49244a1c3391a6f2c526fea62a5d19e877eca4facfce4bb0f2b4bf24b8aa1a56edb1f4d5fcee343e48ff5abef6bdae0ca746baecd08c4361d043437d036239f189f49ea1a616b0284c9b876b31ec4fee46f2ed7991c9d875da9843363983b35518588f4ee317ac4459444dc4a65aa6c4cacdb691328c560867975b2d23ef8a13695715554926b599835b130de7d15b8340154dc37556d832648b270a761e3292c8d8fce09c1d54b2a6d70c844d9ec69527c9a65f2bada739194109a2b916e12c87e6fac80413095d0df4633f13c2b9ee637d12a3584ceb847792e7201e93dd34a059aa50c923e5a9de4387bd877e7ac327858da7550510674fde2731eb7767914c51034a0884569c06af212706767fe11159921cf7e078192e391975ce27aa1de3f159523f5ad4ae87208a9c523de2b5ad09c585a5ddfad81997eb8987507075490b530c89cdf285c7227fc59fc9c68f91cff8dec819120ca53bde6e6df7d1294ef854509427e27b1b77a672bdde984ea04ee1d8ca50faf78df70cdae7f7ed890e6e551998ce24dfb1fec8c1367cb4c769614d2d68271a17c19f06e57cac1ba9d05cff653eb13117fd08242cf218989f84284ffc2ebf372cb87b603abdaafa114d313becd3bf286e405602765667dfce21fa3661e83b877f1c513808ca06aab6a2b5b67c80717d97fcd46a501f0861688c75dcf0b0ec9b013350d242a7ffa8e192067c2865953d886cb014107a406870bce0185667f8a4b8701104ee30a81096302826faa30b53f684e9947c8c2d0f75a30025e058cd3e166c056833149ebca6fe8fd568e0efe91a44caf569f0feb350416162c99e44fbac105e329fde4e1a2d87ebb0a09c0bf5cf29573578c323cbf028e1b2c452c126b5af2502446936880dc5f8b3ccf2a52e02c3f94082f44d4bc8cc75744149260fc619a255815e7a0f244dfb15a17383cff1c3246a57915401598512ae7262f9dd86424b3161857e0212e6ec150ded1f6e343ce8ad34903ac1cdcd39f74202e562e529ae84d653d278659ab6b7c5eebab5b6d383fc2fdcf81c81400cbd33febea106cade6c3d087fae182b93397fa06c878f2bf4c754b9989607e93cf5ddd494569312dc6e009f95cca637f00bf9f594881bc81527538b4168c99ce812e8aae060091805a0233c3fb53e0ed7289ac99623e741a88a4e598edca53e261ad93ddc44670d6e1c8be2ab620a8863ce8a650b66d76bef5055da4e7f89576c5dacc7825f8a66f15ca0728a5e172f48e64ddff84c6ffb40d92035e195e16ada35f89a29eb2a0bde5a0d93450312be23d7720aa5be7b661ec7601d1d8edffd9ea49d2db70ece4388ef2db9259e2041022e3c4310a69f00c32498b6170bcdfea376410c8a70fba4393b9d97a2133583dc711f910dfb53d7fc6b37544ac2921b81c6335980c6da2f88195a0712b408396b141960c253fa634679a35cf61afcb1b784022452da9e67cdd9c2a3d17a87dd6c174da260e4b0832e6c2080508e2a839c3b9632a615e8f772642d387446488000d5a58915a76af778b1e6cc4983b1906b3b0cdb6d3391f3134407b0c9600df006a881ea30ba5f5d46dc83a06697cf1a17190e0cf3d24e98838709d86d81e3f3d92a2068f313229bf0ce7e9aab85c11b309fcd8542e68a6d9df1b3fd490966e3f7b68a0fef2e607f98821ef0299901ca53a7f4120862f8e671ec8373bc204c4666078675cfa2f6efcdda7a8022dd47c259ab2c2b7985c55cefb412088373d653360d7100ebf1ce75786386ba58a82490ea5097615e5057ba961cabc84d969c82b419d390ca19c481e9ae4523c5999c7b23b9800b9563055c156cb3785a696b7aff63c91cf2acfc473ea6537a70e45298f4fb701cf279633e4575f30ffa572efcbc5c8f4e52336a926e1ac8483c33129d62a3f48b5ffe2afcb88471bc5739bc49eb6798091daa9027aff335e32107b059addc9050630363f08451a8e0385ea02c10fc80585c7b7a230e0a6eb445c4ad52c8cd026426ce48df4119c90130fe67e0ae673bf7b5561c41c115b8c98e364442938a1aa9f76d39180d91ecbe851ff24de51abf450d02344b79b017a1c31aeb60b84b04475415c3576819da939159a4525f5f276cd2216c229b63d587b5c77cee355103b2017d8ec49ab6143c3a66248eca07ed182f4f8235e080f716ea817d29069ab1b44b7c9ef1a09ce12ff1e1b8288577996fec310f30eb23274e960b137832335eda307af88eeb2f0684748c35fbe41f1d520b79df0540d830fcb99abd4460e9f332cf0be1b147c76da00720b707a665f7f9de02a501ff0d527c43a1a2b9f66cb7e8a42b65e71c54b1a30d8e0c483705f89291f8dbb4da0f0a9614b1c4e09cca4232d99622fb6392ea230b6b5d5020bf93b3921d51faa90740ee8266e177ce5715af2b0a85bb01712cc1c63b0034a98c8d8864acfeb1c3ca4a6eb7ccbcfd0dee63a69eaedf1905235a995289d9e82c71547f99fe03f25d7bbc363e080efa3f02512ca82744d1a3bac0909197e6aabb862299030fbb823577ec4f0778635036bd0fb76f34aea1ae8be34adcb35637d755b3e4471927216bab61a68d31a3e9c7c596bf9821b1bb81c8ca97bd2345cf9284b637ac83a4e1150104d4fd7d731ade2f6708d1fb7874041a1ce3f09230e64b649370ac66f1630573913888f1c6bf1fcd406365a90a28ca54b1627837f61ef70fa85a750854edbfe803672ce18d407afacc81f5b0b3693cbdfaf2ccb70578dd0090c24528721931420cc993dad5a0bf960940ae85e0a7103b56ad4bbe338fcc141737ab65ea29efdc666faa3fd477aecfe1ab1638d991f2e96dd510b7f41a99ffa9c978cd5331c9975946f121a217307cdd2688c664f5542ed553aff82022046bda39a5690021d26e485814a49dc3342ea68c2e958224ed8e0069c3fdebc30e471396d2dd04f519490cab7d15473b9e5044318cb4e6d5e0ad96dd84f563498bf16d2d25ed949b584bdd064e9e7b7b529600eba9fb2840709708cc482e2bf0c1f8272d5047db615aa89b29b692d7941b896958223c98ed210c98fd2e0aa791a8282f3e2114394fbde92193ac3b4c128b9b664118c2c33932dd691397e79ae61eb82b312b1468a52a1db54ace2083800e3e92da8090408455cc5675bccb15926f41399978bf45561f2247cd8c64720f70b300ae41dea64a148df923d25cefbcf2631d895c5bdf3255ac294ca0d154ec62288129949ed8a71c55559139a1bf38e691686bdc5c91f5b6179e8862012490022a24796674672c824b9d992e24c873db0273692c302857ab90ee260531e48f0a69021190c3abc9710c84ae285dedf73d7a322939c5a0eace462e7446fa26d60670a656fc29837aa4472efe9fc573e638d09798168cfe6c117c333ca414c6fd34c64f2306fb55d6ce00cd35850c7b2acec26f0af6d6324a516d74b94f597bce94c294b24cc353042755034af4d5e9046e881cf78596bfeddbf63c31b4235e9fe4b6eb17ef08321305cbe1100e7bbf82e12da5cd933c3fa5cf471d1cf7207d02a9c103704295c3f7d8e3facb1c5c2b927fe9de353014419a73f660b2296d435bfc01d27c960b31c3ae71b3acfe799805a7d07484854cc57ed1656cb42a5cd83256ec3d70a7249a4ef4ae705c10199922e5b5df0407a4d5ff5e17fa00dc7d540b1961cb647c6918f17f9c2b6d84ea0994ea9b99c64533f6e16f1221d2037cb4fa4d7e8731c10c7a0c95bc70e7b4e4580b89b8c261c4c5477f6de20af51ff85b32d7f4146a4e914a442145b350ee285df9113b4a6239ead3c73af952840fb847b060cf9526ca9eb2dc6111902d88b5d31888e46f1b53f752b5cb5f98a32f2971d00b9b2fe0b0359b40f2b673445a5410c6a84ead59967f817a6c982593b904f169b0a7b6ff6b3f2070a79fc3c5c6e56d6ff7e204d8c7271daf30d97d018db43c34d8339e66f987edde00b8510b1ada107c110a740449ec274c3be8bce2b453888b00037b841ced6b317622bc49fd25eb735bc803d7acd2477ff0698a012d26a10f437427619a483c91709c8df5d223f003791301c044abebbe80e45b53fb6915e0025a7ebc934f7751662c5f0d4523e3df19d19f7601097a0ee95e1113b16daa953f166cf48a070dd287ecde6188ef5b33b918f984ae665f8ca0e12f449ce49c66f5b964579bde7e9db9641b935cded72d5bb0593f2ba0334a55866206e890b92735c20155cbfb0b03872a03d94f40c7dd99b6237bfce159a20344c702286e581e09d5923eedc7eb1fd1c36f78ab3f84050efdf1084948e35d78a378c160d25a71c8299b5a64ebd3cdf98e8873bd3951c3c9e3b40073fdbb2eaaaf9e9792419f3843a1dcb14196552b9e27460d0385e40bc91b650c1f652f3c6c1afaeb169b6f3b9e44fdd1c0c6d0bf4e3414a9b069f4ae3b53eabfb1180ae7c2a55482186a006a881d28a854755f145d6e0ea4cd19f5dec85138498310b6514a4eabc1aa2231e0a4e55a8925e8d4d5b1e2d794e532d610806621c6721212006823ff492ac30bf8218309038108ee11087c187d66ae6884f05ab14f11271c11f1b6c09f2f7bb58bc602d8b7896bf2125c4ea12cb8f65794604a6d241e546f0f416142e8288987744625259301933425756450c87a31a5b24de15cc9db71ca7e23ebcbe6cd1077f22a8fc1d7a47cc09623b17bbbe0e63142a277019c7c04d8505cc0300f0dc04d6e5a2954fcfb60f03fb28e5195519332726a38ad83dde904de9b600dae46e9dc13f07d866c7124ae040aa1954938f9b82ec6d768c51e1c18e42cb103bf85e3476e4c2564f26f2d7947a1008cb82fa6d3c80a2baef8d45ad3e3b569f07ade21ee771d735cafd1672827db673035a6ace5481e1788068b1e6cd85f6ea9352b88334d94fd402bbb8323621fbc71308433738463180e52bed80c45bdf18e938b95c36795d7a1b57697b9968877ef1fe82431309513e92a37478dfd57719ca9721cafbd41080a9d0317107a364e64d8490ff7f9328f6657168cc552aec4ec1d14fa72c65263c522b489920410a26ca5a65aa8cc616c2cde98ffa1ff3e3a202243935482713d912364346c537c8e30b9c719c34129b100886d309c2caea520dbe86a782f911c77c1e344143da23406971f2fda94787a97076739fd9133b86d0c29f092699798d132390b442bda62d74fd282b0fe36a0127e04cce78d1b8676d59fd647fef5b9572cba66899f5b31eb95f4b8051c71df3dd6e543aec4c96007e7404686a97160c37c635ebc8fd5f9f3a652e57a2ab8c884e02c3961f73d792d69f5e289781976ab3b168f556b408915099a9797c33916e7678297deff081630f801e8a50854531f2376a5550e8461a3b821983fc9147ac61fb4fae00922f6b353c3b2931c759a0461797b76662e073321ce953de6d838d76252f61e786dcb396415310cd3ba1ced102d42e91cd387db54179d7c2a3641811cd88a2a224d50d5aa162e03c1a692c3759433c4cfe2f1ddd1450f65104d21cf2c18171ad88b471fa348543c06522714a41f92adf46f2d7e582dea8c2eee0bfa064b7c0318e68330211067fcbd4d5fda6f1f6803ccc5d40b2db280998c8980a95b85a1291e02cbdcb5de415b0ca5d2f0e25835fd91dda42b72f80346aaf4ebb148f8822d6fd3781aecf2e82ab766150073f10a71a75bff4842fc4d5a38df7d0869be54672cfc9c702e46b47e41802cad48090b809173c3eb1e5fb6b61ec83c0c0d6ddc5b1bac3361f4a2ee954f1f8d322a4d366e98950ed01cc0314921a427e0115fefb3eda5e95ef0b3787ff7d164843ff39cbd770e4d1c15f4e0710829eddf09fe0221dccbb75b0c40df3f2fe36c67b194716ea230311fbb78af2b4946bbd9002a2c074609729d5941ed575b532e86e4748cdac5cb73df6355ab8e97032c4566dcbb62652d35df815afa8fb4ff9e75f97b23113429b537a4a512baeff566321af2a5d1ddc9997dc2282b9dd4d950f3eed89304ac8b2a0d45e23cb3603092179367cc2494bf32c04ab0886639ba008b5f6162bf1f4cfea8ec98d4243493bb85e159df02375ca0c264ab4e15335be5de431439715442c127a6853e85459063bf8b654cd9b4b194ab6133043176e9af61f7da12a8c1bba80d61779b2a702271ca82efb7391df8aae500a7005c38f7979022ac3ea4f99b4b9c86c5298efa4fee64cf2ea9aa2cb8d37f515a4035921cac50d94fcf867f1fba0a6f6dc4e5716a4d58b719512cd866f2ec6c201982bceb5d8a39493849b1432d694a30262c52a90e7ef10e03cbd52ac2a6093094dbc767a04449e7315dc59c2205b009dc6f16d4761eed303a6b22fb17057c642c045fca93ac037e89d90b97fb526af5fd620caa6016e0081c75fe6d5e160f09e6e03b8e8ebb5bc56c9b8845d534cad2f1f24196d406bc04786269e6cb1f91ff7cca9c431b306d162680bb45f8495bc55b94c313da3172dc3aa6e9478867241d7fb82129aa7873cb810c662358345bf404e494cc8f66e52ffface8c80aa90f288dbd32c9133c61563b5c7ec7a3341b52f6a14ad0e754c01924cc8b46d1415ebd41fe9ca4254ad9a6cbc292ec048c29a570eb4e1140c71f6a0cf5fdc2c4bf0d84a09a592a2bd8e896802f41ee6b8ce50e31e9ce2cd911afeffc6f377309ec088be5fb03964b24509f82fc41db9c2025450900923884e316a1ab7022583ad9ae4c4f629b5d7b07da702e057aa060022427c93cb43f98920a6dd19628e580bf58f407e49a1ce6d8bcbe10e307c64f1f5870fab375ecf84297a291397548ca2280edd5c843c02bd6f4062f49e50577f8cf4f5904a4ce7165c9aa2565ca447e3e54e331bc483cb6ac8d690683079923cf752ba7f4d7ecc3320d523db748aded1a8cfd4d322cf94c15390e52745a496174a9c914753406e3c2568766acc0c44ce7b0c6dcf9c416ef2c8b3b797948e1800fca8c4d67be7290a3903045e6ae5af65432a75236ac1257060253dd6dba9a68356682947cc098a0366e594b4fa7cc8afe0bbd0907ca8547c109569877f0621cc2d9bbb9d8fca0857570ddd48170efa12ea1df4fbc231a0c56b0e82c6631c17c06c5cfd5bc5e8e68e2b53e4ffd747537a242da0d1d3e243078c80c71446f676203929490c6b4b49c6703cb504a748ba44b06a68aa9e898cc1a1a6d53a0ac26ff4317e5dde1fc6655b3790818079c5e09585902636697e032c8513a9b6074520f2c6e330ca82ca01de417da310a16d445ab85a058b3b4219a6c2465536bfa77b5c6eae52728f907f8dc81b47f10e203717ddc0be3f58c2b882b3c9c8f66a4ef2c9f1b01cf02eef3f49f28f3266cc5bac915ea46d213340d45208438bf2eb438eeb8a35130c624f9508d1f3cb9b3c676897c121f524fe10c8d3c4164896a6ef074a94943e8c0f7eecdc8ab9af4a6371a20a798ad35b4474e2f39cf22eabef8650dcbd32b9d75bd6dc734fff4a1972937981e75652d8f0c0a24c77a404de037ae00955a52e96c2a008249ea51be26cdf858b593bc7bc5d64b7ac13d8f44ee44a26a35da980bab5cfa8d8c4310e72f9e30815e12b0ce35ad4e541130c9979580eead8c2cf791e3166c5358078921d3b88cc077df667d62940c4f9e773cf65539421c021009a329bf38e07c244d5bca5fcb1b98738285999637c1b06211ce56496b4b2632fcec2e4fb950a6892dc2e32611873fdfeb1d42b6f737bf828878c71552f7460b0d93259fe9602cdb7e62efa3ff35138e0458b7f0a9e22f9b0d70f708324a071daf447109980b9693ec12f861f252381e3f5a85d3328f5c3460083ced6f8cf227ae51a64fdda85662f829fa0240f06acc750125f17713f6f44b9e67804631c6b994a1a949149492d71468843f75b3f5165d1cee0b1ba013ab5d50727328b228ac3a931dcdb7ba750c597cb7f79088ddf30271d0a7f66f9301b5ffe0c8652d886a4b9620b2ba6339445b20f6884d257249cf42285071e7d462e44848ad4f8218d240b64011ac694b02359d25a539bd9b94287c3c8a33698642338f2a949a73b16240cb5280766420a376884482647c5d741c600cf213f7663ced013344149164698300a6beea006310f3b66d1c632cc5770996ae33cf87d055b9afbceb66b0d794f7fd1aa518d42d570e508447b15337998e0dfb9d640105f9c80e74206857308235d8cb0c0dc3f778072682870208ae0a10c8b5260f95e4398d00ed9e7f4e3be87a7c79f6037d24835b4742f6486a97bce7b511904c7da486ff4bbdee62e0a338516ff1758767b92d21852be0d4fa2444eb92f9b06122d89bed178340bd5aac431403911f3b3b10e442adf605642d339dcc69697a74fd5cb63c357b711ef49837fb60a75ac6b8112e4037e7789e58d8616bb472223b22eb66c99751860aa10fe27f9aee5fcd23f29d7b96b6dde9408c7aa0487a1fe58a3cbf0e825c9e490ff84100948837af947576633435a158411637242079fba9730bf4016680179577b5156b510277f03617b416a1d0ba530ef913db813dfa0a70b40547fc0b79990091a507912786e22f9218d7537d0f526ed5935d8649d6401151c9bba605e3d47b10208b93e9dc55225ee40491a84958d253a146452061d5fbc16e3769e8e9daae003d60bbd7da600e1c24e06ea4be24bd9afc1b3b6af1b02b0ce9d7e984aa465d7bcbe6760c58418d8244e6c2fba5177abfddf947da50f1c8799ec563a39aedb550e6d07b4f8c3bd2bbf9c3e62053926b68830b0a6be1970d5a486efa60eface8e1fdb4d66f1a5ce8f0b746b3e1cb6b01eb37bf0c901cea652f09d74db20abb0150797235a66a64c29dc6a58584e0b5565cd0a0c20d1b6290802c93e974a06804e84d36d6539f35549bfa75b4024987d7a23160882693204bb210e1389d870c634521bef1c297f0305473f329033de4e5a7f761cae781baad249dd04cc8f9d7fe2b4839554395fed111305728f73235dc6e60f14841a31eac97a751b48ff008b9542e7b6ea5eea7a746031dd713cd19d0f2982c2efa3affcc61193cae0099a805a303918c8bc2a05aed3d26220c348d856bad2a98fe16ac2f629b0c30d72f940584e1bb5c850f7e74b86260bb22c1fd4664636497e340cc5a53aaf601e3a7743ff78f01f985457b3d4298af150e45d1e4640ae8c6a2472b2f6a7e9039ac1d6051732530d108f9fe81771a180c034ab1786e6ec76c844809ac9deddbc2edfcb248b18464934bc662fb94ca80f41869a18d60f0cd4e2c0100b399d734fc5c7e53ae380caa3dc20faab5cdae4b6fdfacd0e72ddc0651d35020ef9ff19866059058fc2de97fb54462dca08ef44ce20aa0a7e5575caf48e285efcf3184b55bad3773bed2b56c0857fdb38cec244cad3bcf89204bbd1a86874aa216d8e649c8562435de6fdb2e1b1241ea295500c95755361c909a3f18013594dadd1d873060aec9254becbe92b3dc64617afcaf88240e74b08542614a4f0f0a0a89ff05b18dd4fe8faa5d65bcbe33510428a25676191198c226837af7cb5a1abbff91cbf1f21c0af51f82393d53f873242261bb66e7220bb094befce92f767e9788f880eaaf34037e9acfdec110c99273d1eb025f2998b25f1416f10c115a278fadec6e143716c1e902ed4f710b2bac483049fb88a99a51b0d23146064221f285c0b49aac32010a04d553ad5cfffb121865c806454e96fd813acaf141567460c891696b651410a367661e7a0d63ad4d15b93bbaead187e9b98daad979a7d0c6f195f22ec6fb9da2b3d45a5f58832ae3043a2431c7408071dea4056042996fc968b6675b2e5b3940cd94269b5a6f43cda0dcfe4e3cb9b67bc9e68fe207ef76a854833d95dd2b47f54b37072b7c0b86b4c822c04181d89af1c9a80748eb05a68565618ef61e8dddedc36f65a87a8a5363689f16ed15afa64d8dc59641f01db6f96f675473f4f0161e184840a0862f3f4d5f167277d03d8df19be6f80fd31f3becf99f9f366e6ce991ddde0dea2bd442b448713122c4c9840f7fab904080b222c700239d118e0863073a927af8fff90821def84b6cc6a811941e678007a5a7729b5d5cd4b193979e110f64f00a43b96079453fc014a73ea65675d4279d1653107590379e85fe21d580521e1ab012fa2c8ed661333d9094d878e644aca5628fca0e163550c568a8845d36e5db409b1a6cfe85783fcd154f7799abfff6b7067337827bda9e8dd8ef51714a4bc9ab440bf5ed04fd426afdef1ddcf59b48ac13aec1adca00d4f6f3636780fd73ac5bb7da031d491d27885c51343836a1030f3f2e0b63eaa1ee42766e9cbb1a730fd02a2ce3318f3be6ec5427fe19660a10f25a6f5c3a28be4cb478ec34c312bd80758dcfa69480b568ded8dbb8d20b240b0b21f5e1bc73dc82e660a05d850b7fd93f154f06015fa7bd9a2ec139425ceb95a2450b0304182424b40db8bd7ce0137f3d380e2495d9bee392b6628a1d05adae822a902274cfdfcda9d7912161aed32f3fd4525a730fd2a13099eb3e5c6451a113ffb81fa423571c3f3eaa2f97207934528a22d8a6093b458def611fa2003e53808e5b1f642b9633c84827c643d7d13e19ba9e03eb02e8699a2736451f7929c8d2246c5363c1521f2dfd6ae3370e2981e5c64710b1742d1c3b18665e2bec7df15ef24357b3d8ab0c596c7a930ac1b50228efca72e192670d61654b610c4123bd27de78624be1521e39f8b90e55991817d8b99d6c691777359bc28b7e1ad32dcd4add79e0aaf4b5b7458ad10bdf0940cdaf89996027b70a7e8494415d969e12d9b6ee9e5b85a64cbbde6fcfbf491a4b6e0ae43bcaee953c24b88b4020e48f43e65a41fe98d188b8c5a54a3166594227056f58bfece0ec9061481aaa0b14c63b42ed9217eccec540d73d690a41045531edc7c503c482a06fd8cc211a17bc40891617a267420e0f6c0905b90b040618228c0c501595f8bf4de40d33433b7f6d11990815e5042d306a54ca944ca5d4222fd55009f88217e06fe428f825aa58f75b43dc949e09dc385bea0b432d7ee72584360a767720aeb1ed5d899cdb277cf068c81a408a1274911b4c02bece7e15958528e294e77c86bb1fe6a0f33af8060c2024b406fc2766adbbe49f23c1718291e018692bd913c90fa4cb2e532e7525921fe111e19052a703ef555fc7f2f879c5b7fdd47f90993bf8020a11108a4ce31f092112c4f89e2f69bbf5409a8abaea24ea56aa92d67a89b3d254d4c55ad2a35aa6aaa8e38380badeb018475cc6a57226d5a27d1cd15718e1617ec6eda0a5529dc614324f848fa799fce50320fb14fb6a209e8eff9bcc200165db9e5dd08151d3fe49f12c2d39075a0164cfc1b2e2761e18224a09058c3e4e7f6956d94de5993da3748ad4869a5eaf823a6cfc1dc80cf154848b01001b3a613aea8c393cc689cf86243dc39e1207266390e5f62982161ea282a451a6350c5f72c58ebbe1ce3c54ff6ccd93967e667e88cc3f769c8d7ed8411b4c2120cea69564e496d894af4c9bbfb33d44a9a7324a63a71e819c812b182286541f8ba1cb663403632f64381c6cef84021f36431c6a83fc2f7f8b2f640ad3244ab52a172c7aeb6857d3d4ed9f1e7327d0f5bd7ef61ffbbe2d0765446e6524a56c892b3781ca7ea848192d1b5c7507b796868d504193de0039896a2aeed0b96337165f590791cdd47f270a3f3cb8cb90ef8cfbb76b2d0504a8563252993496cc88ec6170b177569d306cef8489dfd1f639a4244cd571ce7e18750045750fa8610965b82b2e5a55623a2e7b1c6fa171ee0bee08fc24cfd298289ade85db7811484add987a63cbdd778474e70b968392500bee8cc414cdd8baa6421c23347473778581b6fedf1037bab8d719682f3e72ba75c96973e67e28b7157e5c32d330cef421446cc228c7b2e8553be65bd2b11c3c54fe5541d809ac38b93d09efce6d7d4033be45619ac8cfe76909e6aea39136d9b6b7d8ef7bc33a67478b5d4732674342223784f03ec29e9940ee074a12f24d15f006b0a117949cf928b398a9ec1ce818654f0efb952157a33ec2d926dd0e1c8fa8a65437d56f171cb01895f6b29ef5aeb88059ba2c306a550813597c1d90bac03079eab10496ff01a3dcc6b5445583ed6eeadb6e4e2f91807348aaf2c8ed16258cc9f292cad5f8a68caaa73cf54c1e4dbcd48969409fe152c0c9c30f7a20b4c8432e4a0dac65b406f4641d163a5e6a02189c807396f1049191fcbd92ffca919afa9409906d79c3a7dc5976a0609dec2afe4189e6915444558691ae20771bc9c5c0dfdcd58b9ded0d5dd81ca6db296f1d4064bc5e1288921f091b42c0568eb29cd9d0afa9c284f24823f33ee942106109f2d702b62ce7e2b1a4b52c31311f3244a8e442c7d791df3ca2cc5484d25a3280213f0d8512e4d11a7d8f996a6337c94a4b68ee3fe83c334982b00186c238c912b0ae43e53cfd0d285e4fff6a5119302147def9e584413537ee89463ba177de9b2e1df9986278982cac37df07a2b6e9750a96147ec7be1c22f0eaacef4cba7d9fed5ea7bdebbf1408386577577c52c68d0dac63313d38bec17c120566371412be87a008ce9512686072e6a6357a389d7e0c0c5867603174538bd4afac2936c8efd4cdf9c3750c2797c3e558dcc85fe4b0139b0be818e5b40f5e6f829f382826a0bf8f0915ea0c3535b44da691f5b16b1ace8724a4f0b32c28a8c54c7e1ddd3853da627cad66d13cfbd7583800fe72ff48c77f9be6ec2e28723d717d81d350e63f9e9b7cef308f77b9c6aacded025c1d0ab73c204d743013ab4a8761f6294ddeb59bd5f0a0d152f55ec04ee3c40c663588e4612c4ff9e4f216ad261dc9d6c55ea10a80d6d5695bce092736013b5d57f2721ea284ad9c2dd37728a3ee0e42c61ad706aec33de4f9f5e71c8eecbafa30dfec49180b12ec7af85cf3b008848bbbe7808c686a0de3896c0c34146fcfa4283d3b3d815546d52e7f2acd8151737fcbd448029633838a71477446410af3b5dab3d754e97cecfdf03f1e6b8ada3d56d275f7fd469a74c8d27b1769add1766273a09cef946776c243291fe2dd4209a5452d642fdc78e36b0d50b93876b6adcb6c684eaab4b8e4d4541ab5dcebb798e76030d2dcebc91af556bae2bd353b0bc68ad81868744ee383f7d7242f91d68b7711acdc2870b269fbc7e33c45cc595da8f91085614d1298ef967505c5566927be62a5ec7511411608f42ff58e68d2c16e55d7571575dd465d75dd705d3455c869489f9b9502065dedf9555bac0a0a8c8bad8b735e6d929ab8b410a72674571b999eb8bd0951ef68475e551a3fa67499b24d91e53d2f2fadf68b44844e8249691343843df5a93a19304659d2391bd7792d0391d30fe8d8564d12131ddc23913107314fcfd1d2fcb8dffe37cbeffb1e9ed38a1ef2551e6acb02c6e5487c5dccfab19ea37cc287b9c7ebd6289cf4574eba18aaa189b115b94ae1e6aa88a3103f145e8e8a14aa95a33ef1780fd7479740e45c8a889c22d8158c9a8ad05e1c1c0fa485ed84a21fd1e6b07112020e033c4c4fc5ceebc3c6bd61286422decab0c1a484f0b4b1da98cb9ed43930f4d9a954eb088ab69f22ff28ab26fba4e9c4869735bddb16011111ee349c8ef018ae3aa9ea25ab7e09c9f43d5486925bbb0b23d2f5c4f6980f005563eed464a66f8c11c585f56515ed783d074ed8ec4655ca72b194f919bb668870a8497c94a0ddaea0e58846b8f3395154502135ddd01cc5877be443b256d86d1ccad354781091edcf23da9eb185a8d5b3577d8a0efd1a2df41074df237ec41c9d841980e1e0a03372c0628817a7451e0a27a83b9aedc12922625f52d4882bee00165aeb9d89cc7fb166c67eb431f752b9c30c13e435a08a4fa2f23b19262769c35805d058e022095ccae36bfc1d2212232b98e8390a38d30812d682e6bc53d19d987e3de7c3032f24f5b758e819908b067617433680d8c970fd4c4112020f493eca12c793ebb0234cb3afe413eec57612eb280adc065105612d00da55fc0e3431ec657bcf481ca2e15f3883d20648cad8189eff60764c86409e42444ad679fe105fef18f45005476ad18f7fd9681ff1a3f35ba60cba81d4a0f6b416074c35c6cb3618820e32593f74199652424dd56e044ca7a50f06400c6ae924b4848b2cd69e8370371ab22380fed13521fcea404e0d081dc5d7a188cb0fb59301ab440acf93496a9a0a56acd27733e12f638a3b959e3063b71772dfbbe2b9fbfe9d81b6d198b9896f454d3bd64eae7cae6aac60f012fb338eed253f215868a2f98ea603ea9621ae0b6af427b4870854b3d8752d36be134141f1259b68a23ffe49fbce0ccd77146446c19282220e8902c2fdda1b9462f373fa5e20e0c21c34fea494bd4f07dd92b2023c1042d21412559235de6f5a8499e6f1460db183a57971705bcd58d3865f126926f04ef368c87d0717928ae05f2c0c96a2aafbab0f174a05ad77326126c774a342b312a99b13369e0515895df2871e39471ca5746d4cb9a1e6f0ab032ca82127a07bbf6194cd59cee6a8e6133bf5107439c383897b9f5c4232a8791cef59c374bb4eb176d8bb25aeccd73f91d190a58af641b2e2965e5eaecbfa17c3cf014d9504d3b7710ef5eee408040ec81d64103259755e513a1713cededf98255e34b076cdbbdb28b690f2376ae35801db9d29d808653f09a33b5f2c1b88e5054e4af15830b6f92af7144416209da0cf0c48b181d3c867e8f3ebf0d7d3808c29e649655f6049c8f663c39ca3ba54931788946077a74402989be065ec48aa61b7bb53e8320e0411a21402ac60971e88584c0dd75bf86bee9a0139210b835435ce4d39fc548f17f3c5d06b34bfb74464fe0a50ed1b88c3bd114d0a8230631a6c098863b05e8a3ec3505c3c39b11c904bfb0c93f9b2a1250d1552a51bec1512b70660c600dfd64573807f45debcc5ff6e803e3b071cd51a2517d096f18bbefa1a3cf3c6647811a4b937942a5a81e23742f1f32bcadac42ea2b4b0f2dc47047f32d0e7c83cf513d870327e073bcb3e67654d02288a0ef82b92828ff04fb8622277186685fdb207f3b6947094a67d6b9e99529c82e1d3972574dbaa611f136d8c8372a8a2e920f022d578272f9886eb03b9172090fddca453ed1bad375484d4dc7b9c18af5951bb86f0eb719e419e0fa8ef097883d7e3708155fcc63dddd573786a7f2771623e7ea062908bcdedd97a8eb598167f1ee25382be0a94a01785b73997000dda359bb54f6666d31fce4063bfca5fa1c3a6b3c591263a8c9b940697476167736dab70bd05c826ecc318fd26631c9eb31504c203b281e4520aa68062045baf321e49f9a66a9b88a77cd42a5bd544aa67ab8415dc28c73e3b38fa7e9e90605d6cb1e374c7a991da639c5cf4407260b3ff3f983edcc0b7cac60ab52108b22fb96891b348ead227eb2c99e03ee666b132c56c68179821b7c38de6c164ca4963c737f0f59ad8d1e2728e70647198b3ec53e025545e1b4ff80c77217074e3748275eb39d921c8f67c0f27840cce62925ac1b646ef1b912f660dcd26ef0071795c4010ebfb46e05a96c278d67a41b24642118b52a1ab85a7fa30d63575d3d5391efb1e41f1e8931708487f4e2ee3a83989dde0979a3333c7a17c900736e709f63fa398b645cf5461afd984ccd19b9b5efa77434037a41294ddd924b37c818215aa88b4dd3676f27f83776ea9e6d37d801fab0cb2190ff0eaecd4bc20376a75c7949f9003ebf22292c680873807124fa363b7dea47e702ca194337689a57588b01bb3bb828b03b788b969122d47ef1404a286b0dfde6114e0d23f55286013c8c8a925fd474952593f34c594f9fc84b1007a6479051ea98e8066babc5a934236ed04a688d240c8e97ca11e316d41ac9c6a4e8fffb641946713422486262d5f63fdc99d5133299585a43841bd4213937c2a33c6a1900f526c0bb8bd1fa15a0fe690c9c1a52a1c240b3e7885ea08c17987148a18552840c770244c8ff14385526bca81f3727a5084441233f238291d08422c3add85447140dde15be14c3694696f4d1a366b120728e9fcc523b6145fd7433294e4b0483f4788e0a0696eb62b3a79d5f70a0ac5f53afbecfde44f0a26e3e24986ea72d11a4de4f302a52920c7a487db848090998440cd20eb57048aff25fe29c44e86e629c0735075d3195a015905c0d388be050944c7705d22a69301ac81d1164c462b3a202a76082acc1af4490e11e1ee3ee602990a70a8bc7c11027e22b1b11d48682e12ead5be2e17c692672a383d2058ca232bf41c53d72a61a28294fe84a8308fec0f69c8a90ff85c136f0b20b301cce4c93395a99b4295bc017ef9236138a3438ab7c86e4b60909fe1168c297819599c8c0250db4b2e34133cfc84f6af87a2935e76a933dfea481593c20654a9e521f5fedd95b0c17f61505e21130e0a4d5a79b6c2729e36b1684fd86dccb090b1157d259eb998e21d1b911f99e29900652b9a5fc29627b758d07e975fa9628d24099638c209dbe77119333fce2177069e2c913d514722d34f01d33c8d1b43f269ba0fa40696f0027ede7ccbe515bf8afe34639f243fafcf0912bf18caea1b96166d247a94d3c4fbd4698ea2e61be47adc7bbc8932dbcc1bf85835e9e5edd806da1ce4176850b293dc816aa181d50289619a0b894a03a20d037d47dded493c12ec9d98721625601ffa8a7b69656fe14ea81d3b986d984e18318b277242339f9f432c891d02fdd8ab35f51deeb793614f01bd2095bf23a20f1d7b7c4d79de230624332bf2e22442b1b8a37dd55452c839e62b6c6f85da013c8c53d503b5566810fcf77593f49ca162730999f404e9ec8620bbe4007737edfb3806d3b8980ca51c7f9b42c48a6fb33e80bab65d86470924b02b875c1eb9ca9dbc0547b561f4626b98b2e26212fd48bd48f604c050ac67054acbde1009e7a993434d81f4d0b4ff79f9c8f50e22cf255d01c6bc6e32582f9647c7fe17c828155e221952010e7ee6596099d5ef241f3443d211cfdcbb4753838b3d661e1f7b48eceb4bd833bbb739834986e31baf99a7621c78c17d30afa56b6227a796cccdf394832d6314ff07efb16d2034273db3175bac600002189950ed99164eacebe22e0979f8533b5a590d379652f1bd63a6f042ebcaadfd366f32555397aa1e5159abf483c4e67d327e5c298c3bf18f5e58df9fdc146c81005589f7ad93523b1fd7604086d6c418af5dd2b06f7e99363c319fc8a58de130a6b2d7a43e4db7560525f58a426dc90249fc5a6ba10e66c485dad786706846dfb812f09b050e0a4fa3203ec8508a23ba159d85ff16bd273d7d1ca5a8c41273858896f17ea4ab85b860c64165a4b43364d4ac838255fd89e617638db6dcd8d95303efa725fba8ba771baec07b7d5f98829cccaaf32772a23869e988c2986caac8226910eafe065df84047adcd4bcc2d0a467aba0838f840fd234ffb0bb0f6c166b0149b1668a155bc299e7755b48a0447fc7c942a703bed2c6030c43ea85290ea725a5f9c4723e2adc646277bea57348e7190c1e967244fadee640f4c65386255bbde0011d4853777c750a2047d9ee8c7818f17c94c1bcb453cc64dc87cf2cbe1c491d25fa4f674904b1528132a09545024080a49ad61e04e9873436396c69a88ee27e1d557f197d60adc5b7c0abf5d377b893e0f262a367c4986afa2cb12af105b4d0568c492647fe35b296abc1e22397daa9ecdd45aa37c5c4d1795e0754830bb4153b860b8a8e5380de58b6067162affecb81207228fdd4ec7dd5a7b551f2c163d11c6292488d50f357c436ce3ff434c847b37bc602a7f31108a665ab8b3484f8671cd43239d8c8d4470df052dc22db6d1460388db6204208c4bf9702cbd77d0b275b164077b4c346e6afb38b100f0314e237877030d94a23bd1d6122d0eff0698edec4ce8fafc57178124ebdd23aabd6d24dc649e5ccf262056e9c6f9024bf2109046ce38fb3e72a0fab12d6c97300898f84762f5eaa17097102269e25d69b559c22ad7fb4b2be2cc2d5d91f9f9c6a55ca2236b8fc0351ee2d7c4947ced4f3594f3e22bab49753329760fa922d853cbbc7d344682ee547eb8740c120808bc5f92fa204d406c0a1c1c49f818363c25c819212d0fcfcd03e13986ca020db41d46ee0ad33eeb81cc6a7fa6092c9bf449505b0e26f193dbe9335eb4e2a79fc8055a4f55baf9db18f813415821c1375b037327ef82eeba0a915fda5307f1f8081f03f90f7db7d91c09fb81bde55c74d6d468bce98f43a825856f231de20933f4585380291271e0d00ab3c3ff31604fc3b36a291bee76781834d5e481e166e1f927e46667634bdedd433cee48becab1e99738b913901eb313299430c0ad95ba5a99759fdc0fb2d8ac138cf9841996610cacc4bf9349389fe96535417ca7f1bc79993221f39d74c3c2866ef94a7b14cf513afa2f4b3f1fe2da42cc22670f15a104287273c97d8832b9d66e50bf06b33a5868c0224dc10e26939097ccfc355a38cc2835796d188a3eaffc552d543f135ce79e957506f1c0b1b7d52230a0b68165d1caf2b6668b93f83d490e7b24ad0daaab254d5065740f057d385bf7b681ce13a4c1990857d87a89595d241dc34b9281a812def2271bd4f92638112623e7defb42c428311af8b6ff831b7c30c868d118516c025450e3eaf0836d1a08336da8e0c5d7f0b4a0e56f1c3e19ff7ab4642c6166185c566d634a20003ae449ea22e57123be62e5aab7c5b22883d7373181ac96cf479e68179be5ff701062630ff4cad22e25d6b825cac7d6c661ac4ce9e564ef4e41d1fc85d321aaafccc5bcc413a78e59e85ba72c15e2406ff3197cb425f19911bd41930dd282dba9e16b0f9f9879bfd22d331cfc2a931eebf5332cdf5a1fbf4d6eb3618ba7731ab6c337a28b18fc1370637964dae6413b1b644043b3e654af466ee4424d12165eb454cd0c82521fd68b9ce937dcedb38dbe3bdb310bf722f91887f7f73adb51688dd8791a94779981534d45651acdafa89ee0c8218e02961f235349b7f6125c2becc8b8c454d112360ba8b45396cf634ac0c01c9fa928814e2c72c74a02a74f80e71f589427f35d08de9f0f459513d7969bdfe4940c47b8125573928318edd8e812d1f97316c94ac72609ed03694643df52210cc23853d10daa5f47c3ab1c0dc8865e0668e145dd4f12d87fded1938a1e2459e1cffcb5296ffba07eaa63efb9672faf5cdc8245ae84cbe9c58858f4155aaca84a085d27ad5b1dbe8ad2092742fa86cab3b484258f5a013421b829a01b9427b2121483763626ee2e0e436b4c06a91cc61e8028ec4cc4de2c4f506ea3ae66f94de94c944cea1be9cf27d62f0ddd8476cb16da7f97c8063cd7eaf7d2df700c2d933ac52332c2ecfd4077c52ffe0de6be1ee64a0fa18ed148f1b3405498bc05cdcecab921fe00bae8ac28aec38d635a93e9990c3084eaec92f1fe8568667d8a6833f8ba545afbf551347dc8d3dd20cd5392899bbe911db9084e4e37a2f4ff883f091d342ec80ed5f481e689f9119567c3474c81c025915a5c645fa43f64263e0495d5a8edd44921515a09eebd527eb9768fe66c2344e7e272a40625aa4bbbe766c4814935d9bbfc304c0e98f633c61446cb12ba02fae5e8bf503a9d87af97ca40ba2a6f94f0553bcfc590f1dbc773c1e07ad10e696ed50247ee348a0f267d43fd0e702ce8edc16376484e4f166c88bf4c1c781c9002355602731a7a7a5d4a63da7a75001f3cd1f9a10e517a14d9f8f6c429f3dbddaea661bb6a732a9f3d4a5fc14835f122a5ff5a7b2a600f1d1fedd43bbab56519991be4ae44195c751784c5baf6524028a8d0f2f51651c3ea41be1892f74bd1e1ba96853c2de2a79ac8be80d86f16dd45fd889e2de3e12d7c965a87d0e71026f55789fa0951249cc468aec926e8853323e97d8bb0cd5d95fb5b4d0ac2b4b5856fda53a26446cf4556fbddff75c5dc6893417163922423bab86b15d977d3e37fb64b55ed76f1dcb638df2d3be297c5ae9fc04c47a22fd1fb470227d3dd96d2da0f58d9c24e2961979e16c8ac1860a4c26e7eb837a0f2933b2e3a19508ec3b033a432a785e3012b2a20e09b5d665a800a8f8d2e5cbb546b453219880598de934c2b737bf31c835656e24ac0805657986af2b4708710630b425115116218541729f58def101409688c9c09d8a89157bae6e2f1f919839d77f2164ef265beebda54c4906ec0742072207e2cb0b9ba28a498a9343a1f2d1c3623c3d438858266a29d4fa452c7da7d285c2641a73d83779a71b9c4c4c156bacc493bfce7ae17522a2a2322c6fd46094a6f3e98e1889c12c26199902d86c6caa5a016caada4bd599e9c8747caaca613ab1a22a4d88f20dd20d0e27d7e5bc7ce59d4c378688469c1cf5106634e1259fca1bb51934158dd28ca5e9444462697a51911f1dd9dc6e3933fbbc19b4ec33b3172fc61cde8b986c98139b36b7d3caa8aafce67364b564f513aeaaac9a54b3f68c6fd618f836b8234f19913630244e92ab6c906c9208f0eabcd86ab65a52e445477e842496a6237952ddd1819936371899f7c1c8b28b8ffab0c813d8c71cf5ef2d52c9d1963dd67383bbc925e085d279519aa11be78d29376c3a3b3a4188927072152757717239329c5cceabaa726039427262393c3943bef246edbbdd14b71a0a400cc9956d255b1159f9ac8eaca298525f2f9b9bcdcda6c8c6c8e6c806a9d3419125c0a8013c24ba15191d01edc47466d961623d433c25237224db6894da2b4a6d0649aded30d91907d8bc29824d1d58f7825555ced1826a4327759294b7a0297f9f223b72528489604278728abc287172558593836902dbdc6c8a6c8cb2cd05cb44ce5a2db9e56a16c230ec067783c4123f1ce0028895b4e714a25bd1c78e5ec4783cd5e3291f4224dbbc57f8caf92ac95930a54d91abfcbbab275207a623c453aec3a3336426df522796320236bbdb8beed6e53a9cf56ad803983c4c36890a4b3875c632abd12b6d6e0928914560fe054cab441679f1e08bf2aa5294895af6f77254aa544a4c8d396c8a3ce5dedf27d8a624f274709cc822315f228bc83c8a74f5b86455e56f9271f900cd5cb16ccb44f9968b3a321b9d5c3ae4a34725394132913ab0aad291e910d139921a517017cceb9480e27400869bc577bd7ce5dd3007da1a5d3bcebac1e9c02e2804880735e489e08e244006b4042797d29155560ae7a9038b31a1fe05782aa57056560ab7146e2f2fa589ba36379b2a97b499c286073645226943854d0f6caab031b2b1c2e60a1b1f94489b2390b4f9810d104ca40d16281b241b2db2bf0dce11e02f489b2a6cb0284be8b1c182b28c2a1036b7ca2aa107aaf2ca5a2d71957f931b94fd0637849a125b11657f33b52a92d9dc0450ae664934a8a7fba1cdb2797b4a600ab7aaa21104ec4619f782842113f0aa0980913772a4ceabaafc0677e3463770e48d1ff246931bb41b415cdc40cafe37b2a0f5555937866e1c7d118a28fbebc694fa3271723e38399c2432e7755656ce8e107fb2bc5123000d36b750d4c181b6a43c7103c549e1ec1a29dc522872d68b12c79638b9267072f9d6180e0d07475be3fbe304392b13e9c06e703ab01b9c0eec06a703bbc1e9c06e703ab09bd184976c7ae981e9f9710164d87d7ff14b8fcf4724f78b43ce1e7c38658c39eecb88319ef0926b996d396c621dd84b2cc6b800ff6c7763d93b99cdadbb5f0ab7c6a1b4069572cb0eda1cf68a3130dfadf661f7439130e6b8c1dde06e70b44561a6f77af1f2e2d222120009661973e0e4288dff00b0c0a68ecd2dfbebf4f8cac4c9658709d189e9f0f8e3e4bcceeea00730404d8d121880193beee7bde86c4cf5963151293817afc010334d6664108309b03f17661c718218a427489e184102977e78b2c30c18c8d0e209099ae053a642405c50202094c085688a2ca0c801c6990a010955011a420610501032a01c6ac062a6424034c8b80187b92138f1813bb961147641314183206414c1375321272a10c22e990a39a921461578dc22860f783c925105bf8042c613f82553219a135c03da12ec8292c12ea1916ce22fa9a0074f68c1e426050ba2c00105370c11c4840992b4c008154bcd309b5f1b1262ca098888020820820c418913d8c04516371ca10a2a3176406341d8051249b41c68425e4029a5ded58ae082947a3c219d5102f3cd61e7e52edb1c824e4b390ca957ba780907380c456f5a32d5b2a913b6d26aed4c14dc4f334caedf75d55afb62676badb5310bb017c8d51631e3323c6fa69682a97636b376a62241f3663e195ef7ddcf7eb6ac99114ac174f682dddd549280766689991997e1331595aaaa9c87c9b5ac99819282c9335606a752349c25832a42c5643a738b1245e6b4355b7ba14addddde791e892f1137290744bc7441440b56806640454aacb55d14255694b928a9c1ebf65a6badd65aefaa92972eac12f65e8fe24a3eef9352a48489764fca1729911181041167b59df7d17e5a4604cc1160297cc123bed8215779ad85d4604a1a2636a1811145fccc00860897da4bed85168830eaa90d715689c8593b6b67edac7da7adb5c8fc5bc61c2c63911888c8bdbca89d4dd4ce1e29600f1e2bf8b0b180d221936b3060ec97735382a770c0c8c4744850d6777e3628d94f148a84172f982c512263e65d4eac04cfd4a127c5f32ab95f6b1daab5ec5acdd6ec90b3be29df79fa897956300aa350f85e59165860916436440c90bc8c8c0c4cc813279c10a2abb5b432c11940956aadd57adfd7d7a9116ce83eeffb9804e96ced98582656aab5d6da5addf33c6bab055fb3aeebacad417e402549906aadb5b6d6eef3beaf13a24b52ad2873a949c424b55a6badb5b57ad6b3b27a8310c19391e9be5badb7536775566775566775564befe5356ad6241666137be0896320909179191919940cbeb487703d10b442d824dee79d54926c2153ed77fef77954922cc1842613848a4c102a3241a8c018b1dd4c7cbcefbe90015fb200618ac0bc00c6053044703f4c0b60828001024606f3030c0bc40bb3029821b89ffaa0821e7a6052801b86071917a0baef7d58eb5959f7628c42fda752b71b735052b455e5b556efc3d47ddaa21ba0b96c0281656b0281e1ca92e1f43f627a8c6ffab11c0110177ed363ff5b514f529657a1a5b03e587fc8e00327765c279cfd2f8cb628504c0fd3afbce981b8567a8ce303718598f41949c6f46079fc2c257e966f21637ab87ccbbb94fe53c6f4b3946ebb55554c9728b86be5574aaf957e56950fe1e3b5caaa2f57f9dfdb3f46b0595f32483075d23f44c8267552454a238e24759dc80ffc3003205c95bac21fd371d949eaaad4454717682edb27d8bc3710228b3960981fe0ef4d80cd7a66981fe0afbcf5ac67bdb7d04d230871effa4195c861a707d70cdd14275ce1b79a8b4c1f06bd3100055097192387bacc994cbf079bdeada70aceb3c2cb628bec6ff2c1a677036dacf11b267304f8772cacb584d49394aaae11b8b31ff6f4101e95e555a12a7fcf8aecb8ec5d7a374ae3329c5e7c194c1fbe4b15a69741fcd3cb10bee963fa7b9c5efc1ea6982e5138bdf82a9c4ab17c5a552a98ca16dd96446cc36a69defade1098ddb946e02e7de5b5de5a6a0086ae45da9ec90402921ae8bf6f3ff448b3c15a2ac1d0650d78df4f3d9309245f4f81fdf539d0d326986d3a7577a79ea97aa06d048972d9e591345bea22da016931dc4265f50d54e5af438679371ddeadb2debb7937efe6ddbc9b77fbffff0f71a09f8e007305cc153057e0936914c3123e9946312cc15c81cd3e92bd89e4ce7e22cc15d8ccc94e29c5f77dd016cdddc35c5563ae1a01ade16fd22ad96da03c004714dc557a7a4fa3c3705495531a8c468339cca30085c157757cfbd1ae54fab0c4a39445dbfa46368ed2f8d7ca72977f8974978eca0aff6f64bb4432a6479883204ab866a8391792ef81b8c216c3dea943d42168ab73ca8578ca3d9602ec319926b8cb3ee2a9951d64b30e2164450fb2bf0bf195d7389d73acc23ce575274607d874583983cd705426b8cb45b973741d0155f997e06787ba825add7198c31c1603cd39cc6118d567a60098e102b9be321465094fa645c8348a1212e4f0246b1992acb26cd890d9a0343e56f07cc0aff57e2dcd36a1ff6b18ba3187d77f494a41074b168af090ecdf3e2d1b73c4c084daf2109600c5f9c065a17e4716113bb2cbb608ecd9b4516dadb634d68aaf8d1c16b42dab3a481e2fc0f54fd8e181e52d690bccfe9d8db672b27f2dcb4166ca99cad12bcd7bc3b296d4f6b50c8622e157b28858c2de15963aaa4a4765b5cb8e45e02e9b3616f0929b6c40cd309e601f2b38eb8709a5dc650c34c066cb6495753d99ac652d93b50c74d3cd6d6e0b876c95f5c355fe4e9368d20f4ae3de8fd1088d445bfd98c763c0c5bda8effb48d7d8c2faa034fea18d5a6b5c44fb83b63cfb127cca264d7a798ed2d01002761e9b977d090fd86c241e9326651836fb6c22704157ddfbac22354e0f1de1427c0829ffa0adae95e53b5095ff0aae0b309233f3501a7f7fb7d57b31b680abfc8f62471a0702521cf1416972284d0f350e029ce536b7e1441e07fbb67fbd39c1730da5f1eeeeee4b823dc45da860183a771fd35dc6fcbd66d3724fe80a0aed2528cb476d5ae3c0d035fc9d0a9b94ec48dd1dc303043f4685fb618f0ce8ec30dff1943f8f9db0a35d32062463bc320685fbe1ab00821ff6d932d09256550c95d5405c233849f6efa134deb4a679933e60681c03d01afe3647caee34980e88e7e011b43669ca306ed86b499b741e6cdedcdcb4a33e9bf756b1086d17987e2bd4539e0f65273b60ca95468edaeed4ba972505d260a6748921a4ec640760b82698f2477ee0665b364f8c0af64c03da48d027dd382e748dfea63a307b89fe71b76477ad266f1dbac78e511a3186fba7febd18577287a76ac814a5e9e7515936dc85c651d11afd1dd4dd3fbe1a19d047c85eda20e0964c9dbca01604fc1931d4e4c890284264c0f62b15aa2565f366f126a44e24543b6ada49fc90040fd9c5535ea436f4d3b45982686f170ad2c1abd720213949e8494ee809ce56fb440aa12753849e34d15ebd06e1babbdaa05bd0596badb6eb842e90bb2e9e1c71c10b5e8cc4ddc192cfb5464a6129ac0561fbc3931d3ccff3c4f1de3b9a6a4b2c900b3ee11a915acf4f0d56db9902afe015d415a158615961c1422c2d2c2d4690e1169716974f0b2841c80e1484cb8bcb8b25e2837a79f1f2a2078a1114db7d41c20b12a004b5b4b4b4908082b2e4a26e306060c040118209981898182841c4c8c4c840e1014a0df7c90dca2bbbc8c49089218413ba2257a129413f39868c1832847c902042eeb6445ec68c8c19212118161281dd62e6673e891c4ec228891b2a099f246cf728468c1831666666662c39e62049b20440108dcad41091442d3c59ef7e57002a388527afb5d65afdf4664f88a4e09ec0fd61bb146cade943cffbbeeece214ae906453007074cb0b98b7d58428d394c3ce6083f14457114619cc0a3c9643a9d4ea388c71cf4437cc2a611afac608c31b61dd93934750e4f64e7f034722044e2d6458681a2a8518581f1f46b0f094fb9e0c9f4ab0e74e539999058f894c857a275a31d2425d0a4c1ea4efc2ffef4a63b8ea489ec5c3d2f34799e292710c420b802822c20d802822e670f75e2e3f09b6c7a008879732fc62854aac2c215b25df51583c579eafb462418e4a93f8e0493e000309b729e4af29befb8ca576d049a728f5d219904f85efa7d6d45f73cefba6aadadb573f74cb8a5fff154d009a62fd59a509a3a9e702a634c65919517cb98b12c2df155e9574a9b02aafaa12dd1bd087a63e5fde912902756592b25b8c30a4022f6872ce65209c6c617f6586581b1aa72bab22b1bf394832b1f96a6137118b628688a5bc0f0c5ab65ca5335d7017dd4384f79d9489ef2b73167751034b0870838f3559321412e3bca25258e904dd04789a16ccec826f8d9047fb23f48cbee32c1af6dcc5766d7b2fbcaddc3f9aa71d9b444b0c8a63d02846ccef07e70e4abc6d196e5a13459d095dd81a6fc6347364600241cbc516185116d795f041f5491fdbb88b6beef0bc3f1fbacb5d67edfa52fb8e0a9efebefeb1047d7fd537f4e10fbdeb6d65a6b639e8b631c82b1f07ee0b60e284ee7ba06116d790f963d257f6fb614f9fbce75ee23652ccac62ead896c6376a4d9582c5b6badb53e94fe236774df0fd2680b1463b4d5bd29f66063beba600f6dd937411fba97d3aea5ef5c2a697dd5d259b6b4b123d80463b1da2393f9f8a4c018183b53a698c971f01066faad780ebb8e3ebef4663b8f054ae34f9152306cd21b120b434bf2ed24c73da59452b0ec5769d6a452b557cc0ef0adaafb3f5be4c095367a7bf35557b4005afba9b4f663d25ad7a5447b024ba1389acab63974589bb3399bb3383ce59debdce7a520e83d5faf7b3146a1fe53a9d0dbb135c85553ead0cd7b99ff63e257fffc6898900e68ae19c422452e243106c8c1d53fb495a3ad9cd389f421b69a1bc1a7365661a61760d304cb271e9cd67db5d26a57d6377d955595df7baf8f1c1b9edfee6b942ab9c6ec28b2bf973e84566b6f2ac7d22ccb5289cb54362bed55694f60b32ea94b7c653aed8746135fb58b89c13e698b82d56f34da721aa571774255fe28d4ca8adffaa7b2a80bffe955c0e5a954e1abcaf10eb46e88a7bcf3eaedaf34a1df7eefc4c45498a7bc56eb596df5d5b4caea207dc3a5bd2acd86d36cd06cd06cc09836902aadd26cdc7374961f84748609de6aad56d3a1e385fa7fd55ea91b70e132513f6894151829826b866e48142e246da7f88ada1384d92efe397fc0ff86b2ff77da4e8fdfec1f196db911d86c24a3a3576551d7127cdf6cd98842bb56fe9237876f7e36bde957c85b55a6c724ae2ad39f48d3879501a406baab5df727d837f58f950cbf23c3916c2391fc4edb37f4d56cb4559fb68aa0ac2f893ddb66cfb6d9f3ecf2f36c8a61b37f7eaca8fdd8ec69cfca42796777daf3b4a73d1bbc8d3e0285edddedbe63686807a5693a646db5de61ee0682b2fad5aa7e989158f71491bb89985880cd7ec968b00107ca62e1d5383f7e60d4b2a3abf51779f0bdedcec28fdb4de6df7e7b089f368183e6941e9672951e76e32a9533f5150436a951adb5deb08a382a2b03eeef2d74814d4ab482afbefb6dd48291d18d0da3166acc03fa22ddd74ed59135657e26b35b140cba0a657a06495345b05953836bfd66312698f20a94c6ffb25670daaa12a0389d84d6f0574269fc472638e7512bd0968f4c706774b4820341599db3d1167d92fdeb8eb3c4774f810c55044e923d67243ba52ea32d96ecef41ceea1855b927b923f9d11dc25362ae0abfb9a0ac4b03c621fb3b0ab2ff0a115c7ab363e6f5232644e1f7124f85b98d7a465b2ea3347ee42c27725512ca72594d8d4a45923060cc40d09683054ff9600b942bb82c05d8ec5ca9d4b992fbafec202623e2ab238d63bd6b7c55967b4126c3e53a097c2226b8b3498972a65de3fb2454e5df4e5e1d05d63399cb2a0be532975997f5e0b1a35de632140a954af9290bb15daac0b436ac71c881f64ed740c110da879d4a6b38284dcea33adb6a1273c066c35030987b093828cd8e9dc6c9b4863fd194273b9e613094f7aad692a65c4d43c0262dca5fca6b9d71e94da67d73535303745299006d55a3e78208526c680195d8122e7f228829a29c208a9f1d1b5c2c5095bb3f31e2c8932264907b9c800cb049a978ee9a9caaa9a9a9a9a9b9815f7a020d1f34603881692c1ebdc3086cb3d96c361fd4084aabf051df47657514b65b15b5ba88e309a65ccbb6511a1781c026c5f50c625d8bf519eb1974cf20fb7777dfd028ae6d6deb3645a1999dd95965e5cc7268cb7372dccfa12d53763ba32deb0465b5cfcc26a1ac8655d51042c08ae8b14ea2646f25b0d8e79fb5af1c03485a2256a60365d91bdac7cedac7ce3ad0f9b34b300c930db84b2354e51f6b9ff68961d3ce667666673ccef33ccfd3ceec2c14a247134cb9da80c104ee376dd47a7554d6b5415b9e0336694d07add19a8e6e88f0298c4c2dd863a9f47c73ad5fb6d6cb5dd765cfb3f9fb6abe0dde5afaca7bedd77da4e77d64f779e247da5bc18ff4d2f7d53aee00926d1882a6efc9afbc98d28064ee1b746ff51cba989a7e2c7f7c433df0c03583f3c420c985c43e1053d82d7e6ba0be589a602eab9520a4334cff9144ddbbdb9392b0e93d7efae0437cf5f5d0d35a2cf1236e02d7e2d462079bad45f62d8ce041b430c10d5ad426427761430ead454f6bd1d3d3d3d3e33ddee3b7120f0c1622d1a02d775865d170a78169501a533669745d37e3521ab4f583cd86b90d032d505815304ae3655bb6cf0ab04969ac16a8aa8a2a5018805118ecb4411876d65a4a6badb55a4b69473b5b939a71694e4e8e8b48d8a439eb3acff33c79d4c43e22d46a6b7d0654242870a28b5ce47b3a4600972f24f56740f21de33205aedfefb158f9fa384208133312e480708001dd9094c35328de800837a084d4035151f3a119880a1a90d11014ee7f1f0cd3db2d1bbcf7ef1d7bfc2800cef5fd2d859a98e2423728ca2ed4c4507677eae303a86312dc1cd003db0e9cf8f020f103101a1c2105321bcc008a931d907a2b0c189ad2820eb119363b26ea60a1b2fe466f2c9458d0371af8d20842edefdc73e3a95a6da0708b3cce93070fdaf23023c131267cb93e98c56cd293472dbbd35349d8a441252c80e27ce07e03280e8eaee1ef3d5013f97150dafd4a5aa7f5f45a965ef43c330478f4f041a5a8a458bbf276e72dbdba93b6aed945d19ddd94ced649d1d5db9df906775d777667d7618c310602768905b77b3146a1280d472af54f23eaeec15153934aa1282d07cb82b21c0654455b4e50561bd52448fe4681ab3893ecef529be2abaeebba6b9ba762889190cfca6aa3f3b2c4d2a7b8cadf61101e05958a9a8065af6e596693d24e20f0579a6d3b7314231aeabce7799e77369bcd66b3d3cfee5bdeeff6b90968682693c96432d950887f05973f3a29564471cde035d400076c3ad15b63f07d9facde8b310af54f9fa24ea0b998d3b33c101726634c329c4f3df8b355196dad647f6a7a4ea4f4e2b17bacacbc89ec81f1872ca4fbb0bc4be93e2c2ceff252facca5f4d3d6f22da5d34aafc90c814dcf796e36f349c08a6bec408ff56737e722bb4073e1155748eac2552693c9acadb22aabf5ce300f9fec5e8c51a8bfb9b949a5fe6fce299546d7cdb8b49f8491c3eee6e6e6a64bd36b9e84b23c48c3523bb44a8cb67095d8d77515127257a12dd781d24c7182ecef65102af00177a5d9a7df788c7acc631ea3edd33eedd33e1ef318fd4220429cc5595cdd4169acd5416346458abd0013bd6c76cce26a4d4d0af7be93fd3be9851894a0620409d78f1968ee082e24e0cf50d30395235c48bac7811dacb2bad6aa5c65b53ceec9dec9b0134ca9c02cdff250b0698bb2bf2df295f8fed6c8592eef2d405c2c644cfd9607e2b2d656320605966ff91e2cdf627a96f207921e2cbff23ff0b77c973d56fe54fe38fd8a0bf91db9ca5f243f236beddf30345bc8ca52fe60f99632667ceafad1f231a358395093af75812075b1b4518db6da46a1accf099c11ce08873b55f091dd0bb7439a7ab0d9358b5ba2092994d53eb5d6381dd43598640f7a01d638dc8c191637a3078f1d94c68737c0c8e7d63e4d04e1703d34a3f4129de5e85e8c51a8ff546aa8a6269542894b7e5870010d4340c2f583e567a8190274e442527a961249bf290a960166f916f7dbf820b9011a9435d03fdae0cc54e80648353215b2812c7bedde6ee109e3776936013befe4af5e0292dd047cb39764b0ec26feaaac5379faae7cd56a2854add6fa6b77535adfac2d4d54fea675250d8326d29cc9b534dd8aecdff71267b5cbcdee3ff12b094357abf7628c42fddb6ab5a6260650fc414190822005c112521f036d798ec19d08926d51a8caf3dacab7bc0cf8595e86956ff9f1d69781e5f1cbd0f22b6f76ecaac0f2f85568f9956f96c75fcb1e2dbfd224d7a0d11ee13c656463b5574dd6df57b26321dd467a8d243291009b1df39a0b201519f4f1826793e6707810aaf2bfc17590790f3efeaad52aeb6bb51a48f2d8a1a356fbffff7f93935043bb0f1f95752fc628542ae521c054c806b12cbe8fca7297bbba266633f50ffa440d443bae19bc28905ca62ebb205fd168abcbfd608eb6685047f36e92fbd272e79ce608e80f71d7f98f0344a775a127829d84122249c80006392c954ad5081c7a13705c82436fccd1d156b24b0f30cd0fe8ef47143e575723c5fc9203ec3efef63f32f4affb13ea77a6ff073a7f3f3e902cfe478aa3cc57b5bff3a9acbe1d89b3cc89c3d2f4209aa79adc1f4f35acbb81b22e10eed3d1ae8cd2f49b62181c79d0aa62c1532b944637bbdae93e49b0e93e28b4cb71f01c1cd6385de428a0fd5d74fa90bb6794b6a811aaea4f728bc0fd1dada375b41d3c3cd5a36b5dd4b52eea681dcd4f1718488193c2480a9b14a71435da52fc482103242878a02801143b419862f5a7fed49ffae37eefbdd7f3eeed3187b5b6ec26fdb56f4adf5afce93ef48a04df1d703dbdf8e1dd018b45c0a68dc9eceb76c6908bb1fc3c419fcaf25b55fdf8aa82439ce53bd0557d798a06dab4759db6e32beffdabacbedd70b7caea29536eb96baeea1a0966fbaaf5f4140d7455a5bc6a93501c4d27bcc2128aa3e9845758ba0b71349df00a4b8b389a4e7885a5e55559b5085549a1abda029af21b2bef2b653d82aafcbe9218aa4364ffeee708d8ac303086b3f7628c42fda7523696c3214d21b2158d206802c19e67a8448dd71635756a460000010073150000280c08864342c1603892e348301f14800d6f9246745c3a15c8d2204751148520a30c52841040008021423333330e00ea17683a7ff5af1bf18bec8e961fd249c824e468a717143bc5e58de0f43200f16e54a5f71452cf9e7b3a7b5c8c1fc7c09d2f5dc4e4908fcd67118b7bd030fefbd552089b7bda1a0840f753fe9f58aaecf90b00bbdb9466dd03c50d2d25dd415a5a48bd49414171f851fa17440aaf9b9dfffde6034b67bdde21fdefc80ef506576ea2b887f8da75533aef697983c8abc227bd163e4c762c43b688953df35d4e50e27737d78d3dc42d2df25bfed78c4518a3fc6a4d0c7ef8c5daa0abcc8b8fb404c2c9c680dadf525302949059f67605044542cef603899d96d1e6af3dd4ceb518e8ee2a75a8d98bfd69cd96aff613b59aa266dc5aa3a6572bc74347020d656308e0d8c4b3e262ad73bc10120855ecbb3202817b3c32cc8bc3501f2dd117f06df05664b400a2b8ef529189304cec8196254264a5cd7884b82349bd85b749209fc7223ccaa8378f5a437e242b1002de476da12210a600868c21387dc5b7931755854c83ce406fda32aa0dbd0db667de615ee1edc9a6497dd07ef321b34f04b88f103eff8bc53599a5762473c860677170ab935873b37c5444272646a10929e9416f503dcf308183cdd0a4c12465919f44101b0e6af8fbcd051b01c499a5f5ab477ed96728252a2ec9cfa9e8e78bb6e7c56ce76c7392d32915186364f2ebe4b57e4bcace055084303e7ee2c40677688f3b53f482a857a4b150a965188a1fd15f5e0bd41a1ac523363be0aa9cefff4d59991efae858b2deac95675d2c15ce55603b17aefc3923899a1e5722502c8ad31b3a43aca5cd7c998251461b8075270d4aee20967bf43a2626219698e30af0c344b0163958d540d1705936dfaf6c5c7aa3f7919aa21e2a4da98099a79cbd1bf7208e3c3014fdfdfb1edeef5fee7e1c6076240c7e8b99948900762ccc0e97f25ae928f13e82f8b465a48532199f7b794e694a4ebe98a8fe3acfbdc3c352a56dcc1144bf80a53ad41d34e220d5db11114875f9a3cb0e014f159010ff3f539ab7e608e51af0a6344e90d723d776541c6d2ab4102b4cdc84054dc9ee184da8038eb47b6ea805e72dbc5a00003db64a554e3af585f5068363cb1187b7e784404605efa86d6b4ecccf158af43080c68d397dae02d9754e28f6584eeee4ea99b135ab05b03e11b3717d94cc9bb8b9b15edbce3b10b08abd90ac84ce86d459dc30a538f82ebb64b2412baebfd1e5a47563c04e02e0a5fb62dd278365923ad4f873e5402b50fa503453bbc443ff641544da1c84aaa9a87fe9b7dd502614ad9066d220d9289afc0ece29bd38bbf48cf34e623b5ddb304ae6e137e960572617f160bfbff3d0775b1aab518be94ba61d73d194bad9e417b0e054459c28600c895b9b817965e0a336caf22986b7706c7c372b6532a44bc28ecac65ce73a31790919698a9488bc4589e9c3063399e8b32dd9d0236108fabf15715515e72c58eb7d2035357cb68e04beedbd2fcbf76d0d610646552e358ea72e5174b18cade3edad42ea82de673beb300fb9e59b32a1c2ee2e084e1fe2557ca11b07c7804774b58d178368ec39868783bdbec9a6ad84551f23b2daa45c35f2ccb29da7c28f59d6e6b137c4cc5cab0aeb4e3d25adcf72c1aced3faf07b01534a8dad880abac95d61538df3af8500330c6d12cf9744ed7468a52c507776de3a73e9dc79fc7756d76f4420edb8727d5958fedda84bfccddb6b676047a5acf8210865df4072b8ca34ade25a83bf4f97866732b834996c7936e5a6b29edc577cc919637cbb43db51e424a2240a97fbcc53880a2d381b0b80c8a5c56e2230305918f50482eadf740ea2ebec36e331d521041eb9f7e13312210cc5dba7420c5e35f32fb92c9d46950f60312b52c61dbf9dea87f47dbe64c252912c0f1e59e90222904cf82ea348eacfc2be92c34232716a8765479c6023b899a6a086a1a3e8b451e16f1cdadc8a9b48e51ff273290a76e49483053b646e2c289c191509be3800518700aae89f4baa764d7e9339740f70ab55b57e1810df3580e0af1b625b1d26d4d3708e3f5a29dd5b81f3f114bf208a32705f68f5967cf41814eb26359699f34a0996ea005f6ac36e23f1ad5f9a02bd40d17031a74d97037509c9f78c7e5433705365e0d81d96ceec04247f4a6e3af30695ae936d18c4b23e2e0eb8b15848da3927a2abfa9de5c2ddf0da47935fb61df667300c9d516322e8ceb1cc9afadb7672413499da8f3c57041ba2c63abb07ef5b6bb453b048dfd85ffdee01e7d315d88ce2134c4f3a043cdc4f0ea30b4ee2809a484fb8e1207347208f41d505d5f9b496137fb20a8acf4af40f482e0b5d84bd54488d0430fcd41814d543190c31981d2032308b061073d777d68e08207a428360038f00c099ccfada4b0bcee41c4d950b7024f57afe06f6fe1de5d03de929ea96cfe0c35ea7a45a562cdf6b4bc36e31c429342b3ef27ec2d35e332f997fc29c673a864fd63670715916a62755842faaffa48352a04ccc58856cbdf54973c1f19f9f8de868fb1bfcd4a5d9ff5da040cba2066c28691339ca2c5270bd4d6609d81993f8dc9a5f80ef03e4e4f7c9733c7f889170404dad14db3517fde140a53f3fe39294432f3e49ad4d192b1a4e352353299887b4cba3239bf32d85799c61b6de98097e1c3d9e0166c7de16fc025f8caac5afc1416f43a464f78eb0652790bef3373846eae344ba131556818f890b39cc122942e08182a9a11689ac8d5567006883e4d2b554863bd8339e397428bdd9e4b2369d0004ffbad2cbc0375e1a52bb26f5351934e593de3209fb9b5f0c36978f5191c426e7a089c45f4876cb68a67924fa7e2de57106a66caaace43cba338deac3989df391b93063132c35dc933ed303a7a42ecc98d9e0e2018997dd91804585a83a7af4166f67345bce0c9c6f19052380e6f8dd4604269c16d65b09d60997e4c163b13f5a9ad25ec64897e0aa2b0a290eab232c5ac996be7cf6291c9d00694a75a32ce9b269100fbef7037bce68a1c5b101c1a76ed3d5b4dda067762b15ccb9f18af537e444b4b0fd0639836f68230d59ad9c2cc6cd0b59bcfd15204861b025a087050ff6d8c9aab5891a224ee67df5d2b54dc425fda845ef1d464160fef017a65cff656ddd98d13b34b067cc9c6f06bac6fb0e11bee31b9e07a63b03824f93ea41aeff1795f9f91ce2894f2c5c660b937ebcfed984df4ca4cf0b9ccb02566d6156866b342c900954d0604cc50930a93b01ee3c1ebdcf2c08d07d8ec11b7901260fbbbcd1871b3617b3a2ef91184f29a88747877c5b196c164454528b14b6916aa418b8294f8a6e777a0c88e28f0a3eb1b6a2029e059ecfd89da278e7011fefd3c5f652efdd2d4a1cb4e87be7d0d08ec8fc49f61449ff894182eb4fd77967c40a3966756523884e0d3ac8f418a7c245aed04968572be7d9abecf83e611d87093538e03c3dcf7cd9dca8257e9fbdf82055490b9d9750c44e91981170a68f834735d7fcba568f326e412282ca161baaf5478ca5e466242a785cd8bc0809dc4c29dd77c94ef0d0ccfbe8c5ba84980fc5ba7885cd6bbcbcc6fd64e8d5594fd5f0897d9fd4a62ac641afd733e4fc23a1b840b8a371224e194f1c40c07562ad891b207e15264b462102e9ae202320ffd9bc64955e38370016ba9d5fd0c6ea9289e4f2199ed2482c12d260874a9bad0bdf7ab5fd6bc685100a4b6a4d83d1647263fefc290b295acf035cb5e9c487598ca6fa739620edc4a3e35c1232adac1ad3d0c6d64674220887418e7b705b409c890a3a51c75442d06c9591473644fd6c15787e9bb58a4ca52d809fd9415007dd4e0044f160b8d4991f660a7907e6409dacc7b6a5fd814b29c87d597696c72b54a6141a4cf33f2d23d08fc649853cbd14eba047e42ed3c49bc3847058ec9138ab965b1f53cac44a95415d87fadcc6a8b4ac54681e92a785f2e52f7b40095bb8ab7248455696ad93dc2c743b47af05831e55b33361da56d8ffe33430391bae43bbf28cf43b531a484426ba90dcfaf96469c7e9e1face8ad8a8d733fcc8231f6aa792ebd1440b27e24488d16738d8d19bbf0adacc1765522b7b367108e6932e4bc7ac67aa01e4fe0207474b1c227d14c24ec316a1441ba1b3c43eadf5945618e168ab6d20b6639f63a4f4c9ac07acac091e2f7fb523e7a5a14cc8162c7c216c8c747587a1d3e1b1ecab6a8d8e2b5c5ced94155693a2801b53e6d0c54e1417e16b2085b450b709a006a32d2a9563dd493f8582da7a4b239c80d8187958618cccebb8a8b73b5cf0f75596eb2c2479a37b87a151f78f18f08440391424ac4ca05a35db1bca6fd42b57cf297710cda6247537d1c43b4329d1814a37ca9601055a4c14322f427fe486b3528241cb4089610149f46571ddd5aa28e093d149f39a681dee3329e5f40dce126bf12f41ea7afb5638aaab9aff16dcaded3f1d7b37daa32710674966b8bf40081a185183ca65193c35a196c36e7ee2cedb7acf5c4d606a63c6fb169c1ac28a10e1e1c16ee28c21045c2fc546bf7b56290ac4414200e630b29cb3e983c36bc0c7a20c7ddbfba50c87717b2fb3763401a8702e80445315a1e42bfe8a1119e263bf1e6bd8973345f86e5a7fd1caa1a595070c594cb0ed31b855ee1bb59ad2a04c0feb18deaa2ec29068fb497913f21a5ca4441778bd40da1385749a02807f4ad901b93fdebd51440c6427ef091897b4bf5272ba014f16f1098be8520b254569c11b05c5f3bfbf300d1d7ce8db88a61535d3d84ec7c62f4cddd4ae609a54e5ace3d0fbb51f489da9860c96129add48d10928f342958d44f4720210acc8918dee247720d90164b3a798b67c3eaf1001c666e98a484194e958c795689cc82a90396c42dc18861fb335168be8675dbdcbb8d303cb7f53bac9b534f2f3c73facd398160046f17836ddc03470df08707272cc122a493592d75e88acb000a93cd9820e7cc234891fc2e5fb26b69dc07e4310540754436afd27f146d624d5d76bb9e114392bd9824fcb2dc7a181fa91a91d38192e8ca17a5465f06d726f86f642da71d754eb9249db2b98656277334883527615b6c41a69917459434b5f0486c0feb5d95b1599c6de95bb2bf5556c3e78cc264eea4ecb289bf0114a785d9b20570a58e8a4e1651130713fa9fbfcd9db18cf002ead9ad173d70c900ea244c1391f56a362bba01747fe251a18027b0fcacd07b47962497c23e9bf0fc0d8ba4f5afaed015c66b3d2a120050da44e491f5fe13aeefd6a5e0829c6dcea6fea90b4e581b7e8340841f4d0fb494d2b5dd0d54d74be12788836d3a08ced5378039a94d53a04323032f2ffb9c433e18f6d587c91a1f9239b362c1b8a8ba20d6d474837f4ca579a81eea97afe50bf62f4ea254486522124ece5e5472a14480aa6ed631ed385dd0d3446dac7c02739e2b942a17915c74e63ffe14126b51d2e95d43b0375cf50d2b3cdd0e5dd764643958a6e22b07184178bab56a6b1ee9a0d74cbbde760f44153268cd19a651d1a8f41c8bdc4c179046803522c70c918fe1e8d1766480e823c9e4183b6168c1e7c1c820d00909dadb2f88f1f42f3a69ff215d8acae1fbfa4e1c3c34914bd6310e62de3c8c634933994f25d9346a53407f52817883d69ae89d9edcb28c28f9f20cc4c032649a89c1372c8a380bcf84e522805a8467be6524837bcbf60816e6f2e94ae2f2b94b5102b5444b71f39b02bbd0eaa5158d7a101124add9e5ba34ef8560b91de899821ceaaa8e2d45b53cf48ebe06a08074148ce0cf043da1fd08399313c575016ccd11ab8da8266e42d79389cd776301d990d78bcbb15b4ec81415bc8ad498202c8734062e04ead58a60090e82053546cd51633c1f51b7dc2b113f6c1ee189faf80016328b835a9c8b4f7b74a889006a28adb98e433ba936a00f7ccb228116144317a8687adfa637bfaca65fe82c765caa5be9c9636c1ee8c7baf264529cbdb8f0fdc7ae067c5257c546417c5eb12a74ebc5bd9acfca122efe86eec7874cf8c5363ec108d117ee374e72265f0f8f0923eb07042bab621b0341d3f3f5d689bfb2daad32137e8db0746f9b48198f92ed65acc4a1fa5022b5c291df87ca15e01ce266dc2943d29f6cd59283b09f3843f1d5a42d5725312c1cc25ebe6284c11856a7057028042eb4f12b74ec0fec9612402a7744e37e17b9e6f5a3416247e4e5be3ee587e4e09f93ad25350f8e99d79434e888849567717958c72d5af5b7836ad653690df2aac379db7c14414f728c94b0a641cf632c1632cf1ff3efddd42cec517039cc5d2b7b3dab38726a5119c3e3b2bfe53acbad04104acb48412021ee4e8a99c180ed1a98968d492d1c6ac44a60c6153dd948ef8b3bd6b1438e74e890c09de31d38ce81c38e3bd43e90ba47d3a788831d38c891c30e896e39d2b1631c38dec13b40b03ac0110f68fa1287661c3f304cfe87b3eb89cbc43910d949b5b0c8902e59b69ef4b0570aa9434f0d05c2e7fd80128ece585891bccc5fed5d047e187273eaf8dfd2c5e6e6b01d039d455526816c3e3d8bde896060b602115d98870460e87cf94dc247c4fbdfbf01b930297f4ecc085f2329ab0193ea25286cd1413be06b98e5181459e75a4012447cd1e98dd9262e12d28e909c9ea60c1849d081ef05e67ac6ed5857fb814818b2b36a0b3c64b25100c9fe84da9404f5e1d6516fef39fdbc61d1889b9692ea1d95fd12ddf112d221a6ac93bde57db99b876967d857d0b49e0c7219191965539f554102d499afd2e878a9a0ee23196191be6a0c032bf5717c49b35172b47503abdbf38daeba8d1de75f189dcccbf698e975cbf125167031c78d6fe8cd453c80a23eee2a20d6fb25595854401596765c6da1ac47c9dbaf054b71c47e61b6b023b9d428f19ccb8720c0a07c8b682ea903156547f9da5034c2b3e19a5d10958a53624d7591567b2106975bfaa6ba18aafa674e88b33b1039af4c82e3ab6b4c7e1d8becfc63b02b13c7b8148c47431e10365c331a7cc40eb290f1fa0161cb682cae38e963621be31985b22875336bf04bb98054a7dfd5771b31a8cbc0b9ff9fa8c049a83f1b0fac276bc0252d10d6204af34a5fd7eaad765e3fc0931fb60b54846f2dfba9295bd7bbe1ef613a74cb8a07b116377879f913ddec6840236a0227600f1f82a92958d5042cccb410df1f416d1f82feaf0b40f75203a3dd6768e4f30fc1d8a3a04762ae7760809cc0791198db68f565045fc750871d83a4310371b1cc02653328927461a835022af8eb8fa5723b5c9047717bc8c00e9467f48d1f0a3074b183f84ad3c20d705a2068ec296ec56a1af3425400eed1bada73344569de616b83c00bfc361418ae955581897a012fa80995c6a133c187c6eed80f34d6614f555b1b559f53074c6af5e3b03b424e5238c9c5249c8e3d0e175128722fabdedcbe66eff13ed0fc551e61ecf39d55566732e20c26ee7713613147484e79c68ae23b40952252a039d5e16e96f1c1aada00d04557737a6ba8da2be4b3af591283372550f448e28cbe34b07aa2474369d58d36b1027ebdeba419239975d86d9b79fa35227220aa64961c2707caa108e56c60ffbef04e0718ea9e9cb13d660cc5261b9a33ff2ad254a9a63bc30555e5777a194ac6eae4b713950909c5b78f8602569cdc34ff2ae0707b0da02065018f4e7240b50635a8bfb81f15466b63a482e41a508658abf6057eeca241fcc919868a6590ddcce38168e327314045f4ad0fa70d47c43424463b995afdbdcb371105233126b2964b4314f877db4a96ce462935cbfe136229aac4650bc5a8651362da704ed15266540928f3b0a7acdcf05129eaba67ae9bd4963e16d164ad250fce3f8e3fb75a97bc48a86fe4a02cee6ae0d946d1ca9a25448f9f69e189712c5516eeffaf923c972d344c037b24071d4b416ca4ea06d371eb7101260c51a5c3023a9b5a9897bea217361d49a8c98a1744b69efd49ca8eaef70845ea771f8d56fe7d4e02ed6af970ad172f94be73e9008b53db2d460876a59e8e07ed6555e976676699e218e4ea0893f45553f5ecafa5a5faac26414c42ab2107159cf9efa28d3968088ec5dd69839c41b2fd168252790b44b5cd836d5da368f17ac6d168a9efb47755cb96f86da93c2b5fe2f740914c58f64c89f8555c62babc28669ad0b803529e51a2ff0ce940fe92158b9d720b00d53f18bba1eafce2ad981bbb48ec5e998658ec2fb0b5b9a59e780c2dc6f966f274214fbb797091652042174b505b5edfb6c0c0add47219f897cd47a5779f60ae8dd8087c8abde986a05b2603aa19df692fe74493e0f8ddc1197460aa97472d7801e86da85a54f41a311930aeae75981224598bb56f71572b6aa5156666b3c3cd101370cf5540dc33c39f61db136aef7ff4f76a3092a71c987d5f709b20ab9e294fda1f247243dfc1dd51d64a6090a636f89c15a23f3d2443316353a866d30e7aebe81646e1c8367db275ec0f46cb0080ed9b1b897048b4b6460397ea9cc766eb97405cd7b4744afedd103d205f7597bea3f91e69d4a005a06d0163272c25bfae62e546c3ee32c0336585cb7d06c9b559225d109670b928b55070cab512deb960988aa577456accf8da8984a7663d6995703b1b30075c5aed6aa92b97c4bdbabea8990b0acd062224f1598bb94e1aeeb8ecb30257c4de55b39c96a4bba76de5d7dcb9f6c637a6b94567b51209d12e70f53a4a2aff359c6e2ee7cad5ed45ba80c05e47ad1943381450ee483882cc3ef0cb432bd17c0c4d1b71fa9b01c119bbc9e773390f58697e4ed0b1c743e5819be54edee853520adaea1164a864ca399cb524da1709112efeb221a494489a06f493646f782351e98202341182d8ab5163f7334950bd6af7bfdbff93f248ec6e5ea556a9a2efd0d163417ea964dff239176d0da28ae4dff2ad0cb66431c7676631e5fd4779cba4aee3c5961d854930286fac2a6e01570e4d05896a22562de256fbec29af877d8d81dfd8a06bd4a2f7421e2b16ac83c2bd07c815cc69eab453c5c1d73ae0a68621e47b9700fbc0a78b02771de475175bb72fee2dd4c66497279dfc4fb92e347c3f98a8e6ed1ad357cae0e0c3bad6f3fd541926fe243109c39a5b050241eded11f9f9a4f41228dc912fda803e3bd20142ff317f3011f51b06349a834c5d2ae8b896bc01578f53fbcdfd067c4408bac9e07de63e020e18b462f1a9ca2fdf51b4e2ee22fd737756249673bfa11cc9109bb8838b5de2c941ee249458c3241a4936926efe4363db6d8a841f0d89e2b6d20be2f3aa606a99d1961c099b1f5c15980e779855db6c99aa222c7c3ffc8d2492cbb8c850a8df7a4774db2cf237b0a7d9dff6e557ba2a620a9dfae33cbc31a6234a5c2a6ce630529260f29d0de8a824589da7486fb5b807575385f6e8a78e4b4a4d72b258785960b3e024d531a80ca749ebbec00d1919961df730115392f3a78a3d8d6aa5c2e4157383ffb1c75c58ae41361c54718bcae9c269ea11b22d7be5740bfe850ec2c89d013fa6afb2ee137a146b958abb4e9f2f5233dbcc5d5507c4acaa615bb9d6f49672639111d234d2e17a9d37bbbb83cf4ebe1fb9d468dcc223548fd24bd03572db8e999060dab0fec8fc7cdf8d8898e7bc1340193004d7b589a578e1260488ce2838f1d4580ba5ad72955682de66c08874c88087d79751ccc0250323d4169a07d951e71c44293cf81d8bb2bab554caf4f382998eafea4c0b2e89ceab52a59a460b3d5ba3013ebb6939fbc4c4079a768189833c4f7366858b89c7a8240f5c3c95e7de2870f9f4e02986f2070feecca87faae0f2063b3502e05f7b1fc4bc9d1da4b9adafa20077135f1fc7e74a65f642add6c11ed911877fec3ec5e7b700b5a1fa51dda31f8f066a5de3aaa13b2a446cba038578074be88e87255a4a77c461acdf559d4f321e4c8723db49f3ee719832f51919a72d7036cdf410bcde2241b7a551d1c05ac7b89f35488fb80918c45700633d88d71f63cf33b55be01421d411887c8f398028c5c3e3a8ef3cdedd310e480756feb6c18ad361a5a0279d4d29111fa68ea88a161d1b3df9a62f16a92c708357ea496d9ca1967124d202e87d45fc0e78574a9803c74466b3ff9ace8da7a4546911e83086c5ac1ac5a3c04cc4352c9e80dcf5eab5c2016779f57dd629eb06ce23d5680c6e9e71bdde44469417a7143b0e12e3c1c1b798c5c46884b9ac020c3752935261ecf3807ae6c5a12a25b53b784dbce74498194a0fb6e1c8338ea413314917d043b8ca5988022114290cd8731f2b6f3a589d024523ffb110236c90631ee9e8b8d13e8091dd1d7d8aca2342216aa7ac361f030273aaa48409965f33629720f83533b3c406820c4ab12104b97c1b6b32a6112027b17f064038a50140f80c80e977304c66d263352260e9fd696c6b1d378a1dec4c1f7fa70adb4b228f49e79125563f98136a0f165c21c0a061ba4d66cbe54d7abe35aeb4bcbc066405db1d7bc5206c614b3e259c4a2870b195842f53a01be746037bc23c9112b7a2f566625727d37096ac8f9f507b889eaaa1106367880596d484a1c6d68300be7dcd1f522661e7213843acb6e0c99fd342867306d5e08b14d47969bb37c745379df4e27589f4ab2823234c0a8f114cea70ae273405dd2192963b2848259a602c050c56ce51b1244aaa5cdf3330f417a5a76ba80c7a4e47cf42083065a52caf0cee8e76d5a7c4857251490f9fd07e1509c49d900fb4b8b096d2e9e7f139995a4139ac484842fd2288b09a8aec954b49897866442952c722956b8aa4b165f838bf69f7f4bd5fc30f42ccb3e1744e2f8f7834124a75e92d2ab5309e8eaf6fb750ac791be093d09d91f89e9aaf9f32267963fb682a82688dd428a1adb545aa94b5ae9f3a096a4b008f197b6358be567e3d081ca6108322106c53c9e296779948aeef0043215b9aeac07eda57df5b78af7642341e06e40b3dedd014875dcc815470635a0624eefd218b4d9ecc96a1c366517faa18c5f3bab71651e0fb57d6e45b7334121f9fe9b67b013c827f7efea505106a7db53c11271114c471ad1d1e2551c86fb47812a62b313e251243bf10d2fe6bc56468ec52fddc5dd2ab101a49df1231606773ea1fb2cd35b7e2fff3c426c0d224140d15200ddce0745913d0e350a231d761536d83c254c45807cb89cd2bfbd71c65bc1f622a836a366c2aea05400623b7c4fa5c1d9218fec7c4eb0cacd18b4d7693dad59918273acbbb3419d2e2591888128858400db9506b8315f98fe443eccd4739ac192290e95eb31fafd3c55b2db79df817131cab1b812fb12de4667ed10b397b8ab3a64ec645da7c26fc60ebef12f4d804dd4771cc43f4ca64f4ac9bed07e09f0da3081322fec6729b60be13acdfdb31a08906bd435063b5378a960f408c4d5ff2ae841f6eda0ea24ed18f251c5f2c8238241afe143821a56dc5981e33e2f4396c91718161e2302c9f824211d15b7cd43b11d0fd0f12932ac0fb03ccf537bb7a43e1ed97d1780526484b11181792507c3090345c80d70024abece2730a2d93e1a2a4b6635f82da438229e032910502b671be020292c1845e7d1435792fef597188bd4fec537eecff73f4070b644f82b20591f818a75ac7baafab15a9d93956502ae583d464c2dcfe11dc5206007be2b15e6563e900c40bcebe3f3e1973dbf2cd273bb9501f0b513a55e9035f4fef3806a93096645e5e690a7cec4221ce123e2f69db6401249bea359ae34af6ca6ba7460583460e2acf1d812eae2746d56258a7b57de4d9f5135909a3093ee977453425ee7d92dcb92cf70336db518890a69acfd054fba11a4e7868dee560b0cd4494d17eed30de267cc877f019f2d691e5d3c89bfddc64cfb43dcb6277a05633b5709826c9eb9beae408ca9b93cd9dd06793eee0d12fb0aed8d4020a5c356e8d1ec493fde6b140b60ac2c707da36c080eb79e5cc49e2bc73f45c276460561675de54d677bd797b42187d6e72a1afc07e0e800c576bdf265afb6b067ae56aad4722e44c5e44cc8f8f63de443d907bd68c0c2d2ca801417ce158a3a8ca95e6570b1b25f63a4ceff10607af5fa0321074d1f9762641c7ab260c106a758b26b9aef5793d9460e59037899a077be7b108d56209e70e70e1b67a384ec2cb32f0c59e91a343ea8d92b0db875922111d1459fe8f8f8977d9ab010eb3f17209b1c8629b21df65ab1bb9377ba1fe7208b824160fff607c1870934ea0caff4e07637e7eec64213ba864e72b65f7f1b94c8d4bcd544262386b87b6ac074c33ea28b4a41cc84ddca0e59051759c41be1203964c7b2803745457063b08c87a4f2a0b8ff92c1f8b44ff0c1f0065c0659898eb3a64c2064f3bb3093a2c05edd366af55a31af97517311bef960f9a3811f8ee086f3adda3bd713414f6fb3572c973ea1284839700d65e22522565cd02cef4e6ed7974bc91ec056932b61f191a49629d9712cf9a9546b673bdba42c8774e1eb1b7d9150d8798c329e8472cc8afcb2da66b8bf2cab279b2f39f6b906cb58cf7aca739fb9c6250a4fbef4e1b710afdd850023b0273d1a30559fb804be254278d921185b16cff78177f6a7b2f04e8b8d260e183f153e5f90173b3ffdfa2c7bf7005d507dc14653b6abf224cd492a15bb4cbbcbb732580e4720c9cd50e17e25344f794e4a47196d395a26b1274e13f97f716825ce28891c463adae34f65c55fed665dc99d336a31b4a61e496ee138ad543c94f721ea1ed1ee4b3768ab2a518a4ac64b708abb33c1f53331e51fee5159ed8ecc12237258aeb127899be43256e728e00b3dc0e57f78f761921e708f9099923d7ee11645b74b3984e00d9b0f7700e8b03c13cffb164544c426b0b9f177d74953d8ee46882f59619af5e57d1e0f96e54829aca840281eca5eff455b81f0ac060b4323e7024f4b8c0be117a8059841ee882be73fa0c90dd4428ba5d3904efdf569b76c83bb253010a1521dd487c9b1b8401a67e0720fcb5fe32013185e42b897d3ac75039746e84f17e34dabd8a9a12a6113cadf415e3aeebc0226e26531fcace195dfcb8c2b35bb37e1b57cbe765621c01cde0995d513b8059431aa7fbec9940422e44349c1e7ff4af5c5c1f2fb51b4345f2839abb8c59693c006a6721b7e6e390bdb89985e32e4fca712f31332f1cbf0c3e803aefa5184c8565d67695898f7a0f8b895374d016a5290139bfbe081959453d24cc2b4405ed09f30588129bb261de6817ef7a49115569ed68dcf5b55f47dc7882a2ae14ec037bab2de5911372506173e8c562b61b16b89fd291828313826284c6966e8aad178254221efe8d986a93ec1db30572c4a529aae33af6e1a056c9a6eeab076ac4f665518cb942deeda3151947875c2ac3b12eafc53ab51c6532d5ca5bf283cddab0fde0b99386cacac24d6a8bb93685d8d2eda917e07aa5a9f7117420804b8710af2e17bb90117f0e02a630873ccd9781f90a6b38839762f5624e00ea12a0003fad443fc1aa6661787117908467b6001a0514654871c33efb62e8a502f584300b6acc18d8e28555a6528b18c4102ba75b358833a6ad865039e6d080a47abb730adf90a9eb32abf09a4896bde13eecd4f2e932e0bab66f65b5cbd6526b39fd22d9640d76b16c49288cbefce3b5970dfa0439a7b74b5e406ac383d2352ef8154d517ade0399d4f10fc4057cbb1a78bde2dfe56fd8a74d23867a26cb6898da52db9ae2a5ef1715c7e73640eeb22dd289e903bcf02f082fd2c5c0af5535d7e08a5066f7698bd72ee1deef29513fa83a532c2f8c96404fa599de478a47459e46e3230754738e7164b41c097194474352aaa01f3a4a49a94ccec4b10fded1fe99ec48e582c7a794056fe89cc54360752831bca565753c14d9be0b9975bd83401c0366c6e4bc43d4d569a57ff95155448e0ac15f83f2a68311c544a62ae2f0f3a6a3d2f21d039a775bf2091c78a92e576a7a5308cb0b955a0c7e2f68ad6d0e712247486f5c2ff63b6d44ea294069abc4c59ad35fbd736241ff34167ef1b7ce63ccb93a9486eca4e3a650634f1f5027b5248830d6a9a989afab09673c5205918b378abd4002d2810c57bc617c00c8fc0dfc3197fc2702a469003ada9132803da43f5003c48494d5c258d75bea7e3ecc4ba45578c50e80a370391d6c0b099390078a75db71b2475f7764ebe6a441cc4dfbb182347b4a8416f4fe7a4f1808e33664ef2fc82b1e087428af3a769fb8065a01d2febf2f9658054caae9822bf124e3548cff113427c37d55c598ffa38bf36786b671c47c9870e85dd5ad95c84d264a8d443b2b91af6cf55b3a551466b3009cffd3dbd373f129cfc14d613041fc614f7460db826eab416335021a8137ef31f0320ac38a4781d75aa2bfae7118911ec712b81c317185fc81ffa547340a929325e7529b608193568cdd7090343a0e72e3846d864506bc9d5499ce8eba675c25f20b422e5446c690b1a655ff9b3de31ce3e9d71b1c60bbe44a44d96bc9ba77f786410f5ef7adf8dec04d398f3b17b7478788afa33c461e6bc341d70ed10c9b8467a5cafedffbedecd31936e9a257f10ba02faf524d058491e6e322287b8adddb6139498eae0e89f3175c8e69b6a39f36e53691caeddd3671cdbcb963667b1e82ae39e5516a18b252378c434c0d8d2f2f5036993d564fc6230672379b66a590345b4aa04499e32db807fe85a592a748ecde0d4e954ff22f535cd1e052343e9d080b1c3fe774d7aa0c87883678417ee0637f95402369e36e9f31b8598586730c819c783d200fd88c32f68a0f00c9a2707cd970c6a64a2d6706fa17c1d520116401389a5d2a24cad9363f50464ba65904012772099e050e7711df16891e74f9f89ed715895186be91185bd9c582a5f465ca90da21f11e1d2151d743f5251e56d6819f10f330396ff53892e780baf44dcf93f2f9d06c192bbdbc6322cfbf6ec556b8f03b69fd19c0912de0e7c1dfe5cf8646d693be3ae5bb2201b8151136a4d42ae9f620c95acb27caa4923c460cb10a33b05f9d23398fae1bd9835cbb1607c78f58b45233e8a986df764d3216fbf8395e95451072b9feb10241fee9d2526b69f15874946325756136efbf87fc94d2dc225cc99f9642b3c7eed81a8b4e0ccaecd0fd8879ff018b0e1cc32eb030c647394a511a354471d5513c3c9a7ed54aafe817f6087c12d068437185505af692ba2543c7f028872c3b55c16a5ddca8a73d9687773b83742934be38cea16b747d80a18b8804da522483a4ba33213a5c1789fb09ca088991f7ef56a5ec95d507561b164dee3b7497a3e56bbee3bcf05569f6de550760ec3b596ce15f8f818d03927f851d664a051bb33e704ca913717b5ae62abfa63c54b88afc710f84154b824e6a8b0337b8943a8f28c19d4390520fc6518bc3458f808a3cc900009d11ef2e4f31e46d2e9b4c6e2fa8827b17ac6722ca3ca8db8f8dbb690dbe12986407c298fc08b61c518f15d26c1e74ea78a9dd90374df78b34a9761c29a480489c32ad2fdd48ccf0b2f9591461a6f96e78fba16ed508b8fb6cb91ce18e4980fc8c97e986807c0a94fc870876b8828f37c0ad62d3868ebb61e5bcea146a492301904938fdc14fd39b39471df1c534c8079931fba312d75c9728f4fc15ffd2808110011125b405e2161ea882419f25b8dfea334f3d9428a86fb33dc02beae3ad181b68232e39608664da11465f30a06cc33909d4e07aea591d95d4fdd7866b4b7706c5f2b10f5dae374b689a5095a7a1f6cfa460c33161af71b8c5d40cfb430bd0caa5c315f4d40da5dd17d4d13551a660d4b27a44cd984566ca13c1cdfbc7a4fa88f206d28914d16147a7ac2c4ce611d4aa8e93bf372e589d30f299fa42e76071370fcdeab828d2c6c3083b6afaf9781945c1e42e9ba90fe9637ee4947c7842aa8b82688b740a8290e9f33eb92d735f9c8814bf246518447f982dcb6f8dcd4959e6487a6aba184450f25d35308889e0c118600b1cf84d38f4e3ed825c4d40a333e3824c7494e1f71309115fbc14b72f95e61fe70d7da3bf4584698757a08aa832f38f8bd5a6e55dfc5e625db88c2ff5a491515d3c0bc0f59e305e52a3eae5b72a0df2d911e20c069d47c0104775a8f66629fe655e03bdaf86527bd39060b7f2e5c8c9e50559202927bcfb4b3dcfa71e49246a0cb460225e296958f818a22a3a0ae63f034b291dc9149e74872c6b39c345be4b20a90581096be5f18481562d99d51a0cd01c0262bd29ee513e5a40a945dd995c0c5cd9b5641fb07c833f6c39ddf2228a1b32a323bdc8051606d2b6b42b00aa30d08b51bf4c352ab7bfb36d10d4d47d63874db54e35bec80f6d1b40a65d689760ccc488976f2c66b2581575e2632f5f8935ba19befa51ea72e5a1edcb305fd5386481c000ccb4cfa5e80d8299c75ba776768c719ea53ab2c0308a2ce5c12879aafbdc9412f46d6da6ab897eacecef60e55e3a79a9c2b040803252824f7670d0d76825053d58e33a9630ec525ecd05708c983ec2b23fe4fc0c6ab3482060c00a5a140200a15b3924eb41c7f442585b90ae299dac37cba8dd72c87e4b0e224d4dd7a079c7caccf86fb05a352a227441f33f2f2ecad88d626b5b0ea5e74536edc4e4ed224cac87a1aa942f5b1c802bb4621c1c53196e221e83038c2615f9914965c17566e36672a22d0ad47a95ceb28c2c787a3535f9233b4b74e362ed213cdbe48a9e2c01d8147ac6a919c46950346db6893bea0aa27f6a2e337750718ec5f74a7f409a4d26f579f5270c55a89811bc814486ee3f4c76df0a1c39279ef36f9c268d25e193972e5814130c54f780b557d224c607720d28d19f6ebfa620eb6188120cb992d25ef36104c9ea18ad32731d560f0d1fa6d44df0210b2381c4fc6b0e5b75adc39a5b199e82d468c41b8560ca7057cca46da9bb2c29c7a6c33634ce108a857d6c11203f365f47272cdc4ef8e63e4e95aba86dba3f75a13ba8299e8622a201c5672331413d22f4e10494dae429f70b7056ee406d32438317619b1f1dfe89cdd6944e670a9512436d43f1aaa5e8fe25c64b2da8c1fa938d6929b029955b681dfdcb022f9ac6f586f522edd0ea2e23921ef0f2096ba1648361cf232bc13c66d0b3978b2df09ea71432e4874221c6ff7c3d160440fbd4b885c64a4fd27e678ac25e661889fbec123440bbbb3c8d14b30a9c8eae68bd30ef25d8f384eac8aec16acd2e3c7d15522d563870a25e36526915edc59a416ccb0a445b6fa1d78fa2cb6a7b5fced769c261bc97873aa1b052a9e61b7517aac22c356bb9bad63b8cad082c2a9bcabbe694d086983f8254b29730e50d3046c10b1804c04b5009c61b57ba56fe5bfd4e342b53179cab31da202ada1a3a4092f39cd8b2acf98e469dbd77934428ba097ab356225489682c8f48ed66fde7bab90e87b4b30087bed3f28c4754105a4d3775b6df9e32189a20551da969b5bd2d7f43b160fc7734dd9cbcdd996551455b5e6ebeed1d4da57918920d4ae8b2401d7552dc97f74b6e7c8412be81f5b7f3a51bd885a2bf64387179a2b208e5980b4ee50c3a3a4981ae338b52557c765f4e177ade152be7bdf77d9d96eb96985d3fbe8b33a1850f80dee272ee302a7502d47489b83d491ec45a5d2bef7941c6a11f2ea91ef2eaf8a5e4f31f9ea1dec2bb379a20587321c298eca4dc4da8ca4679a03e55fe7e45809fed314609387f114930fa488672a473691b29119fbbee122aa244ef61eaac5abf6ced9c9b880b818338e93420ec750152b6ffa0526c70006036c7c52394c8e41b0ff3852b313dabea007151cea966597b00059c240b03453308aeadb59fe1bfb99f9365a23674eb23e783b8f45b7558fed9e1fdf4c4af459ddd1149a5275c5b4ce5f5f8b178a3a18b7f6cb513e01d35d860e0bb8b0d65fa04950641f309aa77bc3d286ef429e1ce075b63e7ab0d024b433847ed3a8db59a8844f3dbd20e31283e924158e7aeb8d42e69ee9f562073a8fac70675c6a6f4c64048063290df86a3a900e6b945d66e90898b3dc5482079d4eadd5f0ac63a9cf1ef4fc9442df6efc3501cc44e9bf5ec4608769426fde1c91315ba1af38dd3fb26c1e8cde36edcb9058b1aaffe9347e34bc48bad072f43cd5bb36f342b8ad30346aa16bc17aab1d67658df104da3dadfcbf0c52c1a0c8f1038aa812af384af95a5021a428a2f72d68a753e76ec7833b1d73791c17f00f17febe23fafa6f5fc096be350c1aa3f9a18e25a646f0551f14aac1693fb1bb71ee23be4817a441f71bb68be17be7ceea0fc11e57dec532aac1dc4a14d9bbfd0813866fba838d779d8ee70663836236e1e33c99d218324d2296cad93dfc2bc11a56d729206c0cc1b3f9f00d69df9b4003d8fc31c00c8f3afffc6919e91d8fcdf1fae544287b9ef55764cc5b099d3e2e91226685e0f329a20296917e218e71234377b8f631c94a3734d8f474e28249f8849525cdcc344f6ece8427ddd04f53a65cabacfda6c13c7e347fd40d4c7900491c7a2f6a00e7adbea85cdec042c8f1e60adfe15362988c4394cc5e0dedf949bd92d8c3db6d0f9abb338ab9efee67769683370f28312c440664db2b7805ac0ae3f639f1d53bdcd36d479fef8867eb47f640687c8796feb711726fcdff2da3d701ca916fe40cb81e61ac908a8744a950178d4c272a98e7b0e5e0f8e9c4670884a6ab55155098e517f04bb4170b93f886dbfbd1e1c964422e9f72b33ca982e840996c295d232297dcbb6f741032d854feae541fb586bd060a6cd6be1b3fabc59fb6822672009fac6a2afb9ffa7894cbd6c12f6b19084a56ce3197425099b812b26fbd16ee0745a8e4d41c8ff339d6aa110a327b2ae995f45da6295bbaf1139af916799bd67c761a058a13979c65925856d5b9e7cb6aedb7767cc159e4436118009111bacc1846ec18e616b07539b5eecac761ec68aabd8d7983a0ecf280df149ba3c7bcbb6d2902f70986d8265bee3906b64309a32181cdf595324fc6bc347c2038151f5e51006dd8859065320fe3fcdfc0da84c6baaf38dc100e757e03d193f0035c13493feb95809d86acc01bf85fb6bd60484fc4f7b69077264a1999d3ca0c26ba4868c3beb4487efc7802a0bf3edbe0f51aaf11c467aa91fdef32f9801a07f4c030e54e1026e23097c360d03cc2168bd5f71f4387f6f2cd55c18e8dbf6b1b1e037b6b51616b3719f177f94e9e13a9a619b1c90029b22e1dfb99d23864e226aece9b69f29be1011ed544d053b374c7b177e5227cfdad8c49c9461afb03ceb330d9dbd4a1b2eafa5feab5211963097f09726ce5fa5a43db92c50b5243399968f55e85bfaf051717b8e4f8684daba7f00cb8d21f268d8cda5a47fec5d4983f94e193be42885f25e0db69084289c872e1d9f8043df6b4940c608a880b1e4f4e769e04cc541bef26b0c6a3a9281a10e54cad49051fcd3e4e35071fd727e440d9eb893da90e8929fb5b868a017852910f9ef010df277acf5654ee8153b73b04ff010b959953ce65e117de6c761cc87a6a9178f555b089cfde332f22b8410a7b8fac66f68cb821959701b0177710d89d3b6157c7f0ce2277031f4651eaa0b7f6f475d206ec88d03f905b98be032ca8582a5c7cbd35310793b2d04c446542f570518459ab1faa060d98d36ff8542eb7f6ea4b459dcd0676e86a75602fc1c4f0bce35744e8c71f8cdbb71dac129f5d86741218828ae63d38b73583de37d397ae188f6f9fdf37881a0bdd77eecf47ece174a4c001d22cf60030f283d64db45d1e640dd6ce163556b4a86c6cd82a750535726809a619d4e6a5df819b16ff6dfa948f40d663014fb9baa6e1aea89097a3292e9629832edc218439149cafc7e567f620eeb0a68b01db1081b92acb3b317726c9ceb6b194082f337db858d6b98beaea221d0115be702e52c2f91e95db8ae8cd8246dcf5362d803b93c42ec6d98b61e2cee4bbc682630cc3df814d3c5b39ea24398b678d234921fd43eba86360e289ded08f7c39e2ac0f5549008901ffdf526860b5deaf199209edeba80eb376617c917b873f348d2e7c53e29714c9db0896e6ac7b6df170f7b932a5467099ce8c38ae2c8d5e7174febe97d412eec705af68a252c5c181ef8a497b240c20a3645587c9ad511a258c9c6c258a550663a9dae5e77edb14d6744103571651eb3da08aac304dfe009ad615a8de892b7a43b902b98eb1dcc48cb5ac153337cb0ed7872b781c6604a3fd03dcd6a94aa90b09e9e5f749c914c6dedb8c8925b9cd475968065898f68407da3bc27143532653baaefc1855508ec80b7c7dfcf4725a022abcc11a6c06b3d875a45ca22417a5d914ed2390a82842ebc36743a1a3a76e429b1bab83696be2000f3bd0ba02123c16fe996e14dc2e5aa6d1ac94c2b68a49947d18fd197b2b00d232a5049ec3f7c1d9af381d41f14a3fef8d00a1dddad522385e13742ca094207c1f5ccf8fc841af0d08e0344101cb1181be2633cb3ec300506a9e4f86a329e48e9b4ccafc95e2f128d7c22f1887291c009503c69149495e9c53e058efdd5a82ec273e2365f00034ef38cb4855101d605e51af7561e08527e561e3fb04d0357670cd3d249d78ff839104004f17b8b174b5b42f1244662267d9197b60659840a015596b671969311c262d3c19ed6120d423d39bd66c181b2b600ef9d4f0644365f9a1949500a316edd4691b5d99023cbece813e1ad63847f5a635fd3ac69b71d3ac2f6567a031d7774d21d2f82ce2d3d7ff61fab3dfa591ae8dd06cb11cc9e5bd7eb239881315052174a0526d803e07d7079d544e5761103ca8638c39bfc1a1a06d6cb6245252d3ce54e31360a4de83ee0e30e6cba50485483a28e40ddb51164c3971140a73e1dcbceb5b3c6c7868ca88eec17a6594e2c35ddc10423f25958253c7eebf852df5c61ef97b4d2041d384ff754da83ec510aa254515fd341a68f11d7851cdecdec0a8b6dd7d82033ba22e9e4f8491c2490ecbb9faef6ce2b8d1d157d15a5d4b83ca2533e6a130582df087beea13b474a1fe662bb0f051acfb62ca2bd5998f9ceab239a4776e4e284812733c4d0bc48da5d7510f6ec0424c4d816c42519e246d2662f33775b7a53ffe3dd4afb1366200db4cfe38d33ba3bb9d982390833a98c4179559b526b702df7b81254fe7b3af91323c9cc14a9b993fc77b1f65d147267e11709222959afd88fe3ad2ffeba4361381a162bb24642863311c9f66c7b24c906f952e140feb398a1c0924aedcf048624a531c08f4eaf4e3d417375daa8f38124cba3205a3de9110559eb4d09dc3d2b1cf6f04ddbacd40812c9e75ecc1b40e45f9d39038b2764d13b8ca1e62b635de8092c1844a14d5c4e192d6e0a2699b21420d92b9150847fab0376d258a1cc4efad357aeca66073143f788590938382c7192d34515cd35263ff07276aac5bf4c72058ee9362bf64fe9f09933097bc60b4afd030aa419d8768441a7a280a60adecc831ea17b63bf0a04e5a74d4fca817cf354c4579bb285a14b6f5b3a4a7b0b40d01605478c3e789c2e753e985e95688e1a94f5e55331466d62fb572ee9610c6b0397ba54a726a0e81b46cb144ea6b63adc6f3ece8a9b57be43fa87792d60b69ab32e1fffb2aca97633368799162991682b47dfe80d17ca13cb6a7aa1b73d936cea226ac7d451cd064c6f528706408d1db9cc000eb2100fe80696321fb089ccb9a851c8ccee174fc7694b84772709a28d60cda843603ac7b2ca14054890ce1a325e40c61be18eefd4d77f056c3ee186490e23e95c5eafb17c8e7a400b7f41f7c06fd6aa20a811e11744021eb57702bffdf0ae500ff3aab2fba4c72bf7f861f023d04f7daf3f99828b2f45fef9e9f13fcea80224911efbbcf8be3203c8c16785b189d0d1020b200af9576dd3e602741edbafb47ec43e00d37caad7188688090da96efac64dcd95723e127c07bba02f233aeb01719c6823f7e03933b5adc6c35ca1c0281954f505d330516297b551ffc70405b05d46d61a019ef2c4e543810773cfc6239cc07a0ba2022301b99890200149d5a0ff15f1463052da7c55eb8586c5496c22643b1e39039f8c5e2cdee4e080d0735a2165a19803a00f49b53c578007ecc5b0537f863d81b59aa5edf5f4018742415f968b6e8926b9ef0306de8b33ae28c7d1d081e3e367f8a849e8176064025e8a1d52c2c13f481b0ad3e8a403a135231b5d18f21200252e5cd026ddac0e7e0617e132bad788dd245e1f423e4f6ef0f90f9edc59da58ff7fee81ea97f2e7cd0b2ebd588626e1ff472a09588e865d5ca6588ebd93018344c2527115ac320e577247704245b40bfae536afd3ab373f9bc3ccf28905cab558118a12cb814468e1ef1ac8641c6c0d2af251219947b9fa0a841139de078556fe4f72b56d4de27bbed91adaeaa3991fe462c00629df331a701539508214504b10883b980a6cfbac852327984beb09ca4750829dddf1dcb0642327b3ccbb585a061f0485b4e766decc12ca265da01eea9e35f379b7d05e9c9c2d81f684a485538b914323f25a1822877339f791fc5e2c19e990be71c01e440325daa3689e88efbf99faa46030e86489afd055d4f51ce524ea7fd75c300fe805e50fa5caa65cadb636a998344674ff4dd9b5387d933987b18d9840c1ecd2aa4c90cc7a674ec3f3c8d89f07978791b5dae3f310ac2ef106761ee7f4c3b9749e9aef9d20231a9ce779b2417515ee11f8d2b0c2bf9a07ff921f405db3b2da9033be5a2227f202a5b6abbacbd8d604755ca4de701830fd2520c96a0565ec7d16668158fab42ba1922726a82f88ae74b68b0cafe325c1803e56fffc6335c28eee1d206afaf025ffe4e67f339adbc43201ab020be6832bdbcc819c99deac7a653cd6c8a7a465cd4ba9ff3e658fbb629570a0e1588f6b427dbed54f59501f93fadf6ae3f3e7bde0ef2a6c9c72a93f936a35a8d33b993c433135f090a2ab5079cebb31133bf5f036ec45e6f35c786fd418ceef4bb515222e2bcef9923b9d5574cdfb4f51aa297fac57875908749bafa4a31d96e6da215996f0db179df3d5ed2249e756349442448a8656dbeca94b839ab3426bfe5af54c0b25382be8028d5be8e9d910fed6422675f98cb78d1ad5aee6909d23a21ad4955f13994b13199d007d8b7aa401b2f1ab2adacf60e2ee63673642aa43f8c8ed1f800f0e94e81fc7dae0725a9696c290bcf61dc7e2e5a6ecea351f5881ff6409059b0d20ff07ee3a010093f044f46419a04e445ae7b4d632c5230a8a2e8418b2aab4aaf73ea7dc1e7c3177add2a74bf973173d2e1fbd9e5a6c07323bfa99d5cd9fdd11fbfa44e8cbbf3b1b55d0ba0cdaaa2c6d540693d31465f593c77282b40f61024f148a5044593f5bf688ba141b6ecd9053556120322d702d5325abcfbef904b4d9de4deb0a3b6048a65ac7ee77a7b4a8ff4171ece7683307dd37d80e701f81c20fb3f5c0742a8ed4178c6d801d8c0a6c69319ddb0f7324feedc7487989fb196440f1a669bc8503a01b278e2961847be479f62a4c400ebf758431113bba5053dbc8471dc4289a812640dfd4b0fc575e1137739b8e722b3ddd79ed2904d0c30042bd1f5618ef4490cb81d6b93e8c9e9f9799baf102abd9004c2164c79414158e02cf981df454604e21c320990a6d2c0b045ae97e0c1738ce74ee705209aa40808299dacac251dfae06db7d12a2f9ef89aec2dfabc192fd3bd90a7a895a67eb7ac1f5a5d6fdaaa14f94589f85316b7f6678ac676bc3c4ef9fb5dedce063d6de7aa8f0414dec3961d52b5b8136640d6d593f707807c6989a99ff881d36d61e631af7ef43ba67f9c125e6efde450ed0d8b0fcdf8981dd29c6e986c5b8cafe0f3a9e0801344e74a3581bf38dcc3472a098fba2261075cdaa111edd0221f8114068392097e109c2f09344a853f2466950aa38fa2d9fafefe0b955292e1f546570a7be0bb076f030e975b8efdaaa1ce572622a8d6d5243cbd558a0b5267362f00133356ac565397ae04f5406acc38fcf8a11b019e5927852102abd5f03513f52818cf8b5280a24e003acfd96e17807f43a590a480bcc414841fc22de92c48111d65b5910933d3ebdd66c0f81bcd4956b39d5e2a157480afe0b040ce0c70231d3620469dac5517b8ae6b4d4fed620ec6d3dec70c5451b81c8c93e10df4e144873d1c6674f77d1be86e2b4febbbc8eb49e260e81a5f25ca98504eaa865944e48737fce49101614e754208497d40a65e862c7619702f172dc02d19a498d99848c4e6af95b89e943fb5c94e282ba78e0759d0979d1f5273064e88ff6594c7118bd6671b77af65a53523d8a8824e418e984f99527e56966f6d98208696e5a8c6ed503e2613195b591e2823c32e87dcdc2c7c4d1f8e3e26b4f30680d83a0c9073e96af79e24657b096d5d21c7f2d620f5be86d54a9738d018f76208acddf1cd9aa77bf23a65f37e98b6caf43b0b72c3a25d306ede7ab1b5d1e7593076f75d239d40edeac4239d1ecf50b46b65dbb4f4518618ed673dff1930c10a565ff77e5376cbfae94631ebeaa65e1e4ac6b96f9f3848b98c3e971784cbda3862d718102f313e12e1a9be74ec4bf37cc0590fc35e248795b3d8af872566b9ee837bee17f727b3ece5d1b5307d7c7b4eb4d74d2b27338b0c80f6e8a283e0f83832c14a9264c32845e0944a032a4011f9593668d14edac5e9d6076b6a7e90b02d18614269b059ae50998e03e68b49df38a3aa31a27f531abce9cd9ad4f26d2675bc900593a94134434617cee7fc75309368e07b61f888ca8eec6de2f3ff5ec2f60ba210cec90f8eeb7f9b23c4a29b1c55970eaa2488b7a147a271353d7f21620547f3192a3dc7cad70ba165375c7a6c55875c672fd98e3e8fa88b2360215f2fe94982d7d81e92b64e76ab00c33e73cfb0a94646080ef6a310f5e536c0af02e6f4827451998857cf5cfb025727759cc8eda052417239c8b06909b49957db16d311b0129cc6cd07fd895e8d8b1135dc31ffb6b1b4fb1e9620b45d3a2ba978c9d10d761864d070ae5b9a87d2ab3a829e6f15fb9de01943197bf051546f680cba01fec603a8e19cb12b0de2a6c5e1af46bdd3545b8f6cf2a1639465acf38a63f78b8f0e152426420d2fb39ef4df7b2c8666e6bc402f41ee246762389a60cdfdd0ba38e88393c6ea605b2b51f5c6562d2eb94b5e8e814403635db7778b69758283ee5740845ee4b81e7c42ba1359ac47b64f42ff0f0c2e79b2fc9877d5583bb06aaed632351adbb2cb7fa8a0e58e7b689002a130364e5a36e622f72eb67245b24661cb5c50ab957bd14f18b19b7163c68c769789110ab5af0ed5a8a4296b58f8229d366a32eb522f5fb26c82a79543d4bf14404c54024961a847b0ca41707f5869557ef38d41b36774faf30e9408d64522b6e1b83e071a455d9ac2332681a7e379b48b603df8eb10fea1bdf4a851cda2cf71e879ebbdced5f64ba70441fdc9c8abedd63772e4cfbddbd29a0f75c4ab0b19f9925e2163e0cf32ce7a0d40b249bbcdd2aac023d66299e43d31b29d41afd6cbb6affa1e51a3edecc6c275ef6423949e113b2661f555284b19d66b48f0d925db24e0ef8aae26b013330bfa0881520ff89df5978ed272a52ffc7d324d29f4727a2650c7d67020e6f747531b1579cac3c6fbc1351286fe3db4abacb2dac9478bb8793607c73c88671b61e5879e969134844237e56a099e3c81ec2784fda25a4a5d2e2cd05c4708ddc625a1b63ba47407ce239965be771a51de7cd328f2adff633ab3a9f6c3e13d6ba16b5dd7391f139952afe03fb3df20d1cbedc43f6d58278367e72d0f9c7714dfc2c47c86faa789ba74440241d04050d884e3af4b07bafd08d32450987e9dbaba27ee68599c1190cd0063e7341b8d1da7872087b6cde24a034a111df9590ccf614b7ade6f502d010b5c69c4dd535d89eb95bcbb5c0963562409f7cc7b626e9ae02c4bf8c7703744ae62fd3b7074738282bb289de65851a1db5b2dd8b94fb4146fdc3149b8587672307e231ca328e5ffb577ed5ef7229cd9c136149befdf315e895ee649022961a124fc9a39edbdf9f477d521988b9a9d2840aa57e0288344296b99645ef37f7555557761f97f255fca0b7ae24ab8a877cfd25694966ecd50ea226b9e9154997106a6d0a7e73d780b8979ce170372086552d3ae84282307f383d57d67c45b1e028a60cc4819545a7924eda698130c1522997a3c31b625c600826d9449f77f31c5628ac899ba04bc772c108261cca79d7ab2098c79859166b397f1d5c6b2f2f2801fc88e27701e61b60e00e21e7beeda143adcb201f3b8a03fc182530b93822b6d08b3426138c8b8b7a82d4b34f5b0e19fa6c0b90813e571fd1b996d8ef6088b7f60fc090fab3da4c5443ac3241d6e436eb24331879f709f6819aec93bea68805cd90aa237a7928b91c197ca2e8c35bda1c44065be910df884c33bf2e7cfcf7fef279fa839a3c1b957c6149bf7e6c558d264455c34dbbf73ea62dda827b6e2ca98dac18cd4221ddef037de9a3638f52098c1b048aedca975d3052325207aa29aa8de546953b556fa8c0309cb37d593d61e48ed504cb19205f97db9877634128af662ab8b81c8264909a5ffecc3dfd6708211013ea894a45179deecc87376aef731f476eaf34c3d2066b84d2c8de25446e29a54c49068d098a09610938d03c2b6d4f12fd7b314ea5de567ab3c26c26692e97ef48712fc6ff1c0d8d2892e44f3ff1957f142bb295a201805c423ff5520c40520f36b39ecd66b3d96c36ea810a8dbcbfc327fdfbfddd7c5a0d5f9cee3952cf09788b54f24a5e095401c15f7a5c2a3d7e0f540131bdf7260f975cd0e1c40d82de777fa4c5819c47f2bc2f85dea31abdf72552a81a7d69447a92271a1b30e2ec4f91c84b4bcc90e1a007190e6c90e10004b22a7c20ab228b2a3590558184ac8a216455b44056850a6455e820ab424766654866650b2b4d18319359214266a505322b27905911812ca88b2c280c595017b2202159500d644143c8827e90052d910529c922a3e20a1915332aa65001032a9a0a11ac523e38804743c0153225996236c5cf1451a660c1144d8080808080808080688026cd8dd7f4ade2d8818044218e0778c60eca0d04d4423da39147399b3595275cba4ad7ba633f5e63c3c8bec3bde7be7f74df0347cf81a2e74420771b74327a0a06c9fd5cd8b0b97af9cc15027287cde3fd807bc90e10106d7c963c63a766ffde8285a7811aa8892d43ee8afdd4d81ef412b75af2d8b9bb0f3df46ba784cd56da400d24f18bdbd9d9d9d9d9d999dc967be71469240e9f73eaf8940a30b8248eb9030daf1d240a18410bc788082dfb4608d0aa56906862440bc7c89665a7654328aa6ba49f8841ab86505a88868623fe96c07d77e0b69403e13df80e4d60e93b4cfcb86a5a96c8de57fc9da861c1d25bba56db49eda4521ccc8cd9cd8e183529a5945276df48295b863e5c9c537c2195fed8b0a01954bb6fe1d66ab7569335203e6e5c94b516ba76b5dc20670159caaa54c93f964aadca4f96b21b8890a5ac8a4eb6319b84c4210597304b991441252f7d7d8b1b64a249a0aabee98fb44aa0aa1fff9156908bee575ccc028f13d62090d2e32d2e8238a7273d06714c5ffa9a059473851f8738d8045e5005a4544a821d8b8bb54a731498c23160afe39e46152ce57ab84b71570a8d1b0c39ebf4b4d00b3c569a7dcd15cbfaadc26bea5ba01cfcb6c70e61a1d827f6c9e84199365936b4953653a9172b8da62bcd2686048f558a94ce51b3b40d249a5579d02bff12e8c0861cd819a638e389fa832aab3417e0d1c664ec8b581e67141a39c0fd34a6c0b58b24789c30dbf66da4009222f67ac96e50850a0f84aa44c95134c9e384c9a24892276cb26c2c16ab35f11a19e3412dfbc7c0f8712ad99f073125bea82991658acc95ba8e62fb25df5229bf4afb3553265236ac9fc8ee91596abd808b16bc99e4b94ba06cdd23f0e8547cb628ee336121c8d05dbbc36e8fb9cb95d048a50d1ceb69569a8d12da2759fef44cc934b2c0a37d92fd3b8f07ee62a32189a301a612a848d192bd0bcee3516934534b3f794f52bf2c0a2cd9881cf31ae9f5689a487a558a8dc5bc66f39aed5a259b75657f4be58ad770c9fe031424f350a5d525ea11554a3542e2e8b076216748f072a5c580b76e4aaab44a9392fd4b95e635d504493441923d8abc8563cd92fd0730041e6dacd2ac90d7582b822524d8ce1c66816cec073c4e584e1e6dcc2ee1c263a5a9b69758720ecd6b242c85a70bab0083e083471b3b4165a3e3f112fc36138b8b547ce593e555a4ecc480b2ff647705dd1d5a0e8215916736c8c6266b0631612fb02136efc558da58908dd918d7b901a470721c808eb6d13504622a70b58cd0215ed0da5e7e4a3e0dc91ab5e46f60ebb808fe1ca5f4ca3959bda3a373340d353c20fb370d2d789458866040aefcbfb858065d406259829bee9326770f49e5f920fd49a477d00d83c16030186ccbbd18a752ff74bab531573211f9a045482b94860621a1b83430fb72b2ba49696ce41455c008a265a4dac083167e1247335708615704c3342c4ada2dd152e9e5f6de6f7236a9cf5cf9bf54815998a4a71d292481fb8e148eb3ebbc2ec7e5351ccd112775c19e6c3d5d48d676032c079603a33039b3edf8a879943320a61087406ee45c5914e8931e17fde6262e3af58951a0a6a1736ec8814d9684c160b0d30d3ddb3213329b2c213321455ca9b5df06e6a3ac8642aefcaf5c1102857cd761a5b190333903843b1c9bc73b8166d50f1a4be0eedef6691faf91e2ac069afd63041e7bf693bf6ff6cdbed937fb80be15c8160d0dc63ea60c923311d894d214f688c0fd45c8996e9f0d0c3c4aa01b2058c6e6e2c384b1cbc88ea3f3a42f7a17b58f04daa1c3c6450c0404e4a2cb75453127bc32c468da514a95a07409a553465c61d2683ca894479a2967bc1460191769349a289231e2388e1b4d197c7d8afe072cfa4db4a3b371def1e4481c387a07d6b5b9c3a95aae6afb40466fbf3bfc80e8ef5bee713e000588c8fe2854f54b10cfd5080bfc023cf6ccfef6810b647bfb40447f5f6e6f3f852d4c41147650c348704aad5015175df4ffbec063c3b61bbb8536c44107e9de5dbb6774ca1920beea1c3fa40d7f2c4df4ac6742a326b8121189434a1c36d97ea743152a15816f242059dcfb168ed24ac6227b8734321573e5086e5cd62b0d4a24afe346a2b0526e1436159ed9360bfba7db2766a3b8d85058c93e27cdd791bc8e1b897a26ab14de90663ddeaca79bf570b39ed1ac4734eb01f2d1b959a1859ef5ccea3d5d4fa7d3d3f323cac16b369bcd6633ee86866636cbc1e9168040cb949611ebe406add1e3cc186cd032a280d62884925375b82b16dbd9318146bc9939b3ce99e5ccbc3b08bf41ae9cee4cc1a3bb543fbb9df3eaf19d161292383a868564754cc68476b815dd9e6005e2e2fdcef786374178bc47029dd3b385aaa7a1041e5f0272e56f05088b9b1d716767c777445114c557c9860500c00b3cdec8a2fbad4bd3ba3fd6c8eee33370986c2da994564a9da75b573260f41cfc062982bf0b418464f9cb615ee33b784f760eec069d747fc19cdbeafebeb75a68aa80842da4ea17fd6814debf610fb9ab7978eac340c135ec252ed63a6b9db57a158739ac791cd63c0e83f1f48b47ce38c1630f0df5cba69139b6efc73248ae641e014848aee40272db180349f6d890c3fa8b5b27f5fee2cf9796bd70b3363058df8b712af52f8ad64b35d8586e2a42fa0af1a2e051eeafb4ee9d5ef5bf92e8270db1d54b84c4b13d27a5bb947e8544c1a73cca2bd9c1eda9779fb39d83a7dc3039d30dfb01807c24052f45e1d84e418b830e3c48560b73a773b48e19b9fb87dc3b42248eceedb01b20415ad0d16958c3bcdf8e9e6c03c831dd8452fa7516a8dddd7ff620e1419a01b76cf7ccd57cb9f0d84c9870f11154b157b8d01390fd77bc0e1f3be0918686a65b128bc562b11d75b6dd979fda7e86d9badf835ce2028183c85d446ee222f86ffda465b7eca7f9ba2d5294a11907900348dbf086b9f8a4a79bb8e80fa473740fd2c60f72668a7e4dc1331cdbe5b95fafd7abcb1eb9653af8c9a3c346d799b03ccafd0e8b92fb3dca966496703c1a9eafefd9532b526170d177e4b7ab060ef078dd490c50e4532ac372f5e34a298e9da5c7c3c171481ef26597b50c2482590eb9ff04ad249c028fad0486c96a254a863a1826abbd462a118103b50c4aa2e0b195e49eb18d072d7eb4f0d1a2470b1468c163a9a596524a6d8c75a18b199d5e6a8560fac5fe1b59e8e4f6980c8d4d6e2a6b4687e5fefe691fc44e980e739ffa77a660c33b575228379633b2afcfe60a3a5796df5dd374dba77116f7b219410895d9cd39252dcf6feb30317f461ebb2c411a6239e3aa1fd6862a7984c686003b022057934e21f00893e75f9f8fbdc6632e1715e2e40c7d0745d2c698ca52620f5551609f1f4363f01c6b4e1972e00bf4c794f3dd45a08265070b0846ac05972c655a64c9520b2c196729d3a24aee0a943ccb98317c61f1cab55532536b46ae41a60af557a87f3359e0ff09d4b2c058900be4fa38596ac694925c6b1d6af74ed5582eb9a6f08b2d91c6a6decc551569eadbd4ff792367ea7342e02dda93c06802f7b7fa7874e76ac3a02894e0d6af1b33d25ab649e8bcd4fae7d320b23f183f3fec10032e3a61e4d0a240f4c4b8ccae7b4481e5b73069cd6b5efbce597336ef6fe12893c75bc331268f3766ce60f2973dfc983ceab83a64ff20676cf87334466b0859d0aaf783e6e905e914e4e4de3d2241e45c894141664d05643485c279a475a4c5a520e7cde845e09dabfba21bcaeeef487b2aed71162a26a9163b42312120f248635bf248a964cf239d8df40a15cafeb5a5f57edc10e77e7de901e95e14e288be1be73885284813fa6cf2c4b2ab80dcda9196085401c169d11f6985b09e14fe9ea74173e693969df6cc95535710d9290f0582f6088147ea830a8a7ed1da09083a6344192c7afa2d1883454f2e409632a1245738516bb7e70a4f50142a3d302931a05915a117183c4c9a5c9f3bdeaca3e793b918e6459a1b363b7a9ef4f4f4f474b8bb351db82b8060120738af5092af697b55cde23563edc9fe2e565afdb9527d9cd535ecd418953aab42158bd748d9153ea2bbc1bc66ac5db23ff11a8fe235b68cecdfb6ebc92917dbc3af5f7252069be6fbabec0daf51d9b08767cb52e242314b68785de772c0829c41c82ecb814e6ebb551faf91e235d35ab09d8c7e87571f5fb9cf74d6e8fb4720f5d5f6f3c7d87d0c9c94b18239797b95dbe5e2785553f092d1b74ef6f72d6c700babab87b4f2b111572e72b38cc9f267eb048d9dd3342d237bd21cafe97bdb0601720720f74bee19992388f46e178e436c72bf6cf04980fb49d8aac0a30c220114e2a2d76f507e0549e897618f23415c8804c7cbcd5045e9531bb7c132748f878e1b3c6e489fb5abfd97a9829b66c956a44da5531b3ac9f9ee6edc70d17f54355575588298fb3ba471f15dc60b0caaa42855f2c56c9faa645882986d48938b5017687b3749ba4b6bf43bfc86d774783dc8b797ff5494d2579e18322b82645600c9ac384266851399153bb22b5fc8ae6821bb6285ec4a13b22b47c8ae1421bbd223bbc223bba223bbe2aa710d81ec7dc46803819602034cf3d852484460d212d86d0d4c7881c506248ebe41ce9020fbfb90fddb04af1d1df7e5ac0530c00023b501307676767676766adb09b6bf3127bee105bc38491cb47d205966e417b892d70b2848ca35981e1caae062ad56abd53a6e24ba36b5dab66581bd5eafd7ebf57acd7b31fea73a3e25855e93b523f68abd62afd82bf68abd44b7a38c9eecf09113822d48b48cd0ec90a3450bca168bc55e124707d19ec93ab5eb854d1f17d8f4a75f922b0bf5aea24f5251d12601d39f1e88e94f1e7e9cd29fbe4320f8431cfca647811b1370e3398db88eb6704eafb2957673345b2091ce53b64ca06cb908f608ec1e7048e2e831246b43f2e279f1bc785e2e1809a4af4ba364ffed35c4f3a2afc94abd5eaf177dd157caa66a8aa6449c9772c0b9ff80061a986819b1452cd152959069684471c66083161010756da931b096ec5d503a82f82eda0510b01e681378ec2bfa0a89a36f77fb853f98542abb0f2121212121a11a1231a01d26f8c4f044cb4895810913197cfbe5abced13bf0f0209ff801e6d9885c1ab27b2dd4787878787878787ace39e78cedc061341a8d0a8d0a8d36592650a151a19920a938e9083c36cd7368fddd406303d54a250e2fcd762271d0ef2e9c38695ae83972a61fa89bb081144040b607e613732267fa694e727fd368341a9dae028e9010171acd1d363ac3e2582d40aefc871447c9442ef114e96921304cf70ac826d2137265ce1973a5b36c76dc5d74477289d9004b1e3b078a9c3cf612b09bfcfcf05cc2135c4e9058b899b3541052abd56a2e98a3e6667373ceee09f2bc7073877325a2ddad5dcdc41573c598487937fb3b0043d684414ba13a168bc5623842547059269d8302d2864be91c2230c9af97949c63b12d2e6242c8dd65f065c09310004900d0c88247f93382d7d0708234c2c02d62f998e108724673abd094e9028017b86964f065d9c4a6f46b4a14975fe157481cb27d6eb8ddf07d7c365be974d957ffbcdfbd5f51171d67475544eb6cd6543d4899f4a686c919a7d5e5622a9f4c3993750a1b46f2d5fd98c0e3ccc9a1d44a501015203cce20e7e25c82720df0e84f9c42d25f2a5d08b0cc1d4e25cec5459f3464ff0985dfc08a6479ce139dc39be4a0839c27b2d33a4932e0d1b9dc2749993a39260dd2861012c7ac41cef893e02a60219160beadb31e0f1208f0e848baa6a4c46b483389b51e8f51109235670ecc8b8249ffee91c010b2f47e8099e4c4f46d0a9d1b75dfef0f8051f4a1ee59e80e7d249148ef5b5c7452386e5ffab1f43df432937e87fb16af794d974052a8ea3f923becd23788c3120f92e849e0e6855d98a78e8b33e70c9c93dd6d2057fe54dc2bb8f02766cecc9939332747893cca2f54b8c00a23ecd021677c382008023f3fcda476d2819c53ce291363bb674864665a27a53636423609ecc6c6c666663393c1d746ce78683357fe363391cdf4a1a15286e1077894b3263e760bb23f8e9edda1a12118da5611539383dc3773d542da464f69040a9c6819a92f28a2c74570b07b5cec27423a47ab208a932b5c50f19a6d46d3228adc5250a142e3a0552057fd50ee10f8882672a6819aa8802324c40508c8fb0aa1a436cb99e5cc726639b39c59ce0d0dcd6c13d2915d488806cb08e2cfc7f2a4690ec342dad0a2054236c0fdb4e3115e7c693dd442565a89c56e845e4848484848e8ffffdf72556817bc79de406fbd6c64501089a3669763b06ce4ca59414192d5aff97abd5eaf7ec188e8e91beb3e91db84b6d14944e1022f5a462a2c8cd6b5d947842c94ce69df4118bc08d8828bfd26748e0cc80dc8990e87c8997e1a359059aabd59212d6cf3bd14525e0a78aeea7ba42f8538dc9346a3df5e9c2ceeb7ed45e0e7a2b7c3bbfbb5d33fb2d6d62bc6135bb9f66e886db6c729178166ae3623b06301557071fb7bafa8f613854eed278a14dcf6ed86bc7dfff62a78cd88f168b4fde08a1851f2d852647ba57171fb1d1ec209308dafb6dfb870e3b6ce7196756ddf3b5bde6ade6462e4cca454d7969fdcbdc26092b7c0f2d84fbe6dab7d6303205eb3cd90371ad317f863662020a99fa4dc4b1962292b28a5945286f3398ee32495dc48c45d6ee3466f9f1bd93a92f4afa4bf49fa52da50f5438643741cc9437484f2bf084349183b7786a38e3c1fc685e7dde8fd79e7bcf7e5bdf7f3f67defb66d9b9d75d25999cca943b27eaebcfb1b8e404d98028c9162ad2fc52aab10faef757e3f45b26d760b3b4b2925c17b1bc2b8b6fbe3b66ddbf4c071888e5cdfda69c72e4ffc798df53ccff37efb1d6e3faff1c2f173f7f38e52dddfe7ba0b7632732399badbddb650f5c3da50f563b3e1101db91ec95cdb2c7a338122f0d09a38b2893276682d23d4071cb4ae8bd07f97d07142a765646611416b6ba28a0d525a46a80d61b4b650ba08475a37bc3254a5b0bde8aa52b8db8bc2bbfd9116768f87a5218c145c5d043c57174726e1244a085a46e650cb4517c156182978ce50c645147f590f68b50bcebf9b2a7dbf1a20c0a62c655ac2a8e183162d6ac8807196322d52d4e8410b909698169e21386e7a2eb0d64e3aeac8944e9b4aadbd41adb594d28f7a4c3bcdfa9c177071d2eeee9649cc4ba9bb13e92e44ba0b91eca1b46da2e20229cb4f409661fbd36f4aa9bbbfbb600b903b7441e545aa8ff4abaa7f8a68a53ffa278c8b36bb50a466d58bb283dd5df73ccb983d7b36a594d22fcb392bcdf6432a6fcc16e79c73ae00f76f3634a38e2c7df827e54a8159011d3d874cdb9861cfc9e980653da14666c15e29e71c8f64d50f9a67a8c345f91e1975d26a475ea9db5eba948a46003ae93575dad1a552c6875c6d612a8498ff970f049500e8c679629d227b47379d0fa01b8aa721fcbd9830ea0473f2522992570ac0b6d5d8689d227b4737413ee66ad3610b6b9c81fb396b82e7f9788249b29d64bde6de883c1e371cbb870d4de07a38bad91f9e59a8d1d5f078cca7755a9aabf5d1b9e8403126ba7dfab4db1d711e89e4f1a8254a29b5b5e33611a5308838114eb7550ec64ba5461ef644d46e77c4753c2ea22a7c1e8d38d1fd30de4a949aa8ddee88eb783e069c3b91e82927fa8d133df580f7a38e44f4823b401db6b3e146a8f7c3f3a4943b75a80ee5f1b0bf853624a05e43b3c0f4138284029f3eed76471ca92b953c1e92bb2106c9954af1ca4b61d84029294e06777430a91447ea4cdd8b3e3ac7fc4b73c36613df6672e1bce188472a64ee33f79c274551be228eebbc51d8dd48f4617cb1ea0a7c8291e91cf365965f6af4f2c512b863aefcc666aeb6123c12dccf89aa14efb52fc5fbf75e916c2789c2bbe9b09d9da7ce3e87b259be4dce014f1d3b6cb6b091b4c67a3f5c4c83977052c8e572cd7084277fe0342e972b890c724bbfec06a30639f2f6d6e3b14926f2f8e57a835cffd6c75b7890829aa27fe5ec72cc2823a7c8f3ef4f9e8fe7ff173d79bef8c5961df0204f020c01c586eec9760a9622022f06252823e87c804826c0811b82e6e98c86787558b6032435c4c0678c1c21665a72a200e50087227898c8a1081a112420226805371091c30d3e322f661841949c2e766030c4eaa165c77e29989aa5ac4603010b202e6a79fc029005e32c655c087d2fc0374b19174179fc60c8c05f96322e7e6a425f4d879b859643c8524683410d873c3e0ca8d7a8eacffffe89310baa2b545fece42baad2234166ec7192fbf15df41287f7324647662af1d545226d249133f7c701d0715577f24502721e8f12151860e97982267152ca4948694542212b13b907b943aa081c0410b39bdcac9767fa5858f65ba5a88470cc6b8e903964be5f6790afa7521f0d6f210e141c020c01c506d7fdfe1990ab255b4966972e2d28fe231e75edf1b82fff02aa80d87ff9971047041e5a36dcc9f78fb436500504e7e6e4fb5b88d3342051040e5ae81831b4a08cfe488b9b4b789144122d1c23a22a2d28a63732a738a3056524020f5848d39582bac30df9561af2fdfa83676de2358a9424f2fb71d6207f9c38e43b79c8f74d28c013d399aa9ceb050718f5a3d7e6178ef79ec2b035572ad48f73a8c483ebdf17f9dcaf3e5e43fadbfdfd8a44b2286caeee8fa219d425ce0a52a578dd92ef58b3e45bb178ad926fa5f263fd61529be4fbd2eb934c79e4cca53bf4e47b7bc8a85002deb2e11c9aab4bca302ec023855d7a45bef7e97d2a74ff148ef70a1c8ef8becd50be1f17d86373e58328545de16d5f73e6ea7e75cdd59c5de70d813d8fefcfa9aec06375a1c0fd484f5f6f10e9d199c6c5fb3fb8d08405f77b8d2693c22bc5c5fb228f84ce7db8cc8d3a0e1c65e9f5b878ef9b74b8415ce8fb300499f72f291c2f16b9cf64b55cd517c54c40f9ce5ce8ea3ef7efc538754de1cc09a7cbc5fb224e07992ff7a20a230557975cddbf297cdf9403ecbadedf9f3a9dc3ffde27bd074e25377be174c999fb2a2bf0bc5fbb70bc2396d595ef73a33aba2e0e819bc8ecd2a5b38cb9210ba39d1a36dcdb63d7dff629fd1f024f3a04ee973d7afc2cfa0b8ab60874bea14c18f877b8cda31f45d409e72b26b21e2c91f540c91557151d08e5515611cab205e3fc5894e4b1f3115cdc11eac03c504111406471036d4babcda075218362064c5c3a2e1d8e86ed65a0945223321c794a297d1933feb66d9b0246e944beb1bfc337ba6ddbb66ddbb66ddbb66d94524a29a596524a29a5d46edbb66ddbb6d56ddbb66ddb36ba6ddbb66ddbf646b6b96ddbb66ddb466da5b39d2b0167bfb3cc0030c580e54f40b6aa05472f1c6ff69eced02dfc98c70d2a4c827a9c232dd473d63e0fab22fdbb68495091484fb2f645445e98d94907502ff3bd418549708c7469a15e86232d5428c3e9711812996fbff3391e81e56efe287cd50d4b10f3f65be8a4f427d048bb62af9d1c2531206925915d5a39345aa59006d4cb60448623a924dda505a53eca098c42a15028140a8542a150506828e50c2ac42eec3f431c1a4268c960048531c618637cc218638cf1cf60d3c2a10c1e6002091d8cc8e28b13c05aa737bd0c4664e0002d89275a4e205bc10f5af88da042194a28140a8542a17e069b162a94013f4a278b2584784842073f2dff13887dd53a2021850d5914618586963f068f3451f284121fa870d162d6f21cf350c96096b22d7a6426e02233812b6fc1930790a50ccb2b3b380ed962288f0ef3a9b245ada5045394289992640b9629498280a624894d49029b92440553922c999244c99418cc9812c3962931d0a6c41034250628aa5c97f1bf61421018a127e4ac8abcd2315e335eff778a04cc9d72e6c0c9efc3f8bfeff1f7f8e5bf97ff5e40c0f8059b30c6f8c3df873f8c31c618bfe0ffbec7f8bfefbf0f7ff8fbfbdfe5eebdf8fb97b7de8f9797977f7979096b960ee6eb8c31875f30bef8c3b84381a367d4f773fe074a89024178e9e1d1f7f289b8171050b87bf9eef7fd4b0814046abf765d08e104e10b59c0fffd4b38e27fc12fcf914818df977bff7b8c31c6f8bfeff1975fbe0f638cf1bbc7036350e6f63ed20b48c2ff027ee075b1f49dd7e070ec72e9f1ef98260cf2902e5e6e24ba9badf4a53f25ba60c93159cabac4721798077a4a5da30b3cdedc35b6c02c780fbfe2f190a9b103dbdccfa73514d5c082c79b677727f6b7200bf48b74b62c8cdefefc8f21c008ac7504d6175df085ced4e574dbb292945097cb9895f5d0ae6e72a3b5d25aa9cc0df048b36fef5f258efb2c74444a59ca19baa1607fda9fe09c20f842cbc8cc97d2fe946109a168bdc0a06abe98ebdb7e31d322327286d6d27dab24e9a2e5a2243b87ccb2cb16bf3ebde8d87c19f2b04deb1c2d679c36a7649f73ce19932bff39595407afb1384573d13b6a69f8a5eec739690ed7e95cbf4e7129c9dbd3a74d1c8eb714d2fa47a70b47e73630c46fc96a5aa5d981ec30f2e4c28ec999f9221db0fdb1634e1a8fe48e754cb4a098e9f715af8452a661d36299b69ca2135c99bae2e227d4285afe1ee73392933f233a2322466695d36714283d1ea7f771c5c55985f2fc2eaffcfde9f41fea4f337071b6b3954ba7244fab93e7cb8f3159829607b5c5c579fa99a291bfbae5db2257f3bf2f1c8788f9f4f50a0a5f584f61a5c948815928d279fc3e7d91cedf63aa03d21c17a74c142ddd6725f5a859baf885305ef385e391fc7d210c10de865c9c8f0ab79a8bcf5def84ef4fbf793f4eff7d7f3afde9f49d6074f0f7a71ffd09ec3c7f743d205c6b3f6eb57cc2e9516fbd1f28144e8f423d2a8cc9a8173aa342135ccc5f58b3705d373d12ead387f19a2d437a4bfe3e15e02f8471b1063cbeeb036d0e7266bef4ec123913024cf38df8fbfc7d2f7dfef7dca8fb3e1c357fad8fe67b0c8e9ef1d72cb576aa6fc2e0cb53d0f4d2fb7e87579ab364ab3bfd44fdfcaf04788a6b492ee2f9f4dcdb25128757c9de7cd44b7b9f8bf4f3e9ce9413158eb7c3513c8563cda750660b8cfad38f76895d62ff05a80642485d2ece5a0d2d302a64e17bd49fc2f1fbd37f608fce52ce9c3e54784f26bc25cf278123cd1d088ef54a9e3fda25348fd4357ed3824bf2a4a1f471bffe5cb4d2cf86a2bbd1ef6aad5f2ba5f40b8e8959920c736bbd21b514539a3b3aa3e0a8dd68c78d6ec78d84885ed63be90c37d8b422e926125f62896d2adff05510dd6abf3abef389b59bfd3929377ad1a744c99273f4161c7df53bda173de7a36f0f85d1d7af5e0916c831d9b2b07dddbe3d14b6123c90ed6f36c4a1a37270bfffecc28952acf6fef831d923c98c40f28c118390c08f11e28130af4207a6602e90e727532be489e52792524a9a8f784d456044c73a820c1a38b44db83941c980e5db111b5c36c09c08a3055bc64075c193050e5a38415b0289251c1229c8930a6c73860c6cce3042e7873374b8705f0b70e3eede3ee2ed50b4cf4fe2701b024c0d6900191b374a72e52513e0feb194eb103aefec8ae4e997521c4a33996cf5de49b75bebfd7a6fbde01b516fadb5d65a6badd55a6badddbeda6ddbaa8d715206dfa7b25fa0b95ff5a35fd9bea422d3e41d937bfae39c39e039facf2ecfe94f3dc7f20bd66bafabe5174e25ef05db09e5173a92c4e142fb53972bfb0feca2ffe372650f5d20226b2e572e72caa29fb348974528b490dd052210c82e67fa8bd8d173fd22b6040b647f2235884020b79c6922dd257b261c9199a33fa575f42fd2790ba78ca1960acd745e7a6d5670717eadf4b70687e4da42aef6eb46a4b3b53e2e3882aa0c996d38e4023d00247894b51660f01ad937789a4937e12afd1b3a70c0f4c71b36d6d6b1e640a494b7efbafb63ad39e05a5fa0d2c74d101dd2a6d28e16e9e71a042b98255b220e3ad9f42ec6300bfea69fd287fed23fc9a5373d37bbe991e03de9a7c763f4939374ca58c6e148337ece04961e66093ccad9cd641541bdaa0c5cbfbbff7e1cf265d3cb2fe2ac6ed94785e3b55f7aeafd30fd87617ef02863dbcd9b6a4c3523fb59047ebed95432dd933de1704ce5d3cde9dbe3711abd1952727f4725a39ef44c443773f684427dd1a833f5f09e4402cedf77e0d83d2ee2f9fb11675b0ac721b96402c72f9b3ed24b174d6f3d14502175d1f424994de06862c1149e5e7a3d1a833257af84feee3fd0f43b6607f6f09ef42770c8975bd35acb919e03477feea75782f7a4e7ba8e7a8de9eddf7b4d26b9b26ffae9f1303dfe1153af9119bfb5a6dfe18e4de034bd3481a212d864da5c66ae0b49e0979e2b81a7e7a4870ac72319f52670ec8cbf048e5fd843ca19d34b3983bff43b2606b94781a72f61d50fd37b8fc371c8e779612702410d7cb97feb6f57370627fb8712972577ee6c06975c4fa8e19d665cc932cbccb54b273913b3baffcca9c4a83bdb2a72da9276544a7961f008fc52d3494729ed7e878bc0ebe2f48b04fbf75fee37d00967ebb7677f8e623f4ae87071debbedb0b9e1e27cb0ded63cc580c71b376ce6cfaf5e8f99697867f6781047f0e12c4e14c19adba3cfe124356a2e97cbd5e2649cc5d5cc81d4572d923321e428f6d36d614ab8a76aa54d7b3a25d9fb411cdbf0ba70d763e6b1cb92275833d79d1599f39ed229490172c63f891154c91314e5f678d0f8008ff7d66a0938e95c4ac02549195ccac8524615654c29a388325e50c60f6598a08c9d324240061732b49061051935200309326064bcc8d821a38631ba8ca1650c2cc690628c29631c314694315030060d43620cd18682866243420c3519e261680631c810030b319810438a1851b838e1eee5248ed177a4e72a2b6f22c9a2912b0fac2d6e04b63045fbc00751e8161b087ed0a475e40df496f44aa03b78bb09e283b4224bd9962cb9aa305ba166e335a314a2f11a29f3c196bc7520c827b430591807e9b979954061982c2e6c61e7adb555f4daf2aa7deeb66e3434dd8f42dc52a5f08151f845b6edaf77420e0ccb966cd1d84c16f75e23faed7d4c1694feedb9168a785007a569a854ed96953d2ad58c08000000e314000020100a06042281403824590441fc14800b7b924876641b8ac324076214868c310418641010002030202433e32000cead6c42f16ed4483fccba7c7a3e493f6ce53534830bc0e5fe967ca2aa24717fff36e6895433c0f5ede8f6f41cda1c88b49c25bb1e08882a05df2bba985d088442960a9173e1b58547b2969f1b270ea80af5511983ddd132edfac2b2c0a4d1d5d42e16524251ed9ef459024dbb52f4254d01b1812391608a43032c7e4e070067516a13acb569d7c77d102338ed5d7bb3932617563031b155aa8b90fba5fc5163237745c229d2e4d16c95f20cddd64b00cf98a5f21a5a2db011a7e6edc357474a9fa22f1fadd3b9af6d1fc8ce47c81fb7ae284afadca7b77ee1e765e73e30117ad505a151eebf0dbae323defd9d6a6598449cc0b53d8f9448d52d6e19e065fa842177161a26ead6e5950ba1fece632647d80a1dd574da86d0ee538867c745411ac6499ca6f0a8dd3a72df59c809f86cc77ceee7fca219285b6e6a40939b2f9efbc5c6e937aa063ea0f3e3ef3f024b2fee13ca3e19cfaa705f1cffa250cf83cac01e39ffd69e06d20044dcb6dabe4782fe0248b80b56dc348f240ae676992919ba952c8e67b1d298b9454991ba90bf441927f930b04d9df194698d1dba91715c771ce1460a2fae2bc8ce01eae2949552ac13078274ca9926c77546cf40004b710825b02ced8f31a64904beda93394b449554077d895ce1f277c92fe7d75ddcb45571e51c07aa159fe77d9d0b12552ecc80e1adbf82c9a7ba67a5aad6515d9e541f6d3abd02d2cf28158f26724456841a17c8b13065ebe95de1607ea07c82f76d6f48f14b41b642ddf51995f9349524d83553308ef216b2797b076a57b9b6f46ade4e3f407a1edcedb3af457730a451e9e14eecc05b148280a59b1f088d5d6c62ab36ba1b06ca59a037fba1be954ea8c272e7527757bff7af2908be993160f4731aa4ec9c6742c77e247f0623df59f01a566420c20f8c5b79214d6ed9ed1836b837afea8ba0cbebf95483cb3024b1c1b73b23ac97361042d2980f2610a1d577006053503beef82092e8ed5c345c4111ece2f11cc781bf43f0cf74a652aafc347bd589af0c1387096d75f582e37f38cf04fc380925a1af293f534af2fc1db4cc03cb7821b1b4a223b8ce698ad1ca2e768f673a33eca7efa2383459b8426b3b2cd8cd5a94154fa466d2d02783785d7701719bdc63184c0c2e72b11c32edc5ca997fe3a566fc298136e25c82f184dda19511f81e83704c25657e866144c81b9d5d6a297d82e177974ea95b360166788661effa68faed9d6587242d75cf96e31476ef4139e2750dcbca6fcedb40902298982af692fd77f3dd313b63ddb96285a2ed8b71c8158b607ef4e3d0fdb5fc27ccbac90d16f0744c2df7a4c7f976b029d4454f01fdf3204a6b376b94a3baaee18db8c1f188420ed7e54916bc76813d9b1dc77012b6080f8cafda3e7e45c0d6d71d7b2b9ae90605326d9802cfe55edd2a8a5eee00d3d3a0fe0e14840fbdefb101a54fc461c3e7b9c8b6edd2e4eab9ce1bbd6b1a67e99af0c87af077dbaeb02922dca5fc39825143b6481d51a2f20407b7c8105f9eb1fe92da1600bc37e0b8079d6d40362a416bf331a32f3e7fbacbafd3855e365da92316e2662962ac334772dc6081edaeb5cff4d6da5474996a5c935268cbd50f7f2ad376399cafaa9528285ed7ec6736e235ce2e1ddeb66edfab818e01f291fd03778a7c7fa7b8272dd17d26ab38d7e01ca4e7d83e914ef1d7eba1981daa23ab50096b38b6028c4bc604e3252aa8bb0d44af1ca9d6b632fb1dd3c73e826c3ed14467e83bd134c224ce8ac0532a0d8bc339e8d31e1ec6d1464ae52bc0a57d27c9201999ac607e0416df148c8d7d593909246e352d55638458e87ca1bbc1947205a8cb02a9000fb108602586766ee3dbe848ed0cea06c0c982a05c23708b40a519dfa29c60e73373f5aecc9a1dee0e46a0fe7d95820057947bbb73af9924edc53d5c9f3a98ec60c4382b005117991a0465a5017ef4cb369c0afa5361eca0ae6dd501010f2ebf2ede9658c6a3171cfe95b6231e8dd030438b4b8012ddbf3e3f5503335996180a40f346e969f1104781d3a1e7e9f3933cbaa0b802f0171b5390df21ceda579c3b5787b34e283786ccc49d567b39adf14110311d8c2b191f6c6a8d9bf378b35d61119def1918ff01205dd558abb65d26f4838c8360d279726065e88b48232eceafc3e2089aa2cb55e59f74dc83f6ac5b11043cf18ed1f9c2d4e27c833c8687ad97bdbefcf64202a75ade9c18d163360d742a844cc498ae1ff2cd90bbbea03d9975b41251c2bd470b009e77463d343f12a1902f3b1af353a5ad4844efdb2a478acaaf7aaca703275c1d6a2816425ca549414a4d123704ffa6b18dde2b3ab7a264a0eb3c5d5cef55b90216a00e8770a2f490a40c28ef067db6a8af37a96a041f54baacec143b37625f4cacd9dbb8fadcec30c72460da842da78462ac15db5342321aab9db2470f7036340aff628862c364c597cba8fb8396014d68c9e659822439ff96b286b19a1b2041ecd96077c79777d4d6eb836ade7e75b1ed279fd1b806934e03ff02ec88998e032b4d3166b704b5f532bbf57e7b3bae0649355edc30436526b4a3a144da64971bd8eee50055169b7cf468a5aa2607261f22c6ef20f69723cd88ab1091d23344e2be847b11dc6df7763aaa0958ba42b7d86a4f9b1a460835120363af374d0a8a7818e06ffb5c387faa3a4a5d139565a1a38fd85c491fa7f1aeefdf812a53f389324ca451b7bf04c4e462af0969d3a4635c38002d77ccef658209fd6190979013a54985337eeb84fbade95407f128ab10cea73d4df2eab1d7eb978f7c795b4c1b57613f3489c78421101ef0458213fe1701bb2c6ad060cf34858a5c2632001863b9b4af124131f4d228b282985253adde8add60b24b4df7d60400161d0a0f6f3bdad8b72f6c7c522945e152e1af9a3619c1b432dc52c40647f136796da2ce490ef7c7658077bc8b88a8f6fbb8a4e496c0a62cc4140c7c2708f725506f29005f9320d2a32e50e2bf2cb88241c454c2c0b9f03f9fd555f7aa9f2b570ae126e05c02e6e4f60ff24fb3dc7cedfeae7f816b1f5f2ce01b34138f27f69bdad9a6bc94ae8038ba07f4e6c01a00ae0591e35914e1df85b1904f3ce46022ab530539b4f143c57671b4acc332ad1b60da2f42496f8b594d7d8fbef551048104f59939506da96bda66a59195495fadb750d46b53aa5dc8eb70d42b9c8a52beb3d0c8469aa23f59a9893fbb233dbd5ef9ac1f4f7eb062e54d2a6ae99709e1dc3356dbdde2d89283bb927508f920f770e441eefa3e1989779e493ad0264224857ec47a724660d719eb904285a1f8e12e478dc0ba1cbf24ad7ee7488cfedb836485642655b2f74e4d6a070cf05e99a1528f444238e824ad050da4408bea667a12b9c0b903b235aed970933898c03f2a100de4e72a58529dbfc94779c63f76a034a5a8b59af5987cf3f326de45dce3a8caf7eef6029d8d5bb19872504a2ae564db75edb1761391409c36a739b2765b30de2c5ce9046c8405c5074918909957cb68b7c26dab90e1a5e0b8b6d7843fc150e45aa732897d32d4c3ee8c778119ad9845967ac4eed38a699eee953822b02e4b2bb57e3b06bcedc300ee02f2f428c7b5e03b8f9c776249fe5f4dc5c0c4ec6fd34c40252cead7af61c41691f4d327a795450be10b3f2a2494e9db2d0910afd3434df258e9515ea0e247dcd6c694780dff5db9ce49912b3b67db7f8bc67c8e0141e229e2b174405f041beaf91b01d917e5c872b8643f3b07c281f401c73e1238251326db018cb2ce6297043032a7a4d38aadf43871650276b91d72e91e13386957e93eeaeb2c72cf43ae4f2c56f2741bd88323513693a3dd4e02dfe2fb4d16439cb224051bd5d48384f4298d2b52b2cc45ce5df57ac4d39231965c4b9591c5a55e23718171ce408899a8459e74fc2ce9b7fcee32815a58c49f0185665ae406583ef9e16f2ac44f6d56b2d16b8d4e435fb781f04d7f803fe2f981068148bae706f918a8851e2d27027b81a8d68969e7a69640048c725cf7c4c0fd4990ae837c459319a8a8ef8f3ad68f427c36fa52d3973c0e4fcfb56ee68ee179caa44f9bb74d02bb78b356f310317196fca6b4a877b40ac92ef27a310def97876b85e74f3fac633a67be5325a2e5bcc13f6c3118dcf61f0542ea3255b90f0959a93b118a75e864eaf12c8ad0a5609c572743cc77945d29f6f9d0210e895c533f97898acaf7568212406b9e9e5f370ee8fe0b6fa029390257200168761697ed2563fe298d1f8471da164d7dc3cd5f935746e838229be42c5443718c7ff7d288f0dfe1c8f4fb606ed68f13e2b031be8f6afbdabf32910de6d247250a5d9ed1f0155d5dbc91d2a87b6bb380e4c9891370ef14d2402970b81c793f2157ec692913ed9e832bfa772aa51165f64bf227b6c791ab7ed341bf55aa8ba027a70888430717419a5edbadd0419fcefaa29cc8971b57b4df9d1d9263d55e1f4dd06f88bcf963419915153bd7903d9b845eb6173aa780e5912b24d99a21a96d2b2bf614ba95f5aec2406971406c6f0c213becff4ce0be474843bde131107baab1f44d6693a1089b100832f7e57cc2937da6896e41ecf0e94468195d38745d86579a2f3bdbe734baa9db1863d0b35107fd1cdef273c17b5486b8bb0d6d24c03fce1116d7cf63f80b03c01969ecc6825398e5f4c38c881e287fe8f928132b44451e279908af168a6467df4c19598246e0c5660591dd26f5331df688fdce41256bc46d7ec52d274ca97584d6fd542314b69098b09c6f4c5f70e5480bcc80b50b29f21274b52d80f05238d2b8f13c2aa8117b4b36b6bd6cfaafbe7fcb9fb7d62e96512090d3977264f37c4dfa3250285dcaa998533f1ca8b6523d2943e40a698db5ecbc2d816326587c2e31f2c4ced14c995834e2a80883ee496000b758b8823152863e298ec199c10ada512ebef758d92c26360a31e9afd28b3034d1c2d04fa52421339f452005d0b0a78f56dd59873221a050877c7a04b4582d9276946856ed43a0f2341bcd2c50f22961dbe1219040bf742949d2f29744c397589d805f35ce8cb4cb3994bd8ca48da4f5e2942d0543e0a9a64c2e09327c6759fe90efec7f7d8c7959c810e8d5eaf1232ab5599d8cda7c3c6927b0504bd2c1dbe016af84ae9fef3c3404c0370d55e778dbb9e2830283e71d896fad2d2c0b2766b933ae9093c51dfc29959489c812750262435c776bb65b4436ce40635427bd2126706be004f5d00f3e72bedbe0472afe2597872b4a7bfd300365d1e6c4c6aa631b193073a36490b4d482760c7267f437f8c575b31414c70920d01d3cb8965253ed70a60a6551b5154648acd2cc68afc5f0912c132e24301b899fd6c12fe5e1c9519055724f65274f03340b6f1660fb03b6bc810b1a9a56b3bca67c7b996ad33c164b171626c29c77410a4009f13e5190ac1035ffdbb6d5c7531d5694b39fe2f7e5d24eacbc1817cb2db6e55ce8e53fb45d5511ae595cd529c8376481b6173f5851c4796e7459b8ba5fbfcb07226585aab97aa4008da643c8f07fbad952448dfaba55ea474d529716c419b62cdb4556381460eb0982dbcf3b3b194191c140848e32b681c201dbe1d1dc681712d4c1684ee8da7f1c05b5c3b7e92f860f11ed7ddf196acddd13e203d8d7befd7b0b819fd7f664f60409488b007def5aa1db60b962c799f75567a5ac3aff01a6fa9008b6cc807c244b493ffcf68b90e1fe88464594bc88fc44479a91421c2748a493e94b3c6fbfd6d80bbb22e87284aea1799d83fa019b00787b4010a49e031b1eac152806b4cbb9a9991585302f4afce0d1d811d2abc735d456a2749570876ff26999e3b5008f0ec183ac0a419573f4de4321dcd419a1a4c86e5ca497a67044a95ca7d66df782cfdecdf0d18006c8fbab7ce5080e01fb7be97ea1e0fe97c339ff5fea28cda4e07b1ce209dc896ef66e5c77fb2917811d2ca9932a2a85d869a865adf3f8d8f7fd3e2f2c2a0c657813cf9bd17ec1dffa0752750e109a2744dbddba139c833d328e785f276aa84292f99305169fd5819ec8de6f4eec4a1eba9df3cd36d87165d69bdeef867df27d7097c548751807a81d57b9ecbfb86edcc015f4ad868c216ad786348f43d7efee7f7a7166b52b3a82fff05b3ac11c2ee327ebbd1c985759eed65b9f25c564d85d7a63e520c1922be286a953c555dabf8af5210f3b9d8e80c4a1b6b231f4b6cd124824adca3c29bee9b8fe9701449409b492bb5f21f16031841b8b3400f3eed98a46c806b3d26719d9b40c5e02cf88712cedecdad3f2f71be2ba21ac42ef4d3990f45f9afd880f963f9760f9f9e6c5173199053544340fb4e38a943cdb980f94535ff627d0496c88c5bc06ae27b3abea2486401e8c258aee6f36eca67f841f8e21a7f1c5f18601ea31b0937ebe3bb4c19bceb49db1b7b708493a31a8ad408d30b2e612036049f4dead30fb91a7934ecea368d1a1fc4728114ade7b4ab3088bbc5b2bd9df3c3246ea5f28bf05cd8ace1838582f2e5b27412d2753ad7de097f0adee22d3e0679a563d1cab8ab06958618c80a5ac0cd1243131be9aa1cad9504bb960d33651941e2adf18f6b05e664e5707ffb4b5121c57b395fc14e16133c30ef2296f07d4d8b6a1678f410ff8f61e3db11b2b667ef6b9fb0ce47dd07e0271dfd81b81e9f3f73190fbc04fdf6546f2b7cfd88740efcbfba47743a8463d339d7ff8c4de07ce7fb39d28f36b1fb49f40dc37f64660fafcf673744ce8850a2a09c6ee09811c069416f1d91896cb19d90e2a3f52d8f1a28e67ed2b08779fa7656a52d3c5e9f9420d9b13561bd6a31261ab752121f9bc028526011a10661890c864afb33fcdd845fc1626240459b4575aca4bd3a770e80892f4416c041b3a221b90a6586cd770b9a886fa5bbad6ed6637c59d0e0a557916de1285e6af394410f360b4d9163006efc8216047b0af5e9f292a91e2afef3e882e9b93a03c1adbefcbbe65d98227f827eaa67d158527fe601c6eae3b26e61fc95f21cdc2af01d8658c546a4453c6332bba08d21b51275e6515baa4d73ddc05827cbcd07a3fedee127ad60a28b210025cc73037ac80128353c1ac48c39818104b2fc562322e26bca0effb02e41e0ac41f194daa3b9ad2b22dc0642429031a9209a22dca886df7cf091b04ef08c916916de73af24c6c3e588467542acc046063f54d290199f3cd2e88b54aac6931be78ba9546a859bafcac184121e6c60e4342de1414defb325f8bed26122cc4b1caa5d9fe35b40e0980a6fe5389a070101e5c9d68ab025330a821f0aa03ea4d8de5d6fee24565f0bd8fbec52b255ed8eb4214fb5b140670062bb18335936157208277d75458d1e3749f893a325aff79774920fe8ca3c0207d4cfc91e8bf22c5a20e25fc22a53b11040cad58290d7f14b852b778e79f5378cdc9e1d132bf8608f444972f5c26f5b1883af6c2a8357b0e2c57ccfdb403058bbd6154dfc30dd8328185c458574f9bbb60972a164895ecebbf1476c82e90b87a5c2b129d48d79b108548e26cea3b5e0c33db173c22e1e781a73302d00fd831e0bd180653a60f4161797a91935d8118a884d25976b250bf3b08c47a32b03528476575bcb6867cc08f30c91ae3e5b02c84d04613a1b05c88e1c854d70995201540b5bda9c619407b91c2118a6e0af1652b705119d56ab6c301a2752b4e91227e83b8056a9ea06fea4c32d77dd7ad4cf87a59084ed4a6b8533121f26084907eff408b9e575d04a161201d7813493bdae3e221ff590ab8a708bc1826ebfeb0b7511aa132c13817a6e9a62cd485ab00cb10eb2e438b68c9778e03257e4a30acfdad52f026f295c2c9f64cb2497e9763de03d04239605770a45f8690212f1f03f1bd0bf15aed428ae602e1a3195f029326296bac4e8dad7f904b9408f2337d0d658931e40fe191ab122239b0680080197fea386a4e1a63e244ca3cad02a1cf6c732c0f1ad31de60c8100b0a9159a1d82cb07acb3392586c85dabe7fd4f7369382b3b212a23853bd816a9b763eedf795d11d1a45324fa583120c8a62b8bc10a66e8c93df80098dce55533067b825f9b295c268a743f0356d51bde7d76928f05a86fc77d5be7a0a9e0b2a46a368f90e0e308dfbf51df813b9ae38488b13f11e329365ed61ab76cd7f8a6694679f24bc7377aaf257bfa673ea456ae11a4727b805cf99bcc54291193d700f89f32b8cdbc40039e001891fe5bc5a0dc1481908c960eca715cd9e0298baeb36d1604258ed2d1937878af1149a941349930bdb6d2c88a71450caca91e0c404688080480661e16245ccf3521a546c850b6a0172c0133c035461472e166089a339e122bec1ff44b0ee689ffebcbf6ef7c3a586e2add108704d8f9743f4a85f8ea940bb5c55989b590b831a682a312dee8326ecfedccb62ab0a9a20b277613a68e154e5e8a8e01d40001d10e909ea3a0672560802e10095d2cb2dcab58fae0fbe83516e12443b31f584cfeb1991e5b2e94e4cc97c9598cbfe9f93cb5491a0fbc63682c888ba14b5a2a45dc3110c13a895b0604dc30c3463afc88f5cb3a86bec5c008696ca47e2c12541dfac5fa3a3170e99bcc0df8a503a865f17803d61aab4549e8e626570ba253a0b93af1d1da2b84e102758d744608848afec8d895da02eb60f794940b33b692b8032838cfc1e9a754f1130f371da8efd7f5eaaed79f9953004c0445d137d09cf4112743047a36a084a4fc3995fbfc749f232aac7cfb623c7e7c427e2e50c2bc7a13e65e9ee9b7917e62a8f41cba3fe7da79572543769c844e4d60c586ad4351648fbd7b48b0d35c88202aecd481ccbec35684a78efcc3fc38f7460cf2ef016763ff6a208b1621338f7072a3c995cad2d171c7580ecba3b88b5359f0c0686b902a2f06507028d5534e67439e38743fd109aefb14b32c49118683a89bf610f87a51e6f445c7a6163329cce629d30dc363b58cc294e864f897c28e05f673c386a60fa563d74694742fc0a8833d9b3e2cdc8b0cabf0b3ee252a7d851fc406e04a46b88f19361299a6141343d4ea7116c6f1512d15c9ae51f1fe417ac408e44ae6b740df279b5632af88c13f70eb02c6a7f83e0c146181b8a85448c9999dd7988b04a65d3ab849e2381d003e71d03ff1fe2687bdb8e0e032e61b8a8840e00041add36b1a170c06e84442dbac8e8bfd4d960c643c96a8364262c157a042b7d372779d32e769b1ee9e43eecfff029b120f2c92dd46c800ab412b8c7954574cf85fd817ed2f2b5b888f03aa6ad7663fe4ee88b4c0ea805b9e51d1837ac91c4693ba54f9e4835012bc7b88db1e28d5a0b164abc014e60463c1a22010b13d90903b546d51c0f018d0e8f4c14612b7217b3a69f6ad7a3d1b72088ed102849834fd116572028fcae68b66392cc7b3547d8bf6600d1748b2fde0242b871ccac25227ab6568d819000325e229038b52ba06ad6f1eb8e1ef83a3912742c4592fe88e231c62fb26cc06c8e1375c4ca14cdd1f9a3560209de4850bf6ac3b56410957f72ec049dd29b2e77f4553146c186e0d7cec0c1bea5288a32e3f0d7985bd78ec63f978c7fb61b74c80f86a0da270e90c9b7dd0f5872017afdc52e696bdc0da357809dadcf7777593689fe405688bbc252d38ca39a0e9213c8948a882acc576fc2fa2384e7d8abe05e116542c42e93bcd0d2411043af8791aee096eaa6793bbfd0492a12d971be9972c3ddc443e2e884da4ed8aad69583953f65aabb7b693115671e783c855eddda4e57c32e49f5acdc80ac21cc44859a13707e7987e8776fca041ac0d1ffd701fd51e0b64f60aa48874cc808a5f65d80e2ca201266de9e1ff23657041aff27921b7a8fe2a4e5f1160ee45adc602dcef8f9f7cef5a65b1ecbb25b67ed42dd3bcf1868e6a7e71b80de4485ceb2c09e5fb689a5f7d37296935a289b31ca4ff4641a7b240891121018da963a8b551224bb7f8bbeec7e90cb5a92ac1eacb11ba26f0fd7a2d5bb00054d7ddda14ef7acaae04e977437ea2aa33cbf53d872cd3ac2ef76a91d688d435acecb2772a46797291153a563d963652f7b6c303f8936c02b030d67bdeb7840afaf901da6669d03cc98c0bb62a329236236fb92192f50547396923fd0c56ad6cdfe6d475ba39bb9f09705aea4f70a8f6b903a1651846f8edd1ed6cc788ed1124c7c8d56bca7a311e58f61a6358d531f8679e62a8beef6da9517a81178efc26754b5fe5d896f74eeee66297a65de6a9c11774746e6ca6541f06510616c640d94b9a9288dbb15dbb70655eba30651a08f2ed696f8de5609f2d95518ff7c6daec0dd0f856cb748490e0c72636f5fa21e6ec41c6703fddce9e90f600dd03c545f8cb8f3f0abe8678521ba04fd19281db6e9730a8a407259e90e889a175a47c6750226d10ee6ee4a9808a8255c1bacda0fd1b195efea0ddc194791da1f5fac2218791bb9af679b9e5a3ba3a006293516a7c1d01ff88aa1104b4ec521e8f12228e578d769f0b51866148608291198f5c7ee16f374a259224b236fef8a4cae225af63b6c8a06e7a913e0dbbbd92caab29cee450f228c18757545f53ad3a7922a1c9df74adaea68c9d43a699f0dbf193cc0e43f767932ca17a3101bb3043ca3fde0d5b1de5fdeef8d926838e183b7b07ba3313cd727372f0e73d7c34525e34dca1421945584f0792e1bce15b95103c1a9eef15832c11eb75141ffa9bc83e75f5f60aa9819d60327e889df0083a027e7368340e3ee599c517370b496ad75e76af24b32e2794bc71b0ad155ba70598ba75242723df83b9db97e667509f2ab779ef926e41696c1ba8434a214d5942998e14b97a97bb598d20ca1ce3f3ab8050b1c6af76e159cc47be0a0b3957edd9e905b1735f76a5443c37a34447951a12af37afe95dc6f531883dc50e5c25f093ddec713aea9588a4647126f2ec83aefdd8f4162542311d5fe1f75100d2f355aba1a0a26f9012cdc31f51ebcc2b4ecce9b4567fe9cb1a699c6bcfb0498e7ea1f008bac3f0d04090800721c991be30faefc49fbc896df258e6e6e64de9c347d61871ceaba6b2be0be9dd0adcddaf9545fd5fcee2f7b39e88de66d3477459b55d92837f87f26170533ff9b2419b76640371d25fc5dd90a883f75aedde5d265d611078c9acb5c0a134d93197d402752684e3559209d4aa308b9d8a9624d64e0725523635243892d242d172d2f65a22dce88fafbb3ae65a67fa031ec28071595f7da0e4da7378530eee320a9ef09eaca89449f3a38d7722c82aef5a5abbac07eac28d73bf6358bca51d99645918fcffae26ebe8ad4dbc62d8c95f18aa1763f97ba257d7dd5de43cb89abd42a548d466ff9b0a4d8e3c40b3e3bf8ce409db63a2f306b5fbeafaedd4eb90e95e8a295921373544a0500fcd509b509c6bc00679d27068c1ea5708384b3c2114fb5a54472201c36c50e755f98f27fed18cd27f0c20c0ae7bbd2eb3405a0483d285eff9d1837e91e42939b98fd234605460b7b6ab581dedabc19567be4771d1d5d7cd73c34793dc44345f20f710ff5e286f65c614c8daf824562b427124538a09757525378f161b1f7edb59e62a78876505482b2232472bb26064823574b4220ccc3348bb5a9af455940f0ebe8a50a3582d8976fba79be65e7768055214fe1f16af88ec3dd5a0de5120849733abdf32224679082197ad746a235b9a08446651f5b6ac6520e7a40a8175e8b1f35ffb6f4532f7f9012f44e7820f17e2d973f60cbbf3c26909f3c974434369064279322de3020719e7a002893868a0d5b3f938a92138c12a2dafaa8d5d5ba8d63fb5b5b6404b6916cd66049c29fa99645a2fd7878fc86595f9a3367f7ff6b3ec362d36f1807b3733567e76db9d789356b7b873104b4d1432fec24fc486dd92a42eb3427613d1a532a515d99a8b338b9ea411a561776b757d2019c9c58a8778310cbb5f2ad3b1f21712c16df44bf12684bfd4ec63ed5d08d24da693ca2b244fe9e887c54fa86537d997dabf905fbaa667e52d447063614948ff5207e4f85d8cd420a262600445acf989a8e1f79028a0a0b9ae3a4b9ccf2e511f77b17a1d509239ca7d0b9ee9532aad5f64128cc4c1bf2177f9d3542920c6339463b66f3a3882bdf0f933526269e2e00623bd7770a908b7c0806b3f90eb875e47b15281198eb6798b5ee2c1b1727edcdd9cd3df78199fd13278f8c17afe9dae762d4d9e6da33105674416365f4067a958ea947d6087d1b8f35400c78d901880cacc930b25ab5339408840e39fd646bec16d665130ad44b4d878c39fdaba958946d882da47eb4bc0785455ff02859e05f97e530bd09858f9b1084f2002fd44c4c6614a8b800b679e9f7b70b8d0d46eed2c0de6f9e9af6044a038cf33e91423a29dcbd32d4c2bb27e220d2c79967c95e55aa243c4297a65ca0497f8495b2c32cfca2c1b965570fed56d24675098465edeaa533850998ef399e839baf0a4bcc2f4d0618684da5ebee1518d48ddcb7a6725c43211db94e0cde76a6a771a1e37317e9ff4bd9d335fbc2b18162b9b0713cb2ac49d3f21d0096b7b734484373c81f97567b6fd99387bd569051e23b5de2bcdde88c60b94b801a91cb971615b09f25116a1d8ffb333cc2ca64bdc68e6acca9392f5aa33227a672bbee7cc4afa679a0300f8b0281cb2d0f7dc8807b9f175ed3b59083ec367245132e1922bb662ec2e43fe587d08a829cfa677e6bf5e77a91d47ce711dac99fe0e9ee778c613307e64a9f676cc04295c3156f78ce3eccc7e066d4cc28e9d28dc6199c1b9eff7d77ad3d7f51e4c77b67b98961f3170651e2033755d41e852af2643c10313993cbcac1726b48f017f47f2f40afc1d3c07f929fab5a4b08d0ff9ab9d6dd0546406e775a9b471fb776647ac7fdee277a2483607f2ed83991eb01e3032247a996df58a5549eb4ee5f904fafcc75e4a9335b2b1e49d8942573b75ee6a897e71cdf53de7bcada2cd374792b94652d9dbf5c9b6aa831734987bc7961a3a45e205534af4c58fdd67f4a7cdb0b782d638ac02b9cdbcc191835ed0a6d2abde0cc95db73fde01737096552f9e761d8d9568d36eec1709c89719c7b1d6c65a007dc42b1cab3be36b2ef0aa4533cbd47a6e420dfbeb714ec8da6e64346ee607ed18338db9c6784dab2a04916f47f42f7f6358a8f8bfe542abeb7664e4dafdc2cf342ecfc80819917bf4c03ac66702bdc7b5974da78008a873fa13d10258c53236a68e86b1887f9f58400b0bc36f659f5320e037a60026d5349d4e8588044a2bff3efc34e63c53df7d4461d4a1324f8f81a495ef3eec26e60943b483fe35fafcaa80ff01ae46733bbf6efe8b5d7bbe502b02cfb02b18ea4d6ca1f4fec8a6beaa1f814741c745be07934f1b57d07e17646a2132dd89b8d9f2c463eee64014b76e0d8424f86e3a54e44369bcec9c269e2610e4d97cf05fc2280f65ed331f8f0fccba8d0ab29f8097aead64976cc1b4ccf2d29aac2f39e0edf9b6cf77bef7c01555bbe12c87471060fde18a67ba75250f210dba6db4fb2729410655c280596ebbf9f9ba3629d7a552e36151acbbb9c4b2608432e4a78399d91497fa1febc137997bd43f85e74c908e7a8a283fe997d5ddd67614fdc1260c37c86fc317c133241e0a4bbbc876e481d4d4ef91b85b47f3da8aea1f297e5bc9d8f3b27f0c7cfc1f684a4d1a47a523b6641bb81dbb32c130f3f0f5a5467b788466b4a7e3288ed19e584d0d1f5bf938edef5006f1d70ca0a357cd91c51afb24762f2e64302049a400cf80a8eaadefb2ee1cb98f20dc481ebd584777018f40e9df966ddbb92320acd1653d36d7f7e6955db8e1c3df5267096d4b293c59f003b8f1215a5b5b29daab4de98bdcf358c1648a5bc6d3cde4753d600e3f3216274e3f013eb20198b45c5c910bc701c371fd3d60f1fc44193f1d5cf52b3066d0086411ef0578d8e7aecc3508c100864c99a2fbe4d495cfc9d47f317bfed8acb3496824df17320240e6874824406843fea8d94d2655a3bb41a61f0dacb89ca6156fd0a3cc80351a7f9c59d54c6d48ac8a3302ae25ef0940c7c711cce655fc639760773568b36efbe88d67ae4d0facbfc395e9a88fe9c31ce82d64e1efd2222aa6b187e9a38f404810ec464588ffdd646271794a1af206a287e9c3252bd308d97736a67e18b713423362ff6537f65a073d5f776e1112ca2f6f8f002d9d0e2184e263bceceae300790a2b1b2e0b4e2f2d6f61c46a15beaf3696b9fd0ba106e7ab0b9a98149f9ea744c570849b2180a666580bd8ad4fa4844167fc684e09550c105bec03426ffb9b0a9d33b07743b811646000654cd38e4103feab28f3cdafc7cd847930c8e7998ef336aa3f9e08f68f73fad34feae484ce3fb367feae9ea2dfc0a3041f847afbd1c61c66013f1dca6537e867fc4a1c1087d420eb0343e60ebcc1da3aac55458ec53cee78be27ccc5d5c3f9003750f8601fd2e764cf495d8df56d8cf465f2ab2defd47c5feef7629fb38d15aed4e0ac3d34390c70a30e74ed5a6fa4bacc8e4a2427f430ae3c731979b9164b8472fd3321ffdbd906b068417005a3282473e7b43b32b3fffed1dcb8fbff9ebe51e25040ebc4357caf18d1f2fd899d5f768952f9de82626624a81664c56d6970dc884aecd83863fc05865d36c4316b2ad4d4bcc6e2a7ee271dcf8d68f9493ed3e1c13b2eb29547215f50942f5d2668900cd866ce9eb229a2dbee5b1aec29f8b5fff406fac1b195b8c2f25e35c666bdcc50922ccbf9001259f1e1fcabdae0941c55c0fb4995a999d0995a961f73a10522c4d8db7fb2ca8a49a8da6063d3d889384989ac66278c99ea01357b44230138bc8c5d31510312ead4c631981622d3c53f2e9ab64940677495b8f4e5db7d62922dc8f189f67b9839ea9d28f071fd33142b598e6ed812f58881b6e8eeff59a496554809551445072ee453a5f6e8e04a8182ad0690cf62077d2c3652870ecfa1f213b8f3b668286249ae77a7c9b8351a1d02778c48c466ec5d09dfdd38355e5a6a07c873b7138f5d6aacd1cc38c0dd240b399d64f44f0d868b879ba407a28854cfea93f57ea08e6b7952fab05b864670649bbb5a5fd868603d1f883adc5ed89bf9a1a5d1ea7f2f29944606eadd62e9b48da1b35f1e23a200ea6e10a0574a8877c31f63ef16d6e8d124089f22916fac07c86238c6dae5fc7939d29120f454b4d04438d609d6b7234fd48bda7b7c10ce6884430f714ece82f6c52adab2edf0fd05fbd61ca2de50809f1e45bb9d2f89a01b2ef2a19d564e9ce8d8240ad4ac11cfd8b3ccfa3be37f953f14c27beb41e5f1338d4af9793143bfd1ea6bfd6a198a999756685dc354dd6ba0081f04b5987d262353156f153961d6f75e83c26d5cdab886d1b37b7dcf8507bff003b27514af0a45174329b80dcfed9bec63eff5daac47fad3ad88e757fa7cadced33fc41a0013454a8a865a8ee15a740e2919692d1651bd16fdf3a1f81ec0bcf75fffaa2010bdb4d3ab5670e77ab3f704a1667386eac4e653e9f299882f64b655e2283254434fcf1deb858726889679cbeddee5639976074d3de8b0586f22ee80ce218122bf0cbbdf5c4175d1b47418bf57ded9144bdc04cccfcfb6718e30075c53ac6fcf3ce923e686116f363be0d0241a458f9530cda3c5de4117ae5db666906c32c53db34e4261961e143040564fc838a6b27914ae94ec0d0523b0e99b018cd6b4632fbff171d297df93145c4e8415dc5fc700aad7d85466d6fdbe27d819f8b799467e45786ae393a3aa151cd9f9ce672b689cd24ddc53c42b12401d2b2505ff0786a28a6a7f80d434f6b6d6313e29b001a47810fdcdff63b1bd8123deed4873e42fa7028945047f71fdbfa71c67d3e6d346abeb77cd1865c0f119125e0380111832a23a7a4039abb040a16af573896ec10d5ebf4904e707b40c2959e739639c0ec31ea8b8edf82f2342641b26be051e36ea5133280e6241b98c88ad341a09cea412dc11f0378cc86609460a8615c754144e74263c17375d80893f6c60f3c730cce243c2dced603690e2b6be3ab241b9a414e45ac35be40eb1169220c39ba56bd1fc293ce9793837000d9010dbc0257e3096e97bea44de7b1e2b94b735c525e41f77ac903ca91727c36f1ab92e3f1e73a4b94341194a0077f0c0e756b1a43f82d1270261f9a2f2bf2615886247b41b98cdf36c9722893fa4c4763dd0279cf8f31d34faf1ea19a97b477d0ec8cdee0387a42568206f29fc5a8866c01df92060b32fe4fc7adad6af7045942f310101b12d5eb82a2faad38470b8897fc9aa5cabc897bf735f0c9c17610bc9160ee00deb422165c3be8dbcbe7a9fb9dd27622b678e24d4bde781a8e52cf5a40e49bf3f20e50388fa9c6a65f1cd29f9b65b2a29169409791c945ed811440b0425de84145511a1c7447b5d065cc44a2f590060af32c6732f581b1246e2ae037a1a13c099d82997f755dd628711accec566514776be4597201bfa3ca04b5f36cac3fe91967b429e0b1f253766a07b1385f8a9e74ae679e345d0ff1c47e093473f57f282f1ff051701ca8520c3d34a2489e8deae00f5cdd511bd7b8b2aee4ed828ee7218ccbe5136d4c568aa4c949b1eecc31b30dabb150a49199fc60fba17169b808551e1f54cd3b948b1c502f2be9db82fe371998e3e9003a9a602da8939ef1edbd5c740f4ed47f8fcbbf52143122cb220f239c2f3cc1b820bf049cb71b5dac5e459b048573d40c9185915de889b3b4817aa2c2ff3606667e8b355c2a45bceb887da7ad2ef46260967e9f1a9e81cf2c016572f10d314c1197c8b70f561620464c43d1a38b90d10e166daa7bbadd617df34eab78ada73b72932d2ceff7ef75bf388d9b3e6f36206af50dce8aafefd6602c504afaf1f40921eb7a25eee36e938d7681af39bf002fe8b97802cef261995046cca30709ffd80cb574f7991ad479a8f0dc17e53183896895a1fbd0be782806a4e8bada8dc8f4bbfff6407ea57cf3b2460f467511f6993e898652c8469a77823a0657fe06af8a9a471fb33674b08748f9bbe0e33846ba24819e8313faab70bb783a8629f5af44e0964137108bb39a3602e2e42cc47181037fd9b213b7dde36be0786f9ea7863b50dd5d259a9748ff324471fc123546d8f8dddea442eca72b584ef8a06a192c0b15b25dae9c8dfc7f060c50727d5b270b28ad42ac6a03e2fbe8e8472608856726a0529c32a4e5477be2af6e95e74cb0447488236522b08599547c6061a452fc6c4b1e9ab5095f573f437fd4273fa2cd8ff216c39a35ebb7f32c8cfa44fb97e8542706ed3f16f6eabcc1c542fa7dcdb570eb492d5dac792acd691c84e7f86557fabf14b48481bfc629cd9bc849c01be345592f4c160808750f2fd03ff48c0cb4755bf21677fa5ac85c190e57326182fb53053d659a1d33f437bcb9b0a9037c5c480349e1064c7c0a524e80663418ce4e32ad95a834ea6db3014dfd71730ba3cf455657fd36e55f542f5ccdec80e30abda91ddea1d1a2c46c26a75213e4f9ceee6e2f471d8db879d23c06d34dbf97442c0a468380aa928b4938748029b01688371fad70c8d4313752c0bb451ac157044d4558a5cb6995111f16936ea529a343d50db34c65accb4c53a046c5533de89c164cd0c3178edbb35a90b9af2d60e8a313601e5ebdcb4b80f2718ae035873989a88c0c3ede3b2a4f3d999f85f73d3a07dc7bcba6cac4c022168b23d69ea63920b7b81038c15d0f2d0557fcfa09815b72da8811a45c9c6df6511c6592d3ed5f8d792335f8972955c16c3969a098f152c1543780430892eebf126274946d69b699e5a207bfdc956a306d208dfd9bcaa600b71c9a708eee84d083070a6a8b317e211d7262e048d3cddaac812291e1a147c1d94476103f54cb1de7591f43b9c3aa483eae5d8ef40eb6323365bfbb471e51d2257c20f3eddae7249ed2c0a1064aa0840ba7c0d3679f30e9a750c658d0bcbf89cccb99a1e26a3efa877a505e3fcfd2f7aaed726e0c9ea3ec9bea44bd4cdf77a941ac18147bf12eb8244c411daf9977d15b51c3fcd3da0aed2567a28f1a1e3de198e27ab09643c985e39bed9c099e21487d12e142d42779d34513b9aa910fcc53560a440fb540cdd954a9d14d9b90b88c78f3015b377f27991e6d62bc512acdea4c4f648f6b42266a071e96d5cfa120ad8e6c8df140636b36cc4fa4dce5bb0442f70025c9039c95fffff7eeb80f43791af82aa306f6f0746ba493a92a4d70cb93f1f5f0859b944c25e9c08301c08b0ad143019530ef0488c18b81c6a48df5f0e8ed4979a79748409d521996b0de8d57192e1a848ecfb22d490d4137af393b527497797c91d4f1bc7571aefa3d8e5b5d93b8d670fe4fa8c0f47e9c03d9e20c849bf0a83730ac6bc3cd7a1458bbd367deea3b2eba2047bea7ea3f33a8061ed61cfed9cbab87b0a9b6454ca5a11cb81552571326014d8f269f32dffcfd93ab478d2fa886195b53db9e06d37874a6678e2bd5ad2cc57d21d72fd1effe356c48a084dd519178a49328f36bcc2650cd1c9e81311e0a38d3b822403896a42ab7b6bc4a9cc76d709b249ec91862625828c166c1db249ef2cf7a40fd0ae8e72245499b660138335b9d46356cc0635d4a5395405155c6042ff5ad12266c9cc31766a03bec7a4c0bbc623c202f99b96560614c03db057afb32ca6463c3a7856bf0ac711ee6f876228d0a49f40cd7e48b01649147ae80856a427290dd27a8a25ee1580ae184582b10dbeb83a18b7b6dced4e68c2afdbef7553effada2d44d9f198ebd0a1219574e47cd6da2d96c20ae52e1c615a5df0e5a73466e5eb94a7be3a27e518be9295d2ac0afa6e28c95cb8610378e6e20d1bc033976ed0009eb970030de0cce51b6c00672edf50032873796f30d600ce9c047a4fad7002ed20f8512bc1a2bc40f0fb10c720f003659ec07c12d5827f86fc72bd07bec66d1b36f2f8ebc876bfa9ad44db5f9492f803c454590a55e128c75f3e46ceed186b8e49f9366697c11220b7fc515bd9ad696a008626441fcaa6bc36556b2002852e132edbc041a029a708fa525cae0351854eab7a12f489de39d949488a1aa2a439c543c7e9d3208929322fe961a1a30ed489538d1fdeca9428b9584ca13ea8400a33dc35b6208dc1d8125668190b4f698dd9885a965037b2b7831638a7d2db6d044ad25f3dad0161d1994174fcd393e97b9831e0e5aad687ab642a9f60c5a225be6de0b1c4883b87ed6fff8647b82c8f1703015a7c4a4b0f82046cb13259f382a1078c1897e0b8b2d33a9290c94be829e66a332cc2e9e60c71ef69b4a34cb29455bc10047aec00f47953654ff87b46157bf48e7f2992e8af564391b7f223599da5f9296eb7d8eb37a58de3cded59f0f066754e511f95494de6a4c5135122e080d9563cd3138d09ec3fd94965a7d397d908fc2b09b1469c7d22f028962c66059ac71387661a574ad8cd6252d6588093ed046057fd53436c4f958e571c209e743e4b0bd354199e6bf30981e6f604e3abf478fd2d787ebfd2365cd9a838b30ade1d55b0d388e98e1eba6b3829d4343a32027fd101bf3d8d81b712b9603c695a258ee4df5ed44a567dba52cd3723d4f0294618bfdfcd32287eaf98e2b0405d32242bb110bd2ad759342c0638ac27f69b2cc3a401822b2a4abe5642ca09b2e9e58e9aec84dcc7c602b8e2d2a1a5969c33d1c9df7676e66da9ba7d8a0bfc0f54411817d830866163516ea1410974ff1b6d58871c235049e4c8f51f0d9204b03554c165540c89df00a84a6c2cc82c2b3687da996a1ceb9106df0ad0f9ccc6e25ac04716feb0b1703781220094684637eb787902c11b424374092855230fc0e485889a1ef782e11d08fb73dfa9b77c2c9a2803bd24caa726da0c75da58186b222529c901443e031865517aab8dc5c90d22ee026a15c827edbcfa1065b5e438697824952f1938627ffbf9a5b20c76cbd287cd27a44f5f9ad2e3570fe8852bcdcc9b64a0419d3f17eae2a9a1a600b27c329a9ad7056f847fc22c3fc3fce8280a49a290131b81ab5f95c39e27884f5e3c332a1e353433262541e15dbb5c3ec9e1cfd02a5fcc1ef2d3e3c35ec5272c3ca229e6e8b4147a358f77648916e05eb617e5174a7afe8a2207370ccf2f41d981a1d20e7e552a02435f009082cc4289b9c3c7b5bdfdfe98919644b9b4133558b5f766c55a0038f44be4a6366859b1933c2ab98049f9382b63c47b3dbb4eb43b37319751702d2e1d43e3999330d29441cee837bd05906418affec2b26554957f2ccadcd1a30d802a1514fbd582b1d4bff07d599801604b751d2e9f97dc7ae51ac0ab2a2796ee65fb25e49e5a11f4b1b5b88347076cf71895be5a5ff20034897f9c58a3a38ac15dca91897ef12c2a513a13dc3809da1485fb9a17f56b0f32b050d3fe90aadb73e6212f84858c834cb1fd365a7508d18e5902adc364863998c05d853f89aad564366b0a24b8bdee99a6b1dedd2ded030ea1699255c2cee428bb38a66d1f5db5fee328f20391e62b4da0820c909f106ca274c11531858448a87ca4a4eb6c3d486a8557864a330c4a48aba1cf1d44815f9281708d0bbcffa4377ab629554bc2006933bd2cd3b569d29591fcc7aa2c62a8f1b0ce416ef02e34eceda0c822a19eb3930ac02491c4d8fa37fe7e4353316df0c4bd827787d121344de1ded8c8899c365fe4b806a2ea94a1a00c58c7dbfeaedfb5472ffb812142d70b8345bcb00574d938506a4c547a218e6e57355680773c0c4331b1f418b48108b3045058c628328ea3c4f12c0e6ce14b8f38b6af8959f8a3607c71191af06ee9f3dbbc1c7c970065c884c4c2efe66cc8e37277219e4ed6d7db092298e3ae8537e82d3831b09f4762c1e22d16b15c330455c87584bdf24fd6ccba00681d406e088d92e4bbbb140f058c648ec3d7cce255a53bd62c035bb2e9d9744ba390cede5c2c7025cb935da2ea086f902c4f1073dc3fdcc9c7ff115c5d6a3edef9efb1c832e958350cc49e69d6c41110c39e9b180937759bc8e4c521de50e941d96f078169a32248d33fcb099aa7f1e64c9c0fa18b7d64f0d1a81eeddc64e17856090d0a9676c9d423cf54f0fb6f06d5b8235a99bc92a66878bcf1f42c1888d384580246c8b696a5732c1e25103bd4fd2fe4b419e573fa41e283b6bd0fc79a5859477f23a3addd90d80c8658dc94f0c1c248b924d02fdd8dc6b7720b6803f7927a572c725b11b6bf2f86c4d6251b0e381f7523af54e6882935569e1128660883e6e820fb37b994ff8908b99cbbd77c73d7f8b3220c69627145ee468a4bdd9870db2206ec945ee623f76a27e65399309d34af36ce556b12006e525e44f275fcb9565526f0c58652b38465f75733dff74a1a9d38890350c0588dde4c07796f4da74ee33d00b4e6e835b87e9dd765a1d561009a8be244df268675b6f5eeb8eddb36f6c55c5b926a9f557bf2db32ee1e4152bceda2556d996410ccfcb2e0b6450ece918879806574f2124316a85950b0dab06be1190f52a484c6b3102ca559973832f012b65f42777849ae6b278013894fc1def07e96de061adc02e77073876a8f868dd56283eaf033056693249e54b175959681324017ca6e65462025bcd2ba1f9cfd1a303af72a6e91e7800aaa08e8b89496b3e44d5ba4094502c4a8af4a6a3dff8b578ecf6a72a4d6ab014398abef9236fbfbe339b676ef1d378581a863003751888a8dc264bc6d5a10c2ae687f7c40a2977f489329d83a7fc2969ebccb5cc99260d49a55d5789d822e81064321d2fbd32249d8cab1daca2680287daec401840fdd3928bb8c1bc662e47cabeabb0b8ef3f3743aad886e25491bc643b7d8cd7cd31747d9032f40aec60c52e636bbb6fabd963e11f34a08b6240fdcc74b208e9c467ffd5f58cfb531ea100bb8d75bf62cff9665b02a3821835bacd4c24684ef28a05b76a9b780eee6d2b7724ff3576e29959abe29778b97ba2ee6bbd6558de49f5b98b7cfc573a129013b303e8a317d42f3d0087023c1194467c74c9403dc4ef0a9fcfd9d17c25ba4fc70b0af24acf9e26beccb6f5e3fa7c90232a5a3d546f91c627a4a52edc7b2a0d4918d4b4c4d67196b6d7ec8aa72593917bd9744c531f45991799bd944c0af6be90d1d3d0bee263ff4f1ce5fbc9d5afa06aca57177ecc9ad67c78b0276402745ecac5c8bdd70d7581a382e4aae4632ab857a03536f0058de13619770b944debdd0a93ace51dea315930c4bc21f1b502b0bb2e0ced37108f8a0a6342fedeb85f216aca0142f52157807399c5b78c11644a5dc3c33bbbb089908c79e709204e16d0d40b85ee1e73f45c343ad1f2b940cad50a8002183956b9b91ab3fa6c9ea1ed7a821c86b31423d52a6d576e6ff57d63563bd64923e4e6b3d6fd07595eb298a0e23aa034fdab31c65304f814962cdb3590168579e831148e32d927605b4c95765d0002c42c710cfd0fcd242bf4095334ee338f4cc7456ba980122ddd5680330ec3e3cc11b6f0589e291ce96dcc5632aa388a9628bb49cd82c9b0821517c85ec57acedb759f5ef0f7142e9a4c97bc100da36611d4777b472794cda54c7027542c9fc3c4c34c1e56f3092ef2fa449e569ae10f36292ccfa4490fd4d901d1aabd9fce026670c968ab539e467c2e5eb8d1a514e7e1853cd1abc698205b8913051263fb7b2948dfb2c78d76ca2a8f39d0426498a8adef2b1f4bc9cd2332a59cff7c54b16600039131ca10e76847dbb13e4477c4b0a8c575912d7e9a0d45e92a6c75e01833ee348f85cc0963346c680b04a2d8f51fd3bd8ace547e9b578cb2bf4af6fa94a1e504b9d61d2f5a8206bb5caa5a365f0ce1d056c0b1e915ca4988c23fa48460ed0a6edce513c8c5f7ec2b9e4a5cd1e612a4e6c60a93f4c5fcb45db8746791c75efdca5c1ce2de5de1b0ed9bd4ca2930978db8bacaf4f82457b181b77da73c318c5e9463532d91dce44edbbe944c67bde5cf088d08be5de360e6ff68c4678a1ea6eb5b6d3c756df81f89f87d635ed3a8d10f391c12147ac42ebc8dbd109165cb8a364e3facc2aea8ca82e0311be9ee08fa918f8472504f614241d71d7d2ad13d6a3fcd15f01d29b6aca5b963f57d0bc270815991c051710b5496d66c334194d6a81d29fd283729bf97d9906d2aff786548cb4b1bdb7685b89c27fed516b4b8c3b36f9b836a9d080cb20681d5ce70831c13ba83c863ec88e894645d6ffb8765ca0065d12b8d9bcc70c55cb390e0298af1f7ebf3a84aafc27cc82974131315dc5d3f450cf9a95d753de33d314ef635c99e9f3a73b6f94ed1e4dd41770723d7b7cbe89b6b44075ea7ab1629886a1f6a088455196797f5ac04ba1f64409b67bf67bc48345a10f02ba1358daf04bcfe2c564417d37f22533a24f8c27f9051b3a73ef074eb44091f07dad21424831f2ee4178fc635ab1089a102f819cc33f1bc0ab2672c947fe4267d4ef542e9a9a488a62e47433fc8ddfca78dd8fed437d27a69568608eaf86ceb143c14b6a96ae9de054958b48122e7cab8453b8864d4d8a897fc4bf6129e9fce1d0e8d5213444143ae079d9436e3f6c9cdb171fb2f8c4499f4eb495199b08e9b0ca5a144674481767e6dcae2c1787e22ab00c2f78872ecf7c0740243d343397278908700d0ad9bcf8242141b4e332c9430522dfa5186f49220ded30f17c99e04fa2295712fb5f46dfe93db1881164fa4e8f576e0adac2191550099acb16dd108254f0076f6882e102aaa8025d485d3267220ae0ee1933133cb92bf0af30dd7f55422b81f9380516918ea5b1cc4908dca173691a8e5f0221d00b2cd45a864491ff5f7a12d18a7dac45d3e786590fb2b8193ce73aab46e9143ed9b1a52edcbee577ebe4a6d268d0190ec3e6f10c31e1b0b5442821d92d012c248b5db9a55dadde1a172d3f5ec70bff1952ac2df45dade219fb71691a9dac3b8ad59a472eec88502c46ed805943d28c0e9a87f491a02b5fa34fe1026cac07b252c379b6afb16832fd1f443ee695517c3c88cd99796c30115dcb14d432835a766cfa35f6ca1066b875cf1aee786fa8e8c9ed79b086490a30089852d0ee3206ea88a3f698226bced4d6895cd84f533b0c7d46405561570582ab8a6118120ffef352e7e2c530d85f431276271de920efa98e80cac72fe6c555057465a1f3db3e23303fa53bb3a3c7e381c05486d831fb18214c72939aef19ed63ae85e5ae824e0052f6f10867650c9e09b851047ab5a40e23764cf767f8d3b9517082260bb88b2a7246d379029487d43143692195c3b3b1609679af7a3ef431fdb04d110731ce2cf0a1af1d3894021752890c3db74dad044ed1125240a8c63eced5a5358324130074a92d2d4abf25c3dcb2892d3f1ec57eb4f8a8ce6cccd9110bea7d299e592249a764a92d60728d75ef60d8c44c0168287e1f2395b0cfab32fbf8d0b1ef8f2d1db654d535e80e633a9a3b6ca2fa93eb666130cc89e89fe78ebbaf541fd34d10693edc69b42da26935e288a69234d4f18496139dd19795dcb3684639e3c91cf25af85cb947f1838784d54d4d3f117262f960b7dd464ae2bd0a543bac463c134477e3f06c87bc5eb9713c78eb08dc16e9263a64e502ac7273c9b17286965e78cf3f6d28bf5ce8a8364e129b5d23838ad314575d1ec36711af2f811175f719ed6df9a215f20d6d18e9fbc0be15ac7162d0b1d00203d25573fb4464d3999bbd0b8f0b161e650cf5fabc1abb64351dca0006581ac3213e1dc8583f6433e1adf688dda584eb670b11a8c3f874b3f53f1847aa050e37cd8f5450594319ada92e515299c8907454de52e991a8fba3865b4f66a40ca388d1ea8e0875c4db96aabb2456778752c9fb87753ffc7d418fc70570e5ad64d7a5d4cc8adf47b23d9a82017a7de16a5c23ee820bc1a5b879dc166d86465600c6c817741859e3c4ca03b6eaafad4c1bb73aa88eaecbd43575b2b845e8062a53a6f4c59db8785ceedd28fb2e12d82961848cb08c0c7380c5343e7d51f15117bb7afaf1d19b7ad93f0533cb77ee3ba6fde8feb250ffe58982ba3648d375987ac94d392bbe5fe3cfa1f56a2b5007cd796ee459ff1f139c9db43712c6be682e677e7f0b189e3a405ce4dd44d09944fedc94a13dedeeb2c7e154af07d80f3fc710d57c0a42b70d14e17d97c7e28305e35ba2cf5f72a935aaf7d38a21230257d886336ee914e84db78dcb0a2a49762c0c593191f2fb6816a405cc4425d09c28614837f1d7aa4c58bdb2b48e7a8dec83f25049de70bb52b998c65282e611385ac82c1a5b69730077404c3a488f1eee59fb9397197424643e3de8c0832cc31168be37d18eff3f587a36525eec3d4b391396089f645c2c213632dbf1775f068023d518cc592b9b0c77b72696ac221acbd8381f97ec19bfd4ed351c9acc3c8989e43ef814c08114a245d8962b39ebcd9e5bcbd8ebb4ff9e9758be2dc4b30bdad972cf9d80c64ace90d45e0f24723ee8a03952b0cd325e5f648d44da5277b1500522676557c1eee6142c4700989209be66afc9845a45be37188e346c3963aa32a55385f5036a769e6378e7b8291f7ef80560b661438492507fe889e3769c49c751062e15cc481fdf20839a8af14ae72bc5263f13245b45d753afc79ee490f69cd6db735a75cf6967dffcd67b928ab1f56336777c3f17044eae3338e1e5bea9161ee046cc9317fa86449e318ca329fdef7218b23016fd2fc90ba68d24a9310c75f6d83786302bba2d669f00ed4b50bc96b25d71de075b96b5c2deb1ca917f33cc89489fd1283f25d6820c82e7ab3c08cc42b45764c6b98c714b768e594f1688ce2b77f3e21ce4b6e8c05a906592aff1fec4612f0e631604c116a7ae3b4602b1d9f4c99c55e56bf12bec0209cf1ec2a56890e48ddf9c010248456c6f7e20891fd792806a1d68aa7003c9e968e82634b8320097dd69d81aad82e3f786a5252ed590bbfdb062216cc4c1c81a0b985c8e4566dfd5ef96605b6e0bb1bf2ac12443d32f3c6a84eecb55ba485613fb92771a3403947847e3f0aec859856ee6fd0b14f31783d856080476127e3ef93f0beac16b2450a5c73b3e374d9346164d2801bdbecee0eb7e5a5cbc1ad666d4dd4f30e5ea25ad99b0216480c4dd1b50442a836e17fd9806dbb6829d690beb4ef31ac8e53cff3a044410e7541dfbc461eb84ff11ba80868c3a8f9a301aea8f85a350673aac6a024dee02a05efeed48f015240ea0ca4171df8f1f68a1f066537d74d0d96d9f8e03cf1650673f797266b83ab49a172da9e593daae5e945edb8ba64d65a30596f8289966b3ca06c12f64aa8ec8230759a6620484c9264906154304eae4fccf3d50fe9e8e35622664207bb5790e46ac4e82f01ca8b00c481ecbca9d1398560691d5b15c41fa9828ff048e32ff574da3694e3288c0ca30d45107bf60c54a6e6f1dfc01e58a6c51f4e9423ab5498c5ba2821b2cb8a672aa9f2b66ffaf2900870aae1cbb4582c29592142f50c0512ea11ccddbf1d5bf2dc72979ea25f8cfbc70926c02ca97e86aa2e6eee8d16ccab72f9cc2221e4b7f564010119708084d3722bf3e188c39a28947ce2bc4e5287b1647faa471d36d8c7efc5c9dcc876d5dded9e330fe38496738599de9162f03f123630ac186e2fc38ec260ed18aca0c1f4c14ce5580bd6afd573ea5f8d4bde8e06d6a62be72c591b5606c5415062fccbf4588bf1e8d1c4134675709aa5e21f20132d91b2648e9ac699e2b9255fde7419327e549f6da413702fdd18ef998b8be3f21fa561d6b6dd016de37c8dc37e51c93055994747b37b95f0b7ea22497bddb239aea46fe0db7ef15536d36d9c87d3ab99c8404776d8f68c9606c26a0b00428db11fb5a9a6d57a3fd0f498b67e76d01230aec5216d3d3f05399a51a6e1c2c67bf7576ef3286877c6f517dc26680d26104b7e3b2771ceeff96a11fd8e43842f1da771730c228042f1951d6da5530ce3a0c3bcd12f5f984f3a16ec97ca758d2d3ae51ac7143eeb3ea2a21517509d14a7c430b506e3d9bdede5e2d25c8a856e13302b9177dd5d266b42f03a50c82c242050dcfb39c397360a5326b4d7a2e9db4e2c87e5e6539f2d5ea2c143611692a9696799891f07a7fef662cf9308e594e7d2bb5f0574216468270575c919c82efdeca1aef4c4a0c1e7fe8f9ea9fe9fe6641a2fc6d5e29d50d5d4dc90db36f684c62597f59d788f45e88d29d065a0ae055aef642c8eceb5efc1358c70945f40a32d68e9ea04119b77ab645dc60a4f96bfc387922a173299c16bf9c934cafdd7af1a3e365d68a1b5af8da602699e41c8cd8437d0fbb0ee9d9558393c2656daf5dde552a9a82fdfdb6afcde816d3b7a3a2645a797e3c89da7c1f818e1763b97e2b075a4997bfec6754d557aed82ad174672afb4ae612e64458cec2df1c2a3a5485c50255a86991b291b333a42d4de0abbbb2ef7cb60692024ddbf4af58546164fa2acc3a6772113bd8bafddad73ade94c7e8badcd55db549af13262665fbb28c0d6ddaed26749d5a0bb6b5b5277458d41f6e37fd839c86d5543df022180c8e313454af57ecd19eb8a5b689bb42954d70d4814a484681e44245a084c5ee999fc45cc4ed87862253c1adbeb024f510398fc9602191e7735636d4372528d9f3259306eff1f3010a7cffb432cbd33503e56251110d48074b05516a6c7351a36e9c7b445d3dd1f1959ecbded81fddcb5e593c30eab0975fa87665dffd7d143dc234999208ff9f33bb6612cb58d2d2e1999098d51c250ff4211d8e993cb6b452dcb3070aeadcbf103baa320636fbead1ee8f801dfd3fe8c1becb26bb12b137421c6881a4fa97f0cea91c9b5237dc4fa46df779fa8710a8f5c5bb4e833c3fd17fb39f100ea80c8f9966dbf715cd8dcdfbf11fb1da4ad883c9c84faae8056afb1230fb3cd6096ffce4f3f74f866452c12869eaf8a68fa60ea8c76194e95187d378bc647a6f463c8581e584b05e259bc1923da86c7e99d1d25776c1b1db81c70bca5692afd7517b719d61c02125c658aed4cc6db06324b107fb728e968a0a0c094737dd8a98be14427ac36ffe73f7c48bdbe48ee0e053a81cd58afe129cc40b27669278d18153e310d26a0aaea85fde8d931fb75601ad83680b4acf7827f416e4efbd26698dafdcda043b14280508bbc46d58d29f8c8a9532f52fb3b1d29c72e59e6d7a78c20b6b2cf209a4650ced51c3ac6650a28742ef1fae442737b2902d61c15bf104c33f89fe8f7c747532418508c571f35fb81f686749a532073de951b4cd7d8efc4f04e59fd9f8000be4e03270b0c968176504b7cc384f5328ab2a8e3b29365f8aa5799bb6090fb5decd874106e09d65a002e5cdcf80f5ad6133ed5ccf0efa73e91d74ec3cb365bd941ce2804bfe849601f1b6712cbdc7106fcbf3762e59fa2f2143d765768305db2b9402c4a81c8578e4f23fd2ae9b6f65e95de228cababb5cab497094e8231d44974663e227c8edb6496b9561d795e1f0bba9b695b24a1d67d9d7ac85bcc26a57bbfbae13cb1f82bd32eb678ecb20bb1624da5d5516a3c9553afaeff5aec32a44ca0e589995c01dad1b34d8913d0300799186ff1f04c3eb2fdb6f2b63d88b86f8a95b7e7fc265c631b094e6beb877f5bf231c2c51c415cd2b394c2d7531b8e04ecacb847520aed1419fd9faa0fa915831fcb2b702c86c64ddbd684e2320d08f455f6a0e30bf328818769e224aca54939b4cc08dc3d5e7624b7bbb5ee0462fdcd653785fd278a086fc70287aad58ac7643cc3c7a8ace55fcc5bf338cf2b9e402d66b517afea678ebc73736e180dfeda01c4b08f40e7f825e13c8fc64f53a030a22dbd091d028bf61a45fc0f6a9fc6c200adad88b6b39fea4cbb726a9e29439045e90083b28adffb51fc350ab8ffebc12ad3d99b33378109d2304ed7d924ed09102789f091cc64204a9cfe835752e6d65704921a52126cb84ea0da9c028d7ebd8cf889038fa50308e53310c7356ac7e65fd267ba964b4f8d9cd15cc09b073f9fe7c160d6afdb7cb5c80f8c076c54f93704d09345cbab3ba0603f398eb4c719075c6150c325952d472be3484fd483e3802fb3da8a81e5731b60e9cb672f306d0dec407a06b5dcb6cdf69c4cd4d70aba2bcceae6e33ebc927b52a32b855b7ab32bcfe46f7ff1b685e776955c9f443c68ff8262aabfdef37b0d3fd45a42413c7a13a0efce66c42280d47b7a3e2d1a0081fd71d23edd8054bfbf85e2c31fc0c8e661297ad20bf5f22ea2c517efa849459526414b47aff4ddc250da5fb934171f0dbd1063fd9279679b488772ca26b523e3025124cc00e8a2c0f6c72579d12577cbfd0759c1c0af088eac3fff279d95dd8e357d657cf24209f37f0a0f8ef27f13cd4cb51f9afb7e7c8215f57fe811fd9b458825bcf815b4af6f683ae723d9bd1a1fc000c80a560f9c4c9f06444070f8be83d11c1c9c0872a4e60c72ff6d7afd80ab1657859f1c51b10218868297ae9902570644ad47f35ce1696ad6c2e738630853446d9726508c34ab605379e329bdc149b3735e78be84dcca857513dab25ee15e1de4b2202523a2419f9d497b540b640abbfe1af7c4f49349fe20eae8dc1954d3a1d7ccbe7e0b09f963eb1d65ff4d1b6ec30930570f40bc6b3706af8695ecb0538332427c24f2619c925e983bd4751d5977c50efdc292407e8a938dc67d2ef86e6e193c74d8719cc5501cdeb0641161717a365829f8638ae0ad951789ec0509c1b82bd6285c4a881ab4c387700d1401207623a528cbe2a483cf92bfe88f439edcd870212ab17b09d938063f6ea17dd74d417b509174e937906b9fea7aec70be1a73956b32baeca1c450b9917c063f3f67174cbff4b014e33f0a243dd7bede2a332f24e90bd3f2070fa5fd6403114924a064c8bccb199926bd77199bff4e034c8f0995b2ba13aa259cae5799c902977b64002636221b954c6e82b96b80ba0c848596f4291eee2e6a98c566c2f20063beec7087fe3ef5a3727ffb095e5895cd9485ddf9a4528b4cf1bf11d9186ab62e571f7073e08e7e06db04926ec14689db72bf4da3c8e1af1a47adb6d2ed4605e2bc75f6ecd03df011fef2d3529a6baf6c0b05544c755e88d6531bff4ec5ad3802a81a8ec47d325bb24d09adffecad63cc9d24944d7ca7e729f88d85010cd45d7cb8c4ab18d125ad6264300cbfb69c608cc4ac0a3ae3785c677d71965eda3e3641dc43a300deb0cb275e435cc273d4d0d30f1a22a41266351dbc863057a4b8cbe117ee04e27a2c18b09f4e2037b1960272ab7c50369c2368b74796587c50f9c45066715d115f414b308b984d340a043ef7dea028789b389e240892eb60af5bf94830c86f471fa1e19bba30b90bc7ef9487c91c83875d8599e1889b8c3055ddae16ba36c32b5222a8b4c4e8d2923ff1aeebc85028993557120828542e5c30c4a05a6739f68fff38b1e621c44462e7999bfa34344b9c887508e3095b05415c1cfa41abd6351bc342c80eef9c2c9334a17fbde5275793479bc2529d44195257d73bffd165f6eb5bdf979c800f91dfe8a7b4fd665ad8d011c7ea2fcb1add44ea0681fc95af97c8b0150b4b2949aee0d210c208f3b871313256bfe11185d9cd6783de7690cdbce5c8c8981707694cd29906aa26afb859312eaa290014cd0f3a2c72012be88ee4082a4096a94d2508be58970ec1de1bfc05d2511ee82971ef0b6e0ac9e1d14bc97c97424cb775c38a5996a4a425215a2f9ac00f97132881eb31a85c53519238f6732ca07f279501167b328b413401292936ef1b32cc121cb952fa005379fd97b6ee4b7b6ff160d73b1212586ab2b91ae470424b2a2dfa81f73100a8cfe5890eb7ad81e74efee5777f0940702c636e3c0d6cd9642db75ba6364ca343580d0fc564e2c451df43893722eceb09d0ce313013172a5ada9691d1b2b505f2993c10f522300e96ac54f363d4a294378720b0e84bbc7d50523ced381d7a3807720c97a9a6f30ef08493f340a2feb3424e2f6aee8240ca3ea638b6e14f44d5479240f33987ce3d9af12266fec6116453091277c983c42787f17eb67f02379f07f29bcc8b0ba4e872e71512e4609293b3d2fbd63eeffd4d8d627ef2121e2dc679bb9755e2c1036b88875c34b4c8368345f84583920e4e527bdc5798c5c987b1d5ef655f3c3fd7619369eb036440f9f80b816fde7813611a36ea5cc09b29abbc334571d53ce4f643e760740bc18e4735fd02b3e333ea2751ee37bdde5ffb447a5be2fae65905e826aa893ca3f14a7fc9b24a54c93decc77b4cdb54239521cbbd419342320ba8cce4b2be0bcd7b8aeb71d5776e2b491f928b060c62bfc6b3b17f87a559c75ec599dcedc44e1bd9ae0686736973bafbf054fee9ce72767903ac86a9ef0a0801ee8c3b644c1fc5bff4cacb0f920aaf9cbcd8f30e966ce34d0c809722185e8aba6ad9f7e56b44916d4888b9bb752bce3b73cef5ac89fcb6b09a8683ee466c3fef112263539ea9b3dd7592a8a8359677bd76b6553130a5119809ab1417ef4af08739f3723b72318e33afb598c83c2a6c74d378ac468e6eb81f0f0f5204d14f49cea436751b635edcaaba9b5b0dbc1d63bddc0dc2e5a75a8c7ccff41170d11473ad7c3ea3b6858c6ebf85705e5493186092a477bec3d203c9be678fd6ca033f5da31e22a7ca4e321801c3cd15fd90df0a74e173edaaeb0bf56ca470d959fa3898a3e0fa8a56e532bb68d101b17735b05168feca8a6feb95a3944acfd508c3c92564aa3a326752aafe09e33546dfd40ba6704177d0ad032c7b20898f48c3ee0f032cc60e12c1cf719e1d1510f3402b7066cdb9882061a2fc0b5484bb1b404ad2c38b100e1060689641c42ba6e810c976f6f609df9f8516b7ef5a1db3ca63aac17b5471aa7992771063d00be13b081b21ea163b2157e912a7b0756c06534ff273762e3985e7a10c934b6a7798b590b5c28e25f693bc050b1fb6a2c8c6e29d59a799d640acc7ed6c8880390c0aca77dc4aa833d90e4deae925b0b7db74d5cebf44252d7e633b0350f183ccba2405d9055e1cf5be2a1e3a4b887df15e2ea9b7502f9245580085878178af200706908966a362e8f4a490dd5c6dc6e8b0941206bd6426df59a2d3137e8e48b9780d6cf5fc22866cb59d7d9792aa037d56764d928bd780aa997af1c06e6edb399666ffc94982e47d6581903c214503c61d4bb71d28d62718a6fb19a2d5da17790f3e3fa539b2afc7ac837408f7827286b6e9c9e9312b292ffa72c11adfedddbc9fac72a0b75625fe202087e7a0126190f1fa1d3448f8eb32c3f7e77f0a4f9bd54fc4be9a800796ad4ea7ce0384a21ecc7977c671a19adee69a0a6af2754ae909b4c039e2dcd3de1cb0706b543a5ab3956a0d351f5e419ced939704fc4c1ddfb8356e17e4d8cb391c8d430a5f4a5d854ee2b77e08e9bdfa971dace355616259a4c71a52ffac7b98105a98c2bc7d90b015647174c14c0ae8a91c187a7c745001a97c0ebcd0c5f1da03bc1708280d08f0cb314e958df80ea305697ac7097753ec4acf07fdd64431bff77f9a9df6f288c3bda591add5e3fcc73c0a55480c5ff45fe1c5a9c77be2f266ed407fe5ab4cc0ddc5fb76fc3af5c0ea7d5ebce1cbe362508fd3191e29245d05a67448c82ca6550cf738052b80ecae35cb8306024066afc4f2e0b36913272e38acb4f7f79eef29d9df188448700173717bd858cbd5678e4d4f946f9ab5dc42a1b8279c249fa42a879309dd7e9ca7e0746f3db895182ab44d82305840b7235e70b1306579c0b76176d9061e28725285a28347bfd84180d2318d8030f026b8da281f63e615b35a64dad788c51e7d99741ad0584dbbb0b255412c1c6b6fa7508356647179cfa0a8c4dd260a2c93b0a8243318730c1336a81012410187266b216a147fd1a783337321855ac7d347996240457badf4410efff2f3280ae139bc023ad63355de0ac41677a293d6b082d9e6228a6117cb56ee2f58001ea1b0f8c4f47201871c36e4980a39d3f7bbdbf6d58a2b50abaa02782cd486cd8c11c27c33e1bae8db522ab8d1dd72c1c3bc2c52938fad371e3bfada123e9023829f436ce0ffa2ad403d98ebf0337c64746f56e5c8a02bf56132304fd537cdd332a1d5a10110ff5414ade4d10455a2c49ac29e274fe29d0402e23600ccd8c9aa789c6c502a041bb1d3b2b5a9b3f0f96eaa3ab89902412d9d65c859f75373cdf4bd6cfda44d0ea084d22a1513a419a74344afa9088c3535aae423204aa3f96b943995826233d3886d8ce867e22eea07b1f345e73be2e0d439f1d1b3555383779131d6269229d22462a38b2b5597fbf7188407e5b88c75f037bcf2af99a28cf31bceab5f1746c94f8c6eb5423ec60a2e9226f3a283a4a02ec205634c2fb927a0d436c4d0fcdeedda14374c674740389fb6cfa0696d443a857763117234005907bc50320b58b806c9beccad9587373289423e2af04b39ac310d53c9fe3dfbd52dfc095bf8308e42c68cb16a653ab6f645d80fc9d71bcc6d5522c01e91098fcb6bcbb4437ef11159993aff8646f1109f0970599421e066f8b8e2cf7b2797199b2b4e47c170968e59a76b34bd6f254444163dd8f83093ea9bba30b2a61d01d9bfb615529af4657e82d9f832e8d692b811180b7e8b4577f3a0e6c4a36b9eeb349f5430ea6e6338b00d1dcf8e8bfc39cfc654a8a6e4a1a904ca2cd61c07052daa5ee252bfb4951f656b31b25c083bd734b83f9f4abf148be44626aae91e9857b445eb8892bd77b6d92363de63e1f3da5390ad167d8010124e902ca730a8a5720d0289d0eea32e1287537110a4ea439995c600e382af6b324c0192a8532c38c0723e870b05d592accd55c8615de61784020185082db1da954eefb51d406e35ff9582bd6a461cb860e4628482f697bb7b52db794524a1993087e0808086baf3802202628e13257e47382baf6a6acc4d884a2245d1153d79e91066757e05c2cad31cd50d71e0cbb01c6dcf3f2142f4ff1f2148f47c63b7bdc795e98276be19ddbb578628f3b8fc7f92bafea571ed5afbca95f79c7c7404646c8b2c07cf050575ed00c909e7e78715bd16482baf28e688c54312bc143ac18a6aebca2d050911b939b1b1375e54d7d28c16b4b590b12cc8aa82bef88ca118d1c48bcb48ed495a7f518c96ec848738fd1db57b4edb3120af7b8a35460d018bfa252bfa2288aa26568da0e23618e4452669480a5ae68718c515b8d26125c36d4153dea809a171362092b4447d4152de24812749622adec85baa2535dec862e738fcfb833ee3c693c3e61fc7a46fd7abef8f53ccfb2c74945764c3171bcc2a6ae671051d2908de30a1f45d4f53c7a2cc2690c096a5464465c61ea7a161f1ba5e0babc38312688ba9e60473b8a5adc20226ba2aea791054329acc462d06822415d4fad2fbbe16beef16a829960269869e26e7a611e7c86772e3e33c51e77934aca74f1abd9e257b3f8ab79ecb0e305d01512af21387535839c3899706543ecc897ba9a355204d9e02234440811f56c0c0d14c7165b96a8aba976e24ac59a89ac2f337535955284e1b2f22106cb95ba9a5a38763876ebceb833ee8cbb5d55d46eb7dbed763b279d936ed51575455d51a72bea5f753f449d4ea72bc34025062ad7120795655942f15f4ba85fcba75f4ba75fcbb22ccb3e08509c9b14ad2c4bea5a067d216b7293d3c25154d7f2882a8ad2da18241f38752d8b497165249829a130aa6b49e4aacc09eead050c12d4b5f461f122cda8f8428509ea5a6a61b11bb0cc3de66ffc8dbff1b8c79d173de64dbf7216bf72a65f39e7bcecb109af1d4e3d25ec205257bee4eaec4b13a314705beaca8f46e0f882c1e24d0e8b8abaf2e2aaa465891b092f439ea82b67638322a494a34899ba72e3d089a2314f4dbafcf85257aec58464429263e418b9922a76bf923f24499263b86c86dd3063eef1bab136d6c6da7befad5df5b37f884bbf6eac0d246d8c4f50dc11479c9a81b9323522281b605dd4754f01693140738ffbaae56e904ed39a4c9ffd6dc23bb7df262df6b86b128ff5cf137fd5c415bf6a15bfeaa310968c1b5242c6bec2d45507fdb4698dc5b955615353577d0485ecb8e4058d33221875d5451faf1e703ab27860a9ab9e8a3214e583cdc70c86baea34ae274590709870e1a6ae5aeb05b9cbdc63391964cb458525c5af9988958f9f2d5e735a6eab4a8a2164c915294ab6a822d0fa2136c58a0d294ed4351f55c06eb87dc562bee61ef715bf91612fcc43022cb680b905d80df7f637318f57fca3f42b266299808617303a986421f150577c14fb423c01296d495df1d15fb9c72b3af7b8dbc08240ed86db3f4029d3c2daf206e445b551d29674e3899413baa876ed440f212d9064956853d73b2505c79107195c9632358b09540ba8a02e1660d4f59649e59033012746aca8aed738c653aa49bfde238a5f2f1647eaf5b83dee35b01fec09ac184f0e9e4a7bdcf511377a5cf439445828b2da861029a2621860889cde9a7a92a86bca8130638a309e4c68fda8325ca4782421d16525495d7544188d3dfd10f1f135024ac56844b21c61336ae9508148f4575a5305ee6fcf69994763ddee83713b5157004a2ce356d7d3efbd7bcfd9bddc47b8cf9949d5ebe1f630245df5ed3e21e99a4ba42b1ec2422905a574c55ae9190580a57495e94a7769e9aa7f77250502d9d2f506bd0ec27a6fc831c2fcbd3b0576df4090fd5507bd0ed2476de9aa4bb6941797f67a3252dcf35aab5f1b90a14d79595d7bd98eb788a914f30969772af79cae1c3c7cf7a01376acd3de8e3a253e7228b7969e31f209e6d198bb5d39b10ce55b50595077861554ee4ab312ec8adda98cc14c530d5bdd1f0babfef32c71a42b064bed9123516ffb8d23cb79c560180c7718e3d07b3088be0e46993634521994659aae3650e9de76e7a4207fed6f81584767bbe0dee299694ba9d49e3d102ecbca91aa712c9330aad57002c7d2dbad5b2f2d5dcbcf3cbbd76c60ef54e3d46c40d740e7f8a26ae11dfa727c53b5453dc8a8151793aefaef69ad96252b82543b67254a906a7b79a1a85eb0610160047492aee51fb911e58d898a7da6db0374501979da7d6c758f2b5d4b8c75159c73ce3967a019adb7d65beb9c733e12b4f0bbbbcf7b937b937b6badb5dde94bd7f248579c1c1b2468e1b777ce39638c31b691f6b23e8d7fa7c0aebef70b97d412bb7bdeb9cfe8c075c36184ecbbd74077720b6f70a5b6c4e8516d7003618faabb16eeb1bc733758deb9fbed1a835c15df06b122fb3597bd0d3203c8e723fb216b590db763351bf34e8ab4eb649e1d9c982f5e3df78d57448991a31eacd57364c17a7ab0981e473dc5cc838db827e807b6e2ac47bd1d133158dcd805c36f39bfdd29ac6b34e69ddb330f882f1b5aeaed20e4a39c7b3ae81e32cf552d161a8fee2ed34e4cabd32449a624dccf93fa49b8a0033cd93b49923a58e75a123d9ee62d97948f37df720509f9b5a399411b289b22be6f750b3c40fff60f7a7f8528786b35fced421db273ce852929867f21df389bd11a8b21215545425712681a72e4ad88248c86578f0b94949fe00a4272f247e69c73ce39b96373ce39e737f8bca79c8b8de7fc39d3dcf32df59c770ea40a1d0c6fb9807efe7ccbf51307c3b498069659f3812e05e78b7811566be1b51aac50c76a60cb1d2b5df5dd57e9c5d703deb935ce8abfe63efe9a0ff067fc3f5a3f027eed82d742fc58eeee14eb94361b478744da57209814db2b85e1cb101c545aa0a9780232c24de8a0981da1186d68b5b5b08962b52c393a29cbf2438a172b2ea91b577060e9eacaf2e206d15d3a8191578d2238acc66049f349e165885b9bd9d365ea9292a3132c3de00e98839ccf3705395f620892e6b75c3e5ebfe6fc18f9f53c8119727472f8d00d807e086589bb0225d6e1acaaa240dd3836a968c42127108370904872e4425dbc1fa8b813a4fcb440134272f908f95b344390e2b75c3e49b87e6c70fdc4e0fa71e2fa514203bd5f816729f9966b2a4ddb0481406e0546f4d0bb87ae55063d1ccbbe2cb57ad997bddbb72fcbd2c397323d5aeb6fbf4016840eb21b6ed74325fe16a58a1c91f1e5c4095ed4f5aed748022a48473f256e948831801a5596a2a47c610b53d70bf6456cb776bd586f3f20434c1bd4d5d2d7996a831625c66210911c3952b52e1c91b7dddaa0e56043581158fd76051e5e04b2d740062cc01d36d1db0e82ed1d6c136f8918aba7a727c9769bf47b77601077a0df7deb64f8ad000fbf6118edd1ebb7151bfbdd457062c6ef9d66db7e5bb8dbc384e2f70e22fa7d9588bffb2dcef8eddb53d78a425f6fd6dec7ebf53bb8fb2d6b02f3fbac425f6f5a9b85be5eb8ed44f67b6607112935fdb65cc5a5df53d8ea77d6ef1ebf3bd6f2f9fd2bdeaae92b3e7afdc662bbe3b214507e6f9cd6f61bc3e1b8dfdd4e25e07dfd0374e843a2fadfeff7fbddf4df2f45d3ffcedfd6af83803bd8f45f0fe1f7ebf6f7ebbf25a3916ccb9598dacf060b1b5d4e304eb4e0f163fb15a8f6abcdfb325cf95501ef13f23e28efeb250aa7f72505bd2f49cbfb7c9d83128ef7f510e8d0e7c1c6c6c606e9c7db740fd0a14dbf69bb29bbe9fae6c628cadf1c75fd8d11d3df7409a0c39b213afc75f80b2cbcfe428f003abc50d27ccd90aff1f59a9a5fafa9e965e6014a69d22349d70f31456a4d6fb2b675e4256d288b458eaff935e057e0ff6cfec734f5bfdf8f29c9ff5810fdaf43001dfebacfe7f3f9ba8a0e7d8f0e6b9eb8feece779f69c0cb8834d3f3b870c45c29f346790f3ec219c17cef33ccf9a7e9e18cef33ccf9b7ef6eb75f6f33ccff33c4f239493efbdf70ed061bfb9b9b9b9e90f40873718a0961e4377003ac450d6d4d4d4d4f406a0c39aaee12f3c35f90b9d037478c1e7f3f97c3e9fcfe7eb20d0a14fc9db74799bfe011dda947a17fdb4fcaf33001dfe3ca0c3d3c9e875d7427232601ead6aa7a5d73c08eef0ebba87a0ad76c27aed536a8a72ea7aed45d774ddafd715bb64afa54ae829a2c4abc89cbaa62fc22847570e21464a605ca9fa872685c48f3933a8123a8889161f1756a2b85969ad6b867c4d4d4d0fe20e3c5fd379d0614db75db294604a825635a486af077dbdf43955bdaf774087bedfeff7fbfd7ebfdfaf2f001dfef2c921934427a23f7b793a09fdd915800ecf04a0435dd6df42d393b7d011800e2d54a850a142850a15bebe8213873ffb01d0e159f2b2db2615af3b0774a8fb067458c1433068ea83dd00e83058a2e97933cfe3f58e3bfc3aafe7f03a87cc0b4af13c9e16cfd779bc93c7e3759e112dcccc095a952b3c9daf175054c84d9d80c4e3310aa084943fbb067478067dbe1ef4f94ad4785fcf800e7d5d482f83550091d7bd04627bddd319af7bb0eb70487b0d24f5ba17001d6a0f22522021e331e54a8a30533f20ff4b72028d4798a20937d41f908bff7502a0c35fdf41873c0a424a4fa1eba0430a25b00781c09e8381c05e02811e18b4e44f04fcd907800e4f01a0431d007408f44003e4697a0e3aa429812ff3e3657ac71dce2ed37364647a7a7a8454992d4946315b5535c2a2a832451d6d683db88ebcd4357d996e65bc8cb65972a339f89d5fed568a301654a478dd832adc5ef7be02c8ebae83e275e740acf1ba77b0e4f3ba03001dea63ce9fddae1efedcfad3c3af76ec4f2f4d8a594443946aa8b0abce9fdd9ee7e9e3cfdeb3fcd93bd0f2672f33cf0d50c830d1c34b8fdc9a7aa650fbb30bd1e15986830e653ccc1085fd4cefe870666848af07afe79e93017738f350db675e2657e4dc45904d847d96c9e452eef728cb642e22219f7309bf5ead0e5e63f648932a2c4d747c4941525f30e329a86844c5444a26008f26572886a8505b5371198e39b420377c74607920b0dfa043a0ee96c36bad7b577bad75c7800eb58c099f97e917d0a10c07c41e5e5afcc010fafd388fff55691bead2242707a44bfd0d81f95fb741873f0bef1b52f2be5e830e7de579dafc799e4254fe1cc2fa5388ebcf6e011d9e6990d74ba11fcfeb157a101de6b2342aeed34e011da62eac1e455114e575147d11e6511994ef403b0821a0dde20e68ff41a3ae3cea437310aaa2fd1251144567a000c301a58a0c0d154162ccc78b902238541ca1dda268d745afb58ed2f1bad30483fc0a8cf2abcd8e8b28cff5e2e973d6e73e830e733fcff3ec6707a2c31300cf7321f4bc2e830e79e8f17b2d7c7caffbd061afd8e44db30771077d7cb39ba6d939640f5edee4c0ec2084809a6667418b196f9a4c66bf4757c9e499662fcdd4ec76b5716f9a5c2d48781eafa7e890576a6d7cad83be5ea3511eed3c74889658387250397d2dc950d7540706a1264496c8e86ad1a56613679f3b8a0ef359b4f1673fd1e1691ae077dd5af95ddf95e8eb72bcae771d5de7a0eb1e9ebc4ed7adaa7b9dd6e974e80042858717b82955b755020b138e766ccdc1a96bfaba6e75ba6e8ba45e5774e307f0bacc998b4494cf5c27767cee253accbab7ef21cadd0ce1e1b730051eecd54144d219bf197371bffee41effda1eafbf5f94f4d71f8e5f7f59bffe7ebfdfafec9766c3c490a42129a96231a7aebfa01096bc29411501037aa2ae3f192b9eba2c9120f1b5a5aebfe218b3b32856235cf8a8eb6fcaa7817c08f8d5a7837c413e1de4f3f9ce1e779f17e6d14dbac9e763e2bbf1abcfc6afbe1abffa8e5f456944dc4c608952575fd05631694b091b971aeaea03a1e34a12971c3fc2a8a8abef080b9a0c1c692ab8d4d5c7432267ac21c462081075f5314dcd09e932a3f281a2ae3ead6c25cd56d29d5fd39c96be7d1af729d9e3b334aded714fbd304f86cb7069fa9562fd9ad2f835bdfa353d3a20698494aab034b31fea9a3e399284a869075b0e31ea9a1ec9b109cd95159942a5ae290c1e2568acf02284c24a5dd32a5d7cb83051d15224465d53a30086dcf8d2a2e4060b20754dc37a613d9d5f7b62bdb6ef5115e9cdf8b567f56b4fc6afbde3e3de03eb89f5c8be77b6a50a0eae4a0ca43675edb911490232d705062c8cbaf68e6630a4b4657424cc54173569723ac68c2f96d435f83d8e728fa4279f0413630598b32e2e4d2a4f72eae729558c7653dc41b7f7debb082befd8d7e94a1c1efcbdbbd6fafdbba7bb975847937d2d3d2075b7e9f651fbbd4f70f1fb3707a1c53aba7715a9dd427dc22479deba3c515dcfe4f97ea90cce9bebcc121d52e825debae8d0a65f8c9d58107b43796badb5d65a6baded23586b77ddca743bd3ada5e99642b7d6da8eb7ec0760c747d65a6badb5d65a6badb5d65a6badb5d65a6badb5d65a6badb5d65a6ba3a0884d1468cae4caca787046868602b9ebe999ea99eac93cb8c9ee609a6e3fd82d3a0199a7d03bc076a6cbec3a85beea97d9f599bee2a60c6f69cd04647ed7698422ec3a70dd096b3e003e850e7c0adc5ecc13d27419a108337dd781339d46889b3e98117a607193fd60f5cb087f3838ca487cac2bf5b8ebd4eca5a5659eee964bd20b95b3a4694685b9adb55aee5a9cb785dc4f5c0e9919eb2b5cefbd5a6e8c6721d69847a5e46edb5b7711743f79d71d73cdbbbdfdcc1d601cbcd557dbd75daf69c19d9b5971cf7627a7bb63a5ed1c076f590d96bc47bb4ddb635e73ae52db577d3663f652df8fc64c7dbd1f4d58180d4d18cd2f0c0804ca74fbebf63723b45683cc7d995fb7da97f6c2ccb0b0b0b02d34bdd4f733813214666a6c6e5cdec15d696c6c0c0ece68348a89158bc59e9e9ea626119495d5a0032dad10c87aef7987036b6343246219893ddf2f05ca9814666a6c6c6ae2f01291c8022b5598a1300637d6833240a31805e18ab3668c2cc44c21918889333dfd99190b14e1653e9879996e621ae08cd0146aac63fe9a8eac9ed25d4f0435b820f05259991c5109b188a342b820f0529696150b329dde380a2f75161c1095108b380a2f65593dee2c6c88b68ba8b9bf2fa6ed5bf6c3afe732c77e28fbbd3d4308fb41d76fa700ee70f6db319002fb81d7cd5ebf69bffd1271075f97e9b75f23ee40d32f857efb1db31f82fdf64b06ecb75f39fba142bfd00143bf1d07611edc538389622c084cb4d0d733cc53b6fdbd72778396d6510b0c870571c9c86ec7442ccf9dba5f7f99fcedb7e9f68b6441dca8a8249e13a4dd1e155810f767039887ec030b82046747521e0e984727ef0ce06f0f80051181bb01f79cbb01f79b535a9ce22ce3edb888797013c9f3d6e589eacc1d2ff5f56828c8cc0083ddbcd02d3ac450a197a807e463b8807b30d1c646b8a65f63418889158033657265572ed8c128d06891cd00852bc62293e960d8c9eee08e673cfe015ba438b818141514d5db9927c83c78aaf3d03304098c29d6994e6f9d08e8e86c9542dc6435e01e85758a58074fe55c10d8091b852bc6c2505683103759dc455cb8bf222726086464a94282c90c14164ad7171c536f63ac94ceb61a9a36260aa9e38ccc99e30481393a19487bc6a163917972d6cb39179101c273ce39e7cc75942712ce843694ad1219446a44515d7169137185624917152959e4aea09d408f684c1c49ca85c5957b89f3960b4bea776fb9b09a3618b3c41dacedf6a6bd74f7d2f2e0be85bbef7eb7b014a16f80315691b32d7b2f428a93f31d9679c7c28c8cfd3d92695ac8b0251d01af23e011f06fdc6f160a2f7a01a10842112a20424f4aaf508bd8f7a228ad2d3360dc6db7d65adb1fe32b2cbdb868b4916b86273bc94523e84992ec66cfe674de4bacb35ab87dc5d85adbd7b4c3e5250681717a09a9854179bba947b82eb8bdc662fb567842dafbed64b7b11f749dec293058e182fdb0eb6b8eb96bc17d5dbf79f3eafa03dec41d9c3835bb6e5f045dc7227a5ed7450079d3d694c2fb355ca85f7f0798dc5aca1298fb095ccff402a978e77c6fce39df7bef1d5ee029cc62189729b0b51ab03c3a618977f2bd25c6252ebb4ea8df7acf3daab4d15643ee3571e97ac1ce7007dd571b307ec72ed81bc6a14088a0d6327ac0e2908fbe14022f1818ce9d0537abf992a4d897a4076f6a2dbed61e4d9dc538a74c29ce39cb8cfa11f05bab01e76d9037714e868bff72d0397f85223ad89b3c8743ffadb5ce18e39b75dc8f809fb7f656edadd99b9c5c91fabad2fe57a87396da2ee2490ebcc5c1419952db71368e0d7bf34479bdd4f7e3e4d63ae37bed8e67afd560fb7d9c37ef7973ce39e79c85a57e9b495e8f067a5ecbe38f856b880ff26414a554bfe5b2c2b222dd81f1c2406575054ade015c9296ae65ef2c5d4b8ccdabbbee2d3a817bafb044893388b0ce7d7b0ff06689f3bedf6f9ee7c571c1fe1136ba75ce288aafd501b9a46bf93a1d9a5fa785bbabc9b0ce4dc169f16a8522f479839b2cdf2ccf8bb36a5da9d3f15611d7969cdcda667c711eccbca9ccad496d5260b0047d963a98027d6fb9aca27e4dfb0f2d9d1590a6166877b2d65b7872903326b58fc40aebd815a800dc21f79c35d60ac01dec88b22abd1972b725d6b1ba04f66c1f2ba5b7e7e4b3b720a94dfbb5e45f0620496a8395aef6eddf4ae08211560e425e1b7e7dbbb5fdc4a7d5702fea8189f1b518bfcdb962a669d564ef9591e6cbd8e66e8360d9641bcc8380370d67579dbf2816170cadcb25e3e75a3120572e33d6907377969e8f147d4a87148c52dc4d1ea9c53a4d290090d2b54cefed3bb3744d757072de5149814f740858c7be1dc2d6e3f1db216c3bbe9722c5c2d596bdc560c6865c38cb8253026375a108cc85145a8e18a696d29209f14b47ca8bdc90484f1e18b2d21d980b3b5293c6cd53aa93ba3025e5506da9af082dfdbde5aafab1d952c24dd329e6874c83247fcb35430807015e0e2449f2284d7fed364dd29209862869f975a14aca8bdcac484f1e5ae90ecc516abee5a2a221834aea2ae56fb9a8a0803852df5b2eaaa20b685c54242e4449d1b75c54588ab8a6c4d44803bb8ed42387e40493163f46694266c6295d5adcd46d64d3c0e7708d291b3074322bcad000d09643ac61cd789273cea3946d0fa2a4a5397657ce2a5ad88ed1d026aa6483d97d8923bea56d1d2d18644ce98c016a9b71a4174424499224c95f50c982049aa199271b142697fc85c496145432322b6a108df0520b83651887e2c80788099f25261f9341c908919717aba0131a4001a409e86d448fdc4e4c85b76064efbdf7e6494a1d448c1494776cb9d3db83ac31e3d16774f224898fbfbdb759a567283ece3937ab0ca02c7bb0bcec80ba68430b58c828bafae182c2840b31549080883dc929ad599d55a452b9bd995c92a74900bc499a86ab720c9150448b0f942c16e882030814f1eb6c8e0d89b31175613ea81023e3c61155d416e2a4b66641ed6ae7254fa152f5b3623138179d8e651d40279668e4a8b9ab6c60ca491460d664b0f28e2d8129143e4ee9a39137549747a6725a62070c2201c3a42d7569e478e7d078863498028541aca343748deddd4ba71da39b2bdda4d89494f3de7bef146567b9773f37e79c731ac4bc63cb9c06f7de1bcc58b0479118194d9a0c817d88f10449d891ac224e4c30b8ea4a395ab93872486c8d8c886c8dc8982a694f96b0557635650a0c2f474eb8406a1b50ec105a8a42676c545953b6e2ce8e6253e791cb8b1e06352c3141419c24f9e07137258e51a414b2193e86fcd8303aeb95701665558293b1162ad76c2d64bea439d178c0aba8a78d051cb1872d32c5ca8ad0db8829676c62a6da8e9d97bdf71673cc3b36cade7befbdf7d6597af28e2d4b6d02a250093831a61f43b42c7952cb180a02d3891390543d0961e15dac902449922449923766829b348134b9905da29e8443224dc08a03a63b7e332517db789c3012822a53f1c109ad2749132340766ce91d6d8cc8790ec739e724708d31dd5c896cbfc60a60d7b23cd93549dab05a53414afcee5ab7f7de7b034915602874e4bd893cd9b4bc634ba4b2939324494e31e61d5b969a24499273ceb5c6f28e2db53df32ee3e1c720483aac758577d4eaf2cb673982696f24d559d28db527311e4b7c632e8ccec87e1889ea2651985c38e79c73234ddb489411ab34a82d694215303ba6784cb1bdf73e62a53b92959ee5fa4268eb3882cd84147b0739b2e5824590a22d25be656f233ab0dd657b6cf5f02249922c354992543c6db3f6812a51f3dafddccd956227aba655e10d0b18af12454d456d5a9e3cae196742189353d2e483c52a08d762c5a7c7dab60a2c5ededdc8560b198e275562dc30c31202458b3020b6a411626f9827e1bc8619af5164662b4343a0fc84651db92861ad69197b83725483c859232ce5598036a2d4b821670288120f944991ca3a6289e1a5c6924c0dab0adccd0611e79d24d11544766323060f6c6c7b00569602d3e3fe2ab70b235847b15433025979db72fa624402331b5e24b4bcf092ea1a91c502c7325535a62cc6118d2358b6902801894958d9975392b62e1f27364532ba8e9bd408a2db96d41b104592d4db1188d9918d0b8fed46842b3c8cb82dd10a3a6a1a514ad0c86aabe26a2302aee98c9a28ee260c8e27df6050e1127148483f44468c8142431a32e389ac0dc611a01ad5ae8b84a81b154e309e6e2411adae64f8aa30210a2354a696a40d2b4dbb4c2e38e73c4731ef58ce39d7f183c793611003ebc9dc5b8923315d2eba10a9900084f4c49805e457742431b98e291ab49433313350430bd4902eb027695f397e38d97a422637c3adcc904ea6ee514f88a3a09477dd1400104c715727d088a4c89ac0983431615a4862d8bc4a7e166367e22d9fe8a5b11d7fa408812227656566e4a6a4b8c4238c598b1e6a4f4593574935162e542449728a0036526c282a025a23c2d62306082976203911baf24a8bb1db646c4ec50493d43c568d8165ec8df37befbdcf92c693948caeb5ade3d4d90fa63612d6acd0602b015d0be3e3667befbdf793209c7cce39e742727be827d5360b9a9518961198a82eea1a7cb71f8a9e1b0401f2518a6185c58b5a9639df79416ac3180589a3662236a9f8bd3793179d706dac97b68d30d7becc2c7af3182449924b69a5264932256d082cb01a66be31bf77f6600c31f86a68baf87bf7944f3971255542c90b244152e0240a0c055118139f314074638e335c0a4992a48f1f9d0fa29464cbbb67c41124668c112c5b205c7ce1aa01f545c4c696b5669ce15132d7f1e4ac890dca54142b1e256c171b2aa82c6171839886c5a5a492567232ce394f42fe702a442ac59d69a70009b990ca3a1b911425e684931a5cdb9712d484663814aa9bae9f1b16f80b5d555a88aab79473ce69d0d09c33813de79cd3d8759120deacd87bef2a3d67b9d662ef7d4c4ae24b744374648f2e0b49922449e2c0d2e946686102eb490ba31f22c9b583f8640d2d4ff633b55ebe145af68ad9cf92294c4480acb090a163916503b4626c470e18337618a94f988e255a91df2d6ad900e4540a032d469424dd98431a01848aabc8042a3834164e381716f94ac294244592161fa02f498a4d9e90a6a47cac8d73ce79cf58deb13e4638d76eda2709e769ca7fcf39e7bcc9d46e829502d31828c565c918f254e666bdb4aa78c9621b9bf2a38a131d85e42698fb6a1f0537febdf7de665a78c71e4b0fccc0f08efd350d5279a312f77bef5d55ea3ae79c87f5e49d7dd6b33b1be259c71a6f4265ceacd1a5ca50798b29a92303da4fb963d01c9931bde8326393429f681031335164f44325a7f026539c73ce5d9c6a4d52ce394f7596bd07f07befbdcf725ff9bdf75e8bb1f7de3255147a081d81fc0ca549c958212321cb8f38b623c6a1d3a8c27ccec444539216495e0409596281d8951e36ba4a2815d52a3acdcb8e8bf53c96a6e5e024799f2449923cd32ab59538323f499eed11534c80db440e31e348a3d84bb3d502b53d888bab12f67bef7ea65b8e34b18b70ce3910dbf89e73cefbd5209c50758c82e224490703865451728b5b42c5475a945c85cbf37ef225cf394f8329701b808a8a58d095149497881b4b3bbe4a3479a2d24342fb78ceb992e79cdb52dbcc933ac08dc58b21362c42452ab831e7434209201f5bb88c573e3cec39e7699a76bda6115074c4c7841e37d066902a90c0e09ab2e544054a25afbc0082954a414714554d4ebf8dfcbe46361bd1669ac2cb5f46f7c9e4d12a898039294f62797e632a1b2d8b274992243b4992e4ee24d983244992648fa052885999e0a8148c980a83d2196411110102e316000020100a0744625198c5795c4aee14800c53a84a60582e9389e3a11c88511483000c8430000000000000206294719c7185004181acf0806fff56e8d9a496677ef76e1ac59184efe2e0b69a4d14e301572352ffd098e869b1efb9e2b1d5801820c673098584b41722d234b11b4f5ec5bf69ba24e944e9dfb87fea9674f469cec771485a8d03983919e20f5ec7f464c61061b027e1386634eadf321949d885e3a45d8a760feff0c98fedb6272a6aadbf55e23e2dcb89875065d17e9d6b9c60e29ec7c663dd1c05963c96ad5b0e5dbad632850fbcd54537eaf68570e10b41540931ac03472fe93256c7e9fdaef754694236b3ca199b8c5a72a050e9959ca3f33a64d1d58d2664436440d63b84753431c95b13459a76e1b2265262e4074a2dacecf7ff55b9683c46fc2de8833190310065036503bb4c7a3e194852e307c93d0e88f45618ceb3f08661ba9d46f7a0f4f8d3f1c9f76bcb27b0ffd740b84b6b86786c8bdd8b83308200f0a0f1f3953d93c41c4481e499d574c5bfe6c5fb8c82c098b858b440e1d4b2bcce28bb40cb60f950fc0bb4a9259eb4c46b8bf667c2d05bc34631c49316c8656ae696c395efc1cc9f4f737946dbd9258ffb0d16240dc15b59a1b6e27ef03515c44f149b3070c305851b4276248398fb0b9743ec28b78085b6461de759546a3d69e4ed7a22b9ff3721808eb6277bc26f2aaff2536624e140011ce2dd032b361cd4ba29349dcca5e660efe11273cfc3c74ae605bae8ddf5d10dcf2ccf4ffb53dde3c9bdbcc608f60e3e2db63d7aaf4a740b8ddd2f7ce19cf3346b3322da6b33febcfea48082759ac3cd24fc814552ccd398ffcff81096227af19313362845365ab0695aa6ba0b52c5a352490f7b8c20ab990c4134e8074bb456f6167e262c153a09da25c9d7443ef200f7633dea868797a78bd595c0f9e4ec24302fa51ef9a70ba3140ece41d49e0c4a9f0805aa070289b184cadf40720e26265143b28f9d9551f1d3b37f563bd7902691a58a8ea46109e5ccf20359c9fc0ef41c1012ebcfea7e93f6c37c8ad6a83962866ccf07c2aea91f9989435b2a73aeedf0068ff854b135a833d92085a4be4186cc69e325fc9ec70a8cd17e5737fef0a9eed3163365924d8f88c0e93f616c8d3c4519840ee4e6c7694a471f8787a834174b3189a10f77f77126b981ed9ddb396bddc965c8af8f5a842906aad97f1d04a7419bc994435d66c7d4ac9bf48ee5ba2d71ae7762f69df47939aa94c1cf9cb98111b118fc8a1781f7c4127f26ce4a471f7abe6fc0eb22c5da29d28b704d4d9ccc36cf6b78d53f884be6287d6005f464f8ec4978cd78979ca7338498845ed2f15f0e9a70f57948b7f4a344800686ddbf5d0468ba9f6fddacacee134c25b581c19844c0db868a3838ec9eb9153cd35584b1d1db2839c475dea4a252ce425106f018048e3cbd187110d53568cc3330174a961a3524c69454014023ceca31a342b2241e24f5c1da468524314a03b1bb94b0b9a747c07457c5e0076f9a9648bbb483a575f788946ff08c1c96c51fc772e77738f610f928d3fee558c184a0c4d0fced8d29e5e887ea8e0394df5e2c252b8965ee477a1d6c031954c028a3bf3af6f78be48dec1cb2b890d18888c59a44a3572c629920ab28a68c62c6251e66a0134a2c8d2e63d8eaae9bd2092ba0cd98b67646b8e33bca6e332dccc43f2b0ce5f409c5a29be23f914685c5c09f01d93645a929a5d870cc98ea991e845a3bd17e1da469b4141a65694e5ab6712e07aa2ea4838f89b8b66d25a1d2d5128115db390df5859d9a872d1e177e6a0e711d04fc4c9056d891ace234be313ba7096c2f9d8090faacdd14d2e6b1ec88d83f4a9ae3556eb3aadb2334f55f8b265c8efd3ceb4873851311ee3d1f4e20d48add51e9d1375bf3a6c40fce564c98110154492afa2cf30d28ce81e7514cad9b24798af8c4a4319b967347ffe49aa20297d55b9691eec820aed4ca501764899705da7945a261a89bb9d8758b98fa84c634307cc83fe3ca7882bda069f41c147bc33f18b684fd93a072611a6433e9d85d11a25cd835e402958a12acb616da0c0930f79607eb2cdcaf78c77ee8c635aaf49001469d730f4d83e1e1f74b955211bab78544c5050e88d7295f689499f26116a64c183ad688745fbd1f85f792bdaa3710132e7310bcccd66f49f2b8e376c86695e3a2bd99f051db5a29f5de23242d61641c858f7598fc2f30b504712a1998f83e5e5fb8073161e1b528956ad9516a2a707c60939d4f7f278344418f45b2d7dbc0ddb299e28e3e6e854a14c083a2ce462713af4e0797a87730f0cb34738999d168ab991baed057227250066093023d6fae4dca1f6a8d51482462fbdde2eed54ebf08d806d7782e67e443e3f03d7d9f801d318e282e85f88fc565881ca98d6ba21e8dcc3f1c75903828b6eac37fadc4aab68c8f04f173f7796b2531b0e991893a0f50364006aced321e729af468bb3ae06a53298d577826fa08793a1135b65a7c25d180523fac2eb325c025d0eaea426480e61bbfc01e59450086136c8a63abae61bc4bd20f57e629192cb71467ba507192bd4b0d4475374a28be6964f848f9952d00134c0505e517c29980a56b38690cb0a202a2e80762bedcfb867443dfd328779fda640c5190e9759255832d1273ada9d91df2832ece5ced4cda966dba2ebc46ffa2a63e8c269ca14d0468940d28b843061f73e11b685327d184786982232d83d46dc7f4211d777d406c85fbd14120e4c29c531cd397a7ea2cb5004bec2a5e62fabd5f839a12d4b2b2933fcf362c0e2c6c14b40433447c20df6732bb35eaf82dd72331fcb6bab125dca6cd62b775b895f640c89be981f1dfa89610ebc035e1cf972aed734cdc1fe9182b5a7ad24528841195cd49d75e79b6e2f7fc0a32cea685c15dd25d6128d8583e06fe208270243bd6cc90e51d0381de41b6ff074e640b4d8aa62dc0511ce36079bb1aa1127711369556c111b17ab5e505c4a221d478015d4bdf12353bebe464434fd284745c505f131ea01a643358f33ce4651877f869ced8e7b1620558779b44191c71645ba8d35306986d115b7230fb94321e0c3a9426c5883666b3f59bd80fcd7c17780c404b639a0718427c3c68cd37a9ba0082a597f3d5c5b937cf61f28e77c6aad73ea8464faf27899abc8fe4357e51f102a9c93c128000a0e0e4fa9a56deb658a277991d8a049e842dce4e7afd0781d20050c09b7cd9513313c55d8ad45a9fb544c6306a3113325d3cb19ec5cb88bd8004094af012cc0ce0bccafacc4bf6ab24f8806ece2a95bf80d8d9c284252c662bec3de8b174022134a19d37f07a6a46304aa53e5782ab77564c388edb5f7cccf087b9cc8a32e86b7b0cc614680326865f3231b90040653ba71fe9b45c7cfc87671e93fec93817ff2faf8e4e16bb64692f04d0dce323ed78749204a138c65c0f31dbe531947307e0c0c60616c76bdb9cc5ba23ad9750eb83e0c99a514c9de4b5fdf19d5b810f43cc9e37a385d12506931d0311b3b88dd9612dd4c4b2429e6c724621112d3b85cd2ee21e53a03109d622777d7c8c4905f5a40bb72021f8260b5efe03fc8d13843362e7443aaa644c5cb1f440a8d94d764a7136102564a44c21d9ed8f420f7daf12a9655883e26212ff4fd60e04e33bce1312929ab08c2eeefd7cb47a167750fb5c216b01aec8d4c50ceea1d27dc640e89f87c52bec1e802ab46c2e7abe0a1f1a43d71547f9503849e98d3d4285cfe719b54d3e6b0bb1c1091f37d133ab7f9c62e67655250a80b96fd999d0b9218c767a4c5bc78f197a1cf4187ef18a8fc24a5a180a5b2c3b79c2f764e310154705c9c752d671231ba15cd5a14df4e263456fffde2ec57a0b102aec4763d64c2ca0651a16d4695d12bb14d9acacb0bdcd36eddcc729255b9715796e6497080fb95d16dc9ae91844627ee0abc7e7a7b7c15be7a42e91e7b527c9c9060c5482d236baa20ee67018e42722319c1213143a1a26e6459b1e7bc395e636d7daecb20b7b41412e17e958a3b60aa72ea180db8da04a3493cb879527da05f10c3e20acb4e99b48ddcfe4d3b0aa395137bdc12243cc13fef59fcc346afac46a0553030d78f1152c348865887570547a4f687ded49c06c54a2e2a33fccd15c78680a8b1f20e0cefa53c5466d2fa110279c3adea0e10abb92601633e0464a5d0ca6d97377acea52a067b2d3c3ddddd4f740b2eb6f591d6e4261ef70e884e58014e1953cbcc4e0fd19b681916e34a6cd85923e0e1c4c94a5ce6ac7404dc953de72c42c4787112331636364d8e9b219fdd6d4d9f658334bfa1c8f508a15b9962de4c532fd8d7cd5f1849e137d4fdc4876c83bc169e874f5aae246c59469a6f3475fba8f36316e2fef09f407368ddc63d20851acd25c03766a01bfcae2fedccfd6f5393c33f7651cbe12443f5e3634846f7cf8995258f8c41f473400d82bacee9eeb9401e7cbf74d94018de267b9a35c8ec41fa011ab38b82ac124e1ef9a344b8bcc438fbb141eaed2e91996962db20463146b0eb874982e20c5f4e078f9962f94d153318316f87a7f7661950a3dd775a0fb4a6304fb93ebc29b1d17777844d5af8f9bc7928bedf893c7fa0cf0643eca6b802484ebb783c42678eb5e664b90252f1e9ca27234b58c659ab44f57118d4e3783011a159ea09880f884f30d6bed3256d33b96e36c89ae8dad0eb943241641b406e9f5ae0fc4df570770fc4db5ab575e7583bb31379f4685901e91c34b1b5c13338926e8f79fd4d5cbcaf9880990ae093778b99652eb1b2bfde5d73d394db671d5ddf803202723a9a4ee78f92f4025ee9df8d307b944c99cb80fddf837af869539ab8f130fa1715c289223347ebb5bd8ebf33c3776dade8e4a78d202587a5c577ce35bf9e8b5adbe9384052185a3799b65403bc8b2ce0117def302e391a7c72530d62d196825a1ad2921f17aaf0b8f9b23962436a4b868230558a1245769c522261f8c700d32b5babaecba9d607591971971ba3c1ab212426c35c260e4552e993a56a04dbb6c539130899cf0fbc048e954ab416d901e43f3e1f967ee8d147ce497e72dcddc9b03e37331ba0aca1f071d17ce9b0a0d3e1fa8aa7e2a3e769393d0c9b1639c44b7a95ca0d1ee1d11ee7e34cacba9d4949a53def5c2ee959114ce888c437db05e7990afb2790c4dab20cc8b86a1317ed1a15f3775b87df57b31688fc14ff7a781d66afcb74a4bd981d65962b09be60ae11996336729a368c64aae8d02fc41e5ac8c4406d400ddf625c8f9efb9d0a8edeb3d038cd63ad02743c2b6ff483034950107cdaba4b704d2b7015fff5c4970cc8a1c2ddbb5a0d3d6873fe57e30a8331c7d6b3ca09d8d64156c2309e66ed4f1aeeb5469df8d243a8dff26603a234166fda748ba7aa1344ef452fcb627650e5a764bd388ea81e21001cbe7b2ed8fc124141d64190079e51984b4c9c82ba9c06d669b5bc40a1b0627fdfea26f8c7bb614153af15fb775cd3105a0627ac521908ce8ab1321cd1e1e51c0c345ac8f0801723b02325feacd79f9332fd069853fc2146476d3433c92fb8489718d624f6583582eb9dfb2c0b4f063ba2e82697f03bf4f7c0e9955788c970713b1d072b1ab2192907635d07c5a1dd47247c4a2831fbe2ae0065d30b20af9fc0d79d126caf1605026ef991eb8f11b503a415bc67d66d8ad199f3c26bb2c7e34efa0c788c91732c711c070b3aaa67601305164129e69b3ccc3c0445b25bb56bc25e5787bcc770e7112c4a84d5d45058993fb87118001bb00dd76e1eb569fa9e78a1ac6515c9ce1d3032764ea3936c88a945ae1d820bbfd10109c6bcf568b00d5d4290792d7584eb0ac4550c51e124e10215a8ff70fadff43947a4424a459213f6ac1004559b436bc1e7e77483ed932693d9b59c29f17af60d8c6310dae12dd5b1f55eff521a0e0f4bbd865d0622878e01653ca29d1a49fa9494a45f118daf1f84b01794848471984985fc73f4755b69e071eaf699a098ead51cb8fb1ca4b7cf89eada036d2811952287b02f3ae0b3d46b65afc2c466940e332dff206056addbe4f916352fc34f1f9be9465da6a56b9a98cf0ba6e62a759020a5765541fc40175d6c6b2e89410fce573f491b7fb0f48481e17802c494b93058de8b99bf7ec079480fc4493e0c08cd43d45a6511865d11d51977c85d17202b0cc54247b53a8e75f734824ba034c00b859c6a4ce66bbd09206d419fc12c25a7f95b9ba8e196e18398a512932fb133f3f53c1054158ecbd381fb401cc6c121470f4f1b676d3c90bac589ce7c4e5bdd4bdd72a97792315c1ba6b52b7cf2ad2b2c0387ba9be8486d3fbd99164b32c0393acd0eb83467931020f8a460f43e4565766eed3d7854cd3d2af8a3c791af38908548862fc8741cb32b7e1890ca264b09e13e3a70c7831ff65e0c4a3e34526dc32fa3c04c81913f9b436deb17c87f2a3af48c6ecad75b68103021553b958a43583a3e8d9f6bf763140d9bd8c12ede2a623ca6a5532b0962e55cbb80c3642f2e1df41bbc19a62ff5ad5be3eaa7b5fb79cd1687232a36cf3631106527d46ec5ea8e209710ad45290f667bc87b4695016f845e83a99c76a51fdeaeea9cd27ca443e4baa52830fde07b5d05e4b361e0a878769e31a3e24a2224797622fc28eeeabcc7ee16c1a8f9f9bc7d37bfcff3be523dbcc29199d391c02b42a26c30447c90e9f76032a0733768b36ae01639780ed8ad68e13a21d3fa80a4f3ad4c1ba5b91f695c4c33a83b91927ffe8b1da2460be283862826de2ebac11bbb4c550308e9d214199d08574ec601b063eaa8d053310f5ee04d5ee595743e2d89c081b7a07a1578510ae8e50c6e6190e1a9bb4d7954b2640d016cbddda113fb098f7de2e588be7437c60d43e4ea63c5ae1772b13905397da145eddb5421a551089d6db754ed8f9acf78d19b685af68c79de06aca5f8671392ebabb7e5977d61b9cef447cd96b79f43b30f95d3fc8a9b4a713a2c35facaee016c30e8449d66a464a77ddea8e751057c4e1584771c51cc637e258549386d42cd7e2b84635685bb51d25bec8ce94a82c72ed22318ab699ee74c768ea5128130b13ecebf4c82a10aedef811b72ff8d2f8c02121cc89819cf98698df97b3015743f4410733cd24ed6fc7d5d3fcdf7bba0cd57a782f5a3dc471d82f13a0f1f555127c1b25649b183f1b9e2a286984be1c5310622eab4fd8119d41fe306efbf53e4b88d5ff787e9c1bdea314e407d9f082e035a341dedbea71aa85fc4a352d907f2286e9e33e2849cb2478fcfbb60532bf9097cad69a180fd9f62d3369573702459eadda78b6c3016c26387adb5ce974e381b545c0992c61e3f86e5061318c59b0476c1af23b06ddfa4492692d8c0d8f4c6edb752c05c4dd17ac0a24403c48aa84ac35c9b67cd0a61966c8da898966b4fc59c78b40c50848346f51bbd4c64eb9735a4c02879c1f7c0490b17aaec1c604be5af8ac5d58deffd713453bd24cf36692358e3c80b92d87923c17f5501875f32091f58a2a2d64743fa9eae57a172b76f252e8b5e4b2b015e54bcc5fcd2ac0bbea50d6131d50d08c49412f28b5052f53935b9e081409593a3aed499ae3219ea3b80a5716d80ba374d5597d6dc337a0bfb76b7960323ca627fe75d1f717ec6551a3e5b041615e01320f0a3590a8c7b6dc96e82a9cdfb7f01c16aecb7aa0ec708df06de24a89a6f962dfd39939cf80556211d3fa9d47a722a4bfea160dd61c6bd4bf6bed36ef062f655dc318ad407e296372b127e31f757ce1136ee8a40ee243511aab65d8319dd3a672cfc51b8208a5c43d545c69f535045d2eec6e0688e96eb9528ce1b2700a3c74b40c20f240cf48aeeb3ac45defef0f1ceefa897895d185594248396e18b0684c37c4c4ac87302e598b3f0ba17e7f8ccdcb717b59b14bcc303022480ab35db2f125ecaf3180bc12056e240edbb0a7a09d718663ee0646785739bd4cef73460850abe031681ca6b1c6746695cc3ab156b275175d02572b32d64757ddf82177c2c35ccfd0fc62737e13d49be9d7f95ca911dd1ff8972bf5c059692a3c0723addc8f2f0e87878b2010c51a234c0018908acf64b0b8e3262a8a479c35555120e6b459b7452ac8e036728b3fef9d22241169ee80a8791950e22d74537f33b8a07d55c7a460a71a03709e6f23118c1debd255826a011f26a5bc4b8fbd8643056e17cafdc2fe1f59c947fcb6006b63b24b74ab4ddd152fe2ec31ca92e8e55cb1ea31c214a839c7f83ff1bdae0de7955ba52d0db60f9c73f17eeb25fd6e86269c3f9e01f678f870de238b2a20d96003ad7624df317b73e298c5bfb77173337b53d829de2aac3100e93995b8de92dd546e660ae8a4286300101dcb4249c397e51c6cc7fe9a13c600a3bf6cc691284ad141c6d1c466502207e95d42fa587f212089f5fa2126d4b4c55a27541d483fc21bd08372ee475f873442fbf0f6d4936fb094a9460d50400ac725901d5f9a3218190c41381cfff7dd2fe9a7b737f4e3d17cb5ffc3915639865c3581f131cc96bb8e557243d0a19c9a3dd0f974a194ac6f08850d14c920e26f53f527b21e8216662db4d996a1780e6171677680855449949fb570b5368c367c36044aae9599bf3f936ca3c2c04da0098fa28abb313b07e6b8a4b568d1ef14a46c9beada28e82ecbdab80d217ec14f5d7eddb06c78ac1ec127a1183b7a2e4a57711880aaa5089d82d0323852089be9a036b90aed297d6bf85ea2bb871b00fa6dc8eac0385d0cc4cc6e447054168585a270d7252d9e8c69081b1967069a061d9772e6a233a275ba5cbfb7b9cb12d036274f0cbdc27be2e91d461e33fd2afedb12c1ec6587e327945f66554d313cf6126bf09d6ea08c34c8753ff99820db870fd7c6cbb31b5948c47ab619ba8c4de238c912276bc083dac976a8c1ab64d6832a69aebbdbca88eaaa431b19c96a8dbe8f4d8c5961baaf521ffb44684035afce96dec1cbc38c34af883f1985d1e9758d12bb6f3c166e25b9431c3c8c0290e5cbb28fcf590ed6b1cb05461d501f32a1e194ed0207b89517a2448bddbf0bbd64fcfe749e0f429d67afeea464e4e9f3fe3f4174976004971f1cb4ad351d8d99d8d0295023fe3a90f227810860581bc19e3e7833a613d3f81a407bc4dafbe96aa159f0dddd30fab4dfd0f59a0c9c03deda97bdd7f80262452f0fd62993fb2ff4a11484d368937563dbbed527ce4d5eac69dd9c1f21692c9f5024f657744cd031c5ff1096876b04a2bc545f863c820d7af5387af313905adb27ca39ee08842cc99ac620bb331f28436d6f4dfb0057127615dd3565551ea3f403b8017a47c749a4895c824bdc24bc574d82b599d63a0cb15ea050ec6767ac50a1984de884abfb6bf99b7d35a67022a32cec629fd6f8ffe8e5cf0a238989ace199acbcc61573fd858bef4a5af94a17bfba57988b105f82c84cffc415c4e13b5d10432529d7dce7273399098bbd068a84cd988ea955817f370b6a1d3053234bf38600d7d4631a55564e8923c9a53c809ed558b2cf0ff4ea21cb3824b330cea72d9c56e316f100ccb58dbae2dae64f3cfe027a17bca3f9c9f4a9228b14263f064552ded3a65c7ca4d30e92ff491afcbc636e8cbf37b305de7e3843f9ba9d4399e5133d966135729ce214485f071a3017684410cfa3acdc27d83f6590d1bf3cea2df8c15711e5b96b7f2a1f2c6288366144637a4fff7116fe959673112cb69e789376aa6ad31c844a2fe5bd615ef5a2a36204df51cc6e63f276780aff320351f47253bb3386a5d3e0385773ddbcf987b5a61080a6f51ea29c15b5eb89a9df34423cf53e4862aa83762d932f6aeac3529e4ccba8c323eb824e15900b30a0c86a1f151741dbc61fed9a344669094812b19c2faa8e5cbf15ec922d59d5ac5a75a6ccb44e7abb1fd88fcd57098bc9b661e3fa12a24262746b43b978d88f8deb223593e4a7d5ff599c25fe7fec821a2634381b396a4d3acb8a3d23577f014adff7a2bcffc2ca2996e679f0bd9d8c296f1e23cd0743112fcc5293eb2ffecc8c8e8b7a9867bdcda196ec884977c76e146393f028b9177eeefab56f8d45b332dd5ef93af10df7292bad5c6fccfec1fa318d968988c799b741f43deec1ced23fbaa553a457e03f64c615f3dd049015e1d2880a1ff95df7f3928bca3391ff398680bd8a4a5fdd13d293ead63271b31475cccb56dde4a893d860e1481e347f8648ef78484679f4a6c83cc4063255fc09722661839da9e8f1f62d80ebc045f861e6eb503117d6e27420ba1dee0794f4ace2f3854267de309e4e34e06f24e43be1520cdeda11f66cf86ef1c2236e3453456f8f179ceb7c62eb38659bb8cfc127f2c09f3a5be85aff8f968f932671cb69924e653662fcaa8951f61751381d804a0c14e35ff50b7064783bb0170a507dc793aaea43a25a37aedb6bed85e4c48b55440dda4a2c4a3358f0701aac92608b936d9e3a78f7eb97f3fe4448ee7aed065bd0462fa1a6fd987e539b370801cddc6e60b0c27ef362ad30645a9f2744b670afdaff6e970c27501ec9a065ea1ea468421f0d92fac519651919d05eb06b1a67e4cb025423886e8180498c24830a40e0e0c7c3ac5f4d4208e3d718e7311bd5ef41c0aea73e0fb08942fb832d78c89643bf6a94a89578862242888d2f7b6c0ec84409a5b90cd95d181632b13bcc03bdbeda8e9232b7fddeb34fa8216bec21e24cffbac68bab6e61eb5a164f4cdb82b101a7437ce2334486917c2182b367cc1cb12ba4773a48710e7c511999aa24c55310b06fd8f3bdd21308ce784ed14e1a51762e7483743e176bca866dd5cb34784ce5aedde8a70e8e94bbc234c13b9262c86f003e05188100d039fcf48cf088a0dd0486c56cd667448d33c78819e4a9c351afbf5e972bbd4ca2d780770af1a129f1571059bd30eab81c99229bc64e0b54ec2fa0ff5791bf923f7760199ea89d091ac1b178e8d29c404781cbbe58a1614c877d603c929320e45ee158512978238c28351418d97855891feb4273802cc0c29868b59bca2093f9e15970023c20f6a94f3dba603ec0e08a9fc794e06cb84088ffa9a8b0f1fa4feeb7d293a4874e8ad9b5e43ff7708bca097c34083a89765913c990972bccc737522e64d48dde2784c67187ebd1aafc91fe8c328e5989e7495daddc41599d98285819b18d023151ed0038698325969213c3a55bb6b1c3953e187616e7d0754cbbf4bd1e1b77bed1f6a98cc5116eeb78b3f5bb64556e763cebb629fbe336a1a1b728743262eda0a744028cfa5fb312bfd4f05a9afa9ff6712bdbb98cb8c336c40e35695cd6243a427a7c5f124eecd403fe5951f4f12bad283a5848e6e5d7956faa8b522003e23fc62896cd83f962a343b9fd7a93a0f8a1e46084ab26d687a9684937433a99c4738ae11d0575ba6b87224774583dd8b265f61d78ac02191f8d5d1ccef826af96b5e8fdbacbe6707e10611e9cc36d01b6c5f243a88976efe764240b6782fcc62e490854c591b7d2faffc61cd2abde63c0aff79f03c82d63c2e809de9e2eb19f2ebcc1cde9b1563ed7e2512c291220c55737160aae7c4df7308087106811b125511ba9b232eac87d7a0486d2f06c3c0d8f2b318089d42353f88eecc0c01aa9afdf4b376087d6ef6cab2b061edd3d2dd4358bfb68c2306ae08ca1b4507fdf59e82866712b776a639ca6927e304d0fe88d2c144ef35cfd8217d045ac8153109ba40938658ea88cbfd306414f138ca6c4be39a0ec37741c22bca67b19e139019d4bc5ae1cbab29456724bf32c7fdc8caab7b40fc41947f298562feb5d1caa51c82be82c12d087ea3bc077a2729bdd964d0c569b848029cd1914ac5119c7eba0bc9eaf414bb4e01a0dbae2d59ef077888c81b92e29e35e6658349a31ede0243ad34d99acc4ca98b34dcdad0a57830a9f785f5069bfb372bab01253766cf7096c4e110ddcff3851a112f8ee7388ea52a3ecdb6f6448774eef9b266a0fe7793b22933feecc1a15bcc0a7d5923824a051dc3983f07a30072ca15a911b86c93c935c0ecb85433dc2f0bc5a48343447a0d4049802c4564876ee0e1f8356b4aa23b026c3d6296963b2844e1cbbaf321a3644aff711233eada699913d226d315d386fc1e71cd2bcba9082e944d55d6867a3f1208cccde0e0ea97888c820b44e602ddbe0d56c3bd166cfa6721ac27aec74154c2b6a8747896282665f18eb8aead1f81b926fa919460dcb853332515509768d59288f3041c549889fe873244f49178c1ae442e675d47488e342f812144aa9db9be25574c2a1efcf1ee41f8594642017da2549ce1b7679f44ababb38318c1685f048c52100b8679a17bc891640aeb61d894636b3852c89ecfec46f5dd8d60e6433381d81df1ad685392dca2097a509ab2f1f1ac2f5c8a476a69b60285c42b6181542873b02908f003b88f51bc4007c8781b4e037944eccccbcd132a2c050028360142719f485e07bc095d726111a9137807315e39c84bd4cec2d5e5fce796ba35355dc377ec45eef89751ed384aed94bc7d815b678e13cee5713830be20d54925e1e82e46665f2e2cceb342c1540f7cb9d48fbdf26eb3127f2529934f821f26382d442de86fd5cb669633244678c840a2fe0c7b37cacfdb46d9262c10a79b0d8c1cd3462ff5a35d66eeddadc16c79377a779b184248cf29f34c4e38c05a86e93ad673eb54f4a0f5c6b21220f244cc67c15dcabd2b1872fdb194aaa2a89b8cf240b4fa9925843924b2489f6851ffc54b64c31c964a7bc59a26717c97f26e2db0c39a499f782df4e302b7fcea52dfc018c38143c00c0d2ae04abc22ed3d0143245025ccef55379609bd522a47e3c857500eeee2629f89ba480296a85916a367b775d232a4760528430d5618aafa24abe4db4311898174f7b53cc3dc0e29b8827469977d4ff00acd1433ca7fc52c0d3783f6befa14a80fb822ba638bf8583077832c1435ca3e68242ae06e837897a5bda459dbdc2f59f6ec175617e950344181289fddc0757b92f0929e23f9f17ba00fc33a75677b0df382345f0291079a74cc2f7ef7ee6b87977e5ccd69c1ae2de190d2bdc306467d684ffc83d25c197f1723b7c9a847e179cd82b6efa0e9c4a650acb0018fd7486bd2883b9d13345e7db1985b87c078537ffa47f3b4e801f19e606b4e8d3ad534909814003c00dc866e550ac16b490f41f275003e0fff85ba4b39ebcaa77d2d84b640d60d2b9455a10621a463c611643d7fce99dfbf397055e5f0f28abc0af461112860988dc7994de25d7d399f883f500904c44d39add1edd3505d45eabb0ed92ba66bcbcec08de808994ff8b2913b5223cac191bc5ac23a8667a35de2ffce33914a732d87d3c257cf36a3cb0b28e10f08638ec8cad9d46e625b4ed93faeb1959fc1c9348901de3f34a65f1c58703e62cbfbb81d8a67323c9b887b2cdf1388b0feb74589bb42bfe301b636e96a4b1d60322ee587aeb0c25accd5656737a87f9a0472b8bd7e84aac139ef8a0c3c30036ddfb65e180de6889d19f80376d1a76038ea1b2d8c16f15602a2792a0046905e0c9d6ada05d35bd1261b2b3ddd095194febba13cc7ebc91395699e92531e67d356f31494f6aa0b4cbe288c7ab5c7686539a1bcc2e1980c2d07431136b5f7fbec163b1094ea701fc35d71534e6af126cf436d6f4f7cc8b142576a1fa802fd494511ee35fb4c620d2caed2e118460cd0e6906ac800bb9b326c5e0ff32bf461be9616e73c5ecc6e58ac83dffcf98c2fc962e0c50e75590159dc2c04a84e77d8089ea8446dd394db23980bac1ab32a54d92bce8a7d984c6536bf740685f0739741b99243f2385200695b658f1f4718a7a7744dfaec54e4704bd99faacaf02754622c0fb7ad2b97d3ec15b1593b6536abcc6945118e071a46a480080e2f030a10b211648c1a2759ff27cba3c10ed6be023eedbbfb4894cd4e25c2c80e53958c492f5104e97587fa0b38590b44d9c7a6fe928016fa4b91e55e9f0e01638485f06e68bc3b5da02a43426a0998e96cfe29b5536620187784fa1d3dfb44555dfece7fa0de67bbadd4216ee140e77cdd98b36bd74a94ae7ed849095162308015c28681f652e5a4228c85c0777089514cb3a067a28046f90469436766451b65428020a770df4d017a11d324e56d550708168b11e27daa9fd179dca03e4fc62aee1d0d643e080f3bca7394c14307a5202183e0d821dfb6f03967443f8bd821a1dc842c24f4580420928312518eca1edf424e2522db4afc0c0d1a2895d34b28f9b41fc53a6da2eae9139770b1756b4a3dbf019cf7d611d045de19202732fc71150c9189a7d251db8f97fa183879beeceb5e0f19047b285fc20667d67f48c23555813b24d5376f434354c188d22a5015ccc9a4de86a17720a3ecfdda271eed1b2d0e74ab4f6656dac7a41e09812f095d5829ac9c6516c4fdb7827c70d4e80dbbe3630cc18fda3387da75eece1b08f447c9bb54143e035a4f40f4c6e42bf13561809b2b3403e1bc326b254a7aa3807df0d822243064a5401fa628561229306850a1278439d58ebcfca684c2cb5d38de789c1edd2d70e9a6addee83d1825e4fe728b2ae1836f4ecd5d1eb0e89aaad604a350341e0d52f1e1f2849bde9af0770240746896b3a1152943ad80819e2cf055e9b328f541e3727414acb3713c10011f908cf633167b2895d3a728c5d404da22853250fea80ffa1a88336796b6c184b5f2bac34f90a857328535d9f0320d8262ed656de1ef0129becc6c03dce6fa377faff8b6016c19f17ba1d2cc3561226fde858afd6d54a5f3fe4aa9db6fbae6c94baf5a8ad1af5064da6761c38b7080fd9f59016351133d5b00f1ca181e575aa7a44243c96cfecbae4b6d090b167393aa91e18bf73adf31ebc72cfe86b59a37a676962376f57b4317e2c71ac08d4f11a35938df6ed29125d22cb60301dad5d79586c9f637885fd7574ad410c9ea0bb3e385ddd575fcadc36b5caa563d142afcc1ac7911a1fa8c2ee34d1852f48c6c6e838719121dd596961bef0c7ce7ea68fdcd09a8c3f6f2c515d3168992b389e7ea7ca7b23abee9c106f01ea1f82ad33cca9fa4b096bf833616f3361c471f0b7ca27f8b41c4f71ca4a00751914df733e57972a876509122292f051cd0860a92998355ccdb589df8e2aa98d10b84586adbe2752208d6350e90c1dc48583eebc6283e3eba39c23fcc158d67bf811a5cebb73db422f82b8d9bec3243dc5312fd4f86266942d1f0f1b0d9c2ffd1417200e5f71a5be2574af28a58ebb57343e2e99030a34dae08dfe555d1fac2e44c92e259cac3af87a3410ac9df8908e41e0860caa96c2703827d68c99a513dba9160d21d513580162dc565f191c50ccb9f886f30a74f544f71e8d4e0b445a4188aa30b85fa7dc5f5bd979e26a86a95a8d7cc75329c040af9c8408eba21e8e5720dde495709e0f0d8114751870349acd5e3e56c0d734db93cfa91f70e0810bfbec7aed9c16aa166088ea65130fac4fc4ecac7e59929744667587891d11e3173d12c38142805535c4932e3cefe4fc87d6cf19de17c6a68620ea30ec45ea03b1af89498610d846263ecb2f15a8ba676ab5714163612a0f338ff1ea92611460ef44a2f693ff0b04bdcae6ad02d5215cacc66b153c4dd05cc9d9d5c3ddcbe2544b2f7b37236d0237bd50d8fe8cf9867988398987dbc1fe45db3ae728277f2c39a107713f570603c2917474c5fba33ca768c226bc53c6ad73db88f322cbbaab7f001062e06104644e544cb96e564c915d11f22c3b9f82ef2a980d24f368ef8a008587aefff83ac274779959a9b25cb825c0ead25929194001f1250bffa74ba2e20500df89c7c51322a2f850b8912d9a181778f50280f84065a087b8a91e59b1b840bb7601e59a35c845952c584f5896a91eecd43a64f2e8522eaf5f0e28389c3fbd4cdcce63c765373f1762c729c0d16babf59f1e7716e50eff206ff1e68138af7a2c9b47f0f72e834f70f7c94bf02036454954e721f8a7cd1e78214ecd9c2ea83a0dba823f8e7cc475b8020febeac3c9be1e895b455c8a67968d649e6953e4013d2edc1a75c5ff9bea819f133288367612e31eb4144e1d5892a41e4b325b18850e651a00e1ddf9646225d1c3896642730d7535f561481f315b43b3254ee3690b8bf56e416d3edc7f05c5bd72b3877304d52ce3d75bf48f0eb9abea6a012b8c9262dfd5f80dbeeb13c75f70d4339356cabb1d63e983a4d4343616a01753fa89452e5f5ae6be544b47ff5c5fa868a797a4c6dfcd5653a67c57108dd77242ca89b804aadf6b43bcc1142fd36106ea59d92cb9df139b0be4ed2005bae50ce1de9ecfaef4d22414b3dd013532d61d9a6c6a2947afff2933de79907fea8b19874118ca51f45794c137607ba6d7cb334789fb5d8046c52c1905b04b185ea9b2588f89aa72e75e44d17ca908b605760e596ecea69d0008ff77a6ceb7b993f4eef4ce7a7687e3e83d967a4b0b0f08e5312390d6ad83ba7e3a293e9a7299a0bb536ae8fc24576587a2370f519cc53eb33066e20125b4a173654dcf9add422092ea180953478f9716335856969b324a844e1ab6d0b63893b071e012e6a04b3ba28a4b2d0b554b84619588c520cdb77562d37a07fccfd07f49437fe98046bd42c4416b9910b4804dc218db58aa3a490bff08a71ac17e27f97b6265624a03116d6dd3a518e21a4f98a333a5d8213d11d095e44b1c989f10bccbe12b7aee5cae3fdaf9a292d97d09ee1f56c6f62caf8151c20d8e2fe4773d4249f932c9a2cf6a1df4141a8ba5326ba7539aed7f0ae7409a5d51d467927337e7db811143474fbb716751f815bd005b760cf18b9df7a170eee80f5ce18e1d594029374de9f4143074948c20ee9dae5b7f9141fa004e09cf6821a0395f098c9db997a5976f37170d0ec05ae7e5f428e4ee02fcb4683ba6a5fd8ea2d7216f6c2e9d3aabd8564d2c9c8e210074ea8c0a0538749385a89e13546bf026916f8640631d49cf79f2c5a5d529b6f55df00e103e33a01b2621cb650bd1970693cd702b3e0b0003ae83648019645280053cbc3415a57a4a77b8226a0562408fbb8468d0ced66feb4010a3221f4d42f67b09e27f000e2833c450eb31bdbf8a48a6f8cd0d4f0e76dfa5314942c02cc4cee07f0a08404d324eba4d743e2dd70df154dd4eb4f7b6eda8671777105bd39567fb8a533d7b33b199c95d8d4320dfb80524838ff0ae51c83e6138cbe3187a1ce1ecd3120e77c41afe1c1ea2674558c9c8d61fe67b9d181c86ed009b1fa93cd8a7a8b2a4378b11e343b55f9c1f6e63edf999752dd5139d4e50165b0f78686c765a701e429f026111c81cd1a0c2cd5de2b4e9e03ae1cee93f71e2b6c825ef5ef454ca8f660b72a15966438471ac708653f63e02ea530b6169d1bf931629374fab904bc33ece8c2dc9d968a8db6a88aefa5c572bb02552f8269ddea613f35de7cd87ae17c67e19499e87f26c1b053788be902fee7dd06b5f1d3f83d52b09eaa245124bccf7fe510a8a5d274fe3554eea3f887d703dc758dceca518a937056f8846f01e494b73f81524645e9c5f4c6606238f23be44cf59f7e1c16fbde4f0589bb0f7c404e5e4ea20bc750f8d4b3a28bad09be4797e966d047aa38ea158717ecec4fb445213de750667bfab413e1c82943a9e62da8af413c542f4e7fa300b0773cc52b47ff919e1c5fcb89d72e39c6f98329a345b8e040edf0b80613e7a37f09b694b926fc5b9ecfc18a75d4587c27c72ef9f2caffb48138358ffe4c6b51c3a97813665ab57ce72839afa14b3ac8bcd2f20eb875445d37ee11eeb3fd41d54ccd2781eb944ef67307bfde3d9336698aeff1e633a20a74093b72c3bc173684e2f0fd49a2592bc3740668fd74f70c7dc8420f12f516723287282f6318c99101abdedb8a11773d8504637225f4a86c9e4e1ce26d80e4b53f213e8d25912d86cc22984fd06213c79c34d642bcfde6e11ce1a507e34e2453aa27d9a57729bdcb47af8ddb7998a9b3959f44b2d0e1bfd5e413010ba77ab7b619914ec0cc84c4fd376307858bb73096597530e1e2a5fa00c6a6978abe958cf82e75e24f2541a09561f4db8d5d7dcbe250af7d73eda054ba0acf0293599c7cce9bff33505ff9c2f31f6e31f0e46cd66d83d09ece14c4e66e00be67ca09565fbb4a5ac7ef52e04497da1185fa42ae5481d86998d92b1c87464687b6a1e2ab6a96ba2c82a457b09fd5a6edd1883cf5818f3ef5c79b2debf4da4953db881b4c86e5c0ac6bccfe19f34ff357cff1a3a5261866f2be48ae1ac08447e99d538e7c86dd509fdc5b10daac92da632cb0b01278190bc7afedf5e4afb9bd532ad2e92352109c111f9bcbe6bca203e7da508f345507f4a9a3bc3607b030440b895be4b1afea41bfec4e89b97ebca7f4cbf1f53eef0a73b74aae5a2f1d9862cf232f7631a8ee6cacbbad3823d2b3052ce2c90db2099d10791bc1e1c9554d8e5b4ee0901ba906467002bc8c8a012c776043d5a64b7f690e62a01c234e9c301c814fe1c0867e5072fdae5df17820d42378d5b804475772c5d9976fe7dda6b8794b33a8d7bf082554fe9409b6c493a839f6838ddd028fb7dc32a162387822aafb508b0e6988bea57c7673a4d7b417899dabc73e4e94a84cc218c080d92247ccda34581d87d41cffd744d0b1eac02bee971048054382915c3f8a743386097d03b2bd6a46adf04fd8b01482bb3dcf86ac731ca1e0f8b7442778658415fe8460593c4a9da6ee71f598acb07c55d0f66364ae728ea587768c83734f2904324395f8a6027deee4c8431c64039c55f1ad57a51351ca1e302ed8bd0dfa2c8340a2a5c4340750616f5e78fcf54fa5e84bc803eb8b5ae97e8c795286e90ee0bfe1ba8e43c8afdf6c2e95a202eb531af071a3809816153fa06ce812e3241b84be3e01e3d89401adcb9c76392ebf999484afc0cd77ecc79d02d122c24d1c43dbf96f4246b16013f77c8c5fe8cbd1ddc8f2454ac8046fb04930901e76eeef44f372101d798e8b43f499bbd8adf86a40f950b81899c30ae5c9f94363d3afeedfe8e61d68e4c70e2a19949413a406cd631435e1e7bbb5406b9e62f6a14198a05c52ca7e122e1b102d448d29961d8b2dc395834ae3d9d1a9de84158ee18bb333744aa9fcc0869f8810841877666dc3856260aebc8c5fe83a833f44c32e637199c86459163da6b57218b48c8c34bc5d65c219ec97ac3a7e7cdcda60c1f052ce7fc612c890372081a05c5aa36dc21da1f72dcca007dfd218b869f7c442e283a8fb62d59a179a098e1dc74d7c1ae7734dd0bf268e002d9471e7483d165c3a536e66c7ee529e4e806f094e34f5ff578b059b33a97ea50dfcbcaac110612ad4b448615391b5be8de6013694729a1bab6e99f0aed65b222254d95492c125cd034689c1de16daa7335a276e5f1de6f3f491346dcf1ad7055790d57a7045b4fa26b354bebcecf557e7f0cbea853e415a2909094990bf25f66a679f9f0f325d2fbfdb90c6e81b11750d6c9272cc65b18b76f5de3ad0638c96695ab2468b96158b87a32036448b089d6ad22d6dd2d0ea24d04b9a0b3a7c53e56e8afb7b9d6700d73b826ed1edf09b488a5d365793c65997d364b5fde5a472f374df4833407184f17b1b111142da6907353c20181264e61a154d58d2df4155b027b3ac516ae0d2b5507f29d66085b04b91843fc8ebb94ede6a109516c2dee9959a5e18cfee51851da7e3f06dbc8b086746329df22263864c053ff4e9de07792164858231ce3be522547f8f79fa2525dd305456e098dcaa01362ee30e3aeeb15e0f9332985287d7ee032ccc91d3be133bbce689e5f1b50fa574c8cfdefb54ba6f04da5c8244db0d20ee12c40edaf5d76643bfc93dfc6c4fc941d8585f7499ccaf73d05101767db998bf9ae014cd6ad914758bf34cb6833db6af245a1bb5af38ac84227ccaaeef6c308a8dcf3f7390781cb02ae47479e54a8ead4695e735ed87dd7d56b14d94b3c84cd02585498e23514e1b68e405845ef4a28adab1806040e4145303a4be2f4e7b2974980f1a3f7cb9d8b28810694a3e42e321e8799a3514de78bb060915bb1fa96a55479af50aa7aca7e4a4b333969dcc4ddf91e0907c198e3d64c86d066fd233871a1e98c1f46f6bcf0589c88e3e85602a386f0a0f6d12272115b9d2435490f843ef8a59e07489e50526ec569b393f4a1f59f9251cc4544f9493db170f011d5d75dd287fcba636da5a481a9c6e0bfb4b141dd8e3db507c4d2dbf9a806ac5850bb0c6d9b0ccaea82406a62011dc460963108fcf7abdb0baef5d0952cba87256bd74739ce89154c040d5ada4e6d9dcfb615428486f02c4d3fe4d1d0b967c4d610a2e9192a2c0b5858ef15a2414cf9370c2954bf767bb0f4425a41cb36427bfb705fdcee43e648c519595b9c91a6237003889e011abc927c28578d0d718685e00d127a85d6a89e11f204663c300a6c864808b95e362436ce3b38d6c82b15ce465774cd57f0bd44dbda4d3753c5b35a6a9b775536fe4b21e4399ca5b20bbca7410812d858e02952476a0f86b57f905308081fc02204f058b7eeb298f5621d90191a21585d925f01ddb429cd1807d48723a1c8056f43d82f1edacea185e516131c108820a78fccf4143c7ac73862a28994ef692610106a4d8f00dd50487d0b0e74bcc042c8d898e9238cd05a11e68121f54c56ece2d740535e493e798b450b3b202031c20bfd4ef9a9b81f9eec788497d7f7d3eb7050769557df2b741ecc9abcd99162bf0a0da9d76302a85b6fc8eae4fc3949b151a03f3e084467d17620a73bfb81e0ff8086a5c0d0b7c239ff0443acfe82c3ae0097e44244eadffbcade1c980d59eeb70faadaa5c4b1d832a3c6cedd50c5be9dff581d765d6ea059c725b2536f80de09e33be2c1841dfc94d7a69e786210368fa5b8c476bb38b574087910fd5c20868cff398640eddb150e62fb7bc140da278021b5f95ea7cd2b1c3a7f12add844e6ee1b1bae0398697d49c27bd77bda5a34b53f693a574d495c42ee4c1ef7cc6fd14e01516b1672e12a0bbee575cfc17faeda042805eada417c2b826fccab075993e077209056cac31079dfed643112b6124065d670bd00220f7f4c09b1ae68bd43996c3ae8e63c6dbe38e66cfe7aad042ff02584f3203156bca4401e6de444dc376c7bc1fe39ffc9c7ec6551c4d3012a27653e5c40ca61950ea18c53680b06ff9c652e472a95d91209ee41d0791810ac15c54847870ab00dbc3869950f1a2ce38795f7a7cf70cfd9e798f7cd107bc5950ed900e18c6dac9565312b43ba426adfe0b1a8426b77237befbda594494a29652b04d603b803f8154287bbbbbbbb0f3550bbbbbbc3297ac12921f4f1e17842810f8c31c6cdcac0708297aa204c5d94a0e04a3820cd96114e4acc13293a7a88414dae1d114da07921aad4ccfd4ccec196439c19105b994911bc86b63565b75cc05b4f2cb5b2d385d6a5d6a5c9d128c1ac9517b1622f194cce810211724cb5136e88b2ddf064cac8912158a048e874529601949870e12a797a5909a6dcdd59fcf004ea1f9eb8b7d982f203936cb35cb09a62a564e9b654c6694821c871ce398fa0cbcea4ae3071772d8da54b2c8ad1eaac5667130b560db252b7dc67c5c9758d6935f77377c75f704e06cbf39bf11735263ee8e222e7081511d6509180132e3de0d4b2c6f4b031268446e2c981959130b976763d853624c98286cd981b96e02809e144810fa8751151931407859ace61b5dcd982b62250d23df9a9348838861e0cf460b282456a8d9b17a6ed479323aa273bac89a1d34743af22584bb2788864fb743c619d1d8cb2bbb885e61c425e4e0b6c32112322588491c25474340ddf20580af426edf660e574a82cb46c3c2009dd87747cd4947ad81cb873776762026a77f79c73aed2aab359a5bd14893119644f3d19898832316c053175054a0f220eab16b88adc7e84409340a447aa2b072e207f861c427de49c730b224fee4b9a784ba4e49c7316525be49a78aec725020e0e29e0ce8c56d7c24c97e8bd1173cef94333c110518ebd0165c56f08271879a9812a6b87243374e0aa05314bb41e2edc609340e3e88ab3717662e44c1b12d69c60240a551033723a8ea4b8ca1801e171651e7236e02b77771793b3b3a92fc618632b16603e6c228f1a0fdd9504187fd1d8ededa9ba16352832a11af603dbb11f2c77d8bb8d21dd65c718638cc948d5d9d4a271622e86f55a75365990e90adaee9dce39e78cd35c57fadcbc72ce3967aae5d426d723d5e64d8fcd4ee4582fe79c759b3c82bbbb4fd9ea6c4e4969f192719ada18835487ae8c259cd1a4985832bb4e06385a5f8cc419d24554c6767eb2b53d0071d4cc3932a543181f88f408ee1fbe21e2dc4b2d855d40158d04aeac1ae6448560e4cd085e7e40b93282e1488b3662b106ea0a638cf5c556158c1c1cb44ad8bac1888dabe413e218d3a404213f7042b4081863ccc68631b6a26e2a57d31aa67029f78e270dc905a3a62031d4c0350700515c98a18d0f35704d11b954169cbeb173fe13eeee642ca7b1ea6c5251e1ea6c6e8c9fd68ac6cbd08c0131adb4404b9573ce54d806ce565cae7ba5d9a272755b52fa410a560843b4bcc90ac10a27dcb822d236dc7f6a22b4f0bb216e99a1e0cee55579162759a264a912b3dac1636524b45cdf0b4530126c5c9c5a7079124bb85c5a6619ad33336c8c3105fe42a2592f89d40f1e3a7777073596bbfb144dc3a26f2a58eaf19bdd0401c3c6d4563f37a0990940edd8b20293d213120e1491c245cb1c35504c92405de439a4f0d4d2642d133b9b3a0829d7cafccc9da36561c8ed95c7a7ab904f6c8408bdefd31e184f881d51e715829fd7e98cfdda4a29f58991784da11aae00e6d3558884db6c751522e1b3637b84f7ec3cfa9cdd0fcb0eecfa7a636badb5d65a6bf33889ac1df5ce1b5b6b2de91fa85e2d99adfd5ded131bb1f518c32111318744269748ff8eb0fd69f08e3c3bc4bda3b83f10bca3cefe5ea07eedef05ea807704f7278277fcf6b703f2809a07bca3de1f0cbc63de5f0f7847bc3f1123bed8e703fef89420d1e99bf18562923b3d6d003a31df6e603b0de5449bae880e0897d820fb2922fdf2a9bdd1da571adeb744403136a8418b282d003f7be62f2d25cb209ac90ee82e8176d5229139fe5420fc8f0401490389c2a75d22233a0bd03d3852a21a667089421287083a44df57228c1b00e323e72c00a52203155a8786828264b2fa5fbb295b3f9e61671773caf5c83951e8ef64272c090494c9c0603cd75a6aeb9c734e90524aadad51d80c58b53f3d7356dfbf7e904de124d037b936e6a33beb7ecd5810f41074f00b5fc8084317b017e8a3fdbc970ee863dde2bc5e17bac03a32b06b9f1dbfc01e5dfc9681dfbeef4c7fb9658181587fda63af5fedd743179604710334c6783abea3efcf5f979c1385f55b6557098c6698bd7608d62e7f023962b7e7eda88c04228876cfdb911837a2ef793bfa22810db1ee793bf202037fd8b6b5b7a35b6ccfdbd1d3ed0808106091daa59aa2aaaa3811eeee507636750a77d22a84ba06bb392a122d584ddafe37858a1d5ed8f43023830f1626aeca0dcc91291e505a444ce2ec6813c427169e90d02a29681ce4883112930413ad9eec60d1a5904658809e74f4e4c42eb01bed56bb63bed44fc95c83b30157344cae70dcdb06e7268776a334f4f5d030fbf1c308d6aca07304cadddd9de2dcdd3bada11ffce55e35813b70ee1eeed2826137d4281a8e42936ddd978983895b74b5754ef4090bb4d589530ab3ac020130c6f2638291ae96f3101c2516aa505d016154858a9228307019c19917d410b991334297805f5b8aecedcab62a6745ce61da32d281c981c102a305a62b4c51185a985ace39e7343d27d02630ca31736a32d358a5c9b2697af0309adcade8ca9b172a1bac3904673fadae24d76b5747469ad46441ca61c15b326490e64aee490438e89064b9443c7d65b4b216c65732ec55d92828301e09948b50284f5137bb4547d9aad32dcaf2aebb3ba8bd67cce7e54be2d4b9bb1fc1727f61a48abb1071773f83ebcee4c41854f09cb40f8b27e81923226b82203b522cb69c9eec15920a2274f09c736ee22ec2d27cf7090977ebee994ae772f64c948abf84b8932a875c3295195c6910d181c118e32d50fa62ab1c36b6cac23d666628804b5036e9753f345889140eb356dd94a6361522ce9b52947df7bc29c1705362529fbef966fd6635d1c54417f1de7b2fbd1cd020361c27678da9a2d610930111fd3a23964141f453a6a63aabf6841b11bfb3c024115a2b23d29a811833986a91fddab5ab5211fe79db9155430a64a2b0ffe55d4e2d240c21a20677ce9cd6b71db85d6b79379d336a41d84fd8b5af8f40bb331a5133c1c9ab12a97dbba2a68015592046ce5a6bef3c210bb23f4b104856c33781ee7d0af5f4737e4d7e90f57f80f1e70f810877597a8cd9999dc1c894736adf87c054b18108ac19c16a023186cbcb0c9e28628b2acb63101e925d9035a3a688e5681425359930b5ef945396518d0988570a812a19c0b85317b4b0cd50827b8a7a2721eaa62a49a36e2c6e0adb9467d312b88e2570d6601dc14d436c5ac21db6f37f1f58476f53ff0a7ee17cbd6878609eb85fc770531f6795695d8a97c4006e62955c858aa60aff4b9b644cd9fd12368562d8d8f74255a128358588f35387b25d0a502819538846753aeafe0650577b7e9135e34aa1f44fa2ab4910f47bff81e07dd7c1cc88dfa8edec3e9d5a35b43680598974d7ad7f68aae060a24840dd47fbfe8d7d7ffeb0ef97730a4f14f1005576bbf1edec3abd5fc29d448d4981f4b0efbdf7f6dc4b9f36fd15772802415588fea55a5eb88fda8af3f7b18fa4b45a2be8b3eb38af0009b23f0c6a30303d2b08f32f324145fd3559c276498b86b6dbd04416d1c5bdb53f0ce21136667f19d4b23f0de29147cafe3ab08e25e84f2b4898f6b48284868dc71294b45fc116da9fb7c336856bb71d4d9b921c7cb03d2062d310b71d431cd95f08e2114c617f2f108f2198e8d89f0e58c712f9a7952570767e3c96c82f8278f4d8ec6f07ac63fe6688f97ad10f771da795256776a681995655997f37525c9df97f74aacafcab3f8901dc681535a2b4fa4e9f3e3065fe256c0ad5d8b1bd73214a35ad50a802e8a65f3191c7a85185a854fdc014a257a6ccdfb5d7d12b45fe54cabdf32a08ea8410d8a99a94e11f6a54655e5446948261d4bdf72e1cc8c644e1ef3fa337b6bfcf2e69510c8f3e9b2a6dff726797b21ca58c164d14fe3c51c4af32af4ac4effe9a16695d53fcd8684c4ef3567322e58416d1a61ed759a8fc81410117aa57ca2986fafb03e5764cf866fde8d36a9df84d47920dabb5e2ac03857cd3417377d7dd2da9eb96e4a64be381f96e4937f0961415de9296bc6e492de8806118863a621210117bde92706cdd90ca68e1e1e1097934ac8722d9760d35d8b3e70dc9c8fc7a9082209530e28634428c841a9f9d30247ca6948815f9b9e5009283294472cb61743bea01b615d69f3a9541ffde8bfdd67befc3ae1ead57fffa3f176b1256659705257faa2c3bced52f2cf673b147f9f1a57b6bdfab8ff14f15deeb17dddb8fea9775a069d04dbbb2ebea77dd0a5c31187725451d13279e73ceeffb3e3c270a4bc52ad47d49bffbb2eb3a0c6474b5ac15ac325cc656acd0de51ba454d479187e8618f14ab0c6badf55461f774dc69ad2dfeef1b3badf53fee3e32566518e3c79da73b4fc7345540ece771a77526a74d674ed3171f503b3f95dabfbdd752f1fd7ce120ecefe958d6fdfd47c1a7e41d3bb88fdf8e34e8b69f3f5ddfb10fa2e71d60fbccda8ec1b8bdb7c06aed3a5e854a13bbea7c3962eb4c21efabf8a5f8f5b30e764bc52af3afe044e1dfa1501e60cbc2cf401dc3b720c66b60aac8ef21fef5defb0f55a11221c81355d6fdcefbafe8de7f67f4c639b5a8bd2f4d6c4db707ba5a0b6a07748b630754672c7547e651b3009feaaf528a41a565fd5947edd5ddbf9c364afab42ffc94524de9f7fe91f9825385ddd3ab0d9ac2823af32ff5766fb4a0cafcf3e76fb1a9475af05122bde0bba72106399c282e4f94835401745fd0009d3da0bbd697bf6888ab1e4ff7febd97013cb076792d8fdcb6fff5bd5b0fdaf62e18da3e4a8255e83e8bdffef585acca9c0443ed01073a9bfef7417307ad68918106336a18d5803c39b14de1eaae2fee5712847936145dd4ba670565f7f5bd9fe10b104ed0ddddcef1cd7f29b6610464e5cf8d2d114ba0fc274859e901ddf87b34dd7874ed5ac5fa98037aa2caecb5d556ea2ffc792c41d8d8c9205a8175a2a059000b452c8180645a5d901b13d49eb7a59a00f6bc2db5b03f1da324feb9499634ee8b302b0b5419adc276deb7b3e2605419a5b45a45007d0064114b0a44e8757488f4c97a4195554a93914b624969b45b85a0f61d3ba055a68d5665db71da8e906ca71bb725270fa1563c319e18cf39bf9c242e05778c195566c9aa2a8a1393f5442876bc42132d414141af4193d7e05dc80a21f0fbf34415c25ab072415233680605d99942b4b35a83c617f1f6306ff5bff6ef584e9b9e419a2cef67d085b5622c56457f7181df57c690ab3159ced8f8eff83948e9b5e40f7d2da389d7e988cb61c1b859e38b49b0caf21714259617067e5fbb0b56d9bd0fd31a9c335a9ed8d462b0fe0cd876dfb79ea8323da586d3f4c0d8cbcbaeaa74c4584e83c3b3d65a6b6db6576caeded8ab3868ecb57669846ded12525762cf9bd20edb0ace67228c387fe62f9201a8b4ee17e5a8533335200005d3160000180c060483c1804818864938da1e140008559c4a58422491468381401c0c040361180403100600000600200661189403c10ca705682b0f6848688833bac8539541a37951ef8549bf6159e4fd93cdc37a035bb327b8db4fbfc3f5ee2591926e2ea3f7c6578be960199d46576ad019e10380070693aeb45ba5f1b7594d221facf6660f3dbf5cc79330a044831c548b822f31ed25c91156f8d650145d5d43d23df376d45cb19a677e975c4686b70c648f8516e1d85cdb27e93daef113fac0182778a3590a630632c9256f97052addc23f25e48316a120606f6bfa818e049c6f0924c4f0f01418d31fbbc67d02e1e8f359579d125c39d658d1650c0e3f46bead983af2c6eceb02dd61d5c71d80b504f3aff41887b9ffa1ce50340115b04bda1cd02b599fd8625542d24d38cd19480cd41a7da00b25620598d1ad8cbb9f93083596aa0d2a376c30894d446f10129a8592c3379af32d59d330543458c0ee062807afbbc6e745247067990d7629cdce3055993f7ef48c9143157444ca7e37d6fb6046d63bcf2b6babc61a83e6189bd2a725b35657d709ac15a6689a03ca84cab58295afa29b92d3acedc7d202ec73c32f2c27a904d91b86a559128a310d2d42f640206101438732036519cabe8cc97a322d5d0e001c7eb6d170807ad52457e41ac3472954307b17e5c574ea9b105ff8a07cbe6eaaaaf70ed1a0c893d862080bab7556725d589d245f4a8addd5f650d47ac39ec2246f411955e97f1b38d110bbcb1e529cd11b15b33fb29d5ec35961bbb4d9001d7b4409e912143a2f9c30e7527601ce17d414f4874aced4e0c6737a66c5c8012a7cca55669b01f82bdc86d359ca024e5c61add27d8e5098a06453f63b6a44afbed92f381efe3dea6361c84703c5eaab41f6297ff77ed84c2ce4cb25a2c9421c9e48535ef8fbc1f217792da290df801655900d8ccfe3848f3e8afa22e8b3b5d70d3e17bc87f23cae4c55ea9fcf0b0646b40ed3156269e9cadac79b15f8dfa935117927d6583ff40298e87d58587e64e9b3ec8c3a8277cfe6d76109530680f474c894c81133326a9fbedb8c6b9d2675a565d1a6c04716b1c1df1f2b64ffd3f2554096183d7b6f3c009ee28435ea0424035d18bc6fd00c1de43ddc7a6bf8e51a8ef488320aa6e001b77cd0af688e828c9d5910ad5a8eee2abbaee08bf2c22055c20ad15dedcbdce3fed346e225f85bc5622d56bbffc7fe57fd4e29a302124a760d33747ca78668dbd87d8268e2e73b6f5d78e5bd99bd8ea88a9d96b50f41959507dd93e161d26c2e15762a21d07e91343fb91166706868798c82550bdc72b68eca745c5c45bfa671fc8f3c44970cb35f7d5f793fa2a3cbe96bc1b07e20c0cbb305349f406c931c07b1c980f1da2f33695c20a7a1b46f94746b4181391d5efc14fc238b1bab337b021de903a4f2c6d3d18b12b244d55628d138842a2cf10239baf5d307be2d7ddbf689162f9d87c8dbbe735c62db9b19ed06486c17cd805c31f228d40062c5cc05e282f2870866d1ed4f63b7960dc4059abe36ffd954476e8c4b2c51104533e795eba28198c8f3e280cddaa51d1b3dd79a896d761115c7fc44d2eea07c3058375028bd22a287b5547f3e4ea3b35bcc1450b07cfcf77c5e23fa34987e5dea48d21ecee71f53286f3eea32922a91561ee24ebe86f50c8040a6555429141a4b82e82582f0193d81f5bbb8c7f35e2b574abea547d33da1122f9fc4e9d38994e83197f7f1da5b0dda3ab78a171b35a7774df5dc9a5435656c07b8c537933b972a395c3910aa9adeeb609d7186302f7399df3d90406338804829f94e29732dac5c252828400990e12dd1b2fc72714154dd16e7277da17377c4bd6f26bd408f7740aade33ab082d5d9b2d5ae0f0ac87f38068787323dd9d6e0f847bb2eb267f4d475232b204e913fc3c1d1d3f15b99cfe940d41ec724ba8ff5dd1818b2d2520b0441ad9859431ff79e2e8cc43ca915d90a89942228b65b5ce03ca831c3ad9479455a6ae6bb8d368467f7c6701083a89ee2b0bb85e5304f72d0265eaed11f42b212f2fc4bde7f5d351f2869f130838de03b0622e7c0bee18735703200878ef41a76f0e4351976bedb759fff7950b2fe77b9c854916c5a361df2568811e1871f6ac035044e8a24d9932e610c055621f40df1848541317a9dd60e3d3db5876363d5d0d54abf28d78487e936000f50a98f1f54990015cadbeed3445a499830d4a0c4e21b71a82d4c5937dddddfafeab20442b044b91eb427d83ce44e799fdd9354530e4b8863fff2a2ef369e4f713298c9db9244d3cad00cec041380bd3d9f5574c84f27928e148cf028723fc923983bc694ddd7ed6ac1c4af894c2b8a084b6342005d42472ab213898e2cbaa401e80770c49d4f6cdecd8ed5e76c3a624f84cf5d973d22a5aa0441b52364708270c2674355b5028e4f19d61f2d2fa4a1a5cc11c2bc8e008c76b3a8caf97c988ca183c582780229a64c958a673c98883ca6b4e046f3138655daa3d07bf933077137333ad293919614c78195fc00e828a340ea8924185193825e136f75150451d76ee40874bb4095570e1e0866afd8a96d2f34825847b3ac7c347c8f97af25e7b2ed20c1eca01d59f21c05e2ddf86b12df02f65000f7e08c083bbf8663ad53326ac036a771a2105f95fe2ca6b253e4f4f4960d94d678a7613a845206e21dff6b00d0d0f4a2145a34dbe6d08c616529f38e2a112735a4eaf04607c6d83f18750dee49622e035202cb098f63289a5a4a8bbdab590d34b1fd2c5726da7ed3a48d2b8d1cbab12ee400f47a30eaaf351bf701431ca6d09a32df95c7c3c2fedf28a03d679a94de44270026068807286bb3c0d807da0d10c55433d19a099c4afc423595eb13b9bae3c0018d50be62e77f9fe04af5fc2d3787173dfe97d481617145da23f7a50d36642d93db202ec508ac685886292bf0c53d1ca0a80557fc5996b582fd7f410fd41b00f9245c7e635cbb54d9487c0a724b08af033dd82016b547a97e1f49e8b134dfb13e66caaa74a216eb289f3fc3a26d2542488096a4deb98cba0bd5de14643b1787e0f749a10292c6e57ca1ff1005e5988a96197eefa313ec09ee7d6b235b9f144a4402ce60a1d3c31005a284b40c7aad097f6fc65b06fb5de26168c3e163b890f8fbd2d019c4fd1c5fc7948fe3699fc12b80a18a062edbcca390a4e3964fb8ebd615351672f7d6c1d2294ae086068c6364ca6e1f27907c5d4f9f0400931734128f4737c433171fb393c9f06a8abd4a2c13a0adf883918941c2cb4273b699e03b633f3e641489dd7705c245c677594fafbb47b0cda7d7c9b71cd42403509dab2e15c393875ac6460056ab54074dc0083da8e57b526663157d216f71db0fac7468ac7699a156538a413170e50190486d7c1233988028f32c80f66a8f2fd2b46ddfb19b6d757a398fe043197536d60411a27e1f4c7d60f0d7144e90fe26f253f0364541c8226a66a3f4da5df9dfe927e140cf639b6e1f34c7841ff6e681e6e40b888822e8d9591b3018e6893e426b48c6aab4d021b143d4d1ab4fe4fbf2340ebaaa86d0f1acf0264f985c6712ff0bbbf90333d0fb2defc5ec52c08b87902f56e0d5303e8e985dfa339c8a7419022176164ce2b60cd77843818b758b4796d05a321f2275f407137206014b7a0fd9110d022526eb842abc4c8e5d3edad68e16208ccf8319b5466abf24af7ac0ab6dc4dfc012f237152e887866db465aa952b1aad20e9c98ee6f3db906a282f56f1ab051d827f37c7dce04a9db2d877e3928b91a24ca1e68d74fb8a5f3cdf3bfa60e057e89ea982a77ed0cc0741f8e0bc9de9a19c745b8ab05411c4c3a2716612651e32a3f408bba4d049f4a556e2a3e4f472e223727e032df0e358dcab9ca73501e57297a274cfc1c71523c1cc7e5a40b069ed06fdf0cd82ee01bf2bbcd1b1e49d16aa11c3b4e1115a995f7dee42049be8a3e4ace51f3af6311ae10a6f2f6a549e8631053329decf3bc59bb4475f6132d0023eda18b1c6af4e604d41b3aac50f79c56957a2fe84f115a46edb68a07c5750f28d3f741af0e583f6ac3a4ce5b22ceb46ed4750555484bd4c573cf1803cef481f06ab69b916640d51434654b6112055fc0d1e5ef63c0fb86b12492ef22eca3e7d605635a4f0b1cca88904e1dc91034272b142785d6186e1882c2dd83159a63bc5129789a75abfcafb1632cfa3796c841f6aa2f118eecd9470a9a49edac759227b5c9a3a1551a4254d28a8c21e384f04bb6e77711193bb7c6316363e44ec04fb5f98506980578beeee53acc176c2b8ea6f48ad9d858cc440897b6b314adce4635e55ed5face7ee8a4c1ba30522f903cff746c122243dc5b19e91c34a29865478344fa574e347434793d4c027fe5c0e3af52f169301a7950195879a8ac08efb16facc4b356df3376531702b046f44ae30b27fdf912c7adf32c983748df8809fa355a1168db3b5b2e0ae5c612543025f88a96b7cdf181009fadb1eeee4cad3da779510f19748e875babff900a8bc58d57a386ff03d821c439e5e45125dfd39ea81548d4421ec852959ae039fd186ceac9fac853e5c9f017f6f3048a02a8ff1e7fa590d62bf6e5961a6d5832aaa0c6cbf2dab84da28a1fe4ac16639341ba168bef50c16cbd630b9dfa9d6d769844b2d4d822cd24bced5fd6e51fca52d5988d274932bcd546ef0c23c07883ae8275c26adc8024e3ad5af551cd7dd2ca2014f1c76ee71a70dea27207afa0f1f11fff9a0982e329d5d29a1968f7235587785b12c18bf29feb64e1ba616a6e7fa47734ed3809975f7b7a1b9647baa0d9d7fb118368900f0f9a600a1a915720a833d2a1cb33aadf67c618dd9179db39f4c2997ebf75e6cd7757485bd35769d1dcb69488c1fd8714d5b286d78451f485e1ab7a4ae838ecfce441f047c8a8d9436c6103cb39b9236b65856d77eba4150c345543d1ee4184d333e7f1c208716efe10dba116b8b01f8bd52086b8be86e15a4341e421d2530fa67f86a6919e09aa81284ab89174c3f12a5a7268ab76a106cba0902c161b526a909f905700f5f5582ad77c44ef40272dfb38c63bac3d390feb8ab18dbe846b8c868bccc68a6fe07432b17a59d6311301c55750d058738ec3f4b5fd458b04280f6f4415344b8383ce8de54b6554247c4004f224436054a2272bf3c5152ece0007f0651e96e90950396d781ec48027f6af206067f65c9e40d4cb8fdecacf3fc45bb1549777b57e074d4b102649dcaf27331c7140ee533a218ef05509c4b4e09dec72166b5335d6f32761ab453a19c30ea02f876e261c04a643b2be651aa1953813860f826e5eb2e93a896aa291c2a2769fd48ddb506a540a29330b7544a84dd355e75577db0bb604e4c3eaf28658986177de77617626e53c6dd755364a9203b3a6fceab04b2b15ce8c89ef21a3c3ba9b28685888fe6f82a0a92954b963df78d79e739ec5af4f45a900fb9c74ae75c0c4de6d4e8d672def184f631918384dbcf55b6b950d416c9391a081e3a223ddbd74e68e5b9f14b03bdf3aadc9175f362dd496c2babe6260379030db2dd5f6678bab82972589ee4cd0167217b89a8a165fbe83f94f49823385b9bca32dbc41602cc96cc7ca8331024b361aa5f258847854d685c5a351568253394e774709c4c9992ced86a75d199d34fbf47370f10c80cc8da06fd0db9596b237fdd2f4dfdea8651465e59c141d488aa4dce1d078b208104bcdb8f69f67e1167c76a990f2f68f2e39f20063005f37db423bafd56260e8ccc02877e8b93ae816e7ce6711e2d624c3234d792651545e8ee476e51123437342dfdf46e5b032c839c569af8c33cd24b2fc03fd1370840331ca72eb3b3b117f4cbbde8823c11047de906beadd0350c7aabb1a4954572feb83c862311bca535002bd4e14abd075bc5e0bedfba0b4b2070d0e35cf45ba8fea90bbb6d3ce0562e96bbda24cf14e9cb8c2ca728b54e805789e2ff62271c1c56b5e8af471931c7120d26bdcfaa89edf4d46a66c08d3f5a55aa11dabaf853e925feb07986b967e325e3edca89a1ee62251f5d94aa4418f45d122a2ed7592b6cef850aedde6d5ed8fecf6630a3d03627efbfd62449ba45fee3321b23eebbc7ec6acd55507774a2d798ceb1d152636e531a309efb5208e07a791ce943a2c34267e34f66304a0aec4cbbed58991be875b248884c77d3c766dfefdd0e4b6af04f5815882d0b25ec451478613bce36a692aeacad05c7325b5d01218296127450309fac0a74809e91156912d37f039c1940b638ef3d36a9026dd8d507cf8513916fb80129a75abb09add4b0deaf1c3ec26c081f268e0d88436eda8704ea7a7b34718e8c6f601c08ad4891c0d5c2752c1654887863c74395ae3aa93e8c7cf0ec85204bb476723d9b392c7e06a87df94e84058f18f6839b11792bca261587041034ad82a87e1624ea6d656449aae40d6c0dfdb10c00377fe97472163ebf49234f41cb19e29e2b0be0b5d7b1fe55a2fe7142228136a44197fc5c437371ba230b7bb944631338bad8425d7bfef9475b3f74ddb126e4823fb2ceee9c5e8bbc2e26d384af28bd0f264ec11d647847f2b3401efec36091bd2d4eb36d3164b4d27cfea582a26cffed7ff71de563b7b8cef64b4056bab39fefae6b4b477520efa53cc42664d9e5b61c06bc6edebc12ae3044af02b74b21a739ffd2eff4d7d538591f333e12e505b452f0857e47bfc76c9e46c4ad9bc7efa75acd135894743db0a5442c69abe89050f4692781e3496378a9a254b61882d77919da71402ee0c16ca4b39aab6ee231f296cb33e8abe3bbf4e356799278a722611b1828f6a9326e1260bf12a553b81bb85246f2689151c6fc2e82f14a705dacff0308d014bdd7b188dd3a28f460df3dec4784c7b3c3152df4ebfae964dbd9ea06eafc8df872f8d5a10d3ea552dda1fa6724025039edd692e11e1132255a460eaa9825fc28bc7f3576bfc31e3956362c5c3bd28197169a550b3a1190852b19b124a70a493892ad1662a21085a359d242a70249620eb3fa8300fce9698cfced16ac401059fa029e00891aa46be6d4f7ccad0d735b8afafe02ca2d43b657a05e62022ff246dff381116d6cd8fbef3dc75763bcc0325e56e26a419add17145e9690cad21fd6029e4d20f6cacafcd93ebfec1d1b074084405a438ad6164f332045612edaa7f34470a28bccdac4c84cf1b26aee43a0083a415c08f5b7938407a00dc09a17aa44cf8fce362fd8070cb04f6cc038d4fac9cb1c6b814c08ec31960e345ad5856eb35ae3dfa5630561446b8d77ff3fa4c2d97fdc4d27c0c6793620241343350153b5d2e877ad380a1dba43463141eab5bdcfb09ece319e87969c1c8a0ee343f4b6d4083574f81e54043874b06c8af57a1a7a76f1d071c0f437d68413c3762427e5b8c1fa5af76611618fe1ba39886541f629619561d10b004fc1172fddc9316795857bd94be1a171e2beb1cf8c8f7e35af348fd045bb988fc5d1a44be0afe3686ca83decd7a5b586070eafc338e0b9996d7e88e3b7f24e307b1948199f4cb6ba5ab35e17a5d0b32b67998f60baf8346b84a50118a0fd18c8e3e93c6be33d6894d328a7f84cda28aad77e3d4aa31109bfd67899ea948851df6a85c32e92fa209ea1a9a4b062b9bad2573719b5f1a9c3d4b1f1564a5552aaebab578f7e0b66c83cbcfada6db04cbf0cb439a6c855fe126b01e0819fd35b56b74e6e6576d3815e00979b4e1267a51c8d7d49f31361072940a0adbc3bb53c93e29d1cbdb4938537431594682e29747070f7f610c50de16809445b3a4ee9a8f540fd5d3d116d422f419af5e54eef710f6454555a97a3cd00d56cf0d7f9bc86a5dcb5dae662cb27b1e0ef6021d0d60581133d8eaa15041ef7696be7a7e9b4161ef7cc6989407517c992092ff5f67cc5169ff76ab708359a113be64136b7fc546b68582a20accf52aa4cea5621e8212d7230393fb2e9756c54300861e0eb468815c44780cbbdb603a8e84af114948d0097f0ec650721622d23d7b581153a0030e696db02b906947b3c7d90961b007e6902ae2dd0fa4f53e1ee1547f06729420045f2afd5f69bb5f7ba10ea60b3ac33c2caab41bca26f4bc6ce6cdf2d66ea11ca8c3d3ad144c93c76425c075ad2ffa746ab8c92ff78d146a37b9457b70fa9e78a5292d406ab1e8a8cf451dbca58f9d9f46962d115213283efb22fd3016b288281ff0599c5e9f9e0f70008c607c422cec0be312831c5584768209a8234b0a536f8f248a300a41df2a3199105d2b5d24a78ec6f147e22c455077f33ee1502ea971e8579426dcc1e95201303af18e5e72b3830e3d4824f28a2e4851f8bb5774543708c7d56ba8ef956f199a3d8de98b23594a4ec887aed52ac9053694e7b246d399becf92631fcde62077ffb990bd101ce84d524153bf5ab4414f55565de18b536b7b7a85ab387684092f8dfb9bd689de55513c403c88656b4e9f36cd1ff0becb9692b1a549e1ef294488bd56e3aae992a8bf155b39fd5706364ffed721cb5c6ced0c23180b6371f8ad31ec08454a22361a77925f7f7f09cc89dccb661471d052aee6c4f33990a0371787a0d309bbee9a0a304251b0a0c871394c10750792b4733bd7cc9457f5ebd65303698deabe8ce6c0897cae4b0ee14683c76e6f81459de10113b612de20424d1056c81e86be8de2dd088d213c67fcf5873ac1bdb7db86c38c6855bbcf0ba70739c96c86180cca18ce958c95932e775d1306ad249d4efc68d4ec3c78ab10f3a2eed4f475af09f98825a30f40d62410e5793e73114389b31d8b0b26d72982ca2e450f167b728bf50a6367c64c1f20801e35e104fd55ec73a2bc0bbb86f94ee8c6a5ff8826bfcc523a6d71a210954d45909cd183fd872969b958c047627e168b43668a33237e9a8c0c4ff62d1cffa0b5d0726799a3984ccf11318841f4da6b5ce5c5c7eb481ca324bdc46c76e750569cbbc464cafaca1fb6d1215abf5361a2482d84836d22bd9714ba3addecff3824725ce60105ad4c5be00e94082b7bddcb04f85b8bcb80beb903d67eb2f88ae1d98c0d4797b117fff191d8a6520ae883a4438557d98c7c71a58f5793b8f12d57c528eb5a30ed5d480472c435816fd4cb4bd73d73b6f35da082d9447a61437f288ad0b02a96acb0322e224fca711be0189f8089b8f10091b1b2f92b30842c4db096c0557fac9bc3c47f8d2686b18a516dd294ea2ac3f1765bc15082bd0ce8e4cc189c31ebace8391420a06c388c9851f964710e727fc21c8be3cd15a87d8dc1bc91e44c441b8416705168dbf545446ef08c6a90967a626245802ab1e6acd3af09d41e8e909390a225b83390c64fb682b92976c26a1007459bfaeb448ffe9978f620b601892b81f7c9083d2e97f2fab065d837d8f386e455ff2279bb1d73543abfb527d3e2b676731399ba35696e08c4d66a3075196da5c412b481a2096438c8135f4698b8e6f3d876c9f91ad0e2aaf78b93cb13f6af61284178aabdc46a4275f48d514d9b53481a664649e8d1e215abcb2e8c5405f138aafcd6765d65b6696374301e2e9b1cc932009111ce85c2ee07776878f41b944df2d099935103ccd789f4905dcb533cf5015f5fd32fcbd0ba36c20417eb2f7e802df2303885240c4b5709ff71b248a379bfe59e37c317a9f812bac288519db01cb40af8830745f26e0cd06ab9fb30068b99b21052ef71cdde7563c93d4eee096df893ebf9a35b76372963c2c2711e4995f8d700b9335ef972ccf22c8863773574b35d5776ba7111be4b4319df58c64f58718cda239aa5789702b3639d33a92778fa677a2b2757332cacae698ce57beb5ee3cc4268f41f4cd1503f8ee2c574378d70f8f050c18169efc6d1ab83c9e86a3b831be7a7dce215c42ea59ab84cb29da7e1cbdf674b8a76d8f3cba176d568939d251eb26ff80303d581d493fab93b550b6768ea73dc00e356a02f5af76192746741b54664c3c6e5427d6b87d1492d4e39f8979cf3236b9c3a79e09210e07ebb41cfaa72e37b43dd67470199f8a8d1c972e997afe2c6465fc901072b1987833cbaabf428290a52fd2095aad9cd56ebf387bb2efa840a3eb2d4f8ea2cd8049250ed298832999c570d69be10a0e3300fe0f80516cfcb2a9ffb5a34b349acd59c34545882af75515e8d75729fa84d1682f6147279ac43acd55680d15739d927f840ecefaf62a1994898e794dbe6f27670633ad3de326cf80a5418a15feabc767eac6e8abda2245ee447470cbba78245c449345c0c4e877d05cb189cfa0f958015df4601a17d78a0845ed7461fed5daba3ce9afe7fc4575be08414ce6aa93b2c8d61381e06582223b21f13c32b4b1a6b6e3872182058d2f692cf87e02b9ac390b5f592496af284c1ea1c8d08aad38b52e3179fa44f3a4fb104d4c34d454e41a378abe582f205cfb1d4a324f3ac7d05167752b5828cdc98ff898c6c6a90204cac5cc334560f70c0d1663f7da9a3742b0d0cd81ae903fe4f171cbce7b51520288e8dcc7f800c7282d7f8195dff871af36da8c4ac48ff9a09b71402acdec70cb5194c39b62fabc9e7b1b11c7a0240a4bd92406d019dfbb359565871940e94ed9486bd99a757d7a033473b10741f67b9465bd29062c82bca3ecdc70f7dd6bb20238ef10e77c1ae662d3d0c7780500cf1e8c618fa74ef494d51153401c1621ae25e5ebb3041378b09f9542e6ad26266150fab115ca38e317f9123f5013b5869e6a912897e2b9281f9d48a4b0180919e4622b051f3579ada894f06efafccf2e1372672403c779ecb2edd1e84b3d830cfb46089bc25263d8e1c2267f3a67ac53b355de26732d9c33923340fe47cc659fd14d8098ea2fd209948eb70e9f42a480882bb29acd88d28dbd867224a7fa87127d0232f9fd9273d0d284fc20e742236b0b9526aaf905da8b3c7adea0e3741109332c00a555de770f1a4e721ccfd864e24c49d5607b13cb85674d02fb57760d89da6a82c631abd6672c627a834141a30eabd63ec5653a8a6764700df3c09d658cee46f10ccfc889e8e774d31ae7ec64e8ccdc7d213f336234a5bddb999d395d10256b73613111e92de26a2a14a7bb9c4bd2edd047613a3270f5db516e2fd3b2aac8ea35137aa2e4b60f68648c1ae2146a0af50992d3163a4ef881719f441e91882ad14ca7fd3cf9a5183ac37aa1845298b679529594c819f98f2977366150242958c83a285c768408a7d4d133c00e8258968bc7ce34bd6db1d01466743836c368710db2f77af688da5de89c6dfc01509c77e8c2f58dd5f218b4b10019bbefcae63572d3c3efc6e320282701b6bdc4bf4fa510daf7496c2fb501330daabcacdae18e80a25c28086e91100fd12010edbe6c126fcb2552142c1b160ae502d0c00ad982c6fa4caba60205f7a3f0316de590c328b3049cf7be73abe891a773e00b7f509344160edc1146742b35a083d5350b9404513dfc4e730011f1c7caf87ac7f48e9d9fda6753564cc1a26d490aebccdf3f622008399c0bf3a5b71adadcb7e641bcc3a7853f20ffcb6776ca55cf701d0f8a0b5889f5a39fe6030a5169fe88ed16335a95e30cee042509b97d104a7005110d96f7d98c6de7ef6a3694be7ecc7afc193c1a6faec8ce3bebe0e51ae670f1bb4f1a69566b8c2f2a742e7f684b6cc2e39af89e01ddd167f10d952952d2a0f8edf910707b4d808d24bf8949072e0cbc52de0feec05fb9fa97e0aa8abb641930f3126b21c47f4bead108c970687e9b004620d1bbc08c9542d88420a591afaa08ef106378d5bfecb24c4f69dcddd6432fb7bda298c9dd8a7529f24b02f163c01d0b6ff472a8b0d902d73329435ce16158e1bb61b8d1f2c2ef1289741a63b966d1137fb98b67fa82cb35cbd2f83451cf6bdaaa6477d9486063417e0454d0c10024334ad16f67315898bbfbed27d68386c795722d8d5023e95d64c02a967dc1309ca7e8a28168ad9422701e288f3ce74ed47910827532d94ef2f01e0c3425581c59f0f0eea7716f2761d24ef50d575e9d6557f8941e2a7d1b58aafff818b0da85bd2c5ce353744ac68dc71152649cf9c285de0b064c4215a4be545b71af5e35cbc531942784900fa2005592b0f95db31a3558be9cb2ffe66839f4a17e0a1a06e2da1cfbc921607dc490804958e43e31c4c97b9132e01cb473fbd48dc13728870f8bac1df4147b09697c387d3954ec1959bd58e609379c4d4434191deaa9b13feb06c1867f8816ff5dc2e4ae0589ba8184931ecbdd05e98d2df9bba0e620952eb0e9129ab8e41e4b214f649727f2a8c32e0cd62f1c0389a77451ba3be006211e295af7edfc8585847dce58eedde03183d2e283ab4d5a58aa3eaae68169406adb57b6906cd4f0eee9dbe3238d936555120e41335e1fce45b21d4a1df33763209eb65f7188108fcfa0b0390c1f4fb60a4c716fd7f5718274dfdb29bcf7d185df174a06d7abc338d9526ec451654bdfb70521dbb23cd206921fab412e88c31f6a2a7022a31c4c49bf588c6f08d13b977ec6243863eab36d170ff1764d8e127d67b186963862e5a68fd4439a31abcd0323138cc9c7a2dd26a327ac3f5b1d4c0da6043f2e91327bfd4ad641b146119d47b4ee47cae2485eec218828ba54b843fbcb6b47094a3f2729f934639feb9b893958673fcd977cdc80193e5d421d7dfe293e8ba0155e6ead45b07b4060c3ea2c83a3e3224bec55362e669d0c74f1623a7e127e67bc7714f6440205f4e25d5b3bb7d84d04c91d852482c69bd41942738ca43a5ff2fa0d92f7b2366651d745b7d72512c6228a702b3cb0800ed27d9510cfded966865caef318af0499d198a6ec2d5a1e23f1d3e3108b824c1eb43a1191991f4fd15dd39a571cc42a709dd8a93a2e0e55aaa284f274e1cc748c1f0a32e016c13b6589366446cd6755ef52c35e55a7e42d763d09c90184d23665361181ce78645999240363f800859af332af7328283bf5e2c32ac80abe500cc86610f64c34dba7cf249a8d85d6fbae8199387e54c9026ac2a356f2ed99f0b494d7a1c8412c753de9728f51a1655ad77912d28c172ddd5954691db3e09465a772ab01fdd430798c2c9c2528b57625b888817250ef21d63b013536728711ee6f07c363a7c81c871867641000ccab687356bf42b851752c00d065b3154313cdbca453f1db0371a4118f8a9b8b34438662312f2d7fbcfcefb38fa9b6562984166d29d2888d4a6d19138dd38a87aa6777a0342c26b13fb36fd974946f29c970aeccccc6c0a79773210df529aa7fb2e189729205c7e13f00d7297f880a0e2c02f01c511cde009b1adcbeb00f702a0ba8f10b1c8824bb4bbebb41b3e8b9cadc51df18b13e8e3882130ab0eadc213b46f1228c63d117877a6ebcdb42f7399677c5d4c56002f489fecae69e3e28596bd22b52f21637b35565ddcd16046296b76c66d6f47836d843a96d82a3b23df1451d52560d0778a55b50a1d5b4809d01671f2f96d6551c55b2f4dd8351e9b8a35e45322a9071f48bd354b952c3cca46aeeb2ad712253da5c52423c624505529a8e2c68645a0106eaab0a737bd24aee26f31f0511977f21739661b3a78323bbcb3c516753551fcfc1d09a34ceb663cda9ef67619a38317a0bc23853848f7a8aba5e20e50232ebf0858f18f41192b08b1c986d196d34233d60350fead210f6c58f7cb8cdb0afaa52a52a9c64022e303e269bc9e6e0248b950325e27e72e5db07512b469ed88d896191b75ab881df58b74db0cfb7300f41829e007cbc0d59dec6cc7b4a1ccd23e4b2232ee57a0729d8a662395bbb4e93b52c4b1070e11ad652676aeac5109e9ee7a6b833019d826eb61d903ff4c1687138a8c4eb6f801634646c08afee808e295b0a25aafd8943e22347b8ceb94d5ea95cdb5c577ddcf386c0c982565f7cf6c28914fae834dd29b5c03e9448b6c13ae7b14ddba4e3543845734dc55f4487149747ba671877e5eca05145d50724675db09b0f7c4974937632789b9fb86983469fa369103584ab60aae833dae10a4287d510fe550533402fa52d471804313181b4c68c7cec9a0150014a2e0dedd263e343e788d844057089097ebb97127812491a1b12bc7cf1f9119f884c2fe5832485e3c26079f453e90656460e10c29e5d2aef6d89e64821e470253ecc1b7c30da27ce9a0707682515782e63d967172a64d4cda24a94ea30a0a3d42646c15e6497f418f51b9e5dbcc8e7bba9b7272e1cbadb4624422da46a2e6335a10f63844819adff6caadaff2abfac63e1139f8d7a4729d98538acbf176dbe514422abe0f83b31205e10a35bfbf6d3eacedfa9405caf05a4fdcbd6843d52d0769a06b1d09062d809f7692d678e6310c6e6cab492e0c8f440546436cdf7b986c8229124504f961006b7236d3fb56422e50357120b627c11959909c7e2f5e33ed2e203895a12a6c2fd2d9187ea593d92330b0c5441109ba8d021c7bb7563d23a71cbe109f331680e9085cdcb2772ffc7c54a713c0c78ccb9dfb66eafc377b7281209f58ecd42e299644b80129dcd54d8a00741ad4b5fe1661539a5c051a6d24270c7e9e8c3a8df3d1898a0db06a301b60efa3e2acd26b89ee026923d188709066a3f7cb8276f620275e50b00289cace2dfe227a462a7638818dc8f434a8d036f667606f9e91fcfe054830e0de985372d9b43955dee96e73b3994ed62bd22eb1cfe304a56e9f378cfd8c49afd895d7020b2262a63e88124060bc0a1712cfc1824fc1f61b024e814cecbf458b702f1986f5fd0069f1e06f9ea8b1b0068f54321c86f8fb65b17299fad8a6724807391f0b4700fb67c1658d5ed200bf586153e802d6ee90bb28453b42ad5efda5ab7034acb553113dc813221703f81354a8589db7753d38120ae08232a89b1f403ba1474dbcad267632ce3b9281531c6fd7df44aea621e59f526188b65bdd56aeda39e62bf032f8a8505dc7698709964c5d38798adc32f4a9c604240fd0ce6ed062077c9cd8a4876efd58795eeda29dd24615c147e518f588e378085f9ca93dace927cef1065dabf544cac97f062a65082a8b02432aa271b9115d957afb184314a9bb0af96e04c5d2c1cbb6245a69f44fb9ca622b6161cfb781b328332a15556a9b14ef1e64ab295b76962e9fe41ee675076512aa8ae1a15fb1954dd911f2c1a6c3f3589665648a9900123bfd8ccf2387aac067eaad8789c2b85b172d2491dc020d08a8bbc6e5ab9c871068da50d264910395227d6ae48af8ae24594cc0857cb735782e00f55b45e027618d15f37ff78add59caaab32c406c80fe160a8e9407ca5ca73971a1dc77197542919e3025b79f81a2365425c02855f98c713254a6a9390290e2c67e62496044f6f72f41629e2abd81bc33bf63c3b892254c5322c608a807a2bee27f4ba516ab6f7b21990aaefd5ee1934952cd608a3576f29438a1d1ae1f24b654ff936e5e3a954422de9613849328bdd976e8671824f91eca75b87b3e122aacf48960d22a1e341ec7202bacf0d6460504e615507f5c385a6be85e47141e67621b97e5cfa54662a4f3b31a01ac9a34275948395daf3afc346460f2518ba8530188343f4b6ba05003088d3930ad5c01d78bc00b474f311afaed64803c712fd5652c3a88170a45dffefbdf7de524a2965f60501064806b6cdebf84f322a6c1df89a4ade7d95fe1b24d34bf8dff22f782d5ffc2cbfc3ebf0583e87c7e1af3cf15df0377c0bdecab3e06df81a7e98deb74fc3cff0559ecacbf031fc9417a6f71f867fc195f38f5fc14bf9280fe59f7cf09d7c131926b3e4227a678df3d92bd22fd71d40f51e4dbe7f34f793bfdfeadbb71ef7ee7bdc3bf791ef580dec07ebc21fb36f63f871f00dee1aa7c4e9f7f7bf2e41bca8abfbb67c2bc2eaf29a2c28b9ce79a9bce58f7fea8b49bc33c9b5d6fbe4da96d6645dfbcb3dee6d4d205ef6933c509b63c3b695cfd3e4e593e59f6f9e82f2eb2f4f415ab591ffe793a711e7c93b066e1794e4fb6422b946a14c24cf1de6e4d9921cb52ed47d9c8e3d9023b947bdf38bf6a033be270f205e48b583176cf6acb6da5a6bb5b5d6eabc6d09b4a31ded68cd27adb5d6dc5f6e5cecdbda711cc7519376dc76bfb5d63ef9e4b6e3de5d4832f591da4c3749529b4986fc5c7e6967e697aa8d2449f2343727d537416a33912fb3f7de9a97dc363e69efaa0372652d0fa96640a68f2a89ddf70a17b1cbda8c83b5a5097ca4f66f92a4f76d37f9cbb4b4597d13a45a93d0291e2281f808b481506c32710d948130103a9a4cfc02e9f36d47c9fbe3e7fbe49be3978fde3fd50adcabae3a483bf969276d378de49b6af9fa473548f75b81f175c7b702e35f180ee9a8ae3ac8f6c4790716e21b6111af5cf08cfcabf27cc7bf6fa3f71ed5bf278b8735d8d99e52e65b79d36df966cbb89e6f59ddc21912a4b6cd850b5ef31614cbf22be731ab1ad7f81cd78e9147923bccc842139380bc2790f10072eaf6a78ba10345ad15315a6badc5d6aa36ad71995e6bc9972234ed240984f108b48150d234720d948150d334720c849e26b23c05e1a00bc0f4fce7a983b457409340e849be00ddd31ba0470a509b6724107a4d2487b940c729098481d06cda3c036920749b36df40e868da7c04ca7a936456399045c8f82a8171ee66b9176a745981e40331e8096131e6173e6881500798084921450c3e27a58350049a0553b92345b82dd9c023c70d2523478408096d1059398291428b139c2d9610a0280b4fa6bceb361bb4409d919e9f83259f635aa1db5e4676b181435211bc81898b2b40b6efb8c69219884080024825378112a0104a3265ca0d474c46f09978a1ca708b95194c1aa30b153babd0a9eafe864aa4c8b6bc59546449c96e7f3aa25a038a5475a3cb91cac418c6d8d2cd6e7f3a61b7a5df82d6b3a5b5b93ac64f05f88b2105eb7b24e79cf1939c73c6c19c73c65064411cdcfb31939c73c6c19cf3fd9cf5939c73c6b7e3bf50302e332d9873cef849bef7e29c73cef9628dd515beaac62e9ba10841b0c293c98e264c726e94ae50c9698273790a510bcefd6e92ef2d3bd9fb6fb79b122c7a280609174b104d22025d307877e38f2114dc9d89c90e263c4c4e346e52048582480c454070d520990108082e1e0b435ae00587a615a3148641126479bbdd48903b678406a17e7f54e203832b82c34736b383098fde0404950e931d4d4050352973137d7b7e9cae01117ee3dd01758cbc20098c6fd8092d26c78fd624f3300a405cf4fb4199000c21a141a689c6bd03dbd34ece9e9d4204c5d94b0108b65816b9d1a2db6210bbf2cdba4c91da6448bc2af70ed2dbedd6c77ed555905649dc9ed5db44e79cb5be97847b6d60c414df7b3f0454a3a89b39be27ad2f3e81627e8229a6f74f23ee7d8d6f085b885770ef04d4de1bfb4dd6ce847ce83ff140e35bb5f4e95c9ad24bc55a6b8139e7d2f2b4c8170513b264c992a5a3eedb13cc0bee1d81c26f734a16a97d5bd9ef08a84bb422ec15ab45cbb57f39c097981fc522dcdd2dfa2089d56a066e56ed2562d5763b16426350985ac0e8b0b3c30503cc0e37483b472cdc0ca5f62d5984d9c1943350137ae8bd6a2aa3695d03eeb2032e69903b140921613884cb110f00c9fa2f868b9246cfff28ac9800011013c4195bca6e7f314820c15b6089c609447c2ab8402447d2911d32f8181e490a923094446315167e317e50521821f2801974395680a4248b0a66c0c39772468c5b03ba3049228ee08348099624bda0a2a30524c061d465c83641cf6f92c11b81a5fec1d042d3ed0f860c1dedf60723d8c2deff012758a0a002156cbc20b7a20a09396660c147cf061268ca1b4df46f08c86fc8c86fa8088e1862b8b99e64edb5d6da7c4dbc0ade650dddcde597b5e59cb32dedced6199de45ea4939cab74a2c1699af40c8a991639e76cb3d65a9b73ce59f54739e33ef304e67b94ad540c4ba63c716c52867d9548cada4a2727a728e5e3b4601e4797beb53a45a9dca473a94ec59da29c38d2f1c451de7bc71d9d13c78963ebdc23bd7c4a7a33dac383633db20dec93931d1b652252b0f6eabf36bf914c9aba5ea5723d07f4bdf72ed92d502093a67aefbc9f261b756e54aa0d6459634caa32323343d26bd512f3c079ef9cb31eb1a9d43adf5bd7aad61b5f9b73cf30a0c8a4a9eb552a97cc458e277aa3926d80671bc876c86a5cedb3225a9b1c7fdde620a4eb83fc1453c8b3816606061ee44e78139a191c9628718166a605af52b100aa200523599a272fa647e6ac77abff05d25c5ff302e51f68d679b980382f29410573026f9482acebc58a00ecc22730cf3e00fec3000310b86f1f2000af8f5d78fd605daebdf7fef081d63608820f7cb8a73e75b0d51c7de2cc9ad4276aee8c269d4966d22ecaa50fad3725571947b2248bca561f79ab5bbcd258c25bc24b4a4a5255a9a2f738be4ab5049300252929a9044c3a8e50729025598ee39725b98407850555745072dc7bf1d8839255589b64b5519126f788ab90452692253c28178ffbb7ce4b7878c9844a5f4ee87916b5ca2454d2cbe90553d289770e7ced12de7324fcc8097edcc78d7013f012f0229c0827011fc27bbc05ce021f015fe22bdc7b93b808b810aec493b80a3c0807c27ff0143812e77114f809f75e1ef7c17b701e7c07d7c18fb8110fc10e23c9955c1d635348a6da8652caf75e9db1169d974beb1bf83269c1ca8d113cf081b7b9dea9ce781cf7fe530748256f858c61ec5a2574dbd5756cf66466e4763b9076200509124465c54ad62359062183dccc648598eb0326359972cee55892e84d4d6eda2eaa1ae034cfa37307d2931ad6ca4672d456c61b24393e599273d6642fe3274b4493d109dc75dbe6018bfc098f7823e318f79875a9adec1b2692bc0389bc5ac5d65997e38d7d730ada6fbb7dcc3b90acec1e79a266f97a687966a441ce202a5a7e15c0830f3880e20ae2dabd8d33177c7720d91d48cf73701cfc062fe23b6e83d7e03438119fc165f021aee331380c6e027fc15df0169c05cff112d2fbd68a90e9fc03dc037c052781abe029388ea348eff313e97dcb4730955c889be01de025f8edbb7c0c1e06a3911c59be9967e72ecf509d9830c4149e70c894971c8f54637a2fb98ebf444f209dca652127625149d4bd5d493c112f0a745eae14f06653039449ecb8d4a85d49d43d93a89b68207e710a53d39ebe2ce3db39abb2b2bc795ba9db3f7d798680d3d74f29560a5e6d6794338a156177b12cd354a5423b02664ea4425d62a6840ffa49f3d4412b62b422f65b3b443fe9f6b4a60aa5cbbc6277ef9ac4de1561fb7691dda39d23ce35628824599a271662c6149d88b75463762762c76f8ead4ef2560cf106eb4605155450d1cc94ae3ccbeacdbd216d486d3eb5dac59747ba95f26cfbf28cdc49ddf6da18e8aaa05241a5f3166e611361c79ff672f67947dd6ede3904cd9d43d05c3e0193da915cb16b7bc58de1929f3db0eb9e471ce09b23c77e815ff8776efc51d596a8d4bd58716b9b858b0fe47240598b628d3aca77e74e1de4dbb398e620da6d1833bafd3d646bfbc58d61d4519e6d1d7ee1df3ad451c75b875a422de1d5865a01b582f93b7574ac3b8bbeaddbbb4db45fdcda1eda33368cad43f5b48ed44df7ac84bb2f40ad44d4edef173a930517ddfe66616be6d28de1d31521ddbe003b3e117be46822318b2cdd9a39c4c6f09b444c16bad93b057b3d752be1e49579b65f67d25aab7919e31ea81cba519cb9d3ec599e73b7511b6c30ee57f102c4402b62cc40f610336802f10bbf09348b9845f06a338974222f25f6a8bedc4c24a6cf2c629a4bf0cc5c6202f30b70142193e99e1571735644d649803ffe38de601756c9c8e4e0177e14befc51eeddbd1a6793aca7aa7db4791bc856da4bbbb7775684e9ad2d44926e5f03ad08f4edbda12178a86a0a5b30bcccaf92bc9bb797f0ee615791edcb5b6905e9fd2a6e816c4e6e54f3268de781d4f622ec2fc201ecf20c15bc75db8bf0a8e3fb22e4657e6d3d6a1999542a151303e208bb40f4c02e3ca4f1401c75fcb41e5e6da8218d47034253a22da18625396e15b7403d1acc80a12204d8e91bb4951bd339ec1476d544ecc2383679b67a1bf339f09a0aa18f2ab235fdf6378e6d54d4a2bb92aba1b86ffd49123bd3c524fbc2f6f5103bdbbcfcc24f442f75fb5a885df7e995b6cf6596a916eb466bdd6fdb845a0ef0b86d4c2937660ab1cb94c1baf09b523a3687a7d1b93b79e78f58cce5fa57a9d2f454c202c02d75c44ae438a4fa6d2bd19462ca600acd17cce16974eece1f270f78c63873e779338be6f05496a7114636cf8d6c72d0211d15110d099fe8543821640e17fcc28f9a17d5640ea97e98986e72a3d697ade742ff1ffe840c487ddeb3d4d3eb21d2e38ba188dd62b9988bbf674c375c891ff8aa830d007e95af596c882b560045eccae517fe10fa6bf8d2add5a6f41091d2d3c36bed890c3d4b3d87eb298aa1d0c56e7956631173b12296c36b2d05b0c7d7e34b7b7c3dbe1e1d3dbe98ee34aafacd47303131b2986c7ef902be94bc823a3174723a3b1d1c1e686664523a472f252fe02ba8134327a7834367e7e1157c055fc1577048fa0aea1c9965e6c398d28514f5a9d3015a9d2c9f036c2a536fb26e2c132c1ccb08abc702b294a8ae874b7367aeccbdaca045b14cb06e2c1ccb08abc752c202aa58380f2c1c0bc7c20d493b0bc70aa6ccb286b843a535c494a974925e99f165582f836a71211ffa85d087198335526a6048c5b24d95d60cf10bab3554b0eb84d4b6d650e9f857629ed95a110bd1f2d4046fad76a506062b3552f05aab21878e3f15e4edcc175ff9e2cb2fbe98175faae6c0d72b36867fd429a4369a9bd2f8644a17d27366c685f44475473d07f8a5860bf940fd8912c804d9a54b17201f192091f6f2338c10460698618c51cc8de1c5fcb0aefb37e62a6f8c52bf570d72be62c121947d5c8938a4e750062b3042bcd66ab02efc3c1dcc30cf6a4831464731bb3cab15c5fc208ae1e1b53624ecf869545bacdb608633aacdd56d30431998614ab5a9ba0d6638046608335475db4a54eac4b578cbafda2ed86db3a3b598f97a65a7cbadc0dd562e2b16ec42e514f7d1c95db81c4dcdd39c0ea0fbfecc4f9ce7acc21bbb376e7af101bb6dc69b95b031fc387c76b4e3335d7ecd5ecc7233dc4c6876b33c6b71c562a2e35f85b7b65e597358855b5d899607486a7bf1bde8722f3426131561d0f260b536cc2f6c539b6263527aed890c37f41ccef2e0221d0bfb5ad1535817d06827a488a4a35c89a79ce2cd29a2af8b43235dc4d998d4dace6777f3d9952ea43a65437373e2ad9e9faf44be72b1797b3240acc3a86b5147058bb7786a83c37a536bec2637b2f91467a9a51521e3a753cd297ec831b16c5a35ac2f596ac962dda02cd6cd7873a37506b79ce26ad4d931e1707dbb01659eea2637c279b4e64b9cd7566ead46ca8d69225ed720d639d8758d625d585be92fbe243b5b69b02f5e9eadc21a2ad8b589d8b58686980b7ddb177531a7e883f321f2d1719f9ccf0aee7343f11a975a91d7883c0324521f123a7e9f143686ffe6a40012c8c4ed0284f335526eada6c5c6d628587a10afb52bd6856b5b3a7eb3464a4da976c46b3b5f9ed584d8170d3c619ed574d8170db51c3554f05a2bb22efcb8368c4de9f8c927e9f8d7f1df175f6d48aedbbee3f095d8e26b91c56737dcc900645f893dd215cf363907e0c894b9c973727d96260f347aef1d0dcdccd5a3265fcbc8a452a9989ce2881c2ed8857d37a4b6959853ecf86737bcda5e7c2b71c5b216572ef9c5b775ce07953f4e8bb50139ee94ce2a7c6dcdd909b0ebf6030750113c6006d8406df9f1cd39e77cadb5d6f6203189537ded789168bd937692cefaca406d0e901d2d90c640d7060e092d23b7448d2bfda60533fc6a48f9d558f26375591ae157e3041cdcaf068e1b197e3564b49efc6a788085e24723063458e0228765839323307a3f1a3d8ab6fc6898d0e4474305eb851f8d122ef811c1f0238a62f4234a4264a475c38f6829c58fc8c78f68771303d18b188850b068a469961b2ba907e10994d4f8cde8b560fc660029facdd0a1e23783e83783c54f46979f0c2b3f194a7e328e74db1753996e7f3292ba2db5b1e326cb4f060d960e3f19284af80de190c26fa8ca6f088a08236831e3b725c90e47324808818123860856a480028729e5472138e8c241b157b443508cf049e123b4d1f1e36039578ff9a4f011ca6a596ac41ab1d6a5e446b312b3a02e6ad0659b87ec07ac07451224cc2f3c2b314b71239c0ae80a9d78201f302aaa4dd3fba05163684ea971e33c4f5554ea14436332517d69b811cfc770a39ed7dc085702f13c0c8f9aea51613646981a2c1bd2f1c38e5e1ab8621e7cab0b8ef8f4b8c365d6e100861df7d62c1d3f7a0053e6196c609e79e0cbafcc735200cd8eea812fcf60c1fe401fac47d361b912525b08a5104a08e8c094b9da93f977f34b6eb4a3f6a499e3f4f0f093cb8696a7865c8c14b910257059cb2d5f395214067d54a6487902fcd9d710eb2ad29576382c975ff87b384c97417058061cc6b33d32fc22ebe1950a9ed9cc733280d9b5ca0383c17612f08129739b1e1e0598b8d1ce8edad3c3332ea0a7878787e734c20324453c007ae0839d4604115528c4abaf0d5e073ca0e446423a0f7b121644cc2f1e760d5ac1baf0af414af8875d83885817fea01e7605a920c817140c8a529669aab269609198efe1717808650869dfcf7908aabe5fe521943d7d94870bf9385102f13c8c0b9d283f3c09555773ce9f70e1fc63e076e9fc7b54658dcdcd8ad5cae1b01c8c85e5c1ff81c35a70980bcb839f73d80b0e33c1f2e0c7e130181c1683c374371c36c461326c386c068711591e1a96077fc96135603cb01cb01008a087c37838cc867de1878dfdf2fdb09c0dd9152bd32223ca667888173cc40e0f810b2114e226e3825d366693e9d0f19b5b3a86d964596443ec0bffaf4c923e514d19c69029591e990ce5b2a0159694f02a13625d4480f4f02a43b22e15d8a38ef34c56141445461414c4ab6c08d775b80ffd3cb29e09a9cd1e81e53afe20619e8530b2f6c88bbbb8cd2f0d38880c42ec32a6d942a0d0f10db18380599211302560ba5c1adce48c5b030d409c4604f97c7aeba020629ea5587564dc1964909393f381fb4e233c40721a1144c421b5c172be8e1fb6c3abcd1e21769c7b01d3c188f06a03811644fc0f0ea0f23082a6003332a91818016c1000008490c57a28408efb83ce2fa049840ff8b27082d056ee80654b91b5ba49c5b46054a61485c291161d6edf5a503ae27b51dac03f4d7485aed0d56aa5b1dc9a69c5249a3958e9d82c9e4927efec9d44622ed79b45b378fa6c541a8fc6a3f14c2b660e26d1bcc12c9e492791b3973b8dced3d75f40f4405746ab2dfbb61b62b149103d6c4eb3c5855a1fc3122bc6b698b29bac059992cc273b92616e57062c69416c00f03fa725d910485600f863802d95c60371148bc5b0c86432992c27bbc1c86e256eb29bec26b34953d3cd3bb71d133bb81d233bbd1de08e129a1999f2dc09ee98d8b9ede0768cecf47694ec00697670333b38991d5cb9833b77703bb89d60fe907ed0a5e9f966eba8c5c3baf0b7782d17d8576b985b45dcdaf2aa14e766d3168fd6518bd772416bd8dad22a7a68f1685abc99164fa6c56bf15a3c9cdb89646377a54b57ba9ad2c6f431b795d00a4549d3d1669c664ead72a8ba5a41e3ad5674fc349e12109ee559dd6eed07c9c650fce8f8d1f19737a2f034730a463521690f440f44d47451d38b8a0bf9b869ea865d2913d6853f854b1949f552c094921999f24c0583405095c6438f4cf4e837bcfee8b02efcc4600a97673e5752467c86a95e9ef94c4929f1919202e2d5e7c9cfaee39f49e16452b832854be14aa470295c9a0a769e928f9036ec5889d37e581e24611088c4d75ba201c1ae0be2087d29a52a1c1cdaeec6ee0d07450d694494d386d8d850480be6176d090d48f3d18af42c0f4d89068446a4e3a7ed6e8d8644fb41dbd178a8212aa6881adae4d8e92c0f567f8ef20baf7e8a6c8ca8ff0ce1d8a1037d96074f0926b12f24fd675db914257cb4f85cf1a9e105c4d14ae661b56f47281cad7c843f421aef47f8c25b3db7388d475be2349f5913a3d2946a6c6c70587f42551047ea07538d8d4d8d7a73b31a41dcdcac56abd308103d6e80e08138b251a3bc744cac931bb1dea47a5363b9b5955011af34dd16bbd2669c58f20c356cc1ce6846b4dd6ac511bbae4a30f70d3fbe8138faf1f11f29fca7c57f80f9f58344c57f7a3f4b3f4a3fbc9f231dffcf6fc5fa95d0adfd08a1cdf80142d3e1f507e967858eff5c09f9147d8627ee23440df3cc470bcdc88748dbe5994f0dab127ca8ac56e0d567cacf51c76fa2863f45a8e1cf50c76f420d7f5874fc286af8930255a2e31feaba4dd5693c9a520da7f55634decd6a831df43461280f7a9a3d0197afa834ac37f9b884464802102000f3160000180c060684e2d12c4aa22067ea0314800e5a844a684e4092c843c15890822008a2188641180000420c33c620a31863ee0a000a6473d0439d8801be4539a178089395a0f6897599018cf1b38210904660958c99d8a67c3bc5b1e64c8c3b320b4ede4b36070730a57aa25a82abc3b566a5168d2b861093f69700e0464ac8471d7a2354e0daec09633fea6aef8ced08627c7f897aef940b79b5086d6f2751ba8392a4e5342fbe3bd0d1100d1ce4a86ccf2a7f7523f71ca25e851b15d5d8d7f9bd488e473e3d1ce92795a28d89abd963aa2455095c552890bc1a67b290b9ffe4c1bd7b250811f68d0791969b1792d6bb07b050062ccd16ed50555c7c225c264b133c9beb80b6a21606eacf7b91cd3a3c7498b8f86a99af9b10aa869e3f099bce9b01d2e5fa9a60e58b082ea28dd4d28f6f64ef5b9450e78d0d6156e080f0262a9e824c440d1fe70ffc5ffe30353924d9ee271591a7e8c484b84e0816f0a0cd26bf5114236ef9bc7bc6d61c8212a29fff4114162497e9b7bdeea8c4711b38389840dcb6a6b4c7bf39f34345788a7d77cd40304c61ae9e1206fca513590fc1e1ea5b7643e946d6a2d19f36a2d4745bcb07c027998ed5d6db305d6d3a141cbf778e4c997b1d7f3dbad84cc5eb6dd41606303a1caf3a95896766a2507a80da72b9b174860b798f7e12a0bd4133f483538fc195999737f83474af3b4258e55e729c858e48091a90ad323396112a32452381c0db2b81bc9cab63321fc96264525a1790d8ef1ba4133b7906fa8729148a6cb8ac7d9cd4cc1d7480d6ab1da17d25114f0aa186758342f2667df627a9e70d35798645149e39e43460ccaa24839ff811497bbcb1222ed6e261ca21b8bee7beaffb4cd6bd71f9babbb5e467b815622c5314f10ccf8a11a54076baa438492023b79df8fbc52636566df7eb0cc00e60df63753758ccae945fea2296ebc61479e87acf48569d358f05d7254b1121a6ad7a64ce5f9801ed6641bdc369d84b9ea14f87c23a114604b8d11070e24cad02a9efab148aef0173aa233446c0871b3e9f3d07c408261fb29463405c758aa0407a949f2a5686393dea178caddbf72b3707a81d25659862e163070d2e423209648cccf58e7a4e686f71ba26678fbff99583aeff3582512233c1ecebf26661e5c93a8bd25e6e6bea4083d9b15331b7df24f01620907cf7544efb10b6597564733566d72692b01e770011ee192ffb83abddad37797bc9f6242ae386553f695ed9f358d50a0e34be691f58519546535cedd267585e7c2cba1043768447937cb756ea72f16b7459daa32b276901fa002ba8e206b933e98b54c2fed6b5f98716063a6a39021f53db4b9dda3028f556fb9ba4f51dfbead64597819c3781969c1570258e5462d8b201691c0c61baad92dd28d77f080ef18c6eb5c54e28f6561d057744c541eaf6a8cb2debf86872df299cd3474e26ee327f1424988d05d203c178ba3b54472126d324f6e266a5016758ce1d51b99d3d83e58d077ca83c872b85b5fddad5ffc66b713ea91de1b8893548f33c667e45cafd51b0d489afd2b656c9663bf5eb93014be657a6737c65b3d9b3d69f747e9d01d51cb526c6842ea54b90b8cad916a49d11234ac4fa6b602c518c2dd4abb3138e424bc5da7d18d87223fbef20bfa7c99a910f43f7688808b05b6b0fd646c25b73f1ca8600831f5cefa9cf17ce040dffdf60c5f58da1dec7ac277457bbdb19578f8cad2b12608a381a9d3386d2e74e1c5b210d3b980463bc7cf4db6803db5943074cf9adab6ec48ed72d5e41bdd7dfec0e8346b129326ba90852b9f2a9d5403015594f60afb99e098259faea5cd5ea9128e2ae83b9d873b08bf1b30ebf5e72069469cc8c5a9c333a50f7f996bbe45cbc070697ab4aa06110ea013bab59df1fbc484b403efd56e619da48cc1b7c23443e568c7fa489fd37e2f656c13a1c5e4e7e2da08b4314bae9cce5f7001430881ecf79ec943e7d74d55ff990a5bcf852c1ac49e975bb4b5f14ac9b87036558f6f93f728b54184681ab42cf48cb14a577d01dc1e633a98e4d82b9916cdb70adba89a8e2129246306c4377085f285d49d7a5b356d5fd82b2c04784936a8dd7b14f0349185f2ac9cd2109db7528f2f2d347a4c9042997602374d7f2601644ce2272b03a2d1c30bcf713ff7c87b403e69da790de42d9a5a73f5008327c8321b0c0bcc03b30d6f068067200fbb7c7b8573eeb84cd1d6527244d82b0a779af42ded7b8bb5b47ec2b9d2b29c628a53812e6e5af7d56ec63d927b2240bc835db1dd3cc7c4a898f2482d68ce7e2f2f98051099bedc801d102ce71df4e4b6d338cdfb4b361ed3baa80e8f065e1bd422c54ec90afa0e76458f1512866db21538c78f28045e23d21dc1ed12e076bc59cceed615d753a97b026611fb4e80718df0a732c1893303768c72f32647bb68d1da82e10a64d0585b32bf5b6b163e79a04db2b87588d185c4cc036098336a56bca20eaeeea5e9a11bfd9473297c2b34a9442358c7bbf0f23b95edc7bb4d803f0e24d903be904c92922e8cd2741e671576461ee4e43d054738d9c2027560dbc2210cf978471b39c143dc7724e0968e2d89728b62900471646a9f93440ebe401ba4638ed622c5f1676c67d06ac5508dde9a7fac45b6ea00bdf05be340e96da1475e9418569531837bbcca83cb5f73328399777c5121476c43b301a81b8899c8774c8824723ca0b9acc3bd5e90e2487cac8ffeb3538243a7e9d248774e7d7a5b40790ee54a8424c466a6544fb1fc941cee108e0c0635d9ae4f6e6fd06c35a81097cc553384703af4ab2fe250c6c7ff912d41165c15913b6ebe6356200b0b0c976270b0c5350d1115437b6f361d18e3409fa0e319712da663c81219c4b54cb48cfb34977a522a44eb884cedf54c3e25e127140d530cbcfa283ada0956cf6a906840a28cfe5e4721948f00f2d4c9420840ffd7f98d535b77cd730eb501fdd119790d630589dcc44cc5ded5d3bb80e29043529cc4ed83ec9af6361af4a009a47709bb857f43e1d99d26af262ffed458de0c3f279e9e0c21cb1a7291720b10b975acfd56288bd404ffcc14cdfc69771352cf61987273159df654558885cf2257ac6d48e908dd9b271a2baab81cf5f8ac4710f55f5f6e8879b0828e471596987c8fd6318ab8e2b3ae457f94293ec36d1d0932382d3bc6932b2415c4997188f6dbabe579b5f73affca0b606a0d742abac7bb2c4baca457d6cd4588a5b923e41d6a1a28d42eec221f75f7e570628f35c3fa07f7edd393e0aa058d82ec832a022794b9efd93c433439b20c82268d57013dc889c29f7bc20cb779957a12b051128a44804d95dc9cf05af31544e98304f7f6db171ba9280f32c378c32842083a928ca9b3c7b3d8d039149c3f68c3e6794d9006fbe63e4fe44d07f5c30eb8d7d39f03c9cd810f09282ae3bce0941668ec7c87f516b49c80fd2272df1869f7170f2f5a053847d6868d6a251bf4e166427dbe5b4880c0f4c909d284e9acd8176d46b01795e8319a6c8da76d0ef9d179922bb0cf93835e9f45884b25f2bf5a64e98e2677a6907fac96bbb26da3a72a66527bb50159e5a5949d36fc5180e005b8220bcbdc8fef35f8ecb628c6ef6f7335033e59f3c10fc50f9c542f3f4d96c2f8d0907045724b2c47f2d8d3fba9565387a6443ecaf2c40f680f6ab4b267efab4b28429f7ebb4869127d2aeaa7bf453fd177a4efda3caa4cc035647ea0e16349e88f0b2c24031b31eefdf9effd841d4f02d3e1e716163f892242b22a73b1d4cda9caec6bfeccbed238cc604de537b863ce64f87746722eda121152600405a5c2ae02e9c8ff3d058a8725829fafa30855a30ce99d5c23edda31f1d4f9383589355dba142648b82fcc2cfa1d9687bacbc3d5308c2baf701218c185710bc2c72995e58694e6223e996b54b354f02c160959a143c216712269cb08ce7d5ad86c908846378bca7601ea57a85fda884446ee6c12a7c7ba67edc9a854db0866238a2329a8a174b53e2a9e86deceb1180cbbc3a57c31052e325230caeb3f533fde33955a5431a16d7d601f2763fffb32905c932ff517e8bd1733d91c6fdea3ebef4f77ec3dd484d4350b4d53620e7c5c68228b6a3831e7691a04a6a1eb0a251347c1a762d9692fdef80d2456f7852fee06a7abeb5b63aaa1aeb24b8ad663b83cd54a9a7522f132e55a271e25ad0b0b475c8d60dcf7594613d0756c743fbb3eeb34d093c210423e2cb3eb3bf7c0610387c4e534ab25702eb83698dabda8cf3cf486ff25995b03a33e217494cf3e48fe69ffef5c2d7c9761d2c433204a275dde00a2c0091f9fbf86baa39c9efd760a1f1f9f62a7a717840c998ffe54d574a65eab6b5a6900948a822cc804b03dd191608868400dd2d6baf0c53075a6a75fb317bc9fab9c425401c45199c50ca977ce6cdf2fcae45f4dfad9b04c709fdaa1084e3d17fb9e2fc259c6da84f2cb40f581748913ad5847d222ad96ab11c7e2baa781e7e1ad37cbc6c9acfd48cbeddcd8c92ccd2b3d80abed6b2c9758c1d4db30fb481ff3f9549275ae349690b9beca3a0ed83fbd33a98aa4be25f773b62430241a9e165fd018a6d4566cefe4cbb54ac201d83e874003cd94a0be2c69e784627dafc2d6f80bfba0b33cdf40884cbd6e3142b383bb3e4808c5bc6c1628cf8df9171712741e8368428b40105a33eb098deaf4b16c5cc051d04ae500ff66cd951ccc501f0017763d56e64e1255202cf300acb201ea3143074933f6c85f3b02712cc834144b2fd12b77621da1fff5de7b41c0eccbc28d823eb1960cfe75beebde39d8675f69bb25d4fbbedd26c522cec429d170c3186188eb504106bf4295d07716836460a1d7553945880bdd7fbe40594c874f8a74cf7e5379109ed925103fdf31256caefbaef3a3cb8b333ac8dd5a79649c2d56527da1e25b7394eaa98102dfb814ef99ec77191bee539c2937e44a984d1202bb7d28115cb050b71fd00fc7a8df3cc675bb4289b9cac9e2f25635d9b7e3eb16749bc2e14f0aa8f57a4703dbbd15f20110a5e311a10e2b22f55c81e11aa8f267aa8f0214947e262e2c242a2385fb081cd51b5cd30bca05a2078afcd16dd19d7496c3c201e7521645e1e66a58711fc3f6d1a495c4de548442854801c036b4f7d5f8ece72a09a2c4713fca464dd76cfb5f2a09698ae258acd297d43280b12027cda0f491d9e7e0f06a9ccfecab4f2236c447521d1cc9452234f9b9d0e6aa21552db56414ef5a611071f40422569b20a13ec6096390874d113ce89cabcdb7f340961e6bcdde2043e17e6d5636980bce630f451b7a55f16fede569b8e36a449c118583abf13d892353a8c4b8b6a0b76dae586c587fdee83880c6bc54aa32f06a9859fe07dc22a78945cc1343afb0375328bf47308e4563660e25a9e504fe5c35335431b83237e60c401aadec11f876de9307cee6c66216f3c324ce8177266c2c8f3cf83eef9cb95e15879d2368c93ef41fe6c582988208c0d1357285bf6a4ba3337ea49b8a3d9e1831409c2b5122e87b002b7e0d4bdb03362037d8418ebdc821f3ee4c298413f6aeef047aeb53a7875565ece4daa7c604cb018aba3848b0f59dd232b46ba1d6d4b92d5aa8c0cf3d83d0d35d263b9de64fd7ee3a7dd456e6dcfd425ac4d95decef7c4615ac94ab8298c2149cfc3f924dcbcd25dc1636d4c47d160b9c85ab6f54d7d92754ad21903c41b3eb80418187e6d7e077e0fb781f1830ffc2dc809b1069ab41e6f9ad9c60fcb6a753277a7b625f553e6f3be517edaf01d11d6a021dc21112bda9998abce4206519f495e59c5762494f4cba5d6fb38a69d78e3f096a30f3c0dcea2b6d3fcb58dd22a2318f70b2da98c96be6b4b572e951ecc4614da8b3a81ae85d28f580a68ca163cb9b2b7927e8cadfe93ce873c8a0e6bcb4dd3e01b7c67d5c1890c8d0032b717e91f10f975847dd600d30398a1e8c3fc39b6522ac4c418ee0f215cfdf509c3e84130bc34648db169bbcfd4037730b259825743d672e8c9cda3159fc5ec06bb3844754c6c7a5496b89169dfb8dee76d613ceea157303a97f379017543dc8149eff336defebacae9a148d12b91da72d0dd6fdd6bef165c86ed93f5243856905a4ef3485b398976d048fa74dd913ddd25761b33f7fe27291097e766a1b9337608e4f82cc3a99115ec633784f72680b5b8ae0659b938ad7052e9dc1e95bc5c9886ee1f2cfcf50911aa2141d6fd7d9577203c8fffd2ba78de1d00528bead0bf18cd256f5a27cc355a136a4555c389629d2a44e301dc4adaeb1a5c023bb40fcb3509ecb641966dc10cfed7171907debf1c2ca66ada8146b9642d70b794909cb8e9e8dd69e95d2a02b16568c658cd0635e91f180b354c5efb830e07220217e61a8a7dc0246ed46b12bede1bc0c118f547cced5a49e7e4c0aa594746d76e5ed12d35d6f332f86dcf987757cc4b43129438fd390cdd75bae09bd05000423ece675dc4eeb0c16f9e7808967f29c28618bf057b081de9126d618b7d07d5d3f944d02ab7bcd3c70cd2720afda4ce7b5a18cc4b300e2359dd643724f3cb7a421aa72b80ba5c5119315fc13eac985a2f3a5784c961e4c2cf7d635a81778bfd1ee74a2d288a70ae193f7eb80308a3c2b10ae0703228153a34126f5e1957934bfe12da228a52e1d21434811d4ec3dcdf16384d79528ec88a1473fd0e2c2c38fd1a8eb207773be6c6a1d6484ec94b26e29a97b3914bf7414f84770d31a5a385d4aec592f494fd1a43bf7f481e8fdd71f0d86798d046c848bf2d83ed6e2f3f91e503b241a417185588d9c422020700b4b257a4eb4e91f77be48fd2de30fd070d82abb7e8715f33d022ee268f52a2f459cea68465d7780088312d132adf3235898bc897861424498970f5b65ff7a59b68e85fe96369c848ca3e26ef0890c5dddf76b0f680ce7fc71ab62dc80965a71877b412003c95e37332f0686921353d8763900d576f0bbcdbba62271f558d5da61ea7ef538d3dfc90bbb64846c0c3b451383b16390b8ec0d5dbfa07537bb4d40487c28f8fdb3d3dddf2409345bc29b43114b11d5e93b87ab37fdec7a577028fb3ff8982a5baf9865d01abedeb847767b14c4bd481aaf7ff8663bf9034f5519494480e58733c6d17eba1fcb3adc750a5a0085768f5670e046ff722112320cdc01f14d1ae822d2308484c70f98ef65b740a336392ea611c24ffa783abd02daa56db08a242e3b5516534ca44291e8e0e9830dd3c667d2a17c436512adde24ec3eee652bf4e64ec322c66e1f9e7e533852023588bc69df3721dfbd4cd4efe3e7de4bdcbbc5cab5d6b8ea76d350afab1ce4dd0e8a753dcc2d896dd91b1cd0b5459aebe859d0e14a2e168b8c91c77e9a86600e1ecc94d4324047697ab5e426497f9f16edde4b41a2317761ad88d31a76f18d4d41c6a7bdc26afb5125cc6c27cd11db11f02454f08b1d9f167757992c8a666b9a36bc5f017f474b7cbc941fbee68fef03748a9619f2926ea60c2301148cc83692653dbe54e0db37f97d2697125dc318af8ff30250d2f849308a102cbfc3f41699c5d82ed720587e98711e72a5803e5f4ad6d9b8037d4c932a785b61c87d7aac949246e187caef1aab95c289eab29900b5e2761ec853847b0379c97cb39bd0ea3e52ef4c6533e8460d14517182190b15baab4d224af6cac181079715ab95cabccbba32880c204325dc2908031cb3170b16d345c8e9cc5c2362ba4ef7864e17298849f3c5180ab9da5399b6b66928952aecc78709e047f13cb88cce428f4ed96a4b59f708c19cca54e07ddb7bcace15ef83b75398d0c79220d7d2a3ba70c904a131343242e671d46e97e9e824780b2284080cb2153f898157dcbd1cab791ffcd7313f00eadb9bfa9a6d6c1302c474c67df4dde468fef9ecbfa68a4b704df1ec2b0067fbc354e653b1c2032b5a8f65822576d883560433ca0336ef2c3949abef39c60edfd5272348c7421543b2bb7b66fb93f111946ba506b19b1251ec01cb341b538776f39a9e2df2fc5498696ba94856293f0979fc5844aebd52430e44f8b824599dd38ca875aec836ae6a53690f68e010e134e20331a78c43f43d5008b61f6b430ab524b58a2e93ac1f5b76cd4763338c56ca207f1c0a1b20d5b2886c835ba3dbafbfde82bb3be23849475c8e9324deb4186fdd88764997d65aeee61bbe1bfae3e41bcb73d95c6830fa135b24b40bfe2e06ca85c1ad51f637ec1260bbad2615e6eb7244ec09dd97d692da504c41cf83f9fd70ac5585f900aec2be75e1afc48ceee8c2505c9aac54ebd130ca47ae548e5f5abf8735b0d06543b488b8bfd0c38040231dc581a4adcb99379a6b0178652cd9f38e27378c09765696b583f5a47fcf692643782b3c238c5b9aace91b46fe2cec187e8a8fbe8a865ebc27d1061f599c5eddcae42fb83d113a0d501e99f854ad3f907f43a0c6dcfe37060699926caea0ec57ee18f17b61f5c2712c30cf0ad111748797d1125d682976b75f5ddb2b5392ad27dcc36444c96925f3a1df4a59daea707f69f2422fcb162a2d4cb28ee3c2f9a814e238f8469db88bf5766f968af20e5806827c1485a184f451479190530a4e6e24cb2dbd8da15596359a9cf4331716dc55667b1b547a4354421e2946f63993d3bbc04ea1cf19c2f2d3e4b904dfba64aff3d224ed02f4d0d7abcaf20e783c66c3928c7f2a20d9a26a720585ce0a89f25070336926468c7179b98bec2c64dae2595d9b3a20d2c0684c99b387a125d391abc72c65bfb5b0f4bce4ddad74649793aa8ef7751f6c0285fa19f7a52dc7e4b8d1ec88b9d614d6632b689486659475dcaaf0cad79d1be05fba1087e7a319de2f725a1396af48424c5fbd745cdc8459de0c24e067b75fba2893b3fa375ac2c35d394ba75dc0779ab0a03632a84f1014bcc871a44616e3440f27b999e1e600c7e93b11c1c9f7a608f0fd8d2306904a6b1bd2ae696befa92a904dc8ccdf8c0f46c1e1e30a564ea0e147e7daf36cd185c941fd12d4e8494e1b901776b552b8deb91abf9616f9b2234918013c345e35cc59de04cc5bc0bdc3af24d998aecb2496561157e2e25c166842493a6228543688416210268a57ad3c06f69d7d526d2b63bdfbb2cadf03938b2957a6415ddbce802c38fc89416642e1cc464d27751033ece7e3f24347bf5a041c86f3b93c7bae1de06ddb3a41005ad5dd6b51b032eb44e052bd86467d4835a6cfdbcd8168c332be70be526a4c4e5938c9bc12403769b195dc9643ae1654d0f14c58c56c2513fbc32b462c01f01c55dab6384b94bdec6feba6b8da7c46cbe2591be31a02b02d7fec2edc624a2b481a961494ee53589a73b15d525260623d7dd8226745959d273b70e17ce7a4bde1d1918fb333c2327542b76cf4494af598e7091860caf6719af34d802b5e560de0280b06649d2c96b892b77b0c55bfa024cd9dbce4e23c75b240595706db125c710addc6d0d02ba5a204f28481d051362eb580602bf079d120dc5bc008978cba52e777132b6732753f265ea605b8ca2547d6647edf8d1db9a1347e894bbece30222f83a1886a8eb60241a85748b399786a9e054eebc7e53a542a9c8c13bc7bcb28c91f90f64cd4690067e9597dfe1bb559e616b135b6040de279778d28381b1d7228b1ddd0adf51f525958dbbca75445c9f849201481182af7e476f811761af92dbf4b8701e9c254dd263cd4e0bd451bac3ea683a3118b88c8a64e372343cfa194eda40175821261af4a2445028fa55c6d4d2794f2a3c49e0072465e002a4adb443dbbf3087df87733d767f85366b22a60f23d7bc5b34188c1ae888be1818f70d7470f1803845f7dbca29167046dcf14a936360dbb84eb3ce50104835390f14f7c6eac66807aa12af06f4a2c3f7e9e034225287e4f4a240f0aec090e8240b36d96008221530a286c2ff3243893ca31267d7a5b40a8280d184b9e6e9298b60be71b385efc91ae38d9546906265705b2973a9d0ef70733fd4f3388e657adebd44b97b8604dd4c4fc0bd691c88ad8b1c89c239fe6f21a0019107ef02fcb56ce720ec042f751a5a4660baf9526262950145feea03963d87e6c8cca5b17e09254403f1d0296c0bc197f20aa88ae2dec57b1f4e409a48e705c9a802422975f76c79c7fe13844349621b0d81a2482b39405bab3e0c097ab8c33470864ced4fc053264824b088958d107353b24e2865aad9a6b71d33cd0ab60d77265c2aa078f7ec58a00c92ce9b9ffb1c805af5b155c3bc8b9a9b73caa7183f49fe9024740ccc68b9619ae82d17be33921983e269d737aa22172f75ce914974219f373287044445ef48e5fc0253857a8af7e57e8f4e03b92071eb64e1531aa8bc55f0c3ef4c6005a6b9466bc5fef37f3a61b7f071ebb193932e88ca0ac9dd120ef1f0495865431b773c60d77c1ec5bc40ebb1f27da09a9c9a402429a45058ea6826c6f6564225df7a5d446abd7de9f7e11e6e7bc6ed4ba4d7af030e2c5db0e61215465dce6a4f68443fb975db41f087bdc0611e4307f5683d6571ab1f942e9a9cc9a59781174312bfc95deb5f1a895fcda51e099a2540d10350ea169cad0ff70d4a426dc239b3a4ade47008a180438ebd4f0f2515788a0a61808ef3525944251878b24886f4274409b9e72d84cb6c0e3ee8ee5c57fcdef72087306369446dc66098754962a4722cc521654f331b4d6765901bdf13bb4a632a28558ee20ab15b28b7dba952f161059967e0962f0730715f7152093d07ef363586e7f9597f0c0bb5ec7577e41876b3e59b37c67aa9ea3065c7357cce5c7959aebca51363e3767f62c4ac5872cb5a005eb9b57ec8b97d29a5207195e51ad41178332eae7e93d79aaee78e9d45ef96093bf4eb89d937d7aedb3a8fe23a50cd979a22d07fd07b13767a754129188b8fc4acf24e9bb2213cd1e9ffdff449ac7976654177f86686fdb8d892518a8f97ff5660fae4faa00c35c479ef1700d4d4bb330dea69deb559f9a4866c4ec969d10f33ac610214b5805f02e335a341b7902aa7045dcf2d1537a90b23e1357ab9b27012f7c07d2fa5f78d9e68dd29c7a1572ad100ac8527921b0810c15d5ef18757b95d8340561e2d711d6cb94af19ab706acfa039e1041bed7b5095af91517be4e2e5fc8e9362af6c0f3b1fccba1cc1234d0bc64c5bad7735808839b22ed7146f175ffbbd739b95de07dd25a8fe7c5a66e67581a9243504f38fff77fd9269fc7f3bdd900d6e0764f51aec360e62c7f6ac5f5c52c5674c7e8ad91afefc10495d74cca4079cf51415630b68959ee145e9e4217a5498f8f5cdd92a581b6be28b0c8515cef945475b2058642203763713d03014e066b3f90db2f27af6cd2c6f3d422f5ca0df72bd9027749a88ec97aa7b02bf6ce96bf04bcd81d02241cd1e53f47b8b5e4eb17a01776f20c417a3575f9a14df6bef646c8ff1850602d2d7c95e7084412731d47707e9bcaa5711c444f08a5d10bd0f9373fee020e17aee6f1052901c5b0552b0af51cb9cab305c953f616e0b66843345c24b9e56256789cf7bf7073f0f03108a9cf926a380b20ac870c3e6f30954c17886c7a5a99541b5c65bc0cc9cae064822ce0ce15805205df1d404a85d03dcd6392ce700982cad2994abc955877d00c562de9ed6749a8571a33b78eae62ad2a4f7896da75d2968089c5131e05671ca6022f36b4ef6ee19ab14d64859fa6ce53ca7e79b56d98a5d90b88a46134c578e097f54bc71e74ae6b0c1b5b82d72d91a65bcd6846dae1b3534d486e812ae172cd64c10552b7014ad12a65082b98fad60c2f2daf9cf4cb5649b7d6743c91bb4724f8c14de1c815d269f700670f4789dc9d89a93e4382867937d81a68e808eb3c10bb004dcc4ad2ce826ce665d918527d0add3c55bc730fcb0e1e3a2fc8b44992637a628b17deaf25686cf037215d053344fbd1ed358a13d6afeec272f86bb8ddb2f9f889a939d714401d889039a5a8ea7f52af5a20e27d6d8e269651ce7961d9651286580a20f4b05f0b31fc0b4a46876493cd4ab15d4e24a5bc409886806f76c651905d9f19122c7f7dc64a8d29f9c2fa0c9cd567b2861988b9e8aef3ccd0bb907bd2653ed56c82946b2674ff5877f05e9c20ab4000682a0412afeab9a9ca0884a5a75ffbd0ed7419e167656af0e806d63a3cd5c445fc9d13a59cf95436f0cc15b4af8c973b5b57e61f680cf4fb51592cae7709cb03d600b5886e4027f4fccc070c694bf7290abe2b521bfb391ff00021d0022df75fa7a6921b3054e2b0bfc6baeb4a71c5bd62932281b08199cc516673d3874902356028d9aaea5fe1cc4b624c7f04d80b4f3761fcc95d53c902618b9d2a522ca9731bef14fcc7c389c477813b7837ef234f2487036132fa7e51d7eafb76d43b28579bead27a08cc22eba73f9fbc2c7f4b1787035289730137265cc04195b906f46916c965ad53ef9b6eb958cec07e711936de3ddb03857046e0d2e16417deb6f2e420daa69c112407e018004802df399dbe08e1d3a0567084667c96c10217eab99d4f6d5ffbdcaf5cbfc159a182c24b9882340ab96ef992d971be9d74f9ff4c3ca2c28cc9f4780fffb813526ae2425c31d8447c0778d9419d07ee02566e0c96a90036181d6eeff6bfe86a500627fc1902457aa9427408a2305c8c24d5c130bca48e12671c7a53e318f20dbc0f9171a073676f7011d54057026114ec89463e5bfeb36af7fb3a47a83629c526432672531780e1dda49de9aabcef540b325765fafdc5c591faffcb73f805fa832cdf9005acb2b3ab7ad8294fb02f97dd0dae4875eb2f34a9dcd15d8698dd528ef5c84abcd363de19e0f9e1750f68f6983a4344a863004253070e4fee4481f0c99b3070fa7d25c25f453baeab322f91743c0ee5e9600969c6f5ddddee161b9110091694e9cd6dd9d6ca18e3db8e164e1a461d44b9affb488ca9a00c2c047054d3b84402da3779eae664f11083f8c373df8411b36a2f05435f4d88e07cfd4f93a5586b0037155d7fa7ceaf59200d6e0768b618c668d285275195ac2ad63f7edc689789bd0c532a8b154d5551017c2a4fdfd6c0ed95427c068cfb6fd519b402dd5588da3e94cb4d907e59892157a1e587c247cd7282867e013cdf89e14439c6f6d0f0081c1fdc109d4f8ebba27fd12e160e293139f6320ddc920238f8020578edda2dc8bf489315c4a505e4bdeecddba0f13ead3022c2923c0a5803ae259801a772b512aae8dccc1dbadef431d6704d505d7a3a89b50efc2b5ac0f01ea759148505442d7ba0f4e9298ad371a1e42279d610859e068163d205a4c64f3ab0c23bad09f566b2b46d263cbd56fa6920973d0f9a02c4bd9ab4136e7add70e0df732676410547d39f4dc7f80ee0094ec8ee94d3584a64d2e7aa77d60b05712b6836e8be7ea1d5ffa7b7cd9b481843b43dddef043487a0005f05b288b56bc10d84cad09c175700e7bd183932a1894c92fcb4ec832d8737392e760ac7a3c5262e7a9909800b420b541b2918f4b03e782935358628498b7809fce000c8fe8bf84cd83bf6d9944e3fe26c6a32ef20a550c446c2eb002bb2439c4d41467cc6cb1d3e45b0c9ea65a290a2a089edef025091e615b2de331a4b4a775137d9ebfcc284162da05575b9465db80666aa5c44208c8290f385a603ab7075a12d27d3244bd5147f5498b016c26d1f979252cb2c57c11affc002843c2a68d8056bac426c1c2b9b22275d42c59a217eee465873086b56a7333fff269a92b90e82af400dda8437a3dc73c80b5297702666970d6261f53104fa621a012f231659c0802f469895beae4303422d3d05133edfc4911fa62ee1984b35fd8acd22190be9edcd0dfb48326c04661cebc3f2b88a4a3a252c93b61bb7fd739196f2cb703f58db7a3bfdc49c2404f4620f1f7f17f6446e4ebc52b8aa243015aa9c9fc8c2d340be9c2953a1ee803f7d5ee9c170de3860a3e036209c425376b19bd928004b0e2a54b870590a5bdad1700429b968c90c940dd8f2ebf3f8a8c527184850c8b13b12d5e2e97b94bd9464909bf769ffda2049abad83c58196b4f4a9184ddb8738e0a77ff506c9f32064e277cd856815803997594eda0f144c7987db87cd2da0e3ec4b64068131fd44bab3a8c5d59a745843bc6a9941f0dc8f05ad9802c6dab6ed2903209c262f13cf030b1856f494e7b531c5cbf1aad4a6b673a5527f92ea8cc3d1dba7f432002f31db70f9cd845a9d9aaece9a3a2428dac7b2f346489d5d5b7be10b311d55f5ccd4ed43431843ac44b28712988a95ba11f9d87ac3dfcdd4a31b55f871abd97eb3f0d5268888548302bda8f8cb9b645ce3a8ab2d8a68bb1178bb8213760f5eaf5092f26673b44a5185cdaada925b0f40c58980194e45dc9bc0ce5ae2224105a10d8cd3a0e98af5e73dc0d59b972f926082e829cc18150b6b1a2d52a208c39412f2d2912875297565ce8b33d342db4c06dc804916b0fb7c8217055a9f1ac5e9e34bc251c64caa50cbd04d64150ed46b988c3c1641404c1f20e41fbfdd2b9169775d173f9cab6264dbd39fb36812fa79b3e81109803b9c50d070751781ac325c8c0a6aef62dc0c8c4427bc50fa81fabdb5c3b7278e3475509de0127516f7f46cc18a33f3156b1d7d0cfc900c9495d55642a54d3ea6a556c9c97e3ebe248c760e769a6dc5612d109e44c4c864853079b0408237fab51b82ee16e85f7536116ef605d8ba8057f80e4dcc575d0302c964d1bbdd98433df59251845cc7ea88b77c3b6ee1bc6d986e8f85b0e2ab9dc4b97cb64d9961c8cdd067034a2a679a398ba4409d1e772d8c1b65016d25553795d279dec36ce98e9c780aa93a161294e3da85a0c4b765084a188e74d67c2f3d4bfbc8ef0602c423df2745f4ecc173f8f7493e08eb379563164963ab0622dc5b07393cfb51f4278474729ac6c2e32aef4ab55b95f54101ff4591dd68e92c19d70d01e4069566b645a0268aa2f4fefe7e001550eb0c2df1142713068d93d3259f1f539e0c5802d253caea6e8e41e818fd290ea5427d024b8dc8de6335342e856d123c333af987f4c5031280b11b69056b719fae54a87f285f7f9f90c0f9f7841f478bfb5503d0797236c83a034a7763a459eb124527b9a66e104d1f69149370fb87dcb69a8fb987ede5b9e1649ff73ec607b608a80e3d80062ca3dd836b3e1b0eed53f2cd35cca66331263762880d7ee801dc88d4332c401c01ce26751c37822633cca9ae0bb0197fed76f33b6c104ea06fb112aa4649c4af08a06f28345b0ab21e43d2c33a6f81a0cf88ec586b023b02431572148c7efc007b6dcd7b97a6f565c6ab213990d848a5779a716efed480f3b1b4c575c6d4b78a5ca53241a6296e98c573e0695a3e4a6320be4cb6f0bd33e8cf141b9a6bf469c9a02bc9364fb70e6abee825318b25ceb1429eca1487e0cebd04e76014a041bc15f6a30f2923ffcdcb5506ebd4fe1cb69cc223165cabd60e679dace92b4c56fec2990625340cba9705019d4c442f0c5fcb0c20016f1b9be6e7e9445b8ecf6f03212189291afdf5cef277375880b336546e330d3eb73fffd61f97b1cb8acd9bc8f824823224f893f741ccd845466b297101e7598cf6700fb5bfd577f01080b2826ea3f8776ac70d67e122df9aba00b471273f3d4560f57ecd30443ed9d47df3e23042a7ad026687201056b696280bf149124b17d23a59dd8210aaade56b34bd58325f0c28ac41d99f1abc30dfbf87085bbacad212aead82d0e2edc74d57e6b6f92d2b4fd0b1502fdd46c6754aa4c17100c093cfe6d7feae766e51f187ff1184e5ded18908fb09afb4e6122fceb08fe8befff46b784bbf3119cfcdcb2490eea72cc3c8532533eca25359ba05d9e456eb488b6daea8cf17195ccebdfe889bdef5961e6d0674b14ab59309223f97b4fdd1286cbcb3ded91473cb2914590fbdbf1794662cb9899e1f41edf01b9b5d503f8039c545268b48b94d05c55c35e6cf642cc22ecec617c5ce6b94c8912d3bd46d0f991d1a64405db5495af8a924a717d21609bda90e092a6df3ec882eb65513cc49de066f5cae4bdd4e34553cc8a53e72a8b77ec2a6ff82d42524015a86d1aced5576f2987fde3c3da2899e2f228adb61e77657a046e552a02036dbc7814e947fcb9bf29571c20b1aa9b62d6a6beb8cb870ddb7da9d664fe9fc4d047bd2b965d8297ed30a82ff2c4b1fb6cbd3f53049a3ae237e7772ce142f8230edf7dc1f280808cb9e250d197627acacaaffa6fa86e3a60a7eddf944c1fd77c3163cc193df00d388a436e01fe69c555f800429f37e231cfb01c798571d20fc81ef85d4f67148261bf1b4cfaad9e148b95a1535c87b1929f280f42879c1bde343055c070e2700e43643e298976527f6ab1507ac55da64ca5147ff50e00a1ddca0bbe64d9b21835ffd81e01ab6c1544ed92dc0830d6b19c498a28a01abbe7cd362e5b03f0e1d877f9049c85ff8ad1ef5f76790f360a1b423c8615c98b4492c31e833ce886201a56e832e637b6c5129c553aa359b35b061ead7eafe0f839d1d91d2fb2b86bf7cf584424921d7e8d6f550a49523330a3c69b0480489392a4376b40cd3beb234975f6d91246411a5cd6380b6e03e20e891702ad22d4276bb5c72e1e649f4675e80b197cbf0bd8af472766d6cc411d14b1d608560e5c85dbb11e91f2df9c4a7cc9f69852fcfaeba9f4986884898f3547af00ea877419373c80e5228ab86c8c44e425a07d229428af0ca271e67867a405f9dc402dfa22e1fd129239fcd838cc20a0bc3c0ef451ee4e22c2f14b3efff206e9830ff455e6d493d48a06c346f09e877b74267c4ee0bd55886c23c69d5518af88be33306a23e213d48bb11d59b269463fa44b09a632fdac9ec058a28670c838d263c91d51c8143a4563e5ad53aba37e59e676281720d70f0c7aa34315ad291e5b3382b3a9b5be4619988d1e2f07ef2c48e8b727cb3e769c7b3d58a8f40d5b8737bd7131c987d6982364a7c31fe92ae26bd512082d0ac7cebe2a6a3fbb7b3a0f41976560edae039895fc347b26a9061a1ab095d3ed4a88d46b98a3fd34787b10cf9d23cb44b06c0a6b00a57f193a5b2a39d60e24a2f620c1996b9bd6c9f2f0de5625f63fbd8889efe8c06c4c3ed9b1b63b5c2dc785cbc175bc3027580a3891f4c7e86f02db476479a4a97a84e308f7713d43b8d0f992dc7ac2488be2f42301dae57f28a3ecf60cc03252793e996de49c92e04f9637e62f560c52043abeb207152ed34f4030cb2887a51c47449d17243b330e495e9a4ab7423e800db7398d8c2ae7c11e20b3c6a265e649d422e364cf52d36d1266cd2fc1b66694ba4a4186f812dc23b8a2f6893f838810ed6a71f4056139b57116f7672e43e5b8af6063eba72f5d69b764f64152fff85f0e898113bb25da5d7dc174ec4958066b3cdbedb78bacb31873064fae56c9819b14ce4d3b6a2ab49fd2fd0c63f5ea2e0d4c0b292bf1c2e0324619fa44d229f34db81a80ccac2c3d9daa18534a1dcac9a45f43f9e229a9969530c013d822e6d5fdf8339b8442459c82a34d3b257ad8a79bc43ac98be2f822474946e23349bb62c6682ae59a56f84348d72779552696e31379d2201929ac234e2b623e8df7b84ff962a0500c9ac68ab8849c75efa6d93154cda47c96888d08b967c3882baee30d91dcca83a14fb5662a58bfa23d09de59b53cc2854026fbc530daf800b33112808bcefbf7b29df10ebfe4794d8d276760da4199422ad033e142be06ebe4756cd312bb768d22709a421ed38891e267a14ffc8a7211e49181c67907ee1b171af44ef8371f4825a5426db4132ce1515bdb37887b845d6d287fb135d521e3dd25f6aaf82cdabd016edbe776a44484a51916b6cb9ab9d17c95a0db91342e27d6364bace83ca8628bd17e2d55140333210a7883b51ff748b0c9cfb92f930886db62299f9131111ca59e9cf41af4034c38ba91bb263e8bf73a35581ed9d82f5c5d59a54a62ceca1b74c29faaf65576cb76b983e134a5c9242c54e2f321d165bdae9a4f474ab25f6fee793843148b145ee4f12c53864d5a33da842685e089422b0a784a012b20246765e1bb24a1e2831dc19202024acd25d41234aee2a3b04c6e1b8c750f11b3e4b88194bddd0a4cb36419345d841adc63d78c63514b7c1e99489abb88ba24db6eac1551b3d7178e4d1b974113d428309bb722bce0f0578f31f9d35d193e1400f1ad14d61d0f13c11f34a8f049c2b688f64d12ee62d22e09742290efb6f8208cb8f18733a95e39f6431e39d68ec6469131d5d77dc63905d9a2861d42e7af0b4f9ae19fa2936312f1dab44b62423df983bba629e3e1c493fd40b8841cb191ac4b57e659f37de4e9478ff79410be603535778c760df3ccc9d96dbdcbe70f5a224657cec3c708aa1a7dd30256f19c7b5028cadc7ef4781f76519360f67e7aa94c6421d0072093e1be96b4c491d00950fe84d4fb878a7625c3a6cd5b1f53b567f24cfc0c37bae5ece1ab4a7a05ac03e4dc5a1f10f4e814ffa2130fca1afe5588ce9dad65e0c78e24ab100ebe11149c6979d81441a9be7c3b7a6b1114827548010809e05f62b1075d63156246f4c1014ab8fa0d19da05a819ab95cbebbe97e5e8b673785f473144f963942430611b027d26e2a50d927c5e9fc3c3739624da4a2f980705879d0094b1cc6466f0c8fafa3c51ac2d8d0c96007cd26a420f6a408b4790ecb458ee117ecec8137af5f3abd32740cad533a6aa34a02ddce5d48aaf9a208cda081b7a60b9f85fdc35040318fdca26c96b5563cc3b991631a11175f4731cb34cc0f3edfda892ae532a820798467491570e2475a5d033e2e0557acf9d985d84fa43efb5f904f4ffc2344c00efe0f014680f91183f413d12d82ced231b10f19ec4129c1b27c55291ed38258588d15e49e2e9cf657e9c8c206e9ec4ba45458165669c704771a7e10b6bb7b35fe2c58b1394ffdd831d0150ef7de706ba9612553bdc23aa0b70c123a1a92475fe0688ddd8dc53d6e2d8f452aee1b1cf3e19a2051a4e8da18e38f4b2707ae38c43cab8a0a83018df0496d77622d8fecd45175c5e1ce281d9bc5de0a6c5d886e8a97f02ed36d357dfb4339e5ccba27d5b266e0dbe889acbabc3720f9c68b5ed6d2a9ba770a44489aa1d8b75bab0203b5d43d2eb0281498d2d5dc32cabb212b1f4f0477f3b027d54dce8fe55cba7be39a39a5f03fb1c34734873596c80607b1508f4f49f005ce75a8afc7892798817323a485f861a7b63ed38942b12e9ba8b070a7d2363b23b79d503aa173056d502ecc6185895e2d6630745b03fa2efa745a308acad21c83cb2a01b74de041f27a58888fdd65379990cbb0761363ab2ab91cd861e6944f70d943b9ff9abfbd76daf3dded0ea600fbae86f5562fff2fe65032468c669f88ec1a6768e4a47a7d0f7ffd6537111112b2a59452cac1073707b3069bcba50e4b739559fe75ab6a894e75096be69ad5f3d7a9d8a3e7eb11d674cad50d9635b3bfe4ec5bbee2ec9ea737a9d99f3a1e173d06b2a1cd141c11696f24291d2d5176eaf8ab88ed9325cad9bff28cc54cd3b72dcf9af579e7872d44893601b14ab4294745f1273d42a93665d7219e23769b74775c69fbe94a3a15b4f033f6d92f69a15833efe8160e2b33d6e71176f6705bd0f2d4503e39004837d8d5afd82795f3d49ab728275e01650925edacb35a6756f6b93fb4e6eda0feb94fbbc42e91d523d6ac979c13521cf669c6f8662e677ce580b462b959b8bd6dd2cd4ad4f399f1bdd77211fc18a6467193a812b555a3a6fee7e92daacd8b4f6f5156606e51501f45fb33cb9e468d108a5cac70825e7a6473f8b2c20d4acb0d8a8d5058f527ec0635e666a5ea0e91650dbd61a1f47645eb4fd8539da7b72b6bcadcac6c65ddacb0b957bc5c5775b35226e7dce99b952a5dd769ef6665891599023c1c444aabbd52a5d66aef952657347045f6a335f193db952ed55e9cb94e7b1f1852d7eb6eeaa04e0b9d166bc2ab2dfde6a6821b2e361e173c5c5c785b1fbcf1f4f0f4705dc4323db01e588e727d81f9c07cb82b2a6479e1f3628bcb142e5054e0c08b9f173fb42b416c2e4bb65871dbb2c42d05257ab86d0122dc72a581a0a264da28c365f816db0d6a8a4dd6e5ca1a7dabd2c46d0b0b4426d1162d5f77dda18a0d372e4b4019d130a2b105ca96d994163951d0a841a306e7a6428949e81ab11ab11d2776143bcad272a5c5eaafd7aabf578bcd034836906ce0fd64e3868d1b5a4b8d06b5c24d0b4d3f515a525aba69d140164b142c5170cb8205053828c071cbf2c42d4b1155b72c6e70e4c091838b1b35b05b961ad42d0b941c3a72e8b8655912e6964516838e00e808c0d60d4b11372c6e300b1504a0022c6bb0547d55010b6d0c962e9fa56e58aadcaec8d11c48c1020b2c60fa9b95260508e206b575834ae2062544141310bc57bcf7969696f5d6410de7a97b5a14478fd32c2bb3a7fc01154ec8c14450252ce712d1d2cf1cc5cf2cc5dd08ec49194e79cc212217e38c1da82a388be2f8a6ecc72d50d38d0f34294b59530c35d924e59a355d6208ce62ba0b72eab6e610f2681845e000f0667833bc192ead1795d7d32bcb0bea05e625f59a7a91d1d27269b9b4debe6c7682281a237669bd9cbc5c2ed7ebf57abd5eafd77ed99ef624722e783cd1296a8626a3663c89221502c1f8b146ac316e1a233c49d5c0d92c9cbd7550a7c58e8e92155e32029e326a08698684848484848484a4f5de3c4859a6ced048fe7072f68c07698634439a21cd9066486490a6906a40b221e98064850404121652965458674cd9d49a4c2e88829e44378144a72822bf24f99a8c22728e8cc9a15da226b32556b12c88947c10a32276c56d0b0e113eec302505554515abfd0a9448cb032066a346512220228d6084978c0192311ef4d04509d3517e2208639012842d7e06b96446cc458835d57009866a43460c650d2931a435146768cb94995a7be66c879ea918591485dab05e832c92428fac4b40163da1133c558192aadd1e7731e3c845cf50cd1baa0dd5866a43b5a1da90114359434a0c690dc519da32959832732635c28a5c2ab624556414eab4e0312aaf829404c9829804cd82a404d182a082b25ca14e07499557babc122a4fd82dcf5d5e052909920531099a054909a2056509820a922aa7caa972aa9cd234441e313ed469c1e34c3684811583498c598c1362d0625889f1a4853a588c9ad67a6f18ccdda437e857fa5367b9cb700a030b0603cbbbf284712e549e3ba884811583498c598c1362d0625889f114a3851852316a4f7b82920aedd653d413a8a7a30f7c97652e5d068fcd47160c9b8d46a86f1bd730f21a2f1a4b5a78cfb8e3e3087b7d6481b921eb680aed891a55c98a4265c8a9c0bab2b5e88162cd0a430a86d455da564aea359b5d63e1255d156605ab0226c747898fccc789cfcce7c9870a35ad5b59f940651161414c5b9df084d680f254054aaa4b6dca76892ccf968f3556a9a82c8262894427af2ca2c9d9d59f5093468db2a24879eb30abab142362066bc2cacaca0aeb6aaa0a981c256c5e6693623b50d389d5cfa8f83cb90fd45ba761042515c2a66053d5a7e288d88376b04626e36c3c61a48d5628d1f87447293b6abdb70c72acf5c4e01c3d3d79ab75d1d5268ba2d01ad6b3c943163d155529822ad2624d29b2a866cd31d69cb2591549a1454554b8b2882666ef6091e539e4e57934c25bdfc1ea29cfa30fdeba8cf284c5a8d83b58239371369e30d2462be3d32835b630d6de7a91540ddcb1dab1aaee566ff7d651783402ad61cb92f6243ecdf0f1642221859704b19c99941933a66c1b9acdae34260875947da4147e54bea72fcb07654d305253dbc26cd067fb61f583cd0fac1f592e5cc865e41f57b4225a3dfa40883c1ae1487634a3465068474d6257d4e82884b7eee288c991063eb603258ac919fad3d30af2b4e0bcf59e52cbf3b4ac6a5254d6fc934d8adda8693f3074eaa5ae522c0c252213fba66c52acc8f6b4a7a5a54bded76494e9822caa624d28a9ce1ccba2276b8eb04f9795cb4aebbd2f4841484eb1711579c478d1c3a241c2fc1255f7b02a36c9bd34018ea51c2178492ec88884d188a08200885ef9c3eae8c80618132ff01ed421819c14226b8f0fad511dff7c75a143cdea20537849a3073fbc64919047c328022e88ac12a899a266eb48cd14355b481768e002991a991a276f899eea099556ec89960db80ada02cc3926155746c21a91d086205e85cd48b6e1d6c253b6553225a5a65532256f73051bfb90ebda758febdacf7aeaf2f417455b9bbe7d7b6a50d75a4faba9f5d20315865536abc848b1c232e1f6098b84dbc76681617ce856911ec284339f28fb0cc35958841a85b31e283215ca06046469424ca19f48be96a7068261d7c77e02bdb5a675ac24e41259b77d1d7771d15f5287794d20b76517faacc404f54c365b6985a2a7bcd2b45cc4b0c7336f7d772130a1aa7c625c6dcaa74a6a9f9c8db3c1e0c0007d2d7b6a2f72d8278c9edac3c8e26cd488b3f5d44ca8a22bdf15c501f4d9c2fce87c7005cc3ebfabef4ae7839f287ebe2b6af45dfdd88a6a4932282fc45caaba949e20068562bdb0cf09a42690a23862148b6249a025c53e5d4aeb5d6a02296a64279092402b27c964a8a0eceb579147d5d5fc5aa911eec331bb7e18d6add3d6ae6cedcad676a9bd57f90237a803b6b0b471f49d1d1f4b6a4d570b9d7297a2bfcaad2dafd4e5168d46bb2159df459ef8b4b5d329fd9cd2ef5bfa5cf64cd6d22c6dd3f4d69f83d6044b6a4d1b861259b754f6f6b6666930eff153f3f8b961dea3354f59d6ad1d1ba60052a19352d56a2873d8fbb3bd7ef0cab8a238803efc887cb6ffc2ecfae0de5e8d40a67300bd8c2b191724eb5bd7fbfb9c7eb667b25ee982b66be06a3c25ecd3058de288d5f69943964346710071b5efcc77c5d54827f61981ccf611c8803e878cabe590c56c54b58e0c8c7310ecb2eb7f16d78ed667b2582f69b29e53d1c9933d9365b227e8c4d5587676a6cb71f0d97e48768eba8b31fbac358a2346720ee6f2fc6c3c8e4027dee6ae96e2937dba44dabb6a1f7b9b487b5b430cdbe2cee0109fae3db23ec6b83c8910f92c5ee091f424528760bff7b64215a8bf49d978704b14c48e4c2227bd56a79952230e53e74200b54d3a29a502b89d6bda3987ffeaaee4f0e5b2915b9b10f298525a9e9c731dc769ddd12560acd2fda2b4eb3aaec4947a2e31f54bf70b353cab63e7c231acdcc5be2d576b2d89848f691a4c31a598524a31c69452aa0566da759c53cfdded3aae24127ec6e5b599bbb77aec6b925bc12b5748eed6c560690e6dcd05382ab6380c5ce59a2dd72a609b03f5d978b8c0d59c2cae76d32491a258328a85b557d9fc68cda7250f20a538b40e80ae18635a7335a2bbd833ce3be78e3c3bc7ee893e38f75c8b3d3af7aebeb7c45dc9e5bb03482b1610740fdb240a7ae5f22df2dcb5e8433be89dd8c373b03cb17bdc8775a9eba5d4881ae1f2c4175f2959774f4fee298ecfefbbbc56ebd2f856279c713ef2d82f35ca1e82a4a546d93f127f76fdd9bbcfce759f6f0b20cd91b99c5d63ef3aef6aadb5ab18ff0571c6377cf1d6baebf2bd620f9a7f24c950608b2d603ba871416a742bb618971d648f1a5dec51f3e28c2bb639971a9314a8ffd32397f87eb8858464c058888325224b5f3858da16c83fe47a185a7f711ac9afdd73507b0e6677ee91fa35012c50bf62cf252e3513f096d91c50acc7e5905bea213603a0c5be04deeefaf56ccd4a856cd275cd79fe812118964340c7605914fbf053ecd4255d9b784b7cc4ae6e852aa7bdeb3c3bc64c96cba505f0eb7208e79ce72e97316b5617b2a6d524e42936780016294528a932440c50aa24889245eacb9c0fc6d440b0c106559819e385871fa03e50834f1b2236808415311fb8a201de401b344940b13a82098de6c7d61b2b1d9470b102458328b436c84b2c4580529d00429a335a8040e1898a081916287088728516213250c1a2058b0c1a5061055b932c71a48882aacd085042ec0c626671a84a9822429f39b265e9c084144d30f1a281124ed2c000429c0ecca468880a63c29b1b4430c2cc142142ae8853c2ecb642d4116690a01087ca2c2a062280d04029026836386203384a4810e289cc134e3ca0cb241953451b1ab2681822841984d4273608819027b634a073a8ac789963e5a4092fb68d0d263dbc698382084f372009810a25d0a84006044a68323c6051c184892264644098396185981f4ad0d2830b33f45891831316b2a05983e689f626051550081302152d4312293dd048a06213818829847450255cb1c20b362d367a2ac9095b4e88e18715543083427eb30103a29471a3824c8539545c386d645ddcb44962051e9aa8530db209538ad8e2831929b2e000958e010456e0301546093867dc08a94fc03475ba01b8e54fafb86957a7d57575588d551bb2746e0a15bdb5a6f553c75b3f357618a545d785b00f07083dc69eef8dc598f4337172f60c60f60ce409e91471a25395b266aeb5aae5ac5858d5074a94fd03c117ddeb30ac4ebdaa0f34e9ee780b3fb5928ed30ab69fb0773953188665e897042a619f554bfdab6b2df3a863ca5a03ab164abb3a754bae3c6199be15c9b3bac833ff59b12a58eab066be412e5933d7ac526889b2ffa00fd6d0c34fb76240df3a0ffad693fc254fe7c8b3067928b683d7c3602d4392bef6b271f964df7befb57edf9627121c5211f4b2b1b545ae67adf3edcaad0bf2536a74cb9a154af96c69d49e90433f616276274f874da29dcbd22e51be61cdcc259e008ccb049448906481b284ace996452e517595b0cfd8f518ddaa8ec42ad1a6eab4ac75c9574a69c5465cc5c2d01b4f237fafd3f2c4353fb3fdbd706b0fafbe5afa994de3423c03d638a458eb5d6b870507de20afcbf5e3f224ef3af15f3104b9dd911de0bfcec1ce9dbfae35d779ed1660cdebf4eae4722b65b080ab74c3125d3f8bae9f407f1d762fc5fabba90ebd41af8eec02e92e8f2e8c2765f21c036b5aafe40e6bd20e837287db249bb9cf7fb8cebb1253077a77f71106a4bbccd97b3169c39303d80fb9ee74f1758aad12a699238530f69c3549b5aed9c2b0c89a7644723dac372c91900567d1ee1ce3ee46ac050bde7abd4a5e940776d02f09c4d570f4323e2cf4bcab5e57bde2ba4718fe3eeddde79d7b5f491df4bcea7525f50f608c3bdd75e57931c69ee7693335da2406837d7e49e73c5c9e170654435cd20ef61f0c4883ae35695a22eb9570f6388ad1485e7b8751c06178dd23470d865e583f2c6168f6f77d9f63e730fd605dc537671228cc3e6b3c2c8697e830bc619fb0f12cb24aae2014482a526bedc8f04bcd60e9e702fb9d670023755893fb19c8d128f0b9f520371fd17e5239f675c06c120f165576e4f26071e484c1ce4abbefe9e8f0550add2cb2b0ab74a4d2a4205dd7719c7e0efff4c027e7dc9b37ec0a6489a8d125b21e920f283a72958890d8a7d00b6181050fef79de78b7aca73688c95397462fde787174f9e9e2e5278c17fd04c08b5b2ccf0d80ea5f75cf2ba546e7180b3bfad589cf38b44a1ae321b8bc4dd062d7c3cf43aedbde57ff6290c39c8c24afebaef9e108d21ee609bd97c17754c6eb329b01ef917b7b64f5deb0f6d3233b97cb1d4cb85c3ac37d3308b17b9ea4b38bb2253a745826ef08c9e1ec954ce58e8c4466cd3b7e78c26c5db20e160131483a1ddfe05bfef4f8e9c1f910cebc25789bfc7526ebb7475664ce3e6130ddb90b79f87529646a1707a04b206b6a85f59b01748f3cc3f78ebce766bdd4c499c3dc8739cc8d0f7ea06bd7da33f29dd71004abe8e3be3ef279dad31d37005c623cb5c4123c73dc70650645b8110a91c8207a9ddbad2dd1e52acf242fb26eb944adad251b6ef32f797a5b6f33b066116ef2d5b83c61badc6e6c93ebd9437c4b08e40c78e6b811f20134e584115b59c82ae958a2b6ad2d2e6b6db9c9c09ad6798aa06eaeab7e6fb016628716e7da3e7f30f8b302b9614daba3d6f1cffd22e79df3cdd76949647cecc3c6943548dcbf7eff96e78fd0cfd25b00ff102176f53206bab58514b2f5c857240fe4c206b9f3a72302cb5d792493405f497a9aa6699ade7b9e6784042d87476bee3631ad7990a1c54e5d7ebdeceaa58afe89650812000c5d8b4e6117e2ff3a6fbf2687643a80d1129960c5931536ab568c7b40c0008e5587fd34f2f808f6248f33b8c475f6ca03c11004bdf310ecbe2cf41f795236278663a5dd7aa5f6d02ad92b255174d279f627110ca407048cdf8ad973f9e3e3dd856ddd5a22ec169f3fd8bd5efd602b3994cd0f4b84011c2bd07a5dee8c4665769b5c286f1d96668ad65b1f2dbe5020cd42ff5215b3639dd392983f7df5759520bed90209abad92b00fc9332479b2b2aaad156bdd754e89c07c48d0868536cf718e9f2b7f384ff2ce71dcbd5d2984aba2135706c9e2ceac69cb2ac2cc15b149b9e4b1a461d8637e8c2d63cd29f1c7477eceb9d206b14436bf6053af6896cd9a5565a891f53084d04f1024b37f444ff2227daf525024eb4f0fd15dee2a4f978b9ee44197cbb3bb1e74b94af0055ad12750df134b1ef443f2baad1d0f0c6c7af3b2e47d9edebc403d18862179ad78412792270ffa438858173dbb5872603d87a253f65074e2fc23af1579dcff5c1479e05273f743b2834a8d3837826da8350163c597cb215f99bd3af87948717c1f0956fa98b41f92358bf7e083d75e65af414d7118a9ef047a054b264b436ae49da2583b2735d4cbe59c73adb9563154e01c3a50bb22464c181bc4b410e64b2d8bb6806187d664eab204ebd33f371bfb10cee9e5bcebbaceeb3ad7ded9b92e2be79573ec542400976b16af8ab98a7315b3538ae503dc6106299f4504e8f55f56d418e3c7e5c9b9482012fbf7e5902c7a6283ae1de3acff835937dfde6bbecf9a3762de5e1bda4ba543c7e7a3af445fc757156b05fddca3cb4f581e4bdf29dd612f12bbc8fada4f988b03498fbc9e4f9fe7bc2389e8b8f5622b20d54bafcda287edecead829ccb4264d9a414d6ba9697d86bb484e2cc15c6b589a3a939c7be475bd7475bd3ab47989f0a533798e9fc30fd3f2cc64e81e791fa4492fafa2530d7558c3b256eb7d9e05298e0f7489fb0bc9fadb2582dff570786efda338bc97bb44a7f05586fe55f76a793d13199d32cdd7f3c5485499adc8a622cb48415441544bd42b757c6bc5b5de1a27288d11fc664d9aaa1ff3348d973450a19a289eded4cc7ec6d35b1a370f649338d32a69cf319cad6800d7a55b2227200f7657664b8ed6cc25137b733966cf800dd8d5e9cd862520b5b734b45b1ab14ace8f4380d5cf3ddaa4d3f4b74ade84ffb2b9fa1b6feb0a23996d35c65e49af87c0eb6f5c5dc3fec4995ea52b93c9644f4d7783a034756c53e7bce29db1d6b6847dceb9e64c3166e22ab6594bed75eb35c9add54b15d6d35b95d6d7787aab927a191004ecc000c875080902016b060161d8446cd2493d0804ac52953555996d87a66b6a6ccb86c9fa38e78e5b634d1bfbac58556f93e8ad0aaabead47d81cde3e10a0173656d26e8910a5d961ec122ff4dcaf7443bd145aed7af10f10ec94ea755e0aaa2b53acb5f6e22e5af045c12e4165820c775464ed0407bee982a836365dd7795f5519cff33ef066d302daa0f2152011486dc6b986a71aa07c0d4b9e8d57059a27acb55c67ebf26961ac351cc7690f4d19345db0f7791f9a2a6fd13c61344dc60ffc402bde7a9ee2d4372a2d1815d68d8acd8daaea4645e64655db200886a2ad8a2aca95f5c2ea45d5d6b5a39433932f1ec79dd1c2fcb6abdf7b2f19fcd3c343f2d49a4260c11c77f3ad8f5ff8662ba6176a6ebee07bfca286d7d601996c31a61e6c3a2038d582d4afb33f527c706767141a75b85db4107d0c19479d3d8e62074ed8b50bf062f0856f8b4eb7450d4151bcc0850bb103a7cf3be7a9b55efddd1e8e731767fdea8fdc8101530f3631e4e14471858b73ce5c6743d7755dd775a218579b6e77de61aed3f7b6d1f7de193c5aebf78139671dee91c8088239e43a18c230bb9873ce1cbe5dd65e39f2721dd8c6e24a3177aff8a3985ddd06da8bb91d3bac99060433e9bdfee71ec46106bb90bc21c662d805da4a3f50fc3cafdcc1797e65a03649bbe88554a87bea58877b2432f2b83a70bade39ec729ff1e5b6063379eb5f276c435bb1835ff8894e9d8314534cf1c51cfd51620c7a947f1fdcb7dcf1815dfde24ab12b97951a65ec41486d5292f8d999ac18ce6e2f4c75f69e21e1cc097f2f0d5764ef2e6598b6b5bb19536b66ccddceeafc799fce1330575d6f67b97befbd37e79cf3cdf972fb85f1c51ef54b41196aad35d79aebbdf7eac79816d938eceebd1ec4b95b83f8b969917defbd39df5b84986e8898093b2200a723011ddd713967cc719dce195faf3a61f5fc3803f9f307e4a273ebb1abd495422e14134242a81607cc825d2f4a3dafe1314a54831a69edea670d4ac465c7d85d9bdefdfa8aa1e843023a5ba77300e92d3807909ef1fd10147d484067f360f0eb096bd2db1a14892a69d7e588e3c717bd571e19f07ad9e64b94a7d69cc0c562cbd631e1969d97fdc2077feaf1476a646fd971d9e7f8744c1496d3d8bbaef3b25f18a1a1d83a3c004d8186061abee44003140768a0fde9230e66acf8738c11c60c1c3366b0fe1c6566cc3c7536b3b0f15798a9a374b4a6538ce941b4dcbea251460a19387f955cd0d2f9eb18fcb04ad476efbd17db31c65bd7649acc1082b730d70e383cf9d7adf6b9a29a3efcfde1af6b317f7dc366d8f2d7c4610824ac9228430b224cd3b913c0064b05335888a0c393a67baf2fa04a4c09e29a286fab6cf56aa0df8e9e0a81b6dd5cb590e28525d321028acb87dade810684d5d4142cac164a08e2e916830929fcf004059520e40481c20f5b6aa4f4308bc1c90f362d2700218706c587ac1b0c4b9a60494541eba11684940f60bdb0e689178415cccc0803ba9549e2459ccd46632027bcfce94280c122e30918274070f67e7afb92c5dd5034c16eba9089c4d3f5abb4addfbe08714718125b32be7c5993f505863f770c12b6ced3db972dbbc799aefb324b78e4e3a7b7331cf021f616c905418726241eecf4d0b4dd839185262fd5ad03b94a4868126564983579403b40030286a65d7af9f1518768af658e511cf6ab44260be46fad2fafa1bfc813c8bbfc9244c81d9d77dea3def20774fa4b9f8bfc015d3f58c6c01d3629ecfcf5023d7439d37d919dab0b6b586bd7855db9644d7bc39af57758a5da64fd0718fb487d1544888ba83f89c49e56b966ffb3f792961d440890055ceb1c0903824d9165adbd6f6f638ef8f0b5c04cf1278de2c6ac0bd91b6aa058289705af0037a5ae2975ca74b3d16e36994e5458bbb9208776033385ede6458620a2746e62663a4d98ac3058b7304d9edece6c293dbdd5d8bcdb245cab7a7a93c1ea6badcc57172afaea9be93ad38d251d0f5635db63e3fe62d597aabb09aed91489cfe5be22015cfccd9e973d5f703d1bc937e7cb237cb1d9253d31ed50b87d4161035192b86ab2e49193a614527092459325857418820917ae68b224cd02a18956618212334d96bc20e8d054c160d144154d96bc525034d9e8428255139224382ca869f24084c20410483c314d1eeccc69ba25b5139c21d7d9786244adc992b4c9035beb0d3e5bfba45771e04c01d554fdc8558a8d69aa0ec45d5cf68fa657bbde21b6fd596dbabe44040b9aaecf6a13f6d8167f80dcf2877a76da441f01b609973fb4fcb901a018a8242e3676ad643324000040026315000020100a868442b168348d9254917d14000d6c8244725c3a16c9633990c3280c820c210611438021c0206314a2a1d9000013f42cbb70d193d8b1521db40e481012c2a14920bde2fe6141f3f7db13acc3a50a45de8cae561d9c28ec0b15887edf7e98825b6bb0719715d068fb9fb7be9f8679a60a6374e1f5849b7d585de8d40d04a4d26182edf4850863758fa6bae04fffe758b731c9b937896b9365dd57c0c0660dac7b9ca93237ee9a7665363ba3729c82f7a7774b95e3da0efa148e69b080bae56e316f94b6ad64e0e667fe50320244ad0ab465ea77205dde84f604e3176b5958378b3d8e8c4f8cc0e9a88824c82662a7303232c837540f315473650fe80121abe931a41d9033bdfe13fa553f41d0f17b623799d2701ca2c8da49391bc3244f402b9b32260b704a0746e94a0122c0c64023be4f06ccd7e49aef304532c1f31fba15d2fddb0cc43655931e15920f8749101bf548bba3bc303e4868dd63e8e8ec356173f1a88e030fde0459ac1dc1c9c81eb2db5ff9205563253e03b6d1ef4a0ca93e6c35b239483781516b25beb482842c45ed459411062753cd55fb029a3670072b1b3f5a733decac56a84340dd6779a055852838b30b6c8c8dc5ae7662d06a1ea4aeb482225b5a6573b63ef4eb52be3af8e7d1099c151855f72b000870825a474f958fe981f2a213dd0146bcde5605a26a886003aa8294225a18661ae6d6a2489a7b8df6b7f4091a5e87a79b608b3ca33a20f7e52d697793a9330e948d8a9d38d96db06700ee9ce77071ce463d2dea0afccedf692a46f70fb065911a0a2964e9831b021e7a1a643f552c885d0fb412eee3e77d51a97b9877cbb1f113b6713159aebfacc613f59fa2762f093030f483870055153d54d1b51e27f6cdb51d6a5b51535413b8f308b9caafa1de1e3e3ec76ae79d16ec8752f64c1b2aa67506bb760d920d6373bcab810e0a57ac033a6f20017fc437d33f23ab202eecf04885d275f858470ba1f52516c6e8f78ee256428d41fcf8cd716024140c4438752354132eb1fd5c36ad4b82e032bdec0f9fc45dbce39ac567fab246f61888b50293ed4b5053a53da42bfd7b76335c16002b042630f6c656dfad096542fb3e3c08500d10a0c9a0d424e8c975147be0f5a79401d336c07edf319ddf00cecbd5d977325aaaaee7c82a4485f6f129381b687118a9d9db19e9687cfc419d030525d303c0bd360e126fd9e0040bcbb3da1e60fc92286ce56ac38f7b31505dab4cf8357a8782d78735e07da7f3719adee3647c1737b6d6ff271a269781d88fe2784d59ae24aa2248e0518c78878de00e8f0d6755d2ec42c63b9da675ab01b380f572c68d1744f1b2aef1568d81dbb9b5586b7204f615d17d206600bcec2208f1018c1ca98d301d8048a4d2700413c57a798ca1c710607069084a9105304dcf69e5286725ab69125d5be1a7c9a4b44718bab6987907f371a30d1373c96d25204fbc5a83a1350deb05886841bb49d042164c1a52287cc030937fd67d8810adfe9833af1906403f0135d7c82d7c4c82d780c0d93dfca8e09d14cc096fb4f6ccb03777ba386a8102578a18d741a6e9abd11187509d41a9cc5e3a298e82950150d03b67f860957212c59876cfe254b6b0e033dc6260906f5d2b7035c13837c3a820ed28cee0404b4ba272d58ce3f211dc3d63c5aa0eb4d06f1314e38134ab365b7e4e3bc9f2e90b006c13f1d5a21fc2fe12e4aa5b07478c419da3eff4c41d6d2b07e6f7acefe0adadc804fd812bc9fbdbd43293af9ce8d09583a7e60733be8b40295c40b8c985ffbdc4a3b109df6d2ac24e9c633eced95b906506e8d7a7dec16e3106ff772b26944144c055a2a7ce770d4108a17609bb2d0c45714e6b9c2d72b776ba2f2a792fbea561782deaad65db17d627867148b72e51086c8040b71e1ce9a8db501426144ffc154dc5108781f16fd1290dae3410cd8d26181c7b680205b98532448a541559af46903128b9695426012d1a1e433dc896f7590051ab122741192d3a1db7e9df1a01c3b54dd23521e89baaeb4c36d6bf54ac041ce275fb2fb1a3dd24b419fb6e5722bd6dadc141b87c164c4810ea415a6f916f0040b392906c641e901bec283076354a03c7dfbb6b6eacfdb9c2654502a15fb3928369f4f79189719a141c032572b588351ec561b76df6a566a99ae924710d36e83a4d3a650360e72894ecc0d288e97bdccd5dd99e041ba70a3a51ccb38fd7d4cf1842225993cddad5a95191861ca74d9ef79092c2318d0624255e7894e6656aefd51f0629f0fea48bbc4cdabba91dd7d93c309d0553711ccd6784668053ed82983b82d6f8063f1762ce25e4926a8b2cda4805eb11371d13be6fd0bb1f587857d0dc622a4f101842f1348689bd8f4d80490805232738eddee44a710dbb30a3ce70fd931affc87997aa00acf07565b96933c1dccf705e314e13d9983b07516cab783de3ca228dc420a598108bf02da5318010d019475432cb42e820996336d8f40b9de69e8af439cf791d53518af53240567f31fcd5649c8b602147cfe5bb0e865c03625c334dfca00204bf88f625ab4d470a75d003914a708000d2c5c472872927c898a559047d2173e508f7a3036086425f69915f13189b8545d50ca8436fa66432e1d59f381840728db6cb36e8bd55413d9235c814631ec20c98ddb1d5050b484813f8480254438f123527fd5ba4f25a7b1749965389e289f66d339bf6590158db2255ec4c883be339549f6b92cf8914f71b15da7549fb9e0f63438c8ebb77c52af64853735e61df9610a0c8b0d9dac6fc8ba190887bcecab4773695a59d2489f37b56fa931d29011d2d4668e8699725ea3a130ce6667d5a8ae331695045291bde27d1a452e7b4fb28eca98daea6a80586e1a44d78b5445bd0c15aebfb3bdfa378cfa1d0c5a3b971aca10b05d0671070baa40efe2663778741e7620919582aa79a0a700d9a270e8f7d0606c94dc2146a5ad82b1d436a7742b2990c66d9cc22c679101b147c26fbcc87dbebaa732d829e312da6139ea0318dbe18ab161ac0c1dc83d45ca042743cb9c4c286c2fb83bd33ae4a31488bf44b3521c0e7dbc706fcf84a5a817ed0fb8735adcfdd0a11c9450576093a9e2fcb64036c1cd06cb04d3d5dcaca6798e79d79fae072c44ed8000315d42f3b2d08701f40b3a11796e643097e09159442085e58701ad34c1ea71c62e7739aaa9d1a5120818bf1a0ab4409aceccef78d6f848f5355b05c707022ce196e6fb64cf90f088b7057b851d2cf6e7f60cf2ac3b658a13cb9c7d3768c78fadf8c21f99fc1a8538a28352ef7084716605492cb90db97f495f9a2230c90852c8c5e4a5ed2707fc5ff19646fc280759987d7f66d3e428f67bdde36e006d7a3bd42f6072333e18c09a3e50fce94b66f2ba004f2e7fc541f5f866b589a617c75112c55d7fde53e397f2411724caaa9f5a07078688160f539cb0b1ba51293994715d9ed574a82f283ba4c5b079b303bce75867b89570570e75eaf4a266f21081895cae526db8b97c411fab439b601732f3980500fd4b0edc9e4a198f7dae3cbeb9e81bba81994212d3418ab63d223226580308f6cb4dd2ac21ce66d50b74d15d44f17ecb9511a6dc6d2ab245dae8160aaf87e19350427b6e27d56aa224a9cc591c61f0544ebbf1bb2b84f0f80152a10264dc6d0ecdd1651801543cb452c75b0db1ad706d3a78030cbd14ee512ea3c1ea3e413d00e6509ded05ac09a27c69c8ecfb62dfcaec8b3ec5c0a377460cd408a1861017db318dc21be3960bda1752b3d205152dabb44020e75cbecebe990ca6022ef24d24b0f3ff7a23a606a8512664b061efcb5c12c997c6c2b5081ac189a7d1060ef84d8dba10f7d3257d29ba0e91f126198ce3771d781878c23e7f18d986281129bf74b115513b25b719fa21e2bb3013f705f4ddcd2deed19ce54f150f3c7ca3e2aa813bf6d9e73d9abc61a2df904eb3bb9ed1602501a3d96db1451c06c1e6d59bc0930c73c9d3786f7d94defca31f1835b892503baf8ae818e4495fa18ffdf5b03269834f08ee82006d1ea2214b7c463e0af8ff25ec61b2200ef34d91e3821751232a3951de3ada51f2e5ec6b908d86de211ba893fb44573f2f2af3b78af12605f3b006c7a684e7e0168f977f70998fb65dd7495d6a9c2ab6e77246a62530500a5ea4497824783275dcc25eec202fc2de10c7cfcfa2faa04b7e5e6ab645e8f2af2a5328342a4224f0a9dc592bc6f612a6ae7fbf1ee10d02d387045518f24d0a51f9030b592a1e2f84085409245c0a065dd7a72c96b7c36b41b6b00d1924ae6c44ea0778214fdb07dbdfcf57701d325d80488038715bfb83b7c29cc35017f680ea8e43e3674cf682736255362609f0bcc62d95f2539d436e0868a0075c7590a2d4594d65bd9fac994f75e79fb5a28ef0112e4ab680ea5e6e75a1d6fb3531c29463a48a2c398f2f56342bff30f31d355c1f6a99193c76d067ec16485a3d2a04db1b1f6161e0f1a2b2424de51064193a608805da216e2e65f1d7f810ac827f798b6907ffa057d3da457e55d6045830fd9a1a593686dbfe734d5a34ec1f3f94fad7268dc3d2c41d85727a92044ec6ec4dd9fd03af1d731f62c3dad2d13c4a1ac5ffed139b7f21122f6bba59488200494b11e91e93da99c8c4ee7c903b4c12a7e82d0bc3e1ebce3284428252d7623c8ccfc00e0037865b18fef1ed554924368d9dd08094640982f748768da4664d7eb27aa7128334bb273eb548af4a7b77040329743b8ea872eceb3191f0601553263751af7285e235c26eaf22cf0fb9d1417ea68146773cb1586d62d020b9a992952dd780502e4f2544952e8a1aefc742f61066466b734b6af31987a98c2f487b4e472ebb8407238078c15883e387350fd4ad904e847c103815c8831c87b3e6749bb2513cabc89dcd1d7535a7f6d23f6a334b99c35394af3d9a49bb286882168b72adf28561caa12d356f75b1ea04a33fdc581e0d2c5c20a972e9b90091dfa007cc09548cd7032a00bed69981ea40ffa799658be49cfda61a98f0fe00e598039dde8343bf40dee73e25ff0ac28f30db2db7d23d69508e888cfcc66b685d1cf3d8d268eb5921f01a77bf98aab38e112348cca54aec1f45813759a59129c0d1d5f2a16a302c3700952e0574564493eb130acfb23734040d720e108ed3c6c88eb4261df4298a6880562606f9feb0b41cc5b5cb8f7d5242b7109939c03f7dd38bf47afa063954b7c0b2d5248c9efe4e653632602d42fb74da3c63c5e2208501b2c38648df347b4fb8ce9165fc13c957cbe37a7776886a878880789cfcaf3591c73fcac1d362ef53c1733599ba72631fadd077e32ed529e5eee6762a66146b4b9bc3ba666a2c7bc90d2fa3310187d0eeb2ebfc902f4e8b9ed411f30f2cf575c741c2b5f27bc949c62d5675d64f5592b247e6f4a090f048b7ad54f930f9f49a3c982a2160f17f9b2430d61333bc78003e15fca29fcd90e03cc76267808f9c8bfe78321167bbc1cebae6a79bdbc759db87ecb1c194b5c30ea4399667d6f52afab06af468ced44cb146d56a1f155275b9b7f8612a8359121613291a0fe1c722865e5e3db1e2a9a2e64a0f3c9fd7ff5571d1f71c06c1297d021fea3345125a9c0a57e1afa299dfab28e41a97093f353c640fb5710581aa0c26df64b1d04f55b9953666198bc8c1d4948c94cf2533afa580d4149721bfa530fa0ffac482db3b22647c4125c14c8bb229ec8ca9a6c113ba7186198f4b7741340306f3e0d7dcd99e468c43d3bf4e1956fded9e1dfc0d0db2644db9ecf7fa67702085ed79767f9c3bd458cf77108c306200c76bb5b4433276687a3c6e44308e8b53c31f04dbcc7c63b32351908b0d0b522acc910f90d811806bb14d40531461176938161ea95c1d5bed947a216550c9ec81d6d60eb3a8acd1a363e2507eb269437ee4617999876892e488881fa0c122e13dca8ac151d2c325090a2f001951152380788d9356b802ddc02dd21837374038dc503921db8aaa08864c24ca4b1e4b32e6108fbcb0c594473dc758eaf5ed223a047c6a5c7eed9fa19174312c49164b6510a5568c6d5e67b6194c40ab7b787c0465912998b5c2317a965974a67ec078b9454a8b02a7a0ae6408672f3f3869235d0b7c56f39f0a08643db318485c9003559eeebce11c28314de37a4e67310ea5fc7a016d25e815a5d3815723ab44a1e6c76d4d7ead356db2460a818bcb64fb4c329f7e2b4f9502df0485450eeb687ab3a35a41d0cfebe0db5bbdb4a7ca7b40f11da6392e08217a003452d253bcffa5d58cb5da423625b1ccc176341f216686dcba738e6b75fa83de7dfe56409c6c34191c6e84fbfb6a3ce0e5cffb79684d34080062426a1e5629038c4343f1ff339154298fb1b0c14d843dae70dc3a34168e9fcf866be7f879019ae0ff248ab7c7f03e3e4a47cbfd19edbee9526dc039e30823e075036d0d5c96a81528c164efbb4638d1510910d1629c2fed7a4a667875dc8f2031a9adaa95ae3b757ea9c1b5754db8e84644aeac01863169d55e0182133259be50b1c7807faf7ab18e7d535ab88a7be27253ab8c83dfae702e03e75ceda515db083e922affccec32232ba8609c6f79e34285a240104587fcb0e387788142a4aceaec5e8c77cfaacc76ae4706339ac7a89b37415fa6b9345e1293c09984f94302a0dd4ef52d1d90914f4303966ae679c15de778c3969f550ab9360c94d797933fad1e52e34f01642f3ea7f5bce558993506a97146480807902a3c639382338528b0bdf729ed8255e750e2ebf1c01864694853cfb1518242d338ef5eff27f58a2e214d0638f4623475451dc4ca0041733f201e8c76318931842a1d76e2437e8e15cc75b4ee587a3f4567e0b49c6f8f01ca0a7c522ba9e678f6a34d6ef43c3aa0d58216dbac122b47fc445cd376b21676c8aec25569cd48267d2f8842fa50c0065570ab78cafe878141a126b91d840260f2ad77b9ff57f62e46d8056c669de975baf93871939bd63fe6a9a2843638c6030aca0089beb11f60218a3140716e61e2d74057b60f85baac25e14ac07f8994eaddb678ee27234e969ee1b27e25e5d8f985eef9667ff1dc606fc4ff67cfc70113c7462a1f4ff01e6981d25f34012b0ace6d2bca1f9bfcf0bd347738981218b285a9f7dc1ae02417152e8610c51b041d6f8c9635adbf5e6599704d9055a5e5cfd45c55db2919a7f260bbf833feeab3c2887f2ee0111c27f70b6c1b8472d301275c617b51a84afaf212fe9e5f5ea1ef0134ccd0626fa40ea2f33ef81f9d0073e5ffb88c4588de417f8a09b8f4176338ae56fdf88e466d088fb406e800727f146dd5b3c2d82697a0fd7a0cd25234f178c15002c39393da78c163cf7e92722453662b6c18cbc815b26168e3e36b4828cfebea3a466cdf22dd20f2764dd27b70dd259fadb2df01acfc0c883c21f16adef26c7b418c703aa1d2ff4b3b4cbb435dac548901b07e69bfedebafa8369be624fb40d2a63b9f870302956cf01eab9dab40f5a757a6aacef289a62c4c4a23401855052e7ba702ba6da8b97e96b7288d21f68002f8b9ae82f26444d702f7f1d77eebd8c887441cf65f99157d80b3f7681dc44d735aedc0a6e762c4b6e2d4122c4d0a51a157833e4ba63f35fb48561b78f55970547e6c4ff3c0fcf62fd1912ea490d0c7f17ef1b4d31a739eccb95abe866dcecb138d1ff1841ff43cb38916c63763900cf474a32f1ceb8d736376120d7697f7f6269493252d5ce83702d5bf07cf6ad6b2e881776d359fec61920290d3ac2a0d447fc058aee3fddda0f2ee829a988d3a6b59ce044707a54d9fe8837cdd00a042b0b70d2ca6450c69280e3dc920ddc8e535bc6f71a7824df7dfff0f74dddef92c9b7ddf5d6b7657fee4734003e238ed1569edbe19227b73ae01316f9419d8d79dba3ecbebb483d3fcd1e26e860558627f452f7d495e9a7648cbb14bf7e2810ee9e57d3a3edd6d4e2bf4c358c8c961d7d919df7ec147a4bd3e3828877e8b0148340cdfa6523032504b4d9c4ff32b91f5d1b5d25b91430f51e0e418fa1a404c0965ef75c4244c1012e4e0f74d3f81712735faf2ff64a48e1e93ed4b92950ff27bbaf9ccde8e83bc5816372ffc4bf909bc71e02ba8fc3236716c352403511a948cfc9d4f33c28836aa4c54bb9acf7bba5697ad029b9e7314942fbfda040bf5edeaee7755a71f044930b64cb6695a1709349123d824bc133bbab2a1823084746ada9d1054d42cbc03b0880997844f95625b9c5df480209e15256ab315aaad3422be5b9fc14c364f0c6c47bd612ce31614e6adb91312292f573c2c72da2c179a39cd7842e0d5d5ab94283a7aa009a1af0e163fc5d561b71e3204ec8ac363306deafb608bc38b0c82d670bf7188bdbe18a3c1db9f6788dc20de048f1e5a384f3f315fcb53c0308b7728b1248d6b6db4ef3fd2c27fdef62a87418fbca003186ee083c94be4f47814c3240258e8a8c33da6a152155ca997c6b51dfd843814f75891f33ade26024afc04d19636c38e99368a95923601bd40f0c89ba5b4c05440923871d74bd09b5d88efa971aead47d20e41ff7c005958818d524c10fddaca246e0fa1145057879b978c76d725fd3c06c1f7629640bf158268241031ef50211065b8297b024ec68d3175668a9647855794a96f4e084b583509a5f22eceeb9780de10a51cc755f93002b5997ff87e11e9d8eb3e95523b5cc472d63ba51b8fa0fd7f5250a8068fc8d0f471e55136b8e1d529433a24ebe2eeaf86b216ce1c28707e83fd9c64f3ae287d3bc0f90a5299ec10d0001415337be6eea04add5f4c59692cf1ed24df9d31152c089989c2fe8ec08a50833305871205050c3f491b5b9cc9acbdb423a0666874089e897fb7cb8c27fc58d55916d2070a303bfc98fbf963331d711f8ba9633170e26969f0877391815bcf96e970ec59d89b78ef64985aec9a70627005921f863e8809f73ab2ce62e69968d922736802fd3a3c9ff60c6822f8afa9da2ed4635866feefd7b5582893806495fb1ad7f531fafbd1b6c2e88810093a4fe2169a369074c86d3e52ee986e38919a0c007a33ab58116738a6e27ab43deccb9af8761674e2af46133051c9ace76a5f65c28d4d50375bcfe385c0babe62810d580533a67d7e977244b6b1412d94ec0e0e7dfdf64f823b51dda074ec1330466dff395446fc58904793e1b569b8c03b9dd312651901a2afb6dc3227ad7e7a745ac6b7df60969c940184ffd628cadc618270a420f18415d49028f4e210004b3d04895c0a3bc179bf5cbc61410223af79e2f59d55d108a7a1a4fda8d65b02219ae1afed434fa9ef19fe8fa8e40fe83288f39b8a0008d18d4b93077b0a31c4a9f1bda12b17ca17f58ecb9f3bd7b1854780859fa34177efec25ff68b20862736d76ef8642134e9045bb4a9807a1b94d95edc003b13a076c44213f4cc703a9bcc0b5ace72de92cc6cf8f4614fa33073a29e8d93ad78cb13dc7b578a64330039a911414a0f6f020062a2eeb84699941e65457740c4856a393be9164c00509ba8b6b9e75c47419cec82a4d1e3d42711ec1b6f2b8844b6533ef4372245e36d3fcbbd470325b260e87ca4728630a6791062e45598a1b62d90dfc2aa71ddd4d47009e58fb5c7833a6366c91bc812bf11d4dd19b415c0a683c79c82a3a88c19773ede4641a01f587d82b4088896bad951ec854cf2d2959cf8ef68523a1c7022e4340bfce1f960248e86759b50b0316cd84ba92b22fa68490ea722fb901021c0ebd4d59998835eecdc774640cd7c0038ecde25a11d497d0a761c246c47da6f1e9f34154f97e9b2de74944673417b5e69893238e58bcccf232d60182137b9930da9c8db30bd2e9f443a01432fa078e509ad686dba305f4861954434ee01592329675a1af0bf42253b42bf12bcb56d164858db08fac2f7f6c156a0f470160813a9e65d1fce652a01c88e5d6f411a5003f87bdfb8fc05ef06164b0159153b953a7b30201e77773b1cb40e0391bd15b4720229bdb267273d3c88a5547081a2ea72435d7be53fa6ab018d5d34cd90aa6359932ef5cb730f5c70970a4de3e2d2464f424ce7e13549b994c70bcd6a7d33143406e26ac005d31cefd8c786ed4aee01d969dc7b944f38f8fd07f33ce4da530dd79d60d055e72e1207f72525dd0b593a063fb2c1c69a22acb63b770345b272c6f122b8b9b7fa1d9b4224f6005f65ef8e9b56958dbd6f9be795f564f1ee1c018e4d5bb846f369a9f97ed11ec51728be8dfe7c5c30a3e3f4be1169fc8ca6e257b56dc2c7d9620a82dddae6f6b8f5a45503bbbadc7d97cde78dfa99032a6cf17dad21fa27acaffecb047b5ec2a95ba605b3cdd24c52fc9280f4c42b62df3f236396a13071832c8b660d00306b5b1913a6921861c7edfc978fa7d4a617027a8b012ca411db9cd581f349db21c2c63c783b9d9dbfb6dcf5775d9fe505b42cb771b0deb729713d45738e41c4a9a41f96086e874aaa5ef4ffbb96af6c43544cb25280711b24573f800280ed68105dc0a81cbcb171ece4acf605f54d2d7f3159e14ad5626d83c79d2ca27d285ffca575b38cfa3e35114a5f5a7b32032437b98fc841dc53a4faa1545cec96eb74bc5059f82fb87d64adadf5453b627456c30e47e771fa1b6a01399d8de68020a35b6598f9093ebec4d2465dfb751832461ac2b8298639d71ec30a06d8bbb119f320a529cd012473c40dc7492cb1ad295998bdf5ab61ae7a9ffddcb4a3026995f1b42edc9c104ffd9a0ed831c49bfd3102959d9d940f10d0aa20349d7b75b7d66714f45594937486a9d8ab3d80060ab0549ed65c8ac527decad0ca4dd32ffc0f7667d71ec7cd1602a41368116991449d85982a39a013ad464ca61bcd92da16f1a84ccf93285b690191302e754e0eaf5432d61d290e756d3d71de6741456bbe52da55aea57cf7140b9b8c691c17a4f4ce8af399b6f99bfe825070027819385f6a5d0ea00b8ac705323d26b24680f16ec1a7516a86c27bfce296939411fd61c201f5a92b65a27229586712cbfb7cfa2141ae9c256a9ae320164f5c0aa962c21a98311c6b8f834ad133a03bcd26d2c7d36d6bbe7ffb6d4cc4c1a731ed8b91ffca7f5d16d3a3e4dd45dc12e5a8149f7b2fccdd665372a20805205668da09356987520d4f67973415ec3933e9a0c5f8d6fb9360a7220d7653b18fffb39963d57d55a3fa4328aa7f9afc3394944660446c0d6215e7c8bb3ceae5012a22061cc0e6f30218dbe4a376fcfd97f5b6536a5231bc9d7a5d8baeab627adfce0b265d7d615b4c88c96497ffe9d17f1db1987d15111093c57fdfe0318468b0378a5f901dec3a40c6cff75e1be76e39870df443be6d0638d958d608f20ca4d061e465d0eaff1548ec900558304b8ae48de54b974e36b9e8e684ccabf981efbc5eec6fe8a1b370c92781739c191823211866604046f98f37c5e09bc92e76e77bd189d079b52ab47f1d8360a30427d57da207f26721a6b4c1ec8899ee097f675abd9c3a5a4da9107a28c157c44874540fa0f278ef51e943c7303d5e13e81730a63ee61b43242bef5061ac142670c0fbb6b9cac45e99d9c24494a7bad4361f9958380fa84629d71008ffd907e6a685f320d840919caa764ed881e0aab3ecab00aeaa059f918ee226e6bf52b0f4c9f68bcb8659e1b034fca5a4652e73758d19001e79a82beee476660aba9a62fef2ae6a1a56d1824f7303e012a037a072a60d75db9ffc04b608f594b92a5b92b50fcdb69492b6c8b392ea7ac4b848209140da2afb99a11a5cf394add789e335dc71c115587a05571bd41adbcdec9a136437f373fa51b36c41a9c249512bbcb4dc3c9b0b7a9b35676ce35f0ac4e964d70cd170f9c6f8672f5c487e67c40a7202a2f171f05e565a4ca89878420722494ddbc8443f4640d5591829abd51fb6b9ab164e790db7c469e93f88ea340b29b2e1218e9a2c1a94c8b505d760ad6727c7a45e2a454cb0aa2502d0c24298c6b6abc72c223ced7b82596240871a408020e0cada23eebb482570ef2f2ed7543ceafdfec211eb3b2df1b1a4c2fc37f08d8e1fe9f959cbdf5b3e1b997c596e3f380e8491a068d185110ba4f2cb44f7698a192d118da5bc4354b70900e7c77d95a833808319e8db418de1317f14275f70249bc975fe38a42541a46a7fa21eaf841c7e42cf5df7b82c88513c229bb37de98174648b398dbb8c9153ec9ca067827a05970a084de83722086c9a6f31e46b5c4527027de5c8b040fbf6a1e715af55de8b327274206bf3eb7dcf186fd075373ad4641c24fcc124306e7bb2c025fcb41a67462834f308b86eaecf5cd5e80b3280a5266756f32a03659542e068e797d201635c28ba4d8695bd3d0b09462325a9690037b21074b9560b25159fe95a141cd4830d581459062207a79891cdb3531372b1a7a8e610ece8633c4d4b3c0428555c668e082b6dbbe20f5d77df6734b41eac78eec94d5894e4860d83f2bfc211f89071534483e6555cdfc9016d10d1542eaf650672cab3e53902bcea546ae23a5cb4648ee83f8eac89cbac2846dee466588e37cb33c1fdbe2be461aa714556f5f82702924e05392af1933ab5e5fedd85e46e5d0680a3cf4d296621ba59d237c1feb2a5bac0cdcee019bce50a92444ce1753e5f72cbe69a7ad07e01461e771d771400b7964b48017010fe0816a24b0ac085c6b575370d0a19bc7081bb7f97bbc8429f4112bacae821e245c6e7ebf2fe9a370cabd64a81d93ed20cae3bddbad35e9f05a77dd9effbcb7586ee4faa44d4e5bbaf7386a8f2d486dc7dfa17e6f4c4d16b907c34d2feef833c77f8add8b132e7e92ec67245ed1b92f8fa1338dd2280881624b1c640cb7247ef0872cd0b9bdbec4939941e9d9c20ec48b7adf3056b0483174b770d45c3a50386e122d471771c0598759f2326f642ff12d6c3d0df82763a9a0f269af3b9c47b3749a5c5b96e86e57ae21f40d756c5454c2c2157f122112e271fd9176b50ca8ff2830c3aa2bbd5a5c27361f0b9dadc955c08e5ef17c8d50d7c2e628752d398ce868a42f370d21f56cb300f00e3145711120939b8ea4ed61df632995c44a67e8feae56e9ea5194badca1a6b8253cf14178a139c795f62c612f9f650e590c1065a69148181524f982604459842a300e9efd0ebd9f7d41a68a35004406f1c226ef3bf0678a8076ef7bc7b98f1d4b6bdb8be8a7b85ca83409f7781af55007a1ad7c92f61c8cabcb915b9d0e7e101689f01828dea486c60c30693de0dea9e450226fe7cb9add11123599c67e127797050323579bb2f6b01f2991439f032e5566cd426dbe92a83f22024079cc61262d66b104d3ed666b3389c63bd0fe2deb5bdc0b0070c8eaa7daaa1b59ab90936a3b622664b27f5cff06948d0d118885ee721cfcddbff0a143a36f7a8ff54de7f92a8c05c0a672b05225536366184e52a8e0c0184ea50a1f8559ee3fa635a800b2fef3fce01380f3158ef3425a65ce2395fc35a058b58a294b2b89613c80b4e675ec13a37f520a80b70b3e152dd297fab3d21869a65438b20bcccc3f16040e2c857a0e6d36ffc7907b1c19d8dfdd3f83c60036ed0c90d64c12d04de97ff423291694856606afa6c241bc23a2dcd532d515263bcb722fbf015293d74b144cfa38b751797a902119427ed3bfb672051f8172fd9f002e234310938b2836fbb663597699ede551638e00741102babbf2ce0f6567dfc4ad56c9654ed0db1bc432079117b02ad77cce6c5e8601a3568d5e5778b694a35b4bdd4827fdeb5e372b092af28645afec1da9e053b62f2ece5141d3364fc66e06a2fb8d8030ef70a87fdc3750f70d0fb24f27c0fdae3c5dc3ae09a07011b76bee1b355989cbae09cbbe416c9ff39a6810c8a3688b6e8930a1f3ef0ba6aa81da941c973476969ec3d8e27395f19b88c7c32f03d7a0cda73f149e801b0ce728f98a4fb5d7d54de8567fbda77181a291f0211da3cee9b198483e7602cb75f06c874612950e627ff8f720da8a42ba4f96cd4cc2409d16cd2c6d5b9a507c89540f445cda09d7fa5ed44bd32788b49332330a17585cc2f5a702c0212a7ad6153a6c7c5dbe217e37e55c463b55602a3cfe0ae62a1722cfb2ac086e8093d45e19dc866b2bfb9b3b3d92b514789d276fb862d82523f7a4803b4077d99971bd38762dbbbbbd11723bf4282c2b0d715fcba75b8c99ea78a56dea676ab13a8c389d27367d4dbb583ecb357fdd12af7813d4a3c14a36a29ec918afab990a08b28a8e376eebe4516e64097e0b34510a241b2e4440f27160a0c36c94ed5a6250b3f9d2a25a670ff65f46bd4557dfb75df88afbfd12b9b2df87d18e4b497136a0beaec6194e63d48255a7a4bc0dfcb1a1ac04b0c24a8a37ae8420542eace07c31bd78775f3414cd29bbf564b5418c63e400f8d7d93f94f4ccf9a1da4141d158c557fcc89aaa70c20aec04a34115fd1c9498c50d5d56e2f7d9de7698869548096f2d02df48f48f67bcea82621774a27ed4706177ef05ea727aa1b4b4a0574d3f38a03dd5dc0988fa6e57a18c6d164ec01488d20fe6311bc11922bbde319fbeca550174409d387f33dbf11da9eef0bc2f98e427bfd14a5269826587a90151a1695df6ac56e2123aa9d0f5180fd8b3ac7ae9c1c516b902b3507af62079d3a1f39c5a06df02a85126d10f5017e9de8d42909603623d39d79643a33bdcc5706e362819d7692005f6712016ccc31a1cd64e5663cb811a17e97093222448d616b786a13de05b7f382fc444001f09a1dd9ff517a7d1aed770f9e79cafa031b42c8064cb1fd43365f870e3b4e1fa3917a9e2c324e22b0029a70a58190c9b397f3e68eae7bb6e0b1401d8c6d2eef94a443ba930f9c57e6dcce8f143834433cc3db1ce9108906687f3007561e1fc77c9086f4d4a8554a9d054a293ddfc08a0ab5a40fa649825fa1584195e342117ab23c4576035adca358173d1233e612c11fde2818c6400bba6786412633e2b4fced7f7ca387a087a27215429526efcc356090e067c051a47a658c70ff549b00e1eb90f7d94f2984b19edd2ccb99879fbf7119bb2fb30fd491190f0c3938198f940e2b5e1d491ee4226fe9a0e9b3bf5f266cddb307408dde637c960f4df8a522711f6e1197d3f22c7b43bfb11a2b37394a2c8cf09d457a51091f8e3af98da2d598ada01d0d8597f3564b9368450b66b2a9dac2ad06874b6f9ee18d3cc782bde398b4c5c0b82699a3043dcc434e5e8034cb04f4f98d5564240a3cffd88d4d535ba8faf8e07ce0329fe51ba23eceefb407666019b467af0f4a1e9bc98229e5a1e38976ed8de5ae63db67e9435a812b8d4a8e39caa4585c321debe6559697e01aaf2d9c7056ce4f0ff40309ad03642f69a33801b5e223b83fea380a19cc00e83fd8ddc419a41b337b9f6d3a5d6903d98bb46d3e9fa67330bc29dc0e2573b896f6237bab0fe0e7a461dad1de648e78e6af1ac78eaf4004bee929ad939a075d77223169b7001aef4d2a2a03f5a7c658c1353c0810983bdf32fb7fb373569267e1a847724ef08f808d27f31b684e98d13cec8ffc049bc5e8aa6616e0b947f0fcc621d091bafe2c24758adc8cba861eb422026bde39f675078bc859aa706039cffe82e253d5592050b9622c71fcf0dcf021d2b246cb177dd997498aefcff70d62b97f5cdd6ceba0d3bda7cdb10ffe3f09c349a79de1428fcef2e223af5b39bebcdb4d26772d7b349d18f07642c54f1909203f1ee44a4e150d26f6185cbb1ae426b0802f7a11e89715521c4352876062433487532802a83824d28c3c24cfd504015edbeb7a01d6aad9e4aa5facdbc29b2fa5aac7540f5eebf5f8a25847825615dd105d087105908f7b007adf433a3a266f98589b0b2ee39eb13925adae56aedc24ad187db077f061dbcfd1af9188db948573a345004de8c909f9c053faa202ca4abdf08b33db5e3454a57731f8a4b70561215ad4bdd0540f4edd61e720d9ff7b98e2f24deeb98c8e6f545b6b90e262034421b00019dcfa75ac864e59f834daf643b0a09c5e9d8304b5fb9228ac7baca7df55c8fabf459c9c47001a76b5125df5ecfaa3234fdaabf67d811ab7870f3d0c440bb067fb48311b5208693478c1ceb8decbbc981b1c7f73cd703757b7229b15aa6baa49eaa9c21eab84d849c8b781b683313e08904ac2caecd05f034cf247dfbc0dd693fb51a3240709d0f05e205fda71e64292fb8e000fd0e7acbc9b77c2aace50b092998c3b0bd4cdacdc0e32d2ab3942fb12349046308c8f5d320abdac0bd7cc1ff62ede19fd1a0d1dea82bbf40893d36a57485b401a48218b2ac311c47ddf79f604d446d288dfeae9f2d4ae9e142df27a7661271b7695088c015c96c776baca68f45c6b5ff327cc278aad8ec9a49bcc3ed2cdb621d2ca4b830a414e0f2a9477134267aee83cefdf33286f664cb4bc499d8574ad1608609d26581543b3f07d26e3869cde1b36a6de59783722220248ed54f82af103305c6bf2a99c95c3c21650ee4c42453c8600330d4a5e7872501cafae0c148afe90443a15108abca88fb0e2e7e0f82c35b2cda7b2356389ab8da7bbac123cf662dfd89960632cff15a50cf9908c1220edf14a279acd896d351979243567623c37d79c9c6accae7c6ce765434f3f598c6ea1ff38b8a27d04afe9e6032b94ec805bc36c1849b49f15b2eb731ce58be9670f8d17bed7f9c94fcc20b20d52db915d8b53de940669c5c13ad4274d13661ddf647b7af86876a7c6b848d2f2bab1a805fc660721bdf289e98401f7021d4c1502b9728940bbb00805345d3ecdfe892b82f25ba051d252a0a1975a90e5da369f8cd70686737fb2dfec2da6e1dc698727286e5bf4b54213392be1f3147a8d0d2cf74985337c3a0f660f1cf47e70edb05c518ad139443285de15cef394a72968b980ec16add7f211b040b33816087e418f3db2be1df390dfdaeff219b8d2c941f1a5ecfa0d2d480abac9cdae4e818028bfcd373769db88b5525909adf922b3a012d88485c9f67c75455a02eebd70076aaacc935173264cf419108984bc9e411d73a6fe8b5ca028e8d78abf4acdd9935ca68ac27fb8759bf2636bc7a8f854809d999e3b2b3cadb513ee49ca1473a88cac71ed69040f3ae17e6dea23b35bf127bcc9f81c2b960721828f6739939fe9e86e2a9b8767767bf21a1498414f9b560365ec7267f65fcd2942600391b28689574d280a69acad9e1f73846ac7cd8b0a6532f49345056b24a9224405a1f60e4bdf2f4525ae3b59929d9d7ebfd3fe3a153bbaf146c4a557b4bdd0c0f8ede291771c2d58506dbf9219202b5b0e4dcb34ea4e40d3f585b441cf22a967e1143dcf81a321e782d9ea626f7b9d071ed6f01615f6de6263946f7b862f9bbe3a24083e4c8a3ade341191abf4308f0cc6ae3308101a486bc0008c1b272a257d97a79533d3f4d203ab5ef1cd1be1a105e2851674ea99e1df99cb5712efa8aee2a11dabde57f99c01f1dfa6cacce4b995ee5cfd9aad44758fa444afbb8e808be3af9dd04242e20234bfbd85b8987b4e32d9217c02f38102a4c5eedff38d4756918c09f1fafe9f8e6c0815cf1bb45b54c4dac5c733236693d9e5778068f33a1cd9c477bb766bd300a9f149db7a5bc1efbc6a396febecee62342fde8653cff1ad6698d28f1b25840251871eb7c66b0d94e4df4c7e4c46dc1ee7d58635ce1263222b9bc105e3d2225742a1e3af315bc25a4c8a4185329c19c75084900bcdf74ea0b2b0ae237657e0b47e720b366fb43d35e1892cc8cb6845caeed3e5082587fb114014ae6882518ef6bfa2dffc0d80c373546ae5729bfc98fa85f4713323e7775105534b437359950618809b13893c5b60bd4da2971f9bc13895e6ff6f9c2c60d2890b687df574ccfbe2a11a3f0ee6369c603e669811826ca89ef1d52b6c0d3a0dd5ea60749313b74321f1a5567b8b82337088c8acba047c7663c8b8287df30fb3c7a237bfb1118c78097fb417f89a484520ed0ca7f3f7d11a0b31f909f8152cdd68ac0495e1f385c4e48959a146743b14b88abde34e94c65407f24145babca282ca4be65d0717e7374c8cc1b0594de72ffa40601ebe4283b13cbc241291d06fa8677e81e97869b8a9d31c6befa1cff3727be83fa8441806f864be3c7f824b9d0fb7966eff96b17cdb6cd3483e07ab91b110b119ba660e6ae06a645a2233c1042a77db1442cd5307dd33470d4011ab0982a5df46dc74e738b3b48489c764803403c2c1c76e1d776723182f4cdd756502b5717de14910d5a68b3ab5bc54ed4a3459232623bc44d1acd48ced3e54459871464a04ce430f42f095e4272799111276689dc5dbe3812324c96adb3fbcc18b3d87dba74bb5d03aeea833bad8aecec2e2f0b44911982aaf441d127479fd0477afde88e339865c7b92b3c104ade94bbeb2032033c3865da51231ec0c9a9c5f7f38a004fd807ebe44a59613657f8fa9921c31cb02eac355544c27f01e993ef8aa716f08e4853d050c14403646b7b53b07029df942396ae1b769f38af2332141ed4608fc4e5ad5899eda2fe551a98734a4374d9280d64ba5c1e8428e2aa4a1b58712f1b44fc99c91ae20d73da76d4829c71a5d82561a9e3b3c3d7731c3460ee019e81d3e35fd610b01bfbbee6b0c59580b4a5452802015cead333a6a9d82d57886f5a08f014e6d0f5c9b3e14da601fa72157fc1ca07bd9038a691c1346e3ea4f318760f84bc939651c581a266e282612117604c3b105f2e30b49443162f649f8426aab0bc3a7f044e0b9543646b1fb35c74066742123a0ec0bdada8ee0c04418bdcc70f81379eec2c20ce659b27d8825bd5e6b734edc3ed5bf42836c263f7fc3af065e812c7835d4e1d925e6a99fbe9d017d315bfcf2677786aadf5256841d0722d0fe728785dc6a0a33b017a87a47a7e1f8efc67cb5a45eb22e03dca87360b251bef5bb73e41af785536e2fb2bdf901b88ce0c9a6e93092774e79a8a17dc1cd798ed205cda82ba3c4d2d90a0a67649aef298fec04bbc9633ce6186bc7f53a41544b2f153151bc3d6ad86a3d7c59a468af233abf4ae5c00d9fdc0e6e04a770bf30a67f1e63da4300092d26865c277466f2c6f2a527d2be2705b11bf651f0a17890140ac26e2f3bdd658655ebb5ea269344c9b09cf15584f5d8cf3ed770b37c01e5951449de00a4fc356930556328853101e2af3040e018729c51496701cbd89379e8c628f9003ca690f8ac32c1e6e1fc43a798c3c52969fb98d6543507dd961a8e1f0036e4a271817bb42722a3932f25be64924c8eb53cd4f1255672ecdfa9b59810264ec95899570b7c3c9a659be97e703adb4cd6f09eee08a0e6d7080c19ef03f2a6ac1821e38dee8b9029c7e56e56449b8db57276965bccc0eb6b34edfae0ddd1d50b1bf566bef1a91ce6d1760c8d35427d6b9ec28eb658703eafee9996d00544dc0584351738724696784aff15584208c195ba0157ef89f52ed097b6c54ceefc5254f09f1caea3effd366290514a43cc700ec7e650b86b6652ef024cef14e0bc9520f453b90f25b245101227d94da3175df8fe84709819dbe0580ea40384ea92dda59f3778375ba29f98f59935bb45918b1786370efdb6b487e27fbcbe9ad2239c0ecf631726ce3854adcb06fb8e3717da4eb45a62a814c93364fc2c11412383637257a76681298ba451b52ef70ace64257cf2bc24acbda2cd128a850f744917b554adc38dee37d88b97a7f0c8953d95ea3ecb54d9411de53ecaf5979b8b0ef234aaa16113fd1a3ac952cf1588b9e35931179f57fdf9b372728075001393d20264252c2e8feb57345a47d37637edcf15f3c7df80921d31dc073f52cc7f26a35d0f9cb1046833d007c6f1add0376c45f015ecd15c42953ec635c6f093e4a1fc7eab6a82dc82e46a691652cd3de7a9cbab09e24128bbe584e0c7f0374d1b01f9959e0d086ea4bae133cb55632bed03ba76061793ab8eebcd2b389ee9cc8d2e6f3decf218b5e2d0e6f0b7d81bfdd15893928bdc67a458843b16ff999b73c20246db774701911bce0ba756da935876cbf237c97ae97c6039375ed4e491f354aa017a7b889b69d75f7adbeb54efb4a2fc662094bf30753eff47266b6acc33e13d26aa675538959651cdceca152021cdaa6a80085ba1431699e428d3d1784d435973f67297178a066546e38c37a78fb9d981fdd8340051242b45869ee4a53557daacb1a042cf91dd438ce29b32e3752557d2521d0036c3ffdd4a379139406d9bae3817fb95e0088af15d0fadcc114206c2eb721df961d0ba691f6ea7cb3c664b0bde844f0dccf7f0cd0648c97074a117d25460bcec18a0046d9d30529a32ed2548b622c9832f41b60007f98fcfe44a72c211e005b5074a877d0fbc806c2b3ab9577579e640a1059809877f2730ef67a96c9109ca8c9e5f24135c3cac37a8f105c1c7325573205fb0ba40c33e5a0157fa124ba515d089fab816b50a14f198a82662d3a1242567a6e29ff8fca0c1160c866c0ed33861ea883e11aafacac4ecf9ace20189ab1278804faaa0d827545c45f1794ce9b50fe8125611c5fc06a4ca992943548fe4dc66d435349b780ad23075bcec81c1f8e5860f0403342cec60b0a25a980849c0572dff760738e002df358c40c6ef04cb7628f67e059e603a6eb96af64a123cd2c5d50bc724c115306706dc2d814b14a793a1be25581ce9d67e83c972aaf70d0d79b69c0e747a6ba501ba54d311426f4e8dca32b97acff90afaa726706ceccd1a834a59200808a44a1a7faa6056c783dcdacbd8b3813ee6a52e5697c497971e0138e2eb3065a256775e933b2560d1190cc134d319a2d7e00fd9b6648a88f9f09312d3f8b2b61c5c2c352fb2788cd23cfbaeb49010af80c146bbe7f3a773b6b011e603399daf2526834ca5880dcf726c70e741a2576c7908939776e45ed9d70845016b7b502f5a152b6b3e08f27ea18e4cfc132fb37a8650165908518ec1f8b6942e1ee056aa064806d196ff0961eb23a96955732ea24ff1ed5951ffef0d6b43e9e3de641dc9f56b905e0aa1768d887a8a17399ca61ab932b1e36f3fca98bb9d918d09d603ea09025124a66159521dfaa9807227b1f7c2e1dad3e9c6093db400025b0a773e9b34841c57fddfb339b50d81a26996d3e67c494352e9878c8904f6026d1b074ee3d15029958a22989a2b3eeacc4e29c818dd1cc44a43bcef817d2eb2411ffb19a7bbd48ce803c73e4229f5d9a89781ef71c5cc95f55462ff107c85412ed3a4417b81b9682af831b147aa4292e047c560278b7acf70fe2683674f6319d3392029999b2bed924ba906f4e53913a4b62fa9fd4b40aa31185148204355f9c9146b47a64211ac0f5877bd4da0649916d8329f5cde3609d698b00c4640642aa2396be293b10de09ff170c010fe641d84a165633899e556c1853162c79374f15d566748052dfb7707c8f5d01b5f1f6952a5f9c877d8c7f39cee73bff83933a8930302bcea3a0c20d38ea33e69a43079be66341c2daa508c1aee3c88d1a5acb71a842087b604d89502d7595a174ce08b529f338ee393b9abf9e921a584ca520f6baca9641d1d3848799b2a4a924e90604e7eec7f665b47231f3bd077e96403884bcdd251e32f00ab31b24f075ef29ef6cb68ef7d866f9e7952066e633a9f4f690664b8acfa361923e43b2a307c39a011c3b0586a8f0fe87227774c8711fe8609cfb415a90dbe0896c85e7b8fa341fb05707774344aad13b1e8f9f00fdd289525559f57379c109457733b7fae802f2f9a590b03edf67c8a0979a16014e5c3f272704bd031328a639c6f87530f2e050e77545325d17ea640779bc9d8d7bc676af9f4224b56b8f0bb13ee512af0a506f38eb523ea61be7ee0eb2ca556af417c2aa59d7a8db17afe4564f07c295afc88cae826fb007a9248d199ce31484ae91ccce530dd8e1abdd77c3d334d0b411140cfe753e0f14cb8315085c3015067f92d962b6ada232e2e885c718b76f82666389cbe2d52c02209727b52bb801e82951f1427a435779f65d76bef55d2c7cef41ba6802682a869a4ab1e6aef0091e682214a63872d33b9bb96a7f026e4990567ecab8bdc2580fc6c858735322a8f08d82542614813657fa75f1819ba6fe4e6bc74afb3e72ffc4e3594e3400f8b67b35e9b81c6c7f9383a20a98feb7022ff4476ae32476b90dec09daa4ff92c317dbb238171ad0452fb9b96915ed398ad2fa139f14259e86c3cefe3ec85df927f612de3979684fe17f8ca4acca0b24911f70cafa2e56a8d9fb05cad14f44c5dbe0ce25b607fa70efba630260fbb5962e29e33cde8a81ccbec04256649c84ed832f0ac89b6c0bb950bb664944cea5700d9e934a90c46176fb9e46a5a00748f935623dc63cd16a5c7be2f498304aa15f5a8a1d7b23839ca45b05dbe964e95efec7cf118ed603c6807af51b2bc6255e274ec5853259cb94a074c65e50b133a4e29a0c7c4e2eee033813ae377ed8f300392bdfa12b68e5b81b8f6bb82868d12101204e4b3882e86e2803e710e655c8905252770d7ad4be1857d72ab7428c13cd731a339a93cd07a434e5b362950fef0f5c8c324c854b3df4571834d5331c6e173c01316d36fef43ea8a1e57f1972ef7e1340a8f4094853cc608f07b1c5aee507d0398069e5cb29371cac1c2749a4b06b85d7f7d2d3c4ae7f25459f0664cf80b5a3a03012723e107690892318e882870f597c099e4d0044ce19c29987d16eba63654e6b796ba44f29fd5f30cd5da308abce6fb58b6f78dda6ddb7bc6c35fe60da2513d02ec137d8c1a204f342cbbae8bfec40ef2793c4dc95d691e09a97815ea8ec542c91669f7a3a22c91607abf0fb76ee696f946d31dcb478bc62e18e639dda47c01ffd8bd588b1c93562ae84cace49336a798f6d688f883bedf1b736b7957733d81cbfdab59414448f7d012cf8d502cf7e2cecb5e54e9d3c92ce14d38e7d33e0bfaa79351eb500d79a27b3fbf517893ab6459db4473db3c90f5314e47f55b6e4288b4c0fe48183fd7ae832671ba2403956d23e663d56d9197a7e451ef16bee2f0b6f5e4efbf40f2a2f2c4fa4b9b031dc88060da1973948e5f6a71e4caa1d71a7f829afede246dbf1430f1d71420fd95fa9502e813ae181d50fd2074fd7ab1c1083b041033ed441d168d0e58116281663fcc69e4630cf74e25ee1f417a58fa1f1b22696fb23d13ea995bdfba20576dd389ddb9d2711a5a768375e086bc9e12ffd83f686fa6129e2796926ea3f7131b7aac6e382169cf921a35204238f2dc8632e219cba1908ca8822aa40c3b46ca508e7e01f750008c180215a5684722a142856366d9be9d764bdc0e2e76a2642f31d9be31934ab22f8da1644d7ca53477023930399f0b95032a9569cb0817029154042c854b17675c08a726406651d12a4326419dccca8188c69d56a7d3dfbc5c21ddb15f7c8a1c509f7d1f7ae481f64fcc128f51a0a4b889288d4634b2c634aa466a84466bacc66894864480315df528afbf06b21cdb046f93b6b18eff2f3331ac1b301b8f0990c52759b6f58336a018ddec233903fef5191ef334bad24b7f3346f099609b3fa99ef79791c3c7006bd9704618dd240b52821fcf011eb7213452e9c3bc130183da591183e0e0be1301c1db5025316183c32eddee4a5bca97234960e38c3c68f180f27dbe181e7201563b340f8ac2163440458c80b4358890f5a545abfb736e3b431809b3c96714e780507753c667e6b6391a93c57622f16f41fc9e90092a6e6da47aeb14a5daaa05681abc54a0d480460c2c1f572cfa430cf3ba9bacdea6265ba6ea90d731efdbf29a47260484bef07a907678c209d48af5a921a7c6625a887d26ca968b4bdc6891dba9ca1800b43e0cd395b1308eabca8dc2abec764399d457f14b30db86466ae8dd1740ac31c028d0b752c03edab01c31b495f8be8a8f544fc4cb8074d8156ac8b50bba621a8f93d2c82e982ce662a873d496493671b78cebb65194b76dfb6e97b168b7b791ea31d86a15825e0679584893978c4375b9cc1bf3327f33d35d64274208b06dd2628268545483fadbf405b9d11c96ebc5a5e5156284ac0d8c2431703850f6e24d3bc06d3b4965b4090483839fc36907a881540f3722b6036a8be660266d3eadaf09bf8e3d8eae470f8f631bcc7eef0f323bc479fba615c0a96e19d9fd6f6b105be30544846e53f6a5faf7b54408bb6ed72bfd53ba372e5365ef5c9aff6e129c2f65a5e451bd5b591d5602ef214298b5b5c1b6e1eb2dd4ba0c84b6d5fb111822db4862e5d8b519aa7ee92f3321ac19349cdfca358f04fdab1ec1133998c858cb111f2531d89e29990a0dd470f460b38ae3570c644a95cb651085c57a8120af201647e1120282b5f60d020e739bd7256229b8e7c2c9c24c05106002a4a8f7cacb892cd8d973c9f5a9a01f93eab1a215ad4eb8396875a130c84576e46f3059d263cd5ec7b396a2a0a4aea4dc305a57a2904fb72fe386715d1b873b7befa81e58add901fc9e734cab2ce3cc05571835f3ad8bd2a93e4957b7debf5dc27b2a75f44aa163c2a95e0a53427c8e398dabae24e0cc15cb8525394512630c66ce370564d6ce999958474a42260cc6a206744336c4ce7e8b528676472cb38be725cc5b0f1e3aa86ed58fa8ad494cc195c2d21790375d88a3917523b92b7289219d37dbb745b66480f7831a8321dbbc43895b7fb223822050ecc59c404700bd9297ae8b49ead6a180e535ec5701a536aa08e107551d0cac63edcc2aeb623c0981fd5c824a434d0e49290815f6b0a6954c7136d2545ce8de856723b3cb95777766ba85b16077f59d28ef6d1e03a80f16112a8f5f3aa4ee21dc4f8ed30aba0ab8facec9c3bc7b145558dccb00567b55716433e993d63155f9ec0250540436b925b34279957989e359a492676a42e279d399fd40a00515c1f01b9a06f1285938858b64ca6a9d9071ce6b83c895565a008c31a0534b3c8b3ca928840db96e1f5ec8abfef6acf3c8417fc6c152912392e4d69b12393de40591a55bbe44828239143cf3d90f0a075c0c67f9ac6004cbfe2f0c5658755f53422fedaf764e6caa111035706b71c6915fbe664491cd45e2fdb48edf43c556b5ff3d3ed3c1ed040f45b1c6d30ac7821f47b4efd8f0e34e7876794eadd0de947e144899b1acb449ce68be35a6876db6b82501edcac02d753e849587fafe11120bbafb1790fdf9253beb914387b5ac75956ac803158816bfc1add53636495de56b6a121d34fb2cf3663427911eb802615d5f29d29c85c247e60be4b7443e367d928d12190964f0fdb88f5dc1d166190fa2d2c83fbec232d0fa3014e302b6110a6754c1b91abaa8b3a5941039ec0759ec16f663853ab72a0fbe4a240de37c83c4bab43c581ed959224265989196bcf5439eb3b738718c2dec29480a1c4ec37c8c594880e5f2e0d5232d79ae2d6135a6c1ef91ea7d576a42357d8ed598c8e7ce1be157764ae2c0f17875cd88ace91ca91fd7464fe22224bf8b9082a016227badcfd9a439c16514a37bac95dc01990bb1bbd68a777e68cc013102a4d1e84990dbc19a8352db97cd1bf203631aefbc0e8bb05a8cf663014c1bd0e51b18ab06fd57f607fc350c01dc4a57a34aa202e82b7c560bdf1faa96c013d4444abdc615de84727b1f723aa5100f32944d3f5f4f36b9c527a385a7f086abec9d9de45e37c42abdfe19df1c6de14f6a8e2df462e57545e89505af0d61df6b2b3d94750474cd165e2cdb1bab5eeb6d0bd40f6950096ebf881a0fdbd4237f4b87a6bd7c170f217bf47a957a4cf5ad3e2dc0e08ce127d00b2a008f9f222f79346c3cd850ffc632ab32cd55d7383de3ef3c78fead4ab3d502cf4d76d824f9793991ae5063e805b8174df246d8e3066086c092928d3f9b617040b2b1a0430e72cd3600ecff50a33169a59609dca801d19e51e7d31796575cd510b8358eaa2753a56e73986b09ed4656832ff625fbf2f64606d43c413be1f6db83fd26ac3223f35d6458ee3bae8b59a553898307aae5dd78147ee94a5dfd3df103d1c9905103b4ce99bb36b62817e34f5d57bc8f643d86aaff513317a131a983472774475b932a63c8afa18b44fab1f88b96d4b1bc848e00ad39450e2d7ab5ce2c9f25ad9465e1bb216a71920e20d1f76fb63452e24b276200c3b35035af1021a6d849487669d338a1f2565919532ebaf46deae7d602cda9fc84845d76c3d481797bf40d2e903315a94d408aa974c26c2858af670b0c35b1b6ab32b3232eb5b4fbe0b736946568bf7e18770a89f64e9eeaca5110d8bd524135a970dc7cb6fcebf00cb4a02d56d48d950224c1430bf7cb3aa2d40357c459012bd2e9f5657b33d22919c5b34d04ecbc315ce59e73928580c703d8f83cb21f27bb1a7d86c70ad4653975eea935bc211a6a5a729d066fde1d76af16936ac39bee2571a49421073b4c68e395f6c2f02a541429884e3d124a2f007bf00fa8887984e16d65181f142363c3dfe8e7c83f2f5f6deee3c2fd556b3b856fed14bf11b94ffc96d2b336b3a7605ff214616665a112ba3dd463741bb07b755c0ee03b0a3a004c6a1aaa94f2907d0a9a6c6a35580b8d2998d17384de424f714707d1c0430321e04dedc3184ccc932b83637021f85c59f9f0a207c90d782f0a1ec02ece949144fbcec2309e59de15106a6efbf5f6f0d691c5590ed1a77a8ee59606a13cc7333b4628024a03b9a4301f196c7a3987f6d5e6c8a0a68bf3b8663ba524f71e60ae22ad8f2c22c9b2716b8bb6db7aa72679dbb58fcc72cd2f565466cdc782f2c3583fe943e5ab82460815844cee5bb36fe7bc38b6a08d5a783e2a27b3805ef8c47c3f14b6558324032eb7ecc5e52a02cb7272c167c72ad33dc2068b6dedfe5f1e90a3b64b4cd3d74dcb69e58e7f6f62b35fa18d5131c8d7c97273a037281088d9c344477f20ba4bc83d1a730056b803ae7978ba41a8ad850f8307cd1a57f4f4c3a7f1e7a44cbea512024f6118248d7f1817ceab4a55fddac5e03ba4e0cc6e048efb5d1ee430e3bae7b5d5a3148ec27e6141aa5a842cb247b449491d49e309901b6f339b83246799828ba30614531f3f8055418f192a4e972d3df09527c417427336085ebfc566495ee24e5833d883332046fc277aec9d3d6ccf6c0fd82318e0fca390b50d27cc208dd9feafe0823c86a7d1fc752312c961e2ef00b16eb46b0fecf634a6600541f6fde39f2e550a7d98942f5c5ab7b7fcad864fe6514eccb49975baa8ab3a5c4a0695eccbe1e4b07ffdc9b4af9b40d99a1f3f0895f60973bc0e2147ef91c5fb11dad5b6813af1f7b239d089fb205789c07d0e6c69c82a3ab80ffd2ae1914d04819cbd27653c1591d058c5b180c2f9f4c689de6d2e0aeed2e5b61c95c592b76b4ff041f4cb3fa31d9b8da0023413fd2e5ef68899202690139bf89938441dad5c6ba4b464abcb30b6713760728e77d9a0211bb2d54ee32adf8084fc88763e25cc39568938a86f23ac8d1d0e3559cf2409210c765242b1177fbfd2bdc8c24d68a1512b3389b1df472661f1f8eb489222755df0c244714397b35f423ba6d81b0ef32f20cea0cc226ab9502c1a597ccfde79d73a376d67aaf22b27e69ccb4fe5c073a0b70e1a3bd720dd66065c8eceb5ebf7fc6203236aaebddb863eab834698420924892ec7b9f12610e90bb3964dd9297291a3f0dda3493cd546b818c5ffb8af1e1e7fa2c94190c85694dd87009957059447f68d6082224be80bd5ba3548f4f8796523ff81d3276018bded7737ca345d5ea80ab4214f633c623c17dab3b9a0e8c0dbc1d9421a8aee0cecac530397cd3965baf505c1d502c925d3fd5c3d80c48930fb2fa2cbc8ed35c92fc077b20a895ac5fa7d778033aea12a014e3c4c263a5028830f143b0ba063d4cd29e5621b3d90420c41af7fa2df47c206895ff71b99ff4317edfa40ba5158e10ce03a63c7e210815dad38c815bf06df0aad03531b2cc671e637a55d8755985c9e567acae60d4fe8b93693e98927d287f2b3aac8785b175eaf5d2cf97e319b112a50490b42105494cfe2fae65da6d8886126e2d9a689438f0d26045367f194b6c0b33752583e4cd05328895d9d549a426185f219fb9bb4a7a81434bd164e1a87fe25391abb00584735d401300be2df965b186a6900415fde11194a3f1016d736cc9859c930870c83d40ab73e6aed65d6245f0b295768b0d90f7f69a5994c7f801e187b3e2a49a198c62e6fd544bae9f4cbc458ffc4c36162a30f5cbffa84c60d32177ff44b9d342070beaae5b73f07d7d42803aa75727d5b3054324a3a0a1f567a54b4316691a4a8bbadc6f5755de8b37fdfd09ca5cdbdf0f76af8c0ee4d73695df61aa0970e7423d0e19b373c8ea7e3b500a77c4dacaed04d758b0f6e0cdadf748fcb6e0df43fdaad11b209d97b93bdf7de0173076e07df072dff72cc4422b7929f32670744d575fd3c1fa4e7037696ae470981afa6d75f4cc3a64ddca987465db530d118e9f75e1acc6ef3cc2f7b497a066f69fede09998923fd6d3fa4cbe1679ce943484388c8007daed56286427d493edb0ff6b9221dbb89a3e13ad2e967b84e6805d231d2f64372935e3e25c3e14baedb2e87c821d8b721f397f41be4bd13b26bdb90fa6e5e9a6eb94e62376594904bfa4f7d27f30c94a779cd36a462974f4149f25e013a7bfa9af7c41e79b9d269b86e2677420d0465b815e9b031b7da800875295b9983399e21356b597b3ea0107e475abcf40b9b0a4254b62078fb31513f73b6ecb7fde01fc8b2dcbdbccf32ec40b45dc80e44fbfe6d4358b0cf309bdfd381e54e6e3f6cdc52e8e9f77474735ee69a6d0d75a20a7efb79274020110914a2899b15105e4e7a92fea567d3d4fb7ae9bc94524ac9036e5b1093a45fb4ed079d3f607e12072773ca917e39138e13caa604003c6e406eee4e307797b95335cddd0eecde7b8122c6ade2cb712ff6c39b23afb0c71c2f03a2700f3b6ac273e42ece2f0d0190bb1d5b4ac89d6a0b9bdcbd0a54ee4e47271e8a2353caa333c283bea3f0323f03c5cef17ad26194884bf80680976a7e1bbff7e58ed24aa9cd49f526aedb82c05379586dfcb9db6142ee5400c82f21a372ccf424188fb2c940b1e3a594e1b22d88cc31286dfcc9d7c897362c511666199213eca29d837b8d514a69eea650103d947f930c7a28bb29a63bd281e2ca74244de5a555be4e30dd91a0e9373aa07a92fdd2a463d7c9e1705cf0f750debca2371dbe93dfb2658b2c55603932c241027864cef54e879e740adb7449fa6c8ca3f4394c24d3ef499c7c8f9cf90daedec4bdb6c1d5709daa3b18258ac9e2ee84dfede88e47cb680eb72056e64fd2e0dced50fda74bbb3a60d040525e65c72e243b467354149973edd8a152fda713b61809bf44c2879fe15e546519eeda8290bec2dbe736446bd26114f84b478bbefe2eeeaad2d71fcc5d89847dcbb30cb863960151a8f3cbc5685b12745646a7d3f164233c1acb7edf19e1d1f037773a4dbfca5e7f0f7faf7540313bc6651936cb8036f06824e9f73bd2424a9630add3ef288b516bc1a407d0ef288b2dadb57dfd92b65c446904f43bdae24b6f51a555fd8eb658d25b60e9db5eeea59cccafa695ea67ee32d236e476ddb620f8f3b3c2d75985303bbc37e3f0efadb99b19d7e1ce60fdcce067fdcc802292ae5c273b6bd2a764b7a649caabb70db17045fa36f3dadb6772179b74e8a5a1296fb366afb0d69957a46fafaf2b6cf0a489da3e4f57a887b93b9c16d69cceecda16c41e5e3b6157938166b5734253b605a95f59ac56f8b9e4ea8df6d691a0213c7c0773271484a4665d0c5d2198eee881e20a1f4943ae935ddb66199cb205a2503f21194764777048a5e9e8b4ef48cf9e359b8162db67b9d33250ec4819287685c7cf3e73f859b9d9240e36fc86b7c01df5750b829f9d72f0349cf619aef4c8d9b8e46ebc72f43d1263eec1295125c3a1362803e126c305a240816ef60e087b7d06a1cce16532ca1e9f1e72d970d651040c04349b74837b32c706f7640e2e71b18349347ddd82c0af48b983741ba23584b97b41a8ebb76b8753201788c26b2fcd4dee356d4b82c67e67f6ec725ba15e6e625146525702acb16cdbfedcae1972813b288e3445dc1520ab21917c0b5d342b3c7147f6b04f520e6791050b307ace799485979e534bcf791ded2608f8750ebce452afd4ef088b1b60b1a575aeb8d7cd1db4009e2c1f0b3b65bbf87b849b0570a7c313af93a5e37928a0ffde1173ce39e77da4908f8c1c0a9ec6d33f1fc9a1604ee1c510e9239d3955b09c735e7fe19a33c648041652bac3583cd1b28896524afa7ceaa68290904fe5847c50f1d763082a8ac0f3a1bf5031a7f062a07f3e375e2a08f5658efcc50de5c817e0e35355b0cff3d101e6f914ade65f98390426343cbc44a28b54175d7491eae206cb4d164758c484c192c611162210e1d94a6b15a3865a6badb586d1b5529a495acca2dfc034d0a2b00d369db0604a29c582a5293d61b94177f84d30391a334414637e2883c90290b0c2e8081d483182ca951ed81f685c5cb1925dc1ae2081af1841baf28346734496020a5849024b862124a84863678720f8a0830f416c91c319a6a32b35d82df049d6dcc5e95241031415582e152ac866a4b2dcb88a073aa829b2c183206678a0c376a3dfd11532b0f0505a72e3831b2d37561c59c1e2688a2d375520c11429184756d2e871a3c58a00f43b9aa2899ee977344594cb86fb52dacd15dcf1d81ecf938ad781dd0001dbffdab8ceb4daae7d8a21daed8f768b6db7dc8ff62d779a5dd567bf51b39c76b8d56bdcea9a5bfdc6d56b5cf6b76d9cbc66baad25fda3251d8f9474bc4daa23dc7ed0ebbaeaaf7a4b7f5db95bc96fd72fee6745bfa2afdcea3afd4557f2db0f7a8617373f48a5b6cc999ad875bdebb2f5d65b6f3d12d4f7ef88ec9b579c35c988458b591965bcb3ceeeb3e7332963bc33c3b80bb539ff82d011f9296306a90e104228f333e950c19dd6971d4d97916caa82676a42db53ca5fa88d68d20a84d22322410b1219f361f3c6e8c84889144cfa6d52504ae99191936ab3dce4c04e7963a43292d239fd8e8c7460e484d47203c58d0e249435749d69cec9cd361da90dc3cc8d797922dd524988d0133b8ce94ee80916ab5f90535859ee8c583d0f94616161538761f51139664c77af0aab67b6017798e00ef9d41018a26167cd3b41fe6da6141118be33652619ad7278c634b71f5448967a826fb43c35d18c935d63b261aac98e595776d3a41c0a663468daa32ceaa2b0eca82ba3144e3a6bc6bd596b9e2dd6133d807e2d969286db10a12794b0fa05212a53584024132c3985d5331f9161589d6512dc31048655666694d9b1f964b4197b9c22460496d630add8628c319c618c2fdeb0864945485d06bab3d7a21a4e1a4769da39b36c66f3fec20c3baddb0f2438fb8b2a1929a542b41f543b52634b6b9fbf27edc59d49e7e4b29feb337739b077f78fb34ae0ecf77175b310ed7372b1d267d3ce1ad4b3ede450d71e85a12e7b14b4f348504fed88eca9f5d5d2f7f7f76d3f59ee60b5f01dada1a46fee91dde462cfcfc92db9314a19a59c7d04f563614c122184104208218442649ed94615a49448d160da8889a2bdedf544f9f9454b1b638fcbca9c04cc5b39808783a01094b08b7bfda5bacb50184bfac62ca563a7cd1746cfe793a54da7a60946971e360be0ee94bb58e9789b48927952b9265c78ce14869218466e99465712344a6562c1c80103936db95c98f8c28af6051470b39142e2f285920458398092050286537c3959bc850b161d6f63df4ca6450670cd9479412f10422f1172895be014c825462fd00b84d7150f533ae02e9878f03d08e3df2707af0bc6f925aae091daf1f3fdb2518df94b6fd4ae4c669716556ddfa9ac9d94527a9d48299c63e06ec6f979edecf9eb3f84c46b0f12af65a1b65cc7a3edefede8af0c283616d4f372e25a8bc51863b4d78cb7f55072ddabf2d484bf24b4f913c2e035743b80e1275e72c425cad1163178cc59c6fc32bfac485a66e90c19b81085ab6f866031b0254b5faf2f5d3ff223bb3da28123704ccdd794545ade02795eb4cc17f78250cf69d4d75142e4af2b4a6797db6bb855f69acf705df6992df5d27c72428dc3cab80db9845ade08a2e54ee8d772755e0ebbe5665ebf11b18936369c0ca8d3007db02d883d59fb138e6b1b72dd62db90ecf2b7fecefcbd13b621d73b696febef7d5a8fcc7114b6697ff4a8f744bb05b19ff3276e55f3d71ae7c2e936fe3620427d391c5c47fafc891b72dde62e1b823ff3f61e79833b02fb273bcd6d70415e67477176b59de626aea3c91b4f54a54adc8a94c52da3803c28e6d4ec9ddaaf75e16af3d7fe6d2a3c1df6056b2fa6c10d88907a5d7219b7aacf136ef1d2f03247558fec821ac87bf7c46b3b3282a1139880d5efa9de7b3aae4bae13927005f89957ef321f09ea4e1e47d4a890b33f278fb8434bf81be9fe3da592b99451279b2dc3a9ee2d7195f67635e6aee7c8be6dd8c6cdceb00c14fb7ab60981d7e3ec4c96b8d81b37a3aac4c12f562b71af3712372d11f0ec309eb966381b73b04d7b8c3651fbd4b28e22e0f88bcb306ef6cca6cdb2d231bc88e285132f76689317ac36d5006bcfb803e7550daf3ac9abb59e57c2c96130c8ee46d040b28d9caeed07966d953d2303b4bf3f2d9f6ec4600fc49da95d9e05d943c2be3123556fcac01c8017883b93f4859631e5645363adb59e81bb53d7930d0b95031e18416549f981937e473e90d206e877a405098d4d96ce3953326049f3dc60d66ec0e00eefbcd74528005180ddd739e081b8137f1dce8063bf232d61de9720ee8bd7fea56076ed837de4cabb654057977ea394b2b49da480a89a13be8b24df13a3950d886d997976c0ddd41195a458f8bde3f9bc687659e23adca5ad744bb054fabd11833b1805321177306c638e3c95388d7b3df3102b28f600819497b9d3b8d93746c0f24fde5c448c9c28561e2601a7603c71a7f63820ee5cc74e24ee90a0171404f0693e0199cf3c02cf676806fcd26790f94c16ea4b2a719d3ca649a0d95a865ce00e6c4a6358ae32dc84a4b821715faabbb94bf5bdb5893ba45fb717cdbb93bd96bbdf94813b1d7d1dbb0e9db82333f3cb08cf7505689c0cf7a20abfb5d370254e83db8fcd72ddbdbcd572774f0f5f7756be2aa418cda00f8cce084fc3574cfebd27d7e8bb85a73b21252db1dc024f7729b4cc2bedab7a3b3b2d773c5262194e87877bdc8d187c9f5d87c73b76fb9edc5eeeb4d7f748cd72406cd6de04021a33669150a271497983c6945aa45256077da994aa2967c29d4e4a35df164a6ec8c0f6f1a9096dc2601464a1e050b4798c2a1d5115a7cd5e1afeb5ce78a50682be4eb90e53a0d997bc210313a552d1723aac8ac299ba390291940ac87678ed3cbd71a6a87a58743a3a3a3a3a3a4ea7d77c51e0ba2e9e07b1a913609b140e97178af186996e76d24bdc9cf813e3d2ec4dbb190674c512943cd8d96f4212b6f9f3714a618cbd6e3fb49fda79fa77c275cc996432e6ba37b61db6f1ce543383e3a69fbee1e0e6ebf6e36481a4903766cc98316d7170af4fdcec1b9c56836df04ba4e3edc736fb6da5f7c412e99494376eb6c6cdbedcc3b8eb9af1f3042f335a48f50acbb2f7c4fb60bdf6a5670a0d1fd0f04790f4ddd25a3d02fb5ee36c546559ee8ca43abe1652bdba5effec4d12f0c4920824e02ed50f5a2824863163c618c99c1678faca5a5445d64d1ab056aee7e6f86121262081d4af05440e4000c1c57db1f58398345a3f9c514417229e84f104882ea498e2041443584348081e3459a2076138d143114cd4347e10c30750fcd045df7ead1fb0fc50a56dbf96501ac9d60f51ac11fa5934bad3ecd3f18058db528baaf78e4f1501bf77da1b8a70c2abb2582c56159f8745e6c8c36391e7c172a75373a7dab49b4959b5e5cb4f27b247944a78747454aa2932e7271c7387b314f28932cbf3f15a42563f56ccd232a808662c32074bcb43a3e7635efeb2200b0641964f8fcc891c506d4ae3210ba836cdab1f311f8141a88605e0e7f37caedc03b27ce411ba767c5784bc2374fc8e0a4ba078aab7a3c212299eea75f7a668796894a49f184347b032660569f060e4239d40620c2c595af0022a9cf051c0124f94110330577c39c247c808286a4031220c982110c147feb2c7aba2861eae20c10c2066a8c2475e257b080571022e5290832d8e9085c8041c18810654b8a0010963f8c8f3c81eaf8b2f4810918220c2e4e0083e365a19504abb2aa620c20ea0b0a24b18151043c51056cce00a22b8f80198254d64e942c4933088b0678ce982fbb596bc60491158aaa0820a2ab47e2d16f070c512252c6862c5122712b6ae5c31d3afc50256cf7e2d1fc4181d4511451453f8e06405525a4251d4f8c206452cc16a61c91923441727767822842c7c9852b24590620a1faab400fab57cc8a269bf960f57269815305901ab7fac8cc0d74ba9a56c6c4ac30741d635b7002f9ffd642d64fd1e07cfd343929511799a4d5a4b05623a9e476c61722962f57b54524fa49a48395127fc3be662c85efae562282a92e52773ea4b8f21c2ecf345b2cff8ec582ea25de62078eddb49d70126668c654efd4befee93b97119fc1b7f5051111b10febe08fcbd87c77291d34b39a8f4532622732acc413a3227cbe4a09e1c54eb6de4fa791217545404a220309fbdc87c96838ab007e1cf20a844e654887310089e3d8b3908b2b292ba3d6616644e7d10e94fe6d8cfe8d0fcf9d4fcf954d39f0facef91f3f974b6860b2a2262ca41d02786fbec335c0c45456e86d963d00106d35f38c32932a7fe04568e21a888fefaf3e9e094d2f3d9b8e79371cf47fba102a3c6d1afa5822d7d5f7c9104e5f2791b8a08fd04a0cff5ac968464ac3448e9a0a5848c99622247bf160f4734d6afc543962daebd98cc41454482a0cf7c3c3c0a02344f60434180e6eb49a00f7d7c912b07c9007dae6779888606f8d027813e179c7192a0cfe488c81c7bc8b12073ec25671f2ddc880cf5c81cfb54157c1d9963ffa0a222f2f0414545e6e5838a8a649f7f3227e6a0a222f13707e1c31c5454043ee6a0cb1c347350966d3cbc4e0fd194cdabf7457a81a572d052a2a565fab57618a3df86834a6bf5810ef16591a4b583151b523548e5e0844d5bbfd60e54bad4afb5c394eef089e0c9925a22955a822795442a89231db6b4aa5f0b0558f493b98fca685165baef2fd5a9220f7250d2f29aecb418c85b325ade9251658b06277d69d85fa328ea475ed8837c4ca26b4e73f93835cac186a24dbf71f9488392d6e9d79ac107f7926e3f57d77a3b25fdc99e6528382e73d55f9b10ac6dee88f4c82a33d3f632dcdc80c09691f921837f98a04cdb1f3337de134f37fdc68d648d5d8b43688ee54e3b4d8682e31917e43592cca708d372fdc13a33eafac9446ba74b5a3b7e6b86dc957ebd0eb57cc4186da1a08896375d3e6e41e0eca0d0d5b48c9bbf2f3e28499d049ae624a8953612cd06449e86864648cd69aed1baca2e0f3b7cd2e31604ff32bd2776d8af1bb993e9ec335c27d32bf9ec276e75fd034de256d75fcb74321fe8d5bc4c04be441030e8c1173688c2890fb6fdd8aea7772b6d3fb6d77ce3baf91aae9b9d0ccd1d86d1b83de0b7c3def6933d0399c7f21747738cc379755d043d57f234b9c3fada7e68dadb7eeab7df1aeef4c9d9f8c6ad6c6032a71cdd80cce35fa5679ce550424abff1d26ffcda6dfe387daee857a56f428dbd13b0df53ae834364777d6aa71975ca40849a74d44fcd4baf79e9a5f744fa1a4ebbc169dfb88e5ec3397e83ab89f3387e7134afb45fa7b9cc36a4bebb6e7a8fbc53bb0181e793e3424d7a4f9401c769f83df4e99138381b35dc4afb6b1a6ea5fdca641e0e25447be9da4b393524afb42dab204405890a42db0384a86c41aea08ea1b14f0e493f4ca8b5ec1e886a07a27da4f67b2794b4188e98d01895be48da663904a7063a3526d4165fd7e00c18ebd7ba018c788a2620b8d414dccdf81ff2bd17b503e0f75a4351fa46f82229057f701f107eada125fd5a3230e91efd5a2700a36fe99d47a7d3c2414ac7313a5e274b49c1ddb3d21359883b455ebfe38d3c1fb24f60a5bb53f7803eaf75dfe32c806d5489d1f16fdd10a663d43a9e74a4a460a8dd60c5a65feb8629370871c30ea97e2d1bc6d0d1af6503151efd5a36e0d04a920603fab592d4200951921cd6207dd1c0e801c98806344f5a35f880438d1c5fa0fab568306ad13025470a897722d11aa06dcd90e5c52f2d1fe75f0a5e979cef9af3cd39e77bf25d33ca38b5282ddc01ffa0945162f345d435e39c73467a19331b77e6b529e57c72ce37e79cef3dd99710092477041273be44104a390418df7befbdf7de7b2f5a711f4401f6d326941c4a768f9c178452c2b806cb14210a1d3cd004b25d0f343b83631a36f62b2517e925edb168ffb28865946d4d1e722879cd2865a587f542d12b5ed0d2315d738b65655b217ec6fa831a53fafa9c594669adb4d65ae97cd420adb56ab0ef4f864f4bdc21edd4ae8c6e5df6d5ec0ec36880b1c7afeee4ec4e0c300b9a262da22af067e806252a08a34397a31fa0a1650a2abab002869110180ea2402e515068d222f282a84918445788a0bc1d24a9820837314113b8258726446188aa504274d3e449518026b40916c50b2d445a408162871e40ec308418fcc084519723b8cc6055a0b0c00b911044af094c82118e9af080e891910222053419c307444d2e1a6054aeeb2a4206bbc165142ca20334796aa0002231a686b1c60d6840a387176ca18335cab8610656122398c1a44b86d9c005af0a1c82085c1e9620a020ea01510e9abc2db3c90d8894204a4013f8840bb0681a650ba2074513b8a4090f3d70b8d2648a2b4a90c20c22549328bc20c2015c828719cf2816e106ee053d10e5265fa4413466033b5041e58c2a61725082068820d0708409886610840bbe604f4021037e794880462f0be4420c9e2704db04f2e07d51a1e06551e9107782bcaea71e169e8ffb47ffe463a147e6fc24738ac41e452e2457845fc0d7bd2c556e0682e723e89d008fe5c0c1f3e60588c41dcd066529a594d67ad2a9ada45a4fd28939f1333435b207007e2afd5100702f5a1bdc8baa9a6ce2bad9f6a7dcd974aaed717e51f5ba74ea48f69add38cd0675332c070e99d28916cc8d48b5a8f05dd7755db427d2fc7a0ba60b8e572920f2348f86720498e26001aad14b5491116d9c51829e0fccc686e3e182b693ae3d30ee05628f0be038bd53750f2da272fcfd92b80be33a9ec6306c455f3ac6a5d0a512fe8b3d4ef319d39fec61731b7fb24709bf5102f762ce8d1c1bb9b37d9968381d99dcd9f4857397eacb5e5bbd4e57cadb968944153cea1a0e0ee258813b1d23cf4bd7635886f01e8854c846a459dc979a5a70179dfc535af6804e64ce29be074bc31be12a7149e9f8b11477481ccd8e9305ce60b8ba63a157d8659ebd63a165b0dcfd45aacdfc456a954c9c2a70179d442745c42871474adc99c959eeec955c54426dc45ebaedb04c490ce64a1982892a781207932c913936a098e7633ee6c0f17858e5460b3cdd3d2ff04bdcc954af4a04739ea6e9a012ed29348665233c8d3dcb9095e511f48020080ebd13e073e0e074640efc894b41e6c0dfe058a831d1c0507b357f6119d7e15c81b3f7c84e8895619d10ab6b65758771b4c01dccb05bfae9c2ec0e2aa9795288c40ac9442c09f73df8a084d0051786a1f9c11a5f8be90726aadec3b902cb0b5518bfb8f76dc1424a29651622605a4a29a584613c1055efd10c2ccf4bdb8c4596f9bcdcebb2b9ea2802aec7e10277cf8b0772ccbe6cb62eccac6111e3baf32f82a02750772df0f4cacadfcaa323f690393da5da29a557c51d18ae5e51aba3eded35eec4a5a2cadacfec1ad7dd0c74f5fd61b37c6b73bd5e65d6e40fe06d64519c2bf07c8f841c0c35772f4c5ff0385b68bfd92fe7c264f59561d9c80b236404503c49018b3e7bad9a3054563ca3d403237187e250456b082d5b1e270beede9766350e16b8762e74fc9700e04025a91bfcfe68a7614d069931cbebbab2a5383530a275bc8c42b819bf79397c8a10c67c0c13704dc06fd2777a1c1f3000f0f58012345554e1ac804725552a1d3a334a0e3638d27081c046c9dc1cf84d1ca71b78a808d2701f1b1110779a882d5cab8a384a64e0be2a9fc815604f5aab852fc627384ce03011a40652c621b261be80084520f331ae40372119c83f9cad19cb14dcd78ac2a461e32401a5b4cd0b1046082184ef0018fe45e9a1a15084d089ab5e92d24b5e8d539101d8afabaeebba0d966de0a1229bd94c7ea808465b334aea4418dc1a3c5434f37d9101b3073461d91391d867ed717cc034b87ea8e89ac161019629e102818d51a9aef0aa57c6790277a6aea9ae4f4506dc9bea4ff536b1c77573090f1565df2c9687b7eb97cb289d272e090f1545f9d3cd9d117ad2f0fc755db25a8bf1db703c8a669b4fc739c257048296ba048831664532860960adc5f8e58a878aae4cc37db4880079f987f3c4b5e96c5e779b97d380963638b77167d3d22632605efe297953ecf17c66a6188d0b04f685e56b2e7c0efd5a50be7457ea6704987edb0fed2313f7c4977a0db8120f15c979211c16e088878a20cd8578a8e891a2e4108515b916142d577b36362a1c15609ba7543a74cea050acf46b41d9d204e8d782c2a4294e0f784ace05d8f44c4c9aa1c0b7a2e4d0937bad28ac7e9b8463dc079ff430f9c048ba66846b482284fa75b6bb29a4ce3a7122c4a9011a162749ad3409da84569bb8eaa9cb1ed8057788d932c20853bf96115b8e28c20b1169e0d8409fe02207366c41c308342e14e0c0c40b25b6d0a0031ffa17a669116270301d8cb030c2880b0f0e0e3838e024c1b121cc9197302d309a202aa187240851250828603486829652e2e4805fe324c19da661d309ea1081068683116cbfb8635f6a086dab5c62e88083821cba5335c47068f8076f4f42b0a10b2a57bcac110576c30e2dbee0420d29ba3811e65539a9a1861a6aa8c143b7eb94a341ac1765b47ead274e1ab2fae568839f14d1f1a614f62e4d56869e79caa3fbe210609e0cc521c0c8328451bfdf7ead216cd01a22899e2d2661fab59878693179a23544112933f06b11f5806382991213afebd2a2058b961050b484b8414b0819b48886fab59a2c69094146ca4b3cc63490a2b00d369dc0c0dd3c998428ea0ebf4b55a3f66b09d1825e2244126b8320230831eda3efefd4aed0f6c9dd23b1edcdf41bd721e9ad7b01497cd64ed072b75dbe47de23157e5bc10c036cfb135fdbfb6b880fd9d91f96490ed75e66d9c5728b091326527a5efbdd9e71f71bf7e3a36f6ec147672f3520f6132564dac39bbbb8fd76b7b3972b233e3acb2df8e8ec5976213b9095d2bead27c2db0e5e496805c14a0901c704ad274a52b10a8e0c38ac540ae70473a6aae8f07090eaa2c30ab400c2931b48b104143c3ca1a2084ad460075b2831864a9ab0a8948d54b5494b9daa19001000005314002028100a8744229150301e99ad69f40114000a9ab03c644895c7921c86511003510c0186100200000010608021c82893f4a906b1be1c44d6d30877911f625aaec23c35d84293a13c53c28e83667473732d46d35e0dbae1f02209aaa3d2e538d68b06d08a2142d280a8105191863825d224a211d762b6475ba8252143698a1594cd514f47bdef405f5d1ae090910868b817e8d50c4154210814489a22c8ca3a4cef0eb3dfb4885a0cc150671a50e65711d03ade8f8646dc846c1f6df4c8501c43775cd5c486b3112634685a90ea5303d7c91d8661293e70b83b85e0c7873eb28a69d441e29516d1a52c50342224296d44945bc88c00312df7446f4d54117ac7f41ddc69025d4840d316937ce58eb2f4d29c1519c1a38d523ca446e2c40b03471919895b705198329d10c18d5c10891a8e1690c3fa4c5fa84b0a1829960cb2cc4f0f68a815371dcba34374c469bc2a7d0f6ffcb926f2a938bd2b6274578b492bffe872ec071a1904066b23b72a5eba709ab61cb17147ba6b240bc5bc983ab446145149c7efc501976f7c39feff477fca362739005f212da033c9f119649226cd618f0eef1deb8f835e1de2de41428fb6b8c5340968ba14e4d70a21e82238b3d0b4c4244389a3ec3edab214927c348952880ca51131129194697220956847c7ea0dbd9fb698afc4873cd4c96d7a97b243d3128764458d48720a649d12d37047b4bf665aa00ab4f040d016979571dcbb837b87d0d78e0dae62d52344da2e659f8ef538e8dd21ee3a124247635c6424024d9782fc3b8aa0a7c95d222a87370ef575dc030eee1cf474dcdbd13d47fa3b6a6f4759ef34844a461cc46588d0c6bb24a81d8f48a3e95690af836a4d4f42cb96682958d95d39b4a6a15ef29b233d72d82387b773ac0f077d3596b23f477ae368bd1c44bad0404b0e748dc4c593d02d572a68ffe90c69212178de731ac19f062167fadfd419768c0e8aa36d04901f5375bb3e95b7c917dce96354994c66ee679e848535f00b48b10f3771adaf4913a1bc261f1f5802d34aa6edbf13e63f2f47a9b84ddd0a10474ec829c22e1b09d6c9b647dec05225c988b7cb6faff54187ab9e207e3ee1674d937d2419c6a44caf306d61a5516dbccf1acf5f250db54000c9fac474d7a27c1a0c41e9200796297940db59601af1e329018bc6704393ffe7bfe416df3ceea54630ea2158a972b5fa6926ebdc4c19db42a632bb5c484528566232bea0680ab247a9bbc44b059a0390bc61617f6f93bb9fc370447a63a10219a1d70c187aca62725227ee682ac56436c548a5d2f28a34b4720ce9265020603444152b7ee96a717f551fd78bd2d2f7052926b3c8a5c39412857317195af17221921689bb0e465e4e90a061b67d19683f6b1d84337fe72506824284f9d6c21c3930d1d790d15195647fd98ae2b39f2b3caca96f252b99ea807bea136430325a8c76c83a5625c78b4ee8aadd4a840270f25bd08577f99672755f4136eac93d92fdf505605fe4fae181a23544ed75a12af0aaabdb7ca253939054a5cab509c81eb50df2755cde68b71f2725b54d491c0021874a906fd1c3265aff9eec05846e246f826d84f0a034b118ef87bf108fb026d1407b8e9a69d609984503c3d088587a072a33e524890a1040d83220d291de595dc8d07cf5b7e998a73487b32698e9d55446056c306bd148096732e9984c578507fd73d0086cce09844acc7466166b3418aae600e349258876dc1d436875ad43a415c77af49765cb8906c1587a39c4a0acfc564a90d2238da52dd49aa5a7383703739f22c19ef8a5fbdebd6841f544c0cfece0f9f502239206c7a0ce11aea90df7c7eed5771d5ed63827b984647c2b778a58c3d6f064c83c13c9d0930846908cac2e6500c9e2ddb7a551d72d2e599ecb2b1262700844a97d7c12dcd9cb816206ab3f47d57bed8ab8f176278149af43b4c684ba40d98ef848cb9c339d3a3e5312e371c12351888a3639c77d82ff6a646033b42d9da6d11fbe62ef977ee75c36081872e9ce4d7302933bd3a43641d2f8de3587bf8d9d6b21a3e737f73d3d032b1d345ad7b54c5d1cdce87b8bcde86b0de3b762dbef6830f1aa2d296ae146e34fa133182a70ebc586339e8926ad4c87b8a9bdf09ad8ed6d48d014875f2ab39268d4826f2fbee4fb57948b60c0c574ee06cd154148a3d6a5681005d5226e8ee98537312eccf8ff60970b1064015a7e9873e9f3c5652ab2925b2379bfbcc6008eaafb2efb3e4bdb8a12bcf1cda1b2c59f0d2a3e71cf4b8fd753bfedb15817382b965bd96809ee79f9a4ab6cc2ad7fc328b403f1bd8638132212f13b2c6d6b697c09ff118535e24359254411940b3ca417360a9b5cfad6f0674eff877d5546ead6686a6d099b2f23dab4b8794d8b5b779b5165107d3bc8d01fa32e57a26bacb88c50ab3a37143212b92f55b9687b960dfc5b0bebf0313c8114657899e09a840e151a5ca6c082432b784b0193ee6691058317f85e76c309a496229c74d428ecd379eeda8f5a907118b36018519b0936fd6668667b8b345140ca4a5cafdf69cd176c3f21a26af218b5df989541970c2b084edc811343a3dbb5040c2676e22e6a1db356c8bb5eea006612e089aa01a61bacd69a147722cf4d594a28402e76997aa858f8afbb61c398db21e3e1e19dd8fdae2d472495025984753b79c8230cd1cf7dcb873c050c3fecff61b2e6d73be15990e08022a32d8982a2a659f33ac88b8548e9eae7fe7617454e6bdb56e4439d2ce628b420f0c7a4e3e0650d9184a4355130a2d6b13e18a23531f496a68315ac8f749813f5fb2974716a88f607d199894745d56f9f895455955d8b2f8138853c3d86395e7af1c2b345045dcf72810c408b31c224599a47c4b1ded0ed072e332147e7823a89949b911453491e8bddbf55396da8ebe3898213c5d85e8975a60f3f550082c570d81554257e7979eded3c27302cd271bb6e8be07bb2fc4520bc045268c3db75c51b29c14b182653da398052677d6738a371b799f3e6764fa839db5790c3997a304cb3712ab64cd151e495c38ab97b729b66741b20781b5a54aa6732ad0298540349e525ed21cda0a4d8ce41f6ce05b91624cd59aa3c5b3c174bf028e573537c03efa171585df4f43404c1f78511c65cf8347e223adf211c19510e254161020ea5ec44271ed58bd9ce40ce9dee0bfec3a577990a6564aef380cde20aef0a45e68a2e665ad3e4b2472aed05a00c779cdec79ee49fbcb3f3633408e0121359fa9f953e29ad9f699e9afeed8d5b8b5cebeba614fc920942a9f3e7e6ac31ed258489aecf99a92370af84b9a385e24e7191551f26d1e026a7c22a70cf0ea9e176205c2e43ab8a5b82ed041c929acdc784303400a720790fdadf3ed758d452f8ccd391b2281830793042512c0b1c1cd387cb89bf1c4b9598c676e6cff4ed714729b45cce65a88e4886d99760fa3595629b8ba58a7e80f7b980c3e7540501d2be2b26412078f11eec2878636c4901b8fc7dd21a02e879d702de82ecd2c3e99fc3a4e2339a0582bf621d2a528099d08c1302d90d59b71f1ab0481c6a66880293174c5fbf3d99082cfd8357dcd3d791bfb7e6d622aa316ec524976918293b7a33d0ffa5f89c83a97e7ab1c48558e779c204660aba25ddc49e65b7ddd561891c7a659b3373ad56adf732e73ea5e1e65c413a714bd1024c57ad2d051535fc397574d1f6623d593dcc92cae3ac4e82ecb84d17fbc5204d741b5770d11e3a50698d2be959e6252392d1ba75a8cd34dadc39be4a9498ba9131cf634377ad8598c34ff0901828b9139bab3d4eaf0441971dfcf1474524bf95d3d5536806ef725889caebe32690d3fe24256a8e0fd3c50da29aee516c97e2ea0dd1c5f1644248d3d59e9b911d5dac2f242669999cdb380785e287d959ee888dc3ae71118c0411eb28160b897b4641e5c51087b817dca5fbf9ffa7e96b029df3535745d80336f466cdf923c95edb26e14da7e445a3d10f31668c2af21446fffa7f0c09992f9bd3e4bc727d90b0e930f1ed032058a7730f638f9f101fac2f3c11c3d2533317cac7690e32a32fcb21275839b7b0d2b7366b96ad8de6c3a873d8a7cddc93c69eef75ce95d1a2d60dd6091f4da197d294174f8f0e9cfd55175687acc9146718e1e89fa101f30e6f7ae40c07e361ca23a836100dd71bd5d202be5965d5fcdb907e7c0f2934af798c1e8a21ebdadcee3812ac8cdfb118c3f6498c363139390ecd88057580212eaf95fb0e91473cd11e9ebe99d68616946c9e6ca9a3c126c23e23505e898a795616c9d8c5fab996b6e302dc17ed5eeca3656c24e84ee504a6a7f5e6922f66c1cb83641f7d0c1827f9366b816dc75127a6a7d896784790ad4578127ff64fc3e65d1a86400031567882f4fa36bf669e494124b12ef1934c76c134bd16561c862dcb0d6a408ca812c5395b40d43efcf6ed6889757b127509abfae7ef380f771bcddcea9358cf3f60154e37015e0ad1bcd885e281259e25491906099e11e77c0ac05fba6c4151bea7373b5b67304d69c95b87dc527f93debf02e664507a371a7340a754a6c88877856d76c2f3b451e046348b72cfcd08127371949c63a2184530c429aec82bd15a849319fa1e7043f0ac549785e590092546596c543b0b5ed85e2810c1c08fd6f6ad91a0d1bb92e88f8c355933251195b1cc9b31e4321bab3e0871d32a31be9b786249a5b0241b15619a0721d426a92e216409c19f1ce2b22c399038536cdca7543ed75c2a3219cd9333351dcc65ed800cb0b36bc9bc99064b2f50b9839da7b3b4e8cb6b667d8eba5e870015c86a166f0ab4f108b46701815522a92dbdf0621bb7198aa9272c48c9c0431d4e33f02cd27a85aa14b893ab8f8113a04429c44e1576d9d6f6757928c9e486db9c9fbb212aee4b347a3612aa44642e34d68e286356c408922cc6b53340456bfa8dac08470b251c9769e80ab103d5a4e88491fa5539d72aab5d2d3bb3f2418ca5f7c5477658c81b2de0fca0502e49603f39afec9e0c42816026b832bcf58cea59fe3136758cf144e2c5dc20cf4fb677492b4b690de95700dbe9156fe30faa36cb315a014bfc247d0aa3d6ab656a1491701263fe81a9b7bf7b54537475a5ee8f3709e909d1354d42254b75e0ee4337468d7290ad038fc845c31aa3762c96a8890b50ed5d78f99f164ff1f73b14aec6ba2eef5c7c45955e19f092b7ad45e40feb426f09682b67478ca3ddecd832b54bfc6d6f1e5a87dc054358e6fa0a913d26ee4538ec4540ed2000eee7f965c9f836f5322be2fe517295a2d5a6d6f67024036a480f3d45abf4d744a643a07f100d869ed2729f9ad258c49d5ccdbef39429cd8267888605e2cb3ff20a9eb232b6bd90d4085c206063637f965a4be4d8975635a6a2ded5a1a2c0e9b6a90ca1343652e898d1dd2834f0f313117a08d8b5f7d06b45128f2e94e5ccd59d6682f74c0cfd47e2c9c86480b9b6285b1239d893143ddabfb43f20aa61279d968e11234e9ad1ed04d9cd55f59f580c70a9794f2b06dd7931904f08312777fa655929beb08338992a241beea7e47cb9b332b677df1e774b6cd93af22dbfa9f827d894350cf6b934760a2ea529a5620b322917a4884bc9c674be7365d416d5d0dbe24c90369832d5d0e83c6cfeea9746fd232272d98897928e5bc826ab60b189c20ece9c214225597891c90a092ef42a034a28da840fd5aba99095017b5e9236479f819f1ea1521e645eda45d993aabf6742d7e92f2b4c6088d4a5449270411993e9551cb7174c104b9c4abaa806e7c6266f68cb0634f8026ddcce1181d3439436f7f91d97ce079fef90e38ee54ef3314644f4be4f848f9548963664b52b4f963b6e53bfa828cef7be766e9fc02299ce71dfd825d506a578484f3ffa77249fa527ec86e9d5787a1385389edcbe384da5056ec1d91a2f8b1f502248e013035ebbcbf4c4e9a3382eb59e1926ca4e134a99a50bb21c781951bf6629606371355dc9f5bafdffc5b5e6275c99b8a68a071783b85f7e5dc49d5f2a94c47f2ce5bf247ff08aceaa5324d5726d0abf857f6eb8927578d2240cf9984d5979330b3a6a8ed72379875c92bf52a09ca152b78f3769697171eb6d67db066eea9052936d57b2c0265a1681e0558a70af79d3afc64618094748df9b37ad96e934b7f4ee5e4099f45057bef94ae8234fd5ccf0258ed62f63fd0fb1687a0889d7a860247a6f8a14728f4c8671d2dd5d9cd7cc0e96312f521abc32488a4e0437ed6d497eef0816db5cc9caa4922f4da6bc2f594dce20bbc99b1ca252800288c1695e8f3e5c8b3dca26cafa101d0a9025f41a16ab6ccf53f9aeb5cc23315595441c475650e2b8cd4fd8d19c10887f81fb422ee3cac7ac53b8a9b6e83b107c680205c81b7658aa58a2bd35c2eb7791bb6a9d83a3b74dadfb32402a5178ce309b8ddb62a9e57a6e8353c2933c113d658ce17e6b162d28dc5bd2a93c5801135612dd008a0794ab262318d87e515c972a7e64aa5c38f0b7645939ad01945a413ada81af58325723ea3e9da3830186382273d1abb07f1bb95753d452e88f21d72a2c81e3927b9632f8e3ff79cc98854b3bf841933a85bf1901ddfbf9b2800d6e9c8b2b5aa58a51bfe72955b4df2168ad164f12769fd8941267cfcd38f55783b456a4083545ba06ad8e670b7507793caff84b19d4bda35690be6b1f1edbc04b25957c4ab09b2cfab1f2c715ee9776efb79599cb1775dc0c943e2172b0185175732a8c71bf35e7f61a375cce88b04a15ad0910aa0687a19c61c43a99e560f3483483633e40616bde193820b0bcf4b37131b13acb4bb07d30992a22aef59f43d0c2798c01485307492f9b6078d34d2eabd1164972a8d83228b3863d0be288041fa264257565331b1b5ba2f9c8e9e915acb000be63869f7fc489c0b9c2c01cfc5fcb43ee1f68ce0e4c43e14601da83103e8140f4e450880be7e423806328b89c4d498f0527e3465462eb3eae96cde5efcef0176bb0b937ddd1165bbd63217c78b7632853e005548ca52528ebdab9c0eb2a732010f3547e62c81c1f3511e958b3e7a20cc0432ca3df0769ca2896277655e34b87aeeb487745edc57215f4fc420518e0a2b5e388d9378fea2060bc3571e83da6f4781901f71bc4bd44671a63ad61eb1279fc3513bd7f1d3b47df5edd840ea9daf667b41ff262012fd29b81ffbc9049e0a3632524aa894ac984676253e6019b8e16526654a3c007b591cf848f0d1a046386a4c7e9205e67ca20f3de2aa1b9defa108f73d667660c0d8922f4e64e150a3e0eff42d4cd7033bdaf74ac17206a0218bb240b8e517b29852015f72799e617b8d9b92f6097a035d4bb556e2102e200c5343a84af1b387ad82949fcf1ac270a665f533c6659394a2b1e8165ef6d94e04c4467ce1860b5020bc345183f21158e974f15138d72eaa3b4feb9f3d6cfb77282e82a736cef41026495216247847b88f6854573bf4ba345bade6c1a21fc38ca4be4e890f973cdcc8f8eb607dc42eef780d916d0803a1e87ed95a99b8634a06ef1e8be54603b069adcf0bc57d2f6c00a00b1328c489fb41013eaa857fb2632cf6f241f87f0b950ebcd43a18ea8e92fcc17693075ea08909169499777c560d43ca6d4c062505195ba1efe0843bc6ff8c87304dc268bf990a934a70c8109f9c3ec26ee5992761c056f6b8b2de4589ef6d2669eff20c89f60b19c40b06c06c1af5b1adb1c22b36925f2db87e1a8d2c0d01df4291b83c9684f22c21899272e65b7be4df5b4d41e122fb963155a6c763dd9d13f400ace4042e580216bcd7d615579a0b18e8898d94808d6ca3135b52c90ec4815428484227379e6b81748b9c8307906a55d6c535170fd2c83a242bf77551f7e26847dea592f81485ede2969d39d3f25c58ad552b26ec9facd7108bd2bf89a05ed43ffa3581c6229208fb1a51e5150dfd3f62cd1931f6858d383a17f75fbe1b22fd9590443864be30194b98337c6455d022fcbb0b35232ad97027270be35a43b38ab79d8beba6eb560c80f0f05c7144fa8efc6dafa674d1920cf125df1ba1bbc999f1b2a49fb7dbb816c5aadbc35b1df6d45f6702589fbe6f5bdca1b75480339df302bd7d21c0f44e08d5c5940602291b9cb10ba64994ab342396a92ac1e92c48c1d03570d9795929963a0a8ff07a1f6afeb1ae0bbd427e4af5b9a99365db2387fc01a0e7c26da774dce2499fa2817112b9c0bb9cd76630756c2076fdd9579132c4c091e659157c86d20dde651636bfb1a25e15d7148a07e1e24ce71632abde671db4072653b4bbe456cb28da55f46c0d7978dfba1e8982ca4b3f38112252234599e89d53426dbc72928039794e2088238002fd2105304044fe362fc567b578ed1a4fb776219e59cbbab66774c418dc7d5b7d7922615efab2c060fb9dfda3b6babb02cb5a43aead6625b052742234dabe146a33c413759a208bc820c5e792477d2e808783c2f034a55af0ecad912d22fb88bcc1a169d8f41565375b5b419b217ce08097eb7ab5eb166c45d615b2c48dbb76660f803f1cca7beb7a24fd0d8166ab1bb1979c299b3bd199d3b26bc4a6ac8f745fff27430454d78535134a7e8fb24782218e066a6be90d52a001f744cbdc4ae0f5ede2df4d088baac7dc2f9bbf4193c4bcb5581a35cb16172ab5387384780b16cff18fb8862c7ae56d0d96b3a46436d0e342c0d812b7ac4ce24cd4804931298d23257f0810ad194a5d17f698911f846744ba8cb395f3036c369e7992169eefd994bca9ac65cdefeeee35399f77163df3be0fd48f2df7dbb091afca2b2d63e393f2c31121c5ee1bc35e92fcebe6d2d46e6a4f21eebb9cddf3964058591ba6dbcdbe6526c25e3d8e9b3ca003138b26d988d6191a4db7a7a7345060a7c752b6ef496ad0bf3b6bc20c4016b1c60db3778df05c27e0c7a6cc69d0ef14de0aa7779c25c37bd309e43d7d0f2c953b9d45d4ed073993d7492025d0003502873b763d78d1022b7aa76a27eae02d63866d849c38128484983a397259f6b6e5deb36401ec6980316824c51a2ecb6b361372e1e21543e78e947fb8f128a543d4973737c8940c8b94fa4f4a0e10b47ff66b2b90dd4498aa8f7dbfe7de10fe4b6b50f4cc76ab0ed6d891079db237f8f1d3675f477d3ae9895e84ef1b5c604199b6eb432bb01b74c34734b8d52ba53956e898aa70c696bfa281984d95d82a5b657c054304a3d71653aa8e909b164a1892cca48d1f2aa980a48d97c9006ba7b56312562caad4ab18d04776c8d80ee1eaf3a2a8a6992de34b3cfcfbd6684b5ded45c9639e7be6078f6fb9b059c14c333117ae9d4adc9a40f9e76961518fc005b1e1af3efff9dd59e5c0579beea5dd46a8835856b3a4432c7672b8a336ec3e411cc25c3e9f18578c864296e4a873b594ef777dac30fc2d103ccbc4736c1cd726df2526200422eba52351628100d875f0d3afc14725b3fc3b70e232a56ba7be5dc1dbe1ddfdc0ca649b319310086ccbae1b2df3f82131bc37de5de25c8b3ae66156e94dc07fbd105f5001ab6a9cbbdc79a461e5605736747b602fa429052a178fc76e004d2ac86ffd76e48582801ad6cb34329be08d8c05b8aead012874a522b9f6f79a564dca8d318ad8222e77a83e7b9281f3006524a1200edb997371314881abc2702438a254d8395b9bf23faa920fb52f406f94524d176d0eab18c62c6018ef049072e3148e10604fc9ea971352c6c1cec15fd0a0ab8002e2fbbe2666aade848d532cce41f026ac3bbbdfa703f2c3844233284b4520f830097b889deb5ef86dd9a97c7962770a646e843426d82be1a5cbe78fe6a6d42151f8bad168cbac8ec204a90d7e4bf795f4a220d0a3825dd56cdc54ccd2f1bb3567836d427882c48dafc20f41a7f79009663154158e8d1f551aab6e561f94efd9fb1fe6084cc4a05470894092a18dff5eb3425671084ed256d0c96a31d7500d2a629880c0ef17bb0d3a4994136c14c59954f333a222f9d6c991d48471bde793966a5e055181bfffdd018c1fcd943795edac9b924d6604af80b582644b09525df7fef02eb3c03d574ebeded24629bd055d547a6417b13c8103bba9537d850160e6e727fc87371049bcb01bcf3bbe23463d2cb235e04a6146164d3851d6e713cd87944633bc478d7cf5c0e8e5f4e618e52ab12aec6dad710e680912fac222c20f40dbd075cbd66733519273c9940e619e9a45b6ecf44677213f772c5a5c6c664f95befd5e2e0ccc93dbb613cb74faa7cc01f7873a97e3b701a7a901c038481e84df7771224916655da8321cc9c300842f8cda4389d2daac24ce7b8306b51c8fb4a0bd2d63214ce904d9d167679bf11dc2f700ce1ce87de64bff8fe2a93e8927ba6167b278d782785671d539742c8fabfcbe36bd08111d707efbe258839e3e1a9fe36e32ba88bf7486065ef8a713703741774cc72035fd80e2059e56fb7b4a77858ffb3911b4c84d1e60d834300f4688865583ea94ebb1a68c18e63d29d06f9595d2e28c6fbadae9b5fda46016bdbfd99d8327d7049ac87ebaf28d7ea0504a16340618512573f1654dc25d291c791449fcd3cb5b78ad9579f4a009ae6e79273314fc80dc11d9274d281a7ef1a879ae8b765a4684029371a7ca280a7f570e1bf1d02703c37e06f8d9ae07ffa80f29e1da232477844216b462789e3d9f751ca96875fcd4c7c00965a273ee8e90961500f5d79a727dda876652a27995ecc675003a3143d69e80b826f9ccf563b3ae00972f21b4d68ee9bac6f6972e81ecce91c5835eb609781c169ef1ab5bf6f0dd23299e531021d0178fb7a7b8f2d4e80073098f5597c83046e85c029fa7c9899c1f8229b8241453b89278335b383990fa3d30b3e72ab015853f4ce9ebd9d8ade6d5a7b50bbdfa60b743555bfc8a2c6fa3e75dc8fb97672974cb562345857f0e5a3795317d839c12b68781da43c06df8040df1ad1029c0cc3224c524221b7d2f11fb471ca17d904c3e192e10e174655d7f2ff7158e0e3a0f0530224a87ce6328537e327d08b3d76e326de89153d5ab7722b7942be48d79ed3194c14924f900a322ac9a87a272f03371fef51cc2eebb5a870b456ce9f017590a0f10d3ba8699e2f91e4245148500c102601da3dec98d36830bfd93e5cbbb1e5359b07c453ce2ac8ee52f76db724e582700c01b755e0f3a930ae9a22e6d3aeb47e60d8a3957d5c5d2f6f2d4e8b80630752e668ab7ca147fc5948667e57f852277dbf137ac154084bbc09af1e48401818db92d6940eeed215d49763375cb2b80607d055db39edc130066eec11b980f4d195c182961debcf4491e7b496f34b28b5d9a66facd9e691b0b89a6a16b8a5ddd66393b968d425bb177c9cd627c13373e0cd85418ecaf75f58aa7fa828760af739607327455908aca0185a4977dd8f71d682c02e7cd4f696170906a9df5f37da5a383f672bec6cb812fc9f2de068d7b87cdd8c1288a2269e63d127a8b742c65bed156bc8fcb41887954c9324cb9a74bf861a73651a6057129f4b2f219c011e20572455cc0f6e5aa5f4634ee896ca4efadb6ad2c17f0afe7b8742d22233fad060aab989ff12224c0ec757859b61b69f33a4f8e303a307d108587c3ebe6c7d92955912ff2a4af6b5aeeb7cac51122d884fbf14d32230ef169d4ea27eeed43dfbbf44ba21293680b6153d7a2d18bfb0c1b44444f6f5e75537b011a94b8de733250a9d7fe3e8fed8f913706b60385abc14bc7d427fe7d6cf41854799b40e78afca988a28be7adef295c848d27a5bed27a1130634e28e6d9e0805be8d933fa646f3bbe665793de3e084f579b41b2192734422a7879556ce50289cd47a1629b63ba1503d6d1be710d0ffc327756e790ceb2d32e92415b480351ea9bc67e006956d7a2ddc8ba3088f0bda7c007209d5025cdee02c68bf99d057eab0a0b2b0b16ba5036637e6cb5cf51f132977c24ca64400f00e564da0a59af67ce73ed53a1b31150ebd6de28678024798c9340e616a8e3259c73389434cdc31c564f66e708e7eb6ff96ff5232cb046b674f4aba6457408bcdb734f8508951154ca63a8e4b103b36d206337e4f03711730abf89d3c0c3b546dab8d712279a4dca8739a9dce6b450809716608794279152754326d8ce68f3f4d20aed244d59177c679ca4d1c27d1079c43ad7a8f5735229258a05af7979bb0460a594bf3e1b70c6b9f41a330da533b80dbd45855581ee5046aa8c82d36f77f5308a0ab107396191d9e14d5d5c398ca6c04317d07d2960010b39e86103be2a510833406de8e57467d7901f70ac460ae1cc9d240c0ef28f56122cdbf2d719c1dc93ba4671d622abdc3886b31491f1abd3913fcde4b3620b848c09bcd6818395e05dca70513c306cc2977defd3f82f8a72833be79f00910e5d36aac457c17ae3214bd0999a43d97f4f4ac5fd1bb01ddba706e0b165dc54f3878705d1fabfc0434ac89f35db0e9bdf13470c11a21a6893d78096a6b88a8289347547c3448941ac04477072e14324c18400a6a2e91a0ce19a18b0591d75d032615a629489826c303b314365222024ced3a337cb897a06709c05c6017ed019c170af357a69fb6393bf094b5a948560851392578993e46adff0c116b6e7cd6689c529b0e50068df5bc90f21834278b2e419b1b43850f546d1b1b388716966d9ffaee4497522f56f6f0fa85a28be59178727183ad7acb89c7152ad318fc1590f9cb261e853dea229d3197b9a0f83010b504e9a41143105f2b78161a103540295e2e5ed6612e37c04bb2785a3ea9242c6972db144a58184516bcda748e893ec3f73262e5c1bf4d311d8c23d5ec5452f13a6cdc8385b542167a11fb3ea43cd08114dfda921f60e9e2bf7537c7c2d68d7c5c94a5a2b01ba78d2c85ef7f717b36c2758c408ab2a5648ac88ce8ae59ee1fbd4866dd08509b3a7ff060ad820f81d669204ed5f743aa8f3200d654c60cb8cc7ba13e193814762a12ede0aa0b7f9b202f7c0762676147a48cf5c4139d1c7dd0a0b270dd88cc9b6495bdfb83524e6c2932024f2202d333923067ad201bd678af502eb23fb51455efed3442a353108cd8edde75fa5190277e18b65132190fb5419ca1f2dbdc208cb0af587d478e12166d5d9f5a53e1cc6af00053c37b2aac3919f6e0913badb142b71c76f0e1ad36a405c4584928a869b9c80a6a3f180c22ba690235e0c8880aa1db07ada5cab6f593fd325535cb92bf215c1789bd792c3ace56a129601c54497a5be1d2433cd604b135d1ddd8eb8d8fe22ace99cd8fe5252cb895471c2f8c00caf64d142a74a1ca695a3ca69057d5314a1c99d02d936a3d63f52efae44c684e11dde2782180f6d729ea036791737e50353c4f85165032f4b0c9a4295461aea45ae3ba06c0a021e753c5fb05d09acc21269ea434e8ad4b536af5d1b3707fbafdc51a032523930ce31bd2fe9adf3eb6f5fd4228e36b6695a769a130637b0e0f922f188b17cfb08272d2a11a5455f2d953489f674a9718d47c6df1f2277012e876daddf7dc46b7cfbfae90df465a336c4430a66d3755d11f9e05d8f1394d51c071f4e0525470314a381c1db8441fae0eafd31445b88ca8418385f7cc13c60c3008084e79c200415bc0e1d456a5bb46d0aea6c18a56af5ed5bb119acedd8b49e535e67d7905b30a6fb881601b03d8398752c30c78ca88bd54443e8545e718f1d38b19074a2e79f3157581492633ef85a380aba3c52d45adf295a02cedfbbe302f2a800043a064a02dfd5344c7bb1176d88422c141ce1381aedc0acdac3bf15a4397203f71ccfd7f8cf65beeff0aa2093bf18235183a34ff2d09b9ff323b4a2dd4616e4b2af0ff15f983c8ac3af0683cef1faac0fd8ceb2568642f6aa12230ad8af36c30dbcdc7d76e76c9d6f5b5e3c1319c10ba82fb95e26d987d2328da55e9bc173e84f8012096c7cc62d5332390dec460be161687d3d1557089bcad90a768b4e27056ac09bafe86cd8fa043d8e5e4830c910f134770f710c5417335c3aadba6799b8a77239ed955f31590edd4c3fe52b73fa6a65694dc8cb7c0016fdcc1826edb9ecd5b08a124a83577bb574277b020b6e0b68e3f5233a222db2c583a1acb140dea999747083ccab2279b6918044de93ebe262b6f073779ec1ac67f0a49fb99ba3dabd35b30ffe8638f35caab1adb9819989b100d44f824bee2e304fea435741a474ede799cc9d6f53a72990101b3b3e199817547a864e71a761b4178ea7cfd42a7c311451790cc1120f829a14d224907ba3aa3e851db8573a3465a2f89394a89f0c3c677cd1b913912191343527591290d22d5f88bc76d195caaf7f9b9e7050fd1ce88f093b5fbb24127640b0cb476b7e9e8b90c057827cdd0af069316b3c1330c98f3ba9a705de4fd2bd66e2d5eb3323489864c7de2a8e0e5444178d17a10b948f2263433bd00d4261ece2f902ede3496a20e4ef8c3b844c9a0072c8ae208933e50fc30fd99552416dd44c1341417a71473524095d48d0c91ce0eeae4f3401e1a94ab851dbb1343ce0824cbc746fe2e29272a66f8b5094f2c659058232c3f1fee606859da9f83f8fac5960a4796f96e785d4ff3e8042663d625d38bd2c8dd3301a59143d9827fcac43017d5820b6eaea44bc659c5ae2599696bbd54e09111a875525eea808dc71b90f88f7131a3560d0ac687959e94929ea9eaee1893b31b72c71cc0e7df7dbd5d56ec0eaa06358f12f566e6675861a3b68640bc5b4552fcef1063173c62af424ef33370a9ea45e0a715c6d18bde8e6c5e56dc3b6e8be1de8a074e1efecdd8e74a39f1ba207630d146afd4d4582fca687fcc32327ddfa2dca209fd22655890a18798fa441f549565c58efb8cf25d9a2fa45e8bd0489ca92155405434e2037369fa8861fa91a78cf3a72cdb79835c0f369bdc5aa0517fa3218b219f83adc865d0e3e10cc2e0f0d18c81e2c5927b469e6771b42b8c80223b4ae4e7380926a763ce882c50720b760a354b43fcffa238b96f2982b88d75c54ab3083c1e1c98b8e7ba05aca3f04dcf057d487f8b4f67b4c8daa025defa4300505a1a9cf51f48c604b7fc008ff59b5da0524538b4b663c747bcd9569b6a566643a98096626d97f63905778ac35904fcf990b012e975a99fea1e4f531f0bcb278bdc466d6a4fe829df9c957b91774bf183dab2de613049e47ae1d879b62c9ca90859ec981004fbed31abedcdc8ab2d0d5f4035266ff475060916ed2e6871daddb81d75dd269ec7e8fcf9ccd8a5df25fecb33548c4f3362c470292f5378250dd4e1c8f58afba43db9d34d1c46616d88a4b6567566c877c2069cd523493d350fc75fa5b983da95814056b1351a2d1ff502771f16d17662e8482941ab0be062911822977626c486be4e35a127787a7547d9b342dcab200d982ef4401eab21eed9ae419008a34f63a2d17b8102a38d8a880d9ee9997a112635cf324f24e369b1de96ff0cadc5e7c91be6371151f4e0d2f63c41a62ddbf541097a6f4e53a54057f6bd357e8e753a9972e7579acc43e4ab4e3f04df2bd83158870a082a9946f6b81cafdc0dfc2a42acb9dbfd3c5945159f360b57b3587bcea895c6ccd4f297120ac5a0bd9f942ea0be7220ed707ecbfa3e990052e12cfb337527196c20f456cab12803b1786b7e2f1141cf2dd24857f08ae1b48cb142eee6e1d6fa4abb1108ceffc2b7e49ce80be42e560b7184c12995651298825ace0686845cce8faab31b38ea5e84d90aad6e95140213fa8e0064ca611e62131a8315410594f80278445e162f9f0ab17fa2b738833ca55c92566bba03dce1687054eccb67cd164ffd6a33d978023d73fc0151a0c9f537a2018b56d6e9a64cb2c06b68cb119c4d7ad31f1c22c5c8d8c228e8d9acee950d2b1417ad21172363bdbd06de67aea43c344ce51682f2d6dd7ae7199f43b9badf625f24ad0982001317c3a4a825709f9a19a0ee9a15a067742db5c25b368f3c811f0989f4b2482ae689b7ebd705b474ea08734fd4758b2f5ccc51de1f234a3d4173b8f15a606163aa3418dc295345dd1d7c87e4438414864e38911d1116925a0d7dbf046df2f9d5216f1807a66c2bdbcaa3fbb8efd8cba91febfd1d106ae5b2a2a5d6c540485778786121bd241feef0eb9edebd73b5b988c3f328baaa2aa37e2453599245c6a8d2d55b22aa751cdebd5d9130e460688a9092569d8dbe9451af13ee107ff1d6a9c09942207fe3e7c938012885af0c4da83a1cb7bc7820862a39d1ea709490c54170b9a5acc7ce7b0bb19b2ae3ff03995f75be4db460df97259912672f651da86834804b4ee325d167ae18176e806be1ac52641793ac545516d400ee161cfad0f9e7d5b4898418e4aab34f42724ae6d3cc534c91400b47a93de0413431429ff6a667ec4c28769f50cccbef9307508b0e4b06348e726098615b66179428a68cdb205cb90a36e2af21b51b8955318ec706a1e0691b7c8e77887b8e1096262818198ef76d0005290f05943e385f690fd4529e9263bb812d0546e14ef642568b3a59c0c9d5ecb180890a9e046cfd1790fb71bfd7505985c7d35f979dc54d20bf5e07f5e7a34977eaa4b5f3cefdc96d068801ee39732ef0378772e25fd6059a05ca798641da54a3973560d05fdd52900591760c6db16b18f338d942e053e75584324a7adac003e959688a141b1642598fdad13b6228d3dcf5d0265b601ed26a1829de86cecd69030cdb2f2ca9f0461369af26b221d34ec591aae99a4ad7f42a519dfacf5d5da5ec01bc2312874a4bcc166d390a503dc37aa95a51cd9cb1301d8585ce7c2a3a8ad9d775400e6212c1ed77b36951f510e4dca906f85108e04337e39f59ebe3a2a5ad02b40a86487a2f0e1a4e3d5dce7b3890611d8b5cfd00bbd83053095695a02c00ec130e3ddb5f74e7ac9592f1820591374c53f5df13c9df4613f5ae4472bb29208a0b7ff2126891aeafca3ecbf8798fecf2f08f2b36912d311d7aa42b47d2709ad2884e72276bfcedf8405809256e5fd35228092d92079d4db29df7d26f05770501396edb4508c8c9d8fea6db3e644ca556c18a38c03086cc638f0022ec40960c578fe5550c25f86c5fd7d11540d5be989f8ce7024ab7564ab10f905ff1abfacc4b6e6437aa24420c1558518d7012228d0da1a079514aca0d54d0b55a120f93c78802e5a6822cb147f4c993a1b852a802c4fc65500bc681e6b9e429263ed321db97beb674d44c4de7cb05caf8f92836def2f6009a97101093c652454402aed7fde9299e30dd152a39b28bd216b13074f3e07a5c82b440a6e8038149a47ef19219ee73af3df8870936305c9ebdae92ef8053c42a13dbd51929a388668caef3a030dd51ca886054f56bef4c4b08882c45ce56567af5d092e580cb9ebebb14eb7768884f6509e8b6e498eaeb9c8ec44a7cd2a51ad3d69ad3ae19df1bd28ee584488dbadbf34fa49f9b0c7852d29ff60bc9f53c87017580ab390d9cba649b382af5a21c0c9808deade21683205c8ecc4c92a7bbefcc2d786751da6e6b74f4bbd0d1fbc2ac7576a12d601ff22319d44a0e8b434523812ace0d5901998b0682d5619c0a7b1dbb4247b8178ffcc9aeb1506601a45a8598229d47936cd19a6220451c126091f59da381208b4208f88a6b4159094f1461a64351bf2e6a89c8315236789edd06e30fa7d98554ce738d92293854dcc2a93489e079a22b5b601b0373d0ae6f5d9ae721008e1f703cc3f40c264f2ab12be123a213828ee0a23c92b7dcca4506efc40a3ae759dd44b38de615d47c01bd6185d0aa1232756bb8d044ed564e59c5b29d559deb010c2f4d27498fee3aa773b146c66c2c8c03fa75763fb051f2f71055fe35c0341b4fab5e64a27f5f3f26929f80695ee7bc00c2e05c036acb066a0a270491e0cbd08d48781b2bd5793491c76acea612729836150c4aace785f81f531140e8554bd91cc2d60bb3d86f158c2a08613091c475c8b05c475982a86494b966c513cbf0104f5ba2d9d664b43a21e39599f0ac1000a5e0351a3a0d8e4b04dcb5d23b3bd341aa1009a9879d245ce0884a8b6bc9f8ea7a84f60336ef897fd4ac9f17e9dabd9162004f3f58ae8d614026c1a31d23f3f6a23ffda8622bf65c037a108fb5b9f0f247d750b4755e5b7731a8e41971aea9000d61add4babd02c5437ada4bf7cbed585971cfe3ba2931ec3de701418bf810a409a9df1fce7b71027a6fc5d914865e759ae11fee3912411405c9722ce223a7a0bba811737d9dc0285718fc6966077c4b76e675486d11261182ad2e16c77c368ee6c15d770695292743915d4f9371d32e1076806fc1fd9dac7f0eb051a550ad0037d42b503e384866382aaf484055d7cd5fa0ea11ff5704664342c1eb96fa834aa4fd53de8089b7e46fd69aa1cd53d5b90cb0b1ff552169751db00ba8d0162e7cdf98f321e32f65ab2be4d95af02974b96a774e4925b9ea292214abdd414eed092861f45314a453353fc2eba9a68510852b55d2b87ba411455fdf34af3e3361e5af59006de76e43663523ba4ec409e3bdd83f31f2ca15b0451967ebfce9110fbc42ea8d0e786993cd7a2bac00476bda962c962d2f5cd918ce2da3591b45a003ce10a19f1eb50d43f3c670b353226d98bfa4d632fc16396f799a73817d47dc549320e0459a48e350f36126441208b42430f3357f6024fab3d5f999cf9b3011e6584c7c58860140d775310acb1c0d67eafe0d17eb49d8881a84c9bb9166543e0b4537790e9a5b0c4fb67fed663817f8c1154221cdd4640e2e14a880f69abf5b3add016da9c696eb0a1f9bbd852f2c0202ad8be08885ae85ff2badf07eb198ef1be72542e33cd17e21c2ac017c60b99a125ba4d4758b719ff853018fbb58250a88326e83145e163ca1b20871065f678f4745b562fe0dd40c10f30bf2d6747b61f049114d6e5e95a0da34e9211ce33f159e82f29cc151fc012b0906348aac99f7e1059a7d241da46301ef0c78afaf423b5b4bb51bdbd8f3d544b9a3851d8bf893b109f6a61434dd66114aac997dd45208a83a0c0cf2faaa25c20a433fb815e92fe2821654b5fd829922972aa8418905e3761debc99ca7ebecfc593c81c205df5691e202a94838ce34af218d05b35b550e13b135e6f431a989625778b33ab7ba937266510cdb44284f591f229a45b83a19a545f959076245b510f5aca7e612b69f16933c74ac8ab28ffe56594bf180ab968740dcc299eb3519702975b28f535861dbb0a9a2b0f7696e17519f22d3f05bea3eb973b5859a4b96713baaf74d6df64a8d9814b1a925c4d6e7b2376f1ef9b46d30c9c89059d31f06c2d7650d3b27d0dbc0a98040d3a0b95263bc216463580007d7a8a16321b8e21d41ba31321663f281fdb9dd2e88842f1c8692e18d1252e10ee4c9edf76613aebc7774b35a79a00e9055cd4db82d1374db45d001eb7132b6633d09274a6e24c341282ec1daf451010eb32210c0bbd4a37c6191c9bb5d4e6d202465de979274723e04b9c2701bae1240a7c29490cd26d10d5566cb3d1cf702dee10ab88a45db48bf2dd04b440cbf6fa1bab2c7c41e558c418456dc2c9e4632ba87804a5d27dd55768896402defefc0132fac02aa237a21b1b71d5605cfd19645e7d62a6ef608e9f141d08ff2df4ef3dd9bf6465510c6690383d0e53aed8a0738742c86a9309a8a227abc3ba0b4f0e26aef83248dde3813ad081eeba41aacf5bfab640c60714a32a655f5ee1f6e45413df92de13372809983e78c515e276ea5abe2360aff80c1a3b7dcd8bed046e3199e1273bdb16d629493cd90d0e8b788726fd785e17dce5d429458025726d462706ae88c9b7ff166b1735b9b61a408753011d6462d3710f7345fbd4c0d3435226fd788269397195a96c8859f135c555955e1ec45bdd8d1253115e00df0b55207f70aadc0e5d6d52a736c6aba7ca0ba607031eaf9dd19520433c1affc40f24a9a146b0020cb7c15b317f08867beaaa48996f44a4ceab85bfc5e5cba1d2d54c1b19dae44b88e49d1880b9aed00ed4a184ddb11108b339a52a1f14a30bc7bf0f88d155966011b897c9d881025922a2da009a21f77daef46b100cd5943108ae7a9793f774279c48cb4fe50d5f7cf9858223216969f65501cdc57ef1ec6dd224691065b584e94d26d03ba1ea0841802c5809c3a17754bb194ac2f09686b66b07b04b007fb3e59bf5445881683f65b28ba186c8018b80a8d949651feb893db5937192aac009941033101c47518056779dcf51b91b6d4be2e65e63457ff61a71a1c0c2f566ada4942e39898e10c768d2ca6f3da2c0aa47deb42abe90eca321133ca31db1519ad9279360f64866b587a296aaaf1529a654d62c1e22ea2de70e41651234419d3da06c28317c48eed40a7a3e6a85e7feab45445e9692c946ee709296832939c38d2e474c3278299b1350bbfed34e45b9c16402762e893809425f30637acccd0b317ae9dc0cc79e25a669807edb148096e5ac239ff12f49ca0e2bfe17c9da72439d88dbacb371609d779731d35c8ae4cc4d32fc9703dfe6d65f18f69ae1546edf0e552fc85a5fe243000a92325944a2b555bc887387338ead4de2ad21a2efb089518c0e525d1af563f1e58413b1ef7597691cbed928e308c2407d8780b1053d1d8f4b5a5b07224a726792a2144396fd0849106a6173d6d5d37a327c48504635e3b776dc89090480d885c03b66adcccd83c3cdaeb213c29ab8622b7d8b2dd5af0a97af282ad72ce4e82be9c4d00fa688db31fe9b300fad016dd88556ab7d8e41b58c76749404a6021261cfb98448cb6b5e88117c81ad629cb9744f689965a8e6ee8f83124c072fc2dadba58bd391a78526b36c3eadd4859eae6ad7b5c751e92f628028bb54ada89de7077a8abcc3f0ce930a064b41937e6695bbc6d78f20f36530429c28332b3ac1a106af59e374413ba377e39f05f3b8f887b4b237d5a32f6816291ec1c3255fe6153ab38beea16f31fe57d3f2e0f07dcd446f4d42898c8b658f88f865c1711a62d5a20e3d8ff488b1a10f9b07f247991cf206160562d01adb240d4f21837fb120da24ac49ea266c9fa11fb2bc8ffce7f3e70d5ea71cf958149c604fa734fe08bb538405a2c3215618029f59b69fe0cc7754bc434a3f573c50d14d1ad4dd913f39707a846965e644209fddb3d04cb8213843d656ea27746ac45fe805e1c769c7620406a194cd6f23cf8eb003c74f622c59f0dc67ef04c90162c7aa4f31840a762759a103bda95156d096701590c9eb84a70f457eba825a4e58946369d3fa7c68ceb6af96928787f13ae60184d339e3e51c2995d920e6b165b1db1984ac11f9262a68c8e94ec53a69da01812e42fb2f3d6ed0948610dc6436dbc0de29453ef6f91e496b5c453006e1fdb89ed3cb82a96245e55ecc3305b206185b48d3cb680d38dd885cc3c823e1a79856606f508238baac8e2893cd917799ed75c37552ec39d8208530f2cb029fce04dea7cc6f1ce7db26c5268f9246d8a3ba05cb219a15aad5cce83036bd0c90a5aa2a48b5000bd1cbcbcc54b4b97e74f2c212f2d07252b4ab7ac940d7c363ae992a7d10d09adaf2064063d9a03818925a8933dbfeb2513647ebc340442e6ba2657771b9198c41f53457349b982dd4866a02dff67d63d033fe33f93c568203b74d8a0348cecafbb04162e8177fb4dc7b404acbb4596512d9f09e20b2268c1795cb5707a4f28c26661b72e1ebde207473e5c1e5bad5120aaffff67c79ca83ddb788a7c9819bfc4549419a61228dac9898c9f8429624d0b0ac6956cd09e50d17ea4205e71c6cd90ba07911d4a7d57b36e7511018a62c58f0139d6d2c6e4282059da30022e5015161166a05b3adf67da9431725454eca5b4ba808d6195e2d8eca6568bf19d76d799295decb590e7bedecb6f1735961ff0c02fe9f135c12ef2adbc3037fa94b049031b3416cd4e82c10c6167f1a41c3bfdec8b11b6c43ecd9514a48cdb4f28f2181625b8794bdbd5cd9fa94a52a9eb20a203e18bb85297460aa57ff7ccd189922f3293812a643230bb500bcfda942a8762794ab782b360b5ba31776edcccec553b1c0d18fab1106e7e360df3d007d6e739904986d89668a12149e218addfffc85c397d27d23cc4893e224ca38fa560897a7b1b213d8580aaddac3e419f54237df5fc841319b7ee5552c95340ada527b892e878a2b322ad333a05b7275cb4e01595cad29e7a3a423d0cf7b0ce726466a13ed31abbd103b071f27234be69c784009d9963e9d4006806732ddd3c54f1f560d09e986d14b57610e1cd92c738cd2b14bef0514e2820152139d9233c4e04cec4170cab44530947a3962f27f8759aa3a2121459e4b29ad04a9dedd0fe7e841cbfb54fc3053c2dc5d0f4c39ec0bad5f4e0363e11282221052b628af2a662d3c4f070eab9d00167394bf16023d0b16f8c7df873802ddf96b60f500d4ac6b1ed03775d98ca4193f086b75e77bed31eb9e4f058306eaefefa4b2d625865a30d00b33c183902a6ad4c76acc37b0d9a9dd82dd1ad22dffbe4c53d33eeba3a49c1c72e945595287c50f15322a2f55ba15fe02bbb432e7ddc52f123db14a1aa4691b45644ba2091b00cfd2f2a1646295ea1593fba28bff5e0e570dc2b874aaef9e93d20907165fc0dce04a1f2baf16b8c6d298c4a7f533fde05a5314ec67f6def5ee2d89a7949ec3ecedb6cb666ee57e296232584646304f7c134ac465482fa882d567ce2ea26694c55a598409aa25895a32be9bb8e54b2c06c34d7943fd4207a392b8273d3664b8f3ac4ef749acdfc04ef90f2526ee80043332273618f0e3a3ce2985b9a121d1e3333d951961488612a8344cb60235f8d0fcfe4014121d3bb10f41bbea4a00282184c56fa0800d452cc13618e53827110a081394ce64ffd0e5dbc80210c17b7b0cb91e4cf17e504b8f12f22fc1fe249ecfdc8f6a7c33b434613816f792d301726381540e7e8833db04280eef77e0cc1d405635b23088224389862273f5b0e127079320fac5246c0db12818ed593d792c3901f0541aabd087e146054d686cd48d1328bf558fdca249b95a408d78bdc1318917d4287847c5b043d673710e5ebcaa411fb8b9f28b8f019bf19700ca6aaf4e24f0c5707a5e00209b89628712260cfb259b20ac928d40c46c1df398fe8f71a6c8de7ed1cdddf8c6e2cd337c32ccdde4203d6605a420cb2fc41cbb0e24a4608a1fd6709d1b7cffc5f339bc46a74acc8ccba9fa019b146398db5675b6f42de26d5c15587f8f04992ed690fbfae43cd0309980bdba2ab8df398d9d4cf9fcc92b603d9d34a3e0f2e728b086dc9734e0f43a1cfda4bd8df90b21a2f01864b136923ae49373799d758fdd633efc3d3d1162fa7de4143051c4f4f9201890ee90f03152438feb5aacde199aad7d63e9847cb41348e869adb55e2dcf65270d8e3f9dff4ab9a68517c84f02b83c7e805f98adad1d56b5801a0004a57d3c1a5cb2f27c3ea6e797e209bc2ca67acf4c3547220efe7ab9f569b58d42d84e8e1604c7cd25cbd024a4e3116c4174e14005be7aa37b4770178fe42b928f426de66f61bfe2b5e8c61b3993b1f20eab199e79d55b0a68a577c6b484c49b312bf9753bb70a3a24fe89e2ef3c513797b48b0a0cef5b6b58084ee138cf6f324200bf48e8a1cae3d51c15ae7068e04e2065b24fb59e02533602a79d82bc5ed5c6dc74b1651ba0ae7f0e5c4932a625f8f583a92b4c1e31eb183e1dc72c74125aa55e9dc7b5fbb78b17f55c0e94e95b44704937fbbfc88dbefb2fa62aac17e384f752bbb98a7feb43e534740b04919749840d9e723009a8d75fa475fb9f7a80913819334e01737094083e60e87758e0fe7c843ecb7ec21311b7e0461a887e0fcff713b47d7ad02a414790238d79c565c05743d7f4e62c3fa4955ccad5a7477d67bb081541974c3faa2cb4a8e46c6de07c0b01869df07c0b47c61b9a3ffb3cb03baf2073f0018fb74613722163adf2902fc0dc503d3f86afe401c8022f059a3e781873e93dcccf6f5fd2cfc15cb5c839440ec457b17d48092364e1412d943f7e606ff914757bf238250420a3d943b974c0bb6df82fcefd1227230c34a6029e5bce7101c98a3a1909ff2d39b358b5a693e5a94c665a9c3d1cef13335441593909a29c52081f460c0fadaabcca2b4d2a35a896e312ce43e9282b651e557c9287d7f13cdc0162284294822a681f2939daa6efdc13a6304cd1d3acd805323e85f6f2db45ba121a3334cc50e29fee4353ad930e5bee5e3a4c64242b17504cc08aba7fef025b6fdd8a588c8562e896e560f60665ccf18cf34b00a9248fb092bde4c22dc35fc56a8d69c3b07053b39f4770f234aea544e3805a0f99641b1faf1f8f1b84d3776c7622e4de1368fe54db4a810084cdb060cc6a7f500ad935e02274728cb263b3041721333fbb5ede4fce76f5f183f13715853a7ca335eff556e7e3edc1d5329b0668c610821e1111128a6f45d3dd9568b145358d87e178b004b9358c1d1d6c1f6b6f32f6e5f8180a22f52fd4d28925a5d16f2449d91b74aac5c8e92536094ca9c2818595144d08c47dd00792faf866e8bcf4ba37f0f1f93548ea060adaa21c79b846c55165487a8408f25bbd74ff60228771cc52e7723ece912e6133c9d0be08d8e2798931f0957e6b063dfc1de3374426b18b12793050550a81b882b3e64d04f34ef52516c1cb09c52b42c508a2318710d1c4a552b481cbe7df39ea91f929c7faaf49b2a822ba227bec535f8a7c054e8607beab7434deaa1da6700d4fda0d255013e512aae08f2ca0db11af8bdca089fe3bd8208691ddd6c287e7bb986b5d28bb54ea99d3c032f8ce0fc7fccfe66cd031001c3e551a07932076ea936474e1a0834993493f316010c75c70b118543a513a89668faebc35cd482aeb6ff168a7b49f351c21e66902b06d8f21375c83de312b820f0f0905b2b395d8feb19f5e574645c9cc0a8e414c63a06b96536fd2862f78a689fef40eaed5b2f4028a63c3a6c9f901948b52737aa2c91db81f6bb448888f3d3cedfd5773e2ac4f220905fa8e3cc70e4c8cab2d25c348b2de3ac9de1a8e54a0ca65df4e41dcb241ca37aab082b44b244f0413b4759d0da2050420d621892883bf64aafc97a1f58fb4bbfd8b9f8bfcb8c470a664ee7ab8ddb6dd8f69d3a5d7b6ea116937f748b1488244d3ede2fd2d84eb8d63888fa0a0fcd1f87811a8feac9525839f878426820ce51a3dddf71da815601243b021aa4955a5c404c2d9b0e54e04d9f7dbd20f70ee81ceba8d199cec393a38062a1d2f9ea418de8e04b72dcbaa15e29c5a7f332e181f41dc0ee86dabfe239807dd5b6a478af65a47456ac14b811c3a547ba099330e515696ddb526eb9e5de524a2903390641056d0530c878c17ad1a5a6828a1828b4313b2b137ed4fca01991505bb2840589b604e5452d07e5442d0a1b9a1516686fb24af0521bc14a8d290a0d8b921f32446a5274b4aa1c34264c6266d4c03c317af124851a175630a3b4551ba282192c52a0a88c4c2505a951d91127b782062dcac911ed8a9315536f7ebcd0d4a8b85280a1e9d042238242eda9492dc6094c52b4139e68274ef0c3428d1334c1d1963469a10427043535225e35273159b87c4981b67b423b01929fad12a47c34dda89d6083a693f183c5c4450e26b7a93553cad07cacc0c5aaa94aed06af6695844663c84f17203f2ee0a85931410d9744db415544834385e2e7aacdcf972f1a1a2dad2f35aed09c90baaa8645ea2542a64288aa213dd140708262a36602245a0b4b8aaa2c4971e48696064d91ae1f31505d6861aadca25c5952833255238a52f2449be174b3515b42a2f150520446498a5a1637b41e9a1e5d3f67c498d0a56642151a55145a8b25b51653351b51b4179e6a386db1e105a95695a4889623498a286e6a38d01475fda8200645979a932a5c517ed22c19618a4b14ad84a72ea71d366e20d5b47645b4dc2e050d889b5a0f342cba683831b5ab2eb52a2e44a1a9b0843664eaa72beaa7cc534d0427da0a365820bd415244eb8224c54f1b37b5196854746911e3a60b922a5951686b96d05298aa5589faf1444be294820d2548478e14d57a4752d48ac8d00ded8a0cd13cf1faf1b2028dcd1721596a5d7ab423283f7194f4d3e7c7cc543f83684f2748f5330cb221ef841ef7dea0200f707cf816d328661af9d02c3d7aa8d99224a7f4c20424658204b1a1e3d2b1c3c82e475331dfc7c812168ec962b29e98ac2726ebc19f81a54bd6a42749d27e7bcc0a61fc517bf187b30d312ef368bb587f16dce2fdd0bc3b531ba75747025537ac498d10f53b86a8d4ac5fa949f7bef89639f60e6968bf8b6badd55ad9574b1ccb3d4c1724c6f5e4551f29bbf85eccc2bdf7de7b6fad09f971d19c48dc296f2aabd75c4c79e927ae9d20abf40f0ec9d3296f6ac8d40f2a1920631ace9e5b5a29ce4b982962dd5c61bfefe301473fb500a3b9625b7cfe48130c3a0510479f7938853c9e30541e88a3d07c9f295c3f3f28443345443495624591372d8a74f5937c271f58fd8c9129e245d629af0893189b004fc1fb9839d35c9c1f04a916c161947d6060f37d8a24f5f383709822452e44226c9034112fa3b00d912c2257628044a8627c448c10612226acb844a05810e1d182080e15fa3be511613124cd8bcdd3017e0f6cd446bbd9e3e3f3fd59829b3e3e3dbdcaa82cfcaa3f3f39a4c10e673219a4fe904458921ddcef036b6f8c6da2203998314c9c89a49190c8e1c4ca0b555810f1a27b43514a496cd2f4a091444a06c84a9eb9a610b2febdb8f391c3723a1f797d5bbfd6aff69fa2d4b4d05b30422db82ca50874c2e28b9a32c251408c6e949351148da816b817361acdc2d18855c4b9bcd829b810a5c8b1535e10aa1f2d52ec9417a4084d04f21342020e24656510118abe202e6260198d172405940b2e6094311ab342439de827f97c0715a60514162328aa9a0b589e90f43c809ef30e147ace568b79248b91e4ee940745a49f1f7414ab39566bb3234987538d0d0882351ae4d7290f4aaa9f4f9be2a3c684cc9df2a070e01e59acd626967b2475b1531ed412d4110966870c90bca8372705da49b7dfc3a85759b7402cee357d60ca7282268a85a34d25a14643d374c299a68f498d03982a178d52a5ac34d1323b4c55841c26aea6694dd30e063055282d556a5593101308826088411004c1279e148c92dc722440c121b530e629c6928c224f45ba090f24214d302626666a999189be59aa33e8961535479bd41f62281cacfa02cd92a6a94b930e53af00cb0b0c962f3831d8d02fa8354ba67a6405c1c2238666a2c30308754c052db469c280c90a45a3c245f511244dedf1a5694a1355f24c34aba945936d400a576762942913240e181563c90913c024e10284d45439583475609a42c1d425476456a05d2a92aac57403532a4b9a8098a8d4a90a074a1378a546575312204d1b98b28e1c63f2529d2817ba95d5d464d5f4a6890ce5286aaca0b5c5e2042d4f3f70b72c1c292031136767c9d397a6200430116902a3d5948149004c17c7d3e540902215e7c8cc8a5c1aae344d6eba74502bd1518b6069a255a20f8aa6060c69ea6172a149c694e2a986d0a4a3561fe00f759d873a38c3f55ee1583ccca63c3c87fadd6f7f8715f61b76cabaf81c56018c1f56c2ca5384bd8d7658c9b39f04ecc1df250568481e11b0071f5686d6fca12ebefe71b6ebf3a12e9690f5b0b447f70eed6aad328c4958376784c172ce9ae7ac79188e658574d6f8ce485bee6a3feb6a3feb937f9188fd07dd6a0c9648ff56cd1836ff5806dbf973ac5e7732d7f5da6bf9c7debeb5b15a4b9ed8e7acf7e658f9c99d81cc90ef9393ec67c8ed865cda0df7ef131e266b284f52976709d97dd22f0c3626f118e7596b7ea5f9573fc1cf786bcdafaa02ec67bea5b7e558bc3c3956075fffa66fce12faeaabb7def907b53e4bc8b2e531ceaf6a0576c3decec0f1499dd929eb60ce7989726aad9987a9f7616f9fbfddb09204af36e7eb2ca7e4097f27552599d5ddcfea6c98d31af55dc23ee707f5f3f2b4464afdfbea2e392ce71284d10e1b31df7b731ee65ec99cb8a8d0a2a36f49b385aa6b51b2eabcefbcc55d6e740474cae3e2d5795c8cf0b824f1b854edfc34b444e0f3fad696b0d80a5590c81e8160b8f37b6b51045f14f58c0449734451ebe494da1e550d5f4fdbc9d7509eb6eb9c16d7cb5a923a4fea9060c943be988105812166edd7af5504b5fec487cdf868dbf95a92d8115f4306abc5d1669f842e775edb5889a1b43b3b1d52471c22417dd082670996faf9bd382301fb0f7ab59a483c3f10f6f613fffb6d2dae7fba24511ff6a07d10c422605f45ab43c2ece7d1067bf0bf59fd9c6f3f0c46f463ade1cbc6a72305c21f4b9efcf5f193ba14cb07eb5f51bf058145f0ed917efe96c81e595c98f339821e1e55057c3a0c45b13c4bc83a892a3b3f51873d83a53daa157c25ed61a8b120dffd6c98a3e9c927dd5eb1d2edf318073c2b563ae555d9e255317265c815a57e858867850dcf0a56a7a508482d5e951ebc2a3778559678558cacb9c37c7a83d56bb741d63f4dd85e757dadc54f04d6d4a218966738334920f5eba7e2d7eb873c94b2e978d791d6d7e2d79908cc1390e2d3e75f82f7f02b45604dfd595b902c79c452021fb726fd4a65c49adff320cfa027d548ffbe3ea955b557ad58212dd5aaeac6ffc66f2fc09adff7dd31c81af5f1e9c87f1cc7f1635648fcf12dd1f87cfc3c6e3062f5f1ab0e2bc4c998acc70a8974ccf9206b7ecf67168080cd327880d9833c5f3f6c26fec8cfa02c8adc82ff5e9c517086d40f8e1b845ae7ba756c5be29925baf766703dc8fdfbd2c3e2d5f73d87f0b801b6b80c6c880b3f082ffe6f768d6a05d8125913638bb326a6f9cebe9b67dfbd7696c59a2390f969e73d5b101cc1fc64ec7b32d633ad6d2db2c3f89371b2e2a79f699a3ac89869dab76f41b7c0ac419edc820ebe05225bb05b4c114c11b2eceffbd0da4ac27e55a350552b489a4a2489fcd6ccd1236a51d73e812110909487c5aaeb07f5672c55bd2ac003b56b926280492be401db4dd81efefd3aa94385c21ff57fa38d4797226a6845d8d1023967fc22f0ed566905e09b90750b3e1e251002db3db871def41aa77b703d90df44d8bf3144ad965e0cf3e0f66ce620eb9fe4f5b9b987b94403d7da04051d805ee0837d14101404e2f68058c05b59a7bc294afaed94370549b751422d858f5a901b2cd8a0fd90b1658a8b5a9829379a09d6fc8c29a3630514ac6aba2a5f785f496abb213f2b00f94183a386c40465927eb2a414d170484151d3d286c757102da32fb433576a2054d5a296fc7015910245dbd271a4e9674d085e5530682454a9a07db9a90139f303660c8de8aac6cb52cb9a4293c18446c50809513f2ff058314211a5ad2820d09a446191f482559ada93ae1f386168bc2d35143d314e7edc1cf9612324490f24a79a0c1162f062fcb4c02342210e8c1602b6c5ce1bd4ccbf0c7600fbf14790a4d6d9e69c73c621f87da30de71b729e7398479b0dabfef468d37abfc5fdd4d1b1b7529d6dbacca0fefcb6d9ac87b61dd88fbf82fc9ca7e3931d90f4ea689e6736fdba0c4991ea9c9c1aa78f80893f96e26883e50c1c1c43c4f80801da7329fe19e481e9458a1ffe86bd0474b715464511a69f4744e6e5d6a568a23cc1a73cf86df7c3a588fbf5033ca4edb6daf46925a1d87de4ee28fce1cf48b74f4e26a0c1ebc2f1ba5ef0ba5070b1e1716df1b8baf0b8aef0b8785c551ec8e82c8a65466b57020e1b3e6c5cd0edd350032f5353907430949cc0f723c243b694b40dc710dacc224711b99f4355f3130fe9d53ecf24bddaea15a457434abd5afc1af870b53fc3378bff766defac3a7ab53d7b731de3bf39fbd53a6e50bf190ef18ef432b3cc2c6ca4e3c743ae57c77fb7ee151e72953a781fbc4b1dff55ba6fab3a7efbc4eeae526573ebf7f11b365ff6c9adaa3936a7ed1b28ce100670af737a43fc177f14ef462e9b567bf19703660e142784f53c740131e1ba0164029708405264d8298f4b06ee91c5627943a7bc316ec6a431cf9067c823a23ccd33247d6badec02cd4e6badad92010e2a334f24c4400147cf48a182a32a8a8a31265821012750507159f2510403aba7c425a409ef3655e501142df860b244a5242616660d950a1e31c8cc1043a9b8e0f2ba210385a82e1da66b29c78da919452a14f1e045ae31a2c1546bc79ce9f6d174fbe15379d23f295cb71a7bd8416128bd236f165b211c7eb8ef463fd4fa77031d97c50399353d5a98f2e0d5462a6c6344b7f191d79cf150c303190e3d7a78e38b736e856ad9e3e10b79bf72023c91e11545135dd7cf12b4d76ba518e0bf1f98c7097cb786f443984d7d428ac12dcf210f5848fadcc315991fbc187fa32d0c31b7f80b113e38da7e7fb6528cbfd146a9193e0d617b3d877a1d6d64497edf689bd10ff767f443f81750b16245884a3fdcaff44318eb5b6b716f2e7200e202dd077181c2dfe268db7de4a0fee6e1f37184d6b57e06d6a6bf6a31a41fc2907e08f71e6dbbebdf9cd791833ada72d7bf476ec31fc711e16883f15b35c6b8d210a65fd7d2831a27c4eefaf518628b6116c5b789267aa568a2eb32a41f72490263ab616049bfdf95d2aa61f8c38ead5971493fd017d568d932e6c4f702be59acc6108d9181050b16b0f2a8550bab2d2d5a5a5dd088f72a4bdeda0ab7beaebeca625a6925f50c9df2b4a86855c1d8f4c33769142d295ba30cf54c1454a8eaf1dc5031c4842a2838846821a9d02fb022658431bb9e0d24b7539e16ee6ae1ee08668fb7c2170f0b8e8942d69831ab052c18cab8b8f254d4460d182516c8a8c83a91e6c8982818852f4878146fd2d15585309aa9cabae92c17233503a22a94c548b3476a2d16596cfaf9415fa69852a24489125a1a9add7ae9d67e685f56ad8ab8bc39b302ea052a2f68407320a1a205020b2ab3c742891225a6921a98a4ab9c3925e487943164b270197962599889e294e6880a6cc0dc10c1fcd0e9a2a1531ed6169695984d7d420b5a4bc2f2cf6c8284a4d83c8104498a01f8f871c8f18f1483f0f1eb500cf2e39d419004f819a4717428807cd38839a5b99854a6111989a5e57e78b17a583d27b3092f8c8e176647c51323c5040408276108620bf9e757fffb0dfd7bbb143a5120dacf9c0e3ea517444085240a443b589edf83d83481dc20a203bd3ec6b3baa184126a2fc75a2f0b525dc8063c1554f0bebce17df1e27dc9e27db9f2b2f332a4e32773f6c865b473ce7fe4e2efabbb4b6e4d30ff20efe7c76f5270675ccf6296f4419e3e27171fe308d03a42a04680769efb24be0fff7effb65a58fefd556c61d92a4d3f79c75dbc3a7e327cf0f5e3d1f67df83bdb6a61a258e62fe8c9b675764d8424be12ac97ccce2f44710e1e4b1efd24c2ff3e0c1a741d723b19440ebb0cb81d15871d871d871d871d875db70fc67658f725cb6de86db869d065b8ca808b51c06701d0c02d2816eb4141411bc397b6318d21a793d2e9743a0c3bbd9b8adbed76dbd9b975e8e9e474743772b95cee8a431a0e5f1cbe387c71f8e2f045e2aebe30e4767a3b371d1d79f581e683a1571c0e87c3e96e1a808d9b5ee99c5df8b091dfad13c2be74523a9d4e47c2723715b7dbed9633f672e3ed86ee900b3be472871cd821873be43eaec3ed605fb0dcd81b6f5ce70108acbbdd6eb7d3e196c21b240e870bf755e677eb30276f9c4e4aa7d3e9743771a7e276bbdd6e1d7afaab83950ebd0ebd0ebd0ebd0e3d9db3bbab8d1377fa6b57f0a17ed52f8c31aebbf0ee76dded7639ec81cfefd6210cc4e14da7d3e974e22deb54dc6eb7dbed03afbe7ae12deb827805dc5c43e672e50db27ed52f10c45d5921f1ed95bdb25776d47d3b299d4ea7d3e1af13fc76b8005bddbe01b00ce0d5ed1f60eb00db025e67274f9a6e1f01a3ad769e2f2a840021a16bab5008e311d169697b562843a739ddf6cc7f99ac97cbd99ccd99fdb439b1f25c759ce3c1b29cc7623d3d3e3e14f493827ef2f4702edbdebda027c902d95fd272e3aac75697eaf67b8c8c21c6fe953d1ea090e7bde1faad5b1e1161c71f765c9e634f4ee5c012a594564a8226308320129c2805822008e61d4561903323d86001cef8ee110882200882678858dc5a2b78e64664491908a433e302900ed24cdfea27f9527690399df2cc6c098198e9c5626fc64907c10afe19b3c9809e48f10422a824a72124ef946786461112d629cf8c8bd815b93be57dc1a1f1a5a647168be52fab2f2b5f6eff6ba8403683b1ac1790187cde7796a16f9006e51f675b9c8dbff78c6a203e8b200df6f30fc21b068a63beb10eded94e17ff753ad9f3ac7e39d4e0f761fc7d1883f803c150e70d8e7ba6c2c77d16a106e36b2a44a969aba9df7e18566a6157d6cb5efbf9c138f69a838053f7ba35106dbbdf590fea5543bd40a802d9a00bf4d5d60aea83333ca31fea8fb3a02d542f002b9015750ffbbefcce72effbe377e71d56b0dfbfe559f6faf669df548759ac74c3f0d70b0462f76f76d25dafbc83331c660cddce72687c298951fb028244fbd2d1e2078758e44ea7bcaf10be52200d40cd51d9f562a682d163712180aa170168c20200438e7a7c14f1b05023a9030b2c90385c178c6465bc8e3694b1c269206519c888c49df2ca68a9328a1dc1f003b7933bd2493222cbbc789153e6840b5857082396199c4ac6160282989ba1c920c108c9a80021bb710166cdf8b818e124352ea65e3b94ac92d7128c5af2bc92883c287d315ed756d70bfdeb94d7c5a69fe4d3b2ec4a8adffd3abb57f76dadb5d55a6ba959797b7f216ad7a1c618d7ff66222a880fcc63a8b938daa8354550ebcf1c84a32deb113a8ba07e71ccbfb7dd7bef9d39bffa33ad16a6b94d97b34d2fd00acec71024d7e468db5d1c39d83b9b57ce39e73a3a9c8f2176d7196dbb8f2307b60c1b01cba939393939393ba34dfc2cea122c4f3ceef09c31c4ee3ba30d0327470ec818d71937d0b17104bd5767a7eeececececd01bc2f263186df9752e773839863875c2ac533da871fa07fb3c2244139d565e638bd8fb6bfe7c2dc6f7f6fc5f981f0c71df98e73a6eb0b32df72d1b512bb51f1e6d19708d5d0d765e3f1ecb21d72b765e87fc9cef60a7d4e162c8f7ce39233a20737848923219496abdf70f75f1ebdebb8a6588dde9073df23c8efaf36c04f939afc70eb2e6e58890db6acf7fb93eeb1df3f87a7c5bfef1873a9977c6fd760cb13f60db5db4ed3e7e9e8db6dd731962f771ebf0ad53a90883953c22c4ce673adc56c70bffc6335bc623c0321cea75b40d753bde10864b1edbbd1fb0ed7edfb67b9c4ec710fb033b746d95ada8e4ab183162c810d5000001014317002020100a078442490cc3309891ed031480086da83c543c30a149e2602007611004311085800c02300c008c3106198420c2f4010a7538a0c87686002c24915cad70fb31c2b3644fce5a1857f931604fc506375eea4084c50fa00ece375e5eca111e8c02bfde577ece300782a70c415f536f5783312640a521ce698b2146cde8ad987b3cf62e5f15d82309bf5a911798959f9a923402f8875fb9fb617b0c7e5857be73ca9ecce511a0f7de3449d89c67a3692957d94c0da1524835dbd3879efca6057b8b573542ac76b6590d0f0f7877a52c9ed471b0612fb1c04f5556354cd73f391004924684a8a275c06c60eef2da0a7f6c78ae761d45628446c385c8223815fffa14ab9cc0cc8ca67999944d09c1eaffaadc867fe14d00a9df928a45a3e00f11404dd8e942ec74432c7083b8e38c4e2c84903a9197d584cf9eb9f133bf9a2f8b52399949bd23903e3851f40721d0793e63e82943244408ff7a8dbe75ba749f6c4fcc819dfccdc5e936187de5c981a3e73087ec321280de12e6911bbef5a18950f8af7f2d66ca62139814d1448ba8634083bd74b140a08f3ad831fec2b911209e9b92e2c35c3296c527e15e74798e4e7ed7924721a2b6900884ba61847519880fa129351b2d31c7a31436b22b8c164dc4e7fc554cbee9192315d3515065006eb329ce285a3c3ad51725a26f85079deaa15223488453723ff303dee26b2e01b8fddee2f3c1c86620561f3ffc2d6b11a2a83eb1699610dc0f9b1c460a0fd341d8d42062fa97578c196340569048b512e16297308b4e4f42da1c4a8b59c0c097c026bdaeb02529250f4a121a35d0b7a32683d536eaad2c3aa35b513e070699afa5a67d96372e0183dc583a1803dd02fdd06c92730b232b219b37d2de0ed78d0dad01dee99f5cce9c713a96ec8e88ce6793b183a8c48f6db9292de423dd7caa30b3d28a1675224e9266ac6b0757231555c6378e4ab12bfe90dcead57386c7494fd1bb30101d571c8bde5d9b43bbb0d477a1d164bcb733f1273035b3609795a7d8cfe374154b03577e795eba187cb3dda9e6c88ca625ff657fb026165f9d9769157409429d854bb132335b67ad626aefbcbbb3b880c2827d9d6481d734bb3b93583cdbc6e093a1508be8e4d1972c458a508fcca83b7e7aa93dc55eae836df63982ea4dffb612246e0622fa81b12a29ba0245f443e5409f7024b5799371358e281ecf45f7a184645e1b06785dbdd562214ec948c58ba8699ffc4a24a802589198671bb2f0c778ea6bb4b46522d8e0f8e2fd769a9dd670734b384d876abd6ab145da3c2ad3a9327e47a2f36abd153be759ef6abd97f53ac1cdb1dea4393bac372baef954262829cf9f5a0513360c6b30c0d34d0f10b87a0e3cb969b329f95ddb1584f756b5f858c50dce26a9d497183f45e8e47893c5ec005442670bfa467b61a94b1b8d693efc3b8ea1a96844ccde569235dd6e56defd5d7281ad32a5bf1b8be4c5d3885ca17b3369837a8af2ac8ef34cd0492f0b4dfd6dd5493964357ea183f6ecefbe8586868766799b32b1b8c303a32fe8c4f3bbe8fa5ba0a2e301a0508dc772f845111ef520b9763e59d778cc5a81a2333a97b3e7a6c15d24d79f5d7d6470d9bd011b091f09af85363f948ef1334be1acc37878535bbb13560b417225a4c3664dbb21c1b95b855bf1c0e13fd22f1d886ef4f05414bee60db5e9efa3a4bc6cbc540ada19297415dba6f86ffdaee4350792e8795f713b5aeb1951bf89d2a887c157156ee40fd689e040d94b36283ec92f290020eba374c4341f3251f81a56486975fa8525d027b9fba2165ee9137c53ca0631d288c964a62e0b26e913786a01cefc61012a4c1e45108b4eb4891d208d38e09fbb2e9afe693e996c9d2183e02dd068382fe2c3d39cb498f9bf2f6f5d1cba98508449eb87a94b16670d15fcdb9e0917408cef07be577b077235d686a0ec5462d3f619d512e339975cbd4f848f4039e5d725f8e92d43cbb307b6ff51ea27f877c848b59e57d15b593186224479b1ce853b0aed1b160ceae2204edf5296d10ffdcdbc1f8aadd24b1b3348c1d0f4a24f8943e99c31ae0aaf10f80c84ffbb1787cd2893a32f474c68647a1abad87f7a501689ab7009405d166fc51b40a33dbd24ad3e52c42d289b40917e3e4adbf01fc17a5049b64e81a93c72c7c25c106fdd2973789cb95fb031f27a7f9d0b2db1303b9dde3a42f466543f2eadbcbd4ef9945bd92bdc07f06bbfa6c40b5d94a0636fa1f639de666619021e2a976e4dea4405717f8504306ffd64b01690fa3897062f56c62888e6bc461db0227174747375bdc004e2e740a89eefcbe85aa2a60070c30821e33119a21df8259129b1c528b7ee8147a141267428bb8fc2b27f0ec388587bb1db6d6bf103d20be54669720a3376c150ead4354601e561d999d6a2771036e8a5c3c27d11037dab7dd2cc46fe151ddacb5a9fe7243c559696d70d256b555c5ec0bca067a05bd36a32bb437182b9aa9381f43be850d38e5cfa05a1c9dbc1e33ed66ef8540f9d720ae04d4e217481096106108068734042e083805d968111efc0c5413e14b97db2ae44b9957ee9ff7493d5caf0b5a4a35ceba6363b8d9560b4eb6a39b52a04b3b89a5677555c086bca448a5ae15068aa81041a0287a6994e48a1506bc2b32115adfa408c3b82dab035282ebcebffc7b41dd3dc340f07817342f858f3831a41126ab119c48064e6a2c35d2427277228080a415b8e64510f50089ac38c1485812168a519091a0243d290033974048442330e49511fb8103462408ac6f010b4a4810405ad9d19b037ff6fea1d4167bfd248027fee55dfe99cdba97ce461090f460c73d070ee76df6f0c8060a0ca38db6a6aefc424c76cbdcf6ccd441ac4b65853eb2dcd49948d4f3ccc6182e8790b8107a68dcb10cb75cd57813247f2ace9e7e99852caf7d0ef70a698678fc35404e21b4c223baeb3f88239e09737b3a6ae58c86fdbea8633c90c2c3fcc9a6b7b448dd618ed85497c4d6212fbcb13d0b17983bc839c73143cb8b257c42f81e73611ec3a3ba080b928988ed46907e964586d18a97273238e528367efbb331243f57976b00ea27f58bb57fa67206145d83c5538a4f0a503f21b5094dc65c2eb7ffcb62b042ae2ae4312a9ce7e93b4d9fa40fd244e0f93ed13e42377da52402c0e099cf73da6d0383b2893ddb98de920c02bac4e86449167aa2018583f9940b15fa5dc8f4c6f911c882a945e7262394168ce879f0860cc05e7b4a43317b8f79e01d07674a507ddc1d91088041581ad0fa22703222784fe9ef65922fd33351dc16a2f78eb16ef28f7256f11adcd01f0a41129c123768fe49cb2d89154caf262679c93564ee7c7473dc938e576028426924d386322f21037c77b29ef1f816d4ddb938d7a3db7a0a592205ba0cc736b914bc589f1e06a0a1ee68cbd5cc30dbace9b46cf8b88b1003c1a6ec11c40f11d093f7f11e21338672b05287923f68ddfbdaf90fe0971f6f0215eb912b2dcbf73ba7158d1208b363c5f163919fa697aa8ff27619e671e9ecaac001fd71e26a0f04a6f254182e72a3513c9bc09e0975ff5f753fff47f4fd62d8614c465ab5898d41864b591f76acba1e4677804cce1de43c15d888cdb5ea33700119080dc58f92fec72d429919ee9a2158cc7dfcc0c47f1f8fa25f19e20d72db782c679c8514d541c311e2b307226a053140d1767c7988e1cddc45b1da04f7b4314a68b8b4359bc370d33d4dec54a5ce4fe86b6a4c1074ea2f66ef4fa28690122cb36cca842cc83c6d0f1abfc81d4ce2e48b6cea667582a0c755ee6cf4c849ae267d12539f054b3d17453c78459317aed6e6da1199d5af77905829e761bc312bbe548fe240bd0e01f5577a5814fc33a3f786a46e3b4be28ffb5da9afd72719a46b33332f8b2d4d8139ab79cd5465b89dc09f37eae6b4662cbd68b5125dd2ec050e98692261db5fbf5bec991d58c70dee2a32552870a9f137ef3603abd4350415f66278c7a10956581a5136ea3ba51d3f21703d0bcdf80fb462e4034f75042184cd12830f7e834eb3a5f5c4da59473748d3f3cff4a6d0f5883867b8f91421b20b4a249f059d3274585798017ea13658793c2680f3a24ac442acb3b70859f870e3554bb07a11afa6522bf1c74ca2a896e851c7ea791394ee6293333a605b31217dcd91ed85ee8fff8dab61062a189b803031c9b10346f5ae53eb2dbb8a2f24547bebba16f3867ddcc65bfb032149a4ac770be51858508fa278eff17e6e2034ed17af40b05236e6943ef09f5ddfa837797ebffa837a5dce75f508c6fff72ec498cc80c5cb012fbfe23b90ca3f970561eb9110a3e4c47e3ba9ed819cbfa13a53730abb84c6ac3403710fd6783d67c18605d39aee482e81f8c0a72387ea36a4a2c68a7308ad9cc4e4a7aa7c6c67d63fd4b0c4d51fbeb0f86838b3592aa04c89557b311ea7ddd291003813d5bbb75e7ff85e5e9ab3cfe9821b516a618af9a0217c648bd2cc3dceba962ed59f51a73a0749ea86ca1986e90934f44129e7995b3297db3d2e55bf51667c5ead0768f385aeef079165b5534a3ce8c9a8b0c68729b0d8800f38b01af6de4d2a32ba8d2d3c6c1665ea5ca2f7d2f0c8929eb04a96197458dff4b1152b344c6f319a42fe3a410a5bd352617c70bacf2575caca1f45ec3898545d281b1cfe937a8502b24885fcbda98177b2c804563313801e7a236cf36921f6bd3d25969dcfacecbe52a38323b813ceb4dabec3c45ad464882a7387e5964f8d5d5d194150af4ea78c77a5551e7eb8a884696a3d755babbf6f8a754b4e350f4922374d1f42f339203f8f9f171b170e136ee259761df6780e51427d3027b9527031bd2709e7609366f65e3e1fb1157e8e86532b42cdd1b65fe1789f6d0c46ca17432a9683a7c0765877741e4f0c7000266701d5c46f9601620e9c9f301e0da693bdc41eebacb41d6d3c5bcdca5e3411da813eaf3054b9831c0255a988b36877de13fea52fb594081787a3d3965267a521781ed0f1b0fa1f5a6bff9f08a5dde351ae4505de04499b90c69103301c87f10ef2b6811fad06e59006e33f927063fc78a1d138712f63e34fdd5121788eb49b25b3bcc94cd9603af053374289ca7c78347c9634099105e1ba77a132887ffe8fa72590f7d5179e3b522ed22f605b6ec6d83e7fb7fadcf245a19d67351d1a0cb7217fbc0423bef1c868b04f096daccff619fb8948bc769ad098c63bc71e5665c14164ebe93256ae053fc17d96186e2287cd3e62f8f25ea51640e07c875eb275cf499ab19cb4ab0e5f4da6994b826c38f56000fab1d831e38347d6c52c1f5a5751c03c013486eddd6d978742cfcb97156161f0a46d11ec5026d4c0944be8cd5349c611a0f6aad21a28b85b30ed460a647f145f5bf865f9b29f1cda903898a3dfc9bc3cb7be238f790384baa7061ed0ba435377bdd7a957ed7121ed6fd2d22346d96375ac9c83bacd988db3260ce0b39fb1a14dc0f421facb96a6f9cce6d5c92f33b5e4414eb5e56ba68e74a6f28d67d9220a67e1c4082ececfb649077820b0e5ed455bfc877911164394697774e9ba29ef5b88a1e9705e0e1fc3468d20b14a19c2ad3888e4d3ad0e3558ab3ed3b52e9c63ed60b79863ff7cd275226cb76a09e967380a21edebfddeead5f30236c5441baf7b6d63aaa0b9cbba5b48c9b98362816a83c59185326797eb18ea29c63824d0c844307c45e38d6b1da97f4d784d5daf775f60baaecad865995bd652d875224c89c60134f9df5bb3018871e11c0939befa10c3451ffedb08675acc2dac1463d3c14d2426125101cbad886ba1ae9938c7ea609845e419e3b66fec33d7f8e4ce51a5f30f86b875769543018cc8507e7745f26a97f6a88b5672d6e2be078e3c1e01fbfe27b5693fc0b1e2be842abb30ce6cd7fe44f9829580e886046d25d73650ae832c2a84a10e4f08fe792dd2e65ef43bdc67ab60b793cd7db832d969568438ecb425dc63fc5ae785218e27f0370b75c474726d1c3e5ab15ddb9e1adde72795c932b5daf161e9209a481d03a2b4f6ffc72655cab102a36cef500e31b1592bae35fcca8aed5170d405496c463ba4ec318f5c683e009c1d8a514a04252eb387151015c6a33cb97a4cd51b950dc7f4122bdab132747ec01e02cc1534581a242525d021151d96fc43a007e7b08107ac9a0f165f6538e5c01d0c40f24fda584657cb12e033174bd3af921b739f165df535c5c720b6e5889ef26fd25f591e06d32a10f2b68245dc0c42926bbb64c3ae51e1805986fa59aed666e76b70b97f4d43af2cb79521441a9625b44b666b6dc73c8216c3d1c8deba273b98a4613d2d9321ce77956a8390fb33e3178d0b8eb46154530903c95f27ce1d9b8291f8477e718afb757864f1b260cf96ccbe891133d3f20f0832b4a31107834a6601b6b6c21f6c98200ba32a38d98af4ea9782cd98ea80c7f0383bb4753aaeeff15a033342c17bf29d39849b82b1efea32083bc3467f07c2b989df47b26cc4debfe60e769042d4aa16ec096bbe443b7d8d42911ba19ccdb9c68574a5b8789fd8e95a03eeb944ecb11ba9d78c6a888c1bc9913eda16d5757310f0220e9f13f6ad4d7bbd79e188110848f4793dae0239672120baa962a6350e18dbbd0a7e849b5f185211e594d8e6f7fabe0b6f6876e75f13104c2edb6e8a6339a071be82ce9b3d5a880924be8869f713693271a91f736258d0e71cf9046100c26cd756529db53ee5e1b821c1c61c97b37073ed0b5f872691ea8340ab4dd5c705bf011985495e3b5406955f98d4c8ece7f2f608f983fadb24c3f26d3c0b1781485bb2344268b05a85581ef137dd7308d89e1c1ce6638f6b101531946a703d98bc2ed2fb144a8a5667716a305c0fab3e503ce48fc551deca56b66115d49e10c9a94a5f30b02ac952676de4cc8ce950a91a7514ae6c2ff1130c2bd266c79aa85de7a5748299e371c551fac4a829491e0d0dad0974c0ecfb783f820493bfb77efb47861ac7fc61386d740eb4366761ce2f7d3ff9d74e3104d87d175dcb883a861a8000ac7289076b8fd74c28152700eafa34a8b4d4bc2e2fe00ed088cf3c003f711a501970ca77ad5784221af415276734fee3f4ac53719d82c65b3fa22f68586cbbefa20b3eb35990ebc946e74e5e205221043324975705d1d3c9b70374f33a5effcba43c0f3ec645dbf5bddb83645ad1d28251a50ddbc1c551b1310218d66ae8d2989b2d3171c9972408ed2c24fb332822f5b28a095a49924c33b157650435067be424cd8995be34669d5a393005406d969d6ab4cae561fcad8172f1baf914086af74e04aea3c67edf563258ca14adf099f66c38648edf7caa9b1ce53b82cbb727bd0454661ad81fddc3f575137d91e544e74b6709488029f99dd5f8401c47b7cf9ed0b7042a974830fcb4dbc23cb817b78ad455a2ca1924d94be47132102082989d24d9542c29d9e408d984cfb851086450c24040eb00359b287507b4493eab2083013e31a128f0db586350a71687c90c3cf85d86109a3aba61a41264c5f6e5070963adf9b74c217803e5f2008d3bc58622bbccbe5d89d57175266913fbababc46183122ccc25df0a2d0a30c4c83936066c7f074214825fd8e4201093281fd47137fd0fed37a1cda7217226a4ad4303922f613453d7b4ba2ed06d1726636f5f012ffc857e5e6873a5d82adc1f906fd875ff7970ac6924f15ce4be4617551d542de915e3ceb19a896c0cd35b06e5d941105c1edb28aa1f77f1fe3288074b4e33849a5c91118c55475741c21c224dd5ddf925f97df51a7d1aab095b51a1a3317024e52dd8513700a02d151a062efe8275cf4469b559e928feabe13314a267a635352b699c7475c9fa88fff2a6d3cb49d4608309f4ad90d27df63db89001c200d96c0093a52f32cb9a40ceff8ca73fce8296538f8a5243987570025a72af4b27d1fc8a9aa9cc9bb5f08a470dc4a54778e0beacfa6aa485e5f50ed3afc14e966f7d22323230ee6733dfaf4ce7ae505f751048e7a4804ea1da0b59c40a416e33ef492be61df2ba22f948435b091daf749702e799a929ebd937df3227785c07b2cb83de4ed0ba7bcf15144d6666024ac4d5d5788d460a0e53500b5290ee1f651df05db8e9fae2316f801614bb8b9151fddd015bb2a618b331f4421b110f7b8246cde85857579db682a94b41fb060ca8eb40aafcc7085c69cfb8e414141cc0768ceaadef1eaf4fbd08098e636636a647cc2bc0d01bb20fc1c04fb785961331ff122a1cb600549437c5fc8bd9f2358cd77a6cb0dac07333afd0da16988454f7e5e634230f38fe025d1ed6479dbcb4390d72380209fcc6ea0e62cbf27bcf952d54e570cf770eee44aa66c1666102f572fee8e274bbdba90c38c54e7ca21de418d164b8ab5f0ee17d19093238e0adda5906fc0bdfcb861875d603f428d5f17b78fba77b9e754ea5bc032e3c368052732c68114fed73e9606536472fc73aef69ae0403b8b96ba55f2e904e99dbba05e9bf180d8e944748d58b50683f4fc40cd81eb16407e17407221d3b400ba6deaa211b1168625411eb526f6067f285fc57f436b2a545cf27570ad1e34093a54659fc3f78b6441cb61b2e175cd6d1c1bb54844535c280dae1b68781010c73550dc5f96a9c2dc622eeccc33b39ea5052bb900710390f53406ebb19fa77bf50f27701dcc83e62811c971fe1c7c155445f8841c2b2f9ca3e6149fcb6dfbb80f407e40ca797b04f21757e47b3e4b8e967733862a6b80a7948f1071c798e01076042a40316b621a64c1531fc81dec0f699698b217044f22b596f7a60723942781082cb56d6c6ca16cb585b54342b3b74cb737143e992e5b961f465da7c1e532a0df74647016ad75e621759a29d0da3b100645abc7b995c575e3ad2fcfaadc81132f93d6d2384ffd0fe7c0b71456bbc6424ac8cf3ea6b98aacb17e1662f5ca669cd4547431ced6a073ea5c15bbe206d73be7b84b1cd65580fa6240e210286e0b99f9b11a4ca73064b8e0f1254e160f41e5303ab83bea0682257a774ca0ee55cdcd17e92bbeb09d4e213c91b16174aab31512aa46e372cc0e4c7aeca6ae9f9d70767e9ac2583e9578db59a068a746fddafbd8d5b1e81bdbdb347857ef8b0a2e20ee3f13a7c0106846017c47cc059d39d8a912dd405a6dfe7e234fe4edb600d4c1d900b44c3661fd481bf7024b4cd10c0a233aaf6583d095bcf5d4716132aee201f8345b9092605e428e0cac46a1e903db7a51d982f39372ca05c6827380395f32945e1c75f055e0e11d18dd209611ff87576a5d4b8be507e1dab18fa0033fbcc2e1c9edf41623afd6a941966bd8089a255041ad605b02ec2704c09b67e49855166f7827e0fde923c962f1be22ba756d6e01d0638d23fc964cc64b36080fe453c74849fb5edc6de90d6f773cbeae9a49c7d27be8daf7c189bf40cfa55728dcc4dea4a033574470d07430829d21c5173bd0890def9866def28d60f2161f321c722111183203da5d05ad9c42fd08f1976014ea9a9eab7795aaeb73023aad7797da8cb48a43f4e06b510452db0320be35b485613e94349aa3443c26d4a2cdde1ab34e0ebe7987eb0663776f82e72c462f04148119cdde3a78499512d02d7a624947d115c2eac92a04568f319470ee151c98ee8e151cc11b6a9db186ebee9a0d36e70c88dcecaf241ba2804f2f4aafaf9acdc0ce585e5eca0a993e64306c4ae74291915d1047ffb65c3d3ffeab4ac7253574c4eb6a17c35ebc4201e8549c86e4103108a7dee01bf3201c000d388604b08f7082f30c5b730c78e0226b76c5e10b91bc4310407795cee282314cbc6feae81eb7c94d573c76cbfac591c568880bfec44166fa18bf499eba39155ebb4721604840f2dc9092442e9f996ee4e0eb8dc3db06f2736593f503c89f36c2a2fed54aa2df55f24ba1a97fcf4610001372a110d23d7ee712597266a6bedbf312c8fbc699f52e80fe58dea450fbb8191cc80de2fe08ec8c594287f2344a92dbcdca950c5173dc7059743a4760d659f9ed37beb3b745ada60206b6247b0604575c9e9bea22ca57a474cb5c426c25b77732e9f0e9bdb162e478f4b859759e60516f0c5910d5e5178c01b3ca0b975bacb6d842639549810f64e3a7c60632f21e14bb20a7cd2a24848aaedb3f8614ba94c2b1e7d651da84ce9e1bef1fde36e7c7d51ca7725f7f3ca8dcc47c13c9b125edca972ff7b1584bde27b435d2126d0fee879db8e458b3187641841b8c1c5b557b8c84b7adbb744e42e66d45ac212bc49a619f8496a19c87474ffe25e15aee8db29f725c47f87054620f43a7280b6563ae727ae133e109491f6b1e1a68a2450d91bdcce843a60d7b51fc6ca1da303ca1bd1f7d2367177ffec93dd6272cf371a7b06c65b81489fad1ec018d3d4be4d2bafed968ed3e70e64eeead0827dbc942805261849a32b451cdb489fe5d33eee43eb2b0ee45ec4e7ccfb15505ca084b2918a0e3b953c3ec9a2557ea57f21cf5928b7b2186d4451cec680c059ce0629620c792fee13f55767503d9fdc041029da4103cf9739cc3e657ba1a2a1abcef322f037bd5fb7722437b2a2ed06384ffc329b756171000a619fb6656929b34d8b4ce649eaa7f6e75e77b8d506979ebb4e51f4f5fbf12b31e9ffc4cf9957b61d269275b42e5692f999c5a5dca76ae641769ef9e4cee324ac032caa2c854a334f129f99085e93c73157f9cf5d935818a59fc3e78a78a5b34d5bd14c1fb99a58e40e670de9f84f589b549abf30f3fc911c4f38d16ff6b7a6bb631e73b3ec90d9c45a94efcfda54ec48dfccd78df5a32dd399a355073feb101c50be7f0bec131a86f0dab285a7d7d8a64d2f8a8f2d9063bf4df67fb494e0570ff74f2d547bb12a2966f0d7edc0ebc966d64fa7f12d85c777b1cc42109fbebb1ab592e6362683aba04f5d967d0add643f61d23f00a6530556c68259e75db22a6d64b56f2412bb946c9a01e092bccb991e406264590a53a92dcebb9a7f2d00745e044dcee34a6427763baaaa05251ec72ce515d4bea014f59a7c828f2f293e5d0bf56da0edbf85fa77c3ffc51928fd7b1c5d2ffd11f9cfeacb20cb5df91d61e90a2919eb82d30d4524d15090aeacb08c3c52bb18f132e4d677c2c441fe7305340b51a34272c1e5fd72f66b4da00ebbdad3c4cb37423dae234391a1ce004fd856903db7d306d441db85d9bf6b162c9057fd57b6be01876c0d66a14af9f07a99cc3576f3934d5cfcedacf5c66531ad8025022ffcae30956c698c54801f87d3c73a1b5b57e9cecbc5652b0c74a35c520e055fbb23919394c8b69c718619ff045e1e751d8c0933fb8131579eede7b096c2a38a41a58d513d91dfe953fc84f9e80959ea8ae33606a7a606017440047e4817bbd3d70c2317c2632334efb874e1e28174e1462227fd4cc5324926f4384b2735f054aa7bff2d916d23df5c68aa911a7d97c2ef43f63a7a294c73361b66a871aea8d1589ddf663bd90d8d69f2113d2fe2ef7bf55dcd40eb2f4e005daa047f22bd214aebbd694282407d4ee628ac2bc7f177d80d8255a244d0043c93e199550bf9a63ab7b0238329e9d80d0028ae7b1f89b848ed1d75f3e6f66e2690034fa5970c865e969e52503d63c379603d857f0215876f9ac5e146ce0a034a186781fc7441dbad74f972903a58190f7024c998b2d0535651ffafd42929ae4b698e0904a78a03009a48f0f7f0db1504ea03c48eaa357ca5852fad7bd34fc7c9700b4d51dffa5baa7c272cee15190e7eca4fc72fb9761514af71f9cf5ea3c3504329ba2da253f533a549c011ba60ea897a03c25d0c78fc456fbb7f143231f8ed95eed00990ac976ca01a4d9f432b63ca0f95473a29de3a7c47cc8203ea8f51345a6f077ceff64a16865f7379c08d96704d491c84c08961833f409869f569be556a99d9a9222c180b81f5b3478cf788464f853a1a618c6f3163921bb3445c17db74bcd5c3c6813b691dc2370cc9c169ab91064fa3b7f2d18c9f5efe617287c7b861a255cbe0dc92cf298ee405635107729b8f8eb1dce605ad156794e2cdccff67b4f2b4f7487f8d19f24a090d7382d418667bc836121d169460465319cdb8c121249ce06d7fb5cbc8b179e1567fa043e5296c396accf7d1ab18d1e759b14b1845dea6fc4754227218d24bb87457bb38d9e128a9b01be953a79cf59601d7392c87b938fa4f744158de2104923b268576dc4a9ed7532d7bdba4a3ba2002ba9dc5716df9274ff8b448536b3f8180ceaad86d80a3d9d21923e823efe19f40d55b3d1b675a75c1143e1632cad71f112be9dea5d5b05505bbba8944257b6bffcedd91533ade4f882501c274e5850461841e3b3fb2cc8e6010586c5b05075de307c3117b47cea70de61582b0aa7de5a4e4403585b924354ec0c529ffd3f3c95645e79958115419b4f496606210d20c02b3033382be706fa91feb2ec6c04a611e7198e85eaa37d46b8d5daff8aaed1b51c061d29f8234de1bed38c8387256dd2fdea4a012a3421410f99384c92b9988dc6ef064dc8202a00af711cba3614f08a2ec853679f770f659b973e2b6fc9c56426d023268f495c61378facdf5a9ebec2c2bfd9b09fcd4059cb306157eacb4f3e3e652c5748c649aa904c5beca7d7ef01d62c668e4a0e6fa1784557829a5777b884d07816965cba77792ca96d7e8566cda285146d9a84a5e49e0c4df8fd2e3332d914f6c2b14c6559409634de0bc4aae740938b46817a49c786173013ddbb5615016afbbc028075876c49ef7d5ebea7fdca0291425a9a16dd33a9e72b85aa0a4e64902d47c7c5e5852cc7219c7692551260ecdea25c2f24050c1e50604252064a200d4736c705cad36c93355f7ff064c9934a6500d01f0b8e49c3f2a49019d77cc5c69a00739e1fcc8b490e4100ae5d2a798587a9ee3fae614002d5ba0f9af1e3b4b80900a96ea7dbe395c22f6315c9dc1b9e0a700e0095bc72c443512fa0969f62a9405cc83a8590d13aa4765c101d0c4aee5d639605b441d14ddd9b017061e94d51b13868914a066b444b351cd9ab00663e991ec88b695d949f9d076177db7c328f0aa137c0b161bc173fbb58f28254a3070694d26f401a14dde164433051972574182ffc1af3e69d1791f7a4e51b798ea7bdd13777ac615c76be6ad556b4669a75354b8d9e541d6d1c0e0fbd28fff93bd46a3966b86820ff5568290f4219bb83813b15fd63095a81bc08a567d7e331328e609e7b7ae06d4612d814e741e91c2f421e8010b6358a8853f3cf90f0ba0a2978082b6d769331306349c43a573c558b762b1896a7bdf6c625269f2a6453495b8423c66088586c4fcb0ee0c93742c8ede0497b1536b3a598dba375915d9d188b10c8bf00e2d99b61e25a9771b26737eaa62f888090e42a8e1091a247b3961f05bb32ddd00dacef386bfcb368e3c7ac0ac1bf7113dbb4b0b6eeaf585df27523c97e7696c566ddb7a4dc430bd2c57a42845d0046a3e42b9e08a032eebd8aad1be4905c6611969703ae65ca3cbb7c5b87de060f7560e39d9349c6d221ab917ea7aa5890dcf7cb1b347e632188714042285feadd953156a8d2396ed7c0536693d664f2423a0a7930d07728bfd6f1aedcd44f02d857466b82858eef25d42754ae299de068042df5e289181c8756a1930adda812558d6424b793f4e88bab358c06a54e0b6c08c9a8062ed7884dd4223ded4a75d427abaf6d26b34165b0c57928caae8e5e960b6004a62b46553da743128772adea58f310afb812a7a08735b0911466bcac895884a2e485f5196c8aa3e5ee7ca6f092476fc86b1a45056cfa1ca1fa284db9b75f16c34386f29e3922b1d6fcb5ac5c8509345175da9a8e0491dbbb5c6042102a22b3e772c094a466ff8cc401b2d702102438702f25ef0e4b33f23d2b277a1135bcecfcb852c5ca448854da465d5d2da6604d20efc0946ad8c8492ebe64d6451a73819a88ba540839f35861af450433efe6d02100b857f7742713b6e91a2b4c0b24d073f7aac4beaa927f7ec7c05b658deb06d160b4fed715b60a035894d40568a1d1252f1730218bd6b8f544995070c71d9c28354beb2f6842f6196b9c4f25b0088c02c9890ed0480d6ef77dc03212e1fea2cb5f0505691798c13b44482f5e164c5179ec7d0c87a4ad62ceab0ddde0b566de0a8e1623414012096fc35ac4b15ac011b7b894dad0420f1ddffda57b053fa121313050bd4f459b867012c07af9838906388c72b88aee4ef30af0e1105a05bebad96cf1d0e339bff536ca32c2850cdadd0d0846d717709469228f50bde3289b585551760ada4da5fa2cd7ee3529c8e90a39a6a108e4b03358dd667ad8262e84a7eb86782d852e804543c8b835d25f71201be6714205b45e78049309f51148a4d24a744710bec8279c5f71a90598db609f81fa4f8e4ffe8c05569ef233a1d21956047fcfc68ed336867ab796ced1ce7ab5bd5729af9ed5754fe1126a67c45e92012a307c08264988cc4eb720c0d2a259b437a5dea21891335d811e41d959728f48f2c59efcee741c31a3d3bfc28b718a648bb9bb0bd0beecb93b01f22b0d036cb54cf6b62f4073fb91aabb57afa5bc316425497c1e69390b82ef7c311d53fc771e04dbd3c6d1ffe81c0a2e5a2f7e51ca4c99cb1b9bdaec4c6418ead4ec9e226d9e82a0a5df57514c69bb3483f9f228b9a33227a2c8ebec49c829d0a460d7d2808199fa5fce0e7f4c9e8841fe13fd9818815ae2ae4cc2d43f7504cb54884393b9cfd57a2219d74f40d9110c882ec8b2e770c81a4dcabeb88c12556e30938ebc7d0025b178c72f14bfdd0800a3e2fc3b882d6970c4f079c778c569a186451d5e2963fecea8fee56ac23fc191dff76018a539195474c225a5cb56de8fed1a94aeebf862f4d024eb27b69ff962cd3d99402b2c07e282bf577f6397364cca6ae0df3967ce35805f7568a7f761e40a74ec6746c2a1c35f4aabeb26ef41725c63e59a453744074af690e0915eb08ae8abb5b3ea44f45293444ad6e91723cea77d64ec51d54b5dbdeff02dd045603e1a93e4705385b8af0590522cb3f8378256a61985d8bd81290ea639c50150a3885656652c5dfea907d363c11159f074885dc19319eb44c91862ac0322121bf99d663ab46bb0e1ce060ce548249a46f36a36e4e367292f2b8634f4a7caa4c225d99ca5d42d9dd4725441f0c0fb3e7849de037aeb7102e4c6e93d12f793686db2cad5064886b3cba87ade1fd0b9e87d5e094e8f870adfdcc1329a05c0fc145993754946d9dbd3b570d14948130628615561960b5d9f2249a5c470088466a811552308c428217d40097ef53d3bea39fc533d042d7ec2c60f5bb26739a09c52f07a4828094f18432256ac78da620e66d72b11e2c368315cb63b2792c4331c993d27aef89299584aaea65475f6dd36b4671e253ab333ae111f2b1c49db2343b82a63b21f3251703444fde4b85c3aeda771c0e455f19fffd3e18dc97d75fcd783e84f2f652d4d2b1c634ff5dab07a080fe966924eb94e1219748e4187c75c99dab2c243f2ec52b91f36c6a82bf377cf312a2d61460ef501421f8d36910002cb0615b2dfc031a6b51ccf69cce3cfb0f5de16387263e741ec1d5b6248a4742ce157429458a04748ea900cb1d7754917be74a58de28f2332c1d34d34509ad707cb753fc552a7eb676c1a50472eb826a330b39e819ccf910a12d5b1951c7968ba4367ab4f6b80febccee7d54b00c395817643c59be14dd18b0b332ba39a524e8c60ea6ec5d955e11aa656eca11c9f93364d3d9807b059c73c93493509b9105ec16964ff6bffa9dc1e034635c7b95ee7bbaf990161635faf715ecefaf8295723ccb4312e25b2f9b0bbe94fd907f26b0123dfd14f292cdcebcec50e4ca8f26debc0d7c8fa5c522604437e605aee24082deff94e88badf3b3cf9e5af5bb502bcaec6210a6f0deafa3dccf6660348c0825a35fb93c463a34cd01c5af93d14fa385228520334cf2f952ee01336e0a92a95817b3abf2c981c9b61db9c1aef881f6a890088ca2de7f3754c9bc491321597c847aa6bad77e1cd225da48f3591b1a040eae7247135f997818b87da2d28a0d4a93bba726c29b848a67d8f46091f9dd16a8210ed58830d302e89460ee57e75e5a764d3975851282caaab59d58b557a03682467b8bfb6fa6765c937a6c825c938474ddec7ab611d0ed8220c9423082f4d623477b580c9edf6666ca80bb4be8ccebe5b3a54c4101838daa6171763bb6812e9c13f17a649a118eba23c89d1a4e0655276df333dc88c9389f6b1a4bf422213dc3c776858beaa4853e3ee73562f03268d48b382e4293503eec34d48649830b80d8900c19abaa59133f39f8784d88ea6ef3297e0fef3f2ab397983a20c1391603689ce5a2e8b711b8ab0c3a82c0dc5ecaf3652c80cedba32c2257312fe105b2b535c7890f252ad539827338130bf36a20cce37246096356a4b6c5615b71c01d67098493274f343a0018036485f75f374ad59074d834ae5d3cd10896185fe61d0ede225f269afc30305b53b52cf7d51703a4ce2213e8a33dcc36e46e4ef4c2e40084184e17886b3d11ce418441d42f551c44af412d1c7ebf3a2e219dfb583553dbe4320f52e7a532dcd4b4d9f20a686e34d7a62304daf311b547670581bb90b4c803187d2b5f46967f1f134c831547dd0e952563dcd7c64c49ea6591cbee390715a53484f2db420e840cf918623ada64d1abee3d8315ad3657c1da6b9d364081941a469978be740568c763ae99be36d8e7ad741f2a6018d0c9183483a5aad24711c8588d39c26e9eb30c44d93a1cbd124d0b68ac3711011a33581f4ed78eb709fc3b91d722c3b0744f862d10c6bdb5e625c7d0b3bde716aa3a50cd16ac584b91b03ba99133009732998dc5b2343b6581dc10bb23a0cd143932d324241c3511e3b5e6a214925e4208246d348e07610c3213687d80e7139c6e4189363ac436c8ee21de27288cf61e31d246269775a88f4d32e948c24d070a3b88d1b9dba9150a44793c11bd321f71de872a0e748efa8b48eb2e869b02123e2d14c0b5f1c6f1dee3bdee178ef70ebe83607de741479d382942470651fa63e920a8ed7e8d1e440d2e1069d9d99d1d2448dd69fdc27196f9c1dabc4a26eb334c5901ecd409211449a66110f87180ef11de21d633bc6e2a8b15a1193093f1cfcaa39b9a0ca0cdb09b46d81cb71e25db1199320f60e69edd1648b8c50a0e194c739dee0a8f70eb85d69a1a4277675ab68cb63c7baed909a8b165a3861c7fbe9340de1f8b5913a29e7dfe0a581908b086dfe47bb235c8163243d0db73cc6e136c73b1cef1def3bfce58a949b032a9364d3d80b57b869d70daa707c2d4a9810601bf573aa5bb675f19e60ef443cc0a40b458c3894a64dc400f6a30abc18ddba854810e32ea641e0254658b43621ca1c23f53438659c1da6d98fd1656a1daf71d3e42f19b1a78196cc3a1eed94f43eb7f1215ee3524fe1463a8bc2587227d0b9fcde7da62408df413296663ae9e778d5862241ec209246ab4912df41761cad09495e6d64a10b8bd21369d02a86c0d1e42919e1a58194848eb4386a1a17d68fb3532a73d44175ea1c054c9802da00e26a5d400cd24a078b275a70e0c0650e74600b3efa9a17d8c6eceda8002b82bd150f8855503490366d0c8e994da66eb41515eda745c3803d029e834d984bb98e361a10d2687c933ba0d69ac8afb66aeee83c3a39f972efbdf7de7b6f296592327b07630640067a895abb226cb556da50a16ae38376b589e1cbb4314b3bcba900ce7674abb7bbe1135323db162420dd36103071ca122687ac2c452c60b234d3414a0c102e605db53e1f4d142bc7b6d5364748271853466880cc74204d595146862754905010031aac12f486421305a14a8912b09cd9e1871f0168a19644030e1d4529204f608010502d6005b19285860524ae30491d3122b5c4f5a0b5272f335440a24bd30d4854a901aa4c1a28237634b181848fcf04248c30c2030b0c31293450c81024c8ccca061e42361e3fd88d8d97902363dbec68f2267aefbda4d2bdf7de9f9dad84156a39884045bab05112c5c3923669a06e20e2080a42f0c06283fc946c98ca711c57c9701cc7711cc7711ca7062c434940d243981374e15265474a0f2b26908a12e5c7b7630533f6470d2d4964aa50404313116a6ce48084c7991ece10e0d361a42aa10490aaab18d0d46460caa1c4465684240907364cc08f04902b3363061c56a8a276a832826603264444590a83648485f14bf27befbdf7869d1717a2d488313a126b3afae1844985344f8ad4c0541be497e3ba17aebeb783da27df16a78bb725689aa94a8689ddb66debecb66ddbb631b933868881f2020d607cc44a00610d8f12aa9eaeb070c11aa2f5e1a0533d4001620515c30b3c20a0c66c0831382891030e69848c1fd2bdf7de7bc32e8b6f1963bb274598a42033a3b4830c245362601a83a4082d6b6a20c0276baa5b962ecea64ac859510ea238e17264ca102c0cf144238a0e3d6499206582f8dd68a30259dfd2eebd37ec2e1a21ee3ddab66ddbb6adb3db966e8cd3113589abad0a4a0b41a0c921075403667872450c112f3870dc7c475b289b176e1a2cf7b670af573247d424aebe4eb139a2371df4b6b90c74db9a383533e86dab367c4b37c68b90232b4b8c929c9880a9a47a7059c28648124e4d949bcfc807aa26c9b7658c1a267defbd5d4dca963137a0408c95982b393479d2c1c30e234ab5156a2d7c35085065b4c6870d5382c4b234995192250619bcb880268bd796b68f46fd811bf2020f6b962025058940932223cc18613982c6e6a8c8e9aea11a39259a2ad5bd6980b8d755b9dc7b6fd8a9c962b78cb1a286877b5dd55e4161a2c3862c23666891e4e8ea4a13aa285fb0a25a5fccdbd63875639050991a284ab031e2c9123125273833a6062b4a48b2442fcb48572a5154d4a648193265702cfd6032440c15149ba5561bbff7de7beffd8a8395a1c8103c082142260a0fd30b4f418899f24448cd49c7664bc009558a40c148182343a610493c524893e3862e55d0d41e6b8322a86cc991e50508140e46b4708407224598b05268adb1f88614b804c1a254a4872236803961480a505950c0260aa88662008d962941b498a15a42bb404305303baaac515ae343005e9a266f62a385082e49481802a682246ab01183c1869a33ae5a8fa6da86a2a0449421544f985ca80a410f99133440001922aa2625a2f13445b8bc334d9d8c138e20d14386a406098c285e8e2ce1248490183c33f80b72efbdf7deb0bb47d424bc2b344b98cee810f2c3d30d544e6e80baf1a4c8d41217f7e709bc325f7d9852c978db15bd6d9bb56bc06d735bedf6d672dc09b82f7f7db868b67463bc059ba4203b4089896195004b0d1a358a60c8f221895553ad2de1c40c45d5d0d4430f2b48466618e9d064052082a0a1c80f58515a619c6a9a34422ed08dcd12375c0f3968be3879ed08b7841123492e9a2b5b15f4e3cc933335f87c1a809e56cef43863c3ff833245194ccbaea494016530d7c69a410293a86174608e08bb0226a582e06d072b46534c78149899d924f8464f2b6684e88d77c03ecc2899c961c3be5c18ff98a9619be8a6d467ad77a4e544e16a8dccbb5a4247777583bb0a42b65d61c971afac20d92b2948d576334071627415c3e7c25592a3ea5744648e5f1c10ed4ac815901a5726e88d9f862ba51af5ea065219344a65c61cbdb0ab0c9426f5b452668832537ae30f32c1ae0b37f10508bb9676dd74cfa3de1d2f8ca0172127be0081b65993a53f609f6a9a4331831ccf73cf8ef73d114690b69bb3e88169ec405e860e43a1440cc7dd99de7ecbb3daf1963e31367ddff52db7057cf4fc712fd4bf25a8d982de25edd67fe32ec776e9f2e54b95de98628ce5514e05ab55264b0505d08f19f47eeba589def8718841efc75a667ae377e105bd1f4f25d11bbfd411cc04bb9e56ca38e98dcb1031fa59b26554b8e2b8c0fe870c953ea1a715326cc858ed28ea4c6e559f2c55ba93ca27c60c1d6405ef72860eb282e73531a9d36a2fbdd7bddabb7196e3aa53ce4913284ea83cd94b37eed2ce7a3e321f239f241f994f0f1f258eeba8f75d0a4e497599fa4205866048c5f152b2c7a987484f921ea726b3d84c63f10508a5fd6fa85cd1fe2d2887e1884495474afbbb78a2726c4e4e759a03d6b43fbd7298f360697f9e9ac37cf718697fdb13bbf6deeaf47e7f8133f544b9dd3c50245b2e1d1e9fecba81b9940b4deff2c5abae7c1271a115de7912f7265056505901be900758546ee449dec381507a854a7551fa42abf47cfa447bb8107da2402891244f4d9ea008d1ae0a5b612579e02cb6eff2524c0c889a1fe55116b890337914c8345faffd697d5981981cc5b0822fa65993d96c36cbd9898a19c562b1986b87c331114c84b8e06a4d09f05b61e847f77261fc7de1e1e2503cc15d1720a4381d3a263928ad06921a515c94733561264048b8d393560309a827ad06138f1f7a633b04733cf47eac9494a3c6118e1a45346a48341a4fda474f1a0d206844d900da6929d975b6f489e16f9fc86d75a518d6ba5bff1140fb2069adb573cab5b47ed5e613fae3dee338afe33e6bbd8efb8ebb1fa59bad55b476ce6d9bdb4491046ff36d9ddd2d96eabb485454cefdcdb556dafdf80449e9938d4e4825ed4f923d9c45c77d7dfae5fbc581fc52398cca61fe05e99351e97d9164cee24bfa94be1ef69188425dcbc9f4059c3f5b47fb84b97532a7a8e734e5a5f9a0ba13fa83aa4263ad02f9931f94f6fbddefd1eadedfa3d5ed381c16d238e93dd6462b1c261d2a2ee452aef38475755555f5e50bdd3856a1a63856da1fc70ae70aa7e62c5e4757d9fdae3890ff07e5302887f995a830788f565657636dbc511d7d1dab2fa04f8cf9db134dfbdb8324f51a86759bdb2c37187656a776dc33b64ce4312ce99be7d907af6f44b6eca60a22fbfe558c614b2f2791535be2a90213b9b6ed897cbbde3df71d7cef75dce7dd4ccee7ecbc0ffc3a9188f4c4fa5ba640d781ade0eb556d0d3dcf7af527dade1fa4d55aa7b3f444a2d1e7043fd1fe96292076d0719b7fe8986675d03df714e838279a53fbfbfd799f68fbfb3334119de227c2c819abbf7522f05a104fffc6adfc3ea0effe80f6f23a290604c939371833e808e6ca1d3e87c1d4dd7bdf6f3b35e79c737a4e28a5943a1877f730774b606aad9683d26eedadddbbedcda90c5a82bbe7c230072dc1e01772620c1d0d3ec87da739eec3ef7418963e31c40f9f48fca6b47fe8f5936dd89dd2d74ee9bc4710a565dcd90bf7a26cb535d8a030367c4f15c745e2512787eacbc9464a8e3a1739afc36ddd2b01bf50fc8fa90a7d4c7ae67473e5ab54020f137a9c80828fa51f29a80024df20f9ae9073efbd3ee6bd42dea914edbfbd4975e29b7db32a04ab409f930fc72f0fe0fcd92d2c13e63bd7896371f3772ec095f3fbeaf99bd353874e1819ab403ad948498d11622e747e271b1dbd0b25e4287e1ef864ac56f24ee5ebc3fde17211f3ed728118f30d02e72bc417cbc957ea66c1c957cbdd325578d4549182dbc354e17f932f96a902e7269d2773936c858b9d1f73936cc8c5ce8be1ce832260ddbd974578e9ae6cda79f072d53a9d971b2d16ff2bc464c0ebfdef9629b4f3feaf3ce701b66da702d15bc4e513fa4655a12f3681fcbb0ee32ff681fdd7fb8b691761707a4e2ac6c87a5c728bbe58d4382363375258379588a64fc6805cf5a84afa42456f0b92b43f491ac99c857d98756ac55cfe6d01fd413248869c201af00c786397757f2f739e2a5adc6fdf81f71db77965577615e8c64b3a55e03da42f114901aedccaa10ab4ed8e680cf58a4e2c838c604f24a2dad3b5ec386fd26facef5efac4f0af4fe4a5ed01fc8b896c4754adb55524f23d435722eba48fcf04c81fbf03f143b21c6d88655776158808a4d66df7170c184a5ddc40477b5666655eba7b1589b85a9dccafb5d66ac168fad65a7baf2ff9929e7fefdd4422bb51284db78d13892ab767add689441eda1c84c41389bed1963e449bf75cb9d927e29c74feb2fdef7db89fa1bfd203b68471427ba59d8271e296db4e6910049af53978250cb8260d8d158ed050c242c346519b2231638a90282aa20808ee0c172f3c6c3062466681590e188014dd48e107155ad10eb4222a413c10ac1cc7d1bae5b0e3386e0cc779d933e17d2ff0b671a1d5c6719bb78d4a2cfece353555673f04f9f0ff21c8c70f57c4093d694545b4a827ad680905124c1fb4b3d9e2849eb3d9c2fefd7b6fe95fda99fdebd5de8d83c0125cea7745706bb2ec08520228085a510924247d25d08a8e68454743602ecb9e41fa59b24aa84181e33835373a353b6cac09c371377ad2623f28b9629f30a8272d268516abe153a0c5906ca1c58ad0622c6465d1623fa21c81473d69b11c5608be7ad262475959377e966cd6988ac583844a668dac92610326a142c312353cb181871244808491d15841cc111d6a7c500384e638d8ff6465654de9fd2b5830e21eecf2f620976b74c09dea8cf53705d0b734054c57b07a186a697d4aab05d2f3573419807e269a3eb156157a8a1b4c29ba96257620af15682f6f6568c2b7ad0ccc9542737906e9af135f6cde0bec303278bf40fa94d6addb9cd6d96d23d00a1c20484ecfc4ffac6802dfcbd381aa971c65034ea793b650a04edd4a960daf5eb362da2a65372d9db53039ab8e89d28daa3e17e57e1d8a8bd56a6b4f355d7f9b595badeef5cae4b4d52a5d7fd34f94d62a6e3a0bef660b1dfa9dd578039c2009f3edb2bac1f6e5975f1b982decd37fa2ab8ec6d19d0b814f5ce64ae16f97799d2c045acbae7ebdf7de7befbdf7de7befa55a2a550553c1d4a5ba746574feeea01ee03f6947e704440a909a4e4b94a70a0e8c6c80240c4abef03e70024315683ee8dd2fa4af97e759bf16245f5027e25c7c3101b17e7d4bc2b01d07ded773c6a51f1130284dd09a20358e01fc817d3b637aced0d385e6052ee4a2cff6d348d6b9e8de7b2ecb3a17dccfbc47e8c0632ebaf7f2d1900b4e04abeffbc4a04cfa96b5dc23f86c2507dc4fdd0176d1fd9c2df6f63e313ebd952090fa964dddfc0baaa5319d2b80e9530d14b3356021018cae404f1a094eb6d71b4c6fdb9718e8db7518bf5eff30d8f6f47699b6be6edf6de1cf2a84ef4db9bb922c370e4bd02bb94edf6fe55981b67263a06728e93d5fc69076d22d9b2b60900e54532824382575d128f4a425296990fe9701d53c556f0fccd89d7efdeb7b5ec7e703f2c10fb3f764be89d17aef6603f049229a15e63dd47518bf5eff1ba6c3b0f4b9c1e47b4fbef7e3b7f2c63f1f02aebf795202742cc3b7f4c7a4981e7fc78a96830a53e9fadd94aeb56670f3e08f79133508df1bc73a92bf9ffc0dd323f97b851ec9d2073f586e1fa2a931f0c1250c9aa5c97263a0bddf1868f0a7c6407bbff16fe35f1103aa5d0fe64dfe4d99820c264bd78fe507aebf293fd8f9f1719631b4c952c6d0ebc39d9fef93b7d53a5fc50c688c9dd23aec55ee9e723a4ce7adc374420dc272d3296a90f3389f93f7081a677c70ccf4869e069bfcd1030d6a1c2a6ab0c3277fcc297709348e06ae71ded3a0031a2cf7fd0f548db3adc3c6e729f70c8d53f2fc8de19a8767047ff4c6eff207a8ee7ecc29c860f1c518a403f6c9806af2a926ff7bf1bfd227060dcbfd69f0039246c2924ea1272da94a8354d400dce0d802fd8f96234a7f0fe272cc7b488f1fe68d810e7dbe87e75f3a2e00bc899e970effa503d3e1bbcabd62d64e8fef53eeaea7dc588fcf536ebc53ee974eb95f8f9f53ee2f370c7653ee1575fc137956a0f13fcc5bc690fe7e7b9c45a09a249f8a19d018e47fe5069f24f34845a2e9303eccf86bf8b8dc433af4e7de4518aec727b367a178018bbf87b418037c31efb09431a4c1f2fba9bb3db4317871650c6911e8938fe35912341c503a1a0e262dd070180942c3b1638986a3061134243352684849d090bc9878b95c1c0d69a679f4a42141d1909e92808a70ad55db58ccfed42efacc92833b750e2d378faeb8fefcfa33acb51606d55dd63e31f6ade51e00b9a9e6b8c9756e4300816681a1e5be7cf42e865c01346fa0925ab7d0cbd34597577c19f48101baaeef03a3ea5a5a5db5eba92ff01b82793e59a30fa4464a3825dcd71a34cb85f7a0f5a603649d0befed6fb3049a367925ae367fbacbd38597ef0bfb6f3dede5aed316841162d3598837b4d53b6ea3deb881facf50b7d5d29094906258555e6453dcc6c9a4b48c8ade59cfdff4a4c9a2d0644d28119a6c69dbb6ce93c96ad4fbbc0f8cf6af5fc2a90ffcc029bba3dd6832448476838976438976e368cd8acae491c13780b5d62468475db42b67a9b4231d2aed68ca934a3b9a555a9968474b95564a3b92d18e62341b5853050a2478bf74a5d9a8d2936644e5007ad28caa42a0da9740d0432a12cdd05c89937bbe9579fe26bf1ee79d27b3ce8f39e7c5ec12bfdfb48a03b1363b930321f27457fa92c36060b00512c16c6161e868bb8174dd34e0320e4e6e3d4f6eb5f2cddfdc64fc3c19ff2be3dfc918b4614f269f2793ffcae4ef64f2753209deb0278fcf93c77fe5f177f2f83a79fc9c3cf664f179b2f8af2cfe4e165f477c5716c5efc6f0bdefc9fe3cd9ff95fd77b2bf4ef6cfc9feaeec38d9bf95fd6fb23fcefe64f61fb3bf98fdb91c967b4608b4fe97b7a7b72fcd986919334a5f7f99f8fbfbc72786e6b8add60fd2827707c4971c56eb0705817d49d770a3597ae3a9a2be4f065ba77757ce0cee075b79cb269f9fdaa7acddcb3b2e34a32e5352429cd26a6df55a3baf427830ba21ca4806ac27cda8888e2e38d49366f4c3ce803f3d69463b8c30c2f146376afc2cd9318d5502753c596288531834396c29624b928d2616da309d213f215d982e767a56e907550e6c9e54f1e1043436342dcdd42805b6e4f69c9afada60fbdb47bfe79ee8f39e2bb7076acdd15ee9b51cbd798de3422851ce4247cfc77a55b9940bcda814d63eddfe5fd772bfa05eedddb8cefbc0501c497cd3c271e5e8ecbc787a7c4c0060aa105fd8f2c45441ff850d001507f2bfd249e12ef78bf65ba5fd535839ecca6b0ecbd1b4bc4f354c7fbb95d5973b244b69ab6739594b047689993fbe84de1b8698ba5fa0236cc14fcf7b3b6a29bd5568b6b037fc99f6ba5cc8e540b4c39dddc21de297b5d7bbd7d6592bb87d7d10145fd4176154eb2c48d061b59e6abfb94922631a81fdae44807e572041bf6b0f14bf6b528adfd5082be72d00c09ff84d06e0f7a8e96f51d350ff063f9d6245050668f15f80df9400bf7d00bfebcf6f2b80dfb7fcbde5df9cab45cf6fcf012a7edf68aae2778ea62a7eefaca8420628ebac827256a0d9a528778751941b0795fba581cafd1a566ed8acd25e805c9f0890ab9401e43ae527571c04902b957a829c2b0a6a0e15aa5679e56aa5d24ce47aa5ea5077a83cccc0cf9bae384c16aef7af394c16b4e9caaeffa71d7d1a5edd7db6ba3e555aa13e575d9f3ebbae4f9fa9ae39cccac364c09c07d85853d7ff674e07a0823f51c10320cfa9c2844f05dfe37a9e2c02d6ae7f65115eda55365550aac8d9b9d1f45de04e6ebd4ece69bdeb71705a38ad12a4e105b5eb309e5df71ba6f77cf27ecfaafa942b1587f9b77285d2c99bd2198cf3dfbb74d0190c7ec6d14167c2d7c92d1d74068baf936f9ce8644c659a3ef93a99d44167307e9d3ceaa033b8f5bb3eb9bed3ae727b40bb3e8b3ac7557a4dd30dab3833d9bc6f4cdfacf4b4f59051bdd659060e43131edb130a6f1df1bcbfbeff35e43239ecfbb1bc4e4a2cee90c9e2da3061d7bb4e6c700ac1fb95dbdfd99de91a454a145dff3ed91ab21c4c158661d82386ff8538acd2b369e989e0ef5b85d2ffc0fbed6f06a92876dd2d377d4f8329f4c64e4321eef9beaf4a0f0a24f8fe05756868c8ab529b2a94e08d9d7094b370ba5d87f1ebe5a41d86a7bd12f6d5b014550d9c3f7b5a7100f67d7fefbd970330fd4107f3368c13c24237bf5d5aa8f53b14c279eee7fcdefd0bcbaf8411c1e48f2f7e14071db810fe79131e5417ced681ee53f10598779743b09e35b2b99cc5f82f0db2d816685007a69373b22bcf0ad47a1c70fc8eea71fc0b1c3f29962dd8cde7e1b22c29fd28d55f130bc0daa570a117ec558538a855c8830ae42fbe3a58857dda7b0e3ca84254c6422693c93c18b08c36d9ac6edc3b2392b86c7d38dff77ddff76d197506922a60aaf108e2b4766e9ec21267aa2fad492a11209ad61e499ae2eab5927c2abe209f74edb0586efce15ad3fe5724dad1ded7a7da7518bf5effb05d9f36ab9a577a601c9685f7c764a5fd3fa6d9c2a334045a455ae53ce144959b6a9cc779fc200e4a01538d83f3173825415477f3b589be5d34bd4e9ad6294dcbcb813adbde2b3faba9c2dffb3a721443707a1fdc6f51dde53c8a61de30fd3d586e1c202488d2dbdfe0f7ef5a18e73cb5eebd9e77bdeb5d98be303207ea4cd73a23ea34fd2ba5d659f95925c11b33697f9c256741b11ce8be779fbc3fde17ef8744f47d3089beff7d0f93d71c46e6dd69ef47318779bf576e1c20daffb3d2fe1f52d00a41407e7e828258fbf34503436c804d06a4e64f0d7043cc9f19d88969ff9a83a6b0ce6cb6a05e3accc3237118afc622a216f186ce12ed3f4b3c3bcc43fb4f1207ed3fc72bed3fc722da7f8a5ab4ff146f68ffe9360771c13954eea4040f44024ce1a379589e921c2f942af44024b43fddc014b43fe53e9af6a79ea744fbd36a735017bc5bb120b66e07f7b48dd95ac82941fb7bd905a1fd7deb76687fe79eb4bf6f63b4bf6f2d687fb73607f98077eb69b6a058c670d7c8ca508d7049d1fef562d1fe95bb5606ed5fab11dabfda2d56d54775289ae637ce18ed6fb7b2fad0feb6baaddae6a01ff06ec5e8911468ff56542b365bd8c76141fbdf23daffdeca45fb5fcbf9a0ed5f60b6a06f43fbdeb6d5986743a07adfccb47f79336bc5662dcf1b6b59bfd375c7a33e471451a2f7db1790e88d9f8c11bd1f5369d21bff91227a3fde31446ffc25b0c002763d693a84e850c1e867c9f6e849d3514423a116021d9d05458104d30a812856946e5460c0d42587aa595bad6a35eaf4e36910eca60a0b3b025b195b7dcf53cc807ab577777aabfe9bdf202dd8be670ce40b04b1e7d40d97a7a8644dd635410a15c211000000008316000020100a89430281248a82448ed60e14000c63923e564e30130983916018864110c5501003010882300000318c314651ad2c1ec2ca9c6f994d383864e7d1d19d87fde4d4fb01050bf335fdfb6b23d72284360afa87d98ed3907e4e90077fe6ef45a922057fbaf00092415ea6047fb62d6de2b5486e86decface2fc872efa2e95c6950cfe69400b337626e0d3136b615afa4592be00f792f4a840ff2c4fe4ce65fa27adb53adc49f9149cb39a341199f8d16a4ed2f1447f9a6b4c78fc2da31d7cbbd8b140abc964d9a840f9c06c94778409737cf744cfc63e69c85c678a760349e0ce3d53b313460e77f69cca9e0079c899270addaeb45184455eca4105b61aac2a4359f16120a777b8ac75b0d066a7aa38c257d4d550d260325f390f8e1181f0d08d9d99ebc6a3f46077bb2f20e4271d1ea433395ac8b347770e12d1c08750fbee67ad7014aa0ef76bf0cb57ec29ef6eca407f07c5b0a78b42c8dfa13ae4e94215f6ecae0a787451067a3ba8427cdd15c31e1d0a01ff8eea90571745d86fa722e0a3c3293f705c7528b66d4c5127db554f77b3bfafc297dd1b6145d313a46249308ebefc8081e9b937eade14683783c8549c24986a12c7b3284a2a414517cb7d116f0a7ce1ab619dbbae64fe7018e45a5faf5a6f22a88a8df3903fb765f0e9ebbfd942807e2ee3c37c288f5325eb6c7dcd47b513490950ae35f28f65f9be4b425701badb23b802188880d5415304b0b696c4290eba10ac6516f3395b06a53872c2518834c66b6bb6ecd62a2751c745378882f75b82512ee6c6143e566f58c24372cf7410a448fa3d5a9a95b43acbfc870b81a1aa81ff4124a2313d9647b1dba7627910b7e2c239b36fdd0734d741ed1d4e549ff14566526246ea10c410fbb8d1eac1461de93688e47dc9f02c4cc0a0ef5a7bafeeb93c014b4ea532e227d5d250a4c53e916a8051e1b68ba02aa04ed0dad60633e118c23b8566300453eb8ac17c5bfa67ead50dc4f005498e5a4a124e46c47ad6f018b808f8e17ebb3f36452adb33d5b2c6a2599262ffa63a4ee4253c2fb77f347047d0fa5203b30774c5f5199920fe6eb8c7e210abbac6db5fdaca33df8010e7c483cd38da3ae74742d0ba5892f97108780842fea9b0c1c850fdf47bd85353a86ec1e01152e9f4c29bac9b0cb9bf3e44b1dee3cb654fe255c04fa9d56702e9c0a23486cf7c0717cd516edafe58ebb5465863fe4f1302f73caf90664782e9e0b96d926b2f074a07d7ecaa95ed562dcfa76a0fb889eec5e4522d6fc3a542067786da5d8b4412caaf1c263a6e1ab137ec355069047344840de1bffbf52d307b9c7bfd6db544890ef5cf08ce273f99b6acb07106f54dbd35055bb6194dc290d5f30db2343845308c077b84f26ad700a8688e19ee828484734acd6d4d02f5fe380e956d755b56a27fee1228d0bfce4ce050d5f927a0299a397441d6b8b2f2fcaee105eb28caba0a905e3fa10d6fa54918e64dbe7a4f4db1043551aa17d3a27912eae5fc6fb8d8f8f9d77649539482b26bd9d4bf187028b2655ddc632a8de41f01833b04415d7a42abee5fc1dd26cda460144d1f0ddb87e48515b08007ac86cdaa7a9bfe553ed2aeaf60d5e897a99bf7284c956bfccae343191c6d929ac3522dd2a171aea62b216437eb6c872ac476b2994843b8bd1c72f95f407c05f8eddfb0620ed2439f62c5a474b62f7130ad46973c7afa552b74bccbe6fe258f5386170455e2d4caf923f6cacc91dd659788546206254ca0ba7484f0bd67e70176fa08ac6d50c4eb80e46753f50a2d7f088853e74b099f4bf6b5f046c7d9c3fe4f191024fb18528892806ed5c347f2c5ac6d3ca7ee032e1942264ceb5537607bf14583693f5b9675709c6b8e2172b1006aafb71a6be6b22178034edb49a50900f5e942a58b2f8212d8698f01bfc63a6061d04b0e2415c134da1682c2057175585d25195c89755437f84044ccd9bf5d9275990ac575b3bb9bb441ce3616b87a54203462a5610e362ffc73d838e385f70a061b049c5cc70752feb5ecc5d246730351c29744472c477cf8e93248f301008d695477eebba89624c6b2f9d9145cddf7f4684bb489954eb0080d32a18dfd4794668021b8cafb2193857e18acf6714dd6c173f02a36f90bc1f48b2e2258e64a0eaaf2a3e102734f3ac3775ba93f896285bcd4a87d22c8b8d65e9ea21651b1ac2721724af2c74a35d90cf07f34c898042f9221bf445099b058a3a46ef0d8e0c61e03041f62b61b8537bb5df2df2b453d6e904395283413767d2b3d556da764d8ac85999439d31a4e2441d641781a8ba062ae15868eacf2a8801b63131921f305438027f5997c46a043cdd16058f496fa4218f98598fe17e2750235bf01185defce40848c1f6f0e0365eaa84911718c40c6b71522acb4f0d4e11be7e9aaf9c8f6ab95af42f0e2806fcba09cfde00029da0b5382ceb1c93bd3f7776b702b74075868198e3db87a170efc39300b7c1acabf790ca318c6dcc51f850ea00c6ace32580c1faf24548b99a70e88f6332199d20c3a1e867aebeeedbf4b04cb0cc23b934da56dbcad091e84d3c07f3cbc8cc0189fb019ca8f3cbc27a6b98460fcafb5d0807f6603d544a05a754bbe2f7ccb5b75ce8a154940cfb2edf65c60c85d92071f176235bb7ab5db05624038de21c28078655584fd7d9d2237cdf1264b73b02ee183014ff35fd92075e62054ef12620c7d44702c6ef4521dd400038b3a12eba14a35a5e59ec151d11d333d081b58c6a9940f818d55f8357088a6926709f3aa5d027361166fb0556a3915055d60876d56510b8979891280508b509c5272ee46f00b9e1f53b8c30b127b90c965865713d909f5f15f43cca591b9682aa63e44758c911f85fb105670167672ac1fd59f7f6376282619ba77ee614615a3bef49829035e97142e29d6e534b6af5298c213ff23eaf03ebea5c8b4e4bd3328797be23ddae8d7570af15eab34a17ff0792c76da6ff0da5b7ed8404c23b7996586c58333e12d525e2f6a4349fbe730109897adbe6ae5bc11934e46fd73a060491df1381dff347a32fe14cb60dc24081d81588e7ad5c63ba1ff332cf71abef6b620a9d62eb856388d8b6d199ec22da78e5ca234a7f96d76bd2a4aef22a5280f679489a91a1e85b6f2769a3ac134bbb65757a5be8bb8b6a066026e400f63165c17368ad604404003794fb8bd4b3f0a5a279676189ac4751323286d8d8adfff90c016e9818911469c3f6c17c84803565a40261ca003296433b6df965480919f8e100e8b6685247518ea6cea35d92adb3fa949bd4ff0c0cd8568e8cc77503fbf802aaa3d31764e2479629a3549eab16bf52959e182891128d1a61841e51d7f9ed5bd70d78cf9ef0ccaa4fb77ea26c806764d9f04a36ba2a5fbcc82776db66c3a2b144941dcf1375d9d69b184f0b40b3994a34dede0617cf18a7b356b71d57a9f55dd2b08c7d3a6c871dfd4de2ba082f2c07b0e322db8a4a6afcc5873b7b9af5940611b505588025bb1fac1195d19c8394101f20716434d75c50ecee98279a47fc0b569116e6e7c4bd86605718d1563c2a80b740053e42c6b328ec177440412a88945449e5628801b199a6a517c843c1076816d230c598b438728074fab52bf47ae52cdac49aaf105658830384e6fe9e15507a61f5a35d32d0df086d444073e7690a800c48ef5a684dae41bc8ff5cc906851658de5fab78b5031ee39d71684b5af9edc5692073bd3c6bafe0cbb417f4f0beb7b76c98e3aed2eac255a9cb44e9648f5a13499749a5e1e56387821a61729e28b3a0733ec36c8804688e6dca639418ab91409f2ea99481ec62e7f3ee5e0b16a48806a5232a029c76b2bfeeddedaf2657a8fac787f02e3133715550443b342a5cd0718903d316ad52ee57fd923d9476f970aea57e574d322d5c980b98363cdbcefa2e3ad0ca18bbebee96072dd14fff9355ff05112154a21bf7714d58d72ac1a606dc097175b8ae981579e4292e440d2391d6c240847b390e99388621b930d91028a648c8e3c22cc26ae4214542b0d6b93d5bc69c0491be078dc18b718797b42d68caec7ff751b98034578048275b5b13c88e2e2fa0f66097daa5b1c20852ff0550c21d8d4f43e5e00228ef04dfc904f7aa0faa1d3f5f96576b07ccdc928547688f66841f34c16885ecb4472bc35055a5cade9b29fcaf4d6bf55ebc563b7d49605f127b7fd2d472ea74822ce2b2f36302224f46e0d004c434a5592caa34de84082614a81fd48700f101e3ae488800df535952c32bd25cdef88dc87d09ce13fd23b63f72d8325dd89c517e7b7d44da393003b480fd8eb67d1bf51bf66d05206972fbbba708684ad894e4b8b283111145f4eb73e845ef4865d014617a269ff3e511889191e8433f966acb58259e5b9d012b3ec526f28b572f2cd7a123c8936f640c273bf6a4c4571102c72435228be0e3b0e8f5d785940cf65dde1e72fec0fc18c9245c778514c1506c8afd70cd3e0ca3707db939a9779332b7b372fcc3414c90cd972e27eff5062b3fc21758d89ef5bfd6c13cd5d6eff401696ae89aaf50857d17c09a1351d2136ceee2cdda40fe732dca45eb3c68a58d2d84ede0282b6b979505008e0d4c5d54cf61825be98863b5d4ca5bbfe1e16810d190770981305801a8ef6329c75f163505c195f91ab36cc117215cb0df243ddd19c1c290b81e4c9ec655712146aa105bc27ae2196996e896688007a11285dc211675cb19e36f95c0ee5e3c8484c69220f03df3802db4a58d6b42639b206bc706461822c19d5f91281715493e609e445a1f23a88684ea306afc6992085bca0c3e76e56139b80dabe4842e955347db147315b78b4b8226641cf7c7af9e5a7cd1bf7b2f2531738af012d3312b7d0f3f853650467e23e420a537950d405c2aceb12abbb1b31a04c3f1094c39cde103818893fcd36e3687620baa571c1df980665c4322639071fcecc8099ceb7409432b1394f329828009a94240c9141606fb329a9e374add8bae501c38167e8abfac4ca3b7b0fb54ee44f8454260a6e0ac364f3cc2a2e1c3100814c57071aa5255232e22c470406c180a555f9119c382b77c26bc0e7318ac37dd37856131cf8cc0711f65180bccfaca06ba86835519e0368dad388c362750e2221580452e2ff700c3685694ac5042adc214b050211819250ff8d08185e5f00622dd2653c8551684505f3d6175187a4515047d0bdb51ede0b84aefc11e80a5220419918bd4397ce960c507208e425463d2fe0b2f934be282158642d66fb11ab6438407e39811c492e74d766de24e334671240705d1cc44d7cda851b09351d06af803aa069ec64c5ced3249e24483dce4e45aeac941d7f4cd587a88bb2f8c409833b7d12694c06356c3f59e1b7152f844d1fced07daee43974cd295680b23edd023f0bac8573532b652158373c540978c27377304d02957d0a0f585f8bd855e4f82af1157e43974e284be9300a29c335ab5e891575448a13f7b6ec4cc660e656342efbf0466a3afad14a01dbefc84eb5494d80a77d804a4c4ff27253137b4ad6c710030618c2e878db001b49630fb438850433e1a99dfcc1c989204a9778285ce4a6b5f09c14920a93a37c14cd078d169566cb3166a99365f47b3725e0c2cba13aea034c270e54e80f72994a801c5db9a3155bd4bd8ff54c5bba6cd8838668a81098dd35eabe5f9eb69b3a70fd11c8e20bd156e0611328e8577bfa4e07eeeb00fa0566b55d19f55143233fef2b00892a9be758cd14a320ebb26f61b718261fb22d873ca1ea02bb0467d81d807a6fb0204e9d6eb64037420f69881fe5079dac8d983394d33da2bff9c89d05941e5d693ae37beb1798077f9e18a2d1a8a4532ebd1368e8d58c7e61b0d69f87917afd14cddc5b65da125fd5149653b94be45a65ccef8aa4dc1bd36b57c29ab3dce555e4e6208bc8aa7832822a7eac001df71a3f13e54b28a98c58fa1e4e647520b2eac1113f82f66dd23a09bde3818d4b087fda759f92fc09df78c0235944217f9da4a828a8facfe4f5fae07783d545005320664d2e520419fc51b4b0b94a7a6b1250685d6207da932361a79d88cf4e7082df75b0bc0e813612b92c34b3ee2871dde07a5230cc481c0e0d04a2671d94fcde13d59199303683ae367c88e84977c0d23b57a4f61132acb6b219a6f87879242e64e452a52fd404cbaf6cc83ee70dacd59b448e88f3b7c50be504704264888ac8b67c7ce695248bd9250ac0de03845e6a5818bc69e3014440772a3f4dedcd6b1385ed2ddb6fe3f03f7c0f9b448df1ac36872ff0ba554d53d2d96d590dc46b4d122176a7173dc54bbc4a4ded3145b1d7cd8e602810af1dc0b0d6df305c9fca514e48969f715da6089a5e375a88549038a380ac25d630fb61a47411b986c97b88ad07290b64b3feca8ac32b3a8a279cf4d234d8aa820160f8af7fab396f6a0bd1e21df7402fd66101810c36984c35d37d69d2ede4b967baca167a73f922081c1bd595554871b81466c3b33fc2fa3fd2907c7f6a466114125b9c6a3b7ab60beb5f6ec19c031cfd03f4ed7d36aaa8da4e36c558f6858899f7bf9236dbd8facab1cbb2fb0911ed77d5fd9c94e8f152cb6660f73fb68b5af0d1b77513670610221b7a17affe6a8bafe571986ff53d23e8dec438651024ac72a6ab930bfe52a03734018e85d1506ac2c69b915c5e30e690be1aada8d4a5ef1ab654e6f838466bc0e1a3ea3be6fba4366be0d8959c91f3eb9a26b052509ae8fe5ff0aeb4760dade7054c125008a666584e922cb8ec5f96523fb2f7bbbf345d47978fd38ad68130ea0adbd890963c26cc080f521d952bff1ed4e958a258d6204f18db990fc74b32b201256f89c03b46ac0df57c9242bf28cb3e163914a8b9eb0313dbeb0b17bc0fc695747a6adb11d5f9d0c9185c54ca025ee75a2557818ec91d81d2ccc9cb10d2944905724329e7379ec0d5805f8385042ca63775c4349adde717201254a88a652a54acaf699ba4e1bf5eb821cf2484485df9b7cd197997469d32dfde0bca0fbb03e151b3b5192c24affb829bfaa1180330db91920c73d044efda10183250691c9d225f520993848f5a1b3f3925f817581b1fae26db2da5b5d9d587c90bf6fd6f3cfa10a79ca10ac3cc1066933ba7623ea1e17464be3d5964d4f253336216188505f289c7416543337a4a3c5d547429cc2757b8df76122e0a556999a6d75749242f1031f8939220ec512ccbd921948ec68d62fe399ec4a11ea68478e8959cc1520da088b1c6ad31cb5fb2121727bdd67e305d84a2f826e1454275b20b91f2d044c09dd4b633dfbc46acb7eb11542be5b1fb983f2db0360980cf4518ff2d0233914533d6112e2fc7fb73ce7f0882894146e44dd1da09e3bcb451678f77a829c90bdc6a9e9ac6285433fadcc093ae3f80bd07ccdb26f344a03dae35a08646eb19b4ebaf07b957fe8f513405de421621d296832f24f681a0aba8c66fba2d50dd347c5f5ef6803349a5a019ca4f5e3d36297d98d3b4ad8a84a2a94ee6296bf6f53d5bb3da899e17608d159a20ec4b367e19826e320c93c47b9c3bda148429718410f81d6d3003d4677b436896de613378233cb8139eda2a566bcff9bb1b2160ec8510fe1eec9f6afe201e2cb1eb7ef139d556a932a1efa6a3afd5e1ee6a2da8d83f02be3954a9179469903ce3611804511a8b6b5a6caadc91f7eb5a60bbc68307160aeee068cd6627b559b9b425282ff082738514b27ed88c344855e3fe802f63e6dc8e38203a0e275ada08c20ec5c278cdc1b0df9f578095b3d2355b4f5452205faf109fe41227a18c2e7ae62df8857417ce6694fdb4169b8c986746171476c377624639fea8894c4b7966dc50909ed616c0f184736dbd6b0580edc7a4408c4f418fe919402df4324af88e3cd73f3a05716bcb78e89ff5da37488d5fe8f62d57e4d2d0354aad0ea31cece0ad9af0ccb2a1bbe0e66e5c39086871706da659cdb822223489a94a73dce04c85821df5bed2075ffa9c22e7341b626eb8994d95adcaae275f40a6f6f21adac9d538c83ec5889e8b44d8ec095ac7e51a8e12c99613b24c6237280f81f5707fb560f1aeeb22b621a81096135dd4ea3c83ac13d6b4bceb588ae3827a8ab2fbd2b87e407ed9b6f86c6e838b198e3a9a29e7b4fd2f7e58f3a760ca0a39320ee8ba30e9c386c38a0868f40d9ec5f1e4bedf8be1d44de0538fd7c70787aedea8a4bc1ae4f4a6af7b51eb823de86ce7dedcb5b42d2437db850025d07c680d1a912a3203268873680b58a1006594b9473767200e6a9829ac0c84dc513e2d3ab94ace8693b22ca457dc862fb2cac100acd862c21315a42b30b53911c7df1b0ca710d82ea1b3f06f704054814633b26df3f12fd5e076aa306beaef956e719552d59be3d138c7203d5c29d56fe5cc9c1aa95bb2ade159c7351872b5e0ab25c26b17f944bbd2dc8a6f11d8a8e56ea5b12dc147eaebae9a354bab31fd88d4028da1362ca1cd1a79fc25fbc00a848f739652160d22b6633d72e9a459f2f3ae8324106ab841c90820ab665bf184f88c6bd8381e1f1b8ab2334793cbe09ba8a1df0ce7dcc70ed57f4c14c651f2df7f83b56f999c0f53f8bdc07cb24dea51d52ac52af0132c1e9821de4c1549d14d9370a901ef695d11dee0563d8d7485a2b35fcca0cde4098ff7125a4a50673f58c3a2996b9c6503d8cc993ab3c0b8b1704b87224eab2b4e9e6d276860fe25c4ee9f4049417cab503c4f0a8f895f517a0a22770b787b14c0f97654c7a4c348f061370b2368f32e63377e3594ca00521a10c2d2e48fd18a62a57d75e2db8eb0dc8eb1ae5a22a257ac3b5d64be34668cd853c0e9dde69f6c6b3581d061a609019df075b29b12cd062f8c872244cb93d22d1c9be23cf625898087a9fdaee1ad09154d4f9802f7ba1979315dccb62962bd46bd0e0e43263ac3530fcf8eb9338f047c98ab358bbe1f131acd8ceb61cd4b6f7656e58a53861a4af9477681d237c296c89cd1f5387ad30029736fca4e8807c05604d56187020ad28eb90a4d51b93898be44ffae935682220b25058739210b052702b5490488d412d5397108cd0fa037822fc52ae169c5ddbaf6be90d025b52c422aaa41474626a06c3fea2d12ad6c2ee0464531ed875539aa132c70f3e2c841c55483a6d2ba890a0f1144bdb2c88d6fcd16a27c334c56103f4284b1f634142b3ee84ea1252c56f6d04b7cc99d9f1e4e5a3130dafa2c4aecf741bd0c85b98eca14b58907412edfce26b86bbf48974088906885c7b8792c655e1d29e6bc150aa7fef8f6b4e39997cf6c39b48bed86b724f1dfe6f353341782b0dc564602570f980f42cee63da966a33defb353640975c1bea0e3155a06baaa14a70dcdc8ce7ce35bca781aba0f3f73509134be43aedc4e9baa2564a57ddae5b2c7b8239ff8506ce3201dcb2809f4fd2c899b04347c33f112baa5940456d449916d89a5f2690ea52b183ace664cad677ed4dc01743aeac27d945ad4aaf042d57b555e9031a483c71845d354bbff7189383963be0a1c6ad688e58a171b844e7ebd09084fdb3be9af0b5b32a4cf39b0ae2a264341a472327796466f295d5573745cdfefea7dcbc03e9bbfe0dcf12a316910ee2d9cdfdca1ba9efd50a1c9c5c4af8f1b56b895b23a04cf387abde8e1f68733fe246e616cd064f9ffe0f35c32a706a43ff8354b086447515488587eb6ab3128af7b1ce85b981103f3e9eec90974c58ea6c06310b517f28c6265ed75213dcf22170b61a5c29bb7fccb7a528f4048284038aed71a94d39f7e309849bb1370a3f7f959bf43ee74105c1da28e9ef730944b6f9f07877019a10ca622ef3cb6904871fefce08d63cef378e251e1e15f0980f2822aef7a3f8ef897be69327df71b3411cc78c655220f33ed9685a956c626ac2cffeb874ed81b38248972581a702a46e3027c1649c758c53ff427d022ad0cf1db8b50bd5eb8ca2ba21e3c7aad9109f8d4f47fb33deca9138c6ce5bad74b97936f133f45627f6d6f73fcc06eb43fe530f46bb2b182eb676376f383965fad32cbf93ec5aaa0e0cb32f8ba33f8cb6db5e59c9216deb9b061530142e1a3915e5346dbe7801a9b46efc46df931253ffce9f4eabaf08741f6d56668a65a2cdc65b251e4af6da1de868687e42a383d9181357c36fb544284f4685fa5ab8bb4ba0fc07099871c827000c9357c1cbc3da5cea68e895844f899c99bfcfa67f6e2bfa0d04999ef97dae3678403a4284582b58a0cf53781c8715094d76140d321fb95ca04c75af927b5639853677bed5f5d707ef9d65d7b5186d2d8fdbcb6f861acd9642fa58199f0935b1093f4c54e21ddeafe7ccd9e915c972b301bac0a1f534c831ceda20434918386da25b5304254740fcace1a5761256c978da267a24cf445ba6a08896785e113281a09c3cea30475fc4d3108bc38d9a7718e0865068c618392c43d4112f99102ec91e4c0fffd4c603181e5ace56ea5d3026c668552380c08b004e2168324046c8c137333a65ee658552173947705688a121b82828ff9dc77f4f13e2e7bdb811c1f489f1bf3cd05127ddb8a370d6700e1363674424adce3996872218ebb8878a5b58d6dc91c522c962011e1f0ca38202c81cd51aae29fae5ec922c0644d3b0c6ccc2bf244f55493cce336d9adaefa631954a4ea2336732d5a8c9dc454df81e12be622fe1cdc6f600e44956f62f1ba1e21cafca3ccce6e3d3911ef30d628657b308208c7d1a2cb7b1b5ca6674113b7c7fa6ad5bb7cd3b9ffda62986ac4ed99dd16c7208a2bbc73b0ace2fdaa9b2cc5e4209c86f4d5f167fbb1700c928e83ba6353402d124ce4f508cf2872ec541aacb7d1682ae08450d18c1eba526948fcc773a495df1b3b6917908f877d3973258df0a28e7442ea4e7763d0aa437039f82e4884133f0967a44d67344278a7be23e2531032c7584b4c126f5d2b0aec279c7a566694cfce50ba58d52c9428bb6b9595db790e4700e963b29258703acfd57ddeb5c24a391cf8038a9e36199683ed3ffaf95699f059407d67a32b5a52d491914d2a11e9aedf302ce6c273f30554cb39a2c0791be59fed0ae5f0f7957fe44433666288b3ed34781ef52e19d7b36973f9d996d39e9f56999582a6a7af4c1bd45b844d1961858d636483bda45d4810eae2e5d8021677f3ae53ddc1c6dab5498f001a4cc0d92817553908ac6a944ea263c678cb7360ac6cb046a554e2e6572ee85f2f48ad361133e440c4530ff3e324738a02b9a996f6a3d81125b39efccc46d61f3392901ea2615987f5978355a922075b741c09172ec5319431e6b66a28654591396558da98a2ad4bf2f3784cc2c67294fc3f218a8bb29a662e6cbdf8d756ec4d391378d736e639e116ad7c198d909eb3570c12d38e1ed23b2586606135dbbcdb8093687e8fe0d094d39d35a536ed23484da0c7308fcf4b83d8620044b7f4d536ae2f89b8d850f338b85871ce3b10fc2f124020a509a6a0e075028e01d737f1fe9940c9271ced59ca9a2e678e6c483f26f65326901e9c27b99bd3e0f62f0e03efc709df753dd2b23f345d32b14a00aa8c7a782063578a0ad6f4c234dfcd1588b14650c92f000c3a0c1a5a0dcea1ba1d266a9cae67195bff3cd7c467d75bed1389e731e93fd88962d695bfdf47da3c93fe2fa92959f82a8caf0c2378623ac1111883e6b3706f5101ada47f499208bf08ed096913aafd3b9d5ec238d5516049fd1513d344c3c56607618b3f6ba3b90e058afc79c3c8429f28f5b8fe091c13df68e7da04e95ab2723909d76e0546a69438801915ff64e422bf2317b9b62032132dee520a406923221d338b3fd925e9140dd5b3e25ca1c950073aa0dc1c8a00b76b35ed5bf0d504422d7ebfea8f33518db6d048370317c0a08afd5c8b63e3d8470e2123519f80e51e8f7b388dfba185f3db02f0122e2ad37993257bd400d05d6de65f56ec238163bd8043f4f9827c805a0353e43afe9183ac8da6270d7fcf205bac66801e72e48d345a857e3162fa266baa230a57e322c2741352f407cb5d8e9499b4355f205d20a6f9c0fb811a28af344eb00d80223a2e85a5f354757fc00c51ce7a4ae9e7db6460cb610ecd1bff4921f6322998ad0ad0b38fde142c68867cb23badf90bef04d3ce84578d61bacaaaefa033255d08dd819c4134bb80018e58fe7a2f91b133b2666367731349f291b48f3b4c1a089abb40d0acf036c06b0ee29a4cb32e0375270137cd1a41107c6494c2e79ab54ba44383ae794d2a0bd551339a891d067f88fd2ecc5c8b95047ece02a18f9b05f56b612edb8ec18402dac3125cc626a01421794778c75ccc1bf346b3253a47b8fb25231c8ac17801a482376d0146cfb44864c678ea353dfe7545c721b063dfc0f9e30a0bef2a3abb76f1dfd97fbfb0c0490a5cba7eb1cbd73201b7a8dd7366c5ea1ccab322ff3389a771a88c0a17e1a7a053cb1fcd48c3bc398d467eae6da07b66ad7a82ba31ed46e54125a8adff65ed17c5a9df1a5708081ddedfa9d8452990c9bccc864ad487a21a866c788e4b6dcda2832a2eb226955d00054cec298ba89a7fbab99af598e4944ae72a45e6ed6c151037958ef1db344dd188c541e069d3c94dce5ac520a3f3508287191a0db196a39023b2926cf3e4ae074516203d2cd05026d87e354822eca724ccfbd5b84bedca10d2267423262c0fa70f1c60872ea334122674275c7b50f639a7279da59ab6c9d2e6477ae3c981db86e19e6dfd3bee71a49e30556d449cbc934a091ead81941b97182394a452131f31b96e692812094eb2c0468040595e67830520a92f1ae21f7bda5d4b1dfef0cd5987e8a20527b950f51cf92e117ad5d1ee12fb1a87b1a64f289ed8c8b5c5c0f5134a7165bdb2b72ebef1f0203c1d3d69e37e266e0b2cc70744581f97565b76c7b35a66c4c05a93588f4d896af32adb5642da378c9a23e241330f0dafa8429729cad303ec5f186f5f87fe694e2a02e608174f9003c24ee90043869370519419240b16978bf91b2f8e1107bb68b8982ebefbe909f11740afad42ff362ef089ffadfa752e18aedcfc0774d63a94d069866a3712e969d11008517e0c53b008ac16593c6f35cfff64b542ce062648459c42858e4c89fd76ccb784790582221f4780c0a93254890720b82d260ae071570a2274c83043b089d218c7990435647bb715d233b8d71d030db870fcda6c502f56d314982b025049eb8080c8927247ac2f441b76ca46abfa758b5aec6c0c21620abb6207cd65da939a0c9def99c827a80cf9cadd06d9bfef651a5c172d201d51a59d8225ac1ce687f427738c072015b54486193cf77c932bfd76471e95b68d1cd452b59aaac44359d117981a12ebc23053002b679c6d1c2659a8c2902d4c4796861db030df658034cc2de6b0ab8c49888638cde286c04f946ff9c0d1484c4904641ec77bbcf688806e872b3f3b6f6478814dccab8a4fdc6ed6d3116353a469eac2f3d6efd63720b10f38b1e1c814877e41673cbee2754d38697724f58d828a12646d3cc4b7cd6525da569b89b1a476dea2aa3b1ff39edcd92c0d4e008bfb587ee3b89955431f643ce17df275ed916b5fbc667965f0c98374cf0686dc52fc70cc521c072455b95aaeec804dab72023505d6c331f8a4c10c0a0e68ef4f0255a7495195019a218102d27b98b066ac9519f8afa9b4781de0ad5989ae88a68a95ae82e7069ae327b780ab439637fd1d055f540c6eff52d8b35c836246b379428623abcd7d5ef6459bb0185c60db232f8f15ab7c846c8e32e4040c921a904398814a342148a2eb51f5f1296b1e15d126f4a42c188e5a83a297ead2d24b6e29a31ffb583a55bf130cc1f11befa631692be14d7108441e3465dc71798184541c494a74f376d7a53f0425a805a3126a26b5163effeebecbbf3e7483479aea69e207527e6f4a2c1b8e4ffa429f241da44c0dd721a113730524f6bfd68173140a34f96cf0ae9bd6ad58fcad20da36fbbf72a0c9383607db8fea9e4df39f27ac70cb507acc20dcdf8da15bdb3bf75eced508d505705fb8a043f4d1937c6578ca5f964b27f0e9070a302ad2d8980c0e15a8d1ddd1e8493f9fc80c9dcc42e04abdae18b58d0c50f13ae104cd7120692a3ab9c4289762a68be58b24a9a4ac02077aef17de8f605a0589e4f84ef6343f079a2f19a355e4c6ff0f05e3c0ea88d2682f85a0e8f214c1c263c04c710f497e0bfc76eb9ba05088dc88eca84249afd5fb7657c770b11416a6b5abedc70ba20c149404ddad8a7c95bcd8c5e31b99e308984a596b233afb89ab9154fef241d257527533958bd4071473db3491728b03acd788900a24e7cbce9a4b359629f8b4c68564dd41f100291226122852cebc95ee85b65bee7c3a15be135f32e3a5919273145c6630f324b8ce5240f02648ff34ada7ed7ad22de0cfcf5d8d6a16418650335cb16033d6d0516c56d665d1f2adaf4666e203a37cb850b5fa105a2bc3e1d996dbf0b32cb0e657abf9e1f956a3c6a2f8d478f1c282dcc2254cb3d8e67bd0840cce183d7ed0a12706e473fd326877ed615ce2602f54ff702a312c85a00549ee49b9389c425b6a963eb780cc2c75a9b467a82f4531a45b8b990e1fac47e5f2b58395e7430bff25360879617c03e1caf852d5eac79d4a8a46316e68418e471365730711737a6ac8a7c6eb86320958cafb29ed553b4811b0b2e2b648c09b30719c69675e16d1c84dd64fcb2095ef29a8b4b90d69851233a0e048db46f8899e4f14271110e305ce736d886524a8249cb64ce9dd13e48e508834f5247cddda08232da8fdc0c00240d7b893823c329be427c7ef54cc7853e526caf236489b525fba1589c0ff04131ebe83eb05e343021280f0d7cb8bdfea2d082228ed7a69eaea9c7d374cf4e9c436c1e32a085cfb2ba21d393db865f8eb40c744cefbd3303984f72986acdd008d112424814e6e518550982832d118408893d73e8761b0c83863d8c90e21b359abccf1ecd4dd00002a4c83dcd7b3d4c25531a66402d33ef46ab89a65042685dfbb4b1483c20e270f5a70f9f4e0b1b1fc9102701671d33cbed4b717036ae261f93717ba07082c627968b70eb65a519371bb783f9b53d178fa34b0ba308018b1b68431a28e0f9f26f873202fca420c409be94d694ba98555a366e8fb01c16c7285ae0a05dfd83412675ec54a4232f7e3501e369f9d76ccd8a55d9e04bbe8cdae7ee848f1d46f1c63469eb9be13475144ba143724f13320674532f04a2c70831576e0008c658e478faf2b2c5a845d405f402ea22d402a24549ae574f526f0fc7ed58313753a5169b29a7d568059526322c0982258149c83e39049999f51b869d60d611b1720df9c32f12c0b98def95b3df859f57a175b86ebc1a980c6246dbf7b765106564e6595cab2ecefeab4245d1ab6ba63cd1f60c96be00f54446b6850fad33a94545407522668af3f8a02487b78f3d20a1ef214b2df549b24a3da66af1603c381dad278395cc833725fd3262a1990d0c631a7f8325b463d74318c634fecc41c008c473fd5f27a8548702e3bb4c82743476f1f39d5f74bce80950cd969c7cf74416723781525068adaab957ba94456cb604f9b202ceb33d6a77a068461e3cbe644c361987eb973b9d26520982088b5ec5d5282ca14e86a25a9c0bd65f1a2bc429dc15cc8c8528f8791ed133113ab31172e2844f8898abf7c06fec1421bc8d305ac91d50859f1541e11c618efd334abd2c06eb3bc2affaba2f1c806ffe598d1dd62c4696d6d2f4cbbd30460157b5a44ee8ea454234c909f7e0208d5402051fd272d218acb6027d3653d24d42a0094e1132fe86f6b5be88cae83b1cb7502dc664737a0fab9b6e19a0d818806bfcbad65bb22031b745e257f26bd0c288117fbe9321402bae34c5eea8553770711a07dd66d9adcba5059e4782ff013e5b5ad88cf7afe0299aac5b4d31a1f83e2e13d443bb6b6818d7d030c951b88684a1c54d08a835af6c2f8c8cdaddad97e4f244ed2cb3eb9f331ad865e2355b5a2ff9a1d7fc589d9dac588c542e6aba28ee9a95ed0b71ce6daf01e70c4fa4eb69ed765c3e1fad17d151d00ef16ef64196f2a296b13ec4204cf1fa8a17317aa42d76c5dd619eb2cef2e6f8bae96f196ce5a526e24270e91e40ac86b68adbb21de9c73b4ad4337d3025d2ee7f42a594c5c951414bec28ab38ca92d0bd098dbb2fdf1dd9a5911025726314f5257d4bc7e220ed497b5ab97fb524562a58f3eac61b2e6100ab03c98b0973b0d28ea363b24dc17223c0c1ec07d34cd4e41f1eddba25d1e0cb4dca045091e6326e16dc88d01f1710c4945a1a08526aa642e0c8369bf875cb7c11cbfd6a2d73bd2c829ef9b17a7658b118a95cacd134bc2cec26f28231c822926ce006533468540c2015d5d9ec33ee46fc55d47ce918ace7087ff5755f3804bef9b13abb59b31859acd57448d08a090f2fa4b8c95922d07f70751bfeda23b49fb83fea8596beac9846685f486e868c7595ea90404f98b74823842a0c5ffe823896e726fdf1a86784b38255f9d44bde3b6a106261ad20dd2bc26768e4c4211936a884f8d8923a7337eb0ad5b345ad97221d7d5dea80f8bec2d96e1094904244c0160cb65d068b3c20c245d4694d54b5b76884a2518e600157d5b6176334ecf4b6afba16bd8b32c930a108476c67152ac8b2db13c8cd6448ab762826a35de1347084599791dd1bd99df55f1c0ac57641e38c861be463bdeeb5ea5ed40e075ed887d05aa3c194f25e3e7f53103f7d392e711dd987b1c6a8efcd2735e1cfeffa8dc315f17c29b69a94ba4cb6a764f9816c0a8187b81022bf28d6d60f551a48b198a458b0df2f71073ecd6dfe47ac411f5382c12eb44e409fedb185901b3daf7cee8919e95619fd88580ac31ea09b2357a05f56e1e5bb4a88b111d8be8cd328519555b3df4b803fd23c498381d548b2ee1c6a1894cd96f2a70ae1d9272f637e6c9597486970b6416f3ef6af40d77e5de3228e4b6400bd97cf62d2e3e0c78ef4398be86aec88b561f4dfaed72d27de0aaacfa91687525f7da21ffe302f252ebd0abd4118f0828ef749a924375e868b79c77cc774a9c3a2f42d465b67c6200c2b5db520e3d45c6590238b871b938312c826640948c8939f17166961e933c649fb79366e811c518fac688091bd1abf00fa5f3db9ea252901cc78de9054a4493edf349ef0b701e57ad9ef9312089f3edb443b7d2514d39811a01396db687cb2f6435975586bf4ad709bdb243c40dbe1096470a1d392d9703b20cecef5f3e212374b11b9b0a48d4c2790ca1a4c53eec340789a1af5c3d58d072eb6ee006a9a7c7fa28bc23af8e70b191cde647246d769c6150199813d6a1faee230362e59691869517c697370113e7f1d9191e5c161ba7119647a7cf4d030a493de784439a3062b8902b12929254fba2a147248483d27dcfb9dd679f314080095b8d0fe92e5f3ec042f635d2df9aca07a0087afbc05bf98483905bf9cf515a62b00759dc78af02b2ecfebe53d67d6e37dac6069512f45d1aa78d8222f394d62154a0117572ca4f2902509b57c68f2eb029c9e96d06c3c4c527941017cce1ad58eeab6345d5bba02255a2e7b180b646f49faf8ae5aabd0c96d265e79cf0c79cabc5cfcf5ede751b23fcf67dec2a3e4f61c5150a8f1655e8619dc398fcbd8caf0cac8280d868b3ce277e090494a1e3a89b85e653d9a5ccc88c56d79e2b5724fe2936af2acba8360667f472ef7094d9000f973664dd904fb9fea48e7d80982e0d2c99d059543c65444452f7450dd550a32144c8988374c6c85a64f425f46d6f408f179edcb21a79806f64b12193ec5d45b557a2b2addd18ff0d9a32b3d95ecef4d2e7b0201cfcb1509e51664d3693426d3468bb2528ed9b16c0981454822c80d7b4455df566546ec1e52f84293ba15fb3b4acc7ed6a4632398f9b201080a84882d234591ecae4b69cc4106d5f554e0a2f898eae93bf5b25c751e37820e6b2dc1acb0fb0e73b83627c9266611e39f87810b612be8a26865d86d7902b32bad8d9a0008fe6654b8410bac3c30e5208f64c80dcb758bd37b1fa1338c3d1999066e197fc5392c500ee63c29b87678e2d656d964230e406808305411230d485c69315a1028e414233463ac91508ccaf39f4b8c7604ddd05c24c4ac717f2e3237316343368161f032362e63c31cfd9a39192684c922ea18522c7ebef49aaf5cabfa57b34e4c6601fffba656d7eb639a0ea3f9a88d8ded0dc57070552fe399a68a2933e8e47b66270c75bffa2810e4b1a86de8758a3cded5f30f8239c5b9efcdfdda2394913a2fbb28100866fa7e52502649cf0be01d644c763abfb80a837d5b19c3154808c38fc1301c248fa3e8b378b56ecd71568a9e4ad5e747f23e67ac7ba5c8d4297f7d75703c6973b0ceaf0e295408cd975f10ce670ff60d1b38340a8433a36c244e3619afcc4e6d8c44232b5a669d5423e7010b5cd4b903e67e246b73faef560672199291fd32459c053f303f72ec4bdc867c594135daeefee4e24bd3425eae1aa75f91fb2adb7582071e2b8fb48872df2fbac028bf2ecfea531fbf10e3f0e865b311109718596dfb84d733506f81ac04c0f7de15068c75fc75cde065bbf168c97bdb3aaa620e4d5b68cae4d6b13c2330a231fcded570e42af813918c3e586c07a37a79bb62ef1b1f44e95b143e43deb6879d115558c40ee49397e42240c888b376ac20c3b6bec91194435a4d774d55512b895646f610baea99b71ac96eef858739910538125e891661b3c709daff7e819009644ad18bb1ca5e9f058f356c078aa510019388aa609ce12964538531dc83ecfe551403aec3d978db307b615a8116d4b1868515afa47f2af79a62d50ecb2beb342b006490fd9155ed80bc2b958666515addffaa5c134ac4bd6bf2462dd77620c6748a9d7f1f8d92ff336f2172d1130adeb8b4a54009bdc1a0708bf472cdfc38fcd3f080445d4a800940f600224fc95bd9753ca411d0b971a1042f50038eb60c908b9bab9d385485b19917cdb387ec108b7ae82343d005639fce948bc8d5b336fa627b902f6ddf4f60f6048ffd9bede568e0406c61d459ab2e9e88dbc25bbff454ab72cf27a922d3ad540255baeae587fb55001427cdbde0024be9ef6713b8e47baee4687ec860b5b744fbcebfd2e40abe8aecde8f466503ed02738fdc378bc012cc88ce894638f19f7aac73b5e95e84a5ebfbf7df00cd00e2afa32588953b052740fcc7f73167fe1a047833ce2cc2b7c910efaac32b7dfa06694e4c02924d912a83571af771798abb75dcad2bc0ce563d9ef2c5b18bff9e3c864c6267d5c3128a54b3ec0edc708130f13d95d0a2189c21bf1ff0ee820244570c36c1142321798280fc550e0e47f1454bab0c0e47d7bf0fcda11a89c44f8677bb7243153270a8bbe7865056d6ed890d47a62eddae7f6e86e07a6defba1c20a56ccefb304e5f9482720cc8d454905456528ed646893ab03073d21c97b77bdc869fbdbc6d13cea7cd8fc6668718f21380e376aa23ddfdf64168a039f2919d58fd6ea67a10d711dd8618ed1d4e62c8de40ada7ab9eeb5a6c83eb6f6b2f9b110a1ed149f4252ec6c6dca3aca26df896ef947176c9c1d54ba273f991b7dbb433d480b6c75c87b2b09d85525f3e4671f4f685fb59895b35b6ae4cb3389ca5fd407df86bcdfef58b2c38ffec2c1900918338874afed3d2fd8d237769bd0687ec8387db3b0d4b384da516e412f2fccea01c1c19f1469fd2b68a9491c9df3f2f7851f7b0b5f4e5fc3aa34171a59a5e17ea6895a9fc457248b2120029ee91302beaa35511fc5a2f8163d198d4fd63928b4cea1b1646aaa179b0f1b165614bdf79546e2e815c2f4fa9251615faed379ffb476c66573cda54857b87cb55b82e082966ffde2cbf645d4242aef464a31706805f3b1c48e38e2d47896d3600aa05696d25169ef15fdda0b017d0010f443acf0d28ae4d7162215893c9b6364283c3dc4a8b4ac414a74b2f075802796904354ae85e28c15ee9480441f5a678a713ca4f4886f122cb8680402d6e977d6969abea1ac85829e9356a798e82b6fdfad4ad7daa0ac75e89699817adf471615ef7e2f698b3fed9f076a13d03758b29382779b7a4756a2488b10a50b25d59feadaa28cde72ce4b092ffbd59468a214e54dfabb03e4b0e66703671d51381c90134b24041734693a915409d3bce7ce6023e13b90566bc9d33a239e2efda680df573bb20ebea9ea1d75dcbcfc3e47714fd2bce5ae4f5c7c810370cca32ddecacba65bd20e6087a8df2e9eb1cfc054e458c51054b4ec5a90a7ebbf442144b67c8a50a07d8a779709645109150526801b4a1038a8c0e805c40d659a503295ec2467fe8143338c5a13c6aeb1de901c9b453ae16f42487a1975a7b3ff37cf836750c0ba4387cfb83bb9382fe093737dc3c618e9768721bcbb171dc803353707f04b93ce1edfc88104288247b6fb9b79452ca94a40c32082c08c70732c6b95a4929e59c734e2254441415ad56355444d4ac0134c7b7d6ab128915123a350f8fa9a8b422e5dc373434d2f27b550be58e4d5e7c8f88edb78d6136231b52a988617e3a653631b68d48331b4c45c4ca62acb8f1ebe9d40ff6bdcf9ad4d2e4db7854f2a25b11cafef665d96364c114a820a71898a2988c28f1a0e481889a0215e4140353149311d91f967890fd61c903d91fbab74841f65b842b6404a45da11df182604929b845b8424640da15da1131bef420c3c19ab04bb0444025aeac07190ed6845d8225424a1726d9ad2cac135422402cac8b89958575824a84395b72e813b38a9e41ad39f4895905a52c45646fe23b7416d1a4d614ec210913cb1eacb7e210aaf8b020bb8a8f0ac8ed547c566eb27fe9a667fafd57845c0cd9f7a26b016f7ae0c8e737383d7ce0dce8e4dc4008e18b93564bce18e9c7151f49ab75d968ad37b493ce49adcb621646a9f5b0db237d395a393a44723fb69319c9fd1acf288e46de7074a196a080504c504b502b541394106a65a39225a52829a828a8292829a8a21e37a8a2c9d36364891e1e243e3c50c5894a131527ae4285ca908a5073fd37b047fbc8fd8ee337b55bd159c9f9496994724e5a3798e97d7662747b3085bd8f3e4f86bf1e4c91dffb103c0288fcde73ae7822bfef15d093515d08099e0cfaef7d0d2e4fb454d152044b13961e522c584942f591963d065d9ec8fdd28e1e1b7dd75245ee9fd7755dd8472d4544cbd232cb599ae47eaf1776ccfdaa56c6d2834569f58be2ee0da55890fb7bce39e75c4902cc509e866abd37956a219f9fd5929c9c9c9c9c9cdc7f1a3a0d9d864e43a7a1d3908b0983f684591bcc10ae607383b985098a92152523a41d903af07a90fba5b5cda37d770222f7c7abc618a3668222f77bc98adcdf252393b4035207ae50f3748fcfcf6a09cf6ab55aad5657e80a5da12b74854ed8535979299696d8d2e20d5b266c8165082f0f23156846d074b228ae0cf37879c8fd6da552bfcabe1ba920f73be6f6cab06684dcb2626e359d4ab32872bf95e51449e99bc6c9e91d1e5411aa0855842a4215a18a727f9693e56439594e9693e5602ef9095b852da209bc22f75b97f51df644ee2fd51a638c96ad22f7936c11b91f5e4d2e9ed51221274344373c3c3c3c3c3c3c17cfc573f1b04c1c581ba84c3450757bc19c68e120f75fead8e258b1b581dcdf32638c31562672bd81393b9007f6f8fcdca808a908a908a908a908a908e5fe7a536fea4dbda937f526bfb470e1628515fe371c31f6869825a720f72c820bc9fd90d637f41d4dc1c431c648f12cc2844552e00dc4b9b9b9b9b9f1993ed367fa4c1776859fdcff485e49eedf7e9a83db0422ce6cf00a50ee07c0caea457cf1c21bbe78782595a7f022cc97a197a197a197a197a1c72f43720a9f151fa7917118585777494ae8a54fadf7a652ff8fadbce43c183f6e279fbbbbcb1b9737b9458e06311044063a2b60a2c344103a2998810e0a84e81c71818e12467492c8810e123a450829d2f141e7a68b3e70a83dc77b158b208fceed9e904a47a5f35e46418820213a0812428320214f086981102584886005414280f84190100ea420288894a0204e484207affc647e9e5fc3545590dbc5fc2c747fe85866f72dbb3ba4c00a59b66499ca126e2b0998c9f6d55adb55b2cc6cd8ecb86e283b7d8b9e5bc0d93e55a601c8f445a67003000d1e14d9beebbafabaaeab71a6990dbbd55aa935af080ab283a020404a8282ac20884f50901e9e20414010148403529c80842020a68002103fe041101042ab159820088812101102880f4140f0109433852a7256393ec811caddfd1a60b752dbc31ea1df814ae388653748c3dadee3ead634ac4d472a4bec37003c01bc7e30ad80b7aceffe5f26c3962d8f1409cc86b7c2b08e9ae95b34ecc4ec5669501ab662769b34ac85d94dd2b01766b748c369588c6297966d14f55c80d956b3cd69d8cb5af8da462d8e4e0d03b1ac46e6fdb2a8552d679ba581a51ce665da08bbf0f58d5a7c9bed76b5d1452d13bd427e02a4f41bfd62ee45a0c851224a4e113f7ee4087992f323e680e0c70f20591001b10110297efc0002a5a707128e3085165021058a133f9e24d1e3848f233f7e0031020c3fe480c96a04427600a4258a103a4400c18f14865842e7c70f203e90404e909e88b8d6063e48615dc00428409478499d4ed408104537e617048427770fe481000102e4c78f1f3f6e60ca49e13c1932c6a09915c761fa6bbd3795fae72a4e5582e334252a729eec44e1294de9c9a61ed527b7c9c74feeaba3e4e234e7a3e4648adfdc3cf860d4fc0716b95faee4b95d1f1747caedec0d4e0f8b637dc4985dcec0bac4f05ebecdf3873cecc8dd1ddb487777f936fdf23d93a125bed2c5fd5db9e9b4aa1563cdfd1e95f7d66ac14ea51ca64ebf3219e477ee99fb3d2b93ef9bcd8be165c72eeddffed21f96d9c45c331b984de63660ee516603e1e8b5a5496c29c1da9194735ed7bce6d571f4a2338b7bcd9fd9632ef5faea43793e2a5fb00ad95a6fffbdf7de7b52f27c08218410cbb625bd43d4dd2e77f27c77f74894e7fc18a3fcc973be94b38b3879ce0c67d9a6dac0a55fb32c5f18ee2890b17791a1e6ec6bce704781ec6d34ec24cfcfe685d9f93d5ce74e3ce6709f0c5e56d0d4d89c94dbdd582b3057527a46a5f6b83e523a4fe4d5bcb79a73f238cd9c734e777777777777772f22371f01ca8df811b9df79dcdd9f4499d2d5f494db719e33e90fd6df8e543d6e1733b4991ff106ab90e7bd36987b7c8f7e6569590fc68351b3743fc95a63946f4729877198896133ce19a5bfcdcb7e617ab893564b8bc13fbe8d631719ac3c1f663c79b038dec77f184fd81ee19cd85b2dc32ca531bc1cb1cbf538e8c7bf708c159746aebe841042484396ad5ed24bbabb3d42f9037f26c4c1092ff75bfbbdea99b65d94b5aabac1cd7a757512fbd569506f2df6d8d727c3c2b2fdd941950db5794683cd167712e8827cab8dae63a492e994cd80b2ffae1db9a5929c04ba007f46439f9e49020ff072a9af23447f1ca013d28829723b993ce3394c0cef60e8199f5e411762b8036577199594dbb930e4c293f1f2bfa8b0806e84114279cb2fc888257c868e610a17e509156fa3c4b1e83d9b19a6c844e19e3c156f892a0ab77b32c8b1c930c7696a1aa63f468c7704a70f693c878f047d1b53e4f6d36deb14d1ed52b90628cb9635f225cbedd1781d21926e58a3e7cf681afaf2532f1f2393e537d79c7c1516b73f7ec765d9423e050b638a5c887348c22dc2a9f5de54eacd3c2aa075a56ed6386d7b0ed37191083e4b7e107c833e9a6b95142efc98bdf6c764085793076d8a02951537fee3626462d4c030630131cc50c38d1b7078797e27b9e900543de1c6eff970a64e6cf370c801023ae4d84107067a401f2f12452845f93df8f0f5ef33c9f3435545b9dd29f75f49e0016286b85d2abf1be47e3126c8ed54a73a95db7f804ab05e7592fe813ed0a705564686e3fe53a957dbdddd6391bf08a22c894f2251248273680927242022022a60d023a8884e101116ac7a15616011f98010160a8970c0032922dcd2139a8821080922e2076e031fa795c927a754821f24217c5c227c7c604404077cd09a2044e624084c8a20b60540ae1204618520881f6a50083a00840e91850f73082384400e910320e2104d0ce1439060a77d089d1f600fe103676728afe417b473459645b9bbcfa2c43e088b1e94d2ddca17968726dc985fd00e932b7680769a00c2073b47768aa8c12db2c381173b712748129e2a1c61a248154280420d41087922058a210cf9c1141eae0b053b3e7cf09a18a18427564bf42082042227a0f0438e1421ac48e20432bfa01d0fc467a9e69c73ce9d1b200c41c290210c79c20b862061c81086e860089321510c7162481343900c51c20795fc828604310427b31f379b2dc4dedf0ec0db6e476294f8491ca127a3461cf8c3f8f360c0a75b57bbd84486a986e93fc5d86fface941bc698320f135695825bdddddd6bbca6a5c82d30b9ddc7c909e1c27f30ab94b8ef27296e77cafe2f840bdfe796a3668a39e37ca778d64a69cfe952c618a5fbeca65cd17c6803afa76f4394e7d3893b2999a88fc2d9d26374d913dad85eaf208c2fd76c23a652e2d68f990d2bd7d858d97677fd617f377af829d7a1b97e08219c31c2c73e061d70a070174346fd0e4e0377a0906ed13edbfcb9eff8ce4e562a7dcbc870dcaabb7015b3dfb0216ef6156bae97e81beb18dc812e783350c84f673d7c6337975ec501500a0f06a66da0141ed70f9f782f1f1fbe602cdb66562971bbf67189bfc2f3a0d1627389d8c58616efe26fb478171fdf05de7124e21b2e7e05bca36f1ca6dfc5ef780e93fa16cf8346fb985ea5826bfad37766333396f260643ffa8eefe2df05b7608b05efe030fd968a90c7f5af4009ff4aaeb9d4d6354ee75905c79073d47470eb9a076eddcd1ddce99cdc7f7b07a7e134dc627b0e733daefff4b2ed3e180d3747a2c5df6f819fc354d90293dbc197d9a549208831163181237d27f3c98452f9d7d11899d4afdc15baf229ab5e7f9de66506408002c4786186a6c600320e00030212a080950794fb49f1426a5bd914809f026a64e48b32433ec8b065a0f441b5347259955e6fdda84f2fab5239df453e8f3c65ad15524a7bcee952c618a374f7d94d3926dc6ac9c71ce66ca4ccc4c25af822842cb0a71af0c276df62ac31df9cb0bd61f7f4123e3d46de4b9fdc3c425b142952a6449922258a94eed138454b980031115a02b4a48913a115dc813a9008d4813bd008ec81dd54bc27543ca228528a72800dc3f3151084ddedee3146291b76bb7b8c514a39679472ce4929adb55a16add5b2acebbaacb51876598b615896659aa68d4699a68d46a37b2f89442a91b21aa41aa5cc06ab61329d4e35502a5145c51baaf4349daa46801f34708212217ea099dd796e55e5449f5a585dd50ff7ba951276471e5dcdfb19ee0de1472644447e98a22a72e1bf9b209e642ebfa02078c82a12dcf860bc8d918a47de78c79738faf476857d39ff1ee5a4d5f2adab5925820bbfab44a0de9b71799c7f277be4f79287379392375bf65784d3443cce9d8737d33bcdf9cc9455949f27ee2e44637f532971e147f91d781a1c8055a071c47adb2e32dc4c420f867f13616a924d387826230de3bf440f121f25fd6302caee4c6e109ac915ba4d1ac65f62134f73fedc940b2d2c56d4cd9301ed920baf131fbc0348eb94d9b0dc47ae2d7932e6fb12263d23f46458eff23b9b71f00e00fdc107e48aa38fdfd80cdf7a2ec0bfb689a57a46e6b4cb9b91dd268988783354c8dbe9199ad31c8fd3d01d87f1aff5de548a2ec9ee6f6766c3c576efd580564a7e90f82cd1a319e1b1b14aac12bbba1e6ef1654ecf481e9e901e19bec34b870a99f5a69eee5c52c8ae0911694b1e0c7fb9693b429ec624e7f48c3683c7f9fbd31da7d1887051fe498aeed8253bd96d93ecdfd12576c966996423290f86bfd092ec6f32d234af4d3c533e4aea4953d15d2120ff2bd4a469ecfbfb03b2859b6408519027ee9c871f726c18f8726b21d51217be9dd6eb07441f9490e90725bc13593c0c827012c40f8284209275b44baed938ae8adbefd2676a10e377f30464cee13e4f4620373ec253051c64f1923a9d68103f412411c412ee09b7d647299cb3a5f418a3bbec9cbb6ac3b9275c98bbda551bfefedb076ff7e8b1284639a594331bcd3947405523805f87863ca757bd2a2a823c906704128055983dd87eeb9903320764deefdfd1e59434d6d4d8583b3307d0cc019df56736f25b620869b52e0cb3321b181f0cebba2cd618866198bd1ebcaca0f6e801f9c238ac5a1b40bb1c582719f56948097a3296e1c32fca2fe41774c44f3e02c788a17cc44eb6398b270bdf7677776309b5ce329bede7c709e9bfd8462f37fad7b63d00b6f9bfc2b7789767f995478dfebd8b979694ca5b9b5dd775651b0e8c05f859963d6401e3c81e63e1e10b1a5878118b50dfc58861f9ee854b8bef4e2b482931963df61d86b10b0b3f9fc29e00bc2600ee614caac732f44b1a8864cff0ab886e9b84f855b893690117715100019014c31db46063537fc96f630dca9fb46635ac9c9985ede54c669b9498c70ef9503ea4db6b20cb4b4afa5352b87d3fa5978ecef2fbc238e46f0f9f28c6508c9317422fdda9696a1c26fe8b872fbfa33fb798b34dca6761a32f9f6636db5f33fcc5367a006cd96fdbcb78dbb66ddb361c899aab79bc02eeaa0bdc02773777352fd805772916dc3dc7a960544d7e98d9587964e272bcf13a9db00bfdec25ec31e14e862be18e7b12ee3e75351cb32da68a2bdffe687b36d9e3d0b0ec618f47e824c7d8c90c7714e091e76344d6da0bcad474f2618d50e010075b1c1144021f3c53e079d2b02540433c4da7c920c4308a6115c32c0cbb30cc6218866119869d4cf45b4583cbf2a9efe04fed09a18470424821ac105a105e105a084b5b57bb9be1753275fdb9f5169ba3152ab134ebeb43c2628ab82aa18b61d1aa6e7063732a1adc9ea6136a25c5d262eaf9a28ba139ff1bcdf947fa26d4e9a4723aad9c4ea9d389e5746a399d5c4ea7976c061ef9748af5c12865351aaba0b8b7b10d0620b043cf34c674f4ccc48f438e563d31c3e14fcfb412a09ea1ee4d269d4003ea77f457331ac69f646143c88346774e11eafd5ba7671a1645d810228110426842b5a905eaad7424fc813fed342c3f8ff49de79146fa518e12b841a0e6a092169db3bddc394e7383c3784e631d1e0cdfc1611c02115ddb33374ee3d78c05789f6077773704ea99ee99de1f2a397ddbd3968309dfd0bd150ecdf9bf6c70d530fe96c2f6059cb61c9af319cdf9bbf4bb7ccba73697fe961b7ac6a4f27ebaa7d3a3bec5babcb470b1c26f14c32b2b232ca6c8853fcf496946dfd033a7f7c7218727c3f45e5db6968d850008808369219b418542e177c2a636bd0a844a9af33f6d1028833f26dc71d9dfac4646df67a923dde7e4e70783403f1bc5b1bda336df7656a3da5a67c4d0a87ef1e4a55441b74b715eddbb54f6f816c658438f1ee65bdf03fd9a8123f23340bfbad830dffa1bf32d2cf18d7ecdbd34978a1fe9945128f210993c08af87fdd7f58d2d4b8ac5c5a7522f9f822efe65a5fd7d050857803f275874577057f325d230f1ef5b88c514a9a1878b7f79ab62723b48c4c5ff069677f91b5a3e958123375e3ef51970815db077799677f90cbc60170cbb38b6c1e559fe860bcbdff8964fcd06ea1f4824474884a7b14f3d0f1ad3b18b0d2c9ffa1b2c9fc23b8ef8ef483d0b767ca3e5599e05ef60f916cc83c6c49d8eb7de404497f4a967f91e08e1fd786b8813a5e2de403d135550cda4695a7c54c1f0a7b9c8042a416d7085f5922743c8695846df793695fe696ffa56e25b0335d74a9a8bdf62eb55c360716b682efe7c3c43df3c18f11b275305ddc6f11ea779f918a5e3cbdbec5f36976dc8e3e28f749a8baffdeb8f6998fe9689b9e686e8f45b9f6d59c31d2977b0e864da3a5269235d6afdb55945c41481587c08e8d0342d1f1f5adcf360c4165fa292d23d4fc68bd230311661f113b079d977882972bbee7945b27ffebdbd47ff68d73d3f10ca20914ae1fee9aa86bb9bfae7b8dbd62bdaa167aec7c08e9b1e383e726cf778bc2edc9d32acb11f0ca749d1b0fc63d9b08681294bb197f56a66351af78fec9ffe51d234a98fffa9d4bdb0a83fd69b8aa9ad95344cfc9980bd70ff00dd4bc90ae8c2362f3771e93f9d9a83529a8b3650d1e0a69ee55d64f0ef6e34173f87e6e243f8e334b08865eb1b8789b1288a1be73be919bbf5359bf4cc041ae0df35aef83e182db31a35a6c8e5b2c5c5a8f5c698f8fde3b387a6b85dccfde36fcdf6861db5b9b57bd4267691c1f37ccf137717c836b03c99e4f833dc18eaa253b310857d76c4d5c41489c94f86b3935a2c7b25d2e8ebe95e532a55fa27612e5fdc3da211ae53b85dbdb2f7c7ee93817d24c52f6da4cd8e1c2b49ec34315436838aa6d9b7d6e22dab7103c6ea68ce3f870eb8eb977f616dfdd81ae4a8a9c18b9141b7759a38c6149961012a1bc4975552dcee944fa9977f2113a3a68b6f95e33f1c658c41d7e7e6f3a0011fc63b8ebcdf319f627ca3eea05f310f1a10773a6c4c91b761f45b7ecdab891edd1f22718f363616b7861b3740ae61a64462df8b98222e7c950cee920baddcfac2ac12c28dffd7f3a0e142b18b0dd65f7fc3fa0bef38427f47bd615998070d55106e7c7fc1a9e65a1583db3d26a97f1183eb9fc36fe8197f975ccf44b9c598459e8575e2d64ae99c52c6e8de1de3c4ed7ef724c4401103454c91db71f9fdbbeceb1817b8f7f0c0c6c0e03d772236460984cf495013395b1336e60531494a316217d337594f5e1bbdf0c20b2fbc508aa40b4bfbd9db4864371d9a730898b61c5e6bad25527cb9698cd2c5a22c9f66ef1f23912ccab61a852e168b6284d2d5e47e98d416a37debd1c407e36fadb53642812ec859bb55d96df608e591209604fbec68043c2b234046906499fc828cf4c845414544c99f5f50099c6412ee6026fd9c7f3b2cd3ee9194f2ed85fd55fa4bfeb57007a5b4dadb4e35e72f2a1b6ab358638f99b097eb669fc6917deafed0e7071e20232dc3ec65d5c8049d32bec7c363849f29f93387a1197aa693f91c7a95c36b42b38019324e33e5fbffdc2e09ecbb8f13c2adc9fe96dcf0dc6f2fa067ba5b5363554adc189ca6064a713bd8a3ab81384d33430ccdb520841bf1bba9eafe604ebcc2c6f888c1890141cc07627ca097bd36fad6b2b6d65c21a599f69c36d3a58d8c31da44e96ee3b33bc7b730fb13b1976f83e1d79cb4d84506fbf36d2cb670e75fffda2cc7329d8f8705e31159a6590dfb866db6df4642bf31b3891dabb4792f6b38c68a1b73fc69fa3b33171b4c7fff8609df203dadd6d7b7195d1ed9c2ccd66a5321a559f69c59ba9459c618b394ee59ceeedc79f49662da16c3c485598ede5a74ca58473fdf6684a746df46c3f47afb339c6e0f86ff24657f0d441e58cf286cad7dc1c77a65dfe35f5b7c6cd3b14125343534d63f780696d9bc06a7f97a4527b9e20d4d15d85aef4da5fe396f08692c6a8e4a39bd5e5a2c5dd8554dfdf3e536238434e01b9a731dfcb3ee4fa9a6d9b1c3cdcdcd0d8d0e3c8d08051600beff69077618a306f284c28dcdc1db75e5f1d567bdeb3d1918667cf496e28a318192328aefc909b77b4357b5848b63f492f4a3cf6ee94990b4bde64ad9bf8c84e3933b8a4437b4ed061c6e68383c499920698cd2843b1f879ee9a06a0917e6ee0d4140871c3d337aff1d7460a067b40805ba30c2231da6e400b33f894f322d1269b4cb7084423f85e14ec6c2352978a145051ffd83d65bfca23f81587d885545b793f1eca9947071582f73279331999ea957f6d8fbcf58400cd896e18e47c6befecb3078411f06c46c61a7f80517f382eb999827e913495550eefcee854a0917cac4a87139631fcb49a00b17e66104919a1764844ef68f01c3cb2edc3fd0051f79d11f699df5b7d2778a6bb47e90524a09a166a366a56c29438c190ee30fc29822d70232e3987f5d17c8d2621988c51cb9ae6d966559160c7d8a6d34bb4cd5b6d7d46ef3b9cff392d0c695a55f5bccc6b93fab3324104208e37549e8d33fb3e3d14926843efdd32bfad5753cee726042d995e09dc41dbbbb7b2719c1f5185f86d6463fdb74dc4c0b1d2269187f6c832b87f1b796ff0e4e6331acf5c6c4e0ba7b51af3a89904308258410c29822177617c80f869a18e9cb5aef4da5fe394e76a55ca6ff964428524a1a43cc092efcb7e459155888b9bb7b8c1f610c2ee65fa45e208ec3c8a7d8534c8962d10c8f590d3867248a453d433fda1cff4569554bb838e6cb2cff27b3e417a404916c1b83990c324f2ae5df548ce1b912c32b1b969442e594504a291fc32dc51fae9ca67d1c46beb470c739eede9252ebbda9d43fc7c54471a5ecfac90462c671c3110a74217e949b04fc82a31e5aff685293af4d4d833edaf78fa669fd73699a865d18d6121305edfe085f5d0eec75565db3f5b3ac7ed7ab9374924e9235f5195d2529a52c6d383490a1a4b054a2d3bafec24aafb9582a5dafa371d87ff55f09d75a1fbbbe54fa199d616fbf96b08a5d4eba5a564bd8db26f5ed516b9d35767dedcbaab8730a050c5a6b2589426b1f4249812cec55af3a4927b124927dd26b6e86db8e5a6badfd11852412b4a411ee7a15b31c8de64bd28fde54baacbf774a9266df7eb418d711b619663b4927e924975641091fb985fc824c30944d2094e18ffc829258457f97fe87cab22c93a80d8706ae2c938f42e1fa7066ff2d31555cd67711fbecad1d3d45a150a8ec5f8617857a4ab31f8d322c01cfa89fd177eb3490718c68d050afa3f3e8719759276882254882178e5eab270e8e7016e56bd96d0eb3f0a4748b50a00b13636f55a3701a79ecb0d652fbf07b6bed7b4b1fa511c8da7fff6cafa8b576be530b657a7afaace60c77da8976f6a6ed394c963d2a1bbd46b3bf4fef25fd89744758b34ca50beb88d93a6191c7ed0a83247c5656de7dae24c1d323a587281320bfa01e24f1299d4ea7d3e98fc6f72fd359573609787e32b3c123d7187fe5bd958f44f1c95bf919bee21f5756b60ee695a75b245af918a3440978863fa3bbf7f4299d2b4f6955f9b96283630577104553993ea7145bf9eb5bacfccbcabbacacacace04e05e7a8c9285ae9a5a9cff4ed452d1ca19c3095b68c78475f87bbe38ec70e7fe89be709698545feb00e776fbf9eaa9c4a579379d95a36962db5b23d87a96dc2dd4d654ff537979d6b99ecaf93b9708e9a1ab73c4289502294154da2c7081253a26720c37f9205905f101240190924b900f905217193e173f81c3e87cf75401c12d891ebbffc36295f17b38eee20d6d1936233ab51ffd5af0f7beb6f3f2f3da5b83efdd18f700795e4d17dd3f61ae68e70c5cf7e89b4cd0ceb88993a86736099da8e078e8b7696cbf7c738e0d3874f5f743c814ef44b258a24559b5248bf52fabdc2b21af4aaf2e18675ad907e6d26d78663f41ac8b4d47df55fdac35aba4a3d6ad3357a53af28c5a38a43fbd1d311d6a8f6156297d1d7dad7551fc3329bd3438c03d280d5ef245f6977394e27782fae5d3b49cdb2a2d1a8767733c171656f2da5f32bfd0ad419c611331a68fd99d1efc65daff2cc688671c0bfbebfcb819952325c0f2f6d74fd40172846f17c13ea7d53f9b8ad7c69cbeecf6892ddb04e07841a253d09bbd4873f699603cbd76bd9af6c238ada62c38ce86bdd4934dc49b22c5b6149e001a65fd64f2ca479a8044e36663174884600008006f315000030100a878362b15896258218cd0714000e80904a68569b8a845190c3308c19450c218810001000001119998d0010e4531f9d54d8dfcbc75ea462b32d8bf552c5fe567eec252ec3b3073a6ac75ffc108815c2810b16033f20f1403f9088207c1b0e9fb0e0ca8a400e454a398fe704f0d6555863afd90504de8a73de63d8fea522def137971f084cb75ffc4b7c5fbc6fc5ba044a605dfbfbf5dc683120b4a13dc408e830031173854eb496781502932a806dce875bede7e7fb2277fd6730fafd6d5dbec44a4117527494858347ab8896c49db0f1ed7e5727627136a9d193b7fb19fc890fff98f69be8951d390e8ba9a9c27c59fb99835812cda23fcfb7a0873335a10692046c104abeb915e7ff51eaa0d0ca06c05047eb039dd455f33b94e7af25b0a31bb0adcea18464a23d8b50c25077431a050c6ffdb0da40dd48646fb943a755a79350c0a17371a41deb20232b67a889ab3c7561fe0c738a4a311747e5988e9f35932b8b38cf19a9ec26c36237962e57e97e874970dcf7a1b559ec0e0190b80e275c5c2ba1d86c4c410f7a8f3e5a3ea28234929349f6953a0931bf76575d986e01ec19f05f18f1ce744f6845d2bda6a5e01a42385befa8133ddf50417f0ebd326d5accd624010f6d163954a55b92a36f5fa3b79ca4c82b846e581923bca600e34a4201ae04d53061c1ec0826efbb4ab85886b3130daf0ec7440b32b9aeac786cc995aed41867a4ed7dba62f98952fd6eaaaa82204050fcb6033491decec0bd6337491f115c264e24db444f9ea848769bdb27af6cdcb651228c07910c7d22efa928278f01ccb1fe6f1042e6e7973d6e70b288100b5201de6b02f381910bc87a59ae3a0fad1d128fda578cf1f7b0b3679c1115b6ab57ea0ea690742c6992bbde40b1e5ad0102607a646dc803930d5cd1cfa758c7e781a3fb785497f140908fe570e5d15a40e90b1bdfb693e5d5d5911df94c9fc2a3c7b7c39a2b1de8fd25046b49f5e60ccc5816d5b09790378dd0a09a35413cc43c70c7efdbba383a0f684762e1a6d34951661371d3e04243f2239560e054756427563d24ac3da8cb02dc1bfbb9246e8d795fb5a3633e9bc4cd916dc43c7bd669645f1bbd5d4a4c0b116ed8c0f9bb33d923aaa0c213732e53bf711b067bd708b4f5fcbc1a0005399b21debb28a9a9e6ff046c6f3797fba405613baca80f742efed6202625a1bbef313aab4997fe40b5795f348296d7c6eff96eaf46cd867212b8a88d2c3545e49625aa86b8528e2fa30bef897fe5c3933910ebcef0fa4cf72cbce31c70776e6e0dd75d6470c514456112173e061dd0f1a70759ae087d17c65277daf1346d7b521389c6d6b6f8b9cbf341e97f7ea23d31afe3e4ea00080fc7b7aa8008ffcb88129de5b3c23bfd0b2d1845d2f808f8807d78c106f395f7ca1488949b3f6b07b3082cfa4919cb890f0c1041234c466e2e780635a1c3bf2b2911de9209b682c056a0444c26a05ab8cc24e3dc4603d4aa09bb3202ea99c6940b966672b98f203c67c0fe5c1538fca8bfc778d89e3ce0344fd00d828ca5fcc5f36853b5882ae11b1bdf4a858e50f664dd328e937519c43fdff1d931523f7061465a70902923eb67ffe39cedf2a397b1344ffa6d5e3e115843bb0bd70be25fda681a0fe624f5139c0d3838643a4a64ae03f60c11d5c87b588bee6f33c7a4f10e8ef03a0a9b3693019248c54e1845d8093bf9c14e1096139dee8541f43af96bed2ea69f5c2733c6bbb05f7f2c0ea875f2db54326e111bb8ccd6bac2badc6e212a2cb75f015188da909ba5f35b8217e3a8a968e8fd09d9641d4a5f24fe3cd458f88b8583fcbf46ea8f179b80dd6527ef47c2b3f22c409e6a89d9ed86d6a7e216846d2c4e92cde850db2bf9528006ae460b0eea62a0136f519a0778b7fb3db1005e84e9fa5917a3deb424abba9b63a49142268724609099e2a4b8ce60c5dd2f25fe4c060c9582ffb11963cd66a86c861201332f8cc057f35fb86f8e2c4696c8f5f58e2dcc0ea3a1b1a943c395a4d10888ea7cb37fd508a5b17ad90c27995092c13355e659bae10e5fb752ec8405fa52d01f2299250374182d61e8a83ada316550f6ad4510edc02fa031e3249c3335ec7e2983a909670fbc5b781b42b8ba4bc0190817d78cdb572dff0626a50f44b743c060f720353aae5f06939ad70dcba3dfbfcb51a5a9e67aeae760c15d92be98f5cff59065fbcc6920c5838a6c989b082f483627b46fadceae93358635d732562c2c0deef550e82dd0bf06d2ab43ba7717280489c96388c83a6770a7e6bdc0eb1e5f32a574a302dc6aaa231ad41b403c6eebf02e7c23e020ac5b1a96efe7cf540b3aa343637fd1fa3ab88eda27081544ddf81751deeffdc1094c46aadc0f84e0aace9d8c694f04c3791040743cc82fbd16e0145a6c8622356f10428269ebdafef51a88689cf79ce4a5ca33d272e0c02c4ee612719c87cc628309045964de9563a2e8e0711288187c3b415c02da89440f41b1e99cedf4763f5b579b70b8dbc3b2780a7cb73fe6dee00c81e02164cc26f03a4c77cb5dad31ae1451cb18691e5c0607c95c44e07fda324ff94218390f732e49f4aa3e8e9b79774247f28b883fd4eedc993cdda541c0b9a25118943a704509609587494967d6d7f730fb534ee27bacd909be9920c734a8a05f0a92b778d53be653aa59e11f404d2a50b3ad70e6418edc80ae6844788c681984f410836f91782cdeeaf9f0f7456d65446c1ddb38ef8a600af34971a86b559e0f2120e651bab9fe0d473588a45c4b7d3eea3057a7f2d830580134423ce72c664f42468904900061625575cb324a1c7cf54e6b92202761230d6dd0114cecd98865cacc39484f9f665a29c732b0bf682dd50d79b9fab5c9205a99411147fbe52fca871edbdf4b7509147f328fb4678d3c1f00252293874b450bf8b5c7fac52f50980b8eb48c5786e3e15daf28d97ee909455c6c95ae5fe7f97ede3bc9d57613cf29482790757544c2a7827c2178f9689f3edc375882c950dbd0adf74b512517a2e3bc3c2deedb29c46961ea4485df8aa0b68292e26d80643e1912f30ebdc12cc17846409fb6bedfdf02de422993b27d3dd2f372073f01c7e7346a743d6877bcde64adf2f22348322c712a790bc922bb004d0e5b410d8cbaaea9fd7449552671a44b2a564a07df2213f04e79a403304f2fb3c1e4751b804231dbe52d5d059af8f84a719969d64322afdcec5abf1f6e2eb398d1ac810862a156108b7ce0ded4a81607910d7b34a6f78fb3b8473804fa4596bb01a682945c008df101a321a4dbc4bde00dae9b32de5dee0550dd73017d5234b4508259de16b7d3290ff84952902a885c09d97b88ab25c07e576c784d795c0a687df8da3b54ec0bdc18d1da1acd70f8f601bfa50262337cd4ec82597dd1e89def44f1401120b969d3b4dbf8d7c9060d12d8b51ca23726e26b638d2aabe6b2cf0b6295670ad81b0796e0e58c580b73b68ea4738e52bf00ac06e18f70112a9d13ed2c97f48505350be6e9051b6c967740bd0d41189a986197743b2bd42f612f9faa4753a5be3ff54fbca75b1c8a326631d0d6ea694668757abc8f39a098c0c8acdfb94fcc732f80af56efa873144dd77f5722188209dcf3848e5b42f6af2ceecbc5fbc4c1c778c02c577934ad35ca7892d453697085e2848ad91d8f10161d8b377485500816feda58f8eacc47a608ce1654e997dcc8bf1c95f696de6cc5d8178af6c0b0f2b79a5224c990551950e2c4806f3124948e4d399808f1b3dfeacc8678de3c1274847fd1d13059083546ca82076c2aa024e0015d8b5b3d92321d8f244c5aa3bf11ad6400a5fdd5c417726ed47b35470d2b3d394cd5005be67f3b3ff0860af09b44c0063ad193b238feb80c27bde9eefdacfe996b098f5a31f3a5d230b4ece2f092fccc76a57a5a8e1d0cdd5d15e19de524a1cfdafd88f3d7469da693cbd8850a6743e2596b75294d7badcbbccd9059e13ed104ab2ee592cf719f1503fdb86f6b0f7f0322de5fa3cee6d75bf0f6800e61e5ca53f3c9d2f574d3a8c2adac74d611e83581c8cd7a92391c9f00e09c7ccc723d51463ba5d70ad841b71e1df3e260a94a4738d045223b743e19a9d2f59fe403c50d776798b30b81a580f155c59afa3e73826d9d3eeb47572d3366e2f268fca6ccbe051a9709303ab666b7dd911b089c3060533e582c143a51e001cc790cc511b85e44c0df5214419cf7a59b726b6f9a143fb3fa360317565a1f9fdbdf66bd676f9ae76939742d8bca438e08dc612e118b47b3697c66ef0d07c54db57a8df1b297db73e3182b524aa32ff7986040b20729e27cb84d2ca176cbeebb4f3ef6e082c9634e481cab23f676ae92734612497419bc3c78de6e86178aac4b5d265ee59c4c1d5b58c76a75a76ad914d6b02a9ea387dceba1fd791eb38d1b7562e91f776f5d7e20dd790f0f093c60aa815ff6f4bf82081f05f70a74b8257ea0c8dd449e91ac4ba25d782d51d13b10ef1f056a9da885ed07af32eb3b14796d01be87ae1a7911ab82ccafcee574b167c6e21e7cd86e8b278905b513d9474535869fa6577fa45cc54fd20103da2aee5ed060c63498fd393f96c1e1cb1ace11a153b6557ef9a7923355bdf46e31b11d5226487031a576e5044efa57ba4786dc05ff1c8fa0a4cadbb731c35f5b136eb334486cceaee44d32c49d3d300044dddf059e1f93a2ea656be1a63fb62dc2d84796e46fdac8e63f15d721477085ef941b0e878c6246ee9723d5105f0427f51d5a82c5fe66b05e51dd6984db3c8948fbabbf0f2229806129fc44612005b052c28b194c93f6376291c0c20e2c133ee5df9604872b02d0f6d943d498b26c4485698dce4df73d3179e379ddd9e3246f2bd8bf12a97903097ca6c5532e60f50b2723f7f592dac6669620484045aad0e790a02eef07e97ba8f43f24983cfb8e17ca0bfa70701e612ac0d1425db9a2d474f724d0fa41cb05e5a4a1a72e51116d1298aeb9afa004b3f4080660890345c3f34d80509b286c0b436a0458b79ca67ea65c8076a8e4639b442b84c21f9e893e3ec85c65d348a3e596e81d32274f4e9adc878612c0050c1e46ff60dd8d798314b7c213db78809c61f724fed15961af80091eee63ae0038aaf8458ea4e7a9d4f5f23e2be173c48643ac04d470d920acdea14fb69327482820f566c42b8dc72ae99086ed36051bbbb0460195e7e640be2935cbecc6dd4b66438f078e2a034a6678c707751752ed6917092feeb7523e5a55c5a672c5fc8f65ce27c641421fcbb346245984b94e12b960aa6974bcc18c0c93770c06a70ed4afb42376c706ce1697feabbb920451b6712e37e594a51afdf1f396481a4289d0b03ce05e3a74f851856a180cb0477f5330163b9dc0d7816202eccf1acc9dfee8554def4760cadf396ee48a2633fe5f310d10e55e1893f1c13ff7ec5f39045b279ab038ad34732fde06527dde1dc3aa78fb4424ebb2660f7aa5b8947d3b41d0eef32256c7b07df0f62b0bc15838a42a6c8d5e272d0abc9f25241b0901c8f474188f4b6edd0a2a43529d8e7ef62d1a63dcc56d3820888602cafb25e2938529d6605e1cc22a1166e1cb5c47585d99d8a9440c8a928e8353f157bd550f0d1e3c0d48d0a03e532d04d22c51111172168e526a4bf9466dcfbd7cf42784c5c60629bab8a574b1ecc6e3bd491a868d316a208ad99f3412521286f3454ec723b5ace5ae0dd39fe0fa7943a28b4afb8bb1956c827053e8d3f2ae0aac283c531103e3a226bae83484dd64cde89c0e099bc80680f070860033b5a72513b78d0067a2a446eb542270055787ca4280d6049074379559ce2622b87b8be6c110ac40f08792da4644958848fc78e99661b8810f56a4d9fd82e753304755ced8957a3aaa526f9e88b434a00bf7f58a93b0f72b11bd3c9d05fe0a3864452911af2d5d704cbe85c08288011bbda1ce6a06a1da47970fe44a2e9a98c1e214cf9507d77d050b86d069f1fc6ff9edef5951ec1695ce4871c5135f84dfa86ed6595f902aa54d9c3d1bc28efdfab128e638ddac0cbf7be6bd9ddc8c88047f0281acdd9ec8a3dc9ac61bddf07cd9a901c01ec2062a351ad7321a6f92e656b8c40853216c33b6ce0578c61ef5f57924270d36356c970a28b5acb6377388dbb7b610d968a5f8b6f8c343604f2a4f6b397784fcd440384e48377a26f4013f5061ee274f8015fe7ca084af43d63a65ce90a01d07fbbaf7dcf123d8c2e9387d9cab625ba9453840cd213f70263fd974f435e930aa40f3c2c785a3068eecd796eecde861474389f57482ded5b416220e834e99840a68b142a0b322ae83e012de81ba7b859daf5b3f7cfeb4c186c33523466c4a3228933fadf06c7aa6c4077caf68fb5745e5c558cd7d9d115e5569f186c9a2dbc87f7a9af6aeb82e0b4fa509e7e71be3eff2b89525f1375878e3ac07f1e2eabcf7cc6dc6bd9071be4cdbefb8a1a7888295b1feaec7dd458224ab23cc2119010db646655b2a0ecd881e66c22ec34beb95602cab35ea4420d62d9a7cba0d56e9a3d2388ece7560c3e86212040f6804b17509c5124970c1d65d6b7140d4fe635949df93f669d96b2d4d2b20c7a0277cbec0c975a56ea351568e8aafd2046883a9f82cdf5d08b7b879fd8a5fb01ca8fd327037129ce60caeedc15d87a00da4844f92961501ff360ce6d6e2eb092ee6897967b2e7abe27bbea8347ca3a759168c5abf74b842ca0f5d61f2dd5145dac32157d88a007573c96f2c9181cc27b5ecc04af093fa0f1cda1107b91acc96163042a05250fd06c60cf690c1237c0531a111fb9b07952e14fb882321642d3e953da770de5486de56a828403792330091f49c27ea6228cafe9d9e8315a90d181b18c598de5805568fdf11b8a0a0890c53e5e99b652071640e32998460b41397284290ff13b84e403fff007cea5a1c68e302512399eb3d774d883a4c5ae6ef1d41e1541414b91b2bbc2129e2a832eeda99de27d4b2f203407ac17b77401752081b3d6c2a3714208df1d2c73b104d1edc65604c3b7bb3b7cb810636de0e6bfce84455aa4127809e49d3c991abe4add93e644ad8802b084736c253dfdb28435dd51013a983e222fe8f01128ca4f6459d47f962568c7d784c4d4ee510683ce23c11aa50500cbb187e332cd7b2963174e6eef19b8c1ffff5b4a175b418cb8d4ddf5d61151d5fc691855dec6dd8333806072e8628949fb2afd627692cca7399cb215897583d220eb587157116236ceab30e0275b53ef41c0e5778e7c35a8c34613d784972e180c51d8b72933a9b1afaf23950b934376066bb7c96d33c03a93e8a5ce99439f83dc1d23007d99618e4ad20bc946e5f4f21c28f4f1ef04372c4c25bc5bb1eaaa945fe3fdb9ccf51f7bd85356752dbf400d5d45aa855806aea9985fbd18aec42861666cd5653db817b762f954e53d754567a3d1ba8add5bffaa181678fdc851a8d3d4e141e963ccf65b6c7962c1c4f0c81cc1166fb15f6cba2b997c283292c4d8d7ed2ed778ab74237a4ce5030ad9d9c709b05d4ecdab2d6b14b349bf17df4c40d90deaa5fd71a2ae51584da69c121fa45a2296fb9dbfc999a7af553779582cb3008f9da307c024e859a01fc136ade7b1222b513d38d9a00ea67ea22a61cc279f38daf158c5137debcef394a6f687f129f02712571eb538d0e93baacfb86fb5d7ae7fca36e74ed9348f26351aca41c7f01639668abf683c729fda1767fa8abe8b9a55f3d78c33a23624b8b33f70b99b6b60e2dfda906b91175c3dc4206c9994789ba416aa6faa1f40d0778dffa81d310a2693f5da2b16ef510d59f7194e016a73914f651129910a1c3407d66682e3a122f3c064ece11380f25db24bca070e43a467789c2ab9e72f9845b95de609c9a1ea1e0138e8c6d3053006d3fe2cf161c6fe51cc1f89d7c2798a5e55c75ae4461e04022738361b0615f37ce367567bef375be7109cc48eb125c3fc836f5ace2937601d831ed0f035efaf7dfc08901ba93516a6313a94118d962bb8ca01618712b088652debb403e4a9106abcc30e64ef15b88f529460b32c85de1ce2163c7c2a8d54061e6526f25de27879d280388213604dd0ad6d7b661f8bed44f5920d0aff30e03ed254c1127a0ecd6839c0ff84d428fc52876f63a7df9c61161ae50a76ed1654e41f0c063371fbfcdb779c3efb00b017260e969853a0cb93bbc962cdb00f67d16e678a48ef371072f0e22cf8d720aee444c1130808c9dd4dee77896ff28f953eeff795a15b0cd0cccd004fd74f86d02965dbf2e105a62c94b2761e3ba9dcb594e3711f45a1de0330dd94f7ecab8132eeab93fefadec496823892dc23d02f53746eecb787586e7072ee07c302676526248ca5bdb0ce085a36684e25d41f2837415008fb420419759c9f8527515dbd44f0d0ad4eda486d4614f4f0cef75a8c6506a7f66cf0036e9c1b92a682641dc081cd3172b8ac0af0bd127c0f49733ed6e1c94eddcd39ffb7e4b2efee8e3c4db0be859a3e9f1d3382ed6cced7fe71e9969a5baf5fcca1869e00eeb4aae826e449a3b68b90aab10bc5b5afc6d571caea859fe98e3a5399f12f3140388c45b5f897aae833661fde16ffd6620c6747055cbd08e9509288dca828581b22e286e578cb3d1f4a1c39569b9181eaff169d484d600552e1fb706862e7a95ce67da5933a1aea6176a6fa85cabf5dc694faed4b74c28ea26d0422917fadbed9738cb6acc998ec6e116cce8ffabbe4ca1f9c9eada6fae6026d4d8d69b3ac251849af3f9ee0b01dcda666655ec07649ad931053cf3b3c08a4172efecb475bfbcd548e0c18f9958f1fcd7552bc731cdc97c3b4766a9686faec0da3658e4cdbb64758357650a2c69a07cd09ce957d2e61ece5f16663a73264654da9e8d957a8b2c6682d8673d95cebdb9b0e2b916d24f08f832456e0e72a4eaa68846af9c03e79557082778d7af5a28eba67cff1d84dc8388417e218212b5abf1edaae839d126672c4d48c951ee0126f63762fc2cea3a76969303b1fb813b2162adc901f41b99173a0f94edfe85aa1237ff0ebd0956d5a8f937b065e1ca9d7692debe566477c3e31743fe9c1664f8940dc414d3c63987016d5b340999ce703d78ed0ee40cff0e98d3b603fc1e0ae00326364a762faffb949d3aab476c04c2100374947b57d05834cf827166cb832169f86bd86cd146d81804b68d93def0de21f9b7d1beadacc2e80c7a37d8df0866355f640406f55d6249a3af5a68601e677d3673c5d2395910db4130aa8046850513cb3dfb282cb5ee1f39495841fa804cf10ad3d16403ec72d121dd1040b436d3f9d9e689a757f1b1a2bc5c510792cec79ae5d2d988ff1750cd024e0d58ef9b80c98928fa642175a78a06f0cbf64373a7ba8c449d819017a491182c873ce4ff00ecbfe92f5858daaf525b889b73e3c38dd03f1f0294732a75acbfed0c5802adb1dabc73fe104e7cdc548a4965ff731e1b0f938d307f5bcccc5d3bc8224c03da1a9b17fe3742ed855dff069bef40e6d4e669cf10ec7ad8f9c18213bb9524a8f33b7fcea80231eed73da8a8aefcf4c8f5aeaee4020885e4207d8b52f54e85714a0af4bee7c3694d48705f170c45efa94eb472b274587a9687f55b355cb89983972ec3e15233fb7bfb9dc96208662d466e60f43652cdad92c894b9f08ecc8b79d257a2243bde7c162c031027c474f02458a96d59cd137449887ea83f903baa97813fa666b04d78bc8a0ea3230cebb3a758b55aefab336ffd25a3acfd4bfd211f22277cfca185f6d130d37756e0298feaa13a28818121cd1e18f02295dbabf7fbcbad4a184e646c8cf223e781d846900e3bc0a933be0ba48d414fe9a899586e1dc161f0111c9054720e75187c568a8f82a3010903be7945259e5d0c3c88ec0706973d659bf7627754b1259ed14fb0ae3f2977785af9c8424b8c21b1a3781ace054b8a8e6139fbd21adcf603df2343d7ea71e8aacce099e5b8cb87832cfa52c7aa91e1a62e14be1249e9db2a11870c77742c29b43359b7e5080e9f553fa12fbf3ff47d0617ca19b1fbf926666d927e929fe00870d3520a543399794125e5ff5e5157b46a66df64115bbac75b7d122bc6dd961c7bcc8af538fdab1f4bcc8a774eac8e0bd0143530c508eea3ec6776eeaa211cc1213d527333d6ef4aa18345f797a03190f996808ccd93ed675735b3af4cdb1e968280e7a0c7d3ee31b59793889a0ff7065153073dbb96ccfdbac0c45229f73042384a8dca89c8fc67b403b9575d654d31cc1c2659b8aff5523913c578f8a51fb3286b49da8abf4c19e8409334deecb3e3cef9ce8f6f464bafd8cd64f4dd7cca2b497c3c3b5ff15364901c741e967507f6625e37161b4edea8a6ca788417a1e5639fc4e5d621b9f3c6fac153d49f56714734f2b7a749179f36ffad175ddfb030883211cb4a561badcc1bad0ec1667016a87d1e6bcd4c54fbcfc06333d9d43923f22bf1a9a68d66adf334a3dad1c5b6ed595c11ea85a1c30582871063b6194f8f94cd1b6dbdc7a8da84666b016df5267ddcee46e30e09176ed698225458e75121336b97c8e9039850025ce8f502335da1e78ec32ce964effa14202a1b5bc7a233a046240df0d232dca74daa05fbbd93a1afa648e9f412c7ef079c076428c54b186db6f4d13e4b126db51cd1f24b05ad5466d1b270b2d64f4ac8a92b9b934c293a92d29548bef39a042f17488b62eacba0956598bf07153f96579adff182a58390c5ba3a21868f835e9074cb9a2f8ee9d101b2d96472eb7c72f8591e8bf8a2df0a19c5cd91e7cda3517450c5cdb1ea8a4aa4131f2d6e8e0b8b4757cca128815c5f5a5f512ae0595850031efb08ebf5fcc1282512bf6899dd512a45975a0b0277278526ce4ff1115992b3b28c635da9d24248bccf2736c582601b67f6b3cdcff739b41fd3806e2ddf70bb9ade967c311c770df93362018029850056517a901ec4298061b8fce2963d608bff6fe8dad8ecc4d175e620b5870d49cf722ae1ee77194d32f2b9eb3b363d961fec5d2674f33780fdfd713dccb8485c569499af4edede2b7c4607f17bebcaf4d1c7d5659ddd17a1a85696a34e38f5c37409b0247770fd524e8cbec4e7f9de0795015c13d823b2546e508056fc544528bef500b899370dd4db0e20dfd71f42006a2a790ba829068510a2bcb72a979bc3bf23b7bb29897dd097119f007f7f8cbf24c08a7d7f9c3b6724e243c5db6d7c456e8996311371d5b0ef7524a4944bbb256ca252ccbc48672c33be3acabd10d83d29c2175e6c832dc2be6bcd0e36385b5fbef94d8bcd04150189772873d929c7c1fbf5c7893a356e29f2e7fd35bcefa26bc3a2eb7d1c3a8175f7a1e875dfb20553458af22bfc609ce23a8752217d8267e0eef4f8ad3111360e569d07dd16a0adfa9e535cd0f76aa85904b97d0478fd64484a0d9ef34ba3a710c5e6f1824b8c4472130596360a1224e674fe7f3bb8fc405e0fa5fe8420fc3b28bca341fef0056ad2b1b66ab9aeb63ef175aa9fc522371abd62826e0615ef119b9c4f0898f16e41cdfc61fbd651eff1a05bb4ea694b325849e339e319c2386e815600f5a318b0ddde0fa4adc5847368a26528056939c2795f20acde2f6bb0a60d47701d8692865e389673d8cb098d839e4c78576e2e684acdf6c137820878de9ae33deb049d61020c965276185916fd036e6834c8600305b27fc718d94e5918ccb6dcabb41404849476107b5f5a14c73f3c2618b25742634ae03e8e82edea20de3339210ee835bffda3d39987878686b6fe51d4bca92ea10a50c7def885fb4f8d6ef444288add61d8c65373fb8d3bfa317f1b8d41e2d95e0116188c2e3b29b46788c9fe4fa74d841c8d45cfab0134bb6960e2bb959d31a6d4730428d9cfa4bd22c4511e09f06b839a0286803d5ef126c3751743ec740156d080a87fdb4bfc4ea878a8063226bc2c1cb41fef242fd073cf5692915de66e5fddf6f424e13eadc0ddfc6bf515e38251cf03adb4fa29b9261b8e06ae88054e0f4772781c6534079a80f3328375036740210178a6b1174f6c54c2a1d73b2f39cced27e2a42e5bd329306b5c7540397456e32748c4e826b36e94a739378c2bfda58293cf58b488582f2aacfde90d2e5ea2e6e821ebf08df82087d3d355fc7903435e90f7ad37c5b7bc17dc477a1530f1116143cd7080c9566563118b83263af1f3be03bdb825c5911ff625750a737095ef9a6e35bb846fb04787b838dfb30e3b8f26629f5aba603180aca50216437aad36c9c3597bd104023a7e07ac1db937528b11d0661b72b7e12dac037ccfa195fb3dbde1f30cb4f5df0035182908864972d2095b37ccd8b00b70221314603098403236a70ddc41ed8cdbbd68b9865928d4f1ccfa775f87ba83914263a2729815d6075bd4967f28a74c538d2900cf939bf3190819143645670f22a73f8c3578aa9d5c23724cf6c1e17ac5ea1c8b21a89981211958f22e31744462a41603bb9bbce9ec030dc01763a5cf4682c67237c3b3bdc832ed401b1cbddc45d36d8bf8eaa9abc5c84dd116e6e8e0d6123f7c1344faa5ee297b2c1277f72e985050b96eeac93c5e0fb97968209b9aac1e2f40118e14da070c3cb8e52a9b401aba6559ec1ebee62459c48fb212a53a9271dbccd071602e6ed39b4ef74181f67fdb0ce9a2697a72c65ab5e9febe7fd65f0bae0cd50af05085a179c13402dda858f07d3d828708bfc124e68712ba2ff0463b8553a50c15eaa16637752e71a0b30e0b64f3a66d0708bc9e62bcba77bbe3d9f57dfebaa309d05275572b1d68c53bcef5b4ed0559bd6d86ca576f17a85906559232a516884d6943684f0948a5c499767881daf03361dfea310be48616244505c51498678a0d2b8468773560576c1a9e49328a3492c2ccec05cbb166fe6569cf139503ff0609eb006b8ac04233b1d2a8e7f6438a64c134032f691975f2e3b76e37d90eb4f81d61f984f05f5ad0d99deb80028c1267b683277aa5095427b1fd5f8d2d9d219bbb1898f421d79e659d0aaf7e752b921319934099d0575b35cdf8736d45e2002378f714f1e0f1f9a89af372829b0446811d701bbe66e37acc29def7512dec087439a0ea92ba1951959769375bd2857c4763b3a808151a354d92677f649162e914657c2929e5d6f839479b6e596473ed4ea2fbf0f534c7258034c29156e5c6f469f96d049335578f530873cadefa647754963476a8f68b18a53f8acd8418360006d0e9d4748462470bd0eace520be3a7e845908324b417b80ff6ac35bc9fa2fd032d7f3ad7fa2c8830258c53b91e3711089023710deb86222695283c5ea83b7661e50e4a8b272083b29f69cdde474d762d58e90c4d6d0128ac6800169516613fb64dda36e3437ba6158e4d0a321e431882ad6387847a2ed109098e5303f09f03e1667ec7e3531f2c70d9ffd918bd35e0066d270dead4e773a6c4b4cbbfc45116e2c474b5dfd3a5cdc716c0f466b798f100448358980fbd57171858bc4202734607eafc0dce3f553b17fb6e5c392c209705b19b08b34a608df75ebf03822905f024daae54422357d0c392e00a1442ff6645033148fd8bbc75585db439512241d7f645901942113d7830f50a5e967307930093819c1cde2313b9626a3fe6e0d2545cd7bf16b897a04960ffc0987c144b701a914a71f4b25045b112ac16e59364e3918cf17cdd0b1234822702b208000077811e580b0e527dfad65313072155e508f6abb4698c6565e3ec46ba440dfbc14b0ee8c0a60c2fc4accf50de530cb4b86b5d8b5a5b6421c94a180dae3fcf750c1a520f5d4773bcbd95d2f68ee1afa330565b1a8e206c509828d517afaefbb16267d8e8188f3841e2947fdccfe5e507423102a1fbffefbfc6c28a532652efa012e2570d2ee987f8e9e1ab8878853ea9281e9f98057782acc62e086febafe6b4c99e90b61246a8cebdf438f1c2d6065f633a7047bc938f76b07b1a090c2e68007942cf9dd35f096f9fb0af84e6e25e230d8a0dd8245ae8b8305605c556d755e1a362fd1efac118933001ca372294fd3933663c6eaa426e6a34c161ea15fd21b6836ed9166544b489e70ad989b94d58045392d917a59bca6eaa03c6171008e19e5b910d6271f56436ecafb35816ce02be423c0e00b018dc9114f14161c93098ee2e50d8dc7f60469e18b686a157104f1efc95528d7abb8158dc4fe6c22b505abeea0e0b172d1c7fc7eec790c15c619b60bbf9f649e6c9f312b92961103aa7b131574daa1556c8053750dcaaa5cdcef013364872cbf81230238de17024edb949899bc7a2d73d6257e0deb5fa78cfb2a707a07b6d80b283303a69ae66cf6649639658dc20e7701e68a0f872a140240678d2b5570c135ee4886361636f13b20070ebc36465d9d7cbcad2d3a02398352368bc0f6a4ca1a60e9b696448f51a7f11ba01008643d159c740aa9f70efd0e217e8bc0244ff97ff4dd95ad6bbe3d5c17b7c29bde2f07b7c148d8e09b7b6ebb5486cb3df4b2e8a599afb4cde896fb0006f3bd6dca03a5832c17421d62a2f85c6c4717b26a0d2770c4a8faa801dc39699f6ba819c02711d75219f3955a39a50f6389514332d4a83d046494247cc4b8fabd63e356b0a165d1b90e511adf9b6c1114d839787d6ec54bae0980ed6db9aec56ab44e14fef1b86ef2cfc9507ecfb96610bfd3628c26e26be9f9f27772399f3c7601646223e4a90225ec0a13dd4714a522871588697d010f221588963fbad525ad85a1179a0801813c6326059a04a358bd16fbd7786409347478f212d890c804459362f3bd2f91cd30e849c9028ce6fa1c3cffdde3a17644f02ffedac9b02e0ec2d1e17576b7a5385772954a0b54ff36facceb8230e3943bc8be6f68fa456b2a72719dad408778f99ddeb88ba2ad37f354196f2f2ca59a156126082a297d7d744539c464b12ee15fbbd2747c387d126c46bfab8ced6d7490275005c4eb16b01253efd23244b64f169f08f6c5b303d0b0c5df074fd425a3198fd44421eae16084b2ba9768467b080c4a6f5fe618871f8ba62c2757c945664de328f9fa7b40436e295ce74e16e90b19e307853590ba4e46e5d031f82a72fea015b2590720c98eb8252b3b9cda38c431c973de3db42a413cb9b8010ec1916baeeaaa1def12e5822adfd429efded7fb9e53080c8ee37915231191f0bc17e6dbfe0f4070b5666d156d76a607c1534980bdc5cb8c800a64e649190851af4c8614d77e49a061f33f81568d81dbc6636f1a14af0a3f63bd4ef03d696dc165f7125fb506b2bcdc01e5468f4d21586a00077cc5c19d1d92e670888d39d6d9a4991017bb0582bd16da641292ca46f8743673fa6957fe38bc80a67b3e2b7a3bddb60bfa856902577e37229b018003aecd24d76945950f79fcae8a0357e71e128be6c40cb29864f0207fc9667031a6566093cea79b47f9708dc84ee8a9eecfaefb7d7dd2ea7531f625a80c5db670cc590da0c44a822669253ed79bf34bbb36d81be595d0cfa1b40cc32fe0b23c926213be1ba625f99d8263a31d7d84e1c2b2635337987ff536efd0778087dd5f1487d59ac115aed28b98cd2c5f4365159c9d4e4e91dfd4fdcf4dffc5ff89588bc01906a7d941627961ee10fa7e9100445c6cd6ed69888762041e811d821f5e79a826579811ab6bd0e7b3f5f4f337888523023544502f5defe1a0405a1f6e8b2bab332c2df2c4f6cd4e6a6db649b7e89351b2786bdef165cce53ae6b7696c4dd1a9043c40e36c0f8ad2a784c5b429b560981fd26bc038e49f554898e995840a43c733a3577f1173d36b35b34a3d20c425b09ac9f45e56babe02fe7c873116fc25f1e2be3af58d743a2c99e31f3604d4b5bfecab501994cf4e989b9e0954b8b08db96b68629cd3650205bb27a75aac707ebec67e6e212f70802495852dc7209cdd9ed5df2bd1f00220d1c7a31c0ec58871314d69e469d1edd7a1fca70d113c7d4fc366d238f43af5a44e5718afee2eed4939d998b0b92a0a81b8202e01ad31a63c395ec181b1ebd0f3853da18b2b53fc47f8bebd2c916f51c0399e37ada3796d76f82867a5d69ad5cbd9e3365a66f252cf4abc2e91f3ff35eccd57583db0216acb68680ae824d4914d17cffa58b84e6ae03d44f454031b2b6b9089489368ee3a12fdfe249c80d0c2a5911eb8f0e6b793c02305e47b4332a0b503a3d7883c06104b04e32d4d75ef9adb922612548525cef0d1b802ef4750fcc1e809389e1cedf6e9bb1d89fa9837a6ef599770fc7e65cbe1f14bd0662024723e64e6b5c318d79f5f4f6ca5f81ba3a5e4607b2839e3468919857e60775c31eb8c60c21c75c060ae479248b5c9c766893c130d554e3e6d0b8594145d01faca913e0da5f95935168fc34b6b9251b9f93f05e9b359dfd43370363b10a3826aaf8ce34dad05394a34971b7993635425303bcf622d2be12b92ea90836a2d6ce90d1f55dd9e34ebf0ac80de044d0d1ff71c17a94c50fbd5523a67a5be8d9cb32d3504aafa35623a6bcd44a10a2530550d827e87763f54f887ce584fa9cc42e65300dbf9440a0f21662caa35bb1344406d598840fc84cc3788c152de5d5806b331b56fdbb5ea42b9591483cc5289b74ea09abc0e216d33d86efec56a0e8eeb6086aa4db9c9753fc6a270909bcfd3999f9fb597e8cf21e8cdcaaec7656a74c7bfe3c78669df360b70e4f43bdc9abc6bb360513dc80434e5b8e8958f9cdd0cd769cee3bebe5b7800b44fda766da2e700855cc26996ba696d8aa2e4d426f7e91fa1c1dce1d1f9a95449f1281140e0cfa838e440102e3bf05d12a7754389118ee0589e7d3fca4aa8e9397fdf4929e2fad811cf9357cd35a1f97bbd716f9a46cb023336cc580e825c717634bb2a133e8a7264fe564a995e0a1cae6e2366bf2ef6d518e3ed4d59b1668c9e74b77ebf87f49de463d38f782de8ca0ba953b0d34ffad60fe0e1a0422a10f5c8bfc4895806039fdd33fcfbf6b2b2127fa652364274ea7bac396c9c33911045f1f6cb406c3857f122e293a25f25be5bd392639823fd781b6111d1a1a1f4719beff45905121cfd693b5699d31c26b5c9297909b741fb870cebd527a3fe2781c5ca90c3ae5cbf999548d7f2950493430cf863849787bf9999c0e15b027d340ed4abbfede046d3564fa816eef9d354cdc00dc2c179e035ec5fbd04778d075f4be3420d0991cb279a26c2aa558811d357b07060f3701226a98a8afd9e4b5f893cbf5dc30629ef4501841b2ff65c7ad52ecf11a3987e7c6cbc008ef487bf4eada08dabceb1408418c12489abf25f3fce6028e938af7a39ff00d7d84bad2794be2de817ae7a6a475b3f9785da795a32ef40c5af8a21fb66516203fe4bf7e742ae33627c4f07fbdeddefa27061758d170e31ba9f92888bcaef73447229773b1a07791d0fd8fdbfc0f1852cdd8743bb72f31dd3860d303bfec51e50b3fdf31744d45c032ea7af4b182565dd6a086c489a352904f5ec738708c62a303c27bdb03380b2a103ff66ffb605ca20271e1becd0368910ae2647f9bf100d695a9423cad8478840663a0b11036f9c1f355577d67cc8173a36c7480d8b9cd833905d513273a6f7b8030b33ba1ed862186d6a21a6d6dffc9060843017d4658adb068b9f93f9feb15614b9a0b3ed318d200b27af9067e87a213254ba171028509b3c2ac77bd39d4524a98bdf20eeabc460507e51d64f34620e464bd54d8bc5e8bbd79cf1cdcc9ca7bdcc120e3e480490e2d476f4c72d7438f7948c3bfc8cf54f22c3df3c0793e618746511446bf3250edaabf0fa4b674be28b22987e37118a3b2010c6e785f70d79727e6eb70adb3db4b3911a2ef71318bfb3a091d132fb8c160f512f38a5da3ea6be4fc0be3604cc7fbe5f467d19d846676e90f1d468f8fac6147bd6b05f3b373e6301fc7d2a95f6474e2d814be588cba7791881932a1f68ad79e247aa9622081cfca61b182482fab01e89e9f05163fd0e303fba4f22a85ca6b10aff46574cebcab35ba8340af3eb974390bea6a0359c6a964455c46807050d31c49cb986d7ac9c4b60037cb63aa04401e3edc912b4066d87e00fcce81d9805738e8bfe69c0b2ba0918c6a034e78e1a0b266f93e136839e77f910bb6cf0ca549c6e5593f3052b6c93f9c2a815b2f1cbebe3d5dd91823ab7a700ea217e91eb4a8045c79b711ae27f3e3fa01817fc5d5a00cf3bc818100c8ca53a996a8fde87b2afd111385f15ed0db7d69e261067d3bb69250553e26954ea9435446209bedac15cc51de7c3a76ab0f57e5b26bae6077567e4850b16138db08d88cd32204aafc8aaa71c2d2053f5372e60b62de9308e22f0c5a29366474b6b8d6558219f32554c3148663273fdee37a3463d6b1c9b7e94de6e14c246efdf884346b0df19294f25be0adec8799c160f55434e193c74ddbf2b3a5b648bcfb301eda17abf51ce38dbf82ee4a91975bb66c4cc565f7841e65426d709a2509898eb20e80247132f9065d21ad85c0694f8968f4d735ce35de6ba3f227f47893f5d2179392488a3cdcf28b3f03b9a448ac55d69c5527d580ad70f9bde3710b702fb09ea65a2b926142c4eb4e4e255a03d5206accaf9aa9a1c50f0d55a66161d165e74bc3b4497c5946c3e835cf535b6ac4a0680cebde8ab6cb8ef4c8be9dc7c18768ca4ef8c4b19adf337f10647b25d330f653123d47251efebd650d74de39571b30a034cb11cd031904681eee0b18a04fbdd8acc960ea5e871acd39efae89791b24bcf33201223f6389e3e05f327a00fe2860b33c18b66c0df76072d50aa2b7260b08ef1f43555ac882fa7368d932b5655bcc7be84a3067029d124a2cda055da6450dea7e3f954961f1aec9f25c99e4182aacdd1861325b60403bfad341614f7354122f35336a708bdf3fe5fa6254140066088643b1f6f2fe1929b1d3da361decb7d25670d37625de332f85383e8db178e00d4359eb1063b0ee31a3d44357d0060b6362adfb59c56d4fa18a6dacb808eabc70c5804a76cdd3e3cd430c719089e8ebb48f34355fa35124a41070acc79fc1d2e7b4498c52c6270943adc6898ee5bd702bd6e5b4af86a9bee7593d61cadbaab68eb1131e4b32bc55db7f275823677b0fcc3c8c7bc0e7fe0c37ca0674193be025c202163a598a9c0bb2f54cf24628f35c5e142d60f412c8781d3addb38188c5c667bccb52340efa0269728192c41632cd9f04d05ed64a7620b281242b19e10ad6ced888fe5ca70934d50eb33b79ea402ad8726155a4ecd6ce52b1ee14a8893835cc6033eca162d592a13a1575356bda1cc29e18b44ee26485450c1f2744c46fec6b42d6f63fbf88467bc0e07ad860ceca7f2d2e8330f038f311aa66de74a9339f737219520148cf5df7f378b69d33c32070c57180de153968f79903ca06d18d56ce9903c25ec60aea5493054bab2663c1d3c3e7a2468bc2def22d15f5115a19ac84990fbe273798ff900fd14aa8c973d525e56feb8db97b5750c012044d6008aa53668a05b799e6dc171580176fa790eed9013819d9f5fb575604fb9fa8f34f9293eee1c1936ec841966d2383323dc127ae362bcb491ea012bfe4a6eb57e222d5450248507749b393745b931fe63822d8222cb51b7f0a731b76e7c9742506eaaef79c4093c553e2f98e1a733eca1487bd9fadc2ed1b6f1d62f7cd39a0e32f009060d601ed4aa0ed390e9743d73e488cb3e2bfb4dead141aa4e8700939c9a1ccf538437e11d7bd275642dd8091091ffd0ba1f2d1372ba2e4e657a34f2794ef108110570a400ef5fd3b6934c6dd98ea66a9587d66000a3ac863908c4b53732f79767c979a59ccf7fc63978adfed4297055d6645044df5bf33add720ad51c80f2822377ed7399f046bfd34229b2fed35ad27a0053f1404d7b05cc5abff9e5f5245ae3f2c740eae4caa5958aaa199c467ea866c974dc4d9b528cece8a478c0655dc3a9c0922d052aa3e84de3101afc077dbdbed0380e1b9959891aa646aab76add66049aaef5a5e372dad5726d5d24daa639c54a506b4ea8bb3063cc9f9f2b9077d6477cea2103003deb5cc2f476e5dcebd238725c8a199ea21f6bc9cf9bc911423c201414b6914f0d76a68bc1d29365a8158eac66c4973b504955691838daa3cf8a5aa671317a0d74bb394f6f813c14832f8055987ee4e887bc2cc261f934fe017ba317b41b647ad2b8c1efe5203bb80ad033eacbedefcb01448ff498bfce52728cd8460ffa1ea8bfb8e0daabaf1402b8365a9b8716b592983a6cdac3e3cb3f7212237b59f0d827be683dfcf70d429608bc706c91880c5ad8e23cbafef13b402fa26a648176d30abfa67732a7a6fdc59c1ae8d5e80dfa96ce5c94d5114d2447a6ac47101a7233ed69248e4c0acb6773c33ee80652727338bbbb74d7403cd09866ba07f26a8683a7c9653e34e55f27166a31a8a28fea66d4e93c55ac57fc26be07378351a3cb02c241a78055a7e223ce07e4ea437a19134e5e488ab190177d67e5b72b21061d390ca3991ca3f4a7c690cb7a77c23ba9d7c02ad9605a81e753e867976f61478ac332194416194f8ff99729167dcbafb0d2fc95895952fe06ae80fc1cc5366670dd8d6903bbc9831233bd52106905cfdfad282603f2f759c073448160f7c5fb0607e56be09ccb581bf274f930107aae484fa835e43d9042c62a2fbaf65f443770fe8c0d2599a67ba8215e97f8e093e594c0ccc11112483ef77578703e3b73ecb72ef4d917c0e39d311a915c6ec319138c27e11dae13cb42899de23bac4a264710742d4044624f1be794be0702ccbc0ff68d971e9f0a2e67665d8d0dff4e551433451f5be3485a7fea4b7f480015e724497d2a4f028d18a27fdc35e695b9d120e3d3d86b579f09903221d4525e7151ccc8d9ad478d39657710c5fcf0d9723e22a57048f9eb595bd5ff703f0ffe6cf8ceeb3be4fac823009cc5eb3bc65f7b798e1e73595f670b06d30ec8eed5ebb7f8a117add12334c91db0665afd9ee8de3e91b71d78a5c33ea6bdb06f8771667e37e564d987d5531cb33a29379e76b9411e9e024282606facd3bd985ec670d9c7e512489931af122ec0be1840ac588eb13319e95cc8cc43ebce838418a78e1760ba86be8d0d844d4846ff7b39d489aff2d9c85c5bed5e085ee704ddcb25f1705ca65c20a469f3c59c267fd86804520d078b4a31f7fb0a1bd398a09ad10a161836d56b569aebc202a8682f81bed5cde14e8f61e76cb8b9e5cf4654f23f75ee2f5679cd3f8dfe82f0654c691e29de41844170235c7ebc204e9a5a0d18afa8cb27b8baeaa8c550d1b5a97956c7b229d1d762e6a226d077bbe2cb8e095f4d76a4bc7022596a7d04e039b3757a1f636f260153fcd520ff1a6e6421adc72f9cb8d4b93cc75214ca3adb5bb052c62375d73896de162f8c5c98a000ab651458f4f4f2377d613fdcb0a84d577d801be82c3bc5096ef628cf0861081559f0c6112b95eaa7eac9b1c33565f1529495171a51ec511adff73a10451d1f6cf4cb6b161f885d2362017bf2de9b516a8f476bc797778c0b6464d0edce00617b8c6358e7c8f92a12b76df92f09d40de995cd135c16cb3ea3a864cc1899ecaeacc15982377cf417c1c14997ce6c660eed725696575801278c8ca6995457389a1e7020662a802ebd717b0f79f7a6128199a6e2f403705bf750501c102886099a475485d3c7a0301a1a2cc1dddc083ebb8b87303f5733bae39e59ead385f3d675ae6d46425a38beba9ea340c1eccffa3033f9d7f1460d7481601c7f1136da14a6a9327d9ec800b8a17ea5c9f70eb734dba470d5c4f8729bd1ce43f08c6221fc6d6c905d017d253b053ecaae73e04b6b8122f9f30949bd3e78d46d0fa1064a18d315ddae5955c58c58602a40786acf0865de7aa64c0d31ed6ded2e40a18aa44d79724c0790db42698cad3c8cbdfe51e95f31a82dd854b937256f143e3206da9e0015a2bba07176b0fd615f4522fa3f38099b44be4ca9573289a7eab13d0764d99930950038a18ffe33c0a73f6074d86006461100106d4de901bc4b62ff413f79556039aecbcbe5190f01bd9a1fa05d562cdce60045d680b687366cc78ef6ac8dadc9884168b108da684df26170605fe89ee8584e05799d5e679198e111f50853b1dcd4123b33eacd4a061882a00605e742e46254f289026443dc04e2471e9a501ba59ee49146c52d5257429ccc50f3238eeef646054f8d11966d71490078164f3b4f715b8396568a915228c8ec4fbcc1f879906ba32a765d42bd7decc2a61af98f51e7d61c36f98661000b2b6fecce67d6987c8bdd38d968798e388f2b48e69c3dba7e80afa799c8414fa24a3bd883717153100ae6671c207d1aaf5dcd2bc2453931cf202f5f5bfd15481174f43fda721edaf90b66b7b72154753feb3460ea6ccc888619d00273d46fb4400df3881bf1c3bdd9720007f754a8c12d62273ed86aacfe9c592fad0defadb093783d31cc0f91227bb5b499950569a5754722a91fc7d568c0143e7b5f5f7525685480dad9454f440c059a60f11ca4c381a667b3a8683a071b4ea16dc226a7e908ed82e11ab2c1e205cfa0470548a4827d3ed6f31dae47076e63559fb7495858b1926ddd95f6898621917d6921bb62c29463992ecac21e36651e32510fbc3ac841dd2d7d15ba165394dea8721eeac2edc4aeba002f132e7dfb69d97ff4918fdfe8025ae13b103933551ba02768a2ed723764a411ad14fb35330354380d8b5a619c1814d90a82605e7d8c697fa9055e5becb69068ef8ddd092e2e4f5cc770f4956c6a4969dc1727127a4d94ead57092819bd591696ce6185b36f869304abbf5a1c492a8ed544a3d783250874df94d2ea2b966429d14acc64ac49580c9bf3078fd56689d6ea368c31cec9e02a1724bee2d0b78548382ce5c47eee498a8d306f5cac462532b8a2377232a797e220b0772f082bed5046a36bc7d5df36e1ca113a9f0faf812dab9d564062c34d66b969d602186064199f2c0ed3f5991d832e406e162ee0a6e9414a39130de4af71336a958b310c8af7a3416c571a3e573212eb38b402273b7c38dc90116ad6c169c5683da6d03d9d267cd7e07715064eda34cb6185d70adf13c0144c48e1b51539c33f915259cffa688cd2fd56d01a8c98648ccad2d89930b361dbbaf1ad4cc82ab6d2278720b8080c1767f3f788f98f90c873176d331301a21a7b7a3a971edc6842dd8b27bccc2408c631164b8b3044d8ef9c750855088c89c1446a3c9ca72bc626babe1bdd114741eb209433f2109670064135a23eeded43f0340bb1d310415a80d8510beb317175498a3b301a025e3ac8dcc18865a11a09a3bebf2ceb8f84f9bbbeccad31e4512be605fa9f7e6598bbbc97d5086188d2fd72a20d0101b0c0ca04b614e7424e9af6aaeb66a36d14632148735dafd40c35809c995ecc76a1172923c81580a98b7a1ddb09ded34107cb1b78b0456892fe7781e3c9423356cd393c766cef78eeb749be8c22d68f477446f054a581022ed9f5a584cc8b7ca1bfdf656956d61b273c8e1e310547be6dc276b8ab63f9a08b1067f7a24bc5eb1fb4d0b0f5c92ee15145d8e10f00dd0dda1df256b34686a22137c627ff93c9d878ad95f591f57c52daee2f2030146af86d81f7b933ab47590421414070030ac2c808085a8a61f3bb7d86f1c9a97b9c92c9e3f8fecdba37e041a86cbc0703d7aa5a239e8f5ab7e8d689c351b6ab22190ab3c25cb9597ff20839e52cd7fce7edb428ac7291ea8f0f2d5b04c90e37888ada2f39c64f8d1d1b28a052cf471db63932594584d058325f8969e2689786ce94e03e1382106f4ee1c705e1e27c7b70e65764e132cb404ddc31f347904f16ec97873a9280dc04822a0ea2f27f810b4b480cb4fb3263ae190ffd05b3ac4a495c5c9fdc0f826d02cec2a64ee202bb192cc6a333550aec25d8c75f6c4bf21bbe437dba79ad0036ce98a05b19ced3b209392283382c3b8148414a103ba72e510a563afbc15cf2653563fdd44aea815e713405d015f51e5b808ab11edbf7ab53ada8ba4fa97df28ca20fab78d6cefa93d2c921b7bed9c5b341c07a08e912e2f31cb66d471bd6d6337e0a42209bda6f1efe4185e02b5aaac0e38286016c0748d2e40f847c724fff7e1ad935bab464948920a25465b108f41f6294d193c219a49fab50d334593c1bc069c5b98e949e3b04c841d754a38119843df03909053109f418c428d0930419383f40427d1a7d0e23821cfea219c073b43c121276d3c041985dcd554e8214a598c422d01be2197e978c08d310e53bd02d5efea1da239195e07026b728971e64c720aa104319bd10c8e0c42441c51e4f092b0bdfee054d1ece675c9592f511f6057ca433b65143700806f4435086202910c9eedd0e6a3c7aa636a0f73de9aa3e0c1b9dd62ad83e52b8769c4d9a57955e039a148f9b68eb32c770267efa00c538846d4455c4a5d9e0803d00a0dcc233b85b2d4505f3e07ed22101b1f69d50a37c7725bbdc03cb7cd7c836b0b57249ac76ba42906c75e453180ac4389cdde7ab868f47f69683fb6d1fa4c287eb3854f9b34294fd260a68f68fe51583629de413387dfcc770b029dacf59062a3af3e6b3c382ef997eeb701d10f9e7af0c3d0e6bfb494110daae9448a78d345b63ae2708401970c18b9572600717e94db05bf7e4b45b27a1ff0d7a9cb4c3134ad8191c5b4655addd5647c06f3a3391fe2f62b1412d2142b6dd556f3b3b46d4ee3e495878eaa27f400f5755108993dc131665a81bb39e979ab91ef117c9dc36f2152988db77c90aebe59050ff81364e6de05e22d40c0da505adbd4157b54e447deb36db9fef1fca4c8afc078a364778821d1a5c96bda9f6f483e59959c05ac0fd99c8248b47f3d24cbc8b6c29e10d8ad50d3ca9cad16f199753029d6967a677e383592234d79be745ef4cf9a4a06273f69db281f99351b1451bdef2a73fd70f7e9249635df6ed528cfee2be17049476e02eab493806557fe2bee8d86b613863606af23f74e345d0eab7fe47f29a64e767adb8d424db2b1ad186903677f0a21a1fe7447556e743b3b38243c889634c9bab0aa66ba23f16e6cdaa876e09d76a6bb0c1451d9a07eef0d57cb4b5c2d50da2ddbff966462a648a8bfb49634456449c36e8fdf58e00fb1d91bb7d6c97a8685abd35e226f395b0755ef5858bd52b926da6aec9eb4a6c09cc8be1b64ae9bcef1397c493649adf4093c2a1d44810d1b1a6d4456e5e1d3bb4b364d8284e3db4e209efb2b506c2e1a2c211362c51048ebc252510d185c28814e8c719e50bfe45c78ecb4e21c828c8335ef493b00fe7ae4ecc9e5fee2b7e65d30417a87be2081bd9ea5bcd940ee26f2a0dacffa5405b2cf04fa905214fced39b6a032e9504110c246ba7a8ce370c5d0581e34848d4373cb9152befd736dafa83cdeb87c68441929fca46310b4b7cad13f6925b1cb996ed104463035521bf58f4aab9e12d314f44edcccbd851ab286bbe2d728d26e22d593413eecc9f3c820394bc595d5c35a1cd1575ece5da55d6f3dac282294c82fff42830ba854f49d94e237c546c3ca7e9b60111f98810e17dfcef2d91c13f39a8fea4d6aa55fde62e96f46fdef7d0422dd5cb55cbec5a627bd6a7aea44e3413ba4c78b5077ab94e13b0d0331e2a12a291945ae2c38d532a7b4212a46054e05c0f1831752017c6a34a32611d7d10684661e7ebdf0bd5cb7f4f225fb076816b2b784b87e3172a800aa035d43ca6ae5912e428b9f0fbe4a190e1408bfee016a20c6def2ed734ac29bfc63f9f1b9e3dc749154c4f5011480f4bdd47517d1a8544fdaa4932c5cad300473e50426230229787c1f305fcbcf8dc22a1449253543ae13401a85aa841dde008b9a73e19f45a1b78c2356e0335073a1f25d11c5f6113cc7a373c7017e396925e7e9d8394200acabb5fff5aa85efe7312f95b77b9066f2800fea625cc3a9c213f05c0def4610cafab77257f57f57eab4407a7faa66adcabe3dad7bc3991d0a0c9d5fa3b723b936c55f05b62e095ca2464cca25c11bbdffa2782b032e814e5cdc1eb5d7f2586d2e7aec841f7aaefaac80fefc2ee353fb10a14554410cd9460dc61b3063f6f8b33bcff6e4dbb4bc0cb7b15d12c58b46975a88cd67cf341bd43618d774c849efdca74dda9090ad0b993a5da39c300c20b28f044656d50ae3bac5168771621b6a986d3499c2c96fae6d249c1b8e4ef4ad1cd13743f923eb54c88b185265927021540e909e850a1bb42faf2eac3405733b49d14dee10b29cb75090a52d0c070bada83573a087f530334ba6b118398b462e551d1d0456e377f520434784d25f87322e3ba2362d91ced021bd773396bcc8babf1170ae07205bfef5795c226d26f2e0824d4cd035199128a9cb83a658f3a14cc1122f974a5d05fe831c4344f83921b17245d97412d819a459768c2d7b009a6de43e34694b659dfc4eff48a46c0a04c418a9bc6f43a4b861df5135f0f3e020905b2e80f3c896aa87d745f911a2b08633d6a48af7abc233cfde5e728df6de3b1875315a24818794d433ba65339d48253b9262e0b684f0de02795e9ce4a1b8700dff372e950129cc06f4192bc4d8b187115a2521ea638b7d6f706c3495e923239d17902b88ced5abd094e72cc5d00c2af0577ca862382d65c214b241a156043bc0b6aa6a3bd540c02349e2d281dc1c79641c86424d0b6154c2db872290e108c2eda75fd45aec14c45eb205f6d8a168555a695c3c6a881485ed61c4b1d75928deeb15db17c4cff4a2b62a48a73704f191a6491177a918af4b58275bce56c074814d321db81047ec42e5587bf6b139f17a42c6f179b0cdcbef62133b1c3d29aa398735db063f4b43dba5f939a79824b9f1ab2d12b976196bcf15f976806f8d1632e2f2970fb73af8643b1b46e05003d062c59bc76d171448774815d17198da55fc46a7608b2cf8384c3f1cbdc8a9cebafe0282dcfa65a0c5c1ccfa59940d6613c4a3a6704c3e934dbda696a0654d257ece9fe7c0ffc703b4c12d67104682ca05c93117e6a331df55e422189518f571b67b9c1d0329b89f17b5fe7276082d7fa0c3aa76537f8612624ba9cb26a793f58fe3890418408d8d4f600873831d1840d6ea371fb062eb0491e421de06a1fe859d3081fe48064a739239c5fb293344772b1edfe760b63eb3ebb30af2cb2313a1afd93811d92cbc2d79ff7e39ccfecd691ae53785927c655e4da48bb30f4534220f17dbbd0a798dabd5f6e9d30929cc6412831699fca02f62db44566a54787c05e18cba3430cbfd700a97aece8c0fb7f0b27dd6f07d868b9ae2f800ba92f139ebacc66ba2fe657ce268a32f8b61e99716e1e8d95b6480ed27ce60b33f82675cc2a15d4c78e8eba6350cade35e05b73c436f25e92a26fdbeb257021ead938ed519dd45f9a45a4fbad7f69612f2505793a5a2c54be9c80acbcb0657751f406e3a0e568a760e56fb226a95362933588f316597a3283cde067451b38acad0f9a68e16699f0cf1eb948775fa0508e9362f1866b5cea6f65a3fa412d6a43c9471707a8aab683e7d7cfeb308df63623d200038e21a712436975a15c7350791d6a43b20335a4ba3814e64a89d105d2127bd615b46bf6bf8ba1e1c24f250a2475b71ecaf2836a5b30793e2c97d381b7618d347c4ad3ed277459aa6e9813349347652cd6d1a1509949c69a45958080ea7392d5bdee88c19634a25ec7571aa4da3d3b016198d58c7540973025097e3600c5ccec8c9b30eefa46a7f9b11eddf095a9933fc538a08fe1b190ad3fc23b84be4b3ac8640c88f6854433649ac215807662b76ab9251830fbbb103f3d96ead9f45cbf1ea7d40464f99191656933cbcd9f2cf6ed9ae66d7283b690051d632cbb4e9d30185015d157ec01a8170ebf7b92c56a4d21b533bfc2cad022aaa73c6f2804dc688dfba01b9b86181306e2888216162de5dd4b607438359eb4b0c685f4dafe90d748b90963a29f0ff5fcc8cc8f9bb6c5423c070d174962a14f981e7af3f532f296ff785ade91c946fad60fcf5f478cd29aebd07b8534f6ddbd9fae9196968d2f5219fbbc352ac05f2e026994adde2ce3477ac3f35735f4613e9845f21a2268d8b2544aae9a57140369b349b680e14f6cd9f25a6692233a6df99ae640dce194497082e51fc499eaac7f9ede8d13fe17e2eef71beb65c242dcc9b29fdc438593332528ef4e346f858b80a073e205b7a145fd1571bbe33f064c7530325f9e9a2c456845b950c5fd010c10faf40d6b262ac3c7dd3eb9d85003b32b34cca1f60026b65584056912f7d483bcb1b42754d107256b71ac98009f87532034116e9e85b2dee723bc60a8ae6a001e88b694dfaefac165e156f2f820730a2b25ad4b7efacba4db56314e372cee80a04e46bc601c7aa2ed4c76ad3b958f26ef5b6202c7a5f4bf019bf5edeb8fa4b4bbd8e8b365ce180f2e81a6689d30a8dade60466f59dfb099d358ac32341f7a3f6a737027a73fcdd4eafaf3a6b3f4b37440f335eaa5f9e2279c506a3eeb57c1c34739f08486fbe49aafa26a8cfe1f67d1e7e76277c186283c4d4df21ccb4fbbfec6143f8bd1047a22e6f951ed0c2426e810c946a844ede01ac134015db4cb4b0dd2269468d4766cc82659e6b080e7ae510dcdc7ca0743a03806d1a90792cfe891aa2cdc2060fe4cbc4c81ac6956cbd1b3579663466c215311d35e7f3d194d0ec620610f8c9a8411cf29ac340d77ebbc93669c5b7c48960e98e3f0582009b7e65fab4d7b601dd893e5d28b66b07d86467c2d4c77aa120e08567122a2bd08cb4807deb66384cb398d5950b1b53763b0325908cda710aba27ed7923a29de380a6ea3c6db7ae54880bcd5c33af2b76b99b22c02fea22484ec8230668ceeb7cf128ed495a817fb637b5619bcd5bd1fb2df00344a7c06f04e80a4a374226d7bac14f0009249878b5f2ef8c2736ffc2db5d3af06f14e6f368a98bfc97885b2b4cf2347a2daeb4f9fa3782e3ccd9b740dbe0b922b6b7c1db525ca82934da6b7bb918dbf25b23c49da16bff4645b4e1bef0a4861aa21e3e8b3a72a7c348a8c22de1ec481537e5abea0fcae4bf95c74d5ea69982c38d36ecf21fa96673560543529be3a7642472da35124bd40042da3632f41a3d9297c4b4cf188152429b2a85913056b6bd84ed1f1c36f5ccce080bbbb3c125da962de4eec2737ebe37ec4f91228488fe51ac90915be7f6b04dc9909516cfa583b7efe7ea589416a0847295397b9e9a3dff047abb72627d0c5199ce6a7318651650cc4ccf0cd824143384f6859d1f28d59e6e86644c09288822a3afd8e0315981e2edbf26127023fdbd896c8c9fd5355971ecdd8a7b4df28a0cbe5b22e82679a55de090c0ecba3df1fe5050c511db36089659695cdb8a47c21334db860f0c917289941b26081e56712da31856710b8795f070091a58cd5602989bc192fb1d42fa6a6d7e80513bfce6d29479c39d3cd82986a16b15bc140c66df416e320ccfd1a91c436c4543d44fa75d0987a1a605bf4b177612f44af29fe23e9fffa9696844db9256dd0d30b7483e233568148f37deb4df9c8d2dc944c62bf592c4d9f78574375776603c8c3283d7a62bd030ddb24fcc456d6fae4fe5e8058ff5b4a55bf96ba804d4270e54453501c624ced3126465196b56fb67607f62dbf03856359472b54f82706add82ad5714cf9f43c5c21cb99667264092ce8568531cbc2eff68223e38bbe68fbe718ce3807eb49f7e07349d70d3497ba8d4140e358f900e2a5f35750d95fffff5a1088fc2c355ef22abd25f6fc1292e94a336b3dc57551e3c9a0a9de972883b2af7273eb2650e200556e422395b6f54d7cb99f44165db8719f061d6edca1f863efbe101de6e4cb3501ec111938738e0c2c06d2931df44992da68e8b285e9850844ba04f404544d288490f7d40c9efe90c3b82db8f22eb9881b211c3260c06161322f96950fd965c01f8fb871d4fb9a909fd929952c7b4e52bcd53dc1cb2be22e0244e4301ecafda44b42e184ac74a1969e833516ff4c0fa7d2ca54d965699fea9eb248352210937bf5c88737d1aca246ddd138a6e6e34e1026693a9c57e1498e998ae2d652cbbe8974e81d70393987f45e8efe73ca4e52a7a2dced74cc887b14f02753ed867a824a7206c9cb617f8f31d107fae8a6e2bf33845dbe5d6d2e6d453f2e4ad7b6080a2d5b4a14fe9404395de39e0a3b4b572c77e2328002e90e4fe37a1899a700fdc9f0beac9671da4a943affe5f7b3fe4f1aad034e1aaa1ceadfffcc51ee3ff507ef27ef22b4424e2ce51a6aff19a0925ae333b6e9f28a7b21e903515c589a3c2f20f7977f76b93333b5493509e4b3ec196e062c45a6ec4679321521c1762322c10712e7549faa33fa8ef7b7c3f7420995e2b853ac4ee5f09ea3231596345c97cc5d993d2af6bc173d86bb6273045b5669cbf7be79cc21be81d8cf3e401002f4bf048e16c55811571030ec8a3ae581d7c9e70f777e4fcd3e5e3c1e702fb88f4f1613c7ef8b03b4797cbf10cbb1a160e76f523b886c0efd9234b99b9248ef41751dcf8197cbf4a2bb4cb4e379f13d289eed078f2f9bdfd3fffcd21ad97bcb149611a4121a103836f0d281223376baa460460a199690810c9a195e818d42990c4cb03dd103cd172ec400828cb46406a71d68ca3041c260c454c693a31a68823061884e100422a680628326860644b1f48211aba85e9a11cd0820e032030260042a944183e6da50c54b0b3fec00451832d0285de101951e21275b4e08030d8d0054f0f8c1852b6886788146a6c49317c428a92860b345192848030c028d12486ce18445195bf8e03b03c7135b9c9080bbfb19519401812f74981189e848c285bb7b7845c5a9d5ed05e954b4e936fdf8a905d594287a2245dea747c5694deff5fa92f011e423f7451e84a029ba5f0e0977df4ec2a4dcdda727b87d3d7cd3684df7cbf198f81cdaa90ea8f753613f6043ee8e7febc63abd3a779fbd5862bca804ed9e8ec7796060411044e88bfcbafecc0ddea66f902048418e8218050112a428085190a12042418282044142423a42324202825484448434842484148414e408e9e8e8c8e808c851d111d1d1d091d051d051102324a32323232320464546444643464246414641802001390262040408902220444086800801090212a408a9e8a8c8a8084851511151d1509150515051102224a223222322204445444444434442444144418690868e868c86800c150d110d0d0d090d050d051142123a12321202225424442434242424142414240829e828c828084850511051d05090505050903b6a45efa702ed9ece2a886583bba74eb6a4f45a3b730fa8f753f19acd214eb6c83fd55fd6fdcfe34030227adad014dce39d7ad7c7bcfd2afa184d7feb5fef6d5b456f56e879d7dbbaf5ad97571dc9ea018dbbd518ee415eb87b16ee3b0af7958a1877950a0b8cbbcf48560feeb39c76f7284eb288e4d074af3977dd5d87bb5be0bee43eca46717472771c36dc69b8bb8e3be9ee39ee8e535413fad17807adcf6d167797e2a448069fd9c467500d482de8070988ce01e98482828008dd5c6e68e83c12d219fd64b4a6f1beab590bae5ba33bbc02e5dd7acd21779bdd7dca49b189a906b54dccf12fbd558f5bd724b857efabf9713e3dbebb02d59fcdb6d39fc650b83f719a5eb38b5b1cdc9dcac930cadd6f9c0caf50e2c4297a75aff10ee6fe75f9836beee19e5e6bfb9783b7890d27c31cbed1d4a71fb72fee8693d60577d771d286e19edeaadcc3abbb5b27ed0eee8ec3497b84bbd770d2f2e04ec40a9f2aba62ada23eafd19e5771fa431ee7fe4c7f99a7dfc7dddf3dccb93beaa4ade1ee7aaded9e0ee6ee2ffceafd13abeb6fe3f5d58ceebb55dcc3a9af87fe46efba7fa7a27bdfde9a757f5deede5af3ba267177967bc8e3ee3d273d87bbcb9c7414dc8139d5adb82a7f70a3e6f55d53af351357dd80d7cc697a8182eb5d73680a64ae1a2887a65bff56a01c9a02a92870bde70f4e7dbefb5364743342b2fa09a69bb7435520ada29767a6396f20df6febdf5a03ca3cf3aa407ac5da0990e8eea1bb8fee6ee3ee36564687988bb9ba2a5d8c99e11223554052b17e14af889649ccab88acf495c5042ce187a32d4cccadb554f65d55c412368ee3f8e14d92f147f15fafb7e294385afba3285a99b22fda8c56aac22dbe95f225beacb85eb32d96ae0f6f96d829d78b54ad1955ebc367b1fe35cea6aebcc2a7f29215bebf68dfbfc4dca75e1f83bd2f8debae0a8d88234f951c2555ebbdac9955c951b6665b5c62cb97686755ac94319fd9d68b2c9e92cadf4bb20c99180169cb413e09fe251e59b15242f8e297607ffc9ab79245cb27b14a80fdeb675652f824d6cc4a09b019eb5bb3125aff9a69f924f15db3125a33d64c7cff125a568dd1cc5881f7f890872606d963b4c5582fda19efc1a2a5a1a161d9f0844926843649bc126d6c429bd06d5ab31d25d7b7a85c331e82e1b7663c04c5e720e9c59365fc2bf1ed87a10d0fecc39b27d88f3c594888bd855de149818324f16b78b2a4c041d2f8a28d0962969bd7f249b17ff164b912dfceb298207ecda7f049b1d995f835b32c5a3ec97e0a9f64f37e23c54878c373257ef8363c26881e8852e2874f353c5a6c52cdc378b4d824d8c778b2a4c04152cd6bb149b18f853c363fdad8cc488865793decfd26ca936c66f649a8f990147d585fc3036bbd4da2954156f134656b46c543307c1e82e3934fe1db9b1d0fc60f5feae9c5b075428c7606197e2c662d8f162d3c59b48cb3145ee251f849214f0a298c59b4fc508583924a7c2feda730ce7ea8c24129be8b29c5b7164aac65cb91f6ad6f8d6518c2fe25d26c4f149f9e32f451dad9d41e2d6bdc69bd7d87f18ca56be7f5ea2969ac15ca40a1a50c145765c89c2943060c2fca48e04be965a068a20c143394290343190990e144f862026044e9625240424c0a2e944c74517a1926a828a7724af17f945e86091dc29b678db32a569c5c69d2a439c11131ffd6d34040bac470b623b69ef6a20a99c22cc890b165d833fed4c89aed8ce2d45f79d9b00231ef31f57abdde92b96122fe4b7cbd5eef5ab2ac970d2b2c5badb7adb760c05061b11063ed0d13db046bc9d6586b6b6661f99a892c960e30e020be2b072c4ad7bf9a109ff5049892f52d998e4cf63d76d0b851b2624ad758b2c61f52f8967db1be6524acc182cda65c6fc3d2886893a347d0902552b8d42a8b0b5c7a08cbf163356c6c84373630d8c05e376c58b0a9d7bb9e897da28952645a7abdabc60d1371a9351bc351b41eb270c4e06871c24b14a4135c9c80a17422cb9833c69c8940174d7c29fd6d97d27fea4a198126ae945563b92326d911673c7ee36f795aef3c4c6c693713536b3675a5147de6e3b84726d63b6ddc6329b63e7c67b24c5357cad62b094b1c6d8f7dd6efd8962d5f3c4ef6c367595602624c8cc1040c762a5686efe32b41004d5906025aca9a0c94cec40aa5ff3865537e53cc43d8548fc3623fde2489d94cc5de86a1f8ae58b8c7120683bd60b32a5bbe58ac6ff5788f50d4c2653f34125bdf6aedb45a61b8e372bd4ba4628d6e7bfdf82cb7c17efc1755eb6b1ec6532507f69667cac9f52dd7b75aae6fb15e3f52608c527cb18bb2f52c2a4a7f8017077c2925808504c494db96a2b760350f737dcb350b479bdf63097b57eb6b1ed662f9cf8bc7fda7359bb24af6c5a92b6bd558de30b1bec56ad9d63f6b87b5c36af1b878bc45fb00d97a6fb55ae3cd92dd797d4fd97a3bdb79cd98f4f48c3530d6acf56e59ac9dd6fb4eeb6d8bd5ca2969618fff6b8758f82388295bdffa527ae9e5125d4ad88f1f1359a2c8b363612f5ad88b678f371fbbc929abc6d2f57b2c475114bf46144b71bcb971b7ada2ffd8d8f7a9f17798f494af9a16ec61b39e2abbf3b2ac87ed58eb3fa28b2fce7ac4192decf12b36965585125d945ed2623be3ce3863d253baf83bf6938c2ff24c5da19550da77b978a85c6f5fe16c87490fd5d4ebd90e939ed2be9d55b1549647fc70464b220e20e66e53e2a5a5a29c955e46092f65d55856c929c577fd140cb6c3fad7c358768c52a48546e3ef78eb269cd1c21e1bda10a3d1c21e7f2fa30497d2567a9924ba286dab7df79ff0a776c2f79d70c6a4a70c3f74177f8a450301e9f67976ecf794e3b3c6594f39969be63ffe1ff0f0f54a5c3ffe95d286374ad6dad9ce92bf7d253e6bd5bc9d893127562bdc79cd965c3f5289b60c588e526bdfdc28bddc6d7ee706f635373c552c136c56f5ae59957d26adb7341b1b56111393a0a28cfd6b7c57a249809c1a77c450ec51da81d5fc4ed558fa57c929fd6daad8f235abb2a51ddf6755b674cd6ec49992fdd61b11adefc0fef59af550b146724cf8621665f862153b86fd2998750a9d492844ce6873138e42c43c34a2123f44a287727c7186727cb14a4ed99ab9d3f82c7f26e31596b540c4dc6e3983849623c028c51f8f2823c68b92c57a2ad72f91a50e3ff631bf518a7d5842e98ae54cb17e5b71b623cea86654b10f9d67697c71362ec5724afdfe233a894ee1f354d9d2be94c460bf53c596fe556369bf4ace8d53eb5db32aebc47a3babb261cd4b7cd78c6afc6dcb1655f8db56b1e5accab8c3f82e32a5eb5be3bf8e30627cbd4832470ed60e939e9256be74d0304056b165f8a228d6dc24695957ebfdc6695c6abdcb6dc4f1ed58358646e1eb26c968977c4a3ba36afdeb439ea956eb5f2fde54b1554fc5124150e6881e4ad68fa12d451b9b1a3576843430c829d65b5a19be65c2aab2a5387b4120dc5102320a15dcb9a3468e90c562f1d87021a75c8c90a419809cfafffffff004310f83c0e841421ad253f434188cc742c17c0c71ecdb900cc5578b47496b0ae9c563f3b04721f635cfbad9f1c0e6612f658324159bb9e853330b5b4baa20212189a2288ae2c3bc28edff80b9c2d70abce7f5fa1e3becbf6296e561c863935a6fc710a7898f8922f9a2f83cb87e8cb1ff630c5498e4fa30c98e0e0823813048840913e687303884a1218c0b60ce8001034c1760b60043064c1349743961fc227621ba108a71418b315ce842c517310f6960c04451c418457451c41645445104048a30a2083045e85004028a80a1882c449c69b55a2f9883914559c3c26a603564caf0c5266c8ca889d5c458384cbdca100103521922aeca8419a34c982fca84b94090cd4d98ab3056b8ff30419a11c64a20c63c30b246560f65c84505aa2853c6882694286304114678298de052da945ec60816dc798cd052535313b321224b11695c7441c05a777777d70bcc176bed0bd6858b288a229815c06861b158ac9ad8193262362e97cb15b3f1a20b180c06b3b9a1228a582c768383841137373737383943f430840e437481e194118bd91b14445649de88634942b9fb882fde2811c527c919e93fa1ac87c6548e231b47377eea85e3c7b78fe36f906f83249f06f93ae4c7421b7777b73323a111f9f6c9a9a030c471b99ee4693d520ece382289473872706e6c70f08ca14feb6ff0b4be068fcecba8c5fad6eb8d84f606e9b58e2f2c62faf572eb72d9b0d50a45164b1cc77164d1986882c6802c5208628c20c088b90d45d68dfbc81ac28521b4586b59ad33ae314451145bae2eb260b158ae1799324230e172b95e305188244221c094351ce6840e658498a18c105aca0871d50a228b30082c8268a29cea0902024120d123ecb14f7b6badb5363d68618fed1186a20d0add67533dca1ea1fb4f8d610fcb43cc5d5278218514627c70f7287e4c418636618f0d6753a310b1d80f0bd81f169822096d06316c20c9cfd1b694d166d021c99c279f7c1855ce8c360339b5644949beeb903a24694312da0c48b41968336009c2cb1759e97a98bbfee5b6d8bbdefd637ea324670a5792ad564d0dabbcf1b7af57f9b22e578913b65a258ec8629538cfba51c21ac7b1c461896289f3ae1b25622b0c4b9c7fd1d04152cade963834786a3ee62fd82ba13183fd959d251aaff34a682c2965af53c333853352ca6653e4fbf839aff23575c5c6d18d67d9cca66ef0b8fbb46cd49095add6c37878c6b0a7f5ee6a85ef384a5116b6c4c486a00df10a432f5ca0d570f5258c2f5d80c0c2c60d0e0b5e078ecedbc89c360b8683832323616ff3381f7bbdaccb15b65a228b358e234b145b612883d9c8644fbe12d98c7cf90fec63b397ffd8c05e87878435d9b2c654cec366b412e0c8ecc39a28616f019822207428831aa043297e4f03b894e2d38a5838269cb789c562b19c9cb78995b8d2e6611f7bbdaccb15b65a228b358e234b1459374ac45618ea7ccc65f36799f3ae17a9f3e42bd19979d843ce72c88fbd12d2e679654eec5b3fc27ecc8191332a0b1ef6319ecd2a616fb3593816bcbf0e980537cf7ad86c0ac7cdcdcdcd8d0d1b366cd06af8b2c5972f40c0f0b8d2a6068d1d3618bc68cca6c80bc812076767b3fe695b7eb31ed745b9c7251be3951c618d1b624a364d29da0f43994c16863c2c170aad9912cb4731b42c9ca92bae440c5fafd0e5125badd6c862b158e338b64451a42d41866158863ca328b2b0b0d6ed0f675e637451bab2a0621cc980618323e688a2285a893ea32d6dacc4f0cc6b76c6353bd39a9dc999e1ccce28095f30712aa864b1c02033e5bf443c0ac3d0863624535354f31ed6bc6a60353535355d589b570d72478e1e2c31768c7194220572ca7e6181b12a8161c3b70abbc4107055be4a31e3d84390dbc06aec8f5e483bbe70e29187a1db2e575dd6b10cb2121ab566538e45505050505090cb55a3e572b5462471161454866150008c882e1f6838d07c68e2c7143fa6a0e1f0a3891f53fc1853e60725cafcf043991f7a28f3c30c657e80a1cc0f2b94f182868c325e4450c60b18250d01a43f0d01a4dfb8a0f40fea4d3ab176e2454eecf3a1ebd6b69ebec0212e06ee54b1cf7771cfdb28f0578ca6ebc57fe25731cebdf641c3102fee2aeeedb0be9df8fca5a68aaabfad628d57dfe3dcfb7a2bef4fbcded4c4e7467b688a8bf89c7877a26baeec1962e227dabc698dd79d8adef00fffaadc4e9ebe4b6cb6f362decdacd2bb55e99d580454af45f0bea7cf498a55f5f28ef87aeb92a79d4b77bd4f43762a9a77fb976fbedecabbf97a375fef774befce7b88e877dbe99e10360c9c29fa0b12aa0dfd649d8afee0f49afac4ea0ed5faf2f67d725f226d51dc719acba12115a4ad86fbdb22e06490251e54efab97b79fa72fd6e9d0f3efe3aacbe399280ff8b4cf5b45cf9bd3136ff3b76ead66f383a99a5fa3b5fbbaccd3bf0fe61eefacbe7a4d7737e2ee1cd4089eb8ca0bd9fbfeddf77c1dbcc0f4fe8935cadb7faaf779faf2fee2f02fbd4f6cb613ab40277cee5494675ef3f17a1f4371f722ee4e64881252d18f2ae7548523324c4e1ef9dc9d473fbd8a3170e3dc637df16aaae807d36da2ebd69ff7eb1363f5a3f0be3b6aa7a2bbab3566da99a77d57d55bdf8237c5abcd76bbdd8eec5454456f0f43e11ffe79c033f7f5691489081440638b097080c3073a00450f161832c546ebca2b4c8d2c8c9917fe081142d50444ec4081034664908342131a785cb8193a800d60c0fc9420470c39a698c00290946085d4008864a01500230f5c3502127e00e48bc54d40acb26a20a18646235284c8fb589d68cfd6e12636a8d569eb7093ffff9a11deea446f7877e21b9579d7dd0a026bbd582a900091223a9cb2a02032e4b7facbe6ff7815a7b7db99661103e3162317d78eadcf2742c45c752e073934c4ddf199d57f1b3eb3f938cd5d9e79f1aafefec42bde2a7e9b8a76e122f43fba14eb2742e4376f87625e0def4e1cb6e0ee569c14c27d20b574a47c2a8ffc90b73a512c4e0679f175ab18c8777b4aeeae2d413cdc83807aee5edb58a31b4dafbae26d853f89f300c073e89cac7d0962aa5b7acdbc83bbfbe09cac0515d5846a423fa99a57b44ac54eb513ef8df67ad9b41dd4a8cc9bcbebe3dcabd7fc7d79fbaf56efba5fc5befcb9a945fe58ed9cd7c7bbbbe6ad43f267c88a73bd9feafbe04d3194b53423f45a03a232739abbe17d4f34bd553dbc7550ffdcf5fa80f4c6697a7d40fa97fe7a3f93a4c1e0ee3e548df3f9e7c5bcdf2a5eef93bbd7dc2d06ee1cb8bb0adc7d04277f9c71bdd67cb7e73800b987389ef89164df1d5a7555208cd79d03d26a46b789d3349b4f98f82e13c6ab54927b099c88bb9bc0dd43707203174e8caedb0617a1ca06a3fb99cd9bc655e8467be8ea03cafd3410d5a97f763e2f559a7d403afb3014d007524b50e513902f6f2a8d91680106e9a345451aaa05fde4ce1f8caedb67ca47ca4f15effbdaa7e85431e9138ea1cb8fd7ac5befd63fee204ca9a1d5f4f490f024d4d06a46f8b73ded47f8ffff9e1edc6bb516c81e2d5a7cdc6b6cbfef9f98ca44d5ebeba1d243c5dd6d640f529abbfbd7ebd9e1feb6137ff0bc784d2fd39ad73549928f71857357cfe5a38f44acbbbad89325b32ecfb1ac1b16c7be86c623176118317085af176b14ad751c61cd43b71e8c1c58770961794ecbbab596c52a0a63a15b6bc57089b52e1b5a2bb644086d685de10d286b5bd6e5a1bda98961abd553f3760cc3d1053b5a1bd6d8138416e62c3b8622b6762ab4367c390977421bb6c6d08620b4b6155a0f2c0e6bc5f0150196e8c2b137acb5f112ad0d36b4add0da50bcd970ac81158536b6c8cbb27a8844ac2b0c4721b1260cad4f8e911d61148a29894fa18f1e2ac08e62cfc80aade8ac03d80d580f9d2449b76e471bda11d857b881b5212b0c456b892c907d599b300cc3d611eb230cc7d00689b598052f0dec8d8e8e5006cb0a2db0a315ad874fe1d7d8d143b4e58fb304109d2702d68d38118ab6654797bdb1e20c61f8b2891649b461387e6803ebb12c6b5d41a3108f201bd6b45ea1cb5a9b0dc30b882d0b0b47b1cacec29fb5e28f85c542fb72d9d048884188417881e8a2db1cdb0a437b3392e2185a1086a16dd95167613d6c8c155a96c539da09975c315868732f1b57683db02f6bc5d08e7689bd200c12ee0863a12b6459d186368c85aed18a2cd1da232bda1e0bb336d65a211683b04674d9d768436b6dd6b66e8435ec185ad6688384312b861858510cc3311c6d9030b43ac21a0bb3af31b4d6daec05618d4bb4e36bb4d61ebdcdb1c16b88f88365450bb3630e0b83d962537630b000186d18b64217b6a48da0d8126b431b5a6b7fdce53e9772c58ef1c108fc3fb8010c2a3ee0f1220c2877030d70a2812e5c8a470b8fbaa10a1c75cd38d40d48d800c5939d3cb8616a8ca75b64a4c90d189860c9dd1114e4861c40412e8e0f471ab8e971c453638d3460cd30c2a54180d19fe1355c1918fce07a08695dec90691fb4c18f2e343178e0de86c7e3d0f12e3440701ceb05fff10477d19d8a3f913d6cfcee7bde6e702c138b4f80e26eabdc56b189d91aaba0b5be02088800acfab9fb95933ca79a77773d595129b86d21c61464a822d8e26a8b2752e004899e1260158881230a275a8c99460a6748d215522eb061d4e30727745f3410a28a3a8103649163a603d54795812727746c0005200b0b246055e28a004c99a166c5367d808706e20e44572c40428a2f5a34316ef1bac2cc09c200c0f60228c7069219221734c06a0728627338891fe040056468c1830c22509144702e31c5c3fa087e7ae51414bc8881050029942043c01d0804068f858009b7423fee1864b972f1c6887bd3bbbba8707732e169b680f4b092dcdde7240f2b7aada92bdefbfa80d6ad6f72c41d5189ab9100576393d6066f5d27c042ee70c562d9b834d002cb7883d088c346071f5a03b81a9bc06ed4ecc871c215ec83518a88416cb76c5e4a2fa4568d2824470dabccd5cb88ab1a54b0c08e441b4a60c3c5152bcd15cb460705ae6cf64c892b580e9cd0258405c482418b8d9805329830ae7095c393c323fec8805e3964694c60fd7821b9868839e290970e5722931050aba6e5e54a8cb5748cb4989068479b9156a3c4fae1faa0a5a355d39ab2a9615303960376c3f5816886092d1de217135864ae32981a7b7fcbe082d16693d3928d56fc118f8c4f36385aa10b8a6bc7d5c4b281635b319135da88a2188a2ef125c26a768ca2cb894b27e7a946e66ab9ace81a8b46a0d1be2c1077b0c078b07cb8c2f18245d61a775e484c18b93061767b4f7386072c904515544041e6b78b7ac18524491c1039caaa182300f241e6bc5c53a43835a599020b2b78b41034830c46b6705101334f2c5104103c00d53488e1b75bd0eb094830c61613c0624c982b258440454a14a726254a3c30c071038923ae00d1801248b85db023ab3c70b8c84095de559a335280022a5370dc9055e0092720b044114404d1020b02b885f00114a7a625335338214512332cb98016669e18b384123be8a0020a2790608c0a4c600925901022cb153e9792c86ec6e880175c4031e688078059c00b04c0e72d042a53a02c251162f391dd9899020a1b6a78210b3e43e86049298910ef801766a6908013473c004c100b28000b5940e860898810db5191908f8e6cf4341df022031280c28931473c20880514e00516089065033710a87000544353461326393818d8e1c20a2a44811284030154085afd004b239e119ac12a235cc1cb879101e102421eec50282406d95aec47fc21fe0d1ee10ebbe3d2215a60738c38ec0d180d1d1d911c736c70c81b1d3616c476d4c860ae57cb15b65a2c9668bd95a5268332572e980b36e2bc8c5c30f1021b292c4db3574fabe68534dae4d8d1a6751b81e28d281bb33861cb550b2774c146dacd05480db8aa7962738e341c2c61d10ecbc9685b4398b822d20489ec8470ac199bf8a4e0ea0b1336a0028b65d9643c8c6009471de28fcff21461fd98c055abc5e3298b8d9c2414442558027065010c8a4d0d9b1a2228d9f0bd740d0aae866c98125c0148174cbc61518d025801cb6bc4695d607388b0780007d80614c8f23a23034e18631991b9828c4cf0942f26d060f5d428d568d0a2326ee00a6282036e506202035ab8410665b9319b0ca089abd84f57c309374339f6c90e5188cb02232c35ae20ad9a178e78b4a444bca04609055735aea59ba8d7929d244a35b0253651e710075ce1186946352d1b8d9b564d2cc92c841dae6a5e4b30c8a970c51249966d79d0aa6109696d502429f683f9782d69d5b82cb84102eb3136c170d4d8a1818e1b1bbc7e3081d2004bcdabe622ba213a5a7a72d98c2e1d2c9b6804b3197dbc1117cc553302b1988c48462c6b47e461dd0882bd4c31481221395e35376047588e34c58a5e3d638fb1478b01571be08c48583f5818c07a8c3b7284c40b4cb8aa01595127fe8c226b845908065022ab4034800a315f8060800e03b8428295a6d2611317021529519e38897a6ad2c1121b12518f061900e04727c6a411230c0f70502483990e0b5c5da48882871d3c48c281ed021b36b15613483ce0871e78d021871bbad8e0a4c70750ad862d525169d090919322c60896b86559015a40754584d4b87a78c185239805b258400fb62046386ac46a5eae1d3b451041059f4e4d1d2c2925b11509f9e8c8706e4604b0208000e874012409201ac0802b509e1c19e5a831564185099e1421620473b58248e10142e0108301541821010840400b4e4d4584f8b0b165882b08cf8c63fc084230460f841a607561b5082b10520036011b2cc22a423321126110221021d538657b581eaf0b583b6e2c087184366c0d190d964e28b3e48813c6583521ecf50a5d2e56385ad1da96bbd718553969c12ecdddada2ab0f089fd944d55f933bcc7d7532c7026e4e75b7207a02f57e6ad01329f277a7f8c40070f7dc083f2a5e846305eebba6c63a7c9ab91b04e9c8084811d1905050d017f915f3762efa21af37ba434f605ed79ccbaa5b2fee9e9dc4916387e6dcc26e7059b7be916af4c91b43c81b45eeae81933770c81ba23bee75f97dbee71f9fa856d1d7e86ff48504d7bb5e9ef917fd1dcc613537e15ecde8f639d928c2060fa48d1c481b07c0e17ea7a298077c9f2732e47bfe54f11319f22abac339106ab5da14f7510cdd9e52ee6f236b0cd5d8216bc4fc6d356fdb3a9cfed7e0366f87aeff5b87539cc64478881071f70ddc7df4a1110549c38bfb6b74ff72ff1a7dde7e9b3ed55fcebd2efffee577f71e1f34aedcfd8793349cd030e2ee2aba353e9f67eedbfb9dd5d7389fefd3f3bcbd5371fad84453fdd85c7f59d3a0d1a0b9bf2d8a0edc43319adc430e846968141209d92201679d4003ee33c470e5394946dca6d0c5dd07e92e82e1eea7bbd7b8bbcd0006ec165e7acef3fee0d3837b59df345af3e9c9fdf4edc45426e6993523f626af58840fe61e9f68157a7edebf7d3dbcf7b53540f80819fd90212fd4f3437e34204a6a49c912929b92a5a85b9492c987d4c700f7a02ff2faa7a2bddab980a02ff25bbdbdda4982bb5f7132c708d76beda7d1750714dce17dd7ad9b8c3921886109f5015c002d80443c01022cb84001c07060670143442db020c2610397158c288b44312cecb8008580244d0b3451014bf0786144f482819f1ea20a5748988420020f6650d821fabcf4bc057242c8f0a9213af1005943193770b1b1c146145203a943073ef082908f1dc5a7828718e40e50b2d0d0882d157c60410c228c70d14146188223aa9a34e14107246418211565d460c5023af08064881721113d58a08a282a1c1822862dc21a36d025cc1632f008b261116299e18614138cc013c54514a12e8a9fa2862ba85829a089b089163426c0518259b9012442a122b658224aea034a4c0126bc810227b6ac39cc90002a5e2c1a05d4c044d10582ac90810e560319504a40123474b971808b7de2001b80a1b20219ba0c0183f5420648d4183231804064055b8014a6a4508029358c61228b058291f2e28620067200ad582a2580598d0086042a14b64dc2a197030d5bc40076905a1f5ad8119c3a7c0400c1696f0ac084d276d8f140142a5e822640b8400549552ed822e5599cf0c48b051d3ee00b34f124be640023ad40e6871e90380e22307110c2a289327cb86b4980930f0d706c992529f2de04ac40d2c1870f5cf1681ed5420943538c00022abe1e8e244686294680c26563881d8e01160e82589d810196c55dfcc12a0463bce4dc260d186060a100d2c7345370318226cd1055148123ca062cc03432d2d0b0021251c0f2939628c2485302121d789d0590e9088117694c330210a60427b80470b648b3c4801e3d68407501aec0224dcd0b2a64131bfc10d28a224d0d1a38d88013548c70c54b1367a8408a2f1938c14242442071061703788d7166891c1b5460ce68c201487c0668a1871acc7839630167167033a3659300830e67b4b003174924c0880e18d102973336172a00f6f0f99490040c674889a10985155e7880064e56388303289048832b824050549633320840eec64aad74a08295336ac284f9a10706a4b932629b2186093670c600198800093448cd98400e3ee8a2dcdcb440c169c6032ee025ed41424e0159a898d1c500540998e2880ca08841ca0c14c66000890f1d5748f18026665065218305175638c1811024663c0981b42b63032042b030c40c206214d5cc10169fe8cddd9ee4464fbc9a1aa37bc5bebc3e59d3e6ec4d01ee44ef13c64a523ed4e05ed3da87a23a34f5f52e06e270f94f5fef97fb9ba3be86713e74679df2f40f87c3bd109f1f2f840963a5dfe07f3cc6ba9b9a51ddf344de87eedbc6a9101f1fba7bccf49a3722ff1ba740408fd7acee50dad6bf1587c37ded316ffbd09d7b9a8f0fdd3dff134cd79ba23df5b7fe6c35afba57af894b6f6fdd4b5fd36abee96f87d757d5ec43f7df15ef9bde9dcb9ff7e330d6dd708f79db71b85f519d73eef3fe990fdd2b5a357bbc7fbe5e3671b8f29f872ddc578ca63e1e98e081890722feb3c3003c4d6f2f2a67a92422968a9dc28403a2a8820a05a4a0d79a0e1ed02102ee1e25e5ee6ea57ce06ea3407137f113aa8ba1e860c4dd719ffa7ea70eef4fea30e272b84014eeaeb3bafe7238c20b0ef7678a515d0e2e90396071dadbd01aa21c5caf356da56c940753f5f7c19bfa348ae4afbb8572b71eb8db27271c8aac06c81ba870e7d1414cf53bf5859ebc21d6258cfcb4b76dacf5fd5e5e9536d6bac41bafa69a8fe82eabebb5b6622af3ae52514bd6bc3536d5d2b78a661feea1523abd5579f5f94aabcbb443f56d87ea5288110fc2411122418204093244489020b62048eef6e865e46e81b8db22774be46e87dcad90bb0db240eeb6f643fbe14f4e5c6420b920b93bcfc91ac8dc56206b78aa61c7dbd26b7ab1c5cbdb30d6ddf2be6dd9ee6f3b6f18ebb620f1b70557fcabb28534d5acde2e0d59d0c0c5fd6d3a88a96e78d3c07bdb8aa9d60cbce97459c8491a6867dea66f3388799b9e41ca9d9ce1df164c7dbe4bca00460739298395dbbeb7294eca90e3ee7bde8d7b3174e131c4b0e4005db8af99b77f378b039c0efcc1a92f631f9086014d6dc53add2fa757bc71efaed7f759b59db79d53fd79ff7c2afa27927bf8c5dd7e71b73e3db6870f0d3298d91e1600eefeb2332c05b0c1f55a032a32ad80a29a9c96a48e3439e9e016a564426fee96c7bee581eef4c78414e5288a511420518aa2104571b7185c6077d81d1d16e4b038826a79c386bb9fb8779b36aa3a09d5f07aeb8510a2b48250dfcf34f3ebd0df589f58ff5a3db59d9a57e06f150337eee5a8afe9dc4ff34cf5ae492d1e74440c4632762aca636bb85b1a2fd75350bd1bc567eec0ddeab85b9925dd6d8ec549000b4d543455d1c7b95f71157ef200165eee6f230920a68673b60a2ab624c08edd0a0bd8bfde0a46766a4e3fe7fd2a8851c18b0a5edcdf666fac686dd2d8581a5b6361f695c6bad2d8561a33692c2b8d1dad68c334d6a6b19e260550e9dd57c9ddcfd8a9e8994d8cc4ddd194e1aeb746ad92acc0ddad0a3ca005c9031086549ade234f4c358df5eff47775f87c35a7b95f3e377ad75f49c3a9af77adf0af5929cda15ac5faef6315edad7953ad19f8c174f72ad69967fefacb1f7c4debdfbeebf5f9eeefccabef37d860af17781f277d4d9f195db14f457b39f31e87753735e378e6c5afcb98b75f5d0ae6d05eeea73ffde97efad5ecfb3d0effd68dfbbc35eafe98b77be87ef3314f0a8b286a381edc79de0bd4eac5bd0fa6e9fde91fcf9a75b877d5cf4d5938406651b38450c3b9d768d64fcbeadfb2d0d858f7f8288256e5d547e4843ff107d3970af2ddad7be8f6f5eed6b8876e2013beb42c704df18518d60934900214b89be0c38497fb0ff9afe1f4446f6afe35eb482c47b8d7f4e5fd562fba1e49d37b64ab38ca8c828504772c4c7ccdeb2a6575996a184d7dbefb698a6efd20e07c3d330a6e4a0e5d4d8dcfd7a84e977ff079d72d2478a97c828282847a72e61df91a36d19dd5fdcb1bef3e787be8d50553fdcb58bd3bfdf550adcbbd5f0fb5babd60ee31d6617d73c1bcaf4e331d89a2a2bf53bf9757dda39807e56bda447b570d9e695eb79acd9f56cbaf6d15ebc7b9cfe805e2157dfc5bf76bf4d39c73c18dfef07628efef9f2ac6bcadaff92afaafd11782d5fcfbbefe35ebbea6811001016294d507e675f71af77e5adfc750be86c33d8eca097783dbd7d3785f133d5515f3f6d3d2fbab82b1899e2afa19b897be967feb9bfea95e4cdba9682f9b3877aef955f47fd4acd6569ca6b7a7d3fbdbe6a5e17d7be8d6f867c555f9542f30ab5454ebedf14c15e7fe497eb22591726afa1a1601d56faaf9f19a7578c5266ee3a8249cc6a6791fdf9c06afefb19affea20a65ab1eff599fa1e031f9b2aaa1fe7bb4cbaad5514f7f735fa1ae5497d2d4dcbaf9d50e579934440e3ee697a1f9b2f2488932218e1ee3bed24c20ad60b779772f2c781bbfef97eebdf147e2056ffbe101fea3545b021835978f0f67efde95e889013eba07a7b9fb394bb5fe064d087200cb59d8abe9034fde9f4af59173c5d0566954a75420669faf37edeee979bacd0f8ab4eaca238717aaa97a7fe723925ad56f0da8971eed31405be104c95d7dcf72e5eb7fe47ff89096a096925e5feb6136b275fd34f4c47a2a8f877568f9056a4f37070ab708aa17059a7a2b78d77b8f49ac02cdc7da7a23e5f5ecffff957d1c722a0daa6a469a909aa8402ecc1ddf1eefaeee7ad035a718f029a78777d3c64d519a62351fe83b90faeb80a4df19ad1d5f798ca44a5aaa270f7e9a1ca3dd34a839e9d8af64cabaa261affb4467926debd6cd6723fde4677404036eddb9bf77bcd3ebcbeef859c78c5bb1dbaeef587abd0f32f59155415e4fe362b277f39fc0ce06f53511d3e312fefff1f357f6de3f31f889b5e012e24608c1f5fcfb4fad91f70ef7d561f052e1bb8fdd48c6f3dd36a1d410892f87aeb92234bbedebae4bc78895985a94a4fcd28863a2fe69559c9ce69547acf8b453006d7ad26392f86d228d3ce19caddc30881bb83e003ee0e8607dccb3429a59a9ca42c41392d797fc21dc7e4a4e996444919159584e98604aa84f2e4e416a564c2adf85f975f8895877f15decf678419ee0ee5a44fca7d876a74a7bf1e906ff4da89f5ef71ee7b782ff5f2562fefe976eb80bb7be1ee1c70f70d68c0ddbb70772e32e0ee1870f72dc80bb8bb165ddcdd02f6869c85bb57c0dd29e0ee1370772cdcfd0a77b7a20a53c55ae35b38c2a6b25251a9e8a8e4a850a132a3f2e221727fd55a3177bf39d913805e6b2bd6424242b5a09ad08f9af5d40d9f2bd652379b4dab19d52ade56d86633b12f8acac4bc23ee6e660a775dceabcfdda588c21df7d07dd3e135dd508c63d21d544f4e8cb1394c71e0263ef311fb83bbef9c44910833409fd020680e777f2243fe6d38dc6f7d7d8f4df5569d2a9079eb9956369b9a7bbd6cdeb456d1bbd56cda6c3dd38ae49deefeb6d751695aba3b134810381263b40410258a92204262288abb1f211405af7889038c70f7228858331a068c56d18dd3f49784d77c4445b3b9d1a413edfdf08a793b09946c6633439d2ade1a43b9bdab7f4c9e78faf2dc7d88d78d6acd4ac1248d6aac6225c124fdd32ad66a3e92de5c4e85d8ebf5b97b10afe046d3bbfed2a73345794782a9ea74f73dddfd0b1041cca401e95db18a95b8fb0fd854efd6ead2c669ea2588a982868298890f454656f854dd9d0127faf21edc9d6acdc08dd521a273c92c83eb4f5fbc4aa9194555b4779658ab588791a41735d1f3d701ae42f74d35bac34dd26ba22acfc452b80add3f135b2571f71cdc79f01553a16a66daa8eac4dd7750807a795278cd4cd997d7a7ad2f6eb2cb5e56f1e9ee3af4b2ba2ab97b0e7ac5b91e66c2269a9f342972f220c0062ea69b565acd3e8da17a669433753ad5526fbc5bafd456f1bafe8e04f58a511dba73138ec2787777d40e657ae2eeeb9a84ca29899438bec45074852d57cc5d972756eae1bdd4c37b496f14ca11bcd5a50b94a2fbb7e2ba70af9d585fe0a7e935bf24712eb8bbd7489c11bfbcbfafa23dbcd1c7e94e45f59724eee5ee35bd7f39f2364556cf21a2dfed057777e2e46d88d7d21403f57d9a8aabd0ddef54f475f9bf164cd39feef1c6a9af97cd133d5fe3d7e524283c04251f7aa296424fb68a7bc1ebbb617db183200409c2e9eeb5adf16ef7d3bdc7bee0be98b76998b755dcfbedd6fb98b7f18979af2fef1f889b4c1005c44d241520dc75f97b3f153f0ef79827a535d65bc55549a8f04c71618a4bf14070a35bc5277af74562046408e3952745754d133331023274795146408632500a53dd3469880878a1848880172a880878a1820c012f14d210f0421d0d012f94d110f0420119025ea8a221e085221a025ea8a121e0850a1a025ea82042c00b852404bc504742c00b652404bc5040848017aa480878a1888480176a480878a1848480172a08f04221012fd411f04219012f1410e0852a025e2822e0851a025e2821e0850a025e28ace626bdbba9d25db75592342d4d8d3261aca4b12fb86d369dbb6935eb8ba19086847e1f5c59140ca0be7bc3fb56a1abef761baa15d5827e7639c5eb6f5fac7b9c567fb72a2adc89d3dc5531bafe043195bbffdcb57b8ffb75120a1a07de75a84624540bfa518179cdf1f4e59150b258424229e359a72ee1f3ae3b9f93ad6f1374a3ea9208687a5554294930f5f94aac2fefc9dd666b62c1b87b94934f52df265ed76cfeceaafed7a16f855fa38f79522f04775bf30d77629e465554f72b3e53f497a4d79a76b7aeee5474dd5150379fc6bdab1eb1d9d48cea15570d11fd8aacf849df56ecb3babdd5eaf68a0cb1ba3d13d52aba6e2b7cc3fae68a0c11fd8658dd5e56a57a52277077a9153f7970cdfb9eea654aef8a7d4ee9edadb929789f7293c61fe8b596dea8295eabd57c6c9cd2f6c5ebee776efa9afef4def467a6d7dca9e8a9fe6c29aec2e9cde63c7d7951adbd669efe9cb70deb1557e1f5d525bdd678faf2625150452ec4031d7c6bacde56bcd19b897d1ac8c4551e0cc066b3d9ac82480f8e7800e4fe361ceef7fd3fb15e6b27e6e9cb537f404027ae5ab1c65018af4aa6467b369b563155defab7ef8ec2a67ad39b74a618fd60c5554e27569d6cdf6f5df311a5f326d96cda66db6bf6f97efa867b77d5ad795d933cb9ebe07dc25877d3c1ebd3faa647b4bea90905e88402d3164c629878343199dcb8fb13262a7a7947d0bb2f129ebad4b4c4a8ca6673779ebe4b8a0c31f1135dceeb5394cd86d175df7cfac45ba37ac54f77df73a77bfbdeb68a75d310d1af2afb6e56b7b7e4b6c40b1275c91df7721456739354d6a94b699a8fe0152fc1fbeef0badb95eebe62de76daa149394be5a634fd29dd7d919c172f392fe6355199394da25a6f6fc5fb0287887e2a309fb7136b8dcdbcfa8ae0331f793244cde80d88d522e9dd6a16015d33af8813dcbb9deb05fa7e4b45907e434cfcc466337195cd766e7df3e9bbefa9943b976e78cde60dfb7aeb120fdc9f9c5cafb52035a15ad0cf8f89ab6e5417036db61beea15bfdad4992c82418d44ebc4decd378c5be6cea57d15ff33671d59f18c995b350800cb8df7d91ec509d9a8fe814bd1b233971149593cfdd77dcdd3c92e3a64642bfdbd62baa4b73ce6d8d5ae19b4eafba43f5fe396d15a33ed4c42beefd345e7d793d87887e679a791aafbc7d3b55ecd33f9de43380104a9fb28bbbebbc6211707a5e9c7edeaf379afbad62d44475ba9ffe136f1dcad3e6f5f5b209a4665423faf9096e74bdbe9d8aa63934ca66eb99562aba4357277723c11a34d0e0839e08cf6fac753a56911f0d34782245fe54f113f7918911ccc84206ee630717b88f4be3925148112ad6ac81c822607cc9dd3b585aa244e98507b83b769288187aad9d2aa6326fee86d175f77eb2ea7ec4dd47f72477e7ed13059e01265ab5e2285c908d83294fe3552908929dd5139b787d9bcc288b2037828cee4851b8d74cb46ac5faf3466a82848484e4fe36241e470c38da72d4415e83ab5e3750d0e73223ed32a329971949719991548880d006a3bfe81320613810237c88e88c02b2822ef55a03da454db82daddd6cb69e69252b228950f0369a2e654457ee2a7ade24221f0a63288c27ad99740a5c7099d018a12aee2e04158481202982823c8dbbe3f5b7d3f49e67f9b3d94c74c52ade9d5875026444070941ddf57765402493700002d012801450c872820958aeae9440c2cf1877d7447a45353e4f3527054d8dd3dc5db19afeaa54f45cd2414c75dd432be1083f3677177af750843068b7b01a5d18b7d046b0da565221700333de96ead76b0d28f5f550d90651dcfd44c35fb8432df3f1c29590f90c21f369c1dd9ff6cbd96cfac84e45b513bdd67ac6707f9b3ed55f4eca3abdd6d69ccdd633ad7a82dcfd91b82bc000321f45f88a79e6be3d998f29998f270e260a990651fcc9878469dc1d049765e073cf2b16e14795ea6570d3c301ee7ebbd5749aa6e9bdb99f0efad233f77a1401001400708003e002f71b6fa3c07b4bd37bc355283e6ffaf2cc7d73521b47855348e811cf680744578489ced0cca520bc4f42dccd3d0cc13d04c13da4e21e4e710fa58451dc4328eee113f7d0897b28e51e46b98750eea107eee1937be8e41e36b9874cee6113918cecbd38cf5bb1f2277e2245de8a95f7e9c92b1601afbada16274e18eac4698a3201e2a628190f12643c9cf0189f908044456154a76e2a2b54b77f3977bf66629ffee04c090988d633f3a63ebc3e1290a8a83ff13e6bda8792cf21a961aa5ca5a2af5ef3ee7b669ebe4bb65ed1dfeafbadf199e69ef7614cd57ba6af519939ad699bd61afcd7eeebd01acff76ac63c1c5eb74fcf7f0d3744f4c3e1b6c6e99cf2f6ab9fb79a4d1c50ffae89738ff3a115911ab266a51e1c4fe3156f9eb9b14e977b1a552fcfd478a7f236aec2299a9a3f9bb743d3d7f834d1add1342d87e8f2f591c26bcfff65fadad668fab8225243d48c7b59ebf2cffee5cfbbdf59b5ca495ffb51d1bf4ff29346817b495d7fafbfb6e2f5fa685fabc2ab0f17f5359f8d7edeaf7df86eafe7f5d7b4ef32d17679fffef9d2eba35534bd3b4b7d0dc99289eef5fafea6e90f43e5154b517313eee523aab994a5f4897113eedd2613fba25a1f90c9b6e0f56ede676e7280ac460e31c050038bacc696d5e8c96a9c359c6a30d568e2befc3e19f400bd4f06ffb40cdee6cb4fcbc0467b10a6c86adc90d140e3d3b3afcb681421a39124a3316493e95ce0dc2aaec2372b5487575f9aa254b7fdcbf8cc1aefaeefe6d354ebede15526fbe28ed5bc93c9b27870fb7ad81614e1369145c98cdc7dae8af735d57ce477567b3eaf4848326c3bd566cac82d23a3c87246f71c2e23917668ce26cb1965395f4877f71f594e161e307dde7f62a22a9b2d27869c01c87242f09adee9ded3d65a2824b4a500870b83b88748eee15108c43d2c0a87c220f710c83dacb9873fee21cd3dfce11e6ee01efab8873deea10ff75083b0877b0800f77016be7bc8c33dc4c03dbcc03ddce11eeeb8873adc430bdcc31ce10df7d04658a3ea060bafed549427bbe9c179fa9aeec3c96efcb41d9c4b68d09471a27aadfdf44c2b8c75365b4e06b392c150190cc96bb9c7b9de07d5f597f4b5139f36db9a71293893821ef45bf1b93d4df76860e5692b3e55ac7b8298ea16ccdd6eb5d1034488fcfa33c715584264af97bb6fddf5e9cf2a4b94b9a87067c964ae14dc7756b78aa39eaa506c62a8139feb35358aa48c5292b5a490b56c90b594dcd7dcbb6dac6d36dc631cf5355cfabbbdbcf5cffc12c946efbaff316f6ff5977b175d575c955fa32a069aea2fabeafd35eb7ec02726271b077f67d5e764c5407d81b5af99af4f5c75f59fea3df179738a81af2ff06e9d7977fd5e8ad75ed6afcbff5bc53a773febf46e5ddbd5f0d37cb9a76974c55fc3bafb1beb8df2d0f4aeb887793ebcae19edf5f0464ff59a7fe22340dc849b82c3bd1c855b7df9d5f26bb8ad39f8bcd58cae18cad730baeebc359a3f98aa20e070531eff36d6597d1dfab5ad6653fdf57ad97c9c4337d6d9ac01b10a4212244e476cb65b9a62a04f4f010187cf6cda7053d01548bb3f79f77b8dabd09d9ab37e5d7e0dab19a5bdfebb55f4e6fdbabc66dd3f31412dd939bdb9d7e5d73e8ca9be06028e2ae725b8298f795ba3fff3672eefd4607aae19a82e7dedc4db874df36ef59e2a569d9c78a7a2bcf477629e19b573d3d67949b9735330e9c41bcda1bcbc3ee974c5554e675eee1a0127c6af37da43d37f180f959953fc2afaa1097038441a42337a2d9bad0b4f10c5099070d376022ae76d9b57c5bf1b16e196cf9fbefb9e1b6b5101643c4da9a8fad3fd11119110aa83fa9240a5b33241173b86185669013f940006bdd6b43ed3bc440731936d859bb4efae523c7d9768ad4dd497a5b68aab92e89c744e3af78b5ab10a740a62267acd4a5439279d78ebdb446311305e95eebe48744eba77d5156b273aa7356ff32a61ac84842401958b4f12ecb8fb4a8eb19abfd34477b989546faf99c96e7101226caaf85705ebbf438f454075eafbedbfeecec3bd741d2e51aec345c7756aa8c2dd7108d10047109d1a1ee03a356cd7a92188ebd4a0c375b68ce13a5b24e03a5b7c709d2d30b8ce969eeb6c29729d2d35c4c8923413a3c7ddefbf8e1190c1d3370123008384871158d572e8ba5fcda8024680248308b0704c8a6006f7dab935dea1a7d5c28c05cc64510133143063c6cc04341666cc5c61c68a508bbbade244dd2d6b9ba5bba5224a6a637d73dbedd6e4b4140595e4c92d899212ca492aea76b34939f9c51627bf2080935f90e0e417ab935fa44e7e8173f20b2927bf58e2e417439cfc82e6ee2eb2459e19c3c9335c3879e60a27cf10e1e4192e4e9e89c1c93326387926b774a8b05c67ca095c678a065c674a15ae33c508d799e283eb4c61c175a668d7990282eb4c51729d2947ae33a587eb4c215d67cae83a52c8701d2918701d2951904edeece0a8816304282747487272842277c7910991b94c48cb65b611b8ccb685cb6c147099cd0997d9927099ad0897d9bcc45a306bad2c0c122e0bf383cbc26c715998155c16068bcbc2045d16a68acbc284e0b2304b2e0b73e4b2301ab82c8c0d978569b90c0c0a62b21cd9141b2e9b12739994335c26450c9749c980cba44ce132294cb84c4a035c26e506974951c16552549749d1b94c0ace6552a05c26a5749994229749e97199941c2e9352e3b20fca70d9072470d9071e70d9071870d9071370d90752b8ec8323dcbd2687ac71e3857343e6d4c8785a5cc6b3e2325ecf65bc9ccb784c5cc62be2321ecd653c0b5cc61b5db64381bbe3e4e0d0b121268b93624a70524c1527c54871524c530b87cc46075c66030b97d920e3321b0e70998d1d5c6643002eb3915d6603e7ee3636345cc7154e387945114e5e418393575c71f20a9e9357984e5e01c5c92b989cbcc2e6e4153527afe8e1e415384e5a6186935688e1a4155e386985164e5a218593568871d20a219cb4e20727ad388093569ce0a41523386985cf492b708e0e568dcd0d9c9a1b964e6cc5c1db2437b9db28cab80446770b05193fb18a7d5649766e3ad3bc44c52200738a9382a9eaa44ff5a7544507be6cd001243f395e74b1447a61e59e841735685f2c0a1c68e25cc00879369045bc80dc00001c8b80ea9ce58006b6bb7b1796117731c8dd76905e73cc98279c9832e3368813ab4ec68c1933668c875dd82d32d8c286bbefaec00b80f1dd15f879df0bd8e05877f589f57dd2182ba94ea0f67a77d4ea418a5e25bc532fef88c654570aeb159fc1f33ad92a8e2a2d70020b44e0c4ea2f7833d7acc3a78a751626b8bbb6ba4c2b46754da082e7c5504fb5afe19d7b6acee9e3f57e2da8ded7a14fc3bbbbf56b1f357d357ae2735fdc10d10f77bf06cc2a15159a021f03bfa6cbdfc3bd35eb54f431f0b58a4dbcbebe4fd3eb4f3f5eefeee555a7aefa97d1f55635c9a6ce3ce06b5d663a12e5f346f2359f34bd1b7d1dfa423d7f629fefae7b459f7c6d45afef7d701af727a6190119fa214c75d31c93f79af6dd75bffa5b639e547acddc4463ed445ddab9495399b9093037d93f272a13f38e9c3887aea6cefda272d379936e529abbaa9313e3f587a39cf44cabdba9626d85cd8a2277df1a9f56d838a9c20ba62351ccc000ac6206ec0bee9e69753bd5ebc4411540b69d8aeaa7ad5877cba7fb0defac92546071f7b7bd46998e44e99956b77dcba7cd46450d2a6aa8b0664c1086990ef85b9de80fc6baa7d13eb85ed4447558c5b9a73ded7fcc347177120a199c84820527a128c14928ac602d1e3c0a40529939559d6c8d7f55301495999b688c95f06ebdbc234400115cf1cf83bd629dbb65d91872b85b2e3e61acbb056387a07272b742006f1b9dc26766d2182bb9db294d65de1d85d3dc3db27393bb0d02436db48736e999514e54671f46b273d38957fc949ba8ccdc6463a69d9b34c64ae9c5487213d49a7d5649cef497a1a84bb8779b9eb04eaf5212df5da57c56497296d2182bed54b4c9ea32e11e7ad323bfbcaa4ef69a7d48b008a8d565d227c6a6559233cd4b709abbc0bb9ebc8d42d92b64a953fd65a59d9b709a4397766e4ad39f528aa5d6ad3a519d38fdf00508db816dc00fd8447d795b1f18b000f7232bd6bf15fb7e513b14afb82a4735b94f8fc65847048a1a143ba020dfb6feeddd34c6ba57d17f9b0eafb7bbc9a0f1b74139414125791e1e9e1c4e9229820c1164b8dcd61b0de86d3abc02e95fea5b7ffa6964acb83b199c7b6e2233448687ccffa9a254ff7bc555ea1363fc13543cd1e5092eeefe5be7deeffb78457f55f09afbb7ba4c4f58b93fd1c4dd714a697a8f60dd4d51dda7e93dd2049931e713a4bb1364a4a99a51f4e684144488904eccb0ae9867aa17afef449513f76d496e5b679f133b9c908d09c36fe97ddbb6c2b4b7ad38cdbcbb4a6df1638618a3802d63ac7cdee6ebf9dadb9ee7c4e8badea4356f8dc7d4c60060cc8ebfed696fa3adf9a7675aa50003739a963b37ed9ca1709abb297aabaeea44cde889b7fe5d9e0be9b52d98e8c63dde4659a0ca523aa85ea69ca5f4fa949b56dcfb69351300a7bf33339d37a9c91177bbc200dcad0a760011d0a283982a022078046e6a414cf5e371e712f605a58298092e88a930d55f1598afc6ed54f454b19a71ebc5a9f97ae31dcf5c2fd61f5caf8ae6f48a795b4531f0f7d5bf7d980a57e920a6d23ef40f6b8d79504efcc3bf2a27cac3b9dfa92846df447b59cd663095fadad734ce4d3a8899e4a6206672223997d67c51336b5de6262de686efbcba2f21802582eeb58d751053d1702bde5df532e13e986b4ae2cd5c05512089002851e43c5a455f08ebaa24498000efd69f6f635d05557f365bd097d7ade2db5db78adaf0998f482539d76c62a8bb2f92dc9475aa1012db016e448f22f40d95bbab4e12f1844f8f8ad3217fa2bd303660c6707de56eafb8db12dc2d0976046b6584175400c3738f02536a8cd6703735e3706de75407bdb0ba4c369bd4ab97976eac373044149ef3f17acb21826a78b753d135abbba5bbfeae102b10220b7753fdadfb69bbf5a6bf359afeb6c26a172168c0ed9c46e17ec522648d56a1e7df13eb203e108216441141f0e07ed7dfbdebef0641ba7f01f343036ec82f3b7c39c09713be8c407e51bfdcbe7ce03d33cacd3a75292aeb5454dfd6bcfeae15beddf5777ba6d59a6f59a72ee9271fcad3258e5af35d7fe5b64a72d75fe9eb99517a66949e19c5c99a97acdc2db0caddfeb6bbdff577497077337ae734caddb286886c1523214783e46e6d51f0ae6be97be13487eed49f92bbcd678a4271b7aae38daaa80e2371b7bd54e794a6e189b7facb47a8744e695aa66907e7d2946bd4dd47cb73f5a773b73b9d9fa87ba0d5a8440e4ee6a920e61c4310d1c88820000000831300204024168d06a301a164d984eeec14000672ae66844496ca634992833008328618030c200618408c0130544353240037a257109f37730f41fa59c92bdfc5d3d4b14ea1aec268599f054e64ed2f42184bbe51301d87839b9017dad4f6e2291def6a962022de8b45e0b1cdd1a4d7a78ef03f7ee8dbaf1a9f986400ad5cc7e7d2834039b9f1fadb31a4748e08f975f313081f93def1629c501f60eb78789a5c308fab8647461aedcf5d2979c7a4fe66c78bcf41d9679c9c46513ab29455ed76ffedb7b703cf9a9ef4176381206dda4e63c290eb17abe54bf711b64ed373aba98f43d2a297960f9f73ae920d78ccd664ff834ec7f3ed66bb7e88e8bdac6fae389512def424af9a4100340e822e0d2ca99be84e9c8621554cbbdd88f34c4c75f21c1ca0eebafe0fdba3af6605d994e7d477414159ca1e3b97ed3bc85e3a1b4138fce353e1653794aa4c754e09a0e045b141d24197729afa289e441e97022db57a8e4c06500780d4ccc8fad6297e45b398045ef910383f466149b2eb9ed3812ba14e077c957fe4f991bd09c7c567747827b962446009b6cbec72110d4e52ab2ffd877051d45205c1d1e54ddb7526375a8db9a0c8d845d53f8b0262e75f4905da72bfe67bc756e4c28f523f21cd1ec20424fbf510d0e2e7a31eb7c9e307ecfa3d88e010c31ba6751893ce259f2fe93aa0826b4b286631f6b75d4e6b0a50471155f447031d94d145215ad0338ae6e3a3b9071b1bb886112cd1048e3c64e71958cd6922ad0335cbca9f7cc347f4195ee28f3e44cabeccc88b745df47e3ec968b1a4e851f1cc4278e9af66e74f8ea81716bfd841ead7fb720782da50323f12c7b768258ea1d697bf9d673c022b9edf85f5eb7693d7bdfcf59ca0ef9e55e845f409f5a9c2d4266693cc9e2ec46c17f849f9e0e2691f8829a58b178d65e1b9464d4bbe4b5322bfbe432d9bf9cc163b00676ecbecf7de9bc114423298475be98bdeaebf9b4bb0a3aa1b05f4343126d576f836cb00a055db2469b1bb1026c7943b4f869aa7eaf435b87eeb885e1b9ee5589fa4eaecfda33054ac0099c2ee2d2adaafe8c084066fd8672868ef4cdfaf6fe6e64877f20f7a6b6a35a4e8dddd088960785273c59a967bfedbaa586d9051e8c347f9645435bff350571c2a06307be5f25efa9a11902b9b917fbdfa163bf712ffb3c314adc3f3abdc3f099ceb05795748cc370dfdcc08ec357de377274ffa1144efc8e782b8376d40ba7d592d011197afad8065cef9a5dddc4381e6e4ad7531acf3e686545af20ce10401496a798af04bb03de514e82877595c6f58840b192802f40e024986bfda24c11a1f344da12350ff8a800e69a9d6085b4b666d09f196a2cf7b93bb5dbe633ae4d8f25f950c00e7586dd600c435d585f9034190a91652306c9de0bd4730ac7fd5238a0886ebe02b795c907ae56f0dc3ff93591b12e2ee7983f11cbe288fa52c1d6ec9ec97b7a9b479e1522632c458d7b6697b0256a347a92133fd94b2becc91ee6bf252710437b0fe80fb2e80b321fd9f8680a0186847a90f866526432e30fc28419ac849587c08910614a787629c4adc891f7fd77bfb9bd8bbf855acd0807b20f35f6d0bbc9f918953891ebf2ffa1fa0311cb5239a216248f9b448f60934142dcb2108101146f44a2415825ca517e9e1855decdc0ec580bf8581e2ca283a517b80ec5ec26c13d5b5e4a0e64f303d95da322e921df080ab885eb2e43927e416d41de2b546a6242130e5e0e98fb828e9cd4966d73b604dd04e26a82febe96c815fa44a493d060b5f82a1e36f9445688a6222aba19a70d9b1877c6e916d68a7a1bf7e26b44c0411b87a0662a3b74e5daa70f1d82363fc2e16aaf5fa2ff266f4f93d24001df98e90ac5224df43bbe0331144a8d1ba551cb2aab85467a495e794d4e06b6a8b7cec0e1fc486e24d122a1dea06ec98a78ae0c2b656135792a7af182994093c866b018effd46e522c1fee8a2a7c1cd7c458e397cdaef530ce9c361d16057a89bba10a2130d764c35383bdf6178ca14aaef61975489b3c67b4ec9fb050348f5161e1cc490912a4ff2e01cf5163b6879ef2d34861f37f08eaca6391573972082a28c6233b887e89eb0c57c7af721a8476c509d8a33b0830813d9201f829345004368fc4c6ce8343f765c45e433739cd879adc3477af0b92b70d46cb0d9b7b5a7686a184c6c0a09ae194a07c6b714c6d9d46a67572ee8e290e1442f71cf69f5040749a5f06211500edd31f10cb11c08d6c87d9db31b43c8d579569b67e199633791a5a9f2f155b91b7c7a7a6a883af1388fb71786b277ce4ddc09224677c59000b823ca270b6019269674270a0a07bd3a4d72cc52398c44c70b0f29a9f97fde8a10b77c402b6db0f662e8acaf5870b3146870bb63776781ccd3c4a06424bd7bcffcc05f0b219e0a5a63fbb8c31066d13288ce40ba515a9d35e9dba6a7d8dedc85a84ba3e29a99edd56adea99d3f48233503585ab657f6fef34adaba6a99d7ac3788df60b58ca5321e70bb5d80ba2a8e84f3abd3bd58350e1734d9a63d5cd45a3f7995a6e809c8c7e2ede5ba8dcf13294cf20bd9ba349420dd9bdca79aceb5baeba0500d43d3cca02ef5fc535b257b9599c5be8e00f1d675ce7d2381b99f9a5f385e4303d7bc7a1befb6e4117efce6774546a9104681ba4e425755b1636a9c4cf63c7028062ce0dec25575871151f3e7e0472e19edf312b3ed29913eea9e3f985e09d4308eea21595f5a390c5ef134d2b93d78e446f5e8f9c0d36051fd32926e164710efb6bd42839a8bb7b943c8b3ab69c47971694da488e268206543032b75fdcab61a279528ee215fa53ab2c389c28d66c618a20f9f38d605d8b089bece39fc71fb98262f7ac33d79c9c5b5c9cc9ab0a894280c7c136b3bea49b67642530362d93e8789d48f2bb094ed4b51490d03ff6683bc1af7a4b28e715bcbb485f0983ef03c1d787ec3b329f28a1fffeefbc7a63829fb434f52dce0a319fbeb82839d28b2953bcbb4a4d3bc60e1ed7e5fff054da9d1d0183bf8857740b57e22524641843fa76a9c89c9115c47fd1f44495eec07c444df1fce4a046ffab066b886d54acc5ffb573d351865a625f3ef7ddfdb2bf7b6a4d7fd193ff9494f5a1d10661bf06d4d2f6511d8e1a9b8d838bc5f202f7554c5dfc917a53fdd61cf6587859c45b6cf959ce79ed3ef8e2978bdd266771b204de8dda27ca2c529d5ebe584b92f4db3cf9b548f9ed29b33d90b90054fd0eb5c500f4a98ecb112f987077d63ec34d1d006b4df657ee198f75dba51ebe5bb7ed01b885186006e992a7b04ae1105707cc12872274fc00c71e679d3362a919f8ca970866c59322b65f8021db71ed36b83b1f0a04fa622a137fb697e7fa330a95af55e1c43f32ed7b8364a71c34aa4790f9c6dae4a1f5a916c122658e8039dac77259abb96281324dd58faced1bba9f1036590166f9f9ea986ee73d8bdfe23f0450c7104279c2524d9f94766fcecb77a493ec0859ec5a62819aa275bf1f06ab644a89a101ed82ff5d185b1f7dd275ff75d9e3b5e04b5b8b3830e690645c1930d2fdbbcdec533713e90e0d61c61cb6f10ce74b785dfddca69afb84f96834c4ffe138dcf006c95d53d92ae5c0f18fc2f1c3440fc163cf5519e716f1cc3dd0532d08fc647218b7b7da8b843630ffecc250d5ce6eafa9d99ce8ef1aac45faa9581a68a0764c1785fc216507446807f1a922835401316e54b21fb11a196efb3bd23edb4501d515995f08f9eb05d1471ec29c12cbe6df33946effed4a140b9cc90dbde61a2c1dd2dd0f4f9a12843117831700ce614493479a672824ccf78bb9db96b77f812c87990f10b0d8ede22d12d2410515395e185c7b093ea184d101d427d18a58161f39163a10ecd48a2d7261e0a1efdc8c365ede845d30015f38ed15117473697683e943b89055ad51506805645deeb74fd79cd6a85608523a240b997ccadd2c8f9663e8a0ffc6a8026c831b2c4c4fc23eb04f704802957c328cc550923cb06127578cc127414c31c290f82196a07f2a311b90bb020c0a834119d5b139d1d8dc1c611ac2350be12fdcddd58d86abf9f953fa03d73fa766030f305676d0164dee6591e07de9ca594006ccf20a0e5d0024287ee85f15bec1c05b10902fa0815a7502347082b412523630fd7e169f9c30bfd66693da15ff69086e1156df8bbe9b1828774ac4c9cc8e111f76361a60a580eb9993d73563ac9bc2dca3f7e677ce6fdae748ca66c888d41a46a02b135675b0e546728e206acc1b73d316650a480615f1f08594fa9f360b985dfefba4ca65525b0fbc5e91ba0ff8fd2c3e7b3663ea9c1dd56507fa0bb2ec08025aa9d9f8015c8120c3fd48fff6507f492eaf82778a2a67d3bf297ba2b86d6bec7c16369f2c4e2d42753f33efe584a9955d00004f780d66b2c3e898b77b1a141f6ff610692219313d8b2c9114ffb5c8e5279848b254507030c1f20f1dccfb4607936837e9bb4e10fce7c4d4c39d336dcd7c56e805a84f326ec59524113b796ab3de94ed6c2267e35f429d3ec6d3c2de9aeba753ccb214deddf75595e42763147276ca9324d8d73f7d27ef34dec3e2cedcce51a7c0cac31babf827652f91d68d7c914403324af8c6ed7576b9cd38c5dc9da7c85dc99b2c253f83b513271a914258dbdffa946aa191014894111e85f8e28465a6a34b04a8d92e4b3aa841f3c2c9c93502c08ed82203d716790c162c729e8fd365b91e3f707220645a675d9fb44cfc8f74cdf978be7d0fbface868f671834ab378074e446ea3b85fe2a4a1a50e333632b878c6c386b7ee00e787e6aaf6161e4abf223b3ebf52c98803c955e1ab86d00ac39988529ec79e4d7087944e31afc2c1a95d9d8ce52e5dd97b0280683a56e92f14ee07ddcab70b7d1616c02014bd31bbd944a9140f06056bb6cdd7ff93269efeb3fd5fef3f6ed9868e82cc240223ae09db64a43defb5149000c42e8c724f8405dda0fe80da8d668af578634b96b28c3186f1690ec52f6adefe428cf969f63d31494c41355bba4aa97256d49ff23761f8dc6b6125156067b71eb8c08a2bb28d05fa126eb9f11d8676e1d97a893f594cc381cbeae627042edf6c81e5f2cb8fb6fd4134acf2f6a855f3e180093318c6bbe8fe7dfcb413449f7a14bed6fee779a81406ff1cac5a0c8ff16195f5e1b811f4290fb97d4b5b2e386aa4e172c03d12ca1934f3099274bd2e256e469e493a9ba32a3952a7aa07d3f0b703b4a2d29c39eb54f2a2c836625fb0692a4d23e2f0f6e0957a98a16c70781fa5ad715746394123846f07668f8fc183cc619b135ef3e289a35c7796ef522c8d2b192ad03a12d501c206610f63babca76ccb762d34f8d8b2d261546530d70df0af937f6e59eed1845964498ae784110e39a18bc69dc5fde73b31834aaeb79586c123efc3f1c49eebe2ebf18655ee90897e80f0d1c47fb553cbc82fe4f82ee93cf2014cc33a5fe973943b637453377736e0c898f0c214f9efa1cf07e7c652645ff100eb9f34b2435367af270664724431184abcedb6679a02dd515be0c1a7defe2300f2dcd853c476aa88cdf289f6381fd4bb577b477b5c296c5dbd7c3574a9dfd54b8b67c385a5e92160ed0478f6ed17028061020b6282b8974f103618e47411a3b94c7cfe9d1eff3b73ac3d3bb1bf7b71da73bda57646343c35cd9bc4f9123066442a46c7f82333df3f6144b9637e4849dcdccc3d3887e61be39990437df1ffe63df4eac66d1a095069b8310f6bd3fa3779df76e01d03712c46c8390bc352800f51877ea7e31d3fe040caef3aee29440c1791ec1f327679e2c6e0703792fdbc55e9bf0eeba533a03e6be95fb897755050bf92042fb30fa5de193c67769f382e150e415aff19ddef36765cb8f0e408c333f9fb27ae4d92cf7ea69e23d1ed983b2bed5fbd3f946dac3879fa9aea9eb0963ec1118fcfef5d8a43ccd21d1fc5f07cd71babb3d1b5280dffe1c90f8ae2d4f946db2b418a1075624e63d1485750b2e439c7d3167313a764f62b44fc7c8e2d5b25b002821648764538b618de9c7bd270dece73241a81ba4a43a5ab01093f3063d75bc9ece3e626eb6469de6e1343e57a100bd7fa78faf55325be4b88bbaac1257d8338e2c9df43acde3e3e1fc1d9f9f35e5964894c77aed433a2f21335e5b3b14e13ad5f0e0cf2be3c68d1e9c44c7932b5cca67d6225e49cbd50b7c0e424a3c2df1ed69fe3406785cf48619fac3681d15ea04ee22315d70f2022ee9774349298a24b618ee43392fcf61519f88446f878c0e73d2685bdcae65b948e0e0274e121ade275d507bc6aef7c0dcdd51d2630b743a16a73a2f200664f1f3b78fd01ee454082477a5ca68c1ad2fcf0ad065422cd03214a0f5933d8d08b7a6156aeff5e037e84f9666eed6a72777adaa736c838f7b2ec93e763624a34149aa4d5daa98e09d0d331fc49238f9dba506a03208afdd8a8d4de169245175f812a8c044bd2e660e950cee25e7c32411aaa1f1db875fe20e37d2385290ebe8b5489e7053ea3c41d0688848f0d0e4f15bc4e9b84bafd08ad3d9005134f1538af7bcec6332b90e67073f95c10b941d913487877ac2e58f6ab09dd90a0e9ae46105ab67ffbed6113ca9228656f2024e48ece08e897578097b9e07e4acdfaf15c3f327bc40690448619581dd3f3139171d2f7b4929c7ad8f945f40d33da2be35178055545570bf53f442dc7a22559c6d1301366b076971e44b7b5bb82b579345dceac1a4caf3197fd484d2f0f265e1c3f6281975f29816490bf3536a002c3ccfd8f97d1fd980e52df1129044a339ba86e61bb754fb8c7c39e3acbf6ac8e67618232a0d6722369b19a8e4fe4b9c6843250074bc42c627637221db7c09e23b27132e1bee506a813639810477d8af11a3f1673c10ea9f0701e2deeabda5c891adaa771b1717911030b962269cb3c7c003790bd32579b7c5221dd3d1c48df0cceac682c8c266aa3bfe2242db51a8b271ceb3af0f3228becb019a375d9fc08fdd0a0e01b85f71d9d98b48627533ac42cbfb9f4a2c84324948d8b45ce444a16051ff5188b01252985e6329d0865ca61d26af2bd27568a9df3e73b3e230573142162b4c99d23c23b37d635d87a42fa5943f455c5e71164f284b37941c7517f18949e18429a1223ae2cae23e665a181f4e3fe46bdadb50e1206bd20fd0b4fd8ce6c2af404ea55744769fa898d1dbedbcce521e6e34fce27dccad2d8c55684ccc6ca6e9fa239f3bd02bd464f58ce95d1036be27b5cf9f76d607bd553b0deb47c85216459bf4aad7d47a94848f42c8cb1992e3fa35080d00c112f65da16439dd2283e6a2d708642aaed1fc8382bd7fdd62f133516feccd318b7352e0d268ff679d5b7a257df3565567d6c972424bd928399b0fa69767ca4540407e7ba9b6b1039e3ce367dd37f2ca9c30957503bab4ce64fbbb44e0a2ebf788457b30feca090e59855ff548d584d0ec0bdf94c78d2f2a050ac3bf0176275bb4b7d4d6ad9fabaf9d0319ea748d74e4684e4b1c81b1359dd432814f42d185ff859a600844c40d0e619388b97d9511629d659d547df9b9efb979ff6d094e6255ccf92f614e6074172d00ed884b260909734a3f14496975834fb56eaecd6d3cd7e84d68cb32df9ec88806abc855b18aaf05f1e6caab4a6cd47fe55617384cfbe48f5572d9069bee35888bfbfd9892820dd03040930ae6b50d7d974dbd2eb2208e6c16e8b69b7e85672a3888652df91e50ae5ec31943620a23452a049ab8b177af85d255015fae1195c392b0cf2723b94bd8b8ec8c3aa533736b0bd75febb4954769abb29d380ac4b41ca4c0ea1c148853b7182bd02483a0812dd5d5581cb97c9eabfa9380bc06f59369046d4527e7d4d98ebf0eaf64d59534c9aa5562e3e705d6e18074379b41f9c017a7961d4e418034d716928d419d40b6c8578656d50dffad7d6576cee27f00d421fc31031de53b75e138623aec92c47e19d5b9fad2dcbb75f124732caabd1af63cd115fbaa3504263d5472ceead88e10e7f3c991492acef25c63e3ef98f01f2f6c6bd2b7e685b80fb1f73097ec8e105636eae695318c7c819243e04fa1034e5e4fd171ca8f843e91944656b4827a5f10f2fc0f5f4d40f51dd1bdf9f6ea6c89539edf49b25266fef040ad1a2f2ac15ce83bea09c35051c5256bf7f654e1bfe576ac156182d9a338f13f10d406c772d8109f09db2a5fca8132975aee1bd0c1997caba148b19efcd236206a67c4205f4093cfdbefef4a0a6553338b80c6397f97cf12329069cb6034e0cbe2b323f894bc9bcecd4a4d61cd7dc02eadd686dd53fbb6e72c63b4097082f314aee615b01f81e5e185ca6e068f6f702523fd1c30dff87e6720d5123b82fd8687511627ec93b6d844f4f10c837a7fd049d3e6ef343c02f6029ff7a6e30bf0aac7629e82f2090c319113ff3242637d710271b1c40b07a86247a256dffa14a6b84cfa8c7816bfc8a20ec7a373c277212177935223b07d1617185b1c74bd699a391de67cd5e2b1b86f7ade31223417cc731d3c7519ccfdcfa6e9a9ce774bc7a46a7c2f097fe7970186ac1ed8ce3f27f8be179a7b0a52bac879e462f85e4d9c427218846e4df0aa278bb2c507d7f0023fb215a24bbd8eb3f1550f7479535dd1642675a1c56f287c87ef6541b26dd6358edecd59341b078944e061ebad6de2288ef2bff6698c2c7f6ac511f9d0c35d810df668fd4abaed7938c801d4173607dc21784524c24754a8a7446444832919a7fc2fe78114cab47c32564ff72ad445859edd6d0e04f7ab72acb07842ff4a26d96fa27dbeb929a88fa207c32f3ae0b52b45fc0da30f130f6a5072f01b0751efeb176c46b6d978710ef879b0a1414e339f88b6d632225a754c97dc9ac244bc36383543b4db39f65d045896e3204ee362ab2a1ab4b73f66f54d652c2aceb7a4b4e4f007dfa83aeefd2362d864fce067d5f1f3ac204ff224156867a04aeed0205fb3e631f7b18a0d357b5dbb70dd456b5a18f9f70b4f1cca02e0bf7713e85b03cb156ce05301d2ebd94089e8341360724896497feda0631341ab34d94d1cd5765cb5c10d3d2dd865cd5ecc15f18297f5d1a5516bca51d65300168896aa9f1e32a9d0dabf9edd01bbe44b24cae88b330faa9ead39fa89c8ed651517f70c0fbce3d3aa21dfca63eef68a6f2384e4e2e252a714e7178a0fba0bd5fdb4fcec6c24b493450b083aada59eb746c904ed92017c3d0f01f93674702adbd509ae5db6523a8e835eef592144eff7e9aa93ccc61f5cbe82ce1abd8cc107571195ad1bf772adbb2c115ff37a5b6645dca43634cfbfcb187564fb05f185dcec81f67170ef13d39bb0970ea544361d61e4caa9bc17ea6d3e695466edc670cf147c3bcf076a4edad495aae82270e4cea930975dda2c745129098c8da38a6a889790d83fb1c0c6b5509afa9d26b39609976676d6381ff3832e848f17818338b81f64f1f8f966b5991920c376f4e79c98c1a64ed7bdf32165d8a5f5a24010edde53c7b999a83dcbfc254847fa4865f4d53a2c7d6fbb343e7ac1603aa734fc98be2cd82a9f840c839faf1eaf0e3eb6f4900e54d83a91e6dda1b119f841b5994ca48140867c5d5dc397bc0ff77e8bbe42ddff37ea8b1f0aa8edaa4ef9d69ccafb7b80d91e653c62752ab8875c422e9302d4f2e972b408a16c7d0b6906081a6e8b56ca9f0d30fa53e2d4b2c0f9680308521e9e242d1b6828b902b06355b4aa8d610e194aa394c872d967c7f0ad819805879deba92f68bcfa005e2c02a382974a3a3440947f48a0c2501530bf0e0a985b42619f406aaf659ff6b03fdc88171501206693c53fbab4287b8834adcec0993813c3947e5a3e6c2dc95b5a1e82d6ddf26896e5fdbd0f93f584bf10dd872c08b397477e1b01ad2a5392c5a3953e36d7b234a9cda7305870f1f72af641dbd34bf611ca5655a2d26dc6d3eff9369e5b0d8a368daaf83f8be4afe7e003587dbce1dd0cbbd0a0cef289ad1450336fd299f74e27f7b36dadd5e881fdf3fabca2c214a1e447df989554fc5da4d1882261bee2cff2d57389599d7dadf04a2bed089e306c3c17694056d1e374e05b279545eae215a2c384df47eed6f2354e4eb7d77c99b07a2616a8b19a932ffeb5197a6916754d1c491fa09db292a86b69d74951fca9e956caa1c180bdc77f99f7d63ed44aa084347d52a826bce7c4eaff0dcbab37ae208e111051a70ad37868b5885d57e26826901c5e3c95ee573998047b4f8279345a30d83f29158b31c8ea6ecf780d1c51be20d9ce70434bfd39a3d4620136b7500988c4ce60dcac91ba35426591e500e8102ea08ee94dc98b2ec1f7eea1d168d8b39321017d77f7472219144ba249ce880fe0b62ef1a140a742c720ed21477b8272ae3d413726f42cbaff01ee4aac49151bfe3b0771439ee77a8733906c78a9c90cbb37664f3e2e7fe924b5a70084104bb9f34fc9a285a1ba6160cfaea27eba33de686fa013a683e8221d519eb1a957d5df46310e48625bf924de2fa51933f7bf134498628177bf7bf5e71730703dcdac3a7582ceb12c9341c336b2a42d3ae0f1812d913c61af6f92e3f737652fba9c60fb276eafac7c7302f1c108866bc85fb00394312319fe5a5338a0eeeea22d2c543cbf5d2791d5f85e6ebc78fa7374159e042af62caccc5b30e982d61c8d5dc66e151801ce1fb95ea814b3cefa1fbf5ee36770f3907c84c94c4804cf437f9e73f8debe656ce34862336916b74b8aa28771f79712a10b2988ede65f876dd63228756c802e92754d9ded98a7d996a670be897ac6cefe856e455c3d4254ceb77109cf627fdd56b48894c3705716e3b625c293d9db2e1c8fe17b727a243abbeaf27802b52618c85d13b151b9e13e726456ba7f61e151e7177d43b6081cdc24b8cd72fb667ea444213b460ec7da9ae5297627e2c5ae82a248d573a6c46409e76a5deea476e8b0c329867b976c391121aa187e5b51c01c2bcfbc946c4f7a92d6fc329648b1cb321d1a8be3ec75a60ea3b2abe7003f37a97c8c8db8d12329d937bbd6b6f5298674b9da75e89c4c57f0df3e7d9487e625f395b6481b257f6de38d25c935956b5bc57c5d7609c58745d573d1e94ed65e14f40e4460af4f62110e60a44b0288678524fb2df86218c13dae241074a989aa17d80cdf32dad6e521150e2beeb14cc95adf6a6068c9b60eefb2c53ffdc198d1eb7c2eb7c2aea96e55a6aaa9de7795d8eb2d69bf0253b823a6564aa8cc97a2aab8185f0d32321d612c4df10d1eaa9bb0748a0085c5e38d81aff73b30b9d4d0c517bb167f754712e6e9d21cd4aac67f5d37add1ebce62fdbfe91130ba779fc629e8f17fd72d8d37475e0cbde7dd747cbd5f70e44739ef17a74783351ef91297aa94b0250482aa8d05734fd23c17819ef32f9c1c7d3678c446274fbac08690c58771414eff63b2a4da98ec671982431cb90809f421a0237f6c108cece9dbce582ced8185c052933add7c4926c883e9e76eacbf46f9d6eeae093fb79e72151c989849089fde394bc2dee135c6d18a91e6de6b0f04ddbec41ef97163ba67bab2e37d30b905b787f8ec4b11bfd54d93dbd7d8a353a3436dede53ed5c850d4fc0ebd29bfb7e183874e1bebe84ff0a46d3a96ea72e6435e1e1cf75dbbed0080bacbc18435e0ec9df23a1f3140df92a7ecf4702c0923fed3fe598b64af98a79fca4fafb0910540533354c25ffbf8947890681cec033a81cea50cd098116a948aa183423e3c801a7b7b10aae9cd8884e49c4623f4f3c87f80a38405bc51fdfdc3aab552d9d0ed839544f5e4c4e4a5250eca33e7aa3b2828fc3bead73bd2b3d65d9a03cc64956d4e4e382063d00d0e16a77c79650b0ce0f0d762b9263adba3b254455d258495a2b19facaeada336fc6f0fa2077e0056d4ae6aa6006ae1593e18238df147498c066c0717873af6ce9de0dd81942ddbc074b90f973116dd3a665449c3767a44d1d2219e4821977ad078d78f03ceadcd4ff8695170d5092f08d0dc9118426a218e51cc306f6d2c6d1bc7b1182add20738d41ec53fdc0cd4be920d115ae99399b281664faf5ccc54fecb818c6bd8827919f27629810c3870c433904fc34cff797eeffc4d674de8bd6c20d513abcd108f77971d72d82f52be31a3e6c5950820d4060dace7739c0a565dc3ea9cb3d53bc7d122825bbdcbcee01821f506d90d3a783c40c37c670b017cb36d8c5c7cef22e5e5f9bba83830661693c81abbb7fa6e4c387c312bfe267c3c18c3d8175a7e5f78c8fd7a637a9dab4f3995352e851bf19cbb9277b3ebbb07631d5899c6cc299bb4d58b9d8d2af2f7c75fadd82f5ef9fb63cbfd0699f73d8bf290b6f9252bad07c8be04ba4576cdbf4626c8a4fe9470be78b67ec769e3e559f2e008195704015973b9f9d35239d88f28d3f598b0129b254007921bb3029f6dc71240d67ba7fd2343ba780e59b73cb2f58df2f80b71e05214d3089a10db68e3115298f576770444a94af2fbb9aee5a68974124d4e67a0c8c936d2041577fa9fc4ff0b0556499b657b3fea351db9b31751272eed7cab05c4cb8be359249d50368770f9f1ec88e0f21f06ceb4bb0855847bb79c50629f5280e395b111df500f614e96e9868edc106a26496db5726190c856449fb13898123ecf7fef53edf8a68aa1e63ba2dc2df317de3411e82b11836287b8cb992b2204134642ba223faa5fa1094b7b8cd61e6a8aca937fce5bf99ea1d57b37fec42d5e8a565d2b453a303102e23da3789e3420ae1eb20f95f1e568f316941b46551259e854fd4588c43b1fff6445fd1a11fd8b187f32890e24cf5d9837671b1901c2d43a6f6a55bfd8be047d4b254b0f2037cb13a3de192b01d8f705ca1af643ba5a60efb125f8de4bddec7d61a0d534d49846fb6598369dca9090e522365f460adac3560c8025b2b64bbfe4d343e313838ad94eb51763b6fac637f850bcb507467e1794e6e66658b4bf66ab9e2a11380a4299f23dadfec4214c37d5e8b9ab6a8d82cad526fe3b91d8f7b880be900bee53ca11ee6b44485cc43a32007da479cfe1f4f3fbf6916c4f8c64c4386fce29d3adad5da53e09d7f80c0d3b5d1734cd8e7b486ae19c24478921990c37fafc154a8d6d4657e21403f270b9e48bcb0ac682f943f972d4fda03ec48598dafefd98ab8f2fbe5b6439b12923124b6e53dc8a3724e28e3ec4a2c312eb3b5192219d8d0a4a23bef1f48e91e9c611924515afe34a80f8d718975d2e17a0e2084540966adcafb0b86c24b1846e0c4a60386ab45c08728323bb9f43fa5d7e1bdc090ac6d1f68493eb114130ef2f67b42e883bc109750f4c45383191e64004d9daf0c983d219be0f73225ecbf40d699df85073b8a20ca03b3af106cf66b37e84d8ec3f203b3bdff9d52a2953b63320a914b6f056636bc07d11c43ecd8cccf780e14fd533711b4eac96e4fb05cebfb69d3612289bfc2d4c040f27f1375a750999051fb579d33526465a51abddf0ef261b46e7d2939b00c03025ebf8429179cd85d5711eb6195f37532f128083e1668241845faf1a8064dcb815473bc3ff689f6af015950b7619af91373c2e4275378edc9ca0cc8c1113aafca1538e11b97b08c26267cf5fe8fdc3900b50dee3213d444d2e64ce253721393ac5f9317cdf28eb98ea8f3b1c8fbeaf4c78c807985aefd4f5702e2a3971ff8a93ff9e6303ffca170a7c08e305f671720ecee29109c87f4ec8da2ccfb27be16418ccc9afa8e8737b8555eb2d7b4af43bbf76847766588f8e63bd7146cd43481423888d0542bb5c7525e3fe1779563840502b224f16ba456463eb9e2afa9ba6bba959d4efb872fc190b90ecae003b7016651edb89239478ad0ee636731b0fa32d8d696d9d9ea0ca1aeb3f320456ae20db5733f1f8fe8d270bbde52e5dfcc3a96fc14e9fdd876f9c3ae0d3e24e98db3e97a3423e942dc3215a1df084220ee87f227f2bf2b2f4c2af29aeaf139a55cc36d1fd72a7646d283c9390478f368bfa4d6de58039f7790ed6e1dca2b0ad0bd99fb8d55df80c3c84ab078ce05562c6fa21932b1cd052f6a86480b1f2f32c4b4d24a6e5ef30b8202d26133813d0952ef187e4370c9139acf741327390a842fd758bcb53f396d2e6b8f4207fe5d3aff627d0584567b3186f0041e97fba0a825604b33829c9f8dee4ba3420c374628992a66d76a121ee724fe0347c6e1a16f9c59d7322eb266fbdbc4808ec96af24d3820406f303f015720cf9a95a868072ac4ed600e4da0a1f8affc2fc96bc592dc7399bf4c6f45d33d8fdfc8fd3df64f357f68c7255aa756ca0a5d0efdcf6051cfa8b9a6aa19d103a79e51b3e137b22ef0452091b5a19f007999f782a7222dbd3e8fa31e5aa989bec9e1c203cf87dab5a11970f0a3bf79bb19d98ad6d79ef7a18359ff27b7d199cdd0c2eb3b82ee1b9aef4ef14576498147ee3c2b42ebdf0c688fe0e25b97de5b62996aff428f1d53984ef2e290f78b915517a3b9095b4c3378060a20977b58b4dafa11fa908de65e1c75a351f35e270f82718acb83522f67ae5275644d116cad9eff661979420f3d7f0842bbc09f94dbee0ffb1abe55a24c2bf46d9463d1536d6401243ae51c219e812845a08664e492407e9e677a048ecd7bb0519bcddc537651f18de236a6d53a30f823729900b52b44ff212bef07776b135667bc1d73acf21aebec0664992397269584d8502f0b78219a8009a00ce4e6937bb8a3cb5136cb7621f98a3e30ac25a1fb3ca4e9be8858a293fe43b68b0d5a722103cab798f90a7120fbea761b3693843c034a44eae340f621e4184f64a5cab054fd3584a8e49afa92a541bc66baafea0e93ee1d6431516c050cb4c3cb5f257a5f15e9e470ab6b051e861a983f9048cd8909acb32831c71586e32c53e770dbe123d6001252a8dba8d1545b4fae5f3ef6798ad59d9316a74339a1ddf78f2aecd8c49ae15057e18d557a54fceb2754351a8af643072f727b7a847d64f5b9063cece67d271bb9b149cfa6d3e4411b7696b22e93c019d369a4e9e70a67b0cbbec8645e4bc95e46117d1db866d82545d24a5e2b7fc72d75b8fccd6626fd32fc54d90e88a634017c0cb39dbedbf8bd76ed452e9e8cd396b10c2cf099a7995743917c8528274d6ade90d5691273610c1cffe843ba0b6ded1106d118753a9ebc8525b1360d6493b42726837c6f797647fe6f1868612153b4bc7dc57c0d6e38dc8d33507bbe6e389f115599f9c4f240e8e89eb2ff43ce07271892455bbd1d05540e0163d200edd3fec9a8cfbe4055d51a3d28b596634d59636bd9202b3a8f951e20bcdd4596272f6ef77fd8b9e0b0c173834959e6031aa624b8ec55479286351e1cd5f1be7ac03fc6f5b74afc7027c9f793237a8581f4862f5bba2c8c4d767b2bdf4d9fc9ebf07180893d7322817bcee20528b105d06d6b4858772f1d0a5295d94bf9847119dbf7b428ce6cccb34c3f8aa9729e7c2ce960b648042cae242a023647a6920c4c68c1f008299b3a5f8a04a53b40a6c0f31ae62e3a142ab0f92e7a791de11a645ce18e2b10167bbfe4fc8700f7cce8bfff3acd7047b64caa16ccca17ff88e6002b70328e149fd48cfadf11b12947ae7887fee67d345b337f60af69af5dbdd7ef34684fcc616aad748459978772ca7d90136e736b2f4e92c2342d02033b17f22475f53a161e313e602d5d98b424674b3849203d1082ee50d15530b90b7a9b9a2a0e7d0432910dd5c2166cc3229fdface104da132254c2f2d040858dbaab9cebfff60f0913d43c4e21aaebbede5dd215b2fa853d7bab77d5ee2a75d13754d41034d3040144d42a40bb262f6dc4c39ad782aca4505bf8eddbd30315e84eaac3f044545c0bb4dc3c77dc0b676d9b38381e33d826263ed8a1b5c7f4a419313222d95a2d75f15c0c8245dcc504196c1bcde6316d49f6281933d9cc932e441295ce0020ac6e0b63d29ca22336d90a8c9656ec6cf35145f850a2d7abe5676dad49d51d391d0fad2bb3e1b44c5ba79af48e8a8f3a58e36814028b9b049c8b969e9d325d13a91e62361f367c9d263539ddc70c5b4fc806f28f05edc09bb4b78ca134b111d88eb94c75d3ed9c0a6eb6bba336ef45e5e01292be5cf5413631674aef325cebe608f31f37e6ec2fa4fc283b3571822e15d404b4401606224b11d1380dd8a3db772283964d74a250d3e6482cb84eb2e9c81f04584f80ed1251b452561193febe0516731d444301f422acb13e462941bd5a59cfd7ff0f17f1b5d605a23c3816e7f160cb3b4fc3b11f838b7d5446fcceafd2e7e5fc2a5a16b05d5dd83932dfae1b5f987c58f9c2b73c93d167408dcc29ab42b6f6d6ebb41572d670983d535de0ff27da9b1ebf0dc67f9355232826e273d5028727e27bd6564a6e9581b26878f2edeba7380e6e265f7913bc7800ede61bb9b5b74dd3fee2a3ae77ed2799594f9ce6653513bb4b4628a5ad37c75cd964776ec6517b92a6e13f780713cfa33e9dea0bbda2446129dadc28614afff202cff474ddd77bd945f6aecce57294669558eefd2661ef7ac4e5da76c5e73e94708cbdaf1d569b0395a2195f60a509d1c67c9f0388419d7eaaa0090b272b52247e545113758b1dbb1a319486e5ff496611991473b3189a884474eca0a816a49860e453293c9a0209f7d8dfe20ecd43d1712a1e7dfdda816687ffeb2e7f54efb36f697fb64de398714d60a9bdb7a414a1f495e10f1e663ce0ea44a5cb9e2512d3571fb69f846fb3ca7f97f992e1f61117ea4489f6995ffc0719c74da7cfda596a3d4a0443cffe6343e9f12f29f52f096b67593009a5390217b9d4f5ad2f2bf70829376edff92b7187fd7d1ea6f9f748d77536eed6459520a5a7c401510bb82e0ebc3cdc4b965fb0b7054dae3a1c3acb47f67dae27c9e78cfdd4dfddba8abb5ef1540b5fb3982c0e031f471a0ea7143c187e365df7dfd57972b0a9e071d237703331f93adfc42e850dbcf96a54a6ce032f0bc1fb8155f14d77122acc111e45918f697de36d5c8e1c29dbd128788ae527c8bce70e3b84edf10244ce1c06d0af0dd7f1bcaad625d7b0de6cc55f9cf0a390df3a5564ecf255468791f9615385441c575ba71d5c6d21fd0fa08aea41d90b66660bad48a6bff30fa6f2a5243321f251977e1d871606541d26722d674f3fe48cd067e0465e3dd1a1dd0bd8eff583ebbeecece3689fcf1dd608a1b07eb0d872ea759242c8a83ed0feca104d89ab904b1b5d20c8d3bd27698dcf595966966d29f5bc93ea4bc63594e97d2fe5e868a6d23ff9852e0b366e409f0c5e3f8d841fd7cbf126d3df08659883d81f0b882e8e874a8218bab7045b590df4779c77afbac3c9fe5fec3fda3423c7712f15eaa4074e09e815bbf95aac3354cf8b2d4d8e242927e8af8c489acd06bd384f72e3a010708adecb62c849517cc91c8bf59225bf16e5dc71fd8bb934c978f6983a8a95b4a47dc86fa2b2484ea2ec187a7e8df82b82dbdeb0369d3321561b1b6a6af23023325e59cf1dd1de97f2f2c516aee017fe6a2dc7375b716c4f58655a3bf56b67f4277e386cd7f5dd7393f0c847f67d0bf5be4d92bade9696470bcfad0c6d947823237534a3d182b40d554fe49aea6d5c0fe28b0a9a0900934da3ce5037f24d9c58d37a6cd8153072f0e058865131b8a46de87763da511c808872656f0c8773241e66ed2e06e8d9be9c9cfede544a108f7cf6883e703fb5e038513380bd30b58c8dd985f479fdeca4dfdd6c393d00b4ecfea119b3bba76bc9b65097171f1fa28287fa838d9d9eeecc5ff18a2c27f579e7adf44c6c1f45bda6fdad3bd3e68e839cb212ccd2aac5bb60c3dcecabc8c969e3b62ba5d4764f15ee1c58846b0f1be8ce83db38e16d7fa830f10e4d8fedf562678cc9874696c1dd75b43ade3fedc88279b87e4cd41c51b2ce342b0cf22c7ab2a1b1b6265861930fd4c86b988db06ecbacda30bb16603587eacaae7343e044a5a7ff0869b2928ab4b1b59cdf9fe9fbbef67a5e41a8937426ea6adb7d7c4bb8b1f855bad8f80e1564e30761a383ed4ac47db6f8935f69e0eadd10e3be3b3790c4041da5711a92e0398a5b0f24e4178a5f4c4e760ec88193b26c710f557bf17db538a6100bb9328a910575ef36315cfc0693c5edaa45c215cdc162760c828b179277c8cf895368606780fb84ddf6f3b4a1a93835ccd400eee5bd2a47d1fdefe9fd99d057d0acb34eb4c57f7b5ec7b96cc1f08fe4e47f5bdc9f33a933f34b0873636dd001db899491ce8564a9462503fa489a70ec8e18d4d21900f6d74b2403aa2b19305e4484d4d668113fd8ade94a077381a7315f7a1396e344a1e3c84280eea47687ab2801cba895306ecb046a6345087343659203bb2d1c9027684a64e1690c39a34b507aae5842811340e43a327caef5bc3ab620f1c5033878441720a1845a4f9ecf7b9bd87c2fad9f767e1d6fb8560fad84dbc1f5896f56476f93f0afad5a63072f702120bec76c1e28e30ec5dcf778f6ca9d080924edefc96ca01bd67cd9a1128143075251851d318884bfc513f15834744fd8cd0f84f625656f779f9bbdb737d3f9fa61abdc4c9ef171d71fefd6ca7b847d00f9a571065bb891c4933fc5bf3f6d408fad95a05c25947174b5c8a6ffc6fe05bea67efdd17d3db20e3c9b663df1317e6566ecd9ec7e007f4deddd112692527d6cd192afcd12451904430106aa950096cdf8673e4503ede1037317cf599c999425c75957021f6f8ff81f7145ff0a389ffb99b50258d38f9725f17fd72c7faf158afa6fdddc6b6bbb22347f0a87d7c458c5991c3f54f4d7c138d049007f4f8980c5bb1095fbe37d0c2410aba02fc9bcccd91e1907526396321e75da60e7011fab2e1cf96f5b939043fa9504597df5f29f393715d45bf71241af2a653b963f5d72e27e32f1d93d49930d0e300bbf13899c68f69e5f709038bd52631c4c1eeecbf5042453342da3765e04cc9d41333a3b0c93a280258e034353b78bdc9013b2e91e82738ad4b61870207f9a001b306f64322ba2b06888287c83857d0025abecb6873931fb21a58455a2f649eb9aa9da6317d83f6557bbd351058b3a0079c307b80c658eac5b0fdbb5c44d6180a3ef9ada4ab91773f63e8e6015512709ae4a6b244c1a998430eca5727a29bf7fa7e89d533767ff5fc5371d1c1b345ff67058911c1a7b018412c81a34b87045826e874e30916e089cac93607f9280170f2dc7f80f2fad84323f8fdb11ac487e090fa075df8a0fa8839cb2496aac24a482e1b032bd46c32e3c020a16d6b72619c82e82eab67b65f5d782f56d9acfeb166349e304b0ad656513e357d190e45df4b09d972adb83a10701982beb769bbd56e7160dc350555326329fca0ed2a07fa9b716587dd2f65e1ddebfddebdc5949a0cb995f8bc852228de45166d8f09e0b5015a87cf3726d973618ebf720cd68ca990a9859a4ff46a24ca915c392f83a2633545c71124a823222b484ca12d7be338e0388df67a4ef42cc531f7ed4b04878214f1061a518a71fc8dc2f9ac132d7dfc81611127e540e4a893be3ca5cf313996bd3ad45075c2b952dc258acdb04260b27032f6134c3654d2c9a65007a050fe665234c44526f249acdd2c746adac36d3860794c0dbd4ff84ddb48ff68a5c7f72b75fe8ff49c9782746bfd959ffb92fa0c8e39cfe49911e26859c841619c67785bc5755e84e72ff07829b412a58542a84516bc0e81fe15a07b13b2193981fd3dc519d14f2ee10b41f1efbb54890dc73a6f351c8494a6dbba95993f8b34e2c801b314d952079396905e175a25878aa2e683f8be34523c67b6a94ecec5c924311fc167e227148123387c3472cfcb9c0bc2859d36c5fb6edb8444e9b0915d6bf5c3d112bb8b01669bb1a8249a6f53714759afde30a2cbe47d60a39d12856f9481160b6d73f9f04ec7d9ad856f0c1176b6e87e78a3122750cd26839cf2591ecb93d6eedaa18294520466eecc1201dfd8291b7a09bed6ab992bfd589900c5e6ae5fe1d8758b9901ac7dc7f923027c68e528e57045f24762e472ae460189c90dded0ca2b35f7f2b1800f07af9a2fec4abb3bed1d8f60cd3e736492eb4cb06ba4b21f90285650678e187b5cffb539174397cf1b96e5ca2987266ef3659ae0dffcceecbdc7f9b6fed9258f5b918c20c348fbd41e8e9945cc5d58c865bdf8357950e8de02853d19a77760412c8ee108695536cd62efd465ef1ed7cb0accce095a2baa4586cdd39240297ec4f8cf6bf7eddbb3c96886892c63f61e4a6ec6f0894224d79d429b972c66fb072090bf4c51a30efdce3220034e351262edd4245cda28493be6959c1fec327debfb50368217b9a333c458046800863a658eb9ca74d7cd4533eb0b08c27e679f6b374830db43a9948913d05e49b069506b9f61eae6c7a57c83ae6342d8b1bb839b8a4932d407bc73ac31dde5aec0e627bb3d18d516e04cec90c04850e9440f9fdfbc69964e8bd45f539a068233aa2cb588114f7562f409215ea8441c064c3869cd668db5a0ae0f38988e2ebe9b0d2d1b8ac971395bcd8c8209387d68f1f7cdb2559bb7adc2992b05008f5f3821127cd415b715b9b95eb8630a9b3468f3e650ea3d3a3b2745c2b593a4842b26f9ab6678073d776eeb055707057c5dec19d070bf0e9a27510611143816d7388bb0a90be3547f8c4c93633f345b3562639c78e0c1e8b81a32925d021b0b87464f1fcabaf207f9044be1a033ede039aca3580313228851a21eb05bf2efdc4a350eaf6c76a9d26f91d6af5696a6e930d500f40835c17f58207363708c3e8cefb0059f35e3455169a588d0fd869cb9a85fe784642aaf12bd0c40bb7728f0bc8d648f6d24e0331fe3a0c3d31b141092f94b2a4e1cfd9a57f57bc40a3ff48f8a06f3eb05448f30862ad23fd78850937e6c4755a93b5443aee1c13601573ec342767465ec7c048fd0396e40b46db82f5a9630d2443fda445aad33388d1e243292aa97d4cdcfb5a7fc4f48758b0cae461c3a4be69360f4468cc3f70f5086873e9ec9b4e1a52934efdb3bad9e1d0b43f2a8d378bcfdc68f301c7ed335a619adef2a6ed7db2eb1e93afffefd3dd192197d1a88dfe2d117512b930963f9e0539a8caa78bc852d62a5d7d7c995214342c56dfd75ae8e93e49670495139c4bb10d8d206c0342b88207f34d6d9a99db7092102125d3041c805f7573981b584d6643d025fb6af9f40e5a6e91f6df5ff4f29bab3a586f784d658eafdb79b71b32ac602e3098fb5d1cf91ba483540cb9894bebead93184dba5f1388fd9ada85adc5e0b21e7edfd9ee631c915561899f6278cf5fbc7beff492a7178c19a86ed2a497fc9aaecaa06f9910b720f7e9de5bd0ed20a669b9a907b43e55746071ff622c563cd6df6a201e237a5518acdba7c5f2700d14103e635596406567bacccaa100aa27f970c335df57075d0a3f36fad98ec7765bbea69436a3b0ec7907abb8b37121458de844902eb0f167a049e4eb0463b1023ce5bad9580ea1b6562ac2ba875bfac5f6f099eca69bb808536e8a1de264b8f0cecb26c51a5d528b7f28f56ba0abc0d4226fdbf7737d0b3fdfba23190612e0c9b3b820c0293791477d870f8a47e50684a1a0ae90ad6e5b4f371b286bce10a1ba2f908e6cfa02cfb377f131d855d7cad6d2561efd22db15e02c6c4af4c98b1e5dc6c3ddd9cf4eabfb0d6e1606a1f98aeebf1a878141d1b75586f3672c1386004aef04208dbd21b08d5ab8d307968c3a5212a1161caecbb485a6e670157bf513cecbc8acfa688f233464ef4bb11dc8ded620540dfffd3773a406fc031b2d6d05b5f5c3897ec9e830ff704c2501827d94913de35d9a7f76c632d78222958e17c7d438882f7daa80dd8c0c974568e7c57da56f66c905480d88cde1c1198f8a90db02f8773dbea138995365bcc3e706b468d0f03e6dd77ca92d80777fce73f7c5337984cd7b3a9941743d1145b9cd98d6644810c8ccc13bc26715563b6329167204bc4df447782d0adafad9d5fefc5cd31d83c793e9dcbbe57727c98666826c6fbbd853923318bf9b84c0742cc2070f8324687b71fab2b0a94004221494fd9899f566f0df8dfddc1734aa53f583ca0bf3f77bef6aec9e0e89fb4803592ae110027060a2f4a71f58b1949578066fc7d4ed24427c8a9e02a70f6cb2b3ca9a46928acd4237e133fd7c7ab1b3cdc2dd2d79d24956ae388d2f68e04fbae6235fd68ba8259c85136eeebd8fc8f8ac3547f0f3dbc3fa3442c91769ed544471dd9269bd7453f2ad4116d2eae117c9baf56c97912ab0ef1e214b4f634c76406b6100565912d66abad0db5b4d6c69d13572991a5d5d1a3f5fca7dfca3d68bfa63d299ba31af0198d5db5d9c1245711547aa8e3ea8e87b38f4702c2c7039c299cd9348dbd0b98d707fda21447110d423d86f53fc407f057b9d37fba5c21ddfa43ef2fc466772e9e21d3b25dde50709c07ee9046698a0b0f66eb52ce88cf6b3f4090d26ef35b280d0bbb8556a6756bc4ce3533af123c3555b3cca8fd6917637d9b29486e83f6954c2a204465940a9a65a79ccc30eedea4314a5c6d391294fbac2ca0a8cb2b0ea38b4493fe34e9ba5ca343be5f00a7562991b111d22b2024aebec0cdcea46756ccd504129649940e396c0e2e9b0ec25db70d2f768c2a20be3e174633b1f06ef6bd2edf42492a4d2fab353f357f1b87480c542783f3a38094c7f51e9d633e8fc14836afeeeb95d4a8590e3bdcf8e1bee3c6f1d376db242f7c61914588fb6859325890bbe8bb3d612a9c9e295508f6719875f4de2d01c9b474cf1d441b42978f0b74287a6793a592416d02c8d6491085eb1c71e197be9994aaee7cdcfb7b027aac82a93d10d13fcc09e7c993cd4552f77c26e735d386afd057167d4dacd506ad8618ed90a9d43f98856fd4d49415f207056540c9c5f849608a01530fff39ddece0563e07b94ff3e2804f0c5523cfce46b4cb0d0935c4205f3691c9389da9d10f8170fcd3599ff9e714307a1384e2493f89cc5c771ec6f8788ce5feebcb4efed547a1a618cf0edd6072cee1a539e1a5a12f2f5aac76c55550649f263f5ae86ab60309142e19391c0ae8d61a4edf8bde1c0e34f36959547e864ebe1ec5b52829666f4311019785b54b06bec38ce5bd1e0b7b4486be836e94a1820e4f9ca2d94c7a9c2c315ab1093cd2982ea311d03759d2115349aef2cff85659095d4f58d538440c92736c84f27a2b37f0b0f3329c9ed84774b9f700d1dbfe3843da97bb63d6dea000a86d27d0b4e624660ff8272f7bdc62ff097515576e3d29a9fe23824ac984164e3943a4c4bfa83286d9d66296901fbc95c396d227a761b4bbe67419d4669f6a5b934b010ac112517ec1d9625885b4447d9a28b7d74a9d435e50b39d532bd87bbe899d2587465051dc32cf40d2fbd1a055a7630aa0d63ccb433203f57fc03baffe58605b9f4e532c899f44a8659a2f7245d2eb198098ca2131ff03f04fd366f51c56ae51783191a6b487fb6175ae654bc539cb28efb2e207c4d838216893dbe26e1eb09f49da23d9df445be5324130e6d9a9bc4f7158e2ccd726d5548d44581127fa35107477ca002d2730e76c41a915e00dc5bfb075335355bb63213730997a65f0768bd6da273aae8f01e49e82016a23ca05a50df23a1922ebc5e1b92130aa020d1dc11cda1049cfdf0f380eca644ea9c67f84d842651c19f3e4fdefcc6ff7a7f6560477fe5a401e89bdb019c2732681bec8889205a3e5b91feb5e1f919ca7fe07bc9cbe73577191e7b130f4c6fdf191b2ed182066db4bfebc6cd5c4c215e1308dd05de705ff799a7d32276d984a1276232fa0943454c158081a9d7b5e367019671cdd5ce93c99f8747013c651d45ccac5c6788b098cc57a92cddcd53a2f37a6d222536411b90874a074d21a6d509d5b03d44e00ef7891310410c2e96c1c3b4628ee8fb5c44b910d484e03c3beaa813c6206099baf35ffa7fa1e16ff642b8041d2bc06d0121005ce5cf099a385ba3c12e76492f6b6a824f00fa760cc5b1c241112225224bdf536f5631daf2f3769d89e901a71c1accaba094673fbcf2e38a3287cc4a2a3705ae1f52d70b72c63f30b441bade9d09a7376760432a9ec6e18592fb2ed533485642fd34c4c066e5ef9598e573b957028866d8c0de00b3db7da2a1f2757b5f52d926037c56786a4d26e7398f66806d7f7a01fa12434d0bebcaf3a9d7ce811f6c78964fcc790eb63fe15e47b2b8c2ab039f5541c79b8a3392f1a6a94d843bb25d30ee2005bf8b91c48fa9d05ec811f0fdd5610f463aee7bf3b2ee90c1771a2df3a38a4c6898c1652899f5a3606a74c6d2197f184e53cc9091aa89fb38f9c0840f1cdf372ed62914b561febb1cd617f2f9ecfc335dc8c839d6692a9da748b759967afea4c7bebb846a33d007e63f7c38f13b7ed331b8d95e142abbb724754367c972e6e02fdec19fd66bf34c3873f0ae1aed4e9f7621a2c37ee360ad48e70d27880c7ea43af23975b645249c29612c5bd22a7301525bc810961a1c24f131b29cbdf452a157ac651a68653f0d1ef158b18bfa05f849e511b0419d75aee22c16a56294bc52975102cee89a5fbdb5591520e957452ca98e9df19957a468ac25b9445654d091a60db619aa284913b151305284c27a0a6909d316774f11c562c5cc6a0ebef90ccc777096b101beabd3871c6acf5ee7498f858a6642f28ba60e0a3bba3e467ada6fe7886b02ecd4b6957fdf56999908e1034afe818526d4e0901f143698bb6b0515cbf8b1c90f5dd106f655d4919e812863b469824c351b021701c955d73655bfffd47e30bba4f87e62a5f45f5978dcb4ff36a10c519d15e900db880e8ba395ba3e26d2c5449ca21e57d25a3d3cce4e89ed6c748bbfcd35aff69b0c86e2cbafa676d7e024e816db62570cfc6a322f823e5f419d5a8b8bee1239c8cbe0d1e40ff2e433fd344c88c8255224d2b211d25063919e074e4a787b90b17eecdab895278d3cfbc3e610b855ec433c6cfb63819102c34c03b7164cf703c3164b34ecfb650da0da3e9e82dee9faf7588d7f38641ab7853607b7fb820779fe8b0befb30636fb5da05e1e427e2dfe969692358c5ff649f27e9f6a5f9858ea0c01748b22bb9c8d618131e2931a7dee62baf05d6097da25d385e2064be0a84b8c013dcf017b7cf02d0821fe1e12eb658fdd6aba2ff300419d1b0a1556d6511e8c7735d00df39d9ce65b9598466434b231bf47089b9019b7faba7128fa718f902480fc1263f975f829447f30c635050cefc8ae3c8d0622c873d409d6ea4a3c90ef20fee221d22147f4708ea10a8717e7df84db9c7fa7087e8a06f8ad06308e3b2bba2ef6bab7deffa009fa5bcf183fb21e0eb0f7a941e70251c883782b091444b76f88d784431137c0b7516e2207c91519eab299bca6cebd6840829b61d718f79ab5799de7d4e69056148dd05e3356b0543720d5a54a0b91cc7ea8e75cb337a2f8d4fe8e9bb918953be41ce5e28bed2ec7ae04f190d14373a65538043aa0a59f800977fb8225f563fd0625ae5aa424b50a29f51adc24b348864f5af9d300f5af0a595ca7fc418a749ea395f31b767f92541627627ea7b53e64b618739d75f5c3a110d65236a54f66cd17adc058e9d1e8c849c53ab59c8a14678a2d0a75ce9473f9f42605892804586fd0de9b2e02411d521bbba6118330cf062dfa070d4e895aaef06cc7e7c52244b70b3728e7753a00c17f47fecfcd15c990e07e3dd0c46f7210d234c46f0709c8be0e6c146b9eca10d386d726e166a37360cf19e44ba3e86d9080dceb800d13aee411c52e49ada70e6a1a80af0db66f2af9d890a2c5ebc20613f19458cce9c9629d8496a91bd734ae1707e80136c56baf2cc8529d9af409970cb0a62809deb6aef0b16911199242ecbb5cb4b9f70b08c071afdfc68f8fdd86ecd8711b18db1bc47aef9bef95a35fc6959e62be001c9f6d5b782eab1fa8e0b90402098e24e9ee609fddf7cde6ccf8196aefd9882f7146848f971f9de3f102f8b6182a387ab63ea447d2dbb7ef1292df8806e543c21cd610a7e5b4bf2c16a91dad698343ceef6c7e27563e834deb8d0d4ee46bfbf22389aedb9b140d12da1074206b116aafdd0aefb1ab5834147c99a573b570927bbb101414342b2e4aef6e8660ebdb69f22d4a8c7847804b05377d7bb4266a4e24ae5ab0795f53c084252fc48db01fe81f9beae17ab16c0fd762300776a604578f5823ce9044aa4efb18bf00b627fba6f166b23f2c42a4a6433412f11d584326cb2ab42ffb7879c8b828fd7462fa8246f6056e29d648e490a36d5bee73b2aa7fe233fc0f40ddde45b509d593e214c3d40fd4f5d3878d8eb492693b2b1e2806c5a8383b0ef19830a541c61b4e089290e1d62774c09051c1a827910fe18ebb0e778c9f3b5cd07c9a0a480bca64c7fdfef6d19df3e6ccb133bff70734c1ca2f12f06937e6cfe41a7f46ccefb14384cc013b9c25252f3daee4e156520e1a56295de67e626977fdd86d9471ffe0f56e6d4ae8c3b5ad24acbc182574ede7ced4aaa8b005093ce0803cbcde41af914aa39ca8a353e01a11482e4226f014d1e93a8d1b6c7fa80521f04b882905ce7bc8bd4ee89ad32f913f7ac8c22a6901af7b8873826a84e8348f608b7e59ad7b3d619843b51469760a19eca9ed3438611cda719b715004cde2b74351e61ca518a784d8231823479b2948f64a6c242d512a81b008e36d332ef3b331ae7a2b8ac60e6c14da9f0f0639aa00289103e2133017adf6c12787b1de0eafab228221bdd7036d3e701aa5dec79f353678fb3aabae507ccabe3cc8fdf3c6be45cb28f4eaac554cbd7425775cc3e902f492be906f08831f92547a87ba1e7d2d9e110c31a7aadf3875f3ff401020516d11707e04af972e019e9e1a5fd3e2e90758d54fc149778174f14c5a70cd226d582ed70e2e0cb0885661d90da537fb97b4dfc4fe0b6ee4bde5ff8f1a35aa4e7d7c36293a11596d8e8a98b15428d3c5d9dfcf4d91a49945b26015270af497c369dc43178530eb4240232207b64c0b7a28659281b906bc512c651b7b962f3ff4e4c5dd0c3c6b31109c07e9380679826d3750886b38f197e8b8ebe50f1d3c32df056ff9aff7370b9094ef9abd078fca80f5c0a84e580799a8882db2298260347d0e6f9a71c6b526f7eb956c8a7cef64d0e0e549518521252811f9a4cefc0da0141f698de0caac12cf7d004a75b3bb2b4106943a3dece3cb5677e01a6243059998dd6a8daa1adab70a47d0d685529d4867e04481f43a20b4dc830e56ccba337b59ac366b91b937ee9e7a512b46a9279c2fba2613fba454f8cee7a554d73b3f4dd0480efbf24f531b4e4d416fc8064baa3322e2673af4cf663541b2b0514df92c6712eae7fc5d6063f6800dfc3768321921dbe4ff616aeaa77c13344f27b9cda344d3d371d233a5464be9a0c593a93c585035a0dec2990ec11c36a070e9e9410a8cfde1b87283d66c640b03530bca387dc27b6e041c837edf9cbac46e6e14d0fffb47e6ac2626bcdbecf532443117408b03e49901029188666349e631918bacfad7895d2a93726c21dce13b01bf0e99be4db3c1df988e200cc96745e223b03cd85c53902bf0fd88228996423df4c13ad3460c8296f6fa5ce3fbe8b7ab344a7e530be264192dad3350179e7f7433511db10509e1886e6c1f0e3d27abe83d09a1519f5216ed67116b04e8398a0c74c4d11a0c4a58de45d12ea14637e3abe82821ee54bc4e1884264ff99372edda41c45ff834104319f0ad4f5c51ef8bcd846a85ed68a46d26182c731526251d32b5012f9f70c5fb67722ff98e6d198649a1a2f7016d54873c154014bd56888edb629b49853d13cb3ab577fed068ea4c73e1d76b8b0e6cda8edd720f5c5b29e3fe81ab186d4c0fe9a22f902560b04fbd23e1e585e89493e8d40b23fb5a4ff9d9596ce412f4a005d0a245172bdcf8525742cabf2364c03c8c67476ccbd0069665d39c6a8c4b308a0427ac9e24ddb5c5b874563659abf88dd45f7d4d7ba96cc7eba512e9726e2995c61ff0dfbb6ea44b10b68a544a574c922e8fdada1b642af221131cb95f17afac446bc7b870c20a5a340cffed3374d5226559d16b553694b97b2db287021578cef988f8f4d9fed2489def1ed6e2afa552d69c37c9763d9ccda06652445725f599482bb5bf9cab436f3344c9d691563abfa78d77acd8d1e7d0141df4d6651eab9b558e2b1c2774e684d35908c42b925c905652a41faa165ffc69e47fff0d58fe4d10fcc2907b680c403185bb1b73c90f8089e6b21ca4875cdb23cde223c0104743adfff3f2bc6896944310cc9112d87bb6be2a8b2d4ddc7190978c23b89b2e14351730551f808f44d2703ce2f67e1c436eaee5751faac24a46d1a320196e4e29ff40accf250ee6749d53505d0b2a071500f9638e2ef3a085ccd325f9a28e181e4c132a92ad8f4f579b0b197a757235cd6c4111a9f4f3a01f377dc695ad93ada7f9ada2ab6087165df04064e6bcfae8a619e362abdce3e1b01ab397eb6fb29ea5c9bf907e536d5d899dfbdf378da63d934f5631348f808f836bc6f14dbd5d15a56f07a702f537a446ab6e7e092aa4eec670f65a62d666add9224422e34a5a47c5c7aa739193e8ff2f6f1c33b452f6a32becdb3644fc8a8f81e136a40586600dcf513f80b45dec04a34939711bcacd11068437cdd18c2c19b5877e6905ca39ed0a84de54b538701c489be27ef46572ee5948b27c1ddbf2470833f5392e1948a5aea4405a7bb0e504118513f46b968d0df91b79f53c16574a0be6729c27bf9d2193f285feda19bcd4fe2b9f9da100cc7dd1cdb0ea419191f4502ac61fd3170f9d208577e1e90c8ceee2a6fb39195c0a1be74c508a359bbb169d223dce20fa90a275dfe50c1c6437c4615faecf72db109358d8455ff679905b6742ab260e28abc367f385ea8cebc06ab937e688f571e949a0dbd62d347d76a312223a5b2e38f19b4948feaf609744ec48e0dd6a572fa93c7a49c6794b9685614f36556f8e1d691328169e327d98cb5acad45a9d446630f022451b65928de5dfe9c671d619c01c1259bc44b660970f068a0c4bfbcb096bd935af93a64b139ce5053c072dcc8705a04cca877583f387ebb69552480f69be028f3fff310d607d8937f3412b5de9658aab34cd312bf45de2ab9ae90e0ad878bfd51f6231093aaa4abb5dfbb32eb87f2a95742ea97e20eff4d60abc0ef093518a9c0095618790ab022c3fb2212e1896b2335bd7a84104a0b341b4b5de80d095b30d0e2e3fdada7a478f1b227c791fe2e2bdc98f4a794c3daaf780f7b464a1aff91dcce689666960f7a5b534d88b336eaa191f335dd7d2cbd7a6007e9e58134a75f12efbf665c315d2fcec1de91de764f0443e3aca49dd72d8313c4271f3346e32647720b192840f6cbd03c6441c63a8f18c611925bad34f128a1b879e7b3ef8a30c4a7ec036baac9011df0a1e14522d202defcf3a17d1aec410997335f75d8c2814623fdac408680249accd83c12215f4e8e6b640b90564fee522eaab805ee5ad7c1eacc436b5ac4ceacb92a635dd966fcb88b70bd250b7b1833399b86509806f201a1c9a8d6c0ae7111d895fb8bd976c95b341447b61cd3d6ab0706f66ce09bb0ace63eed6c23979ddb1aa34c0871c1b7340cff79cf85c3a75001aeddad5b4672a3f913cdeb1f86f11e8c8976a9e7ffd69c1220507b49a4ff251e74b742f72d7fa92e406d852f691c471cf27066b6ba713bc4fb7f5b9c62c5ebeb290c2a41a2be53449051d046bcca8d4820e8263686c6a21c780333836b130a3c01a1c9ba6b0b1208d8e935468861f78d1a6ccc048394c474e7aa1835da3e994bccc04ee7f847b0f501020cf4a75b705e7168a1ae0a60046824a601630949d8196809f56043183849ba0ab5a9b92ed58495707314b229b0816bfd171d3bfe32332f5b92c351bd9ee12aacf8b189eb093d8d778e184841fad0c160f3c10b610795b37da9174e0f012bf54385a7014d97a92869cde774f58dd5cdbf3bc81e60d2f3907bdd1dade7ddfe0f296068d8ded1ad77a4c9bf5acebe6d1d858d749237bc16a8ca771b2b1dc48a3fd8be586989cf39644c70d1bdc1873cedb8e699df58975da589337fe6aabc5d26923cc129d368c666f1b5ace9bdbd3fc9375d840239f3e6c84c9db9fff62b141b42e7957870d9b3512f0e86ea1d0b7dd2ff7977a5cac0ac7ddedbcb34040ebba8780deadb17e7e60a813d08fac0bc1ef7320a01e9e1f18ead47931ec61d5fc4f817e645d2802af08186d4fad08f070f65f35d66c4f2d35caa8e125abd1da9e5a6af0a4b1667b6aa561266f4fad34bee4fcd44ac395b7a7d66af54d63a76320cda767ec74acf9f0fca0eedafb69be2a1cf787a93050cf186b3e63cc3303d2629a3d658ffe8b8efe8b72ce494fa274cef8925f777bcfe072d63a8b42ad2d14074c23e81c98fd28ae762a437ced463a65e891df84e3b6554601f2b3fd5d9fa232586580c077aab19df5d1fac37a534fd92318eae4809c6fc0b8f922e71b2f72be69c09931da1c002b6372cea9315266e4f1e48c28625b049273b639d5267d8f3870b823e77c63a5654aa20c23855820e78c23468823962498e28c98734e89400012a47c89c1072a72cea919f010408f9bf39344ced906a914618e1992ccf047cef966021bd05060071ea88040ce99010314604d8a8c15214e72ce3672f471c30982ec10879873c63940ab811e5e5f647123e79c22e3ecb6c052831636b6a4add5e2acfad47a5b2468ff4ef151b556ebdd3eb4357debdd3eb4fda6b641ebba87b6d67f5167b5e2168effd3adf5a9a6b6412b2c8bd536e85176fb176b6b75f69ff4cdeda9f6b17455e3b3a5ed216dfbd47d3865bbcadfe5daac8dddeaeb7eabf4b65af0cbbaf1abb1eefeb5f7567b190ca3db7d185ee3edb3d9a5b7afecc3601d7dd7e75dd59d6a300ac7adc6d9fd7cc66e8ded6f96add5828fb4d765f7d9d7535392d204456b696a1bb4dd3868db6ebcb5febe8f3eab1d2d05699b066fed557d66eb76e3a04d53dbadb5845aefc6aa337747bd5b91f6be9ac23a0ac75d6b8334b50daa226553dbadbd1b4ed3aebd36b5dddbb73318042db6dd77f6501baaae67dc964841434d1acaa469ad3185e316ffdf6a94c6ffedadecb5d9439dfcff5dd70d056bfcff5dadcc9eb24734f4f098f931c3638627676d954abd1392775b8df717fc306d760a611381153f660e22079183385ba959083d0cf0c97ae396c0bdbb375ea6f892f3e6eef6dd760afe3a53f8e4bcb53c2a30d4a9d56a4d81937396020f1d29a8f051a56821270d394501460a2229b825523c1005211a0c757add0d86ca74a23021eb4411679d28daa0b4e7a0ac13c54ecef94d535bb9b00ec55ea98c0f6560658ee4b768c9bbadb65daccaf9066beeb7ef16da3aafd5d3e3c3937610b4afa5bdeabaf9d658b7a7dbed293c4335f6db1eeb48bdb3a6b8d8ee56e94aec91fbdc95924a816329aadbe1d817f5ce0aea4afc594f5879e2884c21e66bf3dd645a39374106099921da8a8c4e02d6c8398be16088040ce59cf94e39b1ee9c6f5628a24297149c6837ced720278cf2e6440639e7ed51762f717f0c1d63d6c8396b63b8187344ce5903d2b495c61a53039326d0c84d40d1440e595b69f0eef1993d140fce9426946426d26cd9b3375b6ea26e66373227e05854ce37b1033a48f090893a547e9ba523e0bc6a3eacda958e6c82b4eeea117344ce3a629cb8b6f6b2b11bc20ba4c936ac0123c0a41cd03162cc4a59a7883439bfeb56817e66a74d05ef19bf37464500b5fb5f2b9d222030758838830831341d221e202285803508b8230e04ac918764316ed6940d54bec9a2669d3010641d216ac83a4270c93a42c46e8e6c9678b56e1878ff53f7a354d78d2bc5412ba9f5ed0cbe49e13782e7376816e36cdd4cd0bad9299b5607c41f4048e0e6e906cb0631dfee6e7394bc28fb2fcd2745e5073439df3cf0c398571d1f04d9a0a46870677dd02367a8aee3439b73900f5872ce60d60063068c99ce9b12c4fb10fc4d5c251a7a671f85bb0fbf1be9dd48b1ae94c45522fe41ec23bd44fc5d6c57f71bbdaf0e3d7b04cb5ee9f56e23292d8ca80f5551918e5a986b44d4d7a657e9d75675599dc5eef87d8fd6a617663faa9cb91fd5d157259ac2594875b9a2839a9c77202367b6abedfed70eac1d44d00101713f5f2ef5957e8bdab4b49a3752943a6cb6b139a6f0949c533724e59cca71dd8fe19cf38d036e6755d3ccf9864836651b06e77c8314e5fd4f734e2560dd30bb631fa5ba72be8972030536651b66ca362ce79b23f8ed3013de66ce37469c55a1cc9c535ac05019fc3e7fe19b27eeab4562dc9437223891f30dd1105773be11ea297b94f34dd08d9314941b116e806e9af4943dbaf9b909c1edac0afb35e61df6b0cddeac6ec8d7e66664bbca8aeb1a2b6d7585bfe9e1ae04bb7dddaffb512a3b0546bf74e329ad4c0d82bfc9fd6f6a629ac542b292c8ddbf0ead4341ecb7528662afd4c25ca33f5ad73df445c150a74f8a0d15e497bb3b06854675d8c6764ddbd4dd52e94bebfed7fd28adc37ced6aecd53e06c3aa1b7b576355ed853669d9a4610e1a5a1a5ab3199cd0a1e126e72c02abfe39db30cde77d7533c5413360d191c10c133a3110f2b25eb6b34dddfd2b1fe41874bc9091f99197325e86bc78198613fed8c91986095ed8e205225ee05ed07266b95026e76c3e546f6f90dc7070a385b1c2072d94793886d52a2dc039e7978d75364a4fd6698127e7969d02aba8bab6b2920535476fd037b92c16c270752fad1ff5486d67b1d0cadaaae87dddcd5c818bf6bebb7ddded0b15aa5061899cb3055947851c72ceb20dd37cb4d5abf9406d56ce3719dc60707381cdaad5dae20b34d8b8e361f6dfe5abfa42f3480187f661566d3bcb080abda1e066821b23675f856e247855373a3745525e72be09c00d919b086e007003c103441c18d200033938373637a928a9066e722139db9441c8b35d09ee9d29b699524e83d8086213c80572b601648d095e8a9ef551aa0943b6f0b1c528676d75ea6c819b58e847a9997d91f38d159dd98f161dd9999cdf1d7b74a74b645e72ce1c70976503874d1c703c892de59ce1bebefccbd80e6c95737ed8fd9eb26a16a362afbb41f5fe3265bf64bbf14e5dd9cc587462286cde18926dd2d8a861e3864d1b366cd8ac611381958d1a3d0069ed46cdd8b361046526d748eb4d2f413f2a8d2136689c917386e33edbabeb9666f08fed178bfd2ddd2de2cf9fb32afa3e13fff87d8f3893107f9855939a5c78b7ec14fe6f4782df98887fac73b66ccb688968955a30e7bcee9855653b09de1a5ffb8b95eda48dedaa963edb1f6ac3e21eb5536d6be9fa6f27d256cfaaab06eb30dc85b4adbbbf45d5dcb8ab51fbf5a706bf6bb6616fdc674d9d48737b960dd3b6d6c61afb6d5f41bdaaabb1b1aeb95a7fb5cedd8ffa5837d236fe26abb6b47fbdc66ed4a7bbbf45d594ccd675bfab243dd23890c2545ed194828c581a53c90a2a999e68a590c66a9a92a46d5cdbbaa66dff6eead3b4aada6c653bfc6fdc9ab9fbb9fab65adaebf3a6697fbedd8709695b2bee56b8681a10d0cf863791e6a3f900fdac56e9fa4d3f30f5d5d4eea426dabb1dd6344d3341737bba5a69daaf6a0beb68675bad96566a1d687983a35418ddcfb50dbf70dcb5b46b2facb2f1eb8d9c7394acf3d2216f4992682bae9a3e6ffaaed6dddfb29fc8c5aae53b8355aec65a54241715d7eac282a393f29173ded6adc2ecc3af2a3b67aa1f935691378da7ef6baeebfe2875dd66fb0f65bee0fddc8cf5751d836889ffbb4bdfc41faa473d13d31937f1e73c6808fe26fe1ce40ee49c37f79f2f99b1fb85551f999aa632b595955b7d3517abfaa4b25849db60b29da4bd9a7efb2e39e3eded3c8de84863f7bb44475a1218dde919bf0fcfdc6f51f5dd42fcd77fb1eacaf7f3a7d66ab5ae7ba845c24c43e1d77c349f99cc8d5b6df62ff8556176c7b4999aaefc67b0f66c6f372c49db5cf55ff0bf31acb61ba6b55229ad77bf5aad5563d2b61766b7db5f312d48db5aefee61bb0a7798b6aa281bcfd68752571ef7b53597aac1af1aa46d67fcc2329f1756352467fc2259b7c62e71bf8ddf17faafb65b5a01bac0a14591b2c4494a954dd3de24301bf78efeabf9b05d858b347677f848e3efaa5de9655a83bad20cee4a32354de32622b717c15de98c9be0aef451ea1328332854859bfe8bbad27bc64d40efc333a19f40a88cd171f241c7a906a72017abae2e76f399bb7f9bfc5db595bddb53f8df191c9b9c6f35d612d561eff2cdd54f4df85f737d94dda88bc7594c77ff0afffbbadb3539df3a53cce85019ad649d29e51425538ee45785317955188b07160bac1ce79ca2c1064d2ac7468c0652506cc2c829340ec8798755dd2e1cc2ba5517ee30dbb51316bba8b6b5f75f6fdc6acf3b6b769855cdd40a52bceba9be6f6f5fb0bbb58feae7d1f3ae2444f4aacbd238bb5d945557ab1316bb432904acea4e5fb505c7b05654928f3171afbbb91ddeeec3aace08540c697546f8c93947e92c9d6073858d191b2b72b66140159b26e58c942629433933510a93732a10a56f0a2952bfb93d855d1f071c70c00122420fa5cd6057e56ebcb5ae05498044c5f6b2ea76897e70620a05e43c44143f9ec9fb2efe511de60091ad7176b3fd570dde338dd589c214e5d3560ffb682b9effa62848a240907b78f8af5646ef7fd118ae669b29dbbf7d453519fc31cc6e77bb54ce76546b7b5fab3840647bf96bf02e7280c8f6c6dc9eb2a9b66e75db3c45f5736bb35ec5ca9a626560738105726ac827c5001b5ee83cb1a3c365ce365194b15980027296bdec572bd36cdf575df80911daca555f318dfd564a57628f6cc8e46cf3041956e954de31a68727e7d40d4cd82ca144cef9a3e251e9a8aceb1e82a14e548844229f9c61a82cd5241d62622883d7dd3adcce5c94bb3df6be7be9056f999a3e2c7e6d924022e7117c9bf8161ac17fb7d096992c1615c3afaba5ed2c0c2a8bfa725db1e25485ca145613d3084b4a494851a0183d292a89868482c8510c97f81452482113189140a553880d02523643e49cff08a2ddcff4aebd544ad1112149040d80bac87963374c6bbde6af566f532bee330dde7bb6aaae5f39efe1d1d60d37c976d2c63fd6663eeb4655b7c3affad258f5053fca4ad13676a331aaf5bc5adab5ed379547fb2d6a53bbdf687b6aa552d8476a91a0cdce77c7faaacdd675ab1ff7eed28260981ac2bb76875dac0aefefe161bd2a1113ff37de4bebb9d929b35575b7db5bd8b3d823de95deb597bad2afe76ef733c15d496725cb795b2db958158655168a4987543363b7f6a81ba3efc2eabb764b8ac939f3fdee588bef37fa2c28a9a8780006214d40342298b247fb0507410211a64c51471263c836f062ca0b4c79acd13a22c494112260010ac814a99992010e1bc85046cbcba2638d232c207c606125e068090f72c8820b8b8b101342c000c4c67af29a010a12c903964a0a079eba68376862c38ff844830cda64c49a27354b6091d2f42ea9600255b840d004c4040d4c54602fd134648621ace051da611a43083b3e0a34346002022a000ef458e9824945e2c2a4608264fa30180003b63dba60ca143cf085d315eb080da0c28d24ae00b78c90c30e1650f9949c19a1257b43278b29b0119490905240ce141396fa98c0006b7088ce25336d4c8043e803064b320892c7087a04622e4dd9c18308246192c21207e502e070c18a1ea4e021841568ca288404290ac0000c23747aa0408a0a4d982181088ce84841429a4182a328a09042c11042c464e47083121c19a8f0071b434628297101958602901028c53629cc60a38b264a42339c49420e20b8120094808b563c00917446153d0f38b3c58224210699220232902749eca9451c36ac7193462937768800481f4937ae0a43ba6f401243839888160c06483cc851820616183301126a871c726061012224266b04c1e294814501844bd21e3eb4aa44d182035d91234982285f96341c4b4d8e8872c5023bb258204850949d3760f062a4016140d1e38975658305822285144f8c14800b07c5850d81283606310365040c22d802056e0028189480c2102f56361ccd31870e13c499f7c88916929079220c96a313182042022c8f8ba322a805e83184e587239d3cb8b022061724a3351260861f47cecc8c8ae843a6459a30dbc87dba80788105751835417bf6c8020b11460dac00031f60a068f00402618ca18482209c78f243056586aaa8183c79a9001163a6c5f1c413da6e17492b141182e60077a071c24dd19922e24052d4003045389481028a1cb68222b3863cbc0c19b353d40364850c43c31d251f3acd05e8388383d24c923a980840a54219431a5ae420a4059b92b5041f0be86ec0529b41890f8fcd0d4477c8866669f8f00411144b6cba78038a1f445df4108381a432084014e50239cc80238f25a2099ad04006050d4e86de7092a37543933c94c4153097d2993c14f55571018d307928288b9998a64b1e8200aa8f0fbe9c85cca0428b0dbee42c240407660e27390bc12ec84108d1284a4dce59c8268ca939c001bfc3192da02a34415b0b5dd664c9c28b0d4eac38d911418f9c73e7c52f2b67cde725caef4e2b0f9923e7fc94556e111c249fbbffbedbc57de5ec2e65f747e572b0987d7727b71be61a51691124e7d8b35ad4909133acb2b14a8b132d54644d4b1818ddee7ea12a2d5d5a1accaa9dbbef7a9855555a9ab44069b53476ffdafb39dbaebb775b809c73076e2f633ee5a42fdd092bcbee15154bc50bde2d93198c5302ced3eb3efcc64cda0bdeadb6ae41ab95680407396454b0332ad8a88202430585419638043b2355961f55161937834a1593c5819cd5de9afc656aba99642903e78e4e0f2f480081b7364553985081312668d2fac20c36b61ca0491d7d383193c30f73fc0c400997881a2b7cd80289215ae4914212046ae4c1000b0031bd5fd668e2f240c31fa866c6a76d000b2538a4a613030683b0879115a206b678cde468f171624c1f16881a34498561802d8a005345045686150a416a29e084b3025f725031231512f44004963000c8b20212806900164240ae204300676c39aa3ce0023878e013416ba408f7c21c6b88719382d6471651446dccd1444a210340a3e70b261efc609043105b823e00830da69b24b62ab807b4380076fb19b49433d0ebdd2f6cb6d7e76cacf3b577d484c5ecafe6cc353b2f7ec1edf3df036567ef5eadc2a817b6ddbd2484b2b33748f53c2ace838a9f90f3d1f33e64765eac4297c0a992330e151cd0233853705819a729e78c83c3e404eb7f8c9073c65992927326c2b36a8bc91b94db631d3e21c8daaa5dff65e224e120e144c1818273846384f3c4fc811fa5ec11541313db8562af147b25ae2a4155026c8342f7f9f056f9c360aa366b692feb76fe32b548db60f4a9e55253ae6ada367b3792b6cdd6d9a9a1efd658f5553f4af6314cfbb3f5b6de96b6bd3d3e3358656318aca33cfc7d54f43d62fb1458778b5e15a9b38ee0aea4aee59501a8a0ba0267d595a72b5fce1d68f0d658d8bfef7e830b352a2bd9498fd48dca094cced9e6cd81a8a844e15441ce9ba9aa6226e7fc7259c2440c151523eec36a90989ca154537e72263024a56229610096114b7b3fafcc55ce3861ce3860ce1907e7cb328e65ae564d649ac4e48ce3e174364cac524e6e703497da7098a0c9381bce121c1f1c253820e028c1e9c1e1c9192789db5d37e79413381fe0789006ce8ea74272428554040c95bd717fb6bb6e198f10eb480f6f22defb935fcf0d85ed2acc8f7aba34cbaa285864551429b22a8a1339e7081ce8ee5f9909b15d7dd5289568ca86375110ce0365aca182620465884dc94875f445cead168e0547f2ebdd4639e354a0ae3b671c0a7026c0318223810a0620b20a062f5905437b24ab76b822ab76d021ab766865d50e6456ed2080acd2a190acd2818eacd2a189acd2610059a5c30c849c4413273042ca39ab8c4030eac008a7c39a8fb68275375d23e7fc448b2763b2b6eaaf98e6f3a4869cb306c75df5a4f5248ab682f72ba6f99870bbf936c558d7b8084795b2e1bace8b6d267e247bce6e98fd2898fd28ae762aab151120d4e948f3813dfcce9a7edc5eb4ae7b68dd43ab1591d5ca7c9f9bec73aebe4cb5dd66fbbeab15d052db0675d66ab5a3bdfb67bbf1e66e475f95bb0fc36a0c7ed786a940eebb5835355b57bbaa1bf632d58537ecfcd8ba5dbf72a0d7bb8db4c038a96de3b9b551ccdab6633bf26ce2992dcac4ae24f6a842343635f6aaaab04bce39c76efc8646e1909c373e5bd5ae048a01af6c60fecee4af0720d3ec2e9303196d77b71e185ed4ecf4f94f359fd67fdad2fed3a0ff340bdfbffea7409f9aad0a73b69fb167651bd69d81df6d76613ad947ed5f3ba3fc7647f2f6d432e17fb59a9c33e7bb8ca9bde4dc4f5357e9eb6b9a9ceda7a9f3c655c1bd661ba6bdb387fa17cc696c9f9d6b7246a3c4444c1762d2e697c564296ffc59b567d158263c39f64cf286266f5b98cd29e7bcc14adb6e7f65fba9a1c93967d51259ce6f12a80d2f315aa2e58df5519373f629e3c3fa702a1f10cabc2a085ff2b64168e50d049e475aa3e48c121e94bcb6a79692eff5ee578f1e1b1bd46346d5d3beb0caf61e221e34543c5ef2f69ef1db8a3ddbd2788ccef8e5ece6d1729235495880ca39bfea765d4b9e5553eddd9ea46d1f6bd96dd76630fc6efb6225195d3bc9910fbef840a6fa00040fd2f0600139e7edddbfdf854748d2fe052b99adbff657c96c8dedcd032e1e2ce5ec816a078f1d8b615aac1bf17f6373674cceb915829dd9daf992553b5cce79fbdd727b8befe40ed40e7270a93ad8927366caaa0ef8dadffd42a20792323923e1397fccaa30db51568564547100070765727e177e3f6afd17f62fd887ffc72e0d7ea17113ace2a0bbad16c401e7da4b1a1a955680bcc14bded566711ab5f6f75d6db6611b85d5ceb6efdaedbb76fb5bd4a6d58aa5712a2d82eda915f56e0bcb9e0502fa61cd19dfef72f67f8bfab2aaebcf77ed2520a0dfa236693e3f9d37a5c3ec91e633c6edfe17fceeb50988f5b3c1161be490f313161fd506ac9cf658b5c1cf06193c61d1b8aa9180654b1a7282d987f5a4d58a15ebac067bfceb62d575dd432e56d5e0cb866ad0ca9b065c8e5db16733080af367085d95c1d2a9c149582d832231150669f2a6f5bcdb613cda8cdd1888c1a065639f6abdc32c0c9c6c1bde17e8d1952e10d3590dfe99e61374c1d28e05a92e289237950568e475dd431674c92ef595624193dbb5eef5ee17106c1e19b33db58e7439e27484e7e5f61ff65f31a077b3ea8655b0f46e5a0197832aa0000dd4bb291093370a64148caa09f450773b8199edce8226906d50bdaf9cdd138446f480d50d7383544678c879db6d9011b7a74146be6ca4019504637a5e58f5e1d1342d4825412be7add58255adbf622d098ee49cd7954783dd1ea49240a53293739ec14aaa302a5597bcbdef19bf2aa39c774c7524e74da583864a878757e9c8543a4e32cc3eec8ba899ad6b9c1611b3b5aa225e72ce9baa48bb157192331beb458e6c2e565524e72f5205a08cdb59d68d51b407e04bce1bfb501b5605e04574a40a8051ce5b00deed30ceb7a66dfc73ce3a5915411a55046c67dd186e5245e07a89ac5640dabbb5ffd4946d58ec592020a0a6d58a05d4b3e14da4f9f09cf10bc4fa99b2e14de43ae35705002d43a0c719087880e095b7a7960a02275905c19107d4a81e28b33db5bea81e707a60dc9e5affe90345f2f6d422a24645e4ccf6d422c2435611696522239122aa1a332a070c00f46a3e3c3f3d657bcaaaff295f5f2de24732587f63f8bfccaa215f72ce5b8fcaa30d69f90f1973de8614999d410db8a16ae0cbdb576d6b3ea516ebeb9f1a1c9faa06c69ccfe70cacc917641503681818b37115035d540c38d97a78aaca59b3f5b8af0acb3993375685a972bee4fc6ebbe52c6daa1c0872de7a3acca371154e162a9c36e7acc2d1f2d61325ab6ecef8b45ada6cabaa1b311bffd88ea96eda9cb7d68d13158a89eaa648ef3015958d9a9c37958d98bcee5765d3caf93bacc554365cce5b4b95d2c315a505a95266845236b45a9a12d0bba9197bb6bf6240ac9f54ca6ac5ca39ef6455aa4856e534aa3c266755f6b23db554b9a5ca63de9e5aaaec003f52dfd7b5d7f4df4dd9dfd2ddb41019421da34f0568b562fdc8bad0bb655d68cd4643881842baaceb360969113212d29506414374a429e90cd225e7adc330557b9344a9ebeca3e49c8f649d415a5babbede9f9cf3367b28a6b477b77d671f65b5620d32441038d6dd5356e5472c5310568a205c66830409244dde313381f090f38e05c97250203bb01d48bec0980bb439b37f0127f904240e1d405a5a4b2db7d8b3af03482b6fe812f6b98aaa71930e204e72de78575a3387cb8d81600fabefeca1cef88572671f65f650b38ff2bca36bbae4eda9b5c628af39f2871e7f9cf9c34bce7fb4fe7092b7a7d61f45b6a7961f6afc88e2f5ee1710abfc77bf96feddaf76c39bbfef76cbd58a05d4e3d379cffbd039db490fdb2c0c758202b33bc68f9480804aa275dd2867d52851aacbedaaec0be317a8f3a260a8d36af545bdde0dc76defaef93ed00ffa54f813d7c99eb34f9da78530c624e854e00629ab150c75325dac3adbadf97ab7110c75e2ea7ffabe1d0dc1cee8f5eed71803f1a33d3ed0038d9c37548537acc3f166ffe47a0ca187521e6bf2f6301586ddaef96c9fd9cec34cce5b1e5d36931e39670a54418117058c6c3d2d18eac4d96f6a3d9c761ef6fd2f9a92752650c40496f29ec01176a3124043022b4880091e6ee041031e63debaeb643f8a753faabbb4246df6c6dd7d17bb39dfefb29b47dbb8ce1d6ddce1057ed5a00d56b5fed2b9038a1d7c84c95bab47f3e147ada8fd8a39ff33b603ca8e0ad498c979637b1bef0efbb0ea86956abc6456cd2b6f30ab05a91975ea582373f6eb10a20ea46db6f267f7bb5f9a0e1d6be810828ea535d6f2aaf0bb787c6ab3f5e950cd4145dee00d8b3ddb6118a6f1fd9a638639bebc75b6f5501b6e416dae23c71b72bcc143ce79eb71fbc9a3c16a6783e498e9c8c1e5ed7d63ed6d3bfc6a720c4197b09dd589a3ccc61f7eb7751ffef5d4fe05c7d17a18ccd5ddc601071a011f9aa61ad5fce3dd4bd46d77b986425486e8a84ff153f4c7d7e4465f1df6baa1f10b35176a8e033dcd7562a83b4e8ba818a22819925b77e8e65ea27eb6afa889aaf086df4e834a57cc284225a9c14df27ffe6d8e875a7c891ad6ddf4db613dd919e36d433f0ad6dda26d13dab68e54ba626e093a9d945dfaa8e775a3773ee75072ac2242c9d3ae4b79a8bd944c4152ef97a8b50e47f03d81ca737f7876a3dee0a7bcdbe34bd4e3bb7dc8dd54ceeed3a1d215536c02ebdd5cb96b9a0efc94a3e6cef0fbbc3dea10d4ddbf443d6a3184fddc7764bad3930cb9cedb64a874c53461a53d2d7aa2ee48b20b452fec4670e4a7c8fdf7e994f4463425d36ddb360f6cc9921b9f8762f79da2defc13c734ed26893496a978821bec9eec44f11b494e2c4f920bbd947f5c27ee517fe34bd4a6a7c350a31fe51d85a30c8cfaca9d8ededecff17083da3bc597a8cd4e87302cf5428f0bd38e83e73e41fefabdd173c5e71379a0d21513aa7bed71de478e64e7899e1eb9f1133bb1dbfa494ef21425f9f99c7b895af45a5ce9a1ffdc276e1da69ce7a5dc4bd4af376e4db7a7a1661276a226c34e8f1fa93d2fec3ed0d31b2c6a5db73214c9d313cfaf7bcdc574445fa28e75d7656aa4adec468edbdd77ee8e836937822f519b9cddba1377584f7682768676583b2ca41df4a9c43613696549c9bb0ed5230f4fd4fb462e762f519ba2463fca8c6d570495ae98a34fc99d9dfeeffc748a9e24e7fe256a77bf504e9b2094a0ee3eb0dba18792622a7ae24bd42efceeb09eec6c1b0c4bb7eddd8ebe7b87eb62730495ae984f4a4adee94e444354f44674244fee25ea1dd6939d6ddbb61d16d28ec9aadde7c22d524f098aa2b8c9ed7d5a14bd94035fa28661a9493eacba554018967aef76f453ba62723ce61bbba6794112ed03241ec036d8713bbc3bd0ee869320b180830b3428749febda9508e0820d36d0c0820c30d0a6c97301120b30389241051e47c19b6402237cbfcb23818f4a9bef4aa2a35f25453a2e00daec89a0e36f2a0180fe420d2090f518bcc10321d869443a6d9a2e567dbdfba539d07530c4f4a0810ed651f35dd3d45021d8b5e8bf220333d33461d97790a3651b26001c6df6d5d5570b6e90d88c291c6b90d2a6ec5fa689be2acc84659f415ea2020841f4917ad8667140102209081ec85f84c14750ce29cad1600a29a228b3000540f10499043831a609269648028923c4185104110818428820c200f1830f600e60801c702000ce0d385f6c8821e7ac84875cc4a9cd459cbcfc0d9a07e42023e79593e6b872d2214471c891293081941a55a4a850c521e67c0e4773fe2deaab041c279c9b08862728a4e0e50d131a2821a7651261230dcc8012559a2f6960d40d52a501e20730301865178c60574d12ca79b3acaa85d0691e68ecafecaf39e7ee95556dbca29af8c1c712b9091d25e7dcc3171ba82c89a062e387010aac1146ce3954729eb0e49c7348187265c9ca925315274b5496a62ce5b09672caa526267049682967842529a39298142281513e28de518e51ce939cb2f388423d94239413e42447049e0394d324e7272784ccd53376ce1892573964ce288639e0977356957146050196ea0132345de4785dcef98b1868e0fdaaafb9eed7ddde1c9d731e92c3a9c4d85185b173ce43bc0383043096f26af5d904e04d357921e68e0a3ff2e2092f8ec81f158f4a0326d0003860a8ecccea0c93f7ecab50d745174cf2a7daa2a5daa27cb540420b2040c851928324a7278727494e06391fd881a326c7831c2dc7829c1d1516391de420c9e12047cb39f355adc23b2fd4e315ab2b98e44f6545162a2bcae4648041ce05b0cee69c6341ce91fcbeabd5e745ad56dde745ad56ddd16ae5453d8d62087e5e07f4a4b51048f841dda01ff4a900f514887da4477ad85692eda4876d76c39b03f1a3d50ad6d9f7e5ab5a05e8077d2a71ca433dc2ee6e81803aefa7f3a6c02fdb87c64ec7633c7ba82fe46a3c0552130b76f7d28c7721959dc28f66bc0bcdd82018ead445ad565994e99cbaa8d52a8a2b5148c95c37fb2f943d67b3ac565ff6a2562b28e480228d0c43653878dc91338e1d386a8eded5ea8bca6e8cef77bf3026b326ca34db970c19324490c9a1475ba59d8715eb43ef183f8c3e95576d835eb5dd2e565d5b989a001bcc37b39e00394146563961658c15f907fe26ded9313ae79c5ad3841468987186194ca09131d1424621ab96e06389277296715609a3247618738cc41a489c511db1a68c31c8184325664d900a5d4e30c1883572def0eb8211577236dddf6e0982200882e0f77ddff77ddff7799ee7799ee7795ed7755dd7755dd769adb5d65a6bcd755cc7755cc7755cc7755cc7755c4792244992244992e3388ee3388ee3288aa2288aa2288a611886611886610882200882200882dff77ddff77ddfe7799ee7799ee7795dd7755dd7755da7b5d65a6bcd711cc7711cc7719a24499224499224c7711cc7711cc75114455114455114c3300cc3300cc31004411004411004bfeffbbeeffbbecff33ccff33ccff3baaeebbaaeebba4e6badb5d65a739a1cc510fcbc4e27c18eaca87e4092b7fb4c50d5e5ebfe2677e9dd46474d53ba92cbb710df42effb825d55886fa17763385ed73d348355b7b3b1c66ed8a5be1bff10d44d7bf79f7b4561573db5adb167cfb9d9231c31701c0006d37e395a9670ef4cff4cafd2cbf6f88cdfff33855f55a672368e4fcd873f1bdbedebfe6cafdaba758020679c2f72c6f122679c069c219232a4549a4c5298984ab3449a422425c9740a4a5aade0edda6d775ba4a877b17d7d9f03b9366b698c81600f1fb9faca8f9e555d6c99c39783919c730f1987879c7176c0d1a10039f7f0e4d5158303cfeb6eb3d37cdfdd6e5685a92efaaa9cab2becdd31ad1b41a1ff1a6adf9c37bc895e13aa6b3e3f1bde9c0043beb0bc72d4641295578e90828e98ca26b3649ac20a527a72d4f4ddd024e71b3ac8dbb6e58c33832167fe028e0b382da8be28d9c0c3c20a2ae49c7170bae0a48002573b152939e39c8063c2971a3ac8fbe5e8e78c3393e5cee3d9c6898628340c4143103410e59e6ddb78b4922937bd9bbf309ea10922b8af4d2fdcd7d76cdbbd5a911a043bf795a18a9c73034d6428d2e69c3d78dded35dd6f5532e0e49cb71804c95262d8b07a8e9d36df2943c2e49cf76aa57969bd3ce005abb1b1d3310c8298ed1bc406b1412ad50b82e4d7ddba9af2a30276c0916a43f582a67ac1c6053e5c0023e7bcae31abadbe9dc12e8871e1071d5cf89273eed1563e3e3c2ec05ce02bb0b078eda8a63dabb2fddf0dcbfee5eaae1bbf6c5f7b52565dc20404cded9ad256d2e0eee2d1b4f7e1fee743cd1eaaa748735c8c6509c7715c8c85475b7b0b0997279fd6aaa5a19fe5ec1a0bbfeaaa6d77b74552ca1972e09c730fcb3373b7e9ee176abe2a210c10598147a58212385a70da9e330e0b2bc4819b227206b2f92055464e89f1458a8b5410283879dd8def77d59c715e39e3b870522c3976d39885cf388537c0b0800b789c099382122608e04709d84b21eacc1c5e74f0a52705a1d508ec0a6948910200946020078e0d5f503883154706685c355010020929509c9000070a3036a2209171b8414194e3c74b8ec1a07093c120640f7f8ce112460e67b0f4d080c48587180363386842840b4a00283317ec100217264b4aa45ff65873022000a052e6e5a38b13b4209204175928194ff83224062831581738c18a1142454760f0e3841d17c2f8610b03a6097a403de044202392095210b9c10208351499e0c20d1d3631348180094b62e001ae7688800917d05172f0879512b6cce1020e063e4f52d8e284189ed0c1fa5b4c984186d6b844df52e440085d9654a1618b4e184152199468676b7c5d10896d499a15f10588100870a6c9cc050012133161f4ec070e095280bd15660d60200406163f5232089c00b6504a70c97cc0c10b1924382264ae23563d2c0b9491751338c341112c00891172e4e4abe3072cb133ab1eb290000a6362389c46c054d17d10336f584b0261a18df188113503133057a22c90060842d0c06582282bae7023cb963d45540cae39287046894914ab6903a7304034446942282c81448819f11d3783c061c48b3de227c420442936c44cdca5887f800030570c650832dc586ae2817802296ca4f05af103bf0181131d1685a070124f54b8e3013cfc00c71008630abce5081c146b61c38f3346e007f2c840872a45bcf09ae114471233269c3788340a40d2058ce65d0d50058ecb52e10de1e0d09010e580d746a986f704f301d701504cc0e3023a097707b60131e4c0470cee694503410cf94186bb8410f70040ecd1a4e50f42b0a0c0821ad6d09245f7b5b1e58c38b40c4001520c728315282d4e0460a2838c50d1d281180faec86ce8b479bcfd005f0e76b451f47c30411648b0da16343c88c078196a972e9882860b29466b41165474398325852e07181d1c00a3008c3e864ba96547d5a46f398740c1000b39f412839512283051bd081c3950800a2e3e6c047038e07281ed064b04983a7608448514582d5098dc10c4d5031b02121b784b5c1b58063870020b19b08000f6802706008610460b03c3a2600a02c441072c3d2289060849c103d67140657580b78375109b0ebeac2923ae5d7c7638e102102e56027c91c20063170f589f9e78ca620010acb026c90285f081262094056cbe28a17325500cc8d2c6202930800494972929e80e6a0aa8a6180f7cf050e1a004e0c1152f14a10752163578a446176a2092854c1edf12110143b2a430876664858137cb510b168cb105ca862c46542684ce5081404dc39ae11586c80c1509cd0d003860b5870ad771e48c33ce2baa933269945042a90995c815ae2d4b4071e25586cb8540aa28e3ca2b0801fc70124264f4827a2fc44156007881780cf1f12287335e292f6354191293c00546041bec61c40e1e2e1db424e08a043488c1b5f91840131d4021c3e52305973972885e48fd0864873bb2f830a6589c6e50608a3180a4356429440e53051bd22a5ec0504002c28020453286196b6c78a0c95340000cb882826c7f190b7e020d889a67e1490b45f8e84202af84c6184aacd7c81f59224663c886211e47157fa409210879133a5849a9484385cf4a234c1c1919271287600b60c1052fe203fed1f302024d230d1527212784a00820232b3a80ab435b1b70806ac2852bd0550a4ce51c428881e67462c43bd41071a2e9a3c9cc436be13c00920d0a99239371fe1373f4d0423ee2d44f2d6c419361d8819c19e30f321f049b8bd5908f0d58ccd8379c01ab10818b6c637963d8be08848ffd01166478d005c9a2550130aa052b3bd8b4aa405265c5b3870f2d189494d86048e2448b89082a3300c1c4474b8332aa945f2c6002661d6cb801e580b98749a68239f258914962a240c310479ef0704da37685991c5490604a5003b82de9d044096e184da1a08e2a299470040348c8a2508151029c3365492b026694e004876827e984244a70200c8c0138b6ea898c2e5546282e889fc2a44a2c7962428ba72c4dd21815400ed8d3474812036d2c5579ca5fb41088f2ceb078e1c60577a89848c05280148ca6088ac009587617a600611c71584068e1431287982412fcb8c1a246015a1312ae0003a5490b3a762081862543518440840612a8c800260726210c410292215c869c0459e18a04d438734858f2c395054c808178c20e0a5756881901c269d05d499ac1883e2c3823e54a054248400b236144b002879a2a54242c00c30a13414c021065c31256649f0744ac71f7b03284e50e3c96f05c6125824074644641a0131a67d4e022cca7c4698831e018bbf44ce1d4a350f9c8425b38919b832f198472c2497ae2f59ef2a88206a8a70f2c9ca0a14a0f8304200f1fd4a4a9c2bd783fa860025daa7041f45146829d94ca05c05061a5ccaa09952da0704fb8c881102a370cf900080814f9820a094e9a80119cf85d983e170535861148f151725cd88129f9759fd63c4cd197a8a3a0cc74ff6a7e9a4a14b07340ca02259886271fb9f829cab5e88de4ba59296398f2235581929f5ce7795a7fdf87de799e2f519b9d8f4fa93d4ace1bb99023d3738fde297a2efe2ef76160a747798e2f9e9a4b53aeebd233e45ea20ec13c4ad0433b4d8a2409f2f4bd6e7c897add0fbf26d41a9f2e56253f45815273218982a206bd9d6a8f4327507a5ffa1ec9a528088ee119762f51bb5853bf8b97fb918676e03869dbdc8772378cd3ddf3ce7e36605212e8f4d879a3277224078a202872e1975a218547c979e9796a92fc4871fc3891f4b82ed44a57cc367547e97d3a92e07886dc6f34e4e24bd4efc880941d250a8a213a6e6f3f888ee4b977584f8c9e4988e8f56ea3d7bb5f4c433b463b433b4d2018454a4df969c839df1e0ff5b8f5fe3a4af023bff3b70876e4d9a5e1d3517e9cf314055392d3e3a3e0cf516eaf4b3fb2dbe0186a70e45e8e5214bf51fcc831e49e0c5192c751925fc86df47b0da220c949148e72d4e0e67a7b9f8adfa747f48d1204377886e00e39f1d16f9f694a31d59c13f507729db71f3cdd2849111d41fefa35fa4f7e671be57b689a8ae0c9cf9324cf71b351861c1d53f243517d3e893eb946e9ed548ba21792df797a274a46a0d4e8888a5c9f0f6e104c37a946e9e9ef4ef0133d9e46898eef7de238a267c8b9487e689422c9d313f43c0d6ef14339ef8c121c39b1db640786272a9e5f6746897a9b3fb7bd537724e9ed32ca738363f8e8a83ddeed8e83d5d8b7c37ab2c312f5eca14c72dd6f9422a3443bceb737fe3f178abbd363945be4dcc73bfd81278a92e47e89daebb4a42050a627c75191d3a378862447921e97d403cad3eb46f2779a726e0c4ff2d1943a1d3b74fc104d51114d4f528c12f54094a3dee79dcfc91d9e61949c8361c7c3f1fb529003c9940a2907941b15f74992641a862929a2bcdb9202a3f44652e4284739cdd31d7ef77e51921c7d0e453f0f1db7076ad48bb2d31ce7c0f143908f1f4fc90694a4a7c1adc7b41b3d30dda17e895acf52674aaffb380fd5a4286a2d7268f712b56742aa8bf2e3ba174714e4bc333cd10e7c899af364292eca4fe463387ea8c974775e08be44adbb9edaa22445b44351144cc16e0c392d4af40451fede3882e1a7c35304bb2ccacfdba24ebd0fc1ee450eee1d8bf2f4be91835c787eaa5130245fa21ef515e5a83b8f93a0f8dcd9917bf45ea22661293365a8b9eeb618761f4f3dfe71971525f92447a6dff83b0dc97ffd8659520c2837797e1b0c49927ba22641f0ddb7bf440d95aaa2dc9c4c434ea6dc73a2f891de4bd41bdebcfbf4a7dd1415e2477e1ca7c9f003c58ff3fedbfc043bb10347fddfbf0b9ff16ba29e06d9be0e6d1ba974c54c15919aa2d43afc140cd327bb2d822897a2f4b6265370fcf004493225c3284ade75e278866038862877a2de4bd42e569d714e77983d02bb76c33c506b125265ca0d8ae418ee2739518bdea95fa2761f569790767658484aa4165072dca729ca892fa23a05415db433941ec1a8ee784829a024c54f8fe8a879da3ddf1dcae91f52509424898e9b1c4f4e1c43fea1e73bfb284f9423778662f7244a86e30eb9673f2a3b433b51e0a36d1b67489129454d72dc0bd12edd6347ee7f891a7e97f7aacbfa785209281f4d35dffcfcf344bbf13b9d28b5c8edbdf9b8d150143f3ea6fcf4efcdd38d76fb1c1f0c9b2847340cd35073dfa122b7494e73ddab3da52be6951413e5d6dd287252e428da3de9e925cadd3df9a5de479ea11647bdc4b423b433b413b4b384f4c529254a92a7fce3ce910b45921341fe12754f59b29db1b62d04d78dbe6f2a8932e4be748f67c79da9e6fcbb97f8bc2b919c3eb98844b9c3ce4bc9d0e31e177a24e7dcff17ba87b66d68686787f564f6515eef361adad96121ed081125cddc0e7bd80e0b69a7e4ec43a15be85597b56d1b277e3780a48e287528ee6e7fa7e76d9004c1544ca93bb413c9330539507b63c7b76d3bf927a68c28d1cdc70ee48fa663f7a1a47e893a043ba36ddb61216d9b165db82da2fcbe911c39c9bdf3db1c49a22f51f3b5a7e6cc85c71dd6939dad686768e7688785b4d3eea46d6b376cdbdeade3b4d2153315438a8832dcffe9c8bf549f64f776fe69d0855f2f4c21a0f4d094fb50ed711d923ae463e72435440972a8c7bbaf7bfe9127493efb9f10a516bd4f43f24c47907c91a78238d18d72de8362478a5acf5c987dd07d963d9a920a53827cfc50d04b478ea67ca3deaf6dcce2524094dea8d3514cc7ef5ffcbc947c891a6cd27a8461a9f743d989ef7d3c1c3f50779b033b35e543e96daef9f9f1d44343ee137f0c95ae98ae1498d2137937fe6f901c45def1f774d8a50e508ee2f9a8a8bbf145547ba8d98144290394a74ebfe740f1bdb03bc354dc613dd991f12317bb99b6ed5dec76b7ed6dbb1695ae983cd5034a3e07c390ebf8ef8e77e96f51df29dbd6dddfc27676db60317b428a074efc466ee4bc8ffc3cdd7d5f08821afc3a11fc714c350972cee3c0a8d40e2547bbb30b39f13b12f5468f0ce27b69db5ef741176ea9a47428bfeefcc8b44b51fd6991831f17a0fcd4dba848929adbfbeb3851cda1dca097a69ef781629aa29fe6e04ee1c08d23397e690772ad49717c89fa0b450294dd076a7dee4fb5e791bbd39d17b730d53b5337949c14410dee908fdc488e62282a5d31d3d497b2d3cf75293fb7f6b687aae6b73378c6066ddb8cdda1a774c52c5336845aec44dd79dafb48f21bc74ff4f4197664da7d1ae52987a26c37d775a3e4a3ac14b6281cdfb67bacd400ca7da63bfdbe4353113d4f907c89dae4bc540d25876aadbb34e5c2ef3edde44bd4a6d975ebfae84743f9ddc93f6ef3b3133547c550e98a8925354339825a1c9fd421f98de1937bdbd6f5512e54ba625a49c950922807b96edcfaf44890a7e24bd42137b7eb0275a7a1a46228b9d1e340124ccf2edca3c7ed949772934ffefec0937fe8a51b7c891ad42918ca2ef448afd3bc23d3307d107d899ad36428947aa1d47b443f0cd16e732f8edff71275ec59cffd26176ed25a74e1d78532e5e3c8e96f3faad333ecc897a8cd57ed740b21f97da4c76972f43a5287a4e6bc5373e7a843314c4f70f36f04495129c542c9851ca751effb4e12f5bc54bf446dae318cd33fa9154a747b27ea8d60376af04b39ee25ea2ed65b738d6123f7c93acfa50a8d212c66c9940a258986a73772519ffa3bd0734d32d5a54c393425bf50243b1d7e9e7786da855f2f8552a31b24b9277ea9d6df73f225ea318563f21d5df8f53c14ca11dcfbfc34ed1e05c7ef48924bb94990e4ddde1f86224f390e9e50be0ed1f0db248a8ea7388edd4bd4269423f7e8e9751f1745f0dca9f71235e8b3a5e4d0ee23d3cdb7776af43c39abc6d8b8b3e6a857b3f24bc7736f12dd69c7c794bb58158ae464253f538ee428e7f13144b94e2f75a56d73fb11aab27b69db7acaaae6b82556a21e29925ba764988e249a822f51c763e7c2ad0714558e29f7e1083ee9f191fc317c89da647f15f5aced28a83918efb0764e30de213b302e47cee3464ea65cf82237765dbbdd181b7b3aece0f2bf473d3e9e62377eca71fd123567e3ee9a9f95b7e4c41425512e1cc58e731daac323b7fc94fcf47baeb7d8753c6cbb496a7044d25292bff7eb93e440b113c50efdc2146c4bed91e1a37c772089a2223f5fa286dfef3ca35e7ee148fed991e3164f2e72fe12358c6ed99beb86a96407b2250775c8e9eef346924bbf0e7d6e76d814b5088bd91060e54677faa53c0d498e8328c87d476bd981faeb3a1d929bbfc7edef9e4095fce3de3eb71e3bfee9d1fb583b454c3bdd932c65b7cf50d4df8986a787a663aa9621f7a497eaeedcaf3d72ffab24c9f7be533c491144c39013e1972b5d258a867b0c49b11b454dfed66befa7515a7e1eb775ea911cf5c60f1449f04b8ea39c43bf70dca338a622f7f1527c12fd140541b13bc334e51e5a8a2329a65c08ea4f7334e4bcce2ccf122579da71bfd1110d7707ee97a84dcf0c8b7649929ae3429e721dea9ddae3ba0b6a959fc7dffbf8f63a0f14bdff97a84dfe3029825992a9eece300dd32ed55ed8792f51f3dd7a5b0925e875a27ed00347911475f7547eda13c393dc7b737204c37f897addaeeb77db69f7e1221286a5de88a50477179ea0f63617bdefc8f3256a1086a51f9050a6cf47f24449fecf79208706814a574ca72be57ed2fbfe0b432ea23aedba97a861d99b66b85fdd2bbafb857e4d56b8cef33c8f13bd9124434f8ba4078e2089a21fd77d9ca35fc7cef84e11d30ef9b970bb3a95e02772ddb8d1918f20289edd287b23f7631da92ba14afae4f36e44bbb0d3e2e6c297a8c74ec7260c4bc7222ae598ea3fc1d43bc9f1fbb6eecc2924378adaeb44f1d35ef791a0e6c8907b1c48a2ded6fa4cc3f40b63f35f77b7302c4d6295dc4bb94e4c5f7321289260f812f5d8e9186eda36177e75088bd95753799e7cefb1f3c6f31c79c7bf97a83f0d8b59a6121537e981dd7882af35c87de933b93ddde1ba786d61aa18bae2f3793b42099e9fc8b91315f7a8fffbf025ea0e96be3404f52982dd7ba1f8715a4391a251324451efd3a7d8712e1c5fa24652f25214fdf1d4db7bd2dbe2773a4a52497a9c1cc5733cc9f4f334ca7927f58854767c44bdd0eb44f439b1dbfb256ade57514af1fb9e4c410e14d1ff38ca39ef504acde98e3c53310cbd50f440cd75e451f9751b4dc7733f78869b0bc397a8d716a69afcddfd7a47d1a83c45d443d32deaeffc3e304dbb2e8427650a8afcbf114d49113ccf6e7cbd625854fe299e27caf547feb9f7d761dd6d75b72a3bfe7d01a3b4a8b47129c7999864c818010198a2090048e31100304028180c8783e1905838a87600148002549e66a84e9d4ba56914c4308a19630c3184000008000244866a681d008bbf070caa0dec750600b50377f2eb47d06b675415af162a39c1c0c7884c2f7df3d297ba9d04c88102dc2fe918e643d36b439194d06babfb3bc32d12619fa14b7c9e030866eeb8c65720e7fdfe05e4ad97925478ed0b4606669ed0c83406b14d7556b1c9b474cfd05c6d55bdd0fd2ddce120af4a48b15effe8b220e96ca4513374f43f15a9a51052fbdd2e8c241f6f013707b2d36ba87b3660e01d322ead615a876385eefaafd567a40b068c7dcab210d675e846c4c25aa7fe4291027179b2370414a37f1ec8d3a2c38e60f0afa6e5086714a8b7c767483e816880698599835ab94ab43eed6774242a0bd9022c4d6ebfc1c3b64cb6594be93642cec658ad688e15cdb0a2195634df8a665bd16c2b9a6d4573ad68162b9a614533ac68062b7aeb893ebb93201cd0121fba6243c5da41b9df213ec6342031398f1d43ee516f68d4177f996a9bc445f99d45e97a7bc44a3818550d447aebd99d6c3d6342d6b0cf9a09ffe88d0e4eb8da946080e3a72f927fa25268dcb847c501ef24117daf173ebfa5f539b0ba040a7858801e987b5fc1b75143aae763b2725bb6464d2a5e7c8731c3d5517709b8d4f4aa482ee28abf0fb205b6a5651ce5a97a6bb68019020422dbd1a5121731ded5463871a83718d082b8628e866d7d1d1500eb8ac576e108304ca64f381b7b4ab44fb9d79726f12c3c0e020f36e28aa99197c45282066bb52d3194cf8153376f6e6880a6093c48e494a84299160858a1155695aa185bffe49ae82223783705dd6ec1cac7c431dfcadc464f9ed8ca0c6d37262a6b719eb4129e30c86107f379ef8ed41526f4a44e241c25154334843e8246ab25584891895ea1002981ec03954c0abac564c8d733498ff08c92d5e6d1f5c509172f1ac5d08e4f580fcbead95d50e6c9b69f30c00117dc3322da0fa02556b04d4dd47f361809097deefd7e8b3fce5ec596699dfd407475f6710c8c5b94d847e2a73482b00ac6f2c562b634c29508776100b402f06d5151ee3d4abccfd24d54e6f60102f36189e75eb4a06bb49203b5f63e14d98664dbd7d79c1182043283918e7046599061f923f9a2a1207c33c04fb058ea32798f83e209039bea6061decdb0dfbe08dffe11883ac90ffa914f1153dc54c8fd89a7abdf8a31aadce6171fe4833027dec873a5f465426b0dc699f10bdb8ecbb3f5dc0dafcdd8cbbcc6a34d351b389ea41a273d5ea8b7e8c1dd995052eeb83188c4409483a0b97b59d2158c2a2af66cfc5734078c99896635b214400e43bd7cddf042bc418ad89303712059b82aba6145fc4b414f8cc78882c09e68647afcb565fd6e0475b640973c5cbf92372e122b61d4fb2a22fdedffc9adfce9a06540429e0a5e1195261ff102ad8de09dd13b1ca411b8b373f998b5f9c18e205673584511e8d223eed37264ecc592adf9179a0ef685cb707be38ed8c661483018dca6a556d71a4862679e8ea0f0211af83f211100032950e28646e2f82e2bc817c2ff68e2f5dab3e036d61f936e9338a2492a38a38d7206e4a8e61ac289d56ebd25c09e02ea977708da4acf249d4692b17f442038a016caaf97e1495d262405b3b8a2da78b921eea04c9cf019d15b275131a50a40b08597c021914edc5d829a2f52605bdfec37ad8e7150a436d33c42e1bfed7c26febd1cc774e47030cce89fb83ab7f86273f0e8533be22e41b9ec0a2a4f7c86a0388a1c1ec469ed1be1085f0eef927162dd37dc7d17666ce3d2f8f2d617fff013e81c46a16d5935580788ae26c2b12d585ba10cdb42556b9e1c06f28313412ff44a49f0b1b9be6a9268bb7ff2f819fe37878e2c5c071c272e046515c684e7a6ddcfca1807bf1d559a838db6807ed3861999c827d7ccef74c09788ea6418d5f199fc30693a9ca2894e7c84b06adba735845f18112dbe3bae95cf14d627428d2044fc8c944abab83a7a7da5b3c097a86e33e315b19c88fd4d006caae8faf3bfa8ae8a8df0f5ee7f7a64481493ac34abd4a50e5ac3a593e14a770c30986d64806e0db78f5088ef3cc9d8390235aa9b4a1d2859e7f8a68158a2ce4bc3558740432bbfc12d8abef0322a52eba237f5fd384888dea1f41178655f7d622f4085f3d07979973d0aa7c5996b1553495c181ce6cab38f4c22e08f928dfcd4808bc4ae57ffd1a38266229c217cf37a5bdf24d2fbd51b1ac875cf0d9f6b9ba8ebec9ce0bb0dd28494990c8eb46d6f9992c728a3cdb2182abcc4ff5db681ad60a937c4d567340978504e3ea1fecf62bd840f8be3440a42895fe0690879f89374b4330b3294b5ddc9d89dd861ec4eec6e150f6e0ca34d9007ce91aeb18badd56d0786dbf2891955d786d05c36d683c8d1d4f34ef509dceb90176bbeee8d59005804543e0bdaeb58a58ab3279caafa22e1d58436f56ca6f44e0342ca0e36b03fd6e509f036f5b00f102819ffb1d2c4957494286acd0c5631f6fb0c72373a66e43967317138ba478feba8bcf765185b20401d372a60c1d2263f59e3a6a481c39405616917763785852da1d0933efa5fecd49165b936abb9c8c474531916694b26a39988370b087c94c71e51ff9f77c4074b8012892d3100a877ed5e28b53b0426a86d9757fb30e287b10449433e2040ce3249c7fdc0f2456f97e2e8583055e3ba0ee7833a5848533e41d9a9b2b7687c9c35a976251db363031db7a093fb31e5fd173a64794e601db3f4ae83be8901eabbfb0c6ce2e1e8eb2308d93dc46218598387bcf85044c57f3fed208d929ce15179ec2e9c7af74d5e81c63770839f512a2f4392ffebfd6b63914fecd2314cdf25ef88cb054b1a3176f7977d445a1133a1b17cd016379129469050929c8c855e1e4033c5a8e8b242a596a5fe41b9451a605c0396bb3801500ff2764a40e010c28be925b87a5c2260c922701201e3a413069f5c8e7b4a54a02f3ca9b6ccfe346043c7a43a9336f8953babc3daf0de7eaafebd293fb9be8ddb6b423bd32ec1942738b9bc963c081e57ecfb2fe140cfe2a1fb4d8c92ca20d54a84d495c2af54da61081752dcb470afec92bae32545b9ea92e54e4bf9fa6f8c46d76d66c550c897431184d545061461996d9eadc6ebe896b04ed23bbc6d07860c73d3f197e315450e5dbb2b4394ac90287e7618890c0b684b37a50bb874bd2e05444adae231f35a4fd3874274d7adb4d71c0b541849b4586c23c2c67054ee254f2587c75b178ab49366e03beb08751098c69623ad67febd2ddf48babf52691c7071c2f2c5a28919c0a68ab0102169f276450286eea8714192b2a97fe802881ec03b0060e52046cd35c23006f6eaf8ec770052ca11e8b81f882a0c61830153693758fcd1b5180189bcfca1384a2636170b73e99b69c17ea50567cc68dce18eb4954c663fa504b982f33cdba53b6f5a6d741d3cef887061b2d4e0fd7cfd1da46434e63dfeebf57c9911c3c475f3fd0c14201d3a14708a14160059e828b50640be34d6f152b8331c18530b886cbc538ad38b12b1ff13a641b94fee1830fc0115e8364b918b2272357983b5b054d562db5cc7ac70538afcfa3aed546cc62da763a091f54d8509ce4494f0130e7195447553d8adaf3d4a45070c984e9d34e8b39324b8c0447e639941b315e4018718f06f4e6cb9585c0e6608f19e7162cfb2e2c220c105f2189f008c83ffa3cb4954c5cad800b74db17bbcecad671671d3149f5e640a33c59e024bec63810e1c7fb71ff2addba75b9b99275fb5d26e60e3343e579a83cd667265e5f6aa6fff95a2cc5d58a99d6c9340c0385c2a9f47fd0141f02d4d1d07bf2fbd0b6e4ee1ce3b41ece28271ef471d0f22b45fa519d0f38f56aead5102ec13914a62310cb90f7a89dbc56478751fdcbf6b905f53a72fddaedce9fcc76eb6a748f772842ff995450853757d0716f4dfbbc2107dd4ed0fe553e6d524fc8b71e477699ba309a2837329348249717d36c9e46b0a777f5059b083baa307a24a262e4832005cbbf46e68e6240f5ca887a74fcbb9c3982b1067b9b4b47f1e23377c05f2d1ea17d957c548b9c9bfc49ff55cb5f731534f57fd6d1035351ffcf0cbcaaa1327666efcb0ddefb33d24cff9b3c9b24785152b2d21ec875569b970373f5aad4db5ec54b2cd23cf68ea5cf3d98e9b9705c87627bd7351ea4037c604568373725827582e51edd2551f771ad076f638f59b836e5f4edbc8e797acd392c0ad11ddf9f252bc5b1e724e3f0108618d0c9eed616ce9a7956578d8e039f46f60c71b75a5b100b9a10c79e83b76a38475fe2611056feca31e6c4e0a288ac28ce331e49c7970772b90e8ab4728d4b6bdc4827e93f7ea8a1b0740f6a95651b7725f7c6c542ab2c95ec2fbc0b1320bd7a473297d6a7522b0c20ee9e8f030c5be3b920ee39df4fb9f3ed0d9e3389b6a25e4e67118651cdfcfcfb1bbd80265e94fe175816e9c6718b17220fc3ef8a4e1d6e7e3db8b7b360ecfc8cb02ca2b5543df444938dabb0aab6992edeb937c8c444eaec9f116a9a7a3492678498d8ea40093f8d9c310fc2586303644875169cf401fa0b4d1558672d7c9bda1d7325b865ba062c65030066e170e291bbae1d553b3dd9fed15965abe047b10881ecd00756d01abfecac929fa6d99dcd263902e2ca01ece92aa9ed70e0d849ccf3b44844ea135f0726dabfc7070cf8886a17c3dd32cfc7d9676f95b3838298ebc2a9fb53e93864d17cbac037027159a7ad7de21d6d3c588add23d43ac19ab8f55ad2221db1c5648f242ff4760420113b6dbe8d16347f453c70e1cbaebf7eb29cd555d17ed8f49de3c8986a82697eb53852841825d614bc88630ccf2564afa756107c59c02bbf346db27323dcc100e2cd4eeac55b3dee6f8219867dd611437d80f6039dad600d54143c7c41cea38b484bfa52cf0efabdbbec320b5f29dac478cafe2ab7aea920377a4199fa83add56037808fe4a3b5e91815e601fb011a157ea2b9c87c50e6ad830e19eccade44f3354599a59d07ee90582318fb7b9eef295e5e19de620993b81784abda637ba9d462a869fd4fc1cb073b916cd0a3842f8e09c2829940c0ec75da44cb5dfb178b58b06ce19ea03cd080fc60a5867381b39eea2b2733bcec14f2e58991d7751e4e5fce44d408f328e7e45f9b84b67d8a9070cc078f3b48690587af1820c311b98a834e9282aa834a7a6158692b92bd0ada64415e7433dee873800aee0c92c8d28fcdc8678a391dcd0dd47eff104cdad0bb19ae9d88e616cff4731fcb3a7827b457a0f406e89fe78bf3733576ddcb1722d1bfb1bb98ba6b018587311167a1e90016804df3b18f4429a628393cf2e115a6d1df22cf71a167c37a710cf014ba22db1e0cccb2cedf9039e9ffbf4771d61df0b89267bd1b9c6cc90de50c8475698e71d95d345cadec83a89d88056363f42af2c072ae0278fe55295f244820ca6226dbca2b1791357329665bbc58ebaea0d745d703f42d82980e498cf0f7f0cc65680053a2969f46c10ad14f2da491eab14626690823e534006010a13f647f730be5c5a878f7f15d2d3de916f077e68eddc8dd84b82650508c9445806b75171417ed4b546a11055dec211e44c5422e9f86198e5ec64267fbbc06680c30b1d205379442bed3bd00a6c673b2c46ded2e6f7a44bfd52a7d4110d7f9cae16721cf6ed545b106c274eaa2a6a19af1cdca322a5c8e2af7e0b3960fc31d63aa7961c1d0212efa4161ad3541988d0bde0bf7a4f528a4c0c6a5712a1abb44a4415c324fe8b91783836954ee0ab624fdeff6baa5697b1f3fa2eaa6b7d2245f34458e7ec277cf8b678e2ea3c8ace4ab7d954ae9b562e22be2f85ace85eb7499d42f61e637a14ddbca3740ac54739cdeba544bd981a6a3d08299726c2099dffb6c0a4dcc949d17fd9125e156326e6cb631723af271052a11e621a2e0a53ff5c0f965f1c6993b0ebd34b02be865ecb983ed2a5b246019c73fcca6e799804d3af7438330d4e807cae912d295180c48be1efc0ef93ac032bc66449aff6c129d9d46de625e6c1e24c18d4e9e8b9528c36d8f9db60776b89dae1f69debb6b10ee8ca6e471a50d768adeefa6aabc4b52aba986f99bef5f94db6bcb6944e1e78bc977777cc2cc21a592bf0ca9ddf75f0db72fa873597bfe2908e4dac9217b28ab9d1857734b92db92ac20be4a1f472a1e65dc2fb5f7efa85f12daacd7fcc88267c5a65fc92604ac97a6faa49d8e92cf7df90548fe7cd525f62364e21d8cdbe63ceea8e8a6eaee3da868d86be6ad074d53e8920e0e569f13f4243425cf4e8267365acccf2e21ae40078e22079fd849ea03d5534cd2d74467cfbb5dbba986e1affe306c30d1d763163326233b8c3c707b4fcf6867e7eae73dee134d85b212d58fb6f4c4da796cfbec01269c79f6769782560f0daf8d8eb3d4cdb6069d12a0a8cf5c058238ccc794c88765d38bae0c7e33c4b7630629b624f02bea6d71f60cf4b6b71502eb554798e99dc98fee10b06477d50d89c81fc3f62ea5362bbfb29313fceb5e404ec93ffd91b1c7f22fcb30500d39a0a9f2834116f44e6b9ec2735cc156ae7a17486b6a00bbbdc163ddd5630d353b83b0e818c6e39069f53499246a3227e51d49309855ba3372fb60859598a6e12feec6ae58540eaa4334afea4a307bd4bb3a69ec6406bb9f5140c810af6b581839b6292e1a1f03d34db30542a360207903bd77657c524a20340ba6bede3a0443cc060586f3e0d7bddb33498e0007ba9bfa68e7a4a430d8c74cfd2df4191b88001305efc19b6b712871218e19551679b0a799001c31f32b3e9ee21102c6ac80b236eae8b25c183c47f6064d770410c147c80efaeec5c164b400514f9c6c28fb362f180c060be7d18b26d2d820208da5567d1e5932d7d71a3775b9cb5596463035b36d7feb3e67135e2d4c221000fc3a32e9ef82b27723c30081df4dec15e8b82e26082ec9ff94e762a12103c047c271d35f0a69978a803e1f9c8a17f33cdc4841400cc65fecc3b2a222b84f0511cf3e9a9431fe121830fe988290bfd97480c20b608775c33e6bf4cd324d2bfa261423f7fc6385fd60cc87c761961389e33061ae26b7b4f8e4d8f4faec027b9bacf7eb57e7e4741463dfa2ec8a5f1188f2aae1ba518a5dd96491828ac9b72dd114304b1c113c5bfa28572ed465133aa39dc8ecc1a20a2c0b5186aa7f22138a872b9eaf0c7d8f23a319e69381616f38542dc544da178a03c26dcd8a10a10fbb804228e89498cbaad0b895e99007606617118ea46e8cf4d1fa14b8d7db6dbeb5a66082d162d81a223b0196bdb2f41617cf1a9d21c346bb9164543339059674132d90de80ea4c2a8bb940f89ae01d172ca97eb41dc51c2ff85b96746d092535ce78cc37b8acd4ed4d24c2a99f8adaf2b82c2d76ff6d20c94c5b14a86b533c60227bee7337a9ef9e4ec22b874e8bee4c8fb5b4c438ecb155c8d4a73a7be228f5a88fc607a143a092d8f1351751973238e4ac04940937fac8d0da11eabe5e16db2b9a4b56a652296c922f766a30a866b7bfb069ab84b26c8a5e717f5ea4af055ab6769d97bddc5efc1e72ac9cb0990df9900a5d7ec7a4dc46353d3b3990558ee65dd405559119b3841540799247e1c522b8ac03fecef0e43aacb11b491e5b167cbd90ece71089f0dd82059e7aa79b202e7ad28469d749488b8b2768832af3d987100f5455fc5799a63880afae2f7420dd2017b693ba6bbdb3ec957d36f45ca303d047a426616d40bcbd384049ac26cc356544001d928f26bc36122d7c2796ee5afd86ce624d5228529cda3f91fdb77050c2b234c2f530c0bd0c7df755f1d11c85bfbab7253712b487ca5725909a0682d82565f165a8f04ace1d05aa05f75db54cdc00bce6fe83fb2cc72d4582e99e44505a3edd3d15a2ef70e0a76040fa63942829a2de5b8e0d0ee84d73f02b488b3b7ef5a8a4bc4978310dbfe385f88a1a30165f722d901fd154875529df8b74cc3911e7d4810c9e065f2e072460f08b3d2bc0720d4891ff1810579c664b63e7c01945845ea22c32d679d224385a6a95930745f8f2bd725b6a1f58663424fc71cf0eb0feb56355df347ee45a19945cebbf2a6ccddfb502a0fd8b357eadf40eba123f89fad777d6a17dafb6b97d4559bcfc932ade310ec318d46194cc7d2677f56e8422d1bf7491114c5937d78aa3e7d8d222140cae0fc824f3c0e6b8e67ad9d7a9f7a05f704b850a02f268eba2d216992650c72ceba1304b9c99e15d10441952626960decf864c8f1221b17fcf1182e1637f3b6d876b0fe8bcfac4f6da7f41b13ee66dd64eab1012c84e1e3c425472d4e933d1ad3d35b649b7c966541c3b331c1a423d104aad1ec156247c17a3abbe9bb2106ce2aa884bf351807fbf9bd6e4d72760fe895be7686f7bdc2762d979a15fcbb7efc2e3e85fa5d710b448cd92dba79573d7867ec0928e3b02391f5263253400239843efac6f81faa805b19527eb50b50243b4d78f7946a0b199f63ad73d8c39adb5c37bdba03525bb27c373eec961060823b43fc4f6842201afbe83241e3048dcf4988aaaac7d6942386e3aad14328bb514beb0ba913a8d61ac85b297ca02dff103ef861b4df98fd6d8dbfb983283c7ad31e28eea173e2164a55a2f0095f427f8c37a87998e6433e2569593fb96b43d01fb23e38fb62962f603e33967d29bb2bcb2762534eb1fb460fae3db25bd062cbe3be488e9d36f86e84c67b601d0ddf7d45b649ec9685777896739c5758277734fe22bf6b46511a4ef4f6919b9835ea3ee322c43caff300f18242765b0d10099aa0336a62b8d746bb14f40d8e939fc02d495f4dbb1ceef06344f5d768baf3c3f37964f7c4e91a05c545f62ed0dfa692176ab66175fa0fcb8ccdab08a0beff8e86394b0b03dc95956b015f74e8b8897e64871495807c529c75a6b682f11c8a4e9f40b7e0dc45722a34d28e194cb65de7b293d177143df5d6fb42afbb87ac175ca93598b659301ceca492b4c678b8ca1b2b7345fb2582e0f7c496437108d71422e2d9cf35fdc32587473c442a7d8d4d80b58c8ca01b78f569682a8d788bd702c942609e8af27eea9f049c6d73669798b7cccf1145ed0d966b1369f06e3e6b98bf16d31e74842a48de0f52a2876e9c82e983e9e784a20aaff9b97c9dc6e3be7a636d523c69f3c4fb6ec691092cbbe881ddc1fdbec33df315279f7d2af8a4de8167c4be8741bb9f9cd58751a09a4a47dd71f2307d5c2a40f7a7e36ea7c77b0d2a829fcad29c52119ad46bac0ba14fdd39835e2c7aa4a7da440ae89976e3b232fa93f7312aff06445162ca9069df805f461ec81e20dc1fbbecd2692ec866cd3aca50c43b100e5db4c4269682e715690e8692cb74276328890bd0f6e0908610dc28a0a9696b0709073f7743706e6e031cbae1e437b8ed2b22670989a247f6a77584afd80fdec455b43d12fa6f85e2db542008aedfb9f5a7bb10c4aafcb957231fcd0b7c87d755570e97e0b29cb0147a3fd1fb569582cf1fd77900310cdf1a0e4b37ff0bf2d18cee735bfdee3b001004c9dc2dc8788e7b6679184b09d8f8994e5f6ea616e3082713ef4fcc2b7839cdbbdabfb7dfc49a8212f1847531a7d8e61af3cd0bbb1f551b72ae02ca4d94839b46f9235985d7335e9449f2809f76349cb9ffd0d146f119e19050e78ecffe8120cee3dfd37e78366c9e9ab6b5e3858f34699eb4335e80fcc989deed39c13621da8e6195c406d14312c462de32193d390fb3106689dd15867f10347a2a314da07eb57fe9b87f7c8cead1e47e75160a12f6db3bb135e21900657752b55145e702e2f3fb01d8d4f190a54e5407cd89778ae1321cf5019441ff405c8a6fa2f2629b742bf72cceefb2fa6be912c1e41e80c89617deab4dda536e43920fb0c6239f62b8619cbaf607ae5914474881a7987d1ff84fa7bb6023f09e48af6411098f12d1a43978457fb4af3bbb065e3db12f60d1c53ec57ea1762ceedc1180cd6314bd2374d3973997383c9ce6ba51599b641bc6d2dee85bcfe8bc494115c9daab92627999b01181585e50ba404d37ce0c4095ecfa1b872f82f118d7348ef2048215daa872fedbba4732c9a6edc29c75fd0135d017354d5bbc235a0e93a0812079e2061c55ae171bfb969ac6ecabbd5822b89770f542bd04c1ebdc534e49bca554c826b5aef4ed0ea9a1f1d8c47b20eef176c68f3841dfe1115cce68ddc2ad6966e7fa85b14f4f6e208efa7ed2ea4c1ce043efc97c88aeb40d318b38ee1ff335df4eed28a30fe1eb0f5cf09cb54a48c1d09d0c2ffb252e1906cb9b59b11f46470d79c5b8dc951dd1ca45cd18528f9d5b8abc744838c09b6c520cf227fad439f70dfdfd3ae305e005af36e313b1df6cf7d1ec3360e3af5f68d3eb67bc3e03c7ab9b7937f572a3f183cfb59c3214449c2584f81424ca35333d5865458a31fd3610658d24c46ea655fe255a5b9ac5b0da6ca4eb9ba70b30fb0cff07dd032605be957473eb419811ccaae0a8a1ae86cef25fed86b9d3288d4cefc80cc93d64d0a9faa84e9672cd93f656dda0acc5f45b210989ab664d5e8dc2776c883f15ee680f090f1cf91034ac85bc063b31ea44ac405cefccfe9e135bec87f89bdde37d283d7128ec9a07b8a10b6057b2e13719d8bc8209aa85fba2e92209e0119b0e0ab2354b46745f517b04526e78d41b5722e19be3a34d49d667dece8cb898477ed02946f27479559add34c6eac2a414d8245b6fa8da6286631734d199abe18c006cab502fa4cf2a34c8a90119bb735d9bcefe5fc4ff5266e372eb0081817d4978005ebf7b72b2f5ab72f5826cc67035faaeb99a02a17075f5feb55bfa704238f2ec957020cca5007d17a7c5b175d22da12d289cd9a45222fdc19448a1e971979cbb597203aef137ec703d5074df4a41e1f9f73e18cf6938bc8abf13c969c18c39814e9906277cb2dfe64b663b6c6655495a49934cdc05989771ae20ecfb82e8ec3308c523055e5b9037445c0dac5be6d99e3911f20a5dcc94e98658d88fe62964a67bcae5c6b4c6a24733962054f8cf1583332658a11381c392e1bc272ece5cd4ce58cce109f25e245bca2ddef289a244a678e2cc2b1a0f1266a30d769c1c3be9c56efc8315a0b09c833072433fd9aaefd9e0f1e8c2b39f049998c184d86dfc9a2e81753e7f213c850ab69bdc45394d745b36b9f39fad664ea4bfcafe53e60612adcf2d8abea72dcc2088ae3e06a4edbf022a001126891a0352224d52ab14c33a50e34e63b6d11d020a2c24c3fc0c8415eea95d21071baae040228e001ed92a6aba98c29f13cd5f0fd8e899bb75dbe85df69f22bd44b2d14bd223fa9c2bede276f8ccdabed133b2778f6a36c2a3c245f38a3a207d5ae8bdf3e55ae40dfb16ac759739dee779a66a9f97ff7edfe789375a16e0080ff53a7c4a16141eeae97e66e6efb147a1e050d529fc3d49c3143f3bd85532508ff5c27367538807ff19ebd57e2e086cc3fd7f2c2c8c4f31b3c67ac2bfa3ecb234b08ae73526186acbb914b680c436996050d0719f044439330623512cb01e7dc53bc22961edd8f5470403444b3cfb42636493610e3b8c91b88d6722534dafb2352d5d5dd8a0cb25934423baf086e35c35734584c38939e5ec247c6db25986aa0c4aba2fc2706e82d01c5a56a77defea1463504777f3c35b33c14b0d43574949851fe5a22c7904228ede95cd1f5f7bac7172fb984b1e877b06832b601fa641bd051627fa5c1fb326615f2331019dea0c3726071886a1631127663cb29837199606b79dbc9727d6b5c20df29d4861b103b0babbc92a742b99f21ad6d8d36d09e52643506d57f4feef3f0d1b1f4c1019e0c253d4f90522f7fac4bc3214374ed1f2d28928bb255ae82f9ffba00c9226acf375a0788934d8e314e13730cd47ddd667e49aa3591d811c2a5384095313b2ec61018514b24304c036de48ff043499d8ec1f6ad5da673a8a7d488289fbdea6704dc92cad1abdd42d0f243c2c15ea37c3bbdf54225927f9b61cab2d41f280e4a5b552c0be077a38a6d9f48fa885b72328284a7314713300b0140c337e34778fb500c63432bcd9bcf3a52e5884cc0370b7c4b23b194f227989a4754302135f1996d2638c05c08762c22378e61187de32263a356952c217b710ff9ce4e43ee0dda9bc044f6748c41f147f17dcb7c2599cc38f23e10b764a7b5c5673b0cd23520330ac0c9be841099fe94e9054624e0a2a5ccebeee2a4f45aa1434df78c8c6756d8e8f1fe8c5bc686eecd5205c73e8f8f87bdc04c1170a83f9fb73f31ce7ca2445a93c08645d0918f55bd826de8f9dea7f0b3a174755a442cc3831550406e1b87a0db8884bffa8f78bf75f13fd2691c755832a6f012fa04f7d05354b86599a5556cc379508ba9728b7fbd0ddc2dd4107575fc7b4dd6e2463854371bd36499a2d02b545f1d28b9dfe0a0014515d1305712bc0c96effb986519b8d439bb85d0820747edf927153d78095db7fcaa74fac501aa2ca77876d03074675e366b7accdccb170f759c5ad9ed6850beee6b123eff8453067029b8c1f442e6cb639a6d8ef313fc69677a0f23683db6c33bb425f89d3180df1454d92d84eca2aee4a17214823aa5240d52c375fa9eb24f3d07935c66537f03597ad4c9f2d05353ee0a0cb7ab5b6c83a190f20c6cfd948ee518779807c98f81b0b0ee88b47aa91cbcc99de9a35ed662347a837e6953c214c77591c6e7fa1d5bd23ad7ddfdb761b1966321dbf54ef356c8582557e64dc7cd74cdd4bd93df338586bf707ac823784f3ecb99a01a8bcf4b68917bb1ebaa182bae53d6f1787807da75481cc0bec35873589467f5b637e7a43bd229b1366e5e9190bf115f6b4e607b7735e30df8d13ee81bcc786b68d2f507ce274581872e497de5d1a74f369dd7e144ee074aa372637ff18106f4a84a256f2fdc91a1f8a63e5a97b8922a87f0fb221a51010cd6e521b03c53b3bd630e22b082ea88bd5ec27d539285391b2df107b3bf9ce5b59c965e790e2930166d607748bd9aa650ed0b816ad0af78cc6c6c6e78875b32ecad5fa71890527eef8ac6c6c7ca756c4d1a38e51d4a3eb371abf7c0b9fdd122b8599b5c67b5af1c745dcd38f6a459e010015aabd74e270f70cda0ea19642f94e7474437a8645403a40ffb55b85bad061904146668b776ca08fd17ead223409e9b7635e2aea1170d73c6e6e629d3b7196c8e8821bcebd53afaf84272b316905d72ff995d462e08972c74baa2c10d9af0e030e4497a31c362bfe95313d63adf1f82042081ee80788f75e8107d66affbf8c6bdc7b4c953506012621d49f92865817b19683d0c3ee38e7f82eb77beb079d4f9bc5ac9630708d9e12ef3d16a5780d019bac8101b2e33c7cfae2d8227b1f0068a2431a9dc4d76a3c98666647d0c45dc5570085c59226eef5360b76bf3d09b0d579d1806278b669717e9df65678ed0e10685e8e121922bf323bc2f9fad2051b62cd60231048a31a5ec664ca7004c98d2655185c73b2d08f9c43cc6b1053e9a501cc5471f1ddae6016a0fcc6d14f78d6a86dc7fae2b4778352e4261b205e2197b093b5f5562a5a1e7ef1ba42909f23e352fa9637402ab98893a753937d03a3ed7a0f1831bbe17c0359ab783795698732044df43a11fced6de5c0e4f9a75f896e7d645ccf8035f2b05cf0375afcf3a8e5c267a8b2006e9b6e818b938de9680019d34d2745e815956bf7dd903a2c8aa5829aede249b1c77cfe5f947e81bea7eabe236bc8b2ccea916c078ebe066cfdb3addd6dcef5a8318c22edc08e15b3b70cf7e44f72d7d41a864aaaa5fa0027475e5a3f93add1d41d15d509d0906cfb77c93b887f0c48a4a86cd45f0bec36ebf7ebb4b6aed9f6d511a7035aab5d7fe8dce5cb81168b5c9e0db0931383360673ec1d83f9700c9641e509de887fcb754375d1c13956e896c1112e05a0dd5dcfefcd20d90ad0712568186a7379b91729fcf7f932432a6e89731bc001560b04bfc22fe191397842486ed6a214f2f766e4950f03c718bab61fae40e08ce07ed6ef82712283bf896d8dde07fbb97033b477b799020caaef9e1f66d40c2167474e4d158a1af6f17d311ebd0933d23ecb31d5ebfc5a5bb0a06148ad5fb846531e6bab45e0a79b13dd5b1492187173fde800bf2825202357bde5d24561f684c3ba163f0811bfbfebdd459fd2a0874f86f93c98fc245c9424770cf6da78ad856d00c8e9003cc017e5f79951a9a9b5d68fa9e9907b71e84d2c5e7688a6a43e1412f7ce850aa1771e704995a2edac94a94eb7524034054f323aaa19201c57c229ff2399ff69cb99d61c51f1a1dd49f1540c233e1ddfdf96a1d131e20c80ebcc2e311670bb28997acb46af8896f0dc7007eb877120b218fd75c795dd42f153c7b0f9454e488f9a7818e3e783badc05b2b42c621aa429dbfcedf034457329ece101297e0224f02979bbc6fe16512308c5811ea063fe143b9d73014788cfe7f635d4f2b8b935e77931687e90657502dd2356db4eb0ba661d3053f3f2c4c01f433cb4837d265c6dff6ce4cdd86b52f57708d61806a49611c77f277abe919f197f59092e6221a271dabb21edfb5aba3acd8d1d5829586568d5e493eac8464b038d012e61387629b86c147c5d6ae380ff0cf52d9f9193042a957f943fc1b4ee6225e3485ff581d6e6d48c5a0a18d1fa6fecf51192f1229213c0865176fd181a08e86bd247d877ef6914109c3bc834749ba337e70846911bc360466de722137955b5a62b9bff401109f14d1a09c690f106c46e6302f8bbf72c14c8a7b6b8782a71a5d4279b4fda9f37f9bf884a8025284bfce4a546439258abebb79b9eba4472810e0f3e06bfa38561f2d72c9bc2a99fc8963e2e47169eccbd23e21683bec034f05d7b51cbf8b2fc6c0c5d0c4bf0e8a00a84f35bbb9623a14b9010a16de19f475c287b02df067e227385cb103f408d88f90fbd623f9471a3f714e60f3d68cae7f5d50be4d5b5fbd58b9caba973f5ea29ad8635f8dfe498eff5678d3578749da966f0b698191a4ea38a0c74e0e8e4684ae9523b46cebf79cb1bc401a7a8ebae07f6788266663ee909a8dfa359f6009c7401ac1c4357828ff3dbc386e185aac69429fcb6a480799eaf4901cbd5675eb82a2fad947b6eed25ec49368fa676374c80f888405029111818ba7811f19380aa54cfc45179ab11a8a046b3e5e4104d97ef9dc0b6a490058be9e62ae94104e1cb801489247b7830eefda9c6055ead2e303b3a7ecb4afcb1c04a872a8d1e54e5af5a7c7756672ed202e438935461d505a5a743de1cdf1d6a18fb8c2bd15b71b64c8036d00a09188ba8bc53cde239ae617c6d8b22d4ce3a2f70b5a74df8c7994925553e28b32d27a6fc2e1dd0d41722653e517d533d6f1c33c7bd421ee88192b02cee973b818859381708d0c6a6093cb7b54563f40703f0301851f1d507095f791f88e90f552c872e09baf6af3611671379dd1d990c9eae477be490618eb752570c864a9475e641c24e5392ee2c64aac4dcdfac3d6ca85964b83c966ece357b227726b19443389c54a83d74e3198e9d0d2484d3bfcd1dc7ca6d226f344965af978b895d2ca950dba2b73bb39edac5e41e1723a18e4484c82a47da57b4293ad1929fb0ad9898d3f155a5dea7d2cabee8d45f914b0574257d3a999f3e02c6cd48a42d996128d039453ec343ecb0d5441380b4f5bb098c9677685d3d6c379e3dade92886cd93c4f4d89a7415ed646395bb359d90f9cd4d82c3e529bbf1f9c1e7d8d652679c012746a9223344b51e9e0133a79d29a97640feb32654f8e64d704b33375f0992da02c5c0e12bc9d8b0416f0be5413528f1fbe160f024747c08e26361eb134e633e075af980eb85e7934249c385ecbd4d164581f47bd3b3b65512f28ed7475a381aaa1e931e6872c0faf9eebbad02a1ce1c30a9d1f36aba654f287b1e73650eb35a7239527017b11304b93c1779f07c91e1c98e21a1cf533a59e950e9d8037b8649419c0f772742625d4b9f2359e2596b3c1202e3886ecddb1e8fbe2323c3ee39f86b8e0d098e73bc9027a28ab9bb161339995f7ae59c2dd548f5c4f6fd41d5f4e4bb401785122e5b1964b191ec02dcb8a981b0b497725e50317b32020d26b98051352c55e093133ea2c787885e85b70798b8486ac2cafeed23187513abf9328aeb33a6e3489a9efec258e3d5519008c4e882d64f9ef611ffb6a590281eb55d3b19d7b10d0697a2373cd0b033357fdd22b32d3feaa18549ade6203aac093fcda80c3df1ce90160839009009a6dd0e089f721114753ddbdc030903c0c6c8482153d3e3ad9e111e4b0cd6726007dde2c70688c83a4fb6af8588b235759ab446f7793fe4149268cfb11581029c5986dfafc49c0574dce41bc20cd36750daaf22de59f75311c2fa628c9d415a697b0eccf2732668a11ea0b45c8f7918221539a8e351b02ff83f68eb9fbd532821f4000454e149b440507f8dc82974c0767febbed66f1b7b316e3ef5f4b2eb2396f4032ab76b22779f19e689583099c1ac7795b3d47eac244314a7606e561411e5c79c63c5d05c9d97709cb4cb41bfeae8b4fe9302ec91da17125c8b57e7b923bde31f39a714c3aec22618d5850d1798bb51131813968707610c19d0d259b450623b90f470eb9bad50b0d8e28f00bf83ad5901d51e2c8614c0497f5b9d82388e3114c9dad583d8ae5ba1c6e0036f3149ead17c5cd06c4d7b0230e64f6d6e8a566eacf6b00f853a5ad8f28005c57858a06b1ccbd958669a55dbf8ec4e72029692a6029ad95bd6ebaf641a50d41e694ae754da6bce78db5eb0935a8239bed30cb11569250587e3722ccfe8da832ccdf8d1fe482746e0d269a059d77d6fd066103806007ecf7cef310d91ab723539f896996691acf54094f394650d643b9050e15157651d8f0dac33ebffb633a1de8563ef8e2a7b4e2993c3aeea866433b231a9bb1427c4f14296da46dce048f0bbe2409d864f84a924992c1b1ce83e7b271bce9549f0cb461f64bdd0974b69540652d75c16ea4a321beec724186faa3a954f14f7795ac05d038c8b725fe0b54dc6827981d9ef0946971d6a9483a51728a9f8a45c069306c4debfb930dbf21c7e65da50331d3abeddcb984084299138502fd38f95d5af2f4babd5177042fc4fe8053786803b44caede293759bd796f434d562046ede04b6713325d0f80c8f1c1574eee55f302bcb694d2b4097a4bcabb00d51a93b37e88b3aaf349843a2ad00fe333be05938234bd8425f7b8b5c790a9c5c10a50f75fc9a191098359f3537ce25eacbfdecabbb2e8c7361066853df76517431df151021983bd06f8154ea9ebcfff4699881407f6edac0d868c9a66d4d86d7aebad25635071b7d9ee6255c0199e16a3842d2f691f94682df735d790ea0dd77b0967d414168b00f740a5d693577da0f443af82ecd65fa7d02c05cc5269b833a206c42974be7ee2459ea8878ca359808cd10a3ce6abd499dac8bd9f958642faea31b58822ec1eed52ca89b703eaa11ab69e89d7b2f7ed6d5dba0f4fe961c15a183c284d707439e094c838294d29f2f941643b09a616fa084ac0db065c1739935278cb9723cac4ff52ea110d104c1c4999621506d6ae8e44af32b481b3da8643a2daeea84f6354643824c35463768d10a4524d11ea8bb36777a6942a8a18281d8d763d163b0eb13e6fabe04b588c4c54d0692a43e1297af6b300d462bb93d09134dd900cde6061c6c3a5694989a91d53f1d05a9ef06b18743e7980116311813f88e6c88a00a2021d4ae5c731c69d68e327b0473b1c7e22c45697665d7e3542077a5a95fb3d3cde6bd6812ef7ed73476c0ff5a313653d3bd69a25b46ce495166bad84fce4180f9ce2240ed91378fdb95d716d933b194e7e3661a4b062e093b9cc6d2256bc2703910cfa60cb7f6a13a7cb6954b1f8ddca1730a96413186ad87a98246d6b8bafc8d8adfbfb4e4d426f9f212ea20859d7d55ac672a63df6e0b67ba7745696f13534bb36a29a7db942dd2a6dc079f12b63b0861f8d3d9676cc5da0004386ac6b6cad66ea20695d23cd200db81c0c3f35b40d1c3289b9728d0ed9e64029e067b70dcfacd98cc5b15fff92b1113b7dbadbe990bc54ba36deba69ff9963cb2f2568e3427d55ea638197b530ec5721668d0cfba93ba6ba3f1c88c899ff6cba0af5672203b256d9612b28bf86884852801dc1d66684e3ff51defd32ed8d6f43d39197114e99d49369192a602a86776d2cfb3ff38f969a16e91a04806bb708f51566c06755b3bf294add372c90489ce154a09408d0f4029e2fc0c58538ae82aa37a5756ab8da9b5ba24dc44d15c9b12e2d65736a95f72034c3130779e059efb70321af5d277d96c5b85ea8a120dd3301ca78f0c73dd02feae0831c7569739b07b9c5a94930fb6a8562b42c19db6aa19e69249367e04ac1f5c120a5328bf2e72ce309fad45e67ccb1a6ab70352754aa35c7d0279e44309dbd25aca17fda1cca406f4758061c75765d185ce131d0758e7134142beddf09b7d0ee3981bace3e308c823e13273535657bb4b65e215b3be7a00a1b0d4954f7574e9330825e7b00fc0e6eae1e62736c67da369cb63855d2788fab2419757b7becdc916bd13b78266b9307252770ec1d62ff39856c91d0c6f6d7896e507792c086e2b26b75a28bc73f20772592e22e7836d72d1ee9460a719352c5eab5c7c269bb966f4d18ed0dc57932df893a4dc765b0579d2068f389b3c2e4d3c3b26320335f6cafba8452b4dd4709d93c82e512dd87cc90d064ea90b1fa2247eed77cacd999b6d7d889433c2d656209c3508cf1d874ef6ac5c5c8587f90e553258c3c15f2cd69308e3caa7e98e097c57067fb40b32c6155b0ac7afd91dd699bf2ffe66a57369385d1cd98f5dd8af38f43cf26116acaf9df611c4fcc0eb523c3496258efff79e204dc0c627cd762a2f4d80b67d21bb162d8a4e1bf1ff5ff51c029ad0df5198b3e645376ef723032fe2cba49c3ca0ef2c5f20cfe32fd745ac4884da308977a8d008f41fef9b64b85359669a0f60a454dc1f42bd9394672a9b9ad0ef71e482af2ca1392377951a781554838b7a1db8982aaf476b6f939c9dd3d22c9b67bbcf08958a4c2f13c0f36ceb6ea6c58acf0e08d74c2c2eb571795202848d213e327eb005ae21be65b270bcedbd638e375411232733c12aa4becc57318aed0b678f6aab37d87af18b6f9d3217427987051b8d25e0fc5a6f2817242b512620fd2885a51340e319a1006a805207c3763be8e0eade00cb2b0aab30e93265b66351e309b433e8099891bec5da77d98c87e4cc9e8801fa04a122c775cfd6bbca201c70c72eeade47fb9be1539c8052258d69856927b3c5ac474606b40cf6149fa24d1c04934b2258f7079249d9b0c0391e40e1230cdeab375739d70fa7e99d2cc025b55854b60e00beeac33fd91eb87abdc04fa557c6124996ef6ef40badc94ad7859d34914710b81d3e8a8c992ae4cb70931fc06816e9640b1e8225956e89c5c04d8b812f53d3b1fc69b212f87aa750523e50272719f767199f62afa71a36bb231777adcf24291380fb04100327099c07aed4bd574204f206fbdb34648f0c831e0d6c098f3d9a2cfcf1bf1f9f8f4b71bb3a28c5f3555e140a9d7a80b610e76f6344248ea2962124766487454db785bbf92d2b7cee37571174220970d04332445062133e9db6bf54796f828d970cd599e50be08b52af45fbaf1c7aa4aaf2d1948975290170097e6f15d8832431db2877b0c41e1923b6a41b689816495a1204f85c0f1d0ef2b2e5587e1ab03c2415fd1e61cdcc5333caf1e06cb5035786eeb0e11d44a23c5e42a74eb80ad54c2bb0c1338a9176ff0173c4be19a81314cbc064a718c30722c17de044af32af31bb8c87e2038b8145d39a4cf7403a53448014d227846dc89732c25382eb27d7d2587f249233122f09fbbe288aa3df108670e583b94a0cc0e286ef860e25955f02a2e4d62c8a35df72fe358abd2c61d6f1fd572468915fa3a0d17e00d5b71a1774a599be28023ad6358202a0c0f62e637e88ca557491da398124a8821dad458cddc16b9ef51bf77a2265b9a6b5f35deb7903f56903a8b46011a19c42bd8ffdc41abcdcef3ca63daad704feebdc986c93fe91a418119e7dda060e660ffde37dfc7f24df2312d18c79113573dd62cd18f12d7783b437b48b5003f93af41bc8c807339c2b64e9713d4fe303804e3fe61073e9b58fa0cdf93aeffaf32e055bdc0f737e99d15beba90042810c7b5392eea34145146678c09ffde0895b53f8839744d0addfbda1a25c08ea1a26467ace7498f01e161b8cbff267ad3c04672a20efbfe1d1b9594101c6e1b53203e0057a737eae7d32ce176f727f8b4823e4cad1200920513f48469ba6ffcbfe5e15ea07a4eaddc73c980c53dc1d3fc20cde4be79d92c000aa969b3c3c1029bea93244cec6adcda1f6ac61fdea83e0818ec4fdca10fd64c2eb5d699423b8ac8bfd6027908217ad1aca7f0539c3584141cc796f59e9c858430550d1619f5b198da906cf2665f288917e48aab99e6e31de3e43b119009a8c313c99d7b83e9cda0a65f7037337a0c198a12cc48f8e5264274eada20a89c385fc1d5bf85e37722a32d5c52168afb4984ab3abe47c7054d60f1db8efcf80fe21199185c24862e3ce0e56e35f74c93b2b642914790b320e6cdb3febf4d442467ef78aec932d5a861fa22d9a247ceb7a613da13e032fef21a8d01cf47f32eec8ff4c7607018dc9b44d77d4bd9a888bafde7d9b0c73b5a3d0a0bb9222367464d95fcae9d8ac9a786403b222ff9d1980cc34818925b3f4cf2d73a1a852f97fc8f255d4e751466d3350c40f13daf933131d1783821d38ad43c99472e4458385c40fb4fedd1fc48580637f77eba68a33d4f82e28889827c7f9a4c498e5276d61fd4917e13e4cdff78ee70b1999cae321077bbe60e45922c60cac8cc933206cf2535d464b2a571214c216da96fcb0402ed8f340e0e77470409f47a0d272e15ff481c73f3147d5730967cb6b001cade1165f85f68ac31bfcf7885043a04712504685022ab9c0147fcecd48dc0ae8d887593f197c2e05b2ea34200c6b79e91cad6da664ec52223ad12e56b81734ab4fef419f56c43abe841e6adb47dde8bedee4e4918a047f65a758f5c87cf3e5c93b0ac7146b018fa9d5d8b7fd8a7194c0d75428ff54b9fde92bb6ca6357c45cc2661f3dbbf5ef79a9700f12335b21a3b04981d037654def273126eda5ebfda8b473ff184085dbda1d5c7d0b2a1a29977d8fca1fc3d85473656b35340184f162cf31038a86b541142b0cf465cb936ce9601fac9eadbf0b66da96804cafc2045648423ba6c3117402adad1bc0e2f30c337bcfb3400e0913cb2dc725d984c14660fe05c0f680050606c8cbd01b8bd6223fa3fece9096806dd0951fa0e1d00730a2be8f34451d0ae0f6337014d39e04d438abf9f52ba34940bb6c0efe3b213304202073c1f7a8f138084250002eb1f5f04045659d1ae78afa94dc587171490ce5f2e200d3d900f8890168917b250415ff87012318fafff9297f812c701d98afbd571104b407c2bb49a2e6367083ce885f1ff25b180b644ef0789c0454b69f7e75a5fc601b6feac210e053945ccc11b7aef2d357964c2e6a51e217e5d8d3f900bd277e680f686ff07f420bf5d8da2a2e33c934f8ec440257c1231cb96743784d5b4ad80b47aebe631f9c7b23c2d031ed1ac7bfd8cf9c6bb34f3d9c7d6306170253fb73007a475ebfa442a440c40206fbb1accef05faab14403df04b9eb8d3fc1d27f3141910199d597aab65240a79b2cb0a31be1a30624b2a70ab92013031889ec4c1e773de9c50205d799f8d7cc7479e5399cc76ecd6fa0f83a8b7ac4181e4179129cdc13902ca347b2872c9761260e728763199a78e8c10e394d2482c995bda3ca4c8e7f3d714bc295e830e10683b4d44b34f62836390b22adec5f63d1fd9f7e778c63c9be2bf15c2446fc0ea4832fdd7690e88d6663c2af3db1a408e40b2f28ca8314327cf570cd2bdcd7225dff7006dea9f17d972dbd963741f35deb6335e8fb6dea14083e1a344eaffe8c29afb200104decdda034c2d5994ed9c97ea8de48923a36b34c9104a4e6189124c1b3950a0403a1748a88a85fd0090ceac8fff789f0213f9a4e481dd82752333b32be633889d03927815515db4dd6ec506ea0604eebadcd0754d75e3b9f1cf2a2e5dc3a97a0ae6f5bd2a35d59f79ca881e49fc89af69ad279076ea3b25653000bca64eb9597ca46bbbbad3dc8f0bb51f16afa8223f8225aa09d1a00583c6f8346bf26d971fc3c904d9ab8725244e8b75ba45934b895c724bef4512c9022056c9844be67b80a6fbbe21a1a28bb4ccbe6aa5dc22794c7de8382e5ceb479c1391e6d743d6b6f45e746c1c9cd333a2e1e8b7de6015d09882acb0cf1aa9da1916f84a7000cedcd17dcbfcf1aabbb9dfba2a1aab7dd0edd903afbc1a9e67d7f178548e88f76e11caefdb2e9990bef21cc47dc270919cebf8150de408ad90cc7a5edfdb641312ed9eab17fc9bf8eb5233287af925c84993171a58b45cc2dd8b290da048de68ef1f4e9ae27830c7762dfb3033a919d7c76cc3891832f955a1f4bf680a19c3529089edf8a4a2cd1c556611a9fa83b7973427ef7647dee756715a95f040b85f4cac057ee4d32b4799dfe52872fad3e91287c80242dec7699ff49ef16c48248cfe3de7795c6ba0b2ef600587eb4515d4bd49dda9c2bb3d6e96e79b280c5480c6db4e8cab273b830542fa555ff27edbe9479304105aba4663333601e1b10b8286962271f412bc832574c44565b75e92c66eff1a199b7b9eac4e86f261709256fd2ef45ae8ab9d3b004601900b68fbb2a1fd6cd9ffec8b0780af56f2a07d96c4f690e3a87226de29bb41ae687e7f49e0e492b8881a0c42091239738d168a6ae2b58c1c17abc430028b64ec9832bc1db956c3a8b6092230e6c4d3c5b2118d0acbfe1b3d2ac243a2cc071880f67c9ac5554027df025428d4cd0d662f311ab351ee82208fc1db85bcdc671b4de7c47b70a84c4c5bcb7b8fff212a0e5e09e84ab2097f1d890d705c0ac173084d2e93584e03d8fb207a12b346f3f633a6b97dc1d818c59ae9f1d1bf0f451de4705a18745b3659828fc0736c5d1270abb19f2620a571cb85429a64b165fec3043c40419e4527a122564346f2bb8a0d20a12c2fcf9a5a34a29d2cf839ec4400d27fb12ecfeeeb2315cd97b146f0fcc608dbd7eb0cd219e25705359e7076d96d8bfc22a5ec2aefbc2ffb1b04ac4f909f3a2b123d312e2a7a72a3c293cbdb4d390c4d61bdadf3729da958bbd1f77de54b99f9e9e09e8abe188d04c081a3e60f032ee1b0e269afd2deb394725685b4dc33350175a10ea8a46fca3b6e6727fe3401bf059667cc09e43c8238151d7c0274eaf0e02ec8131087422eb97b890b53a9b2aecd258c70b563a7f44515716512c09b2dfabb94aa2767482f4a99d58852e158c09f51dbea2c24a54a2427b937eccb81a331153efc98b6fb4de17e7384f013f12cbb9a2414ec0f82202c89a208f90a2c83e642839cecf20219100909bcbf215d425998ef94cabce691e3ca97c04fa6a94562e3c690c5f9f0260131f42cd68890345a2bee96419f58f56cbccde22345b71f174ff9fbca5689681d82ce08c9ddff701367fff05a48333ec4cd96f1ed9019e6ef8c5e3cd7e4a966094c5229bee85ecf5743dee7704f60604f5517d19a883c606ad7504db5d358e7be5829578eeda63437208fbca1d00a71a500d3bb8da6fb6c833334f057c12d450e58a2fc9e7b6b2833fb1ed7b64a7741dba188db60a1bacba299f2e40ba6f6f5130b6be737f1a243d719b67df61b23d96ae71787c7054887d34a652aac90874d6eed0063c4b5a78e21ba1e6f29efbdd3a27a3decc585c8a9a94c03df00bc2ded013c125e93822c0b385c5a3e05852319e0cebd476cfdede5e4322642032b825b870072d102c17fa0330b0630cddba4201e7e9bb8b7e33d8c908add1f6e7d85cb817f690f5627da1274faa0b86d68cd19d49303441db80afe688bc90971bbac30e5505e5cb3c735f3a93808c92b396276b7e49328436fad99914bd5e91b72b7f3bdccebe375f7d4a83f048f2d267f63a62f0e17d48298ebf588d0f79434bf06dd89da9e337cfba9ea1a8a5cbf189970ffba6c6f345a1f828d5b42f872ae3f9594efc1d12e2a6d01560454030a107baae9e696e501ea10d6cf4fb6eab1a9507b11f078e1f85d044cb1ac7a65ec62850aefab0a10c6fcef5086d3f56dbd48ea798baad3fb6d41f1f4348d5a0860707b90c7d4eeaaaa3d40bf3f4c87c5569f5fd5c198aca2665557fd02733b12e5456c561514a683637b81974486af15120a43a895af39d647e5a98a41438868341c982ea515f7cdd95e863eca522be43581c78512fd5e62d1d1e5d601fad22cc1a7e9c6ed30284dbe5cb1158c30a635f46395331f62581554377d9a798baacd4cc6ccf97f648082007a5e8bf1bae9cfdc446c74d1385b3f1c8dd7f534447beb15ce8ce90e878ec1017e292d99e601e861263e6418588e8b46d3a23337f135bbaa47cc5bd3fb33e3b057ffc47e2498a9e8e01ceca4cf2eefee34791789886353eb64afcfe1e7f2a242124b81789074837b4bcd4549a98eb8c1e6707b1591cc2cec7c15c848ede8d687fb088751e8687c2e5f5c0c99df1fe54a38f6b9298f22593c7d95874ff655bb2924a9d23ca7a3bcce51ec81671f74da0867be2c52ed1513f9fad66aeaeb11b7e4a2febf43e5c287197bafc759997cf4d57bbe23ec99e79c7cc3bde9e651c1b909bbef17e3893b8b480c3b1499a484d24522a164d8fe8246f4883b410739737088784c5c0e673c7e0ae5178087a9bcf0ccc44c7d2a5e7388c46d612ca39c573b3e23a343fd940aeb352e1f3572b7de899de5eabfeaa99e1ae9a7f3a875e1e6a6d638d50fd8610b118e2e936cd3c2f84da2a645b56dd0db69c2e65e4457391db9dc56842693acf6e6ea314fa37525a17f043988e1745511cfcee18ad77f988aeafd6f9a1f1bce9e1815576d22141c3175e5bdb64b8b109291d827ea44eaa012335bd324f23cba204472a4603a028eaaf0f853165131177a99cb4d0d2d5b742fba9f81bc27deeed1b9098b6375e4dbf3a61425c7355dc03621ac59adf860baf45dc86703ea0ba2ab13b2b38bae5423242d3214b9ee99dc6f08fbae9a9cc5e9bdb1b77948dd444bacc44cef82fa6dfaee200a0f8d28bc84fd9817b749974ce516faa91eef1bf66fe5d4498491d37b69cb9006d3320f7bc13a1547e4f27e5fe82ed7ba4b304c6b9f5b441215bf69dcefa81884e6feaa24a8b7603042f1fc914858bd6271e403bd6bf3b6e3230555d674988003007527196f2b77999af8b7ce433e1acab31867a0ba0c06cb02b540882b3f5ab601484a6b8cc7d4f2bba0eb28a3d09da5e8dbb353e181709aa20e0536ba5fc79fb5474c7b7bcb633289e2f7468ecc8391d82b4c6fad4684e014e1b5cab6407ca3899047736fc6b2bd4cb2a76ed68de50865d7584436bec9895e0ba17a59ce1f650561db5c6ffd7c6de3f44b8c7f7ccb89367eafcd53f68a867a3df632f421dfb2b3fc61468aa6f464e032ac18cbae690458471266c7b4448892022770183d53b0e6fdfe1173d0cbfb68bb33863c758a834ce90549105e5256ffbb40a488445e9e1cd4dc72bf701e3cac8c8a1e55b64f0cf37f70b5db388f4171f94ee21f2af46476f7b80349bae571f978f82c6bab2a4c5f020fcb0f496e87f875065743d92771f2ba40d81d2f6adf345b2e5d5a3d585b512c0c538949a8745e8c786f7b86e7d08d7d13f28aadbbe70752e1dad914d1d4f172415fe88a01108fba8fc4f8770230965b7705d1a5415445a441a5eeb48c91525130e461c9b255bb9448892745018ad4e9249de95df06bc4e11b4afbd3a690451185b9722727a19f5c80d3c2ade28c2890ce447983acbbba0d9d0b66d03fc4c6241519d4a6c332ac5111491c0a29847a3d95910d25101fabf9e8ccadf09e696f6033c123b9995534cc04c5c17e6ef5a6426258d204c2196a0c5918e2c111d855d337082bc86921dd8cf90d65026dab63849e7134bf4a208820be4366d4c352cfccfd70d8506daca65b752d95d6895d2bb55e7d4b6b32c637253afeac6f3b8cdbf1894dcff20a7d3d20cd12a8bbfa344277631252eeb841f4686cdf34fdd49fa0c2eee21d51b6ceef4ab9431e4fcc47806f8dbafaad59e513712ee7645b87f027bda87651de6fdd6335948a5d4c579eccca836313fa83c13b400bf6310fbc52bdd2eed249a204ff0a92a27a92c05711cc0b0ef815208e8913dde1415de4e8248fade317b09d89fbf83deb405e509cacc51069d425118ce6f65973f46949e387a6f55ecef06e226bddeba677bf4c4993f2329e66434d082c6ba38a0594c219aa484e43d4c0aef76565a6093a90f2a34b56753f68b9c491f1ebfd42887d613208f91f46a7e26fd2644e1b967e657d77745c92740a21d4d9f2880be778e72cf0dd2ba0d7c1de6226f27c9a51f65324716d6391a7b898fa278971e397f9633fcf97d243c6d92cbb6f5781ac013ca86b436676c7fd9de75ea176e705a901e51d93e1918b0c5662a9bb668c134cc1c78611941fb038e9a4b021ded20111e31eda782243bf87a97716b88f69a9724779a539574c74f91063e6dcc696c170a31c9bfba2f147eeb2e01de377df293746a6e3aef0aea7a49e748589fda67cbfa595294c10d5e164cbe2cb76d5590267f15218f77ff3229f88a96174695065cd5b73a61dd42b0667330e1683e6449063c5b27baf38c75c3157df9ddd97fbc5047f8932e3c70821fc57ac77054d48c1f62e250630032c130e67b2bb1e5bb5c60ffc4a4fb4e0d6b895b8442170e44b9925af9e3adcff69dc88a0c1445b0ca04e45318bed5fd32d3fd7b844fea4d8b0ac43477852ca7ecc84593048f1264d905d213125a444cd48735d08bb0e3d0d70c544544189d102011964b841780e32c5fc686a389f7205c63f26e69fb52aa81a3153f22023015424b6b1098d380ebebbc092ded0a2d96ba36568894d33aa3b142308f63229cdbccae7ae2de7b23be0fe0596d7097f27e7fa2712ebdad7c04c4b86ddf89443003e895501ebca42253639e6d631e8c5e2ae1f4d20f52d499ac061c7f19cc9238b2cccebb0b472ef44746bc21131ac020ccb54a831daee93f23b75e0c157cb13f2eb121768e844ecfb144b83446c11f65f3991d6c9acee66801ddc60a08a238c86489aff229d8482f8dbed913c1c661a3c10ed995ef7e32be1d14c6f633f0acd20667020f73e18e2fbd4eaf88372c8d586ef454fdeca6c9e4c9085c54cb57cb9fbc3f0d80fc2ae30b2c7b4121183ccfa37e3adbf462f5d8546c5e2f2a0aa01ed285b368db40e0d27d0e462e16412ae1045e8f5f1d274701b27aa750be2fcaf2a61b52e4f98cab1f974a2fa97cf6665214dc05ac5db070ddd4568126d3d9f2baec573a9a97e69a98f49b25b65ef32407cf5a4dd2bcff1b33a31f3c680e7c75d2248361498fc9b857e2eb4f55f6a9006405d379f9bd9f2be6c50121d509b0e81efbc6ecdb81ab3f93d2aa43c6d5dc58c3e0bca5f7ff487ff30ecae43239ce397687561a32b5b30631d42281557261fbe0bad665b2137277299dbec2cbb37d2058812e775223bc6192c0a2935beb14eb14e56dacdf0f9bf3ef71561f8dab051b0d86bf94bdc117b2f6ce5f6b447c1d499c34fc66b8bb689ed25f8903427026fc0962532c5dc63b981061df4acb054d37ba68b1cd5f59af4d01e6d653ae5d7e61a8c7f042fc6d26ce7211ccc87cd975857bc27aa4a2b8c4b024e3c9809c9b12e0bdf863f6b34eb879e9131dd0ef293c99cf3f8ef1645d65db72b8aa74ddb770ea06c14559a8d76ef4b4f7f282bcf6d4d10d882afb0cac12ee6f5690ddf40cf0509ed40690b57ac94d84ee128837b481ad806f774178953dac5cfd29a7411b876de1c26f2b3cbf986333503d5f59900421b88412cd5f5ec3f033324b049dbf8eb3ef80967b27d2538dbfc6914fc3c9934e069637dae375cf60e673f31ac9fb5ef251ada3f6437f057c844f340282a23ce73e94edc44307d114fd81ee59ee27f7f5bd7a1d2adedc88759fb01d916703bb1d19ca0245eeb909b07b7f189d6356acac8006e570efe84d6ef7de6f60499019650b39821a8adc22433c3568f1f964ec9b0b3e5984cfb12c2e52dd4641c6dc3471b7e1e9574a31759d52e4d995310a26925abf62c618de966cce309ec7d47b1d2a00c310be67b2eafaeb836aa87d55da39de1c0a1935aa6dbc4acdc3a03750597c64d4086a9f12a804633827b825d41d2f87efe3c57fd577f9ead25c536ca01f05eebf1094c0085bcdd2305a3b74833fc16603e8c5210e1b0320a828b5712fe2ef550503e0883e708ba134fe6f8f097b0353fc8c79b57aef1e0860784ce17e185f17be689ff188bf767c15327aea4ef65f7d3f17e8f3f1d0f6061d7880260718c5899d3ad968e6619dfcb9466f6bacde9db2e51c836dbe85f8ffd1e5b40ca122dfbbf7e0034e590cb9093f6cf25ac5bb7acae573163d491d9b290cc53d74173f56a5a7a46bce73ac6f58c4451911208868089f22c30d80f0ad0c7872306ff1cbccfe4e2fe489a86f7f30a78d7a8209eff3ffff82020375982789e779b2ad631c3658c514e590a90d7543f1e4fadbe16cb3586f87b47977e0c618718f1479e69917f2006e6042059d25469f38cfdba3c69b338f66e9665091cea08c9c16369e6bc4a8920bf275323064270db4b16e717904b5f21ce2a3fe19bbb5c874ab1b4c64f4bb0e92785daa97ba13f16d380c45f57c183d8b1026bf9f4a31ba59042fb8c09381fbec75642cec22a411f1401c765b8070a1fce9738bd88a209cb7e522ec36d51e98176343f2ad2843bf1e71565674385600a0d44634fe10118965bf889321b4f19205ad2334c7dc27350f82fc45f30c0fe063a885fc944126de9513f84d327bdeeb24a7e3c48519a805f083f32bf36e3793ef50392cda1045779b14a990c70d1706f22c329d1439433e29337e2193fc0fb6166473a0b4eb47747db9e534c33df92dcba91ab5b272038f5c2b4b23e7bd90526fccd3452aeac281620e2b675d3db1ae857b2bfd82a7a89039b171d4da4bc166be8d142115315aff0c0fa3c087bb8932d09ef187b1cf58ae14abc7dfb001eec14f58b0bad9b2450b06d6142bc60493bc9ef34f4c860b32adcb7fb0a2193512e295bc56a8e27e03b9949fbf617380704192ea9fd8c0f42925f01786f6fa0076448fa78da207c1506c6c4a44564e8e1421a3dcd3649e9d03cc8d5d7f9bc4013ce74759889347024199b343298903f8444b5945fe49bae11bade06d27784a51b130fc2d86817527ef329e17bf6b18ae5673981b041bff51ad9a8b5c16458718160273412baffa85df0f98750124a00115fcf17353fa886b80f0498287614f813565e7d0477fe93bdf0370b5796caa5191249f0b9df3760335d8571147add796d4ca97cdf58542f3c30b6cbda1ba192960926abf66b106ce274de900af89bd5bf22c5cea554c2839fc7e8fa6f18b8628f4ca73cbbb90a3c1f8417994b5d554e83536f4216a6beadd03fb3a235db3c0f1e2ec0e11eaf00595a080508112436c2098c0fd10705ea500d464bd44e8a6d9943a7a09b8f23d5b6a05a585f5edfb798db4872f569dd67329be4bc195a2116724f9f634c32a2a6561490fc0520d7af04efd50233ab8507da8eb9bd993a9e016a46b3163af53637213191a048105144d135505057f3f63715d3698e93a7dd6632cac18bb0adb630df375db9909eba0b32723d57690ea90ced8ee54c1550253d918902d500dfd542c6d4a73a9c9dc3512eb86ab2688967dd80a9ff3e441b8ba096725122ab82b9118469f6c42526823893a3a5f2a6c23e06f760e5c9d82782d12f59d93e6c9988e2b5b56555416d9ff67d0a8030efab4722a63452a63794129124b570f1ebc82e4041c10f6f05545bbc98c09fecc3ca62f1a69b84b44a57f4c95fa257853e97b6c6c18fa2fcede2f58739542a480e72699944922dec7125b0a1e37cda1baa00ed725d3640239f149d4d304659e8654213f3124a904bb12a0e76dda4c4143c81254b105015c4c40d2360835595bf38fb9b7fa9e89f494a0fe44aecb08a1dcd566a11e66e4a821520a0b67d38c1006fe553e765a9e52418f888d7d22598b807aa7466432a8f016a2896320fc01801901a5b98aeb2c4cf3e51e585299bc8f692de42124764f85eb5643d2bb3cde1e7b1b52a12b1c5a0622da2ea75ca1c3fc6621230eefa4c73104cbec0e9a002a78be067207849f4c45476ce6286f1763972e6438ec7ef47a0819053a520aeb82c8ab36f530983d8c0feccfc3890c98ab9b97b07c40990d404650bedb91bc289623f1d404ad94cab7000f59b47e61e7e7c42ba87c21f0fd091260381a043c80bd9c5b8c764efea62a0416d75a1c8d3d68e8acae253bae58d2168fef5366ca4d228302ff7ba29ceb961fb0dab466a1da7791427fb9090a7b5b540fab06b0d9204ccc018f6c889500abdc9c56d0d11f8dbefe1530811684a7ae4ba00636153e9caf23c11f4857bfb265492d807096c43e36aeec2ce1b657f33bd379e3da034287cc32a08920685a4e841132457fa56e7b86d098c8ee959875672599cb88fef73bc85e2a323c8d7da709130e6277958b8ff6c4377935d086ba1630ff5d72018623960413bf311443ad43582462a7b6e93e63a8c83d0b17aae3eace5e0e26283ea8769cfba6f06daadb7185329520b91976e94be2c4e17cd42d7bf5fa275826ca7f36aec18c4177e0799aa5745d8a476a5f4dcbe4e351035ced19b2016b8417551c5d5469c83047c34edc333e5893f1c60a57ba7f589022b948f7b4c028406aa6466023f2492b6b9a8923580de30a22e30360eee80b4a41f9de0048edd5618069e2ca244861c9f8eb19e235f6fb1f5f5674aad1200bfd1cfc4ba8f449880f5f3d84986aad91b10395aabf7f93f9a1994392b3a4a4ceb0760a84a2b0aabd47f0894bd8a9798fb7249c63f78b8c566a0f724333db8f61309a56471aa5c89bb873cb281b74c7fe6ddd4da0c52bea344af6686603b20dec4488b394d51bf13630f5d294f6b82eeafda08c22af81d0bc9403676e406fa617118982ef7bbb7b0de0da9d00cd16e2fb51f1e11f502062ca8179ceee76cab9343eb28bf154061e9627932605a21eb0bfff278b0ccc185c06d0ddb171fdd6ea5adbef0826645f7d00b80fb611b05333c0a38e05e29eb34f8814acb8b8838d919c09e4c3f23f9adb2a1b63fa9302486f7b3e4cdd738146500ed58d829ac34d568a013e4d7d93863ebfde6d01f2cb3b194977b8d57328f496ddbabfd8954423ae2643adafa3d71faaf8caceb1fc8f92d4c49af4bf4d07fcd0b3ca60c3b048e43294f8bc148e29540ca6cefab34bc8e9e5ceea1b478929b32862175656810cb609ebb5ae1ef9112c7326c589a741114a3529aad0bf1538079989d760f9610f6a3d6939be08dcc4ffb52c88a8a7e08a223c7b56c7e19f6235c5ddf3ebf9c873d0a5986e01e0f6b9b0ce74e0030198adc33a5927fcb9d2b7519cece81324af80837dde6883df71a7ae5bdd0e47d34aab5f626f4909161131cb8680228f1b0bc2c8413defcef61a66bf6db1f7bc6bac3a5e402d615d63112e196590990ff7f803253bc8690d080ce53f7291df798cf0c5daa51998c7c782a3c806c4b3bb459ca1a1bbefc7fe45583de6c1439dd69cf78e421fea843cd436b27d1e820a8925ec358267cf6ce280ebffc46267d8ed1ef44ae0b6d62fe80a84fe6c40b4af176702cc8a9b64c4741378dd876983dc9abd0dcdf188b9c560131822ba4b97396b13366cc6da742827058d5e45ee2ad71bd47df96c723d0ab46a4780aa57f292187a8db12fd0827115b3e0f0eaa81a9af0c5fe07be8d1747fc7724897e08b2d8b68ffda3f0270ae4280ea0aca6ca6e539d1b60d85277beb11787b5194c7f0ca6e9c706cfd8d242832e7724f7c09f1434bfae0bbc068887ef2047b0ae3285e8cdc65085ce333fcca7e9d38e24c9b1282ee1784a68395af0be7d081a0d5b7a6cc8b796a7ea7587e3e030c491dfb4071b7c225be8fb3de918daac1026a3a01b67d2728510ca79b2a78ddf76120cab6aa10f491a3d409f5e859a9d26f0dcc29ae561c04420283f0f58ad9d45f62fdeff089fe07c0f26c896b6ce73701f8c2ae6614dff15cfe1494b8a5c0fc3afbf98dff3596f687338d0d38f0b6c10423dd293700067fe3ac9984ec69ea2a0ddbf203cb305ade87b58ae6b88fb1ac0de0089de975f757959483dab8e28703b9b62dc0ae2de979967460381c3903d8e0151e9265e8b0ae6af1d538c1dccb0d1dc156cbe4eca93a7452c0f2bedf72a497a28ddd821f47762b3a67f718a809935fdeda52d7ee615f6770b3bf5d3916e02c8af843647b7a3cad475c753f9e8b2aaabf9341dfe11319610f6d761b27086c3172b44923fc4b751b2d3bd43bd009fd00c94596d5f47f9f2b202f51b3f7bb3d5c8877677d4ee13290d5f9f84f9ff007228f7280ca201b621000c0dd0255ed4ebea9824661dae1ce65cbd8dc44de63e9001698a6b8671ac983e584ffd5b841063a02e50ab2f27258cf38657230bb47f24064e9c92ed367789fa65c429331c44f69433791317ee06e337e7bb64b776839ba6870d8ea07fe14f8d19c9e096103f8d2eea3d59316be8c5d9c9c9aa81e8695d6fc235a791a52534e0d8abd375f6b09eb05d687af249339efda42ebc8c7c2a1ff73d606a8b70d4b3ee56f4283a1c366e4221ab3895d50c7b1194c8a1c875c141338706e6503885cfa1d5224c703ddcb978121bb484d31c77e6afe2976f18eb6b7b7f0f3efff8ee857875027d397bf57f18066ea7e139ea9f01f69cfc9fc47042362d98cf9732b5f3baad800acd327bdd4d9a9ef6b532313bf79d7dfa58a67af47a8e3e9a69b6cdb260130aa7abc7f9396089e90ba2ad192d0fcd85b43b355f37e673487cb86413b2ea5e5c75c2936646e447ec309038311e0c596fd3061ccd020efcc4c30c3960b46439330f0f0f0f0f0f0f8f70f8b7565bdb03ee20934c92e9e147f1d245619229a5945212bb83778133139fce4c7c3a33076413d2089507d30c850c780cf58c08428c118972c6dca183fe35b52a22248afb49724c257ed6637e4421e6f556eec96ceabb188e2809a5ace46e491abf3346230a4aac6fd2a3ba4935aa85188c288adab8a3c93b455abdf8a28b188b28071dfe79534e6e18da156228a2941aa3fee14fd48af9c18696885208592a83c728dab475878882c4b80ff24bbe3b4421d967ae5eb10fd9ad218a6377b759d36cf5ce8e518842cea536f69a5b36fe4988929bfa134ae7f3d4d688106310c5fa484284d88e26454783104310e5d53be9c143c3d7c78128e9c9a2bf6fa35fe40544b176824eaa312b3926ff50b89171743ef65236078165086ce0861731fc508cef1ea16943a4dcdd84187d28c4ad91ebd892366748f3a1a07b25d7b8c8892b499931f6502c1562ceff23774eaacc187a28ef8ece5e6a657aad021e1e1e1e57841879288820278f8c881074e98831f050d8502341a99a33b916a21362dca11827bb857291b91d9e3b3b14925528695afbf1cdbeab432982e4af2b11bea343f94fdf7812fe494497dccda13c9ede7e62904962d99d1c4a211fe2fbd64799a87771280951179db8be23bf854379424e3dfa9a3373d262bca13c325f871b1513d4e4b8a1dceb12366fa7c8e99a21b0811b5cc46843397c7a9226657c2bdb0fb68f1c23e8a223c086823e7b33fd1fd395c6aca1983b46689066f27e4362a8a19c3f8dae52fd2842cc31d2500cea623c64084fa1d6186828a7deb3b84dbab9678c3394c3a6c6a4d73f1dc78b6186d26c98bbd0a1ba67c38b801865284bfa8cf760a7244810190a32318a8836bae7496328c818e4830e5aca4bd5622885e9e7d19733971d1286629c18cf5472dc59190c05c931c44fd1ece8aa7ea1b46143187b4f62e4c40b25f78fcbf3fc4fb666174aa3cb72e387784a963006174af739be272db2ada72621c6164abe13fbf6b362442a6368a17c99f5438716a5a1f1f0d03b428c2c144e95cea9cd3a3ffcd55b888185926e4932d793ef9a692cc4b84239e9483ac5698e8cd473a4156258a17c13d663d4d161bdf32ac4a84231996579e951fb3a4194420c2a94d3e44a55f34a3fdfa006e013624ca12c4226b532326fb6e6522846eb931ccc2cfe7e8d427993cca26eef2d3ba62a60e30a1b59f893c0acdb10030aa54cd95ee2396ee77c7810e309650fa9329dbbc6d135760e6238a1d4a337e9c92fdd3e668c261493502d179d5b03210613ca22d2e7e7bcd151632fa1205feb647bbe9fcb4f09852863bea3bdc5546e9250528941ea79bdbc9d0909c54ec23a84f8e549bb7f84821e19becec77f7ba446288c9a768dcee4553b17a1bca7d52bd26396dc1c22946a2c83e7e75252366708a5cda1acfc62468724211437245f46d1783ae62b08053929849a204440288910dfcc9f1bfbd57e50b4efd231e3cb4ffad207c5cd786f65192272fb1e145c3769ad4f92070519f5c3c2cf74bf593b2866b95bdadc67df4c7550561db715ada35effe5a01c3b9ab8dd0b1332a9382824db106a6290a5f5ae1b94733d727af5a023a9db06e57e0993226ec7a4eed4a01cb47308da93b4874b68507213ca83d49c4493b26750ee8a897124e9204ac9322829ad53a547e6f4a6ce181482c99128a3a93b7b0706c53cda9e3e925e8dddbda0bc231a3966d358a1635c50102d1a3793fcf565b605655bd711e1b23d92ca62b0a0b8f5a9c64f9912b76e15c5b9c91d4437574531c56eacf4780c2b496580918a6208e9fd3a95b9c62494372c51518c19ff8f15d1e1c3b337609cc224b48e9c12a74d861f6c1e1e770bc314e78c7afece182dad4ae1e8967e91d35164e490421bdd9a1bd2a6499b7681c38b0478787481c30bc410d8c08d15c0184549e6cd416804f12e337fb079a8175f74014314453499e856166e13ecabb4c9f1999d0d26e31f6c444351d4f7dcf1096aa2e77eb05d610347f2f040127878787864156080a2f8a21a4fc4545ff3f944f15e76535a998e79c813c5fce9b1fadc377808e944c92e469ad0f1d964668413e549a223243331326ef2f0f0f048929b286fea8aa44d4cfa468de60086260a41771232bca7b81d4f268a713e08b5eba8a79dc744b1939fbc92556f06302e511a393e23235fe60acd1225cd2ca552664768d89528d7ccfd791aa57af34489d2c8d31b3e5134bbc83d3c9c8b134ca218f4dd8e7dba90ff9e248a298212ba4145e7d52412c5ed244de717fd41240f12e531ad96b66d1f6cd34794c54fe8b1f23acd12ce912349e0e171c372743aa218db71a306b1261a7e23caa94d8d99ceb52860e30a1b35011b12c0c2066fd14508b4d823c0604441894daaef4ae4e81f25028c45143d66be75ab3482ba3d3c3c3cfa867529a224e1457ca365c46b51220a72b19ed5c3499b3c414439c6d3fea46ade13a9439476c5e4de4a84958f1ba274bf793ce38a66864e218a2bb93a372e4288d2687bfdf910724ef60ea2349bc76f3e9a8c102288727ca41a9d438eb1340351522a3f71a44b90393f4014db642a25fc4b4efeee0fe5b3ae8cbfd1fb649b1f5239b54d3b178fd4b6aeab27f1f732cef95c7d28ffcc766de9399f60f2a1a4279cd0213b36dfbb0f365482341b592ce0bb3841165e60c0043810e0e181de04384ec300c61e8af6a773a632657d23d643318eacc6d8ed47acb40930f2507cf911db6832e2988687929e33996f1fef31c356028c3b1447299dd79c4abd0418762884dfa423759c559b9827c0a84379757d5406a1d566731e1e5876c3083201061d8aa9537c7efb2748ce56ef00c61c0af96484f091eb6cbe6f1dc09043313deb8f0893f9c20b2301720318712824292e417eeea4911d8183f32a9ec6736fe84298be7ee44e63b51b9c53b23f2b2b2e426c43232ebfac56e49b8a0d06e1a7dcdc6df288fc1a889f44658abc5135a4549fa44d2268c9c7a4a1943c31cbf988d654d1a0a59526bdb64d5fe719d0b895f63b69443b66a8da44d27d8b4d1493a4594a990e32b879c73432048c32944f4850e12383bb98d20930c85038db74a36b32ea44ea830dc71736b2c0c28687c791c0c3c3ec861d090ec6184a9d3c9685e5e8f841c8c3c3c383dcb00d819b8004018618cac9639f0717ad293d1f8692e6cb7c26935811a2064331c8983a6c56fe42d925840f93e536869c7aa12437378f767df89fbc0be5fef9df52ea4cc4575c30e4aa42cc2ed3e326ab487c8be0e7a533b22d943c647a7dce255b6f7eb0f105d81200430ba591d6fafaa3f3eff437b8c0a1851e8c2c144c29ddb89f74cc5bf607df28fbc20b1c391206160a9ee33df3e7fb0a6539a979746de285ae5628a6fff86a89137310c2a842a95cf4c84bce8d4987418582e9b8ef3b3d7dabf929943ec8bf0f3a3db25da9011852289b9cad97e01b4d72260a853c13439ed824ebff41a1984eeec9c826c6bbb72714ab355b878cfb97383fd8b8d0e28639619b90b233636c6444ee52366af098eb5c3e5d309a50966866e9a1de269512130a515fa2c98f98a3a56909e5103d9f483226fb18fb075bfb7751010f0f4625147e35e75e35d3f53fb35066018c241473de5f4af68c5962e483eda04d1848287b6d8dc79d68ad1a465ee430af8517593000c6110a56d2945a8941a48963036018a158faf762baa341ed308a5090f923735d42f4ec11184428accce9ee8b8eceaf6c7c803184924cd293700f5bff9f7978dc00040c21942686905d5379fd23023c3cca70002308255326fc36363d6cec1004030865ff907bfdd3e603ed06b103e307859c61926ae9e88651ca020b1b1e2503183e28ae660f613529599bd45be4f0e2006bcec50972240160f4a0fc95a7fa3ac733d3a60fb62b60f0a0683a5fb4e374b09d2009018c1d94deb3a6a88c1513c402010c1d14528579e9eec963a2f9605b7b008c1c1456d75347bb784f597db02183630b0f8f2ffe031e1e36b258c00dbb8087c7321e01060e4abab2833699ad32dd7d839297d9759e30df9a91f7620439706ce137c8dde8620437408003c7167c36b258808d09d8b8c2061636b2c0c206166d8342d0264ffde3c73fc71f6c36108fc04608b4f8c8e141021b874760a37203306a505e4fedd5b81ea26db185f1e442016730685008329cd2203c472b8f7b2c81c0066e9000c60ccab963ce31a9759af5ec07dba3408b1cd6306450486fd7b1bdf95e675301728980118392e92c29528a796aba3d3c3c3cd26e982560c0a0e06d3af59ceaac69a30f362f0c6300e30505b70f111d3196c64ffa60232e80e182526cce1e239ed492e57fb0ddb8d1f702182d2895668cf7c924993091ba0f182c2887da33b96cff0fa6dfe2863f096ea03625b68a72ec4fccf30b4d76ba0fb64738b8407b8403024900a08a425e11aa76ddfa4d8937707ca156960af3482e00808aa2b69ab0b4b9106bff83d70e8ec08687075a1400708ab224dd93ba413b780ad9c86201363c3c96041e1e1e374ef085165e982ecc6ed892e03a0b00304549cba9565cf597588b011ec4d0d812002845c9e44aec7572fe6c9a01155080036c5c6183019d5f00002934afcf54195309f7b511444499d0185bcaea0f360550c0c679f145171800c028ca13355e6295c868498ba21ce4a9911832a44e7a0480509452eecf88d322ca2177e6980969430e39459454272553c696f86f4a44b14e85e6fe4d21470711c5d03cda32b7861c0f51921363fe786986289ca6df27516662e9595188c2b947f2fba83bea8408510a31febe49ef22446f1005d3701e4fd6c66e491244217a10b7495b64ae6703510aad3e417c470d9f5340944e6d47bb1695ea63ffa1b45935d5c9ae6935d30fdae48cd58a68114e72855a51ae514d5e7d2846d053679731c6904f7c28e638a96bbf9abbe7b487a24f50a261dc4bfe4a7a28e55db5db46cdd2f5e7a1983edfb4ea6c4811793c24337c161945fe3b94626446d1a2193d75901d0ad25f93f4afeaccbe0e2521a446ea50fa93e474289f69da0729222671e750d032b1439818f4c7cde5509cd15127d5378918c7a1a0dc94a89f8d1ae37ae0503e192cc3c9f02185f40d653fdf181dbba22c346e28994ed754794a88a06e432944564c3fe6c974361b0a62927c8cfb2dfdfe1a0a3a734f34dd1e21cd6a280991555526689928a6a124634a532584e6f039828672c618443b643424a13d43c9636f83168f11436286723cebac2169cde8b00ce5a054447e49d5e12f2543d93ce2c8befeb519730cc5133ba21b6944de1cc550900fea494d8beb0685a128397dd2be4ad6b801433993a667d9bc2782f40b053da9322a3699bccf0bc531a12f527447b0ecba504e92ab3d924e7b1917e7d8a28b1068b1022bb8502ebd6136f283fe8b720b45dd1125baa49afdc936b2580081c0066e786185164aeb91846a8b9c9d4aa93db0220b857dcfa71a63b22a39e102470ef314f0f0f0f020374c150b45abeada20ccd593daaf5070bf9adfd37939236285a2ac7b9ebc72726ed32a147fc3c710e24d9a0ac5fcce9a27274912a4350524c94c9adc91c3dbb42226212275075fd34e1a2994b5b4cb7b76a7eca02814347d2ebc433819265028a6f04f9f57366d6c4f28dd7c969ee5a597927eb0165d981b08810ddcf0b0c20987ecbe2975f3a449b748ea563481d3a67492dcf863fa0fb60fe0d8028d154c4844f418216e661a9e0f36f48c038bb762097d87a769bba978699b68cc25d5749f4e763ff0011c58748103021e1e1fc0b185a2175f74618512cabe9b6e26f34b6e980dac484251822a2bddb3115973be6127b00209454fa1d33df78f106bea0eac3842694dbef8886c2a374a1a095618a11c67b2bae95c114b65880fac284239ef64d46c1e5b26ac4cb08208051dba3faf8ca5fcdafa61c5100a26448b656f0e3a2587dcb04208c5941ff1639fc4306d3f7a015604a1783a09714a866549498eb33d2b806086c9d5574ad092a82ab29a1baeef24d8a72fe0e1e1e151022b7e500c3234e70f32c75495f141b14a970e724cdc838266a92e1d5459b08207850f2bae9f6f2589a464c50e0af3da9a9bbdda3f8facd041314f361126e877cb6c3460450e4a1ee7c7d7d645c417e1a0a04f750ca9661ad4c9adb881f121df6d5b32ef69b1fa124ff2978e55248903acb041414e18e541ee89749fb6a20685187e737246abaf52594183c2ace8b4bad1f9c54e332875aa13f7f967b364c913ac9041c9a4c9dd97acda71aa153128b78f10628257b564b1ad8041b9732ef5dd535e9ee88b1c384060c50b4ad66ea62525aa2921932058e1828258061b7596613bb539cc1657b410ac6841396fced24ad8d7cd790223010f0f0f8f1b467260050bcae9f63b46577d94853ed8fc91dd16062d0b19ab287ff2e4e9ab25d6c9b42aca193cdc6dbe9f8ac2c94e1e519fe13eb70c5414ededc429cfe2eded9ea2b09df5b79ece774353146d2e3688a0428fbe50294a9e72c24d8711abf948513a2de13f3a949dfad4284aa262f171cfeacc936488a224d663d2a484d02f1b222314c5abfcf90b59a7fe04456236d1b423da97687a7934e1319fe6d767517da2203a4a3723c6d68ce6079b17386e7cf11f48fbe06204c413c81cb54f6f940f59199d505bd3e254b636269a4ddac8a15b217407137b218313e5be187f93c93f9eba878787e7d02204b99b28deeeff4eba18138f7eb0dd582c0e80800860b180bdb1869a286491971e4df5970cfa0f3613fcc7f50d0f19992887349947dfaa75f2b63151d0259250bd939488eb797890bd4449a4b9cc13e91ec2429628c7099ddc329d5989f26cc89fa7123e8ae632931225a5937df49dcd937ccd4914bd94ceaeda49ef11cd9444414e3291747db496a4894429739dbd7e65127a960c489423c75ca365f2c496e6045e7cc145c94714e497d050277ba5fb7f91830b1c57e4a6238a75275286142d5ad3800a743102f40940dfc508d0232ac86844d14bc96ed40bfd1c39238a27398eae7afa7dce633541c622ca1e45c7943fc1c3b277810c451424e9cfdf9cd4e61c3e588928a76ecbd4345666ddaa5de00a198828767e4fe2eb22737b85707c102ec83844d13f8398d07899cf220b810ddc40320c51de0f9f344fcef35f222dac1085f975dfbafa7c775f8d04374c8d044888d2042592930ca5f407b9d0e2e3c6a3408b1c8328c788494dd387e049293fd8b60032045150eb9b9384876504a2245b2163d2ea7934e65d9c200b820419802866bd1fd39addb6dcf6f090828c3f94a3fa2811ae73af040ddae2b5508087478e75820c3f14ac5b62fcd65c127e93c009beb86127f8e28e20a30fe54866e11e6b46a98dcae04371b7337592f35b33a38c3d94a3ab864de7a6935e891e0ad1d43acf9c4ebaba923c94435b84a4c2844cdd900c3c1462d9e87cbab46c7d2de30e04b175491549cdb5b223ef68f01d2183cc2c7d21c30e259dbc59a547c61b5d9810b011c200197528678ef941e48f4fad790732e8503899f91a37ea24994e73288beeb978c98bb8fc722876f81c9fc9d7f47714876250b91d4f7c4647ebc0a174d247539c0e22e296f986a28874a54593667a364521c30da5ce93fea5b72643127a097878d88d94d1866210d93a27b9bcd950f44a7fffd4db7395594349e797758ef0204bd66a2809b790df263236694d4341ab454395082dbb5603b020030d85a06bd64ac8928df57eb049c0c3e3b7381e1eed011967288e3e79fa2a21cbb96c06ed35c2aa44934bb91749ef1127bf8437cfb175808c32148492b89a26722e3b9d0ca50d75ad3a594efcaa38b890318692955cb33ad341fcab62284e7c0df390374d4d2e0c85686295fb6f159e7f309443935f8b5223f79e2f14bd4247321bada96390170aa62b4f5b787b45ee74a1b4a64f526895b950904162b4d754aab6235bd8ee6a2ebb5c246bad7cfa4855539e164a95f16b32a9df4c4a2a230b250da77ef3e7ce1ea1c9c042497f77b2ebe049ab475728ebc91859b459f5664a86150a41041d2b9ea56391633eaee022838c2a9473c78cc4ea1ce77a4bc0c383110d32a850d29ece3ba6d2ade3251953287a9e92d1203d2895411cc89042a977ad64fedb5d0d1a089c166444a1a4a26e9d3522626290018562ec681bd1763a6a621b596061c30b329e509217935c2a6d67b41903194e28b797d6ae8de9e2f596d184924cda2ca74d989a976530a130a7848c603aac595c5990b184e267cc6cd6a61721f44a286a8c689f63a4889c3c096513dbb893cf35ce6c16c84042396c354b7533ef6f7008328e504e2225fc6acb6d08690f0f3c194628a6289d35669a363d932214c33e8b97963c4b976510a124439a577cf8c6c6ac06640ca1244fdb356988fe216c6408a1ec31f8c9adea1051978c20681d926babdec546d2c56fbedbdb5b492a823280504acdb4a17e269ea6e607851d19fa733ad121449c00193e28041dbefe749e8ca17fb465372c4f460f0a593ed74afd05820c1e14bc64ac0ab5b6e6e1df0e8ade619d426685861751860e0aaf313eee9da717a583282307e5de5c7f5aac43f41854820c1c94267d50fe655a555df6f0c0ee818c1b945747fd2f4d988890b741697f6f62681221ead3352886d121947e10b11137193428798c41b6ffc9eeed2f6306c549fe31c656fb671765c8a0685d2763bc1bf9fda18c1894ce949a9375a2f4852f0306c53e1d7b3307a99a9396f182c29b75e8a431a47f8c325c50fe5417ea27bf66131a192d28f9a8c5a7897476322e8305c5aa8c11224cdcf5d4afa2a0cbf3637acf149f455514cf4fbe6c7276877fa928a412f2b46cda926f1f2a4aa6d3e6942431b7ee3e45497a04efdef78d5d3aa6288b38d9d9932cf1b739a528494f969b3e4d501b4951ce677243cef8ef719251947a4563f4ec1bc25e268a824cd4a03ccb36237942514edd52a14fe6ed281150146ec6ba72efd7c38b3e5192ec1a3fe81e19277b3c519a2093788bf0247f56274afde94b4c35ac7ea83941d49af35c2533c44d145b7495d25dde5ed5216aa220527bc6132131d6e811335114afeadb6c93569d47c444c9357b578712b2614288972868d1fe6a3afea9e920a225ca794b89ba881f25c346ac44e97c5774d0933dabe62052a298bee2256caaf03f1531c6248a2379cb63ce5ed9dc23c69044c97e5d3bf327ade7672a0954463da3e844a21043ec1c6e2707653e42a2941be26690db22e1738f28e6fc8bf54c92ec75479474503a4c7cd70dfeb14694a37a14253fd746dcc788720921348cee1c24e72ca23442b28d524a9adea829a2a0c53ec56b8ed90e25a2bcd1caedaa7ff2adad45e202c71536b2c0c24609816740ef0617341051fedcff12b792f292a2718852674c1173ba9b0cb96818a2a8314689a60d69f64c857ea05188926e51cfb9f2b89adf1b84280993314f12fad5f4ae3c3cd01844c93ef2ef997c75c7310791030d411494d6c42851d3964e76204a27fec2f4de263da24b37d000442944b2b5970c621b68fca1a4d45778d01c42889d345b030d3f947fd3c8f43d1f21dc7e8273e36e8b63b8b040571a68f4a1f839b24aec27dec90c7a375d54e004ef803fd0e083418288dfc97934fec16762a0b18782300d420719d2c9d0411f6c25305e1011d0d04351837e9e9bd0ee12d98f3b16d0c84341aea349fdf9f1cc130fe5ac3166b0d5d12983e90ea58f11469f08d1db9f1b81861d4a3f61d29f3a7ddb73eb50aad91795f6a254c81451010d3a9474cacc9a3e8625a031076389fe1ccd4a82a95fe0c0e1050d399493721595f128373a12072bece4ead44a26c799897ad352d12197ec702887f8642a366afe74f7190968bca190749a98aca362274c68b8a120f1fd84e8d5dfce196da1c587977d41a30da54f6b132ecc4fbc8e68b0a118d35fa8cdcee9dd451a6b28e6986f2e1f1d41086ee41768a8a1a0564c8df6141faa836ee43065390eb0051a6928989614322222a40ed30a34d050d8f430e5a393afb5e6832d04cf55a0718682c813e974aab4560d7db099a120e2e4141626c483cb1f4c051a652858de450eb12db22f7a51300a34c8502c93e14cca7dd796011a6328dd07b5fbaade156e124331f8cef587a05733fb612807d349e9a8329e948c83a19cb2a16d3ee6cbd0f9170aa9cf5b44b8c6bfd85e286b3caf4f99d2c377d285b298ea387a434822e772a1bc1265946d5cd3f9e716ca7924ccb8e8c954496aa1a03ee6a74dfde9641cb3501225466388bbeb7e23160aa732c731efd59cb47805e65bbed4225d9d7704f3f620da639b464dff83ad3d3cbcf81c1e1e8fbcf8551a5628d66a741d19d1977f15ca1f44e7bf9ff8f752a1249b594d9c8eb935328572705ff990f4a7cdf049a198438699953c22ae1f8562f694a7acbe74e25cafd68579c057e014021bb861001a50286618edfc23c93676f3c1e6c517396ea0efc2780e625e7c0e14008d27142d763dae27d94932c8c3c3c3e38611cb517aa0e18462cd79accc1ab2c9956834a1244b67519169573d321a4c308fa2b1846292c16b439c0c42899786128a37efa54b44bca7a492501421479388793647396920a19c74751e11d93fbb33093c81c6110aa943849ddcde94193742494c5ef58b9c25435244a0518452957d8cfab6bd49888950487a94fc6dceb90be5108ab1ef2cb28567df0f56106808a1b0eab69bc4e6ecebf80a1b57903d018d20945673a6dc4eed49e90f84c2e6db9c84888ecb8cfea090431e9dc466f770caa3e18392eeaba798371be9168d1e94c24d567a8c591d56e741b14c445bbb93f123da0e0afac3cdb43337452b1a3a28c8172b6d2aba74ca7c0e4a22e790547bfc78d93b0e4aa772b246d21362a77b836298d12e31f78720223628483361eabe42471d6b50505283c851738f8cb9a441e9f63c97a9bc9124c119945bef465676a9f7df68c8a0a49f33da46472306459564237692a40183920ede41c8f84fa26394c60bca217c8f1e11c9e426130d179464a8f40c32b8ced56c3eae01345a50b60cd96353e8950899060b4a2639e42c3a6152ff386315251b932c177f1a837f335451f2cc5c3a4cb2481ac15414729ca46979ef0c54143ccd295733f9ec5933e314a51f992be2e7b329ca23cebe45fdb7e7d7f9c508baf0284549ab7be4b4119a744e3ed86ef08da00b2e1ae0058e1c5e8ce08a9e410a84edde5a7ef99a9c63c6282e9bd8317266355623b1e4684d4926d641f92e8ae2ff77f0971c5945726684a22032a9fff86bbda5f8c1b68521c16f61b408010e2e4eb0050e09fc2b809c026680a298af47c908e97b239a3e51ec115727b54c7f758c27ca5ee766ca73aa6caf3b5194cf1b94ccb229d4887c702a800236ca3851103ac5debe7c9b287aabbcc648a6b79ef4c18666238b05fc270f0f0f0f4d1c5f13b4ed555bc4dabb0bccc84421449f8f6f624b3b8289725a55cfc88ce719fc4b942a2db6637ce81349648972c81c729697afd0ce54a2281a24a73b55197e5b4a9443ade72434a8fee973128570eb1167463346d724514e2154f2c9be171f2b12c5917855422d746dab0f360550c0c60c4898c78c479887076638a2d8d9d1e5f4aa57c8a71145bbd7fa4995f90c4694f557f38d74532239b80b810ddcb831631125b1f928423f7bb61429a22cbff1266c189df32811051d493e9a3ca7ee1d1125716b77a76a278a7c0e51d2ee605a2fe2cdeca52198618892cc7822044f79f93c0730a3104511aa2dd3fa8c507f13621325e28cc8f9735e7cd1c58c41944c27684d5252411494f2e8211e16ba934d0ecc084469afb2cb3e9a4e917f4094e5f54c88fbe8a654f88762084aa48790976bdfe40c3f7460461fca9ee5a1ec6365526ac4879270cbdc95cb1c2f7d0fe54fa6474e3bc6ead1e8a1904c5684f8b7b9a1dd3c14a3a7bc2c254f9e30e1a1fca14d4c2ccda6f7bd43692b4c987b68d172a51d0a1b9aef4747578782ce92eba3c7641b4336930ee5f81d1b849ed1df3b67cea1a054c74f9dc543e5e97228c72063734825319c8571288cf05ff7a041d3f5824379cfb483a6eebca11c39a57ed0419c9b8add4076719bab4e15f3add6fc8ca0e9cb456d28e6f22ca3db45aafc8ac886c2d59c981834b48672d0b49527c9d3658ca8a17c1bb33ad3c47ed9740933d25092ebd9a73327e204fd0933d050f41cf64d67bd29bd9a33147da2ba46f1183394734ed6d93f67e25e5d8692e7c95624f150329564288e76fbf5c77a868e6328e92a1d9e4e492deb5b0cc5170d51538a140de787a1dcd5f579c2568bc90e0c05cb2ca57627bc3409b160c617cad6694ff35327ebc76778a158f23a363655c5d538a30bc5dcf871693a6453ca33830bc518d9bce4a76aae13cfd84229f3b9cac7dd2b6d3a2d942e3bac640cb2a1b59e91858288c964b6659deaeca21958207f483567e78c2b9463526af647a9a713eb0e6658a1a0bb3decc94c652f49a78319552876b697509373d850ef1d150aa76be37788105423a9bd30630a254d291ff5c3f687a433430a2569326d0e22e584577d46148a5184ba0e91b02ff1c31c8319502868b01019a14acf44c97c51012e706811023741cf78424988a096d7e2e761224e2865dddbe9dd794613ca26aa43d409b509339850bcc9ee97b1f737288d003396507ecf6f21438ceb1055f1f0a8c10c251483dd8f4e63ada3634a425193babbee0e1eba44482848b40bfd9a92edc33d42d1347df9660f9597a311aeacb7972f0b6d75ab0cf1a3196359c411212a4249b4488f924baf6e4544285967bc0e21f70739fe8c2114448eb6fdd888bed01142c14743f4f61c36ff638250bcefd05acb20ae1d0142d9fb3264ace4f733f707c5ce92a383ceda9e62f9a0a4632a6dd5255f33fd3d285e767f0ec232c6cb8c07e53452fc5fd4ba636c7650ecb817b1aeec36b2a583c2c830a9328b58a93ecdc84132666ef2aa11b53ba20479b322d3f3eaed8a337050cea8fee6a97d5542e706a5cc5bf35cd57e67950d0a136d3329cd213723dd9b51839292eb6baa766b44bb1934286c0a931131b9f989ec0c8a3947935a9d497a9238430685ef1467e9412666c76350ecee33b591b4e9bb6c060c8a7a6ff56e1a34e305a5f020cdff63762b3f5d707585b5a798987ca8461031e9a7c8df8c1694e44ed8398d1aca27e40b2e9e04a5120733585092699eca5a3c48f0dd04ffc5084240ea20b0811b11b062150525631cf16983288f2755944ef6bdaedceabf4ea92899d26e6b429c864e122aca35cabf3ecd74da954e51bc73ab519994f0f8235314648d90f691366e07a152943be7d48e1a7d44e72052144fa7d15f93ab67b28fa2bc21c5e727a53995eaa22887d8a5c1d4e4f8913fa12808757222b87e4cba73405190e7e31b77f389828f381163dc43d3359e2895ea4938d1a95675270ab947aa67bad11392cd89728c3173d61b49af994d143484867b2bf7bcb326ca72625b448e19d342928972eade8af4ac4825c744d9465ffabbfb6cd2e14b94d57e643c253f899f2c510821b5dbd6d7c6e8a944215c4d9279db22f5b99428e76b49eadffee2fb244abe27c5732c8bb0a94aa230794b8e0c1a94ab261205bb1369e1b93cc72c244a19797d44f44f8a341f51badafd11f254ac7a1c510ec9331f73e475a81b518ad8f969b4c35c97c888626bcef4f16ec3011bb821801a94c849ac637af7d3885712e58cb14476f9abfcd02251eca826b399c48350590d4894e44cd68a1cdcb4dbaaf188b2d7f7d806251e328e66c411a5708f10e53c6f64fd1b51dad49a21e7e5d5de8811c50ef5a44324ff7c1a526311854d1937a68cae9a6f1551d2b03d3ae6faa11e52231185d169d733e2d4400d4414837910d2dd3c06b5b90fb69c408d4314e275149bf92892cd1a86308f1a8528e91c621613b9f1b6f0500114b0518310586310855711f7fd2baa2188d2c611df39de4d87326b04a278b9a235678e0acd692dd4004479339388b48f215c8afe500c4284742a5f7195413f942c3643dedc329ad0d7e843f9ef356f48b5269490d5e043295564ead9d17342ec3d14c34feca474e97804891e4aed56224a88172dc9cd43e17a4c7b0a8beca7492c5e0b2fb2f8a2061e0aaa1be17367364fc2740772758a282552c452b61d4a1eaf41a7b7923313d6e19c9711f744a40979a343a93ba4f8f71453223387429620329856497622e483ed0438bcf822c723c6e2e450ccf72975a429d597bd09b4481d87820c32efdc631039c7180e253551924c594942270135de50cce527333269b52c8d1b0a1ebe7962f64affbef48a1a6dd04cc4a3482ba1e3cb6c288b8cd533a6336792d31aca79ec7bc48c9898268cb6c071834d0235d470b684978f899fb3a64d8d3494539357dc8884bc7a81e30bff2e7270a145046aa0012d65adae41cde890730627e9d85a67868250d1efea64ed169b8f1a65b066dc44ffa95d8d3719ac4f539ebb4e9ff683cdc6500c5aebcd4e04cd93af188a219d6dca595b44c3f0e9f41b2b7362c050d458f3a4e34779b7bf5052d7b825e17477b0d00b25c9bbb55ab17119de592ea04617cac134e68569d0957773a19894f49451a273a70da8b185a2adc81231d66b86926ba19cf77386bb5221caee2c14948ce874fe9a83668a8572f831539f3e6b3015b94241930c72acaabd3f89ac50ce1b42784c274734e8508d2a149352554addab482cad17386e24036a50a118827637d9313792b33354408d291445db4dd4b73ba98be0cf46160be822045848a146148a273f56fccdfbc1e6e1a1aa861a5028862dc9d1f754e9ce13cc428d271455ec54fa86fe9c6459c6831a4e2886164dad0bf713e105a046134aa1bdf94dfdaa8ccc9850fc09df21e63c5167234b2899982429594ef2455009e5cd9a5423f6bb45a6fec38dd7076a24a12482d6cf5fd7c9a3ad1a48484b522b22e418939c23581e1bf74ff297dc088c4493d871c2d4a8ccaaa046116ed3d68a2dc96d5b6b117b2669e61249c8765810eb1a442886fd2023d1461f6c5e7c414ee0451611a000da428b1184a0c6100ad27bd46aa4db0d791242498fd05b6bea209442624851e29329f312108a1d4f9ad079e4c63ffb07c5348d1942a6be968ef8a01c23a36ff09389e2e941d1d43369999ac9ca9007e51f1163fcbd26f9f6eda0206fe5224b294b194d0785989e73927b224a3c39e84f88f8d78ea91a3828b9e670d2fd93ca5c558d1b6c5a2b31235cbd6884f94e933135ebf9c1a622281278d7628b0a7878741102f7f03800005a50c306e6f1356a503ef5d173b00e226fe63568508ca6329eecbb2e95f91a3328990acdef49ad52c6af21837248d6f66aa7b522bd356250ead2277cc2ed46bcb0060c0ada64e9e7dbf037c21a2f280935e9752ebb5adfaae102f3a8d18282fc9117b7b133e438fa60c3aec182ab559c073a54510e72253bc498f432e95351aa32bdf78f59f44aee404541c7aa11226443d29b748a428eb122b23198841f35a1c314c59064097513ed529473f6944d563aefdb244549c490f2b579836ea894d0318a924e3599b9a52e1e6d519444caf7f513162abcea0845f1ce3c2de37b90ba3e288a61526b929dddf189d3e18923a6aaf09342600337707474a210f3a7c93148ef1691eae044feaee33eb3dae1dd847918a04313c5c9d7e55ed62b5f5a8651868e4c94667e5b54876c216ac344d94b6eef9b5026c4462e51d452b2744a5a5989416544e8b0444154073deafe396ae698a95582e89236527b442fcdb4f7061d942898bfaa6f7dca11d233092d4cfe6bf8680f3a2451103a4598698e1d13821f6cc9838e4894d5c3e81d95641d7f2e018e2b3c3c4a80c30b2f08240a41c87e91c1a48b50d20c3ca27c32c7ff8b9c3e6973bbc311c5b0a74f7c6ecdd350370b3a1a51f8205c83d28f5dfa43480a3a185152a5be33c8f95a1d8b28b977a6fea04ea6f2ce8d1b5adcf8117c61b65080870717ffc517668bd433d0d0a18892c89fb33e4911414ffe6043107424a2681b3e68d7d0f468797820a21862e7cd49099974d4346bd17188b25d8664732622d684fb031d8628c9744a7a16ebb193e92844b984754e39aab39e4d842885c5c43fa5fdaaecbfd1318892f56e9f68ccad6b7df13972ac175f74d12188627e10a3b17ae1a2c10fb68e40344a25bb75c75002a294211a23756c4d2d35fea118adc43e042583d8d08e04ac1ce8f0434158ab5cc89cdbdef6f0d840471fcad7a133934e9656a36f1641071fca3125dae45a6fc975da43c95393927a9931d143e1b7bb83798ca6f8bc1d7928fea73efdf66fa34cfdc166040fc5daed8cb9648e66f3bde7f0f0c87185c2a1e30ec58fb3ff2e42b8997a3bec5098db13f25293bc0faba30ea58ce9f48d6ef1b20c1dca29d333e36eebc88d6dd13187a2dbe67869a5ec4742500ec51cafe387dda07b7e9411e888c36e9957b28578ba0fe1a04dd44c71429e9cef0de5ab4c17a293ba962a012c6c04a1c30dc58c1d5f931192326ad0d186a2ca89f990324c6e46c9628c1f74b0a1d49effecc45b861fff0b1ce68b0ae0c8c2c3e38a2b4e603c3c30060c3ad6503eef50a24ce40ebdffc7151fbe87302ad1a186928c1fbbcfc37512a94d72888e349447497b0d113dc69839ae40e643071a4a9de53be59ad8d1d73ed878edd07186a2e45c9e35c4f4a8be87877798a1dc12cb938ef946125e69193aca50d2a02eaa31fd7465888707175a182f107aa1830ce5649b315ae297505b76a1630c2519222f24e8f0373aad5b6c614250010f0f4b2e7488e1d5d3f7ac4127e0e2007b858e309435a6f58c4e1dd4da0686626a079d259c751afd0055e8f84251733839dbdd9f6b4e1e8854e8f042d9ce26969f98e4f98d8e2e944fa7be3c1984307d421f6c37ca461658d838b4808d2b9ed0c185d26791157fb9a326a61bf081874008b4f0f0388123a1630b25cdf88c9af9b6672d42465077840e2d14948caef1417e4e3bb19965a1983fa99114d954c8e422168ab1d53f98c434f74a85d07185a2689e8c2683a4f66b58a1c30ae518557f23e4f4a953b72a943dcc8c1cade363caaf0720200154e8ddb6c455084fd03185f2a42dd13db3166daa0a7448a12c6167829e77d5d6930429818e281452894dd5fe2fad21e783ed0a1b5028cca7f1b426fe2e1f3e8110577c476ba93971a113bebcd219e9d38b0ae135a11cee2bddf60a8167202d081d4c28956d8e6d66fec15f7c05bef81c694b284e5027d9d2ca4387124a137573b7d326ee040d081d4928e6f72042cd3267cd663d7420a124498d8a5ac91337c711ca1235e72872a373921118a17c93e5c3f49677fe590258d830f3414711d22184897fd758071d44286dccce5577340979f4c1e6e1b139e8184239eb68484a620cef39a538e810c2083a82c0771253512daa747455d00184628c704aee4aec558d04b0b05166838e1f9413b266d3b38db1f4c196a3c307459f7cf1e15cf646e73ed8dedfb9c0c185c71557d8b021012c6cd8b8c2c6216a8087053c3c3c3c5c0b2cebd042470f788d13ad36bb4f15b9fa6d190d3ac308b987d0c183828870f71b9e32e4e0ad11a06307c5ce1132574f437c087fb03104b6400de0220207810ddc80e1860e1d14743ddfb3444f04f790a123070555d761940c99bbce86a10307c5aed2a325d84cd29bdca098324d0c11f37f4eea3f3887df77d8a0bc9142c76ce3ea13623ed8d6b4031d3528679d9552991d3566180b1d3428ad7550ed8925e2746a858e1994af2de27b109b0fb61b39b468228a0e1914b75d4535d4344ece6631e8884139af8adef8184f47383fd8fc061738d6b888808747273a60507cb74af9ecbcfd9a2c2fb2101d2f284c50a326e9984afcd60fb61c371e04e68b3bcf8087c7d1a1c30525d5bdf1eda3959c24dd42470b0aa36d5e7ea124ad483ed810dbc86201d6c182e65bdcbde43c3ecb2a939cf0bb16b9cf0f8d5514c6e36b0919d2490e3a1c5a6cb185b9d1b7c51607408087470e10e0c0f171464315e536a16dbb45c447146f7cf11f60fbe217e0e1918ad2c77daecb892943ba20b0811b2ba0818ac2ec697afd18e9bd341f6c344e51124d2289d8f519d4671aa6289928371dc4ec9485a914256112447744364e0e290a799229b97134b34346511813f1ff458e9c4551328dbcf176f29ad90f4549df33c96ceadca0018ac2c8cca7938938a1b97fa2a4441015ff7aa258a6fa3fafe410cced4461e54d821029714ce99c28597d34531ad33db48982bd4acea6b3cb797a34518c316e89a4799389f28df0d42ff9c644d9fd64747d4d0f9fea4b14b3bca971bdebf0165ba25c19b3840f72ad44b9ae7dfe6c4fcdda4a89e2768fff0935d536751205215bfd13148e0fa8e48f46e348180c044281301808040488d5b601d313000000101812c6a20181541496f914800344362a4c2e2c1a24241e1c129084638130180884c2613018100a08c2c1301448c25124f53a00dbe62c70dd8dcbdad848474c845c95c70298b52cd8050e90add34c2aeca8e9e3bb00cb599a854823e21a257313f7cec8997a83d4def2b237bdedba5b3074a012fc8558da827220b798d6227b9eff3fc97c5c56b89f9a9082d0acf0c4b1df7a733a6ca251e959d6aaf024850f480271ecbd2226bdc4b0dfc8c7c2921d91d71bff453be456ecb8b5630e662a46bd66a0e8120b4aff0a0ff269a9d5b95f9cbabb5015f2ed3ea12095a54e1572ec99000a13c9e498fc6a3432ae40f350d1033f434f3711dd8d643ce938864052202174db500c700248a8e29e59a4de8cd186991d82e15cad2285586644c1579f396b55d227700743b23120a7164bf1e0d0d6ec5243698404aa9a8a7f42033e218e76caa09162ae24a1b522b72572418ae1c908c6fb0fb1815a49aa63e0deb6a04e5495fb52864b0a32f9de8bafb7b6875883f65b28c052ec00ff5259173dee3ab900da887aa8fe70e3f2b33ee0ef315c68e04fb60bb846eb72781e549038b2d4aec034b2c9a605d5ee105c8990d54f03f0ea9f58aa48403efc3168fec0d84b6076b9c7ccdd0316da71ac75c64bafcdc0c106fa554042e1e9ccc0ee9f9add040445cbd719e1d9be344bc9ffc9e21c0c58d62711d59c3c057a31e570601dd34028355e92a61ee6ab76339efeba84282b274c1a73b8c20022974455c9cbde80a37b1634cbd85f6eed173bdeb19c8c8430ad8be74f8d19bb8a4bc9873127bd2f68fd4fb0c5685318f592191b99482dd8e1b980a191d961c1cbd066b8aec237e77b9fafa4a8a0ce6c274dc5069944ed2cbf9bb17ac8d22518d8d6a73aa145087623545e55bda8d3771fe93535c7c25679d43dbaa44284fd80507fad7e08ee091342559215641cb1396d098637c20d485aa001a27ca5aff5ed8068f9d1dac7880daf160f7b98683a4c45e6e9aa80268de07c4068cd911457dd687e04db2712c3143d97340e14944c56176f624a3ee9256ca2b1dee0c38100044c1d2fe2b1800c0018903182aa42c3402940af0eca3fe0eb9f2cfbb37d38fb7b5ffbb22221146672bab9eb90f11d69a465a13352018e683162cce8681af615ce298f46690f5c103899cf595f5047a55690e2bafd19367f401861205065e8f033230406e7e3d4697664980534157367cac492730deb61f395a19f36cde581c25020a8d9d62480d2dbf41f6608e75b587569a45ba314d0ed524d79c910e6336560648c9a4e786e6d24aadc2a0702b719fa92c0c8c7c9937e2e20e7395aaed8e1e54bbb6024746d963777af4f612ccf059e1f3ea76b4b64388781fe0b31abc44a9474d1e23e24f232bbcadfc2e7cc1812f9765e89f7a953eabb44790c3a1ea9e0503cdf929c453f8a12e227bbb2e31227ee78026dfc318339bac2ceda4ad90657f5d441bde1673ed02bb1e4e9b889dda04085d66bbcc245d12a5cad29879f87d23fcc309c90fe41c566effb94fe400a7c616c4d8c64a6296c1e9a66c4f1c4568ba563cf0dbc0d4faf333a1218c6a58cd624a22fb3d6c385947b9dcb2b5721961a438ca13780a074dc41d22c73f780729d55d356b17e29e824c49274924013f7f44ce74c969ec05d82666505c9afff5c5dfd9e908fcefdb3aed71200d0bf0f123cddc845b78f569a81fb382f9dc0efaa199ec7e9c83a28d836aee84087fc3f4e018b122c5b5f85bb437d17393fdfb95e6d91473b60b0f3a14bf8e2db0cf1cacc630d800b30ac4602d93c1469a7526effd16538e59e3230ca58468a90599830935a60b1e6e32d5ae8114e00ba4f2f9f1eb5ab9a2f8b2a2860a5d0865a18bac6cf9e390823e3dff4cbfefed822e235bedd52864015409742d1bba4715c8ee607e7e4ad95b094097f1a3d5ba041477b30cc69276b0c0cacd353d5ecfd16869a50ef074891dacb8b65360e51c4473967727bf05875f5083da88e882c8452398d00c7ccc09c9889855b554258ae9a5775a47f5b27fe7c603e20d6abb1bba113762f42ec92f0973d251dc477e61df6843cdee5080b6b3d2cfab1833a70075ac78b8b4c6ec4501c471dc38dc53b97376d5c17a33219fa6f12c62cb43fac4d9b683f84edaf4a6c4097d3ad7a0d46d510009153cc4933beef58da52fc5f2129aefb950954d7f54033ba52f8eea3703b534f24bfafedfacfadc16a714fdb9bf97dce4010c18c3d33ecfb74d903b2c2c426e22c029b302f2f444527bcfca02f82483f8fb9c0823b668a2ba56df52b457593fa89b4f10d3cba3532a7d579206a11c24e55f498f57268f65d20198690d678ac27d10149d8e962f3ad77f4613ce7894bc27363c971dca9f407d308b056d43e61fb938de785b08bb67cb5f1f70710189904deb94fc5d4ac99dd819af464448840b378d752f7d2d27a7b23e44b1adb5f6d25fda94e7caf39c763c5a66efadf09cd52f5046139d8807a4f1f269692ff1e8f754b2f95811f8bf5f2a23c774ead9c6687b325238f20b4d9df2ae78efa27e001c32c6dd5545aee65774c4bf46ec50d6d72016e558e70ed5bec1a7923b5e1c847c7e1e6bed59f01d78b65786942fb1764900b15b553c4cd972dc695f28d76cf7b3502fc8d9c0d784d229c6fd849998947f8474b89928f6584559073c708de8b7e6f33389e00e942281e040670d24723c37f2e2b11d093c5a6cbaac6265e22da1c3898dace0046751a160c138ea11d31ae900380461ff9a6612d63c7bbbabba29895cbe0baa2ef6be4b47efbfc6aaf0ac7af6dc480ae934bf1b5d8c98f7a3e61f6bda2359a8600103f374140e00b705bc2062a1ec174709296b98d4ce75f9137975cf2760456dcaed492403f74c50e09a88252910b7c5ab12bfc5665ceaa05b2824cd72aaab2a1b8b5ab325b95c9e3392502a2f1de71356d4eb15c2a451f0477af115088fe74c1c681dfd921c00afc1a182f01aff51f4e4137cb6316c0c420bab2f1b891898cee17c37286b91a4b042d296590f70b6b85dedd46c2ac7450f4527b1e1c5f1d267d6214b057974536617dc044d701a83d6b1f7bf24d617fb082abf6da15961523b0bc5a532879b0c6d6f8ce15dde882807f08bbc00103068430a3363d5a6e9c955a5e65e0f553a8e81a1f157099034e6c4cffd94704309d356b7a1013f4b1bff524c348ee14329f4a15a0dcc35a8cd92eac5aabe1dc302bec56484d4d97246a8b80363fe67f0b155e02dd8451674680a0eb2617800b6735d5699429665f14cac49045b7a6e52f31ee680290e50e85d397d12dfd456a57d016bc4843c206c0a239a7642c7bc517395b25e97ea2f77d7090122419b0d2a3b3c6a069e44817083ab73ed414a0613c3b5ed2f333fc982ccf329aa437f781ce5f005666e4ba38b44a92a08c08cff0e539952e3e6aeb91d5c3f44d0e65963bb78b1c2ff3b316a30ca597e30884f197f6ae145d437db77797b142eb083626c1cec1a7b93b2d9945ceedc210a2598f32638d816c550740a935d73af4809a859a7772b6f7ea7bfc6ad0c91e585df198b292a839580901672968c2b540371c8287f0e99db337a04a792bb38fd2a834c149fde5993a34869464c7ad634ff6aadf4eb9e2a05d864602225c4f8d0b33dc015ebcd7b079b27e0517d59599f0e88ef109a600b0a990cc52d1a8d24226cf21900b82205ac684b230047812fc55d0d114d6859c118056b45de4261277034799cd1255a56a6d8fd200ce076b6f765d545f6e0304396f41b45d418c79eb4026642acc818cf76c7aa693b37e887fc1301f43526b09ddbf918aa5133c64983cb88ff3a1288e8306601a541004a1561c3be25643cf90b18777fe08241e505507f078df0786557a827b62f2e85a22a3e8cc6bf8f6b33daebba6f686f7400929d58013a3750ae1977da190913219fd3a2541d7c93ae32a87290c8a2bd6509de3116b59a73fe17c026e1811f5ea6cb24d3e181122ec4c6829021de7d80c284f578e5633f1c0c2fdd3f7df5fcbb23d3bb23bc3ddcd52bc260d6199befd8433e7bd1e2746597f95bd7502e157fe1c529922302097a461e2886a3c3db4b09fd0bc84f3c6bd601e51a7199f13a1438d3dafa04b3fdc33994d55cf2a59224675714f2c1bc27e054f207eca3d4f8dc5cc277d501de67a6cc5f0fc363a2d8582792a9dcf280ee36de384222e4c482e516758337648443afd80b112db74a8cab292156ca407bf52185d46d6fb16eaf496506a1364a64e36cd7e27b06b89501ae827cd0d7e9c7b3f5b6734265b74164ca63dcb9be064e31da5feb47a4c375059d14162367b43f1659a8af7f26e672714b6e750a2ac9eb4f86e2c2409f09fec6df5ce5a56042786af3f74d6304b35134721ec35c4931903e7eb7bdc93b5b3ea1fcdaf43b0ceef86d5db2301a0e94bae83ffaea5807e00a1b49f74ec36c25abe4cf3dfdbcf484ea09892fc3255936789d92a51f0ecf1099413b239d06006cd90abf90026f0f4b450cc688b4f9f85765dcfb5a7e44ad3b63d2843e1143e71f0e4cc7d1146652e0cbf602355c62a6351a52e642747305a0c63132e78ce8b5137c0fa93f0cfa7acf54c437efd9ad7ef726e8a60753c1c89dc3e2be0e7deeb3c17ea3b0cff08bec018a8771c3e8c1714bb4eaf0d19500baa9cc3d6b31ae01a008608d616f80a9286425354addca8163ccbbedb5bbac87b9a81ff70807bbd3d200ff1da3f7bab84b14d45c1e3779d24cf13e6bcbf2234b2e5d012c84589b1a1ce42d9b60d841564c7db2d69b6f89232925448ede1aab9381d7926e7d1d668bd31ce95c8c8ea748f2e2885e79a5ab070348ab690523a68f5c660de61de6c5df19383a7e4aa76158c1ee0dcd34abac944098ac29044e3dc6faa53b3b4f16e299c466d35ea065560b038462913faeb08609e53fd340fb95828a41e20b99b886961e4c99e6234407b647cfc51ac3bd8deedb4b325706198c51fe005c8301dba5a0b4ee672aeb35f0eea3a4de5567ee3ce8d33bf10d7fd4967524c5b29e73e389adebbe0651be73d836f7971f06a862de946a6ab2df2c7cfb813b2613d05f8233e76a874fe7175a140ed6c81ef7fa025267fc113c23a66c324537ef9213bf33adb60b65c026f6938c7552c0e46ac9f7bd25d7319baaf13a6daa9b1ff3ce035d29d71426593062c0b4157a93b598d8f74d9106879d3b262ffe492ac95bd8499f458f2d1c09ce34699663e0f8ac3684af6c6b1e8a238755d75b472edb85c708bb1b192eba369200262f81e90408a5212993f0610a6229d424e3acce5963c5ce2d874874ea08d74511da09ad32916b5b7f0216680de12e364538cb1cf11a79ca64b6c1a33ff00ed9c586c269da82a1efe7f7b44a30abc6e21972bbe896d4c0424f8e424969ac148327796a99a2ea82f8dddebe4b592f9cb5d99b6c528824cab97b4527eaa029c54d796d2c3149d4467dc127d6e1a5d5ec6d4ac95a181acbb960a803654db11cd52bccf9e485812f6046fb6de6a9ea1612892dbdd52d869e6ef9ef004bd6889474a81808c191b131836f3971622340490b9aa6e7d4b3c71a15ba488190c6c492f46162de8b8281f048709de271d14fa686daab5a62fd68ec7a0a36cf5002d1f62fd91044fc3ea358aeea8b6e0d608cefd2279423b4dc5f7599ab98d450e20c4f12c97e2048fe6ff75283427b4685ebb386cc153f5140974535458a9dd9dc5105f631b9ee19d54259eb04e253930e3a05fc0107a8d1a2b74f13291e13aeb1cafe9d4a2550eac63a63f256b1faa9e7ec007a4c8acce6790958d6b940c21e37f7d9256a908ccad42b61494384c7b7f60bc5a29860a320f1d7ec5723182062a1d8608a3abcec53d344c17c852b6802d608b58cb946a015f4e169045a4cb52fbb74534401d9351ad6cb7802367c9368258274287e5c8024d9282ef27e4ec17515f6ee357f675c40a1d16b97c23b1ab5b8f6401af9f9c7063d503fa9c1c8a1258206446036aa52054e0da470f6a545a656262021a5cf18461d6f40108ad204f883e45a13add2f32b38d998f14d2c71d407f20b4b54024ece21f2a54ac689a76088746c61e367e4a80b3989b5b604da384853b7c0e578d1b8fbb35a887a220180402c794e4c9b8841ac027a16e41c1965dd02ec0b9737cc39bb5cc802c48a61ca91864ace9d815710d080d20ace96eec5ff750e82eeb9b69eea7c4a4cdce826ac364d6c688c8900ea061bb8a572fc450ae219dcdaa43fa3d27278ff5309de8ff7dfab0cd7d8e2b2b3a9de49bcf9af873a0d0fb9c2decae9a67732700ea4363b7e9ad03c225d2d1064d5ca53384d7c7f72324f36526571380f4bb1047f1a98cb3c89cead082f39f2c6ac8a907abefdaecf9c85cf64681e26ef9f9428b631a33ae06e6c881b5906d8fa135531fb148fbf9841ad8bfe37b4541a7dddd5b15d803fedac5cf6b788361a3c23237ed696ea6b82cb51a69fb094caca0d00115aeb0746b516bee6df7f36c9122766a2476327689da0ef895c0eeffdd080ecfbe1eaacc8f0a21e65f6a398eb941df055b732acc83545c6e0e514818b01b0e753c453b2c5990193cadacb199be213b4e52b34cc3906de36eedd47ccb6348b9acb5c650640aa0182a23683336d629d98781109dc1d612d64358692f5365e3589217a7e5bfd8e9d12e500506b420ae5740ddd04cd12334fbac8cfd4ee24549f67f5ba3048974f5c79c8a3512bd160016dcefeee5ffe315cdce132ceb7e2f9b2820ef1000c0c1de389a2a809393d718322efc4c9b6c6619060bc49ed5644dcbf2716b7e6892a6a54b282546c435922e2cb18aac12aea96d06ad69538ad352f66837ee04d54c1b082134077dfa55ab0718da0dd0177a46f77c63a0197045b1cd9e0b7e49af48928be591cc12f8552f188a8b020a028767dc673c0ef348296833044b52f75aa5d7ab950cb405e4517a30bec89a45a3e80cd09c0c75cd242b835d94efc4bee85826e017318dee9fbe0aa190c381420c0080fdd3343496a1f5399377707c50a847c57fdc2ca670a15bde28496cd9785251432eba1be3ecc5aa15952c14db956fd286e4a8c4547c845848a5013acb8543f3269c88eb79ba3ffca7d1089ae96985f96c242d6e81718376189f1461b5c3fde6a002a1a1b383459b6050f56b3102c0e0951b3e6c80c584655cbfc1a8fed4914f1ac35506c0ec0340bcaf8b0d935708e0694aa653b0a38900a2da71432560e5f37f263e8f1e8a152ff1f3532994d1486583c2306bb2fe7a743d95482e7049d0cda6592d900b23356a9330ecdc3f0537e020ed9f3995008e927fe098beadcd36d66434a4cd2f9932ae101eb2e93dd3e9421bc5561488d2ec0499c2a0f8a6616158470f792ac8c1d25a73b0a32c2073a73ac82ea6144daaa5d0a5a4cacbb0ce06917d963a927d3ad14040d386e01285b52e143e26557824a4c88f173290b8905572484d4b4ae3e91ff4c3a1b51e4e02fdb96f2ddc283b65041b65fe66570b8756263897e96adfd61efe13af41664186e05b5bb16f766cc6c29c6c66181e0e0d1a6e0ecc51ee5b28322e63708a59ab93f1e4b7c341dae7413f9f5555e8386a76bec7b8e52941d4c2792c1668d054e23c5d1abc635b18bc943df577e30b59275ea27d11954e2b1ec92b9c5f447e8835d48c50282ce54111a81595533da2e40dbb92e4b631a6505af82a5f2fa2b5b74a5b3f2bf6aeb915a33a58a55413ae8075b42ae99a5851abd32abf9aed0a69752a2a5b1f6246142a32327c16aeea388182d380cd3828755f37dd5648644962fa177170282e93865856015925d33118b07430026264ca3e5cdd8d489c8dc554a6c61b01de30d0a825e38856aa19af5afe67d5698d9f95d8d63b6c79b5aab146c84a75eba5963f5605d6d059296cbd60cbe3ad0aad11d63421110470668ee420d1a4133e768919da566e24ffae6081f4bcc421a6cac581b51ca14c59595156df5503dae0b2d9daafb7fe05b5b45931a7edaa0081aaa222c3b79902b4748c19cb7a4209239378acaf7803d49df9c273d2130e3227a3af769c6162486254d480d6da87777478879635ead89f53cada4d40ae4981ac9a82ef9f6add3ee26e8153ed19f33b3549c7a9f6ad084bbe9ee437139adde92e00fe7c68481b21d03b4d0e9d7505d4555e09890504c57fb0c1cf228b115e7e239588628027b5e1ec0861d794ab17752c62a9c58d1b0b407aa89c63d3944547f223a95b4ebe1f1b173ce7def696bfbc816b0663b96dd2281097d89299922f4f07cce80538c086ae00f26cfb6519002cd3298e87e2a1f1601105b54c8ff0b026903774e27c04bcdee011990217893b837d81b138546c9ecb49f878434ee3dd8fa79e0b6510b1d0cc40a2911ed793923c486afea7c7952a5cfc87421ddd34486ab81de3d78c6ab184b7984383b0fe87d1e5d08cb8a80ce0c544de049326412ba6fe7d0f0d8c24c13033e418564d103b948fffa60f129595ce0c43db8c3fb06eee6cd5ded582c6250618c8a92ba73bd1adebd68863dff3d818a96b564c056cc7f009b483fd4ea22c329e052ff8ffb0af1374c174f6c72a5aaae2dbb594376587e18b3afada0650f2247b3bc11ae47a83f76fa0b1dfb6fb78ec517075bd471462e740499b40d98e34a57cba69b7bb854393fbe63776c35a0a67c86b9226c19e853b28065264ce3931191ae6b892fb6aee1a7f1e03bd589f13c9993a201e0122052e506fb8e724b1428c6f9bb29b117c942323ba0c94f6b4097cc6fd2fdbc145abbd5b8967754d6c9432105dcd87021c81c8bf1fc8b48fa6cab9113073ca4e3c81633473a2d1112e54b2e136359c79c6316c66def699d2b9e9d8f55d8e56645d687e5806031b27db28c7e96459cd8df7542674ab9beeb509793417f234f800651e8813c76dbf09be214e8ecdea3d71b72555a8b2d22aa24b8194ad3ce98b0db6d7d9d3d66d26a271eab301c91ce206601e30c7e50569455397b6cd060b8857a21c47d01adc47eb55161111fe7d0f1647d6ff3377fd4c275cc8b515f3d02e3edf1f373d469fb82a5b2b7163fddb920860c6ad7ea6f2799a247501b7140527e0677abc61b5c6cddbc3ec96f10f21b441f046737bc459c2c3826ac9a5e03aa50aa51412f9f9cfc9137b70041976db44a9421446261eaec6114d94a6dc8e11db86f94fb16acb9b58f3976c5d65228b19e91bd4399d6d2e790fee2e1430d6a85b9f1e6954ae3483eda8ebf554a28c503436fd14728725a35e50b7d5381ec50592b5b5639b219aec06159b3f8428627ed98de33b190d90841714a97a3589f1dea1a874c4e9cd60e2440389f617c07c48759eca586708edc8e72a87fbbbd8fc5ed78bb78b9b4807fcb7daa963354460955fa8209c844a5d223eabaad81ae2d7a9dc3576f6d4c185b65724aabb006c3f51b06c8856cbe8f1e28cc20c598f9f78ae4eeea1354e5071ec0f1da7970a9890151dfc26b4e444a468b177cff70a39477f9e7ca0b4f6703b3e95a4d4087a9396783d5adfead67fe11079fc081094e085f3852ede405724f68bfca2f301147e1b87b82b3ebed5d24569e2b73676f040c3816682b60665e49003193c9120171ed7a8e3f467fc4c6f8a92c34368b811871cde5ce00e9ed0965b7fefe32c811f077e61b06ab97cee7f65e2a68f3e36177dcd8474a4530e334dd2bf599b3cdca9f8e66f27c2a2cb64f6620f71716d6652a760f3df607afce99ff22a0de5f77d6d2cb7e19fcd6cd49b51da6d227700005851d66533f59ec0c739233612467fe55d2302f6a37e75a94380fbf39ffb1bbbebe37f298a9586d6bf3e925842af556d97b5df2c819cd346eb5af00d46c846bcf77dc321435ec7d84012ded09e4641b944690b1c5add70e27475f916780382cf7b9ad4cefb9e1fdf9e70ce9654248caaf3c68df5b69ef051ea45368211aa4fd7352064503c79699fd015ae2adb231178d87393458ec64a7012139a18dcc07aa62087d88d8925aa053de71c382b1c9248ae56cb12c3f9dba2db15ee139fbd8144dd7ec1160aa352d5e1f4d3391e8772d3cbaae45eca95f7e1b377c3a79c9966a586ae20fd1586c9c07e0d57ed3c0133244ae9dc531c3818f493335b631b86a3a3230e4d6d5bf0d8cc8d0d377c2b85bba90a3d0be61d6c9cd8642e74c68e495e4fb32b13d29f946bcf7373aa86a23b21014647a090d8ab917c9f48fb38009412a53d1253dd6ee1bb8bedee2ba45d3dab913e95c72996417dad02cfc43b1f761452fc42384152989f324e3c162c852ac5a51492f3c6aeb2e7a3a83345ef716aad7b91e03f02e9595f5f141e5f96aa48c4e39803442f1b7970becbc40040c3276fb8737ebfa8b9282e0fced406d7389b800031bd46a19ce91383a85e07b9df7144986fa0333e7c39751b143f28544f2c7beaf184d253454f3d4fa93e55fed4eb2925a80a507da15287aa08aa17548a455522d507952a5405507da05283aa00d51baa94a1504d0b92574c168833cc222ccd71bc4422cde778445e9ae4f888489ae2f88b9c34c9f1139934c3f11789348fe32732698ee31988f490c35a2589906350a2962067f80d83a8057bb77a5e480a3477eb208a4c8b27953734c95423f84397c220f9c6681f3ccb8113bbfa0ad7ed457d461ba4a4b3f303390435afa346889221080beef01b37a22cc7f4310bb7f4b24966a70d358aa24866855c8d42408a31091495ec5bb84b3146212523c3872baaeddf10fd0a8f21ccddab8f8cef6bb7e3b300828c4f6c9c2784bb99b9fb049f71dfcc8e293214440425f6000e3b3cb922fafd8c7c2c8949f4faee86322bd27daf79ec01b017a0ec004e3d2e37fb2aee0a413442e1a4824a00c46c0563f6f090afb8310d805a066a9c8dc428919ca9c8706a909e818a01e8f3f3e71a6684742376675385200c347c1549184319054b053433ccffb0d166d3a385d81d188a93c24538910ac1704d579bd092fcbab9cc5268183a8f0921442110c901086cf9507d3b8829a1d7e304a843aee3c9ab86085228021eab406087ce4e9a6fd0de0830edef5f6d41061c707678e5b185c65bfe11ea2db94da03f9b31b2737338b415375d56d031dfd3b38025a7fcd67a14864fbc4c5310345d6819f673c254c62631657764a6e448ca9f48cede7e254c561e73a40a2e29d6bd4bbef21223ab60b11aa2ba9bcc2a7094eb6bb6196034147b6904c0a034b8d15d842912260f14e29bf1056037331c10c9c68a10810986ff57fcc4ea28f78cc340897b1ea0096017cb8ff03be7c07add1a2107d46d19a9bec63b05e6751471d597d5af6392df7e1c9185277793120806148c28e4027e9f8f8e3f602169f75947e52675946a5b91721db6276ace1111e41320942614af21239478e7ce3679b47c06da9e046a8aad2a28ffb49faff6878c446c5e5ce4d2ebd21980fb2ae9473664c453d5e171fd1cb542f943a50a5509142f2854a02841f10d953a51144ad55fa0eeb5be454d066503144f50b1462848ae99ae93006a0428e6a172400505151d2a0354f150714075824a0f5507547fa814a02a82ea874ae1a9e58202e62d7580a750c05aa9185b0122c810ccb6106d03e16b9a1300ddc01beb083adc4844123d95f1abcc262518e2000d526a3a4e5b7cdf47e490d34bcef41e1399bfe32994ec85e5fb948400940b27a9af1a00cf570004529b8c2965d0a2505ce3931be0f8e26400bbd49b66466af797c9c4f75f7251b12ba93635b08743893c0372c40740289a6e587c18e36aeb4d831d941c283719a62113dc6a1cf5e8cd3d611476b9fc9b32f507f7cf95de20e689f0b8eef10219e4c2e04d04582d32e534c82e23023c444a739b35dfba3e49ca190a9b8285632be23d31e33c57afdc27ce8d9faaf43cee3577ce09c814cd6937aed60c6ecab1f8f983f8fe18e1a0a4777fc7bdb1850288a14060e3d26a32cb1152a1e90faa738c80cdcd08e608bc7290143b637749af716828261d4b2a59a8f01071aa5e93cf10d610eeb620cc80213ccc7e1291ec628633e41b63e9869c31485f0bd2c06414f9207aaebcd48b237a9c744c83de0fa2b58a09fd704a6dc578282922a66dc4c54ffb169d89d727533969404ec75339c7997a829c943732acabdbd8a502f9c2c02953683b63c558779a11ba79f176b55cf8dd07af2e03c7422e91eac702850757a774520e5a1d4e9207e23b5be9031f10752b910d2398ac1fe82faa8cb940164131356f8ed29ef63950c9e77d7c4cfb8a0a2a352f13377f5ac0724aa17451d07c54c7118c0f6951ae4d547907cadd9297772d539af400c3935fa0987c122d121bb897f22f8d42ca6d7133852adde85ff88d372252a1a7a7e9a98e8eaa96f2ae1cc1e39e83141622c76a64ba1de98b23978cec1980116791804a70743c9d22d425a76954ee1a000c3087e639411a11acad3c3c2c67b615e9a2f989dbbade96c7f6399244cfcf2cb2970f81fe751920fd8aeb4afb6ac20e1b96be08f54abf1dced6007e797babf3cada6079d56449bfe27a9b2e2c9cc33a4e797547a0d0d4544f0a1dc020c13f0056c1818674164148d816e1210ea9ee057687c84c4b3af0901833cab6fde7fdc05ccb6e097682afc2160e6ba80f7c13bd1d550d25e45301cd2572edcb9f50b316a544e1d00ecde2301a2bf260d37d69d2dd9b075d5a7412c08ac4d8d7277baf4a82f953861f5882b3b2fcb66961f383c17a465da182ff640c89ae4bd7ebb310f8e78b38b1704eee4d02ec229e40ddb1315346a3a0380db7db7db6327281d016d37368973b39aa19a15a79b3eadcc721e5c56eab5262a324c98d2bbc6af39b1d9c680df869592254af3e9c04cee7551b11366e1afef75f078ccaa75239343563ea7506f61440269f273963fbd03169ff7f9036480ac5208be30d593ec42ec76233f17c2b7de69d2d4927b388736c65f3cf6989151343020e9522542623a4e1e6d8b1d76236516f323431a793a919536590fd94fc3f4f213f05e0b1125cdf063be6e63a628393d6e3bd05d548a3aa18a28148f04584157663de46e47ea07755cfa7ab857b4fb67ec7205ff62e59d4bd76b5943789444b0fee551722c1ec7c3ab8aa2bb9ebfb7ebcdbb3dc59b687ea5f8e7b126eeb1ed5a03c879265b303b8b6aef0c9133ac491380f8e65bb0c53703c774f81b8345cfe81406a46aecfda7ea7c3c788bccc1a9a1c47a63bd6338863ac9000637a065c21ca46077f6945164232ef986d465319a770afe34d4f662e7a233de10949ade6a14cd0af1d85d2a53e90bf6e0eeb3d2acf62d9afd66dea4dc61604c90fd2ca084d770004689cd7203b022f2d6a75b7deb6d352b969f1a61d680b988501889f1300fd0df9768473e8abb4e6e773ccd3da85b7f10d7dd480fb0dcd6c837067b958212ef6a1b80a7c6c010a21766e820b5fcda24c35f989584be758b9e659253df6b7b00c2bc29a843d596092735b94e74784b15d53f34d5ed2d38ee35156dc63b5b778c4148a23131546170a601490058494cf27b447a19063d4b870d4cf65309c1032cc9e9919a4a67d7b2231fb0b23b79f80ddc7af9841481ff2e7932a27f272aeb2370506fc6e67b60cd947e13db560445b8d339d69c7b538378e001a57c499de88dca2c30a6a0f1816393c6e1e1235bd858789b16bb2ab78a0ebde24594275c2837b8dbf54270970fb783214431aa8db3135e7aba5f24d1331050624eb32abf9f03c600c866868430d8bd6c45231e68f59aacd45933a0a4d9ccbe2018e07aa2f6fb1f1977263f0212a0bd0deb426d88ac5125456e38c76f293c82099986cc0dbdec32656cd8267bd53802588ec779dd6001f2d34f780613526b53bc1c1320b9c0739901996105e0987db1013cda8634b06188ec3b9a053fdad8072261fd0c4657a02cb5e0ae87f00c4c926d0eca808519f8369d385f10f674b8612149e02ce2184da0a3640b0a6d0013c0c3c0c3c0c3c0c3c8cdfda7db333ded84e5212b53834ca04d1534a29a594928efec5ddfd69003cde6f6a4d1adf388f37fe0ad50aa50a3446513c41cce98c96081b8b86288a9e3262d2baec447972181c6884a220724de6f8a24d4c1a82a23042744ed2346429cf278a5a52bc36e9e6c6eb3d51ea5ed5242b64cc769d4e94644ed7b7e749ce9f194e944bfafcb2bebee5a3dd444136bd68d6e7786f5d13059dca42868e7926caa6b2e47c9b7f63271b132569f44dc79bd79231798982ce9bf81c4e87134e6c8982685775ccf5da335f254a1e33fbbdade7ea26258a697e529cd665663b4da27426daece8ec9175a2244a2daeea59776d5cb39128d956956a8d3e69d307899230393aea93245a4cd0234afb9a3cd8aae788726ff898729b3264d48d28aaaf8f8792243f598d11e5785d4affed9fe546631185af924493fd5ed37d8a86228a5592521a4a98a5fad7a38c8c981eef8346220af37a5a277ad2d5c1d4c15683df9163078fb40af480062292c4ec62db9e573447079b8e1f3bf004340e9168425c67fd6e707294758fff31461ac2f694251a6ded56a48373ece0313282238c64058d4294f2af54e9f7d4183644887250ea4afa302d1fc3af830ded0f3406511a2927dce8ab0ad97fb21c6808a2e4315b97ff7fde3705a2386e1d77e5e3dbec440310c5eb70223e5e87086d5981c61f4a253c7ce927eb1e2b8180861fcaa75a639f2c62a4c95b075bc2214606c6c0c0c8481f1e911a93b42a32ca36d0e0c327d5d9c8f530bd309043f770041a7a289eb871a3a74cd3c843dfba66e5a96bea7592a4e6e1493c393ad8eed4f4303c94fbae6ec4537a87627be758699f8281861d8a49fe98e3c6133c3c894241a30e253542896b271f4c6874e950bc8ea9b35d77cd68d21c8ae1fe34688f7926fe722828a5b36c1091a549d7712889995962c9baf16c4f3894c4a56bd6c6d91d933794931855a25d3a3794caada4aa7db67b1d87181918028d3694fae45d937e84984921369484f930930453114a73d6509451baaf24418811eaf1649071831e3ff40934d470f2d01eb6d6639ea401253269497b0b82061aca3db2596c45280de19ea1286379b27ad93ad8ca9440c30c2551e245935c1f2bec94028d321433a7913ddb123125322827af5d09aba53114f4e426b924151243499f766f9613d9bbf13094c4dab8b775ee9b460d86728a4f52cfeeeb933ca2337afc28010a769cc1c38c327884e1031a5f381a5ee80252ed3aebe7bf9b8f0eb694ccc888e921062c6870e1149a362739c2c412e616b6f564a1b1ab84ee7ed0d042693326c92433bdae6dca42d1b46f9918e36f7d586960a1aff594d9949195d3e639e9d3f5bea980c6150aeae59e6ce34e3451a761859260e26a4d7d38a5a4d80b34aa50f63e258812bdbd7449a242b9a48c6e9ee6e2a9eb299437c69fe8bf3a225a4ba1a44147da9bb2f250ea05a2501ed54c6aa5dee44e62a0503ed3605ad473e920e7a3f184a3000d279454f87c0a75b51af236a1e4fbef23328dd464e279060d26146f637a996c4ad494830c320cff18a38c31c8c8a1e387199f6c406309c5d1eec144cea6a18482102b9d4dda13b3a5ad83cdeb0a8d2494b7e49bddea2acb4fda316820a124b377ccfb394f84fc0c8d2394cff5ee34895c40c308c5ca37155a21166abe046814a1e49b4ba68ca3961a13a1a432cec698949ce4763f84a289273d6b9e1c1a571242e15488f5249685b2ad83504acf12f42919e7fa648150fc96af0c0f91d6a9fea09c84346974f3951e1369f8a03032ef7f1879e1d57a2fca49f6e4392613720184170533f526943eb1b2e35d943eb7283f55b54968ad8b92f071cbaeddb4c84e4172518e7da7bd930a257a7820b828e82c911a3ac911173ab7287dffda7b769dfad580d8a2b49fe4786eebd7a22832f6b5da7c75ae9c1625f14e4a939598a409429c02c82c4a361a4a563e892cca5194f8d1416c4d6ee8c71965e0c0000970806005394200120b1b81c5e52bb0405c61236780b4e24058514c928c31893531bb6918005945594594f02d49d0b9a1ea4080a8a2543bd79b84c6e798da4c45f16dbf3e08d3a645f3b23a80a0a2fc6146eeb293e86ef2298add757209aaef2c54988098a2f4e9294b741237a88d960284146fc66e9d8e7819930eb61a981effe30c33cae081540c20a3287dcb982a4d9ee11301441465afd693a5d3a8e9fc630c1f63d0c0718891811f63f818e30439728c8c5c60642407ef022414c5eca2f9ed32096327068a529d205cb5f6f388bf403e61d596c95c87cc586e764800f144490c26ef767ab3e62004e944a204a1224d30cf9e1d27b294add7f2b4ccccdd31c9cf45e632794a3332d2eae3806ca2644a55c3674d7238fbcd4034512eb5e5c1f3f536b72099b0114c944be37b89b3a769d9b944697db3c924c49fef8716102096280661975ea6e6bff257a2bcd9ed5e65a11b834e8952c98979925d6e929c5d016412a53eff13c53dae739e8c64ed032323397c6c606464c7cb80c78f1c3eca0091443156775062eeb6942a8944392d848e573f248a9a3372631c39fd24659047944c98f8b4d44f234a47142f35a7c74d33f93ade886269d33b190d26f5783960b083118bb23c794777c9e21023039f46461651ccdb2126e2e7b4ac1b034d3f9d8228a2062089e81b8020e2106d6e6a7857cdbc766869c698fb3778eda6f6066288c286fc2c79653ca9d82058410e33400a51508218ab93e424a830134294d2449a9c1ddcc4756d102541af2adb55ab627f4194dfe3596aa8102410c59c54b8895ff3fd998100c24640fe50b64eeae69993eecc35881fca269fea06db5172c5ee43496c44b38492e9419ed2efe041062a02081f4aa2ccff5e061d5498f418c3880087181ec061b800d943315f491e675ef4c8ec9c32be0c3c0b034791517088c0033810440fe5d041097ff228e5a1fc5a26765f58f77eac030f040fa5b1fc8d65f2cdbfa3a500b94341dfd8899f5d4ebddc4a5180d8a16042e4fdc4924e8e71e404481d8a1a3a6a3f23654c80d0a1d8229470e22775d227614980cca178155aba3d938dc50f228792bc8a8e9a5a3b8a4ae3500eb2b3fe9c659edba681c44f80c0a1a049d4959835c3d36e206f286a0efd19b35f22b57443b974446cd29029b447350d01d28672bc7fc91beada4fb31c46051036943de6d0a73363bea7131c61e0c01146183018c3c7611e40d650feb89fa1ad3c897133628c8ce4b02f80a8a1189ebf63f8587792fe11240d38f220682827659b4d5e4b3d49579033143499fcfd9b4c5c0188196e0220654832ec184a5aecf404b5328818ca79e3c41883fe30614e63000943c13b76e9dd54b79922301493742d715de17a2af3855287799978e298109f42070388174a1f3344cfc433a979ce1f8074a1ec2a4afcceb973f7d21d8070a11c54643e9d43ba6fd26fa1a06a3d78d0259f9a446b00a285823afda5c9835ed86db2909451a9b126f83400c14231e4fdddcbdbc6caf60a8ad7f9097e42a9cc810288154a59b5253e8a5ff8a86c00528572cca9bfe386918b13e303840ae87ad3f0f3b51da7052e0032858238b9e4101f5fe2e62385e276cae86d5289093547a11cd77cc593cc9c37bd5028c652fe724a8bbdc9df13cac9dd2cf6bf244996cc6e419c50526aa726a72e31d7e69b502e25e891d512eccd345a204c385dbc4e4bf56577ef653bbfa4fb74f627409650907e692afa354aaad00b40948010004982b600040965d58a933e8ed4d314418e500ea693a0e41257193d78243dde8c3a1c62642031ef01c50631c201408a90030708111c0032840211428e200001e4070d00f1410e3116f0452f12f0052f14f0c52e18f0852e7230e08b5c38e00b5cf8b8858f1c0bf8c21607f8a2163910f0052d7c18e08b59981c08f84216607c118b310af0052c06f0c52b42be70858f1fe30701be68458e027cc10a348dad9b1e29429cb2075face2546123a950656e33dfdae452c74354ea0925fa4b4d8e50612313f8e2141726f9339824bb694d244a329dcc7b1a5248144375bd46dd58ef7f56186a3ca2a004655d6f52a74e5592c3d811e5f4569a54293d1ad6b30113e010630326f061be470f43c61930f81e232323233e6a34a21c5782e6e83cda92a6508311456f13bae3848c318bdcf0506311653d7526467343798d3c7cece081ccf61c042bc8c1811a8a286f2939e75b4bcd204a6a24a2a4d3d878c93ea304956b20a218c37d75c6cd8728dea60ed7f5498628c86425092b9df54e760d6a14a21c4a2eb3ad8a8713270d6a10a2e47ea27d732783286667c7cd294b4e25bc71a8218892d22a0b31b95d9bd33ba8118892e97025860d236428131f3c44a0e3c71828a801886287ac9069ae7af2771820810b6afc81fde07d289f5ecf31cde469d73c1fca26c87cf19522cc4cdd433998f429735cf17c21eaa1f0a674bb266945a36835f250ccf6a326d6e64ee1b97e440d3c944a6c8c25c487be29d51d8ac1ea2419440d3b94a48d6b522d7dbe1a7528d749c258fb955c42856ad0a1a464cff3672778f88b732898bc256b7f4af1a0ac7b430d3914d48498dcaa734fe750230ea513b3437eb816cf1ed3861a7028f65ea63db1c97ccb3794f3bac7b4ed2173da8e1b8ae2497633e9b693aad40835da50101de4e791694dea9bcbd850563d3d429efc8a89bc0c35d65054934f9a18948e93cff21a6ab09134640d34649f616b98a1475a50a30cc55ecbb862fd9ba39360a00619ca2a7252665f4b3aedf1438d3194d47acc71fa4475b70dc7a18618ca2dc2368ede769293278c8c428d309494db09269b5cc6384ac050b0dd4eed22cf45c4e90b45f7e4f977f7da84906b78a1a4a67783f998f2fa68186c35ba50fedae8c963663b0d750d2ea4569f2b16379bbbe26a126a6ca16c21342c35347cc5a486160a6392e8c99123348b4807db99617aa0200b05254a10bb1394997f0c0b2555659fb96736166a5ca1f8db2b27b69656287e3ab13174f60a35aa50509b93e86122b4843b51a12832087f99b551195d9e42b183fa24876f923ca6ca5228d6cc663edf9ca3424f2ad48842494c3b7f5ec26dfe1c37a106144ac2f7e328b91d347ff884e29ea0277dfa9c31a7724239c8aa13ac438869b2b51c51a30925498ff6ba5126c95b5a63206a30a124d2b4282b93e4da202fa1bc5a1b74fdcd69a8a18472ea1c947cd694cdd5484241ba8dec3f15c2cd5b33d44042b1ece40433d9a7d13b30d4384229fee4606292e6a43f2c2ed4304249c8d3b635624456361fa85184626c89e69eb649e888750935885092f73346093586505c1dcdb29d4dddfe7818060e1c222081083c9067851a42286d52fed72509f35bf21a41b0911a4028fd8fb64fd5e29b651c197110ac20870e6afca0183d73f2b0d3bf6bda913ca8e183a27ac6899b5786acda300721bd28b9e82bdfbebaad122fca575a6d257f7835f5ed2e8a27870c197a3ac95e6267e48f105d942ceb939e513acfde71d72324178535b14badd0e541d883105cd8c82d6cc4163672426a81b428879790234e12d64ec66751dc9ca6b388e76d11b60eb6de11228b8b4549ee4fbc5123b3599ce8602b03d920c72b2ccae59be395786250a5671884bca2b062829c92443b275fcd0f1fca8610579442279d13b7fb1f3eb215c50fd9df996bbae48acb18c390816e64a44e0d21ac282671cfea53a692b4a760b0638c7e43c82a4a3286b8694cc2a9a5881ba28a9218d3e8743a79c951e43ad872c3c0d13a425261231b820a1bc9531473c6e9d321caaf3b9ba628a7be536229f5c1ca746210528a828d50eae922a36c3b423032b2830729f2122ffae40cf93083478f0b98a121641405df5c99c449fa947c7a88280ab75a772efead196a48284aa29f4e23664a527212e3410828ca259ccfaaae8753e1270a9ee6e36c7484125af244c9e4e68e579ea306158674a2ecf9155e7b264e9434aa9be82562a2e74dc8260a4abaccf4648568a2b879591bbf67021f65b5ed5aa31d6374e0ccfe289ef773f67570c825f08c104b6004422a5192d632ae045172fd5e082574042110328994048744a27ca2425aeee6708db9104894c4cf31f3856c9a86f511850d2709a7fb3ba2a03aaef5549fbe37eb1f03232365e4f84f421ac18872127d654da99e86da8b289e5907d33b1f3e49f5785744f96284dca0d1f3797275b08524a218ce442dd3f77992b308421051120f16965b571b463e848d9020c410a5df68d2c6ad930eb6b4e37de407420ae1c69ebb5e95c559a6ce5967b87bc93f6d7308214a9ffa6a9ec24c7a10e568da733c69c9204410c5dca95d726a0e6662ad83332410a5ae3e4fd591d5fb5d07db186e80280967f2d595d887ee9ce1235310f2876288789cb417130a42fc50ce24448bffbcc9d01e042bc8c181903e14359ed26fb2873ca11d3e14ff84da6e699371cd71831e3fee04217b28089bd37b26644c9ede183c7ee8a198f4b8e993cb9470824a079b18217928aaf6ebb509f7729a640443f07077288fea524af21fd1bc25085690a305217628a69337629d7d2c942ea40e364287a20926085f938ddb9d84fc829039144b30c1cc04251aebbb1039143c49aaa619c75c4e34240e36120287924c276cce1a6ee957a283cd070c7a181dc8ec13216f28690ab9b577f3af902642dc5032d149bcdf4e3b6e65a0147c8520a40de54c3a8efeeb9d12d6df826005395810c2061c09594371d4b94637712177ec1035d8880b42d2506c4d25ed5d93dca4835010216828cda68e497c552813d4cc75083943b984685a9f1827ace4b910628672701f3bfd26b32849070c21652829697e661526a9ed11190a1f53a78d9ac4ed16992e848ca1207b43c7ec32e9bf642308114351c44bac50a5836af43c0c85ddf026a398f0f4716b29848021cf514ccf23198f902f9472d39d2e71a14f2a132f2421a40bc58c99e75233aa6eeaac21840b75bce6959d996eecad97a443fb8e691ab285626dd27b4a337a89b6c12146061219639c1185102d14af93d988f2bc26c89c902c14b33a8915711a4ed4c34251457eba65fece59b309845ca17c971babe470bba96d2b143453dce836d599a7ad4229b37b4b4ebba33554289690f1e8167b623b15328582127fe56475f965a79c7588148a416e92a4a613e3269e989191298444a1d4ed1ad36a3e39a1748a1242a050ee24272994e8ecaf69f200010e313c808347b2230b21a896e421f465cc1027144d3879ddc6f4e9f19b501eaffd1873a619e51d39bec7193e76bc5d0813ca1d1ebeb9717c7eff24c39c202511b284b2ebd8c9901f37fd30d801831d63dce0027b01f04488128a31fde99693e477cca424943a3cc977896e32570e004c22040965d1be1dab525df9922394b4ee7c92cc6398281aa15c66a73cf7478d9fb2cd444811cab1dd45093a99ba933e110abee7f9c4f8e4abad0ea1ac22ef3584b0d73c6388104a32dab68f693f0845df78eabfc454ff0e01a1f09973ce129f1f94a38bf25773bb1c2187f8a0705e4acaa0c4e6e0edf6a22497a44d8810a764eb9517255dfde415ffd75de52e0a2a637d88d0d6ce12d2d045719336f17383b4ce762e8a6ef265dc8b1f17a5fe92b6349ed0d1a2b680c62d0abb9e2cf3e64de2bbb745c94dc62dd40825a9abb528b75eca5a09233ad8c983062d8ade69e2ba6f69074f9a45e94b12456dbe133cc85d1625c95fe49f3aef4c9337a1118bc227fb70727ec3a2a46b7faacbc4687fe92b4ae2373a85f7861c65d270454950b9f557ea4266f4ad285d0865e2e7389f366c58515addf614cd7d1565915d373ac684911f564541dc08bb92eda6a2183ade356de824cfbaa8288f2af936d2d7539474a3092a5623273e698ab2a649b931fa87d0d995a2a89a63bfe69ff09c93a270b97174cdaa97502dfe578bf6d4f9246a87a2e6fc354f19aa7b947528c7dce613dbee94a43a3a9444ec2849bc358f4f4d640ec568824af52ab93531b705113914c45a776e896bd2fa491cca6fb73efa4ac7f8a78443b93b8aac2b2177a53b2c88bca17c3abc6745a9893019379494cc7b0dbb3a52cd6a432973e7f8759fee82081b8a39d459893613fff2a4834d063d4c19df632f20b286d2f6697bf77ff5c93105226a28dde7666cd98440240de551926594d9fc2077331a8a622133a92841d694b89d207286629599643537baf66dc340c40c05659b6e82ce11524d4e0e1e69712052863344c8903a9d4cee09d38f4186193c76dcd140640cc59c43aafa95ca92593114b7b3a8f04d5206934a1d6c39761874648884a124baeacbc87feeca6220028682f9597ad21cac73f0bf50b4ed8ebfe9b346a9c70b25af3d2d3adea60bc5d33e711e27733621e54251a37ffa934477d924b985728ccc5c9268d24231a36877e8f9f8798459289568e2c32e937d658785621e217ccccee23ac6ae80a76cbaeac9c7ccc69d4d27544627ed781abc1d1344ac50d88ff2fe9bc48c9aab94e302e006912a9484d31bdf83b891f7b40eb61c3f8a0ac51126a5cf49fa41f3ff0491291493d83c5aedbbe640440ac5ef3d49e6a6147d8dd9c1a3a9201285b26a9f9e46ebf2dc0007868c3da4c1390b44a05012539df212f3f7ab65224fb09124e2041b11694269abcf937aad4f27fec3066564e4870d7e2b21c28462a6dd0721dbd6672c1dac4364093622a2044c429abb1f5b331a5fa2e6fae4dda74a1d8208124ee4082541c92856e31e2fe7163142319ef0135d7343e46afe3180230c1c3e68308641010e313c80a30c1e3d30f0817f0c948152303222528492bcfbb0c1b2ce91813211222805448650d4f174c2e3b666fb464408051345e43509cbfaf40c224128a64972a75fcecd3910cb200284528e4efa66fda15fd383878741e407e5f09f4b7894d17c39d2c1765a10f141e1368a6f8e278992c42e0b367a51d0c13263ff2be66e1f840d5e14cfca37d36e34999a0ac2c62e4a3fa62cfbf3ed934917e52c3127bd1abae3ba988bd249dab5a3f74b924f7fb0818ba26cb8db598886b7ff1625193f6b9bec4199e7d1b1618b729ee09ea2c4526da6b5838d5a94e37dce11916992acab0e366851363177d45a834791f32cca29a2c2bd42ba987cf4226cc8a2ec513e0897b7bccea70eb6351c6264c0462cca517d376dbab310042bc8118049d88045d99376fb3a91a7a4f175b01906fa11365e513c91ed9993ea86b0e10a464ee334ecb453ecbd45828d5614cbc3e81cd521f2c1062b4ae2b53cdc86b72ecf6caca22c1a27e934cf1f640a75b07d0f33ce4eb01cb0a10a1b99848d5468c1062a8a26492a26697dc79cffb1c3c0404f0c1ba728ebff6f34498dac497e8e1fefe37bdc8dc086298ab1a6523c4568d4cc3923610fd828453909c2c273c957726a3b608314c5ecb941567396f6ca986d8ca2f0d957a3f44a6fedd4c1b6364451caa0d64af0df3ccf5b0e3e0d58c246287a931fd306286cc46c7ca2dcf94a778c736da44f0d363c51363993149b7db1aa493a5150ed305bf29a5d7c9e13e515a55cf74f69142f6da2a4a4c7bf3357132525932731c4dc73ac50268a9b6ec276503d933f0713e5343d9b4b94b6f4093aa629b144417ad2193ee2b239ec9528a9cc32a2f16da3af4e89f26faeb6d4171d25d49328a736b136cadcdce85a1265d52ca79f654598bf9128559b5d7bdadedce98544b1fb32e61b6f1f5116139d24fd277564544794bec6ccc42c72930963234a6febdfb779329a3c469464d7e8268f768b285da6fdad55e59ba029a2a0f77ade3bb99a983456d84844499cd39dbe73f2b826036c8629037bf0f861fc09361051ceab1d3e8d95bcec9343144dd294eb9125efbb648882cf265d2d69d33a438528fa66557991f334b12144c143e7532b257b105a0fa2e023d631ab9699921544794d89a1dc4d70eb60200a32a5e79fdbcbb9c68028795231c14b103dd3f20fe5ba53a631fc8cbb897e28a7e9ce1c1f9d4429f5a12027577d7ee872d1203e143329bf90d3e216fab387f25ed86eeea4537fdee8a1e0f7c9d7aedcf4f99e87b267750d4a7b5343c743419d9ca41715274ce7f00e05b1d9a489f3203629cf0e6513aad45b4ddf6dea5036196a7d37089d57a543419526a14ffce6508cd1cf1c32c9cba1acb92b9468f74c5e7d1c0aeb264cd06e3a1c8a396d7392e42c294fde50cc9f9b4a929a6b3dbb21bb53f9701dbdd59a7160a30d05bd7e53d1bef16d6d36143678c94c92d66b287f983ec15a94f99fb01aca26685ccfdf98e6e4d250da71db4fea4d1e25b66828c8add095dfac0e9fa128724fb83cb1c5838b6628e7989420ff25cb9468194ab76f32cbcc23434ab2ccbf99ae1b43d9e3e2e4f6147e629918caa245b669e9f85c72c250123c599d8e296a82baa060030cc556ddd8a7c6a3e8d27fa1a484d7c9cf1279a1d849e8ce5872ef42f9dcf36689ae41740e174ad66da7ce3aac68acb7507ccd242731c6ff9d490b458f0f1d5346d16aa366a1248c7a9ad8311327362c9444444edb97ae508ebe4950f2f4754e9f0ccc8f74820d2b946df449bb35cf2ddaa40ac5f1f41d37491b46649e0a0521cd4eefeb348572d0319d1e6d2485b22991490e27deaf9e270a25cfa233b24a1a0a6513e1a7458454cff97e42418466e8f5c850beb3138a313bc79770e24cb0b8090511f7a04ee8cf1ecc6542418651a1eb938e92bd2ea120fb65b5e44f2aa1dc2756f2a64fdd34ba249433e9f524c7341d1aaa26d8404241efb5fc46c65cb07184921c1bbecdbfbc63fe46287aa768cf5927fae25384a29ac91384dcd1da388950b63625858c5bf66c38849264e276fc7899f0a010ca63a29eaab4a9b4acee0a368250d4d3313695a5c9ef2740289d09e25adcc452d6f483821245062da2c794cb367c5092fdacf3a45b75484f2f4abaa46a9065fdb92be745492c498c9d24c1af4e4ea1506317a59149e9672b5994e8578f1f653b4280230c1c61e0f833c83027c011068e1b7c07708481a3c7ebf0613480230c1cd666983210ab50431785cd9c134d7269eb2b61cb45a94445c7be0d2a216ae0c22f2d2fb90dab79fd18398f224e12b2c32502bd1ab72866d6ced0213227f9638b721242e3e4e97113ddaf4551cb64370f1b1b940c2dcaa326ebc7d8a1599474f415d3a5a32c8ad6224afd767892833a16c524e8cdbdd10e624f1416c58ce51d84123a4efbe84f90881aaf28f508a1f14f73748d6f0d571493d2ebd7614c3a9dba569444132be4047533c13669ac288be892b956f3262d31642432782018ec1843063c789cc554d45845319b247ba9785df7dbd3043c7eecd880086aa842cbbbf30c733d0d1f19949cbbe820a4834d063c78e820238d71978ac287b4931d640e2d5aea605331d44045b9f6cb63bafd6b70c750e314e55efdb72aeda73d86200c1d3fc640810f32c8a8008e3070e00803471838c2c081430c0fe02859a6a6287a5a85950e7d1d2edf51a314c5efe82936a7eb8df8d42045b163de2bd1baab318a72da924da99b9b8ed075b0d510858d84a22467ab91d13cd9890928ca25f75bca98a0ea4cc9270a426f2a695a7f9beef744b94f1af9a2a299db369d28e949cabb3d644e1445abc8f560da443143ae7b90c163354c4d14553e44c97066faaa918992d68f7da33e8329258989d2e91de9a732c99fb37789925c8dd97e4ebceabd5c0d352c512a19dacbecd784b75789526be69449c88aa84953a230ea4a93def41efb348972c7e98ff9541f94cc21196a48a2acd162284972679242e89343691e8662f7fbea6672c1507adb5913131e4767beb0c9493ba707192336e585c299245d492d59c7feef42317d497295f8d2acd9b950909ae74437a92737745ba8fee6befa32260730b4906aa88a28b3d1d62c0be50c21f2f49e5493c40c0e6060210dbb26ae6ad55e435730e9e814ab4d7673b515f6d4ecfd5c158ab7399e24da874c429c6c1fc0a04241eed68f8d3299c23d77e19ed9b454e852288e52cf49ee1acff276141ab3b8aaa150d0d1527a43c6b5eee8e5018c27b01fb33465e9a99c706b90bd37a593e79c37212d4149f9e104e57b09c0604241eccb7cbefec718766756780063099dbd6ea78d7a6a688a9dbc57266c6fd63c7d66980f3c19e70c1e1728c19a19a68cb22580a184062309456f1b37a1e48e7aa524461ec0404249663fa94cad6ddbc9827184b29f2e2f19ab167692dd05308c50cc71b1a6b27a5ba2660b6014a19ca473d1e4c174c6f4a4010c2214cec73d47b6e7f0db8031044546b6beea2e3e5c75054308c5d4a0f4ce9ea713babd3780118462ac946dfd38b296c130c0004239e860527b4f95f6920fa3e37be43031c4e8810e8215e4f000183f28991c4ad6ec7c82961203860ff6462f8a1f2dd48eed5dc912bdc18b72fabb2d7992c99d94de8c3364c083870738113776515ed379ddf9254779755198f178d149666edd3d1777031705a1a4991c26fce45ce11e6edca2d427a7cfd374bf3e411c61e0c011461816871bb628f62929dae4106782b816252f619a476d9e16c5f8412cac3f6616a58c319fd5c9a298f384f997feb128bc691e533233a589b13360514e42c4f9993c773bf62b4a928749f29f18f6d7c3335c51d67b9113a5a7569474ab2aae73565447ac289fd8e3262e6eeddd5945c965e53a4c896a116ea8a2f46a1d64cf9ed926f95494c4cd98dc83dc1cf3125494defef7a43b594ad3e714c5dc26f371577487899aa270429aacd9643a1f4fbd8f1ca5289a183749592eaa3a465294b2b276646cce37361a453944469aae9289a298a4cde0ef516485ea84a274312e1ef4058a52c99fef278a321f64c9fc96278a27c91a93e9ac764ae63a51d08ce94b85daf2d8ec4b50831b9c289b2cca63d8885ed1990f1f8f500566f025f0beb189b26cd6158df10d4df86936e36c524a695107a7e24626f098976f37726cc644d1bdbc841d532548efe860dbf15c6e5ca298347d6434614b497aa2836d070f3278a01c9628999cf1bb938bfd91f5e8f11ac68d4ae8f999edadda6dbe3372c2e9dd2463c60d7ee490c1bf19ace306254a99a9aa6d5575fdef0d76980dc18d49944a79e93d2d9ee08624ca391efe4b38d1a039aa91286afa49aa1ddbe7e9844471b3693455db933f6c60b08307193d821b8f2807a55f42a8f5cd2547144e9b9df8e471c397f0ce04371a510e56929b32cf103f268c28c9f4aa69932462b1a3dc243f706311c570523dc9ab5dba5444718367760b6562cccc74b0253c3e470f1e8928685082beea1cb5b4d73ad86cf0e8811b8828d68b7ad29ed9bfc14407db218aba9da6435eae83cdcc8e03370c51782d29ede42aa5eea20e36edf13e7a1811dc036e14a2707292799aecebf4361c6264a0c70d421464e7644de2e14ace4a47d9a7bb1b83289e6872f424cd973ad7ac216e08a26c4266da34b969ddc33f7c60800438ee4620ee06200aa67c4baecbc9c6510c317e8880871867b8f187529db7fb492e1a2a4b12906064e431a0e3c7182820c3fc0502d08b1b7eb863d2204cb251ebe0b3333c0637fa9014b8c187bcb107bda18736665675acd96ee4a1746d92fc9b49cb6f14c50d3cdce0c61d8a49fe11c2bc7a939caf0eb61e3b4c1046da4018fd891b76a8ad64be5dddbd33e38b16e17f82080b0f8718190803718f70a30e25759b994e6c7f2c939a31860c7ca8958152d03d9efd061dca565a4c4cfb55d1ffcfa1ac1bea24c94d4ecb9f75b0e5b0dbc20d3914344f4eddebd3498a1a87f27fd29d318f0693a18f1d63e4d032500aaa70030e25a5e151e45b6d831b6f289e909b56561e206eb8a13c2f4a8e39a66e59a7ebf070a30d0565e204b9994992b6f508dc604339f9c94d17aa54ce94aca11c4e7b2cc1bf240db51acaa542ffba68133e8e69287addc97ece223f6c8f86a288f4cefadae19f249da1685a3a6496ed5f75cc5052259a7275a232144e3a0df731e990a1182edf6baa443fd79c3114b3ca6dccbd75c9f1fc2b72d5837c8f094349dee852199f3a28d980a1946e2a2ce4c9f1e49a2f14374e9246e8a094d4b77ba1a41eab3cd68d759ebd0b85b7ad1d3d33174ae2669f9d9449462f7d0b654f62cefda283ec2ed14251ff52554fe447932c947e354ec9b35e92d437164a1f74d08d13e22b949449733a838e15ca268378cef837317e5c85d249327e82d6ceed8da9504ea53da6fd204ccef914caddee9a32bb7589e64aa11c4efccfe68f61926aa350d6de9ce3f86f0e3b82c29bac73d693ba3ea1e4265a2b2b73cd6f7542c96458698cf92614f36434cf6937c61231a11843df6aef84e8e45942e983ecd6b49ae40f324a28e6cd1c7a638c784f27a1f869f23166f1f62f13092525b24e07d320c3c91fa120c4c3769878427d64842f3fc99a4ca45884c2c6249b12b521427944c9de20c3af78ea86508e9ec2b5642384b2cb261fb94f1f3c188492140fbb10fe19936540289b699fdb9c675228f941d94feb8941e894cf9a1b3e289de634f71b55ae7a2f0a9715caec847cc992173d447671c6bc99aadb6bba289ca97cd0da2aa52f0888e4a258a2889ac90dbf9d275c946436490c27fb7eb2ef7710b985e7fd1fafbccaa4d8169d7cf5f9a3313228837f1f63f410030a22b5287ffab0a6eab465d0921c3d78e4a881610e88d0a2d8372736094aca4c6d456651f8cccd589d9d3e8d89882cae4c11adcf70d5d7b43c55f9eddee03b108bf26bd06752896292a44a6051b2334926ffdcbfa23026f3a3e7ded41e4fae28c836f525eea8f0d8c156945df4daed7a44645c22ac28a79de7cc878bdf0e75b0f1c8c8480a708481e30338c2c0718230caf8e1e38c18a40afc63207dbd426415a537a1f9a304afefd3ad20a28af29624df564dce1c23174452510c6a4cc687501d2506192acaf975ab3249a12a4b1c0e22a7c8c44b1925081d630a2e4531d87cfe9fac4d718b90a214a673ee90fe3957f922a3f84ff79a38a91a51946386b1ae10a348284a426c27d1db9380a2a4cacd4f90a6a41277fe847aa25cda365c3d9aa83e4ba413853b219a49f0564b1f8970a22435a9eef0cd8a6c82add0d89773d935d9ad453451b83cd9a83e8b64a220dba56fba1bdbb911c144397709be214e2a728992a094688c101fe2fb648992a81b322698703ff7a944312813349b8cfadfe14389a2c82cd949145f4bf03913d38bfa52122535729dc2e4dce68f4451557454b54db268cc5590286b90b919b97ee24f228f284925eab39ed2dea24c441c51921a3d08193f09ae4147a4113822c288624af7b0d0ae1283d8e860fbb183478fa4cc872fa218ae3467569122ca2f427e66092264ec924c914414c4444f4a8dc58828b99e0993dd478f92c6431464124edc9c831ad126038388214a56e1227b57b20993538248218e1037881544499254dbf9c9c927561d88f26df61313336c8c17af26de1d4400514eed2433e656e5be3d07913fcc40c40fc5f2cecd9f3dad28fdb92044fa500c0d39d1d154e17eeb60f3c123d93186be8f1e83081f8a9f2778103a2625e88e75b0b59999999937af660bc00b227b682c74e7f5f351222344f45090d1992f36fe93d2267928e949f5f7a54e125395f050de9353eb759fa96dfc0e052b8df0a8a491a52269200c0543511484400ccd4d57e312000000101a9286629160442e9ba71f1480034f322852323a262820168c0543e140100a8601a170200c0885416160300ca33120e349d23e00228c76c8249179d3e8d151af86aedd7c93284d1910db33e856cbc88f11ec1fedf8298e176a0274e14a2292a19de232b6cb2cb04a3c8f02b3c04ebc610708f006c59d95e1d23d183228fc06020c20ce1c17c2b7488feaec6e74715fe4da7c6d55d5fa010705a8d213a3780b0ef474ed18988c003ab4b7bda43d3d07bc72c350c0ba4ca50f0abfceec1fa8a85f34b0ca5c871fe0a0d2b7296c46a522998b6cf52ed8077380a8ed248c679fa9590ec6aede8b5b3fa5899948e4903ccfc51fe5cf4e5aac78173fe09169bc865c3a69db3f8fe089db3e0fa65629cd728947ce369185c6908c81819231e71729c7bd94d0cdf1e43bd29c66e505eb0d0a92388e31e8339380533f3599545c2961a9b64874d6f30a2b7aa568a4737d01f121b414e971cfc6cf1c6475301c842559d07665d946d4167b8a8713aad0c1c05838b45ac0618cca32a2c66621fb5e38b0c0562e31fb5d4ee734ffb0a4b33d6281258e2766a158c7ed10ed1bad38975fa2b32b931be07ea9fb6410e85041c15d31d9486a715d36782fa8a697cbe8819444f62fd7b1069a80a59a2d76e40f01581e5a530cf4f2115697bc9aa6a1ab1416f4940e0049b20318d12b4d004374ffac918a9d9727802c026cfc31a21cb9f069e860eee5c5b91754a531f6d0723b26022f74713b7a55297923b7cd1646925b942776cba797e3921494c918bec292c25cfbf431290d908e4ce43f35c0d01c41893ddc529d23376d802d8871d61114d8f697568edcc05b06e1684680ae9f678e3091226351463280a44adf0b750deb1f36e96b1d28c3f6a16265d51b20408860b7bc807f0a1328a9adf4b8857632b640b805b087b541e09b7afaf91ada6dc4e5f901725c6839ca4781c0a44351b2455efa1413f15e70973b330b87b2b3ae1d097e4cf23d83363cc807e9650e6ebec3fd368a60fbf608b12484ec48952336c250640a8c430d7ef8de18c4e10671b5b616d423c16fcb6900124162bd2a98db031e469ab48a94539187e9fd4b2c64f4dc170539bf39ed09a85416b0163402c8fe4f6d5a458f4d70e5bcb9e686a55033d1ca16d0f0b538e6bdb9be5c624403012a7ceb3867a0071861cc4dbb54028e71d9cd5f68d63eb5f26b756007e525b1353e77d150067aee78e936854f693ec86e49d8d6a9d03838dd7e3a952397ffa6eed98588a16086d73f32e926486fcb8be62a5af04017906b3090ffa95ec4ab9cd02170403b16f5b6dff831683e15b24cc0ed1cea962b73ff83255d8999d772fe2124970dd180388cbe0c211a53e8fd53d13248f6030a7652ec43d547c07b66cf69960fc94633562272e4d62d10fcae1c9eda3b323cfcf1d5a6e8ec98111d6ab2194bac58927bb3300b844614601dacf6cc45f2403416113fa0ae969bb040eecbb6c383c36176467f881f786ab56c785a87f5ee02c8717e4c1791d4bfcf81d594d6d73544d107ae4288a86203ecb1d9c3bce42f35788caf0b2f2740b5a688c7fc90bbfa640c8941a59722d9528721548100c9b5cffcf58034c0e9e8e0f1cf5388158f196308eb8b2a274221739564af0086a6502480143677c237ad907f2a2f40dab89b64ded71288abafd5ce799553575e1ee3b895eb8315acd1c66c7b59f33f1f6c4c0054e0812f742e0438e591526a91747bf95fbeea00fcc19d0ca84a254568202a3c920a62a3811c9d72948ab0ed5fb2ee8916a6c53fb3ed3944fa56723d222519bbd6804a49661432c01fdc0f9eefb9f8adf73a72474623e4dbd8f9328398b00d69167f99ca6baccc673a8843c0ff24c817a7a7c1c35d8583a9184b22283dc710c4c169c77f4af0ff4f5aec3e9d8bb422afc0fd15a03b420fc77bf08b542322b9ef7ace3ed76d358cd1fa540c5aad132b57d8a0c119f70f0ee48d8bd9c9d27306a9e27dc9582b5207d57683c7c680e523f0b233979833ccad0244c2481a96b9ab84d66aa6b861d595f264d7d6505db972463d7c5b4386beaf5ec6f2dab84fb427dbbede4578fd4a8e6844f5333390d117f3ae7bedf70d1007277870bc25e829868002e44b32dfa6f72cf09b26622fce916cbdb9e2c6e8283f340fb85ac7312a00c982886e610603db14d0ba7b9bf53ae54ef491862990d0ba3be6dafa2a91a6ba69e96839fe99bf299531bf3536056063e10598e324fcadacb661c0b30686810956dbe29829692433307fa44e4adfea09d7ba7918997330ae60572c6891adccd081ce60145830486a05b8bc91fdcb115e6252aa9be5f4b15c3a53ea26c8f14c204bf6a268341033d2e4015f4537b8404d3a075aec77cede11a177e8dafad89756c9acad335f0528018976b33a373af6f9bea08641cca8815ca623dce59bb783c9f890207a150ca3f83128ef85133832124ddfb75fd8f3bc983b76b2944f307d4b9d7c64b729c91ec6efd2f25529b9125f43cd590ec4020b9aebcaed67d419396aea99647645f7b802c38fb182108413631225bebe5d2ec356a5454b826f2254849a6fcce8e10d28812fb2585b2258563332fa920c4a58afa3680418e44690f0e8af01238d8a4d23bdfa0a9884d7ab34fc321e3f58fa73634640899d22dab82754b3aa65bd3a3b535d52683754a4ef9b54364a63a9d203c02eae178873043f508e7681960e5845a29271ef981b51e20ae714d04ba4d3375863c1721f34b2f3bcc8bf95682f57d9621760f192aca2e00562032015c424b61acc944a0ac04d43037cfd64b62f0eabcfc7127d14b6d904a8413224f227298cf50e743d60f488388e6c7c6218d26a0919bbd5d9e2ca58e683741d1a79eab593b8876d7da4fb3ee56c6eecf9a68181e6b97b480240c7d9d2db0d62d3fb53bc1b1b4935cd584760849d5b21957b91e06d1b8a11ec858c57c0649096ae19bd9ec3a40e1d1eb0a2d9b70f401f8396a852392871ccb62381ed5be5c9c10d2d2e2c002870496e8b48130d954084c60b0bdc36ba53c824cec31f591661abd6689301f2f83d6d239cd9cf385f1cb0db629a8542e3c5903995c20893d0e616dfe562d4ecb81c3d5dc80880ed3666d1561c71642518dd30df1933ba5e98325d90b30b574dc0fbfe86dd43b170a5c1b4ab9845f51371582fedad0769920098180dde3e8822be76598e9b333806b165832631c44ebc97ee5bb682e7ce7d00c2f5dccf4274b395849b3ee13fa3fef581a51b3db186abc20257b4c392f72087893ea9c49f45e45d24e50b5b676e18d30c7903dc21ba77b3898cd8d19ed500eb01ba89af02a89262769e15c0debd9c67ca4b494a339b16e3e3f67d3fcb63bcecf0722d7ad0aed1dd88a4d482c196816181bd71ae73b0317218becaa74bc1c27507f285a8169bfd007f9c58a694c632fd5ad74f8db15ec7eafaf8b3120f971aeb3b819d94d2c3a13b75e8961b3d95a03d5948fab3bb8e574bf50f4aec3ae660b28c56ed57e52053b81305f54e79d5b06de4c2b66148129a466762dad4cf687cf494ed71b688a5f0740cc0ddc8f126b20c94744007fa7bdc924a36722ef27aad321166b4940289c4ec8b3d0a58c4f445a185342ab231050a17692e24c9b1baad42cc2509df2d1192e328c187ee534e08485704536b999deb4e48d38a661d4f0253abc1778f54d9e7b1510201176bf1a7ceae21cd7364c4e0e3a9a8ff8f6397c1e3846a2f70fb049f84f1ce65056539066bc4ea65e0203f4b96b1ee43c18c27607869d74b6d0aae3805fb4b1bbc1be0c0081c80304c585a9d1de6e241ba794e54da657231f5e6ce9677ed27c4fab778f427c0e8f4f5fc553ccc85f1e42e12f157885990af1d78e528659930ab9711eee250ca8d0b3e8a7568ebe07d6c6f3e3e4773b97bd1b10fdfe803de361f9f7118de8a0340d2d707d0e7e326f7723e92dfc538408d0e343a03bb555cdbd6d4b55a33743a3eda3137986769f85ab751e92459e65e2d40628ac2e5375abc95ff2857c63843b506df6f78b44aed8d84f624a0cdc356ca1d20a6f559e8d0ae0b2d7ba6d27f603b4ab421abf9576f4727e9e07218a91606ca4aeda1bb4f7002ae85aec821d65606d1c96376eb294211603c3296024f37d4811015a650ba8101024a25b32d1636ea2273a445ad353b4f1cd2bd9dbc9d6e5e69639f27c62f424dad5004934558460a2dd9a76e7d4986f2a2d691b51dfac543a107aaa41856084d26fa4dde2f3470dd43d15961e967e90a45fb97efd41dc2bb37f62e443aaca95ae6be761fb37d7b60e806404106bfff213e94260b04f53a4e8e60b80ca998103f1f65823cff0eb90f13dcd8d6f7cea128420014ad2fc9728034e57c92510a300829c1db88e0c2d6ff1552120f3fcd864b86f2a6fa74a21b34ee943b910aebf3ae926dd31570672d424d82a10d48e02df740f0796ebfb6216df50af98cde4e5ca699a5d0e15f36492dd1d6e7cf914a982b4b4ff3149ca33cb528e3e52fa2590716925c1d24fa9347023d029980548598bceea15050467c8f8d76d89d8c5cb6c14cb1840ab9dde7224bbdeb9a887b1ae8973ce9e0762aebb02f3fb4d7c1b96d64baa60b472187885ef937928090c3785151f286355cd2bfe23c0ebde9d8db9beb0cdd24c64f0ab80c5b801d8dbdc932f46c01aa4a604526c171e031f5f8dd2d06b38721f90c4c40403506dcd57284e81d7b0f9fb5e4d5f11bafae27813e12249cf09f44c8f9c279334d18e84d47f9e4abf4ad010be39e24e82642692d4f586c2590ab49ca74e67f01f9ebde71f0f0a335b99b505c6a0d95828f8ede804617b1b3c838988a76d2624c924af166fc70ed74af3269c4732eca35a9638cb80e10379470cbe019cae52e18143b81d2e28d184de6655eca1403af909bd65b18a6d743aa2b83a063fff56f215b8f83ed286cf49c8af3f26a88d4e82efd208c831d1a15cd4f5e0e9b2378dcd7c79b12a9ef8f4f5a193f6c4153290b7c6e3d9533d723d0eb911e66f621232c817fe1d173758c0983535ebfa12af56872f347a278546b05eb936766f5935190048003cd18e3f6ec82cae3248fef43aca9084c6e1b3eb76f27f64978e9edc42d8ef3a2c6a01406e9afd27b678c18384b4ec2d1ae094fe0327b1b9ff69553113bae89121b908fba52708b67493f664a9a1172e357eb55ddb538039554a5b990913373b72d3b60ff4895822c5713ffccc82b347c9a25e8bbda8a936ff85f623a9700eb4fd5eee07edbace814adbec757bb4fc41d0d29db326af5a6e25e5421c2dfb4a83a0cdda2300d0152a6343e2d9753eae43ee8d84db5cff3b3aeb6493c054b19045ad206204879b5a4700583bae758479712eacc32696266bbeed4bc9651e57177a1d6cd993d246f9f66f8476aa137dde9ba4d975db19bad84d5d6cff3a6a6cb36eed6a99f03d0cc4162e3bc1b2a67137b1e5da2e9aaa96b9eae4bba04d32dc5e92ea724282b78d5c5abae245d4058f73c297ec8525897a4ab5b9f5a23a128cd6083bf410d111e59116116ef66ed09159977fb20e5b6ba836812b22acd83647d23470c783afd45ffef50cba5b50aa150757fa79327a646a7c5ff73199c16bb380b9025b08a40e1055474c0000a5c4c409840d5cc9e81eb8cb83f0044fc2d021605c413604b80ec0e5422589040750b28ec032bb02043132ef0c20235845fb8252754400b9820045e24fe302c7701a47090215404162303feb4459de53658802a16e820cd59ef401678d3011e086458806f06901808e40b32a4781348080f1443d42319060482a381ec11642813ae8aa9f127ffe2fc0975dcfdbff708228a2ffc771d80e2fe72000cf7397aff854494dbe21e70f9ec636cdf5568f2d009dec24275e7c4e1539e2c5443065ef1f675576e1b7394f91379e9f12df1a2ce5b6f3e4582ee0346c0630c6fa188bc90675f6dbfc555dc82be5f9efde95b9af50f823688e542543342824b80502358b77d5f501a7622197cdec09d06de193c989d81e69f16bf0c3d9291899f02abded38aa77b9d68fae9f270b1863aff7588b1d5d72eb917e1ece522123afa43f5c0e188f3e75a901d86a9dabb641e8cc481eee84893fe071b1fe7f2daa8524f3a33910e464126d9a0cc0dfc19b428e73057b2c1ca5c81cc408d9f36b2c7de065e36031479b3b2508a0ddd57675c3b289fb6665b6395531bf34ad724a9645426087136684364c6f1e0db568c4f23a35bef75522d0822ccb2aed1506780f94a8dc06e72bbcc5539a1561810748e678714bbab265da8a76618ff2ceb6a13aa5ce5bb81cac78794bd82470b21c1a87a078c1a38546187bdc30021ea7a390b001d3b00291ce068372a8ee0b0d844b54e421558669966fcd0ea105ccf324042168794fac7f5bdaf37f910bc8a9b2c4b0ec8546c885f9afc1ccba6d7eb927104a078ec2d1ea612093698229906accbffb34ab4058427ef1928a714805182539e1b00a20e43851594bdd583240fecd30392f0abf959fa2c082b459b3a84af06e0f2ca3d3f740ae9657204a2a6b54cafd71eb7c8da099824b2e83a1a95c9138f93421d1f2cc23c18165c8025a9b338dd675baca95729f3f1d0afea9ef6dc85719e5dfe30ae9096a3007f1b3b794a762f7b69e0018ff370555de9a3003bac720fb0e656a2f46c886733c38dd63a808577570c33773a0a23b68766026ec49639d5dacd052f70255e2c2d5f5a64ccca1d8558d548104ba2f2f45781389844d5a07052eae78efa36221b527dc6e6292593017594997a4d35d4f54badc0d61c9d1f96c5058865346a6f34d6af8b12a53b8c4ddaa9f47460174a1554ad55c06cec0bf0fbb02bd7d6f6072984a5e38b9f4e86ea83dd69b37277a9099a482f3cd59bcc12a3520f486f362cd5d7e3aac4b196c17cc16ea94dba8ce8dc3ed869520c2f24ae9fa102e978d9742ab140897c6442ee7874c76657a1ec82bbf5341163e28bb3db43db635343934641a772d9e3e7e371190241bc3a27f000775441bd8780d9b469dd01a8440c8ded8414680cd487cba680e68bfced81778e7fd0b8d6c50559d18de51711eb9428103bf9aa9864976b311892f1310acc1faabf03d549c63641108d29e6e3f25db3e12e5c9c40fe0aecc546dc5d7afec87fbb181d82088d6f108dd19cbf5d4a8b5d1689510543076e2eec85bfe29a9e7ac1bbf04b17cc6a26949a983622c393b19a791433d0959d65c774651588b4098eecc5c82f560723bb536a29cbbd9c34b4c185c1c5643001efcd9c3ce0e67b98a49d20119aadbc4fc9ccbee30e94b59d53104757e7a0bb0ae36f98ca125831d2a4a8ffa6d7b1f5ebe1369fa5172f090fdebe0db00c37237a3d70e52c1f82fc59aa1a35c0b6063c46fb2ca80219148f793a8901f900bf3eaf4002c4f4e66ffa252abd1f70542975520641d1caef70e2cf0e106b63038030daeeb6651c231f6b43c65bb4ba57ca2ca7ad4d2b3bacaaee66d6d88aba3c649882c58df16353fde991918a21882d36d4743b277a9c1955243ddba242a5309e6c76f04070b82eb82c1e4723283228e4a3dcece5c00832d2cde9c99f9db7640f4cc83d80e5cd6dd7a261893746cfacf0b4e08cf3bf29c009205665e8a68568339a9da5d8796672254219c59a4fc7bb543d7f3b52b3ce7d518522c342f6d52addb19c2dcd9214b2726cf48683cf743e34501835d471873f2b17971c6804bb87683cfa73072ebde3ee21e53dacd57c63b6cd9ee076c866b79e2637ad08ca76b4069f36c193bc82b104c69fd0b5477d344b95600590c60f30b75b40b0eac8d174d7f44a45902d8e43320783b8a854fbdac1a12eb0fb3c521d0dfddd00b311288c57aec56f2a9c602f9be0e23d7f82777654f08c108cd7376f425ea599bf729ab771061f774496b49a7918aad7ca0a05d6ebe716f6108ac80d133f4da498fecd1d54931c01834e261dce419f6463b046a5931c8a4d582966aa0025ed38bf8543f6a6b558812618318f7610d7963a961531b959af0cdcccfe7b5e6021c854d09a85f0465672ce60d7c9507a3a5b763020deafb7e5b885d9959a2640af6b33a088b91a59581ed091d94a150fe6b7ad95cea117af9a85dc2b38741951ad43a82389ac55308c1a76c832b7b9daffd78e704e8a99838eadb2d366f3156c8cefed5b748b3042673c700aeb490ab7195ee38d63067d804292462527d79d8334ee7b6b228705572c99deca802fc4d3459868aa7b08715bf36c95bf812004725badb26088b94d03dbd727b2c5471abb2a92e49814b62016f2a1ec1a89853450008ef5ba24aa9310fa81948e709848e2ceee4f6994724190a4231e5bd3c39271327471eb91643536421993028e096d91f19757059047637a676260a5c552eb3383d21e2e2e79c05812a3fa9a173841ecb197fda6584bc02a88429380b67a5df30d62a7d6ecbe7b66a169dd099a04a20d88780868c3cb33d8626c9c787880cb700424e94d94707c8ec91b1c0f01bcb86d0360db61890323728af157770b29421dca25396c8443985c51decd997b1a8af3a69e7f404d41ca5384b24e5dbaf10e4cde6611e7356da0ea947271bb5689327455a226a38c5a0c6a170622857c2e11364dbe5af80b2224f7f4dec9a7ded7be8c570d94c096ee6624356698e727c622f76dd90cd5b676376d23f27cb168ea94b0f2ea82b6bd80401c0dcca951719f4868bd870e179f893fa0ba4eff57d8e68306270409e7edcaf03430eca527f7fd639410bca3586907cd0b3c8598241a770c9097be358ddecad02d15857063b691963ba90b1f4170a4ee5486183e936185e4c83307ade66727a101dfc9821a4d084d712d1346e0df14937f800115277e342e76a286fbe80081dff1b319a5e8ee84425262a513f2bbee139c5c56695b65cf6b41506d630b820b20f8af61d00f59a818026d22d9219d22408b38169a10d7aecb003d8f94b12069905325d7b293cc27d588feabc6e381a149bd39c41a08a2d198ea09b2162b599c7a5d0575215dc6c8c16d70487e193b262b38676adc8a47e12e2fc687c5661db5077a7aaf8057816e53c6881b402d473219483c9adac60e53f89c7fa92ef38c9ad65494a882391393601126f8b3ef617d65c835a638315e57a9ebe3eda774f1bdefe343ae8ed0b7adc944b505e8db2b772b43e2bb8865bde3bb35139410b9deb2a524437c492f36ed56cdad27971c354b826c711f9f29879febf6e44522379d9ff048fe0ae741d55aea1fe589f1b73601789838269d49c24ccccc04306ad8a9eae34ae37ddd7ab2f2e6394b50906ae932349590796a6d5b199ed37bc1d49e567d5b5e1c8aa21527032c3adcbd964381892f1b27ace9047df1eb751a2aa1e5f148a7cbbaff40ec858d3c40ec3d0cc77dda1480e696566de29359a2b169c1f45a7b8e36fcd7781f9d1b1d43dc3de5ded1729beace797e7e094299e802c24e67e44d196c48252a9883c1f06c61484b7a2c7ca369ec8711556fcc316f233f0d58a5f60ec1ae26216d64c240f11db6c139ce9da84dd18b226e310f1c17a9cd0dd20cd2b6e86e3ac92a57e3f02aa30f49b3ed21c33ac711662b253396ee86a1752aaf9d918d78224d81efe2d465ad2e24b68d3a90af3a158b34ce56019c7da270f67830ddc1f2e19d43604c6276e1a0c1ed8bef620f1e594d2c17e7eab2380340a4b7e753b8a8e44349d9dc8d32cf248445710e4bf0160d37c872c909de42eaace91b6bfd079e26fd122ca5a4fa57509b9082e336173bac03baf408a2d184b24c31daade6b168ea0a9bf1562349dcecce28dafe657c6d07e5cf96a56bc62107652012cc43510364c374ec8c98dd24fd633854288154d8f5a00063a474d87e017c15d4c63f85fc8453c0e4593ce4880afeb1d4875a5502c0f1ef2b1f9fa3a0cc246e07a68899d145e4479e1c60bdb47d0e554a715bf5c6e41200e6a969908509fce3b5738366246a32ebe6300d25c8ba62d9da41f918b5382ac12318404bbf627db4b64580fb13efaad534f343a60d9dd060ddec37c7a6917ada328261a451a365906ccb59d9c5a48da35b50a2670485d368ab0b7405fdc16c2a903ae3ca2118c7daa40dc8b93b72487765aace088edefca15fa60b65710f153dec33565a06fe27ffd8649b263bb1162e2a4e907f2dde08f9ced26d5455dfcd92a729ca371bedf1cfe8d509fd0a9acac53a6d4ac537376a112bb22a1eaaf179835c98a7ce9d1907cc9f10f79ef8c64c00a604031e65b186c349bfa0d9b3e51aaed391f6438c2c6d0affc138b6c702fb4499d4ef06bcf80aae87ab7dff064314ccb81b24c6871c1ba77a289fab9bd9ffdfea9fd8d22d3d98121345f0faffb5e309792bd3c61899b9bb81b2f8c822e3792df1d9517eb6720aa6151cb79454a62be021277a17a89c6780297f4f817cc95475086f8a4fbb3c4f4536b507e636792690357a73696596b074eded70b8b9840adc287baeb4895c58a46dc585d3888b03990ea454c6a0c3688555294751259026c188a32382213fb592f66e49ac3df08ed0406325a3a4145355ad4ac0d16c1cd943a4321ebb090f95de42769c18f525b3824fb957b37c8f10cb2ee3463941c91594155cd98aca7d0621531767053cbe58700f906dc7685c425094ea5afb73bae669ea41a0a47211e539c4e21518140b829c9e8ed83c881ccc9f312b9c57640471a205acd72d0c319fd939d4b0806e828521ff16f3259c5b207d746190124b06a4ba16bcbd85dee805bd01c34837a8c0375790b733d745b88760a0a73b5aa6992bba059aee58c81b1463ab05310924882e5a778dc45e689abcc220331c90c16bb0abf787b92cd8527b042070f8a0609524c841d703fcb530457e87d89207b71b40106edf9a58ff1b301da633643ee1ec9d930e4bcc1318def732bfe98da44b7dc0f69a3877fe0799f54c6ae446361a5fbe777a6456f7c4109850d5a764c1299ea20a6ea9c22a785566840221e1e08529b3e136c9fd97ced8d97543552ba58b3b41d4a7a0aed25c38babff8e6fa867e9daa22138471119ccfda725cd474289298201830a92cac66909bab501727a65ee531a7c58dbcb630d4c6a2ae93700f67a0c9f04069a44855832654493e776730dbe43a0df44ad6dbcd25ee222289997026ab5ecf758e5859ee49bccf899d5cc716d6375a474c18cfc3bc1cc9462f10c60df1c416b0dd6f8cdcc0c5ce341956c30633886d62ab09b525a229f9b7445eff6039fa964732ac5003cc7a0d5651964c0080dab23d16b81a69dae1ca513c6f30db34f8341aa831d1c3dd336273d35252fd92e4bc693134c743598e6e6a9156970962c87e7cbef42acd7c4ae7da1e26d15bbaad90b63b83212392fc2f1de6a0b5b2f5626293114c6e5cde6c8dad5e1b3db4428b82949643c279371fe821aa91732835d6e9865765c330bfaf5d7a9fc647df45530666a8a2bbb20b6cf0efdb2453a4c70c435d44c91398cf0a354c566d7212c888c2744a29c39d914ba3b79c6e9ef16498a5f24e7e0c7ada0e35f3285ed3fdc1ca4800fa25eb1eca383680e976ca0b754d7758a296534dd751f3a00af31cc49fa9fa90d7b5db95a654002e058021b0ae4d7fdc95c49045512c668bbf5266f93eeb3b8c492a458a260c40f6bbd83d691d3b9c3027f87ff86e5a8aaf805c45caee934026c3268873a33bb8a616807c86158abc7c79c1ec4b1c85070bf25df278798fab4a96868a779aa77ade2136903903a48ffe3ee2c3c704b29d75d22e5466cfc247d3387b45cf00f591c7a5859e562e60f6c1fa0b783161cc70a6287cb76b54ae876860500880b8b69b80331e03ddc245a0299d509255e3303257ef03172fceb58e76045fb99543f51968d5fe68075b8e28797450b13ee349d60fc8d185a1ee06066f894615a18548e77553d52a01641c61ce5c403256bd4db50da89e3f7e86be848781dc30473863836dd30b83e65d6c8908781a81c0aceb7b9eee0483b4e21a41942b440a101e329b43c114a4e516118f41dde05d9f3000cf6bf6e12967a6ae20d08046d3cd2f15e03f63581476548f962624cd058e7a9f49ea4bab712b184174f8dd0667176578f6d1827d3102ec851b6aa21370ddd8b4db5f64ebcbbf1e360b4e55a861530847f619fff36b2363223a2c020c0597d522cd106ab129c84ec0b08eb80e364721a6c781fcae82e52e008b9bc6abe25379d4f3d3863933868e758d929610521f9d0448c8d984244fc568112b85088a13b73c1001834287cfac8201f517f2322a5b111e0681d392ae6605fbb7cb6e6028a8b741119e77d0876ae987348169fd627ffb5ab3244af55b5390e4350ca0c74e5622487c666db1986f183fcb7ae15c324ec1885fe3b41036cea1c11fa7d92ef519c437df53c8c74d2f9ddd5923880332a6c307f1a30bf835bed38f990c1281a3bcaa39c11cd59681aeb66a72e5effb506909a5c0806e5598269112e61b19fcbe1be65bcf4048b53de66c75fa5e1a90943549253c61b8bbacd26c9c93bb6d076ceaa7b28c91e3d69b49460a29cd8b2631c609ac0c105f17b8d0114d69ab603d841f4b20e7cf9c479740111759594b117ddb4a5a699cbabb4716381226820cd8a013a3ace4ecb9bb091d7dfca96ef47079632645f51d8be76c1b0ba2c71eee75a99b618786e7b561ca9452a911fa567e69c99f4625eb2f1b2d2980ab53644d148a4cbd56179191295c5390f276e6952bc9cd9f687347284b13068a305891fe663816128a2f14d4e794b9880231442a5df941b1dd4790a86733e46a1e381d30183227c183db94b313ea86ba79795a50767271c2315d4f1d337c684ae2d7824a5c89d86b2854d4228c539e168f10f2060102c400661bca0d0939f2ae10aac2c1c072add4defe401ec0530fdc2f0183b0c62a62e93e20b5cd2539323c9f628febc6b022c8ea40d212024627d0636b2cf7eca051641a5810e1dad1318bbb7f0fec1397d4bd76ad97141638f196e5c050b963c4253404a8be7fdc9d652b9b18b5b936194aaa1eea458b4e8d5689ad47ed4e8408a1d86982d8d639090d628660705a9b49f2662652a3a08127a2ea302503f6e0c52abb01f6b24f7a836d24c4ff9851e586a48909a2ee6572024af73212bb6090837fe00d81f25506c82f0330c910b6a051ae59d1defc76a314829053dc2af64b5b891e681ab497f67656f100fbe8377175696de8af5980373e358d36d94ac13e540e68036de688601f98b64eff65c4f16eac9cecba25a04333e21b73b270cd8e59b4fcc2c1633d4ebff02b199f7b8bc00ce8469e88311b3931687901e8b03b60e14e63a1c15dc389f434b9204160fd8bce05793aa6917cf267616556ba8b9ba66c23f08cc0bb30ab1ed44bb91793fb9b57fb4a2b811d3920bdb956a636a2617a268994b2c048c0e9fd34b721f4c18d7b8ff3fc9cf34516dfde2a0339362c1266601b52c13e38886a3f86a61a9e4a4558ac0319f40755b601032502c50e076118146be04467b5ca185159ddf48b405c114b7b0d58d1ad45c9a539ed0744bcbd39d633c2b99dc10875b9a388e128776bfe059b792fe38ca227b39167a54ec9d72cc4fd88668cb7acd31838948c12e007cb6285801734171306c0687d811926454a33e914bb5670d446a21d66aba51cd745dd8844565f424327deef249a3d59226572101aae25728a33b01e9a89adae3c8d65594c69ade7f518ed6e1335a70542cf7e82690d9054936453d64b486c54941a1a7f8dff9c12ed1881ce5323eec0effc4b40a5c405dc2b1420bbee9c2a303b8396bf534bb8bd5daae0feb75695156ad63069205a035b3259c47e2229f6d152ef657b2443b2cc1c4be0b10b188e0491000c09d925624e539111827e512741c642a49955acb777157ba1e3c99c42c8c7832ac5cff28079bf065a407af3caebce736848c3ddf28ba8ead0c3cebcc1eaae082cd06195e58774156e27f2a55e946398b34d7e627617f469e0b1237dd8d5f950aca442529487183cab47df218050c3fd23fb8d4e1da9ec934f81a26284081b8c5c709dbd18ef3ce9516c99d8862029a42b8028af92337b3580e951239902ce9e061ec9ec8b64961cbb67f18d44d572c1a72845080d3445fa08e4c694b7ba89507ff4de846f9b35ce6db4a3197c89c5dabff30e2c2ca442d01a751b759da8f69539b0b392a0e43f48d335fe3da060f0470a67c85652e49c2c5d0a2aea3ae567b7a5eaca8a8b31748935ca39a509b08d0e179e6edf37af4f7bbd5d97730b3aec53bfdd28dd70af8b4a233e2028d97814c7a5db8d18994eb4bd1d52788b7b20295efef702894aa6c1f4d65acaf35cdf09d7d10f9f37123795daf1c93b301defd194bee2af7875e3f9f2ce9a70075f6e68124c837bcbba6d841dd77118345b580dd81534bedd0d592b5421ef6e685dc06e45139e6945086caf27a1b65d230a3e2d55683abf6d29f25a2229ec2ff7f8f91b731fa5cd154628617b44a09c6d24afe992a5185d808ec2cfbc99d704a181ca2b03471042ee0701c204a48ee1f0645607838f5a297c4b305d070440888606de8d6e0adb278a0cfd5ff36101ee03f7933cc5840547448c44021e16445c0a3660f0547230333333333333333333e333aab9e197f0d75e22e59566fabec02a33333333895fa40df845daf0d66fad9b1bbc8377885502410a6e0aa40a5ce5268b5cd1200239aefe78b32ee5e4a132049257b050e3395ef9e5e8620c638eba2ad01002398c2b97de1e5f74d182d2858d21461917e8e2040d50028d2090dc3e6c750e0fb3010d2010b357bb3777c790bdd780c60fc8f9d3a5a5549b03f38e0c6c518108d0f0c11980460f8829e718329977588987060ff2283b3ed5be7f0c347640ba1b9f75fb5fdf34754165347440cc9979dbca1f3920c7e21ee5e9f02b89cd38207eaead941717346d92c60d48991f7c7d7d6cf196d980f4a167f4d85ab3d9c7d48014f445d43585cf7a591a34207898b3e5b819193466408eaaca3fd2ce81887b68c880f49a7554f2636341ba34d1bdbfd0e27167025386036090052c0861dee2a1bd12f7d159bc82d0213daa6dafd0fd5f16ae20669d55af72fbe490452b88b616c3b4499d052b08eb9d3dfce9c71676cf6215a4af1c16c6d2336d9559a8821cfd5bfc699ad10fa531b2480521c34fc5fd2abb1c43a8a820c7785b93d5753e1f9e82ed4016a7209c66d95ce9b2ef86670a42bb5cf4f376d16c97521073c7cc54170dd3719a14e4a8a463855ff59c4d1a05d9e463def3d09041da1694ce0364210ad2feff07e771f0b0432714c434691795d1e8515640410eeb5783b6f709a2a7f7add5a8297dc45b30edcf5c21b44e103dde7f8fa23705c9708268d93a7e4777fdc17b3641340d0b1b377b98153b9a207aca9f25a5ebe3ecc904e162d4eae71a1304bda82efff9fc2f972055da59fd1c1b4b10367e4ab777bb1264b9abf6f8c86d36339420c753f374a1b9837d8e49903487f69b6c531ecf0f4990234bf7cafb880451d3485be977945c3d20411a0d39bb194fff94479083d914b3eb73879ef28e20d4a570ff39e558bf7c23c8514cdbfda311a697670439cecc334fcb2f826cbd59f42ba70a1b7a45903a8e5aeb53f618d6531241cef76d29876f19baa320821c7a9bec92b66ce5cb21c8a2bd65c92d86207b9c34f775cad58147218896e3b89b15be3b4a138218693bde9f2f7d3f1f04e9feaf2db95e6d762e0872a664e7a7d1df2d2710c47013adba9ec30f1e40104a3fcc1f889964e2c388f46d871fc81f7e5b4e2d7d20e54b15de3deec5df7c209a8eeeb6457b0fe49ff994fe3d3a0fcfd603a1ad7b3ae5cf7920eb4a064d975e3b7c160f84ca9d2e7387d5229fbd03496a4eda57fa93ce6b07a2c46515bfe8d681ec3e77972bc6162d970e6489109771afeacaed1c48e2f31754db72148bca81982bd724f543ffd8d4389083a70c1e6caef74b850329638974cf59082df50dc40ff4827ebc2e6e9eba811ca3a2b2e6a0a9a56903a9d3bb324bc30692260b6321f46ffc630dc4983bcfc29bd7a7871a0855291d3e4c25d33f0dc4ebb30efa37fefb8206d2c751530a3fd1e95b9e81d0b2e19a7fa51908d353d625677d96836520844ca6340f4306928a68958e75aecd8f81581d7f8985d1a4c1443190ff72b6aa0f52be370c03712a5ecc26193f87ea81816095b36fcfb665b5fb02f96c4307b71a2fb2c30b84df3c7b1f2f7f1ceed60542bc9b6d85dea4b1332e9033d6531a0db376295b20252bf19c37685fad05d2be759c748ec377310be4c9f02d5ff92d4cc40241d3e7b75c48c570d515c8fda139c3d387b15559c1d14ee5177daf02e9436b5acca5ba51a302a934becef7e655bb288b2990435e67ce2cdd59c9a5409a4e5fd9437eb2f8312eb8e0820b92411651c03288f7abbdc7e920140a8bce79547493c44906195d88518615271917680e64f104c33b33a33b635ec6621664e184e2c2045934815c1b5b43e5e0c187166502e9a3741f3e2ecdf6712e81a89d4a55cd3a4c1d971208f52ab3f3e92e6b969340b6b055339db52c2b8a0ec80209847dddd0a3beb1aca31c81385295cceaa3e960e34620073fd7f69a22902da514bb206b553a118896b462feef8ef1eb21103a95e7bd75e6e58e8540cce143b32b8dbbf1370844f1f0d3c88721df5c20903a8eeb72d8e2f93af407c4490f52b2294e4b1f90f2c751233e6551abec013132e69c1b3bd546dd78404e3eba6d66aa6b1e3b204767ce76d1e89cadca4207243dab101e6f61649103d275654fc7c428230c072460021ee8420559e080109edeed9fa16208358b1b10e5235b8d6f173a4a1e59d8c01c3c3fc65cff79b165842c6a40128dd1cac2dd87ee5c01b2a001e16fc4e7f35663fd3320471d74e3756c1990850cc872d123d360aa97fb8905b936663e6f4e69623ab020072355af513b5e41fa48d3e30be629e68f2b082b952c3376b4ee946f053947131e8c6eb2506fb38268e9d34d87bb1533e22a88b6c9cf92f4f7f674aa209fe8079bb6349bd466a482a817952f7ef81d343b0315a4f1f035fdc4d66d927208334e4188d7eaefbc5c212d340539a8ae9d8dda943569334a41b898a894e3fb19a420dc57e770ab4120cc1805696f3a4e5d367f503944418c7913f7276662b6cf0845251aaa7692e929d5d29569d9139752858b8619a020994e760ce5dd27c821a35f35ad34fc5e3c41cc15ad9aa2471fd7792748b3316591ce3126cd9913e4e061ccf5cc3bc28c4d10da335c788c211e8f468c324ed082315e5713a4a0d3b9d6f26582199920bf64e6cdff9e91fd68062648c1638e6e59de9fe338665c82f471e6b0d74af262ab8b168ce1617c51ae02332c41529ff41c29f9d16f5c70d145179c64dc8c4a103427ef4f161e67215382e897a3be5dd4269d8e4990cb3a49054d1dcffa2909b2eae7f823af237abe4810c32c86f79c34489077ee7fd62a342f66c623c8ab6fd1c1871a6ec10c4710e5e24d5f54e71c66a611a41ca6d4cd9dc2471d1546902fdea25365be0872685af4709b540431a54e5666968364b612618820bc445a4e54a64a99e310e45e4bbfb5e1d2535c671882209665aa2f787c781e146614827416b387f4dcb1657c0841ea0f6e7755f53afac72008a195f347151b7354db0c4190b2558eab1ff967958f63c28c4010aa2ba2f3435c58720620fa0fa48c79b5425f86be6af830c30f84ce95f5d2eefc86197d20c76d1e3e3bceaabb1f3e10775cec3e10fd603c650f04952df3fefd3b4d378761861e88df81c565cccb692402c38c3c10cf76f454f4c703f93afd27d12b8bfaeb1dc8213bc2230f266da3d5851d08abd1bf316da80ea4187a2ff795b4811974204f7be8610a9aa19f674e61c61c88a1d92fe73855ddc3c796c20c3910bebed355fd43ff3ec538360ee4dbca319eaf4c83197020cb98797c231d35e787175d9cc00429283b83196f20a4a6f5d498ff634aaf175b673998e106a259b0701f3a9aec3818cc68033933d9ecf5e69dcb612fb6c82033d840df7fd07721c61a8c4bd3f2b03adbb856a97a30430d24c9aa94c482c978276d461ac89e2ed5c5e38a1b3cc3196820c54c173a6ac6cc3f1a13c18c33f00c3350718133ca40ce70a9212ce72c9a73908160eb39748fa5fdd19435630ce40e33352dc7351fdb27800b22c50c31d88c30141733c040bad1dfb6789b737ae5c5161605b6c04004de1233be40beec30e59436427a722fd8f671125516af9e7294a9f9ac5c76802d1660812d10902730c1ef60461748536d3b1e06adfc22cfe002a952d89ddcec55d99c2d90e38b850f623ec5fed00239baa2eda54d7ab93bb240cee71e75d81d6e3acf62a1dcb6ab13f24120ccb802316f10ab0f4eb7f2fe6504355241b0d010b517a21b6aa082d0de1fc7f7503aff88a720069bed94d2847e6fb55ba8610aa25b6978ed8ba153104b4176535ffda0635779570b354841fadcd59b3d3d43faa3207fec28eec68ee35d1fa2207a742631a659a2d4d750902ec3dde7ecae211e82821ca68e9557723cb03e537074c1a5c627c8b1bbd6cf54269591bba8e1099279f417fa81a7709dd6408d4e9072ecfd9ebe3a4da8c109a2657f863aafe9b90e136a6c821cdf774c9ebedb75792fb694504313a4cfb4b2a53992ee484133a1462688173a46eb38e868a3053b0057a8818972dcaea09fc37841868341065ac0a450e312e4781e07daf7417a986b50c312242f2bad1c5af562eb0b160ca14625483abe1f2f64b29a12c4fb6837789a8e82c9a6c62448512d1e784af22956c78bcd8019a186244891d681ffc912d0cd408d489083ced694e33c26666a6d81010660a0ae02e0831a9020e647a69bdb816f6babc5cc811a8f503cda542aa24d1ed4700441f3ce82bf6c97798a0c351a41308be5518c97e9de5c53420d4610374f4e5e7db41dd769841a8b209b07d17148ef08420d45548d441032266bf58e621e8df155430d4410aa4cae4b327d086228a9d833319ea31def0a350c41fa3e4db229cd26d3b710c4cdca7ab13e5893f0ad50831064cbd9b3927915778f41103b8c8adda1c699b85b10244b0febc2c71d97ca5b23106c479d63f138bf0fd40004a9a47394316d87ee19b7408d3f90837fb4a395369b5e9f841a7e205c5c0fcf51b4d458080935fa40da9cf38807cba2952e5850830f68faaefa14ea42f74094158be9ff532fb6ba48410d3d10bebf43c7d11ee74deac5d6d516186040561e8a88938e8e52893ab1b6061e48f9dc3ec7dd24186adc618f1926b5cfa3ed40bad631ed9caa3a90243fca186f2e1fce8486871a74205acafe594ffd71ae9f03496a2b58ca54710f9372204777e1e3c8723f7f7c7120f7f97c599b75841a7020765062d2a96d26da913fa8f10652dc8e736c6785bcbedd40ca5d9f542e2abfa3d00735da40948f628ad3f95d3268d840be8c3974935715cf7d0d244d796b732ce25749cb410d35905c3a0e1d3fc692db4b1a0897cca4a42c55728ba3816c95f5637c8fcf408e55162dc67ee01b3a6620d8071f3f6d0af1f9f2652065ccf9b24ee87bd66537a8410672f438ee37cbe8675dc740ee0c51ff1c6a6220f5cc6eccd3992a7355230ca4ca71947bd9cc3a5c0f1808afeb611ce94bfd14f305b24793d693d2e105d27e247f7651d22b2b5d209645fd1445772e90c38d0f2ae4dd0239acfd7e8975ac29e45a20265ff338eae5585d7516881fb3c677186536e76081b89eefcc3af3fb327b05925c761af9f39bbda41548292f9676f4b0a3e95805d279a595bf309fb3865450830aa455d7e491648f6a7d4c8194c36e79785a61667e2910b3ca68766a6b96cca34072b1fc2f357739960c05d247f2519963c8bee70984fd302443075b39579c40b8be9c7d53070b9db209248f92f9b1534edd4c206f8759bd21364fa5b6047214cd172fdfa4cc5b4309e43c3273c9f27f2ee6a89104425d2afd5862d4c370c130263060101318308cd740c2d53802a1a3e2781cc6bf37fd3002f9721c27ead2520452a8adebd48dad23162210eb73589bed62aa1cf52110f262c7a7985d2110feb7cf33a60f2c662f08a4da0f4f99ac9278580181183ab8bfc771508d1f90ec2d446390cd296a8e0f085fd37bbae6371e687a40940a8b59a23a7840aab2ecf321de6277ca0ec8d1038bf1294507c4af928f7d3e2bcc2607c4ca1566f6e7f6abc371404a0ff3ac59ceff57fc06a488faebd9ddeca1611b1033c58f34a67718fec235205c465caabe8e1fdf34204d260f6f57ce80d4a176f81ff52fc56e6bc8801c765d366a44e8d5b120f8ec4799ef38320d1316a41cfa73d76cd2ab0a5f418ef23066f6a8a3df7eae204a65c6fce16e4c7fad15c4381916ec731c2cbf448315a4ceb1630f743466ef6c15a4daaa31af8a416c32aa20075f7ad1d2b8a9207de87199789caa643d5041ba8ceedc98f1b8da9f82bc39e477589f620ae225ef482e73f09ab99482945a9fc53eceeff44e0ab277d041caa3e668151f05613d4d66ffd7987c2d0a7288caf0bac9e338d43914e4539df7d05fe3a1a4a0205d863ab7f5e821667e82f0be6f993c7fcc69454f10b3b8678d95a9f6c35c27c816e5f14b332b67fb38418aa18358697d9b206952eb68ac3a2735a60942654f25bd0cebe8cf0439b68aa93c6bce296b850982e8a5fc1df4378be512c41c5be6ec92aaba44342c41d289bdcc649ebae756825ced36561fa3e257b08b31c4c0326bc118658461f2046e82a304c1ce92d8684b8c572a0c0a648002188880258d499063db2cebe8d12ac9de13a021094254c7eb7e995bee169812308d4810bfa39cdd936ff7cae1001a902068a8d029239a3c9cda4518c68b32ba3010d07804c9e5369ea7abf4a609ae1c41ca65868bcdca8a4a4975c7542966a7341a418af3cb1f5b8ccbb24b036830826cf3f162aec877d8712b306158adc02da0c616a0b108424caabdeb4ceaaddef363c377f0a1a108424cc9ae7c7b6aab6022081191b3aff5d9c31c88207ec6476df9298574dbdc40e31044cd61129951ebe8c2878621c8f6aa39dc7417643c8520e6cd182c85ff5fa9ac17dbc518659c80c418436910829cafb95d5ed3830f250d6205340411081a8020dadc6ae64d35dca3f107aa03d0f003213af7c27a1ce211a5e681461f88ba6e1e5377c4061a7c2046cb19fb2bf34b630fa4ef7836dcb2b3a7fa68e88148d59ad9ac4dad8ecd68e4819cd7262b31d0c043715168dca1b8281a7620886e5a1ccf4e5d316a68d4e1f0deb3064be948a44356a1f2c72d196280f15b693fa03107720e5ded3d8cd1c3f0e1218609f40c34e440525d0bb71c36f472471cae299b0899f3928ceab4b3cfb0f0a8b752c790a181331a7020e6fbf0f1d2dc72a5f262cb8c61bc5801058aaab7da40e30de49c3bee4c361197d312040d371083a7ce19798fb2dbe936103fe372b4791d0d36905ec4bae359446c2a69ac81a0ae73d952d1d26ba5a106f27978fb51b8ed4dd5b6e01003018702e6bf10430364382069a481e451d12b75d773f9021a68207f8e3e2a878cba80c619c81d545fc42efc6205d8021a66204595e9182ccd635a87175b2b306198ba23d02803b9ca55f63443af7e070d32103dc8c76efa7bf29e5621d0180329bdd47cf87fc90f53c440fea0fe3c43fb8655340ca4e051e77b67cc8a1f1d041a60207a189b3ad4f1d0f9be2f102e7e6f8e8e560c75fb808617081f55878c29fb6b29a50c434617c8d3d152a58f75321ed0e002e13ec88b693ada3ba0b105723097d9d0b466b33f18607c51022d90af82c64ef1fd2c906dfd2ad7c7f73135060ba41eb99892293aa0710552eaffee3845e507fb5a814f8f7f5639ae7140a30aa44e11b5fe8ecf63daa9400c9b29c89cc5890f3fa43105924655a54ec71836e6c99002f1d285944a177a27b32890fcc5e33ff2382f6ae50b304c1966045020e5de30eae5d1a5a8dc13c895c377ec5221a9d63b811c69c7cb71f47c13087a1fa3c7b3512a35a3010d269036751cf58b74cc87b70c682c819c35a64711a6fd61d0d0500249fc47bb7bc7a3b999011a492076ac7f96972eba48d32a8305e63c40030984de2be90caad5316cbcd86a09d0380239b4c7d917a6afaa542fb60c194bc3087694a3abc6eaca15a1147d454c09627464c818343a09e25d7e38adbcea9e9616e18624089acad47294a59ed627841b9120fe6dc877ce971bd6010962fb7ece15cdaab8770c5386030a08371e41daa81a34aefa87e99b7204c1d2c3c857fb9fecb011a4ebcd3851956104693664654a5e1be29545106eab2f8799792a4bac08624a0fab9a32e5b8741341aeeb6067991d63dc1b11e4d0f21416db3f193a046159163277ee927511d7dbabb1dd3dca0bfb0a370c41b88b1d6a189b0b418e39082d69ad5fd1911004af6fd71cbd9693554d41b83108b269690815b9a9b98b20c8a164dcf78d51aac315084287ffb0ed2cfd5fdf80209f454c76559ededcff81683593aa92c1733ce90d3f90e2ef6f4475c3adbc7d20ecac9bb95f850fc41191d48d99f362eb8821c6181548803de0c61e489a3fa8a94fcf419bc704c2c8c40d3d9053bc5f77fc5c02b6200a6c91802d68025b24600b92c01609d88222b04502b620086c5181086cf1861b792049471dc5c9ef38453c90f5f53b634afad9620e4be2c61d881f5ba983bdb4d0bb79b1d5851d88f1a3887fe9fb9c749cb85107c2a6e0fdda6639779cc2c40d3a103a2a8bb948df385ee2c61cc8b77b31574aed41ee5886881b7220a4a638357b0f03b64800d922015b28608b04f00f6ec401e160fcbdf38ed9ea026ebc8198edd374ce1a4b4aec8cc30d3790a36f476db468a93bb68168ddd591567b70953f66851b6c207ca8539f2c45f73067748a1b6b207f7d9659096f4d7dde50c391629b72ae1ae78d3464fd17de391cef0c37d07037ce40d02c0f6ec783d4ca1a2ac40d339063fe499b4ff61e426fc48d32907f3beebb1ca71271830ce460c9feb53eb4798e5d40dc1803c1dbbeee33375ad87cebec86186c0f2bb3c8088d39737b70230ca4d85d651f74ace5372182216f7c41910037bcb074a30b76830bc4d3fef0a87d432ebcc018268c30c0f8828c39dcd8827ffed69dc14257f5828770430be40b6afa71cdc60e6b7ab15ddcc802394ab311f5e17b689ea7c00478030b244b1abf8368eec5568571e30ae448e3fde68ea86fa65620e518537d78399365586426b85105337b94b858228271830aa48afdec5e3e1635074e8110f7ebdddf2105f276849984588c3d62096e4481fce1aa7524e37f3b1f5020e6a898744d96afe641821b4f209c48757567484b31eec5967e71c309e4f0ead42897e593dc5e6c8d61ca08c3348178999657df49d36d8809247fe99cdea3e8394c1de6c61288ab7dde51636897d08f1b4a80c28d2474e2a5565752d1136e208174baa379ee435ef2f82fc638019702c61063010bf8628c0a80e15f102eb8e8c204cf022eb800c01e6e1c81e461908f55293d831b4620bf855d34b5b093b38070c1051900a0c18d229032e49f744c16b2fb2102e16b26f5df2b378640aa3b9b6fb1bbad73ff0b32c2f82247b060b8210472b89873d9af63ec5b30461955bc3782408ad11fef638fb1e2d10e488117176080de0002772aebd125b232df59d5772be161580f3dc8088c058021c6182b10038cd30518628c5106195cb8f103f29e25ff14699da21e76c307c48acbecd5b9a53ed6ed460f081e9488a555fe404ab3b602dce00151c37d9c3dca0e1f7cb303724793770f355ca850d10169333e544ed9e235760ec8d17e6c2953b42df37140ee308357c67bc8aaf606a48d6639ea30873155aa3620fcacca95789cdc3ef2460dc8d93e7f0c9359186ed080347513bad123fd18fc199032cf44e53f67cb2134f3c20d1990e3283d3f470511b7cbcc462c0897e3e0faa65b45d3b4051bb020e5efb0749dde627b945710b32fcc6bf76a8e2fba82946343636d9acc6cb4829c3722636f47fff02d66365841107f4d577f755ac96266631504efcd51740be2e6f166aae032c2c26d6346a4255422da7354779578e4180d588005b6b834d848c5da400531d9ff587468ba9de26c9882b8b9723faa5421bb8d52906483e564a79ca3dc8914e4b3d40cff0d1f97de28081fa78f272d355190f27c98e7729e62c834c760231484cef23cab53b13ee680c10628c81d6a94e8a5f1f0c1430c363e41ec55eb88f5bd947b7dc1862748215deef3bd99488f66051b9d207a5f5bba4f57e5c1c40942c7a17268cafa67916c6c8268599e79736ce6a5a7c6c08626c8f18688e8f5c7aeed992074c5e8fd97960b6c60826c2e1d3562a5e3dacc2548f1be77ae73766c6fb10469de3a565d9a2b410ed7d6c4a3d54f5b9012e414de7ea3a7f3ad9c6c4ca2b8501b92302e2c12a4ecb8d19285bf9ac940821c9e358e79968ee1c14790de7ffe3bcace11e4cc61e45fca87dbcc1a41681f4feb314355d674c608729c65879ea3baf738b439d85804e9c42bd37f7d0a1f8751043993e5407374ac6cdc24827879597d47d2f72c830852afcaa8868ed152d80f410a3b5f9d3bea86204713bd612f9be6186b2188996b6fdf63134f2909418ec74346e6f8419042b7a85afe35ff04417ed318fcdb827f5861208839658b29ba8e5d978020abc59cc43ff473beff408edea19713e1b9dff103a12676fb34f4c7be791fc81f84852ecba7b271e6032958ad5a05cf7edd59016c901d0729ee692aa307c278a4bee479dd7c3e0fe4f8c9601f671e0fc46829f8c7cc138baddf81bcd7d1746bcf6c8e633b904e2d35f35cadc3d0461d8896ed5a9dbd5287bf57800ea4b99cf1ffc2320772fcb7c66cd95f6db21c4891d12fc7f2e842e35442b01107d2c68d129b9d4ba9312a3890b2ba03d5b6f3dcaf6dbc81f8d2b91eac07fdabf1314c1929b08021630ca3822f147028c0851a6cb881acb5b96c4a2a6d20d869c75aaf8a6d9f5fc0061b700d36d4402eb718667a3dea9c62d240d4fd50b3c9859b5e0c1aee0b1eab47539a448367582ae6cda31ed3b96706e2deef0731b9975df43290928751c73e25033955cc97242bead59863d86a325f3e5ea2323118536eb3e81f66061b61300cc30618ccc617c8d69a7f97e2ffe6e20552750ed55367ebcf7817489b929e791c3467bd8b0be440aeb5543fdfda4a36b69044a956ac5d84e74459e768bc582d10373f4f4afb69230b84be141db56855f678e6828b31c4c0828d2b70d1f6f1662772d1d15d19259dc30c0f3accdc8615886a97524cb159bf17f6622b8c2e4a2086180d48400bcaf8e2c500c368a0046288e105175c54817031d7f13e9a8b39560f36a8408e4e193b64264f29346479081b5320ef4878b81566c3b2d386b02105b225f7d0fac0be3a552eb21036a2408ac9be6b00206c40016d3ca1b8701b4e482e9a505c20016c30a16f003696a04ac024940d24102ddeb2f4a7fd98e6390239e798531bfe1981589b6ea4a4da5368c9461188ff1b1aed9b51d52922903f98ca39bacb190251b5743eef3f8e1fcc53b02104c27cae859e7a50a37d10881bc37cb4501b66e70204c26bd4ffe8e83f20467a9e35d534bb90f10129a5c31c59d6d403a287931a91f5ce9fc30d051b3c20a7f074bdf92f1d4d6b6307c49c725533c7f3cd1f73820d1d103c2a0fe519ad714baf828d1c10b44233456eaa48587040eaa07252e9edcec60d4841443ebc98f5a3746c404c194397eb684efdaa8d1a103f4c251e55d28e2e5fb9050618c005175c7041c609c410c3060d5caf5cfd0cb6e6950a6ccc80f4aa9fa38c6c7d9cf6820cf7220436645090e9d8f4962926800b2e6ac4821cbb274b1d5d23337fb0f824e72c9a9b74fa0a425f5d9e96f55d41f2388a636fe9838fecc284214617a6ec01355ac1d67b4b97abbb46b5fc946d6e67daf0cc01b678021ee802033558410edcadaf33073800166aacc254418c55b9d2a43cb4bf268920e594ef533ae772e43d22c83a136ae217ccfcab431025328ca5b79821881d6eb8f5c83a85206b475fe15959732b1382a0d1514e3ecca5b97210e4f9f0243e5e4710a4ac511fcfb316ff3a81206aceddd93934afda2c2048974be6753efc72caf107827cf8b187ea317624971f48d73973e7bbc9f6ffe80359672ee757bd0fa4527c20c6a42bba3e167ec9630fc4ce2776dd93e981a491294e56720f3dcaf240cae4dab1ef5988ad070f245dadd37e4b29a91e7720799031f2d7d5f23a6607627cada6789aea40f430c595663d8bf9d181bc9f354afff37314f53910c543a86a747572f5e5406c1d69f5d0dccfa33c0e84fdb2fd646d97627fc08194ad2ef5071ee5f8617c03a9c3a4cc061dcf5d5137903dbbbb5d16f9dc34b681d81ab32fdf111b881d05e98ecbcbb1656b0de4cc71f429e6e328857fa881d8dffb518ee328fa6b380d64b11f91cd942c2aef6820746abd88ea286d5e672054ce91fbf070dd63d50cc4fd144553ac9481bc7a52295df9a68f850ca4f7a8c954263e8e2a1d03497a6cd73bb2fc8179c440ca8f93caf1712a5d3b0ce4901fa53ef58f7a17c1400a163ccffba5ace951be40f0d1aa69492dd98c7b81941abbf2b13a8cde7317f438ff6c9beecf0572187d39d4b33e960fde02315ab098d02c4bee1d5a20e56831c66c1f43ddc6592068c854917a9b2a74608168592c6653ba071d65af404e390f2d879b7c3d6fac407add1cde455e6bb6ba0aa40e9ecfa38c777d9fa30239e52a9faa97532087745bf96c1e2990b592c6fdb71c344c1805b2a508abd55417e5295020e7acbf787cb2df617f0239dccb81c4e79f8ef19c408e4fada246b2e31c494d2047197c2fe95b3aeb9809e450e5d1ab07d1b9c75a0239f4ff58edcda104a2a77c972b7ddce5584b02218326f9d81583044285d7c7b0b6e1827e1c8124fa296d045234ff4cede0347e142b02b172bc85f85b44205c77301ebd9ff3553804824bc7f7d5ecbc71d342205a87c7be98e6d4980b02d9230f2b747dde2daf4020d598d676147d6f99fb0139fc736fcd7605e0038225dbece922f580141e9bece338a7bd130f08d539d6c72967b87dfc0e8839fe47957b4997f17440ae4e1fb97de7c7906933efeb9667cc340e48ea19ee72e59371cd6f4058b9fad8b0bb0d88b11fc8defdbca6b4d480d81ef565dc87d1ea1b0dc82baf1d2c07cf8014ea97516e3c0290015152272cee9cccbe180bd27696f8ff38e7b09f8405390a1ddcdeb3ebc3d3bc82f8ad1eb78fc4bda8ef0a620e5d5f93ff2945f656903c5f466fd9762462b38254256a66ead3e993b70af258eea882901abfbef287a9205b77ce5d1d5e5e9c1e152431cbdb7fb3ba93ea2948f5b37a9d2d54c7e16c0a82f986eaf09dc5b27f4a41cad7c16c3de530ab274941eacd76f1a1468f306d14e4169b4ccf22ebaaa928c8777d1b1d2f648ea21f0af2afc6ecb18592a9ea4041dedb883eff90da1cfb09c2c77197c36ee40952bae8bf1e59aa1364cbf97befbfad2fe20429bb7e6bf6b0ac1e779b207cfe6b8776a926881d2c896cf69d09e287a6de7925e3ad4d4c9063a81c1a4fa64b10453f140f1ddd078f764b903dba47e6213756655a09e2cbc965bc8e30fb8812e4b0182b4b570e45ba9f04392cae4ef666fcd348826039a3059fbc22414a73affdec691f940e0942fd6e5d58b098a2fc08524aa14a6eddeb37051d41baba1c34464d97bb3b1a41bce8514d3d8abb1d2623486e9e62e768d3152e2f8214b33b1c0feaf3f3ae8a20e5b8ef38dac5cdf4940872a86c8f9e1e22c8767bf17d2b868dff0e41cc718eaf6519bfe27d4390ebe3c268c741ca59a510cfebc7eb9c2f8510647ddb6acd7172ed7f0741cad173f8e151fefe981104d9a274ad87527391a14090a3dcf363af5b292a03829c32432fd676fe40ce1e666a5a39bd24a71f8859df9d2e2faa2b7e1f48eb3f1fda9af1f7d27c20e6dc5147b7c136f7a5f740aa88ac1c95767de97a205cc5ebec31fa6f5c9907c265edcd690d6ffb131e7c0f56afe7a17607e26747a1b2aae965b6d8811cfa99d5ff8747161d752054d09876d66f3ed1d1815897a359ce1c53ee949c0331db3be60ce291bd57722097476a674eb536f5c781641e76b027ade3b13d1c08fe1f5cd4d151cdb0bf817ca9e3dc1edd2f8749e3065292b9da4fc15637b7369042fed4beffc32c89d840f4fd50b643f9ffed790dc4f050d1e3872a1f53d5404cd1511a88e135a518f57175ac201ac829d7f62a9fa679f80c877918ef33ce6e06a2e5be0fcb535368aacb40f8388a9d82e71cfa4a850ce458e7b275cecffe238d81944c3fceb13d47fc27c540a8dcf0f230b77f0efa30903fa53d74f20e4e250703713dd52323ce3d66fb0be48fc277a88e95ca35e30552ac7e0f34744c679fd30572ee1c593335f9714e5c205c2c8f8fbf287731b905424a274f9d3a450be469af5ceba982dec759207e58b16e835b771c0d0bc474fdd8ef1eba02e9e3242b903ef212979a1cd394aa02212df8e540435c4cda410542a78ae261fc2845f16e0a647b4d1693decb74d44b81a8c9377fe774df9876442da2400edc2af5c39c6a82165020f4b6865ede9c4ce4e309c4dbd029fb8769f53f8c0c5a388198caa2838cfabc898c175b8601b6032d9a403615dd94b2ecfa3a4b042d9840f6d8535da6fe1727100303260528f8228c0cd410b458426aa104f2b7a5f46c77ca99e2056891046267c8ffcdf1d5cd6ad30209e45c2d773907712b9623072d8e40ecccdb71fde112ddf1801646208fe775ecd1e9479b924520e66eeb10bb087b99b420021adaf676919a36daf1693104a2e750f9e1dd2c2dc7130d5a088178f561141be9fad0b8164120745e8648cb1d02540c5a00815cea12bfdf83418b1f103de6b84e17acf62bd9052d7c40508db9fb63f00a9663b5e801612a5fb0b7f0718e030f2d78408e37a752b5eb708f62bcd82d30c00030c0f0042cc08b32bed8c0186294da418b1d946d1d75fca9052d7440380f6df5d1c509ed7c0e487d79e16f3eceadf6382055a79cdaf3556e40fcc0fc2de61c071d7bb80d4829acbfca6e43ead335204d6448bca6b58f373420c68d4a19edfb1fdf3c0372144fdade731473f9d54206e4bc737173b01ebf75c68294e33856f7ef55fac3821892fda731fd5b15be82e0f2ee710e73cee599730531690e63dfe6de78df5a4196ef9cde3a911fcf0a824cc97f74af20eea95510dd3355a5904915a4d048f3b5ab6877490551fca3b3d891faf9ada820768697780bef146435f738ca0c8f3cfa8f29c8615ba3a657e74c1f4e780e75b3d78b4c0a721c75de72664abd975110368e7675789f3c4caa811ba220760e836ca5476dda9450903d87460d2d1feeb4f5c00d50903dfa78f3471d5ecc51c78d4f106472d73ab4cdf66fdff00429b807110ff523ad3e9d3836bfbf648c9c2064e6e03a7f544cb6399b205cba70fe7de1a7b34613c478c1dac328af316d26c8b966a3479c0726c839c4e8e7cf5d82b4d65e1ed43e9a5f6d0992b66d659eeed4315d09b2e50f835b018ac4a8446f65e270240a0543017130140683875817d3130000000818134642a15838a2ebe23c1480034a3020462a2616202014161616128d83c1502814088601a14020100603c3807060849048c17cc2662150e141014189f5d9ed69940e84fabd2b0f8a03451a45adf71aebc3792823507ca809a815287ba81b948783a2fde487668da0b6508b50bfa0961728545b9cc81128eab4d42e54151432543754052a09549da05ce20e789734a84ca8a2505ca84846a54a55f12845b96f6443284245a198df792823287c284aa8ee5014a8e2a350e588e6d7ffa07ca06ca11e8bf22c95874a86e281624751402a687a5c4050eb7d28ba5c1d9408140fd4046a059405ea1aca8142f5c52af8380ea0d629541fe9f23f8e503010541f6c01a4f800ea110fb58f28a017556e961350b499a108a07ca022504d61d414d7e33c5e0326e677cce39313141c4a0114068a4551ae075b1e54c214a543bab55c8b1a6a1e8ab9a280f0464cc44b53c0bc4b1270fc6401e584fa0ca5874a86ea014526a0802bbe9880f893c4009408a4484888125033504aa83050752806280e287c282aa8fe50b486028a3c07ed4516a5e3f95c1c4b478149f14e1450f8520e898e6ace84656e0c501265459ed629945ea4416da050a03ea02e8c32d4a7504d2c2ea11f8ad75194522c28ce50745089507c50c576d4bd28f50db05056a8c5a1c289a21d9eeb1299a1e4a10ca0b2a18890a8f5fe09c9621f6a036a066a0135845155520c507545eda80ce39cb4a1e2a114a09a4d91a70e502450fa502d28f250582876282650f9506405a5239984d6e4384abf9542a9a8eea4be011a8cb21543cda14e41cd40b5401141f54045a1524055a1aaa10a48948ea85676ad196a03ca254201ff845fce7651b4af96ba2135969da304f582c20235851a010a0892c09c992dbeb2f124e7ca5b029ad041ef68fb17f7a261984f28071ef01ff0554d8c3b531fb957ba4c9bc65243db67cf249c2067188d412d43b7168e4111ec259b1893df8581dccfbfa29d3cd45ca78558399c9a970666d69ca6d25a69df7d26935a0f5ae09b517631df780f15ac52a393e3a1da39dd276ebcbf3987618368cdb1e9d3c8a9be72a251dbda59f6b53e5cd23500e1a4dd694e1cb25385d6d54301c74462993778b77e30181bed724baa9b1a9899fc45bcd03dcd9cde11acfebdabb2ea38bb7dc261864f395c3b7eecd6d25d15192687cd6fad0bfb8e68cb36b0d137889b9b5b4434c09494a8705dee76eb785f1a0195b880bb9aa986fd25cc04c0149861ac7fe20ed963b4558f002cb37fa4265fd94220f9eb21cbcba4ec0780491ba0c52ca2bb8cf868f22b837e641afec5b0d44034761ad45aeb07224fee02fba26d5c1664d70b68311563ed284aafae68602dd0c8b2fbb9a78972692771b312c38b533f97c7c655b4791c8660d7d2f5f01597b3508e9f674daf94ea4f5c9d828928adfd8a790601f6c2a2bac54ad99b00676811d78e92b9da96be5346e0e48d8a53b54c92c8a59a9f6d2903926164dcc941da48322c1b49366c6bec19ea4f0c18f79a29eb55e071802ae660d782be7c8e643bb1229012511e492c8e2801b9e294e89bad68e15c3b0550f8d0e4786052088c46888a0d996ff0c666662d4d8d257194204a609982a03ed048bd46f0440101b2576903153678bf60713bd0b053dc83e5051a7362b3182181a671b70171deae2b944e2b6737250e5c11e15ecda957885e5e0292fffd92479b10851bc87c6c38c791b43e9ed3df8d6bdcf745b2195f42903e5ae712d37ec7c99ac6c5ee3d5870e188b8e8393d692a34452cd9600e49894fe6ba33ef752d81186f67a340b130693a2ea184060485f81256da14f5df1b1f7496eef3acdbaa2f8b10b33d274aeea21cc9575d0b0b7e6b037d4ce09bf25b7af8368458b0590b196cb1cdcc143611d388a669c5cecd4c2327283948914dcbf65d90169fe114adf86e981c7b98390b13f09c8d529d81de34c29b945ec3deda49c0df431e5200c9c3aebb298544a734626c83270e15759fb3eaa66660fc0ae523065e1c9d6068861ff650d5a86206402150819abd88e755445d70421a8cb3f77079dbdcd81bc5b8581c725cf7da9369252e336a8fadf7ed94ccaa081785f37706b3a5ac21c2361afd4377a90bd39bedf413ba4ce166630d7b69cc32561687f14265e7a698699a89b5d87fcd7a34ba5f04516c9ac73d0fc1ddfa25b397011a14a62fe7884f1c484a203099e261fc143914c05ef6bf9affa5b49f4546c1b268e7752d44550a3991e51244001e15adf46a72dcb3a4403b9f71983d81525a9495fb1e398f222a1829399c20dfc61eec555a988f0c17723d04ca1fda27a0a5da1605567ccdde49f11d52801b6ccfd73c4b71538ea47b4c000c09bd0fae57455cb21058db30e48d1976e1111bd701f2722f9fb860027a60d0c08ad5c3d17ced12de5b0c96adce0ade25edf33cc80f6bd7034793f57ef2cb6cdcad3dd64fff16abbc62d5962b85c183440ba85e907a1a99c7fbe56b36509b361c14e2143678462277653906dea3540ab519e7ca86d470e2b4181186df42d6cb79c15b0f77cd7a0f225724786fcb54f61bc8b84e27ba6a177f0540b5a769ee2da853e2efe23d5fc4140d8c1b1db27e12869b15a482212905602d6356b284d57029fa3be70e612bc94b048dd7e0b6acfac438655de24bfe37b26e8d537decc619ca0d73b5aa07698c3a021c00e525e7d2b63d7791972246c075ce4fcee942b1c007818ebd9d9525e02ece66e24c938b69d24088192a34c0237371bdb2f387d13d1604ae95ee478015b35c9e08718ae60c56da9ee7ce837ba48a73f5921ccb91895c8938656b3d4faf62b8cd063bc1fa149a948a1fec1576266908d9052c722d0f11159cafb84adff1f142bea61d298b83a89f5f86d4c10ee8e9031e623f3daed818ae7ec2a11169ee3b6f1a41af2aafc40cc2cd710f7edb93fcd3f9c86c34632515f6475ef2b5a04ba399bb122f484762003cb7094bb639b0802c38b627a156fae72d0649f90d571c10bf9a2adbe742d4d70f213b5575ad27e0bc70274565693aa0e037388c53461fa91b64b9a2d660d73d957685c5f3f8b93cac5b268fac00420c8fb883cae5383451f103a69f9504218258a1be099af949d88f324addf50d89f30c309498865a41638162e3cb05b35b65dff20014e8a361faa1aeeaac88c2a989edb2e4f8c7863cd69a0f6713e80da185e7ae5ce1680f81c70980f04f9c37e84085680b465f7a687fbb53509dc1a5504ea6eb75f52e6dec61899367f1d81876b840bf4c8f6d15ba83a3357bf2ca78ae21c5770b762e24731095b6f603cd473f6f9b1620981938403a4e8968c3c7f72ce15cb5369932111d94fc2327332765556bbd90395e8bac8d66c62eda2607a1ba3136e5b303bb8cfdcf66f6d7a538458b140830e84b27765f3e2027fe9010a920ec0662f4592f4b52a1362b2d08ffde9f522922d9673e2d8e411c9bcb496c4229b7cbf0b38440bcc89deb86a32c1f7ab8e16a2ee21d3a7313b6daa6939289a9a433c430c9851449eeca08ff7a5c8be68b110171bb9591356727cdf51047a24b2cd8da88cd5d7db488df65e0a9fd59356b07321d4c419b444446588d09a6ac669033805d332e827f9a781d3db90e121cbdb5b6a0832b3fe14b0dded7f62071b09ad37a7307f7bed5bd369c840828b7e283bc888c121aae0b2e072510affdaae251eb23fff9c16c3f3edca4ae8465f9430546d35ab726b55498ad0a1ef9214adfeb54dc3b7bfda246085577c82f5ece32cbf1be06b6ad6eb59a86b7fe1ab221c80a6b7bb0309114001133e55ac27214702119bf0d0289098c495af1a98f8ef4c113937a6474093a33d0aefba2714a4232f46adde4545dfc39e56a6c1400e360b059cd46403089c1d2bcbf8d9c5d6291fdda5c1a06939a5c51ecd30020d43cdff036836436db91874829dd9c9985ef1f48fbc55d170a5d960aa7cdee3a6ec9d3fda13da546d5466c237add68c5da1545da46a18d828cd18ad8c870231ec95a69b98f762b4052885b734201254eaca290515488cc56906a48a469286d1848e02a64d26bb586db1c7177d3c4323672e0629b95c306f02c08c760b5717dec65c0e67c4ff11d19c87c7024a31f74ff82989f3f4aac9e0aeb09d06a349727728fd9f94960fdf05a7973a58290ad79f1142eb03cf96531500932a9a2381694a21ddaa3f440c2b7ac73ecf0ccfba8ab66487a46ca4b600f92cf607a0e8cb78f6e7087f362e66d28fda76a63663c8687c886df5a066448b9b957e9846f0d1d968068d2112d9897f54dc88afc876dcb49a8b006c8fe02fb235548bc137f068703871283f906588da58d341bd839ec0df3172687efd1143e04032e0d4b55bd69cf3b7908586aa8c17974231aa185804768ee3cf04ea174fb6a542f39bb068430a2925615d365177444ed5590ce1309f6c5b512604a919058b2ce4b95dd0955e02578f86d066d2999133384ec8130841876153822b29b473b5df403f0fa4066b7cfdc0f2934b6a56a3ff1912d508acc97cb344f076c11fa8fe4d3b203d6368897e51aa96869c704536242a6c4ecadd008942b40940daf1f3820b461a54f54f8444094f2ae6cfc14ec10fe998b275a731e58c2a5e4ebf15ef842eecbf27ee9267705b2cf159f8f05a3de2dffba636bbd5cfa0ad02dda79ae6c5346725c4c7036fcc37e1b76aaf27228ce3ffa24eafd6b6e30883f96b5e9cfc43c1f8e2b80cc380bb1d4739fc52bd91b766cc68d0ec2a85443b09341111c5276701573eb1e6045560f80f6bbe82845e86db94a10c1b9e4ad0289834aebee643a4e32058bc747e274e60f1920e78928bca1ee50b2cbf9362876223bac56f04be59caa4e66f1ba76559643815f1e075338656312e165fbd8dc016b684807e3a92a5752b74c415e3ca4d4ea51018c11f90531a87a61716d038a6b605a72b88bfd4463020a265449e0ab60cc2a13fde5052104f5b171f8c36d5c9a154797d6a147dbfbf761611d1362da5eb2a8dea3f94091cdbb8b5eaeaf364524364769d381e444ce3210295e7751f76f1d430e088a7c74c0f8fc59cb510b0ea8e1b8a557cb3d22c67d9487b4762a2d7293e646a99799a6a5512a458a2e9c8d4130621b0ddee7242d1ea9b1773687e2007783e754d3dbf615ad75762abd080247974f4d256b523c4f55d760d42abb84c87b9cbc215214e8082f5e86083522622d508f5e4100159f9649eca57f30a826750ecb7d756de1a1ceca50444a605a336955fbf94cc1699aeec7b20c3db8afd3e7a2e85b122c07aa89a68299fccfc7d83c4d7db8d666ceca13068599a966f43a2a152a5d6aa1f937df0b82dc8937f2d510dccbe205b356d94330e51ae5abd56832a012653431dcbc7cde013db069ced406961e56c88e6a9243630bd46a746aa24f8c725ad2acbc1b04b382014ce5e1ca40c8dc65ff0d4fd42c6a51c770fc16719de77a74a4e84031821dd02b54c88c49538fda6000599e9dd52ae28b26026a718c85f898a56d4ee84691b36a54a2e80bcc97796ecb2d0318b4e649b9b2650eb28d9554c051ec95bd66f1dad5940d1a803c59759e4785571496708e0ca02e16862b44613e7b67bf3f1c8885c262ab0cc43a00e2386d200751d05f2a3daf576dc9f46f51cb6df2dcd9001a5ac2abf75a9609baa6d23171d6f822397b07e5df1d1ad91a57e3e22ea696f801550d3d4c2904d248e877ae120290f034bddc8cd4a9adfc15fd75f233c972faef07ff555715832c757a25bef59db709e61a3af4cbce62e222f4517d3dc92b4edee03c003798d4404ccb39687c3403480f639d01bd5ff22b30672600023319b99faca8820d0f1ad099fca68d21639c8123ef114ced7401329cc38c57d70263be9ceff55fc93a5e19ad4cc12fb99798c19693610f30414810cfd08add515d254fe4509f606cfe17192a68035d54e058ff60d59e4899a0936d8e255b3182257c7b275cfec0c99baead9bc4d606c6dffdba96d467ade1653665555bba2770fcd7829d6edd619d8e6c9d1e0cbb1971222726de3cbf09660f8c6538204809d291af3932236c8f48d93c6e48365d91be244e3848e72d5a1a3503a014b6d3f382371cfffb9800f8f366d02f22a071807b5033831d11370e438c3981d20875c32eb8f7bc441150117744b75139f748020a40b530f2923a3b02503715dbbb85f4017d1be7dde1a0286aea3f4282b496311fd0f455dc012a8f98c1ba12f83d82074e3132251594fd6b389e11944dc5d0afa4c0c509c98ee9f21ec8433975c8e729db49537c84321651390eab8c738f284d2350d2c72e0bc45d1014998e864f7e04a25a6dd0b7184f355d1f45d44ce04495c26fce321897ba1384251f01bd574a071ff752ea076d195b319dc835f830b41d083ebd70e44f8cd9cd7bd0ff3301abb082d945af32c3c3a6953f302dae1d06cba9f969deb36fcd02a20837be06232039ab02b692ec1d45c6a12c28d4f37ef7d59bde7535ab7582dc8c2eeaf75886bb2498f810effd0a69030dafb73484226065c2736cf2532ce684329a388f0cedaa1c4d993c6bcdc56b35d045ad592ff89dc863bf1a944a5f9f812e187028c4ed8780e9ec87e08ab0a023701c1fda42321978fd75f1ed0f708552261f539edf8523cf722921fec94cca65944d239047503491861cfe6d0f64cb11bb41b60e67933d2566026c54be92325b31528b754390e785d37a509485a599e26a2846b56144d562824460db855d849dd60608b5200882da68e0f4ca9308a47094d49b71de4908a4460ae1ddc513420c9b48fda232fba1ca28c89c93d1953148e8087108afa87ecd69ac63a112014dc88721198a4c44e284cc8c1234e46a641258dd345df15526497b4e8b66e59894e1891dddff491a54c1c8d6f0a832efa033c3e0712ae9134c8f224f1989a0861b222551485dd50db3618e7c9ccaa32ed1adc2360dd1b33ceaa9588b11fcd901eb8e254f2ecda0a2d5529de9f365fed3097d2ea7d4f9eba9f2c03f872781e2cd3893b350c1c2822aa042ada78360914acbc89f7a72d2f0bda2b950bf696a5e3a5c372bd01854547406151d8d434346e1a0205138284383c292a43ff9531419a91d35edd2f6aa0c0a4e19d8c010a0fdc31ee5fce09ecc3f0edf0dd1a53ab4c83adaa26bd699058844e8756224b96f86733393b3d4b8c386d2371a61ec291aca145e2b928e6e4ec4850cc4624865f042f0fb7253651c49094fea1f40d3231f475b0e0c08087c795034b14ff6ac9198ed238f75fcb0d1591911e39c284d4712b878cd3c6b69b7aa28d949ca225cddcedaefdf27e8cbd41c5dceba7478a96edac324aa76a5797205978254d3025733aef78684157964ec5bd2ff75a53eafc29546ce03f49a0156707bd042ac212a4c9dcbbae46d9aaa1876743bad8b43c5e0046c881d456331cb30bce3e36299f9644a03c93fee383f08373cc0a507f213b91dbd37dfb712cabce60fed51d5570f1db85ed230eefa171c07194f101aa9fcb8a2df8443037bf15d4bb905385c2f7166ae25c5f5520695cbba3302dd7c1aa9c4391ab5468bceae329b5b90c6b309c03b6e48da0ef3091ecc3b2f93ebc0eadc0708c36be2410f164363bf98ae0ccebc824ac2b6ac5d1ac497f2f936f14ac87b7e3140d578755825e441c62ae5fc1cc58a95b02cb54abfb73bcab0d91040aaa19c3e418468317c995839f0f852298969ff874d53930f8aedc700cd42f2365d9704d323cf333d1da83abe7fd4c083e3ddb54709232475aaa0c43ee4f2aa1b703006a2e1dab203bc591036a69fb9d8e81dce1a45d58d7ecdab3c1ab099afd121fb52043eaecf8b81b6a462754b15d11b2f4836cdf78cd8aeefd6493839f26207833b2e0d3693bd466fa02021c4808620baa12c71ed6e4202d2b5e0798d6b91400dfd0d8be493aad0d24186ea67dd3bd43f80e6dede38d66a617ddce0ddc2660eb44539c800ce2d5d5547402938cffda09255b59046d05a0352b75063cba87d99c7b0d2ad091179f4d01f600c70a1f856073e38ba274abcd057e0fdf72540ccd0e820fce3f6e6f03201ca29588626f18c73a82b62933f98a2690b9eec12023f7622ae0f33de82531f459e4859925d5a4353fab35bb9a784652b4e756c4b3fc9ac8b0ea410937b5354589f5e6e31a8da18bd22c2c4b34f3246b25372f4ab4730b364470c22c40195358cfc23342b3e17b0e2514a276e8659bd2c2db2d778e0772bb3317c943cb33548558dc586b09bf58d1f3c30ac493418ea533f5c1d37e0157ee1d38f492eb39f432cfc39e7f4f2524111db9ddc41cc8c38644281852c16a6f6ac9650dc0ac044adcea3f308c5cba5054568333c15ade3464ab76daac428bfdce409ffd6d97db5148900f49c47c40e4a115c3efda25a929e89766f3108790b1ac07e7e966a1f97028335f0dbe052cf481066dd46013396d523de9b16021c754ce67fd1a812184f5392905824bc9727e5bc28b68f43151d6704e1d3104ef42039d5bef597a9cdbf2f8bd4dd337f4face1be0311648220d04b1bdb42ea388b8bd41a844a4650a167b6a7935285d9302afa96f46bd61ce742881f45c8f05206ea05ecc356895cae3bed807d8e48a8be26dd0155101cdfbda22c71cf42f7bb8d76e2c10b67664781cee6134821c87ca9378144b8ee1f6f6fc93b2467c1e3522a17d4c0b648c1c7dca1e542e5b4c866268d7cc625f87cd5766042feed5c6d04682ee6a4d4e9e31348fe0308a66dcb02246d3a9670c42db9947479e5206597bb290bf6160fa7452703d18b265722f3bb36d48f7bfb6ae2568cd50fdcf6ab8b72e511c0d049ef15ff00785f169b89c80ee5c47b4fe15c64d3e08346894ac66a9f6d5847882bad0912d9c67e7c9e2caca15a911cd04e1ed738caa706cfaf9e3ec81a607dc300236d3b7d60548dc5acef18b00a24fdf79009da87ee0dcfc7ae4fa079bdd95cfa89cc57f5dd5f99e28b518f06d9ec40c212ee4f40c304f3f151fc4df9c4933af75970761a3721cb3e5e8043a97113594496379fa67220ad162049db9a1561a4c0c17d0c466092fff3ba9618b0184313c48a970acb3a53c4c89442b8795857e3ba3ee714da7f4a020f9293e15600c408c170541398b96c766c86639e84a350b2b0052a209993b95793917888f899bcba0177d1ea124efded01040e76461ecc82c5490a4889926d189f26de85b514019d21b305a915797e1c43ece7257d17612b90246c8cb02c492b64e40867a0dd2c4f5cd7b902951801e390908b948839fc4e36ac423b1885f0110a61232765acd7dc6a8649f12a2bf51d0f1ba585d10e8f1519a6c79a83db854a0c71541a95bcbb6a0137d13ed6346b942ed23b69a36ca66bb9745a17db6145eafc155fc15d4719f95bcb219b0e7e9853de2133d50bd297adc8ad4c425e23febd62d9d775a4d3ff8f49fa040b823f358d127e0ad0b907ed1171a124263d3d40d62fcebf1c64a9e4450ddcc2955129b85010639f48f5ee4a302957358eb64ae503f4c7c83a81eaab18e5942f6d4c12ad7f5fdd8f70cbe64885f5324cb39229795345f3969e1bad0446c234828689a23b95d9c0b2d3f90b01e0ad02213bbf87e132de92eebf2dbeb8922daf2b8244a5d923c11d11b89ede41046abf1515eab13d1eb8b73b595c4270b4480a92a1b34edc4445c5f96ae6ce2cc759acc28cc6feb719524652dda5a99d56b85999311a60d62cdb2205c1e8619bad2f4567873defb8c7ba1b9f95dd1675c9ee7ce5c56436d0191383b519911d4b3800a775587a203f600c8cb20fd4970c01a55ff0662eee414133214c8e550a70e6a1f9600581d1f580cd56b3a113d2ce9de2b8724ad1fa8a19e3161b68333865a5285d9a90ae8999dc3b740e1364efe70b1fec4ae4775956c4fe2fed6d5cfe50c548614bd8838da3b8e8ed3be0295d7fda7a9a43353f25b09eca2a157a9731a95e9b18f3c34661c898f288352c77184740fee60282a8514a4427025ef106db9ded429f9c3168de3dd7d5d1a395bbc577cd35e82156d1438f4c958a2450ab55434e471af3f6b849a1b0164acb83fc56404e3c43b710983b1435355e3da5f726b1d6281c2d414328b5a0dd5b789e8534931e89f533bcb9d18c01200638f2da3a36ddc499241ca55a448417c34094b8f22cb629c0508f08751ba7a1fd334ad88a411813d65c6f72c6c128e9c7ae2ed5e7a6f96317565c10228c3dc534def8ca06c824f08d49d766ca5462975507bb501f6941e01a458914a2fe13ede7b3d1aec92a38958fb1e887016d0102490e2369aa96d1c9bd05f8c02016eb55266116ed3438c3b64090a49002183b80cae8ba31ccb25fc06620b2dce326d7ff1350444f6b95df1b535cc62943e1b4c214d5dfba736308225b86b7284f2a76e17b7869129b999aad543c8010b5ea93d10e6c068c48b41cc6187f4caed240d1c8c4ff7508ed05647ec07cab431e0b0528ae3a1fe70dc2514475396b416284fcd9018300978e16f2238e978e1042f2da4ec12ffc02479339ad1d9ba770c9834eaea0af6470f27109fde806689440bf9125836c3874529966b2a7c05de0152ea0101a4c6149a24325a850227c10ea592e802216c1d95036419eb56aa68f3e630a68c22dc583e03f312ccf384d0d40496c301cd3e77b500983f83d064699e3fb20e82b241247a3fcd531d32b7c082728421865f41b71a4ed5b0751d9b4367c303f9dee0722e1f87620b4c37c34e931b921d5457b210f642c807dc48ff71be92873424cc0d106689928312fcf2470359528ec3fe59993ee21662804d74449669c29dca822ba98c217c0e1e04d8f842dd34c1d47448dfa33ce7731cb8b36bfbed821e0902c6dbb9877fe53c89f55ad45899da245c99821ce131dc3893f7140eaef680c7a3b2c54658dcd8922b22cf879305453ce9500f2ba7b528a78b986946f3039f3ec25d36b628339afc5b1b18d19b9c9db9ae780ee1e5a1c58f52d88b17c91b73ea112406630c4f10d220c5480cec8db4986d8f826645c48843c45b5d60c43495dd764b02cd377865ff1abc64c3705cd91dd1320aa64be7f36b9cfdf2cdb2e831d1602f83017153fbf16d1d41b3257ef031a6e8fa49d098a6bb4d788229d75e26081c48beead9746ca7b5606ab0dd2e9a7d3b49fc42f429fb4fd8a0f8609c1efeec35246fa56c1cfffdd5c8ce20f4d229601e7699c87186c4374cff175d1bf56d45010f38c436e091c3b02fe5cc4d90a3360b0a490033033333333333333333333ee74f18532e5b411657446045076454444da9e4f67f1dd2caed63a45da7c8936fcc579cd0a2f0b630a054571060fbd50ec3d2222d661e8f578c1d780532006a5808d32e0052856efb073ca39fe5c62399f582fcfd74a4816e583ec89757394f21c599c8e4727d6aae80edb71902291e1c49e1d2ae6a65fdd18df26d6d598636f73f34213e94526280c82892424f0e2125b7ca8eb17fbf375785b624b27216e3fe6660e3995d8d2758984ac884c4e893db2ee2391d4fd13e649ec177c3d2696c7a93446127bfe7c1d47237e20911289752cef3c2f57d4c52024f6f58b159a3be48751f3e2115e38a2bc68c4de817aba28719f62d4c6504af782117b9cf347e2f1471d6985bd58c4d2b926d988878bd4f1e0e0852236dd1c32cc44c818bc23117bb89e10ddc9cb14bc40c4e61fd3b9ba2fa2d37f88256ce503ddd2e8d3a721365fcde7f12c52879a6a095e1462d34b371d75d039b0b909b14734dbcf331513e10f62b109672ad18304b174ccee9acadb985d03b144c9e1b915b53b5d5490e00520f689796bc33f6624e345f0e20f6bfc380c12b4a3fc8db8ca0b3f2c979972c7bb146be43f82177d784b2772987f3a4c3e101673483b19a21fb58735aca5bb8a1036695a0f5ac58f230911a442cc831b3be798d5142e060fe610372c73f0503b4cdea1ce3caba52146320f620773f828a60f838f7675204cd8fc387ae8218d450764439c0ebdf3e5680eee7e1ced462f9d941cfc9c10ee2c6ee57c9c38f49d7329397a8a7b13381cfdda48a7acedf586c5aa53c8e6c6bb1c7c37945b9aa38fe5c90399db804fc6a4149911773694738e8ffe487575d51a4ead481d76a8e14996a36cc3a79dd3b007fea7ddffb729a9a3818f1e6c4b3e54cfb086ad8c5ef998693a66c053aae81d74e258caa0df8549c16632942f49871e7d94da118d41bfdc972b9f8d75e089c1ddca69ef2f686946c2701c0533fd0e7e81c14e21d54f68f4475a5fa0a3a88f62bc8f939e7a819bbc4f1923c5eb823f1d47f4453b4f72e1b043670b5785483121c5d697a5056295745e919188b3e07a12bb8c9db3381694ee4b1da40f83a65cc1f2db88619b3bfe87ac40c8081f7753f2ec47550191c95121f39ca6f693e33e4ea6c07cd24919292cd7e157d4d18e2b664a14be8eb88a4922c672050a84644a11e2df9b127b821f564e9d4cf18c7f39a1581247d383e81c45af09a75c5265fdfb4198097a74e7cb274126bd84e23fd4c9a96b7b2344096ad9e5981de926250958ff850de3518e111a12b4ba0e91a3f2086fe78d0c97ab1108cd6021a458a952741c12bdaa2a989d63a825bc28c29a827f7ad8478ff1a817bc20c23e1e7cf8ad55f8b8d321ac5b5173c754e1ffc394174258e3870719733fed33e2831741d8e276e02597a1cc3e08d113bc00c22261251f99530c1f72fc60dd5989b9724791c17f1f2cf173089a12a3f1e3e8c12ab152ed788e173c58530ceb3d39784587bd8b553c8e3282c8e69c95ba58f3323fdac5f87e742eb6cee11f571c99fe1c5cec1f7e45ba8feaf343bcc592a34f17a96c6c542f5b2cd35197723ebff3f05a2cd1439ad647d362ab689b59a9cff7338464cc62ebd329c9212129e74316db7ea58d1d9a1ec8e688c57a73bd33e13d2cf628215afed9f29c739c572c2978b01c619f31ecc715cb97c4ae90f6b2cf3badd87cf33accfcc0e3ffcc8a33ee5a66155b5e8c3f49d12fff6454b1d8071a52bbea7277682ad60c23a76b1a45c5f29b3659eecc1b2385a7d8924e8c7a397a9862bba8d4ca11ff5c1fa5d8e72ee5ca35293d3fa458c244c69028399f65147bf8513ed468954e4d516c1e522b7ad4ae8f9885624baf5413639e44bb1028968cd51c4d4f4672243790f18955f6b72bffe778e37b62b1f891a978a4c7504a410a4e8082ab818c4eec371b427f388f934fce89ad637d76a0763e0c36b1c71fc4d9fcf5a18965b4731cbf3e27135b9969e830e906137b64ea6526e17289a5bc673c872b1afdab25b6a91cb596522edd532bb18c9d6e3c8972eae9a3c4fee567bef142a4b39bc49e83158f6156763253925836ce8d86af3c127b473fcf9bfd4b31910c5a008925d5450fcfd7c179be1fb1d455a52ad1d168eae18825dfd67d98bc6fc492913f3ba61d93e99d11ab4d7558cd318bd8f472b8f90e3f3fa5b42296b01da551db54a13f89582ac7614e1d4cbe8fbb8288d5a23383845849dff4105be6a88c243e9ba531c4d2791134e54c6a61cb42aca96163ea94611e771062d10c9943fe5de8c87263280d624ffe6982e7bdb9ea0f41acfba934ad74f85d931388359747cde1a553b95f01b1cef4c592add0157e1c4369059f02441ec8f8c3961e65fa5e081daed57ed8e3e066b37318174d57197dd8aefc5286f50abb140b5a20460c580cff8f010b5640c58735a64e5573183186666328ed6111538fe91fb33b69ab0fc8d0c392bee30f720e35871eb63cac192c55904bef05273808697540061ef60f72394c692f2a4d4cde61d9dda0392e6e69906187ad62942ef34c61232f07061975d8ec64d3c24a847fe40183031500e30b32e8b074856d0eb4826034008cb7c1093680011973582d898449c99deb4056800c39ec1dec8f24499b424839e2408839ae0f2b2bc341298d94215a152459e8d2ae7ce923a91cc6c851deb0a9ccf88ef6861363f002a418bc80052da0c15740861b4a461b0c4b20830d5bbebc107aa73979909d0464ac6109f6112d44a5641ff96ad8532579761c6887a7cd18ba0219695873a6f267674c21e5d8187a32d06032ceb0a768ca410c553721c232cc4061c828c3b6659be3183af29da832c84061141ac818839e180821404618960ef33dad3c5a9af34432c050647c01bd502490d1854546cd3e7cce0a213ab8b024c971b08e335d47b26f61b52013beab292a430b6bdaa7b4189b9272c764618b1a92e61c84aaa50f16968fa3c3dbbcaa9b1bbdc22a2983559ece99ce7256d866a207fb214535e77f0c31554759c4645061fbf9910ff2836f04654c61d3641b3d5c4b11428ecb90c27211344fd28f4781c29001852d522a9b10cb03329e40619806643861edb0946eefe38fab8989414613963c5b9ac472258309ab44885ec1a3eb88925ec2b2ba511bcaa394b07a9c755571a61de29f84e5eb3e49e7e82746e92061efe0c6722cf8e7ae55c611f6d1ce206929334c906184d56ef24b3b27b1ff4b11b68910aa936331e8882083086b798cc53c5d515a159731842d3d4c3a5acc517994228445b6a38d29567c6c8441d843cba4ffa1c5dbef5e093280b0864a7fba1f85a80b292dc8f8c11e26114f316cc889f58f20c3076b7e5a0eb31463240feec19253ce423d90c8e0c1ba13346c8e7ffe21eb2ef6e8a28688da711465de09401728805cacd79d729f6176f32127005c98337afa305ecab7584268ec8e793f6de58e2db61c4f4d3b98a473f2518bade3aa3821c86df4e8a4c5529743338ba89491cb2cf6a4fbf1fda4e677d464b127f5945692723c217eb1d8d63f34c6881defa51858ac1d6fa41cd3c771f8395fb1f4c458216a8e2e761cc715fbc7f00ddd7f69c59eae5266dfa458b1669da5c95ae80d21c72a16cd9c193ac947b44faa62e9bf086999d444329e8a2d46340713c9b36e2254ec41e5879ee3a4513cfd53ec1db2f3e7e8dc2193628a25c59ca77643a944b5946213edb435f90d277152ac1dde7d64ea20873bdd28f61c44f9f0ab621a3c516cb9463fa7e0e15f852b148ba77808eb3f16af82a0d8328e74f7070dd5a9ffc4727953b0c897f7c4be1dc6985339fa183ca7139be8a6919cf97062adae7c15d4ef4dac13762cacd5c956e4686289f5ced1a7dbcfc9d24cac398a1fffa57cbe0e3598583a655f48e6c894abbec416a7b239c59c830f76b7c43af5b9e6e4c3feb98e4a6c93c38f52f54c4a6c1d04b9c94192984e3e2a45b058eaa3c349dceb1f895eb1ff79ce71896cc545e48ad52ffde6f2898c84502b960e2cad64aad9ee072b968b1a3c471dac871fbe8a3d78dccfcdbba0aaab62b358b1085599a7f454ec3539c63c54ac293b65d27492633ac5fad17c949f2bcc236d8a7d2a8a7e18e2520c9f522c1da4501f6fd4243629b6f897be3a0c8f62aff1dd0b738962fdafe89d190dc59a03cb3fb1b38aa48262c91ce79cc29f9fd83cc7cf8748b2d2d313eb7cece95a0e5463b213ab9ef8d6ac87645372628df3709bf207e1737013db4ae88da8fe9f3aa88935c30715f2610ea58399d83b547ae78d1bd30631b1d8795cd1f2e3acb64b6ce1171e45e45de59825f60d2b9d912bb1f6c94e8688fb1f62945892a6b058b93e2a67124b685893b80fddad24b19da5ca633197a54d2456f5c83aa718128be75a0f3cc628d12364e3116b08192176828490d2e988fdefd36334bf375e471b361ab179c81c2aa36f44f1cb062396d9154b162dc50d99e3b5b108d4bffb6244ad88ed23cd9f1ed98faec724628ffae05722583610b185ac986f77ab72e657888d43ac41f33caee9307686d3eab061883d4e3a922e7385281ec71c360ab17a065d35b16c8310eba5cf133a8729c122350853144926c182664acc9917bb7d151d475229762f0317bc03fa3b40f53270c1bb18fd3330636c0862f91c3c6dccb13fc8c76328b51d4908fd29c7e815f00b8e1845607000021b5001ff0b620003176c00629ddfbb8a20d59126e90f4b8c1c749ce3ad844b054d83a21b7e20a5cd916cc4d8e8c3166e3bec899e2b7ed4e812b0c1872d3cc6b80e5d1562086eec61598d2be961af0e5224f94451496ee461eb407d54e247860b1b7858a5426deccf638c707b0a581001b371873d99c71c1ecef5c7a8acb061872d6ec6e89b348fa1941d58c2461df678d371bc9ea3a6c6720c2553830e5407c2082305fd1e46186900e0c1061db6bfa0a7667141f2ae3bd898c36a514f3b0e3d8811e914c80006ff0231acacb02187a56a7d6236c6935d73230eeb8f7cd8ea7082c31ec73b7cf86b9b83fb150a1b6fd82f4a2fc944a496b0e1862d47d211c62b7e1446d2066d62d8f0b4fc1843e9052710834847b0c1864542baa9fbf0bbcebbb0b18625ba334f4ec307321e1b6ca8619d1cf3713cf02061230d9ba53dddb28931689a52d840c3e679fe2747a1d2a362a4848d33ac6192439f261b8dd7d93083b5a93c67fc9c2ba75ac44619968d1f5f498a18ff396a830c4b5f779e1cfd76e7cdb4d818c356b751d4ae330726991cc28618d6087bb27173ca396ab711863dd62cd37e9cc3eb0d9960030c6b7a5c91af3e2dea245f062f830c605960e30b7bd08f9946626622771898086c786191187a55d7bf7f57cb276c74c1c860830b5b606cf3e318912a15b0e005072a36b4c0fd85e7c8267b4f3cb2700ef663886b1603830d2ca0ff97caa30fb553c48d2b90529454217485a6a41fa4594dcd7167c30a4b4add6190da8ecb2a2737aa40613860830a6b508ba013c99ec21e379e4f764f747a18296cdfe561e8f428c593e04614d68b3322e9621c0aabf6d5c5341ffcf6739e805aa71472c2aa192d84b1e05139ba34a13798809967d49895a29431d858c2bed1e392d96c881307146143095b8ec7287e29768a104ec2fa7b31663785a48b790e6c20614bfdd0cba1840731c5c040062d380f6c1c618d12fd92c9870bd6b3a7e00463b4211434c760032f70406e1861bd3c4d3167df8e49274611da8d226c17f27e78a2bba19a0d22ac2156f222472143ccf11b43d83b82a4c6b08f3b6c08a1d431a7cdc18f1e84652a25d191ccfc391a088b9daca5cf61ace8b0f1833d4e89ffdbee3ff5a80d1fec71bc1ea98cd9e8c11e48acdc5d1b9285b5cdb0c1832d8e9ee5a7f97206b58bc572280df21dc7f36cba58acd2850cb9b93a86492317eb844c3ccfb8971b2e6328b160056254190d5c2c92ee52ec9c2b8e07dd184ac4582004621840e316fb4e58d9869831f95e010bcc0a2e508ea0618b35737eb8f3a7d7294538d0a8c5d67511314ec885c99c1b68d0c2cce26471b1d8c27c9462249b2e4913090c0e40008c0680d100a3018b553a2b638c1bbf26551aaf58365de6a0c42a6deaa7e18a2d2e9e7e8e29fd3a5883ccd1068f30c21885062bf64e1f918f630839edd358c5127b73a70f44d450459181462a920a033450b1c48bf55c8f231aa7d8c364dd479ab89f238729d6394b118f7bf37a0a5918344ab16ac418be83f41fa757a45883e4b8122a7f804163144b4ce55b371fb7c27f8862f398d2c86f4c09c5be1d844bddb592104e0d50ac513afd26680c4f891181c627f65d89cb70e2710ebfd4f0c49e3c445f8c9139539a14343ab1e7bd9e0e3d857879e2632899156870e23436b1e5683ee14294b9f963c02ff816b04053a0a189fda39012f56a564d52185ce940231365aa9586e861b14b553246d0c0c4f61973272c5e0e3a648d4bac132ab93e4a3950c02a3007d0b0c41ea93b3cdf4c992e741b00a30163c0802350aa05ac8209685462c91f44ce13d5e195851b0627508106256e1245122612843420b175e478fdc8967ae8a6a0f188767326e7eca5b28e185543d0700419b6249f6cee4e9718f5038d462c16d42b5aa7ddfe48d72e683042631185f8e5fbee508286229699da50dde8b87369ca82462230930a1e298967a594295db962b41cda6a84c56081239142c4fe4138fdf0483faabe8af2a07188eda2ed5c6f54931c3784691462dfca88121e4386b552c03360810a5e032bb800180d88820621964ae79982e62811f35281182948017759c1035a6310c4030d41e8023402510e1044a6f107a3e107ebc31aef63489ffc8f72f06111d9b1383ae9be3e7bc003f17821a7cca1873d669da74a5b1e96abc81d22e544ca151ed63c7a973a88619246c71df6e09d29ebff294e871df61ff15dcf5b62317558b43248ae8cd10f930e7b7aca70f9c1c5da6b0e6ba6e65adcfd874d72d8273a38899e23993cf938ac923fec50f146a5d270d8d37f0c61e3e420aff386353b45cd697298efa3b86159df3fb1249f1991b761913cddb153a8b2aeb061f1ed4e1a348e9507f51ab6b8512b9645f5c8a186a58387895da44ece9186c5327fb2befc4183857106d330c3f2e171295ea60c4bdec4982ac71dc2a40e19f69a9cc33b65d2fc8e312c99fcfb736f72102b62582a5e448a31e438211a86b5b2a633e86d8731088665e2f242eb73e207f117b6c9b4a9cbe3cf51ec85fde4c3130d72365977614d217577b91a2eeca1cf5b58f42e2fc71f464d1d450b7b5d79a9763cc93ed064610fdf913c0efd9712192c6c9f2b860b5b61d3f557d8e359fbd5ca32e9482bec69f9316c4c3b656615b6e85185a0653d92ae4285cd83aaa8b1334da454a6b07fd052cdd1c875fc4b61318b1172fa0f76b58ec2be492f59ec0a85453cc646bdd0ddfd9e605aec577498d409fb5aed8a071f8718226dc21e69b009e641cc5f4499b05c085e39b4f412f6e0763ee828e7b9d128619928cdcd91e6ef2593b0ed44f87832865d8848d8d6ee73ff4ffae69647d86247e6bd7927e845d2085b6d8e3c52fc9c3c3f8ab0478d1f2125f3284e92085b071b348d6d43d8c3d8f5c9c310ea83140a614faa9962ca5a0ecdd708c296f1a71fa2e7cdbe3580701a3fa830347ca01a3da030ac041a3c58538ffac59ec55c7817c499bd0b9ea52e3655d5d8d1814eb4602eb65499ec3f5fb828a6fcb24c25b95bec31731873af872db67039cccec15c8b559244f494d568b179764a316de440feb4592c39727df8ce65b1e4388e831cc649a97c89c53a51fbe32fd458320b165b75c7b08ad02bd6b0971a9a83acc99172c522f12b52d577471352add823c7293b5df2edf88315db95c9741052ff155fc5122f3c84f3d8df711852c5f221875e7e1643d43f5ea46229fbc8636954d4c7112af6286c5d8e674f43fe5364e99124927595a678618a45e207c13cc54bb1e5e8a7be7246ff0a29f68a986a55a2516c1d87467c024b48c9f1e6d42287c684a54c3c9324cb5499f912f65ef5d4c1d6a3facb95b0d87498f3072b095b4e4c0f3e8818e24c1c095b8eb3d6bf59e281c711d68d37f6f1f57cdc1b61ad541d21cc2fc25adf15629c9d088be64bbb9b8e37920f613ddbfe2449a552c485b086787eb99e51f37182b027cd15323f07084b54be0cea9f326ffc83c5b66e2ee8e50d1ee3834d76b7ab5473ecbd07eba6c9e70f529663ca0c1eecc93f8e9d2fbbd8a726584c7aea79a98b25c72537c9635242968b3dae86301df885f5b8d823335bf91af5306fb1cd6d5ac6cf57972a5bac173a6e5ac9637d215d8ba556324e2e558d615aac757193d1eb59ac9b246c55cdb2582625d5944f2cf60b3914991ca7aaafb0d8a27fb4f7831ccdaaafd8278793a2b3259aa92bb63a99f4514c911e8aadd8563ea547bafd2988acd8544bcd2ba5e70e71155b980651894d7711aa62e930c7a50fbf546cc163eb76c4c3b0a0628b96b7f2a64d93143bc51e7e183147e6d1466aa658654f52a5ce2ea4ac146b089e7350ba721da6438a55c2a67786c919c51efea4afe91c3b4792238aadff723bd45c87dd118a3df038eefde900c56afd299e7e6687e73fb184d14e3a129a2c7d4f6c79e329f7e2ec79df892d52acd4b9f2cf853c27b6cc81a74a8eb1e3c637b187857a5021c3c6ba35b16fda8ce9d7c9c4b6a6f9193ea55e9231b16878e7beb134f79b4b6c769673fef05cb1369658afa3b50ee63a7ca595d842bd64772ccac449892d876312463e75f4e524d6f5f063496c1f66c410f34e48fc3812eb79ec45310f19c763482ce9bc6fe62c7ec43e39a5eaa8be596962476c73b12f62f9d7d5841bb1aff55eea0f2b5fea8c583347d3f541e7a84e5fc4a21dbce328c3a78e6f45ac9e23e8796fb094ec44ac1e6d2ec6ecdf0ec38858e27b7ceb23d3f4f121f6a042c4c40e63e33786d834a58d7ff9a7624e29c43a97926aa6c8c1e44288b5f73388f5738453ddfa8ed62288c53ed85c9f4b63fc81d8731ac9714e88ee1c105b0a993b95fe618b90591222e9874dd5e33884fbfab09e87bba97ee6327c58e274dc9da9e9abb3872578643161d3c3e2c947e34ccac31e5a561d66fccdf1b0495ec89b7294b9c33e5ff13a6dc80e8b4da6e95a4b96c37558535cf11f0952731143876d7a43d89a77fecb1c4c5719446e3be4b085a49613251c873d0a338b9296227138ec7177c40c29d88fe96f582d9447d210f3cfee8675c253ee359f5abb0d5b38dbfff438292d6cd8fffbcf722ce5d9ce1ab689545132793eb4d5f0d9ac96f9870b01d2b0777f9cd3a3e4e92ba610000d4b8ef13c7a12720e35850067584264a4b423d1cf510a01ccb06f8e49f37429c39263e838058bf34154c8b0672e8f266cf04bba8e61efd8eb90f24afc388a61cf90333c8710c2272f0c7b1c65c518ac03c392d6df218dca466f5f58ebbbfcce438c299b17f698fd95a6831cbfae2e6cdd3154de5c61739ce2c2362ae2fdeb394eadb6b078bc1632c72b5e3a69610fce24257c52b2b027af1cf7f442c724050b7b5c5bb71ef6e4a948b9c21236a737ac5658636cdd27afdf991c55d8b45662c6787b93830a9b6afdf7a70e93233f85a5738e87e65258e7378498233b0a9b860fd594ce76830d85f5838ffac454a2a7f304d7aacc5227ec84c5d399ce57749c69d384bd3e49928cba546165c23676c1eee2732431b884253bee24e69d73bca112d68bb57e3907ea71fe92b0a487d2e87143c26a1d77a6781a5da71d619538a1df7567a39611f6a0c3cfc104ab087bba9ca3c79cc22c2a22ec61e4402b8698e11d43583ff085b0a49f59d30e151e4241388d7698472e4481b08712c9f387b3fe60c9e16cf5c6da99d5077b6ccfa6fce82147df836dffd4520e0178b05d8ea993b9c3c3ca2ef69c15bd6cc74c43d7c52aa11fd24ef82086782e56cfc8ce7176f041ddb8d82ced2ecfae437dfa167bd039e7f8bc37b1c3b6582323a5a550c9c36e6ab1f9787d4986164be4b9907ae62a24cb2cf6f839c60b4fca82e9bc69f922188b3d2ae64d2977b058369c48fccffd70b757ac2954d82bef8ebfcd15ab651aed8fc4b4a3ca562ca3a162e9d827eb50b262b93849e30769157b7690ec4f77ffa12455b1871f543762869429472ad6f4d8e0a12ee3a8d86287468fc23fc596f346c58e6e8aa34895c34eb9147bf0413bce2965d492146b1ad39c1cfc24067b146b4d4ea69b15c1bc16c566ba997274ffc6b809c51e695d45ac3c2836952dc9ede843e6f289c5bf3a3c09494f6c71433c9eb0995d7762d91c87b171839c58cc762f276f868ab889d5ff73cac1869ad8439fc8fdbdf1287f99583554120bb39e7c3c4cacd191a474591fa4ec2eb1afe4f92876944b536789a5cc3c8e300d2bb1adfa8979b49d671752620d95fa6bd636c4239cc422e269c62793c94e50124b4d869190bc3eb8094662ed0ce18309516d578290d8e7e38fd873901dec767ce6fb1db18749d2e887f1792cdf884d35346c927db8e43362dbd8f834514923f945ecd1c59c2a07be21d9ae886d3f79e4b0c2a4587b2256c9ff41dde54de53822f608311deef305cbf921f6c9b890442af57fda10cbcac7c1aedc85d83ae490bfa9bf1a6942ac41d4cf3ae22ce641eca1e5cc102387153f23887533ee524a9b402c415637343bb40e05c41edd9984ddca1fb691d0d071a49f1fd63c125511ce731cd7ebc3de410ed223d992cdf5f890c65748f531ddc31eac4a440fd1a076ea61c93d917ff5174f9379d8a398e62cc698fec18887bd2b576272dcb328de61efa8738c5e6a9e163b6c9632e5102746ad727558737d98becf1ffb8e0e8be70925397214d5b4392c391fd2871026656972d8266e0716b957214217873d777c1735f3cdafe4e0b0e4941cc5efe4b1c97fc35e7d5ab39d2a4ef46e58f32783e54587cf9c36ec71ecff90cc8a54396c583f07913171124298d7b08498d63afaa7a01eab61fb0a4133d498a56fd2b0781ce54a7f2968d8f483c5c7609a9a3fc392e47390e8d50c7b98463fd8906375142dc33eddd751ee930caba63c29e4d4512c266d0c4b8af27169d36bbd3231ac1fb9ea9b270bc3b2f639d52a59848e0c0c7bd0645136c59ff338beb0d5c4b8d12e878feac30b7bb41ad91da70bab4cc78cb8ceb3e5c185a536e5499283da9e8e2dac1ecee5ce814749fa5ad8463447223307ddf12cac9652f37ca22a36c7c22ab31e5fded32cb5afb05896f5ac45fc846c85e53bf478ce2fecc54d15f6ce7d26fd9155880c1516cf1142ca19b5189529ac19e6e96565d2b94a61938d31b3948cc252e28185d0e8a8972c28d0416db237f7843df69f47a8c879ad72c262a93373f2cfd9393561c9112cd77eb25031524c58227c7f4829648ee425ec3b33152f7428618ff6743e3a9f8435d73b8492987af946c21a1231a3ec3ec23abd7e71f95172dd46d8d7739377aa4d92ea222c21e440ce362489f21061f309eac9e72f22748640d40f394258aa43fbf3287dca8f202c99966fd384306903843552a58ca0d761ff0393c8554a19e501f860938e599aa196d23603e8c122a93164c6d8eb1533001eacd7390e0fa32fa75d77b14751bfc277f09d5075b174885751d28ee538998b357dc73b91272e364fd69d5298e8e846bac51e4a258729cd9543916cb1763c9f982b86e6388e6ab1c50bf7916584e57e448b7d267427af9bc5363db1cb27a2c5cd64b1f79de6deec49df298ac51abd7b39696fda5c57284018969443d1dcd1f322a60e0c7b1c4968f80f2c87fef5856582fa47ebc1a4ec4fbdb05478904e25315fd8df85bd3c428733f1fbb8a25c582247592107fef94faa2d6cb923f1a9b6d3c2f2fb71dacc5123c80765614de9ab42a8554769272cec51c36c64667685a543931ced8939e82badb085f34f52b983aab0844dd1f7826ad89c112a6c779da9c3a78ba5a74e61339bed18319599440a6b9ffec74776e142ba4461bfcb7164e8cfbb29e5a0b0d6ec85e84edf1356cbb9df9424ea48d94ed87efae3accc1f4a485a1336091dc7a73eac8af599b067b2184bafe3252cf7e1d7aa97df97494a58620c66117a269fe99184f583f24b395f88671921618ff6a2ede7a03ec2aa1ef4644f5f4ae9c346584d2e67fe144b39774811961ff990323c4484c53e4d74b42b979ba30c6195bffde8fe1ca6da8a10b6f9ff683fb892f4601284f5bb8398bdf9373fee00614fe9f43c6c87d2f9f407fb5e8c31eae1f2c12af141ceb9cb93c47e0ad0832de4543a8964f744a8003cd8430b951fcd7c249dbbd85288bc7a397de5fa28ba58aa3a55c7291532c4968b2d76e75decce70b1467cd2989cc36a64bac536e6d1e9413bd4868a2d36eff47c1fce558b3d8cfbb03bfe458ba5264deaa0bfd3071b99c5921ef7c7e1516c089d92c5e681751c9dfc5cd8c562b14dfcfe942ed4e63c2158acb139fc302adeedc7dc2b96ba482751ca2772725cb1c5494b13ad7ca23669c596c1bbb23473562c112ea63cbae21fd76515ebc5e50e16642648c6aa5873c6d4b89893e4a82915ab862415d1a4793e4b54ace1693e8e31e3a7d8bec387749058d5e16d8a753dce8dfb102ac566a13b88cd657e410a3fdadeb590e338a3d8fcf2bf3a462e5a8a88624bdd2f0f2943a1d823e67065430e0939bd2f40b147951e8de627169974b9d36ff3c47695834712b677620f1eaea3e4a0e2c496628c96674272134b86fea789bdd2721c737c1939ae9309f62e729872fc694c2cb15b317d3cc6e338ec125be7f88925968be3732b9b15c22f95d8e43ed029b158d2a4b339928ec3844c620b990ff77c63f47c67f6852496e4e1e428471a31fb22125b340f3b5784cf41ac1cf60524f62042de30c1738f583e6c8839f11b47ac39f6c7a6df1bb184d64df0d47b9339f70523f6980f2edfdfbf883d908d1f737c4ff0e8be50c49a22a458559aeecc44ac3b5d73174ae4525d5f2062891cc6ebe829d5a398bf38c49ab1d91f77a80db1d79d7e187443995f57f8a210545a898f4a6632882f08b1c781f87d9e8abcc00e5f0c6249b65fa6e10b41ac16391ee5dcfc71103b02b15cfcc7814d7c24cf7100b1a9ac97c4e77031235c64862ffeb08593b31cf346a718624e701c32d800181ca800185ff861195bafabc8712c3f0c4603c000a3017ef8a20f8b88a405c967fe133bf8b08739d8ccb757b9e314dfc2177b582364ffd85ff494cef2851eb66049f2a527f58b3c6c97f3a3c44c1e785824c41ca995fe3b6c112646a78afb1f77db61f50d1b33cc72c8a1711df6e81c3344bfd1b4390c1db6341f245e4a61e561ca1c96903e3c85e84935e790c39e3f8e5861f31987b5e3c493ce6938acfff1c72944c40fedbc61d10f991e3eaeb4a4ba61c92716fd79315326b661df891baab303a9ebb061f58e37fe236d5a946c0d5b7414e347b531b4a2a586e5e3a79a24f93ffc38280d5b481aa3ec268b8929a102c11768d892fa6dcef871862536ac7c52cb4c6637c3fad3a9bdb1a3c7c97919960ff123dd8b6932ac7261c1e2765d0c518f618fbe3344e56831ec9d3173b82ebfdb9c302cb9562e36c51c30ac9be3120f316da70dcf1796d38f2a1134f6c21ee233ec544e98e44d17160f9353c875315c583d5f0e39ea34f935992dac1dadd263fdfd475cb4b0a4f881aafa8605f14a16b68d9d3e4c0c21bb03150b4be8e7f06307d6f7695e61f990bd9f251b2a2a6885fdc3302b52a52112c52aac217948133d33d12ea4c2d2c1e424979262c88e9bc2ea6106abfbca817ff449610b6939955568483a2f0a6bbadb3c1baded9c37286cdb156b1e7ce4d0e1f6842588479a13f693c9b0da583557a126ec19335d293deeb8723061e9a8696dc4834f155fc21eddfd6c66ad84fdf27afe75c7b313235f246139d154a96937d4a3025f20e13855e221cd4758c65726791063d41447087c610463b4dc11921a9275faef53db8e025f14618f3cce786939277975226c7e1fb226697a089b6a188b398eb1d4b385b084af4a3b617510f6f8346fe65017314e07088bd8479f7c15365ece3f58c63b3d4b43c37834fb600f8dfd182a971eec1f94e9a62eed10aa7ec18325c22e2b2d8faf47e32ed6bcf12c867ffc7043d3c51a73b08f54313356d38c5cac39e86c8f85e5947210038419b8583fca9da2947a8829c919b7583fbab4e12ff63366872d96201fa8f8e45f8b35e4871c6f54df0ecb438b45837c0aaa1691346e66b19707b969f25864b1ec546f8eb4903ce688c51e25c78f636dccfc0cc2629da9e839eceb9ca0db2b3699adea78c6f2c10c572cab99723421ec1aa8566c52b16a374c45999a6b98c18afd524cccb936c72af60d279aae53e5364315abc5851427f7938a3d073194f7d7871766a06299bb8edef124077f0a4c0e669c62fd20a6ad49fd6943ce31c5ba3b122f56ccf387b9147bec89173e3f8f640c29f63878ecb14a47b164a6da887c153a679782734eb002310c116688628b0f9a46be435887f3cd08c51ec9fa46e55c8162bff594beff15700a5a30e313286816a4e0046086277046276c062756cf7176f2d2a89487ccd8c49ef323bae51d754e9aa18935875e9ac34bc9c412772279bb227298818935c71caa7545b80aa91997583cca6b21e38116c83e81a2618625368f9fbff3c734f65bab6046256c0625ae4a306312ab47b998dd8eb437e7904485d18048cc88048501099bf1883d4b530ebff189000c6af01430c20c47acaa9131c794f32c30b298d188b54a2647d293316490c6502ab198c1887d73704962a694e245c56e3163114bb408fb30d1a2ede41c180d00038c0634c1c50c45eca13c5e11f53ccf9c1c438f0146621cf58c445c59c00c442cb1a5f339c7bb923cce21d648c942e8ad66862196efd44b29c69e5c9dd3c28c422c95835ef4a8c338f1e384d8ea73d073217c9494cf20d6d4bc136f3c3443104b56fce062d86820d6b48ef3ce4731e9c7380310db46a87cfdd1e73a510531e30f8b57dfc8457cf861b3ee8bb94bb3243ebe0f76aaf80fd22bf887197c58fae37c473b1b92e41c1abcafa0a80e33f6b0869c723c1d3dba520e3d2c9923d78968851c3af2b0c56fe49acb4dd3793cac1d32cdceca4406fb0e4b90dc394a8f245fc70eebde249ffc9c9cf1a9c3363329a4afd73ee4d061938cab9d43cfd49599c3a663b143a5997ca92287757230ebb4681cb6dcea60a726c2a60a87bdb3f373badfb08694fe9dc92b2b896e583ba79fc8396cc39e662fa47095a3a73bd8b0a595a97c47c71a563551554913629ce450c3aa61b1f26ae6e3f4a461e96072f8ce331af6d4c1a33c58de25f90cfb5afaeb68636fb2d80c868f2eeaf7c79461c9944a2e53e7868e42862d75aabadcd17a8f3a863d900c63991e49dc530c4ba69ce6fcd37ec8330cc5b0ba39f70886edb2f387f4308aa4ef0bdbce874afdf0c29299bba937ae58df857dfd2efc375cd872a42a57576d61f9b07b638e480bdb5f2a39df4a16d6943e59397c6061e9c8d4f8b03a0ebf2bec1de27acc955b61cf18237cfeba0a6bc968e47c34b18f4385c5b42f9c5dce14d6c9918977902421c552d82707972fb47278394a1496b22ef3905373c81428ec1deea61cc347fc4f3e6199e0717c79d177c77442e751763479be260489eaa8148ca542e221d1481c12090562601804d77c00331508001030228ac4c18024c8538d7d1480034b18123424241224180e0c1214121612080c080a0684c46040280c08820161303014b8201981f100860ea51aaa0d55046a3e947946e998ae09fa1d283f50870eaa4fc69667c4a1243251718c67715000950eb50f5548150f353045dd03f9c144202848288950c81c752fa2feedd686f2421141c9f6281d3a0f4e6134941eaaba8f8a633be153f58282877203c5056507e54aa0fa0076392b0b14e78990936449f5b9a0a6281487a729fbf14b0a589e06f5de5040ab76847bada1d6eb93ebfb048a31d41b8a10ca1eca1dea39147b42d14ea0349f7a4371a19042e9423154a8be61c7f1ae0b8a524301b5ca323de3440193af94839ad8b5c4c52d720095eaa0fae643548701953c59f44adba6e1b955400a6bf7cacf51409ec723321d2820c171a9bb7e143051b4269787517d92e138eaec262f402189ea1b143381a940519ea83ea38ba5a74f57a205054e507d96007ce9a7522b14ca1050c037640dbb3c13ad4205bfe3112735f721ab8ebb5ea3c961540b9b18e0d5c7098e9c00f86e5c2f87a48037b922f1ff6e50b4899df3d5487489ebcc87bed39be14630d7e2abc2fbf3dfd077fe8c162e86e4ca065a21d2f0388cf4bbe68759001eecea057efd004d47dba882c2bd4898929cce0a420e66f3cdb9a59de0eb41ce7fd85461383f64ec70155a9f79917f6fd4cb6248e1b5e8f6d1dd3900c2a505350c8ee53d4a88f1c94746313b312432f6cbc492e87f95c9272dfb665e6bb19e3ba63040b303346b2dbe73fb2d112a144e0eacd4e80bc9c9efe370242d2699ba0810ca679c738aee8c88a96de514ddfe907de05421c05bf517211b1e1c29b85b408e9e81a8a2040c3cc673e7590139855262561b76123e606d5eee288a0a26a4f8c2c1f9982bd30d72f7ffbf1557b8ae409b73e7629c2c0ee1039be2c7c7012b8df88d7b245a331fe2ef31171a7ad44342e7a18ba5fb04b7c3ff51b897cebee9375556e1c6b41d9102c38da2100a852b076f6e32d328c492c6af11dc1a7aa157bd67330181810aa13aa20304724da92a463f2107426a46f7516e8a32bd24e39438d12775687da2436991d4433fd24f5eca1b35f73ae129a85eaf62525efc20cb4d264d69b0accbf8ea05cd8f7639272eb409da07c8fd3b8e7f66578490caed0efbc56f85f5b44d0204e42b37800a293a270084cf5f2593583947acb2086db809b62969167ee704d32c1e8aa0b95a69cd343573b1564a5d03b84f023d54c5118e34cf7dbc2d43920ee827db57c672d0eddde62389a2e2848c88958989281c8f6822d627e3864e7dba4b762c85d41423f198a88496272b30ea985fb61ca33c3eddb9a2e7a1e69ccc9f14e689230c51ea036a24bbfab6178e32a24b753743930c6902f2755697a0de83c90772e1b76a26b569c73b59d5cf628a4518acb3fae04460f56931ab28668844a8dc279e3730f64266c453ef0986fbf8b810dda249d9efe6223cb60a8a584220765f84689b10be6018354906023e84dbeabcb6a785017db7d666adf0fc5c508d7d25b887bfc23c7e206dc8f974c10f5b2115339b3b20f7b850458a23621e921764c196d4ec2be771628b4c75d3973ecdb5b6310d0032c361c91d95944f61a40cda8b5bb8d666479a02e04198d975d4d94bc27514227ef0553f95bc3312e019f8b836a57fd4e5c54c0f55e04c468589df9268a9d712d050cadae0b5ae6091eee7addbe76471a6fe7d003e07adc4abfa7fb7b39a44c8ef84ac32723e24ca7d9cd591c42e1b5e98ab40ae38bcaaa061a43ccc00793a219112685b4cfbfe8b47fcb97b0cd672a3046eaed0ecd46c752d2c2b980b310258bf5f77ddc7888c7327adad18e4c6462aa62d3c03b4ea6805e1c1b2850ea2c89ac0afcae3e18d434d9ff276b80498f0f0f5cbe8f031c52fa530a26a10fbfccab7082d7e83a0261dd014a03ceb1711e0f8c68fe37b851c6266da6228b9e1688e5a035c4a42de227e48fbd67dea1d236085351f02b6c9dc1597aba10dbc5c98cbe42d7c95b12882f9e31910450191b008f2fafbe39b84b242c2857efee5ee8db6002ba4f03fba709de5ca7740b5d7e770c783a6c5c1753a27016f7bd82c14dfbd53c291c2c0ce7825bc5a4a52da85234655052b24976772b64c6164458800d199a0099aae9718d046db9456892a9a640bd5b9f20c45208094120a52a403858822939deda804c058ef368636f2386ddc6c7ed82b66cf8d309807ddde091adafedac03bc6c9e89c9f3549321c3c055d4b17e633320601e43964de972907af960d2d50066a6a735f9c9b0d3317c80e59690d9c3c139334018130efdd472bef60ffef11007febe713633796c2e75a0800ab7144651ab5317a4f9daf041750599fecf48eb3baf4ceed66671c8b24636d9ce556b6c80f45905466892cc232f50f255b51c21e3cfb940321aaa8c3ca18d40ddebddf8a335b247557984bdef19a37e5451e7f5e99bf97a68b60c567dd871a3d159a72ec7e90a8545b6c1f7e4dd9b2d68dea3f85f6d90fe7479195b76886b24b9b0a96668f6fe22271faa18ae8947eade37f464ceb71eee5942b3969f6a1b1027a76a7b70dc1557df4bc8bcf997bada662a8dcb000ecc0b00f31ad810d9df0e9cfd2cc8cbf62d0e5e22e33bd44979474077026e4da652687b8b49980422d15a58636664e534c79690a7edd8e849cfe970f7ae0939ff4964fbfb866ad604b759c597e1e477106636ec2821c37d94047bd55a387aaa51ae2fa87b88b33aee12468f4e2f194c379079738c30d0ee122306cb834286672e2f19be404cd75f5dbac5b6da8a4cbfa9ce5228739cbed9c73312749f7a1ae63c2c2f9a95589b0020e6354f0c0873005634a9e148a63be61039bff19463b842a36957bcc759cb4be485b5cb99b8d05abd4e51b94c7ac8fd4b2b8f6991d7bc4031576ac1ae8bc6c07cd726d8ec173610474a0210fc60195f4ace12e30ebf067fe3115a740bfdb955d776ecbe8417dcc67fd6c073bbbe3eeedf869d8b761926b4b42aa507d5873bd23db4cec2687e114cc9124e60c0f0b8b6022784e7a4a5feb2f0ad83c1ceed2cebbb9e396616f9d0ccbff64574ec36a53e986e516b6428ce062bcb966517d99529be2e43f60d097b0ce65c7b0112a63ca1402ac9c677f7d12dce30c5738c19968119d549ee7c23d8629cb6fcca0caa6709eb45b07f6cc3a37d46779bb9b199bb4607d04598897016354f736585b0176b437dba65003bc0f78336be68082fc7896ddb19d322ed27a4af83dfe5a64b77585a66c968c68e95934899b9e676612aa3cc2296f7aee43e36b55edea3a0ce9909e34d422b951c9840d08d53d176467f8fa97b88b33aee18093b811b28f6cd97ca35dde0e190317817d1b49cfc01d15dda6a6b09461098ac7db4e5884a890326ebf8a7d477ed8339fdcaa59bef9332ec11072a9f3e9af718833dcc6d9f02229f73bb233cbc708c17dc9aaddee0f7b684d69fdcda63aab0f2b5a31e6a66cad2e4aefaaae08f77b927be7abdfe9d1d77ec019dce00817e18bd46cfac633dbc92cf6d3b8de3d9deb9892761195b3c60c45ec2205417651e35ef3cc64d88ee17fe7973df36d6e1f4f90533409924a9fb621ef700c5550861eee4932d410e2798e99ce6cba4f8f4423d0095114b708e2c94c4838dd8b856449483292b33657b99933e399d1d0082b39b891c7591886a924a7a2629973ca706d5fb92f32851e41150f852c9987a100aace729bf31ccc29a773cfd5dc289d59c83def40296cf914d81ea1f2d92e8ddaa8808c6d7bc5cb709f43883b6e7d1517c8e5618e2210b4bc4236b79d20246868461b49cee68e654f7963758991e3bffa731a96ed0d06a1f14ae1ee3e83ed5ab258698cfa6c7199e0ee984a14078d880cf2f4b746befbd928ba46084f3f528d8fc39b37daa903520182f2f68c7fcb99650166da5fbe84f05187760a686ad8fc6819ae5933f740cc15e74564d2550e183ad4d22151abc8186662d442cbcc2b8a70c913313132cee22baf051432ce51a9799a3562c69d1cb604e00e825aedf2d3a938b453e248e2baffc233a4050daecb674c08939dd05fc5bedbed57812e9058f47972cbafd4f27f636942746d634eb765e0a63e824542edc64ec985f1ac1df69a81282cf3e22592e7caf6373b8e9ebf94d388c326acf8d9323223cdc1358103420624b5e0a1e38b2b5718699ac6b96c7c866f9d36f2fc203cc882a26b8c4de6108bbc38bc60ab37ae54b741d8ea357c29836629b817ac6a25d9db990fa471923207f8479d2361829e13095498f780099aa1310cb5e61f1cfd14218e6be81842db8ad7c86cf71a56d8ef7d1dab1eca411928b75899d420b3c8708cdb8511d2594b7dcb480cd2454f0c9410b8631624e2d1ccfa45fe5c040feb890c44015026a24c75266508f5737e58f244fee46d0c3108d8569f6fa9e7923dd9edc0789ba374a5b9bd82d31c15da04aeb2c2810c17721b50e3a8a86828e8dbd010cda3020c3c400672278a58f207abded4e2debd51d84acb6c3b0627ea4b3e68cd93cddf2f908a0be81171eddf6658f5be2aa9d2ee22e85cfd8c79bac12f78638a349f73680c5603f84d22cad13b5c0c67bd507adc3fd6f1a8e748be7e564217a8428a21f72da2b556bfc90348c071c1a3d8202943238b30d30e33dc022c630f049bdbbc04acac30e124dab5a667f9addf6debb08521f6de17d3a4e928f65527314ba9f94c192eea104dcbc635ae2e63aa4102b6825cf48035564f03165e932f23434028030c7415be2226d9edb18081a6a9959c28a053901c19d8e520ed4d901774e3d556b8c1e91e745a6490767ea11707d744aa3dda26b993bb9dc209a8d076fa9658e73ceb5b0934b1fa9815dc6a95cf3ed6c129104c24888ed4bc8a352fca11caea8239c55b925d58bf8cadc2195e25410519663f82b6b2ff59001b415d89938a295a027186db35db81ea9aa73d3fdb8476e07dabcc2a87f96d9dacd7b011c544175cf8041b00d330a852309b050b30190533e75153e50c0b1db5593d3f08419cfe76941b4aac72314c35d9b7c44ce147c042068d992fa8e3c60dd06f23539fae115347377ab742e4389f2f1ecb47560b3ae26432c712dd55c6fc0ae87bdb4358c0acbd7bcd310e13af47b2e5e4730380e09096304694e9f9136211acef04d1a6b229bc966d50e33f699a4c842d352199f04e902569ecca49030cb997be68c6edd1fe370af3ad480dd4015a33093b9b3c4f62dc5c510d77173d97ab40e4fa1d7dd789effc137f90d4f606cf8b986b245a4c1266813de12629ac964ba38d03bd2cdd203a50ae4a58ab70a60bc24469e067e5888d6f58b377db46e18dbe5df1453e8523f84685f86a7cd5fe43b7fd0e0c941842e4bb13d936e0fd03430e1e0e89f88aaaafe98a27a361bb1979cedd8bfd89c7deb7717753e3e42e73181fbe0f9318eccd5d04a2da067f4dbe5a0f1662a130f544740c54cdbdf75ee87a18319573959abec71b88d89f1866ee90ac5dd400ac6dbd2bdcfe14d12dc920ddd50e2d2950c2c1f44362fc9b4a0fba76c36ac8f9b07f78355aacadd494d762cdf458a0d4b8a8a65406caad075a2b4557bcd0cb63aff8df24819ffa2e04cddb9785777e0221610cdd9e0de3e7fb9f2821ea872ec52526a055e474911923c82cf6f1316cfe3a5fe37233d1ed955682a7a61cd918679164f1d54f35db83e75262d0a7a8ca077ff095666b236c3b5a569f20e044ffb0aa08e4c1639d6187c3b3aecf00c97b02bb407de94741412e8d9327ae416fd3334f336879de5ccf7a707b69d03910a55a26ffcc360a5f46c00d618b650438fce29259d5a73f2d54c973040607889e6ae67ad5cc1916094fb1149c58c3f4bd014f7d5eced5d607748b32260050dfb9a1d58fd25201939e7da86395965ab81df139664cae2ccdd0f8e8517594e983c27cc9b45ca62cf41420d3048634523dc0d427dbaede8aacfbd90ef2eeccbe53b58fa49d5ce3ce316742db493b2d348c22d7083d1d626e76d6d21a64a607084b12cac4f3ac0f49b83a4dd013d767034514adf5bee196fa0e25e2c1f49945af1aae587dbd6028820a0578f2db0e4db19b0fe8e1e59571d0fd22765770dfa64ebc0ca17cfd2330611222277155ce72984c6b8243a66ca872eff4cbf3b07288e656bfb4c4ddbd0d3232c871a51b82c22f1f4252415036d29806a7c9146577e003969eb9efe21414501b479008975b6782f84a8a84aa2fb08abc8d16ad3165f01c4d79f5634a9f18c6a7ffea6cf6538a8e9a80f00f18fc76de1b8e2aed272b75fedaa544a009068356c32cfdd809f4bf459915200a34aaf00aa108c1e01159403eef69d5bc1df3437c526728c212d550856ee8021f0142d98d46558cc0b9c1274ddc0ff0df2c99376e63820a26379abd379dfec7feb72d0dc0341dabaf482bcf128685cd8bed32c9c32ecf3e81788971ffa2c6cb2b1179e52c80d5138a9659eafed36c605271a4905b47b442314a9dffcd9e299814de12faa52902c6e47c534ffc8f76cea34c5111101b8912c94cbd667edfa583c24a78cd400e710991a6cbf9e21d9297188704a4f50872f51e506a1b8887793c2917865969e671ba38f1620672b1beea6f9bd559035ff283ec9a1190f44b8abdbf2ebb9d8c8bdb8c47de7c33740e37a8dec35710910f4b8e911ee3b083bde71791c7eaa310415617b117b5cee0d67380feae9ed42634edc24fdc173db9c25ff4690c2a629567257d3092f9a729286af9597f37466140264169a500c170933c1c4dc4c474bf7464dab3f040e09ab5211f7a7cac0f32bf42ab54db18af15c04a4d64979b2d7fd18242b7c408d2e5b2de1c4b2d277cb68535cc059e0db2b037e6e51b67895cc0aac49319311cf902039d1590d41e8cb700af8ed4789f3580dd22f13ea943f125230bacfa3fbe005c21a1f21587ae5f0639b5da95610e60fdf301b2d159b00be2c02cde36940e2c812b7f18f0f07a87ac814b5c67e41fe081d71fa103a322c842537d25d78a67c31618b44742f820211e11a0ca870eeac3d2c031b8e70a46401c2e01d50e1e897f1e4f9cbf297f3b3850f802e274069f2408135240893ee0bb09411956cdae88a220141af88393d99f541d15af8bfda81aa0d573634016380b76406c7ffdb985d905ab836aedf205a4cf5f74fbe4e83e3405a453e73bd07e56e69cefe78915f04ed83b8ed24f5e2cf3d4d7320858383167f011db66f55600e70a02adb0126c812edd42f9172ed9163b7623b8302ca8d549f0d7ca3d2804ede0aab8a6aa950eab420cdf12c0ebafff715503a3b0810da88b7fca0968c15a0bc6f497af2e61c50612be6788cb45327d460ebb1e862277415cd314fa32febb3eec080e799542b04bc95b9913655b039526eecce4db271e5b6f4eeba86ac0f1b42025df7af0e0b725aeab4859860e5711b272868fe1ba2f6648eb768671802b9e2e6fb28ed128bf576996614ec49713f49948d7206e3748c0183ceff6cc8fdc114456ee27cea5bd3b1518e84789ce94e9da60491004d57a68eac9af9b42d670f5aed0fadb0786355aa55a5f1bf767ca3bf2b072129d2cd7ecc81392de6316f5e45be6bd8e7586cf5ab9a7c288b23d5dc8dac72647fed4872c9335e054c49ec81e727e105d10ffa97bdaa067a0abce244483070193b520bf3119917d79c32c8b9ffe4b6fe62d7e38174bf7f89a4fc8a5795990186cd332842aa8d61546999bb70d0c1bb5f036681cc857ccfd5a728ef8097368c9ba8b9332851709e26059e7bb20d269ab6917d01dfb6576597883a5ffc21d61c318d8daea6f99512032b588ed47799e30bba4d73e2c58ac59441ae32d17b2b2fc8e756a1d5e2692cc48a25f47efe3f54b994d135aafbd0b12f2d2add72ff19c9aa813a75e7db998d71d1063f7be762cf2aa9c9c1ad48af2cb00985e2d24e9a57f83feec87af176389fca32933af22668a7b58af6b6979455c38e5252b9a61e864ef7d75a4dbc695ebc8bfd7e3450e999a3868dade5f032f0910cb1feed9f99aaf0ceaf7eed16a4ccbaf8b6afd12c7b6170b4d7ae993fc27c7707dc54fd95f9d5ca69417f079bfeff02b4b080d753ad9bfb248c5a8cabe6649eb0259c3f9e2855b2f340992811c375f37a877b5f12f6b20465458a1e62bd188e6ec35256b5ee6c0fe49826da3e7e67e065eb518f08a2eff40e4c373ba9a3f65bdc0652462fd91f54204f7d7d4a0f27a98b457515967835ff4af3d6aa3bb9068be68acdacb23d569ea28f2d79adcbc50fc5745b13d12962fb66a5f330961a16feaa5db5fe1fd23032355326e0c2fe2fa5a53b5d92e05d76a3542b469ab0afc0514d6a07f91901f9ab918cd8572896f7bdf5f116034da60592e73743b53e231a55f900657f7312f8d0b255a90812e85a048a17453d2a9d006d6f6352ce1312b4a7d1db9fbb9cd6d2d5a62c052c0f054bb3924196335b29fa317725145b7467f46378deac7908e388c5e8d23ffd17b5a3da1ac1cbd4e7734c28b6c85fe905e5b12dc10ee5a6770a5a69c94323ee45a5df66b66782a65ee29cf424ad4e097f64ae692e6529c4f7dcac07fd699da4f2b123b49754b7f76537ad6483a44e99ec33218a0e174a1aa4051b854a0b82205a07a32511210c86f560599d7fd83704119e1839fad9192c9f974d16d7cc9291cd7e61c16f82416f5ce89cdf8d56e81036768fc9f8ccd679b4c395ac4d825c6306334640e190c19193e938709729411834c9501f0dd527084d12b84056510e9c1ff74d36f81f75b3729e44d597e238c5a182307aafd34020dbccc3f4350936f660f879162024822643809599e2c0fb322dee19909f831f53a8a765cd99131a71255244d613ef16e572454460cf45b8ba42bb52de210ba843b86fba0fc60da6c7b0b44339048ac72de2ea4a86222037b3a823841c8c9cd88f952dd0fae14259fa211c12ba8751ca1778e90714d5df66f8c3c7262be071fe099422670d351f340e015be350edcf34d016d06b40477c882a43f3a408ffc923eaee323192bb8e2f0e8d39565ce7411aabec2bad3a327b0b76da7390c9e4917546d282c27834a3b6061bcbc570c54e1f145a3d77280f56cbed48c57c2971bc428f82e0aa1a5b6f9d482368281eee838d0ad5187ee59dd5f564a59c66c5c263b2a5987c471f115b7a83600012f21417e9ed4f5191f723c81c5b575aa28045b458a7be31eac69793f4c74ff5a7b3967aeaa19dd3ce303b4959e43e46fff0c231869b0ea8b7ed8f5eaa98560d3840e4b0962490a4f4cebcc272cc6f4820988e8eb16499b306eae809782fa0dc5fb97fff22e2b3cc91f709af58a6e34e0bd5c525ccd50b6c03ba59f6d81247e8eae5803714aa3052244099961e2cec67f5761c35fb750d9ba80c7729d0881957f8aded468560ec5c3ee85a0fa418edd240615043101da61967ad0d35971b9d967488eab98be5b777da51e12b494b36db931b66b7fe1b839db8ab3e18d1303a7cd9a97d88e04bc5676e713b2cb6735cfc7c8f264a0c02ec2d80c05017d8d224c1dd255c600744816cc920ceee5f4c716c552441c2393c650bb9950b3ac8478232a9924a288b6fd75a022181d470b4b4a7ec71e221c04e2f3c372bbe8edfd0bfe351d93786a0f28e982632b0cdf5cecfd8e4a3ec5678053b0f123223c56e9ce3a9713ecd154edac479f3353e2050cd4004edfb9588b7c2cb26d32a2771f94751eac40bdf0b8e2caca6004d211915d1e4a97b331f827982ff5c3a7c2aab2e544419ad3b532d3542c8dfa1262a646a95a1a3730a908be2349a9467b64614e6f20843733767dc4058da5809bc666121bd77b1033f614762e41ff60f3b95ed29f58a09241e8456dcaf1565426215d37ff3d7a23279abc66323c3b3eb245196a50e95b033602d916dff145e71b4171873281ea821280b281fa046504d50525a15040143f152520436569c95286fb4269422540b1a106434181fa43b9895a4b85889a2be5824a06253b517d9a65807881023fa28084a6db5d0728dabbc4ac3b817202f5822206a54ba8be47a834142a1bfd72219a42312f82b147013cc602ce2b85110d3550b0248503f3ffffffffffffffffff0f7d08ff18e3abdd926cc7fc4fdf4149494949e986b319651bcb2d00000080c028000040a20b0b0d430dce0c8f4fb8d15f63c8134dfb07da185fe40083035a55579ef0b6fb4c429a74c23ff1c8e3a9101f331d4e385e9b246ad285cc79dd849bf258f44efee3113135e1754f271f8ac4a530f78c4c78ee39fc8a0fe34bfbc2c4299e1111e3e6f2b196569bd2f4a47429b23e97f0f3870fd3fd36a6e5f1332ce1548f433a851995f02e068d1d628af7d418bcc20c4a78b1c4f274d61e4b94afb03063129eff5589654dfbe8fa0b3324e1a7947e3ae5413a23127ecec1d2fcd8d2569379e3c68d1b3a83b3c30c48b82e91d5bb2f5b9e1c7d84f362a2292b8f469dc4116eacffec1ec5463831c6fb602b668a9c0731c2f91fb788f8307db054cf58849747e9dbc653a3bbe4314311ce878fbe290f55c3a7ce8c4438694d36c514cb629e081b6620c2ff931e8f3bfdd0198770ec2f7a8cb9879eaa2cf36040c010cee79868f759fef3289ac38c4238f5433bb7cfbebee19941083f5fe68aff1ec570969f310827a7f417533b2b7e7ef0608620bc0ad144727ac4544903e1967dcc11e6e76d219c01082f454841bef2a042856cc61f7c951f9954ba3cd61c32c30f97c445a6db46bd6d87f768b27b9b8f197d7062d24b0a6ae1f2a0a6197c70736e2ff3f13c66ec8111b3ce8aad9b69eb50ad9c27b5667e303e920633f4e054520b8995ed1979281c33f05064c61dbccb11f3407e3c17799b618723e791fa34a30e4c075f7b102a3e119c831f6b2e3e30d11ebf967270c482a5aca7da80197170d6c76979729be74185cc80833f0c093936da67db66f330e30d6e5f644ed3ed6f297d62642161861bdc700dd3298946165790e37c0146590866b4c11fa5bbd833191f2b330ccc6083df434df543c9c3988c88175b386280e38b83e30562101ae0c001c618770f98b186baa16aa81b27989186ba8186ba31e30c75036798c11fd78bc4dce36a46191ccd7395f211677f1fb31964284ffb50b2a7f61883ffdae3d03cf8fb2c1a1583f75bfe3e4a8f755ea91961d81960f0625c86cfa3cb92b6b3195f70db531ef530e4ea61a4c81c003fccf0827369fd2a39c32a554c4d1033bae067fa4f1e5b3d7f6f757598c105d746c2a598b6fe13da2d38a79e6207f341c490c7430bbeadc71efa209a05bfaa4d52acc829f5b8c482733e3ea9fed23400e230e30a5ee7fe9c3273b8fcc3a8159cbe12db3c1e8a898219557072ad6499f18fa16106159cd2ca9abafa3e7984cc30630a3d430afe754e52aa11ae02c10ac81724038c98110547524ae6c912927f96674081d7685775673cc1378b98745ae9194ef06308ad4122865a98d104dffb6cbe2a3e67094925cc60829b9385f69c375a67ce8c25f8eac17d224a5a0e3f4e758000034b98a104e73bb422a8a431fbf14970d2b7c5d090c703097e7708bfca831f477026fccc423af9fbb318c1c9a32c493acb07257e119c583d4e2a1f597b5322f833199572882a55171982e75631c47c4ca68eb6109ca8a9b51e52222c8583e07976cfb14ecdee9340705b34f3858ba13eb2f6eb9369370faa0f7c97fc17bde531a9df033fab5496e4335134328307fe68fcbb637e2dd9b90b2f33d849d8446e8d9d2ebcf1d0797a60572edcce122955f051b8f0c2e7149682f745c8dfc2cf5125dc05b90b91ee20c8b0851fd16a6ccb36a4b27b08326ae18f6e2ee6ce3cb4707d20dfd7c3349dd287998517e3c1a34898c47f5e166ee8d21e46cd6acea39458f8492d528cac15587839e613f37168b9fffa0a3fcf8f6cd507ea2e937385afd1b55534dc0ab73744c6e498793c5956f8d13c4cfc78d82a7cb5d8ac09172b04a958157e0e1f6dfb3668b8cc7d2123156e454b9094b8309b37a8f03ba9988c86bfb441720a2fb52d0f6359d474316d0a3f4c2a8f2364f28f61eec7c3e3b47f9095410aa7db47fd37fe28fcacb50976a2289ce0222b569f875dd987c291687934d12d536441e1a84d0ffb87729bc9229f20ec72e4641e354f38319c6ca924ab13be9fa575ab3c4c152bc9e0847f21fb46daaecd83f118c3ac2006040445c626fc61f6a0c5cd83448747137eaece9483d8ca6fc464c2f7d1b60fba3759907cc1843f52954a5b66b984e7e3f1b8535b46499b614bf8e95f227d8d58094793965ac8fcc9a084135d5623a6d285fca99431092f77f4503ece92314c0c14013224e18fd3737c6d071fffe681634b023222e10717f741873c0e24bc482fae12acb38fd2e611de5bc87df943f48e7922c311ce67cc7539c6cc43322390d108bf7ae0a3b08d74c937440623bc8a94e99c2fe6f1a8223216d1db9647bd9c4667848c5490a108e726afdd96e79af77112e1272f9bbc312dc61ec520c2b12c0db779147efc7c1cc28d5e95b8ce902d47c4107eca11eb42381d53c514b5d6c7e3514d08373c759e7ce731048b0ec2bfd06fea431505e18907f310722a4f9db94038723d8ee1ab26a3472940b879a879b4912d24e30ffe87f7f90f3dedd6522dc8f08313725585f2414a90cfe9839b4b7344c8eaf9e0c62c4fd783b03d8a68efc11f898fc387185a3db81ad232224d78051979f043320bf3cd90cc47ea0dc8c0839f2b63bf947c07379d5cfaf31fc598f721c30eae7f1e8410ddc463ad9d061975f0cb071df2830f3952207898303e70e3c683600d32e8e0c6e6d49fbc53f67f19820e087454a09a20630e6e47ff8f7e94071ffe72e4e0bc9ae741794cfe79dc89833ffef150b42f0f07ef2c32c905a94d49dfe0bcc53cb694d2cca969dce0cb5d8eb6c1bb0e3999a9fc6cf0fc0739f3a8b4498abf06d7cdc7c3a49a4b6bab57836329ec72a585e4511e8f34b8d121e4cad9cc2ada071a9c0b3e8a7212bf296a8f33f8d126136ef3270b4d31831be53a05eb90210f424a19bc8d6993e6f9537bab90c10d216519d9d6b8d99031782d1639aa3ae481db440cdec5b7850f5646628e84c1cb29abb4222ac49e08189c38170dd35d7fc14dc1fcf36a97e551c65ef0a23654c814aa5212b70b5e8b9fc9e741aa8b8d72c11f79e8c16c94710b4e0cd1b25456fd8f372d78667d21ccc8e5b52a0bfefc789c446ab37c0e1d16dc6479906e7355864ed615dcb0cb90ef51f4983656703523bb6ca6b9896c159c944a437daafc842851c1970c153383841b15690a5e8618ea42780fab1a9182dfbeb123a673cd3ff021230abe84f02d6e7d91010537059f33319f554b912fc0c871831c2fc83146181bc0010a194ff0eb87614452474959ca8bad4a800c27a08c2650c9608213f265c9129c1e24ed8f9844a43fa7044c322bd26ba4d3c2324e316424c1f9141f599eec68615b99994006123c4b4d667d9d7b3c5739823fbeb5fb4bf9de530a66bd418611dcb41ffb64f7102c194570539a88f7f0eb3fc81a306410816a01328660a70019423092118492010496f10354810c1ff8b33997b88b464b791c193df05772686599105ece97c10337a5faaf50e6efc22f0d6d9e7b9c872ebc919c3f9fccfd86a6e4c213ff610fa3474e1bb5c4056f9b07f97afa5b3832e93fccb8d8c20fd2ee9f638f7347f42630805af8ae213a5c69660a5569613706300bbb81039085eb6d1f359f57cac9578c8517d3de424e3c4c87082cea869e01bcc20b19bd2e85d4656319802b1c4991d3107b98123ab413c3005ae1e6410e9fafb18f9e1fac70a6ad62b3c73cf935ce55b879142a2bdb4898986155b8f2e30a319cc6e01d36a9404b2546da8779a0c2394d3eaeaa9a0741d453f8ea79cda5fb93dc844de1a4bca95b2ec9b48fcb52f843f7143a686b48e1e55a4f2e639963f08cc2950d165fa123494c95840188c2f731b34eadcce34f13260c20146e8572b36893b2368aa0f0ec87b9feddad23c2003ee166f21c21d9e7e109ef43aa55d7e51852ccdd0da013ce84f48a3c77d1c20038e15decbbf3141d63feb209dfd2549ea421bd454a9af0c5553cfd541e9970ccaf2f426c19136e544ff9c847425eadaf0903b8841f7c68c9a73e56bbb6bb0158c22f2bf3d03cd40e0a03a8842fc1d622e5281ecd369470a297b994b756f89326e1c7ea0da9a9c273984412fe5b4fa7ff1f2412fed4e4e4a156617a2a90f07d94eac3a7c92e19eb471c9ec1421e4f6f8e40a2c99a4ae874233c359bd93cfa7eb59067849bfecf2b47f1ba6cd722dc9ed6aefeaf20a1a9229c56995819b44d847fe5d31fa6b33f8f5f4438d19277873ccec8e381e6104ea954aba5b289e57943389691fc0791631a4b17c2d5f6b7fe1e04eff43142f803b73c4e3d21bdf2a48370c62ed3b62457cf8e08c259b1a9d4ea51cca1e440f81b2daec245858bf002c23535dbfcc3f4b0fdc1aba81fc734f53e1effe507c77e528e2ab5e69b47e9835bc9c7830f3974ae68910fce86cf086f6eeec159f1b3f741c9f7a82f3db8b9f356106bef4cbee5c17377d71425a4fc622b1e7cdf3a4f5313c9b7c277703d53871c1261fc3b3aeb3a78f127793c90183af8d229c4dbc7ca9014cdc1ed4c5af53537d152500eaebb780875a938785f397375490c0e5ea7a93af18918ede43738e9e7d6ef535ad24637f866ed6d692ba573f9dae0e730a621c4f4e34c261bbce87c69ed7f90357891e45dea33328fa3062f8fc2a51042cce3ac9ea5c1f351e5ef4cf3d0e0f7aa7bf56df468227c067f9c434862395fe51e5566f032550f7ee429638c45cae0c40f2cfbe60c19bc0c2221e4f1782e2484c6e04fa4d05a3e6931f872218764abb1365881c71c728f32e5c876e1b68510727610b9ffe8c293f4152c63ea07995cf821d4bbc761830bb7e532543c730b57b2ca445bed79e96de1f58594967ed1d33e6ae1a6d09cddc7d3c2b96d975e174dabc92c1c3f491fca2d438a892cfc89ca94df255aa62416aea5302a1e24b070924f5ffa3062f89857783fb65c61b751cad2ae70364bf23c0c92b24ab815def740532ae4fbe9b0c2eb341bdf1f422dbdab702ea20fd4b28ff3595415fe30437d147e1c7ceca5c25b4d3db812159e74cc9fc2f9614a4c29253172ce146ecc3e8c19d9fc6a5f95c21fcc7b4cabd9feb157a470330fbe62454ab7e86a14cea7a6d4cea34b9962250a2f0f7aba7e985528dc143f2af38f1a4333a0f0a2e6428f7c58a1d6ff8417faabddbc378f47bd27bcaf55eba1d8b5448f4ef803bbf492938413bec8475935f941ccf326fca178ac09c7a2c632f3514a2e67c2ff249f82a498f032872ec91f7ad0b88413aa2624aac88f5745acc01f6858c2b71cb6ba82e74187e92056c2f30e2a39c3998848095f26739490de7389c936071a93f027b3cba589eb4e153e1a92f07d30996c2ee768a11109df2783488706f54d232624bcdf3c0895f490b9f74005683cc24b212182e4ec1a3d7b471c31122bc48748a3114e1e5fb4e455ea29a4448311fe949da5781fa71ee54f0e1c6188813416e124cf1249df2ac2b394d1dfc38e99226db012e105b1ee8c7d3d6820c2ef30152bd4eda365c88bad17e821dcf493da708d89c1c13684373d0ad2795811d667052420811b37d26814c27f33a9682f1b21bc91706e19e2c2da473106e1e4f13044ea41751ef55c82f0a2e6abee94dd40f8d1db472295126d7940b8b1a15936fd783c933efee0c44a31dc27cd2796871f9cd15031cf23397e3cba0f6ecefe9af2c9c78f4d7cf03727fb41d4dc1e9c709b99447dd431cf650234f4e04bf6844e99b253ec6c1e3ceff04f3f0a0df7318d0727c8598a4580c61dbc241daaeab247af4e3de00217e4b8c08d1b76f0722ae941c71c6e21391a75f02b6592ecc17634e8f09a8ff2b8d5ad15028d39f8296d4c4945451ad090c37f9183065fc800c7173956608a0068c461b5d62e93a8753589de996a2ff60134e0e05d97857cfd792893df37b89e07412b668ed075bd186ef0de25e524f620fb92dc06e7fd2736d2e7d18f47a7171b021a6c70724c3f917b98d3e67cadc1c9769e2a8fd24d5ed98080861a9cc929213e5da54d5ad3e07df4d774d43cce988b0a68a0c1b328cd296a87b28a71968980c619bcd0165e2563f57708194d3b33396230068e808619fc968dc1cc735e6ca16e19fc810ffc6a535a650b512fb6980cdef8a062ea71080f9ea68dc10b1f997edc8314b285ebc5166d066888c1091262fd370fabdfed30b895635acfb97e24b796076880c1cd08a942879a77c6e5c516ded3f88273ea9b3f7f6b87a09e175b581ca0e105d7d284fa4b471e6dba0b7ef428b8548af10abec8b1821580e182751a5cf0e77dd8fed1c3983f45b9011a5bf07fe85a5d1df28847778c2fb4e0e7f0d186b2ab2cf5411c3870a83dc4c8f1020423078e30c4480d980007056864010734b06016a071850ad0b042ee639f949e5426a64940a30aabd88856cb9d695aa9faa04105d732640a11b26b6da5a7e0dce6b104f733cb32638e73c27841056cf00031c4201cb8710387147cd3e8ae29c4eaf1fb15053fcb475d312116d45d28783edfed1dbf3dc169bf90aec63e76b9dc001a4e702ca87424b5b1e9ec834613dccc14112bd687083498e0584ac83ef32ec1db3c4ce187e9adbfea568293d36a8f33da4d82f33e521aee6d1a48b8635a6b5bdbabde072ab9e46aaddc4d1a47f07d18a1f9e3c3b8ab0f2dd030827f93e2ab7e34b932faa05104e70721556a4d0e151bd220827721e447e6df51f69fe4018d217821d724eb710cd929f2a021047fa37d901f6b951e8f4323087eaa88e46a9783c38401c6430c09d00042ef43b5725f1fe7077e8f2abf3ef047736e799864a3d1034f2a8688b28c2c515a0968f0c00f6f498fcb1e554bbc0bb7b735b3a4ce6c79f077e88297530f8d754b374b39898bca75a91123fee5c28d74d2a1b152072e5c4f8fa9e6bc6c4aec8e5bf8e38a7c66223fec946c5bf82956b46cf6157946ac85af9e4e63478fc937466b602870e3460d8c17b460cb5e66d5eb6aea9885e7ab2512a2d66d94fecdcac2cfa1aa3d08aba9df072aa02316d9010baf362e962709798577f613ad26e461069130a0c315de0f32d3cf826adabc6940472bd46caf79cd96349ba9ae83156e3e954f21bd7b8e5075acc2b3ad1ec55accd5a1371daa706a42bc54fbcd018608f4051da9f0cf276353cae17c70131c858a8e53f02af3762327b15d5e95425ad0b0f65e97de0e53b829ec425443f639f3749482d441d4d2410ac7f3c83c7ed4a6d2951e85db9fc624fb0f168527f9a24375bca1f04796e5c3ca29d5010a5fa32c25cb90e0ed757cc2f9181632d7e6bac3137ea7fd8f2d455a48ff5e6c694727fc64dbc31ee5db70c20f31460e9f829bf0c776a9f19699267c6fd3147a10d6eaa02313dee6cd793c8ee1a28b588ba372071d98f02c66e9c8153a9b65db7109efc5fff22095c8f5662de19bf4b8ca4e9285ba662be1a5ecd1c827efd8e33b29e1fa9aa70feb1472e67e128e96864b6a4e1152fa9c6288c107e8908493b346cb3eb658ef9a07ffa023127ee51ee71017e3410724bc9887b93a7d0fba079ff208c7d627f538c9ec08ef7f838fa35ba627b11be16ab20e1f62f2282cad8cf067facec7bf2c535e1771dab84779a8a7a66d47ef5421a6aafc2bc25b1fb787393b0f1b3f021d8970ce45542de71f56d6670c305cf0811b377094186380e1023118081d88f03a53259f1cd6536ace211c8b6932c9cf32c4740d61b06c370b69fd42389afb34f264b08c0c219c9fd41fa2e76e109ccaa5ab85abc65cdbcaa6e41af9c21d827053baecfa8d561922a56a490c6440b623109e4d04cde52989a745739418180edcb871a30310fe4696a48f45b25fbe74fcc1d3de1ea6c5ce21a9b30e3f383e1b61f3c8c859873afae0451493e0e5172fb66690e32f02cd56cd074f3d35d45b1eb6e75eabd0b1072f96ffddf6fbe87a30fd173200c30605870d5c10061eeac1d1cee6e3a1774cb12173e3068e8e3cb8f61d62f3a02578f0c7214f92f9916bb525efb0a7abd32051991dbce9f00b9139748ad4a30ecec5a7686a17aec42d74384c243526a65b55cd4e23b6594d6597cf630eae4f4899d1eeb153a674609ef2968f36e4601cb859b5b4a9b3b4142951e971689d85581b75c0c10d21cf454c150de305396edc0023c78d1b5f8021060b70a40a3adee07468f7fa783cca1a237283b7b94244948fdfd106af07db91a5216d6aa550b1c1aa2e0b8b929bcec394cec6638f84a5630d5e1289967f7e3b63d04cd0a1063f62ab699cc6d031421474a4c11fb938310fd9483677a0c14d89a94f5bee99917ab105460ecb8e339c19ae0c6eaa18f321330fa24b1e23e82083073ac65037ac430cbec656e63cf6330c7e88123d6376ce97c542450b062f457fe9b3f00c931e55d9f10557b2f6771e4665b8f2898901dee8f0c2d7039f918c142fb66a60bc884147179ccef5ad3d928db99cea1c1d5c702c2b478ac590d1f6afbee8d88253213692a79bd0d9d339c6c82106186170070826408c07cc23870b3e70c38b0e2d584716ac030b4eb209eb58b9de73b6e0153cbb0acbe8a3ea90f2e80e2bf8db1e6eeb39a95996468cdb8e2af8e9d27f96babee86cb17a400715dc4cb7a939c2447a6a1b305f6c00041d53704c62875bac8c8f21c662a0430a7efa3c721f2bec63fc08414714dc94c77396313b564a814216ad528c8f75e97882e399ebd2ac74826739e62ccba5bff0519ae08f3fe2c7d6c3cc1a52d8c10437430c1acb32d5b4939a22e85882295ab65d2e2562e65d49e2c799a7a286c4000c09bc2006609c227428c1ad90cdfbd3c9cbe59824382d3eb89f8d564963b003094e8816dee57a98fe7d771cc1f1d164ab10ee26049b74181d46f06a936565c98f538414c1cfa696ee2c0797af8c085e0a16cdb752ba838f1f822763726595d7a7ecc2167408c14dff41d9c7d0e358d01104270fb62ee27b760118609474410710bcaf0a79b0115eb1e372c490410c708891834b0c17e4184306b9808e1ff866297a900b65870f1eaa657b55114fcb0d3a7ae0664b32617c70db6f21c74460061d3cf034e491b9fac724355913031c34305f68edc2b5c81d731e0f6c2fc6201c402fc62061a00dc6309ca18b2d26244ae2c4426dedce627698cb31fc482fc6201cb871c38b3172e1f4d0ea32c60e2dd9b1635c78b59935ecfbe32c6ab7704a53ff44378db8296de1757e1fcf49b84b3e915ab81dea27799cc716544b5af82229aac66b380b2fc3f86c8e21e55c9e96c5ddadb5e5599aa919739f55ec53b220561edc5878b66193f9204589eec3c0c21fc91f3a7dbea277fe155e2411f1bbc95ce17b0a96dbc4077d9d0769853fb49c5d31f5687e369ec10a3759b66c4df7e0276566acc2f791c42495f3204a358d8619aaf06272890ebfde26aea6c28855abf64a3157d3e4a712239ae58519a8f042b2fa2acf83101bc253f8d139f650a6d2456b688629fcc93ff06469d255d4638119a5b8ccdab4d4ac555b4b63bac33483145e08b5281ad6320a379be78b50793cfe52d56688c2d5349963e6f31747858293f88a493179b30f15eff1fb70a9e8cf0085eff9a5328f4752629d24c90a35f4e0f6c69ba41eff28a91c428d3cb899d2e51e9ae7f1e0fa2058e8ee8c2a316335eee0c5bca2bdaa1abb2d5fc30e9e07b51f648a46f418ac51073f2dbd5c1aedb1e4615a4006c6f9a202ef821c5e40a0890e4e1ea5246715ed396c121519dfa56176a132661deace3a39b866279263f2c70fac383459d13526aef611e3f199538f3d25978f52030ebe0f52b2580beb0dae6aba3cea3c4aed9a961a6ed01a6d705398ffd23e8d0dbe89474d79141e2fb670ace08b1c5f7c41c21003871866056f701c62e84c51630d7ee5710ef9fbdb64523a8c3064a00627abc79b2e7336ff100e1cff458e6368a891067f445364ccc7834a1941836b31119e39a6b9c6b4c6197c93b518e524ad6106af53483996c67c5b911a6570d3a61c73cc976cbd7b32f892e9af63d64cd1a91c831f5b938f45d4fafd3435c4e05df6512ec95111a4ea1a61a80106dd55aaaaa325ad4443aabb3a4f3615cba13be70535bee0e634efe1e34d29667d0d2f78317990a387a56b74e1346d995819557199edf0914f545685a8c1057f903beb471d3168fca8b105afe65f628c16a121e65c8d51037310a8a1054f7b984c2367dfabdb59704e524c2d19934bd6100b5e579e72093efa0a6774d4a9ddd99a78b8bbbfd66cd35bc1cf95871db2b78c6d8678b14503f3058e18808183eb4a0335aae084d8e6eb2b7909d4a08277216af238498a39ee52630abee58e0deb633e9e716b48c16f35f109d1fb1c3118c18d1b7f3118238c1a5170b4bbd376be4a0d28f81951720f2377778f3b4f70edc73f4e93bfcde7662738ea83bba4fe9e7c245d139c4e519b2159aa06139c3c1e57ce123cbfea41bf4c7a929495e05cc81321b3a492a0cc454dc7bc895547a764531552e8b10612fc51e74df98716d5c22d29d43882ff153ea7a11619c0c0940c60e0358ce0c4d28898f2af07ba46119cb32891154cb2c5b40611bceafb4ff19953caa38c183586e08ffd48dac7e12304c7277cffc5476b04c197145d4e2acb35a85f03087e4e979029844c8d1f78eba3c810713e9888560d1ff8f773e7b14aae34d4e881137ab5c79d934f2ed91e319001181f3035d4e0811fc53ef5d87fd23be73b0e05d885bf627231e6b0d425135d7829ceccc2e6dd075173e3460172e175588b0c72f93bf4e58b1c454b50005c38f383e03faac917e0169e8d7f8fbefa533eb7d8c2dfd854a375d3112b5b0b3fc5d0a308fb9c3255776928002dfcaf98ac72faeb609d320b37c7dee4c31e9bb2702c8d5ac4ecd93f9eab00b1f0738c1961a9b302c022d32a33991671b9bb74a970e1c3bc5da000af7053d8cc9b24bcfaf82f376ee02857f8993c64cae3f1a48d49e6a000ad70f3aa8f873944a900ac702d8faa3cc3c618d7111c146015fef8c8d3e2c7a50e0aa00acf6c2a2e5b456c683270c149538054f88334651653be0915c402a0c2db1861f220b682029c22adb06d35930a29996d8bcf9647f167c923cf18708115c014c4c9f9c0f26527830294c2cd1ba1f1f9430a4f3d5285f9350a27621e6b8a4b153affa2f0d25232f3a80f859b5a3655aab9aff0010a3fa50f5172e4136e18cb6849373d36db137e4cd91c6e27573e77c21f1fbc9c70c525622b652691e826fcc1452d99fb9cedaa269c885ebf59d24cb8daa2de3f2a8b492726dc102df6963c5f46f3126e68380d92e59acc3b96f0b4d38ccada0fd6af5309276a940cdfb09d153a94f0d5232c4f6612cec61e9674e40f29fc92f0265aa8e8b88cf9f38884f3e3d952d33024dc9c633578b70f83841fe1c7f8418f3e8f6ca3c98ef05b4afd9275ba496f23fc54f631324d2cd52423fc514aa2215b581f86b908277a5569f61fdb6ba908372b0fa22e8a8970a26988461f659ed310e1a48a74d7e1248f2c338770e2cb47a669f39921630837c73c1ee7d4c814c2d9189267d50f730f3a84f0b46bb353aae7c31f84933b8f6cf81f82f06e45c3e6618df45902e1a985a91ed6ba9b4b00e16c87983b99cfae923fb8d973d688aefde08f3bf7c04e7a621eb90f6e76fa64199552ddf2c1910fd14132ba073f6fffaa49f4e0ccf6676acb773f4cf3e0052fb3c92316f28d78f04205cbeaa3dcdfc11b9bcf3c2ccb0ecec71e271fc7b03ccea1af83533e525393ce72f2a18357f196fd7c1cee7799839fcd3c6987dcdf292c076f26d4688a58e4d11a07378c07d9e0eaf9620607b7af664ced2f9f468f37f8529e2a6b65e41e7bdce07d4a59aac731ab7fdae0594bf68c15dae9668333279b3538795421e69f8c1adcec902273ea51f7a84f835729871bcdf7bee14741839ffad74a528f33f8f9bf2b558cacfb8b19fc8e6da6194eae93a50c8e85a9ef81da6568840c7e8a18d76ed6c92e52c6e0a6f6402d8fdaa547e92206b7c77533631634445cc2e05c8e56e56d2792650183af76e7e3398f3562b07cc1b5ae8b7df5932e8dc50b8eb6f84a59f5fc0f2a5d70429008eea941cc72b8e076eef1e7f2e016bc8d3eb2f0ed9f079687167c09d2e3f176eea865c982f7e38c25f26dd1532c381f41b53e8fb26faeafe0d55ac829435a8a545bc13f39b3a98b793d47abe0b8e47cf2314a0537c68e2bd3ca7df99c82f31e2cd7a548c1d1f0cb5b4954b6c628b8d96793578550f047691db5265536b927785f2d1f3479c409ae671f4a0a9fc663cc48131ccd41330fb28f9384106182b39e291f4c224b7043674eb121fd3e7b94e0d5488c1aa28f3daa27097e660c6f1f0faca344821395e35525d3affb23b81ab5c7e3a9cc1fd91bc1711fd6b6668f1ad1a3085e9cfad82656f44c0b119c99c87da331f96025d66da4703e161182a7d6e1f3790e827f16f2388855cc642f103c198bf39af5076eec618c4d4afaa0e0d172a5f5c0bb3c8eead15d0178e0fb789053745e0f4bd92edc24c92ffab5e690962efcb1dd5c348f7bdb2a174ef748d27b7bd5c5d4b8f03f0fa57dec431fd5457d0b7f3cfac99823c7169e8690d49fd4368f34b5f0638c897ea7a18513336cfe8abce1b19f856b9d6a3f9a903ad32d0b2fb3c72e3e4a9a22120b7f54dab679bc512c8cb0f07c2892fba5cec672aff05c52b4bb57ec0a4742282df18a5be1589a8ffc62551ea68959e1762695ca112da7e7acc2d18e1596b7b5358f57853f1ea74eed29250f7b3c52e1ff304676b0bf90434685d783dc31f2b0ab4ae353787d995c3cb2a67062c3e56197b95a6c4be1ba853c1e6cb430994792c21fbd8ff6785b0ff2c81d851b6cdaa3e7718a289cd134efb5da5f91db5078794c7abbad62276f41e164e6d47191c783fe6e3fe17bf8303284ccb551ad271c2f310923210fb43e9d707c34553de8c109c7d6adad4e3ec6fd9bf0e54bf3a964657a34e1ca74050929a5904cf821878bed1c3f4c19135efda0db92cb77062fe1560f22e51ff678fc9a25bc6c3691267dec1a954a78261f3ce5b258e950c24993ce24df6412aee4b225e1f69be6f148c4473b8e84539e66adfc871adf42c2e9918f431ee6a144ecf1115e8a296af5e6cdb838c20fe982c56437c213cdd513226536cb08bfdd3fa4150b12e1229c90d42fdc444e529d229cce79e817f296082fe6b7cfe59b22c26f89195b71afbe941ec24f5e9b39a690d726a58670a67f90ea2f8f36e44a0be107ad649535958a574a08cf7c934869a58370238f37736fb81f6b46105e1e0ffeb73a0f64d40f8497a9a1c3071531a307841b7c3cb81c35fc78e4923ff8532947fae71e68b4fde07f0a9752f4f39831dc076743e43cc8eb835b9ff9e04fe8cd176b3cc9b47bf02ae60d1b1f4ac4ad077ffc831852ac79f0c2c42496c70eae291e7c4dfd2ff623f30efe30f520e647a31d1c49eb9a3cee106abd3a7812bd5c5b2cbddc967470fb07e92a7d0cd1d299831b3da6e71f4807dbc8c149bb10d29b9fad64e2e08f7d3a53fa388fac0207324ffe0d7ee4eb58b91f6e702a24d5db4d94e5943678db799863f6b76f59d8e07f481a565b53c6cd6bf0b3666dd1b4b315590d8e86fe2c5e3d1fd44d83eff9a28731658bb9160dde5bf251ca6f1733d133b83d1e7a8fa9968737cde0a4d40f54cb327856aaa99652fa8f64f06cd3c27236f50be118fc3c28dfe8a312ffcb89c1bffff4a31487c17f89bd9e1582c1cbfaf9741f845f70cc34a68f47e7c3fe1c2fb836978715fbd3052f041f46b79c52a875b8e06c5ff061ea68cd837f0b7e1e5cc848f6597ee46bc18d12fea398b344293f0bfec87f942b671e58f0228fd49fcd0fc3fcb8823fda903c246db63cb258c1cd83903c2a55425fa50afeda95c648f1613d54f04242bb43c814dcfa616ffe51b8454da4e0040b1a13055f3baa8fa2f750f03fbafdfbff26fffa0437a2e4897ef79a83ea04df87bd5261739c55d904ff34dad4c6e7b13032c1f53cb4791f8f7df4a3ea96e067b2ff9b5cbe92aa5382ebd3a66e298f72f93849f07a4ad225d5a4761f095e7d5f085937799c7e1cc1f7a1f77acca3ff3cec61042fbb459249a631e79022b8113248859989e00f66ee62f4b3fcd91d821fa352c43c5485e0845c5f8e3ec81c7b6410acca196366c680e086964e51bdab3c653f70abc7d7bda90f9cdf8c31cfd1c7eaa307dee74d964a2e454921000f5cbf4aad70260fc2857dbef69a98158e9ce641fce83cf4307aabf02df887896643155ef40fec7abd525388b1910abf556aa507e7f731f8b0810a2ff8a418a3a4e97755d360e3144ece792c11d30f83b6a44de17f6fdee8efe15238e93e5d0e9672ec6449523cfd83d8132488a3f03dc98878fe1cfd621385e3b1f51f44423642e1f8e551c50ed3a481c2f11c66f6e93f5c480d4ec1c627bc1efaa45507cf0ec147186c78c2f9641ee73eca281df559273cab0cfd6e93627eb58b023638e1f66df5b04a2b73c6ae80e18215e0f822871763e4a0c126dc96dcd3c34e1e71018e3172b8200c314813fe69a77ca7455e6ce1c87165011b99f0e47a344dd4b496c71b4c78bda631546cffe9b02fe1f8e827dc935cb61eb996707eb49173c8e9471f7f25dc9c56312db78f87794c4a3851e992e741692e33cfc6246c48e2b0aeb5f13015ef085fc12a6619fb1e6823126e578f62657a48783d52b71f0f3d7d64f01fe1dd874ded4d95471f3d1ce1e710ad364485dcc3ba1be148a7e751180de90769668417ead33d0e9d37c6ee16e1b86a69b8e4167a5452847f1dad36d58524e1933612e1bfdc67f4f7fb4f8f391b88f0928d27cbb0ce3cf23ca060e310bea9847415f3a0248fb3867033b8649ac8f94210226fd818841f51d525a6f8f5a8d11884613604e1984b67a4fc25293ad240745e12d9a5aa69ef3e5695b164db00848d3f58913eac1c51cbb6e1872c1b7df0438f4fa3841c55f23026461b6cf0c1f90c99077da129780fed828d3d383f35736e66792459825bb0a107370f7e3c4c679793872246891061f268030f5ebe4a79a0162b156cdcc1ef0e17ba534ce21be5e4820d3bf8e9c9cebbf260ad47958d3a7823294b36e8e0a7b4a411b3c939b8fed9e152e498fd42d2861c3c0916bfc142a6fc6b1b7170d3cb07d2a25908180730d061030ebe798b8da593dee0ad798f6cdb2236dce0e7907ca1928d8f465262d86883773d9f124e52b0a4a9175b6fdec4a853810d3638dfb982a791101b6b70663df2c0876ea9c18bdb9c2a429dc774292bd84883d3212485a51f451e74e76ca0c1d31ca255f4506d9cc1f5d1dbba24f5ae4c291b6670ad52c4fc9e4717f2b38d3278619e42e5636ceed18d4806277f7ecf83cc238ec14f9bee17239712ab832806efe40716cdd22f7e94390c839f473fbaf81ffb4842f4110c8ea5b02a3968c4e89ffe8213c247e12b0ff228dc5c2f38ee529ed2e6b20bbe0f7e2aa67bc6053f573a8dfa929e2c978d2df8f13e5e11cb430b5e501799d0a3f4e9c3b79105dfc799b2e59452650ad9c082175ab442adcd3f4936aee08fc5e0fdb96de3ce2a810d2bf8294d4b8c8ba83d486e15bcff98bab22e2a9c5e6722b3755256239e3da6a5d898829b29553ffa18bdb3210537435aec08d388c146149cf021e714ff4a67b1818297ecacc7314c52fd783c9ee0f838dfb58fa2441ec709dea62cbfb88c8f21a504c146139c488b7e1292221ed906820d2678db1a4a3e9965cbc19246b0b1043ffd2057a559f27a604309fe7c08ea31ba25e93a6f083692e049b4e450afeed94082133a4ff6e0d6bcb471043f26ff7ffcb82c9d6746f0bd3f9dfbd4a874f9c0b3510437b77d4d48a9ce06119af18a93ad0b2d0fdae309e13cdc623686e05acd6509adcd8610a812878d20f877e3831e850fc63d7d1b40f0ae6563b4e0151a5bdaf881ef331fa1de376d9ffac0cbee81678fa2d3fae57ae07c49a5e992f5e93045c1060f1c53cd29c4460f6ef266805db83196ac8fc3a5eaf1204717cebcdfaf278989127f2e5c8f112568f54de4410f5c78a9cfedecab47765eb9851f63f4583ad9c416fed847b1a4937779bb5b0be7728850f541f881e769e169cafed13c452b240d04340b678276a730ffa1527364e145f0616a4a768f2de4c4c2f96196a944ec0bb30e2cfcb49d3c4fcaa7253f5ee1e788f629f550e30a7f2ca1250fd346e5609a56f8733982a87a8fac27c30a2f7c1efa68aa07aec21fe78c9ef148e6638f2afc135791f70c17a324157e99e6314fd73c8a2a2a9c689247622956b67fa77072246fcfb1bd29dc08e14273ee94c2fb903974a787776448e1dcadc5b0591e85e3f65f19e342c3dfa270d3628a56a922b3b5a170b56ee4ad53fb8c080adf23b627d6bbe3f2093f7c74696bd39ef0cdaa53e8a1f4e8841fd47d1032b20f4e387dc1ab6276c9ca796cc2b18caa54693da4872632bbb43eb03713aed6848f7ae562004cf895abb355c58c8a7131c0259cf4c328c9b61a7ca3c50096382aa7dc21654e25dc34e953c7bce6e3ee50c237d1cad29099849fcec7a3cc57e9729625e18f479e3f7bdc31d56723e15a278d929c19b63b48b8e123e616bbd0e3b4c8231c57c91af3b0228e70b27c10edf1f8473d398d705359b8ce318411cec4d5cb4d8ffdd5ed45f815638c981a6ab693ad0827c6b0e13fbe3a119eb4f458266f6d481f44f86939a53195f051318770d57aac924263087fe412bbf2e84722fd17c2b9cfdf29965ea3fb2084ef73d721d437455506e1e751e8d2bca9209cb2abf3a1a41435851c0837451fd5c59cc702c21f0f3adde7611e7ff02a79c89dfe93c694e207dffa7d6837e122e6c8f6c1ebb2d3324b157b79f9e04d4695981f0fb4d4dd3d78995b34a7e8f0d36ef5e08ff3d0a62e432a5b270f7ecea33cfa3c4ee9928f820727d34f0e2a11ae2c45efe0f9a4caf4a3f4de6aab1d9c1ea5a4babce59654ad839f29c864ebf130a6964a072f79d690b1f1d1d9330737985614db9463855f0efee85ccea2e71107c7eca582d96ad8aee1e049c8d5392495998bdfe08de5dc69f3685ca96ef08779103bf9d806279a7f34dbd8e0d8fc268fb809295d6bf0c7ae116a4a7c1429a51a7c8b412444e8601adcfe1082063f6f8ff2c033e58c31677034a6fcd763affca59ac1ff98a1e66f1db28f32f855719d42f26c29910cde5cf7b8267f1e77c5700c4e59670ce9156426470c7ebd6cf2710effe2c384c13fbf91eec8d8a3c8030c6ebcb884bbfb0cf00527768f7db28d6db6f60ce0053f6652faf1e58fa4e119a00b69cae34c5e791c17fceedecc67ffae3ee8b6e049eaf1061fd4e5618e4e0bce4a541fa78eb95c7d163c17c9c3e4171ed9228605af2c36498788ae49b52b7821ddb3bd1d2b38f69b642ad458c5a60a4e65ee4c4b2945052f92640ba991297821720a9f8e8aceb7147ccd22a12169bc538e82d341336dce11335c85829b2ed4b2b20f5289f904b76376fb4a882979ae9ce0db8fc4a029a2868f5513dcbeb7929c5d2b5fac98e0f65ac8c3987213f9b304efb2741ee4d164d4c628c17791d8283d8e59ed91042f855acc5b33121cebdb60a9b67eb37b04ffb3a62d72d894836704d7278fff2abdaf478d0c5004ff62da86eaec508bc80044703b790ada3ff8a17d85f8c10043704b3363d2c72125b35c110c2004a725a28948f6a1a6453f304010fc9c33e71ca1e75473ba81600020b895b2c6c24b1e4d1e0ff203af3688c7856c75a9cc7a60001fb89efb73c53ad9d0fc5182017ae08dfac86bb3b7b80303f0c0f18c1fe54c6f7d506317de58ff88ffa5cc192d5df83eca29470f3f0c11a1462efcd214f97d2ae594eeb9a2430d5c78296f864acac93e4b6f5ca8710b3f58d8feed0b89291d5b90739f06c965d9ac8513624d071fc48532f588518316ae657c879831644d9b9aa0c62cbcd6084f3ee3b5a132cbc21f94d4bbaf140b2f04b1f1978e3158f8a3999bebc1aa6b0f42ae2e09355ee18f3fdcab07393c42f051c315d7989d4a6c44d6b6c76b47d77c69a775d56885afed39e3c3e4eaf1c538c2c87201c931460c080758e1689f8fc2628a182269cc801aab70ac34f9864e1943400d55588d54786d3de1434a182f785c0a6aa0c28f12ab56f37684fca337061b400d980047076a9cc28d79dcea29274d57e9c314ce55faf120059513cf76293c3f499aaf4db3450a5fb3f58be5af5b4dbf175b16e876408d51ece1ede9ed2de15e22ed23abba1cc35e6ce5183544e199addf458e581232582314ce565affbc1582851aa07082e6f1ea1e48d5f7f81a9f70d5d3c9ff5ad7ac5d6a78c2cdd993a4b33cbef43caa4627bc3bcfd4612eabc1096fd6721ec7fe1f8f0fbb1a9bf053e78a5231f36a14c7173988170f2c4d78a9398fd4076135c339c460ce841b1662f8975f30e1f47a76f80cef9f2a7a097f702948b2694dd9410d4b78c9a3aa36646d7cf49570a67b10accdc752d312251c1f77143b1f6c2709d524ea1099bbd30e0b8ff31ed649746b8cb1162192703d4c59dae0c39c3c9951a8110927442bcf39c5660b91263e420d483812621ef5598c351ee1250d3fb1b2a945440cffa08623fcac10318c4638f9defa6c3ae51e4f0f4638a619a127a28d5b448bf03b44e49c2786f561ae28c23bcd9cd52cba89f053f9790821319d461811797a8b4a7f5c8a9cc7e3106e874790ca9df2c8fd30849776133cbeafdf3b5ba3105e848ac9f4514688c722dd83707288f02b9e29e5ee5010aec5547f3db516d7c302e164cc92656219b3870a0837f6a6ecf9dc5274b0fea0cc7ac5665b8bb96594f699beea13cf0f4ead4a3489ae9da27e428d3e78ead1a318c9af731eb75e6c1d625c5061d4e083372722b93cba7bf0ede73552c8e371b6018c62a814eda402c2d1502c1409040251300c54653e031408001038220bc56291501a26b2e607148002582a182626261e241e1614181e121409c3a14020080a8501a13010100c8441e170702a10ba3c4c6013ebb4991d889e5a8c606f66da6203d66eeabab9afd2a85910e9790b1c721cd1776f61be85d030276c9957037c876deac1efe7384a9cd2520c7813a71391a8fba618f79b9eda440767d8d27a9e2e875660eaf0638db66751c1eefac7aced4f16426c4bf822886e2ad2218360ed2837a5da6fd902fd210f12115b22ece78e4200b396c0e6bb7760d574b408490859851546344720c8a8a4407bd387a7572f848d961ef0b1603202567e7ede8bd2db395fcbed1e0957c5afe0e874bd1e2ed9e28daad4eea0762938a19c21cc48d06794ff72009ba3ba1e7299a586546684b3672a0dd49a3634796d06a077833da73a6d7504c6af3a8ea2f56e6692910509da15825a0ff42a5a847d4660a43bcac96f1667db8b0947a40e4b1405dca53406c7cc8210e1e20af498171ab43e4fb5a47284eac393085550832737354b9a054b98b9fa8a988a7510690a57c51651dfe2d26d461424ca010b9108b600941a7ef76caae7309140a00f4ea261c429f59b776b0ce889eed5243b0aa8bc1359a17fbd594a671f408f0c732861c8d77d48f0202de197bdfd5b9bf7c2980094a29fba8b76791b48ccc9558d300ee98fb1364915112d30411bdb07e41801eb61a67b643f44a339bbae68991a7cec249acf4fd0e9bf38495cc48d945f8fae5148a1603f4899169fc3a22ddaf89338b75cdd2a4024852e8efa9551b715616ec9bd58c698c08cae3d7ea53ee48f252fb17208e7858d22d2f6dbd06cb04654312d449b6f7c5d22cdcac2a68ee8157053c39873f3c140a481d15dcbf6fc292d90e881b0265d39cf18da1932284426e5585e9657e20797c0d22564d1c0f9e266daf7dcd44b9c4687b50a583309c0c44580c29e6e80635dbe6d35f48cb0bf7d1e61db75a456e5bbc8b6d0cdc0495183bfeb87738f557878e44ea1c2b8880ef149648a48ffc31bd34aa6abf4d77efe45b8efec4551bab40011fd378e8186c318a58c583e19331ed5a82aecd45eb5ca91f3501ecf841c256d53f5593fc7d6635d2a65641fac17034c9bc286ec0716a5293617ebe6d2f7a147b784d90ad6a1993e177a096d757ee74157efcdf6076ae5576f2cf0544f2a80bf343cfc1e97897e54f69f07328000037105b17671db1839ffccfff29005984d02eb0c23b763c8f5a088bcc06f71a59f235dcb35cce9c38ed6e74a6907338a830aafd18c96aed2330570a79ad87b31c2ce55bb73933282359c0436398cd0292d861403a5a23d17fc30ceac7031bd3ea0ba560d4aff90b4fd2ec42b28448d528ef4329710c40845fd6279e392fd440dc0c3c6280518359a044cada4195e8dc5bceb6746fa173f95abf83034b9a50026b680d62cf428e8f940a3a2a2496519e026238c3e899216fd00bf5b9a123343f7120f6666718776da63af40cb2758bf16582e045018600fb36822c7dc75b98054531281de351832b38b1de06898235ce41468ba619ca55b35c976389bc3c57b4b37f5bc5a0d3ecac9de0d954587c6d82dde6c7cb28b80c00934ecd2d78b5e16c2c5dbe1bfb5edb2d1e562a4892032f808a5568e51252f946c633d77038e3097cc60839c17f5f816d5446e04d241e0580f907994a764ed5487ef3c5abd637b7c5632e445fd100c4417cc05abaca1a4954d42b409d60a2f5144700d0708f4253bc422179d8d8438a211db6f1ca2487384d9402438f2accc191657093017244eb890ccc0ccab95d5e55cdfab1b53bce5e156f954044f5c68d709443303a323d90fe0f9ae9985012a8cad00e5fa29faac1aa98d0a9ba5e02edde5686ba352ae192b228ca8b8d8ecc19ac39a46097b7ed4c589d599c131a517ac7b394c176ea5ac48dac9a0e459361a9619eeb00b5a8f8e222c87fef11c44cdba156c1f8d3bb5d07046777d27b0081b7f899fe624a5d4cb45c171a1f295e1d300eb412c4ab5144c8d55736156a7168aa1b0d5bb327b1ff7f7cfadced56dbcc33245f21f5be5bd61e79bb467c2976b6e4d0a46cbb96c2441f7fcb55313e521931628fdcc2645cda05c9cdc39ec29b8c5598433e2f331b7cdb3de351fb1169e81102b1481d6ef9bdc57eba7044276140a8c2066dbb60acd1b7e98cb7de116a248aaadd0d7b8ea3c6c06ec6889ecddba434cb1cd1b03d2985ce9cf7b96024a42d4bd02dd42149417bb3f1c70548d308b4b8ab12089a88538df2c101c98cbf1758f3bcce558173e8f0ee1608d6c238ed2c9b2c92b1a89dd68d8d06cc32792209b274786b8c6daec534bee24a9156d3cdfacad24600ffbb6468b88e6e40031ceb4d5a21497b8393e1a3a65072b6866ad21c8712bc1f27ef399617b92424bc8a4c521b52bb1288fbcf02b998aaf87d5e1ab6432f32c7a6613426672eab2bec197890a6f97e89eee6850c327eaf19dbe92961167e5bf18633cf5f4e69dd07135a45e6b719ad2c6effa73b86aac5422997860f35266457c10c77c317f9313b6c8fc75cf1b042d79cb45a3fdd1d4531371a5626a7db48046783f38c0e0151fa6326fba12b4068fa6836c4593f06f823f1b269c6e3df7db26dfbd4f63f82d0cd6983d9f3efb01ec4d3164c1d2dc7638cade04b68c31591f97d290680c0e8a917e3b51b24391b8385da2dcabbf74cb0906fb5267a688e2d764c971f932cb4a1317167f12c0e7dcd384b68c2745a743bd049e4ab02cbc9a8807e7948a260570dbbfc306cecd61c8491b9864739d684cdc45eab9414a89663c673d67518e4cffd89692634831abbf5cc0c11c59693b0bed4467901e7c3f541e3362e1bb38f4041f02aece67366b047fca96478f9378799c6b3fd33a5f45a23642ff6ec897338c96b1c895fa9d7b955f0c920acaf6e68e08c12d60ac460e08b922de920942b82aeda17c313f62315a8891b5d8f1fdaf306c21e185da3fdabb2f2d3ef842770244215da20ad1f001fca92a42a3087d29ca39647eaf88be44a679d9a6a6e9b47c414ac361f4ea178900dc00dbb8f101777b2102b53f06b23af309390205bd58ba7da1e4c3e0f8973c3a5cbac639aea4a10a3100b16761dcdae5308b82dfad9be68322da24b78b44aab90fbcc53e8f47b420386d333834a422c723cb4e924b13fb5bba9e27d2809e26d3a964b92723043f2ab9075c48aba6d402ade5453cfc50103a3f98a4f40b73a66460a0fddeec157d80677f3115ba88f31b48f9b483a6417c90c1d1e00f136e4e1ee983905a24dd556c7d01e92805298cb923be62403a5223380bad2ece280261bdbd649a55412b0166d7a4c040825cfd47ef362678ae8343cbea383a00e53892a7da175882abe4b55e5c41c2348d16504faabd02ca87386c557919b5d6c3beaa9d782c12c3e1e2a28864e78c2406903302d10e42441122951336f781817315a59304f4ab1ef28afc3ff8ebe4dc651f2d48230f8777b8d44d61d6818c77de458bb20f83c302166b74941e8bb505e51c82682b59b1f33a4a5aca13d121436932b50b10faa110a20722b16a21dcadf6f6d008bd14b8ab101f31336c32b0100ecd9d37062e573b3840e5c1cd44f18a1013f2d9b73774a61e22b95edf8585350ed77c3ebe16d5ba392d392ead80306ab5f978d36139f422634f278e1285ac67020e3454d1d507b615ee6eec782194c02df7f9608226df9f16c7247963889ad4161e64feed86d3c40c997e1d0aeaaab742b73644635fee61e623cdd2c2de338e7ba3a1c83edb49c89916623845d7aa6ff7e5d80549ad14044f7f35c555f22c22778d1e76989b7f6f17f81b85f69f17fc95fe277eecaf9a60ad463134dd543b34d41f10029c2d2adb735372b47ea96656c2cde9be76151296539688835482630c0b27b6d6197e258811e4a9b109b3251d5a008f3c3d56794705db9388acc9f88480e12722538382fb42599945f9ba47a59acba30e17d1682db9359fadefcd7004552272436c32d2edb806a13e61798fc90f49559137e2b41a73f09e145566853d98ec1a269cf37f664ada0332eb4c25ae5e7e9b8071534a5620037dacc206edc517875e0b4c55111017d051af01deb59745e750c0b174e03c9bbd6f5736bf9a0fdfd90449cd8ccd3f7440330533cda943124055d5937ea6055b0bb8613357e49395e90e06a723dc3742d417248e2c4920c47cb869be1ae20f39e592b2e8cffc83f3bd7fe7953c2d07b1422bef0fe6eb03f858c89d8a40ecad1453830c065b3ea2f7c75bc5ad04e00a68da7e5f823515e87eb909f6df3f2a4c73fca356e0aa9b6d947e53a399b115c8f91c1c688750d41da86653877e0e8cadfd5d27fb805848932787f4bb1a9743e457addeafb943c6046847592c3b30639c63207d81776466b93186acb4263a01dfce030970e1699d897da8109118e66660972ebcfe5b9a1f7ca530717caadf10eae0ab71952725375888f0265b21fc9578d10cf4fe1a3daf91280ec4028443db06118c3d432912844857356e4d81d3ace9054b7ddd148f94b0d4b4dacf08bb476eb5e88ccd0f8d26469f42eb49a24653333116677371684d3475872792419cb5257a1dc48504040026dae3f99e240959e00aef5988b777b8a590769977507a745272c905cdb2c9c7f2389407f748a663d1797936507554d60503d48703186bd601c504f05d5149b018f773a97a9fc281c889ad2436e3e324700b21c59568d208e824fe4af60fb53fae9d16146f10f2c48205a97e5f13b6c6b7ca3fce10becd3517c3b2a5e58191beb0d3e5e8acf3971b24a4ec6ddda6d7cdadb9c2828f04a7973c1cb7b016f466fadc6681502c9188c3ad76ad78c0e7c1f66f0ee9f15b3e2f4b469cc1780e877e215e8999985102da5c74ae6e43299ea28dd6dc68d359686ef88ca36b0dd12fd81426c79f7a615e1e90233d6a9f2ef2460218759b6a91d5162281f483fcc3daa8bbf6f5862eea87b5e1b981286ce2e33dbb62b0d687b9f0f0cfd3d1ad8922a9600a9b7bdfc57c4edcddd0e8c196ed50fb80cefa32aecfb55f0cdd076d297bc61d936553210bab94422e22b9782edcf621c732387939cfcdbd8d19163990e9683d03b752532a0c9f32363becf1289451f9fd38718a11d7f9866e82b8af179f93e65bb017ef6a2ef4f5adaa825a39d6212acee0aecedbd47f6cd8729473631e8549745dd5e604aa44dfa03bbb179bd228bde98136688896f5cd1b7df0c6adfd361d308b64e4ab7e85b4885abeb38aac03ac453c89730162028c456cab730df51ec0b07f11af8da77092a504b14807193f6aec70ac70a65fcae5bef497d7bd7cf65bfc224ba13daff9e8da94bd035e3ed9143236f43af3147537d33e87abe00efedd2c8d1dfca33230e15e9116b31cbeef01d15ad9efda1fec8d0eb715c8d415b5293a796eaf378abe25448b7b52b296df8e5bbbb5bb03f601fc98eef69e2ed7021ab54ac027e61302c5a986325728278830186a43e79d219478983c421053923354511125ae8dc3dbcc624e3866327f90f8dd1fd4e5b5fec98f4722699be84368890553047ccb65189d5956c8d89e6447584448804ac9e00fad5cd0025de62b78994b74f92ee9b22d0633623392812e61d794b5d52f7485a2c7240269a4b73686956561b3ceaa43c5976b64b3300805546182e6c7def6f0761dc2cb5ca3cb7741577dd5701fbee0be9142a695bbef014fc9a483be9f5492c46132afa888d1061f3a4aeaccccfeb684b75cc2fbbb61770766066b9e2e2dc7394797cf0a8a1175fa2f869ce36b8addec804abd05a9485d3dd478c2cff8101ece111a847016d1211fc2c33914bd08373943bb8e1e2d72b7a11744b94716f1b30e8d230e500d7bcef4e11130baaf660559d453e1485faad3376c69e308cf70dc2f42f7c139f4164007f03a574a6f87a3ee2ed3b48b097245d62ea32eb4c590ca5ea1fcc56b6b15f0807c8d83cc7548a6255312907392d9c519443594f4c3b89e2bfe8b646b8a1fceb3e622344db08ae623bdb2cc525289ecdffadf912970fa55fdcf360b3a3e9a59715d97e05e14e3265c57d4fc43e886d7f90a35afda3097978e57113577a617da6299242b61d3dc412092a2452fb7ac10dbfe8c935bf13c6776e585abe58020c603e436214404e78b8130f647d750803cd9f4b2bccd50211322dca51041806dbd5db5e1421a864e0b1da1b8103a07a8a85ecf05cf83da483b19c3a0dfa38afac3c4bb0119f50f5c3d491d581909d2637a1a05110bb6995116ef2da96a1a444d67661a5d9ae99e3e74c06ec123bc42dcc990b203dc739e2ad00baf604a27e7b62d532810a4624bd6b24bb8fbe2448a5ecc8820f7da973ba3a0603841e714abe247594109b84a9e8ace54428ff43b05d4ba4775258e311723431144cd519b9dc328cb83f1f1928d6375655b97e92c40c7b3b5ed3d965c110fc5aa0bf520ebb05c6275770e1b965350624498b5d3369a9a88a3efb1a4f1a483e88ce48886b81c7817efc09f65161f293130b124be7f49a36b4382ce94e13d0fec30a78a12121c75f40baac25f100cb638646fd3e7ee36e6606299fbec85abd0c9be0dd7f55f75dd2460dedfcbe2a394a430207d3767d490bdd8661d98926ffab1b52e737844346b038d57e0543583ece1faaea3b9d136daa6ff709ec60704c00d82a65afb3024f2280e000bdf090e17ecf82078a5e0b8d437f2e271f0d210844943b094f637bb4752cb393f1b2fcf51e3d3345730c00931e95088f7863ebc04acf632e68f9ba60237d77c946304956da2acf5f1b9b56daf78ea2f0c341bcdbbc133a81be83b73822edfa35f719481064ba1798264cac50dd2c274e432c9a356c2b00cbd3fbb980cfde63fb47080f68221e5feca6daf3c76425291c23ad3ff6b5ea5bd8c046aaf18c8016d1fa2a16d1300a8b6805b1e948e4cc776c45cca851f21373a39136ac215dcc9e43d4be9c19be5707fa554cbe8eb58d25512971a99268bdafe757595228cd2a9d6d5b34a6975f2ac047aa152bc1ef30125c36b22b6f8d8967ca51456bd2455ab59dbc82b0d15f2826cc07e1cf85ca97a362a4c915189174300aab4d65522c8c2e42f3a4f5046479f2201a28629e1de7ecf37c8064b0911d2f92b9208a5bacc16bc96413734c53c9da4bf7ae4de7651c4518be28f2cc69a93eb70d426e4f3a28c7c7f5ee47411f9d060a7bd40833fbdb01b916c7afbb32e88d89bcd4f9ff414b7d528dd31e8716572e0591960c23bd516fcc6bb6ea4e1ed7750bdc3a53c2fd54cae8e502bbf4a650f9263c1565ec25690e5871c8c341b3f3217a663649e4504858ace946a3229b02f4189bbd4ebcb8415c40f6d945a8502c27afe6a9d87f7abec93ba886b5537e36f0828b085fef921abe11b78b7f67d09a7aee1beed7601aca26dd0679e835793c15089c68f7dd71a28dcd8b645e670ad620617a9379a7293696c237f3678eae0d97ecb0794030bda025b7899e0f711eed2fc7874b53ddcd65b720a4538c43c34f336e6a7f57ddbb02554201864cbfb8af4fe9eb2f6a793723e2db98040a8a57571b89824437aab52dc13a0b47150571e4aecea2c0889c7ed19f595c75a6d1cf30b31bd0853083101e260fa5da81d9c5eb3c18130354f889ba9952373ff0a0066da871c8d0602bc6b180ae675c864d6d382996902e9c07ecd6a6c5bb12d536a29f32795765fac67d06ea25e0fc45006535123feb5d30f3c9d4ff8a4553c269c71d437a4deff54182c64c794f433d935b37c993d0ba313593fa72591ca51fee3b7fe686d460c4b7ca6cfa5f2dc92bab462c2badcbd31edd20b0bf03aa14f260187a61108ce1f7a0e6d51baf403d186bc789b4509f416395a5bef710f89afb91cefc1ec4d3b95b6495dba73f52062fcb4e345e44de0182320bde993800846403d281850941120a9219bc92bcc9ab090a798a246c6816698295c0512740af3c9e28725e999424b0e3e8bcd51d746c92ef9e14f309ac9b55bd6b3eac31065f75240228a362e931fd9f15641cda230a66862e3c3491683a963de1175b48ee67fb80275a08e4111904302b33f70076c7563015112b9a288b843cf2f3cbd437e1b85e5c3577e552fcf2bca6d92d6c07d98f33d9f57267320ab9b944470709ce98aa3557d324eb34e00dc74f2885a10ed246c8472fa2bd2a81515201ca809b15393b6ff9f0e9f72590b93dd37c4c139f525201606d9f691a16d1a70c7a1516bcec88b3539b02cef958b59322317b6f724d58a04a94889632859cd5c4b9dd5035fec8c12ad7049ab1a90635fc17b0d941cb4a444c2b9f777cd2ce450fd65be7025d2eb10b6bda4c0024cb1d8e46a6ce34edc5074934f6e3c73a1497a21178af5fb7d44f8aa5f0461d1d1e858b703204de9c27f2b9566f3596c09e9185131000366b95a974b0194ded3748ab42f2e2dfea45a590e8847714027addb12e1c123c0cfbeb9a024847b31a25c021d99f5d55b186875c3db7d463cb2a9bf1c5303202950eb0b6a488e44ef3155ef6f302e356691768d4d0902296910bd8a0474251fe44111801398beedd453248174a1468c231e4747d9f71425172262e62dd12393f1e67780122d71e92f03b4e09fafe84eff1059137b503cd1c80e08556950f36387f083efc3b89e563a0b3051d3cdc39b3e0d3793fa88d4597df1ddcce72ae8e19fe3662ddb01547e02fbbc212c57da9eee09a56eb0fd29b13767275197bebbe9a7a0efe99b0f34650c561d4941fb990496c92a9bf28d7c8e75812011eb082324579f4cf8203c1a94225ebea263808979dd94e73e9e9e9e7650735750f6cb26d00beeb51dcbb00d59b807940bbe2db19e9fc24e822be1463a22477734169a9796bd6b51740a5dbd2c6527f1a543a60ac29a531d928eb6fffac253a23929461fd8d6c1deaedec7d803c4f0ad82210846e9055bcfd70f1983e4772cc2374c292bc81aa2b68efc21f0243d2beae41c2967725a4690dffc33f2530e803f79680bd53062e91c9e7e210199922647364b8e385223d9ebc0305c92075d1c8fe5b04166c46e4f3c24ae6c5b1f78af51fc2f2f34897b540c4470f773df3f6decf0844c0853a1e2f2bf08220c81f660724e6682240c5c5f0c91f04c938f021406b5dd64ec0809a2de3c259901361bac7822b5c15e8677dd444a6b0c1816c26cd3d82e5ef7260dbd2b6e40c82dbd4aa57888eb393e72d6e02eda7f12e686b89741321019b0dee1e5e800a5a5bd4b5b4c3880f089bc390640ee30c7291954fe59f1340d189461f0decf67df75a866c123ea1c9cf3b6f3aeae4b1570bd749a10b850253dc17c46804a259e13fb780d034178d8cd66fa09bfc837b8fc733603c1ce4088ee59c3b48549cfa7fb6fd2fc13b41c6924f4a8b6afd0edf24e02f2c4545aefc3a96d958f752a0eec91d085c19c0c473a9803e7365fa2805e55bf99573e1218b4cb032eb8a14fa0df910dcbfeee6f9a87d7eb2ef1af90b0185391a9ceba74b9ce4a54ad36aac8a38c42f89ed9cca8f46f19a00ffa0b109cd72c5f1969b865121a0e6a610f528064e81209502376bc17e2c40ab313b030e2ffa840faa2be0c2fc8d15363708f48c14cc5f3af2aeee0d307120251ad57eddbc61334baf518800d352c5c3d1c1efa1cb742cf77f4e7e9eed0ed53e488f25bef650f6f782e5a2a5e5e9dd179fcb19973883ceb70f8a2f4846f59977ca8e1ebcbdb385d69ab7aa11e91b823b34a980969e893fe3269e5d2c7850310ca1f0c96e004cc7decc9dd798359b76affbe48fb9b5c4a447f4c5ee983f0100ad438a44e420616a8e0c406b747b63dce2ada2545442b17fa77e1c1162be99d85813708bb08a9c082928c747e5eccef14e199d782ca1fc9f3e7f5c599b04a653a85139a4b8e1128b60f2a2644a96b7b1a03be015ec0d7d96e93c92e59be62d0c03cbb44afec5cd8b45c5ce013dcda5a29af8b0a680c1e82f4504ba26b7168bd50170a3dc4a139321c5f76d5abf619002b0e068db79dcb3d8845de5d159d5dc9497bde7a87d30b496d406af3b8d09252a02d238b4de91e23d083815ad314d85d9d2d8104741b2f4eb4d1fc419d87c00126ec34798dc836c90b22875cc585d5d5ae791d01e2660bbd03e9129a21d2018e36ef60ac62076253f00dbe6b492fd1ee9427b7575cacbd839537186f127bf47157936088972e2709ba69647945006066da52ac2652c3e64634830332386d15724587c7ed61abdee2c933d892c110c1111f015df2c17e7fccbef923fb36d5aac47112765e66fbfac0b964204de4692490d965699d8bc3fe03ba059e88c7040427c1cb07503b483d1bf59ed8b6ecdc321035bae898263cbbd3e96d4667b1b7d80cc50bad5554e5e038321cc3a10e09c50171e1a30d89dc96a46d533a3cdaece6b6613b6b094e6e05292927eafea6e8dad6f8c4ae8685c9e44a73878bf259a29af62fa19464da2b3a68aee98c700cb5b02aa0673f032395642af7a828a8c8a259fd4cc2b290aeb351d6dd45d3731f2d12e552d1ba9eadb3561d7aa45f54fc2ca19c6e72c4f24fc1bfa05292981c014dbfc7e0fbeafe3564235b79da40a556ef5ab0cb67b7b2f9f9294239f387d17709a8f4b07582b9ccecc0e79fd291a292468c61a7d2f498b681d1cde8ff2e8c93a3d47fd4bc009546aa324ace34b643a3d4fe160f3e6570706396b5bda18713a7da074e12361047608cca89b08e0b2208f01a630599ca164c378cb0074e06a69be8281945f4d68b8df0f70e4a2c4a61642907068c8ae6e13b7ff6e6694128db68dbfafb52418626f1ea86cd61b483c473ea2582ba9b0520694dc7a942b04cd5c21349fbdb50732f6c3df1c6df0c03880b12590c51c90cbcf0a3bb2504a47c7baa413eac4bbe4b80bccf5833c10b4072be5038b34cd48f19e9257af1dfe41dbb7e8138cb930f26b4edf66827e0ebc962b547f8cc072d7e329bf2e7cddd6543f5b60a65c519528b7f085c98c20cc9710219c6707677a96140bd88a66b76e6917669fda7be33908218334b90f7681ad99a5e36a4bf712fd0b024ab14ce900ffc4609e1e15996c25946ce9d168fc0470ab38999e60855ad338ab7a079930e63b49e1928c6bf0f8833e48474a40d9269884f4f1da2d6f6b08558cd1c981aef1deee1b551d7d2861578ee650e93a7958818adf5b256d58ba48c196e2b97483d62aa24eaf1c783e41d114b883e8577ca301014cad06d6d56ee58949ac9ece8708e9638b56e0d418d42c347634cbb505b681c1cdb1edef4ba95285a53ad84a00c558efae21dadd04866cb3ebd059511f702f1199d35e781dac29a2bc501b05a521e0e628dd5d2cc4193d812c46919e3b5db5172486b7e20bc21b7a7d35e12339a98f6381e386699ad58ac86483098f958f298cb3e053b3ba09de0ade9f2502949ad9a7668eab2cb0c183cf56ffd1c6eb49488e1b846ab2b059cace0f968303958dfa208057ba491c16ec02f507b50780075567e459dbf4fc729bdf0c6940bdc1877c6b601cd87c1734e2d9e7e1323c74b3a260def64bea76612f38d7cee744c5a25db759c9db153f5fad3c8c4952909e235c8f2f8d71f67a646012a2cbba41b4e01181be438821307219e1587558a2c016d50b329a56cc6febcc1c7dd36e6cc66d678ad05abb099699871f567cd9a89ecd4ed2a16408f09590af564c499132e590984314c2a374772afb83289dc511131d7a4aa3dd4ea86c11a8420652fefdf263db65e2d52b296ed0699b653b2b5512bce254c4f1aa177ea500dcf93c0ca2863bf1fa55535d60b26583cf45a97364c54fb57b1ade068b15c5f426d0e406c35095eceb52297852e4745500374485188c228a0107193b6fee74d21ba129f0773608a792824353a84aa094ef6defc235b2ba00ac663d2f7278156e9d06eba79a7b201e1f81a1a617120cab0a2599b66dbdec5e52c2b35d3908ac263979ed340ab8a3e7a658a424568afe445c10651ef661fbb31d2bc7eb8d8321461ceb3b724fae9bd3f6f288f2f1194eec449aa8e7fc8485f6acff1f51e7fb581126a43dc606cfc0ed6bf869eff522f7f7fb7425c567dc41bc98be685e5c5f4ba7aad7ab9bd36bc0c5e5a5e4eaf4af326340c0fe836bdba9e49cf55fd3e1f24b8e379bf3185f0c1aebc16bf9cc2d8070f66f206d578ed35fe901667b1b1055e49ec164f0a768e819fe176dfe98b9237346d4ee331169e061f26f08e4d4c56e108767c371cf4fbd37058152436148d9839576804a847fb85fc6b6e9086146a8fa4f7de43d128672e40903641ace721f1e4b57f745cd7b231adaf79d2f87618e46901b8c0c582584640d6a8c716a814da1feb5061221de50701faf5a8fbde189cba0bf00aa34bef52e06336177d08d102dcac6a4ec23227173afb6cb4588f07d09eb5514980dba5c3b692133b98702cd0a7a0814e74dbab3cb40dafaba035dc3dfa9c2cb8df52279eaf97feed730b47c89ddd1edd58203bfaab174f46650c0e61a6375e909780ddeb364c6f7efbac8a8ac63632dbc3691dddd0c53376636ea064cc087e830d783933537dc2e428e502cab4d2ee0176aa1c04f8eb9b816cf538ad735281e361a5269fb14f0aac540693e7c31527fe0ca60e6083cdfa2b1f6fa998f8a639e295f79b52f9ec8dd2b31b05ace26abdc210d923c94baf0c0e438590dd865faa3767cd8a6f0426e75b31fd8bc05130955c9516849f7891772b01d0d152c57270e81493fadb1a48ae9890cb453349c771655b17def290938074b15df7c197f48469e6abd89ca0517b4990b9185d6a8d9bb98ed6a2fa2a617e9993db1b5a7645cf275cd26b5a6341387736e8d5b18a07b085eeb5e40fc759c2b09af7b42b487802807963c0e16d605af2b4405dcfe291809c63fb7b4cb64c694ab2c09f7b27246e0243a3c8a0fab8419d25a33878ce03b512a1c82615d4d8a0804f7a52b4e74765bb8504d9a983229b0ed4f050410fd48e5cc192854f52b4351da8fe502b88b25cca17940a284ba17c43a972501659f9865201ca1580a27d6f9d67eb85da07052c5474a8308f023a58a34bcc55004da8d90c0761c941e968c4b1ed2f112a1394478a020ed7266e04aa28da09be4d1d34a85f5028425516559fa474940077a8a942094f75a882ba17fa00835350f440f9832aaa40f57d47497922299a1b0a686dc6af25404164c4399c8226c7f82bb5bf00da3759333b60b024e93033333333333333333313af72c66fdb36acb5d65fda922949527b223a022a42c0c2a524534a294582f6c9cf146ae2736560036efbfe7f0603010317039fbe7c8390a0e12ce66e29eccbac7151174348ce70526155f4df14c2a2bdcc707a99d7568a337f9094e1f02a6995e772e7840ccb2813f2d5f4403286a33c5731e682298683cb0e99b2a6846138253d5f49df370521b460389adc2f2d33a6932f1c84eacaa723cfc40be77be51654aae8d9781ec64480dc857c4f6826f96a326bcb85917041d58c29e6384be7a9766fb285934a9ac7856c5e2d4489168e2244968d50311b49168e496fccca577f5838efcb8c318456aea5dc557285b38aa5b2752a7befec122b1c5dac9ea9cb4b935935a9c279c556d4e525a9f7cd192454388b94a62a35252557aa245338067b9941b68464904821a390cb6bc7893df132265038ab1835f3a9b4f109fa66cdde9ba490524e9c70a6dc886dd725cf9457d2e4a22c69c2e1fc47d5d4c47435bc4c38a9ee7baff8d33c31cf235982717c9128e164ffadec74263149c25975c56e595261532141c231df976b9d162a5f4b88c9118e2dc3d44b97b52be3df55488c7092a36b63ac18d5766815e198f598ecd0f716544b221c3f85509108c9108e196b5166b5a97ebe50084735dd19c49b5f94e5a71092201c5eba9f0c52ab918b9000e12042c5ab144feb46b3f30707a1d2cbc54fcb424f9cf8e0185f9756b1ecbca407a7d8b6b219a24a86dcee121e1ca392a155f36cee921d1c459ca99938adbb4407e77599ddc2cba01c9cb7d26bd7abb59059b12bb7840407c7685a4979cd7cbd6fba4b6e707a5b8dfbcfe41d12121b1ca55e2e11b75ca395ea2ea9c1f9950957a5bf72090d8ebb599790ffdef8aee2253338698a513b5f64a7697e890c4e6eba92c82055febe2e89c141598a2a75cb18f6a4d4592181c1513766d3b899f13e73bc571c840b3d99ff56e78a83c6a045bdd63dca82d0b5e2a843fa9cfc5ebc1721561cd376c9bbbacd9fb55771fa8b794fc829557194b174a5f42a460fd18b30d0c707d22d527190ab6405a52246c5d15d05d5e2eda5986d9de27049838a63cab585298e4a3fce3fe34dc99fb628c541cdc5ddb83a4437bb5b90e2e479dba954cc8d6b3e8a8390a6dd557ea5746c92288eadf4898a423ce47f8ec7130dab5a74ee74f9ac38960a27afe21895efb7d0a73345214b5471d87c5adf8790bb6a5592541c4bd3b482d652828a83da55f93bb35794a6bb88e414272d424577756e8a6396f17a56a53400fa9094e25c7b419e9035551791e2a873fb4bed9a08adac511cb682c62493ac68a9a24471dea432cc66b5511b8392509cf449d5b03975ce460e8a63b4a8da69b22fa697e413c7e0ba4f6e8f8c6ae3c81367572a7e4c867ad3b8493a71f6fa14296b723cb38e134761bbae415725d9c451e898545af55c8dff9a386a36192fa9ce2413c7e4adea32eb3cc1c439d7b49adaf73b2575c92570cf7039d1143a329638d89f9cf68ba3f4fd9d54e2f8263533539414ddfb0cec22a104a79ff2d55daa1ec6d20d109bc4d2ce4f57be535d462289a3ae183ed2a5eafe8691389ea895ad4b5c7e97515e249038c99e2ecfde2c0f636603c9234e498bba6dd1cda1e2ac1682c41107bd7184060b3b3e5a6a35924618c74a1861c8dbd7ab5dda58e95d5dcb72d7dda4692f1ec6be40206041b28893cb5c5a05292bc9ce13459c2debf838592b2fc824893888ff9dce5b1622ce32ead1bb11bee1fa1fe29ca1b54397ca1be298e565f71dcddfedf2421c53beccf5502d9946429cc2681d979953c920ce9a1b9f2ec282d073268238aa9c51e870a1e26af19240ac74b4abee36fd4d3e204c6ef7b629b225aa722f27e36bb9294cfe7016ba7d43bc6878957ee287c35a1e591ba14e4585491f0e320bfb576b227a592be1c3595c678bd795d1e7f71e0e5e5228f5a936a960233d9cbf3564f42975ad77cbc341a80b4b5e415d75567838bf8e9595cad5d49529b9c3d95d6f636395925ab93e6a8420e442628753cc525fec4c7ea2fe54877397f65539bf4287834a51c5ba513a3745cb07c91c0ecab55ca54d48f172347238ac1cf5a3ce7d94b44d12876354632f7a4e6b5d8c07876314ad15fc33b4d3fe2b246f38fee61359dfa11b0e3fa2f48d8e6acdf7bb8c1823c8369ce7624c96eea5d242a83c48d870d271d95a6e986507c91acee3bb9a5e8adfeebc7a90a8e12446b9ecd0a77a1e6b1a8ea153496d5a8903aeae98e12d955af03494068d2ef03e3e24860922732869686870afb5d1d7d4d0e99a5e7f11396c240ec7707f516e5a89aed6e070d0340be7e5ade95c1b79c3d994685db631cb0d07696a26e4af1affd5b4e1a062b48a272a98f291b2e1706157b9d6524fe1e31a8e223376dae6a28663bbe52d3152554fbc8c04226938a69aadb9a5110dc61139039ac194e1f4ff1774cb9753955f11321c55ab3615548cb1397e640ce753296ac470d49a537e4cc5125a0bc370ba6da932aff9666e8f80e17c52c60a9b75b9ecd52f9c7b45c90a42f4f5e5a80b2c44bc70d8886cdd5c92b78d4965cec9d1d496d4756d63868a74e124ff6a715f4e65399908178e3a4c4c8a7519a5ab8604912d5831268de91a8397dcac89d82c525bd6a34413d1c2418853e1d4b6caf62d412092858b60e168414b6c29b552207285a367e613d76ded7959e12033bcee3e84aa700cf175955d665438b82971de32be1e99c2b1f42b1dcda12c676e11299c7674abb45ae691281c94f766f44c7942b7d2074a20038920e43fc0c1210381d111f2206c30004d8840e194a21a19836e996ab3dec3f8a7e0e337c0c151ee23c4c626224f38ba5a1594ab18d2b2123d8c9520e284637b98ae9a512f57c72674a669263d4e88094719cba26e95bad429556409a738bf15b357524409c713db52b5ab78527e8e24e1b451f5a4451d1a37368e20e1242baa5e15658982c8118eeade542e0d9bf317eb8811f60491229cdb4be8515791caa48a0847219390f716bad5bc3e84e3fdedee9ecdca2c4f4238dfb7964af2f4e8c5a048108e5a8718571e9b46661a018275447e700aa646868d112d565a7c70b697b5a1ed2bcb90590f63ff816c7cc1d1c182480f8e4a7aaa8aca824af6f3e09856698bcb6fe32bf43b389d32571ae25d6c9a940e0ef2599eba6f2e8f9873705ed727daff4670705c8f37fbda332f7bdde0205d7654d8b47183dc446c708c9bfc57cc06155fb86a7054f73a4f8bcd6254e33438bfb8f5ec9793faf26a06e754fd4aab189ef285940c8eb1162e9eeab767db91181cdbbccda4884ad33147607072d7f4f15ac6bce26c59b9b9ac52cabd82ae38a918192de5c76b5e4a2b020fe8c285191778e51690b98a031610868c108f14c4a0c145e150c3610d502120373e06904518898b036401f2f1ea86d7f8b0a1c5018961031d208b26609105165c30022a80050848e21000005008728e0164814290d7f8e028001601508016356c747ca1500848470702b0c8220105d0820b189c523a6de157846966d92b8ebab315b4455d2aa571c551cf5fab09cf781833337e462b4ea6e2c9da32cdd2b5337e864658a1456415e792263352a88ab369d5529606253062f88d8e8e062386dfc8541c45363d457df96b0d7b1863193766202a1e8c1a3366fc8c02444e813142bcc68c1b1d1d5a444ca145a414d8618008296ccc1845183694280eea55a63c0c9fdd389bf11f1d60c4f00e576f03a42d14210f32e3671020020a83cad43c7673faf00091f1895372b9328650b35108a187318c1122c303047574b486d0888120346284c8887123757cbc8c18e689d36b15f5d03a835dace40530e001060822d28908278a393656ddad9b782ccb929979b78826ba944c3668d926dbd0dc65a66b6fc4bf7e1366e2f8da5636cdf659926304136725225b28fd5e3521bec429e97f9baeaecd7a239638c992235e54a9bab9990692d181f71a5ef07b0d1a59890825ba1939add91c1ab41199c4296710526a6ba5c5066144122612c79cd7d5d3ba242cc8d945041207fd5ad9e2284d66417ec4d1dff42ba1a275a353479ccb624559a3f4e2a96fc5f00069101b353a8a4520d208174418612957af4d097761088d9f611800820c30c002e847605e1059c441b476a1fbf56bc533c900e9b051e363021145e4ab6979c4a90a3dd260410d1991445c1eeee57229998665ad98e2a508d973e771f2842b8820e220fdb75c6cb72fd687389c14612f63cc8d591d32d0210c2286386dae28ef4d25b542ce186934228538bd5649ed9450238438dd9e893b57954bfb034132541019c449bca2de8ca79d2a06d9c01411c479f4c977d91755dfbbeac1e8401c73d74553e95bfec101401c3e476c9d9a788b517fea4500020d44fe70bc944dc62856bb94a10109f94021207e38c60cb2bee6eb155eeb65a447a40f27d35faa725273bfae14ab11e1c3f155ada9fad2ea7e398d11d983f22b67d65e681f113d9cf4a86bad43a97b9539249287d3ebef7b46955e682daff1012f3838d26cf170369f530dad3df2a18ddca1a065299a5dbab9510d2d6287830a1dd24dab4875a5aa039fb1334e33636c6ab62374389c8d2983b7a802744a29638c3184102232d8c69209120401498ec3281224a575d803124020310805290c831886a1180a320411420c218410428821c4181b2bce01d3bed2698d1b81d8ef282ddfbd36e8bc4dbe564b3ef676194088c744cf72a120295b8c8a261750575c1f16d16d3f77184cc4a4e12ce00c162a8e38169eb81330dc96e827ced7676cf08d73b9b7711e3a29876e26a60c6446e3e16578b51044e40584a61fd02c184524ecd61dfcf97bd38b17887920bc13004313920d24da8965e5064a5a7070602c2935facf30c653f18876815a971299ba5d3e22c5ab97828ded00d14efbcd86e030699ca914d3812cb43b1c3cde6b913aa3dfa7163ca0dbde1317f850f4d832b01da8ad0d39508eb92d83dc3e627d639a069494a1b31f29684b1bfd5943e4cd19758a1367708a2cadacc8614fb46ed25055f27bf34aa7dc7061eff5306a36885351d3e5622f9682a9762671c85e76a35573af1261a23f018203bcda627acc87a3915bc0ecd636340da3671a4f584c473eb8bc20cc7bea814c69d2d361c90d40854b4d336d6207d6262e3551602a597aec00417b88d5f90a30c9b2abd3616e32b424f06b7cc8fd600fe92f1aefa9ce21e926e92ff2da86a2c1047f33f99d512cb7000d39be266e15c49db6cd8ad5b9152acba4bf1e2c671aa8939f2b739dfc356f751a57b1d3c19bcd2c3a606790c632fbe9b05124627deed862cc643f508af4fa8c4b3419f4c0e2f462e0916738e9160171dbadf834f1e28cd70bfd940342e4f0cead938f62d13dd53f75dd39cf62bb196b9ea0f81a9927366e9d43cf34db7525c4a59addb33e6ba89a5aab6d853160175cdae6d45161a911394325f8ba48883c05b1403b2cfb06110ff43aaa15ea755f4899246b2b9c6792ee0ee5d883b73993df1abdb731678c20315d629fccb558dd662041c420e0f82e5f34d1c7f5402483ac3c1c90e017f8faeeab2dc615c31f9d5792a7e8166d5bb8dfbcba2aacfee4ff96f9225f2dfd33118173920bc8b108512b3b880ae22724f3f539723edbc6b32ffe78f563b9bd086c2183c1ab5e6a3b8c8a0e657502fa55e52a5e8784b39b66910801dcae58aa4b24c10f5135699e4d4e032a4332cca7c430284737b0c43afd7c0d6ad307df786ebea9a3848f583b9a424e6739165d20f0b6bf728bb74bc6442c1ed01052055f75fab67727f1d8565a6a6dd6b1b39654b0cc55ac3c7d459eb823cf58a097b1c5e32b1f334af13158e36ce534d4bc1e5b03e73d75a382a962362b547f14ee5e965207ec1cb9862fa04dfb68d70bba189b75c43474f48ac0899aba7c8c4b4e3da0382b7c8190a901fe9f397571059de12bc4af22bf078034416a577e2ae30e8d3b4b4e4cbb240e85cdd84dedc7555781cd2dc678bbcc1a8a35902aaf350327c5072371ca4ea4c9ec1b106eee8df296ca6ed34bdf35c68db1d5d09f4fea4216a41ec9021c2462f7a52024a83a329e47b105376b7f7f19ed864c0e6cbc9d3e917ad863155e5293c01811e2e33774e378d071642c69e90c2d7693ef3e3ab0da7dc1d387e5f961234082304a6a9728a909d44cbad13c78f36f1b38c995706a8bf7a3162a7861f1eb74b8039188f85047aa9707e370099dcbd2d5924a0e84df7d3f507840c118d46c8f2ee0a01f027f44a1ccdd4a81cdce53184f50322aa51069d55e033d0768b89666caab9b4a2636302df04977a97ac266c904951574e5d7fb0d4f2e6dd743c7a21b0e65a0cbd919da5d3aec411a7a3b09e8e624f801ae3e7475519c3170bc0feb7c5b928bbba3d99214e80fb37f5c66c62f3d19268ae5c5fef33b83c76b89dbd7cac93c6a1862ee6b388eaa7eacbb2cd5c952a76a77ca8d7293bf5e5ee4c6ebfe29d40b0bdd0ba5405b7a22175f11f04e996a94d72272a375d887305484d2a91087e43909b4b8712f9d9993dabc288a9a5f460943edd070d46385aa9d99b6b3b787872a2a98ffc93173e019492da27b661e55b663ca7d1e49feb9bd5fec58e85adb3b8cebfa44e701df1511c4ea912fecdb7bfc7c47c83b6b3f53c4d33b82ee7b224fd1ebba02688702ff3034ce461398a60e87e7d40e6f33308e01dc418ab76430df026b9eb9f17ad5e5e0b3c6ced24348216157cec640bc0685882906509ac3817a3454960c9796c09f66591eabddceff693044e59b3a651333d7c20a38e8096d4d16893cba88778cea4e2c10bc2c5702836aeea16a51bf8177f04e25fe0a02e887d33dcddff262b904569acfe7eb0478f6f019a5811510d36e05b8c9d5ea7d66c6243c910ae65df3d02b0c491aa5e668f31a5bedf5bbe1342c2a204d5ff325955eaceb077602396b7b8cb93eadbf76c33d65cb8a8bd515d62eeee6065c6d9b663759eb792aec5240c5fbcb72f60c8c69eea6fc37ef39a66e51c8d8d1131ec60c96daf7dc94b3daea0739249a7523ee72ac708a53fdebae27cd3ca45e293c955356c69b0a3cc64630542ab37808d0b985abbc1bc8db1168f86653e0e5b5f034c3c5b8dc169d9a98dae09c6b12ba25f233ffbd7dd8f2c330362dbdcf33a06b5e41890c3fc520915eab1b325c2bffb7622c6d4c4cb181587a90ff3b26ea06a10bc33052a4db8952880d2227d2d843b5b860676e816a5ed43eca4b16102f2326ca59b99c023e991c2dc6d7085a90679cb135ab3dc0877b28f05163522abdf54a4880b669468d9e81720ae052106a6581f47a79bb8a02352789244838e171fce18374111eec9625eb41e4d1b36beee47c0bb801c68fe94899b437ef468580759ff8629d415d29f3b7e8627a74779b61b626c28a549bc7518fe6cc020045a0b9e0d5d241be525fa3d02307d604d3f162bf8df9779721ccd89b76e478fb42b852877e19ae8b6aff045eb32a8368c208d29dee757484f5dcc4831ead1f134e6486c235227caa742f9818d7bb795a7608e511d8c5ef49784b30a7800d7cbab5f4b1b4f7cbca6bd20a211bcc8aa066bd421bdbfb1e26a5558d03373b80e98a4c2659ccfbb7caaecc03e15182c8f45ea15f2964c2418b1fdf72b7111aeda61893ebd7d604a0b2dac3540a6669f476be4917d178c092034730b331297b8ee5f6733898991f570d538804cf672223cd46e10a243311f4427cfe6e5bdf628e0f93f4fce6452a1ec8f7499c41bba8d5a1148a6777111f052ce4912636ab04608a584028735c170b3c010457c1e81dda02e49b17911bb4157cee3ae3cfdea3c8afbb7d83f002ccfb44232f093e75c6a0cd9338c792d6093a870027a8729de9728f856a5d79c41917769c1ef4cf5a189978a84018aec0224bc8d33d878d53e77d470ff1f1fd651916171b6bab90c58a72950778f7d5bc55f3a627ced07dfa284c2772560f23a4b3b0e1bd7532e64ff3c7dc3c1d06c7efcd6ad203edc7d13fe1880865091321d3e22ba40025173828bae40311339ac4cfd3bb4ae512c0b7111f8a8454681b0e2537b6a9722e1c85006ee258ab1baeceb4801c5380cb53731a663309f65fdbdaa0837000aa16442540dce890c22921000e3717e81e7d8be164e64d89de0d76d89bb9235454848ae2cb4e201d5a7d4fcc82a0c927be82e12ad0c370a0c76932ff0de6d0a3bb8e1d8f39528f4849f1eba638ec43c0a346725fd0cae38d1e6e0939486f884de6c927467947c259911cc1684244424380117c8300eb7997cb496e60b9de216368f2264d62e044c628221f2a792b4d9acd6dad14f37f9a3c6f359113a124a1e842fa808827141deb22e4842da9544b2ebc6c7a09d6ad601e89119805031d077a44b3fa8f3f4d8e4993c8a61ef0c5204db0ac1b8f3e39696113c7cb75b11634fa00509deb89131dacfcd2885fe5543d635e93beb328d5fe4521daa6639da9bb98c4a9fa1185aea8a2d446e44d8cc6943ecc3ffa2dbae18035d2efdbd5ce8093d5bc3db8f3c185423a0ae8950b0b84fa1e9c829d2e6d63a2ae3f842edcc7eef3b11183539b6cb2bd0ae5a80801a83e9bb3b42bb26dcec0d94a3abf9f301f2faa636c3ebc9b0ec48e6c0e", "0x3a65787472696e7369635f696e646578": "0x00000000", "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x100845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f744876aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151bf8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x080845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014af8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", + "0x3f1467a096bcd71a5b6a0c8155e20810308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0x3f1467a096bcd71a5b6a0c8155e208103f2edf3bdf381debe331ab7446addfdc": "0x000064a7b3b6e00d0000000000000000", "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x100845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f744876aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151bf8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x080845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014af8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", "0x6dd12b3ae7975bb95f841f4505bc193c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0300", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", "0xb8753e9383841da95f7b8871e5de32694e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb328a22616a0e689030845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a": "0x0845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3295d097b09a3ea2c76aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151b": "0x76aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151b", - "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb329ce21f6fa898c6a6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f7448": "0x6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f7448", "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3bd4d99ad2324a061f8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f": "0xf8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195026e3d4ba592e973c617572618076aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151b": "0x76aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151b", "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195045f1ca6ffcd6f95461757261800845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a": "0x0845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a", - "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19509ec5a66bfda48ac661757261806ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f7448": "0x6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f7448", "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950ab6c705e19963ee06175726180f8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f": "0xf8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", - "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x100845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f744876aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151bf8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", - "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x100845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a0845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a6ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f74486ea1de453086c8ecafdcb8c05c2ffc5b31dca333e27af61595e11a6dc88f744876aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151b76aad3978bef6ce80e5b7bb80e9ae9e1fb23fa1133088fa9e0555d6d96f1151bf8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5ff8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x080845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014af8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x080845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014a0845a5993b29977c58c9ef36aad0e09946f8a10b2ad30956dec1207beda8014af8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5ff8465e78528188a1511df15027568a300d1319d346dc7ddde5bc33dc8c27fa5f", "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0100", "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x03000000", - "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2aeddc77fe58c98d50bd37f1b90840f91f7f3f3eb1c2a69978da998d19f74ec5": "0x0401ecd473184b7f5028ba310ae0752ea08b7ceaca214d81dc9e952e23fedb95677b005039278c04000000000000000000002200000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf203c4e6f24381f9883c261de14a1b6edaf24e30971039a4f3efeac990c8d2d6c69f98876ddc60ec024608480ffaed245b": "0xbedeb75f75809a9d5ca347ab1449ac09e66a634146fc1c42a4978c167935216d0d636f6e74726f6c6c65722d31", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf20b8f114fe74c3b0361bf3e23eccd0faec44e6fca1307498ec40baacee27e0276ff73d36642bd6daada61b45f91c76909": "0x6eb242e526f76b25959e3d2210b0d1cd74adcae9dd8fa5075c59112614a449120e5375706572204163636f756e74", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2187e65b66687a8543c26bc2d3d90adbcf294460b41333d87ec6423f82247db5fc694d813b70ac22cecb4b4ae87bccd18": "0xc4b02d21e1153c24afa1d0310e30120df39b3f74fa6f255c7b9d55dfcf17ef1c032f30", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf21e7e823cdab34059f814fd4555c6ab818eda398d3b92e5ecea94605e3794b3f2022136197f10adfaa2a699dd2b4af435": "0x56730a7d8a360b0e02830dd9a21bef29bd0816f45d8b8fffafd4bb029ad4af3506456e627931", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf230c463d8772c974d68cc1da810c9eaa8760950dfdb9d02ea30a3aa1d809cedc5ebe7a63a2c0de85437a2a1f07922b412": "0xc4b02d21e1153c24afa1d0310e30120df39b3f74fa6f255c7b9d55dfcf17ef1c0230", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf230dc1d8d67195f17b83aded7c1d31867a0bcc553cb33f8b4676e6b6e812cafd86ea962dd99e5c765663a0a673e43704e": "0xec602008c477a948f8b3c76a21103910966be01a881b1498cf2bfcf0d2a45c360a76616c696461746f72", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf23e4203ad9d9a5c5a8a11fdd2899527adc23466000b257e5da9fc56f0a211510207c44436ffb167c5ad548f078157db1f": "0x8ccee1fa5ec7dac5292617904714c47846d6a403de4f8ca7df156ab4319b585d0b76616c696461746f7232", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf241af130650d486170962f4cf441108d196c34c8c60b3690701176bdbc9b16aced2898d754385a84ee0cfe7fb015db800": "0x221d409ba60508368d4448ccda40182aca2744bcdfa0881944c08108a9fd966d0bf09f98882044656d6f6e", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf24e87cccafffb2f988919b685ffa54ec1580fdc278abfe8b8649732b5a0c68199442bbc7f140d78d47eaf86cc25c46c6c": "0xe0b85f6af2757d71bc6edb8bbdc316926832bba312f26b4e25343048ab970840035032", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf250deeeeb4e4ba9c2c98b8b316bcc263e78edc7ea21e3183d9ceb60cf2174d00b96b41b44d2c21631822b608ba8b19905": "0xa84dfd606cfdd686109a62f412d354a53417dc0b76a98faf53d1542fa71d8e520232", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf25293d1f766a621eeb6fe0489ed4bfb2b9160d585f1e4b64a86d4fbac97a636b540392b0d75b48202ae9fb0792ff5835c": "0x02bf32e061073c44300056b416cd66a4fde1e6c120dbc0089bb65134f5693a3b106d7564646c656265652d70726f7879", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf253ca74d0bd1e564a332b395d9a851eb4da99163f61cff9a7062affdc87b652c48625c637a997dab88fa302b1c5a7463a": "0xb2479a4c5a314be896da932acd7d770361daf76a8c0795afcbb09137ce83d5450e73616473616473616464736164", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf25ffc431d610b1f14273260521b52652668c49a4f0080335885316e176bba31567dffe9c9b32d5781248efc5982b26948": "0xe0b85f6af2757d71bc6edb8bbdc316926832bba312f26b4e25343048ab970840024e", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf26686c8bff4e72421b76456b8136c1a61a8353ed11e25e10bd64deb7d6b8d455959ec8b675e5d66eec8da33603b141202": "0xe0b85f6af2757d71bc6edb8bbdc316926832bba312f26b4e25343048ab970840035031", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf26c19f8debe547f06e245437a9b26b39ba671656bc9e844a15653f6d3b8754424f32ce10abadd1207c0bd492af40eeeb7": "0xe0b85f6af2757d71bc6edb8bbdc316926832bba312f26b4e25343048ab9708401154524541535552592050524f58592041", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf27073e6700eab14c5eb0594dcc2d49e43f36bb24aa9d9bdd86b9ccc68740ccb755f47ea1f97f5d41f5c7fbb4dface1435": "0x4459b50f39faab6f554cb3681fe028358398dcc94b0c870243930108ab82b3321e506f6c6b61646f74204272616e6420426f756e74792043757261746f72", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2761f0c0566b49bce460a96414f708eee3c4a46a459c81a02401a9a5f4cc55a31c5a4ede8cd1f13d3990e56b84978936a": "0xc07df91514758b0283c8b8af78c6f015e26e089a265f02e7314252f129ce7127033031", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf27f666adc5effecc507c6b81eeff496c0b01bf49fa0db7ba2869aed475e132a82d6e96fa1961f739b0fc65e1bdbf1ad1c": "0x8ccee1fa5ec7dac5292617904714c47846d6a403de4f8ca7df156ab4319b585d0b76616c696461746f7231", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf291e3ea77123746340ab4f5b68e6275dfbc71b498e20108fc9e62b941c7559c36ba5159f68e0f16dda065e50651ca7e06": "0x7f0005a01ec46bed827ffccd59e7af4c23c0e636ddd76a127728213c8f3c7b9f1e506f6c6b61646f74204272616e6420426f756e74792043757261746f72", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf294d70e088c909c1c1f4f30aecffb5e8aba41a8250073e63bb75f3b358a7156a0713247bb91fe655a36e9c838fa664739": "0x4208a319985529f22358384a2a933a0e9300a9e64b74bc508813ba1a5092e1a81e506f6c6b61646f74204272616e6420426f756e74792043757261746f72", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf297ec1e2c0f8868e0d9455526174685a2a644c21d8a9fd96427a0d67ab273f5c70abd7da784bfdc020fc92e1ae5bf9e48": "0xb0b3ece3ed0e60604850ccf4814129898287cb46084dc3a3e7500a56a88ad34d1e506f6c6b61646f74204272616e6420426f756e74792043757261746f72", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf298c74b4ab747dc1c565509092764e2ed0a47e3b9403c0693e4773a93ba9ff11a81a815e3d9428de57d49f40dddaa7123": "0x8ccee1fa5ec7dac5292617904714c47846d6a403de4f8ca7df156ab4319b585d0b76616c696461746f7233", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2a2e9bef0949d23bb41684d83d24d504116a3c1eaf4e0632b3198144aa79f93df54f083be28d65748c957890a06cbf432": "0x5c79d9d52526f9f922c5d885b01b61b0269082c81bfb29f46daae49f9bc26c27033031", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2c2484852d433d2bf7e79029f48e7b8439c71265aea33241e78b67d2740d8f54d86016e13830e8bce23107d526b34cf7f": "0xa84dfd606cfdd686109a62f412d354a53417dc0b76a98faf53d1542fa71d8e520d56616c696461746f72203031", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2cd638b7e1551a8ba01cd22859618fb84fce204cab548aa824a2825c772e40b7460f123d9ca9f01f2bdf369750810820f": "0x3c2c5b4040ed8e2d6a98fe6efe77f8a3a4a16dc276985f53dbb38c09238294210574657374", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2dd82beed6ac1dcddd0fe9856efb4ec76b91a28e6099036742d1040191826bf2637c047d3f03e37057ca4d7749f53d489": "0xbed9c57c5719926bb9f7eca81cc212ea586716acd68f4188dac22df4794097981e506f6c6b61646f74204272616e6420426f756e74792043757261746f72", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2dfab5a81a93f474a0ddcf3c54b9caa5eb462f161bb297af53cdafd8c053111f904aa664805381b60a7c647fd2c29cc1b": "0x2ca5fedc8da5e9adea2a634719b0486eefd392418ebb90b236d26160961f2f720234", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2edb81f84b660b1da46ef291070e005f7362f53d7fdf79d8bd5b267c5cea0ad1ab3ac832226100747e4a582b4aa220110": "0xc4acbf59aa0ca73a3786bd526aeeb4b3204b8a3e50fdba0ef02a1bdfadea4070033031", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2f11c801c8ef6701a3797a36cd90d98bd2072990080c13d56429b689e8de37ef17d158f2c01266eb2ff6602b5c4139614": "0x5c79d9d52526f9f922c5d885b01b61b0269082c81bfb29f46daae49f9bc26c27033032", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2f42c20c78d103f9e5db9604b9fad100ae6a4b4579b5abd1bab83f556e1bf0bcd0b8bbbe53470100b3b3374e0aa711e13": "0x5c79d9d52526f9f922c5d885b01b61b0269082c81bfb29f46daae49f9bc26c27076261636b7570", + "0x2aeddc77fe58c98d50bd37f1b90840f943a953ac082e08b6527ce262dbd4abf2fbaba9a7a5543064c977a5c58618866a469a63204cd58401499d8ae3bc9ceb0cd143aebf5fc3b41d5fc49e4bb155620c": "0x98391d304fc97382190403dc6a5137a9b2c6fb67d67b01331afa970c8fada51404414d41", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e151fac3b8fbb77364459b50f39faab6f554cb3681fe028358398dcc94b0c870243930108ab82b332": "0x0000000000000000000000000000000004f36bb24aa9d9bdd86b9ccc68740ccb755f47ea1f97f5d41f5c7fbb4dface1435", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e1583c7461c232d7ac4acbf59aa0ca73a3786bd526aeeb4b3204b8a3e50fdba0ef02a1bdfadea4070": "0x0000000000000000000000000000000004362f53d7fdf79d8bd5b267c5cea0ad1ab3ac832226100747e4a582b4aa220110", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e24b6b6893fb3743e221d409ba60508368d4448ccda40182aca2744bcdfa0881944c08108a9fd966d": "0x000000000000000000000000000000000496c34c8c60b3690701176bdbc9b16aced2898d754385a84ee0cfe7fb015db800", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e2623ca21b81995f32ca5fedc8da5e9adea2a634719b0486eefd392418ebb90b236d26160961f2f72": "0x0000000000000000000000000000000004b462f161bb297af53cdafd8c053111f904aa664805381b60a7c647fd2c29cc1b", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e3d4896e45d6f2865bed9c57c5719926bb9f7eca81cc212ea586716acd68f4188dac22df479409798": "0x0000000000000000000000000000000004b91a28e6099036742d1040191826bf2637c047d3f03e37057ca4d7749f53d489", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e496fd3c0ebe3acf5b2479a4c5a314be896da932acd7d770361daf76a8c0795afcbb09137ce83d545": "0x0000000000000000000000000000000004da99163f61cff9a7062affdc87b652c48625c637a997dab88fa302b1c5a7463a", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e4e939d4bfb9fc7d656730a7d8a360b0e02830dd9a21bef29bd0816f45d8b8fffafd4bb029ad4af35": "0x00000000000000000000000000000000048eda398d3b92e5ecea94605e3794b3f2022136197f10adfaa2a699dd2b4af435", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e5faca8a6580da647a84dfd606cfdd686109a62f412d354a53417dc0b76a98faf53d1542fa71d8e52": "0x000000000000000000000000000000000878edc7ea21e3183d9ceb60cf2174d00b96b41b44d2c21631822b608ba8b199059c71265aea33241e78b67d2740d8f54d86016e13830e8bce23107d526b34cf7f", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e63ece89a61e49ed95c79d9d52526f9f922c5d885b01b61b0269082c81bfb29f46daae49f9bc26c27": "0x000000000000000000000000000000000c16a3c1eaf4e0632b3198144aa79f93df54f083be28d65748c957890a06cbf4322072990080c13d56429b689e8de37ef17d158f2c01266eb2ff6602b5c4139614e6a4b4579b5abd1bab83f556e1bf0bcd0b8bbbe53470100b3b3374e0aa711e13", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e7bbbb11172fc426abedeb75f75809a9d5ca347ab1449ac09e66a634146fc1c42a4978c167935216d": "0x0000000000000000000000000000000004f24e30971039a4f3efeac990c8d2d6c69f98876ddc60ec024608480ffaed245b", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e84ce5c3d388f279ab0b3ece3ed0e60604850ccf4814129898287cb46084dc3a3e7500a56a88ad34d": "0x0000000000000000000000000000000004a644c21d8a9fd96427a0d67ab273f5c70abd7da784bfdc020fc92e1ae5bf9e48", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e93e9a6b835d366604208a319985529f22358384a2a933a0e9300a9e64b74bc508813ba1a5092e1a8": "0x0000000000000000000000000000000004ba41a8250073e63bb75f3b358a7156a0713247bb91fe655a36e9c838fa664739", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37e99d68355f4d476713c2c5b4040ed8e2d6a98fe6efe77f8a3a4a16dc276985f53dbb38c0923829421": "0x0000000000000000000000000000000004fce204cab548aa824a2825c772e40b7460f123d9ca9f01f2bdf369750810820f", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37ea0b881b0063a363a02bf32e061073c44300056b416cd66a4fde1e6c120dbc0089bb65134f5693a3b": "0x00000000000000000000000000000000049160d585f1e4b64a86d4fbac97a636b540392b0d75b48202ae9fb0792ff5835c", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37eabfb0790f33eebeb6eb242e526f76b25959e3d2210b0d1cd74adcae9dd8fa5075c59112614a44912": "0x0000000000000000000000000000000004c44e6fca1307498ec40baacee27e0276ff73d36642bd6daada61b45f91c76909", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37eb48e86b477e312727f0005a01ec46bed827ffccd59e7af4c23c0e636ddd76a127728213c8f3c7b9f": "0x0000000000000000000000000000000004bc71b498e20108fc9e62b941c7559c36ba5159f68e0f16dda065e50651ca7e06", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37ec1d48927defc105fec602008c477a948f8b3c76a21103910966be01a881b1498cf2bfcf0d2a45c36": "0x0000000000000000000000000000000004a0bcc553cb33f8b4676e6b6e812cafd86ea962dd99e5c765663a0a673e43704e", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37ec5dbdfccef1b5b028ccee1fa5ec7dac5292617904714c47846d6a403de4f8ca7df156ab4319b585d": "0x000000000000000000000000000000000cb01bf49fa0db7ba2869aed475e132a82d6e96fa1961f739b0fc65e1bdbf1ad1cc23466000b257e5da9fc56f0a211510207c44436ffb167c5ad548f078157db1f0a47e3b9403c0693e4773a93ba9ff11a81a815e3d9428de57d49f40dddaa7123", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37ecdd82614af0293e2c07df91514758b0283c8b8af78c6f015e26e089a265f02e7314252f129ce7127": "0x00000000000000000000000000000000043c4a46a459c81a02401a9a5f4cc55a31c5a4ede8cd1f13d3990e56b84978936a", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37ee942fea93b72bab198391d304fc97382190403dc6a5137a9b2c6fb67d67b01331afa970c8fada514": "0x0000000000000000000000000000000004469a63204cd58401499d8ae3bc9ceb0cd143aebf5fc3b41d5fc49e4bb155620c", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37ef1791bcba0e691f1c4b02d21e1153c24afa1d0310e30120df39b3f74fa6f255c7b9d55dfcf17ef1c": "0x0000000000000000000000000000000008760950dfdb9d02ea30a3aa1d809cedc5ebe7a63a2c0de85437a2a1f07922b412f294460b41333d87ec6423f82247db5fc694d813b70ac22cecb4b4ae87bccd18", + "0x2aeddc77fe58c98d50bd37f1b90840f96ee5a0b09e7e9a96219dd66f0f74c37eff3568b3e9283f5ee0b85f6af2757d71bc6edb8bbdc316926832bba312f26b4e25343048ab970840": "0x0000000000000000000000000000000010a8353ed11e25e10bd64deb7d6b8d455959ec8b675e5d66eec8da33603b141202580fdc278abfe8b8649732b5a0c68199442bbc7f140d78d47eaf86cc25c46c6c68c49a4f0080335885316e176bba31567dffe9c9b32d5781248efc5982b26948a671656bc9e844a15653f6d3b8754424f32ce10abadd1207c0bd492af40eeeb7", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471403adc196911e491e08264834504a64ace1373f0c8ed5d57381ddf54a2f67a318fa42b1352681606d": "0x00000000000000000000000000000000001c5061726974792057657374656e642076616c696461746f7220313100000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471403e65d4ca28086078c2625b0e10c7bf65f283c576878cf00f67478d3dbb6bf39ee62b3ca19ce893d": "0x0000000000000000000000000000000000117061756c6f5f5f7a61676f20f0938582002068747470733a2f2f796f75747562652e636f6d2f5061756c6f5a61676f595417407061756c6f5f7a61676f3a6d61747269782e6f72671c7061756c6f6372657374616e697a61676f40676d61696c2e636f6d00000d407061756c6f5f5f7a61676f000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047140615401d5f67a879103b29e095959019702ffa05c0901c40baede6973f70e35193989c3472cc3c13": "0x0000000000000000000000000000000000055961736800000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047140a2672fe736d19284a2d91e49e215e207dc6f70d8b1dbcbb1caf9168b5209149ddea4c35ba1f345b": "0x00000000000000000000000000000000000f44656c6567614e6574776f726b730f44656c6567614e6574776f726b731268747470733a2f2f64656c6567612e696f001664656c6567614070726f746f6e6d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047140b1f48e194c65da836a8d9cd83adc53fe0cb6cd66dba40838269dcba9c1e0833b67dcb6477ae5d29": "0x040000000003000000000000000000000000000000000ef09f8dba2047617620f09fa5830b476176696e20576f6f640c676176776f6f642e636f6d1c406761766f66796f726b3a6d61747269782e7061726974792e696f10676176696e407061726974792e696f00000a6761766f66796f726b000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047140e6a72b565a94a850c8220c20b57d955cd84344bcb97955704f70c88c037a2811b92ba8b81ceed18": "0x000000000000000000000000000000000013524f424f4e4f4d4943532e4e4554574f524b13726f626f6e6f6d6963732e6e6574776f726b1c68747470733a2f2f726f626f6e6f6d6963732e6e6574776f726b2f18407370643a726f626f6e6f6d6963732e6e6574776f726b1961646d696e40726f626f6e6f6d6963732e6e6574776f726b00001140616972615f726f626f6e6f6d696373000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714126724bd6c3cc3510a438a90bf20752d0ba6f5abe0ba6060f1d9f1a67adc03a3968ac858e8bb8023": "0x00000000000000000000000000000000000b7776616c696461746f72125756616c696461746f72f09fa48ce29c851268747470733a2f2f6d797765622e636f6d13406d7972696f743a6d61747269782e6f72670d6d7940656d61696c2e636f6d00000b404d7954776974746572000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714151fac3b8fbb77364459b50f39faab6f554cb3681fe028358398dcc94b0c870243930108ab82b332": "0x00000000000000000000000000000000001e506f6c6b61646f74204272616e6420426f756e74792043757261746f7200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047141583c7461c232d7ac4acbf59aa0ca73a3786bd526aeeb4b3204b8a3e50fdba0ef02a1bdfadea4070": "0x000000000000000000000000000000000005456e627900000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471416d5103a6adeae4fc21ad1e5198cc0dc3b0f9f43a50f292678f63235ea321e59385d7ee45a720836": "0x00000000000000000000000000000000001b5061726974792057657374656e642076616c696461746f72203600000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047141b02c85564ad1a8555d5d24534eb8d4b68c7f6e4fd129834285dbd326dcaeaca5018667772ff72eb": "0x00000000000000000000000000000000000d546573206d756c74697369670000001663686576646f722b776e6440676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047141f8d2882be771a968da8e57224b21bbcdeeeb5a49319f8d9705c2b937c858a725ac6da01f98ff4dc": "0x000000000000000000000000000000000004414e4f00000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471424b6b6893fb3743e221d409ba60508368d4448ccda40182aca2744bcdfa0881944c08108a9fd966d": "0x00000000000000000000000000000000000c53616c65206d617374657200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047142623ca21b81995f32ca5fedc8da5e9adea2a634719b0486eefd392418ebb90b236d26160961f2f72": "0x00000000000000000000000000000000000a48617368517561726b0a48617368517561726b000015636f6e746163744068617368717561726b2e696f000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714280ff05065ef56c920857356346d9d91caf02ad14950ab0db995d41d237c3be71dd785bd1cc03609": "0x0000000000000000000000000000000000087465737431323300000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047142a47718370fccca6c6332dd72fc6d33bf202a531e66cfaf46e6161640f91864f23f82b31b38c5f11": "0x00000000000000000000000000000000001b5061726974792057657374656e642076616c696461746f72203200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047142d04b89675880bace28fbaee0b6495ca0dd577a424cf324c56d1f4a228f41d8a7d22b5cb0ad8e95e": "0x0000000000000000000000000000000000075365636f6e6400000e40777468616e6f743a726f6f6d086140622e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047142dbf07a05f640743a22168166bc6c5617ee3699125591513f54576d82b9ac8f9a8892751d4f9c565": "0x000000000000000000000000000000000014636c617564696f676972616f6261727265746f17436c617564696f20476972c3a36f204261727265746f000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714301121c1a8d96ccab65991822483a6c3bd24b1dcf6afd3e270525da1f9c8c22a4373d1e1079e236a": "0x0000000000000000000000000000000000157061726974792d7374616b696e672d6d696e657200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471431747b68fd9a8689a0e1a33870981aa76012429e64409e7445f64ba6b3bf75a2e0c97ed51179a64f": "0x04000000000200000000000000000000000000000000084e594d45545641000014406e796d657476613a6d61747269782e6f726700000009406e796d65747661000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471433fd6cfb1723695048f3bac8919fb80326d47d028fc177b8199f76bbf254d9b73696dc85e4f4e177": "0x00000000000000000000000000000000000d4c756e617220417669617279001268747470733a2f2f6269726463752e6c74000000000d404c756e6172417669617279000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143514b2f81426145d008ccbf8565fb5d4ff4b6b3142640fc9ead4d2ee7291b6539cf50543b45bdc66": "0x00000000000000000000000000000000000d73746172745374616b696e6700000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143635b95e2a31e59704b42c45250880695e6cec68c5adce35a0e2ec60ed46b77b734ad6020b991658": "0x00000000000000000000000000000000001b6b61676f6d652d77657374656e642d76616c696461746f722d31001168747470733a2f2f716472766d2e696f14406b616d696c73613a6d61747269782e6f72670b6b40716472766d2e696f00000c406b616d696c5f61626979000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471436e6baf6bf39390af0dd6353da84f33c45f501cc4876eddd6768031064b05c8421167010abfc3b21": "0x000000000000000000000000000000000013746573745f6372656174696f6e5f706f6f6c002168747470733a2f2f737570706f72742e706f6c6b61646f742e6e6574776f726b0000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143bb2d34a52c604e6ecd473184b7f5028ba310ae0752ea08b7ceaca214d81dc9e952e23fedb95677b": "0x04000000000300000000000000000000000000000000185265676973747261722023302062792043686576646f720d52656769737472617220233000144063686576646f723a6d61747269782e6f72671e63686576646f722b7265675f77657374656e6440676d61696c2e636f6d0000094063686576646f72000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143d4896e45d6f2865bed9c57c5719926bb9f7eca81cc212ea586716acd68f4188dac22df479409798": "0x00000000000000000000000000000000001e506f6c6b61646f74204272616e6420426f756e74792043757261746f7200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143da2d45d953c8319785a6702020a9d976136860c58d1d1ca7ebc218de25a81f9f7f9a84844cb4f67": "0x00000000000000000000000000000000001b494e46524153545255435455524520434f52504f524154494f4e001f687474703a2f2f696e6672617374727563747572652d636f72702e636f6d14407961796f692d763a6d61747269782e6f726720737570706f727440696e6672617374727563747572652d636f72702e636f6d00000c40494e4652415f434f5250000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143ddc78443e98e3b2fe0bb66de0655eba023fd7ad99e99458a1b189154590d2c48d7b0d047c464b70": "0x00000000000000000000000000000000000a416d6972206b68616e00000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143ecb31e90f8870f218164fa6f9ce28792fb781185e8de4e6eaae34c0f545e5864952fe23c183df0c": "0x00000000000000000000000000000000001c5061726974792057657374656e642056616c696461746f7220313500000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047143eeeca9f73e5dbe0c03b53ee8578764e4978167a7e2a4aa95eb867b2400f7d54a5e142880a1b3650": "0x0000000000000000000000000000000000025800000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144245138345ca3fd8aebb0211dbb07b4d335a657257b8ac5e53794c901e4f616d4a254f2490c43934": "0x00000000000000000000000000000000001b5061726974792057657374656e642056616c696461746f72203900000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144460be899b41e7b904e71172850e3a81934ea878027be5e8489809fac6dc240d796605bcb052a225": "0x00000000000000000000000000000000000e43525950544f534845494e495800000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471445d0219e30278bfda46c3841d26e49b28c267abb4731374da546a09fadc68293d1f64a70fe0c1d46": "0x040000000002000000000000000000000000000000000a64616e666f726265730b44616e20466f726265731d68747470733a2f2f6769746875622e636f6d2f64616e666f726265731c4064616e666f726265733a6d61747269782e7061726974792e696f1264616e4064616e666f726265732e64657600000e4064616e666f72626573646576000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714496fd3c0ebe3acf5b2479a4c5a314be896da932acd7d770361daf76a8c0795afcbb09137ce83d545": "0x040000000001005039278c04000000000000000000000000000000000000000000000000000012414d49522e454b424154414e4946415244001b616d6972656b626174616e69666172642e6570697a792e636f6d1740616d69726b68616e65663a6d61747269782e6f726714616d6972656630303740676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144b24b7848917b87b00afc486ba44db593aca06f8949d10ca104c594fe47675a106b23a9148119717": "0x00000000000000000000000000000000000d574e442d522d313030302d580a4f5243554e2ec4b04f1168747470733a2f2f6f7263756e2e696f00126f7263756e696f407961686f6f2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144b3f0cabbeca763d0e1dc250d6ae40439eea676bb4b0023a6aa99f902e174d70d31fb06b0899d60c": "0x04000000000100488d2ce40000000000000000000000000000000000000000000000000000000d4e6577596f726b54696d657300000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144b8c1fa82cb6ba3b7252d008c11b0eced201044e5c3f0b46d154ea504f10e68410e99f8db2d8ef12": "0x000000000000000000000000000000000009535554494d4d554b00001540737574696d6d756b3a6d61747269782e6f726718737574696d6d756b4070726f746f6e6d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144bc1a1e9b59e25424e3eb46b76d5b44f4b59e04d65ab8409686495bb4aa332014f980cf779070608": "0x00000000000000000000000000000000000545444d530945726963204461751568747470733a2f2f7777772e65642d6d732e6672001e65646d616368696e65737370656369616c657340676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144e939d4bfb9fc7d656730a7d8a360b0e02830dd9a21bef29bd0816f45d8b8fffafd4bb029ad4af35": "0x000000000000000000000000000000000013456e62792d546573742d4f6e2d436861696e00000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047144f0f0dc89f14ad14767f36484b1e2acf5c265c7a64bfb46e95259c66a8189bbcd216195def436852": "0x00000000000000000000000000000000001b5061726974792057657374656e642076616c696461746f72203500000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714532c603791dddaa296dbcf1f758fc42826d60bac2c404ae85f1fed6063248a2bba867762e3aa1028": "0x00000000000000000000000000000000000844657620706f6c124e677579656e205068756f63205468616f1968747470733a2f2f7777772e796f75747562652e636f6d2f114074686f723a6d61747269783a6f72670e64657640676d61696c2e636f6d0000064074686f72000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471453a17b2a2aedf266c2f78bb483e7cc4fc6edb30ff7792b5dab3e3dbb3178b37e400baea54d549548": "0x00000000000000000000000000000000000b494e54454752495445450e496e74656772697465652041471b68747470733a2f2f696e74656772697465652e6e6574776f726b001968656c6c6f40696e74656772697465652e6e6574776f726b00000f40696e74656772695f745f655f65000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047145b91dd90df1593a7807c8c23cf1b052e19e26e59942b16188c1cd920abafbc1170df57756b33d04e": "0x00000000000000000000000000000000001546542057657374656e642056616c696461746f7200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047145c69b53821debaa39ae581fef1fc06828723715731adcf810e42ce4dadad629b1b7fa5c3c144a81d": "0x00000000000000000000000000000000001b5061726974792057657374656e642056616c696461746f72203800000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047145f303e9fdcd878ed661127faa225949b1c1a48f834f43fa626c9f58fa0c7e522551d4b9616e18c37": "0x00000000000000000000000000000000001c5061726974792057657374656e642056616c696461746f7220313200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047145faca8a6580da647a84dfd606cfdd686109a62f412d354a53417dc0b76a98faf53d1542fa71d8e52": "0x040000000002000000000000000000000000000000000f506f6c79636861696e204c616273001e68747470733a2f2f7777772e706f6c79636861696e6c6162732e636f6d001664657640706f6c79636861696e6c6162732e636f6d00000f40706f6c79636861696e6c616273000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047146318d50a26d00c113e33e5b0cb049ab36ed75f1ab83baf81a2fc5d5bb6d2f6c3283642a49b155d13": "0x00000000000000000000000000000000000d627374672d77657374656e6400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471463ece89a61e49ed95c79d9d52526f9f922c5d885b01b61b0269082c81bfb29f46daae49f9bc26c27": "0x000000000000000000000000000000000014564f2057657374456e64204964656e7469747900000015736f6d65626f6479406578616d706c652e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471463f539c3262ff11b8009eef982029af9cab660583cd2f7f6da25d8f6f5cb7d98f6b62c5832c33448": "0x0000000000000000000000000000000000054a6f686e00000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471464f0ecb773bc06d3e0f3aa5048258ad9e7892124c224dc631f138be45f27cfc7606b000b8baa9907": "0x00000000000000000000000000000000000544696e650544696e6500154064696e6e653231333a6d61747269782e6f726700000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047146dee1dfdacc49424b00c82b2bc49993a087496c10cfe20549fe663c629d9fd515e7ec070abc6f452": "0x00000000000000000000000000000000000454535400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471472abf3c45e0e11d1c88e6de46f9563207dea82a642e9df9fe5eb76925c8dc96550b706c4c3998d1f": "0x00000000000000000000000000000000000f416c69636520f09f91a7f09f8fbc000a616c6963652e78797a05616c696319616c6963654074727573746564467269656e64732e636f6d00000740616c696365000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471474e91f24b625d4c85eb083f19535ddfc1936497ce8db7b4dfb4af273000c4e2b9148077da9260547": "0x040000000001005039278c04000000000000000000000000000000000000000000000000000009416d69722e452e46001b616d6972656b626174616e69666172642e6570697a792e636f6d0014616d6972656630303740676d61696c2e636f6d000005616d6972000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047147508abddac51b099c68f7f2ba81bd9b2922a184acea664224ca9cfd98d818bdf5048801701295608": "0x04000000000200000000000000000000000000000000056572696e00001e406572696e5f776f67676f6e3a6d61747269782e7061726974792e696f00000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471477a9553a204fc1a03206714184f4a56362be26d2cf6bb2ff0415953d9225c1fbd83acc77fa1cbc46": "0x0000000000000000000000000000000000086d75686172656d114d75686172656d2049736d61696c6f761b68747470733a2f2f6769746875622e636f6d2f6d75686172656d13406d75686172656d3a7061726974792e696f126d75686172656d407061726974792e696f00000c406d75686172656d5f6973000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047147ba03701bc9f2896a0ce091599c92564ad7fb09cac769257c3e95dcd572e5ee172870651b322da6f": "0x0000000000000000000000000000000000095061746f6e6e383900000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047147bbbb11172fc426abedeb75f75809a9d5ca347ab1449ac09e66a634146fc1c42a4978c167935216d": "0x00000000000000000000000000000000000a536f72616d69747375001968747470733a2f2f736f72616d697473752e636f2e6a702f0000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047147d4356618bc994a15a8eab7f473b704d6a37811f6ad979be7fafdf139f8a5a589585a9f22df63813": "0x000000000000000000000000000000000008776573746574730f544553544554537b7b312a357d7d17687474703a2f2f6a617661736372697074282e292f2f15406a6176617363726970743a227b7b312a357d7d1f7440632e636f3f63633d73406c2e636f6d267375626a6563743d7465737400001c406a6176617363726970743a616c6572742830297b7b312a357d7d000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047148186dc320915b65f38c991f782047dc9bb4ebbe94a8b54cad78fbc45163c023467ab20537fa8764e": "0x0000000000000000000000000000000000104d6172612028636f6465726f6265290000000000000a40636f6465726f6265000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471484ce5c3d388f279ab0b3ece3ed0e60604850ccf4814129898287cb46084dc3a3e7500a56a88ad34d": "0x00000000000000000000000000000000001e506f6c6b61646f74204272616e6420426f756e74792043757261746f7200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047148c6b3416d23997c11c4968c9b826c3f4dbdd34cf5f1816cb3d7a2a0b0541771ce3313a8a76720238": "0x00000000000000000000000000000000000b47616c612046696c696e001768747470733a2f2f6e6174726962752e6f72672f656e0000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047148d35126f566cba17ea5006ccf61cc5e0bd82fed21ab7b18537a5193df4a823ae592772318db73b35": "0x04000000000200000000000000000000000000000000034452000000146461766964407661636f766964656f2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047148ebb2f8180b9ec8408270e4436898c595fe5f85a2fe671ba028b35be25c83fd58758ef5642051113": "0x00000000000000000000000000000000001b5061726974792057657374656e642076616c696461746f72203400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047148ed745f7d7a7892e64b8b97d790834e20857f0f517198465d2024838e002e48cda42de6650443a7b": "0x00000000000000000000000000000000000a4f63746f43657274730e4f63746f636861696e20496e63000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047148f39a242feb4ed89e0c06e32447d97639572f947aa3b2d51b3fed3285fe37e913aebf554e55b5549": "0x00000000000000000000000000000000000b434f4e54524f4c4c4552001468747470733a2f2f65746862616e642e636f6d0000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047148ffd787fc893ba7c88356b8011860da46fd62af7f556774e34353794376d3e4538696982bee9ea70": "0x00000000000000000000000000000000000a656e636f696e74657200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471493e9a6b835d366604208a319985529f22358384a2a933a0e9300a9e64b74bc508813ba1a5092e1a8": "0x00000000000000000000000000000000001e506f6c6b61646f74204272616e6420426f756e74792043757261746f7200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714942774d4213e98fb20fcf533fe2aa70c25a70f50bdcf4d315fdc261c2626dd224c1fbdd718859721": "0x0000000000000000000000000000000000175069657272652028506172697479204465766f707329157069657272652d7061726974792d6465766f7073000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab870471499d68355f4d476713c2c5b4040ed8e2d6a98fe6efe77f8a3a4a16dc276985f53dbb38c0923829421": "0x040000000001005039278c0400000000000000000000000000000000000000000000000000000a506f6c6b61676174650a506f6c6b61476174651668747470733a2f2f706f6c6b61676174652e78797a1640706f6c6b61676174653a6d61747269782e6f726716706f6c6b6167617465406f75746c6f6f6b2e636f6d00000b40706f6c6b6167617465000a706f6c6b616761746500", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047149acfc1d7ba6a5099635719795390894809c72b7b6add0a3208a6a58f4cbc976b56b7609fea8210d5": "0x00000000000000000000000000000000000b507572652050726f787900000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047149afb96de5bd6c558f6b21d624832094b03aa672e016462a020e217cc67b1434785b99114a2b4fa5a": "0x04000000000200000000000000000000000000000000054a61636f1644616e69656c204a61636f627573204772656566661a68747470733a2f2f6769746875622e636f6d2f6a61636f677219406a61636f67723a6d61747269782e7061726974792e696f0f6a61636f407061726974792e696f000008406a61636f6772000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047149d2cd526e185ce7c0c6af745ed553c17661b382b8ed3e3208fb0a5577cc8c95fed80d6306bea7217": "0x00000000000000000000000000000000001568616d696420737461736820326e64207465737400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab87047149ff7f028a9f0b7e1b87298f1f74a0dcd2f287d40d26b6ab7fc931c367df44ae3abb0cf646d3ea05b": "0x0000000000000000000000000000000000106f6b416c6963652057657374656e6400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714a0b881b0063a363a02bf32e061073c44300056b416cd66a4fde1e6c120dbc0089bb65134f5693a3b": "0x0000000000000000000000000000000000086d7564646c657300000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714a55b8b65eb6f12d8aad62ce034d6e753415007acda745f28622fdd8f69baf8614167498d40847568": "0x0400000000020000000000000000000000000000000014526567697374726172205465737472617420311b5465737420666f7220726567202330206f6e2077657374656e6417687474703a2f2f7777772e63686576646f722e636f6d144063686576646f723a6d61747269782e6f72671f63686576646f722b77657374656e645f7465737440676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714a83c0ae16f97e358f859d1d368b37d157a67131f3f7c7640da743a22d53b6a923866e92a8ed18921": "0x00000000000000000000000000000000000f746573746964656e74697479747900000015746573746964656e7469747974794074792e7479000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714a9a7dfedfb4bb5aab8201ecd19908f555834d77d50296d88fe9df14485cde4899c9e0382a2a1914f": "0x00000000000000000000000000000000000850454e44414c460847524159313233000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714abece8628303a8c2a28d87e5fc8c0e61727957121a8f449bc72618bafb124df12822a1aff23423ac": "0x000000000000000000000000000000000010464f524b4c4553535f4e4154494f4e00000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714abfb0790f33eebeb6eb242e526f76b25959e3d2210b0d1cd74adcae9dd8fa5075c59112614a44912": "0x040000000002000000000000000000000000000000000d4d696b65546569786569726100001b406d696b65746569786569726138383a6d61747269782e6f7267196d7465697865697261383830313340676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714ac65c790f331105a58cf2a32951e3244b0928a6bcb4e32020283b3e0e1f4545ce336160e6837d7d2": "0x000000000000000000000000000000000019506f6c6b614d61736b206163636f756e74203120f09f9a8000000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714b15a287f3185340428206ed9245a88889037c43aa84eee43c465237177a0f6005f4dd0813a8afc29": "0x00000000000000000000000000000000000845746842616e6400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714b1c960df538f7c1eeeea14ba942c445b1924e141a19ce84b07a1a4b29a325b119252b96e42e52204": "0x000000000000000000000000000000000013416368696d202d20436f6e74726f6c6c657200000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714b1cb17645a292a6836d6be834cd4a0638a346adb184c71c8186965540563713d5d2c97956e20b255": "0x00000000000000000000000000000000001b5061726974792057657374656e642056616c696461746f72313400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714b48e86b477e312727f0005a01ec46bed827ffccd59e7af4c23c0e636ddd76a127728213c8f3c7b9f": "0x00000000000000000000000000000000001043757261746f72207465737420696400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714b55341a1192bad2026a948d457ef9d9d74a424a7ebd768d3390e2aed26fad8ff6b1f9296c096411d": "0x040000000001005039278c0400000000000000000000000000000000000000000000000000000843686576646f720000001763686576646f722b776e643240676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714c1d48927defc105fec602008c477a948f8b3c76a21103910966be01a881b1498cf2bfcf0d2a45c36": "0x00000000000000000000000000000000000d6b7573616d6178692e636f6d0a4b7573616d612058491568747470733a2f2f6b7573616d6178692e636f6d15406b7573616d6178693a6d61747269782e6f726715737570706f7274406b7573616d6178692e636f6d00000a406b7573616d617869000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714c3448661d7062a0c7a83d0f880499e120d25104e5469452b9c61764e5c73275817da827e08ee8c7f": "0x0400000000010030ef7dba02000000000000000000000000000000000000000000000000000005574e44310000001663686576646f722b776e6440676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714c5dad8e8b3b4327c8cc1b91e8946862c2c79915a4bc004926510fcf71c422fde977c0b0e9d9be40e": "0x00000000000000000000000000000000000876696b6976616c0956696b692056616c1c68747470733a2f2f6769746875622e636f6d2f76696b696976616c144076696b6976616c3a6d61747269782e6f72671576696b696976616c406b6f6461646f742e78797a00000a4076696b696976616c000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714c5dbdfccef1b5b028ccee1fa5ec7dac5292617904714c47846d6a403de4f8ca7df156ab4319b585d": "0x00000000000000000000000000000000000e6c696e6d73206361706974616c066c696e6d7316687474703a2f2f7777772e61636b746563682e6363174061636b746563682e63633a6d61747269782e6f72671677616e676269676e616d6540676d61696c2e636f6d00000c4061636b746563685f6363000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714cdd82614af0293e2c07df91514758b0283c8b8af78c6f015e26e089a265f02e7314252f129ce7127": "0x00000000000000000000000000000000000d4b696c6e2d746573746e6574054b696c6e1068747470733a2f2f6b696c6e2e66690010636f6e74616374406b696c6e2e666900000e404b696c6e5f66696e616e6365000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714ce6a96a3775ab416f268995cc38974ce0686df1364875f26f2c32b246ddc18835512c3f9969f5836": "0x00000000000000000000000000000000001c5061726974792057657374656e642056616c696461746f7220313000000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714cf48516c0c7933d3a8ceab88b82d857d3e64a8d67db0d3e476054a42572522ae359b962b2818305f": "0x00000000000000000000000000000000001b5061726974792057657374656e642076616c696461746f72203100000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714cf68a696f5e3e5bc428f44f5ec19a8b2e1d7f7e5436e156a1846c5f941a1ac64e69644026d92370c": "0x00000000000000000000000000000000000a456c6f6e204d75736b0a456c6f6e204d75736b1368747470733a2f2f7465736c612ed1816f6d0010656c6f6e407465736c612ed1816f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714d2fc312385291aa3886d225c2e5ea37cf074eedbeb62d7e1e737e36e8e0b74d6e302cac82269ab49": "0x000000000000000000000000000000000018434f4e54524f4c4c45522d444f4d492d4143434f554e5400000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714d33f981365b74ba8e2dd2049909ce840caa501b9703b9d67d5846337efd96ecc779642daef6ed96d": "0x00000000000000000000000000000000001e436861696e736166652057657374656e642056616c696461746f72203012436861696e536166652053797374656d731668747470733a2f2f636861696e736166652e696f2f000000000d40436861696e536166657468001e68747470733a2f2f646973636f72642e67672f78534177726e4357636700", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714d52cb7e0ea9debb300477d547115aca2d56792295e3366b37371876a489ee0b15e414d0931a0da20": "0x00000000000000000000000000000000001b5061726974792057657374656e642076616c696461746f72203000000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714d7e59067f802974622c89cebaabfb29998d11712a0b4fe1f681f30ef0aab0f1d39af17340a713c72": "0x000000000000000000000000000000000009417472656964657300000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714dfa899943e583c528c5a3003181155566fda64162db5c8a94b54ddd0f1210bbe340f16bdbb7f524b": "0x00000000000000000000000000000000001b5061726974792057657374656e642076616c696461746f72203300000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714e274481c2245e11f226791373ca0426a7864eebab3e9bdf8852aee5c6d0108fb2d41a6e871da0211": "0x00000000000000000000000000000000000d4465726f7269207374617368074445524f5249000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714e2b45b1aab018b6996b33e0a9647f13198ad16a2812c549a363646a3a7ddbdcc5590f5839c408c62": "0x00000000000000000000000000000000001b5061726974792077657374656e642076616c696461746f72203700000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714e6c0a23862435954f6809d851bfb9bcd11d458ca8dba80b1527fbd47694e3a16e4e3a9a17d4ef267": "0x00000000000000000000000000000000001a4275656e6176656e747572612050696e6f204d6f736c65726f1a4275656e6176656e747572612050696e6f204d6f736c65726f000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714e942fea93b72bab198391d304fc97382190403dc6a5137a9b2c6fb67d67b01331afa970c8fada514": "0x0000000000000000000000000000000000134d696368616c69732043726f776463617374000000196d696368616c697340776562332e666f756e646174696f6e000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714f1791bcba0e691f1c4b02d21e1153c24afa1d0310e30120df39b3f74fa6f255c7b9d55dfcf17ef1c": "0x0000000000000000000000000000000000086274776975736500000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714f3c29ba2021a91f1568f4b844412e983472f1a1a68e982aa78a29558765f79541175fa488893b117": "0x00000000000000000000000000000000001c5061726974792057657374656e642056616c696461746f7220313300000000000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714f48748132b60e423c0e8cef7ee8034a4429f7530057302daf2eefe8cf3f560cbf5506fab34bed342": "0x00000000000000000000000000000000000d436872697374696e612053701e436872697374696e6120537465696e627265636865722d5066616e6474000019636872697374696e6140626c6f636b636861696e2e617274000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714f567a24c0fb46cb1d619041b935c9697d37259e408b1de0e3f5fd9663f49e1b4654bbae1e0fe6962": "0x00000000000000000000000000000000000f4c656f6e6964204b6167616e6f76001068747470733a2f2f6c6c656f2e6d65000d6c6c656f406c6c656f2e6d65000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714f650acb4a81d60cb2a96d7b89d235c7f75608d978739761062ffd98529232f29e5d5056f211f453c": "0x00000000000000000000000000000000000664726970350000001f7440632e636f3f63633d73406c2e636f6d267375626a6563743d74657374000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714faa55b79d5b983962aad2d511e0a2ade151b1e3442675156b71aea1f049ce004311cf33c9d70c474": "0x00000000000000000000000000000000001153656261737469616e2043727970746f001e68747470733a2f2f742e6d652f506f6c6b61646f744e6f7469636961731c4073656261737469616e63726970746f3a6d61747269782e6f72671b73656261737469616e63727970746f3840676d61696c2e636f6d0000114053656261737469616e43726970746f000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714fc8403ec26b4feefecf36e565cd1a42755c3231ffcc2b6187ef82899ac2b7f35d96804da24129f60": "0x00000000000000000000000000000000000f4b757a7572692057657374656e64000000116173616e736940676d61696c2e636f6d000000000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714fd5e811f9d22dd41943e99feea77d4d5de619ceb1493d232ca026fe0d2af6ca6ed304afd7738ae2d": "0x0000000000000000000000000000000000086772756d6c696e000014406772756d6c696e3a6d61747269782e6f72671b706f6c6b61646f742e6772756d6c696e40676d61696c2e636f6d000009406772756d31696e000000", + "0x2aeddc77fe58c98d50bd37f1b90840f9cd7f37317cd20b61e9bd46fab8704714ff3568b3e9283f5ee0b85f6af2757d71bc6edb8bbdc316926832bba312f26b4e25343048ab970840": "0x000000000000000000000000000000000003544600000000000000000000" }, "childrenDefault": {} } diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs index 9d75f8854f57dab3a0f8a0a03df77586a7df0564..e95d364679c40667a7df782e37305785fa5b2928 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs @@ -115,7 +115,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("statemine"), impl_name: create_runtime_str!("statemine"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 14, @@ -128,7 +128,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("statemine"), impl_name: create_runtime_str!("statemine"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 14, diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs index f3499a8d29211de521364937f02f6e402319acd1..c1fb6367312a1fd685e0e20a77f371c504d7293d 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -110,7 +110,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("westmint"), impl_name: create_runtime_str!("westmint"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 14, diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs index 8db640d496013999b1b4e644d4eb7877412ae76b..1eac813b10cec7afb60312aea252f1a37cdfa986 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs @@ -203,7 +203,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("bridge-hub-rococo"), impl_name: create_runtime_str!("bridge-hub-rococo"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 4, diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs index 909ee62482477e1517fd0611b386cf2279b2eb45..b4ea2c79f64f1d87de2747191759c9e9990db3ba 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs @@ -177,7 +177,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("bridge-hub-westend"), impl_name: create_runtime_str!("bridge-hub-westend"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 4, diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index bf702ed6a4be309baee2706f686ab3c2f76c256c..c599ba37f128bb01adaa1e4dc3203a1ae15def9d 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -117,7 +117,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("collectives-westend"), impl_name: create_runtime_str!("collectives-westend"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 5, diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs index 56060aa123fc98a7443db68f515e09b68ccb6af7..efa26fcbc22d534dd4573ab15d8052a7179c77a0 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs @@ -134,7 +134,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("contracts-rococo"), impl_name: create_runtime_str!("contracts-rococo"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 6, diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs index 9f01d397598cb3918565ea79c0edacb649cae395..9959c15b11107ecba1470ab52cbef16fc6f22c25 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs @@ -134,7 +134,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("coretime-rococo"), impl_name: create_runtime_str!("coretime-rococo"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs index 29d348c1cd90ebfc96b6958fb7630cf741568862..1ee8c3bc0ec3d4f9b3201659cca5f388a05e78e1 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs @@ -134,7 +134,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("coretime-westend"), impl_name: create_runtime_str!("coretime-westend"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index 3391ab0e79c25f11ebeeef4e5aafc2f7c1339036..996f7655c0319a9dd40ce724beab5bf544893c08 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -100,7 +100,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("glutton-westend"), impl_name: create_runtime_str!("glutton-westend"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs index 1434c1b263ccb553f6b090c61e5c648125fdb384..3cd085fec63248aeb872af7b9233eb0046f472c9 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs @@ -127,7 +127,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("people-rococo"), impl_name: create_runtime_str!("people-rococo"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, diff --git a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs index 1030527ccd48413e243ac57b82701650a01fde4d..307ab90a47723503725757d5862f5d0b21bdf9c0 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs @@ -127,7 +127,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("people-westend"), impl_name: create_runtime_str!("people-westend"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs index 5695c54f054c5b05afa54e4d6e0de8563dc41f4c..154c2c4600043cc0ceb1b0cd61a84949dcdd9616 100644 --- a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs @@ -107,7 +107,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("test-parachain"), impl_name: create_runtime_str!("test-parachain"), authoring_version: 1, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 6, diff --git a/polkadot/node/network/statement-distribution/src/v2/cluster.rs b/polkadot/node/network/statement-distribution/src/v2/cluster.rs index 87cdc389cb35973403bdf33ab4522d32174d7ec1..c3f45314b2464e1125a797686c51827e022b0403 100644 --- a/polkadot/node/network/statement-distribution/src/v2/cluster.rs +++ b/polkadot/node/network/statement-distribution/src/v2/cluster.rs @@ -442,7 +442,7 @@ impl ClusterTracker { target: LOG_TARGET, pending_statements = ?self.pending, ?parent_hash, - "Cluster has too many pending statements, something wrong with our connection to our group peers \n + "Cluster has too many pending statements, something wrong with our connection to our group peers Restart might be needed if validator gets 0 backing rewards for more than 3-4 consecutive sessions" ); } diff --git a/polkadot/node/primitives/src/lib.rs b/polkadot/node/primitives/src/lib.rs index b127d87d4ea4dd7e48b282c2a1c8a7ad525fc5f4..375aacd583267ef7e86f7888a9e3e17599e7414d 100644 --- a/polkadot/node/primitives/src/lib.rs +++ b/polkadot/node/primitives/src/lib.rs @@ -58,7 +58,7 @@ pub use disputes::{ /// relatively rare. /// /// The associated worker binaries should use the same version as the node that spawns them. -pub const NODE_VERSION: &'static str = "1.9.0"; +pub const NODE_VERSION: &'static str = "1.10.0"; // For a 16-ary Merkle Prefix Trie, we can expect at most 16 32-byte hashes per node // plus some overhead: diff --git a/polkadot/roadmap/implementers-guide/src/runtime/disputes.md b/polkadot/roadmap/implementers-guide/src/runtime/disputes.md index 688ff7f1b330033ed46e54c069c673c9922c29cf..f2b83aecb6483dcae738e448fbcbd89f5cf6a886 100644 --- a/polkadot/roadmap/implementers-guide/src/runtime/disputes.md +++ b/polkadot/roadmap/implementers-guide/src/runtime/disputes.md @@ -121,9 +121,6 @@ This is currently a `no op`. * `is_frozen()`: Load the value of `Frozen` from storage. Return true if `Some` and false if `None`. -* `last_valid_block()`: Load the value of `Frozen` from storage and return. None indicates that all blocks in the chain - are potentially valid. - * `revert_and_freeze(BlockNumber)`: 1. If `is_frozen()` return. 1. Set `Frozen` to `Some(BlockNumber)` to indicate a rollback to the block number. diff --git a/polkadot/roadmap/implementers-guide/src/runtime/scheduler.md b/polkadot/roadmap/implementers-guide/src/runtime/scheduler.md index 04b221a83e587e1de20b6e0088d88aa731354ba3..083ed2b6feac9ed6d27c44bc2267744dd49fffd1 100644 --- a/polkadot/roadmap/implementers-guide/src/runtime/scheduler.md +++ b/polkadot/roadmap/implementers-guide/src/runtime/scheduler.md @@ -229,7 +229,7 @@ Actions: [`HostConfiguration`](../types/runtime.md#host-configuration)) 1. Fetch `Shared::ActiveValidators` as AV. 1. Determine the number of cores & validator groups as `n_cores`. This is the maximum of - 1. `Paras::parachains().len() + configuration.parathread_cores` + 1. `paras::Parachains::::get().len() + configuration.parathread_cores` 1. `n_validators / max_validators_per_core` if `configuration.max_validators_per_core` is `Some` and non-zero. 1. Resize `AvailabilityCores` to have length `n_cores` with all `None` entries. 1. Compute new validator groups by shuffling using a secure randomness beacon @@ -261,7 +261,7 @@ No finalization routine runs for this module. - Fails if any on-demand claim on the same parachain is currently indexed. - Fails if the queue length is >= `config.scheduling_lookahead * config.parathread_cores`. - The core used for the on-demand claim is the `next_core` field of the `ParathreadQueue` (on-demand queue) and adding - `Paras::parachains().len()` to it. + `paras::Parachains::::get().len()` to it. - `next_core` is then updated by adding 1 and taking it modulo `config.parathread_cores`. - The claim is then added to the claim index. - `free_cores(Vec<(CoreIndex, FreedReason)>)`: indicate previously-occupied cores which are to be considered returned diff --git a/polkadot/roadmap/implementers-guide/src/runtime/session_info.md b/polkadot/roadmap/implementers-guide/src/runtime/session_info.md index 0442ee57505d0823b98b54bed79596e09a16f641..fa7f55c4f0b41c42270fc4c5f7d6c826f903f20e 100644 --- a/polkadot/roadmap/implementers-guide/src/runtime/session_info.md +++ b/polkadot/roadmap/implementers-guide/src/runtime/session_info.md @@ -76,6 +76,6 @@ Sessions: map SessionIndex => Option, ## Routines -* `earliest_stored_session() -> SessionIndex`: Yields the earliest session for which we have information stored. -* `session_info(session: SessionIndex) -> Option`: Yields the session info for the given session, if +* `EarliestStoredSession::::get() -> SessionIndex`: Yields the earliest session for which we have information stored. +* `Sessions::::get(session: SessionIndex) -> Option`: Yields the session info for the given session, if stored. diff --git a/polkadot/runtime/common/src/assigned_slots/migration.rs b/polkadot/runtime/common/src/assigned_slots/migration.rs index 7e582dfa59635b180d2af55c9c6a4ef1cbae5468..b52509bbdf498a7bc9b03be6b4432326d894211b 100644 --- a/polkadot/runtime/common/src/assigned_slots/migration.rs +++ b/polkadot/runtime/common/src/assigned_slots/migration.rs @@ -39,8 +39,8 @@ pub mod v1 { const MAX_PERMANENT_SLOTS: u32 = 100; const MAX_TEMPORARY_SLOTS: u32 = 100; - >::put(MAX_PERMANENT_SLOTS); - >::put(MAX_TEMPORARY_SLOTS); + MaxPermanentSlots::::put(MAX_PERMANENT_SLOTS); + MaxTemporarySlots::::put(MAX_TEMPORARY_SLOTS); // Return the weight consumed by the migration. T::DbWeight::get().reads_writes(1, 3) } else { @@ -53,8 +53,8 @@ pub mod v1 { fn post_upgrade(_state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { let on_chain_version = Pallet::::on_chain_storage_version(); ensure!(on_chain_version == 1, "assigned_slots::MigrateToV1 needs to be run"); - assert_eq!(>::get(), 100); - assert_eq!(>::get(), 100); + assert_eq!(MaxPermanentSlots::::get(), 100); + assert_eq!(MaxTemporarySlots::::get(), 100); Ok(()) } } diff --git a/polkadot/runtime/common/src/assigned_slots/mod.rs b/polkadot/runtime/common/src/assigned_slots/mod.rs index 5f1bc73db96397426040cc0b873e5f660577a793..9b24b99cfbe2a2f1d06fc842f798a6232077e2fb 100644 --- a/polkadot/runtime/common/src/assigned_slots/mod.rs +++ b/polkadot/runtime/common/src/assigned_slots/mod.rs @@ -148,18 +148,15 @@ pub mod pallet { /// Assigned permanent slots, with their start lease period, and duration. #[pallet::storage] - #[pallet::getter(fn permanent_slots)] pub type PermanentSlots = StorageMap<_, Twox64Concat, ParaId, (LeasePeriodOf, LeasePeriodOf), OptionQuery>; /// Number of assigned (and active) permanent slots. #[pallet::storage] - #[pallet::getter(fn permanent_slot_count)] pub type PermanentSlotCount = StorageValue<_, u32, ValueQuery>; /// Assigned temporary slots. #[pallet::storage] - #[pallet::getter(fn temporary_slots)] pub type TemporarySlots = StorageMap< _, Twox64Concat, @@ -170,12 +167,10 @@ pub mod pallet { /// Number of assigned temporary slots. #[pallet::storage] - #[pallet::getter(fn temporary_slot_count)] pub type TemporarySlotCount = StorageValue<_, u32, ValueQuery>; /// Number of active temporary slots in current slot lease period. #[pallet::storage] - #[pallet::getter(fn active_temporary_slot_count)] pub type ActiveTemporarySlotCount = StorageValue<_, u32, ValueQuery>; /// The max number of temporary slots that can be assigned. @@ -197,8 +192,8 @@ pub mod pallet { #[pallet::genesis_build] impl BuildGenesisConfig for GenesisConfig { fn build(&self) { - >::put(&self.max_permanent_slots); - >::put(&self.max_temporary_slots); + MaxPermanentSlots::::put(&self.max_permanent_slots); + MaxTemporarySlots::::put(&self.max_temporary_slots); } } @@ -306,7 +301,7 @@ pub mod pallet { LeasePeriodOf::::from(T::PermanentSlotLeasePeriodLength::get()), ), ); - >::mutate(|count| count.saturating_inc()); + PermanentSlotCount::::mutate(|count| count.saturating_inc()); Self::deposit_event(Event::::PermanentSlotAssigned(id)); Ok(()) @@ -364,7 +359,7 @@ pub mod pallet { }; if lease_period_start == SlotLeasePeriodStart::Current && - Self::active_temporary_slot_count() < T::MaxTemporarySlotPerLeasePeriod::get() + ActiveTemporarySlotCount::::get() < T::MaxTemporarySlotPerLeasePeriod::get() { // Try to allocate slot directly match Self::configure_slot_lease( @@ -394,7 +389,7 @@ pub mod pallet { } TemporarySlots::::insert(id, temp_slot); - >::mutate(|count| count.saturating_inc()); + TemporarySlotCount::::mutate(|count| count.saturating_inc()); Self::deposit_event(Event::::TemporarySlotAssigned(id)); @@ -420,12 +415,12 @@ pub mod pallet { if PermanentSlots::::contains_key(id) { PermanentSlots::::remove(id); - >::mutate(|count| *count = count.saturating_sub(One::one())); + PermanentSlotCount::::mutate(|count| *count = count.saturating_sub(One::one())); } else if TemporarySlots::::contains_key(id) { TemporarySlots::::remove(id); - >::mutate(|count| *count = count.saturating_sub(One::one())); + TemporarySlotCount::::mutate(|count| *count = count.saturating_sub(One::one())); if is_parachain { - >::mutate(|active_count| { + ActiveTemporarySlotCount::::mutate(|active_count| { *active_count = active_count.saturating_sub(One::one()) }); } @@ -456,7 +451,7 @@ pub mod pallet { pub fn set_max_permanent_slots(origin: OriginFor, slots: u32) -> DispatchResult { ensure_root(origin)?; - >::put(slots); + MaxPermanentSlots::::put(slots); Self::deposit_event(Event::::MaxPermanentSlotsChanged { slots }); Ok(()) @@ -468,7 +463,7 @@ pub mod pallet { pub fn set_max_temporary_slots(origin: OriginFor, slots: u32) -> DispatchResult { ensure_root(origin)?; - >::put(slots); + MaxTemporarySlots::::put(slots); Self::deposit_event(Event::::MaxTemporarySlotsChanged { slots }); Ok(()) @@ -965,7 +960,7 @@ mod tests { RuntimeOrigin::root(), ParaId::from(2_u32), )); - assert_eq!(AssignedSlots::permanent_slot_count(), 2); + assert_eq!(assigned_slots::PermanentSlotCount::::get(), 2); assert_noop!( AssignedSlots::assign_perm_parachain_slot( @@ -989,8 +984,8 @@ mod tests { dummy_validation_code(), )); - assert_eq!(AssignedSlots::permanent_slot_count(), 0); - assert_eq!(AssignedSlots::permanent_slots(ParaId::from(1_u32)), None); + assert_eq!(assigned_slots::PermanentSlotCount::::get(), 0); + assert_eq!(assigned_slots::PermanentSlots::::get(ParaId::from(1_u32)), None); assert_ok!(AssignedSlots::assign_perm_parachain_slot( RuntimeOrigin::root(), @@ -1004,9 +999,12 @@ mod tests { assert_eq!(TestRegistrar::::is_parachain(ParaId::from(1_u32)), true); - assert_eq!(AssignedSlots::permanent_slot_count(), 1); + assert_eq!(assigned_slots::PermanentSlotCount::::get(), 1); assert_eq!(AssignedSlots::has_permanent_slot(ParaId::from(1_u32)), true); - assert_eq!(AssignedSlots::permanent_slots(ParaId::from(1_u32)), Some((0, 3))); + assert_eq!( + assigned_slots::PermanentSlots::::get(ParaId::from(1_u32)), + Some((0, 3)) + ); assert_eq!(Slots::already_leased(ParaId::from(1_u32), 0, 2), true); @@ -1138,7 +1136,7 @@ mod tests { )); } - assert_eq!(AssignedSlots::temporary_slot_count(), 6); + assert_eq!(assigned_slots::TemporarySlotCount::::get(), 6); // Attempt to assign one more temp slot assert_ok!(TestRegistrar::::register( @@ -1170,15 +1168,15 @@ mod tests { dummy_validation_code(), )); - assert_eq!(AssignedSlots::temporary_slots(ParaId::from(1_u32)), None); + assert_eq!(assigned_slots::TemporarySlots::::get(ParaId::from(1_u32)), None); assert_ok!(AssignedSlots::assign_temp_parachain_slot( RuntimeOrigin::root(), ParaId::from(1_u32), SlotLeasePeriodStart::Current )); - assert_eq!(AssignedSlots::temporary_slot_count(), 1); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 1); + assert_eq!(assigned_slots::TemporarySlotCount::::get(), 1); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 1); // Block 1-5 // Para is a lease holding parachain for TemporarySlotLeasePeriodLength * LeasePeriod @@ -1186,14 +1184,14 @@ mod tests { while block < 6 { println!("block #{}", block); println!("lease period #{}", AssignedSlots::current_lease_period_index()); - println!("lease {:?}", Slots::lease(ParaId::from(1_u32))); + println!("lease {:?}", slots::Leases::::get(ParaId::from(1_u32))); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(1_u32)), true); assert_eq!(AssignedSlots::has_temporary_slot(ParaId::from(1_u32)), true); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 1); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 1); assert_eq!( - AssignedSlots::temporary_slots(ParaId::from(1_u32)), + assigned_slots::TemporarySlots::::get(ParaId::from(1_u32)), Some(ParachainTemporarySlot { manager: 1, period_begin: 0, @@ -1212,23 +1210,23 @@ mod tests { // Block 6 println!("block #{}", block); println!("lease period #{}", AssignedSlots::current_lease_period_index()); - println!("lease {:?}", Slots::lease(ParaId::from(1_u32))); + println!("lease {:?}", slots::Leases::::get(ParaId::from(1_u32))); // Para lease ended, downgraded back to on-demand parachain assert_eq!(TestRegistrar::::is_parathread(ParaId::from(1_u32)), true); assert_eq!(Slots::already_leased(ParaId::from(1_u32), 0, 3), false); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 0); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 0); // Block 12 // Para should get a turn after TemporarySlotLeasePeriodLength * LeasePeriod blocks run_to_block(12); println!("block #{}", block); println!("lease period #{}", AssignedSlots::current_lease_period_index()); - println!("lease {:?}", Slots::lease(ParaId::from(1_u32))); + println!("lease {:?}", slots::Leases::::get(ParaId::from(1_u32))); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(1_u32)), true); assert_eq!(Slots::already_leased(ParaId::from(1_u32), 4, 5), true); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 1); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 1); }); } @@ -1270,7 +1268,7 @@ mod tests { assert_eq!(TestRegistrar::::is_parachain(ParaId::from(3_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(4_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(5_u32)), false); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 2); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 2); } // Block 6-11, Period 2-3 @@ -1282,7 +1280,7 @@ mod tests { assert_eq!(TestRegistrar::::is_parachain(ParaId::from(3_u32)), true); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(4_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(5_u32)), false); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 2); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 2); } // Block 12-17, Period 4-5 @@ -1294,7 +1292,7 @@ mod tests { assert_eq!(TestRegistrar::::is_parachain(ParaId::from(3_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(4_u32)), true); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(5_u32)), true); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 2); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 2); } // Block 18-23, Period 6-7 @@ -1306,7 +1304,7 @@ mod tests { assert_eq!(TestRegistrar::::is_parachain(ParaId::from(3_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(4_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(5_u32)), false); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 2); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 2); } // Block 24-29, Period 8-9 @@ -1318,7 +1316,7 @@ mod tests { assert_eq!(TestRegistrar::::is_parachain(ParaId::from(3_u32)), true); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(4_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(5_u32)), false); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 2); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 2); } // Block 30-35, Period 10-11 @@ -1330,7 +1328,7 @@ mod tests { assert_eq!(TestRegistrar::::is_parachain(ParaId::from(3_u32)), false); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(4_u32)), true); assert_eq!(TestRegistrar::::is_parachain(ParaId::from(5_u32)), true); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 2); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 2); } }); } @@ -1386,9 +1384,9 @@ mod tests { ParaId::from(1_u32), )); - assert_eq!(AssignedSlots::permanent_slot_count(), 0); + assert_eq!(assigned_slots::PermanentSlotCount::::get(), 0); assert_eq!(AssignedSlots::has_permanent_slot(ParaId::from(1_u32)), false); - assert_eq!(AssignedSlots::permanent_slots(ParaId::from(1_u32)), None); + assert_eq!(assigned_slots::PermanentSlots::::get(ParaId::from(1_u32)), None); assert_eq!(Slots::already_leased(ParaId::from(1_u32), 0, 2), false); }); @@ -1419,10 +1417,10 @@ mod tests { ParaId::from(1_u32), )); - assert_eq!(AssignedSlots::temporary_slot_count(), 0); - assert_eq!(AssignedSlots::active_temporary_slot_count(), 0); + assert_eq!(assigned_slots::TemporarySlotCount::::get(), 0); + assert_eq!(assigned_slots::ActiveTemporarySlotCount::::get(), 0); assert_eq!(AssignedSlots::has_temporary_slot(ParaId::from(1_u32)), false); - assert_eq!(AssignedSlots::temporary_slots(ParaId::from(1_u32)), None); + assert_eq!(assigned_slots::TemporarySlots::::get(ParaId::from(1_u32)), None); assert_eq!(Slots::already_leased(ParaId::from(1_u32), 0, 1), false); }); diff --git a/polkadot/runtime/common/src/auctions.rs b/polkadot/runtime/common/src/auctions.rs index 00c2da3016d7cd5bbe508ae7475ddbc48a323204..aa4caac96f154b43f60fb4aa0dc45b9017aff1d9 100644 --- a/polkadot/runtime/common/src/auctions.rs +++ b/polkadot/runtime/common/src/auctions.rs @@ -174,7 +174,6 @@ pub mod pallet { /// Number of auctions started so far. #[pallet::storage] - #[pallet::getter(fn auction_counter)] pub type AuctionCounter = StorageValue<_, AuctionIndex, ValueQuery>; /// Information relating to the current auction, if there is one. @@ -183,13 +182,11 @@ pub mod pallet { /// contiguous lease periods on auction is for. The second is the block number when the /// auction will "begin to end", i.e. the first block of the Ending Period of the auction. #[pallet::storage] - #[pallet::getter(fn auction_info)] pub type AuctionInfo = StorageValue<_, (LeasePeriodOf, BlockNumberFor)>; /// Amounts currently reserved in the accounts of the bidders currently winning /// (sub-)ranges. #[pallet::storage] - #[pallet::getter(fn reserved_amounts)] pub type ReservedAmounts = StorageMap<_, Twox64Concat, (T::AccountId, ParaId), BalanceOf>; @@ -197,7 +194,6 @@ pub mod pallet { /// the current auction. The map's key is the 0-based index into the Sample Size. The /// first sample of the ending period is 0; the last is `Sample Size - 1`. #[pallet::storage] - #[pallet::getter(fn winning)] pub type Winning = StorageMap<_, Twox64Concat, BlockNumberFor, WinningData>; #[pallet::extra_constants] @@ -983,7 +979,7 @@ mod tests { assert_eq!(Balances::reserved_balance(1), 5); assert_eq!(Balances::free_balance(1), 5); assert_eq!( - Auctions::winning(0).unwrap()[SlotRange::ZeroThree as u8 as usize], + Winning::::get(0).unwrap()[SlotRange::ZeroThree as u8 as usize], Some((1, 0.into(), 5)) ); }); @@ -1016,7 +1012,7 @@ mod tests { assert_eq!(Balances::reserved_balance(2), 6); assert_eq!(Balances::free_balance(2), 14); assert_eq!( - Auctions::winning(0).unwrap()[SlotRange::ZeroThree as u8 as usize], + Winning::::get(0).unwrap()[SlotRange::ZeroThree as u8 as usize], Some((2, 0.into(), 6)) ); }); @@ -1453,7 +1449,7 @@ mod tests { let mut winning = [None; SlotRange::SLOT_RANGE_COUNT]; winning[SlotRange::ZeroThree as u8 as usize] = Some((1, para_1, 9)); winning[SlotRange::TwoThree as u8 as usize] = Some((2, para_2, 19)); - assert_eq!(Auctions::winning(0), Some(winning)); + assert_eq!(Winning::::get(0), Some(winning)); run_to_block(9); assert_eq!( @@ -1466,14 +1462,14 @@ mod tests { Auctions::auction_status(System::block_number()), AuctionStatus::::EndingPeriod(0, 0) ); - assert_eq!(Auctions::winning(0), Some(winning)); + assert_eq!(Winning::::get(0), Some(winning)); run_to_block(11); assert_eq!( Auctions::auction_status(System::block_number()), AuctionStatus::::EndingPeriod(1, 0) ); - assert_eq!(Auctions::winning(1), Some(winning)); + assert_eq!(Winning::::get(1), Some(winning)); assert_ok!(Auctions::bid(RuntimeOrigin::signed(3), para_3, 1, 3, 4, 29)); run_to_block(12); @@ -1482,7 +1478,7 @@ mod tests { AuctionStatus::::EndingPeriod(2, 0) ); winning[SlotRange::TwoThree as u8 as usize] = Some((3, para_3, 29)); - assert_eq!(Auctions::winning(2), Some(winning)); + assert_eq!(Winning::::get(2), Some(winning)); }); } @@ -1569,7 +1565,7 @@ mod tests { let mut winning = [None; SlotRange::SLOT_RANGE_COUNT]; winning[SlotRange::ZeroThree as u8 as usize] = Some((1, para_1, 9)); winning[SlotRange::TwoThree as u8 as usize] = Some((2, para_2, 19)); - assert_eq!(Auctions::winning(0), Some(winning)); + assert_eq!(Winning::::get(0), Some(winning)); run_to_block(9); assert_eq!( @@ -1582,31 +1578,31 @@ mod tests { Auctions::auction_status(System::block_number()), AuctionStatus::::EndingPeriod(0, 0) ); - assert_eq!(Auctions::winning(0), Some(winning)); + assert_eq!(Winning::::get(0), Some(winning)); // New bids update the current winning assert_ok!(Auctions::bid(RuntimeOrigin::signed(3), para_3, 1, 14, 14, 29)); winning[SlotRange::ThreeThree as u8 as usize] = Some((3, para_3, 29)); - assert_eq!(Auctions::winning(0), Some(winning)); + assert_eq!(Winning::::get(0), Some(winning)); run_to_block(20); assert_eq!( Auctions::auction_status(System::block_number()), AuctionStatus::::EndingPeriod(1, 0) ); - assert_eq!(Auctions::winning(1), Some(winning)); + assert_eq!(Winning::::get(1), Some(winning)); run_to_block(25); // Overbid mid sample assert_ok!(Auctions::bid(RuntimeOrigin::signed(3), para_3, 1, 13, 14, 29)); winning[SlotRange::TwoThree as u8 as usize] = Some((3, para_3, 29)); - assert_eq!(Auctions::winning(1), Some(winning)); + assert_eq!(Winning::::get(1), Some(winning)); run_to_block(30); assert_eq!( Auctions::auction_status(System::block_number()), AuctionStatus::::EndingPeriod(2, 0) ); - assert_eq!(Auctions::winning(2), Some(winning)); + assert_eq!(Winning::::get(2), Some(winning)); set_last_random(H256::from([254; 32]), 40); run_to_block(40); diff --git a/polkadot/runtime/common/src/claims.rs b/polkadot/runtime/common/src/claims.rs index 49ac4eb894108bd4ab4dc28209deb08c505f42cb..8407c7f0dda9d9567d0f4283fbc9999c5b0f0a7d 100644 --- a/polkadot/runtime/common/src/claims.rs +++ b/polkadot/runtime/common/src/claims.rs @@ -203,20 +203,17 @@ pub mod pallet { } #[pallet::storage] - #[pallet::getter(fn claims)] - pub(super) type Claims = StorageMap<_, Identity, EthereumAddress, BalanceOf>; + pub type Claims = StorageMap<_, Identity, EthereumAddress, BalanceOf>; #[pallet::storage] - #[pallet::getter(fn total)] - pub(super) type Total = StorageValue<_, BalanceOf, ValueQuery>; + pub type Total = StorageValue<_, BalanceOf, ValueQuery>; /// Vesting schedule for a claim. /// First balance is the total amount that should be held for vesting. /// Second balance is how much should be unlocked per block. /// The block number is when the vesting should start. #[pallet::storage] - #[pallet::getter(fn vesting)] - pub(super) type Vesting = + pub type Vesting = StorageMap<_, Identity, EthereumAddress, (BalanceOf, BalanceOf, BlockNumberFor)>; /// The statement kind that must be signed, if any. @@ -341,10 +338,10 @@ pub mod pallet { ) -> DispatchResult { ensure_root(origin)?; - >::mutate(|t| *t += value); - >::insert(who, value); + Total::::mutate(|t| *t += value); + Claims::::insert(who, value); if let Some(vs) = vesting_schedule { - >::insert(who, vs); + Vesting::::insert(who, vs); } if let Some(s) = statement { Signing::::insert(who, s); @@ -492,7 +489,7 @@ pub mod pallet { ))?; let e = InvalidTransaction::Custom(ValidityError::SignerHasNoClaim.into()); - ensure!(>::contains_key(&signer), e); + ensure!(Claims::::contains_key(&signer), e); let e = InvalidTransaction::Custom(ValidityError::InvalidStatement.into()); match Signing::::get(signer) { @@ -551,9 +548,10 @@ impl Pallet { } fn process_claim(signer: EthereumAddress, dest: T::AccountId) -> sp_runtime::DispatchResult { - let balance_due = >::get(&signer).ok_or(Error::::SignerHasNoClaim)?; + let balance_due = Claims::::get(&signer).ok_or(Error::::SignerHasNoClaim)?; - let new_total = Self::total().checked_sub(&balance_due).ok_or(Error::::PotUnderflow)?; + let new_total = + Total::::get().checked_sub(&balance_due).ok_or(Error::::PotUnderflow)?; let vesting = Vesting::::get(&signer); if vesting.is_some() && T::VestingSchedule::vesting_balance(&dest).is_some() { @@ -571,9 +569,9 @@ impl Pallet { .expect("No other vesting schedule exists, as checked above; qed"); } - >::put(new_total); - >::remove(&signer); - >::remove(&signer); + Total::::put(new_total); + Claims::::remove(&signer); + Vesting::::remove(&signer); Signing::::remove(&signer); // Let's deposit an event to let the outside world know this happened. @@ -683,7 +681,7 @@ mod secp_utils { what: &[u8], extra: &[u8], ) -> EcdsaSignature { - let msg = keccak_256(&>::ethereum_signable_message( + let msg = keccak_256(&super::Pallet::::ethereum_signable_message( &to_ascii_hex(what)[..], extra, )); @@ -837,13 +835,13 @@ mod tests { #[test] fn basic_setup_works() { new_test_ext().execute_with(|| { - assert_eq!(Claims::total(), total_claims()); - assert_eq!(Claims::claims(ð(&alice())), Some(100)); - assert_eq!(Claims::claims(ð(&dave())), Some(200)); - assert_eq!(Claims::claims(ð(&eve())), Some(300)); - assert_eq!(Claims::claims(ð(&frank())), Some(400)); - assert_eq!(Claims::claims(&EthereumAddress::default()), None); - assert_eq!(Claims::vesting(ð(&alice())), Some((50, 10, 1))); + assert_eq!(claims::Total::::get(), total_claims()); + assert_eq!(claims::Claims::::get(ð(&alice())), Some(100)); + assert_eq!(claims::Claims::::get(ð(&dave())), Some(200)); + assert_eq!(claims::Claims::::get(ð(&eve())), Some(300)); + assert_eq!(claims::Claims::::get(ð(&frank())), Some(400)); + assert_eq!(claims::Claims::::get(&EthereumAddress::default()), None); + assert_eq!(claims::Vesting::::get(ð(&alice())), Some((50, 10, 1))); }); } @@ -867,7 +865,7 @@ mod tests { )); assert_eq!(Balances::free_balance(&42), 100); assert_eq!(Vesting::vesting_balance(&42), Some(50)); - assert_eq!(Claims::total(), total_claims() - 100); + assert_eq!(claims::Total::::get(), total_claims() - 100); }); } @@ -900,7 +898,7 @@ mod tests { )); assert_eq!(Balances::free_balance(&42), 100); assert_eq!(Vesting::vesting_balance(&42), Some(50)); - assert_eq!(Claims::total(), total_claims() - 100); + assert_eq!(claims::Total::::get(), total_claims() - 100); }); } @@ -1004,7 +1002,7 @@ mod tests { StatementKind::Regular.to_text().to_vec() )); assert_eq!(Balances::free_balance(&42), 200); - assert_eq!(Claims::total(), total_claims() - 200); + assert_eq!(claims::Total::::get(), total_claims() - 200); let s = sig::(&dave(), &42u64.encode(), StatementKind::Regular.to_text()); let r = Claims::claim_attest( @@ -1037,7 +1035,7 @@ mod tests { StatementKind::Saft.to_text().to_vec() )); assert_eq!(Balances::free_balance(&42), 300); - assert_eq!(Claims::total(), total_claims() - 300); + assert_eq!(claims::Total::::get(), total_claims() - 300); }); } @@ -1058,7 +1056,7 @@ mod tests { StatementKind::Saft.to_text().to_vec() )); assert_eq!(Balances::free_balance(&42), 100 + 300); - assert_eq!(Claims::total(), total_claims() - 400); + assert_eq!(claims::Total::::get(), total_claims() - 400); }); } @@ -1122,7 +1120,7 @@ mod tests { Error::::SignerHasNoClaim, ); assert_ok!(Claims::mint_claim(RuntimeOrigin::root(), eth(&bob()), 200, None, None)); - assert_eq!(Claims::total(), total_claims() + 200); + assert_eq!(claims::Total::::get(), total_claims() + 200); assert_ok!(Claims::claim( RuntimeOrigin::none(), 69, @@ -1130,7 +1128,7 @@ mod tests { )); assert_eq!(Balances::free_balance(&69), 200); assert_eq!(Vesting::vesting_balance(&69), None); - assert_eq!(Claims::total(), total_claims()); + assert_eq!(claims::Total::::get(), total_claims()); }); } @@ -1284,7 +1282,7 @@ mod tests { None )); // New total - assert_eq!(Claims::total(), total_claims() + 200); + assert_eq!(claims::Total::::get(), total_claims() + 200); // They should not be able to claim assert_noop!( @@ -1347,7 +1345,7 @@ mod tests { new_test_ext().execute_with(|| { assert_eq!( - >::validate_unsigned( + Pallet::::validate_unsigned( source, &ClaimsCall::claim { dest: 1, @@ -1363,14 +1361,14 @@ mod tests { }) ); assert_eq!( - >::validate_unsigned( + Pallet::::validate_unsigned( source, &ClaimsCall::claim { dest: 0, ethereum_signature: EcdsaSignature([0; 65]) } ), InvalidTransaction::Custom(ValidityError::InvalidEthereumSignature.into()).into(), ); assert_eq!( - >::validate_unsigned( + Pallet::::validate_unsigned( source, &ClaimsCall::claim { dest: 1, @@ -1386,7 +1384,7 @@ mod tests { statement: StatementKind::Regular.to_text().to_vec(), }; assert_eq!( - >::validate_unsigned(source, &call), + Pallet::::validate_unsigned(source, &call), Ok(ValidTransaction { priority: 100, requires: vec![], @@ -1396,7 +1394,7 @@ mod tests { }) ); assert_eq!( - >::validate_unsigned( + Pallet::::validate_unsigned( source, &ClaimsCall::claim_attest { dest: 1, @@ -1414,7 +1412,7 @@ mod tests { statement: StatementKind::Regular.to_text().to_vec(), }; assert_eq!( - >::validate_unsigned(source, &call), + Pallet::::validate_unsigned(source, &call), InvalidTransaction::Custom(ValidityError::SignerHasNoClaim.into()).into(), ); @@ -1425,7 +1423,7 @@ mod tests { statement: StatementKind::Regular.to_text().to_vec(), }; assert_eq!( - >::validate_unsigned(source, &call), + Pallet::::validate_unsigned(source, &call), InvalidTransaction::Custom(ValidityError::SignerHasNoClaim.into()).into(), ); @@ -1436,7 +1434,7 @@ mod tests { statement: StatementKind::Saft.to_text().to_vec(), }; assert_eq!( - >::validate_unsigned(source, &call), + Pallet::::validate_unsigned(source, &call), InvalidTransaction::Custom(ValidityError::InvalidStatement.into()).into(), ); }); diff --git a/polkadot/runtime/common/src/crowdloan/mod.rs b/polkadot/runtime/common/src/crowdloan/mod.rs index a2143212d8c59ffac9b40dc9f4009c1b87c2e343..12078871a1957215fd209402894fc0434fba6ba5 100644 --- a/polkadot/runtime/common/src/crowdloan/mod.rs +++ b/polkadot/runtime/common/src/crowdloan/mod.rs @@ -225,8 +225,7 @@ pub mod pallet { /// Info on all of the funds. #[pallet::storage] - #[pallet::getter(fn funds)] - pub(crate) type Funds = StorageMap< + pub type Funds = StorageMap< _, Twox64Concat, ParaId, @@ -236,18 +235,15 @@ pub mod pallet { /// The funds that have had additional contributions during the last block. This is used /// in order to determine which funds should submit new or updated bids. #[pallet::storage] - #[pallet::getter(fn new_raise)] - pub(super) type NewRaise = StorageValue<_, Vec, ValueQuery>; + pub type NewRaise = StorageValue<_, Vec, ValueQuery>; /// The number of auctions that have entered into their ending period so far. #[pallet::storage] - #[pallet::getter(fn endings_count)] - pub(super) type EndingsCount = StorageValue<_, u32, ValueQuery>; + pub type EndingsCount = StorageValue<_, u32, ValueQuery>; /// Tracker for the next available fund index #[pallet::storage] - #[pallet::getter(fn next_fund_index)] - pub(super) type NextFundIndex = StorageValue<_, u32, ValueQuery>; + pub type NextFundIndex = StorageValue<_, u32, ValueQuery>; #[pallet::event] #[pallet::generate_deposit(pub(super) fn deposit_event)] @@ -338,7 +334,7 @@ pub mod pallet { let new_raise = NewRaise::::take(); let new_raise_len = new_raise.len() as u32; for (fund, para_id) in - new_raise.into_iter().filter_map(|i| Self::funds(i).map(|f| (f, i))) + new_raise.into_iter().filter_map(|i| Funds::::get(i).map(|f| (f, i))) { // Care needs to be taken by the crowdloan creator that this function will // succeed given the crowdloaning configuration. We do some checks ahead of time @@ -412,7 +408,7 @@ pub mod pallet { ensure!(depositor == manager, Error::::InvalidOrigin); ensure!(T::Registrar::is_registered(index), Error::::InvalidParaId); - let fund_index = Self::next_fund_index(); + let fund_index = NextFundIndex::::get(); let new_fund_index = fund_index.checked_add(1).ok_or(Error::::Overflow)?; let deposit = T::SubmissionDeposit::get(); @@ -482,7 +478,7 @@ pub mod pallet { ) -> DispatchResult { ensure_signed(origin)?; - let mut fund = Self::funds(index).ok_or(Error::::InvalidParaId)?; + let mut fund = Funds::::get(index).ok_or(Error::::InvalidParaId)?; let now = frame_system::Pallet::::block_number(); let fund_account = Self::fund_account_id(fund.fund_index); Self::ensure_crowdloan_ended(now, &fund_account, &fund)?; @@ -515,7 +511,7 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_signed(origin)?; - let mut fund = Self::funds(index).ok_or(Error::::InvalidParaId)?; + let mut fund = Funds::::get(index).ok_or(Error::::InvalidParaId)?; let now = frame_system::Pallet::::block_number(); let fund_account = Self::fund_account_id(fund.fund_index); Self::ensure_crowdloan_ended(now, &fund_account, &fund)?; @@ -558,7 +554,7 @@ pub mod pallet { pub fn dissolve(origin: OriginFor, #[pallet::compact] index: ParaId) -> DispatchResult { let who = ensure_signed(origin)?; - let fund = Self::funds(index).ok_or(Error::::InvalidParaId)?; + let fund = Funds::::get(index).ok_or(Error::::InvalidParaId)?; let pot = Self::fund_account_id(fund.fund_index); let now = frame_system::Pallet::::block_number(); @@ -599,7 +595,7 @@ pub mod pallet { ) -> DispatchResult { ensure_root(origin)?; - let fund = Self::funds(index).ok_or(Error::::InvalidParaId)?; + let fund = Funds::::get(index).ok_or(Error::::InvalidParaId)?; Funds::::insert( index, @@ -630,7 +626,7 @@ pub mod pallet { let who = ensure_signed(origin)?; ensure!(memo.len() <= T::MaxMemoLength::get().into(), Error::::MemoTooLarge); - let fund = Self::funds(index).ok_or(Error::::InvalidParaId)?; + let fund = Funds::::get(index).ok_or(Error::::InvalidParaId)?; let (balance, _) = Self::contribution_get(fund.fund_index, &who); ensure!(balance > Zero::zero(), Error::::NoContributions); @@ -647,7 +643,7 @@ pub mod pallet { #[pallet::weight(T::WeightInfo::poke())] pub fn poke(origin: OriginFor, index: ParaId) -> DispatchResult { ensure_signed(origin)?; - let fund = Self::funds(index).ok_or(Error::::InvalidParaId)?; + let fund = Funds::::get(index).ok_or(Error::::InvalidParaId)?; ensure!(!fund.raised.is_zero(), Error::::NoContributions); ensure!(!NewRaise::::get().contains(&index), Error::::AlreadyInNewRaise); NewRaise::::append(index); @@ -757,12 +753,12 @@ impl Pallet { existence: ExistenceRequirement, ) -> DispatchResult { ensure!(value >= T::MinContribution::get(), Error::::ContributionTooSmall); - let mut fund = Self::funds(index).ok_or(Error::::InvalidParaId)?; + let mut fund = Funds::::get(index).ok_or(Error::::InvalidParaId)?; fund.raised = fund.raised.checked_add(&value).ok_or(Error::::Overflow)?; ensure!(fund.raised <= fund.cap, Error::::CapExceeded); // Make sure crowdloan has not ended - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); ensure!(now < fund.end, Error::::ContributionPeriodOver); // Make sure crowdloan is in a valid lease period @@ -811,7 +807,7 @@ impl Pallet { }, } } else { - let endings_count = Self::endings_count(); + let endings_count = EndingsCount::::get(); match fund.last_contribution { LastContribution::PreEnding(a) if a == endings_count => { // Not in ending period and no auctions have ended ending since our @@ -1155,11 +1151,11 @@ mod tests { fn basic_setup_works() { new_test_ext().execute_with(|| { assert_eq!(System::block_number(), 0); - assert_eq!(Crowdloan::funds(ParaId::from(0)), None); + assert_eq!(crowdloan::Funds::::get(ParaId::from(0)), None); let empty: Vec = Vec::new(); - assert_eq!(Crowdloan::new_raise(), empty); + assert_eq!(crowdloan::NewRaise::::get(), empty); assert_eq!(Crowdloan::contribution_get(0u32, &1).0, 0); - assert_eq!(Crowdloan::endings_count(), 0); + assert_eq!(crowdloan::EndingsCount::::get(), 0); assert_ok!(TestAuctioneer::new_auction(5, 0)); @@ -1201,14 +1197,14 @@ mod tests { last_period: 4, fund_index: 0, }; - assert_eq!(Crowdloan::funds(para), Some(fund_info)); + assert_eq!(crowdloan::Funds::::get(para), Some(fund_info)); // User has deposit removed from their free balance assert_eq!(Balances::free_balance(1), 999); // Deposit is placed in reserved assert_eq!(Balances::reserved_balance(1), 1); // No new raise until first contribution let empty: Vec = Vec::new(); - assert_eq!(Crowdloan::new_raise(), empty); + assert_eq!(crowdloan::NewRaise::::get(), empty); }); } @@ -1241,14 +1237,14 @@ mod tests { last_period: 4, fund_index: 0, }; - assert_eq!(Crowdloan::funds(ParaId::from(0)), Some(fund_info)); + assert_eq!(crowdloan::Funds::::get(ParaId::from(0)), Some(fund_info)); // User has deposit removed from their free balance assert_eq!(Balances::free_balance(1), 999); // Deposit is placed in reserved assert_eq!(Balances::reserved_balance(1), 1); // No new raise until first contribution let empty: Vec = Vec::new(); - assert_eq!(Crowdloan::new_raise(), empty); + assert_eq!(crowdloan::NewRaise::::get(), empty); }); } @@ -1321,9 +1317,9 @@ mod tests { // Contributions appear in free balance of crowdloan assert_eq!(Balances::free_balance(Crowdloan::fund_account_id(index)), 49); // Crowdloan is added to NewRaise - assert_eq!(Crowdloan::new_raise(), vec![para]); + assert_eq!(crowdloan::NewRaise::::get(), vec![para]); - let fund = Crowdloan::funds(para).unwrap(); + let fund = crowdloan::Funds::::get(para).unwrap(); // Last contribution time recorded assert_eq!(fund.last_contribution, LastContribution::PreEnding(0)); @@ -1418,7 +1414,7 @@ mod tests { assert_eq!(Balances::free_balance(Crowdloan::fund_account_id(index)), 59); // Contribution amount is correct - let fund = Crowdloan::funds(para).unwrap(); + let fund = crowdloan::Funds::::get(para).unwrap(); assert_eq!(fund.raised, 59); }); } @@ -1570,7 +1566,7 @@ mod tests { ); // Endings count incremented - assert_eq!(Crowdloan::endings_count(), 1); + assert_eq!(crowdloan::EndingsCount::::get(), 1); }); } @@ -1758,7 +1754,7 @@ mod tests { // We test the historic case where crowdloan accounts only have one provider: { - let fund = Crowdloan::funds(para).unwrap(); + let fund = crowdloan::Funds::::get(para).unwrap(); let pot = Crowdloan::fund_account_id(fund.fund_index); System::dec_providers(&pot).unwrap(); assert_eq!(System::providers(&pot), 1); @@ -1910,10 +1906,10 @@ mod tests { assert_ok!(Crowdloan::create(RuntimeOrigin::signed(1), para_1, 1000, 1, 1, 9, None)); assert_ok!(Crowdloan::contribute(RuntimeOrigin::signed(2), para_1, 100, None)); - let old_crowdloan = Crowdloan::funds(para_1).unwrap(); + let old_crowdloan = crowdloan::Funds::::get(para_1).unwrap(); assert_ok!(Crowdloan::edit(RuntimeOrigin::root(), para_1, 1234, 2, 3, 4, None)); - let new_crowdloan = Crowdloan::funds(para_1).unwrap(); + let new_crowdloan = crowdloan::Funds::::get(para_1).unwrap(); // Some things stay the same assert_eq!(old_crowdloan.depositor, new_crowdloan.depositor); @@ -1974,7 +1970,7 @@ mod tests { assert_ok!(Crowdloan::contribute(RuntimeOrigin::signed(2), para_1, 100, None)); run_to_block(6); assert_ok!(Crowdloan::poke(RuntimeOrigin::signed(1), para_1)); - assert_eq!(Crowdloan::new_raise(), vec![para_1]); + assert_eq!(crowdloan::NewRaise::::get(), vec![para_1]); assert_noop!( Crowdloan::poke(RuntimeOrigin::signed(1), para_1), Error::::AlreadyInNewRaise diff --git a/polkadot/runtime/common/src/integration_tests.rs b/polkadot/runtime/common/src/integration_tests.rs index dfd0d356638c0b5525368bb81b268baada334f22..91b64ef7259c3c260ca39e30a8e4dc63362bf339 100644 --- a/polkadot/runtime/common/src/integration_tests.rs +++ b/polkadot/runtime/common/src/integration_tests.rs @@ -348,7 +348,7 @@ const VALIDATORS: &[Sr25519Keyring] = &[ fn maybe_new_session(n: u32) { if n % BLOCKS_PER_SESSION == 0 { - let session_index = shared::Pallet::::session_index() + 1; + let session_index = shared::CurrentSessionIndex::::get() + 1; let validators_pub_keys = validators_public_keys(VALIDATORS); shared::Pallet::::set_session_index(session_index); @@ -464,7 +464,7 @@ fn basic_end_to_end_works() { 200 + offset, // Block End None, )); - let fund_2 = Crowdloan::funds(ParaId::from(para_2)).unwrap(); + let fund_2 = crowdloan::Funds::::get(ParaId::from(para_2)).unwrap(); let crowdloan_account = Crowdloan::fund_account_id(fund_2.fund_index); // Auction ending begins on block 100 + offset, so we make a bid before then. @@ -826,7 +826,7 @@ fn competing_bids() { run_to_block(starting_block + 110); // Appropriate Paras should have won slots - let fund_1 = Crowdloan::funds(ParaId::from(2000)).unwrap(); + let fund_1 = crowdloan::Funds::::get(ParaId::from(2000)).unwrap(); let crowdloan_1 = Crowdloan::fund_account_id(fund_1.fund_index); assert_eq!( slots::Leases::::get(ParaId::from(2000)), @@ -912,7 +912,7 @@ fn basic_swap_works() { 200, // Block End None, )); - let fund = Crowdloan::funds(ParaId::from(2000)).unwrap(); + let fund = crowdloan::Funds::::get(ParaId::from(2000)).unwrap(); let crowdloan_account = Crowdloan::fund_account_id(fund.fund_index); // Bunch of contributions @@ -932,7 +932,7 @@ fn basic_swap_works() { // ----------------------------------------- para deposit --- crowdloan let crowdloan_deposit = 100; let para_id_deposit = ::ParaDeposit::get(); - let code_deposit = configuration::Pallet::::config().max_code_size * + let code_deposit = configuration::ActiveConfig::::get().max_code_size * ::DataDepositPerByte::get(); // Para 2000 has a genesis head size of 10. @@ -944,16 +944,16 @@ fn basic_swap_works() { assert_eq!(Balances::reserved_balance(&account_id(2)), para_id_deposit + code_deposit + 20); assert_eq!(Balances::reserved_balance(&crowdloan_account), total); // Crowdloan is appropriately set - assert!(Crowdloan::funds(ParaId::from(2000)).is_some()); - assert!(Crowdloan::funds(ParaId::from(2001)).is_none()); + assert!(crowdloan::Funds::::get(ParaId::from(2000)).is_some()); + assert!(crowdloan::Funds::::get(ParaId::from(2001)).is_none()); // New leases will start on block 400 let lease_start_block = 400; run_to_block(lease_start_block); // Slots are won by Para 1 - assert!(!Slots::lease(ParaId::from(2000)).is_empty()); - assert!(Slots::lease(ParaId::from(2001)).is_empty()); + assert!(!slots::Leases::::get(ParaId::from(2000)).is_empty()); + assert!(slots::Leases::::get(ParaId::from(2001)).is_empty()); // 2 sessions later it is a parachain run_to_block(lease_start_block + 20); @@ -986,11 +986,11 @@ fn basic_swap_works() { assert_eq!(Balances::reserved_balance(&account_id(1)), crowdloan_deposit); assert_eq!(Balances::reserved_balance(&account_id(2)), para_id_deposit + code_deposit + 20); // Crowdloan ownership is swapped - assert!(Crowdloan::funds(ParaId::from(2000)).is_none()); - assert!(Crowdloan::funds(ParaId::from(2001)).is_some()); + assert!(crowdloan::Funds::::get(ParaId::from(2000)).is_none()); + assert!(crowdloan::Funds::::get(ParaId::from(2001)).is_some()); // Slot is swapped - assert!(Slots::lease(ParaId::from(2000)).is_empty()); - assert!(!Slots::lease(ParaId::from(2001)).is_empty()); + assert!(slots::Leases::::get(ParaId::from(2000)).is_empty()); + assert!(!slots::Leases::::get(ParaId::from(2001)).is_empty()); // Cant dissolve assert_noop!( @@ -1061,7 +1061,9 @@ fn parachain_swap_works() { assert_eq!(Paras::lifecycle(ParaId::from(2001)), Some(ParaLifecycle::Onboarding)); assert_eq!( - Balances::total_balance(&Crowdloan::fund_account_id(Crowdloan::next_fund_index())), + Balances::total_balance(&Crowdloan::fund_account_id( + crowdloan::NextFundIndex::::get() + )), 0 ); @@ -1090,7 +1092,7 @@ fn parachain_swap_works() { end, // Block End None, )); - let winner_fund = Crowdloan::funds(ParaId::from(winner)).unwrap(); + let winner_fund = crowdloan::Funds::::get(ParaId::from(winner)).unwrap(); let crowdloan_account = Crowdloan::fund_account_id(winner_fund.fund_index); // Bunch of contributions @@ -1107,7 +1109,7 @@ fn parachain_swap_works() { run_to_block(end); // Crowdloan is appropriately set - assert!(Crowdloan::funds(ParaId::from(winner)).is_some()); + assert!(crowdloan::Funds::::get(ParaId::from(winner)).is_some()); // New leases will start on block lease period index * 100 let lease_start_block = lease_period_index_start * 100; @@ -1116,8 +1118,8 @@ fn parachain_swap_works() { start_auction(4u32, 2000, 200); // Slots are won by Para 1 - assert!(!Slots::lease(ParaId::from(2000)).is_empty()); - assert!(Slots::lease(ParaId::from(2001)).is_empty()); + assert!(!slots::Leases::::get(ParaId::from(2000)).is_empty()); + assert!(slots::Leases::::get(ParaId::from(2001)).is_empty()); // 2 sessions later it is a parachain run_to_block(4 * 100 + 20); @@ -1127,8 +1129,8 @@ fn parachain_swap_works() { // Let's repeat the process now for another parachain. start_auction(6u32, 2001, 500); // Slots are won by Para 1 - assert!(!Slots::lease(ParaId::from(2000)).is_empty()); - assert!(!Slots::lease(ParaId::from(2001)).is_empty()); + assert!(!slots::Leases::::get(ParaId::from(2000)).is_empty()); + assert!(!slots::Leases::::get(ParaId::from(2001)).is_empty()); // 2 sessions later it is a parachain run_to_block(6 * 100 + 20); @@ -1145,22 +1147,22 @@ fn parachain_swap_works() { assert_eq!(slots::Leases::::get(ParaId::from(2000)).len(), 6); assert_eq!(slots::Leases::::get(ParaId::from(2001)).len(), 8); - let fund_2000 = Crowdloan::funds(ParaId::from(2000)).unwrap(); + let fund_2000 = crowdloan::Funds::::get(ParaId::from(2000)).unwrap(); assert_eq!(fund_2000.fund_index, 0); assert_eq!( Balances::reserved_balance(&Crowdloan::fund_account_id(fund_2000.fund_index)), fund_2000.raised ); - let fund_2001 = Crowdloan::funds(ParaId::from(2001)).unwrap(); + let fund_2001 = crowdloan::Funds::::get(ParaId::from(2001)).unwrap(); assert_eq!(fund_2001.fund_index, 1); assert_eq!( Balances::reserved_balance(&Crowdloan::fund_account_id(fund_2001.fund_index)), fund_2001.raised ); - assert_eq!(Slots::lease(ParaId::from(2000)).len(), 6); - assert_eq!(Slots::lease(ParaId::from(2001)).len(), 8); + assert_eq!(slots::Leases::::get(ParaId::from(2000)).len(), 6); + assert_eq!(slots::Leases::::get(ParaId::from(2001)).len(), 8); // Now we swap them. assert_ok!(Registrar::swap( @@ -1182,14 +1184,14 @@ fn parachain_swap_works() { )); // Crowdloan Swapped - let fund_2000 = Crowdloan::funds(ParaId::from(2000)).unwrap(); + let fund_2000 = crowdloan::Funds::::get(ParaId::from(2000)).unwrap(); assert_eq!(fund_2000.fund_index, 1); assert_eq!( Balances::reserved_balance(&Crowdloan::fund_account_id(fund_2000.fund_index)), fund_2000.raised ); - let fund_2001 = Crowdloan::funds(ParaId::from(2001)).unwrap(); + let fund_2001 = crowdloan::Funds::::get(ParaId::from(2001)).unwrap(); assert_eq!(fund_2001.fund_index, 0); assert_eq!( Balances::reserved_balance(&Crowdloan::fund_account_id(fund_2001.fund_index)), @@ -1197,8 +1199,8 @@ fn parachain_swap_works() { ); // Slots Swapped - assert_eq!(Slots::lease(ParaId::from(2000)).len(), 8); - assert_eq!(Slots::lease(ParaId::from(2001)).len(), 6); + assert_eq!(slots::Leases::::get(ParaId::from(2000)).len(), 8); + assert_eq!(slots::Leases::::get(ParaId::from(2001)).len(), 6); }) } @@ -1263,7 +1265,7 @@ fn crowdloan_ending_period_bid() { 200, // Block End None, )); - let fund = Crowdloan::funds(ParaId::from(2000)).unwrap(); + let fund = crowdloan::Funds::::get(ParaId::from(2000)).unwrap(); let crowdloan_account = Crowdloan::fund_account_id(fund.fund_index); // Bunch of contributions @@ -1297,7 +1299,7 @@ fn crowdloan_ending_period_bid() { winning[SlotRange::ZeroThree as u8 as usize] = Some((crowdloan_account.clone(), ParaId::from(2000), total)); - assert_eq!(Auctions::winning(0), Some(winning)); + assert_eq!(auctions::Winning::::get(0), Some(winning)); run_to_block(ends_at + 1); @@ -1310,7 +1312,7 @@ fn crowdloan_ending_period_bid() { winning[SlotRange::ZeroOne as u8 as usize] = Some((account_id(2), ParaId::from(2001), 900)); winning[SlotRange::ZeroThree as u8 as usize] = Some((crowdloan_account.clone(), ParaId::from(2000), total + 900)); - assert_eq!(Auctions::winning(2), Some(winning)); + assert_eq!(auctions::Winning::::get(2), Some(winning)); }) } @@ -1615,7 +1617,7 @@ fn cant_bid_on_existing_lease_periods() { 400, // Long block end None, )); - let fund = Crowdloan::funds(ParaId::from(2000)).unwrap(); + let fund = crowdloan::Funds::::get(ParaId::from(2000)).unwrap(); let crowdloan_account = Crowdloan::fund_account_id(fund.fund_index); // Bunch of contributions @@ -1656,7 +1658,7 @@ fn cant_bid_on_existing_lease_periods() { // Poke the crowdloan into `NewRaise` assert_ok!(Crowdloan::poke(signed(1), ParaId::from(2000))); - assert_eq!(Crowdloan::new_raise(), vec![ParaId::from(2000)]); + assert_eq!(crowdloan::NewRaise::::get(), vec![ParaId::from(2000)]); // Beginning of ending block. run_to_block(starting_block + 100); diff --git a/polkadot/runtime/common/src/paras_registrar/mod.rs b/polkadot/runtime/common/src/paras_registrar/mod.rs index 7abe23917e4c648acc1c7d47428416f447ff61b2..cc949c9d3f626407b77590b35d44177a847fedae 100644 --- a/polkadot/runtime/common/src/paras_registrar/mod.rs +++ b/polkadot/runtime/common/src/paras_registrar/mod.rs @@ -462,7 +462,7 @@ impl Registrar for Pallet { // All lease holding parachains. Ordered ascending by ParaId. On-demand parachains are not // included. fn parachains() -> Vec { - paras::Pallet::::parachains() + paras::Parachains::::get() } // Return if a para is a parathread (on-demand parachain) @@ -530,14 +530,14 @@ impl Registrar for Pallet { #[cfg(any(feature = "runtime-benchmarks", test))] fn worst_head_data() -> HeadData { - let max_head_size = configuration::Pallet::::config().max_head_data_size; + let max_head_size = configuration::ActiveConfig::::get().max_head_data_size; assert!(max_head_size > 0, "max_head_data can't be zero for generating worst head data."); vec![0u8; max_head_size as usize].into() } #[cfg(any(feature = "runtime-benchmarks", test))] fn worst_validation_code() -> ValidationCode { - let max_code_size = configuration::Pallet::::config().max_code_size; + let max_code_size = configuration::ActiveConfig::::get().max_code_size; assert!(max_code_size > 0, "max_code_size can't be zero for generating worst code data."); let validation_code = vec![0u8; max_code_size as usize]; validation_code.into() @@ -667,7 +667,7 @@ impl Pallet { validation_code: ValidationCode, para_kind: ParaKind, ) -> Result<(ParaGenesisArgs, BalanceOf), sp_runtime::DispatchError> { - let config = configuration::Pallet::::config(); + let config = configuration::ActiveConfig::::get(); ensure!(validation_code.0.len() >= MIN_CODE_SIZE as usize, Error::::InvalidCode); ensure!(validation_code.0.len() <= config.max_code_size as usize, Error::::CodeTooLarge); ensure!( @@ -915,7 +915,7 @@ mod tests { } // Session change every 3 blocks. if (b + 1) % BLOCKS_PER_SESSION == 0 { - let session_index = shared::Pallet::::session_index() + 1; + let session_index = shared::CurrentSessionIndex::::get() + 1; let validators_pub_keys = VALIDATORS.iter().map(|v| v.public().into()).collect(); shared::Pallet::::set_session_index(session_index); @@ -947,11 +947,11 @@ mod tests { } fn max_code_size() -> u32 { - Configuration::config().max_code_size + configuration::ActiveConfig::::get().max_code_size } fn max_head_size() -> u32 { - Configuration::config().max_head_data_size + configuration::ActiveConfig::::get().max_head_data_size } #[test] diff --git a/polkadot/runtime/common/src/paras_sudo_wrapper.rs b/polkadot/runtime/common/src/paras_sudo_wrapper.rs index 4735c176329192abc586e1765b08a0712cbe6fc0..b56dc96af436d0bdd2e4c4313e426a6e7bfc2995 100644 --- a/polkadot/runtime/common/src/paras_sudo_wrapper.rs +++ b/polkadot/runtime/common/src/paras_sudo_wrapper.rs @@ -146,9 +146,9 @@ pub mod pallet { xcm: Box, ) -> DispatchResult { ensure_root(origin)?; - ensure!(>::is_valid_para(id), Error::::ParaDoesntExist); - let config = >::config(); - >::queue_downward_message(&config, id, xcm.encode()).map_err(|e| match e + ensure!(paras::Pallet::::is_valid_para(id), Error::::ParaDoesntExist); + let config = configuration::ActiveConfig::::get(); + dmp::Pallet::::queue_downward_message(&config, id, xcm.encode()).map_err(|e| match e { dmp::QueueDownwardMessageError::ExceedsMaxMessageSize => Error::::ExceedsMaxMessageSize.into(), @@ -170,13 +170,13 @@ pub mod pallet { ) -> DispatchResult { ensure_root(origin)?; - >::init_open_channel( + hrmp::Pallet::::init_open_channel( sender, recipient, max_capacity, max_message_size, )?; - >::accept_open_channel(recipient, sender)?; + hrmp::Pallet::::accept_open_channel(recipient, sender)?; Ok(()) } } diff --git a/polkadot/runtime/common/src/slots/mod.rs b/polkadot/runtime/common/src/slots/mod.rs index a54aaa53f8c9255752587f741fac794eaf0d47f5..738569ff4416c0049ca134e5ea94cf5e9245f81d 100644 --- a/polkadot/runtime/common/src/slots/mod.rs +++ b/polkadot/runtime/common/src/slots/mod.rs @@ -114,7 +114,6 @@ pub mod pallet { /// /// It is illegal for a `None` value to trail in the list. #[pallet::storage] - #[pallet::getter(fn lease)] pub type Leases = StorageMap<_, Twox64Concat, ParaId, Vec)>>, ValueQuery>; diff --git a/polkadot/runtime/common/src/xcm_sender.rs b/polkadot/runtime/common/src/xcm_sender.rs index 4bbf6a14a40a8a797a1fd184e7387251af7e1ec2..0cbc2e603c8e776b2377f15569a2c38934753967 100644 --- a/polkadot/runtime/common/src/xcm_sender.rs +++ b/polkadot/runtime/common/src/xcm_sender.rs @@ -116,11 +116,11 @@ where // Downward message passing. let xcm = msg.take().ok_or(MissingArgument)?; - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let para = id.into(); let price = P::price_for_delivery(para, &xcm); let blob = W::wrap_version(&d, xcm).map_err(|()| DestinationUnsupported)?.encode(); - >::can_queue_downward_message(&config, ¶, &blob) + dmp::Pallet::::can_queue_downward_message(&config, ¶, &blob) .map_err(Into::::into)?; Ok(((config, para, blob), price)) @@ -130,7 +130,7 @@ where (config, para, blob): (HostConfiguration>, ParaId, Vec), ) -> Result { let hash = sp_io::hashing::blake2_256(&blob[..]); - >::queue_downward_message(&config, para, blob) + dmp::Pallet::::queue_downward_message(&config, para, blob) .map(|()| hash) .map_err(|_| SendError::Transport(&"Error placing into DMP queue")) } diff --git a/polkadot/runtime/parachains/src/assigner_coretime/mod.rs b/polkadot/runtime/parachains/src/assigner_coretime/mod.rs index e2da89fadd4800f5de32650178766e1ed85bbd17..1e821dd86846824719f6d84f0bdc0e19222ddd84 100644 --- a/polkadot/runtime/parachains/src/assigner_coretime/mod.rs +++ b/polkadot/runtime/parachains/src/assigner_coretime/mod.rs @@ -256,7 +256,7 @@ pub mod pallet { impl AssignmentProvider> for Pallet { fn pop_assignment_for_core(core_idx: CoreIndex) -> Option { - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); CoreDescriptors::::mutate(core_idx, |core_state| { Self::ensure_workload(now, core_idx, core_state); @@ -324,7 +324,7 @@ impl AssignmentProvider> for Pallet { } fn session_core_count() -> u32 { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); config.scheduler_params.num_cores } } @@ -473,7 +473,7 @@ impl AssignCoretime for Pallet { let current_block = frame_system::Pallet::::block_number(); // Add a new core and assign the para to it. - let mut config = >::config(); + let mut config = configuration::ActiveConfig::::get(); let core = config.scheduler_params.num_cores; config.scheduler_params.num_cores.saturating_inc(); diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs b/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs index 8589ddc292bdd6b886934341b758cc1b9ed2d1aa..50e5e1daf41a56bb6bb191d0e2205d2cc9bb8b52 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs @@ -56,7 +56,7 @@ mod v1 { let mut weight: Weight = Weight::zero(); // Migrate the current traffic value - let config = >::config(); + let config = configuration::ActiveConfig::::get(); QueueStatus::::mutate(|mut queue_status| { Pallet::::update_spot_traffic(&config, &mut queue_status); diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs b/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs index 26951f34252cb61d4c9a436ad981164003064895..598a0f10970067a67186098019e6f067798df2da 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs @@ -386,7 +386,7 @@ pub mod pallet { #[pallet::hooks] impl Hooks> for Pallet { fn on_initialize(_now: BlockNumberFor) -> Weight { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); // We need to update the spot traffic on block initialize in order to account for idle // blocks. QueueStatus::::mutate(|queue_status| { @@ -551,7 +551,7 @@ where para_id: ParaId, existence_requirement: ExistenceRequirement, ) -> DispatchResult { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); QueueStatus::::mutate(|queue_status| { Self::update_spot_traffic(&config, queue_status); diff --git a/polkadot/runtime/parachains/src/assigner_parachains.rs b/polkadot/runtime/parachains/src/assigner_parachains.rs index b5f342563e9763e9dba0fa8cbc7afd8e84dc59da..e79facd1fef0856ba7933b1d03901e2e0d397b12 100644 --- a/polkadot/runtime/parachains/src/assigner_parachains.rs +++ b/polkadot/runtime/parachains/src/assigner_parachains.rs @@ -46,7 +46,7 @@ pub mod pallet { impl AssignmentProvider> for Pallet { fn pop_assignment_for_core(core_idx: CoreIndex) -> Option { - >::parachains() + paras::Parachains::::get() .get(core_idx.0 as usize) .copied() .map(Assignment::Bulk) diff --git a/polkadot/runtime/parachains/src/builder.rs b/polkadot/runtime/parachains/src/builder.rs index e29c2e218ed9be39415b7b7a5dc6504424e0bea3..d1e2bc392febe67deeda2f545387665435e42eaa 100644 --- a/polkadot/runtime/parachains/src/builder.rs +++ b/polkadot/runtime/parachains/src/builder.rs @@ -201,7 +201,7 @@ impl BenchBuilder { /// Maximum number of validators that may be part of a validator group. pub(crate) fn fallback_max_validators() -> u32 { - configuration::Pallet::::config().max_validators.unwrap_or(200) + configuration::ActiveConfig::::get().max_validators.unwrap_or(200) } /// Maximum number of validators participating in parachains consensus (a.k.a. active @@ -220,7 +220,7 @@ impl BenchBuilder { /// Maximum number of validators per core (a.k.a. max validators per group). This value is used /// if none is explicitly set on the builder. pub(crate) fn fallback_max_validators_per_core() -> u32 { - configuration::Pallet::::config() + configuration::ActiveConfig::::get() .scheduler_params .max_validators_per_core .unwrap_or(5) @@ -268,7 +268,7 @@ impl BenchBuilder { } fn mock_head_data() -> HeadData { - let max_head_size = configuration::Pallet::::config().max_head_data_size; + let max_head_size = configuration::ActiveConfig::::get().max_head_data_size; HeadData(vec![0xFF; max_head_size as usize]) } @@ -459,19 +459,16 @@ impl BenchBuilder { &Digest { logs: Vec::new() }, ); - assert_eq!(>::session_index(), target_session); + assert_eq!(shared::CurrentSessionIndex::::get(), target_session); // We need to refetch validators since they have been shuffled. - let validators_shuffled = session_info::Pallet::::session_info(target_session) - .unwrap() - .validators - .clone(); + let validators_shuffled = + session_info::Sessions::::get(target_session).unwrap().validators.clone(); self.validators = Some(validators_shuffled); self.block_number = block_number; self.session = target_session; - - assert_eq!(paras::Pallet::::parachains().len(), total_cores - extra_cores); + assert_eq!(paras::Parachains::::get().len(), total_cores - extra_cores); self } @@ -550,7 +547,7 @@ impl BenchBuilder { ) -> Vec> { let validators = self.validators.as_ref().expect("must have some validators prior to calling"); - let config = configuration::Pallet::::config(); + let config = configuration::ActiveConfig::::get(); let mut current_core_idx = 0u32; paras_with_backed_candidates @@ -664,7 +661,7 @@ impl BenchBuilder { // Check if the elastic scaling bit is set, if so we need to supply the core // index in the generated candidate. - let core_idx = configuration::Pallet::::config() + let core_idx = configuration::ActiveConfig::::get() .node_features .get(FeatureIndex::ElasticScalingMVP as usize) .map(|_the_bit| core_idx); @@ -821,7 +818,7 @@ impl BenchBuilder { // Mark all the used cores as occupied. We expect that there are // `backed_and_concluding_paras` that are pending availability and that there are // `used_cores - backed_and_concluding_paras ` which are about to be disputed. - let now = >::block_number() + One::one(); + let now = frame_system::Pallet::::block_number() + One::one(); let mut core_idx = 0u32; let elastic_paras = &builder.elastic_paras; @@ -831,7 +828,7 @@ impl BenchBuilder { .flat_map(|(para_id, _)| { (0..elastic_paras.get(¶_id).cloned().unwrap_or(1)) .map(|_para_local_core_idx| { - let ttl = configuration::Pallet::::config().scheduler_params.ttl; + let ttl = configuration::ActiveConfig::::get().scheduler_params.ttl; // Load an assignment into provider so that one is present to pop let assignment = ::AssignmentProvider::get_mock_assignment( @@ -854,7 +851,7 @@ impl BenchBuilder { .flat_map(|para_id| { (0..elastic_paras.get(¶_id).cloned().unwrap_or(1)) .filter_map(|_para_local_core_idx| { - let ttl = configuration::Pallet::::config().scheduler_params.ttl; + let ttl = configuration::ActiveConfig::::get().scheduler_params.ttl; // Load an assignment into provider so that one is present to pop let assignment = ::AssignmentProvider::get_mock_assignment( diff --git a/polkadot/runtime/parachains/src/configuration.rs b/polkadot/runtime/parachains/src/configuration.rs index 33061b789dc4e480abe6dec72840276d00a4f8c2..b5dad6c6e864ba94854e3b56198c75f894f89ce7 100644 --- a/polkadot/runtime/parachains/src/configuration.rs +++ b/polkadot/runtime/parachains/src/configuration.rs @@ -540,8 +540,7 @@ pub mod pallet { /// The active configuration for the current session. #[pallet::storage] #[pallet::whitelist_storage] - #[pallet::getter(fn config)] - pub(crate) type ActiveConfig = + pub type ActiveConfig = StorageValue<_, HostConfiguration>, ValueQuery>; /// Pending configuration changes. @@ -1311,7 +1310,7 @@ impl Pallet { pub(crate) fn initializer_on_new_session( session_index: &SessionIndex, ) -> SessionChangeOutcome> { - let pending_configs = >::get(); + let pending_configs = PendingConfigs::::get(); let prev_config = ActiveConfig::::get(); // No pending configuration changes, so we're done. @@ -1338,7 +1337,7 @@ impl Pallet { ActiveConfig::::put(new_config); } - >::put(future); + PendingConfigs::::put(future); SessionChangeOutcome { prev_config, new_config } } @@ -1373,7 +1372,7 @@ impl Pallet { pub(crate) fn schedule_config_update( updater: impl FnOnce(&mut HostConfiguration>), ) -> DispatchResult { - let mut pending_configs = >::get(); + let mut pending_configs = PendingConfigs::::get(); // 1. pending_configs = [] No pending configuration changes. // @@ -1404,7 +1403,7 @@ impl Pallet { let mut base_config = pending_configs .last() .map(|(_, config)| config.clone()) - .unwrap_or_else(Self::config); + .unwrap_or_else(ActiveConfig::::get); let base_config_consistent = base_config.check_consistency().is_ok(); // Now, we need to decide what the new configuration should be. @@ -1456,7 +1455,7 @@ impl Pallet { pending_configs.push((scheduled_session, new_config)); } - >::put(pending_configs); + PendingConfigs::::put(pending_configs); Ok(()) } diff --git a/polkadot/runtime/parachains/src/configuration/tests.rs b/polkadot/runtime/parachains/src/configuration/tests.rs index 254511231cac1729981706775bb9f844ca9f1c5c..239b466fde3970babec24ad109a22e16be2c9066 100644 --- a/polkadot/runtime/parachains/src/configuration/tests.rs +++ b/polkadot/runtime/parachains/src/configuration/tests.rs @@ -15,7 +15,10 @@ // along with Polkadot. If not, see . use super::*; -use crate::mock::{new_test_ext, Configuration, ParasShared, RuntimeOrigin, Test}; +use crate::{ + configuration, + mock::{new_test_ext, Configuration, ParasShared, RuntimeOrigin, Test}, +}; use bitvec::{bitvec, prelude::Lsb0}; use frame_support::{assert_err, assert_noop, assert_ok}; @@ -30,7 +33,7 @@ fn on_new_session(session_index: SessionIndex) -> (HostConfiguration, HostC #[test] fn default_is_consistent() { new_test_ext(Default::default()).execute_with(|| { - Configuration::config().panic_if_not_consistent(); + configuration::ActiveConfig::::get().panic_if_not_consistent(); }); } @@ -63,7 +66,7 @@ fn initializer_on_new_session() { #[test] fn config_changes_after_2_session_boundary() { new_test_ext(Default::default()).execute_with(|| { - let old_config = Configuration::config(); + let old_config = configuration::ActiveConfig::::get(); let mut config = old_config.clone(); config.validation_upgrade_delay = 100; assert!(old_config != config); @@ -72,18 +75,18 @@ fn config_changes_after_2_session_boundary() { // Verify that the current configuration has not changed and that there is a scheduled // change for the SESSION_DELAY sessions in advance. - assert_eq!(Configuration::config(), old_config); + assert_eq!(configuration::ActiveConfig::::get(), old_config); assert_eq!(PendingConfigs::::get(), vec![(2, config.clone())]); on_new_session(1); // One session has passed, we should be still waiting for the pending configuration. - assert_eq!(Configuration::config(), old_config); + assert_eq!(configuration::ActiveConfig::::get(), old_config); assert_eq!(PendingConfigs::::get(), vec![(2, config.clone())]); on_new_session(2); - assert_eq!(Configuration::config(), config); + assert_eq!(configuration::ActiveConfig::::get(), config); assert_eq!(PendingConfigs::::get(), vec![]); }) } @@ -91,7 +94,7 @@ fn config_changes_after_2_session_boundary() { #[test] fn consecutive_changes_within_one_session() { new_test_ext(Default::default()).execute_with(|| { - let old_config = Configuration::config(); + let old_config = configuration::ActiveConfig::::get(); let mut config = old_config.clone(); config.validation_upgrade_delay = 100; config.validation_upgrade_cooldown = 100; @@ -99,17 +102,17 @@ fn consecutive_changes_within_one_session() { assert_ok!(Configuration::set_validation_upgrade_delay(RuntimeOrigin::root(), 100)); assert_ok!(Configuration::set_validation_upgrade_cooldown(RuntimeOrigin::root(), 100)); - assert_eq!(Configuration::config(), old_config); + assert_eq!(configuration::ActiveConfig::::get(), old_config); assert_eq!(PendingConfigs::::get(), vec![(2, config.clone())]); on_new_session(1); - assert_eq!(Configuration::config(), old_config); + assert_eq!(configuration::ActiveConfig::::get(), old_config); assert_eq!(PendingConfigs::::get(), vec![(2, config.clone())]); on_new_session(2); - assert_eq!(Configuration::config(), config); + assert_eq!(configuration::ActiveConfig::::get(), config); assert_eq!(PendingConfigs::::get(), vec![]); }); } @@ -117,7 +120,7 @@ fn consecutive_changes_within_one_session() { #[test] fn pending_next_session_but_we_upgrade_once_more() { new_test_ext(Default::default()).execute_with(|| { - let initial_config = Configuration::config(); + let initial_config = configuration::ActiveConfig::::get(); let intermediate_config = HostConfiguration { validation_upgrade_delay: 100, ..initial_config.clone() }; let final_config = HostConfiguration { @@ -127,7 +130,7 @@ fn pending_next_session_but_we_upgrade_once_more() { }; assert_ok!(Configuration::set_validation_upgrade_delay(RuntimeOrigin::root(), 100)); - assert_eq!(Configuration::config(), initial_config); + assert_eq!(configuration::ActiveConfig::::get(), initial_config); assert_eq!(PendingConfigs::::get(), vec![(2, intermediate_config.clone())]); on_new_session(1); @@ -137,7 +140,7 @@ fn pending_next_session_but_we_upgrade_once_more() { assert_ok!(Configuration::set_validation_upgrade_cooldown(RuntimeOrigin::root(), 99)); // This should result in yet another configuration change scheduled. - assert_eq!(Configuration::config(), initial_config); + assert_eq!(configuration::ActiveConfig::::get(), initial_config); assert_eq!( PendingConfigs::::get(), vec![(2, intermediate_config.clone()), (3, final_config.clone())] @@ -145,12 +148,12 @@ fn pending_next_session_but_we_upgrade_once_more() { on_new_session(2); - assert_eq!(Configuration::config(), intermediate_config); + assert_eq!(configuration::ActiveConfig::::get(), intermediate_config); assert_eq!(PendingConfigs::::get(), vec![(3, final_config.clone())]); on_new_session(3); - assert_eq!(Configuration::config(), final_config); + assert_eq!(configuration::ActiveConfig::::get(), final_config); assert_eq!(PendingConfigs::::get(), vec![]); }); } @@ -158,7 +161,7 @@ fn pending_next_session_but_we_upgrade_once_more() { #[test] fn scheduled_session_config_update_while_next_session_pending() { new_test_ext(Default::default()).execute_with(|| { - let initial_config = Configuration::config(); + let initial_config = configuration::ActiveConfig::::get(); let intermediate_config = HostConfiguration { validation_upgrade_delay: 100, ..initial_config.clone() }; let final_config = HostConfiguration { @@ -169,7 +172,7 @@ fn scheduled_session_config_update_while_next_session_pending() { }; assert_ok!(Configuration::set_validation_upgrade_delay(RuntimeOrigin::root(), 100)); - assert_eq!(Configuration::config(), initial_config); + assert_eq!(configuration::ActiveConfig::::get(), initial_config); assert_eq!(PendingConfigs::::get(), vec![(2, intermediate_config.clone())]); on_new_session(1); @@ -180,7 +183,7 @@ fn scheduled_session_config_update_while_next_session_pending() { assert_ok!(Configuration::set_code_retention_period(RuntimeOrigin::root(), 98)); // This should result in yet another configuration change scheduled. - assert_eq!(Configuration::config(), initial_config); + assert_eq!(configuration::ActiveConfig::::get(), initial_config); assert_eq!( PendingConfigs::::get(), vec![(2, intermediate_config.clone()), (3, final_config.clone())] @@ -188,12 +191,12 @@ fn scheduled_session_config_update_while_next_session_pending() { on_new_session(2); - assert_eq!(Configuration::config(), intermediate_config); + assert_eq!(configuration::ActiveConfig::::get(), intermediate_config); assert_eq!(PendingConfigs::::get(), vec![(3, final_config.clone())]); on_new_session(3); - assert_eq!(Configuration::config(), final_config); + assert_eq!(configuration::ActiveConfig::::get(), final_config); assert_eq!(PendingConfigs::::get(), vec![]); }); } @@ -261,14 +264,14 @@ fn consistency_bypass_works() { assert_ok!(Configuration::set_max_code_size(RuntimeOrigin::root(), MAX_CODE_SIZE + 1)); assert_eq!( - Configuration::config().max_code_size, + configuration::ActiveConfig::::get().max_code_size, HostConfiguration::::default().max_code_size ); on_new_session(1); on_new_session(2); - assert_eq!(Configuration::config().max_code_size, MAX_CODE_SIZE + 1); + assert_eq!(configuration::ActiveConfig::::get().max_code_size, MAX_CODE_SIZE + 1); }); } diff --git a/polkadot/runtime/parachains/src/coretime/migration.rs b/polkadot/runtime/parachains/src/coretime/migration.rs index 193a5e46b999a8286cea232e0891e7810b60d35f..72eda1ea3f3cd03a50c595a4b36b6188cca81aaa 100644 --- a/polkadot/runtime/parachains/src/coretime/migration.rs +++ b/polkadot/runtime/parachains/src/coretime/migration.rs @@ -113,7 +113,7 @@ mod v_coretime { } let legacy_paras = paras::Parachains::::get(); - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let total_core_count = config.scheduler_params.num_cores + legacy_paras.len() as u32; let dmp_queue_size = @@ -156,9 +156,9 @@ mod v_coretime { SendXcm: xcm::v4::SendXcm, LegacyLease: GetLegacyLease>, >() -> Weight { - let legacy_paras = paras::Pallet::::parachains(); + let legacy_paras = paras::Parachains::::get(); let legacy_count = legacy_paras.len() as u32; - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); for (core, para_id) in legacy_paras.into_iter().enumerate() { let r = assigner_coretime::Pallet::::assign_core( CoreIndex(core as u32), @@ -175,7 +175,7 @@ mod v_coretime { } } - let config = >::config(); + let config = configuration::ActiveConfig::::get(); // num_cores was on_demand_cores until now: for on_demand in 0..config.scheduler_params.num_cores { let core = CoreIndex(legacy_count.saturating_add(on_demand as _)); @@ -212,7 +212,7 @@ mod v_coretime { SendXcm: xcm::v4::SendXcm, LegacyLease: GetLegacyLease>, >() -> result::Result<(), SendError> { - let legacy_paras = paras::Pallet::::parachains(); + let legacy_paras = paras::Parachains::::get(); let legacy_paras_count = legacy_paras.len(); let (system_chains, lease_holding): (Vec<_>, Vec<_>) = legacy_paras.into_iter().partition(IsSystem::is_system); @@ -246,8 +246,10 @@ mod v_coretime { Some(mk_coretime_call(crate::coretime::CoretimeCalls::SetLease(p.into(), time_slice))) }); - let core_count: u16 = - configuration::Pallet::::config().scheduler_params.num_cores.saturated_into(); + let core_count: u16 = configuration::ActiveConfig::::get() + .scheduler_params + .num_cores + .saturated_into(); let set_core_count = iter::once(mk_coretime_call( crate::coretime::CoretimeCalls::NotifyCoreCount(core_count), )); diff --git a/polkadot/runtime/parachains/src/disputes.rs b/polkadot/runtime/parachains/src/disputes.rs index 8bba97ce4bccd23b91a3d2dd31b1d71f99e7b5a2..62e02e67157d9e0e84de995dae18ee14143488a5 100644 --- a/polkadot/runtime/parachains/src/disputes.rs +++ b/polkadot/runtime/parachains/src/disputes.rs @@ -432,8 +432,7 @@ pub mod pallet { /// and its value indicates the last valid block number in the chain. /// It can only be set back to `None` by governance intervention. #[pallet::storage] - #[pallet::getter(fn last_valid_block)] - pub(super) type Frozen = StorageValue<_, Option>, ValueQuery>; + pub type Frozen = StorageValue<_, Option>, ValueQuery>; #[pallet::event] #[pallet::generate_deposit(pub fn deposit_event)] @@ -865,7 +864,7 @@ impl Pallet { pub(crate) fn initializer_on_new_session( notification: &SessionChangeNotification>, ) { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); if notification.session_index <= config.dispute_period + 1 { return @@ -883,14 +882,14 @@ impl Pallet { for to_prune in to_prune { // This should be small, as disputes are rare, so `None` is fine. #[allow(deprecated)] - >::remove_prefix(to_prune, None); + Disputes::::remove_prefix(to_prune, None); #[allow(deprecated)] - >::remove_prefix(to_prune, None); + BackersOnDisputes::::remove_prefix(to_prune, None); // This is larger, and will be extracted to the `shared` pallet for more proper // pruning. TODO: https://github.com/paritytech/polkadot/issues/3469 #[allow(deprecated)] - >::remove_prefix(to_prune, None); + Included::::remove_prefix(to_prune, None); } *last_pruned = Some(pruning_target); @@ -910,7 +909,7 @@ impl Pallet { pub(crate) fn process_checked_multi_dispute_data( statement_sets: &CheckedMultiDisputeStatementSet, ) -> Result, DispatchError> { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let mut fresh = Vec::with_capacity(statement_sets.len()); for statement_set in statement_sets { @@ -943,22 +942,22 @@ impl Pallet { // Dispute statement sets on any dispute which concluded // before this point are to be rejected. - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); let oldest_accepted = now.saturating_sub(post_conclusion_acceptance_period); // Load session info to access validators - let session_info = match >::session_info(set.session) { + let session_info = match session_info::Sessions::::get(set.session) { Some(s) => s, None => return StatementSetFilter::RemoveAll, }; - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let n_validators = session_info.validators.len(); // Check for ancient. let dispute_state = { - if let Some(dispute_state) = >::get(&set.session, &set.candidate_hash) { + if let Some(dispute_state) = Disputes::::get(&set.session, &set.candidate_hash) { if dispute_state.concluded_at.as_ref().map_or(false, |c| c < &oldest_accepted) { return StatementSetFilter::RemoveAll } @@ -976,7 +975,7 @@ impl Pallet { }; let backers = - >::get(&set.session, &set.candidate_hash).unwrap_or_default(); + BackersOnDisputes::::get(&set.session, &set.candidate_hash).unwrap_or_default(); // Check and import all votes. let summary = { @@ -1061,13 +1060,13 @@ impl Pallet { ) -> Result { // Dispute statement sets on any dispute which concluded // before this point are to be rejected. - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); let oldest_accepted = now.saturating_sub(dispute_post_conclusion_acceptance_period); let set = set.as_ref(); // Load session info to access validators - let session_info = match >::session_info(set.session) { + let session_info = match session_info::Sessions::::get(set.session) { Some(s) => s, None => return Err(Error::::AncientDisputeStatement.into()), }; @@ -1076,7 +1075,7 @@ impl Pallet { // Check for ancient. let (fresh, dispute_state) = { - if let Some(dispute_state) = >::get(&set.session, &set.candidate_hash) { + if let Some(dispute_state) = Disputes::::get(&set.session, &set.candidate_hash) { ensure!( dispute_state.concluded_at.as_ref().map_or(true, |c| c >= &oldest_accepted), Error::::AncientDisputeStatement, @@ -1097,7 +1096,7 @@ impl Pallet { }; let backers = - >::get(&set.session, &set.candidate_hash).unwrap_or_default(); + BackersOnDisputes::::get(&set.session, &set.candidate_hash).unwrap_or_default(); // Import all votes. They were pre-checked. let summary = { @@ -1127,7 +1126,7 @@ impl Pallet { let backers = summary.backers; // Reject statements with no accompanying backing votes. ensure!(!backers.is_empty(), Error::::MissingBackingVotes); - >::insert(&set.session, &set.candidate_hash, backers.clone()); + BackersOnDisputes::::insert(&set.session, &set.candidate_hash, backers.clone()); // AUDIT: from now on, no error should be returned. let DisputeStatementSet { ref session, ref candidate_hash, .. } = set; @@ -1135,7 +1134,7 @@ impl Pallet { let candidate_hash = *candidate_hash; if fresh { - let is_local = >::contains_key(&session, &candidate_hash); + let is_local = Included::::contains_key(&session, &candidate_hash); Self::deposit_event(Event::DisputeInitiated( candidate_hash, @@ -1185,12 +1184,12 @@ impl Pallet { ); } - >::insert(&session, &candidate_hash, &summary.state); + Disputes::::insert(&session, &candidate_hash, &summary.state); // Freeze if the INVALID votes against some local candidate are above the byzantine // threshold if summary.new_flags.contains(DisputeStateFlags::AGAINST_BYZANTINE) { - if let Some(revert_to) = >::get(&session, &candidate_hash) { + if let Some(revert_to) = Included::::get(&session, &candidate_hash) { Self::revert_and_freeze(revert_to); } } @@ -1201,7 +1200,7 @@ impl Pallet { #[allow(unused)] pub(crate) fn disputes() -> Vec<(SessionIndex, CandidateHash, DisputeState>)> { - >::iter().collect() + Disputes::::iter().collect() } pub(crate) fn note_included( @@ -1215,9 +1214,9 @@ impl Pallet { let revert_to = included_in - One::one(); - >::insert(&session, &candidate_hash, revert_to); + Included::::insert(&session, &candidate_hash, revert_to); - if let Some(state) = >::get(&session, candidate_hash) { + if let Some(state) = Disputes::::get(&session, candidate_hash) { if has_supermajority_against(&state) { Self::revert_and_freeze(revert_to); } @@ -1228,22 +1227,22 @@ impl Pallet { session: SessionIndex, candidate_hash: CandidateHash, ) -> Option> { - >::get(session, candidate_hash) + Included::::get(session, candidate_hash) } pub(crate) fn concluded_invalid(session: SessionIndex, candidate_hash: CandidateHash) -> bool { - >::get(&session, &candidate_hash).map_or(false, |dispute| { + Disputes::::get(&session, &candidate_hash).map_or(false, |dispute| { // A dispute that has concluded with supermajority-against. has_supermajority_against(&dispute) }) } pub(crate) fn is_frozen() -> bool { - Self::last_valid_block().is_some() + Frozen::::get().is_some() } pub(crate) fn revert_and_freeze(revert_to: BlockNumberFor) { - if Self::last_valid_block().map_or(true, |last| last > revert_to) { + if Frozen::::get().map_or(true, |last| last > revert_to) { Frozen::::set(Some(revert_to)); // The `Revert` log is about reverting a block, not reverting to a block. diff --git a/polkadot/runtime/parachains/src/disputes/slashing.rs b/polkadot/runtime/parachains/src/disputes/slashing.rs index 9f8fa1239187c0c95bca38a1a4a9d46dcd645c45..d0c74e4bc958320fca78231129dd6e8e135e0179 100644 --- a/polkadot/runtime/parachains/src/disputes/slashing.rs +++ b/polkadot/runtime/parachains/src/disputes/slashing.rs @@ -187,13 +187,13 @@ where validators: impl IntoIterator, ) -> Option>> { // We use `ValidatorSet::session_index` and not - // `shared::Pallet::session_index()` because at the first block of a new era, + // `shared::CurrentSessionIndex::::get()` because at the first block of a new era, // the `IdentificationOf` of a validator in the previous session might be // missing, while `shared` pallet would return the same session index as being // updated at the end of the block. let current_session = T::ValidatorSet::session_index(); if session_index == current_session { - let account_keys = crate::session_info::Pallet::::account_keys(session_index); + let account_keys = crate::session_info::AccountKeys::::get(session_index); let account_ids = account_keys.defensive_unwrap_or_default(); let fully_identified = validators @@ -232,7 +232,7 @@ where return } - let session_info = crate::session_info::Pallet::::session_info(session_index); + let session_info = crate::session_info::Sessions::::get(session_index); let session_info = match session_info.defensive_proof(DEFENSIVE_PROOF) { Some(info) => info, None => return, @@ -544,7 +544,7 @@ impl Pallet { // fine. const REMOVE_LIMIT: u32 = u32::MAX; - let config = >::config(); + let config = crate::configuration::ActiveConfig::::get(); if session_index <= config.dispute_period + 1 { return } diff --git a/polkadot/runtime/parachains/src/disputes/slashing/benchmarking.rs b/polkadot/runtime/parachains/src/disputes/slashing/benchmarking.rs index f075ce5ca737d7597c4ed5d664050e08b9d28bf8..42a64725160c31746f9f1fe02b8239befd106a1e 100644 --- a/polkadot/runtime/parachains/src/disputes/slashing/benchmarking.rs +++ b/polkadot/runtime/parachains/src/disputes/slashing/benchmarking.rs @@ -83,8 +83,8 @@ where } initializer::Pallet::::on_finalize(BlockNumberFor::::one()); - let session_index = crate::shared::Pallet::::session_index(); - let session_info = crate::session_info::Pallet::::session_info(session_index); + let session_index = crate::shared::CurrentSessionIndex::::get(); + let session_info = crate::session_info::Sessions::::get(session_index); let session_info = session_info.unwrap(); let validator_id = session_info.validators.get(ValidatorIndex::from(0)).unwrap().clone(); let key = (PARACHAIN_KEY_TYPE_ID, validator_id.clone()); @@ -95,7 +95,7 @@ where pallet_session::Pallet::::rotate_session(); initializer::Pallet::::on_finalize(BlockNumberFor::::one()); - let idx = crate::shared::Pallet::::session_index(); + let idx = crate::shared::CurrentSessionIndex::::get(); assert!( idx > session_index, "session rotation should work for parachain pallets: {} <= {}", diff --git a/polkadot/runtime/parachains/src/disputes/tests.rs b/polkadot/runtime/parachains/src/disputes/tests.rs index 1f3f00132d680ce16b9fdf65e21a5af92f89caea..16b4fa3a9f1a6b551cb94ff56dd3ba8ac53323f6 100644 --- a/polkadot/runtime/parachains/src/disputes/tests.rs +++ b/polkadot/runtime/parachains/src/disputes/tests.rs @@ -37,7 +37,7 @@ const VOTE_AGAINST: VoteKind = VoteKind::Invalid; const VOTE_BACKING: VoteKind = VoteKind::Backing; fn filter_dispute_set(stmts: MultiDisputeStatementSet) -> CheckedMultiDisputeStatementSet { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let post_conclusion_acceptance_period = config.dispute_post_conclusion_acceptance_period; stmts @@ -1985,7 +1985,7 @@ fn deduplication_and_sorting_works() { fn apply_filter_all>( sets: I, ) -> Vec { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let post_conclusion_acceptance_period = config.dispute_post_conclusion_acceptance_period; let mut acc = Vec::::new(); @@ -2203,7 +2203,7 @@ fn filter_removes_concluded_ancient() { let candidate_hash_a = CandidateHash(sp_core::H256::repeat_byte(1)); let candidate_hash_b = CandidateHash(sp_core::H256::repeat_byte(2)); - >::insert( + Disputes::::insert( &1, &candidate_hash_a, DisputeState { @@ -2214,7 +2214,7 @@ fn filter_removes_concluded_ancient() { }, ); - >::insert( + Disputes::::insert( &1, &candidate_hash_b, DisputeState { diff --git a/polkadot/runtime/parachains/src/dmp.rs b/polkadot/runtime/parachains/src/dmp.rs index 15147e9210e21c6ced17d5904e60b4a633f7e902..354b16cc3f082f2f74ad276e8139e21d4094c4cc 100644 --- a/polkadot/runtime/parachains/src/dmp.rs +++ b/polkadot/runtime/parachains/src/dmp.rs @@ -226,7 +226,7 @@ impl Pallet { } let inbound = - InboundDownwardMessage { msg, sent_at: >::block_number() }; + InboundDownwardMessage { msg, sent_at: frame_system::Pallet::::block_number() }; // obtain the new link in the MQC and update the head. DownwardMessageQueueHeads::::mutate(para, |head| { @@ -346,14 +346,14 @@ impl FeeTracker for Pallet { } fn increase_fee_factor(id: Self::Id, message_size_factor: FixedU128) -> FixedU128 { - >::mutate(id, |f| { + DeliveryFeeFactor::::mutate(id, |f| { *f = f.saturating_mul(EXPONENTIAL_FEE_BASE.saturating_add(message_size_factor)); *f }) } fn decrease_fee_factor(id: Self::Id) -> FixedU128 { - >::mutate(id, |f| { + DeliveryFeeFactor::::mutate(id, |f| { *f = InitialFactor::get().max(*f / EXPONENTIAL_FEE_BASE); *f }) diff --git a/polkadot/runtime/parachains/src/dmp/tests.rs b/polkadot/runtime/parachains/src/dmp/tests.rs index f9197b156a1e1d901d55344d6b3439f39d2afbf8..f39d7ae167330be3a32b9454c449373515ac28bc 100644 --- a/polkadot/runtime/parachains/src/dmp/tests.rs +++ b/polkadot/runtime/parachains/src/dmp/tests.rs @@ -17,7 +17,7 @@ use super::*; use crate::{ configuration::ActiveConfig, - mock::{new_test_ext, Configuration, Dmp, MockGenesisConfig, Paras, System, Test}, + mock::{new_test_ext, Dmp, MockGenesisConfig, Paras, System, Test}, }; use frame_support::assert_ok; use hex_literal::hex; @@ -58,7 +58,7 @@ fn queue_downward_message( para_id: ParaId, msg: DownwardMessage, ) -> Result<(), QueueDownwardMessageError> { - Dmp::queue_downward_message(&Configuration::config(), para_id, msg) + Dmp::queue_downward_message(&configuration::ActiveConfig::::get(), para_id, msg) } #[test] diff --git a/polkadot/runtime/parachains/src/hrmp.rs b/polkadot/runtime/parachains/src/hrmp.rs index d62533dc919b8157253be249e092c505861f1a8e..05a540aef828b95b602439c89d6e44ad95c3174a 100644 --- a/polkadot/runtime/parachains/src/hrmp.rs +++ b/polkadot/runtime/parachains/src/hrmp.rs @@ -597,7 +597,7 @@ pub mod pallet { Error::::WrongWitness ); - let host_config = configuration::Pallet::::config(); + let host_config = configuration::ActiveConfig::::get(); Self::process_hrmp_open_channel_requests(&host_config); Ok(()) } @@ -724,7 +724,7 @@ pub mod pallet { Error::::ChannelCreationNotAuthorized ); - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let max_message_size = config.hrmp_channel_max_message_size; let max_capacity = config.hrmp_channel_max_capacity; @@ -761,7 +761,7 @@ pub mod pallet { let channel_id = HrmpChannelId { sender, recipient }; let is_system = sender.is_system() || recipient.is_system(); - let config = >::config(); + let config = configuration::ActiveConfig::::get(); // Channels with and amongst the system do not require a deposit. let (new_sender_deposit, new_recipient_deposit) = if is_system { @@ -840,7 +840,7 @@ pub mod pallet { } fn initialize_storage(preopen_hrmp_channels: &[(ParaId, ParaId, u32, u32)]) { - let host_config = configuration::Pallet::::config(); + let host_config = configuration::ActiveConfig::::get(); for &(sender, recipient, max_capacity, max_message_size) in preopen_hrmp_channels { if let Err(err) = preopen_hrmp_channel::(sender, recipient, max_capacity, max_message_size) @@ -848,7 +848,7 @@ fn initialize_storage(preopen_hrmp_channels: &[(ParaId, ParaId, u32, panic!("failed to initialize the genesis storage: {:?}", err); } } - >::process_hrmp_open_channel_requests(&host_config); + Pallet::::process_hrmp_open_channel_requests(&host_config); } fn preopen_hrmp_channel( @@ -857,8 +857,8 @@ fn preopen_hrmp_channel( max_capacity: u32, max_message_size: u32, ) -> DispatchResult { - >::init_open_channel(sender, recipient, max_capacity, max_message_size)?; - >::accept_open_channel(recipient, sender)?; + Pallet::::init_open_channel(sender, recipient, max_capacity, max_message_size)?; + Pallet::::accept_open_channel(recipient, sender)?; Ok(()) } @@ -1018,8 +1018,8 @@ impl Pallet { let recipient_deposit = if system_channel { 0 } else { config.hrmp_recipient_deposit }; if request.confirmed { - if >::is_valid_para(channel_id.sender) && - >::is_valid_para(channel_id.recipient) + if paras::Pallet::::is_valid_para(channel_id.sender) && + paras::Pallet::::is_valid_para(channel_id.recipient) { HrmpChannels::::insert( &channel_id, @@ -1310,7 +1310,7 @@ impl Pallet { /// Returns the amount of weight consumed. pub(crate) fn queue_outbound_hrmp(sender: ParaId, out_hrmp_msgs: HorizontalMessages) -> Weight { let mut weight = Weight::zero(); - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); for out_msg in out_hrmp_msgs { let channel_id = HrmpChannelId { sender, recipient: out_msg.recipient }; @@ -1387,11 +1387,11 @@ impl Pallet { ) -> DispatchResult { ensure!(origin != recipient, Error::::OpenHrmpChannelToSelf); ensure!( - >::is_valid_para(recipient), + paras::Pallet::::is_valid_para(recipient), Error::::OpenHrmpChannelInvalidRecipient, ); - let config = >::config(); + let config = configuration::ActiveConfig::::get(); ensure!(proposed_max_capacity > 0, Error::::OpenHrmpChannelZeroCapacity); ensure!( proposed_max_capacity <= config.hrmp_channel_max_capacity, @@ -1459,7 +1459,7 @@ impl Pallet { .encode() }; if let Err(dmp::QueueDownwardMessageError::ExceedsMaxMessageSize) = - >::queue_downward_message(&config, recipient, notification_bytes) + dmp::Pallet::::queue_downward_message(&config, recipient, notification_bytes) { // this should never happen unless the max downward message size is configured to a // jokingly small number. @@ -1485,7 +1485,7 @@ impl Pallet { // check if by accepting this open channel request, this parachain would exceed the // number of inbound channels. - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let channel_num_limit = config.hrmp_max_parachain_inbound_channels; let ingress_cnt = HrmpIngressChannelsIndex::::decode_len(&origin).unwrap_or(0) as u32; let accepted_cnt = HrmpAcceptedChannelRequestCount::::get(&origin); @@ -1517,7 +1517,7 @@ impl Pallet { VersionedXcm::from(xcm).encode() }; if let Err(dmp::QueueDownwardMessageError::ExceedsMaxMessageSize) = - >::queue_downward_message(&config, sender, notification_bytes) + dmp::Pallet::::queue_downward_message(&config, sender, notification_bytes) { // this should never happen unless the max downward message size is configured to an // jokingly small number. @@ -1580,7 +1580,7 @@ impl Pallet { HrmpCloseChannelRequests::::insert(&channel_id, ()); HrmpCloseChannelRequestsList::::append(channel_id.clone()); - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let notification_bytes = { use parity_scale_codec::Encode as _; use xcm::opaque::{latest::prelude::*, VersionedXcm}; @@ -1595,7 +1595,7 @@ impl Pallet { let opposite_party = if origin == channel_id.sender { channel_id.recipient } else { channel_id.sender }; if let Err(dmp::QueueDownwardMessageError::ExceedsMaxMessageSize) = - >::queue_downward_message(&config, opposite_party, notification_bytes) + dmp::Pallet::::queue_downward_message(&config, opposite_party, notification_bytes) { // this should never happen unless the max downward message size is configured to an // jokingly small number. diff --git a/polkadot/runtime/parachains/src/hrmp/benchmarking.rs b/polkadot/runtime/parachains/src/hrmp/benchmarking.rs index 0251811d4960e412d9b80e18f8b17e6b94fcbd25..13f4cdfe3eeaf767f6c04bab6a627610db16939d 100644 --- a/polkadot/runtime/parachains/src/hrmp/benchmarking.rs +++ b/polkadot/runtime/parachains/src/hrmp/benchmarking.rs @@ -71,7 +71,7 @@ fn establish_para_connection( where ::RuntimeOrigin: From, { - let config = Configuration::::config(); + let config = configuration::ActiveConfig::::get(); let ed = T::Currency::minimum_balance(); let deposit: BalanceOf = config.hrmp_sender_deposit.unique_saturated_into(); let capacity = config.hrmp_channel_max_capacity; @@ -111,7 +111,7 @@ where return output } - Hrmp::::process_hrmp_open_channel_requests(&Configuration::::config()); + Hrmp::::process_hrmp_open_channel_requests(&configuration::ActiveConfig::::get()); if matches!(until, ParachainSetupStep::Established) { return output } @@ -156,13 +156,14 @@ mod benchmarks { // make sure para is registered, and has enough balance. let ed = T::Currency::minimum_balance(); - let deposit: BalanceOf = - Configuration::::config().hrmp_sender_deposit.unique_saturated_into(); + let deposit: BalanceOf = configuration::ActiveConfig::::get() + .hrmp_sender_deposit + .unique_saturated_into(); register_parachain_with_balance::(sender_id, deposit + ed); register_parachain_with_balance::(recipient_id, deposit + ed); - let capacity = Configuration::::config().hrmp_channel_max_capacity; - let message_size = Configuration::::config().hrmp_channel_max_message_size; + let capacity = configuration::ActiveConfig::::get().hrmp_channel_max_capacity; + let message_size = configuration::ActiveConfig::::get().hrmp_channel_max_message_size; #[extrinsic_call] _(sender_origin, recipient_id, capacity, message_size); @@ -228,7 +229,7 @@ mod benchmarks { // .. and enact it. Configuration::::initializer_on_new_session(&Shared::::scheduled_session()); - let config = Configuration::::config(); + let config = configuration::ActiveConfig::::get(); let deposit: BalanceOf = config.hrmp_sender_deposit.unique_saturated_into(); let para: ParaId = 1u32.into(); @@ -360,7 +361,7 @@ mod benchmarks { assert_eq!(HrmpOpenChannelRequestsList::::decode_len().unwrap_or_default() as u32, c); let outgoing = (0..c).map(|id| (id + PREFIX_1).into()).collect::>(); - let config = Configuration::::config(); + let config = configuration::ActiveConfig::::get(); #[block] { @@ -383,13 +384,14 @@ mod benchmarks { // Make sure para is registered. The sender does actually need the normal deposit because it // is first going the "init" route. let ed = T::Currency::minimum_balance(); - let sender_deposit: BalanceOf = - Configuration::::config().hrmp_sender_deposit.unique_saturated_into(); + let sender_deposit: BalanceOf = configuration::ActiveConfig::::get() + .hrmp_sender_deposit + .unique_saturated_into(); register_parachain_with_balance::(sender_id, sender_deposit + ed); register_parachain_with_balance::(recipient_id, Zero::zero()); - let capacity = Configuration::::config().hrmp_channel_max_capacity; - let message_size = Configuration::::config().hrmp_channel_max_message_size; + let capacity = configuration::ActiveConfig::::get().hrmp_channel_max_capacity; + let message_size = configuration::ActiveConfig::::get().hrmp_channel_max_message_size; let channel_id = HrmpChannelId { sender: sender_id, recipient: recipient_id }; if c == 1 { @@ -436,7 +438,7 @@ mod benchmarks { let recipient_id: ParaId = 2u32.into(); let caller: T::AccountId = whitelisted_caller(); - let config = Configuration::::config(); + let config = configuration::ActiveConfig::::get(); // make sure para is registered, and has zero balance. register_parachain_with_balance::(sender_id, Zero::zero()); @@ -466,7 +468,7 @@ mod benchmarks { let channel_id = HrmpChannelId { sender: sender_id, recipient: recipient_id }; let caller: T::AccountId = whitelisted_caller(); - let config = Configuration::::config(); + let config = configuration::ActiveConfig::::get(); // make sure para is registered, and has balance to reserve. let ed = T::Currency::minimum_balance(); diff --git a/polkadot/runtime/parachains/src/hrmp/tests.rs b/polkadot/runtime/parachains/src/hrmp/tests.rs index 162c1412160139ce66f6b03c0fde9b6d55e95401..8d43b866bc19767ad3308c4f9730c1ad894d4c0c 100644 --- a/polkadot/runtime/parachains/src/hrmp/tests.rs +++ b/polkadot/runtime/parachains/src/hrmp/tests.rs @@ -19,17 +19,20 @@ // both paras are system chains, then they are also configured to the system's max configuration. use super::*; -use crate::mock::{ - deregister_parachain, new_test_ext, register_parachain, register_parachain_with_balance, - Configuration, Hrmp, MockGenesisConfig, Paras, ParasShared, RuntimeEvent as MockEvent, - RuntimeOrigin, System, Test, +use crate::{ + mock::{ + deregister_parachain, new_test_ext, register_parachain, register_parachain_with_balance, + Hrmp, MockGenesisConfig, Paras, ParasShared, RuntimeEvent as MockEvent, RuntimeOrigin, + System, Test, + }, + shared, }; use frame_support::{assert_noop, assert_ok}; use primitives::BlockNumber; use std::collections::BTreeMap; pub(crate) fn run_to_block(to: BlockNumber, new_session: Option>) { - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); while System::block_number() < to { let b = System::block_number(); @@ -42,7 +45,7 @@ pub(crate) fn run_to_block(to: BlockNumber, new_session: Option let notification = crate::initializer::SessionChangeNotification { prev_config: config.clone(), new_config: config.clone(), - session_index: ParasShared::session_index() + 1, + session_index: shared::CurrentSessionIndex::::get() + 1, ..Default::default() }; @@ -412,7 +415,7 @@ fn poke_deposits_works() { register_parachain_with_balance(para_a, 200); register_parachain_with_balance(para_b, 200); - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); let channel_id = HrmpChannelId { sender: para_a, recipient: para_b }; // Our normal establishment won't actually reserve deposits, so just insert them directly. @@ -512,7 +515,7 @@ fn send_recv_messages() { vec![OutboundHrmpMessage { recipient: para_b, data: b"this is an emergency".to_vec() }] .try_into() .unwrap(); - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); assert!(Hrmp::check_outbound_hrmp(&config, para_a, &msgs).is_ok()); let _ = Hrmp::queue_outbound_hrmp(para_a, msgs); Hrmp::assert_storage_consistency_exhaustive(); @@ -621,7 +624,7 @@ fn check_sent_messages() { vec![OutboundHrmpMessage { recipient: para_b, data: b"knock".to_vec() }] .try_into() .unwrap(); - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); assert!(Hrmp::check_outbound_hrmp(&config, para_a, &msgs).is_ok()); let _ = Hrmp::queue_outbound_hrmp(para_a, msgs.clone()); @@ -912,7 +915,7 @@ fn watermark_maxed_out_at_relay_parent() { vec![OutboundHrmpMessage { recipient: para_b, data: b"this is an emergency".to_vec() }] .try_into() .unwrap(); - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); assert!(Hrmp::check_outbound_hrmp(&config, para_a, &msgs).is_ok()); let _ = Hrmp::queue_outbound_hrmp(para_a, msgs); Hrmp::assert_storage_consistency_exhaustive(); diff --git a/polkadot/runtime/parachains/src/inclusion/mod.rs b/polkadot/runtime/parachains/src/inclusion/mod.rs index 34afdec724a58f97db0c9f0691e29ea56e8aca97..9d60bbb23b6fae7f34b5b3152d01afe824c5936f 100644 --- a/polkadot/runtime/parachains/src/inclusion/mod.rs +++ b/polkadot/runtime/parachains/src/inclusion/mod.rs @@ -458,7 +458,7 @@ impl Pallet { ) { // unlike most drain methods, drained elements are not cleared on `Drop` of the iterator // and require consumption. - for _ in >::drain() {} + for _ in PendingAvailability::::drain() {} Self::cleanup_outgoing_ump_dispatch_queues(outgoing_paras); } @@ -506,9 +506,9 @@ impl Pallet { let mut freed_cores = vec![]; - let pending_paraids: Vec<_> = >::iter_keys().collect(); + let pending_paraids: Vec<_> = PendingAvailability::::iter_keys().collect(); for paraid in pending_paraids { - >::mutate(paraid, |candidates| { + PendingAvailability::::mutate(paraid, |candidates| { if let Some(candidates) = candidates { let mut last_enacted_index: Option = None; @@ -595,8 +595,8 @@ impl Pallet { return Ok(ProcessedCandidates::default()) } - let now = >::block_number(); - let validators = shared::Pallet::::active_validator_keys(); + let now = frame_system::Pallet::::block_number(); + let validators = shared::ActiveValidatorKeys::::get(); // Collect candidate receipts with backers. let mut candidate_receipt_with_backing_validator_indices = @@ -626,7 +626,7 @@ impl Pallet { // group assigned to core at block `N + 1`. Thus, // `relay_parent_number + 1` will always land in the current // session. - let group_idx = >::group_assigned_to_core( + let group_idx = scheduler::Pallet::::group_assigned_to_core( *core, relay_parent_number + One::one(), ) @@ -656,7 +656,7 @@ impl Pallet { core_indices.push((*core, *para_id)); // Update storage now - >::mutate(¶_id, |pending_availability| { + PendingAvailability::::mutate(¶_id, |pending_availability| { let new_candidate = CandidatePendingAvailability { core: *core, hash: candidate_hash, @@ -696,11 +696,11 @@ impl Pallet { // Get the latest backed output head data of this para. pub(crate) fn para_latest_head_data(para_id: &ParaId) -> Option { - match >::get(para_id).and_then(|pending_candidates| { + match PendingAvailability::::get(para_id).and_then(|pending_candidates| { pending_candidates.back().map(|x| x.commitments.head_data.clone()) }) { Some(head_data) => Some(head_data), - None => >::para_head(para_id), + None => paras::Heads::::get(para_id), } } @@ -710,12 +710,12 @@ impl Pallet { group_vals: Vec, core_index_enabled: bool, ) -> Result<(BitVec, Vec<(ValidatorIndex, ValidityAttestation)>), Error> { - let minimum_backing_votes = configuration::Pallet::::config().minimum_backing_votes; + let minimum_backing_votes = configuration::ActiveConfig::::get().minimum_backing_votes; let mut backers = bitvec::bitvec![u8, BitOrderLsb0; 0; validators.len()]; let signing_context = SigningContext { parent_hash: backed_candidate.descriptor().relay_parent, - session_index: shared::Pallet::::session_index(), + session_index: shared::CurrentSessionIndex::::get(), }; let (validator_indices, _) = @@ -773,7 +773,7 @@ impl Pallet { relay_parent_number: BlockNumberFor, validation_outputs: primitives::CandidateCommitments, ) -> bool { - let prev_context = >::para_most_recent_context(para_id); + let prev_context = paras::MostRecentContext::::get(para_id); let check_ctx = CandidateCheckContext::::new(prev_context); if check_ctx @@ -810,7 +810,7 @@ impl Pallet { ) -> Weight { let plain = receipt.to_plain(); let commitments = receipt.commitments; - let config = >::config(); + let config = configuration::ActiveConfig::::get(); T::RewardValidators::reward_backing( backers @@ -832,9 +832,9 @@ impl Pallet { let mut weight = T::DbWeight::get().reads_writes(1, 0); if let Some(new_code) = commitments.new_validation_code { // Block number of candidate's inclusion. - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); - weight.saturating_add(>::schedule_code_upgrade( + weight.saturating_add(paras::Pallet::::schedule_code_upgrade( receipt.descriptor.para_id, new_code, now, @@ -844,7 +844,7 @@ impl Pallet { } // enact the messaging facet of the candidate. - weight.saturating_accrue(>::prune_dmq( + weight.saturating_accrue(dmp::Pallet::::prune_dmq( receipt.descriptor.para_id, commitments.processed_downward_messages, )); @@ -852,11 +852,11 @@ impl Pallet { receipt.descriptor.para_id, commitments.upward_messages.as_slice(), )); - weight.saturating_accrue(>::prune_hrmp( + weight.saturating_accrue(hrmp::Pallet::::prune_hrmp( receipt.descriptor.para_id, BlockNumberFor::::from(commitments.hrmp_watermark), )); - weight.saturating_accrue(>::queue_outbound_hrmp( + weight.saturating_accrue(hrmp::Pallet::::queue_outbound_hrmp( receipt.descriptor.para_id, commitments.horizontal_messages, )); @@ -868,7 +868,7 @@ impl Pallet { backing_group, )); - weight.saturating_add(>::note_new_head( + weight.saturating_add(paras::Pallet::::note_new_head( receipt.descriptor.para_id, commitments.head_data, relay_parent_number, @@ -887,7 +887,7 @@ impl Pallet { upward_messages: &[UpwardMessage], ) -> Result<(), UmpAcceptanceCheckErr> { // Cannot send UMP messages while off-boarding. - if >::is_offboarding(para) { + if paras::Pallet::::is_offboarding(para) { ensure!(upward_messages.is_empty(), UmpAcceptanceCheckErr::IsOffboarding); } @@ -975,7 +975,7 @@ impl Pallet { /// /// Returns a vector of cleaned-up core IDs. pub(crate) fn free_timedout() -> Vec { - let timeout_pred = >::availability_timeout_predicate(); + let timeout_pred = scheduler::Pallet::::availability_timeout_predicate(); let timed_out: Vec<_> = Self::free_failed_cores( |candidate| timeout_pred(candidate.backed_in_number).timed_out, @@ -1028,7 +1028,7 @@ impl Pallet { ) -> impl Iterator>> { let mut earliest_dropped_indices: BTreeMap = BTreeMap::new(); - for (para_id, pending_candidates) in >::iter() { + for (para_id, pending_candidates) in PendingAvailability::::iter() { // We assume that pending candidates are stored in dependency order. So we need to store // the earliest dropped candidate. All others that follow will get freed as well. let mut earliest_dropped_idx = None; @@ -1051,7 +1051,7 @@ impl Pallet { for (para_id, earliest_dropped_idx) in earliest_dropped_indices { // Do cleanups and record the cleaned up cores - >::mutate(¶_id, |record| { + PendingAvailability::::mutate(¶_id, |record| { if let Some(record) = record { let cleaned_up = record.drain(earliest_dropped_idx..); cleaned_up_cores.extend(cleaned_up); @@ -1070,7 +1070,7 @@ impl Pallet { /// them. This should generally not be used but it is useful during execution of Runtime APIs, /// where the changes to the state are expected to be discarded directly after. pub(crate) fn force_enact(para: ParaId) { - >::mutate(¶, |candidates| { + PendingAvailability::::mutate(¶, |candidates| { if let Some(candidates) = candidates { for candidate in candidates.drain(..) { let receipt = CommittedCandidateReceipt { @@ -1096,7 +1096,7 @@ impl Pallet { pub(crate) fn candidate_pending_availability( para: ParaId, ) -> Option> { - >::get(¶).and_then(|p| { + PendingAvailability::::get(¶).and_then(|p| { p.get(0).map(|p| CommittedCandidateReceipt { descriptor: p.descriptor.clone(), commitments: p.commitments.clone(), @@ -1109,7 +1109,7 @@ impl Pallet { pub(crate) fn pending_availability( para: ParaId, ) -> Option>> { - >::get(¶).and_then(|p| p.get(0).cloned()) + PendingAvailability::::get(¶).and_then(|p| p.get(0).cloned()) } /// Returns the metadata around the candidate pending availability occupying the supplied core, @@ -1118,7 +1118,7 @@ impl Pallet { para: ParaId, core: CoreIndex, ) -> Option>> { - >::get(¶) + PendingAvailability::::get(¶) .and_then(|p| p.iter().find(|c| c.core == core).cloned()) } } @@ -1156,7 +1156,7 @@ impl OnQueueChanged for Pallet { #[allow(deprecated)] well_known_keys::relay_dispatch_queue_size_typed(para).set((count, size)); - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let remaining_count = config.max_upward_queue_count.saturating_sub(count); let remaining_size = config.max_upward_queue_size.saturating_sub(size); well_known_keys::relay_dispatch_queue_remaining_capacity(para) @@ -1172,7 +1172,7 @@ pub(crate) struct CandidateCheckContext { impl CandidateCheckContext { pub(crate) fn new(prev_context: Option>) -> Self { - Self { config: >::config(), prev_context } + Self { config: configuration::ActiveConfig::::get(), prev_context } } /// Execute verification of the candidate. @@ -1221,7 +1221,7 @@ impl CandidateCheckContext { Error::::NotCollatorSigned, ); - let validation_code_hash = >::current_code_hash(para_id) + let validation_code_hash = paras::CurrentCodeHash::::get(para_id) // A candidate for a parachain without current validation code is not scheduled. .ok_or_else(|| Error::::UnscheduledCandidate)?; ensure!( @@ -1291,7 +1291,7 @@ impl CandidateCheckContext { // if any, the code upgrade attempt is allowed. if let Some(new_validation_code) = new_validation_code { ensure!( - >::can_upgrade_validation_code(para_id), + paras::Pallet::::can_upgrade_validation_code(para_id), AcceptanceCheckErr::PrematureCodeUpgrade, ); ensure!( @@ -1301,14 +1301,14 @@ impl CandidateCheckContext { } // check if the candidate passes the messaging acceptance criteria - >::check_processed_downward_messages( + dmp::Pallet::::check_processed_downward_messages( para_id, relay_parent_number, processed_downward_messages, )?; Pallet::::check_upward_messages(&self.config, para_id, upward_messages)?; - >::check_hrmp_watermark(para_id, relay_parent_number, hrmp_watermark)?; - >::check_outbound_hrmp(&self.config, para_id, horizontal_messages)?; + hrmp::Pallet::::check_hrmp_watermark(para_id, relay_parent_number, hrmp_watermark)?; + hrmp::Pallet::::check_outbound_hrmp(&self.config, para_id, horizontal_messages)?; Ok(()) } diff --git a/polkadot/runtime/parachains/src/inclusion/tests.rs b/polkadot/runtime/parachains/src/inclusion/tests.rs index 97bf67ef934ebc87486587fd7b68d5a7eddc12ef..c19bc6eb7bfc7eb8fcc13ad7de640990beeb4e40 100644 --- a/polkadot/runtime/parachains/src/inclusion/tests.rs +++ b/polkadot/runtime/parachains/src/inclusion/tests.rs @@ -19,8 +19,7 @@ use crate::{ configuration::HostConfiguration, initializer::SessionChangeNotification, mock::{ - new_test_ext, Configuration, MockGenesisConfig, ParaInclusion, Paras, ParasShared, - Scheduler, System, Test, + new_test_ext, MockGenesisConfig, ParaInclusion, Paras, ParasShared, Scheduler, System, Test, }, paras::{ParaGenesisArgs, ParaKind}, paras_inherent::DisputedBitfield, @@ -125,7 +124,7 @@ pub(crate) fn back_candidate( let mut validator_indices = bitvec::bitvec![u8, BitOrderLsb0; 0; group.len()]; let threshold = effective_minimum_backing_votes( group.len(), - configuration::Pallet::::config().minimum_backing_votes, + configuration::ActiveConfig::::get().minimum_backing_votes, ); let signing = match kind { @@ -182,9 +181,9 @@ pub(crate) fn back_candidate( pub(crate) fn run_to_block_default_notifications(to: BlockNumber, new_session: Vec) { run_to_block(to, |b| { new_session.contains(&b).then_some(SessionChangeNotification { - prev_config: Configuration::config(), - new_config: Configuration::config(), - session_index: ParasShared::session_index() + 1, + prev_config: configuration::ActiveConfig::::get(), + new_config: configuration::ActiveConfig::::get(), + session_index: shared::CurrentSessionIndex::::get() + 1, ..Default::default() }) }); @@ -224,7 +223,8 @@ pub(crate) fn run_to_block( } pub(crate) fn expected_bits() -> usize { - Paras::parachains().len() + Configuration::config().scheduler_params.num_cores as usize + paras::Parachains::::get().len() + + configuration::ActiveConfig::::get().scheduler_params.num_cores as usize } fn default_bitfield() -> AvailabilityBitfield { @@ -232,11 +232,11 @@ fn default_bitfield() -> AvailabilityBitfield { } fn default_availability_votes() -> BitVec { - bitvec::bitvec![u8, BitOrderLsb0; 0; ParasShared::active_validator_keys().len()] + bitvec::bitvec![u8, BitOrderLsb0; 0; shared::ActiveValidatorKeys::::get().len()] } fn default_backing_bitfield() -> BitVec { - bitvec::bitvec![u8, BitOrderLsb0; 0; ParasShared::active_validator_keys().len()] + bitvec::bitvec![u8, BitOrderLsb0; 0; shared::ActiveValidatorKeys::::get().len()] } fn backing_bitfield(v: &[usize]) -> BitVec { @@ -323,7 +323,7 @@ impl TestCandidateBuilder { } pub(crate) fn make_vdata_hash(para_id: ParaId) -> Option { - let relay_parent_number = >::block_number() - 1; + let relay_parent_number = frame_system::Pallet::::block_number() - 1; make_vdata_hash_with_block_number(para_id, relay_parent_number) } @@ -346,8 +346,8 @@ fn simple_sanitize_bitfields( expected_bits: usize, ) -> SignedAvailabilityBitfields { let parent_hash = frame_system::Pallet::::parent_hash(); - let session_index = shared::Pallet::::session_index(); - let validators = shared::Pallet::::active_validator_keys(); + let session_index = shared::CurrentSessionIndex::::get(); + let validators = shared::ActiveValidatorKeys::::get(); crate::paras_inherent::sanitize_bitfields::( unchecked_bitfields, @@ -362,7 +362,7 @@ fn simple_sanitize_bitfields( pub(crate) fn process_bitfields( signed_bitfields: SignedAvailabilityBitfields, ) -> Vec<(CoreIndex, CandidateHash)> { - let validators = shared::Pallet::::active_validator_keys(); + let validators = shared::ActiveValidatorKeys::::get(); ParaInclusion::update_pending_availability_and_get_freed_cores( &validators[..], @@ -412,12 +412,12 @@ fn free_timedout() { } }; - >::insert( + PendingAvailability::::insert( chain_a, [make_candidate(0, true)].into_iter().collect::>(), ); - >::insert( + PendingAvailability::::insert( &chain_b, [make_candidate(1, false)].into_iter().collect::>(), ); @@ -427,14 +427,14 @@ fn free_timedout() { c_candidates.push_back(make_candidate(2, true)); c_candidates.push_back(make_candidate(3, false)); - >::insert(&chain_c, c_candidates); + PendingAvailability::::insert(&chain_c, c_candidates); // 2 chained candidates. All are timed out. let mut d_candidates = VecDeque::new(); d_candidates.push_back(make_candidate(4, true)); d_candidates.push_back(make_candidate(5, true)); - >::insert(&chain_d, d_candidates); + PendingAvailability::::insert(&chain_d, d_candidates); // 3 chained candidates. The second one is timed out. The first one will remain in place. // With the current time out predicate this scenario is impossible. But this is not a @@ -444,7 +444,7 @@ fn free_timedout() { e_candidates.push_back(make_candidate(7, true)); e_candidates.push_back(make_candidate(8, false)); - >::insert(&chain_e, e_candidates); + PendingAvailability::::insert(&chain_e, e_candidates); // 3 chained candidates, none are timed out. let mut f_candidates = VecDeque::new(); @@ -452,16 +452,16 @@ fn free_timedout() { f_candidates.push_back(make_candidate(10, false)); f_candidates.push_back(make_candidate(11, false)); - >::insert(&chain_f, f_candidates); + PendingAvailability::::insert(&chain_f, f_candidates); run_to_block(5, |_| None); - assert_eq!(>::get(&chain_a).unwrap().len(), 1); - assert_eq!(>::get(&chain_b).unwrap().len(), 1); - assert_eq!(>::get(&chain_c).unwrap().len(), 2); - assert_eq!(>::get(&chain_d).unwrap().len(), 2); - assert_eq!(>::get(&chain_e).unwrap().len(), 3); - assert_eq!(>::get(&chain_f).unwrap().len(), 3); + assert_eq!(PendingAvailability::::get(&chain_a).unwrap().len(), 1); + assert_eq!(PendingAvailability::::get(&chain_b).unwrap().len(), 1); + assert_eq!(PendingAvailability::::get(&chain_c).unwrap().len(), 2); + assert_eq!(PendingAvailability::::get(&chain_d).unwrap().len(), 2); + assert_eq!(PendingAvailability::::get(&chain_e).unwrap().len(), 3); + assert_eq!(PendingAvailability::::get(&chain_f).unwrap().len(), 3); let timed_out_cores = ParaInclusion::free_timedout(); @@ -478,12 +478,12 @@ fn free_timedout() { ] ); - assert!(>::get(&chain_a).unwrap().is_empty()); - assert_eq!(>::get(&chain_b).unwrap().len(), 1); - assert!(>::get(&chain_c).unwrap().is_empty()); - assert!(>::get(&chain_d).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_a).unwrap().is_empty()); + assert_eq!(PendingAvailability::::get(&chain_b).unwrap().len(), 1); + assert!(PendingAvailability::::get(&chain_c).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_d).unwrap().is_empty()); assert_eq!( - >::get(&chain_e) + PendingAvailability::::get(&chain_e) .unwrap() .into_iter() .map(|c| c.core) @@ -491,7 +491,7 @@ fn free_timedout() { vec![CoreIndex(6)] ); assert_eq!( - >::get(&chain_f) + PendingAvailability::::get(&chain_f) .unwrap() .into_iter() .map(|c| c.core) @@ -548,13 +548,13 @@ fn free_disputed() { }; // Disputed - >::insert( + PendingAvailability::::insert( chain_a, [make_candidate(0)].into_iter().collect::>(), ); // Not disputed. - >::insert( + PendingAvailability::::insert( &chain_b, [make_candidate(1)].into_iter().collect::>(), ); @@ -564,14 +564,14 @@ fn free_disputed() { c_candidates.push_back(make_candidate(2)); c_candidates.push_back(make_candidate(3)); - >::insert(&chain_c, c_candidates); + PendingAvailability::::insert(&chain_c, c_candidates); // 2 chained candidates. All are disputed. let mut d_candidates = VecDeque::new(); d_candidates.push_back(make_candidate(4)); d_candidates.push_back(make_candidate(5)); - >::insert(&chain_d, d_candidates); + PendingAvailability::::insert(&chain_d, d_candidates); // 3 chained candidates. The second one is disputed. The first one will remain in place. let mut e_candidates = VecDeque::new(); @@ -579,7 +579,7 @@ fn free_disputed() { e_candidates.push_back(make_candidate(7)); e_candidates.push_back(make_candidate(8)); - >::insert(&chain_e, e_candidates); + PendingAvailability::::insert(&chain_e, e_candidates); // 3 chained candidates, none are disputed. let mut f_candidates = VecDeque::new(); @@ -587,16 +587,16 @@ fn free_disputed() { f_candidates.push_back(make_candidate(10)); f_candidates.push_back(make_candidate(11)); - >::insert(&chain_f, f_candidates); + PendingAvailability::::insert(&chain_f, f_candidates); run_to_block(5, |_| None); - assert_eq!(>::get(&chain_a).unwrap().len(), 1); - assert_eq!(>::get(&chain_b).unwrap().len(), 1); - assert_eq!(>::get(&chain_c).unwrap().len(), 2); - assert_eq!(>::get(&chain_d).unwrap().len(), 2); - assert_eq!(>::get(&chain_e).unwrap().len(), 3); - assert_eq!(>::get(&chain_f).unwrap().len(), 3); + assert_eq!(PendingAvailability::::get(&chain_a).unwrap().len(), 1); + assert_eq!(PendingAvailability::::get(&chain_b).unwrap().len(), 1); + assert_eq!(PendingAvailability::::get(&chain_c).unwrap().len(), 2); + assert_eq!(PendingAvailability::::get(&chain_d).unwrap().len(), 2); + assert_eq!(PendingAvailability::::get(&chain_e).unwrap().len(), 3); + assert_eq!(PendingAvailability::::get(&chain_f).unwrap().len(), 3); let disputed_candidates = [ CandidateHash(Hash::from_low_u64_be(0)), @@ -622,12 +622,12 @@ fn free_disputed() { ] ); - assert!(>::get(&chain_a).unwrap().is_empty()); - assert_eq!(>::get(&chain_b).unwrap().len(), 1); - assert!(>::get(&chain_c).unwrap().is_empty()); - assert!(>::get(&chain_d).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_a).unwrap().is_empty()); + assert_eq!(PendingAvailability::::get(&chain_b).unwrap().len(), 1); + assert!(PendingAvailability::::get(&chain_c).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_d).unwrap().is_empty()); assert_eq!( - >::get(&chain_e) + PendingAvailability::::get(&chain_e) .unwrap() .into_iter() .map(|c| c.core) @@ -635,7 +635,7 @@ fn free_disputed() { vec![CoreIndex(6)] ); assert_eq!( - >::get(&chain_f) + PendingAvailability::::get(&chain_f) .unwrap() .into_iter() .map(|c| c.core) @@ -779,7 +779,7 @@ fn bitfield_checks() { let mut bare_bitfield = default_bitfield(); let default_candidate = TestCandidateBuilder::default().build(); - >::insert( + PendingAvailability::::insert( chain_a, [CandidatePendingAvailability { core: CoreIndex::from(0), @@ -815,7 +815,7 @@ fn bitfield_checks() { let x = process_bitfields(checked_bitfields); assert!(x.is_empty(), "No core should be freed."); - >::remove(chain_a); + PendingAvailability::::remove(chain_a); } }); } @@ -877,7 +877,7 @@ fn supermajority_bitfields_trigger_availability() { } .build(); - >::insert( + PendingAvailability::::insert( chain_a, [CandidatePendingAvailability { core: CoreIndex::from(0), @@ -902,7 +902,7 @@ fn supermajority_bitfields_trigger_availability() { } .build(); - >::insert( + PendingAvailability::::insert( chain_b, [CandidatePendingAvailability { core: CoreIndex::from(1), @@ -975,7 +975,7 @@ fn supermajority_bitfields_trigger_availability() { commitments: candidate_c_3.commitments.clone(), }); - >::insert(chain_c, c_candidates); + PendingAvailability::::insert(chain_c, c_candidates); // this bitfield signals that a and b are available. let all_available = { @@ -1048,24 +1048,24 @@ fn supermajority_bitfields_trigger_availability() { votes }; - assert!(>::get(&chain_a).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_a).unwrap().is_empty()); assert_eq!( - >::get(&chain_b) + PendingAvailability::::get(&chain_b) .unwrap() .pop_front() .unwrap() .availability_votes, votes(&[0, 1, 2, 3]) ); - let mut pending_c = >::get(&chain_c).unwrap(); + let mut pending_c = PendingAvailability::::get(&chain_c).unwrap(); assert_eq!(pending_c.pop_front().unwrap().availability_votes, votes(&[0, 1, 2, 3])); assert_eq!(pending_c.pop_front().unwrap().availability_votes, votes(&[0, 1, 2, 3, 4])); assert!(pending_c.is_empty()); // and check that chain heads. - assert_eq!(Paras::para_head(&chain_a), Some(vec![1, 2, 3, 4].into())); - assert_ne!(Paras::para_head(&chain_b), Some(vec![5, 6, 7, 8].into())); - assert_eq!(Paras::para_head(&chain_c), Some(vec![7, 8].into())); + assert_eq!(paras::Heads::::get(&chain_a), Some(vec![1, 2, 3, 4].into())); + assert_ne!(paras::Heads::::get(&chain_b), Some(vec![5, 6, 7, 8].into())); + assert_eq!(paras::Heads::::get(&chain_c), Some(vec![7, 8].into())); // Check that rewards are applied. { @@ -1117,21 +1117,21 @@ fn supermajority_bitfields_trigger_availability() { v ); - assert!(>::get(&chain_a).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_a).unwrap().is_empty()); assert_eq!( - >::get(&chain_b) + PendingAvailability::::get(&chain_b) .unwrap() .pop_front() .unwrap() .availability_votes, votes(&[0, 1, 2, 3]) ); - assert!(>::get(&chain_c).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_c).unwrap().is_empty()); // and check that chain heads. - assert_eq!(Paras::para_head(&chain_a), Some(vec![1, 2, 3, 4].into())); - assert_ne!(Paras::para_head(&chain_b), Some(vec![5, 6, 7, 8].into())); - assert_eq!(Paras::para_head(&chain_c), Some(vec![11, 12].into())); + assert_eq!(paras::Heads::::get(&chain_a), Some(vec![1, 2, 3, 4].into())); + assert_ne!(paras::Heads::::get(&chain_b), Some(vec![5, 6, 7, 8].into())); + assert_eq!(paras::Heads::::get(&chain_c), Some(vec![11, 12].into())); // Check that rewards are applied. { @@ -1582,7 +1582,7 @@ fn candidate_checks() { ); { - let cfg = Configuration::config(); + let cfg = configuration::ActiveConfig::::get(); let expected_at = 10 + cfg.validation_upgrade_delay; assert_eq!(expected_at, 12); Paras::schedule_code_upgrade( @@ -1951,12 +1951,12 @@ fn backing_works() { let backers = { let num_backers = effective_minimum_backing_votes( group_validators(GroupIndex(0)).unwrap().len(), - configuration::Pallet::::config().minimum_backing_votes, + configuration::ActiveConfig::::get().minimum_backing_votes, ); backing_bitfield(&(0..num_backers).collect::>()) }; assert_eq!( - >::get(&chain_a), + PendingAvailability::::get(&chain_a), Some( [CandidatePendingAvailability { core: CoreIndex::from(0), @@ -1977,12 +1977,12 @@ fn backing_works() { let backers = { let num_backers = effective_minimum_backing_votes( group_validators(GroupIndex(0)).unwrap().len(), - configuration::Pallet::::config().minimum_backing_votes, + configuration::ActiveConfig::::get().minimum_backing_votes, ); backing_bitfield(&(0..num_backers).map(|v| v + 2).collect::>()) }; assert_eq!( - >::get(&chain_b), + PendingAvailability::::get(&chain_b), Some( [CandidatePendingAvailability { core: CoreIndex::from(1), @@ -2001,7 +2001,7 @@ fn backing_works() { ); assert_eq!( - >::get(&thread_a), + PendingAvailability::::get(&thread_a), Some( [CandidatePendingAvailability { core: CoreIndex::from(2), @@ -2244,12 +2244,12 @@ fn backing_works_with_elastic_scaling_mvp() { let backers = { let num_backers = effective_minimum_backing_votes( group_validators(GroupIndex(0)).unwrap().len(), - configuration::Pallet::::config().minimum_backing_votes, + configuration::ActiveConfig::::get().minimum_backing_votes, ); backing_bitfield(&(0..num_backers).collect::>()) }; assert_eq!( - >::get(&chain_a), + PendingAvailability::::get(&chain_a), Some( [CandidatePendingAvailability { core: CoreIndex::from(0), @@ -2269,7 +2269,7 @@ fn backing_works_with_elastic_scaling_mvp() { // Both candidates of b will be recorded on chain. assert_eq!( - >::get(&chain_b), + PendingAvailability::::get(&chain_b), Some( [ CandidatePendingAvailability { @@ -2395,12 +2395,12 @@ fn can_include_candidate_with_ok_code_upgrade() { let backers = { let num_backers = effective_minimum_backing_votes( group_validators(GroupIndex(0)).unwrap().len(), - configuration::Pallet::::config().minimum_backing_votes, + configuration::ActiveConfig::::get().minimum_backing_votes, ); backing_bitfield(&(0..num_backers).collect::>()) }; assert_eq!( - >::get(&chain_a), + PendingAvailability::::get(&chain_a), Some( [CandidatePendingAvailability { core: CoreIndex::from(0), @@ -2654,7 +2654,7 @@ fn session_change_wipes() { run_to_block(10, |_| None); let candidate = TestCandidateBuilder::default().build(); - >::insert( + PendingAvailability::::insert( &chain_a, [CandidatePendingAvailability { core: CoreIndex::from(0), @@ -2671,7 +2671,7 @@ fn session_change_wipes() { .collect::>(), ); - >::insert( + PendingAvailability::::insert( &chain_b, [CandidatePendingAvailability { core: CoreIndex::from(1), @@ -2690,10 +2690,10 @@ fn session_change_wipes() { run_to_block(11, |_| None); - assert_eq!(shared::Pallet::::session_index(), 5); + assert_eq!(shared::CurrentSessionIndex::::get(), 5); - assert!(>::get(&chain_a).is_some()); - assert!(>::get(&chain_b).is_some()); + assert!(PendingAvailability::::get(&chain_a).is_some()); + assert!(PendingAvailability::::get(&chain_b).is_some()); run_to_block(12, |n| match n { 12 => Some(SessionChangeNotification { @@ -2707,9 +2707,9 @@ fn session_change_wipes() { _ => None, }); - assert_eq!(shared::Pallet::::session_index(), 6); + assert_eq!(shared::CurrentSessionIndex::::get(), 6); - assert!(>::iter().collect::>().is_empty()); + assert!(PendingAvailability::::iter().collect::>().is_empty()); }); } @@ -2849,7 +2849,7 @@ fn para_upgrade_delay_scheduled_from_inclusion() { let v = process_bitfields(checked_bitfields); assert_eq!(vec![(CoreIndex(0), candidate_a.hash())], v); - assert!(>::get(&chain_a).unwrap().is_empty()); + assert!(PendingAvailability::::get(&chain_a).unwrap().is_empty()); let active_vote_state = paras::Pallet::::active_vote_state(&new_validation_code_hash) .expect("prechecking must be initiated"); diff --git a/polkadot/runtime/parachains/src/initializer.rs b/polkadot/runtime/parachains/src/initializer.rs index 3c8ab7c4726fe1687cebd7ca516584f6cd35e431..511d74421032e9e97028a90140189f97b1945599 100644 --- a/polkadot/runtime/parachains/src/initializer.rs +++ b/polkadot/runtime/parachains/src/initializer.rs @@ -341,15 +341,15 @@ impl OneSessionHandler for Pal where I: Iterator, { - >::on_new_session(false, 0, validators, None); + Pallet::::on_new_session(false, 0, validators, None); } fn on_new_session<'a, I: 'a>(changed: bool, validators: I, queued: I) where I: Iterator, { - let session_index = >::current_index(); - >::on_new_session(changed, session_index, validators, Some(queued)); + let session_index = pallet_session::Pallet::::current_index(); + Pallet::::on_new_session(changed, session_index, validators, Some(queued)); } fn on_disabled(_i: u32) {} diff --git a/polkadot/runtime/parachains/src/initializer/benchmarking.rs b/polkadot/runtime/parachains/src/initializer/benchmarking.rs index dd87ce9c9d974332bf7213ff3311fdb38adfbca9..ece41c726f04767fd7257cd8f016a209a9aecb66 100644 --- a/polkadot/runtime/parachains/src/initializer/benchmarking.rs +++ b/polkadot/runtime/parachains/src/initializer/benchmarking.rs @@ -27,12 +27,12 @@ benchmarks! { force_approve { let d in 0 .. DIGEST_MAX_LEN; for _ in 0 .. d { - >::deposit_log(ConsensusLog::ForceApprove(d).into()); + frame_system::Pallet::::deposit_log(ConsensusLog::ForceApprove(d).into()); } }: _(RawOrigin::Root, d + 1) verify { assert_eq!( - >::digest().logs.last().unwrap(), + frame_system::Pallet::::digest().logs.last().unwrap(), &DigestItem::from(ConsensusLog::ForceApprove(d + 1)), ); } diff --git a/polkadot/runtime/parachains/src/initializer/tests.rs b/polkadot/runtime/parachains/src/initializer/tests.rs index b0993d739fa9a9dbb22d25ee62861f37ce1152e2..e757e6b9d1178121b2c500e292d9433a53c7e98d 100644 --- a/polkadot/runtime/parachains/src/initializer/tests.rs +++ b/polkadot/runtime/parachains/src/initializer/tests.rs @@ -15,14 +15,14 @@ // along with Polkadot. If not, see . use super::*; -use crate::mock::{ - new_test_ext, Configuration, Dmp, Initializer, MockGenesisConfig, Paras, SessionInfo, System, - Test, +use crate::{ + mock::{new_test_ext, Dmp, Initializer, MockGenesisConfig, Paras, System, Test}, + paras::ParaKind, + session_info, }; use primitives::{HeadData, Id as ParaId}; use test_helpers::dummy_validation_code; -use crate::paras::ParaKind; use frame_support::{ assert_ok, traits::{OnFinalize, OnInitialize}, @@ -36,8 +36,8 @@ fn session_0_is_instantly_applied() { let v = BufferedSessionChanges::::get(); assert!(v.is_empty()); - assert_eq!(SessionInfo::earliest_stored_session(), 0); - assert!(SessionInfo::session_info(0).is_some()); + assert_eq!(session_info::EarliestStoredSession::::get(), 0); + assert!(session_info::Sessions::::get(0).is_some()); }); } @@ -116,9 +116,21 @@ fn scheduled_cleanup_performed() { }) .execute_with(|| { // enqueue downward messages to A, B and C. - assert_ok!(Dmp::queue_downward_message(&Configuration::config(), a, vec![1, 2, 3])); - assert_ok!(Dmp::queue_downward_message(&Configuration::config(), b, vec![4, 5, 6])); - assert_ok!(Dmp::queue_downward_message(&Configuration::config(), c, vec![7, 8, 9])); + assert_ok!(Dmp::queue_downward_message( + &configuration::ActiveConfig::::get(), + a, + vec![1, 2, 3] + )); + assert_ok!(Dmp::queue_downward_message( + &configuration::ActiveConfig::::get(), + b, + vec![4, 5, 6] + )); + assert_ok!(Dmp::queue_downward_message( + &configuration::ActiveConfig::::get(), + c, + vec![7, 8, 9] + )); assert_ok!(Paras::schedule_para_cleanup(a)); assert_ok!(Paras::schedule_para_cleanup(b)); diff --git a/polkadot/runtime/parachains/src/lib.rs b/polkadot/runtime/parachains/src/lib.rs index 466bc7685ddfb46d3e5dfa86d81cfa3f3baeadcd..97d6ab74904d5283bc60524adeaa1fab02a71f17 100644 --- a/polkadot/runtime/parachains/src/lib.rs +++ b/polkadot/runtime/parachains/src/lib.rs @@ -82,12 +82,12 @@ pub fn schedule_para_initialize( id: ParaId, genesis: paras::ParaGenesisArgs, ) -> Result<(), ()> { - >::schedule_para_initialize(id, genesis).map_err(|_| ()) + paras::Pallet::::schedule_para_initialize(id, genesis).map_err(|_| ()) } /// Schedule a para to be cleaned up at the start of the next session. pub fn schedule_para_cleanup(id: primitives::Id) -> Result<(), ()> { - >::schedule_para_cleanup(id).map_err(|_| ()) + paras::Pallet::::schedule_para_cleanup(id).map_err(|_| ()) } /// Schedule a parathread (on-demand parachain) to be upgraded to a lease holding parachain. diff --git a/polkadot/runtime/parachains/src/paras/benchmarking.rs b/polkadot/runtime/parachains/src/paras/benchmarking.rs index 77f6a9edddc8a34d1cfdbbf7b0a418fa118e9296..437c4091a98b58049a7cb3204f35079be8395ce0 100644 --- a/polkadot/runtime/parachains/src/paras/benchmarking.rs +++ b/polkadot/runtime/parachains/src/paras/benchmarking.rs @@ -68,7 +68,7 @@ pub(crate) fn generate_disordered_upgrades() { fn generate_disordered_actions_queue() { let mut queue = Vec::new(); - let next_session = shared::Pallet::::session_index().saturating_add(One::one()); + let next_session = shared::CurrentSessionIndex::::get().saturating_add(One::one()); for _ in 0..SAMPLE_SIZE { let id = ParaId::from(1000); @@ -140,7 +140,7 @@ benchmarks! { generate_disordered_actions_queue::(); }: _(RawOrigin::Root, para_id) verify { - let next_session = crate::shared::Pallet::::session_index().saturating_add(One::one()); + let next_session = crate::shared::CurrentSessionIndex::::get().saturating_add(One::one()); assert_last_event::(Event::ActionQueued(para_id, next_session).into()); } diff --git a/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs b/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs index 0bf5aa86c40f6ee18c9fe4072b08b26660f87256..9281332fdada8fa6078100586be9329430623fd4 100644 --- a/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs +++ b/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs @@ -133,7 +133,7 @@ where .collect::>(); // 1. Make sure PVF pre-checking is enabled in the config. - let config = configuration::Pallet::::config(); + let config = configuration::ActiveConfig::::get(); configuration::Pallet::::force_set_active_config(config.clone()); // 2. initialize a new session with deterministic validator set. @@ -176,7 +176,7 @@ where id, validation_code, /* relay_parent_number */ 1u32.into(), - &configuration::Pallet::::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); } else { @@ -202,7 +202,7 @@ fn generate_statements( where T: Config + shared::Config, { - let validators = ParasShared::::active_validator_keys(); + let validators = shared::ActiveValidatorKeys::::get(); let accept_threshold = primitives::supermajority_threshold(validators.len()); let required_votes = match vote_outcome { diff --git a/polkadot/runtime/parachains/src/paras/mod.rs b/polkadot/runtime/parachains/src/paras/mod.rs index 3eb66112fedf4c72c0708913bc51af1ccfea6b05..6f67c4b8c03da1278f45532b8c9b1a1db4cf427e 100644 --- a/polkadot/runtime/parachains/src/paras/mod.rs +++ b/polkadot/runtime/parachains/src/paras/mod.rs @@ -722,8 +722,7 @@ pub mod pallet { /// /// Consider using the [`ParachainsCache`] type of modifying. #[pallet::storage] - #[pallet::getter(fn parachains)] - pub(crate) type Parachains = StorageValue<_, Vec, ValueQuery>; + pub type Parachains = StorageValue<_, Vec, ValueQuery>; /// The current lifecycle of a all known Para IDs. #[pallet::storage] @@ -731,22 +730,17 @@ pub mod pallet { /// The head-data of every registered para. #[pallet::storage] - #[pallet::getter(fn para_head)] - pub(super) type Heads = StorageMap<_, Twox64Concat, ParaId, HeadData>; + pub type Heads = StorageMap<_, Twox64Concat, ParaId, HeadData>; /// The context (relay-chain block number) of the most recent parachain head. #[pallet::storage] - #[pallet::getter(fn para_most_recent_context)] - pub(super) type MostRecentContext = - StorageMap<_, Twox64Concat, ParaId, BlockNumberFor>; + pub type MostRecentContext = StorageMap<_, Twox64Concat, ParaId, BlockNumberFor>; /// The validation code hash of every live para. /// /// Corresponding code can be retrieved with [`CodeByHash`]. #[pallet::storage] - #[pallet::getter(fn current_code_hash)] - pub(super) type CurrentCodeHash = - StorageMap<_, Twox64Concat, ParaId, ValidationCodeHash>; + pub type CurrentCodeHash = StorageMap<_, Twox64Concat, ParaId, ValidationCodeHash>; /// Actual past code hash, indicated by the para id as well as the block number at which it /// became outdated. @@ -760,8 +754,7 @@ pub mod pallet { /// but we also keep their code on-chain for the same amount of time as outdated code /// to keep it available for approval checkers. #[pallet::storage] - #[pallet::getter(fn past_code_meta)] - pub(super) type PastCodeMeta = + pub type PastCodeMeta = StorageMap<_, Twox64Concat, ParaId, ParaPastCodeMeta>, ValueQuery>; /// Which paras have past code that needs pruning and the relay-chain block at which the code @@ -779,9 +772,7 @@ pub mod pallet { /// The change will be applied after the first parablock for this ID included which executes /// in the context of a relay chain block with a number >= `expected_at`. #[pallet::storage] - #[pallet::getter(fn future_code_upgrade_at)] - pub(super) type FutureCodeUpgrades = - StorageMap<_, Twox64Concat, ParaId, BlockNumberFor>; + pub type FutureCodeUpgrades = StorageMap<_, Twox64Concat, ParaId, BlockNumberFor>; /// The list of upcoming future code upgrades. /// @@ -799,9 +790,7 @@ pub mod pallet { /// /// Corresponding code can be retrieved with [`CodeByHash`]. #[pallet::storage] - #[pallet::getter(fn future_code_hash)] - pub(super) type FutureCodeHash = - StorageMap<_, Twox64Concat, ParaId, ValidationCodeHash>; + pub type FutureCodeHash = StorageMap<_, Twox64Concat, ParaId, ValidationCodeHash>; /// This is used by the relay-chain to communicate to a parachain a go-ahead with in the upgrade /// procedure. @@ -827,8 +816,7 @@ pub mod pallet { /// NOTE that this field is used by parachains via merkle storage proofs, therefore changing /// the format will require migration of parachains. #[pallet::storage] - #[pallet::getter(fn upgrade_restriction_signal)] - pub(super) type UpgradeRestrictionSignal = + pub type UpgradeRestrictionSignal = StorageMap<_, Twox64Concat, ParaId, UpgradeRestriction>; /// The list of parachains that are awaiting for their upgrade restriction to cooldown. @@ -850,8 +838,7 @@ pub mod pallet { /// The actions to perform during the start of a specific session index. #[pallet::storage] - #[pallet::getter(fn actions_queue)] - pub(super) type ActionsQueue = + pub type ActionsQueue = StorageMap<_, Twox64Concat, SessionIndex, Vec, ValueQuery>; /// Upcoming paras instantiation arguments. @@ -872,9 +859,7 @@ pub mod pallet { /// This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and /// [`PastCodeHash`]. #[pallet::storage] - #[pallet::getter(fn code_by_hash)] - pub(super) type CodeByHash = - StorageMap<_, Identity, ValidationCodeHash, ValidationCode>; + pub type CodeByHash = StorageMap<_, Identity, ValidationCodeHash, ValidationCode>; #[pallet::genesis_config] #[derive(DefaultNoBound)] @@ -941,7 +926,7 @@ pub mod pallet { relay_parent_number: BlockNumberFor, ) -> DispatchResult { ensure_root(origin)?; - let config = configuration::Pallet::::config(); + let config = configuration::ActiveConfig::::get(); Self::schedule_code_upgrade( para, new_code, @@ -975,7 +960,7 @@ pub mod pallet { #[pallet::weight(::WeightInfo::force_queue_action())] pub fn force_queue_action(origin: OriginFor, para: ParaId) -> DispatchResult { ensure_root(origin)?; - let next_session = shared::Pallet::::session_index().saturating_add(One::one()); + let next_session = shared::CurrentSessionIndex::::get().saturating_add(One::one()); ActionsQueue::::mutate(next_session, |v| { if let Err(i) = v.binary_search(¶) { v.insert(i, para); @@ -1017,9 +1002,9 @@ pub mod pallet { } }); - let cfg = configuration::Pallet::::config(); + let cfg = configuration::ActiveConfig::::get(); Self::enact_pvf_accepted( - >::block_number(), + frame_system::Pallet::::block_number(), &code_hash, &vote.causes, vote.age, @@ -1078,8 +1063,8 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_none(origin)?; - let validators = shared::Pallet::::active_validator_keys(); - let current_session = shared::Pallet::::session_index(); + let validators = shared::ActiveValidatorKeys::::get(); + let current_session = shared::CurrentSessionIndex::::get(); if stmt.session_index < current_session { return Err(Error::::PvfCheckStatementStale.into()) } else if stmt.session_index > current_session { @@ -1127,9 +1112,9 @@ pub mod pallet { }); match outcome { PvfCheckOutcome::Accepted => { - let cfg = configuration::Pallet::::config(); + let cfg = configuration::ActiveConfig::::get(); Self::enact_pvf_accepted( - >::block_number(), + frame_system::Pallet::::block_number(), &stmt.subject, &active_vote.causes, active_vote.age, @@ -1177,7 +1162,7 @@ pub mod pallet { _ => return InvalidTransaction::Call.into(), }; - let current_session = shared::Pallet::::session_index(); + let current_session = shared::CurrentSessionIndex::::get(); if stmt.session_index < current_session { return InvalidTransaction::Stale.into() } else if stmt.session_index > current_session { @@ -1185,7 +1170,7 @@ pub mod pallet { } let validator_index = stmt.validator_index.0 as usize; - let validators = shared::Pallet::::active_validator_keys(); + let validators = shared::ActiveValidatorKeys::::get(); let validator_public = match validators.get(validator_index) { Some(pk) => pk, None => return InvalidTransaction::Custom(INVALID_TX_BAD_VALIDATOR_IDX).into(), @@ -1250,7 +1235,7 @@ impl Pallet { ) -> DispatchResult { // Check that we can schedule an upgrade at all. ensure!(Self::can_upgrade_validation_code(id), Error::::CannotUpgradeCode); - let config = configuration::Pallet::::config(); + let config = configuration::ActiveConfig::::get(); // Validation code sanity checks: ensure!(new_code.0.len() >= MIN_CODE_SIZE as usize, Error::::InvalidCode); ensure!(new_code.0.len() <= config.max_code_size as usize, Error::::InvalidCode); @@ -1294,7 +1279,7 @@ impl Pallet { /// The validation code of live para. pub(crate) fn current_code(para_id: &ParaId) -> Option { - Self::current_code_hash(para_id).and_then(|code_hash| { + CurrentCodeHash::::get(para_id).and_then(|code_hash| { let code = CodeByHash::::get(&code_hash); if code.is_none() { log::error!( @@ -1318,7 +1303,7 @@ impl Pallet { fn apply_actions_queue(session: SessionIndex) -> Vec { let actions = ActionsQueue::::take(session); let mut parachains = ParachainsCache::new(); - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); let mut outgoing = Vec::new(); for para in actions { @@ -1423,7 +1408,7 @@ impl Pallet { // looks at old code metadata, compares them to the current acceptance window, and prunes those // that are too old. fn prune_old_code(now: BlockNumberFor) -> Weight { - let config = configuration::Pallet::::config(); + let config = configuration::ActiveConfig::::get(); let code_retention_period = config.code_retention_period; if now <= code_retention_period { let weight = T::DbWeight::get().reads_writes(1, 0); @@ -1459,7 +1444,7 @@ impl Pallet { } } - meta.is_empty() && Self::para_head(¶_id).is_none() + meta.is_empty() && Heads::::get(¶_id).is_none() }); // This parachain has been removed and now the vestigial code @@ -1651,7 +1636,7 @@ impl Pallet { // // we cannot onboard at the current session, so it must be at least one // session ahead. - let onboard_at: SessionIndex = shared::Pallet::::session_index() + + let onboard_at: SessionIndex = shared::CurrentSessionIndex::::get() + cmp::max(shared::SESSION_DELAY.saturating_sub(sessions_observed), 1); ActionsQueue::::mutate(onboard_at, |v| { @@ -1717,7 +1702,7 @@ impl Pallet { let expected_at = expected_at.saturated_into(); let log = ConsensusLog::ParaScheduleUpgradeCode(id, *code_hash, expected_at); - >::deposit_log(log.into()); + frame_system::Pallet::::deposit_log(log.into()); weight } @@ -1825,7 +1810,7 @@ impl Pallet { let validation_code_hash = validation_code.hash(); CurrentCodeHash::::insert(&id, validation_code_hash); - let cfg = configuration::Pallet::::config(); + let cfg = configuration::ActiveConfig::::get(); Self::kick_off_pvf_check( PvfCheckCause::Onboarding(id), validation_code_hash, @@ -2054,14 +2039,14 @@ impl Pallet { // The code is known and there is no active PVF vote for it meaning it is // already checked -- fast track the PVF checking into the accepted state. weight += T::DbWeight::get().reads(1); - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); weight += Self::enact_pvf_accepted(now, &code_hash, &[cause], 0, cfg); } else { // PVF is not being pre-checked and it is not known. Start a new pre-checking // process. weight += T::DbWeight::get().reads_writes(3, 2); - let now = >::block_number(); - let n_validators = shared::Pallet::::active_validator_keys().len(); + let now = frame_system::Pallet::::block_number(); + let n_validators = shared::ActiveValidatorKeys::::get().len(); PvfActiveVoteMap::::insert( &code_hash, PvfCheckActiveVoteState::new(now, n_validators, cause), @@ -2291,7 +2276,7 @@ impl Pallet { #[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] pub fn test_on_new_session() { Self::initializer_on_new_session(&SessionChangeNotification { - session_index: shared::Pallet::::session_index(), + session_index: shared::CurrentSessionIndex::::get(), ..Default::default() }); } diff --git a/polkadot/runtime/parachains/src/paras/tests.rs b/polkadot/runtime/parachains/src/paras/tests.rs index ad75166271e3aa49e6c907a62e8ee7508e9e0e02..0b458f2f91eb2db68fb5d56aa9c35df7c373e894 100644 --- a/polkadot/runtime/parachains/src/paras/tests.rs +++ b/polkadot/runtime/parachains/src/paras/tests.rs @@ -25,10 +25,8 @@ use test_helpers::{dummy_head_data, dummy_validation_code, validator_pubkeys}; use crate::{ configuration::HostConfiguration, - mock::{ - new_test_ext, Configuration, MockGenesisConfig, Paras, ParasShared, RuntimeOrigin, System, - Test, - }, + mock::{new_test_ext, MockGenesisConfig, Paras, ParasShared, RuntimeOrigin, System, Test}, + paras, }; static VALIDATORS: &[Sr25519Keyring] = &[ @@ -95,7 +93,8 @@ fn run_to_block(to: BlockNumber, new_session: Option>) { ParasShared::initializer_finalize(); if new_session.as_ref().map_or(false, |v| v.contains(&(b + 1))) { let mut session_change_notification = SessionChangeNotification::default(); - session_change_notification.session_index = ParasShared::session_index() + 1; + session_change_notification.session_index = + shared::CurrentSessionIndex::::get() + 1; session_change_notification.validators = validator_pubkeys.clone(); ParasShared::initializer_on_new_session( session_change_notification.session_index, @@ -301,7 +300,7 @@ fn para_past_code_pruning_in_initialize() { PastCodePruning::::put(&vec![(id, included_block)]); { - let mut code_meta = Paras::past_code_meta(&id); + let mut code_meta = paras::PastCodeMeta::::get(&id); code_meta.note_replacement(at_block, included_block); PastCodeMeta::::insert(&id, &code_meta); } @@ -312,12 +311,12 @@ fn para_past_code_pruning_in_initialize() { run_to_block(pruned_at - 1, None); assert_eq!(PastCodeHash::::get(&(id, at_block)), Some(validation_code.hash())); - assert_eq!(Paras::past_code_meta(&id).most_recent_change(), Some(at_block)); + assert_eq!(paras::PastCodeMeta::::get(&id).most_recent_change(), Some(at_block)); check_code_is_stored(&validation_code); run_to_block(pruned_at, None); assert!(PastCodeHash::::get(&(id, at_block)).is_none()); - assert!(Paras::past_code_meta(&id).most_recent_change().is_none()); + assert!(paras::PastCodeMeta::::get(&id).most_recent_change().is_none()); check_code_is_not_stored(&validation_code); }); } @@ -345,11 +344,11 @@ fn note_new_head_sets_head() { new_test_ext(genesis_config).execute_with(|| { let id_a = ParaId::from(0u32); - assert_eq!(Paras::para_head(&id_a), Some(dummy_head_data())); + assert_eq!(paras::Heads::::get(&id_a), Some(dummy_head_data())); Paras::note_new_head(id_a, vec![1, 2, 3].into(), 0); - assert_eq!(Paras::para_head(&id_a), Some(vec![1, 2, 3].into())); + assert_eq!(paras::Heads::::get(&id_a), Some(vec![1, 2, 3].into())); }); } @@ -392,11 +391,11 @@ fn note_past_code_sets_up_pruning_correctly() { assert_eq!(PastCodePruning::::get(), vec![(id_a, 12), (id_b, 23)]); assert_eq!( - Paras::past_code_meta(&id_a), + paras::PastCodeMeta::::get(&id_a), ParaPastCodeMeta { upgrade_times: vec![upgrade_at(10, 12)], last_pruned: None } ); assert_eq!( - Paras::past_code_meta(&id_b), + paras::PastCodeMeta::::get(&id_b), ParaPastCodeMeta { upgrade_times: vec![upgrade_at(20, 23)], last_pruned: None } ); }); @@ -450,7 +449,7 @@ fn code_upgrade_applied_after_delay() { para_id, new_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); // Include votes for super-majority. @@ -458,7 +457,7 @@ fn code_upgrade_applied_after_delay() { Paras::note_new_head(para_id, Default::default(), 1); - assert!(Paras::past_code_meta(¶_id).most_recent_change().is_none()); + assert!(paras::PastCodeMeta::::get(¶_id).most_recent_change().is_none()); assert_eq!(FutureCodeUpgrades::::get(¶_id), Some(expected_at)); assert_eq!(FutureCodeHash::::get(¶_id), Some(new_code.hash())); assert_eq!(UpcomingUpgrades::::get(), vec![(para_id, expected_at)]); @@ -477,7 +476,7 @@ fn code_upgrade_applied_after_delay() { { Paras::note_new_head(para_id, Default::default(), expected_at - 1); - assert!(Paras::past_code_meta(¶_id).most_recent_change().is_none()); + assert!(paras::PastCodeMeta::::get(¶_id).most_recent_change().is_none()); assert_eq!(FutureCodeUpgrades::::get(¶_id), Some(expected_at)); assert_eq!(FutureCodeHash::::get(¶_id), Some(new_code.hash())); assert_eq!(UpgradeGoAheadSignal::::get(¶_id), Some(UpgradeGoAhead::GoAhead)); @@ -493,7 +492,10 @@ fn code_upgrade_applied_after_delay() { { Paras::note_new_head(para_id, Default::default(), expected_at); - assert_eq!(Paras::past_code_meta(¶_id).most_recent_change(), Some(expected_at)); + assert_eq!( + paras::PastCodeMeta::::get(¶_id).most_recent_change(), + Some(expected_at) + ); assert_eq!( PastCodeHash::::get(&(para_id, expected_at)), Some(original_code.hash()), @@ -569,7 +571,7 @@ fn upgrade_strategy_apply_at_expected_block_works() { para_id, new_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::ApplyAtExpectedBlock, ); // Include votes for super-majority. @@ -582,7 +584,10 @@ fn upgrade_strategy_apply_at_expected_block_works() { // Reporting a head doesn't change anything. Paras::note_new_head(para_id, Default::default(), expected_at - 1); - assert_eq!(Paras::past_code_meta(¶_id).most_recent_change(), Some(expected_at)); + assert_eq!( + paras::PastCodeMeta::::get(¶_id).most_recent_change(), + Some(expected_at) + ); assert_eq!(PastCodeHash::::get(&(para_id, expected_at)), Some(original_code.hash())); assert!(FutureCodeUpgrades::::get(¶_id).is_none()); assert!(FutureCodeUpgradesAt::::get().iter().all(|(id, _)| *id != para_id)); @@ -652,7 +657,7 @@ fn code_upgrade_applied_after_delay_even_when_late() { para_id, new_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); // Include votes for super-majority. @@ -660,7 +665,7 @@ fn code_upgrade_applied_after_delay_even_when_late() { Paras::note_new_head(para_id, Default::default(), 1); - assert!(Paras::past_code_meta(¶_id).most_recent_change().is_none()); + assert!(paras::PastCodeMeta::::get(¶_id).most_recent_change().is_none()); assert_eq!(FutureCodeUpgrades::::get(¶_id), Some(expected_at)); assert_eq!(FutureCodeHash::::get(¶_id), Some(new_code.hash())); assert_eq!(UpcomingUpgrades::::get(), vec![(para_id, expected_at)]); @@ -681,7 +686,10 @@ fn code_upgrade_applied_after_delay_even_when_late() { Paras::note_new_head(para_id, Default::default(), expected_at + 4); - assert_eq!(Paras::past_code_meta(¶_id).most_recent_change(), Some(expected_at)); + assert_eq!( + paras::PastCodeMeta::::get(¶_id).most_recent_change(), + Some(expected_at) + ); assert_eq!( PastCodeHash::::get(&(para_id, expected_at)), @@ -736,7 +744,7 @@ fn submit_code_change_when_not_allowed_is_err() { para_id, new_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); // Include votes for super-majority. @@ -754,7 +762,7 @@ fn submit_code_change_when_not_allowed_is_err() { para_id, newer_code.clone(), 2, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); assert_eq!( @@ -818,7 +826,7 @@ fn upgrade_restriction_elapsed_doesnt_mean_can_upgrade() { para_id, new_code.clone(), 0, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); // Include votes for super-majority. @@ -843,7 +851,7 @@ fn upgrade_restriction_elapsed_doesnt_mean_can_upgrade() { para_id, newer_code.clone(), 30, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); assert_eq!(FutureCodeUpgrades::::get(¶_id), Some(0 + validation_upgrade_delay)); @@ -904,7 +912,7 @@ fn full_parachain_cleanup_storage() { para_id, new_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); // Include votes for super-majority. @@ -912,7 +920,7 @@ fn full_parachain_cleanup_storage() { Paras::note_new_head(para_id, Default::default(), 1); - assert!(Paras::past_code_meta(¶_id).most_recent_change().is_none()); + assert!(paras::PastCodeMeta::::get(¶_id).most_recent_change().is_none()); assert_eq!(FutureCodeUpgrades::::get(¶_id), Some(expected_at)); assert_eq!(FutureCodeHash::::get(¶_id), Some(new_code.hash())); assert_eq!(Paras::current_code(¶_id), Some(original_code.clone())); @@ -927,7 +935,7 @@ fn full_parachain_cleanup_storage() { // For that run to block #7 and submit a new head. assert_eq!(expected_at, 7); run_to_block(7, None); - assert_eq!(>::block_number(), 7); + assert_eq!(frame_system::Pallet::::block_number(), 7); Paras::note_new_head(para_id, Default::default(), expected_at); assert_ok!(Paras::schedule_para_cleanup(para_id)); @@ -941,7 +949,7 @@ fn full_parachain_cleanup_storage() { // // Why 7 and 8? See above, the clean up scheduled above was processed at the block 8. // The initial upgrade was enacted at the block 7. - assert_eq!(Paras::past_code_meta(¶_id).most_recent_change(), Some(8)); + assert_eq!(paras::PastCodeMeta::::get(¶_id).most_recent_change(), Some(8)); assert_eq!(PastCodeHash::::get(&(para_id, 8)), Some(new_code.hash())); assert_eq!(PastCodePruning::::get(), vec![(para_id, 7), (para_id, 8)]); check_code_is_stored(&original_code); @@ -958,7 +966,7 @@ fn full_parachain_cleanup_storage() { run_to_block(cleaned_up_at, None); // now the final cleanup: last past code cleaned up, and this triggers meta cleanup. - assert_eq!(Paras::past_code_meta(¶_id), Default::default()); + assert_eq!(paras::PastCodeMeta::::get(¶_id), Default::default()); assert!(PastCodeHash::::get(&(para_id, 7)).is_none()); assert!(PastCodeHash::::get(&(para_id, 8)).is_none()); assert!(PastCodePruning::::get().is_empty()); @@ -1000,7 +1008,7 @@ fn cannot_offboard_ongoing_pvf_check() { para_id, new_code.clone(), RELAY_PARENT, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); assert!(!Paras::pvfs_require_precheck().is_empty()); @@ -1095,7 +1103,7 @@ fn para_incoming_at_session() { // run to block without session change. run_to_block(2, None); - assert_eq!(Paras::parachains(), Vec::new()); + assert_eq!(paras::Parachains::::get(), Vec::new()); assert_eq!(ActionsQueue::::get(Paras::scheduled_session()), vec![c, b, a],); // Lifecycle is tracked correctly @@ -1106,7 +1114,7 @@ fn para_incoming_at_session() { // Two sessions pass, so action queue is triggered run_to_block(4, Some(vec![3, 4])); - assert_eq!(Paras::parachains(), vec![c, b]); + assert_eq!(paras::Parachains::::get(), vec![c, b]); assert_eq!(ActionsQueue::::get(Paras::scheduled_session()), Vec::new()); // Lifecycle is tracked correctly @@ -1158,7 +1166,7 @@ fn code_hash_at_returns_up_to_end_of_code_retention_period() { para_id, new_code.clone(), 0, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); // Include votes for super-majority. @@ -1172,25 +1180,28 @@ fn code_hash_at_returns_up_to_end_of_code_retention_period() { run_to_block(10, None); Paras::note_new_head(para_id, Default::default(), 7); - assert_eq!(Paras::past_code_meta(¶_id).upgrade_times, vec![upgrade_at(4, 10)]); + assert_eq!( + paras::PastCodeMeta::::get(¶_id).upgrade_times, + vec![upgrade_at(4, 10)] + ); assert_eq!(Paras::current_code(¶_id), Some(new_code.clone())); // Make sure that the old code is available **before** the code retention period passes. run_to_block(10 + code_retention_period, None); - assert_eq!(Paras::code_by_hash(&old_code.hash()), Some(old_code.clone())); - assert_eq!(Paras::code_by_hash(&new_code.hash()), Some(new_code.clone())); + assert_eq!(paras::CodeByHash::::get(&old_code.hash()), Some(old_code.clone())); + assert_eq!(paras::CodeByHash::::get(&new_code.hash()), Some(new_code.clone())); run_to_block(10 + code_retention_period + 1, None); // code entry should be pruned now. assert_eq!( - Paras::past_code_meta(¶_id), + paras::PastCodeMeta::::get(¶_id), ParaPastCodeMeta { upgrade_times: Vec::new(), last_pruned: Some(10) }, ); - assert_eq!(Paras::code_by_hash(&old_code.hash()), None); // pruned :( - assert_eq!(Paras::code_by_hash(&new_code.hash()), Some(new_code.clone())); + assert_eq!(paras::CodeByHash::::get(&old_code.hash()), None); // pruned :( + assert_eq!(paras::CodeByHash::::get(&new_code.hash()), Some(new_code.clone())); }); } @@ -1267,7 +1278,7 @@ fn pvf_check_coalescing_onboarding_and_upgrade() { a, validation_code.clone(), RELAY_PARENT, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); assert!(!Paras::pvfs_require_precheck().is_empty()); @@ -1377,7 +1388,7 @@ fn pvf_check_upgrade_reject() { a, new_code.clone(), RELAY_PARENT, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); check_code_is_stored(&new_code); @@ -1563,7 +1574,7 @@ fn include_pvf_check_statement_refunds_weight() { a, new_code.clone(), RELAY_PARENT, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); @@ -1664,7 +1675,7 @@ fn poke_unused_validation_code_doesnt_remove_code_with_users() { para_id, validation_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); Paras::note_new_head(para_id, HeadData::default(), 1); @@ -1735,7 +1746,7 @@ fn add_trusted_validation_code_insta_approval() { para_id, validation_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); Paras::note_new_head(para_id, HeadData::default(), 1); @@ -1777,7 +1788,7 @@ fn add_trusted_validation_code_enacts_existing_pvf_vote() { para_id, validation_code.clone(), 1, - &Configuration::config(), + &configuration::ActiveConfig::::get(), UpgradeStrategy::SetGoAheadSignal, ); Paras::note_new_head(para_id, HeadData::default(), 1); @@ -1856,7 +1867,7 @@ fn most_recent_context() { let para_id = ParaId::from(111); - assert_eq!(Paras::para_most_recent_context(para_id), None); + assert_eq!(paras::MostRecentContext::::get(para_id), None); assert_ok!(Paras::schedule_para_initialize( para_id, @@ -1875,16 +1886,16 @@ fn most_recent_context() { // Double-check the para is onboarded, the context is set to the recent block. assert_eq!(ParaLifecycles::::get(¶_id), Some(ParaLifecycle::Parachain)); - assert_eq!(Paras::para_most_recent_context(para_id), Some(0)); + assert_eq!(paras::MostRecentContext::::get(para_id), Some(0)); // Progress para to the new head and check that the recent context is updated. Paras::note_new_head(para_id, vec![4, 5, 6].into(), 3); - assert_eq!(Paras::para_most_recent_context(para_id), Some(3)); + assert_eq!(paras::MostRecentContext::::get(para_id), Some(3)); // Finally, offboard the para and expect the context to be cleared. assert_ok!(Paras::schedule_para_cleanup(para_id)); run_to_block(6, Some(vec![5, 6])); - assert_eq!(Paras::para_most_recent_context(para_id), None); + assert_eq!(paras::MostRecentContext::::get(para_id), None); }) } diff --git a/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs b/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs index 8f6f2166a66a5338841b7174a5ff3a1723ae4f1c..e643888ae29a1464a20130dc16dc756c95799949 100644 --- a/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs +++ b/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs @@ -153,7 +153,7 @@ benchmarks! { enter_backed_candidate_code_upgrade { // For now we always assume worst case code size. In the future we could vary over this. - let v = crate::configuration::Pallet::::config().max_code_size; + let v = crate::configuration::ActiveConfig::::get().max_code_size; let cores_with_backed: BTreeMap<_, _> = vec![(0, BenchBuilder::::fallback_min_validity_votes())] diff --git a/polkadot/runtime/parachains/src/paras_inherent/mod.rs b/polkadot/runtime/parachains/src/paras_inherent/mod.rs index 31c9ab84b60cd3ea1ccf33e4152acad8454313cf..2c6c48acc6d47d0e8176fe0b4702b9cfa6781af7 100644 --- a/polkadot/runtime/parachains/src/paras_inherent/mod.rs +++ b/polkadot/runtime/parachains/src/paras_inherent/mod.rs @@ -154,8 +154,7 @@ pub mod pallet { /// Scraped on chain data for extracting resolved disputes as well as backing votes. #[pallet::storage] - #[pallet::getter(fn on_chain_votes)] - pub(crate) type OnChainVotes = StorageValue<_, ScrapedOnChainVotes>; + pub type OnChainVotes = StorageValue<_, ScrapedOnChainVotes>; /// Update the disputes statements set part of the on-chain votes. pub(crate) fn set_scrapable_on_chain_disputes( @@ -318,15 +317,15 @@ impl Pallet { disputes.len() ); - let parent_hash = >::parent_hash(); + let parent_hash = frame_system::Pallet::::parent_hash(); ensure!( parent_header.hash().as_ref() == parent_hash.as_ref(), Error::::InvalidParentHeader, ); - let now = >::block_number(); - let config = >::config(); + let now = frame_system::Pallet::::block_number(); + let config = configuration::ActiveConfig::::get(); // Before anything else, update the allowed relay-parents. { @@ -342,7 +341,7 @@ impl Pallet { ); }); } - let allowed_relay_parents = >::allowed_relay_parents(); + let allowed_relay_parents = shared::AllowedRelayParents::::get(); let candidates_weight = backed_candidates_weight::(&backed_candidates); let bitfields_weight = signed_bitfields_weight::(&bitfields); @@ -355,9 +354,9 @@ impl Pallet { log::debug!(target: LOG_TARGET, "Size before filter: {}, candidates + bitfields: {}, disputes: {}", all_weight_before.proof_size(), candidates_weight.proof_size() + bitfields_weight.proof_size(), disputes_weight.proof_size()); log::debug!(target: LOG_TARGET, "Time weight before filter: {}, candidates + bitfields: {}, disputes: {}", all_weight_before.ref_time(), candidates_weight.ref_time() + bitfields_weight.ref_time(), disputes_weight.ref_time()); - let current_session = >::session_index(); - let expected_bits = >::availability_cores().len(); - let validator_public = shared::Pallet::::active_validator_keys(); + let current_session = shared::CurrentSessionIndex::::get(); + let expected_bits = scheduler::AvailabilityCores::::get().len(); + let validator_public = shared::ActiveValidatorKeys::::get(); // We are assuming (incorrectly) to have all the weight (for the mandatory class or even // full block) available to us. This can lead to slightly overweight blocks, which still @@ -508,7 +507,7 @@ impl Pallet { // Get the cores freed as a result of concluded invalid candidates. let (freed_disputed, concluded_invalid_hashes): (Vec, BTreeSet) = - >::free_disputed(¤t_concluded_invalid_disputes) + inclusion::Pallet::::free_disputed(¤t_concluded_invalid_disputes) .into_iter() .unzip(); @@ -531,7 +530,7 @@ impl Pallet { // Process new availability bitfields, yielding any availability cores whose // work has now concluded. let freed_concluded = - >::update_pending_availability_and_get_freed_cores( + inclusion::Pallet::::update_pending_availability_and_get_freed_cores( &validator_public[..], bitfields.clone(), ); @@ -544,8 +543,8 @@ impl Pallet { METRICS.on_candidates_included(freed_concluded.len() as u64); // Get the timed out candidates - let freed_timeout = if >::availability_timeout_check_required() { - >::free_timedout() + let freed_timeout = if scheduler::Pallet::::availability_timeout_check_required() { + inclusion::Pallet::::free_timedout() } else { Vec::new() }; @@ -561,11 +560,11 @@ impl Pallet { .chain(freed_disputed.into_iter().map(|core| (core, FreedReason::Concluded))) .chain(freed_timeout.into_iter().map(|c| (c, FreedReason::TimedOut))) .collect::>(); - >::free_cores_and_fill_claimqueue(freed, now); + scheduler::Pallet::::free_cores_and_fill_claimqueue(freed, now); METRICS.on_candidates_processed_total(backed_candidates.len() as u64); - let core_index_enabled = configuration::Pallet::::config() + let core_index_enabled = configuration::ActiveConfig::::get() .node_features .get(FeatureIndex::ElasticScalingMVP as usize) .map(|b| *b) @@ -574,7 +573,7 @@ impl Pallet { let mut scheduled: BTreeMap> = BTreeMap::new(); let mut total_scheduled_cores = 0; - for (core_idx, para_id) in >::scheduled_paras() { + for (core_idx, para_id) in scheduler::Pallet::::scheduled_paras() { total_scheduled_cores += 1; scheduled.entry(para_id).or_default().insert(core_idx); } @@ -607,14 +606,14 @@ impl Pallet { let inclusion::ProcessedCandidates::< as HeaderT>::Hash> { core_indices: occupied, candidate_receipt_with_backing_validator_indices, - } = >::process_candidates( + } = inclusion::Pallet::::process_candidates( &allowed_relay_parents, &backed_candidates_with_core, - >::group_validators, + scheduler::Pallet::::group_validators, core_index_enabled, )?; // Note which of the scheduled cores were actually occupied by a backed candidate. - >::occupied(occupied.into_iter().map(|e| (e.0, e.1)).collect()); + scheduler::Pallet::::occupied(occupied.into_iter().map(|e| (e.0, e.1)).collect()); set_scrapable_on_chain_backings::( current_session, @@ -1151,7 +1150,7 @@ fn filter_backed_statements_from_disabled_validators< return } - let minimum_backing_votes = configuration::Pallet::::config().minimum_backing_votes; + let minimum_backing_votes = configuration::ActiveConfig::::get().minimum_backing_votes; // Process all backed candidates. `validator_indices` in `BackedCandidates` are indices within // the validator group assigned to the parachain. To obtain this group we need: @@ -1178,7 +1177,7 @@ fn filter_backed_statements_from_disabled_validators< }; // Get the group index for the core - let group_idx = match >::group_assigned_to_core( + let group_idx = match scheduler::Pallet::::group_assigned_to_core( *core_idx, relay_parent_block_number + One::one(), ) { @@ -1190,7 +1189,7 @@ fn filter_backed_statements_from_disabled_validators< }; // And finally get the validator group for this group index - let validator_group = match >::group_validators(group_idx) { + let validator_group = match scheduler::Pallet::::group_validators(group_idx) { Some(validator_group) => validator_group, None => { log::debug!(target: LOG_TARGET, "Can't get the validators from group {:?}. Dropping the candidate.", group_idx); @@ -1245,7 +1244,7 @@ fn filter_unchained_candidates = BTreeMap::new(); for para_id in candidates.keys() { - let latest_head_data = match >::para_latest_head_data(¶_id) { + let latest_head_data = match inclusion::Pallet::::para_latest_head_data(¶_id) { None => { defensive!("Latest included head data for paraid {:?} is None", para_id); continue @@ -1277,7 +1276,7 @@ fn filter_unchained_candidates>::para_most_recent_context(para_id); + let prev_context = paras::MostRecentContext::::get(para_id); let check_ctx = CandidateCheckContext::::new(prev_context); let res = match check_ctx.verify_backed_candidate( @@ -1459,7 +1458,7 @@ fn get_injected_core_index>::group_assigned_to_core( + let group_idx = match scheduler::Pallet::::group_assigned_to_core( core_idx, relay_parent_block_number + One::one(), ) { @@ -1474,7 +1473,7 @@ fn get_injected_core_index>::group_validators(group_idx) { + let group_validators = match scheduler::Pallet::::group_validators(group_idx) { Some(validators) => validators, None => return None, }; diff --git a/polkadot/runtime/parachains/src/paras_inherent/tests.rs b/polkadot/runtime/parachains/src/paras_inherent/tests.rs index c5e65622c76efe44084c52154b1dfe27645f85d4..64fbc9c4a4e0335a148ce55777b015ff6f99a11a 100644 --- a/polkadot/runtime/parachains/src/paras_inherent/tests.rs +++ b/polkadot/runtime/parachains/src/paras_inherent/tests.rs @@ -166,7 +166,7 @@ mod enter { .unwrap(); // The current schedule is empty prior to calling `create_inherent_enter`. - assert!(>::claimqueue_is_empty()); + assert!(scheduler::Pallet::::claimqueue_is_empty()); // Nothing is filtered out (including the backed candidates.) assert_eq!( @@ -177,13 +177,13 @@ mod enter { assert_eq!( // The length of this vec is equal to the number of candidates, so we know our 2 // backed candidates did not get filtered out - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + OnChainVotes::::get().unwrap().backing_validators_per_candidate.len(), 2 ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + OnChainVotes::::get().unwrap().session, 2 ); @@ -217,7 +217,7 @@ mod enter { assert!(config.configuration.config.scheduler_params.lookahead > 0); new_test_ext(config).execute_with(|| { // Set the elastic scaling MVP feature. - >::set_node_feature( + configuration::Pallet::::set_node_feature( RuntimeOrigin::root(), FeatureIndex::ElasticScalingMVP as u8, true, @@ -257,9 +257,9 @@ mod enter { .unwrap(); // The current schedule is empty prior to calling `create_inherent_enter`. - assert!(>::claimqueue_is_empty()); + assert!(scheduler::Pallet::::claimqueue_is_empty()); - assert!(Pallet::::on_chain_votes().is_none()); + assert!(pallet::OnChainVotes::::get().is_none()); // Nothing is filtered out (including the backed candidates.) assert_eq!( @@ -270,13 +270,16 @@ mod enter { assert_eq!( // The length of this vec is equal to the number of candidates, so we know our 5 // backed candidates did not get filtered out - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + pallet::OnChainVotes::::get() + .unwrap() + .backing_validators_per_candidate + .len(), 5 ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + pallet::OnChainVotes::::get().unwrap().session, 2 ); @@ -316,7 +319,7 @@ mod enter { assert!(config.configuration.config.scheduler_params.lookahead > 0); new_test_ext(config).execute_with(|| { // Set the elastic scaling MVP feature. - >::set_node_feature( + configuration::Pallet::::set_node_feature( RuntimeOrigin::root(), FeatureIndex::ElasticScalingMVP as u8, true, @@ -352,7 +355,7 @@ mod enter { assert_eq!(expected_para_inherent_data.backed_candidates.len(), 6); // * 0 disputes. assert_eq!(expected_para_inherent_data.disputes.len(), 0); - assert!(Pallet::::on_chain_votes().is_none()); + assert!(pallet::OnChainVotes::::get().is_none()); expected_para_inherent_data.backed_candidates = expected_para_inherent_data .backed_candidates @@ -369,7 +372,7 @@ mod enter { let mut inherent_data = InherentData::new(); inherent_data.put_data(PARACHAINS_INHERENT_IDENTIFIER, &scenario.data).unwrap(); - assert!(!>::claimqueue_is_empty()); + assert!(!scheduler::Pallet::::claimqueue_is_empty()); // The right candidates have been filtered out (the ones for cores 0,4,5) assert_eq!( @@ -379,13 +382,16 @@ mod enter { // 3 candidates have been backed (for cores 1,2 and 3) assert_eq!( - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + pallet::OnChainVotes::::get() + .unwrap() + .backing_validators_per_candidate + .len(), 3 ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + pallet::OnChainVotes::::get().unwrap().session, 2 ); @@ -420,7 +426,7 @@ mod enter { // Now just make all candidates available. let mut data = scenario.data.clone(); - let validators = session_info::Pallet::::session_info(2).unwrap().validators; + let validators = session_info::Sessions::::get(2).unwrap().validators; let signing_context = SigningContext { parent_hash: BenchBuilder::::header(4).hash(), session_index: 2, @@ -447,7 +453,7 @@ mod enter { ); // No more candidates have been backed - assert!(Pallet::::on_chain_votes() + assert!(pallet::OnChainVotes::::get() .unwrap() .backing_validators_per_candidate .is_empty()); @@ -480,10 +486,7 @@ mod enter { // Paras have the right on-chain heads now expected_heads.into_iter().enumerate().for_each(|(id, head)| { - assert_eq!( - paras::Pallet::::para_head(ParaId::from(id as u32)).unwrap(), - head - ); + assert_eq!(paras::Heads::::get(ParaId::from(id as u32)).unwrap(), head); }); }); } @@ -551,7 +554,7 @@ mod enter { let candidate_hash = CandidateHash(sp_core::H256::repeat_byte(1)); let statements = generate_votes(3, candidate_hash); set_scrapable_on_chain_disputes::(3, statements); - assert_matches!(pallet::Pallet::::on_chain_votes(), Some(ScrapedOnChainVotes { + assert_matches!(pallet::OnChainVotes::::get(), Some(ScrapedOnChainVotes { session, .. } ) => { @@ -570,7 +573,7 @@ mod enter { let candidate_hash = CandidateHash(sp_core::H256::repeat_byte(2)); let statements = generate_votes(7, candidate_hash); set_scrapable_on_chain_disputes::(7, statements); - assert_matches!(pallet::Pallet::::on_chain_votes(), Some(ScrapedOnChainVotes { + assert_matches!(pallet::OnChainVotes::::get(), Some(ScrapedOnChainVotes { session, .. } ) => { @@ -615,7 +618,7 @@ mod enter { .unwrap(); // The current schedule is empty prior to calling `create_inherent_enter`. - assert!(>::claimqueue_is_empty()); + assert!(scheduler::Pallet::::claimqueue_is_empty()); let multi_dispute_inherent_data = Pallet::::create_inherent_inner(&inherent_data.clone()).unwrap(); @@ -638,13 +641,13 @@ mod enter { assert_eq!( // The length of this vec is equal to the number of candidates, so we know there // where no backed candidates included - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + OnChainVotes::::get().unwrap().backing_validators_per_candidate.len(), 0 ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + OnChainVotes::::get().unwrap().session, 2 ); }); @@ -687,7 +690,7 @@ mod enter { .unwrap(); // The current schedule is empty prior to calling `create_inherent_enter`. - assert!(>::claimqueue_is_empty()); + assert!(scheduler::Pallet::::claimqueue_is_empty()); let limit_inherent_data = Pallet::::create_inherent_inner(&inherent_data.clone()).unwrap(); @@ -706,13 +709,13 @@ mod enter { assert_eq!( // Ensure that our inherent data did not included backed candidates as expected - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + OnChainVotes::::get().unwrap().backing_validators_per_candidate.len(), 0 ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + OnChainVotes::::get().unwrap().session, 2 ); }); @@ -759,7 +762,7 @@ mod enter { .unwrap(); // The current schedule is empty prior to calling `create_inherent_enter`. - assert!(>::claimqueue_is_empty()); + assert!(scheduler::Pallet::::claimqueue_is_empty()); // Nothing is filtered out (including the backed candidates.) let limit_inherent_data = @@ -789,13 +792,13 @@ mod enter { assert_eq!( // The length of this vec is equal to the number of candidates, so we know // all of our candidates got filtered out - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + OnChainVotes::::get().unwrap().backing_validators_per_candidate.len(), 0, ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + OnChainVotes::::get().unwrap().session, 2 ); }); @@ -846,7 +849,7 @@ mod enter { .unwrap(); // The current schedule is empty prior to calling `create_inherent_enter`. - assert!(>::claimqueue_is_empty()); + assert!(scheduler::Pallet::::claimqueue_is_empty()); // Nothing is filtered out (including the backed candidates.) let limit_inherent_data = @@ -877,13 +880,13 @@ mod enter { assert_eq!( // The length of this vec is equal to the number of candidates, so we know // all of our candidates got filtered out - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + OnChainVotes::::get().unwrap().backing_validators_per_candidate.len(), 0, ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + OnChainVotes::::get().unwrap().session, 2 ); }); @@ -1043,24 +1046,24 @@ mod enter { assert_eq!( // The length of this vec is equal to the number of candidates, so we know 1 // candidate got filtered out - Pallet::::on_chain_votes().unwrap().backing_validators_per_candidate.len(), + OnChainVotes::::get().unwrap().backing_validators_per_candidate.len(), 1 ); assert_eq!( // The session of the on chain votes should equal the current session, which is 2 - Pallet::::on_chain_votes().unwrap().session, + OnChainVotes::::get().unwrap().session, 2 ); // One core was scheduled. We should put the assignment back, before calling enter(). - let now = >::block_number() + 1; + let now = frame_system::Pallet::::block_number() + 1; let used_cores = 5; let cores = (0..used_cores) .into_iter() .map(|i| { let SchedulerParams { ttl, .. } = - >::config().scheduler_params; + configuration::ActiveConfig::::get().scheduler_params; // Load an assignment into provider so that one is present to pop let assignment = ::AssignmentProvider::get_mock_assignment( @@ -1899,11 +1902,11 @@ mod sanitizers { // State sanity checks assert_eq!( - >::scheduled_paras().collect::>(), + scheduler::Pallet::::scheduled_paras().collect::>(), vec![(CoreIndex(0), ParaId::from(1)), (CoreIndex(1), ParaId::from(2))] ); assert_eq!( - shared::Pallet::::active_validator_indices(), + shared::ActiveValidatorIndices::::get(), vec![ ValidatorIndex(0), ValidatorIndex(1), @@ -2434,7 +2437,7 @@ mod sanitizers { // State sanity checks assert_eq!( - >::scheduled_paras().collect::>(), + scheduler::Pallet::::scheduled_paras().collect::>(), vec![ (CoreIndex(0), ParaId::from(1)), (CoreIndex(1), ParaId::from(1)), @@ -2449,12 +2452,12 @@ mod sanitizers { ] ); let mut scheduled: BTreeMap> = BTreeMap::new(); - for (core_idx, para_id) in >::scheduled_paras() { + for (core_idx, para_id) in scheduler::Pallet::::scheduled_paras() { scheduled.entry(para_id).or_default().insert(core_idx); } assert_eq!( - shared::Pallet::::active_validator_indices(), + shared::ActiveValidatorIndices::::get(), vec![ ValidatorIndex(0), ValidatorIndex(1), @@ -2937,7 +2940,7 @@ mod sanitizers { // State sanity checks assert_eq!( - >::scheduled_paras().collect::>(), + scheduler::Pallet::::scheduled_paras().collect::>(), vec![ (CoreIndex(0), ParaId::from(1)), (CoreIndex(1), ParaId::from(1)), @@ -2951,12 +2954,12 @@ mod sanitizers { ] ); let mut scheduled: BTreeMap> = BTreeMap::new(); - for (core_idx, para_id) in >::scheduled_paras() { + for (core_idx, para_id) in scheduler::Pallet::::scheduled_paras() { scheduled.entry(para_id).or_default().insert(core_idx); } assert_eq!( - shared::Pallet::::active_validator_indices(), + shared::ActiveValidatorIndices::::get(), vec![ ValidatorIndex(0), ValidatorIndex(1), @@ -2991,7 +2994,7 @@ mod sanitizers { assert_eq!( sanitize_backed_candidates::( backed_candidates.clone(), - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), BTreeSet::new(), scheduled, core_index_enabled @@ -3015,7 +3018,7 @@ mod sanitizers { assert_eq!( sanitize_backed_candidates::( backed_candidates.clone(), - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), BTreeSet::new(), scheduled, core_index_enabled @@ -3039,7 +3042,7 @@ mod sanitizers { assert_eq!( sanitize_backed_candidates::( backed_candidates.clone(), - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), BTreeSet::new(), scheduled, core_index_enabled, @@ -3069,7 +3072,7 @@ mod sanitizers { let sanitized_backed_candidates = sanitize_backed_candidates::( backed_candidates.clone(), - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), BTreeSet::new(), scheduled, core_index_enabled, @@ -3105,7 +3108,7 @@ mod sanitizers { Vec<(BackedCandidate<_>, CoreIndex)>, > = sanitize_backed_candidates::( backed_candidates.clone(), - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), set, scheduled, core_index_enabled, @@ -3142,7 +3145,7 @@ mod sanitizers { Vec<(BackedCandidate<_>, CoreIndex)>, > = sanitize_backed_candidates::( backed_candidates.clone(), - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), invalid_set, scheduled, true, @@ -3178,7 +3181,7 @@ mod sanitizers { Vec<(BackedCandidate<_>, CoreIndex)>, > = sanitize_backed_candidates::( backed_candidates.clone(), - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), invalid_set, scheduled, true, @@ -3212,7 +3215,7 @@ mod sanitizers { // filtered filter_backed_statements_from_disabled_validators::( &mut expected_backed_candidates_with_core, - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), core_index_enabled, ); assert_eq!(expected_backed_candidates_with_core, before); @@ -3235,7 +3238,7 @@ mod sanitizers { // Update `minimum_backing_votes` in HostConfig. We want `minimum_backing_votes` set // to one so that the candidate will have enough backing votes even after dropping // Alice's one. - let mut hc = configuration::Pallet::::config(); + let mut hc = configuration::ActiveConfig::::get(); hc.minimum_backing_votes = 1; configuration::Pallet::::force_set_active_config(hc); @@ -3280,7 +3283,7 @@ mod sanitizers { let before = expected_backed_candidates_with_core.clone(); filter_backed_statements_from_disabled_validators::( &mut expected_backed_candidates_with_core, - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), core_index_enabled, ); assert_eq!(before.len(), expected_backed_candidates_with_core.len()); @@ -3368,7 +3371,7 @@ mod sanitizers { filter_backed_statements_from_disabled_validators::( &mut expected_backed_candidates_with_core, - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), core_index_enabled, ); @@ -3400,7 +3403,7 @@ mod sanitizers { filter_backed_statements_from_disabled_validators::( &mut expected_backed_candidates_with_core, - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), true, ); @@ -3422,7 +3425,7 @@ mod sanitizers { filter_backed_statements_from_disabled_validators::( &mut expected_backed_candidates_with_core, - &>::allowed_relay_parents(), + &shared::AllowedRelayParents::::get(), true, ); diff --git a/polkadot/runtime/parachains/src/reward_points.rs b/polkadot/runtime/parachains/src/reward_points.rs index e9a9c5547a7ad8f35b61008c49f0002126a5b276..3be743a2c55133da56e52b654bfa87f26ef596d1 100644 --- a/polkadot/runtime/parachains/src/reward_points.rs +++ b/polkadot/runtime/parachains/src/reward_points.rs @@ -45,7 +45,7 @@ where indices: impl IntoIterator, points: u32, ) { - let validators = session_info::Pallet::::account_keys(&session_index); + let validators = session_info::AccountKeys::::get(&session_index); let validators = match validators .defensive_proof("account_keys are present for dispute_period sessions") { @@ -71,7 +71,7 @@ where C::ValidatorSet: ValidatorSet, { fn reward_backing(indices: impl IntoIterator) { - let session_index = shared::Pallet::::session_index(); + let session_index = shared::CurrentSessionIndex::::get(); Self::reward_only_active(session_index, indices, BACKING_POINTS); } diff --git a/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs b/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs index 21f54121ab18f0da0b3b8560477444ba82ad0080..39d4f520994a9993e64f448b456086d4aca99a83 100644 --- a/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs +++ b/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs @@ -41,7 +41,7 @@ use sp_std::{collections::btree_map::BTreeMap, prelude::*}; /// Implementation for the `validators` function of the runtime API. pub fn validators() -> Vec { - >::active_validator_keys() + shared::ActiveValidatorKeys::::get() } /// Implementation for the `validator_groups` function of the runtime API. @@ -49,29 +49,29 @@ pub fn validator_groups( ) -> (Vec>, GroupRotationInfo>) { // This formula needs to be the same as the one we use // when populating group_responsible in `availability_cores` - let now = >::block_number() + One::one(); + let now = frame_system::Pallet::::block_number() + One::one(); - let groups = >::validator_groups(); - let rotation_info = >::group_rotation_info(now); + let groups = scheduler::ValidatorGroups::::get(); + let rotation_info = scheduler::Pallet::::group_rotation_info(now); (groups, rotation_info) } /// Implementation for the `availability_cores` function of the runtime API. pub fn availability_cores() -> Vec>> { - let cores = >::availability_cores(); - let now = >::block_number() + One::one(); + let cores = scheduler::AvailabilityCores::::get(); + let now = frame_system::Pallet::::block_number() + One::one(); // This explicit update is only strictly required for session boundaries: // // At the end of a session we clear the claim queues: Without this update call, nothing would be // scheduled to the client. - >::free_cores_and_fill_claimqueue(Vec::new(), now); + scheduler::Pallet::::free_cores_and_fill_claimqueue(Vec::new(), now); - let time_out_for = >::availability_timeout_predicate(); + let time_out_for = scheduler::Pallet::::availability_timeout_predicate(); let group_responsible_for = - |backed_in_number, core_index| match >::group_assigned_to_core( + |backed_in_number, core_index| match scheduler::Pallet::::group_assigned_to_core( core_index, backed_in_number, ) { @@ -87,7 +87,7 @@ pub fn availability_cores() -> Vec = >::scheduled_paras().collect(); + let scheduled: BTreeMap<_, _> = scheduler::Pallet::::scheduled_paras().collect(); cores .into_iter() @@ -98,13 +98,13 @@ pub fn availability_cores() -> Vec v1 migration, this bit of code // can also be removed. - let pending_availability = if >::on_chain_storage_version() == + let pending_availability = if inclusion::Pallet::::on_chain_storage_version() == StorageVersion::new(0) { inclusion::migration::v0::PendingAvailability::::get(entry.para_id()) .expect("Occupied core always has pending availability; qed") } else { - let candidate = >::pending_availability_with_core( + let candidate = inclusion::Pallet::::pending_availability_with_core( entry.para_id(), CoreIndex(i as u32), ) @@ -130,12 +130,12 @@ pub fn availability_cores() -> Vec>::next_up_on_available(CoreIndex( + next_up_on_available: scheduler::Pallet::::next_up_on_available(CoreIndex( i as u32, )), occupied_since: backed_in_number, time_out_at: time_out_for(backed_in_number).live_until, - next_up_on_time_out: >::next_up_on_time_out(CoreIndex( + next_up_on_time_out: scheduler::Pallet::::next_up_on_time_out(CoreIndex( i as u32, )), availability: pending_availability.availability_votes.clone(), @@ -162,8 +162,8 @@ pub fn availability_cores() -> Vec( ) -> (BlockNumberFor, ::Hash) { use parity_scale_codec::Decode as _; - let state_version = >::runtime_version().state_version(); - let relay_parent_number = >::block_number(); + let state_version = frame_system::Pallet::::runtime_version().state_version(); + let relay_parent_number = frame_system::Pallet::::block_number(); let relay_parent_storage_root = T::Hash::decode(&mut &sp_io::storage::root(state_version)[..]) .expect("storage root must decode to the Hash type; qed"); (relay_parent_number, relay_parent_storage_root) @@ -229,13 +229,13 @@ pub fn assumed_validation_data( let persisted_validation_data = make_validation_data().or_else(|| { // Try again with force enacting the pending candidates. This check only makes sense if // there are any pending candidates. - >::pending_availability(para_id).and_then(|_| { - >::force_enact(para_id); + inclusion::Pallet::::pending_availability(para_id).and_then(|_| { + inclusion::Pallet::::force_enact(para_id); make_validation_data() }) }); // If we were successful, also query current validation code hash. - persisted_validation_data.zip(>::current_code_hash(¶_id)) + persisted_validation_data.zip(paras::CurrentCodeHash::::get(¶_id)) } /// Implementation for the `check_validation_outputs` function of the runtime API. @@ -243,8 +243,8 @@ pub fn check_validation_outputs( para_id: ParaId, outputs: primitives::CandidateCommitments, ) -> bool { - let relay_parent_number = >::block_number(); - >::check_validation_outputs_for_runtime_api( + let relay_parent_number = frame_system::Pallet::::block_number(); + inclusion::Pallet::::check_validation_outputs_for_runtime_api( para_id, relay_parent_number, outputs, @@ -260,7 +260,7 @@ pub fn session_index_for_child() -> SessionIndex { // // Incidentally, this is also the rationale for why it is OK to query validators or // occupied cores or etc. and expect the correct response "for child". - >::session_index() + shared::CurrentSessionIndex::::get() } /// Implementation for the `AuthorityDiscoveryApi::authorities()` function of the runtime API. @@ -269,18 +269,18 @@ pub fn session_index_for_child() -> SessionIndex { pub fn relevant_authority_ids( ) -> Vec { let current_session_index = session_index_for_child::(); - let earliest_stored_session = >::earliest_stored_session(); + let earliest_stored_session = session_info::EarliestStoredSession::::get(); // Due to `max_validators`, the `SessionInfo` stores only the validators who are actively // selected to participate in parachain consensus. We'd like all authorities for the current // and next sessions to be used in authority-discovery. The two sets likely have large overlap. - let mut authority_ids = >::current_authorities().to_vec(); - authority_ids.extend(>::next_authorities().to_vec()); + let mut authority_ids = pallet_authority_discovery::Pallet::::current_authorities().to_vec(); + authority_ids.extend(pallet_authority_discovery::Pallet::::next_authorities().to_vec()); // Due to disputes, we'd like to remain connected to authorities of the previous few sessions. // For this, we don't need anyone other than the validators actively participating in consensus. for session_index in earliest_stored_session..current_session_index { - let info = >::session_info(session_index); + let info = session_info::Sessions::::get(session_index); if let Some(mut info) = info { authority_ids.append(&mut info.discovery_keys); } @@ -297,14 +297,14 @@ pub fn validation_code( para_id: ParaId, assumption: OccupiedCoreAssumption, ) -> Option { - with_assumption::(para_id, assumption, || >::current_code(¶_id)) + with_assumption::(para_id, assumption, || paras::Pallet::::current_code(¶_id)) } /// Implementation for the `candidate_pending_availability` function of the runtime API. pub fn candidate_pending_availability( para_id: ParaId, ) -> Option> { - >::candidate_pending_availability(para_id) + inclusion::Pallet::::candidate_pending_availability(para_id) } /// Implementation for the `candidate_events` function of the runtime API. @@ -317,7 +317,7 @@ where { use inclusion::Event as RawEvent; - >::read_events_no_consensus() + frame_system::Pallet::::read_events_no_consensus() .into_iter() .filter_map(|record| extract_event(record.event)) .filter_map(|event| { @@ -338,33 +338,33 @@ where /// Get the session info for the given session, if stored. pub fn session_info(index: SessionIndex) -> Option { - >::session_info(index) + session_info::Sessions::::get(index) } /// Implementation for the `dmq_contents` function of the runtime API. pub fn dmq_contents( recipient: ParaId, ) -> Vec>> { - >::dmq_contents(recipient) + dmp::Pallet::::dmq_contents(recipient) } /// Implementation for the `inbound_hrmp_channels_contents` function of the runtime API. pub fn inbound_hrmp_channels_contents( recipient: ParaId, ) -> BTreeMap>>> { - >::inbound_hrmp_channels_contents(recipient) + hrmp::Pallet::::inbound_hrmp_channels_contents(recipient) } /// Implementation for the `validation_code_by_hash` function of the runtime API. pub fn validation_code_by_hash( hash: ValidationCodeHash, ) -> Option { - >::code_by_hash(hash) + paras::CodeByHash::::get(hash) } /// Disputes imported via means of on-chain imports. pub fn on_chain_votes() -> Option> { - >::on_chain_votes() + paras_inherent::OnChainVotes::::get() } /// Submits an PVF pre-checking vote. @@ -372,12 +372,12 @@ pub fn submit_pvf_check_statement( stmt: PvfCheckStatement, signature: ValidatorSignature, ) { - >::submit_pvf_check_statement(stmt, signature) + paras::Pallet::::submit_pvf_check_statement(stmt, signature) } /// Returns the list of all PVF code hashes that require pre-checking. pub fn pvfs_require_precheck() -> Vec { - >::pvfs_require_precheck() + paras::Pallet::::pvfs_require_precheck() } /// Returns the validation code hash for the given parachain making the given @@ -389,28 +389,26 @@ pub fn validation_code_hash( where T: inclusion::Config, { - with_assumption::(para_id, assumption, || { - >::current_code_hash(¶_id) - }) + with_assumption::(para_id, assumption, || paras::CurrentCodeHash::::get(¶_id)) } /// Implementation for `get_session_disputes` function from the runtime API pub fn get_session_disputes( ) -> Vec<(SessionIndex, CandidateHash, DisputeState>)> { - >::disputes() + disputes::Pallet::::disputes() } /// Get session executor parameter set pub fn session_executor_params( session_index: SessionIndex, ) -> Option { - >::session_executor_params(session_index) + session_info::SessionExecutorParams::::get(session_index) } /// Implementation of `unapplied_slashes` runtime API pub fn unapplied_slashes( ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { - >::unapplied_slashes() + disputes::slashing::Pallet::::unapplied_slashes() } /// Implementation of `submit_report_dispute_lost` runtime API @@ -420,7 +418,7 @@ pub fn submit_unsigned_slashing_report( ) -> Option<()> { let key_ownership_proof = key_ownership_proof.decode()?; - >::submit_unsigned_slashing_report( + disputes::slashing::Pallet::::submit_unsigned_slashing_report( dispute_proof, key_ownership_proof, ) @@ -428,46 +426,46 @@ pub fn submit_unsigned_slashing_report( /// Return the min backing votes threshold from the configuration. pub fn minimum_backing_votes() -> u32 { - >::config().minimum_backing_votes + configuration::ActiveConfig::::get().minimum_backing_votes } /// Implementation for `ParaBackingState` function from the runtime API pub fn backing_state( para_id: ParaId, ) -> Option>> { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); // Async backing is only expected to be enabled with a tracker capacity of 1. // Subsequent configuration update gets applied on new session, which always // clears the buffer. // // Thus, minimum relay parent is ensured to have asynchronous backing enabled. - let now = >::block_number(); - let min_relay_parent_number = >::allowed_relay_parents() + let now = frame_system::Pallet::::block_number(); + let min_relay_parent_number = shared::AllowedRelayParents::::get() .hypothetical_earliest_block_number(now, config.async_backing_params.allowed_ancestry_len); - let required_parent = >::para_head(para_id)?; - let validation_code_hash = >::current_code_hash(para_id)?; + let required_parent = paras::Heads::::get(para_id)?; + let validation_code_hash = paras::CurrentCodeHash::::get(para_id)?; - let upgrade_restriction = >::upgrade_restriction_signal(para_id); + let upgrade_restriction = paras::UpgradeRestrictionSignal::::get(para_id); let future_validation_code = - >::future_code_upgrade_at(para_id).and_then(|block_num| { + paras::FutureCodeUpgrades::::get(para_id).and_then(|block_num| { // Only read the storage if there's a pending upgrade. - Some(block_num).zip(>::future_code_hash(para_id)) + Some(block_num).zip(paras::FutureCodeHash::::get(para_id)) }); let (ump_msg_count, ump_total_bytes) = - >::relay_dispatch_queue_size(para_id); + inclusion::Pallet::::relay_dispatch_queue_size(para_id); let ump_remaining = config.max_upward_queue_count - ump_msg_count; let ump_remaining_bytes = config.max_upward_queue_size - ump_total_bytes; - let dmp_remaining_messages = >::dmq_contents(para_id) + let dmp_remaining_messages = dmp::Pallet::::dmq_contents(para_id) .into_iter() .map(|msg| msg.sent_at) .collect(); - let valid_watermarks = >::valid_watermarks(para_id); + let valid_watermarks = hrmp::Pallet::::valid_watermarks(para_id); let hrmp_inbound = InboundHrmpLimitations { valid_watermarks }; - let hrmp_channels_out = >::outbound_remaining_capacity(para_id) + let hrmp_channels_out = hrmp::Pallet::::outbound_remaining_capacity(para_id) .into_iter() .map(|(para, (messages_remaining, bytes_remaining))| { (para, OutboundHrmpChannelLimitations { messages_remaining, bytes_remaining }) @@ -516,7 +514,7 @@ pub fn backing_state( /// Implementation for `AsyncBackingParams` function from the runtime API pub fn async_backing_params() -> AsyncBackingParams { - >::config().async_backing_params + configuration::ActiveConfig::::get().async_backing_params } /// Implementation for `DisabledValidators` @@ -531,11 +529,10 @@ where /// Returns the current state of the node features. pub fn node_features() -> NodeFeatures { - >::config().node_features + configuration::ActiveConfig::::get().node_features } /// Approval voting subsystem configuration parameters pub fn approval_voting_params() -> ApprovalVotingParams { - let config = >::config(); - config.approval_voting_params + configuration::ActiveConfig::::get().approval_voting_params } diff --git a/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs b/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs index 28be3f53863b4fc637c6a1746fcc67dca1eba4f2..046f6041f0b8ccba36c866d82f277ecfd07bec57 100644 --- a/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs +++ b/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs @@ -22,7 +22,7 @@ use sp_std::collections::{btree_map::BTreeMap, vec_deque::VecDeque}; /// Returns the claimqueue from the scheduler pub fn claim_queue() -> BTreeMap> { - >::claimqueue() + scheduler::ClaimQueue::::get() .into_iter() .map(|(core_index, entries)| { (core_index, entries.into_iter().map(|e| e.para_id()).collect()) diff --git a/polkadot/runtime/parachains/src/scheduler.rs b/polkadot/runtime/parachains/src/scheduler.rs index 25840d9707dcc596233e7c19b20cf2f20360dcc5..baeec49839dfd03a9fb8fd71e7e88d2a3c79dc5c 100644 --- a/polkadot/runtime/parachains/src/scheduler.rs +++ b/polkadot/runtime/parachains/src/scheduler.rs @@ -86,8 +86,7 @@ pub mod pallet { /// multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe /// upper bound at 10k. #[pallet::storage] - #[pallet::getter(fn validator_groups)] - pub(crate) type ValidatorGroups = StorageValue<_, Vec>, ValueQuery>; + pub type ValidatorGroups = StorageValue<_, Vec>, ValueQuery>; /// One entry for each availability core. The i'th parachain belongs to the i'th core, with the /// remaining cores all being on demand parachain multiplexers. @@ -96,9 +95,7 @@ pub mod pallet { /// * The number of parachains and parathread multiplexers /// * The number of validators divided by `configuration.max_validators_per_core`. #[pallet::storage] - #[pallet::getter(fn availability_cores)] - pub(crate) type AvailabilityCores = - StorageValue<_, Vec>, ValueQuery>; + pub type AvailabilityCores = StorageValue<_, Vec>, ValueQuery>; /// Representation of a core in `AvailabilityCores`. /// @@ -140,15 +137,13 @@ pub mod pallet { /// Thus for all intents and purposes the effect of the session change is observed at the /// block following the session change, block number of which we save in this storage value. #[pallet::storage] - #[pallet::getter(fn session_start_block)] - pub(crate) type SessionStartBlock = StorageValue<_, BlockNumberFor, ValueQuery>; + pub type SessionStartBlock = StorageValue<_, BlockNumberFor, ValueQuery>; /// One entry for each availability core. The `VecDeque` represents the assignments to be /// scheduled on that core. The value contained here will not be valid after the end of /// a block. Runtime APIs should be used to determine scheduled cores for the upcoming block. #[pallet::storage] - #[pallet::getter(fn claimqueue)] - pub(crate) type ClaimQueue = + pub type ClaimQueue = StorageValue<_, BTreeMap>>, ValueQuery>; /// Assignments as tracked in the claim queue. @@ -273,8 +268,8 @@ impl Pallet { ValidatorGroups::::set(groups); } - let now = >::block_number() + One::one(); - >::set(now); + let now = frame_system::Pallet::::block_number() + One::one(); + SessionStartBlock::::set(now); } /// Free unassigned cores. Provide a list of cores that should be considered newly-freed along @@ -355,9 +350,9 @@ impl Pallet { /// `AssignmentProvider`. A claim is considered expired if it's `ttl` field is lower than the /// current block height. fn drop_expired_claims_from_claimqueue() { - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); let availability_cores = AvailabilityCores::::get(); - let ttl = >::config().scheduler_params.ttl; + let ttl = configuration::ActiveConfig::::get().scheduler_params.ttl; ClaimQueue::::mutate(|cq| { for (idx, _) in (0u32..).zip(availability_cores) { @@ -410,8 +405,8 @@ impl Pallet { core: CoreIndex, at: BlockNumberFor, ) -> Option { - let config = >::config(); - let session_start_block = >::get(); + let config = configuration::ActiveConfig::::get(); + let session_start_block = SessionStartBlock::::get(); if at < session_start_block { return None @@ -442,8 +437,8 @@ impl Pallet { /// This only ever times out cores that have been occupied across a group rotation boundary. pub(crate) fn availability_timeout_predicate( ) -> impl Fn(BlockNumberFor) -> AvailabilityTimeoutStatus> { - let config = >::config(); - let now = >::block_number(); + let config = configuration::ActiveConfig::::get(); + let now = frame_system::Pallet::::block_number(); let rotation_info = Self::group_rotation_info(now); let next_rotation = rotation_info.next_rotation_at(); @@ -470,8 +465,8 @@ impl Pallet { /// This can be used to avoid calling `availability_timeout_predicate` for each core in case /// this function returns false. pub(crate) fn availability_timeout_check_required() -> bool { - let config = >::config(); - let now = >::block_number() + One::one(); + let config = configuration::ActiveConfig::::get(); + let now = frame_system::Pallet::::block_number() + One::one(); let rotation_info = Self::group_rotation_info(now); let current_window = @@ -483,9 +478,10 @@ impl Pallet { pub(crate) fn group_rotation_info( now: BlockNumberFor, ) -> GroupRotationInfo> { - let session_start_block = Self::session_start_block(); - let group_rotation_frequency = - >::config().scheduler_params.group_rotation_frequency; + let session_start_block = SessionStartBlock::::get(); + let group_rotation_frequency = configuration::ActiveConfig::::get() + .scheduler_params + .group_rotation_frequency; GroupRotationInfo { session_start_block, now, group_rotation_frequency } } @@ -505,8 +501,9 @@ impl Pallet { /// Return the next thing that will be scheduled on this core assuming it is currently /// occupied and the candidate occupying it times out. pub(crate) fn next_up_on_time_out(core: CoreIndex) -> Option { - let max_availability_timeouts = - >::config().scheduler_params.max_availability_timeouts; + let max_availability_timeouts = configuration::ActiveConfig::::get() + .scheduler_params + .max_availability_timeouts; Self::next_up_on_available(core).or_else(|| { // Or, if none, the claim currently occupying the core, // as it would be put back on the queue after timing out if number of retries is not at @@ -561,7 +558,7 @@ impl Pallet { // ClaimQueue related functions // fn claimqueue_lookahead() -> u32 { - >::config().scheduler_params.lookahead + configuration::ActiveConfig::::get().scheduler_params.lookahead } /// Frees cores and fills the free claimqueue spots by popping from the `AssignmentProvider`. @@ -580,7 +577,7 @@ impl Pallet { let n_lookahead = Self::claimqueue_lookahead().max(1); let n_session_cores = T::AssignmentProvider::session_core_count(); let cq = ClaimQueue::::get(); - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let max_availability_timeouts = config.scheduler_params.max_availability_timeouts; let ttl = config.scheduler_params.ttl; diff --git a/polkadot/runtime/parachains/src/scheduler/migration.rs b/polkadot/runtime/parachains/src/scheduler/migration.rs index b030940fb41da8c8b85bce4fb14cf68723924058..5482c8821e58c7bdf8fd29b4607837355640a1f3 100644 --- a/polkadot/runtime/parachains/src/scheduler/migration.rs +++ b/polkadot/runtime/parachains/src/scheduler/migration.rs @@ -172,7 +172,7 @@ mod v1 { v0::ParathreadQueue::::kill(); v0::ParathreadClaimIndex::::kill(); - let now = >::block_number(); + let now = frame_system::Pallet::::block_number(); let scheduled = v0::Scheduled::::take(); let sched_len = scheduled.len() as u64; for core_assignment in scheduled { @@ -182,7 +182,7 @@ mod v1 { v1::add_to_claimqueue::(core_idx, pe); } - let parachains = paras::Pallet::::parachains(); + let parachains = paras::Parachains::::get(); let availability_cores = v0::AvailabilityCores::::take(); let mut new_availability_cores = Vec::new(); diff --git a/polkadot/runtime/parachains/src/scheduler/tests.rs b/polkadot/runtime/parachains/src/scheduler/tests.rs index 720f645e3bdc148819b3eab00b0f54f706367f9d..200f49ff2e820cd2716f25693628173c56b0f4aa 100644 --- a/polkadot/runtime/parachains/src/scheduler/tests.rs +++ b/polkadot/runtime/parachains/src/scheduler/tests.rs @@ -31,7 +31,7 @@ use crate::{ Scheduler, System, Test, }, paras::{ParaGenesisArgs, ParaKind}, - scheduler::{common::Assignment, ClaimQueue}, + scheduler::{self, common::Assignment, ClaimQueue}, }; fn schedule_blank_para(id: ParaId) { @@ -222,7 +222,7 @@ fn claimqueue_ttl_drop_fn_works() { Scheduler::add_to_claimqueue(core_idx, paras_entry_non_expired.clone()); Scheduler::add_to_claimqueue(core_idx, paras_entry_expired.clone()); Scheduler::add_to_claimqueue(core_idx, paras_entry_non_expired.clone()); - let cq = Scheduler::claimqueue(); + let cq = scheduler::ClaimQueue::::get(); assert_eq!(cq.get(&core_idx).unwrap().len(), 3); // Add a claim to the test assignment provider. @@ -233,7 +233,7 @@ fn claimqueue_ttl_drop_fn_works() { // Drop expired claim. Scheduler::drop_expired_claims_from_claimqueue(); - let cq = Scheduler::claimqueue(); + let cq = scheduler::ClaimQueue::::get(); let cqc = cq.get(&core_idx).unwrap(); // Same number of claims, because a new claim is popped from `MockAssigner` instead of the // expired one @@ -392,7 +392,7 @@ fn fill_claimqueue_fills() { ); // Sits on the same core as `para_a` assert_eq!( - Scheduler::claimqueue().get(&CoreIndex(0)).unwrap()[1], + scheduler::ClaimQueue::::get().get(&CoreIndex(0)).unwrap()[1], ParasEntry { assignment: assignment_b.clone(), availability_timeouts: 0, @@ -483,7 +483,7 @@ fn schedule_schedules_including_just_freed() { assert!(Scheduler::scheduled_paras().collect::>().is_empty()); // All `core_queue`s should be empty - Scheduler::claimqueue() + scheduler::ClaimQueue::::get() .iter() .for_each(|(_core_idx, core_queue)| assert_eq!(core_queue.len(), 0)) } @@ -603,7 +603,7 @@ fn schedule_clears_availability_cores() { run_to_block(2, |_| None); - assert_eq!(Scheduler::claimqueue().len(), 3); + assert_eq!(scheduler::ClaimQueue::::get().len(), 3); // cores 0, 1, and 2 should be occupied. mark them as such. Scheduler::occupied( @@ -620,7 +620,7 @@ fn schedule_clears_availability_cores() { assert_eq!(cores[2].is_free(), false); // All `core_queue`s should be empty - Scheduler::claimqueue() + scheduler::ClaimQueue::::get() .iter() .for_each(|(_core_idx, core_queue)| assert!(core_queue.len() == 0)) } @@ -699,7 +699,7 @@ fn schedule_rotates_groups() { _ => None, }); - let session_start_block = Scheduler::session_start_block(); + let session_start_block = scheduler::SessionStartBlock::::get(); assert_eq!(session_start_block, 1); MockAssigner::add_test_assignment(assignment_a.clone()); @@ -783,7 +783,7 @@ fn on_demand_claims_are_pruned_after_timing_out() { // #2 now += 1; run_to_block(now, |_| None); - assert_eq!(Scheduler::claimqueue().len(), 1); + assert_eq!(scheduler::ClaimQueue::::get().len(), 1); // ParaId a is in the claimqueue. assert!(claimqueue_contains_para_ids::(vec![para_a])); @@ -949,13 +949,13 @@ fn next_up_on_available_uses_next_scheduled_or_none() { { assert_eq!(Scheduler::claimqueue_len(), 1); - assert_eq!(Scheduler::availability_cores().len(), 1); + assert_eq!(scheduler::AvailabilityCores::::get().len(), 1); let mut map = BTreeMap::new(); map.insert(CoreIndex(0), para_a); Scheduler::occupied(map); - let cores = Scheduler::availability_cores(); + let cores = scheduler::AvailabilityCores::::get(); match &cores[0] { CoreOccupied::Paras(entry) => assert_eq!(entry, &entry_a), _ => panic!("There should only be one test assigner core"), @@ -1006,14 +1006,14 @@ fn next_up_on_time_out_reuses_claim_if_nothing_queued() { run_to_block(2, |_| None); { - assert_eq!(Scheduler::claimqueue().len(), 1); - assert_eq!(Scheduler::availability_cores().len(), 1); + assert_eq!(scheduler::ClaimQueue::::get().len(), 1); + assert_eq!(scheduler::AvailabilityCores::::get().len(), 1); let mut map = BTreeMap::new(); map.insert(CoreIndex(0), para_a); Scheduler::occupied(map); - let cores = Scheduler::availability_cores(); + let cores = scheduler::AvailabilityCores::::get(); match cores.get(0).unwrap() { CoreOccupied::Paras(entry) => { assert_eq!(entry.assignment, assignment_a.clone()); @@ -1058,7 +1058,7 @@ fn session_change_requires_reschedule_dropping_removed_paras() { new_test_ext(genesis_config).execute_with(|| { // Setting explicit core count MockAssigner::set_core_count(5); - let coretime_ttl = >::config().scheduler_params.ttl; + let coretime_ttl = configuration::ActiveConfig::::get().scheduler_params.ttl; schedule_blank_para(para_a); schedule_blank_para(para_b); @@ -1085,7 +1085,7 @@ fn session_change_requires_reschedule_dropping_removed_paras() { _ => None, }); - assert_eq!(Scheduler::claimqueue().len(), 2); + assert_eq!(scheduler::ClaimQueue::::get().len(), 2); let groups = ValidatorGroups::::get(); assert_eq!(groups.len(), 5); @@ -1116,7 +1116,7 @@ fn session_change_requires_reschedule_dropping_removed_paras() { Scheduler::free_cores_and_fill_claimqueue(BTreeMap::new(), 3); assert_eq!( - Scheduler::claimqueue(), + scheduler::ClaimQueue::::get(), vec![( CoreIndex(0), vec![ParasEntry::new( @@ -1156,7 +1156,7 @@ fn session_change_requires_reschedule_dropping_removed_paras() { _ => None, }); - assert_eq!(Scheduler::claimqueue().len(), 2); + assert_eq!(scheduler::ClaimQueue::::get().len(), 2); let groups = ValidatorGroups::::get(); assert_eq!(groups.len(), 5); @@ -1164,7 +1164,7 @@ fn session_change_requires_reschedule_dropping_removed_paras() { Scheduler::free_cores_and_fill_claimqueue(BTreeMap::new(), 4); assert_eq!( - Scheduler::claimqueue(), + scheduler::ClaimQueue::::get(), vec![ ( CoreIndex(0), diff --git a/polkadot/runtime/parachains/src/session_info.rs b/polkadot/runtime/parachains/src/session_info.rs index 4ca5a73d42b99378838927d9a67a60ea83c05a07..2f7f1ead76ade121d5ed06182cb7f69bf2ba71c4 100644 --- a/polkadot/runtime/parachains/src/session_info.rs +++ b/polkadot/runtime/parachains/src/session_info.rs @@ -86,28 +86,23 @@ pub mod pallet { /// The earliest session for which previous session info is stored. #[pallet::storage] - #[pallet::getter(fn earliest_stored_session)] - pub(crate) type EarliestStoredSession = StorageValue<_, SessionIndex, ValueQuery>; + pub type EarliestStoredSession = StorageValue<_, SessionIndex, ValueQuery>; /// Session information in a rolling window. /// Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`. /// Does not have any entries before the session index in the first session change notification. #[pallet::storage] - #[pallet::getter(fn session_info)] - pub(crate) type Sessions = StorageMap<_, Identity, SessionIndex, SessionInfo>; + pub type Sessions = StorageMap<_, Identity, SessionIndex, SessionInfo>; /// The validator account keys of the validators actively participating in parachain consensus. // We do not store this in `SessionInfo` to avoid leaking the `AccountId` type to the client, // which would complicate the migration process if we are to change it in the future. #[pallet::storage] - #[pallet::getter(fn account_keys)] - pub(crate) type AccountKeys = - StorageMap<_, Identity, SessionIndex, Vec>>; + pub type AccountKeys = StorageMap<_, Identity, SessionIndex, Vec>>; /// Executor parameter set for a given session index #[pallet::storage] - #[pallet::getter(fn session_executor_params)] - pub(crate) type SessionExecutorParams = + pub type SessionExecutorParams = StorageMap<_, Identity, SessionIndex, ExecutorParams>; } @@ -120,7 +115,7 @@ pub trait AuthorityDiscoveryConfig { impl AuthorityDiscoveryConfig for T { fn authorities() -> Vec { - >::current_authorities().to_vec() + pallet_authority_discovery::Pallet::::current_authorities().to_vec() } } @@ -129,17 +124,17 @@ impl Pallet { pub(crate) fn initializer_on_new_session( notification: &crate::initializer::SessionChangeNotification>, ) { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); let dispute_period = config.dispute_period; let validators = notification.validators.clone().into(); let discovery_keys = ::authorities(); let assignment_keys = AssignmentKeysUnsafe::::get(); - let active_set = >::active_validator_indices(); + let active_set = shared::ActiveValidatorIndices::::get(); - let validator_groups = >::validator_groups().into(); - let n_cores = >::availability_cores().len() as u32; + let validator_groups = scheduler::ValidatorGroups::::get().into(); + let n_cores = scheduler::AvailabilityCores::::get().len() as u32; let zeroth_delay_tranche_width = config.zeroth_delay_tranche_width; let relay_vrf_modulo_samples = config.relay_vrf_modulo_samples; let n_delay_tranches = config.n_delay_tranches; diff --git a/polkadot/runtime/parachains/src/session_info/tests.rs b/polkadot/runtime/parachains/src/session_info/tests.rs index a5bfeae0745599c00de718684420fc377a9184f1..18b9d8f59010eb49a26768ad31a3c3296d65b41a 100644 --- a/polkadot/runtime/parachains/src/session_info/tests.rs +++ b/polkadot/runtime/parachains/src/session_info/tests.rs @@ -92,7 +92,7 @@ fn new_session_every_block(n: BlockNumber) -> Option::get(); assert_eq!(config.dispute_period, 2); // Move to session 10 @@ -109,11 +109,11 @@ fn session_pruning_is_based_on_dispute_period() { Configuration::set_dispute_period(RuntimeOrigin::root(), dispute_period).unwrap(); // Dispute period does not automatically change - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); assert_eq!(config.dispute_period, 2); // Two sessions later it will though run_to_block(120, session_changes); - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); assert_eq!(config.dispute_period, 5); run_to_block(200, session_changes); @@ -128,7 +128,7 @@ fn session_pruning_is_based_on_dispute_period() { // Two sessions later it kicks in run_to_block(220, session_changes); - let config = Configuration::config(); + let config = configuration::ActiveConfig::::get(); assert_eq!(config.dispute_period, 16); // Earliest session stays the same assert_eq!(EarliestStoredSession::::get(), 21 - dispute_period); @@ -183,7 +183,7 @@ fn session_info_active_subsets() { new_test_ext(genesis_config()).execute_with(|| { ParasShared::set_active_validators_with_indices(active_set.clone(), validators.clone()); - assert_eq!(ParasShared::active_validator_indices(), active_set); + assert_eq!(shared::ActiveValidatorIndices::::get(), active_set); AssignmentKeysUnsafe::::set(unscrambled_assignment.clone()); crate::mock::set_discovery_authorities(unscrambled_discovery.clone()); diff --git a/polkadot/runtime/parachains/src/shared.rs b/polkadot/runtime/parachains/src/shared.rs index bdaffcd505f8e3bfc0c62d1e5f5def4fb3617abc..319b22515889568b7e29f84a4710f0ff5e10d8d0 100644 --- a/polkadot/runtime/parachains/src/shared.rs +++ b/polkadot/runtime/parachains/src/shared.rs @@ -138,25 +138,20 @@ pub mod pallet { /// The current session index. #[pallet::storage] - #[pallet::getter(fn session_index)] - pub(super) type CurrentSessionIndex = StorageValue<_, SessionIndex, ValueQuery>; + pub type CurrentSessionIndex = StorageValue<_, SessionIndex, ValueQuery>; /// All the validators actively participating in parachain consensus. /// Indices are into the broader validator set. #[pallet::storage] - #[pallet::getter(fn active_validator_indices)] - pub(super) type ActiveValidatorIndices = - StorageValue<_, Vec, ValueQuery>; + pub type ActiveValidatorIndices = StorageValue<_, Vec, ValueQuery>; /// The parachain attestation keys of the validators actively participating in parachain /// consensus. This should be the same length as `ActiveValidatorIndices`. #[pallet::storage] - #[pallet::getter(fn active_validator_keys)] - pub(super) type ActiveValidatorKeys = StorageValue<_, Vec, ValueQuery>; + pub type ActiveValidatorKeys = StorageValue<_, Vec, ValueQuery>; /// All allowed relay-parents. #[pallet::storage] - #[pallet::getter(fn allowed_relay_parents)] pub(crate) type AllowedRelayParents = StorageValue<_, AllowedRelayParentsTracker>, ValueQuery>; @@ -218,13 +213,13 @@ impl Pallet { /// Return the session index that should be used for any future scheduled changes. pub fn scheduled_session() -> SessionIndex { - Self::session_index().saturating_add(SESSION_DELAY) + CurrentSessionIndex::::get().saturating_add(SESSION_DELAY) } /// Fetches disabled validators list from session pallet. /// CAVEAT: this might produce incorrect results on session boundaries pub fn disabled_validators() -> Vec { - let shuffled_indices = Pallet::::active_validator_indices(); + let shuffled_indices = ActiveValidatorIndices::::get(); // mapping from raw validator index to `ValidatorIndex` // this computation is the same within a session, but should be cheap let reverse_index = shuffled_indices diff --git a/polkadot/runtime/parachains/src/shared/tests.rs b/polkadot/runtime/parachains/src/shared/tests.rs index ae12b4b3fc16f0d2c60c787aab8d8ce360391a8f..4ae37463a6d9d010332de3346750dc7d57156861 100644 --- a/polkadot/runtime/parachains/src/shared/tests.rs +++ b/polkadot/runtime/parachains/src/shared/tests.rs @@ -17,7 +17,8 @@ use super::*; use crate::{ configuration::HostConfiguration, - mock::{new_test_ext, MockGenesisConfig, ParasShared}, + mock::{new_test_ext, MockGenesisConfig, ParasShared, Test}, + shared, }; use assert_matches::assert_matches; use keyring::Sr25519Keyring; @@ -120,10 +121,10 @@ fn sets_and_shuffles_validators() { ]) ); - assert_eq!(ParasShared::active_validator_keys(), validators); + assert_eq!(shared::ActiveValidatorKeys::::get(), validators); assert_eq!( - ParasShared::active_validator_indices(), + shared::ActiveValidatorIndices::::get(), vec![ ValidatorIndex(4), ValidatorIndex(1), @@ -155,10 +156,10 @@ fn sets_truncates_and_shuffles_validators() { assert_eq!(validators, validator_pubkeys(&[Sr25519Keyring::Ferdie, Sr25519Keyring::Bob,])); - assert_eq!(ParasShared::active_validator_keys(), validators); + assert_eq!(shared::ActiveValidatorKeys::::get(), validators); assert_eq!( - ParasShared::active_validator_indices(), + shared::ActiveValidatorIndices::::get(), vec![ValidatorIndex(4), ValidatorIndex(1),] ); }); diff --git a/polkadot/runtime/parachains/src/ump_tests.rs b/polkadot/runtime/parachains/src/ump_tests.rs index 5867a8fca66387743618ff1bebfebe19a14a0c41..43829974b5693ea9f57494722cad54600b1beb7b 100644 --- a/polkadot/runtime/parachains/src/ump_tests.rs +++ b/polkadot/runtime/parachains/src/ump_tests.rs @@ -15,13 +15,14 @@ // along with Polkadot. If not, see . use crate::{ + configuration, inclusion::{ tests::run_to_block_default_notifications as run_to_block, AggregateMessageOrigin, AggregateMessageOrigin::Ump, UmpAcceptanceCheckErr, UmpQueueId, }, mock::{ - assert_last_event, assert_last_events, new_test_ext, Configuration, MessageQueue, - MessageQueueSize, MockGenesisConfig, ParaInclusion, Processed, System, Test, *, + assert_last_event, assert_last_events, new_test_ext, MessageQueue, MessageQueueSize, + MockGenesisConfig, ParaInclusion, Processed, System, Test, *, }, }; use frame_support::{ @@ -88,7 +89,7 @@ fn queue_upward_msg(para: ParaId, msg: UpwardMessage) { fn try_queue_upward_msg(para: ParaId, msg: UpwardMessage) -> Result<(), UmpAcceptanceCheckErr> { let msgs = vec![msg]; - ParaInclusion::check_upward_messages(&Configuration::config(), para, &msgs)?; + ParaInclusion::check_upward_messages(&configuration::ActiveConfig::::get(), para, &msgs)?; ParaInclusion::receive_upward_messages(para, msgs.as_slice()); Ok(()) } @@ -107,7 +108,12 @@ mod check_upward_messages { /// Check that these messages *could* be queued. fn check(para: ParaId, msgs: Vec, err: Option) { assert_eq!( - ParaInclusion::check_upward_messages(&Configuration::config(), para, &msgs[..]).err(), + ParaInclusion::check_upward_messages( + &configuration::ActiveConfig::::get(), + para, + &msgs[..] + ) + .err(), err ); } @@ -132,7 +138,8 @@ mod check_upward_messages { fn num_per_candidate_exceeded_error() { new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| { let _g = frame_support::StorageNoopGuard::default(); - let permitted = Configuration::config().max_upward_message_num_per_candidate; + let permitted = + configuration::ActiveConfig::::get().max_upward_message_num_per_candidate; for sent in 0..permitted + 1 { check(P_0, vec![msg(""); sent as usize], None); @@ -151,8 +158,9 @@ mod check_upward_messages { fn size_per_message_exceeded_error() { new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| { let _g = frame_support::StorageNoopGuard::default(); - let max_size = Configuration::config().max_upward_message_size; - let max_per_candidate = Configuration::config().max_upward_message_num_per_candidate; + let max_size = configuration::ActiveConfig::::get().max_upward_message_size; + let max_per_candidate = + configuration::ActiveConfig::::get().max_upward_message_num_per_candidate; for msg_size in 0..=max_size { check(P_0, vec![vec![0; msg_size as usize]], None); @@ -175,7 +183,7 @@ mod check_upward_messages { #[test] fn queue_count_exceeded_error() { new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| { - let limit = Configuration::config().max_upward_queue_count as u64; + let limit = configuration::ActiveConfig::::get().max_upward_queue_count as u64; for _ in 0..limit { check(P_0, vec![msg("")], None); @@ -198,10 +206,10 @@ mod check_upward_messages { #[test] fn queue_size_exceeded_error() { new_test_ext(GenesisConfigBuilder::large_queue_count().build()).execute_with(|| { - let limit = Configuration::config().max_upward_queue_size as u64; + let limit = configuration::ActiveConfig::::get().max_upward_queue_size as u64; assert_eq!(pallet_message_queue::ItemHeader::::max_encoded_len(), 5); assert!( - Configuration::config().max_upward_queue_size < + configuration::ActiveConfig::::get().max_upward_queue_size < crate::inclusion::MaxUmpMessageLenOf::::get(), "Test will not work" ); @@ -351,7 +359,7 @@ fn queue_enact_too_long_ignored() { #[test] fn relay_dispatch_queue_size_is_updated() { new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| { - let cfg = Configuration::config(); + let cfg = configuration::ActiveConfig::::get(); for p in 0..100 { let para = p.into(); @@ -430,7 +438,7 @@ fn verify_relay_dispatch_queue_size_is_externally_accessible() { // Make sure that the relay dispatch queue size storage entry is accessible via well known // keys and is decodable into a (u32, u32). new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| { - let cfg = Configuration::config(); + let cfg = configuration::ActiveConfig::::get(); for para in 0..10 { let para = para.into(); diff --git a/polkadot/runtime/parachains/src/util.rs b/polkadot/runtime/parachains/src/util.rs index 493a9d055efd6eb3260edc68e965365303474082..5aa2d58da3c9bd70ec8ec201a59705c21faffb9b 100644 --- a/polkadot/runtime/parachains/src/util.rs +++ b/polkadot/runtime/parachains/src/util.rs @@ -32,10 +32,10 @@ pub fn make_persisted_validation_data( relay_parent_number: BlockNumberFor, relay_parent_storage_root: T::Hash, ) -> Option>> { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); Some(PersistedValidationData { - parent_head: >::para_head(¶_id)?, + parent_head: paras::Heads::::get(¶_id)?, relay_parent_number, relay_parent_storage_root, max_pov_size: config.max_pov_size, @@ -49,7 +49,7 @@ pub fn make_persisted_validation_data_with_parent( relay_parent_storage_root: T::Hash, parent_head: HeadData, ) -> PersistedValidationData> { - let config = >::config(); + let config = configuration::ActiveConfig::::get(); PersistedValidationData { parent_head, diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index d33c58007843e0cccd1aafea18c107a53d9cc48b..894d7fac2f0a4d0e07f1b97f19b3f6d73147dd23 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -155,7 +155,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("rococo"), impl_name: create_runtime_str!("parity-rococo-v2.0"), authoring_version: 0, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 24, @@ -1199,9 +1199,11 @@ parameter_types! { pub struct ParaHeadsRootProvider; impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { - let mut para_heads: Vec<(u32, Vec)> = Paras::parachains() + let mut para_heads: Vec<(u32, Vec)> = parachains_paras::Parachains::::get() .into_iter() - .filter_map(|id| Paras::para_head(&id).map(|head| (id.into(), head.0))) + .filter_map(|id| { + parachains_paras::Heads::::get(&id).map(|head| (id.into(), head.0)) + }) .collect(); para_heads.sort(); binary_merkle_tree::merkle_root::( @@ -1446,7 +1448,7 @@ pub mod migrations { impl coretime::migration::GetLegacyLease for GetLegacyLeaseImpl { fn get_parachain_lease_in_blocks(para: ParaId) -> Option { let now = frame_system::Pallet::::block_number(); - let lease = slots::Pallet::::lease(para); + let lease = slots::Leases::::get(para); if lease.is_empty() { return None; } diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index b44b448b012f0b2b2effcff233d3e1acf5819392..4930610c1d80a3e632232b2f72c81ece97ae1955 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -152,7 +152,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("westend"), impl_name: create_runtime_str!("parity-westend"), authoring_version: 2, - spec_version: 1_009_000, + spec_version: 1_010_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 24, @@ -354,9 +354,11 @@ parameter_types! { pub struct ParaHeadsRootProvider; impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { - let mut para_heads: Vec<(u32, Vec)> = Paras::parachains() + let mut para_heads: Vec<(u32, Vec)> = parachains_paras::Parachains::::get() .into_iter() - .filter_map(|id| Paras::para_head(&id).map(|head| (id.into(), head.0))) + .filter_map(|id| { + parachains_paras::Heads::::get(&id).map(|head| (id.into(), head.0)) + }) .collect(); para_heads.sort_by_key(|k| k.0); binary_merkle_tree::merkle_root::( @@ -1615,7 +1617,7 @@ pub mod migrations { impl coretime::migration::GetLegacyLease for GetLegacyLeaseImpl { fn get_parachain_lease_in_blocks(para: ParaId) -> Option { let now = frame_system::Pallet::::block_number(); - let lease = slots::Pallet::::lease(para); + let lease = slots::Leases::::get(para); if lease.is_empty() { return None; } diff --git a/prdoc/pr_3190.prdoc b/prdoc/1.10.0/pr_3190.prdoc similarity index 100% rename from prdoc/pr_3190.prdoc rename to prdoc/1.10.0/pr_3190.prdoc diff --git a/prdoc/pr_3246.prdoc b/prdoc/1.10.0/pr_3246.prdoc similarity index 100% rename from prdoc/pr_3246.prdoc rename to prdoc/1.10.0/pr_3246.prdoc diff --git a/prdoc/pr_3302.prdoc b/prdoc/1.10.0/pr_3302.prdoc similarity index 100% rename from prdoc/pr_3302.prdoc rename to prdoc/1.10.0/pr_3302.prdoc diff --git a/prdoc/pr_3341.prdoc b/prdoc/1.10.0/pr_3341.prdoc similarity index 96% rename from prdoc/pr_3341.prdoc rename to prdoc/1.10.0/pr_3341.prdoc index de714fa5a1e5e2407dcb38ede6be9bb5761d35f1..eb86f9f0d0a6a85717c4b9a8160e31377e33c6d0 100644 --- a/prdoc/pr_3341.prdoc +++ b/prdoc/1.10.0/pr_3341.prdoc @@ -13,6 +13,4 @@ doc: crates: - name: polkadot-runtime-common - bump: minor - name: polkadot-runtime-parachains - bump: major diff --git a/prdoc/pr_3350.prdoc b/prdoc/1.10.0/pr_3350.prdoc similarity index 100% rename from prdoc/pr_3350.prdoc rename to prdoc/1.10.0/pr_3350.prdoc diff --git a/prdoc/pr_3438.prdoc b/prdoc/1.10.0/pr_3438.prdoc similarity index 100% rename from prdoc/pr_3438.prdoc rename to prdoc/1.10.0/pr_3438.prdoc diff --git a/prdoc/pr_3471.prdoc b/prdoc/1.10.0/pr_3471.prdoc similarity index 100% rename from prdoc/pr_3471.prdoc rename to prdoc/1.10.0/pr_3471.prdoc diff --git a/prdoc/pr_3479.prdoc b/prdoc/1.10.0/pr_3479.prdoc similarity index 100% rename from prdoc/pr_3479.prdoc rename to prdoc/1.10.0/pr_3479.prdoc diff --git a/prdoc/pr_3521.prdoc b/prdoc/1.10.0/pr_3521.prdoc similarity index 100% rename from prdoc/pr_3521.prdoc rename to prdoc/1.10.0/pr_3521.prdoc diff --git a/prdoc/pr_3580.prdoc b/prdoc/1.10.0/pr_3580.prdoc similarity index 100% rename from prdoc/pr_3580.prdoc rename to prdoc/1.10.0/pr_3580.prdoc diff --git a/prdoc/pr_3607.prdoc b/prdoc/1.10.0/pr_3607.prdoc similarity index 100% rename from prdoc/pr_3607.prdoc rename to prdoc/1.10.0/pr_3607.prdoc diff --git a/prdoc/pr_3616.prdoc b/prdoc/1.10.0/pr_3616.prdoc similarity index 100% rename from prdoc/pr_3616.prdoc rename to prdoc/1.10.0/pr_3616.prdoc diff --git a/prdoc/pr_3654.prdoc b/prdoc/1.10.0/pr_3654.prdoc similarity index 100% rename from prdoc/pr_3654.prdoc rename to prdoc/1.10.0/pr_3654.prdoc diff --git a/prdoc/pr_3696.prdoc b/prdoc/1.10.0/pr_3696.prdoc similarity index 100% rename from prdoc/pr_3696.prdoc rename to prdoc/1.10.0/pr_3696.prdoc diff --git a/prdoc/pr_3706.prdoc b/prdoc/1.10.0/pr_3706.prdoc similarity index 100% rename from prdoc/pr_3706.prdoc rename to prdoc/1.10.0/pr_3706.prdoc diff --git a/prdoc/pr_3714.prdoc b/prdoc/1.10.0/pr_3714.prdoc similarity index 100% rename from prdoc/pr_3714.prdoc rename to prdoc/1.10.0/pr_3714.prdoc diff --git a/prdoc/pr_3718.prdoc b/prdoc/1.10.0/pr_3718.prdoc similarity index 100% rename from prdoc/pr_3718.prdoc rename to prdoc/1.10.0/pr_3718.prdoc diff --git a/prdoc/pr_3722.prdoc b/prdoc/1.10.0/pr_3722.prdoc similarity index 100% rename from prdoc/pr_3722.prdoc rename to prdoc/1.10.0/pr_3722.prdoc diff --git a/prdoc/pr_3738.prdoc b/prdoc/1.10.0/pr_3738.prdoc similarity index 100% rename from prdoc/pr_3738.prdoc rename to prdoc/1.10.0/pr_3738.prdoc diff --git a/prdoc/pr_3740.prdoc b/prdoc/1.10.0/pr_3740.prdoc similarity index 100% rename from prdoc/pr_3740.prdoc rename to prdoc/1.10.0/pr_3740.prdoc diff --git a/prdoc/pr_3749.prdoc b/prdoc/1.10.0/pr_3749.prdoc similarity index 100% rename from prdoc/pr_3749.prdoc rename to prdoc/1.10.0/pr_3749.prdoc diff --git a/prdoc/pr_3754.prdoc b/prdoc/1.10.0/pr_3754.prdoc similarity index 100% rename from prdoc/pr_3754.prdoc rename to prdoc/1.10.0/pr_3754.prdoc diff --git a/prdoc/pr_3761.prdoc b/prdoc/1.10.0/pr_3761.prdoc similarity index 100% rename from prdoc/pr_3761.prdoc rename to prdoc/1.10.0/pr_3761.prdoc diff --git a/prdoc/pr_3792.prdoc b/prdoc/1.10.0/pr_3792.prdoc similarity index 100% rename from prdoc/pr_3792.prdoc rename to prdoc/1.10.0/pr_3792.prdoc diff --git a/prdoc/pr_3795.prdoc b/prdoc/1.10.0/pr_3795.prdoc similarity index 100% rename from prdoc/pr_3795.prdoc rename to prdoc/1.10.0/pr_3795.prdoc diff --git a/prdoc/pr_3808.prdoc b/prdoc/1.10.0/pr_3808.prdoc similarity index 100% rename from prdoc/pr_3808.prdoc rename to prdoc/1.10.0/pr_3808.prdoc diff --git a/prdoc/pr_3817.prdoc b/prdoc/1.10.0/pr_3817.prdoc similarity index 100% rename from prdoc/pr_3817.prdoc rename to prdoc/1.10.0/pr_3817.prdoc diff --git a/prdoc/pr_3835.prdoc b/prdoc/1.10.0/pr_3835.prdoc similarity index 100% rename from prdoc/pr_3835.prdoc rename to prdoc/1.10.0/pr_3835.prdoc diff --git a/prdoc/pr_3844.prdoc b/prdoc/1.10.0/pr_3844.prdoc similarity index 100% rename from prdoc/pr_3844.prdoc rename to prdoc/1.10.0/pr_3844.prdoc diff --git a/prdoc/pr_3849.prdoc b/prdoc/1.10.0/pr_3849.prdoc similarity index 100% rename from prdoc/pr_3849.prdoc rename to prdoc/1.10.0/pr_3849.prdoc diff --git a/prdoc/pr_3850.prdoc b/prdoc/1.10.0/pr_3850.prdoc similarity index 100% rename from prdoc/pr_3850.prdoc rename to prdoc/1.10.0/pr_3850.prdoc diff --git a/prdoc/pr_3854.prdoc b/prdoc/1.10.0/pr_3854.prdoc similarity index 100% rename from prdoc/pr_3854.prdoc rename to prdoc/1.10.0/pr_3854.prdoc diff --git a/prdoc/pr_3927.prdoc b/prdoc/1.10.0/pr_3927.prdoc similarity index 100% rename from prdoc/pr_3927.prdoc rename to prdoc/1.10.0/pr_3927.prdoc diff --git a/prdoc/pr_3950.prdoc b/prdoc/1.10.0/pr_3950.prdoc similarity index 100% rename from prdoc/pr_3950.prdoc rename to prdoc/1.10.0/pr_3950.prdoc diff --git a/prdoc/pr_3961.prdoc b/prdoc/1.10.0/pr_3961.prdoc similarity index 100% rename from prdoc/pr_3961.prdoc rename to prdoc/1.10.0/pr_3961.prdoc diff --git a/prdoc/pr_3660.prdoc b/prdoc/pr_3660.prdoc new file mode 100644 index 0000000000000000000000000000000000000000..26245e5e795c74eebfe1b7f1f09cc3741830289b --- /dev/null +++ b/prdoc/pr_3660.prdoc @@ -0,0 +1,16 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Removed `pallet::getter` usage from Polkadot Runtime pallets + +doc: + - audience: Runtime Dev + description: | + This PR removes all the `pallet::getter` usages from the Polkadot Runtime pallets, and updates dependant runtimes accordingly. + The syntax `StorageItem::::get()` should be used instead. + +crates: + - name: polkadot-runtime-common + - name: polkadot-runtime-parachains + - name: rococo-runtime + - name: westend-runtime diff --git a/prdoc/pr_3789.prdoc b/prdoc/pr_3789.prdoc new file mode 100644 index 0000000000000000000000000000000000000000..802334423b16e49d31e6fa7baf149b3c4eb49e28 --- /dev/null +++ b/prdoc/pr_3789.prdoc @@ -0,0 +1,12 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "[pallet-contracts] Benchmarks improvements" + +doc: + - audience: Runtime Dev + description: Reuse wasmi module when validating the wasm code. +crates: +- name: pallet-contracts + bump: patch + diff --git a/prdoc/pr_3915.prdoc b/prdoc/pr_3915.prdoc new file mode 100644 index 0000000000000000000000000000000000000000..a236288c99fbf9962c049105a411be50bbd60a01 --- /dev/null +++ b/prdoc/pr_3915.prdoc @@ -0,0 +1,14 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "[pallet-contracts] Weights update" + +doc: + - audience: Runtime Dev + description: | + Update Host functions benchmarks, instead of benchmarking the whole call extrinsic, this PR solely benchmark the execution of the Host function. + Previously, some benchmarks would overestimate the weight as both the parsing and execution of the contract were included in the benchmark. + +crates: +- name: pallet-contracts + bump: patch diff --git a/prdoc/pr_3934.prdoc b/prdoc/pr_3934.prdoc new file mode 100644 index 0000000000000000000000000000000000000000..69d8f70171ed3c0977e1ac4c007943570a1a1582 --- /dev/null +++ b/prdoc/pr_3934.prdoc @@ -0,0 +1,11 @@ +title: Update benchmarking macros + +doc: + - audience: Runtime Dev + description: | + Current benchmarking macro return a closure with the captured benchmarked code. + This could cause compilation issues when the benchmarked code has complex lifetime requirements. + This PR updates the existing macro by injecting the recoding parameter and invoking the start / stop method around the benchmarked block instead of returning a closure + +crates: [] + diff --git a/prdoc/pr_4072.prdoc b/prdoc/pr_4072.prdoc new file mode 100644 index 0000000000000000000000000000000000000000..7195b99c9d5a4ca6aac012b4207885348d492367 --- /dev/null +++ b/prdoc/pr_4072.prdoc @@ -0,0 +1,10 @@ +title: "Amend chainspecs for people-westend and add IBP bootnodes" + +doc: + - audience: Node Operator + description: | + Fixes the people-westend chain spec. + +crates: + - name: polkadot-parachain-bin + bump: patch diff --git a/scripts/bridges_update_subtree.sh b/scripts/bridges_update_subtree.sh deleted file mode 100755 index 2cd6d968d2b24894cc5a8faec02c96618f258d4b..0000000000000000000000000000000000000000 --- a/scripts/bridges_update_subtree.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash - -# A script to update bridges repo as subtree to Cumulus -# Usage: -# ./scripts/bridges_update_subtree.sh fetch -# ./scripts/bridges_update_subtree.sh patch -# ./scripts/bridges_update_subtree.sh merge - -set -e - -BRIDGES_BRANCH="${BRANCH:-polkadot-staging}" -BRIDGES_TARGET_DIR="${TARGET_DIR:-bridges}" - -function fetch() { - # the script is able to work only on clean git copy - [[ -z "$(git status --porcelain)" ]] || { - echo >&2 "The git copy must be clean (stash all your changes):"; - git status --porcelain - exit 1; - } - - local bridges_remote=$(git remote -v | grep "parity-bridges-common.git (fetch)" | head -n1 | awk '{print $1;}') - if [ -z "$bridges_remote" ]; then - echo "" - echo "Adding new remote: 'bridges' repo..." - echo "" - echo "... check your YubiKey ..." - git remote add -f bridges git@github.com:paritytech/parity-bridges-common.git - bridges_remote="bridges" - else - echo "" - echo "Fetching remote: '${bridges_remote}' repo..." - echo "" - echo "... check your YubiKey ..." - git fetch ${bridges_remote} --prune - fi - - echo "" - echo "Syncing/updating subtree with remote branch '${bridges_remote}/$BRIDGES_BRANCH' to target directory: '$BRIDGES_TARGET_DIR'" - echo "" - echo "... check your YubiKey ..." - git subtree pull --prefix=$BRIDGES_TARGET_DIR ${bridges_remote} $BRIDGES_BRANCH --squash -} - -function patch() { - echo "" - echo "Patching/removing unneeded stuff from subtree in target directory: '$BRIDGES_TARGET_DIR'" - $BRIDGES_TARGET_DIR/scripts/verify-pallets-build.sh --ignore-git-state --no-revert -} - -function merge() { - echo "" - echo "Merging stuff from subtree in target directory: '$BRIDGES_TARGET_DIR'" - - # stage all removed by patch: DU, MD, D, AD - only from subtree directory - git status -s | awk '$1 == "DU" || $1 == "D" || $1 == "MD" || $1 == "AD" {print $2}' | grep "^$BRIDGES_TARGET_DIR/" | xargs git rm -q --ignore-unmatch - - echo "" - echo "When all conflicts are resolved, do 'git merge --continue'" -} - -function amend() { - echo "" - echo "Amend stuff from subtree in target directory: '$BRIDGES_TARGET_DIR'" - git commit --amend -S -m "updating bridges subtree + remove extra folders" -} - -case "$1" in - fetch) - fetch - ;; - patch) - patch - ;; - merge) - merge - ;; - amend) - amend - ;; - all) - fetch - patch - ;; -esac diff --git a/substrate/client/chain-spec/res/chain_spec_as_json_fails_with_invalid_config.err b/substrate/client/chain-spec/res/chain_spec_as_json_fails_with_invalid_config.err index 826b515b77d3475810a60e90cdf03c9b341a5dca..c545b53b2bafea88af090236f825bbafe2baf8f8 100644 --- a/substrate/client/chain-spec/res/chain_spec_as_json_fails_with_invalid_config.err +++ b/substrate/client/chain-spec/res/chain_spec_as_json_fails_with_invalid_config.err @@ -1,5 +1,6 @@ -Invalid JSON blob: unknown field `babex`, expected one of `system`, `babe`, `substrateTest`, `balances` at line 2 column 9 for blob: +Invalid JSON blob: unknown field `babex`, expected one of `system`, `babe`, `substrateTest`, `balances` at line 3 column 9 for blob: { + "system": {}, "babex": { "authorities": [ [ @@ -16,13 +17,20 @@ Invalid JSON blob: unknown field `babex`, expected one of `system`, `babe`, `sub ] ], "epochConfig": { - "allowed_slots": "PrimaryAndSecondaryPlainSlots", "c": [ 3, 10 - ] + ], + "allowed_slots": "PrimaryAndSecondaryPlainSlots" } }, + "substrateTest": { + "authorities": [ + "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y" + ] + }, "balances": { "balances": [ [ @@ -102,13 +110,5 @@ Invalid JSON blob: unknown field `babex`, expected one of `system`, `babe`, `sub 100000000000000000 ] ] - }, - "substrateTest": { - "authorities": [ - "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", - "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", - "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y" - ] - }, - "system": {} + } } \ No newline at end of file diff --git a/substrate/client/network/sync/src/strategy/chain_sync.rs b/substrate/client/network/sync/src/strategy/chain_sync.rs index 1a7a18f2ea796146e1ec010668868b0fd3709146..fcda25907927f71a9af849ee376a8aba07b98129 100644 --- a/substrate/client/network/sync/src/strategy/chain_sync.rs +++ b/substrate/client/network/sync/src/strategy/chain_sync.rs @@ -1063,7 +1063,7 @@ where let peer = if let Some(peer) = self.peers.get_mut(&peer_id) { peer } else { - error!(target: LOG_TARGET, "💔 Called `on_validated_block_announce` with a bad peer ID"); + error!(target: LOG_TARGET, "💔 Called `on_validated_block_announce` with a bad peer ID {peer_id}"); return Some((hash, number)) }; diff --git a/substrate/frame/alliance/src/weights.rs b/substrate/frame/alliance/src/weights.rs index b5bb50957207f6c75cbca0479d97127ffcca572a..0184ac91107c3706221201607b7f798f18003e55 100644 --- a/substrate/frame/alliance/src/weights.rs +++ b/substrate/frame/alliance/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_alliance +//! Autogenerated weights for `pallet_alliance` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/alliance/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/alliance/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_alliance. +/// Weight functions needed for `pallet_alliance`. pub trait WeightInfo { fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight; fn vote(m: u32, ) -> Weight; @@ -74,205 +73,209 @@ pub trait WeightInfo { fn abdicate_fellow_status() -> Weight; } -/// Weights for pallet_alliance using the Substrate node and recommended hardware. +/// Weights for `pallet_alliance` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion ProposalOf (r:1 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalCount (r:1 w:1) - /// Proof Skipped: AllianceMotion ProposalCount (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Voting (r:0 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalCount` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `653 + m * (32 ±0) + p * (35 ±0)` + // Measured: `688 + m * (32 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (32 ±0) + p * (36 ±0)` - // Minimum execution time: 36_908_000 picoseconds. - Weight::from_parts(39_040_304, 6676) - // Standard Error: 131 - .saturating_add(Weight::from_parts(781, 0).saturating_mul(b.into())) - // Standard Error: 1_375 - .saturating_add(Weight::from_parts(48_745, 0).saturating_mul(m.into())) - // Standard Error: 1_358 - .saturating_add(Weight::from_parts(148_047, 0).saturating_mul(p.into())) + // Minimum execution time: 31_545_000 picoseconds. + Weight::from_parts(33_432_774, 6676) + // Standard Error: 121 + .saturating_add(Weight::from_parts(232, 0).saturating_mul(b.into())) + // Standard Error: 1_263 + .saturating_add(Weight::from_parts(47_800, 0).saturating_mul(m.into())) + // Standard Error: 1_247 + .saturating_add(Weight::from_parts(188_655, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1042 + m * (64 ±0)` + // Measured: `1147 + m * (64 ±0)` // Estimated: `6676 + m * (64 ±0)` - // Minimum execution time: 30_166_000 picoseconds. - Weight::from_parts(32_798_454, 6676) - // Standard Error: 1_432 - .saturating_add(Weight::from_parts(83_001, 0).saturating_mul(m.into())) + // Minimum execution time: 30_462_000 picoseconds. + Weight::from_parts(31_639_466, 6676) + // Standard Error: 980 + .saturating_add(Weight::from_parts(60_075, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:0 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `576 + m * (96 ±0) + p * (36 ±0)` + // Measured: `674 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 45_173_000 picoseconds. - Weight::from_parts(42_192_020, 6676) - // Standard Error: 1_456 - .saturating_add(Weight::from_parts(66_751, 0).saturating_mul(m.into())) - // Standard Error: 1_420 - .saturating_add(Weight::from_parts(158_161, 0).saturating_mul(p.into())) + // Minimum execution time: 40_765_000 picoseconds. + Weight::from_parts(37_690_472, 6676) + // Standard Error: 1_372 + .saturating_add(Weight::from_parts(69_441, 0).saturating_mul(m.into())) + // Standard Error: 1_338 + .saturating_add(Weight::from_parts(152_833, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:1 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1087 + m * (96 ±0) + p * (39 ±0)` + // Measured: `1254 + m * (96 ±0) + p * (39 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (40 ±0)` - // Minimum execution time: 58_290_000 picoseconds. - Weight::from_parts(54_924_919, 6676) - // Standard Error: 157 - .saturating_add(Weight::from_parts(464, 0).saturating_mul(b.into())) - // Standard Error: 1_665 - .saturating_add(Weight::from_parts(73_183, 0).saturating_mul(m.into())) - // Standard Error: 1_623 - .saturating_add(Weight::from_parts(168_318, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Minimum execution time: 57_367_000 picoseconds. + Weight::from_parts(57_264_486, 6676) + // Standard Error: 141 + .saturating_add(Weight::from_parts(884, 0).saturating_mul(b.into())) + // Standard Error: 1_495 + .saturating_add(Weight::from_parts(57_869, 0).saturating_mul(m.into())) + // Standard Error: 1_458 + .saturating_add(Weight::from_parts(158_784, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:1 w:0) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:0 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `577 + m * (96 ±0) + p * (36 ±0)` + // Measured: `675 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 46_794_000 picoseconds. - Weight::from_parts(43_092_958, 6676) - // Standard Error: 1_273 - .saturating_add(Weight::from_parts(71_054, 0).saturating_mul(m.into())) - // Standard Error: 1_257 - .saturating_add(Weight::from_parts(152_820, 0).saturating_mul(p.into())) + // Minimum execution time: 41_253_000 picoseconds. + Weight::from_parts(37_550_833, 6676) + // Standard Error: 1_162 + .saturating_add(Weight::from_parts(77_359, 0).saturating_mul(m.into())) + // Standard Error: 1_148 + .saturating_add(Weight::from_parts(153_523, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:1 w:0) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:0 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[5, 100]`. /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `684 + m * (96 ±0) + p * (35 ±0)` + // Measured: `728 + m * (96 ±0) + p * (35 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 47_338_000 picoseconds. - Weight::from_parts(41_257_479, 6676) - // Standard Error: 119 - .saturating_add(Weight::from_parts(1_019, 0).saturating_mul(b.into())) - // Standard Error: 1_277 - .saturating_add(Weight::from_parts(78_453, 0).saturating_mul(m.into())) - // Standard Error: 1_231 - .saturating_add(Weight::from_parts(150_991, 0).saturating_mul(p.into())) + // Minimum execution time: 42_385_000 picoseconds. + Weight::from_parts(37_222_159, 6676) + // Standard Error: 118 + .saturating_add(Weight::from_parts(1_743, 0).saturating_mul(b.into())) + // Standard Error: 1_268 + .saturating_add(Weight::from_parts(59_743, 0).saturating_mul(m.into())) + // Standard Error: 1_222 + .saturating_add(Weight::from_parts(159_606, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:2 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Members (r:1 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:1 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. /// The range of component `z` is `[0, 100]`. fn init_members(m: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `217` + // Measured: `284` // Estimated: `12362` - // Minimum execution time: 35_012_000 picoseconds. - Weight::from_parts(24_288_079, 12362) - // Standard Error: 878 - .saturating_add(Weight::from_parts(153_615, 0).saturating_mul(m.into())) - // Standard Error: 867 - .saturating_add(Weight::from_parts(129_307, 0).saturating_mul(z.into())) + // Minimum execution time: 31_184_000 picoseconds. + Weight::from_parts(22_860_208, 12362) + // Standard Error: 1_096 + .saturating_add(Weight::from_parts(129_834, 0).saturating_mul(m.into())) + // Standard Error: 1_083 + .saturating_add(Weight::from_parts(97_546, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Alliance Members (r:2 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Alliance DepositOf (r:200 w:50) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - /// Storage: System Account (r:50 w:50) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::DepositOf` (r:200 w:50) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:50 w:50) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `x` is `[1, 100]`. /// The range of component `y` is `[0, 100]`. /// The range of component `z` is `[0, 50]`. @@ -280,14 +283,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + x * (50 ±0) + y * (51 ±0) + z * (251 ±0)` // Estimated: `12362 + x * (2539 ±0) + y * (2539 ±0) + z * (2603 ±1)` - // Minimum execution time: 309_235_000 picoseconds. - Weight::from_parts(311_279_000, 12362) - // Standard Error: 26_510 - .saturating_add(Weight::from_parts(543_475, 0).saturating_mul(x.into())) - // Standard Error: 26_382 - .saturating_add(Weight::from_parts(603_169, 0).saturating_mul(y.into())) - // Standard Error: 52_716 - .saturating_add(Weight::from_parts(16_264_836, 0).saturating_mul(z.into())) + // Minimum execution time: 359_308_000 picoseconds. + Weight::from_parts(361_696_000, 12362) + // Standard Error: 30_917 + .saturating_add(Weight::from_parts(657_166, 0).saturating_mul(x.into())) + // Standard Error: 30_768 + .saturating_add(Weight::from_parts(670_249, 0).saturating_mul(y.into())) + // Standard Error: 61_480 + .saturating_add(Weight::from_parts(14_340_554, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into()))) @@ -298,397 +301,401 @@ impl WeightInfo for SubstrateWeight { .saturating_add(Weight::from_parts(0, 2539).saturating_mul(y.into())) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(z.into())) } - /// Storage: Alliance Rule (r:0 w:1) - /// Proof: Alliance Rule (max_values: Some(1), max_size: Some(87), added: 582, mode: MaxEncodedLen) + /// Storage: `Alliance::Rule` (r:0 w:1) + /// Proof: `Alliance::Rule` (`max_values`: Some(1), `max_size`: Some(87), added: 582, mode: `MaxEncodedLen`) fn set_rule() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_833_000 picoseconds. - Weight::from_parts(9_313_000, 0) + // Minimum execution time: 6_146_000 picoseconds. + Weight::from_parts(6_540_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Alliance Announcements (r:1 w:1) - /// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen) + /// Storage: `Alliance::Announcements` (r:1 w:1) + /// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`) fn announce() -> Weight { // Proof Size summary in bytes: - // Measured: `246` + // Measured: `279` // Estimated: `10187` - // Minimum execution time: 12_231_000 picoseconds. - Weight::from_parts(12_761_000, 10187) + // Minimum execution time: 9_008_000 picoseconds. + Weight::from_parts(9_835_000, 10187) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Alliance Announcements (r:1 w:1) - /// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen) + /// Storage: `Alliance::Announcements` (r:1 w:1) + /// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`) fn remove_announcement() -> Weight { // Proof Size summary in bytes: - // Measured: `319` + // Measured: `352` // Estimated: `10187` - // Minimum execution time: 13_079_000 picoseconds. - Weight::from_parts(13_612_000, 10187) + // Minimum execution time: 10_308_000 picoseconds. + Weight::from_parts(10_602_000, 10187) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Alliance Members (r:3 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousAccounts (r:1 w:0) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Alliance DepositOf (r:0 w:1) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Alliance::DepositOf` (r:0 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) fn join_alliance() -> Weight { // Proof Size summary in bytes: - // Measured: `468` + // Measured: `501` // Estimated: `18048` - // Minimum execution time: 44_574_000 picoseconds. - Weight::from_parts(46_157_000, 18048) + // Minimum execution time: 40_731_000 picoseconds. + Weight::from_parts(42_453_000, 18048) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Alliance Members (r:3 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousAccounts (r:1 w:0) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) fn nominate_ally() -> Weight { // Proof Size summary in bytes: - // Measured: `367` + // Measured: `400` // Estimated: `18048` - // Minimum execution time: 26_114_000 picoseconds. - Weight::from_parts(27_069_000, 18048) + // Minimum execution time: 24_198_000 picoseconds. + Weight::from_parts(25_258_000, 18048) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Alliance Members (r:2 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn elevate_ally() -> Weight { // Proof Size summary in bytes: - // Measured: `443` + // Measured: `510` // Estimated: `12362` - // Minimum execution time: 25_882_000 picoseconds. - Weight::from_parts(26_923_000, 12362) + // Minimum execution time: 24_509_000 picoseconds. + Weight::from_parts(25_490_000, 12362) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Alliance Members (r:4 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Alliance RetiringMembers (r:0 w:1) - /// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Alliance::Members` (r:4 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::RetiringMembers` (r:0 w:1) + /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn give_retirement_notice() -> Weight { // Proof Size summary in bytes: - // Measured: `443` + // Measured: `510` // Estimated: `23734` - // Minimum execution time: 34_112_000 picoseconds. - Weight::from_parts(35_499_000, 23734) + // Minimum execution time: 30_889_000 picoseconds. + Weight::from_parts(31_930_000, 23734) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Alliance RetiringMembers (r:1 w:1) - /// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - /// Storage: Alliance Members (r:1 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: Alliance DepositOf (r:1 w:1) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Alliance::RetiringMembers` (r:1 w:1) + /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Alliance::Members` (r:1 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::DepositOf` (r:1 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn retire() -> Weight { // Proof Size summary in bytes: - // Measured: `687` + // Measured: `720` // Estimated: `6676` - // Minimum execution time: 41_239_000 picoseconds. - Weight::from_parts(42_764_000, 6676) + // Minimum execution time: 38_363_000 picoseconds. + Weight::from_parts(39_428_000, 6676) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Alliance Members (r:3 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Alliance DepositOf (r:1 w:1) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::DepositOf` (r:1 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn kick_member() -> Weight { // Proof Size summary in bytes: - // Measured: `707` + // Measured: `774` // Estimated: `18048` - // Minimum execution time: 68_071_000 picoseconds. - Weight::from_parts(71_808_000, 18048) + // Minimum execution time: 60_717_000 picoseconds. + Weight::from_parts(61_785_000, 18048) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Alliance UnscrupulousAccounts (r:1 w:1) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousWebsites (r:1 w:1) - /// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `246` + // Measured: `279` // Estimated: `27187` - // Minimum execution time: 7_006_000 picoseconds. - Weight::from_parts(7_253_000, 27187) - // Standard Error: 3_403 - .saturating_add(Weight::from_parts(1_680_082, 0).saturating_mul(n.into())) - // Standard Error: 1_333 - .saturating_add(Weight::from_parts(72_943, 0).saturating_mul(l.into())) + // Minimum execution time: 5_393_000 picoseconds. + Weight::from_parts(5_577_000, 27187) + // Standard Error: 3_099 + .saturating_add(Weight::from_parts(1_043_175, 0).saturating_mul(n.into())) + // Standard Error: 1_213 + .saturating_add(Weight::from_parts(71_633, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Alliance UnscrupulousAccounts (r:1 w:1) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousWebsites (r:1 w:1) - /// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. fn remove_unscrupulous_items(n: u32, l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + l * (100 ±0) + n * (289 ±0)` // Estimated: `27187` - // Minimum execution time: 7_292_000 picoseconds. - Weight::from_parts(7_629_000, 27187) - // Standard Error: 176_225 - .saturating_add(Weight::from_parts(16_646_429, 0).saturating_mul(n.into())) - // Standard Error: 69_017 - .saturating_add(Weight::from_parts(310_978, 0).saturating_mul(l.into())) + // Minimum execution time: 5_318_000 picoseconds. + Weight::from_parts(5_581_000, 27187) + // Standard Error: 188_914 + .saturating_add(Weight::from_parts(17_878_267, 0).saturating_mul(n.into())) + // Standard Error: 73_987 + .saturating_add(Weight::from_parts(258_754, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Alliance Members (r:3 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:3 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn abdicate_fellow_status() -> Weight { // Proof Size summary in bytes: - // Measured: `443` + // Measured: `510` // Estimated: `18048` - // Minimum execution time: 31_798_000 picoseconds. - Weight::from_parts(33_463_000, 18048) + // Minimum execution time: 29_423_000 picoseconds. + Weight::from_parts(30_141_000, 18048) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion ProposalOf (r:1 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalCount (r:1 w:1) - /// Proof Skipped: AllianceMotion ProposalCount (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Voting (r:0 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalCount` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `653 + m * (32 ±0) + p * (35 ±0)` + // Measured: `688 + m * (32 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (32 ±0) + p * (36 ±0)` - // Minimum execution time: 36_908_000 picoseconds. - Weight::from_parts(39_040_304, 6676) - // Standard Error: 131 - .saturating_add(Weight::from_parts(781, 0).saturating_mul(b.into())) - // Standard Error: 1_375 - .saturating_add(Weight::from_parts(48_745, 0).saturating_mul(m.into())) - // Standard Error: 1_358 - .saturating_add(Weight::from_parts(148_047, 0).saturating_mul(p.into())) + // Minimum execution time: 31_545_000 picoseconds. + Weight::from_parts(33_432_774, 6676) + // Standard Error: 121 + .saturating_add(Weight::from_parts(232, 0).saturating_mul(b.into())) + // Standard Error: 1_263 + .saturating_add(Weight::from_parts(47_800, 0).saturating_mul(m.into())) + // Standard Error: 1_247 + .saturating_add(Weight::from_parts(188_655, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1042 + m * (64 ±0)` + // Measured: `1147 + m * (64 ±0)` // Estimated: `6676 + m * (64 ±0)` - // Minimum execution time: 30_166_000 picoseconds. - Weight::from_parts(32_798_454, 6676) - // Standard Error: 1_432 - .saturating_add(Weight::from_parts(83_001, 0).saturating_mul(m.into())) + // Minimum execution time: 30_462_000 picoseconds. + Weight::from_parts(31_639_466, 6676) + // Standard Error: 980 + .saturating_add(Weight::from_parts(60_075, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:0 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `576 + m * (96 ±0) + p * (36 ±0)` + // Measured: `674 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 45_173_000 picoseconds. - Weight::from_parts(42_192_020, 6676) - // Standard Error: 1_456 - .saturating_add(Weight::from_parts(66_751, 0).saturating_mul(m.into())) - // Standard Error: 1_420 - .saturating_add(Weight::from_parts(158_161, 0).saturating_mul(p.into())) + // Minimum execution time: 40_765_000 picoseconds. + Weight::from_parts(37_690_472, 6676) + // Standard Error: 1_372 + .saturating_add(Weight::from_parts(69_441, 0).saturating_mul(m.into())) + // Standard Error: 1_338 + .saturating_add(Weight::from_parts(152_833, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:1 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1087 + m * (96 ±0) + p * (39 ±0)` + // Measured: `1254 + m * (96 ±0) + p * (39 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (40 ±0)` - // Minimum execution time: 58_290_000 picoseconds. - Weight::from_parts(54_924_919, 6676) - // Standard Error: 157 - .saturating_add(Weight::from_parts(464, 0).saturating_mul(b.into())) - // Standard Error: 1_665 - .saturating_add(Weight::from_parts(73_183, 0).saturating_mul(m.into())) - // Standard Error: 1_623 - .saturating_add(Weight::from_parts(168_318, 0).saturating_mul(p.into())) - .saturating_add(RocksDbWeight::get().reads(5_u64)) + // Minimum execution time: 57_367_000 picoseconds. + Weight::from_parts(57_264_486, 6676) + // Standard Error: 141 + .saturating_add(Weight::from_parts(884, 0).saturating_mul(b.into())) + // Standard Error: 1_495 + .saturating_add(Weight::from_parts(57_869, 0).saturating_mul(m.into())) + // Standard Error: 1_458 + .saturating_add(Weight::from_parts(158_784, 0).saturating_mul(p.into())) + .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:1 w:0) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:0 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `577 + m * (96 ±0) + p * (36 ±0)` + // Measured: `675 + m * (96 ±0) + p * (36 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 46_794_000 picoseconds. - Weight::from_parts(43_092_958, 6676) - // Standard Error: 1_273 - .saturating_add(Weight::from_parts(71_054, 0).saturating_mul(m.into())) - // Standard Error: 1_257 - .saturating_add(Weight::from_parts(152_820, 0).saturating_mul(p.into())) + // Minimum execution time: 41_253_000 picoseconds. + Weight::from_parts(37_550_833, 6676) + // Standard Error: 1_162 + .saturating_add(Weight::from_parts(77_359, 0).saturating_mul(m.into())) + // Standard Error: 1_148 + .saturating_add(Weight::from_parts(153_523, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:1 w:0) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Voting (r:1 w:1) - /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:1 w:0) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:1 w:0) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Proposals (r:1 w:1) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion ProposalOf (r:0 w:1) - /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:1 w:0) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[5, 100]`. /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `684 + m * (96 ±0) + p * (35 ±0)` + // Measured: `728 + m * (96 ±0) + p * (35 ±0)` // Estimated: `6676 + m * (97 ±0) + p * (36 ±0)` - // Minimum execution time: 47_338_000 picoseconds. - Weight::from_parts(41_257_479, 6676) - // Standard Error: 119 - .saturating_add(Weight::from_parts(1_019, 0).saturating_mul(b.into())) - // Standard Error: 1_277 - .saturating_add(Weight::from_parts(78_453, 0).saturating_mul(m.into())) - // Standard Error: 1_231 - .saturating_add(Weight::from_parts(150_991, 0).saturating_mul(p.into())) + // Minimum execution time: 42_385_000 picoseconds. + Weight::from_parts(37_222_159, 6676) + // Standard Error: 118 + .saturating_add(Weight::from_parts(1_743, 0).saturating_mul(b.into())) + // Standard Error: 1_268 + .saturating_add(Weight::from_parts(59_743, 0).saturating_mul(m.into())) + // Standard Error: 1_222 + .saturating_add(Weight::from_parts(159_606, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Alliance Members (r:2 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Members (r:1 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:1 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. /// The range of component `z` is `[0, 100]`. fn init_members(m: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `217` + // Measured: `284` // Estimated: `12362` - // Minimum execution time: 35_012_000 picoseconds. - Weight::from_parts(24_288_079, 12362) - // Standard Error: 878 - .saturating_add(Weight::from_parts(153_615, 0).saturating_mul(m.into())) - // Standard Error: 867 - .saturating_add(Weight::from_parts(129_307, 0).saturating_mul(z.into())) + // Minimum execution time: 31_184_000 picoseconds. + Weight::from_parts(22_860_208, 12362) + // Standard Error: 1_096 + .saturating_add(Weight::from_parts(129_834, 0).saturating_mul(m.into())) + // Standard Error: 1_083 + .saturating_add(Weight::from_parts(97_546, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Alliance Members (r:2 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Alliance DepositOf (r:200 w:50) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - /// Storage: System Account (r:50 w:50) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::DepositOf` (r:200 w:50) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:50 w:50) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `x` is `[1, 100]`. /// The range of component `y` is `[0, 100]`. /// The range of component `z` is `[0, 50]`. @@ -696,14 +703,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + x * (50 ±0) + y * (51 ±0) + z * (251 ±0)` // Estimated: `12362 + x * (2539 ±0) + y * (2539 ±0) + z * (2603 ±1)` - // Minimum execution time: 309_235_000 picoseconds. - Weight::from_parts(311_279_000, 12362) - // Standard Error: 26_510 - .saturating_add(Weight::from_parts(543_475, 0).saturating_mul(x.into())) - // Standard Error: 26_382 - .saturating_add(Weight::from_parts(603_169, 0).saturating_mul(y.into())) - // Standard Error: 52_716 - .saturating_add(Weight::from_parts(16_264_836, 0).saturating_mul(z.into())) + // Minimum execution time: 359_308_000 picoseconds. + Weight::from_parts(361_696_000, 12362) + // Standard Error: 30_917 + .saturating_add(Weight::from_parts(657_166, 0).saturating_mul(x.into())) + // Standard Error: 30_768 + .saturating_add(Weight::from_parts(670_249, 0).saturating_mul(y.into())) + // Standard Error: 61_480 + .saturating_add(Weight::from_parts(14_340_554, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(x.into()))) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(y.into()))) @@ -714,194 +721,194 @@ impl WeightInfo for () { .saturating_add(Weight::from_parts(0, 2539).saturating_mul(y.into())) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(z.into())) } - /// Storage: Alliance Rule (r:0 w:1) - /// Proof: Alliance Rule (max_values: Some(1), max_size: Some(87), added: 582, mode: MaxEncodedLen) + /// Storage: `Alliance::Rule` (r:0 w:1) + /// Proof: `Alliance::Rule` (`max_values`: Some(1), `max_size`: Some(87), added: 582, mode: `MaxEncodedLen`) fn set_rule() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_833_000 picoseconds. - Weight::from_parts(9_313_000, 0) + // Minimum execution time: 6_146_000 picoseconds. + Weight::from_parts(6_540_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Alliance Announcements (r:1 w:1) - /// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen) + /// Storage: `Alliance::Announcements` (r:1 w:1) + /// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`) fn announce() -> Weight { // Proof Size summary in bytes: - // Measured: `246` + // Measured: `279` // Estimated: `10187` - // Minimum execution time: 12_231_000 picoseconds. - Weight::from_parts(12_761_000, 10187) + // Minimum execution time: 9_008_000 picoseconds. + Weight::from_parts(9_835_000, 10187) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Alliance Announcements (r:1 w:1) - /// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen) + /// Storage: `Alliance::Announcements` (r:1 w:1) + /// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`) fn remove_announcement() -> Weight { // Proof Size summary in bytes: - // Measured: `319` + // Measured: `352` // Estimated: `10187` - // Minimum execution time: 13_079_000 picoseconds. - Weight::from_parts(13_612_000, 10187) + // Minimum execution time: 10_308_000 picoseconds. + Weight::from_parts(10_602_000, 10187) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Alliance Members (r:3 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousAccounts (r:1 w:0) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Alliance DepositOf (r:0 w:1) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Alliance::DepositOf` (r:0 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) fn join_alliance() -> Weight { // Proof Size summary in bytes: - // Measured: `468` + // Measured: `501` // Estimated: `18048` - // Minimum execution time: 44_574_000 picoseconds. - Weight::from_parts(46_157_000, 18048) + // Minimum execution time: 40_731_000 picoseconds. + Weight::from_parts(42_453_000, 18048) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Alliance Members (r:3 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousAccounts (r:1 w:0) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) fn nominate_ally() -> Weight { // Proof Size summary in bytes: - // Measured: `367` + // Measured: `400` // Estimated: `18048` - // Minimum execution time: 26_114_000 picoseconds. - Weight::from_parts(27_069_000, 18048) + // Minimum execution time: 24_198_000 picoseconds. + Weight::from_parts(25_258_000, 18048) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Alliance Members (r:2 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:2 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn elevate_ally() -> Weight { // Proof Size summary in bytes: - // Measured: `443` + // Measured: `510` // Estimated: `12362` - // Minimum execution time: 25_882_000 picoseconds. - Weight::from_parts(26_923_000, 12362) + // Minimum execution time: 24_509_000 picoseconds. + Weight::from_parts(25_490_000, 12362) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Alliance Members (r:4 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Alliance RetiringMembers (r:0 w:1) - /// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Alliance::Members` (r:4 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::RetiringMembers` (r:0 w:1) + /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn give_retirement_notice() -> Weight { // Proof Size summary in bytes: - // Measured: `443` + // Measured: `510` // Estimated: `23734` - // Minimum execution time: 34_112_000 picoseconds. - Weight::from_parts(35_499_000, 23734) + // Minimum execution time: 30_889_000 picoseconds. + Weight::from_parts(31_930_000, 23734) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Alliance RetiringMembers (r:1 w:1) - /// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - /// Storage: Alliance Members (r:1 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: Alliance DepositOf (r:1 w:1) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Alliance::RetiringMembers` (r:1 w:1) + /// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Alliance::Members` (r:1 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `Alliance::DepositOf` (r:1 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn retire() -> Weight { // Proof Size summary in bytes: - // Measured: `687` + // Measured: `720` // Estimated: `6676` - // Minimum execution time: 41_239_000 picoseconds. - Weight::from_parts(42_764_000, 6676) + // Minimum execution time: 38_363_000 picoseconds. + Weight::from_parts(39_428_000, 6676) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Alliance Members (r:3 w:1) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Alliance DepositOf (r:1 w:1) - /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:3 w:1) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Alliance::DepositOf` (r:1 w:1) + /// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn kick_member() -> Weight { // Proof Size summary in bytes: - // Measured: `707` + // Measured: `774` // Estimated: `18048` - // Minimum execution time: 68_071_000 picoseconds. - Weight::from_parts(71_808_000, 18048) + // Minimum execution time: 60_717_000 picoseconds. + Weight::from_parts(61_785_000, 18048) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Alliance UnscrupulousAccounts (r:1 w:1) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousWebsites (r:1 w:1) - /// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `246` + // Measured: `279` // Estimated: `27187` - // Minimum execution time: 7_006_000 picoseconds. - Weight::from_parts(7_253_000, 27187) - // Standard Error: 3_403 - .saturating_add(Weight::from_parts(1_680_082, 0).saturating_mul(n.into())) - // Standard Error: 1_333 - .saturating_add(Weight::from_parts(72_943, 0).saturating_mul(l.into())) + // Minimum execution time: 5_393_000 picoseconds. + Weight::from_parts(5_577_000, 27187) + // Standard Error: 3_099 + .saturating_add(Weight::from_parts(1_043_175, 0).saturating_mul(n.into())) + // Standard Error: 1_213 + .saturating_add(Weight::from_parts(71_633, 0).saturating_mul(l.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Alliance UnscrupulousAccounts (r:1 w:1) - /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: Alliance UnscrupulousWebsites (r:1 w:1) - /// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen) + /// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1) + /// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. fn remove_unscrupulous_items(n: u32, l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + l * (100 ±0) + n * (289 ±0)` // Estimated: `27187` - // Minimum execution time: 7_292_000 picoseconds. - Weight::from_parts(7_629_000, 27187) - // Standard Error: 176_225 - .saturating_add(Weight::from_parts(16_646_429, 0).saturating_mul(n.into())) - // Standard Error: 69_017 - .saturating_add(Weight::from_parts(310_978, 0).saturating_mul(l.into())) + // Minimum execution time: 5_318_000 picoseconds. + Weight::from_parts(5_581_000, 27187) + // Standard Error: 188_914 + .saturating_add(Weight::from_parts(17_878_267, 0).saturating_mul(n.into())) + // Standard Error: 73_987 + .saturating_add(Weight::from_parts(258_754, 0).saturating_mul(l.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Alliance Members (r:3 w:2) - /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) - /// Storage: AllianceMotion Proposals (r:1 w:0) - /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Members (r:0 w:1) - /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: AllianceMotion Prime (r:0 w:1) - /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Alliance::Members` (r:3 w:2) + /// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:0 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn abdicate_fellow_status() -> Weight { // Proof Size summary in bytes: - // Measured: `443` + // Measured: `510` // Estimated: `18048` - // Minimum execution time: 31_798_000 picoseconds. - Weight::from_parts(33_463_000, 18048) + // Minimum execution time: 29_423_000 picoseconds. + Weight::from_parts(30_141_000, 18048) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } diff --git a/substrate/frame/asset-conversion/src/weights.rs b/substrate/frame/asset-conversion/src/weights.rs index a0e687f7a4168032c59daf8616249776a123c363..212f56073f942bc4964ea7af2a5dde80fed1a4a5 100644 --- a/substrate/frame/asset-conversion/src/weights.rs +++ b/substrate/frame/asset-conversion/src/weights.rs @@ -17,24 +17,28 @@ //! Autogenerated weights for `pallet_asset_conversion` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-30, STEPS: `5`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/debug/substrate-node +// ./target/production/substrate-node // benchmark // pallet // --chain=dev -// --steps=5 -// --repeat=2 -// --pallet=pallet-asset-conversion +// --steps=50 +// --repeat=20 +// --pallet=pallet_asset_conversion +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 // --output=./substrate/frame/asset-conversion/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -59,11 +63,9 @@ pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { /// Storage: `AssetConversion::Pools` (r:1 w:1) /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:2 w:2) + /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:2 w:2) + /// Storage: `Assets::Asset` (r:2 w:0) /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `AssetConversion::NextPoolAssetId` (r:1 w:1) /// Proof: `AssetConversion::NextPoolAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -73,12 +75,12 @@ impl WeightInfo for SubstrateWeight { /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn create_pool() -> Weight { // Proof Size summary in bytes: - // Measured: `1081` + // Measured: `910` // Estimated: `6360` - // Minimum execution time: 1_576_000_000 picoseconds. - Weight::from_parts(1_668_000_000, 6360) - .saturating_add(T::DbWeight::get().reads(10_u64)) - .saturating_add(T::DbWeight::get().writes(10_u64)) + // Minimum execution time: 86_709_000 picoseconds. + Weight::from_parts(88_841_000, 6360) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } /// Storage: `AssetConversion::Pools` (r:1 w:0) /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) @@ -86,18 +88,20 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `Assets::Account` (r:4 w:4) /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `PoolAssets::Asset` (r:1 w:1) /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `PoolAssets::Account` (r:2 w:2) /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn add_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `1761` + // Measured: `1507` // Estimated: `11426` - // Minimum execution time: 1_636_000_000 picoseconds. - Weight::from_parts(1_894_000_000, 11426) - .saturating_add(T::DbWeight::get().reads(10_u64)) - .saturating_add(T::DbWeight::get().writes(9_u64)) + // Minimum execution time: 148_672_000 picoseconds. + Weight::from_parts(151_824_000, 11426) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(10_u64)) } /// Storage: `AssetConversion::Pools` (r:1 w:0) /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) @@ -111,10 +115,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn remove_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `1750` + // Measured: `1650` // Estimated: `11426` - // Minimum execution time: 1_507_000_000 picoseconds. - Weight::from_parts(1_524_000_000, 11426) + // Minimum execution time: 130_743_000 picoseconds. + Weight::from_parts(132_793_000, 11426) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -125,12 +129,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[2, 4]`. fn swap_exact_tokens_for_tokens(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (522 ±0)` + // Measured: `89 + n * (419 ±0)` // Estimated: `990 + n * (5218 ±0)` - // Minimum execution time: 937_000_000 picoseconds. - Weight::from_parts(941_000_000, 990) - // Standard Error: 40_863_477 - .saturating_add(Weight::from_parts(205_862_068, 0).saturating_mul(n.into())) + // Minimum execution time: 81_173_000 picoseconds. + Weight::from_parts(82_574_000, 990) + // Standard Error: 335_929 + .saturating_add(Weight::from_parts(11_607_291, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into())) @@ -142,12 +146,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[2, 4]`. fn swap_tokens_for_exact_tokens(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (522 ±0)` + // Measured: `89 + n * (419 ±0)` // Estimated: `990 + n * (5218 ±0)` - // Minimum execution time: 935_000_000 picoseconds. - Weight::from_parts(947_000_000, 990) - // Standard Error: 46_904_620 - .saturating_add(Weight::from_parts(218_275_862, 0).saturating_mul(n.into())) + // Minimum execution time: 80_562_000 picoseconds. + Weight::from_parts(82_501_000, 990) + // Standard Error: 329_460 + .saturating_add(Weight::from_parts(11_295_339, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into())) @@ -158,11 +162,9 @@ impl WeightInfo for SubstrateWeight { impl WeightInfo for () { /// Storage: `AssetConversion::Pools` (r:1 w:1) /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:2 w:2) + /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:2 w:2) + /// Storage: `Assets::Asset` (r:2 w:0) /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `AssetConversion::NextPoolAssetId` (r:1 w:1) /// Proof: `AssetConversion::NextPoolAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -172,12 +174,12 @@ impl WeightInfo for () { /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn create_pool() -> Weight { // Proof Size summary in bytes: - // Measured: `1081` + // Measured: `910` // Estimated: `6360` - // Minimum execution time: 1_576_000_000 picoseconds. - Weight::from_parts(1_668_000_000, 6360) - .saturating_add(RocksDbWeight::get().reads(10_u64)) - .saturating_add(RocksDbWeight::get().writes(10_u64)) + // Minimum execution time: 86_709_000 picoseconds. + Weight::from_parts(88_841_000, 6360) + .saturating_add(RocksDbWeight::get().reads(7_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } /// Storage: `AssetConversion::Pools` (r:1 w:0) /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) @@ -185,18 +187,20 @@ impl WeightInfo for () { /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `Assets::Account` (r:4 w:4) /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `PoolAssets::Asset` (r:1 w:1) /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `PoolAssets::Account` (r:2 w:2) /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn add_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `1761` + // Measured: `1507` // Estimated: `11426` - // Minimum execution time: 1_636_000_000 picoseconds. - Weight::from_parts(1_894_000_000, 11426) - .saturating_add(RocksDbWeight::get().reads(10_u64)) - .saturating_add(RocksDbWeight::get().writes(9_u64)) + // Minimum execution time: 148_672_000 picoseconds. + Weight::from_parts(151_824_000, 11426) + .saturating_add(RocksDbWeight::get().reads(11_u64)) + .saturating_add(RocksDbWeight::get().writes(10_u64)) } /// Storage: `AssetConversion::Pools` (r:1 w:0) /// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) @@ -210,10 +214,10 @@ impl WeightInfo for () { /// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn remove_liquidity() -> Weight { // Proof Size summary in bytes: - // Measured: `1750` + // Measured: `1650` // Estimated: `11426` - // Minimum execution time: 1_507_000_000 picoseconds. - Weight::from_parts(1_524_000_000, 11426) + // Minimum execution time: 130_743_000 picoseconds. + Weight::from_parts(132_793_000, 11426) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(8_u64)) } @@ -224,12 +228,12 @@ impl WeightInfo for () { /// The range of component `n` is `[2, 4]`. fn swap_exact_tokens_for_tokens(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (522 ±0)` + // Measured: `89 + n * (419 ±0)` // Estimated: `990 + n * (5218 ±0)` - // Minimum execution time: 937_000_000 picoseconds. - Weight::from_parts(941_000_000, 990) - // Standard Error: 40_863_477 - .saturating_add(Weight::from_parts(205_862_068, 0).saturating_mul(n.into())) + // Minimum execution time: 81_173_000 picoseconds. + Weight::from_parts(82_574_000, 990) + // Standard Error: 335_929 + .saturating_add(Weight::from_parts(11_607_291, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into())) @@ -241,12 +245,12 @@ impl WeightInfo for () { /// The range of component `n` is `[2, 4]`. fn swap_tokens_for_exact_tokens(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (522 ±0)` + // Measured: `89 + n * (419 ±0)` // Estimated: `990 + n * (5218 ±0)` - // Minimum execution time: 935_000_000 picoseconds. - Weight::from_parts(947_000_000, 990) - // Standard Error: 46_904_620 - .saturating_add(Weight::from_parts(218_275_862, 0).saturating_mul(n.into())) + // Minimum execution time: 80_562_000 picoseconds. + Weight::from_parts(82_501_000, 990) + // Standard Error: 329_460 + .saturating_add(Weight::from_parts(11_295_339, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into())) diff --git a/substrate/frame/asset-rate/src/weights.rs b/substrate/frame/asset-rate/src/weights.rs index 582e20e56d7dc7f40a0cbb3838622b309e8223d4..fb577b618b338593771f0b9d98fa17d4cffa1a9a 100644 --- a/substrate/frame/asset-rate/src/weights.rs +++ b/substrate/frame/asset-rate/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_asset_rate +//! Autogenerated weights for `pallet_asset_rate` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/asset-rate/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/asset-rate/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,83 +49,83 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_asset_rate. +/// Weight functions needed for `pallet_asset_rate`. pub trait WeightInfo { fn create() -> Weight; fn update() -> Weight; fn remove() -> Weight; } -/// Weights for pallet_asset_rate using the Substrate node and recommended hardware. +/// Weights for `pallet_asset_rate` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: AssetRate ConversionRateToNative (r:1 w:1) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3501` - // Minimum execution time: 11_700_000 picoseconds. - Weight::from_parts(12_158_000, 3501) + // Minimum execution time: 9_816_000 picoseconds. + Weight::from_parts(10_076_000, 3501) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: AssetRate ConversionRateToNative (r:1 w:1) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn update() -> Weight { // Proof Size summary in bytes: // Measured: `137` // Estimated: `3501` - // Minimum execution time: 12_119_000 picoseconds. - Weight::from_parts(12_548_000, 3501) + // Minimum execution time: 10_164_000 picoseconds. + Weight::from_parts(10_598_000, 3501) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: AssetRate ConversionRateToNative (r:1 w:1) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn remove() -> Weight { // Proof Size summary in bytes: // Measured: `137` // Estimated: `3501` - // Minimum execution time: 12_541_000 picoseconds. - Weight::from_parts(12_956_000, 3501) + // Minimum execution time: 10_837_000 picoseconds. + Weight::from_parts(11_050_000, 3501) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: AssetRate ConversionRateToNative (r:1 w:1) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3501` - // Minimum execution time: 11_700_000 picoseconds. - Weight::from_parts(12_158_000, 3501) + // Minimum execution time: 9_816_000 picoseconds. + Weight::from_parts(10_076_000, 3501) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: AssetRate ConversionRateToNative (r:1 w:1) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn update() -> Weight { // Proof Size summary in bytes: // Measured: `137` // Estimated: `3501` - // Minimum execution time: 12_119_000 picoseconds. - Weight::from_parts(12_548_000, 3501) + // Minimum execution time: 10_164_000 picoseconds. + Weight::from_parts(10_598_000, 3501) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: AssetRate ConversionRateToNative (r:1 w:1) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn remove() -> Weight { // Proof Size summary in bytes: // Measured: `137` // Estimated: `3501` - // Minimum execution time: 12_541_000 picoseconds. - Weight::from_parts(12_956_000, 3501) + // Minimum execution time: 10_837_000 picoseconds. + Weight::from_parts(11_050_000, 3501) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/asset-rewards/src/weights.rs b/substrate/frame/asset-rewards/src/weights.rs index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7deb3f6b77a1df733715042913ade1528af6e9f5 100644 --- a/substrate/frame/asset-rewards/src/weights.rs +++ b/substrate/frame/asset-rewards/src/weights.rs @@ -0,0 +1,300 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Autogenerated weights for `pallet_asset_rewards` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` + +// Executed Command: +// target/production/substrate-node +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_asset_rewards +// --chain=dev +// --header=./substrate/HEADER-APACHE2 +// --output=./substrate/frame/asset-rewards/src/weights.rs +// --template=./substrate/.maintain/frame-weight-template.hbs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; + +/// Weight functions needed for `pallet_asset_rewards`. +pub trait WeightInfo { + fn create_pool() -> Weight; + fn stake() -> Weight; + fn unstake() -> Weight; + fn harvest_rewards() -> Weight; + fn set_pool_reward_rate_per_block() -> Weight; + fn set_pool_admin() -> Weight; + fn set_pool_expiry_block() -> Weight; + fn deposit_reward_tokens() -> Weight; + fn withdraw_reward_tokens() -> Weight; +} + +/// Weights for `pallet_asset_rewards` using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl WeightInfo for SubstrateWeight { + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `AssetRewards::NextPoolId` (r:1 w:1) + /// Proof: `AssetRewards::NextPoolId` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::Pools` (r:0 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn create_pool() -> Weight { + // Proof Size summary in bytes: + // Measured: `333` + // Estimated: `3675` + // Minimum execution time: 15_461_000 picoseconds. + Weight::from_parts(16_048_000, 3675) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::PoolStakers` (r:1 w:1) + /// Proof: `AssetRewards::PoolStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn stake() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 17_959_000 picoseconds. + Weight::from_parts(18_708_000, 3742) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::PoolStakers` (r:1 w:1) + /// Proof: `AssetRewards::PoolStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn unstake() -> Weight { + // Proof Size summary in bytes: + // Measured: `417` + // Estimated: `3882` + // Minimum execution time: 21_580_000 picoseconds. + Weight::from_parts(22_478_000, 3882) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:0) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::PoolStakers` (r:1 w:1) + /// Proof: `AssetRewards::PoolStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn harvest_rewards() -> Weight { + // Proof Size summary in bytes: + // Measured: `660` + // Estimated: `6196` + // Minimum execution time: 58_827_000 picoseconds. + Weight::from_parts(59_910_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_pool_reward_rate_per_block() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 13_068_000 picoseconds. + Weight::from_parts(13_753_000, 3742) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_pool_admin() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 12_921_000 picoseconds. + Weight::from_parts(13_542_000, 3742) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_pool_expiry_block() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 13_628_000 picoseconds. + Weight::from_parts(14_245_000, 3742) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:0) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn deposit_reward_tokens() -> Weight { + // Proof Size summary in bytes: + // Measured: `520` + // Estimated: `6196` + // Minimum execution time: 45_885_000 picoseconds. + Weight::from_parts(47_405_000, 6196) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:0) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn withdraw_reward_tokens() -> Weight { + // Proof Size summary in bytes: + // Measured: `520` + // Estimated: `6196` + // Minimum execution time: 45_973_000 picoseconds. + Weight::from_parts(47_179_000, 6196) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } +} + +// For backwards compatibility and tests. +impl WeightInfo for () { + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `AssetRewards::NextPoolId` (r:1 w:1) + /// Proof: `AssetRewards::NextPoolId` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::Pools` (r:0 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn create_pool() -> Weight { + // Proof Size summary in bytes: + // Measured: `333` + // Estimated: `3675` + // Minimum execution time: 15_461_000 picoseconds. + Weight::from_parts(16_048_000, 3675) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::PoolStakers` (r:1 w:1) + /// Proof: `AssetRewards::PoolStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn stake() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 17_959_000 picoseconds. + Weight::from_parts(18_708_000, 3742) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::PoolStakers` (r:1 w:1) + /// Proof: `AssetRewards::PoolStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn unstake() -> Weight { + // Proof Size summary in bytes: + // Measured: `417` + // Estimated: `3882` + // Minimum execution time: 21_580_000 picoseconds. + Weight::from_parts(22_478_000, 3882) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:0) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetRewards::PoolStakers` (r:1 w:1) + /// Proof: `AssetRewards::PoolStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn harvest_rewards() -> Weight { + // Proof Size summary in bytes: + // Measured: `660` + // Estimated: `6196` + // Minimum execution time: 58_827_000 picoseconds. + Weight::from_parts(59_910_000, 6196) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_pool_reward_rate_per_block() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 13_068_000 picoseconds. + Weight::from_parts(13_753_000, 3742) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_pool_admin() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 12_921_000 picoseconds. + Weight::from_parts(13_542_000, 3742) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:1) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_pool_expiry_block() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3742` + // Minimum execution time: 13_628_000 picoseconds. + Weight::from_parts(14_245_000, 3742) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:0) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn deposit_reward_tokens() -> Weight { + // Proof Size summary in bytes: + // Measured: `520` + // Estimated: `6196` + // Minimum execution time: 45_885_000 picoseconds. + Weight::from_parts(47_405_000, 6196) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `AssetRewards::Pools` (r:1 w:0) + /// Proof: `AssetRewards::Pools` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn withdraw_reward_tokens() -> Weight { + // Proof Size summary in bytes: + // Measured: `520` + // Estimated: `6196` + // Minimum execution time: 45_973_000 picoseconds. + Weight::from_parts(47_179_000, 6196) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } +} diff --git a/substrate/frame/assets/src/weights.rs b/substrate/frame/assets/src/weights.rs index f20f7e317cff7c32d280b2e6fa9eaa9aa0fdbd57..7886cd364d516b71840cc3f95bfcc2299b7c5d18 100644 --- a/substrate/frame/assets/src/weights.rs +++ b/substrate/frame/assets/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_assets +//! Autogenerated weights for `pallet_assets` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/assets/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/assets/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_assets. +/// Weight functions needed for `pallet_assets`. pub trait WeightInfo { fn create() -> Weight; fn force_create() -> Weight; @@ -86,882 +85,894 @@ pub trait WeightInfo { fn block() -> Weight; } -/// Weights for pallet_assets using the Substrate node and recommended hardware. +/// Weights for `pallet_assets` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: // Measured: `293` // Estimated: `3675` - // Minimum execution time: 31_340_000 picoseconds. - Weight::from_parts(31_977_000, 3675) + // Minimum execution time: 26_165_000 picoseconds. + Weight::from_parts(26_838_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn force_create() -> Weight { // Proof Size summary in bytes: // Measured: `153` // Estimated: `3675` - // Minimum execution time: 13_342_000 picoseconds. - Weight::from_parts(13_782_000, 3675) + // Minimum execution time: 11_152_000 picoseconds. + Weight::from_parts(11_624_000, 3675) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn start_destroy() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 14_437_000 picoseconds. - Weight::from_parts(14_833_000, 3675) + // Minimum execution time: 11_961_000 picoseconds. + Weight::from_parts(12_408_000, 3675) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1001 w:1000) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1000 w:1000) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1001 w:1000) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + c * (208 ±0)` // Estimated: `3675 + c * (2609 ±0)` - // Minimum execution time: 18_728_000 picoseconds. - Weight::from_parts(18_982_000, 3675) - // Standard Error: 11_708 - .saturating_add(Weight::from_parts(14_363_570, 0).saturating_mul(c.into())) + // Minimum execution time: 15_815_000 picoseconds. + Weight::from_parts(16_370_000, 3675) + // Standard Error: 7_448 + .saturating_add(Weight::from_parts(13_217_179, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1001 w:1000) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1001 w:1000) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `522 + a * (86 ±0)` // Estimated: `3675 + a * (2623 ±0)` - // Minimum execution time: 18_611_000 picoseconds. - Weight::from_parts(18_970_000, 3675) - // Standard Error: 13_224 - .saturating_add(Weight::from_parts(16_397_299, 0).saturating_mul(a.into())) + // Minimum execution time: 16_791_000 picoseconds. + Weight::from_parts(17_066_000, 3675) + // Standard Error: 7_163 + .saturating_add(Weight::from_parts(14_436_592, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn finish_destroy() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 14_504_000 picoseconds. - Weight::from_parts(14_906_000, 3675) + // Minimum execution time: 12_769_000 picoseconds. + Weight::from_parts(13_097_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn mint() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 26_653_000 picoseconds. - Weight::from_parts(27_260_000, 3675) + // Minimum execution time: 22_539_000 picoseconds. + Weight::from_parts(23_273_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn burn() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 33_625_000 picoseconds. - Weight::from_parts(34_474_000, 3675) + // Minimum execution time: 30_885_000 picoseconds. + Weight::from_parts(31_800_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: // Measured: `498` // Estimated: `6208` - // Minimum execution time: 47_609_000 picoseconds. - Weight::from_parts(48_476_000, 6208) + // Minimum execution time: 43_618_000 picoseconds. + Weight::from_parts(44_794_000, 6208) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: // Measured: `498` // Estimated: `6208` - // Minimum execution time: 41_625_000 picoseconds. - Weight::from_parts(43_030_000, 6208) + // Minimum execution time: 39_174_000 picoseconds. + Weight::from_parts(40_059_000, 6208) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `498` // Estimated: `6208` - // Minimum execution time: 47_661_000 picoseconds. - Weight::from_parts(48_469_000, 6208) + // Minimum execution time: 43_963_000 picoseconds. + Weight::from_parts(44_995_000, 6208) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn freeze() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 17_727_000 picoseconds. - Weight::from_parts(18_384_000, 3675) + // Minimum execution time: 15_853_000 picoseconds. + Weight::from_parts(16_414_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn thaw() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 17_657_000 picoseconds. - Weight::from_parts(18_282_000, 3675) + // Minimum execution time: 15_925_000 picoseconds. + Weight::from_parts(16_449_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn freeze_asset() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 13_743_000 picoseconds. - Weight::from_parts(14_193_000, 3675) + // Minimum execution time: 11_629_000 picoseconds. + Weight::from_parts(12_138_000, 3675) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn thaw_asset() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 13_653_000 picoseconds. - Weight::from_parts(14_263_000, 3675) + // Minimum execution time: 11_653_000 picoseconds. + Weight::from_parts(12_058_000, 3675) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 15_328_000 picoseconds. - Weight::from_parts(16_042_000, 3675) + // Minimum execution time: 13_292_000 picoseconds. + Weight::from_parts(13_686_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn set_team() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 14_097_000 picoseconds. - Weight::from_parts(14_641_000, 3675) + // Minimum execution time: 11_805_000 picoseconds. + Weight::from_parts(12_060_000, 3675) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, _s: u32, ) -> Weight { + fn set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 29_535_000 picoseconds. - Weight::from_parts(31_456_892, 3675) + // Minimum execution time: 26_289_000 picoseconds. + Weight::from_parts(27_543_545, 3675) + // Standard Error: 939 + .saturating_add(Weight::from_parts(4_967, 0).saturating_mul(n.into())) + // Standard Error: 939 + .saturating_add(Weight::from_parts(3_698, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `515` // Estimated: `3675` - // Minimum execution time: 30_680_000 picoseconds. - Weight::from_parts(31_930_000, 3675) + // Minimum execution time: 27_560_000 picoseconds. + Weight::from_parts(28_541_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(_n: u32, s: u32, ) -> Weight { + fn force_set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `190` // Estimated: `3675` - // Minimum execution time: 14_660_000 picoseconds. - Weight::from_parts(15_718_387, 3675) - // Standard Error: 622 - .saturating_add(Weight::from_parts(2_640, 0).saturating_mul(s.into())) + // Minimum execution time: 12_378_000 picoseconds. + Weight::from_parts(13_057_891, 3675) + // Standard Error: 474 + .saturating_add(Weight::from_parts(1_831, 0).saturating_mul(n.into())) + // Standard Error: 474 + .saturating_add(Weight::from_parts(2_387, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn force_clear_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `515` // Estimated: `3675` - // Minimum execution time: 30_853_000 picoseconds. - Weight::from_parts(31_483_000, 3675) + // Minimum execution time: 27_134_000 picoseconds. + Weight::from_parts(28_333_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn force_asset_status() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 13_632_000 picoseconds. - Weight::from_parts(14_077_000, 3675) + // Minimum execution time: 11_524_000 picoseconds. + Weight::from_parts(11_934_000, 3675) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) fn approve_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 33_780_000 picoseconds. - Weight::from_parts(34_533_000, 3675) + // Minimum execution time: 30_206_000 picoseconds. + Weight::from_parts(31_624_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_approved() -> Weight { // Proof Size summary in bytes: // Measured: `668` // Estimated: `6208` - // Minimum execution time: 67_712_000 picoseconds. - Weight::from_parts(69_946_000, 6208) + // Minimum execution time: 64_074_000 picoseconds. + Weight::from_parts(66_145_000, 6208) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) fn cancel_approval() -> Weight { // Proof Size summary in bytes: // Measured: `555` // Estimated: `3675` - // Minimum execution time: 36_668_000 picoseconds. - Weight::from_parts(37_637_000, 3675) + // Minimum execution time: 32_790_000 picoseconds. + Weight::from_parts(33_634_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) fn force_cancel_approval() -> Weight { // Proof Size summary in bytes: // Measured: `555` // Estimated: `3675` - // Minimum execution time: 36_685_000 picoseconds. - Weight::from_parts(37_950_000, 3675) + // Minimum execution time: 33_150_000 picoseconds. + Weight::from_parts(34_440_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn set_min_balance() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 14_466_000 picoseconds. - Weight::from_parts(14_924_000, 3675) + // Minimum execution time: 12_365_000 picoseconds. + Weight::from_parts(12_870_000, 3675) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn touch() -> Weight { // Proof Size summary in bytes: // Measured: `453` // Estimated: `3675` - // Minimum execution time: 34_874_000 picoseconds. - Weight::from_parts(36_330_000, 3675) + // Minimum execution time: 32_308_000 picoseconds. + Weight::from_parts(33_080_000, 3675) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn touch_other() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 33_278_000 picoseconds. - Weight::from_parts(34_104_000, 3675) + // Minimum execution time: 29_870_000 picoseconds. + Weight::from_parts(30_562_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn refund() -> Weight { // Proof Size summary in bytes: // Measured: `579` // Estimated: `3675` - // Minimum execution time: 32_898_000 picoseconds. - Weight::from_parts(33_489_000, 3675) + // Minimum execution time: 31_980_000 picoseconds. + Weight::from_parts(33_747_000, 3675) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn refund_other() -> Weight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3675` - // Minimum execution time: 31_243_000 picoseconds. - Weight::from_parts(31_909_000, 3675) + // Minimum execution time: 29_599_000 picoseconds. + Weight::from_parts(30_919_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn block() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 17_692_000 picoseconds. - Weight::from_parts(18_253_000, 3675) + // Minimum execution time: 15_741_000 picoseconds. + Weight::from_parts(16_558_000, 3675) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: // Measured: `293` // Estimated: `3675` - // Minimum execution time: 31_340_000 picoseconds. - Weight::from_parts(31_977_000, 3675) + // Minimum execution time: 26_165_000 picoseconds. + Weight::from_parts(26_838_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn force_create() -> Weight { // Proof Size summary in bytes: // Measured: `153` // Estimated: `3675` - // Minimum execution time: 13_342_000 picoseconds. - Weight::from_parts(13_782_000, 3675) + // Minimum execution time: 11_152_000 picoseconds. + Weight::from_parts(11_624_000, 3675) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn start_destroy() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 14_437_000 picoseconds. - Weight::from_parts(14_833_000, 3675) + // Minimum execution time: 11_961_000 picoseconds. + Weight::from_parts(12_408_000, 3675) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1001 w:1000) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1000 w:1000) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1001 w:1000) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + c * (208 ±0)` // Estimated: `3675 + c * (2609 ±0)` - // Minimum execution time: 18_728_000 picoseconds. - Weight::from_parts(18_982_000, 3675) - // Standard Error: 11_708 - .saturating_add(Weight::from_parts(14_363_570, 0).saturating_mul(c.into())) + // Minimum execution time: 15_815_000 picoseconds. + Weight::from_parts(16_370_000, 3675) + // Standard Error: 7_448 + .saturating_add(Weight::from_parts(13_217_179, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1001 w:1000) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1001 w:1000) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `522 + a * (86 ±0)` // Estimated: `3675 + a * (2623 ±0)` - // Minimum execution time: 18_611_000 picoseconds. - Weight::from_parts(18_970_000, 3675) - // Standard Error: 13_224 - .saturating_add(Weight::from_parts(16_397_299, 0).saturating_mul(a.into())) + // Minimum execution time: 16_791_000 picoseconds. + Weight::from_parts(17_066_000, 3675) + // Standard Error: 7_163 + .saturating_add(Weight::from_parts(14_436_592, 0).saturating_mul(a.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn finish_destroy() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 14_504_000 picoseconds. - Weight::from_parts(14_906_000, 3675) + // Minimum execution time: 12_769_000 picoseconds. + Weight::from_parts(13_097_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn mint() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 26_653_000 picoseconds. - Weight::from_parts(27_260_000, 3675) + // Minimum execution time: 22_539_000 picoseconds. + Weight::from_parts(23_273_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn burn() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 33_625_000 picoseconds. - Weight::from_parts(34_474_000, 3675) + // Minimum execution time: 30_885_000 picoseconds. + Weight::from_parts(31_800_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: // Measured: `498` // Estimated: `6208` - // Minimum execution time: 47_609_000 picoseconds. - Weight::from_parts(48_476_000, 6208) + // Minimum execution time: 43_618_000 picoseconds. + Weight::from_parts(44_794_000, 6208) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: // Measured: `498` // Estimated: `6208` - // Minimum execution time: 41_625_000 picoseconds. - Weight::from_parts(43_030_000, 6208) + // Minimum execution time: 39_174_000 picoseconds. + Weight::from_parts(40_059_000, 6208) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `498` // Estimated: `6208` - // Minimum execution time: 47_661_000 picoseconds. - Weight::from_parts(48_469_000, 6208) + // Minimum execution time: 43_963_000 picoseconds. + Weight::from_parts(44_995_000, 6208) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn freeze() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 17_727_000 picoseconds. - Weight::from_parts(18_384_000, 3675) + // Minimum execution time: 15_853_000 picoseconds. + Weight::from_parts(16_414_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn thaw() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 17_657_000 picoseconds. - Weight::from_parts(18_282_000, 3675) + // Minimum execution time: 15_925_000 picoseconds. + Weight::from_parts(16_449_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn freeze_asset() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 13_743_000 picoseconds. - Weight::from_parts(14_193_000, 3675) + // Minimum execution time: 11_629_000 picoseconds. + Weight::from_parts(12_138_000, 3675) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn thaw_asset() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 13_653_000 picoseconds. - Weight::from_parts(14_263_000, 3675) + // Minimum execution time: 11_653_000 picoseconds. + Weight::from_parts(12_058_000, 3675) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 15_328_000 picoseconds. - Weight::from_parts(16_042_000, 3675) + // Minimum execution time: 13_292_000 picoseconds. + Weight::from_parts(13_686_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn set_team() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 14_097_000 picoseconds. - Weight::from_parts(14_641_000, 3675) + // Minimum execution time: 11_805_000 picoseconds. + Weight::from_parts(12_060_000, 3675) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, _s: u32, ) -> Weight { + fn set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 29_535_000 picoseconds. - Weight::from_parts(31_456_892, 3675) + // Minimum execution time: 26_289_000 picoseconds. + Weight::from_parts(27_543_545, 3675) + // Standard Error: 939 + .saturating_add(Weight::from_parts(4_967, 0).saturating_mul(n.into())) + // Standard Error: 939 + .saturating_add(Weight::from_parts(3_698, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `515` // Estimated: `3675` - // Minimum execution time: 30_680_000 picoseconds. - Weight::from_parts(31_930_000, 3675) + // Minimum execution time: 27_560_000 picoseconds. + Weight::from_parts(28_541_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(_n: u32, s: u32, ) -> Weight { + fn force_set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `190` // Estimated: `3675` - // Minimum execution time: 14_660_000 picoseconds. - Weight::from_parts(15_718_387, 3675) - // Standard Error: 622 - .saturating_add(Weight::from_parts(2_640, 0).saturating_mul(s.into())) + // Minimum execution time: 12_378_000 picoseconds. + Weight::from_parts(13_057_891, 3675) + // Standard Error: 474 + .saturating_add(Weight::from_parts(1_831, 0).saturating_mul(n.into())) + // Standard Error: 474 + .saturating_add(Weight::from_parts(2_387, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) fn force_clear_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `515` // Estimated: `3675` - // Minimum execution time: 30_853_000 picoseconds. - Weight::from_parts(31_483_000, 3675) + // Minimum execution time: 27_134_000 picoseconds. + Weight::from_parts(28_333_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn force_asset_status() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 13_632_000 picoseconds. - Weight::from_parts(14_077_000, 3675) + // Minimum execution time: 11_524_000 picoseconds. + Weight::from_parts(11_934_000, 3675) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) fn approve_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `385` // Estimated: `3675` - // Minimum execution time: 33_780_000 picoseconds. - Weight::from_parts(34_533_000, 3675) + // Minimum execution time: 30_206_000 picoseconds. + Weight::from_parts(31_624_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_approved() -> Weight { // Proof Size summary in bytes: // Measured: `668` // Estimated: `6208` - // Minimum execution time: 67_712_000 picoseconds. - Weight::from_parts(69_946_000, 6208) + // Minimum execution time: 64_074_000 picoseconds. + Weight::from_parts(66_145_000, 6208) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) fn cancel_approval() -> Weight { // Proof Size summary in bytes: // Measured: `555` // Estimated: `3675` - // Minimum execution time: 36_668_000 picoseconds. - Weight::from_parts(37_637_000, 3675) + // Minimum execution time: 32_790_000 picoseconds. + Weight::from_parts(33_634_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) fn force_cancel_approval() -> Weight { // Proof Size summary in bytes: // Measured: `555` // Estimated: `3675` - // Minimum execution time: 36_685_000 picoseconds. - Weight::from_parts(37_950_000, 3675) + // Minimum execution time: 33_150_000 picoseconds. + Weight::from_parts(34_440_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn set_min_balance() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 14_466_000 picoseconds. - Weight::from_parts(14_924_000, 3675) + // Minimum execution time: 12_365_000 picoseconds. + Weight::from_parts(12_870_000, 3675) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn touch() -> Weight { // Proof Size summary in bytes: // Measured: `453` // Estimated: `3675` - // Minimum execution time: 34_874_000 picoseconds. - Weight::from_parts(36_330_000, 3675) + // Minimum execution time: 32_308_000 picoseconds. + Weight::from_parts(33_080_000, 3675) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn touch_other() -> Weight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `3675` - // Minimum execution time: 33_278_000 picoseconds. - Weight::from_parts(34_104_000, 3675) + // Minimum execution time: 29_870_000 picoseconds. + Weight::from_parts(30_562_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn refund() -> Weight { // Proof Size summary in bytes: // Measured: `579` // Estimated: `3675` - // Minimum execution time: 32_898_000 picoseconds. - Weight::from_parts(33_489_000, 3675) + // Minimum execution time: 31_980_000 picoseconds. + Weight::from_parts(33_747_000, 3675) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) fn refund_other() -> Weight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3675` - // Minimum execution time: 31_243_000 picoseconds. - Weight::from_parts(31_909_000, 3675) + // Minimum execution time: 29_599_000 picoseconds. + Weight::from_parts(30_919_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn block() -> Weight { // Proof Size summary in bytes: // Measured: `459` // Estimated: `3675` - // Minimum execution time: 17_692_000 picoseconds. - Weight::from_parts(18_253_000, 3675) + // Minimum execution time: 15_741_000 picoseconds. + Weight::from_parts(16_558_000, 3675) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/bags-list/src/weights.rs b/substrate/frame/bags-list/src/weights.rs index d929c6bb95963c3eaee8ce0d16b127adcb64956e..8a5424881e97b2ebdb43de8a5d406d253098535b 100644 --- a/substrate/frame/bags-list/src/weights.rs +++ b/substrate/frame/bags-list/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_bags_list +//! Autogenerated weights for `pallet_bags_list` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/bags-list/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/bags-list/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,123 +49,123 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_bags_list. +/// Weight functions needed for `pallet_bags_list`. pub trait WeightInfo { fn rebag_non_terminal() -> Weight; fn rebag_terminal() -> Weight; fn put_in_front_of() -> Weight; } -/// Weights for pallet_bags_list using the Substrate node and recommended hardware. +/// Weights for `pallet_bags_list` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Staking Bonded (r:1 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: VoterList ListNodes (r:4 w:4) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:1 w:1) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListNodes` (r:4 w:4) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:1 w:1) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) fn rebag_non_terminal() -> Weight { // Proof Size summary in bytes: - // Measured: `1724` + // Measured: `1719` // Estimated: `11506` - // Minimum execution time: 62_137_000 picoseconds. - Weight::from_parts(64_050_000, 11506) + // Minimum execution time: 60_062_000 picoseconds. + Weight::from_parts(62_341_000, 11506) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Staking Bonded (r:1 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: VoterList ListNodes (r:3 w:3) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:2 w:2) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListNodes` (r:3 w:3) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:2 w:2) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) fn rebag_terminal() -> Weight { // Proof Size summary in bytes: - // Measured: `1618` + // Measured: `1613` // Estimated: `8877` - // Minimum execution time: 60_880_000 picoseconds. - Weight::from_parts(62_078_000, 8877) + // Minimum execution time: 57_585_000 picoseconds. + Weight::from_parts(59_480_000, 8877) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: VoterList ListNodes (r:4 w:4) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: Staking Bonded (r:2 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:2 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: VoterList CounterForListNodes (r:1 w:1) - /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:1 w:1) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: `VoterList::ListNodes` (r:4 w:4) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `Staking::Bonded` (r:2 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:2 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `VoterList::CounterForListNodes` (r:1 w:1) + /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:1 w:1) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) fn put_in_front_of() -> Weight { // Proof Size summary in bytes: - // Measured: `1930` + // Measured: `1925` // Estimated: `11506` - // Minimum execution time: 68_911_000 picoseconds. - Weight::from_parts(70_592_000, 11506) + // Minimum execution time: 69_552_000 picoseconds. + Weight::from_parts(71_211_000, 11506) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Staking Bonded (r:1 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: VoterList ListNodes (r:4 w:4) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:1 w:1) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListNodes` (r:4 w:4) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:1 w:1) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) fn rebag_non_terminal() -> Weight { // Proof Size summary in bytes: - // Measured: `1724` + // Measured: `1719` // Estimated: `11506` - // Minimum execution time: 62_137_000 picoseconds. - Weight::from_parts(64_050_000, 11506) + // Minimum execution time: 60_062_000 picoseconds. + Weight::from_parts(62_341_000, 11506) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Staking Bonded (r:1 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: VoterList ListNodes (r:3 w:3) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:2 w:2) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListNodes` (r:3 w:3) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:2 w:2) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) fn rebag_terminal() -> Weight { // Proof Size summary in bytes: - // Measured: `1618` + // Measured: `1613` // Estimated: `8877` - // Minimum execution time: 60_880_000 picoseconds. - Weight::from_parts(62_078_000, 8877) + // Minimum execution time: 57_585_000 picoseconds. + Weight::from_parts(59_480_000, 8877) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: VoterList ListNodes (r:4 w:4) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: Staking Bonded (r:2 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:2 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: VoterList CounterForListNodes (r:1 w:1) - /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:1 w:1) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// Storage: `VoterList::ListNodes` (r:4 w:4) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `Staking::Bonded` (r:2 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:2 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `VoterList::CounterForListNodes` (r:1 w:1) + /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:1 w:1) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) fn put_in_front_of() -> Weight { // Proof Size summary in bytes: - // Measured: `1930` + // Measured: `1925` // Estimated: `11506` - // Minimum execution time: 68_911_000 picoseconds. - Weight::from_parts(70_592_000, 11506) + // Minimum execution time: 69_552_000 picoseconds. + Weight::from_parts(71_211_000, 11506) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } diff --git a/substrate/frame/balances/src/weights.rs b/substrate/frame/balances/src/weights.rs index f875ea189ba1bce61b5fd6aec0c3aab54fb72bf2..f99fc45107614a96f223f4113e03ed6c6cab4041 100644 --- a/substrate/frame/balances/src/weights.rs +++ b/substrate/frame/balances/src/weights.rs @@ -17,26 +17,28 @@ //! Autogenerated weights for `pallet_balances` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-01-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_balances +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_balances -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/balances/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -69,8 +71,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 46_329_000 picoseconds. - Weight::from_parts(47_297_000, 3593) + // Minimum execution time: 50_062_000 picoseconds. + Weight::from_parts(51_214_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -80,8 +82,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 36_187_000 picoseconds. - Weight::from_parts(36_900_000, 3593) + // Minimum execution time: 39_700_000 picoseconds. + Weight::from_parts(40_754_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -91,8 +93,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 13_498_000 picoseconds. - Weight::from_parts(14_143_000, 3593) + // Minimum execution time: 14_939_000 picoseconds. + Weight::from_parts(15_302_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -102,8 +104,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 18_756_000 picoseconds. - Weight::from_parts(19_553_000, 3593) + // Minimum execution time: 20_516_000 picoseconds. + Weight::from_parts(21_179_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -113,8 +115,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 47_826_000 picoseconds. - Weight::from_parts(48_834_000, 6196) + // Minimum execution time: 51_281_000 picoseconds. + Weight::from_parts(52_145_000, 6196) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -124,8 +126,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 44_621_000 picoseconds. - Weight::from_parts(45_151_000, 3593) + // Minimum execution time: 48_988_000 picoseconds. + Weight::from_parts(49_935_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -135,8 +137,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 16_194_000 picoseconds. - Weight::from_parts(16_945_000, 3593) + // Minimum execution time: 17_594_000 picoseconds. + Weight::from_parts(18_232_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -147,10 +149,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + u * (135 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 15_782_000 picoseconds. - Weight::from_parts(16_118_000, 990) - // Standard Error: 10_499 - .saturating_add(Weight::from_parts(13_327_660, 0).saturating_mul(u.into())) + // Minimum execution time: 16_701_000 picoseconds. + Weight::from_parts(16_897_000, 990) + // Standard Error: 11_684 + .saturating_add(Weight::from_parts(14_375_201, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) @@ -159,8 +161,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_157_000 picoseconds. - Weight::from_parts(6_507_000, 0) + // Minimum execution time: 6_692_000 picoseconds. + Weight::from_parts(7_140_000, 0) } } @@ -172,8 +174,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 46_329_000 picoseconds. - Weight::from_parts(47_297_000, 3593) + // Minimum execution time: 50_062_000 picoseconds. + Weight::from_parts(51_214_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -183,8 +185,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 36_187_000 picoseconds. - Weight::from_parts(36_900_000, 3593) + // Minimum execution time: 39_700_000 picoseconds. + Weight::from_parts(40_754_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -194,8 +196,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 13_498_000 picoseconds. - Weight::from_parts(14_143_000, 3593) + // Minimum execution time: 14_939_000 picoseconds. + Weight::from_parts(15_302_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -205,8 +207,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 18_756_000 picoseconds. - Weight::from_parts(19_553_000, 3593) + // Minimum execution time: 20_516_000 picoseconds. + Weight::from_parts(21_179_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -216,8 +218,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `103` // Estimated: `6196` - // Minimum execution time: 47_826_000 picoseconds. - Weight::from_parts(48_834_000, 6196) + // Minimum execution time: 51_281_000 picoseconds. + Weight::from_parts(52_145_000, 6196) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -227,8 +229,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3593` - // Minimum execution time: 44_621_000 picoseconds. - Weight::from_parts(45_151_000, 3593) + // Minimum execution time: 48_988_000 picoseconds. + Weight::from_parts(49_935_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -238,8 +240,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 16_194_000 picoseconds. - Weight::from_parts(16_945_000, 3593) + // Minimum execution time: 17_594_000 picoseconds. + Weight::from_parts(18_232_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -250,10 +252,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + u * (135 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 15_782_000 picoseconds. - Weight::from_parts(16_118_000, 990) - // Standard Error: 10_499 - .saturating_add(Weight::from_parts(13_327_660, 0).saturating_mul(u.into())) + // Minimum execution time: 16_701_000 picoseconds. + Weight::from_parts(16_897_000, 990) + // Standard Error: 11_684 + .saturating_add(Weight::from_parts(14_375_201, 0).saturating_mul(u.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) @@ -262,7 +264,7 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_157_000 picoseconds. - Weight::from_parts(6_507_000, 0) + // Minimum execution time: 6_692_000 picoseconds. + Weight::from_parts(7_140_000, 0) } } diff --git a/substrate/frame/benchmarking/src/tests.rs b/substrate/frame/benchmarking/src/tests.rs index 206ae515aac6170b030942e4c7612272e2a40709..bcca5fe7c2f2a59fb81c6f4e52ee1f5e7f7c0da3 100644 --- a/substrate/frame/benchmarking/src/tests.rs +++ b/substrate/frame/benchmarking/src/tests.rs @@ -262,15 +262,11 @@ mod benchmarks { let components = >::components(&selected); assert_eq!(components, vec![(BenchmarkParameter::b, 1, 1000)]); - let closure = >::instance( - &selected, - &[(BenchmarkParameter::b, 1)], - true, - ) - .expect("failed to create closure"); - new_test_ext().execute_with(|| { - assert_ok!(closure()); + assert_ok!(>::unit_test_instance( + &selected, + &[(BenchmarkParameter::b, 1)], + )); }); } @@ -281,15 +277,11 @@ mod benchmarks { let components = >::components(&selected); assert_eq!(components, vec![(BenchmarkParameter::b, 1, 1000)]); - let closure = >::instance( - &selected, - &[(BenchmarkParameter::b, 1)], - true, - ) - .expect("failed to create closure"); - new_test_ext().execute_with(|| { - assert_ok!(closure()); + assert_ok!(>::unit_test_instance( + &selected, + &[(BenchmarkParameter::b, 1)], + )); }); } @@ -300,14 +292,12 @@ mod benchmarks { let components = >::components(&selected); assert_eq!(components, vec![(BenchmarkParameter::x, 1, 10000)]); - let closure = >::instance( - &selected, - &[(BenchmarkParameter::x, 1)], - true, - ) - .expect("failed to create closure"); - - assert_ok!(closure()); + new_test_ext().execute_with(|| { + assert_ok!(>::unit_test_instance( + &selected, + &[(BenchmarkParameter::x, 1)], + )); + }); } #[test] @@ -315,29 +305,24 @@ mod benchmarks { // Check postcondition for benchmark `set_value` is valid. let selected = SelectedBenchmark::set_value; - let closure = >::instance( - &selected, - &[(BenchmarkParameter::b, 1)], - true, - ) - .expect("failed to create closure"); - new_test_ext().execute_with(|| { - assert_ok!(closure()); + assert_ok!(>::unit_test_instance( + &selected, + &[(BenchmarkParameter::b, 1)], + )); }); // Check postcondition for benchmark `bad_verify` is invalid. let selected = SelectedBenchmark::bad_verify; - let closure = >::instance( - &selected, - &[(BenchmarkParameter::x, 10000)], - true, - ) - .expect("failed to create closure"); - new_test_ext().execute_with(|| { - assert_err!(closure(), "You forgot to sort!"); + assert_err!( + >::unit_test_instance( + &selected, + &[(BenchmarkParameter::x, 10000)], + ), + "You forgot to sort!" + ); }); } @@ -345,15 +330,11 @@ mod benchmarks { fn benchmark_override_works() { let selected = SelectedBenchmark::override_benchmark; - let closure = >::instance( - &selected, - &[(BenchmarkParameter::b, 1)], - true, - ) - .expect("failed to create closure"); - new_test_ext().execute_with(|| { - let result = closure(); + let result = >::unit_test_instance( + &selected, + &[(BenchmarkParameter::b, 1)], + ); assert!(matches!(result, Err(BenchmarkError::Override(_)))); }); } diff --git a/substrate/frame/benchmarking/src/utils.rs b/substrate/frame/benchmarking/src/utils.rs index b9b3f91e2dd7bfc13b01accd15020e70f29cd7ac..bfa25f63ef33eb9cb724a7ca3aa25ec706046d98 100644 --- a/substrate/frame/benchmarking/src/utils.rs +++ b/substrate/frame/benchmarking/src/utils.rs @@ -23,7 +23,7 @@ use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; use sp_io::hashing::blake2_256; use sp_runtime::{traits::TrailingZeroInput, DispatchError}; -use sp_std::{prelude::Box, vec::Vec}; +use sp_std::vec::Vec; use sp_storage::TrackedStorageKey; /// An alphabet of possible parameters to use for benchmarking. @@ -342,6 +342,90 @@ pub trait Benchmarking { ) -> Result, BenchmarkError>; } +/// The recording trait used to mark the start and end of a benchmark. +pub trait Recording { + /// Start the benchmark. + fn start(&mut self) {} + + // Stop the benchmark. + fn stop(&mut self) {} +} + +/// A no-op recording, used for unit test. +struct NoopRecording; +impl Recording for NoopRecording {} + +/// A no-op recording, used for tests that should setup some state before running the benchmark. +struct TestRecording<'a> { + on_before_start: Option<&'a dyn Fn()>, +} + +impl<'a> TestRecording<'a> { + fn new(on_before_start: &'a dyn Fn()) -> Self { + Self { on_before_start: Some(on_before_start) } + } +} + +impl<'a> Recording for TestRecording<'a> { + fn start(&mut self) { + (self.on_before_start.take().expect("start called more than once"))(); + } +} + +/// Records the time and proof size of a single benchmark iteration. +pub struct BenchmarkRecording<'a> { + on_before_start: Option<&'a dyn Fn()>, + start_extrinsic: Option, + finish_extrinsic: Option, + start_pov: Option, + end_pov: Option, +} + +impl<'a> BenchmarkRecording<'a> { + pub fn new(on_before_start: &'a dyn Fn()) -> Self { + Self { + on_before_start: Some(on_before_start), + start_extrinsic: None, + finish_extrinsic: None, + start_pov: None, + end_pov: None, + } + } +} + +impl<'a> Recording for BenchmarkRecording<'a> { + fn start(&mut self) { + (self.on_before_start.take().expect("start called more than once"))(); + self.start_pov = crate::benchmarking::proof_size(); + self.start_extrinsic = Some(crate::benchmarking::current_time()); + } + + fn stop(&mut self) { + self.finish_extrinsic = Some(crate::benchmarking::current_time()); + self.end_pov = crate::benchmarking::proof_size(); + } +} + +impl<'a> BenchmarkRecording<'a> { + pub fn start_pov(&self) -> Option { + self.start_pov + } + + pub fn end_pov(&self) -> Option { + self.end_pov + } + + pub fn diff_pov(&self) -> Option { + self.start_pov.zip(self.end_pov).map(|(start, end)| end.saturating_sub(start)) + } + + pub fn elapsed_extrinsic(&self) -> Option { + self.start_extrinsic + .zip(self.finish_extrinsic) + .map(|(start, end)| end.saturating_sub(start)) + } +} + /// The required setup for creating a benchmark. /// /// Instance generic parameter is optional and can be used in order to capture unused generics for @@ -353,9 +437,27 @@ pub trait BenchmarkingSetup { /// Set up the storage, and prepare a closure to run the benchmark. fn instance( &self, + recording: &mut impl Recording, components: &[(BenchmarkParameter, u32)], verify: bool, - ) -> Result Result<(), BenchmarkError>>, BenchmarkError>; + ) -> Result<(), BenchmarkError>; + + /// Same as `instance` but passing a closure to run before the benchmark starts. + fn test_instance( + &self, + components: &[(BenchmarkParameter, u32)], + on_before_start: &dyn Fn(), + ) -> Result<(), BenchmarkError> { + return self.instance(&mut TestRecording::new(on_before_start), components, true); + } + + /// Same as `instance` but passing a no-op recording for unit tests. + fn unit_test_instance( + &self, + components: &[(BenchmarkParameter, u32)], + ) -> Result<(), BenchmarkError> { + return self.instance(&mut NoopRecording {}, components, true); + } } /// Grab an account, seeded by a name and index. diff --git a/substrate/frame/benchmarking/src/v1.rs b/substrate/frame/benchmarking/src/v1.rs index ecebbfa9105257ab7fb0ee42a02d2ac045a5a703..07778646237edc6f4f2fdb0151033dc8cd84aa5f 100644 --- a/substrate/frame/benchmarking/src/v1.rs +++ b/substrate/frame/benchmarking/src/v1.rs @@ -786,9 +786,10 @@ macro_rules! benchmark_backend { fn instance( &self, + recording: &mut impl $crate::Recording, components: &[($crate::BenchmarkParameter, u32)], verify: bool - ) -> Result<$crate::__private::Box Result<(), $crate::BenchmarkError>>, $crate::BenchmarkError> { + ) -> Result<(), $crate::BenchmarkError> { $( // Prepare instance let $param = components.iter() @@ -802,13 +803,14 @@ macro_rules! benchmark_backend { $( $param_instancer ; )* $( $post )* - Ok($crate::__private::Box::new(move || -> Result<(), $crate::BenchmarkError> { - $eval; - if verify { - $postcode; - } - Ok(()) - })) + recording.start(); + $eval; + recording.stop(); + + if verify { + $postcode; + } + Ok(()) } } }; @@ -960,14 +962,15 @@ macro_rules! selected_benchmark { fn instance( &self, + recording: &mut impl $crate::Recording, components: &[($crate::BenchmarkParameter, u32)], verify: bool - ) -> Result<$crate::__private::Box Result<(), $crate::BenchmarkError>>, $crate::BenchmarkError> { + ) -> Result<(), $crate::BenchmarkError> { match self { $( Self::$bench => < $bench as $crate::BenchmarkingSetup - >::instance(&$bench, components, verify), + >::instance(&$bench, recording, components, verify), )* } } @@ -1069,18 +1072,7 @@ macro_rules! impl_benchmark { $crate::benchmarking::set_whitelist(whitelist.clone()); let mut results: $crate::__private::Vec<$crate::BenchmarkResult> = $crate::__private::Vec::new(); - - // Always do at least one internal repeat... - for _ in 0 .. internal_repeats.max(1) { - // Always reset the state after the benchmark. - $crate::__private::defer!($crate::benchmarking::wipe_db()); - - // Set up the externalities environment for the setup we want to - // benchmark. - let closure_to_benchmark = < - SelectedBenchmark as $crate::BenchmarkingSetup - >::instance(&selected_benchmark, c, verify)?; - + let on_before_start = || { // Set the block number to at least 1 so events are deposited. if $crate::__private::Zero::is_zero(&frame_system::Pallet::::block_number()) { frame_system::Pallet::::set_block_number(1u32.into()); @@ -1098,6 +1090,12 @@ macro_rules! impl_benchmark { // Reset the read/write counter so we don't count operations in the setup process. $crate::benchmarking::reset_read_write_count(); + }; + + // Always do at least one internal repeat... + for _ in 0 .. internal_repeats.max(1) { + // Always reset the state after the benchmark. + $crate::__private::defer!($crate::benchmarking::wipe_db()); // Time the extrinsic logic. $crate::__private::log::trace!( @@ -1108,20 +1106,14 @@ macro_rules! impl_benchmark { verify ); - let start_pov = $crate::benchmarking::proof_size(); - let start_extrinsic = $crate::benchmarking::current_time(); - - closure_to_benchmark()?; - - let finish_extrinsic = $crate::benchmarking::current_time(); - let end_pov = $crate::benchmarking::proof_size(); + // Set up the externalities environment for the setup we want to + // benchmark. + let mut recording = $crate::BenchmarkRecording::new(&on_before_start); + >::instance(&selected_benchmark, &mut recording, c, verify)?; // Calculate the diff caused by the benchmark. - let elapsed_extrinsic = finish_extrinsic.saturating_sub(start_extrinsic); - let diff_pov = match (start_pov, end_pov) { - (Some(start), Some(end)) => end.saturating_sub(start), - _ => Default::default(), - }; + let elapsed_extrinsic = recording.elapsed_extrinsic().expect("elapsed time should be recorded"); + let diff_pov = recording.diff_pov().unwrap_or_default(); // Commit the changes to get proper write count $crate::benchmarking::commit_db(); @@ -1136,7 +1128,7 @@ macro_rules! impl_benchmark { ); $crate::__private::log::trace!( target: "benchmark", - "Proof sizes: before {:?} after {:?} diff {}", &start_pov, &end_pov, &diff_pov + "Proof sizes: before {:?} after {:?} diff {}", recording.start_pov(), recording.end_pov(), &diff_pov ); // Time the storage root recalculation. @@ -1230,18 +1222,15 @@ macro_rules! impl_benchmark_test { // Always reset the state after the benchmark. $crate::__private::defer!($crate::benchmarking::wipe_db()); - // Set up the benchmark, return execution + verification function. - let closure_to_verify = < - SelectedBenchmark as $crate::BenchmarkingSetup - >::instance(&selected_benchmark, &c, true)?; - - // Set the block number to at least 1 so events are deposited. - if $crate::__private::Zero::is_zero(&frame_system::Pallet::::block_number()) { - frame_system::Pallet::::set_block_number(1u32.into()); - } + let on_before_start = || { + // Set the block number to at least 1 so events are deposited. + if $crate::__private::Zero::is_zero(&frame_system::Pallet::::block_number()) { + frame_system::Pallet::::set_block_number(1u32.into()); + } + }; // Run execution + verification - closure_to_verify() + >::test_instance(&selected_benchmark, &c, &on_before_start) }; if components.is_empty() { diff --git a/substrate/frame/benchmarking/src/weights.rs b/substrate/frame/benchmarking/src/weights.rs index 13d73e420cce256080d117e3bab56842d302b3a0..ea9ef6eb5c6d9d2895ffbcccb324e762d1eb6b1a 100644 --- a/substrate/frame/benchmarking/src/weights.rs +++ b/substrate/frame/benchmarking/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for frame_benchmarking +//! Autogenerated weights for `frame_benchmarking` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/benchmarking/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/benchmarking/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for frame_benchmarking. +/// Weight functions needed for `frame_benchmarking`. pub trait WeightInfo { fn addition(i: u32, ) -> Weight; fn subtraction(i: u32, ) -> Weight; @@ -60,7 +59,7 @@ pub trait WeightInfo { fn sr25519_verification(i: u32, ) -> Weight; } -/// Weights for frame_benchmarking using the Substrate node and recommended hardware. +/// Weights for `frame_benchmarking` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 1000000]`. @@ -68,101 +67,101 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 147_000 picoseconds. - Weight::from_parts(185_656, 0) + // Minimum execution time: 132_000 picoseconds. + Weight::from_parts(160_546, 0) } /// The range of component `i` is `[0, 1000000]`. fn subtraction(_i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 146_000 picoseconds. - Weight::from_parts(189_816, 0) + // Minimum execution time: 133_000 picoseconds. + Weight::from_parts(171_395, 0) } /// The range of component `i` is `[0, 1000000]`. fn multiplication(_i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 148_000 picoseconds. - Weight::from_parts(202_367, 0) + // Minimum execution time: 126_000 picoseconds. + Weight::from_parts(166_417, 0) } /// The range of component `i` is `[0, 1000000]`. fn division(_i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 143_000 picoseconds. - Weight::from_parts(189_693, 0) + // Minimum execution time: 131_000 picoseconds. + Weight::from_parts(166_348, 0) } fn hashing() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 24_167_071_000 picoseconds. - Weight::from_parts(24_391_749_000, 0) + // Minimum execution time: 26_583_601_000 picoseconds. + Weight::from_parts(26_795_212_000, 0) } /// The range of component `i` is `[0, 100]`. fn sr25519_verification(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 231_000 picoseconds. - Weight::from_parts(2_998_013, 0) - // Standard Error: 6_256 - .saturating_add(Weight::from_parts(55_456_705, 0).saturating_mul(i.into())) + // Minimum execution time: 158_000 picoseconds. + Weight::from_parts(5_277_102, 0) + // Standard Error: 6_279 + .saturating_add(Weight::from_parts(40_610_511, 0).saturating_mul(i.into())) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { /// The range of component `i` is `[0, 1000000]`. fn addition(_i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 147_000 picoseconds. - Weight::from_parts(185_656, 0) + // Minimum execution time: 132_000 picoseconds. + Weight::from_parts(160_546, 0) } /// The range of component `i` is `[0, 1000000]`. fn subtraction(_i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 146_000 picoseconds. - Weight::from_parts(189_816, 0) + // Minimum execution time: 133_000 picoseconds. + Weight::from_parts(171_395, 0) } /// The range of component `i` is `[0, 1000000]`. fn multiplication(_i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 148_000 picoseconds. - Weight::from_parts(202_367, 0) + // Minimum execution time: 126_000 picoseconds. + Weight::from_parts(166_417, 0) } /// The range of component `i` is `[0, 1000000]`. fn division(_i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 143_000 picoseconds. - Weight::from_parts(189_693, 0) + // Minimum execution time: 131_000 picoseconds. + Weight::from_parts(166_348, 0) } fn hashing() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 24_167_071_000 picoseconds. - Weight::from_parts(24_391_749_000, 0) + // Minimum execution time: 26_583_601_000 picoseconds. + Weight::from_parts(26_795_212_000, 0) } /// The range of component `i` is `[0, 100]`. fn sr25519_verification(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 231_000 picoseconds. - Weight::from_parts(2_998_013, 0) - // Standard Error: 6_256 - .saturating_add(Weight::from_parts(55_456_705, 0).saturating_mul(i.into())) + // Minimum execution time: 158_000 picoseconds. + Weight::from_parts(5_277_102, 0) + // Standard Error: 6_279 + .saturating_add(Weight::from_parts(40_610_511, 0).saturating_mul(i.into())) } } diff --git a/substrate/frame/bounties/src/weights.rs b/substrate/frame/bounties/src/weights.rs index a172d15b56cc9a2a4686e3d6af61d9560635d5be..c9f551ec9bb2421098b13eaa7ea4beecbdf13d70 100644 --- a/substrate/frame/bounties/src/weights.rs +++ b/substrate/frame/bounties/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_bounties +//! Autogenerated weights for `pallet_bounties` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/bounties/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/bounties/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_bounties. +/// Weight functions needed for `pallet_bounties`. pub trait WeightInfo { fn propose_bounty(d: u32, ) -> Weight; fn approve_bounty() -> Weight; @@ -65,169 +64,169 @@ pub trait WeightInfo { fn spend_funds(b: u32, ) -> Weight; } -/// Weights for pallet_bounties using the Substrate node and recommended hardware. +/// Weights for `pallet_bounties` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Bounties BountyCount (r:1 w:1) - /// Proof: Bounties BountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:0 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) + /// Storage: `Bounties::BountyCount` (r:1 w:1) + /// Proof: `Bounties::BountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:0 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) /// The range of component `d` is `[0, 300]`. fn propose_bounty(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `276` + // Measured: `309` // Estimated: `3593` - // Minimum execution time: 29_384_000 picoseconds. - Weight::from_parts(30_820_018, 3593) - // Standard Error: 298 - .saturating_add(Weight::from_parts(2_920, 0).saturating_mul(d.into())) + // Minimum execution time: 25_206_000 picoseconds. + Weight::from_parts(26_925_800, 3593) + // Standard Error: 239 + .saturating_add(Weight::from_parts(501, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: Bounties BountyApprovals (r:1 w:1) - /// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) fn approve_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `368` + // Measured: `401` // Estimated: `3642` - // Minimum execution time: 10_873_000 picoseconds. - Weight::from_parts(11_421_000, 3642) + // Minimum execution time: 13_150_000 picoseconds. + Weight::from_parts(13_708_000, 3642) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) fn propose_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `388` + // Measured: `421` // Estimated: `3642` - // Minimum execution time: 9_181_000 picoseconds. - Weight::from_parts(9_726_000, 3642) + // Minimum execution time: 12_277_000 picoseconds. + Weight::from_parts(12_769_000, 3642) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn unassign_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `564` + // Measured: `597` // Estimated: `3642` - // Minimum execution time: 30_257_000 picoseconds. - Weight::from_parts(30_751_000, 3642) + // Minimum execution time: 29_041_000 picoseconds. + Weight::from_parts(29_979_000, 3642) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn accept_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `560` + // Measured: `593` // Estimated: `3642` - // Minimum execution time: 27_850_000 picoseconds. - Weight::from_parts(28_821_000, 3642) + // Minimum execution time: 27_936_000 picoseconds. + Weight::from_parts(28_925_000, 3642) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:0) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) fn award_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `572` + // Measured: `605` // Estimated: `3642` - // Minimum execution time: 19_164_000 picoseconds. - Weight::from_parts(20_136_000, 3642) + // Minimum execution time: 16_759_000 picoseconds. + Weight::from_parts(17_699_000, 3642) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:3 w:3) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn claim_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `936` + // Measured: `969` // Estimated: `8799` - // Minimum execution time: 120_235_000 picoseconds. - Weight::from_parts(121_673_000, 8799) + // Minimum execution time: 112_056_000 picoseconds. + Weight::from_parts(114_275_000, 8799) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:0) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_bounty_proposed() -> Weight { // Proof Size summary in bytes: - // Measured: `616` + // Measured: `649` // Estimated: `3642` - // Minimum execution time: 35_713_000 picoseconds. - Weight::from_parts(37_174_000, 3642) + // Minimum execution time: 32_625_000 picoseconds. + Weight::from_parts(33_719_000, 3642) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:0) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_bounty_active() -> Weight { // Proof Size summary in bytes: - // Measured: `852` + // Measured: `885` // Estimated: `6196` - // Minimum execution time: 81_037_000 picoseconds. - Weight::from_parts(83_294_000, 6196) + // Minimum execution time: 76_895_000 picoseconds. + Weight::from_parts(79_161_000, 6196) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) fn extend_bounty_expiry() -> Weight { // Proof Size summary in bytes: - // Measured: `424` + // Measured: `457` // Estimated: `3642` - // Minimum execution time: 15_348_000 picoseconds. - Weight::from_parts(15_776_000, 3642) + // Minimum execution time: 12_635_000 picoseconds. + Weight::from_parts(13_423_000, 3642) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Bounties BountyApprovals (r:1 w:1) - /// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:100 w:100) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:200 w:200) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:100 w:100) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:200 w:200) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `b` is `[0, 100]`. fn spend_funds(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4 + b * (297 ±0)` + // Measured: `37 + b * (297 ±0)` // Estimated: `1887 + b * (5206 ±0)` - // Minimum execution time: 5_082_000 picoseconds. - Weight::from_parts(5_126_000, 1887) - // Standard Error: 21_949 - .saturating_add(Weight::from_parts(42_635_308, 0).saturating_mul(b.into())) + // Minimum execution time: 2_840_000 picoseconds. + Weight::from_parts(6_076_743, 1887) + // Standard Error: 18_569 + .saturating_add(Weight::from_parts(34_771_846, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -236,168 +235,168 @@ impl WeightInfo for SubstrateWeight { } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Bounties BountyCount (r:1 w:1) - /// Proof: Bounties BountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:0 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) + /// Storage: `Bounties::BountyCount` (r:1 w:1) + /// Proof: `Bounties::BountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:0 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) /// The range of component `d` is `[0, 300]`. fn propose_bounty(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `276` + // Measured: `309` // Estimated: `3593` - // Minimum execution time: 29_384_000 picoseconds. - Weight::from_parts(30_820_018, 3593) - // Standard Error: 298 - .saturating_add(Weight::from_parts(2_920, 0).saturating_mul(d.into())) + // Minimum execution time: 25_206_000 picoseconds. + Weight::from_parts(26_925_800, 3593) + // Standard Error: 239 + .saturating_add(Weight::from_parts(501, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: Bounties BountyApprovals (r:1 w:1) - /// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) fn approve_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `368` + // Measured: `401` // Estimated: `3642` - // Minimum execution time: 10_873_000 picoseconds. - Weight::from_parts(11_421_000, 3642) + // Minimum execution time: 13_150_000 picoseconds. + Weight::from_parts(13_708_000, 3642) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) fn propose_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `388` + // Measured: `421` // Estimated: `3642` - // Minimum execution time: 9_181_000 picoseconds. - Weight::from_parts(9_726_000, 3642) + // Minimum execution time: 12_277_000 picoseconds. + Weight::from_parts(12_769_000, 3642) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn unassign_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `564` + // Measured: `597` // Estimated: `3642` - // Minimum execution time: 30_257_000 picoseconds. - Weight::from_parts(30_751_000, 3642) + // Minimum execution time: 29_041_000 picoseconds. + Weight::from_parts(29_979_000, 3642) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn accept_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `560` + // Measured: `593` // Estimated: `3642` - // Minimum execution time: 27_850_000 picoseconds. - Weight::from_parts(28_821_000, 3642) + // Minimum execution time: 27_936_000 picoseconds. + Weight::from_parts(28_925_000, 3642) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:0) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) fn award_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `572` + // Measured: `605` // Estimated: `3642` - // Minimum execution time: 19_164_000 picoseconds. - Weight::from_parts(20_136_000, 3642) + // Minimum execution time: 16_759_000 picoseconds. + Weight::from_parts(17_699_000, 3642) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:3 w:3) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn claim_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `936` + // Measured: `969` // Estimated: `8799` - // Minimum execution time: 120_235_000 picoseconds. - Weight::from_parts(121_673_000, 8799) + // Minimum execution time: 112_056_000 picoseconds. + Weight::from_parts(114_275_000, 8799) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:0) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_bounty_proposed() -> Weight { // Proof Size summary in bytes: - // Measured: `616` + // Measured: `649` // Estimated: `3642` - // Minimum execution time: 35_713_000 picoseconds. - Weight::from_parts(37_174_000, 3642) + // Minimum execution time: 32_625_000 picoseconds. + Weight::from_parts(33_719_000, 3642) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:0) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyDescriptions (r:0 w:1) - /// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_bounty_active() -> Weight { // Proof Size summary in bytes: - // Measured: `852` + // Measured: `885` // Estimated: `6196` - // Minimum execution time: 81_037_000 picoseconds. - Weight::from_parts(83_294_000, 6196) + // Minimum execution time: 76_895_000 picoseconds. + Weight::from_parts(79_161_000, 6196) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Bounties Bounties (r:1 w:1) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) fn extend_bounty_expiry() -> Weight { // Proof Size summary in bytes: - // Measured: `424` + // Measured: `457` // Estimated: `3642` - // Minimum execution time: 15_348_000 picoseconds. - Weight::from_parts(15_776_000, 3642) + // Minimum execution time: 12_635_000 picoseconds. + Weight::from_parts(13_423_000, 3642) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Bounties BountyApprovals (r:1 w:1) - /// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:100 w:100) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:200 w:200) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:100 w:100) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:200 w:200) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `b` is `[0, 100]`. fn spend_funds(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4 + b * (297 ±0)` + // Measured: `37 + b * (297 ±0)` // Estimated: `1887 + b * (5206 ±0)` - // Minimum execution time: 5_082_000 picoseconds. - Weight::from_parts(5_126_000, 1887) - // Standard Error: 21_949 - .saturating_add(Weight::from_parts(42_635_308, 0).saturating_mul(b.into())) + // Minimum execution time: 2_840_000 picoseconds. + Weight::from_parts(6_076_743, 1887) + // Standard Error: 18_569 + .saturating_add(Weight::from_parts(34_771_846, 0).saturating_mul(b.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(b.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) diff --git a/substrate/frame/broker/src/weights.rs b/substrate/frame/broker/src/weights.rs index a8b9fb598b8b4b941ae27e1a18b4a5c61d3b2248..2aa1c282a41d8a98e6a0a824e5eaa150922b2356 100644 --- a/substrate/frame/broker/src/weights.rs +++ b/substrate/frame/broker/src/weights.rs @@ -18,25 +18,27 @@ //! Autogenerated weights for `pallet_broker` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-03-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_broker +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_broker -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/broker/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -88,8 +90,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_865_000 picoseconds. - Weight::from_parts(3_061_000, 0) + // Minimum execution time: 2_624_000 picoseconds. + Weight::from_parts(2_804_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Broker::Reservations` (r:1 w:1) @@ -98,8 +100,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `5016` // Estimated: `7496` - // Minimum execution time: 18_431_000 picoseconds. - Weight::from_parts(19_558_000, 7496) + // Minimum execution time: 18_451_000 picoseconds. + Weight::from_parts(18_853_000, 7496) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -109,8 +111,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `6218` // Estimated: `7496` - // Minimum execution time: 17_724_000 picoseconds. - Weight::from_parts(18_688_000, 7496) + // Minimum execution time: 16_899_000 picoseconds. + Weight::from_parts(17_645_000, 7496) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -120,8 +122,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `239` // Estimated: `1526` - // Minimum execution time: 10_513_000 picoseconds. - Weight::from_parts(11_138_000, 1526) + // Minimum execution time: 10_239_000 picoseconds. + Weight::from_parts(10_754_000, 1526) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -140,12 +142,14 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Broker::Workplan` (r:0 w:10) /// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. - fn start_sales(_n: u32, ) -> Weight { + fn start_sales(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `6330` // Estimated: `8499` - // Minimum execution time: 50_864_000 picoseconds. - Weight::from_parts(54_000_280, 8499) + // Minimum execution time: 51_250_000 picoseconds. + Weight::from_parts(54_643_012, 8499) + // Standard Error: 147 + .saturating_add(Weight::from_parts(18, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(16_u64)) } @@ -163,8 +167,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `635` // Estimated: `2120` - // Minimum execution time: 43_630_000 picoseconds. - Weight::from_parts(44_622_000, 2120) + // Minimum execution time: 43_660_000 picoseconds. + Weight::from_parts(45_543_000, 2120) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -186,8 +190,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `753` // Estimated: `4698` - // Minimum execution time: 62_453_000 picoseconds. - Weight::from_parts(63_882_000, 4698) + // Minimum execution time: 63_122_000 picoseconds. + Weight::from_parts(64_366_000, 4698) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -197,8 +201,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3550` - // Minimum execution time: 17_237_000 picoseconds. - Weight::from_parts(17_757_000, 3550) + // Minimum execution time: 17_552_000 picoseconds. + Weight::from_parts(18_251_000, 3550) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -208,8 +212,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3550` - // Minimum execution time: 18_504_000 picoseconds. - Weight::from_parts(19_273_000, 3550) + // Minimum execution time: 18_551_000 picoseconds. + Weight::from_parts(19_727_000, 3550) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -219,8 +223,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3550` - // Minimum execution time: 20_477_000 picoseconds. - Weight::from_parts(21_328_000, 3550) + // Minimum execution time: 20_636_000 picoseconds. + Weight::from_parts(21_060_000, 3550) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -236,8 +240,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `740` // Estimated: `4681` - // Minimum execution time: 31_815_000 picoseconds. - Weight::from_parts(32_700_000, 4681) + // Minimum execution time: 32_394_000 picoseconds. + Weight::from_parts(33_324_000, 4681) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -255,8 +259,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `775` // Estimated: `5996` - // Minimum execution time: 38_313_000 picoseconds. - Weight::from_parts(38_985_000, 5996) + // Minimum execution time: 38_128_000 picoseconds. + Weight::from_parts(39_274_000, 5996) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -271,10 +275,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `859` // Estimated: `6196 + m * (2520 ±0)` - // Minimum execution time: 70_170_000 picoseconds. - Weight::from_parts(71_245_388, 6196) - // Standard Error: 54_382 - .saturating_add(Weight::from_parts(1_488_794, 0).saturating_mul(m.into())) + // Minimum execution time: 70_453_000 picoseconds. + Weight::from_parts(70_652_822, 6196) + // Standard Error: 75_524 + .saturating_add(Weight::from_parts(2_335_289, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -286,8 +290,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 43_414_000 picoseconds. - Weight::from_parts(44_475_000, 3593) + // Minimum execution time: 43_945_000 picoseconds. + Weight::from_parts(45_249_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -299,8 +303,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `603` // Estimated: `3550` - // Minimum execution time: 31_327_000 picoseconds. - Weight::from_parts(32_050_000, 3550) + // Minimum execution time: 30_680_000 picoseconds. + Weight::from_parts(32_995_000, 3550) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -314,8 +318,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `601` // Estimated: `3533` - // Minimum execution time: 41_315_000 picoseconds. - Weight::from_parts(42_421_000, 3533) + // Minimum execution time: 48_053_000 picoseconds. + Weight::from_parts(51_364_000, 3533) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -331,8 +335,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `995` // Estimated: `3593` - // Minimum execution time: 49_707_000 picoseconds. - Weight::from_parts(51_516_000, 3593) + // Minimum execution time: 57_372_000 picoseconds. + Weight::from_parts(59_466_000, 3593) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -344,20 +348,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `661` // Estimated: `4698` - // Minimum execution time: 26_207_000 picoseconds. - Weight::from_parts(27_227_000, 4698) + // Minimum execution time: 27_768_000 picoseconds. + Weight::from_parts(29_000_000, 4698) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// The range of component `n` is `[0, 1000]`. - fn request_core_count(n: u32, ) -> Weight { + fn request_core_count(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_670_000 picoseconds. - Weight::from_parts(5_170_450, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(37, 0).saturating_mul(n.into())) + // Minimum execution time: 4_588_000 picoseconds. + Weight::from_parts(5_201_705, 0) } /// Storage: `Broker::CoreCountInbox` (r:1 w:1) /// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) @@ -366,10 +368,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `404` // Estimated: `1487` - // Minimum execution time: 6_916_000 picoseconds. - Weight::from_parts(7_485_053, 1487) - // Standard Error: 23 - .saturating_add(Weight::from_parts(30, 0).saturating_mul(n.into())) + // Minimum execution time: 6_889_000 picoseconds. + Weight::from_parts(7_380_363, 1487) + // Standard Error: 21 + .saturating_add(Weight::from_parts(63, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -387,8 +389,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `972` // Estimated: `4437` - // Minimum execution time: 50_987_000 picoseconds. - Weight::from_parts(52_303_000, 4437) + // Minimum execution time: 50_156_000 picoseconds. + Weight::from_parts(51_610_000, 4437) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -407,10 +409,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `6281` // Estimated: `8499` - // Minimum execution time: 38_334_000 picoseconds. - Weight::from_parts(40_517_609, 8499) - // Standard Error: 90 - .saturating_add(Weight::from_parts(338, 0).saturating_mul(n.into())) + // Minimum execution time: 38_246_000 picoseconds. + Weight::from_parts(40_008_850, 8499) + // Standard Error: 94 + .saturating_add(Weight::from_parts(964, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(15_u64)) } @@ -422,8 +424,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `180` // Estimated: `3493` - // Minimum execution time: 7_850_000 picoseconds. - Weight::from_parts(8_157_000, 3493) + // Minimum execution time: 7_962_000 picoseconds. + Weight::from_parts(8_313_000, 3493) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -435,8 +437,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1423` // Estimated: `4681` - // Minimum execution time: 17_313_000 picoseconds. - Weight::from_parts(17_727_000, 4681) + // Minimum execution time: 17_457_000 picoseconds. + Weight::from_parts(18_387_000, 4681) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -444,8 +446,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 171_000 picoseconds. - Weight::from_parts(196_000, 0) + // Minimum execution time: 133_000 picoseconds. + Weight::from_parts(149_000, 0) } /// Storage: `Broker::CoreCountInbox` (r:0 w:1) /// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) @@ -453,8 +455,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_413_000 picoseconds. - Weight::from_parts(2_587_000, 0) + // Minimum execution time: 2_407_000 picoseconds. + Weight::from_parts(2_634_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Broker::Status` (r:1 w:1) @@ -469,8 +471,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `603` // Estimated: `4068` - // Minimum execution time: 13_121_000 picoseconds. - Weight::from_parts(13_685_000, 4068) + // Minimum execution time: 13_043_000 picoseconds. + Weight::from_parts(13_541_000, 4068) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -480,8 +482,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `239` // Estimated: `1526` - // Minimum execution time: 6_847_000 picoseconds. - Weight::from_parts(7_185_000, 1526) + // Minimum execution time: 6_606_000 picoseconds. + Weight::from_parts(6_964_000, 1526) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -495,8 +497,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_865_000 picoseconds. - Weight::from_parts(3_061_000, 0) + // Minimum execution time: 2_624_000 picoseconds. + Weight::from_parts(2_804_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Broker::Reservations` (r:1 w:1) @@ -505,8 +507,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `5016` // Estimated: `7496` - // Minimum execution time: 18_431_000 picoseconds. - Weight::from_parts(19_558_000, 7496) + // Minimum execution time: 18_451_000 picoseconds. + Weight::from_parts(18_853_000, 7496) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -516,8 +518,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `6218` // Estimated: `7496` - // Minimum execution time: 17_724_000 picoseconds. - Weight::from_parts(18_688_000, 7496) + // Minimum execution time: 16_899_000 picoseconds. + Weight::from_parts(17_645_000, 7496) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -527,8 +529,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `239` // Estimated: `1526` - // Minimum execution time: 10_513_000 picoseconds. - Weight::from_parts(11_138_000, 1526) + // Minimum execution time: 10_239_000 picoseconds. + Weight::from_parts(10_754_000, 1526) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -547,12 +549,14 @@ impl WeightInfo for () { /// Storage: `Broker::Workplan` (r:0 w:10) /// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. - fn start_sales(_n: u32, ) -> Weight { + fn start_sales(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `6330` // Estimated: `8499` - // Minimum execution time: 50_864_000 picoseconds. - Weight::from_parts(54_000_280, 8499) + // Minimum execution time: 51_250_000 picoseconds. + Weight::from_parts(54_643_012, 8499) + // Standard Error: 147 + .saturating_add(Weight::from_parts(18, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(16_u64)) } @@ -570,8 +574,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `635` // Estimated: `2120` - // Minimum execution time: 43_630_000 picoseconds. - Weight::from_parts(44_622_000, 2120) + // Minimum execution time: 43_660_000 picoseconds. + Weight::from_parts(45_543_000, 2120) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -593,8 +597,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `753` // Estimated: `4698` - // Minimum execution time: 62_453_000 picoseconds. - Weight::from_parts(63_882_000, 4698) + // Minimum execution time: 63_122_000 picoseconds. + Weight::from_parts(64_366_000, 4698) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -604,8 +608,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3550` - // Minimum execution time: 17_237_000 picoseconds. - Weight::from_parts(17_757_000, 3550) + // Minimum execution time: 17_552_000 picoseconds. + Weight::from_parts(18_251_000, 3550) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -615,8 +619,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3550` - // Minimum execution time: 18_504_000 picoseconds. - Weight::from_parts(19_273_000, 3550) + // Minimum execution time: 18_551_000 picoseconds. + Weight::from_parts(19_727_000, 3550) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -626,8 +630,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3550` - // Minimum execution time: 20_477_000 picoseconds. - Weight::from_parts(21_328_000, 3550) + // Minimum execution time: 20_636_000 picoseconds. + Weight::from_parts(21_060_000, 3550) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -643,8 +647,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `740` // Estimated: `4681` - // Minimum execution time: 31_815_000 picoseconds. - Weight::from_parts(32_700_000, 4681) + // Minimum execution time: 32_394_000 picoseconds. + Weight::from_parts(33_324_000, 4681) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -662,8 +666,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `775` // Estimated: `5996` - // Minimum execution time: 38_313_000 picoseconds. - Weight::from_parts(38_985_000, 5996) + // Minimum execution time: 38_128_000 picoseconds. + Weight::from_parts(39_274_000, 5996) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } @@ -678,10 +682,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `859` // Estimated: `6196 + m * (2520 ±0)` - // Minimum execution time: 70_170_000 picoseconds. - Weight::from_parts(71_245_388, 6196) - // Standard Error: 54_382 - .saturating_add(Weight::from_parts(1_488_794, 0).saturating_mul(m.into())) + // Minimum execution time: 70_453_000 picoseconds. + Weight::from_parts(70_652_822, 6196) + // Standard Error: 75_524 + .saturating_add(Weight::from_parts(2_335_289, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(m.into()))) .saturating_add(RocksDbWeight::get().writes(5_u64)) @@ -693,8 +697,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `103` // Estimated: `3593` - // Minimum execution time: 43_414_000 picoseconds. - Weight::from_parts(44_475_000, 3593) + // Minimum execution time: 43_945_000 picoseconds. + Weight::from_parts(45_249_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -706,8 +710,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `603` // Estimated: `3550` - // Minimum execution time: 31_327_000 picoseconds. - Weight::from_parts(32_050_000, 3550) + // Minimum execution time: 30_680_000 picoseconds. + Weight::from_parts(32_995_000, 3550) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -721,8 +725,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `601` // Estimated: `3533` - // Minimum execution time: 41_315_000 picoseconds. - Weight::from_parts(42_421_000, 3533) + // Minimum execution time: 48_053_000 picoseconds. + Weight::from_parts(51_364_000, 3533) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -738,8 +742,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `995` // Estimated: `3593` - // Minimum execution time: 49_707_000 picoseconds. - Weight::from_parts(51_516_000, 3593) + // Minimum execution time: 57_372_000 picoseconds. + Weight::from_parts(59_466_000, 3593) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -751,20 +755,18 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `661` // Estimated: `4698` - // Minimum execution time: 26_207_000 picoseconds. - Weight::from_parts(27_227_000, 4698) + // Minimum execution time: 27_768_000 picoseconds. + Weight::from_parts(29_000_000, 4698) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// The range of component `n` is `[0, 1000]`. - fn request_core_count(n: u32, ) -> Weight { + fn request_core_count(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_670_000 picoseconds. - Weight::from_parts(5_170_450, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(37, 0).saturating_mul(n.into())) + // Minimum execution time: 4_588_000 picoseconds. + Weight::from_parts(5_201_705, 0) } /// Storage: `Broker::CoreCountInbox` (r:1 w:1) /// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) @@ -773,10 +775,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `404` // Estimated: `1487` - // Minimum execution time: 6_916_000 picoseconds. - Weight::from_parts(7_485_053, 1487) - // Standard Error: 23 - .saturating_add(Weight::from_parts(30, 0).saturating_mul(n.into())) + // Minimum execution time: 6_889_000 picoseconds. + Weight::from_parts(7_380_363, 1487) + // Standard Error: 21 + .saturating_add(Weight::from_parts(63, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -794,8 +796,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `972` // Estimated: `4437` - // Minimum execution time: 50_987_000 picoseconds. - Weight::from_parts(52_303_000, 4437) + // Minimum execution time: 50_156_000 picoseconds. + Weight::from_parts(51_610_000, 4437) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -814,10 +816,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `6281` // Estimated: `8499` - // Minimum execution time: 38_334_000 picoseconds. - Weight::from_parts(40_517_609, 8499) - // Standard Error: 90 - .saturating_add(Weight::from_parts(338, 0).saturating_mul(n.into())) + // Minimum execution time: 38_246_000 picoseconds. + Weight::from_parts(40_008_850, 8499) + // Standard Error: 94 + .saturating_add(Weight::from_parts(964, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(15_u64)) } @@ -829,8 +831,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `180` // Estimated: `3493` - // Minimum execution time: 7_850_000 picoseconds. - Weight::from_parts(8_157_000, 3493) + // Minimum execution time: 7_962_000 picoseconds. + Weight::from_parts(8_313_000, 3493) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -842,8 +844,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1423` // Estimated: `4681` - // Minimum execution time: 17_313_000 picoseconds. - Weight::from_parts(17_727_000, 4681) + // Minimum execution time: 17_457_000 picoseconds. + Weight::from_parts(18_387_000, 4681) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -851,8 +853,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 171_000 picoseconds. - Weight::from_parts(196_000, 0) + // Minimum execution time: 133_000 picoseconds. + Weight::from_parts(149_000, 0) } /// Storage: `Broker::CoreCountInbox` (r:0 w:1) /// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) @@ -860,8 +862,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_413_000 picoseconds. - Weight::from_parts(2_587_000, 0) + // Minimum execution time: 2_407_000 picoseconds. + Weight::from_parts(2_634_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Broker::Status` (r:1 w:1) @@ -876,8 +878,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `603` // Estimated: `4068` - // Minimum execution time: 13_121_000 picoseconds. - Weight::from_parts(13_685_000, 4068) + // Minimum execution time: 13_043_000 picoseconds. + Weight::from_parts(13_541_000, 4068) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -887,8 +889,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `239` // Estimated: `1526` - // Minimum execution time: 6_847_000 picoseconds. - Weight::from_parts(7_185_000, 1526) + // Minimum execution time: 6_606_000 picoseconds. + Weight::from_parts(6_964_000, 1526) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/child-bounties/src/weights.rs b/substrate/frame/child-bounties/src/weights.rs index e4c1f238e88b7f94e177ab6005fca0beb3e91d1f..1c0583d58e02abc80b525cfab8e61e32a214e3d9 100644 --- a/substrate/frame/child-bounties/src/weights.rs +++ b/substrate/frame/child-bounties/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_child_bounties +//! Autogenerated weights for `pallet_child_bounties` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/child-bounties/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/child-bounties/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_child_bounties. +/// Weight functions needed for `pallet_child_bounties`. pub trait WeightInfo { fn add_child_bounty(d: u32, ) -> Weight; fn propose_curator() -> Weight; @@ -62,288 +61,288 @@ pub trait WeightInfo { fn close_child_bounty_active() -> Weight; } -/// Weights for pallet_child_bounties using the Substrate node and recommended hardware. +/// Weights for `pallet_child_bounties` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyCount (r:1 w:1) - /// Proof: ChildBounties ChildBountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:0 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyCount` (r:1 w:1) + /// Proof: `ChildBounties::ChildBountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:0 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) /// The range of component `d` is `[0, 300]`. fn add_child_bounty(_d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `712` + // Measured: `745` // Estimated: `6196` - // Minimum execution time: 69_805_000 picoseconds. - Weight::from_parts(73_216_717, 6196) + // Minimum execution time: 65_654_000 picoseconds. + Weight::from_parts(68_255_084, 6196) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn propose_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `766` + // Measured: `799` // Estimated: `3642` - // Minimum execution time: 18_190_000 picoseconds. - Weight::from_parts(18_932_000, 3642) + // Minimum execution time: 18_534_000 picoseconds. + Weight::from_parts(19_332_000, 3642) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn accept_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `912` + // Measured: `945` // Estimated: `3642` - // Minimum execution time: 35_035_000 picoseconds. - Weight::from_parts(35_975_000, 3642) + // Minimum execution time: 33_212_000 picoseconds. + Weight::from_parts(35_407_000, 3642) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn unassign_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `912` + // Measured: `945` // Estimated: `3642` - // Minimum execution time: 37_636_000 picoseconds. - Weight::from_parts(38_610_000, 3642) + // Minimum execution time: 35_510_000 picoseconds. + Weight::from_parts(36_345_000, 3642) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) fn award_child_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `809` + // Measured: `842` // Estimated: `3642` - // Minimum execution time: 22_457_000 picoseconds. - Weight::from_parts(23_691_000, 3642) + // Minimum execution time: 19_085_000 picoseconds. + Weight::from_parts(20_094_000, 3642) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: System Account (r:3 w:3) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn claim_child_bounty() -> Weight { // Proof Size summary in bytes: // Measured: `682` // Estimated: `8799` - // Minimum execution time: 118_272_000 picoseconds. - Weight::from_parts(121_646_000, 8799) + // Minimum execution time: 110_529_000 picoseconds. + Weight::from_parts(112_660_000, 8799) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_child_bounty_added() -> Weight { // Proof Size summary in bytes: - // Measured: `1012` + // Measured: `1045` // Estimated: `6196` - // Minimum execution time: 75_717_000 picoseconds. - Weight::from_parts(77_837_000, 6196) + // Minimum execution time: 76_363_000 picoseconds. + Weight::from_parts(77_799_000, 6196) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: System Account (r:3 w:3) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_child_bounty_active() -> Weight { // Proof Size summary in bytes: - // Measured: `1199` + // Measured: `1232` // Estimated: `8799` - // Minimum execution time: 94_215_000 picoseconds. - Weight::from_parts(97_017_000, 8799) + // Minimum execution time: 89_977_000 picoseconds. + Weight::from_parts(92_978_000, 8799) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyCount (r:1 w:1) - /// Proof: ChildBounties ChildBountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:0 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyCount` (r:1 w:1) + /// Proof: `ChildBounties::ChildBountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:0 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) /// The range of component `d` is `[0, 300]`. fn add_child_bounty(_d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `712` + // Measured: `745` // Estimated: `6196` - // Minimum execution time: 69_805_000 picoseconds. - Weight::from_parts(73_216_717, 6196) + // Minimum execution time: 65_654_000 picoseconds. + Weight::from_parts(68_255_084, 6196) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn propose_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `766` + // Measured: `799` // Estimated: `3642` - // Minimum execution time: 18_190_000 picoseconds. - Weight::from_parts(18_932_000, 3642) + // Minimum execution time: 18_534_000 picoseconds. + Weight::from_parts(19_332_000, 3642) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn accept_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `912` + // Measured: `945` // Estimated: `3642` - // Minimum execution time: 35_035_000 picoseconds. - Weight::from_parts(35_975_000, 3642) + // Minimum execution time: 33_212_000 picoseconds. + Weight::from_parts(35_407_000, 3642) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn unassign_curator() -> Weight { // Proof Size summary in bytes: - // Measured: `912` + // Measured: `945` // Estimated: `3642` - // Minimum execution time: 37_636_000 picoseconds. - Weight::from_parts(38_610_000, 3642) + // Minimum execution time: 35_510_000 picoseconds. + Weight::from_parts(36_345_000, 3642) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) fn award_child_bounty() -> Weight { // Proof Size summary in bytes: - // Measured: `809` + // Measured: `842` // Estimated: `3642` - // Minimum execution time: 22_457_000 picoseconds. - Weight::from_parts(23_691_000, 3642) + // Minimum execution time: 19_085_000 picoseconds. + Weight::from_parts(20_094_000, 3642) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: System Account (r:3 w:3) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn claim_child_bounty() -> Weight { // Proof Size summary in bytes: // Measured: `682` // Estimated: `8799` - // Minimum execution time: 118_272_000 picoseconds. - Weight::from_parts(121_646_000, 8799) + // Minimum execution time: 110_529_000 picoseconds. + Weight::from_parts(112_660_000, 8799) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_child_bounty_added() -> Weight { // Proof Size summary in bytes: - // Measured: `1012` + // Measured: `1045` // Estimated: `6196` - // Minimum execution time: 75_717_000 picoseconds. - Weight::from_parts(77_837_000, 6196) + // Minimum execution time: 76_363_000 picoseconds. + Weight::from_parts(77_799_000, 6196) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: Bounties Bounties (r:1 w:0) - /// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBounties (r:1 w:1) - /// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen) - /// Storage: System Account (r:3 w:3) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1) - /// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// Storage: ChildBounties ParentChildBounties (r:1 w:1) - /// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1) - /// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`) fn close_child_bounty_active() -> Weight { // Proof Size summary in bytes: - // Measured: `1199` + // Measured: `1232` // Estimated: `8799` - // Minimum execution time: 94_215_000 picoseconds. - Weight::from_parts(97_017_000, 8799) + // Minimum execution time: 89_977_000 picoseconds. + Weight::from_parts(92_978_000, 8799) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } diff --git a/substrate/frame/collective/src/weights.rs b/substrate/frame/collective/src/weights.rs index eece6a006b8f2bda108645e3d8b165a37ad04335..cadfbfcbfbfbf0ef9fa3d9922df6a067791b1368 100644 --- a/substrate/frame/collective/src/weights.rs +++ b/substrate/frame/collective/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_collective +//! Autogenerated weights for `pallet_collective` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/collective/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/collective/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_collective. +/// Weight functions needed for `pallet_collective`. pub trait WeightInfo { fn set_members(m: u32, n: u32, p: u32, ) -> Weight; fn execute(b: u32, m: u32, ) -> Weight; @@ -64,30 +63,30 @@ pub trait WeightInfo { fn disapprove_proposal(p: u32, ) -> Weight; } -/// Weights for pallet_collective using the Substrate node and recommended hardware. +/// Weights for `pallet_collective` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Council Members (r:1 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:100 w:100) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Prime (r:0 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:100 w:100) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:0 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[0, 100]`. /// The range of component `n` is `[0, 100]`. /// The range of component `p` is `[0, 100]`. fn set_members(m: u32, _n: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` - // Estimated: `15861 + m * (1967 ±24) + p * (4332 ±24)` - // Minimum execution time: 17_506_000 picoseconds. - Weight::from_parts(17_767_000, 15861) - // Standard Error: 60_220 - .saturating_add(Weight::from_parts(4_374_805, 0).saturating_mul(m.into())) - // Standard Error: 60_220 - .saturating_add(Weight::from_parts(8_398_316, 0).saturating_mul(p.into())) + // Estimated: `15894 + m * (1967 ±24) + p * (4332 ±24)` + // Minimum execution time: 15_780_000 picoseconds. + Weight::from_parts(16_193_000, 15894) + // Standard Error: 56_777 + .saturating_add(Weight::from_parts(4_269_920, 0).saturating_mul(m.into())) + // Standard Error: 56_777 + .saturating_add(Weight::from_parts(8_046_697, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -95,245 +94,261 @@ impl WeightInfo for SubstrateWeight { .saturating_add(Weight::from_parts(0, 1967).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 4332).saturating_mul(p.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `202 + m * (32 ±0)` - // Estimated: `1688 + m * (32 ±0)` - // Minimum execution time: 16_203_000 picoseconds. - Weight::from_parts(15_348_267, 1688) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_766, 0).saturating_mul(b.into())) - // Standard Error: 382 - .saturating_add(Weight::from_parts(15_765, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Measured: `380 + m * (32 ±0)` + // Estimated: `3997 + m * (32 ±0)` + // Minimum execution time: 19_760_000 picoseconds. + Weight::from_parts(18_849_113, 3997) + // Standard Error: 48 + .saturating_add(Weight::from_parts(2_076, 0).saturating_mul(b.into())) + // Standard Error: 501 + .saturating_add(Weight::from_parts(17_171, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:0) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:0) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn propose_execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `202 + m * (32 ±0)` - // Estimated: `3668 + m * (32 ±0)` - // Minimum execution time: 18_642_000 picoseconds. - Weight::from_parts(17_708_609, 3668) - // Standard Error: 58 - .saturating_add(Weight::from_parts(2_285, 0).saturating_mul(b.into())) - // Standard Error: 598 - .saturating_add(Weight::from_parts(30_454, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Measured: `380 + m * (32 ±0)` + // Estimated: `3997 + m * (32 ±0)` + // Minimum execution time: 21_535_000 picoseconds. + Weight::from_parts(20_564_012, 3997) + // Standard Error: 66 + .saturating_add(Weight::from_parts(2_252, 0).saturating_mul(b.into())) + // Standard Error: 689 + .saturating_add(Weight::from_parts(33_509, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalCount (r:1 w:1) - /// Proof Skipped: Council ProposalCount (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:0 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalCount` (r:1 w:1) + /// Proof: `Council::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:0 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `492 + m * (32 ±0) + p * (36 ±0)` - // Estimated: `3884 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 27_067_000 picoseconds. - Weight::from_parts(25_456_964, 3884) - // Standard Error: 112 - .saturating_add(Weight::from_parts(3_773, 0).saturating_mul(b.into())) - // Standard Error: 1_177 - .saturating_add(Weight::from_parts(32_783, 0).saturating_mul(m.into())) - // Standard Error: 1_162 - .saturating_add(Weight::from_parts(194_388, 0).saturating_mul(p.into())) + // Measured: `525 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `3917 + m * (33 ±0) + p * (36 ±0)` + // Minimum execution time: 22_759_000 picoseconds. + Weight::from_parts(21_344_363, 3917) + // Standard Error: 121 + .saturating_add(Weight::from_parts(3_231, 0).saturating_mul(b.into())) + // Standard Error: 1_265 + .saturating_add(Weight::from_parts(31_197, 0).saturating_mul(m.into())) + // Standard Error: 1_249 + .saturating_add(Weight::from_parts(200_231, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `941 + m * (64 ±0)` - // Estimated: `4405 + m * (64 ±0)` - // Minimum execution time: 26_055_000 picoseconds. - Weight::from_parts(27_251_907, 4405) - // Standard Error: 1_008 - .saturating_add(Weight::from_parts(65_947, 0).saturating_mul(m.into())) + // Measured: `974 + m * (64 ±0)` + // Estimated: `4438 + m * (64 ±0)` + // Minimum execution time: 22_935_000 picoseconds. + Weight::from_parts(23_694_302, 4438) + // Standard Error: 959 + .saturating_add(Weight::from_parts(57_721, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:0 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:0 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `530 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3975 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 28_363_000 picoseconds. - Weight::from_parts(28_733_464, 3975) - // Standard Error: 1_275 - .saturating_add(Weight::from_parts(43_236, 0).saturating_mul(m.into())) - // Standard Error: 1_244 - .saturating_add(Weight::from_parts(180_187, 0).saturating_mul(p.into())) + // Measured: `563 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `4008 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 25_507_000 picoseconds. + Weight::from_parts(24_849_399, 4008) + // Standard Error: 1_089 + .saturating_add(Weight::from_parts(40_933, 0).saturating_mul(m.into())) + // Standard Error: 1_062 + .saturating_add(Weight::from_parts(198_325, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `832 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4149 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 40_391_000 picoseconds. - Weight::from_parts(42_695_215, 4149) - // Standard Error: 167 - .saturating_add(Weight::from_parts(3_622, 0).saturating_mul(b.into())) - // Standard Error: 1_772 - .saturating_add(Weight::from_parts(33_830, 0).saturating_mul(m.into())) - // Standard Error: 1_727 - .saturating_add(Weight::from_parts(205_374, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `1010 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4327 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 43_927_000 picoseconds. + Weight::from_parts(43_733_720, 4327) + // Standard Error: 157 + .saturating_add(Weight::from_parts(3_737, 0).saturating_mul(b.into())) + // Standard Error: 1_664 + .saturating_add(Weight::from_parts(31_334, 0).saturating_mul(m.into())) + // Standard Error: 1_622 + .saturating_add(Weight::from_parts(222_964, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:0) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:0 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:0) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:0 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `550 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3995 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 31_368_000 picoseconds. - Weight::from_parts(32_141_835, 3995) - // Standard Error: 1_451 - .saturating_add(Weight::from_parts(36_372, 0).saturating_mul(m.into())) - // Standard Error: 1_415 - .saturating_add(Weight::from_parts(210_635, 0).saturating_mul(p.into())) + // Measured: `583 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `4028 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 28_129_000 picoseconds. + Weight::from_parts(26_799_151, 4028) + // Standard Error: 1_325 + .saturating_add(Weight::from_parts(41_545, 0).saturating_mul(m.into())) + // Standard Error: 1_292 + .saturating_add(Weight::from_parts(224_499, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:0) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:0) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `852 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4169 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 43_271_000 picoseconds. - Weight::from_parts(45_495_648, 4169) - // Standard Error: 174 - .saturating_add(Weight::from_parts(3_034, 0).saturating_mul(b.into())) - // Standard Error: 1_840 - .saturating_add(Weight::from_parts(42_209, 0).saturating_mul(m.into())) - // Standard Error: 1_793 - .saturating_add(Weight::from_parts(207_525, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Measured: `1030 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4347 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 45_700_000 picoseconds. + Weight::from_parts(45_661_144, 4347) + // Standard Error: 149 + .saturating_add(Weight::from_parts(3_068, 0).saturating_mul(b.into())) + // Standard Error: 1_583 + .saturating_add(Weight::from_parts(36_426, 0).saturating_mul(m.into())) + // Standard Error: 1_543 + .saturating_add(Weight::from_parts(229_986, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:0 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:0 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:0 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:0 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `p` is `[1, 100]`. fn disapprove_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `359 + p * (32 ±0)` - // Estimated: `1844 + p * (32 ±0)` - // Minimum execution time: 15_170_000 picoseconds. - Weight::from_parts(17_567_243, 1844) - // Standard Error: 1_430 - .saturating_add(Weight::from_parts(169_040, 0).saturating_mul(p.into())) + // Measured: `392 + p * (32 ±0)` + // Estimated: `1877 + p * (32 ±0)` + // Minimum execution time: 13_163_000 picoseconds. + Weight::from_parts(14_467_031, 1877) + // Standard Error: 1_073 + .saturating_add(Weight::from_parts(190_879, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Council Members (r:1 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:100 w:100) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Prime (r:0 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:100 w:100) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:0 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[0, 100]`. /// The range of component `n` is `[0, 100]`. /// The range of component `p` is `[0, 100]`. fn set_members(m: u32, _n: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` - // Estimated: `15861 + m * (1967 ±24) + p * (4332 ±24)` - // Minimum execution time: 17_506_000 picoseconds. - Weight::from_parts(17_767_000, 15861) - // Standard Error: 60_220 - .saturating_add(Weight::from_parts(4_374_805, 0).saturating_mul(m.into())) - // Standard Error: 60_220 - .saturating_add(Weight::from_parts(8_398_316, 0).saturating_mul(p.into())) + // Estimated: `15894 + m * (1967 ±24) + p * (4332 ±24)` + // Minimum execution time: 15_780_000 picoseconds. + Weight::from_parts(16_193_000, 15894) + // Standard Error: 56_777 + .saturating_add(Weight::from_parts(4_269_920, 0).saturating_mul(m.into())) + // Standard Error: 56_777 + .saturating_add(Weight::from_parts(8_046_697, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -341,216 +356,232 @@ impl WeightInfo for () { .saturating_add(Weight::from_parts(0, 1967).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 4332).saturating_mul(p.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `202 + m * (32 ±0)` - // Estimated: `1688 + m * (32 ±0)` - // Minimum execution time: 16_203_000 picoseconds. - Weight::from_parts(15_348_267, 1688) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_766, 0).saturating_mul(b.into())) - // Standard Error: 382 - .saturating_add(Weight::from_parts(15_765, 0).saturating_mul(m.into())) - .saturating_add(RocksDbWeight::get().reads(1_u64)) + // Measured: `380 + m * (32 ±0)` + // Estimated: `3997 + m * (32 ±0)` + // Minimum execution time: 19_760_000 picoseconds. + Weight::from_parts(18_849_113, 3997) + // Standard Error: 48 + .saturating_add(Weight::from_parts(2_076, 0).saturating_mul(b.into())) + // Standard Error: 501 + .saturating_add(Weight::from_parts(17_171, 0).saturating_mul(m.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:0) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:0) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn propose_execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `202 + m * (32 ±0)` - // Estimated: `3668 + m * (32 ±0)` - // Minimum execution time: 18_642_000 picoseconds. - Weight::from_parts(17_708_609, 3668) - // Standard Error: 58 - .saturating_add(Weight::from_parts(2_285, 0).saturating_mul(b.into())) - // Standard Error: 598 - .saturating_add(Weight::from_parts(30_454, 0).saturating_mul(m.into())) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Measured: `380 + m * (32 ±0)` + // Estimated: `3997 + m * (32 ±0)` + // Minimum execution time: 21_535_000 picoseconds. + Weight::from_parts(20_564_012, 3997) + // Standard Error: 66 + .saturating_add(Weight::from_parts(2_252, 0).saturating_mul(b.into())) + // Standard Error: 689 + .saturating_add(Weight::from_parts(33_509, 0).saturating_mul(m.into())) + .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalCount (r:1 w:1) - /// Proof Skipped: Council ProposalCount (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:0 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalCount` (r:1 w:1) + /// Proof: `Council::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:0 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `492 + m * (32 ±0) + p * (36 ±0)` - // Estimated: `3884 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 27_067_000 picoseconds. - Weight::from_parts(25_456_964, 3884) - // Standard Error: 112 - .saturating_add(Weight::from_parts(3_773, 0).saturating_mul(b.into())) - // Standard Error: 1_177 - .saturating_add(Weight::from_parts(32_783, 0).saturating_mul(m.into())) - // Standard Error: 1_162 - .saturating_add(Weight::from_parts(194_388, 0).saturating_mul(p.into())) + // Measured: `525 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `3917 + m * (33 ±0) + p * (36 ±0)` + // Minimum execution time: 22_759_000 picoseconds. + Weight::from_parts(21_344_363, 3917) + // Standard Error: 121 + .saturating_add(Weight::from_parts(3_231, 0).saturating_mul(b.into())) + // Standard Error: 1_265 + .saturating_add(Weight::from_parts(31_197, 0).saturating_mul(m.into())) + // Standard Error: 1_249 + .saturating_add(Weight::from_parts(200_231, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `941 + m * (64 ±0)` - // Estimated: `4405 + m * (64 ±0)` - // Minimum execution time: 26_055_000 picoseconds. - Weight::from_parts(27_251_907, 4405) - // Standard Error: 1_008 - .saturating_add(Weight::from_parts(65_947, 0).saturating_mul(m.into())) + // Measured: `974 + m * (64 ±0)` + // Estimated: `4438 + m * (64 ±0)` + // Minimum execution time: 22_935_000 picoseconds. + Weight::from_parts(23_694_302, 4438) + // Standard Error: 959 + .saturating_add(Weight::from_parts(57_721, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:0 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:0 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `530 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3975 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 28_363_000 picoseconds. - Weight::from_parts(28_733_464, 3975) - // Standard Error: 1_275 - .saturating_add(Weight::from_parts(43_236, 0).saturating_mul(m.into())) - // Standard Error: 1_244 - .saturating_add(Weight::from_parts(180_187, 0).saturating_mul(p.into())) + // Measured: `563 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `4008 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 25_507_000 picoseconds. + Weight::from_parts(24_849_399, 4008) + // Standard Error: 1_089 + .saturating_add(Weight::from_parts(40_933, 0).saturating_mul(m.into())) + // Standard Error: 1_062 + .saturating_add(Weight::from_parts(198_325, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `832 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4149 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 40_391_000 picoseconds. - Weight::from_parts(42_695_215, 4149) - // Standard Error: 167 - .saturating_add(Weight::from_parts(3_622, 0).saturating_mul(b.into())) - // Standard Error: 1_772 - .saturating_add(Weight::from_parts(33_830, 0).saturating_mul(m.into())) - // Standard Error: 1_727 - .saturating_add(Weight::from_parts(205_374, 0).saturating_mul(p.into())) - .saturating_add(RocksDbWeight::get().reads(4_u64)) + // Measured: `1010 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4327 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 43_927_000 picoseconds. + Weight::from_parts(43_733_720, 4327) + // Standard Error: 157 + .saturating_add(Weight::from_parts(3_737, 0).saturating_mul(b.into())) + // Standard Error: 1_664 + .saturating_add(Weight::from_parts(31_334, 0).saturating_mul(m.into())) + // Standard Error: 1_622 + .saturating_add(Weight::from_parts(222_964, 0).saturating_mul(p.into())) + .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:0) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:0 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:0) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:0 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `550 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3995 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 31_368_000 picoseconds. - Weight::from_parts(32_141_835, 3995) - // Standard Error: 1_451 - .saturating_add(Weight::from_parts(36_372, 0).saturating_mul(m.into())) - // Standard Error: 1_415 - .saturating_add(Weight::from_parts(210_635, 0).saturating_mul(p.into())) + // Measured: `583 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `4028 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 28_129_000 picoseconds. + Weight::from_parts(26_799_151, 4028) + // Standard Error: 1_325 + .saturating_add(Weight::from_parts(41_545, 0).saturating_mul(m.into())) + // Standard Error: 1_292 + .saturating_add(Weight::from_parts(224_499, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: Council Voting (r:1 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Members (r:1 w:0) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:0) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:1 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Council::Voting` (r:1 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:1 w:0) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:0) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:1 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `852 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4169 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 43_271_000 picoseconds. - Weight::from_parts(45_495_648, 4169) - // Standard Error: 174 - .saturating_add(Weight::from_parts(3_034, 0).saturating_mul(b.into())) - // Standard Error: 1_840 - .saturating_add(Weight::from_parts(42_209, 0).saturating_mul(m.into())) - // Standard Error: 1_793 - .saturating_add(Weight::from_parts(207_525, 0).saturating_mul(p.into())) - .saturating_add(RocksDbWeight::get().reads(5_u64)) + // Measured: `1030 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4347 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 45_700_000 picoseconds. + Weight::from_parts(45_661_144, 4347) + // Standard Error: 149 + .saturating_add(Weight::from_parts(3_068, 0).saturating_mul(b.into())) + // Standard Error: 1_583 + .saturating_add(Weight::from_parts(36_426, 0).saturating_mul(m.into())) + // Standard Error: 1_543 + .saturating_add(Weight::from_parts(229_986, 0).saturating_mul(p.into())) + .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: Council Proposals (r:1 w:1) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Voting (r:0 w:1) - /// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council ProposalOf (r:0 w:1) - /// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: `Council::Proposals` (r:1 w:1) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Voting` (r:0 w:1) + /// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::ProposalOf` (r:0 w:1) + /// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `p` is `[1, 100]`. fn disapprove_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `359 + p * (32 ±0)` - // Estimated: `1844 + p * (32 ±0)` - // Minimum execution time: 15_170_000 picoseconds. - Weight::from_parts(17_567_243, 1844) - // Standard Error: 1_430 - .saturating_add(Weight::from_parts(169_040, 0).saturating_mul(p.into())) + // Measured: `392 + p * (32 ±0)` + // Estimated: `1877 + p * (32 ±0)` + // Minimum execution time: 13_163_000 picoseconds. + Weight::from_parts(14_467_031, 1877) + // Standard Error: 1_073 + .saturating_add(Weight::from_parts(190_879, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/substrate/frame/contracts/fixtures/contracts/return_with_data.rs b/substrate/frame/contracts/fixtures/contracts/return_with_data.rs index 5340f86fbfc589e1c0c3ca3c25c40c24a5276cd1..26f74edba5d0afdbd9fef8c88028a1e9f157da4c 100644 --- a/substrate/frame/contracts/fixtures/contracts/return_with_data.rs +++ b/substrate/frame/contracts/fixtures/contracts/return_with_data.rs @@ -38,6 +38,10 @@ pub extern "C" fn call() { output: [u8], ); + // Burn some PoV, clear_storage consumes some PoV as in order to clear the storage we need to we + // need to read its size first. + api::clear_storage_v1(b""); + let exit_status = uapi::ReturnFlags::from_bits(exit_status[0] as u32).unwrap(); api::return_value(exit_status, output); } diff --git a/substrate/frame/contracts/src/benchmarking/call_builder.rs b/substrate/frame/contracts/src/benchmarking/call_builder.rs new file mode 100644 index 0000000000000000000000000000000000000000..285fe0052b4d95a200eaebd0a86fb77d729aacfd --- /dev/null +++ b/substrate/frame/contracts/src/benchmarking/call_builder.rs @@ -0,0 +1,170 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::{ + benchmarking::{Contract, WasmModule}, + exec::Stack, + storage::meter::Meter, + wasm::Runtime, + BalanceOf, Config, DebugBufferVec, Determinism, ExecReturnValue, GasMeter, Origin, Schedule, + TypeInfo, WasmBlob, Weight, +}; +use codec::{Encode, HasCompact}; +use core::fmt::Debug; +use sp_core::Get; +use sp_std::prelude::*; + +type StackExt<'a, T> = Stack<'a, T, WasmBlob>; + +/// A prepared contract call ready to be executed. +pub struct PreparedCall<'a, T: Config> { + func: wasmi::Func, + store: wasmi::Store>>, +} + +impl<'a, T: Config> PreparedCall<'a, T> { + pub fn call(mut self) -> ExecReturnValue { + let result = self.func.call(&mut self.store, &[], &mut []); + WasmBlob::::process_result(self.store, result).unwrap() + } +} + +/// A builder used to prepare a contract call. +pub struct CallSetup { + contract: Contract, + dest: T::AccountId, + origin: Origin, + gas_meter: GasMeter, + storage_meter: Meter, + schedule: Schedule, + value: BalanceOf, + debug_message: Option>, + determinism: Determinism, + data: Vec, +} + +impl CallSetup +where + T: Config + pallet_balances::Config, + as HasCompact>::Type: Clone + Eq + PartialEq + Debug + TypeInfo + Encode, +{ + /// Setup a new call for the given module. + pub fn new(module: WasmModule) -> Self { + let contract = Contract::::new(module.clone(), vec![]).unwrap(); + let dest = contract.account_id.clone(); + let origin = Origin::from_account_id(contract.caller.clone()); + + let storage_meter = Meter::new(&origin, None, 0u32.into()).unwrap(); + + Self { + contract, + dest, + origin, + gas_meter: GasMeter::new(Weight::MAX), + storage_meter, + schedule: T::Schedule::get(), + value: 0u32.into(), + debug_message: None, + determinism: Determinism::Enforced, + data: vec![], + } + } + + /// Set the meter's storage deposit limit. + pub fn set_storage_deposit_limit(&mut self, balance: BalanceOf) { + self.storage_meter = Meter::new(&self.origin, Some(balance), 0u32.into()).unwrap(); + } + + /// Set the call's origin. + pub fn set_origin(&mut self, origin: Origin) { + self.origin = origin; + } + + /// Set the contract's balance. + pub fn set_balance(&mut self, value: BalanceOf) { + self.contract.set_balance(value); + } + + /// Set the call's input data. + pub fn set_data(&mut self, value: Vec) { + self.data = value; + } + + /// Set the debug message. + pub fn enable_debug_message(&mut self) { + self.debug_message = Some(Default::default()); + } + + /// Get the debug message. + pub fn debug_message(&self) -> Option> { + self.debug_message.clone() + } + + /// Get the call's input data. + pub fn data(&self) -> Vec { + self.data.clone() + } + + /// Get the call's contract. + pub fn contract(&self) -> Contract { + self.contract.clone() + } + + /// Build the call stack. + pub fn ext(&mut self) -> (StackExt<'_, T>, WasmBlob) { + StackExt::bench_new_call( + self.dest.clone(), + self.origin.clone(), + &mut self.gas_meter, + &mut self.storage_meter, + &self.schedule, + self.value, + self.debug_message.as_mut(), + self.determinism, + ) + } + + /// Prepare a call to the module. + pub fn prepare_call<'a>( + ext: &'a mut StackExt<'a, T>, + module: WasmBlob, + input: Vec, + ) -> PreparedCall<'a, T> { + let (func, store) = module.bench_prepare_call(ext, input); + PreparedCall { func, store } + } +} + +#[macro_export] +macro_rules! call_builder( + ($func: ident, $module:expr) => { + $crate::call_builder!($func, _contract, $module); + }; + ($func: ident, $contract: ident, $module:expr) => { + let mut setup = CallSetup::::new($module); + $crate::call_builder!($func, $contract, setup: setup); + }; + ($func:ident, setup: $setup: ident) => { + $crate::call_builder!($func, _contract, setup: $setup); + }; + ($func:ident, $contract: ident, setup: $setup: ident) => { + let data = $setup.data(); + let $contract = $setup.contract(); + let (mut ext, module) = $setup.ext(); + let $func = CallSetup::::prepare_call(&mut ext, module, data); + }; +); diff --git a/substrate/frame/contracts/src/benchmarking/mod.rs b/substrate/frame/contracts/src/benchmarking/mod.rs index 094edee96e94193d572e7d9f3af0657b9a966869..676fd320a17299b2eb2471d485afcd2775168175 100644 --- a/substrate/frame/contracts/src/benchmarking/mod.rs +++ b/substrate/frame/contracts/src/benchmarking/mod.rs @@ -18,9 +18,11 @@ //! Benchmarks for the contracts pallet #![cfg(feature = "runtime-benchmarks")] +mod call_builder; mod code; mod sandbox; use self::{ + call_builder::CallSetup, code::{ body::{self, DynInstr::*}, DataSegment, ImportedFunction, ImportedMemory, Location, ModuleDefinition, WasmModule, @@ -30,7 +32,7 @@ use self::{ use crate::{ exec::Key, migration::{ - codegen::LATEST_MIGRATION_VERSION, v09, v10, v11, v12, v13, v14, v15, MigrationStep, + codegen::LATEST_MIGRATION_VERSION, v09, v10, v11, v12, v13, v14, v15, v16, MigrationStep, }, Pallet as Contracts, *, }; @@ -63,6 +65,7 @@ const API_BENCHMARK_RUNS: u32 = 1600; const INSTR_BENCHMARK_RUNS: u32 = 5000; /// An instantiated and deployed contract. +#[derive(Clone)] struct Contract { caller: T::AccountId, account_id: T::AccountId, @@ -328,6 +331,26 @@ mod benchmarks { Ok(()) } + // This benchmarks the v16 migration step (Remove ED from base_deposit). + #[benchmark(pov_mode = Measured)] + fn v16_migration_step() -> Result<(), BenchmarkError> { + let contract = + >::with_caller(whitelisted_caller(), WasmModule::dummy(), vec![])?; + + let info = contract.info()?; + let base_deposit = v16::store_old_contract_info::(contract.account_id.clone(), &info); + let mut m = v16::Migration::::default(); + + #[block] + { + m.step(&mut WeightMeter::new()); + } + let ed = Pallet::::min_balance(); + let info = v16::ContractInfoOf::::get(&contract.account_id).unwrap(); + assert_eq!(info.storage_base_deposit, base_deposit - ed); + Ok(()) + } + // This benchmarks the weight of executing Migration::migrate to execute a noop migration. #[benchmark(pov_mode = Measured)] fn migration_noop() { @@ -598,17 +621,16 @@ mod benchmarks { } #[benchmark(pov_mode = Measured)] - fn seal_caller(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = Contract::::new(WasmModule::getter("seal0", "seal_caller", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - - Ok(()) + fn seal_caller(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_caller", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_is_contract(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_is_contract(r: Linear<0, API_BENCHMARK_RUNS>) { let accounts = (0..r).map(|n| account::("account", n, 0)).collect::>(); let account_len = accounts.get(0).map(|i| i.encode().len()).unwrap_or(0); let accounts_bytes = accounts.iter().flat_map(|a| a.encode()).collect::>(); @@ -631,21 +653,20 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let info = instance.info()?; + call_builder!(func, instance, code); + let info = instance.info().unwrap(); // every account would be a contract (worst case) for acc in accounts.iter() { >::insert(acc, info.clone()); } - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - - Ok(()) + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_code_hash(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_code_hash(r: Linear<0, API_BENCHMARK_RUNS>) { let accounts = (0..r).map(|n| account::("account", n, 0)).collect::>(); let account_len = accounts.get(0).map(|i| i.encode().len()).unwrap_or(0); let accounts_bytes = accounts.iter().flat_map(|a| a.encode()).collect::>(); @@ -676,30 +697,29 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let info = instance.info()?; + call_builder!(func, instance, code); + let info = instance.info().unwrap(); // every account would be a contract (worst case) for acc in accounts.iter() { >::insert(acc, info.clone()); } - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_own_code_hash(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::getter("seal0", "seal_own_code_hash", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_own_code_hash(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_own_code_hash", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_caller_is_origin(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_caller_is_origin(r: Linear<0, API_BENCHMARK_RUNS>) { let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { @@ -711,15 +731,15 @@ mod benchmarks { call_body: Some(body::repeated(r, &[Instruction::Call(0), Instruction::Drop])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + call_builder!(func, code); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_caller_is_root(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_caller_is_root(r: Linear<0, API_BENCHMARK_RUNS>) { let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { @@ -731,81 +751,80 @@ mod benchmarks { call_body: Some(body::repeated(r, &[Instruction::Call(0), Instruction::Drop])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Root; - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + let mut setup = CallSetup::::new(code); + setup.set_origin(Origin::Root); + call_builder!(func, setup: setup); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_address(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = Contract::::new(WasmModule::getter("seal0", "seal_address", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_address(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_address", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_gas_left(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = Contract::::new(WasmModule::getter("seal1", "gas_left", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_gas_left(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal1", "gas_left", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_balance(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = Contract::::new(WasmModule::getter("seal0", "seal_balance", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_balance(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_balance", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_value_transferred(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::getter("seal0", "seal_value_transferred", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_value_transferred(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_value_transferred", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_minimum_balance(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::getter("seal0", "seal_minimum_balance", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_minimum_balance(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_minimum_balance", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_block_number(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::getter("seal0", "seal_block_number", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_block_number(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_block_number", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_now(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = Contract::::new(WasmModule::getter("seal0", "seal_now", r), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_now(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::getter("seal0", "seal_now", r)); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_weight_to_fee(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_weight_to_fee(r: Linear<0, API_BENCHMARK_RUNS>) { let pages = code::max_pages::(); let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), @@ -831,15 +850,15 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + call_builder!(func, code); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_input(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_input(r: Linear<0, API_BENCHMARK_RUNS>) { let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { @@ -859,11 +878,12 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + + call_builder!(func, code); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] @@ -903,7 +923,7 @@ mod benchmarks { // as precise as with other APIs. Because this function can only be called once per // contract it cannot be used as an attack vector. #[benchmark(pov_mode = Measured)] - fn seal_return(r: Linear<0, 1>) -> Result<(), BenchmarkError> { + fn seal_return(r: Linear<0, 1>) { let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { @@ -923,17 +943,15 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + call_builder!(func, code); + #[block] + { + func.call(); + } } #[benchmark(pov_mode = Measured)] - fn seal_return_per_byte( - n: Linear<0, { code::max_pages::() * 64 * 1024 }>, - ) -> Result<(), BenchmarkError> { + fn seal_return_per_byte(n: Linear<0, { code::max_pages::() * 64 * 1024 }>) { let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { @@ -951,11 +969,11 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + call_builder!(func, code); + #[block] + { + func.call(); + } } // The same argument as for `seal_return` is true here. @@ -1060,7 +1078,7 @@ mod benchmarks { // number (< 1 KB). Therefore we are not overcharging too much in case a smaller subject is // used. #[benchmark(pov_mode = Measured)] - fn seal_random(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_random(r: Linear<0, API_BENCHMARK_RUNS>) { let pages = code::max_pages::(); let subject_len = T::Schedule::get().limits.subject_len; assert!(subject_len < 1024); @@ -1088,17 +1106,18 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + + call_builder!(func, code); + #[block] + { + func.call(); + } } // Overhead of calling the function without any topic. // We benchmark for the worst case (largest event). #[benchmark(pov_mode = Measured)] - fn seal_deposit_event(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_deposit_event(r: Linear<0, API_BENCHMARK_RUNS>) { let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { @@ -1119,11 +1138,12 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + + call_builder!(func, code); + #[block] + { + func.call(); + } } // Benchmark the overhead that topics generate. @@ -1133,7 +1153,7 @@ mod benchmarks { fn seal_deposit_event_per_topic_and_byte( t: Linear<0, { T::Schedule::get().limits.event_topics }>, n: Linear<0, { T::Schedule::get().limits.payload_len }>, - ) -> Result<(), BenchmarkError> { + ) { let topics = (0..t).map(|i| T::Hashing::hash_of(&i)).collect::>().encode(); let topics_len = topics.len(); let code = WasmModule::::from(ModuleDefinition { @@ -1155,11 +1175,12 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + + call_builder!(func, code); + #[block] + { + func.call(); + } } // Benchmark debug_message call with zero input data. @@ -1186,22 +1207,12 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - + let mut setup = CallSetup::::new(code); + setup.enable_debug_message(); + call_builder!(func, setup: setup); #[block] { - >::bare_call( - instance.caller, - instance.account_id, - 0u32.into(), - Weight::MAX, - None, - vec![], - DebugInfo::UnsafeDebug, - CollectEvents::Skip, - Determinism::Enforced, - ) - .result?; + func.call(); } Ok(()) } @@ -1246,22 +1257,14 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + let mut setup = CallSetup::::new(code); + setup.enable_debug_message(); + call_builder!(func, setup: setup); #[block] { - >::bare_call( - instance.caller, - instance.account_id, - 0u32.into(), - Weight::MAX, - None, - vec![], - DebugInfo::UnsafeDebug, - CollectEvents::Skip, - Determinism::Enforced, - ) - .result?; + func.call(); } + assert_eq!(setup.debug_message().unwrap().len() as u32, i); Ok(()) } @@ -1309,7 +1312,8 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + + call_builder!(func, instance, code); let info = instance.info()?; for key in keys { info.write( @@ -1320,9 +1324,10 @@ mod benchmarks { ) .map_err(|_| "Failed to write to storage during setup.")?; } - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1352,7 +1357,7 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; info.write( &Key::::try_from_var(key).map_err(|_| "Key has wrong length")?, @@ -1361,9 +1366,10 @@ mod benchmarks { false, ) .map_err(|_| "Failed to write to storage during setup.")?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1394,7 +1400,7 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; info.write( &Key::::try_from_var(key).map_err(|_| "Key has wrong length")?, @@ -1403,9 +1409,10 @@ mod benchmarks { false, ) .map_err(|_| "Failed to write to storage during setup.")?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1444,7 +1451,7 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; for key in keys { info.write( @@ -1456,9 +1463,10 @@ mod benchmarks { .map_err(|_| "Failed to write to storage during setup.")?; } >::insert(&instance.account_id, info); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1486,7 +1494,7 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; info.write( &Key::::try_from_var(key).map_err(|_| "Key has wrong length")?, @@ -1495,9 +1503,11 @@ mod benchmarks { false, ) .map_err(|_| "Failed to write to storage during setup.")?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + + #[block] + { + func.call(); + } Ok(()) } @@ -1542,7 +1552,7 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; for key in keys { info.write( @@ -1554,9 +1564,10 @@ mod benchmarks { .map_err(|_| "Failed to write to storage during setup.")?; } >::insert(&instance.account_id, info); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1592,7 +1603,7 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; info.write( &Key::::try_from_var(key).map_err(|_| "Key has wrong length")?, @@ -1602,9 +1613,11 @@ mod benchmarks { ) .map_err(|_| "Failed to write to storage during setup.")?; >::insert(&instance.account_id, info); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } + Ok(()) } @@ -1642,7 +1655,7 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; for key in keys { info.write( @@ -1654,9 +1667,10 @@ mod benchmarks { .map_err(|_| "Failed to write to storage during setup.")?; } >::insert(&instance.account_id, info); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1684,7 +1698,7 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; info.write( &Key::::try_from_var(key).map_err(|_| "Key has wrong length")?, @@ -1694,9 +1708,10 @@ mod benchmarks { ) .map_err(|_| "Failed to write to storage during setup.")?; >::insert(&instance.account_id, info); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1740,7 +1755,7 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; for key in keys { info.write( @@ -1752,9 +1767,10 @@ mod benchmarks { .map_err(|_| "Failed to write to storage during setup.")?; } >::insert(&instance.account_id, info); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1790,7 +1806,7 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; + call_builder!(func, instance, code); let info = instance.info()?; info.write( &Key::::try_from_var(key).map_err(|_| "Key has wrong length")?, @@ -1800,9 +1816,10 @@ mod benchmarks { ) .map_err(|_| "Failed to write to storage during setup.")?; >::insert(&instance.account_id, info); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } Ok(()) } @@ -1842,14 +1859,18 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - instance.set_balance(value * (r + 1).into()); - let origin = RawOrigin::Signed(instance.caller.clone()); + let mut setup = CallSetup::::new(code); + setup.set_balance(value * (r + 1).into()); + call_builder!(func, setup: setup); + for account in &accounts { assert_eq!(T::Currency::total_balance(account), 0u32.into()); } - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + + #[block] + { + func.call(); + } for account in &accounts { assert_eq!(T::Currency::total_balance(account), value); @@ -1923,17 +1944,13 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call( - origin, - instance.addr, - 0u32.into(), - Weight::MAX, - Some(BalanceOf::::from(u32::MAX.into()).into()), - vec![], - ); + let mut setup = CallSetup::::new(code); + setup.set_storage_deposit_limit(BalanceOf::::from(u32::MAX.into())); + call_builder!(func, setup: setup); + #[block] + { + func.call(); + } Ok(()) } @@ -1984,11 +2001,11 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let callee = instance.addr.clone(); - let origin = RawOrigin::Signed(instance.caller); - #[extrinsic_call] - call(origin, callee, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2037,11 +2054,13 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - let bytes = vec![42; c as usize]; - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, bytes); + let mut setup = CallSetup::::new(code); + setup.set_data(vec![42; c as usize]); + call_builder!(func, setup: setup); + #[block] + { + func.call(); + } Ok(()) } @@ -2133,10 +2152,9 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - instance.set_balance((value + Pallet::::min_balance()) * (r + 1).into()); - let origin = RawOrigin::Signed(instance.caller.clone()); - let callee = instance.addr.clone(); + let mut setup = CallSetup::::new(code); + setup.set_balance((value + Pallet::::min_balance()) * (r + 1).into()); + call_builder!(func, instance, setup: setup); let addresses = hashes .iter() .map(|hash| Contracts::::contract_address(&instance.account_id, hash, &[], &[])) @@ -2147,8 +2165,10 @@ mod benchmarks { return Err("Expected that contract does not exist at this point.".into()); } } - #[extrinsic_call] - call(origin, callee, 0u32.into(), Weight::MAX, None, vec![]); + #[block] + { + func.call(); + } for addr in &addresses { ContractInfoOf::::get(&addr).ok_or("Contract should have been instantiated")?; } @@ -2217,106 +2237,94 @@ mod benchmarks { ])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - instance.set_balance(value + (Pallet::::min_balance() * 2u32.into())); - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + let mut setup = CallSetup::::new(code); + setup.set_balance(value + (Pallet::::min_balance() * 2u32.into())); + call_builder!(func, setup: setup); + #[block] + { + func.call(); + } Ok(()) } // Only the overhead of calling the function itself with minimal arguments. #[benchmark(pov_mode = Measured)] - fn seal_hash_sha2_256(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = Contract::::new(WasmModule::hasher("seal_hash_sha2_256", r, 0), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_sha2_256(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::hasher("seal_hash_sha2_256", r, 0)); + #[block] + { + func.call(); + } } // `n`: Input to hash in bytes #[benchmark(pov_mode = Measured)] - fn seal_hash_sha2_256_per_byte( - n: Linear<0, { code::max_pages::() * 64 * 1024 }>, - ) -> Result<(), BenchmarkError> { - let instance = Contract::::new(WasmModule::hasher("seal_hash_sha2_256", 1, n), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_sha2_256_per_byte(n: Linear<0, { code::max_pages::() * 64 * 1024 }>) { + call_builder!(func, WasmModule::hasher("seal_hash_sha2_256", 1, n)); + #[block] + { + func.call(); + } } // Only the overhead of calling the function itself with minimal arguments. #[benchmark(pov_mode = Measured)] - fn seal_hash_keccak_256(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::hasher("seal_hash_keccak_256", r, 0), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_keccak_256(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::hasher("seal_hash_keccak_256", r, 0)); + #[block] + { + func.call(); + } } // `n`: Input to hash in bytes #[benchmark(pov_mode = Measured)] - fn seal_hash_keccak_256_per_byte( - n: Linear<0, { code::max_pages::() * 64 * 1024 }>, - ) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::hasher("seal_hash_keccak_256", 1, n), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_keccak_256_per_byte(n: Linear<0, { code::max_pages::() * 64 * 1024 }>) { + call_builder!(func, WasmModule::hasher("seal_hash_keccak_256", 1, n)); + #[block] + { + func.call(); + } } // Only the overhead of calling the function itself with minimal arguments. #[benchmark(pov_mode = Measured)] - fn seal_hash_blake2_256(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::hasher("seal_hash_blake2_256", r, 0), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_blake2_256(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::hasher("seal_hash_blake2_256", r, 0)); + #[block] + { + func.call(); + } } // `n`: Input to hash in bytes #[benchmark(pov_mode = Measured)] - fn seal_hash_blake2_256_per_byte( - n: Linear<0, { code::max_pages::() * 64 * 1024 }>, - ) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::hasher("seal_hash_blake2_256", 1, n), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_blake2_256_per_byte(n: Linear<0, { code::max_pages::() * 64 * 1024 }>) { + call_builder!(func, WasmModule::hasher("seal_hash_blake2_256", 1, n)); + #[block] + { + func.call(); + } } // Only the overhead of calling the function itself with minimal arguments. #[benchmark(pov_mode = Measured)] - fn seal_hash_blake2_128(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::hasher("seal_hash_blake2_128", r, 0), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_blake2_128(r: Linear<0, API_BENCHMARK_RUNS>) { + call_builder!(func, WasmModule::hasher("seal_hash_blake2_128", r, 0)); + #[block] + { + func.call(); + } } // `n`: Input to hash in bytes #[benchmark(pov_mode = Measured)] - fn seal_hash_blake2_128_per_byte( - n: Linear<0, { code::max_pages::() * 64 * 1024 }>, - ) -> Result<(), BenchmarkError> { - let instance = - Contract::::new(WasmModule::hasher("seal_hash_blake2_128", 1, n), vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + fn seal_hash_blake2_128_per_byte(n: Linear<0, { code::max_pages::() * 64 * 1024 }>) { + call_builder!(func, WasmModule::hasher("seal_hash_blake2_128", 1, n)); + #[block] + { + func.call(); + } } // `n`: Message input length to verify in bytes. @@ -2359,10 +2367,11 @@ mod benchmarks { ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2415,10 +2424,11 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2464,10 +2474,11 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2503,10 +2514,11 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2543,10 +2555,11 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2584,10 +2597,11 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2641,10 +2655,11 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } @@ -2697,15 +2712,16 @@ mod benchmarks { )), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); + call_builder!(func, code); + #[block] + { + func.call(); + } Ok(()) } #[benchmark(pov_mode = Measured)] - fn seal_instantiation_nonce(r: Linear<0, API_BENCHMARK_RUNS>) -> Result<(), BenchmarkError> { + fn seal_instantiation_nonce(r: Linear<0, API_BENCHMARK_RUNS>) { let code = WasmModule::::from(ModuleDefinition { memory: Some(ImportedMemory::max::()), imported_functions: vec![ImportedFunction { @@ -2717,11 +2733,11 @@ mod benchmarks { call_body: Some(body::repeated(r, &[Instruction::Call(0), Instruction::Drop])), ..Default::default() }); - let instance = Contract::::new(code, vec![])?; - let origin = RawOrigin::Signed(instance.caller.clone()); - #[extrinsic_call] - call(origin, instance.addr, 0u32.into(), Weight::MAX, None, vec![]); - Ok(()) + call_builder!(func, code); + #[block] + { + func.call(); + } } // We load `i64` values from random linear memory locations and store the loaded diff --git a/substrate/frame/contracts/src/benchmarking/sandbox.rs b/substrate/frame/contracts/src/benchmarking/sandbox.rs index c3abbcad5f2b363bdda7ef2e7b5c38255220211e..308bf6873e49f9da09cbda151a0409cdcc2da08e 100644 --- a/substrate/frame/contracts/src/benchmarking/sandbox.rs +++ b/substrate/frame/contracts/src/benchmarking/sandbox.rs @@ -20,7 +20,8 @@ /// ! environment that provides the seal interface as imported functions. use super::{code::WasmModule, Config}; use crate::wasm::{ - AllowDeprecatedInterface, AllowUnstableInterface, Determinism, Environment, WasmBlob, + AllowDeprecatedInterface, AllowUnstableInterface, Determinism, Environment, LoadedModule, + LoadingMode, WasmBlob, }; use sp_core::Get; use wasmi::{errors::LinkerError, Func, Linker, StackLimits, Store}; @@ -42,12 +43,18 @@ impl From<&WasmModule> for Sandbox { /// Creates an instance from the supplied module. /// Sets the execution engine fuel level to `u64::MAX`. fn from(module: &WasmModule) -> Self { - let (mut store, _memory, instance) = WasmBlob::::instantiate::( + let contract = LoadedModule::new::( &module.code, + Determinism::Relaxed, + Some(StackLimits::default()), + LoadingMode::Checked, + ) + .expect("Failed to load Wasm module"); + + let (mut store, _memory, instance) = WasmBlob::::instantiate::( + contract, (), &::Schedule::get(), - Determinism::Relaxed, - StackLimits::default(), // We are testing with an empty environment anyways AllowDeprecatedInterface::No, ) diff --git a/substrate/frame/contracts/src/exec.rs b/substrate/frame/contracts/src/exec.rs index 41a0383811fdb09afe7655d0418039c714cff1a5..31cdadb4bb4373baee420b48cecfdd2b82862c42 100644 --- a/substrate/frame/contracts/src/exec.rs +++ b/substrate/frame/contracts/src/exec.rs @@ -733,6 +733,30 @@ where stack.run(executable, input_data).map(|ret| (account_id, ret)) } + #[cfg(feature = "runtime-benchmarks")] + pub fn bench_new_call( + dest: T::AccountId, + origin: Origin, + gas_meter: &'a mut GasMeter, + storage_meter: &'a mut storage::meter::Meter, + schedule: &'a Schedule, + value: BalanceOf, + debug_message: Option<&'a mut DebugBufferVec>, + determinism: Determinism, + ) -> (Self, E) { + Self::new( + FrameArgs::Call { dest, cached_info: None, delegated_call: None }, + origin, + gas_meter, + storage_meter, + schedule, + value, + debug_message, + determinism, + ) + .unwrap() + } + /// Create a new call stack. fn new( args: FrameArgs, diff --git a/substrate/frame/contracts/src/lib.rs b/substrate/frame/contracts/src/lib.rs index 9a1a0aada89463e790c18c6793997e7eb50e4a2f..73c70a7704e202845a6ce4edc361527b6c125fbe 100644 --- a/substrate/frame/contracts/src/lib.rs +++ b/substrate/frame/contracts/src/lib.rs @@ -244,7 +244,7 @@ pub mod pallet { use sp_runtime::Perbill; /// The in-code storage version. - pub(crate) const STORAGE_VERSION: StorageVersion = StorageVersion::new(15); + pub(crate) const STORAGE_VERSION: StorageVersion = StorageVersion::new(16); #[pallet::pallet] #[pallet::storage_version(STORAGE_VERSION)] diff --git a/substrate/frame/contracts/src/migration.rs b/substrate/frame/contracts/src/migration.rs index b0df45082856661a09d6d6e4acaf97f7d162f0a1..c633ba9c2d50d6bf31da965cd6cd4638d048fb6b 100644 --- a/substrate/frame/contracts/src/migration.rs +++ b/substrate/frame/contracts/src/migration.rs @@ -64,6 +64,7 @@ pub mod v12; pub mod v13; pub mod v14; pub mod v15; +pub mod v16; include!(concat!(env!("OUT_DIR"), "/migration_codegen.rs")); use crate::{weights::WeightInfo, Config, Error, MigrationInProgress, Pallet, Weight, LOG_TARGET}; diff --git a/substrate/frame/contracts/src/migration/v16.rs b/substrate/frame/contracts/src/migration/v16.rs new file mode 100644 index 0000000000000000000000000000000000000000..74fbc997718d6fb6e13193c5735ea3aa074dfd79 --- /dev/null +++ b/substrate/frame/contracts/src/migration/v16.rs @@ -0,0 +1,107 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Remove ED from storage base deposit. +//! See . + +use crate::{ + migration::{IsFinished, MigrationStep}, + weights::WeightInfo, + BalanceOf, CodeHash, Config, Pallet, TrieId, Weight, WeightMeter, LOG_TARGET, +}; +use codec::{Decode, Encode}; +use frame_support::{pallet_prelude::*, storage_alias, DefaultNoBound}; +use sp_runtime::{BoundedBTreeMap, Saturating}; +use sp_std::prelude::*; + +#[cfg(feature = "runtime-benchmarks")] +pub fn store_old_contract_info( + account: T::AccountId, + info: &crate::ContractInfo, +) -> BalanceOf { + let storage_base_deposit = Pallet::::min_balance() + 1u32.into(); + ContractInfoOf::::insert( + account, + ContractInfo { + trie_id: info.trie_id.clone(), + code_hash: info.code_hash, + storage_bytes: Default::default(), + storage_items: Default::default(), + storage_byte_deposit: Default::default(), + storage_item_deposit: Default::default(), + storage_base_deposit, + delegate_dependencies: Default::default(), + }, + ); + + storage_base_deposit +} + +#[storage_alias] +pub type ContractInfoOf = + StorageMap, Twox64Concat, ::AccountId, ContractInfo>; + +#[derive(Encode, Decode, CloneNoBound, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)] +#[scale_info(skip_type_params(T))] +pub struct ContractInfo { + trie_id: TrieId, + code_hash: CodeHash, + storage_bytes: u32, + storage_items: u32, + storage_byte_deposit: BalanceOf, + storage_item_deposit: BalanceOf, + pub storage_base_deposit: BalanceOf, + delegate_dependencies: BoundedBTreeMap, BalanceOf, T::MaxDelegateDependencies>, +} + +#[derive(Encode, Decode, MaxEncodedLen, DefaultNoBound)] +pub struct Migration { + last_account: Option, +} + +impl MigrationStep for Migration { + const VERSION: u16 = 16; + + fn max_step_weight() -> Weight { + T::WeightInfo::v16_migration_step() + } + + fn step(&mut self, meter: &mut WeightMeter) -> IsFinished { + let mut iter = if let Some(last_account) = self.last_account.take() { + ContractInfoOf::::iter_keys_from(ContractInfoOf::::hashed_key_for(last_account)) + } else { + ContractInfoOf::::iter_keys() + }; + + if let Some(key) = iter.next() { + log::debug!(target: LOG_TARGET, "Migrating contract {:?}", key); + ContractInfoOf::::mutate(key.clone(), |info| { + let ed = Pallet::::min_balance(); + let mut updated_info = info.take().expect("Item exists; qed"); + updated_info.storage_base_deposit.saturating_reduce(ed); + *info = Some(updated_info); + }); + self.last_account = Some(key); + meter.consume(T::WeightInfo::v16_migration_step()); + IsFinished::No + } else { + log::debug!(target: LOG_TARGET, "No more contracts to migrate"); + meter.consume(T::WeightInfo::v16_migration_step()); + IsFinished::Yes + } + } +} diff --git a/substrate/frame/contracts/src/storage.rs b/substrate/frame/contracts/src/storage.rs index fc6d514ebf4d6a27a89bd8aec1919fa14ed781c8..1e9739a1599eb8cc8137f2f0fabec8dd14d64b3a 100644 --- a/substrate/frame/contracts/src/storage.rs +++ b/substrate/frame/contracts/src/storage.rs @@ -23,7 +23,7 @@ use crate::{ exec::{AccountIdOf, Key}, weights::WeightInfo, BalanceOf, CodeHash, CodeInfo, Config, ContractInfoOf, DeletionQueue, DeletionQueueCounter, - Error, Pallet, TrieId, SENTINEL, + Error, TrieId, SENTINEL, }; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ @@ -125,9 +125,7 @@ impl ContractInfo { /// Same as [`Self::extra_deposit`] but including the base deposit. pub fn total_deposit(&self) -> BalanceOf { - self.extra_deposit() - .saturating_add(self.storage_base_deposit) - .saturating_sub(Pallet::::min_balance()) + self.extra_deposit().saturating_add(self.storage_base_deposit) } /// Returns the storage base deposit of the contract. @@ -213,7 +211,6 @@ impl ContractInfo { /// The base deposit is updated when the `code_hash` of the contract changes, as it depends on /// the deposit paid to upload the contract's code. pub fn update_base_deposit(&mut self, code_info: &CodeInfo) -> BalanceOf { - let ed = Pallet::::min_balance(); let info_deposit = Diff { bytes_added: self.encoded_size() as u32, items_added: 1, ..Default::default() } .update_contract::(None) @@ -224,11 +221,7 @@ impl ContractInfo { // to prevent abuse. let upload_deposit = T::CodeHashLockupDepositPercent::get().mul_ceil(code_info.deposit()); - // Instantiate needs to transfer at least the minimum balance in order to pull the - // contract's own account into existence, as the deposit itself does not contribute to the - // `ed`. - let deposit = info_deposit.saturating_add(upload_deposit).saturating_add(ed); - + let deposit = info_deposit.saturating_add(upload_deposit); self.storage_base_deposit = deposit; deposit } diff --git a/substrate/frame/contracts/src/storage/meter.rs b/substrate/frame/contracts/src/storage/meter.rs index 495cbd90db5a2424e3a5303d7fce9ded7750314e..5db9a772ad82155348383153de04ef31bdcfe4cf 100644 --- a/substrate/frame/contracts/src/storage/meter.rs +++ b/substrate/frame/contracts/src/storage/meter.rs @@ -435,22 +435,12 @@ where contract: &T::AccountId, contract_info: &mut ContractInfo, code_info: &CodeInfo, - ) -> Result, DispatchError> { + ) -> Result<(), DispatchError> { debug_assert!(matches!(self.contract_state(), ContractState::Alive)); - let ed = Pallet::::min_balance(); - - let deposit = contract_info.update_base_deposit(&code_info); - if deposit > self.limit { - return Err(>::StorageDepositLimitExhausted.into()) - } - - let deposit = Deposit::Charge(deposit); - - // We do not increase `own_contribution` because this will be charged later when the - // contract execution does conclude and hence would lead to a double charge. - self.total_deposit = Deposit::Charge(ed); // We need to make sure that the contract's account exists. + let ed = Pallet::::min_balance(); + self.total_deposit = Deposit::Charge(ed); T::Currency::transfer(origin, contract, ed, Preservation::Preserve)?; // A consumer is added at account creation and removed it on termination, otherwise the @@ -458,9 +448,11 @@ where // With the consumer, a correct runtime cannot remove the account. System::::inc_consumers(contract)?; - self.charge_deposit(contract.clone(), deposit.saturating_sub(&Deposit::Charge(ed))); + let deposit = contract_info.update_base_deposit(&code_info); + let deposit = Deposit::Charge(deposit); - Ok(deposit) + self.charge_deposit(contract.clone(), deposit); + Ok(()) } /// Call to tell the meter that the currently executing contract was terminated. @@ -859,14 +851,14 @@ mod tests { let test_cases = vec![ ChargingTestCase { origin: Origin::::from_account_id(ALICE), - deposit: Deposit::Refund(107), + deposit: Deposit::Refund(108), expected: TestExt { limit_checks: vec![LimitCheck { origin: ALICE, limit: 1_000, min_leftover: 0 }], charges: vec![ Charge { origin: ALICE, contract: CHARLIE, - amount: Deposit::Refund(119), + amount: Deposit::Refund(120), state: ContractState::Terminated { beneficiary: CHARLIE }, }, Charge { @@ -915,7 +907,6 @@ mod tests { meter.absorb(nested0, &BOB, None); assert_eq!(meter.try_into_deposit(&test_case.origin).unwrap(), test_case.deposit); - assert_eq!(TestExtTestValue::get(), test_case.expected) } } diff --git a/substrate/frame/contracts/src/tests.rs b/substrate/frame/contracts/src/tests.rs index d7ec710e768e1ab57978aac837437d25a1770397..0b83358a7f56a134a938076aab5f20b5915f0826 100644 --- a/substrate/frame/contracts/src/tests.rs +++ b/substrate/frame/contracts/src/tests.rs @@ -34,7 +34,7 @@ use crate::{ primitives::CodeUploadReturnValue, storage::DeletionQueueManager, tests::test_utils::{get_contract, get_contract_checked}, - wasm::{Determinism, ReturnErrorCode as RuntimeReturnCode}, + wasm::{Determinism, LoadingMode, ReturnErrorCode as RuntimeReturnCode}, weights::WeightInfo, Array, BalanceOf, Code, CodeHash, CodeInfoOf, CollectEvents, Config, ContractInfo, ContractInfoOf, DebugInfo, DefaultAddressGenerator, DeletionQueueCounter, Error, HoldReason, @@ -1102,6 +1102,20 @@ fn delegate_call() { }); } +#[test] +fn track_check_uncheck_module_call() { + let (wasm, code_hash) = compile_module::("dummy").unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 1_000_000); + Contracts::bare_upload_code(ALICE, wasm, None, Determinism::Enforced).unwrap(); + builder::bare_instantiate(Code::Existing(code_hash)).build_and_unwrap_result(); + }); + + // It should have recorded 1 `Checked` for the upload and 1 `Unchecked` for the instantiate. + let record = crate::wasm::tracker::LOADED_MODULE.with(|stack| stack.borrow().clone()); + assert_eq!(record, vec![LoadingMode::Checked, LoadingMode::Unchecked]); +} + #[test] fn transfer_expendable_cannot_kill_account() { let (wasm, _code_hash) = compile_module::("dummy").unwrap(); @@ -3803,7 +3817,7 @@ fn locking_delegate_dependency_works() { &HoldReason::StorageDepositReserve.into(), &addr_caller ), - dependency_deposit + contract.storage_base_deposit() - ED + dependency_deposit + contract.storage_base_deposit() ); // Removing the code should fail, since we have added a dependency. @@ -3842,7 +3856,7 @@ fn locking_delegate_dependency_works() { &HoldReason::StorageDepositReserve.into(), &addr_caller ), - contract.storage_base_deposit() - ED + contract.storage_base_deposit() ); // Removing a nonexistent dependency should fail. @@ -3874,7 +3888,7 @@ fn locking_delegate_dependency_works() { assert_ok!(call(&addr_caller, &terminate_input).result); assert_eq!( test_utils::get_balance(&ALICE), - balance_before + contract.storage_base_deposit() + dependency_deposit + ED + balance_before + contract.storage_base_deposit() + dependency_deposit ); // Terminate should also remove the dependency, so we can remove the code. @@ -3890,13 +3904,9 @@ fn native_dependency_deposit_works() { // Set hash lock up deposit to 30%, to test deposit calculation. CODE_HASH_LOCKUP_DEPOSIT_PERCENT.with(|c| *c.borrow_mut() = Perbill::from_percent(30)); - // Set a low existential deposit so that the base storage deposit is based on the contract - // storage deposit rather than the existential deposit. - const ED: u64 = 10; - // Test with both existing and uploaded code for code in [Code::Upload(wasm.clone()), Code::Existing(code_hash)] { - ExtBuilder::default().existential_deposit(ED).build().execute_with(|| { + ExtBuilder::default().build().execute_with(|| { let _ = Balances::set_balance(&ALICE, 1_000_000); let lockup_deposit_percent = CodeHashLockupDepositPercent::get(); @@ -3928,16 +3938,16 @@ fn native_dependency_deposit_works() { let res = builder::bare_instantiate(code).build(); let addr = res.result.unwrap().account_id; - let base_deposit = ED + test_utils::contract_info_storage_deposit(&addr); + let base_deposit = test_utils::contract_info_storage_deposit(&addr); let upload_deposit = test_utils::get_code_deposit(&code_hash); let extra_deposit = add_upload_deposit.then(|| upload_deposit).unwrap_or_default(); // Check initial storage_deposit - // The base deposit should be: ED + contract_info_storage_deposit + 30% * deposit + // The base deposit should be: contract_info_storage_deposit + 30% * deposit let deposit = extra_deposit + base_deposit + lockup_deposit_percent.mul_ceil(upload_deposit); - assert_eq!(res.storage_deposit.charge_or_zero(), deposit); + assert_eq!(res.storage_deposit.charge_or_zero(), deposit + Contracts::min_balance()); // call set_code_hash builder::bare_call(addr.clone()) @@ -3948,9 +3958,10 @@ fn native_dependency_deposit_works() { let code_deposit = test_utils::get_code_deposit(&dummy_code_hash); let deposit = base_deposit + lockup_deposit_percent.mul_ceil(code_deposit); assert_eq!(test_utils::get_contract(&addr).storage_base_deposit(), deposit); + assert_eq!( test_utils::get_balance_on_hold(&HoldReason::StorageDepositReserve.into(), &addr), - deposit - ED + deposit ); }); } diff --git a/substrate/frame/contracts/src/wasm/mod.rs b/substrate/frame/contracts/src/wasm/mod.rs index cae0b7c40206edca051473516aec2b47359d5615..8d7f928dba33d3cb3f221820d2b825e32997db75 100644 --- a/substrate/frame/contracts/src/wasm/mod.rs +++ b/substrate/frame/contracts/src/wasm/mod.rs @@ -21,26 +21,26 @@ mod prepare; mod runtime; -#[cfg(test)] -pub use runtime::STABLE_API_COUNT; - #[cfg(doc)] pub use crate::wasm::runtime::api_doc; -pub use crate::wasm::runtime::{ - AllowDeprecatedInterface, AllowUnstableInterface, Environment, Runtime, RuntimeCosts, -}; - #[cfg(test)] -pub use tests::MockExt; +pub use { + crate::wasm::{prepare::tracker, runtime::ReturnErrorCode}, + runtime::STABLE_API_COUNT, + tests::MockExt, +}; -#[cfg(test)] -pub use crate::wasm::runtime::ReturnErrorCode; +pub use crate::wasm::{ + prepare::{LoadedModule, LoadingMode}, + runtime::{ + AllowDeprecatedInterface, AllowUnstableInterface, Environment, Runtime, RuntimeCosts, + }, +}; use crate::{ exec::{ExecResult, Executable, ExportedFunction, Ext}, gas::{GasMeter, Token}, - wasm::prepare::LoadedModule, weights::WeightInfo, AccountIdOf, BadOrigin, BalanceOf, CodeHash, CodeInfoOf, CodeVec, Config, Error, Event, HoldReason, Pallet, PristineCode, Schedule, Weight, LOG_TARGET, @@ -201,17 +201,14 @@ impl WasmBlob { /// When validating we pass `()` as `host_state`. Please note that such a dummy instance must /// **never** be called/executed, since it will panic the executor. pub fn instantiate( - code: &[u8], + contract: LoadedModule, host_state: H, schedule: &Schedule, - determinism: Determinism, - stack_limits: StackLimits, allow_deprecated: AllowDeprecatedInterface, ) -> Result<(Store, Memory, InstancePre), &'static str> where E: Environment, { - let contract = LoadedModule::new::(&code, determinism, Some(stack_limits))?; let mut store = Store::new(&contract.engine, host_state); let mut linker = Linker::new(&contract.engine); E::define( @@ -338,33 +335,66 @@ impl CodeInfo { } } -impl Executable for WasmBlob { - fn from_storage( - code_hash: CodeHash, - gas_meter: &mut GasMeter, - ) -> Result { - let code_info = >::get(code_hash).ok_or(Error::::CodeNotFound)?; - gas_meter.charge(CodeLoadToken(code_info.code_len))?; - let code = >::get(code_hash).ok_or(Error::::CodeNotFound)?; - Ok(Self { code, code_info, code_hash }) +use crate::{ExecError, ExecReturnValue}; +use wasmi::Func; +enum InstanceOrExecReturn<'a, E: Ext> { + Instance((Func, Store>)), + ExecReturn(ExecReturnValue), +} + +type PreExecResult<'a, E> = Result, ExecError>; + +impl WasmBlob { + /// Sync the frame's gas meter with the engine's one. + pub fn process_result>( + mut store: Store>, + result: Result<(), wasmi::Error>, + ) -> ExecResult { + let engine_consumed_total = store.fuel_consumed().expect("Fuel metering is enabled; qed"); + let gas_meter = store.data_mut().ext().gas_meter_mut(); + let _ = gas_meter.sync_from_executor(engine_consumed_total)?; + store.into_data().to_execution_result(result) } - fn execute>( + #[cfg(feature = "runtime-benchmarks")] + pub fn bench_prepare_call>( self, ext: &mut E, - function: &ExportedFunction, input_data: Vec, - ) -> ExecResult { + ) -> (Func, Store>) { + use InstanceOrExecReturn::*; + match Self::prepare_execute(self, Runtime::new(ext, input_data), &ExportedFunction::Call) + .expect("Benchmark should provide valid module") + { + Instance((func, store)) => (func, store), + ExecReturn(_) => panic!("Expected Instance"), + } + } + + fn prepare_execute<'a, E: Ext>( + self, + runtime: Runtime<'a, E>, + function: &'a ExportedFunction, + ) -> PreExecResult<'a, E> { let code = self.code.as_slice(); // Instantiate the Wasm module to the engine. - let runtime = Runtime::new(ext, input_data); let schedule = ::Schedule::get(); + + let contract = LoadedModule::new::( + &code, + self.code_info.determinism, + Some(StackLimits::default()), + LoadingMode::Unchecked, + ) + .map_err(|err| { + log::debug!(target: LOG_TARGET, "failed to create wasmi module: {err:?}"); + Error::::CodeRejected + })?; + let (mut store, memory, instance) = Self::instantiate::( - code, + contract, runtime, &schedule, - self.code_info.determinism, - StackLimits::default(), match function { ExportedFunction::Call => AllowDeprecatedInterface::Yes, ExportedFunction::Constructor => AllowDeprecatedInterface::No, @@ -390,15 +420,6 @@ impl Executable for WasmBlob { .add_fuel(fuel_limit) .expect("We've set up engine to fuel consuming mode; qed"); - // Sync this frame's gas meter with the engine's one. - let process_result = |mut store: Store>, result| { - let engine_consumed_total = - store.fuel_consumed().expect("Fuel metering is enabled; qed"); - let gas_meter = store.data_mut().ext().gas_meter_mut(); - let _ = gas_meter.sync_from_executor(engine_consumed_total)?; - store.into_data().to_execution_result(result) - }; - // Start function should already see the correct refcount in case it will be ever inspected. if let &ExportedFunction::Constructor = function { E::increment_refcount(self.code_hash)?; @@ -417,10 +438,37 @@ impl Executable for WasmBlob { Error::::CodeRejected })?; - let result = exported_func.call(&mut store, &[], &mut []); - process_result(store, result) + Ok(InstanceOrExecReturn::Instance((exported_func, store))) }, - Err(err) => process_result(store, Err(err)), + Err(err) => Self::process_result(store, Err(err)).map(InstanceOrExecReturn::ExecReturn), + } + } +} + +impl Executable for WasmBlob { + fn from_storage( + code_hash: CodeHash, + gas_meter: &mut GasMeter, + ) -> Result { + let code_info = >::get(code_hash).ok_or(Error::::CodeNotFound)?; + gas_meter.charge(CodeLoadToken(code_info.code_len))?; + let code = >::get(code_hash).ok_or(Error::::CodeNotFound)?; + Ok(Self { code, code_info, code_hash }) + } + + fn execute>( + self, + ext: &mut E, + function: &ExportedFunction, + input_data: Vec, + ) -> ExecResult { + use InstanceOrExecReturn::*; + match Self::prepare_execute(self, Runtime::new(ext, input_data), function)? { + Instance((func, mut store)) => { + let result = func.call(&mut store, &[], &mut []); + Self::process_result(store, result) + }, + ExecReturn(exec_return) => Ok(exec_return), } } @@ -1780,6 +1828,7 @@ mod tests { const CODE_GAS_LEFT: &str = r#" (module (import "seal1" "gas_left" (func $seal_gas_left (param i32 i32))) + (import "seal0" "clear_storage" (func $clear_storage (param i32))) (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) (import "env" "memory" (memory 1 1)) @@ -1796,6 +1845,9 @@ mod tests { ) (func (export "call") + ;; Burn some PoV, clear_storage consumes some PoV as in order to clear the storage we need to we need to read its size first. + (call $clear_storage (i32.const 0)) + ;; This stores the weight left to the buffer (call $seal_gas_left (i32.const 0) (i32.const 20)) @@ -1807,6 +1859,9 @@ mod tests { ) ) + ;; Burn some PoV, clear_storage consumes some PoV as in order to clear the storage we need to we need to read its size first. + (call $clear_storage (i32.const 0)) + ;; Return weight left and its encoded value len (call $seal_return (i32.const 0) (i32.const 0) (i32.load (i32.const 20))) diff --git a/substrate/frame/contracts/src/wasm/prepare.rs b/substrate/frame/contracts/src/wasm/prepare.rs index 5efea8c3a23b319ff86fa38089ef04e1dcdc6681..0d9a12d8ae837b88a2be0b34d84129564b442562 100644 --- a/substrate/frame/contracts/src/wasm/prepare.rs +++ b/substrate/frame/contracts/src/wasm/prepare.rs @@ -48,6 +48,20 @@ pub struct LoadedModule { pub engine: Engine, } +#[derive(PartialEq, Debug, Clone)] +pub enum LoadingMode { + Checked, + Unchecked, +} + +#[cfg(test)] +pub mod tracker { + use sp_std::cell::RefCell; + thread_local! { + pub static LOADED_MODULE: RefCell> = RefCell::new(Vec::new()); + } +} + impl LoadedModule { /// Creates a new instance of `LoadedModule`. /// @@ -57,6 +71,7 @@ impl LoadedModule { code: &[u8], determinism: Determinism, stack_limits: Option, + _mode: LoadingMode, ) -> Result { // NOTE: wasmi does not support unstable WebAssembly features. The module is implicitly // checked for not having those ones when creating `wasmi::Module` below. @@ -79,11 +94,16 @@ impl LoadedModule { } let engine = Engine::new(&config); + + // TODO use Module::new_unchecked when validate_module is true once we are on wasmi@0.32 let module = Module::new(&engine, code).map_err(|err| { log::debug!(target: LOG_TARGET, "Module creation failed: {:?}", err); "Can't load the module into wasmi!" })?; + #[cfg(test)] + tracker::LOADED_MODULE.with(|t| t.borrow_mut().push(_mode)); + // Return a `LoadedModule` instance with // __valid__ module. Ok(LoadedModule { module, engine }) @@ -229,24 +249,38 @@ where E: Environment<()>, T: Config, { - (|| { + let module = (|| { + // We don't actually ever execute this instance so we can get away with a minimal stack + // which reduces the amount of memory that needs to be zeroed. + let stack_limits = Some(StackLimits::new(1, 1, 0).expect("initial <= max; qed")); + // We check that the module is generally valid, // and does not have restricted WebAssembly features, here. let contract_module = match *determinism { Determinism::Relaxed => - if let Ok(module) = LoadedModule::new::(code, Determinism::Enforced, None) { + if let Ok(module) = LoadedModule::new::( + code, + Determinism::Enforced, + stack_limits, + LoadingMode::Checked, + ) { *determinism = Determinism::Enforced; module } else { - LoadedModule::new::(code, Determinism::Relaxed, None)? + LoadedModule::new::(code, Determinism::Relaxed, None, LoadingMode::Checked)? }, - Determinism::Enforced => LoadedModule::new::(code, Determinism::Enforced, None)?, + Determinism::Enforced => LoadedModule::new::( + code, + Determinism::Enforced, + stack_limits, + LoadingMode::Checked, + )?, }; // The we check that module satisfies constraints the pallet puts on contracts. contract_module.scan_exports()?; contract_module.scan_imports::(schedule)?; - Ok(()) + Ok(contract_module) })() .map_err(|msg: &str| { log::debug!(target: LOG_TARGET, "New code rejected on validation: {}", msg); @@ -257,22 +291,11 @@ where // // - It doesn't use any unknown imports. // - It doesn't explode the wasmi bytecode generation. - // - // We don't actually ever execute this instance so we can get away with a minimal stack which - // reduces the amount of memory that needs to be zeroed. - let stack_limits = StackLimits::new(1, 1, 0).expect("initial <= max; qed"); - WasmBlob::::instantiate::( - &code, - (), - schedule, - *determinism, - stack_limits, - AllowDeprecatedInterface::No, - ) - .map_err(|err| { - log::debug!(target: LOG_TARGET, "{}", err); - (Error::::CodeRejected.into(), "New code rejected on wasmi instantiation!") - })?; + WasmBlob::::instantiate::(module, (), schedule, AllowDeprecatedInterface::No) + .map_err(|err| { + log::debug!(target: LOG_TARGET, "{err}"); + (Error::::CodeRejected.into(), "New code rejected on wasmi instantiation!") + })?; Ok(()) } @@ -325,7 +348,8 @@ pub mod benchmarking { owner: AccountIdOf, ) -> Result, DispatchError> { let determinism = Determinism::Enforced; - let contract_module = LoadedModule::new::(&code, determinism, None)?; + let contract_module = + LoadedModule::new::(&code, determinism, None, LoadingMode::Checked)?; let _ = contract_module.scan_imports::(schedule)?; let code: CodeVec = code.try_into().map_err(|_| >::CodeTooLarge)?; let code_info = CodeInfo { diff --git a/substrate/frame/contracts/src/weights.rs b/substrate/frame/contracts/src/weights.rs index aa75ca8b29e36bcdf0d6f4bc17678e7d63b16176..ca7f58cf5b0cada995a268cc241b36a0599cb709 100644 --- a/substrate/frame/contracts/src/weights.rs +++ b/substrate/frame/contracts/src/weights.rs @@ -18,9 +18,9 @@ //! Autogenerated weights for `pallet_contracts` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-03-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-04-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: @@ -58,6 +58,7 @@ pub trait WeightInfo { fn v13_migration_step() -> Weight; fn v14_migration_step() -> Weight; fn v15_migration_step() -> Weight; + fn v16_migration_step() -> Weight; fn migration_noop() -> Weight; fn migrate() -> Weight; fn on_runtime_upgrade_noop() -> Weight; @@ -142,8 +143,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 2_130_000 picoseconds. - Weight::from_parts(2_247_000, 1627) + // Minimum execution time: 2_047_000 picoseconds. + Weight::from_parts(2_116_000, 1627) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -153,10 +154,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `452 + k * (69 ±0)` // Estimated: `442 + k * (70 ±0)` - // Minimum execution time: 12_748_000 picoseconds. - Weight::from_parts(13_001_000, 442) - // Standard Error: 1_206 - .saturating_add(Weight::from_parts(1_146_159, 0).saturating_mul(k.into())) + // Minimum execution time: 12_474_000 picoseconds. + Weight::from_parts(12_767_000, 442) + // Standard Error: 1_081 + .saturating_add(Weight::from_parts(1_187_278, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -170,10 +171,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `211 + c * (1 ±0)` // Estimated: `6149 + c * (1 ±0)` - // Minimum execution time: 8_636_000 picoseconds. - Weight::from_parts(8_664_917, 6149) + // Minimum execution time: 8_307_000 picoseconds. + Weight::from_parts(8_939_322, 6149) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_188, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_190, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -186,8 +187,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `6450` - // Minimum execution time: 16_838_000 picoseconds. - Weight::from_parts(17_400_000, 6450) + // Minimum execution time: 16_915_000 picoseconds. + Weight::from_parts(17_638_000, 6450) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -200,10 +201,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `171 + k * (1 ±0)` // Estimated: `3635 + k * (1 ±0)` - // Minimum execution time: 3_876_000 picoseconds. - Weight::from_parts(2_654_935, 3635) - // Standard Error: 2_001 - .saturating_add(Weight::from_parts(1_258_085, 0).saturating_mul(k.into())) + // Minimum execution time: 3_607_000 picoseconds. + Weight::from_parts(1_979_323, 3635) + // Standard Error: 1_018 + .saturating_add(Weight::from_parts(1_196_162, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -224,10 +225,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `328 + c * (1 ±0)` // Estimated: `6266 + c * (1 ±0)` - // Minimum execution time: 21_038_000 picoseconds. - Weight::from_parts(20_890_548, 6266) + // Minimum execution time: 21_056_000 picoseconds. + Weight::from_parts(21_633_895, 6266) // Standard Error: 1 - .saturating_add(Weight::from_parts(435, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(390, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -238,8 +239,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `440` // Estimated: `6380` - // Minimum execution time: 12_579_000 picoseconds. - Weight::from_parts(13_486_000, 6380) + // Minimum execution time: 12_860_000 picoseconds. + Weight::from_parts(13_525_000, 6380) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -253,8 +254,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `352` // Estimated: `6292` - // Minimum execution time: 47_123_000 picoseconds. - Weight::from_parts(48_284_000, 6292) + // Minimum execution time: 46_926_000 picoseconds. + Weight::from_parts(47_828_000, 6292) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -266,19 +267,30 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `594` // Estimated: `6534` - // Minimum execution time: 55_237_000 picoseconds. - Weight::from_parts(57_996_000, 6534) + // Minimum execution time: 55_081_000 picoseconds. + Weight::from_parts(56_899_000, 6534) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } + /// Storage: `Contracts::ContractInfoOf` (r:2 w:1) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) + fn v16_migration_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `409` + // Estimated: `6349` + // Minimum execution time: 12_595_000 picoseconds. + Weight::from_parts(13_059_000, 6349) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } /// Storage: `Contracts::MigrationInProgress` (r:1 w:1) /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) fn migration_noop() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 2_766_000 picoseconds. - Weight::from_parts(2_807_000, 1627) + // Minimum execution time: 2_480_000 picoseconds. + Weight::from_parts(2_663_000, 1627) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -290,8 +302,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `166` // Estimated: `3631` - // Minimum execution time: 12_243_000 picoseconds. - Weight::from_parts(12_890_000, 3631) + // Minimum execution time: 12_115_000 picoseconds. + Weight::from_parts(12_506_000, 3631) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -301,8 +313,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 4_951_000 picoseconds. - Weight::from_parts(5_232_000, 3607) + // Minimum execution time: 4_757_000 picoseconds. + Weight::from_parts(5_082_000, 3607) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -313,8 +325,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `167` // Estimated: `3632` - // Minimum execution time: 6_530_000 picoseconds. - Weight::from_parts(6_726_000, 3632) + // Minimum execution time: 6_017_000 picoseconds. + Weight::from_parts(6_421_000, 3632) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -325,8 +337,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 6_227_000 picoseconds. - Weight::from_parts(6_708_000, 3607) + // Minimum execution time: 6_238_000 picoseconds. + Weight::from_parts(6_587_000, 3607) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -351,10 +363,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `804 + c * (1 ±0)` // Estimated: `9217 + c * (1 ±0)` - // Minimum execution time: 309_889_000 picoseconds. - Weight::from_parts(277_084_159, 9217) - // Standard Error: 71 - .saturating_add(Weight::from_parts(33_471, 0).saturating_mul(c.into())) + // Minimum execution time: 288_968_000 picoseconds. + Weight::from_parts(267_291_922, 9217) + // Standard Error: 78 + .saturating_add(Weight::from_parts(34_879, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -386,14 +398,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `326` // Estimated: `8740` - // Minimum execution time: 3_909_680_000 picoseconds. - Weight::from_parts(446_471_160, 8740) - // Standard Error: 159 - .saturating_add(Weight::from_parts(101_085, 0).saturating_mul(c.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(1_598, 0).saturating_mul(i.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(1_879, 0).saturating_mul(s.into())) + // Minimum execution time: 3_948_426_000 picoseconds. + Weight::from_parts(440_017_623, 8740) + // Standard Error: 555 + .saturating_add(Weight::from_parts(71_483, 0).saturating_mul(c.into())) + // Standard Error: 66 + .saturating_add(Weight::from_parts(1_831, 0).saturating_mul(i.into())) + // Standard Error: 66 + .saturating_add(Weight::from_parts(1_694, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } @@ -423,12 +435,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `563` // Estimated: `8982` - // Minimum execution time: 1_968_545_000 picoseconds. - Weight::from_parts(420_048_028, 8982) - // Standard Error: 20 - .saturating_add(Weight::from_parts(1_685, 0).saturating_mul(i.into())) - // Standard Error: 20 - .saturating_add(Weight::from_parts(1_645, 0).saturating_mul(s.into())) + // Minimum execution time: 2_011_037_000 picoseconds. + Weight::from_parts(2_047_025_000, 8982) + // Standard Error: 28 + .saturating_add(Weight::from_parts(968, 0).saturating_mul(i.into())) + // Standard Error: 28 + .saturating_add(Weight::from_parts(780, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -452,8 +464,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `829` // Estimated: `9244` - // Minimum execution time: 207_564_000 picoseconds. - Weight::from_parts(216_983_000, 9244) + // Minimum execution time: 202_190_000 picoseconds. + Weight::from_parts(209_378_000, 9244) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -474,10 +486,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `145` // Estimated: `6085` - // Minimum execution time: 273_555_000 picoseconds. - Weight::from_parts(257_517_935, 6085) - // Standard Error: 148 - .saturating_add(Weight::from_parts(64_488, 0).saturating_mul(c.into())) + // Minimum execution time: 271_161_000 picoseconds. + Weight::from_parts(279_218_977, 6085) + // Standard Error: 80 + .saturating_add(Weight::from_parts(33_973, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -498,10 +510,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `145` // Estimated: `6085` - // Minimum execution time: 289_672_000 picoseconds. - Weight::from_parts(297_020_278, 6085) - // Standard Error: 86 - .saturating_add(Weight::from_parts(64_340, 0).saturating_mul(c.into())) + // Minimum execution time: 273_684_000 picoseconds. + Weight::from_parts(284_348_722, 6085) + // Standard Error: 79 + .saturating_add(Weight::from_parts(34_205, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -519,8 +531,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `3780` - // Minimum execution time: 45_930_000 picoseconds. - Weight::from_parts(47_288_000, 3780) + // Minimum execution time: 45_150_000 picoseconds. + Weight::from_parts(46_780_000, 3780) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -536,300 +548,174 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `552` // Estimated: `8967` - // Minimum execution time: 35_421_000 picoseconds. - Weight::from_parts(36_909_000, 8967) + // Minimum execution time: 34_738_000 picoseconds. + Weight::from_parts(35_918_000, 8967) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_caller(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `869 + r * (6 ±0)` - // Estimated: `9284 + r * (6 ±0)` - // Minimum execution time: 275_531_000 picoseconds. - Weight::from_parts(292_269_656, 9284) - // Standard Error: 672 - .saturating_add(Weight::from_parts(339_728, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_094_000 picoseconds. + Weight::from_parts(10_253_702, 0) + // Standard Error: 223 + .saturating_add(Weight::from_parts(250_757, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1601 w:1) + /// Storage: `Contracts::ContractInfoOf` (r:1600 w:0) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_is_contract(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `925 + r * (209 ±0)` - // Estimated: `9304 + r * (2684 ±0)` - // Minimum execution time: 275_829_000 picoseconds. - Weight::from_parts(124_543_289, 9304) - // Standard Error: 6_085 - .saturating_add(Weight::from_parts(3_702_964, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `509 + r * (77 ±0)` + // Estimated: `1467 + r * (2552 ±0)` + // Minimum execution time: 9_102_000 picoseconds. + Weight::from_parts(9_238_000, 1467) + // Standard Error: 6_076 + .saturating_add(Weight::from_parts(3_293_012, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 2684).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2552).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1601 w:1) + /// Storage: `Contracts::ContractInfoOf` (r:1600 w:0) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `924 + r * (213 ±0)` - // Estimated: `9308 + r * (2688 ±0)` - // Minimum execution time: 276_666_000 picoseconds. - Weight::from_parts(96_951_288, 9308) - // Standard Error: 8_876 - .saturating_add(Weight::from_parts(4_604_699, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `517 + r * (170 ±0)` + // Estimated: `1468 + r * (2645 ±0)` + // Minimum execution time: 9_255_000 picoseconds. + Weight::from_parts(9_406_000, 1468) + // Standard Error: 6_826 + .saturating_add(Weight::from_parts(4_205_039, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 2688).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2645).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_own_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `876 + r * (6 ±0)` - // Estimated: `9293 + r * (6 ±0)` - // Minimum execution time: 271_301_000 picoseconds. - Weight::from_parts(284_126_054, 9293) - // Standard Error: 886 - .saturating_add(Weight::from_parts(437_127, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_388_000 picoseconds. + Weight::from_parts(9_322_209, 0) + // Standard Error: 269 + .saturating_add(Weight::from_parts(358_189, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_caller_is_origin(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866 + r * (3 ±0)` - // Estimated: `9282 + r * (3 ±0)` - // Minimum execution time: 274_778_000 picoseconds. - Weight::from_parts(289_355_269, 9282) - // Standard Error: 382 - .saturating_add(Weight::from_parts(175_342, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_300_000 picoseconds. + Weight::from_parts(10_268_326, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(104_650, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `756 + r * (3 ±0)` - // Estimated: `9171 + r * (3 ±0)` - // Minimum execution time: 257_310_000 picoseconds. - Weight::from_parts(276_410_847, 9171) - // Standard Error: 733 - .saturating_add(Weight::from_parts(160_094, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(10_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_162_000 picoseconds. + Weight::from_parts(10_059_984, 0) + // Standard Error: 87 + .saturating_add(Weight::from_parts(87_627, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_address(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `870 + r * (6 ±0)` - // Estimated: `9285 + r * (6 ±0)` - // Minimum execution time: 278_305_000 picoseconds. - Weight::from_parts(282_372_935, 9285) - // Standard Error: 1_154 - .saturating_add(Weight::from_parts(343_382, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_193_000 picoseconds. + Weight::from_parts(10_160_715, 0) + // Standard Error: 152 + .saturating_add(Weight::from_parts(263_703, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_gas_left(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866 + r * (6 ±0)` - // Estimated: `9284 + r * (6 ±0)` - // Minimum execution time: 280_349_000 picoseconds. - Weight::from_parts(294_864_875, 9284) - // Standard Error: 1_010 - .saturating_add(Weight::from_parts(368_740, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_109_000 picoseconds. + Weight::from_parts(9_766_924, 0) + // Standard Error: 212 + .saturating_add(Weight::from_parts(291_694, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:2 w:0) + /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_balance(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1010 + r * (6 ±0)` - // Estimated: `9409 + r * (6 ±0)` - // Minimum execution time: 274_578_000 picoseconds. - Weight::from_parts(313_285_034, 9409) - // Standard Error: 2_800 - .saturating_add(Weight::from_parts(1_653_468, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `140` + // Estimated: `3599` + // Minimum execution time: 9_463_000 picoseconds. + Weight::from_parts(9_541_000, 3599) + // Standard Error: 3_075 + .saturating_add(Weight::from_parts(1_606_043, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_value_transferred(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `880 + r * (6 ±0)` - // Estimated: `9301 + r * (6 ±0)` - // Minimum execution time: 287_127_000 picoseconds. - Weight::from_parts(290_489_909, 9301) - // Standard Error: 864 - .saturating_add(Weight::from_parts(332_977, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_080_000 picoseconds. + Weight::from_parts(8_121_924, 0) + // Standard Error: 198 + .saturating_add(Weight::from_parts(247_527, 0).saturating_mul(r.into())) + } + /// The range of component `r` is `[0, 1600]`. + fn seal_minimum_balance(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_393_000 picoseconds. + Weight::from_parts(9_999_247, 0) + // Standard Error: 169 + .saturating_add(Weight::from_parts(244_563, 0).saturating_mul(r.into())) + } + /// The range of component `r` is `[0, 1600]`. + fn seal_block_number(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_236_000 picoseconds. + Weight::from_parts(9_561_435, 0) + // Standard Error: 195 + .saturating_add(Weight::from_parts(239_812, 0).saturating_mul(r.into())) + } + /// The range of component `r` is `[0, 1600]`. + fn seal_now(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_259_000 picoseconds. + Weight::from_parts(10_353_960, 0) + // Standard Error: 216 + .saturating_add(Weight::from_parts(243_754, 0).saturating_mul(r.into())) + } + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) + /// The range of component `r` is `[0, 1600]`. + fn seal_weight_to_fee(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `67` + // Estimated: `1552` + // Minimum execution time: 9_145_000 picoseconds. + Weight::from_parts(16_524_937, 1552) + // Standard Error: 438 + .saturating_add(Weight::from_parts(666_821, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// The range of component `r` is `[0, 1600]`. + fn seal_input(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_179_000 picoseconds. + Weight::from_parts(8_893_261, 0) + // Standard Error: 215 + .saturating_add(Weight::from_parts(175_586, 0).saturating_mul(r.into())) } /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) @@ -847,239 +733,55 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::EventTopics` (r:2 w:2) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `r` is `[0, 1600]`. - fn seal_minimum_balance(r: u32, ) -> Weight { + /// The range of component `n` is `[0, 1048576]`. + fn seal_input_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `878 + r * (6 ±0)` - // Estimated: `9294 + r * (6 ±0)` - // Minimum execution time: 273_291_000 picoseconds. - Weight::from_parts(293_650_716, 9294) - // Standard Error: 725 - .saturating_add(Weight::from_parts(323_281, 0).saturating_mul(r.into())) + // Measured: `872` + // Estimated: `9287` + // Minimum execution time: 259_315_000 picoseconds. + Weight::from_parts(137_461_362, 9287) + // Standard Error: 18 + .saturating_add(Weight::from_parts(1_388, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + } + /// The range of component `r` is `[0, 1]`. + fn seal_return(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_919_000 picoseconds. + Weight::from_parts(9_465_187, 0) + // Standard Error: 32_481 + .saturating_add(Weight::from_parts(992_912, 0).saturating_mul(r.into())) + } + /// The range of component `n` is `[0, 1048576]`. + fn seal_return_per_byte(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_244_000 picoseconds. + Weight::from_parts(10_654_989, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(315, 0).saturating_mul(n.into())) } /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) + /// Storage: `System::Account` (r:3 w:3) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) + /// Storage: `Parameters::Parameters` (r:1 w:0) /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) + /// Storage: `Contracts::CodeInfoOf` (r:33 w:33) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) /// Storage: `Contracts::PristineCode` (r:1 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `r` is `[0, 1600]`. - fn seal_block_number(r: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `875 + r * (6 ±0)` - // Estimated: `9297 + r * (6 ±0)` - // Minimum execution time: 282_061_000 picoseconds. - Weight::from_parts(291_729_751, 9297) - // Standard Error: 929 - .saturating_add(Weight::from_parts(324_683, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `r` is `[0, 1600]`. - fn seal_now(r: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `866 + r * (6 ±0)` - // Estimated: `9282 + r * (6 ±0)` - // Minimum execution time: 264_505_000 picoseconds. - Weight::from_parts(293_440_286, 9282) - // Standard Error: 704 - .saturating_add(Weight::from_parts(329_851, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) - /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `r` is `[0, 1600]`. - fn seal_weight_to_fee(r: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `940 + r * (14 ±0)` - // Estimated: `9350 + r * (14 ±0)` - // Minimum execution time: 277_208_000 picoseconds. - Weight::from_parts(304_294_691, 9350) - // Standard Error: 1_083 - .saturating_add(Weight::from_parts(824_245, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 14).saturating_mul(r.into())) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `r` is `[0, 1600]`. - fn seal_input(r: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `868 + r * (6 ±0)` - // Estimated: `9285 + r * (6 ±0)` - // Minimum execution time: 278_293_000 picoseconds. - Weight::from_parts(289_743_005, 9285) - // Standard Error: 672 - .saturating_add(Weight::from_parts(267_553, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `n` is `[0, 1048576]`. - fn seal_input_per_byte(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `872` - // Estimated: `9287` - // Minimum execution time: 279_495_000 picoseconds. - Weight::from_parts(232_736_994, 9287) - // Standard Error: 23 - .saturating_add(Weight::from_parts(1_008, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `r` is `[0, 1]`. - fn seal_return(r: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `856 + r * (45 ±0)` - // Estimated: `9271 + r * (45 ±0)` - // Minimum execution time: 257_920_000 picoseconds. - Weight::from_parts(282_276_265, 9271) - // Standard Error: 948_490 - .saturating_add(Weight::from_parts(2_408_134, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `n` is `[0, 1048576]`. - fn seal_return_per_byte(n: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `866` - // Estimated: `9288` - // Minimum execution time: 278_149_000 picoseconds. - Weight::from_parts(287_020_337, 9288) - // Standard Error: 0 - .saturating_add(Weight::from_parts(321, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:3 w:3) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:1 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:33 w:33) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `Contracts::DeletionQueueCounter` (r:1 w:1) - /// Proof: `Contracts::DeletionQueueCounter` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:4 w:4) + /// Storage: `Contracts::DeletionQueueCounter` (r:1 w:1) + /// Proof: `Contracts::DeletionQueueCounter` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `System::EventTopics` (r:4 w:4) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `Balances::Holds` (r:1 w:1) /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`) @@ -1090,211 +792,119 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4805 + r * (2121 ±0)` // Estimated: `13220 + r * (81321 ±0)` - // Minimum execution time: 307_763_000 picoseconds. - Weight::from_parts(323_648_618, 13220) - // Standard Error: 879_890 - .saturating_add(Weight::from_parts(249_045_481, 0).saturating_mul(r.into())) + // Minimum execution time: 303_028_000 picoseconds. + Weight::from_parts(323_032_397, 13220) + // Standard Error: 848_406 + .saturating_add(Weight::from_parts(242_988_002, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().reads((36_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((41_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 81321).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0) /// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_random(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `947 + r * (10 ±0)` - // Estimated: `9363 + r * (10 ±0)` - // Minimum execution time: 278_400_000 picoseconds. - Weight::from_parts(293_743_000, 9363) - // Standard Error: 1_686 - .saturating_add(Weight::from_parts(1_288_603, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 9_227_000 picoseconds. + Weight::from_parts(14_055_283, 1561) + // Standard Error: 758 + .saturating_add(Weight::from_parts(1_104_996, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_deposit_event(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866 + r * (10 ±0)` - // Estimated: `9283 + r * (10 ±0)` - // Minimum execution time: 272_110_000 picoseconds. - Weight::from_parts(295_620_726, 9283) - // Standard Error: 5_481 - .saturating_add(Weight::from_parts(2_031_955, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_483_000 picoseconds. + Weight::from_parts(20_453_059, 0) + // Standard Error: 3_271 + .saturating_add(Weight::from_parts(1_713_468, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:6 w:6) + /// Storage: `System::EventTopics` (r:4 w:4) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 16384]`. fn seal_deposit_event_per_topic_and_byte(t: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `883 + t * (32 ±0)` - // Estimated: `9303 + t * (2508 ±0)` - // Minimum execution time: 277_409_000 picoseconds. - Weight::from_parts(293_838_037, 9303) - // Standard Error: 87_977 - .saturating_add(Weight::from_parts(2_911_340, 0).saturating_mul(t.into())) - // Standard Error: 24 - .saturating_add(Weight::from_parts(531, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `0` + // Estimated: `990 + t * (2475 ±0)` + // Minimum execution time: 23_517_000 picoseconds. + Weight::from_parts(15_543_153, 990) + // Standard Error: 13_814 + .saturating_add(Weight::from_parts(2_357_255, 0).saturating_mul(t.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(573, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(t.into()))) - .saturating_add(Weight::from_parts(0, 2508).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 2475).saturating_mul(t.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_debug_message(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `865 + r * (7 ±0)` - // Estimated: `9285 + r * (7 ±0)` - // Minimum execution time: 172_634_000 picoseconds. - Weight::from_parts(183_322_840, 9285) - // Standard Error: 384 - .saturating_add(Weight::from_parts(226_007, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_448_000 picoseconds. + Weight::from_parts(9_845_841, 0) + // Standard Error: 58 + .saturating_add(Weight::from_parts(105_442, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `MaxEncodedLen`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1048576]`. fn seal_debug_message_per_byte(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `125816` - // Estimated: `131758` - // Minimum execution time: 425_713_000 picoseconds. - Weight::from_parts(394_260_924, 131758) - // Standard Error: 12 - .saturating_add(Weight::from_parts(1_032, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_869_000 picoseconds. + Weight::from_parts(11_024_000, 0) + // Standard Error: 8 + .saturating_add(Weight::from_parts(991, 0).saturating_mul(i.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 800]`. fn seal_set_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `927 + r * (292 ±0)` - // Estimated: `929 + r * (293 ±0)` - // Minimum execution time: 268_128_000 picoseconds. - Weight::from_parts(186_787_113, 929) - // Standard Error: 10_796 - .saturating_add(Weight::from_parts(6_454_780, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_119_000 picoseconds. + Weight::from_parts(9_270_000, 105) + // Standard Error: 8_960 + .saturating_add(Weight::from_parts(5_215_976, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 293).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_set_storage_per_new_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1450` - // Estimated: `1433` - // Minimum execution time: 286_565_000 picoseconds. - Weight::from_parts(349_504_932, 1433) - // Standard Error: 70 - .saturating_add(Weight::from_parts(530, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(15_u64)) - .saturating_add(T::DbWeight::get().writes(8_u64)) + // Measured: `245` + // Estimated: `245` + // Minimum execution time: 17_833_000 picoseconds. + Weight::from_parts(18_940_114, 245) + // Standard Error: 2 + .saturating_add(Weight::from_parts(316, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_set_storage_per_old_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1256 + n * (1 ±0)` - // Estimated: `1256 + n * (1 ±0)` - // Minimum execution time: 282_478_000 picoseconds. - Weight::from_parts(303_448_260, 1256) - // Standard Error: 34 - .saturating_add(Weight::from_parts(712, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 18_428_000 picoseconds. + Weight::from_parts(19_372_726, 248) + // Standard Error: 2 + .saturating_add(Weight::from_parts(85, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1302,31 +912,29 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 800]`. fn seal_clear_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `924 + r * (288 ±0)` - // Estimated: `930 + r * (289 ±0)` - // Minimum execution time: 271_793_000 picoseconds. - Weight::from_parts(179_158_648, 930) - // Standard Error: 11_868 - .saturating_add(Weight::from_parts(6_397_986, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_335_000 picoseconds. + Weight::from_parts(9_459_000, 105) + // Standard Error: 9_156 + .saturating_add(Weight::from_parts(5_166_621, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 289).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_clear_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1252 + n * (1 ±0)` - // Estimated: `1252 + n * (1 ±0)` - // Minimum execution time: 273_945_000 picoseconds. - Weight::from_parts(299_855_996, 1252) - // Standard Error: 31 - .saturating_add(Weight::from_parts(309, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 18_308_000 picoseconds. + Weight::from_parts(19_421_433, 248) + // Standard Error: 2 + .saturating_add(Weight::from_parts(83, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1334,30 +942,27 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 800]`. fn seal_get_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `924 + r * (296 ±0)` - // Estimated: `926 + r * (297 ±0)` - // Minimum execution time: 275_285_000 picoseconds. - Weight::from_parts(207_735_572, 926) - // Standard Error: 9_736 - .saturating_add(Weight::from_parts(5_162_837, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_184_000 picoseconds. + Weight::from_parts(9_245_000, 105) + // Standard Error: 8_442 + .saturating_add(Weight::from_parts(4_543_991, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 297).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_get_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1268 + n * (1 ±0)` - // Estimated: `1268 + n * (1 ±0)` - // Minimum execution time: 278_929_000 picoseconds. - Weight::from_parts(302_251_674, 1268) - // Standard Error: 34 - .saturating_add(Weight::from_parts(583, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 17_194_000 picoseconds. + Weight::from_parts(19_032_094, 248) + // Standard Error: 3 + .saturating_add(Weight::from_parts(590, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1365,28 +970,27 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 800]`. fn seal_contains_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `935 + r * (288 ±0)` - // Estimated: `932 + r * (289 ±0)` - // Minimum execution time: 258_476_000 picoseconds. - Weight::from_parts(209_578_051, 932) - // Standard Error: 8_255 - .saturating_add(Weight::from_parts(4_942_572, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_380_000 picoseconds. + Weight::from_parts(9_501_000, 105) + // Standard Error: 7_029 + .saturating_add(Weight::from_parts(4_406_690, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 289).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_contains_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1255 + n * (1 ±0)` - // Estimated: `1255 + n * (1 ±0)` - // Minimum execution time: 273_089_000 picoseconds. - Weight::from_parts(302_452_604, 1255) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 16_400_000 picoseconds. + Weight::from_parts(17_993_941, 248) + // Standard Error: 2 + .saturating_add(Weight::from_parts(68, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1394,668 +998,356 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 800]`. fn seal_take_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `917 + r * (296 ±0)` - // Estimated: `922 + r * (297 ±0)` - // Minimum execution time: 274_301_000 picoseconds. - Weight::from_parts(172_245_469, 922) - // Standard Error: 11_306 - .saturating_add(Weight::from_parts(6_526_825, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_109_000 picoseconds. + Weight::from_parts(9_265_000, 105) + // Standard Error: 8_733 + .saturating_add(Weight::from_parts(5_218_811, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 297).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_take_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1269 + n * (1 ±0)` - // Estimated: `1269 + n * (1 ±0)` - // Minimum execution time: 280_399_000 picoseconds. - Weight::from_parts(305_970_974, 1269) - // Standard Error: 36 - .saturating_add(Weight::from_parts(568, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 18_423_000 picoseconds. + Weight::from_parts(20_025_132, 248) + // Standard Error: 3 + .saturating_add(Weight::from_parts(628, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1602 w:1601) + /// Storage: `System::Account` (r:1601 w:1601) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_transfer(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1418 + r * (45 ±0)` - // Estimated: `9785 + r * (2520 ±0)` - // Minimum execution time: 258_452_000 picoseconds. - Weight::from_parts(276_401_000, 9785) - // Standard Error: 65_648 - .saturating_add(Weight::from_parts(33_890_852, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) + // Measured: `770` + // Estimated: `4221 + r * (2475 ±0)` + // Minimum execution time: 9_043_000 picoseconds. + Weight::from_parts(9_176_000, 4221) + // Standard Error: 12_901 + .saturating_add(Weight::from_parts(32_297_438, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2520).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2475).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:801 w:801) + /// Storage: `Contracts::ContractInfoOf` (r:800 w:801) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:2 w:0) + /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:2 w:0) + /// Storage: `Contracts::PristineCode` (r:1 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:803 w:803) + /// Storage: `System::EventTopics` (r:801 w:801) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) /// The range of component `r` is `[0, 800]`. fn seal_call(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1263 + r * (245 ±0)` - // Estimated: `9635 + r * (2721 ±0)` - // Minimum execution time: 281_394_000 picoseconds. - Weight::from_parts(286_475_000, 9635) - // Standard Error: 156_302 - .saturating_add(Weight::from_parts(250_370_283, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(14_u64)) + // Measured: `520 + r * (170 ±0)` + // Estimated: `6463 + r * (2646 ±0)` + // Minimum execution time: 9_299_000 picoseconds. + Weight::from_parts(9_427_000, 6463) + // Standard Error: 101_949 + .saturating_add(Weight::from_parts(244_143_691, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2721).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2646).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:736 w:0) + /// Storage: `Contracts::CodeInfoOf` (r:735 w:0) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:736 w:0) + /// Storage: `Contracts::PristineCode` (r:735 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:737 w:737) + /// Storage: `System::EventTopics` (r:736 w:736) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `Contracts::ContractInfoOf` (r:0 w:1) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) /// The range of component `r` is `[0, 800]`. fn seal_delegate_call(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + r * (576 ±0)` - // Estimated: `9290 + r * (2637 ±10)` - // Minimum execution time: 278_193_000 picoseconds. - Weight::from_parts(280_814_000, 9290) - // Standard Error: 164_401 - .saturating_add(Weight::from_parts(251_272_834, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `0 + r * (527 ±0)` + // Estimated: `6447 + r * (2583 ±3)` + // Minimum execution time: 9_359_000 picoseconds. + Weight::from_parts(9_425_000, 6447) + // Standard Error: 193_938 + .saturating_add(Weight::from_parts(244_904_401, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2637).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2583).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:3 w:2) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:2 w:2) + /// Storage: `Contracts::ContractInfoOf` (r:1 w:2) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:2 w:0) + /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:2 w:0) + /// Storage: `Contracts::PristineCode` (r:1 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:4 w:4) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `System::EventTopics` (r:2 w:2) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) /// The range of component `t` is `[0, 1]`. /// The range of component `c` is `[0, 1048576]`. fn seal_call_per_transfer_clone_byte(t: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1310 + t * (277 ±0)` - // Estimated: `12200 + t * (5227 ±0)` - // Minimum execution time: 476_812_000 picoseconds. - Weight::from_parts(70_715_306, 12200) - // Standard Error: 12_232_109 - .saturating_add(Weight::from_parts(374_277_042, 0).saturating_mul(t.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_022, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(16_u64)) + // Measured: `699 + t * (277 ±0)` + // Estimated: `6639 + t * (3458 ±0)` + // Minimum execution time: 214_588_000 picoseconds. + Weight::from_parts(129_214_481, 6639) + // Standard Error: 2_468_090 + .saturating_add(Weight::from_parts(32_514_739, 0).saturating_mul(t.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(418, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into()))) - .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(t.into()))) - .saturating_add(Weight::from_parts(0, 5227).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 3458).saturating_mul(t.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:802 w:802) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:801 w:801) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:801 w:800) + /// Storage: `Contracts::CodeInfoOf` (r:800 w:800) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:801 w:0) + /// Storage: `Contracts::PristineCode` (r:800 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `Contracts::Nonce` (r:1 w:1) + /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:803 w:803) + /// Storage: `Contracts::ContractInfoOf` (r:800 w:801) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `System::Account` (r:802 w:802) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `System::EventTopics` (r:801 w:801) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Balances::Holds` (r:800 w:800) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`) /// The range of component `r` is `[1, 800]`. fn seal_instantiate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1281 + r * (255 ±0)` - // Estimated: `9623 + r * (2731 ±0)` - // Minimum execution time: 656_480_000 picoseconds. - Weight::from_parts(668_579_000, 9623) - // Standard Error: 365_458 - .saturating_add(Weight::from_parts(379_238_223, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(14_u64)) - .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(7_u64)) - .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2731).saturating_mul(r.into())) + // Measured: `1097 + r * (188 ±0)` + // Estimated: `6990 + r * (2664 ±0)` + // Minimum execution time: 352_925_000 picoseconds. + Weight::from_parts(355_487_000, 6990) + // Standard Error: 261_528 + .saturating_add(Weight::from_parts(337_897_187, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 2664).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:3 w:3) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:2 w:2) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:2 w:1) + /// Storage: `Contracts::CodeInfoOf` (r:1 w:1) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:2 w:0) + /// Storage: `Contracts::PristineCode` (r:1 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `Contracts::Nonce` (r:1 w:1) + /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:4 w:4) + /// Storage: `Contracts::ContractInfoOf` (r:1 w:2) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `System::EventTopics` (r:2 w:2) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`) /// The range of component `t` is `[0, 1]`. /// The range of component `i` is `[0, 983040]`. /// The range of component `s` is `[0, 983040]`. fn seal_instantiate_per_transfer_input_salt_byte(t: u32, i: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1306 + t * (104 ±0)` - // Estimated: `12214 + t * (2549 ±1)` - // Minimum execution time: 2_148_964_000 picoseconds. - Weight::from_parts(1_557_685_999, 12214) - // Standard Error: 36 - .saturating_add(Weight::from_parts(864, 0).saturating_mul(i.into())) - // Standard Error: 36 - .saturating_add(Weight::from_parts(1_092, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(19_u64)) + // Measured: `760 + t * (104 ±0)` + // Estimated: `6719 + t * (2549 ±1)` + // Minimum execution time: 1_870_832_000 picoseconds. + Weight::from_parts(949_110_245, 6719) + // Standard Error: 24 + .saturating_add(Weight::from_parts(1_084, 0).saturating_mul(i.into())) + // Standard Error: 24 + .saturating_add(Weight::from_parts(1_206, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) - .saturating_add(T::DbWeight::get().writes(11_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(t.into()))) .saturating_add(Weight::from_parts(0, 2549).saturating_mul(t.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_hash_sha2_256(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `865 + r * (8 ±0)` - // Estimated: `9279 + r * (8 ±0)` - // Minimum execution time: 279_377_000 picoseconds. - Weight::from_parts(287_951_287, 9279) - // Standard Error: 659 - .saturating_add(Weight::from_parts(376_476, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_142_000 picoseconds. + Weight::from_parts(9_787_220, 0) + // Standard Error: 236 + .saturating_add(Weight::from_parts(267_264, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_sha2_256_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `873` - // Estimated: `9286` - // Minimum execution time: 276_151_000 picoseconds. - Weight::from_parts(267_656_959, 9286) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_108, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_485_000 picoseconds. + Weight::from_parts(1_870_250, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_073, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_hash_keccak_256(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `867 + r * (8 ±0)` - // Estimated: `9284 + r * (8 ±0)` - // Minimum execution time: 275_247_000 picoseconds. - Weight::from_parts(286_675_317, 9284) - // Standard Error: 601 - .saturating_add(Weight::from_parts(788_160, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_005_000 picoseconds. + Weight::from_parts(8_943_937, 0) + // Standard Error: 1_385 + .saturating_add(Weight::from_parts(665_970, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `875` - // Estimated: `9292` - // Minimum execution time: 281_585_000 picoseconds. - Weight::from_parts(287_637_844, 9292) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_351, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_965_000 picoseconds. + Weight::from_parts(11_749_746, 0) + // Standard Error: 6 + .saturating_add(Weight::from_parts(3_330, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_hash_blake2_256(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `867 + r * (8 ±0)` - // Estimated: `9286 + r * (8 ±0)` - // Minimum execution time: 273_678_000 picoseconds. - Weight::from_parts(289_879_306, 9286) - // Standard Error: 607 - .saturating_add(Weight::from_parts(439_482, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_400_000 picoseconds. + Weight::from_parts(13_857_546, 0) + // Standard Error: 246 + .saturating_add(Weight::from_parts(326_483, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_256_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `875` - // Estimated: `9291` - // Minimum execution time: 275_126_000 picoseconds. - Weight::from_parts(276_684_594, 9291) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_202, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_064_000 picoseconds. + Weight::from_parts(1_885_873, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_196, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_hash_blake2_128(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `867 + r * (8 ±0)` - // Estimated: `9283 + r * (8 ±0)` - // Minimum execution time: 273_229_000 picoseconds. - Weight::from_parts(287_793_841, 9283) - // Standard Error: 451 - .saturating_add(Weight::from_parts(447_922, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_068_000 picoseconds. + Weight::from_parts(17_169_362, 0) + // Standard Error: 1_580 + .saturating_add(Weight::from_parts(330_195, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_128_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `875` - // Estimated: `9289` - // Minimum execution time: 277_843_000 picoseconds. - Weight::from_parts(279_900_099, 9289) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_204, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_169_000 picoseconds. + Weight::from_parts(2_159_277, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_200, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 125697]`. fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1000 + n * (1 ±0)` - // Estimated: `9412 + n * (1 ±0)` - // Minimum execution time: 331_840_000 picoseconds. - Weight::from_parts(338_767_191, 9412) - // Standard Error: 11 - .saturating_add(Weight::from_parts(5_971, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 53_863_000 picoseconds. + Weight::from_parts(54_902_157, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(4_588, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 160]`. fn seal_sr25519_verify(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `808 + r * (112 ±0)` - // Estimated: `9226 + r * (112 ±0)` - // Minimum execution time: 277_912_000 picoseconds. - Weight::from_parts(344_538_960, 9226) - // Standard Error: 13_422 - .saturating_add(Weight::from_parts(41_592_887, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_107_000 picoseconds. + Weight::from_parts(24_115_247, 0) + // Standard Error: 7_427 + .saturating_add(Weight::from_parts(41_116_827, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `910 + r * (76 ±0)` - // Estimated: `9279 + r * (77 ±0)` - // Minimum execution time: 280_383_000 picoseconds. - Weight::from_parts(348_542_377, 9279) - // Standard Error: 13_985 - .saturating_add(Weight::from_parts(45_983_827, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_404_000 picoseconds. + Weight::from_parts(31_763_334, 0) + // Standard Error: 9_833 + .saturating_add(Weight::from_parts(45_529_880, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_to_eth_address(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `880 + r * (42 ±0)` - // Estimated: `9294 + r * (42 ±0)` - // Minimum execution time: 277_764_000 picoseconds. - Weight::from_parts(320_288_180, 9294) - // Standard Error: 10_140 - .saturating_add(Weight::from_parts(12_046_137, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_409_000 picoseconds. + Weight::from_parts(15_072_835, 0) + // Standard Error: 4_591 + .saturating_add(Weight::from_parts(11_619_283, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) /// Storage: `Contracts::CodeInfoOf` (r:1536 w:1536) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1536 w:0) + /// Storage: `Contracts::PristineCode` (r:1535 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:1538 w:1538) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `System::EventTopics` (r:1537 w:1537) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + r * (965 ±0)` - // Estimated: `9285 + r * (3090 ±7)` - // Minimum execution time: 271_356_000 picoseconds. - Weight::from_parts(282_924_000, 9285) - // Standard Error: 60_493 - .saturating_add(Weight::from_parts(28_319_267, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `0 + r * (926 ±0)` + // Estimated: `8969 + r * (3047 ±10)` + // Minimum execution time: 9_269_000 picoseconds. + Weight::from_parts(9_372_000, 8969) + // Standard Error: 61_354 + .saturating_add(Weight::from_parts(26_280_409, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 3090).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 3047).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:33 w:32) + /// Storage: `Contracts::CodeInfoOf` (r:32 w:32) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 32]`. fn lock_delegate_dependency(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `937 + r * (131 ±0)` - // Estimated: `9346 + r * (2607 ±0)` - // Minimum execution time: 269_698_000 picoseconds. - Weight::from_parts(294_325_127, 9346) - // Standard Error: 22_352 - .saturating_add(Weight::from_parts(6_744_117, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `274 + r * (78 ±0)` + // Estimated: `1265 + r * (2553 ±0)` + // Minimum execution time: 9_103_000 picoseconds. + Weight::from_parts(14_404_626, 1265) + // Standard Error: 9_343 + .saturating_add(Weight::from_parts(5_154_949, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2607).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2553).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`) - /// Storage: `Contracts::CodeInfoOf` (r:33 w:32) + /// Storage: `Contracts::CodeInfoOf` (r:32 w:32) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `MaxEncodedLen`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 32]`. fn unlock_delegate_dependency(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `972 + r * (184 ±0)` - // Estimated: `129453 + r * (2568 ±0)` - // Minimum execution time: 261_226_000 picoseconds. - Weight::from_parts(294_299_527, 129453) - // Standard Error: 27_898 - .saturating_add(Weight::from_parts(6_031_601, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) + // Measured: `275 + r * (78 ±0)` + // Estimated: `990 + r * (2568 ±0)` + // Minimum execution time: 9_219_000 picoseconds. + Weight::from_parts(14_085_456, 990) + // Standard Error: 11_206 + .saturating_add(Weight::from_parts(4_422_122, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2568).saturating_mul(r.into())) } @@ -2080,83 +1372,46 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `861 + r * (3 ±0)` // Estimated: `9282 + r * (3 ±0)` - // Minimum execution time: 270_729_000 picoseconds. - Weight::from_parts(289_622_807, 9282) - // Standard Error: 394 - .saturating_add(Weight::from_parts(167_010, 0).saturating_mul(r.into())) + // Minimum execution time: 269_333_000 picoseconds. + Weight::from_parts(286_922_618, 9282) + // Standard Error: 443 + .saturating_add(Weight::from_parts(168_869, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_account_reentrance_count(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2112 + r * (39 ±0)` - // Estimated: `10377 + r * (40 ±0)` - // Minimum execution time: 272_228_000 picoseconds. - Weight::from_parts(351_059_276, 10377) - // Standard Error: 1_761 - .saturating_add(Weight::from_parts(312_269, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_328_000 picoseconds. + Weight::from_parts(14_019_583, 0) + // Standard Error: 171 + .saturating_add(Weight::from_parts(88_751, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `Contracts::Nonce` (r:1 w:1) + /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_instantiation_nonce(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `864 + r * (3 ±0)` - // Estimated: `9279 + r * (3 ±0)` - // Minimum execution time: 272_497_000 picoseconds. - Weight::from_parts(288_213_060, 9279) - // Standard Error: 469 - .saturating_add(Weight::from_parts(155_530, 0).saturating_mul(r.into())) - .saturating_add(T::DbWeight::get().reads(12_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) + // Measured: `219` + // Estimated: `1704` + // Minimum execution time: 9_267_000 picoseconds. + Weight::from_parts(15_304_284, 1704) + // Standard Error: 1_219 + .saturating_add(Weight::from_parts(74_696, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) } /// The range of component `r` is `[0, 5000]`. fn instr_i64_load_store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_990_000 picoseconds. - Weight::from_parts(1_778_221, 0) + // Minimum execution time: 911_000 picoseconds. + Weight::from_parts(449_666, 0) // Standard Error: 26 - .saturating_add(Weight::from_parts(14_888, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(14_797, 0).saturating_mul(r.into())) } } @@ -2168,8 +1423,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 2_130_000 picoseconds. - Weight::from_parts(2_247_000, 1627) + // Minimum execution time: 2_047_000 picoseconds. + Weight::from_parts(2_116_000, 1627) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2179,10 +1434,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `452 + k * (69 ±0)` // Estimated: `442 + k * (70 ±0)` - // Minimum execution time: 12_748_000 picoseconds. - Weight::from_parts(13_001_000, 442) - // Standard Error: 1_206 - .saturating_add(Weight::from_parts(1_146_159, 0).saturating_mul(k.into())) + // Minimum execution time: 12_474_000 picoseconds. + Weight::from_parts(12_767_000, 442) + // Standard Error: 1_081 + .saturating_add(Weight::from_parts(1_187_278, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -2196,10 +1451,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `211 + c * (1 ±0)` // Estimated: `6149 + c * (1 ±0)` - // Minimum execution time: 8_636_000 picoseconds. - Weight::from_parts(8_664_917, 6149) + // Minimum execution time: 8_307_000 picoseconds. + Weight::from_parts(8_939_322, 6149) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_188, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_190, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2212,8 +1467,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `510` // Estimated: `6450` - // Minimum execution time: 16_838_000 picoseconds. - Weight::from_parts(17_400_000, 6450) + // Minimum execution time: 16_915_000 picoseconds. + Weight::from_parts(17_638_000, 6450) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2226,10 +1481,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `171 + k * (1 ±0)` // Estimated: `3635 + k * (1 ±0)` - // Minimum execution time: 3_876_000 picoseconds. - Weight::from_parts(2_654_935, 3635) - // Standard Error: 2_001 - .saturating_add(Weight::from_parts(1_258_085, 0).saturating_mul(k.into())) + // Minimum execution time: 3_607_000 picoseconds. + Weight::from_parts(1_979_323, 3635) + // Standard Error: 1_018 + .saturating_add(Weight::from_parts(1_196_162, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -2250,10 +1505,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `328 + c * (1 ±0)` // Estimated: `6266 + c * (1 ±0)` - // Minimum execution time: 21_038_000 picoseconds. - Weight::from_parts(20_890_548, 6266) + // Minimum execution time: 21_056_000 picoseconds. + Weight::from_parts(21_633_895, 6266) // Standard Error: 1 - .saturating_add(Weight::from_parts(435, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(390, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2264,8 +1519,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `440` // Estimated: `6380` - // Minimum execution time: 12_579_000 picoseconds. - Weight::from_parts(13_486_000, 6380) + // Minimum execution time: 12_860_000 picoseconds. + Weight::from_parts(13_525_000, 6380) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2279,8 +1534,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `352` // Estimated: `6292` - // Minimum execution time: 47_123_000 picoseconds. - Weight::from_parts(48_284_000, 6292) + // Minimum execution time: 46_926_000 picoseconds. + Weight::from_parts(47_828_000, 6292) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2292,19 +1547,30 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `594` // Estimated: `6534` - // Minimum execution time: 55_237_000 picoseconds. - Weight::from_parts(57_996_000, 6534) + // Minimum execution time: 55_081_000 picoseconds. + Weight::from_parts(56_899_000, 6534) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } + /// Storage: `Contracts::ContractInfoOf` (r:2 w:1) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) + fn v16_migration_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `409` + // Estimated: `6349` + // Minimum execution time: 12_595_000 picoseconds. + Weight::from_parts(13_059_000, 6349) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } /// Storage: `Contracts::MigrationInProgress` (r:1 w:1) /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) fn migration_noop() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 2_766_000 picoseconds. - Weight::from_parts(2_807_000, 1627) + // Minimum execution time: 2_480_000 picoseconds. + Weight::from_parts(2_663_000, 1627) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2316,8 +1582,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `166` // Estimated: `3631` - // Minimum execution time: 12_243_000 picoseconds. - Weight::from_parts(12_890_000, 3631) + // Minimum execution time: 12_115_000 picoseconds. + Weight::from_parts(12_506_000, 3631) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -2327,8 +1593,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 4_951_000 picoseconds. - Weight::from_parts(5_232_000, 3607) + // Minimum execution time: 4_757_000 picoseconds. + Weight::from_parts(5_082_000, 3607) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -2339,8 +1605,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `167` // Estimated: `3632` - // Minimum execution time: 6_530_000 picoseconds. - Weight::from_parts(6_726_000, 3632) + // Minimum execution time: 6_017_000 picoseconds. + Weight::from_parts(6_421_000, 3632) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -2351,8 +1617,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 6_227_000 picoseconds. - Weight::from_parts(6_708_000, 3607) + // Minimum execution time: 6_238_000 picoseconds. + Weight::from_parts(6_587_000, 3607) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2377,10 +1643,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `804 + c * (1 ±0)` // Estimated: `9217 + c * (1 ±0)` - // Minimum execution time: 309_889_000 picoseconds. - Weight::from_parts(277_084_159, 9217) - // Standard Error: 71 - .saturating_add(Weight::from_parts(33_471, 0).saturating_mul(c.into())) + // Minimum execution time: 288_968_000 picoseconds. + Weight::from_parts(267_291_922, 9217) + // Standard Error: 78 + .saturating_add(Weight::from_parts(34_879, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -2412,14 +1678,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `326` // Estimated: `8740` - // Minimum execution time: 3_909_680_000 picoseconds. - Weight::from_parts(446_471_160, 8740) - // Standard Error: 159 - .saturating_add(Weight::from_parts(101_085, 0).saturating_mul(c.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(1_598, 0).saturating_mul(i.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(1_879, 0).saturating_mul(s.into())) + // Minimum execution time: 3_948_426_000 picoseconds. + Weight::from_parts(440_017_623, 8740) + // Standard Error: 555 + .saturating_add(Weight::from_parts(71_483, 0).saturating_mul(c.into())) + // Standard Error: 66 + .saturating_add(Weight::from_parts(1_831, 0).saturating_mul(i.into())) + // Standard Error: 66 + .saturating_add(Weight::from_parts(1_694, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(14_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } @@ -2449,12 +1715,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `563` // Estimated: `8982` - // Minimum execution time: 1_968_545_000 picoseconds. - Weight::from_parts(420_048_028, 8982) - // Standard Error: 20 - .saturating_add(Weight::from_parts(1_685, 0).saturating_mul(i.into())) - // Standard Error: 20 - .saturating_add(Weight::from_parts(1_645, 0).saturating_mul(s.into())) + // Minimum execution time: 2_011_037_000 picoseconds. + Weight::from_parts(2_047_025_000, 8982) + // Standard Error: 28 + .saturating_add(Weight::from_parts(968, 0).saturating_mul(i.into())) + // Standard Error: 28 + .saturating_add(Weight::from_parts(780, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -2478,8 +1744,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `829` // Estimated: `9244` - // Minimum execution time: 207_564_000 picoseconds. - Weight::from_parts(216_983_000, 9244) + // Minimum execution time: 202_190_000 picoseconds. + Weight::from_parts(209_378_000, 9244) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2500,10 +1766,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `145` // Estimated: `6085` - // Minimum execution time: 273_555_000 picoseconds. - Weight::from_parts(257_517_935, 6085) - // Standard Error: 148 - .saturating_add(Weight::from_parts(64_488, 0).saturating_mul(c.into())) + // Minimum execution time: 271_161_000 picoseconds. + Weight::from_parts(279_218_977, 6085) + // Standard Error: 80 + .saturating_add(Weight::from_parts(33_973, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2524,10 +1790,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `145` // Estimated: `6085` - // Minimum execution time: 289_672_000 picoseconds. - Weight::from_parts(297_020_278, 6085) - // Standard Error: 86 - .saturating_add(Weight::from_parts(64_340, 0).saturating_mul(c.into())) + // Minimum execution time: 273_684_000 picoseconds. + Weight::from_parts(284_348_722, 6085) + // Standard Error: 79 + .saturating_add(Weight::from_parts(34_205, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2545,8 +1811,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `315` // Estimated: `3780` - // Minimum execution time: 45_930_000 picoseconds. - Weight::from_parts(47_288_000, 3780) + // Minimum execution time: 45_150_000 picoseconds. + Weight::from_parts(46_780_000, 3780) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2562,447 +1828,174 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `552` // Estimated: `8967` - // Minimum execution time: 35_421_000 picoseconds. - Weight::from_parts(36_909_000, 8967) + // Minimum execution time: 34_738_000 picoseconds. + Weight::from_parts(35_918_000, 8967) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_caller(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `869 + r * (6 ±0)` - // Estimated: `9284 + r * (6 ±0)` - // Minimum execution time: 275_531_000 picoseconds. - Weight::from_parts(292_269_656, 9284) - // Standard Error: 672 - .saturating_add(Weight::from_parts(339_728, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_094_000 picoseconds. + Weight::from_parts(10_253_702, 0) + // Standard Error: 223 + .saturating_add(Weight::from_parts(250_757, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1601 w:1) + /// Storage: `Contracts::ContractInfoOf` (r:1600 w:0) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_is_contract(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `925 + r * (209 ±0)` - // Estimated: `9304 + r * (2684 ±0)` - // Minimum execution time: 275_829_000 picoseconds. - Weight::from_parts(124_543_289, 9304) - // Standard Error: 6_085 - .saturating_add(Weight::from_parts(3_702_964, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `509 + r * (77 ±0)` + // Estimated: `1467 + r * (2552 ±0)` + // Minimum execution time: 9_102_000 picoseconds. + Weight::from_parts(9_238_000, 1467) + // Standard Error: 6_076 + .saturating_add(Weight::from_parts(3_293_012, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 2684).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2552).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1601 w:1) + /// Storage: `Contracts::ContractInfoOf` (r:1600 w:0) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `924 + r * (213 ±0)` - // Estimated: `9308 + r * (2688 ±0)` - // Minimum execution time: 276_666_000 picoseconds. - Weight::from_parts(96_951_288, 9308) - // Standard Error: 8_876 - .saturating_add(Weight::from_parts(4_604_699, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `517 + r * (170 ±0)` + // Estimated: `1468 + r * (2645 ±0)` + // Minimum execution time: 9_255_000 picoseconds. + Weight::from_parts(9_406_000, 1468) + // Standard Error: 6_826 + .saturating_add(Weight::from_parts(4_205_039, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 2688).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2645).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_own_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `876 + r * (6 ±0)` - // Estimated: `9293 + r * (6 ±0)` - // Minimum execution time: 271_301_000 picoseconds. - Weight::from_parts(284_126_054, 9293) - // Standard Error: 886 - .saturating_add(Weight::from_parts(437_127, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_388_000 picoseconds. + Weight::from_parts(9_322_209, 0) + // Standard Error: 269 + .saturating_add(Weight::from_parts(358_189, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_caller_is_origin(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866 + r * (3 ±0)` - // Estimated: `9282 + r * (3 ±0)` - // Minimum execution time: 274_778_000 picoseconds. - Weight::from_parts(289_355_269, 9282) - // Standard Error: 382 - .saturating_add(Weight::from_parts(175_342, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_300_000 picoseconds. + Weight::from_parts(10_268_326, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(104_650, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_caller_is_root(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `756 + r * (3 ±0)` - // Estimated: `9171 + r * (3 ±0)` - // Minimum execution time: 257_310_000 picoseconds. - Weight::from_parts(276_410_847, 9171) - // Standard Error: 733 - .saturating_add(Weight::from_parts(160_094, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(10_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_162_000 picoseconds. + Weight::from_parts(10_059_984, 0) + // Standard Error: 87 + .saturating_add(Weight::from_parts(87_627, 0).saturating_mul(r.into())) + } /// The range of component `r` is `[0, 1600]`. fn seal_address(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `870 + r * (6 ±0)` - // Estimated: `9285 + r * (6 ±0)` - // Minimum execution time: 278_305_000 picoseconds. - Weight::from_parts(282_372_935, 9285) - // Standard Error: 1_154 - .saturating_add(Weight::from_parts(343_382, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_193_000 picoseconds. + Weight::from_parts(10_160_715, 0) + // Standard Error: 152 + .saturating_add(Weight::from_parts(263_703, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_gas_left(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866 + r * (6 ±0)` - // Estimated: `9284 + r * (6 ±0)` - // Minimum execution time: 280_349_000 picoseconds. - Weight::from_parts(294_864_875, 9284) - // Standard Error: 1_010 - .saturating_add(Weight::from_parts(368_740, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_109_000 picoseconds. + Weight::from_parts(9_766_924, 0) + // Standard Error: 212 + .saturating_add(Weight::from_parts(291_694, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:2 w:0) + /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_balance(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1010 + r * (6 ±0)` - // Estimated: `9409 + r * (6 ±0)` - // Minimum execution time: 274_578_000 picoseconds. - Weight::from_parts(313_285_034, 9409) - // Standard Error: 2_800 - .saturating_add(Weight::from_parts(1_653_468, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `140` + // Estimated: `3599` + // Minimum execution time: 9_463_000 picoseconds. + Weight::from_parts(9_541_000, 3599) + // Standard Error: 3_075 + .saturating_add(Weight::from_parts(1_606_043, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_value_transferred(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `880 + r * (6 ±0)` - // Estimated: `9301 + r * (6 ±0)` - // Minimum execution time: 287_127_000 picoseconds. - Weight::from_parts(290_489_909, 9301) - // Standard Error: 864 - .saturating_add(Weight::from_parts(332_977, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_080_000 picoseconds. + Weight::from_parts(8_121_924, 0) + // Standard Error: 198 + .saturating_add(Weight::from_parts(247_527, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_minimum_balance(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `878 + r * (6 ±0)` - // Estimated: `9294 + r * (6 ±0)` - // Minimum execution time: 273_291_000 picoseconds. - Weight::from_parts(293_650_716, 9294) - // Standard Error: 725 - .saturating_add(Weight::from_parts(323_281, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_393_000 picoseconds. + Weight::from_parts(9_999_247, 0) + // Standard Error: 169 + .saturating_add(Weight::from_parts(244_563, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_block_number(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `875 + r * (6 ±0)` - // Estimated: `9297 + r * (6 ±0)` - // Minimum execution time: 282_061_000 picoseconds. - Weight::from_parts(291_729_751, 9297) - // Standard Error: 929 - .saturating_add(Weight::from_parts(324_683, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_236_000 picoseconds. + Weight::from_parts(9_561_435, 0) + // Standard Error: 195 + .saturating_add(Weight::from_parts(239_812, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_now(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866 + r * (6 ±0)` - // Estimated: `9282 + r * (6 ±0)` - // Minimum execution time: 264_505_000 picoseconds. - Weight::from_parts(293_440_286, 9282) - // Standard Error: 704 - .saturating_add(Weight::from_parts(329_851, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_259_000 picoseconds. + Weight::from_parts(10_353_960, 0) + // Standard Error: 216 + .saturating_add(Weight::from_parts(243_754, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_weight_to_fee(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `940 + r * (14 ±0)` - // Estimated: `9350 + r * (14 ±0)` - // Minimum execution time: 277_208_000 picoseconds. - Weight::from_parts(304_294_691, 9350) - // Standard Error: 1_083 - .saturating_add(Weight::from_parts(824_245, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 14).saturating_mul(r.into())) + // Measured: `67` + // Estimated: `1552` + // Minimum execution time: 9_145_000 picoseconds. + Weight::from_parts(16_524_937, 1552) + // Standard Error: 438 + .saturating_add(Weight::from_parts(666_821, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_input(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `868 + r * (6 ±0)` - // Estimated: `9285 + r * (6 ±0)` - // Minimum execution time: 278_293_000 picoseconds. - Weight::from_parts(289_743_005, 9285) - // Standard Error: 672 - .saturating_add(Weight::from_parts(267_553, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_179_000 picoseconds. + Weight::from_parts(8_893_261, 0) + // Standard Error: 215 + .saturating_add(Weight::from_parts(175_586, 0).saturating_mul(r.into())) } /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) @@ -3025,69 +2018,32 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `872` // Estimated: `9287` - // Minimum execution time: 279_495_000 picoseconds. - Weight::from_parts(232_736_994, 9287) - // Standard Error: 23 - .saturating_add(Weight::from_parts(1_008, 0).saturating_mul(n.into())) + // Minimum execution time: 259_315_000 picoseconds. + Weight::from_parts(137_461_362, 9287) + // Standard Error: 18 + .saturating_add(Weight::from_parts(1_388, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1]`. fn seal_return(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `856 + r * (45 ±0)` - // Estimated: `9271 + r * (45 ±0)` - // Minimum execution time: 257_920_000 picoseconds. - Weight::from_parts(282_276_265, 9271) - // Standard Error: 948_490 - .saturating_add(Weight::from_parts(2_408_134, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_919_000 picoseconds. + Weight::from_parts(9_465_187, 0) + // Standard Error: 32_481 + .saturating_add(Weight::from_parts(992_912, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_return_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866` - // Estimated: `9288` - // Minimum execution time: 278_149_000 picoseconds. - Weight::from_parts(287_020_337, 9288) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_244_000 picoseconds. + Weight::from_parts(10_654_989, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(321, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(315, 0).saturating_mul(n.into())) } /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) @@ -3116,211 +2072,119 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `4805 + r * (2121 ±0)` // Estimated: `13220 + r * (81321 ±0)` - // Minimum execution time: 307_763_000 picoseconds. - Weight::from_parts(323_648_618, 13220) - // Standard Error: 879_890 - .saturating_add(Weight::from_parts(249_045_481, 0).saturating_mul(r.into())) + // Minimum execution time: 303_028_000 picoseconds. + Weight::from_parts(323_032_397, 13220) + // Standard Error: 848_406 + .saturating_add(Weight::from_parts(242_988_002, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().reads((36_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((41_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 81321).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0) /// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_random(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `947 + r * (10 ±0)` - // Estimated: `9363 + r * (10 ±0)` - // Minimum execution time: 278_400_000 picoseconds. - Weight::from_parts(293_743_000, 9363) - // Standard Error: 1_686 - .saturating_add(Weight::from_parts(1_288_603, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 9_227_000 picoseconds. + Weight::from_parts(14_055_283, 1561) + // Standard Error: 758 + .saturating_add(Weight::from_parts(1_104_996, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_deposit_event(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `866 + r * (10 ±0)` - // Estimated: `9283 + r * (10 ±0)` - // Minimum execution time: 272_110_000 picoseconds. - Weight::from_parts(295_620_726, 9283) - // Standard Error: 5_481 - .saturating_add(Weight::from_parts(2_031_955, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_483_000 picoseconds. + Weight::from_parts(20_453_059, 0) + // Standard Error: 3_271 + .saturating_add(Weight::from_parts(1_713_468, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:6 w:6) + /// Storage: `System::EventTopics` (r:4 w:4) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 16384]`. fn seal_deposit_event_per_topic_and_byte(t: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `883 + t * (32 ±0)` - // Estimated: `9303 + t * (2508 ±0)` - // Minimum execution time: 277_409_000 picoseconds. - Weight::from_parts(293_838_037, 9303) - // Standard Error: 87_977 - .saturating_add(Weight::from_parts(2_911_340, 0).saturating_mul(t.into())) - // Standard Error: 24 - .saturating_add(Weight::from_parts(531, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `0` + // Estimated: `990 + t * (2475 ±0)` + // Minimum execution time: 23_517_000 picoseconds. + Weight::from_parts(15_543_153, 990) + // Standard Error: 13_814 + .saturating_add(Weight::from_parts(2_357_255, 0).saturating_mul(t.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(573, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(t.into()))) - .saturating_add(Weight::from_parts(0, 2508).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 2475).saturating_mul(t.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_debug_message(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `865 + r * (7 ±0)` - // Estimated: `9285 + r * (7 ±0)` - // Minimum execution time: 172_634_000 picoseconds. - Weight::from_parts(183_322_840, 9285) - // Standard Error: 384 - .saturating_add(Weight::from_parts(226_007, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_448_000 picoseconds. + Weight::from_parts(9_845_841, 0) + // Standard Error: 58 + .saturating_add(Weight::from_parts(105_442, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `MaxEncodedLen`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1048576]`. fn seal_debug_message_per_byte(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `125816` - // Estimated: `131758` - // Minimum execution time: 425_713_000 picoseconds. - Weight::from_parts(394_260_924, 131758) - // Standard Error: 12 - .saturating_add(Weight::from_parts(1_032, 0).saturating_mul(i.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_869_000 picoseconds. + Weight::from_parts(11_024_000, 0) + // Standard Error: 8 + .saturating_add(Weight::from_parts(991, 0).saturating_mul(i.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 800]`. fn seal_set_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `927 + r * (292 ±0)` - // Estimated: `929 + r * (293 ±0)` - // Minimum execution time: 268_128_000 picoseconds. - Weight::from_parts(186_787_113, 929) - // Standard Error: 10_796 - .saturating_add(Weight::from_parts(6_454_780, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_119_000 picoseconds. + Weight::from_parts(9_270_000, 105) + // Standard Error: 8_960 + .saturating_add(Weight::from_parts(5_215_976, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 293).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_set_storage_per_new_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1450` - // Estimated: `1433` - // Minimum execution time: 286_565_000 picoseconds. - Weight::from_parts(349_504_932, 1433) - // Standard Error: 70 - .saturating_add(Weight::from_parts(530, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(15_u64)) - .saturating_add(RocksDbWeight::get().writes(8_u64)) + // Measured: `245` + // Estimated: `245` + // Minimum execution time: 17_833_000 picoseconds. + Weight::from_parts(18_940_114, 245) + // Standard Error: 2 + .saturating_add(Weight::from_parts(316, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_set_storage_per_old_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1256 + n * (1 ±0)` - // Estimated: `1256 + n * (1 ±0)` - // Minimum execution time: 282_478_000 picoseconds. - Weight::from_parts(303_448_260, 1256) - // Standard Error: 34 - .saturating_add(Weight::from_parts(712, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 18_428_000 picoseconds. + Weight::from_parts(19_372_726, 248) + // Standard Error: 2 + .saturating_add(Weight::from_parts(85, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -3328,31 +2192,29 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 800]`. fn seal_clear_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `924 + r * (288 ±0)` - // Estimated: `930 + r * (289 ±0)` - // Minimum execution time: 271_793_000 picoseconds. - Weight::from_parts(179_158_648, 930) - // Standard Error: 11_868 - .saturating_add(Weight::from_parts(6_397_986, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_335_000 picoseconds. + Weight::from_parts(9_459_000, 105) + // Standard Error: 9_156 + .saturating_add(Weight::from_parts(5_166_621, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 289).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_clear_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1252 + n * (1 ±0)` - // Estimated: `1252 + n * (1 ±0)` - // Minimum execution time: 273_945_000 picoseconds. - Weight::from_parts(299_855_996, 1252) - // Standard Error: 31 - .saturating_add(Weight::from_parts(309, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 18_308_000 picoseconds. + Weight::from_parts(19_421_433, 248) + // Standard Error: 2 + .saturating_add(Weight::from_parts(83, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -3360,30 +2222,27 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 800]`. fn seal_get_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `924 + r * (296 ±0)` - // Estimated: `926 + r * (297 ±0)` - // Minimum execution time: 275_285_000 picoseconds. - Weight::from_parts(207_735_572, 926) - // Standard Error: 9_736 - .saturating_add(Weight::from_parts(5_162_837, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_184_000 picoseconds. + Weight::from_parts(9_245_000, 105) + // Standard Error: 8_442 + .saturating_add(Weight::from_parts(4_543_991, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 297).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_get_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1268 + n * (1 ±0)` - // Estimated: `1268 + n * (1 ±0)` - // Minimum execution time: 278_929_000 picoseconds. - Weight::from_parts(302_251_674, 1268) - // Standard Error: 34 - .saturating_add(Weight::from_parts(583, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 17_194_000 picoseconds. + Weight::from_parts(19_032_094, 248) + // Standard Error: 3 + .saturating_add(Weight::from_parts(590, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -3391,28 +2250,27 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 800]`. fn seal_contains_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `935 + r * (288 ±0)` - // Estimated: `932 + r * (289 ±0)` - // Minimum execution time: 258_476_000 picoseconds. - Weight::from_parts(209_578_051, 932) - // Standard Error: 8_255 - .saturating_add(Weight::from_parts(4_942_572, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_380_000 picoseconds. + Weight::from_parts(9_501_000, 105) + // Standard Error: 7_029 + .saturating_add(Weight::from_parts(4_406_690, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 289).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_contains_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1255 + n * (1 ±0)` - // Estimated: `1255 + n * (1 ±0)` - // Minimum execution time: 273_089_000 picoseconds. - Weight::from_parts(302_452_604, 1255) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 16_400_000 picoseconds. + Weight::from_parts(17_993_941, 248) + // Standard Error: 2 + .saturating_add(Weight::from_parts(68, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -3420,668 +2278,356 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 800]`. fn seal_take_storage(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `917 + r * (296 ±0)` - // Estimated: `922 + r * (297 ±0)` - // Minimum execution time: 274_301_000 picoseconds. - Weight::from_parts(172_245_469, 922) - // Standard Error: 11_306 - .saturating_add(Weight::from_parts(6_526_825, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `108 + r * (150 ±0)` + // Estimated: `105 + r * (151 ±0)` + // Minimum execution time: 9_109_000 picoseconds. + Weight::from_parts(9_265_000, 105) + // Standard Error: 8_733 + .saturating_add(Weight::from_parts(5_218_811, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 297).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 151).saturating_mul(r.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 16384]`. fn seal_take_storage_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1269 + n * (1 ±0)` - // Estimated: `1269 + n * (1 ±0)` - // Minimum execution time: 280_399_000 picoseconds. - Weight::from_parts(305_970_974, 1269) - // Standard Error: 36 - .saturating_add(Weight::from_parts(568, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + // Measured: `248 + n * (1 ±0)` + // Estimated: `248 + n * (1 ±0)` + // Minimum execution time: 18_423_000 picoseconds. + Weight::from_parts(20_025_132, 248) + // Standard Error: 3 + .saturating_add(Weight::from_parts(628, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1602 w:1601) + /// Storage: `System::Account` (r:1601 w:1601) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_transfer(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1418 + r * (45 ±0)` - // Estimated: `9785 + r * (2520 ±0)` - // Minimum execution time: 258_452_000 picoseconds. - Weight::from_parts(276_401_000, 9785) - // Standard Error: 65_648 - .saturating_add(Weight::from_parts(33_890_852, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) + // Measured: `770` + // Estimated: `4221 + r * (2475 ±0)` + // Minimum execution time: 9_043_000 picoseconds. + Weight::from_parts(9_176_000, 4221) + // Standard Error: 12_901 + .saturating_add(Weight::from_parts(32_297_438, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2520).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2475).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:801 w:801) + /// Storage: `Contracts::ContractInfoOf` (r:800 w:801) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:2 w:0) + /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:2 w:0) + /// Storage: `Contracts::PristineCode` (r:1 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:803 w:803) + /// Storage: `System::EventTopics` (r:801 w:801) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) /// The range of component `r` is `[0, 800]`. fn seal_call(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1263 + r * (245 ±0)` - // Estimated: `9635 + r * (2721 ±0)` - // Minimum execution time: 281_394_000 picoseconds. - Weight::from_parts(286_475_000, 9635) - // Standard Error: 156_302 - .saturating_add(Weight::from_parts(250_370_283, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(14_u64)) + // Measured: `520 + r * (170 ±0)` + // Estimated: `6463 + r * (2646 ±0)` + // Minimum execution time: 9_299_000 picoseconds. + Weight::from_parts(9_427_000, 6463) + // Standard Error: 101_949 + .saturating_add(Weight::from_parts(244_143_691, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2721).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2646).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:736 w:0) + /// Storage: `Contracts::CodeInfoOf` (r:735 w:0) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:736 w:0) + /// Storage: `Contracts::PristineCode` (r:735 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:737 w:737) + /// Storage: `System::EventTopics` (r:736 w:736) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `Contracts::ContractInfoOf` (r:0 w:1) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) /// The range of component `r` is `[0, 800]`. fn seal_delegate_call(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + r * (576 ±0)` - // Estimated: `9290 + r * (2637 ±10)` - // Minimum execution time: 278_193_000 picoseconds. - Weight::from_parts(280_814_000, 9290) - // Standard Error: 164_401 - .saturating_add(Weight::from_parts(251_272_834, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `0 + r * (527 ±0)` + // Estimated: `6447 + r * (2583 ±3)` + // Minimum execution time: 9_359_000 picoseconds. + Weight::from_parts(9_425_000, 6447) + // Standard Error: 193_938 + .saturating_add(Weight::from_parts(244_904_401, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2637).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2583).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:3 w:2) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:2 w:2) + /// Storage: `Contracts::ContractInfoOf` (r:1 w:2) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:2 w:0) + /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:2 w:0) + /// Storage: `Contracts::PristineCode` (r:1 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:4 w:4) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `System::EventTopics` (r:2 w:2) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) /// The range of component `t` is `[0, 1]`. /// The range of component `c` is `[0, 1048576]`. fn seal_call_per_transfer_clone_byte(t: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1310 + t * (277 ±0)` - // Estimated: `12200 + t * (5227 ±0)` - // Minimum execution time: 476_812_000 picoseconds. - Weight::from_parts(70_715_306, 12200) - // Standard Error: 12_232_109 - .saturating_add(Weight::from_parts(374_277_042, 0).saturating_mul(t.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_022, 0).saturating_mul(c.into())) - .saturating_add(RocksDbWeight::get().reads(16_u64)) + // Measured: `699 + t * (277 ±0)` + // Estimated: `6639 + t * (3458 ±0)` + // Minimum execution time: 214_588_000 picoseconds. + Weight::from_parts(129_214_481, 6639) + // Standard Error: 2_468_090 + .saturating_add(Weight::from_parts(32_514_739, 0).saturating_mul(t.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(418, 0).saturating_mul(c.into())) + .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(t.into()))) - .saturating_add(RocksDbWeight::get().writes(6_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(t.into()))) - .saturating_add(Weight::from_parts(0, 5227).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 3458).saturating_mul(t.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:802 w:802) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:801 w:801) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:801 w:800) + /// Storage: `Contracts::CodeInfoOf` (r:800 w:800) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:801 w:0) + /// Storage: `Contracts::PristineCode` (r:800 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `Contracts::Nonce` (r:1 w:1) + /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:803 w:803) + /// Storage: `Contracts::ContractInfoOf` (r:800 w:801) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `System::Account` (r:802 w:802) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `System::EventTopics` (r:801 w:801) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Balances::Holds` (r:800 w:800) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`) /// The range of component `r` is `[1, 800]`. fn seal_instantiate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1281 + r * (255 ±0)` - // Estimated: `9623 + r * (2731 ±0)` - // Minimum execution time: 656_480_000 picoseconds. - Weight::from_parts(668_579_000, 9623) - // Standard Error: 365_458 - .saturating_add(Weight::from_parts(379_238_223, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(14_u64)) - .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(7_u64)) - .saturating_add(RocksDbWeight::get().writes((5_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2731).saturating_mul(r.into())) + // Measured: `1097 + r * (188 ±0)` + // Estimated: `6990 + r * (2664 ±0)` + // Minimum execution time: 352_925_000 picoseconds. + Weight::from_parts(355_487_000, 6990) + // Standard Error: 261_528 + .saturating_add(Weight::from_parts(337_897_187, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(r.into()))) + .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes((4_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 2664).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:3 w:3) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:2 w:2) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:2 w:1) + /// Storage: `Contracts::CodeInfoOf` (r:1 w:1) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:2 w:0) + /// Storage: `Contracts::PristineCode` (r:1 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `Contracts::Nonce` (r:1 w:1) + /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:4 w:4) + /// Storage: `Contracts::ContractInfoOf` (r:1 w:2) + /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `System::EventTopics` (r:2 w:2) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`) /// The range of component `t` is `[0, 1]`. /// The range of component `i` is `[0, 983040]`. /// The range of component `s` is `[0, 983040]`. fn seal_instantiate_per_transfer_input_salt_byte(t: u32, i: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1306 + t * (104 ±0)` - // Estimated: `12214 + t * (2549 ±1)` - // Minimum execution time: 2_148_964_000 picoseconds. - Weight::from_parts(1_557_685_999, 12214) - // Standard Error: 36 - .saturating_add(Weight::from_parts(864, 0).saturating_mul(i.into())) - // Standard Error: 36 - .saturating_add(Weight::from_parts(1_092, 0).saturating_mul(s.into())) - .saturating_add(RocksDbWeight::get().reads(19_u64)) + // Measured: `760 + t * (104 ±0)` + // Estimated: `6719 + t * (2549 ±1)` + // Minimum execution time: 1_870_832_000 picoseconds. + Weight::from_parts(949_110_245, 6719) + // Standard Error: 24 + .saturating_add(Weight::from_parts(1_084, 0).saturating_mul(i.into())) + // Standard Error: 24 + .saturating_add(Weight::from_parts(1_206, 0).saturating_mul(s.into())) + .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) - .saturating_add(RocksDbWeight::get().writes(11_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(t.into()))) .saturating_add(Weight::from_parts(0, 2549).saturating_mul(t.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_hash_sha2_256(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `865 + r * (8 ±0)` - // Estimated: `9279 + r * (8 ±0)` - // Minimum execution time: 279_377_000 picoseconds. - Weight::from_parts(287_951_287, 9279) - // Standard Error: 659 - .saturating_add(Weight::from_parts(376_476, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_142_000 picoseconds. + Weight::from_parts(9_787_220, 0) + // Standard Error: 236 + .saturating_add(Weight::from_parts(267_264, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_sha2_256_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `873` - // Estimated: `9286` - // Minimum execution time: 276_151_000 picoseconds. - Weight::from_parts(267_656_959, 9286) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_108, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// The range of component `r` is `[0, 1600]`. - fn seal_hash_keccak_256(r: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `867 + r * (8 ±0)` - // Estimated: `9284 + r * (8 ±0)` - // Minimum execution time: 275_247_000 picoseconds. - Weight::from_parts(286_675_317, 9284) - // Standard Error: 601 - .saturating_add(Weight::from_parts(788_160, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_485_000 picoseconds. + Weight::from_parts(1_870_250, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_073, 0).saturating_mul(n.into())) + } + /// The range of component `r` is `[0, 1600]`. + fn seal_hash_keccak_256(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_005_000 picoseconds. + Weight::from_parts(8_943_937, 0) + // Standard Error: 1_385 + .saturating_add(Weight::from_parts(665_970, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `875` - // Estimated: `9292` - // Minimum execution time: 281_585_000 picoseconds. - Weight::from_parts(287_637_844, 9292) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_351, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_965_000 picoseconds. + Weight::from_parts(11_749_746, 0) + // Standard Error: 6 + .saturating_add(Weight::from_parts(3_330, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_hash_blake2_256(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `867 + r * (8 ±0)` - // Estimated: `9286 + r * (8 ±0)` - // Minimum execution time: 273_678_000 picoseconds. - Weight::from_parts(289_879_306, 9286) - // Standard Error: 607 - .saturating_add(Weight::from_parts(439_482, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_400_000 picoseconds. + Weight::from_parts(13_857_546, 0) + // Standard Error: 246 + .saturating_add(Weight::from_parts(326_483, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_256_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `875` - // Estimated: `9291` - // Minimum execution time: 275_126_000 picoseconds. - Weight::from_parts(276_684_594, 9291) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_202, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_064_000 picoseconds. + Weight::from_parts(1_885_873, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_196, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_hash_blake2_128(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `867 + r * (8 ±0)` - // Estimated: `9283 + r * (8 ±0)` - // Minimum execution time: 273_229_000 picoseconds. - Weight::from_parts(287_793_841, 9283) - // Standard Error: 451 - .saturating_add(Weight::from_parts(447_922, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_068_000 picoseconds. + Weight::from_parts(17_169_362, 0) + // Standard Error: 1_580 + .saturating_add(Weight::from_parts(330_195, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_128_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `875` - // Estimated: `9289` - // Minimum execution time: 277_843_000 picoseconds. - Weight::from_parts(279_900_099, 9289) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_204, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_169_000 picoseconds. + Weight::from_parts(2_159_277, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_200, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 125697]`. fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1000 + n * (1 ±0)` - // Estimated: `9412 + n * (1 ±0)` - // Minimum execution time: 331_840_000 picoseconds. - Weight::from_parts(338_767_191, 9412) - // Standard Error: 11 - .saturating_add(Weight::from_parts(5_971, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 53_863_000 picoseconds. + Weight::from_parts(54_902_157, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(4_588, 0).saturating_mul(n.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 160]`. fn seal_sr25519_verify(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `808 + r * (112 ±0)` - // Estimated: `9226 + r * (112 ±0)` - // Minimum execution time: 277_912_000 picoseconds. - Weight::from_parts(344_538_960, 9226) - // Standard Error: 13_422 - .saturating_add(Weight::from_parts(41_592_887, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_107_000 picoseconds. + Weight::from_parts(24_115_247, 0) + // Standard Error: 7_427 + .saturating_add(Weight::from_parts(41_116_827, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_recover(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `910 + r * (76 ±0)` - // Estimated: `9279 + r * (77 ±0)` - // Minimum execution time: 280_383_000 picoseconds. - Weight::from_parts(348_542_377, 9279) - // Standard Error: 13_985 - .saturating_add(Weight::from_parts(45_983_827, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_404_000 picoseconds. + Weight::from_parts(31_763_334, 0) + // Standard Error: 9_833 + .saturating_add(Weight::from_parts(45_529_880, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 160]`. fn seal_ecdsa_to_eth_address(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `880 + r * (42 ±0)` - // Estimated: `9294 + r * (42 ±0)` - // Minimum execution time: 277_764_000 picoseconds. - Weight::from_parts(320_288_180, 9294) - // Standard Error: 10_140 - .saturating_add(Weight::from_parts(12_046_137, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_409_000 picoseconds. + Weight::from_parts(15_072_835, 0) + // Standard Error: 4_591 + .saturating_add(Weight::from_parts(11_619_283, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) /// Storage: `Contracts::CodeInfoOf` (r:1536 w:1536) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1536 w:0) + /// Storage: `Contracts::PristineCode` (r:1535 w:0) /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:1538 w:1538) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) + /// Storage: `System::EventTopics` (r:1537 w:1537) /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + r * (965 ±0)` - // Estimated: `9285 + r * (3090 ±7)` - // Minimum execution time: 271_356_000 picoseconds. - Weight::from_parts(282_924_000, 9285) - // Standard Error: 60_493 - .saturating_add(Weight::from_parts(28_319_267, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `0 + r * (926 ±0)` + // Estimated: `8969 + r * (3047 ±10)` + // Minimum execution time: 9_269_000 picoseconds. + Weight::from_parts(9_372_000, 8969) + // Standard Error: 61_354 + .saturating_add(Weight::from_parts(26_280_409, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 3090).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 3047).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:33 w:32) + /// Storage: `Contracts::CodeInfoOf` (r:32 w:32) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 32]`. fn lock_delegate_dependency(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `937 + r * (131 ±0)` - // Estimated: `9346 + r * (2607 ±0)` - // Minimum execution time: 269_698_000 picoseconds. - Weight::from_parts(294_325_127, 9346) - // Standard Error: 22_352 - .saturating_add(Weight::from_parts(6_744_117, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `274 + r * (78 ±0)` + // Estimated: `1265 + r * (2553 ±0)` + // Minimum execution time: 9_103_000 picoseconds. + Weight::from_parts(14_404_626, 1265) + // Standard Error: 9_343 + .saturating_add(Weight::from_parts(5_154_949, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2607).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2553).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`) - /// Storage: `Contracts::CodeInfoOf` (r:33 w:32) + /// Storage: `Contracts::CodeInfoOf` (r:32 w:32) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `MaxEncodedLen`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `MaxEncodedLen`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 32]`. fn unlock_delegate_dependency(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `972 + r * (184 ±0)` - // Estimated: `129453 + r * (2568 ±0)` - // Minimum execution time: 261_226_000 picoseconds. - Weight::from_parts(294_299_527, 129453) - // Standard Error: 27_898 - .saturating_add(Weight::from_parts(6_031_601, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) + // Measured: `275 + r * (78 ±0)` + // Estimated: `990 + r * (2568 ±0)` + // Minimum execution time: 9_219_000 picoseconds. + Weight::from_parts(14_085_456, 990) + // Standard Error: 11_206 + .saturating_add(Weight::from_parts(4_422_122, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2568).saturating_mul(r.into())) } @@ -4106,82 +2652,45 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `861 + r * (3 ±0)` // Estimated: `9282 + r * (3 ±0)` - // Minimum execution time: 270_729_000 picoseconds. - Weight::from_parts(289_622_807, 9282) - // Standard Error: 394 - .saturating_add(Weight::from_parts(167_010, 0).saturating_mul(r.into())) + // Minimum execution time: 269_333_000 picoseconds. + Weight::from_parts(286_922_618, 9282) + // Standard Error: 443 + .saturating_add(Weight::from_parts(168_869, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_account_reentrance_count(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2112 + r * (39 ±0)` - // Estimated: `10377 + r * (40 ±0)` - // Minimum execution time: 272_228_000 picoseconds. - Weight::from_parts(351_059_276, 10377) - // Standard Error: 1_761 - .saturating_add(Weight::from_parts(312_269, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into())) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_328_000 picoseconds. + Weight::from_parts(14_019_583, 0) + // Standard Error: 171 + .saturating_add(Weight::from_parts(88_751, 0).saturating_mul(r.into())) } - /// Storage: `Contracts::MigrationInProgress` (r:1 w:0) - /// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`) - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`) - /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) - /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) - /// Storage: `Contracts::CodeInfoOf` (r:1 w:0) - /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) - /// Storage: `Contracts::PristineCode` (r:1 w:0) - /// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `Contracts::Nonce` (r:1 w:1) + /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) - /// Storage: `System::EventTopics` (r:2 w:2) - /// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1600]`. fn seal_instantiation_nonce(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `864 + r * (3 ±0)` - // Estimated: `9279 + r * (3 ±0)` - // Minimum execution time: 272_497_000 picoseconds. - Weight::from_parts(288_213_060, 9279) - // Standard Error: 469 - .saturating_add(Weight::from_parts(155_530, 0).saturating_mul(r.into())) - .saturating_add(RocksDbWeight::get().reads(12_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into())) + // Measured: `219` + // Estimated: `1704` + // Minimum execution time: 9_267_000 picoseconds. + Weight::from_parts(15_304_284, 1704) + // Standard Error: 1_219 + .saturating_add(Weight::from_parts(74_696, 0).saturating_mul(r.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// The range of component `r` is `[0, 5000]`. fn instr_i64_load_store(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_990_000 picoseconds. - Weight::from_parts(1_778_221, 0) + // Minimum execution time: 911_000 picoseconds. + Weight::from_parts(449_666, 0) // Standard Error: 26 - .saturating_add(Weight::from_parts(14_888, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(14_797, 0).saturating_mul(r.into())) } } diff --git a/substrate/frame/conviction-voting/src/weights.rs b/substrate/frame/conviction-voting/src/weights.rs index 225f5c2cadd6fc3d4cb1dc735cf164d92150327f..d8f3ffcb3be60f43ad4ccdb07752e74550f74877 100644 --- a/substrate/frame/conviction-voting/src/weights.rs +++ b/substrate/frame/conviction-voting/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_conviction_voting +//! Autogenerated weights for `pallet_conviction_voting` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/conviction-voting/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/conviction-voting/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_conviction_voting. +/// Weight functions needed for `pallet_conviction_voting`. pub trait WeightInfo { fn vote_new() -> Weight; fn vote_existing() -> Weight; @@ -61,280 +60,300 @@ pub trait WeightInfo { fn unlock() -> Weight; } -/// Weights for pallet_conviction_voting using the Substrate node and recommended hardware. +/// Weights for `pallet_conviction_voting` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn vote_new() -> Weight { // Proof Size summary in bytes: - // Measured: `13074` + // Measured: `13141` // Estimated: `219984` - // Minimum execution time: 112_936_000 picoseconds. - Weight::from_parts(116_972_000, 219984) + // Minimum execution time: 114_422_000 picoseconds. + Weight::from_parts(118_642_000, 219984) .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn vote_existing() -> Weight { // Proof Size summary in bytes: - // Measured: `20216` + // Measured: `20283` // Estimated: `219984` - // Minimum execution time: 291_971_000 picoseconds. - Weight::from_parts(301_738_000, 219984) + // Minimum execution time: 290_934_000 picoseconds. + Weight::from_parts(303_286_000, 219984) .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn remove_vote() -> Weight { // Proof Size summary in bytes: - // Measured: `19968` + // Measured: `20035` // Estimated: `219984` - // Minimum execution time: 262_582_000 picoseconds. - Weight::from_parts(270_955_000, 219984) + // Minimum execution time: 277_464_000 picoseconds. + Weight::from_parts(284_288_000, 219984) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn remove_other_vote() -> Weight { // Proof Size summary in bytes: - // Measured: `12675` + // Measured: `12742` // Estimated: `30706` - // Minimum execution time: 52_909_000 picoseconds. - Weight::from_parts(56_365_000, 30706) + // Minimum execution time: 54_538_000 picoseconds. + Weight::from_parts(55_758_000, 30706) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: ConvictionVoting VotingFor (r:2 w:2) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 1]`. fn delegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `240 + r * (1627 ±0)` + // Measured: `306 + r * (1628 ±0)` // Estimated: `109992 + r * (109992 ±0)` - // Minimum execution time: 54_640_000 picoseconds. - Weight::from_parts(57_185_281, 109992) - // Standard Error: 193_362 - .saturating_add(Weight::from_parts(44_897_418, 0).saturating_mul(r.into())) + // Minimum execution time: 47_243_000 picoseconds. + Weight::from_parts(50_023_534, 109992) + // Standard Error: 228_993 + .saturating_add(Weight::from_parts(43_173_465, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into())) } - /// Storage: ConvictionVoting VotingFor (r:2 w:2) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 1]`. fn undelegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `406 + r * (1376 ±0)` + // Measured: `472 + r * (1377 ±0)` // Estimated: `109992 + r * (109992 ±0)` - // Minimum execution time: 26_514_000 picoseconds. - Weight::from_parts(28_083_732, 109992) - // Standard Error: 104_905 - .saturating_add(Weight::from_parts(40_722_467, 0).saturating_mul(r.into())) + // Minimum execution time: 23_529_000 picoseconds. + Weight::from_parts(25_071_526, 109992) + // Standard Error: 138_190 + .saturating_add(Weight::from_parts(40_350_973, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) - .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into())) } - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn unlock() -> Weight { // Proof Size summary in bytes: - // Measured: `11734` + // Measured: `11800` // Estimated: `30706` - // Minimum execution time: 71_140_000 picoseconds. - Weight::from_parts(77_388_000, 30706) + // Minimum execution time: 69_473_000 picoseconds. + Weight::from_parts(71_519_000, 30706) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn vote_new() -> Weight { // Proof Size summary in bytes: - // Measured: `13074` + // Measured: `13141` // Estimated: `219984` - // Minimum execution time: 112_936_000 picoseconds. - Weight::from_parts(116_972_000, 219984) + // Minimum execution time: 114_422_000 picoseconds. + Weight::from_parts(118_642_000, 219984) .saturating_add(RocksDbWeight::get().reads(7_u64)) - .saturating_add(RocksDbWeight::get().writes(6_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn vote_existing() -> Weight { // Proof Size summary in bytes: - // Measured: `20216` + // Measured: `20283` // Estimated: `219984` - // Minimum execution time: 291_971_000 picoseconds. - Weight::from_parts(301_738_000, 219984) + // Minimum execution time: 290_934_000 picoseconds. + Weight::from_parts(303_286_000, 219984) .saturating_add(RocksDbWeight::get().reads(7_u64)) - .saturating_add(RocksDbWeight::get().writes(6_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) } - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn remove_vote() -> Weight { // Proof Size summary in bytes: - // Measured: `19968` + // Measured: `20035` // Estimated: `219984` - // Minimum execution time: 262_582_000 picoseconds. - Weight::from_parts(270_955_000, 219984) + // Minimum execution time: 277_464_000 picoseconds. + Weight::from_parts(284_288_000, 219984) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn remove_other_vote() -> Weight { // Proof Size summary in bytes: - // Measured: `12675` + // Measured: `12742` // Estimated: `30706` - // Minimum execution time: 52_909_000 picoseconds. - Weight::from_parts(56_365_000, 30706) + // Minimum execution time: 54_538_000 picoseconds. + Weight::from_parts(55_758_000, 30706) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: ConvictionVoting VotingFor (r:2 w:2) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 1]`. fn delegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `240 + r * (1627 ±0)` + // Measured: `306 + r * (1628 ±0)` // Estimated: `109992 + r * (109992 ±0)` - // Minimum execution time: 54_640_000 picoseconds. - Weight::from_parts(57_185_281, 109992) - // Standard Error: 193_362 - .saturating_add(Weight::from_parts(44_897_418, 0).saturating_mul(r.into())) + // Minimum execution time: 47_243_000 picoseconds. + Weight::from_parts(50_023_534, 109992) + // Standard Error: 228_993 + .saturating_add(Weight::from_parts(43_173_465, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(RocksDbWeight::get().writes((4_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into())) } - /// Storage: ConvictionVoting VotingFor (r:2 w:2) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 1]`. fn undelegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `406 + r * (1376 ±0)` + // Measured: `472 + r * (1377 ±0)` // Estimated: `109992 + r * (109992 ±0)` - // Minimum execution time: 26_514_000 picoseconds. - Weight::from_parts(28_083_732, 109992) - // Standard Error: 104_905 - .saturating_add(Weight::from_parts(40_722_467, 0).saturating_mul(r.into())) + // Minimum execution time: 23_529_000 picoseconds. + Weight::from_parts(25_071_526, 109992) + // Standard Error: 138_190 + .saturating_add(Weight::from_parts(40_350_973, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) - .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(RocksDbWeight::get().writes((4_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into())) } - /// Storage: ConvictionVoting VotingFor (r:1 w:1) - /// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen) - /// Storage: ConvictionVoting ClassLocksFor (r:1 w:1) - /// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn unlock() -> Weight { // Proof Size summary in bytes: - // Measured: `11734` + // Measured: `11800` // Estimated: `30706` - // Minimum execution time: 71_140_000 picoseconds. - Weight::from_parts(77_388_000, 30706) + // Minimum execution time: 69_473_000 picoseconds. + Weight::from_parts(71_519_000, 30706) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } diff --git a/substrate/frame/core-fellowship/src/weights.rs b/substrate/frame/core-fellowship/src/weights.rs index 8bbfd1a4dd81da2146994f668d722f1e8afa27b6..1e42335067a4a802942753940b2f5d6bbc5aef4f 100644 --- a/substrate/frame/core-fellowship/src/weights.rs +++ b/substrate/frame/core-fellowship/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_core_fellowship +//! Autogenerated weights for `pallet_core_fellowship` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/core-fellowship/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/core-fellowship/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_core_fellowship. +/// Weight functions needed for `pallet_core_fellowship`. pub trait WeightInfo { fn set_params() -> Weight; fn bump_offboard() -> Weight; @@ -64,336 +63,344 @@ pub trait WeightInfo { fn submit_evidence() -> Weight; } -/// Weights for pallet_core_fellowship using the Substrate node and recommended hardware. +/// Weights for `pallet_core_fellowship` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: CoreFellowship Params (r:0 w:1) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Params` (r:0 w:1) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) fn set_params() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_454_000 picoseconds. - Weight::from_parts(9_804_000, 0) + // Minimum execution time: 6_836_000 picoseconds. + Weight::from_parts(7_057_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Params (r:1 w:0) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:1 w:0) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Params` (r:1 w:0) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:1 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn bump_offboard() -> Weight { // Proof Size summary in bytes: - // Measured: `16887` + // Measured: `17274` // Estimated: `19894` - // Minimum execution time: 58_489_000 picoseconds. - Weight::from_parts(60_202_000, 19894) + // Minimum execution time: 55_535_000 picoseconds. + Weight::from_parts(57_104_000, 19894) .saturating_add(T::DbWeight::get().reads(6_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Params (r:1 w:0) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:1 w:0) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Params` (r:1 w:0) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:1 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn bump_demote() -> Weight { // Proof Size summary in bytes: - // Measured: `16997` + // Measured: `17384` // Estimated: `19894` - // Minimum execution time: 60_605_000 picoseconds. - Weight::from_parts(63_957_000, 19894) + // Minimum execution time: 59_111_000 picoseconds. + Weight::from_parts(61_394_000, 19894) .saturating_add(T::DbWeight::get().reads(6_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn set_active() -> Weight { // Proof Size summary in bytes: // Measured: `388` // Estimated: `3514` - // Minimum execution time: 17_816_000 picoseconds. - Weight::from_parts(18_524_000, 3514) + // Minimum execution time: 16_166_000 picoseconds. + Weight::from_parts(16_773_000, 3514) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn induct() -> Weight { // Proof Size summary in bytes: // Measured: `146` // Estimated: `3514` - // Minimum execution time: 27_249_000 picoseconds. - Weight::from_parts(28_049_000, 3514) + // Minimum execution time: 25_508_000 picoseconds. + Weight::from_parts(25_952_000, 3514) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship Params (r:1 w:0) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Params` (r:1 w:0) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn promote() -> Weight { // Proof Size summary in bytes: - // Measured: `16865` + // Measured: `17252` // Estimated: `19894` - // Minimum execution time: 56_642_000 picoseconds. - Weight::from_parts(59_353_000, 19894) + // Minimum execution time: 51_102_000 picoseconds. + Weight::from_parts(53_302_000, 19894) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:0 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:0 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) fn offboard() -> Weight { // Proof Size summary in bytes: - // Measured: `359` + // Measured: `293` // Estimated: `3514` - // Minimum execution time: 17_459_000 picoseconds. - Weight::from_parts(18_033_000, 3514) + // Minimum execution time: 16_035_000 picoseconds. + Weight::from_parts(16_529_000, 3514) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) fn import() -> Weight { // Proof Size summary in bytes: // Measured: `313` // Estimated: `3514` - // Minimum execution time: 16_728_000 picoseconds. - Weight::from_parts(17_263_000, 3514) + // Minimum execution time: 14_966_000 picoseconds. + Weight::from_parts(15_340_000, 3514) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) fn approve() -> Weight { // Proof Size summary in bytes: // Measured: `16843` // Estimated: `19894` - // Minimum execution time: 41_487_000 picoseconds. - Weight::from_parts(43_459_000, 19894) + // Minimum execution time: 35_137_000 picoseconds. + Weight::from_parts(36_285_000, 19894) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: CoreFellowship Member (r:1 w:0) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:0) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) fn submit_evidence() -> Weight { // Proof Size summary in bytes: // Measured: `79` // Estimated: `19894` - // Minimum execution time: 26_033_000 picoseconds. - Weight::from_parts(26_612_000, 19894) + // Minimum execution time: 24_307_000 picoseconds. + Weight::from_parts(25_426_000, 19894) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: CoreFellowship Params (r:0 w:1) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Params` (r:0 w:1) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) fn set_params() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_454_000 picoseconds. - Weight::from_parts(9_804_000, 0) + // Minimum execution time: 6_836_000 picoseconds. + Weight::from_parts(7_057_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Params (r:1 w:0) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:1 w:0) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Params` (r:1 w:0) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:1 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn bump_offboard() -> Weight { // Proof Size summary in bytes: - // Measured: `16887` + // Measured: `17274` // Estimated: `19894` - // Minimum execution time: 58_489_000 picoseconds. - Weight::from_parts(60_202_000, 19894) + // Minimum execution time: 55_535_000 picoseconds. + Weight::from_parts(57_104_000, 19894) .saturating_add(RocksDbWeight::get().reads(6_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Params (r:1 w:0) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:1 w:0) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Params` (r:1 w:0) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:1 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn bump_demote() -> Weight { // Proof Size summary in bytes: - // Measured: `16997` + // Measured: `17384` // Estimated: `19894` - // Minimum execution time: 60_605_000 picoseconds. - Weight::from_parts(63_957_000, 19894) + // Minimum execution time: 59_111_000 picoseconds. + Weight::from_parts(61_394_000, 19894) .saturating_add(RocksDbWeight::get().reads(6_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn set_active() -> Weight { // Proof Size summary in bytes: // Measured: `388` // Estimated: `3514` - // Minimum execution time: 17_816_000 picoseconds. - Weight::from_parts(18_524_000, 3514) + // Minimum execution time: 16_166_000 picoseconds. + Weight::from_parts(16_773_000, 3514) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn induct() -> Weight { // Proof Size summary in bytes: // Measured: `146` // Estimated: `3514` - // Minimum execution time: 27_249_000 picoseconds. - Weight::from_parts(28_049_000, 3514) + // Minimum execution time: 25_508_000 picoseconds. + Weight::from_parts(25_952_000, 3514) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship Params (r:1 w:0) - /// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Params` (r:1 w:0) + /// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn promote() -> Weight { // Proof Size summary in bytes: - // Measured: `16865` + // Measured: `17252` // Estimated: `19894` - // Minimum execution time: 56_642_000 picoseconds. - Weight::from_parts(59_353_000, 19894) + // Minimum execution time: 51_102_000 picoseconds. + Weight::from_parts(53_302_000, 19894) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:0 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:0 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) fn offboard() -> Weight { // Proof Size summary in bytes: - // Measured: `359` + // Measured: `293` // Estimated: `3514` - // Minimum execution time: 17_459_000 picoseconds. - Weight::from_parts(18_033_000, 3514) + // Minimum execution time: 16_035_000 picoseconds. + Weight::from_parts(16_529_000, 3514) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) fn import() -> Weight { // Proof Size summary in bytes: // Measured: `313` // Estimated: `3514` - // Minimum execution time: 16_728_000 picoseconds. - Weight::from_parts(17_263_000, 3514) + // Minimum execution time: 14_966_000 picoseconds. + Weight::from_parts(15_340_000, 3514) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: CoreFellowship Member (r:1 w:1) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:1 w:1) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) fn approve() -> Weight { // Proof Size summary in bytes: // Measured: `16843` // Estimated: `19894` - // Minimum execution time: 41_487_000 picoseconds. - Weight::from_parts(43_459_000, 19894) + // Minimum execution time: 35_137_000 picoseconds. + Weight::from_parts(36_285_000, 19894) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: CoreFellowship Member (r:1 w:0) - /// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: CoreFellowship MemberEvidence (r:1 w:1) - /// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen) + /// Storage: `CoreFellowship::Member` (r:1 w:0) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) fn submit_evidence() -> Weight { // Proof Size summary in bytes: // Measured: `79` // Estimated: `19894` - // Minimum execution time: 26_033_000 picoseconds. - Weight::from_parts(26_612_000, 19894) + // Minimum execution time: 24_307_000 picoseconds. + Weight::from_parts(25_426_000, 19894) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/democracy/src/weights.rs b/substrate/frame/democracy/src/weights.rs index 241f6c3cb38de2c270411cd2d39913f857bbe807..6eb82c631a2ae6d233a8419f18d8a2952a1fab8a 100644 --- a/substrate/frame/democracy/src/weights.rs +++ b/substrate/frame/democracy/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_democracy +//! Autogenerated weights for `pallet_democracy` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/democracy/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/democracy/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_democracy. +/// Weight functions needed for `pallet_democracy`. pub trait WeightInfo { fn propose() -> Weight; fn second() -> Weight; @@ -82,904 +81,916 @@ pub trait WeightInfo { fn clear_referendum_metadata() -> Weight; } -/// Weights for pallet_democracy using the Substrate node and recommended hardware. +/// Weights for `pallet_democracy` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Democracy PublicPropCount (r:1 w:1) - /// Proof: Democracy PublicPropCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy PublicProps (r:1 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:1 w:0) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) - /// Storage: Democracy DepositOf (r:0 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicPropCount` (r:1 w:1) + /// Proof: `Democracy::PublicPropCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:0) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:0 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) fn propose() -> Weight { // Proof Size summary in bytes: - // Measured: `4801` + // Measured: `4834` // Estimated: `18187` - // Minimum execution time: 49_339_000 picoseconds. - Weight::from_parts(50_942_000, 18187) + // Minimum execution time: 42_266_000 picoseconds. + Weight::from_parts(43_382_000, 18187) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Democracy DepositOf (r:1 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) fn second() -> Weight { // Proof Size summary in bytes: - // Measured: `3556` + // Measured: `3589` // Estimated: `6695` - // Minimum execution time: 43_291_000 picoseconds. - Weight::from_parts(44_856_000, 6695) + // Minimum execution time: 37_765_000 picoseconds. + Weight::from_parts(38_679_000, 6695) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn vote_new() -> Weight { // Proof Size summary in bytes: - // Measured: `3470` + // Measured: `3503` // Estimated: `7260` - // Minimum execution time: 61_890_000 picoseconds. - Weight::from_parts(63_626_000, 7260) + // Minimum execution time: 56_200_000 picoseconds. + Weight::from_parts(57_320_000, 7260) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn vote_existing() -> Weight { // Proof Size summary in bytes: - // Measured: `3492` + // Measured: `3525` // Estimated: `7260` - // Minimum execution time: 67_802_000 picoseconds. - Weight::from_parts(69_132_000, 7260) + // Minimum execution time: 58_633_000 picoseconds. + Weight::from_parts(60_809_000, 7260) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy Cancellations (r:1 w:1) - /// Proof: Democracy Cancellations (max_values: None, max_size: Some(33), added: 2508, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Cancellations` (r:1 w:1) + /// Proof: `Democracy::Cancellations` (`max_values`: None, `max_size`: Some(33), added: 2508, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn emergency_cancel() -> Weight { // Proof Size summary in bytes: - // Measured: `366` + // Measured: `399` // Estimated: `3666` - // Minimum execution time: 25_757_000 picoseconds. - Weight::from_parts(27_226_000, 3666) + // Minimum execution time: 23_908_000 picoseconds. + Weight::from_parts(24_659_000, 3666) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Democracy PublicProps (r:1 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy DepositOf (r:1 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:3 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:0 w:1) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:3 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:0 w:1) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) fn blacklist() -> Weight { // Proof Size summary in bytes: - // Measured: `5910` + // Measured: `5943` // Estimated: `18187` - // Minimum execution time: 113_060_000 picoseconds. - Weight::from_parts(114_813_000, 18187) + // Minimum execution time: 100_268_000 picoseconds. + Weight::from_parts(101_309_000, 18187) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:1 w:0) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:0) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) fn external_propose() -> Weight { // Proof Size summary in bytes: - // Measured: `3416` + // Measured: `3449` // Estimated: `6703` - // Minimum execution time: 13_413_000 picoseconds. - Weight::from_parts(13_794_000, 6703) + // Minimum execution time: 12_143_000 picoseconds. + Weight::from_parts(12_843_000, 6703) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:0 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:0 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) fn external_propose_majority() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_213_000 picoseconds. - Weight::from_parts(3_429_000, 0) + // Minimum execution time: 2_792_000 picoseconds. + Weight::from_parts(2_922_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:0 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:0 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) fn external_propose_default() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_280_000 picoseconds. - Weight::from_parts(3_389_000, 0) + // Minimum execution time: 2_792_000 picoseconds. + Weight::from_parts(2_953_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumCount (r:1 w:1) - /// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:2) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:0 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:1) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:2) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) fn fast_track() -> Weight { // Proof Size summary in bytes: - // Measured: `286` + // Measured: `319` // Estimated: `3518` - // Minimum execution time: 28_142_000 picoseconds. - Weight::from_parts(28_862_000, 3518) + // Minimum execution time: 23_948_000 picoseconds. + Weight::from_parts(24_773_000, 3518) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:1 w:1) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:1) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn veto_external() -> Weight { // Proof Size summary in bytes: - // Measured: `3519` + // Measured: `3552` // Estimated: `6703` - // Minimum execution time: 32_395_000 picoseconds. - Weight::from_parts(33_617_000, 6703) + // Minimum execution time: 27_233_000 picoseconds. + Weight::from_parts(28_327_000, 6703) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Democracy PublicProps (r:1 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy DepositOf (r:1 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn cancel_proposal() -> Weight { // Proof Size summary in bytes: - // Measured: `5821` + // Measured: `5854` // Estimated: `18187` - // Minimum execution time: 92_255_000 picoseconds. - Weight::from_parts(93_704_000, 18187) + // Minimum execution time: 82_141_000 picoseconds. + Weight::from_parts(83_511_000, 18187) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:0 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) fn cancel_referendum() -> Weight { // Proof Size summary in bytes: - // Measured: `271` + // Measured: `304` // Estimated: `3518` - // Minimum execution time: 19_623_000 picoseconds. - Weight::from_parts(20_545_000, 3518) + // Minimum execution time: 16_650_000 picoseconds. + Weight::from_parts(17_140_000, 3518) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Democracy LowestUnbaked (r:1 w:1) - /// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumCount (r:1 w:0) - /// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:0) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::LowestUnbaked` (r:1 w:1) + /// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:0) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn on_initialize_base(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `244 + r * (86 ±0)` + // Measured: `277 + r * (86 ±0)` // Estimated: `1489 + r * (2676 ±0)` - // Minimum execution time: 7_032_000 picoseconds. - Weight::from_parts(7_931_421, 1489) - // Standard Error: 7_395 - .saturating_add(Weight::from_parts(3_236_964, 0).saturating_mul(r.into())) + // Minimum execution time: 5_308_000 picoseconds. + Weight::from_parts(6_320_667, 1489) + // Standard Error: 6_714 + .saturating_add(Weight::from_parts(3_307_440, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy LowestUnbaked (r:1 w:1) - /// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumCount (r:1 w:0) - /// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy LastTabledWasExternal (r:1 w:0) - /// Proof: Democracy LastTabledWasExternal (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) - /// Storage: Democracy NextExternal (r:1 w:0) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy PublicProps (r:1 w:0) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:0) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::LowestUnbaked` (r:1 w:1) + /// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:0) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::LastTabledWasExternal` (r:1 w:0) + /// Proof: `Democracy::LastTabledWasExternal` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn on_initialize_base_with_launch_period(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `244 + r * (86 ±0)` + // Measured: `277 + r * (86 ±0)` // Estimated: `18187 + r * (2676 ±0)` - // Minimum execution time: 10_524_000 picoseconds. - Weight::from_parts(10_369_064, 18187) - // Standard Error: 8_385 - .saturating_add(Weight::from_parts(3_242_334, 0).saturating_mul(r.into())) + // Minimum execution time: 8_287_000 picoseconds. + Weight::from_parts(7_834_729, 18187) + // Standard Error: 7_499 + .saturating_add(Weight::from_parts(3_333_021, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy VotingOf (r:3 w:3) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:99) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:3 w:3) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn delegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `830 + r * (108 ±0)` + // Measured: `863 + r * (108 ±0)` // Estimated: `19800 + r * (2676 ±0)` - // Minimum execution time: 46_106_000 picoseconds. - Weight::from_parts(48_936_654, 19800) - // Standard Error: 8_879 - .saturating_add(Weight::from_parts(4_708_141, 0).saturating_mul(r.into())) + // Minimum execution time: 40_681_000 picoseconds. + Weight::from_parts(46_603_677, 19800) + // Standard Error: 7_453 + .saturating_add(Weight::from_parts(4_269_926, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy VotingOf (r:2 w:2) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:99) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:2 w:2) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn undelegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `493 + r * (108 ±0)` + // Measured: `526 + r * (108 ±0)` // Estimated: `13530 + r * (2676 ±0)` - // Minimum execution time: 21_078_000 picoseconds. - Weight::from_parts(22_732_737, 13530) - // Standard Error: 7_969 - .saturating_add(Weight::from_parts(4_626_458, 0).saturating_mul(r.into())) + // Minimum execution time: 18_176_000 picoseconds. + Weight::from_parts(19_473_041, 13530) + // Standard Error: 6_046 + .saturating_add(Weight::from_parts(4_259_914, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy PublicProps (r:0 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:0 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) fn clear_public_proposals() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_229_000 picoseconds. - Weight::from_parts(3_415_000, 0) + // Minimum execution time: 2_828_000 picoseconds. + Weight::from_parts(2_979_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn unlock_remove(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `563` + // Measured: `596` // Estimated: `7260` - // Minimum execution time: 25_735_000 picoseconds. - Weight::from_parts(41_341_468, 7260) - // Standard Error: 3_727 - .saturating_add(Weight::from_parts(94_755, 0).saturating_mul(r.into())) + // Minimum execution time: 24_256_000 picoseconds. + Weight::from_parts(35_489_844, 7260) + // Standard Error: 2_809 + .saturating_add(Weight::from_parts(82_542, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn unlock_set(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `564 + r * (22 ±0)` + // Measured: `597 + r * (22 ±0)` // Estimated: `7260` - // Minimum execution time: 36_233_000 picoseconds. - Weight::from_parts(39_836_017, 7260) - // Standard Error: 1_791 - .saturating_add(Weight::from_parts(132_158, 0).saturating_mul(r.into())) + // Minimum execution time: 32_306_000 picoseconds. + Weight::from_parts(35_288_926, 7260) + // Standard Error: 1_742 + .saturating_add(Weight::from_parts(118_566, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 100]`. fn remove_vote(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `728 + r * (26 ±0)` + // Measured: `761 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 16_081_000 picoseconds. - Weight::from_parts(19_624_101, 7260) - // Standard Error: 1_639 - .saturating_add(Weight::from_parts(133_630, 0).saturating_mul(r.into())) + // Minimum execution time: 15_269_000 picoseconds. + Weight::from_parts(18_595_547, 7260) + // Standard Error: 1_952 + .saturating_add(Weight::from_parts(122_967, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 100]`. fn remove_other_vote(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `728 + r * (26 ±0)` + // Measured: `761 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 15_634_000 picoseconds. - Weight::from_parts(19_573_407, 7260) - // Standard Error: 1_790 - .saturating_add(Weight::from_parts(139_707, 0).saturating_mul(r.into())) + // Minimum execution time: 15_213_000 picoseconds. + Weight::from_parts(18_870_570, 7260) + // Standard Error: 1_802 + .saturating_add(Weight::from_parts(124_205, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Democracy NextExternal (r:1 w:0) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:0 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn set_external_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `356` + // Measured: `456` // Estimated: `3556` - // Minimum execution time: 18_344_000 picoseconds. - Weight::from_parts(18_727_000, 3556) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 17_827_000 picoseconds. + Weight::from_parts(18_255_000, 3556) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:1 w:0) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn clear_external_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `286` + // Measured: `319` // Estimated: `3518` - // Minimum execution time: 16_497_000 picoseconds. - Weight::from_parts(16_892_000, 3518) + // Minimum execution time: 14_205_000 picoseconds. + Weight::from_parts(14_631_000, 3518) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy PublicProps (r:1 w:0) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:0 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn set_proposal_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `4888` + // Measured: `4988` // Estimated: `18187` - // Minimum execution time: 39_517_000 picoseconds. - Weight::from_parts(40_632_000, 18187) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 40_868_000 picoseconds. + Weight::from_parts(41_688_000, 18187) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy PublicProps (r:1 w:0) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn clear_proposal_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `4822` + // Measured: `4855` // Estimated: `18187` - // Minimum execution time: 37_108_000 picoseconds. - Weight::from_parts(37_599_000, 18187) + // Minimum execution time: 36_573_000 picoseconds. + Weight::from_parts(37_017_000, 18187) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:0 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn set_referendum_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 13_997_000 picoseconds. - Weight::from_parts(14_298_000, 3556) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Minimum execution time: 13_741_000 picoseconds. + Weight::from_parts(14_337_000, 3556) + .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:0) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn clear_referendum_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `302` + // Measured: `335` // Estimated: `3666` - // Minimum execution time: 18_122_000 picoseconds. - Weight::from_parts(18_655_000, 3666) + // Minimum execution time: 16_358_000 picoseconds. + Weight::from_parts(17_157_000, 3666) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Democracy PublicPropCount (r:1 w:1) - /// Proof: Democracy PublicPropCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy PublicProps (r:1 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:1 w:0) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) - /// Storage: Democracy DepositOf (r:0 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicPropCount` (r:1 w:1) + /// Proof: `Democracy::PublicPropCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:0) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:0 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) fn propose() -> Weight { // Proof Size summary in bytes: - // Measured: `4801` + // Measured: `4834` // Estimated: `18187` - // Minimum execution time: 49_339_000 picoseconds. - Weight::from_parts(50_942_000, 18187) + // Minimum execution time: 42_266_000 picoseconds. + Weight::from_parts(43_382_000, 18187) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Democracy DepositOf (r:1 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) fn second() -> Weight { // Proof Size summary in bytes: - // Measured: `3556` + // Measured: `3589` // Estimated: `6695` - // Minimum execution time: 43_291_000 picoseconds. - Weight::from_parts(44_856_000, 6695) + // Minimum execution time: 37_765_000 picoseconds. + Weight::from_parts(38_679_000, 6695) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn vote_new() -> Weight { // Proof Size summary in bytes: - // Measured: `3470` + // Measured: `3503` // Estimated: `7260` - // Minimum execution time: 61_890_000 picoseconds. - Weight::from_parts(63_626_000, 7260) + // Minimum execution time: 56_200_000 picoseconds. + Weight::from_parts(57_320_000, 7260) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn vote_existing() -> Weight { // Proof Size summary in bytes: - // Measured: `3492` + // Measured: `3525` // Estimated: `7260` - // Minimum execution time: 67_802_000 picoseconds. - Weight::from_parts(69_132_000, 7260) + // Minimum execution time: 58_633_000 picoseconds. + Weight::from_parts(60_809_000, 7260) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy Cancellations (r:1 w:1) - /// Proof: Democracy Cancellations (max_values: None, max_size: Some(33), added: 2508, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Cancellations` (r:1 w:1) + /// Proof: `Democracy::Cancellations` (`max_values`: None, `max_size`: Some(33), added: 2508, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn emergency_cancel() -> Weight { // Proof Size summary in bytes: - // Measured: `366` + // Measured: `399` // Estimated: `3666` - // Minimum execution time: 25_757_000 picoseconds. - Weight::from_parts(27_226_000, 3666) + // Minimum execution time: 23_908_000 picoseconds. + Weight::from_parts(24_659_000, 3666) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Democracy PublicProps (r:1 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy DepositOf (r:1 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:3 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:0 w:1) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:3 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:0 w:1) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) fn blacklist() -> Weight { // Proof Size summary in bytes: - // Measured: `5910` + // Measured: `5943` // Estimated: `18187` - // Minimum execution time: 113_060_000 picoseconds. - Weight::from_parts(114_813_000, 18187) + // Minimum execution time: 100_268_000 picoseconds. + Weight::from_parts(101_309_000, 18187) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:1 w:0) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:0) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) fn external_propose() -> Weight { // Proof Size summary in bytes: - // Measured: `3416` + // Measured: `3449` // Estimated: `6703` - // Minimum execution time: 13_413_000 picoseconds. - Weight::from_parts(13_794_000, 6703) + // Minimum execution time: 12_143_000 picoseconds. + Weight::from_parts(12_843_000, 6703) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:0 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:0 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) fn external_propose_majority() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_213_000 picoseconds. - Weight::from_parts(3_429_000, 0) + // Minimum execution time: 2_792_000 picoseconds. + Weight::from_parts(2_922_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:0 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:0 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) fn external_propose_default() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_280_000 picoseconds. - Weight::from_parts(3_389_000, 0) + // Minimum execution time: 2_792_000 picoseconds. + Weight::from_parts(2_953_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumCount (r:1 w:1) - /// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:2) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:0 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:1) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:2) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) fn fast_track() -> Weight { // Proof Size summary in bytes: - // Measured: `286` + // Measured: `319` // Estimated: `3518` - // Minimum execution time: 28_142_000 picoseconds. - Weight::from_parts(28_862_000, 3518) + // Minimum execution time: 23_948_000 picoseconds. + Weight::from_parts(24_773_000, 3518) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Democracy NextExternal (r:1 w:1) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy Blacklist (r:1 w:1) - /// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:1) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn veto_external() -> Weight { // Proof Size summary in bytes: - // Measured: `3519` + // Measured: `3552` // Estimated: `6703` - // Minimum execution time: 32_395_000 picoseconds. - Weight::from_parts(33_617_000, 6703) + // Minimum execution time: 27_233_000 picoseconds. + Weight::from_parts(28_327_000, 6703) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Democracy PublicProps (r:1 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy DepositOf (r:1 w:1) - /// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn cancel_proposal() -> Weight { // Proof Size summary in bytes: - // Measured: `5821` + // Measured: `5854` // Estimated: `18187` - // Minimum execution time: 92_255_000 picoseconds. - Weight::from_parts(93_704_000, 18187) + // Minimum execution time: 82_141_000 picoseconds. + Weight::from_parts(83_511_000, 18187) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:0 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) fn cancel_referendum() -> Weight { // Proof Size summary in bytes: - // Measured: `271` + // Measured: `304` // Estimated: `3518` - // Minimum execution time: 19_623_000 picoseconds. - Weight::from_parts(20_545_000, 3518) + // Minimum execution time: 16_650_000 picoseconds. + Weight::from_parts(17_140_000, 3518) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Democracy LowestUnbaked (r:1 w:1) - /// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumCount (r:1 w:0) - /// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:0) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::LowestUnbaked` (r:1 w:1) + /// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:0) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn on_initialize_base(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `244 + r * (86 ±0)` + // Measured: `277 + r * (86 ±0)` // Estimated: `1489 + r * (2676 ±0)` - // Minimum execution time: 7_032_000 picoseconds. - Weight::from_parts(7_931_421, 1489) - // Standard Error: 7_395 - .saturating_add(Weight::from_parts(3_236_964, 0).saturating_mul(r.into())) + // Minimum execution time: 5_308_000 picoseconds. + Weight::from_parts(6_320_667, 1489) + // Standard Error: 6_714 + .saturating_add(Weight::from_parts(3_307_440, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy LowestUnbaked (r:1 w:1) - /// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumCount (r:1 w:0) - /// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Democracy LastTabledWasExternal (r:1 w:0) - /// Proof: Democracy LastTabledWasExternal (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) - /// Storage: Democracy NextExternal (r:1 w:0) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy PublicProps (r:1 w:0) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:0) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::LowestUnbaked` (r:1 w:1) + /// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:0) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::LastTabledWasExternal` (r:1 w:0) + /// Proof: `Democracy::LastTabledWasExternal` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn on_initialize_base_with_launch_period(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `244 + r * (86 ±0)` + // Measured: `277 + r * (86 ±0)` // Estimated: `18187 + r * (2676 ±0)` - // Minimum execution time: 10_524_000 picoseconds. - Weight::from_parts(10_369_064, 18187) - // Standard Error: 8_385 - .saturating_add(Weight::from_parts(3_242_334, 0).saturating_mul(r.into())) + // Minimum execution time: 8_287_000 picoseconds. + Weight::from_parts(7_834_729, 18187) + // Standard Error: 7_499 + .saturating_add(Weight::from_parts(3_333_021, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy VotingOf (r:3 w:3) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:99) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:3 w:3) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn delegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `830 + r * (108 ±0)` + // Measured: `863 + r * (108 ±0)` // Estimated: `19800 + r * (2676 ±0)` - // Minimum execution time: 46_106_000 picoseconds. - Weight::from_parts(48_936_654, 19800) - // Standard Error: 8_879 - .saturating_add(Weight::from_parts(4_708_141, 0).saturating_mul(r.into())) + // Minimum execution time: 40_681_000 picoseconds. + Weight::from_parts(46_603_677, 19800) + // Standard Error: 7_453 + .saturating_add(Weight::from_parts(4_269_926, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy VotingOf (r:2 w:2) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Democracy ReferendumInfoOf (r:99 w:99) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:2 w:2) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn undelegate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `493 + r * (108 ±0)` + // Measured: `526 + r * (108 ±0)` // Estimated: `13530 + r * (2676 ±0)` - // Minimum execution time: 21_078_000 picoseconds. - Weight::from_parts(22_732_737, 13530) - // Standard Error: 7_969 - .saturating_add(Weight::from_parts(4_626_458, 0).saturating_mul(r.into())) + // Minimum execution time: 18_176_000 picoseconds. + Weight::from_parts(19_473_041, 13530) + // Standard Error: 6_046 + .saturating_add(Weight::from_parts(4_259_914, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - /// Storage: Democracy PublicProps (r:0 w:1) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:0 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) fn clear_public_proposals() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_229_000 picoseconds. - Weight::from_parts(3_415_000, 0) + // Minimum execution time: 2_828_000 picoseconds. + Weight::from_parts(2_979_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn unlock_remove(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `563` + // Measured: `596` // Estimated: `7260` - // Minimum execution time: 25_735_000 picoseconds. - Weight::from_parts(41_341_468, 7260) - // Standard Error: 3_727 - .saturating_add(Weight::from_parts(94_755, 0).saturating_mul(r.into())) + // Minimum execution time: 24_256_000 picoseconds. + Weight::from_parts(35_489_844, 7260) + // Standard Error: 2_809 + .saturating_add(Weight::from_parts(82_542, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn unlock_set(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `564 + r * (22 ±0)` + // Measured: `597 + r * (22 ±0)` // Estimated: `7260` - // Minimum execution time: 36_233_000 picoseconds. - Weight::from_parts(39_836_017, 7260) - // Standard Error: 1_791 - .saturating_add(Weight::from_parts(132_158, 0).saturating_mul(r.into())) + // Minimum execution time: 32_306_000 picoseconds. + Weight::from_parts(35_288_926, 7260) + // Standard Error: 1_742 + .saturating_add(Weight::from_parts(118_566, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 100]`. fn remove_vote(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `728 + r * (26 ±0)` + // Measured: `761 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 16_081_000 picoseconds. - Weight::from_parts(19_624_101, 7260) - // Standard Error: 1_639 - .saturating_add(Weight::from_parts(133_630, 0).saturating_mul(r.into())) + // Minimum execution time: 15_269_000 picoseconds. + Weight::from_parts(18_595_547, 7260) + // Standard Error: 1_952 + .saturating_add(Weight::from_parts(122_967, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:1) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy VotingOf (r:1 w:1) - /// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 100]`. fn remove_other_vote(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `728 + r * (26 ±0)` + // Measured: `761 + r * (26 ±0)` // Estimated: `7260` - // Minimum execution time: 15_634_000 picoseconds. - Weight::from_parts(19_573_407, 7260) - // Standard Error: 1_790 - .saturating_add(Weight::from_parts(139_707, 0).saturating_mul(r.into())) + // Minimum execution time: 15_213_000 picoseconds. + Weight::from_parts(18_870_570, 7260) + // Standard Error: 1_802 + .saturating_add(Weight::from_parts(124_205, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Democracy NextExternal (r:1 w:0) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:0 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn set_external_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `356` + // Measured: `456` // Estimated: `3556` - // Minimum execution time: 18_344_000 picoseconds. - Weight::from_parts(18_727_000, 3556) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Minimum execution time: 17_827_000 picoseconds. + Weight::from_parts(18_255_000, 3556) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy NextExternal (r:1 w:0) - /// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn clear_external_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `286` + // Measured: `319` // Estimated: `3518` - // Minimum execution time: 16_497_000 picoseconds. - Weight::from_parts(16_892_000, 3518) + // Minimum execution time: 14_205_000 picoseconds. + Weight::from_parts(14_631_000, 3518) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy PublicProps (r:1 w:0) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:0 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn set_proposal_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `4888` + // Measured: `4988` // Estimated: `18187` - // Minimum execution time: 39_517_000 picoseconds. - Weight::from_parts(40_632_000, 18187) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Minimum execution time: 40_868_000 picoseconds. + Weight::from_parts(41_688_000, 18187) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy PublicProps (r:1 w:0) - /// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn clear_proposal_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `4822` + // Measured: `4855` // Estimated: `18187` - // Minimum execution time: 37_108_000 picoseconds. - Weight::from_parts(37_599_000, 18187) + // Minimum execution time: 36_573_000 picoseconds. + Weight::from_parts(37_017_000, 18187) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:0 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn set_referendum_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 13_997_000 picoseconds. - Weight::from_parts(14_298_000, 3556) - .saturating_add(RocksDbWeight::get().reads(1_u64)) + // Minimum execution time: 13_741_000 picoseconds. + Weight::from_parts(14_337_000, 3556) + .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Democracy ReferendumInfoOf (r:1 w:0) - /// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - /// Storage: Democracy MetadataOf (r:1 w:1) - /// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn clear_referendum_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `302` + // Measured: `335` // Estimated: `3666` - // Minimum execution time: 18_122_000 picoseconds. - Weight::from_parts(18_655_000, 3666) + // Minimum execution time: 16_358_000 picoseconds. + Weight::from_parts(17_157_000, 3666) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/election-provider-multi-phase/src/weights.rs b/substrate/frame/election-provider-multi-phase/src/weights.rs index be578fac8c435769de3b030a4c7fb20832786b83..1398ed047784e16080e1972252526064f778569c 100644 --- a/substrate/frame/election-provider-multi-phase/src/weights.rs +++ b/substrate/frame/election-provider-multi-phase/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_election_provider_multi_phase +//! Autogenerated weights for `pallet_election_provider_multi_phase` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/election-provider-multi-phase/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/election-provider-multi-phase/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_election_provider_multi_phase. +/// Weight functions needed for `pallet_election_provider_multi_phase`. pub trait WeightInfo { fn on_initialize_nothing() -> Weight; fn on_initialize_open_signed() -> Weight; @@ -64,169 +63,173 @@ pub trait WeightInfo { fn feasibility_check(v: u32, t: u32, a: u32, d: u32, ) -> Weight; } -/// Weights for pallet_election_provider_multi_phase using the Substrate node and recommended hardware. +/// Weights for `pallet_election_provider_multi_phase` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking CurrentPlannedSession (r:1 w:0) - /// Proof: Staking CurrentPlannedSession (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ErasStartSessionIndex (r:1 w:0) - /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: Babe EpochIndex (r:1 w:0) - /// Proof: Babe EpochIndex (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Babe GenesisSlot (r:1 w:0) - /// Proof: Babe GenesisSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Babe CurrentSlot (r:1 w:0) - /// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Staking ForceEra (r:1 w:0) - /// Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::CurrentPlannedSession` (r:1 w:0) + /// Proof: `Staking::CurrentPlannedSession` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ErasStartSessionIndex` (r:1 w:0) + /// Proof: `Staking::ErasStartSessionIndex` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Babe::EpochIndex` (r:1 w:0) + /// Proof: `Babe::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Babe::GenesisSlot` (r:1 w:0) + /// Proof: `Babe::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Babe::CurrentSlot` (r:1 w:0) + /// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Staking::ForceEra` (r:1 w:0) + /// Proof: `Staking::ForceEra` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn on_initialize_nothing() -> Weight { // Proof Size summary in bytes: - // Measured: `1028` + // Measured: `1061` // Estimated: `3481` - // Minimum execution time: 22_089_000 picoseconds. - Weight::from_parts(22_677_000, 3481) + // Minimum execution time: 19_436_000 picoseconds. + Weight::from_parts(20_138_000, 3481) .saturating_add(T::DbWeight::get().reads(8_u64)) } - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn on_initialize_open_signed() -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `1633` - // Minimum execution time: 11_986_000 picoseconds. - Weight::from_parts(12_445_000, 1633) + // Minimum execution time: 8_356_000 picoseconds. + Weight::from_parts(8_708_000, 1633) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn on_initialize_open_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `1633` - // Minimum execution time: 12_988_000 picoseconds. - Weight::from_parts(13_281_000, 1633) + // Minimum execution time: 9_088_000 picoseconds. + Weight::from_parts(9_382_000, 1633) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase QueuedSolution (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn finalize_signed_phase_accept_solution() -> Weight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 32_659_000 picoseconds. - Weight::from_parts(33_281_000, 3593) + // Minimum execution time: 25_899_000 picoseconds. + Weight::from_parts(26_456_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn finalize_signed_phase_reject_solution() -> Weight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 22_471_000 picoseconds. - Weight::from_parts(23_046_000, 3593) + // Minimum execution time: 17_671_000 picoseconds. + Weight::from_parts(18_131_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. fn create_snapshot_internal(v: u32, _t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 262_360_000 picoseconds. - Weight::from_parts(279_313_000, 0) - // Standard Error: 2_384 - .saturating_add(Weight::from_parts(176_415, 0).saturating_mul(v.into())) + // Minimum execution time: 251_900_000 picoseconds. + Weight::from_parts(257_174_000, 0) + // Standard Error: 1_606 + .saturating_add(Weight::from_parts(250_961, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Round (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `a` is `[500, 800]`. /// The range of component `d` is `[200, 400]`. fn elect_queued(a: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `371 + a * (768 ±0) + d * (48 ±0)` // Estimated: `3923 + a * (768 ±0) + d * (49 ±0)` - // Minimum execution time: 301_283_000 picoseconds. - Weight::from_parts(324_586_000, 3923) - // Standard Error: 4_763 - .saturating_add(Weight::from_parts(279_812, 0).saturating_mul(a.into())) + // Minimum execution time: 331_717_000 picoseconds. + Weight::from_parts(29_922_189, 3923) + // Standard Error: 9_972 + .saturating_add(Weight::from_parts(570_967, 0).saturating_mul(a.into())) + // Standard Error: 14_948 + .saturating_add(Weight::from_parts(159_043, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) .saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into())) .saturating_add(Weight::from_parts(0, 49).saturating_mul(d.into())) } - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TransactionPayment NextFeeMultiplier (r:1 w:0) - /// Proof: TransactionPayment NextFeeMultiplier (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`) fn submit() -> Weight { // Proof Size summary in bytes: // Measured: `927` // Estimated: `2412` - // Minimum execution time: 52_276_000 picoseconds. - Weight::from_parts(53_846_000, 2412) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Minimum execution time: 44_129_000 picoseconds. + Weight::from_parts(46_420_000, 2412) + .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. /// The range of component `a` is `[500, 800]`. @@ -235,25 +238,25 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `253 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1738 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 5_448_459_000 picoseconds. - Weight::from_parts(5_525_622_000, 1738) - // Standard Error: 21_478 - .saturating_add(Weight::from_parts(256_345, 0).saturating_mul(v.into())) - // Standard Error: 63_648 - .saturating_add(Weight::from_parts(5_103_224, 0).saturating_mul(a.into())) + // Minimum execution time: 5_585_830_000 picoseconds. + Weight::from_parts(5_662_741_000, 1738) + // Standard Error: 17_454 + .saturating_add(Weight::from_parts(352_514, 0).saturating_mul(v.into())) + // Standard Error: 51_723 + .saturating_add(Weight::from_parts(4_182_087, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) } - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. /// The range of component `a` is `[500, 800]`. @@ -262,180 +265,184 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `228 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1713 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_724_399_000 picoseconds. - Weight::from_parts(4_886_472_000, 1713) - // Standard Error: 15_220 - .saturating_add(Weight::from_parts(365_569, 0).saturating_mul(v.into())) - // Standard Error: 45_104 - .saturating_add(Weight::from_parts(3_176_675, 0).saturating_mul(a.into())) + // Minimum execution time: 4_902_422_000 picoseconds. + Weight::from_parts(5_001_852_000, 1713) + // Standard Error: 15_536 + .saturating_add(Weight::from_parts(354_309, 0).saturating_mul(v.into())) + // Standard Error: 46_041 + .saturating_add(Weight::from_parts(3_090_094, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking CurrentPlannedSession (r:1 w:0) - /// Proof: Staking CurrentPlannedSession (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ErasStartSessionIndex (r:1 w:0) - /// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) - /// Storage: Babe EpochIndex (r:1 w:0) - /// Proof: Babe EpochIndex (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Babe GenesisSlot (r:1 w:0) - /// Proof: Babe GenesisSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Babe CurrentSlot (r:1 w:0) - /// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Staking ForceEra (r:1 w:0) - /// Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::CurrentPlannedSession` (r:1 w:0) + /// Proof: `Staking::CurrentPlannedSession` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ErasStartSessionIndex` (r:1 w:0) + /// Proof: `Staking::ErasStartSessionIndex` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Babe::EpochIndex` (r:1 w:0) + /// Proof: `Babe::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Babe::GenesisSlot` (r:1 w:0) + /// Proof: `Babe::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Babe::CurrentSlot` (r:1 w:0) + /// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Staking::ForceEra` (r:1 w:0) + /// Proof: `Staking::ForceEra` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn on_initialize_nothing() -> Weight { // Proof Size summary in bytes: - // Measured: `1028` + // Measured: `1061` // Estimated: `3481` - // Minimum execution time: 22_089_000 picoseconds. - Weight::from_parts(22_677_000, 3481) + // Minimum execution time: 19_436_000 picoseconds. + Weight::from_parts(20_138_000, 3481) .saturating_add(RocksDbWeight::get().reads(8_u64)) } - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn on_initialize_open_signed() -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `1633` - // Minimum execution time: 11_986_000 picoseconds. - Weight::from_parts(12_445_000, 1633) + // Minimum execution time: 8_356_000 picoseconds. + Weight::from_parts(8_708_000, 1633) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn on_initialize_open_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `1633` - // Minimum execution time: 12_988_000 picoseconds. - Weight::from_parts(13_281_000, 1633) + // Minimum execution time: 9_088_000 picoseconds. + Weight::from_parts(9_382_000, 1633) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase QueuedSolution (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn finalize_signed_phase_accept_solution() -> Weight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 32_659_000 picoseconds. - Weight::from_parts(33_281_000, 3593) + // Minimum execution time: 25_899_000 picoseconds. + Weight::from_parts(26_456_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn finalize_signed_phase_reject_solution() -> Weight { // Proof Size summary in bytes: // Measured: `174` // Estimated: `3593` - // Minimum execution time: 22_471_000 picoseconds. - Weight::from_parts(23_046_000, 3593) + // Minimum execution time: 17_671_000 picoseconds. + Weight::from_parts(18_131_000, 3593) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. fn create_snapshot_internal(v: u32, _t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 262_360_000 picoseconds. - Weight::from_parts(279_313_000, 0) - // Standard Error: 2_384 - .saturating_add(Weight::from_parts(176_415, 0).saturating_mul(v.into())) + // Minimum execution time: 251_900_000 picoseconds. + Weight::from_parts(257_174_000, 0) + // Standard Error: 1_606 + .saturating_add(Weight::from_parts(250_961, 0).saturating_mul(v.into())) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Round (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `a` is `[500, 800]`. /// The range of component `d` is `[200, 400]`. fn elect_queued(a: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `371 + a * (768 ±0) + d * (48 ±0)` // Estimated: `3923 + a * (768 ±0) + d * (49 ±0)` - // Minimum execution time: 301_283_000 picoseconds. - Weight::from_parts(324_586_000, 3923) - // Standard Error: 4_763 - .saturating_add(Weight::from_parts(279_812, 0).saturating_mul(a.into())) + // Minimum execution time: 331_717_000 picoseconds. + Weight::from_parts(29_922_189, 3923) + // Standard Error: 9_972 + .saturating_add(Weight::from_parts(570_967, 0).saturating_mul(a.into())) + // Standard Error: 14_948 + .saturating_add(Weight::from_parts(159_043, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(8_u64)) .saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into())) .saturating_add(Weight::from_parts(0, 49).saturating_mul(d.into())) } - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TransactionPayment NextFeeMultiplier (r:1 w:0) - /// Proof: TransactionPayment NextFeeMultiplier (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:0 w:1) - /// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:0 w:1) + /// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`) fn submit() -> Weight { // Proof Size summary in bytes: // Measured: `927` // Estimated: `2412` - // Minimum execution time: 52_276_000 picoseconds. - Weight::from_parts(53_846_000, 2412) - .saturating_add(RocksDbWeight::get().reads(5_u64)) + // Minimum execution time: 44_129_000 picoseconds. + Weight::from_parts(46_420_000, 2412) + .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1) - /// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1) + /// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. /// The range of component `a` is `[500, 800]`. @@ -444,25 +451,25 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `253 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1738 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 5_448_459_000 picoseconds. - Weight::from_parts(5_525_622_000, 1738) - // Standard Error: 21_478 - .saturating_add(Weight::from_parts(256_345, 0).saturating_mul(v.into())) - // Standard Error: 63_648 - .saturating_add(Weight::from_parts(5_103_224, 0).saturating_mul(a.into())) + // Minimum execution time: 5_585_830_000 picoseconds. + Weight::from_parts(5_662_741_000, 1738) + // Standard Error: 17_454 + .saturating_add(Weight::from_parts(352_514, 0).saturating_mul(v.into())) + // Standard Error: 51_723 + .saturating_add(Weight::from_parts(4_182_087, 0).saturating_mul(a.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) } - /// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase Round (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. /// The range of component `a` is `[500, 800]`. @@ -471,12 +478,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `228 + t * (32 ±0) + v * (553 ±0)` // Estimated: `1713 + t * (32 ±0) + v * (553 ±0)` - // Minimum execution time: 4_724_399_000 picoseconds. - Weight::from_parts(4_886_472_000, 1713) - // Standard Error: 15_220 - .saturating_add(Weight::from_parts(365_569, 0).saturating_mul(v.into())) - // Standard Error: 45_104 - .saturating_add(Weight::from_parts(3_176_675, 0).saturating_mul(a.into())) + // Minimum execution time: 4_902_422_000 picoseconds. + Weight::from_parts(5_001_852_000, 1713) + // Standard Error: 15_536 + .saturating_add(Weight::from_parts(354_309, 0).saturating_mul(v.into())) + // Standard Error: 46_041 + .saturating_add(Weight::from_parts(3_090_094, 0).saturating_mul(a.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) .saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into())) diff --git a/substrate/frame/elections-phragmen/src/weights.rs b/substrate/frame/elections-phragmen/src/weights.rs index b7ed13dae9f734e524072bcd6ac5e116fca632bc..fb2e10f9f066348927a449b77a75020f333baf39 100644 --- a/substrate/frame/elections-phragmen/src/weights.rs +++ b/substrate/frame/elections-phragmen/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_elections_phragmen +//! Autogenerated weights for `pallet_elections_phragmen` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/elections-phragmen/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/elections-phragmen/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_elections_phragmen. +/// Weight functions needed for `pallet_elections_phragmen`. pub trait WeightInfo { fn vote_equal(v: u32, ) -> Weight; fn vote_more(v: u32, ) -> Weight; @@ -66,165 +65,165 @@ pub trait WeightInfo { fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight; } -/// Weights for pallet_elections_phragmen using the Substrate node and recommended hardware. +/// Weights for `pallet_elections_phragmen` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `v` is `[1, 16]`. fn vote_equal(v: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 33_028_000 picoseconds. - Weight::from_parts(34_073_914, 4764) - // Standard Error: 3_474 - .saturating_add(Weight::from_parts(205_252, 0).saturating_mul(v.into())) + // Minimum execution time: 30_160_000 picoseconds. + Weight::from_parts(31_473_640, 4764) + // Standard Error: 3_581 + .saturating_add(Weight::from_parts(135_663, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) } - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `v` is `[2, 16]`. fn vote_more(v: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `371 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 45_725_000 picoseconds. - Weight::from_parts(47_169_586, 4764) - // Standard Error: 5_148 - .saturating_add(Weight::from_parts(213_742, 0).saturating_mul(v.into())) + // Minimum execution time: 41_429_000 picoseconds. + Weight::from_parts(42_684_714, 4764) + // Standard Error: 4_828 + .saturating_add(Weight::from_parts(173_254, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) } - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `v` is `[2, 16]`. fn vote_less(v: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 45_519_000 picoseconds. - Weight::from_parts(47_339_108, 4764) - // Standard Error: 5_501 - .saturating_add(Weight::from_parts(195_247, 0).saturating_mul(v.into())) + // Minimum execution time: 41_013_000 picoseconds. + Weight::from_parts(42_555_632, 4764) + // Standard Error: 4_627 + .saturating_add(Weight::from_parts(162_225, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) } - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn remove_voter() -> Weight { // Proof Size summary in bytes: // Measured: `925` // Estimated: `4764` - // Minimum execution time: 50_386_000 picoseconds. - Weight::from_parts(51_378_000, 4764) + // Minimum execution time: 43_431_000 picoseconds. + Weight::from_parts(44_500_000, 4764) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Elections Candidates (r:1 w:1) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Candidates` (r:1 w:1) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `c` is `[1, 64]`. fn submit_candidacy(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1570 + c * (48 ±0)` // Estimated: `3055 + c * (48 ±0)` - // Minimum execution time: 38_987_000 picoseconds. - Weight::from_parts(41_302_276, 3055) - // Standard Error: 2_047 - .saturating_add(Weight::from_parts(125_200, 0).saturating_mul(c.into())) + // Minimum execution time: 34_520_000 picoseconds. + Weight::from_parts(35_911_881, 3055) + // Standard Error: 1_885 + .saturating_add(Weight::from_parts(123_837, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) } - /// Storage: Elections Candidates (r:1 w:1) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Candidates` (r:1 w:1) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `c` is `[1, 64]`. fn renounce_candidacy_candidate(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `285 + c * (48 ±0)` // Estimated: `1770 + c * (48 ±0)` - // Minimum execution time: 33_510_000 picoseconds. - Weight::from_parts(34_947_760, 1770) - // Standard Error: 1_781 - .saturating_add(Weight::from_parts(78_851, 0).saturating_mul(c.into())) + // Minimum execution time: 28_020_000 picoseconds. + Weight::from_parts(29_227_248, 1770) + // Standard Error: 1_202 + .saturating_add(Weight::from_parts(83_328, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) } - /// Storage: Elections Members (r:1 w:1) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Members (r:0 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:1) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:0 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn renounce_candidacy_members() -> Weight { // Proof Size summary in bytes: - // Measured: `1900` - // Estimated: `3385` - // Minimum execution time: 50_603_000 picoseconds. - Weight::from_parts(51_715_000, 3385) + // Measured: `1933` + // Estimated: `3418` + // Minimum execution time: 42_489_000 picoseconds. + Weight::from_parts(43_710_000, 3418) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn renounce_candidacy_runners_up() -> Weight { // Proof Size summary in bytes: // Measured: `880` // Estimated: `2365` - // Minimum execution time: 33_441_000 picoseconds. - Weight::from_parts(34_812_000, 2365) + // Minimum execution time: 29_228_000 picoseconds. + Weight::from_parts(30_343_000, 2365) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn remove_member_without_replacement() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -232,87 +231,90 @@ impl WeightInfo for SubstrateWeight { // Minimum execution time: 2_000_000_000_000 picoseconds. Weight::from_parts(2_000_000_000_000, 0) } - /// Storage: Elections Members (r:1 w:1) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Members (r:0 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:1) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:0 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn remove_member_with_replacement() -> Weight { // Proof Size summary in bytes: - // Measured: `1900` + // Measured: `1933` // Estimated: `3593` - // Minimum execution time: 57_289_000 picoseconds. - Weight::from_parts(58_328_000, 3593) + // Minimum execution time: 46_909_000 picoseconds. + Weight::from_parts(47_907_000, 3593) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Elections Voting (r:513 w:512) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Balances Locks (r:512 w:512) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:512 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:512 w:512) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Elections::Voting` (r:257 w:256) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:256 w:256) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:256 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:256 w:256) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `v` is `[256, 512]`. /// The range of component `d` is `[0, 256]`. - fn clean_defunct_voters(v: u32, _d: u32, ) -> Weight { + fn clean_defunct_voters(v: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1149 + v * (811 ±0)` - // Estimated: `4621 + v * (3774 ±0)` - // Minimum execution time: 18_774_231_000 picoseconds. - Weight::from_parts(18_933_040_000, 4621) - // Standard Error: 301_534 - .saturating_add(Weight::from_parts(44_306_903, 0).saturating_mul(v.into())) + // Measured: `0 + d * (818 ±0) + v * (57 ±0)` + // Estimated: `24906 + d * (3774 ±0) + v * (24 ±0)` + // Minimum execution time: 5_175_000 picoseconds. + Weight::from_parts(5_797_000, 24906) + // Standard Error: 10_951 + .saturating_add(Weight::from_parts(39_675, 0).saturating_mul(v.into())) + // Standard Error: 23_850 + .saturating_add(Weight::from_parts(53_959_224, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(v.into()))) - .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(v.into()))) - .saturating_add(Weight::from_parts(0, 3774).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(d.into()))) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(d.into()))) + .saturating_add(Weight::from_parts(0, 3774).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 24).saturating_mul(v.into())) } - /// Storage: Elections Candidates (r:1 w:1) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:1) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:513 w:0) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Account (r:44 w:44) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Elections ElectionRounds (r:1 w:1) - /// Proof Skipped: Elections ElectionRounds (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Members (r:0 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:0 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Candidates` (r:1 w:1) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:1) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:513 w:0) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:44 w:44) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Elections::ElectionRounds` (r:1 w:1) + /// Proof: `Elections::ElectionRounds` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:0 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:0 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `c` is `[1, 64]`. /// The range of component `v` is `[1, 512]`. /// The range of component `e` is `[512, 8192]`. fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + e * (28 ±0) + v * (606 ±0)` - // Estimated: `178887 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)` - // Minimum execution time: 1_281_877_000 picoseconds. - Weight::from_parts(1_288_147_000, 178887) - // Standard Error: 528_851 - .saturating_add(Weight::from_parts(17_761_407, 0).saturating_mul(v.into())) - // Standard Error: 33_932 - .saturating_add(Weight::from_parts(698_277, 0).saturating_mul(e.into())) + // Estimated: `178920 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)` + // Minimum execution time: 1_136_994_000 picoseconds. + Weight::from_parts(1_142_143_000, 178920) + // Standard Error: 595_387 + .saturating_add(Weight::from_parts(19_373_386, 0).saturating_mul(v.into())) + // Standard Error: 38_201 + .saturating_add(Weight::from_parts(797_696, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(21_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) @@ -324,164 +326,164 @@ impl WeightInfo for SubstrateWeight { } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `v` is `[1, 16]`. fn vote_equal(v: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 33_028_000 picoseconds. - Weight::from_parts(34_073_914, 4764) - // Standard Error: 3_474 - .saturating_add(Weight::from_parts(205_252, 0).saturating_mul(v.into())) + // Minimum execution time: 30_160_000 picoseconds. + Weight::from_parts(31_473_640, 4764) + // Standard Error: 3_581 + .saturating_add(Weight::from_parts(135_663, 0).saturating_mul(v.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) } - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `v` is `[2, 16]`. fn vote_more(v: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `371 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 45_725_000 picoseconds. - Weight::from_parts(47_169_586, 4764) - // Standard Error: 5_148 - .saturating_add(Weight::from_parts(213_742, 0).saturating_mul(v.into())) + // Minimum execution time: 41_429_000 picoseconds. + Weight::from_parts(42_684_714, 4764) + // Standard Error: 4_828 + .saturating_add(Weight::from_parts(173_254, 0).saturating_mul(v.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) } - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// The range of component `v` is `[2, 16]`. fn vote_less(v: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + v * (80 ±0)` // Estimated: `4764 + v * (80 ±0)` - // Minimum execution time: 45_519_000 picoseconds. - Weight::from_parts(47_339_108, 4764) - // Standard Error: 5_501 - .saturating_add(Weight::from_parts(195_247, 0).saturating_mul(v.into())) + // Minimum execution time: 41_013_000 picoseconds. + Weight::from_parts(42_555_632, 4764) + // Standard Error: 4_627 + .saturating_add(Weight::from_parts(162_225, 0).saturating_mul(v.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into())) } - /// Storage: Elections Voting (r:1 w:1) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `Elections::Voting` (r:1 w:1) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn remove_voter() -> Weight { // Proof Size summary in bytes: // Measured: `925` // Estimated: `4764` - // Minimum execution time: 50_386_000 picoseconds. - Weight::from_parts(51_378_000, 4764) + // Minimum execution time: 43_431_000 picoseconds. + Weight::from_parts(44_500_000, 4764) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Elections Candidates (r:1 w:1) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Candidates` (r:1 w:1) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `c` is `[1, 64]`. fn submit_candidacy(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1570 + c * (48 ±0)` // Estimated: `3055 + c * (48 ±0)` - // Minimum execution time: 38_987_000 picoseconds. - Weight::from_parts(41_302_276, 3055) - // Standard Error: 2_047 - .saturating_add(Weight::from_parts(125_200, 0).saturating_mul(c.into())) + // Minimum execution time: 34_520_000 picoseconds. + Weight::from_parts(35_911_881, 3055) + // Standard Error: 1_885 + .saturating_add(Weight::from_parts(123_837, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) } - /// Storage: Elections Candidates (r:1 w:1) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Candidates` (r:1 w:1) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `c` is `[1, 64]`. fn renounce_candidacy_candidate(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `285 + c * (48 ±0)` // Estimated: `1770 + c * (48 ±0)` - // Minimum execution time: 33_510_000 picoseconds. - Weight::from_parts(34_947_760, 1770) - // Standard Error: 1_781 - .saturating_add(Weight::from_parts(78_851, 0).saturating_mul(c.into())) + // Minimum execution time: 28_020_000 picoseconds. + Weight::from_parts(29_227_248, 1770) + // Standard Error: 1_202 + .saturating_add(Weight::from_parts(83_328, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into())) } - /// Storage: Elections Members (r:1 w:1) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Members (r:0 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:1) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:0 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn renounce_candidacy_members() -> Weight { // Proof Size summary in bytes: - // Measured: `1900` - // Estimated: `3385` - // Minimum execution time: 50_603_000 picoseconds. - Weight::from_parts(51_715_000, 3385) + // Measured: `1933` + // Estimated: `3418` + // Minimum execution time: 42_489_000 picoseconds. + Weight::from_parts(43_710_000, 3418) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn renounce_candidacy_runners_up() -> Weight { // Proof Size summary in bytes: // Measured: `880` // Estimated: `2365` - // Minimum execution time: 33_441_000 picoseconds. - Weight::from_parts(34_812_000, 2365) + // Minimum execution time: 29_228_000 picoseconds. + Weight::from_parts(30_343_000, 2365) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn remove_member_without_replacement() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -489,87 +491,90 @@ impl WeightInfo for () { // Minimum execution time: 2_000_000_000_000 picoseconds. Weight::from_parts(2_000_000_000_000, 0) } - /// Storage: Elections Members (r:1 w:1) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:1 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Members (r:0 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:1) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:1 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:0 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn remove_member_with_replacement() -> Weight { // Proof Size summary in bytes: - // Measured: `1900` + // Measured: `1933` // Estimated: `3593` - // Minimum execution time: 57_289_000 picoseconds. - Weight::from_parts(58_328_000, 3593) + // Minimum execution time: 46_909_000 picoseconds. + Weight::from_parts(47_907_000, 3593) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Elections Voting (r:513 w:512) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:0) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Candidates (r:1 w:0) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Balances Locks (r:512 w:512) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:512 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: System Account (r:512 w:512) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Elections::Voting` (r:257 w:256) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:0) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Candidates` (r:1 w:0) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:256 w:256) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:256 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:256 w:256) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `v` is `[256, 512]`. /// The range of component `d` is `[0, 256]`. - fn clean_defunct_voters(v: u32, _d: u32, ) -> Weight { + fn clean_defunct_voters(v: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1149 + v * (811 ±0)` - // Estimated: `4621 + v * (3774 ±0)` - // Minimum execution time: 18_774_231_000 picoseconds. - Weight::from_parts(18_933_040_000, 4621) - // Standard Error: 301_534 - .saturating_add(Weight::from_parts(44_306_903, 0).saturating_mul(v.into())) + // Measured: `0 + d * (818 ±0) + v * (57 ±0)` + // Estimated: `24906 + d * (3774 ±0) + v * (24 ±0)` + // Minimum execution time: 5_175_000 picoseconds. + Weight::from_parts(5_797_000, 24906) + // Standard Error: 10_951 + .saturating_add(Weight::from_parts(39_675, 0).saturating_mul(v.into())) + // Standard Error: 23_850 + .saturating_add(Weight::from_parts(53_959_224, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(v.into()))) - .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(v.into()))) - .saturating_add(Weight::from_parts(0, 3774).saturating_mul(v.into())) + .saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(d.into()))) + .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(d.into()))) + .saturating_add(Weight::from_parts(0, 3774).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 24).saturating_mul(v.into())) } - /// Storage: Elections Candidates (r:1 w:1) - /// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:1) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections RunnersUp (r:1 w:1) - /// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Elections Voting (r:513 w:0) - /// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured) - /// Storage: Council Proposals (r:1 w:0) - /// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Account (r:44 w:44) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Elections ElectionRounds (r:1 w:1) - /// Proof Skipped: Elections ElectionRounds (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Members (r:0 w:1) - /// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Council Prime (r:0 w:1) - /// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `Elections::Candidates` (r:1 w:1) + /// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:1) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::RunnersUp` (r:1 w:1) + /// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Voting` (r:513 w:0) + /// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Council::Proposals` (r:1 w:0) + /// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:44 w:44) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Elections::ElectionRounds` (r:1 w:1) + /// Proof: `Elections::ElectionRounds` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Members` (r:0 w:1) + /// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Council::Prime` (r:0 w:1) + /// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `c` is `[1, 64]`. /// The range of component `v` is `[1, 512]`. /// The range of component `e` is `[512, 8192]`. fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + e * (28 ±0) + v * (606 ±0)` - // Estimated: `178887 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)` - // Minimum execution time: 1_281_877_000 picoseconds. - Weight::from_parts(1_288_147_000, 178887) - // Standard Error: 528_851 - .saturating_add(Weight::from_parts(17_761_407, 0).saturating_mul(v.into())) - // Standard Error: 33_932 - .saturating_add(Weight::from_parts(698_277, 0).saturating_mul(e.into())) + // Estimated: `178920 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)` + // Minimum execution time: 1_136_994_000 picoseconds. + Weight::from_parts(1_142_143_000, 178920) + // Standard Error: 595_387 + .saturating_add(Weight::from_parts(19_373_386, 0).saturating_mul(v.into())) + // Standard Error: 38_201 + .saturating_add(Weight::from_parts(797_696, 0).saturating_mul(e.into())) .saturating_add(RocksDbWeight::get().reads(21_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(v.into()))) diff --git a/substrate/frame/fast-unstake/src/weights.rs b/substrate/frame/fast-unstake/src/weights.rs index 9c25a409f74099fc4d13158f99fae9036b34eff8..dc875e93229ef78a1000243cd7f177a53df7ec0b 100644 --- a/substrate/frame/fast-unstake/src/weights.rs +++ b/substrate/frame/fast-unstake/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_fast_unstake +//! Autogenerated weights for `pallet_fast_unstake` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/fast-unstake/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/fast-unstake/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_fast_unstake. +/// Weight functions needed for `pallet_fast_unstake`. pub trait WeightInfo { fn on_idle_unstake(b: u32, ) -> Weight; fn on_idle_check(v: u32, b: u32, ) -> Weight; @@ -59,301 +58,309 @@ pub trait WeightInfo { fn control() -> Weight; } -/// Weights for pallet_fast_unstake using the Substrate node and recommended hardware. +/// Weights for `pallet_fast_unstake` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ValidatorCount (r:1 w:0) - /// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:1) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:0) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking SlashingSpans (r:64 w:0) - /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) - /// Storage: Staking Bonded (r:64 w:64) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Validators (r:64 w:0) - /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) - /// Storage: Staking Nominators (r:64 w:0) - /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) - /// Storage: System Account (r:64 w:64) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:64 w:64) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:64 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:0 w:64) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: Staking Payee (r:0 w:64) - /// Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ValidatorCount` (r:1 w:0) + /// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:1) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:0) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::SlashingSpans` (r:64 w:0) + /// Proof: `Staking::SlashingSpans` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Staking::Bonded` (r:64 w:64) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:64 w:64) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:64 w:64) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:64 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:64 w:64) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Staking::Validators` (r:64 w:0) + /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Storage: `Staking::Nominators` (r:64 w:0) + /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) + /// Storage: `Staking::Payee` (r:0 w:64) + /// Proof: `Staking::Payee` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) /// The range of component `b` is `[1, 64]`. fn on_idle_unstake(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1378 + b * (343 ±0)` + // Measured: `1475 + b * (452 ±0)` // Estimated: `7253 + b * (3774 ±0)` - // Minimum execution time: 92_847_000 picoseconds. - Weight::from_parts(42_300_813, 7253) - // Standard Error: 40_514 - .saturating_add(Weight::from_parts(58_412_402, 0).saturating_mul(b.into())) + // Minimum execution time: 84_536_000 picoseconds. + Weight::from_parts(41_949_894, 7253) + // Standard Error: 28_494 + .saturating_add(Weight::from_parts(52_945_820, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) - .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().reads((8_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(b.into()))) .saturating_add(Weight::from_parts(0, 3774).saturating_mul(b.into())) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ValidatorCount (r:1 w:0) - /// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:1) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:0) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ErasStakers (r:257 w:0) - /// Proof Skipped: Staking ErasStakers (max_values: None, max_size: None, mode: Measured) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ValidatorCount` (r:1 w:0) + /// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:1) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:0) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ErasStakers` (r:1 w:0) + /// Proof: `Staking::ErasStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Staking::ErasStakersPaged` (r:257 w:0) + /// Proof: `Staking::ErasStakersPaged` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1, 256]`. /// The range of component `b` is `[1, 64]`. fn on_idle_check(v: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1546 + b * (48 ±0) + v * (10037 ±0)` - // Estimated: `7253 + b * (49 ±0) + v * (12513 ±0)` - // Minimum execution time: 1_685_784_000 picoseconds. - Weight::from_parts(1_693_370_000, 7253) - // Standard Error: 13_295_842 - .saturating_add(Weight::from_parts(425_349_148, 0).saturating_mul(v.into())) - // Standard Error: 53_198_180 - .saturating_add(Weight::from_parts(1_673_328_444, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Measured: `1879 + b * (55 ±0) + v * (10055 ±0)` + // Estimated: `7253 + b * (56 ±0) + v * (12531 ±0)` + // Minimum execution time: 1_745_807_000 picoseconds. + Weight::from_parts(1_757_648_000, 7253) + // Standard Error: 12_994_693 + .saturating_add(Weight::from_parts(416_410_247, 0).saturating_mul(v.into())) + // Standard Error: 51_993_247 + .saturating_add(Weight::from_parts(1_654_551_441, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) - .saturating_add(Weight::from_parts(0, 49).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 12513).saturating_mul(v.into())) + .saturating_add(Weight::from_parts(0, 56).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 12531).saturating_mul(v.into())) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:1) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: FastUnstake Queue (r:1 w:1) - /// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:0) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: Staking Bonded (r:1 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Validators (r:1 w:0) - /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) - /// Storage: Staking Nominators (r:1 w:1) - /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) - /// Storage: Staking CounterForNominators (r:1 w:1) - /// Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: VoterList ListNodes (r:1 w:1) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:1 w:1) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) - /// Storage: VoterList CounterForListNodes (r:1 w:1) - /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:1) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:1) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Queue` (r:1 w:1) + /// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:0) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `Staking::Validators` (r:1 w:0) + /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Storage: `Staking::Nominators` (r:1 w:1) + /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) + /// Storage: `Staking::CounterForNominators` (r:1 w:1) + /// Proof: `Staking::CounterForNominators` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListNodes` (r:1 w:1) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:1 w:1) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) + /// Storage: `VoterList::CounterForListNodes` (r:1 w:1) + /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:1) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn register_fast_unstake() -> Weight { // Proof Size summary in bytes: - // Measured: `1964` + // Measured: `1955` // Estimated: `7253` - // Minimum execution time: 125_512_000 picoseconds. - Weight::from_parts(129_562_000, 7253) + // Minimum execution time: 136_437_000 picoseconds. + Weight::from_parts(138_827_000, 7253) .saturating_add(T::DbWeight::get().reads(15_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: FastUnstake Queue (r:1 w:1) - /// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:0) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:1) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Queue` (r:1 w:1) + /// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:0) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:1) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `1223` + // Measured: `1350` // Estimated: `7253` - // Minimum execution time: 43_943_000 picoseconds. - Weight::from_parts(45_842_000, 7253) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Minimum execution time: 45_337_000 picoseconds. + Weight::from_parts(47_359_000, 7253) + .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:0 w:1) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn control() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_677_000 picoseconds. - Weight::from_parts(2_849_000, 0) + // Minimum execution time: 2_258_000 picoseconds. + Weight::from_parts(2_406_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ValidatorCount (r:1 w:0) - /// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:1) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:0) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking SlashingSpans (r:64 w:0) - /// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) - /// Storage: Staking Bonded (r:64 w:64) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Validators (r:64 w:0) - /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) - /// Storage: Staking Nominators (r:64 w:0) - /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) - /// Storage: System Account (r:64 w:64) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:64 w:64) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:64 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:0 w:64) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: Staking Payee (r:0 w:64) - /// Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ValidatorCount` (r:1 w:0) + /// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:1) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:0) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::SlashingSpans` (r:64 w:0) + /// Proof: `Staking::SlashingSpans` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Staking::Bonded` (r:64 w:64) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:64 w:64) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:64 w:64) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:64 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:64 w:64) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Staking::Validators` (r:64 w:0) + /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Storage: `Staking::Nominators` (r:64 w:0) + /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) + /// Storage: `Staking::Payee` (r:0 w:64) + /// Proof: `Staking::Payee` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) /// The range of component `b` is `[1, 64]`. fn on_idle_unstake(b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1378 + b * (343 ±0)` + // Measured: `1475 + b * (452 ±0)` // Estimated: `7253 + b * (3774 ±0)` - // Minimum execution time: 92_847_000 picoseconds. - Weight::from_parts(42_300_813, 7253) - // Standard Error: 40_514 - .saturating_add(Weight::from_parts(58_412_402, 0).saturating_mul(b.into())) + // Minimum execution time: 84_536_000 picoseconds. + Weight::from_parts(41_949_894, 7253) + // Standard Error: 28_494 + .saturating_add(Weight::from_parts(52_945_820, 0).saturating_mul(b.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) - .saturating_add(RocksDbWeight::get().reads((7_u64).saturating_mul(b.into()))) + .saturating_add(RocksDbWeight::get().reads((8_u64).saturating_mul(b.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((5_u64).saturating_mul(b.into()))) .saturating_add(Weight::from_parts(0, 3774).saturating_mul(b.into())) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ValidatorCount (r:1 w:0) - /// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:1) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:0) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) - /// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking ErasStakers (r:257 w:0) - /// Proof Skipped: Staking ErasStakers (max_values: None, max_size: None, mode: Measured) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ValidatorCount` (r:1 w:0) + /// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:1) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:0) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0) + /// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::ErasStakers` (r:1 w:0) + /// Proof: `Staking::ErasStakers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Staking::ErasStakersPaged` (r:257 w:0) + /// Proof: `Staking::ErasStakersPaged` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `v` is `[1, 256]`. /// The range of component `b` is `[1, 64]`. fn on_idle_check(v: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1546 + b * (48 ±0) + v * (10037 ±0)` - // Estimated: `7253 + b * (49 ±0) + v * (12513 ±0)` - // Minimum execution time: 1_685_784_000 picoseconds. - Weight::from_parts(1_693_370_000, 7253) - // Standard Error: 13_295_842 - .saturating_add(Weight::from_parts(425_349_148, 0).saturating_mul(v.into())) - // Standard Error: 53_198_180 - .saturating_add(Weight::from_parts(1_673_328_444, 0).saturating_mul(b.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Measured: `1879 + b * (55 ±0) + v * (10055 ±0)` + // Estimated: `7253 + b * (56 ±0) + v * (12531 ±0)` + // Minimum execution time: 1_745_807_000 picoseconds. + Weight::from_parts(1_757_648_000, 7253) + // Standard Error: 12_994_693 + .saturating_add(Weight::from_parts(416_410_247, 0).saturating_mul(v.into())) + // Standard Error: 51_993_247 + .saturating_add(Weight::from_parts(1_654_551_441, 0).saturating_mul(b.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) - .saturating_add(Weight::from_parts(0, 49).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 12513).saturating_mul(v.into())) + .saturating_add(Weight::from_parts(0, 56).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 12531).saturating_mul(v.into())) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:1) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: FastUnstake Queue (r:1 w:1) - /// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:0) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: Staking Bonded (r:1 w:0) - /// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: Staking Validators (r:1 w:0) - /// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) - /// Storage: Staking Nominators (r:1 w:1) - /// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) - /// Storage: Staking CounterForNominators (r:1 w:1) - /// Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: VoterList ListNodes (r:1 w:1) - /// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) - /// Storage: VoterList ListBags (r:1 w:1) - /// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) - /// Storage: VoterList CounterForListNodes (r:1 w:1) - /// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking CurrentEra (r:1 w:0) - /// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: Balances Freezes (r:1 w:0) - /// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:1) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:1) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Queue` (r:1 w:1) + /// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:0) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `Staking::Validators` (r:1 w:0) + /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Storage: `Staking::Nominators` (r:1 w:1) + /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) + /// Storage: `Staking::CounterForNominators` (r:1 w:1) + /// Proof: `Staking::CounterForNominators` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListNodes` (r:1 w:1) + /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`) + /// Storage: `VoterList::ListBags` (r:1 w:1) + /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) + /// Storage: `VoterList::CounterForListNodes` (r:1 w:1) + /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::CurrentEra` (r:1 w:0) + /// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:1) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn register_fast_unstake() -> Weight { // Proof Size summary in bytes: - // Measured: `1964` + // Measured: `1955` // Estimated: `7253` - // Minimum execution time: 125_512_000 picoseconds. - Weight::from_parts(129_562_000, 7253) + // Minimum execution time: 136_437_000 picoseconds. + Weight::from_parts(138_827_000, 7253) .saturating_add(RocksDbWeight::get().reads(15_u64)) .saturating_add(RocksDbWeight::get().writes(9_u64)) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: FastUnstake Queue (r:1 w:1) - /// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: FastUnstake Head (r:1 w:0) - /// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen) - /// Storage: FastUnstake CounterForQueue (r:1 w:1) - /// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Staking::Bonded` (r:1 w:0) + /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Queue` (r:1 w:1) + /// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::Head` (r:1 w:0) + /// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`) + /// Storage: `FastUnstake::CounterForQueue` (r:1 w:1) + /// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn deregister() -> Weight { // Proof Size summary in bytes: - // Measured: `1223` + // Measured: `1350` // Estimated: `7253` - // Minimum execution time: 43_943_000 picoseconds. - Weight::from_parts(45_842_000, 7253) - .saturating_add(RocksDbWeight::get().reads(5_u64)) + // Minimum execution time: 45_337_000 picoseconds. + Weight::from_parts(47_359_000, 7253) + .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1) - /// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `FastUnstake::ErasToCheckPerBlock` (r:0 w:1) + /// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn control() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_677_000 picoseconds. - Weight::from_parts(2_849_000, 0) + // Minimum execution time: 2_258_000 picoseconds. + Weight::from_parts(2_406_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } } diff --git a/substrate/frame/glutton/src/weights.rs b/substrate/frame/glutton/src/weights.rs index cbc0fb022f510889e66a403f1624c025faa5a7f8..d9e6ebd9d8a9b1f31fa72eddb88558582a9f6872 100644 --- a/substrate/frame/glutton/src/weights.rs +++ b/substrate/frame/glutton/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_glutton +//! Autogenerated weights for `pallet_glutton` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/glutton/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/glutton/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_glutton. +/// Weight functions needed for `pallet_glutton`. pub trait WeightInfo { fn initialize_pallet_grow(n: u32, ) -> Weight; fn initialize_pallet_shrink(n: u32, ) -> Weight; @@ -63,39 +62,39 @@ pub trait WeightInfo { fn set_storage() -> Weight; } -/// Weights for pallet_glutton using the Substrate node and recommended hardware. +/// Weights for `pallet_glutton` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Glutton TrashDataCount (r:1 w:1) - /// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:0 w:1000) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::TrashDataCount` (r:1 w:1) + /// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:0 w:1000) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. fn initialize_pallet_grow(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `86` // Estimated: `1489` - // Minimum execution time: 11_488_000 picoseconds. - Weight::from_parts(93_073_710, 1489) - // Standard Error: 22_390 - .saturating_add(Weight::from_parts(9_572_012, 0).saturating_mul(n.into())) + // Minimum execution time: 8_453_000 picoseconds. + Weight::from_parts(5_470_386, 1489) + // Standard Error: 4_723 + .saturating_add(Weight::from_parts(10_418_732, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } - /// Storage: Glutton TrashDataCount (r:1 w:1) - /// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:0 w:1000) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::TrashDataCount` (r:1 w:1) + /// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:0 w:1000) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. fn initialize_pallet_shrink(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `119` // Estimated: `1489` - // Minimum execution time: 11_378_000 picoseconds. - Weight::from_parts(5_591_508, 1489) - // Standard Error: 1_592 - .saturating_add(Weight::from_parts(1_163_758, 0).saturating_mul(n.into())) + // Minimum execution time: 8_646_000 picoseconds. + Weight::from_parts(7_948_965, 1489) + // Standard Error: 2_154 + .saturating_add(Weight::from_parts(1_197_352, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -105,119 +104,119 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 669_000 picoseconds. - Weight::from_parts(990_745, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(105_224, 0).saturating_mul(i.into())) + // Minimum execution time: 643_000 picoseconds. + Weight::from_parts(4_035_744, 0) + // Standard Error: 14 + .saturating_add(Weight::from_parts(105_406, 0).saturating_mul(i.into())) } - /// Storage: Glutton TrashData (r:5000 w:0) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::TrashData` (r:5000 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) /// The range of component `i` is `[0, 5000]`. fn waste_proof_size_some(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `119114 + i * (1022 ±0)` // Estimated: `990 + i * (3016 ±0)` - // Minimum execution time: 435_000 picoseconds. - Weight::from_parts(66_547_542, 990) - // Standard Error: 4_557 - .saturating_add(Weight::from_parts(5_851_324, 0).saturating_mul(i.into())) + // Minimum execution time: 228_000 picoseconds. + Weight::from_parts(62_060_711, 990) + // Standard Error: 5_638 + .saturating_add(Weight::from_parts(5_970_065, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into())) } - /// Storage: Glutton Storage (r:1 w:0) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton Compute (r:1 w:0) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:1737 w:0) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:1737 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) fn on_idle_high_proof_waste() -> Weight { // Proof Size summary in bytes: // Measured: `1900497` // Estimated: `5239782` - // Minimum execution time: 67_699_845_000 picoseconds. - Weight::from_parts(67_893_204_000, 5239782) + // Minimum execution time: 57_557_511_000 picoseconds. + Weight::from_parts(57_644_868_000, 5239782) .saturating_add(T::DbWeight::get().reads(1739_u64)) } - /// Storage: Glutton Storage (r:1 w:0) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton Compute (r:1 w:0) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:5 w:0) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:5 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) fn on_idle_low_proof_waste() -> Weight { // Proof Size summary in bytes: // Measured: `9547` // Estimated: `16070` - // Minimum execution time: 122_297_527_000 picoseconds. - Weight::from_parts(122_394_818_000, 16070) + // Minimum execution time: 101_362_469_000 picoseconds. + Weight::from_parts(101_583_065_000, 16070) .saturating_add(T::DbWeight::get().reads(7_u64)) } - /// Storage: Glutton Storage (r:1 w:0) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton Compute (r:1 w:0) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn empty_on_idle() -> Weight { // Proof Size summary in bytes: // Measured: `86` // Estimated: `1493` - // Minimum execution time: 5_882_000 picoseconds. - Weight::from_parts(6_138_000, 1493) + // Minimum execution time: 5_118_000 picoseconds. + Weight::from_parts(5_320_000, 1493) .saturating_add(T::DbWeight::get().reads(2_u64)) } - /// Storage: Glutton Compute (r:0 w:1) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Glutton::Compute` (r:0 w:1) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set_compute() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_830_000 picoseconds. - Weight::from_parts(8_366_000, 0) + // Minimum execution time: 5_925_000 picoseconds. + Weight::from_parts(6_193_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Glutton Storage (r:0 w:1) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:0 w:1) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_933_000 picoseconds. - Weight::from_parts(8_213_000, 0) + // Minimum execution time: 5_912_000 picoseconds. + Weight::from_parts(6_170_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Glutton TrashDataCount (r:1 w:1) - /// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:0 w:1000) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::TrashDataCount` (r:1 w:1) + /// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:0 w:1000) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. fn initialize_pallet_grow(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `86` // Estimated: `1489` - // Minimum execution time: 11_488_000 picoseconds. - Weight::from_parts(93_073_710, 1489) - // Standard Error: 22_390 - .saturating_add(Weight::from_parts(9_572_012, 0).saturating_mul(n.into())) + // Minimum execution time: 8_453_000 picoseconds. + Weight::from_parts(5_470_386, 1489) + // Standard Error: 4_723 + .saturating_add(Weight::from_parts(10_418_732, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) } - /// Storage: Glutton TrashDataCount (r:1 w:1) - /// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:0 w:1000) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::TrashDataCount` (r:1 w:1) + /// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:0 w:1000) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. fn initialize_pallet_shrink(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `119` // Estimated: `1489` - // Minimum execution time: 11_378_000 picoseconds. - Weight::from_parts(5_591_508, 1489) - // Standard Error: 1_592 - .saturating_add(Weight::from_parts(1_163_758, 0).saturating_mul(n.into())) + // Minimum execution time: 8_646_000 picoseconds. + Weight::from_parts(7_948_965, 1489) + // Standard Error: 2_154 + .saturating_add(Weight::from_parts(1_197_352, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -227,83 +226,83 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 669_000 picoseconds. - Weight::from_parts(990_745, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(105_224, 0).saturating_mul(i.into())) + // Minimum execution time: 643_000 picoseconds. + Weight::from_parts(4_035_744, 0) + // Standard Error: 14 + .saturating_add(Weight::from_parts(105_406, 0).saturating_mul(i.into())) } - /// Storage: Glutton TrashData (r:5000 w:0) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::TrashData` (r:5000 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) /// The range of component `i` is `[0, 5000]`. fn waste_proof_size_some(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `119114 + i * (1022 ±0)` // Estimated: `990 + i * (3016 ±0)` - // Minimum execution time: 435_000 picoseconds. - Weight::from_parts(66_547_542, 990) - // Standard Error: 4_557 - .saturating_add(Weight::from_parts(5_851_324, 0).saturating_mul(i.into())) + // Minimum execution time: 228_000 picoseconds. + Weight::from_parts(62_060_711, 990) + // Standard Error: 5_638 + .saturating_add(Weight::from_parts(5_970_065, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into())) } - /// Storage: Glutton Storage (r:1 w:0) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton Compute (r:1 w:0) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:1737 w:0) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:1737 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) fn on_idle_high_proof_waste() -> Weight { // Proof Size summary in bytes: // Measured: `1900497` // Estimated: `5239782` - // Minimum execution time: 67_699_845_000 picoseconds. - Weight::from_parts(67_893_204_000, 5239782) + // Minimum execution time: 57_557_511_000 picoseconds. + Weight::from_parts(57_644_868_000, 5239782) .saturating_add(RocksDbWeight::get().reads(1739_u64)) } - /// Storage: Glutton Storage (r:1 w:0) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton Compute (r:1 w:0) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton TrashData (r:5 w:0) - /// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::TrashData` (r:5 w:0) + /// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`) fn on_idle_low_proof_waste() -> Weight { // Proof Size summary in bytes: // Measured: `9547` // Estimated: `16070` - // Minimum execution time: 122_297_527_000 picoseconds. - Weight::from_parts(122_394_818_000, 16070) + // Minimum execution time: 101_362_469_000 picoseconds. + Weight::from_parts(101_583_065_000, 16070) .saturating_add(RocksDbWeight::get().reads(7_u64)) } - /// Storage: Glutton Storage (r:1 w:0) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Glutton Compute (r:1 w:0) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:1 w:0) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Glutton::Compute` (r:1 w:0) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn empty_on_idle() -> Weight { // Proof Size summary in bytes: // Measured: `86` // Estimated: `1493` - // Minimum execution time: 5_882_000 picoseconds. - Weight::from_parts(6_138_000, 1493) + // Minimum execution time: 5_118_000 picoseconds. + Weight::from_parts(5_320_000, 1493) .saturating_add(RocksDbWeight::get().reads(2_u64)) } - /// Storage: Glutton Compute (r:0 w:1) - /// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Glutton::Compute` (r:0 w:1) + /// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set_compute() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_830_000 picoseconds. - Weight::from_parts(8_366_000, 0) + // Minimum execution time: 5_925_000 picoseconds. + Weight::from_parts(6_193_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Glutton Storage (r:0 w:1) - /// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Glutton::Storage` (r:0 w:1) + /// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_933_000 picoseconds. - Weight::from_parts(8_213_000, 0) + // Minimum execution time: 5_912_000 picoseconds. + Weight::from_parts(6_170_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } } diff --git a/substrate/frame/identity/src/weights.rs b/substrate/frame/identity/src/weights.rs index 1feb8252c845383ff8a31f2f992e6cf6b3c0001d..008d5465bb4f3ef75df96dcc8d6687f92f6697d5 100644 --- a/substrate/frame/identity/src/weights.rs +++ b/substrate/frame/identity/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_identity +//! Autogenerated weights for `pallet_identity` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/identity/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/identity/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_identity. +/// Weight functions needed for `pallet_identity`. pub trait WeightInfo { fn add_registrar(r: u32, ) -> Weight; fn set_identity(r: u32, ) -> Weight; @@ -77,278 +76,278 @@ pub trait WeightInfo { fn remove_dangling_username() -> Weight; } -/// Weights for pallet_identity using the Substrate node and recommended hardware. +/// Weights for `pallet_identity` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn add_registrar(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 11_683_000 picoseconds. - Weight::from_parts(12_515_830, 2626) - // Standard Error: 2_154 - .saturating_add(Weight::from_parts(147_919, 0).saturating_mul(r.into())) + // Minimum execution time: 8_696_000 picoseconds. + Weight::from_parts(9_620_793, 2626) + // Standard Error: 1_909 + .saturating_add(Weight::from_parts(94_977, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. fn set_identity(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `442 + r * (5 ±0)` - // Estimated: `11003` - // Minimum execution time: 32_949_000 picoseconds. - Weight::from_parts(31_329_634, 11003) - // Standard Error: 4_496 - .saturating_add(Weight::from_parts(203_570, 0).saturating_mul(r.into())) + // Measured: `6978 + r * (5 ±0)` + // Estimated: `11037` + // Minimum execution time: 110_950_000 picoseconds. + Weight::from_parts(112_705_139, 11037) + // Standard Error: 6_475 + .saturating_add(Weight::from_parts(212_737, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:100 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:100 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 100]`. fn set_subs_new(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `101` - // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_157_000 picoseconds. - Weight::from_parts(24_917_444, 11003) - // Standard Error: 4_554 - .saturating_add(Weight::from_parts(3_279_868, 0).saturating_mul(s.into())) + // Estimated: `11037 + s * (2589 ±0)` + // Minimum execution time: 9_440_000 picoseconds. + Weight::from_parts(23_266_871, 11037) + // Standard Error: 10_640 + .saturating_add(Weight::from_parts(3_663_971, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 2589).saturating_mul(s.into())) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:0 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 100]`. fn set_subs_old(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` - // Estimated: `11003` - // Minimum execution time: 9_240_000 picoseconds. - Weight::from_parts(23_326_035, 11003) - // Standard Error: 3_664 - .saturating_add(Weight::from_parts(1_439_873, 0).saturating_mul(p.into())) + // Estimated: `11037` + // Minimum execution time: 9_588_000 picoseconds. + Weight::from_parts(22_403_362, 11037) + // Standard Error: 3_359 + .saturating_add(Weight::from_parts(1_557_280, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) } - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:0 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. /// The range of component `s` is `[0, 100]`. fn clear_identity(r: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 55_687_000 picoseconds. - Weight::from_parts(30_695_182, 11003) - // Standard Error: 9_921 - .saturating_add(Weight::from_parts(162_357, 0).saturating_mul(r.into())) - // Standard Error: 1_937 - .saturating_add(Weight::from_parts(1_427_998, 0).saturating_mul(s.into())) + // Measured: `7070 + r * (5 ±0) + s * (32 ±0)` + // Estimated: `11037` + // Minimum execution time: 55_387_000 picoseconds. + Weight::from_parts(52_575_769, 11037) + // Standard Error: 17_705 + .saturating_add(Weight::from_parts(268_160, 0).saturating_mul(r.into())) + // Standard Error: 3_454 + .saturating_add(Weight::from_parts(1_576_194, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) } - /// Storage: Identity Registrars (r:1 w:0) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:0) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. fn request_judgement(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `367 + r * (57 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 34_876_000 picoseconds. - Weight::from_parts(32_207_018, 11003) - // Standard Error: 5_247 - .saturating_add(Weight::from_parts(249_156, 0).saturating_mul(r.into())) + // Measured: `6968 + r * (57 ±0)` + // Estimated: `11037` + // Minimum execution time: 78_243_000 picoseconds. + Weight::from_parts(80_404_226, 11037) + // Standard Error: 5_153 + .saturating_add(Weight::from_parts(149_799, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. fn cancel_request(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `398 + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 30_689_000 picoseconds. - Weight::from_parts(31_967_170, 11003) - // Standard Error: 5_387 - .saturating_add(Weight::from_parts(42_676, 0).saturating_mul(r.into())) + // Measured: `6999` + // Estimated: `11037` + // Minimum execution time: 73_360_000 picoseconds. + Weight::from_parts(76_216_374, 11037) + // Standard Error: 15_603 + .saturating_add(Weight::from_parts(189_080, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn set_fee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_357_000 picoseconds. - Weight::from_parts(7_932_950, 2626) - // Standard Error: 1_804 - .saturating_add(Weight::from_parts(132_653, 0).saturating_mul(r.into())) + // Minimum execution time: 6_287_000 picoseconds. + Weight::from_parts(6_721_854, 2626) + // Standard Error: 1_488 + .saturating_add(Weight::from_parts(96_288, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn set_account_id(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_437_000 picoseconds. - Weight::from_parts(8_051_889, 2626) - // Standard Error: 1_997 - .saturating_add(Weight::from_parts(129_592, 0).saturating_mul(r.into())) + // Minimum execution time: 6_441_000 picoseconds. + Weight::from_parts(6_864_863, 2626) + // Standard Error: 1_403 + .saturating_add(Weight::from_parts(85_123, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn set_fields(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_385_000 picoseconds. - Weight::from_parts(7_911_589, 2626) - // Standard Error: 1_791 - .saturating_add(Weight::from_parts(125_788, 0).saturating_mul(r.into())) + // Minimum execution time: 6_249_000 picoseconds. + Weight::from_parts(6_658_251, 2626) + // Standard Error: 1_443 + .saturating_add(Weight::from_parts(92_586, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:0) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:0) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn provide_judgement(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `445 + r * (57 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 24_073_000 picoseconds. - Weight::from_parts(17_817_684, 11003) - // Standard Error: 8_612 - .saturating_add(Weight::from_parts(406_251, 0).saturating_mul(r.into())) + // Measured: `7046 + r * (57 ±0)` + // Estimated: `11037` + // Minimum execution time: 97_969_000 picoseconds. + Weight::from_parts(101_366_385, 11037) + // Standard Error: 19_594 + .saturating_add(Weight::from_parts(103_251, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:0 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. /// The range of component `s` is `[0, 100]`. fn kill_identity(r: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 73_981_000 picoseconds. - Weight::from_parts(51_684_057, 11003) - // Standard Error: 12_662 - .saturating_add(Weight::from_parts(145_285, 0).saturating_mul(r.into())) - // Standard Error: 2_472 - .saturating_add(Weight::from_parts(1_421_039, 0).saturating_mul(s.into())) + // Measured: `7277 + r * (5 ±0) + s * (32 ±0)` + // Estimated: `11037` + // Minimum execution time: 73_785_000 picoseconds. + Weight::from_parts(73_606_063, 11037) + // Standard Error: 26_433 + .saturating_add(Weight::from_parts(230_018, 0).saturating_mul(r.into())) + // Standard Error: 5_157 + .saturating_add(Weight::from_parts(1_483_326, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 99]`. fn add_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` - // Estimated: `11003` - // Minimum execution time: 29_367_000 picoseconds. - Weight::from_parts(34_214_998, 11003) - // Standard Error: 1_522 - .saturating_add(Weight::from_parts(114_551, 0).saturating_mul(s.into())) + // Estimated: `11037` + // Minimum execution time: 27_304_000 picoseconds. + Weight::from_parts(31_677_329, 11037) + // Standard Error: 1_388 + .saturating_add(Weight::from_parts(102_193, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 100]`. fn rename_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` - // Estimated: `11003` - // Minimum execution time: 12_384_000 picoseconds. - Weight::from_parts(14_417_903, 11003) - // Standard Error: 539 - .saturating_add(Weight::from_parts(38_371, 0).saturating_mul(s.into())) + // Estimated: `11037` + // Minimum execution time: 12_925_000 picoseconds. + Weight::from_parts(14_756_477, 11037) + // Standard Error: 646 + .saturating_add(Weight::from_parts(36_734, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 100]`. fn remove_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` - // Estimated: `11003` - // Minimum execution time: 33_327_000 picoseconds. - Weight::from_parts(36_208_941, 11003) - // Standard Error: 1_240 - .saturating_add(Weight::from_parts(105_805, 0).saturating_mul(s.into())) + // Estimated: `11037` + // Minimum execution time: 30_475_000 picoseconds. + Weight::from_parts(33_821_774, 11037) + // Standard Error: 1_012 + .saturating_add(Weight::from_parts(87_704, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 99]`. fn quit_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 23_764_000 picoseconds. - Weight::from_parts(26_407_731, 6723) - // Standard Error: 1_025 - .saturating_add(Weight::from_parts(101_112, 0).saturating_mul(s.into())) + // Minimum execution time: 22_841_000 picoseconds. + Weight::from_parts(25_781_412, 6723) + // Standard Error: 1_145 + .saturating_add(Weight::from_parts(84_692, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -358,367 +357,363 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_873_000 picoseconds. - Weight::from_parts(13_873_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) + // Minimum execution time: 6_983_000 picoseconds. + Weight::from_parts(7_388_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: `Identity::UsernameAuthorities` (r:0 w:1) + /// Storage: `Identity::UsernameAuthorities` (r:1 w:1) /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn remove_username_authority() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 10_653_000 picoseconds. - Weight::from_parts(10_653_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `80` + // Estimated: `3517` + // Minimum execution time: 9_717_000 picoseconds. + Weight::from_parts(10_322_000, 3517) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Identity::UsernameAuthorities` (r:1 w:1) /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `Identity::AccountOfUsername` (r:1 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::PendingUsernames` (r:1 w:0) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) fn set_username_for() -> Weight { // Proof Size summary in bytes: // Measured: `80` // Estimated: `11037` - // Minimum execution time: 75_928_000 picoseconds. - Weight::from_parts(75_928_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) + // Minimum execution time: 70_714_000 picoseconds. + Weight::from_parts(74_990_000, 11037) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `Identity::PendingUsernames` (r:1 w:1) - /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// Storage: `Identity::AccountOfUsername` (r:0 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) fn accept_username() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `115` // Estimated: `11037` - // Minimum execution time: 38_157_000 picoseconds. - Weight::from_parts(38_157_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(3)) + // Minimum execution time: 21_996_000 picoseconds. + Weight::from_parts(22_611_000, 11037) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `Identity::PendingUsernames` (r:1 w:1) - /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) fn remove_expired_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `3542` - // Minimum execution time: 46_821_000 picoseconds. - Weight::from_parts(46_821_000, 0) - .saturating_add(Weight::from_parts(0, 3542)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `115` + // Estimated: `3550` + // Minimum execution time: 16_880_000 picoseconds. + Weight::from_parts(28_371_000, 3550) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Identity::AccountOfUsername` (r:1 w:0) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) fn set_primary_username() -> Weight { // Proof Size summary in bytes: - // Measured: `247` + // Measured: `257` // Estimated: `11037` - // Minimum execution time: 22_515_000 picoseconds. - Weight::from_parts(22_515_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + // Minimum execution time: 16_771_000 picoseconds. + Weight::from_parts(17_333_000, 11037) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Identity::AccountOfUsername` (r:1 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:0) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) fn remove_dangling_username() -> Weight { // Proof Size summary in bytes: - // Measured: `126` + // Measured: `98` // Estimated: `11037` - // Minimum execution time: 15_997_000 picoseconds. - Weight::from_parts(15_997_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + // Minimum execution time: 12_017_000 picoseconds. + Weight::from_parts(12_389_000, 11037) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn add_registrar(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `32 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 11_683_000 picoseconds. - Weight::from_parts(12_515_830, 2626) - // Standard Error: 2_154 - .saturating_add(Weight::from_parts(147_919, 0).saturating_mul(r.into())) + // Minimum execution time: 8_696_000 picoseconds. + Weight::from_parts(9_620_793, 2626) + // Standard Error: 1_909 + .saturating_add(Weight::from_parts(94_977, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. fn set_identity(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `442 + r * (5 ±0)` - // Estimated: `11003` - // Minimum execution time: 32_949_000 picoseconds. - Weight::from_parts(31_329_634, 11003) - // Standard Error: 4_496 - .saturating_add(Weight::from_parts(203_570, 0).saturating_mul(r.into())) + // Measured: `6978 + r * (5 ±0)` + // Estimated: `11037` + // Minimum execution time: 110_950_000 picoseconds. + Weight::from_parts(112_705_139, 11037) + // Standard Error: 6_475 + .saturating_add(Weight::from_parts(212_737, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:100 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:100 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 100]`. fn set_subs_new(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `101` - // Estimated: `11003 + s * (2589 ±0)` - // Minimum execution time: 9_157_000 picoseconds. - Weight::from_parts(24_917_444, 11003) - // Standard Error: 4_554 - .saturating_add(Weight::from_parts(3_279_868, 0).saturating_mul(s.into())) + // Estimated: `11037 + s * (2589 ±0)` + // Minimum execution time: 9_440_000 picoseconds. + Weight::from_parts(23_266_871, 11037) + // Standard Error: 10_640 + .saturating_add(Weight::from_parts(3_663_971, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(s.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into()))) .saturating_add(Weight::from_parts(0, 2589).saturating_mul(s.into())) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:0 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 100]`. fn set_subs_old(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `194 + p * (32 ±0)` - // Estimated: `11003` - // Minimum execution time: 9_240_000 picoseconds. - Weight::from_parts(23_326_035, 11003) - // Standard Error: 3_664 - .saturating_add(Weight::from_parts(1_439_873, 0).saturating_mul(p.into())) + // Estimated: `11037` + // Minimum execution time: 9_588_000 picoseconds. + Weight::from_parts(22_403_362, 11037) + // Standard Error: 3_359 + .saturating_add(Weight::from_parts(1_557_280, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(p.into()))) } - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:0 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. /// The range of component `s` is `[0, 100]`. fn clear_identity(r: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 55_687_000 picoseconds. - Weight::from_parts(30_695_182, 11003) - // Standard Error: 9_921 - .saturating_add(Weight::from_parts(162_357, 0).saturating_mul(r.into())) - // Standard Error: 1_937 - .saturating_add(Weight::from_parts(1_427_998, 0).saturating_mul(s.into())) + // Measured: `7070 + r * (5 ±0) + s * (32 ±0)` + // Estimated: `11037` + // Minimum execution time: 55_387_000 picoseconds. + Weight::from_parts(52_575_769, 11037) + // Standard Error: 17_705 + .saturating_add(Weight::from_parts(268_160, 0).saturating_mul(r.into())) + // Standard Error: 3_454 + .saturating_add(Weight::from_parts(1_576_194, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into()))) } - /// Storage: Identity Registrars (r:1 w:0) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:0) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. fn request_judgement(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `367 + r * (57 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 34_876_000 picoseconds. - Weight::from_parts(32_207_018, 11003) - // Standard Error: 5_247 - .saturating_add(Weight::from_parts(249_156, 0).saturating_mul(r.into())) + // Measured: `6968 + r * (57 ±0)` + // Estimated: `11037` + // Minimum execution time: 78_243_000 picoseconds. + Weight::from_parts(80_404_226, 11037) + // Standard Error: 5_153 + .saturating_add(Weight::from_parts(149_799, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. fn cancel_request(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `398 + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 30_689_000 picoseconds. - Weight::from_parts(31_967_170, 11003) - // Standard Error: 5_387 - .saturating_add(Weight::from_parts(42_676, 0).saturating_mul(r.into())) + // Measured: `6999` + // Estimated: `11037` + // Minimum execution time: 73_360_000 picoseconds. + Weight::from_parts(76_216_374, 11037) + // Standard Error: 15_603 + .saturating_add(Weight::from_parts(189_080, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn set_fee(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_357_000 picoseconds. - Weight::from_parts(7_932_950, 2626) - // Standard Error: 1_804 - .saturating_add(Weight::from_parts(132_653, 0).saturating_mul(r.into())) + // Minimum execution time: 6_287_000 picoseconds. + Weight::from_parts(6_721_854, 2626) + // Standard Error: 1_488 + .saturating_add(Weight::from_parts(96_288, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn set_account_id(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_437_000 picoseconds. - Weight::from_parts(8_051_889, 2626) - // Standard Error: 1_997 - .saturating_add(Weight::from_parts(129_592, 0).saturating_mul(r.into())) + // Minimum execution time: 6_441_000 picoseconds. + Weight::from_parts(6_864_863, 2626) + // Standard Error: 1_403 + .saturating_add(Weight::from_parts(85_123, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:1) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn set_fields(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `89 + r * (57 ±0)` // Estimated: `2626` - // Minimum execution time: 7_385_000 picoseconds. - Weight::from_parts(7_911_589, 2626) - // Standard Error: 1_791 - .saturating_add(Weight::from_parts(125_788, 0).saturating_mul(r.into())) + // Minimum execution time: 6_249_000 picoseconds. + Weight::from_parts(6_658_251, 2626) + // Standard Error: 1_443 + .saturating_add(Weight::from_parts(92_586, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity Registrars (r:1 w:0) - /// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) + /// Storage: `Identity::Registrars` (r:1 w:0) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 19]`. fn provide_judgement(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `445 + r * (57 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 24_073_000 picoseconds. - Weight::from_parts(17_817_684, 11003) - // Standard Error: 8_612 - .saturating_add(Weight::from_parts(406_251, 0).saturating_mul(r.into())) + // Measured: `7046 + r * (57 ±0)` + // Estimated: `11037` + // Minimum execution time: 97_969_000 picoseconds. + Weight::from_parts(101_366_385, 11037) + // Standard Error: 19_594 + .saturating_add(Weight::from_parts(103_251, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: Identity IdentityOf (r:1 w:1) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:0 w:100) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. /// The range of component `s` is `[0, 100]`. fn kill_identity(r: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)` - // Estimated: `11003` - // Minimum execution time: 73_981_000 picoseconds. - Weight::from_parts(51_684_057, 11003) - // Standard Error: 12_662 - .saturating_add(Weight::from_parts(145_285, 0).saturating_mul(r.into())) - // Standard Error: 2_472 - .saturating_add(Weight::from_parts(1_421_039, 0).saturating_mul(s.into())) + // Measured: `7277 + r * (5 ±0) + s * (32 ±0)` + // Estimated: `11037` + // Minimum execution time: 73_785_000 picoseconds. + Weight::from_parts(73_606_063, 11037) + // Standard Error: 26_433 + .saturating_add(Weight::from_parts(230_018, 0).saturating_mul(r.into())) + // Standard Error: 5_157 + .saturating_add(Weight::from_parts(1_483_326, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into()))) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 99]`. fn add_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `475 + s * (36 ±0)` - // Estimated: `11003` - // Minimum execution time: 29_367_000 picoseconds. - Weight::from_parts(34_214_998, 11003) - // Standard Error: 1_522 - .saturating_add(Weight::from_parts(114_551, 0).saturating_mul(s.into())) + // Estimated: `11037` + // Minimum execution time: 27_304_000 picoseconds. + Weight::from_parts(31_677_329, 11037) + // Standard Error: 1_388 + .saturating_add(Weight::from_parts(102_193, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 100]`. fn rename_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `591 + s * (3 ±0)` - // Estimated: `11003` - // Minimum execution time: 12_384_000 picoseconds. - Weight::from_parts(14_417_903, 11003) - // Standard Error: 539 - .saturating_add(Weight::from_parts(38_371, 0).saturating_mul(s.into())) + // Estimated: `11037` + // Minimum execution time: 12_925_000 picoseconds. + Weight::from_parts(14_756_477, 11037) + // Standard Error: 646 + .saturating_add(Weight::from_parts(36_734, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Identity IdentityOf (r:1 w:0) - /// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen) - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 100]`. fn remove_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `638 + s * (35 ±0)` - // Estimated: `11003` - // Minimum execution time: 33_327_000 picoseconds. - Weight::from_parts(36_208_941, 11003) - // Standard Error: 1_240 - .saturating_add(Weight::from_parts(105_805, 0).saturating_mul(s.into())) + // Estimated: `11037` + // Minimum execution time: 30_475_000 picoseconds. + Weight::from_parts(33_821_774, 11037) + // Standard Error: 1_012 + .saturating_add(Weight::from_parts(87_704, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Identity SuperOf (r:1 w:1) - /// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: Identity SubsOf (r:1 w:1) - /// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 99]`. fn quit_sub(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `704 + s * (37 ±0)` // Estimated: `6723` - // Minimum execution time: 23_764_000 picoseconds. - Weight::from_parts(26_407_731, 6723) - // Standard Error: 1_025 - .saturating_add(Weight::from_parts(101_112, 0).saturating_mul(s.into())) + // Minimum execution time: 22_841_000 picoseconds. + Weight::from_parts(25_781_412, 6723) + // Standard Error: 1_145 + .saturating_add(Weight::from_parts(84_692, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -728,92 +723,88 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_873_000 picoseconds. - Weight::from_parts(13_873_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(RocksDbWeight::get().writes(1)) + // Minimum execution time: 6_983_000 picoseconds. + Weight::from_parts(7_388_000, 0) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: `Identity::UsernameAuthorities` (r:0 w:1) + /// Storage: `Identity::UsernameAuthorities` (r:1 w:1) /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn remove_username_authority() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 10_653_000 picoseconds. - Weight::from_parts(10_653_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(RocksDbWeight::get().writes(1)) + // Measured: `80` + // Estimated: `3517` + // Minimum execution time: 9_717_000 picoseconds. + Weight::from_parts(10_322_000, 3517) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Identity::UsernameAuthorities` (r:1 w:1) /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `Identity::AccountOfUsername` (r:1 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::PendingUsernames` (r:1 w:0) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) fn set_username_for() -> Weight { // Proof Size summary in bytes: // Measured: `80` // Estimated: `11037` - // Minimum execution time: 75_928_000 picoseconds. - Weight::from_parts(75_928_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(RocksDbWeight::get().reads(3)) - .saturating_add(RocksDbWeight::get().writes(3)) + // Minimum execution time: 70_714_000 picoseconds. + Weight::from_parts(74_990_000, 11037) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } /// Storage: `Identity::PendingUsernames` (r:1 w:1) - /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) /// Storage: `Identity::AccountOfUsername` (r:0 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) fn accept_username() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `115` // Estimated: `11037` - // Minimum execution time: 38_157_000 picoseconds. - Weight::from_parts(38_157_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(RocksDbWeight::get().reads(2)) - .saturating_add(RocksDbWeight::get().writes(3)) + // Minimum execution time: 21_996_000 picoseconds. + Weight::from_parts(22_611_000, 11037) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } /// Storage: `Identity::PendingUsernames` (r:1 w:1) - /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) fn remove_expired_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `106` - // Estimated: `3542` - // Minimum execution time: 46_821_000 picoseconds. - Weight::from_parts(46_821_000, 0) - .saturating_add(Weight::from_parts(0, 3542)) - .saturating_add(RocksDbWeight::get().reads(1)) - .saturating_add(RocksDbWeight::get().writes(1)) + // Measured: `115` + // Estimated: `3550` + // Minimum execution time: 16_880_000 picoseconds. + Weight::from_parts(28_371_000, 3550) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Identity::AccountOfUsername` (r:1 w:0) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) fn set_primary_username() -> Weight { // Proof Size summary in bytes: - // Measured: `247` + // Measured: `257` // Estimated: `11037` - // Minimum execution time: 22_515_000 picoseconds. - Weight::from_parts(22_515_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(RocksDbWeight::get().reads(2)) - .saturating_add(RocksDbWeight::get().writes(1)) + // Minimum execution time: 16_771_000 picoseconds. + Weight::from_parts(17_333_000, 11037) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Identity::AccountOfUsername` (r:1 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:0) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) fn remove_dangling_username() -> Weight { // Proof Size summary in bytes: - // Measured: `126` + // Measured: `98` // Estimated: `11037` - // Minimum execution time: 15_997_000 picoseconds. - Weight::from_parts(15_997_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(RocksDbWeight::get().reads(2)) - .saturating_add(RocksDbWeight::get().writes(1)) + // Minimum execution time: 12_017_000 picoseconds. + Weight::from_parts(12_389_000, 11037) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } } diff --git a/substrate/frame/im-online/src/weights.rs b/substrate/frame/im-online/src/weights.rs index c3db02af2578209d9ab97a777ef4a7447d45b738..105a36fb209fe40af3450dc03bd3ad51686613fd 100644 --- a/substrate/frame/im-online/src/weights.rs +++ b/substrate/frame/im-online/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_im_online +//! Autogenerated weights for `pallet_im_online` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/im-online/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/im-online/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,60 +49,60 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_im_online. +/// Weight functions needed for `pallet_im_online`. pub trait WeightInfo { fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight; } -/// Weights for pallet_im_online using the Substrate node and recommended hardware. +/// Weights for `pallet_im_online` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Session Validators (r:1 w:0) - /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Session CurrentIndex (r:1 w:0) - /// Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ImOnline Keys (r:1 w:0) - /// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) - /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(25), added: 2500, mode: MaxEncodedLen) - /// Storage: ImOnline AuthoredBlocks (r:1 w:0) - /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Session::CurrentIndex` (r:1 w:0) + /// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ImOnline::Keys` (r:1 w:0) + /// Proof: `ImOnline::Keys` (`max_values`: Some(1), `max_size`: Some(320002), added: 320497, mode: `MaxEncodedLen`) + /// Storage: `ImOnline::ReceivedHeartbeats` (r:1 w:1) + /// Proof: `ImOnline::ReceivedHeartbeats` (`max_values`: None, `max_size`: Some(25), added: 2500, mode: `MaxEncodedLen`) + /// Storage: `ImOnline::AuthoredBlocks` (r:1 w:0) + /// Proof: `ImOnline::AuthoredBlocks` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// The range of component `k` is `[1, 1000]`. fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `295 + k * (32 ±0)` + // Measured: `327 + k * (32 ±0)` // Estimated: `321487 + k * (1761 ±0)` - // Minimum execution time: 80_568_000 picoseconds. - Weight::from_parts(95_175_595, 321487) - // Standard Error: 627 - .saturating_add(Weight::from_parts(39_094, 0).saturating_mul(k.into())) + // Minimum execution time: 64_011_000 picoseconds. + Weight::from_parts(80_632_380, 321487) + // Standard Error: 676 + .saturating_add(Weight::from_parts(34_921, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Session Validators (r:1 w:0) - /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Session CurrentIndex (r:1 w:0) - /// Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ImOnline Keys (r:1 w:0) - /// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) - /// Storage: ImOnline ReceivedHeartbeats (r:1 w:1) - /// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(25), added: 2500, mode: MaxEncodedLen) - /// Storage: ImOnline AuthoredBlocks (r:1 w:0) - /// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Session::CurrentIndex` (r:1 w:0) + /// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ImOnline::Keys` (r:1 w:0) + /// Proof: `ImOnline::Keys` (`max_values`: Some(1), `max_size`: Some(320002), added: 320497, mode: `MaxEncodedLen`) + /// Storage: `ImOnline::ReceivedHeartbeats` (r:1 w:1) + /// Proof: `ImOnline::ReceivedHeartbeats` (`max_values`: None, `max_size`: Some(25), added: 2500, mode: `MaxEncodedLen`) + /// Storage: `ImOnline::AuthoredBlocks` (r:1 w:0) + /// Proof: `ImOnline::AuthoredBlocks` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// The range of component `k` is `[1, 1000]`. fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `295 + k * (32 ±0)` + // Measured: `327 + k * (32 ±0)` // Estimated: `321487 + k * (1761 ±0)` - // Minimum execution time: 80_568_000 picoseconds. - Weight::from_parts(95_175_595, 321487) - // Standard Error: 627 - .saturating_add(Weight::from_parts(39_094, 0).saturating_mul(k.into())) + // Minimum execution time: 64_011_000 picoseconds. + Weight::from_parts(80_632_380, 321487) + // Standard Error: 676 + .saturating_add(Weight::from_parts(34_921, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into())) diff --git a/substrate/frame/indices/src/weights.rs b/substrate/frame/indices/src/weights.rs index d081cc738b1dbe6c1991b30ccb454307e4ca19ab..e1bc90c9b12840b4561731e964ab16adb58ddf92 100644 --- a/substrate/frame/indices/src/weights.rs +++ b/substrate/frame/indices/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_indices +//! Autogenerated weights for `pallet_indices` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/indices/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/indices/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_indices. +/// Weight functions needed for `pallet_indices`. pub trait WeightInfo { fn claim() -> Weight; fn transfer() -> Weight; @@ -59,128 +58,128 @@ pub trait WeightInfo { fn freeze() -> Weight; } -/// Weights for pallet_indices using the Substrate node and recommended hardware. +/// Weights for `pallet_indices` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn claim() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3534` - // Minimum execution time: 25_491_000 picoseconds. - Weight::from_parts(26_456_000, 3534) + // Minimum execution time: 22_026_000 picoseconds. + Weight::from_parts(22_522_000, 3534) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: // Measured: `275` // Estimated: `3593` - // Minimum execution time: 38_027_000 picoseconds. - Weight::from_parts(38_749_000, 3593) + // Minimum execution time: 34_160_000 picoseconds. + Weight::from_parts(35_138_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn free() -> Weight { // Proof Size summary in bytes: // Measured: `172` // Estimated: `3534` - // Minimum execution time: 26_652_000 picoseconds. - Weight::from_parts(27_273_000, 3534) + // Minimum execution time: 23_736_000 picoseconds. + Weight::from_parts(24_247_000, 3534) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `275` // Estimated: `3593` - // Minimum execution time: 29_464_000 picoseconds. - Weight::from_parts(30_959_000, 3593) + // Minimum execution time: 25_810_000 picoseconds. + Weight::from_parts(26_335_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn freeze() -> Weight { // Proof Size summary in bytes: // Measured: `172` // Estimated: `3534` - // Minimum execution time: 29_015_000 picoseconds. - Weight::from_parts(29_714_000, 3534) + // Minimum execution time: 24_502_000 picoseconds. + Weight::from_parts(25_425_000, 3534) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn claim() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3534` - // Minimum execution time: 25_491_000 picoseconds. - Weight::from_parts(26_456_000, 3534) + // Minimum execution time: 22_026_000 picoseconds. + Weight::from_parts(22_522_000, 3534) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: // Measured: `275` // Estimated: `3593` - // Minimum execution time: 38_027_000 picoseconds. - Weight::from_parts(38_749_000, 3593) + // Minimum execution time: 34_160_000 picoseconds. + Weight::from_parts(35_138_000, 3593) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn free() -> Weight { // Proof Size summary in bytes: // Measured: `172` // Estimated: `3534` - // Minimum execution time: 26_652_000 picoseconds. - Weight::from_parts(27_273_000, 3534) + // Minimum execution time: 23_736_000 picoseconds. + Weight::from_parts(24_247_000, 3534) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `275` // Estimated: `3593` - // Minimum execution time: 29_464_000 picoseconds. - Weight::from_parts(30_959_000, 3593) + // Minimum execution time: 25_810_000 picoseconds. + Weight::from_parts(26_335_000, 3593) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Indices Accounts (r:1 w:1) - /// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Indices::Accounts` (r:1 w:1) + /// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn freeze() -> Weight { // Proof Size summary in bytes: // Measured: `172` // Estimated: `3534` - // Minimum execution time: 29_015_000 picoseconds. - Weight::from_parts(29_714_000, 3534) + // Minimum execution time: 24_502_000 picoseconds. + Weight::from_parts(25_425_000, 3534) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/lottery/src/weights.rs b/substrate/frame/lottery/src/weights.rs index 3b4e562375345befa93f431145a2aff776ec7517..0ab7f64509cdec181da5abff26c94a364d689ccb 100644 --- a/substrate/frame/lottery/src/weights.rs +++ b/substrate/frame/lottery/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_lottery +//! Autogenerated weights for `pallet_lottery` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/lottery/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/lottery/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_lottery. +/// Weight functions needed for `pallet_lottery`. pub trait WeightInfo { fn buy_ticket() -> Weight; fn set_calls(n: u32, ) -> Weight; @@ -60,214 +59,222 @@ pub trait WeightInfo { fn on_initialize_repeat() -> Weight; } -/// Weights for pallet_lottery using the Substrate node and recommended hardware. +/// Weights for `pallet_lottery` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Lottery Lottery (r:1 w:0) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: Lottery CallIndices (r:1 w:0) - /// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen) - /// Storage: Lottery TicketsCount (r:1 w:1) - /// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Lottery Participants (r:1 w:1) - /// Proof: Lottery Participants (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) - /// Storage: Lottery LotteryIndex (r:1 w:0) - /// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Lottery Tickets (r:0 w:1) - /// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Lottery` (r:1 w:0) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `Lottery::CallIndices` (r:1 w:0) + /// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`) + /// Storage: `Lottery::TicketsCount` (r:1 w:1) + /// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Participants` (r:1 w:1) + /// Proof: `Lottery::Participants` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// Storage: `Lottery::LotteryIndex` (r:1 w:0) + /// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Tickets` (r:0 w:1) + /// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) fn buy_ticket() -> Weight { // Proof Size summary in bytes: - // Measured: `452` - // Estimated: `3593` - // Minimum execution time: 60_298_000 picoseconds. - Weight::from_parts(62_058_000, 3593) - .saturating_add(T::DbWeight::get().reads(6_u64)) + // Measured: `492` + // Estimated: `3997` + // Minimum execution time: 60_979_000 picoseconds. + Weight::from_parts(63_452_000, 3997) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Lottery CallIndices (r:0 w:1) - /// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen) + /// Storage: `Lottery::CallIndices` (r:0 w:1) + /// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 10]`. fn set_calls(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_291_000 picoseconds. - Weight::from_parts(8_178_186, 0) - // Standard Error: 3_048 - .saturating_add(Weight::from_parts(330_871, 0).saturating_mul(n.into())) + // Minimum execution time: 5_245_000 picoseconds. + Weight::from_parts(6_113_777, 0) + // Standard Error: 3_280 + .saturating_add(Weight::from_parts(349_366, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: Lottery LotteryIndex (r:1 w:1) - /// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `Lottery::LotteryIndex` (r:1 w:1) + /// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn start_lottery() -> Weight { // Proof Size summary in bytes: - // Measured: `161` + // Measured: `194` // Estimated: `3593` - // Minimum execution time: 36_741_000 picoseconds. - Weight::from_parts(38_288_000, 3593) + // Minimum execution time: 29_131_000 picoseconds. + Weight::from_parts(29_722_000, 3593) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) fn stop_repeat() -> Weight { // Proof Size summary in bytes: - // Measured: `219` + // Measured: `252` // Estimated: `1514` - // Minimum execution time: 7_270_000 picoseconds. - Weight::from_parts(7_578_000, 1514) + // Minimum execution time: 6_413_000 picoseconds. + Weight::from_parts(6_702_000, 1514) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0) - /// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen) - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Lottery TicketsCount (r:1 w:1) - /// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Lottery Tickets (r:1 w:0) - /// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0) + /// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Lottery::TicketsCount` (r:1 w:1) + /// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Tickets` (r:1 w:0) + /// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) fn on_initialize_end() -> Weight { // Proof Size summary in bytes: - // Measured: `558` + // Measured: `591` // Estimated: `6196` - // Minimum execution time: 76_611_000 picoseconds. - Weight::from_parts(78_107_000, 6196) + // Minimum execution time: 65_913_000 picoseconds. + Weight::from_parts(66_864_000, 6196) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0) - /// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen) - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Lottery TicketsCount (r:1 w:1) - /// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Lottery Tickets (r:1 w:0) - /// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) - /// Storage: Lottery LotteryIndex (r:1 w:1) - /// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0) + /// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Lottery::TicketsCount` (r:1 w:1) + /// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Tickets` (r:1 w:0) + /// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `Lottery::LotteryIndex` (r:1 w:1) + /// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn on_initialize_repeat() -> Weight { // Proof Size summary in bytes: - // Measured: `558` + // Measured: `591` // Estimated: `6196` - // Minimum execution time: 78_731_000 picoseconds. - Weight::from_parts(80_248_000, 6196) + // Minimum execution time: 66_950_000 picoseconds. + Weight::from_parts(68_405_000, 6196) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Lottery Lottery (r:1 w:0) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: Lottery CallIndices (r:1 w:0) - /// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen) - /// Storage: Lottery TicketsCount (r:1 w:1) - /// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Lottery Participants (r:1 w:1) - /// Proof: Lottery Participants (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) - /// Storage: Lottery LotteryIndex (r:1 w:0) - /// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Lottery Tickets (r:0 w:1) - /// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Lottery` (r:1 w:0) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `Lottery::CallIndices` (r:1 w:0) + /// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`) + /// Storage: `Lottery::TicketsCount` (r:1 w:1) + /// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Participants` (r:1 w:1) + /// Proof: `Lottery::Participants` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// Storage: `Lottery::LotteryIndex` (r:1 w:0) + /// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Tickets` (r:0 w:1) + /// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) fn buy_ticket() -> Weight { // Proof Size summary in bytes: - // Measured: `452` - // Estimated: `3593` - // Minimum execution time: 60_298_000 picoseconds. - Weight::from_parts(62_058_000, 3593) - .saturating_add(RocksDbWeight::get().reads(6_u64)) + // Measured: `492` + // Estimated: `3997` + // Minimum execution time: 60_979_000 picoseconds. + Weight::from_parts(63_452_000, 3997) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Lottery CallIndices (r:0 w:1) - /// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen) + /// Storage: `Lottery::CallIndices` (r:0 w:1) + /// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 10]`. fn set_calls(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_291_000 picoseconds. - Weight::from_parts(8_178_186, 0) - // Standard Error: 3_048 - .saturating_add(Weight::from_parts(330_871, 0).saturating_mul(n.into())) + // Minimum execution time: 5_245_000 picoseconds. + Weight::from_parts(6_113_777, 0) + // Standard Error: 3_280 + .saturating_add(Weight::from_parts(349_366, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: Lottery LotteryIndex (r:1 w:1) - /// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `Lottery::LotteryIndex` (r:1 w:1) + /// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn start_lottery() -> Weight { // Proof Size summary in bytes: - // Measured: `161` + // Measured: `194` // Estimated: `3593` - // Minimum execution time: 36_741_000 picoseconds. - Weight::from_parts(38_288_000, 3593) + // Minimum execution time: 29_131_000 picoseconds. + Weight::from_parts(29_722_000, 3593) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) fn stop_repeat() -> Weight { // Proof Size summary in bytes: - // Measured: `219` + // Measured: `252` // Estimated: `1514` - // Minimum execution time: 7_270_000 picoseconds. - Weight::from_parts(7_578_000, 1514) + // Minimum execution time: 6_413_000 picoseconds. + Weight::from_parts(6_702_000, 1514) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0) - /// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen) - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Lottery TicketsCount (r:1 w:1) - /// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Lottery Tickets (r:1 w:0) - /// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0) + /// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Lottery::TicketsCount` (r:1 w:1) + /// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Tickets` (r:1 w:0) + /// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) fn on_initialize_end() -> Weight { // Proof Size summary in bytes: - // Measured: `558` + // Measured: `591` // Estimated: `6196` - // Minimum execution time: 76_611_000 picoseconds. - Weight::from_parts(78_107_000, 6196) + // Minimum execution time: 65_913_000 picoseconds. + Weight::from_parts(66_864_000, 6196) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0) - /// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen) - /// Storage: Lottery Lottery (r:1 w:1) - /// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen) - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Lottery TicketsCount (r:1 w:1) - /// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Lottery Tickets (r:1 w:0) - /// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) - /// Storage: Lottery LotteryIndex (r:1 w:1) - /// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0) + /// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Lottery` (r:1 w:1) + /// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Lottery::TicketsCount` (r:1 w:1) + /// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Lottery::Tickets` (r:1 w:0) + /// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `Lottery::LotteryIndex` (r:1 w:1) + /// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn on_initialize_repeat() -> Weight { // Proof Size summary in bytes: - // Measured: `558` + // Measured: `591` // Estimated: `6196` - // Minimum execution time: 78_731_000 picoseconds. - Weight::from_parts(80_248_000, 6196) + // Minimum execution time: 66_950_000 picoseconds. + Weight::from_parts(68_405_000, 6196) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } diff --git a/substrate/frame/membership/src/weights.rs b/substrate/frame/membership/src/weights.rs index 2d18848b89ab5b55c22235282fb78b514f7ed937..10e9c9afa5828c10565bfae7be2058e7bd56cc27 100644 --- a/substrate/frame/membership/src/weights.rs +++ b/substrate/frame/membership/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_membership +//! Autogenerated weights for `pallet_membership` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/membership/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/membership/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_membership. +/// Weight functions needed for `pallet_membership`. pub trait WeightInfo { fn add_member(m: u32, ) -> Weight; fn remove_member(m: u32, ) -> Weight; @@ -61,299 +60,299 @@ pub trait WeightInfo { fn clear_prime() -> Weight; } -/// Weights for pallet_membership using the Substrate node and recommended hardware. +/// Weights for `pallet_membership` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 99]`. fn add_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `208 + m * (64 ±0)` + // Measured: `207 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 17_040_000 picoseconds. - Weight::from_parts(18_344_571, 4687) - // Standard Error: 847 - .saturating_add(Weight::from_parts(50_842, 0).saturating_mul(m.into())) + // Minimum execution time: 12_827_000 picoseconds. + Weight::from_parts(13_743_651, 4687) + // Standard Error: 622 + .saturating_add(Weight::from_parts(35_417, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:0) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:0) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[2, 100]`. fn remove_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 20_088_000 picoseconds. - Weight::from_parts(21_271_384, 4687) - // Standard Error: 786 - .saturating_add(Weight::from_parts(44_806, 0).saturating_mul(m.into())) + // Minimum execution time: 15_197_000 picoseconds. + Weight::from_parts(16_172_409, 4687) + // Standard Error: 650 + .saturating_add(Weight::from_parts(35_790, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:0) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:0) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[2, 100]`. fn swap_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 20_308_000 picoseconds. - Weight::from_parts(21_469_843, 4687) - // Standard Error: 782 - .saturating_add(Weight::from_parts(56_893, 0).saturating_mul(m.into())) + // Minimum execution time: 15_558_000 picoseconds. + Weight::from_parts(16_370_827, 4687) + // Standard Error: 603 + .saturating_add(Weight::from_parts(45_739, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:0) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:0) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. fn reset_members(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_464_000 picoseconds. - Weight::from_parts(21_223_702, 4687) - // Standard Error: 1_068 - .saturating_add(Weight::from_parts(165_438, 0).saturating_mul(m.into())) + // Minimum execution time: 15_086_000 picoseconds. + Weight::from_parts(16_444_101, 4687) + // Standard Error: 967 + .saturating_add(Weight::from_parts(143_947, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:1) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:1) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. fn change_key(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 20_965_000 picoseconds. - Weight::from_parts(22_551_007, 4687) - // Standard Error: 860 - .saturating_add(Weight::from_parts(52_397, 0).saturating_mul(m.into())) + // Minimum execution time: 16_146_000 picoseconds. + Weight::from_parts(17_269_755, 4687) + // Standard Error: 660 + .saturating_add(Weight::from_parts(42_082, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:0) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalMembership Prime (r:0 w:1) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:0) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalMembership::Prime` (r:0 w:1) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. fn set_prime(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `32 + m * (32 ±0)` + // Measured: `31 + m * (32 ±0)` // Estimated: `4687 + m * (32 ±0)` - // Minimum execution time: 7_481_000 picoseconds. - Weight::from_parts(7_959_053, 4687) - // Standard Error: 364 - .saturating_add(Weight::from_parts(18_653, 0).saturating_mul(m.into())) + // Minimum execution time: 5_937_000 picoseconds. + Weight::from_parts(6_501_085, 4687) + // Standard Error: 323 + .saturating_add(Weight::from_parts(18_285, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Prime (r:0 w:1) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Prime` (r:0 w:1) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn clear_prime() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_373_000 picoseconds. - Weight::from_parts(3_750_452, 0) + // Minimum execution time: 2_533_000 picoseconds. + Weight::from_parts(2_807_000, 0) .saturating_add(T::DbWeight::get().writes(2_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 99]`. fn add_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `208 + m * (64 ±0)` + // Measured: `207 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 17_040_000 picoseconds. - Weight::from_parts(18_344_571, 4687) - // Standard Error: 847 - .saturating_add(Weight::from_parts(50_842, 0).saturating_mul(m.into())) + // Minimum execution time: 12_827_000 picoseconds. + Weight::from_parts(13_743_651, 4687) + // Standard Error: 622 + .saturating_add(Weight::from_parts(35_417, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:0) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:0) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[2, 100]`. fn remove_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 20_088_000 picoseconds. - Weight::from_parts(21_271_384, 4687) - // Standard Error: 786 - .saturating_add(Weight::from_parts(44_806, 0).saturating_mul(m.into())) + // Minimum execution time: 15_197_000 picoseconds. + Weight::from_parts(16_172_409, 4687) + // Standard Error: 650 + .saturating_add(Weight::from_parts(35_790, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:0) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:0) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[2, 100]`. fn swap_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 20_308_000 picoseconds. - Weight::from_parts(21_469_843, 4687) - // Standard Error: 782 - .saturating_add(Weight::from_parts(56_893, 0).saturating_mul(m.into())) + // Minimum execution time: 15_558_000 picoseconds. + Weight::from_parts(16_370_827, 4687) + // Standard Error: 603 + .saturating_add(Weight::from_parts(45_739, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:0) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:0) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. fn reset_members(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 19_464_000 picoseconds. - Weight::from_parts(21_223_702, 4687) - // Standard Error: 1_068 - .saturating_add(Weight::from_parts(165_438, 0).saturating_mul(m.into())) + // Minimum execution time: 15_086_000 picoseconds. + Weight::from_parts(16_444_101, 4687) + // Standard Error: 967 + .saturating_add(Weight::from_parts(143_947, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:1) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Proposals (r:1 w:0) - /// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalMembership Prime (r:1 w:1) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Members (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:1) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalMembership::Prime` (r:1 w:1) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Members` (r:0 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. fn change_key(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `312 + m * (64 ±0)` + // Measured: `311 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 20_965_000 picoseconds. - Weight::from_parts(22_551_007, 4687) - // Standard Error: 860 - .saturating_add(Weight::from_parts(52_397, 0).saturating_mul(m.into())) + // Minimum execution time: 16_146_000 picoseconds. + Weight::from_parts(17_269_755, 4687) + // Standard Error: 660 + .saturating_add(Weight::from_parts(42_082, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Members (r:1 w:0) - /// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) - /// Storage: TechnicalMembership Prime (r:0 w:1) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Members` (r:1 w:0) + /// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`) + /// Storage: `TechnicalMembership::Prime` (r:0 w:1) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[1, 100]`. fn set_prime(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `32 + m * (32 ±0)` + // Measured: `31 + m * (32 ±0)` // Estimated: `4687 + m * (32 ±0)` - // Minimum execution time: 7_481_000 picoseconds. - Weight::from_parts(7_959_053, 4687) - // Standard Error: 364 - .saturating_add(Weight::from_parts(18_653, 0).saturating_mul(m.into())) + // Minimum execution time: 5_937_000 picoseconds. + Weight::from_parts(6_501_085, 4687) + // Standard Error: 323 + .saturating_add(Weight::from_parts(18_285, 0).saturating_mul(m.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: TechnicalMembership Prime (r:0 w:1) - /// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TechnicalCommittee Prime (r:0 w:1) - /// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `TechnicalMembership::Prime` (r:0 w:1) + /// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn clear_prime() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_373_000 picoseconds. - Weight::from_parts(3_750_452, 0) + // Minimum execution time: 2_533_000 picoseconds. + Weight::from_parts(2_807_000, 0) .saturating_add(RocksDbWeight::get().writes(2_u64)) } } diff --git a/substrate/frame/message-queue/src/weights.rs b/substrate/frame/message-queue/src/weights.rs index e86f23e274ff246aa9f557626e06a42a4930154c..46fd52194bf275a2bcb0f7a9f0afcacce12422f6 100644 --- a/substrate/frame/message-queue/src/weights.rs +++ b/substrate/frame/message-queue/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_message_queue +//! Autogenerated weights for `pallet_message_queue` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/message-queue/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/message-queue/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_message_queue. +/// Weight functions needed for `pallet_message_queue`. pub trait WeightInfo { fn ready_ring_knit() -> Weight; fn ready_ring_unknit() -> Weight; @@ -64,246 +63,256 @@ pub trait WeightInfo { fn execute_overweight_page_updated() -> Weight; } -/// Weights for pallet_message_queue using the Substrate node and recommended hardware. +/// Weights for `pallet_message_queue` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: MessageQueue ServiceHead (r:1 w:0) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:0) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:2 w:2) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn ready_ring_knit() -> Weight { // Proof Size summary in bytes: - // Measured: `267` + // Measured: `301` // Estimated: `6038` - // Minimum execution time: 12_025_000 picoseconds. - Weight::from_parts(12_597_000, 6038) + // Minimum execution time: 11_674_000 picoseconds. + Weight::from_parts(12_105_000, 6038) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:2 w:2) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn ready_ring_unknit() -> Weight { // Proof Size summary in bytes: - // Measured: `267` + // Measured: `301` // Estimated: `6038` - // Minimum execution time: 11_563_000 picoseconds. - Weight::from_parts(11_785_000, 6038) + // Minimum execution time: 10_262_000 picoseconds. + Weight::from_parts(10_654_000, 6038) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn service_queue_base() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3514` - // Minimum execution time: 4_467_000 picoseconds. - Weight::from_parts(4_655_000, 3514) + // Minimum execution time: 4_363_000 picoseconds. + Weight::from_parts(4_589_000, 3514) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn service_page_base_completion() -> Weight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `69049` - // Minimum execution time: 6_103_000 picoseconds. - Weight::from_parts(6_254_000, 69049) + // Minimum execution time: 6_220_000 picoseconds. + Weight::from_parts(6_622_000, 69049) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn service_page_base_no_completion() -> Weight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `69049` - // Minimum execution time: 6_320_000 picoseconds. - Weight::from_parts(6_565_000, 69049) + // Minimum execution time: 6_342_000 picoseconds. + Weight::from_parts(6_727_000, 69049) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `MessageQueue::BookStateFor` (r:0 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn service_page_item() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 66_062_000 picoseconds. - Weight::from_parts(66_371_000, 0) + // Minimum execution time: 112_729_000 picoseconds. + Weight::from_parts(114_076_000, 0) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: MessageQueue BookStateFor (r:1 w:0) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:0) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn bump_service_head() -> Weight { // Proof Size summary in bytes: - // Measured: `174` + // Measured: `246` // Estimated: `3514` - // Minimum execution time: 6_788_000 picoseconds. - Weight::from_parts(7_176_000, 3514) + // Minimum execution time: 6_836_000 picoseconds. + Weight::from_parts(6_986_000, 3514) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn reap_page() -> Weight { // Proof Size summary in bytes: // Measured: `65744` // Estimated: `69049` - // Minimum execution time: 52_865_000 picoseconds. - Weight::from_parts(54_398_000, 69049) + // Minimum execution time: 50_733_000 picoseconds. + Weight::from_parts(51_649_000, 69049) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn execute_overweight_page_removed() -> Weight { // Proof Size summary in bytes: // Measured: `65744` // Estimated: `69049` - // Minimum execution time: 69_168_000 picoseconds. - Weight::from_parts(70_560_000, 69049) + // Minimum execution time: 67_335_000 picoseconds. + Weight::from_parts(68_347_000, 69049) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn execute_overweight_page_updated() -> Weight { // Proof Size summary in bytes: // Measured: `65744` // Estimated: `69049` - // Minimum execution time: 80_947_000 picoseconds. - Weight::from_parts(82_715_000, 69049) + // Minimum execution time: 77_610_000 picoseconds. + Weight::from_parts(80_338_000, 69049) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: MessageQueue ServiceHead (r:1 w:0) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:0) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:2 w:2) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn ready_ring_knit() -> Weight { // Proof Size summary in bytes: - // Measured: `267` + // Measured: `301` // Estimated: `6038` - // Minimum execution time: 12_025_000 picoseconds. - Weight::from_parts(12_597_000, 6038) + // Minimum execution time: 11_674_000 picoseconds. + Weight::from_parts(12_105_000, 6038) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue BookStateFor (r:2 w:2) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:2 w:2) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn ready_ring_unknit() -> Weight { // Proof Size summary in bytes: - // Measured: `267` + // Measured: `301` // Estimated: `6038` - // Minimum execution time: 11_563_000 picoseconds. - Weight::from_parts(11_785_000, 6038) + // Minimum execution time: 10_262_000 picoseconds. + Weight::from_parts(10_654_000, 6038) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn service_queue_base() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3514` - // Minimum execution time: 4_467_000 picoseconds. - Weight::from_parts(4_655_000, 3514) + // Minimum execution time: 4_363_000 picoseconds. + Weight::from_parts(4_589_000, 3514) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn service_page_base_completion() -> Weight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `69049` - // Minimum execution time: 6_103_000 picoseconds. - Weight::from_parts(6_254_000, 69049) + // Minimum execution time: 6_220_000 picoseconds. + Weight::from_parts(6_622_000, 69049) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn service_page_base_no_completion() -> Weight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `69049` - // Minimum execution time: 6_320_000 picoseconds. - Weight::from_parts(6_565_000, 69049) + // Minimum execution time: 6_342_000 picoseconds. + Weight::from_parts(6_727_000, 69049) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } + /// Storage: `MessageQueue::BookStateFor` (r:0 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn service_page_item() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 66_062_000 picoseconds. - Weight::from_parts(66_371_000, 0) + // Minimum execution time: 112_729_000 picoseconds. + Weight::from_parts(114_076_000, 0) + .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue ServiceHead (r:1 w:1) - /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: MessageQueue BookStateFor (r:1 w:0) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:0) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn bump_service_head() -> Weight { // Proof Size summary in bytes: - // Measured: `174` + // Measured: `246` // Estimated: `3514` - // Minimum execution time: 6_788_000 picoseconds. - Weight::from_parts(7_176_000, 3514) + // Minimum execution time: 6_836_000 picoseconds. + Weight::from_parts(6_986_000, 3514) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn reap_page() -> Weight { // Proof Size summary in bytes: // Measured: `65744` // Estimated: `69049` - // Minimum execution time: 52_865_000 picoseconds. - Weight::from_parts(54_398_000, 69049) + // Minimum execution time: 50_733_000 picoseconds. + Weight::from_parts(51_649_000, 69049) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn execute_overweight_page_removed() -> Weight { // Proof Size summary in bytes: // Measured: `65744` // Estimated: `69049` - // Minimum execution time: 69_168_000 picoseconds. - Weight::from_parts(70_560_000, 69049) + // Minimum execution time: 67_335_000 picoseconds. + Weight::from_parts(68_347_000, 69049) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: MessageQueue BookStateFor (r:1 w:1) - /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen) - /// Storage: MessageQueue Pages (r:1 w:1) - /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`) fn execute_overweight_page_updated() -> Weight { // Proof Size summary in bytes: // Measured: `65744` // Estimated: `69049` - // Minimum execution time: 80_947_000 picoseconds. - Weight::from_parts(82_715_000, 69049) + // Minimum execution time: 77_610_000 picoseconds. + Weight::from_parts(80_338_000, 69049) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } diff --git a/substrate/frame/migrations/src/weights.rs b/substrate/frame/migrations/src/weights.rs index c9b63258c44b7948f113161be6452b9a0f7348cc..6f5ac97153764b49a554fb2d66b3c73b118fe6ad 100644 --- a/substrate/frame/migrations/src/weights.rs +++ b/substrate/frame/migrations/src/weights.rs @@ -17,26 +17,29 @@ //! Autogenerated weights for `pallet_migrations` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-12-04, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `loud1`, CPU: `AMD EPYC 7282 16-Core Processor` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/release/substrate-node +// ./target/production/substrate-node // benchmark // pallet -// --chain -// dev -// --pallet -// pallet-migrations -// --extrinsic -// -// --output -// weight.rs -// --template -// ../../polkadot-sdk/substrate/.maintain/frame-weight-template.hbs +// --chain=dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_migrations +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --output=./substrate/frame/migrations/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -71,10 +74,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) fn onboard_new_mbms() -> Weight { // Proof Size summary in bytes: - // Measured: `243` + // Measured: `276` // Estimated: `67035` - // Minimum execution time: 13_980_000 picoseconds. - Weight::from_parts(14_290_000, 67035) + // Minimum execution time: 7_762_000 picoseconds. + Weight::from_parts(8_100_000, 67035) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -82,10 +85,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) fn progress_mbms_none() -> Weight { // Proof Size summary in bytes: - // Measured: `109` + // Measured: `142` // Estimated: `67035` - // Minimum execution time: 3_770_000 picoseconds. - Weight::from_parts(4_001_000, 67035) + // Minimum execution time: 2_077_000 picoseconds. + Weight::from_parts(2_138_000, 67035) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -96,8 +99,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `134` // Estimated: `3599` - // Minimum execution time: 10_900_000 picoseconds. - Weight::from_parts(11_251_000, 3599) + // Minimum execution time: 5_868_000 picoseconds. + Weight::from_parts(6_143_000, 3599) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -107,10 +110,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) fn exec_migration_skipped_historic() -> Weight { // Proof Size summary in bytes: - // Measured: `297` - // Estimated: `3762` - // Minimum execution time: 17_891_000 picoseconds. - Weight::from_parts(18_501_000, 3762) + // Measured: `330` + // Estimated: `3795` + // Minimum execution time: 10_283_000 picoseconds. + Weight::from_parts(10_964_000, 3795) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -119,10 +122,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) fn exec_migration_advance() -> Weight { // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3731` - // Minimum execution time: 18_271_000 picoseconds. - Weight::from_parts(18_740_000, 3731) + // Measured: `276` + // Estimated: `3741` + // Minimum execution time: 9_900_000 picoseconds. + Weight::from_parts(10_396_000, 3741) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -131,10 +134,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) fn exec_migration_complete() -> Weight { // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3731` - // Minimum execution time: 21_241_000 picoseconds. - Weight::from_parts(21_911_000, 3731) + // Measured: `276` + // Estimated: `3741` + // Minimum execution time: 11_411_000 picoseconds. + Weight::from_parts(11_956_000, 3741) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -146,10 +149,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) fn exec_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3731` - // Minimum execution time: 22_740_000 picoseconds. - Weight::from_parts(23_231_000, 3731) + // Measured: `276` + // Estimated: `3741` + // Minimum execution time: 12_398_000 picoseconds. + Weight::from_parts(12_910_000, 3741) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -157,8 +160,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 440_000 picoseconds. - Weight::from_parts(500_000, 0) + // Minimum execution time: 166_000 picoseconds. + Weight::from_parts(193_000, 0) } /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) @@ -166,8 +169,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_751_000 picoseconds. - Weight::from_parts(5_950_000, 0) + // Minimum execution time: 2_686_000 picoseconds. + Weight::from_parts(2_859_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) @@ -176,8 +179,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_350_000 picoseconds. - Weight::from_parts(6_560_000, 0) + // Minimum execution time: 3_070_000 picoseconds. + Weight::from_parts(3_250_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) @@ -186,10 +189,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) fn force_onboard_mbms() -> Weight { // Proof Size summary in bytes: - // Measured: `218` + // Measured: `251` // Estimated: `67035` - // Minimum execution time: 11_121_000 picoseconds. - Weight::from_parts(11_530_000, 67035) + // Minimum execution time: 5_901_000 picoseconds. + Weight::from_parts(6_320_000, 67035) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `MultiBlockMigrations::Historic` (r:256 w:256) @@ -197,12 +200,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[0, 256]`. fn clear_historic(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1089 + n * (271 ±0)` + // Measured: `1122 + n * (271 ±0)` // Estimated: `3834 + n * (2740 ±0)` - // Minimum execution time: 21_891_000 picoseconds. - Weight::from_parts(18_572_306, 3834) - // Standard Error: 3_236 - .saturating_add(Weight::from_parts(1_648_429, 0).saturating_mul(n.into())) + // Minimum execution time: 15_952_000 picoseconds. + Weight::from_parts(14_358_665, 3834) + // Standard Error: 3_358 + .saturating_add(Weight::from_parts(1_323_674, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -218,10 +221,10 @@ impl WeightInfo for () { /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) fn onboard_new_mbms() -> Weight { // Proof Size summary in bytes: - // Measured: `243` + // Measured: `276` // Estimated: `67035` - // Minimum execution time: 13_980_000 picoseconds. - Weight::from_parts(14_290_000, 67035) + // Minimum execution time: 7_762_000 picoseconds. + Weight::from_parts(8_100_000, 67035) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -229,10 +232,10 @@ impl WeightInfo for () { /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) fn progress_mbms_none() -> Weight { // Proof Size summary in bytes: - // Measured: `109` + // Measured: `142` // Estimated: `67035` - // Minimum execution time: 3_770_000 picoseconds. - Weight::from_parts(4_001_000, 67035) + // Minimum execution time: 2_077_000 picoseconds. + Weight::from_parts(2_138_000, 67035) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -243,8 +246,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `134` // Estimated: `3599` - // Minimum execution time: 10_900_000 picoseconds. - Weight::from_parts(11_251_000, 3599) + // Minimum execution time: 5_868_000 picoseconds. + Weight::from_parts(6_143_000, 3599) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -254,10 +257,10 @@ impl WeightInfo for () { /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) fn exec_migration_skipped_historic() -> Weight { // Proof Size summary in bytes: - // Measured: `297` - // Estimated: `3762` - // Minimum execution time: 17_891_000 picoseconds. - Weight::from_parts(18_501_000, 3762) + // Measured: `330` + // Estimated: `3795` + // Minimum execution time: 10_283_000 picoseconds. + Weight::from_parts(10_964_000, 3795) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -266,10 +269,10 @@ impl WeightInfo for () { /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) fn exec_migration_advance() -> Weight { // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3731` - // Minimum execution time: 18_271_000 picoseconds. - Weight::from_parts(18_740_000, 3731) + // Measured: `276` + // Estimated: `3741` + // Minimum execution time: 9_900_000 picoseconds. + Weight::from_parts(10_396_000, 3741) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) @@ -278,10 +281,10 @@ impl WeightInfo for () { /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) fn exec_migration_complete() -> Weight { // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3731` - // Minimum execution time: 21_241_000 picoseconds. - Weight::from_parts(21_911_000, 3731) + // Measured: `276` + // Estimated: `3741` + // Minimum execution time: 11_411_000 picoseconds. + Weight::from_parts(11_956_000, 3741) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -293,10 +296,10 @@ impl WeightInfo for () { /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) fn exec_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `243` - // Estimated: `3731` - // Minimum execution time: 22_740_000 picoseconds. - Weight::from_parts(23_231_000, 3731) + // Measured: `276` + // Estimated: `3741` + // Minimum execution time: 12_398_000 picoseconds. + Weight::from_parts(12_910_000, 3741) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -304,8 +307,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 440_000 picoseconds. - Weight::from_parts(500_000, 0) + // Minimum execution time: 166_000 picoseconds. + Weight::from_parts(193_000, 0) } /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) @@ -313,8 +316,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_751_000 picoseconds. - Weight::from_parts(5_950_000, 0) + // Minimum execution time: 2_686_000 picoseconds. + Weight::from_parts(2_859_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) @@ -323,8 +326,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_350_000 picoseconds. - Weight::from_parts(6_560_000, 0) + // Minimum execution time: 3_070_000 picoseconds. + Weight::from_parts(3_250_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) @@ -333,10 +336,10 @@ impl WeightInfo for () { /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) fn force_onboard_mbms() -> Weight { // Proof Size summary in bytes: - // Measured: `218` + // Measured: `251` // Estimated: `67035` - // Minimum execution time: 11_121_000 picoseconds. - Weight::from_parts(11_530_000, 67035) + // Minimum execution time: 5_901_000 picoseconds. + Weight::from_parts(6_320_000, 67035) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: `MultiBlockMigrations::Historic` (r:256 w:256) @@ -344,12 +347,12 @@ impl WeightInfo for () { /// The range of component `n` is `[0, 256]`. fn clear_historic(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1089 + n * (271 ±0)` + // Measured: `1122 + n * (271 ±0)` // Estimated: `3834 + n * (2740 ±0)` - // Minimum execution time: 21_891_000 picoseconds. - Weight::from_parts(18_572_306, 3834) - // Standard Error: 3_236 - .saturating_add(Weight::from_parts(1_648_429, 0).saturating_mul(n.into())) + // Minimum execution time: 15_952_000 picoseconds. + Weight::from_parts(14_358_665, 3834) + // Standard Error: 3_358 + .saturating_add(Weight::from_parts(1_323_674, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) diff --git a/substrate/frame/multisig/src/weights.rs b/substrate/frame/multisig/src/weights.rs index 7b87d258d383d43aaf8ef8aaddc0546c60b5813e..ac1c1b23b0302a886ea53e4b1effb875f267b996 100644 --- a/substrate/frame/multisig/src/weights.rs +++ b/substrate/frame/multisig/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_multisig +//! Autogenerated weights for `pallet_multisig` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/multisig/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/multisig/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_multisig. +/// Weight functions needed for `pallet_multisig`. pub trait WeightInfo { fn as_multi_threshold_1(z: u32, ) -> Weight; fn as_multi_create(s: u32, z: u32, ) -> Weight; @@ -61,220 +60,238 @@ pub trait WeightInfo { fn cancel_as_multi(s: u32, ) -> Weight; } -/// Weights for pallet_multisig using the Substrate node and recommended hardware. +/// Weights for `pallet_multisig` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_452_000 picoseconds. - Weight::from_parts(14_425_869, 0) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 20_302_000 picoseconds. + Weight::from_parts(21_362_808, 3997) // Standard Error: 4 - .saturating_add(Weight::from_parts(493, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(432, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 46_012_000 picoseconds. - Weight::from_parts(34_797_344, 6811) - // Standard Error: 833 - .saturating_add(Weight::from_parts(127_671, 0).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_498, 0).saturating_mul(z.into())) + // Minimum execution time: 41_140_000 picoseconds. + Weight::from_parts(31_518_927, 6811) + // Standard Error: 754 + .saturating_add(Weight::from_parts(115_804, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_442, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 29_834_000 picoseconds. - Weight::from_parts(20_189_154, 6811) - // Standard Error: 637 - .saturating_add(Weight::from_parts(110_080, 0).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_483, 0).saturating_mul(z.into())) + // Minimum execution time: 27_375_000 picoseconds. + Weight::from_parts(17_806_361, 6811) + // Standard Error: 501 + .saturating_add(Weight::from_parts(107_042, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_491, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `426 + s * (33 ±0)` + // Measured: `571 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 51_464_000 picoseconds. - Weight::from_parts(39_246_644, 6811) - // Standard Error: 1_251 - .saturating_add(Weight::from_parts(143_313, 0).saturating_mul(s.into())) - // Standard Error: 12 - .saturating_add(Weight::from_parts(1_523, 0).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 54_427_000 picoseconds. + Weight::from_parts(43_677_970, 6811) + // Standard Error: 1_342 + .saturating_add(Weight::from_parts(154_697, 0).saturating_mul(s.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(1_534, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 33_275_000 picoseconds. - Weight::from_parts(34_073_221, 6811) - // Standard Error: 1_163 - .saturating_add(Weight::from_parts(124_815, 0).saturating_mul(s.into())) + // Minimum execution time: 29_102_000 picoseconds. + Weight::from_parts(30_317_105, 6811) + // Standard Error: 903 + .saturating_add(Weight::from_parts(109_792, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 18_411_000 picoseconds. - Weight::from_parts(19_431_787, 6811) - // Standard Error: 694 - .saturating_add(Weight::from_parts(107_220, 0).saturating_mul(s.into())) + // Minimum execution time: 16_300_000 picoseconds. + Weight::from_parts(17_358_877, 6811) + // Standard Error: 522 + .saturating_add(Weight::from_parts(99_194, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `492 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 33_985_000 picoseconds. - Weight::from_parts(35_547_970, 6811) - // Standard Error: 1_135 - .saturating_add(Weight::from_parts(116_537, 0).saturating_mul(s.into())) + // Minimum execution time: 30_147_000 picoseconds. + Weight::from_parts(32_003_421, 6811) + // Standard Error: 1_077 + .saturating_add(Weight::from_parts(108_567, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 13_452_000 picoseconds. - Weight::from_parts(14_425_869, 0) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 20_302_000 picoseconds. + Weight::from_parts(21_362_808, 3997) // Standard Error: 4 - .saturating_add(Weight::from_parts(493, 0).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(432, 0).saturating_mul(z.into())) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 46_012_000 picoseconds. - Weight::from_parts(34_797_344, 6811) - // Standard Error: 833 - .saturating_add(Weight::from_parts(127_671, 0).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_parts(1_498, 0).saturating_mul(z.into())) + // Minimum execution time: 41_140_000 picoseconds. + Weight::from_parts(31_518_927, 6811) + // Standard Error: 754 + .saturating_add(Weight::from_parts(115_804, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_442, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 29_834_000 picoseconds. - Weight::from_parts(20_189_154, 6811) - // Standard Error: 637 - .saturating_add(Weight::from_parts(110_080, 0).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_483, 0).saturating_mul(z.into())) + // Minimum execution time: 27_375_000 picoseconds. + Weight::from_parts(17_806_361, 6811) + // Standard Error: 501 + .saturating_add(Weight::from_parts(107_042, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_491, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `426 + s * (33 ±0)` + // Measured: `571 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 51_464_000 picoseconds. - Weight::from_parts(39_246_644, 6811) - // Standard Error: 1_251 - .saturating_add(Weight::from_parts(143_313, 0).saturating_mul(s.into())) - // Standard Error: 12 - .saturating_add(Weight::from_parts(1_523, 0).saturating_mul(z.into())) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Minimum execution time: 54_427_000 picoseconds. + Weight::from_parts(43_677_970, 6811) + // Standard Error: 1_342 + .saturating_add(Weight::from_parts(154_697, 0).saturating_mul(s.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(1_534, 0).saturating_mul(z.into())) + .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `301 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 33_275_000 picoseconds. - Weight::from_parts(34_073_221, 6811) - // Standard Error: 1_163 - .saturating_add(Weight::from_parts(124_815, 0).saturating_mul(s.into())) + // Minimum execution time: 29_102_000 picoseconds. + Weight::from_parts(30_317_105, 6811) + // Standard Error: 903 + .saturating_add(Weight::from_parts(109_792, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `320` // Estimated: `6811` - // Minimum execution time: 18_411_000 picoseconds. - Weight::from_parts(19_431_787, 6811) - // Standard Error: 694 - .saturating_add(Weight::from_parts(107_220, 0).saturating_mul(s.into())) + // Minimum execution time: 16_300_000 picoseconds. + Weight::from_parts(17_358_877, 6811) + // Standard Error: 522 + .saturating_add(Weight::from_parts(99_194, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Multisig Multisigs (r:1 w:1) - /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `492 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 33_985_000 picoseconds. - Weight::from_parts(35_547_970, 6811) - // Standard Error: 1_135 - .saturating_add(Weight::from_parts(116_537, 0).saturating_mul(s.into())) + // Minimum execution time: 30_147_000 picoseconds. + Weight::from_parts(32_003_421, 6811) + // Standard Error: 1_077 + .saturating_add(Weight::from_parts(108_567, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/nft-fractionalization/src/weights.rs b/substrate/frame/nft-fractionalization/src/weights.rs index ebb4aa0fbcfba2df71b6b7ecb9368540ef8b9ffa..bee6484d856e5b1c1babf2b407a36c3bca327ca6 100644 --- a/substrate/frame/nft-fractionalization/src/weights.rs +++ b/substrate/frame/nft-fractionalization/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_nft_fractionalization +//! Autogenerated weights for `pallet_nft_fractionalization` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/nft-fractionalization/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/nft-fractionalization/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,136 +49,136 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_nft_fractionalization. +/// Weight functions needed for `pallet_nft_fractionalization`. pub trait WeightInfo { fn fractionalize() -> Weight; fn unify() -> Weight; } -/// Weights for pallet_nft_fractionalization using the Substrate node and recommended hardware. +/// Weights for `pallet_nft_fractionalization` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: NftFractionalization NftToAsset (r:0 w:1) - /// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// Storage: `NftFractionalization::NftToAsset` (r:0 w:1) + /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) fn fractionalize() -> Weight { // Proof Size summary in bytes: // Measured: `609` // Estimated: `4326` - // Minimum execution time: 187_416_000 picoseconds. - Weight::from_parts(191_131_000, 4326) + // Minimum execution time: 174_545_000 picoseconds. + Weight::from_parts(177_765_000, 4326) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } - /// Storage: NftFractionalization NftToAsset (r:1 w:1) - /// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `NftFractionalization::NftToAsset` (r:1 w:1) + /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn unify() -> Weight { // Proof Size summary in bytes: // Measured: `1422` // Estimated: `4326` - // Minimum execution time: 134_159_000 picoseconds. - Weight::from_parts(136_621_000, 4326) + // Minimum execution time: 128_211_000 picoseconds. + Weight::from_parts(131_545_000, 4326) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: NftFractionalization NftToAsset (r:0 w:1) - /// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`) + /// Storage: `NftFractionalization::NftToAsset` (r:0 w:1) + /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) fn fractionalize() -> Weight { // Proof Size summary in bytes: // Measured: `609` // Estimated: `4326` - // Minimum execution time: 187_416_000 picoseconds. - Weight::from_parts(191_131_000, 4326) + // Minimum execution time: 174_545_000 picoseconds. + Weight::from_parts(177_765_000, 4326) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(8_u64)) } - /// Storage: NftFractionalization NftToAsset (r:1 w:1) - /// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `NftFractionalization::NftToAsset` (r:1 w:1) + /// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn unify() -> Weight { // Proof Size summary in bytes: // Measured: `1422` // Estimated: `4326` - // Minimum execution time: 134_159_000 picoseconds. - Weight::from_parts(136_621_000, 4326) + // Minimum execution time: 128_211_000 picoseconds. + Weight::from_parts(131_545_000, 4326) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } diff --git a/substrate/frame/nfts/src/weights.rs b/substrate/frame/nfts/src/weights.rs index 6b8c577bb12e5d19bf5751d2a5019d60aea743b0..c5fb60a2206f084406095a3005437fcdb22188ee 100644 --- a/substrate/frame/nfts/src/weights.rs +++ b/substrate/frame/nfts/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_nfts +//! Autogenerated weights for `pallet_nfts` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -37,9 +37,9 @@ // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/nfts/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/nfts/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_nfts. +/// Weight functions needed for `pallet_nfts`. pub trait WeightInfo { fn create() -> Weight; fn force_create() -> Weight; @@ -92,564 +92,568 @@ pub trait WeightInfo { fn set_attributes_pre_signed(n: u32, ) -> Weight; } -/// Weights for pallet_nfts using the Substrate node and recommended hardware. +/// Weights for `pallet_nfts` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Nfts NextCollectionId (r:1 w:1) - /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:0 w:1) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:1) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3549` - // Minimum execution time: 40_489_000 picoseconds. - Weight::from_parts(41_320_000, 3549) + // Minimum execution time: 34_863_000 picoseconds. + Weight::from_parts(36_679_000, 3549) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Nfts NextCollectionId (r:1 w:1) - /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:0 w:1) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:1) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_create() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3549` - // Minimum execution time: 23_257_000 picoseconds. - Weight::from_parts(23_770_000, 3549) + // Minimum execution time: 19_631_000 picoseconds. + Weight::from_parts(20_384_000, 3549) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:0) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:1) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1001 w:1000) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1000 w:1000) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts CollectionMetadataOf (r:0 w:1) - /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:1) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// The range of component `m` is `[0, 1000]`. /// The range of component `c` is `[0, 1000]`. /// The range of component `a` is `[0, 1000]`. fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `32220 + a * (332 ±0)` - // Estimated: `2523990 + a * (2921 ±0)` - // Minimum execution time: 1_310_198_000 picoseconds. - Weight::from_parts(1_479_261_043, 2523990) - // Standard Error: 4_415 - .saturating_add(Weight::from_parts(6_016_212, 0).saturating_mul(a.into())) + // Measured: `32204 + a * (366 ±0)` + // Estimated: `2523990 + a * (2954 ±0)` + // Minimum execution time: 1_282_083_000 picoseconds. + Weight::from_parts(1_249_191_963, 2523990) + // Standard Error: 4_719 + .saturating_add(Weight::from_parts(6_470_227, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(1004_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1005_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(a.into())) - } - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) + } + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) fn mint() -> Weight { // Proof Size summary in bytes: // Measured: `455` // Estimated: `4326` - // Minimum execution time: 51_910_000 picoseconds. - Weight::from_parts(53_441_000, 4326) + // Minimum execution time: 49_055_000 picoseconds. + Weight::from_parts(50_592_000, 4326) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) fn force_mint() -> Weight { // Proof Size summary in bytes: // Measured: `455` // Estimated: `4326` - // Minimum execution time: 50_168_000 picoseconds. - Weight::from_parts(51_380_000, 4326) + // Minimum execution time: 47_102_000 picoseconds. + Weight::from_parts(48_772_000, 4326) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:0) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:0 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn burn() -> Weight { // Proof Size summary in bytes: // Measured: `564` // Estimated: `4326` - // Minimum execution time: 50_738_000 picoseconds. - Weight::from_parts(51_850_000, 4326) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Minimum execution time: 52_968_000 picoseconds. + Weight::from_parts(55_136_000, 4326) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:0) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:2) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: // Measured: `593` // Estimated: `4326` - // Minimum execution time: 41_055_000 picoseconds. - Weight::from_parts(42_336_000, 4326) + // Minimum execution time: 41_140_000 picoseconds. + Weight::from_parts(43_288_000, 4326) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:5000 w:5000) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:5000 w:5000) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) /// The range of component `i` is `[0, 5000]`. fn redeposit(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `763 + i * (108 ±0)` // Estimated: `3549 + i * (3336 ±0)` - // Minimum execution time: 15_688_000 picoseconds. - Weight::from_parts(15_921_000, 3549) - // Standard Error: 14_827 - .saturating_add(Weight::from_parts(17_105_395, 0).saturating_mul(i.into())) + // Minimum execution time: 14_433_000 picoseconds. + Weight::from_parts(14_664_000, 3549) + // Standard Error: 23_078 + .saturating_add(Weight::from_parts(15_911_377, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn lock_item_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `435` // Estimated: `3534` - // Minimum execution time: 19_981_000 picoseconds. - Weight::from_parts(20_676_000, 3534) + // Minimum execution time: 18_307_000 picoseconds. + Weight::from_parts(18_966_000, 3534) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn unlock_item_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `435` // Estimated: `3534` - // Minimum execution time: 19_911_000 picoseconds. - Weight::from_parts(20_612_000, 3534) + // Minimum execution time: 18_078_000 picoseconds. + Weight::from_parts(18_593_000, 3534) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn lock_collection() -> Weight { // Proof Size summary in bytes: // Measured: `340` // Estimated: `3549` - // Minimum execution time: 16_441_000 picoseconds. - Weight::from_parts(16_890_000, 3549) + // Minimum execution time: 15_175_000 picoseconds. + Weight::from_parts(15_762_000, 3549) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts OwnershipAcceptance (r:1 w:1) - /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:2) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `3549` - // Minimum execution time: 22_610_000 picoseconds. - Weight::from_parts(23_422_000, 3549) - .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `562` + // Estimated: `3593` + // Minimum execution time: 26_164_000 picoseconds. + Weight::from_parts(27_117_000, 3593) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:2 w:4) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:4) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn set_team() -> Weight { // Proof Size summary in bytes: // Measured: `369` // Estimated: `6078` - // Minimum execution time: 39_739_000 picoseconds. - Weight::from_parts(41_306_000, 6078) + // Minimum execution time: 38_523_000 picoseconds. + Weight::from_parts(39_486_000, 6078) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:2) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_collection_owner() -> Weight { // Proof Size summary in bytes: // Measured: `311` // Estimated: `3549` - // Minimum execution time: 17_685_000 picoseconds. - Weight::from_parts(18_258_000, 3549) + // Minimum execution time: 15_733_000 picoseconds. + Weight::from_parts(16_227_000, 3549) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn force_collection_config() -> Weight { // Proof Size summary in bytes: // Measured: `276` // Estimated: `3549` - // Minimum execution time: 13_734_000 picoseconds. - Weight::from_parts(14_337_000, 3549) + // Minimum execution time: 12_042_000 picoseconds. + Weight::from_parts(12_690_000, 3549) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn lock_item_properties() -> Weight { // Proof Size summary in bytes: // Measured: `435` // Estimated: `3534` - // Minimum execution time: 19_269_000 picoseconds. - Weight::from_parts(19_859_000, 3534) + // Minimum execution time: 17_165_000 picoseconds. + Weight::from_parts(17_769_000, 3534) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) fn set_attribute() -> Weight { // Proof Size summary in bytes: // Measured: `539` - // Estimated: `3911` - // Minimum execution time: 51_540_000 picoseconds. - Weight::from_parts(52_663_000, 3911) + // Estimated: `3944` + // Minimum execution time: 48_862_000 picoseconds. + Weight::from_parts(50_584_000, 3944) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) fn force_set_attribute() -> Weight { // Proof Size summary in bytes: // Measured: `344` - // Estimated: `3911` - // Minimum execution time: 26_529_000 picoseconds. - Weight::from_parts(27_305_000, 3911) + // Estimated: `3944` + // Minimum execution time: 24_665_000 picoseconds. + Weight::from_parts(25_465_000, 3944) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) fn clear_attribute() -> Weight { // Proof Size summary in bytes: - // Measured: `950` - // Estimated: `3911` - // Minimum execution time: 46_951_000 picoseconds. - Weight::from_parts(48_481_000, 3911) + // Measured: `983` + // Estimated: `3944` + // Minimum execution time: 44_617_000 picoseconds. + Weight::from_parts(46_458_000, 3944) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) fn approve_item_attributes() -> Weight { // Proof Size summary in bytes: // Measured: `381` // Estimated: `4326` - // Minimum execution time: 17_222_000 picoseconds. - Weight::from_parts(17_819_000, 4326) + // Minimum execution time: 15_710_000 picoseconds. + Weight::from_parts(16_191_000, 4326) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1001 w:1000) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. fn cancel_item_attributes_approval(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `837 + n * (364 ±0)` - // Estimated: `4326 + n * (2921 ±0)` - // Minimum execution time: 26_185_000 picoseconds. - Weight::from_parts(27_038_000, 4326) - // Standard Error: 2_378 - .saturating_add(Weight::from_parts(6_067_888, 0).saturating_mul(n.into())) + // Measured: `831 + n * (398 ±0)` + // Estimated: `4326 + n * (2954 ±0)` + // Minimum execution time: 24_447_000 picoseconds. + Weight::from_parts(25_144_000, 4326) + // Standard Error: 4_872 + .saturating_add(Weight::from_parts(6_523_101, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into())) - } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:1) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) fn set_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `539` - // Estimated: `3605` - // Minimum execution time: 42_120_000 picoseconds. - Weight::from_parts(43_627_000, 3605) + // Estimated: `3812` + // Minimum execution time: 39_990_000 picoseconds. + Weight::from_parts(41_098_000, 3812) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:1) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `642` - // Estimated: `3605` - // Minimum execution time: 40_732_000 picoseconds. - Weight::from_parts(42_760_000, 3605) + // Measured: `849` + // Estimated: `3812` + // Minimum execution time: 38_030_000 picoseconds. + Weight::from_parts(39_842_000, 3812) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionMetadataOf (r:1 w:1) - /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) fn set_collection_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `398` - // Estimated: `3552` - // Minimum execution time: 39_443_000 picoseconds. - Weight::from_parts(40_482_000, 3552) + // Estimated: `3759` + // Minimum execution time: 36_778_000 picoseconds. + Weight::from_parts(38_088_000, 3759) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionMetadataOf (r:1 w:1) - /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) fn clear_collection_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `509` - // Estimated: `3552` - // Minimum execution time: 37_676_000 picoseconds. - Weight::from_parts(39_527_000, 3552) + // Measured: `716` + // Estimated: `3759` + // Minimum execution time: 36_887_000 picoseconds. + Weight::from_parts(38_406_000, 3759) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn approve_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `410` // Estimated: `4326` - // Minimum execution time: 20_787_000 picoseconds. - Weight::from_parts(21_315_000, 4326) + // Minimum execution time: 18_734_000 picoseconds. + Weight::from_parts(19_267_000, 4326) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) fn cancel_approval() -> Weight { // Proof Size summary in bytes: // Measured: `418` // Estimated: `4326` - // Minimum execution time: 18_200_000 picoseconds. - Weight::from_parts(19_064_000, 4326) + // Minimum execution time: 16_080_000 picoseconds. + Weight::from_parts(16_603_000, 4326) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) fn clear_all_transfer_approvals() -> Weight { // Proof Size summary in bytes: // Measured: `418` // Estimated: `4326` - // Minimum execution time: 17_128_000 picoseconds. - Weight::from_parts(17_952_000, 4326) + // Minimum execution time: 15_013_000 picoseconds. + Weight::from_parts(15_607_000, 4326) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts OwnershipAcceptance (r:1 w:1) - /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_accept_ownership() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3517` - // Minimum execution time: 14_667_000 picoseconds. - Weight::from_parts(15_262_000, 3517) + // Minimum execution time: 13_077_000 picoseconds. + Weight::from_parts(13_635_000, 3517) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionConfigOf (r:1 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) fn set_collection_max_supply() -> Weight { // Proof Size summary in bytes: // Measured: `340` // Estimated: `3549` - // Minimum execution time: 18_435_000 picoseconds. - Weight::from_parts(18_775_000, 3549) + // Minimum execution time: 17_146_000 picoseconds. + Weight::from_parts(17_453_000, 3549) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn update_mint_settings() -> Weight { // Proof Size summary in bytes: // Measured: `323` // Estimated: `3538` - // Minimum execution time: 18_125_000 picoseconds. - Weight::from_parts(18_415_000, 3538) + // Minimum execution time: 16_102_000 picoseconds. + Weight::from_parts(16_629_000, 3538) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) fn set_price() -> Weight { // Proof Size summary in bytes: // Measured: `518` // Estimated: `4326` - // Minimum execution time: 23_237_000 picoseconds. - Weight::from_parts(24_128_000, 4326) + // Minimum execution time: 22_118_000 picoseconds. + Weight::from_parts(22_849_000, 4326) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:1 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:0) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:2) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:1 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn buy_item() -> Weight { // Proof Size summary in bytes: // Measured: `705` // Estimated: `4326` - // Minimum execution time: 53_291_000 picoseconds. - Weight::from_parts(54_614_000, 4326) + // Minimum execution time: 50_369_000 picoseconds. + Weight::from_parts(51_816_000, 4326) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -658,681 +662,685 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_192_000 picoseconds. - Weight::from_parts(4_039_901, 0) - // Standard Error: 10_309 - .saturating_add(Weight::from_parts(3_934_017, 0).saturating_mul(n.into())) - } - /// Storage: Nfts Item (r:2 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + // Minimum execution time: 2_203_000 picoseconds. + Weight::from_parts(3_710_869, 0) + // Standard Error: 8_094 + .saturating_add(Weight::from_parts(2_201_869, 0).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:2 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn create_swap() -> Weight { // Proof Size summary in bytes: // Measured: `494` // Estimated: `7662` - // Minimum execution time: 21_011_000 picoseconds. - Weight::from_parts(22_065_000, 7662) + // Minimum execution time: 18_893_000 picoseconds. + Weight::from_parts(19_506_000, 7662) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts PendingSwapOf (r:1 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::PendingSwapOf` (r:1 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) fn cancel_swap() -> Weight { // Proof Size summary in bytes: // Measured: `513` // Estimated: `4326` - // Minimum execution time: 21_423_000 picoseconds. - Weight::from_parts(21_743_000, 4326) + // Minimum execution time: 19_086_000 picoseconds. + Weight::from_parts(19_609_000, 4326) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:2 w:2) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:1 w:2) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:2 w:0) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:2 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:4) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:2) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:2 w:2) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:1 w:2) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:2 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:2 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:4) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:2) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) fn claim_swap() -> Weight { // Proof Size summary in bytes: // Measured: `834` // Estimated: `7662` - // Minimum execution time: 86_059_000 picoseconds. - Weight::from_parts(88_401_000, 7662) + // Minimum execution time: 84_103_000 picoseconds. + Weight::from_parts(85_325_000, 7662) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(10_u64)) } - /// Storage: Nfts CollectionRoleOf (r:2 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:10 w:10) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:1) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 10]`. fn mint_pre_signed(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `629` - // Estimated: `6078 + n * (2921 ±0)` - // Minimum execution time: 146_746_000 picoseconds. - Weight::from_parts(152_885_862, 6078) - // Standard Error: 40_442 - .saturating_add(Weight::from_parts(32_887_800, 0).saturating_mul(n.into())) + // Estimated: `6078 + n * (2954 ±0)` + // Minimum execution time: 128_363_000 picoseconds. + Weight::from_parts(139_474_918, 6078) + // Standard Error: 79_252 + .saturating_add(Weight::from_parts(31_384_027, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into())) - } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:10 w:10) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 10]`. fn set_attributes_pre_signed(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `659` - // Estimated: `4326 + n * (2921 ±0)` - // Minimum execution time: 83_960_000 picoseconds. - Weight::from_parts(98_609_885, 4326) - // Standard Error: 85_991 - .saturating_add(Weight::from_parts(32_633_495, 0).saturating_mul(n.into())) + // Estimated: `4326 + n * (2954 ±0)` + // Minimum execution time: 66_688_000 picoseconds. + Weight::from_parts(79_208_379, 4326) + // Standard Error: 74_020 + .saturating_add(Weight::from_parts(31_028_221, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Nfts NextCollectionId (r:1 w:1) - /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:0 w:1) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:1) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3549` - // Minimum execution time: 40_489_000 picoseconds. - Weight::from_parts(41_320_000, 3549) + // Minimum execution time: 34_863_000 picoseconds. + Weight::from_parts(36_679_000, 3549) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Nfts NextCollectionId (r:1 w:1) - /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:0 w:1) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:1) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::NextCollectionId` (r:1 w:1) + /// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:0 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_create() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3549` - // Minimum execution time: 23_257_000 picoseconds. - Weight::from_parts(23_770_000, 3549) + // Minimum execution time: 19_631_000 picoseconds. + Weight::from_parts(20_384_000, 3549) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:0) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:1) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1001 w:1000) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1000 w:1000) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts CollectionMetadataOf (r:0 w:1) - /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:1) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:1) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:1) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// The range of component `m` is `[0, 1000]`. /// The range of component `c` is `[0, 1000]`. /// The range of component `a` is `[0, 1000]`. fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `32220 + a * (332 ±0)` - // Estimated: `2523990 + a * (2921 ±0)` - // Minimum execution time: 1_310_198_000 picoseconds. - Weight::from_parts(1_479_261_043, 2523990) - // Standard Error: 4_415 - .saturating_add(Weight::from_parts(6_016_212, 0).saturating_mul(a.into())) + // Measured: `32204 + a * (366 ±0)` + // Estimated: `2523990 + a * (2954 ±0)` + // Minimum execution time: 1_282_083_000 picoseconds. + Weight::from_parts(1_249_191_963, 2523990) + // Standard Error: 4_719 + .saturating_add(Weight::from_parts(6_470_227, 0).saturating_mul(a.into())) .saturating_add(RocksDbWeight::get().reads(1004_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(RocksDbWeight::get().writes(1005_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(a.into())) - } - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) + } + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) fn mint() -> Weight { // Proof Size summary in bytes: // Measured: `455` // Estimated: `4326` - // Minimum execution time: 51_910_000 picoseconds. - Weight::from_parts(53_441_000, 4326) + // Minimum execution time: 49_055_000 picoseconds. + Weight::from_parts(50_592_000, 4326) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) fn force_mint() -> Weight { // Proof Size summary in bytes: // Measured: `455` // Estimated: `4326` - // Minimum execution time: 50_168_000 picoseconds. - Weight::from_parts(51_380_000, 4326) + // Minimum execution time: 47_102_000 picoseconds. + Weight::from_parts(48_772_000, 4326) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:0) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:0 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:0) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn burn() -> Weight { // Proof Size summary in bytes: // Measured: `564` // Estimated: `4326` - // Minimum execution time: 50_738_000 picoseconds. - Weight::from_parts(51_850_000, 4326) - .saturating_add(RocksDbWeight::get().reads(4_u64)) + // Minimum execution time: 52_968_000 picoseconds. + Weight::from_parts(55_136_000, 4326) + .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:0) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:2) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: // Measured: `593` // Estimated: `4326` - // Minimum execution time: 41_055_000 picoseconds. - Weight::from_parts(42_336_000, 4326) + // Minimum execution time: 41_140_000 picoseconds. + Weight::from_parts(43_288_000, 4326) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:5000 w:5000) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:5000 w:5000) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) /// The range of component `i` is `[0, 5000]`. fn redeposit(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `763 + i * (108 ±0)` // Estimated: `3549 + i * (3336 ±0)` - // Minimum execution time: 15_688_000 picoseconds. - Weight::from_parts(15_921_000, 3549) - // Standard Error: 14_827 - .saturating_add(Weight::from_parts(17_105_395, 0).saturating_mul(i.into())) + // Minimum execution time: 14_433_000 picoseconds. + Weight::from_parts(14_664_000, 3549) + // Standard Error: 23_078 + .saturating_add(Weight::from_parts(15_911_377, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn lock_item_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `435` // Estimated: `3534` - // Minimum execution time: 19_981_000 picoseconds. - Weight::from_parts(20_676_000, 3534) + // Minimum execution time: 18_307_000 picoseconds. + Weight::from_parts(18_966_000, 3534) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn unlock_item_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `435` // Estimated: `3534` - // Minimum execution time: 19_911_000 picoseconds. - Weight::from_parts(20_612_000, 3534) + // Minimum execution time: 18_078_000 picoseconds. + Weight::from_parts(18_593_000, 3534) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn lock_collection() -> Weight { // Proof Size summary in bytes: // Measured: `340` // Estimated: `3549` - // Minimum execution time: 16_441_000 picoseconds. - Weight::from_parts(16_890_000, 3549) + // Minimum execution time: 15_175_000 picoseconds. + Weight::from_parts(15_762_000, 3549) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts OwnershipAcceptance (r:1 w:1) - /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:2) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: - // Measured: `388` - // Estimated: `3549` - // Minimum execution time: 22_610_000 picoseconds. - Weight::from_parts(23_422_000, 3549) - .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + // Measured: `562` + // Estimated: `3593` + // Minimum execution time: 26_164_000 picoseconds. + Weight::from_parts(27_117_000, 3593) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:2 w:4) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:4) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn set_team() -> Weight { // Proof Size summary in bytes: // Measured: `369` // Estimated: `6078` - // Minimum execution time: 39_739_000 picoseconds. - Weight::from_parts(41_306_000, 6078) + // Minimum execution time: 38_523_000 picoseconds. + Weight::from_parts(39_486_000, 6078) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionAccount (r:0 w:2) - /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionAccount` (r:0 w:2) + /// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_collection_owner() -> Weight { // Proof Size summary in bytes: // Measured: `311` // Estimated: `3549` - // Minimum execution time: 17_685_000 picoseconds. - Weight::from_parts(18_258_000, 3549) + // Minimum execution time: 15_733_000 picoseconds. + Weight::from_parts(16_227_000, 3549) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:0 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:0 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn force_collection_config() -> Weight { // Proof Size summary in bytes: // Measured: `276` // Estimated: `3549` - // Minimum execution time: 13_734_000 picoseconds. - Weight::from_parts(14_337_000, 3549) + // Minimum execution time: 12_042_000 picoseconds. + Weight::from_parts(12_690_000, 3549) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn lock_item_properties() -> Weight { // Proof Size summary in bytes: // Measured: `435` // Estimated: `3534` - // Minimum execution time: 19_269_000 picoseconds. - Weight::from_parts(19_859_000, 3534) + // Minimum execution time: 17_165_000 picoseconds. + Weight::from_parts(17_769_000, 3534) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) fn set_attribute() -> Weight { // Proof Size summary in bytes: // Measured: `539` - // Estimated: `3911` - // Minimum execution time: 51_540_000 picoseconds. - Weight::from_parts(52_663_000, 3911) + // Estimated: `3944` + // Minimum execution time: 48_862_000 picoseconds. + Weight::from_parts(50_584_000, 3944) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) fn force_set_attribute() -> Weight { // Proof Size summary in bytes: // Measured: `344` - // Estimated: `3911` - // Minimum execution time: 26_529_000 picoseconds. - Weight::from_parts(27_305_000, 3911) + // Estimated: `3944` + // Minimum execution time: 24_665_000 picoseconds. + Weight::from_parts(25_465_000, 3944) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nfts Attribute (r:1 w:1) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: `Nfts::Attribute` (r:1 w:1) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) fn clear_attribute() -> Weight { // Proof Size summary in bytes: - // Measured: `950` - // Estimated: `3911` - // Minimum execution time: 46_951_000 picoseconds. - Weight::from_parts(48_481_000, 3911) + // Measured: `983` + // Estimated: `3944` + // Minimum execution time: 44_617_000 picoseconds. + Weight::from_parts(46_458_000, 3944) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) fn approve_item_attributes() -> Weight { // Proof Size summary in bytes: // Measured: `381` // Estimated: `4326` - // Minimum execution time: 17_222_000 picoseconds. - Weight::from_parts(17_819_000, 4326) + // Minimum execution time: 15_710_000 picoseconds. + Weight::from_parts(16_191_000, 4326) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1001 w:1000) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1001 w:1000) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. fn cancel_item_attributes_approval(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `837 + n * (364 ±0)` - // Estimated: `4326 + n * (2921 ±0)` - // Minimum execution time: 26_185_000 picoseconds. - Weight::from_parts(27_038_000, 4326) - // Standard Error: 2_378 - .saturating_add(Weight::from_parts(6_067_888, 0).saturating_mul(n.into())) + // Measured: `831 + n * (398 ±0)` + // Estimated: `4326 + n * (2954 ±0)` + // Minimum execution time: 24_447_000 picoseconds. + Weight::from_parts(25_144_000, 4326) + // Standard Error: 4_872 + .saturating_add(Weight::from_parts(6_523_101, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into())) - } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:1) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) fn set_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `539` - // Estimated: `3605` - // Minimum execution time: 42_120_000 picoseconds. - Weight::from_parts(43_627_000, 3605) + // Estimated: `3812` + // Minimum execution time: 39_990_000 picoseconds. + Weight::from_parts(41_098_000, 3812) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:1) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `642` - // Estimated: `3605` - // Minimum execution time: 40_732_000 picoseconds. - Weight::from_parts(42_760_000, 3605) + // Measured: `849` + // Estimated: `3812` + // Minimum execution time: 38_030_000 picoseconds. + Weight::from_parts(39_842_000, 3812) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionMetadataOf (r:1 w:1) - /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) fn set_collection_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `398` - // Estimated: `3552` - // Minimum execution time: 39_443_000 picoseconds. - Weight::from_parts(40_482_000, 3552) + // Estimated: `3759` + // Minimum execution time: 36_778_000 picoseconds. + Weight::from_parts(38_088_000, 3759) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts CollectionMetadataOf (r:1 w:1) - /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1) + /// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`) fn clear_collection_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `509` - // Estimated: `3552` - // Minimum execution time: 37_676_000 picoseconds. - Weight::from_parts(39_527_000, 3552) + // Measured: `716` + // Estimated: `3759` + // Minimum execution time: 36_887_000 picoseconds. + Weight::from_parts(38_406_000, 3759) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(1_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn approve_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `410` // Estimated: `4326` - // Minimum execution time: 20_787_000 picoseconds. - Weight::from_parts(21_315_000, 4326) + // Minimum execution time: 18_734_000 picoseconds. + Weight::from_parts(19_267_000, 4326) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) fn cancel_approval() -> Weight { // Proof Size summary in bytes: // Measured: `418` // Estimated: `4326` - // Minimum execution time: 18_200_000 picoseconds. - Weight::from_parts(19_064_000, 4326) + // Minimum execution time: 16_080_000 picoseconds. + Weight::from_parts(16_603_000, 4326) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) fn clear_all_transfer_approvals() -> Weight { // Proof Size summary in bytes: // Measured: `418` // Estimated: `4326` - // Minimum execution time: 17_128_000 picoseconds. - Weight::from_parts(17_952_000, 4326) + // Minimum execution time: 15_013_000 picoseconds. + Weight::from_parts(15_607_000, 4326) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts OwnershipAcceptance (r:1 w:1) - /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1) + /// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_accept_ownership() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `3517` - // Minimum execution time: 14_667_000 picoseconds. - Weight::from_parts(15_262_000, 3517) + // Minimum execution time: 13_077_000 picoseconds. + Weight::from_parts(13_635_000, 3517) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionConfigOf (r:1 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) fn set_collection_max_supply() -> Weight { // Proof Size summary in bytes: // Measured: `340` // Estimated: `3549` - // Minimum execution time: 18_435_000 picoseconds. - Weight::from_parts(18_775_000, 3549) + // Minimum execution time: 17_146_000 picoseconds. + Weight::from_parts(17_453_000, 3549) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts CollectionRoleOf (r:1 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:1) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:1 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:1) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn update_mint_settings() -> Weight { // Proof Size summary in bytes: // Measured: `323` // Estimated: `3538` - // Minimum execution time: 18_125_000 picoseconds. - Weight::from_parts(18_415_000, 3538) + // Minimum execution time: 16_102_000 picoseconds. + Weight::from_parts(16_629_000, 3538) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) fn set_price() -> Weight { // Proof Size summary in bytes: // Measured: `518` // Estimated: `4326` - // Minimum execution time: 23_237_000 picoseconds. - Weight::from_parts(24_128_000, 4326) + // Minimum execution time: 22_118_000 picoseconds. + Weight::from_parts(22_849_000, 4326) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:1 w:1) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:1 w:0) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:2) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:1 w:1) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:1 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:2) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn buy_item() -> Weight { // Proof Size summary in bytes: // Measured: `705` // Estimated: `4326` - // Minimum execution time: 53_291_000 picoseconds. - Weight::from_parts(54_614_000, 4326) + // Minimum execution time: 50_369_000 picoseconds. + Weight::from_parts(51_816_000, 4326) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } @@ -1341,120 +1349,120 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_192_000 picoseconds. - Weight::from_parts(4_039_901, 0) - // Standard Error: 10_309 - .saturating_add(Weight::from_parts(3_934_017, 0).saturating_mul(n.into())) - } - /// Storage: Nfts Item (r:2 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:0 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + // Minimum execution time: 2_203_000 picoseconds. + Weight::from_parts(3_710_869, 0) + // Standard Error: 8_094 + .saturating_add(Weight::from_parts(2_201_869, 0).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:2 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:0 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) fn create_swap() -> Weight { // Proof Size summary in bytes: // Measured: `494` // Estimated: `7662` - // Minimum execution time: 21_011_000 picoseconds. - Weight::from_parts(22_065_000, 7662) + // Minimum execution time: 18_893_000 picoseconds. + Weight::from_parts(19_506_000, 7662) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts PendingSwapOf (r:1 w:1) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: `Nfts::PendingSwapOf` (r:1 w:1) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) fn cancel_swap() -> Weight { // Proof Size summary in bytes: // Measured: `513` // Estimated: `4326` - // Minimum execution time: 21_423_000 picoseconds. - Weight::from_parts(21_743_000, 4326) + // Minimum execution time: 19_086_000 picoseconds. + Weight::from_parts(19_609_000, 4326) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nfts Item (r:2 w:2) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts PendingSwapOf (r:1 w:2) - /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:0) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:2 w:0) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:2 w:0) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:4) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Nfts ItemPriceOf (r:0 w:2) - /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: `Nfts::Item` (r:2 w:2) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::PendingSwapOf` (r:1 w:2) + /// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:0) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:2 w:0) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:2 w:0) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:4) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemPriceOf` (r:0 w:2) + /// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) fn claim_swap() -> Weight { // Proof Size summary in bytes: // Measured: `834` // Estimated: `7662` - // Minimum execution time: 86_059_000 picoseconds. - Weight::from_parts(88_401_000, 7662) + // Minimum execution time: 84_103_000 picoseconds. + Weight::from_parts(85_325_000, 7662) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(10_u64)) } - /// Storage: Nfts CollectionRoleOf (r:2 w:0) - /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Item (r:1 w:1) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts ItemConfigOf (r:1 w:1) - /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:10 w:10) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: Nfts ItemMetadataOf (r:1 w:1) - /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) - /// Storage: Nfts Account (r:0 w:1) - /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: `Nfts::CollectionRoleOf` (r:2 w:0) + /// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Item` (r:1 w:1) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemConfigOf` (r:1 w:1) + /// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemMetadataOf` (r:1 w:1) + /// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Account` (r:0 w:1) + /// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 10]`. fn mint_pre_signed(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `629` - // Estimated: `6078 + n * (2921 ±0)` - // Minimum execution time: 146_746_000 picoseconds. - Weight::from_parts(152_885_862, 6078) - // Standard Error: 40_442 - .saturating_add(Weight::from_parts(32_887_800, 0).saturating_mul(n.into())) + // Estimated: `6078 + n * (2954 ±0)` + // Minimum execution time: 128_363_000 picoseconds. + Weight::from_parts(139_474_918, 6078) + // Standard Error: 79_252 + .saturating_add(Weight::from_parts(31_384_027, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into())) - } - /// Storage: Nfts Item (r:1 w:0) - /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) - /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) - /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen) - /// Storage: Nfts CollectionConfigOf (r:1 w:0) - /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) - /// Storage: Nfts Collection (r:1 w:1) - /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) - /// Storage: Nfts Attribute (r:10 w:10) - /// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: `Nfts::Item` (r:1 w:0) + /// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`) + /// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1) + /// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`) + /// Storage: `Nfts::CollectionConfigOf` (r:1 w:0) + /// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Collection` (r:1 w:1) + /// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Nfts::Attribute` (r:10 w:10) + /// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 10]`. fn set_attributes_pre_signed(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `659` - // Estimated: `4326 + n * (2921 ±0)` - // Minimum execution time: 83_960_000 picoseconds. - Weight::from_parts(98_609_885, 4326) - // Standard Error: 85_991 - .saturating_add(Weight::from_parts(32_633_495, 0).saturating_mul(n.into())) + // Estimated: `4326 + n * (2954 ±0)` + // Minimum execution time: 66_688_000 picoseconds. + Weight::from_parts(79_208_379, 4326) + // Standard Error: 74_020 + .saturating_add(Weight::from_parts(31_028_221, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) } } diff --git a/substrate/frame/nis/src/weights.rs b/substrate/frame/nis/src/weights.rs index cba2f0049055b8f3e69aeba7d7d572ba19030801..a2411c1e39a66d94980c7025d4bbb2300eea325b 100644 --- a/substrate/frame/nis/src/weights.rs +++ b/substrate/frame/nis/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_nis +//! Autogenerated weights for `pallet_nis` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/nis/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/nis/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_nis. +/// Weight functions needed for `pallet_nis`. pub trait WeightInfo { fn place_bid(l: u32, ) -> Weight; fn place_bid_max() -> Weight; @@ -65,367 +64,367 @@ pub trait WeightInfo { fn process_bid() -> Weight; } -/// Weights for pallet_nis using the Substrate node and recommended hardware. +/// Weights for `pallet_nis` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) /// The range of component `l` is `[0, 999]`. fn place_bid(l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `6176 + l * (48 ±0)` + // Measured: `6210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 49_410_000 picoseconds. - Weight::from_parts(57_832_282, 51487) - // Standard Error: 288 - .saturating_add(Weight::from_parts(51_621, 0).saturating_mul(l.into())) + // Minimum execution time: 47_065_000 picoseconds. + Weight::from_parts(52_894_557, 51487) + // Standard Error: 275 + .saturating_add(Weight::from_parts(48_441, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) fn place_bid_max() -> Weight { // Proof Size summary in bytes: - // Measured: `54178` + // Measured: `54212` // Estimated: `51487` - // Minimum execution time: 119_696_000 picoseconds. - Weight::from_parts(121_838_000, 51487) + // Minimum execution time: 111_930_000 picoseconds. + Weight::from_parts(114_966_000, 51487) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) /// The range of component `l` is `[1, 1000]`. fn retract_bid(l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `6176 + l * (48 ±0)` + // Measured: `6210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 50_843_000 picoseconds. - Weight::from_parts(54_237_365, 51487) - // Standard Error: 243 - .saturating_add(Weight::from_parts(67_732, 0).saturating_mul(l.into())) + // Minimum execution time: 47_726_000 picoseconds. + Weight::from_parts(48_162_043, 51487) + // Standard Error: 187 + .saturating_add(Weight::from_parts(38_372, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Nis Summary (r:1 w:0) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Nis::Summary` (r:1 w:0) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn fund_deficit() -> Weight { // Proof Size summary in bytes: - // Measured: `191` + // Measured: `225` // Estimated: `3593` - // Minimum execution time: 40_752_000 picoseconds. - Weight::from_parts(41_899_000, 3593) + // Minimum execution time: 31_194_000 picoseconds. + Weight::from_parts(32_922_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn communify() -> Weight { // Proof Size summary in bytes: - // Measured: `668` + // Measured: `702` // Estimated: `3675` - // Minimum execution time: 79_779_000 picoseconds. - Weight::from_parts(82_478_000, 3675) + // Minimum execution time: 73_288_000 picoseconds. + Weight::from_parts(76_192_000, 3675) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn privatize() -> Weight { // Proof Size summary in bytes: - // Measured: `829` + // Measured: `863` // Estimated: `3675` - // Minimum execution time: 99_588_000 picoseconds. - Weight::from_parts(102_340_000, 3675) + // Minimum execution time: 94_307_000 picoseconds. + Weight::from_parts(96_561_000, 3675) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn thaw_private() -> Weight { // Proof Size summary in bytes: - // Measured: `354` - // Estimated: `3593` - // Minimum execution time: 53_094_000 picoseconds. - Weight::from_parts(54_543_000, 3593) + // Measured: `388` + // Estimated: `3658` + // Minimum execution time: 49_873_000 picoseconds. + Weight::from_parts(51_361_000, 3658) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn thaw_communal() -> Weight { // Proof Size summary in bytes: - // Measured: `773` + // Measured: `807` // Estimated: `3675` - // Minimum execution time: 107_248_000 picoseconds. - Weight::from_parts(109_923_000, 3675) + // Minimum execution time: 96_884_000 picoseconds. + Weight::from_parts(98_867_000, 3675) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) fn process_queues() -> Weight { // Proof Size summary in bytes: - // Measured: `6624` + // Measured: `6658` // Estimated: `7487` - // Minimum execution time: 27_169_000 picoseconds. - Weight::from_parts(29_201_000, 7487) + // Minimum execution time: 21_019_000 picoseconds. + Weight::from_parts(22_057_000, 7487) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) fn process_queue() -> Weight { // Proof Size summary in bytes: - // Measured: `42` + // Measured: `76` // Estimated: `51487` - // Minimum execution time: 4_540_000 picoseconds. - Weight::from_parts(4_699_000, 51487) + // Minimum execution time: 4_746_000 picoseconds. + Weight::from_parts(4_953_000, 51487) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Nis Receipts (r:0 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:0 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) fn process_bid() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_085_000 picoseconds. - Weight::from_parts(7_336_000, 0) + // Minimum execution time: 4_836_000 picoseconds. + Weight::from_parts(5_093_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) /// The range of component `l` is `[0, 999]`. fn place_bid(l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `6176 + l * (48 ±0)` + // Measured: `6210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 49_410_000 picoseconds. - Weight::from_parts(57_832_282, 51487) - // Standard Error: 288 - .saturating_add(Weight::from_parts(51_621, 0).saturating_mul(l.into())) + // Minimum execution time: 47_065_000 picoseconds. + Weight::from_parts(52_894_557, 51487) + // Standard Error: 275 + .saturating_add(Weight::from_parts(48_441, 0).saturating_mul(l.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) fn place_bid_max() -> Weight { // Proof Size summary in bytes: - // Measured: `54178` + // Measured: `54212` // Estimated: `51487` - // Minimum execution time: 119_696_000 picoseconds. - Weight::from_parts(121_838_000, 51487) + // Minimum execution time: 111_930_000 picoseconds. + Weight::from_parts(114_966_000, 51487) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) /// The range of component `l` is `[1, 1000]`. fn retract_bid(l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `6176 + l * (48 ±0)` + // Measured: `6210 + l * (48 ±0)` // Estimated: `51487` - // Minimum execution time: 50_843_000 picoseconds. - Weight::from_parts(54_237_365, 51487) - // Standard Error: 243 - .saturating_add(Weight::from_parts(67_732, 0).saturating_mul(l.into())) + // Minimum execution time: 47_726_000 picoseconds. + Weight::from_parts(48_162_043, 51487) + // Standard Error: 187 + .saturating_add(Weight::from_parts(38_372, 0).saturating_mul(l.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Nis Summary (r:1 w:0) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Nis::Summary` (r:1 w:0) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn fund_deficit() -> Weight { // Proof Size summary in bytes: - // Measured: `191` + // Measured: `225` // Estimated: `3593` - // Minimum execution time: 40_752_000 picoseconds. - Weight::from_parts(41_899_000, 3593) + // Minimum execution time: 31_194_000 picoseconds. + Weight::from_parts(32_922_000, 3593) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) fn communify() -> Weight { // Proof Size summary in bytes: - // Measured: `668` + // Measured: `702` // Estimated: `3675` - // Minimum execution time: 79_779_000 picoseconds. - Weight::from_parts(82_478_000, 3675) + // Minimum execution time: 73_288_000 picoseconds. + Weight::from_parts(76_192_000, 3675) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn privatize() -> Weight { // Proof Size summary in bytes: - // Measured: `829` + // Measured: `863` // Estimated: `3675` - // Minimum execution time: 99_588_000 picoseconds. - Weight::from_parts(102_340_000, 3675) + // Minimum execution time: 94_307_000 picoseconds. + Weight::from_parts(96_561_000, 3675) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Balances Holds (r:1 w:1) - /// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn thaw_private() -> Weight { // Proof Size summary in bytes: - // Measured: `354` - // Estimated: `3593` - // Minimum execution time: 53_094_000 picoseconds. - Weight::from_parts(54_543_000, 3593) + // Measured: `388` + // Estimated: `3658` + // Minimum execution time: 49_873_000 picoseconds. + Weight::from_parts(51_361_000, 3658) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Nis Receipts (r:1 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:1 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn thaw_communal() -> Weight { // Proof Size summary in bytes: - // Measured: `773` + // Measured: `807` // Estimated: `3675` - // Minimum execution time: 107_248_000 picoseconds. - Weight::from_parts(109_923_000, 3675) + // Minimum execution time: 96_884_000 picoseconds. + Weight::from_parts(98_867_000, 3675) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Nis Summary (r:1 w:1) - /// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Nis QueueTotals (r:1 w:1) - /// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen) + /// Storage: `Nis::Summary` (r:1 w:1) + /// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Nis::QueueTotals` (r:1 w:1) + /// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`) fn process_queues() -> Weight { // Proof Size summary in bytes: - // Measured: `6624` + // Measured: `6658` // Estimated: `7487` - // Minimum execution time: 27_169_000 picoseconds. - Weight::from_parts(29_201_000, 7487) + // Minimum execution time: 21_019_000 picoseconds. + Weight::from_parts(22_057_000, 7487) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Nis Queues (r:1 w:1) - /// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen) + /// Storage: `Nis::Queues` (r:1 w:1) + /// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`) fn process_queue() -> Weight { // Proof Size summary in bytes: - // Measured: `42` + // Measured: `76` // Estimated: `51487` - // Minimum execution time: 4_540_000 picoseconds. - Weight::from_parts(4_699_000, 51487) + // Minimum execution time: 4_746_000 picoseconds. + Weight::from_parts(4_953_000, 51487) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Nis Receipts (r:0 w:1) - /// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) + /// Storage: `Nis::Receipts` (r:0 w:1) + /// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) fn process_bid() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_085_000 picoseconds. - Weight::from_parts(7_336_000, 0) + // Minimum execution time: 4_836_000 picoseconds. + Weight::from_parts(5_093_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } } diff --git a/substrate/frame/nomination-pools/src/weights.rs b/substrate/frame/nomination-pools/src/weights.rs index 0b8c1d22fa19872711fead9fd7441b26d97e19d6..57ea8dc388f6869c8f4f2be761816cced9758e19 100644 --- a/substrate/frame/nomination-pools/src/weights.rs +++ b/substrate/frame/nomination-pools/src/weights.rs @@ -18,30 +18,27 @@ //! Autogenerated weights for `pallet_nomination_pools` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-03-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-p5qp1txx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_nomination_pools +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_nomination_pools -// --chain=dev -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_nomination_pools -// --chain=dev -// --header=./substrate/HEADER-APACHE2 -// --output=./substrate/frame/nomination-pools/src/weights.rs // --output=./substrate/frame/nomination-pools/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -117,8 +114,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3425` // Estimated: `8877` - // Minimum execution time: 182_643_000 picoseconds. - Weight::from_parts(186_106_000, 8877) + // Minimum execution time: 201_783_000 picoseconds. + Weight::from_parts(206_014_000, 8877) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().writes(13_u64)) } @@ -150,8 +147,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3435` // Estimated: `8877` - // Minimum execution time: 181_464_000 picoseconds. - Weight::from_parts(184_672_000, 8877) + // Minimum execution time: 204_124_000 picoseconds. + Weight::from_parts(207_910_000, 8877) .saturating_add(T::DbWeight::get().reads(17_u64)) .saturating_add(T::DbWeight::get().writes(13_u64)) } @@ -185,8 +182,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3500` // Estimated: `8877` - // Minimum execution time: 216_182_000 picoseconds. - Weight::from_parts(218_448_000, 8877) + // Minimum execution time: 240_342_000 picoseconds. + Weight::from_parts(245_735_000, 8877) .saturating_add(T::DbWeight::get().reads(18_u64)) .saturating_add(T::DbWeight::get().writes(14_u64)) } @@ -206,8 +203,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1172` // Estimated: `3719` - // Minimum execution time: 73_830_000 picoseconds. - Weight::from_parts(75_271_000, 3719) + // Minimum execution time: 81_054_000 picoseconds. + Weight::from_parts(83_324_000, 3719) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -247,8 +244,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3622` // Estimated: `27847` - // Minimum execution time: 166_099_000 picoseconds. - Weight::from_parts(170_355_000, 27847) + // Minimum execution time: 188_835_000 picoseconds. + Weight::from_parts(192_565_000, 27847) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().writes(13_u64)) } @@ -264,17 +261,19 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0) + /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::TotalValueLocked` (r:1 w:1) /// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 100]`. fn pool_withdraw_unbonded(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1817` + // Measured: `1848` // Estimated: `4764` - // Minimum execution time: 64_787_000 picoseconds. - Weight::from_parts(67_920_914, 4764) - // Standard Error: 1_482 - .saturating_add(Weight::from_parts(43_264, 0).saturating_mul(s.into())) + // Minimum execution time: 73_556_000 picoseconds. + Weight::from_parts(76_075_881, 4764) + // Standard Error: 1_419 + .saturating_add(Weight::from_parts(54_476, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -296,6 +295,8 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0) + /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::TotalValueLocked` (r:1 w:1) /// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1) @@ -305,12 +306,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[0, 100]`. fn withdraw_unbonded_update(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2207` + // Measured: `2238` // Estimated: `27847` - // Minimum execution time: 124_990_000 picoseconds. - Weight::from_parts(129_041_398, 27847) - // Standard Error: 2_335 - .saturating_add(Weight::from_parts(67_889, 0).saturating_mul(s.into())) + // Minimum execution time: 144_177_000 picoseconds. + Weight::from_parts(148_686_524, 27847) + // Standard Error: 2_475 + .saturating_add(Weight::from_parts(77_460, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -338,12 +339,12 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) /// Storage: `Staking::Nominators` (r:1 w:0) /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) + /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1) + /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::TotalValueLocked` (r:1 w:1) /// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1) /// Proof: `NominationPools::CounterForPoolMembers` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1) - /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::CounterForReversePoolIdLookup` (r:1 w:1) /// Proof: `NominationPools::CounterForReversePoolIdLookup` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `NominationPools::RewardPools` (r:1 w:1) @@ -365,10 +366,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2525` // Estimated: `27847` - // Minimum execution time: 221_955_000 picoseconds. - Weight::from_parts(230_244_437, 27847) - // Standard Error: 4_059 - .saturating_add(Weight::from_parts(7_522, 0).saturating_mul(s.into())) + // Minimum execution time: 255_957_000 picoseconds. + Weight::from_parts(264_206_788, 27847) + // Standard Error: 4_229 + .saturating_add(Weight::from_parts(3_064, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(24_u64)) .saturating_add(T::DbWeight::get().writes(20_u64)) } @@ -396,6 +397,8 @@ impl WeightInfo for SubstrateWeight { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `Staking::Bonded` (r:1 w:1) /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:1) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:2 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:2 w:1) @@ -412,17 +415,15 @@ impl WeightInfo for SubstrateWeight { /// Proof: `NominationPools::CounterForReversePoolIdLookup` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `NominationPools::BondedPools` (r:1 w:1) /// Proof: `NominationPools::BondedPools` (`max_values`: None, `max_size`: Some(254), added: 2729, mode: `MaxEncodedLen`) - /// Storage: `Staking::Ledger` (r:0 w:1) - /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) /// Storage: `Staking::Payee` (r:0 w:1) /// Proof: `Staking::Payee` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: - // Measured: `1169` + // Measured: `1284` // Estimated: `8538` - // Minimum execution time: 165_358_000 picoseconds. - Weight::from_parts(169_683_000, 8538) - .saturating_add(T::DbWeight::get().reads(23_u64)) + // Minimum execution time: 193_527_000 picoseconds. + Weight::from_parts(197_140_000, 8538) + .saturating_add(T::DbWeight::get().reads(24_u64)) .saturating_add(T::DbWeight::get().writes(17_u64)) } /// Storage: `NominationPools::BondedPools` (r:1 w:0) @@ -460,10 +461,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1976` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 74_483_000 picoseconds. - Weight::from_parts(76_611_288, 4556) - // Standard Error: 9_013 - .saturating_add(Weight::from_parts(1_475_128, 0).saturating_mul(n.into())) + // Minimum execution time: 86_054_000 picoseconds. + Weight::from_parts(88_743_932, 4556) + // Standard Error: 12_699 + .saturating_add(Weight::from_parts(1_829_097, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(15_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -479,8 +480,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1434` // Estimated: `4556` - // Minimum execution time: 32_598_000 picoseconds. - Weight::from_parts(33_350_000, 4556) + // Minimum execution time: 34_544_000 picoseconds. + Weight::from_parts(35_910_000, 4556) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -495,10 +496,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3735` - // Minimum execution time: 13_705_000 picoseconds. - Weight::from_parts(14_594_211, 3735) - // Standard Error: 141 - .saturating_add(Weight::from_parts(2_119, 0).saturating_mul(n.into())) + // Minimum execution time: 14_111_000 picoseconds. + Weight::from_parts(15_204_218, 3735) + // Standard Error: 226 + .saturating_add(Weight::from_parts(1_291, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -518,8 +519,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_222_000 picoseconds. - Weight::from_parts(4_527_000, 0) + // Minimum execution time: 4_524_000 picoseconds. + Weight::from_parts(4_882_000, 0) .saturating_add(T::DbWeight::get().writes(6_u64)) } /// Storage: `NominationPools::BondedPools` (r:1 w:1) @@ -528,8 +529,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3719` - // Minimum execution time: 16_106_000 picoseconds. - Weight::from_parts(17_365_000, 3719) + // Minimum execution time: 17_975_000 picoseconds. + Weight::from_parts(18_549_000, 3719) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -559,8 +560,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2143` // Estimated: `4556` - // Minimum execution time: 71_301_000 picoseconds. - Weight::from_parts(73_626_000, 4556) + // Minimum execution time: 81_574_000 picoseconds. + Weight::from_parts(83_519_000, 4556) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -576,8 +577,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `804` // Estimated: `3719` - // Minimum execution time: 32_363_000 picoseconds. - Weight::from_parts(33_400_000, 3719) + // Minimum execution time: 35_015_000 picoseconds. + Weight::from_parts(36_159_000, 3719) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -589,8 +590,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `572` // Estimated: `3719` - // Minimum execution time: 16_686_000 picoseconds. - Weight::from_parts(17_294_000, 3719) + // Minimum execution time: 17_775_000 picoseconds. + Weight::from_parts(18_358_000, 3719) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -600,8 +601,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3719` - // Minimum execution time: 16_417_000 picoseconds. - Weight::from_parts(17_028_000, 3719) + // Minimum execution time: 16_997_000 picoseconds. + Weight::from_parts(18_041_000, 3719) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -611,8 +612,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3719` - // Minimum execution time: 16_350_000 picoseconds. - Weight::from_parts(16_905_000, 3719) + // Minimum execution time: 17_000_000 picoseconds. + Weight::from_parts(17_807_000, 3719) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -624,8 +625,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `542` // Estimated: `3702` - // Minimum execution time: 14_081_000 picoseconds. - Weight::from_parts(14_608_000, 3702) + // Minimum execution time: 14_803_000 picoseconds. + Weight::from_parts(15_401_000, 3702) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -641,8 +642,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1002` // Estimated: `3719` - // Minimum execution time: 62_178_000 picoseconds. - Weight::from_parts(64_039_000, 3719) + // Minimum execution time: 69_759_000 picoseconds. + Weight::from_parts(71_985_000, 3719) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -658,8 +659,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `901` // Estimated: `4764` - // Minimum execution time: 64_880_000 picoseconds. - Weight::from_parts(66_541_000, 4764) + // Minimum execution time: 73_829_000 picoseconds. + Weight::from_parts(75_966_000, 4764) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -703,8 +704,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `3425` // Estimated: `8877` - // Minimum execution time: 182_643_000 picoseconds. - Weight::from_parts(186_106_000, 8877) + // Minimum execution time: 201_783_000 picoseconds. + Weight::from_parts(206_014_000, 8877) .saturating_add(RocksDbWeight::get().reads(20_u64)) .saturating_add(RocksDbWeight::get().writes(13_u64)) } @@ -736,8 +737,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `3435` // Estimated: `8877` - // Minimum execution time: 181_464_000 picoseconds. - Weight::from_parts(184_672_000, 8877) + // Minimum execution time: 204_124_000 picoseconds. + Weight::from_parts(207_910_000, 8877) .saturating_add(RocksDbWeight::get().reads(17_u64)) .saturating_add(RocksDbWeight::get().writes(13_u64)) } @@ -771,8 +772,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `3500` // Estimated: `8877` - // Minimum execution time: 216_182_000 picoseconds. - Weight::from_parts(218_448_000, 8877) + // Minimum execution time: 240_342_000 picoseconds. + Weight::from_parts(245_735_000, 8877) .saturating_add(RocksDbWeight::get().reads(18_u64)) .saturating_add(RocksDbWeight::get().writes(14_u64)) } @@ -792,8 +793,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1172` // Estimated: `3719` - // Minimum execution time: 73_830_000 picoseconds. - Weight::from_parts(75_271_000, 3719) + // Minimum execution time: 81_054_000 picoseconds. + Weight::from_parts(83_324_000, 3719) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -833,8 +834,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `3622` // Estimated: `27847` - // Minimum execution time: 166_099_000 picoseconds. - Weight::from_parts(170_355_000, 27847) + // Minimum execution time: 188_835_000 picoseconds. + Weight::from_parts(192_565_000, 27847) .saturating_add(RocksDbWeight::get().reads(20_u64)) .saturating_add(RocksDbWeight::get().writes(13_u64)) } @@ -850,17 +851,19 @@ impl WeightInfo for () { /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0) + /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::TotalValueLocked` (r:1 w:1) /// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 100]`. fn pool_withdraw_unbonded(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1817` + // Measured: `1848` // Estimated: `4764` - // Minimum execution time: 64_787_000 picoseconds. - Weight::from_parts(67_920_914, 4764) - // Standard Error: 1_482 - .saturating_add(Weight::from_parts(43_264, 0).saturating_mul(s.into())) + // Minimum execution time: 73_556_000 picoseconds. + Weight::from_parts(76_075_881, 4764) + // Standard Error: 1_419 + .saturating_add(Weight::from_parts(54_476, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -882,6 +885,8 @@ impl WeightInfo for () { /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0) + /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::TotalValueLocked` (r:1 w:1) /// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1) @@ -891,12 +896,12 @@ impl WeightInfo for () { /// The range of component `s` is `[0, 100]`. fn withdraw_unbonded_update(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2207` + // Measured: `2238` // Estimated: `27847` - // Minimum execution time: 124_990_000 picoseconds. - Weight::from_parts(129_041_398, 27847) - // Standard Error: 2_335 - .saturating_add(Weight::from_parts(67_889, 0).saturating_mul(s.into())) + // Minimum execution time: 144_177_000 picoseconds. + Weight::from_parts(148_686_524, 27847) + // Standard Error: 2_475 + .saturating_add(Weight::from_parts(77_460, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(12_u64)) .saturating_add(RocksDbWeight::get().writes(9_u64)) } @@ -924,12 +929,12 @@ impl WeightInfo for () { /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) /// Storage: `Staking::Nominators` (r:1 w:0) /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`) + /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1) + /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::TotalValueLocked` (r:1 w:1) /// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1) /// Proof: `NominationPools::CounterForPoolMembers` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1) - /// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// Storage: `NominationPools::CounterForReversePoolIdLookup` (r:1 w:1) /// Proof: `NominationPools::CounterForReversePoolIdLookup` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `NominationPools::RewardPools` (r:1 w:1) @@ -951,10 +956,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `2525` // Estimated: `27847` - // Minimum execution time: 221_955_000 picoseconds. - Weight::from_parts(230_244_437, 27847) - // Standard Error: 4_059 - .saturating_add(Weight::from_parts(7_522, 0).saturating_mul(s.into())) + // Minimum execution time: 255_957_000 picoseconds. + Weight::from_parts(264_206_788, 27847) + // Standard Error: 4_229 + .saturating_add(Weight::from_parts(3_064, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(24_u64)) .saturating_add(RocksDbWeight::get().writes(20_u64)) } @@ -982,6 +987,8 @@ impl WeightInfo for () { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `Staking::Bonded` (r:1 w:1) /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `Staking::Ledger` (r:1 w:1) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) /// Storage: `Balances::Locks` (r:2 w:1) /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// Storage: `Balances::Freezes` (r:2 w:1) @@ -998,17 +1005,15 @@ impl WeightInfo for () { /// Proof: `NominationPools::CounterForReversePoolIdLookup` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `NominationPools::BondedPools` (r:1 w:1) /// Proof: `NominationPools::BondedPools` (`max_values`: None, `max_size`: Some(254), added: 2729, mode: `MaxEncodedLen`) - /// Storage: `Staking::Ledger` (r:0 w:1) - /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) /// Storage: `Staking::Payee` (r:0 w:1) /// Proof: `Staking::Payee` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: - // Measured: `1169` + // Measured: `1284` // Estimated: `8538` - // Minimum execution time: 165_358_000 picoseconds. - Weight::from_parts(169_683_000, 8538) - .saturating_add(RocksDbWeight::get().reads(23_u64)) + // Minimum execution time: 193_527_000 picoseconds. + Weight::from_parts(197_140_000, 8538) + .saturating_add(RocksDbWeight::get().reads(24_u64)) .saturating_add(RocksDbWeight::get().writes(17_u64)) } /// Storage: `NominationPools::BondedPools` (r:1 w:0) @@ -1046,10 +1051,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1976` // Estimated: `4556 + n * (2520 ±0)` - // Minimum execution time: 74_483_000 picoseconds. - Weight::from_parts(76_611_288, 4556) - // Standard Error: 9_013 - .saturating_add(Weight::from_parts(1_475_128, 0).saturating_mul(n.into())) + // Minimum execution time: 86_054_000 picoseconds. + Weight::from_parts(88_743_932, 4556) + // Standard Error: 12_699 + .saturating_add(Weight::from_parts(1_829_097, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(15_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(5_u64)) @@ -1065,8 +1070,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1434` // Estimated: `4556` - // Minimum execution time: 32_598_000 picoseconds. - Weight::from_parts(33_350_000, 4556) + // Minimum execution time: 34_544_000 picoseconds. + Weight::from_parts(35_910_000, 4556) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1081,10 +1086,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3735` - // Minimum execution time: 13_705_000 picoseconds. - Weight::from_parts(14_594_211, 3735) - // Standard Error: 141 - .saturating_add(Weight::from_parts(2_119, 0).saturating_mul(n.into())) + // Minimum execution time: 14_111_000 picoseconds. + Weight::from_parts(15_204_218, 3735) + // Standard Error: 226 + .saturating_add(Weight::from_parts(1_291, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1104,8 +1109,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_222_000 picoseconds. - Weight::from_parts(4_527_000, 0) + // Minimum execution time: 4_524_000 picoseconds. + Weight::from_parts(4_882_000, 0) .saturating_add(RocksDbWeight::get().writes(6_u64)) } /// Storage: `NominationPools::BondedPools` (r:1 w:1) @@ -1114,8 +1119,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3719` - // Minimum execution time: 16_106_000 picoseconds. - Weight::from_parts(17_365_000, 3719) + // Minimum execution time: 17_975_000 picoseconds. + Weight::from_parts(18_549_000, 3719) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1145,8 +1150,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `2143` // Estimated: `4556` - // Minimum execution time: 71_301_000 picoseconds. - Weight::from_parts(73_626_000, 4556) + // Minimum execution time: 81_574_000 picoseconds. + Weight::from_parts(83_519_000, 4556) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } @@ -1162,8 +1167,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `804` // Estimated: `3719` - // Minimum execution time: 32_363_000 picoseconds. - Weight::from_parts(33_400_000, 3719) + // Minimum execution time: 35_015_000 picoseconds. + Weight::from_parts(36_159_000, 3719) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1175,8 +1180,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `572` // Estimated: `3719` - // Minimum execution time: 16_686_000 picoseconds. - Weight::from_parts(17_294_000, 3719) + // Minimum execution time: 17_775_000 picoseconds. + Weight::from_parts(18_358_000, 3719) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1186,8 +1191,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3719` - // Minimum execution time: 16_417_000 picoseconds. - Weight::from_parts(17_028_000, 3719) + // Minimum execution time: 16_997_000 picoseconds. + Weight::from_parts(18_041_000, 3719) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1197,8 +1202,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `532` // Estimated: `3719` - // Minimum execution time: 16_350_000 picoseconds. - Weight::from_parts(16_905_000, 3719) + // Minimum execution time: 17_000_000 picoseconds. + Weight::from_parts(17_807_000, 3719) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1210,8 +1215,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `542` // Estimated: `3702` - // Minimum execution time: 14_081_000 picoseconds. - Weight::from_parts(14_608_000, 3702) + // Minimum execution time: 14_803_000 picoseconds. + Weight::from_parts(15_401_000, 3702) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1227,8 +1232,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1002` // Estimated: `3719` - // Minimum execution time: 62_178_000 picoseconds. - Weight::from_parts(64_039_000, 3719) + // Minimum execution time: 69_759_000 picoseconds. + Weight::from_parts(71_985_000, 3719) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1244,8 +1249,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `901` // Estimated: `4764` - // Minimum execution time: 64_880_000 picoseconds. - Weight::from_parts(66_541_000, 4764) + // Minimum execution time: 73_829_000 picoseconds. + Weight::from_parts(75_966_000, 4764) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } diff --git a/substrate/frame/parameters/src/weights.rs b/substrate/frame/parameters/src/weights.rs index 6746960b1b711995b952f6b5784e71debc41a688..6510db9ebce5bcabe89fe750d4cd9bcaeb5e3dc7 100644 --- a/substrate/frame/parameters/src/weights.rs +++ b/substrate/frame/parameters/src/weights.rs @@ -18,25 +18,27 @@ //! Autogenerated weights for `pallet_parameters` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_parameters +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_parameters -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/parameters/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -55,22 +57,30 @@ pub trait WeightInfo { /// Weights for `pallet_parameters` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { + /// Storage: `Parameters::Parameters` (r:1 w:1) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn set_parameter() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 0_000 picoseconds. - Weight::from_parts(0, 0) + // Measured: `3` + // Estimated: `3501` + // Minimum execution time: 8_360_000 picoseconds. + Weight::from_parts(8_568_000, 3501) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } // For backwards compatibility and tests. impl WeightInfo for () { + /// Storage: `Parameters::Parameters` (r:1 w:1) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn set_parameter() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 0_000 picoseconds. - Weight::from_parts(0, 0) + // Measured: `3` + // Estimated: `3501` + // Minimum execution time: 8_360_000 picoseconds. + Weight::from_parts(8_568_000, 3501) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } } diff --git a/substrate/frame/preimage/src/weights.rs b/substrate/frame/preimage/src/weights.rs index c11ab74c1e551a0fcdd6e239a657ab5df0809aad..4e389e3a7340720420fb3d956c40fdc994f45c9c 100644 --- a/substrate/frame/preimage/src/weights.rs +++ b/substrate/frame/preimage/src/weights.rs @@ -17,26 +17,28 @@ //! Autogenerated weights for `pallet_preimage` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-09-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-mia4uyug-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_preimage +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_preimage -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/preimage/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -70,200 +72,209 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3556` - // Minimum execution time: 15_936_000 picoseconds. - Weight::from_parts(16_271_000, 3556) + // Measured: `112` + // Estimated: `6012` + // Minimum execution time: 52_531_000 picoseconds. + Weight::from_parts(53_245_000, 6012) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_916, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(1_744, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_requested_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 16_468_000 picoseconds. - Weight::from_parts(17_031_000, 3556) + // Minimum execution time: 15_601_000 picoseconds. + Weight::from_parts(15_871_000, 3556) // Standard Error: 2 - .saturating_add(Weight::from_parts(1_948, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_836, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_no_deposit_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 16_342_000 picoseconds. - Weight::from_parts(16_535_000, 3556) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_906, 0).saturating_mul(s.into())) + // Minimum execution time: 15_614_000 picoseconds. + Weight::from_parts(15_934_000, 3556) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_832, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `3556` - // Minimum execution time: 31_047_000 picoseconds. - Weight::from_parts(34_099_000, 3556) - .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Measured: `311` + // Estimated: `3658` + // Minimum execution time: 53_001_000 picoseconds. + Weight::from_parts(55_866_000, 3658) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 32_559_000 picoseconds. - Weight::from_parts(36_677_000, 3556) + // Minimum execution time: 26_901_000 picoseconds. + Weight::from_parts(28_079_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `172` + // Measured: `255` // Estimated: `3556` - // Minimum execution time: 27_887_000 picoseconds. - Weight::from_parts(30_303_000, 3556) + // Minimum execution time: 21_716_000 picoseconds. + Weight::from_parts(25_318_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 17_256_000 picoseconds. - Weight::from_parts(19_481_000, 3556) + // Minimum execution time: 13_890_000 picoseconds. + Weight::from_parts(14_744_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `42` + // Measured: `109` // Estimated: `3556` - // Minimum execution time: 22_344_000 picoseconds. - Weight::from_parts(23_868_000, 3556) + // Minimum execution time: 14_192_000 picoseconds. + Weight::from_parts(15_113_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_requested_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_542_000 picoseconds. - Weight::from_parts(11_571_000, 3556) + // Minimum execution time: 9_909_000 picoseconds. + Weight::from_parts(10_134_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unrequest_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 29_054_000 picoseconds. - Weight::from_parts(32_996_000, 3556) + // Minimum execution time: 21_725_000 picoseconds. + Weight::from_parts(24_058_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_775_000 picoseconds. - Weight::from_parts(11_937_000, 3556) + // Minimum execution time: 9_854_000 picoseconds. + Weight::from_parts(10_175_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_multi_referenced_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_696_000 picoseconds. - Weight::from_parts(11_717_000, 3556) + // Minimum execution time: 10_143_000 picoseconds. + Weight::from_parts(10_539_000, 3556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: `Preimage::StatusFor` (r:1024 w:1024) + /// Storage: `Preimage::StatusFor` (r:1023 w:1023) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) + /// Storage: `System::Account` (r:1023 w:1023) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:0 w:1024) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 1024]`. + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1023 w:1023) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:0 w:1023) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 1024]`. fn ensure_updated(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `193 + n * (91 ±0)` - // Estimated: `3593 + n * (2566 ±0)` - // Minimum execution time: 2_452_000 picoseconds. - Weight::from_parts(2_641_000, 3593) - // Standard Error: 19_797 - .saturating_add(Weight::from_parts(15_620_946, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes(1_u64)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into())) + // Measured: `0 + n * (227 ±0)` + // Estimated: `6012 + n * (2668 ±0)` + // Minimum execution time: 59_384_000 picoseconds. + Weight::from_parts(60_000_000, 6012) + // Standard Error: 39_890 + .saturating_add(Weight::from_parts(56_317_686, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2668).saturating_mul(n.into())) } } @@ -272,199 +283,208 @@ impl WeightInfo for () { /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `42` - // Estimated: `3556` - // Minimum execution time: 15_936_000 picoseconds. - Weight::from_parts(16_271_000, 3556) + // Measured: `112` + // Estimated: `6012` + // Minimum execution time: 52_531_000 picoseconds. + Weight::from_parts(53_245_000, 6012) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_916, 0).saturating_mul(s.into())) - .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(1_744, 0).saturating_mul(s.into())) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_requested_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 16_468_000 picoseconds. - Weight::from_parts(17_031_000, 3556) + // Minimum execution time: 15_601_000 picoseconds. + Weight::from_parts(15_871_000, 3556) // Standard Error: 2 - .saturating_add(Weight::from_parts(1_948, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_836, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 4194304]`. fn note_no_deposit_preimage(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 16_342_000 picoseconds. - Weight::from_parts(16_535_000, 3556) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_906, 0).saturating_mul(s.into())) + // Minimum execution time: 15_614_000 picoseconds. + Weight::from_parts(15_934_000, 3556) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_832, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `3556` - // Minimum execution time: 31_047_000 picoseconds. - Weight::from_parts(34_099_000, 3556) - .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + // Measured: `311` + // Estimated: `3658` + // Minimum execution time: 53_001_000 picoseconds. + Weight::from_parts(55_866_000, 3658) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unnote_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 32_559_000 picoseconds. - Weight::from_parts(36_677_000, 3556) + // Minimum execution time: 26_901_000 picoseconds. + Weight::from_parts(28_079_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `172` + // Measured: `255` // Estimated: `3556` - // Minimum execution time: 27_887_000 picoseconds. - Weight::from_parts(30_303_000, 3556) + // Minimum execution time: 21_716_000 picoseconds. + Weight::from_parts(25_318_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_no_deposit_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 17_256_000 picoseconds. - Weight::from_parts(19_481_000, 3556) + // Minimum execution time: 13_890_000 picoseconds. + Weight::from_parts(14_744_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `42` + // Measured: `109` // Estimated: `3556` - // Minimum execution time: 22_344_000 picoseconds. - Weight::from_parts(23_868_000, 3556) + // Minimum execution time: 14_192_000 picoseconds. + Weight::from_parts(15_113_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn request_requested_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_542_000 picoseconds. - Weight::from_parts(11_571_000, 3556) + // Minimum execution time: 9_909_000 picoseconds. + Weight::from_parts(10_134_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::PreimageFor` (r:0 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) fn unrequest_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `144` + // Measured: `211` // Estimated: `3556` - // Minimum execution time: 29_054_000 picoseconds. - Weight::from_parts(32_996_000, 3556) + // Minimum execution time: 21_725_000 picoseconds. + Weight::from_parts(24_058_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_unnoted_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_775_000 picoseconds. - Weight::from_parts(11_937_000, 3556) + // Minimum execution time: 9_854_000 picoseconds. + Weight::from_parts(10_175_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Preimage::StatusFor` (r:1 w:0) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn unrequest_multi_referenced_preimage() -> Weight { // Proof Size summary in bytes: - // Measured: `106` + // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_696_000 picoseconds. - Weight::from_parts(11_717_000, 3556) + // Minimum execution time: 10_143_000 picoseconds. + Weight::from_parts(10_539_000, 3556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: `Preimage::StatusFor` (r:1024 w:1024) + /// Storage: `Preimage::StatusFor` (r:1023 w:1023) /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) + /// Storage: `System::Account` (r:1023 w:1023) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Preimage::RequestStatusFor` (r:0 w:1024) - /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 1024]`. + /// Storage: `Parameters::Parameters` (r:2 w:0) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1023 w:1023) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:0 w:1023) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 1024]`. fn ensure_updated(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `193 + n * (91 ±0)` - // Estimated: `3593 + n * (2566 ±0)` - // Minimum execution time: 2_452_000 picoseconds. - Weight::from_parts(2_641_000, 3593) - // Standard Error: 19_797 - .saturating_add(Weight::from_parts(15_620_946, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(1_u64)) - .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) - .saturating_add(RocksDbWeight::get().writes(1_u64)) - .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into())) + // Measured: `0 + n * (227 ±0)` + // Estimated: `6012 + n * (2668 ±0)` + // Minimum execution time: 59_384_000 picoseconds. + Weight::from_parts(60_000_000, 6012) + // Standard Error: 39_890 + .saturating_add(Weight::from_parts(56_317_686, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(RocksDbWeight::get().writes((4_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2668).saturating_mul(n.into())) } } diff --git a/substrate/frame/proxy/src/weights.rs b/substrate/frame/proxy/src/weights.rs index f30fe73d27ae665fca89761585226d906fd5112c..3093298e3e54ee79120e1086bd7342f7fe56c799 100644 --- a/substrate/frame/proxy/src/weights.rs +++ b/substrate/frame/proxy/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_proxy +//! Autogenerated weights for `pallet_proxy` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/proxy/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/proxy/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_proxy. +/// Weight functions needed for `pallet_proxy`. pub trait WeightInfo { fn proxy(p: u32, ) -> Weight; fn proxy_announced(a: u32, p: u32, ) -> Weight; @@ -64,336 +63,352 @@ pub trait WeightInfo { fn kill_pure(p: u32, ) -> Weight; } -/// Weights for pallet_proxy using the Substrate node and recommended hardware. +/// Weights for `pallet_proxy` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Proxy Proxies (r:1 w:0) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `161 + p * (37 ±0)` + // Measured: `306 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 15_182_000 picoseconds. - Weight::from_parts(15_919_146, 4706) - // Standard Error: 1_586 - .saturating_add(Weight::from_parts(31_768, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Minimum execution time: 18_280_000 picoseconds. + Weight::from_parts(19_655_145, 4706) + // Standard Error: 2_345 + .saturating_add(Weight::from_parts(36_306, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) } - /// Storage: Proxy Proxies (r:1 w:0) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `488 + a * (68 ±0) + p * (37 ±0)` + // Measured: `633 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 40_256_000 picoseconds. - Weight::from_parts(40_373_648, 5698) - // Standard Error: 3_978 - .saturating_add(Weight::from_parts(166_936, 0).saturating_mul(a.into())) - // Standard Error: 4_110 - .saturating_add(Weight::from_parts(54_329, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Minimum execution time: 41_789_000 picoseconds. + Weight::from_parts(41_812_078, 5698) + // Standard Error: 3_694 + .saturating_add(Weight::from_parts(163_029, 0).saturating_mul(a.into())) + // Standard Error: 3_817 + .saturating_add(Weight::from_parts(79_539, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn remove_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 25_040_000 picoseconds. - Weight::from_parts(25_112_188, 5698) - // Standard Error: 2_143 - .saturating_add(Weight::from_parts(189_027, 0).saturating_mul(a.into())) - // Standard Error: 2_214 - .saturating_add(Weight::from_parts(26_683, 0).saturating_mul(p.into())) + // Minimum execution time: 22_475_000 picoseconds. + Weight::from_parts(22_666_821, 5698) + // Standard Error: 1_797 + .saturating_add(Weight::from_parts(170_629, 0).saturating_mul(a.into())) + // Standard Error: 1_857 + .saturating_add(Weight::from_parts(18_799, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_884_000 picoseconds. - Weight::from_parts(25_359_291, 5698) - // Standard Error: 2_019 - .saturating_add(Weight::from_parts(181_470, 0).saturating_mul(a.into())) - // Standard Error: 2_086 - .saturating_add(Weight::from_parts(17_725, 0).saturating_mul(p.into())) + // Minimum execution time: 22_326_000 picoseconds. + Weight::from_parts(22_654_227, 5698) + // Standard Error: 1_859 + .saturating_add(Weight::from_parts(168_822, 0).saturating_mul(a.into())) + // Standard Error: 1_921 + .saturating_add(Weight::from_parts(21_839, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Proxy Proxies (r:1 w:0) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `420 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 35_039_000 picoseconds. - Weight::from_parts(36_727_868, 5698) - // Standard Error: 4_463 - .saturating_add(Weight::from_parts(167_060, 0).saturating_mul(a.into())) - // Standard Error: 4_611 - .saturating_add(Weight::from_parts(59_836, 0).saturating_mul(p.into())) + // Minimum execution time: 31_551_000 picoseconds. + Weight::from_parts(32_205_445, 5698) + // Standard Error: 4_089 + .saturating_add(Weight::from_parts(167_596, 0).saturating_mul(a.into())) + // Standard Error: 4_225 + .saturating_add(Weight::from_parts(67_833, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_697_000 picoseconds. - Weight::from_parts(26_611_090, 4706) - // Standard Error: 2_306 - .saturating_add(Weight::from_parts(85_165, 0).saturating_mul(p.into())) + // Minimum execution time: 21_495_000 picoseconds. + Weight::from_parts(22_358_457, 4706) + // Standard Error: 1_606 + .saturating_add(Weight::from_parts(64_322, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_638_000 picoseconds. - Weight::from_parts(26_904_510, 4706) - // Standard Error: 2_669 - .saturating_add(Weight::from_parts(61_668, 0).saturating_mul(p.into())) + // Minimum execution time: 21_495_000 picoseconds. + Weight::from_parts(22_579_308, 4706) + // Standard Error: 2_571 + .saturating_add(Weight::from_parts(62_404, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_737_000 picoseconds. - Weight::from_parts(23_618_441, 4706) - // Standard Error: 1_729 - .saturating_add(Weight::from_parts(44_009, 0).saturating_mul(p.into())) + // Minimum execution time: 20_541_000 picoseconds. + Weight::from_parts(21_456_750, 4706) + // Standard Error: 1_697 + .saturating_add(Weight::from_parts(45_387, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn create_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `173` // Estimated: `4706` - // Minimum execution time: 27_364_000 picoseconds. - Weight::from_parts(28_632_271, 4706) - // Standard Error: 1_613 - .saturating_add(Weight::from_parts(2_453, 0).saturating_mul(p.into())) + // Minimum execution time: 22_809_000 picoseconds. + Weight::from_parts(23_878_644, 4706) + // Standard Error: 1_600 + .saturating_add(Weight::from_parts(10_149, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `198 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 23_552_000 picoseconds. - Weight::from_parts(24_874_553, 4706) - // Standard Error: 1_919 - .saturating_add(Weight::from_parts(38_799, 0).saturating_mul(p.into())) + // Minimum execution time: 20_993_000 picoseconds. + Weight::from_parts(22_067_418, 4706) + // Standard Error: 1_673 + .saturating_add(Weight::from_parts(52_703, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Proxy Proxies (r:1 w:0) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `161 + p * (37 ±0)` + // Measured: `306 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 15_182_000 picoseconds. - Weight::from_parts(15_919_146, 4706) - // Standard Error: 1_586 - .saturating_add(Weight::from_parts(31_768, 0).saturating_mul(p.into())) - .saturating_add(RocksDbWeight::get().reads(1_u64)) + // Minimum execution time: 18_280_000 picoseconds. + Weight::from_parts(19_655_145, 4706) + // Standard Error: 2_345 + .saturating_add(Weight::from_parts(36_306, 0).saturating_mul(p.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) } - /// Storage: Proxy Proxies (r:1 w:0) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `488 + a * (68 ±0) + p * (37 ±0)` + // Measured: `633 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 40_256_000 picoseconds. - Weight::from_parts(40_373_648, 5698) - // Standard Error: 3_978 - .saturating_add(Weight::from_parts(166_936, 0).saturating_mul(a.into())) - // Standard Error: 4_110 - .saturating_add(Weight::from_parts(54_329, 0).saturating_mul(p.into())) - .saturating_add(RocksDbWeight::get().reads(3_u64)) + // Minimum execution time: 41_789_000 picoseconds. + Weight::from_parts(41_812_078, 5698) + // Standard Error: 3_694 + .saturating_add(Weight::from_parts(163_029, 0).saturating_mul(a.into())) + // Standard Error: 3_817 + .saturating_add(Weight::from_parts(79_539, 0).saturating_mul(p.into())) + .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn remove_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 25_040_000 picoseconds. - Weight::from_parts(25_112_188, 5698) - // Standard Error: 2_143 - .saturating_add(Weight::from_parts(189_027, 0).saturating_mul(a.into())) - // Standard Error: 2_214 - .saturating_add(Weight::from_parts(26_683, 0).saturating_mul(p.into())) + // Minimum execution time: 22_475_000 picoseconds. + Weight::from_parts(22_666_821, 5698) + // Standard Error: 1_797 + .saturating_add(Weight::from_parts(170_629, 0).saturating_mul(a.into())) + // Standard Error: 1_857 + .saturating_add(Weight::from_parts(18_799, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `403 + a * (68 ±0)` // Estimated: `5698` - // Minimum execution time: 24_884_000 picoseconds. - Weight::from_parts(25_359_291, 5698) - // Standard Error: 2_019 - .saturating_add(Weight::from_parts(181_470, 0).saturating_mul(a.into())) - // Standard Error: 2_086 - .saturating_add(Weight::from_parts(17_725, 0).saturating_mul(p.into())) + // Minimum execution time: 22_326_000 picoseconds. + Weight::from_parts(22_654_227, 5698) + // Standard Error: 1_859 + .saturating_add(Weight::from_parts(168_822, 0).saturating_mul(a.into())) + // Standard Error: 1_921 + .saturating_add(Weight::from_parts(21_839, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Proxy Proxies (r:1 w:0) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) - /// Storage: Proxy Announcements (r:1 w:1) - /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `420 + a * (68 ±0) + p * (37 ±0)` // Estimated: `5698` - // Minimum execution time: 35_039_000 picoseconds. - Weight::from_parts(36_727_868, 5698) - // Standard Error: 4_463 - .saturating_add(Weight::from_parts(167_060, 0).saturating_mul(a.into())) - // Standard Error: 4_611 - .saturating_add(Weight::from_parts(59_836, 0).saturating_mul(p.into())) + // Minimum execution time: 31_551_000 picoseconds. + Weight::from_parts(32_205_445, 5698) + // Standard Error: 4_089 + .saturating_add(Weight::from_parts(167_596, 0).saturating_mul(a.into())) + // Standard Error: 4_225 + .saturating_add(Weight::from_parts(67_833, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_697_000 picoseconds. - Weight::from_parts(26_611_090, 4706) - // Standard Error: 2_306 - .saturating_add(Weight::from_parts(85_165, 0).saturating_mul(p.into())) + // Minimum execution time: 21_495_000 picoseconds. + Weight::from_parts(22_358_457, 4706) + // Standard Error: 1_606 + .saturating_add(Weight::from_parts(64_322, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 25_638_000 picoseconds. - Weight::from_parts(26_904_510, 4706) - // Standard Error: 2_669 - .saturating_add(Weight::from_parts(61_668, 0).saturating_mul(p.into())) + // Minimum execution time: 21_495_000 picoseconds. + Weight::from_parts(22_579_308, 4706) + // Standard Error: 2_571 + .saturating_add(Weight::from_parts(62_404, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `161 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 22_737_000 picoseconds. - Weight::from_parts(23_618_441, 4706) - // Standard Error: 1_729 - .saturating_add(Weight::from_parts(44_009, 0).saturating_mul(p.into())) + // Minimum execution time: 20_541_000 picoseconds. + Weight::from_parts(21_456_750, 4706) + // Standard Error: 1_697 + .saturating_add(Weight::from_parts(45_387, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 31]`. fn create_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `173` // Estimated: `4706` - // Minimum execution time: 27_364_000 picoseconds. - Weight::from_parts(28_632_271, 4706) - // Standard Error: 1_613 - .saturating_add(Weight::from_parts(2_453, 0).saturating_mul(p.into())) + // Minimum execution time: 22_809_000 picoseconds. + Weight::from_parts(23_878_644, 4706) + // Standard Error: 1_600 + .saturating_add(Weight::from_parts(10_149, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Proxy Proxies (r:1 w:1) - /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `198 + p * (37 ±0)` // Estimated: `4706` - // Minimum execution time: 23_552_000 picoseconds. - Weight::from_parts(24_874_553, 4706) - // Standard Error: 1_919 - .saturating_add(Weight::from_parts(38_799, 0).saturating_mul(p.into())) + // Minimum execution time: 20_993_000 picoseconds. + Weight::from_parts(22_067_418, 4706) + // Standard Error: 1_673 + .saturating_add(Weight::from_parts(52_703, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/ranked-collective/src/weights.rs b/substrate/frame/ranked-collective/src/weights.rs index 4ff0c3337d503fd66de4400ca40631cfcca300d9..e728635f2e721a5711106e60b4734104a6696d2a 100644 --- a/substrate/frame/ranked-collective/src/weights.rs +++ b/substrate/frame/ranked-collective/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_ranked_collective +//! Autogenerated weights for `pallet_ranked_collective` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/ranked-collective/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/ranked-collective/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_ranked_collective. +/// Weight functions needed for `pallet_ranked_collective`. pub trait WeightInfo { fn add_member() -> Weight; fn remove_member(r: u32, ) -> Weight; @@ -61,283 +60,295 @@ pub trait WeightInfo { fn exchange_member() -> Weight; } -/// Weights for pallet_ranked_collective using the Substrate node and recommended hardware. +/// Weights for `pallet_ranked_collective` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn add_member() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3507` - // Minimum execution time: 17_245_000 picoseconds. - Weight::from_parts(17_930_000, 3507) + // Minimum execution time: 15_440_000 picoseconds. + Weight::from_parts(15_990_000, 3507) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:11 w:11) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:11 w:11) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:11 w:11) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:11 w:11) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:11 w:22) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:11 w:22) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 10]`. fn remove_member(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `616 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 29_534_000 picoseconds. - Weight::from_parts(32_847_495, 3519) - // Standard Error: 24_211 - .saturating_add(Weight::from_parts(13_949_639, 0).saturating_mul(r.into())) + // Minimum execution time: 30_171_000 picoseconds. + Weight::from_parts(33_395_037, 3519) + // Standard Error: 21_741 + .saturating_add(Weight::from_parts(16_589_950, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into()))) - .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2529).saturating_mul(r.into())) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 10]`. fn promote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `314 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 20_333_000 picoseconds. - Weight::from_parts(21_592_224, 3507) - // Standard Error: 6_423 - .saturating_add(Weight::from_parts(321_314, 0).saturating_mul(r.into())) + // Minimum execution time: 18_597_000 picoseconds. + Weight::from_parts(19_774_947, 3507) + // Standard Error: 5_735 + .saturating_add(Weight::from_parts(339_013, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:1 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:1 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:1 w:2) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:1 w:2) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 10]`. fn demote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `632 + r * (72 ±0)` // Estimated: `3519` - // Minimum execution time: 29_446_000 picoseconds. - Weight::from_parts(32_447_715, 3519) - // Standard Error: 28_791 - .saturating_add(Weight::from_parts(822_890, 0).saturating_mul(r.into())) + // Minimum execution time: 29_670_000 picoseconds. + Weight::from_parts(33_022_564, 3519) + // Standard Error: 28_521 + .saturating_add(Weight::from_parts(817_563, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedPolls ReferendumInfoFor (r:1 w:1) - /// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen) - /// Storage: RankedCollective Voting (r:1 w:1) - /// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:1) + /// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Voting` (r:1 w:1) + /// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn vote() -> Weight { // Proof Size summary in bytes: // Measured: `628` // Estimated: `219984` - // Minimum execution time: 45_474_000 picoseconds. - Weight::from_parts(47_228_000, 219984) + // Minimum execution time: 42_072_000 picoseconds. + Weight::from_parts(43_360_000, 219984) .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: RankedPolls ReferendumInfoFor (r:1 w:0) - /// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen) - /// Storage: RankedCollective VotingCleanup (r:1 w:0) - /// Proof: RankedCollective VotingCleanup (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: RankedCollective Voting (r:100 w:100) - /// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) + /// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:0) + /// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::VotingCleanup` (r:1 w:0) + /// Proof: `RankedCollective::VotingCleanup` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Voting` (r:100 w:100) + /// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. fn cleanup_poll(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `462 + n * (50 ±0)` // Estimated: `3795 + n * (2540 ±0)` - // Minimum execution time: 13_903_000 picoseconds. - Weight::from_parts(18_209_102, 3795) - // Standard Error: 2_556 - .saturating_add(Weight::from_parts(1_237_454, 0).saturating_mul(n.into())) + // Minimum execution time: 14_338_000 picoseconds. + Weight::from_parts(18_144_424, 3795) + // Standard Error: 2_482 + .saturating_add(Weight::from_parts(1_200_576, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into())) } - /// Storage: `RankedCollective::Members` (r:2 w:2) /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) /// Storage: `RankedCollective::MemberCount` (r:2 w:2) /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) - /// Storage: `RankedCollective::IdToIndex` (r:2 w:2) + /// Storage: `RankedCollective::IdToIndex` (r:2 w:4) /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:2 w:2) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:0) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:2 w:2) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) /// Storage: `RankedCollective::IndexToId` (r:0 w:2) /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn exchange_member() -> Weight { // Proof Size summary in bytes: - // Measured: `437` - // Estimated: `6048` - // Minimum execution time: 138_000_000 picoseconds. - Weight::from_parts(141_000_000, 0) - .saturating_add(Weight::from_parts(0, 6048)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(8)) + // Measured: `625` + // Estimated: `19894` + // Minimum execution time: 73_317_000 picoseconds. + Weight::from_parts(75_103_000, 19894) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(14_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn add_member() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3507` - // Minimum execution time: 17_245_000 picoseconds. - Weight::from_parts(17_930_000, 3507) + // Minimum execution time: 15_440_000 picoseconds. + Weight::from_parts(15_990_000, 3507) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:11 w:11) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:11 w:11) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:11 w:11) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:11 w:11) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:11 w:22) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:11 w:22) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 10]`. fn remove_member(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `616 + r * (281 ±0)` // Estimated: `3519 + r * (2529 ±0)` - // Minimum execution time: 29_534_000 picoseconds. - Weight::from_parts(32_847_495, 3519) - // Standard Error: 24_211 - .saturating_add(Weight::from_parts(13_949_639, 0).saturating_mul(r.into())) + // Minimum execution time: 30_171_000 picoseconds. + Weight::from_parts(33_395_037, 3519) + // Standard Error: 21_741 + .saturating_add(Weight::from_parts(16_589_950, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into()))) - .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + .saturating_add(RocksDbWeight::get().writes((5_u64).saturating_mul(r.into()))) .saturating_add(Weight::from_parts(0, 2529).saturating_mul(r.into())) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:0 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:0 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:0 w:1) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:0 w:1) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 10]`. fn promote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `314 + r * (17 ±0)` // Estimated: `3507` - // Minimum execution time: 20_333_000 picoseconds. - Weight::from_parts(21_592_224, 3507) - // Standard Error: 6_423 - .saturating_add(Weight::from_parts(321_314, 0).saturating_mul(r.into())) + // Minimum execution time: 18_597_000 picoseconds. + Weight::from_parts(19_774_947, 3507) + // Standard Error: 5_735 + .saturating_add(Weight::from_parts(339_013, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: RankedCollective Members (r:1 w:1) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedCollective MemberCount (r:1 w:1) - /// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: RankedCollective IdToIndex (r:1 w:1) - /// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) - /// Storage: RankedCollective IndexToId (r:1 w:1) - /// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:1) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::MemberCount` (r:1 w:1) + /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IdToIndex` (r:1 w:2) + /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::IndexToId` (r:1 w:2) + /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 10]`. fn demote_member(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `632 + r * (72 ±0)` // Estimated: `3519` - // Minimum execution time: 29_446_000 picoseconds. - Weight::from_parts(32_447_715, 3519) - // Standard Error: 28_791 - .saturating_add(Weight::from_parts(822_890, 0).saturating_mul(r.into())) + // Minimum execution time: 29_670_000 picoseconds. + Weight::from_parts(33_022_564, 3519) + // Standard Error: 28_521 + .saturating_add(Weight::from_parts(817_563, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: RankedPolls ReferendumInfoFor (r:1 w:1) - /// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen) - /// Storage: RankedCollective Voting (r:1 w:1) - /// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:1) + /// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Voting` (r:1 w:1) + /// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn vote() -> Weight { // Proof Size summary in bytes: // Measured: `628` // Estimated: `219984` - // Minimum execution time: 45_474_000 picoseconds. - Weight::from_parts(47_228_000, 219984) + // Minimum execution time: 42_072_000 picoseconds. + Weight::from_parts(43_360_000, 219984) .saturating_add(RocksDbWeight::get().reads(5_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: RankedPolls ReferendumInfoFor (r:1 w:0) - /// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen) - /// Storage: RankedCollective VotingCleanup (r:1 w:0) - /// Proof: RankedCollective VotingCleanup (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) - /// Storage: RankedCollective Voting (r:100 w:100) - /// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen) + /// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:0) + /// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::VotingCleanup` (r:1 w:0) + /// Proof: `RankedCollective::VotingCleanup` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Voting` (r:100 w:100) + /// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 100]`. fn cleanup_poll(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `462 + n * (50 ±0)` // Estimated: `3795 + n * (2540 ±0)` - // Minimum execution time: 13_903_000 picoseconds. - Weight::from_parts(18_209_102, 3795) - // Standard Error: 2_556 - .saturating_add(Weight::from_parts(1_237_454, 0).saturating_mul(n.into())) + // Minimum execution time: 14_338_000 picoseconds. + Weight::from_parts(18_144_424, 3795) + // Standard Error: 2_482 + .saturating_add(Weight::from_parts(1_200_576, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into())) } - /// Storage: `RankedCollective::Members` (r:2 w:2) /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) /// Storage: `RankedCollective::MemberCount` (r:2 w:2) /// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) - /// Storage: `RankedCollective::IdToIndex` (r:2 w:2) + /// Storage: `RankedCollective::IdToIndex` (r:2 w:4) /// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::Member` (r:2 w:2) + /// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `CoreFellowship::MemberEvidence` (r:1 w:0) + /// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:2 w:2) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) /// Storage: `RankedCollective::IndexToId` (r:0 w:2) /// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`) fn exchange_member() -> Weight { // Proof Size summary in bytes: - // Measured: `437` - // Estimated: `6048` - // Minimum execution time: 138_000_000 picoseconds. - Weight::from_parts(141_000_000, 0) - .saturating_add(Weight::from_parts(0, 6048)) - .saturating_add(RocksDbWeight::get().reads(6)) - .saturating_add(RocksDbWeight::get().writes(8)) + // Measured: `625` + // Estimated: `19894` + // Minimum execution time: 73_317_000 picoseconds. + Weight::from_parts(75_103_000, 19894) + .saturating_add(RocksDbWeight::get().reads(11_u64)) + .saturating_add(RocksDbWeight::get().writes(14_u64)) } } diff --git a/substrate/frame/recovery/src/weights.rs b/substrate/frame/recovery/src/weights.rs index 84b19ae694eec1107b9229c1894646cb8368bc0d..e38ad0461afd6dbf92763460be806b661cc64501 100644 --- a/substrate/frame/recovery/src/weights.rs +++ b/substrate/frame/recovery/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_recovery +//! Autogenerated weights for `pallet_recovery` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/recovery/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/recovery/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_recovery. +/// Weight functions needed for `pallet_recovery`. pub trait WeightInfo { fn as_recovered() -> Weight; fn set_recovered() -> Weight; @@ -63,258 +62,266 @@ pub trait WeightInfo { fn cancel_recovered() -> Weight; } -/// Weights for pallet_recovery using the Substrate node and recommended hardware. +/// Weights for `pallet_recovery` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Recovery Proxy (r:1 w:0) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Proxy` (r:1 w:0) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) fn as_recovered() -> Weight { // Proof Size summary in bytes: - // Measured: `281` - // Estimated: `3545` - // Minimum execution time: 9_360_000 picoseconds. - Weight::from_parts(9_773_000, 3545) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Measured: `497` + // Estimated: `3997` + // Minimum execution time: 15_318_000 picoseconds. + Weight::from_parts(15_767_000, 3997) + .saturating_add(T::DbWeight::get().reads(3_u64)) } - /// Storage: Recovery Proxy (r:0 w:1) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Proxy` (r:0 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) fn set_recovered() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_146_000 picoseconds. - Weight::from_parts(9_507_000, 0) + // Minimum execution time: 7_153_000 picoseconds. + Weight::from_parts(7_578_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:1) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:1) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn create_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `175` + // Measured: `246` // Estimated: `3816` - // Minimum execution time: 26_472_000 picoseconds. - Weight::from_parts(27_917_651, 3816) - // Standard Error: 7_129 - .saturating_add(Weight::from_parts(59_239, 0).saturating_mul(n.into())) + // Minimum execution time: 23_303_000 picoseconds. + Weight::from_parts(24_725_158, 3816) + // Standard Error: 5_723 + .saturating_add(Weight::from_parts(13_638, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:0) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) - /// Storage: Recovery ActiveRecoveries (r:1 w:1) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) fn initiate_recovery() -> Weight { // Proof Size summary in bytes: - // Measured: `272` + // Measured: `343` // Estimated: `3854` - // Minimum execution time: 29_618_000 picoseconds. - Weight::from_parts(30_192_000, 3854) + // Minimum execution time: 26_914_000 picoseconds. + Weight::from_parts(28_041_000, 3854) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:0) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) - /// Storage: Recovery ActiveRecoveries (r:1 w:1) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn vouch_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `360 + n * (64 ±0)` + // Measured: `431 + n * (64 ±0)` // Estimated: `3854` - // Minimum execution time: 19_464_000 picoseconds. - Weight::from_parts(20_642_522, 3854) - // Standard Error: 5_974 - .saturating_add(Weight::from_parts(142_308, 0).saturating_mul(n.into())) + // Minimum execution time: 17_695_000 picoseconds. + Weight::from_parts(18_591_642, 3854) + // Standard Error: 5_582 + .saturating_add(Weight::from_parts(188_668, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:0) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) - /// Storage: Recovery ActiveRecoveries (r:1 w:0) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) - /// Storage: Recovery Proxy (r:1 w:1) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:0) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) + /// Storage: `Recovery::Proxy` (r:1 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn claim_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `392 + n * (64 ±0)` + // Measured: `463 + n * (64 ±0)` // Estimated: `3854` - // Minimum execution time: 23_656_000 picoseconds. - Weight::from_parts(24_903_269, 3854) - // Standard Error: 5_771 - .saturating_add(Weight::from_parts(117_343, 0).saturating_mul(n.into())) + // Minimum execution time: 22_580_000 picoseconds. + Weight::from_parts(23_526_020, 3854) + // Standard Error: 6_604 + .saturating_add(Weight::from_parts(134_340, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Recovery ActiveRecoveries (r:1 w:1) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn close_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `513 + n * (32 ±0)` + // Measured: `584 + n * (32 ±0)` // Estimated: `3854` - // Minimum execution time: 34_866_000 picoseconds. - Weight::from_parts(36_368_748, 3854) - // Standard Error: 6_600 - .saturating_add(Weight::from_parts(118_610, 0).saturating_mul(n.into())) + // Minimum execution time: 32_017_000 picoseconds. + Weight::from_parts(33_401_086, 3854) + // Standard Error: 6_498 + .saturating_add(Weight::from_parts(95_507, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Recovery ActiveRecoveries (r:1 w:0) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) - /// Storage: Recovery Recoverable (r:1 w:1) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:0) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) + /// Storage: `Recovery::Recoverable` (r:1 w:1) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn remove_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `270 + n * (32 ±0)` + // Measured: `341 + n * (32 ±0)` // Estimated: `3854` - // Minimum execution time: 31_405_000 picoseconds. - Weight::from_parts(32_552_838, 3854) - // Standard Error: 8_043 - .saturating_add(Weight::from_parts(171_605, 0).saturating_mul(n.into())) + // Minimum execution time: 28_641_000 picoseconds. + Weight::from_parts(30_230_511, 3854) + // Standard Error: 7_058 + .saturating_add(Weight::from_parts(61_004, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Recovery Proxy (r:1 w:1) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Proxy` (r:1 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) fn cancel_recovered() -> Weight { // Proof Size summary in bytes: - // Measured: `281` + // Measured: `352` // Estimated: `3545` - // Minimum execution time: 11_530_000 picoseconds. - Weight::from_parts(11_851_000, 3545) + // Minimum execution time: 11_767_000 picoseconds. + Weight::from_parts(12_275_000, 3545) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Recovery Proxy (r:1 w:0) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Proxy` (r:1 w:0) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) fn as_recovered() -> Weight { // Proof Size summary in bytes: - // Measured: `281` - // Estimated: `3545` - // Minimum execution time: 9_360_000 picoseconds. - Weight::from_parts(9_773_000, 3545) - .saturating_add(RocksDbWeight::get().reads(1_u64)) + // Measured: `497` + // Estimated: `3997` + // Minimum execution time: 15_318_000 picoseconds. + Weight::from_parts(15_767_000, 3997) + .saturating_add(RocksDbWeight::get().reads(3_u64)) } - /// Storage: Recovery Proxy (r:0 w:1) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Proxy` (r:0 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) fn set_recovered() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_146_000 picoseconds. - Weight::from_parts(9_507_000, 0) + // Minimum execution time: 7_153_000 picoseconds. + Weight::from_parts(7_578_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:1) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:1) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn create_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `175` + // Measured: `246` // Estimated: `3816` - // Minimum execution time: 26_472_000 picoseconds. - Weight::from_parts(27_917_651, 3816) - // Standard Error: 7_129 - .saturating_add(Weight::from_parts(59_239, 0).saturating_mul(n.into())) + // Minimum execution time: 23_303_000 picoseconds. + Weight::from_parts(24_725_158, 3816) + // Standard Error: 5_723 + .saturating_add(Weight::from_parts(13_638, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:0) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) - /// Storage: Recovery ActiveRecoveries (r:1 w:1) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) fn initiate_recovery() -> Weight { // Proof Size summary in bytes: - // Measured: `272` + // Measured: `343` // Estimated: `3854` - // Minimum execution time: 29_618_000 picoseconds. - Weight::from_parts(30_192_000, 3854) + // Minimum execution time: 26_914_000 picoseconds. + Weight::from_parts(28_041_000, 3854) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:0) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) - /// Storage: Recovery ActiveRecoveries (r:1 w:1) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn vouch_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `360 + n * (64 ±0)` + // Measured: `431 + n * (64 ±0)` // Estimated: `3854` - // Minimum execution time: 19_464_000 picoseconds. - Weight::from_parts(20_642_522, 3854) - // Standard Error: 5_974 - .saturating_add(Weight::from_parts(142_308, 0).saturating_mul(n.into())) + // Minimum execution time: 17_695_000 picoseconds. + Weight::from_parts(18_591_642, 3854) + // Standard Error: 5_582 + .saturating_add(Weight::from_parts(188_668, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Recovery Recoverable (r:1 w:0) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) - /// Storage: Recovery ActiveRecoveries (r:1 w:0) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) - /// Storage: Recovery Proxy (r:1 w:1) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:0) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) + /// Storage: `Recovery::Proxy` (r:1 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn claim_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `392 + n * (64 ±0)` + // Measured: `463 + n * (64 ±0)` // Estimated: `3854` - // Minimum execution time: 23_656_000 picoseconds. - Weight::from_parts(24_903_269, 3854) - // Standard Error: 5_771 - .saturating_add(Weight::from_parts(117_343, 0).saturating_mul(n.into())) + // Minimum execution time: 22_580_000 picoseconds. + Weight::from_parts(23_526_020, 3854) + // Standard Error: 6_604 + .saturating_add(Weight::from_parts(134_340, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Recovery ActiveRecoveries (r:1 w:1) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn close_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `513 + n * (32 ±0)` + // Measured: `584 + n * (32 ±0)` // Estimated: `3854` - // Minimum execution time: 34_866_000 picoseconds. - Weight::from_parts(36_368_748, 3854) - // Standard Error: 6_600 - .saturating_add(Weight::from_parts(118_610, 0).saturating_mul(n.into())) + // Minimum execution time: 32_017_000 picoseconds. + Weight::from_parts(33_401_086, 3854) + // Standard Error: 6_498 + .saturating_add(Weight::from_parts(95_507, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Recovery ActiveRecoveries (r:1 w:0) - /// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen) - /// Storage: Recovery Recoverable (r:1 w:1) - /// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:0) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`) + /// Storage: `Recovery::Recoverable` (r:1 w:1) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 9]`. fn remove_recovery(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `270 + n * (32 ±0)` + // Measured: `341 + n * (32 ±0)` // Estimated: `3854` - // Minimum execution time: 31_405_000 picoseconds. - Weight::from_parts(32_552_838, 3854) - // Standard Error: 8_043 - .saturating_add(Weight::from_parts(171_605, 0).saturating_mul(n.into())) + // Minimum execution time: 28_641_000 picoseconds. + Weight::from_parts(30_230_511, 3854) + // Standard Error: 7_058 + .saturating_add(Weight::from_parts(61_004, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Recovery Proxy (r:1 w:1) - /// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) + /// Storage: `Recovery::Proxy` (r:1 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) fn cancel_recovered() -> Weight { // Proof Size summary in bytes: - // Measured: `281` + // Measured: `352` // Estimated: `3545` - // Minimum execution time: 11_530_000 picoseconds. - Weight::from_parts(11_851_000, 3545) + // Minimum execution time: 11_767_000 picoseconds. + Weight::from_parts(12_275_000, 3545) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/referenda/src/weights.rs b/substrate/frame/referenda/src/weights.rs index 4b89379b311da6ac8cd10fd84a127e3693ab00de..b34758ee466764843210a673fa70aee0fe348d34 100644 --- a/substrate/frame/referenda/src/weights.rs +++ b/substrate/frame/referenda/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_referenda +//! Autogenerated weights for `pallet_referenda` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/referenda/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/referenda/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_referenda. +/// Weight functions needed for `pallet_referenda`. pub trait WeightInfo { fn submit() -> Weight; fn place_decision_deposit_preparing() -> Weight; @@ -84,842 +83,874 @@ pub trait WeightInfo { fn clear_metadata() -> Weight; } -/// Weights for pallet_referenda using the Substrate node and recommended hardware. +/// Weights for `pallet_referenda` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Referenda ReferendumCount (r:1 w:1) - /// Proof: Referenda ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:0 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumCount` (r:1 w:1) + /// Proof: `Referenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:0 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn submit() -> Weight { // Proof Size summary in bytes: - // Measured: `220` + // Measured: `286` // Estimated: `110487` - // Minimum execution time: 40_175_000 picoseconds. - Weight::from_parts(41_107_000, 110487) + // Minimum execution time: 33_162_000 picoseconds. + Weight::from_parts(34_217_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_preparing() -> Weight { // Proof Size summary in bytes: - // Measured: `473` + // Measured: `539` // Estimated: `219984` - // Minimum execution time: 50_922_000 picoseconds. - Weight::from_parts(52_179_000, 219984) + // Minimum execution time: 45_276_000 picoseconds. + Weight::from_parts(46_903_000, 219984) .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3260` + // Measured: `3326` // Estimated: `110487` - // Minimum execution time: 69_559_000 picoseconds. - Weight::from_parts(72_143_000, 110487) + // Minimum execution time: 63_832_000 picoseconds. + Weight::from_parts(65_616_000, 110487) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3280` + // Measured: `3346` // Estimated: `110487` - // Minimum execution time: 68_833_000 picoseconds. - Weight::from_parts(70_987_000, 110487) + // Minimum execution time: 63_726_000 picoseconds. + Weight::from_parts(64_909_000, 110487) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `473` + // Measured: `539` // Estimated: `219984` - // Minimum execution time: 61_794_000 picoseconds. - Weight::from_parts(62_846_000, 219984) + // Minimum execution time: 53_001_000 picoseconds. + Weight::from_parts(54_489_000, 219984) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) - } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `473` + // Measured: `539` // Estimated: `219984` - // Minimum execution time: 58_664_000 picoseconds. - Weight::from_parts(60_195_000, 219984) + // Minimum execution time: 51_021_000 picoseconds. + Weight::from_parts(53_006_000, 219984) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn refund_decision_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `351` + // Measured: `417` // Estimated: `3831` - // Minimum execution time: 30_850_000 picoseconds. - Weight::from_parts(32_130_000, 3831) + // Minimum execution time: 26_572_000 picoseconds. + Weight::from_parts(27_534_000, 3831) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn refund_submission_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `341` + // Measured: `407` // Estimated: `3831` - // Minimum execution time: 30_747_000 picoseconds. - Weight::from_parts(32_196_000, 3831) + // Minimum execution time: 26_897_000 picoseconds. + Weight::from_parts(27_883_000, 3831) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn cancel() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `219984` - // Minimum execution time: 36_139_000 picoseconds. - Weight::from_parts(37_252_000, 219984) + // Minimum execution time: 31_767_000 picoseconds. + Weight::from_parts(33_045_000, 219984) .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: Referenda MetadataOf (r:1 w:0) - /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:1 w:0) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn kill() -> Weight { // Proof Size summary in bytes: - // Measured: `622` + // Measured: `688` // Estimated: `219984` - // Minimum execution time: 80_862_000 picoseconds. - Weight::from_parts(83_045_000, 219984) + // Minimum execution time: 67_798_000 picoseconds. + Weight::from_parts(70_044_000, 219984) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Referenda TrackQueue (r:1 w:0) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) + /// Storage: `Referenda::TrackQueue` (r:1 w:0) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) fn one_fewer_deciding_queue_empty() -> Weight { // Proof Size summary in bytes: - // Measured: `174` + // Measured: `240` // Estimated: `5477` - // Minimum execution time: 10_136_000 picoseconds. - Weight::from_parts(10_638_000, 5477) + // Minimum execution time: 10_056_000 picoseconds. + Weight::from_parts(10_460_000, 5477) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `3150` + // Measured: `3216` // Estimated: `110487` - // Minimum execution time: 52_022_000 picoseconds. - Weight::from_parts(53_910_000, 110487) + // Minimum execution time: 44_293_000 picoseconds. + Weight::from_parts(45_784_000, 110487) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn one_fewer_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `3150` + // Measured: `3216` // Estimated: `110487` - // Minimum execution time: 53_683_000 picoseconds. - Weight::from_parts(55_707_000, 110487) + // Minimum execution time: 45_642_000 picoseconds. + Weight::from_parts(47_252_000, 110487) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_requeued_insertion() -> Weight { // Proof Size summary in bytes: - // Measured: `3011` + // Measured: `3077` // Estimated: `5477` - // Minimum execution time: 24_043_000 picoseconds. - Weight::from_parts(24_512_000, 5477) + // Minimum execution time: 22_096_000 picoseconds. + Weight::from_parts(22_496_000, 5477) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_requeued_slide() -> Weight { // Proof Size summary in bytes: - // Measured: `3011` + // Measured: `3077` // Estimated: `5477` - // Minimum execution time: 23_588_000 picoseconds. - Weight::from_parts(24_422_000, 5477) + // Minimum execution time: 21_931_000 picoseconds. + Weight::from_parts(22_312_000, 5477) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3015` + // Measured: `3081` // Estimated: `5477` - // Minimum execution time: 31_443_000 picoseconds. - Weight::from_parts(32_725_000, 5477) + // Minimum execution time: 28_890_000 picoseconds. + Weight::from_parts(29_679_000, 5477) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3035` + // Measured: `3101` // Estimated: `5477` - // Minimum execution time: 30_319_000 picoseconds. - Weight::from_parts(31_652_000, 5477) + // Minimum execution time: 28_875_000 picoseconds. + Weight::from_parts(29_492_000, 5477) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_no_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `333` + // Measured: `399` // Estimated: `110487` - // Minimum execution time: 23_062_000 picoseconds. - Weight::from_parts(23_614_000, 110487) + // Minimum execution time: 19_787_000 picoseconds. + Weight::from_parts(20_493_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_preparing() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `110487` - // Minimum execution time: 23_537_000 picoseconds. - Weight::from_parts(24_267_000, 110487) + // Minimum execution time: 19_987_000 picoseconds. + Weight::from_parts(20_860_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn nudge_referendum_timed_out() -> Weight { // Proof Size summary in bytes: - // Measured: `278` + // Measured: `344` // Estimated: `3831` - // Minimum execution time: 16_388_000 picoseconds. - Weight::from_parts(16_676_000, 3831) + // Minimum execution time: 13_416_000 picoseconds. + Weight::from_parts(13_857_000, 3831) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_begin_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `110487` - // Minimum execution time: 32_801_000 picoseconds. - Weight::from_parts(34_053_000, 110487) + // Minimum execution time: 27_199_000 picoseconds. + Weight::from_parts(28_562_000, 110487) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_begin_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `110487` - // Minimum execution time: 35_704_000 picoseconds. - Weight::from_parts(36_451_000, 110487) + // Minimum execution time: 29_205_000 picoseconds. + Weight::from_parts(30_407_000, 110487) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_begin_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `434` + // Measured: `500` // Estimated: `110487` - // Minimum execution time: 29_151_000 picoseconds. - Weight::from_parts(30_055_000, 110487) + // Minimum execution time: 24_136_000 picoseconds. + Weight::from_parts(24_868_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_end_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `417` + // Measured: `483` // Estimated: `110487` - // Minimum execution time: 29_265_000 picoseconds. - Weight::from_parts(30_213_000, 110487) + // Minimum execution time: 23_860_000 picoseconds. + Weight::from_parts(24_556_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_continue_not_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `434` + // Measured: `500` // Estimated: `110487` - // Minimum execution time: 27_760_000 picoseconds. - Weight::from_parts(28_381_000, 110487) + // Minimum execution time: 23_409_000 picoseconds. + Weight::from_parts(24_354_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_continue_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `438` + // Measured: `504` // Estimated: `110487` - // Minimum execution time: 25_464_000 picoseconds. - Weight::from_parts(26_348_000, 110487) + // Minimum execution time: 21_947_000 picoseconds. + Weight::from_parts(22_485_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: Scheduler Lookup (r:1 w:1) - /// Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn nudge_referendum_approved() -> Weight { // Proof Size summary in bytes: - // Measured: `438` + // Measured: `504` // Estimated: `219984` - // Minimum execution time: 42_629_000 picoseconds. - Weight::from_parts(43_732_000, 219984) + // Minimum execution time: 34_643_000 picoseconds. + Weight::from_parts(36_193_000, 219984) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_rejected() -> Weight { // Proof Size summary in bytes: - // Measured: `434` + // Measured: `500` // Estimated: `110487` - // Minimum execution time: 30_015_000 picoseconds. - Weight::from_parts(30_827_000, 110487) + // Minimum execution time: 24_097_000 picoseconds. + Weight::from_parts(24_881_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Referenda MetadataOf (r:0 w:1) - /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:0 w:1) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_some_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `422` + // Measured: `555` // Estimated: `3831` - // Minimum execution time: 19_901_000 picoseconds. - Weight::from_parts(20_681_000, 3831) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 19_947_000 picoseconds. + Weight::from_parts(20_396_000, 3831) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda MetadataOf (r:1 w:1) - /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:1 w:1) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `355` + // Measured: `421` // Estimated: `3831` - // Minimum execution time: 17_323_000 picoseconds. - Weight::from_parts(18_227_000, 3831) + // Minimum execution time: 15_516_000 picoseconds. + Weight::from_parts(16_094_000, 3831) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Referenda ReferendumCount (r:1 w:1) - /// Proof: Referenda ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:0 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumCount` (r:1 w:1) + /// Proof: `Referenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:0 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn submit() -> Weight { // Proof Size summary in bytes: - // Measured: `220` + // Measured: `286` // Estimated: `110487` - // Minimum execution time: 40_175_000 picoseconds. - Weight::from_parts(41_107_000, 110487) + // Minimum execution time: 33_162_000 picoseconds. + Weight::from_parts(34_217_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_preparing() -> Weight { // Proof Size summary in bytes: - // Measured: `473` + // Measured: `539` // Estimated: `219984` - // Minimum execution time: 50_922_000 picoseconds. - Weight::from_parts(52_179_000, 219984) + // Minimum execution time: 45_276_000 picoseconds. + Weight::from_parts(46_903_000, 219984) .saturating_add(RocksDbWeight::get().reads(3_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3260` + // Measured: `3326` // Estimated: `110487` - // Minimum execution time: 69_559_000 picoseconds. - Weight::from_parts(72_143_000, 110487) + // Minimum execution time: 63_832_000 picoseconds. + Weight::from_parts(65_616_000, 110487) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3280` + // Measured: `3346` // Estimated: `110487` - // Minimum execution time: 68_833_000 picoseconds. - Weight::from_parts(70_987_000, 110487) + // Minimum execution time: 63_726_000 picoseconds. + Weight::from_parts(64_909_000, 110487) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `473` + // Measured: `539` // Estimated: `219984` - // Minimum execution time: 61_794_000 picoseconds. - Weight::from_parts(62_846_000, 219984) + // Minimum execution time: 53_001_000 picoseconds. + Weight::from_parts(54_489_000, 219984) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) - } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + .saturating_add(RocksDbWeight::get().writes(5_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn place_decision_deposit_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `473` + // Measured: `539` // Estimated: `219984` - // Minimum execution time: 58_664_000 picoseconds. - Weight::from_parts(60_195_000, 219984) + // Minimum execution time: 51_021_000 picoseconds. + Weight::from_parts(53_006_000, 219984) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn refund_decision_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `351` + // Measured: `417` // Estimated: `3831` - // Minimum execution time: 30_850_000 picoseconds. - Weight::from_parts(32_130_000, 3831) + // Minimum execution time: 26_572_000 picoseconds. + Weight::from_parts(27_534_000, 3831) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn refund_submission_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `341` + // Measured: `407` // Estimated: `3831` - // Minimum execution time: 30_747_000 picoseconds. - Weight::from_parts(32_196_000, 3831) + // Minimum execution time: 26_897_000 picoseconds. + Weight::from_parts(27_883_000, 3831) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn cancel() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `219984` - // Minimum execution time: 36_139_000 picoseconds. - Weight::from_parts(37_252_000, 219984) + // Minimum execution time: 31_767_000 picoseconds. + Weight::from_parts(33_045_000, 219984) .saturating_add(RocksDbWeight::get().reads(3_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: Referenda MetadataOf (r:1 w:0) - /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:1 w:0) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn kill() -> Weight { // Proof Size summary in bytes: - // Measured: `622` + // Measured: `688` // Estimated: `219984` - // Minimum execution time: 80_862_000 picoseconds. - Weight::from_parts(83_045_000, 219984) + // Minimum execution time: 67_798_000 picoseconds. + Weight::from_parts(70_044_000, 219984) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Referenda TrackQueue (r:1 w:0) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) + /// Storage: `Referenda::TrackQueue` (r:1 w:0) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) fn one_fewer_deciding_queue_empty() -> Weight { // Proof Size summary in bytes: - // Measured: `174` + // Measured: `240` // Estimated: `5477` - // Minimum execution time: 10_136_000 picoseconds. - Weight::from_parts(10_638_000, 5477) + // Minimum execution time: 10_056_000 picoseconds. + Weight::from_parts(10_460_000, 5477) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn one_fewer_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `3150` + // Measured: `3216` // Estimated: `110487` - // Minimum execution time: 52_022_000 picoseconds. - Weight::from_parts(53_910_000, 110487) + // Minimum execution time: 44_293_000 picoseconds. + Weight::from_parts(45_784_000, 110487) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn one_fewer_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `3150` + // Measured: `3216` // Estimated: `110487` - // Minimum execution time: 53_683_000 picoseconds. - Weight::from_parts(55_707_000, 110487) + // Minimum execution time: 45_642_000 picoseconds. + Weight::from_parts(47_252_000, 110487) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_requeued_insertion() -> Weight { // Proof Size summary in bytes: - // Measured: `3011` + // Measured: `3077` // Estimated: `5477` - // Minimum execution time: 24_043_000 picoseconds. - Weight::from_parts(24_512_000, 5477) + // Minimum execution time: 22_096_000 picoseconds. + Weight::from_parts(22_496_000, 5477) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_requeued_slide() -> Weight { // Proof Size summary in bytes: - // Measured: `3011` + // Measured: `3077` // Estimated: `5477` - // Minimum execution time: 23_588_000 picoseconds. - Weight::from_parts(24_422_000, 5477) + // Minimum execution time: 21_931_000 picoseconds. + Weight::from_parts(22_312_000, 5477) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3015` + // Measured: `3081` // Estimated: `5477` - // Minimum execution time: 31_443_000 picoseconds. - Weight::from_parts(32_725_000, 5477) + // Minimum execution time: 28_890_000 picoseconds. + Weight::from_parts(29_679_000, 5477) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:0) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Referenda TrackQueue (r:1 w:1) - /// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) fn nudge_referendum_not_queued() -> Weight { // Proof Size summary in bytes: - // Measured: `3035` + // Measured: `3101` // Estimated: `5477` - // Minimum execution time: 30_319_000 picoseconds. - Weight::from_parts(31_652_000, 5477) + // Minimum execution time: 28_875_000 picoseconds. + Weight::from_parts(29_492_000, 5477) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_no_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `333` + // Measured: `399` // Estimated: `110487` - // Minimum execution time: 23_062_000 picoseconds. - Weight::from_parts(23_614_000, 110487) + // Minimum execution time: 19_787_000 picoseconds. + Weight::from_parts(20_493_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_preparing() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `110487` - // Minimum execution time: 23_537_000 picoseconds. - Weight::from_parts(24_267_000, 110487) + // Minimum execution time: 19_987_000 picoseconds. + Weight::from_parts(20_860_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) fn nudge_referendum_timed_out() -> Weight { // Proof Size summary in bytes: - // Measured: `278` + // Measured: `344` // Estimated: `3831` - // Minimum execution time: 16_388_000 picoseconds. - Weight::from_parts(16_676_000, 3831) + // Minimum execution time: 13_416_000 picoseconds. + Weight::from_parts(13_857_000, 3831) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_begin_deciding_failing() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `110487` - // Minimum execution time: 32_801_000 picoseconds. - Weight::from_parts(34_053_000, 110487) + // Minimum execution time: 27_199_000 picoseconds. + Weight::from_parts(28_562_000, 110487) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda DecidingCount (r:1 w:1) - /// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_begin_deciding_passing() -> Weight { // Proof Size summary in bytes: - // Measured: `381` + // Measured: `447` // Estimated: `110487` - // Minimum execution time: 35_704_000 picoseconds. - Weight::from_parts(36_451_000, 110487) + // Minimum execution time: 29_205_000 picoseconds. + Weight::from_parts(30_407_000, 110487) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_begin_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `434` + // Measured: `500` // Estimated: `110487` - // Minimum execution time: 29_151_000 picoseconds. - Weight::from_parts(30_055_000, 110487) + // Minimum execution time: 24_136_000 picoseconds. + Weight::from_parts(24_868_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_end_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `417` + // Measured: `483` // Estimated: `110487` - // Minimum execution time: 29_265_000 picoseconds. - Weight::from_parts(30_213_000, 110487) + // Minimum execution time: 23_860_000 picoseconds. + Weight::from_parts(24_556_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_continue_not_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `434` + // Measured: `500` // Estimated: `110487` - // Minimum execution time: 27_760_000 picoseconds. - Weight::from_parts(28_381_000, 110487) + // Minimum execution time: 23_409_000 picoseconds. + Weight::from_parts(24_354_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_continue_confirming() -> Weight { // Proof Size summary in bytes: - // Measured: `438` + // Measured: `504` // Estimated: `110487` - // Minimum execution time: 25_464_000 picoseconds. - Weight::from_parts(26_348_000, 110487) + // Minimum execution time: 21_947_000 picoseconds. + Weight::from_parts(22_485_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:2 w:2) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) - /// Storage: Scheduler Lookup (r:1 w:1) - /// Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn nudge_referendum_approved() -> Weight { // Proof Size summary in bytes: - // Measured: `438` + // Measured: `504` // Estimated: `219984` - // Minimum execution time: 42_629_000 picoseconds. - Weight::from_parts(43_732_000, 219984) + // Minimum execution time: 34_643_000 picoseconds. + Weight::from_parts(36_193_000, 219984) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:1) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Scheduler Agenda (r:1 w:1) - /// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) fn nudge_referendum_rejected() -> Weight { // Proof Size summary in bytes: - // Measured: `434` + // Measured: `500` // Estimated: `110487` - // Minimum execution time: 30_015_000 picoseconds. - Weight::from_parts(30_827_000, 110487) + // Minimum execution time: 24_097_000 picoseconds. + Weight::from_parts(24_881_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:0) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) - /// Storage: Referenda MetadataOf (r:0 w:1) - /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:0 w:1) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_some_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `422` + // Measured: `555` // Estimated: `3831` - // Minimum execution time: 19_901_000 picoseconds. - Weight::from_parts(20_681_000, 3831) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Minimum execution time: 19_947_000 picoseconds. + Weight::from_parts(20_396_000, 3831) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Referenda ReferendumInfoFor (r:1 w:0) - /// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen) - /// Storage: Referenda MetadataOf (r:1 w:1) - /// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:1 w:1) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `355` + // Measured: `421` // Estimated: `3831` - // Minimum execution time: 17_323_000 picoseconds. - Weight::from_parts(18_227_000, 3831) + // Minimum execution time: 15_516_000 picoseconds. + Weight::from_parts(16_094_000, 3831) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/remark/src/weights.rs b/substrate/frame/remark/src/weights.rs index 46475db163ffd5827486f8ad562c2f3ecc6deb3d..8a8bdef6dd0fe74bd72d1abfa561b2b37218dafd 100644 --- a/substrate/frame/remark/src/weights.rs +++ b/substrate/frame/remark/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_remark +//! Autogenerated weights for `pallet_remark` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/remark/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/remark/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,12 +49,12 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_remark. +/// Weight functions needed for `pallet_remark`. pub trait WeightInfo { fn store(l: u32, ) -> Weight; } -/// Weights for pallet_remark using the Substrate node and recommended hardware. +/// Weights for `pallet_remark` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { /// The range of component `l` is `[1, 1048576]`. @@ -63,23 +62,23 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_471_000 picoseconds. - Weight::from_parts(8_586_000, 0) + // Minimum execution time: 6_652_000 picoseconds. + Weight::from_parts(6_793_000, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_359, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(1_364, 0).saturating_mul(l.into())) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { /// The range of component `l` is `[1, 1048576]`. fn store(l: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_471_000 picoseconds. - Weight::from_parts(8_586_000, 0) + // Minimum execution time: 6_652_000 picoseconds. + Weight::from_parts(6_793_000, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_359, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(1_364, 0).saturating_mul(l.into())) } } diff --git a/substrate/frame/safe-mode/src/weights.rs b/substrate/frame/safe-mode/src/weights.rs index f72bebcab9a4db74fba3ef282692324e32858fc3..c2ce2cfab9b9b9c6c7343d9c75aee40b1cd6bde6 100644 --- a/substrate/frame/safe-mode/src/weights.rs +++ b/substrate/frame/safe-mode/src/weights.rs @@ -17,27 +17,29 @@ //! Autogenerated weights for `pallet_safe_mode` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-aahe6cbd-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_safe_mode +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json -// --pallet=pallet_safe_mode -// --chain=dev -// --header=./HEADER-APACHE2 -// --output=./frame/safe-mode/src/weights.rs -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/safe-mode/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -70,8 +72,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1489` - // Minimum execution time: 2_500_000 picoseconds. - Weight::from_parts(2_594_000, 1489) + // Minimum execution time: 2_152_000 picoseconds. + Weight::from_parts(2_283_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:1) @@ -80,23 +82,23 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `169` // Estimated: `1489` - // Minimum execution time: 8_868_000 picoseconds. - Weight::from_parts(9_415_000, 1489) + // Minimum execution time: 6_657_000 picoseconds. + Weight::from_parts(6_955_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:1) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `SafeMode::Deposits` (r:0 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn enter() -> Weight { // Proof Size summary in bytes: // Measured: `142` - // Estimated: `3550` - // Minimum execution time: 50_541_000 picoseconds. - Weight::from_parts(51_558_000, 3550) + // Estimated: `3658` + // Minimum execution time: 49_366_000 picoseconds. + Weight::from_parts(50_506_000, 3658) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -106,23 +108,23 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1489` - // Minimum execution time: 10_489_000 picoseconds. - Weight::from_parts(10_833_000, 1489) + // Minimum execution time: 7_843_000 picoseconds. + Weight::from_parts(8_205_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:1) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `SafeMode::Deposits` (r:0 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn extend() -> Weight { // Proof Size summary in bytes: // Measured: `169` - // Estimated: `3550` - // Minimum execution time: 50_818_000 picoseconds. - Weight::from_parts(51_873_000, 3550) + // Estimated: `3658` + // Minimum execution time: 50_487_000 picoseconds. + Weight::from_parts(52_101_000, 3658) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -132,8 +134,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `169` // Estimated: `1489` - // Minimum execution time: 10_843_000 picoseconds. - Weight::from_parts(11_314_000, 1489) + // Minimum execution time: 8_517_000 picoseconds. + Weight::from_parts(8_894_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -143,8 +145,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `169` // Estimated: `1489` - // Minimum execution time: 10_382_000 picoseconds. - Weight::from_parts(10_814_000, 1489) + // Minimum execution time: 8_451_000 picoseconds. + Weight::from_parts(8_745_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -153,39 +155,39 @@ impl WeightInfo for SubstrateWeight { /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn release_deposit() -> Weight { // Proof Size summary in bytes: // Measured: `292` - // Estimated: `3550` - // Minimum execution time: 42_828_000 picoseconds. - Weight::from_parts(43_752_000, 3550) + // Estimated: `3658` + // Minimum execution time: 42_504_000 picoseconds. + Weight::from_parts(45_493_000, 3658) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `SafeMode::Deposits` (r:1 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn force_release_deposit() -> Weight { // Proof Size summary in bytes: // Measured: `292` - // Estimated: `3550` - // Minimum execution time: 40_196_000 picoseconds. - Weight::from_parts(41_298_000, 3550) + // Estimated: `3658` + // Minimum execution time: 40_864_000 picoseconds. + Weight::from_parts(41_626_000, 3658) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `SafeMode::Deposits` (r:1 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn force_slash_deposit() -> Weight { // Proof Size summary in bytes: // Measured: `292` - // Estimated: `3550` - // Minimum execution time: 33_660_000 picoseconds. - Weight::from_parts(34_426_000, 3550) + // Estimated: `3658` + // Minimum execution time: 31_943_000 picoseconds. + Weight::from_parts(33_033_000, 3658) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -199,8 +201,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1489` - // Minimum execution time: 2_500_000 picoseconds. - Weight::from_parts(2_594_000, 1489) + // Minimum execution time: 2_152_000 picoseconds. + Weight::from_parts(2_283_000, 1489) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:1) @@ -209,23 +211,23 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `169` // Estimated: `1489` - // Minimum execution time: 8_868_000 picoseconds. - Weight::from_parts(9_415_000, 1489) + // Minimum execution time: 6_657_000 picoseconds. + Weight::from_parts(6_955_000, 1489) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:1) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `SafeMode::Deposits` (r:0 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn enter() -> Weight { // Proof Size summary in bytes: // Measured: `142` - // Estimated: `3550` - // Minimum execution time: 50_541_000 picoseconds. - Weight::from_parts(51_558_000, 3550) + // Estimated: `3658` + // Minimum execution time: 49_366_000 picoseconds. + Weight::from_parts(50_506_000, 3658) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -235,23 +237,23 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1489` - // Minimum execution time: 10_489_000 picoseconds. - Weight::from_parts(10_833_000, 1489) + // Minimum execution time: 7_843_000 picoseconds. + Weight::from_parts(8_205_000, 1489) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:1) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `SafeMode::Deposits` (r:0 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn extend() -> Weight { // Proof Size summary in bytes: // Measured: `169` - // Estimated: `3550` - // Minimum execution time: 50_818_000 picoseconds. - Weight::from_parts(51_873_000, 3550) + // Estimated: `3658` + // Minimum execution time: 50_487_000 picoseconds. + Weight::from_parts(52_101_000, 3658) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -261,8 +263,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `169` // Estimated: `1489` - // Minimum execution time: 10_843_000 picoseconds. - Weight::from_parts(11_314_000, 1489) + // Minimum execution time: 8_517_000 picoseconds. + Weight::from_parts(8_894_000, 1489) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -272,8 +274,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `169` // Estimated: `1489` - // Minimum execution time: 10_382_000 picoseconds. - Weight::from_parts(10_814_000, 1489) + // Minimum execution time: 8_451_000 picoseconds. + Weight::from_parts(8_745_000, 1489) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -282,39 +284,39 @@ impl WeightInfo for () { /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn release_deposit() -> Weight { // Proof Size summary in bytes: // Measured: `292` - // Estimated: `3550` - // Minimum execution time: 42_828_000 picoseconds. - Weight::from_parts(43_752_000, 3550) + // Estimated: `3658` + // Minimum execution time: 42_504_000 picoseconds. + Weight::from_parts(45_493_000, 3658) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `SafeMode::Deposits` (r:1 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn force_release_deposit() -> Weight { // Proof Size summary in bytes: // Measured: `292` - // Estimated: `3550` - // Minimum execution time: 40_196_000 picoseconds. - Weight::from_parts(41_298_000, 3550) + // Estimated: `3658` + // Minimum execution time: 40_864_000 picoseconds. + Weight::from_parts(41_626_000, 3658) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `SafeMode::Deposits` (r:1 w:1) /// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn force_slash_deposit() -> Weight { // Proof Size summary in bytes: // Measured: `292` - // Estimated: `3550` - // Minimum execution time: 33_660_000 picoseconds. - Weight::from_parts(34_426_000, 3550) + // Estimated: `3658` + // Minimum execution time: 31_943_000 picoseconds. + Weight::from_parts(33_033_000, 3658) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } diff --git a/substrate/frame/salary/src/weights.rs b/substrate/frame/salary/src/weights.rs index 3d3b9e315959be023cfe09ae00e993cabedea99a..d4e6331919b6042dd4762f52adfc486848bcec3a 100644 --- a/substrate/frame/salary/src/weights.rs +++ b/substrate/frame/salary/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_salary +//! Autogenerated weights for `pallet_salary` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/salary/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/salary/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_salary. +/// Weight functions needed for `pallet_salary`. pub trait WeightInfo { fn init() -> Weight; fn bump() -> Weight; @@ -61,204 +60,204 @@ pub trait WeightInfo { fn check_payment() -> Weight; } -/// Weights for pallet_salary using the Substrate node and recommended hardware. +/// Weights for `pallet_salary` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) fn init() -> Weight { // Proof Size summary in bytes: // Measured: `4` // Estimated: `1541` - // Minimum execution time: 10_778_000 picoseconds. - Weight::from_parts(11_084_000, 1541) + // Minimum execution time: 7_382_000 picoseconds. + Weight::from_parts(7_793_000, 1541) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) fn bump() -> Weight { // Proof Size summary in bytes: // Measured: `86` // Estimated: `1541` - // Minimum execution time: 12_042_000 picoseconds. - Weight::from_parts(12_645_000, 1541) + // Minimum execution time: 8_744_000 picoseconds. + Weight::from_parts(9_216_000, 1541) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Salary Status (r:1 w:0) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:0) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) fn induct() -> Weight { // Proof Size summary in bytes: // Measured: `395` // Estimated: `3543` - // Minimum execution time: 18_374_000 picoseconds. - Weight::from_parts(19_200_000, 3543) + // Minimum execution time: 16_728_000 picoseconds. + Weight::from_parts(17_387_000, 3543) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) fn register() -> Weight { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3543` - // Minimum execution time: 22_696_000 picoseconds. - Weight::from_parts(23_275_000, 3543) + // Minimum execution time: 19_744_000 picoseconds. + Weight::from_parts(20_225_000, 3543) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) fn payout() -> Weight { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3543` - // Minimum execution time: 63_660_000 picoseconds. - Weight::from_parts(65_006_000, 3543) + // Minimum execution time: 56_084_000 picoseconds. + Weight::from_parts(58_484_000, 3543) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn payout_other() -> Weight { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3593` - // Minimum execution time: 64_706_000 picoseconds. - Weight::from_parts(65_763_000, 3593) + // Minimum execution time: 57_341_000 picoseconds. + Weight::from_parts(59_882_000, 3593) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) fn check_payment() -> Weight { // Proof Size summary in bytes: // Measured: `170` // Estimated: `3543` - // Minimum execution time: 11_838_000 picoseconds. - Weight::from_parts(12_323_000, 3543) + // Minimum execution time: 10_788_000 picoseconds. + Weight::from_parts(11_109_000, 3543) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) fn init() -> Weight { // Proof Size summary in bytes: // Measured: `4` // Estimated: `1541` - // Minimum execution time: 10_778_000 picoseconds. - Weight::from_parts(11_084_000, 1541) + // Minimum execution time: 7_382_000 picoseconds. + Weight::from_parts(7_793_000, 1541) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) fn bump() -> Weight { // Proof Size summary in bytes: // Measured: `86` // Estimated: `1541` - // Minimum execution time: 12_042_000 picoseconds. - Weight::from_parts(12_645_000, 1541) + // Minimum execution time: 8_744_000 picoseconds. + Weight::from_parts(9_216_000, 1541) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Salary Status (r:1 w:0) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:0) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) fn induct() -> Weight { // Proof Size summary in bytes: // Measured: `395` // Estimated: `3543` - // Minimum execution time: 18_374_000 picoseconds. - Weight::from_parts(19_200_000, 3543) + // Minimum execution time: 16_728_000 picoseconds. + Weight::from_parts(17_387_000, 3543) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) fn register() -> Weight { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3543` - // Minimum execution time: 22_696_000 picoseconds. - Weight::from_parts(23_275_000, 3543) + // Minimum execution time: 19_744_000 picoseconds. + Weight::from_parts(20_225_000, 3543) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) fn payout() -> Weight { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3543` - // Minimum execution time: 63_660_000 picoseconds. - Weight::from_parts(65_006_000, 3543) + // Minimum execution time: 56_084_000 picoseconds. + Weight::from_parts(58_484_000, 3543) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) - /// Storage: RankedCollective Members (r:1 w:0) - /// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) + /// Storage: `RankedCollective::Members` (r:1 w:0) + /// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn payout_other() -> Weight { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3593` - // Minimum execution time: 64_706_000 picoseconds. - Weight::from_parts(65_763_000, 3593) + // Minimum execution time: 57_341_000 picoseconds. + Weight::from_parts(59_882_000, 3593) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Salary Status (r:1 w:1) - /// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen) - /// Storage: Salary Claimant (r:1 w:1) - /// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen) + /// Storage: `Salary::Status` (r:1 w:1) + /// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`) + /// Storage: `Salary::Claimant` (r:1 w:1) + /// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`) fn check_payment() -> Weight { // Proof Size summary in bytes: // Measured: `170` // Estimated: `3543` - // Minimum execution time: 11_838_000 picoseconds. - Weight::from_parts(12_323_000, 3543) + // Minimum execution time: 10_788_000 picoseconds. + Weight::from_parts(11_109_000, 3543) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } diff --git a/substrate/frame/scheduler/src/weights.rs b/substrate/frame/scheduler/src/weights.rs index 9b7e5405a1b5bdd3945f0935801f79843cd0d78a..62d2fe78049d333b1d252574669795f057e9658d 100644 --- a/substrate/frame/scheduler/src/weights.rs +++ b/substrate/frame/scheduler/src/weights.rs @@ -17,26 +17,28 @@ //! Autogenerated weights for `pallet_scheduler` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-01-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-grjcggob-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_scheduler +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_scheduler -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/scheduler/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -77,8 +79,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `31` // Estimated: `1489` - // Minimum execution time: 3_040_000 picoseconds. - Weight::from_parts(3_202_000, 1489) + // Minimum execution time: 3_099_000 picoseconds. + Weight::from_parts(3_298_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -89,10 +91,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `81 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 3_462_000 picoseconds. - Weight::from_parts(6_262_125, 110487) - // Standard Error: 536 - .saturating_add(Weight::from_parts(332_570, 0).saturating_mul(s.into())) + // Minimum execution time: 3_558_000 picoseconds. + Weight::from_parts(5_984_191, 110487) + // Standard Error: 564 + .saturating_add(Weight::from_parts(334_983, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -100,8 +102,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_425_000 picoseconds. - Weight::from_parts(3_680_000, 0) + // Minimum execution time: 3_389_000 picoseconds. + Weight::from_parts(3_609_000, 0) } /// Storage: `Preimage::PreimageFor` (r:1 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) @@ -114,10 +116,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `246 + s * (1 ±0)` // Estimated: `3711 + s * (1 ±0)` - // Minimum execution time: 17_564_000 picoseconds. - Weight::from_parts(17_887_000, 3711) + // Minimum execution time: 18_292_000 picoseconds. + Weight::from_parts(18_574_000, 3711) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_253, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_189, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -128,16 +130,16 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_934_000 picoseconds. - Weight::from_parts(5_275_000, 0) + // Minimum execution time: 5_216_000 picoseconds. + Weight::from_parts(5_439_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn service_task_periodic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_348_000 picoseconds. - Weight::from_parts(3_561_000, 0) + // Minimum execution time: 3_383_000 picoseconds. + Weight::from_parts(3_661_000, 0) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -147,16 +149,16 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3997` - // Minimum execution time: 6_395_000 picoseconds. - Weight::from_parts(6_642_000, 3997) + // Minimum execution time: 6_692_000 picoseconds. + Weight::from_parts(7_069_000, 3997) .saturating_add(T::DbWeight::get().reads(2_u64)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_167_000 picoseconds. - Weight::from_parts(2_266_000, 0) + // Minimum execution time: 2_165_000 picoseconds. + Weight::from_parts(2_332_000, 0) } /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) @@ -165,15 +167,17 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `81 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 10_009_000 picoseconds. - Weight::from_parts(13_565_985, 110487) - // Standard Error: 575 - .saturating_add(Weight::from_parts(354_760, 0).saturating_mul(s.into())) + // Minimum execution time: 10_209_000 picoseconds. + Weight::from_parts(11_235_511, 110487) + // Standard Error: 906 + .saturating_add(Weight::from_parts(375_445, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// Storage: `Scheduler::Lookup` (r:0 w:1) /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 512]`. @@ -181,12 +185,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `81 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 14_048_000 picoseconds. - Weight::from_parts(15_141_696, 110487) - // Standard Error: 1_082 - .saturating_add(Weight::from_parts(533_390, 0).saturating_mul(s.into())) + // Minimum execution time: 15_906_000 picoseconds. + Weight::from_parts(13_697_344, 110487) + // Standard Error: 949 + .saturating_add(Weight::from_parts(564_461, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: `Scheduler::Lookup` (r:1 w:1) /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) @@ -197,10 +201,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `596 + s * (178 ±0)` // Estimated: `110487` - // Minimum execution time: 12_902_000 picoseconds. - Weight::from_parts(18_957_156, 110487) - // Standard Error: 792 - .saturating_add(Weight::from_parts(361_909, 0).saturating_mul(s.into())) + // Minimum execution time: 13_618_000 picoseconds. + Weight::from_parts(17_489_572, 110487) + // Standard Error: 766 + .saturating_add(Weight::from_parts(377_559, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -208,35 +212,35 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 512]`. fn cancel_named(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `709 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 15_933_000 picoseconds. - Weight::from_parts(18_091_415, 110487) - // Standard Error: 779 - .saturating_add(Weight::from_parts(534_402, 0).saturating_mul(s.into())) + // Minimum execution time: 17_954_000 picoseconds. + Weight::from_parts(18_459_344, 110487) + // Standard Error: 835 + .saturating_add(Weight::from_parts(585_557, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: `Scheduler::Retries` (r:1 w:2) - /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) - /// Storage: `Scheduler::Lookup` (r:0 w:1) - /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 512]`. fn schedule_retry(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `159` + // Measured: `118` // Estimated: `110487` - // Minimum execution time: 14_155_000 picoseconds. - Weight::from_parts(16_447_031, 110487) - // Standard Error: 233 - .saturating_add(Weight::from_parts(8_424, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Minimum execution time: 9_446_000 picoseconds. + Weight::from_parts(10_797_672, 110487) + // Standard Error: 184 + .saturating_add(Weight::from_parts(13_971, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Scheduler::Agenda` (r:1 w:0) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) @@ -244,10 +248,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn set_retry() -> Weight { // Proof Size summary in bytes: - // Measured: `81 + s * (177 ±0)` + // Measured: `90705` // Estimated: `110487` - // Minimum execution time: 8_130_000 picoseconds. - Weight::from_parts(9_047_554, 110487) + // Minimum execution time: 137_044_000 picoseconds. + Weight::from_parts(142_855_000, 110487) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -259,10 +263,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn set_retry_named() -> Weight { // Proof Size summary in bytes: - // Measured: `647 + s * (178 ±0)` + // Measured: `91747` // Estimated: `110487` - // Minimum execution time: 10_838_000 picoseconds. - Weight::from_parts(12_804_076, 110487) + // Minimum execution time: 144_333_000 picoseconds. + Weight::from_parts(149_251_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -272,10 +276,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn cancel_retry() -> Weight { // Proof Size summary in bytes: - // Measured: `81 + s * (177 ±0)` + // Measured: `90717` // Estimated: `110487` - // Minimum execution time: 8_130_000 picoseconds. - Weight::from_parts(9_047_554, 110487) + // Minimum execution time: 132_387_000 picoseconds. + Weight::from_parts(139_222_000, 110487) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -287,10 +291,10 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn cancel_retry_named() -> Weight { // Proof Size summary in bytes: - // Measured: `647 + s * (178 ±0)` + // Measured: `91759` // Estimated: `110487` - // Minimum execution time: 10_838_000 picoseconds. - Weight::from_parts(12_804_076, 110487) + // Minimum execution time: 141_082_000 picoseconds. + Weight::from_parts(146_117_000, 110487) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -304,8 +308,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `31` // Estimated: `1489` - // Minimum execution time: 3_040_000 picoseconds. - Weight::from_parts(3_202_000, 1489) + // Minimum execution time: 3_099_000 picoseconds. + Weight::from_parts(3_298_000, 1489) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -316,10 +320,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `81 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 3_462_000 picoseconds. - Weight::from_parts(6_262_125, 110487) - // Standard Error: 536 - .saturating_add(Weight::from_parts(332_570, 0).saturating_mul(s.into())) + // Minimum execution time: 3_558_000 picoseconds. + Weight::from_parts(5_984_191, 110487) + // Standard Error: 564 + .saturating_add(Weight::from_parts(334_983, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -327,8 +331,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_425_000 picoseconds. - Weight::from_parts(3_680_000, 0) + // Minimum execution time: 3_389_000 picoseconds. + Weight::from_parts(3_609_000, 0) } /// Storage: `Preimage::PreimageFor` (r:1 w:1) /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) @@ -341,10 +345,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `246 + s * (1 ±0)` // Estimated: `3711 + s * (1 ±0)` - // Minimum execution time: 17_564_000 picoseconds. - Weight::from_parts(17_887_000, 3711) + // Minimum execution time: 18_292_000 picoseconds. + Weight::from_parts(18_574_000, 3711) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_253, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(1_189, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -355,16 +359,16 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_934_000 picoseconds. - Weight::from_parts(5_275_000, 0) + // Minimum execution time: 5_216_000 picoseconds. + Weight::from_parts(5_439_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } fn service_task_periodic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_348_000 picoseconds. - Weight::from_parts(3_561_000, 0) + // Minimum execution time: 3_383_000 picoseconds. + Weight::from_parts(3_661_000, 0) } /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -374,16 +378,16 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3997` - // Minimum execution time: 6_395_000 picoseconds. - Weight::from_parts(6_642_000, 3997) + // Minimum execution time: 6_692_000 picoseconds. + Weight::from_parts(7_069_000, 3997) .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_167_000 picoseconds. - Weight::from_parts(2_266_000, 0) + // Minimum execution time: 2_165_000 picoseconds. + Weight::from_parts(2_332_000, 0) } /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) @@ -392,15 +396,17 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `81 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 10_009_000 picoseconds. - Weight::from_parts(13_565_985, 110487) - // Standard Error: 575 - .saturating_add(Weight::from_parts(354_760, 0).saturating_mul(s.into())) + // Minimum execution time: 10_209_000 picoseconds. + Weight::from_parts(11_235_511, 110487) + // Standard Error: 906 + .saturating_add(Weight::from_parts(375_445, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// Storage: `Scheduler::Lookup` (r:0 w:1) /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 512]`. @@ -408,12 +414,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `81 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 14_048_000 picoseconds. - Weight::from_parts(15_141_696, 110487) - // Standard Error: 1_082 - .saturating_add(Weight::from_parts(533_390, 0).saturating_mul(s.into())) + // Minimum execution time: 15_906_000 picoseconds. + Weight::from_parts(13_697_344, 110487) + // Standard Error: 949 + .saturating_add(Weight::from_parts(564_461, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } /// Storage: `Scheduler::Lookup` (r:1 w:1) /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) @@ -424,10 +430,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `596 + s * (178 ±0)` // Estimated: `110487` - // Minimum execution time: 12_902_000 picoseconds. - Weight::from_parts(18_957_156, 110487) - // Standard Error: 792 - .saturating_add(Weight::from_parts(361_909, 0).saturating_mul(s.into())) + // Minimum execution time: 13_618_000 picoseconds. + Weight::from_parts(17_489_572, 110487) + // Standard Error: 766 + .saturating_add(Weight::from_parts(377_559, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -435,35 +441,35 @@ impl WeightInfo for () { /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 512]`. fn cancel_named(s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `709 + s * (177 ±0)` // Estimated: `110487` - // Minimum execution time: 15_933_000 picoseconds. - Weight::from_parts(18_091_415, 110487) - // Standard Error: 779 - .saturating_add(Weight::from_parts(534_402, 0).saturating_mul(s.into())) + // Minimum execution time: 17_954_000 picoseconds. + Weight::from_parts(18_459_344, 110487) + // Standard Error: 835 + .saturating_add(Weight::from_parts(585_557, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: `Scheduler::Retries` (r:1 w:2) - /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// Storage: `Scheduler::Agenda` (r:1 w:1) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) - /// Storage: `Scheduler::Lookup` (r:0 w:1) - /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Retries` (r:0 w:1) + /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 512]`. fn schedule_retry(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `159` + // Measured: `118` // Estimated: `110487` - // Minimum execution time: 14_155_000 picoseconds. - Weight::from_parts(16_447_031, 110487) - // Standard Error: 233 - .saturating_add(Weight::from_parts(8_424, 0).saturating_mul(s.into())) - .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + // Minimum execution time: 9_446_000 picoseconds. + Weight::from_parts(10_797_672, 110487) + // Standard Error: 184 + .saturating_add(Weight::from_parts(13_971, 0).saturating_mul(s.into())) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Scheduler::Agenda` (r:1 w:0) /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`) @@ -471,10 +477,10 @@ impl WeightInfo for () { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn set_retry() -> Weight { // Proof Size summary in bytes: - // Measured: `81 + s * (177 ±0)` + // Measured: `90705` // Estimated: `110487` - // Minimum execution time: 8_130_000 picoseconds. - Weight::from_parts(9_047_554, 110487) + // Minimum execution time: 137_044_000 picoseconds. + Weight::from_parts(142_855_000, 110487) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -486,10 +492,10 @@ impl WeightInfo for () { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn set_retry_named() -> Weight { // Proof Size summary in bytes: - // Measured: `647 + s * (178 ±0)` + // Measured: `91747` // Estimated: `110487` - // Minimum execution time: 10_838_000 picoseconds. - Weight::from_parts(12_804_076, 110487) + // Minimum execution time: 144_333_000 picoseconds. + Weight::from_parts(149_251_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -499,10 +505,10 @@ impl WeightInfo for () { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn cancel_retry() -> Weight { // Proof Size summary in bytes: - // Measured: `81 + s * (177 ±0)` + // Measured: `90717` // Estimated: `110487` - // Minimum execution time: 8_130_000 picoseconds. - Weight::from_parts(9_047_554, 110487) + // Minimum execution time: 132_387_000 picoseconds. + Weight::from_parts(139_222_000, 110487) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -514,10 +520,10 @@ impl WeightInfo for () { /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`) fn cancel_retry_named() -> Weight { // Proof Size summary in bytes: - // Measured: `647 + s * (178 ±0)` + // Measured: `91759` // Estimated: `110487` - // Minimum execution time: 10_838_000 picoseconds. - Weight::from_parts(12_804_076, 110487) + // Minimum execution time: 141_082_000 picoseconds. + Weight::from_parts(146_117_000, 110487) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/session/src/weights.rs b/substrate/frame/session/src/weights.rs index dd9848fd2c177913f9121f98ab269bdae7e0f40e..2908a7563f0791441fad24719972b161bfcdf5df 100644 --- a/substrate/frame/session/src/weights.rs +++ b/substrate/frame/session/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_session +//! Autogenerated weights for `pallet_session` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/session/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/session/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,77 +49,77 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_session. +/// Weight functions needed for `pallet_session`. pub trait WeightInfo { fn set_keys() -> Weight; fn purge_keys() -> Weight; } -/// Weights for pallet_session using the Substrate node and recommended hardware. +/// Weights for `pallet_session` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: Session NextKeys (r:1 w:1) - /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) - /// Storage: Session KeyOwner (r:4 w:4) - /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:6 w:6) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1924` - // Estimated: `12814` - // Minimum execution time: 55_459_000 picoseconds. - Weight::from_parts(56_180_000, 12814) - .saturating_add(T::DbWeight::get().reads(6_u64)) - .saturating_add(T::DbWeight::get().writes(5_u64)) + // Measured: `1919` + // Estimated: `17759` + // Minimum execution time: 58_466_000 picoseconds. + Weight::from_parts(59_558_000, 17759) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: Session NextKeys (r:1 w:1) - /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) - /// Storage: Session KeyOwner (r:0 w:4) - /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:6) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) fn purge_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1791` - // Estimated: `5256` - // Minimum execution time: 40_194_000 picoseconds. - Weight::from_parts(41_313_000, 5256) + // Measured: `1817` + // Estimated: `5282` + // Minimum execution time: 41_730_000 picoseconds. + Weight::from_parts(42_476_000, 5282) .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: Session NextKeys (r:1 w:1) - /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) - /// Storage: Session KeyOwner (r:4 w:4) - /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:6 w:6) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1924` - // Estimated: `12814` - // Minimum execution time: 55_459_000 picoseconds. - Weight::from_parts(56_180_000, 12814) - .saturating_add(RocksDbWeight::get().reads(6_u64)) - .saturating_add(RocksDbWeight::get().writes(5_u64)) + // Measured: `1919` + // Estimated: `17759` + // Minimum execution time: 58_466_000 picoseconds. + Weight::from_parts(59_558_000, 17759) + .saturating_add(RocksDbWeight::get().reads(8_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) } - /// Storage: Staking Ledger (r:1 w:0) - /// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen) - /// Storage: Session NextKeys (r:1 w:1) - /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) - /// Storage: Session KeyOwner (r:0 w:4) - /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) + /// Storage: `Staking::Ledger` (r:1 w:0) + /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:6) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) fn purge_keys() -> Weight { // Proof Size summary in bytes: - // Measured: `1791` - // Estimated: `5256` - // Minimum execution time: 40_194_000 picoseconds. - Weight::from_parts(41_313_000, 5256) + // Measured: `1817` + // Estimated: `5282` + // Minimum execution time: 41_730_000 picoseconds. + Weight::from_parts(42_476_000, 5282) .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(5_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) } } diff --git a/substrate/frame/society/src/weights.rs b/substrate/frame/society/src/weights.rs index c32c2383ac99351ae53b97bdcbea8cd5dfad7744..17ff0318f6a64bf488d5243f629fd023261b6277 100644 --- a/substrate/frame/society/src/weights.rs +++ b/substrate/frame/society/src/weights.rs @@ -7,7 +7,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, @@ -15,35 +15,41 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_society +//! Autogenerated weights for `pallet_society` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-09-13, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev // --steps=50 // --repeat=20 // --pallet=pallet_society +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled -// --template=./.maintain/frame-weight-template.hbs -// --header=./HEADER-APACHE2 -// --output=./frame/society/src/weights.rs +// --heap-pages=4096 +// --output=./substrate/frame/society/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_society. +/// Weight functions needed for `pallet_society`. pub trait WeightInfo { fn bid() -> Weight; fn unbid() -> Weight; @@ -67,309 +73,739 @@ pub trait WeightInfo { fn cleanup_challenge() -> Weight; } -/// Weights for pallet_society using the Substrate node and recommended hardware. +/// Weights for `pallet_society` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - // Storage: Society Bids (r:1 w:1) - // Storage: Society Candidates (r:1 w:0) - // Storage: Society Members (r:1 w:0) - // Storage: Society SuspendedMembers (r:1 w:0) - // Storage: Society Parameters (r:1 w:0) + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:0) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::SuspendedMembers` (r:1 w:0) + /// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn bid() -> Weight { - Weight::zero() - } - // Storage: Society Bids (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `444` + // Estimated: `3909` + // Minimum execution time: 31_464_000 picoseconds. + Weight::from_parts(32_533_000, 3909) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn unbid() -> Weight { - Weight::zero() - } - // Storage: Society Bids (r:1 w:1) - // Storage: Society Candidates (r:1 w:0) - // Storage: Society Members (r:2 w:1) - // Storage: Society SuspendedMembers (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `461` + // Estimated: `1946` + // Minimum execution time: 24_132_000 picoseconds. + Weight::from_parts(24_936_000, 1946) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:0) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:2 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::SuspendedMembers` (r:1 w:0) + /// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn vouch() -> Weight { - Weight::zero() - } - // Storage: Society Bids (r:1 w:1) - // Storage: Society Members (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `481` + // Estimated: `6421` + // Minimum execution time: 22_568_000 picoseconds. + Weight::from_parts(24_273_000, 6421) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) fn unvouch() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society Members (r:1 w:0) - // Storage: Society Votes (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `535` + // Estimated: `4000` + // Minimum execution time: 15_524_000 picoseconds. + Weight::from_parts(16_324_000, 4000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:1 w:1) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn vote() -> Weight { - Weight::zero() - } - // Storage: Society Defending (r:1 w:1) - // Storage: Society Members (r:1 w:0) - // Storage: Society ChallengeRoundCount (r:1 w:0) - // Storage: Society DefenderVotes (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `569` + // Estimated: `4034` + // Minimum execution time: 22_360_000 picoseconds. + Weight::from_parts(23_318_000, 4034) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Defending` (r:1 w:1) + /// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::ChallengeRoundCount` (r:1 w:0) + /// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::DefenderVotes` (r:1 w:1) + /// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn defender_vote() -> Weight { - Weight::zero() - } - // Storage: Society Members (r:1 w:0) - // Storage: Society Payouts (r:1 w:1) - // Storage: System Account (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `561` + // Estimated: `4026` + // Minimum execution time: 19_457_000 picoseconds. + Weight::from_parts(20_461_000, 4026) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Payouts` (r:1 w:1) + /// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn payout() -> Weight { - Weight::zero() - } - // Storage: Society Members (r:1 w:1) - // Storage: Society Payouts (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `650` + // Estimated: `4115` + // Minimum execution time: 52_032_000 picoseconds. + Weight::from_parts(52_912_000, 4115) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Members` (r:1 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Payouts` (r:1 w:1) + /// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`) fn waive_repay() -> Weight { - Weight::zero() - } - // Storage: Society Head (r:1 w:1) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society MemberByIndex (r:0 w:1) - // Storage: Society Founder (r:0 w:1) - // Storage: Society Rules (r:0 w:1) - // Storage: Society Members (r:0 w:1) - // Storage: Society Parameters (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `547` + // Estimated: `4012` + // Minimum execution time: 19_479_000 picoseconds. + Weight::from_parts(20_120_000, 4012) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Head` (r:1 w:1) + /// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberByIndex` (r:0 w:1) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Founder` (r:0 w:1) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Rules` (r:0 w:1) + /// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:0 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:0 w:1) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn found_society() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:1) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society Head (r:0 w:1) - // Storage: Society Defending (r:0 w:1) - // Storage: Society ChallengeRoundCount (r:0 w:1) - // Storage: Society MemberByIndex (r:0 w:5) - // Storage: Society Skeptic (r:0 w:1) - // Storage: Society Candidates (r:0 w:4) - // Storage: Society Pot (r:0 w:1) - // Storage: Society Rules (r:0 w:1) - // Storage: Society Votes (r:0 w:4) - // Storage: Society Members (r:0 w:5) - // Storage: Society RoundCount (r:0 w:1) - // Storage: Society Bids (r:0 w:1) - // Storage: Society Parameters (r:0 w:1) - // Storage: Society NextHead (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `1665` + // Minimum execution time: 15_843_000 picoseconds. + Weight::from_parts(16_617_000, 1665) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) + } + /// Storage: `Society::Founder` (r:1 w:1) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:5 w:5) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberByIndex` (r:5 w:5) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:4 w:4) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:4 w:4) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Head` (r:0 w:1) + /// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Defending` (r:0 w:1) + /// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::ChallengeRoundCount` (r:0 w:1) + /// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Skeptic` (r:0 w:1) + /// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Pot` (r:0 w:1) + /// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Rules` (r:0 w:1) + /// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:0 w:1) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Bids` (r:0 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:0 w:1) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::NextHead` (r:0 w:1) + /// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn dissolve() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society SuspendedMembers (r:1 w:1) - // Storage: Society Payouts (r:1 w:0) - // Storage: Society Pot (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `1654` + // Estimated: `15019` + // Minimum execution time: 58_302_000 picoseconds. + Weight::from_parts(59_958_000, 15019) + .saturating_add(T::DbWeight::get().reads(20_u64)) + .saturating_add(T::DbWeight::get().writes(30_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::SuspendedMembers` (r:1 w:1) + /// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Payouts` (r:1 w:0) + /// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Pot` (r:1 w:1) + /// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn judge_suspended_member() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society MemberCount (r:1 w:0) - // Storage: Society Parameters (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `3970` + // Minimum execution time: 20_044_000 picoseconds. + Weight::from_parts(20_884_000, 3970) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:0) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:0 w:1) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_parameters() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) - // Storage: Society Skeptic (r:1 w:0) - // Storage: Society Votes (r:1 w:0) - // Storage: Society Members (r:1 w:1) - // Storage: Society Parameters (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `387` + // Estimated: `1872` + // Minimum execution time: 11_183_000 picoseconds. + Weight::from_parts(11_573_000, 1872) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Skeptic` (r:1 w:0) + /// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:1 w:0) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn punish_skeptic() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) - // Storage: Society Parameters (r:1 w:0) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society NextHead (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: Society MemberByIndex (r:0 w:1) - // Storage: Society Members (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `636` + // Estimated: `4101` + // Minimum execution time: 24_149_000 picoseconds. + Weight::from_parts(25_160_000, 4101) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::NextHead` (r:1 w:1) + /// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Society::MemberByIndex` (r:0 w:1) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:0 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) fn claim_membership() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) - // Storage: Society Parameters (r:1 w:0) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society NextHead (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: Society MemberByIndex (r:0 w:1) - // Storage: Society Members (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `632` + // Estimated: `4097` + // Minimum execution time: 37_992_000 picoseconds. + Weight::from_parts(39_226_000, 4097) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::NextHead` (r:1 w:1) + /// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Society::MemberByIndex` (r:0 w:1) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:0 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) fn bestow_membership() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `650` + // Estimated: `4115` + // Minimum execution time: 39_383_000 picoseconds. + Weight::from_parts(40_367_000, 4115) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn kick_candidate() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `776` + // Estimated: `6196` + // Minimum execution time: 40_060_000 picoseconds. + Weight::from_parts(40_836_000, 6196) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn resign_candidacy() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `746` + // Estimated: `6196` + // Minimum execution time: 37_529_000 picoseconds. + Weight::from_parts(38_342_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn drop_candidate() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:0) - // Storage: Society VoteClearCursor (r:1 w:0) - // Storage: Society Votes (r:0 w:2) + // Proof Size summary in bytes: + // Measured: `758` + // Estimated: `6196` + // Minimum execution time: 37_992_000 picoseconds. + Weight::from_parts(39_002_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:0) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::VoteClearCursor` (r:1 w:0) + /// Proof: `Society::VoteClearCursor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:2 w:2) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn cleanup_candidacy() -> Weight { - Weight::zero() - } - // Storage: Society ChallengeRoundCount (r:1 w:0) - // Storage: Society DefenderVotes (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `552` + // Estimated: `6492` + // Minimum execution time: 17_266_000 picoseconds. + Weight::from_parts(18_255_000, 6492) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Society::ChallengeRoundCount` (r:1 w:0) + /// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::DefenderVotes` (r:1 w:1) + /// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn cleanup_challenge() -> Weight { - Weight::zero() + // Proof Size summary in bytes: + // Measured: `510` + // Estimated: `3975` + // Minimum execution time: 11_636_000 picoseconds. + Weight::from_parts(12_122_000, 3975) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - // Storage: Society Bids (r:1 w:1) - // Storage: Society Candidates (r:1 w:0) - // Storage: Society Members (r:1 w:0) - // Storage: Society SuspendedMembers (r:1 w:0) - // Storage: Society Parameters (r:1 w:0) + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:0) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::SuspendedMembers` (r:1 w:0) + /// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn bid() -> Weight { - Weight::zero() - } - // Storage: Society Bids (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `444` + // Estimated: `3909` + // Minimum execution time: 31_464_000 picoseconds. + Weight::from_parts(32_533_000, 3909) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn unbid() -> Weight { - Weight::zero() - } - // Storage: Society Bids (r:1 w:1) - // Storage: Society Candidates (r:1 w:0) - // Storage: Society Members (r:2 w:1) - // Storage: Society SuspendedMembers (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `461` + // Estimated: `1946` + // Minimum execution time: 24_132_000 picoseconds. + Weight::from_parts(24_936_000, 1946) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:0) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:2 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::SuspendedMembers` (r:1 w:0) + /// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn vouch() -> Weight { - Weight::zero() - } - // Storage: Society Bids (r:1 w:1) - // Storage: Society Members (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `481` + // Estimated: `6421` + // Minimum execution time: 22_568_000 picoseconds. + Weight::from_parts(24_273_000, 6421) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Bids` (r:1 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) fn unvouch() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society Members (r:1 w:0) - // Storage: Society Votes (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `535` + // Estimated: `4000` + // Minimum execution time: 15_524_000 picoseconds. + Weight::from_parts(16_324_000, 4000) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:1 w:1) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn vote() -> Weight { - Weight::zero() - } - // Storage: Society Defending (r:1 w:1) - // Storage: Society Members (r:1 w:0) - // Storage: Society ChallengeRoundCount (r:1 w:0) - // Storage: Society DefenderVotes (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `569` + // Estimated: `4034` + // Minimum execution time: 22_360_000 picoseconds. + Weight::from_parts(23_318_000, 4034) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Defending` (r:1 w:1) + /// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::ChallengeRoundCount` (r:1 w:0) + /// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::DefenderVotes` (r:1 w:1) + /// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn defender_vote() -> Weight { - Weight::zero() - } - // Storage: Society Members (r:1 w:0) - // Storage: Society Payouts (r:1 w:1) - // Storage: System Account (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `561` + // Estimated: `4026` + // Minimum execution time: 19_457_000 picoseconds. + Weight::from_parts(20_461_000, 4026) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Members` (r:1 w:0) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Payouts` (r:1 w:1) + /// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn payout() -> Weight { - Weight::zero() - } - // Storage: Society Members (r:1 w:1) - // Storage: Society Payouts (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `650` + // Estimated: `4115` + // Minimum execution time: 52_032_000 picoseconds. + Weight::from_parts(52_912_000, 4115) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Members` (r:1 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Payouts` (r:1 w:1) + /// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`) fn waive_repay() -> Weight { - Weight::zero() - } - // Storage: Society Head (r:1 w:1) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society MemberByIndex (r:0 w:1) - // Storage: Society Founder (r:0 w:1) - // Storage: Society Rules (r:0 w:1) - // Storage: Society Members (r:0 w:1) - // Storage: Society Parameters (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `547` + // Estimated: `4012` + // Minimum execution time: 19_479_000 picoseconds. + Weight::from_parts(20_120_000, 4012) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Head` (r:1 w:1) + /// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberByIndex` (r:0 w:1) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Founder` (r:0 w:1) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Rules` (r:0 w:1) + /// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:0 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:0 w:1) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn found_society() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:1) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society Head (r:0 w:1) - // Storage: Society Defending (r:0 w:1) - // Storage: Society ChallengeRoundCount (r:0 w:1) - // Storage: Society MemberByIndex (r:0 w:5) - // Storage: Society Skeptic (r:0 w:1) - // Storage: Society Candidates (r:0 w:4) - // Storage: Society Pot (r:0 w:1) - // Storage: Society Rules (r:0 w:1) - // Storage: Society Votes (r:0 w:4) - // Storage: Society Members (r:0 w:5) - // Storage: Society RoundCount (r:0 w:1) - // Storage: Society Bids (r:0 w:1) - // Storage: Society Parameters (r:0 w:1) - // Storage: Society NextHead (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `1665` + // Minimum execution time: 15_843_000 picoseconds. + Weight::from_parts(16_617_000, 1665) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) + } + /// Storage: `Society::Founder` (r:1 w:1) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:5 w:5) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberByIndex` (r:5 w:5) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:4 w:4) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:4 w:4) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Head` (r:0 w:1) + /// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Defending` (r:0 w:1) + /// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::ChallengeRoundCount` (r:0 w:1) + /// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Skeptic` (r:0 w:1) + /// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Pot` (r:0 w:1) + /// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Rules` (r:0 w:1) + /// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:0 w:1) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Bids` (r:0 w:1) + /// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:0 w:1) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::NextHead` (r:0 w:1) + /// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn dissolve() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society SuspendedMembers (r:1 w:1) - // Storage: Society Payouts (r:1 w:0) - // Storage: Society Pot (r:1 w:1) + // Proof Size summary in bytes: + // Measured: `1654` + // Estimated: `15019` + // Minimum execution time: 58_302_000 picoseconds. + Weight::from_parts(59_958_000, 15019) + .saturating_add(RocksDbWeight::get().reads(20_u64)) + .saturating_add(RocksDbWeight::get().writes(30_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::SuspendedMembers` (r:1 w:1) + /// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Payouts` (r:1 w:0) + /// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Pot` (r:1 w:1) + /// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn judge_suspended_member() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society MemberCount (r:1 w:0) - // Storage: Society Parameters (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `3970` + // Minimum execution time: 20_044_000 picoseconds. + Weight::from_parts(20_884_000, 3970) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:0) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:0 w:1) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_parameters() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) - // Storage: Society Skeptic (r:1 w:0) - // Storage: Society Votes (r:1 w:0) - // Storage: Society Members (r:1 w:1) - // Storage: Society Parameters (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `387` + // Estimated: `1872` + // Minimum execution time: 11_183_000 picoseconds. + Weight::from_parts(11_573_000, 1872) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Skeptic` (r:1 w:0) + /// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:1 w:0) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:1 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn punish_skeptic() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) - // Storage: Society Parameters (r:1 w:0) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society NextHead (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: Society MemberByIndex (r:0 w:1) - // Storage: Society Members (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `636` + // Estimated: `4101` + // Minimum execution time: 24_149_000 picoseconds. + Weight::from_parts(25_160_000, 4101) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::NextHead` (r:1 w:1) + /// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Society::MemberByIndex` (r:0 w:1) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:0 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) fn claim_membership() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) - // Storage: Society Parameters (r:1 w:0) - // Storage: Society MemberCount (r:1 w:1) - // Storage: Society NextHead (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: Society MemberByIndex (r:0 w:1) - // Storage: Society Members (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `632` + // Estimated: `4097` + // Minimum execution time: 37_992_000 picoseconds. + Weight::from_parts(39_226_000, 4097) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Parameters` (r:1 w:0) + /// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::MemberCount` (r:1 w:1) + /// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::NextHead` (r:1 w:1) + /// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Society::MemberByIndex` (r:0 w:1) + /// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Members` (r:0 w:1) + /// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`) fn bestow_membership() -> Weight { - Weight::zero() - } - // Storage: Society Founder (r:1 w:0) - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `650` + // Estimated: `4115` + // Minimum execution time: 39_383_000 picoseconds. + Weight::from_parts(40_367_000, 4115) + .saturating_add(RocksDbWeight::get().reads(7_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + } + /// Storage: `Society::Founder` (r:1 w:0) + /// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn kick_candidate() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `776` + // Estimated: `6196` + // Minimum execution time: 40_060_000 picoseconds. + Weight::from_parts(40_836_000, 6196) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn resign_candidacy() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:1) - // Storage: Society RoundCount (r:1 w:0) + // Proof Size summary in bytes: + // Measured: `746` + // Estimated: `6196` + // Minimum execution time: 37_529_000 picoseconds. + Weight::from_parts(38_342_000, 6196) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:1) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::RoundCount` (r:1 w:0) + /// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn drop_candidate() -> Weight { - Weight::zero() - } - // Storage: Society Candidates (r:1 w:0) - // Storage: Society VoteClearCursor (r:1 w:0) - // Storage: Society Votes (r:0 w:2) + // Proof Size summary in bytes: + // Measured: `758` + // Estimated: `6196` + // Minimum execution time: 37_992_000 picoseconds. + Weight::from_parts(39_002_000, 6196) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + /// Storage: `Society::Candidates` (r:1 w:0) + /// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::VoteClearCursor` (r:1 w:0) + /// Proof: `Society::VoteClearCursor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Society::Votes` (r:2 w:2) + /// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn cleanup_candidacy() -> Weight { - Weight::zero() - } - // Storage: Society ChallengeRoundCount (r:1 w:0) - // Storage: Society DefenderVotes (r:0 w:1) + // Proof Size summary in bytes: + // Measured: `552` + // Estimated: `6492` + // Minimum execution time: 17_266_000 picoseconds. + Weight::from_parts(18_255_000, 6492) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) + } + /// Storage: `Society::ChallengeRoundCount` (r:1 w:0) + /// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Society::DefenderVotes` (r:1 w:1) + /// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn cleanup_challenge() -> Weight { - Weight::zero() + // Proof Size summary in bytes: + // Measured: `510` + // Estimated: `3975` + // Minimum execution time: 11_636_000 picoseconds. + Weight::from_parts(12_122_000, 3975) + .saturating_add(RocksDbWeight::get().reads(2_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } } diff --git a/substrate/frame/staking/src/benchmarking.rs b/substrate/frame/staking/src/benchmarking.rs index 0b67cd46039515970293b16846bbe26f5812bee3..3ed33ffea4223847068ded561d9a6a4748843718 100644 --- a/substrate/frame/staking/src/benchmarking.rs +++ b/substrate/frame/staking/src/benchmarking.rs @@ -1077,15 +1077,13 @@ mod tests { (frame_benchmarking::BenchmarkParameter::v, v), (frame_benchmarking::BenchmarkParameter::n, n), ]; - let closure_to_benchmark = - >::instance( + + assert_ok!( + >::unit_test_instance( &selected_benchmark, &c, - true, ) - .unwrap(); - - assert_ok!(closure_to_benchmark()); + ); }); } } diff --git a/substrate/frame/staking/src/weights.rs b/substrate/frame/staking/src/weights.rs index 8a04a3dfb3f70aad5592944f0b847dc080cece89..cd4e7f973ce3371a62331663865359408afb61a8 100644 --- a/substrate/frame/staking/src/weights.rs +++ b/substrate/frame/staking/src/weights.rs @@ -18,25 +18,27 @@ //! Autogenerated weights for `pallet_staking` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-03-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_staking +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_staking -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/staking/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -100,8 +102,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1042` // Estimated: `4764` - // Minimum execution time: 48_753_000 picoseconds. - Weight::from_parts(50_539_000, 4764) + // Minimum execution time: 46_504_000 picoseconds. + Weight::from_parts(48_459_000, 4764) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -121,8 +123,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1990` // Estimated: `8877` - // Minimum execution time: 92_701_000 picoseconds. - Weight::from_parts(95_657_000, 8877) + // Minimum execution time: 90_475_000 picoseconds. + Weight::from_parts(93_619_000, 8877) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -148,8 +150,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2195` // Estimated: `8877` - // Minimum execution time: 101_049_000 picoseconds. - Weight::from_parts(103_729_000, 8877) + // Minimum execution time: 99_335_000 picoseconds. + Weight::from_parts(101_440_000, 8877) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -170,10 +172,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1297` // Estimated: `4764` - // Minimum execution time: 51_672_000 picoseconds. - Weight::from_parts(53_817_441, 4764) - // Standard Error: 1_124 - .saturating_add(Weight::from_parts(49_168, 0).saturating_mul(s.into())) + // Minimum execution time: 50_067_000 picoseconds. + Weight::from_parts(52_396_327, 4764) + // Standard Error: 1_419 + .saturating_add(Weight::from_parts(51_406, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -210,10 +212,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2196 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 92_846_000 picoseconds. - Weight::from_parts(102_158_606, 6248) - // Standard Error: 4_187 - .saturating_add(Weight::from_parts(1_436_364, 0).saturating_mul(s.into())) + // Minimum execution time: 92_931_000 picoseconds. + Weight::from_parts(101_398_156, 6248) + // Standard Error: 4_180 + .saturating_add(Weight::from_parts(1_377_850, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -245,8 +247,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1372` // Estimated: `4556` - // Minimum execution time: 58_162_000 picoseconds. - Weight::from_parts(60_124_000, 4556) + // Minimum execution time: 56_291_000 picoseconds. + Weight::from_parts(58_372_000, 4556) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -261,10 +263,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1815 + k * (572 ±0)` // Estimated: `4556 + k * (3033 ±0)` - // Minimum execution time: 37_950_000 picoseconds. - Weight::from_parts(34_461_075, 4556) - // Standard Error: 8_013 - .saturating_add(Weight::from_parts(6_696_510, 0).saturating_mul(k.into())) + // Minimum execution time: 36_218_000 picoseconds. + Weight::from_parts(38_811_308, 4556) + // Standard Error: 8_352 + .saturating_add(Weight::from_parts(6_527_398, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -297,10 +299,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1866 + n * (102 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 70_167_000 picoseconds. - Weight::from_parts(68_024_084, 6248) - // Standard Error: 14_256 - .saturating_add(Weight::from_parts(4_195_757, 0).saturating_mul(n.into())) + // Minimum execution time: 68_607_000 picoseconds. + Weight::from_parts(66_831_185, 6248) + // Standard Error: 14_014 + .saturating_add(Weight::from_parts(4_031_635, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -326,8 +328,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1816` // Estimated: `6248` - // Minimum execution time: 61_730_000 picoseconds. - Weight::from_parts(63_430_000, 6248) + // Minimum execution time: 60_088_000 picoseconds. + Weight::from_parts(62_471_000, 6248) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -341,8 +343,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `902` // Estimated: `4556` - // Minimum execution time: 20_857_000 picoseconds. - Weight::from_parts(21_615_000, 4556) + // Minimum execution time: 19_777_000 picoseconds. + Weight::from_parts(20_690_000, 4556) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -356,8 +358,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `969` // Estimated: `4556` - // Minimum execution time: 24_739_000 picoseconds. - Weight::from_parts(25_785_000, 4556) + // Minimum execution time: 23_705_000 picoseconds. + Weight::from_parts(24_409_000, 4556) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -369,8 +371,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `902` // Estimated: `8122` - // Minimum execution time: 24_622_000 picoseconds. - Weight::from_parts(25_220_000, 8122) + // Minimum execution time: 23_479_000 picoseconds. + Weight::from_parts(24_502_000, 8122) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -380,8 +382,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_634_000 picoseconds. - Weight::from_parts(2_842_000, 0) + // Minimum execution time: 2_675_000 picoseconds. + Weight::from_parts(2_802_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Staking::ForceEra` (r:0 w:1) @@ -390,8 +392,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_496_000 picoseconds. - Weight::from_parts(9_016_000, 0) + // Minimum execution time: 7_067_000 picoseconds. + Weight::from_parts(7_413_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Staking::ForceEra` (r:0 w:1) @@ -400,8 +402,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_510_000 picoseconds. - Weight::from_parts(8_893_000, 0) + // Minimum execution time: 6_977_000 picoseconds. + Weight::from_parts(7_353_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Staking::ForceEra` (r:0 w:1) @@ -410,8 +412,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_243_000 picoseconds. - Weight::from_parts(8_678_000, 0) + // Minimum execution time: 7_071_000 picoseconds. + Weight::from_parts(7_463_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Staking::Invulnerables` (r:0 w:1) @@ -421,10 +423,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_781_000 picoseconds. - Weight::from_parts(3_441_708, 0) - // Standard Error: 58 - .saturating_add(Weight::from_parts(11_811, 0).saturating_mul(v.into())) + // Minimum execution time: 2_833_000 picoseconds. + Weight::from_parts(3_328_130, 0) + // Standard Error: 30 + .saturating_add(Weight::from_parts(10_058, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Staking::Ledger` (r:11800 w:11800) @@ -438,10 +440,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1746 + i * (229 ±0)` // Estimated: `990 + i * (7132 ±0)` - // Minimum execution time: 5_331_000 picoseconds. - Weight::from_parts(5_511_000, 990) - // Standard Error: 66_734 - .saturating_add(Weight::from_parts(31_157_413, 0).saturating_mul(i.into())) + // Minimum execution time: 5_300_000 picoseconds. + Weight::from_parts(5_437_000, 990) + // Standard Error: 66_261 + .saturating_add(Weight::from_parts(30_172_457, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 7132).saturating_mul(i.into())) @@ -479,10 +481,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2196 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 89_473_000 picoseconds. - Weight::from_parts(98_055_990, 6248) - // Standard Error: 4_159 - .saturating_add(Weight::from_parts(1_398_203, 0).saturating_mul(s.into())) + // Minimum execution time: 87_677_000 picoseconds. + Weight::from_parts(96_386_462, 6248) + // Standard Error: 3_717 + .saturating_add(Weight::from_parts(1_370_585, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -495,10 +497,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `66672` // Estimated: `70137` - // Minimum execution time: 102_480_000 picoseconds. - Weight::from_parts(1_165_789_820, 70137) - // Standard Error: 77_157 - .saturating_add(Weight::from_parts(6_489_253, 0).saturating_mul(s.into())) + // Minimum execution time: 105_086_000 picoseconds. + Weight::from_parts(1_167_895_222, 70137) + // Standard Error: 77_022 + .saturating_add(Weight::from_parts(6_487_305, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -534,11 +536,11 @@ impl WeightInfo for SubstrateWeight { fn payout_stakers_alive_staked(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `33297 + n * (377 ±0)` - // Estimated: `30944 + n * (3774 ±0)` - // Minimum execution time: 156_890_000 picoseconds. - Weight::from_parts(202_972_688, 30944) - // Standard Error: 29_972 - .saturating_add(Weight::from_parts(48_226_698, 0).saturating_mul(n.into())) + // Estimated: `30944 + n * (3774 ±3)` + // Minimum execution time: 154_210_000 picoseconds. + Weight::from_parts(192_836_012, 30944) + // Standard Error: 40_441 + .saturating_add(Weight::from_parts(47_646_642, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -562,10 +564,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1991 + l * (7 ±0)` // Estimated: `8877` - // Minimum execution time: 88_482_000 picoseconds. - Weight::from_parts(92_616_600, 8877) - // Standard Error: 4_411 - .saturating_add(Weight::from_parts(117_722, 0).saturating_mul(l.into())) + // Minimum execution time: 88_337_000 picoseconds. + Weight::from_parts(91_391_254, 8877) + // Standard Error: 4_485 + .saturating_add(Weight::from_parts(103_443, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -600,10 +602,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2196 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 98_489_000 picoseconds. - Weight::from_parts(102_968_643, 6248) - // Standard Error: 4_823 - .saturating_add(Weight::from_parts(1_420_838, 0).saturating_mul(s.into())) + // Minimum execution time: 98_014_000 picoseconds. + Weight::from_parts(102_537_670, 6248) + // Standard Error: 3_324 + .saturating_add(Weight::from_parts(1_353_142, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -649,12 +651,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + n * (720 ±0) + v * (3598 ±0)` // Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 604_820_000 picoseconds. - Weight::from_parts(608_838_000, 512390) - // Standard Error: 2_300_345 - .saturating_add(Weight::from_parts(72_980_573, 0).saturating_mul(v.into())) - // Standard Error: 229_216 - .saturating_add(Weight::from_parts(20_739_416, 0).saturating_mul(n.into())) + // Minimum execution time: 608_575_000 picoseconds. + Weight::from_parts(613_663_000, 512390) + // Standard Error: 2_286_521 + .saturating_add(Weight::from_parts(72_108_001, 0).saturating_mul(v.into())) + // Standard Error: 227_839 + .saturating_add(Weight::from_parts(20_314_085, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(206_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -685,12 +687,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3175 + n * (911 ±0) + v * (395 ±0)` // Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 37_380_439_000 picoseconds. - Weight::from_parts(38_187_734_000, 512390) - // Standard Error: 425_319 - .saturating_add(Weight::from_parts(6_001_288, 0).saturating_mul(v.into())) - // Standard Error: 425_319 - .saturating_add(Weight::from_parts(4_129_446, 0).saturating_mul(n.into())) + // Minimum execution time: 37_173_756_000 picoseconds. + Weight::from_parts(37_488_937_000, 512390) + // Standard Error: 467_413 + .saturating_add(Weight::from_parts(8_086_367, 0).saturating_mul(v.into())) + // Standard Error: 467_413 + .saturating_add(Weight::from_parts(3_108_193, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(201_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -707,10 +709,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `979 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_572_838_000 picoseconds. - Weight::from_parts(67_632_557, 3510) - // Standard Error: 12_028 - .saturating_add(Weight::from_parts(5_117_459, 0).saturating_mul(v.into())) + // Minimum execution time: 2_641_258_000 picoseconds. + Weight::from_parts(382_882_595, 3510) + // Standard Error: 11_991 + .saturating_add(Weight::from_parts(4_695_820, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(Weight::from_parts(0, 2520).saturating_mul(v.into())) @@ -733,8 +735,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_962_000 picoseconds. - Weight::from_parts(6_497_000, 0) + // Minimum execution time: 5_753_000 picoseconds. + Weight::from_parts(6_529_000, 0) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `Staking::MinCommission` (r:0 w:1) @@ -755,8 +757,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_227_000 picoseconds. - Weight::from_parts(5_496_000, 0) + // Minimum execution time: 5_212_000 picoseconds. + Weight::from_parts(5_451_000, 0) .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `Staking::Bonded` (r:1 w:0) @@ -785,8 +787,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1939` // Estimated: `6248` - // Minimum execution time: 75_129_000 picoseconds. - Weight::from_parts(77_498_000, 6248) + // Minimum execution time: 73_000_000 picoseconds. + Weight::from_parts(75_184_000, 6248) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -798,8 +800,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `691` // Estimated: `3510` - // Minimum execution time: 13_488_000 picoseconds. - Weight::from_parts(14_183_000, 3510) + // Minimum execution time: 13_056_000 picoseconds. + Weight::from_parts(13_517_000, 3510) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -809,8 +811,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_368_000 picoseconds. - Weight::from_parts(3_582_000, 0) + // Minimum execution time: 3_201_000 picoseconds. + Weight::from_parts(3_442_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Balances::Locks` (r:1 w:1) @@ -827,8 +829,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1047` // Estimated: `4764` - // Minimum execution time: 44_876_000 picoseconds. - Weight::from_parts(46_353_000, 4764) + // Minimum execution time: 44_671_000 picoseconds. + Weight::from_parts(45_611_000, 4764) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -850,8 +852,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1042` // Estimated: `4764` - // Minimum execution time: 48_753_000 picoseconds. - Weight::from_parts(50_539_000, 4764) + // Minimum execution time: 46_504_000 picoseconds. + Weight::from_parts(48_459_000, 4764) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -871,8 +873,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1990` // Estimated: `8877` - // Minimum execution time: 92_701_000 picoseconds. - Weight::from_parts(95_657_000, 8877) + // Minimum execution time: 90_475_000 picoseconds. + Weight::from_parts(93_619_000, 8877) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -898,8 +900,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `2195` // Estimated: `8877` - // Minimum execution time: 101_049_000 picoseconds. - Weight::from_parts(103_729_000, 8877) + // Minimum execution time: 99_335_000 picoseconds. + Weight::from_parts(101_440_000, 8877) .saturating_add(RocksDbWeight::get().reads(12_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -920,10 +922,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1297` // Estimated: `4764` - // Minimum execution time: 51_672_000 picoseconds. - Weight::from_parts(53_817_441, 4764) - // Standard Error: 1_124 - .saturating_add(Weight::from_parts(49_168, 0).saturating_mul(s.into())) + // Minimum execution time: 50_067_000 picoseconds. + Weight::from_parts(52_396_327, 4764) + // Standard Error: 1_419 + .saturating_add(Weight::from_parts(51_406, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -960,10 +962,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `2196 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 92_846_000 picoseconds. - Weight::from_parts(102_158_606, 6248) - // Standard Error: 4_187 - .saturating_add(Weight::from_parts(1_436_364, 0).saturating_mul(s.into())) + // Minimum execution time: 92_931_000 picoseconds. + Weight::from_parts(101_398_156, 6248) + // Standard Error: 4_180 + .saturating_add(Weight::from_parts(1_377_850, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().writes(11_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -995,8 +997,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1372` // Estimated: `4556` - // Minimum execution time: 58_162_000 picoseconds. - Weight::from_parts(60_124_000, 4556) + // Minimum execution time: 56_291_000 picoseconds. + Weight::from_parts(58_372_000, 4556) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } @@ -1011,10 +1013,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1815 + k * (572 ±0)` // Estimated: `4556 + k * (3033 ±0)` - // Minimum execution time: 37_950_000 picoseconds. - Weight::from_parts(34_461_075, 4556) - // Standard Error: 8_013 - .saturating_add(Weight::from_parts(6_696_510, 0).saturating_mul(k.into())) + // Minimum execution time: 36_218_000 picoseconds. + Weight::from_parts(38_811_308, 4556) + // Standard Error: 8_352 + .saturating_add(Weight::from_parts(6_527_398, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -1047,10 +1049,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1866 + n * (102 ±0)` // Estimated: `6248 + n * (2520 ±0)` - // Minimum execution time: 70_167_000 picoseconds. - Weight::from_parts(68_024_084, 6248) - // Standard Error: 14_256 - .saturating_add(Weight::from_parts(4_195_757, 0).saturating_mul(n.into())) + // Minimum execution time: 68_607_000 picoseconds. + Weight::from_parts(66_831_185, 6248) + // Standard Error: 14_014 + .saturating_add(Weight::from_parts(4_031_635, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(12_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(6_u64)) @@ -1076,8 +1078,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1816` // Estimated: `6248` - // Minimum execution time: 61_730_000 picoseconds. - Weight::from_parts(63_430_000, 6248) + // Minimum execution time: 60_088_000 picoseconds. + Weight::from_parts(62_471_000, 6248) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1091,8 +1093,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `902` // Estimated: `4556` - // Minimum execution time: 20_857_000 picoseconds. - Weight::from_parts(21_615_000, 4556) + // Minimum execution time: 19_777_000 picoseconds. + Weight::from_parts(20_690_000, 4556) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1106,8 +1108,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `969` // Estimated: `4556` - // Minimum execution time: 24_739_000 picoseconds. - Weight::from_parts(25_785_000, 4556) + // Minimum execution time: 23_705_000 picoseconds. + Weight::from_parts(24_409_000, 4556) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1119,8 +1121,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `902` // Estimated: `8122` - // Minimum execution time: 24_622_000 picoseconds. - Weight::from_parts(25_220_000, 8122) + // Minimum execution time: 23_479_000 picoseconds. + Weight::from_parts(24_502_000, 8122) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1130,8 +1132,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_634_000 picoseconds. - Weight::from_parts(2_842_000, 0) + // Minimum execution time: 2_675_000 picoseconds. + Weight::from_parts(2_802_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Staking::ForceEra` (r:0 w:1) @@ -1140,8 +1142,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_496_000 picoseconds. - Weight::from_parts(9_016_000, 0) + // Minimum execution time: 7_067_000 picoseconds. + Weight::from_parts(7_413_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Staking::ForceEra` (r:0 w:1) @@ -1150,8 +1152,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_510_000 picoseconds. - Weight::from_parts(8_893_000, 0) + // Minimum execution time: 6_977_000 picoseconds. + Weight::from_parts(7_353_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Staking::ForceEra` (r:0 w:1) @@ -1160,8 +1162,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_243_000 picoseconds. - Weight::from_parts(8_678_000, 0) + // Minimum execution time: 7_071_000 picoseconds. + Weight::from_parts(7_463_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Staking::Invulnerables` (r:0 w:1) @@ -1171,10 +1173,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_781_000 picoseconds. - Weight::from_parts(3_441_708, 0) - // Standard Error: 58 - .saturating_add(Weight::from_parts(11_811, 0).saturating_mul(v.into())) + // Minimum execution time: 2_833_000 picoseconds. + Weight::from_parts(3_328_130, 0) + // Standard Error: 30 + .saturating_add(Weight::from_parts(10_058, 0).saturating_mul(v.into())) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Staking::Ledger` (r:11800 w:11800) @@ -1188,10 +1190,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1746 + i * (229 ±0)` // Estimated: `990 + i * (7132 ±0)` - // Minimum execution time: 5_331_000 picoseconds. - Weight::from_parts(5_511_000, 990) - // Standard Error: 66_734 - .saturating_add(Weight::from_parts(31_157_413, 0).saturating_mul(i.into())) + // Minimum execution time: 5_300_000 picoseconds. + Weight::from_parts(5_437_000, 990) + // Standard Error: 66_261 + .saturating_add(Weight::from_parts(30_172_457, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(i.into()))) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_parts(0, 7132).saturating_mul(i.into())) @@ -1229,10 +1231,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `2196 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 89_473_000 picoseconds. - Weight::from_parts(98_055_990, 6248) - // Standard Error: 4_159 - .saturating_add(Weight::from_parts(1_398_203, 0).saturating_mul(s.into())) + // Minimum execution time: 87_677_000 picoseconds. + Weight::from_parts(96_386_462, 6248) + // Standard Error: 3_717 + .saturating_add(Weight::from_parts(1_370_585, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(13_u64)) .saturating_add(RocksDbWeight::get().writes(12_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -1245,10 +1247,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `66672` // Estimated: `70137` - // Minimum execution time: 102_480_000 picoseconds. - Weight::from_parts(1_165_789_820, 70137) - // Standard Error: 77_157 - .saturating_add(Weight::from_parts(6_489_253, 0).saturating_mul(s.into())) + // Minimum execution time: 105_086_000 picoseconds. + Weight::from_parts(1_167_895_222, 70137) + // Standard Error: 77_022 + .saturating_add(Weight::from_parts(6_487_305, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1284,11 +1286,11 @@ impl WeightInfo for () { fn payout_stakers_alive_staked(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `33297 + n * (377 ±0)` - // Estimated: `30944 + n * (3774 ±0)` - // Minimum execution time: 156_890_000 picoseconds. - Weight::from_parts(202_972_688, 30944) - // Standard Error: 29_972 - .saturating_add(Weight::from_parts(48_226_698, 0).saturating_mul(n.into())) + // Estimated: `30944 + n * (3774 ±3)` + // Minimum execution time: 154_210_000 picoseconds. + Weight::from_parts(192_836_012, 30944) + // Standard Error: 40_441 + .saturating_add(Weight::from_parts(47_646_642, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(14_u64)) .saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -1312,10 +1314,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1991 + l * (7 ±0)` // Estimated: `8877` - // Minimum execution time: 88_482_000 picoseconds. - Weight::from_parts(92_616_600, 8877) - // Standard Error: 4_411 - .saturating_add(Weight::from_parts(117_722, 0).saturating_mul(l.into())) + // Minimum execution time: 88_337_000 picoseconds. + Weight::from_parts(91_391_254, 8877) + // Standard Error: 4_485 + .saturating_add(Weight::from_parts(103_443, 0).saturating_mul(l.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -1350,10 +1352,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `2196 + s * (4 ±0)` // Estimated: `6248 + s * (4 ±0)` - // Minimum execution time: 98_489_000 picoseconds. - Weight::from_parts(102_968_643, 6248) - // Standard Error: 4_823 - .saturating_add(Weight::from_parts(1_420_838, 0).saturating_mul(s.into())) + // Minimum execution time: 98_014_000 picoseconds. + Weight::from_parts(102_537_670, 6248) + // Standard Error: 3_324 + .saturating_add(Weight::from_parts(1_353_142, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(12_u64)) .saturating_add(RocksDbWeight::get().writes(11_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -1399,12 +1401,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0 + n * (720 ±0) + v * (3598 ±0)` // Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 604_820_000 picoseconds. - Weight::from_parts(608_838_000, 512390) - // Standard Error: 2_300_345 - .saturating_add(Weight::from_parts(72_980_573, 0).saturating_mul(v.into())) - // Standard Error: 229_216 - .saturating_add(Weight::from_parts(20_739_416, 0).saturating_mul(n.into())) + // Minimum execution time: 608_575_000 picoseconds. + Weight::from_parts(613_663_000, 512390) + // Standard Error: 2_286_521 + .saturating_add(Weight::from_parts(72_108_001, 0).saturating_mul(v.into())) + // Standard Error: 227_839 + .saturating_add(Weight::from_parts(20_314_085, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(206_u64)) .saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -1435,12 +1437,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `3175 + n * (911 ±0) + v * (395 ±0)` // Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)` - // Minimum execution time: 37_380_439_000 picoseconds. - Weight::from_parts(38_187_734_000, 512390) - // Standard Error: 425_319 - .saturating_add(Weight::from_parts(6_001_288, 0).saturating_mul(v.into())) - // Standard Error: 425_319 - .saturating_add(Weight::from_parts(4_129_446, 0).saturating_mul(n.into())) + // Minimum execution time: 37_173_756_000 picoseconds. + Weight::from_parts(37_488_937_000, 512390) + // Standard Error: 467_413 + .saturating_add(Weight::from_parts(8_086_367, 0).saturating_mul(v.into())) + // Standard Error: 467_413 + .saturating_add(Weight::from_parts(3_108_193, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(201_u64)) .saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -1457,10 +1459,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `979 + v * (50 ±0)` // Estimated: `3510 + v * (2520 ±0)` - // Minimum execution time: 2_572_838_000 picoseconds. - Weight::from_parts(67_632_557, 3510) - // Standard Error: 12_028 - .saturating_add(Weight::from_parts(5_117_459, 0).saturating_mul(v.into())) + // Minimum execution time: 2_641_258_000 picoseconds. + Weight::from_parts(382_882_595, 3510) + // Standard Error: 11_991 + .saturating_add(Weight::from_parts(4_695_820, 0).saturating_mul(v.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(Weight::from_parts(0, 2520).saturating_mul(v.into())) @@ -1483,8 +1485,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_962_000 picoseconds. - Weight::from_parts(6_497_000, 0) + // Minimum execution time: 5_753_000 picoseconds. + Weight::from_parts(6_529_000, 0) .saturating_add(RocksDbWeight::get().writes(7_u64)) } /// Storage: `Staking::MinCommission` (r:0 w:1) @@ -1505,8 +1507,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_227_000 picoseconds. - Weight::from_parts(5_496_000, 0) + // Minimum execution time: 5_212_000 picoseconds. + Weight::from_parts(5_451_000, 0) .saturating_add(RocksDbWeight::get().writes(7_u64)) } /// Storage: `Staking::Bonded` (r:1 w:0) @@ -1535,8 +1537,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1939` // Estimated: `6248` - // Minimum execution time: 75_129_000 picoseconds. - Weight::from_parts(77_498_000, 6248) + // Minimum execution time: 73_000_000 picoseconds. + Weight::from_parts(75_184_000, 6248) .saturating_add(RocksDbWeight::get().reads(12_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1548,8 +1550,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `691` // Estimated: `3510` - // Minimum execution time: 13_488_000 picoseconds. - Weight::from_parts(14_183_000, 3510) + // Minimum execution time: 13_056_000 picoseconds. + Weight::from_parts(13_517_000, 3510) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1559,8 +1561,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_368_000 picoseconds. - Weight::from_parts(3_582_000, 0) + // Minimum execution time: 3_201_000 picoseconds. + Weight::from_parts(3_442_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Balances::Locks` (r:1 w:1) @@ -1577,8 +1579,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1047` // Estimated: `4764` - // Minimum execution time: 44_876_000 picoseconds. - Weight::from_parts(46_353_000, 4764) + // Minimum execution time: 44_671_000 picoseconds. + Weight::from_parts(45_611_000, 4764) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } diff --git a/substrate/frame/state-trie-migration/src/weights.rs b/substrate/frame/state-trie-migration/src/weights.rs index 8fa80b38957d9b38a40803a261d52cfe7836a990..ddc9236f7af66f559034b4f04f3a0296f340f810 100644 --- a/substrate/frame/state-trie-migration/src/weights.rs +++ b/substrate/frame/state-trie-migration/src/weights.rs @@ -17,26 +17,28 @@ //! Autogenerated weights for `pallet_state_trie_migration` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-01-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-grjcggob-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_state_trie_migration +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_state_trie_migration -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/state-trie-migration/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -64,15 +66,15 @@ impl WeightInfo for SubstrateWeight { /// Storage: `StateTrieMigration::SignedMigrationMaxLimits` (r:1 w:0) /// Proof: `StateTrieMigration::SignedMigrationMaxLimits` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:0) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `StateTrieMigration::MigrationProcess` (r:1 w:1) /// Proof: `StateTrieMigration::MigrationProcess` (`max_values`: Some(1), `max_size`: Some(1042), added: 1537, mode: `MaxEncodedLen`) fn continue_migrate() -> Weight { // Proof Size summary in bytes: // Measured: `108` - // Estimated: `3640` - // Minimum execution time: 18_520_000 picoseconds. - Weight::from_parts(19_171_000, 3640) + // Estimated: `3658` + // Minimum execution time: 18_293_000 picoseconds. + Weight::from_parts(18_577_000, 3658) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -82,53 +84,53 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `1493` - // Minimum execution time: 3_786_000 picoseconds. - Weight::from_parts(4_038_000, 1493) + // Minimum execution time: 4_240_000 picoseconds. + Weight::from_parts(4_369_000, 1493) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:0) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn migrate_custom_top_success() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `3640` - // Minimum execution time: 11_144_000 picoseconds. - Weight::from_parts(11_556_000, 3640) + // Estimated: `3658` + // Minimum execution time: 11_909_000 picoseconds. + Weight::from_parts(12_453_000, 3658) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1) /// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1) fn migrate_custom_top_fail() -> Weight { // Proof Size summary in bytes: // Measured: `113` - // Estimated: `3640` - // Minimum execution time: 59_288_000 picoseconds. - Weight::from_parts(60_276_000, 3640) + // Estimated: `3658` + // Minimum execution time: 65_631_000 picoseconds. + Weight::from_parts(66_506_000, 3658) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Balances::Holds` (r:1 w:0) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn migrate_custom_child_success() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `3640` - // Minimum execution time: 11_258_000 picoseconds. - Weight::from_parts(11_626_000, 3640) + // Estimated: `3658` + // Minimum execution time: 12_208_000 picoseconds. + Weight::from_parts(12_690_000, 3658) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1) /// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1) fn migrate_custom_child_fail() -> Weight { // Proof Size summary in bytes: // Measured: `106` - // Estimated: `3640` - // Minimum execution time: 61_575_000 picoseconds. - Weight::from_parts(63_454_000, 3640) + // Estimated: `3658` + // Minimum execution time: 66_988_000 picoseconds. + Weight::from_parts(68_616_000, 3658) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -139,10 +141,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `197 + v * (1 ±0)` // Estimated: `3662 + v * (1 ±0)` - // Minimum execution time: 5_259_000 picoseconds. - Weight::from_parts(5_433_000, 3662) + // Minimum execution time: 5_365_000 picoseconds. + Weight::from_parts(5_460_000, 3662) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_159, 0).saturating_mul(v.into())) + .saturating_add(Weight::from_parts(1_150, 0).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(v.into())) @@ -154,15 +156,15 @@ impl WeightInfo for () { /// Storage: `StateTrieMigration::SignedMigrationMaxLimits` (r:1 w:0) /// Proof: `StateTrieMigration::SignedMigrationMaxLimits` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) /// Storage: `Balances::Holds` (r:1 w:0) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: `StateTrieMigration::MigrationProcess` (r:1 w:1) /// Proof: `StateTrieMigration::MigrationProcess` (`max_values`: Some(1), `max_size`: Some(1042), added: 1537, mode: `MaxEncodedLen`) fn continue_migrate() -> Weight { // Proof Size summary in bytes: // Measured: `108` - // Estimated: `3640` - // Minimum execution time: 18_520_000 picoseconds. - Weight::from_parts(19_171_000, 3640) + // Estimated: `3658` + // Minimum execution time: 18_293_000 picoseconds. + Weight::from_parts(18_577_000, 3658) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -172,53 +174,53 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `76` // Estimated: `1493` - // Minimum execution time: 3_786_000 picoseconds. - Weight::from_parts(4_038_000, 1493) + // Minimum execution time: 4_240_000 picoseconds. + Weight::from_parts(4_369_000, 1493) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:0) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn migrate_custom_top_success() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `3640` - // Minimum execution time: 11_144_000 picoseconds. - Weight::from_parts(11_556_000, 3640) + // Estimated: `3658` + // Minimum execution time: 11_909_000 picoseconds. + Weight::from_parts(12_453_000, 3658) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1) /// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1) fn migrate_custom_top_fail() -> Weight { // Proof Size summary in bytes: // Measured: `113` - // Estimated: `3640` - // Minimum execution time: 59_288_000 picoseconds. - Weight::from_parts(60_276_000, 3640) + // Estimated: `3658` + // Minimum execution time: 65_631_000 picoseconds. + Weight::from_parts(66_506_000, 3658) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Balances::Holds` (r:1 w:0) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn migrate_custom_child_success() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `3640` - // Minimum execution time: 11_258_000 picoseconds. - Weight::from_parts(11_626_000, 3640) + // Estimated: `3658` + // Minimum execution time: 12_208_000 picoseconds. + Weight::from_parts(12_690_000, 3658) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1) /// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1) fn migrate_custom_child_fail() -> Weight { // Proof Size summary in bytes: // Measured: `106` - // Estimated: `3640` - // Minimum execution time: 61_575_000 picoseconds. - Weight::from_parts(63_454_000, 3640) + // Estimated: `3658` + // Minimum execution time: 66_988_000 picoseconds. + Weight::from_parts(68_616_000, 3658) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -229,10 +231,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `197 + v * (1 ±0)` // Estimated: `3662 + v * (1 ±0)` - // Minimum execution time: 5_259_000 picoseconds. - Weight::from_parts(5_433_000, 3662) + // Minimum execution time: 5_365_000 picoseconds. + Weight::from_parts(5_460_000, 3662) // Standard Error: 1 - .saturating_add(Weight::from_parts(1_159, 0).saturating_mul(v.into())) + .saturating_add(Weight::from_parts(1_150, 0).saturating_mul(v.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(v.into())) diff --git a/substrate/frame/sudo/src/weights.rs b/substrate/frame/sudo/src/weights.rs index 10d1a9f7a513b7ae98947e27832842a42ab0c589..c166ab442d7320cee6a435d21e1c01e1b6425645 100644 --- a/substrate/frame/sudo/src/weights.rs +++ b/substrate/frame/sudo/src/weights.rs @@ -17,26 +17,28 @@ //! Autogenerated weights for `pallet_sudo` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_sudo +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_sudo -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/sudo/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -64,8 +66,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 9_600_000 picoseconds. - Weight::from_parts(10_076_000, 1517) + // Minimum execution time: 9_486_000 picoseconds. + Weight::from_parts(9_663_000, 1517) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -75,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 10_453_000 picoseconds. - Weight::from_parts(10_931_000, 1517) + // Minimum execution time: 10_501_000 picoseconds. + Weight::from_parts(10_729_000, 1517) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Sudo::Key` (r:1 w:0) @@ -85,8 +87,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 10_202_000 picoseconds. - Weight::from_parts(10_800_000, 1517) + // Minimum execution time: 10_742_000 picoseconds. + Weight::from_parts(11_003_000, 1517) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Sudo::Key` (r:1 w:1) @@ -95,8 +97,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 8_555_000 picoseconds. - Weight::from_parts(8_846_000, 1517) + // Minimum execution time: 8_837_000 picoseconds. + Weight::from_parts(9_127_000, 1517) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -110,8 +112,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 9_600_000 picoseconds. - Weight::from_parts(10_076_000, 1517) + // Minimum execution time: 9_486_000 picoseconds. + Weight::from_parts(9_663_000, 1517) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -121,8 +123,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 10_453_000 picoseconds. - Weight::from_parts(10_931_000, 1517) + // Minimum execution time: 10_501_000 picoseconds. + Weight::from_parts(10_729_000, 1517) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Sudo::Key` (r:1 w:0) @@ -131,8 +133,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 10_202_000 picoseconds. - Weight::from_parts(10_800_000, 1517) + // Minimum execution time: 10_742_000 picoseconds. + Weight::from_parts(11_003_000, 1517) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Sudo::Key` (r:1 w:1) @@ -141,8 +143,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 8_555_000 picoseconds. - Weight::from_parts(8_846_000, 1517) + // Minimum execution time: 8_837_000 picoseconds. + Weight::from_parts(9_127_000, 1517) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/support/procedural/src/benchmark.rs b/substrate/frame/support/procedural/src/benchmark.rs index 0a62c3f92a6eeef38a84a6b2e915f1103d395fa1..6ba7ad058297fd36578a40f402764b4c40a0954f 100644 --- a/substrate/frame/support/procedural/src/benchmark.rs +++ b/substrate/frame/support/procedural/src/benchmark.rs @@ -303,6 +303,24 @@ fn ensure_valid_return_type(item_fn: &ItemFn) -> Result<()> { Ok(()) } +/// Ensure that the passed statements do not contain any forbidden variable names +fn ensure_no_forbidden_variable_names(stmts: &[Stmt]) -> Result<()> { + const FORBIDDEN_VAR_NAMES: [&str; 2] = ["recording", "verify"]; + for stmt in stmts { + let Stmt::Local(l) = stmt else { continue }; + let Pat::Ident(ident) = &l.pat else { continue }; + if FORBIDDEN_VAR_NAMES.contains(&ident.ident.to_string().as_str()) { + return Err(Error::new( + ident.span(), + format!( + "Variables {FORBIDDEN_VAR_NAMES:?} are reserved for benchmarking internals.", + ), + )); + } + } + Ok(()) +} + /// Parses params such as `x: Linear<0, 1>` fn parse_params(item_fn: &ItemFn) -> Result> { let mut params: Vec = Vec::new(); @@ -436,9 +454,12 @@ impl BenchmarkDef { }, }; + let setup_stmts = Vec::from(&item_fn.block.stmts[0..i]); + ensure_no_forbidden_variable_names(&setup_stmts)?; + Ok(BenchmarkDef { params, - setup_stmts: Vec::from(&item_fn.block.stmts[0..i]), + setup_stmts, call_def, verify_stmts, last_stmt, @@ -633,18 +654,16 @@ pub fn benchmarks( fn instance( &self, + recording: &mut impl #krate::Recording, components: &[(#krate::BenchmarkParameter, u32)], verify: bool, - ) -> Result< - #krate::__private::Box Result<(), #krate::BenchmarkError>>, - #krate::BenchmarkError, - > { + ) -> Result<(), #krate::BenchmarkError> { match self { #( Self::#benchmark_names => { <#benchmark_names as #krate::BenchmarkingSetup< #type_use_generics - >>::instance(&#benchmark_names, components, verify) + >>::instance(&#benchmark_names, recording, components, verify) } ) * @@ -735,17 +754,7 @@ pub fn benchmarks( #krate::benchmarking::set_whitelist(whitelist.clone()); let mut results: #krate::__private::Vec<#krate::BenchmarkResult> = #krate::__private::Vec::new(); - // Always do at least one internal repeat... - for _ in 0 .. internal_repeats.max(1) { - // Always reset the state after the benchmark. - #krate::__private::defer!(#krate::benchmarking::wipe_db()); - - // Set up the externalities environment for the setup we want to - // benchmark. - let closure_to_benchmark = < - SelectedBenchmark as #krate::BenchmarkingSetup<#type_use_generics> - >::instance(&selected_benchmark, c, verify)?; - + let on_before_start = || { // Set the block number to at least 1 so events are deposited. if #krate::__private::Zero::is_zero(&#frame_system::Pallet::::block_number()) { #frame_system::Pallet::::set_block_number(1u32.into()); @@ -763,6 +772,12 @@ pub fn benchmarks( // Reset the read/write counter so we don't count operations in the setup process. #krate::benchmarking::reset_read_write_count(); + }; + + // Always do at least one internal repeat... + for _ in 0 .. internal_repeats.max(1) { + // Always reset the state after the benchmark. + #krate::__private::defer!(#krate::benchmarking::wipe_db()); // Time the extrinsic logic. #krate::__private::log::trace!( @@ -772,20 +787,12 @@ pub fn benchmarks( c ); - let start_pov = #krate::benchmarking::proof_size(); - let start_extrinsic = #krate::benchmarking::current_time(); - - closure_to_benchmark()?; - - let finish_extrinsic = #krate::benchmarking::current_time(); - let end_pov = #krate::benchmarking::proof_size(); + let mut recording = #krate::BenchmarkRecording::new(&on_before_start); + >::instance(&selected_benchmark, &mut recording, c, verify)?; // Calculate the diff caused by the benchmark. - let elapsed_extrinsic = finish_extrinsic.saturating_sub(start_extrinsic); - let diff_pov = match (start_pov, end_pov) { - (Some(start), Some(end)) => end.saturating_sub(start), - _ => Default::default(), - }; + let elapsed_extrinsic = recording.elapsed_extrinsic().expect("elapsed time should be recorded"); + let diff_pov = recording.diff_pov().unwrap_or_default(); // Commit the changes to get proper write count #krate::benchmarking::commit_db(); @@ -1086,9 +1093,10 @@ fn expand_benchmark( fn instance( &self, + recording: &mut impl #krate::Recording, components: &[(#krate::BenchmarkParameter, u32)], verify: bool - ) -> Result<#krate::__private::Box Result<(), #krate::BenchmarkError>>, #krate::BenchmarkError> { + ) -> Result<(), #krate::BenchmarkError> { #( // prepare instance #param_names let #param_names = components.iter() @@ -1102,15 +1110,15 @@ fn expand_benchmark( #setup_stmts )* #pre_call - Ok(#krate::__private::Box::new(move || -> Result<(), #krate::BenchmarkError> { - #post_call - if verify { - #( - #verify_stmts - )* - } - #impl_last_stmt - })) + recording.start(); + #post_call + recording.stop(); + if verify { + #( + #verify_stmts + )* + } + #impl_last_stmt } } @@ -1128,18 +1136,15 @@ fn expand_benchmark( // Always reset the state after the benchmark. #krate::__private::defer!(#krate::benchmarking::wipe_db()); - // Set up the benchmark, return execution + verification function. - let closure_to_verify = < - SelectedBenchmark as #krate::BenchmarkingSetup - >::instance(&selected_benchmark, &c, true)?; - - // Set the block number to at least 1 so events are deposited. - if #krate::__private::Zero::is_zero(&#frame_system::Pallet::::block_number()) { - #frame_system::Pallet::::set_block_number(1u32.into()); - } + let on_before_start = || { + // Set the block number to at least 1 so events are deposited. + if #krate::__private::Zero::is_zero(&#frame_system::Pallet::::block_number()) { + #frame_system::Pallet::::set_block_number(1u32.into()); + } + }; // Run execution + verification - closure_to_verify() + >::test_instance(&selected_benchmark, &c, &on_before_start) }; if components.is_empty() { diff --git a/substrate/frame/support/src/weights/block_weights.rs b/substrate/frame/support/src/weights/block_weights.rs index 57a68554755abb007165e751df687d097cd48f17..38f2ba3f023d2eb748cc886decf21baa9dc09130 100644 --- a/substrate/frame/support/src/weights/block_weights.rs +++ b/substrate/frame/support/src/weights/block_weights.rs @@ -15,24 +15,23 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16 (Y/M/D) -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08 (Y/M/D) +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` -//! WEIGHT-PATH: `./frame/support/src/weights/` +//! WEIGHT-PATH: `./substrate/frame/support/src/weights/` //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // overhead // --chain=dev -// --execution=wasm // --wasm-execution=compiled -// --weight-path=./frame/support/src/weights/ -// --header=./HEADER-APACHE2 +// --weight-path=./substrate/frame/support/src/weights/ +// --header=./substrate/HEADER-APACHE2 // --warmup=10 // --repeat=100 @@ -44,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 376_949, 622_462 - /// Average: 390_584 - /// Median: 386_322 - /// Std-Dev: 24792.0 + /// Min, Max: 440_235, 661_535 + /// Average: 453_383 + /// Median: 449_925 + /// Std-Dev: 22021.99 /// /// Percentiles nanoseconds: - /// 99th: 433_299 - /// 95th: 402_688 - /// 75th: 391_645 + /// 99th: 474_045 + /// 95th: 466_455 + /// 75th: 455_056 pub const BlockExecutionWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(390_584), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(453_383), 0); } #[cfg(test)] diff --git a/substrate/frame/support/src/weights/extrinsic_weights.rs b/substrate/frame/support/src/weights/extrinsic_weights.rs index a304f089ff782c34ab9941705503c5e766bb08b0..75c7ffa6070530d1b71175f93e2811f11b65787f 100644 --- a/substrate/frame/support/src/weights/extrinsic_weights.rs +++ b/substrate/frame/support/src/weights/extrinsic_weights.rs @@ -15,24 +15,23 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16 (Y/M/D) -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08 (Y/M/D) +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` -//! WEIGHT-PATH: `./frame/support/src/weights/` +//! WEIGHT-PATH: `./substrate/frame/support/src/weights/` //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // overhead // --chain=dev -// --execution=wasm // --wasm-execution=compiled -// --weight-path=./frame/support/src/weights/ -// --header=./HEADER-APACHE2 +// --weight-path=./substrate/frame/support/src/weights/ +// --header=./substrate/HEADER-APACHE2 // --warmup=10 // --repeat=100 @@ -44,17 +43,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 123_875, 128_419 - /// Average: 124_414 - /// Median: 124_332 - /// Std-Dev: 497.74 + /// Min, Max: 106_559, 107_788 + /// Average: 107_074 + /// Median: 107_067 + /// Std-Dev: 242.67 /// /// Percentiles nanoseconds: - /// 99th: 125_245 - /// 95th: 124_989 - /// 75th: 124_498 + /// 99th: 107_675 + /// 95th: 107_513 + /// 75th: 107_225 pub const ExtrinsicBaseWeight: Weight = - Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(124_414), 0); + Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(107_074), 0); } #[cfg(test)] diff --git a/substrate/frame/system/src/weights.rs b/substrate/frame/system/src/weights.rs index 41807dea1c55f9cd246db231fc9102d4b9eb5c4f..fca14e4526579e501f83973dcfdbf43ded6af6bb 100644 --- a/substrate/frame/system/src/weights.rs +++ b/substrate/frame/system/src/weights.rs @@ -15,30 +15,31 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for frame_system +//! Autogenerated weights for `frame_system` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-s7kdgajz-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=frame_system +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json -// --pallet=frame-system -// --chain=dev -// --header=./HEADER-APACHE2 -// --output=./frame/system/src/weights.rs -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/system/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -48,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for frame_system. +/// Weight functions needed for `frame_system`. pub trait WeightInfo { fn remark(b: u32, ) -> Weight; fn remark_with_event(b: u32, ) -> Weight; @@ -61,7 +62,7 @@ pub trait WeightInfo { fn apply_authorized_upgrade() -> Weight; } -/// Weights for frame_system using the Substrate node and recommended hardware. +/// Weights for `frame_system` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { /// The range of component `b` is `[0, 3932160]`. @@ -69,84 +70,86 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_004_000 picoseconds. - Weight::from_parts(2_119_000, 0) + // Minimum execution time: 2_078_000 picoseconds. + Weight::from_parts(1_137_744, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(390, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(387, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_032_000 picoseconds. - Weight::from_parts(8_097_000, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_455, 0).saturating_mul(b.into())) + // Minimum execution time: 5_980_000 picoseconds. + Weight::from_parts(2_562_415, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_391, 0).saturating_mul(b.into())) } - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) - /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_446_000 picoseconds. - Weight::from_parts(4_782_000, 1485) + // Minimum execution time: 3_834_000 picoseconds. + Weight::from_parts(4_109_000, 1485) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: unknown `0x3a636f6465` (r:0 w:1) - /// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 84_000_503_000 picoseconds. - Weight::from_parts(87_586_619_000, 1485) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Measured: `142` + // Estimated: `67035` + // Minimum execution time: 81_326_496_000 picoseconds. + Weight::from_parts(81_880_651_000, 67035) + .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Skipped Metadata (r:0 w:0) - /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_086_000 picoseconds. - Weight::from_parts(2_175_000, 0) - // Standard Error: 1_056 - .saturating_add(Weight::from_parts(841_511, 0).saturating_mul(i.into())) + // Minimum execution time: 2_059_000 picoseconds. + Weight::from_parts(2_192_000, 0) + // Standard Error: 720 + .saturating_add(Weight::from_parts(742_610, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - /// Storage: Skipped Metadata (r:0 w:0) - /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_000_000 picoseconds. - Weight::from_parts(2_255_000, 0) - // Standard Error: 1_425 - .saturating_add(Weight::from_parts(662_473, 0).saturating_mul(i.into())) + // Minimum execution time: 2_038_000 picoseconds. + Weight::from_parts(2_159_000, 0) + // Standard Error: 774 + .saturating_add(Weight::from_parts(569_424, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - /// Storage: Skipped Metadata (r:0 w:0) - /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `115 + p * (69 ±0)` - // Estimated: `128 + p * (70 ±0)` - // Minimum execution time: 4_189_000 picoseconds. - Weight::from_parts(4_270_000, 128) - // Standard Error: 2_296 - .saturating_add(Weight::from_parts(1_389_650, 0).saturating_mul(p.into())) + // Measured: `127 + p * (69 ±0)` + // Estimated: `134 + p * (70 ±0)` + // Minimum execution time: 3_990_000 picoseconds. + Weight::from_parts(4_172_000, 134) + // Standard Error: 1_485 + .saturating_add(Weight::from_parts(1_227_281, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) @@ -157,114 +160,116 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 33_027_000 picoseconds. - Weight::from_parts(33_027_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) + // Minimum execution time: 8_851_000 picoseconds. + Weight::from_parts(9_643_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `System::AuthorizedUpgrade` (r:1 w:1) /// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn apply_authorized_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `22` - // Estimated: `1518` - // Minimum execution time: 118_101_992_000 picoseconds. - Weight::from_parts(118_101_992_000, 0) - .saturating_add(Weight::from_parts(0, 1518)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(3)) + // Measured: `164` + // Estimated: `67035` + // Minimum execution time: 86_295_879_000 picoseconds. + Weight::from_parts(87_636_595_000, 67035) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_004_000 picoseconds. - Weight::from_parts(2_119_000, 0) + // Minimum execution time: 2_078_000 picoseconds. + Weight::from_parts(1_137_744, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(390, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(387, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_032_000 picoseconds. - Weight::from_parts(8_097_000, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_455, 0).saturating_mul(b.into())) + // Minimum execution time: 5_980_000 picoseconds. + Weight::from_parts(2_562_415, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_391, 0).saturating_mul(b.into())) } - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) - /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 4_446_000 picoseconds. - Weight::from_parts(4_782_000, 1485) + // Minimum execution time: 3_834_000 picoseconds. + Weight::from_parts(4_109_000, 1485) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: unknown `0x3a636f6465` (r:0 w:1) - /// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 84_000_503_000 picoseconds. - Weight::from_parts(87_586_619_000, 1485) - .saturating_add(RocksDbWeight::get().reads(1_u64)) + // Measured: `142` + // Estimated: `67035` + // Minimum execution time: 81_326_496_000 picoseconds. + Weight::from_parts(81_880_651_000, 67035) + .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Skipped Metadata (r:0 w:0) - /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_086_000 picoseconds. - Weight::from_parts(2_175_000, 0) - // Standard Error: 1_056 - .saturating_add(Weight::from_parts(841_511, 0).saturating_mul(i.into())) + // Minimum execution time: 2_059_000 picoseconds. + Weight::from_parts(2_192_000, 0) + // Standard Error: 720 + .saturating_add(Weight::from_parts(742_610, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - /// Storage: Skipped Metadata (r:0 w:0) - /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_000_000 picoseconds. - Weight::from_parts(2_255_000, 0) - // Standard Error: 1_425 - .saturating_add(Weight::from_parts(662_473, 0).saturating_mul(i.into())) + // Minimum execution time: 2_038_000 picoseconds. + Weight::from_parts(2_159_000, 0) + // Standard Error: 774 + .saturating_add(Weight::from_parts(569_424, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - /// Storage: Skipped Metadata (r:0 w:0) - /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `115 + p * (69 ±0)` - // Estimated: `128 + p * (70 ±0)` - // Minimum execution time: 4_189_000 picoseconds. - Weight::from_parts(4_270_000, 128) - // Standard Error: 2_296 - .saturating_add(Weight::from_parts(1_389_650, 0).saturating_mul(p.into())) + // Measured: `127 + p * (69 ±0)` + // Estimated: `134 + p * (70 ±0)` + // Minimum execution time: 3_990_000 picoseconds. + Weight::from_parts(4_172_000, 134) + // Standard Error: 1_485 + .saturating_add(Weight::from_parts(1_227_281, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) @@ -275,25 +280,25 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 33_027_000 picoseconds. - Weight::from_parts(33_027_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(RocksDbWeight::get().writes(1)) + // Minimum execution time: 8_851_000 picoseconds. + Weight::from_parts(9_643_000, 0) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `System::AuthorizedUpgrade` (r:1 w:1) /// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn apply_authorized_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `22` - // Estimated: `1518` - // Minimum execution time: 118_101_992_000 picoseconds. - Weight::from_parts(118_101_992_000, 0) - .saturating_add(Weight::from_parts(0, 1518)) - .saturating_add(RocksDbWeight::get().reads(2)) - .saturating_add(RocksDbWeight::get().writes(3)) + // Measured: `164` + // Estimated: `67035` + // Minimum execution time: 86_295_879_000 picoseconds. + Weight::from_parts(87_636_595_000, 67035) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } } diff --git a/substrate/frame/timestamp/src/weights.rs b/substrate/frame/timestamp/src/weights.rs index 46c544734869442c17d2be8b354bed916e197b83..9f2cbf7ccd128b8801e6a7020ea4e9ac52f71ec0 100644 --- a/substrate/frame/timestamp/src/weights.rs +++ b/substrate/frame/timestamp/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_timestamp +//! Autogenerated weights for `pallet_timestamp` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/timestamp/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/timestamp/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,57 +49,57 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_timestamp. +/// Weight functions needed for `pallet_timestamp`. pub trait WeightInfo { fn set() -> Weight; fn on_finalize() -> Weight; } -/// Weights for pallet_timestamp using the Substrate node and recommended hardware. +/// Weights for `pallet_timestamp` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Timestamp Now (r:1 w:1) - /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Babe CurrentSlot (r:1 w:0) - /// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Babe::CurrentSlot` (r:1 w:0) + /// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set() -> Weight { // Proof Size summary in bytes: - // Measured: `312` + // Measured: `345` // Estimated: `1493` - // Minimum execution time: 9_857_000 picoseconds. - Weight::from_parts(10_492_000, 1493) + // Minimum execution time: 8_356_000 picoseconds. + Weight::from_parts(8_684_000, 1493) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn on_finalize() -> Weight { // Proof Size summary in bytes: - // Measured: `161` + // Measured: `194` // Estimated: `0` - // Minimum execution time: 4_175_000 picoseconds. - Weight::from_parts(4_334_000, 0) + // Minimum execution time: 3_886_000 picoseconds. + Weight::from_parts(4_118_000, 0) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Timestamp Now (r:1 w:1) - /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: Babe CurrentSlot (r:1 w:0) - /// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Babe::CurrentSlot` (r:1 w:0) + /// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set() -> Weight { // Proof Size summary in bytes: - // Measured: `312` + // Measured: `345` // Estimated: `1493` - // Minimum execution time: 9_857_000 picoseconds. - Weight::from_parts(10_492_000, 1493) + // Minimum execution time: 8_356_000 picoseconds. + Weight::from_parts(8_684_000, 1493) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } fn on_finalize() -> Weight { // Proof Size summary in bytes: - // Measured: `161` + // Measured: `194` // Estimated: `0` - // Minimum execution time: 4_175_000 picoseconds. - Weight::from_parts(4_334_000, 0) + // Minimum execution time: 3_886_000 picoseconds. + Weight::from_parts(4_118_000, 0) } } diff --git a/substrate/frame/tips/src/weights.rs b/substrate/frame/tips/src/weights.rs index ec6228667159ddbdbfecd12ccb5ff6250390829a..7e1bba3c73e7dfba9c18a101025c08557a76259b 100644 --- a/substrate/frame/tips/src/weights.rs +++ b/substrate/frame/tips/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_tips +//! Autogenerated weights for `pallet_tips` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/tips/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/tips/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_tips. +/// Weight functions needed for `pallet_tips`. pub trait WeightInfo { fn report_awesome(r: u32, ) -> Weight; fn retract_tip() -> Weight; @@ -60,220 +59,220 @@ pub trait WeightInfo { fn slash_tip(t: u32, ) -> Weight; } -/// Weights for pallet_tips using the Substrate node and recommended hardware. +/// Weights for `pallet_tips` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Tips Reasons (r:1 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Reasons` (r:1 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 300]`. fn report_awesome(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3469` - // Minimum execution time: 29_576_000 picoseconds. - Weight::from_parts(30_722_650, 3469) - // Standard Error: 192 - .saturating_add(Weight::from_parts(2_601, 0).saturating_mul(r.into())) + // Minimum execution time: 26_549_000 picoseconds. + Weight::from_parts(27_804_619, 3469) + // Standard Error: 173 + .saturating_add(Weight::from_parts(1_718, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Reasons (r:0 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) fn retract_tip() -> Weight { // Proof Size summary in bytes: // Measured: `221` // Estimated: `3686` - // Minimum execution time: 28_522_000 picoseconds. - Weight::from_parts(29_323_000, 3686) + // Minimum execution time: 25_430_000 picoseconds. + Weight::from_parts(26_056_000, 3686) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Tips Reasons (r:1 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Tips (r:0 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:1 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:0 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 300]`. /// The range of component `t` is `[1, 13]`. fn tip_new(r: u32, t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `526 + t * (64 ±0)` // Estimated: `3991 + t * (64 ±0)` - // Minimum execution time: 19_650_000 picoseconds. - Weight::from_parts(19_837_982, 3991) - // Standard Error: 151 - .saturating_add(Weight::from_parts(1_746, 0).saturating_mul(r.into())) - // Standard Error: 3_588 - .saturating_add(Weight::from_parts(102_359, 0).saturating_mul(t.into())) + // Minimum execution time: 17_309_000 picoseconds. + Weight::from_parts(17_493_185, 3991) + // Standard Error: 126 + .saturating_add(Weight::from_parts(1_444, 0).saturating_mul(r.into())) + // Standard Error: 3_011 + .saturating_add(Weight::from_parts(88_592, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into())) } - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 13]`. fn tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `747 + t * (112 ±0)` // Estimated: `4212 + t * (112 ±0)` - // Minimum execution time: 15_641_000 picoseconds. - Weight::from_parts(15_745_460, 4212) - // Standard Error: 5_106 - .saturating_add(Weight::from_parts(229_475, 0).saturating_mul(t.into())) + // Minimum execution time: 14_148_000 picoseconds. + Weight::from_parts(14_434_268, 4212) + // Standard Error: 4_666 + .saturating_add(Weight::from_parts(210_867, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) } - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Tips Reasons (r:0 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 13]`. fn close_tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `786 + t * (112 ±0)` // Estimated: `4242 + t * (112 ±0)` - // Minimum execution time: 62_059_000 picoseconds. - Weight::from_parts(64_604_554, 4242) - // Standard Error: 11_818 - .saturating_add(Weight::from_parts(116_297, 0).saturating_mul(t.into())) + // Minimum execution time: 56_060_000 picoseconds. + Weight::from_parts(57_913_972, 4242) + // Standard Error: 11_691 + .saturating_add(Weight::from_parts(229_579, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) } - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Reasons (r:0 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 13]`. fn slash_tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3734` - // Minimum execution time: 14_133_000 picoseconds. - Weight::from_parts(14_957_547, 3734) - // Standard Error: 2_765 - .saturating_add(Weight::from_parts(22_138, 0).saturating_mul(t.into())) + // Minimum execution time: 12_034_000 picoseconds. + Weight::from_parts(12_934_534, 3734) + // Standard Error: 2_420 + .saturating_add(Weight::from_parts(4_167, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Tips Reasons (r:1 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Reasons` (r:1 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 300]`. fn report_awesome(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3469` - // Minimum execution time: 29_576_000 picoseconds. - Weight::from_parts(30_722_650, 3469) - // Standard Error: 192 - .saturating_add(Weight::from_parts(2_601, 0).saturating_mul(r.into())) + // Minimum execution time: 26_549_000 picoseconds. + Weight::from_parts(27_804_619, 3469) + // Standard Error: 173 + .saturating_add(Weight::from_parts(1_718, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Reasons (r:0 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) fn retract_tip() -> Weight { // Proof Size summary in bytes: // Measured: `221` // Estimated: `3686` - // Minimum execution time: 28_522_000 picoseconds. - Weight::from_parts(29_323_000, 3686) + // Minimum execution time: 25_430_000 picoseconds. + Weight::from_parts(26_056_000, 3686) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Tips Reasons (r:1 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Tips (r:0 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:1 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:0 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 300]`. /// The range of component `t` is `[1, 13]`. fn tip_new(r: u32, t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `526 + t * (64 ±0)` // Estimated: `3991 + t * (64 ±0)` - // Minimum execution time: 19_650_000 picoseconds. - Weight::from_parts(19_837_982, 3991) - // Standard Error: 151 - .saturating_add(Weight::from_parts(1_746, 0).saturating_mul(r.into())) - // Standard Error: 3_588 - .saturating_add(Weight::from_parts(102_359, 0).saturating_mul(t.into())) + // Minimum execution time: 17_309_000 picoseconds. + Weight::from_parts(17_493_185, 3991) + // Standard Error: 126 + .saturating_add(Weight::from_parts(1_444, 0).saturating_mul(r.into())) + // Standard Error: 3_011 + .saturating_add(Weight::from_parts(88_592, 0).saturating_mul(t.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into())) } - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 13]`. fn tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `747 + t * (112 ±0)` // Estimated: `4212 + t * (112 ±0)` - // Minimum execution time: 15_641_000 picoseconds. - Weight::from_parts(15_745_460, 4212) - // Standard Error: 5_106 - .saturating_add(Weight::from_parts(229_475, 0).saturating_mul(t.into())) + // Minimum execution time: 14_148_000 picoseconds. + Weight::from_parts(14_434_268, 4212) + // Standard Error: 4_666 + .saturating_add(Weight::from_parts(210_867, 0).saturating_mul(t.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) } - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - /// Storage: Elections Members (r:1 w:0) - /// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Tips Reasons (r:0 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 13]`. fn close_tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `786 + t * (112 ±0)` // Estimated: `4242 + t * (112 ±0)` - // Minimum execution time: 62_059_000 picoseconds. - Weight::from_parts(64_604_554, 4242) - // Standard Error: 11_818 - .saturating_add(Weight::from_parts(116_297, 0).saturating_mul(t.into())) + // Minimum execution time: 56_060_000 picoseconds. + Weight::from_parts(57_913_972, 4242) + // Standard Error: 11_691 + .saturating_add(Weight::from_parts(229_579, 0).saturating_mul(t.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) } - /// Storage: Tips Tips (r:1 w:1) - /// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - /// Storage: Tips Reasons (r:0 w:1) - /// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 13]`. fn slash_tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3734` - // Minimum execution time: 14_133_000 picoseconds. - Weight::from_parts(14_957_547, 3734) - // Standard Error: 2_765 - .saturating_add(Weight::from_parts(22_138, 0).saturating_mul(t.into())) + // Minimum execution time: 12_034_000 picoseconds. + Weight::from_parts(12_934_534, 3734) + // Standard Error: 2_420 + .saturating_add(Weight::from_parts(4_167, 0).saturating_mul(t.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } diff --git a/substrate/frame/transaction-storage/src/weights.rs b/substrate/frame/transaction-storage/src/weights.rs index 519317177c492f4e1179b9ee12f17da7d442b0e4..4d51daa17b40677faea83aeba79ccc765fad8102 100644 --- a/substrate/frame/transaction-storage/src/weights.rs +++ b/substrate/frame/transaction-storage/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_transaction_storage +//! Autogenerated weights for `pallet_transaction_storage` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/transaction-storage/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/transaction-storage/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,125 +49,133 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_transaction_storage. +/// Weight functions needed for `pallet_transaction_storage`. pub trait WeightInfo { fn store(l: u32, ) -> Weight; fn renew() -> Weight; fn check_proof_max() -> Weight; } -/// Weights for pallet_transaction_storage using the Substrate node and recommended hardware. +/// Weights for `pallet_transaction_storage` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: TransactionStorage ByteFee (r:1 w:0) - /// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage EntryFee (r:1 w:0) - /// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage BlockTransactions (r:1 w:1) - /// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen) + /// Storage: `TransactionStorage::ByteFee` (r:1 w:0) + /// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::EntryFee` (r:1 w:0) + /// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1) + /// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`) /// The range of component `l` is `[1, 8388608]`. fn store(l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `176` + // Measured: `242` // Estimated: `38351` - // Minimum execution time: 34_844_000 picoseconds. - Weight::from_parts(35_489_000, 38351) - // Standard Error: 11 - .saturating_add(Weight::from_parts(6_912, 0).saturating_mul(l.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) + // Minimum execution time: 62_024_000 picoseconds. + Weight::from_parts(63_536_000, 38351) + // Standard Error: 13 + .saturating_add(Weight::from_parts(7_178, 0).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: TransactionStorage Transactions (r:1 w:0) - /// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen) - /// Storage: TransactionStorage ByteFee (r:1 w:0) - /// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage EntryFee (r:1 w:0) - /// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage BlockTransactions (r:1 w:1) - /// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen) + /// Storage: `TransactionStorage::Transactions` (r:1 w:0) + /// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::ByteFee` (r:1 w:0) + /// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::EntryFee` (r:1 w:0) + /// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1) + /// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`) fn renew() -> Weight { // Proof Size summary in bytes: - // Measured: `326` + // Measured: `430` // Estimated: `40351` - // Minimum execution time: 48_244_000 picoseconds. - Weight::from_parts(50_939_000, 40351) - .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) + // Minimum execution time: 81_473_000 picoseconds. + Weight::from_parts(84_000_000, 40351) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: TransactionStorage ProofChecked (r:1 w:1) - /// Proof: TransactionStorage ProofChecked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) - /// Storage: TransactionStorage StoragePeriod (r:1 w:0) - /// Proof: TransactionStorage StoragePeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: TransactionStorage ChunkCount (r:1 w:0) - /// Proof: TransactionStorage ChunkCount (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) - /// Storage: System ParentHash (r:1 w:0) - /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TransactionStorage Transactions (r:1 w:0) - /// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen) + /// Storage: `TransactionStorage::ProofChecked` (r:1 w:1) + /// Proof: `TransactionStorage::ProofChecked` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::StoragePeriod` (r:1 w:0) + /// Proof: `TransactionStorage::StoragePeriod` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::ChunkCount` (r:1 w:0) + /// Proof: `TransactionStorage::ChunkCount` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// Storage: `System::ParentHash` (r:1 w:0) + /// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::Transactions` (r:1 w:0) + /// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`) fn check_proof_max() -> Weight { // Proof Size summary in bytes: - // Measured: `37145` + // Measured: `37211` // Estimated: `40351` - // Minimum execution time: 80_913_000 picoseconds. - Weight::from_parts(84_812_000, 40351) + // Minimum execution time: 68_167_000 picoseconds. + Weight::from_parts(75_532_000, 40351) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: TransactionStorage ByteFee (r:1 w:0) - /// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage EntryFee (r:1 w:0) - /// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage BlockTransactions (r:1 w:1) - /// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen) + /// Storage: `TransactionStorage::ByteFee` (r:1 w:0) + /// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::EntryFee` (r:1 w:0) + /// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1) + /// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`) /// The range of component `l` is `[1, 8388608]`. fn store(l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `176` + // Measured: `242` // Estimated: `38351` - // Minimum execution time: 34_844_000 picoseconds. - Weight::from_parts(35_489_000, 38351) - // Standard Error: 11 - .saturating_add(Weight::from_parts(6_912, 0).saturating_mul(l.into())) - .saturating_add(RocksDbWeight::get().reads(3_u64)) - .saturating_add(RocksDbWeight::get().writes(1_u64)) + // Minimum execution time: 62_024_000 picoseconds. + Weight::from_parts(63_536_000, 38351) + // Standard Error: 13 + .saturating_add(Weight::from_parts(7_178, 0).saturating_mul(l.into())) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: TransactionStorage Transactions (r:1 w:0) - /// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen) - /// Storage: TransactionStorage ByteFee (r:1 w:0) - /// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage EntryFee (r:1 w:0) - /// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: TransactionStorage BlockTransactions (r:1 w:1) - /// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen) + /// Storage: `TransactionStorage::Transactions` (r:1 w:0) + /// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::ByteFee` (r:1 w:0) + /// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::EntryFee` (r:1 w:0) + /// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1) + /// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`) fn renew() -> Weight { // Proof Size summary in bytes: - // Measured: `326` + // Measured: `430` // Estimated: `40351` - // Minimum execution time: 48_244_000 picoseconds. - Weight::from_parts(50_939_000, 40351) - .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(1_u64)) + // Minimum execution time: 81_473_000 picoseconds. + Weight::from_parts(84_000_000, 40351) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: TransactionStorage ProofChecked (r:1 w:1) - /// Proof: TransactionStorage ProofChecked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) - /// Storage: TransactionStorage StoragePeriod (r:1 w:0) - /// Proof: TransactionStorage StoragePeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: TransactionStorage ChunkCount (r:1 w:0) - /// Proof: TransactionStorage ChunkCount (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) - /// Storage: System ParentHash (r:1 w:0) - /// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: TransactionStorage Transactions (r:1 w:0) - /// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen) + /// Storage: `TransactionStorage::ProofChecked` (r:1 w:1) + /// Proof: `TransactionStorage::ProofChecked` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::StoragePeriod` (r:1 w:0) + /// Proof: `TransactionStorage::StoragePeriod` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::ChunkCount` (r:1 w:0) + /// Proof: `TransactionStorage::ChunkCount` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`) + /// Storage: `System::ParentHash` (r:1 w:0) + /// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `TransactionStorage::Transactions` (r:1 w:0) + /// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`) fn check_proof_max() -> Weight { // Proof Size summary in bytes: - // Measured: `37145` + // Measured: `37211` // Estimated: `40351` - // Minimum execution time: 80_913_000 picoseconds. - Weight::from_parts(84_812_000, 40351) + // Minimum execution time: 68_167_000 picoseconds. + Weight::from_parts(75_532_000, 40351) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/treasury/src/weights.rs b/substrate/frame/treasury/src/weights.rs index 030e18980eb54f8b16452691b884e6046878aaa2..82277e2d28f6c80e2bfa040103bb4a311ca41ac1 100644 --- a/substrate/frame/treasury/src/weights.rs +++ b/substrate/frame/treasury/src/weights.rs @@ -15,27 +15,31 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_treasury +//! Autogenerated weights for `pallet_treasury` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-07, STEPS: `20`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cob`, CPU: `` -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/debug/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev -// --steps=20 -// --repeat=2 -// --pallet=pallet-treasury +// --steps=50 +// --repeat=20 +// --pallet=pallet_treasury +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/treasury/src/._weights.rs -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/treasury/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -45,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_treasury. +/// Weight functions needed for `pallet_treasury`. pub trait WeightInfo { fn spend_local() -> Weight; fn propose_spend() -> Weight; @@ -59,304 +63,304 @@ pub trait WeightInfo { fn void_spend() -> Weight; } -/// Weights for pallet_treasury using the Substrate node and recommended hardware. +/// Weights for `pallet_treasury` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Treasury ProposalCount (r:1 w:1) - /// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) - /// Storage: Treasury Proposals (r:0 w:1) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn spend_local() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `1887` - // Minimum execution time: 179_000_000 picoseconds. - Weight::from_parts(190_000_000, 1887) + // Minimum execution time: 11_910_000 picoseconds. + Weight::from_parts(12_681_000, 1887) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Treasury ProposalCount (r:1 w:1) - /// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Treasury Proposals (r:0 w:1) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn propose_spend() -> Weight { // Proof Size summary in bytes: // Measured: `177` // Estimated: `1489` - // Minimum execution time: 349_000_000 picoseconds. - Weight::from_parts(398_000_000, 1489) + // Minimum execution time: 24_704_000 picoseconds. + Weight::from_parts(25_484_000, 1489) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Treasury Proposals (r:1 w:1) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Treasury::Proposals` (r:1 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn reject_proposal() -> Weight { // Proof Size summary in bytes: // Measured: `335` // Estimated: `3593` - // Minimum execution time: 367_000_000 picoseconds. - Weight::from_parts(388_000_000, 3593) + // Minimum execution time: 26_632_000 picoseconds. + Weight::from_parts(27_325_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Treasury Proposals (r:1 w:0) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Proposals` (r:1 w:0) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 99]`. fn approve_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `483 + p * (9 ±0)` + // Measured: `504 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 111_000_000 picoseconds. - Weight::from_parts(108_813_243, 3573) - // Standard Error: 147_887 - .saturating_add(Weight::from_parts(683_216, 0).saturating_mul(p.into())) + // Minimum execution time: 8_436_000 picoseconds. + Weight::from_parts(11_268_438, 3573) + // Standard Error: 1_039 + .saturating_add(Weight::from_parts(70_903, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) fn remove_approval() -> Weight { // Proof Size summary in bytes: // Measured: `161` // Estimated: `1887` - // Minimum execution time: 71_000_000 picoseconds. - Weight::from_parts(78_000_000, 1887) + // Minimum execution time: 6_372_000 picoseconds. + Weight::from_parts(6_567_000, 1887) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Treasury Deactivated (r:1 w:1) - /// Proof: Treasury Deactivated (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) - /// Storage: Treasury Proposals (r:99 w:99) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - /// Storage: System Account (r:198 w:198) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyApprovals (r:1 w:1) - /// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Deactivated` (r:1 w:1) + /// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:99 w:99) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:198 w:198) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 99]`. fn on_initialize_proposals(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `427 + p * (251 ±0)` + // Measured: `451 + p * (251 ±0)` // Estimated: `1887 + p * (5206 ±0)` - // Minimum execution time: 614_000_000 picoseconds. - Weight::from_parts(498_501_558, 1887) - // Standard Error: 1_070_260 - .saturating_add(Weight::from_parts(599_011_690, 0).saturating_mul(p.into())) + // Minimum execution time: 33_150_000 picoseconds. + Weight::from_parts(41_451_020, 1887) + // Standard Error: 19_018 + .saturating_add(Weight::from_parts(34_410_759, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 5206).saturating_mul(p.into())) } - /// Storage: AssetRate ConversionRateToNative (r:1 w:0) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) - /// Storage: Treasury SpendCount (r:1 w:1) - /// Proof: Treasury SpendCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Treasury Spends (r:0 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Treasury::SpendCount` (r:1 w:1) + /// Proof: `Treasury::SpendCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Spends` (r:0 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn spend() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3501` - // Minimum execution time: 214_000_000 picoseconds. - Weight::from_parts(216_000_000, 3501) + // Minimum execution time: 14_233_000 picoseconds. + Weight::from_parts(14_842_000, 3501) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Treasury Spends (r:1 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn payout() -> Weight { // Proof Size summary in bytes: - // Measured: `705` + // Measured: `709` // Estimated: `6208` - // Minimum execution time: 760_000_000 picoseconds. - Weight::from_parts(822_000_000, 6208) + // Minimum execution time: 58_857_000 picoseconds. + Weight::from_parts(61_291_000, 6208) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Treasury Spends (r:1 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn check_status() -> Weight { // Proof Size summary in bytes: - // Measured: `194` - // Estimated: `3534` - // Minimum execution time: 153_000_000 picoseconds. - Weight::from_parts(160_000_000, 3534) + // Measured: `198` + // Estimated: `3538` + // Minimum execution time: 12_116_000 picoseconds. + Weight::from_parts(12_480_000, 3538) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Treasury Spends (r:1 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn void_spend() -> Weight { // Proof Size summary in bytes: - // Measured: `194` - // Estimated: `3534` - // Minimum execution time: 147_000_000 picoseconds. - Weight::from_parts(181_000_000, 3534) + // Measured: `198` + // Estimated: `3538` + // Minimum execution time: 10_834_000 picoseconds. + Weight::from_parts(11_427_000, 3538) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Treasury ProposalCount (r:1 w:1) - /// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) - /// Storage: Treasury Proposals (r:0 w:1) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn spend_local() -> Weight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `1887` - // Minimum execution time: 179_000_000 picoseconds. - Weight::from_parts(190_000_000, 1887) + // Minimum execution time: 11_910_000 picoseconds. + Weight::from_parts(12_681_000, 1887) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - /// Storage: Treasury ProposalCount (r:1 w:1) - /// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Treasury Proposals (r:0 w:1) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn propose_spend() -> Weight { // Proof Size summary in bytes: // Measured: `177` // Estimated: `1489` - // Minimum execution time: 349_000_000 picoseconds. - Weight::from_parts(398_000_000, 1489) + // Minimum execution time: 24_704_000 picoseconds. + Weight::from_parts(25_484_000, 1489) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Treasury Proposals (r:1 w:1) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Treasury::Proposals` (r:1 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn reject_proposal() -> Weight { // Proof Size summary in bytes: // Measured: `335` // Estimated: `3593` - // Minimum execution time: 367_000_000 picoseconds. - Weight::from_parts(388_000_000, 3593) + // Minimum execution time: 26_632_000 picoseconds. + Weight::from_parts(27_325_000, 3593) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Treasury Proposals (r:1 w:0) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Proposals` (r:1 w:0) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 99]`. fn approve_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `483 + p * (9 ±0)` + // Measured: `504 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 111_000_000 picoseconds. - Weight::from_parts(108_813_243, 3573) - // Standard Error: 147_887 - .saturating_add(Weight::from_parts(683_216, 0).saturating_mul(p.into())) + // Minimum execution time: 8_436_000 picoseconds. + Weight::from_parts(11_268_438, 3573) + // Standard Error: 1_039 + .saturating_add(Weight::from_parts(70_903, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) fn remove_approval() -> Weight { // Proof Size summary in bytes: // Measured: `161` // Estimated: `1887` - // Minimum execution time: 71_000_000 picoseconds. - Weight::from_parts(78_000_000, 1887) + // Minimum execution time: 6_372_000 picoseconds. + Weight::from_parts(6_567_000, 1887) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Treasury Deactivated (r:1 w:1) - /// Proof: Treasury Deactivated (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: Treasury Approvals (r:1 w:1) - /// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) - /// Storage: Treasury Proposals (r:99 w:99) - /// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - /// Storage: System Account (r:198 w:198) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: Bounties BountyApprovals (r:1 w:1) - /// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Deactivated` (r:1 w:1) + /// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:99 w:99) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:198 w:198) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 99]`. fn on_initialize_proposals(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `427 + p * (251 ±0)` + // Measured: `451 + p * (251 ±0)` // Estimated: `1887 + p * (5206 ±0)` - // Minimum execution time: 614_000_000 picoseconds. - Weight::from_parts(498_501_558, 1887) - // Standard Error: 1_070_260 - .saturating_add(Weight::from_parts(599_011_690, 0).saturating_mul(p.into())) + // Minimum execution time: 33_150_000 picoseconds. + Weight::from_parts(41_451_020, 1887) + // Standard Error: 19_018 + .saturating_add(Weight::from_parts(34_410_759, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 5206).saturating_mul(p.into())) } - /// Storage: AssetRate ConversionRateToNative (r:1 w:0) - /// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) - /// Storage: Treasury SpendCount (r:1 w:1) - /// Proof: Treasury SpendCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: Treasury Spends (r:0 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `Treasury::SpendCount` (r:1 w:1) + /// Proof: `Treasury::SpendCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Spends` (r:0 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn spend() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3501` - // Minimum execution time: 214_000_000 picoseconds. - Weight::from_parts(216_000_000, 3501) + // Minimum execution time: 14_233_000 picoseconds. + Weight::from_parts(14_842_000, 3501) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Treasury Spends (r:1 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn payout() -> Weight { // Proof Size summary in bytes: - // Measured: `705` + // Measured: `709` // Estimated: `6208` - // Minimum execution time: 760_000_000 picoseconds. - Weight::from_parts(822_000_000, 6208) + // Minimum execution time: 58_857_000 picoseconds. + Weight::from_parts(61_291_000, 6208) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } - /// Storage: Treasury Spends (r:1 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn check_status() -> Weight { // Proof Size summary in bytes: - // Measured: `194` - // Estimated: `3534` - // Minimum execution time: 153_000_000 picoseconds. - Weight::from_parts(160_000_000, 3534) + // Measured: `198` + // Estimated: `3538` + // Minimum execution time: 12_116_000 picoseconds. + Weight::from_parts(12_480_000, 3538) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: Treasury Spends (r:1 w:1) - /// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) fn void_spend() -> Weight { // Proof Size summary in bytes: - // Measured: `194` - // Estimated: `3534` - // Minimum execution time: 147_000_000 picoseconds. - Weight::from_parts(181_000_000, 3534) + // Measured: `198` + // Estimated: `3538` + // Minimum execution time: 10_834_000 picoseconds. + Weight::from_parts(11_427_000, 3538) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/tx-pause/src/weights.rs b/substrate/frame/tx-pause/src/weights.rs index b733e64b159dc40872e27dd540ed40820e5cc78d..e7837e9ca89c7893454c362b0b54b33994d17dc1 100644 --- a/substrate/frame/tx-pause/src/weights.rs +++ b/substrate/frame/tx-pause/src/weights.rs @@ -17,27 +17,29 @@ //! Autogenerated weights for `pallet_tx_pause` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-aahe6cbd-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_tx_pause +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json -// --pallet=pallet_tx_pause -// --chain=dev -// --header=./HEADER-APACHE2 -// --output=./frame/tx-pause/src/weights.rs -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/tx-pause/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,8 +64,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3` // Estimated: `3997` - // Minimum execution time: 15_096_000 picoseconds. - Weight::from_parts(15_437_000, 3997) + // Minimum execution time: 12_218_000 picoseconds. + Weight::from_parts(12_542_000, 3997) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -73,8 +75,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `565` // Estimated: `3997` - // Minimum execution time: 21_546_000 picoseconds. - Weight::from_parts(22_178_000, 3997) + // Minimum execution time: 18_314_000 picoseconds. + Weight::from_parts(18_990_000, 3997) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -88,8 +90,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `3` // Estimated: `3997` - // Minimum execution time: 15_096_000 picoseconds. - Weight::from_parts(15_437_000, 3997) + // Minimum execution time: 12_218_000 picoseconds. + Weight::from_parts(12_542_000, 3997) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -99,8 +101,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `565` // Estimated: `3997` - // Minimum execution time: 21_546_000 picoseconds. - Weight::from_parts(22_178_000, 3997) + // Minimum execution time: 18_314_000 picoseconds. + Weight::from_parts(18_990_000, 3997) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/substrate/frame/uniques/src/weights.rs b/substrate/frame/uniques/src/weights.rs index eb80ee550a1db2d97aaed001f5041e49fdbca864..5576c8921f9ca1d02f0ebc8e275bd907323e33db 100644 --- a/substrate/frame/uniques/src/weights.rs +++ b/substrate/frame/uniques/src/weights.rs @@ -17,27 +17,29 @@ //! Autogenerated weights for `pallet_uniques` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-gghbxkbs-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_uniques +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json -// --pallet=pallet_uniques -// --chain=dev -// --header=./HEADER-APACHE2 -// --output=./frame/uniques/src/weights.rs -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/uniques/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -88,8 +90,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `249` // Estimated: `3643` - // Minimum execution time: 31_393_000 picoseconds. - Weight::from_parts(32_933_000, 3643) + // Minimum execution time: 27_074_000 picoseconds. + Weight::from_parts(28_213_000, 3643) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -101,8 +103,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3643` - // Minimum execution time: 14_827_000 picoseconds. - Weight::from_parts(15_273_000, 3643) + // Minimum execution time: 12_034_000 picoseconds. + Weight::from_parts(12_669_000, 3643) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -111,13 +113,13 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Uniques::Asset` (r:1001 w:1000) /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) /// Storage: `Uniques::Attribute` (r:1000 w:1000) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassAccount` (r:0 w:1) /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassMetadataOf` (r:0 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) /// Storage: `Uniques::Account` (r:0 w:1000) /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) /// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1) @@ -128,15 +130,15 @@ impl WeightInfo for SubstrateWeight { fn destroy(n: u32, m: u32, a: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `418 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)` - // Estimated: `3643 + a * (2839 ±0) + m * (2583 ±0) + n * (2597 ±0)` - // Minimum execution time: 3_281_673_000 picoseconds. - Weight::from_parts(3_443_387_000, 3643) - // Standard Error: 41_937 - .saturating_add(Weight::from_parts(7_914_842, 0).saturating_mul(n.into())) - // Standard Error: 41_937 - .saturating_add(Weight::from_parts(519_960, 0).saturating_mul(m.into())) - // Standard Error: 41_937 - .saturating_add(Weight::from_parts(462_690, 0).saturating_mul(a.into())) + // Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)` + // Minimum execution time: 2_928_174_000 picoseconds. + Weight::from_parts(2_970_367_000, 3643) + // Standard Error: 30_368 + .saturating_add(Weight::from_parts(7_336_699, 0).saturating_mul(n.into())) + // Standard Error: 30_368 + .saturating_add(Weight::from_parts(401_816, 0).saturating_mul(m.into())) + // Standard Error: 30_368 + .saturating_add(Weight::from_parts(346_952, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into()))) @@ -145,8 +147,8 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2839).saturating_mul(a.into())) - .saturating_add(Weight::from_parts(0, 2583).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) } /// Storage: `Uniques::Asset` (r:1 w:1) @@ -161,8 +163,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 38_122_000 picoseconds. - Weight::from_parts(38_924_000, 3643) + // Minimum execution time: 33_733_000 picoseconds. + Weight::from_parts(35_366_000, 3643) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -178,8 +180,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 38_835_000 picoseconds. - Weight::from_parts(39_754_000, 3643) + // Minimum execution time: 35_064_000 picoseconds. + Weight::from_parts(35_747_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -195,8 +197,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 27_032_000 picoseconds. - Weight::from_parts(27_793_000, 3643) + // Minimum execution time: 24_955_000 picoseconds. + Weight::from_parts(25_661_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -209,10 +211,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `805 + i * (76 ±0)` // Estimated: `3643 + i * (2597 ±0)` - // Minimum execution time: 14_737_000 picoseconds. - Weight::from_parts(15_070_000, 3643) - // Standard Error: 22_500 - .saturating_add(Weight::from_parts(18_855_468, 0).saturating_mul(i.into())) + // Minimum execution time: 12_119_000 picoseconds. + Weight::from_parts(12_490_000, 3643) + // Standard Error: 14_697 + .saturating_add(Weight::from_parts(15_720_495, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -227,8 +229,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 18_664_000 picoseconds. - Weight::from_parts(19_455_000, 3643) + // Minimum execution time: 16_183_000 picoseconds. + Weight::from_parts(16_716_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -240,8 +242,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 18_247_000 picoseconds. - Weight::from_parts(18_763_000, 3643) + // Minimum execution time: 16_119_000 picoseconds. + Weight::from_parts(16_725_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -251,8 +253,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 13_219_000 picoseconds. - Weight::from_parts(13_923_000, 3643) + // Minimum execution time: 10_889_000 picoseconds. + Weight::from_parts(11_480_000, 3643) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -262,8 +264,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 13_376_000 picoseconds. - Weight::from_parts(13_904_000, 3643) + // Minimum execution time: 10_903_000 picoseconds. + Weight::from_parts(11_241_000, 3643) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -271,16 +273,18 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassAccount` (r:0 w:2) /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: - // Measured: `423` + // Measured: `597` // Estimated: `3643` - // Minimum execution time: 22_353_000 picoseconds. - Weight::from_parts(23_222_000, 3643) - .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Minimum execution time: 24_942_000 picoseconds. + Weight::from_parts(25_715_000, 3643) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) @@ -288,8 +292,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 14_072_000 picoseconds. - Weight::from_parts(14_619_000, 3643) + // Minimum execution time: 11_488_000 picoseconds. + Weight::from_parts(11_752_000, 3643) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -301,92 +305,92 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 17_081_000 picoseconds. - Weight::from_parts(17_698_000, 3643) + // Minimum execution time: 14_721_000 picoseconds. + Weight::from_parts(15_187_000, 3643) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) fn set_attribute() -> Weight { // Proof Size summary in bytes: - // Measured: `547` - // Estimated: `3829` - // Minimum execution time: 41_501_000 picoseconds. - Weight::from_parts(43_101_000, 3829) + // Measured: `626` + // Estimated: `3652` + // Minimum execution time: 36_665_000 picoseconds. + Weight::from_parts(37_587_000, 3652) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) fn clear_attribute() -> Weight { // Proof Size summary in bytes: - // Measured: `936` - // Estimated: `3829` - // Minimum execution time: 39_722_000 picoseconds. - Weight::from_parts(40_390_000, 3829) + // Measured: `823` + // Estimated: `3652` + // Minimum execution time: 35_066_000 picoseconds. + Weight::from_parts(36_380_000, 3652) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) fn set_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `415` - // Estimated: `3643` - // Minimum execution time: 30_726_000 picoseconds. - Weight::from_parts(31_557_000, 3643) + // Estimated: `3652` + // Minimum execution time: 27_060_000 picoseconds. + Weight::from_parts(27_813_000, 3652) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `547` - // Estimated: `3643` - // Minimum execution time: 31_303_000 picoseconds. - Weight::from_parts(32_389_000, 3643) + // Measured: `626` + // Estimated: `3652` + // Minimum execution time: 27_776_000 picoseconds. + Weight::from_parts(28_582_000, 3652) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) fn set_collection_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 32_155_000 picoseconds. - Weight::from_parts(32_885_000, 3643) + // Minimum execution time: 27_636_000 picoseconds. + Weight::from_parts(29_118_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: `Uniques::Class` (r:1 w:0) + /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) fn clear_collection_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `461` + // Measured: `540` // Estimated: `3643` - // Minimum execution time: 30_044_000 picoseconds. - Weight::from_parts(31_405_000, 3643) + // Minimum execution time: 28_246_000 picoseconds. + Weight::from_parts(29_059_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:0) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) @@ -396,8 +400,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 18_904_000 picoseconds. - Weight::from_parts(19_687_000, 3643) + // Minimum execution time: 16_793_000 picoseconds. + Weight::from_parts(17_396_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -409,8 +413,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `528` // Estimated: `3643` - // Minimum execution time: 19_144_000 picoseconds. - Weight::from_parts(19_706_000, 3643) + // Minimum execution time: 16_726_000 picoseconds. + Weight::from_parts(17_357_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -420,8 +424,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3517` - // Minimum execution time: 15_339_000 picoseconds. - Weight::from_parts(15_918_000, 3517) + // Minimum execution time: 12_686_000 picoseconds. + Weight::from_parts(13_182_000, 3517) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -433,8 +437,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 15_387_000 picoseconds. - Weight::from_parts(15_726_000, 3643) + // Minimum execution time: 13_508_000 picoseconds. + Weight::from_parts(13_906_000, 3643) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -446,8 +450,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `326` // Estimated: `3587` - // Minimum execution time: 15_873_000 picoseconds. - Weight::from_parts(16_860_000, 3587) + // Minimum execution time: 13_742_000 picoseconds. + Weight::from_parts(14_200_000, 3587) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -463,8 +467,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `607` // Estimated: `3643` - // Minimum execution time: 37_245_000 picoseconds. - Weight::from_parts(38_383_000, 3643) + // Minimum execution time: 32_931_000 picoseconds. + Weight::from_parts(34_023_000, 3643) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -480,8 +484,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `249` // Estimated: `3643` - // Minimum execution time: 31_393_000 picoseconds. - Weight::from_parts(32_933_000, 3643) + // Minimum execution time: 27_074_000 picoseconds. + Weight::from_parts(28_213_000, 3643) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -493,8 +497,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3643` - // Minimum execution time: 14_827_000 picoseconds. - Weight::from_parts(15_273_000, 3643) + // Minimum execution time: 12_034_000 picoseconds. + Weight::from_parts(12_669_000, 3643) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -503,13 +507,13 @@ impl WeightInfo for () { /// Storage: `Uniques::Asset` (r:1001 w:1000) /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) /// Storage: `Uniques::Attribute` (r:1000 w:1000) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassAccount` (r:0 w:1) /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassMetadataOf` (r:0 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) /// Storage: `Uniques::Account` (r:0 w:1000) /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) /// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1) @@ -520,15 +524,15 @@ impl WeightInfo for () { fn destroy(n: u32, m: u32, a: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `418 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)` - // Estimated: `3643 + a * (2839 ±0) + m * (2583 ±0) + n * (2597 ±0)` - // Minimum execution time: 3_281_673_000 picoseconds. - Weight::from_parts(3_443_387_000, 3643) - // Standard Error: 41_937 - .saturating_add(Weight::from_parts(7_914_842, 0).saturating_mul(n.into())) - // Standard Error: 41_937 - .saturating_add(Weight::from_parts(519_960, 0).saturating_mul(m.into())) - // Standard Error: 41_937 - .saturating_add(Weight::from_parts(462_690, 0).saturating_mul(a.into())) + // Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)` + // Minimum execution time: 2_928_174_000 picoseconds. + Weight::from_parts(2_970_367_000, 3643) + // Standard Error: 30_368 + .saturating_add(Weight::from_parts(7_336_699, 0).saturating_mul(n.into())) + // Standard Error: 30_368 + .saturating_add(Weight::from_parts(401_816, 0).saturating_mul(m.into())) + // Standard Error: 30_368 + .saturating_add(Weight::from_parts(346_952, 0).saturating_mul(a.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(m.into()))) @@ -537,8 +541,8 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(m.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2839).saturating_mul(a.into())) - .saturating_add(Weight::from_parts(0, 2583).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) } /// Storage: `Uniques::Asset` (r:1 w:1) @@ -553,8 +557,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 38_122_000 picoseconds. - Weight::from_parts(38_924_000, 3643) + // Minimum execution time: 33_733_000 picoseconds. + Weight::from_parts(35_366_000, 3643) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -570,8 +574,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 38_835_000 picoseconds. - Weight::from_parts(39_754_000, 3643) + // Minimum execution time: 35_064_000 picoseconds. + Weight::from_parts(35_747_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -587,8 +591,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 27_032_000 picoseconds. - Weight::from_parts(27_793_000, 3643) + // Minimum execution time: 24_955_000 picoseconds. + Weight::from_parts(25_661_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -601,10 +605,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `805 + i * (76 ±0)` // Estimated: `3643 + i * (2597 ±0)` - // Minimum execution time: 14_737_000 picoseconds. - Weight::from_parts(15_070_000, 3643) - // Standard Error: 22_500 - .saturating_add(Weight::from_parts(18_855_468, 0).saturating_mul(i.into())) + // Minimum execution time: 12_119_000 picoseconds. + Weight::from_parts(12_490_000, 3643) + // Standard Error: 14_697 + .saturating_add(Weight::from_parts(15_720_495, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) @@ -619,8 +623,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 18_664_000 picoseconds. - Weight::from_parts(19_455_000, 3643) + // Minimum execution time: 16_183_000 picoseconds. + Weight::from_parts(16_716_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -632,8 +636,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 18_247_000 picoseconds. - Weight::from_parts(18_763_000, 3643) + // Minimum execution time: 16_119_000 picoseconds. + Weight::from_parts(16_725_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -643,8 +647,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 13_219_000 picoseconds. - Weight::from_parts(13_923_000, 3643) + // Minimum execution time: 10_889_000 picoseconds. + Weight::from_parts(11_480_000, 3643) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -654,8 +658,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 13_376_000 picoseconds. - Weight::from_parts(13_904_000, 3643) + // Minimum execution time: 10_903_000 picoseconds. + Weight::from_parts(11_241_000, 3643) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -663,16 +667,18 @@ impl WeightInfo for () { /// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassAccount` (r:0 w:2) /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: - // Measured: `423` + // Measured: `597` // Estimated: `3643` - // Minimum execution time: 22_353_000 picoseconds. - Weight::from_parts(23_222_000, 3643) - .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(4_u64)) + // Minimum execution time: 24_942_000 picoseconds. + Weight::from_parts(25_715_000, 3643) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) @@ -680,8 +686,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 14_072_000 picoseconds. - Weight::from_parts(14_619_000, 3643) + // Minimum execution time: 11_488_000 picoseconds. + Weight::from_parts(11_752_000, 3643) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -693,92 +699,92 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 17_081_000 picoseconds. - Weight::from_parts(17_698_000, 3643) + // Minimum execution time: 14_721_000 picoseconds. + Weight::from_parts(15_187_000, 3643) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) fn set_attribute() -> Weight { // Proof Size summary in bytes: - // Measured: `547` - // Estimated: `3829` - // Minimum execution time: 41_501_000 picoseconds. - Weight::from_parts(43_101_000, 3829) + // Measured: `626` + // Estimated: `3652` + // Minimum execution time: 36_665_000 picoseconds. + Weight::from_parts(37_587_000, 3652) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) /// Storage: `Uniques::Attribute` (r:1 w:1) - /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`) + /// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`) fn clear_attribute() -> Weight { // Proof Size summary in bytes: - // Measured: `936` - // Estimated: `3829` - // Minimum execution time: 39_722_000 picoseconds. - Weight::from_parts(40_390_000, 3829) + // Measured: `823` + // Estimated: `3652` + // Minimum execution time: 35_066_000 picoseconds. + Weight::from_parts(36_380_000, 3652) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) fn set_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `415` - // Estimated: `3643` - // Minimum execution time: 30_726_000 picoseconds. - Weight::from_parts(31_557_000, 3643) + // Estimated: `3652` + // Minimum execution time: 27_060_000 picoseconds. + Weight::from_parts(27_813_000, 3652) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1) - /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `547` - // Estimated: `3643` - // Minimum execution time: 31_303_000 picoseconds. - Weight::from_parts(32_389_000, 3643) + // Measured: `626` + // Estimated: `3652` + // Minimum execution time: 27_776_000 picoseconds. + Weight::from_parts(28_582_000, 3652) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) fn set_collection_metadata() -> Weight { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 32_155_000 picoseconds. - Weight::from_parts(32_885_000, 3643) + // Minimum execution time: 27_636_000 picoseconds. + Weight::from_parts(29_118_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: `Uniques::Class` (r:1 w:0) + /// Storage: `Uniques::Class` (r:1 w:1) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) /// Storage: `Uniques::ClassMetadataOf` (r:1 w:1) - /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`) fn clear_collection_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `461` + // Measured: `540` // Estimated: `3643` - // Minimum execution time: 30_044_000 picoseconds. - Weight::from_parts(31_405_000, 3643) + // Minimum execution time: 28_246_000 picoseconds. + Weight::from_parts(29_059_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(1_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) } /// Storage: `Uniques::Class` (r:1 w:0) /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`) @@ -788,8 +794,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `495` // Estimated: `3643` - // Minimum execution time: 18_904_000 picoseconds. - Weight::from_parts(19_687_000, 3643) + // Minimum execution time: 16_793_000 picoseconds. + Weight::from_parts(17_396_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -801,8 +807,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `528` // Estimated: `3643` - // Minimum execution time: 19_144_000 picoseconds. - Weight::from_parts(19_706_000, 3643) + // Minimum execution time: 16_726_000 picoseconds. + Weight::from_parts(17_357_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -812,8 +818,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3517` - // Minimum execution time: 15_339_000 picoseconds. - Weight::from_parts(15_918_000, 3517) + // Minimum execution time: 12_686_000 picoseconds. + Weight::from_parts(13_182_000, 3517) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -825,8 +831,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `349` // Estimated: `3643` - // Minimum execution time: 15_387_000 picoseconds. - Weight::from_parts(15_726_000, 3643) + // Minimum execution time: 13_508_000 picoseconds. + Weight::from_parts(13_906_000, 3643) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -838,8 +844,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `326` // Estimated: `3587` - // Minimum execution time: 15_873_000 picoseconds. - Weight::from_parts(16_860_000, 3587) + // Minimum execution time: 13_742_000 picoseconds. + Weight::from_parts(14_200_000, 3587) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -855,8 +861,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `607` // Estimated: `3643` - // Minimum execution time: 37_245_000 picoseconds. - Weight::from_parts(38_383_000, 3643) + // Minimum execution time: 32_931_000 picoseconds. + Weight::from_parts(34_023_000, 3643) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } diff --git a/substrate/frame/utility/src/weights.rs b/substrate/frame/utility/src/weights.rs index 1a3ea6c1f7fc85df4e90a6e8552fc211a51f5405..502f85a3f178bbdd33645c11c3be661585a4807d 100644 --- a/substrate/frame/utility/src/weights.rs +++ b/substrate/frame/utility/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_utility +//! Autogenerated weights for `pallet_utility` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/utility/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/utility/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_utility. +/// Weight functions needed for `pallet_utility`. pub trait WeightInfo { fn batch(c: u32, ) -> Weight; fn as_derivative() -> Weight; @@ -59,99 +58,139 @@ pub trait WeightInfo { fn force_batch(c: u32, ) -> Weight; } -/// Weights for pallet_utility using the Substrate node and recommended hardware. +/// Weights for `pallet_utility` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_763_000 picoseconds. - Weight::from_parts(16_943_157, 0) - // Standard Error: 1_904 - .saturating_add(Weight::from_parts(4_653_855, 0).saturating_mul(c.into())) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 5_312_000 picoseconds. + Weight::from_parts(2_694_370, 3997) + // Standard Error: 5_055 + .saturating_add(Weight::from_parts(5_005_941, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) fn as_derivative() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 5_149_000 picoseconds. - Weight::from_parts(5_268_000, 0) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 9_263_000 picoseconds. + Weight::from_parts(9_639_000, 3997) + .saturating_add(T::DbWeight::get().reads(2_u64)) } + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_976_000 picoseconds. - Weight::from_parts(16_448_433, 0) - // Standard Error: 1_834 - .saturating_add(Weight::from_parts(4_796_983, 0).saturating_mul(c.into())) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 5_120_000 picoseconds. + Weight::from_parts(12_948_874, 3997) + // Standard Error: 4_643 + .saturating_add(Weight::from_parts(5_162_821, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_102_000 picoseconds. - Weight::from_parts(9_353_000, 0) + // Minimum execution time: 7_126_000 picoseconds. + Weight::from_parts(7_452_000, 0) } + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_840_000 picoseconds. - Weight::from_parts(17_748_474, 0) - // Standard Error: 2_059 - .saturating_add(Weight::from_parts(4_630_079, 0).saturating_mul(c.into())) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 5_254_000 picoseconds. + Weight::from_parts(4_879_712, 3997) + // Standard Error: 4_988 + .saturating_add(Weight::from_parts(4_955_816, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_763_000 picoseconds. - Weight::from_parts(16_943_157, 0) - // Standard Error: 1_904 - .saturating_add(Weight::from_parts(4_653_855, 0).saturating_mul(c.into())) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 5_312_000 picoseconds. + Weight::from_parts(2_694_370, 3997) + // Standard Error: 5_055 + .saturating_add(Weight::from_parts(5_005_941, 0).saturating_mul(c.into())) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) fn as_derivative() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 5_149_000 picoseconds. - Weight::from_parts(5_268_000, 0) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 9_263_000 picoseconds. + Weight::from_parts(9_639_000, 3997) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_976_000 picoseconds. - Weight::from_parts(16_448_433, 0) - // Standard Error: 1_834 - .saturating_add(Weight::from_parts(4_796_983, 0).saturating_mul(c.into())) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 5_120_000 picoseconds. + Weight::from_parts(12_948_874, 3997) + // Standard Error: 4_643 + .saturating_add(Weight::from_parts(5_162_821, 0).saturating_mul(c.into())) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_102_000 picoseconds. - Weight::from_parts(9_353_000, 0) + // Minimum execution time: 7_126_000 picoseconds. + Weight::from_parts(7_452_000, 0) } + /// Storage: `SafeMode::EnteredUntil` (r:1 w:0) + /// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `TxPause::PausedCalls` (r:1 w:0) + /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_840_000 picoseconds. - Weight::from_parts(17_748_474, 0) - // Standard Error: 2_059 - .saturating_add(Weight::from_parts(4_630_079, 0).saturating_mul(c.into())) + // Measured: `145` + // Estimated: `3997` + // Minimum execution time: 5_254_000 picoseconds. + Weight::from_parts(4_879_712, 3997) + // Standard Error: 4_988 + .saturating_add(Weight::from_parts(4_955_816, 0).saturating_mul(c.into())) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } } diff --git a/substrate/frame/vesting/src/weights.rs b/substrate/frame/vesting/src/weights.rs index ddc7db8fa61fbedef4c2629117459dc37c5f8bcd..efb8cbcc41c46a73c9028e22ade21b47fb34336f 100644 --- a/substrate/frame/vesting/src/weights.rs +++ b/substrate/frame/vesting/src/weights.rs @@ -17,26 +17,28 @@ //! Autogenerated weights for `pallet_vesting` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// ./target/production/substrate-node // benchmark // pallet +// --chain=dev // --steps=50 // --repeat=20 +// --pallet=pallet_vesting +// --no-storage-info +// --no-median-slopes +// --no-min-squares // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=pallet_vesting -// --chain=dev -// --header=./substrate/HEADER-APACHE2 // --output=./substrate/frame/vesting/src/weights.rs +// --header=./substrate/HEADER-APACHE2 // --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -75,12 +77,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `381 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 32_846_000 picoseconds. - Weight::from_parts(30_974_459, 4764) - // Standard Error: 1_755 - .saturating_add(Weight::from_parts(73_138, 0).saturating_mul(l.into())) - // Standard Error: 3_123 - .saturating_add(Weight::from_parts(82_417, 0).saturating_mul(s.into())) + // Minimum execution time: 32_202_000 picoseconds. + Weight::from_parts(31_586_520, 4764) + // Standard Error: 1_513 + .saturating_add(Weight::from_parts(67_257, 0).saturating_mul(l.into())) + // Standard Error: 2_693 + .saturating_add(Weight::from_parts(69_725, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -96,12 +98,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `381 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 34_360_000 picoseconds. - Weight::from_parts(34_964_080, 4764) - // Standard Error: 1_996 - .saturating_add(Weight::from_parts(48_024, 0).saturating_mul(l.into())) - // Standard Error: 3_552 - .saturating_add(Weight::from_parts(34_411, 0).saturating_mul(s.into())) + // Minimum execution time: 34_847_000 picoseconds. + Weight::from_parts(34_690_456, 4764) + // Standard Error: 1_681 + .saturating_add(Weight::from_parts(51_103, 0).saturating_mul(l.into())) + // Standard Error: 2_991 + .saturating_add(Weight::from_parts(55_094, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -119,12 +121,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `484 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_859_000 picoseconds. - Weight::from_parts(32_950_681, 4764) - // Standard Error: 1_745 - .saturating_add(Weight::from_parts(69_323, 0).saturating_mul(l.into())) - // Standard Error: 3_105 - .saturating_add(Weight::from_parts(86_370, 0).saturating_mul(s.into())) + // Minimum execution time: 34_027_000 picoseconds. + Weight::from_parts(33_353_168, 4764) + // Standard Error: 1_477 + .saturating_add(Weight::from_parts(72_605, 0).saturating_mul(l.into())) + // Standard Error: 2_629 + .saturating_add(Weight::from_parts(64_115, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -142,12 +144,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `484 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_239_000 picoseconds. - Weight::from_parts(36_459_756, 4764) - // Standard Error: 2_051 - .saturating_add(Weight::from_parts(56_670, 0).saturating_mul(l.into())) - // Standard Error: 3_650 - .saturating_add(Weight::from_parts(49_663, 0).saturating_mul(s.into())) + // Minimum execution time: 36_816_000 picoseconds. + Weight::from_parts(36_467_447, 4764) + // Standard Error: 1_689 + .saturating_add(Weight::from_parts(51_855, 0).saturating_mul(l.into())) + // Standard Error: 3_006 + .saturating_add(Weight::from_parts(58_233, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -165,12 +167,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `555 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 70_330_000 picoseconds. - Weight::from_parts(71_196_328, 4764) - // Standard Error: 2_923 - .saturating_add(Weight::from_parts(67_238, 0).saturating_mul(l.into())) - // Standard Error: 5_201 - .saturating_add(Weight::from_parts(89_102, 0).saturating_mul(s.into())) + // Minimum execution time: 70_906_000 picoseconds. + Weight::from_parts(72_663_428, 4764) + // Standard Error: 2_877 + .saturating_add(Weight::from_parts(81_242, 0).saturating_mul(l.into())) + // Standard Error: 5_118 + .saturating_add(Weight::from_parts(103_344, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -188,12 +190,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `658 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 70_235_000 picoseconds. - Weight::from_parts(71_960_020, 6196) - // Standard Error: 2_493 - .saturating_add(Weight::from_parts(64_835, 0).saturating_mul(l.into())) - // Standard Error: 4_436 - .saturating_add(Weight::from_parts(102_159, 0).saturating_mul(s.into())) + // Minimum execution time: 72_730_000 picoseconds. + Weight::from_parts(75_050_411, 6196) + // Standard Error: 2_748 + .saturating_add(Weight::from_parts(73_218, 0).saturating_mul(l.into())) + // Standard Error: 4_889 + .saturating_add(Weight::from_parts(112_868, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -211,12 +213,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `482 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 34_352_000 picoseconds. - Weight::from_parts(33_697_027, 4764) - // Standard Error: 2_008 - .saturating_add(Weight::from_parts(79_270, 0).saturating_mul(l.into())) - // Standard Error: 3_710 - .saturating_add(Weight::from_parts(60_691, 0).saturating_mul(s.into())) + // Minimum execution time: 34_698_000 picoseconds. + Weight::from_parts(34_504_324, 4764) + // Standard Error: 1_703 + .saturating_add(Weight::from_parts(56_321, 0).saturating_mul(l.into())) + // Standard Error: 3_145 + .saturating_add(Weight::from_parts(55_503, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -234,12 +236,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `482 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 37_467_000 picoseconds. - Weight::from_parts(36_866_847, 4764) - // Standard Error: 1_692 - .saturating_add(Weight::from_parts(57_882, 0).saturating_mul(l.into())) - // Standard Error: 3_124 - .saturating_add(Weight::from_parts(80_266, 0).saturating_mul(s.into())) + // Minimum execution time: 36_951_000 picoseconds. + Weight::from_parts(37_020_649, 4764) + // Standard Error: 1_791 + .saturating_add(Weight::from_parts(65_437, 0).saturating_mul(l.into())) + // Standard Error: 3_308 + .saturating_add(Weight::from_parts(54_146, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -257,12 +259,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `555 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 41_497_000 picoseconds. - Weight::from_parts(38_763_834, 4764) - // Standard Error: 2_030 - .saturating_add(Weight::from_parts(99_580, 0).saturating_mul(l.into())) - // Standard Error: 3_750 - .saturating_add(Weight::from_parts(132_188, 0).saturating_mul(s.into())) + // Minimum execution time: 38_849_000 picoseconds. + Weight::from_parts(38_488_577, 4764) + // Standard Error: 1_911 + .saturating_add(Weight::from_parts(72_338, 0).saturating_mul(l.into())) + // Standard Error: 3_529 + .saturating_add(Weight::from_parts(62_206, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -282,12 +284,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `381 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 32_846_000 picoseconds. - Weight::from_parts(30_974_459, 4764) - // Standard Error: 1_755 - .saturating_add(Weight::from_parts(73_138, 0).saturating_mul(l.into())) - // Standard Error: 3_123 - .saturating_add(Weight::from_parts(82_417, 0).saturating_mul(s.into())) + // Minimum execution time: 32_202_000 picoseconds. + Weight::from_parts(31_586_520, 4764) + // Standard Error: 1_513 + .saturating_add(Weight::from_parts(67_257, 0).saturating_mul(l.into())) + // Standard Error: 2_693 + .saturating_add(Weight::from_parts(69_725, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -303,12 +305,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `381 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 34_360_000 picoseconds. - Weight::from_parts(34_964_080, 4764) - // Standard Error: 1_996 - .saturating_add(Weight::from_parts(48_024, 0).saturating_mul(l.into())) - // Standard Error: 3_552 - .saturating_add(Weight::from_parts(34_411, 0).saturating_mul(s.into())) + // Minimum execution time: 34_847_000 picoseconds. + Weight::from_parts(34_690_456, 4764) + // Standard Error: 1_681 + .saturating_add(Weight::from_parts(51_103, 0).saturating_mul(l.into())) + // Standard Error: 2_991 + .saturating_add(Weight::from_parts(55_094, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -326,12 +328,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `484 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 33_859_000 picoseconds. - Weight::from_parts(32_950_681, 4764) - // Standard Error: 1_745 - .saturating_add(Weight::from_parts(69_323, 0).saturating_mul(l.into())) - // Standard Error: 3_105 - .saturating_add(Weight::from_parts(86_370, 0).saturating_mul(s.into())) + // Minimum execution time: 34_027_000 picoseconds. + Weight::from_parts(33_353_168, 4764) + // Standard Error: 1_477 + .saturating_add(Weight::from_parts(72_605, 0).saturating_mul(l.into())) + // Standard Error: 2_629 + .saturating_add(Weight::from_parts(64_115, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -349,12 +351,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `484 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 36_239_000 picoseconds. - Weight::from_parts(36_459_756, 4764) - // Standard Error: 2_051 - .saturating_add(Weight::from_parts(56_670, 0).saturating_mul(l.into())) - // Standard Error: 3_650 - .saturating_add(Weight::from_parts(49_663, 0).saturating_mul(s.into())) + // Minimum execution time: 36_816_000 picoseconds. + Weight::from_parts(36_467_447, 4764) + // Standard Error: 1_689 + .saturating_add(Weight::from_parts(51_855, 0).saturating_mul(l.into())) + // Standard Error: 3_006 + .saturating_add(Weight::from_parts(58_233, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -372,12 +374,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `555 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 70_330_000 picoseconds. - Weight::from_parts(71_196_328, 4764) - // Standard Error: 2_923 - .saturating_add(Weight::from_parts(67_238, 0).saturating_mul(l.into())) - // Standard Error: 5_201 - .saturating_add(Weight::from_parts(89_102, 0).saturating_mul(s.into())) + // Minimum execution time: 70_906_000 picoseconds. + Weight::from_parts(72_663_428, 4764) + // Standard Error: 2_877 + .saturating_add(Weight::from_parts(81_242, 0).saturating_mul(l.into())) + // Standard Error: 5_118 + .saturating_add(Weight::from_parts(103_344, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -395,12 +397,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `658 + l * (25 ±0) + s * (36 ±0)` // Estimated: `6196` - // Minimum execution time: 70_235_000 picoseconds. - Weight::from_parts(71_960_020, 6196) - // Standard Error: 2_493 - .saturating_add(Weight::from_parts(64_835, 0).saturating_mul(l.into())) - // Standard Error: 4_436 - .saturating_add(Weight::from_parts(102_159, 0).saturating_mul(s.into())) + // Minimum execution time: 72_730_000 picoseconds. + Weight::from_parts(75_050_411, 6196) + // Standard Error: 2_748 + .saturating_add(Weight::from_parts(73_218, 0).saturating_mul(l.into())) + // Standard Error: 4_889 + .saturating_add(Weight::from_parts(112_868, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -418,12 +420,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `482 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 34_352_000 picoseconds. - Weight::from_parts(33_697_027, 4764) - // Standard Error: 2_008 - .saturating_add(Weight::from_parts(79_270, 0).saturating_mul(l.into())) - // Standard Error: 3_710 - .saturating_add(Weight::from_parts(60_691, 0).saturating_mul(s.into())) + // Minimum execution time: 34_698_000 picoseconds. + Weight::from_parts(34_504_324, 4764) + // Standard Error: 1_703 + .saturating_add(Weight::from_parts(56_321, 0).saturating_mul(l.into())) + // Standard Error: 3_145 + .saturating_add(Weight::from_parts(55_503, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -441,12 +443,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `482 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 37_467_000 picoseconds. - Weight::from_parts(36_866_847, 4764) - // Standard Error: 1_692 - .saturating_add(Weight::from_parts(57_882, 0).saturating_mul(l.into())) - // Standard Error: 3_124 - .saturating_add(Weight::from_parts(80_266, 0).saturating_mul(s.into())) + // Minimum execution time: 36_951_000 picoseconds. + Weight::from_parts(37_020_649, 4764) + // Standard Error: 1_791 + .saturating_add(Weight::from_parts(65_437, 0).saturating_mul(l.into())) + // Standard Error: 3_308 + .saturating_add(Weight::from_parts(54_146, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -464,12 +466,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `555 + l * (25 ±0) + s * (36 ±0)` // Estimated: `4764` - // Minimum execution time: 41_497_000 picoseconds. - Weight::from_parts(38_763_834, 4764) - // Standard Error: 2_030 - .saturating_add(Weight::from_parts(99_580, 0).saturating_mul(l.into())) - // Standard Error: 3_750 - .saturating_add(Weight::from_parts(132_188, 0).saturating_mul(s.into())) + // Minimum execution time: 38_849_000 picoseconds. + Weight::from_parts(38_488_577, 4764) + // Standard Error: 1_911 + .saturating_add(Weight::from_parts(72_338, 0).saturating_mul(l.into())) + // Standard Error: 3_529 + .saturating_add(Weight::from_parts(62_206, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } diff --git a/substrate/frame/whitelist/src/weights.rs b/substrate/frame/whitelist/src/weights.rs index de42c5a5841cf8c2d3aea1227dafd35ec461b234..2e28d4fcf7e531cadd2d6d69f51027bff85b6b77 100644 --- a/substrate/frame/whitelist/src/weights.rs +++ b/substrate/frame/whitelist/src/weights.rs @@ -15,16 +15,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_whitelist +//! Autogenerated weights for `pallet_whitelist` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/production/substrate +// ./target/production/substrate-node // benchmark // pallet // --chain=dev @@ -35,12 +35,11 @@ // --no-median-slopes // --no-min-squares // --extrinsic=* -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./frame/whitelist/src/weights.rs -// --header=./HEADER-APACHE2 -// --template=./.maintain/frame-weight-template.hbs +// --output=./substrate/frame/whitelist/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,7 +49,7 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -/// Weight functions needed for pallet_whitelist. +/// Weight functions needed for `pallet_whitelist`. pub trait WeightInfo { fn whitelist_call() -> Weight; fn remove_whitelisted_call() -> Weight; @@ -58,133 +57,149 @@ pub trait WeightInfo { fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight; } -/// Weights for pallet_whitelist using the Substrate node and recommended hardware. +/// Weights for `pallet_whitelist` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn whitelist_call() -> Weight { // Proof Size summary in bytes: - // Measured: `217` + // Measured: `317` // Estimated: `3556` - // Minimum execution time: 19_914_000 picoseconds. - Weight::from_parts(20_892_000, 3556) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 19_521_000 picoseconds. + Weight::from_parts(20_136_000, 3556) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn remove_whitelisted_call() -> Weight { // Proof Size summary in bytes: - // Measured: `346` + // Measured: `446` // Estimated: `3556` - // Minimum execution time: 18_142_000 picoseconds. - Weight::from_parts(18_529_000, 3556) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 18_530_000 picoseconds. + Weight::from_parts(19_004_000, 3556) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage PreimageFor (r:1 w:1) - /// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: Measured) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:1 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 4194294]`. fn dispatch_whitelisted_call(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `422 + n * (1 ±0)` - // Estimated: `3886 + n * (1 ±0)` - // Minimum execution time: 30_671_000 picoseconds. - Weight::from_parts(31_197_000, 3886) + // Measured: `522 + n * (1 ±0)` + // Estimated: `3986 + n * (1 ±0)` + // Minimum execution time: 29_721_000 picoseconds. + Weight::from_parts(30_140_000, 3986) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_163, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(Weight::from_parts(1_179, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 10000]`. fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `346` + // Measured: `446` // Estimated: `3556` - // Minimum execution time: 22_099_000 picoseconds. - Weight::from_parts(23_145_477, 3556) - // Standard Error: 5 - .saturating_add(Weight::from_parts(1_422, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 22_608_000 picoseconds. + Weight::from_parts(23_682_511, 3556) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_420, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn whitelist_call() -> Weight { // Proof Size summary in bytes: - // Measured: `217` + // Measured: `317` // Estimated: `3556` - // Minimum execution time: 19_914_000 picoseconds. - Weight::from_parts(20_892_000, 3556) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Minimum execution time: 19_521_000 picoseconds. + Weight::from_parts(20_136_000, 3556) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) fn remove_whitelisted_call() -> Weight { // Proof Size summary in bytes: - // Measured: `346` + // Measured: `446` // Estimated: `3556` - // Minimum execution time: 18_142_000 picoseconds. - Weight::from_parts(18_529_000, 3556) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Minimum execution time: 18_530_000 picoseconds. + Weight::from_parts(19_004_000, 3556) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage PreimageFor (r:1 w:1) - /// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: Measured) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:1 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 4194294]`. fn dispatch_whitelisted_call(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `422 + n * (1 ±0)` - // Estimated: `3886 + n * (1 ±0)` - // Minimum execution time: 30_671_000 picoseconds. - Weight::from_parts(31_197_000, 3886) + // Measured: `522 + n * (1 ±0)` + // Estimated: `3986 + n * (1 ±0)` + // Minimum execution time: 29_721_000 picoseconds. + Weight::from_parts(30_140_000, 3986) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_163, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(Weight::from_parts(1_179, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } - /// Storage: Whitelist WhitelistedCall (r:1 w:1) - /// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen) - /// Storage: Preimage StatusFor (r:1 w:1) - /// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 10000]`. fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `346` + // Measured: `446` // Estimated: `3556` - // Minimum execution time: 22_099_000 picoseconds. - Weight::from_parts(23_145_477, 3556) - // Standard Error: 5 - .saturating_add(Weight::from_parts(1_422, 0).saturating_mul(n.into())) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Minimum execution time: 22_608_000 picoseconds. + Weight::from_parts(23_682_511, 3556) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_420, 0).saturating_mul(n.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } }